--------------------------------------------------------------------------------
a8a6fdbb29 | David Lawrence Ramsey | 2026-08-30 15:37:42 -0500

Fix typo.

--------------------------------------------------------------------------------
489e10b062 | David Lawrence Ramsey | 2026-08-30 15:37:11 -0500

Keep artefacts from being destroyed when rerolled
They're automatically unequipped in the process, which will destroy
cursed and ^Fragile items. Since rerolling artefacts is a wizard
mode function, prevent this from happening in that one case.

Closes #5400.

--------------------------------------------------------------------------------
18867f046b | David Lawrence Ramsey | 2026-08-30 14:48:36 -0500

Fix comment typo.

--------------------------------------------------------------------------------
eb6f693df5 | regret-index | 2026-08-28 15:20:00 -0230

Tag a wall mimic vault as no_tele_into (mat4rat4s)
It is technically possible to teleport into darby_miner_ambush without
having ever approached it from the outside (thus revealing the wall mimcs).
Unlike other occluding-terrain mimic vaults, such as Rutra's trove or
darby_rabbit_hole, it would also impugn on the flavour and mechanics of
such a hostile vault to provide repeated escape hatches out from it.
As such, I am tagging the vault as no_tele_into instead, to preserve the
intended approach towards the vault rather than removing it entirely.

(For the most part, terrain mimic vaults should remain rare, though the
addition of earlygame vaults using such in e.g. b49e76e and 0383675 has
reasonably increased this count. I would rather not remove such vaults
entirely or push such to depths where players will plausibly always have
spare teleport scrolls: early mimic vaults are good tutorialization for
other notable uses of mimics like the rune mimics, and the terminally
incurious will suffer plenty from not wanting to learn in this comically
maximalist game's opposition. If any other wall / liquid mimic vaults come
up in the future that don't elicit using various hatches, they should also
just use no_tele_into props.)

--------------------------------------------------------------------------------
1abff85513 | hellmonk | 2026-08-28 02:21:00 -0500

Further basedam adjustments
After some chat discussion. -1 to 3swords (still +1 net from before buff), and
+1 to great maces and regular giant clubs. Since ogre weapon damage is higher,
nerfed ogre and two headed ogre base damage slightly - they will do the same
max damage with gsc and 1 less than before with gc. For later game monsters
or the ones that happen to spawn with a different big weapon, you're on your
own.

--------------------------------------------------------------------------------
464611cd81 | hellmonk | 2026-08-28 00:45:17 -0500

Increase big weapon damage
There are planned features that will affect high skill melee in the future,
but will not make this version. For now, increase base damage of the biggest
weapons (bardiche, gsc, triple sword, and exec axe) by 2. This may be reverted
when aforementioned planned features land.

--------------------------------------------------------------------------------
ff29fbad81 | Aliscans | 2026-08-27 20:40:17 -0500

Allow capital letters in an "escape from constriction" message.
Stop turning "Erica" into "erica" for messages such as "You blink free
of Erica."

--------------------------------------------------------------------------------
3928819995 | hellmonk | 2026-08-27 13:23:28 -0500

Give monks an enlightenment potion
"Thematic"

--------------------------------------------------------------------------------
e4a2bd404b | CrawlOdds | 2026-08-27 14:39:22 +0100

Fix beckoning gale monster spell display
It was crashing because beckoning gale has a zap without a to-hit, so
can't look up its defense data from a beam. We skip displaying defenses
for spells unless they define it manually, and do so for gale.

--------------------------------------------------------------------------------
271acf81ce | David Lawrence Ramsey | 2026-08-27 08:02:19 -0500

Fix typo: recieve -> receive.

--------------------------------------------------------------------------------
1d2e30ae2f | David Lawrence Ramsey | 2026-08-27 08:02:15 -0500

Fix typo: seperate -> separate.

--------------------------------------------------------------------------------
30d5851655 | David Lawrence Ramsey | 2026-08-27 08:02:10 -0500

Fix typo: Neccropolis -> Necropolis.

--------------------------------------------------------------------------------
6844b005cd | David Lawrence Ramsey | 2026-08-26 14:05:41 -0500

Fix spelling.

--------------------------------------------------------------------------------
e179a33248 | Brian Power | 2026-08-26 13:59:16 -0500

Spelling: Change AmE Duelist to AusE Duellist

--------------------------------------------------------------------------------
ae837eebe2 | CrawlOdds | 2026-08-26 09:14:26 +0100

Fix burstshrooms damage display bug (adinsx)
We do this by always setting the summoner_id on monsterinfos, so that
the describe code can tell if it is being summoned. We gate
"get_known_summoner" on MB_SUMMONED so this has no other effect.

Rather than omit the damage for player burstshrooms (as the previous
code intended), we now use the correct damage.

--------------------------------------------------------------------------------
2bf1e9f634 | CrawlOdds | 2026-08-25 22:28:06 +0100

Fix description of protean grace bonus
Fixes #5350

--------------------------------------------------------------------------------
c3588b1c91 | CrawlOdds | 2026-08-25 22:16:37 +0100

Fix rn++ resist display amount
Fixes #5387

--------------------------------------------------------------------------------
83a8eaf054 | RypoFalem | 2026-08-25 21:49:23 +0100

fix: unintentional level vetos due to traps blocking paths
8d147f2 refactored traps but seems to have unintentionally changed the
logic for level vetos. Before, only teleport or dispersal traps would
count for blocking paths but after, all traps would block paths. This
most noticably drastically increased the veto rate of
grunt_spider_rune_island due to web traps which meant that end vault
became much more rare. (It's already about half as rare as its weight
suggests for other reasons)

Return to teleport and dispersal traps being the only traps to block
paths for the purposes of vetoing levels.

--------------------------------------------------------------------------------
7415c8be25 | CrawlOdds | 2026-08-25 21:17:14 +0100

Only show forest as awakened within caster's LoS
Trees outside of this can't hit things, and showing them as angry leads
to people thinking they can.

We do this following the existing example of liquefying and similar
effects which are centred on an actor.

--------------------------------------------------------------------------------
9d69fef86c | CrawlOdds | 2026-08-24 13:42:59 +0100

Fix a bug with doubly charmed allies (Flugkiller)
When a monster charmed an ally (e.g. a Hep ancestor), and then we
charmed it back, it would end up permanently hostile in the case that
the monster charm wears off first. We fix this by having our charm
cancel out the monster's, which is already what happens we the charms
happen in the other order on an initially hostile monster.

--------------------------------------------------------------------------------
70c8e3c2a4 | CrawlOdds | 2026-08-24 13:01:48 +0100

Let wizards create monsters ignoring item sets
orc ; wand of charming was failing in a paralysis game

--------------------------------------------------------------------------------
5586eb8aa3 | CrawlOdds | 2026-08-24 09:10:04 +0100

Alphabetise some switches

--------------------------------------------------------------------------------
80a34cb5ff | CrawlOdds | 2026-08-24 09:10:04 +0100

Show resists and defenses in spell descriptions
This adds lines for resists and defenses (AC, EV, SH) to detailed spell
descriptions, including where only a portion is blocked.

Where possible, we derive this straight from the spell's zap, but for
zapless spells we duplicate the information instead. The list of spells
to address came from the spells which specify damage in custom ways.

--------------------------------------------------------------------------------
55141a623b | CrawlOdds | 2026-08-24 08:42:21 +0100

Add a spell flag for "needs a target"
This allows us to stop suggesting Z-casting spells where it won't do
anything because they need targets to be cast.

--------------------------------------------------------------------------------
0572f05fdf | CrawlOdds | 2026-08-24 08:42:21 +0100

Make many spells not target warded monsters
We add a flag indicating that a spell only deals direct damage, and do
not count warded monsters as targets in tracers for such spells.

--------------------------------------------------------------------------------
56f49b53f8 | David Lawrence Ramsey | 2026-08-23 13:41:58 -0500

Add a few more words to Crazy Yiuf's vocabulary.

--------------------------------------------------------------------------------
37949f6ac9 | David Lawrence Ramsey | 2026-08-23 12:59:12 -0500

Fix typos.

--------------------------------------------------------------------------------
3c6322780f | DracoOmega | 2026-08-22 23:43:00 -0230

Fix a couple typos

--------------------------------------------------------------------------------
5539bdd7ae | David Lawrence Ramsey | 2026-08-22 10:27:54 -0500

Fix green colouring of ego-based menu titles.
Do this by capitalising Ego, which bypasses the entry in
dat/defaults/menu_colours.txt that turns all menu titles containing
"ego" green, and which also makes it match the eventual capitalisation
of the first word in such menu titles.

--------------------------------------------------------------------------------
bec901ca33 | David Lawrence Ramsey | 2026-08-22 10:27:54 -0500

Allow lookup-help searches of missile egos.

--------------------------------------------------------------------------------
ef5ad4b8e7 | David Lawrence Ramsey | 2026-08-22 10:27:54 -0500

Allow determining missile ego w/o an item.
This is so it can be used in lookup-help searches.

--------------------------------------------------------------------------------
ab5ddd8fb5 | David Lawrence Ramsey | 2026-08-22 10:27:54 -0500

Allow lookup-help searches of armour egos.

--------------------------------------------------------------------------------
bbb812fa57 | David Lawrence Ramsey | 2026-08-22 10:27:54 -0500

Allow lookup-help searches of weapon egos.

--------------------------------------------------------------------------------
45d6540c33 | David Lawrence Ramsey | 2026-08-22 10:27:54 -0500

Add egos.txt to the descriptions database.
This is so it can show up in lookup-help searches.

--------------------------------------------------------------------------------
23377c5232 | DracoOmega | 2026-08-21 23:27:00 -0230

Remove locale-specific behavior of the soft_item_slot comparator
Used for sorting many inventory menus.

In some locales (such as is true of default Windows installations in North
America, at the very least), isalpha() could return true for values that
would assert when passed to letter_to_index(). They ought to always match
each other exactly.

--------------------------------------------------------------------------------
1579eca794 | DracoOmega | 2026-08-21 23:24:32 -0230

Fix dropped consumables getting garbage internal item slots (canofworms)
This code wasn't properly updated after consumable inventory was added,
resulting in non-letters being set for the 'last used inventory slot' of
dropped consumables.

In combination with another bug (fixed in the following commit), this could
cause a crash on some locales when trying to use a dropped consumable off
the floor.

--------------------------------------------------------------------------------
446c6fe01d | David Lawrence Ramsey | 2026-08-21 20:35:32 -0500

Fix indentation.

--------------------------------------------------------------------------------
348c77e6f1 | CrawlOdds | 2026-08-21 22:36:43 +0100

Fix the resists checked by monster strikes
Monster airstrike was half-resisted by ice, while sleetstrike was
irresistible

--------------------------------------------------------------------------------
50cf9bef6c | David Lawrence Ramsey | 2026-08-21 13:11:07 -0500

Add another unlikely hybrid to artefacts.
Taken from what appears to be an autocomplete error (but a cool one) in:
https://tavern.dcss.io/t/megaprogress-meteorans-0-30/2003/1

--------------------------------------------------------------------------------
beb8c678c6 | David Lawrence Ramsey | 2026-08-21 11:32:51 -0500

Add another unique-related comment to graffiti.

--------------------------------------------------------------------------------
2b7da36901 | David Lawrence Ramsey | 2026-08-21 11:30:03 -0500

Add another pattern name and glowing adjective.

--------------------------------------------------------------------------------
30bcf7eae0 | DracoOmega | 2026-08-20 22:08:14 -0230

Fix a crash placing fog_machine vaults via &L (regret-index)
Exactly one of the uses of clear_need_activate() removed in 91f3a8b seemed
to still be necessary, since local vault placement on an existing level
only activated markers on tiles within said vault (and thus didn't clear
the have_inactive_markers property from the entire level).

--------------------------------------------------------------------------------
bf9ee8095e | regret-index | 2026-08-20 14:18:56 -0230

Fix an Abyss rune vault missing a rune (Ahyangyi)
When bd093b5 made another difficulty balance pass over Abyss rune vaults,
the efforts to regulate the number of ancient / dread liches in
due_evilmike_abyss_rune_seething_liches accidentally gave that a 66%
chance to not actually place a rune, which this commit fixes.

--------------------------------------------------------------------------------
bea1a80953 | gammafunk | 2026-08-19 12:01:40 -0500

Fix the Vainglory restriction on invis (rypofalem, particleface)
Apparently broken in 6f7dcbef, which prevented radius 0 halos from being
applied. Vainglory needs a radius 0 halo to communicate its limitation
on invis, so we modify the area application to accept such halos. This
doesn't seem like it breaks any existing callers of _apply_area().

--------------------------------------------------------------------------------
e7acb50ba9 | David Lawrence Ramsey | 2026-08-18 12:44:32 -0500

Add another Crazy Yiuf line.

--------------------------------------------------------------------------------
192d698ffc | DracoOmega | 2026-08-18 03:11:01 -0230

Don't let Breathe Rust make clouds on two sides of a wall at once
If the player was standing such that they could see both sides of a wall,
Breathe Rust could place clouds on both of it simultaneously, eg:

...@..
...#..
§§§#§.
§§§#§.
§§§#§.

Instead, use a standard explosion calculation and pick the first X tiles
out of that (which should also match the targeting UI most directly).

--------------------------------------------------------------------------------
73ca3d2851 | DracoOmega | 2026-08-18 02:53:21 -0230

Fix multiple oddities with the Breathe Rust targeter (Flugkiller)
The targeter was calculating the 'explosion' of clouds as if the beam
didn't penetrate targets, but still drawing main path of the beam as if it
did, leading to some very odd and inscrutible shapes.

On top of this, tiles that 'might' be in the radius of effect (if the
player's power is insufficient to fill all of radius 2) were overriding
tiles that will definitely be affected (due to being in the beam's path
itself), contributing to 'gaps' in the affected area. I don't think there
are any other beam-based 'explosions' of variable radius in Crawl at the
moment, but this would have affected those as well.

Finally, the targeter was misleading about this ability's capability to
affect wall monsters. Since its only effect is to place clouds, it can't
affect monsters inside walls in any way, and should convey this more
properly.

--------------------------------------------------------------------------------
172805db8e | hellmonk | 2026-08-16 13:25:53 -0500

Let crab form double archery ego
Crabs are our friends and want to have fun. Let your crab shoot a giant gun.

--------------------------------------------------------------------------------
8df952a33e | CrawlOdds | 2026-08-14 18:27:00 +0100

Fix crash with wall monsters and gavotte
They were crashing when being gavotted into the level boundary. Now they
stop there (with no collision)

--------------------------------------------------------------------------------
c33d6bf7d6 | CrawlOdds | 2026-08-14 07:12:53 +0100

Fix some mapstat option parsing

--------------------------------------------------------------------------------
d8b905dbbe | CrawlOdds | 2026-08-13 14:14:37 +0100

Fix a ziggurat entry vault (rypofalem)
When 2a440f7 updated this ziggurat to use ; instead of ', it did not
update the opaque KMASK. This made the area in the middle look
disconnected and prevented the vault from generating.

--------------------------------------------------------------------------------
f146058b2a | CrawlOdds | 2026-08-13 14:05:42 +0100

Fix an overflow vault that never placed (rypofalem)
3b09176 attempted to fix an issue where we occasionally placed this
vault without stairs, but in doing so it made it unplaceable as it falls
foul of the "do not increase dungeon regions" connectivity check. We
have now fixed the stair problem in a more robust way by banning random
stair removal from touching vaults, so we revert this transparent tag.

The other vault in the same commit is fine to stay transparent, because
it is primary and therefore allowed to disconnect the level.

--------------------------------------------------------------------------------
17d105d106 | CrawlOdds | 2026-08-13 14:02:28 +0100

Do not cull random vault stairs
We used to do four passes of stair-culling:
- Redundant (i.e. walkable-between), non-vault
- Redundant vault
- Random non-vault
- Random vault

The last of these is somewhat unsafe; vaults can rely on stairs for
connectivity, and can be opaque so that connectivity checks won't catch
when this fails. So we remove the last pass; when we would have reached
it we now veto the level. Now that the parent commit fixes stair
culling, this veto is vanishingly rare; in fact in a 500 game mapstat
run there were no instances of it that wouldn't have been vetoed later
as the random stair removal disconnected the level.

--------------------------------------------------------------------------------
3729dcff44 | CrawlOdds | 2026-08-13 14:01:15 +0100

Cull redundant stairs better
The comments in the _cull_redundant_stairs function state that it
iterates through stairs if there are more than 3, removing some that are
reachable from other stairs by walking. This is very sensible, as it
means that we remove stairs without breaking connectivity.

However, this isn't what it was actually doing. Instead, it was
iterating through the stairs, removing some that share a type of stair
(e.g. "upstair 2") that is reachable from other stairs by walking. This
could cull arbitrary stairs and leave disconnected regions.

--------------------------------------------------------------------------------
d6d3d6370e | CrawlOdds | 2026-08-12 20:53:49 +0100

Fix listing of sound in features on ?V
SOUND_BACKEND was missing from command.cc

--------------------------------------------------------------------------------
5f7d476cd6 | brandon s allbery kf8nh | 2026-08-12 20:50:10 +0100

fix sound conditional in initfile.cc
As currently written, all four defines must exist. But three of them are
intended to be platform-specific and it's not really expected that more
than one of them be defined.

--------------------------------------------------------------------------------
ca5ed2dcc3 | CrawlOdds | 2026-08-12 18:31:42 +0100

Fix marshalling and unmarshalling of stack flags
This fixes a bug introduced in 2985acf whereby the stash always loaded
zeroed flags on reload, which made autoexplore think stashes were
unvisited and revisit them.

Fixes #5369

--------------------------------------------------------------------------------
e685053aba | DracoOmega | 2026-08-10 18:08:29 -0230

Fix monster barding pickup logic being inverted
Monsters who were supposed to be able to pick up and wear bardings were the
only species that were explicitly forbidden from doing so. Whoops.

This fixes #5367

--------------------------------------------------------------------------------
1b83f8deab | Isaac Clancy | 2026-08-07 09:26:42 +1200

Fix FHEIGHT often having no effect (nicolae)
The height of a feature can be set by a vault using FHEIGHT. However,
this would often not work as the height would get accidentally
overridden when placing the Shoals layout or when giving features in
vaults default heights.

--------------------------------------------------------------------------------
84c2d4cfdb | Isaac Clancy | 2026-08-07 08:59:01 +1200

Improve setting of water and floor height in Shoals vaults
We were often setting all floors to the same height and all shallow
water squares to the same height. This would cause tides to flood the
whole vault at the same time rather than gradually move in. It would
also cause wave animations to show a wave everywhere in the vault at
once rather than showing a moving wave.

Instead, make floors farther from water higher and shallow water closer
to floors higher.

--------------------------------------------------------------------------------
f98660601d | Isaac Clancy | 2026-08-07 08:54:10 +1200

Rework making sure squares don't get bad flavour during level gen
If a vault places a feature and then level generation replaces the
feature, we need to remove the tile override and also reset the squares
colour.

Unfortunately, we had multiple ways of achieving this. The first way was
that we would call _set_grd to replace the feature. However, some places
that replaced a feature did so by directly altering env.grid and making
sure every where that needed to call _set_grd did was rather hard. The
second way was that we would not show "feat" tile overrides on floor
tiles so that if a squares that had a "feat" tile override was replaced
with a floor the incorrect tile override wouldn't be shown. The third
way was that we would keep track of which features had been placed by
vaults and reset the squares colour after generating the level if the
feature was different from what the vault had placed.

The third way can be adapted to handle resetting tile overrides,
allowing us to remove the first and second ways. However, I haven't yet
allowed floors to show "feat" tile overrides as we still have a few ways
that these can end up incorrect on floors outside of level generation.

--------------------------------------------------------------------------------
8dce1c1a91 | DracoOmega | 2026-08-06 18:22:21 -0230

Fix a possible A screen crash in wizmode
When you lower your level in wizmode, innate mutations that were gained
from levelling up are not removed. This can cause A's description of future
mutations to attempt to query mutation levels higher than 3 (eg: if a
vine stalker had fangs 3, then lowered their level below 8, the game would
think they would gain fangs 4 at XL 8 and then crash).

Properly cleaning up innate mutations would be nicer, but let's at least
not crash.

--------------------------------------------------------------------------------
6e5f44ca5f | CrawlOdds | 2026-08-06 09:58:26 +0100

Redraw tentacle segments more promptly
This fixes a little flicker on webtiles where we draw the removal of the
old segments before the addition of the new ones.

--------------------------------------------------------------------------------
816b138a71 | DracoOmega | 2026-08-05 17:29:30 -0230

Don't create a stash at the player's position every time we load any
The default constructor for Stash set its position to the player's, if none
was specified. This was, as far as I can tell, only used when loading
existing stashes from a save file. Which meant that every single stash
loaded would first intialize itself from whatever was at the player's
position before wiping all that out to load the intended data.

This is a bit pointless and wasteful, but also could create odd errors in
some cases. For instance, the lua tables handling portal markers were not
fully loaded before stashes were, which could result in a massive number of
lua errors when loading a save file where the player was on top of a portal
(as every stash on the level would attempt to read from a table for the
marker at the player's feet). This became more obvious after d744bac fully
reset lua state when the game was reset.

Now we only fully initialize a stash if given an in-bounds position and
don't remap (0,0) to the player's location. (As far as I can tell, this was
only used prior to loading, which should overwrite all state anyway.)

This fixes #5363

--------------------------------------------------------------------------------
dd4352f596 | CrawlOdds | 2026-08-05 10:50:36 +0100

Make the abyss shift at the same rate in all directions
This removes an incentive to walk North/South rather than East/West in
order to trigger more shifts and find the rune faster. This incentive
was minor compared to the need to avoid danger, but this way nobody has
to think about it.

--------------------------------------------------------------------------------
5499a6c64f | CrawlOdds | 2026-08-05 10:40:33 +0100

Move abyssal shift to world_reacts
We previously checked the abyss shift on player movement. This meant
that if a player moved only through less pedestrian means, such as
scrolls of blinking, they could reach the edge of the abyss. This was
bad both because reaching the edge of the infinite abyss is surprising,
and because it was rather buggy there, with the abyss shifting every
turn without recentering the player. So now we check for a shift every
turn.

--------------------------------------------------------------------------------
ee3fc9a12f | CrawlOdds | 2026-08-05 10:26:40 +0100

Kill tentacles via their heads
When we kill a tentacle segment, we now kick the real (non-reset) death
up to the head, and have it clean up all the tentacles. This means that
we consistently process the head death properly. This mostly matters for
eldritch tentacles, where we now grant XP, immediately remove eldritch
portals, give a custom message, and count the monster as vanquished.

We also remove a block of code that looked like it was doing the same
thing, but never fired.

Fixes #5361

--------------------------------------------------------------------------------
d9bbf44539 | CrawlOdds | 2026-08-04 22:52:24 +0100

Add owned counts to shopping list (particleface)
This is consistent with the change for shops in a221df3

--------------------------------------------------------------------------------
7ae3713fad | CrawlOdds | 2026-08-04 22:46:45 +0100

Update credits

--------------------------------------------------------------------------------
d0b3e651c3 | DracoOmega | 2026-08-04 08:02:57 -0230

Remove you.prev_grd_targ
After getting yet another bug report about the targeting cursor sticking to
things it shouldn't, I am feeling like dfde840 was misguided and that that
it would have been better to cut this code (which had been unknowingly
nonfunctional for a couple of versions) than reenable it.

While I'd thought it would be mildly helpful in a few situations, it's
turning out to have much larger negative effects in more situations than it
would have had positive ones.

(Really, it might be nice to have that sort of memory operate on the basis
of each individual thing being aimed, but it seems tricky to do this (there
is no unified way to refer to spells/abilities/items and there are multiple
things beyond that which use this interface.))

--------------------------------------------------------------------------------
5681d780c1 | DracoOmega | 2026-08-03 19:33:55 -0230

Don't retain cursor memory after casting hellfire mortar (adinsx)
The spot the player aimed hellfire mortar at was being incorrectly
remembered in a way that would force subsequent spells (including direct
projectiles) to also aim there instead of at proper monster targets.

--------------------------------------------------------------------------------
91ee021ed7 | DracoOmega | 2026-08-03 16:07:39 -0230

More properly fix eldritch tentacle death cleanup
While 970ca23 fixed an issue with the portal feature not disappearing, by
removing any cleanup from the monster death event itself, if the tentacle
died on another monster's turn (which is likely), the portal would remain
until the end of the player's *next* turn, preventing them from recasting
the spell until then.

Now, the portal will once again close immediately (but should no longer
sometimes leave around portal features either).

--------------------------------------------------------------------------------
970ca23689 | CrawlOdds | 2026-08-03 15:06:53 +0100

Fix an issue with eldritch portals not disappearing
When a tentacle died, we attempted to clear up its portal. However, this
had two issues:
* It only fired if the tentacle was on the portal itself
* It did not clear up the temporary terrain change

These didn't matter when the tentacle dies elsewhere, because the map
marker tick clears up the portal anyway. But the combination of the two
meant that if the tentacle died while on the portal, the portal never
disappeared.

We fix this by not removing the marker at all in this case, leaving the
terrain reversion handled in a single place.

--------------------------------------------------------------------------------
2ba693354f | DracoOmega | 2026-08-03 01:05:26 -0230

Fix a softlock involving grunt_nemelex_the_gamble
Items marked as 'unobtainable' (currently used *only* in this single vault)
were deliberately not added to the stash tracker. New logic added in
2985acf made the incorrect assumption that if there was a visible item on
the ground, that it would always be added to the stash (resulting in a
crash from trying to add a null pointer to the stash).

However, not adding unobtainable items to the stash tracker had some other
older bugs - most notably that attempting to examine the item on the ground
would fail to see it at all (since the stash is used to construct the
results of xv). ie: If you xv'd an exciting item in this vault, you would
only see floor. This seems clearly incorrect to me.

To be honest, I am not 100% certain the overall value of this flag as used
in a single vault, but as a stopgap measure, I am adding unobtainable items
into the stash tracker and simply hiding them on stash *search*. This
perhaps should be revisited in future.

--------------------------------------------------------------------------------
375e6f9dbe | DracoOmega | 2026-08-02 23:03:22 -0230

Don't assert on looking up the description of a flavour without one
monster_info store the attack properties of a monster at the time they
were last seen. This means they can sometimes have attack flavours that
have since been removed.

There is no reason to assert for this situation (and even if we forget to
add a desecription for a new attack flavour, asserting doesn't feel
appropriate here.)

--------------------------------------------------------------------------------
340866cc77 | DracoOmega | 2026-08-02 20:23:58 -0230

Fix a clang compile warning (Ge0FF)

--------------------------------------------------------------------------------
e566e939d5 | DracoOmega | 2026-08-02 19:32:21 -0230

Unbrace

--------------------------------------------------------------------------------
6768c1c5d0 | DracoOmega | 2026-08-02 19:31:17 -0230

Hopefully fix cursor for ranged attacks 'sticking' to old dead targets
If you aimed a ranged attack at a monster and it survived, and you aimed it
again and killed it, the next time you tried to fire, the cursor would
snap to the location you last fired at (because it retained memory of the
location as well as the monster, and when the monster was no longer there,
used the location instead).

I think this bug existed prior to dfde840 but that commit fixed a
different bug that allowed this bug to manifest properly.

(...I admit that I am still not 100% sure that this doesn't result in some
other issue since this UI is fairly complicated, but fingers crossed.)

--------------------------------------------------------------------------------
a221df3ca9 | Eivin Hatvik | 2026-08-02 20:04:01 +0100

feat: show owned consumable counts in shops

--------------------------------------------------------------------------------
f82e23d98b | David Lawrence Ramsey | 2026-08-02 13:35:10 -0500

Fix typos.

--------------------------------------------------------------------------------
31569e1b94 | DracoOmega | 2026-08-01 15:58:55 -0230

Fix a crash when xv-ing monsters with a reaching attack and throwing weapon
The throwing weapon would not be seen when first determining layout of the
attack table, and have no range entry for itself. So if the melee attacks
*did* need a range column, it would read past the end of the array for the
throwing weapon's range.

(Instead, just say they have LoS range.)

--------------------------------------------------------------------------------
3dfcdf802b | DracoOmega | 2026-08-01 15:44:55 -0230

Fix Exposed increasing *all* damage, including attack damage (rypofalem)
I went to some trouble to route more parts of attacks through
attack::inflict_damage(), so that we could tell what damage came from
attacks or not, and then somehow never actually set the argument added in
962f017 to true there. Whoops...

--------------------------------------------------------------------------------
fc24b9975f | DracoOmega | 2026-08-01 04:11:09 -0230

Fix item stack hilights not displaying in console (Undo)

--------------------------------------------------------------------------------
0e46aa7754 | DracoOmega | 2026-08-01 02:36:50 -0230

Grant a monster halo immediately upon stealing a weapon while having none
Just in case you disarm Maurice *before* he swipes your Eos.

--------------------------------------------------------------------------------
f81bd1ac2c | DracoOmega | 2026-08-01 02:36:50 -0230

Slightly change internal ordering of monster unequipping
As a more thorough fix to follow e5056c4 this makes monster::unequip
directly unlink the item (so that an agrid invalidation won't see it) and
then calls do_unequip_effects() on its own.

The unlinked item must have something done with immediately afterward
(such as destroy it or place it on the grid), but this should currently be
done in all cases as it is, so I *believe* this should be safe.

--------------------------------------------------------------------------------
8243678a5c | Isaac Clancy | 2026-08-01 16:45:39 +1200

Fix a test
The MAP_KNOWN_FLAG flag no longer exists, but a test was trying to use
it to set an area as known. Instead use the MAP_SEEN_FLAG flag as this
will work just as well to set an area as known.

--------------------------------------------------------------------------------
23b0985ed0 | Isaac Clancy | 2026-08-01 15:50:23 +1200

Fix artefact and good item markers sometimes not showing
We were using multiple types to store map flags (such as int, uint32_t,
and uint64_t). This resulting in us accidentally clearing the
MAP_MORE_ITEMS_GOOD and MAP_MORE_ITEMS_ARTEFACT flags in
map_cell::set_door_connect as they can't be stored in the uint32_t that
it was using.

--------------------------------------------------------------------------------
d29df33819 | Isaac Clancy | 2026-08-01 15:44:28 +1200

Fix out of view toxic bog not disappearing until game reload
When the player moves out of sight of their toxic bog it ends.
However, we weren't redrawing the squares where it had ended so they
wouldn't see this unless they reloaded the game.

--------------------------------------------------------------------------------
e5056c4b33 | DracoOmega | 2026-08-01 01:02:18 -0230

Stop-gap measure to stop crashes when killing monsters above lava
A monster dropping equipped items into lava was producing a crash as of
febc422. This should stop said crashes, but will result in incorrect
behavior regarding certain items (such as halo/umbra-granting equipment)
that fall into lava this way.

I am putting a stop-gap measure in place to avoid the most urgent issue
since there are some complexities with fixing this more properly.

--------------------------------------------------------------------------------
2b0c9e43d6 | Isaac Clancy | 2026-08-01 15:16:03 +1200

Fix unmarshalling 64 bit map flags
We were storing the map flags in an `unsigned int` when unmarshalling
them which caused the MAP_MORE_ITEMS_GOOD and MAP_MORE_ITEMS_ARTEFACT
flags to be lost as they require more than 32 bits to store.

--------------------------------------------------------------------------------
2e224a7969 | CrawlOdds | 2026-08-01 14:00:06 +1200

Use latest Windows SDK
Using the old Windows 8.1 SDK was causing MSVC build errors.

--------------------------------------------------------------------------------
1be8eec9ce | DracoOmega | 2026-07-31 20:22:37 -0230

Fix being able to use Bestial Takedown while netted (Planckenstein)
Even more comically, it didn't actually interfere with your attacks (since
that is checked outside of melee_attack itself), so you'd just leap around
with this decorative net on top of you.

--------------------------------------------------------------------------------
daddb711e1 | DracoOmega | 2026-07-31 20:22:37 -0230

Fix fortress crab not doubling artprop regen (Mandarbmax)
Due to the unusual way ARTP_REGENERATION is queried (as a consequence of
regen items needing to attune to the player individually, such that we
cannot simply check their combined sum), fortress crab's armour property
doubling wasn't affecting it at all.

(There's probaby a nicer way to structure this that allows
_player_bonus_regen() to use the artprop cache - possibly by specifically
only caching ARTP_REGENERATION off attuned items and calling
you.equipment.update() whenever an item becomes attuned. But I'm leaving
that for another time.)

--------------------------------------------------------------------------------
0a2a1bb071 | DracoOmega | 2026-07-31 20:22:37 -0230

Mention Exegesis's ability to be recast for cheaper (Midn8)
Mildly awkward given that the ability's name is based on the spell it's
recasting, but hopefully this is at least marginally clearer.

--------------------------------------------------------------------------------
a7c9cb57c8 | DracoOmega | 2026-07-31 20:22:37 -0230

Fix missing -Jolt status description (Dilly)

--------------------------------------------------------------------------------
6a0d0f7304 | DracoOmega | 2026-07-31 20:22:37 -0230

Mention fortress crab's ability to wield two-handers in one hand (ssm_)

--------------------------------------------------------------------------------
e140b3607e | David Lawrence Ramsey | 2026-07-31 16:48:14 -0500

Add another name.

--------------------------------------------------------------------------------
9f1a392d83 | David Lawrence Ramsey | 2026-07-31 16:29:15 -0500

Fix wording.
Consistently use possessives before gerunds.

--------------------------------------------------------------------------------
c40738c7cf | David Lawrence Ramsey | 2026-07-31 16:29:11 -0500

Fix pronoun.
Gods have no pronouns, not even "they."

--------------------------------------------------------------------------------
ff78f175dd | David Lawrence Ramsey | 2026-07-31 16:29:07 -0500

Fix wording.

--------------------------------------------------------------------------------
7eedd333d1 | DracoOmega | 2026-07-31 18:58:10 -0230

Fix another compiler warning
Since spret::seen_hups was added. (But it's not possible to get that return
value via this code path anyway, I'm fairly sure.)

--------------------------------------------------------------------------------
ff4eb0371c | DracoOmega | 2026-07-31 18:57:31 -0230

Fix a couple compiler warnings with the debug version (rypofalem)

--------------------------------------------------------------------------------
f59a07d941 | DracoOmega | 2026-07-31 15:17:07 -0230

Fix tag upgrade build

--------------------------------------------------------------------------------
40d16f9d91 | DracoOmega | 2026-07-31 15:09:15 -0230

Edit a pronoun in Goji's description to reduce confusion (apparently)
I was using 'they' in a gender-neutral sense in the last sentence (and
because I felt it had better cadence), rather than as a statement about
Goji's own gender. However, a surprising number of people interpreted it as
inconsistent with the use of he/him earlier in the description and now that
I've seen someone argue that this means Goji must be the name of the
*moth*, I am conceding that maybe I am the weird one in thinking it reads
completely naturally as it is.

--------------------------------------------------------------------------------
db5e642083 | DracoOmega | 2026-07-31 15:09:15 -0230

Give sphinxes a chance to spawn with a barding
And increase drop rates slightly across the board

--------------------------------------------------------------------------------
c4c869ff2f | DracoOmega | 2026-07-31 15:09:15 -0230

Remove an awkward method used to force autopickup
When an item became identified, if its unidentified state had been flagged
for autopickup, a prop was used to force autopickup to remain on after it
was identified.

This had some awkwardnesses, since this prop would *force* autopickup to
remain on for that item, no matter else might later tell it to turn off,
including .rc scripts (such as the one used by default to avoid autopickup
of redundant jewellery), becoming useless at a later time, and even
toggling it off with the autopickup menu.

While in *most* cases, said item would be picked up immediately, sometimes
this was not the case (most commonly with Ash, where you can ID items from
a distance). So if, for instance, you ID'd an rPois ring from a distance,
but were unable to pick it up (perhaps it was in a vault), then found
another rPois ring, the original ring would remain on autopickup forever,
despite the game saying that picking it up was pointless. Similar problems
could happen with an item later becoming literally useless (perhaps due to
gaining a slot-blocking mutation).

While I cannot be certain, I wonder if this may also be the root cause of
a rare-but-recurring bug people have reported with redundant rings being
picked up (which I could never reproduce).

In any case, identification works fairly different now than when this hack
was first added, and I am hoping it's no longer doing anything
load-bearing. (And if it is, then the root cause of that should be
addressed in a better way.)

--------------------------------------------------------------------------------
7ec6bd9301 | DracoOmega | 2026-07-31 15:09:15 -0230

Pick up missing aux armour by default
This snippet was available in advanced_optioneering.txt for quite a while,
but it's something players have asked about repeatedly and it feels like a
reasonable thing to simply make default now (especially since inventory
space isn't at a premium these days).

--------------------------------------------------------------------------------
45da06a8a3 | DracoOmega | 2026-07-31 15:09:15 -0230

Allow Maurice to actually use melee weapons he steals
Maurice can equip and use ranged weapons they steal from the player, but if
they steal a melee weapon, they will just stick it in their secondary
weapon slot and never actually use it (preventing them from ever stealing a
ranged weapon at a later time, in fact.)

He can already pick up and wield melee weapons from the ground, and I'm
pretty sure the original intention of their code was for them to wield
melee weapons they steal (but the function names were misleading at the
time it was first written; see c625362)

--------------------------------------------------------------------------------
66e9b31ffe | DracoOmega | 2026-07-31 15:09:15 -0230

Make Apportation pull entire item stacks at once
Apportation previously pulled only the top item of a stack. But it was
possible to somewhat manipulate this item by saving/reloading, and since
cb843fb03 the visible item at the top of the pile no longer has any direct
relation to what item is at the top of the stack internally.

To avoid a confusing relationship between what you see and what you pull,
instead pull *all* items on a given tile towards the player.

(It's theoretically possible to pull some random subset of these items, but
other devs seem to be of the opinion that a buff to the spell of this
nature is inconsequential - in the most common case of grabbing runs or the
orb, there's only one item on the tile anyway. If that turns out not to be
the case, it's easy to adjust it further.)

--------------------------------------------------------------------------------
fa69d9cc95 | DracoOmega | 2026-07-31 15:09:15 -0230

Don't go to extra trouble to move gold to the top of piles with Gozag
Gold will usually now display on top of mundane items anyway (since it's
flagged for autopickup), which seems sufficient to me.

(And if anyone really feels that it should always be on top of everything,
that is easy to do now by simply modifying _item_sort_score())

--------------------------------------------------------------------------------
2985acfa17 | DracoOmega | 2026-07-31 15:09:15 -0230

Improve display of item stacks on the ground (Ge0FF)
When multiple items are in a stack on the ground, only the top item in the
stack is displayed and an icon is added to indicate that more items are
beneath that one.

However, our implementation of this had several awkwardnesses. For one
thing, which item is on 'top' of a stack is largely coincidental (it's just
whichever fell last, which often depends on the order of items in a
monster's inventory). This means that important items are often hidden by
junk (and we don't even display the autopickup hilight on stacks that
contain autopickupable items, unless that item is on the top).

Moreover, the order of items in a stack isn't actually marshalled, so it
often *changes* whenever the player saves/reloads or peeks at another
floor. This can even be used tactically to change which item Apportation
will grab (since it always starts from the top of the stack).

This commit makes numerous changes aimed at making it easier to notice
interesting or important items in a stack (while Apportation itself will
be adjusted in a subsequent commit).

Items in stacks are now sorted based on some rough idea of their importance
to the player. This is approximately:
 autopickup-enabled -> artefacts -> branded and other special items ->
 everything else.

This increases the chance that player-relevant items will the ones which
are visible.

On top of this, the 'items are underneath here' marker now comes in 3
styles, indicating the presence of artefacts, special items, or only
mundane ones beneath the top item.

This means that the player can now often tell at a glance whether any
nearby piles could contain an artefact (rather than having to examine them
individually) and autopickup-able stacks should always show an autopickup
hilight.

This is implemented via the stash tracker itself (which now sorts items by
some criteria and can be asked to populate a map cell with the appropriate
flags). This is *arguably* not the proper place for it, but since it was
already doing a bunch of similar work about examining the properties of
items in a tile, I didn't want to duplicate its effort again outside it
(we already discard and regenerate stashes in sight multiple times every
turn as it is.)

This does mean, however, that update_item_at() should only be called after
stashes in sight have been regenerated. (Which I *think* should generally
be the case now.)

--------------------------------------------------------------------------------
9465954ecf | DracoOmega | 2026-07-31 15:09:15 -0230

Fix a comment

--------------------------------------------------------------------------------
89c46b2024 | DracoOmega | 2026-07-31 15:09:15 -0230

Allow fravashi to pick up equipment
This is more consistent with other humanoid holies.

(They will still stick to polearm weapons, though, which are mechanically
useful as a summoner.)

--------------------------------------------------------------------------------
54a596f943 | DracoOmega | 2026-07-31 15:09:15 -0230

Make efreets medium-sized
I was surprised to learn they were not (perhaps especially because of how
djinn-like they are in flavour) and this feels more appropriate to me.

(If someone feels otherwise, I'm not married to this.)

--------------------------------------------------------------------------------
796ac19008 | DracoOmega | 2026-07-31 15:09:15 -0230

Give monsters a proper aux armour slot
Multiple monsters deliberately use aux armour as part of their normal gear,
but there's never been a proper slot for it, and convincing monsters to
wear it has involved a series of increasingly tortured hacks over the
years. For instance, Gastronok wears their hat in their body armour slot
(which was fine since they can't use other items). Then Robin wanted a
helmet, but they actually use body armour, so they wear it in their shield
slot. But then Wiglaf wanted a hat and they already had both body armour
*and* a shield, so they wear it in their ring slot.

There's been enough cases of these specific 'wear specific aux armour X in
specific other slot Y' that it feels useful to just give monsters an actual
aux armour slot. (Conveniently, we have been keeping around a dummied out
and never used slot in their equipment array for the last decade+ anyway.)

This commit implements said aux slot, and moves most monster aux equipment
into it. Alas, this cannot *completely* remove the aforementioned hacks
as a small number of monsters use multiple pieces of aux armour at once
(eg: Nikola uses gloves and a cloak), but is hopefully at least an
improvement in clarity.

Monsters can now also pick up aux armour in general (and there is a simple
function which should veto most nonsensicle combinations, like centaurs
wearing boots). This errs on the side of simplicity over thoroughless -
it's more important to avoid obviously incorrect combinations rather than
ensure all plausible combinations are possible.

(I also slightly improved the formatting of descriptions of monsters
wearing multiple pieces of gear at once.)

--------------------------------------------------------------------------------
4a997f1f38 | DracoOmega | 2026-07-31 15:09:15 -0230

Fix monsters not getting an AC bonus from shields of protection
As far as I can tell, this has possibly never worked. Certainly not for
a very, very long time.

--------------------------------------------------------------------------------
d73650e527 | DracoOmega | 2026-07-31 15:09:15 -0230

Allow goblin riders to pick up equipment
But since their tile has a spear baked into it, restrict them to other
polearms they can wield.

--------------------------------------------------------------------------------
1d9b0128ca | DracoOmega | 2026-07-31 15:09:15 -0230

Separate the body/torso size of some monsters
In much the same way that player naga are able to wear medium-sized items
on their upper body, despite otherwise being large.

This also applies to rider monsters (ie: goblin riders should wield items
as if they are small, despite the wyvern they're on being larger).

(This does mean that it is now possible for centaurs to put on more types
of body armour they run across, which *might* be a concern in the
earlygame, though I am not sure it will happen commonly enough to matter.)

--------------------------------------------------------------------------------
8628ac3472 | DracoOmega | 2026-07-31 15:09:15 -0230

Tweak/improve monster equipment pickup logic
The logic used to control whether a monster considered a piece of equipment
on the ground to be better than what they were currently using was very old
and contained a bunch of... dubious valuations. For instance, it considered
most weapon brands to be exactly equivalent to a +2 enchantment (meaning a
+0 rapier was considered stronger than a +0 distortion dagger). Many
unrands did 'okay' on accont of generally having high plusses, but (for
instance) a +2 scimitar was considered stronger than Gyre and Gimble.

This attempts to make that a little more reasonable (generally making
monsters more strongly prefer branded weapons and especially strongly
prefer unrands - which are more memorable to the player, even if in some
cases not automatically stronger.). It doesn't bother to look at artprops
directly (and I think this is largely not worth the effort), but I think
the shape of this should still be an improvement.

As for armour, it now values resists much more highly (which it did check
already, but considered each pip equivalent to only 1 AC) and no longer
cares about Rampaging (which it valued at 5 AC, despite not even working on
monsters....)

Also, armour pickup had a check that universally prevented all monsters
with any wizardly spells from using any armour heavier than leather. This
included such spindly wizards as: vault wardens and vampire knights (and
so forth). Obviously, spell failure doesn't exist for monsters, but there's
still a certain flavor logic to monsters like annihilators not grabbing
the first plate armour they put their eyes on. So instead, this check now
prevents them from picking up armour that is more encumbering than whatever
they were already wearing (unless they have the fighter flag, in which case
they can wear anything).

Monsters will now try a little harder to hold onto their shields (only
switching to a two-hander if it is a major damage increase, as opposed to
'any damage increase').

Finally, a couple tweaks other tweaks:
 -Imperial Myrmidons no longer try to avoid picking up a weapon that isn't
  a long blade (this code was in the wrong place and never actually worked,
  but it doesn't seem compelling to me to fix it instead of remove it)
 -Maggie/Margery will only wear dragon scales (now that spellcasters can
  actually pick up heavier armour, they might otherwise have lost their
  signature look).

Most of this code isn't very load-bearing these days, since the player
can't actually *see* the monsters making terrible decisions, but it seems
better to be vaguely more reasonable.

--------------------------------------------------------------------------------
82632502c2 | DracoOmega | 2026-07-31 15:09:15 -0230

Rename a couple deprecated weapon brands to reduce confusion
SPWPN_FLAME is overly similar to SPWPN_FLAMING, considering it's a removed
brand. Try to make it a little less likely to use the wrong one by mistake.

--------------------------------------------------------------------------------
dfde8405ed | DracoOmega | 2026-07-31 15:09:15 -0230

Fix a minor issue with cursor memory when targeting
If the player manually targeted a space that affected nothing with a spell
or other ranged attack, the UI was supposed to remember that spot for the
next time the player aims something (until they move). At some point, this
behavior seemed to get lost and a bunch of code was setting
you.prev_grd_targ without ever reading it.

(This may be minorly helpful in situations where the player is aiming at
invisible creatures.)

--------------------------------------------------------------------------------
6f7dcbefd5 | DracoOmega | 2026-07-31 15:09:15 -0230

Refactor and tidy a bunch of agrid handling code
This commit does several things to slightly tidy and reorganize areas.cc
and related code:

-Removes some dummied enum members whose save compat code was completely
 unnecessary, since they were never marshalled anywhere.
-Reduces boilerplate for several common patterns.
-Removes an enum type whose presence was effectively duplicating another
 one.
-Inverts the default argument to invalidate_agrid() (since the other mode
 is needed in extremely few places by comparison).
-Unifies handling of items that affect the agrid into a new method,
 item_affects_agrid(). So long as any new item/ego is added there, there's
 no need for bespoke calls to invalidate_agrid() anywhere
-Degeneralizes a couple player-specific checks
-Fixes a minor bug where polymorphed holies wouldn't immediately update
 their halo size to the one of their new form

--------------------------------------------------------------------------------
febc4222c9 | DracoOmega | 2026-07-31 15:09:15 -0230

Slightly refactor monster equip/unequip handling
do_unequip_effects() was handling messaging, post-removal cleanup, and also
potentially vetoing unequipping items (including because they were cursed,
even though monsters haven't been able to get cursed items in years).

This commit removes various checks for cursed monster items and splits
do_unequip_effects() into two different functions: one for messaging and
another for internal cleanup, which can safely be called *after* the item
is actually removed. (This will be important for a subsequent commit.)

Also fix a minor bug where a launcher-wielding enemy who picks up a melee
weapon will falsely claim to immediately wield it, despite not doing so.

--------------------------------------------------------------------------------
e13d5d8e5b | DracoOmega | 2026-07-31 15:09:15 -0230

Don't bother specially tracking the Orb of Zot's location
Including updating it when the player drops it, which hasn't been possible
since ca22271 (14 years ago).

None of this code has served a purpose since ZotDef was removed. The aura
from it is only rendered when the player is holding it, so just use the
player's position as its center.

--------------------------------------------------------------------------------
7110868d1d | DracoOmega | 2026-07-31 15:09:15 -0230

Remove some nonsensical code and comment
The comment refers to a draft version of paragon rather different than the
one that ever reached master (which cannot equip launcher at all).

But even then, the code doesn't at all do what the comment implies, nor
does it make any sense. Rather than preventing paragons from unequipping
their weapons, it allows any dancing weapons which are somehow *also*
paragons to unequip themselves from themselves.

What in the world was I thinking when I wrote this?

--------------------------------------------------------------------------------
31fc7a1dcd | DracoOmega | 2026-07-31 15:09:15 -0230

Extend map_cell.flags to 64-bits
Since we've basically run out of space and some upcoming content wants more
of them.

--------------------------------------------------------------------------------
191f604fbd | DracoOmega | 2026-07-31 15:09:15 -0230

Don't leak the presence of halos or umbras via xv
xv-ing a tile inside a halo or umbra brought up a description of those
things, but this even worked for tiles out of LoS and was based on real
information, not remembered info.

This meant that if one was extremely methodical, you could, say, pinpoint
the location of Mennas on any previously seen tile. And if you used ?rev,
any tile in an entire unexplored level!

--------------------------------------------------------------------------------
d6871050d0 | DracoOmega | 2026-07-31 15:09:15 -0230

Display monster poison damage on xv (regret-index)
This can be calculated approximately as easily as elemental damage, so I'm
not certain why it wasn't already listed there.

--------------------------------------------------------------------------------
bf85ef064c | DracoOmega | 2026-07-31 15:09:15 -0230

Rename AF_CRUSH to AF_CONSTRICT
I realize it's been named this since literally the day constriction was
first added to Crawl, but also... why? Is there really any good reason not
to be named what it actually does?

--------------------------------------------------------------------------------
5b94f9fd2a | DracoOmega | 2026-07-31 15:09:15 -0230

Allow specifying monster reach and cleaving per-attack, improve xv
A number of monster attack flavours included innate reaching or cleaving as
part of their effect. Many of these duplicated other attack flavours except
for the part where they had longer range (eg: AF_ACID vs. AF_REACH_TONGUE).

This system was a bit inflexible and meant needing to make new versions of
a given flavour whenever we wanted a monster with it to reach.

Also, some of these flavours (such as AF_REACH) were deliberately retained
by derived undead, preventing those monsters from inheriting any new attack
flavour that derived undead ought to have (eg: a snapping turtle simulacrum
couldn't do any cold damage since its AF_COLD was completely overriden by
AF_REACH).

Now, each monster attack can specify reaching range and whether it cleaves
as independent properties. This allows new combinations to be made flexibly
and also for more simulacra/spectrals to actually function fully.

I have deprecated all attack flavours that merely duplicated an existing
one, aside from their reach.

(This also fixes a small bug where starflowers' second attack actually had
range 3 instead of 2, since the reach range of a monster's longest-range
attack was being applied to any attack that reached at all.)

In addition, range is now listed as a separate columm in xv, for monsters
that have any attacks with range greater than 1 (or cleaving). This
considerably improves clarity in cases where the presence of reaching
previously forced xv to append '(if damage dealt)' multiple times
(sometimes even multiple times in a single line!). The extra range from
polearms is also indicated, which could potentially make it clearer when
some of a monster's attacks are benefitting from their range and others
are not.

--------------------------------------------------------------------------------
083d3cba81 | DracoOmega | 2026-07-31 15:09:15 -0230

Refactor calculation of cleaving targets
get_cleave_targets() was used in multiple locations as a way to calculate
all targets in the player's attack range, even for non-cleaving attacks.
But since get_cleave_targets() itself also checked whether an attack
*should* cleave, this meant additional parameters to specifically bypass
this check (and some places that had to handle aqua form reaching
manually).

Instead, get_player_attack_targets() now provides this functionality (ie:
'list all targets in the range of any player weapon') without needing
parameters.

get_cleave_targets() now relies on the caller to have previously checked
whether an attack 'should' cleave (and at what range), which is done in
melee_attack::cleave_setup() in the common case.

This commit also fixes a handful of bugs:

-Since Coglins were added, the functionality of showing targets in cleave
 range when the player pressed v with a cleaving weapon was lost (even for
 players only wielding an axe). This is restored and improved to proper
 handle different combinations of weapons
-Coglins wielding a cleaving and non-cleaving weapon were often not
 prompted about attacks which might cause penance due to cleaving (never,
 if the cleaving weapon was in their off-hand, and only 50% of the time if
 it was in their main hand). The attack warning should now properly check
 both weapons all of the time.
-Coglins performing a reaching attack while a polearm and an axe would do
 nothing at all with their axe (even if other enemies were adjacent to
 them). Now it should also perform an attack with the axe in this case
 (equivalent to an 'empty' cleave against empty space).

--------------------------------------------------------------------------------
f2a4cef9f2 | DracoOmega | 2026-07-31 15:09:15 -0230

Improve All-Purpose Tempering's valid target criteria
(ie: the monster version of Tempering)

Can no longer affect Vv or piles of debris, but *can* affect splinterfrost
barricades.

--------------------------------------------------------------------------------
9660781d11 | DracoOmega | 2026-07-31 15:09:15 -0230

Fix emergency flight sometimes interacting oddly with temp forms
If the player's default form could survive in deep water, but their current
form can not, the game would think the water was dangerous for them in
some places and not in others.

As an example, if temporary flight expired over deep water, the player
would get a message about them falling into the water and emergency flight
activating every single turn, but it would never actually drain them.

Now, when checking for permanent swimming, we check *both* the player's
default form and current form.

(It's possible this may have some side-effects, but hopefully that is
fixing other niche bugs and not introducing new ones; it's not obvious to
me that there's any case where we want to know if a player can *usually*
swim if they also can't swim *currently*)

--------------------------------------------------------------------------------
d7da33514b | DracoOmega | 2026-07-31 15:09:10 -0230

Don't give miasma-immunity or prevent berserking while under DDoor
Miasma immunity was originally given to DDoor in 6c7b304 to prevent getting
rotted by it. Miasma hasn't caused rot in years, but even then it had
other side-effects. DDoor doesn't generally prevent the player from
accumulating poison or gaining status effects, and it's not clear why it
should in this very narrow case.

The logic for not allowing the player to berserk while under DDoor may
possibly have been that you're not 'alive' enough, however almost all
places in code that aren't dealing damage otherwise treat a DDoor player as
properly living. There are a *lot* of effects that would interact differently
if we considered the player partially non-living or undead during this
status, and it doesn't feel like the spell would benefits from that
additional complexity. So instead, I am removing the couple tiny cases
where it seemingly tries. (To be clear, going berserk still won't actually
give you any additional HP - that is capped somewhere else.)

--------------------------------------------------------------------------------
f952069ec4 | DracoOmega | 2026-07-31 14:56:36 -0230

Abort Heal Other for too high target HP *before* the failure check
If the player's invo skill was too low to ever pacify a monster, the UI
would abort without taking time or consuming resources. But it previously
rolled the chance to fail to use the ability *before* checking whether
using it successfully was impossible.

--------------------------------------------------------------------------------
3656f2daeb | Aliscans | 2026-07-31 11:43:16 +0100

Hide tile-only keys in the level map help outside tile mode.
The [ and ] keys had been included in the help for the level map
command with "(tiles only)" in their description. Drop this, and only
show the text in tile modes.

--------------------------------------------------------------------------------
e5bf83d7b5 | Isaac Clancy | 2026-07-28 22:17:57 -0500

Make the lua function dgn.vault_at return a pointer
The lua function dgn.vault_at was returning a copy of the
vault_placemnt at a location. Unfortunately, it is slow to copy a
vault_placement and because the object returned to lua is a wrapper
around a c++ object lua doesn't know how big it is and won't trigger
garbage collection until you have about 8000 of them (about 17 MB).

The only place using dgn.vault_at is the disco Pan colour function which
can work just fine with a pointer rather than a copy and runs
considerably faster.

This is also consistent with the c++ equivalent that returns a pointer.

--------------------------------------------------------------------------------
8bf6446ad2 | Medrano83 | 2026-07-27 23:45:21 +0200

Update Android SDK and Gradle
Starting August 31, 2026. New apps and app updates must target Android
16 (API level 36) or higher to be submitted to Google Play.

https://support.google.com/googleplay/android-developer/answer/
11926878?hl=en

--------------------------------------------------------------------------------
1e7925b4b1 | CrawlOdds | 2026-07-27 08:47:01 +0100

Preserve feature flavour on feature swap
This makes Xom's staircase shift preserve deep ice cave entry flavour.

Fixes #3902

--------------------------------------------------------------------------------
3e0666f4fb | CrawlOdds | 2026-07-27 08:24:48 +0100

Fix seed stability for unrand weapon generation
Following f74bb9b, the Lochaber axe would be a candidate for different
items depending on the player's skill, and gyre and gimble wouldn't be a
candidate item for any short blade. We fix these checks not to use the
full unrand.

--------------------------------------------------------------------------------
f74bb9bb89 | CrawlOdds | 2026-07-26 18:11:49 +0100

Fix crash in unrand checks for apostles
Since 5af3d4bd, we weren't sufficiently defining the unrand we checked
in could_wield, and so were crashing when trying to give unrands to
apostles. As well as fixing this crash, we make these unrands
sufficiently defined to check for monster-illegal unrands, and no longer
sometimes give these to monsters.

--------------------------------------------------------------------------------
f9a149a2b7 | CrawlOdds | 2026-07-25 12:11:57 +0100

Remove an obsolete test
This tests Depths:3 generates the Abyss entry, which it doesn't any
more. There isn't a like-for-like replacement because the generation is
now a range of levels.

--------------------------------------------------------------------------------
415d2be381 | CrawlOdds | 2026-07-25 12:11:57 +0100

Add a connectivity check for totally isolated dungeon areas.
We check for areas which:
- Cannot reach a non-hatch staircase by flying
- Have at least one floor tile (excludes boxes of lava etc)

This treats vaults as opaque, like our main connectivity check.

The reason we use flying travel as the bar here is that various
transparent vaults have hatches which are isolated by deep water, and
these should not be vetoed.

In testing:
 * This has a rather low veto rate - around 0.03% of all levels.
 * Manually examining 10 vetoes, I see 8 good ones of varying severity -
   including two Ziggurat entrances the player would never have seen -
   and two acceptable false positives where the level is connected but
   only through an opaque vault.
 * There were no vaults that systematically got vetoed in a large
   mapstat (though it is hard to rule out there being some very rare
   vault that is now unplaceable)

Some representative vetoes can be seen on the PR #5346.

Fixes #2444

--------------------------------------------------------------------------------
ebd98994ab | CrawlOdds | 2026-07-25 12:11:57 +0100

Move stone stair fixups before connectivity checks
We check our dungeon levels are accessible (including by using stone
stairs), but we were doing this before we culled extra stairs. This
reverses the order of those things.

Fixes #2182 (even more, as 1b44c4f made such bugs far less likely)

--------------------------------------------------------------------------------
90b3126987 | CrawlOdds | 2026-07-25 12:11:57 +0100

Make mapstat reproducible in-game and log seeds
For each distinct veto reason, we now log a single example seed and
level that produces it. To make this useful, we also change mapstat so
that it generates the same levels as the same seeded game. Most
obviously, this involves changing the branch generation order; it also
involves some other small extra tweaks.

This is useful when trying to work out what a new check is vetoing, as
you can pull out a seed from a veto and load it up in game.

The changes also affect objstat, for which they are neutral; we generate

--------------------------------------------------------------------------------
81a5335cbe | CrawlOdds | 2026-07-25 09:02:10 +0100

Fix minor exclusion info leak
We were using ground truth opacity data to place exclusions on seen
stationary monsters, revealing the walls around them even if those walls
had never been seen.

As a historical note, before 5a9698b this combined with the leak fixed
there to allow detection of stationary monsters in unknown terrain.

Also simply opacity_excl a bit.

--------------------------------------------------------------------------------
9a013e2f2f | CrawlOdds | 2026-07-24 09:33:59 +0100

Make companions follow through the Abyss
Monster followers were being placed as transiting to the destination
Abyss:n+1, but the Abyss in its infinite wisdom looks up all transits
via Abyss:1. This meant they followed you through the Abyss entrance
only if you were going to Abyss:1, and never through abyssal stairs.

While this behaviour may or may not have been intended, it's also
probably good for hostile monsters; diving into a scarier level to get
out of your current predicament is an interesting decision. So we make
only friendly monsters follow you into or through the abyss.

This also fixes a bug where if Okawaru's duel ends with monsters present
in Abyss levels other than Abyss:1, they failed to follow you back out.

--------------------------------------------------------------------------------
170ea3cddb | CrawlOdds | 2026-07-23 08:19:26 +0100

Stop infinite waits for ancestors healing (take 2)
Hep ancestors were sending an interrupt when reaching full HP, if
visible. If not visible, they never sent an interrupt, and we waited for
them indefinitely, triggering the buggy wait tripwire.

Now we track whether we have seen our ancestor injured during a delay.
If we have, we then fire an interrupt when they are on the screen and
fully healed.

In theory, they could still be initially injured, then wander off and
then  _never_ come back into LoS, and we'd wait indefinitely. But I
can't think how this would happen (at least without a "departed this
plane of existence" message), and interrupting for any loss of ancestor
vision would be annoying if we don't need it.

Fixes #1757 (probably - both examples there have Hep, and I can repro
that bug using this method)

--------------------------------------------------------------------------------
4e1d064212 | CrawlOdds | 2026-07-22 22:00:09 +0100

Revert "Stop infinite waits for ancestors healing"
This reverts commit b29fdba68a0e53c47d882153fbf58f24aa9b0891.

This would have interrupted all delays all the time, which isn't the right 
thing at all.

--------------------------------------------------------------------------------
b29fdba68a | CrawlOdds | 2026-07-22 21:57:56 +0100

Stop infinite waits for ancestors healing
Hep ancestors were sending an interrupt when reaching full HP, if
visible. If not visible, they never sent an interrupt, and we waited for
them indefinitely, triggering the buggy wait tripwire. Now instead we
check every turn, so when they wander back into LoS they interrupt us.

In theory, they could still _never_ come back into LoS, and we'd wait
indefinitely. But I can't think how this would happen, and interrupting
for any loss of ancestor vision would be annoying if we don't need it.

Fixes #1757 (probably - both examples there have Hep, and I can repro
that bug using this method)

--------------------------------------------------------------------------------
443fa8328d | Aliscans | 2026-07-22 17:33:08 +0100

Fix Mad Mage Mauler align
_format_dbrand() didn't calculate the width of unicode characters
accurately. padded_str() does, so let that handle the width.

This means that the two DESCR lines for the Mad Mage's Maulers are now
aligned in the same way.

--------------------------------------------------------------------------------
32e4f8b34f | CrawlOdds | 2026-07-22 16:03:25 +0100

Make unlinked item logs less rude
These debug logs alert us to important bugs, but printing them every
turn is a bit much. They will now only print once, until the level is
reloaded or they somehow become linked and unlinked again.

--------------------------------------------------------------------------------
9ba5819276 | CrawlOdds | 2026-07-22 14:22:35 +0100

Fix monster unlinked item messages from doubly-reset monsters
This fixes the flush of pending-reset monsters so that we remember the
mid of the monster, and only reset it if the monster we find at flush
time matches. This makes it safe to reset monsters before the flush,
which before would cause a reset on another monster, which orphaned
their items leading to an unlinked item message (and also just killed
them). The live example was shadow wraiths, who were getting killed
during dungeon building and then reset on level veto.

Fixes #5343

--------------------------------------------------------------------------------
a609f807e6 | Isaac Clancy | 2026-07-22 21:42:31 +1200

Fix placing a vault in wizmode making mimics real
When placing a vault into an existing level in wizmode, we remove all
existing vaults. Unfortunately, weather a feature is a mimic was stored
in env.level_map_mask and that gets reset when doing this. It doesn't
make a lot of sense to store weather a feature is a mimic in
env.level_map_mask has it isn't vault related so I've moved it to
env.pgrid. This also fixes a potential problem with swap_features were
it could change which feature was the mimic although I wasn't able to
get any of the places that call it to pass in a mimic in my testing.

--------------------------------------------------------------------------------
2f99b55773 | CrawlOdds | 2026-07-21 22:40:43 +0100

Fix stampeding monsters into shafts
The checks that the monster was still there needed updating following
the deferral of monster resets.

--------------------------------------------------------------------------------
84e60c1e85 | CrawlOdds | 2026-07-21 20:45:43 +0100

Fix autotargetting of squares out of LoS of the target
Explosions of radius 2 or greater can sometimes affect targets when
aimed at squares those targets can't see. We were not autotargetting
those.

--------------------------------------------------------------------------------
5af3d4bd96 | CrawlOdds | 2026-07-21 13:14:31 +0100

Let apostles broaden their unrands to wieldable weapons
Soften d05891f8, so that we only rule out unrands they can't wield. This
allows orc apostles to do the usual broadening, so that e.g. warriors
can get spellbinder, without letting them have giant clubs and such.

--------------------------------------------------------------------------------
ceecb58645 | Isaac Clancy | 2026-07-22 00:13:03 +1200

Fix wizmode placed mimic not redrawing immediately
If you placed a mimic in wizmode, it wouldn't show up until you exiting
examine mode. This was caused by wizard_create_feature trying to using
view_update_at to redraw the newly created mimic even though this only
redraws the foreground (items, clouds, and monsters) but not the
background terrain.

--------------------------------------------------------------------------------
2cd2f5b0a4 | Isaac Clancy | 2026-07-22 00:13:03 +1200

Change the default key binding for CMD_TARGET_WIZARD_CREATE_MIMIC
CMD_TARGET_WIZARD_CREATE_MIMIC was supposed to be bound to ^( but this
key binding didn't actually work. The reason is that we used the CONTROL
macro to find the key code for ^( but that macro expects its argument to
be an uppercase letter. There doesn't seem to be a great way to get the
key code for ^( so I changed the default key bind to ^F

--------------------------------------------------------------------------------
68b3bff940 | CrawlOdds | 2026-07-21 10:53:23 +0100

Fix webtiles text inputs going squiffy on window resize
22cf74fb55 changed how we layout textinput elements, but neglected to
remove a now-unnecessary handler for window resizing. This meant that
text inputs (e.g. skill target setters) had broken layouts after a
window resize (and persistently thereafter). We fix this by removing
that handler.

Fixes #1532

--------------------------------------------------------------------------------
d05891f8c9 | CrawlOdds | 2026-07-21 10:53:23 +0100

Stop apostles generating with illegal unrands
The rare monsters that specify allow_uniques in item generation can get
their weapon subbed out for a "compatible" unrand. Before this change,
this could override their specified weapon list, for example generating
them skullcrusher in the place of a great mace. Here we change things so
that we don't do type-broadening when generating an item for a monster.
This only affects orc apostles.

Fixes #4092

--------------------------------------------------------------------------------
8102ea0452 | CrawlOdds | 2026-07-21 00:45:11 +0100

Make some uniques' unrand generation more robust
A few uniques were missing force_item in make_mons_weapon. This turns
out not to actually matter, but they were only generating unrands
through a convoluted and fragile path (the unrand_idx was being treated
as a brand later in the function)

--------------------------------------------------------------------------------
4e0084fca1 | CrawlOdds | 2026-07-20 22:40:45 +0100

Fix a skill menu bug with console leaking into webtiles
The skill menu is one of the last few users of the old menu system. For
reasons I don't fully understand, if you trigger a force more while the
menu is up, the redraw from that force more is shown as a console
rendering of the map in the skill menu popup.

We fix this by waiting to apply experience and reset menu state until
the menu has been closed.

This fixes https://crawl.develz.org/mantis/view.php?id=11615

--------------------------------------------------------------------------------
13275d6dd9 | CrawlOdds | 2026-07-20 19:52:44 +0100

Fix navigation through off-level transporters
When navigating to a particular point (e.g. through ctrl+f, but not
through G), navigation through transporters on other levels was failing.
This is because while saving these levels we update the stair distances
in the travel cache, but this happens with the player off-level, so this
was reading the wrong level's transporter locations and therefore
failing to navigate correctly. We fix this by specifying a level to
pathfind, rather than assuming that we are pathfinding on the player's
level.

--------------------------------------------------------------------------------
743f274a0e | CrawlOdds | 2026-07-20 12:51:28 +0100

Fix a footgun with fear/mesmerism durations
Fear and mesmerism enforce and assert an invariant - that we are
afraid/mesmerised if and only if we have a fearmonger/beholder. This
invariant was being violated in a window which included the expiry
messages from the status. These expiry messages can cause us to check
that invariant (via interruping a delay) and crash. Removing
fearmongers/beholders is already careful to restore the invariant before
messaging for the same reason.

Today I believe this is only reachable by having a
runrest_ignore_monster mesmerising you and then resting, which is quite
contrived. But it has been more reachable in the past (see the issue
below) and remains a rake in the grass.

We fix it by adopting a pattern used by other durations, and handling
messaging manually in the duration expiry effects rather than as a
duration message.

Fixes #3333 (though it was already fixed by fear not being checked in
can_go_berserk)

--------------------------------------------------------------------------------
d2521a539a | CrawlOdds | 2026-07-20 09:33:48 +0100

Fix tooltips on relayout
Measuring the width of the stats area was recreating it, killing the
event handlers until the next stats update and orphaning their tooltip.
Instead just detach it and then reattach it after measuring.

Fixes #4038

--------------------------------------------------------------------------------
394360a2de | CrawlOdds | 2026-07-20 08:25:24 +0100

Don't autoselect weapon when character is random
If your previous character was random with a weapon, and you rolled a
new random character who that weapon was valid for, then the game would
autoselect the same weapon. This is often undesirable when the species
has changed.

Fixes #4698

--------------------------------------------------------------------------------
e0f07281b7 | CrawlOdds | 2026-07-20 08:10:18 +0100

Fix an unlinked item message
When we fail to place a monster during level placement, we need to
destroy its inventory. We were doing this in one failure path but not
the other, leading to dbg-scan messages.

Fixes #5343

--------------------------------------------------------------------------------
a04e86051b | CrawlOdds | 2026-07-19 23:11:41 +0100

Hide tooltips when statuses expire
If you were hovering over a status when it expired, you got a permanent
tooltip. Now it goes away.

Fixes #4544

--------------------------------------------------------------------------------
f2919c6e55 | CrawlOdds | 2026-07-19 21:43:32 +0100

Fix problem with djinni not training at max skill
Magic skills which had already been trained to 27 could be set to
training by other magic skills being turned on, causing the player not
to be told to train new skills and indefinitely waste skill points.

Fixes #3897

--------------------------------------------------------------------------------
a8e057999a | CrawlOdds | 2026-07-19 21:43:32 +0100

Fix !experience not selecting djinni magic skills near to 27
While previewing the level up, they were mutating the skills we were
training, meaning skills close to 27 were never selected by default on
the experience screen. This didn't happen for skills other than djinni
magic, because of the way _balance_magic_training() sets djinni skills.

This seems highly relevant to #3509 (but I was not able to repro that
exact bug).

--------------------------------------------------------------------------------
a3eea6ddbd | CrawlOdds | 2026-07-19 19:45:18 +0100

Fix a webtiles menu issue
In the rare case where we have a text popup on top of a menu with
hotkeys, the hotkeys were swallowing the keys that applied to them. The
only examples I've been able to find are help menus during character
selection, as described in the fixed issue.

Fixes #2193

--------------------------------------------------------------------------------
2dce783617 | CrawlOdds | 2026-07-19 19:18:47 +0100

Give Ozocubu's armour a trivial targetter
By tagging it spflag::selfench. This means it brings up a targeter with
forced targetting. It has no other effect as no monsters use it at the
moment, but if they did they'd probably appreciate knowing it's a self
enchantment.

Fixes #3811

--------------------------------------------------------------------------------
8e159b2936 | CrawlOdds | 2026-07-19 17:26:03 +0100

Fix a spurious coglin distortion removal message
When a coglin unequips distortion, it can relocate them and interrupt
the unequip delay. We add a passwall-style interrupt_block to prevent
this messaging us.

--------------------------------------------------------------------------------
9e9c337617 | CrawlOdds | 2026-07-19 17:26:03 +0100

Let coglins equip offhand items without unequip
Coglins who end up with a single weapon in their offhand are then unable
to use an offhand item without unequipping it. This is unexpected, as to
the user it looks like they just have a single weapon, as is sad in the
case of distortion or other nasty unequip effects. So when we equip an
offhand item, we now silently swap the item to the coglin's main hand.

Similarly, in the case where the coglin has two weapons, we offer a
choice of item to unequip.

Fixes #4827

--------------------------------------------------------------------------------
d0518a0150 | Isaac Clancy | 2026-07-19 22:20:26 +1200

Fix wizmode placement of encompass vault generating duplicate uniques
Before generating a level the builder would save the list of used unique
monsters in `temp_unique_creatures` and the list of used unique items in
`temp_unique_items`. It would then restore the lists of used unique
monsters and items to these values at the start of every attempt to
generate the level in the `dgn_reset_level` function. This worked great
to recover from fails when generating a level. However, the
`dgn_reset_level` function was also called when placing an encompass
vault in wizmode which would cause it to restore the lists of used
unique monsters and items to the values they had just before the last
time a level was generated.

--------------------------------------------------------------------------------
e8d8efbb73 | CrawlOdds | 2026-07-19 09:09:30 +0100

Make autoexplore take visited transporters
In the (very rare) case that the most efficient thing for autoexplore to
do was take a visited transporter, it would instead go and stand on that
transporter and silently stop. We fix this so that it will take them,
consistent with other modes of travel.

In doing this, we refactor how we get non-move commands a bit.
Previously one function decided we should not move (because we'd reached
our destination, got blocked, or should take a transporter/stair), and
another then inferred its intent. This seems unnecessarily duplicative,
and would have been tough for the case of items on transporters in
greedy explore mode.

Also, fixes a bug in the case that travel got blocked by a runed door
while standing on a transporter, in which case it would take that
transporter.

Fixes #4479

--------------------------------------------------------------------------------
5c2ea9cce7 | CrawlOdds | 2026-07-19 08:44:11 +0100

Fix exclusions going beyond walls on reload
Exclusions on statues stop at glass walls. Before this commit, saving
and reloading the game would make them go beyond those walls, because
the monster wasn't loaded when calculating the exclusions opacity. Now
we update this when we recompute exclusion points.

Fixes #2907, fixes #3167

--------------------------------------------------------------------------------
b51359a412 | CrawlOdds | 2026-07-18 23:26:08 +0100

Remove temporary description and colour on corroded weapons
Corrosion is a status which is applied as a slaying bonus like many
others (including temporary ones such as fugue, devious, horror). There
is no particular reason for it to have the distinction of showing up in
your weapon's description when none of these others do. Flavourwise the
description is clear that it is you that is corroded, and all your other
weapons and those on the floor share this corrosion.

This also fixes the inconsistency between weapons showing as corroded in
the main weapon slot but not in the quiver, and indeed not being shown
as corroded in many other places.

Fixes #4885, fixes #5181

--------------------------------------------------------------------------------
0b11e0dbc8 | CrawlOdds | 2026-07-18 15:02:35 +0100

Fix a multikill on Blorkula with pain bond
When killing one of Blorkula's bats, we search for other bats, and if
there aren't any we revive him. However, we were only checking alive
bats, and in some circumstances like Usk's pain bond we reduce all the
bats to zero HP before any have monster_die called. When this happened,
we would kill Blorkula twice, including dropping two copies of his
equipment.

Fixes #4580

--------------------------------------------------------------------------------
d1854f4fe9 | CrawlOdds | 2026-07-18 13:13:32 +0100

Fix Ash portal reveal in descent mode
The Ash reveal wasn't getting persisted in the saved version of the
level. Descent does a reload of the level just after entering it,
clobbering the revealed portals.

Fixes #4582, fixes #3282

--------------------------------------------------------------------------------
6b81ce4688 | CrawlOdds | 2026-07-18 13:12:25 +0100

Fix ordering of dump messages on monk/faded worship
Noting worship before noting piety gain reads better.

Fixes #4589

--------------------------------------------------------------------------------
049aa0cdba | CrawlOdds | 2026-07-18 10:16:33 +0100

Stop useless casts of scorch, permafrost and plasma beam
Since the invisibility rework, these cannot target invisible monsters.
This means that casting them with no visible monsters around is
guaranteed to be a useless action, and it is better to block it rather
than let a player waste time and mana. This follows the example of
maxwell's capacitive coupling.

--------------------------------------------------------------------------------
0bed8fcdc9 | NormalPerson7 | 2026-07-17 20:47:09 +0100

Fix two subtle issues with stats panel weapon colour in WebTiles
Two related issues existed, relating to the text colour of the displayed
weapons in the stats panel (top-right corner) in WebTiles:
  1. Due to these colours being set on the JS side, which only has
     access to the inventory set of menu_colour options, the setting
     menu_colour += stats:<colour>:<weapon description> was essentially
     useless, as the inventory setting was always used.
  2. The item colour for the stats-weapon panel was not updated when a
     weapon was equipped, meaning it only displayed in the correct
     (equipped, typically lightgreen) colour when reloading the game, or
     when equipping the weapon directly from the ground.
Since the expansion of quiver functionality, these issues have not
existed for the quiver slot, as the entire quiver description including
the colour is computed on the C++ side. Hence (particularly with
launchers) you could end up with the same item in your weapon and quiver
slots written in different colours.

Fix both issues by passing the weapon colour(s) directly from the C++
side as a separate piece of information. Incorporate the old
unarmed_attack_colour information into this.

--------------------------------------------------------------------------------
0dae88635e | CrawlOdds | 2026-07-17 13:43:27 +0100

Don't trigger exploration conducts during view update
Exploration conducts can do things that cause a render, such as
messaging the player about a god gift. This can cause buggy half-drawn
views when the gift forces a screen update mid-viewwindow. More
generally, running arbitrary gameplay logic partway through updating the
view is unwise.

Instead, we count the newly-revealed conduct-triggering cells during the
view update and do the actual conduct-triggering in world_reacts.

--------------------------------------------------------------------------------
c8e2e2bb5f | CrawlOdds | 2026-07-17 13:43:27 +0100

Add wizmode command to set gift timeout

--------------------------------------------------------------------------------
f98f1aa03b | CrawlOdds | 2026-07-17 13:43:27 +0100

Fix some issues with 0-time actions
Various pieces of bookkeeping need to run every player turn, even if no
time has passed. Passwall finishing runs these, but other places such as
serpent's lash movement and shadowslip do not. This leads to some bugs:
- Traps which are triggered by these routes do not trigger until the
next turn, and not at all if the user saves and loads the game.
- Mesmerism and fear are not broken by these instant moves.

Here, we pull this bookkeeping into a common function, which we call in
the reacts phase main loop when the player does something which does not
take time.

For shadowslip and passwall, this also fixes a minor bug with messaging
for monsters leaving view if the players uses the ability to spot them
and then walks away.

--------------------------------------------------------------------------------
68aa40b427 | CrawlOdds | 2026-07-17 08:10:12 +0100

Don't warn for attacking a known invisible monster
The movement code was predicting we would move into it, triggering
movement warnings for icy armour etc

--------------------------------------------------------------------------------
af292bbb4c | CrawlOdds | 2026-07-17 07:55:02 +0100

Fix a message calling a hatch a portal
When we revealed an escape hatch and a portal on the same turn, we
grouped them together (and separately from stairs, if we revealed any of
those). In console if the message didn't fit on the line, this collapsed
to "found two portals". Now we classify hatches as their own thing
rather than portals stairs for these purposes.

Fixes #4833 (which was introduced when rock stairs were renamed to
escape hatches, in 2007)

--------------------------------------------------------------------------------
c827c1b0b7 | CrawlOdds | 2026-07-17 07:55:02 +0100

Wipe forgotten map in wizmode forget
This makes it not restorable by ctrl+U, and clears knowledge of
interesting features.

--------------------------------------------------------------------------------
b16d0a8e14 | CrawlOdds | 2026-07-16 08:55:41 +0100

Fix unique annotations on taking stairs
Unique annotations are set by seen_monster, which we call for monsters
who were previously not in view. This change makes us count monsters who
took the stairs with us or were otherwise placed (e.g. Blorkula
respawning) as "not previously in view".

Fixes #5338

--------------------------------------------------------------------------------
399383361d | CrawlOdds | 2026-07-15 09:02:31 +0100

Remove a few unnecessary invalid_monster guards
Some of these are no longer needed now we keep monsters around for
longer. We also fix the comments on a few others which we do still need.

--------------------------------------------------------------------------------
de7a14e033 | Isaac Clancy | 2026-07-14 18:50:19 +1200

Fix aborting reading a scroll incorrectly wasting it (pisaster)
If you read an identified scroll and then cancel out of using it, it
shouldn't waste the scroll. However, it was for scrolls that required
you to select an item.

--------------------------------------------------------------------------------
1582941bcf | Isaac Clancy | 2026-07-14 14:33:13 +1200

Fix aborting unidentified blink scroll
Commit 1919f11 changed the the meaning of the result of functions such
as uncancel_blinking and uncancel_identify etc in order to avoid a race
condition but forgot to update uncancel_blinking. This resulted in the
game resuming reading an unidentified scroll of blink on the next turn
after you aborted reading the scroll until you finally used the scroll.

--------------------------------------------------------------------------------
041f4b8945 | CrawlOdds | 2026-07-13 22:08:43 +0100

Fix bestial takedown autotargetting

--------------------------------------------------------------------------------
80f85d7f28 | CrawlOdds | 2026-07-13 10:50:18 +0100

Fix spurious reset of transiting daction monsters
When a transiting monster is killed by a daction, we erase it
immediately. We first need to erase it from the reset queue.

--------------------------------------------------------------------------------
1919f112b4 | Isaac Clancy | 2026-07-13 17:34:33 +1200

Fix monsters acting to early when you do an uncancellable action
If the player starts an uncancellable action that requires player input
such as Gozag's potion petition, exits the game (e.g. by losing
connection to the server or closing the game window), and then reloads
the game, the monsters would get to act as the game was exiting but the
player's action wouldn't happen until after it was reloaded. Even worse,
if the player died as a result of the monsters acting early, they
wouldn't see the game over screen or the monsters acting as they had
already left the game and when they went to resume the game it would
seem like their save file had mysteriously disappeared.

--------------------------------------------------------------------------------
fd51cbdff0 | Isaac Clancy | 2026-07-13 16:47:09 +1200

Remove unused variable EQF_STATUE

--------------------------------------------------------------------------------
2851b83466 | Isaac Clancy | 2026-07-13 16:28:52 +1200

Remove unused function _mon_cast_abil

--------------------------------------------------------------------------------
d319462c51 | Isaac Clancy | 2026-07-13 16:02:29 +1200

Fix the LOS cache not being invalidated when opening door
When the player opened a door using passwall, we wouldn't call
set_terrain_changed which resulted in the LOS cache not being
invalidated.

--------------------------------------------------------------------------------
2838e85e8d | DracoOmega | 2026-07-12 12:43:47 -0230

Don't attempt to forcibly add an Abyss entrance to Depths:3 (LazyMaybe)
Map validation code would still automatically add an entrance to the map on
U:3, if the floor was reloaded after being first generated.

--------------------------------------------------------------------------------
51bf80cd87 | DracoOmega | 2026-07-12 12:02:20 -0230

Fix monsters often claiming to aim at DEAD FOE
The logic for this was accidentally inverted by cd4325d

--------------------------------------------------------------------------------
06d6a11a8d | CrawlOdds | 2026-07-11 15:53:02 +0100

Fix a wizmode forgetting crash
Clearing the level map during an X-cursion was crashing, as we clamped
the cursor position to the non-existent known area of the map.

Fixes #5337

--------------------------------------------------------------------------------
47c9543c1c | CrawlOdds | 2026-07-11 04:29:29 +0100

Don't apply enchantments posthumously
When applying one enchantment kills a monster, we used to reset it
immediately, including clearing its enchantments, so apply_enchantments
stopped looping. Now that we defer this reset, we must explicitly bail
out of apply_enchantments if they kill the monster.

--------------------------------------------------------------------------------
3667fe44f7 | CrawlOdds | 2026-07-11 04:29:29 +0100

Keep monsters in mid cache until reset
This lets us remove the final effect cache, which existed for the
purpose of keeping around dead monsters. By default, monster_by_mid
still only returns live monsters, so this does not change behaviour for
the vast majority of callers.

--------------------------------------------------------------------------------
cd4325d217 | CrawlOdds | 2026-07-11 04:29:29 +0100

Defer reset of monster slots
When a monster dies, we freed its slot immediately, making any
references to that slot find a non-monster there. This is a perennial
cause of bugs, with the latest being an issue with the brand damage from
reapers when they fall into a shaft during a drag attack.

We instead defer the reset of slots until after final effects (or until
the level is saved), meaning that monsters that have been cleaned up
continue to have valid names, stats, etc. The other parts of monster
cleanup - such as removing the monster from the map - are unchanged, and
run immediately on monster death.

Callers who checked for monsters-which-have-been-die'd using invalid()
continue to work; a monster becomes invalid() on monster_die.

There may now be places where we previouly had to guard against invalid
monsters, and now could remove these checks. We don't try to find all of
these and improve them, so that we can let the core change settle in as
safe a form as possible.

--------------------------------------------------------------------------------
93e4083ba9 | Perry Fraser | 2026-07-11 11:23:34 +1200

fix: make spectator label singular when applicable

--------------------------------------------------------------------------------
c2c2f96fae | Zhang Haocheng | 2026-07-11 11:21:32 +1200

Break an infinite loop in handle_monsters (#3975)
When disjunction blinks a frenzied dragon away after the player starts
taking stairs, its immediate destination is not the player's position,
so the game treats it as heading elsewhere instead of following through
stairs (this covers batty creatures normally). Previously, "skipped
movement" set `ret` to true, suggesting energy was spent, but without
actually modifying energy, causing the monster to be re-queued because
it still has_action_energy.

The crash is masked because the next if-block set `ret` to false again
when mons == targ in non-frenzied state (immediately returned from
_monster_swap_places). It seems unclear whether this if-statement had
intended to cover cases where mons and targ are identical or not, but
simply restricting it to distinct monsters looks better.

This commit makes skipped movement set `ret` to false and ensures the
swap-or-fight logic only handles two different monsters. As a result,
a adjacent monster will not follow through stairs when disjunction is
active, unless it is so fast that it catches up with the player again
before they finish taking stairs.

Fixes #3975.

--------------------------------------------------------------------------------
744d22ced1 | Zhang Haocheng | 2026-07-10 00:52:08 +0100

Don't wait infinitely to regenerate HP/MP in &O
The wizmode version of autoexplore doesn't regen, but start_explore is
called without skipping autorest, causing the game to wait indefinitely
trying to recover HP to full and crash upon reaching 2000 turns.

Fixes crawl#4028

--------------------------------------------------------------------------------
ad7af12997 | Nikolai Lavsky | 2026-07-09 15:31:32 +0300

feat: make &H clear a couple more negative statuses
This commit lets wizmode super healing cure the -Swift (28ce492b) and
Ostracised (6aa28961) statuses.

--------------------------------------------------------------------------------
ec49406eb0 | gammafunk | 2026-07-07 21:48:42 -0500

Add randart scarves to some vault item sets
Scarves were allowed to be randarts (again) all the way back in 0.30,
but I never updated a few auxiliary armour definitions to reflect this.
These are used in gauntlets, ghost vaults, and a smattering of other
vaults. It's likely that these definitions should be replaced with the
newly available `any aux armour`, so long as that is compatible with use
of either `randart` or `good_item`. I'll make that simplification in a
later commit, if that turns out to be the case.

--------------------------------------------------------------------------------
93eb4e48af | CrawlOdds | 2026-07-07 16:57:09 +0100

Give LRD a no-hostiles-in-range check
This lets us correctly mark whether it is currently useless.

--------------------------------------------------------------------------------
2af20b573a | CrawlOdds | 2026-07-07 16:07:47 +0100

Allow pillars of salt from Rimeblight under Gozag
812a268 made rimeblight kills give gold, but they also suppressed the
pillar of rime from the kill. This was incorrect; rimeblight does not
conceptually consume the corpse of its victims, as can be seen from its
compatibility with zombification - the reason it suppresses corpses is
visual rather than mechanical.

Here, we make these kills produce both pillars of rime and gold (but
still not corpses).

This also fixes a bug whereby rimeblight kills were not recorded in
morgues.

--------------------------------------------------------------------------------
47b49b7c1c | CrawlOdds | 2026-07-07 11:53:25 +0100

Add rest_wait_ignore_mp to the options list
Fixes #5325

--------------------------------------------------------------------------------
812a268367 | CrawlOdds | 2026-07-07 10:07:54 +0100

Give gozag gold on rimeblight kills
Like other necromancy which consumes corpses, Gozag trumps this and
stops the pillar of rime effect.

Fixes #5333

--------------------------------------------------------------------------------
060c873c3b | CrawlOdds | 2026-07-06 20:06:12 +0100

Make DjBe playable again.
Trog was banning all their spells, causing a crash on game start.

Fixes #5332

--------------------------------------------------------------------------------
275830e5ba | CrawlOdds | 2026-07-06 19:37:37 +0100

Honour coordinate viewing option in level view

--------------------------------------------------------------------------------
90ee43798a | CrawlOdds | 2026-07-06 19:37:37 +0100

Describe things under the cursor on the level map in tiles
We use similar conventions to x on visible squares (which are more
pleasing than what x does out of los), except using the players map
knowledge not the truth.

Now that the message bar is more useful in X mode, we flip the default
for tile_level_map_hide_messages so that it isn't autohidden in
webtiles.

--------------------------------------------------------------------------------
2149569b0a | Aliscans | 2026-07-06 19:31:15 +0100

Describe things under the cursor on the level map in console.
Describe the item/monster/terrain displayed under the cursor in the
level map (only list terrain if the monster_item_view_features option is
set for it), and show when there are other things in the square.

To make space, hide the list of stairs whenever something is described
like this. This will normally only affect a small minority of cells. Add
an "always show stair list" key.

Committer's note: tiny tweaks to display of invisible monsters (these
have a monster_info now) and changed the overflow string.

--------------------------------------------------------------------------------
88b023abf1 | DracoOmega | 2026-07-06 14:18:31 -0230

Fix xv overestimating monster damage for some brands (ebonnov)
Accidentally broken by 1c91e83 (somehow)

--------------------------------------------------------------------------------
9975744c90 | Aliscans | 2026-07-06 11:35:39 +0100

Give a description to items the player has detected but not seen.
Let the "examine tile" function describe items which has been detected
(for instance) by a gnoll.

This gives the item a name and description, and lets
full_describe_square() describe items which aren't in a stash.

--------------------------------------------------------------------------------
e094053662 | DracoOmega | 2026-07-06 01:56:03 -0230

Fix a Haunt crash when casting on an empty space
When 01f08a5fe removed some code from cast_haunt(), it was supposed to come
with giving it a targeter that enforced that restriction itself. For some
reason, that line of code never got added (I swear I remember doing
this...)

--------------------------------------------------------------------------------
598ad577b8 | DracoOmega | 2026-07-05 19:08:13 -0230

Fix invis monsters sometimes being incorrectly listed in webtiles (Odds)
This (deeply dissatisfying) method used to get the identities of invisible
monsters whose locations were never known to the webtiles monster list was
in mild disagreement with get_unknown_in_los(), resulting in the game
sometimes claiming things were nearby that were very unlikely to be nearby.

--------------------------------------------------------------------------------
4a731d5719 | Aliscans | 2026-07-05 20:42:58 +0100

Show the in-game colours in the monster help lookup.
As things stood, monsters were set to be shown using the character used
in the game, but with the default colour for that monster (if you set
"mon_glyph += rat : white U", a rat would appear as a white U in-game
but as a brown U in the help).

Make it reflect the preferences.

--------------------------------------------------------------------------------
f2e42f2ff0 | CrawlOdds | 2026-07-05 15:46:29 +0100

Make forced removal of items cascade.
In various situations we force the removal of items, or simulate such
removal. This was not cascading through the effects of slots those items
provided. We fix this.

This means that:
* Ash will block mutations that shatter curses via slots (e.g. horns 3
  is blocked if the crown of vainglory has a cursed ring on it)
* Wizmode species changes remove transitively unavailable items.
* Form and item removals and their previews/warnings include the effect
  of transitively removed items (in the somewhat rare case that these
  are being removed rather than melded - melding was already working
  transitively).
* Loading an inconsistent player transitively cleans up their slots.

--------------------------------------------------------------------------------
f876266f55 | CrawlOdds | 2026-07-05 14:45:14 +0100

Don't duplicate letters in quiver menu (bobkiller)
In focus mode, items were taking their letters from their inventory
slots, but this causes duplication across categories. Instead, just show
items alphabetically (but continue to use the real hotkeys for spells
and abilities)

--------------------------------------------------------------------------------
01e22e3a22 | CrawlOdds | 2026-07-05 12:30:40 +0100

Fix chain removal from mutation removal
Fixes #5324

--------------------------------------------------------------------------------
6b413c78bc | CrawlOdds | 2026-07-05 12:30:40 +0100

Fix abandoning Ash
We were modifying a vector as we looped through it.

Also, add handling of chain removals.

--------------------------------------------------------------------------------
971df940f6 | CrawlOdds | 2026-07-05 12:30:40 +0100

Fix chain removal on complex item sets
Chain removal worked well for individual items, but for complex sets of
items it failed in various ways.
- If multiple items granted the same slot type, we didn't reduce it
  enough (e.g. Justicar->Macabre and Vainglory being melded did not meld
  enough of 5 rings)
- If an early item granted slots that weren't being used, later
  item-granting slots would be skipped
- If items in the removal list were also having slots reduced, we
  removed them twice (e.g. when going into wisp form and melding
  ring-granting items, we removed more rings than we had).

--------------------------------------------------------------------------------
11c2ce62cd | DracoOmega | 2026-07-05 02:10:11 -0230

Allow the game to generate Depths:3 again
ed5ad33 moved the Abyss entrance away from Depths:3 and the builder is
asserting that the level is invalid because it can't find an Abyss entrance
there.

It's not great to just *never* check for a required feature in level
validation anymore, but this seems much more complicated now that the
portal is randomly on one of 3 floors (and its placement handled via
serial vault). check_map_validity() operates on a single floor and can't
easily tell what may or may not be on some other floor.

So, while I'd like some better future solution to map validation here,
let's at least not softlock all players in the meantime.

--------------------------------------------------------------------------------
2a65d468de | DracoOmega | 2026-07-05 02:07:24 -0230

Silence a warning in non-tiles builds

--------------------------------------------------------------------------------
f659d49870 | DracoOmega | 2026-07-05 01:57:26 -0230

Brief disable orbs of mesmerism on changing floor
While the orb of mesmerism's effect seems reasonably balanced in most other
circumstances, it is overly effective in stair-dancing scenarions. A
guaranteed AoE daze upon entry allows the player to arrive safely, hit
exactly one monster to snap them out of their daze, and pull them back
across the stairs with them - no matter what amount of threat is involved.
It is simply too consistent at creating 1v1s in this scenario, with little
risk involved.

Now, the orb briefly goes on cooldown whenever you take a stair, removing
the most degenerate case.

I've hesitated on this change for a while, in search of a more clean
solution. But every other idea I've been able to come up with (eg: making
daze not block monsters from taking stairs or making the daze effect itself
much less reliable) feels even worse. And since the orb doesn't seem
problematic outside of this specific issue, I'm hoping this will be
a tolerable band-aid.

--------------------------------------------------------------------------------
583e8ec10e | DracoOmega | 2026-07-05 01:57:26 -0230

Heal lurker monsters when they return to lurking
(Since no state changes will happen *while* they're lurking, meaning
injured monsters would never heal.)

--------------------------------------------------------------------------------
4fac51aaa5 | DracoOmega | 2026-07-05 01:57:26 -0230

Fix antique champions not being affected by LRD (mrmagolor)

--------------------------------------------------------------------------------
29ab28c0cf | DracoOmega | 2026-07-05 01:57:26 -0230

Relax Polar Vortex's range check
It was prompting for targets not being in range if they were more than 5
tiles away when you cast it. Which is indeed the maximum range of the
spell, but the damage over time nature of it means that enemies at range 7
are extremely likely to be inside it by the time it even reaches range 5,
anyway. Let's not require a force cast if there's at least something in
LoS.

--------------------------------------------------------------------------------
f6cdb73c28 | DracoOmega | 2026-07-05 01:57:26 -0230

Give Goji's unmounted form more logical stats
This was effectively a dummy monster, but now that it's possible to get him
as a zombie, he probably shouldn't fly and have fast movement.

--------------------------------------------------------------------------------
d35d7b93a6 | DracoOmega | 2026-07-05 01:57:26 -0230

Fix some oddnesses with zombifying mounted monsters
When killing a mounted monster with effects like Death Channel, you could
produce two separate spectrals - one for the mount and another for the
mount+rider combo (ie: a goblin rider could turn into a spectral wyvern
and a spectral goblin rider, somehow duplicating the wyvern.)

You were also seemingly unable to get a two different zombies, but either
the mount (rarely) or the merged monster. Even wierder, as a zombie, those
goblin riders would look like goblins, yet fly and move fast.

Now, derived undead effects should be able to make undead out of each
half of the monster separately, but not both together. And yes, you can
get two zombies out of one at once.

--------------------------------------------------------------------------------
f35382dc01 | DracoOmega | 2026-07-05 01:57:26 -0230

Rename the deep elf pyromancer/zephyrmancer enums
Was mildly confusing that they were still FIRE_MAGE and AIR_MAGE

--------------------------------------------------------------------------------
ad4573bb30 | DracoOmega | 2026-07-05 01:57:26 -0230

Remove some needless code from god_speaks
The fake monster (used only as a dummy to let do_mon_str_replacements()
work) always counted as visible to the player, which had some very minor
effects (eg: causing it to query the name of the monster and search for
some string replacements that would never be used).

Also, we were resetting it and saving/restoring part of the mgrid every
time we called god_speaks, which seems pointless since it never touches
the mgrid in the first place.

--------------------------------------------------------------------------------
1c7719eb94 | DracoOmega | 2026-07-05 01:57:26 -0230

Silence an unused variable warning

--------------------------------------------------------------------------------
ed59d2e2b0 | DracoOmega | 2026-07-05 01:57:26 -0230

Compute somewhat less when getting names of known-invisible monsters
Patterened vaguely after the structure done for regular monsters (ie: don't
bother computing AC, EV, other stats when merely fetching a name).

We're slightly inconsistent about ordering a lot of this and it's still
sort of a mess.

--------------------------------------------------------------------------------
d6bbe592d8 | DracoOmega | 2026-07-05 01:57:26 -0230

Fixup invis name fix

--------------------------------------------------------------------------------
f843cfa6bb | DracoOmega | 2026-07-05 01:57:26 -0230

Make monster displacement from casting Invisibility respect traversability
In other words, rather than a true blink, it has to be somewhere they could
walk to right now (respecting the presence of creatures). Most
consequentially, this means orc wizards can't invis themselves to the other
side of you in a corridors (but also not across rivers, etc.)

(It feels maybe a *bit* weird to have a blink-yet-not-quite, but I might
be happier with the effects of this one.)

--------------------------------------------------------------------------------
af70f0826a | DracoOmega | 2026-07-05 01:57:26 -0230

Make Goji slightly more consistent about falling off their moth
Any damage taken that lowers them to 40% of their max HP or below now
always kills them (leaving the moth alive), instead of them sometimes
limping along to the very end.

--------------------------------------------------------------------------------
03b01da8bb | DracoOmega | 2026-07-05 01:57:26 -0230

Attribute deaths from Goji's ghost moth to Goji
For stat tracking.

--------------------------------------------------------------------------------
a702e4f470 | DracoOmega | 2026-07-05 01:57:26 -0230

Fix known-invis monsters getting 'invisible' appended to their kill source
eg: deaths by a known-invisible Sigmund would be attributed to 'the
invisible Sigmund'.

And while it's genuinely cute to see quantitative numbers for how much more
dangerous a unique is when they cannot be seen, it generally plays a lot
worse with Sequell.

(I am not 100% comfortable with the code solution to this, which has a
wider number of effects than just scorefile entries, but hopefully it is
fine in all the other cases, too.)

--------------------------------------------------------------------------------
26f5703f66 | DracoOmega | 2026-07-05 01:57:26 -0230

Fix specially-named monsters getting the wrong names while invisible
eg: known-invisible Pan lords would result in lines like
"The invisible  hits you.".

--------------------------------------------------------------------------------
4523b7cf0e | DracoOmega | 2026-07-05 01:28:03 -0230

Adjust Abyss rune placement behavior
be59399 intended to lower the rate at which players can find the Abyssal
rune at depth 4 and 5, but accidentally (due to an off-by-one error) made
the chance of placing a rune any time the Abyss generated a new area 100%!
Whoops.... (And also increased the rate on Abyss:3 by 50%, for good
measure.)

However, after more time has passed, I believe that even dialing it back to
the numbers I originally intended would still leave the chances of the
player entering the Abyss virtually on top of the rune much too high.

So now, the player is required to explore a certain amount of the Abyss
before the rune has any chance to place. This is based on the number of
times the Abyss generates new areas, rather than tiles explored (the latter
can vary a *lot* with how open the map randomly is, and I don't want to
penalize avoiding open areas).

Teleport from ?tele scrolls will always move the player 'backwards' (ie:
reduce the number of Abyss areas they count as having explored), though
other forms of teleport (including the Abyss itself pulling you around)
will not. (This is to keep it from being unintuitively a good idea to
immediately burn a couple ?tele scrolls to skip most of the exploration).

The rate of generating the rune *after* minimal exploration is complete is
still meaningfully faster than it was in 0.33, for the record.

--------------------------------------------------------------------------------
ed5ad332d4 | regret-index | 2026-07-05 01:28:03 -0230

Move the Abyss entrance from Depths to D:13-15 in a new serial vault
This dungeon restructuring has quite the multitude of purposes:

 * The Abyss has always been a plausible third rune in a regular game
   compared to the Hells and Pan, but the reliable entrances being placed
   in Depths gives off the impression it's a comparable choice of place
   thus meant for extended wins. While it's always been a nice part of
   Depths's loose identity to have multiple entrances to multiple differing
   differing unholy realms, it's going to continue to conspicuously stand
   out versus the Hell-Pan roulette plans emphasizing the two of those
   as more equal. Moving the Abyss to the floors one can also find the
   Vaults entrance both makes it seem like a more viable third rune option,
   reduces future jarring branch difficulty comparisons, and allows further
   honing in on Depths have a more coherent flavour identity
   after-the-fact.

 * The Abyss entry vaults themselves have been fairly unnoticeable outside
   of the box of outclassed abominations and unseen horrors or some now
   fairly lost Elf:3 deep elves, due to a historical lack of much
   attention for the vault set plus the limited number of Abyss denizens
   appropriate in threat level and on non-Abyss floors. Moving the
   entrance earlier allows more weaker monsters that can show up in the
   Abyss instead of just hurling around high-tier Abyss standout monsters
   like starcursed masses.

 * D:12-15 is a somewhat bland place after Lair, with a few branch
   entry vaults being the only guarantees of any vaults of interest in
   a level range after the branch ends of both Lair and Orc, and the
   Depths entry vault in particularly being fairly restrained by default.
   The Abyss entry vault itself can be another mild highlight that isn't
   just the same parades of bones and tengu and slime, especially with
   a more noticeable variation on this being done here.

 * After the combination of 1e4f93a scaling banishment to the player's XL
   (further updated in 99aa80d) and 00d325f forbidding wielding distortion
   weapons while worshipping good gods, it is now impossible for such
   worshippers to use such unwields to try and time reaching the Abyss:3
   rune depth at the minimal XLs to reach Abyss:3 and not Abyss:4.
   (This is very roughly around XL 17). Timing this sort of thing is going
   to be an inevitable issue slowly increasing over time as people
   consider it a more viable rune, so we might as well also make this
   something that doesn't rely on specific spoilery strategizing and just
   allow manually entering the Abyss earlier anyway.

 * Some people wanting to try out Lugonu have to get fairly lucky to get
   them any passably early in the game, due to the only guaranteed
   entrances being in Depths, though the entire flavour of Lugonu means
   we also don't want to give them any Temple or overflow altar
   arrangement. With future Lugonu changes being planned to potentially
   make them a reasonably enticing planned god for a character even
   outside of exiting the Abyss, being able to go for the god with the
   caveat of the risk of entering the Abyss to do so is a reasonable
   answer to such desires and to support future overhauls.

As such, this commit moves the guaranteed Abyss entries each game from
randomly on each floor of Depths to a serial vault on D:13-15- such a
change is meant to inherit the old identity of the entries appearing
multiple times across Depths in a new unique identity of visibly
"corrupting" the level with multiple entrance vaults instead.

This serial vault comes with new vaults nearly tripling the vault count
to enable three categories of monster density ("empty", "sparse", and
"threat" internally), and then places three entries in total: either 1 of
each, or two empty entries and one fully threatening one. These vaults
mostly use monsters shared in both late D and the Abyss, with scattered
exceptions of brain worms, small abominations, raiju, ynoxinuls, and
(most frequently) abyssal acolytes, all of which are reasonably
appropriate for the depth. (With new threat levels established, this also
means nerfing the previous Abyss entries containing many large
abominations, or liches, or Elf:3 deep elves). Said vaults have some mildly
further degrees of decoration than previously, and regularly emphasize
weird vault connectivity and integration tricks that should hopefully
stand out further, but also be fairly weaker than many of the nasty vaults
that can use many 9s and 8s in D:13-15 already. Hopefully, this should
reasonably work out.

(This also comes with specifying Abyss entrance locations in the four
encompass vaults that can currently rarely place on D:15 as the Depths
entrance, and save compat written up to basically just place a plain
random Abyss entrance on Depths:3 if a save finished D but didn't generate
Depths yet. This commit also doesn't move the Abyss entrances out of
vaults earlier or later, as such entrances have been already scattered
across vaults across the game to begin with.)

--------------------------------------------------------------------------------
6fbb92a129 | regret-index | 2026-07-05 01:28:03 -0230

Further tweak the Abyss monsters pool
 * With endgame players no longer ever going through Abyss:1 as of
   1e4f93a, and with the ever-increasing interest in making the different
   Abyss depths feel more distinct from each other, I am cutting a variety
   of top-tier endgame threats from spawning on Abyss:1. There's not that
   much of a meaningful difference between "unthinkable to fight" and
   "especially unthinkable to fight", it helps focus the identity of the
   Abyss more on its growing native monster pool, and it makes earlygame
   banishment feel slightly less absurd (+ more capable of trying to
   escape via killing monsters) while still threatening plenty with the
   rest of encounter possibilities.

   As such, one can no longer encounter bone or quicksilver dragons,
   ancient or dread liches, classed draconians, or hell sentinels on
   Abyss:1 outside of Abyss vaults.. They still spawn naturally on
   Abyss:2-7, of course.

 * On the other side of matters, a few more monsters have been removed
   from natural generation in Abyss:5- (jellies, fire bats) and Abyss:7
   (wraiths, shadowghasts, plain vampires, hell hounds), which also
   makes them less common on the floors between those and Abyss:1. While
   weaker undead and elemental fodder are nice for earlier appearances
   having more than bespoke monsters or demons, the breadth of the Abyss
   spawns pool is already large enough without emphasizing monsters
   well past their threat level, and it continues to help discourage
   any (silly notion of ) Abyss farming in 3-rune games.

 * After their buff in 72556b3, eyes of devastation are now reasonable
   monsters to appear on Abyss:7, so they now can spawn there too.

--------------------------------------------------------------------------------
bd093b527c | regret-index | 2026-07-05 01:28:03 -0230

Lightly distribute heralds and acolytes in the Abyss
This was split from the previous commits, due to the fact that heralds of
the Abyss can get abyssal acolytes as band members as they start spawning
at Abyss rune depth. Both are meant to be mildly uncommon versus the
entire breadth of Abyss spawns, and both get bands to emphasize their
organized worship as well as their threat levels.

 * In regular random generation, heralds of the Abyss have a 75% chance of
   getting a band of two other monsters, making it harder to flee the
   tentacle and giving their fights more distractions. The first support
   choice has a 50% chance of being an abyssal acolyte and otherwise
   chooses between rakshasas, cognitogaunts, or worldbinders, and the
   second fodder monster has a nearly equal chance to pull a large
   abomination, golden eye, or thrashing horror.

 * In regular random generation, abyssal acolytes always come with a band
   of one or two other monsters, which include a ~41.6% chance for a
   second abyssal acolyte and otherwise mostly small abominations, with
   fairly low chances each for efreets, freezing wraiths, and ugly things-
   all meant as relatively plainer and weaker monsters to give the
   ever-terrifying Touch of Paradox buff to.

 * Random generation wise, the weight adjustments to accomodate both
   includes scraping some small amounts of weight from monsters already
   plenty prominent in other parts of the game. (It also includes cutting
   bunyips from the Abyss list, as the effort to put at least one monster
   from every branch already is covered by the more interesting
   will-o-the-wisps.)

 * Vault-wise, only a small number of generically-themed Abyss vaults
   have either monster added, which most notably for rune vaults includes
   seething_liches (getting a nerf to the lich choices simultaneously),
   zappy_water_cross (which needs more Abyss linkage and a mild buff),
   and elephants_shrine (which also needs a buff).

While these have some natural other potential uses as was mentioned in
their additioning commits, they are also split off from this commit
due to some additional work needed for the either of them.

--------------------------------------------------------------------------------
7d914a3745 | regret-index | 2026-07-05 01:27:54 -0230

New monster: abyssal acolytes (distinct from mad acolytes)
With a non-unique high priest of Lugonu getting canonized in the previous
commit, the rather lower-tier word of "acolyte" (c.f. burial acolytes in
dac2563) is spared up for a lower-tier priest of Lugonu. These have
multiple intents beyond that: they'll provide another monster heavily
themed around Translocations effects as we've got a whole spell school
for, they provide another raw support monster that can work all game long
without being based on debuffs, and they provide another strongly
Abyss-themed monster that can function fine outside of the Abyss.

These abyssal acolytes are relatively weak priests of Lugonu in terms of
their own stats, mildly stronger than orc high priests at most. (They're
also visually further experiments in Abyss's horror / space themes in
being constantly distorted, as a tie-in to both their abilities and to
give the Abyss more things it does beyond ravenous mutating devourers.)
They have relatively plain dagger / whip / athame weapons, and a pair of
notable buffs:

 * They have a new Touch of Paradox spell, which grants a brief dozen-ish
   turns of the buff from the Bane of Paradox- a 25% chance to cast
   Manifold Assault as a natural ability with a 33% afterwards of blinking.
   This serves as another novel way to have a monster buff attacks beyond
   our frequent re-use of might or haste, slowly continues experimenting
   with giving monsters spells as a mechanic that can be deployed in the
   future, and has reasonable texture both midcombat (which threat is
   worth killing first) and between builds (threatening EV defenses and
   allies more than heavy AC melee).

 * They also have the newly-reintroduced Phase Shift from d12a6f1, which
   gives 15 EV and hides monster health bars as long as one lacks See
   Invisible. This of course, gets least one Translocations-themed monster
   actually using the new Translocations-themed effect in a fashion
   helping them survive long enough to use their other buff spell (unless
   people actually actively bother with See Invis). It also pairs abyssal
   acolytes with ogre mages in teaching about the new expansion of See
   Invisible into Phase Sight before it starts getting used in aggressive
   numbers in Elf and Zot.

These will appear throughout the Abyss in numbers higher than the many
random monsters but fairly lower than most other Abyss-exclusive enemies,
at rates similiar to lurking horrors and apocalypse crabs, in the
following commit. (They're probably functional all game long as support
enemy types, but mostly should be focused into Pan and Zot themewise
more than anywhere else.) Quite noticeably, they also will see some late
D usage with some Abyss entrance changes further into this commit batch.

Their tile combines an old orc sorcerer tile and the current Blink icon
together, both by roctavian.

--------------------------------------------------------------------------------
adcb34dd0c | regret-index | 2026-07-05 00:48:18 -0230

Revise mad acolytes of Lugonu into heralds of the Abyss
1e0e9fc added nearly-unique vault monsters fifteen years ago to guard a
rune vault, a very strange pairing of design intents that hasn't changed
despite many changes to the Abyss otherwise. These "mad acolytes of
Lugonu" were reskinned wizards (later reskinned occultists) with a unique
spell set of Malign Gateway, Smiting, Blink, Blink Other, Invisibility.
While it's nice to keep Malign Gateway rarer due to mostly just sharing
the spell with Mnoleg, it's also weird to still keep around rare vault
monsters in a place so important as a rune vault (even if the Abyss rune
vaults are wildly varying in theme and contents), and we can do with both
more Abyss:7 denizens as well as something that can embody the Abyss while
working outside it for some future vault plans. (Additionally, actually
making them count as chaotic mutants will help with future Lugonu plans.)

These new "heralds of the Abyss" (yellow `ψ`s in console) are somewhat
melodramatically named, but attempt to live up to such with fairly higher
defenses than previously alongside high cast rates. To match their
tentacle-faced tile and indicate they've ascended past being just a random
humanoid, they're now innately chaotic and weak to silver, and also
mutated up a suite of single pips of resistance to fire, cold, and
electricity. While they lose nearly all of their former invocations
(Invisibility, Smiting, Blink, Blink Other) as somewhat generic spells
that many monsters get (and which also feel weakly linked to Lugonu
otherwise), they get to keep some things and get one new trick:

 * They still keep Malign Gateway, as works much better in multiples with
   19424be permitting such, and which still functions fine in or out
   of the Abyss for forcing a certain amount of repositioning away and
   letting more monsters spawn while waiting them out. (Sometimes, they
   might even get lucky with foolhardy or trapped players being unable
   to escape!)

 * They also gain reasonably high cast rates for Warp Space, the
   AC-respecting irresistable-damage 3x3 explosion spell that has a chance
   to blink its victims used by wands of warping. This is fairly nasty-
   their HD makes it deal 3d20- but can help escape as much as it hinders
   such, can't be cast in melee range or with other monsters around, and
   it smoothly compresses together their previous damage and relocation
   spells into one memorably mean effect.

 * Their weapons have been somewhat upgraded- athames, quarterstaves,
   and demon blades / whips- and while in the Abyss they still mostly get
   to keep their distortion-branded weapons. We don't really use much
   distortion in the Abyss itself as drags the player deeper outside of
   spatial maelstroms, but the fear of such should let them continue to
   stand out as high-tier threats. 80% of their appearances in the Abyss
   and all of their appearances outside of the Abyss instead use a mix of
   chaos, draining, and fairly rare weapon-type-specific brands instead,
   as their mechanics are plenty usable elsewhere without threatening
   banishment itself, and to get in a little more direct chaos for one of
   our chaos gods.

This commit only replaces mad acolytes of Lugonu in the two vaults
currently using them, as they are meant to get bands with a monster added
in a following commit, but they will only spawn starting from Abyss:3
and scale slowly to Abyss depth. There are some plans to use these in
god-themed guaranteed demonic rune vaults with Pan changes partially slated
for this version, and they'd be perfectly fine in Abyss-themed Zot vaults
if anybody makes and submits those (and reflecting the branches runes are
kept is a nice angle to continue emphasizing for Zot vaults anyway).

The herald of the Abyss tile mildly modifies the tile Sastreii previously
made for mad acolytes of Lugonu, giving them a new palette and a faint
glow effect derived from Denzi's old jellyfish.

--------------------------------------------------------------------------------
473839d171 | CrawlOdds | 2026-07-04 21:31:04 +0100

Prevent shouting at inactive clockwork bees (tekkud)
It was slightly odd to be able to order around dormant clockwork bees
when a) they can't move or attack and b) you can't order around active
ones.

--------------------------------------------------------------------------------
8917bb4c26 | CrawlOdds | 2026-07-03 22:06:00 +0100

Mark tentacles as not following orders
They never really followed orders anyway, because the tentacle behaviour
code ignores the monster's target. This seems fine, because eldritch
tentacles are very eldritch and vines have another master. We make this
official to inform the player and to make it clearer in the code.

--------------------------------------------------------------------------------
0a6f76bff1 | CrawlOdds | 2026-07-03 22:05:39 +0100

Don't allow shouting orders without obedient allies
This could be confusing in the case when the player had non-orderable
allies.

--------------------------------------------------------------------------------
ba01ef36c9 | CrawlOdds | 2026-07-03 20:29:02 +0100

Improve freezing cloud's targeter
This makes freezing clouds targeter and uselessness resist-aware, so it
will no longer autotarget cloud immune or rc-infinity monsters.

We also fix the uselessness check so it no longer leaks the presence of
invisible monsters.

Fixes #5278

--------------------------------------------------------------------------------
f783bab7d3 | Isaac Clancy | 2026-07-03 22:26:17 +1200

Fix breaking a sealed door not restoring its tile
When a monster breaks through a sealed door, we wouldn't end the terrain
change that turned used to seal it (even though it doesn't do anything
anymore) which would result in any tile override that the door had not
being restored.

--------------------------------------------------------------------------------
4b5696c81a | Isaac Clancy | 2026-07-03 22:26:17 +1200

Fix opening a sealed door not restoring its tile
When a vault warden seals a door, we use a temporary terrain change to
change it into a sealed door. This removes its tile override. However,
if a monster then opens the door, we wouldn't restore its tile override.
Instead, end the temporary terrain change when opening a sealed door
which will restore its tile override.

--------------------------------------------------------------------------------
2c5d734d5f | CrawlOdds | 2026-07-03 08:34:28 +0100

Fix a crash from attracting summons
We weren't updating player knowledge or the scren after attracting
monsters. This was fine for most cases, because something else updated
the knowledge before our next turn, but in the case of summoned monsters
we could get to the next player turn with incorrect display of monster
positions. After recent changes, this also causes the game to crash in
some cases where we rely on monsterinfo's to match reality.

--------------------------------------------------------------------------------
469e1ddc71 | CrawlOdds | 2026-07-02 20:24:55 +0100

Stop vault warden tension checks breaking LoS
When we set the door to closed and then open to check tension, we
weren't updating LoS. This sometiems left the LoS cache thinking the
door was closed, e.g. stopping the player from firing through it. I
suspect it could also affect the tension check itself.

This is a consequence of 975d5eb, where we stopped setting the terrain
as changed when opening/closing the door. In the new version, we still
don't do most of the terrain change dance for the reasons stated in that
commit; we just do the LoS invalidation that set_terrain_changed does.

--------------------------------------------------------------------------------
ac8e495969 | CrawlOdds | 2026-07-02 17:40:01 +0100

Remove some casts that CAO might be objecting to

--------------------------------------------------------------------------------
902067d5bd | DracoOmega | 2026-07-02 12:30:47 -0230

Have inner flame place clouds via its explosion instead of separately
While the old method achieved the same effect almost all of the time, if
an inner flame explosion was set off in a wall, it could place clouds on
the other side of that wall, which could sometimes (depending on time
taken and monster speed) damage monsters before automatically dissipating
due to being outside the player's LoS.

Instead, place the clouds via the explosion itself, so they will only
appear on the same set of tiles.

--------------------------------------------------------------------------------
013a449154 | DracoOmega | 2026-07-02 12:30:42 -0230

Fix inner flame explosions not working when set off in walls (monkoooky)
If an inner-flamed wall monster died inside a wall, the explosion would
affect nothing at all. This is because explosions can only propogate
through walls if a monster is currently inside that wall (and the wall
monster is already dead by the time the fineff fires).

--------------------------------------------------------------------------------
b0bcc095c2 | DracoOmega | 2026-07-01 23:27:45 -0230

Tweak a few monster emergency spells
Emergency spells can only be used when a monster is heavily injured, and
those with very low cast rates are very unlikely to be used during that
period of time. This can lead to otherwise-ordinary spells being so
uncommon on some monsters that it's easy to forget they exist at all.

This changes several of these by either removing the spell entirely, or
making it non-emergency, based on whatever felt more appropriate for the
monster.

Merfolk Aquamancers and Revenant Soulmongers can now blink at any time
(though the latter won't use it if already at range), while Hell Knights
lose Blink and Kirke loses Invisibility.

--------------------------------------------------------------------------------
a44a8df585 | DracoOmega | 2026-07-01 23:27:45 -0230

Turn shadow wraiths into lurkers (and buff their stats a little)
They might still be on the weak side for some of their uses, but it's easy
to adjust again.

--------------------------------------------------------------------------------
b1db55a0c2 | DracoOmega | 2026-07-01 23:24:42 -0230

New unique: Goji, Who Cannot Be Seen.
A particularly intrepid goblin rider who managed to snag a ghost moth as a
mount, firmly believing that invisibility is transitive.

Appears far earlier than ghost moths normally could, but they themselves
are visible (and use draining gaze less often than a normal moth), meaning
they cannot surprise the player. And by the time the ghost moth itself
shows up, it's already wounded and the player knows where it is.

Always spawns wearing a scarf of harm, as some situationally interesting
loot to make them more worth fighting.

(This started as a silly joke, but I really could not resist.)

-------------------------------

Goji's tiles were made by regret-index, combining Denzi's ghost moth with
roctavian and Sastreii's goblin tile and roctavian's edits of ontoclasm's
spriggan rider tile.

--------------------------------------------------------------------------------
5c3d5c49ef | DracoOmega | 2026-07-01 23:24:42 -0230

Make the monster Invisibility spell include a short-range blink
Monsters now blink to a random location within 2 spaces of their initial
position when they cast it. The idea is to introduce some short-term
ambiguity to the invisible monster's location rather than frequently
leaving it completely obvious where the invisible monster is located.

There are, of course, many more ways now to have the interface reveal their
new location, but it seems like the effect might be more compelling if
there was at least a small moment where the player was unsure where a
monster was.

I am mildly concerned that this is a buff to one of the stronger earlygame
monsters, but hopefully it isn't terribly much in practice (and maybe even
outweighed by the degree to which the new invis UI helps the player
locate and remember where things are). We'll see.

--------------------------------------------------------------------------------
c96922cc59 | DracoOmega | 2026-07-01 23:24:36 -0230

Add a status icon for invisibility on monsters you can see
While this status doesn't do anything to a player who can see invisible
*most* of the time, it periodically results in confusing situations when
the players allies refuse to attack a seemingly-visible monster. This will
hopefully increase clarity in those situations.

(Icon made made by regret-index, modifying the armour of light ego icon
Darby made by modifying ontoclasm's invisibility icon.)

--------------------------------------------------------------------------------
5cd2158a7c | DracoOmega | 2026-07-01 23:19:06 -0230

Add a couple things missing from timeout_enchantments()

--------------------------------------------------------------------------------
d12a6f1027 | DracoOmega | 2026-07-01 23:19:06 -0230

Replace some monster invisibility with Phase Shift
Phase Shift is an attempt to capture some of the mechanical effects and
benefits of invisibility without the full 'player doesn't know where they
are' part (especially now that the Invisibility spell creates a bit more
ambiguity than it used to).

Monsters enchanted with Phase Shift have +15 EV and their health bar and
state of damage is hidden (which feels like a pretty impactful part of
Invis itself, when it comes to combat assessment). Having see invis negates
these benefits, just as it would for invis itself.

It currently replaces Invisibility on deep elf knights, draconian knights,
ogre mages, and Erolcha.

-------------------------

Bespoke phase shifted tiles were made by regret-index, modifying the
original deep elf knight and draconian knight tiles by roctavian, as well
as roctavian's edits of ontoclasm's ogre mage and Erolcha tiles. The
spell icon reuses the old Phase Shift icon made by roctavian, and the
fallback status icon for phase shifted monsters without special tiles
modifies the armour of light ego icon Darby made by modifying ontoclasm's
invisibility icon.

--------------------------------------------------------------------------------
c9a03a0854 | DracoOmega | 2026-07-01 23:19:06 -0230

More comprehensively describe the effects of invisibility to the player
Neither of the means of turning the player invisible described the benefits
of being invisible (and many new players assume it makes them considerably
more immune to enemies, while not realizing its offensive benefits.)

Also do this for monster invisibility (where the major EV and SH penalties
you suffer against the attacks of invisible monsters is most of the reason
that fighting them is dangerous, but is not described *anywhere* that I can
find.)

--------------------------------------------------------------------------------
3d08dabdc4 | DracoOmega | 2026-07-01 23:19:06 -0230

Remove some pointless code
This value isn't used anywhere I can see or think of. I'm pretty sure it's
a leftover from an earlier version of this spell which never hit trunk.

--------------------------------------------------------------------------------
3572c25b83 | DracoOmega | 2026-07-01 23:19:06 -0230

Remove some redundant code
All of this should be fully vetoed by the targeter already these days.

--------------------------------------------------------------------------------
8df4bba137 | DracoOmega | 2026-07-01 23:19:06 -0230

Don't make Orb of Mayhem's effect depend on the victim's sight
If another monster was invisible to a monster you killed while wielding
orb of mayhem, it would be ineligable to become frenzied. In fact, if you
killed a blind monster, all other targets would be ineligable (since it
can't see *anything* in that state).

--------------------------------------------------------------------------------
fe8f53c728 | DracoOmega | 2026-07-01 23:19:06 -0230

Make Transference require a visible target and refactor
In keeping with how virtually all other debuff/utility spells and abilities
that directly target a single monster require the player be able to see it,
prevent using Transference on empty space to 'guess' at an invisible
monster. (I wouldn't be surprised if nobody ever used it this way anyway
once, to be honest.)

At the same time, refactor a bunch of the code to put more of the target
checks and vetoes into the targeter (so it can hilight valid and invalid
targets better) and mark the ability as useless while your ancestor isn't
around.

(Also fix a minor bug where the game thought your ancestor could swap place
with a wall monster, though this merely result in wasting the invocation to
no effect, rather than anything more sinister.)

--------------------------------------------------------------------------------
4a211e1159 | DracoOmega | 2026-07-01 23:18:51 -0230

Add support for 'lurker' monsters
This is a new monster property that is both an attempt to capture some
elements of monster perma-invisibility (eg: surprising the player by
reaching attack range without being spotted) and some aspects of old
monster lurking, with (hopefully) far fewer of its technical burden and
design issues.

Lurker monsters simulate 'hiding' at a position on the map and springing
out in ambush when the player gets nearby. Unlike submerged monsters, they
aren't 'really' on the map and cannot be revealed by blind-firing at random
tiles. Instead, the spot they occupy is internally marked, and whenever the
player reveals it (or makes noise that reaches that spot), the lurker is
put into a queue to spawn near the player after a short length of time (and
possibly only if some other monsters are around).

Once it spawns visibly, it is a normal monster in all regards - fully
visible and without unusual combat behaviors. Although if it loses track
of the player and returns to wandering, it may resubmerge on some nearby
space.

My hope is that the combination of delayed-spawning *and* often preferring
to wait until some other monsters are around before spawning will make most
tedious player behavior to reveal lurkers impractical. There's no avoiding
getting near a specific tile or waiting after each step to see if a lurker
was revealed (you'd hit the Zot clock first). But might still allow the
potentially interesting behavior of 'surprise' appearances by monsters from
short range.

No monsters yet use this behavior, but a few will be added in subsequent
commits.

--------------------------------------------------------------------------------
057cec7183 | DracoOmega | 2026-07-01 23:18:51 -0230

Slightly simplify exp display for wizmode monster list command
For some reason, it was tallying xp for summons and unrewarding monsters
into its normal xp count and then offering a separate and unexplained
'adjusted' xp that didn't include xp from things that don't give xp.

It's very unclear to me what benefit it serves to list xp from monsters
that can't give xp, so now simply don't.

--------------------------------------------------------------------------------
abfe1ce295 | DracoOmega | 2026-07-01 23:18:51 -0230

Allow casting Magnavolt on invisible creatures
The debuff applied by this spell itself reveals invisible creatures, which
was mainly added to avoid the targeter lying to the player if a marked
target went invisible after the fact (which could cause you to fire a
lightning bolt in an unexpected direction).

However, some players found it strange that a spell which reveals invisible
creatures could not be used to actively reveal invisible creatures.

I waffled back and forth on this one for a while, and I'm not entirely
happy with this new state either, but it does seem more consistent with
other spells which can reveal invisible things.

Sadly, if you aim at a truly empty space, the spell whiffs entirely
(without even zapping previously-marked targets) to avoid making it
strictly-optimal to aim at empty spaces after marking all visible targets
'just in case'. (This would almost certainly never be worth doing 99.99% of
the time, but I hope to avoid some outliers from driving themselves crazy.)

This closes #5071 and closes #5086

--------------------------------------------------------------------------------
2d72a69719 | DracoOmega | 2026-07-01 23:18:51 -0230

Make the constriction status of invisible monsters known information
We only display things like BVC or Grasping Roots as a debuff on the
constricted monster, but they are clearly being grabbed by a visible thing
(ie: a swarm of zombie hands) whose status we already get messages about.

To make things a little more clear, constriction status is now shown on
known-invisible monsters and successful constriction will sense them (think
of it as the player inferring their presence and shape by seeing something
grabbing them tightly).

--------------------------------------------------------------------------------
26247e9bc7 | DracoOmega | 2026-07-01 23:18:51 -0230

Slightly tweak constriction messages (mostly for monsters)
The messages for ranged constriction (eg: BVC) expiring on monsters was
confusingly similar to the message for a monster breaking free under its
own power. It should now hopefully be a little more clear which is which
(along with a few other tiny wording tweaks).

--------------------------------------------------------------------------------
448235b753 | DracoOmega | 2026-07-01 23:18:51 -0230

Slightly increase clarity of Vhi's failure messages
"There's one issue or another keeping you from charging at any nearby foe."
is a famously confusing message to give the player when trying to cast this
spell. While there can be too many targets which are invalid for too many
different reasons to exhaustively list everything, this commit attempts to
exclude the most 'obviously invalid' targets earlier (so that adjacent
creatures don't block messages about more obscure failure states involving
stationary obstructions or mesmerisation). It also reorders a few messages
so that more obvious problems are listed first (and known-invisible
monsters are treated differently than unknown invisible ones).

And in cases where there really are a multitude of equal priority problems
to report, it gives a message that hopefully is still a little less
ambiguous than the old one (which - to me, at least - sounds like even the
game isn't sure what the problem is).

--------------------------------------------------------------------------------
8cb7d03034 | DracoOmega | 2026-07-01 23:18:51 -0230

Only hatch seismosaur eggs when non-invisible monsters are near it
Rather than depending on the parent's sight (in other words, just because
you can see an invisible monster doesn't mean the egg will react to it.)

The seismosaur can't see invisible creatures anyway and wouldn't even stomp
on them after hatching.

--------------------------------------------------------------------------------
de7a839fa1 | DracoOmega | 2026-07-01 23:18:50 -0230

Make most random-target spells choose only between visible targets
Some spells like Scorch or Permafrost Eruption, which select a random
target from among eligible enemies, currently do not depend on the player's
vision. This means that targeter UI may present a completely different list
of possible targets than the real ones, when invisible foes are involved.
But also that they can unerringly track an invisible monster, no matter
where it moves.

Given current plans to make positional fuzzing of monster invisibility a
bit more relevant, I feel that these spells' ability to ignore all that is
a little too flattening. So as a general policy (agreed to by several other
devs), I am making all 'choose a random target' effects respect the
player's own vision.

Note: multiple spells and abilities already did this (eg: Fulsome Fusilade
and Mark of Carnage summons), and MCC was additionally odd by requiring a
visible target to begin casting, but then being able to hit invisible
targets afterward.

--------------------------------------------------------------------------------
01f08a5fe2 | DracoOmega | 2026-07-01 23:18:50 -0230

Rework monster invisibility UI
Monster invisibility can create some interesting and memorable situations,
but is somewhat divisive among experienced players. One recurring
complaint is that even in situations where there is no ambiguity about a
monster's identity or location, the interface still makes it more
difficult to deal with them - autofight stops working, many spells require
force-casting (since the game thinks no enemies are in range), and
sometimes the game doesn't do a very good job of making it clear to the
player that there even *are* invisible monsters around if a situation is
crowded enough. Perma-invis monsters can also present learnability issues
for new players, since there is no way to examine them (or even know what
type of monster to look up).

This is an attempt to make the UI work more smoothly around invisible
monsters, and keep better track of known information. In doing so, it
changes a few rules around what counts as 'known information' regarding
invisible monsters. It is my hope that these changes allow preserving some
of the interesting situations invisibility can create while reducing
unwanted friction.

First of all, the old 'outline of a sensed invisible monster' system is
completely replaced. Instead, monsters whose positions are unambiguously
known to the player are drawn using their normal monster tile (somewhat
transparently, and with an additional icon) and most parts of the UI
regarding examining and targeting them should now treat them similarly to
a visible monster.

To be clear, these monsters are *still invisible*; the player cannot
obtain any information about their health or current status effects, still
suffer combat penalties against them, and cannot target them with effects
that strictly require a visible target. This is purely a UI convenience
for the many situations where the player could already deduce this
information.

These 'known invisible' monsters can be sensed via most methods which
previously created monster outlines (ie: by being in shallow water or
clouds, or firing spell projectiles), but also several others ways, such
as 'bumping into them'. In other words, walking into a ghost moth will
reveal specifically that there is a ghost moth on that tile and display it
as such. This means that an invisible monster's type is now considered
public information in any scenario where a monster has been sensed. (Doing
so greatly simplifies the interface regarding them, allows people to xv
things like unseen horrors, and I think comes with little cost since the
number of situations where an invisible monster could realistically be
more than one type of thing is very small.)

On top of this, invisible monsters whose position was *recently* known,
but have since moved, are drawn with a variation on this tile to indicate
they are no longer there (but likely still nearby). This should help the
player keep track of what threats are still around, even if they cannot
currently see them. As such, 'whether a known-invisible monster has moved'
is also now considered public information. Assume that the player is using
hints like the sound of footsteps or changes in airflow to infer, in a
general sense, that movement has occurred.

Finally, in cases where a monster has performed some action that informs
the player of their presence *without* revealing their location in any way
(most commonly when a perma-invis monster attacks the player in melee),
the game will still add them to the monster list and treat them for a
short while as if they were nearby, for purposes of delays and
autoexplore. (Fully sensing a monster just from being hit by it would
significantly defang the interesting positional play that can come from
ambushes by ghost moths and unseen horrors, so you still have to actually
interact with them successfully *yourself*).

This new system of treating invisible things which are *probably* nearby
as threats (for autoexplore/delays) fully replaces the old autopickup
autotoggle. It works more reliably, in my experience, than the old system
did (which, for example, failed to interrupt travel while being attacked
by invisible things, so long as they *missed*, and would turn back on at
the first invisible thing killed, even when multiple were known to be
around.) and also doesn't let you forget to turn it back on (and
periodically cause newcomers to be confused as to why they stopped picking
up things).

A few caveats here:

When a 'remembered invisible' monster is nearby,
spell_no_hostile_in_range() will treat them as potentially always being in
range (so as to avoid the needless friction of needing to force-cast in
scenarios where there is almost certainly a hostile nearby). This *does
not* properly account for the monster's resists, entirely because the code
involved made this very awkward. I hope this will be a very minor issue in
practice.

The blocking of autoexplore uses a LoS check to the position the player
was standing in when the monster was last sensed. In my experience, this
is 'correct' the vast majority of the time (in that it blocks autoexplore
when an experienced player would realistically consider it unsafe, and
doesn't otherwise), but there are some very specific situations where the
player can know they're safe nonetheless (an obvious example involves
using Imprison to put walls in the way of the general area where an
invisible monster was known to be). In order to prevent the player from
simply being unable to autoexplore here, I've added a new command to
temporarily 'forget' about nearby invisible threat (CMD_IGNORE_INVISIBLE,
bound to Ctrl+T by default). This is a bit clunky, but I was unable to
devise a heuristic that didn't have *some* fail cases, and I believe the
player should almost never have to use this command.

No *all* actions an invisible monster can perform cause the player to
sense them. While beam code covers many spells, there are many, many
spells that do not use it. For instance, an invisible monster can summon
creatures in LoS of the player without this giving away their presence
(even though the player can tell that something *must* be nearby).
However, I feel strongly that full coverage is *not a pragmatic goal*, nor
worth the code complexity. Turning invisible while in LoS already senses a
monster, so they would need to first turn invisible while out of LoS
(itself a rarity), and even then, the summons themselves will interrupt
delays (and it's unlikely the monster will not be sensed in some other way
while the player was fighting them). Antimagic Gaze in particular *does*
alert (since it's used by a common permainvis monster), but I feel that
covering the vast majority of common cases is better than suggesting a
standard whereby every way in which the player could infer a monster's
presence was handled by the UI. That way lies madness.

---------

In terms of code structure, you.aware_of() is a new method that includes
both you.can_see() *and* the presence of known-invisible monsters. For
most UI and targeting purposes, aware_of() is now the method that should
be used.

Since known-invisible and visible monsters now look rather more similar to
each other than before, this batch of commits will also attempt to enforce
some general principles about what does or doesn't work on invisible
monsters:

-All beams, explosions, and projectiles can affect and be aimed at
invisible monsters
-Spells which hit an entire area (or all of LoS) can affect invisible
 monsters
-Spells which automatically target a *random subset* of monsters in LoS
 will *not* target invisible monsters
 -This was true for several of these already, but will be applied more
  universally in a subsequent commit
-Non-damage spells which directly target a single enemy cannot affect
 invisible monsters (unless part of the point is that they can, such as
 Yara's)
 -This was already true of most of these, but will be applied to a few more
  in a subsequent commit

In addition, several player downsides that depended on the presence of
only visible monsters (to avoid leaking information) are now active while
known-invisible monsters are nearby (eg: 'No regen near monsters'). No
more removing your SInv ring to conveniently forget about things.

Finally, the old 1-in-7 chance to passively detect any nearby invisible
creature no longer exists. (I feel like there are plenty of ways to get
information on them that this isn't needed; in many ways, it was working
as a poorer version of the known-invis system, except that it also worked
on sleeping monsters at random sometimes.)

(This is a very large commit that touches enough different things that I
am not confident I've explained everything it does in even this much text,
but hopefully am close.)

--------------------------------------------------------------------------------
5f0d9f514d | DracoOmega | 2026-07-01 19:16:52 -0230

Make a few debug messages print real names of invisible monsters
There's no point in hiding information in diagnostic messages.

--------------------------------------------------------------------------------
4b636eb1ab | DracoOmega | 2026-07-01 19:16:52 -0230

Don't give fewer decor messages when unseen monsters are nearby

--------------------------------------------------------------------------------
e0120fda47 | DracoOmega | 2026-07-01 19:16:52 -0230

Remove some unused function declarations
Unused since ffccbfb

--------------------------------------------------------------------------------
cec02a2eea | regret-index | 2026-07-01 15:38:06 -0230

Fix some item reward access in _gulch_crossways_interlock (Odds)
There's no way to arrange proper full connectivity for the subvault's
secondary corner chambers for the four different door configurations
without adding substantially more doors. As such, this rearranges it to
have three set-ups, with the outer connecting doors getting multiple doors
at a lower chance than rolling either inner door placements.

--------------------------------------------------------------------------------
d079bb4e56 | CrawlOdds | 2026-06-30 19:27:09 +0100

Don't have monsters pick up two ranged weapons
Monsters who carried a melee and ranged weapon were swapping out the
melee weapon for another ranged one.

--------------------------------------------------------------------------------
145bab3540 | CrawlOdds | 2026-06-30 19:26:59 +0100

Fix a couple of problems with shadow coglin ranged
Shadows were not reliably wielding ranged two weapons; depending on the
order they were checked in, they sometimes ended up with one.

Additionally, when they did have two weapons, they were shooting the
same one twice (and then swapping between attacks).

--------------------------------------------------------------------------------
21dce7eeba | CrawlOdds | 2026-06-30 14:52:04 +0100

Support UTF8 characters in clipboard

--------------------------------------------------------------------------------
c25db19f76 | Aliscans | 2026-06-30 14:51:40 +0100

Handle unicode characters in the monster list pane.
Use unicode-aware functions to calculate the length of a monster
description in the monster list and resize it where needed.

Don't crash if there's somehow only 1 character left for a monster's
name in the monster list. It can't happen at present, but it seems like
an odd ASSERT().

Committer's note: also pulled out a variable for readability.

--------------------------------------------------------------------------------
e5640dbc8c | Isaac Clancy | 2026-07-01 01:09:39 +1200

Checkwhite

--------------------------------------------------------------------------------
0cc4e4b8ad | Isaac Clancy | 2026-07-01 00:54:24 +1200

Fix Dungeon and Depth wall tiles sometimes using wrong variations
tile_init_flavour should give the same result when called on a tile that
has had its flavour initialize and one that hasn't. However, this wasn't
the case for the way it picked Dungeon and Depth tiles variations. This
problem was very noticable when placing a local vault in wizmode as it
calls tile_init_flavour on every square on the level.

--------------------------------------------------------------------------------
56d0093a64 | Isaac Clancy | 2026-07-01 00:27:14 +1200

Remove an unneeded call to tile_init_flavour
There was a call to tile_init_flavour in vault_placement::apply_grid
that happened before setting flavour. This call was initialy added to
fix some tiles being completely black in abyss vaults. However, the
abyss sets crawl_state.generating_level to true when placing vaults and
this call only happens when its it to false. Instead the abyss now
handles this in _abyss_fixup_vault.

--------------------------------------------------------------------------------
c47147a4bf | Isaac Clancy | 2026-06-30 23:03:22 +1200

Fix monsters opening clear sealed doors turning them opaque
If a monster opened or broke a clear door that had been sealed by a
vault warden, you would get a regular open or broken door rather than
the transparent version.

--------------------------------------------------------------------------------
e70092b66e | CrawlOdds | 2026-06-30 11:06:36 +0100

Make gavotte predict harm more accurately
For targetters and penance checks:
* In the case where the monster ends up stopping due to water/lava,
  don't predict harm.
* Predict actor collisions in cases such as flyer-air-non_flyer-lava.
* Predict collisions with monsters out-of-los (which won't move with
  Gavotte)

We do this by simulating the whole gavotte movement with player
knowledge rather than ground truth.

Fixes #5314

--------------------------------------------------------------------------------
82f65cde0b | CrawlOdds | 2026-06-30 10:58:18 +0100

Fix some penance edge cases with gavotte
* Do penance even when the victim dies, by moving the penance check
  before damage (this still messages *after* the collision damage).
* Have penance rely on "could you see the monster at the start of the
  turn". This was previously using the player's new position, possibly
  after gavotte movement, and the monster's new position, which led to
  some odd outcomes.
* Last and very much least, give penance for friendly wall walkers
  damaged by an incoming collision from a monster who can't live in
  their wall.

--------------------------------------------------------------------------------
3fa24bd02e | CrawlOdds | 2026-06-30 10:50:45 +0100

Warn for penance from various non-beam spells

--------------------------------------------------------------------------------
2bbbe158dc | Isaac Clancy | 2026-06-30 17:36:21 +1200

Fix xom scenery changes sometimes not being noticable
When Xom changes scenery, the tile override of the changed squares
wasn't being reset. This would result in the tile not changing for any
squares that had a tile override.

--------------------------------------------------------------------------------
2e6e51eef2 | Isaac Clancy | 2026-06-30 15:49:28 +1200

Fix placing a vault in mizmode not marking in view terrain changed
Almost everything that set_terrain_changed does (deleting clouds in
solid features, updating slimey wall tracking, updating mold tracking,
firing terrain changed evens, etc.) still needs to happen for in view
terrain. However, we were excluding calling it for in view terrain
presumably so that the terrain didn't get marked as changed. This isn't
actually a problem though as the terrain changed flag will get removed
when we next call viewwindow anyway and if it actually is a problem, it
would make more sense to fix set_terrain_changed as there are so many
other places that assume it is fine to call it for in view terrain.

--------------------------------------------------------------------------------
975d5ebfbe | Isaac Clancy | 2026-06-30 15:42:13 +1200

Fix _tension_door_closed setting some squares as changed
_tension_door_closed closes a door checks the tension and then restores
the door. However, when closing the door we would mark the square as
change, remove all the clouds in the door, and fire off a terrain
changed even. We were making sure to restore the clouds but the way we
did this was not great for performance. Item and monster detection have
complex interactions with changed terrain and it's unclear if firing off
a terrain chenged even is harmful, so it's probably best not to do this
when the terrain hasn't actually changed.

--------------------------------------------------------------------------------
3b09176573 | CrawlOdds | 2026-06-29 20:55:58 +0100

Make some vaults which rely on stairs transparent
Stairs can occasonally be removed from vaults. If they need
those stairs, it's important to mark them transparent so that
they are included in connectivity checks.

--------------------------------------------------------------------------------
15e5880f3b | CrawlOdds | 2026-06-29 20:55:58 +0100

Move pool fixup earlier
Deep vs shallow water affects connectivity, so we should update this
before checking connectivity and closets. We move this into the
post_vault_build function so that it is still used as before by all
game modes.

--------------------------------------------------------------------------------
0b8d903635 | CrawlOdds | 2026-06-29 20:55:58 +0100

Create a tag to allow tele closets
Some vaults deliberately place teleportation closets, which
they offer item-based escapes from. Now that we mask such
closets by default, we create a tag to allow this, and apply
it to three existing vaults which intend to provide escapes.

--------------------------------------------------------------------------------
d09647f039 | CrawlOdds | 2026-06-29 16:32:40 +0100

Detect and mask teleport closets during level generation
We have a number of strategies to fix and veto teleport closets
during level generation. They mostly work, but many vaults have either
deterministic or occasional teleport closets built in. Here, we add a
way to explicity search for such vaults. This is far more permissive
than other connectivity checks, allowing traps, transporters, etc as
ways to escape.

Empirically, this mostly finds two class of vault:
* Vaults with a bug, that should have more no-tele squares or some
other fix.
* Vaults which procedurally generate tiles which may get disconnected
in ways that would be hard to avoid. Typical examples are large
expanses of mixed deep and shallow water.

To fix these, we mask found teleportation closets with no_tele_into.
Additionally, to aid debugging of closets, we enable a mapstat
argument which turns these into vetoes.

--------------------------------------------------------------------------------
a4b7e4764a | CrawlOdds | 2026-06-28 17:19:42 +0100

Support pasting into line input in local tile
This is especially useful for pasting in long vaults in wizmode.

--------------------------------------------------------------------------------
f76834dfb5 | Isaac Clancy | 2026-06-28 16:00:05 +1200

Refactor: use an unwind_var in _cull_redundant_stairs
This makes it clear that we only wish to remove the staircase
temporarily. It also makes restoring the staircase less error prone.

--------------------------------------------------------------------------------
10f7b0824b | Isaac Clancy | 2026-06-28 15:47:55 +1200

Update the documentation of a parameter of _fixup_stone_stairs
_fixup_stone_stairs no longer turns staircases into hatches

--------------------------------------------------------------------------------
1d5c992e7c | Isaac Clancy | 2026-06-28 15:44:43 +1200

Refactor: rename a confusing parameter of _cull_random_stairs
The replacement feature isn't a hatch anymore

--------------------------------------------------------------------------------
048d15bf94 | Isaac Clancy | 2026-06-28 15:41:38 +1200

Refactor: rename a confusing parameter of _cull_redundant_stairs
The replacement feature isn't a hatch anymore

--------------------------------------------------------------------------------
9364ca7836 | Isaac Clancy | 2026-06-28 15:23:37 +1200

Fix _cull_redundant_stairs not clearing flavour from removed stair
If the staircase that got replaced had a tile override, its replacement
would use this tile override making it look like a staricase. This
didn't matter previously as _cull_redundant_stairs was effectively
unused due to an inverted condition.

--------------------------------------------------------------------------------
1b44c4f068 | Isaac Clancy | 2026-06-28 15:18:52 +1200

Fix _cull_redundant_stairs doing nothing
It's check to see if stairs needed culling was inverted which resulted
in it always doing nothing as it was only called when stairs needed
culling.

--------------------------------------------------------------------------------
7029c44831 | Isaac Clancy | 2026-06-28 00:19:44 +1200

Fix Gozag shops sometimes looking like walls
Dungeon generation can sometimes generate floors with feat flavour set
to a wall tile. This is fine as feat flavour is ignored on floors.
However, if the player converts one of these floors to a shop using
Gozag, we wouldn't clear feat_idx which is used to restore the feat
flavour after a reload resulting in the shop looking like a wall after a
reload.

--------------------------------------------------------------------------------
e6ce6fa2a5 | CrawlOdds | 2026-06-27 11:47:38 +0100

Fix the preview of a Ru mutation
Ru upgrades your innate mutations not your normal ones - fix the
mutation preview to account for this.

This could be slightly unclear in the case that the normal mutation
is two levels above the innate one, but this is pretty niche and
certainly better than the current situation where we lie about
increasing the level.

Fixes #3949

--------------------------------------------------------------------------------
1019eb3f1f | CrawlOdds | 2026-06-27 11:04:18 +0100

Fix angering tentacle segments
This fixes a bug whereby attacking the middle of a friendly eldritch
tentacle caused only that section to appear hostile for one turn,
AFAIC with no mechancial effect. Now tentacles correctly object
to you hitting them anywhere at all.

We do this by generalising get_tentacle_head to work for solo tentacles.
This also fixes the threat assessment of eldritch tentacle segments,
which now inherit from their root like krakens already did.

We fix some callers of get_tentacle_head who were unnecessarily calling
it twice (it was already idempotent, though now this is perhaps more
obvious).

Fixes #2843

--------------------------------------------------------------------------------
2f966049a6 | Isaac Clancy | 2026-06-27 21:30:41 +1200

Fix ruined levels and vaults not respecting FTILE definitions
After commit c73acac we would clear the flavour from a square when
ruining it to stop, for example, a wall that had been turned into
shallow water from still looking like a wall. However, this resulted in
us clearing the floor flavour (defined by FTILE) even though this still
makes sense for the ruined square. Instead, only clear the feat flavour
as this is the only type of flavour that can cause problems when the
dungeon feature has been changed by ruining the square.

--------------------------------------------------------------------------------
ed6722bbcd | CrawlOdds | 2026-06-27 09:28:10 +0100

Stop ignition firing through walls
Like the fix to fusillade in 93e8449, ignition was hitting squares
behing walls when hitting wall monsters. Instead, use the standard
machinery to make the explosions flow around walls.

We make an explosion iterator to make that "standard machinery" less
boilerplatey.

Also fix the targetter, which was wrong in a different way (assuming
nothing behind a wall would be affected).

--------------------------------------------------------------------------------
303dd0adc2 | Isaac Clancy | 2026-06-27 19:07:22 +1200

Fix wizmode placed features not using tile variations until reload
The code for creating a dungeon feature in wizmode was setting the
"special" flavour for the square to zero and then relying on
dungeon_terrain_changed calling tile_init_flavour to reinitialize it.
However, after commit 4f1e9c7 dungeon_terrain_changed no longer calls
tile_init_flavour as it no longer needs to call it to handle doors and
calling it would sometimes also cause an info leak.

--------------------------------------------------------------------------------
6b10917da2 | autumn | 2026-06-26 22:45:09 +0100

Fix item method docs
Ldoc was generating item methods with a self param (e.g.
`item:inscribe(param)` notation), when the correct usage is
`item.inscribe(param)`.

Committer's note: extended to a few zero-parameter methods, where
the colon usage actualy works but would fail to do so if there
were any arguments.

--------------------------------------------------------------------------------
93e8449470 | CrawlOdds | 2026-06-26 21:22:04 +0100

Stop fusillade firing through walls
When fusillade hit a wall monster, it hit all the squares around that
wall. We fix this to use the standard machinery to calculate the
affected squares.

Fixes #5282

--------------------------------------------------------------------------------
0ee5010553 | CrawlOdds | 2026-06-26 20:21:50 +0100

Prevent teleport closets made of traps
The connectivity checks in dungeon generation treat traps as impassable.
This means that they completely ignore areas made *entirely* of traps.
But the player can teleport into these, so that's not ideal.

We fix this by doing an extra connectivity check, vetoing any areas that
are disconnected from stairs when treating traps as passable.

On a sample run of 400 spider levels (which are by far the largest
offenders because of extreme web density), this causes 26 new vetoes out
of a total of 273 vetoes.

Fixes #5294 (this issue may not look like a region made entirely of
traps, but morally it is - most of the region is a vault, which is
invisible to the connectivity algorithm except for its entrance, which
has a trap.

--------------------------------------------------------------------------------
ea2d1a0413 | CrawlOdds | 2026-06-26 15:14:43 +0100

Fix spurious messages during volcano catchup
When checking whether the player is close enough to hear the volcano,
we need to check whether the player is on the map at all.

Fixes #5290

--------------------------------------------------------------------------------
236f66fc2a | CrawlOdds | 2026-06-26 14:34:41 +0100

Suppress an out-of-LoS bolas message
Fixes #5300

--------------------------------------------------------------------------------
24dab868eb | Isaac Clancy | 2026-06-26 20:00:28 +1200

Fix some effects being endianness dependent
Some calls to hash32 were passed an array of uint32_t. However, because
hash32 works an an array of bytes, the different byte ordering of
uint32_t between big and small endian platforms would result in it
returning a different value. This mainly only affected graphics such as
the tile used by a ghost or which tile variation was used by a dungeon
feature or the description of a random pandemonium lord. However, it did
affect the seed stability of the "sense surroundings" mutation, although
it is unclear to me if this mutation having seed stability is even
intensional.

--------------------------------------------------------------------------------
353cd707cd | CrawlOdds | 2026-06-25 11:50:21 +0100

Fix messages from portals after excursions
When an excursion was triggered - which can happen in a number of ways
including by viewing another floor - timed portal message were then
being suppressed until the portal timed out.

This was happening because of a fix back in e27d229, which added a guard
to fix a bug with too-early messages using the wrong player coordinates
for a portal message on re-entry. Messages were off when the marker was
initialised, and toggled on when entering the level. But excursions
initialise the marker without firing an entered_level event, leaving
messages toggled off.

We fix this by setting the toggle in init only for initial marker
creation, and thereafter toggling it on level entry and exit.

Fixes #5301

--------------------------------------------------------------------------------
d0f1cbee8c | Davidescu Victor | 2026-06-25 07:43:47 +0100

Fix breaking large doors
Monsters weren't breaking down doors if the player was adjacent to the
door but not to the square the monster was opening, leading to infinite
door wars.

Fixes #5309

Committer's note: cosmetic change to any_of, reworded commit.

--------------------------------------------------------------------------------
6c56e8410e | CrawlOdds | 2026-06-24 10:16:59 +0100

Track tithing piety

--------------------------------------------------------------------------------
d0fdbe724a | CrawlOdds | 2026-06-24 10:13:28 +0100

Split out max piety wastage for logging
This splits out piety wasted from a stepdown to that wasted at
max piety, which came up as something that would be nice to
know in analysing the bigger ongoing piety changes.

--------------------------------------------------------------------------------
e122667498 | CrawlOdds | 2026-06-24 10:12:50 +0100

Track berserker piety

--------------------------------------------------------------------------------
28ce492bd5 | CrawlOdds | 2026-06-23 21:40:13 +0100

Refactor swiftness and make -swift uncancellable
-swift was a strange exception - a negative status that was dispellable
by cancellation but not sped by dissipation. This was an artifact of how
swiftness was coded - as a single, dispellable, not-negative duration
with an extra attribute to say whether we were in +swift or -swift.

We refactor swiftness so that +swift and -swift are different durations,
which seems an improvement in any case as it means there are fewer
exceptions for swift dotted around the code. We then make -swift
uncancellable. This feels the more natural way to resolve the
inconsistency, because it is has the feeling of a "cooldown" at least as
much as a status.

This also fixes a probably-unexpected interaction whereby Mara cloning
a player with -swift produced a clone with +swift.

--------------------------------------------------------------------------------
9b33262cfa | CrawlOdds | 2026-06-23 19:29:45 +0100

Update credits

--------------------------------------------------------------------------------
7ec83fe5aa | CrawlOdds | 2026-06-23 18:41:19 +0100

Fix coglin hunters saying farewell on turn 1
Coglins unequip their starting bow while making their starting
equipment. Suppress a message from this, using the existing
parameter that only this call sets.

Fixes #5308

--------------------------------------------------------------------------------
c910cec6f5 | CrawlOdds | 2026-06-23 18:23:46 +0100

Fix tentacle check to use appropriate function
This uses a more usual function for the fix in 2dfc88a, and in doing so
fixes another issue where friendly tentacles outside the player's LoS
will target but then not be able to hit monsters.

--------------------------------------------------------------------------------
4eb44f5760 | CrawlOdds | 2026-06-23 17:47:18 +0100

Confirm bump firing with !f inscriptions
When the player attacks by moving into a visible monster while wielding
a ranged weapon, we now warn for inscriptions like we do when fired
through other means.

--------------------------------------------------------------------------------
2dfc88af3e | CrawlOdds | 2026-06-23 17:47:18 +0100

Change solo tentacles only to attack targets in our LoS
This fixes a rather annoying behaviour where malign gateway will attack
monsters out of our LoS, if they are closer than monsters in our LoS.

This happens because tentacles ignore their foe, instead targetting the
nearest enemy to their current head.

--------------------------------------------------------------------------------
1b8bb01e35 | hellmonk | 2026-06-23 17:47:18 +0100

Refactor passage of golubria portal selection
The previous method of selecting one passage then the other could fail
even when there was a valid placement, if the first passage took the
only valid position for the second one.

Committer's note: fixed a bug where we didn't actually abort the cast
on insufficient space, and used some radius_iterators.

--------------------------------------------------------------------------------
1b0f8bdc6c | CrawlOdds | 2026-06-23 17:47:18 +0100

Empower the twins even if out of LoS
We were waiting for Dowan/Duvessa to be able to see the player before
powering up when the other twin died. This caused them not to upgrade
if the player was invisible - and part of Dowan's upgrade was being
done early to account for this case. Now we upgrade them immediately
unless they are frenzied.

Also remove a check that the player can see the monster from both elven
twin and Boris orb empowerment. If these monsters are somehow invisible,
they shouldn't be punished for that.

--------------------------------------------------------------------------------
19be720228 | regret-index | 2026-06-23 12:04:25 -0230

Don't create star jelly wretches (Undo)
5c880ef introduced some code preventing Kikubaaqudgha from offering up
spriggan druid wretches due to their might-animals-on-death effect. This
commit extends it to exclude star jellies, as actively killing them to
raise undead will also let them fire off shooting stars (though if they die
naturally a few turns later, it'll be fine). This is a far more mean result
than is necessary for a god power's random rolls, and there's plenty of
other variety possible for wretches with 0.34's pass on the Slime Pits
anyway.

--------------------------------------------------------------------------------
4f1e9c7b8d | Isaac Clancy | 2026-06-23 22:40:03 +1200

Fix some out of view door info leaks
If an out of view door that the player had seen was covered in
temporary terrain, it would often change to look like part of a large
door. This was caused by use storing which sides of the door connect to
other doors in the "special" flavour for the square which is used for
other things for other types of terrain.

Another problem was that if the player had seen a door that was covered
in temporary terrain and moved so that it was out of view, when the
temporary terrain ended it would often change which tile variant it
used. This was caused by the "special" flavour for the square being
updated when the terrain reverted back to a door.

There was also a problem where temporary terrain covering part of a
large door wouldn't update what sides the rest of the door showed as
connected on until you reloaded the game. This would result in the
player not knowing that there was a change to part of a door that was
just out of view unless they reloaded their game.

To fix this, store which sides the player remembers a door connecting on
in the map knowledge instead of storing it in the "special" flavour for
the square and update it when updating the remembered feature in the map
knowledge.

--------------------------------------------------------------------------------
7e1f3d532c | Davidescu Victor | 2026-06-23 09:06:10 +0100

Add a space to menu colour search string
This seperates the prefix and item name in the search string for menu
colouring, allowing for e.g. searches which search for an exact item
name.

Fixes #5303

Committer's note: adjusted commit message and made a readability tweak.

--------------------------------------------------------------------------------
69c1e3e389 | CrawlOdds | 2026-06-23 08:01:36 +0100

Fix some feeling-safe checks
This fixes a bug introduced in d4fc6e0 whereby some calls to i_feel_safe
where ignoring the non-monster checks.

An example bug this fixes is that autopickup was active when in
dangerous clouds.

--------------------------------------------------------------------------------
bd1fb5ece9 | CrawlOdds | 2026-06-22 22:08:48 +0100

Dismiss mosnters case-insensitively in wizmode
This makes it consistent with monster creation.

--------------------------------------------------------------------------------
88908fd440 | CrawlOdds | 2026-06-22 21:55:41 +0100

Update warnings for confused movement (Zigmound)
Before this change, we warned for confused movement in two ways:
- Before rerolling the move, we warned for any movement that might cause
us to attack an ally or go over water/lave with expiring flight.
- After rerolling the move, we warn for the actual move with all the
usual warnings (traps, exclusions etc)

The second of these is a bug, the worst effect of which is to allow the
player to place exclusions all around themselves to walk as normal when
confused.

We fix this so that we get no warnings which depend on where we are
going. We also expand the warnings given before the randomisation, to
warn the player if they might stumble into an exclusion, trap, cloud,
etc. There's no great risk of these being spammy, because confused
movement is quite rare.

Following the path of check_moveto_exclusions, we do this by
generalising various check functions to allow checking multiple squares
rather than just one.

Also make the various checks use map_knowledge rather than the ground
truth. This is rarely important, but if you do primordial nightfall
and then a random teleport you shouldn't get warned about traps you
can't see.

--------------------------------------------------------------------------------
410214eee1 | DracoOmega | 2026-06-22 12:46:07 -0230

Don't leave unlinked items around after fleeing an apostle challenge
Removing the challenger as you leave the floor was unintentionally being
treated as beating them properly, scheduling a revival fineff that would
never be properly processed and generally leaving them in an invalid state
(since it happened in the middle of leaving the floor).

This would unfortunately bombard the player with constant error messages
about unlinked items every turn they spent on that floor for the rest of
the game.

Thanks for Roxie and Ogregutan for the reports. My apologies that it took
me so long to actually fix this one.

--------------------------------------------------------------------------------
c46a794177 | CrawlOdds | 2026-06-22 15:58:12 +0100

Update credits

--------------------------------------------------------------------------------
fc74b2349b | CrawlOdds | 2026-06-22 15:34:48 +0100

Stop mutation catalyst rolling beaks (Emily Bunny)
These were missing from the list of banned body facet mutations.

--------------------------------------------------------------------------------
eed3790eb1 | regret-index | 2026-06-21 10:46:55 -0230

Buff athames a bit more
While 89500f3 went through and made athames reasonably more common,
they're still relatively uncommon picks due to being worse than rapiers
without fulfilling their conditions and worse than quick blades as one
can try to hold out for finding, which hurts their design intent as
curve-smoothing items meant to support mildly more unique builds. (While
the ceiling of Short Blades characters don't need buffs, quick blades are
still fairly better than them when fulfilling their own particular needs
anyway.)

This commit bumps up athame base damage from 6 to 7, letting them be
strictly better rapiers aside from the swapping penalties and needing
slightly more skill investment, so that bothering with their debuff
conditions is more of interest. It also lets them have brands as often as
daggers do (since brand weapon scrolls are often better spent on quick
blades anyway), with mild bumps up of likelihood for flaming, freezing,
protection, devious, vampiric, and draining brands. This is still a
fairly cautious nudge up, but it should hopefully make them worth
considering more often without letting short blades characters just
ignore the more unique kinds of item / spell / god support they've
accumulated over time.

--------------------------------------------------------------------------------
b3da73dd57 | regret-index | 2026-06-21 10:22:31 -0230

Tune down OTR, Refridge, lost soul flashes
This is another follow-up to cfa9558, using the updated functionality of
the previous commit to reduce the screen flash intensity for Olgreb's
Toxic Radiance, Ozocubu's Refrigeration, and lost souls replacing another
monster on their death. The first two effects being full screen flashes
is reasonably appropriate for their theming and fullscreen range but can
afford to be far less garishly bright and abrupt each time, and as a large
shift of colour it should still be reasonable to notice coming from
monsters. The lost soul effect should still be replaced entirely, but as
it can be adjusted with a single line change now, it is also subdued more
mildly compared to the other two.

--------------------------------------------------------------------------------
7abde48194 | DracoOmega | 2026-06-21 10:21:46 -0230

Allow specifying alpha of screen flashes
[Committer's notes: While this adjusts the parameters passed to the flash
in most of its calls, this commit doesn't actually change the alpha of any
of these flashes and is only meant to set up the capacity to change such.
Changes to actually provide less sharp flashes will be done in the
following commit.]

--------------------------------------------------------------------------------
e6a95007cc | regret-index | 2026-06-21 09:43:04 -0230

A quick small set of monster spell icon updates
When looking through the icon list for components for future spells'
icons, I was stricken with inspiration for updating some of the very
old monster spell icons, which unnecessarily bled past the standard
26x26 frame. This commit adds a fair number of them, remixing other
components as I usually do:

 * Summon Eyeballs: Denzi's old great orb of eyes tile and the usual
   generic summoning sigil Ontoclasm made, as is also used with these
   other summoning spell icons added here.

 * Summon Drakes: Ontoclasm's current Dragon's Call icon.

 * Summon Scorpions: Denzi's old Summon Scorpions icon.

 * Fire Breath: Sastreii's current fire dragon tile and Denzi's old
   Breathe Fire ability icon.

 * Cold Breath: Sastreii's current ice dragon tile and ontoclasm's
   current white draconian Glacial Breath icon.

 * Spit Poison: Denzi's old Spit Poison icon and ontoclasm's current
   Spit Poison icon.

 * Steam Ball: Denzi's old Steam Breath icon and ontoclasm's current
   Fireball icon.

 * Quicksilver Bolt: SentientSupper's Bolt of Light icon and
   ontoclasm's lightning rod Thunderbolt icon.

--------------------------------------------------------------------------------
b2ce4df294 | Isaac Clancy | 2026-06-20 01:49:07 +1200

Fix temp terrain reverting causing some doors to have the wrong tile
If multiple in view temporary terrain squares reverted at the same time
in Crypt and one of them revealed a door and another revealed terrain
that blocked sight of the door, the door would show the non-crypt tile
until the game was reloaded or the player moved so that the door was in
view.

--------------------------------------------------------------------------------
bd6e047afc | Isaac Clancy | 2026-06-20 01:23:43 +1200

Fix doors closed by sealing sometimes showing the wrong tile
If a large door was sealed in Crypt, any parts of the door that were out
of sight would show the non-crypt door tile until the game was reloaded
or the player moved so that they were in sight.

--------------------------------------------------------------------------------
836db0ce31 | Isaac Clancy | 2026-06-20 00:59:33 +1200

Fix crypt doors sometimes using non-crypt tiles
If the player opened or closed a large door in Crypt were some of the
door was out of sight, the out of sight part of the door would show the
non-crypt tile until the game was reloaded or the player moved to by
able to see that part of the door.

--------------------------------------------------------------------------------
e005243cc8 | Isaac Clancy | 2026-06-19 22:25:43 +1200

Remove unused MAP_EXCLUDED_STAIRS flag from map_cell

--------------------------------------------------------------------------------
edf2d32dfa | Isaac Clancy | 2026-06-18 20:47:44 +1200

Fix walls with torches not animating in local tiles
This was broken in commit 45ea6cc when it added back some special casing
for floors and rock walls but didn't add back the special casing for
their animations.

--------------------------------------------------------------------------------
249ab93952 | CrawlOdds | 2026-06-17 19:09:37 +0100

Revert "Rework lightning rod damage"
This reverts commit d6847357b22e053b920fe82ce22be270941b2ead.

Meant to push this to a branch.

--------------------------------------------------------------------------------
d6847357b2 | CrawlOdds | 2026-06-17 19:03:24 +0100

Rework lightning rod damage
The current damage from lightning rod sheet lightning is quite
counterintuitive; it does reduced damage to each enemy according to the
number of tiles hit at the same distance from the player.

This is quite hard to think about, and it means that using the lightning
rod to hit a large area is usually less effective than using it for
single beam damage. It also has fiddly targetting shenanigans where it
is good to decrease the number of squares hit.

We update this so that:
* The main beam does full damage every cast
* Squares off the main beam take half damage

This is intended to incentivise more use of AoE; as long as the player
has sensible targets for the main beam they should want to move the beam
in a wide arc to deal some damage to more targets.

Since this should be a buff for lightning rod, we nudge the single-beam
damage numbers down to compensate.

Also make the displayed damage deterministic.

--------------------------------------------------------------------------------
1cd6560a68 | regret-index | 2026-06-17 07:58:34 -0230

0.35 changelog update (through e467b9c7cb)
Better late than never, of course.

--------------------------------------------------------------------------------
e467b9c7cb | regret-index | 2026-06-17 07:34:33 -0230

Loose other minor tile adjustments
 * Misery clouds have had their palette compressed to fit other negative
   energy effect palettes.

 * Mlioglotl's Corruption effect has been tweaked some more, animating
   faster but with a fixed very short pause at the end, to hopefully
   continue to be less annoying as a bound soul.

 * Mild additional rltiles/unused sorting has been done, including moving
   a set of beta poltergeist effect tiles that never ended up being used
   anyway.

--------------------------------------------------------------------------------
fbdcd0e0b1 | regret-index | 2026-06-17 07:34:33 -0230

Add new Shatter vfx + option to choose either
Shatter's animation has been somewhat controversial over time in its
screenshake effect, especially with the way webtiles is coded versus the
other formats making it shake the slice of the screen corresponding to
the 80x24 console equivalent instead of all one sees in webtiles. This
has gone on so far that some players recommend turning off all player
effects entirely, which reasonably elicits some intervention.

As an alternative, there is now a new bespoke multiple shockwaves
animation, derived from an LRD explosion submission by LemurRobot (which
isn't implemented yet for the many special cases it'd require). One can
opt for choosing either with the new option, `alt_shatter_animation`,
which is set to true on webtiles and false on local tiles or console.
Either way, the walls actually broken by Shatter are now highlighted
after each cast, rather than them spontaneously disappearing outright.

(A third much simpler animation setting for Shatter might be considered
if people who don't turn off all animations think the new effect is
somewhat excessive for a spell cast many times in a row, but really,
level 9 spells should have _some_ fanciness to them for how long it
takes to reach them.)

Since the shillelagh "Devastator" uses the same damage evaluation as
Shatter, it now uses one of Shatter's vfx whenever it hits instead of a
generic earth / acid splash highlight, regardless of the above settings.

--------------------------------------------------------------------------------
cfa9558a1d | regret-index | 2026-06-17 07:34:33 -0230

Replace a decent chunk of mid-combat screen flashes
Screen flashes meant to actually show up mid-combat (as opposed to effects
like god brands or rune pick-ups or opening the door to Zot) should be
reserved for fairly larger swings in combat like Fear or Paralysis or being
at fairly low health, rather than being very distracting as a default
resort for various. This commit serves as a delayed follow-up to fe3fe7f in
trying to remove various other combat flashes that can just have target
highlighting instead, to both provide more unique vfx and to help pare down
excessive screen colour flashes.

 * Leda's Liquefaction: instead of multiple brown-yellow screen flashes,
   it now highlights every square that'll have the mud appear with layered
   flickering ripples, with a new effect combining some CC0 dirt scraps by
   Surt with CC0 water-and-mud pieces by josehzz.

 * Eringya's Noxious Bog: instead of a green screen flash, it now
   highlights every square that'll have the bog appear with a brief
   couple of faint bursts, with a new faint effect combining CanOfWorms's
   irradiate explosions with the same CC0 dirt graphics by Surt that
   the bog tiles uses as of c4f44f9.

 * The Singing Sword: instead of a yellow screen flash, it now
   highlights every monster hit with a new cartoony music effect
   derived from CanOfWorms's Fugue of the Fallen spell icon. (This
   would normally be a bit out of place, but the item itself has some
   extraordinarily silly singing lines, so it felt appropriate.)

 * Slime creatures merging: instead of a green screen flash, it has
   a new pair of effects on the nearby tiles of the fused slime creature,
   reusing old slime creature tiles by roctavian. (This one is one of the
   ones I'm most worried about, but the new animation's movement display
   should still be reasonably noticeable, and slime creatures are already
   something to play cautiously and slower around anyway.)

 * Drain Life: instead of a black screen flash, it has a quick vacuum
   animation and highlights for players and monsters hit, with a new
   effect akin to Gloom's further remixing CC0 particle effects by
   Kutejnikov.

The remaining main targets for further adjustment this version are
Olgreb's Toxic Radiance and Ozocubu's Refrigeration, which probably could
just resort to fainter transparency in a future commit, and lost soul
revival, which is much rarer than these other effects and wants some
fairly bespoke effects. Of the other major mid-combat effects:

 * Maxwell's Capacitive Coupling has long intervals between each screen
   flash, so I'm not too worried about it,

 * Cause Fear and Call Tide deserve the flash as much as paralysis and its
   friends do,

 * and lurking horror explosions want some settling on Symbol of Torment
   itself having any visual effects first.

--------------------------------------------------------------------------------
fad57e3c52 | CrawlOdds | 2026-06-17 10:08:11 +0100

Remove spammy resists message
Following the previous commit, it has been pointed out that "X resists"
every turn is somewhat spammy. We print one resistance message anyway
when the monster is initially hit, and there is a punctuation difference
when they resist fire, so the player still gets some feedback.

We keep these messages for the player resisting burning - this is higher
signal/noise ratio. This is consistent with how we message for actors
resisting clouds.

--------------------------------------------------------------------------------
99c0180e40 | hellmonk | 2026-06-17 09:41:56 +0100

Improve sticky flame messaging.
Add resist messages for player and monster.
Closes #3885.

Committer's note: tweaked the code for the monster versions to improve
readability.

--------------------------------------------------------------------------------
0ebad8decd | CrawlOdds | 2026-06-17 09:09:48 +0100

Flip ignore_temp flags to include_temp
This makes them consistent with other such flags.

--------------------------------------------------------------------------------
d3d9948555 | CrawlOdds | 2026-06-17 09:04:50 +0100

Rename boolean temp parameters to include_temp
We have many boolean parameters on play attributes that mean
"also include temporary effects". The author finds "temp" a
confusing name for these, as it reads too much like "only temp".
We rename them to "include_temp" for clarity.

--------------------------------------------------------------------------------
bd6a7f100e | DracoOmega | 2026-06-17 03:07:30 -0230

Fix monster bot not handling AF_BURSTSHROOM

--------------------------------------------------------------------------------
74ec0dc3e0 | DracoOmega | 2026-06-17 03:07:24 -0230

Fix monster bot not handling unicode monster glyphs properly

--------------------------------------------------------------------------------
2f29fc7f20 | CrawlOdds | 2026-06-16 21:26:30 +0100

Describe attack delay changes on all items
This updates our displaying of attack delays on armour (which was
previously only for the equipped body armour on ranged weapons) to use
the same machinery as AC/EV/SH changes. This makes it display on all
items which change these delays (except weapons themselves), and to
preview changes for unequipped items.

--------------------------------------------------------------------------------
197fc7faa9 | CrawlOdds | 2026-06-16 20:57:35 +0100

Update @ attack delay to be rounded to the nearest integer
Missed in fe84ade

--------------------------------------------------------------------------------
064b58b805 | CrawlOdds | 2026-06-16 16:45:32 +0100

Separate hidden spells for divine exegesis
Change the divine exegesis menu so that it maintains a separate list
of hidden spells from memorisation.

The player often wants these lists to be very different, as exegesis
uses spells the player will never be able to cast.

--------------------------------------------------------------------------------
5a55508c95 | DracoOmega | 2026-06-16 03:00:30 -0230

Make stash search sort results by type, by default
The current default is distance, which can be moderately relevant when
finding distant items, but in many cases makes it harder to evalute the
results of any search that finds many items at once (especially those that
also contain features, which are irrelevant to larger searches most of the
time).

Now it sorts first by item base type instead.

In many cases, I feel this makes searches easier to parse (especially if
one wants to examine items on their current floor).

--------------------------------------------------------------------------------
69cef3c85f | DracoOmega | 2026-06-16 02:57:16 -0230

Allow 'feature' to match all features when doing stash search
Which also allows '!!feature' to exlude them

--------------------------------------------------------------------------------
01ae576d11 | CrawlOdds | 2026-06-15 09:37:06 +0100

Add a comment explaining a choice of delay scale

--------------------------------------------------------------------------------
4de224ac04 | RypoFalem | 2026-06-15 09:16:33 +0100

feat: Add options to limit longwalking aka shift running
This adds a new option, longwalk_range, that gives you some control over
the maximum distance shift+direction can take you. The options are
* <constant> - a positive integer range. This is the default with the
               range being 15.
* los        - travel as far as your character's current line of sight
               range.
* visible    - travel only to tiles you can see when you start.
* unlimited  - no distance limitation (the previous behaviour).

The motivation is that sometimes longwalking can unexpectedly put you
dozens of tiles from where you started in unexplored territory, leaving
a lot of opportunity for monsters to flank you. This rather undermines
one important use case of shift+direction, which is to let the player
explore manually with significantly fewer key presses.

The constant 15 is chosen because that's a full LoS diameter normally.
With a human you'll have walked far enough that no visible tile was
visible 15 steps ago. That seems like a good default cap, without
allowing the player to walk across the entire map by accident. It's also
high enough that it hopefully won't annoy existing players who value the
unlimited range.

Committers note: reworked slightly into a single option, and added an
out of bounds check in the visible path (this did not actually have an
error case but seems better not to rely on downstream OOBs checks).

--------------------------------------------------------------------------------
fc95cd1e1a | brandon s allbery kf8nh | 2026-06-14 21:19:18 +0100

Delete some dead code
This was a no-op because all it is doing is sometimes continuing as the
last action in a loop.

Also, the check was wrong anyway, because uppercase letters come before
lowercase, not after.

Committer's note: adjusted commit message.

--------------------------------------------------------------------------------
5612391b3e | Sergey Semushin | 2026-06-14 20:58:52 +0100

Do not show breath status if can't use it in current form

--------------------------------------------------------------------------------
15110aad8c | brianfaires | 2026-06-14 20:13:59 +0100

Create lua func you.movement_cost()
Committer's changes: To make this deterministic, we implement a
deterministically rounded version of the player's movement speed,
which we also use in a couple of other in-game displays which
could previously switch between different displays.

--------------------------------------------------------------------------------
6cb6efe6f4 | CrawlOdds | 2026-06-14 20:13:43 +0100

Make movement speed a bit less random
The calculation of movement speed has many factors. Before this
commit, these were applied with aut-scale rounding between each
step. This could lead to a player with complex speed-affecting
statuses having a variety of possible movement speeds - as a simple
example, hasted nagas could take 8, 9 or 10 auts over a move.

We address this by introudcing scale parameters to the relevant
functions, which let us do the calculations with far greater
precision and then randomly round them only once. This means that
in essentially every case, movement happens at one of two adjacent
delays.

--------------------------------------------------------------------------------
b3abb6dad7 | CrawlOdds | 2026-06-14 16:40:20 +0100

Clean up evil conducts a little
is_potentially_evil_item covered the chaos brand, which is
already full blown evil, and chaos ammo. We make the
latter outright evil as well.

--------------------------------------------------------------------------------
8fd04349a1 | CrawlOdds | 2026-06-14 16:40:20 +0100

Make some forbidden items more findable
God-forbidden items were being marked as permanently useless, meaning
that by default they were hidden in ctrl+f. This makes sense for truly
irredeeemable items, but for some cases either the god or a scroll of
brand weapon may later make the item useful. In these cases, we now only
mark the item as temporarily useless, making it show up in searches.

--------------------------------------------------------------------------------
35e06dca8b | gammafunk | 2026-06-13 20:53:50 -0500

Fix a monster lookup crash
Splinterfrost barricade lookup via ?/m crashed, since the Splinterfrost
Shell spellpower key isn't set in this case. This commit fixes this by
using a default spellpower of the splinterfrost barricade's default HD,
like we do for other forged or conjured monsters.

--------------------------------------------------------------------------------
e04ab8ee9e | gammafunk | 2026-06-13 03:18:54 -0500

Fix rendering of WebTiles descriptions (Mouldy Labs)
In WebTiles, arbitrary HTML could be rendered in the browsers of all
spectators based on player item inscriptions and ancestor names that
were passed through unmodified to the description UI. This commit fixes
this vulnerability by rendering the relevant description titles as
non-HTML text. I've also made similar modifications for the description
UI of dungeon features, spells, cards, generic database lookups, game
seeds, and game versions. These shouldn't contain user-specified input,
but they don't need markup, and it's better to be safe. Probably we
should have a more systematic approach for prevening markup in
user-supplied text from being rendered by the WebTiles client.

--------------------------------------------------------------------------------
2073815b31 | CrawlOdds | 2026-06-13 07:25:06 +0100

Update the credits

--------------------------------------------------------------------------------
fe84ade12b | CrawlOdds | 2026-06-13 07:05:13 +0100

Round displayed attack delay to the nearest aut
We were previously rounding down, which is both less accurate and caused
disagreements with the armour penalty (which was already rounding)

Also change the penalty scale used by the armour/shields code to match
the actual one, resolving another small disagreement here.

--------------------------------------------------------------------------------
96b7d040b9 | CrawlOdds | 2026-06-13 06:40:23 +0100

Don't show encumberance warnings for ineligible species

--------------------------------------------------------------------------------
a2a5072cf7 | TrevorShelton | 2026-06-13 06:40:23 +0100

Add effect of shields to weapon delay description.
Fixes #3474

--------------------------------------------------------------------------------
78376baff9 | sandertyu | 2026-06-12 22:35:39 +0100

Display Status Icons on Monster Tile in Title of Describe View
The function DungeonCellBuffer::add_monster() is used once in
describe.cc to display the monster tile when viewing a monster
description, and is used nowhere else. Local Tiles has not displayed
status icons nor foreground flags on the monster tile in the title of
the describe view since commit 322ac23. A call to function
pack_foreground() was removed from add_monster() in that commit,
and that led to issue #5132.

Add a function call to pack_foreground() in
DungeonCellBuffer::add_monster() so that status icons and foreground
flags display on the monster tile in the title of the describe view.
This effectively reverts 322ac23, while incorporating the
tile_with_flags_t refactoring done in 9a5c35d, and fixes #5132.

--------------------------------------------------------------------------------
a2a04dd9f6 | CrawlOdds | 2026-06-12 21:56:00 +0100

Correct sigil of binding's description
Explain that swiftness won't effect the player

Fixes #5138

--------------------------------------------------------------------------------
b1462f3328 | RypoFalem | 2026-06-12 21:36:45 +0100

feat: add estimated XL to skill target in the skill ? menu
Because sometimes you want to know how long it will take to reach some
arbitrary skill target that isn't a weapon's mindelay or a talisman's
min/max skill.

--------------------------------------------------------------------------------
73b65c0c47 | gammafunk | 2026-06-12 14:43:19 -0500

Fix a god description typo (KSaturn)

--------------------------------------------------------------------------------
dc6ac4c08c | GoodKnight | 2026-06-12 16:44:44 +0100

Fix Coglin quiver switching weapons on equipment change
player_equip_set::remove() used swap-and-pop, which could
reorder the items vector. Since get_first_slot_item() returns
the first matching entry, this caused you.weapon() to return
the wrong weapon for Coglins (the only species with two
weapons), flipping the quiver display and firing target after
unrelated equipment changes like removing armour.

Use erase() to preserve item ordering instead.

--------------------------------------------------------------------------------
be839c12bd | CrawlOdds | 2026-06-12 12:34:26 +0100

Fix a constriction crash with recalled companions
When reloading a level with companions who had since being recalled, we
were killing them during unmarshalling. This meant that if a monster
being constricted was unmarshalled after its now-gone constrictor, it
was left in a state of constriction with no constrictor, which leads to
a crash.

We fix this by unmarshalling all monsters, and only then killing off the
invalid ones. We fix up old saves that unmarshalled wrongly and then
persisted the invalid state; though it's rather hard to achieve one of
these and they may well not exist in practise.

Fixes #5192

--------------------------------------------------------------------------------
a139745ff9 | CrawlOdds | 2026-06-12 09:39:11 +0100

Stop messages for applying bog out of LoS

--------------------------------------------------------------------------------
c37fa3db4a | Zhang Haocheng | 2026-06-12 09:03:52 +0100

Make volcanoes roar less
Makes use of the currently unused countdown_limit parameter. Also fixed
an unpaired parenthesis.

Fixes #3858.

--------------------------------------------------------------------------------
3aa999ad01 | CrawlOdds | 2026-06-11 20:26:32 +0100

Fix a crash with dynamic map markers
This was typically happening in the Abyss, when the map shifted with
Malign Gateway active; the game crashed when it timed out.

This happened because map_marker::move was creating a duplicate marker
in dynamic_markers, which later caused problems in run_all.

Fixes 5280

--------------------------------------------------------------------------------
8a40e45818 | CrawlOdds | 2026-06-11 15:24:27 +0100

Fix wizmode transforming into the null form

--------------------------------------------------------------------------------
1e03fe1c1a | CrawlOdds | 2026-06-11 14:43:32 +0100

Forbid training magic skills under Trog
Some details:
* Unlike Ru-sacced skills, you keep your existing levels
* These skills are hidden from the skills menu (even if trained), but
showable on "all" in case you want to abandon.
* Gnolls continue to get an exemption from the conduct.

Also merge Trog's no-memorising and no-casting forbiddances

--------------------------------------------------------------------------------
2348c84183 | CrawlOdds | 2026-06-11 14:43:32 +0100

Don't show gaps in the show-all skill menu
Skills we don't show even in "show all" (e.g. weapons skills for felids)
were still getting their own line.

--------------------------------------------------------------------------------
6e3c267657 | CrawlOdds | 2026-06-11 14:43:32 +0100

Remove some state from skill management
Previously, when we changed the player's equipment, spells, etc, we
registered our intent to show or hide a skill from the ones shown in the
skill menu, and this intent was then applied at some future time.

Instead, we just calculate which skills to show as needed (which is only
in the skill menus). Actually, we already have all the functionality to
do this, since the state we are removing wasn't cached on save.

This also removes an explicit check for skill on our active talisman -
it's a non-useless item in our inventory and is checked as such.

--------------------------------------------------------------------------------
5cc8a02e86 | CrawlOdds | 2026-06-11 14:43:32 +0100

Remove a redundant array
can_currently_train[sk] was always equal to !is_useless_skill(sk), which
is rather easier to reason about (and is still very cheap to call).

--------------------------------------------------------------------------------
552b5e20da | CrawlOdds | 2026-06-11 14:43:32 +0100

Allow scrolls of amnesia under Trog
If anything Trog is probably in favour of you forgetting your forbidden
magic.

--------------------------------------------------------------------------------
ff6a71fa82 | CrawlOdds | 2026-06-11 14:43:32 +0100

List spells even when none are memorisable
Now god-hated spells are not memorisable, it is important to let the
player view their library (e.g. when worshipping Trog, when it is all
useless). And this is also quite a bit clearer than useless spells just
disappearing.

Useless are listed last, so don't get in the way of comprehension.

--------------------------------------------------------------------------------
65d072641c | CrawlOdds | 2026-06-11 14:43:32 +0100

Describe uselessness on more items
These are useful to explain the new god-forbidden items mechanic, and
also seems generally worth having.

--------------------------------------------------------------------------------
18d71b57fd | CrawlOdds | 2026-06-11 14:43:32 +0100

Tweak logic for god-approved acquirement items
This is mostly a refactor to remove an unnecessary second category of
god-based hatred ("despising")

--------------------------------------------------------------------------------
200b8e03e5 | CrawlOdds | 2026-06-11 14:43:32 +0100

Refactor many negative conducts into forbidden acts
Following the previoius sequence of commits, most things gods dislike
are now entirely forbidden rather than merely disapproved of. We
refactor so that this split is clear and reflected in god descriptions.

Some gods still dislike targetting certain neutral or allied creatures;
this is rather harder to change because of the number of ways there are
to hurt something.

While doing this, we also reorganise Zin's conducts/forbiddances a
little. "Unclean" was redundant with "Evil+Chaotic", and is removed.
Some bits of "chaotic" (talismans, polymorph etc) made sense to sit
in the same forbiddance as "mutation", which we now call
"transformation". None of this changes the set of things that Zin
forbids.

--------------------------------------------------------------------------------
62f4d6965e | CrawlOdds | 2026-06-11 14:43:32 +0100

Remove various now-unreachable penance checks
After a sequence of commits migrating penance to forbidding
items/spells, there is now no way to trigger these (and if there is, we
should fix that with forbidding the activity or item that causes it)

--------------------------------------------------------------------------------
50d0f80f3c | CrawlOdds | 2026-06-11 14:43:32 +0100

Forbid animating weapons hated by your god
This removes penance in favour of outright forbidding the action.

For visible monsters, you are stopped before casting.
For invisible ones, you waste a turn.

--------------------------------------------------------------------------------
f4b7c1965e | CrawlOdds | 2026-06-11 14:43:32 +0100

Forbid throwing items hated by your god
This removes penance in favour of outright forbidding the action.

--------------------------------------------------------------------------------
014f3fe60c | CrawlOdds | 2026-06-11 14:43:07 +0100

Forbid hated spells rather than applying penance
This removes penance in favour of outright forbidding the action.

--------------------------------------------------------------------------------
2b460e5045 | CrawlOdds | 2026-06-11 14:43:07 +0100

Forbid evoking items hated by your god
This removes penance in favour of outright forbidding the action.

We also start showing useless evokers in the evoke menu, as otherwise
it might be quite confusing when they disappear for god-related reasons.

--------------------------------------------------------------------------------
93b67a4c5e | CrawlOdds | 2026-06-11 14:23:04 +0100

Forbid scrolls and potions hated by your god
This removes penance in favour of outright forbidding the action.

The most interesting choice here is potions of mutation under Zin.
While locking in bad mutation sets until Zin's cleansing comes online
might sometimes be quite bad, removing the exception simplifies things a
good deal both in terms of player understanding and the code, and other
gods have rather harsher conducts (especially now the worst of the bad
mutations have been removed or softened).

--------------------------------------------------------------------------------
00d325f07c | CrawlOdds | 2026-06-11 14:16:35 +0100

Forbid equipment hated by your god.
This updates from gods causing penance for hated items to outright
forbidding them.

Gods will now reject your worship until you remove forbidden items and
forms. If rolled from ecumenical altars, they will forcibly remove them
from you (bypassing your form to remove melded items).

This is the first in a series of commits that will move many instances
of penance to outright bans. There are a few reasons for this:
- The rare cases that accepting penance or passively wielding a banned
item are correct are rather unflavourful.
- Penance and piety loss are confusing, and the distinction is poorly
explained (many warnings about this lie to the player).
- Codewise the current situation is quite fragile; warnings and actual
penance have to be kept in sync in many places.

--------------------------------------------------------------------------------
d7bf041781 | CrawlOdds | 2026-06-11 14:16:35 +0100

Make god_hates_monster a boolean

--------------------------------------------------------------------------------
8171d6967a | CrawlOdds | 2026-06-11 14:16:35 +0100

Show useless armour in wear menu
This is consistent with weapons and jewellery, which show e.g. objects
that the species can never wear, and it can be confusing not to find
things you know you have.

--------------------------------------------------------------------------------
018e5526d6 | CrawlOdds | 2026-06-11 14:16:35 +0100

Fix a few artefact properties to message on meld/unmeld
These match the mundane versions which are more accurate

--------------------------------------------------------------------------------
ca5e20b62d | CrawlOdds | 2026-06-11 14:16:35 +0100

Fix displaying messages when destroying melded equipment
When melded equipment was destroyed (via mutations) we were triggering
the normal "unequip" code. This printed out a bunch of harmless but
incorrect messages about the properties of the equipment disappearing.

--------------------------------------------------------------------------------
92050278c1 | CrawlOdds | 2026-06-11 07:26:47 +0100

Prevent good mutations from occasionally removing evolution/rMut
These were marked as an "inverse pair", which meant that when one
was rolled (as either a good or random mutation) it could remove
the other. This was especially visible and bad-feeling when the
player was rolling a guaranteed good mutation.

--------------------------------------------------------------------------------
f4db44de03 | CrawlOdds | 2026-06-10 21:34:39 +0100

Fix an occasional misreport from mutation()
In certain conflicts with innate mutations, the mutation() function was
doing nothing but saying it succeeded, which led to some consequences
like Jiyva thinking they've given you a mutation or your evolution
counter ticking.

This does not affect the actual mutations given by the function, as we
were blocking the deletion of the innate mutation later.

--------------------------------------------------------------------------------
324fca1d4c | CrawlOdds | 2026-06-10 00:15:22 +0100

Fix a build warning by making something const

--------------------------------------------------------------------------------
f82e3c0534 | CrawlOdds | 2026-06-08 23:53:23 +0100

Don't highlight ancestors in discord targeter (Emily Bunny)

--------------------------------------------------------------------------------
0cef555855 | gammafunk | 2026-06-08 11:40:09 -0500

Add rudimentary Makefile support for profiling
This commit adds a PROFILING make argument that, when defined, adds the
-pg argument for compilation and linking. This can can be used to
generate a gmon.out file suitable for analysis in gprof. I'm not going
to add any further support or documentation to this end, since I'm not
yet sure what further capabilities will be needed.

--------------------------------------------------------------------------------
f2f6b638ed | Neil Moore | 2026-06-08 00:37:45 -0400

Add a dancing-related quote for Uskayaw altars
[skip ci]

--------------------------------------------------------------------------------
2479e47b20 | Neil Moore | 2026-06-08 00:25:11 -0400

Add an arachnine quote
[skip ci]

--------------------------------------------------------------------------------
a6541e14b8 | Neil Moore | 2026-06-07 23:12:26 -0400

Add some quotes about insects
[skip ci]

--------------------------------------------------------------------------------
b61ad445cc | CrawlOdds | 2026-06-07 20:51:31 +0100

Specify UTF-8 encoding in python generation utilities
With recent fancy glyph characters, some CI systems and servers are
failing to run these scripts. We fix this by specifying the file
encoding as UTF-8 (slightly speculatively, as I don't have access to an
equivalent system to build on), and remove the more local fix from
0a0f4f6.

Also remove some misleading messages about scripts working with python 2
(they almost certainly didn't before or after this change).

--------------------------------------------------------------------------------
e6ab79a80b | CrawlOdds | 2026-06-07 14:48:01 +0100

Fix a very small error in displayed to-hit chances
Maximum impact was ~1% for normal attacks and ~2% for auxes.

--------------------------------------------------------------------------------
82d66c0333 | CrawlOdds | 2026-06-07 13:57:02 +0100

Fix a very small error in displayed hex success chances
The maximum impact was 1%, so similar to rounding errors in the display.

--------------------------------------------------------------------------------
f07d79d43a | DracoOmega | 2026-06-07 09:26:08 -0230

Don't crash when aiming beams at monsters with 0 EV
(Often because they're asleep.)

--------------------------------------------------------------------------------
3aa0c7bdef | DracoOmega | 2026-06-07 07:45:18 -0230

Fix to-hit estimate for player beam spells against monsters
The function worked by computing all possible combinations of to-hit and
evasion rolls for a given spell versus a given monster, then returning what
percentage of those combinations resulted in a hit.

However, those combinations are *not equally likely* since the range of the
second and third EV roll are directly dependent on the result of the first
roll.

This caused the UI to underestimate the player's hit chance - sometimes
very substantially. In a worst case, the game could report a ~9% chance to
hit The Enchantress when your actual hit chance was ~30% (against less
evasive targets, it might report ~85% as ~75%, which is less dramatic, but
still impactful.)

We now calculate the odds of each *initial* roll resulting in a hit, and
then average those chances (since each result of the initial roll *is*
equally likely).

--------------------------------------------------------------------------------
0a0f4f6124 | DracoOmega | 2026-06-06 22:08:47 -0230

Another attempt at fixing MSVC CI issues

--------------------------------------------------------------------------------
bcb5613262 | refracta | 2026-06-06 19:31:06 -0500

Limit path macros to dependent objects

--------------------------------------------------------------------------------
cc6d5d2c9e | DracoOmega | 2026-06-06 08:25:40 -0230

Potentially fix a CI issue with the MSCV build
Though I admit I'm somewhat guessing here.

--------------------------------------------------------------------------------
6a2dd7a36a | CrawlOdds | 2026-06-06 10:50:29 +0100

Allow positive mutations while at innate stat-zero (AliasTheSpectator)
We were vetoing all good mutations if the character was at stat zero
ignoring gear; fix this so we only veto ones which reduce a stat which
is then below zero (still ignoring gear).

--------------------------------------------------------------------------------
b6da721869 | DracoOmega | 2026-06-05 23:21:47 -0230

Make screaming refractions nonliving horrors
Their undeadness wasn't obvious (in my opinion, anyway), and undeath is not
needed to explain how someone's physical being could end up deeply muddled
due to the power of the Abyss.

--------------------------------------------------------------------------------
85f9a3a65e | DracoOmega | 2026-06-05 23:18:52 -0230

Allow using the mon_glyph to remap Bai Suzhen's dragon form and SoH
The serpents of hell all shared the same in-game name, making mon_glyph
only able to remap the first of them. The same was true of Bai Suzhen's
dragon form.

Now you can do, eg:
mon_glyph += serpent of hell (coc) : ice D
if one wants.

--------------------------------------------------------------------------------
37cfcd692e | DracoOmega | 2026-06-05 23:18:52 -0230

Fix some living spells not being named properly
(Presumably reflecting an early state of development, but not even one
which ever reached trunk, I believe.)

--------------------------------------------------------------------------------
b6d9887bba | DracoOmega | 2026-06-05 23:18:52 -0230

Recolour living spells based on their spell in console
Now that there is plenty of room on the glyph.

(And change the colour of some walking tomes to better match their spell.)

--------------------------------------------------------------------------------
3fdcecf7f8 | DracoOmega | 2026-06-05 23:18:52 -0230

Recolour derived undead based on HD instead of size
The color split was historically for small/large zombie, but size is only
loosely correlated with threat level (whereas that spriggan defender zombie
among a bunch of larger chaff is pretty noteworthy). The additional damage
from simulacra and draugr is heavily HD-scaled, after all.

The cutoff of 10 HD is fairly arbitrary, but reasonable-seeming to me.

--------------------------------------------------------------------------------
9cf51ca6dd | DracoOmega | 2026-06-05 23:18:52 -0230

Make merged slime creatures use a gradiant of colors in console
Instead of single subtle change differentiating '1' from all other sizes of
slime creatures, take advantage of not having many other monsters on the
same glyph now to use 4 colours instead:
 green->lightblue->lightcyan->lightmagenta

--------------------------------------------------------------------------------
b837255a24 | DracoOmega | 2026-06-05 23:18:52 -0230

Change glyphs used for expiring clouds in console
While the progression used had a somewhat pleasing 'fading circle' look to
them, in some standard console fonts, ○ and o were nearly
indistinguishable (which has been the source of at least some player
complaints). A few of the new unicode monster glyphs are also uncomfortably
similar, so I'm trying out a replacement.

I've attempted to use characters more unlike any monster, and aimed for
something that vaguely looks like the full-duration cloud glyph (§) slowly
unravelling over time (whereas none of the ones in the previous schema
looked very much like §). Hopefully this doesn't feel unduely disruptive,
considering.

--------------------------------------------------------------------------------
10c3989740 | DracoOmega | 2026-06-05 23:18:44 -0230

Split and rearrange many monster glyphs to make use of unicode
This commit aims to reduce both current and future overlap among many
glyphs that were already overly full (or nearly so), accounting especially
for monsters likely to be added as part of forthcoming extended reworks. I
also hope to improve clarity in a few cases where many different things
were packed into one glyph (for instance, * folded together
pseudo-firewood, projectiles, stationary things that explode, and also some
of the individually strongest monsters in the game, for a total of 24
different monsters on one glyph).

The major category changes are as follows

'h' is once more only for canines.
 -Most of its other residents are moved to 'a', which is now 'misc animal'

'9' has been split into 3:
 -'ŋ' for sapient beings (eg: gargoyles, nargun)
 -'9' for lesser golems
 -'8' for greater golems

Elves now get both 'e'/'E' (for low/high-tier elves)

Elementals have been moved to 'Σ'

Unique giants are now on 'Č'

Unique dragons are now on 'Ď'

Seraphs are now 'Å' (in anticipation of Purgatory adding 2 more Seraphs)

Jellies now get both 'j'/'J' (for low/high-tier jellies)
 -Gnolls are moved to 'ğ'

'z' is now purely for skeletons
 -Wights are moved to 'U', while death cobs are moved to 'f'
 -Floating skulls have been moved from 'z' to 'ž'

'U' is now for 'non-derived corporeal undead', absorbing all of what was
previously on 'n', plus a few more things.

'n' is now for 'nature spirit', taking dryads and eleionoma from 'R' and
water nymphs from 'm'

'R' is now more clearly for 'demonic spirit'
 -Ancestors are moved to their own glyph, 'Æ', and now each have different
  colors

'Q' is expanded to 'bird-like person', absorbing harpies and chonchon

'H' has been split into 'H'/'Þ' for non-flying, flying hybrid monsters
 (eg: minotaurs are still 'H', while sphinxes are 'Þ')

'λ' is now primarily for moths, leaving other winged insects on 'y'

'◊' is now for living/plant firewood, taking many things out of 'P' and
 a couple '*'
 -P should now contain only active plants

'I' has been split into (at least) 3:
 -'I' for proper statue monsters (eg: ice statue)
 -'‡' for other nonliving stationary monsters, such as turrets or sawblades
 -'Δ' for nonliving firewood (eg: stack of scrap, splinterfrost barricade)
  (This used to be the 'detected item' glyph, which I changed to ¿)
 -Tesseracts get their own glyph: '╬'
 -(A few instances of living immobile firewood were moved into '◊')

Ghost monsters have been reorganized:
 -'ŵ' for 'support' ghosts or pseudo-projectiles (eg: silent spectre,
  drowned souls) who lack other direct attacks (including lost souls)
 -'W' for low/mid-tier ghosts with attacks (including soul wisps)
 -'Ŵ' for high-tier ghosts (eg: flayed ghost, eidola)
 -Player ghosts have been moved to 'Z' (as a form of derived undead)
 -(Poltergeists remain on 'v')

'ω' is for tentacle (tips)

Orc apostles are now on 'ö' and are coloured according to their class

'ψ' is for 'evil person', pulling many evil mages and priests out of 'p'
 -Ragged hierophants and imperial myrmidons join them, while servants of
  whispers move to 'p'

'*' has been heavily subdivided:
 -'*' is for things that explode (eg: ball lightning, prisms)
 -'●' is for non-explosive projectiles (eg: foxfire and orb of destruction)
 -'Θ' is for actual proper monsters (eg: orbs of fire)
 -'¤' is for 'none of the above' or possibly 'floating support thing'
  (eg: battlespheres)
 -(Certain pseudo-firewood is also moved to '◊'/'Δ')

If the 'char_set = ascii' option is used, each of these Unicode glyphs will
be replaced by the nearest thematic match among ASCII glyphs. This is
somewhat imperfect in a few cases (eg: most ◊ used to be P, but some used
to be I), but maintaining a separate fallback glyph and color for every
single monster added in perpetuity seems overly burdensome given how rarely
the option is used. mon_glyph can still be used to adjust any of this to a
given player's taste.

(I realize there are quite a few outdated comments throughout the codebase
referring to old glyph categories, but some of these were already wrong for
a decade, and I'm leaving any fixups there until this commit settles, at
the very least.)

--------------------------------------------------------------------------------
00c4fc7578 | DracoOmega | 2026-06-05 21:26:24 -0230

Slightly improve monster::foot_name() and hand_name()
Reduce dependence on monster glyphs (since some of those will be moving
shortly) and fix a numbers of oversights due to parts of this not being
updated since 2008 (sheep and apises and Asterion didn't have hooves,
bog bodies had claws but revenants did not - among other things).

This is still definitely wrong and incomplete, and wants a more thorough
refactoring to some form that is less guaranteed to constantly fall out of
date with new monsters (perhaps some expansion of monster shapes?), but
it's also used almost entirely for jinxbite messages and monster miscasts
(which are themselves on the chopping block), so it doesn't seem worth the
time that would be required right now.

--------------------------------------------------------------------------------
d24a0bbefe | DracoOmega | 2026-06-05 21:26:24 -0230

Allow mon_glyph option to accept elemental colors
It stopped being able to in 9c2c487 but it's not clear to me why this would
have ever been a problematic case (after all, monster glyphs are the main
place we use elemental colors in the first place), and it seems to work
without issue once re-enabled.

--------------------------------------------------------------------------------
e3e8fbd856 | DracoOmega | 2026-06-05 21:26:23 -0230

Allow specifying monster base glyphs in unicode
While Crawl has used unicode characters for its features for many, many
years now, and also allowed remapping monsters to arbitrary unicode glyphs
via user settings, the default glyphs for all monsters were restricted to
ASCII.

But several monster glyphs have been overfull for years and the forthcoming
extended rework will place further pressure on them. In order to free up
more room, this allows monster base glyphs to be specified in unicode. A
subsequent commit will reorganize many monsters to make use of this.

--------------------------------------------------------------------------------
b6d0317de6 | CrawlOdds | 2026-06-05 17:22:54 +0100

Fix undeadness of undead species.
Oops.

--------------------------------------------------------------------------------
0f6935aab5 | CrawlOdds | 2026-06-05 12:07:08 +0100

Make formatting of form YAML fields more consistent

--------------------------------------------------------------------------------
d42afd07ce | CrawlOdds | 2026-06-05 11:49:06 +0100

Prevent evasion of divine bans on forms
It was previously possibly to worship gods in forms they banned, by
using flux baubles to join them. This for example allowed players to be
liches worshipping the shining one (happily using its various evil
abilities with no repurcussions).

Also correctly check for vampire form in the pre-transform form check;
good gods already checked for this via another code path, but this
improves the message slightly. While doing this, it seemed cleaner to
make the undeadness of a form a property of that form.

--------------------------------------------------------------------------------
293c6a0512 | CrawlOdds | 2026-06-03 23:11:52 +0100

Add missing includes

--------------------------------------------------------------------------------
063b2beffe | CrawlOdds | 2026-06-03 22:22:45 +0100

Remove forest vines on tree death and fix tile bugs.
Summon forest vines, like all tentacles, pick their tile based on their
parent and child tentacles. For vines, the parent can be a tree.

Before this commit, the first vine in the chain finds its parent by
looking for an adjacent tree. This has interesting consequences
when there isn't such a tree, which can happen in two ways:
1) If the tree is destroyed, or
2) If the spell has ended (but the tentacle is out of LoS so still
assumed to be there).

When this happens, the code cannot find a parent, and so assumes that
the vine is half-submerged, like kraken tentacles used to be sometimes.
However, because vines don't _have_ half-submerged tiles, this ends up
going out of the range of vine tiles and selecting a starspawn tile.

We fix this by:
- Making vines remember which tree they are anchored to. This lets us
display the correct tile for out-of-LoS vines even when the supporting
tree has disappeared.
- When a tree is destroyed, we re-anchor vines where possible, and
destroy them if there is no alternative tree.

--------------------------------------------------------------------------------
b551176d51 | CrawlOdds | 2026-06-02 23:15:57 +0100

Update screen between deck of destruction cards
When dealing 4 from Nemelex's deck, the screen was not updated between
cards, which made it hard to make decisions for the next cards.

Similarly, torment and acid waves were not updating before the bolt
phase of the card.

--------------------------------------------------------------------------------
0203234348 | CrawlOdds | 2026-06-02 20:26:24 +0100

Remove poison when transforming into an undead/non-living form.
While intentional and reasonable flavourwise, poison going inert when
in an unliving form is consistently surprising to players and the
indefinite status is clutter.

Another option discussed was to make poison damage stop but the duration
still tick down (like other sources of poison immunity). However, it
seems more realistic for liches etc to never be poisoned at all.

From a gameplay perspective, this should hardly matter at all - the
player being able to safely transform to one of these forms but not
able to transform back when safe is likely to be extremely rare.

Fixes #5176, #5218

--------------------------------------------------------------------------------
a6d56de7b1 | hellmonk | 2026-06-02 14:14:18 -0500

break instead of return

--------------------------------------------------------------------------------
343849f063 | hellmonk | 2026-06-02 13:48:17 -0500

Fix several duel bugs
Skip some on floor entry effects when the player is returning from the arena.
This prevents retriggering hell effects, gulch mutations, slime stair regen,
and resetting abyss timer.

Fixes #5276.

--------------------------------------------------------------------------------
f825cc0284 | CrawlOdds | 2026-06-02 18:21:35 +0100

Clear entirely known parchments/books off our shopping list
We already had a very fine method for doing this, but sadly it hasn't
been called for six years (since b274e46). This was masked in many cases
by the culling of identical items.

Fixes #5281

--------------------------------------------------------------------------------
e6b2d82aea | CrawlOdds | 2026-06-02 17:22:34 +0100

Give a message when attempting to swap with -move

--------------------------------------------------------------------------------
f8e1fdbd0a | CrawlOdds | 2026-06-02 09:21:24 +0100

Describe temporary trees as flammable
Trees from summon forest have been able to burn since 7cfa934; fix
their description to match.

--------------------------------------------------------------------------------
60c3a68f0b | CrawlOdds | 2026-06-02 08:34:41 +0100

Fix checkwhite

--------------------------------------------------------------------------------
9186caecab | CrawlOdds | 2026-06-02 08:14:01 +0100

Don't falsely warn for barbs on crocodile movement
To do this we generalise check_moveto, which was taking a "physcially"
argument but using it for two somewhat different purposes.

--------------------------------------------------------------------------------
d14a962eff | CrawlOdds | 2026-06-01 21:38:31 +0100

Make fusillade hurt wall walkers
Both before and after this change, fusillade can be centred on wall
monsters, but before this it would not damage them either with these
or adjacent explosions.

--------------------------------------------------------------------------------
e965272cd0 | CrawlOdds | 2026-06-01 21:29:14 +0100

Fix a bug with exclusions for new enemies on descent
When we traverse stairs and see a new monster which should be
autoexcluded, we were previously placing an exclusion without the
monster name in its description, and then immediately removed it before
the player could even see it.

This was happening because the autoexclusions happen before our
map_knowledge is updated. We switch the order of these updates so that
autoexclusions are calculated with the updated knowledge.

--------------------------------------------------------------------------------
8c32f14340 | CrawlOdds | 2026-06-01 21:29:14 +0100

Fix Eringya's Surprising Crocodile movement effects
When the spell moved the player 1 tile and created shallow water there,
movement effects like barbs and icy armour breaking weren't triggering.

This happened because the terrain change was calling
trigger_movement_effects, clearing the deferred move.

This does mean that if there were any movement effects that should be
suppressed by the terrain change, we'd trigger them anyway. But since
we only change terrain if it is plain floor, this shouldn't be a
problem in practice.

--------------------------------------------------------------------------------
79f2d883ad | CrawlOdds | 2026-06-01 21:29:14 +0100

Fix death channel creating ghosts after the effect expires.
This could happen when killing monsters with various end-of-turn effect
such as yak form walls and fusillade.

The sequence of events is:
- Player turn happens; monsters killed are marked for ghosting.
- Monsters killed on turn produce ghosts.
- End of turn sequence; monsters killed are marked for ghosting.
- Death channel expires, all existing ghosts disappear.
- Monsters killed by end of turn sequence produce ghosts.
- <These ghosts persist until death channel expires again>

We fix this by checking death channel is still up when producing
ghosts.

Closes #3040

--------------------------------------------------------------------------------
b02b2a9a93 | CrawlOdds | 2026-06-01 18:42:11 +0100

Autoexclude monsters seen using revelation (#5261)

--------------------------------------------------------------------------------
7306f97d4b | CrawlOdds | 2026-06-01 15:44:55 +0100

Fix a link in the new dev guide

--------------------------------------------------------------------------------
733b4dd77d | regret-index | 2026-06-01 01:11:16 -0230

New electricity animation tile effects
A new suite of effect tiles heavily modified from an old rejected
electrocution brand effect by Bloax, repurposed and remixed for nearly
every other electric effect in the game instead (with one of Denzi's
generic blasts), nearly all replacing the same generic turqoise blasts
of Denzi's. There are four categories of effects deployed here matched
up loosely according to their mechanics:

 * Weaker projectiles:
   * Electrical Bolt, Stunning Burst, Blinkbolt, weaker shock serpent
     discharges.
 * Stronger projectiles:
   * Unleash Destruction, Lightning Bolt, Call Down Lightning, Plasma
     Beam, Xom's lightning (additional shots), stronger shock serpent
     discharges.
 * Electric explosions
   * Conjure Ball Lightning, Orb of Electrocution, Fulsome Fusillade
     rolling electric explosions, lightning rod Thunderbolt, Nemelex's
     Storm card, Xom's lightning (initial blast).
 * Electric arcs and chains
   * Static Discharge, Arcjolt, Galvanic Breath, Eel Form slaps
     and eeljolts.

This also updates Makhleb's Unleash Destruction effect for magma and ice
effects, and makes shock serpent discharges have a brief visual effect on
those injured by them.

(Shock does not change its current graphic, which is understated enough
to reasonably match its damage levels. Chain Lightning also does not join
the rest of these effects due to its partially-resistable nature wanting
for a fairly visually distinct effect- it using the generic cyan blast is
now actually fairly unique for the spell school, ironically enough, and
can function for now.)

--------------------------------------------------------------------------------
7b3f77ee61 | regret-index | 2026-06-01 01:11:16 -0230

Quick micro vault review
Some draugr vaults further mildly nerfed, another teleport island getting
hatches, making minmay_crystal_box have a one-time escape and more
revealed when approaching it in late D, and dealing with some math isuees
in a Gulch entry. Most notably, this also removes a typo'd "splevels"
from Trove randbooks, which was not preserved since slevels caps book
spell levels rather than providing any target to reach.

--------------------------------------------------------------------------------
76328c3a2a | CrawlOdds | 2026-06-01 11:38:24 +1200

Remove unique annotations on thralling (Undo)
Uniques' names change from X to Vampire X when they are enthralled -
move the annotation removal before this so that it matches the name
correctly

--------------------------------------------------------------------------------
8e74669a33 | CrawlOdds | 2026-06-01 11:37:17 +1200

Fix !w inscriptions for equipping and unequipping
The 1 and i characters look too much alike.

Fixes #5263

--------------------------------------------------------------------------------
a508e0531a | gammafunk | 2026-05-30 16:05:31 -0500

Add Odds to the Dev Team and update docs
Welcome aboard, Odds! 🥳

--------------------------------------------------------------------------------
ad6b28e61f | hellmonk | 2026-05-30 13:15:22 -0500

Fix a crash with untransforming into lich form
Transforming out of lich form with eg. a flux bauble, casting death's door,
then ending transformation to return to lich form crashed the game because
the untransform wouldn't complete successfully. Additionally, death's door
could be maintained in vampire form (which forbids casting it) using this
same method. For consistency and to fix the crash, entering either undead
form while in death's door now ends the death's door status. This will
prompt for normal transformation; probably a prompt should be added for
untransform but I was unsure where to put it.

Closes #5277

--------------------------------------------------------------------------------
17204b03b8 | Sergey Semushin | 2026-05-29 13:59:11 -0500

Fix some false freezing cloud warnings. (#5264)
Noticed that even when worshipping Qazlal, freezing cloud still warns
when casting it on yourself.
Here the problem is two-fold:
* Check on cloud immunity was missing from lambda, could be useful for
monsters too
* Lambda was never called for player.

It seems like `include_player` is true only for freezing cloud check so
it should not affect anything else.
--------------------------------------------------------------------------------
764df368a9 | Hellmonk | 2026-05-29 13:29:11 -0500

Allow PoG on decorative terrain. (#5248)
Make use of the new feat_is_floor function and extend it to runelights.
Closes #5120.
--------------------------------------------------------------------------------
0b3d453736 | DracoOmega | 2026-05-28 19:13:43 -0230

Fix a startup crash with force_ability_targeter
Attempting to get the name of this ability without having previously used
Exegesis tried to pull up the name of SPELL_NO_SPELL, which asserts (and
this option seemingly results in trying to get the name of all abilities
at startup)

I'm not fully certain if spell_title(SPELL_NO_SPELL) should assert rather
than just return something like "No Spell", but for now I'm fixing this at
the level of Repeat Exegesis itself.

--------------------------------------------------------------------------------
ba49f14f7d | DracoOmega | 2026-05-28 16:25:25 -0230

Allow using Imprint Weapon / Imbue Servitor if spell is usable via Exegesis
These two abilities are normally only usable if the player has memorized
Platinum Paragon / Spellspark Servitor. But they are good Exegesis targets,
which created the awkward situation where in order to cast Paragon via
Exegesis at all, you had to first memorize it (with potentially 100%
failure rate), imprint *something* on it, and then likely forget the spell
again.

Instead, make these abilities available to the player if the spell is in
their library and Exegesis is usable. (I had worried this might be slightly
confusing to the player, but it's plausibly less confusing than the way
things currently work).

--------------------------------------------------------------------------------
d69ba860e0 | DracoOmega | 2026-05-28 16:07:45 -0230

Fix elementalist ancestors casting LRD on the player for real damage (Lici)
Damage done to the focal point of LRD (ie: if casting it directly on a
creature) wasn't handled via beam code and thus bypassed the protection the
player gets from their own ancestor. However, the tracer also isn't aware
of this, and thinks the player cannot be harmed.

As a result, ancestors would freely deconstruct susceptible players in
order to hit enemies.

It feels a little incoherant to allow them to blow you up and it *not* do
any damage to you, so now all LRD casters are entirely prevented from
directly targeting a creature that is immune to all their effects.

--------------------------------------------------------------------------------
7caaed802a | Isaac Clancy | 2026-05-28 12:48:38 +1200

Fix backspace sometimes not working on macOS (perryprog)
Some terminals send keycode 127 (ASCII DEL) when you press the backspace
key. We have special handling for this but were accidentally checking for
keycode -127

--------------------------------------------------------------------------------
033806e58b | DracoOmega | 2026-05-27 20:04:39 -0230

Fix a crash-on-demand in some webtiles versions, remove a menu param
When isspace() was called in prompt_invent_item() on non-character keycodes
(such as numpad arrows), it could result in a crash. The function
apparently has undefined behavior for negative numbers which may be
locale-specific (it results in a crash on certain servers and not others,
for instance).

I am not certain what the 'correct' solution is to calling this function on
this sort of keyboard input. Fortunately, it looks like the code in
question is essentially superfluous: spaces already exit almost all menus
at an earlier point in this codepath. The only menus it *doesn't* are
god weapon blessings and Ash cursing/uncursing items. And even in those
cases, it seems to essentially only result in not printing 'Huh?' when you
press space (after already having pressing a letter of an invalid item),
unlike any other invalid input.

I can see no reason these menus need to behave in this narrowly different
way and am simply removing this behavior.

This fixes #5273.

--------------------------------------------------------------------------------
ef280457d8 | hellmonk | 2026-05-27 13:57:03 -0500

update credits

--------------------------------------------------------------------------------
4c63488e59 | Sergey Semushin | 2026-05-27 13:54:44 -0500

Fix Antimagic Gaze description (#5262)
Antimagic(Draining) gaze was only healing ghost moth and this special
case was removed in 0.31. See d43dddf.
--------------------------------------------------------------------------------
a199ff0106 | DracoOmega | 2026-05-27 16:21:17 -0230

Properly give Sif titles when Spellcasting is the highest skill (Ge0FF)
Much the same way as Kiku works for Necromancy.

--------------------------------------------------------------------------------
2b0c0ba595 | CrawlOdds | 2026-05-27 13:33:12 -0500

 Adjust Tempering autotargeting (#5266)
Allow Tempering to auto-target player-adjacent allies
--------------------------------------------------------------------------------
31e5955297 | CrawlOdds | 2026-05-27 13:04:50 -0500

Give phantom mirror a custom targetter (#5267)
This prevents it targetting things that can't be cloned.
--------------------------------------------------------------------------------
1d5e417ec5 | hellmonk | 2026-05-27 12:06:05 -0500

fix another docs typo

--------------------------------------------------------------------------------
62af56a204 | DracoOmega | 2026-05-27 14:22:30 -0230

Greatly increase exploration piety gained in Ziggurats
While it is fine (perhaps even desirable) if exploration and kill piety
have slightly different dynamics between various parts of the game, they're
broadly comparable for a majority of it. Zigs, however, have extreme enemy
density compared to the rest of the game. While there's some variance
involved, a mid-speed exploration god earns something like 1/5th the piety
of a standard kill god on their first Zig. Even if this makes some measure
of sense (there's lots of things to kill and not much to explore), I feel
it makes certain gods needlessly poor compared to other gods.

In the interest of more equality, this commit greatly boosts exploration
piety in Zigs. Since Zig maps actually can vary a great deal in size,
depending on which generator a Zig chooses to use, this is also normalized
by the same function Zig generators use to determine map area. The end
result should (very approximately) triple the current piety these gods
receive in Zigs.

Kill gods will still have superior piety income, even in a first zig (and
the gap will widen considerably when megazigging), but this should narrow
the gap enough to make a wider variety of gods able to keep up with Zig
threats while spending their piety actively.

--------------------------------------------------------------------------------
71c3100f3a | DracoOmega | 2026-05-27 14:22:30 -0230

Fix battlespheres sticking to melee range of enemies (qoalabear)
Battlesphere technically don't have spells, which made their threat_range
appear to be 0 since 7ec163d resulting in their M_MAINTAIN_RANGE behavior
no longer working.

--------------------------------------------------------------------------------
5de6068901 | DracoOmega | 2026-05-27 14:22:30 -0230

Experimentally adjust Knight ancestors
These changes are motivated by several factors:
 -Knights are the plainest design of the 3 ancestor types and have the
  least exciting capstone upgrade (gaining ~22% increased melee damage on
  the ancestor who had by far the lowest melee damage until battlemage was
  replaced)
 -An attempt to lean futher into emphasising their role as a 'tank' by
  offering unique utility to assist with that role (in the same way that
  elementalists lean further away from generalists than battlemages did).
 -(With elementalists no longer gaining haste, certain other devs felt it
  was more odd for 2 of 3 to have it instead of each spell being unique to
  a given ancestor)

Knight ancestors no longer gain Haste at XL 19, but instead gain Bolster
(a similar self-buff that instead grants Might+Resistance). This gives a
little more defensive power in lategame, while providing a similar
offensive boost as before (and leaving the true speed increase to Hexers).

More uniquely, at XL 15 they gain the ability to briefly Bind adjacent
enemies in place with their melee attacks. This is a very short-duration
effect, but can be applied with a high chance - effectively allowing a
knight to 'obstruct' a wider space and catch enemies trying to slip past
them towards a player who might be hiding behind them.

Since it is dependant on their attack speed (and knights attack slowly), it
is less reliable when first gained and improves meaningfully when they gain
speed brand at XL 24 (improving the impact of that upgrade).

(Incidentally, this ability was originally designed to *be* a new XL 24
capstone ability, but playing with it, I felt that it created enough
interesting situations that it merited being tried as a core part of the
knight's kit from much earlier.)

Finally, knights also gain a 25% HP increase at XL 24 to feel like their
final upgrade has a bit more parity with the other two ancestors. (Also:
ancestor durability suffers somewhat in endgame and knights provide less
impact in other ways.)

I am a bit conscious that this is *mostly* a buff to a popular ancestor of
an already strong god, but it felt fun to me and I expect this should have
no more than a modest effect in the part of the game where Hep's power is
strongest.

In any case, let's see how other people find it.

(Bolster spell icon made by regret-index, combining ontoclasm's resistance
and might potion and status icons with CanofWorm's mutation resistance
icons.)

--------------------------------------------------------------------------------
1ea72b2997 | DracoOmega | 2026-05-27 14:22:30 -0230

Allow monsters bound in place to attack other nearby targets
If a monster was Bound and attempted to move towards its primary target, it
would pass its turn instead. This meant that monsters bound in place next
to player allies would often just sit there and let themselves be hit
repeatedly until the status wore off.

Now they will attempt to melee some valid enemy in range, rather than pass
the turn.

(Getting spellcasters to consider casting a *spell* at some target in range
is a wildly more difficult task, but this should still be a good status
quo improvement in most situations.)

--------------------------------------------------------------------------------
4a81f18ca8 | DracoOmega | 2026-05-27 14:22:30 -0230

Replace Battlemage ancestors with Elementalists
While Hep battlemages may not have been 'weak' by some objective measure,
they suffered from a couple of issues:

Firstly, a recurring player complaint was that, despite being a ranged
attacker, they would repeatedly fling themselves headlong into enemies and
die rather than cast spells. However, any AI adjustments to keep them at
range would have been awkward given that their melee damage was (by design)
also considerable.

Secondly (and more subtly), despite having very different spells from
Hexer, the sort of character who would want to choose battlemage and hexer
were often nearly the same (and hexer has widely come to be seen as the
superior of the two choices - in both power and popularity).

So this is an attempt to further differentiate them by reimagining
battlemage as a more fragile ranged attacker - one whose damage output is
more consistent, but requires more effort from the player character to
protect them.

Elementalists have reduced HP compared to other ancestors, and their melee
attack is very poor, but they are cautious (and thus less likely to
approach enemies) and have higher cast rates of longer-range spells.
They have the following spells and abilities:

XL 1: Shock, Stone Arrow, Deflect Missiles
XL 14: Shock->Iceblast, Stone Arrow->Bolt of Magma
XL 19: LRD (as a 3rd attack spell), plus globally increased spell damage
XL 24: Iceblast->Permafrost Eruption, Bolt of Magma->Plasma Beam

(It's worth noting that while Deflect Missiles is helpful to the ancestor,
it's also somewhat unhelpful to the *player* as this means that the
ancestor generally cannot defend you from ranged attacks at all - they'll
just pass through and hit you instead - reinforcing their role as a pure
attacker).

This ancestor provides high damage output, but their fragility and lack of
melee ability means that the player character must be confident in their
ability to keep them alive. (Also, they make a lot of noise starting at
XL 15, which is a meaningful downside to be aware of.) The hope is that
this feels more distinct in playstyle from Hexers (giving more nuance to
the choice of ancestor type), as well as somewhat less frustrating to play
than battlemage could be. Also, they get to use some more modern and AoE
spells (battlemage's current spell list was designed when they still did
friendly fire to the player, and thus explosion spells wouldn't have been
very effective on them).

--------------------------------------------------------------------------------
7d369c3e51 | DracoOmega | 2026-05-27 14:22:30 -0230

Add a couple of mages from more recent spells to randbooks.txt

--------------------------------------------------------------------------------
a8212b2415 | DracoOmega | 2026-05-27 14:22:30 -0230

Make a smaller percentage of Sif book gifts carry Sif's name
It's a little monotonous and what library worth its salt isn't filled with
tomes by *different* authors?

--------------------------------------------------------------------------------
bb628fdf6b | DracoOmega | 2026-05-27 14:22:30 -0230

Weight Sif books to the player's skill a little less
With it being a little easier for Sif worshippers to utilize spells
outside their core skills, it feels appropriate to me for Sif to be a
little more diverse in their gifting at the same time.

--------------------------------------------------------------------------------
50cffbf2e5 | DracoOmega | 2026-05-27 14:22:30 -0230

Make Sif abilities care about Spellcasting instead of Invocations
Exegesis is one of Sif's most unique and flashy benefits, but even with it
being a bit more flexible and affordable, the investment required to get it
online can compete directly with actually being able to cast the spells
you're gifted yourself. By borrowing a page from Kiku's book, and instead
scaling off spellcasting skill, it is easier to both improve as a mage
*and* have access to Sif's neat tricks at the same time. Additionally,
encouraging the player to prioritize spellcasting (rather than school
skills) more than they otherwise would means they're also in a better
position to make use of more of Sif's varied gifts.

The skill investment required to get Exegesis online is raised a little in
compensation (and the scaling of Channel Energy reduced slightly), but it
should nonetheless be accessible earlier without sacrificing magic skills.
I expect this to be a buff to the god, but Sif has been somewhat
underperforming for a while and I also think this potentially makes Sif
gameplay more *interesting* while being very flavorful.

--------------------------------------------------------------------------------
e86698e86b | DracoOmega | 2026-05-27 14:22:30 -0230

Adjust Sif piety mechanics
Expressing devotation to the Loreminder primarily via killing one's enemies
in their name has always felt a little bit at odds with Sif's flavour (and
is something repeatedly brought up by players as feeling a little off).

Since Sif piety dynamics are already being shook up by other system changes
at the moment, this feels like a good time to try switching them to
exploration piety instead - which is also a well-tested and inobtrusive
system. It also does a little more to differentiate them from Vehumet in
terms of mechanical flavour (instead of, for instance, both gods
effectively having a direct way to turn kills into MP).

I've also made the rate at which one is gifted books no longer scale with
piety; if the player is over the threshold where gifts can be given, the
rate will always be the same. This is to avoid discouraging the player from
using their abilities (especially Exegesis) in order to get gifts more
quickly.

--------------------------------------------------------------------------------
7ba5f0c807 | DracoOmega | 2026-05-27 14:22:30 -0230

Repurpose name generation from level-based randbooks for other randbooks
'Level-based' names can now be used for any randbook whose spells all fit
into one of a few specific level ranges (1, 2-4, 4-6, or 7-9), and
school-based descriptors can be slotted into them in place of the 'generic'
magecraft descriptors previously used for level-based books. A few of these
combinations sound a bit... odd, but most of them work (and amusingly weird
titles is part of the appeal of randbook names in the first place, in my
opinion).

In addition, the 'generic' magecraft descriptors previously used here can
now be used for any randbook whose content is so mixed that at least 3
different schools are tied for the most common.

--------------------------------------------------------------------------------
06c023e8f2 | DracoOmega | 2026-05-27 14:22:30 -0230

Remove fixed-level randbooks
Randart spellbooks came in two main varieties: ones themed around spell
schools, and ones whose spells all shared the same level. The latter were
far rarer (accounting for only ~1.5% of spellbook acquirements - 1/30th as
common as the other type) and the code involved was strange in several
ways.

For example:
 -Even when generated by acquirement, there was no weighting towards spell
  schools the player knew
 -High level spells require such high item level that it was impossible to
  attain them for almost all of the game
 -Said high level spellbooks would have only contained a single spell in
  most cases anyway
 -These books tried to avoid containing spells *the player currently has
  memorized*, even when not generated by acquirement!

The latter case matters less these days, since such books have mostly not
generated as part of floor loot since 99ad798, but one vault still used
them. It is extremely against policy for something to work this way (and
allowed the player to slightly influence floor loot by, say, memorizing
useless spells to reduce the chances of being offered them in randbooks.
Probably not to a great enough degree to be *worth* it, but bad policy
nonetheless.)

Instead of trying to fix its various problems (and rewrite its
oddly-structured code), I am opting to remove this randbook type entirely.
'Unrelated spells of one level' isn't an especially compelling design, they
already barely existed, and this slightly reduces the number of disjoint
codepaths that can create randart books (there are still 3 more of them!)

A bunch of options for randbook naming were used only for this category of
randbook, which I will attempt to repurpose in a subsequent commit.

--------------------------------------------------------------------------------
44f815e29a | DracoOmega | 2026-05-27 13:19:56 -0230

Allow repeating spells with Divine Exegesis at reduced piety cost
Divine Exegesis is a unique and flexible ability in theory, but its high
piety cost (and often somewhat low power) tends to bias its usage towards
spells that have a strong effect with a single cast (such as Revivification
or Dragon's Call) and away from those intended to be cast many times in
sequence (like a lot of blasting spells).

This attempts to broaden its usage a little by allowing the player to
repeat the last spell they recently cast via Exegesis at a greatly reduced
piety cost (currently 1/4 of Exegesis itself). This should make it much
more cost-effective to use a variety of spells that would not have been
appealing prior to this change.

(This recasting is done via a new ability that is available for a short
time after using Exegesis itself.)

--------------------------------------------------------------------------------
491ad77c2f | DracoOmega | 2026-05-27 13:19:56 -0230

Tweak Brothers in Arms
BiA's code had not been updated in well over a decade, and had some mildly
awkward properties. It treated two-headed ogres as weaker spawns than
plain trolls (since it predated the damage buff two-headed ogres recieved
when hill giants were removed), and the power calculations involved meant
that the most of the chance to get stone giants (the best result) depended
on piety being meaningfully *above* 6* (one had a ~5% chance when first
reaching 6* piety, but a 40% chance at 200 piety).

These days, we try to actively minimize power boosts gotten 'above 6*' and
this is a significant one. Also, prior to recent piety changes, decay and
gift timeouts made it hard to maintain high summon quality, even if one
rarely used the ability, but that should no longer be true. And while
giving Trog a buff is intentional, I want to apply a little more control to
the effect.

The quality of summons from BiA is now based on your XL rather than piety.
The list is better-ordered in terms of power, and several new monsters have
been added to it (drawing upon ones already used by hostile spriggan
berserkers, and a few others). It should be more consistent about not
allowing extreme low-rolls (though stone giants only become possible by
midgame).

The piety cost is increased mildly (though this should still be effectively
cheaper than it used to be) and the failure rate should no longer be quite
so high when the ability is first gained.

--------------------------------------------------------------------------------
c4030cd8d8 | DracoOmega | 2026-05-27 13:19:56 -0230

(Mostly) eliminate the effect of god gifts on piety
Receiving gifts from Trog, Sif, and Vehumet, as well as ammo gifts from
Oka, caused a piety timeout that nullified 75% of all piety gains until it
was paid off. This had a few awkward effects, most prominantly with Sif,
where it (combined with piety decay and the normal stepdowns at high piety)
made it very difficult to ever reach 6* piety until all spells were known
(so gifts would cease). Being unable to champion Sif for the tournament
banner has been a recurring complaint for years.

But also, this system was pretty inflexible. While it had a major effect on
available piety for these gods, the only way to modulate it was to make
gifts less common - which in fact was done *twice* for Sif (61718b2 and
50735af) without actually fully achieving the stated goals (and potentially
slightly weakening them at the same time). It seems healthier to me to more
heavily decouple gifts and piety, so that either can be independently
adjusted as we see fit.

This commit removes the piety cost for the gift timeout from Sif, Okawaru,
and Trog. It remains for Vehumet only, since they are a fairly unique case
where it was used *only* to control gifting schedule (there is no way to
spend piety, and no passives gained or lost at the last several piety
tiers) and it seemed unnecessary to disrupt that directly at this time.

As a consequence of this change, piety gain for these 3 gods would be
significantly increased by mid-5*. While both Sif and Trog could arguably
handle this buff, Okawaru already feels in a relatively good place.
Moreover, they have the unique property among these gods of caring both
about how quickly you can first hit 6* (for the weapon/armour gift) *and*
how much piety you have to regularly spend on frequently-used abilities
afterward. After unsuccessfully experimenting with various ways to address
this without either making 6* much slower to reach *or* giving
wildly more piety to use on abilities (or sometimes both), I have
compromised by making Okawaru kills give gradually decreasing piety when
above 5*. The aim is to approximate the current behavior somewhat
reasonably (and even if it may seem awkward to replace one stepdown with
another, the new one is disentangled from any future gifting changes *and*
much easier to reason about, so I think it's still an improvement).

Sif and Trog will be getting a few more tweaks as a follow-up to this in a
subsequent commit.

--------------------------------------------------------------------------------
00792b2873 | DracoOmega | 2026-05-27 13:19:56 -0230

Remove some code preventing djinni from getting Sif/Veh/Kiku gifts
Unnecessary since they can't worship these gods at all (and seemingly only
ever could for approximately one day in trunk).

--------------------------------------------------------------------------------
8a323bdabc | DracoOmega | 2026-05-27 13:19:56 -0230

Remove a mildly confusing ancient comment
I don't think there's any way in which they're more special than any other
type of kill, in terms of blame, for a very long time.

--------------------------------------------------------------------------------
fa4c3daf6d | CrawlOdds | 2026-05-27 13:19:56 -0230

Make Okawaru piety a bit less random.
Removes some fuzzing from Okawaru piety gain, making the gain X/Y rather than
2dX/Y, before random rounding.

The randomisation behaviour was inconsistent with all other gods, who randomise
only to round to an integer, and meant that occasionally Okawaru would not
accept a perfectly cromulent kill (i.e. would not print a message for it).

--------------------------------------------------------------------------------
89d6a61940 | CrawlOdds | 2026-05-27 13:19:56 -0230

Make sure we excommunicate on piety 0
Adds handling of excommunication for low piety to the function which
handles piety loss.

We previously removed this from the function which handled piety decay
decay, but this meant it was possible to reach 0 piety without
triggering excommunication (in one extremely unlikely way).

This has almost no practical implication vs handling it on a timer -
it's quite hard to get excommunicated for low piety other than via
penance, which was already calling this. But if the player manages to
reach 0 piety by removing an amulet of faith (quite a feat), they will
now be excommunicated immediately rather than in 1-10 turns.

--------------------------------------------------------------------------------
55c1f3f727 | CrawlOdds | 2026-05-27 13:19:56 -0230

Remove piety hysteresis
This mechanic was to support piety decay, and is no longer neeeded.

[Committer's note: Fixed some piety logging being accidentally
removed]

--------------------------------------------------------------------------------
73cf9495f3 | CrawlOdds | 2026-05-27 13:19:56 -0230

Fix TSO piety bug and rebalance
This fixes a bug where TSO got full piety for seeing evil creatures,
when it was intended they got none. This made their piety gain in evil
branches extremely high.

At the same time as adjusting gain rates to account for the removal of
piety decay, we fix this bug, and proportionally increase their other
sources of piety gain so that in a three-runer their piety is largely
unchanged. In extended, this is a significant nerf, but TSO still gets
60% more piety than other gods in fully evil locations.

A single playthrough suggests this roughly works; piety milestones
were hit at the same times within 10%, which is within random
variation.

[Committer's note: Fixed a couple math errors (hopefully).]

--------------------------------------------------------------------------------
69972881b1 | CrawlOdds | 2026-05-27 13:19:56 -0230

Remove piety decay
Remove piety decay, and rebalance piety gain for gods other than TSO
with the intention of keeping net piety gain rates fairly constant in
3-rune games. We leave TSO to a future commit because it is a
complicated special case.

Overall, we aim for the net piety rate to change by less than 10% for
all gods, piety ranks and reasonable playstyles, with the change
usually being far less than this. It will necessarily not be entirely
neutral - piety decay hurts slow characters more than fast ones.

To outline considerations and the methodology:
- We use piety logging to determine how much piety is gained vs lost
for various gods.
- We adjust piety gain accordingly so that when stepdowns are not in
play net piety gain is unaffected.
- If we stopped there, stepdowns would mean that at higher piety we
now gain faster, as decay has a bigger effect when gain is slower. So
we adjust the stepdowns to roughly correct this effect (though the
adjustment needed is different per god, so this will mean some gods
piety is faster or slower at high ranks, by up to around 10% at six
stars).
- We make (tiny) adjustments to killing piety to account for the
removal of holiness dependence.

For detailed analysis see
https://docs.google.com/document/d/1G7-EvOMX8yOKw2EuyDPSm6fUAaNl8dUXhWRwGc5Pp3c/
edit?usp=sharing.

[Committer's note: Fixed a couple small numerical issues (hopefully)]

--------------------------------------------------------------------------------
4c4374f0c3 | CrawlOdds | 2026-05-27 13:19:56 -0230

Simplify piety gain
The goal of this is to simplify the code and parameterisation of piety
gain.

We replace the complicated previous formula for gaining piety based on
an kills with:
- A base amount of gain, and
- A scaling factor based on the relative level of the monster and the
player.

This simplifies the previous system in the following ways:
- The holiness of the monster doesn't matter.
- The base gain and the scaling factor are disentangled; we can easily
change the piety gain of an event without changing how it scales with
monster level
- All piety gain from monsters scales with monster level in the same
way. Previously, kills for good gods and certain other niche kills did
not scale, but this seems an unnecessary extra piece of complexity.

There are some balance changes involved - while these aren't big,
the intent is to balance this when removing piety decay and testing
this all together.

Exploration piety does not change at all, but is refactored slightly
so that the denominator is 10,000 (making maths easier) and set
in the piety code.

--------------------------------------------------------------------------------
d87ce67ea8 | CrawlOdds | 2026-05-26 21:10:41 -0500

Do not allow firing inner flame at monsters the player can't harm. (#5258)
This was always a useless cast ("nothing happens" or "X avoids your
attack"). Now we explain this in the targetter and do not allow
targetting.
--------------------------------------------------------------------------------
156cdb0e23 | Perry Fraser | 2026-05-26 21:03:47 -0500

docs: correct various typos for options_guide.txt (#5253)
Fixes a few actual typos, tweaks a few cases of odd wording, and also
did a checkwhite on it since there were a few tabs that had sneaked in.
--------------------------------------------------------------------------------
c1ecd411ab | hellmonk | 2026-05-26 20:55:54 -0500

Prohibit Okawaru from gifting orbs.
Also fixes a bug where a max shield skill spriggan could crash in acquirement.

--------------------------------------------------------------------------------
a152d236da | hellmonk | 2026-05-26 20:55:54 -0500

Add wizmode command for resetting god capstones
Seems useful for testing.

--------------------------------------------------------------------------------
f75c647dae | Isaac Clancy | 2026-05-26 22:07:01 +1200

Fix floors sometimes looking like walls (particleface, regret-⸸nde※)
Level generation sometimes leaves floors with feat flavour set to a wall
tile. Before commit a371595 this would have no effect on the tile used
by the floor as we special cased floors not to use it. However, this
special handling for floors was removed in that commit as I thought it
was part of a hack used to handle temporary terrain (other feature types
were excluded from using feat flavour as part of this hack).

--------------------------------------------------------------------------------
b5a32d538b | regret-index | 2026-05-26 00:24:49 -0230

More Gulch small fix-ups
Some debugging messages removed, and a mildly ugly way to prevent layouts
(currently only chambers_river) from placing mould patches underneath
stacks of scrap if the header isn't in the right order (as is poorly
communicated and plays badly for console).

--------------------------------------------------------------------------------
62b9a60c63 | regret-index | 2026-05-25 03:59:42 -0230

Yet further Gulch updates
After four weeks of public testing, Gulch's killstats are still lagging
a fair bit behind the other post-Lair-branch threat portals, which
considering the additional threat levels of novel threats for the
unspoiled, is fairly lowered than ideal for such a portal's position.
It doesn't need to be hyper-lethal- Desolation already serves as a portal
with comparable unique enemies and higher rewards- but it can do with
some more consistent threat increases beyond the variations of maps and
traps and rare additional bosses. This commit covers both tweaks to
monsters and rewards alike:

 * Gulch monsters have been buffed mostly across their HP / AC / EV / cast
   rates / melee damage according to their killstats over the past month.
   This means significant buffs for mongrel wurms, fungal shamblers, and
   scrapshell chimeras, and fairly mild buffs for rusted inspectors,
   roaming sludgefish, and sewage sovereigns.

 * With some randomization and syntax fix-ups, there is no longer a ~1/7
   chance for a Gulch to get up to extra five item rewards- with the last
   rewards push in dd551d8, the item quality is high enough that I'm
   not willing to canonize the bug that caused this.

 * The mutation catalyst highlight floor tile has been slightly brightened
   up further, to match it a bit closer to the brightness of the normal
   autopickup outlines when wall shadows can cover some of it. The
   description and discovery message both also have further colour
   highlighting by default, as more quick additional cues towards paying
   any attention to them while more interactable features and some
   examination bugs are still being worked upon.

--------------------------------------------------------------------------------
9ae1ccbd1e | regret-index | 2026-05-24 17:38:44 -0230

Buff some synergy mutations (DracoOmega)
Making these conditional-effect mutations actually worth diverting into
involves them having better upsides, and both of these mutations are
fairly low-rolls from mutation catalysts as were added in b14e334.

 * The spark swarm mutation (2550bce, applies the light-outline debuff
   when you inflict fire or electric damage) has its chance move from
   33%/66% to 40%/80% per hit. As a rather minor upside, it might as well
   be reasonably likely to actually apply. It is also a bit more common,
   as we've got more common and flashier mutations already.

 * The time-warped blood mutation (a98c639, grants haste at low health
   to highest-hd allies) now activates at 66% health, up from the prior
   50%. With more HP threshold effects in the game than previously, these
   are notably a bit awkward since one usually wants to flee at low health
   rather than fight with hasted allies- letting it activate at a somewhat
   higher threshold makes it far more of an interesting decision point.

--------------------------------------------------------------------------------
a33ec1f848 | regret-index | 2026-05-24 03:43:11 -0230

Many new tiles + adjacent vault review
 * As a fairly delayed follow-up to cc690c2 and c880663, I have completed
   the rest of the player paper doll tiles for all randart melee weapons,
   each matching the palettes and loose shapes of those randarts as floor
   items, each using roctavian and ontoclasm's paper doll tiles for
   non-mundane melee weapons. This should help with visual clarity in
   immediately conveying monsters wielding randarts as frequently comes
   with random resists, and should have fairly higher consistency with
   the small number of weapons that previously had randart weapon tiles
   like eveningstars or lajatangs.

   * (This doesn't yet come with updates for ranged weapons lagging even
      further behind in displaying egos at all, much less randarts,
      as it's a fair bit more work to handle centaurs and yaktaurs having
      completely bespoke tiles for their posing. Further updates for such
      will come at some point.)

    * (This also comes with some file renames, as I really didn't want
       to continue the legacy of quick blades using dagger.png or
       bardiches using e.g. glaive_three2.png.)

 * Permafrost Eruption now has unique vfx entirely, made from Denzi's
   old explosion and LRD icon graphics, to both differentiate from other
   cold spells in ignoring AC as well as granting the center tile of the
   effect use a different graphic to emphasize that spot as hit twice.

 * Lom Lobon's floor now has unique floor tiles instead of reusing generic
   recoloured ones, heavily editing a mix of Denzi's crystal floor squares
   with the CC0 diamond patterns from TextureNinja used currently in some
   Zot vaults, to try to hew closer to the organized place of study that
   Lom's flavour suggests.

 * The floor_etched tileset of 38c1deb has almost never been used in the
   thirteen years since it was added, as its brightness and palette are
   rather distractingly visible and mesmerizing. To try to salvage it into
   something more broadly usable this much later, I've heavily edited it
   into faint rainbow glows on dark black, which should still stand out
   versus other floors while functioning better as a tile in Crawl itself.
   This has been thus deployed to ten or so statistically-lethal and
   highly generic Depths vaults, as another small attempt to make the
   bespoke flashiness of vaults actually be more easily memorable between
   one another, as well as within Ziggurats past the first cleared one, to
   use less generic tiles within those as well as to tie them a little
   closer to the branch the entrance is guaranteed to place in.

 * Spriggan druids now have an edited tile without a staff for when they
   lose their quarterstaff to Tukima's Dance.

--------------------------------------------------------------------------------
b6e9f6cbee | CrawlOdds | 2026-05-22 22:16:56 +0100

Autoexclude monsters seen using revelation

--------------------------------------------------------------------------------
ef065ebc68 | regret-index | 2026-05-22 16:44:21 -0230

Correctly match up some lore dragon names (Ge0FF)
Being consistent with unpronounceable names is hard.

--------------------------------------------------------------------------------
092a145782 | Isaac Clancy | 2026-05-19 23:05:11 +1200

Fix floors under features sometimes not using LFLOORTILE (regret-⸸nde※)
When a vault placed a feature with a custom tile but didn't set a custom
tile for the floor under the feature, the floor under the feature would
use the default tile for floors in the branch even if the vault had its
own default floor tile using LFLOORTILE. This is because the default
floor tile would be set to the one for the branch and then we would
apply custom tiles to features which called tile_init_flavour to choose
the tile varient but had the unintended side effect of setting the floor
tile to the default floor tile if it hadn't been set yet, we would then
set the default floor tile to the one defined by the vault using
LFLOORTILE and then we would call tile_init_flavour for every square to
set its floor tile to the default floor tile if it hadn't been set yet.

To fix this, we can remove the call to tile_init_flavour from where we
apply custom tiles to features as the tile varient will be choosen when
we call tile_init_flavour on every square anyway.

--------------------------------------------------------------------------------
7bcd43b1a1 | DracoOmega | 2026-05-15 23:57:00 -0230

Don't claim that teleports cancel Polar Vortex (Ver)
They haven't since 1e625b3 but I hadn't realized that this behavior was
even mentioned in-game at the time.

--------------------------------------------------------------------------------
b299274998 | DracoOmega | 2026-05-15 23:56:55 -0230

Fix boulder damage always being attributed to the player (various)
Among other things, this meant that if a hostile player ghost rolled a
boulder into one of your apostles, you would get penance for it. Whoops.

--------------------------------------------------------------------------------
189c4ae940 | DracoOmega | 2026-05-15 23:56:33 -0230

Remove some unused targeter code
Neither used nor needed since e713047

--------------------------------------------------------------------------------
b7d8a7a739 | DracoOmega | 2026-05-15 23:56:28 -0230

Fix aiming Fulsome Fusilade via quiver showing confusing beam paths (Odds)
Fulsome Fusilade was receiving a default targeter_beam since it defined a
zap. But until e713047 this had been basically invisible. However, changes
to how target are refined by the interface resulted in drawing an apparant
beam path to a random enemy (usually). This is due to how only spells with
target flags set their aim based on cursor movement, allowing
find_acceptable_aim() to leave leftover state.

To fix this, no longer give a default targeter_beam to spells without any
target flags. Additionally, don't do target refinement in
find_acceptable_aim() for said untargetable spells. (This is superfluous in
this case and perhaps all of them, but I can't be certain of that and it
seems a reasonable safeguard.)

--------------------------------------------------------------------------------
6948bac004 | gammafunk | 2026-05-14 22:31:54 -0500

Fix a lua DES call
This should use KITEM, since it's defining a key glyph.

--------------------------------------------------------------------------------
32a9fb5359 | Isaac Clancy | 2026-05-15 13:56:59 +1200

Fix floor under used mutation catalyst changing tile on reload
When you use a mutation catalyst, the floor tile under it is changed to
a variation of the gulch floor tile. However, because tile variations
are rechoosen on loading a game, the logic used to pick a variation must
be the same in both places or the tile might get a different variation
after reloading the game.

--------------------------------------------------------------------------------
111c049846 | Isaac Clancy | 2026-05-15 13:28:35 +1200

Fix used mutation catalysts using floor tile for unused catalyst
If you activated a mutation catalyst while playing in console and then
continued player the game in tiles, the floor under the used mutation
catalyst would show the tile for the under an unused catalyst.

--------------------------------------------------------------------------------
ac28c1b91c | regret-index | 2026-05-14 16:35:43 -0230

Tweak some tension code for sleeping monsters
ef33468 both accidentally forgot to remove the case for reducing fleeing
and sleeping monsters being worth more tension as well an accidental
flip of the fraction those were worth. As a net result, this meant
asleep monsters were worth the same tension values as them being awake.
I don't really agree with the intent of old tension calculations nearly
completely tossing out the threat of any nearby sleeping monsters- there's
always a decent chance they'll wake up at any moment- so this commit
cleans up the code a little and semi-canonizes this to make them worth 66%
of their tension. It also tweaks some redundant lines for fleeing and
paralysed monsters.

--------------------------------------------------------------------------------
c7caaa2045 | regret-index | 2026-05-14 16:03:09 -0230

Remove a redundant "Error:" in erroneous wizmode item creation
The "Error:" prefix for such item failures was made redundant with 02af3d5
making all failed item creation display an incorrect itemspec.

--------------------------------------------------------------------------------
4d2c1b882e | regret-index | 2026-05-14 16:00:18 -0230

A scattered few new tiles
 * Bear simulacra have a new tile, combining ontoclasm's small and large
   quadruped simulacrum tiles, so that they're more distinguishable from
   wolf and elephant simulacra in early Ice Caves.

 * Purified mutation catalysts now have a unique floor tile underneath
   them meant to be a square glow resembling the autopick outline, which
   hopefully should help players actually notice them as features to
   interact with. (As with the emptied catalyst itself, this tile changes
   to a regular Gulch floor tile after its use). This tile still uses
   the normal Gulch tile sources of roctavian's adjustments of Denzi's V
   floor tiles with roctavian and ontoclasm's Slime floor tiles.
   (The catalyst tile has also been slightly nudged up and diminished in
   floor shadow so it can show the new outline better.)

 * Ynoxinuls' Ufetubi Swarm spell has a new icon to hopefully help with
   players noticing it got upgraded to summon berserk ufetubi in 6c75973.
   This tile combines ontoclasm's ufetubus tile and generic summoning
   spell icon sigil with Purge's old berserk status icon.

--------------------------------------------------------------------------------
2550bced66 | regret-index | 2026-05-14 14:50:16 -0230

New mutation: fire or electric damage outlines foes in light
This commit introduces another good mutation meant to provide variety
for a category of passives heavily defined by generic stats, and follows
up on the parent commits of elemental checks by adding a much weaker
effect of multiple element types to the general mutation pool instead
of a single effect to the unrands pool. (The power level might be a little
too weak, but the current sources of it as an irresistable effect have
some popularity even when they come with other downsides, so this should
be fine as a minor upside.)

This rare two level mutation, flavoured as a subtle swarm of sparks and
cinders, gives a 33% / 66% chance according to its level to inflict the
softly glowing / outlined in light status when you deal non-zero fire
damage to enemies without rF+++ or electric damage to enemies without
rElec+++. This debuff, which is roughly a 10-15% increase in accuracy
in effect, is currently available to players via helmets of light or
TSO's halo without any chance check in exchange for recieving the same
penalty as well as halved stealth- without such downsides, going through
a different condition and chance "for free" seems like a passable
exchange. (Compared to Corona as was removed in cafe5c4 and d4a3b56, this
effect also is coming for free when actually making some progress against
killing a monster by actually hitting it, so it should feel less awful
than just rolling chances for a single weakling hex forever).

Aside from mildly helping fiery and electric magic / weapons /
evocables / consumables, it also counts as inflicting a debuff for athames
or the swamp witch's dragon scales, which should interweave it in enough
ways to make it useful despite the relatively low numbers. This commit
also adds an icon for the glowing effect again to make it noticeable when
it applies (as with the rest of these checks, there's too many ways to
do these effects enmass for it to get a message each time), and does some
minor hack work to get Vhi's Electric Charge working for it.

The mutation icon combines roctavian's old lightning scales tile,
ontoclasm's old electrocution brand and resist fire ego icons, Bloax's
Corona spell icon, and Sastreii's head-slot mutation icons. The new Corona
icon notably edits ontoclasm's summoned icon (rather than being nearly as
visible as ontoclasm's old icon for such).

--------------------------------------------------------------------------------
6c2c9e6e9b | regret-index | 2026-05-14 14:50:16 -0230

New unrands: the fire dragon occultist scales + ice dragon arcanist scales
These unrands both follow up the elemental damage checks of the parent
commit and the caster-promoting Dungeon-mage-flavoured dragon scales of
2d801cb. They also expand a little on the only dragons with speech or
characterization being named uniques, get another few rare usages of the
Exposed debuff introduced in 962f017 for Gale Centaurs, and further
expand on the specific-spell-school wizardy effects introduced for various
talismans and heavier armour egos alike.

These fire dragon scales and ice dragon scales unrands are of a pair both
thematically (given backstories of originating from more hard-to-pronounce
ancient dragons of recently-opposite wizard types of 129f0b0), but also to
support their mechanical benefits having a narrowed focus that can
encourage pivoting into their specific needs. The fire dragon occultist
scales are +6 FDS of {FireExpos FireWiz rF++ rC- Int+3} and the ice dragon
arcanist scales are +7 IDS of {IceExpos IceWiz rC++ rF- Str+3}, with two
unique artefact properties specified for each of them:

 * FireExpos / IceExpos: This gives a 50% chance for non-zero fire & magma
   / cold and ice damage dealt by the wearer to inflict the Exposed
   status, which increases damage taken by non-weapon-attack sources by
   35%, makes non-weapon beams more accurate in hitting the bearer, and
   lowers their Willpower by 30. (Much like Fimbulwinter in c6d8f86 and
   the swamp witch dragon scales in 2d801cb, even partially-resistable
   damage can't inflict the status on those with the matching rF∞ or rC∞,
   and as with many debuff sources, this can't indefinitely extend the
   status with further applications of fire or cold damage. Implementation
   wise, this mostly only tweaks Ignite Poison to use BEAM_FIRE.)

   As with Fimbulwinter in the previous commit, this effect comes with
   interesting upsides for Makhleb and Qazlal invocations, various
   consumables like immolation and iceblast, and the corresponding spell
   schools (if one can cast in the scales at all). Unlike Fimbulwinter,
   this also works with any given flaming or freezing weapon one wants,
   though it won't help those weapons themselves do any more direct
   damage- such infinitely-available-swings can still help for hex wands
   or those other invocations and consumables, which should still be
   neat in-and-of-itself.

 * FireWiz / IceWiz: This gives the equivalent of one ring of wizardy
   (and not a second, like rimehorn / scarab / riddle talismans or
   heavy armour egos) for spells of the matching school. This is still
   somewhat offset by the actual encumbrance of the armour itself, but
   should still encourage alongside the Exposed access to actually
   cast specific destructive schools in mildly heavy armour, and can
   also encourage focusing on those schools when in their overlaps with
   e.g. Forgecraft or Ice or Earth.

While these are both very straightforward in a certain fashion by
essentially being fire and ice scales boosting fire and ice magic, Crawl
has shyed away from such condition-check paradigms of modern roguelike
genre-hybrid designs, and Crawl's eternal design thirst for more build
variety + unique drops may as well start basic iterations upon this
synergies space. (It is highly unlikely with these particularly restrained
drops of unrands or rarer other means to result in cascading hyper-combos
of various effects too complicated to parse, especially in contrast to
what one one can already do for weapon damage).

Their item tiles combine roctavian's old fire / ice dragon armour and
old salamander firebrand tile with Sastreii's current fire / ice dragon
armour and shattered gem tiles. The player doll tiles combine ontoclasm's
current fire and ice dragon scale paper doll tiles with Denzi's old
tiles for the same.

--------------------------------------------------------------------------------
1721dec804 | regret-index | 2026-05-14 14:50:16 -0230

New unrand: the athame "Fimbulwinter"
As with e17ad08, it's nice for there to be unrands for each weapon base
type, with their inherent high competition in their slot as well as
providing a bit more unique play per weapon type per run. This athame
unrand both plays with the debuffs the base weapon and weapon type both
care about, experiments with Bane and Doom as hasn't touched any of the
unrand pool, and is the first to set up a slow trickle of experimenting
further with simple and broad conditional triggers beyond the debuff
system set-up by poltergeists and athames themselves.

This +9 freezing athame "Fimbulwinter" is named after the Norse myth of
a three-year winter preceding Ragnarok (tying as well as it can to Doom),
and is interlinked with Crawl's own cosmology via prophets of Qazlal
rather than shying away from mythology entirely as was done to Zephyr née
Sharnaga across 76effe1 and 0de3dc5 (...and which has come back full
circle with referring to Zephyrus with Gale Centaurs in 652d35c). On the
downsides property list, it comes with Bane and rF- to make it a full
investment comparable to ^Contam and ^Fragile unrands. These are meant
to compensate for both a thematic rC++ and a unique IceDoom property:
the wielder directly dealing any non-zero cold damage to enemies without
rC∞ (i.e. clouds but not allies) also gives them 5 + 4d3 Doom, which for
monsters activates at 50 Doom to provide instead of Banes 100 to 200
turns of irresistable slowing, weakness, vitrification, blinding, or
fairly heavy draining.

By being on an athame, this allows fairly strong direct melee in exchange
for a fairly different clause of racking up cold damage- while enough
swings at a foe can inflict statuses eventually, one can also deploy
damage-over-time spells like Frozen Ramparts or Freezing Cloud, which also
makes Metabolic Englaciation a little less of a troubled spell itself.
It also can augment Iceblast charges or the Passive Freeze mutation,
provide a bit more of an extra edge to lucky Qazlal and Makhleb
invocations, and grant a fairly different spell-booster to more focused
Ice Magic destructive spell mages, which should all be interesting side
notions of reward to compliment the innate risk of taking a random Bane.
(It can also start a precedent of tracking dealing damage types for
other future designs, to encourage anything other than stacking up
raw Slaying and spellpower.)

(Implementation-wise, this makes apply_damage_brand properly define an
attack flavour for most weapon brands instead of inexplicably just
electrocution, to make it easier to track these in the future. This should
have no mechanical effects aside from making flaming weapons capable of
burning down bushes. This commit also makes Doom befalling monsters
specify which of the very long debuffs is actually applied, since this
wasn't previously set up when it'd take charmed ravens or bribed orbs of
entropy to plausibly apply such without dealing massive damage first. It
doesn't admittedly ascribe it to Fimbulwinter or communicate in the message
log it lasts anything like its 100 to 200 turns- I'll see how people feel
about the in-game messaging here before doing more changes.)

The item tile combines roctavian's old plutonium sword tile and dagger of
Chilly Death tiles, while the paper doll tile once more modifies the
current quick blade paper doll tile also by roctavian.

--------------------------------------------------------------------------------
500d01dd7d | Isaac Clancy | 2026-05-14 21:25:20 +1200

Hopefully fix the build with gcc 4.7.2
One of the webtiles servers is still stuck on gcc 4.7.2 which has
incomplete support for uniform initialization. This was causing it to
error when surrounding a value with {} to cause a copy. Instead don't
surround the value with {} as it will be copied anyway.

--------------------------------------------------------------------------------
274e6c4f07 | regret-index | 2026-05-10 18:48:22 -0230

Clear out a junk file
WSL is weird.

--------------------------------------------------------------------------------
089a2308ae | regret-index | 2026-05-10 16:23:27 -0230

Fix troves randbooks of necromancy (PureQuestion)
At some point, we really should do some pass on the slightly different
phrasings between skill names, short-form spell school names, enhancer
artifact property names, staff names, and manual names, or make them more
easily accepted each others' specific terms, on the C side of Crawl's
set-up here. These many weird slight differences between the syntax for
each set up by different people is highly error prone at best, and it
would reasonably follow up with better vault error handling done in
02af3d5 and a6e618e.

Still, for now, this should once more make troves properly place
randbooks when one's highest school is Necromancy, which was broken in the
name tweaks of ad89b66, with yet another argument in the table of
generating hyper-specific magical items for both troves and one's own
apts / species / mutations.

--------------------------------------------------------------------------------
f3326b7c54 | regret-index | 2026-05-10 16:23:27 -0230

Let Qazlal's Elemental Force convert blastmotes and fluffiness
The former can technically be set up in advance, but produces the least
impactful of the four elementals for a lot of MP. The latter is currently
only for cute interactions with the dreamshard necklace or the Cloud Mage's
Chambers, with the latter not being that threatening to Qazlal worshippers
in the first place due to their cloud immunity. Still, it makes fairly more
thematic sense with smoke clouds into air elementals in the first place,
and it can cover for a future planned use of the cloud tying into that
necklace.

--------------------------------------------------------------------------------
29cfe71249 | regret-index | 2026-05-10 16:23:27 -0230

Some more rltiles/UNUSED tidying
This clears out a few tiles redundant with tile additions and reuses, and
adds a fistful of old tiles from roctavian's submissions back in the day.
I've got a pretty large repository of this stuff myself, but I'm still a
little uncertain as to how much this folder is useful for other devs trying
to grab oldtiles as placeholders, so this is still a very small portion of
such.

--------------------------------------------------------------------------------
eceda78300 | Isaac Clancy | 2026-05-10 23:49:42 +1200

Fix more cases of spells aiming at targets they can't hit
If you tried casting a spell with no tageter at a monster you can't hit
or at a spot near one, going back into the spell targeter would default
to aiming at the monster you can't hit.

--------------------------------------------------------------------------------
695dbf0b99 | CrawlOdds | 2026-05-10 23:23:05 +1200

Fix some spells aiming at monsters they can't hit
Following b0ab3d4, spells with no targeter (e.g. haunt) would sometimes
aim at monsters they can't hit, because we now consider targets even if
they are blocked by transparent obstructions.

--------------------------------------------------------------------------------
04d9541819 | Isaac Clancy | 2026-05-10 21:52:40 +1200

Fix due_index_antique_fridge placing a "long blade" (Ogregutan)
It was presumably meant to place a "long sword" as a "long blade" isn't
a valid item.

--------------------------------------------------------------------------------
86413970cf | Isaac Clancy | 2026-05-10 21:05:54 +1200

Fix monsters dying to barbs sometimes crashing
If a monster died from barbs when it moved. It would have its position
set to (0, 0). We would then calculate its old position based on its
current position and how it had moved (e.g. if it had moved right one
square we would calculate its old position as (-1, 0)). We would then
pass this old position to monster::check_redraw which would crash if it
was out of the map bounds. Instead, only run the movement effects after
calling monster::check_redraw so that the monster doesn't die to barb
damage until after it has been redrawn.

--------------------------------------------------------------------------------
f9a08967ab | Isaac Clancy | 2026-05-10 15:38:19 +1200

Remove old unused domino code
When dominoes were reworked in b716198, some of the old code was left
behind even though it isn't used anymore.

--------------------------------------------------------------------------------
7480fdf97e | Isaac Clancy | 2026-05-10 11:40:01 +1200

Fix Gyre and Gimbal not getting bonus reckless damage
Gyre and Gimbal is a two handed weapon so it should get bonus damage
from the reckless mutation. However, we were accidentally only using its
type (quick blade) which is one-handed to determine if it should get
bonus damage.

--------------------------------------------------------------------------------
93c6bbe6e9 | Isaac Clancy | 2026-05-10 11:11:06 +1200

Fix different races getting different unrands in seeded game (khaemere)
When upgrading a weapon into an unrand, we only consider unrand weapons
that use the same attack skill and number of hands as the weapon we are
upgrading. However, different races differ in the number of hands they
need to use a weapon (e.g. formicids use almost all weapons in one hand)
sometimes resulting in us picking a different unrand.

To fix this, require that the unrand uses the same number of hands for a
medium size player with no mutations when upgrading weapons for
non-acquirement items.

Resolves #5119

--------------------------------------------------------------------------------
84272383f9 | regret-index | 2026-05-07 17:50:54 -0230

Give sewage sovereigns rPois (knorpule3001)
Every monster placing only in the Gulch is meant to have rPois to connect
to surviving its awful polluted flavour, even including living monsters
that themselves don't use poison like scrapshell chimeras and
telencephalons. Sewage sovereigns missing out on it is more of an oversight
than anything else meant to tweak balance with one way or another.

--------------------------------------------------------------------------------
b15e5d74c6 | hellmonk | 2026-05-07 14:24:20 -0500

remove a duplicate credits entry

--------------------------------------------------------------------------------
b832844d6f | hellmonk | 2026-05-07 14:10:23 -0500

update credits.txt

--------------------------------------------------------------------------------
3daca8ecd0 | refracta | 2026-05-07 14:03:40 -0500

Prevent mirroring minmay_shattered_shrine (#5234)
The minmay_shattered_shrine vault contains a QR-code-style layout. QR
codes remain readable when rotated, but horizontal or vertical mirroring
breaks the encoded pattern.

Add no_hmirror and no_vmirror to preserve the intended layout while
still allowing normal rotation.
--------------------------------------------------------------------------------
3feefc1607 | Donát Nagy | 2026-05-07 13:21:53 -0500

Fix typo in purified mutation catalyst message for death form (#5243)
Remove one of the two redundant synonyms in the sentence "You must first
return to come back to life..."
--------------------------------------------------------------------------------
5bd234ea86 | regret-index | 2026-05-07 15:43:22 -0230

Fix Xom trying to teleport those with stasis
When the Xom action-picking code was rewritten back in 6874458, it
accidentally introduced Xom trying to teleport formicids (and -Tele
item wearers) on only one of two effects due to using an `or` instead
of an `and`. It is a reasonably funny accidental joke in a certain
capacity for Xom to do this and fail, but it has reasonably run its
course and affects the hostile actions Xom will actually do on a Formicid,
and would probably work better as another line in Xom's endless flavour
messages list instead.

--------------------------------------------------------------------------------
a6e618e961 | regret-index | 2026-05-07 15:43:22 -0230

Report vault testing weights to players
There's been a fair number of these errors over the long course of Crawl's
history, and as with 02af3d5, I would rather make potential errors be
more easily caught and addressed quickly over such quietly lurking in the
background indefinitely. This commit makes Crawl report in just the
message log whenever a vault itself has more than 5000 weight (and not any
monsters or items used within it)- after two decades, we've got a single
decorative vault with 1500 weight and another four with >100 <1000
alongside a few dummy vault weight balancers, so it's very unlikely any
new vault weight assignments will deliberately go over this for anything
meant to be actually pushed to master.

--------------------------------------------------------------------------------
518d240b60 | regret-index | 2026-05-07 15:43:22 -0230

Various other portal tweaks
Worthy of note:

 * While the rest of the bailey killstat curve since 4e6b4df has reached a
   reasonable gradient, bailey_axe_4 is still underperforming a fair bit.
   As a portal layout emphasizing both water and traps, I would prefer to
   emphasize that more than increasing the enemy density compared to most
   other portals, so aside from another 10% chance to place an orc knight,
   the majority of changes here emphasize more traps and less early space
   away from the river.

 * hellmonk_volcano_collapse being so fast with its wall-raising gimmick
   and ambushing immediately with all monsters has made it the second
   most lethal volcano layout in killstats after adjusting for map
   weights, which isn't inherently unreasonable but is fairly mean for a
   map with a unique spoilery gimmick. I'm increasing the minimum timer
   for walls to fall down onto the map and marking the spaces where walls
   appear both, which should allow actually rushing forward to get any of
   the loot without necessarily locking yourself in nearly immediately
   as well as reducing spoiler capacities after the first time one sees
   the layout. I'm also reducing the outside map boss count's cap to
   space them out a little, allowing the choice of leaving to be less
   reliant on noise rng.

 * The dragon trove of Erebora now properly spawns its randbook of
   Dragon's Call alongside the other elemental books.

 * Cigotuvi's Wizlab has gotten another actual threat buff to correlate
   with its high reward count and low kill rate: denser groupings and a
   chance for higher hd on the randomized glowing shapeshifter
   distribution, a perm_ench:chaos_laced buff on Cigotuvi's Monster to
   help it stand out yet more, and a small chance for kobold fleshcrafters
   accompanying occasionally-stronger ugly things. In exchange, it has
   gotten further talisman choice tweaks (as still have a fair number of
   character-clashing hits).

--------------------------------------------------------------------------------
b3cffbe06b | hellmonk | 2026-05-05 13:11:07 -0500

Always display petrifying status (Monkooky)
I think this combination suppression stuff should be removed altogether, but
let's start with this one since displaying both petrifying and paralysis is
clearly useful.

Fixes #4723

--------------------------------------------------------------------------------
fa75b23008 | regret-index | 2026-05-05 15:33:16 -0230

Yet further Xom boredom adjustments
These are somewhat stopgap measures while the project to finally fully
revamp Xom's strategic effects (mentioned in c7f2f74) has ended up
rising fairly higher on the project priority list. While the intensity
of this scaling will still be tuned down substantially when that project
is completed, the overall conditions for Xom's boredom can still be
tweaked in fashions fine for Xom boredom existing in the first place.

 * Xom's boredom declarations are no longer uselessly randomized
   seperately from actually deincrementing Xom's boredom, which previously
   resulted in a ton of random interruptions by the 1/20 chance every turn
   to win a coinflip at near-bottom boredom (which got amplified by
   trying to warn at much higher boredom points on nearly completed
   floors, which itself was left overly high after the nerf on c7f2f74).
   This overemphasized the risk of Xom's actions even on unexplored
   floors, and was a very confusing and hostile means of displaying
   information to begin with- appropriate for Xom, but far less fun than
   the random hostile actions to begin with.

   Instead, Xom now explicitly only declares being bored when Their
   boredom timer ticks down its last few points (scaled to fully explored
   floors), with some obfuscating fuzzing of actually stating these
   messages before the very last few triggers to retain any chaotic
   flavour:

   | 6      | 5      | 4      | 3      | 2     | 1     |
   -----------------------------------------------------
   | 50.00% | 57.14% | 66.67% | 80.00% | 100%  | 100%  |

   These last two triggers are also distinguished by the player being
   described as "VERY BORING" rather than now just "Boring". Hopefully,
   this should involve far less interruptions to communicate far more
   usefully "actually do something".

 * When Xom acts on a nearly-fully-explored floor while bored, the timer
   reset is now only 75% lower compared to the previous 33%. Since the
   strategic benefits and strategic maluses are already so much worse on
   those floors to begin with, Xom doesn't really need to shove players
   deeper that much faster to have the same "stop backtracking and start
   doing things" push, and this should allow making it to the next floor
   without having to warp play with manual exploration.

 * Xom's bored nearly-fully-explored floor estimate no longer guarantees
   bad mutations (but still amplifies drain + doom and disables getting
   strategic gifts). Unlike the comparable downsides of drain and doom
   also amplified here, bad mutations are a much meaner roll that can't be
   reasonably worked off in regular non-scumming play, and with scumming
   still at a very unviable state from withholding the item / bazaar gifts
   on known floors, these anti-scumming measure don't need to be quite as
   hostile as prior.

--------------------------------------------------------------------------------
dd551d8ade | regret-index | 2026-05-05 12:27:09 -0230

Further Gulch adjustments
Some of this about helping parsing unique branch mechanics, some of this
is about an extraordinarily low kill rate of 1 death in 57 games in the
past week, and some of this is about adjusting the future chance and
reward structure of the portal entirely.

 * The transient mutation warning for entering Gulch now explicitly
   mentions doing so provides exactly three transient mutations, rather
   than what can be parsed as much less.

 * The mutation catalyst tiles no longer have plinths, which I had hoped
   would be read as akin to many altar designs do but which instead can
   be read as statues.

   * TODO: let standing on a feature not prevent examining it with xv.

 * There is now a coinflip chance in each Gulch layout to place some
   number of traps- mostly tyrant traps with rare dispersal or harlequin
   or Zot traps- around various corners. Alongside further leaning into
   unique terrain being emphasized here more than any other lategame
   portal, if this does indeed end up becoming a proper branch than
   these vaults are unlikely to get no_trap_gen compared to most other
   vaults anyway.

 * With that extraordinarily low killrate, I have bumped up the boss
   numbers- a 1/3 chance depending on the boss theme set for a third
   sewage sovereign, second scrapshell chimera, or a formless jellyfish
   accompanying the amoeba / slymdra roll. I'm reluctant to do much
   else on the difficulty front here with the rarity of the late portal
   providing a very poor sample size, but if this still provides poor
   numbers after increased spawns and these additional threats then I
   will focus on buffing individual bespoke monsters next.

 * Item rewards have been nudged up for basically the last form I feel
   particularly comfortable about with such poor killstats- potions
   consistently come in stacks of two, and the generic superb_item
   meant to provide loot variety is now handpicked to be stronger than
   the average superb_item result: a mix of the same top-tier weapons
   of venom / hand cannons as prior (which can be rebranded as always),
   swamp dragon scales randarts, thematic ego aux armour or jewellery
   randarts, rare thematic evokers or unthemed randbooks and manuals.

 * The Gulch appearance rate is also nudged up from ~18.5% of all V:1-4
   visits to ~21.9%. I'm quite reluctant to hand out yet more item
   rewards in lategame after buffing both troves and Crypt rewards _and_
   _and_ the portal hasn't provided almost any threat to kill people
   with (compare the restrained rewards in Necropolis layouts due to the
   extremely controllable nature of the portal, Wizlabs having very poor
   non-magic rewards on average, Desolation being wildly dangerous in
   exchange for high rewards, Bazaars costing money). As long as the
   catalyst is actually noticed, the portal should continue to foreground
   themed and unique rewards, at least.

   * There's also not nearly as many layouts as I'd like for making
     the portal substantially more common yet, with further layouts
     waiting on submissions or other major projects this version to be
     finished. There could be a set-up to get one of Desolation or Gulch
     each game to deal with both layout and reward concerns here, though
     I'd like the difficulty of thie portal to be more settled first.

--------------------------------------------------------------------------------
f003858310 | regret-index | 2026-05-05 11:55:39 -0230

Fix Gauntlet end-subvault wall graphics issues (Odds)
This is a follow-up to 73e2906, fixing how gauntlet_exit_green and
gauntlet_exit_hidden_loot would map walls (and just walls) next to their
backmost outer floor, by adjusting the automap handling code (and leaving
a comment on where it's used). It's a little janky, but as long as we're
only using this no_automap tag for Gauntlets, it should be fine.

--------------------------------------------------------------------------------
461571ac7c | regret-index | 2026-05-05 11:55:39 -0230

New decoration + yet further and further vault review
This commit mostly introduces assortments of trash, another decorative
floor reskinning option usable in a variety of generic lived-in vaults,
as a means of reusing the flavour and graphics of some of Gulch elsewhere
without having that individual vault match the portal's green floor tiles.
(In particular, the agnostic nature of these further encroaches upon some
plainer abstract vaults, which would be ideal to keep freshening up-
while it may take indefinite amounts of new tiles to really make the
average vault feel unique, it's a decent enough goal that each bit helping
for indefinite future vault development feels worthwhile.) Such pieces
combine the previous use of Sastreii's floor_studio papers and various CC0
tiny jrpg item graphics by finalbossblues / ARoachIFoundOnMyPillow / Jetrel
with more CC0 item graphics by RavenTale.

(The rest of this is mostly mild incidental error fix-ups and a tweak of
another custom_books book.)

--------------------------------------------------------------------------------
55cc796d3c | Isaac Clancy | 2026-05-04 15:59:14 +1200

Fix the message when a contam explosion ends fear (croikle)
When a fleeing monster was hit by a magical contamination explosion, it
would give a message such as "INVALID YOU_FAULTLESS attack snaps the
shining eye out of its fear", instead, say "The attack snaps the shining
eye out of its fear".

Fixes #5232

--------------------------------------------------------------------------------
43f5b4d145 | Isaac Clancy | 2026-05-04 15:08:37 +1200

Fix AC for switching armour being incorrect when in a form
While in a form that melds armour, if you examined some armour that you
weren't wearing it would tell you that switching to the armour would
increase your AC even though you couldn't benefit from it. It would even
say your AC would increase when your current armour was better. This is
because it would count your current armour as melded but wouldn't count
the armour you were examining as melded when working out what AC you
would have when wearing it.

Fixes #5096

--------------------------------------------------------------------------------
b7161982d4 | Isaac Clancy | 2026-05-04 15:08:07 +1200

Speed up tile variant picking
Tile variant picking was spending most of its time handling dominoes.
However, those are only used when creating Crypt levels and aren't
needed when picking a tile variant for every terrain tile on screen
every frame. Instead move domino handling out of tile variant picking
and only call it when creating levels.

--------------------------------------------------------------------------------
f5b953ccff | Isaac Clancy | 2026-05-04 12:27:45 +1200

Remove duplicate slime stone wall tile variation

--------------------------------------------------------------------------------
d5e08f372d | CrawlOdds | 2026-05-03 10:01:05 +1200

Don't allow knockback to take monsters out of bounds
This could cause rare crashes with wall walkers being trampled

--------------------------------------------------------------------------------
02af3d50c8 | regret-index | 2026-05-02 14:21:28 -0230

Improve vault itemspec error handling, fix found errors (DracoOmega)
Crawl's item specification and definition error handling has had
extremely significant errors in it since 0.16. The way it parses items in
a list will silently pass by incorrect entries as long as there is another
valid item further in that list (since the error message it would report
gets replaced by the next work not having any errors). While failing
silently and gracefully allows vaults with some working definitions to
still place the working part of an item list, it's very noticeably against
the policy of Crawl not loading from other significant vault errors, and
it is exceedingly bad policy to completely hide failing item entries from
anybody working on Crawl for relatively indefinite periods of development.

This commit, with some assistance from DracoOmega, makes Crawl print
errors instead of loading whenever it actually parses that an incorrect
item has been passed to vault creation in a vault. I have also thus
gone through and fixed every incorrect item specification Crawl reports:
for the most part, this only fixes minor errors, but most notably it
reintroduces small chances of getting multiple ally scrolls in each Trove
post-rework and also catches the ziggurat potion of mutation syntax error
introduced in c79536f.

(Our limited means of error handling means that, unfortunately, we can't
have Crawl cleanly present every vault's syntax errors at once. It also
means we can't really try to, say, have Crawl report these issues to users
and then load in other valid item specifications or other vaults entirely
without stopping play dead. Further adjustments here may be beneficial,
but for now, this falling into the same means of handling as other .des
syntax errors is fairly more consistent and helps catch more actual
errors.)

--------------------------------------------------------------------------------
2d096d4ccb | regret-index | 2026-05-01 09:47:52 -0230

Tweak some descriptions
 * Metal walls no longer mention they're bluish-grey- quite a few vaults
   recolour them as is, and the default metal wall tiles that the vast
   majority of players have seen for the past decade are not blue in any
   fashion.

 * Fungus in Gulch are now described as mauve instead of grey, which
   should be usefully ambigious enough to match both types of fungus
   tile colour there while being substantially more accurate than calling
   them "grey".

 * Athame now are described as knives rather than daggers, to reduce the
   chance of misinterpretting them as getting the dagger-exclusive extra
   stabbing damage bonus, and as newer weapons people may otherwise
   misinterpret.

--------------------------------------------------------------------------------
5a90629c15 | regret-index | 2026-05-01 08:17:00 -0230

Give sewage sovereigns immunity to Porkalator (tekkud)
The odds of dragging a bound Kirke far enough to see this were
incredulously unlikely to come up in a thousand games, but it is
consistent with the Porkalator immunity hell hogs already have, so it might
as well exist.

--------------------------------------------------------------------------------
b14e334c73 | regret-index | 2026-04-30 15:51:25 -0230

Buff Gulch item rewards + add a unique new reward feature (roxie puddles)
 * Gulch layouts now feature three more superb_items and one more randart
   talisman, to offer more mixed potential reward benefits still heavily
   balanced out by the high threat levels of the portal and the usual
   blind balancing capacity for rewards to match a specific character's
   needs.

 * The thematic Gulch rewards have been nudged up a little bit, with an
   increased (if not very high) chance of randarts using the flavour
   artprops for the plainer egos in the armour slot, and orb randarts
   specifying a few valuable types of orb to remove the chance of rolling
   e.g. orbs of mayhem as mostly just exist for ziggurat delving.

 * Most notably, there is now a completely new and distinct feature added
   to parallel the transient mutation entry penalty as well as provide
   another distinct reward from other portals. In the boss chambers of
   each Gulch is a single "purified mutation catalyst", which upon being
   interacted with (via standing on it and pressing `>`, as has been
   established with altars and shops both) gives a player a single good
   mutation before breaking apart. This leaves the decorative floor
   feature of an empty mutation catalyst, and a small number of Gulch
   layouts contain such decorative features alongside the usable one.

   * This mutation source can never roll the three flat stat increase
     mutations for being very boring (c.f. 67c6cfe), nor any body slot
     auxes as can have the notable downside of disabling equipment slots
     (most pressingly, including horns and antennae dropping helmets
     with one level). Zin worshippers and undead still can't mutate,
     though those in Death Form can access these catalysts if they
     transform back to normal.

   * These are deliberately features rather than e.g. returning potions of
     beneficial mutation to amplify the interests and pressures of
     mutation roulette- if a player wants more than just a single good
     mutation for their character, they have to actually commit to
     drinking potions of mutation brought in prior. (The flashiness of
     the reward as distinct from any other portal, and establishing
     that portals can affect characters beyond just item rewards, and
     preventing item hoarding with our expanded inventory size limits,
     all also contribute to this particular design decision.)

   * Currently, autoexplore will stop on seeing the catalyst, but not
     automatically travel towards or take it due to how one may thus
     want to drink potions of mutation first. Additionally, there is
     no prompt for using it. This might warrant some adjustment to stop
     ontop of it without actually using it automatically, then bringing
     in the usual yes / no prompt, but this is otherwise following some
     of the precedents set by altars.

   * The mutation catalyst tile in both usable and used-up states
     combines CanOfWorms's old Pakellas altar with a CC0 potion graphic
     by idylwild.

--------------------------------------------------------------------------------
c79536f93d | regret-index | 2026-04-30 15:32:04 -0230

Another quick and brief vault review (+ a minor Zig change)
Worthy of note:

 * pf_dread_powers_of_hell has constantly gotten confused reports of it
   deploying reapers and balrugs not wielding their iconic weapons, as
   both of them haven't kept the wands of flame they were supposed to
   be given by the vault for multiple years. Rather than revert it to
   the state prior to a1918b6 and end up using crimson imps in Depths,
   I am opting to remove the monsters from the vault entirely, which is
   a mild shame but fairly less confusing.

 * A few Gulch monsters have been added to the usual hyper-randomized
   Sprint trio (arenasprint, zigsprint, and pitsprint) as are closest to
   contemporary design principles.

 * I've made another new Arena map (the testing one, not the Oka one)
   with 2-tile-wide corridors to test performances beyond open spaces
   or 1-tile-wide corridors.

 * hellmonk_guarded_unrand_damnation no longer uses hellions in Elf,
   partially because I've got mixed feelings about directly deploying
   demons in the branch with such diminished demonology themes, and
   partially so one of the best ranged weapon unrands can actually be
   guarded by one of the most dangerous ranged monster in the game.

 * Ziggurats past the first one cleared redistribute the weight of potions
   of experience over to potions of mutation, as the way potions of
   experience are currently implemented makes them give very little
   besides the experience level by the time one enters a zig, and
   rerolling mutations still holds some interest for megazig divers.

--------------------------------------------------------------------------------
f327da5d0f | regret-index | 2026-04-30 15:32:04 -0230

Nerf early D generic draugr once more
Most non-specified derived undead placements get extra effective depth for
the monster they pick, due to derived undead mostly missing out on many
of the strengths of the monster they take. This was excluded from draugr in
98bede3 due to them having a fairly reasonable trade-off of AC and an
AF_DOOM weapon hit, but was accidentally renabled when 76c8eab set up V
draugr as being stronger for their depth. While most early draugr placement
specifies monster types to prevent them from being too mean, a few overflow
altars and serial_undead don't, which can do with tuning down for
consistency's sake since so many draugr are quite difficult to even damage
at all early on.

As such, this commit once more removes the derived undead extra floor
scaling for generic draugr placement. (This doesn't apply to Crypt, though,
which already needs as much spice as it can get for its overlap with the
rest of lategame).

--------------------------------------------------------------------------------
7c76712278 | regret-index | 2026-04-30 15:32:04 -0230

Explicitly mention shields can't block penetrating projectiles
This adjusts the Shields skill description, javelins, and several bolt
spell descriptions to hopefully better communicate to newcomers that if a
projectile can go entirely through three orcs in plate armour before it
hits a target, a shield isn't going to block such either.

--------------------------------------------------------------------------------
7fa87c3485 | regret-index | 2026-04-30 15:32:04 -0230

Make manticores count as winged quadrupeds (tekkud)
In almost any medieval bestiary manuscript collection, over 90% of
manticores don't actually have wings. This common perception is, as usual,
mostly D&D's fault, and can plausibly be traced back to Dante insisting
Geryon was a human-faced stinger-bearing dragon-lion for the sake of a
winged mount planar crawl. Unfortunately, Crawl needs manticores to be able
to fly so Shoals has more lowest-level fodder, and I'm pretty doubtful
people would entirely take wingless manticores swimming through the Shoals
water that seriously, so I'm updating their bodyplan to match their
capacity to fly and their tile both.

(This mostly just affects manticore derived undead tile choices, for the
record, which got extra highlighted with the additional spectral tiles
added in 70a134b.)

--------------------------------------------------------------------------------
87192ef88b | CrawlOdds | 2026-04-29 14:51:55 -0500

Make LRD hit plasmodia (#5231)
LRD cast directly at a creeping plasmodium was not hurting it. This was
because the logic for LRD explosions was "don't affect the centre unless
exploding terrain with a non-solid tile".

We change the logic to "don't affect the centre when exploding a
monster", which should be correct in all cases.
--------------------------------------------------------------------------------
9da0311f7a | hellmonk | 2026-04-28 13:08:04 -0500

Improve obsidian axe description (thewilsonator)
Be explicit that it causes mesmerisation and that clarity doesn't stop it.

--------------------------------------------------------------------------------
92c20a70a4 | regret-index | 2026-04-28 02:23:11 -0230

Add Gulch set-up functions, entries, layouts, and subvaults
This initial outing has six entry vaults each with different monsters,
and six layouts with four to seven subvaults arranged for each (for a
total of 31 subvaults, which should serve for initial testing variety
even if it'll need another few layouts before version release). Most
layouts focus on somewhat V-like corridors and chambers with rivers and
pools of scrap and mould and water, with some loose distribution of
pre-broken doors to help out the slice of monsters that otherwise can't
open them (though a surprising number already can).

Various notes beyond just implementation details:

 * There's a theme function used both in individual segments and
   layout connections alike, which by default uses a split of:
   * A 60% chance for mould patches and regular fungi both, alongside
     a sewage sovereign duo boss: the most distinct terrain and the
     least weird boss with a natural theme pairing together both.
   * A 30% chance for stacks of scrap alongside a scrapshell chimera
     boss: less common due to being less distinct than mould patches,
     but an easy way to show garbage in a non-gross capacity and to still
     be fairly distinct from most branches.
   * A 10% chance for shallow and deep water alongside a colossal amoeba
     or few-headed slymdra boss: a rare chance to tutorialize the both of
     these outside of the major pressures of the Slime Pits as players
     have been slow to learn, while both almost always show up as lethal
     threats, and with less stair restrictions than said branch.
 * With the various encasing subvaults most of these Gulch layouts use,
   this allows a reasonable chance of recognizably interweaving each of
   these differing terrain features and firewood in differing segments.
   As terrain theme set-up, they're used even in vaults not containing
   the bosses themselves.

 * Alongside the seven monsters implemented in previous commits, these
   layouts have a few guests, in a mix of variety and trying to broaden
   the branch beyond just the small number of monster made for it
   * A small amount of alligators, anacondas, tyrant leeches, crawling
     flesh cages, or hyper-rare slime creatures: mostly harmless fodder
     to show non-mutated animals as well as mutated ones.
   * Extremely rare formless jellyfish, great orb of eyes, glowing orange
     brain, and torpor snail guests: the last of these passably fits the
     animal debuff portal themes and can work all game long, while the
     others help retroactively justify their presence in the increasingly
     orderly confines of V.
   * A 20% chance for several different layouts to pair thematically
     suiting Gulch monsters with one of dragon draugr, radroaches,
     ironbound mechanists, or deathcap ambushes- two guest monsters
     directly from V, the previous mutant animals, and a monster that
     is neat to rarely show before curse toes summon them.
 * The last group of these could get their own thematically-emphasized
   maps in the future, but the current batch of standard generic maps
   currently leaves them at a small chance to emphasize and test the
   newer monsters first.

 * The item rewards are heavily themed towards poison, corrosion, hexes,
   and Forgecraft, with a handful of thematic rewards alongside only a few
   generic high-quality items. Through the inherent balancing factor of
   using item groups that can roll matching or missing a midgame
   character's build, they always contain:
   * Two venom-branded top-tier weapons (with a small chance instead of
     branded / enchanted hand cannons).
   * Two of: randbooks of Alchemy / Hexes / Forgecraft paired with an
     elemental school, manuals for those schools, or orbs and staves
     with enchancers for the prior-mentioned schools.
   * One of possibly-enchanted cloak of rPois / rCorr / boots and
     bardings of flight / kite shields of rCorr / randart rPois and
     rCorr and Chemistry jewellery / lighter Resonance ego armour.
   * One random tier 3 or 4 talisman randart with either rPois or
     rCorr as avoids interacting with the innate rPois or rCorr of
     that talisman's form.
  * They otherwise mostly contain gold and random other potions, with
    small extra chances of potions of mutation.
  * Also, to fit both the trash themes and to help out with the 5% chance
    of getting smaller tutorializing slymdra, negatively-enchanted flaming
    edged weapons (and likewise freezing non-edged weapons) are distributed
    in piles near the start and end of each layout.

 * It's been a decade since we last kept any portal todo plans in the
   source code itself (with such removed from wizlab.des in 092858d), but
   with the potential for quite a few other one-off rare map themes to
   help provide vault variety in the fullness of time, I've left some
   notes on both this and any future branch implementation (c.f. c33ae53)
   at the bottom of the .des file.

--------------------------------------------------------------------------------
f8c7cb33e8 | regret-index | 2026-04-28 02:23:11 -0230

New Gulch monster: scrapshell chimeras
The second, rarer boss-tier monster for Gulches crosses over a lot of
remaining themes at once, using disparate-parts mutant motifs to capture
various sewer animal associations alongside metallic experimentation to
stitch back into construct angles, mechanically getting a few last touches
of displacement and terrrain changing alongside (deliberately very
limited) contamination sources. They also experiment around with a motif
we're rarely using- summoners with exceptional resistances are mostly
exclusive to cursed body parts and mummies and uniques- alongside one
barely used at all, of summoners with significant melee capacities.

Scrapshell chimeras are mixes of insects, alligators, and snakes hiding
inside a highly-resistant, necromantically-attuned... shell of fused
scrap. (Their disparate animal-parts nature as cultivated experiments
hopefully also covers for these disparate themes.) In terms of stats,
they loosely resemble buffed golden dragons (more melee damage, additional
rF+ rC+ pips, and even more AC in exchange for zero EV) and mildly fast
swimming movement, but with rather different mechanics replacing those
breath attacks:

 * They cast Murky Legion, summoning 2 glowmurk ghasts with a cap of 4.
   These are variations on the drowned souls of merfolk avatars, but
   with more speed and more health, and which replace doing one dying
   attack of AF_DROWN damage with instead one dying normal attack that
   spreads temporary shallow water for a few dozen turns (under both it
   and what it hits) alongside a 66% chance to inflict ~15% contamination
   (or malmutation against other monsters).

   These serve as the only conventional summoners in the portal in nearly
   all maps, as another deployment of water attacks to vary options beyond
   Primal Wave and Waterstrike, and serve as another (very) cautious
   deployment of potential mutation after the heavy reduction of permanent
   sources in 0.34 (that should hopefully not be confused with the
   portal-entry's temporary mutations most likely wearing off before then).

 * They have passable direct melee offense with AF_DRAG plus exceptional
   defenses for a summoner, nearly approaching dread liches on every
   level besides EV. This should let them still be quite dangerous even
   when ducking around corners and making it to the few chokepoints
   Gulch layouts allow, occasionally pulling players out of such entirely
   depending on their defenses.

These are intended to be somewhat rare Gulch bosses, with sewage sovereign
pairs taking up 60% of normal map bosses and Slime tutorializing guests
taking up another 10%, usually appearing alongside rusted inspectors to
make dealing with them possibly dip into other resources. Some people will
get permanent mutations from them, but it's always possible to kill their
ghasts before they get a hit in, and any summoner that can make people
sometimes care about killing the summons first is succeeding decently.
While scrapshell chimeras are exclusive to Gulch, their ghasts may also
have use in future Radiant Crater designs alongside the prior
telencephalons added for this portal.

The scrapshell tile is composited from porkchop's old alligator tile,
roctavian's edits to white_noise's giant geckos, Zmy's antique adder tile,
malwyn's antique fire crab tile, kilobyte's original generic spider tile,
a rejected phalanx beetle by LemurRobot, and the current peacekeeper tile
(not  properly credited in 66c3619). The Murky Legion spell icon tile
combines Denzi's old Abjuration spell icon with ontoclasm's generic
summoning spell sigil, while the glowmurk ghast tile heavily adjusts
ontoclasm's old lorocyproca tile.

--------------------------------------------------------------------------------
4261a0d8d4 | DracoOmega | 2026-04-28 02:23:11 -0230

New Gulch monster: sewage sovereigns
[Committer's notes: DracoOmega implemented the Stampede spell and the
basic monster boilerplate for the monster.

These sizeable mutant pigs serve as the more common of the two unique
boss-tier monsters for Gulch, reflecting both the "musclebound hulk" type
of mutant as well as the urban legends of feral sewer swine in
Victorian-era Hampstead. Unlike the other Gulch-unique enemies mostly
focusing in on debuffs, these are deliberately somewhat simple in the same
avenue as tentacled monstrosities: they're mostly a standard melee
monster notable for their stats attached to a notable mechanic that will
get more homes over time.

Stats-wise, sewage sovereigns are amphibious nearly melee-only monsters
somewhat similiar to ghouls without undead resists and somewhat weaker
melee. Thematically, these colossal pigs have effectively become sewer
monarchs through both the luck of mutation and making it to new food
before most other present mutants. Mechanically, they justify their
somewhat low stats for a boss + said flavour position with one major
trick:

 * A Stampede spell, somewhere between the 0.11 to 0.18 implementation
   of boulder beetles and the Stampede effects of Gale Centaurs. This
   buff spell can only be cast when a foe is lined up on the eight compass
   directions, and makes them repeatedly move forward at double movespeed
   with a dust cloud trail until they hit a wall or charge past their
   foe's position. (This is much faster in both movement and in course
   correction than the old boulder beetle behaviour, and shouldn't thus
   have almost any of its old trivially-dodgeable patterns.) Those that
   stand in the way of the charge automatically trampled forward as the
   caster keeps charging forward, and get hit with melee attacks with
   both +50% damage and increased accuracy, until they move out of the
   way or the charge stops due to solid terrain / untraversible liquid.
   (Much like other similiar effects like Stampede and Maxwell's Portable
   Piledriver, this will also push back other allies and enemies behind
   their foe.)

   This is a unique experiment in displacement and monster movement alike
   that should be reusable in several other (mostly centaur-themed) future
   monsters that should be both intuitive and cute enough as a minigame
   that still presents very lethal damage itself, as a variation on both
   current boulder beetle charges and the weird behaviour of orbs of
   destruction.

These will appear in duos 60% at the middle or end of all normal Gulch
layouts, using yak-style herding band behaviour to keep them together.
(Think of them as duelling kings). Their bulk in such narrowed corridors
should make them reasonably likely to Stampede all over players without
Translocations or sufficient allies, and with theme-matching company of
more mongrel wurms or fungal shamblers compared to the next boss's focus
on rusted inspectors, roaming sludgefish, telencephalon, and various guest
options. They also get to appear in ziggurat Lair floors over the small
number of extra skysharks, as the set is already screwing around a fair bit
with other most-dangerous beasts as stands. Other planned Stampede users
will mostly be in extended or uniques, so sewage sovereigns should still
reasonably stand out in three-rune games despite being otherwise somewhat
plain- if anything, lacking a debuff and presenting raw stats with a
dramatic name will hopefully help them stand out.

The sewage sovereign tile combines CanofWorms's current hog tile,
ontoclasm's jiangshi, and roctavian's rejected red devil and balrug tiles.
The Stampede spell icon combines ontoclasm's Haste spell icon and haste
potion icon, while DracoOmega made the stampede status icon from the
latter.]

--------------------------------------------------------------------------------
4b21d4082c | DracoOmega | 2026-04-28 02:23:11 -0230

New Gulch(?) monster: telencephalon
[Committer's notes: DracoOmega implemented the unique HP-threshold
behaviour and boilerplate for this monster.

These goofy crystal-brain experiments, aside from contrasting with other
V constructs aside from crystal guardians, are future set-up for another
portal option: the Radiant Crater, a mix of crystal and space and magic
themes for D:13-15 and Orc:1-2 with a gimmick of nonliving monsters
and a clock of constantly-increasing magical contamination. As such,
these are a little aesthetically clashing with the rest of the Gulch in
being neither mutant nor scrap-metal alike, but should still function for
a very different intent as "rare monsters that wash up in this garbage
dump".

Thematically, they're a rather more arcane form of abandoned experiment,
combining crystal magic with mutant brains for unknown purposes. (The
secret lore contained in this commit message alone is that they're helmets
made for intelligence-raising purposes that worked extremely poorly.)
Mechanically, they somewhat resemble glowing orange brains as monsters
with full-LOS-affecting spells, cautious behaviour, the ability to open
doors, and no melee attacks, though with light omniresistance instead
of acid immunity, more AC, and fairly different spells:

 * They have Call Down Lightning and Brain Bite but no regular attacks,
   as another conjurer-support-type in these passably dense portal monster
   arrangements, and to make them higher-profile targets even with
   relatively lower damage numbers for their depth.

 * They also have another iteration upon rakshasa and star jelly
   HP-threshold behaviour with unique behaviour that ignores antimagic.
   Telencephalons injured to 40% or less of their max health emit a
   psychokinetic radius 3 knockback burst (akin to Wind Blast) alongside
   an irresistable brief Mass Confusion effect against all hostiles.
   (Much like star jellies, this then inflicts a self-debuff as a
   visible cooldown timer of 50 to 65 turns afterwards before it can
   activate this again.)

Aside from providing more unstable-construct flavour that further expands
psychic monster possibilities, these twin effects should reasonably
endanger ally builds when there's not a lot of explosions in the portal
otherwise, and still permit interesting counterplay to just immediately
firing penetrating missiles and bolts at such smite-attack telecephalons
instead of ducking around the corners and gateways the portal layout
provides. As stated prior, these don't show up anywhere normally other
than fairly rare Gulch spawns (though they _do_ get a Ziggurat pillar
vault placement to continue to inconvenience megazig divers), and would
work well as bosses for earlier space-themed portals.

Their tiles combine ontoclasm's edit of Denzi's randomized Pandemonium
lord brain with roctavian's arc blade tile and a public domain piece of
crystal by 7Soul1.]

--------------------------------------------------------------------------------
c8e75114e2 | DracoOmega | 2026-04-28 02:23:11 -0230

New Gulch monster: roaming sludgefish
[Committer's notes: DracoOmega offered some help with BEAM_ANTIMAGIC
set-up, and left the rest off for me.

These psychic water-carrying fish continue to experiment around with the
associations between mental effects and antimagic, to screw around with
the ever-wide space of piscine themes without singularly forcing them to
be liquid-bound as got previous fish removed, and to provide uniquely
anti-mage + poison conjurer psychic mutant-types for Gulch all alike.
(As mobile conjurers, they also provide a twist on the projectile firing
of both electric eels and lava snakes.)

Thematically, these magic-mutant telekinetic fish still need to breathe
water and thus move around by carrying their own sewage sludge, acting
as a reverse diving bell spider seeking out prey to gather more magic.
Stat-wise, they loosely resemble kobold fleshcrafters as mages with
notable EV and decent cast rates, alongside rPois+++, cold-bloodedness,
and fast swimspeed. Mechanically, they have AF_ANTIMAGIC melee and two
different damaging spells:

 * They have 3d13 Hurl Sludge, as is otherwise only used by fenstrider
   witches (311c5d9). As with mongrel wurms' strong poison, these both
   thematically fit the portal and experiment with additional high
   rPois checks outside of poisonous clouds past the Lair branches,
   while also getting in a second use of the relatively unique effect.
   (As with fenstriders, sludgefish are also immune to toxic bogs,
   though it barely lasts enough time to lure other monsters over it.)

 * They also have a new 3d18 penetrating Bolt of Antimagic spell, using
   the irresistable BEAM_ANTIMAGIC as will eventually be used anyway for
   part of future weapon arts effects. This spell is not meant to be on a
   lot of monsters in the future, but should provide more novelty to
   MP-draining effects beyond melee attacks or the smiting effects of
   Antimagic Gaze and Brain Bite, with limited range and EV checks both.

While this pair of spells isn't the flashiest of new conjurers effects,
roaming sludgefish should function as unique enough monsters between their
antimagic attacks and coming in the groups Gulch portals can easily
deploy. As with nearly all Gulch monsters, these are so specifically
flavoured that they're not intended to place elsewhere.

The roaming sludgefish's animated tiles combine Denzi's giant goldfish
with roctavian's old titanic slime creature. The Bolt of Antimagic icon
combines roctavian's Bolt of Cold icon and unused negative energy effects,
while the new vfx combines the latter with roctavian's small Ereshkigal
tiles.]

--------------------------------------------------------------------------------
a2d44b8edc | DracoOmega | 2026-04-28 02:23:11 -0230

New Gulch monster: fungal shamblers
[Committer's notes: DracoOmega set up these monsters' attack flavours,
while I handled the rest of their set-up.

These mushroom-headed warrior-servitors cover a variety of different
roles. Within Gulches themselves, they provide a uniquely flashy
mechanical twist on the usual "generic melee-only random weapon" monsters
taken into the standard horror-parasite route. As additional fungal
monsters, they also serve as another late plant-holiness monster for
Fedhas to pacify (c.f. alderkings in 18c7c0e). They even directly connect
to a talisman form, as has grown increasingly disjoint between Crawl's
oppositional flavour and player tools with the many talisman additions of
0.33 and 0.34.

Thematically, these fungal shamblers are basically the burstshroom
equivalent of vine stalkers, as a parasitic mutant strain that took over
the bodies and equipment of intruders fed to them. (Unlike vine stalkers,
these are true plants that have completely replaced the original flesh,
since we don't have to worry about monster holiness handing out rTorment.)
Stats-wise, they somewhat resemble death knights as armoured warrior foes
(though they lack any of their draugr or spells). Mechanically, they fit
into the debuff-focused sewer-setting Gulch themes with an enemy version of
Spore Form:

 * They have AF_WEAK weapon hits (including a ~31% chance to cleave or
   reach!), as is otherwise only used on orange demons, and which will
   noticeably impair melee characters in a portal with multiple anti-mage
   monsters. By the time they're fought in a Vaults portal, most melee
   characters should have Invocations, Throwing, or Evocations available
   to pre-emptively avoid the debuff or finish off groups, and it's a
   relatively rarer straightforward debuff we can easily afford to deploy
   more often.

 * They also have a second attack of a new AF_BURSTSHROOM attack flavour,
   producing three burstshrooms behind whoever they hit if there's room
   (i.e. no monsters, walls or water). Much like the spore form
   burstshrooms, after a few turns they'll blow up for a 3x3 explosion of
   3d12 damage that can't hurt allies and that has a 33% chance to daze
   players (for most likely one turn). Aside from experimenting more with
   being able to avoid damage zones on a delay (like e.g. the fulminant
   prisms of 27c0888), this also helps them fit with other plant and
   fungus-themed monsters (ballistomycetes explosions, thorn hunter cages,
   curse toe summoning), and pins down players in a somewhat unique fashion
   that still permits plenty of counterplay (like keeping one's back to
   walls or deep water).

While these traits mean they can't be used in quite as many numbers as
deep trolls, orc knights, or vault guards get used in V, the portal is
but one floor already, so fungal shamblers should ideally serve as mildly
uncommon debuff-melee as a result (c.f. imperial myrmidons in 0950dd7).
Their fungal themes make them the only ones I'd be fine with placing
outside of Gulch or future portal vaults (e.g. foresty themes for a
lategame / late D portal or in Depths' growing fey themes itself), though
I am not explicitly placing them in other Depths vaults in this commit
for the sake of restraining the vast scope of this portal.

Their tiles combine roctavian's old orc warlord tile with a mushroom piece
from a CC0 commission released by Screen Smith Studios.]

--------------------------------------------------------------------------------
104ff16173 | regret-index | 2026-04-28 02:23:11 -0230

New Gulch monster: rusted inspectors
These glaring eye-worm constructs are meant to expand on the constructs
theme the Vaults rather mildly touch upon with ironbound mechanists and
peacekeeper bands, as a series of constructs thematically rejected for
normal Vaults patrolling and maintenance thus deployed in Gulches.
They experiment with more Gulch-standard debuffs, and provide another
variation on the insectoid subtheme Forgecraft has presented in bees and
beetles alike.

Stats-wise, these are somewhat close to death yaks with standard nonliving
resistances, more AC over EV, deconstructibility, the ability to open
doors, and ever-necessary amphibiousness. Mechanically, they continue to
pester players with differing debuffs:

 * Their rust coat gives them AF_CORRODE attacks, as we're otherwise only
   using on rust devils and Dispater. This should helps the metal walls
   and pipes of Gulches within Vaults feel somewhat worn down (alongside
   the rusted edge each metal wall tile has), and which makes their melee
   reasonably intimidating for low-EV characters with a stronger brand but
   far less high numbers than e.g. the comparable caustic shrikes of
   Depths.

 * They also cast the irresistable Diminish Magic, as is currently only
   used by bes kemwar and zykzyls (via Enfeeble), as a debuff that
   continues to experiment with weakening mages beyond just draining
   MP, and as another means of weakening players through a notably
   different mechanism than the prior melee attack brand.

They are meant to be support units more than individual threats, though
sturdier monsters ignoring resistances to inflict lesser debuffs should
play somewhat noticeably differently from the much more debilitating and
resistable debuffs shared across mages or emphasized on more organic eyes.
(If they turn out to be too ignorable, something leaning on them being
rejected for being unstable, like a remix on shock serpent discharges, may
be warranted; we'll see how this works out as a basic draft for now.) As
something deliberately made by the Vaults, they will be the only
Gulch-exclusive spawn that can spawn inside the portal entry vaults, where
they should still reasonably fit in V as a highly restricted guard
construct.

Their tiles are made from a combination of roctavian's salamander
firebrands and soldier ants alongside a CC0 fan Pokemon commissioned and
released by Screen Smith Studios.

--------------------------------------------------------------------------------
9c7bc4540e | regret-index | 2026-04-28 02:23:11 -0230

New Gulch monster: mongrel wurms
These mutant natural-crossbreeds of various lesser dragons serve as loose
allusions to the many dragon-offshoots and dragon-hybrids of modern
fantasy, provides another multi-breath-weapon dragon to expand the total
identity of dragons beyond "one breath weapon + melee" while serving in an
extremely different role from golden dragons, and also iterate a little on
the presence of many lindwurms within V beyond just being the lesser
dragons packs for ironbound beastmasters. (Of the monsters being added to
Gulch here, they're the "smoothly-distorted-together chimera" variation on
mutant beasts here).

Stats-wise, they're somewhat like speed 12 amphibious lindwurms with
mild stat buffs and single levels of fire and poison resistance. As
visitors to the Vaults frequently deal with hasted lindwurms already,
they have a mechanically nasty mix of effects replacing that fire breath:

 * They breathe Harpoon Shots, as a way to get swamp worm mechanics on
   something thematically linked to swamp worms without explicitly being
   named after a different branch, while also being rare enough as a
   portal-exclusive monster to not diminish the spell's rare notability
   on Harold / swamp worms / iron giants.

 * They hack and cough up lobbed Scorch breath casts, as a clearly "weaker
   and broken" elemental breath attack. There's very minimal other fire
   resistance checks in the portal itself (other mongrel wurms and lucky
   rolls from  crawling flesh cages), but its mix of attributes- short
   range to permit escape after being debuffed, more damaging in multiple
   hits, reaching over allies- should work interestingly with something
   that can repeatedly pull their foes in, while currently not being used
   on non-ghost non-apostle monsters.

 * They have AF_POISON_STRONG bites, as the main use of poison within
   this portal, as an experimental additional notable rPois check past
   the Lair branches alongside Poisonous Cloud, and as another possible
   reason to fear being near close to them post-Harpoon shot.

As such, they hopefully feel appropriately like an upgrade to multiple Lair
branch monsters without singularly being any of them, in the nature of
Gulch being much close to the whole "torturous poison swamp" level motif
than Swamp itself does. As mutant drake-wurms, they count for Wyrmbane and
the dragon Ziggurat floor theme, but otherwise don't appear anywhere else,
as is the main intent for most new Gulch monsters.

Their tiles are composited from Denzi's old bone dragon tile, roctavian's
old mana viper tile + old generic spider tile + edit to Denzi's old giant
mite tile, and ontoclasm's old lava worm tile.

--------------------------------------------------------------------------------
8d6a988590 | regret-index | 2026-04-28 02:23:11 -0230

New destructible "firewood": stacks of scrap
Piles of debris in 03d5c24 seem to have been a reasonably solid success in
the continued large space of firewood (destructible semi-decorative terrain
that block attacks) as both flavourful and either nearly
impossible to break or trivial but tactically-relevant to have decay. In
the same spirit of such, to help along the subtle pushing forward of
magical technology within this setting across Forgecraft and thunderhulks
and hand cannons, I'm extending this with a new decorative firewood option:
stacks of scrap.

These are further exaggerated from piles of debris in terms of being more
defensive but easier to break: these are elementally-omniresistant and
have reasonably high AC, but are otherwise easy to break with any number
of regular attacks. Tactically, this allows both players and enemies to
hurl around fire, cold, and lightning (alongside the usual poison and
negative energy) through them without actually breaking them as cover from
other attacks, letting them stand out from other types of firewood even
on non-thematic levels.

As is implied with the surrounding commits, these are used most notably
in Gulches to actually have some reasonably non-gross sewer trash present
within them, matching up with the constructs present there. They are
otherwise rarely deployed within some early goblin vaults (as a nod to
coglins), the Vaults proper (ever-thirsting for flavour + contrasting
against fleschrafter piles + a branch with constructs and coglins both),
and wizlab_maxwell (which has no explicit gimmick and therefore can do
with a little more help).

Tiles-wise, these repurpose quite a few Forgecraft monster tile sources:
Bloax's now-unused goliath beetle, ontoclasm's lightning spire and edits
of Bloax's metal wall tiles, Chrisblue's CC0 bombs, Denzi's old spear trap
and old iron golem and old shields, Coolio's deep dwarf death knight, and
roctavian's spellspark servitor, old guardian golem, and current killer
bee tiles. They also use a piece of a CC0 commission by Screen Smith
Studios that is used for one of the Gulch construct monsters in this commit
batch.

--------------------------------------------------------------------------------
707f3ec179 | DracoOmega | 2026-04-28 02:23:11 -0230

New terrain feature: patches of mould
[Committer's notes: DracoOmega implemented these and wrote up their
description, but left the tiles and commit message up to me.

These experimental new features, implemented by DracoOmega after she
prepared the code for them in 7834c98, are another simple iteration on
blocking destructible "firewood" monsters as well as a means of trying out
more active features beyond the limitations of "step on a trap" or "suffer
for being on top of / next to this thing". (They also may show up in Pan
after significant layout revisions are done there.)

Mould patches automatically come with fungus on top of them, the same
firewood type seen in earlygame and Lair. Whenever their fungus is
destroyed, after 6 to 18 turns the first turn their tile isn't
occupied will have a new fungus monster spawn ontop. This is meant to
experiment with flora and firewood as something both destructible and
permanent both, while averting wandering monsters or fights always
removing them as happens after 0f5d254- it also characterizes fungi as
noticeably different from plants having all of their thematic variations
and match-ups with trees.

These features will only mostly show up in Gulch, as part of giving it
more than just more water in the portal. Patches of mould also show up
in a sparse number of Fedhas overflow altars as a means of tutorializing
their behaviour earlier than the portal, and which can continue to help
with Fedhas's vaults being a noticeable small bit of distinct thematic
variety in earlygame.

Mould patch tiles are heavily edited from CC0 overworld forest graphics
made by finalbossblues. There are two colour variations, with the default
ones being coloured after common fungus and toadstools versus all fungus
and mould in Gulch being coloured after burstshrooms, brain worms, and
radroaches. Fungi in Gulch also get two unique sets of fungus tiles to
help emphasize which fungi will respawn, both based off of a rejected
tree set by roctavian.]

--------------------------------------------------------------------------------
9143438c7e | regret-index | 2026-04-28 02:23:07 -0230

Gulch portal set-up
This new portal of a gutter Gulch is essentially meant to be a "hard mode"
Sewer placed much later than said portal's D:3-6 placement, with this
exclusively placed in Vaults:1-4. Its new feature, new firewood, new
monsters, and maps are seperated out in the following commits.

Thematically, these sewers serve as an experiment containment dumping
ground for the Vaults, as are otherwise fairly more coordinated than
other multi-theme branches in the game. Mechanically, this manifests in
debuff and mutagenic motifs: most notably, entering the portal instantly
inflicts three transient mutations. (This comes with making transient
mutations have messages for rMut resisting them, which feels like a
conspicuous absence with how rare rMut is these years.) Alongside this, 5/7
new monsters made nearly solely for this portal are mutated in differing
fashions, 4/7 are deliberate experiments, and 4/7 inflict debuffs. This
Gulch will also showcase new features and iterations on "firewood" monsters
(i.e. plants and other destructible terrain monsters) introduced in
following commits, and contain fairly less total amounts of water than the
previous Sewers, to help differentiate it more from the watery Lair branch
one has usually done before this.

This has a lot of different intended purposes:

 * A new lategame portal helps provide lategame variety, with the earlier
   D and Lair managing to present six threatening portals in sequence
   across the sixteen floors of D:1-11 + Lair:1-5 (Sewers, Ossuaries,
   Necropolis, Bailies, Ice Caves, Volcanoes, Gauntlets) compared to
   the thirteen floors post-Lair-branches (V:1-4, Elf, Crypt, Depths)
   having three (Necropolis, Desolation, Wizlabs). Both of the
   non-game-long ones also could do with a fair bit less pressure-
   Desolation's completely unique theme also means it can't vary much
   past its portal-specific monsters, and Wizlabs have been pushed to
   their gimmick and namesake limits. This new portal combines the
   virtues of both: having Desolation's overarching specific theme and
   unique reusable monsters helps achieve a consistent sense of going
   to a uniquely distinct place in the dungeon, but also the
   ever-so-recurring universal theme of "horrible wet semi-dungeon"
   itself allows branching out into many different one-off guest-borrowing
   maps.)

 * As a portal placed in a singular branch, it can help directly elaborate
   upon and emphasize the flavour of the branch it spawns in. While the
   Vaults has managed to put ugly things in cages and slime creatures
   under beastmaster ownership with the past few versions of changes, it's
   still a branch that holds a bit of chaotic shapeshifters and slimy
   organelles despite a much more organized structuring implied than e.g.
   the Dungeon and Depths; having a portal designated as where chaotic
   monsters are supposed to be kept (with some imperfect storage
   thereupon) can help finish out justifying the presence of such.

 * This is also an experimental ground to test a few other matters, even
   beyond the earlier "another unique portal monster set" and "portal
   that expands one branch's specific flavour" points up above. It is a
   second shot at trying out a "hard mode" portal with a much larger gap
   than Ice Caves and Glacial Chasms being so close to one another, which
   should help with lessening the pressure stretching out the same loose
   concept across more lengths of the game. The mould patches in an
   upcoming commit are some of the first non-tree non-trap non-spell
   features added in many versions, and periodically-active features as
   7834c98 enables are components of interest to try out in a variety of
   extended branches beyond the exact same iterations of the same three
   liquids + five wall types. With the bad mutation nerfs and less
   permanent bad mutations changes 0.34, we can experiment with them being
   a cost for trying out a portal at all. Finally, the upcoming monsters
   here will also experimentally reuse a number of effects established
   for other purposes, whether in monster-castable scorch or Diminish
   Spells or BEAM_ANTIMAGIC or burstshrooms or stampeding abilities.

(Hypothetically, in the far future, this could also become another branch
in roulette rotation, alternating with Crypt in the same way Desolation
was meant to alternate with Elf and how Spider was somewhat tested before
successfully becoming a real branch. There's a lot of insufficiencies in
current branches as stands, like with Orc / Snake / Tomb's monster variety
or the aimless lengths of Pan, as well as quite a few branches that didn't
work out, like Dwarf and Forest, that I'm not the most interested in
trying for something nearly as ambitious, but it could hypothetically
cover for the various efforts of this branch if other devs have interest
in pushing that far after e.g. Hell-Pan Roulette. If nothing else, it
could contain transient-mutation staircases to get the same
anti-stairdancing effects, as a subtitute for Crypt's Doom presence....)

--------------------------------------------------------------------------------
bb42b9d049 | regret-index | 2026-04-28 01:58:25 -0230

Gulch's new tile set
As with aaf212a, this commit is split from the following commits of portal
set-up and maps to make it easier to credit each tile, as well as to
distinguish these tiles from the upcoming new feature and new firewood in
this particular batch.

 * The gateway tiles edit LemurRobot and Ontoclasm's sewer exit, entrance,
   and collapsed passage tiles.

 * Floor tiles combine roctavian's adjustments of Denzi's V floor tiles
   with roctavian and ontoclasm's Slime floor tiles. Additional elements
   include Darby's Lair floor mushrooms, a CC0 splatter of paint by Shade,
   Sastreii's floor_studio papers, and various CC0 tiny jrpg item graphics
   by finalbossblues, ARoachIFoundOnMyPillow, and Jetrel.

 * Rock wall tiles combine Denzi's catacomb vault rock walls with
   roctavian and ontoclasm's slimy rock walls plus Sastreii's Sewer rock
   wall tiles.

 * Stone wall tiles combine Sastreii's stone walls for Swamp and Sewers
   with Bloax's adjustments to roctavian's V stone wall tiles.

 * Metal wall tiles combine Darby's V metal wall tiles with roctavian and
   due's edits to Denzi's Dis metal wall tiles.

--------------------------------------------------------------------------------
60e9dc3747 | hellmonk | 2026-04-27 21:12:53 -0500

Add a message for power leap (Lici)
It had no message at all.
Closes #4944

--------------------------------------------------------------------------------
b5bb446ab7 | hellmonk | 2026-04-27 19:48:50 -0500

Don't shoot pacified mons with salvo (PaperRat)
Needs a separate check because they aren't good_neutral.
Closes #5226

--------------------------------------------------------------------------------
98733c7c72 | hellmonk | 2026-04-27 19:19:42 -0500

Fix Klown Pie rF- duration (damerell)
Missing parentheses.
Closes #5065

--------------------------------------------------------------------------------
1e28e0a361 | hellmonk | 2026-04-27 19:15:30 -0500

Clarify wellspring talisman description (Odds)
Wellspring doesn't allow ranged stabs.
Closes #5222

--------------------------------------------------------------------------------
ed61b23554 | hellmonk | 2026-04-27 16:33:45 -0500

add hanchyan to credits

--------------------------------------------------------------------------------
0c0b54a423 | TecchyToni | 2026-04-27 16:21:10 -0500

Add 'Scuttle off' to insult.txt (#5190)
Scuttle is a great word and adds some good flavor. Good for vocab
building.
--------------------------------------------------------------------------------
f704a977e0 | damerell | 2026-04-27 15:54:53 -0500

Add rest_wait_ignore_mp option (#5091)
For Troggies who swap to and from antimagic weapons and don't care if MP
are full, etc.

(cherry picked from commit a44d6c2e30122ae8655c229552f346ea1b736606)
(cherry picked from commit 44df99e921829b4ea6125d69da57ee80e0a4b00b)

I mentioned this on IRC in, er, 2024 and the reaction was positive, so
here it is.
--------------------------------------------------------------------------------
c9987553d4 | damerell | 2026-04-27 15:51:24 -0500

Restore old raven quote (#5093)
Removed with ravens. More pleasing than the obvious Poe selection.
--------------------------------------------------------------------------------
9e12363811 | CrawlOdds | 2026-04-27 15:37:53 -0500

Fix buggy descriptor with easy_floor_use. (#5229)
When using identify, brand or enchant scrolls with easy_floor_use, the
descriptor for the item selection prompt was "buggy".
--------------------------------------------------------------------------------
ec57a9309b | CrawlOdds | 2026-04-27 15:31:53 -0500

Add a force more for forbidden items on god joining (#5152)
Fixes #5147
--------------------------------------------------------------------------------
91403ecfe3 | CrawlOdds | 2026-04-27 15:25:50 -0500

Don't spawn batty summons wandering (#5209)
Batty friends (like death scarabs) were spawning wandering if there were
no enemies in sight.
--------------------------------------------------------------------------------
33839baa0f | CrawlOdds | 2026-04-27 15:24:23 -0500

Correctly set targets on sculpted simulacra (#5215)
This prevents them wandering off.
--------------------------------------------------------------------------------
928dce7b12 | CrawlOdds | 2026-04-27 15:12:48 -0500

Fix alistair's warning/uselessness issues (#5223)
Fix Alistair's intoxication so that:
- It is marked useless if only allies are in sight
- It warns when you're going to confuse an ally
--------------------------------------------------------------------------------
06e8427328 | CrawlOdds | 2026-04-27 15:09:12 -0500

Tweak tyrannical servant probabilities (#5160)
Because of the way random picking works, demons from the Mark of the
tyrant were becoming less likely at very high invo, probably encouraging
the player to stop at 26 invo.

We fix this by having the non-sentinel tyrant demons use distributions
with later peaks, and then giving sentinels a little bump so they are
about as probable as before.

The updates to probabilities for any tyrannical demons are:

Skill | old prob | new prob
19 | 14% | 14%
20 | 17% | 16%
21 | 30% | 28%
22 | 42% | 40%
23 | 50% | 46%
24 | 55% | 52%
25 | 55% | 57%
26 | 56% | 63%
27 | 53% | 64%
--------------------------------------------------------------------------------
7c1fc4285a | CrawlOdds | 2026-04-27 15:07:56 -0500

Fix angry sphinxes timing out on recast (alenari) (#5214)
Mayhem'd sphinxes were poofing when recasting the spell due to their
custom spell cap logic. We move them into normal logic by giving them
separate caps per monster type, similar to XXX.
--------------------------------------------------------------------------------
dab29871b0 | Hellmonk | 2026-04-27 14:53:23 -0500

buff archery ego (#5095)
To make it more attractive, reduce enc to 1/3rd for ranged using it
instead of
half. This makes plate equivalent to acid scales for the purpose of
ranged.
Since there are already tradeoffs wrt strength requirement and evasion,
this
may help expand the archery ego's niche slightly.
--------------------------------------------------------------------------------
48a7874ca4 | Monkooky | 2026-04-27 14:50:13 -0500

Update mon creation docs (#5224)
Adds instructions for the monster creation docs for actually
implementing monster tiles.
--------------------------------------------------------------------------------
dc5f4587a6 | CrawlOdds | 2026-04-27 14:47:36 -0500

Fix crocodile targeter (#5227)
Crocodile's targeter was not marking the location aimed at as affected,
which since e713047 meant that it would not autotarget when cast or
quivered.
--------------------------------------------------------------------------------
2878072334 | Isaac Clancy | 2026-04-23 15:42:37 +1200

Fix RTILE not respecting tile variant weights
When RTILE was used to define vault rock wall tiles, it picked its tile
variations completely at random, ignoring the weight values defined for
them. If the level containing these tiles was reloading, the variations
would be rechoosen in a way that respected weights often resulting in
different tile variations being used.

--------------------------------------------------------------------------------
2ccebcafee | Isaac Clancy | 2026-04-23 13:45:05 +1200

Fix tile variation duplicate detection
It shouldn't be possible to for example specify that the randart version
of the BROAD_AXE tile is BROAD_AXE_MAGIC as well as specify that it is
BROAD_AXE_RANDART. However, our duplicate tile variation detection was
failing to detect this which resulted in the tile applied to randart
broad axes being dependent on the implementation std::sort.

--------------------------------------------------------------------------------
a3442ab723 | CrawlOdds | 2026-04-22 15:53:06 +1200

Fix hurling and don't apply infusion to throwing

--------------------------------------------------------------------------------
a3715956db | Isaac Clancy | 2026-04-22 15:22:23 +1200

Fix info leaks from feature tile overrides (CrawlOdds)
When creating temporary terrain, we either clear or replace any
existing tile override and then restore it when the temporary terrain
ends. This is helpful as for example if you use summon forest to create
a tree on a square that contained a wall with a tile override you
wouldn't want the tree to use the tile override for the wall.

However, we were drawing the feature that the player remembered being at
a square with the current tile override for the square. This could leak
whether the feature in the square had changed since the player had last
seen it, so we were using a number of hacks to try and prevent this.
One of these hacks was that we wouldn't use the tile override when
drawing types of terrain that are used by temporary terrain. This would
prevent a problem in cases such as when the player had seen a tree from
summon forest on a square that used to have a wall with a tile override
then moved out of view of it then waited for summon forest to end as
this would result in there being a remembered tree with the tile
override from the wall that currently exists in the square. However,
this doesn't work for all terrain types that can be created by temporary
terrain as we want to use tile overrides for some of these terrain
types. Also, the list of terrain types to not use tile overrides on was
not being updated when adding new types of temporary terrain. Another
hack that we were using is that we would always draw some terrain using
the tile override that the square would have if it didn't have temporary
terrain (which can be extracted from the temporary terrain marker if
needed). We did this for terrain types that aren't created by temporary
terrain but can have temporary terrain created on them. This would
prevent an information leak where creating temporary terrain out of view
(such as some of the trees from summon forest) would cause the
remembered terrain to be drawn with the tile override for the temporary
terrain revealing where the out of view temporary terrain had been
created. However, our list of terrain types to use for this was outdated
and also could never be perfect as many terrain types can both have
temporary terrain created on them and be temporary terrain. This hack
also seems to have been lost in a recent refactoring.

Instead of using these hacks, store the remembered tile override for
squares the player has seen and magic mapped and use this for drawing.
A side effect of this change is that dead trees in Crypt now use the
dead tree tile when magic mapped rather than the living tree tile as
they have a tile override that used to be unused (non-magic mapped dead
trees in Crypt were able to got there dead tree tile through their grid
colour).

Fixes #5168

--------------------------------------------------------------------------------
0a58930ff6 | regret-index | 2026-04-20 07:41:42 -0230

Fix Xom trying to hand out monster repel missiles (XicoYe)
The overflow altar brannock_xom_greatest_gift missed out on the shift
from monster repel missiles to monster deflect missiles in 91b9509.
(While I'm here, I have also updated the list to match the hyper-buff
list of 41e759f.)

--------------------------------------------------------------------------------
6208fce011 | Isaac Clancy | 2026-04-17 00:53:24 +1200

Fix unforgetting the map losing terrain knowledge
If you forget the map and then read a scroll of revelation, this can
result in magic mapped squares in the map knowledge that are more up to
date than the same squares in the forgotten map. However, when
unforgetting the map, we would replace the map knowledge for these
squares with that from the forgotten map.

--------------------------------------------------------------------------------
9593cc5487 | Isaac Clancy | 2026-04-17 00:13:04 +1200

Fix revelation giving less information with map forgotten
If you read revelation with the map forgotten you wouldn't learn the
colours of changed terrain that you had previously seen, but if you were
to unforget the map before reading revalation you would learn the new
colour of this terrain. Instead always learn the new colour of terrain
that you have previously seen.

--------------------------------------------------------------------------------
5a097ed5b7 | Isaac Clancy | 2026-04-16 23:28:21 +1200

Fix revelation updating seen squares not redrawing
If you read relevation and it updated an out of sight square you had
already seen, the square wouldn't be redrawn until you reloaded the
game.

--------------------------------------------------------------------------------
a7f40f37fe | CrawlOdds | 2026-04-16 17:05:10 +1200

Let tracers enchantment chain
This fixes petrify not targetting monsters who were petrifying
but could set off enchantment chains, following 8e16f14

--------------------------------------------------------------------------------
f03e214ed5 | Isaac Clancy | 2026-04-15 20:07:25 +1200

Add tile-env.h to visual studio project file

--------------------------------------------------------------------------------
f0a2de8890 | Isaac Clancy | 2026-04-15 16:28:34 +1200

Remove the needs_update parameter from dgn_replace_area
It is never used and its implementation is incorrect

--------------------------------------------------------------------------------
0df9381b46 | DracoOmega | 2026-04-13 23:39:43 -0230

Remove an unused targeter
(This was used by pre-0.32 yellow draconian breath)

--------------------------------------------------------------------------------
e3b7102c4d | DracoOmega | 2026-04-13 23:39:43 -0230

Maybe fix a CAO compilation issue?
(And incidentally give a few deep elf weapons a couple extra plusses).

This is maybe a long-shot, but I don't have a way to test it directly.

--------------------------------------------------------------------------------
e713047c70 | DracoOmega | 2026-04-13 23:39:43 -0230

Fix some issues with spell autotargeting
The prompts removed by 453fa3c turned out to still be important to how
spell autofight worked, and since their removal, it was possible for
autofight to waste time/MP doing things like shooting stone arrows at
grates or plants (without even a message, in the former case).

So I have rewritten a little about spell targeting to try and improve the
situation, using a vaguely similar appproach as 5ec89a4. A new AFF_BAD is
added for 'line of fire blocked by firewood'. When using autofight, the
targeter will not accept any path to a target that ends in AFF_BAD,
effectively causing it to pick a different target, if one is available.

The biggest net effect of this is that when closer targets are obstructed
by firewood or grates, it will pick some other target that isn't, instead.

I am not entirely satisfied with some parts of this code, and vaguely
concerned this will introduce some other bug, but it does seem to improve
the desired behavior.

(As a side-effect, manual targeting will now draw the cells beyond the
first target hit, when using a single-target projectile, more faintly than
the initial path. I feel this may have been the original intent of some of
that code, but it hadn't actually done this for a very long time.)

--------------------------------------------------------------------------------
8e16f14301 | CrawlOdds | 2026-04-13 00:34:11 -0230

Don't target petrifying/petrified monsters with petrify
[Committer's note: gave players the same treatment for petrifying since
they already included petrified. I am not sure this actually affects
anything relevant.]

--------------------------------------------------------------------------------
7385d75e63 | CrawlOdds | 2026-04-13 00:22:04 -0230

Make LRD not useless when casting round corners
This means that instead of LRD being marked as useless when there
is no smite-targettable enemy, it is never marked as useless because
of a lack of enemies. This is better behaviour now we know how to
target enemies we can't see, and also in line with Fire Storm not being
useless because it can hit enemies out of LoS.

--------------------------------------------------------------------------------
b0ab3d485a | CrawlOdds | 2026-04-13 00:22:04 -0230

Allow autoaiming explosions at targets we can't hit directly
When targets can be hit by an explosion, but not by a direct shot, we
were marking spells as useless and not autoaiming. This fixes this by
changing some visibility checks to use default visibility.

--------------------------------------------------------------------------------
f34de8fe48 | CrawlOdds | 2026-04-13 00:00:39 -0230

Fix free detection of invisible monsters with -move (Back-form)
When the player cannot move, direction keys currently do nothing
except if there is a monster, in which case they attack. This is fine
for visible monsters, but allows detection of invisible monsters by
attacking all surrounding squares. This seems undesirable, so we
don't allow this sort of attack against unknown monsters if the
player cannot move.

[Committer's note: Changed to use a direct monster check rather than a
monster_info check, since the former is more standard for this sort of
code.]

--------------------------------------------------------------------------------
ec5cf0b163 | CrawlOdds | 2026-04-12 23:45:19 -0230

Make plasma beam useless if it will do no damage
Plasma beam was marked as useful against entirely resistant enemies.
We fix this so that it is useless if there are no visible enemies it might
damage.

--------------------------------------------------------------------------------
ab1eb49602 | CrawlOdds | 2026-04-12 22:54:52 -0230

Do not stop channelling spells on any macro
Channelling spells was being interrupted by any macro, including ones
that only did a "wait" action or did no action at all (like pressing r)

--------------------------------------------------------------------------------
261e6ac810 | CrawlOdds | 2026-04-12 22:50:13 -0230

Stop Hep ancestors wandering off on Zot:5
They were spawning patrolling, which caused them to start wandering.

--------------------------------------------------------------------------------
7ecd7e923a | CrawlOdds | 2026-04-12 22:28:34 -0230

Explore boundary walls
This fixes a bug where sometimes autoexplore will not reveal some tiles
on the unnaturally hard boundary wall.

--------------------------------------------------------------------------------
cbca37cc1a | CrawlOdds | 2026-04-12 21:53:21 -0230

Do not power up Wyrmbane twice when killing dragons with convulsion
Since 2bee245, when we killed a dragon with convulsion wyrmbane
powered up twice - once in the on-hit melee effects call, and once in
the on-kill one.

The reason this worked _before_ that commit is that when wyrmbane
killed a monster via the hurt() method, the monster was cleaned up and
therefore did not register as a dragon in handle_phase_killed() call.
Now that we use inflict_damage, this has changed. So we make sure we
never power up wyrmbane in the on-hit melee effects, and leave it to
handle_phase_killed in all cases.

[Committer's note: removed an obsolete comment and added a new one, very
slightly rearranging code in the process.]

--------------------------------------------------------------------------------
09ccc81b47 | CrawlOdds | 2026-04-12 21:34:50 -0230

Don't trigger attunement on enemy staff attacks
Fixes #5193

--------------------------------------------------------------------------------
863a6f8961 | CrawlOdds | 2026-04-12 21:30:44 -0230

Don't use randart tiles for enchanted hammers
Fixes #5165

I couldn't reproduce this (though I have seen it on webtiles), but this
seems very likely to be the cause.

--------------------------------------------------------------------------------
eed6cab612 | DracoOmega | 2026-04-12 21:30:07 -0230

Fix a few abilities not interacting properly with the quiver
These would either not let you fire them with 'f', or require you to
confirm twice if you did so.

This closes #5196

--------------------------------------------------------------------------------
63ac50c651 | DracoOmega | 2026-04-12 21:29:01 -0230

Give Vessel of Slaughter a static targeter
Both to indicate the range of the damnation blast and as a extra
confirmation before using it.

--------------------------------------------------------------------------------
36cf4e329c | regret-index | 2026-04-11 19:06:57 -0230

Make Xom never get bored on the orb run
Even if the floors are almost certainly heavily explored, Xomscumming's
pretty hard when random demons and Pan lords spawn indefinitely.

--------------------------------------------------------------------------------
ad89b66b9c | regret-index | 2026-04-11 17:28:13 -0230

Fix some more Trove lua errors (Patrick2011b)
After 2489330, some Trove randbook spell school assignments clashed either
in terms of redundant school assignments (the dragon trove's opposing
elements) or in terms of our inconsistent pluralizing of Translocations /
Conjurations / Summonings. (It's plural in manuals and skill menus, but
not in descriptions or miscast string look-ups or randbook assignments.)
While it'd be nice to make the latter not a perpetual potential source of
bugs, in this particular case it can sidestepped entirely by using the
orb randart enhancer artprops strings instead.

--------------------------------------------------------------------------------
c7f2f74301 | regret-index | 2026-04-11 06:39:46 -0230

Tone down Xom's nearly-fully-explored floors interactions (various)
The antiscumming changes in 41e759f, in retrospect, may have been somewhat
overkill. Any two pieces of no good strategic effects on nearly-cleared
floors, making bad strategic effects worse on nearly-cleared floors, and
making boredom tick down much more rapidly on nearly-cleared floors would
be plenty to deal with the matters for now. The third of these, however,
unfortunately interacts badly with regular non-scumming play, which is
more than unideal- Xom's already inherently enough of a risky god that we
don't need people to focus on manual exploration.

This isn't a full reversion of any of the effects, but it does reduce the
speed of Xom's boredom ticking down on nearly-fully-explored floors from
x6 to x3, and it also allows slightly more of a floor to be known (if not
all of it) for the sake of offering up item gifts and good mutations
without trying to actively avoid nearly as much of each level. (This also
comes with some adjustments Xom bazaar rarity once more, which should
reduce the severity variance on the effect.) This will still need more
testing, but it should hopefully be less intense to test within.

(While it's been mentioned occasionally in developer discussions or in
the comments of the code, no commit message has actually stated directly
future Xom overhaul plans. These would eventually make Xom strategic
benefits mix together with 500+ turn bespoke buffs and only happen a
little whiles after entering new floors, allowing a lot more control
rather than relying entirely on random distribution resulting in either
permitting scumming or negatively influencing regular play. This would
also allow toning down much of Xom's boredom upscaling this version, since
scumming beyond floor-peeking (which would cost buffs instead) wouldn't
have almost any effect. Such efforts are, however, certainl delayed
to future versions due to the scope of other singular dev projects slated
for 0.35.)

--------------------------------------------------------------------------------
6df632f552 | regret-index | 2026-04-11 06:37:00 -0230

Tweak some monochromatic altar tiles (PureQuestion)
While it's reasonable in theme and concept for Okawaru's altar to be made
of iron, Elyvilon's altar to be made of white marble, and Kikubaaqudgha's
altar to stack up skulls, these early single-digit-versions altar tiles are
conspicuously plain compared to the majority of other altar tiles we've
gone through over time, and in particular at a too-quick glance it's
possible to confuse Ely and Oka's altar together. (There may have been
some policy for altars to each be immediately recognizable as an altar
back then, but we've more than drifted from that now.)

This quick fix for each of their altar tiles adds a bit more contrast and
colour to each of these, leaning off of iron / holy / undead mage colours
and corresponding invocation icon colour splashes, to make each of them
less greyscale as well as easier to distinguish at a quick glance. (Zin's
altar is still pretty monochromatic, though They've got the sparkle
animation anyway, which should cover for that plenty.)

--------------------------------------------------------------------------------
e5931b7edd | regret-index | 2026-04-09 00:30:21 -0230

Fix a Rutra trove Lua error (#5175)
As gammafunk points out, the Lua errors Rutra could produce are due to
a086fab refactoring the Trove magic item picking, resulting in a
case-sensitivity issues for that trove's Hexes magic item set-up. Alongside
setting said function call to get the correct lowercase argument, this also
adjusts the string comparison to make it be case-insensitive to avoid
tripping over this one way or another in the future.

This closes #5175.

--------------------------------------------------------------------------------
9a5c35dbd8 | Isaac Clancy | 2026-04-08 22:31:47 +1200

Refactor: move tile flags out of tileidx_t
Most functions that handle tiles using the type tileidx_t would crash
or have incorrect behaviour if the tile had flags applied to it. Also,
some areas of the code were using unsigned short to store tiles
presumably because it is smaller (16 bits versus 64 bits) although it
might just be because they predate the tileidx_t type being added.
Instead, stop storing tile flags in tileidx_t (reducing its size from
64 bits to 16 bits) and instead use the new type tile_with_flags_t in
the few areas that actually want to store tile flags, also change most
of the places that use types other than tileidx_t to store tiles to use
tileidx_t.

--------------------------------------------------------------------------------
bae5047b40 | CrawlOdds | 2026-04-08 22:26:41 +1200

Fix message for escaping the constriction of invisible monsters (Back-form)
Although it's obviously Erica.

--------------------------------------------------------------------------------
dabc3d4ed1 | Isaac Clancy | 2026-04-08 21:14:26 +1200

Give a better shoutitis message when damaged by contamination (kuniqsX)
It would give a message such as "You ribbit at INVALID YOU_FAULTLESS!",
instead give a message such as "You ribbit for attention!" similar to
what you would get from poison damage.

Fixes #5171

--------------------------------------------------------------------------------
030a0ecb6a | Isaac Clancy | 2026-04-08 17:04:26 +1200

Fix a crash when returning to a level with vengeance targets (kegye)
If you left a level with vengeance targets and then gained enough piety
to end vengeance and then returned to the level it was possible for
vengeance target monsters to die before the daction to clean up old
vengeance targets was run which resulting in a crash. This could happen
in at least the following two situations. First, if the vengeance
targets were Mara clones they would die from timing out when you entered
the level which happened before running dactions. Second, if the
vengeance targets were Pikel's lemures and you had killed Pikel off the
level while still under vengeance. This would cause the daction to kill
off Pikel's lemures to run before the daction to clean up vengeance
targets as dactions run in the order that they are added to the daction
queue.

To fix this, don't count a monster as a vengeance target unless its
vengeance target enchantment was added by the current vengeance (we
store which number vengeance the enchantment was added by in its degree
field already).

Fixes #5187

--------------------------------------------------------------------------------
7ca9a3eb5b | CrawlOdds | 2026-04-08 00:08:13 +1200

Fix a spurious "rune reappears" message (#5179)
When the abyss map recentred itself around the player, we were detecting
this as the rune moving, and messaging the player even though nothing
had actually changed.
--------------------------------------------------------------------------------
8c878a6c5f | CrawlOdds | 2026-04-07 10:22:59 +1200

Warn for riding crocodiles into traps (#4924)
The crocodiles were sometimes *too* surprising.
--------------------------------------------------------------------------------
f9e06672e4 | CrawlOdds | 2026-04-05 09:43:47 +1200

Fix a zero division error in describing monster hits
When our EV was between 0 and 1, we were dividing by 0.

This displayed hit chances like 0% and -MAX_INT%.

--------------------------------------------------------------------------------
859e8e3ba0 | DracoOmega | 2026-04-03 19:42:11 -0230

Fix Marionette being unusuable on solo enemies (autumn)
Accidentally broken by 049f810. The fact that enemies could target
themselves here was needed to allow casting buffs/summons when solo.

But in an attempt to prevent just smiting themselves to death, try to
prevent casting attack spells on oneself. (This isn't 100% correct, but
hopefully adequate enough.)

--------------------------------------------------------------------------------
7484870de7 | regret-index | 2026-04-03 00:13:29 -0230

Fix Storm Queen's Trove lua errors
96bc2dc accidentally introduced incorrect bracing into the trove's
unrand chance function, which should be fixed here.

--------------------------------------------------------------------------------
bd006bb7f2 | DracoOmega | 2026-04-02 18:25:25 -0230

Remove some dead code (Odds)
Unused since 453fa3c

--------------------------------------------------------------------------------
8808f4c986 | DracoOmega | 2026-04-02 17:43:53 -0230

Fix monsters sometimes hitting their own sleeping allies
An oversight in a4800fc (as part of a change to allow thorn hunters to
walk onto their briars instead of attack them) meant that if
_monster_swaps_places() returned false, the movement delta wasn't being
reset and _do_move_monster would later be called to try and move into that
same space - this time without the swap check, resulting in attacking them.

While monsters generally won't call _monster_swap_places if the swap should
*never* be possible, there are some situations where it is *randomly*
possible. The most obvious of these are sleeping monsters, where the swap
attempt succeeds in waking them only 50% of the time. This meant that if a
monster tried to swap into a sleeping ally, 50% of the time they would just
attack them instead. Whoops!

This fixes #5172

--------------------------------------------------------------------------------
8b5e8d6024 | DracoOmega | 2026-04-01 21:49:14 -0230

Nudge up Slime gem timer
84c2100 was intended to give 300 turns to the Slime gem timer in response
to 0.34's changes making it much slower to die. However, I misread this
table as 'Total turns' rather than 'Aut per floor of the branch' and only
increased it by half as much as intended. This adds the other half.

--------------------------------------------------------------------------------
d46b58a32e | DracoOmega | 2026-04-01 21:49:14 -0230

Remove quivered spells still going through ranged autofight briefly
When using CMD_AUTOFIRE with a spell quivered, much of the aiming logic
was handled inside directn.cc (which somewhat understands spell AoE and
which monsters can be affected by them), but it still went briefly through
autofight.lua. Since 5ec89a4 this created some problems where ranged
autofight would veto targets due to plants in the way, even if the spell
itself was unimpeded (eg: a fireball against a monster adjacent to a
plant).

Instead, bypass autofight.lua altogether, since it wasn't contributing
anything meaningful.

--------------------------------------------------------------------------------
453fa3ca08 | DracoOmega | 2026-04-01 21:49:14 -0230

Allow players to manually shoot through plants if they really want to
For many years, the player was given a warning if their line of fire to a
target was blocked by a plant (which they could answer Y to to fire
anyway). 34511f4 removed this prompt in favor of always preventing such
beams from firing, on the logic that you'd not want to do this anyway.

However, it turns out that there are a variety of situations which keep
coming up (often involving beam-based explosions like fireball or blast
wands, but also certain Nemelex cards and likely other situations) where
the most sensible player aim *is* past a plant. It is frustrating when the
UI refuses to let you take a shot that logically you should be able to
take and which is clearly useful.

5ec89a4 improved ranged autofight behavior to already avoid paths blocked
by plants, when any exist, which now means that any time the player is
presented with this 'blocked fire' veto, they were aiming manually. Since
the UI already shows the player's beam path and the player picked it
deliberately, I see no reason to even prompt for this scenario, rather than
fire. If they want to shoot a plant, so be it (and if this wasn't what they
wanted, they should have been paying better attention; we don't prevent
them from shooting at empty space, after all).

--------------------------------------------------------------------------------
c988b34627 | DracoOmega | 2026-04-01 21:49:14 -0230

Allow player ghosts/illusions to cast Splinterfrost Shell
They aren't terribly smart about using it effectively, but splinterfrost
barricades are planned to be used in a future spell designed *for*
monsters, so it seems suiting that this at least minimally functions.

--------------------------------------------------------------------------------
5d6407fbda | DracoOmega | 2026-04-01 21:49:14 -0230

Remove mons_stores_tracking_data()
There were only 3 monsters who used this function, one of which no longer
needs any of it (thorn hunters), and another whose code was player-centric
enough that we already store the data it needs elsewhere (merfolk avatars).

That leaves boulder beetles, who only need to store their planned moved for
the turn, and can simply do that.

(I considered making that a volatile member of monster, since it feels like
there are other cases it might be useful. But in absence of anything else
already using it there, I'm leaving it be for now.)

--------------------------------------------------------------------------------
a4800fc1f1 | DracoOmega | 2026-04-01 21:49:14 -0230

Rework Thorn Hunters
Thorn hunters' unique ability to raise walls of briars (and to 'smartly'
place them either behind the player if they are retreating or in front of
the player if they are advancing) was very showy, but also rather janky in
multiple ways. Some weirdnesses included:
 -Being able to make briars far out of LoS (even on the other side of
  physical walls)
 -Multiplying their cast rate of Volley of Thorns by *over 3 times* if
  there was a briar patch immediately in front of them
 -The briar placement being player-centric even if the thorn hunter wasn't
  targeting the player (or even was allied with them)
 -A bunch of other implementation jank (to the point of deliberately
  refunding energy for the spell, after the fact, if it didn't succeed in
  placing things)

On top of that, in many cases it didn't even create a relevant obstacle to
the player. In fact, considering that it would never make a 'defensive'
wall at all, if the player didn't move towards the thorn hunter (and that
making said wall would more than triple their ranged attack rate), it was
plausible safer to wait in place until they reached you than take any steps
towards them (rather counterintuitively).

This is an attempt to accomplish a similar spirit of effect in a way that
can be more clearly described and reasoned about.

Their Wall of Brambles spell is replaced by Cage of Brambles, which makes
a hollow 5x5 ring of brambles around all visible enemies in LoS. In
addition, they have the passive ability to instantly raise a defensive
barricade of brambles around themselves whenever they take damage or if
there are hostiles within 3 tiles of them. Both abilities are on their own
internal cooldown (to prevent chopped brambles from immediately regrowing).

Also, they can now freely walk 'through' their own briars (by instantly
destroying them) if they're not in range to shoot their target. (And lose
their hidden immunity to player briars.)

Their base cast rate of Volley of Thorns is mildly increased (though note
that this will result in a much lower cast rate than their previous
behavior in many situations.)

I have also doubled the HP of the briar patches, which really were *quite*
low considering the reprisal damage they do to players at that point in the
game is often irrelevant due to AC. In theory, I might like to increase the
damage somewhat, but that has significant effects on Fedhas (and would
require giving them invo-based damage scaling of some sort) which I am
deferring to a future time where this can be considered more holistically.

This should be a considerably less janky implementation that hopefully
presents unique problems a little more often (and as a minor bonus, the
spell is now usable with Aphotic Marionette). Let's see how it plays.

--------------------------------------------------------------------------------
6c759739de | DracoOmega | 2026-04-01 21:49:14 -0230

Buff ynoxinuls
These were the most harmless 3 by an embarassing margin, summoning D:4
enemies that blocked its only source of damage. However, the ufetubi are a
much more iconic part of the demon than iron shot is (and we have multiple
smite-damage 3s already), so let's see if we can make the summon part more
relevant.

Summon Ufetubus (now renamed Ufetubi Swarm) now summons *berserk* ufetubi,
and slightly more of them at once (with a higher cast rate). The
combination of their increased speed and AF_FLANK makes them better at
rapidly encircling the player (in a support role) and the damage bonus may
allow them to be sufficiently relevant to early characters encountering
them.

--------------------------------------------------------------------------------
4d44805b1d | DracoOmega | 2026-04-01 21:36:58 -0230

Allow berserk monsters to use AF_FLANK / AF_SWOOP
I didn't even realize they couldn't until today, and it doesn't seem
especially intuitive that they can't (these are listed as attack flavor,
after all!)

--------------------------------------------------------------------------------
553cbe6463 | DracoOmega | 2026-04-01 16:09:07 -0230

Don't cast Diminish Spells on targets whose spells are already diminished
[Committer's notes: This commit is fixing how BEAM_DIMINISH_SPELLS
otherwise already has a proper antimagic check in it that was otherwise
being doubled-up to ignore the usual monster hex rules of not casting a
debuff spell on actors already bearing that debuff. This commit was part of
work being done on a future portal which contains another monster casting
Diminish Spells, and has been cherry-picked to master to both keep that
total commit batch cleaner alongside it hopefully further bumping up
currently somewhat low bes kemwar threat levels.]

--------------------------------------------------------------------------------
2712db9d73 | DracoOmega | 2026-04-01 16:06:24 -0230

Don't break player daze on the same turn it is applied
It already worked this way for monsters, but it was possible for the player
to become dazed and then have the daze broken by damage on the same turn,
resulting in the status effect doing literally nothing.

This should still be gentler than minipara since the player receives no
defense penalty during it.

[Committer's notes: This commit was part of work being done on a future
portal which contains a second dazing monster. It has been cherry-picked
to master to both keep that total commit batch cleaner alongside it
technically affecting zykzyl threat levels.]

--------------------------------------------------------------------------------
cee09e4548 | CrawlOdds | 2026-03-31 21:21:37 +1300

Fix a Ru flesh redirection crash
Bolt of flesh was crashing when it didn't affect any actors,
which happened at least when Ru redirected the bolt to a
monster the caster can't actually hit.

--------------------------------------------------------------------------------
5b54ce7fc3 | CrawlOdds | 2026-03-29 13:15:45 +1300

Don't lost-soul-revive slowly dying monsters
In practice, this only affects unearthed wretches, who could previously
be revived by lost souls. This is both quite surprising as wretches
aren't really functional monsters, and the source of a rare crash from
nested deaths, where the wretches death caused their enchantments to
time out, causing them to die again within their death sequence.

--------------------------------------------------------------------------------
b7756f7762 | CrawlOdds | 2026-03-29 12:50:52 +1300

Add friendly fire warning for Noxious Bog (#5154)

--------------------------------------------------------------------------------
e2d4efc4d2 | CrawlOdds | 2026-03-29 12:41:45 +1300

Allow autofight to fire through bushes (tekkud)

--------------------------------------------------------------------------------
728cb2be76 | regret-index | 2026-03-28 20:11:33 -0230

Clear out more accidentally-left-in debugging messages (cool 3)

--------------------------------------------------------------------------------
f21af2945e | regret-index | 2026-03-28 12:06:52 -0230

Cut out some Trove debugging text (Undo)

--------------------------------------------------------------------------------
f12886d13b | regret-index | 2026-03-22 13:02:54 -0230

Adjust default portal messages timing and prompts
Traditionally, on entering a level or reloading a save, all portal entries
have their force_more set on the flavour noise one can hear from them,
rather than the following line of the actual elucidation of which portal
that flavour line corresponds to. (The only exception to this is bazaars,
for some reason.) While it's nice to foreground the flavour line for each
portal as the first thing one reads, this has recurringly made it awkward
when there's anything ambushing the player on entering the floor, with the
exact naming and timer-explanation of a portal getting lost if there's a
sufficient number of lines afterwards, to the point of people searching up
the force_more flavour line rather than reading or finding the in-game
text itself on literally the very next line.

As such, this commit tweaks the force_more to appear with the "There is
an entrance to [wherever] on this level" line, rather than the individual
portal flavour announcement line. That line is still what reading
top-to-bottom will still see anyway in a short highlighted-yellow line, so
it should still function for flavour purposes being read before the more
gameplay-oriented matter. To help with noticing it in the message log,
this also comes with highlighting the entrance line in white.

--------------------------------------------------------------------------------
96bc2dc16e | regret-index | 2026-03-22 12:16:52 -0230

Mini quick newer vaults(?) review
Worthy of note:

 * When troves were reworked to be theme-first in 3911a2f, the armour
   placements in each trove stopped using much of acquire armour, which
   innately had a very high chance for nagas and footaurs to get bardings
   (50% if they hadn't seen one yet, 25% after seeing each one). To
   correct this, troves matching various barding egos (fire and cold
   resistance in the Fire and Ice Troves, flying in the Air Trove, earth
   enchancement in the Earth Trove, stealth in the Hexes Trove) now have
   a ~25% chance per armour placement to place ego / randart bardings if
   one is a naga or gale centaur (though not for Sphinx Form characters,
   due to it being awkward to guess how long those characters want to even
   stay in such anyway). Alongside the Abyss-themed trove already using
   "acquire armour" itemspecs, this gives a ~23% chance for a naga or gale
   centaur to get at least one barding from a Trove (compared to the
   previous Trove chance of ~28% if one hasn't seen any bardings before
   and a ~21% chance otherwise).

   * (Bardings being an uncommon notable midgame power-spike as tangibly
      different texture from other slot drops is a feature for the
      barding-wearing species and not a bug, but Troves are in midgame
      and come with a lot of other upsides and cost downsides as is.)

 * The Xom bazaar also now has a 10% chance to contain a barding randart
   with a guaranteed downside of rF-, rC-, or Will-, because desperate
   players caring about an offering of  mixed upsides and downsides is a
   decent joke in-and-of-itself. (It probably doesn't mean a lot in the
   long course of a run, since Xom's random acquirements can roll bardings
   reasonably decently anyway, but anything more for people to pick and
   choose in the Xom bazaar is good texture.)

 * cheibrodos_lair_end_hotspot no longer has a slim chance for a
   mountainshell anymore, as the runed door made getting close too easy,
   and a more appropriate Lair end vault using the monster is slated for
   later in this version after another new Lair monster is added.

 * gammafunk_necropolis_ghost_cemetery no longer can place four or five
   ghosts pre-Lair, and has better rewards for the difficulty of a
   guaranteed two player ghosts at minimum.

--------------------------------------------------------------------------------
70a134b79c | regret-index | 2026-03-22 11:13:34 -0230

Various tile replacements and edits, coldish undeadish edition
 * I've made new splinterfrost barricades tiles, compositing their
   previous use of DracoOmega's edits of ontoclasm's edits of Bloax's
   metal wall tiles with a CC0 icon by 7Soul1. This makes them look
   less like modified normal walls and much closer to the spell icon's
   emphasis of icy spiked sandwiched between metal, which even beyond
   the visual distinction helps emphasize they're not true walls for
   many other mechanical purposes.

 * After working on a future derived undead type for miscast reworks and
   Hell-Pan Roulette variety additions using spectral monster tiles, I
   have converted them back into the original type to help with quite a
   few missing spectral tiles, alongside a new texturing style so they
   come off as more of "ghostly shimmers" than the current "flat one-not
   monochromatic silhouette". (This also comes with a fair bit of bespoke
   choices even beyond the current other derived undead tiles, in part
   due the number of monster types that can't be normally zombified or
   skeletalized, and doesn't affect any of the orcs from Vanquished
   Vanguard due to orc tier being lost in this conversion otherwise.)

   Each of the current-extant ones uses the original spectral monster tile
   set ontoclasm made, while the additional ones mix them with other parts:
   * Scorpion spectres: Ontoclasm's ant spectre and lizard spectres.
   * Turtle spectres: Jpeg's ancient snapping turtle.
   * Constricting snake spectres: Roctavian's edit of ontoclasm's anaconda.
   * Bird spectres: Roctavian's original caustic shrike + zombie harpy
                    edit of ontoclasm's harpy tile.
   * Elephant spectres: Poor_Yurik's original elephant tile.
   * Winged quadruped spectres: Ontoclasm's quadruped and dragon spectres.
   * Iron dragon spectres: Ontoclasm's spectral dragon tile.
   * Quicksilver dragon spectres: Ontoclasm's black mamba + spectral
                                  dragon tiles.
   * Goblin spectres: Poor_Yurik's old goblin tile + ontoclasm's
                      generic small spectral tile.
   * Spriggan spectres: Poor_Yurik's old spriggan tiles.
   * Elf spectres: Sastreii's elf zombie tile + Denzi's old deep elf
                   annihilator tile.
   * Tengu spectres: roctavian's edits of totaku's original tengu tile
                     + ontoclasm's current generic small spectral tile.
   * Draconian spectres: Mitsuhiro Itakura's old draconian tiles.
   * Two-headed spectres: Ontoclasm's generic large and small spectres.
   * Elemental giant spectres: ontoclasm's generic large spectre +
                               roctavian's salamander flamebrand +
                               Co's old fire giant.
   * Juggernaut spectres: Ontoclasm's juggernaut and generic
                          large spectre tiles.
   * Winged humanoid spectres: Roctavian's original caustic shrike +
                               ontoclasm's bee and generic small spectres.
   * Holy winged humanoid spectres: ontoclasm's bat and generic
                                    small spectre tiles.
   * Minor demon spectres: Curio's ancient iron imp and ontoclasm's
                           generic small spectral tile.
   * Common demon spectres: roctavian's blue devil + Denzi's old smoke
                            demon and hairy devil + Ontoclasm's hydra
                            and generic small spectres.
   * Greater demon spectres: roctavian's unused balrug tile + ontoclasm's
                             generic large and small spectres.
   * Orb spectres: Sastreii's orb zombie and simulacrum.
   * Unseen horror / orb guardian spectres: Sastreii's X-shaped simulacrum.

 * A stray pixel on roctavian's current bog body tile has been fixed.

--------------------------------------------------------------------------------
8e43a04dd5 | DracoOmega | 2026-03-22 10:58:43 -0230

Don't revert lava beneath an active hellfire mortar (WizardIke)
This is entirely cosmetic now (and only possible to encounter with very
specific positioning), but it looks slightly odd, so seems reasonable to
avoid.

--------------------------------------------------------------------------------
86716cf63e | DracoOmega | 2026-03-22 10:58:43 -0230

Don't trigger traps beneath non-moving monsters (WizardIke)
It turns out that 01c487f didn't entirely remove the behavior of dispersal
traps being instantly triggered when they reactivate beneath a monster.
This was because terrain changes call trigger_movement_effects() to handle
things like falling into water, and monsters (unlike players) could
trigger traps even without moving.

There are possibly a few other circumstances where it was previously
possible for a monster to retrigger a trap without moving, but I don't
really see a reason why they should act differently than the player in this
regard.

--------------------------------------------------------------------------------
e881abda10 | DracoOmega | 2026-03-22 10:58:43 -0230

Move friendly(), neutral(), good_neutral() out of monster and into actor
This allows actors to be used with the SAME_ATTITUDE() macro, reducing
boilerplate in a few places. (And these methods already operated solely
on actor methods in the first place, and so don't even need to be
rewritten.)

--------------------------------------------------------------------------------
1288480e04 | Isaac Clancy | 2026-03-21 15:08:03 +1300

Add Jewel to the credits

--------------------------------------------------------------------------------
09475f4b62 | Jewel | 2026-03-21 14:34:57 +1300

Bind right click to Describe when in Display Map to match Look Around
I kept getting thrown off when trying to right click examine things in
Display Map mode ('X') because it currently does nothing, requiring a
'v' press instead, so I matched the typical behavior of right click in
standard gameplay. Right clicks in map mode/`MOUSE_MODE_NORMAL` were
just being thrown away, so it's just using a button that was previously
unused.

I also moved describing into a seperate function with a position
argument instead of calling `process_command(CMD_MAP_DESCRIBE)` because
`CMD_MAP_DESCRIBE` requires you move the cursor first, which jarringly
moves the view as well, unlike the typical right click examine.

I agree with the comments about "this really seems like it shouldn't be
here" for the click handling code, but it's above my expertise so I
didn't do any further refactors; hopefully my change is small enough
that it's not growing the existing slightly-messy code too badly.
--------------------------------------------------------------------------------
bea90c2428 | Isaac Clancy | 2026-03-20 16:06:25 +1300

Handle force more after magic mapping better in console
If some terrain was magic mapped and then a force more happened before
the next call to viewwindow we wouldn't show the terrain as magic mapped
during the force more.

--------------------------------------------------------------------------------
a16049aed5 | CrawlOdds | 2026-03-20 16:00:38 +1300

Update map correctly when Ashenzari reveals portals
19414c7 changed how we handle revelation, drawing mapped cells
immediately when revealed. However, it neglected to do this for
other methods of mapping, such as when Ashenzari reveals a portal.

We fix this so that whenever we set the magic mapping flag, we also
draw the mapped tile.

--------------------------------------------------------------------------------
1c2cba714e | CrawlOdds | 2026-03-20 14:53:54 +1300

Add messages for firing without anything quivered
Fixes some code which intended to give a message when autofiring
without a quivered action, and adds the same message for CMD_FIRE.

Also tidy up quiver_description code to commonise a validity check,
and improve the consistency of how l-you.cc quiver functions work.

--------------------------------------------------------------------------------
b70f587aa0 | CrawlOdds | 2026-03-20 13:49:39 +1300

Fix Ru drink and words thresholds slightly
This makes them both obey their wording "below 50% of its maximum".

Previously, words allowed scrolls at exactly 50% HP, while drink banned
potions just below 50% if you had odd max HP.

--------------------------------------------------------------------------------
ac6db69765 | CrawlOdds | 2026-03-20 13:42:54 +1300

Check skill training targets when cursing items
This isn't terribly important - without this we still check the target
next time we gain experience, and disable the skill then - but is a
bit clearer and is consistent with other strange skill gainings, like
draconian apts changes.

--------------------------------------------------------------------------------
c11a00f97c | Medrano83 | 2026-03-19 20:24:15 +0100

Show doom & contamination stats in the small layout

--------------------------------------------------------------------------------
71d503d723 | Medrano83 | 2026-03-19 20:24:03 +0100

Paged inventory: Include Tab in the in-game help
Some Android users are confused with the new inventory interface. Arrow
keys are not available with the default virtual keyboard settings and
the in-game help does not mention the Tab key.

--------------------------------------------------------------------------------
0b9efb79fd | DracoOmega | 2026-03-19 08:29:23 -0230

Fix inverted logic in is_temp_terrain (Dogchiho)

--------------------------------------------------------------------------------
b8240fa442 | DracoOmega | 2026-03-18 17:39:05 -0230

Don't generate smoke from temporary lava
Normally temporary lava (such as is generated by hellfire mortar) does not
produce smoke, but could be made to do so by saving and reloading the game
while this lava was active. (This is due to how the list of coordinates
used for smoke generation is populated upon level load. In fact, this will
cause any lava generated in *future* on those tiles to produce smoke, for
as long as the level remains in memory.)

This could be tactically useful in multiple scenarios (for instance, saving
and loading after being hit by Eruption could make it easier to flee from
a salamander tyrant.)

Now smoke should only generate from natural lava, even if the level is
reloaded.

--------------------------------------------------------------------------------
24e79f509b | DracoOmega | 2026-03-18 17:39:05 -0230

Simplify hellfire mortar lava handling
Rather than using map markers to do reference counting on temporary lava
from hellfire mortars, and temporarily setting their timers to an infinite
duration, simply don't time out hellfire mortar terrain changes while the
matching mortar is alive. This should be functionally very similar, but
more concise and hopefully clearer.

(Also, I have given the mortar more duration upon being summoned, which
should improve the niche scenario where the player taking very slow actions
could cause the mortar to expire before firing its final shots. I don't
think there is any way this can cause it to exist for longer, in practice.)

--------------------------------------------------------------------------------
69e5a13e4c | DracoOmega | 2026-03-18 17:39:05 -0230

Make map_markers more resiliant against dangling pointers
It was always possible in principle for Crawl code to delete a map_marker
while some other code was currently working on that same marker (as they
can be deleted from many places). For example, the previous version of
Malign Gateway markers could cause a marker deletion via a screen redraw,
which itself could be triggered in countless subtle ways.

In an attempt to mitigate these issues, map_markers::remove() no longer
immediately deletes a marker, but rather unlinks it from the map and flags
it for later deletion at the end of the next call of run_all() (which
happens once every turn). This should immediately stop other queries from
seeing this map marker, but not invalidate any transient references to it
that some other code might currently be holding. Since run_all() is called
in very narrow circumstances, this should hopefully be sufficient to
safeguard undefined behavior.

--------------------------------------------------------------------------------
c1b01ce95a | DracoOmega | 2026-03-18 17:39:05 -0230

Slightly abbreviate some terrain change code
Now that get_makers_at() can ask for a specific sub-type.

--------------------------------------------------------------------------------
a3ca6f5582 | DracoOmega | 2026-03-18 17:39:05 -0230

Refactor handling of spike launchers, allow monsters to cast
Currently only on ghosts/illusions (the player spell's limitations are
slightly awkward for monsters to use, though the infrastructure can be used
for similar effects in future).

--------------------------------------------------------------------------------
7834c98928 | DracoOmega | 2026-03-18 17:39:04 -0230

Add a map marker type for handling 'active' features
This is intended to be moderately general-purpose code to handle features
that should do something periodically of their own accord and need to
maintain some state.

It will be used in a subsequent commit to refactor spike launchers and
allow monsters to use them, but there are multiple future designs I have in
mind which could benefit from this. (I hope I have made their data members
sufficient to the task....)

--------------------------------------------------------------------------------
19424beab8 | DracoOmega | 2026-03-18 17:38:31 -0230

Refactor malign gateway handling and tweak
The limitation of only one malign gateway existing per floor at once seems
to have possibly been because its implementation predated unique monster
IDs (!) and there was no way to unambiguously tell different casters apart
from each other, such that each would be properly limited to 1.

There is no reason this has to remain the case. And so I have rewritten a
bunch of its code to be a bit more modern. This has the following effects:

1) An arbitrary number of gateways may be opened at once (though still one
   per caster)
2) A gateway can now appear on 'floor-like' tiles besides plain floor and
   shallow water (such as lava or fountains) and will properly restore the
   original feature afterward.
3) A gateway will still produce some fog upon activating, even if the
   startup is short or the player is very slow.
4) The portal closing is now handled inside the map marker itself, rather
   than as ENCH_PORTAL_TIMER on the tentacle.

At the same time, I have made the startup of the portal slightly slower.
(Due to call order, the tentacle would frequently appear with zero delay
whatsoever, which felt needlessly similar to conventional summons. The
spell should remain very powerful even when slightly slower to start.)

Save compat code to properly upgrade old malign gateways seemed like it
would be quite messy for something which might affect literally zero
players ever, so I merely ignore old style markers. If this leaves someone
with a permanent (eventually hostile!) tentacle, so be it.

--------------------------------------------------------------------------------
8b4cf4e15e | DracoOmega | 2026-03-18 17:35:39 -0230

Refactor temporary terrain changes a little
It is now easier to end all terrain changes of a given type (and by a given
actor) with less boilerplate.

I also fixed how the mid of the source actor was confusingly named monnum
(even when it was the player) and was being marshalled as a short instead
of an int. In practice, I think it was hard for this to cause a real bug;
overflows were very plausible in real games, but having two actors that
incorrectly looked the same alive at the same time seems virtually
impossible. Still, it's good to use the actual proper data size.

--------------------------------------------------------------------------------
3ea8ac0818 | DracoOmega | 2026-03-18 10:41:57 -0230

Refactor the handling of several time-based effects that use map_markers
Several timed-based effects were handled by map markers (eg: Imprison,
Malign Gateway opening, Corruption monster spawning) and each of these had
their own bespoke function to iterate all map markers and apply per-tick
effects for any of a given type that they found.

This restructures handling of most such effects by introducing the
map_marker::run() method. When a marker is added to env.markers, if its
is_dynamic() method returns true, it is automatically added to a list that
will cause its run() method to be called every turn. This allows for future
time-based marker effects to be added without new boilerplate every time
(and very slightly reduces overhead in scanning for types of markers that
may or may not exist).

Temporary terrain transformations (otherwise the most common marker with
time-based effects) do *not* currently use this system, as code for
properly updating the player's LoS when they wear off requires all changes
to be done as a single batch (or walls reappearing near the player can
prevent knowledge of more distant changes that reverted at the same time).

--------------------------------------------------------------------------------
91f3a8b3ec | DracoOmega | 2026-03-18 10:41:57 -0230

Remove the need for markers.clear_need_active()
Only map_lua_marker ever does anything with activate(), yet most places
that used other markers needed to manually notify the marker manager every
time they added a marker that it didn't need to activation (and in some
cases, not doing so could cause an assert).

Instead, only set have_inactive_markers when adding a lua marker.

--------------------------------------------------------------------------------
27400124a8 | DracoOmega | 2026-03-18 10:41:57 -0230

Remove code for reading/writing obsolete map markers
map_phoenix_marker and map_door_seal_marker have been obsolete and unused
since 2014, but their marshalling code (and much other boilerplate) was
left around so that saves containing these markers could still be loaded.

However, we were already marshalling the size of each map marker (even at
that point in time), so it is possible to simply 'skip over' them without
needing to keep so much dead code around.

--------------------------------------------------------------------------------
8d147f2b99 | DracoOmega | 2026-03-18 10:41:55 -0230

Refactor to remove trap_def and trap_type
Internal handling of traps had a great deal of essentially vestigal code,
left over from when traps could be hidden, have finite ammunition, and
even share the same dungeon feature between multiple different types of
traps. Traps have had not had the need to track that kind of internal state
for a long time and needing to create a pair of feature and trap_def in
order for a trap to function needlessly complicated dealing with them.

Since every trap already had a dungeon_feature_type that unambiguously
mapped to a given trap_type, now having the proper feature is enough for
them to function. The last remaining use of trap 'ammo' was bespoke
handling for Passage of Golubria's remaining duration, but this can be
trivially handled by making it a temporary terrain transformation (PoG was
originally implemented before temporary terrain changes existed, and its
code was never changed).

Since traps are now placed like any other feature, the wizmode
trap-creation command is removed and vaults updated to use their feature
names instead of being slightly different than other features in that way.
The lua view.trap_at() function is also removed (as it is now entirely
redundant with view.feature_at() and all cases of ambiguous feature names
have been removed.)

This does mean that the strings used by c_trap_is_safe are now different
(eg: 'tyrant's trap' -> 'trap_tyrant'), but there should be very little
functional change outside of this. (I updated Sack of Spiders to be able
to web thing standing on top of pre-existing traps, though this was
already possible since 4169d62)

--------------------------------------------------------------------------------
01c487f38f | DracoOmega | 2026-03-18 10:41:20 -0230

Don't immediately trigger traps that are created under entities
This was originally done so that inert dispersal traps would trigger as
soon as they recharged, if an entity was already standing on them.

I've been a little on the fence about this behavior. It makes some sense,
but also can result in allies walking on top of the traps (which they would
otherwise avoid if they were active) and then triggering them when they
reactivate. And since it would also have a mildly unfortunate interaction
with wizmode trap creation after the following commit, I am opting to
remove this behavior.

If this (rarely) encourages the player to stand on top of an inert
dispersal trap so that nothing can trigger it again, that is probably fine.

--------------------------------------------------------------------------------
e559f37d71 | DracoOmega | 2026-03-18 10:41:20 -0230

Change ^ from 'any random trap' to 'random depth-appropriate trap'
Almost no vaults use the default ^ behavior, since it is bad (placing D:1
Zot and alarm traps, branch-specific traps in any branch, etc.). But we
already have a function for 'depth-appropriate trap' (which otherwise is
inaccessible via vault definitions at all, as far as I can tell) and this
seems like far more sensible default behavior than 'any random trap in the
game, equally-weighted'.

Just imagine if 0s placed 'any random monster in the game'...

(Also, this will slightly simplify some future refactoring.)

--------------------------------------------------------------------------------
4efc60787e | Isaac Clancy | 2026-03-17 14:58:42 +1300

Fix the lava from hellfire mortar not ending after changing levels
When changing levels unstable monsters such as hellfire mortars are
removed. This was done by calling reset on the monster, however, this
doesn't perform important cleanup such as removing the monster from the
mid cache or timing out lava from hellfire mortars. Instead call
monster_die with the KILL_RESET flag set to clean up the monster. Also
try to clean up permanent lava from old saves.

--------------------------------------------------------------------------------
cc4037a1bc | Isaac Clancy | 2026-03-17 12:25:28 +1300

Fix crash on loading game with hellfire mortar active
The array that is used to read in a marker on loading a game was missing
the initialization for the entry for hellfire mortar's lava markers
causing a segfault when trying to call it.

--------------------------------------------------------------------------------
9c9dd92b49 | hellmonk | 2026-03-16 15:05:34 -0500

fix a typo

--------------------------------------------------------------------------------
0c61520c21 | Isaac Clancy | 2026-03-16 16:59:04 +1300

Fix "Orcfreeti" showing magic bar in webtiles (code2828)
Webtiles was hiding the magic bar if your species name was "Djinni".
However, djinn of Beogh have there species name changed to "Orcfreeti"
which was causing them to show a magic bar. Fix this by checking the
species rather than its name.

Fixes #5077

--------------------------------------------------------------------------------
62e2c54b8a | Isaac Clancy | 2026-03-16 14:12:13 +1300

Fix final effects being delayed for contam explosions (CrawlOdds)
If a contamination explosion scheduled a final effect (such as a final
effect to raise a spectre from a monster it kill when the player had
death channel active) the final effect wouldn't activate until after the
player's next turn.

Fixes #5133

--------------------------------------------------------------------------------
a177401964 | RypoFalem | 2026-03-16 00:38:08 +1300

fix: Make Naga/Salamander undead slither when animated (tekkud)

--------------------------------------------------------------------------------
7a631c2be5 | Isaac Clancy | 2026-03-16 00:08:33 +1300

Fix a shadowed variable warning

--------------------------------------------------------------------------------
48688fd16a | Isaac Clancy | 2026-03-16 00:05:44 +1300

Remove some unused variables from _regenerate_hp_and_mp

--------------------------------------------------------------------------------
46f821c6d3 | Isaac Clancy | 2026-03-16 00:04:28 +1300

Fix some shadowed variable warnings

--------------------------------------------------------------------------------
598cd32722 | Isaac Clancy | 2026-03-16 00:00:41 +1300

Fix unused parameter warning

--------------------------------------------------------------------------------
1d79e3094c | Isaac Clancy | 2026-03-15 23:49:25 +1300

Fix warning about using & instead of &&

--------------------------------------------------------------------------------
9261420e9b | Isaac Clancy | 2026-03-15 23:11:08 +1300

Fix lava from hellfire mortar not lasting long enough (CrawlOdds)
In a turn, the duration remaining for temporary terrain is decreased by
how long the player's action took and then the monsters act. This means
that the temporary lava from hellfire mortar needs to last longer than
it takes the mortar to reach the end of the lava or the lava will
disappear just before the mortar acts. The lava disappearing under the
mortar will result in any traps under the lava reappearing and being
triggered by the mortar. To fix this, only start the lava's duration
ticking down after the mortar goes away.

Fixes #5128

--------------------------------------------------------------------------------
537aefdc69 | DracoOmega | 2026-03-15 04:00:42 -0230

Fix rare crashes involving Nobody/apostles being killed by polar vortex
If these monsters were killed by the damage from polar vortex while also
being held aloft on top of lethal terrain, timeout_enchantments() would
remove their flight and cause them to die in the *middle* of being revived,
resulting in a crash.

This (mildly hacky) change allows for specifically skipping the 'drown'
phase of removing ENCH_FLIGHT. Nobody blinks to safety afterward anyway,
and Beogh will specifically move apostles out of harm's way, if needed.

(This solution is not completely perfect, but the scenarios that still
result in a crash seem much more implausible and basicallly involve no
habitable terrain nearby at all.)

--------------------------------------------------------------------------------
3c4c604365 | DracoOmega | 2026-03-15 04:00:42 -0230

Fix apostles falling into lava during challenges not being noticed (Darby)
They would simply die without ending the challenge or allowing you to
recruit them.

This was because all monster revival effects would be ignored during
drowning deaths (besides Yred's Bind Soul). I am not sure this makes sense,
since multiple of these effects would work just fine in cases of drowning,
such as Blorkula bat splitting or Nobody's phyrric recollection (at worst,
the messaging might be slightly weird) and it's actually critical in the
case of apostles.

So let's not special-case drowning to avoid these effects (and in just a
couple places specifically exclude it, rather than universally).

--------------------------------------------------------------------------------
012f058bb5 | DracoOmega | 2026-03-15 04:00:42 -0230

Fix Tukima's Dance not working on draugr (Planckenstein)

--------------------------------------------------------------------------------
97488934b5 | gammafunk | 2026-03-14 22:55:15 -0500

A 0.34.1 changelog tweak
Mention a count of the other bugfixes not covered directly in the
changelog.

[skip ci]

(cherry picked from commit 1eebc1a2892e1c89776a0d7a10691f8dac8d9796)

--------------------------------------------------------------------------------
1e003389ba | gammafunk | 2026-03-14 22:21:21 -0500

Update trunk changelogs for 0.34 releases

--------------------------------------------------------------------------------
bdb83034df | gammafunk | 2026-03-14 19:08:01 -0500

Fixes and new functions for clua cell views
In 83290745, view.cell_see_cell() was simplified to directly check the
grid using the caching global LOS function cell_see_cell(). This is an
information leak, because it can check arbitrary grid positions (using
player-relative coordinates). This commit reworks this function to be
similar to the approach of its initial implementation in 306dcfe, which
uses only player map knowledge. It also adds
view.cell_see_cell_no_trans(), view.cell_see_cell_solid(), and
view.cell_see_cell_solid_see(), so clua has all necessary LOS checking
functions for arbitrary map squares.

It would be possible to implement these functions with the current
caching globallos cell_see_cell() function by expanding losfield_t to
two bytes and adding new LOS types. However this would slightly increase
crawl's memory consumption in all games for something that will only be
used in complicated clua scripting, hence I'm using the non-caching
approach.

Note: There may still be an information leak in these functions due to
use of map_bounds() with grid coordinates. This could allow clua to
check for map boundaries before the player knows this. However this is a
very minor leak, and I'd want to do some more investigating as to a
proper solution before reworking this aspect.

--------------------------------------------------------------------------------
b759490ca2 | DracoOmega | 2026-03-13 11:00:08 -0230

Revert "Fix monster extra action from torchlight being sometimes being delayed"
The approach used for automatically queuing monsters for action when they
gained sufficient energy was applying even to monsters outside of
env.mons[] (for instance, when the interlevel follower list was
unmarshalled). This meant that if an unmarshalled monster had sufficient
action energy, it could end up being used in handle_monsters() despite the
fact that the memory pointed to might not be valid anymore.

(A practical way to cause this in a real game is to have a fast monster
fall down a shaft, which can put it in the follower list while still having
action energy. It will get unmarshalled at game load, causing undefined
behavior to happen the next time the player acts.)

While the general idea is good in principle, I am reverting for now until
it can be implemented more safely (since multiple people's saves are
unloadable in the meantime).

This reverts bce5b7a

--------------------------------------------------------------------------------
e17ad08588 | regret-index | 2026-03-12 12:09:45 -0230

Change the glaive of Prune to the partisan of Prune
It's nice to have unrands for every weapon type, and well beyond the
alliteration, the trade of one base damage for the ability to wield a
shield or orb should be a reasonably worthwhile trade-off. (It still has
some very high competition amongst other polearm unrands, anyway, and
while it's a minor shame to lose another two-handed unrand of some
passable value, the upcoming two-handed weapons rebalancing project
planned for this version should help the other still-surviving ones.)

As such, this commit changes the glaive of Prune to the partisan of Prune.
This changes nothing about the actual stats or mechanics of the weapon,
so it's still a +12 polearm of freezing with mindelay at 20 skill that
provides damage reduction while one is paralyzed / petrified / asleep.
In becoming more attractive to more characters (and in being a freezing
weapon), it does however now get a 1/100 chance to place in the trove of
Ozocubu's Refidgerator.

(The tile modification here still uses ontoclasm's current glaive of Prune
item and player doll tiles, with the original versions of both now stored
in rltiles/UNUSED for potential future usage.)

--------------------------------------------------------------------------------
db04a1d58d | regret-index | 2026-03-12 12:09:44 -0230

New Xom action: mass vex + mass chaos lace
Unlike many other Xom effects geared specifically for variety's sake and
additional weird uniqueness, this new Xom action is also specifically
meant to help provide connectable Xom effects for a later-coming Xom
demonspawn priest in Pandemonium. (It'll just cast Vex, not Mass Vex.)
As such, it's a relatively straightforward effect: as long as there's any
hostile monsters in sight with attacks adjacent to another hostile monster,
this inflicts 4-8 turns of both Vex (the pseudo-paralysis effect standing
still and attacking things in place since f4f8fba) and Chaos Lace (the
chaos brand granting status effect from 4b73973, notably refactored in
3440744).

This may make multiple monsters shred each other and allow escape or
killing them alike, but characters reliant on melee don't get any
particularly large benefits outside of polearms (and vexed
polearms-wielders also have reaching anyway), and it's short enough
that monsters can survive briefly being made to hit each other. Involving
chaos brands still provides some immediate risk factors if one can't
escape and the rare chance to indirectly buff each other, but it should
still have enough benefits to be notable as another way Xom can interact
with fights without just directly heavily wrecking monsters immediately
or dropping down a bunch of allies.

--------------------------------------------------------------------------------
0c9ac3fb94 | regret-index | 2026-03-12 12:09:44 -0230

New Xom action: mass blind + mass blinkitis
There has been some longterm dev discussion about adjusting and replacing
high-level Translocations spells over the past version's development,
which included replacing Disjunction. Whether or not this this ends up
happening, the design space for Xom to actually intervene in fights
positively besides killing enemies directly is pretty large yet mostly
only covered by teleports, terrain effects, or potions, so coming up with
something unique to Xom that can cover for the eventual fate of the spell
is a reasonable move either way.

This new rare "positive" effect requires one to be below 75% of their max
HP, to have at least one adjacent monster, and for there to be one or less
smiting-attack monster present for every five other monsters. If all of
these criteria are met, Xom blinds every hostile monster in sight
(regardless of their resistances, like how Enfeeble can since 589dcd5),
inflicts the dart of disjunction rapid-short-blinking-away effect from
d268329, and instantly blinks those affected that turn, damaging them
for 2d2 irresistable damage each turn and producing some translocational
energy clouds under their previous locations + your own square. (The exact
behaviour of this is a little unique, since it lasts much longer than the
dart- affected monsters just out of the edge of sight will be able to walk
back into view for one turn, and then be automataically blinked away again
when they'd next get to act.)

The blind should reasonably make up for pushing ranged enemies away from
a melee character (but doesn't completely negate them), while the
blinkitis prevents Short Blades characters from immediately stabbing such
irresistably weakened foes. What this _does_ do is allow a quick escape
(with the occasional ranged finishing-off option otherwise), with enough
of a melodramatic animation and visibly silly fashion it should hopefully
pass for a decent joke as well as a somewhat unique mechanical effect.

--------------------------------------------------------------------------------
41e759f0ee | regret-index | 2026-03-12 12:09:44 -0230

Fresh 0.35 Xom changes
Worthy of note:

 * After some refactoring to improve performance with floor exploration
   estimates, Xom's boredom is now much more pressing on mostly-explored
   floors (which span from estimates of 85+% cleared). While Xom's bored,
   the draining, Doom, and random mutations effects are amplified, and the
   random noise and flavour messages effects are skipped. Also, good
   mutation gifts + item gifts can't happen at all on nearly-completed
   floors, Xom's boredom timer now ticks down faster on nearly-completed
   floors, and said timer resets to a much lower count on such floors; the
   announcements of Xom getting bored are rescaled to apply to such
   circumstances, and Xom also announces the shortened boredom timer when
   on a sufficiently-explored floor. (All of these effects do not apply to
   the inconsistently-available Necropolis or Gauntlet floors, but does
   apply to Temple and Bazaars both. To offset this for normal play, Xom
   now doesn't tick down boredom on barely-explored floors).

   This repeated usage of floor estimates should continue to somewhat
   stymie Xomscumming with relatively minimal codebase burden or effort
   (while concentrated dev interests in revising Xom's strategic
   benefits distribution are pointed elsewhere), without actually making
   regular Xom play particularly worse off outside of backtracking for
   runed door vaults / shops / moving between branches. (One could, of
   course, scum on unexplored levels, but this amplifies the chance of
   teleport and noise effects being much more relevant instead, and
   those teleports slowly explore through more of the floor. One could
   also skip floors and return to them when they're effectively harmless,
   though this eats up Xom effect rolls with e.g. detection and allies.)

 * Xom's good mutation gift now more consistently has less chances
   happen the more one is already mutated, though with only minor lowered
   chances overall. Previously, this only started to have any effect at
   all when one had over 16 mutations, which was much higher than Jiyva or
   what general random mutation sources could ever really reach in the
   first place. With the Xom bazaar already covering for some of this,
   the

 * Xom's hyper-buffing-allies effect now includes chaos lace (extra chaos
   effects on attacks), paradox touched (learning Manifold Assault), and
   warding, to make them even more powerful at clearing fights but also
   notably less easy to just hide behind.

 * Plain shapeshifters have been nudged up a few effective levels in Xom's
   summons list, since they can high-roll some relatively awkwardly nasty
   things for early on.

 * Xom's tension spell list no longer includes Disjunction, due to a new
   effect replacing it in an upcoming commit.

--------------------------------------------------------------------------------
2d801cba1d | regret-index | 2026-03-12 12:09:43 -0230

New unrand: the swamp witch's dragon scales
For some strange reason, we have extremely few dragon scale unrands
overall, with just the faerie dragon scales and the scales of the Dragon
King at both far ends of armour weight. (Plausibly it's due to the
inherent unique nature of dragon armour as flavoured death drops, but
unrands are rare enough we can offer other sources of this anyway.)
Between trying to support somewhat heavier EV / casting armour as
occasional options and giving a little more for options for the three
limited-body-armour species, it'd be neat to add more of these overall.

These swamp witch's dragon scales play off of the flavour of the strangely
one-off presence of chimeric fenstrider witches in Swamp, and mechanically
links their debuff to their partially-resistable poison attacks. Aside
from being +5 swamp dragon scales of Int+3 with innate rPois, wearing them
gives access to a TrickPois mechanic that poisons enemies you debuff- the
maximum four levels of poison with rPois0 or rPois-, one level for rPois+,
and nothing for further than that.

Unlike the debuff-checking AC of poltergeists or mostly single-target
range of athame, the free AOE damage attached onto this (at least,
turn-economy-wise) also notably encourages some cute synergies with some
underperforming mass-debuff spells (Metabolic Englaciation, Alistair's
Intoxication), the ever-contested Uskayaw, and some recklessness with
scrolls of immolation every character can use, while not being quite as
inherently ally-hostile as OTR itself is. (It does anti-synergize with
sleepstabs from Ensorcelled Hibernation, but the one-turn sleep guarantee
there still allows stabbing immediately-adjacent targets.) As poison
itself eventually falls off at the end of 3-rune games, it eventually
mostly just serves functionally as +5 swamp dragon scales, which are fine.

(For the most part, we're fine with some major outliers of unrand power-
Arga, Gyre & Gimble, Damnation, and Cigotuvi's Embrace most immediately
come to mind, but plenty of others can be argued as quite exceptional
overall. These scales are quite strong earlygame, but their innately
conditional power should be fine enough to experiment with.)

The item tile combines Sastreii's current dragon scale tiles with
roctavian's current ego scaale mail tile, while the paper doll tile
combines Sastreii's current Kyria's mail coat paper doll tile with
ontoclasm's swamp dragon scales paper doll tile.

--------------------------------------------------------------------------------
89500f345a | regret-index | 2026-03-12 12:09:43 -0230

Nudge up athame drop rates and quality
While athame were meant to not significantly buff Short Blades overall,
they're quite rare at the point in the game where one may actually upgrade
from an elec / poison branded rapier-or-worse, which hurts their capacity
to actually help with the skill investment curve and weapon build
variation as was explained in 81124d8. (They're still a lot more common
than quick blades, but not by quite enough to make their specific demands
more worthwhile, and as with all weapons, plain base types that aren't
supposed to be endgame weapons are somewhat unimpressive post-Lair). As
such, this commit adjusts their drop rate and quality a bit:

 * Josephine and Nergalle both now have a 20% chance instead of a ~14.2%
   chance to be holding an athame instead of daggers- it's nice for
   uniques to have more rewards, anyway.

 * Orc sorcerers and kobold demonologists now have a slim chance for
   getting athames. With the above change, this increases the average
   athame count in D from ~0.25 to ~0.60 and adds another ~0.50 athames
   to Orc.

 * Deep elf death mages, sorcerers, and demonologists now have a
   40% chance for their athames to be flaming or freezing, as is
   mildly better for athames over other short blades.

 * Branded athames now have a chance for draining brand, as this only
   provides half of the athame bonus in a capacity that falls off in
   endgame, and it's nice for more characters to actually care about a
   brand with so many limitations and non-obvious mechanics attached to
   it.

--------------------------------------------------------------------------------
84ebf0652c | Isaac Clancy | 2026-03-12 22:20:43 +1300

Fix many cases of reaching full hp not attuning regen (yrdzrfxndfvh)
Items of health regeneration would only attune when you reached full
health from regeneration or max health being reduced. If you reached
full health from another source such as drinking a healing potion or
vampiric draining, the item wouldn't attune until you took damage and
then reached full health with one of the methods that works. Items of
magic regeneration had a similar problem and would only attune when your
magic regenerated to full. This was broken in commit 4e4bab2 as it
stopped checking every turn if items should be attuned and instead only
checked on some methods of reaching full health or magic.

Fixes #5080

--------------------------------------------------------------------------------
bce5b7a9de | Isaac Clancy | 2026-03-12 22:20:43 +1300

Fix monster extra action from torchlight being sometimes being delayed
When a undead monster is hit by hurl torchlight it gains energy, which
often allows it to take another action. However, if the monster had
already taken all of its actions this round it wouldn't be added to the
queue of monsters waiting to take actions resulting in its extra action
being delayed until after the player's next turn.

--------------------------------------------------------------------------------
177dabccda | gammafunk | 2026-03-10 09:03:11 -0500

A clua function to check if a square was seen
The function view.feature_at() can tell the user if the square's terrain
is known, either because it was seen or it was mapped by ?revelation,
but it can't indicate whether the square has actually been in player
LOS. Hence I'm adding view.seen_at(), which returns true if a square was
seen before. This function respects map forgetting via X->^F, so it will
return false for seen squares that were subsequently forgotten.

--------------------------------------------------------------------------------
4bbd2b0a69 | Isaac Clancy | 2026-03-09 21:05:33 +1300

Refactor checking if final effects are mergeable
Check if the final effects are of the same type in the base class rather
than in every derived class. This should be less error prone when added
a new final effect.

--------------------------------------------------------------------------------
9b451084e2 | Isaac Clancy | 2026-03-09 19:26:12 +1300

Fix merging not taking the right amount of energy for slimes
After slime creatures merge, you should be able to walk 1 space away
from the resulting slime creature without it following you (At least if
you have normal move speed and the slime isn't hasted). However, our
implementation of this had the following problems

1. It was assuming that monsters take their turns in order of mindex
   (there was even a helpful commit saying this), however, this hasn't
   been true in a very long time. This was resulting in it not removing
   enough action energy for the player to move away from the merged
   slime when it thought it had had all its turns but it hadn't and
   removing more action energy than intended in the opposite situation.

2. The check to see if the merged slime was already low enough in energy
   was broken in commit d1e63fa and would result in a slime that was
   already low enough in energy actually gaining enough energy that the
   player couldn't walk away.

3. We were only removing 1 extra turn worth of action energy from the
   merged slime creature if we thought it hadn't had its turn yet,
   however, if the player's previous turn was slow it could have enough
   energy for multiple turns resulting in us not removing enough energy
   to let the player walk away.

To fix all these problems, set the merged slime's action energy to be
exactly enough for the player to move away with a normal move speed if
the slime isn't hasted.

--------------------------------------------------------------------------------
7f52ee36de | Isaac Clancy | 2026-03-09 13:02:53 +1300

Fix monster clockwork bee's action sometimes being delayed
In handle_monsters we iterate over all monsters calling
_pre_monster_move on each monster. If one of these monsters has finished
winding up its clockwork bee, this will add the newly created bee to the
monster array that we are iterating over. If the bee gets added before
where we currently are in the iteration order it won't be added to the
queue of monsters to take actions and its first action will be delayed
to next turn, however, if the bee is added after our current iteration
position it will be added to queue of monsters to take actions and will
take its first action this turn.

We can fix this be calling queue_monster_for_action on the bee when we
create it so that the bee always takes its first action this turn (this
will sometimes result in the bee being added to the queue twice, but
this is harmless).

--------------------------------------------------------------------------------
117663b8c5 | DracoOmega | 2026-03-06 03:56:46 -0330

Fix header build tests

--------------------------------------------------------------------------------
b06b84ae57 | gammafunk | 2026-03-06 00:12:29 -0600

A clua function for the Zot orb monster

--------------------------------------------------------------------------------
ceab387b16 | DracoOmega | 2026-03-05 22:50:50 -0330

Add a default force_more for a gale centaur's wind beginning to shift
(Due to training skills not corresponding to their current wind.)

I thought this was already the case, but apparently not.

--------------------------------------------------------------------------------
de3fda6cfd | DracoOmega | 2026-03-05 22:50:50 -0330

Abort when casting Hoarfrost Cannonade with no valid space to place cannons
This fixes #5121

--------------------------------------------------------------------------------
f904c6e45d | DracoOmega | 2026-03-05 22:50:50 -0330

Don't make wizmode terrain creation default to targeting monsters
This closes #5112

--------------------------------------------------------------------------------
6849492280 | DracoOmega | 2026-03-05 22:50:50 -0330

Fix invisible monsters counterintuitively interrupting stampede
If the player expected to be making a rampage move (ie: that there wasn't
a monster adjacent to them), moving into an invisible monster would stop
their rampage dead in its tracks. Which honestly doesn't make very much
sense given that the entire idea is that you're bowling over everything in
your way, anyway. So now - unseen monster or no - you can keep on charging
forward.

--------------------------------------------------------------------------------
305857a617 | DracoOmega | 2026-03-05 22:50:50 -0330

Fix getting rampage attack stagger against adjacent targets
This was possible if the player *thought* they could rampage towards some
distant monster, but an adjacent invisible monster was actually in their
way. Thus you would try to rampage and hit the first monster encountered
with a rampage attack (and its stagger).

However, this used attack delay instead of movement delay, and could be
repeated. Meaning that in theory one could permanently stunlock an adjacent
invisible monster with a 5 aut weapon, so long as there was something
behind it to rampage towards. This might not have even been very hard to
set up in a corridor if one knew about it!

Now the stagger should only be applied if the player has *actually* moved
at least one step before attacking.

--------------------------------------------------------------------------------
049f8105fc | DracoOmega | 2026-03-05 22:50:50 -0330

Don't have marionette continue to treat charmed monsters as hostile
If a Aphotic Marionette changed some monster's loyalty (eg: by charming
it), the marionetted monster would happily keep blasting away at it with
subsequent spells anyway. Now they should treat it as friendly as soon as
it becomes so.

--------------------------------------------------------------------------------
7d85daebd1 | DracoOmega | 2026-03-05 22:50:50 -0330

Fix Dominate Undead not working properly for friendly casters
For instance, charmed bloodprinces (or more plausibly Marionetted ones).

It was applying ENCH_HEXED even to naturally hostile monsters, which didn't
actually do anything helpful (and also resulted in the odd situation where
the game would claim when you examined it that control over it had been
wrested from you, even though you never controlled it at any point).

Now it should properly charm undead to your side if the caster is friendly.

--------------------------------------------------------------------------------
093d347026 | DracoOmega | 2026-03-05 22:50:50 -0330

Fix damageless projectiles (like pyre arrow) saying they did not damage
Of course they didn't do damage. They never do damage.

(Broken by 22db19a)

--------------------------------------------------------------------------------
aa8db86a2d | DracoOmega | 2026-03-05 22:50:50 -0330

Fix channelled spells not maintaining Stampede with East Wind
I'd accidentally put this code below most of the return statements. Oops.

--------------------------------------------------------------------------------
b4edf70533 | DracoOmega | 2026-03-05 22:50:50 -0330

Make Exposed dispellable
It feels like it's probably supposed to be.

--------------------------------------------------------------------------------
d9a1b0cc75 | DracoOmega | 2026-03-05 22:50:50 -0330

Fix coglin ranged shadow mimics firing their second shot towards (0, 0)
Broken by 9780205

--------------------------------------------------------------------------------
31f4b76aa2 | DracoOmega | 2026-03-05 22:50:50 -0330

Fix Arena example syntax (canofworms)
'royal jelly' is the correct way to generate TRJ these days, not 'the
royal jelly'.

--------------------------------------------------------------------------------
1a1cf56552 | DracoOmega | 2026-03-05 22:50:50 -0330

Don't claim Gloom has a 'chance to dazzle' in its targeter
Accidentally overlooked when it was changed from Dazzling Flash.

--------------------------------------------------------------------------------
1053647427 | DracoOmega | 2026-03-05 22:50:50 -0330

Add a wizmode command to add all generated unrands back to the pool
It's very inconvenient for testing certain monster interactions that one
can only give a monster a given unrand a single time per save file.

--------------------------------------------------------------------------------
7f5b25da15 | DracoOmega | 2026-03-05 22:50:50 -0330

Fix unrand rarity reading undefined values
ec41f42 accidentally broke all unrand weights by neglecting to notice that
UNRAND_START must be subtracted from all unrand enums to index their data.
This meant that all unrands were reading their max item levels from past
the end of the array, resulting in undefined behavior. In practice, this
meant that early unrands would not respect item level at all, and some
random handful of unrands would be much rarer than they were supposed to
be.

(I suspect early unrand generation, even as intended, doesn't function very
well for other reasons, but this is undefined-behavior on top of those
issues.)

--------------------------------------------------------------------------------
ef5fb1ab79 | regret-index | 2026-03-05 04:14:04 -0330

Make quicksilver elemental amorphous (Flugkiller)
In name allusion, text description and tile, quicksilver elementals are
formed out of liquid. This makes them just as valid for the Amorphous
flag as water elementals and wellsprings are when they got such in
cc540e3, which most notably makes them Shatter resistant but doesn't
do much else beyond adding to this consistency. Since there's already
28 caustic shrikes per Dis to provide a monster resistant to Shatter in a
branch full of those otherwise vulnerable to it, it should be fine to have
another monster resistant anyway.

--------------------------------------------------------------------------------
1676aace25 | regret-index | 2026-03-05 04:07:13 -0330

Minature quick vault review
Of note, though also nearly everything done at all:

 * nicolae_elf_deep_mausoleum no longer uses curse skulls in Elf, as is
   pushing the branch guest capacities too far.

 * st_'s greater box V vaults set now properly places the golden metal
   tiles of 011df5c underneath its custom monster choices.

 * Slime:1-4 vaults with non-rock non-stair features now have an luniq
   tag. (I'd be happier to have more features and tiles that don't imply
   the slimes somehow missed wearing them down, but this should function
   for now.)

 * Lehudib's Moon Base's lunar statue has been adjusted to match other
   orange crystal statues aside from casting LCS over Mass Confusion.

 * Doroklohe's Tomb now has fairly better rewards than previously: the
   generic set has been removed, both item sets now have more gold,
   the scrolls set now comes with additional chance for parchments of
   earth, and the armour set has a variety of themed heavy armour or
   auxillary armour gear. As it is commonly regarded as a death trap
   (due to people not taking the digging hint to fight the boss enemies
   extra early), it might as well contain actually passable item rewards.

 * The Earth Ziggurat floor set no longer features caustic shrikes or
   entropy weavers, as that list has gotten quite large at this point, and
   we have enough sets emphasizing caustic shrikes at this point with the
   Acid Ziggurat floor set of e745ec4 joining the Lair, Dis, and Vestibule
   sets already mildly emphasizing these.

--------------------------------------------------------------------------------
f5795fbf5a | yrdzrfxndfvh | 2026-03-04 05:45:40 -0330

Small batch of (mostly Slime) vaults (#5010)
Adds a collection of Slime stairvaults, some themed and some generic,
all of which place monsters near the downstairs (or upstairs). With the
changes to slimy walls and Slime level connectivity, vaults can now
force players to go through nasty corridors without being seen as too
harsh. I don't think any of these are too mean, though.

Also includes one star-themed abyss monster vault, one abyss exit vault
based on a funny bug, and one ziggurat entrance with hostile statues.

Thanks to regret-index and gammafunk for layout advice.

[Committer's notes: alongside a few shifts of syntax and line length,
proper full randomization of stair uses, and a few tweaks of tags and
vault rewards, the notable changes were:

 * The Abyss exit vault riffing off of 830d415 was significantly revised,
   due to the bug existing not for very long in trunk as well as being
   far too opaque to actually parse out of context compared to e.g.
   `hangedman_abyss_monster_moat` still functioning as an abyssal blob of
   unexpected guest monsters.

 * Slime stair vaults containing monsters have gotten luniq tags with
   this impending batch, to mildly reduce the presence of multiple on a
   floor when there's still not a lot of Slime vault variation to work
   with.

 * The Ziggurat vault entry has a far lower weight than default, due to
   the statues used being mildly annoying and conspicuously more harmless
   and generic while being less representational than most other Ziggurat
   entry guard monsters, as well as the vault being a bit larger than the
   other Ziggurat entry vaults.

Closes #5010.]

--------------------------------------------------------------------------------
6cca9e1b9d | regret-index | 2026-03-04 03:37:21 -0330

Force Elf:2 to veto disconnected floors (various)
As has been reported as an Github issue many times, Elf:2's guaranteed Hall
of Blades can sometimes be disconnected from the rest of the level and
require digging or teleport to actually access. As it is a guaranteed
strategically-relevant (if still random) reward source, it's extra
awkward for the floor to be disconnected in any fashion. As 79647d7 reused
_add_connecting_escape_hatches to connect floors in Pan, this too reuses
the same to ensure Elf:2 will always be a fully connected floor, which
shouldn't add too much server loading burden with the individual case
but will address the problem otherwise quite directly.

This closes #3592, #4056, and #4720.

--------------------------------------------------------------------------------
bf3fd91cce | RypoFalem | 2026-03-04 03:37:21 -0330

docs: changelog typos (Back-form) (#5076)
(Accidentally left off a fair bit past 0.34's release. Oh well.

Merges and closes #5076.)

--------------------------------------------------------------------------------
6db69d5737 | regret-index | 2026-03-04 03:37:21 -0330

Tweak starcursed mass messages versus mindless monsters (#4928)
As the comment left on that issue implies, we prefer the starcursed mass
scream affect all monsters with different messaging rather than make them
individually care about monster intelligence, so this commit does so.

Fixes #4928.

--------------------------------------------------------------------------------
04a87ca1cd | DracoOmega | 2026-03-03 14:56:36 -0330

Invert default of autofight_no_stampede option and rename
While losing the stampede status when you need to keep it and stampeding
when you'd rather stay in place are perhaps similarly bad for the player,
using ctrl+dir to stop stampeding is more buttons than using tab (for a
very common situation) and it may not be immediately obvious to new players
that it even works. (Also, since for other species, tab only moves if you
*don't* attack, this is probably more consistent with core behavior
anyway.)

While this schema runs some risk of players instead not realizing they can
push monsters at all (which would be even worse), I am keeping my fingers
crosssed this isn't the case.

--------------------------------------------------------------------------------
15775b53b1 | DracoOmega | 2026-03-03 14:48:04 -0330

Move Gale Centaur to Advanced
Disagreements about their power level aside, multiple players have made
reasonable arguments that stampede presents a level of unique tactical
complexity that would be more appropriate for an Advanced species instead
of Intermediate.

I have swapped Coglins into the bottom of Intermediate in their place.

--------------------------------------------------------------------------------
c80f6e2a8d | DracoOmega | 2026-03-03 14:30:26 -0330

Rename Anemocentaur to Gale Centaur
While the mythological referent for anemocentaur were the Greek anemoi, I'd
opted to encorporate -centaur into the name (rather than simply call them
Anemoi) to try and ensure it was clear to players that they were basically
wind-themed centaurs and not anything more deliberately 'weird';
specifically harkening back to the familiar and oft-misssed species
rather than its multiple unconventional replacements.

This seems to have failed utterly, with many players from all corners
arriving at different conclusions about exactly what sort of weirdness the
name was intending. (The most common misunderstanding is that they are part
sea anemone, though I've seen a variety of distinct misreadings).

Since the entire *point* of calling them anemocentaurs in the first place
was to emphasise that they are, in fact, just centaurs (while being just
distinct enough to justify not being fast-moving like the common monster
is, on mechanical grounds), I am opting to rename them entirely. Hopefully
this will be less open to misunderstanding.

--------------------------------------------------------------------------------
c2f9960323 | Isaac Clancy | 2026-03-03 23:09:25 +1300

Output some crash logs on platforms that don't support unix signals
We can't output crash logs for sigfaults and other signals, but we can
still output them for calls to ASSERT and die

--------------------------------------------------------------------------------
657efc8387 | Isaac Clancy | 2026-03-03 21:55:46 +1300

Fix the MSVC tiles build crashing when trying to process a crash
This resulted in the crash log not being created and was caused by
stderr being invalid. We can work around this by skipping writing to
stderr for this build configuration.

--------------------------------------------------------------------------------
fc8efd9172 | Isaac Clancy | 2026-03-03 16:20:55 +1300

Fix crash when Bribing summoner (Undo)
When you see a summoner and its summons at the same time and the
summoner accepts a Gozag bribe (which kills the summons) we would crash
when trying to determine if the dead summons should interupt the player.
Instead, skip the dead monsters as they won't interupt the player.

Fixes #5115

--------------------------------------------------------------------------------
9d33b2e39c | Isaac Clancy | 2026-03-03 15:52:19 +1300

Fix the force_scroll_targeter option messing with ability targeters
This seems to have been a copy-paste error when defining the option.

Fixes #5118

--------------------------------------------------------------------------------
62a301ebe3 | Isaac Clancy | 2026-03-03 14:37:44 +1300

Fix unequipping a non-artifict always crashing
This was caused by commit a76044d which was checking if an item had an
artifact property without first checking if it was an artifact.

--------------------------------------------------------------------------------
a76044d670 | Isaac Clancy | 2026-03-03 14:10:35 +1300

Fix unequipping unrandarts failing to suppress brand messages
Unrands give their own custom messages when unequipped and should
suppress the default message for their brand. However, this was broken
in commit a2d0413

--------------------------------------------------------------------------------
a2d0413ad7 | RypoFalem | 2026-03-03 13:43:04 +1300

fix: ^Fragile equipment being destroyed before unequip effects
The player could dodge negative unequip effects on a ^Fragile item. This
means Amulets of Faith wouldn't have a piety penalty for removal and
weapons of Distortion wouldn't do their distortion unwield effects. This
is apparently unintended and it turns a negative property into a
positive one which will surprise players and vault makers.

This commit breaks ^Fragile gear only after other unequip effects have
happened.

--------------------------------------------------------------------------------
f4adea49af | RypoFalem | 2026-03-02 19:09:08 +1300

fix: Forgetten branch entrances when Xom moves stairs (glyphos)
When Xom moved branch entrance stairs, you'd forget which level the
entrance was on. This meant you couldn't autotravel to the branch and it
wouldn't show the location on the overview screen.

Fixes #4737

--------------------------------------------------------------------------------
162b858e6e | Isaac Clancy | 2026-03-02 19:04:53 +1300

Add Dossy Shiobara to the credits

--------------------------------------------------------------------------------
9b33d42f96 | brandon s allbery kf8nh | 2026-03-01 22:16:10 -0600

tweak the morgue upload setup
improve documentation/comments
only upload if we had an actual crash, per DracoOmega
reduce retention time to 7 days
drop db and des from saves

--------------------------------------------------------------------------------
3808bb52c5 | regret-index | 2026-03-01 04:16:50 -0330

Fix trove weapons
The First Justicar's Armoury was asking for demon weapons of holy wrath
after 2489330, which didn't function at all. The vault now has some fairly
low chances for the blessed weapon counterparts instead.

--------------------------------------------------------------------------------
aa274b4f18 | regret-index | 2026-03-01 04:14:40 -0330

Replace another swatsika vault (Wiilli)
This became substantially more obvious after ac9929e actually highlighted
the walls when the individual vault spawns. Since the design specifications
of polyominoes.des are rather difficult to adjust individual vaults within,
I've made another layout entirely instead (which is still using four
L-shaped heptominoes, but in a wider pattern of two rectangles instead).

--------------------------------------------------------------------------------
d9abd15452 | DracoOmega | 2026-03-01 03:34:19 -0330

Fix a few values not being propogated up from coglin multiweapon attacks
Mostly this resulted in fsim failing to report anything for coglin offense,
since it thought every one of their attacks missed.

(total_damage_done is currently only used for enkindled spellclaws, but
it's very possible in the future something else will use it that could have
affected coglins.)

--------------------------------------------------------------------------------
7f86954083 | brandon s allbery kf8nh | 2026-03-01 02:07:34 -0330

Upload an artifact on Linux test failure
The artifact contains the executable, the morgue, and a core file if
available (with the executable matching the core file for debugging).

--------------------------------------------------------------------------------
7be77ddb67 | regret-index | 2026-02-28 21:43:41 -0330

Fix a few recent interface tiles
The Mass Regeneration icon added in a0e6fa1 was accidentally putting the
generic spell icon background behind the invocations background it was
already using, and the South Wind mutation icon I provided for e12fab6
has part of it oriented in the wrong direction due to various wind
mechanics versus direction reconfigurations during development.

--------------------------------------------------------------------------------
5722069ed3 | regret-index | 2026-02-28 21:43:41 -0330

Give Josephina (the late one) Dominate Undead
Despite the omnipresence of bolts and fireballs in lategame, a lot of ally
builds in lategame can build up so many bodies that few monsters can
really meaningfully threaten the top of each ally spell school. Meanwhile,
Josephina the ice lich (618b504) i also notably underperforming in
killratio versus most other endgame uniques, with little changed for her
recently besides repeated Flash Freeze adjustments over the years.

I am thus repurposing a bit of the unique always leading around a bunch
of undead to further menace other necromancers and undead alike, by
giving her the undead-ally-stealing, player-undead-vexing Dominate Undead
made for vampire bloodprinces in 4c592b3. This should help her stand out
significantly to those who care about either of these effects, without
being too overwhelming (since it's late enough players can ready some
strategy beyond spamming spectres and scarabs / can expect to risk
Paralysis against many endgame monsters anyway), still keeps her somewhat
mechanically straightforward in borrowing spells since many characters
don't care about the spell, and should feel reasonably distinct from
bloodprinces + distant from future Tomb that it should all reasonably work
out for an experiment.

--------------------------------------------------------------------------------
7fc84518e5 | regret-index | 2026-02-28 21:43:40 -0330

Fix troves weapons accidentally trying for ranged distortion (rypofalem)
The rework of trove_weap_brand in 2489330 to make non-acquirement Trove
weapons use generic top-tier weapons even passes a ranged_valid parameter
but forgot to accidentally use it. Fortunately, this only comes up as an
error message in Eringya's Secret Bog and the Devouring Rift, and is also
very easy to fix here by checking it.

--------------------------------------------------------------------------------
45c81ee204 | regret-index | 2026-02-28 21:43:40 -0330

Fix an overflow altar using a second Trog altar (#5103)
In the big refactoring of overflow.des in bcc4609, a stone arch in
nzn_overflow_gifts_of_might_and_magic accidentally got replaced with a
second Trog altar, which is thus fixed here.

(While I'm here, to make the vault more obviously comparing Trog and
Sif, I'm giving it floor tiles to match the colourations it gets in
console.)

This fixes #5103.

--------------------------------------------------------------------------------
2737fa4c34 | regret-index | 2026-02-28 21:43:40 -0330

Change the outside border of V:5 from rock to metal (#5901)
While previously this felt fine when there wasn't any metallic flooring
across the level, 011df5c adding such makes digging / shattering the
outside floor's brick to reveal the default metal floor look a bit ugly.
It's also not really what the appearance of the floor would suggest. The
potential strategy of breaking the metal walls to dig around the outside
of the floor in order to safely approach each corner is both somewhat
silly and very niche, with how many digging charges this would need
anyway, so it shouldn't really hurt to lose it; there's already some
mild benefit from being able to break those walls to produce more free
sight-controlling corners, anyway.

(In the 10% chance the floor is made of green crystal wall instead, the
outside border will be crystal walls too.)

This fixes #5901.

--------------------------------------------------------------------------------
81124d8845 | regret-index | 2026-02-28 21:43:35 -0330

New short blade base type: Athame
Short blades are in a curious conceptual superposition. Their low base
damage, fast mindelay, and stab mechanics all alike are meant to support
two different strategies: the many build decisions and spell / god
integration and occasional Stealth luck to support stabbing, or just
tossing on enough Slaying and auxes and the right brands to provide
consistent decent melee throughput. The former has a lot of complexity and
resists across the game trying to cover up the pay-off always being a
nearly / dead monster, and is regularly balanced out by the fallback of
the latter, which has slowly gotten stronger over time between aux attack
forms and Slaying-providing effects and mildly more randarts in
midgame-onwards. There's not a lot of an actual bridge between the two
beyond using the same weapons, and the latter lacks for a large degree
of the former's complexity- not unusual for the simplicity of most other
weapons in Crawl, but still a conspicuous gap in Short Blades itself,
especially while Hexes has its own notable gap in stabbing spells between
levels 4 to 6.

(Simultaneously, there's also a large skill investment gap for mindelay
between the rather common rapier and the fairly rare quick blade as of
e9d7159. While this provides a certain unique characterization to the
weapon type and rapiers or pivoting into Long Blades can still win the
game with enough effort, it's a fairly dissatisfying end result, which
can be filled with something hopefully reasonably unique. The Blade Form
rework of a11072b also is already strong enough to win short blades 3-rune
games with, but there's not a lot of stabbing or short-blades oriented
weapon permitting forms before it on the curve after the Maw Form reworks
of 62f4531 besides the singular Werewolf Form.)

As such, this new weapon may be somewhat more complicated than default,
but directly serves as a bridge between Crawl's many complex stabbing
circumstances and "just hitting monsters many times really fast", as well
as a bridge in skill investment between rapier's 14 skill and quick
blade's 20 skill for minimum attack delay. (The last of these is
particularly of interest with future systems incentivizing heavy weapon
skill investment.)

These ceremonial daggers, attested to the Renaissance era Key of Solomon,
have base damage 6, base accuracy +5, and a base attack delay of 1.3 that
reaches a mindelay of 0.5 at skill level 16. While this is worse than a
rapier by default, they have a unique built-in behaviour meant to somewhat
broaden the Short Blades identity beyond stabbing or quick swings: they
get +2 base damage for striking targets with one debuff, and +4 base
damage (+66% of base 6 damage!) for those with two or more debuffs.
(This debuff list reuses the poltergeist Trickster list, which noticeably
just misses out on poison.) As base damage is the most important stat to
scale on a weapon, this moves athame from being ~15% worse than rapiers
in average effective damage to ~18% better with one debuff and ~38% with
two (give or take all the stat, slaying, and fighting skill possibilities).
They are, however, still worse than quick blades at 20 skill, which can
mildly outpace them with more slaying and far more consistently without
chasing down debuffs.

(This reuse of debuff-checking can provide a large number of other synergy
pieces beyond just stabbing Hexes. Hard-to-resist effects liky Sticky
Flame, orbs of glass, Uskayaw's Solo Time and Pain Bond, Kiku's Sign of
Ruin, and various other Hexes like Metabolic Englaciation or Yara's Violent
Unravelling should all combo well with the weapon. It also makes Spore
Form's weakness-infliction a bit more attractive, which should help
encourage a little more Shapeshifting investment for Short Blades
characters.)

To discourage constant quick swaps, and to emphasize their ritual dagger
nature, wielding an athame automatically magically costs 10% of your
current health (unless it'd kill you). This shouldn't really have any
particular synergies beyond using potions of curing with amulets of
chemistry, which Sublimation of Blood already covered, but it _is_
helpfully extremely flavourful for the innate magic the weapons have on
top of their other potential brands.

Brand distribution wise, these cannot have venom as a default brand (since
this would forefront how this doesn't count as a debuff to synergize with),
nor draining (since this would make them overly self-sufficient), but they
have natural chances for pain (as only daggers can get otherwise) and
slightly better than usual chances for vampirism. (Nothing is stopping
players from reading scrolls of brand weapon on these if they so desire,
also, and chaos athame should be reasonably competitive rolls as well.)
Drop-wise, these have slightly lowered the acquirement rate of daggers
(which are unlikely to ever be chosen) and rapiers (which these can perform
better than) to preserve the current quick blade acquirement rate. They're
also occasionally equipped on a mixed variety of spellcasters- burial
acolytes, occultists, salamander mystics, deep elf sorcerers / death mages
/ demonologists, demonspawn soul scholars / blood saints / corrupters, and
Josephine. (This means an average of 0.25 athame in D:1-15, 0.2 in Snake,
3.86 in Elf, and 1.1 in Depths. Monsters don't have as much weapon scaling
as the player does, so this is unlikely to increase their threat by very
much at all, doing only up to 4 more damage per swing if you're debuffed.)

If these turn out to be a little too weak, they can have the two debuff
steps reduced to one, though I'm doubtful this will be too necessary in
making a mildly rare weapon that easily outcompetes the common option and
is beaten in turn by the extra-rare option. Short blades in general are
a little extreme with Blade Form these days, but player winrates can use
a little nudge up, and there are other systems planned this version to
make future weapons more attractive. The only UI concern I have at the
moment is with damage rating display, but since we provide the entire
formula to the player at all times, it shouldn't be any difficult to let
players manually calculate it instead of displaying the rating twice or
more for the differing states. (An rc option could maybe handle this in
a few different ways, but I don't feel too obliged to do such right now.)

Their tiles heavily modify the old quick blade tiles by dd and the current
paper doll quick blade tiles by roctavian.

--------------------------------------------------------------------------------
cbf2863a6b | DracoOmega | 2026-02-28 20:51:18 -0330

Fix a logic error in transforming_is_unsafe
It always checked terrain against your default form instead of the
requested form.

I'm honestly surprised this didn't come up sooner, though I guess it would
require something like an aquatic species putting on a non-swimming
fully-body talisman over deep water.

--------------------------------------------------------------------------------
fab5fcf144 | DracoOmega | 2026-02-28 20:49:36 -0330

Allow treeform to 'swim' (ardhavat)
You still can't move, but you don't drown, either. You already have rDrown
in that form anyway, so why not?

This prevents the incredibly unfortunate possibility of quaffing
unidentified !lignification over deep water and being forced to watch
yourself get drained by emergency flight for all of your health.

--------------------------------------------------------------------------------
af5baf9f4c | Anders Papitto | 2026-02-28 19:24:50 -0330

Bugfix minimum range description for several monster spells
Call Down Lightning and Flashing Balestra have always had a minimum
effective range of 3, not 2.

Also note that Beckoning Gale has the same property.

[Committer's note: Edited commit message and also applied this to Beckoning
Gale, as the original author noted.]

--------------------------------------------------------------------------------
16ea0c675f | LiciTheCrawler | 2026-02-28 19:13:51 -0330

Display Acid Splash in monster description
This ability of jellies isn't shown in game despite being a big part of
of their threat.

Resolves #3376

[Committer's note: Made the wording a little more specific.]

--------------------------------------------------------------------------------
93cc0ea6f2 | DracoOmega | 2026-02-28 19:08:24 -0330

Fix a specific case of being able to get two active winds at once
init_four_winds() wasn't detecting the presence of the East Wind properly,
meaning that if the first time the player gained skill after loading caused
a different wind to tie or pass their magic skills, they could end up with
two winds at once.

(This wasn't very plausible to happen by accident outside of wizmode, but
technically possible!)

--------------------------------------------------------------------------------
d5ebf81aa8 | DracoOmega | 2026-02-28 18:58:31 -0330

Remove a debugging statement accidentally left in

--------------------------------------------------------------------------------
c3a491a8fe | LiciTheCrawler | 2026-02-28 18:54:50 -0330

Add Horn of Geryon to autopickup

--------------------------------------------------------------------------------
a7a852e538 | DracoOmega | 2026-02-28 18:54:08 -0330

Make sure Blorkula wakes up after recombining from bats
If Blorkula died in their sleep, sometimes when they revived they would
still be asleep. This was surprisingly inconsistent in my own testing, but
it seems reasonable to fire an ME_ALERT event on revival nonetheless.

This fixes #5082 and closes #5105

--------------------------------------------------------------------------------
f73908f27d | DracoOmega | 2026-02-28 18:39:41 -0330

Fix Duel/banishment on top of a portal entrance expiring that entrance
All portal entrance have lua markers that handle changing their feature to
a collapsed entrance once the player enters them. Unfortunately, it does so
by detecting that the player took stairs while standing on top of them and
multiple other things that change the player's level use 'stairs' in their
backend - for instance, using Duel or being banish both count as taking the
stairs. This resulted in immediately collapsing any portal the player might
be standing on.

Now we only fire a DET_PLAYER_CLIMBS event if the stair the player is
taking is the same as the one they are currently standing on, which I hope
should fix this issue without any other side-effects.

This fixes #5099

--------------------------------------------------------------------------------
a10752e07a | DracoOmega | 2026-02-28 17:54:53 -0330

Fix ranged autofight behavior regarding bushes (Kab)
The new logic considered them blockers in the same way that plants are, but
bushes' entire thing is that they don't block shots. (But are not folded
into shoot_through_actor() since you can still harm them deliberately.)

--------------------------------------------------------------------------------
432ec66a8c | DracoOmega | 2026-02-28 17:34:49 -0330

Allow stampede movements to properly Whirlwind against targets you pass by

--------------------------------------------------------------------------------
3e11f872c3 | DracoOmega | 2026-02-28 17:34:17 -0330

Don't Whirlwind against the same target more than once per movement
If the player rampaged in particular ways, they could trigger a whirlwind
attack (ie: a full set of martial attacks) against the same target twice in
the same action. eg:

.o..
@->o

Now the player should only perfom one set of attacks against any of these
monsters, no matter how many steps they move past them at once. (Rampage
already stacks with WJC extremely favorably as it is.)

--------------------------------------------------------------------------------
239433bcb3 | DracoOmega | 2026-02-27 12:09:22 -0330

Improve Salvo targeting logic
Adapting some tech from previous commits, salvo will now do a somewhat
better job at finding unobstructed targets, rather than skipping targets
that are only obstructed from direct fire, but can easily be hit by an
indirect shot.

For instance:
@O..
...O

In this scenario, Salvo used to be unable to hit the far ogre (since the
near one was in the way), but now should be able to hit both.

(At the same time, I've reduced Salvo from '5 additional targets beyond the
first' to '5 targets in total')

--------------------------------------------------------------------------------
5ec89a455f | DracoOmega | 2026-02-27 12:09:22 -0330

Improve autofight ranged targeting (and manual aiming, too)
Aiming a ranged attack directly at some intended monster is frequently
mildly sub-optimal; ensuring the attack's path also passes through some
other monsters afterward (so that it might hit one of them instead if it
misses its primary target) is almost strictly better, yet often a bit
fiddly to bother with. This commit attempts to improve QoL by automating
some of this:

Once autofight has determined a primary target (by its preexisting logic),
it will attempt to choose the 'best' spot to aim at this target while
including as many other valid targets in the beam path behind it. This
means the player will take better shots in cases those were manually
available (especially relevant with piercing weapons, where including extra
monsters in the shot path can be very important, yet the player performs so
many thousands of attacks each game that manually optimizing every one
would be unthinkable).

In addition, this improves several common pain points regarding statues and
plants (which could previously cause autofight to cease functioning
entirely). If an alternate aim exists to the primary target which could
avoid a plant or statue, it will be selected automatically. And in cases
where no such path exists, but some other monster (usually further away)
*does* have an open path, autofight will choose to target that one instead.

Since these improvements feel so friction-reducing, I have also tried to
incorporate them into manual aiming. When firing with 'f'/'F' against a
previously selected target, a similar automatic aim adjustment will be
applied to the shot path. Since this can often result in the player's shot
appearing to be aimed at a different monster than their 'primary' target
(ie: it aims at something in the back so that both it *and* the original
target can be hit), the interface will only switch its remembered target to
a new monster if the player has moved the cursor in any way. Which is to
say that if the player manually aims at a monster, each subsequent use of
'f'/'F' will focus on that monster, no matter what monster is actually
under the cursor after each aim adjustment *unless* the player does any
manual adjustment themselves).

-----

This commit is based on a PR by Odds, to which I added several
optimisations and fixes and significantly expanded. This closes #4869.

--------------------------------------------------------------------------------
d5aae33c1d | DracoOmega | 2026-02-27 12:09:22 -0330

Allow the 'F'ire menu to remember the last item the player fired
It's a common situation in combat that when you want to throw something at
a monster, you may want to throw the same thing multiple times. While this
can be accomplished by quivering the item first and then using 'f'
repeatedly, the player may not want it to displace what they use with
shift+tab and then have to set it back again afterward.

Instead, when pressing 'F', the cursor will default to whatever was fired
last. So if you want to keep tossing poison darts or curare, F+enter will
automatically reselect this item. This should hopefully be a moderate QoL
improvement when juggling multiple throwables.

--------------------------------------------------------------------------------
0c39c3cb1f | Dossy Shiobara | 2026-02-25 08:43:30 +1300

fix: correct crawl.grammar re: qual vs. qualname (#5053)
See: crawl-ref/source/libutil.cc description_type_by_name()
--------------------------------------------------------------------------------
fccfe28bf2 | Isaac Clancy | 2026-02-25 08:36:48 +1300

Fix Xom moving an altar braking travel to closest altar
Xom's "moving stairs" effect can move altars by calling `swap_features`
with the position of the altar and a nearby position to swap with.
`swap_features` moves the altar tracking for the first position to a
temporary position and then moves the altar tracking for the second
position to the first position overriding its altar tracking, it then
moves the altar tracking from the temporary position to the second
position. However, trying to move the altar tracking from the temporary
position was failing because the feature type at the temporary position
was not that of an altar so the function to move altar tracking
(move_notable_thing) thought there couldn't be any altar tracking to
move. This meant that when you traveled to the closest altar with G_ it
would travel to the temporary position (usually the top left corner of
the map) if that was closest.

--------------------------------------------------------------------------------
4107091cb8 | Isaac Clancy | 2026-02-25 08:36:48 +1300

Remove unused function declaration
The function was unused and didn't even have a definition

--------------------------------------------------------------------------------
adea0f3bd7 | Isaac Clancy | 2026-02-25 08:36:48 +1300

Fix the minimap missing out of view squares after Abyss shift
When the Abyss shifts, it moves everthing around the player (including
the player) to the center of the map. This wasn't redrawing the minimap
for the squares that had things moved onto them but was redrawing it for
squares that had things moved off them. This wasn't a problem for in
view squares as they were completely redrawn before the player's turn
anyway.

--------------------------------------------------------------------------------
0e3de29d76 | Isaac Clancy | 2026-02-25 08:36:48 +1300

Fix Abyssal rune detection nuking map knowledge
When trying to detect the Abyssal rune we would iterate over the whole
level and clear the map knowledge from any square that didn't contain
the rune until we found the Abyssal rune at which point we would stop
iterating. So if the Abyssal rune wasn't on the level or it was late in
iteration order we would clear the map knowledge for the whole level.
This wasn't a problem for in view squares as the map knowledge would be
recreated before the player's next turn. However, for out of view
squares because we didn't redraw the tiles it would look as if the map
knowledge hadn't been cleared until you reloaded the game (which redraws
the tiles using the map knowledge) also you could still find items and
altars etc in these squares when searching as the stash tracker hadn't
been reset for these squares even when these squares appeared blank
after reloading.

To fix this, don't clear map knowledge when trying to detect the Abyssal
rune as the map kowledge for squares that used to contain the rune but
no longer do should have been cleared when the rune was removed (along
with clearing the rune from the stash tracker etc).

--------------------------------------------------------------------------------
d07bcf4d7f | Isaac Clancy | 2026-02-25 08:36:48 +1300

Refactor moving areas in the abyss
We were clearing everything that wasn't near the player, then moving
everything near the player (including the player) to the center of the
Abyss but leaving the area moved from with copies of some stuff still
in it and then clearing everything that wasn't near the new location.
However, if we don't leave copies behind when moving we can skip the
final clearing of everything that isn't near the new location.

--------------------------------------------------------------------------------
77b1fc6fcf | DracoOmega | 2026-02-24 16:00:25 -0330

Fix interaction between Enkindle and Divine Exegesis (canofworms)
Compatible spells cast via Exegesis were still free if enkindled, despite
not consuming memories to cast this way (nor indicating this in the UI).
They were also receiving the Enkindle power bonus. Now these two effects
should not interact at all (spells cast via Exegesis already didn't trigger
spellclaws).

--------------------------------------------------------------------------------
f104df3b86 | DracoOmega | 2026-02-24 15:48:34 -0330

Fix being able to stampede out of mesmerism/fear (Odds)

--------------------------------------------------------------------------------
e802e43057 | DracoOmega | 2026-02-24 15:20:20 -0330

Fix a cryptic offline windows tiles crash
For reasons none of us can yet figure out, single-character ITEM: lines
seem to be misparsed, which (for different reasons we haven't figured out)
causes a crash on local windows tiles when attempting to parse these .des
files. (On Linux, it appears to merely ignore the line entirely).

'ITEM: %' ought to be valid syntax, but since it is also equivalent to
'ITEM: any' which works without complaint, let's just change it. (There are
no other instances of a single-character ITEM: line in all of Crawl)

--------------------------------------------------------------------------------
08978299a1 | DracoOmega | 2026-02-23 14:59:37 -0330

Fix a vault typo

--------------------------------------------------------------------------------
e3025feb5b | DracoOmega | 2026-02-23 14:30:04 -0330

Hopefully fix a few issues with anemocentaur wind changing
Whichever skill the player increases to 27 first should now be 'locked in'
as their prevailing wind (unless they sacrifice that skill) regardless of
another skill being trained to 27 afterward.

This (hopefully) may also fix a case of it being possible to have two
winds at once (maybe just in wizmode?).

--------------------------------------------------------------------------------
7f74e83127 | DracoOmega | 2026-02-23 14:27:36 -0330

Fix missing Stampede description (MysticSailboat)

--------------------------------------------------------------------------------
95eea011eb | DracoOmega | 2026-02-23 14:27:09 -0330

Fix a typo (Planckenstein)

--------------------------------------------------------------------------------
41e778793a | DracoOmega | 2026-02-23 14:26:59 -0330

Fix East Wind having an incorrect description (Kab)
I apparently forgot to update this when the wind effect changed (prior to
being merged with trunk).

--------------------------------------------------------------------------------
4ab6c2afdc | Nikolai Lavsky | 2026-02-23 15:14:03 +0300

task: remove the 0.34 tournament trunk reminder
This reverts commit 35ae25411.

--------------------------------------------------------------------------------
2489330cc5 | regret-index | 2026-02-23 02:27:31 -0330

Further revamped-Trove updates
 * Trove weapon drops, which were always split between using acquirement
   and otherwise random weapons, now have the latter always using each
   of the strongest weapons in each weapon skill. The non-acquirement
   weapons care about size, dual-wielding, and sacrificed hands, but
   are otherwise deliberately as blind to one's character as previously,
   so that it can still encourage cross-training pivots or demon weapon
   pick-ups or Paragon wielding without singularly just being one's
   own choices of weapons. (The acquirement weapons, of course, are
   still very tailored towards one's own skills.)

 * Characters with more Unarmed Combat skill than any weapons skill
   who can still shapeshift are given more talismans than previously in
   the weapons / magic / talisman slots.

 * Trove spellbooks have a 40% chance to have a second school focus of
   one's top magic school other than the trove's main magic skill.

 * For variety, contrast, and ameloriations of a common bias against
   heavy weapons all alike, the four classical elements Troves all have
   additional low manual chances now: Conjurations for Fire, Dodging for
   Ice, Shields for Air, and Armour for Earth. (Earth's trove has
   ponderous heavy armour and AC jewellery, Air's trove is themed after
   the Storm Queen, Fire gets the only offense-forward skill since it has
   the least general utility in its spells, and Ice gets to round out the
   set as well as still emphasize defenses for the damage-over-time
   school.)

 * Leda's Sunken Stockpile no longer places as much heavy armour unless
   one's Armour skill significantly outpaces their Dodging Skill, and now
   properly works for giving bardings to anemocentaurs and naga.

 * Trove consumable drops now have a very small chance for scrolls of
   acquirement, matching the old chance to get such in old scroll troves.

--------------------------------------------------------------------------------
9b6b51482a | regret-index | 2026-02-23 02:08:07 -0330

More Elements card tweaks
I've never been happy with gargoyles being present in something
thematically meant to be a collection of elemental beasts, and we've got
enough options now I can reasonably replace both. The card's also always
been one of the strongest Summoning deck rolls between catoblepae and
getting multiple non-hostile summons, so it can take a little bit of a
downturn in power anyway.

In the middle card power tier, fire gets lindwurms over molten gargoyles:
still a little boring, but not currently being used up by any
player-accessible Monstrous Menagerie). In the top card power tier, earth
gets mountainshells over war gargoyles: a unique access to a warded summon,
and a summon which can do wide AOE damage without hurting allies if one
can sufficiently prevent enemies from getting close. This should still be
reasonably strong, and unique enough to work with alongside plenty
of other future slow Nemelex adjustments.

--------------------------------------------------------------------------------
abade62c61 | regret-index | 2026-02-23 02:08:03 -0330

Give Mlioglotl less distracting animations (canine)
In my slow but continuous quest to remove the vast majority of screen
flashes as recurring effects in the game, Mlioglotl's corruption is
particularly conspicuous considering the obvious Abyssal terrain effects
afterwards and as something particularly annoying when used by a bound
soul. This new effect, made with some mild manipulation of ontoclasm's
Abyss rock wall tiles, should both look uniquely dramatic, not be quite
as glaring when cast, and should even be slightly faster to animate than
previously since there's lots of individual effects happening to thus
not miss.

(Hypothetically, it'd be nice to use this effects set for a Bend Space
monster or something else eventually, but this should be fine for this
purpose right now. I've got something of another upcoming idea for it,
anyway....)

--------------------------------------------------------------------------------
262bf80f53 | regret-index | 2026-02-23 02:07:07 -0330

Tweak more shop prices
 * As very earlygame-limited items, the lowest-tier talismans (quill and
   inkwell) are duds enough in most shops past earlygame that they can
   afford to cost even less than they currently do. (It can also help
   encourage a little bit more going into Shapeshifting beyond the
   slot-limited species and the Shapeshifter background.)

 * Contrariwise, the two top-tier talismans are so valuable for characters
   who will ever seriously consider them that they can cost a bit more
   more than previously, if not quite at the same level as 1880023 set and
   which f2c00fc changed.

 * The three heavy armour ally-school egos (command, resonance, and death)
   all have enough of an innate disadvantage in build narrowness that they
   can all cost less, to help encourage such narrowed builds.

 * Shadow dragon scales and steam dragon scales are also now cheaper.
   The former is a highly narrow build item that feels somewhat difficult
   to sell outside of randarts, and the latter has been somewhat taken
   over in functionality by acid dragon scales (between an occasionally
   relevant resist, an armour penalty too minimal to matter, and an
   equally very early starting appearance).

--------------------------------------------------------------------------------
e745ec4121 | regret-index | 2026-02-23 02:07:07 -0330

First new vault review + new vault tiles for 0.35
Two new tilesets for vaults, to help slowly push forward on the eventual
capacity to help more overflow altars not solely rely on enemies or
lategame decorative features, as well as to help vaults stand out from a
visual default:

* A common necromancy-themed floor set for various undead vaults, reusing
  ontoclasm's old Crypt floor tiles before they were replaced with
  CanOfWorms's domino set in d753fea and ebc010b, mixed with CC0 bones
  by finalbossblues and Denzi's old rough floor + Tomb floor tiles.

* A rare weird demonic rock tile, combining CC0 rpg cliff and vine
  graphics by finalbossblues with CC0 metal frames and abstracted grass
  surfaces by surt.

Other notable changes:

* drop_trap (the pressure plate micro-vault that drops spiders, snakes,
  and klowns) now has slightly less spawns in all three cases, but now
  also reliably places a staircase near it, allowing it to have more
  functionality beyond being an obvious trap only to be used for free
  experience when one can handle the spawns by making the trap interfere
  with an individual stair and stairdancing by it.

* The vaults_shipping_containers vault series now have a guaranteed
  minimum of reward and threat deployed within them, as the highlighting
  of hard V vaults with floor_metal_gold in 011df5c makes it far more
  conspicuous when they otherwise don't contain any particularly notable
  threat count.

* Since blade talismans are now potentially a game-winning form for quite
  a few characters, the Elf:2 Hall of Blades now only contains one 33% of
  the time instead of 50%, matching the 33% chances for specific talismans
  from the Crypt shop. As a mild bit of compensation for this, the vault
  now also contains a 2% chance for a random weapons manual, to allow
  players to occasionally pivot to the low-investment rare one-handers or
  to fully invest in the high-investment rare two-handers the vault
  previously once contained as its loot.

* Some underperforming abyssal rune vaults of the past few versions have
  been tweaked upwards, due to the increased speed of endgame characters
  acquiring said rune after 99aa80d being still pretty high even after
  be59399.

* The moth of wrath Necropolis subvaults have been nerfed once more,
  including more extensions of surrounding the moth in grates until
  post-Lair. Additionally, necropolis_ghost_earth_crest now gets a
  pre_lair_d setting using newer monsters to reduce the presence of both.

* ice_cave_small_demon now has slightly more item rewards, to bring it
  closer to the rough average of other ice cave rewards.

* Trove and ziggurat entry vaults have been adjusted to reduce lines, as
  well as making the former clash less visually with Shoals when placed
  there.

* To let the player ghost + negative energy Ziggurat floor set not get
  completely derailed by orbs of entropy, said orbs have a bit lowered
  weighting in that set, and are instead highlighted in a new acid themed
  Ziggurat floor set.

--------------------------------------------------------------------------------
d57cf6e2a9 | DracoOmega | 2026-02-22 18:46:48 -0330

Fix strange behavior with West Wind rampage shot and pacified monsters
If the player rampaged towards a neutral enemy while worshipping a god that
would be upset for attacking them, the game would still partially act as
though you'd fired this shot (pushing monsters back, giving a Salvo stack,
and seeming to fire an arrow), but the arrow would only travel a single
tile, ensuring it could never hit anything.

The cause of this was rather opaque but essentially one part of ranged
attack code was seeing that the attack would hit a monster that could cause
penance and treated the attack as though it was aimed with . (at the tile
immediately next to the player), but the wind shot tracer itself saw it as
an enemy that could be hit, and treated it as if it was a valid shot.

I am fixing this by making stop_at_allies itself also stop before neutral
monsters that would upset your god (the fact that it didn't already
probably meant it was possible to get Ely penance with Valour sword beams,
but now should not.) and also causing the auto_abort argument of
do_player_ranged_attack to imply the use of stop_at_allies automatically.

--------------------------------------------------------------------------------
92bac972ce | DracoOmega | 2026-02-22 16:40:12 -0330

Shuffle the ordering of species in the Intermediate category
Move oni and revenants up and tengu and spriggans down.

--------------------------------------------------------------------------------
3cbf687c23 | DracoOmega | 2026-02-22 16:40:12 -0330

Add autofight_no_stampede option
This causes autofight to prefer to attack in place rather than stampede
forward and move enemies (when eligable).

Since doing so also ends the stampede state, which can often be bad for the
player, it is off by default, but I suspect some players will appreciate
the option existing nonetheless.

--------------------------------------------------------------------------------
652d35cfb0 | DracoOmega | 2026-02-22 16:40:12 -0330

Rework Zephyr
One of the most vanilla unrands still in the game, Zephyr already shared
the name of one of the four winds, so it felt natural to borrow some of its
mechanics as well.

Zephyr loses its speed brand and in exchange, attacks with it count as if
the wielder always had the Salvo status that anemocentaur's west wind
grants - ie: they fire at up to 5 other unobstructed targets at once. It
gains a couple more plusses and dex to partially compensate for its
unbranded base damage and trades SInv for Fly.

--------------------------------------------------------------------------------
4be80ac0e2 | DracoOmega | 2026-02-22 16:40:12 -0330

Rename Amulet of the Four Winds to Amulet of Tranquility
Since 'four winds' is now deeply linked to an unrelated species mechanic
(and the item never had much to do with 'wind' in the first place).

--------------------------------------------------------------------------------
7d6938e576 | DracoOmega | 2026-02-22 16:40:12 -0330

Implement the South Wind (stabber)
This wind (granted by the player's highest skill being either stealth or
short blades) causes the player's effective stealth to be increased by 50%
while rampaging and also causes any successful stab against an enemy to
make your next rampage movement (that *doesn't* push anything, ie:
non-stampede) take no time. In other words, dispatching something
stealthily can allow you to 'chain' between nearby targets in a whirlwind
of death.

The high-roll potential of this is very flashy, though the average case is
likely weaker than the other winds. However, in my experience, rampage is
already such a natural stabber synergy that less incentive is required to
make the player actually want to rush in - after all, while casters and
archers would normally prefer to hang back, stealth stabbers *already*
want to get into melee as rapidly as possible in many cases. And this
synergizes with most existing stab-enablers without obviating the need for
them.

(I admit to having some concerns over how unbounded instant chain stabs
might be with Usk, but it's also very flashy and fun, and I'm not certain
how to curtail the wildest excesses without kneecapping it in the average
case - ie: enforcing a cooldown between instant moves - so let's see how
it works out in practice first.)

--------------------------------------------------------------------------------
962f0170da | DracoOmega | 2026-02-22 16:40:12 -0330

Implement the East Wind (caster)
This wind (granted by the player's highest skill being a magic school)
causes the player to recover a small percentage of their max MP whenever
they make a rampage movement and also apply a new Exposed debuff to all
enemies within 2 spaces of themselves (both those who were already there
and any that approach to that distance before the player's next turn, to
make the range feel more intuitive).

Monsters who are Exposed take 35% increased damage against non-attack
sources of damage (except poison), have -30 willpower, and the accuracy
all beams against them is significantly increased.

In addition, player with this wind will have their Stampede state
sustained by spellcasting (so even if they pause a rampage to cast spells,
they can resume trample enemies on their next move rather than getting
'stuck').

Overall, this aims to encourage casters to actually get in close to
enemies (rather than just ping-pong back and forth between things at a
distance, which was often preferable for armataurs when possible), giving
them significantly better burst damage when they do so, and then allowing
them to push through enemies afterward to refill and gain space at the
same time. It even synergizes with wands and a number of different god
powers (it's 'non-attack damage' rather than 'spell damage' specifically),
which I think could be interesting - dive into crowds to unleash Deal Four
Destruction or Upheaval with more damage per piety than otherwise
possible.)

-----------------

Exposed status icon made by regret-index, using a CC0 weapon icon by Shade.

--------------------------------------------------------------------------------
080e5f9f32 | DracoOmega | 2026-02-22 16:40:12 -0330

Implement the West Wind (archer)
This wind (granted by the player's highest skill being ranged weapons)
allows rampaging to interact with ranged combat and gives powerful
benefits for doing so.

Whenever an anemocentaur blessed by the West Wind rampages towards an
enemy, they will push all enemies in a straight line in front of them back
a short distance and unleash a special wind-blessed shot that pierces
enemies and does increased damage. Whenever they perform an attack this
way, they also gain a stack of Salvo, which causes their next normal
attack (ie: not another rampage shot) to fire at up to 5 additional
targets that they have an unobstructed line of fire to (ie: never in a way
that would hit the same target repeatedly).

Moving towards enemies is the *last* thing an archer typically wants to
do, so the bonus for doing so is quite high here (after all, you are
voluntarily giving up several normal attacks you could have made in the
length of time the gap closed that much). But playtesting suggests this
creates a fun and much more dynamic archer experience than usual,
encouraging the player to rapidly change their position in combat,
sometimes even deliberately splitting groups apart to allow their followup
salvos to hit many enemies at once.

(And even a centaur subspecies wouldn't really feel like a centaur if they
weren't good at archery in their own way, no?)

--------------------------------------------------------------------------------
53da0082c4 | DracoOmega | 2026-02-22 16:40:12 -0330

Implement the North Wind (melee)
This wind (granted by the player's highest skill being UC or a melee
weapon, aside from short blades) causes 70% of the damage the player
sustains while rampaging to be converted into a new Indomitable status.
While Indomitable, the player's regeneration is massively increased (by a
rate dependant on their max HP) until all of this converted damage is
eventually recovered. In effect, this means that the player can shrug off
a majority of all damage they take while stampeding, so long as it isn't
happening too rapidly (or they are able to create a breather for
themselves).

This makes it so the player is often safer while performing
otherwise-reckless actions than they would be standing still, allowing
them to dive into enemy groups with relative impunity and pull off some
wild (and hopefully fun) maneuvers.

(I think the Indomitable status also has potential future applications as
a sort of 'delayed heal' that could be used in other contexts.

--------------------------------------------------------------------------------
e12fab6a22 | DracoOmega | 2026-02-22 16:40:12 -0330

Replace Armataurs with Anemocentaurs
Armataurs have had a very chequered design history, cycling through
various names and different mechanical identities over the years. Several
individual gimmicks in the past were successful enough that they were
pulled out into other homes (eg: Vhi's and doubled potion heal), but
armataurs themselves have always been unpopular (and are dead last in pick
rate in recent versions). Many people have speculated that their flavour
just doesn't resonate with people nearly so well as the centaurs they
originally replaced.

At the same time, armataur's current rollpage mechanic is also somewhat
troubled. Many characters struggle to get real value from it at all (in
part because of the very non-linear nature of the bonus it gives per step
versus how many steps a character can realistically take before being
stuck in melee) and yet its synergy IMB is extreme, allowing for enormous
regeneration and effectively unlimited MP in a multitude of scenarios.
This leads to a very 'polarized' experience for a core mechanic; an
armataur that can use IMB and one that can't are practically different
species (and the latter isn't a very impressive one).

And yet the gameplay of wildly bouncing around like an invincible pinball
*has* gotten a positive response from players (and AtCj, so this is an
attempt to iterate on the spirit of that gameplay in a fashion that is
both better balanced and less narrow (ie: not reliant on a single spell),
while at the same time overhauling the species flavour into something that
players still express nostalgia for.

Anemocentaurs are subspecies of centaurs that are distant descendants of
the Four Winds (based on the Anemoi of Greek myth, which were
alternatingly depicted as either men or horses). They inherit armataurs'
focus on Rampage and go one further: if their last action was a rampage
move, they can continue to charge *into* enemies, pushing entire lines of
them backwards at once. This allows them to continue stampeding, even when
surrounded, without the need for specific spells to create distance (and
in doing so, allows for novel tactics like charging forward to separate a
single enemy from a crowd or push things back towards a safe area).

Like armataurs, they also receive significant benefits from sustained
rampaging to encourage them play more recklessly. However, exactly *what*
benefit they receive depends on a different unique mechanic. Leaning into
their species flavour, each of the Four Winds provides a different
rampage-related bonus to the player, and which wind is active depends on
the player's highest skill (as divided into four archetypes):
 -Melee (UC and melee weapon skills, except short blades)
 -Archer (ranged weapon skill)
 -Stabber (short blades or stealth skills)
 -Caster (all magic skills besides spellcasting)

This bonus (available starting from XL 5) adjusts dynamically as the player
trains skills, preventing the player from being locked into a single
archetype as they gain levels and develop their character.

In terms of aptitudes, anemocentaurs are broadly similar to armataurs, but
with much better Air, Dodging, Ranged Weapons, and Invocations (reflecting
their heritage), mildly better Translocations and Fighting, and less
outstanding Armour (the juxtaposition of a armataur's +3 apt with Deformed
Body was a little confusing for some players and anemocentaurs can more
easily lean on the dodging side for defenses, despite their size).

Details and implementation for each of the four winds will follow in
subsequent commits.

----------------------

Anemocentaur base and form tiles were made by regret-index, using the human
and armataur tiles of prior forms alongside Denzi's old monster and player
centaur tiles, jpeg's lich form centaur tile, and ontoclasm's edit of
Bloax's monster centaur tile. Stampede underlay made by Darby. Mutation
icons combine that with a CC0 shield by SnoopethDuckDuck, Ontoclasm's old
protection ego and current penetration ego icons, and some tiny CC0 weapon
icons by Shade.

--------------------------------------------------------------------------------
34c26f4581 | DracoOmega | 2026-02-22 16:30:17 -0330

Add an icon for the Mute status (regret-index)
(Currently only used for Zin's Recite, but it's still useful to see when
something is perma-silenced.)

--------------------------------------------------------------------------------
4ea262ac80 | DracoOmega | 2026-02-22 16:30:17 -0330

Refactor get_wall_ring_spots
Pull out the cell exclusion logic so that the general process can also be
applied with other criteria.

--------------------------------------------------------------------------------
2d773231f8 | DracoOmega | 2026-02-22 16:30:17 -0330

Fix broken transparency on some player parts in local tiles
Bizarrely, player doll pieces were drawn front-to-back in local tiles. A
comment says this was so that ghost translucency would be handled better,
but also had the unavoidable effect that any pieces with translucent pixels
would be blended with the *floor* rather than what they were on top of. In
a few cases, this looked similar to carving a chunk out of the player
holding them.

Player ghosts still draw front-to-back as a fairly unsatisfying way to
composite their parts together 'before' blending with the floor. This is
still incorrect when using any parts that are ordinarily translucent too,
but unlike players, I'm not sure they use any these ways (and to be honest,
ghost tile picking is very wierd anyway.)

Really, this sort of thing should be done by drawing to an offscreen buffer
first and then drawing to the screen, but I don't even want to contemplate
what might be involved in getting Crawl's tile rendering code to actually
do that.

--------------------------------------------------------------------------------
702eef4518 | DracoOmega | 2026-02-22 16:30:17 -0330

Lower revenant evocations and staff aptitudes by 1
Partially as a cautionary response to the previous commit making enhancer
staves a significantly more attractive spellclaws option (and one I would
rather not dominate over standard melee weapons), and partially because
revenants are so strong that a mild nerf to something outside their core
focus (such evocations) wouldn't go astray.

--------------------------------------------------------------------------------
35ac873915 | DracoOmega | 2026-02-22 16:30:17 -0330

Have staff damage and unrand pseudo-brands contribute to total_damage_done
This already included *most* damage done by attacks, such as normal brands
and aux attacks, but overlooked staff damage and until now couldn't work
with many unrands.

(In practice, what this means is that spellclaw attacks while Enkindled can
now heal more when using such weapons.)

--------------------------------------------------------------------------------
2bee245bc8 | DracoOmega | 2026-02-22 16:30:17 -0330

Allow unrand melee_effects to call attack::inflict_damage() directly
By passing in a pointer to the melee_attack which triggered it.

Most attack-related damage passes through this function (such as brands)
and unrand 'brands' skipping this meant that their damage wouldn't appply
reaping from the Skull of Zonguldrok, count as inflicted damage for
Enkindled spellclaw attacks, and could wrongly trigger orbs of pyromania.
(It might also have resulted in the wrong ktype in some cases, though this
is less clear to me.)

I'm not 100% happy to do this via making an 'internal' method public, but
it seemed an acceptable sin for now, anyway. Note also that this only
applies to simple applications of damage and not cases where an unrand
directly cast a spell (eg: Arc Blade).

(At the same time, I refactored out the mondied argument of melee_effects
since it was already 100% determinable on melee_effects side anyway. This
is only *almost* true for attacker/defender, since melee_effects can be
called outside of a melee_attack for shields, and it would cause a bunch
more boilerplate anyway.)

--------------------------------------------------------------------------------
277963f2b9 | DracoOmega | 2026-02-22 16:30:17 -0330

Generalize Royal Jelly spawning behavior when instakilled
MCC and Grand Finale both had special code to ensure TRJ still spawned
jellies when instakilled by this (since no damage was dealt). Rimeblight
did not (allowing the player to skip 20% of the total spawns) and the
recent removal of INSTANT_DEATH would also allow Finisher and Throatcutter
to skip this.

Instead of needing to handle it everywhere TRJ might die, handle it in
monster_die() itself - spawning jellies for real kills if any HP still
remains.

(Also slightly tweak messaging for when this happens.)

--------------------------------------------------------------------------------
0f24d93414 | DracoOmega | 2026-02-22 16:30:17 -0330

Remove the see_source argument of ouch()
Used only to control whether to reveal the name of the damage source when
taking notes about becoming injured (so that invisible monsters would just
be noted as 'something'). It turned out to be redundant with the way the
source's name was determined in the first place - which would result in
'something' even when see_source was true, but the player couldn't actually
see it. (This was probably actually a good thing, since many places called
it with a value of true even when the source was unseen, which would
otherwise be an information leak.)

Also, don't construct a scorefile entry every single time the player is
injured, just to check if a note *should* be taken about it. Instead only
do so if the player's HP is low enough (the default is 5%, so 'extremely
rarely')

--------------------------------------------------------------------------------
dcb2b295c4 | DracoOmega | 2026-02-22 16:30:17 -0330

Remove INSTANT_DEATH and split player death code out of ouch()
Non-damage-based deaths (and 'deaths' such as winning the game) were
handled by calling ouch() with damage = INSTANT_DEATH. But since that isn't
'real' damage, a lot of other code needed to exclude it from regular damage
modifiers.

Instead, pull player death code out of ouch() into a new player_die() and
call this directly for non-damage-related deaths.

The few uses of INSTANT_DEATH for monsters now also call monster_die()
directly instead. This has a few minor effects: instakills from Finisher,
Throatcutter, or chopping off the last head of a hydra, no longer transmit
damage with Pain Bond, Injury Mirror, or Anguish equal to the monster's
remaining HP, nor give Usk piety, cause certain on-damage effects like
shock serpent retaliation.

--------------------------------------------------------------------------------
191e884c2c | DracoOmega | 2026-02-22 16:30:17 -0330

Remove an unused function declaration

--------------------------------------------------------------------------------
348c1043aa | DracoOmega | 2026-02-22 16:30:17 -0330

Make it a bit clearer that apply_damage_modifiers() is monster-only
Players use entirely different functions.

--------------------------------------------------------------------------------
3bae77448c | DracoOmega | 2026-02-22 16:30:16 -0330

Pull some parameters out of melee_attack into attack
So that ranged_attack can eventually use some of them.

--------------------------------------------------------------------------------
1f3ad7a9dc | DracoOmega | 2026-02-22 16:30:16 -0330

Split fight_melee() into a method each for players and monsters
This method already shared essentially no code between its internal
player and monster codepaths and was never called in a single place with
an argument that wasn't already definitively either a monster or a player
100% of the time.

Also, it could result in ranged attacks when called with a player attacker
(not just melee ones) and will have even more of that in the near future,
so it felt reasonable to give it a different name.

These are now mons_fight() and player_fight() respectively. There should be
no functional change.

--------------------------------------------------------------------------------
137d089076 | DracoOmega | 2026-02-21 23:14:27 -0330

Fix randart Bane scarves having hidden AC (Back-form)
Randart armour that rolls a Bane artprop gets bonus plusses to make it a
little more appealing. But it gave these plusses even to armour that
cannot ordinarily have any (eg: scarves and orbs). In scarves case, these
plusses were hidden but still functioned to give additional AC.

Possibly randarts of these types should get some other perk when AC is
unavailable (or simply be disallowed), but for now I am changing the
numbers a little so that they simply don't get anything (besides the bonus
positive artprop budget that negative artprops always give).

--------------------------------------------------------------------------------
01c83e3be8 | DracoOmega | 2026-02-21 21:29:48 -0330

Remove a couple leading spaces in monster visual speech
This also caused them to not be properly capitalized when printed.

--------------------------------------------------------------------------------
ab51d6d76d | DracoOmega | 2026-02-21 21:29:05 -0330

Fix webtiles sidebar not always updating wielded item after letter swap
If the player swapped the letter of a wielded weapon with a letter
containing a different item of the same non-artefact properties, webtiles
would consider them identical and not update its copy of the player's
inventory. This meant that the sidebar would claim the player was wielding
a different weapon altogether (ie: what is now internally occupying that
inventory slot, and NOT what they are actually wielding).

Rather than examine the full list of every item's artprops every time we
send the player, simply flag moved items as 'dirty' when remapping happens,
which should avoid this problem.

This fixes #5075

--------------------------------------------------------------------------------
b5d556b375 | DracoOmega | 2026-02-21 01:32:50 -0330

Make FLOOR_NERVES_BLUE a bit brighter
It was excessively dark (appearing almost black against light backgrounds).

--------------------------------------------------------------------------------
d4fc6e05a8 | DracoOmega | 2026-02-21 01:32:50 -0330

Be more specific when warning about changing slow-swap equipment
When the player attempted to change equipment in a way that would take
multiple turns while in danger, it gave a prompt that assumed this was
because enemies were nearby. However, i_feel_safe could return false for
things like being lethally poisoned or standing in a dangerous cloud.

Instead, refactor i_feel_safe to be able to return the reason for not
feeling safe and use this in the actual prompt instead.

This fixes #5070

--------------------------------------------------------------------------------
f7d277bd9f | DracoOmega | 2026-02-21 01:32:50 -0330

Fix monster encounter messages being cryptic in rare circumstances
If a monster that wielded two weapons had a noteworthy weapon in its second
slot and a mundane one in its first, and was encountered the same time as
other monsters, the abbreviated encounter message could result in things
like "The ettin is ." (since it was skipping the weapon description due to
the first weapon being mundane.

This fixes #5074

--------------------------------------------------------------------------------
b7ba641fff | DracoOmega | 2026-02-21 01:32:50 -0330

Fix anacondas taking no damage from cactus giant spines
Spines can only do damage to the first enemy attack of a round, and an
anaconda's first attack is constriction that the cactus giant is immune to
due to its size.

This was accidentally broken by 17f7e79 (as apparently one of the only
other things that cared about the value of effective_attack_number)

(This did not affect most constrictors as almost all of them have
constriction as their last attack.)

This fixes #5085

--------------------------------------------------------------------------------
21a1b92885 | DracoOmega | 2026-02-21 01:32:50 -0330

Remove a validation check for ghosts with rElec-
It seems to function just fine on ghost_demons, so it's not clear to me why
this veto was even here in the first place. (rElec- didn't used to be in
the normal mutation pool, but had been possible as part of Qaz wrath for
many years, so it was probably always possible to hit this veto; merely
incredibly unlikely).

--------------------------------------------------------------------------------
e33c9a7d7b | DracoOmega | 2026-02-21 01:32:50 -0330

Remove some unused code
Slime can't generate hatches at all since 0.34's layout changes.

--------------------------------------------------------------------------------
c9b9d1db90 | DracoOmega | 2026-02-21 01:32:50 -0330

Properly mark unidentified talismans evil/chaotic as appropriate (Colgate)
'Unidentified' talismans (such as one might find in an antique shop) were
not getting marked as evil (for death/sanguine) or chaotic (all), even
though this designation only depended on information that is known
unambiguously while unidentified.

--------------------------------------------------------------------------------
117f65c6ef | DracoOmega | 2026-02-21 01:32:50 -0330

Allow deconstructing forgecraft allies with a ranged weapon (sed_no_one)
(ie: allowing ctrl+direction to kill them when adjacent)

--------------------------------------------------------------------------------
118dc0aa31 | DracoOmega | 2026-02-21 01:32:50 -0330

Use a slightly more specific message channel for a warning

--------------------------------------------------------------------------------
40fb4cd29f | DracoOmega | 2026-02-21 01:32:50 -0330

Fix the force_more for seeing a dancing distortion weapon (Lici)
It worked in cases where multiple dancing weapons were first encountered at
the same time, but not if you walked into the presence of just one.

(Given how many different force_mores are needed for this, I can't help but
wonder if it should be different option that didn't need to rely on
string-matching here. Something like unusual_monster_items but for
encounter messages?)

--------------------------------------------------------------------------------
f0d4fc607c | DracoOmega | 2026-02-21 01:32:50 -0330

Fix a typo (Snakku)

--------------------------------------------------------------------------------
7b04bc261b | DracoOmega | 2026-02-21 01:32:50 -0330

Fix banished orb guardians not activating tesseracts
Accidentally broken by 102593572.

--------------------------------------------------------------------------------
58ae5a1fc0 | DracoOmega | 2026-02-21 01:32:50 -0330

Fix a crash with chaoslaced monster attacks
If the chaos brand tried to apply to a monster who'd already been reset,
the Crawl would assert on a resist check of MONS_NO_MONSTER.

(Actually injuring the dead monster would have already been vetoed later
on, but it couldn't reach that part.)

--------------------------------------------------------------------------------
1926f35598 | Isaac Clancy | 2026-02-21 16:43:39 +1300

Remove unused members from pyromania_fineff

--------------------------------------------------------------------------------
e4a09507ca | Isaac Clancy | 2026-02-21 16:21:34 +1300

Fix final effects merging with others of a different type
Some final effects such as `pyromania_fineff` would merge with any other
final effect by discarding the other final effect resulting in the other
never running. This is intensional when both are of the same type
(running two `pyromania_fineff`s is the same as running one due to its
cooldown), however, this isn't correct if the other is of a different
type.

--------------------------------------------------------------------------------
511dc2e70d | gammafunk | 2026-02-11 19:19:57 -0600

Update a dependency to fix python lint
The pkg_resources module has been removed from Setuptools, and importlib
is the preferred way to get this information. Update the flake8-commas
modules to a version that uses this approach, so that the python lint CI
job can complete.

--------------------------------------------------------------------------------
bbfe210076 | DracoOmega | 2026-02-08 13:49:35 -0330

Prompt before transforming in ways that would lower max HP a lot (various)
If the player tries to put on a talisman or use a bauble which would
lower their max HP by more than 10%, they are now prompted about this.

--------------------------------------------------------------------------------
0642ae1248 | DracoOmega | 2026-02-08 13:49:31 -0330

Fix a mesmerism-related crash (Lici)
If the player was force-mesmerised by a monster (such as by the Obsidian
Axe) and this monster ceased to exist for reasons other dying
conventionally (such as an Abyss shift), attempting to remove the forced
mesmerism key from the monster would crash.

It occurs to me now that this approach may be slightly unsafe, as the key
will persist on monsters in such cases, if they are reachable again. Though
it is plausible the bugs from this are quite marginal (eg: get mesmerised
by a siren while wielding the obsidian axe, have the siren fall down a
shaft, take the axe off, run into the siren and get mesmerised by their
own spell: fearing them no longer breaks it).

But fixing this might require a somewhat larger refactor (ie: storing
forced/not-forced status in the beholder list itself), so I am leaving it
alone for now.

--------------------------------------------------------------------------------
ca4ab9d3b7 | DracoOmega | 2026-02-08 13:49:27 -0330

Fix undefined behavior when killing a transiting bound soul via daction
Binding a soul with Yred immediately kills any other bound soul the player
may have. This is done via daction, and if this daction is applied to a
transiting monster (ie: one not currently on any level, likely due to being
banished), several bad things can happen.

Since monster inventories are stored as indicies into env.items on the
current floor, an in-transit monster that hasn't been placed yet will have
arbitrary items from the current floor appear to be in their inventory,
which they will then try to drop on whatever coordinate they last left
whatever floor they were on. This might be inside a wall, causing other
issues, and also means that any real items they were holding will be
permanently lost.

The way Crawl handles both monster inventories and other floors makes this
a bit tricky to solve, so I have opted to instead give 1 aut of
SLOWLY_DYING to a transiting bound soul instead. This should still kill it
immediately upon entering the floor it's transiting to, but at a time where
its behavior is better-defined.

(This entire scenario makes me worry that other dactions that can kill
transiting monsters may have other bugs, but this is the only one that can
drop items, so it's possible there isn't any *consequential* bugs with
other dactions at the moment.)

--------------------------------------------------------------------------------
1b2965c119 | DracoOmega | 2026-02-08 11:02:04 -0330

Remove an assert that is reachable through a valid event sequence
While it seems sensible to ensure that any monsters on the acting stack are
valid, it is possible for non-buggy scenarios to involve this not being the
case. A recent example involved a level excursion where a monster died
(which adds it to the acting stack during its death code, then removes it
afterward). The monster prior to it on the stack was back on the original
floor and thus inaccessible (thus the reference was to an invalid monster
only until the excursion ended).

This feels... dicey, since monsters on this stack are necessarily pointing
at different monsters than they're 'supposed to' during an excursion, but
I think the only consequence of this is ocassionally incorrect debug info
in crash logs (and it should be very hard to hit the circumstances where
this is true). In any case, it feels better than rarely crashing through
no fault of the player's.

--------------------------------------------------------------------------------
a6cf1f4fed | DracoOmega | 2026-02-08 10:51:37 -0330

Give freezing cloud a warning prompt again
The previous warning prompt was lost through a combination of 9513272 and
9726027 (though relying on essentially monster beam code was extremely
dicey in the first place...)

Freezing cloud's self-harm warnings have always been more intrusive than
most spells (with them commonly warning about a 1-in-48 chance of hitting
yourself for minor damage), and some players did prefer them being gone.
But at the same time, this means no warning about things like rC-
characters obliterating themselves with a 100% chance to hit cloud.

I think that a slightly more nuanced warning would probably have better
QoL, but in the meantime I'm putting *something* back in the game.

--------------------------------------------------------------------------------
35ae254118 | gammafunk | 2026-02-06 14:08:43 -0600

Add the 0.34 tournament trunk reminder

--------------------------------------------------------------------------------
a667b5b5df | DracoOmega | 2026-02-05 18:37:23 -0330

Print more useful error messages when a ghost fails validation
If any single ghost in a bones file failed any of the many checks in
debug_check_ghost(), the entire file would be rejected with an error of
'buggy bones file' and then deleted. This gave virtually no useful
information to track down or fix the actual cause of the problem, so
instead print a different specific error message for each source of
failure. This should aid future debugging.

--------------------------------------------------------------------------------
d238440321 | Nikolai Lavsky | 2026-02-06 00:19:33 +0300

docs: fix changelog typos

--------------------------------------------------------------------------------
283e8b9c10 | RypoFalem | 2026-02-05 10:58:00 -0330

fix: Prompt for talisman warning inscriptions and excommunication
Talisman !P (Put on) and !R (Remove) inscriptions are now respected.
(As well as !*, implicitly.)

Talismans that would excommunicate you now give you a warning. This
technically also affects rings and amulets. Though, as far as I know
putting on rings and amulets that your god hates merely give you
penance each turn. I suspect the warning for penance was intentionally
absent so I didn't change that but if there's a ring or amulet that
would instantly excommunicate you, there will now be a prompt for that.

The items were already highlighted a scary red by default which was
warning enough for the issue to go unnoticed.

--------------------------------------------------------------------------------
41e4ec47ad | CrawlOdds | 2026-02-05 10:55:28 -0330

Don't summon trees under monsters who can't live in them
This is especially awkward for creeping plasmodia, who "flop about on
dry land" in response. Earth elementals cope better, but it still seems
like a bad idea to violate habitability rules like this.

--------------------------------------------------------------------------------
52370782d7 | DracoOmega | 2026-02-04 14:41:28 -0330

Fix monster Portal Projectile not firing proper ranged attacks
Portal Projectile was firing just the beam part of its ranged_attack_beam
without the ranged_attack attached (because it bypassed fire() entirely).

The most obvious result of this was an assert when trying to drop a
throwing net that was shot this way, but launcher attacks done this way
were also using the default beam damage instead of performing an actual
ranged attack. This meant that (no matter what was being fired) they did
10d10 damage with a to-hit of -1. This made it nearly impossible to
actually hit anything, but if they *did*, they could do far more damage
than expected.

(Using an external unwind_var like this is a bit ugly, but using fire()
with source=target causes some minor animation issues that I am not going
to try adjusting during feature freeze.)

--------------------------------------------------------------------------------
ef146b28bf | Isaac Clancy | 2026-02-04 17:54:20 +1300

Fix rebuke redirected attacks sometimes giving you penance (Wizzzargh)
If you attacked a monster that had a rebuke weapon equipped and it
redirected your attack to hit an ally, this would place you under
penance with no warning if your god didn't like you attacking allies.
However, it shouldn't give penance as it is an involuntary attack.

--------------------------------------------------------------------------------
8023c0469f | Isaac Clancy | 2026-02-04 16:30:14 +1300

Fix a crash when a monster starts its turn in a cloud of blastemotes
Usually it's not possible for a monster to start its turn in a cloud of
blastemotes as the cloud explodes when the monster moves onto it.
However, if a monster is created in a cloud of blastemotes, the cloud
will explode at the start of the monsters turn. This resulted in a crash
as the code to apply a cloud to a monster was triggering the blastemotes
which deleted the cloud of blastemotes and then trying to get which
actor created the cloud.

--------------------------------------------------------------------------------
3ba5078521 | DracoOmega | 2026-02-03 18:12:36 -0330

Properly note the currently acting monster in crashlogs
I swear that at some point in the past this worked properly, but I cannot
find any commit removing it.

In any case, it would sometimes be helpful (wierdly enough, we still note
this properly when a monster is being given energy and even when it's
*shouting*, but not during most of its own turn.)

--------------------------------------------------------------------------------
4aabab6204 | DracoOmega | 2026-02-03 17:27:18 -0330

Fix shooting stars sometimes pulling enemies closer (Odds)
Seekers (like foxfire and shooting stars) can be triggered by monsters
walking into them, which is internally happened by monster swapping code.
Design-wise, this is so that foxfire cannot jam enemy movement indefinitely
in confined spaces, but it results in a strange effect with shooting stars:
If a monster 'swaps' with a shooting star, when it is hit by it, the star
is now 'behind' it and its knockback will push it forward instead of
backward.

Resolving this was somewhat complicated, but essentially we 'pretend' that
the shooting star is still one tile further in the direction the monster
just moved (and also kill it early, so that it gets out of the way of the
knockback). This should result in the star knocking the monster back to
the position it was at at the start of its movement.

--------------------------------------------------------------------------------
0555f3032b | DracoOmega | 2026-02-03 14:03:06 -0330

Fix blade form AC reduction fakemut description (Rypofalem)
Since 44653be changed how body armour percentage penalties worked for that
this function returned negative numbers instead of positive ones, blade
form always claimed armour was 'slightly less effective' (no matter how
much less effective it was).

But even if it worked as intended, blade forms new numbers meant that it
wouldn't even be possible to see the strongest message unless below
minskill. Instead, rescale so that it better matches the form's
progression.

--------------------------------------------------------------------------------
00ada43b0a | DracoOmega | 2026-02-03 14:03:01 -0330

Fix slymdras shedding too many heads when off-level
Slymdras are only supposed to shed excess heads when above 4, but a bug
resulted in them still being able to shed a single head while off-level, no
matter how many they had. If this resulted in them having 0 (or fewer)
heads, the game would immediately assert upon entering the floor.

This commit hopefully fixes this behavior, and also includes some save
compat code to give headless slymdra a single head back, so affected games
don't become softlocked.

This fixes #5059

--------------------------------------------------------------------------------
dfb2110c05 | DracoOmega | 2026-02-03 11:18:54 -0330

Fix being able to constrict an unlimited number of things (Ge0FF)
The max number of targets an octopode can constrict at once is reduced by
any weapon or shield they're wielding (since they take up some of their
tentacles). But if an octopode was already constricting many things when
they changed gear in a way that lowered the number of things they could
constrict below what they were already constricting, they would then become
able to constrict an unlimited number of things (since a negative number of
usable tentacles will always be non-zero).

Now you cannot cheat the limit this way.

(I've not bothered with code to immediately unconstrict some number of
targets when swapping weapons in this way; it feels like too niche of a
scenario to worry about.)

--------------------------------------------------------------------------------
75df0cf6de | Isaac Clancy | 2026-02-02 21:38:36 +1300

Fix a crash when bound soul Mara clones die
If you used Yred's bind soul ability on Mara and then stabbed him to
death in vampire form, he would form a bound soul and then when one of
this bound soul's summoned copies died it would try and rise as a
vampire thrall which would crash. This was because the bound soul still
had the VAMPIRIC_THRALL_KEY property from when Mara was stabbed to
death which meant that its clones also had this prperty and would try to
rise as thralls when they died. However, we were accidendally killing
them when ending their ENCH_SUMMON_TIMER enchantment when ending all
their enchantments as part of making them into thralls.

--------------------------------------------------------------------------------
7ecffdf5e8 | Isaac Clancy | 2026-02-02 14:10:01 +1300

Fix a crash when sealing a mutli square door
If there were two non-hostile monsters in the same door and the first
(first in the order we iterate over the door squares) monster could be
pushed to positions A and B but the second monster could only be pushed
to position B, when checking if it was posible to push all the monsters
from the door, we would move the first monster to position A as that was
the first position it could be moved to and then we would move the
second monster to position B as that was the first position it could be
moved to that hadn't already had a monster moved to it and thus we would
determine that it was posible to move all monster. However, when
actually moving the monsters, we would check whether moving the first
monster to position A or B would give the highest tension and in the
crashing case we would move it to position B, we would then try to move
the second monster and this would trigger an assert as there was no
longer a position to move it to (position B had already been taken by
the first monster).

Instead, check every combination of movement to see if there is a valid
way to push the monsters and also to see which way results in the
highest tension.

--------------------------------------------------------------------------------
2ad184ce96 | regret-index | 2026-01-31 15:51:34 -0330

More eye of draining tweaks
 * Their HD has been increased without affecting any of the rest of their
   stats or threat capacity, singularly so they can no longer be produced
   by protean progenitors. While I do keep wanting to nudge up the quality
   of rN+, rolling these is an obscene outlier of threat for people who
   don't immediately swap their gear.

 * To try and make their cast enough more obvious, I've added a new
   experimental vfx flash that adds a tiny flash of red and a highlight of
   their smirk on the gazing eye's own tile that happens simultaneously
   with the vfx on the player (which is very slightly longer now also).

Honestly, I'd be much happier with a dynamic system of marking them as
always lethal unless one has rN++ or rN+++, regardless of their XP value,
but reworks to the threat level indicator would require a substantial
amount of further work, alas.

--------------------------------------------------------------------------------
0643b00e1c | regret-index | 2026-01-31 15:51:34 -0330

Last wrap-up vault review for 0.34
Basically all of this is safe small repairs work and tweaks noticed or
discussed post-feature-freeze while preparing for next version work.

 * A highly dangerous late D guarded unrand vault using extended threats
   now has no_tele_into, as was not as much a standard when it was
   removed in 20c470e and reinstated in c80224b.

 * Death knights have been taken out of two more D uses as monsters now
   meant for post-rune-acquisition threat levels.

 * Some minor terrain issues in overflow altars have been fixed up.

 * As reported by Lici, cryptofortress_bobbens is no longer placing deep
   water and extra laughing skulls in the very last segment of it, which
   also occasionally broke Tomb entrance placement.

 * With more threat variety available in Crypt and more people visiting it
   for the shop, evilmike_haunted_forest no longer particularly needs a
   second alderking in the same chamber as the first.

 * The Devouring Rift trove now can offer amulet randarts of Stealth++ to
   vary up the ^Contam +Blink jewellery, matching its other offerings of
   stealth gear for Abyss survival purpose.

--------------------------------------------------------------------------------
8ad8b32b99 | DracoOmega | 2026-01-31 14:03:11 -0330

Increase Curse of Agony range by 1
This should make it a little bit safer and more flexible without changing
anything significant.

--------------------------------------------------------------------------------
9afcfeacd8 | RypoFalem | 2026-01-31 13:58:29 -0330

Alert monsters affected by clouds to their creator
Since f96b50d monsters are no longer alerted automatically to cast
spells. That made apparent that clouds weren't alerting monsters to the
cloud creator; monsters would wander through player-created freezing
clouds without taking notice of the player. Silly! So change that.

--------------------------------------------------------------------------------
03f7a86f93 | gammafunk | 2026-01-29 22:04:06 -0600

Don't pollute the lua C stack (DracoOmega)
For some reason, I never checked whether the error handler added in
2b9214b6 was being removed by lua_pcall(). I assumed it just removed it
like how it removes the called function and its arguments. It turns out
we were polluting the lua C stack with an unremoved copy of this handler
C function with almost *every* call to lua from C! This grew the stack
so much that various weird issues could happen. In the case of the Disco
Pan vault, where lua is getting called a lot in every turn, the game
would start to lag more than it did in the past on that level. This was
probably the source of the mysterious objstat behaviour as well, but
I'll have to investigate that further.

This commit removes the handler from position 1 of the stack after each
pcall. Debugging has shown that we're now entering functions like
lua_element_colour_calc::get() each time with a C stack size of 0
instead one that can easily grow into the thousands. Movement through
Disco Pan is significantly faster, although still laggy due to the
amount of lua calls happening.

--------------------------------------------------------------------------------
71f451d4b8 | DracoOmega | 2026-01-29 18:26:46 -0330

Make reactive eeljolt a fineff
The direct cause of the crash in the previous commit (though
future-proofing it at the same time didn't seem like a bad idea).

--------------------------------------------------------------------------------
128f4cd87f | DracoOmega | 2026-01-29 18:26:03 -0330

Fix a possible Landbreaker crash
If the caster died mid-spell, parts of the rubble placement that referred
to its position could return an out of bounds value, leading to an assert.

Instead, cache the origin pos at the start, just in case.

--------------------------------------------------------------------------------
f2d9c54bfe | DracoOmega | 2026-01-29 16:09:54 -0330

Fix an obscure parchment rendering crash (Odds, Rypofalem)
When drawing map cells, in certain cases the cached foreground tile wasn't
being reset - for instance, if there was a staircase with items on it,
tile_draw_map_cell would add the item marker to that cells while otherwise
leaving the tile ID alone.

This could cause a crash in the specific circumstance where there was a
parchment on a previous floor at the same position as a corpse on top of a
stair or hatch on the new floor. The code to pick the proper tile for a
parchment would still think there was a parchment there, and then would
treat that corpse as if it were this parchment and often result in an
assert (since both monster type and parchment spell were encoded as
item_def.plus and monster enums can greatly excede the valid range for
spell enums). Unlike many such crashes, this one was possible on both local
tiles and webtiles.

--------------------------------------------------------------------------------
264ef1ee83 | DracoOmega | 2026-01-28 20:25:21 -0330

Fix fsim not reporting monster attacks
Since it believed they always missed.

(Broken since fff38f6)

--------------------------------------------------------------------------------
ca6055191c | DracoOmega | 2026-01-27 14:41:43 -0330

Reduce death knight Hurl Torchlight damage
It was probably a bit too nasty for unavoidable, irresistable damage that
also buffs their allies.

--------------------------------------------------------------------------------
b54ea9f565 | DracoOmega | 2026-01-27 14:41:43 -0330

Tweak Blade form numbers
Slightly reduce aux damage and base parrying amount. Reduce the body armour
AC penalty at minskill from -70% to -50%, but increase it to -20% at max
skill (instead of 0%). Prevent negative slaying (eg: from Claustrophobia)
from reducing your SH (which could even cause you to lose your baseline
shield when attacking....).

--------------------------------------------------------------------------------
87b91cedfd | DracoOmega | 2026-01-27 14:41:43 -0330

Fix broken lua api for item slot remapping (WizardIke)
This has been somewhat broken since the consumable inventory change,
allowing the player to specify slots outside the allowed gear range and
cause a variety of undefined behavior or crashes on demand by trying to do
so.

This splits the old items.swap_slots function into two new ones:

items.swap_gear_slots() works more or less the same as swap_slots() used
to (but properly constrains the result to valid gear slots)

items.swap_consumable_slots() works on consumables, and requires the
caller to specify which category, but takes letters as slots instead of
indicies. eg: items.swap_consumable_slots('potion', 'c', 'X')

It has been suggested that existing API functions should allow interacting
with letters more directly (instead of often requiring
items.letter_to_index() calls), which makes sense to me, but I have
deferred that for the moment.

This fixes #5050

--------------------------------------------------------------------------------
5ca34f96d4 | DracoOmega | 2026-01-27 14:41:43 -0330

Lower eel hands damage by ~20%
Even for a mid-tier form that melds your shield, it was probably a little
overtuned. Hopefully it should remain quite appealing to UC characters.

--------------------------------------------------------------------------------
23091ee04a | DracoOmega | 2026-01-27 14:41:43 -0330

Slightly lower parchment prices
It's possible I overshot a small bit with the previous change.

--------------------------------------------------------------------------------
8321115146 | DracoOmega | 2026-01-27 14:41:43 -0330

Make unidentified orbs less expensive
Whether an orb does anything relevant for a character is very
ego-dependent, so unidentified orbs being as expensive as they are makes
them an often unappealing gamble.

Shift more of the cost from the base orb to the egos themselves to make
these much cheaper while maintaining a hopefully appropriate cost for
identified orbs.

--------------------------------------------------------------------------------
715986b9a4 | DracoOmega | 2026-01-27 14:41:43 -0330

Nudge orb of stardust damage down a little
I'm quite pleased that players seem to be getting use out of multiple of
the new orbs, but this one is possibly still a *bit* too strong and can
afford a gentle downward nudge.

--------------------------------------------------------------------------------
6389ac65aa | DracoOmega | 2026-01-27 14:41:43 -0330

Fix a typo (roxie puddles)

--------------------------------------------------------------------------------
7712bfe8de | DracoOmega | 2026-01-27 14:41:43 -0330

Make Maw's dietary preferences more intuitive
Maw form could eat any enemy with a 'corpse', but it turns out that this
isn't very player-facing these days and does not (as one might expect)
directly correlate to what enemies can get raised as zombies. While a few
instances of living monsters that didn't drop corpses might be arguably
intuitive (such as jellies) there were many weird exceptions. Maws were
unable to eat orb guardians, mana vipers, boggarts, Maurice.... (and many
others). There isn't even any way to look this up in-game, and it
meaningfully affects where and when the form is appropriate to use.

Instead, allow Maw to eat exactly living and plant enemies, which are
clearly circumscribed categories. (This also affects what you can be
mesmerised by, as they share the same criteria.)

Acid blobs surely cannot be more unhealthy to eat than tainted leviathans
were, after all.

--------------------------------------------------------------------------------
a12834e61f | DracoOmega | 2026-01-27 14:41:43 -0330

Cap the duration of Maw regen at 40
This is still quite a lot of healing to be able to hold at once (but many
characters could previously stack far more than this at once in places like
Vaults)

--------------------------------------------------------------------------------
effeaa3763 | DracoOmega | 2026-01-27 14:41:43 -0330

Tweak the HP of a few Slime monsters
Lower slymdra and shining eye HP, increase creeping plasmodium HP.

--------------------------------------------------------------------------------
ca812756a5 | DracoOmega | 2026-01-27 14:41:43 -0330

Increase water nymph XP somewhat
Importantly, they were considered too trivial to Duel for many characters
who'd just entered Shoals, despite being one of the more notably dangerous
monsters within the branch.

In future, it might make sense to loosen Duel's restrictions (while a
little out of theme, the mechanical importance of preventing duelling weak
monsters is much less relevant now that you can't stall to heal by using
it, and with a default .rc it isn't even possible to know in advance what
monsters will be eligable without trying it - which can sometimes be too
late.)

(In future, it might also make sense to review monster XP values in
general, now that we're no longer so bound to accidents of old formulas,
but that is a much larger task.)

--------------------------------------------------------------------------------
30fa3f96ca | DracoOmega | 2026-01-27 14:41:43 -0330

Nerf Bane of Multiplicity
It is now less likely to trigger and goes on cooldown for longer when it
does.

--------------------------------------------------------------------------------
8a1b03b673 | DracoOmega | 2026-01-27 14:41:43 -0330

Make Spiteful Blood a little more impactful
It is now more likely to trigger then before, have a bit more HP when it
does so, and also very slightly more damage.

--------------------------------------------------------------------------------
2731a55e82 | DracoOmega | 2026-01-27 14:41:43 -0330

Fix spiteful blood's mutation description not displaying

--------------------------------------------------------------------------------
b77665ff79 | DracoOmega | 2026-01-27 14:41:43 -0330

Make Slick Slippers provide immunity to Grave Claw's -Move (Lici)

--------------------------------------------------------------------------------
cde0a2ff41 | DracoOmega | 2026-01-27 14:41:43 -0330

Fix Vhi's being overly restrictive while mesmerised
It would prevent you from charging at an enemy if *their* position was
beyond where you were allowed to stand, rather than the position you'd end
up on after casting the spell. This could be doubly confusing since Vhi's
still often reports that 'one issue or another' is keeping you from moving.

Now you should be allowed to charge to any destination you'd otherwise be
allowed to move to while mesmerised/feared.

--------------------------------------------------------------------------------
ed45ffe0fa | DracoOmega | 2026-01-27 14:41:43 -0330

Fix mesmerisation daze stacking on monsters (and gently lower duration)
Rather than stack up to a small cap, as intended, it could often decrease
the duration of an existing effect. Now it should properly stack up to 10
turns, but apply 0.5 turns less on average.

--------------------------------------------------------------------------------
176d2a21be | DracoOmega | 2026-01-27 14:41:43 -0330

Don't autopickup except when moving
The behaviour canonized by bbb4cc1 (ie: automatically picking up items at
one's feet as soon as performing an attack that killed the last visible
monster) had some potential concerns about rarely doing so in the midst of
a time-sensitive battle where known enemies were just around a corner. With
that in mind, I am reverting to the behavior prior to 90209b8 (ie: you have
to actually take a step (or autoexplore) before autopickup will attempt to
pick up anything the player is already standing on).

--------------------------------------------------------------------------------
f4267a8a47 | DracoOmega | 2026-01-27 14:41:43 -0330

Fix star jellies sometimes not making stars
If a star jelly was wounded badly enough to hit the shooting star
threshold, but not killed, and then damaged again and killed before fineffs
fire, it wouldn't make any stars. (This could happen frequently with melee
attacks, which often include multiple packets of damage for auxes and
brands.)

Instead, cache the star jelly every time, just in case.

--------------------------------------------------------------------------------
6f8043d9b5 | DracoOmega | 2026-01-27 14:41:43 -0330

Tweak slymdra splitting behavior
They can now split off slime creatures whenever they are out of sight of
their foe, without needing to be wandering first, and do so somewhat more
quickly.

Time passing off-level can now also cause them to split (though if the
player arrives in sight of them, they may rapidly merge up again - though
this at least costs them energy).

They now count as herd monsters (just like the slime creatures themselves),
so they will have leashing behavior with the rest of their band.

--------------------------------------------------------------------------------
2976efafa4 | Isaac Clancy | 2026-01-28 05:17:35 +1300

Fix petrify and rimeblight sometimes not chaining (knorpule3000)
If petrify or timeblight had passed through an unaffected monster such
as your Hep ancestor or reflected off of the warlock's mirror they would
fail to chain to nearby monsters.

Fixes #5043

--------------------------------------------------------------------------------
231e7417e9 | Isaac Clancy | 2026-01-28 00:35:23 +1300

Fix a crash when trying to get the slot for an item in lua
If given an item that is assigned to an invalid letter, the lua item
slot property would crash the game. Instead, it should return nil.

--------------------------------------------------------------------------------
ff61f77f9c | gammafunk | 2026-01-26 20:24:07 -0600

Small updates to the release guide

--------------------------------------------------------------------------------
da2984106b | regret-index | 2026-01-26 21:57:17 -0330

Prevent orcs from spawning inside a spider cage (#5048)
It's supposed to be a quarantine, not a death match cage.

--------------------------------------------------------------------------------
0a107a98f2 | regret-index | 2026-01-26 21:57:17 -0330

Fix Xom acting around sufficient counts of firewood (Zadiel)
8b305a4 made conjured monsters (e.g. orbs of destruction, battlespheres)
count as having some minimal amount of experience value to help with
tension not really being equipped to assess their comparative danger
levels. This was adjusted into peripheral monsters in 62137d7, which
accidentally started counting plants, fungi, and other non-hostile
obstacle-monsters as having non-zero experience values for tension's
calculations. This doesn't have a lot of problems for most uses of tension,
but it does mean Xom will act in many pointless ways around sufficient
amounts of plants, which is extremely undesireable behaviour that is thus
fixed here.

A more ideal solution for this is most likely to add actual experience
values for various peripheral monsters for the sake of better tension
calculations (instead of setting orbs of destruction to be worth half an
ogre of threat), but with the version release looming, this should function
enough as a fix for now.

--------------------------------------------------------------------------------
9c19a917d8 | Isaac Clancy | 2026-01-26 23:22:50 +1300

Fix a crash when a summoner accepts a Gozag bribe
If an out of view summoner summons some monsters and then you move so
that the summoner and its summons come into view at the same time, we
would iterate over all the monsters that just come into view and call
`seen_monster` on them. If this call to `seen_monster` caused the
summoner to accept a Gozag bribe and become friendly, its summons would
be killed but we would still call `seen_monster` on these dead summons
resulting in a crash.

--------------------------------------------------------------------------------
45ea6cc7a5 | Isaac Clancy | 2026-01-26 23:22:50 +1300

Fix acidic and icy floors not using tile variations

--------------------------------------------------------------------------------
5877fddc77 | gammafunk | 2026-01-25 21:41:47 -0600

Reset lua state properly for objstat/mapstat
Similar to d744bac7, we now reset lua states and subsequently reload the
necessary data after each iteration. This fixes a problem where large
objstat jobs (e.g. 1000 iterations of generating all of the Dungeon
branch) eventually error repeatedly in zonify layout code. The precise
reason for this hasn't been fully debugged, but it seems to be related
to available lua memory. For now, it's wise to follow the same close ->
reinitialize procedure as we do for the main game loop in each
objstat/mapstat iteration.

Testing has shown that this reset doesn't significantly impact objstat
performance. In the future, when I rework game loop lua reinitializaiton
to more carefully reset and load only the necessary data, we can revisit
needed to close and reopen the lua state for all game modes.

--------------------------------------------------------------------------------
e1d2b83f61 | regret-index | 2026-01-25 18:51:29 -0330

Adjust morphogenic ooze slimification accumulation
While the original af_slimify timing was roughly based off of bat cloud
drowinsess numbers, clouds are much more consistent at applying their
effects than attack brands are in combat. It's very plausible to be killed
by a morphogenic ooze band well before one actually gets slimified in the
first place, due to each turn where an ooze fails to hit allows one to
work off the effect build-up without really bothering with any
counterplay, since each hit only applies 35-45 aut of a status that needs
to reach 100 to activate that also goes down 10 each turn. Rather than
making them apply the status in one or two hits entirely, I am doubling
the status application and threshold numbers both, which thus halves the
rate the status wears off mid-fight. As rare monsters with a singular
gimmick far less instantly lethal than other summoning or conjurations
mechanics added to the branch this version, we might as well test a
version of the monster with a functional version of the gimmick first.

(This commit also adjusts the colour schema of DUR_SLIMIFYING to reduce
the ambiguity of going across multiple shades of magenta. No save-compat
code has been included with this commit, as there is rather little benefit
in tactically converting an older save mid-fight to try and prevent
slimification against exactly one encounter. I am also fixing a notable
bug where one could cancel jelly form immediately after actually getting
it, which I hope hasn't been distorting the testing of the monster
entirely....)

--------------------------------------------------------------------------------
c88066364f | regret-index | 2026-01-25 18:31:12 -0330

Yet further small tiles adjustments
 * Azure jellies and colossal amoeba have had their colours and brightness
   adjusted away from each other, to help with those with poor eyesight
   and poor pixel miscaling confusing the two very different blue jellies
   in Slime.

 * Antimagic Gaze no longer accidentally uses the Draining Gaze tile
   animation flash, as was introduced in 6213b69.

 * The Draining Gaze animation flash from eyes of draining now lasts
   very slightly longer when it targets players, and now also lasts
   increasingly longer the more the player is drained overall.

 * Fannar and player doll broad axes have had their palettes simplified.

 * Rapier and broad axe randarts now have unique player doll tiles,
   based off of roctavian's good_item rapiers and broad axe doll tiles.

--------------------------------------------------------------------------------
c69c41b5cd | Isaac Clancy | 2026-01-25 15:15:00 +1300

Checkwhite

--------------------------------------------------------------------------------
10d8026e12 | Isaac Clancy | 2026-01-25 15:06:43 +1300

Fix a crash when abandoning Gozag
If you had a item from one of Gozag's shops on your shopping list and it
wasn't the last item on the list, abandoning Gozag would crash. This was
caused by iterating over the items in your shopping list while removing
any that were from Gozag stuffing up the iteration.

This change also fixes a bug where abandoning Gozag would remove
shopping list items from shops that weren't from Gozag if the shop was
covered with temporary terrain.

--------------------------------------------------------------------------------
4d7c6441a3 | Isaac Clancy | 2026-01-25 14:07:16 +1300

Fix temporary terrain expiring making mimics into real features
If you covered a feature mimic (such as a shop) in temporary terrain
(such as the lava from hell fire mortar), when the temporary terrain
expired the feature would now be real rather than a mimic (e.g. you
could now move onto and shop at what used to be a shop mimic).

Also don't allow a feature mimic to disappear when covered with
temporary terrain as this would result in the mimic becoming real rather
than disappearing if the temporary terrain wasn't a mimicable feature
(e.g. shallow water from a water nymph).

--------------------------------------------------------------------------------
21d91b71d4 | Isaac Clancy | 2026-01-25 14:07:16 +1300

Fix wizmode placed shop and trap mimics not being mimics
The code for placing features was returning early for shops and traps
making it skip turning the placed feature into a mimic when ask to place
one.

--------------------------------------------------------------------------------
c6afee0a9b | Isaac Clancy | 2026-01-25 14:07:16 +1300

Fix env.shop becoming filled with useless shops
When loading a level that had already been generated, all shops on the
level would be inserted into env.shop. However, shops from the previous
level would never be cleared (although shops with the same position
would be overridden). Generating a new level would clear env.shop
however. These extra shops weren't accessible to the player as there
weren't any entrances to them on the map.

--------------------------------------------------------------------------------
8ba9187331 | Isaac Clancy | 2026-01-25 14:07:16 +1300

Don't leak memory when adding an item to the shopping list
We were allocated a `CrawlHashTable` using `new` and then using it to
construct a `CrawlStoreValue`. However, `CrawlStoreValue`'s constructor
does not take ownership of the `CrawlHashTable` it takes as an argument
(but rather makes a copy).

--------------------------------------------------------------------------------
2053b306b6 | regret-index | 2026-01-24 17:53:12 -0330

Changelog update through f52bb6b
Mostly to catch the last few talisman and spell changes this version.
Copy-editing support provided by DracoOmega.

--------------------------------------------------------------------------------
f52bb6b557 | gammafunk | 2026-01-23 21:18:09 -0600

Fix a lua error (knorpule3001)
For regret_index_shop_air, add a missing string concatenation.

--------------------------------------------------------------------------------
1123133900 | Medrano83 | 2026-01-24 00:26:43 +0100

Fix the enter key on TV devices
Android TV devices remap the enter key in hardware keyboards as the
D-Pad center (OK) button. That event is ignored by Crawl, so we are
doing the opposite remap here.

--------------------------------------------------------------------------------
23ec4249fe | regret-index | 2026-01-23 14:51:51 -0330

Fix darby_harvest_season (PsiRedEye22)

--------------------------------------------------------------------------------
cc690c27c0 | regret-index | 2026-01-23 10:26:19 -0330

Fix partisan and trident doll displays
bf00e41's copy-pastes accidentally assigned the partisan randart paper
doll tile to tridents. While fixing this, I've also noticed that trident
randarts have never had their own paper doll rendition seperating them
from non-mundane tridents, and thus also added a new paper doll tile
modifying roctavian's non-mundane trident that should properly reflect
the appearance of roctavian's randart tridents.

(There's... a lot of other weapons that evidently have never haad proper
randart paper doll tiles, which I will investigate into and make more
tiles to handle before the version release.)

--------------------------------------------------------------------------------
288739ea82 | DracoOmega | 2026-01-23 06:10:39 -0330

Fix a typo (Undo)

--------------------------------------------------------------------------------
ac9929eef6 | regret-index | 2026-01-22 23:02:44 -0330

Quick scraped-together vault review
Of note:

 * zot_entry_small once more no longer places on Depths:$, as was screwed
   up by eee5569 automating zot entry set-up.

 * minmay_fire_ice_demons no longer places item rewards when it spawns in
   Cocytus or Gehenna.

 * grunt_twist_and_shout no longer accidentally places pointless runed
   doors.

 * The D:1-2 polyominoes now use a non-default rock tile so they stand out
   even slightly as highly abstract objects versus the rest of early
   Dungeon rock wall generation.

--------------------------------------------------------------------------------
bc843a334e | hellmonk | 2026-01-22 22:20:29 -0330

Couple of small altar vaults (#4998)
Adds a sealed altar containing a non-temple god that requires consumables
to access, and a zin overflow that also places a [sometimes non-overflow]
chaotic god altar with themed monsters sealed behind a runed door.

[Committer's notes: Tweaked the god altar weightings for the former vault
to reflect how rare they overall should be available. Heavily adjusted
the latter vault to scale substantially more with depth rather than just
throwing slime creatures on D:3 at newcomers, completely revised the
visuals to both emphasize Zin sealing the god and to use tiles customized
per-god rather than using Tartarus stone for Jiyva and Lugonu, and adjusted
the weight of both the vault and its chance to just roll Xom over Jiyva
and Lugonu so it doesn't have to be hyper-rare in its placement.

Closes #4998.]

--------------------------------------------------------------------------------
36551948a3 | regret-index | 2026-01-22 20:57:45 -0330

Tweak worldbinder summons once more
When ugly things and very ugly things stopped spawning in V as of f517b90,
worldbinder summons weren't adjusted in exchange, so they still declared
themselves summoning ugly things from the Vaults. As V-convoking
worldbinders are still notably the strongest of worldbinders despite the
removal of thunderhulks from their list in 3be09a1, this could still do
with further adjustments.

Worldbinders summoning from The Vaults now get polterguardians and
ironbound preservers, rather than very ugly things and ironbound
frosthearts. This should be reasonably distinct for a summoner's summons
even more directly helping its own summoner's lifespan, and not feature
quite as much spikes of resist checkecs as the previous ones.

Meanwhile, I'm also trading away the Shoals' set's manticores and merfolk
aquamancers for merfolk sirens and water nymphs, which should be less
boring as support monsters compared to the projectile conjuration effects
struggling to entirely function in the Abyss's terrain pressures. Both of
these have some of the worst-performing worldbinder summons in terms of
kill stats (and aquamancers also feel pretty high tier in their own
branch), so this should continue to nudge the total worldbinder threat
pools closer together.

--------------------------------------------------------------------------------
1b32a8f0ca | regret-index | 2026-01-22 16:43:05 -0330

One last balance adjustment for Protean Grace for now
Experimentation with Protean Grace's state after ad136e9 has left it off
in too weak a state to be of much interest for the average non-Xom
non-Jiyva character, as the testing of #4949 demonstrated. While we do
have a fair number of other interesting top-tier mutations available,
there are still further potential iterations of the mutation possible
that can continue to try to handle the vast gap of plausible mutation
counts provided by the mutation gods.

This commit's approach is quite bluntly direct in this intent: protean
grace now no longer has scales to every two mutations as both of the
previous states did, but it also now is hard capped to not provide any
further than +7 Slay and EV+7, and it no longer counts itself. This should
still provide a bit of a tangible edge to rolling it with only a few
mutations or getting past the soft cap ceiling via mutation gods, while
still preventing the mutation gods from having a mutation that just flatly
provides +10 to +20 double stat benefits.

--------------------------------------------------------------------------------
f09e6e9c6e | yrdzrfxndfvh | 2026-01-22 14:41:11 -0330

allow death cobs into klown kollege (#5039)
since 3440744 harlequin's traps no longer override the attack flavor

[Committer's notes: Sure, why not. Closes #5039.]

--------------------------------------------------------------------------------
3eaa6fa3b2 | Isaac Clancy | 2026-01-22 23:48:59 +1300

Fix recreating a automapped level leaving blank tiles
This was due to call to `tile_new_level` in `wizard_recreate_level`
setting all the tiles in the tile cache to TILE_DNGN_UNSEEN after the
call to `load_level`. However, this call to `tile_new_level` isn't even
needed anymore as commit ef9621c added a call to it to `load_level`
(Technically the functions were `TileNewLevel` and `load` back then).
The call to `tile_new_level` in `load_level` happens before automapping
the level so it doesn't cause this problem.

--------------------------------------------------------------------------------
f8f340346d | Isaac Clancy | 2026-01-22 23:10:55 +1300

Fix wizmode traveling to automapped level leaving blank tiles
When wizmode traveling to a automapped level (such as nocropolis) that
you hadn't previously visited, all out of view tiles would appear
completely blank until you saw them or reloaded the game. This was
caused by a call to `tile_new_level` after the call to `load_level`
in `_wizard_go_to_level` setting all the tiles in the tile cache to
TILE_DNGN_UNSEEN. This call to `tile_new_level` isn't even needed
anymore as commit ef9621c added a call to it to `load_level`
(Technically the functions were `TileNewLevel` and `load` back then).
The call to `tile_new_level` in `load_level` happens before automapping
the level so it doesn't cause this problem.

--------------------------------------------------------------------------------
13841c757a | Isaac Clancy | 2026-01-22 20:24:08 +1300

Fix some vaults not getting the colour tile they specified
If a vault specified a floor or rock wall tile name with no colour e.g.
floor_rough it would get that tile in the colour used by console for
floors or rock walls. If it specified a tile with a colour e.g.
floor_rough_blue it would get the tile in the colour specified. This
let us use the console colour for tiles with animated colours as these
can't be specified directly (e.g. there is no floor_rough_etc_random for
a random animated colour) while still letting tiles use a different
colour from console when it looks better.

However, some coloured tiles are just aliases for the non-coloured
version e.g. floor_rough_red is an alias for floor_rough so if a vault
specified a floor as having the tile floor_rough_red it would actually
get the tile floor_rough in whatever colour console used for floors.

To fix this, only apply animated console colours to floor and rock wall
tiles. This is actually what we did prier to commit 6dfb6d6 but it was
lost in the rework.

--------------------------------------------------------------------------------
ea69564c00 | Medrano83 | 2026-01-22 02:00:36 +0100

Basic Android TV Support
Here I'm trying to meet the requirements for the game to be distributed
as a TV app. Most of the code is to make the launcher usable with a TV
remote. The game is not playable without an external keyboard or pointer
device, but the user is warned about it. I hope it will be enough.

Other changes:
- Improved virtual D-Pad. Now it can be used to navegate menus.
- Keys in the transparent keyboard are highlighted when pressed.
- Virtual keyboard disabled by default in TV and PC devices.

--------------------------------------------------------------------------------
507ca58132 | Memoria | 2026-01-21 16:51:28 -0600

Minor vault tile edits
Matches a couple of cases of unintended FTILE assignment with the
surrounding floor, and makes the rug in darby_raucous_goblin_parties
red in console so it will display as red in tiles, as was changed in
6dfb6d6.

--------------------------------------------------------------------------------
53b3710f56 | regret-index | 2026-01-21 14:36:30 -0330

Some lingering 0.34 tile clean-up work
 * Spore form now properly depicts fungus taking up the lower half or
   feet of various bodies, as was missed in the original implementation of
   providing such tiles in 31b8f63 due to confusion over other parts of
   the concept. This also adds additional tiles for naga, armataur,
   and djinn all avoiding the barding-slot area for the former two.

 * Dragon-coil talismans now have shadows (for e.g. Shoals), as was
   accidentally left out of providing the new tile in c257eed.

 * The hive-form felid tile has now been flipped to match other felid
   transformation tiles.

 * The werewolf felid tile now uses part of LemurRobot's vampire felid
   tile, as the head from Denzi's cats had poor proportions in comparison.

 * Orbs of mayhem now use the frenzied icon from eedf646 instead of the
   droplet of blood that e.g. vampric weapons use.

 * I've adjusted ontoclasm's Death's Door icon to actually bleed past the
   spell icon frame to match the other level 9 spells doing the same, as
   was neglected back in 8d63b16.

 * Monster Deflect Missiles now once more uses ontoclasm's old Deflect
   Missiles icon, to both reflect the older use of the name and to have a
   somewhat more dramatic icon for a now stronger effect.

 * Planar Overlay now has a new tile made from ontoclasm's Passage of
   Golubria tile instead of just directly using that same tile.

 * The plainest of the Depths stone wall tiles now has slightly more
   decoration on it to help it match more with the rest of its set.

 * Detected decorative floor tiles use a less bright lower-contrast tile
   to be less gaudy when detecting them in large masses (e.g. with the
   current arrangement for weapon-inlaid floor in Elf:2's Hall of Blades).

--------------------------------------------------------------------------------
0383675d46 | regret-index | 2026-01-21 14:36:29 -0330

A batch of Darby's vaults
Sixteen neat vaults (plus subvaults) reflecting some repeated vault
desires: vaults with heavy theme components that can spawn in multiple
branches, vaults that focus on deploying newer monsters, and vaults that
can place pre-Lair or earlier to add more interest to the ever-pressured
earlygame.

Alterations past the initial feedback phase for this submission included:
 * some reduced weights for early uses of wall mimics (that autoexplore
   and autopickup will activated anyway) or other aggressive gimmicks,
 * more D monster scaling and general item reward scaling versus depth,
 * syntax adjustments to continue pushing my vault header house style.

Additionally, this comes with support for some decorative floor options
from tiles added in 76a730d not then integrated into other vaults- a
djembe set, a now somewhat-Yred-flavoured flag, and a pike with impaled
skulls. These aren't getting a lot of distribution quite yet (between
the impending feature freeze and their narrowed flavour), but the lua and
descriptions have been set up for these vaults, with the write-ups also
mostly written by Darby.

--------------------------------------------------------------------------------
ac8383b74f | DracoOmega | 2026-01-21 13:29:36 -0330

Fix a failing test
Since b9c0c7a the previous example used would fail.

In theory, these body slot mutations are supposed to be able to trade off
with each other when forced, but this seems to have not been the case for
all the other ones for many years now (and correcting this while still
preventing the situation fixed by b9c0c7a is non-trivial, nor is it clear
that it is more interesting gameplay to be able to randomly swap your foot
mutation for an almost-identical one anyway).

In the meantime, pick a different pair of mutations that do satisfy this
test's intent.

--------------------------------------------------------------------------------
c4ca8e905a | DracoOmega | 2026-01-21 12:23:42 -0330

Mention that draconians cannot wear helmets in-game
In the same place as their other armour restrictions.

This closes #3012

--------------------------------------------------------------------------------
13570ff70c | DracoOmega | 2026-01-21 12:23:42 -0330

Explicate that the Reckless mutation only affects melee weapons (dilly)

--------------------------------------------------------------------------------
f98ad71682 | DracoOmega | 2026-01-21 12:23:42 -0330

Don't frenzy protected allies with an orb of Mayhem (Szymekc)
Allies that can't be affected by any player AoE (eg: player shadows,
ancestors) probably shouldn't be affected by this either.

This incidentally stops a crash with attacking your own frenzied shadow.
If another shadow attack triggered on this attack, your old shadow would
be destroyed before your new shadow tried to hit it, resulting in it
hitting a reset monster.

--------------------------------------------------------------------------------
3ac2f9dc84 | DracoOmega | 2026-01-21 12:23:42 -0330

Don't allow making multiple vampire thralls at once
If a vampire-form player stabbed multiple monsters to death at the same
time (eg: using WJC whirlwind), all of them would rise as thralls instead
of just one.

Now we test 'reviving' monsters when looking for thralls as well.

This fixes #5014

--------------------------------------------------------------------------------
07036d49a5 | DracoOmega | 2026-01-21 12:23:42 -0330

Don't grow burstshrooms when hitting firewood or allies
This isn't quite as harmful to be able to farm off allies as a bunch of
other attack triggers, but it feels more consistent with general policy.

--------------------------------------------------------------------------------
2b47bf1078 | DracoOmega | 2026-01-21 07:34:10 -0330

Properly prevent Orb of Stardust from working on djinni

--------------------------------------------------------------------------------
d9aa244d15 | DracoOmega | 2026-01-21 07:32:30 -0330

Correct the Evoke Invisibility description (Necromancer23)
It hasn't given contam since dccffc7.

--------------------------------------------------------------------------------
b9c0c7a1e4 | DracoOmega | 2026-01-21 07:30:20 -0330

Prevent having hooves and talons at the same time (Speedwagon)
This was rarely possible in specific circumstances. I think it required
some temporary levels of hooves and some permanent ones at the same time,
leading to some code thinking it had removed the hooves to allow the talons
to grow in their place (but instead the innate levels remained).

It turns out the reason this doesn't happen for other body slot mutations
is their presence in this _body_facets array. I think this also means that
them being opposed pairs in mut_conflicts may be redundant (or at least not
entirely working as intended). But diving into that would be more quite a
bit more involved at present.

--------------------------------------------------------------------------------
40507f9771 | DracoOmega | 2026-01-21 07:24:00 -0330

Fix a few redundant artprops being able to generate on talismans

--------------------------------------------------------------------------------
bb8035fab5 | DracoOmega | 2026-01-21 07:22:09 -0330

Allow spellmotor to benefit from aqua form's reaching
This fixes #5042

--------------------------------------------------------------------------------
69c9decb0d | Isaac Clancy | 2026-01-21 17:00:40 +1300

Fix crumbled stairs not redrawing properly in descent mode
We were using `force_show_update_at` followed by `view_update_at` to
redraw a square after crumbling its staircase. The call to
`force_show_update_at` isn't needed any more as staircase peaking will
have marked the square is known causing `view_update_at` to call it for
us. `view_update_at` will update the map knowledge for the square,
however, we have already updated the map knowledge of what feature is
present and do not wish to update the player's knowledge of monsters and
clouds etc. `view_update_at` also shouldn't be called for squares out of
sight and will trigger player in LOS events for the square as well as
sometimes incorrectly updating the map knowledge. It also only redraws
the foreground layer in local tiles and the old staircase and new floor
that has replaced it are both drawn in the background layer. Instead use
`redraw_view_at` to redraw the square.

--------------------------------------------------------------------------------
82f025b3ba | Isaac Clancy | 2026-01-21 16:13:11 +1300

Fix krakens not being immune to drowning
This was broken when the habitat of krakens was changed from HT_WATER
(with special cases to keep them in deep water) to HT_DEEP_WATER.

--------------------------------------------------------------------------------
745d988918 | Isaac Clancy | 2026-01-21 15:41:19 +1300

Fix up stairs not always crumbling in descent mode
When you went down a staircase in descent mode and covered the up
staircase with temporary terrain (such as by casting noxius bog), the up
staircase wouldn't be destroyed and would reappear when the temporary
terrain expired.

--------------------------------------------------------------------------------
c078dd7f92 | Isaac Clancy | 2026-01-21 15:11:33 +1300

Fix shops not always closing when leaving Gozag
If a Gozag created shop is covered with temporary terrain such as the
lava from hell fire mortar when you abandon Gozag, the temporary terrain
will be changed into a closed shop but will be changed back into an open
shop when the temporary terrain expires. Instead, don't change the
temporary terrain but rather when it reverts back make sure it reverts
to a closed shop.

--------------------------------------------------------------------------------
71c15dacbf | DracoOmega | 2026-01-20 14:53:20 -0330

Fix fortress crab's interaction with +MP artefacts (Lici)
The player's max MP wasn't properly updating when entering/leaving fortress crab
form while wearing artefact body armour with +MP on it.

--------------------------------------------------------------------------------
2f7bc8203d | DracoOmega | 2026-01-20 14:53:20 -0330

Allow fortress crab to double intrinsic properties of dragon armour (Lici)
Resists from dragon armour were internally handled in a way that was
neither an ego nor an artprop, and thus didn't get affected by fortress
crab. Now, we automatically map (most of) those intrinsics to the
artprop cache and do not check them in any other way. This slightly
simplifies some code and allows them to interact properly with fortress
crab.

(Regen from troll leather is still handled somewhat differently - as all
regen items are - and steam resist has no artprop equivalent. Though this
latter case also doesn't matter here, since doubling it wouldn't do
anything, anyway.)

In future, this sort of procedure could also be extended to intrinsic
resists from enhancer staves or even jewellery.

--------------------------------------------------------------------------------
9dbc3aad5d | Isaac Clancy | 2026-01-21 01:47:46 +1300

Fix the console build

--------------------------------------------------------------------------------
6a6846f12a | Isaac Clancy | 2026-01-20 23:55:04 +1300

Fix leaving Gozag not always redrawing shops that close
We were using `view_update_at` to update the map knowledge and redraw a
shop after closing it. However, it only redraws the foreground in local
tiles (shops are drawn in the background layer), it only properly
updates map knowledge for squares in LOS and it updates more than just
the map knowledge of the shop (e.g. it also updates monster knowledge).
Not redrawing the shop tile often wasn't noticeable as we update the
shopping list which will cause levels excursions which redraw the whole
level if it has any items on it. Instead update only the map knowledge
of what shop is on the square and then redraw the square.

--------------------------------------------------------------------------------
a2b996f8a9 | DracoOmega | 2026-01-20 06:25:59 -0330

Don't crash when attacking a banished enemy in spore form
Distortion banish resets an enemy before it reaches this point, resulting
in an assert when we try to check their unbreathing status.

This does mean you also don't get any mushrooms for attacking an enemy on
an attack that banishes them, which is mildly unfortunate, but probably not
that big a deal (and their position is already reset, so it would require
additional special handling to work).

--------------------------------------------------------------------------------
38f28a0205 | DracoOmega | 2026-01-20 06:21:14 -0330

Fix missing spore form status display on % (Rypofalem)
This closes #5041 (but I opted to do it without redundantly specifying the
default string)

--------------------------------------------------------------------------------
9e11b8b188 | Isaac Clancy | 2026-01-20 21:46:58 +1300

Fix digging's targeter leaking terrain changes
If you had seen a diggable wall and then moved so that it wasn't in
sight anymore and then a monster dug through the wall but still left the
wall out of your sight, digging's targeter would give the square the
highlighting for a floor square leaking the out of sight terrain change.

--------------------------------------------------------------------------------
dafaf85d1f | regret-index | 2026-01-19 15:02:52 -0330

Fix an appearance of the currently-retired Sword of Power (Lici)
When the Sword of Power was removed in 6326a8a for overlap with the Valour
brand in 5a1e93a, the vault minmay_guarded_unrand_sword_of_power was
missed due to our legacy standard of unrands all being listed with
underscores. (It would just function as a +9 great sword of valour and
be replaced with such on loading up a save, anyway). There's a little bit
of dev interest in keeping around the ancient name due to the inheritance
of it from pre-Stone-Soup, so rather than remove the vault entirely, the
vault just gets a highly-enchanted randart great sword of valour instead of
making the removed unrand.

--------------------------------------------------------------------------------
53a7e0a32d | coraxioU9 | 2026-01-19 07:18:26 -0330

docs: Update spell library help screen to recommend Tab
Notably, ! is still left as an alternative to Tab for forward cycling.
Also, Shift-Tab's functionality is now spelled out.

[Committer's note: slightly tweaked wording.]

--------------------------------------------------------------------------------
95caa5139d | coraxioU9 | 2026-01-19 07:14:14 -0330

docs: Recommend Tab instead of ! for spell library navigation
While ! makes perfect sense to recommend here (the spell library is

normally accessed via `M`, requiring shift for most players), its main

flaw is that it can only navigate the spell library forwards (i.e. to

the right). The Tab key performs the same function as ! here, but does

not require shift -- even more critically, Shift+Tab will navigate the

spell library backwards. Along with being slightly more conveniently

placed than !, the Tab key may encourage more active use of hiding and

showing spells, as well as the auto_hide_spells option.
--------------------------------------------------------------------------------
a20c17766b | CrawlOdds | 2026-01-19 06:59:41 -0330

Fix some issues with invalid pet_target and allies
Previously, if the player's pet_target was set to a monster that was, for
some reason, no longer a valid target for your allies (often due to being
out of LoS, but potentially for several other reasons), we would still set
is as their foe and then later on reset their foe to MHITNOT.

This manifested in a couple of negative ways. Running from a fight with a
dead ancestor could make the ancestor respawn wandering (since it is trying
to fight a now-distant monster and cannot) and newly-summoned allies would
sometimes stand around doing nothing if you had a 'leftover' pet target
from a previous battle.

Now we test pet_target validity before assining it to allies. In cases
where the pet_target is invalid for them, we use the same auto-targeting
behavior we would use if there was no pet_target at all (ie: engage the
nearest visible enemy).

[Commiter's note: restructured some logic to be more consistent with
typical DCSS formatting, put in a check for a possible array out-of-bounds
and rewrote the commit message/name for clarity.]

--------------------------------------------------------------------------------
fa21560ab4 | CrawlOdds | 2026-01-19 06:22:47 -0330

Slightly improve pathfinding code regarding doors
Respect traverse_doors = false when pathfinding without an explicit
monster.

De-duplicate some logic in mons_is_traversable.

[Committer's note: This commit was originally intended to fix an issue that
was fixed differently by 6ed2157, but it still seemed to provide a few
minor improvements, so I rewrote the commit message for the present
context.]

--------------------------------------------------------------------------------
4fbcaa7cee | CrawlOdds | 2026-01-19 06:11:34 -0330

Stop stationary monsters pathfinding
This is causing a bug where you can't rest behind a translucent wall
from a stationary monster.

--------------------------------------------------------------------------------
724aa37818 | tianmaster | 2026-01-19 06:10:38 -0330

Fix mouse clicks sometimes not working for Yes/No prompts on local tiles
A bug was causing mouse clicks on yes/no popups to be ignored on Windows.
Root cause: negative mouse keycodes (for example CK_MOUSE_B1 == -9997) were
sometimes passed to C library character functions (such as
isalpha/toupper). Those functions are defined only for EOF or values
representable as unsigned char; passing negative non-EOF values invokes
undefined behaviour and corrupted the prompt logic. The fix replaces use of
the C library character test with the project’s ASCII-only helper
isaalpha() when checking popup input. Using isaalpha() avoids invoking
undefined behaviour on negative keycodes and ensures mouse clicks are
correctly accepted.

This change only replaces the character test; no other logic was changed.

This hopefully fixes #4968, fixes #4590, fixes #4090, and fixes #3074

[Committer's note: included PR description into the commit message and
noted issue fixes. I hadn't been able to reproduce the original bug on my
end, but the logic seems sound, so I'm keeping my fingers crossed.]

--------------------------------------------------------------------------------
d368c77e55 | CrawlOdds | 2026-01-19 05:37:55 -0330

Fix walking scroll skill display in talisman preview (Zigmound)
Also commonise the skill bonus between the preview and the actual bump.

--------------------------------------------------------------------------------
75daf2358e | CrawlOdds | 2026-01-19 05:28:24 -0330

Fix display for sphinx form airstrike damage (Zigmound)
This was missed in 15d368e.

--------------------------------------------------------------------------------
19414c7176 | CrawlOdds | 2026-01-19 05:13:14 -0330

Make revelation reveal most squares exactly.
This removes aliasing from features such as floors, walls, water,
statues, and fountains, which previously showed as base types when
mapped.

The aliasing wasn't really doing much - vaults are already often quite
identifiable from shapes. Magic mapped levels now look prettier, and we
don't tell small lies to players.

Altars and portals are still mapped to UNKNOWN_ALTAR and
UNKNOWN_PORTAL, because running after unknown altars and portals is
fun.

Small consequences:
- Exclusions placed in unseen terrain now respect the opacity of that
terrain, since we know it from mapping.
- Digging targeters now know whether mapped squares are diggable,
fixing #4509.
- We note any notable features when we map them, if the aliased
feature is notable. This includes orb statues revealing the orb enemy.

--------------------------------------------------------------------------------
97ef6bef7b | RypoFalem | 2026-01-19 04:57:36 -0330

fix: Usk grand finale on wall creatures crash
Don't let the player target creatures inside of walls!

[Committer's note: made the wording of the error printed if you try this a
little more explicit]

--------------------------------------------------------------------------------
478223458f | CrawlOdds | 2026-01-19 04:41:20 -0330

Correctly set tile flavours with multiple terrain changes
This fixes a bug whereby reverting one of a stack of terrain changes
would show the flavour of the base tile. For example:
- Cast bog in shoals, covering an upstair (which has a flavour tile).
- Have a water nymph cover the upstair tile.
- Kill the nymph

This would display a stairs tile (but not allow the player to go up it)

--------------------------------------------------------------------------------
6183c0be11 | CrawlOdds | 2026-01-19 04:30:24 -0330

Fix a bolt of flesh redirection crash
When firing a Zykzyl bolt of flesh with Ru redirection or Dith's
Marionette, we would sometimes crash. This is because the tracer beam
for the attack is aimed at the Zykzyl itself, and the beam sets
stop_at_allies. This causes us to attempt to regress a ray with no
position or direction, which does not work.

We fix this by not regressing self-aimed rays when stop_at_allies is
set.

--------------------------------------------------------------------------------
b2f1d3183e | CrawlOdds | 2026-01-19 04:28:40 -0330

Quickset skill target to maximum skill on talismans
Allow (s) to set a skill target to the max skill, if we are above the
min skill

--------------------------------------------------------------------------------
5558ef20da | gammafunk | 2026-01-18 19:06:03 -0600

Don't place a shaft vault at branch ends
For billiards_dpeg, its theme requires the shaft traps, so just prevent
it placing at the end of Dungeon or Elf. This was found via objstat
error messaging.

--------------------------------------------------------------------------------
e09e3b2ff3 | DracoOmega | 2026-01-18 17:33:50 -0330

Fix spore form burstrooms not functioning with Oka/Sac Love

--------------------------------------------------------------------------------
1d19248046 | gammafunk | 2026-01-18 13:58:54 -0600

Fix the build on CAO
The gcc on CAO can't find a template match for the sort function's
lambda if the lambda's arguments aren't const.

--------------------------------------------------------------------------------
5d7b2d6c54 | DracoOmega | 2026-01-17 12:05:45 -0330

Fix Dith shadow mimic crashing on launcher attacks
65ca641 fixing this for some throwing weapons instead broke it for all
launchers. Oops.

--------------------------------------------------------------------------------
e083ed6eb1 | DracoOmega | 2026-01-17 10:23:21 -0330

Fix a couple vampire form issues
Bat swarm stopped unmelding your gear upon ending since the transformation
was made cancellable in 896e69c (rather to my surprise).

Also using bat swarm at very low shapeshifting skill could cause a
divide-by-zero error.

This closes #5037

--------------------------------------------------------------------------------
7bf3ca080e | DracoOmega | 2026-01-17 08:21:37 -0330

Fix eel hands mutation description (Lici)

--------------------------------------------------------------------------------
eecae2dc58 | Isaac Clancy | 2026-01-17 17:46:27 +1300

Remove the old Blade status description
It is unused as the new Blade status description later in the file is
overriding it.

--------------------------------------------------------------------------------
472da07804 | person50605 | 2026-01-17 17:39:10 +1300

Remove duplicated -Cast description
-Cast in Status.txt is duplicated, so one should be removed.
--------------------------------------------------------------------------------
9ce7d04fbe | CrawlOdds | 2026-01-17 17:07:27 +1300

Don't delete tentacles on terrain change
Friendly and unfriendly tentacles were completely destroyed by any
change to the terrain underneath them. For example, eldritch tentacles
could be deleted by casting hellfire mortar at any segment, or Summon
Forest when the generated pool touched the tentacle.

We fix this by only deleting tentacles when finalizing movement in the
case that the monster has actually moved.

--------------------------------------------------------------------------------
d81e0ca6b7 | Isaac Clancy | 2026-01-17 16:43:37 +1300

Remove the _find_erase function
It used to return true when it erased an element and false when the
element didn't exist. However, its return value is no longer used after
commit fd489b4 so we can just use the erase method instead.

--------------------------------------------------------------------------------
fd489b4778 | CrawlOdds | 2026-01-17 16:32:52 +1300

Don't re-enter shops after they reappear (Flugkiller)
When a shop was covered by a temporary terrain change, it
was marked as unnoticed when it came back, and therefore
reentered.

This was happening because even though temporary changes
don't call unnotice_feature, their reversions do.

We fix this by making unnotice_feature only work on features
which are present (which was already the case for stairs), and
fixing the one caller of this who changed features before
unnoticing them.

Also make a function with an unused return type void.

--------------------------------------------------------------------------------
26f317322f | RypoFalem | 2026-01-17 16:16:54 +1300

fix: Blade-form status text (Undo)
It was simply "hands" (or whatever similar limbs you possessed). Now it
defaults to "blade-form" since eels are the hands-replacer now.

--------------------------------------------------------------------------------
d2f7b3f20f | DracoOmega | 2026-01-16 14:53:27 -0330

Fix monster hellfire mortar giving the player a cooldown (Planckenstein)

--------------------------------------------------------------------------------
d4ab456d0b | DracoOmega | 2026-01-16 05:59:22 -0330

Correct protean talisman description

--------------------------------------------------------------------------------
65ca6418d6 | DracoOmega | 2026-01-16 05:04:22 -0330

Fix a shadow mimic crash with throwing darts (Odds, Rypofalem)
Dith shadow mimic isn't supposed to mimic throws of darts or throwing nets,
but if the player threw the very last of a stack of darts or throwing nets,
the item would have lost its type information by the time the shadow would
try to act, resulting in the shadow attempting to throw a non-misile (and
crashing).

Now, we check and save the missile type *before* shooting instead.

--------------------------------------------------------------------------------
831a5dbace | Isaac Clancy | 2026-01-16 16:41:22 +1300

Fix tile picking for floor and rock wall tiles
We were picking the first variant of the tile less often than we should.
Also in halos around shops in bazaars, the floors tiles that were
supposed to use the first variant were instead using a random variant.

--------------------------------------------------------------------------------
a34795eeb1 | Isaac Clancy | 2026-01-16 15:52:38 +1300

Fix bailey wall tiles being red
Bailey rock wall tiles aren't supposed to be the same colour as what
console uses for rock walls. However, an oversight in commit 6dfb6d6
made them use the same colour.

--------------------------------------------------------------------------------
51a8449324 | regret-index | 2026-01-15 19:15:49 -0330

Vault review, mostly 0.34 Troves and talismans edition
 * With slightly more talisman variety provided this version and the
   continued delays on much further Shapeshifting reworks that'd permit
   more divine support for talisman distribution, the unique-per-vault
   Lair end talisman chance has been nudged up from 10% to 12.5%. The
   Bailey fortress talisman chance remains 10%, but also gets a 5% chance
   to place blade talismans as well (as are now weapon skill agnostic).

 * Some talismans distributed by tier have been juggled around to
   accomodate the new eel and spore talismans plus the blade talisman
   nudge upwards. The talismans have also been distributed around a
   small bit, with spore talismans in particular leaning a bit towards
   decorative fungus vaults with the lack of general plant enemies
   earlier on, and eel talismans unsurprisingly placing in water heavy
   vaults.

 * A ranged weapons check has been added to troves to deal with various
   brands (like spectral and reaping) being incompatible with those
   weapons. As such, for characters with more ranged weapons skill than
   any other weapon skill, Eringya's Secret Bog provides longbows (as are
   loosely appropriate for that wooded marsh) and The Dread Knight's
   Derelict Chapel simply just focuses on draining ranged weapons.

 * Rutra's Hidden Sanctum (the Hexes and Stealth trove) no longer
   generates for characters who have less than 1 Stealth skill.

 * Other Trove item improvements include providing troll leather armour
   randarts whenever one would previously get normal leather randarts,
   one more spell in each book, slightly more manuals than previously,
   some slightly higher consumable stacks for many different items,
   enhancer auxes properly managed fore the The Name-Rending Infernalists'
   Reservoir and Ozocubu's Refridgerator, more Strength n randarts in
   Leda's Sunken Stockpile, and slightly higher odds to get the Octopus
   King's Garden as is the main jewellery trove.

 * I've fit in a single new custom shop vault, finally providing an
   air-themed shop to parallel the earth-themed shop added 13 years ago,
   also meant to help slightly increase the amount of eel talismans
   available per game.

 * wall_brick_lightred has had its colours slightly tweaked down towards
   reasonability while it is currently buggily in Bailies, just in case
   it ends up being used in other vaults anyway.

--------------------------------------------------------------------------------
fe285fc20f | DracoOmega | 2026-01-15 16:48:31 -0330

Fix a typo (Autarch)

--------------------------------------------------------------------------------
da32257750 | DracoOmega | 2026-01-15 14:33:27 -0330

Forbid Bane of Multiplicity from cloning certain doom sources
I hesitated on this one a few times in past, but Multiplicity already
doesn't clone uniques due to their outsized danger level, and it was a
rather unfortunate high-roll when Multiplicity given by a raven or orb of
entropy immediately made more of them, creating this wildly spiralling doom
train.

(Other sources of doom by monsters I didn't think were significant enough
to be included in this restriction.)

--------------------------------------------------------------------------------
2e2d93d1b1 | DracoOmega | 2026-01-15 14:30:53 -0330

Fix burstshrooms taking longer to explode, the faster you are (Lici)
I have no idea how I ended up coding it this way, but the timer was being
decremented by the length of the player's last action, but on each
normal-speed monster turn (meaning you could quadruple the timer by using
something like a speed rapier compared to waiting in place).

--------------------------------------------------------------------------------
c248fe702d | DracoOmega | 2026-01-15 13:42:19 -0330

Fix blade form parrying description
(The property mentioned never made it to trunk at all.)

--------------------------------------------------------------------------------
e9291b7dbb | DracoOmega | 2026-01-15 12:18:00 -0330

Fix webtiles build

--------------------------------------------------------------------------------
e483190f8a | DracoOmega | 2026-01-15 11:41:37 -0330

Mildly nerf Cassandra's death ambush
Make only the first monster placed be drawn from a slightly deeper floor
(instead of all of them) and also fix a bug that resulted in creating one
more monster than was intended.

--------------------------------------------------------------------------------
fb219259bb | DracoOmega | 2026-01-15 11:41:37 -0330

Mildly buff orbs of entropy
They have overall been lagging a little behind the other orb types, so this
nudges their acid ball damage from 3d35 to 3d38 and increases the average
Doom inflicted by their Ill Omen by 18.

(Other monsters using these spells should be unaffected.)

--------------------------------------------------------------------------------
c933c76192 | DracoOmega | 2026-01-15 11:41:37 -0330

Rename Amulets of Alchemy to Amulets of Chemistry and buff
These were always intended to provide a viable alternative to amulets of
Magic Regeneration, even if the caster wasn't specifically benefitting from
the alchemy enhancer, but I fear their name may have done them no favors
in that regard; multiple players assumed they weren't supposed to be worth
it unless you were using alchemy spells heavily. On top of that, this
resulted in artrops of Alch and Alch+ meaning somewhat different things,
which wasn't the most intuitive.

In addition to the rename, I've increased the average MP recovery effect by
~50%. (I actually fear this might be a little too good, but given player
response thus-far, it seemed fair to try it.)

--------------------------------------------------------------------------------
1c91e836e4 | DracoOmega | 2026-01-15 11:41:37 -0330

Gently buff Concussion brand
While a number of players reported that the brand felt fun to play with,
they also felt the payoff for disrupting your own positioning was a bit
inadequate.

This increases the average ministun by 1 aut and the average wall slam
damage from 25% to 33%.

--------------------------------------------------------------------------------
896e69cf7e | DracoOmega | 2026-01-15 11:41:36 -0330

Buff vampire form
Generally considered to be a little underperforming (even if fun), this
commit adds a new property to help their stealth gameplay in a unique way:
when living/demonic/holy monsters first notice a player in vampire form,
they have a 75% chance to be momentarily dazed - skipping their turn and,
importantly, preventing them from shouting. If they fail a Will check, they
will be dazed for several turns longer.

This improves a vampire's ability to stab (and thus interact with other
parts of their kit) in a way that stealth alone could not - even while some
monsters are aware of you, their bandmates may still be sleeping and ripe
to turn to your side.

In addition, some changes have been made to their Bat Swarm ability:
 -The transformation is no longer uncancellable, so the player can manually
  leave it early in order to stab a monster who has been put to sleep.
  (I deliberately disallowed this in the original design since I felt it
  would make the ability primarily an offensive tool rather than an escape
  option. However, given the XP recharge involved, it may be okay to allow
  this.)
 -The amount of clouds created no longer scales with shapeshifting skill.
  In general, less will be made immediately and they will have a shorter
  duration, but they will be generated more rapidly while remaining in the
  form.
 -The XP cooldown is now shortened by shapeshifting skill (though it is
  somewhat slower at 17 skill than previously).

The chance of performing a vampiric attack while at low health also no
longer scales with shapeshifting skill and is always 66%.

I realize that vampire form already had a lot going on and this introduces
a new mechanic on top of that, but it was hard to figure out what to prune
from it due to how they are all so thematically connected to the identity
of 'being a vampire' or work specifically in combination with each other.
(And several players specifically requested that the thrall mechanics be
kept in any rework of it.) Hopefully it dovetails smoothly enough into the
rest of what the form does that the complexity it adds isn't excessive.

--------------------------------------------------------------------------------
20f7a15910 | DracoOmega | 2026-01-15 11:41:36 -0330

Give sphinx and vampire forms See Invis
All monsters of these types have that (and the vampire species also did,
while it existed). While we aren't obligated to keep parity all of the
time, this seems like a reasonable thing to add.

--------------------------------------------------------------------------------
1a44b612b2 | DracoOmega | 2026-01-15 11:41:36 -0330

Allow werewolves to wear helmets and cloaks
The complete melding of aux armour was originally maintained as a reference
to the beast form that it 'replaced'. However, while werewolf is often
reported as fun, it has felt just a little undertuned defensively; this
may be sufficient help.

--------------------------------------------------------------------------------
bc97a53049 | DracoOmega | 2026-01-15 11:41:36 -0330

Buff fortress crab form
Slightly reduce the cost of Breathe Rust and increase the scaling factor of
its AC multiplier (from +135% at max skill to +150%).

In addition, the form now doubles the effectiveness of most egos/artprops
on the body armour (eg: rF+ becomes rF++, Int+6 becomes Int+12). This does
not allow things to stack that would not otherwise, but essentially acts as
if the player had a second copy of it equipped - whatever that would do.

It doesn't do anything for unrand-only effects (which typically rely on a
boolean check for whether the item is equipped and don't have a
'centralized' place to double anything about them - unlike standard
egos/artprops. I'm not convinced the complexity of implementing this on a
item-by-item basis is worth it; this already does plenty of flexible
things.

--------------------------------------------------------------------------------
31b8f63195 | DracoOmega | 2026-01-15 11:41:36 -0330

New protean form: Spore
Replacing Maw's old slot as a tier 2 form obtainable from a protean
talisman, this form transforms one arm into a mass of rapidly-growing
fungus. It melds offhand and boots, gives your melee attacks a 50% chance
to weaken any breathing monster on hit, and also grows a line of 3
burstshrooms directly behind what you hit. These burstshrooms are
stationary monsters with relatively low HP, but if allowed to live for
several turns, self-destruct in a burst of spores that deals moderate
damage and has a small chance of dazing enemies hit (and ignores allies
entirely).

They provides a multi-purpose tool which can be used as both an
obstruction and a damage source, in the proper terrain, potentially
splitting bands apart and delaying enemy reinforcements through a
combination of their bodies and any daze they might inflict. WJC
worshippers can deploy these mushrooms even more flexibly and
Fedhas-worshippers can shoot through them.

It should hopefully be a more exciting roll than Maw was on a shapeshifter
start (while also not having the awkward property of being better later in
the game).

--------------------------

Spore form player doll, talismans, and burstshroom tiles were made by
regret-index, using CC0 fungi units made by Blarumyrran, CC0 mushroom dogs
commissioned by Screen Smith Studios released to the public domain, and
CC0 robot assets made by Emcee Flesher. The felid form tile combines each
of these with the statue felid tile made by Sastreii and the vampire felid
tile made by LemurRobot.

--------------------------------------------------------------------------------
a11072b179 | DracoOmega | 2026-01-15 11:41:36 -0330

Replace Blade Hands with Eel Hands, rework Blade talisman for 17 skill
Blade hands was left largely untouched by 0.33's talisman changes (meaning
largely unchanged since many versions before that). It may not have seemed
particularly bad on paper, but given its relatively low rate of use, I
think that what it offered (ie: 'higher single-target UC damage in
exchange for worse defenses') was not really what most UC characters in
midgame were looking for. When it was a form a background started with,
this was less true, but there are good odds of a player having access to a
multitude of other more appealing forms by the time they find a blade
talisman.

So this commit adds a new form to replace its position of 'mid-tier
UC-only talisman that melds few slots' while repurposing the talisman's
theme for a replacement to Maw's old role as 'quick blade aux synergy' at
an even higher tier.

Blade form (now 17 min skill) now causes blades to grow out of many
*other* parts of one's body instead of their hands, providing a pair of
moderate damage auxes and also a parrying bonus (like the glove ego) that
is directly increased by any source of slaying one has. It retains the
base body AC penalty the form currently has. This should be stronger in
its role of 'turn a quick blade into a blender' than maw form currently
is, but hopefully better-balanced by taking more skill to attain
(especially when combined with the quick blade mindelay change). (It might
also make the high blade talisman chance in the Hall of Blades actually
matter to anyone...)

And at 12 min skill there is Eel Hands, which is... approximately what it
says on the tin. This melds the same things that blade hands did, provides
rElec, a smaller UC base damage improvement, and gives your melee strikes
a chance of performing a mini-arcjolt (striking between 3-6 connected
targets at random). When brought to 50% of your max HP or below, they will
unleash a full-size arcjolt instead (with double the base damage of their
melee strikes). This should hopefully be a bit more interesting than Just
More Damage and who *hasn't* wished they could replace their hands with
eels? Well, the future is here now.

----------------------------

Eel hands form and talisman tiles, as well as adjustments to blade form
and talisman tiles, were done by regret-index. The eel talisman uses
Denzi's old Aizul tile and unused Trident of the Octopus King tile by
roctavian, while the default form tiles use an unused Spellbinder player
doll tile. The felid form tile separately combines Sastreii's dragon felid
tile with tentacles from a rejected tentacled monstrosity tile by
roctavian.

Blade form tiles were made using Denzi's original blade hands tile,
ontoclasm's felid and octopode blade tiles, and Sastreii's current blade
talisman. The felid form tile also combines these with roctavian's old
black bear tile.

--------------------------------------------------------------------------------
62f4531df0 | DracoOmega | 2026-01-15 11:41:36 -0330

Rework Maw form
Maw form provided a very strong boost to the direct damage of fast attacks
(short blades in particular) for relatively little investment or downside.
There were arguments that it flattened short blade gameplay by making it
too easy to increase one's direct damage to the point where one could
ignore some of the more unique ways that short blade gameplay theoretically
differs from other weapons (ie: stealth/stabbing).

On top of that, it was also not particularly good as a roll from protean
talisman in the earlygame, providing less upfront power compared to other
options.

As part of a group of changes, this moves maw back to 12 skill, gives it a
more impactful (and hopefully interesting) downside, makes its power a bit
more equitable between weapon types, and alters its healing mechanics.

-Maw's bite is now aut-normalized, attacking once per 15 aut on average.
-Maw's base damage is lower, but also directly increased by 3/4th of the
 player's strength.
-Instead of a direct healing effect (with some... rather unusual math
 involved...), all eligible melee kills in Maw form now provide a short
 duration of greatly accellerated regeneration. This works out to a fair
 bit more healing on average than before (but less rapidly, especially if
 killing multiple enemies quickly.) and with a more intuitive scaling from
 shapeshifting skill.
-The 'chance of growl on spotting an edible monster' now also mesmerises
 the player briefly. Unlike the Obsidian Axe, this is not a permanent
 effect, and won't immediately snap to another monster when that one is
 killed, so it shouldn't be too awful, but should provide a relevant and
 distinct downside that doesn't rely on melding gear.

Overall, this talisman should still fit the role of 'give more melee damage
to any weapon and provide healing on kills' while having a somewhat wider
range of characters interested in using it and more equitable up/downsides.
(I realize that 'wants high strength, yet penalizes heavy armour the most'
may sound contradictory, but my hope is that this provides a natural
counterbalance to maximizing value from this form, and opens up the door
for some less conventional combinations.)

--------------------------------------------------------------------------------
b52b5aec39 | DracoOmega | 2026-01-15 11:41:36 -0330

Handle player regen before durations are decremented for the turn
This meant that statuses which increase the player's regeneration (like
Trog's Hand or rollpage) could expire without doing anything at all that
turn - especially if the player was taking slow actions.

This is a pretty small deal most of the time, but a subsequent commit will
add a very short-duration regen effect where this could often eat up the
majority of it.

I cannot see any clear reason why things were handled in this order, or any
other negative consequence that might happen by reordering them, but I may
be wrong.

(I also took the time to tidy some code into _decrement_durations() which
specifically had been left out since they *had* to happen after regen.)

--------------------------------------------------------------------------------
9b4b4b4e27 | DracoOmega | 2026-01-15 11:41:36 -0330

Replace mountainshell's Seismic Stomp with a new spell
Mountainshells didn't really function very well in practice. As slow
enemies with limited range, they were too easy to ignore in many
circumstances - especially when combined with the massive damage reduction
offered by flying. While I'd hoped to get some reuse out of seismosaur's
signature move, it wasn't really designed to be used *against* the player
and this context probably ultimately wasn't very good for trying it.

So let's try something else.

Landbreaker has similar targeting to Seismic Stomp (ie: multi-enemy smite
targeting), but is full LoS range, does not have its damage reduced by
flying, and also places a bunch of piles of rubble around targets. These
are placed generally *behind* the enemies (relative to the mountainshell),
with a few scattered elsewhere. They are pretty fragile and only last a few
turns, but can extremely mess up any plan of 'just run away from the slow
monster' while not generally preventing approaching and killing it.

The base damage and cast rate are both slightly lower than Seismic Stomp at
the moment, but hopefully this will work better as a design for a high
threat Lair enemy.

--------------------------------------------------------------------------------
8591c0d20d | DracoOmega | 2026-01-15 11:41:36 -0330

Lower fire dragon scales evasion penalty
Fire and ice dragon armours were both the same weight, despite fire
offering 1 less AC. The original logic was that rF was much more valuable
than rC, but since orbs of fire are no longer in 100% of games, this isn't
nearly so true anymore.

There was talk of raising fire's AC to match ice, but I've gone with the
alternate proposal of lowering fire's ER instead, to keep them a little
more differentiated.

--------------------------------------------------------------------------------
e9d7159132 | DracoOmega | 2026-01-15 11:41:36 -0330

Raise skill required to reach mindelay with quick blades to 20
Quick blades more dramatically outclass the other weapons of their type
than is true for any other weapon category. Moreover, they do this by
enough that the 'weaker in direct combat, but with stealth/stabbing
capabilities' which otherwise distinguishes short blades can get lost: with
a quick blade, a suitable character can be just as strong in a straight-up
fight as with any long blade (perhaps even moreso).

It seems reasonable to ask a little more investment for this
archetype-blurring power (especially since their low base damage also means
that short blade skill contributes almost nothing to non-stabbing damage
beyond mindelay). (And who knows; this might make any other weapon even
slightly competitive on vine stalkers...)

--------------------------------------------------------------------------------
88b0e15926 | DracoOmega | 2026-01-15 11:41:36 -0330

Increase base shop price of orbs

--------------------------------------------------------------------------------
488a47978c | DracoOmega | 2026-01-15 11:41:36 -0330

Make parchment cost non-linear with respect to spell level
High level spells didn't really cost very much compared to how much value
they offered to characters interested in buying them (or how much a
high-value item of some other type might cost).

This makes low-level spells slightly cheaper than previously, while higher
level spells are much more expensive. (Books don't get nearly so much of a
price increase; their rarity makes it okay for them to be a 'bargain' in
some cases, and they often contain spells the player isn't likely to want
anyway.)

--------------------------------------------------------------------------------
632d4e4742 | DracoOmega | 2026-01-15 11:41:36 -0330

Increase Fortress Blast's explosion radius
While I think the spell is underrated, it's also fairly unpopular. This
should help it be a little more flexible with hitting the targets you want
it to hit, while increasing its power when dug in against many enemies.

(I'm actually mildly concerned this is too much of a buff, but we'll see
how it feels in practice.)

--------------------------------------------------------------------------------
0ab831f937 | DracoOmega | 2026-01-15 11:41:36 -0330

Gently nerf Sphinx Sisters
Make their HD a little lower and their duration a little shorter.

(I kind of wanted to do something more interesting with this, but in lieu
of figuring out what that is, let's try something simple.)

--------------------------------------------------------------------------------
85b8b39504 | DracoOmega | 2026-01-15 11:41:36 -0330

Tweak a few things about temporary terrain changes expiring
When multiple tiles are reverting at once, sort them near-to-far from the
player's perspective, and redraw any that were in the player's LoS at the
start of the turn.

This is especially important now that hellfire mortar's path reverts 2
tiles per turn - otherwise the player can be pushed through walls in
unexpected ways, and also paths dug through walls otherwise left 'ghost
lava' stuck behind walls that reappeared closer to the player.

--------------------------------------------------------------------------------
7307a61322 | DracoOmega | 2026-01-15 11:41:35 -0330

Speed up Hellfire Mortar terrain reversion and give it a cooldown
Widely considered one of the strongest spells in the game at the moment,
this commit aims to foremost tune down its uses in scenarios where it can
reliably block enemies approaching entirely - hopefully without being
overly harsh in other scenarios.

Instead of being unable to recast the spell while a mortar is active, you
are now unable to recast the spell while lava from the previous cast
remains (more or less - the cooldown isn't linked to the presence of lava,
but its duration is set to match it, so only in rare scenarios will they
disagree). The lava also expires much faster than before once the mortar
is complete, reverting 1 tile per 5 aut.

This equates to a roughly 4 turn downtime between mortar activations, but
significantly this is also time where the terrain obstruction is waning,
allowing blocked monsters to approach (and maybe even render your
chokepoint ineffective).

The hope is that the spell remains powerful and fun to use, while being a
little less dominating in specific scenarios.

--------------------------------------------------------------------------------
c46cf17215 | DracoOmega | 2026-01-14 12:47:38 -0330

Fix getting eternally trapped in the Abyss.
Since 1e4f93a, any time the player transitioned to a floor of the Abyss,
the depth they were sent to was based upon their XL. However, this also
happened to include *returning* to the Abyss from a use of Okawaru's Duel
ability. If a player Duelled a monster while inside the Abyss, then
returned to a different floor of the Abyss than the one they'd started the
duel on (which is possible, due to random roll), this wouldn't pop the old
Abyss floor from the level stack. Meaning that if the player exited the
Abyss, they would instead reenter whatever floor they started the duel on.

This changes Abyss default depth code to only apply specifically to taking
DNGN_ENTER_ABYSS and DNGN_EXIT_THROUGH_ABYSS, which hopefully covers all
cases it *should* apply. And also adds some 'rescue' code to pop erroneous
Abyss entries from the level stack when attempting to exit.

This fixes #5025

--------------------------------------------------------------------------------
2e14fdc65b | Isaac Clancy | 2026-01-12 22:02:20 +1300

Fix crash with Majin Bo and death ego
The health cost of casting with Majin Bo or death ego is capped so that
it won't reduce your health below one. However, if you had both the
total health cost could reduce you below one health triggering an
assert.

--------------------------------------------------------------------------------
43051b6e75 | CrawlOdds | 2026-01-12 10:14:18 +1300

Use projectile not item names in beams
This fixes messages like:
"A runed longbow appears from out of thin air!"

--------------------------------------------------------------------------------
17a993e2a6 | DracoOmega | 2026-01-11 02:54:21 -0330

Update the changelog with recent changes

--------------------------------------------------------------------------------
d38d1f0726 | gammafunk | 2026-01-09 21:05:14 -0600

Revert "don't try to knockback dead felids (Peminali)"
This is no longer needed with 9cbdf468.

This reverts commit dccbf096d503e1ce9fc1614fb407225be1621253.

--------------------------------------------------------------------------------
2053a0841c | gammafunk | 2026-01-09 21:05:04 -0600

Fix gcc warnings
Specifically -Wswitch doesn't like it when we have unhandled cases. Use
COLOUR_UNDEF as a switch default or simply return COLOUR_UNDEF within a
case as appropriate.

--------------------------------------------------------------------------------
9cbdf468a0 | Isaac Clancy | 2026-01-10 15:10:05 +1300

Don't run bolt post hit effects on dead felids
The messages from affecting the player aren't well worded for a dead
player. Post hit effects can also result in a crash if they try to
knockback the player. It is also inconsistant with monsters which don't
get post hit effects from bolts if they die.

--------------------------------------------------------------------------------
dccbf096d5 | brandon s allbery kf8nh | 2026-01-09 19:55:57 -0600

don't try to knockback dead felids (Peminali)

--------------------------------------------------------------------------------
92a84f719c | Isaac Clancy | 2026-01-10 14:13:21 +1300

Simplify TabbedRegion
It had support for buttons that activated a command when pressed
instead of bringing up a list of commands. However, this hasn't been
used since commit d016549 and would need some fixing if it were to be
used again. It also had the remains of support for adding the regions at
arbitrary indices, but they have been added to the end of the list of
regions since commit a8d0a72. Stripping out support for both of these
things makes it much easier to see what TabbedRegion actually does.

--------------------------------------------------------------------------------
6af55ba296 | Isaac Clancy | 2026-01-10 06:49:33 +1300

Add variaty to icy and slimey floor tiles under features
When drawing a slimey floor without a feature on top of it, we choose
its tile from a number of slimey floor tile variations. However, when
drawing it under a feature (e.g. under a harlequin trap) it would always
use the same tile variation. The same was also true of icy floors from
frozen ramparts. Instead, also choose from all the variations when
drawing under a feature.

--------------------------------------------------------------------------------
2595f5352e | Isaac Clancy | 2026-01-10 02:19:34 +1300

Fix animation of lava in local tiles
Animated tiles must have their weight set to 1 to work in local tiles
or some of the animation frames will not show up.

--------------------------------------------------------------------------------
b1822221d7 | Isaac Clancy | 2026-01-10 00:54:06 +1300

Don't allow opening your inventory when it's empty
Opening it results in an infinite loop. There is also a comment in the
code that gets into an infinite loop saying that you shouldn't be able
to open your inventory when in is empty and you already can't open the
drop menu when your inventory is empty.

--------------------------------------------------------------------------------
12c0fc42ba | Isaac Clancy | 2026-01-09 22:45:31 +1300

Rework how dungeon and depths wall tiles are picked
When picking wall tiles for the dungeon and depths, we pick the tiles
from multiple tile groups. When deciding which tile group to choose a
tile from we would weight the tile groups by the total weight of all
the tiles in the group. However, some of the tile groups were torches
which have a cycling animation and cycling animations require special
casing if the tiles that make up the group don't all have a weight of
one. Also, adding an extra animation frame to a torch would result in
the torch becoming more common. We also couldn't easily adjust which
tile groups were more often picked based on depth in a branch but could
only really double the weight of a tile group by adding it to the list
to pick from twice. Instead, specify the weight for each tile group when
adding them to the list to pick from.

--------------------------------------------------------------------------------
5d53f75e5c | Isaac Clancy | 2026-01-09 21:52:57 +1300

Fix corruption sometimes not recolouring stone and metal walls
Some branches were using coloured tiles for their stone or metal walls.
For example, Zot 2 was using TILE_DNGN_STONE_WALL_BLUE as the tile for
its stone walls. However, such tiles have no colour variations and thus
can't be coloured based on the grid colour of the square. Instead, use
the non-coloured version of the tile and when colouring based on grid
colour use a default colour based on the location and feature type if
no grid colour is set.

--------------------------------------------------------------------------------
7c99853ffd | DracoOmega | 2026-01-09 03:44:14 -0330

Nudge colossal amoeba stats downward a little
I've been surprised at how overrepresented these have been as killers in
new Slime. It's not entirely clear to me how much is their raw danger level
and how much is people not yet handling their swarm mechanic with the
proper respect (even though you'd think marrowcuda would have taught that
already....).

But they were never intended to be quite so top-end a threat, so I'm
lowering some of their numbers anyway. We'll see if more is warranted over
time.

--------------------------------------------------------------------------------
39a3438d4a | DracoOmega | 2026-01-09 03:40:18 -0330

Make Slimy stairs regenerative
While a lot of players report that new Slime is more fun than it was prior
to its various changes, it is possible its difficulty is also tuned
slightly too high. This is an attempt to make it feel a little safer in a
novel way.

When the player takes a slimy stair down, they now become coated in
regenerative ooze that greatly increases their HP/MP regeneration for a
short while (4% of your maximum per turn, for 17-21 turns). This makes
taking stairs a safer emergency option when injured, while also defraying
some of the danger if one arrives into a particularly horrible situation.

This should hopefully make the stair behavior feel a little more 'fair',
while preserving some of its unique gameplay dynamics.

--------------------------------------------------------------------------------
2c5a25a675 | regret-index | 2026-01-09 03:40:17 -0330

Add guaranteed Jiyva altars to Slime:2-4 + a 50% for an altar on Slime:1
The attempts to make the slimy rune and silver rune be closer in
difficulty to each other this version weren't meant to also narrow down
the capacity for characters to deliberately dive into danger and take
Jiyva as a midgame god switch or lategame third rune source. To compensate
for the increased difficulty in actually finding the downstairs, to allow
Slime visitors an emergency option for escaping the branch earlier than by
TRJ's side, and to make the increased emphasis on exploring Slime's floors
to have more of a tangible pay-off than just finding stairs, I am adding
more reliable Jiyva altars to each of Slime's floors. (There is, after
all, already a 66% chance to find a Jiyva altar in Lair right outside
Slime to skip most of it in the first place.)

This manifests as a guaranteed tiny altar vault that places 100% of the
time on Slime:2-4 and 50% of the time on Slime:1 (where one isn't fully
committing to the dive by going down slimy stairs, but also where one can
still encounter endgame threats). The odds of this may be adjusted with
feedback from deliberate Jiyva worshippers, but it should be a good
start as is.

--------------------------------------------------------------------------------
a977bc715b | regret-index | 2026-01-09 03:40:12 -0330

Move four items out of V:$ and into Slime:$
The rewards between the last floor of Vaults and the last floor of Slime
were never much close to equal previously, which was fine when there was
one notable regular enemy in the branch alongside the fixed TRJ fight and
Jiyva conversion as a free third rune out. Now that Slime's difficulty
has been raised with the deliberate design goal of making it any comparable
to V:$ as a rune (always a pressure when the branch has less variety than
V:$ and the divine option to skip it), the gap between these two item
rewards is notably more tangible than previously. However, handing out
indefinitely more items to each third rune hurts the comparative risk
factor of entirely optional endgame branches choices (Elf, Crypt, possibly
dipping into e.g. Zig:1-3).

As such, to help Slime be more rewarding beyond experience, I am replacing
a single item from each of V:$'s quadrants with a generic stack of gold,
while adding four more items to Slime:$'s sealed loot areas, so that the
rewards are somewhat more equatable between the two branches. It's a mild
nudge, but it should still help for overall comparison purposes.

--------------------------------------------------------------------------------
332d4de64d | DracoOmega | 2026-01-08 02:55:00 -0330

Remove warding/paradox buffs from orc apostles after challenges are won
It was possible they had been given these due to banes the player had. And
as fun as it is to imagine, you *probably* shouldn't be able to get
perma-warded apostles this way.

--------------------------------------------------------------------------------
e2f8220cfa | DracoOmega | 2026-01-08 02:46:32 -0330

Make Bane of Mortality less likely to do nothing at random
The chance to summon a reaper when below 50% HP was 'only' 50% (and
incurred a cooldown). While reasonably high-sounding on paper, the number
of times a player is even eligable to summon one while the bane lasts may
be few, and it was very possible to win the coinflip every time.

Now, a reaper will *always* be summoned when its criteria are met (but the
player must by 40% HP or less instead of 50%). This should make it more
consistently relevant, but also slightly more in the player's hands due to
the injury threshold.

--------------------------------------------------------------------------------
1d6cdb0edc | DracoOmega | 2026-01-08 02:28:21 -0330

Greatly increase activation chance of the elemental side-effect banes
These could be situational enough as-is (not every area of the game is even
capable of dealing the damage type in question) and in combination with
how much resistances lowered the application chance, they just didn't feel
relevant enough in practice. This may help.

--------------------------------------------------------------------------------
202409afd0 | DracoOmega | 2026-01-08 02:08:08 -0330

Cap how many things can be affected by Bane of Warding at once
In order to ensure the effect was relevant, when Bane of Warding triggered,
it would affect all monsters in LoS of the triggering monster at once. In
most situations this was fine, but Ziggurats in particular could cause this
to affect a fairly absurd number of monsters at a time (and a few other
circumstances like V:5 arrival could be likewise bad.)

Now, cap the number of things given warding at once to 9 (starting with
those closest to the triggering monster), but increase its baseline trigger
chance very slightly.

--------------------------------------------------------------------------------
bbcbbbde35 | DracoOmega | 2026-01-08 01:58:01 -0330

Make Bane of Claustrophobia count all solid features and also affect spells
This should make it a little less free as a Trove cost for some characters,
as well as making it arguably more consistent about what counts as
'confined space'.

(It now give -10% spellpower per adjacent solid feature, calculated based
on the final capped spellpower, just like the Diminished status is.)

--------------------------------------------------------------------------------
241dbe38a3 | DracoOmega | 2026-01-08 00:53:31 -0330

Fix/tweak the jewellery_prompt option (rypofalem)
It was still skipping the prompt when the player tried to put on a ring
while their ring slots were full of identical rings. It should now prompt
here, as expected.

However, some of the original behavior of this option is difficult to
preserve. There *isn't* any concept of 'different ring slots' anymore to
force the player to choose from when multiple are empty. So, I have edited
the option description to no longer say that it does anything in this case.

--------------------------------------------------------------------------------
43dcba86e6 | DracoOmega | 2026-01-08 00:53:31 -0330

Prevent +Blink on artefact spider talismans (tekkud)
It is strictly worse than their jump ability, and currently shares a
cooldown with it.

--------------------------------------------------------------------------------
232e81ce3b | DracoOmega | 2026-01-08 00:53:31 -0330

Fix a crash with involuntary forms expiring over deep water (Sloweel)
If the player was polymorphed into a flying form, moved over terrain that
required flight, and this polymorph wore off while the player's default
form was some talisman without flight, the game would crash. (Essentially
because transforming the player back into their original talisman form
would fail due to terrain.)

Instead, allow involuntary transformations to happen regardless of terrain
under the player, but veto forms which *would* require emergency flight in
player::polymorph itself, so that they won't even be attempted. This
hopefully means the only case of involuntary transformations that 'drown'
will be polymorph itself expiring.

(I also removed an unused argument of ::polymorph() while I was at it.)

--------------------------------------------------------------------------------
46b4082e56 | DracoOmega | 2026-01-08 00:53:31 -0330

Cap player sphinx form AF_AIRSTRIKE damage at 7 open spaces
The talisman properties table already assumed this was the max (since the
player must occupy 1 of the 8 spaces), but Manifold Assault could
technically hit something with 8 open spaces.

Rather than make the talisman properties either 'lie' or give a number that
isn't practically attainable except by a specific spell, just cap the open
spaces at 7.

--------------------------------------------------------------------------------
a61296fdad | DracoOmega | 2026-01-08 00:53:31 -0330

Fix monster Manifold Assault changing how long a turn took (Darby)
When a monster cast Manifold Assault, it would change you.time_taken,
resulting in the turn appearing to be a different length of time than it
actually was from that point onward.

This had less dramatic effects than one might think, since it could only
happen *after* monsters has been given their energy for the turn (which
means it could never result in an incorrect number of monster actions). But
it could affect things like the spread rate of clouds, how much time was
lost from status effects that decrement at the start of the turn (like
paralysis), damage taken by constriction, and a handful of other things.

--------------------------------------------------------------------------------
211a50b041 | DracoOmega | 2026-01-08 00:53:31 -0330

Make hostile monsters no longer aware of all player immunities
This was accidentally introduced by af31bf4 but I had hoped to fix it with
a more complete solution of exposing 'obvious' immunities (such as from
being undead) while still hiding resists from gear and other things. (This
would address several existing issues with monster bolt of draining and
dispel undead that currently result in monsters being unwilling to cast
them on other monsters if the *player* is immune, for example.)

Unfortunately, other tasks have taken too much time this version, so I am
just rolling back to the prior state for now. I still hope to address this
properly in 0.35, but this is at least better than leaving it as-is.

--------------------------------------------------------------------------------
be59399d3f | DracoOmega | 2026-01-08 00:53:31 -0330

Reduce the speed with which the Abyss rune can be found on depth 4 and 5
Prior to the Abyss XL change, the rate at which the player could encounter
the rune at depths lower than 3 effectively had to factor in the length of
time it would take to find the stairs required to descend that low in the
first place (at least, most of the time). Now that endgame players skip all
that and enter Abyss:5 directly, I feel the average time-to-rune is just
too brief.

The rate at Abyss:3 and 6-7 are unaffected (the latter is mostly academic
anyway, since there's no way to end up there without a rune unless you're
deliberately being weird.) But Abyss:5 should now only be ~2.2x as fast as
Abyss:3 instead of ~4.7x.

--------------------------------------------------------------------------------
8865f5c8a7 | DracoOmega | 2026-01-07 22:50:58 -0330

Warn the player of their default Abyss depth before entering (Ge0FF)
The prompt for taking an Abyss entrance now includes the maximum depth that
the player could arrive at. This information is also visible when examining
the entrance itself, as well as looking up the branch with ?/b .

--------------------------------------------------------------------------------
99aa80d3ce | DracoOmega | 2026-01-07 22:36:33 -0330

Make default Abyss depth depend on skill_cost_level instead of XL
This makes it species-agnostic (ie: formicids don't end up tossed into a
deeper Abyss floor than a draconian who is equally far into the game) and
also avoids an issue where Ru's Sac Experience preventing a character from
reaching XL 27 would mean they would never get Abyssal loitering penalties.

--------------------------------------------------------------------------------
964c6d7466 | DracoOmega | 2026-01-07 22:08:33 -0330

Fix exiting Pan through the Abyss not using the correct depth (Hammock)

--------------------------------------------------------------------------------
75d9d1cd66 | DracoOmega | 2026-01-07 22:06:21 -0330

Don't crash on throwing missiles into lava

--------------------------------------------------------------------------------
e88a74dfdf | DracoOmega | 2026-01-07 11:08:38 -0330

Fix Dithmenos shadow shoot triggering off darts and throwing nets
Accidentally broken by 9780205.

--------------------------------------------------------------------------------
c547702c78 | DracoOmega | 2026-01-07 08:09:42 -0330

Fix Ru-redirected ranged attacks
If an attack was redirected to the attacker, there would be a crash in
ray.regress(). But even if there wasn't, they still wouldn't be able to
actually hit anything this way.

--------------------------------------------------------------------------------
0913d0b2e5 | DracoOmega | 2026-01-07 08:09:37 -0330

Fix aborted ranged attacks in melee automatically bashing instead
If the player was prompted for a ranged attack made by moving, and chose
to cancel, they would automatically bash with the launcher instead.

Instead, actually cancel.

--------------------------------------------------------------------------------
a874272245 | DracoOmega | 2026-01-07 08:02:40 -0330

Fix ranged attacks caused by movement auto-cancelling if they would prompt
Say, for having an ally standing too close to Damnation's blast range.

--------------------------------------------------------------------------------
0f66c09651 | gammafunk | 2026-01-06 17:12:08 -0600

Fix some vault syntax
This commit fixes some of the broken calls to the scythe() function in
49a7220f. A missing comma, specifying an ego string with quotes, and
passing the wrong variable for the environment etc. This function only
produces a string via string operations and doesn't use the environment,
so I've removed that argument and refactored the calls accordingly.

--------------------------------------------------------------------------------
d8ca8e3dc3 | gammafunk | 2026-01-06 14:17:15 -0600

Fix melee combat (rypofalem)
An early return had us taking time without performing an action.

--------------------------------------------------------------------------------
6481cf06d6 | gammafunk | 2026-01-06 14:17:15 -0600

Fix the build
Missing include for Tiles builds.

--------------------------------------------------------------------------------
37f58606d3 | David Lawrence Ramsey | 2026-01-06 10:46:20 -0330

Add testing vault for redefined monster names (#4901)
This will more easily allow testing of whether names of redefined
monsters are handled correctly in encounter messages, on corpses, and
on zombified forms. It covers a lot of possible options (especially
"nocorpse"), many of which may produce incorrect results.

[Committer's notes: Adjusted the comment's linespacing. Closes #4901.]

--------------------------------------------------------------------------------
49a7220f12 | regret-index | 2026-01-06 10:42:16 -0330

Further and further vault review
This won't be the last one for 0.34, but the current vault submissions
batch has lead to me reviewing over vaults yet once more and getting
back to my ever-endless list to address things with. Worthy of note:

 * Overflow altars now have some additional buniq tags to mildly reduce
   the preponderence of displaying-things-behind-glass or the newly
   pressured animated altar space, as we've been accumulating over the
   years. Really do need to work on both more tiles and more ways to
   vary up how overflow vaults are picked on the first place....

 * The Erebora trove now has chances for manuals of invocations replacing
   one of the spare dragon armour slots, to match the change made to
   the corresponding Mask of the Dragon in 089dd02, and to provide
   something for characters who don't care about possibly-low-enchantment
   dragon scale randarts.

 * The Crypt:$ shop (the Gilded Reliquary) now has yet more inventory
   variety, with the high-tier weapons getting a chance for reaping-brand
   randarts, the unrand / second jewellery slot getting a chance for an
   aux armour randart with the Bane property attached, and the rare shield
   slot getting a chance for a kite shield randart also with a Bane
   attached. The chance for a shadow dragon scales randart now also a
   Bane attached so it can consistently be +6 to +11, to hopefully make
   it more interesting an option this late into the game as well.

 * Another boilerplate-shrinking text function has been added to vault.lua
   to shorten defining specific-ego scythes (for e.g. reapers).

 * Vaults using void oozes and eyes of devastation have been adjusted a bit
   more after their buffs in 1bf1e5d and 72556b3.

--------------------------------------------------------------------------------
8dc4d90cb8 | regret-index | 2026-01-06 10:42:16 -0330

Player ghost / illusion Eringya's Noxious Bog -> Hurl Sludge
More attempts at similiar spell parity to help ghosts and illusions
function better while avoiding hurting other allies, akin to 29182dc.

--------------------------------------------------------------------------------
c4f44f9476 | regret-index | 2026-01-06 10:42:15 -0330

Mild tile touch-ups and additions
 * Toxic bog terrain (from Eringya's Noxious Bog) are no longer just
   palette swap of shallow water, so that we don't use a greenish swap
   for water long after newcomers can seen non-damaging palette swaps
   in Sewers. These new tiles combine the previous palette swap by
   ebering of enne's edit of Yurik's shallow water with a CC0 rock
   texture by Surt, a CC0 poisonous swamp map texture by Time Fantasy,
   and a CC0 alien planet wall tiling by Emcee Flesher.

 * Test blobs, test statues, and non-redefined statues have their own
   tiles now to make testing with them a little less confusing sometimes
   (compareable to test spawners having their own tiles). The former
   combines Ontoclasm's test spawner with Bloax's jelly, and the latter
   two combine Ontoclasm's currently-unseen redefineable base statue tile
   with Bloax's obsidian statue.

 * More rims have been adjusted from form tiles following up from
   903b294 to fix up dragon form shadow lining.

 * Vampire bloodprince palettes have been simplified yet further.

--------------------------------------------------------------------------------
421d54dc30 | DracoOmega | 2026-01-06 08:53:27 -0330

Actually allow voluntarily descending in the Abyss (tswn)
The default Abyssal depth was accidentally being applied to any stair which
would take you to the Abyss, but this included down stairs within the Abyss
itself. Whoops!

--------------------------------------------------------------------------------
a2127eeb82 | DracoOmega | 2026-01-06 08:15:25 -0330

Change how rampage attacks work somewhat
Attacks made while rampaging were somewhat odd in that they caused the
entire movement to use the player's attack speed instead of their movement
speed (no matter how many tiles of movement happened in the process). While
this was originally intentional, it results in several negative effects (in
my opinion) that are only exacerbated by rampage now stacking:
 -All modifiers to movement speed (both positive and negative) were
  completely ignored on this movement. This is a bit untuitive and also
  feels somewhat against the spirit of such effects in the first place.
  (It also meant that even a frozen naga of Chei with Leda's active could
  move multiple tiles in 5 aut so long as they had something to hit.)
 -Movement speed effectively become directly correlated with how fast a
  weapon one was using and things like Finesse could also double the
  player's 'movement' speed in specific scenarios.
 -The synergy with WJC Lunge attacks was fairly extreme. Martial attacks
  were performed as if the player moved at their normal movement speed, but
  then the actual time taken for the action would often be considerably
  less. A character with normal move speed and a 0.6 delay weapon would
  make 10 aut worth of lunges *and* another rampage attack on top of that,
  all in 6 aut. A naga could perform 14 aut worth of lunges in 6 aut (and
  then if one tossed on things like Leda's or -Swiftness, it was possible
  to squeeze a truly absurd number of lunges into the length of a single
  attack).
 -Nowhere in-game points out this behavior and it seems common for players
  not to realize it happens.

While individual points could be addressed in other ways, collectively it
seems better for rampage attacks to simply also happen at movement speed -
which they now do. Cases where movement speed is faster than attack speed
result in proportionally weaker attacks (just as is true for martial
attacks, as of d6c3115a).

However, there is one way that this new system could result in worse
playfeel than the old one, leading to a second change. Consider how timing
works out when rampaging forward against melee monsters, especially 1v1.
Let's assume a 0.6 delay weapon, for the sake of argument. In the old
system, rampaging into melee would perform an attack and then give the
target 6 aut worth of energy - the same as waiting in place and then
attacking. In the new system, rampaging into melee would perform an attack
and give the target 10 aut of energy - *worse* than waiting for them to
step close and attacking. This means that it would often become correct to
stop rampaging earlier and allow a monster to step forward, breaking a
player's flow.

In the interest of keeping it 'never worse to rampage forward unless you
don't want to stand in that spot', rampage attacks now ministun the target
by 5 aut. This is a little better 1v1 with most weapons and worse against
groups (and hopefully keeps the distinction between lunges and rampage
attacks distinct - the former can result in more explosive damage, while
the latter is more about mobility and control)

(I considered making the ministun proportional to the difference between
your movement speed and attack speed, up to a certain limit, but it seemed
like it might be best to try something simpler.)

--------------------------------------------------------------------------------
d6c3115a2b | DracoOmega | 2026-01-06 08:13:37 -0330

Adjust martial attack behaviour when attack speed is slower than move speed
WJC martial attacks perform a number of individual attack proportional to
the ratio of attack speed and the speed of the movement that triggered
them (ie: if you spend 10 aut moving but attacks only take 7 aut, you have
a ~43% chance to attack twice). This does keep the 'average' attack output
constant over time - whether one is moving or not - but also means that in
cases where one's attack speed is slower than their movement speed, martial
attacks can fail to attack at all.

This can be especially jarring with lunges against sleeping targets, where
damage normally feels 'guaranteed', and failing to happen quite unexpected.
(It also does not require the player to be using untrained weapons;
spriggans move so quickly they can run into this issue even with certain
weapons at mindelay!)

Instead of having a chance to completely fail in these cases, downscale the
damage caused by the martial attack to the same degree. (eg: moving at 6
aut with an attack delay of 7 aut will now result in a 100% chance of
making an attack that inflicts ~86% of its normal damage instead of an 86%
chance of making an attack that inflicts 100% of its normal damage.) This
approach was already used for spellclaw attacks and should still result in
similar overall damage output while feeling 'smoother'. Martial attacks
where attack speed is faster than move speed are unaffected, and still
attack multiple times.

--------------------------------------------------------------------------------
178f339dc1 | DracoOmega | 2026-01-06 08:11:00 -0330

Display chance for a monster to notice you in xv (hellmonk)
List the chance for a monster to succeed in detecting the player each time
a stealth check is performed.

[Adapted from a PR by hellmonk, with some code reorganization and wording
changes, as well as incorporating the revised perception formula.]

This closes #5011

--------------------------------------------------------------------------------
76f037726a | DracoOmega | 2026-01-06 08:10:55 -0330

Change monster perception formulas
In part, this is compensation for no longer autoalerting wandering
monsters so easily (by giving wandering monsters better perception,
especially at high HD). And in part, this is straightening out some
pre-existing weirdness, like how non-natural enemies had much higher
perception while asleep than they did while wandering (not that there was
much reason to think sleeping demons would be up to 33% more likely to
detect the player than sleeping humans...)

The effect of both monster intelligence and being wandering (as opposed to
asleep) now scale with HD. This generally results in higher perception than
currently later in the game (which may still be more than counterbalanced
by f96b50d24aa), while somewhat reduced perception in earlygame (and for
mindless enemies).

It's very possible this will need more adjustments, but let's see how it
feels.

--------------------------------------------------------------------------------
efca2a75d1 | hellmonk | 2026-01-06 08:09:44 -0330

Refactor monster perception code slightly
This commit refactors monster perception code slightly, with no change in
functionality. Monster perception will be adjusted separately in later
commits. It also removes some autotraining behavior related to stealth
checks while invisible; this should be unnoticeable for most players, even
if autotraining is used.

--------------------------------------------------------------------------------
f96b50d24a | DracoOmega | 2026-01-06 08:08:43 -0330

Don't auto-alert visible monsters after many types of action
alert_nearby_monsters() unconditionally alerted all non-sleeping monsters
in the player's LoS to the player's presence and position, regardless of
stealth or the noise of the action. It was called by firing ranged attacks,
zapping wands, casting spells, performing non-stab melee attacks (inside
the calc_damage() function....), and performing melee aux attacks -
regardless of whether stabbing or not.

In effect, this meant that performing any of these actions would
automatically make all wandering monsters lock onto the player, even if the
action was completely silent. (Even if it was completely silent, had no
visible effect, and the player was invisible, even! In fact, because
invisible monsters still couldn't track the player properly, this would
result in them shouting constantly whenever the player did any of these
actions....)

This behaviour was opaque (extremely few players knew about it), and oddly
disconnected from the stealth/noise systems Crawl otherwise uses to
interact with monsters noticing the player. Moreover, other actions did NOT
cause these alerts, such as using abilities, evokers, potions, or scrolls -
even when the effect of that action was the same. (For instance, casting
Silence would alert all monsters, even those out of earshot, but reading
?Silence would not.)

This behavior pre-dates DCSS's initial revision and has been essetially
unchanged since then (which, it should be noted, predates noise functioning
at all like it does now). It results in a strange inability for spells
explicitly designed to be stealthy to function fully and in general, after
some discussion, the concensus seems to be that this should be
removed/replaced by something that *does* interact with existing
stealth/noise systems.

This is a player buff - especially for stealth-focused characters, but even
for many hybrids - and it is difficult to determine the precise magnitude
of it without practical playtesting. Some immediate adjustments to monster
perception formulas will be made in a subsequent commit, but additional
adjustments will plausibly follow after some observation time.

--------------------------------------------------------------------------------
958a0fbfee | DracoOmega | 2026-01-06 08:08:43 -0330

Fix a couple issues with monster Portal Projectile
The code used both to determine if this spell was castable and also to
actually cast it ran through the full logic of regular monster ranged
attacks. This meant it had a chance to return false even if the shot was
valid. (This chance would be much higher if it was cast by anything without
prefer_ranged, even...)

This resulted in both monsters thinking the spell was impossible to cast
when it was fine, and also spending time casting the spell (and producing
messages) without bothering to shoot anything.

On top of this, Ru redirection effects were called during the validity
check, meaning that you could get messages about blocking attacks that the
monster would still make anyway (and sometimes redirecting their attention
to another monster, even on turns they didn't elect to cast the spell at
all).

Now both validity checks and casting of Portal Projectile should ignore
probabilistic reasons for the monster not to bother, and Ru should only get
involved when they actually do something.

--------------------------------------------------------------------------------
a5b355d75d | DracoOmega | 2026-01-06 08:08:43 -0330

Make beam.stop_at_allies ignore allies which the beam could not harm

--------------------------------------------------------------------------------
9780205830 | DracoOmega | 2026-01-06 08:08:43 -0330

Remove fake projectiles, refactor how ranged attacks are set up and fired
Ranged attacks were much more complex to set up than melee attacks. They
require a beam 'wrapping' them (which made it difficult to adjust the
properties of a given ranged attack to perform 'special' attacks in the way
that is commonly done for melee) and were also deeply intertwined with
quiver code. On top of that, launcher-based attacks also required fake
missile items to be created and passed around with them wherever they were
used (even though ranged ammo hasn't been a thing in years).

This commit makes several changes aimed at improving clarity, removing
unneeded steps, and making it easier in future to fire 'special' ranged
attacks.

-Fake missile items are completely removed. ranged_attack is now
 constructed with a single weapon item that may be *either* a thrown
 missile or a launcher. (This was already unambiguous for years and I don't
 see that changing any time soon; any special launcher projectiles we want
 can be implemented more simply than using real items.)
-Tiles for launcher projectiles are now handled by
 tileidx_item_projectile() and their textual description by
 launched_projectile_name()
-ranged_attack_beam now provides a minimal wrapper of both a beam and a
 ranged_attack to be used as a template for any hit caused by that beam.
 This allows straightforward setup, and in future will allow editing
 arbitrary properties of that ranged_attack to propagate to real hits.
-Numerous methods are renamed and reorganized, and it is now easier to
 launch a direct ranged attack in code without involving the quiver.
-A few small issues are fixed (such as coglins being unable to rev with
 ranged attacks against invisible monsters, or friendly ranged monsters
 always stopping their shots short to avoid hitting the player, even when
 the player was nowhere near where they were aiming...)

This is a fairly complex refactoring, so it's possible some bugs have also
been introduced, though I tried to test it fairly carefully.

--------------------------------------------------------------------------------
83f82b5a48 | DracoOmega | 2026-01-06 08:08:43 -0330

More fully remove the exploding missile brand
It was removed in most senses long ago (even being automatically removed
when loading items), but some code to support it still existed.

--------------------------------------------------------------------------------
ed06f1b6c7 | DracoOmega | 2026-01-06 08:08:43 -0330

Remove the 'rescale' argument from attack_delay
Setting this argument to a non-default value skipped factoring out Haste's
speed buff if the player also had Finesse. It was used in exactly one
place: showing current attack delay when examining weapons. And the result
of using it was to make the description lie and claim that Haste and
Finesse actually stacked.

(One could perhaps make the argument that attack delay in weapon
descriptions should ignore all temporary bonuses, but that is a different
behavior than either true or false gives here.)

--------------------------------------------------------------------------------
0c9e4f668a | DracoOmega | 2026-01-06 08:08:38 -0330

Don't allow using * to select ineligable items with prompt_invent_item()
This is most obvious with the (F)ire command (now that you're not supposed
to be able to throw arbitrary item anymore), but you were also able to do
this with some other prompts, such as blessing a weapon or cursing an item
(where you could force the UI to allow you to select items that the
operation would never work on.)

I don't think there are any cases remaining where the player *should* be
allowed to select something that doesn't match a given prompt's selection
type, so let's just remove that behavior.

--------------------------------------------------------------------------------
d4beee5d18 | DracoOmega | 2026-01-06 08:06:45 -0330

Remove throwing of non-throwing items
Tossing items other than throwing weapons was a never-useful action that
mostly stuck around for legacy reasons (and perhaps very slightly because
people are amused at the idea of throwing things into lava). But its very
presence complicated a bunch of throwing and ranged attack code (in a
similar way that breadwielding once complicated a bunch of equipment code).
In the interest of cleaning up some ranged code, I am opting to exist it.

One can still dump items into lava by flying over it, if one truly insists.

--------------------------------------------------------------------------------
600b92e38a | Isaac Clancy | 2026-01-06 22:09:05 +1300

Checkwhite

--------------------------------------------------------------------------------
1571ea4b45 | Isaac Clancy | 2026-01-06 22:02:01 +1300

Fix the console build (rypofalem)

--------------------------------------------------------------------------------
ab3808680d | Isaac Clancy | 2026-01-04 19:13:39 +1300

Fix equipped hats looking like helmets

--------------------------------------------------------------------------------
0d6269f3a8 | Isaac Clancy | 2026-01-04 18:57:51 +1300

Fix unused function warning in webtiles build

--------------------------------------------------------------------------------
ffbeda68b4 | Isaac Clancy | 2026-01-04 18:39:10 +1300

Fix torches not animating in local tiles
Torches on walls had there animation handled differently from other
animations which unfortunately didn't survive the recent tile picking
rework. Instead handle there animation in the normal way.

--------------------------------------------------------------------------------
d248d352fb | Isaac Clancy | 2026-01-04 18:09:06 +1300

Fix some misc animations still running when disabled
This was due to missing brackets around some conditions leading to the
wrong logical operators taking precedence.

--------------------------------------------------------------------------------
c6910b0dee | patrick | 2026-01-02 03:45:12 -0330

Add an assortment of god-specific overflow altars (and more) (#4956)
"I have created a selection of overflow vaults for your god distribution
needs.

Some of them use the elemental animated colors of the god's altars in
console, but in tiles. This creates a color-changing animation similar
to that in the Pan disco vault (and the existing Uskayaw overflow vault
that also uses the disco color). This can be a little much so I've
tried to keep the animated parts somewhat low-key in terms of size.
On the other hand, if there's any place to use flashy animated colors,
it's probably god vaults. I figure the gods can be a little
ostentatious. I'm certainly not going to be the one to tell them "no".
Most of the vaults that use this gimmick have "console" in the name.

I also fixed up a few incidental things elsewhere in overflow.txt,
mostly formatting and a couple instances of my own vaults where I
noticed things were arranged out of the current prescribed directive
ordering. There was an existing vault that used an Ignis vault for
flavor, and I made a second. I've put a uniq_ tag on both to prevent
the small but nonzero chance of the gimmick showing up twice in one
game, which would make it feel slightly less special.

Thank you for your time.
Love, nicolae"

[Committer's notes: Much feedback on this batch on details of vault
weights or particular decoration and item levels were provided on the PR
itself, with only minor details left out by this time of merging; a few
floor tile display tweaks on further personal examination, a little bit
more inline commentary on some vault decisions, and a few final tweaks
of weight. Otherwise, this just squashes together the various commits of
feedback handling and additional generic overflow altars, to thus merge
#4956.

(As alluded to in 837a7d7, I requested vaults in this space specifically
to try and reduce the predominance of generic overflow altar vaults, which
I feel have eaten away at ever-crucial earlygame flavour to keep reusing
generic decoration options repeatedly (especially in conjunction with
ecumenical altar vaults already leaning on that  space). This batch has
significantly helped things along, but we are quite late in the 0.34
dev-cycle and there's thus not the most time to assess the end results of
so many more vaults. Between this, strong desires for more tilesets to
help themes along without relying as much on glass exhibits or lategame
decor, and the everpressing desire for more earlygame monsters to work
with, I will delay adjusting such overflow temple building until the next
version.)]

--------------------------------------------------------------------------------
b82f2e44eb | Isaac Clancy | 2025-12-29 14:53:54 +1300

Fix offhand cleave using primary weapon brand (srcrip, tswn)
Cleaves with offhand weapons had a 50% chance to use the brand of your
primary weapon. This was very noticeable with a spectral weapon in your
primary hand and a non-spectral axe in your offhand as sometimes the
non-spectral axe would place a dancing weapon copy of itself leaving you
two dancing weapons.

--------------------------------------------------------------------------------
903b2947ba | RypoFalem | 2025-12-28 11:44:01 +0000

fix: don't outline some tiles (acrobat)
Felid and Octopode dragon transformation tiles used a shadow with
transparent pixels which made the generated outline a noticeably
strange.

The issue revealed a couple of stray almost-transparent pixels so I
made those completely transparent.

--------------------------------------------------------------------------------
a8f06b3655 | DracoOmega | 2025-12-27 19:53:56 -0330

Fix player ghosts still sometimes trying to cast Freezing Cloud
Instead of the monster equivalent spell.

(In future, I would like to unify ghost/non-ghost spell unmarshalling code
a bit more, but this should fix the immediate crash for now.)

--------------------------------------------------------------------------------
b6ec107ca1 | DracoOmega | 2025-12-27 19:49:07 -0330

Note the magnitude of current corrosion on the % screen (and chardumps)
A sometimes quite-relevant piece of data to pull from morgues given recent
changes to Slime.

--------------------------------------------------------------------------------
9d88770c9f | DracoOmega | 2025-12-27 19:49:00 -0330

Don't bother saying orbs 'cannot be enchanted further' (regret-index)

--------------------------------------------------------------------------------
d720f168eb | DracoOmega | 2025-12-27 19:48:53 -0330

Format multi-line egos/artprops a bit more readably
Now, instead of the descriptions of long egos/artprops spilling over into
the column where the names of those artprops are listed, they will attempt
to be justified in a second 'column'. This should make a number of things
a fair bit more readable, in my opinion.

Unfortunately, since the text of an item description is constructed as a
single giant string, the size of the popup in which is it slated to appear
isn't even to know at the point where text justification occurs - and in
the case of webtiles, I must admit that I have no idea whatsoever how
plausible it is to pass information back to C++ about the size of a popup
handled in html. However, console ensures at least 80 characters are
available and both local tiles and webtiles default to at least that. As
far as I can tell, shrinking the window to the point that this stops being
the case has usually rendered other parts of the UI difficult to use, so
for now I am accepting it as 'good enough' to assume 80 characters are
available.

--------------------------------------------------------------------------------
f1ae2755e9 | DracoOmega | 2025-12-27 19:48:45 -0330

Remove an incorrect bit of in-game help regarding martial attacks
This hasn't been true since 90209b8

--------------------------------------------------------------------------------
7865bd9560 | DracoOmega | 2025-12-27 18:44:22 -0330

Use a more typical method for creating TRJ spawns and increase its range
TRJ's use of find_newmons_square_contiguous was unconventional and the only
use of such outside of vault code. It's also not clear that it was
necessary anymore - the function call was largely unchanged since it was
added in 2008, at which point create_monster() was unsuitable since it
gnored LoS and would happily create jellies *inside* the loot vault (where
they would eat all the loot). This hasn't been true in a very long time,
so I'm not sure there's any good reason not to use a more conventional
approach.

In addition, this increases the range at which TRJ jellies can spawn, if
things are very crowded. This shouldn't matter much in the average case,
but should make it less likely for TRJ to produce nothing in confined
spaces (especially after, say, reading ?butterflies).

--------------------------------------------------------------------------------
3fe9d46ad8 | DracoOmega | 2025-12-27 18:39:10 -0330

Fix TRJ sometimes not spawning jellies when injured (kurkuma, Darby)
TRJ used connectivity pathfinding to place the jellies it spawned upon
being injured. Since 1e333bf, these connectivity checks (unintentionally)
considered slimy walls more expensive to traverse. This meant that,
effectively, if TRJ was next to a slimy wall itself, nowhere else would be
within range to place jellies.

This plausibly had some other negative effects as well, since it affected
general connectivity code, though it's unclear what specific problems this
would cause.

--------------------------------------------------------------------------------
6d9ebc1a8c | Isaac Clancy | 2025-12-27 21:49:31 +1300

Simplify picking player tiles with blade hands

--------------------------------------------------------------------------------
fcc515f2a8 | Isaac Clancy | 2025-12-27 21:17:16 +1300

Fix sticky flame and halo not showing on form tiles (pisastrish)
Tiles for forms that melded all equipment (with the exception of storm
form) were handled in a different place that could only show a single
tile rather than a base tile and multiple tiles for each piece of
'equipment'. Unfortunately, this optimization doesn't really work as the
'equipment' tiles also include the tile for being on fire and the halo
tile behind a glowing character.

Fixes #4979

--------------------------------------------------------------------------------
4e02dda68d | Isaac Clancy | 2025-12-27 16:54:48 +1300

Fix killed monsters raised as thralls but getting xp tracking
When a monster is raised as a thrall we go through seperate code path to
handle its death which although it was giving you xp, it wasn't tracking
where that xp came from.

--------------------------------------------------------------------------------
c2962e8470 | Isaac Clancy | 2025-12-27 14:35:06 +1300

Fix exploding mounted monsters sometimes crashing
When a mounted monster takes damage, sometimes the rider or the mount
dies leaving the other alive. We handle this by changing the type of the
monster to be the type of the part that survived and then killing a new
monster of the type of the part that died at the same position.
Unfortunately this means that if the code for killing a monster clears
the monster grid at the position of the monster it will leave the living
monster not on the monster grid which can lead to crashes. The monster
on death explosion code was clearing the monster grid as this used to
be needed to prevent the explosion from hitting the dead monster but can
be removed now that explosions are fineffs.

--------------------------------------------------------------------------------
7991ae8747 | gammafunk | 2025-12-24 23:14:41 -0600

Fix a vault that placed shafts at branch ends
The vault grunt_qazlal_sundering didn't have any conditioning on level
branch depth for its shaft placements.

--------------------------------------------------------------------------------
1472609569 | gammafunk | 2025-12-24 22:37:05 -0600

Properly use seeds for objstat and mapstat
Currently these modes load seed 0 and just keep using the RNG
indefinitely across iterations. This is fine in terms of randomness, but
it means these runs can't be recreated exactly without rerunning exactly
the same number of iterations. When diagnosing map placement errors,
it's helpful to be able to recreate a specific seed.

This commit has objstat and mapstat properly initialize the 0 seed into
a random one and picks a new seed each iteration. Also, for any Lua
errors reported to stderr, we also report the current seed. Finally, we
also respect setting a specific seed via the command line. In this case,
we only allow running one iteration. This could be a useful way to
catalog the items/maps in a specific game seed using these modes.

--------------------------------------------------------------------------------
677bbfce32 | gammafunk | 2025-12-24 21:49:17 -0600

Remove two unused method definitions

--------------------------------------------------------------------------------
15974c44ed | regret-index | 2025-12-23 13:11:03 -0330

A few more recently-added mutation icons
 * e68fdf0 accidentally left out the icon tiles I made for for Spiteful
   Blood (using the same CC0 wraith effect from DUELYST's arcane devourer
   that erthoyspites were derived from, and Denzi's old eye of draining
   tile). I have thus added them back in here.

 * b55b5ce accidentally left out a second icon for Initially Attractive,
   which due to its two levels ends up making the second icon use the next
   mutation in dc-mutation.txt (Demonic Touch, before the current changes
   here). I have made a second one here.

Also, I've reorganized a small amount of dc-mutation.txt to keep the
alphabetical order it deploys in the loosely-piled-together icons
sections.

--------------------------------------------------------------------------------
71567ef324 | regret-index | 2025-12-23 10:22:35 -0330

Fix a teleport closet in nicolae_vaults_little_squares_5 (various)
An issue I noticed back in 5f48996 (but neglected to handle due to the
scope of that commit), which seems to have been noticed quite a few times
recently, including in #4962. I had briefly thought it was linked to
various Lua update issues, but have since re-discovered the exact vault,
and have dealt with it via some guaranteed door placement.

--------------------------------------------------------------------------------
0270d88442 | DracoOmega | 2025-12-23 01:25:44 -0330

Make barbed movement prompt respect DIS_CONFIRMATIONS
To fix a test suite hang. (abyss_short_run was getting stuck waiting on
this.)

It seems like a bad idea that so many of these places must check
DIS_CONFIRMATIONS manually, and we are almost certainly missing more of
these, but this fixes the immediate problem.

--------------------------------------------------------------------------------
1e4f93a5ba | DracoOmega | 2025-12-22 22:59:51 -0330

Revise Abyssal depth mechanics, make them mostly depend on player XL
The depth at which the player could get banished to the Abyss was based
upon the HD of the monster which banished them (or the player's XL, if it
was from a disto unwield). Unfortunately, the formulas used meant that it
was already plausible to land in Abyss:2 from a D:5 monster and yet
possible to still land no deeper than Abyss:2 by the end of Elf.

Pre-Lair banishments are already extremely dangerous; there's no need to
sometimes make them even more dangerous. At the same time, lategame
banishers often can't land the player deep enough in the Abyss to be a
legitimate threat. By basing the level of Abyss the player lands on purely
on their XL, this should serve to make things a little fairer earlier and
a little more relevant (or at least quicker) later.

Note: this now also affects the depth the player arrives at when taking an
Abyss entrance manually!

At the same time, this commit revises behavior regarding the Abyss pulling
the player deeper and also remembering the deepest they've ever been. The
main thrust of those (as I understand it) was to simultaneously discourage
Abysscumming and to pull the player to an appropriate threat level when
entering the Abyss manually in endgame. But the behavior was a bit too
random - it might simultaneously leave an endgame player on Abyss:1 for
longer than anyone could find interesting, or rapidly pull an unlucky
earlygame character even deeper.

It also created, in my opinion, some unfortunate incentives. Abyss depth
was originally added as a way for players to more quickly obtain runes and
leave, once they felt strong enough to handle the risk of doing so, but due
to the Abyss remembering the deepest floor you've ever been on, moving more
deep than strictly necessary could create future danger on the off-chance
the player was ever banished again (or escaped Pan via the Abyss). This
meant that it was often correct in a 15-rune game to leave the Abyss for
last (ensuring that it is completely trivial and also somewhat time-wasting
when finally done.)

With Abyss depth automatically scaling to your XL, most of this should be
unnecessary now. However, to preserve a little of the danger of legitimate
extended Abysscumming, the player can be forcibly pulled below J:5 only
after spending a substantial amount of time there at XL 27. Any manual
excursions to deeper depth at any time will not affect the depth the player
later reenters the Abyss.

(It is possible the depth formula will warrant some future tweaks, but
let's see how this feels.)

--------------------------------------------------------------------------------
72d9719738 | DracoOmega | 2025-12-22 22:59:51 -0330

Remove some obsolete code for player cloud spells
Poisonous Cloud hasn't been castable by players in many years (and I am
confused why Holy Breath was ever here, since to the best of my knowledge
this was never a player-castable spell.)

--------------------------------------------------------------------------------
da568b47a1 | DracoOmega | 2025-12-22 22:59:51 -0330

Fix Cassandra having an obsolete monster spell, rename Sprint (the spell)
When I gave Cassandra Swiftness, I neglected to realize that it had been
removed as a monster-castable spell for many years already - since save
compat code still allowed it to be castable with the correct effect. The
'real' spell monsters are supposed to have in its place is Sprint.

...however, Sprint is a very silly name for a spell currently cast by
exactly one elephant slug (not exactly famous for sprinting). Given that
both Gastronok and Cassandra are wizardly, it makes more sense to me to
name it something Swiftness-adjacent and make it actually sound magical.
So it is now called Fleetfoot instead. (Yes, I know slugs are not exactly
famous for having feet either, but at least this one is figurative.)

There should be no functional change from this commit.

--------------------------------------------------------------------------------
9726027d06 | DracoOmega | 2025-12-22 22:59:51 -0330

Rename monster Freezing Cloud to Freezing Gust
This behaved relatively unlike the player spell (despite both making
freezing clouds). More notably - unlike most monster clouds, the impact
damage it did was quite substantial (2/3rd of a bolt of cold!) and yet xv
did not indicate that it did any damage whatsoever! 2d22 is a lot to
pretend is 0.

The impact damage of other monster spells was generally perfunctory, but
this turns out to be a significant part of its threat, so I think it would
be clearer not to act like it's the same as the player spell at all.

There should be no functional change with monsters which had this spell.
Player ghosts/illusions will still receive it place of player Freezing
Cloud (but servitors no longer can cast it, since they only look for 1-to-1
matches at present, alas).

--------------------------------------------------------------------------------
f430026a8f | Isaac Clancy | 2025-12-23 14:50:02 +1300

Fix shadowed variable warning

--------------------------------------------------------------------------------
d30bd5fa04 | RypoFalem | 2025-12-22 17:29:47 -0330

fix: missing newline in spell descriptions

--------------------------------------------------------------------------------
4d29eee84b | CrawlOdds | 2025-12-22 17:29:47 -0330

Make Brom's Barrelling Boulder autotarget
By changing its range. This should have no other effect except changing
the displayed range.

The true range of BBB is a matter for philosophers; displaying
LoS-radius is consistent with OOD, which is another sphere-summoning
spell with projectiles that can go to LoS and beyond.

--------------------------------------------------------------------------------
dc503a7b8f | CrawlOdds | 2025-12-22 17:29:47 -0330

Display non-integer values for EV and AC in forms
Display fractional EV and AC gains from forms; these already provide
randomly rounded bonuses, but we were displaying them rounded down.

This tweaks how EV scaling in forms works so that it is randomly
rounded in the main EV calculation rather than in the form itself.

Also, allow variable numbers of decimal places in such displays - most
want 1, but regeneration wants 2.

--------------------------------------------------------------------------------
0debdd2c89 | David Lawrence Ramsey | 2025-12-22 14:10:17 -0600

Fix doubled word in book description.
Closes #4991.

--------------------------------------------------------------------------------
04f1e15178 | DracoOmega | 2025-12-22 02:37:34 -0330

Some further improvements to tracers against invisible players
The approach of the previous commit could very slightly wrong in some
cases, since hit_count can be incremented even by actions that might not
call tracer_affect_player() (for instance, explosions prior to their
explode phase). Since what we're actually concerned about is that monsters
don't believe they can hit the player repeatedly - overpowering all
friendly fire concerns - put the check for duplicate player hits in the
tracer itself.

In addition, change fuzzing behavior so that monsters will not believe the
player could be standing in a wall or on top of their own allies. While
there are probably multiple bugs this results in, one I am specifically
aware of is that monsters will stop casting healing/buffing beams near an
invisible player, since they think the player is standing on top of all
their allies.

--------------------------------------------------------------------------------
445b766777 | CrawlOdds | 2025-12-22 02:37:34 -0330

Fix more friendly fire issues with penetrating beams against unseen players
Tracers with invisible players count the player in every square within
2 of their actual position, to allow firing at the wrong square when
the monster targets the wrong square. This leads to penetrating tracers
double counting the player for the purposes of friendly fire
calculations (and would lead to more than that, except that no beam can
hit anything thrice).

We fix this by not counting more hits on the player than bounces+1.
This is a bit crude, but works in all cases except a bouncing beam
that misses the player on the first pass and hits twice thereafter,
which seems likely rare.

--------------------------------------------------------------------------------
2f1e48cfaa | CrawlOdds | 2025-12-22 02:37:34 -0330

Remove fuzz_invis_tracer
This updated the tracer target. This did almost nothing; the target is
not persisted because undo_tracer reverts the update, and the ray
being traced was not changed. There's a possibility it was having
more subtle effects, like changing when the ray stopped or whether
it thinks it passed its target, but if so these were almost certainly
unintended and unreliable, so it's hard to see how they could matter.

We keep the other thing this function did, which was check whether
the monster is targetting somewhere near the player.

--------------------------------------------------------------------------------
8ea545e54a | CrawlOdds | 2025-12-22 02:37:34 -0330

Make javelins pierce in monster tracers
This was causing problems like:
- Not firing through a monster blocking the player, even if worth it
- Not caring about hitting monsters behind the player
- Complicated stuff when the player was invisible, including very
surprising levels of friendly fire.

[Committer's note: Removed the last remaining use of
setup_monster_throw_beam() (Dith shadow mimic) which could use
setup_missile_beam() just as easily.]

--------------------------------------------------------------------------------
22750ce800 | DracoOmega | 2025-12-22 02:37:21 -0330

Fix many talisman properties not scaling between integer skill levels
Apparently divided_scaling() was meant to be used in most cases rather than
scaling_value(). I think that's a little confusing (and also there were
very few cases that *didn't* want to divided the scaled value after
calculating), so I have refactored slightly.

scaling_value() should now be the only function any form needs to interact
with directly, and in the rare cases you want to divide something by
something other than the default 100 scale, that is what you specify.

--------------------------------------------------------------------------------
e339c7e1a8 | DracoOmega | 2025-12-22 02:37:21 -0330

Fix dragon form breath damage being wrong in the talisman preview
If you weren't actually in dragon form at the time, it would give
incredibly low numbers. (This is because draconian_breath_power() used -1
to denote 'use current form power' and since cd48741 the current skill
level of talisman previews also uses that.

--------------------------------------------------------------------------------
15d368e031 | CrawlOdds | 2025-12-22 02:37:21 -0330

Fix preview of talisman attributes between integer skill levels.
Between integer values of shapeshifting, these were wrong - e.g.
showing -10% HP until hitting minimum shapeshifting, when in fact
things are much more continuous than that.

--------------------------------------------------------------------------------
162c21ee31 | Isaac Clancy | 2025-12-22 16:54:47 +1300

Fix the build

--------------------------------------------------------------------------------
bf00e4143a | Isaac Clancy | 2025-12-22 15:29:57 +1300

Rework choosing tiles for items
Normal, shiny, runed, glowing and randart versions of an item can all
get their own tile. For an item with all variations we would define a
tile group with 5 tiles in it for the item and then use tile 1 for
normal, tile 2 for shiny, tile 3 for runed, tile 4 for glowing and tile
5 for randart. We could also only put 4 tiles in the group in which case
shiny and runed items would get the same tile, or 3 tile in the group so
that shiny, runed and glowing items all get the same tile, or 2 items in
the group so that all non-normal items get the same tile, or 1 item in
the group so that all items get the same tile.

This usually worked well, however, there were a couple problems. First,
for an item to with one tile for artifacts and one tile for everything
else, you would either add special case tile picking code for this item
or duplicate its non-artifact tile so that its tile group consisted of
its non-artifact tile, its non-artifact tile duplicate, and then its
artifact tile. Secondly, some items have multiple tiles for normal
versions of the item or for artifacts etc. This would require special
casing the item tile picking code to handle the item. All this special
casing resulted in item tile picking being a hard to modify mess.

We have a very similar problem when picking tiles for walls and floors
of different colours and the solution to that problem can easily be
used to fix our item tile picking mess by replacing colour (e.g. red,
green, etc) with enchanted level (e.g. shiny, randart etc).

--------------------------------------------------------------------------------
8863ff3150 | Isaac Clancy | 2025-12-22 12:51:58 +1300

Rework how equipped tiles are specified for artifacts
In art-data.txt we were specifying the file for the equipped tile of
artifiacts. The tiles are defined in dc-player.txt and we need the name
of the tile so we were searching through dc-player.txt to try and find
a tile that had the given file. However, parsing tile definition files
isn't easy and the way we were doing it put some very strong
restrictions on how tiles are defined in dc-player.txt making it hard to
change. It also makes more sense for the tile names to be used in
art-data.txt as a tile can be made from modifying the file it was loaded
from or even compositing multiple files together.

--------------------------------------------------------------------------------
843a6e3170 | David Lawrence Ramsey | 2025-12-21 00:36:50 -0600

Rename an obsoletely-named variable: mr -> wl.
Since magic resistance has been willpower for ages.

--------------------------------------------------------------------------------
79e65ea6f0 | DracoOmega | 2025-12-20 20:54:28 -0330

Fix encounter messages for multiple dancing weapons (Flugkiller)
If the player encountered multiple dancing weapons and at least one other
type of monster at the same time, you would get a message like:
"You encounter 4 dancing weapons and a deep elf knight. There is . There
is . There is . There is ."

Now it should properly say what they actually are.

--------------------------------------------------------------------------------
f86d0d48ae | DracoOmega | 2025-12-20 20:47:10 -0330

Improve handling of permanent creations of summoned/charmed monsters
There has been a recurring class of bug over the years where permanent
monsters made as part of another monster behavior (for instance, protean
progenitor death spawns or mangrove fauna) would not properly inherit some
of the properties of their parents. Namely, if you charmed the original, or
summoned it (perhaps by a scroll), any monster made be it would be
permanently friendly.

There was bespoke handling for a subset of these cases for some monsters,
but this was fairly incomplete (and different from monster to monster).

This commit adds a simple, unified way to inherit the charm and summon
status of a given 'parent' monster. It then revises code for The Royal
Jelly, protean progenitors, shambling mangroves, and bennu revival to use
this (fixing an assortment of bugs in the process).

It is possible there are other cases which should make use of it that I
have overlooked, but they would now be simple to address once pointed out.

--------------------------------------------------------------------------------
d55ecc6db9 | DracoOmega | 2025-12-20 20:47:10 -0330

Make Gloom silent
A thematically appropriate very minor buff (now that its BEAM_VISUAL isn't
unexpectedly waking monsters up on its own....)

It was already pretty quiet and there's no reason to cast this on a monster
which is already asleep, but in some situations there may be other sleeping
monsters nearby while the player is fighting something which is awake and
this allows the possibility of being slightly stealthier about it than
before.

--------------------------------------------------------------------------------
86c4d5ca12 | DracoOmega | 2025-12-20 20:47:10 -0330

Make BEAM_VISUAL imply affects_nothing and refactor slightly
There is technically still a slight difference between using BEAM_VISUAL
and using any other beam with affects_nothing = true, which is that the
latter can still print messages for observing a beam. I am not certain this
is used meaningfully anywhere, and future refactoring might eliminate one
of the two entirely.

--------------------------------------------------------------------------------
b3cd63142a | DracoOmega | 2025-12-20 20:47:10 -0330

Allow Mace of Variability to proc even when the melee target dies
This is an AoE effect and it's unclear why fatal blows should be unable to
trigger it.

--------------------------------------------------------------------------------
173bb37f72 | DracoOmega | 2025-12-20 20:47:10 -0330

Rework BEAM_CHAOS functionality
BEAM_CHAOS was rather odd in some ways and behaved like neither the weapon
brand nor the cloud. Since it applied its non-damaging effects entirely
via enchantment beams, it did not have access to the same set of secondary
effects as other sources of chaos, and unlike chaos weapons, did no damage
whatsoever if it rolled a status effect (though the hit message could
misleadingly suggest it did do damage!). Its status effects also checked
Will, unlike other chaos sources (but only when the player was the one
being hit!) and could roll irrelevant effects that other chaos sources
would exclude (such as Weakness on a monster with no attacks).

Now, it instead picks a random damage element, and then has a 50% chance of
applying a status effect on top of it, using the chaos_affects_actor() code
shared by other chaos sources. (The old chance of applying a status effect
was ~62%).

In addition, wording of the beam hits is changed so that it indicates what
element of damage is being done.

This is a relatively significant change to the damage componant of Awaken
Flesh, which should be a little more capable of actually doing something to
the player (and will be even more relevant for some 0.35 monster plans).

--------------------------------------------------------------------------------
22db19aefa | DracoOmega | 2025-12-20 20:47:10 -0330

Remove impact damage from monster flame, noxious, and chaos cloud spells
This damage was very negligible and also sometimes weird: chaos cloud
impact damage followed different rules for its effects than the clouds
themselves did and noxious cloud impact could actually do poison damage
(which the clouds explicit never do). On top of this, it could print
somewhat confusing messages about 'missing' the player, regardless of
whether the player was now standing in a cloud or not.

These spells now function purely as cloud delivery and the direct beam
prints no additional messages about whether they 'hit' a target or not.

This comes with some additional tracer improvements where 0 damage cloud
beams will check the validity of their cloud against a monster target
(rather than assuming they will have no effect since they do no impact
damage)

--------------------------------------------------------------------------------
9513272401 | DracoOmega | 2025-12-20 20:47:10 -0330

Make monsters a little less foolish when aiming cloud spells
Monster cloud spells like fire crab breath have fairly randomized cloud
placement, and their tracers would consider a target in range if there was
ANY chance at all of a cloud being placed on their tile. However, this
chance might be quite low, semi-regularly resulting in monsters breathing
clouds at the player that never actually reach them.

This looks a bit foolish, so let's have them only take sure-fire shots.

--------------------------------------------------------------------------------
4a4e20d81e | DracoOmega | 2025-12-20 20:47:10 -0330

Don't wake monsters with BEAM_VISUAL
These are intended for VFX and should not have a mechanical effect. (I
wonder if this is an old simulationist relic?)

In practice, it was difficult to have this matter, since most visual beams
are used by code that will also affect the monster in some way outside of
the beam anyway, but a few examples where this was possible included
pulling a corpse with Cigotuvi's Embrance or a monster being thrown over
their head with Throw Ally.

--------------------------------------------------------------------------------
a887cd52da | DracoOmega | 2025-12-20 20:47:10 -0330

Tweak Awaken Flesh behaviour
It now prints the message about unleashing explosions *before* the
explosions happen, rather than after. It also transforms the piles of
flesh because causing damaging explosions (as another piece of insurance
against similar crashes to the one just fixed).

It also takes 'ownership' over any piles of flesh animated, whether they
were originally summoned by that specific fleshcrafter or not. (Prior to
this, fleshcrafters could animate non-aligned flesh, whose abominations
would continue to be non-aligned and possibly under someone else's summon
list.)

--------------------------------------------------------------------------------
78db3ca232 | DracoOmega | 2025-12-20 20:47:10 -0330

Tweak Bolt of Flesh behavior
Instead of creating its pile of flesh at the end of the full beam path
(which is often nowhere near the target it was actually aiming at), it now
places it immediately behind the last target hit.

In addition, the beam will shorten itself to specifically stop at this
point (and before hitting any allies). This means that some random ally in
the distance behind the player will no longer completely turn off a
fleshcrafter's spell set.

--------------------------------------------------------------------------------
2f6f73a39c | DracoOmega | 2025-12-20 20:47:10 -0330

Add a method to return the position of the last actor a beam hit
(Or some number of steps beyond or before this.)

Will be used shortly for an adjustment to Bolt of Flesh, but likely has
other future uses.

--------------------------------------------------------------------------------
cc7c947500 | DracoOmega | 2025-12-20 20:47:10 -0330

Replace bound souls as a fineff instead of immediately
This lead to a rather obscure crash where a bound kobold fleshcrafter
killed a monster that the player had just used Bind Soul on, causing itself
to die in the middle of its own spell, dismissing the pile of flesh that
was about to transform and causing a divide-by-zero error when
change_monster_type tried to adjust its HP.

But this is probably not the only problem that can happen this way (a bound
soul killing another monster in the middle of a spell seems very
realistic), so it's probably safer to defer them dying a little.

--------------------------------------------------------------------------------
bb92ac17da | DracoOmega | 2025-12-20 20:47:08 -0330

Fix xv of off-screen monsters sometimes showing wildly high damage numbers
monster_info.slaying was not being properly marshalled or unmarshalled, so
if a remembered out-of-los monster was reloaded (possibly due to peeking at
another floor), it might show arbitrarily high damage values at random.

But at the same time, I found out that we also weren't marshalling monster
Will or See Invisible bonuses from gear properly and those would also
disappear when reloaded. This should no longe happen.

(At the same time, this removes a couple possibly-never-used string
parameters that were actually marshalled/unmarshalled to no effect.)

--------------------------------------------------------------------------------
727adfa5c0 | DracoOmega | 2025-12-20 20:46:37 -0330

Remove an unneeded parameter
Monsters haven't had hidden randomized speed for quite a while, so there's
no need to have the option to hide it.

--------------------------------------------------------------------------------
37e25749c3 | gammafunk | 2025-12-20 16:54:07 -0600

Dump piety info in wizard mode
The game is already spoiled, so there's no info leak, and it's helpful
to have this data to inspect for wizmode testing.

--------------------------------------------------------------------------------
4bf74e8489 | gammafunk | 2025-12-20 16:54:07 -0600

Refactor out a small code block

--------------------------------------------------------------------------------
9b8c495655 | CrawlOdds | 2025-12-20 16:53:40 -0600

Log piety tables
Add logging for information related to piety.

This adds two tables to morgues:
- A tracker which records the piety gained/decayed/ lost at each piety
  rank, and what happens to the gains (e.g. spent on
  gifts/timeouts/actual piety).
- A tracker which records the frequency and piety from each conduct at
  each XL.

This will enable us to balance and then monitor potential changes like
simplifying piety formulae, removing piety decay, stopping gifts eating
piety, and fixing a bug with TSO.

We don't track gods who have funny relationships with piety, except to
log join and leave events.

The tables are enabled for trunk.

--------------------------------------------------------------------------------
55cff00ff5 | David Lawrence Ramsey | 2025-12-20 12:49:49 -0600

Add another rare graffiti author.

--------------------------------------------------------------------------------
6a6fc1bf31 | David Lawrence Ramsey | 2025-12-20 12:49:43 -0600

Add more orc names, and update the counts.

--------------------------------------------------------------------------------
fab9b65169 | David Lawrence Ramsey | 2025-12-20 09:39:16 -0600

Add more vice names to artefacts.

--------------------------------------------------------------------------------
2d85d88bbc | David Lawrence Ramsey | 2025-12-20 09:35:21 -0600

Add another orcish name, and update the count.

--------------------------------------------------------------------------------
388b990e91 | David Lawrence Ramsey | 2025-12-20 01:24:46 -0600

Add more mythical animals to artefacts.

--------------------------------------------------------------------------------
fffb249c6f | gammafunk | 2025-12-19 23:34:49 -0600

Fix cloud targeting for non-players
After 2322c751, the cloud targeter required having player LOS_NO_TRANS
for any potential cloud location, regardless of the agent. This doesn't
make sense for either monster agents or dungeon cloud generators. For
the latter, it meant that cloud generators wouldn't place clouds not on
their position until the player had LOS_NO_TRANS. This would give
players who could see cloud generators e.g. through glass a false
impression of how many clouds a generator would place.

This commit requires drops the LOS_NO_TRANS condition when there is no
agent. When there is an agent, the requirement is based on the agent's
LOS, instead of always on the player's.

--------------------------------------------------------------------------------
89cd473a45 | David Lawrence Ramsey | 2025-12-19 16:56:23 -0600

Add another graffiti short saying.

--------------------------------------------------------------------------------
e850957c4e | David Lawrence Ramsey | 2025-12-19 16:23:24 -0600

Resort graffiti "happened reasons."

--------------------------------------------------------------------------------
9437d6726d | David Lawrence Ramsey | 2025-12-19 14:27:10 -0600

Add another rare graffiti author.

--------------------------------------------------------------------------------
0aceb10d9a | David Lawrence Ramsey | 2025-12-19 14:20:35 -0600

Add another graffiti duplicate option.

--------------------------------------------------------------------------------
f78f79cf17 | David Lawrence Ramsey | 2025-12-19 14:18:29 -0600

Fix wording of several graffiti rumours.

--------------------------------------------------------------------------------
1892a10f92 | David Lawrence Ramsey | 2025-12-19 14:16:27 -0600

Expand graffiti "happened reasons."

--------------------------------------------------------------------------------
35636e3ec7 | David Lawrence Ramsey | 2025-12-19 14:14:31 -0600

Expand a graffiti fight option.

--------------------------------------------------------------------------------
980f348b7d | CrawlOdds | 2025-12-19 11:31:42 -0600

Make Teleport Other prefer not to cancel teleport
Fixes #3124

[Committer's note: Adjusted commit message.]

--------------------------------------------------------------------------------
e225a2cb73 | David Lawrence Ramsey | 2025-12-19 10:27:09 -0600

Properly use a canned message in Brom's.

--------------------------------------------------------------------------------
f487e81226 | David Lawrence Ramsey | 2025-12-19 10:10:59 -0600

Add "no available space" to canned messages.

--------------------------------------------------------------------------------
d744bac791 | gammafunk | 2025-12-19 02:28:38 -0600

Close lua states when reseting the game
Currently when a game is initialized (e.g. from the main menu), the CLua
initialization code for clua and dlua reruns but using the existing lua
states. A lot of this initialization code isn't appropriate to rerun on
a reused state. Things like setting metatables that already exist,
registering C functions that are already registered etc. With the switch
to Lua 5.4, this was resulting in crashes during reinitialization. This
commit has crawl close the lua states of clua/dlua before
reinitialization. This seems cleaner and more thorough rather than more
seletively reloading things on a more case by case basis and add little
overhead.

--------------------------------------------------------------------------------
f521b0547f | David Lawrence Ramsey | 2025-12-19 00:57:40 -0600

Properly pluralise "plasmodium" as "plasmodia."

--------------------------------------------------------------------------------
7107006798 | David Lawrence Ramsey | 2025-12-19 00:47:23 -0600

Fix typos, wording and punctuation.

--------------------------------------------------------------------------------
97f4fcf8e3 | regret-index | 2025-12-19 03:03:27 -0330

Changelog updates through 8a85f5c
Pressing enough to finally update again with the new weapon brands,
mutation revisions, and Slime changes alike.

(Thanks to DracoOmega for proofreading this.)

--------------------------------------------------------------------------------
8a85f5c4e6 | David Lawrence Ramsey | 2025-12-19 00:08:52 -0600

Make wizmode super-heal do more (tekkud).
It now heals flooding and diminished spells.

--------------------------------------------------------------------------------
a4dabe5d3f | David Lawrence Ramsey | 2025-12-18 22:19:39 -0600

Add another orc name, and update the count.

--------------------------------------------------------------------------------
51ba481b41 | David Lawrence Ramsey | 2025-12-18 20:12:35 -0600

Add another gizmo adjective.

--------------------------------------------------------------------------------
45f4f77eb7 | David Lawrence Ramsey | 2025-12-18 18:58:47 -0600

Fix override warning.

--------------------------------------------------------------------------------
28fbe87789 | David Lawrence Ramsey | 2025-12-18 12:43:27 -0600

Adjust artefacts' "chaos names."
Add Confusion, and rename Chaos to True Chaos so that it's less
confusable with the brand.

--------------------------------------------------------------------------------
830d4154b1 | DracoOmega | 2025-12-18 01:11:30 -0330

Fix all mutations being suppressed in the Abyss (tekkud)
Stupid logical operator precedence...

--------------------------------------------------------------------------------
128d250200 | David Lawrence Ramsey | 2025-12-17 21:30:31 -0600

Clean up handling of some polymorphed uniques.
Use mons_is_mons_class() instead of looking at monster names, and add
mons_is_mons_species() to more easily check for a polymorphed Serpent of
Hell.

On a related note, monster names starting with "shaped" still have their
names handled specially in name_zombie_from_class(), just in case a vault
wants to place the zombified version of a polymorphed unique.

--------------------------------------------------------------------------------
b487be5f84 | David Lawrence Ramsey | 2025-12-17 21:30:26 -0600

Remove remnants of polymorphed corpse handling.
Since monsters have reverted to their original forms upon death for
ages now, these are no longer needed.

--------------------------------------------------------------------------------
38708d06df | David Lawrence Ramsey | 2025-12-17 21:30:21 -0600

Fix naming of the spectral Royal Jelly.

--------------------------------------------------------------------------------
2ab8d1c658 | DracoOmega | 2025-12-17 22:48:30 -0330

Fix hellfire mortar never actually moving (not_that_greg)
Accidentally broken by g6c3c90b89a though it is unclear to me now why it
was using a standard 'monster movement action' function instead of a
direct move_to call anyway, so now it just does that.

--------------------------------------------------------------------------------
f68dabf3d5 | DracoOmega | 2025-12-17 22:19:24 -0330

Use a cleaner method for checking TRJ's identity (hellmonk, gammafunk)
I got distracted in replicating the approach used by TRJ death code without
remembering that a better approach to this sort of problem had been
implemented in the interim.

--------------------------------------------------------------------------------
f07f5ba3bb | DracoOmega | 2025-12-17 22:01:24 -0330

Don't interrupt travel when the tide changes (Lici)
When Shoals tides changed terrain under the player's feet, it would
interrupt autoexplore. This obviously happened quite a lot, which was
mildly obnoxious.

I don't *think* there should be other cases of terrain changing under the
player's feet in more important ways at times autoexplore can actually
happen.

--------------------------------------------------------------------------------
2b5d921666 | DracoOmega | 2025-12-17 21:47:32 -0330

Prevent banishing The Royal Jelly
Banishing TRJ (often by accident) was always somewhat janky. It didn't
count as killing it for the purpose of opening the rune vault, either
forcing the player to track it down in the Abyss and kill it there or give
up on the rune entirely (or switch to Jiyva). But even if one went to the
Abyss, TRJ could still be lost forever - a single Abyss shift after
encountering it would remove it from the game altogether.

But with the new addition of slimy stairs, rather than simply blocking
access to the rune, banishing TRJ now locks the played into Slime:5,
sometimes with no other recourse but to join Jiyva. This places new urgency
on an old oddity.

Other alternatives were considered (such as opening an immediate portal to
the Abyss for the player to track TRJ, along with preventing them from
ever being lost), but fighting TRJ in the Abyss seems like such a mistake
in general that this would open happen to unaware players or by accident.
Ultimately, I think it's not worth preserving, and have opted for this
simple change instead. If anyone wants justification, assume that Jiyva is
keeping a special hold on their most important follower, so close to the
heart of their power.

--------------------------------------------------------------------------------
2461231389 | DracoOmega | 2025-12-17 21:39:55 -0330

Fix an odd slymdra-related crash
If you were aiming a wand of polymorph at a monster which could become a
slymdra, the game would crash.

--------------------------------------------------------------------------------
7be361164e | DracoOmega | 2025-12-17 19:49:00 -0330

Allow mutating Teleportitis even if you're currently a tree
Or wearing -tele gear.

It won't *do* anything immediately, but presumably the player will stop
being a tree again at some point.

--------------------------------------------------------------------------------
1b20b982dc | DracoOmega | 2025-12-17 19:49:00 -0330

Don't let formicids mutate Spatial Entanglement
They can technically trigger it via PoG, but that seems too marginal to be
worth allowing.

--------------------------------------------------------------------------------
2c2125fd6f | DracoOmega | 2025-12-17 19:49:00 -0330

Don't give Devious charges for stabbing allies (rypofalem)
No matter how devious that may sound.

--------------------------------------------------------------------------------
6c3c90b89a | DracoOmega | 2025-12-17 19:49:00 -0330

Refactor checks for whether actors are able to move under their own power
This renames player::is_motile() to player::cannot_move() (inverting its
logic) and implements cannot_move() as an actor method (checking both
stationary() and ENCH_BOUND for monsters). Many checks specifically for
ENCH_BOUND are replaced by this new method.

This also fixes a handful of other issues:
 -Monsters with ENCH_BOUND are allowed to be trampled (it only prevents
  volitional movement, and never any form of knockback).
 -Monsters with ENCH_BOUND can drag enemies towards them, so long as this
  action would not ask them to also move.
 -Slick slippers can make the player slip away from attacks even if the
  attacker cannot follow them.
 -Concussion weapons will no longer move their wielders forward if they
  cannot move.

This fixes #4975

--------------------------------------------------------------------------------
78ea34e3c3 | DracoOmega | 2025-12-17 19:49:00 -0330

Remove an unnecessary interaction between Wall Jump and formicid digging
I assume the digging clause dates back to when Wall Jump was triggered by
moving into walls, but at the moment it doesn't matter whether your
mandibles are extended or not, so there seems to be no need for this code.

--------------------------------------------------------------------------------
c66067f658 | DracoOmega | 2025-12-17 19:49:00 -0330

Fix a crash with Concussion brand moving the player on top of a monster
This was possible if a monster was created at the same location as the
monster that was just knocked back, but before the follow fineff fired (for
example, by killing a protean progenitor and having one of its aspiring
flesh spawn in its old position).

--------------------------------------------------------------------------------
84c2100d63 | DracoOmega | 2025-12-17 19:49:00 -0330

Extend the Slime gem timer (Lici)
This was apparently already very tight, but with Slime made harder to dive,
was almost certainly too tight.

I am not sure if +300 turns is even sufficiently generous here, but we'll
watch and see.

--------------------------------------------------------------------------------
d72115b0b6 | DracoOmega | 2025-12-17 19:49:00 -0330

Fix blazeheart cores being delayed by a turn in detonating (Zigmound)
Accidentally broken by g17f7e79a93 which caused energy to be deducted for
a melee attacks *after* the blazeheart golem's self-damage would cause it
to die, leaving its core one turn 'behind schedule' (previously the energy
deduction happened before it died).

Address this by simply making the core very fast. It should now be
impossible for the player to act so quickly that they get a second turn
before it blows up.

--------------------------------------------------------------------------------
3c9df005e8 | David Lawrence Ramsey | 2025-12-17 16:59:54 -0600

Expand a graffiti rumour.

--------------------------------------------------------------------------------
c0a66d26af | David Lawrence Ramsey | 2025-12-17 16:42:58 -0600

Fix monster build warning.

--------------------------------------------------------------------------------
e9a56554b3 | David Lawrence Ramsey | 2025-12-17 16:12:22 -0600

Really, really fix tag_upgrade build?

--------------------------------------------------------------------------------
47cefe797e | David Lawrence Ramsey | 2025-12-17 16:06:26 -0600

Really fix tag_upgrade build?

--------------------------------------------------------------------------------
35cff28cce | David Lawrence Ramsey | 2025-12-17 15:41:17 -0600

Fix wording.

--------------------------------------------------------------------------------
386c8bc505 | David Lawrence Ramsey | 2025-12-17 15:40:37 -0600

Fix typos.

--------------------------------------------------------------------------------
cc3f43f52c | David Lawrence Ramsey | 2025-12-17 15:38:47 -0600

Fix spelling.

--------------------------------------------------------------------------------
e65648c256 | DracoOmega | 2025-12-17 16:33:59 -0330

Fix tag upgrade build

--------------------------------------------------------------------------------
891677a02a | DracoOmega | 2025-12-17 16:15:01 -0330

Tweak what can be created by Slimify
Instead of just azure jellies or acid blobs as the top-end spawns, all TRJ
spawns are now possible. (I think their absence had more to do with this
code not being edited in many, many years than any gameplay reason.)

In addition, we don't have to cap the top-end result at a slime creature if
the victim is over water, since rockslimes survive in deep water just fine!

Finally, per Darby's suggestion, add an easter egg where hydras become
slymdras.

--------------------------------------------------------------------------------
c53afb7344 | DracoOmega | 2025-12-17 16:15:01 -0330

Make all Slime branch natives acid-immune
This is immediately aimed at allowing plasmodia to operate freely around
anything in the branch, but will also be relevant when slimy walls are
changed in future to be able to corrode any non-resistant monsters.

Most jelly-genus monsters already had rCorr+++ (though there were a couple
exceptions, several of which probably weren't especially guessable), though
this also applies to eyeballs, none of whom previously resisted it. This
may seem slightly odd, but their connection to the Slime God was evidently
already so strong that merely worshipping makes them all friendly, so let's
just assume they all have Jiyva's blessing, if anybody asks.

--------------------------------------------------------------------------------
3a2473c9fd | DracoOmega | 2025-12-17 16:15:01 -0330

Fix some odd behavior caused by monsters being distracted by their allies
Beams hitting monsters fire ME_ANNOY events, even when hostile monsters
are hitting their allies (and even when those hits are doing 0 damage). To
some degree this is necessary, since this is what controls breaking Daze,
Fear, or waking monsters up. However, there is a chain of other
consequences that can sometimes result in negative effects.

ME_ANNOY unconditionally sets that monster's foe to the source of that
event. handle_behavior() will later automatically set any monster whose
foe is an ally of theirs to MHITNOT. Then any of those monsters that are
BEH_SEEK + MHITNOT will automatically target the player if the player is
in LoS - or immediately start wandering if they are not (or if the monster
is an exploder).

This means, essentially, that any friendly fire among monsters will cause
all monsters out of LoS to immediately forget about the player - even if
they were immune to the attack. One of the most easy to observe examples
involves Lom Lobon, whose ball lightning explosions can give them rapid
amnesia (and are also likely to blow up on them while the player flees),
but this can happen under many other circumstances. It can also make ball
lightning themselves start wandering away while still in LoS.

Now, we no longer update a monster's foe if trying to set it to nothing or
an ally. This... hopefully doesn't have any other unforeseen negative
effects, but behavior code is such a snarl...

--------------------------------------------------------------------------------
1e333bf0d6 | DracoOmega | 2025-12-17 16:15:01 -0330

Make travel willing to path adjacent to slimy walls
Slimy walls aren't actually so dangerous that travel should consider them
impossible to walk near (they don't do anything at all outside combat!) and
in fact this regularly makes parts of Slime inaccessible to travel. This
became further hilighted when downstairs became able to place adjacent to
walls, where X> stopped working for them entirely.

Instead, consider slimy walls *expensive* to move near, so that autoexplore
will always prioritize nearby safe floor instead, but still be willing to
walk through it when there is no other choice. In practice, this means
enemies are almost always cleared out from the relevant areas first, so it
should not endanger the player, only convenience them.

--------------------------------------------------------------------------------
fef9f759a3 | DracoOmega | 2025-12-17 16:15:01 -0330

Make Slime stairs slimy, and tweak layout
Slime is a branch almost exclusively dived through quickly. The lack of any
loot in the branch, combined with the disconnected layout frequently
placing down stairs in view of up stairs while giving little reason to
explore any other bubbles, meant that time spent anywhere but Slime:5 was
often very brief. Now that the monster pool has been greatly expanded, it
seems appropriate to ask players venturing here to engage with it a little
more.

At the same time, Slime had grown to be widely viewed as the 'easy' 3rd
rune option, and one goal of this batch of commits is to make that less
true - not necessarily to make it the 'hard' 3rd rune, but to bring it
closer to perceived parity with Vaults:5.

To that end (as well as to create a little more uniqueness in the branch),
stairs in Slime are now slimy: they can be taken downward but not travelled
back up again until The Royal Jelly is defeated (unless the player worships
Jiyva themselves). This is functionally a little different than hatches,
since alpha-striking TRJ and then fleeing *does* allow the player to leave
and regroup, and the path back up again is known, but otherwise makes each
new floor an isolated challenge at first.

In addition, the level generator no longer produces disconnected floors
(though it still uses layout_caves), hatches and shafts cannot generate,
down stairs are now allowed to spawn adjacent to slimy walls (up stairs
still cannot), and down stairs will always be placed at least 12 tiles away
from any up stair. All together, while the zone should still be
dive-friendly, one should no longer be able to trivially skip past most of
it so quickly, and levels before Slime:5 should matter more.

--------------------------------------------------------------------------------
575c82e167 | DracoOmega | 2025-12-17 16:15:01 -0330

New Slime monster: Star Jelly (and consequent Void Ooze tweaks)
Star jellies (inspired by the real phenomenon) are mid-tier slime monsters
who unleash a trio of shooting stars (as from an orb of stardust) when
sufficiently damaged (on a long cooldown). To keep from it being frequently
correct to ignore them (since they are most immediately dangerous to the
player upon being damaged), they also have antimagic melee. This may also
help mildly counterbalance the fact that the shooting stars are most
dangerous if unleashed in melee.

In exchange, void oozes trade their own antimagic melee (which almost never
did anything in practice, due to its incredibly low base damage) for a new
AF_DIM that applies Diminished Spells to the target (and ignores AC).

Unlike the other new slime monsters, these are now a possible Royal Jelly
spawn as well, where their shooting star effect may provide some
interesting complications to traditional ?immo strats.

(I've also slightly lowered the max pursuit distance on shooting stars. I
suspect this will not have a very meaningful effect on the orb of stardust,
but should make it a little more possible to flee from them as a player.)

--------------------------

The star jelly vault distribution and tiles were done by regret-index.
 * The star jelly tiles combine rejected slime creature tiles by
   roctavian with Denzi's original jelly tile.
 * Vault distribution still is limited to Slime, one Depths vault, a
   few Sprints, and Ziggurats, where they replace scaling azure jelly
   placement in Slime floors to threaten mass conjurations spam.
   They also join Jiyva's wrath pool, to match the other TRJ spawns.

--------------------------------------------------------------------------------
b87bca3325 | DracoOmega | 2025-12-17 16:15:01 -0330

New Slime monster: Creeping plasmodium
These are motile slime mold colonies that can replicate themselves along
walls in a unique manner and inflict large scale AoE acid damage if allowed
to grow out of control.

Creeping Plasmodium are wall-only monsters that create Caustic Sporangium -
ball-lightning-esque monsters that detonate with a 7x7 acid explosion.
Uniquely, any wall tiles engulfed by this explosion will also spawn a
Nascent Plasmodium (as long as they are two tiles away from any existing
sporangium). These are lesser wall-bound monsters that cast acid ball -
less dangerous than their parents and unable to replicate, but still
contributing more and more ranged acid damage. They will all die when the
original plasmodium dies, but do not otherwise expire with time!

Not only do I feel that the monster design flavorfully captures the
uncontrollable spread of slime, but it also asks unique positioning on the
part of the player, since maneuvering the explosions to avoid walls can be
very important unless you're about to close in for the kill.

They are comparatively rare monsters in the branch and specifically do not
spawn naturally on Slime:5.

------------------------

The plasmodium vault distribution and tiles were done by regret-index.
 * The plasmodium tiles combine Ontoclasm's current Lair rock wall tiles
   and old ballistomycete spore trail tiles with CC0 scales by
   ARoachIFoundOnMyPillow.
 * The sporangium tile tweaks a spell icon by 7Soul1, and the launching
   spell icon adjusts the ballistomycete sporulation icon by aidanholm.
 * Vault distribution is very sparse, barring more tiles to help Slime
   vaults stand out at all versus the rest of the level.

--------------------------------------------------------------------------------
3a651692f0 | DracoOmega | 2025-12-17 16:15:01 -0330

New Slime monster: Slymdra (regret-index)
Combining the head mechanics famous on hydras (but used nowhere else) with
a variant of slime creature merging behaviors, these are terrifying melee
monsters for Slime.

They have acid-branded melee attacks and start with 4-5 heads, but can
passively absorb adjacent slime creatures to grow an additional head for
each one (and gain a bunch of HP in the process). Unlike normal slime
creatures, their constituant slimes will not passively split off from them
again while in combat, but if left wandering for a little while, will
gradually separate (meaning that fleeing from one that gets out of control
can still allow it to shrink back down again). Polymorphing one also spits
out any additional slime creatures it has absorbed.

Head mechanics operate almost identically to hydra; bladed weapons chop
heads and make new ones grow while flaming weapons can remove heads
altogether. Any new heads made this way will produce only unrewarding
slime creatures if separated (so no infinite slime creature farming).

They spawn with a small slime creature band (and the branch itself is full
of them), so attempting to position such that they absorb as few as
possible may be important - their corrosion inflicting melee obviously
scales non-linearly with how rapidly they can attack you!

-----------------------------

Slymdra vault distribution and tiles were done by regret-index.
 * The slymdra tiles combine ontoclasm's Hydra Form tile with roctavian's
   old soul eater and brown ooze tiles.
 * Vault distribution is limited to a slim number of Slime vaults looking
   for specific monsters, one Zot vault, variable Sprints, and Ziggurats.
   In the last of these, they replace scaling rockslime placement on Slime
   floors and scale additional heads with completed Zigs.

--------------------------------------------------------------------------------
f4cee1f5b3 | DracoOmega | 2025-12-17 16:00:14 -0330

Don't merge unrewarding slime creatures with normal ones
They would just eat up the XP of the normal ones and never give it back
again.

--------------------------------------------------------------------------------
5ca347d15b | DracoOmega | 2025-12-17 16:00:14 -0330

Fix a habitability check for slime creature splitting/merging
This effectively considered slimes able to occupy lava, which could lead
to unneccessarily failed splits and messages about puffs of smoke.

--------------------------------------------------------------------------------
e6d26953a0 | regret-index | 2025-12-17 16:00:14 -0330

Give Slime:$ unique glass tiles
The transparent walls that go down when killing The Royal Jelly (as of
2473c33) have unique names and descriptions loosely pointing at this
behaviour, but not a unique tile, which means most people won't ever
examine them to be hinted towards this behaviour. Giving them a new tile
can help both with this guidance and to establish more of a consistent
visual language for impending Slime Pit staircase changes.

--------------------------------------------------------------------------------
72556b3540 | regret-index | 2025-12-17 16:00:14 -0330

Nudge up eyes of devastation
As monsters that only appear behind runed doors until post-Lair-branches,
and as monsters meant to help other Slime eyes actually successfully beat
lategame player Willpower, eyes of devastation can do with a bit of a
nudge up on raw numbers to actually stand out in their identity as the
only directly-attacking eye. (It can also help with Slime's third-rune
comparison issues.) As such, they are now speed 8 instead of speed 7,
do more damage with bolts of devastation, a fairly higher cast rate, a
a chance to come with a few golden eyes to guarantee Will/2 gets any use,
and a bit more AC- nothing overwhelming, but enough for it to even passably
compare to even other old monsters in other branches like various bolt
mages.

--------------------------------------------------------------------------------
bb107ef9e7 | regret-index | 2025-12-17 16:00:14 -0330

New monster: morphogenic oozes, for Slime
(Unlike the previous two, this doesn't really count as a revival of
something removed from Slime- in this case, pulsating lumps- even with
the most tenuous of connections.)

These morphogenic oozes are another rare high-tier threat meant to provide
variety for Slime. Such ichoate masses directly try to show something
otherwise quite absent in the current Slime opposition and instead
regulated to just Jiyva worship itself: the actual conversion of the
previous civilization into slime. As such, they have the new AF_SLIMIFY,
which isn't instant for players: each branded attack builds up 35 to 45
aut of a Slimifying status on living players, which when maxed out at
100 aut will turn one into the newly revived jelly form (for the polymorph
standard of 20 to 50 turns). This has the following effects:

 * Built-in jelly-emulating rPois, rCorr, acidic walls immunity,
   rBlind, SInv, and amorphous's rConstrict
 * All equipment but jewellery melded
 * AC scaling to a quarter of XL, +25% HP, and the same size and EV
 * Passable acidic unarmed melee scaling to XL
 * Double negative magic enhancers for all spells

(Most of these bonuses are present to help properly emulate current
innate jelly properties with some incidental defensive benefits in Slime
itself. On other fronts, jewellery not being melded is deliberate between
pseudopods reasonably matching up with octopode tentacles and there being
still branch resists a jelly can care about like Will+ and rC+ and rN+.
Since Dissolution can still invoke Jiyva, and with void oozes having had
their spell-affecting flooding effects heavily buffed this version, I
decided to experiment with negative enhancers like old shadow Form did as
hurting magic in a different fashion instead of fiddling with success
rates or turning off spells entirely.)

(UI-wise, this commit also adds red message highlighting for being
polymorphed or fully slimified, since it's as highly threatening as
other full disabling effects. With our very lacking badform look-up
available in-game, I've opted for a short parenthetical clipped to the
end of the description, which is somewhat unideal, but is also about as
much as is reasonable to handle in the scope of this version.)

While these are quite nasty for heavier armour characters and blasting
mages, these are still gentler effects than most other polymorph badforms
(which either disable movement or casting entirely, and which can turn off
even jewellery resists), and the build-up should give a reasonable amount
of recourse for people properly prioritizing them for such a threat. (For
the far-less-common case of living monsters being struck by this, I've
opted instead for a flat 1/4 chance for each hit to polymorph a monster
into the standard Slimify list. Since orc apostles have rPolymorph, this
will mostly just affect summoning spells weirdly.)

Like most high-tier slimes, these have high speed, decent health, and poor
AC, though they also get better EV than almost any other slime as a
notably fluctuating mass. They come in bands of 2 oozes plus 0-3 golden
eyes and great orbs of eyes- with the split ooze count trying to reduce
the pressure to make individual slimes have even higher numbers than the
current top-end slimes, and with the eyes trying to abuse the melding of
Will+ randart armour. They're rare enough there's only about a ~60% chance
to see one of their bands each Slime visit, and they're directly excluded
from Slime:5 + TRJ's spawn list (but not Jiyva's wrath!)- aside from
continuing to avoid making TRJ's fight more complicated, their flavour as
just-converted slimes also matches with colossal amoeba as working very
strangely inside TRJ itself.

The morphogenic ooze tile combines Denzi's old soul eaters, a piece for
a future spriggan wellspring by LemurRobot, and a rejected merged slime
creature tile by roctavian. The jellyform tile combines the current jelly
tile by Bloax with a CC0 slime sample by Henry Software.

--------------------------------------------------------------------------------
6213b695bc | regret-index | 2025-12-17 15:21:24 -0330

Revive eyes of draining as rare deep negative energy eyes (DracoOmega)
Another significantly revised monster revival meant mostly to help with
more variety for a branch lacking in it. Eyes of draining were removed
in 049c24a for being harmless to magic-less builds, entirely harmless
without other enemies, and being too slow (at speed 5) to actually stick
to other enemies as they were otherwise supposed to spawn with. These
revived eyes of draining try to address all of these matters, while also
dealing with a weird bit of inconsistency in "Draining Gaze" having no
connection to other draining effects

 * These now have normal speed actions, M_CAUTIOUS, and fast movement.
   (Mostly, this means trying to walk away to keep them out of LOS is
    entirely unteneable without additional help.)

 * They now count as the leader for their band, so other monsters will
   follow them if they get ahead. (They also get somewhat customized
   bands in Slime, to always place a very-loosely-connected monster
   that actually deals damage to finish the player off.)

 * They lose their previous antimagic theming to serve as a serious rN
   check, with the new Draining Gaze doing no damage to instead directly
   drain for 10% of one's max health post-draining. (Following casts will
   drain 9%, then 8.1%, then 7.29%, and so on).

(While this does lead to them being harmless to those with full rN+++,
which several species get for free, this is hardly an unknown consequence
to Crawl- compare to how harmless death drakes are to the undead species
trio. rN is also no stranger to monsters that struggle to directly kill
players, as tormentors still functional well in doing. Slime also has
enough other prominent resist checks enough that a rare divergence to
value one of the currently least-valuable resists should be fine as an
occasional novelty of a threat.)

These spawn rarely in Slime, with an average low enough one appears in
only about 40% of all Slime visits: shining eyes already serve as plenty
of strategic damage, and giving Slime more variety also includes aiming for
some high-tier rare threats. They also spawn extremely rarely at the very
top end of the D out-of-depths pool, replacing the collective weight of
shadow dragons (similiar big rN check that should only spawn later with the
other top-tier dragons), war gargoyles, and iron dragons (both of which
have changes slated in the future to handle being placed so late that their
Metal Splinters almost never functions.) They also get some negative
energy theme placements in Ziggurats and Sprints, and one eye vault
placement in Depths.

(This commit also changes orange crystal statues, ghost moths, and Norris
to be casting "Antimagic Gaze" instead of "Draining Gaze", with adjusted
tile options between each of them. Hopefully, people won't confused about
this for too long- it's the more intuitive reading of Draining in a game
with so much draining costs and draining attacks, anyway.)

Their new tile and gaze vfx tweaks roctavian's edit of Denzi's old eye of
draining tile, while combining them with unused negative energy
projectiles also made by roctavian. The spell icon combines Denzi's
divinations eye with CanOfWorms's Powered By Death icons, and the
replacement Antimagic Gaze icon combines that eye with ontoclasm's Sap
Magic icon. This also adjusts the splash screen art by Peileppe and Bloax
to roughly approximate the monster's newer colours.

--------------------------------------------------------------------------------
e3ae751fba | regret-index | 2025-12-17 15:21:24 -0330

New(?) monster: colossal amoeba, for Slime
The overall enemy variety and unique enemy count for the Slime Pits are
severely low for a third rune branch in general, with 13 regular monsters
and a highly restrictive theme blocking off vaults from using much leaving
the branch lagging behind nearly every other full branch in the game. As
it has become more and more popular to take it as a third rune relative to
the branch falling behind buffs to players and Vaults alike, the branch
mostly being propped up on acid blobs and the one fixed fight of the Royal
Jelly becomes more conspicuously simple and flat compared to most other
branches having regular vaults and far more guests. As such, any new
monsters that can nudge up the difficulty and variety alike are reasonably
valuable, especially after the removal of five previous jellies and eyes
from the branch ended up with the branch deploying ~92 or so slime
creatures each game.

These colossal amoebae, blue 'J's in console, bare no real mechanical
resemblance to the giant amoebae removed back in cd953f7 for lacking any
unique mechanical identity. They instead have two flavourful attack brand
gimmicks: they undergo mitosis and cell division through the
self-summoning AF_SWARM of marrowcuda (0aa0afc), and that rapidly
expanding mass pulls in and consume foes through AF_DRAG (24261f8). They
have fairly high health (a bit above tentacled monstrosities, or on par
with three slime creatures) and demonic-crawler-level regeneration but
poor resists and defenses otherwise, and should be reasonably
straightforward and flavourful without particularly increasing Slime's
overall complexity- their weighting takes out a scaling fraction of slime
creature spawns (swapping ~5 amoeba for 14 of ~92 average slime
creatures), plus a tiny bit of azure jellies as are a little weak but
awkward to change with early ice cave use. Their play patterns are a
little weird- far less easy to destroy from afar than most of Slime and
less vulnerable to AOE compared to slime creatures, but also inherently
needing to pierce lategame player defences to actually start swarming and
dragging. (To this end, they have a small chance scaling with depth to
get a glowing orange brain or glass eye as organ support.) They should
still be novel enough, at least.

(Also, despite being sort of high-tier slimes in practice, these colossal
amoebae are notably not joining TRJ's or Jiyva's 5* Jelly expulsion spawn
selection, as they feel less pure slime than the current already-wide
selection- compare to how formless jellyfish didn't get into those lists
either.)

Their tile is a taller modification of ontoclasm's old giant amoeba tile.

--------------------------------------------------------------------------------
15ed06cda0 | David Lawrence Ramsey | 2025-12-17 06:32:10 -0600

Add another rumour to graffiti.

--------------------------------------------------------------------------------
99c0725460 | David Lawrence Ramsey | 2025-12-14 06:29:42 -0600

Fix mon_info unique name checks in a better way.
monster_info checks both type and base_type for monsters in many places,
so do that instead of manually specifying an exception for Tiamat.

--------------------------------------------------------------------------------
b780494020 | David Lawrence Ramsey | 2025-12-14 06:22:16 -0600

Treat Tiamat as a name in monster_info again.
Since base_type is set differently for draconians with job classes, as
well as Tiamat, when we check whether the monster's base type is unique,
we need to check for Tiamat manually.

--------------------------------------------------------------------------------
a9a8b13fb6 | gammafunk | 2025-12-13 16:55:05 -0600

Fix crashing volcano triggers
This commit contains a fix for erroneous lua map marker behaviour seen
when hellmonk_volcano_collapse places as well as a fix to the event
dispatcher to prevent this behaviour from crashing the game. The first
fix will allow the map to create its markers properly when it places.
The second will prevent games from crashing where the map has generated
already with incorrect markers. I'll discuss both fixes more below.

Regarding the lua map maker behaviour, something odd is happening under
lua 5.4 with a closure that's used directly as a lua map marker. In
lm_trig.lua, the funciton Triggerable.synchronized_markers() creates a
closure with an upvalue `first` that initially true and supposed to be
set to false after the first call to the closure. After that, the
markers this function makes will be so-called "replica" property
markers. What's happening in practice is that modifications to `first`
aren't being retained by subsequent calls, so all markers being placed
are primary ones (i.e. TriggerrableFunction). Strangely, this problem
goes away if the lua state context is exited from the closure before
`first` is examined. That is, if I add calls to e.g. `crawl.mpr()` or to
the `io` library, subsequent calls to the closure see the updated
(false) value for `first`. My fix was to store the primary
initialization in the Triggerable table (keyed by replica id) rather
than updating an upvalue. But this should be considered a workaround, as
it's very concerning if closures/upvalues aren't behaving properly.

For the second fix to dgn_event_dispatcher, it seems that this class is
a bit naive in expecting the listeners in its internal list to be valid.
Since it fires off events to dlua that can execute arbitrary code, it's
certainly possible an arbitrary map marker in the dispatcher's list
might get removed (meaning it's an invalid listener object).
dgn_event_dispatcher::fire_event() already makes a copy of its listeners
before firing events because directly iterating over this list is unsafe
for the same reason. Since the copied list might contain a pointer to a
deleted map marker, I've added a method to verify that a listener is
actually in the master list. This is checked before attempting to fire
off a dungeon event on a listener.

--------------------------------------------------------------------------------
53a2113884 | gammafunk | 2025-12-13 16:55:05 -0600

Add dlua errors to crash dumps
Like how we do in the dlua_errors section of the morgue, print any dlua
errors. Do this before we print the back traces, since in a crash
scenario, this data is less volatile to access then the clua and dlua
states.

--------------------------------------------------------------------------------
da3c44569b | David Lawrence Ramsey | 2025-12-13 10:15:55 -0600

Add comments about possible name/word overlaps.

--------------------------------------------------------------------------------
9247e96862 | David Lawrence Ramsey | 2025-12-13 09:50:05 -0600

Move a glowing adjective to a writing adjective.
Since "pulsating" is more about movement than glowing, and writing
adjectives already reference motion.

--------------------------------------------------------------------------------
7de7c6ff57 | David Lawrence Ramsey | 2025-12-13 09:46:37 -0600

Add another writing adjective to graffiti.

--------------------------------------------------------------------------------
bcc3919a4b | David Lawrence Ramsey | 2025-12-13 09:34:33 -0600

Add another unreadable graffiti line.

--------------------------------------------------------------------------------
f8a9312393 | David Lawrence Ramsey | 2025-12-13 09:12:18 -0600

Add another writing adjective to graffiti.

--------------------------------------------------------------------------------
13829917ae | David Lawrence Ramsey | 2025-12-13 09:11:48 -0600

Reweight more god references; update a comment.

--------------------------------------------------------------------------------
fd447d0384 | David Lawrence Ramsey | 2025-12-13 08:54:45 -0600

Move "a wagon full of pancakes" into hailed gods.

--------------------------------------------------------------------------------
e33a68bbb2 | David Lawrence Ramsey | 2025-12-13 08:47:09 -0600

Reweight god references in unreadable graffiti.

--------------------------------------------------------------------------------
3e525b69aa | David Lawrence Ramsey | 2025-12-13 08:41:12 -0600

Add more references to hailed gods.

--------------------------------------------------------------------------------
9794acd101 | David Lawrence Ramsey | 2025-12-13 08:41:12 -0600

Rename a graffiti tag.

--------------------------------------------------------------------------------
9edff1cd0f | David Lawrence Ramsey | 2025-12-13 01:57:18 -0600

Clarify a comment.

--------------------------------------------------------------------------------
376ce8f1ef | David Lawrence Ramsey | 2025-12-13 01:42:54 -0600

Add a few religious arguments to graffiti.

--------------------------------------------------------------------------------
328cd5380e | David Lawrence Ramsey | 2025-12-12 22:56:20 -0600

Add another ancestor name.

--------------------------------------------------------------------------------
155d693198 | David Lawrence Ramsey | 2025-12-12 22:29:23 -0600

Add more ancestor names.

--------------------------------------------------------------------------------
ad0cd7acd5 | David Lawrence Ramsey | 2025-12-12 22:20:14 -0600

Replace one West European name with another.
The replaced name is the Anglicised form of a name that's already in the
list of Irish names.

--------------------------------------------------------------------------------
d9eb6dac15 | David Lawrence Ramsey | 2025-12-12 21:37:10 -0600

Add a few more Beogh names, and update the count.

--------------------------------------------------------------------------------
4e2ae65739 | David Lawrence Ramsey | 2025-12-12 21:18:22 -0600

Resort orc name entries.

--------------------------------------------------------------------------------
d53419731c | Isaac Clancy | 2025-12-13 09:53:50 +1300

Fix tile probabilities in generated html files
The generated html files that give information about tiles in the game
were showing a few of the tiles as having an inf% chance of being picked
when showing the tile group they belong to.

--------------------------------------------------------------------------------
35eea0a4d6 | David Lawrence Ramsey | 2025-12-12 12:03:33 -0600

Add underscores to non-public graffiti tags.

--------------------------------------------------------------------------------
d1a1f204d8 | David Lawrence Ramsey | 2025-12-12 11:52:57 -0600

Lower weights of individual religious graffiti.
So that group religious graffiti and other graffiti show up more.

--------------------------------------------------------------------------------
dcab5b4b6a | David Lawrence Ramsey | 2025-12-12 11:52:52 -0600

Resort individual religious graffiti.

--------------------------------------------------------------------------------
21fb4b52dd | David Lawrence Ramsey | 2025-12-12 11:46:33 -0600

Update now-inaccurate comment.

--------------------------------------------------------------------------------
b18e6e356b | David Lawrence Ramsey | 2025-12-12 10:42:33 -0600

Add a few ancestor names.

--------------------------------------------------------------------------------
2da860cfb3 | David Lawrence Ramsey | 2025-12-12 10:30:02 -0600

Fix orc priest apostle tag (oops).

--------------------------------------------------------------------------------
e6b53b8817 | David Lawrence Ramsey | 2025-12-12 10:18:34 -0600

Adjust comment for tweaked professor names again.
Since the apostle types associated with orc apostle names may not always
match their professor types.

--------------------------------------------------------------------------------
53de3f577f | David Lawrence Ramsey | 2025-12-12 10:06:07 -0600

Adjust comment for tweaked professor names.
We no longer use e.g. "So-and-so the orc mage", but "the mage So-and-so
the orc".

--------------------------------------------------------------------------------
d7528eea97 | David Lawrence Ramsey | 2025-12-12 09:59:59 -0600

Reorganise orc apostle-specific names.
They're in their own sections now, which should make it a bit easier to
add to them.

(Also, @any orc name@ can now use them all with one less instance of
recursion, so orc remedial class professors in graffiti should no longer
produce "TOO MUCH RECURSION" for their names.)

--------------------------------------------------------------------------------
d2f1f5c0e0 | David Lawrence Ramsey | 2025-12-12 09:49:04 -0600

Simplify graffiti professor names.
So that there's less recursion.

--------------------------------------------------------------------------------
4f2349a6e4 | David Lawrence Ramsey | 2025-12-12 09:24:29 -0600

Cut down on graffiti synonyms.

--------------------------------------------------------------------------------
0cdb165708 | David Lawrence Ramsey | 2025-12-12 08:44:34 -0600

Tweak graffiti advertisements.

--------------------------------------------------------------------------------
a605de8196 | David Lawrence Ramsey | 2025-12-12 08:38:56 -0600

Resort graffiti mass meeting types.

--------------------------------------------------------------------------------
357cbd44ae | David Lawrence Ramsey | 2025-12-12 08:32:44 -0600

Reorganise graffiti of colour patterns.

--------------------------------------------------------------------------------
d727200dd8 | David Lawrence Ramsey | 2025-12-12 08:02:10 -0600

Adjust another Xom message with "lurid" colour.
Make it use any glowing colour instead.

--------------------------------------------------------------------------------
47987bb6c0 | David Lawrence Ramsey | 2025-12-12 08:00:51 -0600

Use @any_glowing_colour_pattern@.
This is currently only in Xom speech for translucent walls and Xom
speech that formerly used only "lurid" colour patterns, as well as in
graffiti of colour patterns.

--------------------------------------------------------------------------------
77cd2fb790 | David Lawrence Ramsey | 2025-12-12 08:00:19 -0600

Add @any_glowing_colour_pattern@.

--------------------------------------------------------------------------------
68302c83c0 | David Lawrence Ramsey | 2025-12-12 07:44:00 -0600

Add more glowing adjectives to colours.

--------------------------------------------------------------------------------
375c3ce53b | David Lawrence Ramsey | 2025-12-12 07:19:30 -0600

Resort glowing colour tags.

--------------------------------------------------------------------------------
76bf294775 | DracoOmega | 2025-12-12 04:57:34 -0330

Fix 'i' menu defaulting to showing potions instead of gear (Acrobat)

--------------------------------------------------------------------------------
d1360b19fe | DracoOmega | 2025-12-11 23:34:42 -0330

Fix paged inventory menu if the player has no gear (Bamboolord)
If the player had no gear, but did have other items, the inventory would
nonetheless display as empty and close on any keypress.

--------------------------------------------------------------------------------
e71a4b837a | DracoOmega | 2025-12-11 23:34:42 -0330

Don't make summoned exploders explode on timeout (Flugkiller)
This was pointed out first for stokers (whose creeping infernos would
immediately explode upon the summoner's death). There was discussion about
canonizing this behavior (or making them function more like ball lightning
in general), but I'm still generally dissatisfied enough with stokers that
I'd want to examine their design in more detail instead, which I'm leaving
for hellpan work in 0.35.

--------------------------------------------------------------------------------
2dd3d89425 | DracoOmega | 2025-12-11 23:34:42 -0330

Mildly adjust the way petrification works
One of the key things that distinguishes petrification from paralysis is
that the player always gets a chance to respond to it before it happens.
Except... that technically isn't true if the player is unlucky enough:
applying petrifying to an already petrifying target instantly finishes the
petrification. With walking earthen tomes often casting it many times in a
single turn, it was very possible to get instantly petrified with no
recourse.

This commit removes that behavior for both monsters and players (it wasn't
even documented in-game, to my knowledge!).

At the same time, it attempts to give a consistent 30 aut to respond to
beginning to petrify (rather than it depending somewhat unintuitively on
how slow youe previous action was). This meant that while the player could
usually perform 2 normal speed actions before petrifying, sometimes they
could not (which could be very unexpected).

Finally, spellpower of the monster petrify spell is increased somewhat in
compensation, as well as the chance for clouds of calcifying dust to
petrify the player.

--------------------------------------------------------------------------------
1a06fe2552 | DracoOmega | 2025-12-11 23:34:36 -0330

Adjust various timing issues with Paralysis (Acrobat), and tweak Vex
The way paralysis timing was handled internally had some wierd and
unintuitive interactions with minipara in particular. While theoretically
intended as a 1-turn paralysis, if it happened to the player while they
were taking a 10 aut (or longer) action, it you wouldn't actually cause
them to lose any time at all! But if the action was faster than that, they
would in fact lose 10 aut. (ie: Moving and getting minipared = 10 aut,
Attacking at 0.7 delay and getting miniparaed = 17 aut). This meant that
in many 1v1 situations, minipara might have literally no effect besides
looking very scary.

This situation is a result of two things:
 a) While stunned by any means, the player passed time in 10 aut
    increments (meaning 1 aut of remaining paralysis will still consume 10
    aut)
 b) Paralysis loses duration at the *start* of the player turn (meaning it
    will immediately lose duration equal to the speed of the previous
    action).

(a) is easy to fix - we now pass time in 10 aut increments while stunned,
unless the remaining stun time is less than 10 aut, in which case we pass
only that much time.

(b) is a bit harder. Ignoring the turn spent becoming paralysed would make
full paralysis while slowed/statue significantly worse that is right now.

However minipara should do *something*, so I am opting for all player
paralysis to last 5 aut more than previously (along with not always
rounding to 10 aut intervals on decay). Considering players spend a lot of
time attacking things at faster speeds than 1.0 (for which this will often
reduce duration slightly), this isn't a strict buff to the effect, but
should hopefully make it slightly more consistent - particularly for
minipara.

In addition, this rewrites some very old logic that technically allowed
paralysis from god wrath to stack in duration with other sources (except
in ways that could sometimes resulted in *reducing* how paralysed you are
instead.) This is too niche to be concerned with, and now they simply won't
attempt to paralyse you if it wouldn't work.

(This will result in a minor bug in upgraded saves where the notes for
paralysis from prior to this commit will display their durations divided by
10. I decided this wasn't worth the save compat code.)

Finally, this makes a modest chage to Vex behavior. Instead of the player
attacking at 1.0 speed no matter what, they will attack with their normal
attack delay (and if there isn't enough aut left at the end of the effect
for another attack, simply pass the remaining time.)

--------------------------------------------------------------------------------
d46125be1d | DracoOmega | 2025-12-11 23:25:06 -0330

Slightly refactor actor::cannot_act()
The current behavior of ::cannot_act() is moved to ::helpless(), while
::cannot_act() gets daze and vex folded into it, instead of checking for
those manually in multiple places.

The idea is that cannot_act() means "Cannot take independent action"
without any stabbability or EV penalty (which is implied by helpless())

Multiple places have been given the newly correct function call, as
appropriate.

--------------------------------------------------------------------------------
532ac46ea7 | DracoOmega | 2025-12-11 23:25:06 -0330

Don't give 0 Chei piety for kills of paralysed/petrified things
This may be the only case of a temporary status effect changing the reward
a monster gives. And Chei is fine with killing things in their sleep,
anyway!

--------------------------------------------------------------------------------
1028c4b330 | DracoOmega | 2025-12-11 23:25:06 -0330

Print a message for curare applying slow even if the victim is paralysed
UI consistency is better than worrying about how physically visible slow
movement is while paralysed. You can see the icon anyway!

--------------------------------------------------------------------------------
749dac05c1 | DracoOmega | 2025-12-11 23:25:06 -0330

Prevent monster lookup sometimes displaying astronomical damage numbers
If we were constructing a monster_info from a monster type (rather than a
specific monster), slaying was left undefined, which could sometimes
result in xv listing arbitrarily large ints worth of melee damage.

--------------------------------------------------------------------------------
7771e52b46 | DracoOmega | 2025-12-11 23:25:06 -0330

Make a Xom action use a common method
This use of this logic was overlooked when I pulled it out from
Gravitambourine and Sign of Ruin into its own method.

--------------------------------------------------------------------------------
92182b59c7 | DracoOmega | 2025-12-11 23:25:05 -0330

Give dispersal traps a short cooldown (and fix a bug)
While dispersal traps have an interesting effect that can rapidly
recontextualize combat, there are many scenarios where - once they are
first triggered - it becomes impossible to prevent monsters from rapidly
retriggering it for many turns in a row, making combat overly chaotic and
uncontrollable. This can be especially true in parts of Tomb, with its
confined spaces and swarms of batty death scarabs.

Now, each time a given dispersal trap activates, it goes dormant for 4-7
turns, during which it will not trigger at all. This should be often enough
to remain very relevant without leading to situations where the positions
of everything get randomized constantly.

At the same time, this commit fixes another bug where monsters were blinked
by dispersal traps in expanding radius order, which could lead to the same
monster being potentially blinked many times (ie: a monster close to the
trap would be blinked slightly further away, then be found again as the
iteration continued, blinked again, etc.) This was functionally fairly
similar to blinking each monster once, but tended to produce more clouds,
more messages, (and probably had a slightly higher chance of blinking
monsters out of LoS entirely). Now it should blink each monster exactly
once.

--------------------------------------------------------------------------------
ce086969f2 | DracoOmega | 2025-12-11 23:25:05 -0330

Tweak Ignis fire champion wrath
While this wrath will be a little more likely to happen now, the actual
effect of it is pretty tame, even by the standards of Ignis wrath. It's
a minor damage and movespeed boost to a single normal monster - typically
less threatening than even a single fire elemental.

The fire champion status now also applies +7 AC and rF+ to the monster
(mirroring some of the player's own benefits from Ignis) and can be applied
to a random 1-3 monsters at a time instead of only 1.

The aim here isn't to make Ignis wrath significantly more dangerous
overall, but slightly more varied.

--------------------------------------------------------------------------------
43da8513e3 | DracoOmega | 2025-12-11 23:25:05 -0330

Describe chaoslace and fire champion effect on attacks more fully in xv

--------------------------------------------------------------------------------
af7e115b44 | DracoOmega | 2025-12-11 23:25:05 -0330

Give Ignis's Fire Champion effect the same treatment
This should also make it a little more common, now that it can apply to
monsters with attack flavors.

--------------------------------------------------------------------------------
3440744094 | DracoOmega | 2025-12-11 23:25:05 -0330

Make chaoslace apply AF_CHAOS on top of normal attack flavor (regret-index)
Rather than replace it outright for a monster's first attack only (which
had awkward interactions with some monsters).

--------------------------------------------------------------------------------
3f02f5708e | DracoOmega | 2025-12-11 23:25:05 -0330

Correct a comment
absdepth0 is 0-indexed not 1-indexed (confusingly, since it isn't in lua).

There are 16-year-old comments suggesting this should be changed. Perhaps
it should be, but I'm not doing it this very moment.

--------------------------------------------------------------------------------
d15c29de47 | DracoOmega | 2025-12-11 23:25:05 -0330

Don't trigger explore teleport traps when there are no monsters to tele to

--------------------------------------------------------------------------------
1c1b361fef | DracoOmega | 2025-12-11 23:25:05 -0330

Fix explore traps being delayed by one turn when taking stairs (Acrobat)
Also possibly in some other circumstances.

(update_screen() might look like a rendering method, but this also controls
initial discovery of tiles and thus explore trap triggers)

--------------------------------------------------------------------------------
be0fc8f51e | gammafunk | 2025-12-11 19:24:40 -0600

Fix the lua add_ench() monster method (dilly)
Broken by 6d4169bc. In that commit, any lua calls adjusted to not
specify a degree where broken, since the API function still always
wanted the degree argument. This commit adjusts the API function to use
a degree default of 0, changing that value to the 3rd argument when that
value is supplied and is a number.

--------------------------------------------------------------------------------
a8b9dd471f | David Lawrence Ramsey | 2025-12-11 15:11:20 -0600

Add another graffiti wares quality.

--------------------------------------------------------------------------------
2bd5d689cb | David Lawrence Ramsey | 2025-12-11 15:09:09 -0600

Rename and resort more graffiti tags.

--------------------------------------------------------------------------------
4760ca685a | David Lawrence Ramsey | 2025-12-11 14:53:17 -0600

Expand a graffiti master class message.

--------------------------------------------------------------------------------
94df10e115 | David Lawrence Ramsey | 2025-12-11 14:40:14 -0600

Rename @coloured_graffiti@ tag to @any_graffiti@.
Since it's no longer in the colour names database.

--------------------------------------------------------------------------------
2a67b5d590 | David Lawrence Ramsey | 2025-12-11 14:35:22 -0600

Rename and resort non-graffiti author tags.

--------------------------------------------------------------------------------
e884a909b4 | David Lawrence Ramsey | 2025-12-11 14:31:11 -0600

Rename and resort graffiti author tags.

--------------------------------------------------------------------------------
b7b47a2652 | David Lawrence Ramsey | 2025-12-11 14:00:13 -0600

Move graffiti author names to graffiti.
Since they're not all proper names per se.

--------------------------------------------------------------------------------
fb94811067 | David Lawrence Ramsey | 2025-12-11 10:05:22 -0600

Split off graffiti into its own database entry.
Keeping it in the colour names database is unwieldy.

--------------------------------------------------------------------------------
2bf23d2bf5 | David Lawrence Ramsey | 2025-12-11 09:33:21 -0600

Add another master class to graffiti.

--------------------------------------------------------------------------------
0630617329 | David Lawrence Ramsey | 2025-12-11 09:27:12 -0600

Cut down more on substring usage.
Also add death mages as another name for necromancer types, and simplify
one substring.

--------------------------------------------------------------------------------
4e9896d06f | David Lawrence Ramsey | 2025-12-11 08:09:59 -0600

Tweak a graffiti master class message.

--------------------------------------------------------------------------------
7ff4155623 | David Lawrence Ramsey | 2025-12-11 08:08:54 -0600

Add a few more master classes to graffiti.

--------------------------------------------------------------------------------
73d0ffff9d | David Lawrence Ramsey | 2025-12-11 08:08:53 -0600

Consolidate/reweight class-related graffiti.

--------------------------------------------------------------------------------
5e10cda482 | David Lawrence Ramsey | 2025-12-11 08:08:53 -0600

Reweight a few graffiti advertisements.

--------------------------------------------------------------------------------
3997d8299d | David Lawrence Ramsey | 2025-12-11 08:08:53 -0600

Advertise the paint used in graffiti.

--------------------------------------------------------------------------------
3ba4fd5ace | David Lawrence Ramsey | 2025-12-11 08:08:53 -0600

Add a few shop references to graffiti.

--------------------------------------------------------------------------------
d7453c91be | David Lawrence Ramsey | 2025-12-11 08:08:53 -0600

Expand graffiti master class teachers.

--------------------------------------------------------------------------------
db266642ea | David Lawrence Ramsey | 2025-12-11 08:08:47 -0600

Restructure graffiti advertisements.

--------------------------------------------------------------------------------
442816a090 | David Lawrence Ramsey | 2025-12-10 21:47:25 -0600

Add another glowing adjective to colours.

--------------------------------------------------------------------------------
f665a6ced6 | David Lawrence Ramsey | 2025-12-10 21:47:25 -0600

Replace artefact names overlapping w/new egos.

--------------------------------------------------------------------------------
b6311f9fec | David Lawrence Ramsey | 2025-12-10 19:47:02 -0600

Add bee-related graffiti.

--------------------------------------------------------------------------------
dd6e265509 | gammafunk | 2025-12-10 11:31:46 -0600

Don't use a deprecated lua math function
The `math.atan()` can be used in place of the now-removed `math.atan2()`
function.

--------------------------------------------------------------------------------
a3b986b07f | gammafunk | 2025-12-10 11:10:33 -0600

Don't unmarshall numeric lua marker data as float
Our marshalling code has apparently never worked properly for float lua
numeric values. That is, any precision in the value of a marshalled
numeric lua value would be removed, since the value is cast to integer.
In the conversion to lua 5.4, the map marker marshalling code wasn't
updated to push the unmarshalled value as an integer lua value and now
always pushes a floating point one.

Going forward, we should either have a scheme for marshalling lua
numeric types properly or at least error when a caller attempts to
marshall a numerica lua value that's actually floating point. The former
probably involves having every instance of lua marshalling use
file.marshall_meta() and using the same floating point/int union kludge
we use for marshalling/unmarshalling float values elsewhere in save
files. Since there are no cases of attempted marshalling of non-integer
numeric values in the current lua marker code that I can see, maybe just
adding checks/errors is the best approach for now.

--------------------------------------------------------------------------------
ea148602d5 | DracoOmega | 2025-12-10 08:44:15 -0330

Fix a crash with failing to reach past an ally to attack empty space

--------------------------------------------------------------------------------
a01589ad86 | DracoOmega | 2025-12-10 05:42:36 -0330

Increase Shadowslip's piety cost
While I don't want to overly kneecap the 'backstab' Dith archetype *too*
heavily, Shadowslip provided an awful lot of both defensive and offensive
utility for its very low cost, and especially in the hands of stabbers
might be a bit too good. Let's see if this is a better spot for it.

--------------------------------------------------------------------------------
a296394e52 | DracoOmega | 2025-12-10 05:42:36 -0330

Don't refresh shadow mimic HP on each trigger while Misdirect is active
Since the shadow mimic is recreated every time it triggers, each proc
effectively fully heals it. This is more or less intentional in normal
usage (and it's not very durable anyway), but Shadowslip's misdirection
effect is specifically intended to end when the shadow is killed and also
gives a invo-based max hp boost to make it more durable. Being able to
repeatedly trigger full heals in this state probably contributes a bit too
much to its longevity in stabbing scenarios (and also in an RNG-prone way)

Instead, preserve its current health during misdirection, each time it
respawns (but increase the invo-based max HP bonus very slightly).

--------------------------------------------------------------------------------
50e11f7a32 | DracoOmega | 2025-12-10 05:42:36 -0330

Clarify the invis static targeter a little
There's been some confusion from players unfamiliar with the new behavior
for quaffing !invis, and think they are actually being asked to use the
potion on an enemy.

Hopefully by changing some wording and being more a little wordy elsewhere,
there will be less confusion.

--------------------------------------------------------------------------------
d1dcac194a | DracoOmega | 2025-12-10 05:42:36 -0330

Update beholders at the start of the player's turn, too (Acrobat)
We primarily scanned for whether to break mesmerisation/fear at the end of
the player's action. This meant that many things which happened on the
monster's turn to change LoS would not break the effect until the end of
the *following* turn (even if the player clearly could not see the
beholder at all on their turn).

This could even lead to perceived inconsistencies. For example, if reading
?fog created enough clouds to immediately break LoS with a beholder,
mesmerisation would end. But if they did so via spreading later on (in
manage_clouds()), LoS would often still appear to be immediately obscured
to the player, but mesmerisation would *not* end.

Now in addition to checking at the end of the player's turn, we also check
at its start, which should fix these issues.

--------------------------------------------------------------------------------
487a25295e | DracoOmega | 2025-12-10 05:42:36 -0330

Replace blizzard demon bolt of cold with Deflect Missiles (regret-index)
Picking up what nekomata lost, this spell is a natural thematic fit for
them, and they had more unique ways of dealing ranged cold damage already,
anyway.

The cast weight of bolt of cold was split among their 3 remaining offensive
spells.

--------------------------------------------------------------------------------
91b950993e | DracoOmega | 2025-12-10 05:42:36 -0330

Upgrade monster Repel Missiles to Deflect Missiles
While monster repel missiles did reduce incoming damage, it often didn't
do so by enough that a player felt motivated to deviate from their primary
strategy - even if that strategy was firing missiles. In many realistic
cases, it was worth less than one pip of a resistance (despite being much
rarer than those).

This boosts its effect from +15 EV to +24 EV, making it closer to a 50%
damage reduction against average monsters and further than that for evasive
ones. hellmonk felt it should also be renamed if it was going to be
stronger than the player effect, so now it is.

A few monster changes were made in compensation for this:
 -Sojobo and spriggan air mages lose a little EV
 -Nekomata lose repel missiles entirely, without replacement. (They're
  scary enough as it is!)

(Enchantress is realistically virtually missile-immune at this point, but
her defenses have always been very polarizing and I think it's fine if
alternate strategies are strictly required.)

--------------------------------------------------------------------------------
b1d52d29ad | DracoOmega | 2025-12-10 05:42:36 -0330

Fix /mindburst penetrating multiple monsters (Acrobat)
Apparently the mindburst zap was always flagged as penetrating, and merely
prevented from doing so elsewhere until 04a2e7c. Who knew?

(I've double-checked other enchantments and don't see anything else that
was overlooked.)

--------------------------------------------------------------------------------
173c25e42f | DracoOmega | 2025-12-10 05:42:36 -0330

Change attack verbs for whips
"You punish the ogre, causing immense pain!" was always a very silly line,
but it is also periodically a point of confusion for players, who think
the phrasing implies that some debuff was inflicted (and/or that it has
something to do with negative energy or the Pain brand).

Let's discard the current whip damage verb progression entirely and replace
it with: flog -> flagellate -> thrash mercilessly

--------------------------------------------------------------------------------
66e2b2663e | DracoOmega | 2025-12-10 05:42:36 -0330

Buff Injury Bond, nerf Marytr's Knell in compensation
When used by most monsters, Injury Bond tends not to play especially
interestingly. Since you still inflict just as much total damage (just
split between two people), unless one target is especially high priority,
there isn't any particular impetus to play differently than otherwise.
Preserver bands in particular tend to be fairly homogeneous in threat, so
it doesn't really matter who you're hitting. And when used by orc apostles,
it may be actively negative (by concentrating more damage on one apostle,
who might then die when they otherwise would not have).

So instead of the caster taking the full brunt of the redirected damage,
let's have them take only 50% instead (ie: 100 damage dealt -> 50 to the
original target and 25 to the Injury Bond caster). This will make it more
efficient to actually take out a preserver first in some cases and
hopefully make it play better on apostles.

However, Martyr's Knell already made good use of the effect as it was, and
I don't want to wildly increase its effectiveness, so I am reducing the
shade's health and regen significantly. And then since that would *also*
make it much easier to convert into a flayed ghost off direct damage, am
increasing its defenses. This is hopefully at least roughly in the ballpark
of its present power.

--------------------------------------------------------------------------------
e20de68ce5 | DracoOmega | 2025-12-10 05:42:36 -0330

Change duration stacking behavior of a few monster mass buffs
Battlecry, Hunting Call, Injury Bond, and Mass Regeneration would not
reapply their corresponding buff to any ally which already had them. This
sometimes meant that a monster could get caught in a cycle of 'buff wears
off exactly one ally', 'rebuff just that one ally', 'buff wears off the
next ally', 'rebuff just that one ally', and so forth.

Now when they use these effects, it will refresh their duration on all
eligable allies in range, even if they still have some duration remaining
(but will cap their duration at the higher of 'new duration' and 'remaining
duration', rather than stack indefinitely).

--------------------------------------------------------------------------------
36afd6d5a9 | DracoOmega | 2025-12-10 05:42:36 -0330

Don't give monster alerts for friendly/good-neutral monsters (pisaster)
This fixes #4946

--------------------------------------------------------------------------------
399e6f1a0d | Isaac Clancy | 2025-12-10 20:17:36 +1300

Don't give a message when firewood leaves view
Resting in a place such as the Desolution of Salt that places a lot of
fog clouds would often end up with the rest getting interrupted by a
plant or petrified plant or other firewood monster leaving view.

--------------------------------------------------------------------------------
7ff6a84f6d | DracoOmega | 2025-12-10 01:47:45 -0330

Fix Dith shadow mimic triggering 100% of the time (kawtan)
Left a testing statement in by accident, whoops!

--------------------------------------------------------------------------------
0303b11c4a | DracoOmega | 2025-12-09 16:05:36 -0330

Fix all allies refusing to fire piercing beams the player isn't immune to
Regardless of whether they were remotely aimed in your direction or not.

(Was broken by 302e8de)

--------------------------------------------------------------------------------
0dc9bb31b6 | DracoOmega | 2025-12-09 16:05:36 -0330

Fix a couple Xom banishment-related issues and simplify
When e2fda63 fixed Xom only ever fake-banishing (regardless of player XL),
it also accidentally mostly prevented fake-banishing from happening at low
XL *and* left a very, very small chance to get banished for real at low XL
too. But the code was very old, and mildly confusing in its application,
so I have simplified.

Fake banishment can happen without any XL check (it's harmless, after all!)
Real banishment now becomes *more* common with XL rather than less (this
behavior long predates the Abyss having depth-scaling, so late banishment
was very harmless, whereas late Xom banishment now should still remain
dangerous.)

Overall rate of banishment should be fairly minimally affected on the
whole.

--------------------------------------------------------------------------------
26fa380849 | DracoOmega | 2025-12-09 16:05:36 -0330

Remove extra whitespace in the middle of encounter message for Abyss spawns
(At least the ones that have equipment, which is admittedly not many.)

--------------------------------------------------------------------------------
fe91ba9648 | DracoOmega | 2025-12-09 16:05:36 -0330

Don't do level catchup after exiting Okawaru's Arena (Odds)
Time technically always passed outside while one was Duelling, but old
level catchup code was unreliable, so this wasn't always obvious. However,
new level catchup code is quite reliable, so Duelling a monster would
often result in returning to the level completely surrounded by whatever
other monsters were nearby.

Now time outside the arena should be 'frozen' for most purposes.

--------------------------------------------------------------------------------
01a83188f7 | DracoOmega | 2025-12-09 16:05:36 -0330

Don't give monster alerts for firewood (Flugkiller)
Even if the player has (for whatever reason) enabled
monster_alert += trivial they probably still don't want a message-less
--more-- for every plant they see.

--------------------------------------------------------------------------------
ae26fadbda | DracoOmega | 2025-12-09 16:05:36 -0330

Properly do kill effects when you kill a dormant tesseract
Instead of leaving the other one still alive (and able to activate, even!)

This fixes #4952 and #4953

--------------------------------------------------------------------------------
5aa594d948 | DracoOmega | 2025-12-09 16:05:36 -0330

Don't daze friendly monsters when a tesseract dies
This was originally unintentional, though I did ponder keeping it for a
while (ie: Zot's power overwhelms *all* monsters, not just those on its
side). In the end, I think it creates more niche awkwardnesses than it
probably adds.

--------------------------------------------------------------------------------
3a4ceb0d75 | David Lawrence Ramsey | 2025-12-09 12:13:04 -0600

Add another type of graffiti ordinary meeting.

--------------------------------------------------------------------------------
2fa3c52c39 | David Lawrence Ramsey | 2025-12-09 12:05:44 -0600

Add another type of graffiti relative.

--------------------------------------------------------------------------------
fde16f9ff5 | David Lawrence Ramsey | 2025-12-09 11:51:13 -0600

Move haunting graffiti into vengeance graffiti.
Since the two can overlap.

--------------------------------------------------------------------------------
4c64f9e32b | David Lawrence Ramsey | 2025-12-09 11:51:09 -0600

Expand vengeance graffiti.
It's now open to everyone, although still more common among orcs, and
has more options.

--------------------------------------------------------------------------------
39267fd9c0 | David Lawrence Ramsey | 2025-12-09 10:40:27 -0600

Fix spelling.

--------------------------------------------------------------------------------
f176571c79 | David Lawrence Ramsey | 2025-12-09 10:35:04 -0600

Add a bit more Zin and Beogh graffiti.

--------------------------------------------------------------------------------
cc2d607902 | Isaac Clancy | 2025-12-09 23:04:48 +1300

Fix monster manifold assault extending player berserk
We were counting all casts of manifold assault including those of
monsters as the player attempting an attack. This would extend the
duration of any status effects on the player that last longer when
attacking such as berserk and detonation catalyst.

--------------------------------------------------------------------------------
f20301b52e | DracoOmega | 2025-12-09 03:30:38 -0330

Give Bestow Arms a chance to produce the new brands
(Note that Bestow Arms doesn't currently generate axes or staves, but it
will have a chance to produce the other ones.)

--------------------------------------------------------------------------------
092f012dac | DracoOmega | 2025-12-09 03:30:38 -0330

Allow brand weapon scrolls (and randarts) to produce the new brands

--------------------------------------------------------------------------------
9eae0bf12c | DracoOmega | 2025-12-09 03:22:07 -0330

Fix oni potion cleave sometimes being instant and using no potion
If the player drank a potion which was not useful for any purpose besides
triggering an attack, and that attack removed all eligable monsters from
your attack range (often by killing them, though blinking via distortion
would also work), by the time it came to actually drink the potion, the
game would find that it was useless, and neither drink the potion nor
consume any time.

In theory, you could get dark maul cleaves 'for free' this way (by, say,
drinking !magic at full MP), though in practice it was probably hard to
exploit very often.

--------------------------------------------------------------------------------
993d5f7a17 | DracoOmega | 2025-12-09 03:22:07 -0330

Remove a redundant method
This was strictly redundant with calling wearing_ego with OBJ_WEAPONS.

--------------------------------------------------------------------------------
74fae88729 | DracoOmega | 2025-12-09 03:22:07 -0330

Make monsters swapping with each other not consume so much energy
A monster swapping places with another monster cost an astounding *3* turns
worth of energy: one each for the acting monster and the monster it swapped
with, and then an additional one for the acting monster due to what I can
only assume was a bug with the return value, causing the monster to
think it didn't move at all and use a turn's worth of energy to stand in
place.

A monster swapping with another monster *already* pushes that monster's
action back by moving it backwards (and usually causing it to spend another
turn getting back to where it already was). It doesn't need to double
penalize both of them (and in fact, this could cause bands of normal-speed
enemies to rapidly fall behind the player on open ground, as monsters would
repeatedly step in front of the band leader, only to get swapped past,
costing both of them multiple turns like some kind of comedy sketch of
people tripping up in each other's limbs.)

The player swapping with other monsters already didn't deduct energy from
the other monster, so now monsters doing so doesn't either (and the
double-cost bug is also fixed; it existed since at least 0.13!)

--------------------------------------------------------------------------------
b5bc79ee54 | DracoOmega | 2025-12-09 03:22:07 -0330

Remove a very silly assert and slightly tidy
Heaven forfend if a monster should reach to attack something that hasn't
even been reified yet.

--------------------------------------------------------------------------------
5967d0be4d | DracoOmega | 2025-12-09 03:22:07 -0330

Fix issue with allied monster sidestepping and tweak
The code which handled making monsters sometimes sidestep in melee to allow
ranged monsters behind them to attack the player had 2 bugs since 7ec163d.

The first was considering a monster blocked so long as its threat range
could *reach* them, rather than reach *past* them (which would be required
for them to hit something else.) Notably, this could result in things
repeatedly dancing in circles to try and get out of the way of the melee
attacks of monsters behind them.

The second was inverted logic in the genus check; it was intended that
hostile monsters only sideside for same-genus monsters, while friendly
monsters could sidestep for anything. The inverse was happening.

However, I have also decided that this genus check is opaque and silly;
lots of intelligent monsters clearly on the same faction do not belong to
the same genus. Should a vault warden be so heedless of the yaktaurs in
their very own band? Should a beastmaster ignore their own beasts? The
only demon genuses shared by more than one monster are 'hell lord' and
'pandemonium lord'.

Instead, all intelligent monsters will be willing to sidestep for ranged
allies, with one caveat: they will avoid doing this for their own summoner
(if applicable), since this tends to help the player instead.

In keeping with this, the separate check that causes sidestepping to allow
adjacent allies through when there is no other path around them is *also*
loosened for intelligent monsters, who will try to let anything else past
in chokepoints.

--------------------------------------------------------------------------------
c7967a70a2 | DracoOmega | 2025-12-09 03:22:07 -0330

Fix an off-by-1 error in draw_ring_animation()
Outward animations were one radius smaller than they should have been.

--------------------------------------------------------------------------------
a84624025e | DracoOmega | 2025-12-09 03:22:07 -0330

Remove an ancient hack
This code was added ~19 years ago as a band-aid over some bug that caused
monster speed values to sometimes become garbage. I have to assume that
this bug has stopped existing in the intervening decades (also, what even
was the original logic for 'If a monster accumulates 12 unspent turns at
once, leave them with exactly 6 of them' anyway? Or '129 speed is a sane
value', for that matter.)

--------------------------------------------------------------------------------
07e47fe34c | DracoOmega | 2025-12-09 03:22:07 -0330

Fix most normal friendly summons being unable to appear in Sanctuaries
(Not *all* friendly monster creation goes through create_monster(), but
most of it does.)

--------------------------------------------------------------------------------
5733c9eef4 | DracoOmega | 2025-12-09 03:22:07 -0330

Don't allow spectral weapons to make attacks of opportunity
They're not supposed to attack independently at all.

(Frankly, there are checks in enough different places to prevent them from
doing this that it would be nice to have a less hacky solution that just
didn't give them a melee attack at all outside of the
spectral_weapon_fineff itself somehow.)

--------------------------------------------------------------------------------
4ccfce94f3 | DracoOmega | 2025-12-09 03:22:07 -0330

New short blades brand: Devious
This brand gives +10% chance to perform low-tier stabs against valid
targets and gives a stacking boost to slaying and EV each time any stab is
performed. This stacks up to 3 times, giving +4 EV and +3 slaying per
stack, and will be maintained so long as the wielder continues to attack
(though is otherwise short-lived).

In the same spirit as Protection brand, when in the hands of monsters,
this brand gives a flat +8 EV and +6 slaying, since monsters cannot stab
things at all.

(Brand icon made by regret-index, using Ontoclasm's potion of berserk rage
icon.)

--------------------------------------------------------------------------------
8e44b499a9 | DracoOmega | 2025-12-09 03:22:07 -0330

New maces brand: Concussion
This brand causes all of the wielder's hits to push their victim backwards
and then follow them if they were the primary target of the attack (which
is to say that things like WJC whirlwind and Xom cleave status won't move
you in random directions, but still push things away).

Monsters displaced this way suffer a ministun proportional to your attack
delay (so finessed whips can't stunlock things), while those unable to
move because of a solid feature at their back will be crushed against it
and take +~25% damage instead. This gives the player a solid direct offense
boost based on positioning, as well as the ability to better-maneuver
enemies to take advantage of this. (And in cases where it is safe and
viable to shove an enemy across the floor, you can get a defensive benefit
for doing so.) WJC also opens up interesting possibilities with whirlwind
opening up space and lunges quickly isolating monsters from their allies.

(The player cannot be ministunned from being hit by this, but super-trample
can obviously be very disruptive to their positioning.)

(Brand icon made by regret-index, editing a CC0 weapon icon made by Shade)

--------------------------------------------------------------------------------
3dbfb7e1b1 | DracoOmega | 2025-12-09 03:22:07 -0330

New axes brand: Sundering
This brand causes each consecutive melee attack to store up power,
eventually unleashing it in a single massive attack that does triple its
normal damage, is more accurate, and cleaves with +1 reach. But this
requires 6 attacks performed in a row, without any other actions inbetween
or the count will be reset. This makes its average sustained damage higher
than most brands (especially if the extra reach matters), but also less
flexible. Very natural synergy with WJC, of course!

Since monsters that have anything else they could do besides attack will
never realistically attack 6 times in a row, it works slightly differently
on them: it takes only 4 attacks (though hits a little less hard), but the
only thing they are forbidden from doing is *moving*. This allows the
player some counterplay to keep a monster from sundering them, by refusing
to stand in place and let them. (Monsters also get an icon over their head
to indicate their sunder is charged).

(Sundering icon and vfx made by regret-index, using a CC0 weapon icon made
by Shade and a CC0 slash effect by Cethiel.)

--------------------------------------------------------------------------------
67271fbe5c | DracoOmega | 2025-12-09 03:21:31 -0330

Give oni incarcerators a compensatory nerf for the last two commits
Since their headbutt can now actually happen on turns they drag you, and
also via manifold assault, I've nudged down their base damage and also
their manifold assault cast rate. They already seem quite scary enough
already.

--------------------------------------------------------------------------------
4075150c5b | DracoOmega | 2025-12-09 03:21:30 -0330

Don't end a monster's attack round as soon as their target moves
This resulted in successful trample/drag attacks by monsters aborting the
rest of their attacks (which in turn had resulted in several monsters
needing trample/drag to be at the end of their attack list, even if it was
their 'primary' attack, damage or theme-wise).

This is no longer the case, and a couple monsters also have their attacks
reordered for fairly arbitrary aesthetic reasons.

(This does mean that thrashing horrors can now push their target two tiles
in the same attack round, but that mostly seems fine to me.)

--------------------------------------------------------------------------------
fff38f6c25 | DracoOmega | 2025-12-09 03:21:30 -0330

Refactor handling of monster attack rounds
While melee_attack::launch_attack_set() handled players making multiple
attacks in one round (eg: coglins), it did not do this for monsters.
Instead, fight_melee() would construct one melee_attack per attack that a
monster has and call attack() on each one. But this meant both that any
attempt to make a monster attack *outside* of fight_melee() would only ever
use their first attack, and that it was impossible to apply special attack
properties to a monster's full attack round.

As practical consequences of this, Vhi's Electrolunge, any attacks a
monster made while Vexed, and Manifold Assault could only ever use the
first attack a monster had - just one weapon or one hydra head, etc.
By handling the full attack set inside melee_attack instead, these (and
future special attacks) can all work more properly.

There is one nit in that Manifold Assault still ends up being slightly
asymmetric with the player spell (just in a different way). Player auxes
never happen on projected attacks, but monsters don't define 'aux' as
distinct from any other attack. We can't rely just on it being a weapon
attack, since the 'primary' attack type for many monsters is something else
(eg: Bite or Claw). In interest of simplicity, I am accepting that monsters
with Manifold Assault can simply use all of their attacks.

--------------------------------------------------------------------------------
9031a9fe37 | DracoOmega | 2025-12-09 03:21:30 -0330

Add actor::slaying() and monster_info::slaying()
Folding together the player-centric slaying_bonus() function and a bunch of
duplicated code that existed for monsters.

--------------------------------------------------------------------------------
a68bf543ee | DracoOmega | 2025-12-09 03:21:30 -0330

Refactor how many post-attack player effects are handled
There were a variety of effects that could happen after each
'attack action' the player performed (rather than each separate attack()
call, so that things like quick blades and coglins did not cause them to
happen far more rapidly, and projected attacks like Manifold Assault did
not cause them to happen at all). This included Platinum Paragon's followup
attack, Dith shadow mimic melee, as well as duration extensions for effects
like Detonation Catalyst and Werefury that are supposed to be maintained
so long as the player attacks.

However, there were a variety of inconsistencies. Several things that could
logically be considered an 'attack action' did none of these (such as Vhi's
or oni potion cleave). Manifold Assault extended exactly Detonation
Catalyst and no other enchantments. And it was still possible to sometimes
trigger these post-attack effects multiple times in one action anyway (for
instance via Lunge+Rampage (even though Lunge+Whirlwind still only counted
as one)), which could result in net duration gain on detonation catalyst
and similar effects. Coglin Rev also used a probabilistic chance of revving
up for martial attacks, which could result in revving many times in one
turn (or failing to rev at all).

This attempts to standadize behavior a little more, as well as make it
harder to overlook actions which should trigger it:

-Shadow mimic, paragon followup, solar flare, coglin rev, and medusa
 tendrils now can trigger at most once per player turn (no matter how many
 trigger actions might happen on that turn).

-Durations that are intended not to decay so long as the player attacks can
 now be indicated with a D_ATTACK_EXTENDED flag and will automatically not
 decay on any turn an attack was attempted against hostile non-firewood.
 (Where 'attempted' now includes failed attacks due to fumbling in water,
 fear, failing to reach past an ally with a reaching weapon, or failing to
 perform martial attacks due to moving too fast.)

-Vhi's Electric Charge, Bestial Takedown, spellclaws, spellmotor, and oni
 potion cleave can now trigger follow-up attacks. Manifold Assault cannot
 (but will still sustain M_ATTACK_EXTENDED durations). Ripostes do neither.
 The rule is, essentially, that only 'direct' attacks cause post-attack
 effects, and 'bonus' attacks not due to any player action (ie: riposte)
 do not count as an attempted attack by the player (in the same spirit as
 them already not affecting Acrobat status).

-Berserk non-attack penalty tracking and coglin rev are now folded into the
 same function as other post-attack effects, for more centralized handling.

-All of this is normally handled automatically by
 melee_attack::launch_attack_set(), but in cases where a single attack
 action consists of multiple melee_attacks, launch_attack_set(true) should
 be called and then player_attempted_attack() called manually afterward.

This should hopefully make behavior more consistent and also easier to work
with for various future things.

--------------------------------------------------------------------------------
77257f6eb3 | DracoOmega | 2025-12-09 03:21:30 -0330

Tweak Elyvilon attack-blocking wrath effect
The way this worked was sort of weird. It could only happen on attacks that
would otherwise had beaten their target's EV, perhaps vaguely attempting to
mimic a shield block, but then it also prevented all auxes from happening
afterward if it did so (unlike a shield block). It could then happen on
auxes specifically, but if it worked there, it prevented only the one aux
attack.

Instead, move it to the top of the function and have Ely prevent the attack
altogether, unconditionally.

--------------------------------------------------------------------------------
b897912027 | DracoOmega | 2025-12-09 03:21:30 -0330

Clarify the semantics of multiple attack methods
The attack class had many methods which returned bool, but whose return
value was never checked. In several of these cases, those methods always
returned the same value anyway (though not all of them). I think it was
originally intended to be 'return false if combat should stop at this
point', but even this wasn't respected in practice.

On top of this, the attack() method itself had odd semantics, where it
returned true only if an attack was 'fully completed' and did not abort
early, but this 'abort early' value was interpreted elsewhere as 'attack
did not actually occur', resulting in numerous oddnesses. For instance,
Throatcutter's instakill effect, or landing any killing blow with Wyrmbane
(whether on a dragon or not!) would prevent Dith shadow mimics or platinum
paragons from responding to that attack, since it looked from the outside
the same as a fumble.

Now all methods that returned bool without this being meaningfully used
return void instead. And attack() itself should more consistently return
false only if an attack (as well as any cleaving/multi-hit followups it
might have) all outright fail, due to fumbling, fear, lack of valid
targets, etc. But so long as you actually swing at anything, it should
return true.

(This also fixes a bug where cleaving and multi-hit attacks would report
that they did twice as much damage in total as they actually did. The only
current effect of this is that Enkindled spellclaw attacks with such
weapons would heal twice as much as intended.)

--------------------------------------------------------------------------------
17f7e79a93 | DracoOmega | 2025-12-09 03:21:30 -0330

Deduct monster energy in fight_melee instead of inside melee_attack
melee_attack automatically deducted monster energy if the effective attack
number of the attack was 0 (along with some code outside to make sure that
skipped attacks were tallied correctly. This needed compensation in some
other place and also resulted in some bugs on its own (Vexed monsters lost
*two* turns worth of energy for attacking, for instance)

The logic for whether attack::attack() returns true or false has some
unrelated problems that will require changes, so I'm decoupling one of the
two places that actually check this value ahead of time.

--------------------------------------------------------------------------------
12b71f0e52 | DracoOmega | 2025-12-09 03:21:30 -0330

Remove a check left over from old Dith player shadows
If a monster can have MID_PLAYER now, there are more important problems
afoot.

--------------------------------------------------------------------------------
55cab3cf8f | DracoOmega | 2025-12-09 03:21:30 -0330

New polearms brand: Entangling
This gives a 50% chance to apply low-damage constriction upon weapon hits
(2d2 damage), which has a natural additional synergy with polearms by
possibly blocking a monster's approach to you for several turns. (The
direct damage may seem low, but the significant reduction in enemy EV that
accompanies it should hopefully make it more than equitable to other
brands - and it also helps your aux attacks!)

Only one thing can be constricted by this weapon at a time, and it will end
as soon as you unequip it.

This is also added to unusual_monster_items by default (for characters that
are not immune to constriction).

--------------------------------------------------------------------------------
6326a8a15a | DracoOmega | 2025-12-09 03:21:30 -0330

Remove the Sword of Power
While Valour is not an identical effect, I feel it's occupying a
sufficiently similar space that there's no point in keeping this one
around. I've removed its custom code and effectively turned it into a
vanilla +9 great sword of Valour for those copies that remain in upgraded
saves.

--------------------------------------------------------------------------------
5a1e93a349 | DracoOmega | 2025-12-09 03:21:30 -0330

New long blade brand: Valour
Intended as a mild reworking of the Sword of Power effect as a regular
brand, this causes the weapon to fire off short-range penetrating beams of
energy on any melee hit made against an enemy while they are above 80% of
their maximum HP.

The damage is improved by the base damage of the weapon it is on, but is
otherwise unaffected by stats or skill. It is fairly high compared to most
brands as compensation for how easy it is to lose the effect if one doesn't
evade attacks (and the brand also briefly inflicts Weak upon the player
when they remove it, to prevent swapping to a secondary weapon every fight
as they become injured).

The beams will also stop politely before any allies which might be in the
way, making it safe to use in all situations.

(Brand icon made by regret-index, using Ontoclasm's old wand of magic dart
icon and the former Sword of Power tile.)

--------------------------------------------------------------------------------
302e8de7d0 | DracoOmega | 2025-12-09 03:21:30 -0330

Relocate the check for allies stopping shots short of hitting the player
To be next to the new stop_at_allies check. (The semantics of this one are
slightly different, which is why I didn't strictly bundle them together.)

This also should remove the need for an additional check that was caused by
rewinding the beam later.

--------------------------------------------------------------------------------
00229a8c57 | DracoOmega | 2025-12-09 03:21:30 -0330

Add bolt.stop_at_allies
This provides a simple way to automatically cut a beam short before it
could reach any ally, simulating aiming at the spot immediately before
them.

This replaces the manual ray tracing that splinterfrost barricade
explosions used to accomplish a similar thing already.

--------------------------------------------------------------------------------
d83f62ea11 | DracoOmega | 2025-12-09 03:21:30 -0330

Fix non-spell beams never bouncing off walls
There aren't many beams without an origin_spell used anymore, but there are
a couple. And the code meant to obtain the 'original' range of a beam would
find -1 for them, making it almost impossible for them to have enough range
remaining to ever bounce off a wall - even if their element should
otherwise cause them to do so.

--------------------------------------------------------------------------------
b3ca417a8c | DracoOmega | 2025-12-09 03:21:30 -0330

Remove the (almost entirely unused) Drain Magic spell
The only thing still capable of casting it were random Pan lords, and a
LoF-requiring and will-resistable Draining Gaze doesn't seem interesting
enough to keep around in such a limited context.

(Draining Gaze itself might even make sense, but I'll leave adjusting their
spellsets until Hellpan work starts in earnest.)

--------------------------------------------------------------------------------
8882afba02 | DracoOmega | 2025-12-09 03:21:30 -0330

Slightly refactor applying antimagic to actors
It now uses a method on Actor rather than enchant_actor_with_flavour() via
BEAM_DRAIN_MAGIC.

(This is arguably a little tidier, but also gives a bit more flexibility
for future effects using antimagic beams.)

--------------------------------------------------------------------------------
04a2e7cf34 | DracoOmega | 2025-12-09 03:21:30 -0330

Don't special-case enchantment beams to never penetrate
And instead rely on the standard way this is specified (ie: bolt::pierce)
for non-enchantment beams.

There were already a handful of penetrating enchantments and each one
required individual special-casing to allow them to penetrate, but as near
as I can tell, *all* of these already additionally set pierce to true in
the usual way (even though this did nothing). This means that removing this
code outright shouldn't even result in behavioral changes (but will make
things easier to do in future).

(It's possible I've overlooked *some* enchantment that specifies piercing
incorrectly, but that should be trivial to fix if discovered.)

--------------------------------------------------------------------------------
99a097a705 | DracoOmega | 2025-12-09 03:21:30 -0330

Remove hard breakpoints on stat scaling for attacks (beeceropteryx)
Stat multipliers from str/dex were applied to the base damage of a weapon
or aux attack using integer math, meaning there were ranges of stat gain
where additional str/dex would have no effect on damage. For attacks with
low base damage, this range could be quite high (as an extreme example,
a dagger did the same damage with 20 dex as it did with 29).

Now, we multiply the base damage by 100 beforehand and divide by 100 again
after the roll (with rounding), which should cause stats to have a smooth
effect on damage.

This incidentally also changes how aux attacks effectively treated their
base damage as one lower than it actually was for the purposes of rolls
(but *not* stat scaling) - ie: 11 damage horns rolled 0-10 and not 0-11,
like a base damage 11 weapon did.

This will result in very slightly more melee damage at many stat ranges
that didn't quite qualify for a damage boost previously, and an even tinier
boost to aux attacks in general. The latter barely rises above noise, even
in fsim, and the former seems modest enough that I am not especially
concerned about balance repercussions.

This closes #3832

--------------------------------------------------------------------------------
41c8e83d31 | DracoOmega | 2025-12-09 03:21:30 -0330

Remove a redundant argument from weapon_uses_strength
weapon_uses_strength had a parameter for using a weapon, but whether or not
you were using a weapon was strictly encoded by what skill you were asking
about in the first place. Mostly it seems the only use of the argument was
to make the function sometimes lie if you asked about a dex weapon skill
while simultaneously claiming you were not using a weapon (but as far as I
can tell, no code actually did this.)

--------------------------------------------------------------------------------
ecfac9ca19 | DracoOmega | 2025-12-09 03:21:30 -0330

New staff weapon brand: Rebuke
While wielding this brand, blocked melee attacks will be redirected against
the lowest health enemy in range of what attacked you instead of just being
nullified. In addition, attacking will provide a one turn +10 SH bonus
(similar to gloves of Parrying) to help enable that. This offers a unique
form of offensive boost against encounters with multiple enemies, while
also providing a defensive benefit that two-handers typically do not
(though still only while pressing the attack).

Monsters get the shield bonus without needing to attack first (much like
how Protection brand already works for them). Gods will forgive them
turning your blows in your allies' direction, but the allies themselves
may not be so understanding!

[This has a natural synergy with a staff weapon art that will not be making
it into this version, and would be weaker without it, so I have dialed the
numbers up a little bit to hopefully make it stand on its own a bit
better.]

(Brand icon made by regret-index, using Ontoclasm's old jumping and
protection icons.)

--------------------------------------------------------------------------------
9962f1cdf7 | DracoOmega | 2025-12-09 03:21:30 -0330

Slightly refactor some shield block messaging code
Messaging for melee blocks is now handled by
melee_attack::handle_phase_blocked(), just as ranged blocks were handled by
ranged_attack:handle_phase_blocked(), and unrand shield triggers are moved
attack::handle_phase_blocked().

This fixes a minor issue with message order differing between the two (Gong
would print its sound *before* telling you that you'd blocked a ranged
attack, but afterward for melee), as well as laying the groundwork for a
future melee block effect.

(It also removes code intended to print a special message when a shield
failed to block a penetrating weapon projectile. As near as I can tell, due
to the codepaths used, this message was only printed for two weeks during
2014, and not since. However, it seems unnecessary to print at all - spell
beams don't do this sort of thing - so I've just removed it.)

--------------------------------------------------------------------------------
433d0a2a92 | DracoOmega | 2025-12-09 03:21:30 -0330

Adjust how several reprisal effects work, and refactor
There are a number of different effects in Crawl that have a chance of
triggering when the player dodges a melee attack, such as minotaur
retaliatory headbutt, Fencer's Gloves, or Mark of Execution. But one thing
that is very non-obvious about these is that they only had a chance of
triggering when the player dodged the *first* attack a monster makes each
attack round. (ie: only the first weapon of a two-headed ogre or
blademaster, only the first hydra head, but an unlimited number of attacks
by a fast monster who had only a single attack).

This is especially misleading with Execution, which specifically states
that it retaliates on *all* dodged attacks (with a 100% success chance).
Fencer's Gloves had the additional oddity that they could only trigger off
dodging the first attack of a round, but by blocking *any* attack the
monster makes.

This commit changes on-dodge reprisal effects to have a chance to trigger
on dodging *any* attack, but limiting the most common ones (ie: retaliatory
headbutt and Fencer's gloves) to a single trigger per monster, per player
action (similar to how shield blocks are per player action). This removes
the distinction between 'slow monster with multiple attacks' and 'fast
monster with single attack' while keeping the texture of these reprisals
different from spines/passive freeze/etc. (which are incredibly murderous
to fast-attackers).

Balance-wise, this is a modest buff to minotaur headbutt against
multi-attacking monsters and a modest nerf to it against fast monsters.
There are probably more of the latter than the former in the early parts of
the game where retaliation is most relevant, but it's unclear to me if it's
a net buff or nerf. I do think it's more intuitive and consistent, however.

Executioner blades can trigger an unlimited number of times per round, as
was always intended (and matches their description). Cloak of Starlight can
likewise (but will no longer trigger against already-blinded monsters, to
reduce message spam.) (Autodazzle is also uncapped, but its activation rate
was already low and I already had plans for a more significant change to it
at some future point anyway.)

In addition, I have made the following changes:
 -Retaliatory auxes can now strike non-adjacent targets if the player is
  in Aqua form (ie: they have reaching auxes).
 -Starlight can now trigger against enemies that are invisible or while the
  player is confused or incapacitated (since *you're* not the one doing
  anything).
 -Monster minotaur retaliatory headbutt is removed entirely. It was very
  unlikely to be relevant in practice, since the minotaurs the player can
  fight have very low EV (Asterion often has as little as 2!), and many
  players were not aware it even existed. Rather than try to make something
  so low-impact more symmetric with the adjustment to the player ability, I
  opted to simply cut it.

--------------------------------------------------------------------------------
07c986e9b8 | David Lawrence Ramsey | 2025-12-07 21:34:42 -0600

Use mon-info for single uniques/renamed monsters.
This removes the need for manual handling of "the " monsters, fixes
zombified uniques' not having their zombified types described, and fixes
renamed monsters' not getting proper articles.

Closes #4958.

--------------------------------------------------------------------------------
2ca6f04dbe | David Lawrence Ramsey | 2025-12-07 18:48:01 -0600

Simplify comment.

--------------------------------------------------------------------------------
5360cee6f2 | David Lawrence Ramsey | 2025-12-07 18:33:36 -0600

Return apply_description() for "the " monsters.
Since the unmodified name isn't used for them.

--------------------------------------------------------------------------------
8a51edffe0 | David Lawrence Ramsey | 2025-12-07 18:19:33 -0600

Use apply_description() for "the " monsters.
As is done elsewhere, instead of manually adding "the " to accomplish
the same thing.

--------------------------------------------------------------------------------
096706bd77 | gammafunk | 2025-12-07 15:03:32 -0600

Fix lua Worley noise functions (PanSaczeczos and others)
A few values in the Worley noise output were actually floating point
values despite having names like "pos" and "distance" that more implied
integers. This is my fault for not checking this more carefully when
converting lua API code to lua 5.4. The end result was that many layouts
that use procedural code based on Worley noise were broken. I'll need to
do a second pass on the changed lua api functions to confirm that I
didn't miss any other data that needs lua_pushnumber() instead of
lua_pushinteger().

--------------------------------------------------------------------------------
43b89d6d4f | David Lawrence Ramsey | 2025-12-07 10:31:02 -0600

Handle spectral SoH in encounter messages.
Since its name is removed from its zombified form, but it should still
be treated as named for the purposes of encounter messages.

--------------------------------------------------------------------------------
54a9d63e33 | David Lawrence Ramsey | 2025-12-07 09:51:35 -0600

Handle zombified "the " names in monster info.

--------------------------------------------------------------------------------
ec69589a7c | David Lawrence Ramsey | 2025-12-07 09:06:49 -0600

Handle zombified "the " names in encounter msgs.

--------------------------------------------------------------------------------
4625f0624b | tianmaster | 2025-12-07 07:59:43 -0600

Explicitly load the coroutine library

--------------------------------------------------------------------------------
b1ee126873 | gammafunk | 2025-12-06 16:17:08 -0600

Lua 5.4: Updates to crawl.setfenv()
Add checks for the arguments as well as documentation.

--------------------------------------------------------------------------------
08e86b12f2 | gammafunk | 2025-12-06 16:17:08 -0600

Update the prebuilt DES compiler
Due to changes in util/levcomp.ypp, we need a new version of the
generated cc files, which are used for systems that don't have
flex/bison.

--------------------------------------------------------------------------------
2b9214b6d7 | gammafunk | 2025-12-06 16:17:08 -0600

Add stack traces to dlua error reporting
The switch to Lua 5.4 has uncovered a few previously silent bugs in dlua
layout code. Even with the error message, which includes source file and
line number where the error occurred, it can be difficult to assess how
an error arose. Furthermore we have no permanent record of these errors
after they occur.

This commit implements backtrace reporting for errors in dlua, as well
as a section in the morgue where these are permanently saved. This new
"dlua_errors" morgue section will be enabled by default in trunk. For
non-game modes like objstat/mapstat where errors are reported to stderr,
we always include a dlua backtrace on stderr after the error message.

Finally, we simplify the call to any persistant score function used for
Sprint. Now we avoid erroring when the function doesn't exist.

--------------------------------------------------------------------------------
584c47a44f | gammafunk | 2025-12-06 16:17:08 -0600

Improve vault dlua error reporting
For lua errors that ultimately arose from a vault map_def, include the
map name in the final error string. This way we can always know which
vault originated the error even when the error occurred in a lua
function not created in the vault.

Also improve reporting for errors that originate in a global prelude by
rewriting the errors in these chunks the same way we do for chunks
contained directly in the map. Now we get accurate line numbers and a
map name for errors in functions defined in a DES file's global prelude.

--------------------------------------------------------------------------------
ae8e9aa288 | gammafunk | 2025-12-06 16:17:07 -0600

Remove an unused method and refactor
The map_def::resolve() method hasn't been meaningfully used for some
time. It used to directly manage resolution of map lines, but this is no
longer the case. The only current use is during map validation, where it
effectively acts as a test of a lua-side function that's already used
previously during map validation. Hence I'm removing this method.

Also refactor out an unused method argument and clean up use of an RAII
variable.

--------------------------------------------------------------------------------
eb67b9711e | gammafunk | 2025-12-06 16:17:07 -0600

Refactor a save file macro
Don't use `short` and `long` as macro variable names, since these are
reserved keywords in C++.

--------------------------------------------------------------------------------
c7863f101d | gammafunk | 2025-12-06 16:17:07 -0600

Refactor the CLua class
The CLua class manages dlua and clua states, including initialization
and use of lua_pcall(). Despite it storing the lua state as a member,
various non-static methods required a lua state argument. Additionally,
the setup of an RAII throttling class is copied in many places. This
commit standardizes use of ::state() to check/initialize the lua state
followed by subsequent use of the private _state member. It adds a
::pcall() method to centralize setup of the throttler and any future
lua_pcall setup.

--------------------------------------------------------------------------------
d0b26c84e2 | gammafunk | 2025-12-06 16:17:07 -0600

Lua 5.4: DES cache regeneration
Add a minor version check for any DES bytecode generated with Lua 5.1
and discard it. Also remove some unused variables.

--------------------------------------------------------------------------------
00ee42f782 | gammafunk | 2025-12-06 16:17:07 -0600

Lua 5.4: Improve usage of integers in the API
Lua now has separate integer and float storage for numbers
internally, Using the correct type of number allows us to more
precisely document the API return values and allows better implicit
conversion of numbers to strings, since integer numbers will convert to
strings without a decimal point. Such a conversion actually broke the
vault_catalog.lua test initially in the conversion to Lua 5.4.

Hence I've modified our lua API code to push integer numbers when
appropriate. This is the vast majority of use cases are integer values,
with very few things in the API actually use floats. In a few cases,
the API can only generate integer values, but the context (e.g. the
relevant API name) strongly implies a floating point value, so I've
retained use of number.

A future commit should change all the doxygen comments to indicate when
a return value is integer. Some additional future work could simplify
the many checks that a number value is in fact an integer.

--------------------------------------------------------------------------------
c5fdcaf828 | gammafunk | 2025-12-06 16:17:07 -0600

Lua 5.4: Update a Lua test
The `unpack()` lua function is now `table.unpack()`.

--------------------------------------------------------------------------------
b032310397 | gammafunk | 2025-12-06 16:17:07 -0600

Lua 5.4: Use a safe integer check function
Along the lines of 9dfec575, use the seed-stable "safe" lua integer
check functions for a couple of newer API functions.

Looking ahead, I believe these custom safe functions might no longer be
necessary. My understanding is that these are needed because the lua 5.1
lua_tointeger() API function depends on a lua_number2int macro that uses
different truncation methods depending on architecture and compilation
options, as seen here:

https://www.lua.org/source/5.1/luaconf.h.html#lua_number2int

Hence our clua util code has luaL_safe_tointeger() and
luaL_safe_checkinteger() functions that uses simple casts, so these will
have predictable results across compilation arguments.

The situation in lua 5.4 is different, since now lua has an underlying
integer storage for lua numbers that are integers. The
luaL_checkinteger() and lua_tointeger() now both use the
lua_tointegerx() function. For floating point values, this ultimately
leads to the value being floored and then casted by
lua_numbertointeger() before being saved as lua integer storage:

https://www.lua.org/source/5.4/lapi.c.html#lua_tointegerx
https://www.lua.org/source/5.4/luaconf.h.html#lua_numbertointeger

I think this means that, in lua 5.4, we can use the normal
luaL_checkinteger() and lua_tointeger() functions without maintaining
our own safe versions. I'll discuss with further with others before
making that change.

--------------------------------------------------------------------------------
dbce1ad2a2 | Vsevolod Kozlov | 2025-12-06 16:17:07 -0600

Lua 5.4: Update Lua code for compatibility

--------------------------------------------------------------------------------
2b29bf83dc | Vsevolod Kozlov | 2025-12-06 16:17:07 -0600

Lua 5.4: Add a crawl.setfenv function

--------------------------------------------------------------------------------
2a0c4b8fd8 | Vsevolod Kozlov | 2025-12-06 16:17:07 -0600

Lua 5.4: Support the new Lua C API
Committer's Note: Fixed merge conflicts for current master and unbraced.

--------------------------------------------------------------------------------
5ea4844b38 | Vsevolod Kozlov | 2025-12-06 16:17:07 -0600

Lua 5.4: Adjust the Lua version in the Makefile

--------------------------------------------------------------------------------
acf9cb652a | gammafunk | 2025-12-06 16:17:07 -0600

Lua 5.4: Update CI, debian, and documentation
Make sure we install the lua 5.4 system package for CI, update the
debian package control files, and document that we require lua 5.4.

--------------------------------------------------------------------------------
cb752880e4 | gammafunk | 2025-12-06 16:17:07 -0600

Lua 5.4: Update the MSVC project file
Add the new Lua source files to the project. Also give the final line a
newline. Vim did this automatically; hopefully this doesn't break
compilation under MSVC.

--------------------------------------------------------------------------------
d9f002ac64 | gammafunk | 2025-12-06 16:17:07 -0600

Lua 5.4: Update the Lua contrib
The contrib now has a copy of Lua 5.4 that works with crawl's Makefile.

--------------------------------------------------------------------------------
29b25b21a2 | David Lawrence Ramsey | 2025-12-06 13:26:02 -0600

Add another graffiti religion entry.

--------------------------------------------------------------------------------
9b4a457321 | David Lawrence Ramsey | 2025-12-06 12:49:32 -0600

Update count of Beogh-referencing orc names.

--------------------------------------------------------------------------------
13b343399e | David Lawrence Ramsey | 2025-12-06 12:20:09 -0600

Simplify graffiti with possible signatures.

--------------------------------------------------------------------------------
ac37bb9c5f | David Lawrence Ramsey | 2025-12-06 12:15:27 -0600

Rename a graffiti tag.
Because it handles any religion but Zin and Beogh, not any religion.

--------------------------------------------------------------------------------
f43983a6f7 | David Lawrence Ramsey | 2025-12-06 12:01:33 -0600

Use fewer substrings.
Using substrings in names can cause nested substrings in graffiti
messages, and using a lot of substrings makes things more complex.

--------------------------------------------------------------------------------
f47843b140 | David Lawrence Ramsey | 2025-12-06 11:47:09 -0600

Expand unreadable graffiti a bit, and fix its wording.

--------------------------------------------------------------------------------
75d48228f3 | David Lawrence Ramsey | 2025-12-06 11:10:14 -0600

Allow apostle-specific orc names in graffiti.

--------------------------------------------------------------------------------
753880059d | David Lawrence Ramsey | 2025-12-06 11:09:09 -0600

Add clarifying comment on orc graffiti authors.

--------------------------------------------------------------------------------
54a1bbcd76 | David Lawrence Ramsey | 2025-12-06 11:08:58 -0600

Tweak a graffiti line.

--------------------------------------------------------------------------------
052e29fb2a | David Lawrence Ramsey | 2025-12-06 10:09:24 -0600

Add another short saying to graffiti.
Also add a clarifying comment.

--------------------------------------------------------------------------------
75ce263a0d | David Lawrence Ramsey | 2025-12-06 09:48:18 -0600

Add another rare name to graffiti.

--------------------------------------------------------------------------------
012ed0303e | David Lawrence Ramsey | 2025-12-06 09:35:06 -0600

Separate rare orc graffiti authors from non-rare.
So that the former don't show up more often than other rare graffiti
authors.

--------------------------------------------------------------------------------
5ffdd0655e | David Lawrence Ramsey | 2025-12-06 09:18:47 -0600

Add a rare orc graffiti author.
And account for it when preferring or not preferring orc names.

--------------------------------------------------------------------------------
50213d357d | David Lawrence Ramsey | 2025-12-06 08:36:32 -0600

Remove redundant weights; w:10 is the default.

--------------------------------------------------------------------------------
c61df08d15 | David Lawrence Ramsey | 2025-12-06 08:35:12 -0600

Split up rare graffiti author names.
So that we don't have to copy from monname.txt for the god one (or any
more that are added). Also, differentiating them can be useful for other
purposes.

--------------------------------------------------------------------------------
c776dcd697 | David Lawrence Ramsey | 2025-12-06 07:38:53 -0600

Add another species line to graffiti.

--------------------------------------------------------------------------------
c94aa0ba46 | David Lawrence Ramsey | 2025-12-06 07:34:33 -0600

Add another short saying to graffiti.

--------------------------------------------------------------------------------
341eac8de6 | David Lawrence Ramsey | 2025-12-06 07:31:18 -0600

Reweight some graffiti lines.

--------------------------------------------------------------------------------
baebd13f5c | David Lawrence Ramsey | 2025-12-06 07:30:16 -0600

Add more hailed gods to graffiti.

--------------------------------------------------------------------------------
84fcca21bd | David Lawrence Ramsey | 2025-12-06 07:28:38 -0600

Rename & sort some graffiti tags alphabetically.

--------------------------------------------------------------------------------
02767520ef | David Lawrence Ramsey | 2025-12-05 09:05:55 -0600

Fix name replacements on steelspirits (oops).
So that they actually get random names instead of @RANDGEN@.

--------------------------------------------------------------------------------
b47c7c858c | David Lawrence Ramsey | 2025-12-05 01:13:58 -0600

Add more comments on uniques to graffiti.

--------------------------------------------------------------------------------
cbf3b60332 | David Lawrence Ramsey | 2025-12-05 01:01:30 -0600

Rename a graffiti tag.
Not all statements on uniques are complaints.

--------------------------------------------------------------------------------
dcd2fbcaa3 | David Lawrence Ramsey | 2025-12-05 00:52:22 -0600

Expand a few graffiti fight messages.

--------------------------------------------------------------------------------
8ff7190a8b | David Lawrence Ramsey | 2025-12-05 00:51:16 -0600

Fix a graffiti message formatting error.

--------------------------------------------------------------------------------
80ceb91cdd | David Lawrence Ramsey | 2025-12-04 22:13:56 -0600

Add another wacky armour name to artefacts.

--------------------------------------------------------------------------------
86c9246aa5 | David Lawrence Ramsey | 2025-12-04 21:33:40 -0600

Add another "other" name to artefact weapons.

--------------------------------------------------------------------------------
3b72777757 | Claus Mouse | 2025-12-04 13:53:41 -0600

Updated options_txt with talismans for autopickup
[Committer's note: Removed "%" from the default list, as talismans are
not actually picked up by default.]

--------------------------------------------------------------------------------
3d4d16ab83 | DracoOmega | 2025-12-04 15:21:49 -0330

Fix player orbs often preventing blocks from working (WizardIke)
An orb the player had equipped would be returned by you.shield(), despite
not being a shield. This had the indirect effect of preventing the player
from blocking many things, due to the block limit of an orb being 0.
(Whereas not having any 'shield' at all gives a block limit of 1). This
meant that, no matter how many other sources of SH the player might have,
such as amulets of reflection, Qazlal, or mutations, they would be unable
to block. Even Divine Shield didn't work on spell projectiles (though, by
coincidental differences in codepath, it did work on melee and ranged
attacks).

Now player::shield() can only return actual shields (amusingly enough,
monster::shield() did already work properly). actor::offhand_item() is
added for the few cases where we just want to know if some non-weapon is
taking up that slot, whether a shield or not.

--------------------------------------------------------------------------------
5710f06dab | patrick | 2025-12-04 12:08:47 -0500

Make a few small fixes to overflow altars
fedhas_altar_fruit_tree: remove a spurious C that got slipped into the
    map somehow
vehumet_statue: put back a removed SHUFFLE so now the second kind of
    statue can appear

--------------------------------------------------------------------------------
9e2179861e | Isaac Clancy | 2025-12-04 19:55:40 +1300

Fix "input" messages from client being reordered
All the messages that the webtiles client sends back to the server
should arrive in the order they were send. However, due to the way in
which we were converting messages of type "input" into console input, it
could be reordered with respect to other messages. Commit fc0747a made
it common for "input" messages to be reordered before other messages
that give keycodes instead of being extremely rare making this
reordering problem very noticeable. To fix this, add a new "text_input"
message type which doesn't suffer from reordering and use it instead
(the old "input" messages type needs to remain unchanged so that
servers can still run old versions of the game).

--------------------------------------------------------------------------------
d7418c7e04 | David Lawrence Ramsey | 2025-12-03 19:08:49 -0600

Handle singular "the " names in encounter msgs.
So we get e.g. "You encounter the Serpent of Hell." instead of "You
encounter Serpent of Hell."

Note that a hypothetical unique monster with both a "the " name and a
title (none currently exist) will have its title take precedence.

--------------------------------------------------------------------------------
d34c7c2060 | DracoOmega | 2025-12-03 21:04:08 -0330

Fix uniques' titles not being used in encounter messages (Snakku)

--------------------------------------------------------------------------------
765122c258 | DracoOmega | 2025-12-03 19:47:18 -0330

Remove some oddly well-commented dead code
This statement was seemingly never live in trunk, and doesn't seem relevant
for how golem currently operates. It already can act immediately on the
turn you move towards it, regardless of this.

Perhaps this is a remnant of an older version of it that never made it to
trunk at all?

--------------------------------------------------------------------------------
1ffbecd877 | DracoOmega | 2025-12-03 19:35:41 -0330

Fix a couple tiny tesseract bugs
Due to function ordering, only one of the two tesseracts was actually being
woken up when they activated (the only effect this had was on stabability,
if that one somehow remained unalerted long enough to walk up to it).

Also, fix the second tesseract still not disappearing from monster memory
when the first was killed.

--------------------------------------------------------------------------------
865ad28f68 | DracoOmega | 2025-12-03 18:28:53 -0330

Make lua you.contaminated() return something more useful
It is renamed you.contamination() and returns the player's current
contamination percentage. (Instead of merely whether this was above 0%)

--------------------------------------------------------------------------------
a2ad6df003 | DracoOmega | 2025-12-03 18:27:16 -0330

Improve the UI regarding contamination explosion damage (Odds)
The % screen now indicates the maximum damage the player could take from
their current level of contamination, if it were to explode. They are also
prevented from resting if this explosion is capable of killing them.

This number is also exposed to lua via you.max_contam_damage() (mostly so
that the Contam status tooltip can also list this number). A very minor bug
with how the tooltips are refreshed means that if the player gains an XL
without any status changes, the tooltip may very slightly underestimate the
max damage (but % will still be accurate).

--------------------------------------------------------------------------------
a1ef7c00ed | DracoOmega | 2025-12-03 17:42:18 -0330

Give monster alerts even if a monster causes an interrupt
Many interrupts will cause a prompt on their own, which made this
additional more seem somewhat superfluous, but travel won't, so probably
it's more consistent if it always does.

--------------------------------------------------------------------------------
0403af7a57 | DracoOmega | 2025-12-03 17:41:08 -0330

Mark erythrospites as no_poly_to

--------------------------------------------------------------------------------
c1c35e6711 | Isaac Clancy | 2025-12-03 21:07:53 +1300

Don't special case handling of green water
Instead, use the same colour override code used for other tiles to
select the correct tiles for green and light green water.

--------------------------------------------------------------------------------
38ba4db094 | regret-index | 2025-12-03 01:20:58 -0330

Yet further very brief vault review
Worthy of note:

 * Pan entries now guarantee a tier 2 demon, instead of presenting the
   entirely harmless premise of being interrupted in exploration to find
   a vault containing exactly one Lair-portal threat of a tier 3 demon.

 * muffindrake_necropolis_ghost_three_little_ghosts has had its terrain
   shuffles fixed to no longer require as much digging charges to access.

 * Orc special rooms in V now match the threat level of Elf's, to match
   how the orc warlord bands in V no longer use nearly as much low-tier
   orc chaff as previously.

 * wad_dig_loot uses a cacodemon in Elf alongside a demonologist, since
   the elementalist placed in there can no longer dig itself out.

--------------------------------------------------------------------------------
cf93559967 | Isaac Clancy | 2025-12-02 21:19:54 +1300

Fix sometimes getting incorect monster leaves view messages
If a monster enters view and then isn't in view at the start of the
player's next turn, we print a message so that the player isn't confused
about things like auto explore being interrupted with no monster in view
etc. However, because we printed the messages about monster's leaving
view before decaying clouds, a monster could move behind enough fog
clouds to be out of view and then we would print the message and then
the fog clouds would decay putting the monster back in view. This would
leave the player with a confusing message about a monster leaving view
when all the monster's were still in view.

--------------------------------------------------------------------------------
40ba7039b0 | David Lawrence Ramsey | 2025-12-01 23:50:52 -0600

Add another name change option for graffiti.

--------------------------------------------------------------------------------
fd82ec16b2 | David Lawrence Ramsey | 2025-12-01 22:37:02 -0600

Add Shapeshifting professors to graffiti.
Use "talismancer" as one of the names for them, so that fewer of them
sound like shapeshifters as in the monster type. (It's taken from an old
Evocations title that was removed in 1880023187 when talismans and
shapeshifting were added. It seems appropriate here since shapeshifting
requires talismans.)

--------------------------------------------------------------------------------
70931cf0f5 | David Lawrence Ramsey | 2025-12-01 22:25:56 -0600

Add another ordinary meeting to graffiti.

--------------------------------------------------------------------------------
cf55fa2170 | David Lawrence Ramsey | 2025-12-01 22:08:41 -0600

Add Invocations/Evocations professors to graffiti

--------------------------------------------------------------------------------
7ed2d023a4 | David Lawrence Ramsey | 2025-12-01 21:55:02 -0600

Reorder a graffiti professor section.

--------------------------------------------------------------------------------
fc0747a131 | Isaac Clancy | 2025-12-02 15:37:09 +1300

Fix resizing the console in webtiles
When playing webtiles on a console, the game has to wait for input from
the console as well as from the websocket connection (to handle tiles
spectators joining). We were doing this by using `select` on stdin and
the websocket, however, we wouldn't stop waiting when a window resize
signal was triggered. To fix this, use `pselect` and handle the `EINTR`
result it returns to stop waiting and handle resize signals when they
arrive.

--------------------------------------------------------------------------------
8a2acc8fe4 | hellmonk | 2025-12-01 15:50:45 -0600

Better name finding for Jiyva beam absorption.
Fall back to beam flavor name if the beam name is empty.
Closes #3717.

--------------------------------------------------------------------------------
cc70594c8b | hellmonk | 2025-12-01 14:31:23 -0600

Reduce resonance damage.
Now provides 1.5% per sklevel, down from 2%.

--------------------------------------------------------------------------------
b6ab66b0f8 | Zhang Haocheng | 2025-12-01 14:21:50 -0600

feat: show failure rates of abilities in chardump (#4821)
Shows failure rates of abilities in the chardump `a:` list, e.g. `a:
Oozemancy (3%), Slimify (12%)`, similar to the passive effects list in
format.

There were a couple of times that either me or my friends wanted to know
the failure rates of abilities without having to start the game. I'm not
sure if it's intuitive enough so that most people won't mistake it for
success rate, or something else. Maybe showing a table like the spell
library can be better?
--------------------------------------------------------------------------------
f00789f1cf | hellmonk | 2025-12-01 13:30:11 -0600

Fix: adjust the nameless infernalist trove.
Don't spawn monsters on the inside.

--------------------------------------------------------------------------------
07e17c3bcb | hellmonk | 2025-12-01 13:19:11 -0600

Improve wizmode parchment handling.
Allow specifying a parchment spell in &o. Default to generating a parchment
rather than the first book containing a spell when providing a spell name.

--------------------------------------------------------------------------------
5803638258 | hellmonk | 2025-12-01 13:19:11 -0600

Fix: let spriggan druids boon while blind.
The type of monster_near_iterator used required the druid to actually be able
to see the monster, meaning that blinding them prevented it from working.
Appears to be unintended, so use the other monster_near_iterator instead.
Do the same for pharaoh ant bind souls, just in case.

Fixes #4308

--------------------------------------------------------------------------------
47fa2142d4 | hellmonk | 2025-12-01 13:08:52 -0600

Let draw out power cure mesm and fear.
Free your mind. Closes #4444.

--------------------------------------------------------------------------------
632e635cf8 | David Lawrence Ramsey | 2025-12-01 12:33:17 -0600

Fix glowing message with helmets of light.
Change "orb" to "armour", since the light ego can show up on either
helmets or orbs (although orbs of light only exist as monk starting
equipment).

Closes #4937.

--------------------------------------------------------------------------------
d5195eb00b | hellmonk | 2025-12-01 00:21:19 -0600

fix a spell menu description

--------------------------------------------------------------------------------
77ab2cbb74 | David Lawrence Ramsey | 2025-11-30 21:39:23 -0600

Add a few more bland names.

--------------------------------------------------------------------------------
b05235fbd5 | David Lawrence Ramsey | 2025-11-30 20:59:22 -0600

Let necromancers be professors in graffiti.

--------------------------------------------------------------------------------
28c287d660 | David Lawrence Ramsey | 2025-11-30 20:45:14 -0600

Adjust titles for people/professors in graffiti.
They now get more options.

--------------------------------------------------------------------------------
35a784107e | David Lawrence Ramsey | 2025-11-30 18:54:41 -0600

Fix errant newline in lindwurm quote.
Closes #4934.

--------------------------------------------------------------------------------
2a305e635e | David Lawrence Ramsey | 2025-11-30 18:14:49 -0600

Simplify some graffiti messages.
Don't explicitly mention that some things are local. It's implied.

--------------------------------------------------------------------------------
4b1999af99 | David Lawrence Ramsey | 2025-11-30 15:34:07 -0600

Expand Dith & equivalent graffiti a bit.
Assume the ones practising thievery are using code phrases so as not to
bring the authorities down on them.

--------------------------------------------------------------------------------
9242a29595 | David Lawrence Ramsey | 2025-11-30 14:07:18 -0600

Add Lugonu & equivalent to graffiti.

--------------------------------------------------------------------------------
5ed36cee4f | David Lawrence Ramsey | 2025-11-30 13:35:32 -0600

Add the Shining One & equivalent to graffiti.

--------------------------------------------------------------------------------
fb347f68f2 | David Lawrence Ramsey | 2025-11-30 13:32:15 -0600

Tweak a Wu Jian Council graffiti message.

--------------------------------------------------------------------------------
66b6d70f0a | David Lawrence Ramsey | 2025-11-30 13:30:28 -0600

Expand Zin messages and tweak a Beogh message.

--------------------------------------------------------------------------------
2cd2c98c4f | David Lawrence Ramsey | 2025-11-30 12:51:36 -0600

Add Ru & equivalent to graffiti.

--------------------------------------------------------------------------------
480873f066 | David Lawrence Ramsey | 2025-11-30 12:47:51 -0600

Fix typos.

--------------------------------------------------------------------------------
8fb3c7abe2 | David Lawrence Ramsey | 2025-11-30 12:29:51 -0600

Add another Beogh religious graffiti line.

--------------------------------------------------------------------------------
e3ec70bb1c | David Lawrence Ramsey | 2025-11-30 12:25:40 -0600

Expand a non-religious graffiti line.

--------------------------------------------------------------------------------
054b47e093 | David Lawrence Ramsey | 2025-11-30 12:22:56 -0600

Add Ashenzari to religious graffiti.

--------------------------------------------------------------------------------
3c0683f5ac | David Lawrence Ramsey | 2025-11-30 12:07:48 -0600

Fix some religious graffiti wording.

--------------------------------------------------------------------------------
966f0d23eb | David Lawrence Ramsey | 2025-11-30 03:51:26 -0600

Add Elyvilon & equivalent to graffiti.

--------------------------------------------------------------------------------
2924441ca5 | David Lawrence Ramsey | 2025-11-30 03:36:14 -0600

Expand non-religious graffiti a bit more.

--------------------------------------------------------------------------------
78b70c2b0f | David Lawrence Ramsey | 2025-11-30 03:32:45 -0600

Split off non-religious/religious graffiti.
Since there's some major overlap.

--------------------------------------------------------------------------------
24b1bdac57 | David Lawrence Ramsey | 2025-11-30 03:15:13 -0600

Add Qazlal to religious graffiti.

--------------------------------------------------------------------------------
59074f5755 | David Lawrence Ramsey | 2025-11-30 02:47:38 -0600

Add the Wu Jian Council to religious graffiti.

--------------------------------------------------------------------------------
e87b8e010b | David Lawrence Ramsey | 2025-11-29 22:54:08 -0600

Add Dithmenos to religious, etc. graffiti.

--------------------------------------------------------------------------------
5e2cc7e140 | David Lawrence Ramsey | 2025-11-29 22:38:33 -0600

Add Uskayaw to religious graffiti.

--------------------------------------------------------------------------------
d2d6d5144a | David Lawrence Ramsey | 2025-11-29 22:33:12 -0600

Add Hepliaklqana to religious graffiti.

--------------------------------------------------------------------------------
2a8f48977b | David Lawrence Ramsey | 2025-11-29 22:15:11 -0600

Add Fedhas to religious graffiti.

--------------------------------------------------------------------------------
8b2951e71f | David Lawrence Ramsey | 2025-11-29 18:33:52 -0600

Add Makhleb to religious graffiti.

--------------------------------------------------------------------------------
8ccaf28445 | David Lawrence Ramsey | 2025-11-29 18:09:36 -0600

Add clarifying comment.

--------------------------------------------------------------------------------
7a4a1a89be | David Lawrence Ramsey | 2025-11-29 14:10:28 -0600

Fix errant newlines in oklob plant quote.
Closes #4930.

--------------------------------------------------------------------------------
71f7a30ef5 | David Lawrence Ramsey | 2025-11-29 12:45:29 -0600

Add a few more bland names.

--------------------------------------------------------------------------------
3cc77bdd50 | David Lawrence Ramsey | 2025-11-29 12:30:17 -0600

Sort bland names alphabetically.

--------------------------------------------------------------------------------
a3d230b921 | David Lawrence Ramsey | 2025-11-29 11:25:12 -0600

Add another graffiti section.

--------------------------------------------------------------------------------
cc8f42fe07 | David Lawrence Ramsey | 2025-11-29 11:08:44 -0600

Add more unique-related graffiti.

--------------------------------------------------------------------------------
37c7fda3e8 | David Lawrence Ramsey | 2025-11-29 11:04:24 -0600

Tweak a graffiti "quality".

--------------------------------------------------------------------------------
9d6394c9e0 | David Lawrence Ramsey | 2025-11-29 10:39:46 -0600

Add more species-related graffiti.

--------------------------------------------------------------------------------
0e53a4e0e4 | David Lawrence Ramsey | 2025-11-29 09:38:28 -0600

Add another graffiti rumour.

--------------------------------------------------------------------------------
8b47bc0d98 | David Lawrence Ramsey | 2025-11-29 09:23:25 -0600

Add a few more graffiti religion entries.

--------------------------------------------------------------------------------
fe216a7524 | David Lawrence Ramsey | 2025-11-29 09:02:59 -0600

Expand a graffiti line.

--------------------------------------------------------------------------------
ddb11f23fc | David Lawrence Ramsey | 2025-11-29 03:54:57 -0600

Show graffiti on all dry fountains too.

--------------------------------------------------------------------------------
224338057b | David Lawrence Ramsey | 2025-11-29 03:53:17 -0600

Show graffiti on all blue/sparkling fountains.
Make sure a rare chance for it is in both the peaceful and drfault
fountain options; in the latter case, it should still be noticeable
with monsters around.

--------------------------------------------------------------------------------
59ad2a9c40 | David Lawrence Ramsey | 2025-11-29 03:52:21 -0600

Fix fountain key typos.

--------------------------------------------------------------------------------
186dd7f27d | David Lawrence Ramsey | 2025-11-29 02:50:34 -0600

Add another Xom stone arch message.

--------------------------------------------------------------------------------
37209c7bbe | David Lawrence Ramsey | 2025-11-29 02:32:23 -0600

Make Xom messaging more consistent.
Walls briefly shown on the other sides of arches are now explicitly
described as translucent, and such walls can get both colour patterns
and graffiti, just as translucent walls in the dungeon can, as a hint to
the player. (The faint coloured flames are left out, but we assume the
player can't see them from their distance away.)

--------------------------------------------------------------------------------
2ba17d1e3b | David Lawrence Ramsey | 2025-11-29 01:59:40 -0600

Add another graffiti short saying.

--------------------------------------------------------------------------------
afc03387fa | David Lawrence Ramsey | 2025-11-29 01:12:56 -0600

Expand graffiti insults a bit.
To include qualities as well as relatives.

--------------------------------------------------------------------------------
86320db5a4 | David Lawrence Ramsey | 2025-11-29 01:05:39 -0600

Simplify a graffiti "happened" reason.

--------------------------------------------------------------------------------
17997c0906 | David Lawrence Ramsey | 2025-11-29 00:55:47 -0600

Add another short saying to graffiti.

--------------------------------------------------------------------------------
c462ad971b | DracoOmega | 2025-11-29 02:06:24 -0330

Suppress Time-Warped Blood while worshipping Chei
It hastes things, after all.

--------------------------------------------------------------------------------
b245e025e5 | DracoOmega | 2025-11-29 02:06:24 -0330

Fix monster ranged attacks not producing ME_WHACK events
It turns out that monster ranged attacks didn't wake monsters because of
actually hitting them; no events were fired for doing this at all. They
woke monsters because they happened to also produce noise at the target
cell. (This is why Dith shadow shot was failing to off-screen monsters that
it was buggily shooting - their actions are always silent.)

But there are other consequences to using only ME_ALERT events from noise:
monster ranged attacks could not break fear or daze on other monsters, and
they were probably also incapable of distracting them.

Now monster ranged attacks should alert their targets in more or less the
same way that monster melee attacks do.

This fixes #4503 (along with the previous commit)

--------------------------------------------------------------------------------
6eb045a156 | DracoOmega | 2025-11-29 02:06:24 -0330

Fix Dithmenos shadow archer mimic rarely being able to shoot out of LoS
This generally required that the player trigger the mimic by a shot that
killed their primary target, and with an out-of-los enemy directly in the
path of a ray fired at the now-dead target, while the shadow was not yet
visible on the field. (Most other methods of getting the shadow to pick a
random target did respect your LoS, but this method of determining the
'primary shot direction' could be fooled.

This fixes part of #4503

--------------------------------------------------------------------------------
4a27cd49de | DracoOmega | 2025-11-29 02:06:24 -0330

Fix autoexplore trying to cross deep water when in non-swimming temp forms
If the player's base form was able to swim, but their current form was not
(for instance, if they were normally a rime yak, but currently in flux
form), autoexplore would still try to move them into water, resulting in a
flurry of "Why would you want to do that?"

This fixes #4532

--------------------------------------------------------------------------------
27dcef3582 | DracoOmega | 2025-11-29 02:06:24 -0330

Don't remove paragon status when a phantom mirror copy dies
This prevented using your paragon's charge-up move, giving it additional
attacks whenever you attack, and getting the defense bonus.

This fixes #4717

--------------------------------------------------------------------------------
eb9c8ca51c | DracoOmega | 2025-11-29 02:06:24 -0330

Fix monsters not casting LRD through grates
This fixes #4840

--------------------------------------------------------------------------------
d60ff12479 | DracoOmega | 2025-11-29 02:06:24 -0330

Wake monsters on attack, even if the attacker is now dead (Ge0FF)
As an example, if a walking alembic hit a sleeping monster as the final hit
of their potion countdown and immediately died, the monster they hit would
not wake up or otherwise notice the damage they'd just taken.

This is not the only way an attacker can die in the process of attacking,
and probably it is correct in all cases to actually alert/wake the
defender (I hope).

--------------------------------------------------------------------------------
459f5e9821 | DracoOmega | 2025-11-29 02:06:24 -0330

Flag Warp Body and Mutagenic Gaze as chaotic (Acrobat, Darby)

--------------------------------------------------------------------------------
373f1e3468 | DracoOmega | 2025-11-29 02:06:24 -0330

Have explore alarm traps make noise immediately
Since 372a382 made explore traps happen at start of turn, the noise from an
alarm trap wouldn't happen until the *end* of the current turn, resulting
in confusing messaging (ie: the monsters will all shout *after* you did
whatever it was you were doing).

--------------------------------------------------------------------------------
0397b53e73 | DracoOmega | 2025-11-29 02:06:24 -0330

Don't let Dazed monsters follow the player across stairs (Acrobat)

--------------------------------------------------------------------------------
abcdec91bc | DracoOmega | 2025-11-29 02:06:24 -0330

Don't abort Infernal Servant + Carnage on too little space near you (Lici)
With Mark of Carnage, Infernal Servant doesn't necessarily place its demons
near the player and so shouldn't abort for lack of space if the area near
you is crowded.

--------------------------------------------------------------------------------
346b48c335 | DracoOmega | 2025-11-29 02:06:24 -0330

Make Clarity prevent Fear in monsters (Acrobat)
A long-standing bug that was just a lot less noticable when monsters could
only obtain this from artefacts instead of it being present on a unique.

--------------------------------------------------------------------------------
eae122919d | DracoOmega | 2025-11-29 02:06:24 -0330

Fix a handful of issues with the player losing flight
Landing due to emergency flight wearing off was not triggering location
effects at the landing site.

'Floosh!' was not being properly printed if flight was lost over shallow
water (important!).

Taking off armour of flight was attempting to interrupt its own delay
(reported by Odds). Losing flight should now only interrupt travel delays
and not other delays.

--------------------------------------------------------------------------------
3ce8c87c45 | DracoOmega | 2025-11-29 02:06:24 -0330

Remove some trailing spaces from monster encounter messages
These were usually invisible, but could sometimes result in a confusing
semicolon being inserted between messages.

--------------------------------------------------------------------------------
b6ab979d6c | DracoOmega | 2025-11-29 02:06:24 -0330

Interrupt travel when teleportitis kicks in (Odds)
So that the player has a chance to cancel it with ?tele if they wish to.

--------------------------------------------------------------------------------
1cf10fde0b | DracoOmega | 2025-11-29 02:06:24 -0330

Add a static targeter for invisibility
Which monsters can see invisible is somewhat ideosyncratic and it can be
easy for a player to assume that an invisibility potion will be a lot more
useful in a particular situation than it actually will be.

As such, this adds a static targeter that hilights which monsters in view
cannot see invis (and thus will be fooled) by you either drinking or
evoking invis. Additionally, if there are monsters in sight but ALL of them
can see invis, it will ask the player directly if they're sure they want to
do this.

This targeter is enabled by default, but can be turned off with
show_invis_targeter = false

--------------------------------------------------------------------------------
f4085e7543 | DracoOmega | 2025-11-29 02:06:24 -0330

Fix a very minor issue with the Silence targeter
Power over 100 was already capped at radius 5, so it was only in incredibly
narrow circumstances where the difference from old code would matter (ie:
when exactly 1 more power would increase the maximum radius).

--------------------------------------------------------------------------------
5a79b595f7 | DracoOmega | 2025-11-29 02:06:23 -0330

Slightly improve some static scroll targeters
?silence wasn't using the Silence spell's targeter (which is more accurate,
but did not exist the last time this code was touched), and both ?summoning
and ?butterflies could arguably have been better.

--------------------------------------------------------------------------------
1de0b34802 | DracoOmega | 2025-11-29 02:06:23 -0330

New option: force_scroll_targeter
This works much like force_spell_targeter and force_ability_targeter,
making default use of certain scrolls show static targeters despite being
unaimed.

This is enabled by default for fear, silence, vulnerability, immolation,
and torment. (Fear was particularly important, since the only way to see
your success chance previously was to either quiver or use via F, which is
something not all players were aware of, and also can run into key
conflicts since consumable inventory was added. But I think it can be
helpful for these other scrolls, as well.)

Since a targeter is effectively already a level of 'confirmation' that
requires an additional key before using, warnings about using dangerous
scrolls will be suppressed if that scroll has a targeter enabled.

--------------------------------------------------------------------------------
79ffcc3760 | DracoOmega | 2025-11-29 02:06:23 -0330

Make show_paged_inventory default to true
I originally kept the 'old' appearance of the inventory menu due to people
saying they missed being able to see all of their items at once, but after
some time and debate, I feel like the number of newcomers confused by their
letter keys not always doing what they expect may outweigh this.

(Suggestions about making pressing a letter which is 'overloaded' bring
up a sub-menu asking the player which of those items they want to select
may not be a bad future direction, but the implementation work is sadly
quite a bit more complex, I think.)

--------------------------------------------------------------------------------
3d7640e400 | DracoOmega | 2025-11-29 02:06:23 -0330

Fix a crash with Beogh-converted orcs leaving the floor immediately (Kush)
Converting an orc that first moved into your LoS on its own turn, and was
already standing on a way to leave the floor, would crash on checking for
monster_alert (since it was now MONS_NO_MONSTER).

(Converting orcs on stairs by *you* moving into LoS of them worked safely,
due to seen checks happening in a different order.)

--------------------------------------------------------------------------------
aac8d7227f | David Lawrence Ramsey | 2025-11-28 23:19:12 -0600

Add clarifying comments.

--------------------------------------------------------------------------------
3242075b58 | David Lawrence Ramsey | 2025-11-28 23:03:35 -0600

Add Cheibriados references to graffiti.

--------------------------------------------------------------------------------
ac88d310f9 | David Lawrence Ramsey | 2025-11-28 19:15:37 -0600

Let graffiti show up in another Xom message.
On a wall briefly shown on the other side of a stone arch.

--------------------------------------------------------------------------------
b33fb8936d | David Lawrence Ramsey | 2025-11-28 18:51:48 -0600

Add another rare name to graffiti.

--------------------------------------------------------------------------------
71aa25b113 | David Lawrence Ramsey | 2025-11-28 17:38:34 -0600

Add magic gods (Sif, Veh, and Kiku) to graffiti.

--------------------------------------------------------------------------------
5f636c768b | David Lawrence Ramsey | 2025-11-28 17:19:40 -0600

Tweak a graffiti line.

--------------------------------------------------------------------------------
3ddfb001de | David Lawrence Ramsey | 2025-11-28 14:01:08 -0600

Fix missing space in an encounter message.
Closes #4929.

--------------------------------------------------------------------------------
efed43c35f | David Lawrence Ramsey | 2025-11-28 08:34:12 -0600

Add Okawaru references to graffiti.

--------------------------------------------------------------------------------
38d78d0317 | David Lawrence Ramsey | 2025-11-28 08:15:20 -0600

Add more species graffiti.
And move one line from rumours graffiti to species graffiti, since it
deals with species.

--------------------------------------------------------------------------------
4249fbf248 | David Lawrence Ramsey | 2025-11-28 08:08:17 -0600

Add another graffiti line.

--------------------------------------------------------------------------------
19eff022ad | David Lawrence Ramsey | 2025-11-28 08:07:27 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
c88a1a190c | David Lawrence Ramsey | 2025-11-28 07:57:00 -0600

Fix punctuation.

--------------------------------------------------------------------------------
b5fb7d8064 | David Lawrence Ramsey | 2025-11-28 07:43:03 -0600

Add more rumours to graffiti.

--------------------------------------------------------------------------------
76778cf645 | David Lawrence Ramsey | 2025-11-28 02:20:15 -0600

Add another graffiti image.

--------------------------------------------------------------------------------
443b2796ae | David Lawrence Ramsey | 2025-11-28 02:12:20 -0600

Tweak a graffiti short saying again.

--------------------------------------------------------------------------------
6ef0b19b26 | David Lawrence Ramsey | 2025-11-28 02:07:35 -0600

Tweak a graffiti short saying.

--------------------------------------------------------------------------------
038f7c1e4d | David Lawrence Ramsey | 2025-11-28 01:48:10 -0600

Expand a graffiti short saying.

--------------------------------------------------------------------------------
7e3ca00855 | David Lawrence Ramsey | 2025-11-28 00:46:51 -0600

Add Trog references to graffiti.

--------------------------------------------------------------------------------
9a7bfa2c61 | David Lawrence Ramsey | 2025-11-28 00:31:39 -0600

Move graffiti fights into their own section.

--------------------------------------------------------------------------------
1ff4e0022e | David Lawrence Ramsey | 2025-11-27 19:38:39 -0600

Add another orc name, and update the count.

--------------------------------------------------------------------------------
2661ed3baf | David Lawrence Ramsey | 2025-11-27 19:38:39 -0600

Add another rare graffiti name.
It's deliberately ambiguous, and so begins with Dead and not Undead.
Having an ambiguously dead or undead person as a rare name should keep
things interesting if there are rumours that they deserve life, death,
or undeath; worship the Shining One, etc.

--------------------------------------------------------------------------------
10247e2f1a | DracoOmega | 2025-11-27 21:08:13 -0330

Fix magnestised icon having no defined size (regret-index)
...which also means that it wasn't rendering in webtiles at all before...

--------------------------------------------------------------------------------
7611a8d01a | DracoOmega | 2025-11-27 21:08:08 -0330

Fix a crash with notes about removed mutations (regret-index)
If the character had previously gained a now-removed mutation, it would
have no defined name, and trying to make a note about it would crash.

--------------------------------------------------------------------------------
1326f0c51a | David Lawrence Ramsey | 2025-11-27 13:39:57 -0600

Add another rumour and rare name to graffiti.
The rumour is sufficiently out there, and having a god as a rare name
should keep things... interesting if there are rumours that they worship
another god or that they're secretly an atheist.

--------------------------------------------------------------------------------
f75c2d302f | David Lawrence Ramsey | 2025-11-27 12:40:29 -0600

Consolidate comments.
Since all the graffiti professor entries are next to each other.

--------------------------------------------------------------------------------
99f07cf4e7 | David Lawrence Ramsey | 2025-11-27 12:16:41 -0600

Add graffiti about more locally held classes.

--------------------------------------------------------------------------------
74423d8be5 | David Lawrence Ramsey | 2025-11-27 12:16:35 -0600

Add a way to get a random type of skill name.
And update the associated documentation.

--------------------------------------------------------------------------------
7c4d950c9a | David Lawrence Ramsey | 2025-11-27 12:15:46 -0600

Tweak a graffiti line.

--------------------------------------------------------------------------------
09dd00ec69 | David Lawrence Ramsey | 2025-11-27 12:09:37 -0600

Clarify comment.

--------------------------------------------------------------------------------
3db95974aa | David Lawrence Ramsey | 2025-11-27 11:56:43 -0600

Fix graffiti god class tags.

--------------------------------------------------------------------------------
d710eb095e | David Lawrence Ramsey | 2025-11-27 10:37:56 -0600

Fix indentation.

--------------------------------------------------------------------------------
38557add1b | David Lawrence Ramsey | 2025-11-27 07:40:58 -0600

Add another rare graffiti author name.

--------------------------------------------------------------------------------
a15f2a7b93 | David Lawrence Ramsey | 2025-11-27 07:40:58 -0600

Add a few more graffiti short sayings.

--------------------------------------------------------------------------------
0f89a3af8d | David Lawrence Ramsey | 2025-11-27 02:39:42 -0600

Add graffiti reference to ploggifying.

--------------------------------------------------------------------------------
de32118086 | David Lawrence Ramsey | 2025-11-27 02:07:33 -0600

Add a few more graffiti options.
Including references to undeath.

--------------------------------------------------------------------------------
f91d19f9e5 | David Lawrence Ramsey | 2025-11-27 01:45:10 -0600

Add another graffiti line.

--------------------------------------------------------------------------------
c11d333832 | David Lawrence Ramsey | 2025-11-27 01:24:09 -0600

Update references to monster speech docs.
Now that the new tags are documented in monster_speech.txt, they no
longer need to be documented elsewhere.

--------------------------------------------------------------------------------
0e42700ed9 | David Lawrence Ramsey | 2025-11-27 01:23:40 -0600

Update monster speech documentation.
Add tags that currently exist, remove tags that no longer exist, and fix
out-of-date references to species/genus.

--------------------------------------------------------------------------------
5e619a73ac | David Lawrence Ramsey | 2025-11-27 01:12:07 -0600

Fix spelling.

--------------------------------------------------------------------------------
bd04e754fb | David Lawrence Ramsey | 2025-11-26 22:47:28 -0600

Fix a graffiti ref: rock fish, not rock worm.

--------------------------------------------------------------------------------
42c14a4c3c | David Lawrence Ramsey | 2025-11-26 22:39:44 -0600

Add graffiti short sayings about who worships who

--------------------------------------------------------------------------------
7c57224007 | David Lawrence Ramsey | 2025-11-26 22:39:27 -0600

Expand monster speech/monster name replacements.
Add @RANDGEN@ and @random_god@ to monster speech (they're currently
unused there, but we want monster names to support a small subset of
what monster speech supports, and this will accomplish that). Also add
@random_god@, @random_god_chaotic@, @random_god_good@, and
@random_god_evil@ to monster names.

@RANDGEN@ is still specifically mentioned in monname.txt and
colourname.txt, and with this change, it should be mentioned in
docs/decelop/monster_speech.txt instead, but it isn't yet because
that document's list of hardcoded tags is currently out of date.

--------------------------------------------------------------------------------
84c8332686 | David Lawrence Ramsey | 2025-11-26 22:38:20 -0600

Add/clarify comments.

--------------------------------------------------------------------------------
98b02a6f55 | regret-index | 2025-11-27 00:00:44 -0330

Tweak some more recent monsters
 * Bes kemwar, while flatly increasing the previous threat of some early
   D spawns by banding with them, and while also trying to be monsters
   tutorializing their new gimmick more than anything else, could also
   do with being more notable as threats in-and-of themselves rather than
   solely serving as support. As such, they've gotten a higher cast rate
   as well as slightly higher stats- still somewhat reserved as an early
   D monster, but enough for their debuff to mean more than just resting
   it off if they get unlucky with their bands.

 * Cognitogaunts and screaming refractions, while both reasonably
   mechanically distinct Abyss monsters, are both somewhat rare in Abyss
   and not super dangerous compared to the most dangerous Abyss spawns.
   (The formers' Crypt appearances cutting from more harmless undead
   doesn't also entirely override how they're a bit behind the curve
   there.) I'm reluctant to flatly increase Abyss's overall threat level
   considering a lot of it is baked into the overall branch structure,
   so I'm just tweaking both of their spell rates up.

 * Death knights having turned out to be stand-out threats in V since
   they got their new stats and spells in 76c8eab feels fine to me, as
   their rare appearances also provide more notable encounters in V's
   inherently-pressured lengthy floors, though I'd also prefer not to
   push the threat level of V by too much. As a result, I've shifted
   their scaling to be even less common on the first few floors of V (but
   only mildly less common overall), resembling other top-tier V threats
   like peacekeeper bands and sphinx bands. This comes with a very mild
   reduction in glowing orange brain weight to compensate, which already
   appear in enough branches as is.

--------------------------------------------------------------------------------
276a97dd07 | DracoOmega | 2025-11-26 23:55:14 -0330

End constriction immediately when a felid dies (Oneirical)
This was mostly a visual glitch, since it wouldn't actually do any damage
and would end on its own the following turn (though could still prevent you
from moving for a single action - something more relevant if felids didn't
tend to revive in safety).

--------------------------------------------------------------------------------
8576378178 | DracoOmega | 2025-11-26 23:55:14 -0330

Don't place Xom cloud trails at your own feet when you Vhi's (Flugkiller)
This was a consequence of trying to draw the *spark* trail there, but it's
rather nastier to end up with miasma at your own feet after this (and
quite unexpected).

--------------------------------------------------------------------------------
0d3fe04a3a | DracoOmega | 2025-11-26 23:55:14 -0330

Don't crash when trying to place a Xom cloud trail in a solid feature
Instead, just don't place one.

(This could happen when the player was pushed out of a door by a vault
warden. It wasn't solid when you were *there*.)

--------------------------------------------------------------------------------
15573fcf2e | DracoOmega | 2025-11-26 23:55:14 -0330

Buff rock fish very mildly
They're not intended to be an especially scary threat, but feedback
suggests they're underperforming even when considering that.

(Also toss rF+ onto them, which is underrepresented in the earlygame and
which certain other rock monsters famously have.)

--------------------------------------------------------------------------------
71870dcc3d | DracoOmega | 2025-11-26 23:55:14 -0330

Make orbs of winter a little better against necromancers (Acrobat)
While orbs of winter seem to be providing a roughly suitable threat
against players in general, concern has been expressed about how little
they can do against anyone who can surround them with zombies or other
undead. Their flash freeze isn't penetrating, refrigeration does very
little to the zombies due to a combination of their cold resistance and
the huddling bonus (while the player is also benefitting from) and
Ostracism can't reach past things. It is fine for builds to be better or
worse against given monsters, but it seems reasonable that they are *too*
weak to this particular strategy.

So, in hopes to hit this most directly, without overly buffing them against
other people, I am:
 -Reducing the huddle bonus that the player themselves benefits from.
  Instead of taking 100/70/40% damage, the player now takes 100/85/70%
  damage. This hopefully makes allies still a relevant and useful bonus,
  but not in a way that can trivilize this.
 -Ostracism is now smite-targeted range 3 (but inflicts less ostracism per
  cast). This is a minor buff for players already fighting them in melee,
  while a nerf for those hiding behind other things.

We'll see how effective this ends up being.

--------------------------------------------------------------------------------
6649e38582 | DracoOmega | 2025-11-26 23:55:14 -0330

Increase kobold geomancer LRD damage a little
Given that their one means of doing actual damage can be neutralized by
positioning, it can probably afford to hit a little harder when you don't.

--------------------------------------------------------------------------------
17c340833d | DracoOmega | 2025-11-26 23:55:14 -0330

Fix a few oddities with monster LRD targeting
Monsters aimed LRD without understanding that it did more damage when used
on certain materials (or much more damage to a target if able to be aimed
directly at them). In fact, they did not even prioritize their primary
target (generally the player) at all, simply preferring to catch the most
HD of targets in the blast.

Overall, this made them much less likely to directly cast LRD on player
gargoyles/revenants/statues if there were any walls also available (and in
a way that depended on distance) and also fairly easy to distract with
summons in a way unlike other damage spells.

Now their targeting should behave a little more intelligently.

--------------------------------------------------------------------------------
1025935720 | DracoOmega | 2025-11-26 23:55:14 -0330

Another pass at tweaking tesseract behavior
While the original goal of not visually marking tesseract spawns (at least
until the XP pool runs out and they become unrewarding) was to make them
feel like 'normal' wandering enemies and not draw unnecessary attention to
the fact that they had been created, in practice this seems to have had the
opposite effect: instead of assuming tesseract spawns are normal monsters,
people assume that normal monsters are tesseract spawns, and often wildly
overestimate the threat they pose as a consequence. By indicating them
more clearly, players may be able to form a more accurate intuition of
their danger.

As such, several rules about tesseract spawns are simplified:
 -Spawns are never worth XP (though the tesseract itself is worth much
  more), but they all provide normal on-kill benefits otherwise. The goal
  of this is to avoid slow players eventually losing access to abilities
  that may be vital to certain characters, such as Mahkleb's heal-on-kill
  or Vehumet's mp-on-kill (which I always considered unfortunate in the
  old system).
 -As such, *all* monsters made by tesseracts will disappear when they are
  killed.
 -The spawn rate no longer changes over time, but remains a steady 1 per
  ~50 turns. Instead, when first activated, a small number of new monsters
  will be created immediately, somewhere *outside* the orb vault. (People
  still mistakenly believed that spawns accellerated over time when the
  reverse was true; this simplified version may be easier to communicate.)
 -Destroying a tesseract now additionally dazes all monsters in LoS range
  of the tesseract for a ~9 turns. Some players suggested that an immediate
  reward for aggression might make the forward pressure tesseracts applied
  to them feel more equitable, and the hope here is that this can make it
  a little safer to *be* aggressive while feeling like a fun and relevant
  payoff (ie: a little more carrot and a little less stick)
 -The time at which tesseracts will start spawning monsters directly in the
  player's LoS has been decreased (but few players should reach this point,
  even now).

I have made one subtler change in response to feedback from Acrobat
regarding how making the orb guardians patrolling (but not the vault spawns
themselves) meant that it was sometimes still possible to use ?noise
through the lung walls and wait a very long for maybe one or two things to
eventually stumble out (without bothering the orb guardians themselves).
Now *all* monsters generated in the orb vault (whether placed by the vault
or as random floor spawns) will be marked as patrolling until the tesseract
is activated. This should have almost no practical effect on players not
attempting to do the aforementioned strategy, but safely shut that
possibility down.

(Finally, I've actually added a note to the log when a tesseract is
activated; previously there was only a milestone, which was not visible in
the dump itself.)

--------------------------------------------------------------------------------
e78965e76f | DracoOmega | 2025-11-26 23:55:14 -0330

Add descriptions for 'new' monster statuses
This was overlooked when they were first added to the game (and hopefully
may clarify some warding details a little).

--------------------------------------------------------------------------------
d246b2a4df | David Lawrence Ramsey | 2025-11-26 21:12:04 -0600

Add another graffiti short saying line.

--------------------------------------------------------------------------------
234ac0cd65 | David Lawrence Ramsey | 2025-11-26 21:07:36 -0600

Fix graffiti changeable name tag.

--------------------------------------------------------------------------------
51de27de75 | David Lawrence Ramsey | 2025-11-26 20:58:04 -0600

Improvements to graffiti author name changes.
Don't change rare names. Instead, have them passed on to others worthy
of those names. Also, add clarifying comments.

--------------------------------------------------------------------------------
0f55a52bd8 | David Lawrence Ramsey | 2025-11-26 20:33:40 -0600

Add another real song to the Singing Sword.

--------------------------------------------------------------------------------
75b15a70c1 | David Lawrence Ramsey | 2025-11-26 20:27:05 -0600

Expand graffiti options for changed names.
Also make messages about changed names less common, since names are all
we have to identify graffiti authors by.

--------------------------------------------------------------------------------
6e887ccaed | David Lawrence Ramsey | 2025-11-26 19:44:02 -0600

Add another rare graffiti author name.

--------------------------------------------------------------------------------
a2f651d798 | David Lawrence Ramsey | 2025-11-26 19:22:47 -0600

Tweak a graffiti line.

--------------------------------------------------------------------------------
f3d833e05a | David Lawrence Ramsey | 2025-11-26 19:18:46 -0600

Split off non-orc graffiti author names.
Use them for messages praising Zin, since Zin removes orcishness upon
conversion.

--------------------------------------------------------------------------------
17e2914802 | David Lawrence Ramsey | 2025-11-26 19:06:16 -0600

Move rare graffiti author names to a new section.
And add two more so there's more than one.

--------------------------------------------------------------------------------
67c61008d9 | David Lawrence Ramsey | 2025-11-26 19:05:59 -0600

Add graffiti-related comment.

--------------------------------------------------------------------------------
22741e3268 | David Lawrence Ramsey | 2025-11-26 18:55:01 -0600

Fix capitalisation.

--------------------------------------------------------------------------------
db8df50bbb | David Lawrence Ramsey | 2025-11-26 08:41:03 -0600

Add a few more ordinary meeting types to graffiti

--------------------------------------------------------------------------------
a10f9d7d4d | David Lawrence Ramsey | 2025-11-26 08:20:58 -0600

Move religious meetings to their own section.

--------------------------------------------------------------------------------
21f00dfbd0 | David Lawrence Ramsey | 2025-11-26 08:09:43 -0600

Add Gozag to religious graffiti.

--------------------------------------------------------------------------------
de7d8d38cf | David Lawrence Ramsey | 2025-11-26 07:45:53 -0600

Add another graffiti religion line.

--------------------------------------------------------------------------------
ff112bb844 | David Lawrence Ramsey | 2025-11-26 03:23:46 -0600

Add another graffiti argument line.

--------------------------------------------------------------------------------
2c93e17095 | David Lawrence Ramsey | 2025-11-26 03:14:35 -0600

Move species-based graffiti into its own section.
Also, add a second entry to it so that it doesn't have only one.

--------------------------------------------------------------------------------
751b8fc0e1 | David Lawrence Ramsey | 2025-11-26 03:14:35 -0600

Move a few more graffiti msgs into short sayings.

--------------------------------------------------------------------------------
f2dc3dfe80 | David Lawrence Ramsey | 2025-11-26 03:14:35 -0600

Reorder a graffiti section.

--------------------------------------------------------------------------------
6f9331b074 | David Lawrence Ramsey | 2025-11-26 03:14:35 -0600

@graffiti_meeting_type@ -> @graffiti meeting@

--------------------------------------------------------------------------------
74f616f369 | David Lawrence Ramsey | 2025-11-26 03:14:35 -0600

Move graffiti rumours into their own section.

--------------------------------------------------------------------------------
f5d32102e4 | David Lawrence Ramsey | 2025-11-26 03:14:35 -0600

Move religious graffiti into its own section(s).
Beogh gets a separate section from the rest because Beogh's graffiti
needs orc authors. Also, add a second Beogh entry to it so that it
doesn't have only one.

--------------------------------------------------------------------------------
98bc84ae74 | David Lawrence Ramsey | 2025-11-26 03:14:35 -0600

Add graffiti unique complaints, tweak & sign them

--------------------------------------------------------------------------------
1e4884a36f | David Lawrence Ramsey | 2025-11-26 03:14:35 -0600

Move short graffiti sayings into their own section.

--------------------------------------------------------------------------------
8b78042e85 | David Lawrence Ramsey | 2025-11-26 01:33:05 -0600

Add a graffiti line about coglins.

--------------------------------------------------------------------------------
4bc0851ffc | David Lawrence Ramsey | 2025-11-26 01:20:02 -0600

Add and adjust more religious graffiti.
Yredelemnul and Zin now have lines.

--------------------------------------------------------------------------------
65699bd8dd | regret-index | 2025-11-26 02:30:31 -0330

Tweak new mutation icons and description
This adds new tiles for Meek and Spatial Entanglement, and fixes another
typo in the description for the latter.

Tile credits:
 * Meek: CanofWorm's Weapon Gift invocation icon
 * Spatial Entanglement: Roctavian's Portal Projectile icon, a CC0 ribbon
   by Shade, and a CC0 gun by SnoopethDuckDuck.

--------------------------------------------------------------------------------
ad136e9815 | regret-index | 2025-11-26 02:30:31 -0330

Nerf protean grace
With the removal of berserkitis in 143df15, the dual reworks of inability
to drink and read terminating in 1ae03d7 and c8003b0, and the nerf of
teleportitis in 18b0d3c, the ceiling of bad mutations has been lowered a
fair bit. When combined with the reduced permanent malmutation across the
game under the current strategic damage schema, as well as more good
mutations just this version like Lucky (e722901), the expected value of
potions of mutation has risen by a lot. I had added the Protean Grace
mutation in a229ff6 as a valuable high-roll before such bad mutation
reworks, but the numbers in practice can easily go quite high, and both
mutation gods are far from weak at the moment, so I'd prefer to nudge this
mutation back down.

Previously, the mutation had a soft cap of 7, where it'd halve the
scaling of mutations to Slaying and EV to every other mutation. Now, it
applies this halving at all times, and also rounds up by default: just
having one or two mutations provides +1/+1, three or four provides +2/+2,
and so on upwards. This should both be a little less kludgy with the
absence of an exact cap, and still get some benefit from having good
and bad mutations alike, but still avoiding the extremely high benefits
for temporary whiles under Xom and Jiyva. It's a bit of a shame of a
nerf, but potion of mutation gambling has become quite rewarding
currently, and it's better than cutting out more possibilities entirely.

--------------------------------------------------------------------------------
96a837e430 | DracoOmega | 2025-11-26 02:14:31 -0330

Fix webbed players sometimes getted netted instead (TheMagicFish)
Since we were applying 'damage' to your ATTR_HELD from stuggling against it
*before* removing the held status, if the damage done to the net exactly
erased its remaining HP, you would appear not to be held by anything at all
by the time stop_being_caught() was checking if you were in a net. And
since you were not in a net, it would not clean up the prop that indicated
you were in a net, causing the next time you were webbed actually net you
instead.

It was even possible to obtain a net this way by blinking out again!

--------------------------------------------------------------------------------
4cf6b3df37 | DracoOmega | 2025-11-25 23:21:32 -0330

Fix explore teleport traps being silent and non-hostile (tswn)
They were printing no message whatsoever when triggering (at least if you
weren't with Ash), and then not even bothering to teleport you to monsters.

Whoops.

--------------------------------------------------------------------------------
fa326d1aa7 | DracoOmega | 2025-11-25 22:58:49 -0330

Fix Lucky having a 1% trigger chance for everyone (tswn)

--------------------------------------------------------------------------------
f644c8a04a | David Lawrence Ramsey | 2025-11-25 19:08:24 -0600

Allow graffiti to use colour patterns.

--------------------------------------------------------------------------------
abf7843ac3 | David Lawrence Ramsey | 2025-11-25 19:02:30 -0600

Restore a sparkling fountain decor message.
Now that coloured graffiti (and its subset of coloured text) are
separate from coloured patterns, and all patterns are consistently
plural, make it pulsate any colour pattern again.

Tweak it slightly to account for the plural.

--------------------------------------------------------------------------------
b9984e0d16 | DracoOmega | 2025-11-25 21:05:12 -0330

Fix description of stat-loss mutations (Undo)

--------------------------------------------------------------------------------
adf9b88fe9 | DracoOmega | 2025-11-25 21:05:12 -0330

Unbreak windows builds
As near as I can tell, S_NORMAL (used for some monster shouts) conflicts
with... *something* SDL/OpenGL-related and 03cf731 very incidentally
resulted in an include path where glwrapper-ogl.cc now transitively
includes mon-enum.h, which tries to redefine this and fails.

It looked like this problem may have been run into before, and 'fixed' by
7376cb9 undefining S_NORMAL, but I have opted to just rename the enum
instead. (It's barely used anyway.)

--------------------------------------------------------------------------------
2c830d8106 | DracoOmega | 2025-11-25 21:05:12 -0330

Fix header-build-tests

--------------------------------------------------------------------------------
c04782812c | David Lawrence Ramsey | 2025-11-25 18:29:02 -0600

Fix typo.

--------------------------------------------------------------------------------
b0f1aeee18 | DracoOmega | 2025-11-25 20:03:54 -0330

Fix a possible exploit with Spatial Entanglement
If there was only a single monster in sight (or the player got lucky),
attacking a monster with Vhi's could cause it to blink *away* from you,
setting up another Vhi's while leaving the monster stunned from the blink
it just dead. In theory, this could allow you to Vhi's the same monster
until it died.

(Instead, just don't move monsters that are already eligable to your
destination.)

--------------------------------------------------------------------------------
64f72a5099 | DracoOmega | 2025-11-25 19:02:46 -0330

Disable the contamination susceptible mutation for now
While there were theoretical future plans to use contam costs more widely,
at the moment this badmut is very narrow in its application: it makes one
specific spell much worse to use, exactly 3 enemies worse to fight, and not
much else. (Doubling contam from miscasts will almost never matter since
reaching 50% contam via miscasts alone is incredibly unlikely with the
current system.).

I am leaving the code in for now, since I can see a mildly reworked version
of it being relevant in future. But for now, let's not have it taking
weight away from more relevant/interesting mutations.

--------------------------------------------------------------------------------
deace4b40c | DracoOmega | 2025-11-25 19:02:46 -0330

Greatly buff mutagenic gaze contam
While reworking shining eyes was intended to reduce the feelsbad spikiness
of them immediately malmutating you upon being first seen, the buildup was
too gentle in practice. The goal wasn't to *remove* malmutate as a
relevant mechanic in Slime, and that seems like a common reaction to the
result. So let's ramp it up a bunch.

(Concerns have been expressed that, regardless of intensity, this makes
stairdancing significantly more attractive in Slime than before. That is
a larger problem, with some proposed solutions that may be tried at a
later date.)

--------------------------------------------------------------------------------
8e00ccd7d7 | DracoOmega | 2025-11-25 19:02:46 -0330

Fix door opening always interrupting travel (Lici)

--------------------------------------------------------------------------------
5c8f74501f | DracoOmega | 2025-11-25 19:02:46 -0330

Fix talisman transformations getting an interrupt prompt as you finished
It didn't actually matter whether you told the prompt to continue or not,
since it was already completed by this point (but the delay wasn't cleared
yet).

(This was apparently quietly suppressed by the delay being uninterruptable
from its second-last turn, which was changed by 66e16baa.)

--------------------------------------------------------------------------------
c3619d018c | DracoOmega | 2025-11-25 19:02:46 -0330

Fix removing all contam sometimes not clearing the UI indicator properly

--------------------------------------------------------------------------------
1751f3ffbf | DracoOmega | 2025-11-25 19:02:46 -0330

Adjust flooded duration stacking
While the flooded status was a potentially-scary but manageable debuff in
most encounters, the fact that additional hits could maintain an existing
debuff meant that in the worst case (such as multiple void oozes in melee
at once), the player might never regain their ability to speak or read
scrolls. And while !lig is potential counterplay in some situations, it
probably cannot count in ones that late into the game. Dying this way feels
bad, so let's prevent the player from being re-flooded until 1 turn after
the last time wore off.

--------------------------------------------------------------------------------
e1f859cfa9 | DracoOmega | 2025-11-25 19:02:46 -0330

Make Weak/Dopey/Clumsy mutations give an additional -1 stat per level
These were a pretty weak effect, and alongside removing/taming some of the
most terrible badmuts in this version, we want to raise the floor a little.

Since stat 0 is no longer such an abrupt awfulness, I think we can afford
to be a tiny bit more aggressive here. (Tempmuts don't give out stat
maluses anymore, so it's impossible to lose -6 in one cast.)

--------------------------------------------------------------------------------
b120178fa5 | DracoOmega | 2025-11-25 19:02:46 -0330

Make Lucky mutation trigger slightly more often
Response to this mutation was positive, though the odds of it producing
even one item the player cares about still seems low, so let's raise it
slightly.

--------------------------------------------------------------------------------
e1c6e7a153 | DracoOmega | 2025-11-25 19:02:46 -0330

New bad mutation: Meek
A very simple one that just gives -3/5/7 slaying, rounding out the variety
of 'modest, inobtrusive penalty' and filling a tiny bit of the 'anti-melee'
space that berserkitis once occupied.

--------------------------------------------------------------------------------
681f085b02 | DracoOmega | 2025-11-25 19:02:46 -0330

Fix a few issues with listing of monster gear
Monsters who were carrying unbranded throwing weapons (commonly large
rocks, but also javelins or boomerangs) would be announced with 'You
encounter an X. It is  .' Fix this (and also consider non-large rock
missiles notable enough to be announced on encounter, even if they were
unbranded - until now, plain boomerangs and javelins were never announced!)

Also, the full gear description when hovering the cursor over a monster was
accidentally hiding 'uninteresting' items since b9f8b6a76. Fix this.

--------------------------------------------------------------------------------
d890b119bd | DracoOmega | 2025-11-25 19:02:46 -0330

New bad mutation: Spatial Entanglement
This mutation gives a 66% chance, whenever you move via a translocation,
of pulling a single random monster along for the ride. If you move to
somewhere in LoS of your old position, it pulls a random monster previously
in LoS of you (preferring monsters not still in LoS of your new location).
If you move teleport further away, it can pull a random monster from
anywhere else on the floor.

The monster pulled is stunned for one turn, ensuring the player can always
act again before they can.

--------------------------------------------------------------------------------
900ae70397 | DracoOmega | 2025-11-25 19:02:46 -0330

Slightly rework Screaming mutation
A chance to cause a shout to happen upon first spotting a monster was not
actually very different from how encountering monsters normally works;
there is almost always a chance rolled when you first encounter a monster
for a shout to happen: the monster's. And, in fact, even when the player
possesses considerable stealth, that chance is still much higher each turn
than the chance of you screaming at them, despite the latter only being
able to happen on a single turn. (In pratice, even with overwhelming
stealth, this mutation is almost always less bad than remaining even one
single extra turn in a monster's LoS).

Instead, try differentiating it a little more from regular stealth checks
by making it a chance to scream upon taking damage instead. (This is
currently a 5/10% chance on sustaining damage, and the volume of the
shouting is also increased slightly.)

--------------------------------------------------------------------------------
b55b5ce0d1 | DracoOmega | 2025-11-25 19:02:46 -0330

Make attractitis a regular bad mutation
After hanging around in the codebase since the initial steel elves version,
attractitis is finally enabled as a regular bad mutation, with a couple
small tweaks:
 -It is now a 2-level mutation, with level 2 doubling the activation
  chance.
 -It now has a 50% chance of waking up any monsters pulled by it (though
  not alerting themselves to the player's position, so stealthy characters
  may still remain briefly unnoticed).

-----------------------------

Mutation icon made by regret-index, combining PleasingFungus's Lesser
Beckoning tile with NormalPerson7's Malmutate icon.

--------------------------------------------------------------------------------
2080a56efa | DracoOmega | 2025-11-25 19:02:46 -0330

Fix a tiny number of issues caught by static analysis
Mostly some low-hanging fruit.

--------------------------------------------------------------------------------
0d0323f3cb | DracoOmega | 2025-11-25 19:02:46 -0330

Move many functions out of view.cc
In theory, view.cc was supposed to be about rendering the dungeon, but had
accumulated an incresing number of functions over time about handling
'things in view of the player', like stealth checks and monster encounter
messages. Also, seen_monster() was in mon-poly.cc for some reason.

Move most of these into a new player-notices.cc, with a few other functions
going to mon-act.cc or map-knowledge.cc as felt vaguely appropriate.

(This also makes a single minor change of removing a superfluous argument
from seen_monsters_react())

--------------------------------------------------------------------------------
9d8b6e32bb | DracoOmega | 2025-11-25 19:02:46 -0330

Tweak an assert
For reasons that are somewhat unclear to me, relocating the ME_EVAL check
to _place_monster_aux in c24fba173 resulted in this assert tripping in
arena since their target remained unset (and the player doesn't exist, so
is always at (0, 0) at this point).

However, I don't think that's tripping the *spirit* of the assert, since
they're not actually targeting the player - they're just targeting nothing
- so just adjusting the assert seems plausibly correct to me.

--------------------------------------------------------------------------------
03cf731cd7 | DracoOmega | 2025-11-25 19:02:46 -0330

New UI option: monster_alert
Any monster specified by this option will cause a --More-- upon being first
encountered by the player. This is intended as a more reliable replacement
to the force_more_messages commonly used by many players to catch 'comes
into view' messages for certain monsters.

It will trigger even in cases where a standard encounter message is not
printed (such as when a monster is summoned) and includes some special
values to make it more convenient to alert on a range of monsters:
 -'uniques' will alert on any unique
 -'nasty', 'tough', 'easy', 'trivial' will alert on any monster whose
  threat level is at least that high. (I personally think 'nasty' is the
  only potentially useful one of these, but I know some other people will
  disagree, and implementing the rest was basically free.)
 -'unusual' will alert on any monster carrying 'unusual' items, as
  specified by unusual_monster_items

Of these, only 'uniques' is enabled by default. While there are others that
are arguably useful, this is the only one that feels of objective value in
a way that would make sense to newcomers as well (finding a unique is
almost always at least a noteworthy event).

--------------------------------------------------------------------------------
5495257a00 | DracoOmega | 2025-11-25 19:02:46 -0330

Remove some non-functional flush_reason_types and options
Most of these were undocumented and (as far as I can tell) never
functional. FLUSH_ON_MESSAGE *once* did something (but stopped
approximately 16 years ago). However, it doesn't feel like it would be
terribly useful even if it did work (flushing macro input on it producing
any messages at all seems countproductive) so I'm simply removing it.

Also minimally document the one flush_reason_type that actually does
something via an option.

--------------------------------------------------------------------------------
2a4f7d3b63 | DracoOmega | 2025-11-25 19:02:46 -0330

Flush the input buffer on printing a forced --more--
force_more_message is intended to interrupt the player upon potentially
critical events happening, but if somehow multiple keypresses were still
in the input buffer at the time, it would merely 'pause' playback of them,
and resume taking actions 'automatically' once the --more-- was cleared.
It was very realistic for this to result in the player skipping through
several turns *after* the force_more was printed (even multiple
force_mores), especially if slow animations like screen flashes were
happening at the time.

Since the entire point of these --mores-- is to interrupt the player (and
often act as a sort of 'safety net' when certain events happen), they
should actually interrupt. Thus we now flush the input buffer whenever a
forced more occurrs, just in case (though not for any --mores-- caused by
show_more_message)

(I wasn't able to reproduce this bug on Windows, very plausibly due to
different keyboard input handling - but it happens in both local tiles on
Linux and webtiles, and probably elsewhere; I think it's probably quite
old.)

--------------------------------------------------------------------------------
56c1a3d51e | DracoOmega | 2025-11-25 19:02:46 -0330

Don't merge same-genus monsters in condensed monster descriptions
If the player encountered enough different types of monsters at once (some
of which shared the same genus), the game would unhelpfully condensed the
message to the form of "You encounter 27 humans." Which humans? Is a vault
warden one of them? It's impossible to tell!

This is important information, and I feel like very little is gained by
compressing it together.

I've retained genus compression for now only for derived undead, who
typically occur in groups of more types at once, while having fewer
significant differences between those types. Though I could be convinced
that it isn't helpful here, either.

--------------------------------------------------------------------------------
829f73f6db | DracoOmega | 2025-11-25 19:02:46 -0330

Allow listing only armour in condensed monster equipment descriptions
Instead of being obligated to point out that the orc wizard is wielding a
+0 dagger just because they're wearing a +2 robe of fire resistance.

Also clean up some enum names and remove some code for handling
descriptions of monsters with unidentified gear.

--------------------------------------------------------------------------------
b25f911db7 | DracoOmega | 2025-11-25 19:02:46 -0330

Fix some item name functions not fully respecting the 'identified' argument

--------------------------------------------------------------------------------
f93584b269 | DracoOmega | 2025-11-25 19:02:46 -0330

Add 'dancing' to the name of dancing weapons
I was actually surprised to realize nothing in-game actually calls them
dancing weapons at all, considering everyone else does.

It strikes me as slightly odd that the message for encountering a long
sword on the floor and a long sword that wants to kill you are so similar,
so let's make them a little more different.

--------------------------------------------------------------------------------
8f5882d86d | DracoOmega | 2025-11-25 19:02:46 -0330

Refactor to fix many issues with see_monster interrupts and messages
The "Comes into view" messages printed when monsters were first encountered
(along with equipment warnings) were deeply entangled with activity
interrupts in a way that lead to multiple problems:
 -Situations where the player could not be interrupted would sometimes
  suppress all such messages (eg: monsters first encountered upon entering
  new floor would print no equipment warnings since stair travel is
  uncancellable).
 -Situations that *might* be the first time a monster came into view
  required special handling to avoid printing duplicate messages, which
  itself was prone to bugs. For instance, if a monster the player had
  not yet seen opened a door while the player was not in the middle of
  delay, no message would be printed about the door opening at all.
 -Even in cases where the above worked, messaging was not always consistent
  between 'monster did a thing' and 'monster you hadn't before seen did
  that same thing' due to the latter occurring in a very different function
  which lacked full context of the 'usual' message.
 -Certain special messages for encountering monsters (such as monsters in
  the Abyss appearing in sight of the player) would often not be used
  unless the player was performing a delay at the time.

There was also a great deal of duplicated code to handle printing these
'comes into view' messages depending on their timing (which also resulted
in duplicated code for handling Shoutitis, Gozag Incite, and Attractitis),
along with message-handling for many long-removed things like monsters
unsubmerging, being freshly spawned from adjacent floors via stairs, or
even unbreathing monsters walking out of deep water again.

To top this off, due to relying on see_monster interrupts to notice
eligible monsters, Shoutitis (including maw form), Gozag Incite (and
Attractitis, were it enabled) could be turned off by user option - monsters
included in runrest_ignore_monster will never produce interrupts or comes
into view messages, thus never triggering these effects! Madness.

Beyond this, see_monster interrupts themselves functioned in ways that
often caught players by surprise. Because they could only be fired for
monsters the player has *never* seen before, a common scenario involved
fleeing from a dangerous monster, much later starting to change armour with
no monster in sight, and then having that same monster walk back into
sight, spend several turns approaching the player with no notification
until they clobbered them in the head. When this happened with something
like an early ogre, it could be directly fatal.

This commit makes many structural changes to improve this situation:
 -see_monster interrupts can now be fired for previously-encountered
  monsters, so long as they were not in sight when a delay was started.
 -Messaging for normal monster actions no longer depends on interrupt
  messages in any scenario, untangling "monster did a thing" and "you first
  noticed a monster" entirely.
  -In cases where a previously-encountered monster triggers an interrupt,
   a shorter message will be displayed so that the player knows what caused
   it.
 -"X comes into view." is replaced with "You encounter X.", which removes
  much of the need to control message ordering so strictly to ensure it is
  printed first in all scenarios (which was a regular source of bugs), as
  well as potentially being more intuitive to newcomers (after all,
  monsters come into view all the time without getting that message!)
 -Encountering a single monster and encountering multiple monsters at once
  now share the same encounter message code.
 -Shoutitis, attractitis, and Gozag wrath no longer depend on interrupts,
  but merely encountering a new monster.
 -Many unused messages are removed (and a few have their wording improved).
 -Command repetition no longer ignores the presence of monsters if they
  came into view on the first turn of repetition.
 -Abyss monsters now consistently produce special messages when created in
  sight of the player (and their band members now also do so, as well as
  properly producing translocation clouds).
  -Using the same technique, monsters spawned in sight of the player on the
   orb run now say something more than just 'X comes into view'.
 -Monsters previously sensed by monster detection can now interrupt travel
  again if the player actually leaves the floor (it was harder to think of
  a better metric for this).
 -Probably a handful of more minor things I have forgotten.

--------------------------------------------------------------------------------
3afe31fb5c | DracoOmega | 2025-11-25 19:02:46 -0330

Fix band members not fully inheriting their designated foe upon creation
For monsters created mid-game as part of bands (often via Shadow Creatures
or orb run spawns), only the band leader would be properly seeking their
designated foe.

This *often* didn't cause many issues in practice, since even having this
information set partially would usually cause the monster to still pick an
appropriate foe immediately afterward, but they did spawn with question
marks over their head and if you broke LoS from orbrun spawns immediately,
they would often be left wandering (unlike their leader).

--------------------------------------------------------------------------------
e7cff635f7 | DracoOmega | 2025-11-25 19:02:46 -0330

Remove a seemingly unnecessary conditional
The comment probably refers to old butchery autoswap, which was long gone
even before food itself was (which is also long-gone).

I can't think of any way that observing monsters should cause you to take
an action that ends your turn (and in fact it might be dangerous if it did,
given how many other places this can be called).

--------------------------------------------------------------------------------
2958ae8ee3 | DracoOmega | 2025-11-25 19:02:46 -0330

Don't anger good neutrals with Cause Fear, Anguish, or Word of Chaos
In general, I feel like any AoE that already don't have friendly fire
should also ignore good neutrals (and many of them do, since wont_attack()
and mons_aligned() include both friendly and good-neutral and are used in
many similar effects).

The very few places this makes ?fear more useful than before (largely
involving Bribe Branch) don't seem worth preserving this minor difference
between ally-safe and extremely-ally-safe effects.

--------------------------------------------------------------------------------
50f70f9b84 | DracoOmega | 2025-11-25 19:02:46 -0330

Fix player translocations not interrupting delays as intended
And remove activity_interrupt::teleport since it's effectively baked into
MV_TRANSLOCATIONS now.

--------------------------------------------------------------------------------
f6bc0097f2 | DracoOmega | 2025-11-25 19:02:46 -0330

Slightly improve message for monsters blinking out of constriction
Don't claim that jumping spiders 'blinked' out of anything, and condense
the escape message and regular message together instead of printing a
similar thing twice.

--------------------------------------------------------------------------------
be4894490d | DracoOmega | 2025-11-25 19:02:46 -0330

Rename armour_off/armour_on delays and update options_guide.txt
These are now equip_on and equip_off (they've included jewellery and
Coglin weapons since 0.33).

Also remove a few old default activity interrupts (like interrupt_butcher)
and upgrade options_guide.txt to remove references to several other removed
delays.

(Also fix Imprint Weapon not getting properly interrupted.)

--------------------------------------------------------------------------------
3a16fe7415 | DracoOmega | 2025-11-25 19:02:46 -0330

Remove activity_interrupt::stat_change
Stat loss is no longer a significant enough event to prompt the player to
cancel delays, even if it somehow happened in the middle of them doing
something.

--------------------------------------------------------------------------------
f1b5fbc316 | DracoOmega | 2025-11-25 19:02:46 -0330

Flush messages before prompting the player to cancel delays
If the player was prompted to stop a delay because (for instance) they
just got hit by something, the message for getting hit would not
necessarily be printed in the message log yet, making it sometimes quite
mysterious *why* you were being asked this question.

--------------------------------------------------------------------------------
f62bbde027 | DracoOmega | 2025-11-25 19:02:46 -0330

Don't make many delays uninterruptible on their second-last turn
If something tried to interrupt taking on/off equipment, transforming, or
imbuing a spellspark servitor on the second-last turn, nothing would
happen, happily allowing the player to sometimes get hit in the face by
something which would be otherwise avoidable. (One of the more common
scenarios involves Xom summons or god wrath.)

Looking through git history, this (duration > 1) check was originally put
in with the reasoning that choosing to cancel on the final turn still
consumed time for no benefit anyway. However, this does not seem to be the
case in modern Crawl and does allow the player to cancel a turn earlier
than they othewise would (possibly this changed the last time delays were
significantly refactored ~9 years ago?)

--------------------------------------------------------------------------------
41aa20da0b | DracoOmega | 2025-11-25 19:02:46 -0330

Add an autogenerated file to gitignore

--------------------------------------------------------------------------------
e68fdf0d6e | DracoOmega | 2025-11-25 19:02:46 -0330

New bad mutation: Spiteful Blood
This mutation gives a chance that the player's own blood rises up to fight
them when enough of it is spilled. When falling below 50% max HP, an
erythrospite may spawn adjacent to you - an angry mass of spilled blood
with HP and attack damage that scales with a factor of the player's XL
(and vampiric attacks, but poor defenses).

If one spawns, a second will not be able to spawn until the player heals
fully (and then gets significant reinjured).

At the second level of this mutation, two erythrospites may spawn at the
same time.

Damage, spawn chance, and other details are provisional, but this is a
further attempt at trying new angles for more interesting badmuts (that are
also not intended to be backbreaking).

--------------------------------------------------------------------------------
ab6bd4b4b3 | DracoOmega | 2025-11-25 19:02:46 -0330

Mutation tiles for Renounce Potions/Scrolls (regret-index)
Tiles were made by regret-index, using ontoclasm's Sacrifice Hand, Words,
and Drink ability icons

--------------------------------------------------------------------------------
6d62ebebb5 | DracoOmega | 2025-11-25 19:02:46 -0330

Reduce potion/scroll hoarding to one level, and restrict to Ru sacs
While these mutations may have lacked the dissatisfying RNG of the previous
-potion/scroll mutations, reaction to them in practice was mixed, with many
people finding them *more* oppressive than the old ones to recieve as
random malmuts and generally a bit unfun. There was particular concern with
this regarding Xom, where a player might end up restricted in this way for
quite a while.

However, players still seemed to consider them better-designed than the
previous mutations in this role as a Ru sacrifice, so I have restricted
them to this role, reducing them from 2 levels to 1 (and setting the
restriction of each at 50% HP). It's still a little unclear to me if their
piety gain should be adjusted - even experienced players seemed divided on
the subject.

(I have also reflavoured them a little to fit Ru's theme better, now that
they are Ru-exclusive again.)

--------------------------------------------------------------------------------
4377bebf5c | DracoOmega | 2025-11-25 19:02:46 -0330

A simple icon for showing Strong-Willed on monsters
It was previously merely implied by spriggan berserkers gaining
regeneration, but the flight status given by !enlightenment also has no
icon, and this felt like the better of the two to give.

--------------------------------------------------------------------------------
1ae03d70f5 | DracoOmega | 2025-11-25 19:02:40 -0330

New bad/good mutation: Potion Fungus
This mutation causes a fungus to grow on the player's body which sometimes
shares the effect of beneficial potions they drink with other monsters.
ie: drinking !haste can haste things, !hw can heal things, and so forth.

This *can* affect allies, but since there are a lot more enemies in the
game than allies (and many characters have no allies at all), this is
intended to be primarily a negative mutation (that can sometimes be
manipulated to be positive). (I admit, I was motivated by it feeling more
incoherant on a flavor level if it specifically only affected enemies....)

Double-sided potions are not included - partially because they're more
complex to imagine for monsters, and also far easier for the player to
exploit for actual benefit.

Intended to vaguely fill potion hording's slot in the general mutation
pool.

(Mutation tile made by regret-index, using ontoclasm's potion tile and old
glowing mold tiles, Sastreii's robust tile, and a CC0 mushroom by Jetrel.)

--------------------------------------------------------------------------------
c8003b0b08 | DracoOmega | 2025-11-25 17:51:24 -0330

New bad mutation: Booming Voice
Intended to replace Scroll Hording from the general mutation pool, this
causes the player to produce Gong-level noise when they read scrolls in
view of enemies.

Hopefully this lateral approach to an anti-scroll mutation will feel less
repressive while still having a meaningful impact on how and when the
player uses scrolls.

(Mutation tile made by regret-index, using ontoclasm's alarm trap tile, and
a CC0 scroll by idyllwilds.)

--------------------------------------------------------------------------------
18b0d3c97e | DracoOmega | 2025-11-25 17:51:24 -0330

Rework teleportitis somewhat (regret-index)
Several times in past, the idea was floated to make the teleportitis
mutation work closer to sojourning bolt (ie: warning the player in advance,
and allowing them to spend teleport scrolls to avoid it when crucial). The
hope was that this might feel a little less backbreaking and a bit more
agentive on players parts.

The way teleportitis (and hostile teleport in general) previously worked is
that it would repeatedly attempt a fully random teleport, and then reroll
the destination if there weren't monsters in sight. This usually failed
silently, but at a rate that had a complex relationship with how many
monsters were on a floor and how open it was. For instance, the chance of
teleportitis succeeding when called on an uncleared early D floor was ~30%,
potentially dipping to ~10% when the floor was nearly empty (but could be
as high as ~80% on V:5!).

Getting teleported to monsters is *already* more dangerous in places full
of monsters (like V:5), even if it happened at the same rate there as
elsewhere, rather than several times higher.

The new method (using code from wyrmholes) is guaranteed to teleport the
player into sight of *some* monster, if there are any. I have set the
trigger rate vaguely approximating the 'average' prior chance, plus a
little bit more to account for being able to cancel the scariest teleports
in advance. (I have also given it an internal cooldown to avoid feelsbad
situations with using ?tele only to immediately start teleporting anyway).

A few other things relied on the same 'usually fails' hostile teleport
code: Lugonu wrath, distortion unwield, and explore traps. The first two
will now always work, while the latter is given a 70% fail rate to
approximate how common it is now. (Fun fact: you'd get a message for Ash
preventing teleport traps that would never have triggered in the first
place, giving an inflated sense of how helpful this trap protection was!)

--------------------------------------------------------------------------------
e3d82ba608 | DracoOmega | 2025-11-25 17:51:24 -0330

Remove the need to keep data for fully removed mutations
mutation-data.h still contained full blocks of data for many long-removed
mutations (whose functionality was also long-removed, and in most cases
were also completely unobtainable, even on save-upgrade).

This made it possible to sometimes mistake a removed mutation for a real
one, when skimming the file. Moreover, it was still sometimes possible to
obtain a 'removed' mutation if one overlooked setting its weight to 0 when
it was removed.

It is now no longer necessary to keep anything in mutation-data.h for
removed mutations; so long as they are added to removed_mutations[] in
mutations.cc, dummy data will be provided for them automatically.

Mutations for removed species that *can* still be used on save upgrade (and
have some functionality) were left untouched. (I have also removed a few
remaining references to mutations that are now impossible to have.)

--------------------------------------------------------------------------------
ba7576e008 | David Lawrence Ramsey | 2025-11-25 15:15:22 -0600

Add a graffiti line about name changes.
Use @RANDGEN@ twice to guarantee the two names are different.

--------------------------------------------------------------------------------
db4f22af40 | David Lawrence Ramsey | 2025-11-25 15:13:28 -0600

Adjust graffiti comments wrt monname.txt names.

--------------------------------------------------------------------------------
adeea69181 | David Lawrence Ramsey | 2025-11-25 15:03:45 -0600

Add another graffiti meeting type.

--------------------------------------------------------------------------------
493f857c5a | David Lawrence Ramsey | 2025-11-25 14:29:24 -0600

Add another graffiti image option.

--------------------------------------------------------------------------------
b78577943b | David Lawrence Ramsey | 2025-11-25 14:29:24 -0600

Tweak graffiti image naming.

--------------------------------------------------------------------------------
b8d57cc4b4 | David Lawrence Ramsey | 2025-11-25 14:29:24 -0600

Add meeting-related messages to graffiti.
Including Nemelex, Zin, Xom, and Beogh references.

--------------------------------------------------------------------------------
18bc2f0952 | David Lawrence Ramsey | 2025-11-25 14:29:24 -0600

Add unique-specific complaints to graffiti.

--------------------------------------------------------------------------------
ad6f13cc51 | David Lawrence Ramsey | 2025-11-25 12:37:11 -0600

Add another ghost-adjacent graffiti line.

--------------------------------------------------------------------------------
5a65902f78 | David Lawrence Ramsey | 2025-11-25 12:34:02 -0600

Fix wording of a graffiti line.

--------------------------------------------------------------------------------
11ccc3ac47 | gammafunk | 2025-11-25 11:54:07 -0600

Fix a hyper layout bug
This layout code was trying to index a nonexistant usage_grid variable
ever since the code was merged. I've updated it to index what I believe
to be the correct usage grid, which is the one in the main_state
variable.

This bug was uncovered by the lua 5.4 branch with the help of some new
lua stack trace functionality. In general the hyper layout code needs a
serious lookover for errors, as there are still multiple instances of
unused and duplicated functions.

--------------------------------------------------------------------------------
3dc2b3b8a9 | gammafunk | 2025-11-25 11:54:07 -0600

Fix a Lua layout fix
The previous fix indexed the wrong (outer) table when removing eligible
positions. Also use a local reference to the inner table instead of
indexing to get the inner table multiple times per loop iteration.

--------------------------------------------------------------------------------
a806ee1784 | mumra | 2025-11-25 11:54:07 -0600

Fix Lua error in a slightly safer way
The previous commit didn't check for the existence of the key before
trying to remove an entry and it's possible it doesn't exist sometimes.

Additionally cleaned up the line that sets the index as it's no longer
needed; also made the usage_grid not create globally since a reference
to it is always passed around and this just seemed like an omission.

--------------------------------------------------------------------------------
7d55c1d807 | gammafunk | 2025-11-25 11:53:46 -0600

Fix a Lua layout error
This is the same type of error seen in v_pain.lua addressed by 4f17bedc,
but in the "hyper_usage" layout, which uses some very similar code.
Adapt the v_paint.lua fix here as well.

--------------------------------------------------------------------------------
4f17bedc66 | mumra | 2025-11-25 11:52:27 -0600

fix: Prevent Lua error in Vaults layout (gammafunk)

--------------------------------------------------------------------------------
bddf05584f | David Lawrence Ramsey | 2025-11-25 11:17:40 -0600

Add a few ancestor names.

--------------------------------------------------------------------------------
e944fac7b4 | David Lawrence Ramsey | 2025-11-25 11:01:29 -0600

Clarify monname.txt @RANDGEN@ comment.

--------------------------------------------------------------------------------
b04dcae2a4 | David Lawrence Ramsey | 2025-11-25 10:55:44 -0600

Fix inconsistent monname comments on @RANDGEN@.
Since it's a replacement, not an entry.

--------------------------------------------------------------------------------
a906453003 | David Lawrence Ramsey | 2025-11-25 10:43:32 -0600

Document @RANDGEN@ behaviour in monname comments.
Since it behaves differently when used multiple times in the same line.

--------------------------------------------------------------------------------
d67d0794c6 | wheals | 2025-11-25 16:58:30 +0200

Refactor again

--------------------------------------------------------------------------------
225b2a955a | wheals | 2025-11-25 16:40:27 +0200

Refactor _{ench,zap}_animation further

--------------------------------------------------------------------------------
ad97794c91 | wheals | 2025-11-25 16:31:23 +0200

Fix warnings

--------------------------------------------------------------------------------
18d619c47b | wheals | 2025-11-25 16:20:56 +0200

Refactor crash fix

--------------------------------------------------------------------------------
cc7c8d0d9b | Brian Power | 2025-11-25 16:16:29 +0200

Fix crash (null pointer dereference) in _ench_animation (issue #4926)

--------------------------------------------------------------------------------
34678775c8 | David Lawrence Ramsey | 2025-11-25 05:38:47 -0600

Add starting comment to colourname.txt.
Since it lacked one before. It's modeled somewhat after the one in
monname.txt.

--------------------------------------------------------------------------------
a09cb0da03 | David Lawrence Ramsey | 2025-11-25 05:34:41 -0600

Update monname.txt comment wrt orc names.
Since orc names are only given to orc apostles now, instead of being
given to orcs the player converts.

--------------------------------------------------------------------------------
9c00782a2a | David Lawrence Ramsey | 2025-11-25 05:10:48 -0600

Update monname.txt comment.
Both for coglins and graffiti authors.

--------------------------------------------------------------------------------
5a9698bba8 | CrawlOdds | 2025-11-26 00:00:21 +1300

Fix a tiny exclusion related info leak
It was possible to detect the positions of unknown, stationary monsters
behind transclucent walls on levels where you had read revelation.

--------------------------------------------------------------------------------
c8e2ee8096 | David Lawrence Ramsey | 2025-11-25 04:51:00 -0600

Add a graffiti line referencing ghosts.

--------------------------------------------------------------------------------
fb9210c66b | David Lawrence Ramsey | 2025-11-25 04:50:54 -0600

Let unreadable Xom-related graffiti be signed.

--------------------------------------------------------------------------------
09264a9476 | David Lawrence Ramsey | 2025-11-25 04:50:45 -0600

Add another suffix to bland graffiti author names

--------------------------------------------------------------------------------
16edd1530d | David Lawrence Ramsey | 2025-11-25 04:00:47 -0600

Simplify bland name handling.
This makes it consistent with the other name types and easier to work
with wrt graffiti author names.

--------------------------------------------------------------------------------
712959ebed | Isaac Clancy | 2025-11-25 22:08:23 +1300

Don't update colour animations more than once per turn
We were updating some colour animations whenever we redrew the screen.
This was okay for console were this mainly only happens when you press a
key. However, this doesn't work well in tiles as moving the mouse while
in a menu or targeting causes a whole bunch of redraws. Due to the way
we cache tiles and only sometimes invalidate to cache, this wasn't
always noticeable, however, animated blindness colours and after commit
6dfb6d6 animated floor tiles would appear to rapidly animate.

--------------------------------------------------------------------------------
7f9cb3418f | David Lawrence Ramsey | 2025-11-24 23:06:19 -0600

Add more graffiti options, including a Xom ref.

--------------------------------------------------------------------------------
20867ea25e | David Lawrence Ramsey | 2025-11-24 23:05:21 -0600

Adjust bland graffiti author names.
They get the occasional suffix now.

--------------------------------------------------------------------------------
58661db901 | David Lawrence Ramsey | 2025-11-24 16:33:03 -0600

Add orc-specific graffiti messages.

--------------------------------------------------------------------------------
862cb55072 | David Lawrence Ramsey | 2025-11-24 16:32:58 -0600

Consolidate and reorder some graffiti messages.

--------------------------------------------------------------------------------
0394f3beba | David Lawrence Ramsey | 2025-11-24 10:19:59 -0600

Add yet more graffiti message options.

--------------------------------------------------------------------------------
3fe5d85416 | David Lawrence Ramsey | 2025-11-24 10:15:41 -0600

Tweak a graffiti image name.

--------------------------------------------------------------------------------
2eeb4252c8 | David Lawrence Ramsey | 2025-11-24 09:50:46 -0600

Add another misplaced card for goblin sharpers.

--------------------------------------------------------------------------------
323b765f6f | David Lawrence Ramsey | 2025-11-24 09:47:29 -0600

Reorder a section of goblin sharper dialogue.

--------------------------------------------------------------------------------
957281411c | David Lawrence Ramsey | 2025-11-24 09:30:06 -0600

Handle multiple @RANDGEN@s in the same line.
Instead of replacing them all with the same string, replace each
instance with a newly generated string.

Add replace_all_func() to accomplish this (which acts like replace_all()
except that it takes a function that returns its replacement string) and
make_name_randgen() (a simple wrapper around make_name()) to get the
value of @RANDGEN@.

--------------------------------------------------------------------------------
5b388f059b | David Lawrence Ramsey | 2025-11-24 07:40:34 -0600

Note an obsolete bit in a Xom comment.

--------------------------------------------------------------------------------
16171e9c0b | David Lawrence Ramsey | 2025-11-24 07:35:52 -0600

Handle Xom's random names in the right place.
So that it's only done once.

--------------------------------------------------------------------------------
7d64739299 | David Lawrence Ramsey | 2025-11-24 07:29:43 -0600

Fix Xom C++ comment to not end in "*/" (oops).

--------------------------------------------------------------------------------
e3006133c3 | David Lawrence Ramsey | 2025-11-24 07:25:32 -0600

Change a few Xom-related comments from C to C++.
So that commenting out blocks of code for testing is easier.

--------------------------------------------------------------------------------
4a858b56c7 | David Lawrence Ramsey | 2025-11-24 06:56:01 -0600

Handle randomly generated names in Xom graffiti.
The same way we do in decor line graffiti.

--------------------------------------------------------------------------------
7fd6d77ad8 | David Lawrence Ramsey | 2025-11-24 03:51:56 -0600

Move colour entries to separate patterns/graffiti

--------------------------------------------------------------------------------
19668eb0f8 | David Lawrence Ramsey | 2025-11-24 03:47:36 -0600

Disunify coloured patterns and graffiti.
Xom can now only put graffiti on a feature.

--------------------------------------------------------------------------------
971af044aa | David Lawrence Ramsey | 2025-11-24 03:38:15 -0600

Merge coloured writing into coloured graffiti.
It's more fitting there, since it can show up on decor now.

--------------------------------------------------------------------------------
f7a342dbe4 | David Lawrence Ramsey | 2025-11-24 00:56:05 -0600

Fix warning.

--------------------------------------------------------------------------------
72725e0154 | David Lawrence Ramsey | 2025-11-24 00:30:57 -0600

Let graffiti have images instead of just text.
The images will be in the same weird colours the text is, but whatever.

--------------------------------------------------------------------------------
09d2b57a99 | David Lawrence Ramsey | 2025-11-24 00:14:16 -0600

Rename tag for colour patterns w/writing&graffiti
Since writing and graffiti are differentiated now.

--------------------------------------------------------------------------------
d8f323b4b0 | David Lawrence Ramsey | 2025-11-24 00:02:58 -0600

Add still more graffiti message options.
A few more things don't need to be signed, a wording tweak, and more on
the Orb of Zot and other things.

--------------------------------------------------------------------------------
10335afb66 | David Lawrence Ramsey | 2025-11-23 23:37:59 -0600

Add more graffiti message options.
They shouldn't always be signed anymore.

--------------------------------------------------------------------------------
e6322b6498 | David Lawrence Ramsey | 2025-11-23 23:24:43 -0600

Add clarifying comment.

--------------------------------------------------------------------------------
20421e7286 | David Lawrence Ramsey | 2025-11-23 23:20:00 -0600

Rarely mention graffiti in decor messages.
And add the appropriate hooks so it works.

It currently only shows up on peaceful blue and sparkling fountains.

--------------------------------------------------------------------------------
55f4209a7d | David Lawrence Ramsey | 2025-11-23 23:00:26 -0600

Restructure coloured writing/graffiti a bit.
So that they can reuse some text, and so there can be a few more
graffiti options.

--------------------------------------------------------------------------------
baf1ee2142 | David Lawrence Ramsey | 2025-11-23 22:08:48 -0600

Add a few more colour names to the database.

--------------------------------------------------------------------------------
37e427be7c | David Lawrence Ramsey | 2025-11-23 19:32:45 -0600

Allow randomly named graffiti authors (again).
Now it should work, since @RANDGEN@ works with all monster names.

--------------------------------------------------------------------------------
e6d1ede5ff | David Lawrence Ramsey | 2025-11-23 19:31:33 -0600

Allow substitutions in monster names.
Similarly to how we allow them for monster shouts and monster speech,
but much simpler. It currently only substitutes @RANDGEN@ with a name
randomly generated by make_name()

Accordingly, the minor hack substituting RANDGEN with a name randomly
generated by make_name(), and only for steelspirits, has been removed
and replaced with this method.

--------------------------------------------------------------------------------
59cc89b9aa | David Lawrence Ramsey | 2025-11-23 19:26:55 -0600

Fix some spacing inconsistencies wrt references.

--------------------------------------------------------------------------------
f1bfd698bb | DracoOmega | 2025-11-23 21:09:04 -0330

Fix a few more cases of needless movement warnings
The player could be prompted by exclusions on walls or other impassible
terrain if they tried to move into them (or even while they were unable to
move at all).

--------------------------------------------------------------------------------
10767157b7 | DracoOmega | 2025-11-23 21:09:04 -0330

Don't run infinitely into walls (Flugkiller)
Trying to perform a movement action that was a no-op (such as walking into
walls) with shift+move still resulted in running happening internally. This
was normally fairly invisible, but resulted in slightly odd behavior with
command repeat (which would abort with a mention about performing 0-time
actions), and could actually result in crashes if travel_key_stop was set
to false when one did so (presumably via causing an infinite loop).

This fixes #4923

--------------------------------------------------------------------------------
bbb4cc156b | DracoOmega | 2025-11-23 21:09:04 -0330

Don't re-print items on the player's tile every time they attack (pisaster)
90209b8 resulted in autopickup being requested every time the player
attacked a monster via move_player_action(), which would print items at
their feet if it was not safe to pick them up.

However, some players reporting enjoying the behavior of automatically
picking up autopickup-flagged items at their feet when they finished killed
whatever monster they were fighting, instead of having to step off and back
on again (or hit autoexplore), so now it will request autopickup *either*
if the player actually moves, or it is safe to actually pick things up.

--------------------------------------------------------------------------------
626cae3972 | David Lawrence Ramsey | 2025-11-23 18:05:48 -0600

@graffiti author@ -> @graffiti author name@
So that you can get the graffiti author using getRandMonNameString(),
which assumes all names in the database end with " name".

--------------------------------------------------------------------------------
f76717280b | David Lawrence Ramsey | 2025-11-23 15:52:29 -0600

Revert "Rarely allow randomly named graffiti authors."
This reverts commit 782cd2de2604046205dfb1317d8425200ad719eb.

RANDGEN is only translated to a randomly generated name via manual
substitution in name_weapon(); such translation won't work elsewhere.

--------------------------------------------------------------------------------
782cd2de26 | David Lawrence Ramsey | 2025-11-23 15:35:42 -0600

Rarely allow randomly named graffiti authors.

--------------------------------------------------------------------------------
22b60481a4 | David Lawrence Ramsey | 2025-11-23 14:44:44 -0600

Split up colour patterns w/ and w/o writing.
So that e.g. alchemy miscasts don't make graffiti appear on either you
or monsters, but Xom's mysterious ways do.

--------------------------------------------------------------------------------
e584e5fc1c | David Lawrence Ramsey | 2025-11-23 14:25:36 -0600

Add another name to graffiti authors.
Reweight the bland names (who knows who's signing these things, anyway?)
so that it's the rarest.

--------------------------------------------------------------------------------
1b4f297502 | David Lawrence Ramsey | 2025-11-23 14:07:27 -0600

Reweight uses of colour patterns.
Bias them more in favour of single colours and two-colour patterns,
and less in favour of text and graffiti.

--------------------------------------------------------------------------------
2527bb29d8 | David Lawrence Ramsey | 2025-11-23 14:01:01 -0600

Add coloured graffiti to colour patterns.
Add a @graffiti author@ entry to monname.txt, so that we have some names
to sign the graffiti with.

--------------------------------------------------------------------------------
3e49ad1ed7 | David Lawrence Ramsey | 2025-11-23 13:04:17 -0600

Add more writing nouns to the colour database.

--------------------------------------------------------------------------------
a94b0171f9 | DracoOmega | 2025-11-23 14:54:18 -0330

Fix harpoon shot not properly deferring movement finalisation
This could cause a crash if a monster was pulled onto a shaft, but probably
could also be incorrect in other ways.

--------------------------------------------------------------------------------
403807c238 | David Lawrence Ramsey | 2025-11-22 19:03:32 -0600

Fix wizmode monster placement for "the " monsters
An initial "the " needs to be removed for partial monster name matches
to be interpreted properly, so that e.g. "lern" will match "Lernaean
hydra" again.

--------------------------------------------------------------------------------
6dfb6d6681 | Isaac Clancy | 2025-11-22 20:03:28 +1300

Simplify and fix how colours are applied to features
We had multiple ways of applying colours to grid features. The first way
was to update the floor and rock wall flavours of the square when
changing the grid colour of the square. This only works for floor and
rock wall features but we want the grid colour to affect other features
such as stone walls. This brings us to the second way used, which was
to use take into account the grid colour of a feature in
`apply_variations` and change its tile accordingly. However, we only did
this for a hardcoded list of tiles which was very hard to tell if it
included all tiles that weren't handled in another way. Neither of
these ways handled animated colours (although the second way could with
a small modification), instead, animated colours were handled when
picking the tile for a feature but only for a hardcoded list of grid
features. This was also done before adding the tile to our tile cache
and as the cache doesn't usualy get invalidated for out of view tiles
this resulted in the colours of out of view tiles not usually animating.
It also happens before we change the tiles used by features based on the
branch and we need to apply the colour after this which resulted in very
hacky code to handle this.

Instead, expand the code in `apply_variations` to handle animated
colours and always try to apply the colour to the tile instead of only
if the tile is on a hardcoded list.

--------------------------------------------------------------------------------
d5f1874545 | CrawlOdds | 2025-11-21 14:45:27 -0600

Fix IMB uselessness check
Fixes the case where we want to cast IMB with a friendly monster
between ourself and a hostile one; this should be a warning not a
useless cast.

--------------------------------------------------------------------------------
91728b37d5 | regret-index | 2025-11-20 18:36:41 -0330

Move clockroaches out of two sewers, add a new clockroach sewer
The clockroach distribution adjustments in d75a07f resulted in two seperate
Sewer layouts with very long moats for clockroaches to hide behind, in
`sewer_fruit_machine` and `sewer_frog_island_01`. In the abstract, I think
shorter clockroach deep water moats would be fine- we've got plenty of
liquid abuse emphasized in early portals as is, and there's countless ways
to cross such. (Their use of Sandblast also makes their damage quite
unimpressive versus those wearing anything heavier than ring mail.) In
practice, the potentially extremely early nature of Sewers makes it
unfortunately too inconsistent to have much access to much, and the extra
long moats further worsen this (making it hard to retreat, making it
difficult to gauge one's chances to survive, and encouraging waiting very
long times to try and have them wander away).

As such, I have removed clockroaches from both of these sewer layouts, with
mild compensatory buffs to both of them as previously-underperforming
sewers. I have also made a new Sewer layout reliably forefronting this
gimmick with a fair bit more caution (using a much shorter moat with some
minimal reliable cover, limits on clockroach firing counts, and narrow
space for them to roam) and some distinct flavour (with kobolds having a
semi-magical insect collection as earlygame has incidentally picked up).
This should serve as a far better test for how reasonable the gimmick is,
and can be trivially swapped out in the future for other ranged enemies if
these restrictions make the gimmick still too much.

--------------------------------------------------------------------------------
b5dad2313f | regret-index | 2025-11-20 18:36:41 -0330

Ever more mutation icons
These are mostly borne from some loose further ideas after I did work on
other icons and tiles for upcoming further bad mutation revisions. Still
going to take a long whiles yet to fully catch up on the remaining three
dozen or so icons without unique icons, alas.

 * Bedevilling: A rejected tentacled monstrosity tile by roctavian,
   combined with ontoclasm's Hexes skill icon and Summon Demon icons.

 * Black Mark: Sastreii's robust mutation icons.

 * Double potion heal: A CC0 potion by Shade combined with ontoclasm's
   local tiles number font and potion of heal wounds icon.

 * In touch with death: Denzi's original mummy tile and Tomb rock tiles,
   combined with Darby's ossuary stone tiles.

 * Naga tail mutation: ontoclasm's mermaid statue, a rejected naga tileset
   by roctavian, and XuaXua's constriction status icon.

 * Sanguine Armour: CanOfWorms's icemail icons, combined with a public
   domain waterfall from the Open Pixel Project.

--------------------------------------------------------------------------------
e5381b52e2 | CrawlOdds | 2025-11-20 15:32:27 +1300

Make spell name lookup prefer spells that exist
This makes it easier to memorise Freezing Cloud in wizmode, for example.

--------------------------------------------------------------------------------
c5498a261d | DracoOmega | 2025-11-19 16:54:39 -0330

Remove some broken logic regarding monsters picking up launchers (Acrobat)
Monsters that had damage-dealing spells were supposed to not bother picking
up ranged weapons. This was ancient behavior that ended up broken by
7ec163d (due to the new function using an && instead of an & in one
place...)

However, on reflection, perhaps there is not a sufficiently compelling
reason that conjurer monsters *not* pick up launchers. The original idea
(I presume) was to avoid needless overlap between their spells and another
means of firing damaging projectiles, but we don't stop conjurers from
picking up *wands* and those are even more similar. A handful of monsters
with direct damage spells already can even spawn *with* launchers (eg:
kobold blastminers, deep elf knights), so in the rare chance this happens,
it seems probably fine?

So I am simply removing all logic related to this rather than do a more
exhaustive cleanup of what spells do damage or not. If in future we want
to limit this a bit moreso, there are other ways.

--------------------------------------------------------------------------------
7f56f43775 | DracoOmega | 2025-11-18 18:23:11 -0330

Fix some friendly-fire warnings (Odds)
When af31bf4 refactored code for tracers hitting the player, it
incidentally relied more on the beam's own attitude while ignoring the
agent. However, we don't actually set beam attitude correctly in many
places, so certain spells (including Fire Storm and Freezing Cloud) treated
the player as a hostile target and didn't warn for aiming at yourself.

A more correct solution overall would be to review uses of beam attitude
and generally have beams determine their attitude automatically from their
agent. But in the meantime, this should fix the immediate bug.

This fixes #4915

--------------------------------------------------------------------------------
ae57460154 | David Lawrence Ramsey | 2025-11-18 15:51:03 -0600

Add another people name to artefacts.

--------------------------------------------------------------------------------
c44485375a | David Lawrence Ramsey | 2025-11-18 11:37:43 -0600

Add two more orc names.

--------------------------------------------------------------------------------
77c13a3788 | Isaac Clancy | 2025-11-19 00:47:24 +1300

Fix the tiles for webs sometimes fail to connect
Webs are meant to connect to adjacent webs and solid features. So as
not to leak information that a console player wouldn't know, they can
only be shown connected to other tiles that you have seen or magic
mapped. This means that when a tile first comes into view we need to
redraw the webs around it as they might now connect to it. However,
because we were caching the tile for webs after applying the web
connectivity checks and the tile cache for a square isn't invalidated
when a neighboring square is seen, we sometimes wouldn't redraw. To fix
this move applying the connectivity checks to after we retrieve the tile
from the cache.

--------------------------------------------------------------------------------
c6de63240e | Isaac Clancy | 2025-11-19 00:27:23 +1300

Apply branch tile overrides before caching tiles
We were storing tiles in the tile cache without branch overrides and
then applying the overrides every time we accessed the cache. However,
it's fine to apply the overrides to the tiles before storing them in the
cache as we invalidate the whole tile cache when changing levels.

--------------------------------------------------------------------------------
e0c88c3b9a | David Lawrence Ramsey | 2025-11-17 15:18:28 -0600

Fix failing Lua monster name test (oops).
Add "name_nocorpse" to the kobold wearing mittens so that it properly
leaves a kobold corpse again.

--------------------------------------------------------------------------------
c1a48c6843 | David Lawrence Ramsey | 2025-11-17 14:59:01 -0600

Fix MF_SUFFIX monster corpse oddity (#4908).
Don't erroneously ignore the suffixes of corpses of monsters with
"n_suf" lacking "n_noc", since we don't do that with corpses of monsters
with "n_adj" lacking "n_noc".

Accordingly, adjust the one redefined monster we currently have that
uses "n_suf" without "n_noc" and leaves a corpse, the spriggan baker, to
use "n_noc" so that it will still properly leave a spriggan corpse
instead of a spriggan baker corpse.

--------------------------------------------------------------------------------
8453784959 | David Lawrence Ramsey | 2025-11-17 14:53:56 -0600

Fix MF_ADJECTIVE monster corpse oddity (#4908).
Don't erroneously display "the" instead of "a" with corpses of monsters
with "n_adj" lacking "n_noc", since we don't do that with corpses of
monsters with "n_suf" lacking "n_noc".

--------------------------------------------------------------------------------
74290eaedb | David Lawrence Ramsey | 2025-11-17 14:47:59 -0600

Replace obsolete ref to "wizard" monster in docs.

--------------------------------------------------------------------------------
fb7a264d33 | DracoOmega | 2025-11-16 18:15:12 -0330

Fix formicids being able to dig into the level border (and then crash)

--------------------------------------------------------------------------------
fdd75ac4f6 | DracoOmega | 2025-11-16 15:06:54 -0330

Fix inverted logic
Oops >.>

--------------------------------------------------------------------------------
028126efb3 | DracoOmega | 2025-11-16 15:06:18 -0330

Temporarily change an assert to a no-op (various)
While you.turn_is_over really *should* be false any time
move_player_action() is reached, this assert uncovered some input bugs that
can rarely allow for mouse commands to try performing an action while the
player's turn is theoretically over.

That bug has more widespread consequences than just this function, but is
also non-trivial to fix, so in the meantime let's have this method just
abort instead of crash.

--------------------------------------------------------------------------------
2aef843f5c | David Lawrence Ramsey | 2025-11-16 00:52:13 -0600

Properly name uniques wrt derived undead (#4908).
Use name_zombie_from_mon(): make a fake monster to hold the name and
name flags we'll get, and then copy them to the mgen_data.

--------------------------------------------------------------------------------
7d23ca1161 | David Lawrence Ramsey | 2025-11-15 23:35:51 -0600

Improve _make_derived_undead()'s naming (#4908).
Make its logic duplicated from name_zombie_from_mon() closer to that of
name_zombie_from_mon(), so that its behaviour is closer to correct (e.g.
it will now only add the usual suffix to uniques instead of both them
and named monsters without the MF_NOCORPSE flag set).

--------------------------------------------------------------------------------
8682a6176f | David Lawrence Ramsey | 2025-11-15 23:35:45 -0600

Fix some monster naming wrt MF_NOCORPSE (#4908).
In name_zombie_from_mon() and _make_derived_undead(), if the MF_NOCORPSE
flag is set and the monster's name is discarded, clear all its name
flags as well, so we don't e.g. display spurious spaces for prefixes and
suffixes in the monster's former name.

--------------------------------------------------------------------------------
a7bf8d8ed5 | Isaac Clancy | 2025-11-16 16:15:53 +1300

Fix show_update_at setting a square as not in view
This was mainly causing monster positions to not be correct during force
mores that happen on monster turns in console. This was broken in
commit af76f80

--------------------------------------------------------------------------------
f62dfb2e50 | David Lawrence Ramsey | 2025-11-15 20:54:19 -0600

Fix zombified Gehenna SoH losing its name (#4908)
By putting a minor hack into common_name(). It's the only case of a
monster with the same base_type and species where its name shouldn't be
discarded; the other Serpent of Hell varieties have different base
types, and so don't lose their names here.

--------------------------------------------------------------------------------
f6cdf2f81c | DracoOmega | 2025-11-15 22:37:44 -0330

Fix ?summoning band members disappearing instantly (tekkud)

--------------------------------------------------------------------------------
27e3a25e67 | David Lawrence Ramsey | 2025-11-15 18:32:21 -0600

And #ifdef out insubstantial wisp enum (oops).

--------------------------------------------------------------------------------
5a87bae979 | David Lawrence Ramsey | 2025-11-15 17:38:49 -0600

Remove insubstantial wisps.
They're not used for anything except as a tile reference for wisp form,
so use their current tile for that directly.

Change its default monster to twister, since it's a vortex-type and it's
nearly the same colour as the original monster.

--------------------------------------------------------------------------------
4fe8c44f3a | David Lawrence Ramsey | 2025-11-15 17:02:58 -0600

Remove has_corpse from some more monsters.
Which are non-living, demonic, or either of those. and also
non-spawning due to being genus-only or used just for their tile.

--------------------------------------------------------------------------------
2d68f2b6bc | David Lawrence Ramsey | 2025-11-15 12:47:53 -0600

Rename the two versions of name_zombie().
To better differentiate them. name_zombie(mon, mc, mon_name) is now
name_zombie_from_class(), and name_zombie(mon, orig) is now
name_zombie_from_mon().

--------------------------------------------------------------------------------
e49427c560 | David Lawrence Ramsey | 2025-11-15 11:04:50 -0600

Fix warnings.

--------------------------------------------------------------------------------
e05568b291 | DracoOmega | 2025-11-15 12:38:00 -0330

Don't trigger Golubria passages that you just exited
Prior to fec6f05, taking a passage of Golubria didn't perform most
post-move effects. Now that it does, the passage at your *destination* was
being triggered by the movement before the original was removed, resulting
in ping-ponging back and forth between them until the stack overflowed.

Now, the movement from Golubria cannot trigger other Golubria traps.

This fixes #4911

--------------------------------------------------------------------------------
4c60dd1033 | DracoOmega | 2025-11-15 12:38:00 -0330

Slightly reorder trap triggering in finalise_movement()
Traps are (at least currently) the only part of finalise_movement() that
can itself result in moving an actor (and a recursive call to
finalise_movement()).

Skip remaining parts of the function if the player was moved, to avoid
some theoretically-dubious semantics. Much of the code afterward was
relative to the player's 'new' position instead of their old one anyway,
and whatever trap-triggered movement happened should have done its own
cleanup.

(I am not certain if a meaningful bug was possible from this in practice
yet, but I can imagine future ones.)

--------------------------------------------------------------------------------
4e275ff57a | Isaac Clancy | 2025-11-15 22:48:26 +1300

Fix Vaults:4 down stairs description (acrobat3)
We were trying to override the description for stone down stairs in
Vaults:4 to be metal stairs in the layout code for Vaults. However,
the vaults placed by the layout have their own set of overrides which
are used instead. Instead of trying to use vault description overrides,
special case stone down stairs in `_base_feature_desc` similar to what
we do for rock walls in Pandemonium.

Fixes #4896

--------------------------------------------------------------------------------
4f49a6db60 | Isaac Clancy | 2025-11-15 22:08:15 +1300

Fix clear_to_end_of_line crashing on windows
It isn't meant to change the cursor position so we were using
`save_cursor_pos` to prevent this. However, `save_cursor_pos` requires
a valid cursor position and it should be fine to call
`clear_to_end_of_line` with the cursor at the character just after the
end of line which isn't valid.

--------------------------------------------------------------------------------
0ebab00e9d | David Lawrence Ramsey | 2025-11-15 01:23:58 -0600

Fix wording.

--------------------------------------------------------------------------------
f19d277d5e | David Lawrence Ramsey | 2025-11-14 19:53:03 -0600

Clarify comment.

--------------------------------------------------------------------------------
893d6a15a9 | DracoOmega | 2025-11-14 21:15:40 -0330

Fix a crash with monsters escaping constriction
When monsters escaped ranged constriction forcibly, the codepath resulted
in deleting ENCH_CONSTRICTED in the middle of actor::stop_constricting(),
potentially invalidating a reference still being used. This should
hopefully fix that.

--------------------------------------------------------------------------------
be73c500f2 | DracoOmega | 2025-11-14 20:57:46 -0330

Don't warn players about moving onto traps under enemies (not_that_greg)
Since the movement action won't actually move you there.

--------------------------------------------------------------------------------
2d851663aa | David Lawrence Ramsey | 2025-11-14 17:59:42 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
09b92a94c4 | David Lawrence Ramsey | 2025-11-14 17:57:27 -0600

Mention spider form's new immunity to webs.
In the spider talisman's description.

--------------------------------------------------------------------------------
03264fdafe | Implojin | 2025-11-14 17:52:13 -0600

Remove an obsolete barbs rampage warning
Following 90209b8f76, rampage only deals barbs damage once no matter the
distance travelled, so we no longer need a special-cased prompt message
about huge barbs damage here.

--------------------------------------------------------------------------------
90209b8f76 | DracoOmega | 2025-11-14 17:05:55 -0330

Rewrite move_player_action and general rampage movement handling
The way rampage movement was implemented was somewhat brittle and resulted
in a handful of inconsistencies (that have become even more obvious now
that players can stack rampage to move multiple tiles at once). Internally,
it performed an 'instant' movement directly to the second-last tile of the
full rampage, then attempted to do a single normal movement in that same
direction. This resulted in a number of issues:
 -Rampaging would skip over traps on any but the final two tiles (unless
  you were attacking a monster, in which case it would skip over all traps
  except the final one)
 -The time spent moving when crossing slow terrain would depend very
  idiosyncratically on what *order* the terrain was encountered in.
 -Whether you would whirlwind a monster you appeared to pass alongside
  varied based on precisely how distant you were from them - if you
  'jumped' too far, you would not attack them at all, despite arriving
  beside them.
 -If the initial movement displaced the player somehow (such as a dispersal
  trap), the second movement would still automatically procede from the
  player's new location; it was possible to perform dangerous attacks
  without a prompt this way, or accidentally open runed doors (or even
  move at instant speed movement if you happened to bump into a neutral
  monster).
 -Rampage would jump 'over' invisible monsters, unless they were at the
  player's destination, in which case the player would take only a single
  step and stop (no matter how far away the invisible monster was).

On top of all this, there were checks needed in many places to make sure
the movement actually took time if the player was interrupted before the
'normal' movement could happen.

move_player_action() (with which it was deeply entwined) is also very old
code that has had so many additions and removals over the decades that the
resulting logic was needlessly difficult to follow (and contained a lot of
highly dubious statements like resetting local variables immediately before
exiting...)

This commit is an attempt to clean up both, rewriting move_player_action()
to be clearer, while making rampaging more of a first-class citizen within
it. Rampaging now actually performs an arbitrary number of individual steps
in sequence (rather than one instant jump and one normal move). Anything
that would stop the player's ability to move in the middle will cancel the
rest of the sequence (including arriving somewhere unexpected). The
movement cost of the rampage is calculated as the *average* movement cost
of all steps along the movement path, and it now only triggers barbs and
sticky flame shake-off a single time (instead of often precisely twice, no
matter the distance travelled).

In addition, this fixes several other issues with move_player_action():
 -Fungus form was permitted to move in sight of enemies, so long as this
  was done by swapping with something.
 -Winding a clockwork bee took no time (!)
 -Shallow water could be entered at normal speed, but *exiting* it was slow
  (Possibly unknowingly changed by d469af4, whose reasons for reordering
  the relevant no longer apply to the current version of pursuit attacks)
 -Martial attacks did not reset the player's berserk non-attack penalty
  properly (merely pausing it temporarily).

Finally, this makes it possible to perform martial attacks while digging.
This interaction was probably deliberate, but very obscure and doesn't feel
like an exception worth preserving; if dig-lunge-stabbing really is too
strong, we can always make the noise digging already does alert adjacent
things first.

--------------------------------------------------------------------------------
4844f47519 | DracoOmega | 2025-11-14 17:05:55 -0330

Fix can_pass_through() for wall-walking monsters (Sergey)
can_pass_through() returned false for anything *but* walls for
wall-walkers, resulting in a handful of incorrect behaviors, which
included at least:
 -Wall-walkers were unable to swap with other monsters on open ground
 -They could not be pulled by harpoon shot
 -Transference would fail on them

There were fewer consequences for this than one might expect, as
monster_habitable_grid() and similar functions controlled most of this sort
of thing. (In fact, there are already comments that the difference between
the two ought to be refactored in future....)

--------------------------------------------------------------------------------
c9c97a39cf | DracoOmega | 2025-11-14 17:05:55 -0330

Remove a misleading parameter from wielded_weapon_check()
Only the player's mainhand weapon was passed to this function, but it would
pull out the player's offhand weapon on its own. Since literally every
single call of this function passes you.weapon() as the first parameter,
remove that parameter entirely and obtain it inside the function just as is
done for offhand weapons.

--------------------------------------------------------------------------------
754c8a666e | DracoOmega | 2025-11-14 17:05:55 -0330

Fix the Diminished Spells status missing a description (Snakku)

--------------------------------------------------------------------------------
93e8db9b14 | DracoOmega | 2025-11-14 17:05:55 -0330

Fix a tiny typo

--------------------------------------------------------------------------------
c8cf6c04b2 | DracoOmega | 2025-11-14 17:05:55 -0330

Don't allow monsters bound in place to break free of constriction
The player needs to be able to move in order to try pulling away from
constriction, and it seems sensible to me that monsters also do.

--------------------------------------------------------------------------------
0d55790d01 | DracoOmega | 2025-11-14 17:05:55 -0330

Fix monsters polymorphed into a naturally warded monster not having warding
It looks to me like stuff like this probably ought to be handled inside
define_monster() in the first place, but there's always a chance that
there's a valid reason and I'm not going to spend the time required to
investigate properly at this moment.

--------------------------------------------------------------------------------
0a0a1bd1ea | DracoOmega | 2025-11-14 17:05:55 -0330

Allow Robin to throw hobgoblins
It was fairly opaque that they could not (their Battlecry works on them!)
and not even clear that it was originally intended, either.

--------------------------------------------------------------------------------
66b53d6f13 | DracoOmega | 2025-11-14 17:05:55 -0330

Change constriction range rules slightly
It is now possible to perform a constricting melee attack against
non-adjacent targets if your auxes have reaching (such as from aqua form).

Melee constriction can now be maintained while moving, so long as you
don't move further away from the constrictee. (In most cases, this simply
means you are allowed to sidestep around a constricted monster. In aqua
form's case, it very specifically allows you to approach but *not* retreat,
to avoid tedious kiting behavior of grabbing a monster, stepping back to
full reaching distance while it is stuck in place, and repeating ad
nauseum.)

--------------------------------------------------------------------------------
6ed2157ae4 | DracoOmega | 2025-11-14 17:05:55 -0330

Fix a few monster pathfinding issues
Broken by 04fd3a2 , monsters would consider all other monsters impassible
and also often fail to realize they could open doors.

Some players attributed the former behavior to giving monsters more
interesting 'flanking' behavior, but in my testing it did not actually seem
to result in that very much more often than the previous code (but would
sometimes get monsters stuck in place, especially with groups of allies).

--------------------------------------------------------------------------------
fec6f050e1 | DracoOmega | 2025-11-14 17:05:55 -0330

Refactor all actor movement code
There were a variety of different functions that existed to move the
player (or monsters), whose semantics differed in ways that were not always
immediately clear (eg: you.move_to_pos() vs. you.moveto() vs.
move_player_to_grid())

Moreover, a lot of effects that were expected to happen as part of movement
(or immediately afterward) required calling different sets of methods
manually - for instance, to apply traps or break Ramparts or shake off
sticky flame. Because actors are moved in many, many different functions,
there were quite a lot of oversights regarding what sort of post-movement
cleanup should happen after a given movement. For instance, forgetting to
trigger traps after particular movements was a perpetually reoccuring bug
that still existed in at least a dozen places, by my count.

This is an attempt to clarify movement functions, attain more consistency
in post-move effects, and make such oversights less likely in the future.

There is now a single standard movement function, actor::move_to(), which
should be used in virtually all cases. It takes a set of movement flags as
an argument, which defines the *semantics* of the movement (eg: whether it
was deliberate, a translocation, etc.) so that post-movement effects can
be handled in a consistent way: the caller states what type of movement it
is, and the code itself will ensure that the proper cleanup is done for
that type of movement.

Traps, location effects, cancelling of delays, handling barbs, and almost
everything of that nature is now handled via actor::finalise_movement(),
which is called by ::move_to() by default, but can be deferred to a later
time with a single argument. There are many cases where an actor must move,
do something, and only *then* have traps trigger. Rather than selecting a
specific movement function, manually remembering their old position, and
then remembering to call an appropriate collection of post-movement
functions afterward, the new idiom in these cases is simply:
 -Call move_to() with appropriate flags and deferred=true
 -Call finalise_movement() afterward (which itself keeps track of the
  original position).

There will be some minor changes from this commit to which movements
trigger which post-movement effects (since there were a multitude of bugs
or arguable-bugs), but there should be much more consistency now, and
easier use in future.

(One minor nit is that teleport code is not comprehensive about setting
MV_DELIBERATE for teleports that are agentive, since the teleport codepaths
are still tangled. However, for the moment, MV_DELIBERATE does not do
anything much while MV_TRANSLOCATION is also true, so I don't think there
will be any negative effects. Something to maybe untangle in future,
though.)

--------------------------------------------------------------------------------
561cb78689 | DracoOmega | 2025-11-14 17:05:55 -0330

Don't sometimes fail to place temp shallow water in Shoals
Due to tides code, there was a change that if temp shallow water was placed
near where tides were currently receding, it would immediately be converted
back to dry land by the time the player could even see it.

Now temporary terrain should be left untouched by the tides.

--------------------------------------------------------------------------------
1bf1e5df12 | DracoOmega | 2025-11-14 17:05:55 -0330

Change / simplify the Engulf status
Engulfing (as done by water elementals) had a handful of extant bugs, and
also some tangled code semantics whereby ::clear_far_engulf() had a
different meaning when called on monsters versus players. This would be
fixable, but it's unclear how effective the current mechanic actually is,
so after some discussion with other devs, I have opted to replace it with
a simpler effect and fold the Waterlogged status together with it.

Now named Flooded, this provides the current Waterlogged silence effect as
well as a small amount of ongoing asphyxiation damage. It is never applied
to non-air-breathers (instead of the mildly confusing 'you're engulfed but
don't actually suffer any ill effects because of it' status that previously
existed) and cleared immediately if you stop needing air.

Effects that previously engulfed now apply a few turns of Flooded instead
(and existing effects that applied Waterlogged now also apply Flooded).
Phial's direct damage is reduced significantly in exchange for the new DoT
that accompanies its silence (weak though it is). The Engulf mutation now
applies on damageless hits (better mirroring monsters that apply it).

In many situations, this may make the silence effect from water elementals
and void oozes more dangerous than before, though at least some amount of
this is intentional: being able to reliably shake off the effect with a
single turn of movement meant that it was typically only dangerous in the
very worst of situations or when literally surrounded. Now, it may be
relevant more often (though hopefully not overly so; I admit some mild
concerns about melee pursuit attacks).

For now, I opted for flat fixed damage on the effect (2d5 versus players
and 3d2 against monsters). It is possible it would be better to have its
damage depend in some manner upon the source of the flooding, but hopefully
this is functional for now.

--------------------------------------------------------------------------------
a41f09d146 | DracoOmega | 2025-11-14 17:05:55 -0330

Remove a useless function
Mostly made irrelevant by 77787f6 but accidentally left around (and
making it so that some options in the list could never actually be picked
anyway...). Its logic was highly dubious in the first place (nothing about
'pouncing' directly implies webbing, we've already had non-poison stings
for ages, etc.)

--------------------------------------------------------------------------------
0eb155126e | DracoOmega | 2025-11-14 17:05:55 -0330

Generalise player silence checks a little
Make ::is_silenced() an actor method instead of just a monster one, and
apply similar logic to fold in checks for Engulf into the player one
(instead of doing these manually in multiple places and overlooking a few).

(Note that this does not replace use of silenced(you.pos()) altogether,
since that checks whether sound can exist at the player's position, not
whether the player themselves can make any. This matters for hearing, and
also things like the Singing Sword, which cares not for whether you are
currently drowning.)

--------------------------------------------------------------------------------
d6914e66c5 | DracoOmega | 2025-11-14 17:05:55 -0330

Don't let orbs of destruction swap places with battlespheres
An obscure special-case that was presumably trying to emulate the ability
for the player to fire projectiles through their own battlesphere, however
they do not behave this way for other allies you can normally shoot through
(eg: ancestors or Fedhas plants) and I think it would sometimes be
confusing if they actually *did* displace those allies, so let's remove
this. (I suspect nobody will even notice.)

--------------------------------------------------------------------------------
dd001bc964 | DracoOmega | 2025-11-14 17:05:55 -0330

Fix a few oddities with fear/mesmerise and adjust messages
For some reason (perhaps ancient copy-paste from siren code), fear on the
player would immediately break if either the player or the monster in
question became silenced. (There wasn't even a check to stop the monster
from re-fearing you in this case, but it would again immediately break.)

This is silly and has been removed from both fear and non-siren mesmerism.

I have also edited a variety of messages for mesmerisers losing their hold
on the player. (Fun fact: many of the existing ones were literally
unreachable from the moment they were added by 8333f45 due to overlooking
an early return at the start of the function *unless* you were a siren.

--------------------------------------------------------------------------------
433647a97b | DracoOmega | 2025-11-14 17:05:55 -0330

Remove spflag::harms_area
It is no longer needed since the changes to Sanctuary.

--------------------------------------------------------------------------------
0b7d054091 | DracoOmega | 2025-11-14 17:05:55 -0330

Slightly refactor torment_cell
It is no longer structured somewhat oddly specifically so that it could
torment the player and also a monster standing on the player's tile at the
same time.

(The monsters the player can overlap with are generally torment-immune
anyway, but this concept of affecting both 'the player and a monster they
might be standing on' is already not done in countless places and is very
difficult to enforce, so I think it's better to work for consistency in
the opposite direction, and assume the player takes all the heat for
whatever it's standing on top of.)

--------------------------------------------------------------------------------
c3f9d69bae | DracoOmega | 2025-11-14 17:05:55 -0330

Fix damage punctuation for boulders hitting things (Planckenstein)

--------------------------------------------------------------------------------
07af34ee7d | DracoOmega | 2025-11-14 17:05:55 -0330

Fix some oddnesses with attacking while confused
If the player is stumbling around in confusion and attempted to attack an
ally that could not be harmed (eg: an ancestor), that attempt to take no
time, essentially allowing the player to freely reroll until they went
somewhere else.

Additionally, if they were wielding an unrand that might prompt for hurting
other allies (eg: the Arc Blade), this prompt would still be given while
confused, and aborting would consume no time. This allowed the player to
reroll their confused movement until they picked some step that did not
contain a monster.

Now, no prompts should be given for attacks while confused (beyond the
warning about moving while confused at all), and time should be consumed as
normal if the player was too impaired to realize their attack was
pointless.

--------------------------------------------------------------------------------
e245a6035f | DracoOmega | 2025-11-14 17:05:55 -0330

Remove a (hopefully) unnecessary safety hack
There are multiple levels of protection already in place to regress harmful
beams from friendly monsters before they hit the player (even if an ally
should somehow end up targeting the player directly with one, which
probably also can't happen by normal means).

--------------------------------------------------------------------------------
ee4e0f2e6a | DracoOmega | 2025-11-14 17:05:55 -0330

Heavily refactor handling of Sanctuary, adjust mechanics somewhat
Due to Crawl's code structure (and the many, many different codepaths by
which offensive actions could be taken by the player or monsters),
Sanctuary required an enormous number of special cases and there were still
a considerable number of oversights and arguably broken behaviors involved
with it. A partial list includes:
 -The player could still take damage when inside a Sanctuary from several
  spells, including: Polar Vortex, Plasma Beam, Manifold Assault, Foxfire
  (if you were on the edges of the sanctuary), OTR, Scorch, and
  Seismic Stomp. (This list grows even larger if a monster was targeting
  something other than the player.)
 -Monsters could still directly attack a player inside a sanctuary in some
  scenarios (despite several bits of code directly trying to stop this)
 -Allied monsters could attack other monsters even while both were inside
  the sanctuary.
 -Monsters would refuse to fire most beams while the player was in a
  sanctuary, even if those beams were neither originating from nor aimed at
  anything inside the sanctuary.
 -Even friendly monstes were unable to enter a sanctuary if they were
  outside it when it was first made.
 -Alarmingly, monsters were forbidden from casting many, many AoE spells
  so long as a sanctuary existed on the floor, regardless of whether the
  player was in it (or indeed, whether it was even in sight of them). This
  included things like Symbol of Torment, Call Down Damnation, Fire Storm,
  Chain Lightning, Blink Allies Encircling, Irradiate, and many, many more.
 -Almost certainly more things that I have since forgotten while working on
  this....

This commit attempts to run many more things through could_harm() to
outright prevent things inside a sanctuary from being harmed by even
idiosyncratic AoE effects, as well as removing many now-redundant sanctuary
checks, and hopefully making sanctuary-related oversights harder to make in
future. (There are admittedly still a lot of special-cases left, but
meaningfully fewer.)

The desired end behavior of this change:
 -Actors inside a sanctuary cannot be harmed by any means
 -The player cannot harm anyone, anywhere, so long as they themselves are
  inside a sanctuary
 -Monsters are allowed to cast spells within a sanctuary, so long as they
  are non-offensive (including healing, buffs, and translocations)
 -Non-aligned actors are no longer allowed to swap with each other inside
  a sanctuary. (The fact that the player could swap position with hostile
  monsters was opaque and unexpected behavior, and I think also no longer
  necessary in the new system).

As an example consequence, the player casting Shatter inside a sanctuary
will injure nothing. If they are outside of a sanctuary, it will be able to
injure anything *not* in a sanctuary (without causing damage to those
inside it).

Since it should no longer be possible to cause harm to anything within a
sanctuary, penance for doing so (and associated warnings) has also been
removed.

--------------------------------------------------------------------------------
0946d42690 | DracoOmega | 2025-11-14 16:39:48 -0330

Realize we can't place hostile monsters in sanctuaries earlier
The check that prevented non-friendly monsters from being created inside
a sanctuary happened *after* the spot to create a monster was randomly
selected, meaning that summon spells would irregularly fail (and produce
puffs of smoke) if used somewhere in the area of a sanctuary.

Instead, try to find a space outside the sanctuary first.

(This also allows wizmode to create monsters inside of sanctuaries instead
of also randomly failing.)

--------------------------------------------------------------------------------
d996096d00 | DracoOmega | 2025-11-14 16:39:48 -0330

Allow Gloom to pass through grates
It's hard to imagine something less impeded by metal bars than 'gloom'.

--------------------------------------------------------------------------------
7c18f2d850 | DracoOmega | 2025-11-14 16:39:48 -0330

Remove some code handling player-cast glaciate
This hasn't been player-castable for many years and that seems unlikely to
change any time soon.

--------------------------------------------------------------------------------
ca5a553c03 | DracoOmega | 2025-11-14 16:39:48 -0330

Allow a few more spells to work with Aphotic Marionette
Due to some recent changes (and some older ones), several spells that were
previously non-functional can now do something useful, so allow them to be
used.

--------------------------------------------------------------------------------
f43ca2e5fb | DracoOmega | 2025-11-14 16:39:47 -0330

Refactor never_harm_monster to be more general
A follow-up to 1dcf16d that is a bit more generalised, this extends the
same style of logic used to control the player shooting through special
allies to actors in general. shoot_through_monster() is now
shoot_though_actor(), never_harm_monster() is now could_harm() (with
inverted semantics), with could_harm_enemy() being added as shorthand that
folds in a common mons_aligned() check (ie: 'Is a given actor an enemy we
could harm?'

Overall, this requires fewer casts, but also allows (among other things)
marionettes to realize at higher level that they cannot harm the player,
allowing several monster spells to be cast via marionette more properly
than they used to be. Also, this is an important first step towards some
changes to Sanctuary handling in a subsequent commit.

I have also removed a number of redundant checks in player prompts which
are now already handled by bad_attack().

--------------------------------------------------------------------------------
777d238fb6 | DracoOmega | 2025-11-14 16:39:47 -0330

Attribute clouds made by marionettes to the player
This very slightly improves the XP the player would gain from things dying
to these clouds, but more significantly allows spectral mist made by
marionettes to produce spectrals belonging to the player.

--------------------------------------------------------------------------------
4ace342de6 | DracoOmega | 2025-11-14 16:39:47 -0330

Fix Fire Storm tracer sometimes hitting the player anyway
Fire Storm's radius is randomly rolled each time it is cast, but this meant
that the tracer could roll radius 2, think the player was out of range, and
then roll radius 3 on the actual spell cast, potentially blasting any
friendlies standing 3 tiles away (including the player).

Now, the tracer should always act as if it *might* explode with radius 3.
(Since monsters always aim the explosion at a real target, this doesn't
risk them entirely whiffing the spell.) Any similarly variable explosions
that monsters use should get similar treatment, but I can't think of any
that still exist at the moment.

--------------------------------------------------------------------------------
c5c8d07c1d | DracoOmega | 2025-11-14 16:39:47 -0330

Remove a long-unneeded special-case
Even before recent tracer changes, Hep ancestors have been able to shoot
harmlessly through the player for years now.

--------------------------------------------------------------------------------
af31bf409c | DracoOmega | 2025-11-14 16:39:47 -0330

Make friendly monsters entirely unwilling to catch the player in explosions
There's been a gradual push over the years to make allies entirely safe to
the player (or at least those allies that are not naturally expected to be
dangerous, like blazeheart golems or a ball lightning servitor), with
changes like cae8a03 and 330b8c2 removing many past ways to get blasted by
your own summons.

However, there was no special protection against explosive beams, merely
relying on the fact that default foe_ratio made it very unlikely an ally
would consider blasting you. Nonetheless, in rare situations, it was still
*possible* for an ally to fireball your face. Probably this isn't worth
generally preserving, and we can use a more sure-fire way to prevent allies
from choosing to damage you by directly vetoing harmful beams that would
hit the player at all.

It does make me a *little* sad to nerf the scary and somewhat iconic
double-edged nature of early Nem pan lord summons, but if we want to
preserve some of that for a few effects, it probably makes more sense to
use other (and more transparent) means.

--------------------------------------------------------------------------------
feaa1c56e2 | DracoOmega | 2025-11-14 16:39:47 -0330

Don't prevent allies you can shoot through from getting frenzied
Not that one is terribly likely to run into a monster that *can* frenzy
them at the moment, but it feels like this blanket exception is a little
weird.

(To be clear, casting Discord yourself will still ignore them; this only
affects hostile attempts to frenzy your allies.)

--------------------------------------------------------------------------------
b68d6efc65 | DracoOmega | 2025-11-14 16:39:47 -0330

Make spider form immune to webs
A shocking oversight, really.

--------------------------------------------------------------------------------
4169d6268e | DracoOmega | 2025-11-14 16:39:47 -0330

Majorly refactor handling of being caught in nets/webs
The code underlying throwing nets was complex and brittle, and relied on
a combination of both a status effect AND an actual throwing net item being
on the ground at the actor's feet, with particular properties to mark it
'fixed in place'. Many different parts of the codebase had to understand
that this net wasn't a 'normal' item and should not be interacted with like
a normal item, and even after all that it was sometimes possible to
disconnect the two and leave a net 'stuck' to the ground.

Webs likewise relied on the presence of a web trap at the actor's feet
(even when caused by spells like Ensnare). The effect of this was more
subtle, but meant that an entity ensnared on any tile besides plain floor
would always succeed on its next escape check, and print no message for
doing so.

This commit removes all reliance on net items on the floor (or real web
traps) to make the corresponding status effect work. Whether an actor is
trapped in a real net is stored in a prop, and escaping from the net can
simply create a fresh net item on the floor at the actor's feet when
appropriate. This allows for far more flexibility, and is less error-prone.
Single-use webs are also destroyed upon triggering, rather than upon
escaping, similarly reducing cleanup issues.

A small functional change is that !lignification no longer escapes from
webs and nets, and turning into a dragon no longer escapes from nets. The
latter is a leftover from when nets couldn't hold giant monsters, but it's
unclear why the former behavior existed at all.

(This also fixes some broken behavior with one of Xom's swap effects, which
was intended to switch the net/web status of the player and a monster, but
due to the brittleness of net code, would stick the player in an fake
web instead of a net anyway.)

--------------------------------------------------------------------------------
2cb0880afa | DracoOmega | 2025-11-14 16:39:47 -0330

Replace the last remaining use of actor::shove()
push_or_teleport_actor_from() performed a very similar function and was
used more widely.

(In fact, the last usage of monster::shove() was already removed 11 years
ago by cd26887 !)

--------------------------------------------------------------------------------
d4bace7e87 | DracoOmega | 2025-11-14 16:39:47 -0330

Tweak behavior of push_or_teleport_actor_from()
This method (used mostly for pushing actors out of solid terrain upon
terrain changes) had slightly weird behavior in that it pushed in a random
direction if there was a free adjacent space, but then would be push
non-randomly up to 7 tiles further than that, and then would teleport
randomly if even that failed. While unlikely, there is a very small chance
for the teleport to fail to move the player, so let's ensure this cannot
happen by iterating exhaustively (and fully randomly) instead.

Also, it was theoretically possible to displace the player onto liquids
they couldn't inhabit. I'm not sure it was possible to encounter this in
a real game, as nearly the only way to trigger this on yourself involved
flying over hellfire mortar lava as it sealed up (meaning lava was certain
to be fine).

--------------------------------------------------------------------------------
180034b4b9 | DracoOmega | 2025-11-14 16:39:47 -0330

Display that a monster can blink out of a net when throwing one (Darby)

--------------------------------------------------------------------------------
059ed57275 | DracoOmega | 2025-11-14 16:39:47 -0330

Tune up a monster net escape behaviour
Monsters caught in nets had an increased chance to cast Blink to escape
from them (if they knew it). But this chance was so small that it was
nearly pointless, and also didn't apply to spells like Blink Away or
Blink Range.

While this behavior was simply cut by 1034eac, multiple devs expressed an
interest in trying a more relevant version of it instead, so I have made
the chance much higher and also included other blinking spells.

--------------------------------------------------------------------------------
c9edd105b6 | DracoOmega | 2025-11-14 16:39:47 -0330

Allow monsters to swap with allies that are out of energy
The fact that monsters couldn't swap with a monster unless that monster
had enough energy to take an action of its own in that moment sometimes led
to weird-looking behavior where (for instance) an orc knight would just
stand helplessly behind a plain orc and never advance. This was generally
dependent on the mindex of the monsters in question: if the orc acted first
(even if that action was just to wait in place because it was stuck behind
other orcs), the orc knight would never be able to swap with it.

It's not entirely clear what benefit this logic has (being swapped with
already didn't consume monster energy, so this check alone can't prevent
a monster being swapped multiple times in a single turn), and already
needed special-cases to prevent even more broken behavior, so I am going to
try simply removing it altogether.

--------------------------------------------------------------------------------
6d4169bccd | DracoOmega | 2025-11-14 16:39:47 -0330

Don't require specifying degree in most mon_enchants
Enchantment degree was used by very few enchantments, yet the argument
order in the mon_enchant constructor required specifying one in order to
specify a duration or agent. Most enchantments passed 1 or 0 for degree,
effectively at random. But it seems silly to require a caller always pass
a parameter that will almost never do anything, so I've changed the
parameter order to put degree *after* agent and duration, and adjusted all
calls to it.

There should be no functional change with this commit.

--------------------------------------------------------------------------------
111d5278bd | DracoOmega | 2025-11-14 16:39:47 -0330

Make enchantment degree not decay by default and clean up
Few enchantments these days have a mechanically-meaningful degree, and
fewer still intend that degree to decay passively over time. But whether
many did or not was often a quirk of codepath (since adding a mon_enchant
directly never sets maxduration on its own, only paths that call
mon_enchant::set_duration(), which typically happens only for enchantments
using unspecified duration.

In fact, decay handling for Daze would result in an integer overflow if
we ever did try to decay its degree (but, by happenstance, we do not).

When I reviewed all uses of degree still in the code base, I found multiple
examples of superfluous code and only two cases where degree decays and is
also meaningful: poison and flux contam. Flux contam is too short for the
chance to decay from 2 stacks to 1 to matter much, but this behavior is
fairly fundamental to current poison. So I have opted to make degree decay
an 'opt-in' behavior (used only by poison now). I've also attempted to
remove all other superfluous uses of degree from the code, fixing at least
one message bug in the process (sticky flame had stopped saying that
monsters had become covered in it since the effect was revamped in 0.31!)

There should be no functional change beyond flux contam no longer sometimes
going from 2->1 stacks (it will still decay to 0 stacks over time).

--------------------------------------------------------------------------------
c4faae7fe3 | DracoOmega | 2025-11-14 16:39:47 -0330

Remove lose_ench_levels()
For the one remaining caller of this function, it didn't even work as
originally intended (recasting Imugami was fully cleansing poison rather
than merely reducing it by one level). But fully cleansing poison doesn't
feel overly strong and I don't think there's a good reason to preverse
this function just so it can heal poison slightly less well.

--------------------------------------------------------------------------------
ea8ce42e3c | DracoOmega | 2025-11-14 16:39:47 -0330

Don't check stealth twice when going upstairs instead of down
Going up stairs triggered two stealth checks, while going down stairs
triggered only one. This was unrelated to whether the player had been to
those floors before, and cared only about what direction they were moving
in at the time.

There seems no clear reason for this behavior (as the comment notes), and
I am removing it.

--------------------------------------------------------------------------------
00c221fe8c | DracoOmega | 2025-11-14 16:39:47 -0330

Tweak the player grace period upon taking stairs
Both the manual and hints mode claimed that taking unknown stairs would
guarantee the player a chance to act before any monsters on the other side,
but this was untrue. Taking unknown stairs was twice as fast as known
stairs, but that is importantly not actually instant, and it was still
fully possible for the player to get immediately clobbered upon arrival.

At the same time, new monster catchup behavior makes it more likely than
before that unforeseen monsters may have moved into range of a staircase
by the time of the player's return. Taking massive damage from threats the
player had no reason to anticipate isn't the most fun thing in the world,
so this is an attempt to add a little more generousity along the same lines
as the *intent* of 'the first time taking each stair is instant', while
making the manual no longer lie.

Instead of it mattering if you've taken a stair before, any monsters on the
other side of any stair and *which the player has never seen before*,
cannot act until the player does.

This does mean that it's a little safer than before in some ways to dance a
single staircase while making lots of noise, but fb472a01 also made it more
dangerous in other ways, so the hope is they balance each other somewhat,
while reducing unfair-feeling situations that were still possible with the
prior system.

--------------------------------------------------------------------------------
a6dda02a3e | DracoOmega | 2025-11-14 16:39:47 -0330

Don't leave afterimages of monsters that followed the player across stairs
Accidentally broken by c485ba435cc , memories of monsters that followed
the player between floors would still be displayed if you peeked back at
the floor they'd followed you from.

--------------------------------------------------------------------------------
0c20d95af2 | DracoOmega | 2025-11-14 16:39:47 -0330

Rewrite off-level monster catchup
The code that moved monsters upon the player returning to a previous floor
dated back to DCSS's initial revision (and had recieved almost no updates
since that time). While intended to be a fast and simple way to 'fake' time
passing in the player's absence, the logic it used was bizarre and outright
broken in many fundamental ways:

-Monsters approached their current target in straight lines based on the
 sign of the difference between their positions, resulting in many
 configurations (even straight hallways) being impossible to navigate due
 to immediately hitting a wall.
-Monsters could only move onto plain floor (no matter what types of terrain
 they were able to traverse), meaning (among other things) that a staircase
 surrounded by shallow water could never have monsters arrive next to it.
-'Ranged' monsters (including merely those with reaching attacks) that were
 within 2 tiles of their target would instead retreat directly away from it
 for as far as they could move. (This often resulted in monsters with
 polearms vanishing to the other side of a floor when the player returned
 to the level.)
-Monsters with many status effects that should prevent them from moving
 would nonetheless still reposition (such as doing so while petrified!)
-Monsters could be blocked by other monsters based entirely upon their
 internal ordering (resulting in bands often splitting apart).

While most of these behaviors were not widely known, a number of them are
actually exploitable in practical scenarios (such as forcing monsters to
flee from staircases, or knowing reliably that certain monters left on a
previous floor will be literally unable to reach a given staircase by the
time the player returns.) Also: they're complete nonsense.

This commit removes the old behavior entirely and replaces it by actually
running a small number of turns on the floor with the player absent (and
then decaying monster status effects and healing them for the remainder of
the time the player spent away). Most alternate methods of approximating
monster movement are error-prone (or extremely laborious to attempt), and
there is no clearer way to ensure that monsters take only possible actions
than to actually tell the monsters to take actions as they usually would.

This uses a similar idiom to Chei's Temporal Distortion (which is
relatively well-tested), with a few important differences:
 -During the off-level sim, monsters cannot take damage by any means
 -Confused monsters will not walk into terrain that could kill them
 -Monsters will move as if the player were still located at the position
  they left the floor and will not forget about them
 -If monsters actually reach the place the player left the level from, they
  will attempt to then move to some other position nearby, based on their
  threat range.

In practice, this means that monsters should largely continue to approach
as they would if the player had remained, which should make their behavior
more consistent and intuitive (while not allow the player to exploit things
like poison or confusion any more than they can at present). It should also
be far more future-proof regarding any effects or terrain that interfere
with monster movement, or monsters that behave uniquely.

This does result in monsters being more likely to encircle staircases (and
for monsters attracted by noise to approach while the player is away.) By
and large, this seems acceptable (and a subsequent commit should improve
fairness in those situations slightly).

(I will admit that doing full Chei-style timeskipping makes me a *little*
nervous I may be overlooking something, but I do think it's one of the
safer ways of ensuring consistent monster behavior, in principle.)

--------------------------------------------------------------------------------
b3c0f9ca8d | DracoOmega | 2025-11-14 16:39:47 -0330

Make starcursed masses amorphous
They sure look like they are.

--------------------------------------------------------------------------------
c89edf791e | DracoOmega | 2025-11-14 16:39:47 -0330

Make Drain Life never hurt allies (even if that ally is the player)
No longer a player spell in general, the fact that Drain Life could still
specifically harm the player, even if the caster was aligned, was a little
opaque (we never see it hurt allies!) and meant that friendly soul eaters,
(which are possible for both Nemelex and Makhleb powers to make) just
wouldn't do their main thing unless you had rN+++. So why not make it
always only hurt enemies?

--------------------------------------------------------------------------------
b8fa6236f7 | DracoOmega | 2025-11-14 16:39:47 -0330

Make timeout_enchantments() a little more sane
This function was used to 'catch up' monsters on a floor when the player
returned to it after some time away, for recalling off-level allies, and
also in a few cases to 'heal' status effects off a monster that was being
revived or full-healed.

But it was really weird. It was passed time in units of '100 auts', but
then decreased enchantment *degree* by this value, rather than actually
interacting with duration. Enchantment degree is only meaningful for a tiny
fraction of enchantments in the game (with nearly all of them using 0 or
1). This meant that unless you'd spent at least 100 aut away from a floor,
only a couple special-cased effects would time down at all, but if you
spent 101 aut, nearly all enchantments would immediately end (even if they
were supposed to last 10 times that long), *unless* it was one of poison,
draining, or daze, which could last many many times as long as they were
supposed to.

On top of this, the list of what things were decayed was a manually-created
list of enchantments that was constantly having oversights (resulting in
effects that never decayed this way). While this commit doesn't attempt to
tackle that problem in a general way, it does update the list with more
than 25 time-based effects that were missing. (A few of these are not
currently possible for a monster to get a non-infinite duration of, but
many are, and some others might in future).

The function now also works on a per-aut basis and callers have been
updated to treat it that way.

(Some special-cased handling for confusion will be addressed in a
subsequent commit that changes level catchup in general.)

--------------------------------------------------------------------------------
690ed68a1d | DracoOmega | 2025-11-14 16:39:47 -0330

Move some enchantment end effects to remove_enchantment_effect
Most messaging for monster enchantments wearing off is handled by
remove_enchantment_effect, but a handful of enchantments did it in
apply_enchantment_effect anyway. There's limited actual effect to this
move, but it does seem tidier.

The post-effect logic for frenzy and berserk was split between both
functions and is now entirely in remove_enchantment_effect. This has one
small consequence that a direct removal of berserk/frenzy will now slow
a monster, when previously that only happened upon timeout, but that feels
appropriate enough to me.

--------------------------------------------------------------------------------
2801cf3d31 | DracoOmega | 2025-11-14 16:39:47 -0330

Fix some weird duration issues with Bribe Branch
Monsters bribed by Bribe Branch do not change their loyalties with time
passing (so long as the bribe doesn't run out), but good-neutral bribes
nonetheless 'timed out' upon leaving and returning to a floor, resulting in
the monster becoming hostile again nearly immediately. Weirder, if the
bribe actually ran out while the player was off-level, the daction to
expire the bribe would run first, meaning that the monster would become
neutral instead of hostile.

Now off-level time should not result in different effects than on-level
time.

--------------------------------------------------------------------------------
b867c6d18c | DracoOmega | 2025-11-14 16:39:47 -0330

Relocate the contents of a confusingly-named method
mons_is_abyssal_only() was solely used to determine monsters that should
not be placed by Corrupt, and was somewhat confusingly named given that
multiple vaults specifically place these monsters outside of the Abyss.
In fact, some of these monsters couldn't be placed by Corrupt *anyway*!

--------------------------------------------------------------------------------
f48342733a | DracoOmega | 2025-11-14 16:39:47 -0330

Remove mons_is_native_in_branch(), tweak pathfind distances
This was an ad hoc list so ideosyncractically-defined that no one (even
devs) could be expected to know what was or wasn't on it. Cyclopses were
native to Shoals, but not water nymphs. Nothing was native to Swamp at all
(even Swamp Dragons)! Starcused Masses weren't native to the Abyss.

This list controlled two remaining things:

Human intelligence natives were immune to shafts and resistant to webs.
This effect has been removed without replacement (even when it did
anything, I think it mostly lead to confusion about *why* the shaft wasn't
working. I doubt there's enough shafts in the game for this to be a
problem, and we can reduce the baseline trigger chance if we feel the need
to.)

Being a branch native increased monster pathfind distance. This had a
meaningful (if subtle) gameplay effect and has been largely folded into
pathfind distance for all most monsters. (Very few brainless monsters were
native anywhere, and they remain with very low pathfind distance. However,
there were many examples of native animals and multiple branches entirely
full of native human intelligence monsters. This also may make a slightly
more distinct break between mindless and animal, with animals now having
full-LoS pathfinding in all branches while mindless remain very small.)

--------------------------------------------------------------------------------
dc47b62207 | DracoOmega | 2025-11-14 16:39:47 -0330

Don't let monsters sleep through being shredded with a diamond sawblade
This was somewhat hard to exploit in practice, since the noise of casting
the spell would generally wake any monster in range up. But with a
combination of Dith and the Cloak of the Thief, it was possible to slowly
kill a monster in its sleep this way.

--------------------------------------------------------------------------------
15507e982e | DracoOmega | 2025-11-14 16:39:47 -0330

Remove a pointless monster throwing ammo restriction
Did you know that a seeking monster would never pick up ranged ammo if it
was in a stack of less than 5? Despite ammo counts meaning nothing for
monsters and it being almost impossible for them to encounter ammo you
hadn't seen while also seeking you, anyway.

Well, now they can! (But they probably won't, regardless.)

--------------------------------------------------------------------------------
94005fd48a | DracoOmega | 2025-11-14 16:39:47 -0330

Tweak monster LoS-regaining behavior
Monsters are now somewhat more likely to attempt to maintain firing range
when moving around corners from out of LoS (this was reduced by 1c7284ab8
as a band-aid to redue flip-flopping behaviors that I think has been more
thoroughly handled by c9cf52d17), and monsters who have a threat range of
only 2 will not seek a firing position further away than that.

--------------------------------------------------------------------------------
0e023439a1 | DracoOmega | 2025-11-14 16:39:47 -0330

Make monsters prefer staying in LoS when approaching the player
There existed some fairly obscure behavior to make monsters prioritize
staying inside the player's LoS on the first turn that they come into view,
sometimes even forcing them to stay still if a subsequent move would take
them out of the player's sight again. This was originally intended to
prevent situations where the game would announce that a monster had come
into view, but there was nothing visible by the time the player's turn
came around.

Since 664b7f5ce, off-screen monster indicators would be shown even in the
rare situation where this happens, making this less important. However,
there are benefits to staying in the player's LoS when possible in other
scenarios; it's subjectively nicer looking, less confusing to newcomers,
and importantly, greatly reduces zig-zagging behavior with monsters trying
to maintain range when moving around blind corners.

(This is *probably* a very minor player buff, by making monsters more
likely to remain visible to shoot at, but it might also make breaking LoS
harder in some situations, so it's hard to be sure.)

--------------------------------------------------------------------------------
7ec163d275 | DracoOmega | 2025-11-14 16:39:47 -0330

Refactor mons_has_ranged_attack() to fix some profound pathfinding issues
mon_has_ranged_attack() was used for a number of significant
movement-related checks, but its logic effectively equated 'has an action
that can reach beyond 1 tile' with 'has an action that can reach anywhere
in LoS'. This had numerous negative consequences such as monsters with
polearms not bothering to pathfind around simple obstacles, nor retreat
from unreachable players pelting them with ranged attacks (since they
falsely believed they were already in range to strike back). And also some
more minor consequences like monsters sidestepping to make room for
polearms users in the distance behind them to... fire at the player?
(Despite the fact that they could reach over their head already, even if
they were in range.)

This commit replaces that method (and many other related ones) with
monster::threat_range() which can be used to approximate the range at which
a monster can perform some threatening action. Pathfinding now uses this
information to calculate a 'fallback' movement target if a monster's
desired target is not directly reachable, by instead looking for some
position close enough to at least threaten their foe. This information also
affects retreating behavior, and in general should make monsters appear to
act more sensibly in many situations - closing to useful positions instead
of just seeming to visibly give up.

This also affects the clua API slightly, exposing threat_range() to
replace monster_info::range(), which performed a similar function, and
removing references to the old and bad mons_has_ranged_attack().

Also minorly affects logic for what monsters will pick up launchers or
throwing weapons to attempt to ban them on monsters with attack spells
rather than specifically those with conjurations (and removing the ban on
summoners picking up launchers; they may end up with their LoF blocked, but
they're not actively counterproductive for them to have).

--------------------------------------------------------------------------------
bc05c46702 | DracoOmega | 2025-11-14 16:39:47 -0330

Don't hide monsters' alt weapon when not wielding it
If a monster is holding a launcher but has a melee weapon out (or vice
versa), the player can only discover this fact when the monster switches
weapons - often by immediately hitting them in the face with it. While this
is typically not an enormous problem, there are some edge cases where a
monster unexpectedly has a very strong melee weapon (ie: a seemingly-normal
centaur who hits you with The Dark Maul as soon as you get into melee range
of you). These aren't especially interesting surprises (since there's no
counterplay) and we already pre-reveal wands and similar small things, so
the current state is arguely not even internally consistent.

So now, just tell the player about launchers or melee weapons a monster has
that they aren't currently wielding. (This lets unusual item coloring work
with them, also!)

In keeping with this change, the 'launcher' and 'polearm' tags for the
monster list will now display if *either* of a monster's weapons meets that
criteria.

--------------------------------------------------------------------------------
63e3b956f0 | DracoOmega | 2025-11-14 16:39:47 -0330

Don't assert when casting Conjure Living Spells in the moncast test
I am not sure entirely why this stated to crash now, but I suspect it was
that moncast was previously not bothering to cast it at all. However, this
seems like a harmless fallback behavior for the spell in any case.

--------------------------------------------------------------------------------
2b82f4f208 | DracoOmega | 2025-11-14 16:39:47 -0330

Adjust monster cast logic regarding spell flags, fix some inconsistencies
spflag::utility had a rather unclear function and was used very
inconsistently (perhaps *because* it had an unclear function). The logic
that used it to prevent casting 'harmful' spells with a friendly target
was, as far as I can tell, superfluous in general (since tracers for
harmful spells would *already* rule out using them needlessly on
friendlies). And its other use (causing some spells to not making fleeing
monsters stop fleeing) was semantically incomplete.

This commit removes that flag entirely and revises some other parts of cast
logic to use clearer rules.

Friendly monsters will now cast spflag::recovery spells even when entirely
out of combat (instead of, say, a priest apostle just letting themselves
die to poison). They can cast spflag::helpful or spflag::selfench spells
when there are enemies nearby, but they have no hostile foe (often because
the player ordered them not to attack, but sometimes there are other
oddities that cause them not to immediately engage). This replaces some
special handling for self-enchants that prevented only *non-summoned*
friendlies from using with a foe, as well as a rather opaque 90% cast rate
reduction for friendlies not near battle (largely superfluous also, since
friendlies generally wouldn't cast anything in those circumstances for
other reasons).

I have also renamed spflag::area to spflag::harms_area to make its purpose
a little clearer, and removed it from a handful of spells where it had
inappropriate effects (ie: preventing allies from casting things like
Prayer of Brilliance or Injury Bond while Sanctuary was active.)

I also removed spflag::not_self from monster-only spells, where it had no
effect (in hope that specifying only those flags which serve a purpose will
improve code clarity a little).

Finally, I fixed a bunch of spells which had incorrect flags in other ways,
or meaningless range values.

--------------------------------------------------------------------------------
7fc45972c8 | DracoOmega | 2025-11-14 16:39:47 -0330

Fix some problems with threat assessment of monsters behind liquids
For purposes of autotravel and interrupts, Crawl tried to filter out
monsters that were 'harmlessly' on the other side of liquids and unable to
reach the player. The way it did this was somewhat ideosyncratic and had
several flaws, however:
 -It ignored spells which the monster could use to move itself or its
  allies, so long as the monster couldn't *walk* to the player (eg: jumping
  spiders on the other side of water would falsely be considered harmless).
 -It relied on somewhat brittle heuristic about what spells could actually
  do harm to the player.
 -It did not consider the player's own ability to move towards a monster,
  so flying or swimming players could autotravel directly into a monster on
  the other side of water, and might not even be notified until the monster
  hit them!

I think that sometimes injuring the player without warning is a much worse
sin than rarely interfering with autoexplore when a yak on an island is in
view, so I have simplified the ignore check to ignore *only* monsters on
the other side of unreachable glass and consider anything merely blocked by
liquids as potentially relevant. As a policy of many years, we don't make
vaults placing monsters on islands who have no ranged attacks (since even
if they didn't interfere with autoexplore, they present boring XP farming
opportunities). The few times this might happen as a result of natural
level generation are hopefully rare enough not to bother people.

(And despite being overly permissive in ways described above, our heuristic
was also too *conservative* in many situations, such as treating monsters
with a reaching weapon as if they could reach an unlimited distance. At
least now we'll be consistent.)

--------------------------------------------------------------------------------
69f1f526fc | DracoOmega | 2025-11-14 16:39:47 -0330

Fix Vhi's Electrolunge being extra-slow to cast
It would deduct energy from the monster for both casting the spell *and*
making a standard attack, making it effectively consume two actions. Now
it should only take as long as casting a spell.

--------------------------------------------------------------------------------
f989c5d953 | DracoOmega | 2025-11-14 16:39:47 -0330

Show in monster memory when the player sees a monster walk out of LoS
There are a number of circumstances where monsters can briefly dip out of
sight of the player while approaching or fleeing from them. One of the more
common takes the form of

.....o
@#....

where the orc may move diagonally back and forth on their way to the
player, sometimes being obscured by the wall and sometimes not. It's
generally entirely unambigious where they are if the player is used to the
game (and paying attention), but newcomers seem periodically confused by
this behavior (and why monsters 'disappeared')

But logically, the player character saw what direction the orc walked out
of sight, and we actually already deliberately show this information in
certain circumstances, like monsters swapping with other monsters at edge
of LoS (see da98dbce45c ). Given that this knowledge seems logical for the
player to know, and is usually unambiguous, I've opted to display the
standard 'out of sight' memory for monsters the player directly saw leave
their LoS in general. This may feel slightly weird at first, but hopefully
it improves the new player experience slightly and is generally helpful.

This commit also removes certain logic that does not appear to do anything
relevant anymore as far as I could tell by testing. (Though I could be
wrong!)

--------------------------------------------------------------------------------
e0dbe28a71 | DracoOmega | 2025-11-14 16:39:47 -0330

Don't let Throw Ally toss stationary monsters
This removes the need for the explicit tentacle check, since those are all
already stationary for a variety of reasons. But, hilarious as it is, iron
giants should probably not be throwing statues either.

--------------------------------------------------------------------------------
91e705779e | DracoOmega | 2025-11-14 16:39:47 -0330

Remove a (hopefully) now-unneeded check
This was added back when things like interlevel recall moved the player to
(0,0) to avoid messages, but such things should be handled by
msg::suppress these days, making this unnecessary. (I hope.)

--------------------------------------------------------------------------------
c021ccb42a | DracoOmega | 2025-11-14 16:39:47 -0330

Refactor constriction handling somewhat, fix a couple bugs
This unifies the seperate enchant/durations used to track Grasping Roots
and BVC into a single DUR_CONSTRICTED/ENCH_CONSTRICTED, and makes actors
store the means by which they are constricted in actor::constricted_type.
(Save compat code should properly handle upgrading the old enchants to the
new ones.)

This is both tidier for the existence of a future constriction type (which
would otherwise need to duplicate code yet again), but also fixes a very
long-standing issue where targets constricted by roots/BVC would count
against the constriction limit for melee constriction. In other words,
zapping a wand of roots at anything would prevent a naga from grabbing
*anyone* in melee until they all wore off. This was even true for monsters
with constriction attacks, and as far as I can tell, has been the case for
as long as ranged constriction has existed! Now, the game properly only
limits melee constriction by the number of targets constricted by your
melee.

In addition, this fixes a small number of message typos.

(A subsequent commit will fix several other constriction bugs, but that
will require an even larger refactor.)

--------------------------------------------------------------------------------
8fd22c6c81 | DracoOmega | 2025-11-14 16:39:47 -0330

Don't prevent monsters casting force lance at things they're constricting
While there's some arguable sense to stopping a monster from 'undermining'
its own constriction, it was still perfectly happy to undermine its allies'
constriction. Making it respect any source of constriction seems even more
potentially problematic (ie: allowing the player to use trivial
constriction to block certain monster spells), and being damaged and flung
across the room is probably worse for you in any case.

Given that this behavior was opaque and also virtually impossible to
encounter, it feels fine to me to just cut it.

--------------------------------------------------------------------------------
27738fd609 | DracoOmega | 2025-11-14 16:39:47 -0330

Make lua moninf:can_be_constricted() report something more sensible
If used to always report false if the player wasn't a naga or octopode with
currently available limbs to constrict more monsters - but still ignored
monster size despite this. (ie: can_be_constricted() would return true
for a hydra if you were an octopode, but false for a rat if you were
human.)

This doesn't seem like terrible useful semantics for anyone, so now it just
reports a monster's res_constrict() instead.

--------------------------------------------------------------------------------
1e625b39d5 | DracoOmega | 2025-11-14 16:39:47 -0330

Don't abort Polar Vortex on taking transporters or teleporting
This was a unintuitive leftover of much more complex translocations
interactions that this spell used to have. We don't cancel any other buff
the player has when they teleport (or even just step into a passage of
Golubria!), and there's no clear reason why we should cancel this one,
either.

--------------------------------------------------------------------------------
40ed476d4d | DracoOmega | 2025-11-14 16:39:47 -0330

Remove some unused messages
I am fairly sure it's been impossible to get these in-game since grey
draconians were made normal amphibious.

--------------------------------------------------------------------------------
74f6ad597c | DracoOmega | 2025-11-14 16:39:31 -0330

Fix a crash with running the test suite on a tiles build
I am not sure if there are scenarios where these fonts can be null outside
of that, but it can occur there.

--------------------------------------------------------------------------------
982c9fe40d | gammafunk | 2025-11-14 00:35:45 -0600

Don't discard Lua stack output in crash logs
The crash log handling tried to write the clua and dlua stacks to the
crash log, but accidentally wrote the output the stderr, where it
generally wouldn't be seen. Write this output directly to the crash log,
as this code intended.

--------------------------------------------------------------------------------
f20446e8b0 | David Lawrence Ramsey | 2025-11-13 20:00:34 -0600

Fix crash when looking up "serpent of hell".
In the help lookup.

If the serpent of hell we look up has no branch or no valid branch
specified, we now default to Gehenna instead of asserting.

(I don't know how the old routine got the right serpent of hell without
a specified branch before the monster lost "the " from its name, but
this does seem to work, and being able to trigger an assert by mistyping
a hell branch name is a worse problem.)

Closes #4905.

--------------------------------------------------------------------------------
ace6acc8d7 | David Lawrence Ramsey | 2025-11-13 19:15:18 -0600

Remove obsolete ref to SoH casting LCS in zh too.

--------------------------------------------------------------------------------
f6d26d3853 | David Lawrence Ramsey | 2025-11-13 16:52:03 -0600

Remove obsolete ref to SoH casting LCS.

--------------------------------------------------------------------------------
d1bae87cbb | David Lawrence Ramsey | 2025-11-13 16:41:53 -0600

Fix spell message lookups for "the " monsters.

--------------------------------------------------------------------------------
ac7b574f70 | David Lawrence Ramsey | 2025-11-13 16:07:35 -0600

Put 'prepended "the " removal' in its own func.
So that the same bit of code isn't copied all over the place. This uses
erase() instead of substr(), but should work the same way (and one
instance used erase() too).

--------------------------------------------------------------------------------
a2439a7204 | David Lawrence Ramsey | 2025-11-13 15:19:38 -0600

Fix key-based searches for "the " monsters.

--------------------------------------------------------------------------------
a1d8492f13 | David Lawrence Ramsey | 2025-11-13 14:49:12 -0600

Fix simulacrum movement messages again.
While "the " is usually tacked on properly, it needs to be removed for
this case.

--------------------------------------------------------------------------------
5a2a1e7401 | David Lawrence Ramsey | 2025-11-13 14:42:33 -0600

Remove "the " from Serpent of Hell help lookups.

--------------------------------------------------------------------------------
6eb87179c3 | David Lawrence Ramsey | 2025-11-13 11:17:03 -0600

Remove now-redundant monster enum setting.
Since the Enchantress, the Lernaean hydra, the Royal Jelly, and the
(Gehenna) Serpent of Hell now have names that match their enums.

--------------------------------------------------------------------------------
fd5d032a44 | David Lawrence Ramsey | 2025-11-13 11:04:12 -0600

Fix naming of the placed zombified Enchantress.
With "the " tacked on properly, "Enchantress" needs to be treated as an
adjective again.

--------------------------------------------------------------------------------
55c4f4719a | David Lawrence Ramsey | 2025-11-13 10:48:48 -0600

More properly fix "the " monster names.
So that e.g. corpses are handled as well.

This reverts commit 8f2be1da978432ed6379265058321079e8e48ce7.

--------------------------------------------------------------------------------
e5db3684d5 | Nikolai Lavsky | 2025-11-13 14:41:42 +0300

fix: Prince Ribbit zombie having a non-zombie tile (tekkud)
After 22f87b589, Prince Ribbit zombie looks too alive for an undead.

This commit gives him a human *zombie* tile instead.

--------------------------------------------------------------------------------
35e14e3077 | Implojin | 2025-11-13 05:24:56 -0600

Quiet a gcc warning [-Wmaybe-uninitialized]
Previously, if these circle_def initializers had been called with a
theoretical circle_type that was unhandled in this switch, they would have
then subsequently called init_bbox with an uninitialized radius, which
recent versions of GCC were unhappy about.

--------------------------------------------------------------------------------
ce413c7a67 | Implojin | 2025-11-13 03:44:42 -0600

Rename moninf cannot_move to cannot_act
The corresponding actor methods here were renamed in 47ca5a425f but the
moninf method was inexplicably left using the older naming.

--------------------------------------------------------------------------------
b3fd7c6d43 | RypoFalem | 2025-11-13 02:43:37 -0600

Fix messaging when paralyzing sleeping enemies (qwarkbark)
Previously when applying bolt paralyse to sleeping or petrified monsters
the log would print "Nothing appears to happen", which sounded like a
failure. This ambiguous messaging had been in place since ancient
crawl due to various bits of code previously not distinguishing between the
individual top-tier stab statuses, but these days paralyse has its own
status in the UI and we're free to be explicit about what's happening.

Here we fix this messaging, and tweak its wording to be clear about what
status is being applied.

[Committer's notes: Edited both the message and commit wording.]

--------------------------------------------------------------------------------
ab067d3732 | David Lawrence Ramsey | 2025-11-12 23:47:40 -0600

Add another triumphant Terence line.

--------------------------------------------------------------------------------
e2fda637c3 | regret-index | 2025-11-12 23:50:18 -0330

Some banishment + Doom Xom adjustments (adelrune)
* After the large refactoring of 6874458, one of the enum entries in the
  vector list of Xom's potential actions was filled with a function
  instead: xom_maybe_reverts_banishment. Due to being assembled as an
  enum at the start of loading up Crawl, this meant that Xom lost the
  capability to banish players entirely unless they started the game
  at the valid true banishment XL (>=6 with wrath, >=9 without). This
  should fix this up to re-enable Xom-sourced banishment for Xom
  worshippers (at an even rarer chance than previously), with slightly
  more likeliness of seeing pseudo-banishment as chance compensation.
  (There are some dev concerns of those XLs being spoilery magic numbers,
  but nobody ever needs to fully understand Xom in many other aspects,
  scaling Xom's threat level versus one's XL in other ways has succeeded
  heavily in making them more fun and popular in de-emphasizing
  unavoidable deaths, and pacifist Xom runs to avoid gaining XP are
  decidedly impractical anyway).

* Through the simplest solution of duplicating an entry and giving it
  some long documentation for such, Xom is now slightly more likely to
  apply Doom to the undead even more than they otherwise are for missing
  both drain and mutation effects. While there are further reworks to
  Xom still planned that should completely remove Xomscumming concerns
  entirely, this still seems fine for now both in terms of letting undead
  Xom worshippers see a reasonably-varied strategic damage system and
  in terms of mostly threatening scumming strategies (since the Xom Doom
  effect can't directly give banes without reaching boredom or wrath).

(While I'm here, I've also renamed the debug-side "bad mutations" effect
to the more accurate "random mutations", to help those reading the wizmode
Xom debug output. It's a little inaccurate- there's a bad mutation
guaranteed only if one's in wrath- but it should be less confusing than
implying Xom's raw bad mutation rate is that particularly high.)

--------------------------------------------------------------------------------
75fabc873b | Isaac Clancy | 2025-11-13 15:35:09 +1300

Fix looking up rock walls in Pandemonium
Searching for "rock" in the feature lookup menu while in Pandemonium
would show a list of features with one of them being "A wall of the
weird stuff which makes up Pandemonium" and no entry for rock walls.
The tile for this entry was missing and going into the entry would show
a description box that was blank apart from a single off centered full
stop.

As the rest of the feature search is independent of the branch you are
in (e.g. search for doors in crypt shows generic door tiles not crypt
ones) I think it's best to show the normal description for rock walls
while in Pandemonium.

--------------------------------------------------------------------------------
e6352ea329 | Isaac Clancy | 2025-11-13 14:02:22 +1300

Show actual feature tile flavour in more menus
Show the actual flavour of a feature in all menus that show a feature on
the map. For example when examining a dagger in an open door in crypt,
show the right door tile for crypt rather than a generic door tile.

--------------------------------------------------------------------------------
655ffec7b1 | regret-index | 2025-11-12 18:59:41 -0330

Micro vault review
Most notably, this clears up two bug reports from cool 3 / tekkud:
player-facing debug statements were left after bugfixing Trove books in
a086fab, and depth-scaling for ebering_necropolis_ghost_xom has been using
absdepth instead of dgn.persist.necropolis_difficulty() as far back as the
original Necropolis transfer in 72caabb.

--------------------------------------------------------------------------------
25542d231b | regret-index | 2025-11-12 18:59:40 -0330

Another small targeted vault batch
Four vaults: a Nemelex gimmick overflow and a Qazlal decorative overflow to
try and raise the average of the god-specific overflow altars up, another
Shoals decor vault since I'd like to have that branch get a decor
arrangement next to vary up Shoals:4 serial-rune-vault floors, and another
Abyss entrance vault to try and deal with a previous count of 9 being too
low for something that appear multiple times in each game.

--------------------------------------------------------------------------------
b7cf73b23f | regret-index | 2025-11-12 18:59:40 -0330

Move fire bats out of Depths lava and into D lava
Fire bats are essentially doing absolutely nothing in Depths in any real
threat capacity, aside from providing variety in a harmless-monster
fashion we've moved quite far away from over the past decade's worth of
branch updates. The weight of their cutting from Depths is given to the
other harmless Depths lava monster choices, fire elementals and molten
gargoyles, which also are unlikely to do much at the depth but which
provide some less-comically-weak variety versus the full Snake
salamander selection Depths uses.

Meanwhile, in a place that could always use more variety, I'm putting a
very tiny amount of fire bats to spawn in D:7-15, in the same depth as
when lava snakes start spawning and two floors past when the somewhat
comparable ice beast spawns (which have better AC and HP + rPois, but
worse speed). A fiery monster has been conspicuously missing from D for a
long while (outside of crimson imps, cut in 60f854e), and these can
easily fulfill such in the branch where we already prominently use bats
at a time where their statlines can actually be meaningfully relevant. It
does lower the novelty of Volcanoes very slightly, but those have more
than enough monster set options that I'm not nearly as concerned about
those as I've been with the earliest portals.

--------------------------------------------------------------------------------
7e2540d371 | David Lawrence Ramsey | 2025-11-12 15:53:34 -0600

Simplify all-name-related mask handling a bit.

--------------------------------------------------------------------------------
7925ddab22 | David Lawrence Ramsey | 2025-11-12 15:44:30 -0600

Add flag mask for all name-related flags.
Copied over from where they're all used in
mon-poly.cc:change_monster_type(), since such a mask could be useful
elsewhere.

--------------------------------------------------------------------------------
fbe7a93f4e | David Lawrence Ramsey | 2025-11-12 15:08:18 -0600

Disallow zombifying Grunn, since he's undead.
Closes #4898.

--------------------------------------------------------------------------------
33d5737683 | David Lawrence Ramsey | 2025-11-12 14:59:40 -0600

Update refs to "the " monsters in the database.

--------------------------------------------------------------------------------
a303eb1cfa | David Lawrence Ramsey | 2025-11-12 14:59:15 -0600

Update refs to "the " monsters in the tests.

--------------------------------------------------------------------------------
df6b5afb82 | David Lawrence Ramsey | 2025-11-12 14:45:46 -0600

Update more "the Serpent of Hell" refs I missed.

--------------------------------------------------------------------------------
8f2be1da97 | David Lawrence Ramsey | 2025-11-12 14:27:49 -0600

Properly add "the " for single monsters in view.

--------------------------------------------------------------------------------
bf86f010d4 | David Lawrence Ramsey | 2025-11-12 14:20:02 -0600

Update DES files for "the " uniques (oops).

--------------------------------------------------------------------------------
04421dc4fa | David Lawrence Ramsey | 2025-11-12 13:24:22 -0600

Reorder polymorphed unique checks a bit.
So that they're in the same order as name_zombie().

--------------------------------------------------------------------------------
dc246fff1a | David Lawrence Ramsey | 2025-11-12 13:19:32 -0600

Revert "Fix the message naming unique simulacra (#3887)."
Now unique simulacra are named as expected, since none of them have to
manually work around prepended "the ".

This reverts commit b736c3cf914cf80daadf080b12090c21b9cb5c5e.

--------------------------------------------------------------------------------
8a1c8ea48e | David Lawrence Ramsey | 2025-11-12 13:19:25 -0600

Improve handling of monsters with "the " names.
Flag them as such, and make use of it so that their names don't have to
start with "the " internally. The tooltips for them accordingly no
longer start with "the " either, but since their names are unique, this
is a minor change.

--------------------------------------------------------------------------------
2f27fca2f5 | David Lawrence Ramsey | 2025-11-12 12:42:24 -0600

Tweak formerly outdated comment again.
Since the player can create zombies, but not draugr.

--------------------------------------------------------------------------------
b1a7a50d98 | David Lawrence Ramsey | 2025-11-11 23:24:30 -0600

Add missing species to Gehenna Serpent of Hell.

--------------------------------------------------------------------------------
94ae4be39d | Isaac Clancy | 2025-11-12 16:24:22 +1300

Fix crash when Blork dies as a vengeance target
When worshipping Beogh and Blorkula kills one of your orcs, he will be
marked as a vengeance target. If you then beat him up and he turned into
bats, it would count as you killing the last vengeance target and end
your vengeance. When he then reformed (including reforming dead when you
killed his last bat) he would still count as a vengeance target which
would result in a crash when he died as you weren't under vengeance.
Instead, transfer the vengeance to the bats when he splits and then back
to him when he reforms.

--------------------------------------------------------------------------------
84510d75b0 | David Lawrence Ramsey | 2025-11-11 18:56:39 -0600

Fix spacing.

--------------------------------------------------------------------------------
ab8dd1b751 | David Lawrence Ramsey | 2025-11-11 18:56:35 -0600

Update an outdated comment.
Since undead skeletons are no longer a thing.

--------------------------------------------------------------------------------
8bcb7b9790 | David Lawrence Ramsey | 2025-11-10 23:25:27 -0600

Add another Donald line for Vehumet.

--------------------------------------------------------------------------------
c9a0f1e6c0 | guillaume | 2025-11-10 22:31:45 -0600

Add revenant's first spell to their library
This fixes an issue where revenants could have messages like
"You add the spell X to your library" when picking up parchment and books
for a spell that they already had learned. This also affected the book 
inspection
ui where the spell was both greyed out but not considered known.

--------------------------------------------------------------------------------
f84a12ef02 | Isaac Clancy | 2025-11-11 13:55:31 +1300

Fix crash when pending revival as a felid
When a monster tries to attack a dead felid player, we were canceling
the attack but not spending any energy. This caused the monster to try
taking infinite turns attacking which triggered an assert.

--------------------------------------------------------------------------------
a6f5bdc043 | David Lawrence Ramsey | 2025-11-10 16:57:21 -0600

Fix spelling.

--------------------------------------------------------------------------------
87edb97778 | David Lawrence Ramsey | 2025-11-10 07:59:10 -0600

Pluralise a weather name for artefacts.
So that it matches the other weather names.

--------------------------------------------------------------------------------
89123b03c1 | David Lawrence Ramsey | 2025-11-10 07:58:12 -0600

Add another instrument name to artefacts.

--------------------------------------------------------------------------------
72e09e7ad3 | Isaac Clancy | 2025-11-10 16:01:45 +1300

Fix felids receiving attacks while dead
Unlike monster's that count as dead while pending revival, the player
counted as alive. This caused them to to receive attacks while dead,
which usually didn't matter as most of the effects from the attacks were
cleaned up when reviving. However, not all effects are cleared on
reviving and you do end up with messages in the message log that don't
make a log of sense for a dead character. Instead, count felids that are
pending revival as dead and fix up any of the checks that should still
affect them (or a monster) when pending revival.

Fixes #4845

--------------------------------------------------------------------------------
0f358fb7c0 | David Lawrence Ramsey | 2025-11-09 15:51:15 -0600

Fix a Crazy Yiuf quote.
Properly transcribe the line from the Principia Discordia exactly as
written.

--------------------------------------------------------------------------------
b9efe5695e | RypoFalem | 2025-11-09 13:57:35 -0600

art: Make exclusions more readable
As someone that is partially colorblind, exclusions were very difficult
for me to read when placed over certain tiles. Shoals was the biggest
culprit since the exclusions are hard to make out on top of sand and
shallow/deep sea water tiles. Exclusions were also very difficult to see
when placed over lava tiles. To address this, exclusions were given a
transparent black outline and a central white gradient.

Exclusion tiles connected with each other in a way that made it
difficult to see where the center of a tile was, since the corners had
the same crisscross pattern as the centers. I've seperated the corners
so they are no longer connected. It's possible this might be more of an
issue with the background tiles not having clear edges in some cases but
this at least makes excluded zones easier to quickly evaluate.

[Committer's notes: I've tweaked the tiles in rypofalem's PR a bit to try
to help them stand out more in areas with red backgrounds like Volcano,
and edited the above commit message accordingly. If anyone reading this
has further suggestions or graphical tweaks to help colourblind folks,
they're always welcome.

Closes #4880.]

--------------------------------------------------------------------------------
ea88c4b8bb | David Lawrence Ramsey | 2025-11-09 09:04:31 -0600

Adjust description of the book of Transmutation.
Make it reference now-gone sludge elves, since they were known as
transmuters when both the species and the job existed in-game, and the
book has Fulsome Fusillade in it, which is thematically similar to the
now-gone Fulsome Distillation spell.

Also, at mumra's suggestion, replace the author's spider obsession with
a butterfly obsession, since spider form is currently accessible via
talisman, and butterfly form is not a thing at all.

--------------------------------------------------------------------------------
bbcba9398f | David Lawrence Ramsey | 2025-11-09 06:06:27 -0600

Mark transformed protean talismans as seen.
So that the talismans they transform into don't incorrectly get a higher
chance of acquirement if we haven't seen their subtype before.

--------------------------------------------------------------------------------
7d0d760c15 | David Lawrence Ramsey | 2025-11-09 05:48:17 -0600

Fix comment typo.

--------------------------------------------------------------------------------
e1e2a20661 | gammafunk | 2025-11-08 22:47:25 -0600

Don't use the deprecated `math.pow()` function
There's a built-in exponentiation operator already available in Lua 5.1.
We're hoping to convert to Lua 5.4 soon, and math.pow() is only
available there via a compile-time option. Instead of doing that,
convert the few uses of math.pow() to the ^ exponentiation operator.

--------------------------------------------------------------------------------
41f2f78647 | Implojin | 2025-11-08 21:56:38 -0600

Remove a duplicate dlua function
`you.silenced()` was setup to return the same information as both a clua
and a dlua function, but the clua bind is usable in dlua and there's no
reason to duplicate it.

--------------------------------------------------------------------------------
1aad769bac | Isaac Clancy | 2025-11-09 14:29:06 +1300

Fix bane of succour sometimes clearing xp tracking
When a monster was killed, bane of succour would heal it before we hand
out xp for the kill. If the monster died from banishment this could heal
it to full reseting its `damage_friendly` and `damage_total` that we use
to decide if the player should get xp for the kill. Fix this by not
healing the dead monster.

Fixes #4889

--------------------------------------------------------------------------------
7f5ec7c178 | David Lawrence Ramsey | 2025-11-08 18:20:01 -0600

Add another instrumental and weapon noise.

--------------------------------------------------------------------------------
02ecae1eed | David Lawrence Ramsey | 2025-11-08 18:11:44 -0600

Add another name for Hexes spellbooks.

--------------------------------------------------------------------------------
fd4135b882 | gammafunk | 2025-11-08 17:14:42 -0600

Fix a DES typo (Odds)

--------------------------------------------------------------------------------
c7442039ac | David Lawrence Ramsey | 2025-11-08 12:51:36 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
48a9863432 | David Lawrence Ramsey | 2025-11-08 12:47:27 -0600

Change other now-gone weapons' names internally.
To "old [weapon name]". This is done for the spiked flail, cutlass,
blowgun, and fustibalus.

This means that &o) with "s" in wizard mode will no longer produce the
now-gone spiked flail by default (there's more than one option for "s",
and you'll have to type in "old sp", at least, to get the spiked flail
specifically), and having all now-gone weapons' internal names start
with "old " is a more visible indicator that they're deprecated.

Closes #4890.

--------------------------------------------------------------------------------
c8256e9c32 | David Lawrence Ramsey | 2025-11-08 12:22:35 -0600

Change now-gone scythes'/hammers' internal names.
To "old scythe"/"old hammer," as is done for some other now-gone weapons
like TSO's specially blessed long blades.

With this change, looking up information on the current scythe (a.k.a.
redefined halberd) will show the proper stats of a halberd, and looking
up information on the current hammer (a.k.a. redefined mace) will show
the proper stats of a mace, in case any monsters ever wield hammers.
(I've verified that the latter works by temporarily making Sigmund do
so.)

Closes #4133.

--------------------------------------------------------------------------------
fab7be54b3 | RypoFalem | 2025-11-08 01:29:53 -0600

fix: Hep's ancestor names checking the wrong DB
They were generated every time. :c

[Committer's note: Adjusted commit message.]

--------------------------------------------------------------------------------
77d263c096 | David Lawrence Ramsey | 2025-11-08 01:08:16 -0600

Adjust punctuation in a god message.
So that we don't have "says" without a comma, and so that it's in the
same style as most other god messages.

--------------------------------------------------------------------------------
7c3e7ee1c7 | David Lawrence Ramsey | 2025-11-07 13:01:29 -0600

Search for/display created items w/DESC_DBNAME.
Using DESC_PLAIN adds articles, quantities, and enchantments to the
names, which won't produce accurate results for names including them.
(For example, putting in "+6 ring of slaying" at the "What type of
jewellery?" prompt in wizard mode's &o= prompt will silently produce
a +6 ring of strength.)

Also, looking up an item via a partial name creates and displays the
name of a dummy item with all of the matching item's major qualities
(including its plus) set to zero, which is inaccurate for items that
have their own non-zero default plus (e.g. rings of slaying). We
can't display the proper default plus at that point because the real
item hasn't been created yet.

Use DESC_DBNAME instead, which doesn't have articles, quantities, or
enchantments. You'll still have to pick up a ring of slaying created
via &o= and "slay" to see what its default plus is, but at least the
dummy item created and displayed beforehand will no longer display an
inaccurate plus of zero.

Closes #4886.

--------------------------------------------------------------------------------
1844fab789 | David Lawrence Ramsey | 2025-11-07 02:14:00 -0600

Fix indentation.

--------------------------------------------------------------------------------
4f141f716d | David Lawrence Ramsey | 2025-11-07 00:53:36 -0600

Add a few more writing adjectives and nouns.

--------------------------------------------------------------------------------
30376c0ee6 | David Lawrence Ramsey | 2025-11-07 00:33:43 -0600

Move colour patterns before coloured writing.

--------------------------------------------------------------------------------
5c53252f6f | Implojin | 2025-11-06 23:58:10 -0600

Fix an ldoc lua api comment (Omniraptor)
This should allow the `you.xl()` docstring to show up in the generated api
again.

--------------------------------------------------------------------------------
74d9ffc8be | David Lawrence Ramsey | 2025-11-06 23:56:47 -0600

Adjust a sparkling fountain decor message.
Make it pulsate any colour instead of any colour pattern, as the latter
can produce bad grammar with some patterns (e.g. it can pulsate "a
strange purple polka dots" or "a strange orange hieroglyphics").

--------------------------------------------------------------------------------
8fd88fbf24 | David Lawrence Ramsey | 2025-11-06 23:46:57 -0600

Add coloured writing as a colour pattern option.
Pull writing nouns and adjectives from the text used by the old Tome of
Destruction, with "faded" changed to "swirling" and "glowing" changed to
"jagged" to thematically overlap less with glowing colour adjectives.

This partially reverts commit 7c428e64889cc3b410080acbca99d6fb6fa891c1.

--------------------------------------------------------------------------------
f51bd3897e | David Lawrence Ramsey | 2025-11-06 23:33:53 -0600

Move glowing colours before colour patterns.

--------------------------------------------------------------------------------
7087b09c79 | Isaac Clancy | 2025-11-07 17:58:59 +1300

Fix warning about redefining integer limits in MSVC
We were checking if the c language version was at least c99 otherwise we
were defining our own integer limits. However, we were doing this in a
c++ file and MSVC doesn't define a c version when compiling c++. We
can't use a c++ version check either as MSVC always defined its c++
version as before c++11. Instead skip defining these limits if the c
version is high enough or if compiling with MSVC.

--------------------------------------------------------------------------------
5523e3846a | Isaac Clancy | 2025-11-07 17:06:07 +1300

Don't leak info about polar vortex casters
Polar vortex clouds have a phase that is based on the caster's location
or random if the spell has ended. This could help locate the caster
after teleporting away or otherwise moving out of sight (although if
playing tiles you had to reload the game to get out of view clouds to
update their phase due to a bug). Instead, only update the phase of
polar vortex clouds you can see, so you only gain information from in
view clouds.

--------------------------------------------------------------------------------
f391d15d98 | David Lawrence Ramsey | 2025-11-06 20:14:22 -0600

Describe conditions for sniping ego (RypoFalem).
This ports the text change from #4745 (plus a spelling fix) to current
trunk.

--------------------------------------------------------------------------------
21ff419876 | Implojin | 2025-11-06 18:55:27 -0600

feat: Rampage stacking
Here we let most sources of rampage stack up to 3, with the appropriate
handling for the overlay UI and Armataur rollpage regen. Stabs are
enabled(!) for stacked rampage under the reasoning that players still have
to find and equip multiple sources of rampage to benefit from this, which
is far from guaranteed in any given game.

Should multi-tile sleep stabbing prove too powerful we can revisit the
chance to wake as a function of distance travelled in the future, but for
now I'm fully enabling stacked rampage stab behavior.

Seven-league boots still have the special-cased no-sleep-stab behavior for
now, as they get all of their rampage from one slot.

Enjoy folks!

--------------------------------------------------------------------------------
bd72e070ad | David Lawrence Ramsey | 2025-11-06 17:05:53 -0600

Add another Xom "send in the clones" message.

--------------------------------------------------------------------------------
8cfb72bb48 | David Lawrence Ramsey | 2025-11-06 17:05:42 -0600

Fix comment typo.

--------------------------------------------------------------------------------
40b86555ee | David Lawrence Ramsey | 2025-11-06 16:45:15 -0600

Adjust orange crystal wall description.
To differentiate it a bit from ordinary crystal, as is done for white
crystal already.

--------------------------------------------------------------------------------
cd5996bbb5 | David Lawrence Ramsey | 2025-11-06 16:28:43 -0600

Remove now-unused pink crystal wall description.

--------------------------------------------------------------------------------
41b0740ec8 | David Lawrence Ramsey | 2025-11-06 16:28:34 -0600

Remove the other Nemelex pink crystal wall desc.
So that it really is no longer used in the othe vault.

--------------------------------------------------------------------------------
fb9580d432 | David Lawrence Ramsey | 2025-11-06 14:49:09 -0600

Revert "Properly use pink crystal wall desc."
This reverts commit c2427cda9cbcef240201f71ecc8d0e0404416a28.

It was no longer used in the other vault, and the color of walls
shouldn't be specified by default.

--------------------------------------------------------------------------------
467a078616 | Implojin | 2025-11-06 10:06:13 -0600

Remove an extraneous semicolon (gammafunk)

--------------------------------------------------------------------------------
1034eacce1 | Implojin | 2025-11-06 07:23:45 -0600

Remove a netted monster blink check
Since 2e68b5db91 (2014), monsters with SPELL_BLINK have had a 1/15 chance
to cast blink instead of their other spells if caught in a net/web. This
had minimal impact on monster behavior, so here we simplify it out.

(These mons will still try to cast blink while netted, but using their
otherwise-normal weighting.)

I did consider approaching this from the opposite direction, and instead
*increasing* the chance while expanding these escape spells to include
things beyond blink, but the end result of that would have been that
players with nets would need to be much more aware of the specifics of the
spellsets their net targets. This expected UX of incentivizing players
to press xv before huckin' nets seems like it would make for worse
gameplay, so I'm not doing that.

--------------------------------------------------------------------------------
6529974544 | Implojin | 2025-11-06 03:50:38 -0600

Remove actor ground_level methods
These were added in db74bba88a (2011) to support clinging, which was
removed in 53d2a09ee0 (2019), and have since stuck around as rump methods
that needlessly duplicated airborne.

--------------------------------------------------------------------------------
6a4db99097 | Isaac Clancy | 2025-11-06 21:01:49 +1300

Skip setting useless skills in fsim (pooka109)
defence fsim by default estimates the damage you would take with various
levels of armour skill. However, some races can't train armour and
trying to set its level results in a crash. To fix this, don't try to
set the level of useless skills as they won't have any effect anyway.

Fixes #4875

--------------------------------------------------------------------------------
b63a3c07f7 | David Lawrence Ramsey | 2025-11-05 22:07:56 -0600

Add assert for now regarding Zot runes.
The routine used when putting Zot runes into the gate lock assumes
exactly three runes, so assert that it's equal to three. If the number
of runes needed to enter Zot changes, it'll need to be fixed manually.

--------------------------------------------------------------------------------
87cdf11214 | Isaac Clancy | 2025-11-06 16:50:53 +1300

Fix clearing some remembered foreground tiles
Remembered monster and cloud tiles would be incorrectly cleared for
squares in LOS range that weren't in LOS. This was broken in
commit b2c7929

--------------------------------------------------------------------------------
c674a984dc | David Lawrence Ramsey | 2025-11-05 21:45:10 -0600

Adjust the Zot minimum rune message.
Use the #defined number instead of hardcoding "three".

--------------------------------------------------------------------------------
840e72858f | David Lawrence Ramsey | 2025-11-05 20:57:39 -0600

Fix warning.

--------------------------------------------------------------------------------
f5dcfa5417 | David Lawrence Ramsey | 2025-11-05 20:52:37 -0600

Properly use #defines for rune counts.
Use ZOT_ENTRY_RUNES instead of hardcoding 3, and add a MAX_RUNES defined
as 15 instead of hardcoding 15.

The Xom routines checking for rune counts are odd; given the original
numbers, I'm assuming the rune counts (and all divisors used on them)
are supposed to be relative to the number of runes required for Zot,
which should produce the same results as before as long as that number
stays 3.

--------------------------------------------------------------------------------
619a04b5ed | David Lawrence Ramsey | 2025-11-05 20:52:37 -0600

Don't hardcode max rune count in title checks.
Use you.obtainable_runes instead.

This also means that Sprint modes with max rune counts other than 15
will be able to get these titles.

--------------------------------------------------------------------------------
b2c792946c | Isaac Clancy | 2025-11-06 15:18:38 +1300

Remove a no longer needed tile cache
We had a cache for tiles of squares in view and another one for all
other tiles. This allowed us to easily set tiles to unseen as they
exited view in the Labyrinth branch by never writing them to the out of
view tile cache (Labyrinth no longer exists), replace mcache reference
tiles for monsters out of view with generic ones (but the bug that
caused us to do this is gone and we no longer do this), and support the
clean_map option (which no longer exists). As none of these reasons for
keeping the two separate caches exist anymore it should be fine to just
use one cache for all tiles.

The cache for tiles in view stored tiles within a radius of 8 from the
player and was indexed with coordinates that were relative to the
player. This meant it would become invalid after the player moved if it
wasn't updated and was sometimes leading to a crash in webtiles when
drawing parchments. Using a single cache indexed by grid coordinates
should fix this.

--------------------------------------------------------------------------------
f7b759ce7b | David Lawrence Ramsey | 2025-11-05 17:36:01 -0600

Add another Orb of Zot greatness adjective.

--------------------------------------------------------------------------------
c2427cda9c | David Lawrence Ramsey | 2025-11-05 17:25:18 -0600

Properly use pink crystal wall desc.
Make sure it's in both Nemelex overflow altars with goblin sharpers.

--------------------------------------------------------------------------------
50789deb7c | David Lawrence Ramsey | 2025-11-05 16:37:40 -0600

Remove unneeded brackets and breaks.

--------------------------------------------------------------------------------
e1813ad4d6 | David Lawrence Ramsey | 2025-11-05 16:35:15 -0600

Fix missing brackets.

--------------------------------------------------------------------------------
46577a27f7 | Index | 2025-11-05 17:35:53 -0330

fix: overflow vault cloud typo (srcrip) (#4878)
Fixes the placement of decorative thin mist clouds.
--------------------------------------------------------------------------------
7640476e91 | RypoFalem | 2025-11-05 15:02:04 -0600

fix: overflow vault cloud typo (srcrip)
Fixes the placement of decorative thin mist clouds.
--------------------------------------------------------------------------------
c492a03308 | Isaac Clancy | 2025-11-06 09:19:29 +1300

Unify status icon sizes between web and local tiles
Webtiles had a list of widths of status icons in a javascript file and
localtiles had a similar list in a c++ file. However, the localtiles
list was missing a lot of entries and there were some minor differences
where one of the lists had an incorrect value.

The reason for the missing values in the localtiles list is that it had
a default value and you couldn't tell if this value resulted in bad
spacing between the icons without having multiple icons on a monster so
it was often missed when adding a status icon. Webtiles on the other
hand just doesn't show a status icon if it doesn't have a width for it
which resulted in widths being added to its list when it was noticed
that the status icon wasn't showing up in webtiles.

To fix these problems, move the list of status icon widths to a text
file and generate the javascript and c++ lists from this. Also, give an
error message in the message log when trying to draw a status icon
without a width in localtiles. This should allow testing a new status
icon in either web or local tiles and have it just work in the other.

--------------------------------------------------------------------------------
a086fab39d | regret-index | 2025-11-05 15:31:23 -0330

Yet more catch-up vault review
 * Another line-compressing simplification function has been added to
   vault.lua and spread around, `single_cloud(_G, glyph, cloud, fade)`,
   which provides two different settings for a cloud generator that never
   leaves the one spot and is relatively consistent at being always or
   nearly always present.

 * Pre-lair Necropolis subvaults using generic D enemies now heavily
   specify the majority of their contents. While this was done for the
   sake of rock fish escaping, it also avoids a few other annoyances,
   like the optimality of checking for the slim chance of early unseen
   horrors if one can identify subvaults as themeless, or moving around to
   try and make efreet fire trails kill other monsters before engaging a
   given subvault. (It may be reasonable to further investigate preventing
   e.g. all wall-walking monsters from spawning in Necropolis entirely, as
   the only real troubled area regarding explicitly optional sections such
   behaviour can break, but this should function fine enough for now and
   is needed to handle those other cases.)

 * Trove magic item handling now accomodates Djinn properly to exclude
   books and nonfunctional orb types, and also allow one to get a fair bit
   more orb randart type variety than previously. This somewhat addresses
   #4860, though that issue also brings up heavy armour trove drops for
   mages that are too impractical to assess versus stats / skills /
   species beyond what acquirement and trove_ego_gen_armour already tries
   to handle.

 * nicolae_gauntlet_exit_dead_adventurers no longer uses delayed_decay
   arrangements for its skeletons as was made unnecessary by 7d43067.
   A small amount of its species have been also swapped around to use
   player species not often seen in the Dungeon, to try to emphasize
   it more as using player adventurers rather than just some random
   dead people.

--------------------------------------------------------------------------------
12d9f381c8 | Isaac Clancy | 2025-11-05 19:54:42 +1300

Don't use std::map::emplace
The compiler used on the CAO server doesn't seem to support it, despite
it being added in c++11

--------------------------------------------------------------------------------
4c144b85d4 | David Lawrence Ramsey | 2025-11-04 17:10:09 -0600

Use you.can_smell() in yet another book desc.

--------------------------------------------------------------------------------
49d8bdc294 | David Lawrence Ramsey | 2025-11-04 17:04:23 -0600

Fix capitalisation.

--------------------------------------------------------------------------------
27f6de1879 | David Lawrence Ramsey | 2025-11-04 17:03:36 -0600

Properly use you.can_smell() in a book desc.

--------------------------------------------------------------------------------
413a5d0b54 | David Lawrence Ramsey | 2025-11-04 16:53:06 -0600

Fix spelling.

--------------------------------------------------------------------------------
dc3f23da28 | David Lawrence Ramsey | 2025-11-04 16:26:16 -0600

Fix spelling.

--------------------------------------------------------------------------------
a38744c2c0 | David Lawrence Ramsey | 2025-11-04 01:15:30 -0600

Add another Uskayaw ghost line.

--------------------------------------------------------------------------------
4b5df66c0b | Implojin | 2025-11-03 18:42:13 -0600

Calm down MUT_BERSERK (Lici)
Reduce berserkitis' random mutation weight to zero as it was otherwise
removed in 143df15cc6.

--------------------------------------------------------------------------------
baffcba723 | DracoOmega | 2025-11-03 11:14:11 -0330

Give Slaughter form rMiasma (Acrobat)
It hadn't actually ocurred to me that demons all naturally had rMiasma
(even if not poison-immune) and this seems a harmless buff.

--------------------------------------------------------------------------------
a6fc723709 | Implojin | 2025-11-03 05:22:38 -0600

Fully remove a function
Forgot this in f77e99c820, oops.

--------------------------------------------------------------------------------
f77e99c820 | Implojin | 2025-11-03 05:06:29 -0600

Simplify Vehumet spell gift weighting
The root cause of the Vehumet crashes in 5347199fb9 was actually that
some Vehumet spells were tagged as destructive and thus supported by
Vehumet, but didn't have their spell schools present in Veh's list
of supported schools. The code determining this was both buggy and
overcomplex for no good reason; it was only being called in one place.

Here we simplify this by removing the notion of Vehumet supported schools
entirely: If a spell returns true from `vehumet_supports_spell()`, we now
assume that whatever schools it uses are destructive enough to be
accounted for when checking Vehumet spell gift weights.

In practice, the difference here is that now Forgecraft spells with
spflag::destructive will show up as Vehumet gifts more frequently, as
their gifting weights will no longer return 0.

(We do retain the averaged school weighting from 71ebbbb606 here.)

--------------------------------------------------------------------------------
5347199fb9 | Implojin | 2025-11-02 22:10:01 -0600

Fix a Vehumet div by zero crash (Jarek1)
71ebbbb606 introduced a crash where characters with zero in all spell
skills taking Vehumet would cause the game to divide by zero as it tried
to issue their first spell gift and came up empty.

--------------------------------------------------------------------------------
422f7dc91f | Isaac Clancy | 2025-11-03 16:49:33 +1300

Say when targeting an immune monster with lesser beckoning
When targeting stationary monsters (e.g. tesseracts) it would tell you
that you had a 100% chance of hitting rather than telling you that they
are not susceptible.

Resolves #4760

--------------------------------------------------------------------------------
3b4e6100cc | Isaac Clancy | 2025-11-03 16:28:01 +1300

Change lesser beckoning message when target immune
when hitting an immune monster with lesser beckoning, it should tell
you that the monster is unaffected. However, it was giving the generic
nothing appears to happen message as the beam code didn't know when a
monster is immune to it.

--------------------------------------------------------------------------------
a5e1a6726e | David Lawrence Ramsey | 2025-11-02 17:30:29 -0600

Fix low-HD monster staff damage display (#4654).
Staff damage should never be less than zero, since the actual staff
damage formula is never less than zero (it only uses random2() and
addition).

--------------------------------------------------------------------------------
4a20da8d68 | David Lawrence Ramsey | 2025-11-02 14:27:53 -0600

Fix spacing.

--------------------------------------------------------------------------------
0efa743828 | David Lawrence Ramsey | 2025-11-02 11:41:48 -0600

Fix delay info leak on artefact heavy weapons.
The dummy weapon that has the original weapon's heavy brand replaced
with a normal brand now *also* has the normal brand set if it's an
artefact, so that get_weapon_brand() will properly return SPWPN_NORMAL
instead of SPWPN_HEAVY for the latter case.

Closes #4708.

--------------------------------------------------------------------------------
ba974f2ec1 | Andrew | 2025-11-02 10:27:31 -0600

Fix wildshape skill estimation for talismans
Resolves #4873.

[Committer's note: Adjusted commit message.]

--------------------------------------------------------------------------------
71ebbbb606 | CrawlOdds | 2025-11-02 08:30:22 -0600

Update Vehumet's gift weighting to consider averages
It seems wrong that we are more likely to offer multischool spells;
e.g. offering Chain Lightning more than MCC to a mage with 20 air magic
and 5 conjurations feels off. So we update the weighting to consider the
average skill of (revelant) schools, rather than the sum.

Since Veh's spells average around 1.6 schools, we then increase the
weight of the preference by a similar amount so that on average we
should get about as many relevant gifts.

Also do a light cleanup and rename of destructive_elemental_preference,
since we probably won't want the elemental-only version of this function
again.

--------------------------------------------------------------------------------
80420c0373 | Implojin | 2025-11-02 06:49:35 -0600

Fixup some clua api documentation
Previously, the api docs for you.activate_ability and spells.path were
mangled due to some ldoc formatting errors in their comments.

Also, spells.path actually defaults to `aimed_at_spot = true`.
Is this intentional?

--------------------------------------------------------------------------------
ca97a521a3 | Implojin | 2025-11-02 06:49:35 -0600

Remove a clua make api you.ability_table reference
This was missed in 0e37d8b8bd.

--------------------------------------------------------------------------------
dcfe8ede59 | David Lawrence Ramsey | 2025-11-01 18:35:17 -0500

Tweak Blorkula's msg for re-forming from one bat.

--------------------------------------------------------------------------------
bd74d31c32 | David Lawrence Ramsey | 2025-11-01 17:35:14 -0500

Fix messaging for surrendering bat-form Blorkula.
Display a message indicating he's re-formed into an orc just before
surrendering instead of showing it silently.

Closes #4137.

--------------------------------------------------------------------------------
7c2f555ffa | Isaac Clancy | 2025-11-02 11:20:54 +1300

Don't insert empty entries in tile_env.icons
tile_env.icons is a std::map so when we used its array index operator to
get an element by key it inserts a default constructed element if there
wasn't an element in it with that key already. This results in it always
having an element for every square in sight, rather defeating the
whole reason for using a map. Instead we should use its `find` method
which doesn't insert elements.

--------------------------------------------------------------------------------
464970fc77 | CrawlOdds | 2025-11-01 12:10:41 -0500

Fix phantom tentacles
These were broken in the case of cloning an eldritch tentacle which had
moved, because the base position was being cloned.

--------------------------------------------------------------------------------
47010ebcb2 | David Lawrence Ramsey | 2025-10-31 19:31:23 -0500

Allow &% in wizmode to produce excluded items.
create_item_named() is currently only used in wizard mode, so it now
always creates the specified item regardless of whether it's excluded.

Closes #4422.

--------------------------------------------------------------------------------
97ec47c46e | David Lawrence Ramsey | 2025-10-31 17:42:51 -0500

Add another real song to the Singing Sword.

--------------------------------------------------------------------------------
37a67de41f | David Lawrence Ramsey | 2025-10-31 17:21:49 -0500

Destroy shafts when pacified monsters use them.
As is done with shafts everywhere else.

Closes #4356.

--------------------------------------------------------------------------------
c4a3910f1f | David Lawrence Ramsey | 2025-10-31 16:20:47 -0500

Identify items created via &% in wizmode.
Closes #4420.

--------------------------------------------------------------------------------
7f5091ce2d | David Lawrence Ramsey | 2025-10-31 15:45:45 -0500

Fix FTILE entry.
So that the special flooring is also under the door, the glass walls,
and the monster, as is done in the zin_angel vault.

--------------------------------------------------------------------------------
400cb8a32e | CrawlOdds | 2025-10-31 12:59:42 -0500

Fix log on zero contamination
The contamination level for small amounts of contamination is zero,
so this was not triggering.

--------------------------------------------------------------------------------
108ed1e39b | David Lawrence Ramsey | 2025-10-31 15:22:36 -0230

Add another Nemelex overflow altar (#4852)
This has the goblin sharper on its own, without the Zin angel.

[Committer's notes: Mildly lowered the weight, due to the vault using
distinct decorative tiles, a special decorative statue type, and a
nearly-unique talkative monster. This isn't inappropriate for the excess
one can attach to the gambling-themed Nemelex, but it's enough that I
want to hold back just a _little_ on it.

Merges #4852.]

--------------------------------------------------------------------------------
83739b9f38 | regret-index | 2025-10-31 15:22:36 -0230

Tweak some monster elemental spell text
 * "Fire Summon" is an awful name for a top-tier spell cast by two
   seperate demon lords guarding runes of Zot- it's about as bad as if
   Dispater had a unique spell called "Earth Conjuration". In anticipation
   of other possible high-level elemental group summons for randlords in
   the future, I am renaming the spell to "Hellfire Court"- a precedent
   set up by Hellfire Mortar as well as a nod to long-past older names for
   2/3 of the summons' attacks. It also now actually has a cast message,
   instead of just "Cerebov gestures." (Really, most summon spells could
   probably do with such?)

 * Beckoning Gale's damage number on monster displays is now light gray
   instead of dark gray, matching the colouration of Airstrike.

--------------------------------------------------------------------------------
42ad3b43e5 | regret-index | 2025-10-31 15:22:36 -0230

Let wizmode make food caches (Monkooky)
The internal vaultname for food caches didn't use underscores like other
features do (e.g. altars, fountains), which made &( unable to make any of
them (as it'd fill in spaces with underscores). Since this was already
an inconsistent approach between feature names, I've changed those internal
vaultnames for fruit, meat, and baked caches to use underscores, which
requires far less effort than it looks to produce such consistency and
let wizmode access them both.

--------------------------------------------------------------------------------
143df15cc6 | regret-index | 2025-10-31 15:22:35 -0230

Remove berserkitis (DracoOmega)
The majority of other bad mutations are substantially less lethal than
constantly having to monitor one's combat actions later on to avoid
situations where the slim chance of going Berserk also disabling
consumables, invocations, and spells can directly result in one's death.
(It also can be very lethal when received mid-combat without noticing it,
which makes it fairly awkward to always make an option for malmutators.)
As a downside, it strongly encourages tedious luring far more directly than
the generalized maluses of other mutation or equipment penalties, since
there's far less need to escape when berserk provides net direct help with
one-on-one combats. As a mechanic, the mutation directly overlaps with how
randarts already have *Rage as a direct re-use, which somewhat function
with a much higher chance to happen there as one thus opts into.

Berserkitis may have been kept for a long time for legacy reasons, but
as both the spree of good mutations over the past few versions and the
new elemental orb monsters demonstrate for strategic damage, there's
enough design space still left in downsides we can reasonably come up with
more for the sake of mutation variety. (We could even plausibly have more
mutations that specifically worsen melee combat enough to get the one
positive component of berserkitis, in making characters rely more on
Throwing and Evocations when particularly endangered).

Outside of that one positive bit, however, berserkitis as a mutation is
inherently troubled enough that multiple devs would prefer to cut it
entirely and work on new bad mutations instead. Such work, alongside more
review for the other large outliers of dangerous mutations, is slated to
be done relative soon this version.

--------------------------------------------------------------------------------
2e23940ace | regret-index | 2025-10-31 15:22:23 -0230

Cut Reckless's SH penalty in half (DracoOmega)
After a fair bit of discussion between various experienced players and
developers, it's been made reasonably clear that the same inconsistencies
of effects between characters that moved Reckless from a Bane to a
mutation is still somewhat dissatisfying for heavily affecting some
characters more than others, especially with the orb rework making some be
a reasonable choice for casters. (Two-handers may be more attractive with
future new systems, but such systems still won't offset the immediate
penalties of losing a bigger shield.) To preserve the spirit of the
mutation, and to try and continue establishing bad mutations as having
middle grounds between Dex-2 and teleportitis, this cuts the shield
penalty in half- enough that one can tough it out, but also still feel a
difference between having invested into a buckler or a tower shield.

--------------------------------------------------------------------------------
16059fb7c2 | CrawlOdds | 2025-10-31 12:37:50 -0500

Allow igniting poisoned allies
The tracer codepath in cast_ignite_poison was being used in two
different ways - to decide if the spell was useless, and to check if
monsters should cast it. These wanted different criteria, and so the
uselessness check was wrong. We split the check by adding a separate
function to do the check for monsters.

Fixes #4858

--------------------------------------------------------------------------------
e89435198a | CrawlOdds | 2025-10-31 12:00:40 -0500

Add check for targets in plasma beam
Fixes a bad behaviour where casting plasma beam with some monsters but
no targettable monsters could waste a turn and MP.

Fixes #3337

--------------------------------------------------------------------------------
5e2657f105 | Isaac Clancy | 2025-10-31 05:44:23 +1300

Fix changed terrain counting as known
Changed terrain that the player hadn't seen or otherwise revealed would
show the blue magic mapped background when excluded, it would also cause
the minimap to be centered as if you had seen the terrain causing it to
sometimes be off center.

--------------------------------------------------------------------------------
5074f317b0 | Implojin | 2025-10-29 15:07:54 -0500

Add Odds to the credits
For 7267fc8787, b014eb5195, and hopefully more PRs yet-to-be-merged.
Thanks for your help!

--------------------------------------------------------------------------------
bc77645148 | David Lawrence Ramsey | 2025-10-29 13:22:23 -0500

Fix typos.

--------------------------------------------------------------------------------
c2f504d12d | Kate | 2025-10-29 12:50:37 +0000

Fix Warlock's Mirror reflecting charm under Okawaru
Also prevents applying charm to monsters with Ru's Sacrifice Love.
Fixes #4837.

--------------------------------------------------------------------------------
f4d9ab44da | David Lawrence Ramsey | 2025-10-28 18:50:22 -0500

Update regen talisman comment again.
Mention the hurdle that regen attunement checks currently require all
the items they check to have corresponding equipment slots, and
talismans are slotless.

--------------------------------------------------------------------------------
643edf1ca2 | David Lawrence Ramsey | 2025-10-28 17:00:20 -0500

Fix slightly misleading wording (DracoOmega).

--------------------------------------------------------------------------------
2c1d4b5324 | David Lawrence Ramsey | 2025-10-28 16:53:22 -0500

Update comment on talismans' not getting regen.
Due to major code changes, trying to do so will no longer crash on
untransforming. Instead, regen currently does nothing on artefacts.
It's gone from an XXX to a TODO, for anyone who can figure out how
to handle regen on artprops as well as elsewhere.

--------------------------------------------------------------------------------
7a70d8a9cb | David Lawrence Ramsey | 2025-10-28 14:44:34 -0500

Replace a few artefact adjectives with synonyms.
Since Brilliance is already used for an unrand (a weapon and not armour,
but still), and Resonance is an actual armour ego now.

--------------------------------------------------------------------------------
409a2a9a61 | David Lawrence Ramsey | 2025-10-28 13:39:49 -0500

Mention amphibiousness in fortress talisman desc.
Describe it as "well-adapted to the water," as is done elsewhere.

Closes #4843.

--------------------------------------------------------------------------------
66040a7279 | Nikolai Lavsky | 2025-10-28 16:58:11 +0300

fix: colourise the Body Armour AC modifier in talisman descriptions
This was the only table field where negative values had no red
highlight.

--------------------------------------------------------------------------------
b014eb5195 | CrawlOdds | 2025-10-29 01:31:38 +1300

Fix display of HP penalty in flux preview
Fix incorrect HP display in flux preview

We do this by moving the special casing for flux HP to a form field,
which is probably a cleaner place to have it anyway.

Closes #4817.

--------------------------------------------------------------------------------
7267fc8787 | CrawlOdds | 2025-10-29 00:18:54 +1300

Don't offer Ash curses while ostracised from full piety

--------------------------------------------------------------------------------
3a176dd0d6 | Isaac Clancy | 2025-10-29 00:10:55 +1300

Add Brian 'buehler' Faires to the credits

--------------------------------------------------------------------------------
296a76d0c2 | David Lawrence Ramsey | 2025-10-27 18:41:12 -0500

Revert "Don't display short lived frames in console"
This reverts commit 43d75eb032ea8f541d626128d98292c72e8e2019.

Revert "Fix the skills menu not redrawing in webtiles"

This reverts commit 7d1d168b820ed48fe0ea894ca7768725fb032e63.

Revert "Fix webtiles not redrawing when showing a prompt"

This reverts commit 34f3ec3571aa16531bdaf3b2e93e7ba208ec510a.

Revert "Fix console being blank after resizing"

This reverts commit 36bea8176d57879d19a396090300a65207c2537a.

--------------------------------------------------------------------------------
139a29855b | David Lawrence Ramsey | 2025-10-27 13:23:58 -0500

Add another mythical animal to randarts.

--------------------------------------------------------------------------------
79c33e419b | Isaac Clancy | 2025-10-28 07:13:32 +1300

Fix walking into map border with primordial nightfall
Walking into unpassible terrain with a vision radius of zero is supposed
to magic map the terrain. However, there was a seperate code path for
walking into the map border that didn't do this. Unify both these code
paths so that they both call the same function. This has the side effect
of giving messages when trying to walk into endless lava/sea as the old
code for handling non-border squares had these messages.

--------------------------------------------------------------------------------
5826c218a5 | DracoOmega | 2025-10-27 14:17:07 -0230

Don't leash dead monsters (Wolpertinger)
If a summoned monster fell down a shaft, catching up its enchantments upon
placing it on its new floor would likely cause its summon timer to run out
and immediately die (which made trying to leash it assert).

Possibly we shouldn't be trying to transit summoned monsters that way in
the first place, but I could imagine other ways that a monster might be
dead by the time leashing sees it, so this is good policy anyway.

--------------------------------------------------------------------------------
f66a3a5d15 | Isaac Clancy | 2025-10-28 03:04:55 +1300

Remove duplicate include statement

--------------------------------------------------------------------------------
9c79c924ce | Isaac Clancy | 2025-10-28 02:40:16 +1300

Don't use gameplay rng to draw polar vortex clouds
We should use the ui rng to draw them so that the number of times you
refresh your screen doesn't affect gameplay.

--------------------------------------------------------------------------------
36bea8176d | Isaac Clancy | 2025-10-28 02:28:06 +1300

Fix console being blank after resizing
The console would be blank after resizing it until you pressed a key.
This seemed to only happen if you weren't in a menu.

--------------------------------------------------------------------------------
e55e93cc1e | DracoOmega | 2025-10-27 08:43:26 -0230

Fix deeply broken behavior with monster leashing and improve (Acrobat)
The monster leashing behavior added by 5afa24a was broken in several ways,
the most notable of which was that we were *never unmarshalling* a
monster's origin level and simultaneously never resetting a monster
object's origin level when it died. In combination, this meant that a
monster's origin floor was treated as the floor of the last monster that
was generated with that mindex()! Due to branch pre-generation not
following the same order that the player will enter those branches, this
frequently resulted in monsters on the current floor believing their home
was somewhere very far away. (eg: if you enter Swamp before Snake, the
monsters in Snake when you later go there will commonly think their home
is deep in Swamp, and leave to return there when you take even a single
stair with them)

In addition, the function used to calculate the distance between levels was
using functions intended for interlevel travel and relied on the player's
knowledge of stairs and would consider branches the player didn't know the
path to *before* taking a stair to be infinitely distant, resulting in
monsters immediately leashing. I am not sure if it is currently possible to
trigger this outside of wizmode, but it's trivial to do it unintentionally
there (and a few proposed future effects could result in it happening in
real games). The distance is now calculated independent of player
knowledge, and purely based on dungeon structure.

Also, the previous behavior regarding monsters from portals is that they
would never leash anywhere, which feels inconsistent (ie: if you pull an
orc out of a Bailey, or anything out of the Abyss, they will follow you
forever). Now, when monsters whose origin floor is from a portal branch
arrive on a connected branch, they will change their origin floor to that
(so that, eg: whatever floor you exit the Abyss onto is where monsters that
came with you will leash.)

Finally, don't print a message about a monster retreating if you cannot see
it.

--------------------------------------------------------------------------------
1c17688385 | hellmonk | 2025-10-26 23:31:26 -0500

Refactor weapon handedness description (projectNoob)
Don't claim that weapons are both two-handed and too large to wield, and don't
print handedness messages for felids since they cannot wield weapons at all.

Closes #4188.

--------------------------------------------------------------------------------
5afa24a926 | hellmonk | 2025-10-26 22:15:58 -0500

Dismiss monsters that are lured too far.
Experimental change. Store the origin level of each monster in its
structure, and track how far away from the origin we are on transit to a
new floor. If the monster is 3 or more floors away after transit, it goes
away forever, yielding no items or exp. This only applies to hostile
monsters in connected branches, and is turned off for the orbrun.

This is a thing that shouldn't be noticeable for most players. It prevents
the sort of degenerate exploits that happened with eg. silent spectres,
without having to either tag every monster with an exploitable mechanic to
not use stairs or to avoid using those mechanics altogether. So now making
an earlygame digging monster, or monsters with double-edged auras or other
symmetrical mechanics should be possible.

Send lured monsters home instead of dismissing

Probably works better, and makes more sense. Suggested independently
by DracoOmega and np7.

Messaging cleanup and distance rework

Use a greater distance for monsters that get shafted or otherwise non-stair
transited, so that shafts can work properly. Remove test messages and add
proper messaging for monsters returning home.

[Committer's notes: This branch was getting pretty stale and had some merge
conflicts, so I've resolved those, squashed it, and I'm just slamming it.
If there are any remaining issues, we'll take care of them in trunk.

Resolves #4659.]

--------------------------------------------------------------------------------
0e37d8b8bd | Implojin | 2025-10-26 20:47:10 -0500

Refactor abilities to be less confused (gammafunk)
Here we simplify some params out of various ability calls, and refactor
several clua api ability binds to provide a single, consistent point of
access for players to get info on whether an ability is usable:
`you.ability_info()`.

This bind returns a nested table containing all of the abilities that the
player has, whether they can currently be used, and their keybinds. You
can pass a single ability name into this bind to get the same info about
that ability.

Regarding the confusion bool removed from the C++ side of this commit:
Previously, we were manually hacking all abilities that didn't have
`conf_ok` to return ABIL_NON_ABILITY whenever the player was confused.

This was super weird and dated back to ancient times -- we have a
separate confusion check that's run when abilities are actually activated,
and as near as I can tell we didn't seem to actually need the ability
hack anymore. I've moved the confusion check above the berserk checks
there to preserve the prior logic ordering.

--------------------------------------------------------------------------------
585a46375a | David Lawrence Ramsey | 2025-10-26 18:58:50 -0500

Remove unneeded KFEAT.
Since unmapped glyphs are turned into floor, they don't need to be
explicitly turned into it.

--------------------------------------------------------------------------------
fa14095d15 | David Lawrence Ramsey | 2025-10-26 13:09:58 -0500

Add another Crazy Yiuf line.

--------------------------------------------------------------------------------
ded6fd1253 | David Lawrence Ramsey | 2025-10-26 13:00:16 -0500

Checkwhite.

--------------------------------------------------------------------------------
3efdd9a134 | David Lawrence Ramsey | 2025-10-26 12:52:06 -0500

Remove duplicate "extra" tag.

--------------------------------------------------------------------------------
6459b0655c | David Lawrence Ramsey | 2025-10-26 11:14:31 -0500

Add three more orc names.

--------------------------------------------------------------------------------
1f94a36935 | Implojin | 2025-10-26 07:05:30 -0500

Add a clua bind: you.ability_available() (CarefulOdds)
Here we let players check whether an ability is currently available using
clua. Some abilities currently report as "available" here while not
necessarily being targetable; `_check_ability_possible` does not have
accurate prerequisite checks for every ability.

(One broken example I hit in testing this was Line Pass: The game happily
considers Line Pass possible to use without an adjacent target.)

However, I'm going to treat anything missing from `check_ability_possible`
as separate bugs, as this codepath is what we use internally for the
ability menu, and so any missing hitfuncs etc. there should really be
fixed independently of this commit.

--------------------------------------------------------------------------------
9bf671e83b | Memoria | 2025-10-26 02:07:13 -0500

Prevent Lair ends from placing on prior floors
When f5338f2 gave all Lair vaults a default-depth of "Lair", it applied
this to Lair ends also, allowing them to place as normal vaults, gem and
all. Puts a blank default-depth before all Lair ends.

--------------------------------------------------------------------------------
604a682237 | David Lawrence Ramsey | 2025-10-25 23:05:24 -0500

Fix header build tests?

--------------------------------------------------------------------------------
102135d2eb | David Lawrence Ramsey | 2025-10-25 22:38:39 -0500

Fix FTILE and COLOUR references.
So that dolorous_temple_overflow_order_and_chaos_3's path between altars
is shown properly again.

--------------------------------------------------------------------------------
f22d455bdd | regret-index | 2025-10-25 23:53:24 -0230

Further catch-up vault review
Worthy of note:

 * A decent amount more vaults with zero or minimal threats have been
   tagged "extra" or "extra_post_overflow" in the wake of the previous
   commit, to try and make Depths contain a fair bit more monster
   minivaults. This doesn't raise the odds of a monster minivault on
   Depths:1 to a full 100%- decorative serial vaults can make it fail on
   occasion, mostly- but alongside fulfilling more of the vault-based
   branch identity, it should make the use of "extra" be more consistent
   across our many, many vaults.

 * due_megacathedral's Lua would allow for up to hundreds of bats well
   past their danger level points to spawn inside the vault if moving
   through the floor enough times, which was both broken and not any
   particularly interesting. (It also contained some baffling unsuccessful
   attempts at randomization warped by previously having secret doors).
   I have significantly revised the vault to place with several different
   configurations mostly earlier than previously (so the bats actually
   mean much at all), with decorative stained glass instead of one-off
   lua messages about bats swooping out of wall crevices, which also
   sidesteps the need for a separate file or nonfunctional Lua.

 * Since death scarabs only place naturally in Spider and Tomb, I have
   made mon-place look for avoiding the former instead of looking for
   the latter, which should make hellmonk_scarab_ruin function again.

 * As further follow-up to 717b963, the large vaults without monsters
   that could using up the primary slot in Depths no longer can spawn
   in the floors guaranteeing vaults (Depths:2-4). My preferred solution
   for this would be a Lua function to have it deliberately place monster
   minivaults when on Depths:2 or Depths:3, but making Depths be more
   consistent is a key priority for this and previous commits, and they
   usually still can spawn readily in D.

 * guarded_unrand vaults now consistently deploy no_pickup if the vault
   doesn't put the unrand in a monster's hands, instead of missing from
   a small but non-zero number of vaults.

--------------------------------------------------------------------------------
bcc460914b | regret-index | 2025-10-25 23:47:27 -0230

Adjust and clean up later overflow altar placement
 * As was discovered by DracoOmega, the : interest_check(_G) function in
   overflow.des added over a decade ago does not actually work,
   due to how Crawl's initialization of vaults leads to not properly
   tagging the vault as `extra` as it's placed. Most notably, this
   interferes with Depths:1's attempt at consistently placing a minivault
   (in e3cb86a), which hurts the vault-centric identity of Depths and
   goes against the `extra` tag's intent.

 * The deployment of the `uniq_altar_[god]` tag is overzealous with
   blocking themed altar vaults past late D, as while it avoids multiple
   vaults to a given god appearing in earlygame, there is enough time past
   in later branches to already place altar vaults not used in the
   overflow range (whether large and dangerous, or particularly themed to
   that branch). In particular, this interferes with ce7c55b's use of
   various overflow vaults as decoration in V, as well as the occasaional
   additions of appropriately scaling altar vaults like in 837a7d7.

To address these ends and more, I have added a new `extra_post_overflow`
tag that functions as the previous interest_check function intended.
Deploying it or not per overflow altar is managed with a new function-
standard_overflow_setup(_G)- which also both saves various vault header
lines and consistently manages of the four seperate canned tags most
overflow altar vaults end up deploying most of the time. (It also applies
the previous commit's `buniq` tag, which the map_selector now checks,
instead a `uniq` tag.) The additional documentation shouldn't be much
lengthier than what overflow.des already did to explain the different
tags, and it should hopefully also make matters like extra tagging be
handled consistently for the future.

Most notably for players, this should make Depths floor consistently
contain more non-decorative minivaults in general, which should help
a mild bit with the branch's difficulty otherwise being innately spiky
between Depths's high vault and band focus.

--------------------------------------------------------------------------------
cba18e0499 | mumra | 2025-10-25 23:47:26 -0230

Implement a buniq ("branch unique") vault tag
Like the luniq_* tag, but for branch-unique map placement. Maps with
this tag will not place if a map with the same tag placed already in
the same branch.

[Commiter's notes: This was extracted from PR #4406, as the functionality
of such a tag can help deal with other Crawl matters beyond the PR's scope,
and the thrust of the PR's rebalancing is easily decoupled from such.
I've not done much else here, aside from squashing related commits
together and making sure &K works properly, but follow-up commits will make
use of this new tag.]

squash this into the buniq commit

--------------------------------------------------------------------------------
6544a15d2e | regret-index | 2025-10-25 23:47:26 -0230

Add and adjust Depths entry and Zot / entry tiles
 * To compliment the deployment of floor_depthstone and depths_column
   tiles in Depths entrances in e431911, as well as the unique crystal
   wall tiles of Depths used in Depths entrances in 011df5c, I am
   adding a new set of wall tiles mixing together Sastreii's Depths stone
   with roctavian's edits of Denzi's default stone. This should help with
   the transitional aspect of each Depths entry vault, by incorporating
   visual motifs present in Depths stone walls into the default / D stone
   wall appearance, while also helping the relatively understated nature
   of the more common entries stand out a bit compared to the rest of D.

 * To both give Zot vaults a little more visual flair and to avoid using
   Elf's floor_hall in Zot entry vaults, I've also made a new set of floor
   tiles made from mixing CC0 stone pattern from TextureNinja with the
   fringes of Denzi's original floor_rough tiles. These diamond patterns,
   contrasting with the squares and rectangles emphasized in other
   branch vault floor tiles, are deployed both inside a slice of the Zot
   vaults both somewhat dangerous and somewhat building-like, as well as
   in all Depths entrances in place of floor_marble or the aforementioned
   floor_hall.

 * To both help establish more visual continuity across Depths and to
   add further flair to the end of Depths, most Zot entry vaults now
   deploy also floor_depthstone (as previously used in Depths entry vaults
   and Depths encompass vaults) in many places where they would previously
   use the standard D and Depths floor tiles. (I'm reluctant to use them
   by default through Depths- they make for weirdly high contrast versus
   the current old dark and high-detail Depths rock walls- but they do
   work reasonably fine contrasting against most other rock tiles.)

Further tilework would be a good idea in the future- like unique Zot:1-4
stone Zot entry vaults can borrow instead of just the generic Zot rock
with occasional usage of disorientingly-shiny void metal- but this should
function for now.

--------------------------------------------------------------------------------
2936fdb91c | regret-index | 2025-10-25 23:47:26 -0230

Adjust wall_brick_vines
This tries to add better shadowing, better-matching damaged brick, and a
fifth variant to Due's edit of Denzi's brick walls, which should hopefully
make the rather prominent tile (in Swamp ruin decor vaults) fit more with
the steady tile improvements done to the rest of the game over the decade
since the tiles were first made.

--------------------------------------------------------------------------------
ddf4669d2d | regret-index | 2025-10-25 23:47:25 -0230

Update a few bits of level documentation
Most notably, this corrects some lines on how luniq_foo works, and adds
explicit notes on lairdec / snakedec / zotdec tags.

--------------------------------------------------------------------------------
858c4e97e9 | regret-index | 2025-10-25 23:47:25 -0230

Increase the odds of placing Lair decor vaults on Lair:4-5
A delayed follow-up to the work of 663a982, in the vein of f5be29c and
d8fb119, somewhat bolstered by the parent commit. This adds a 25% chance
to place some of the 80+ decorative vaults on Lair:4-5, brandishing a
wide variety of the newer decorative + default tiles and features. (This
is less high than either decorative vault explicit placement: this is
half due to the sheer volume of Lair vaults making their odds high to
begin with, and half due to being somewhat wary of earlygame having
particularly excessive amounts of purely decorative vaults. The range is
also just past the Lair branch roulette entry vaults, and thus gives a
little more flashiness specifically to the less innately-distinct Lair
floors.)

--------------------------------------------------------------------------------
2f11f8beb4 | regret-index | 2025-10-25 23:47:25 -0230

Another decor vault batch for Lair and Swamp
Fifteen Lair decor vaults, to be used in the following commit. The
majority of vaults in this commit are negative space experiments, of a
style akin to 7638400- but with Lair's ruinous appearance it should be
less like "weird mystic deliberate building patterns" and more like
"collapsed, overgrown caverns". This also comes with another two Swamp
ruin vaults, to help vary up the rather restrained pool for
swamp_ruins_default.

--------------------------------------------------------------------------------
f5338f29f9 | regret-index | 2025-10-25 23:47:25 -0230

Brief reorganizing + touch-ups of lair.des and elsewhere
 * lair.des now saves many lines with a default-depth list, and now has
   the same quick-search header arrangements as other branch files- to
   match this, purely-decorative vaults are now all consistently placed
   before the rest of the other vaults.

 * wad_woods is now in its own .des folder, as many of the vaults can
   place in D, which is otherwise inconsistent with how we organize
   branch files.

 * Tags have been adjusted across a number of Lair decorative vaults to
   reduce placing lots of decorative vaults on the same Lair floor,
   and to move forward with a split between D + Depths decor (tagged
   `decor`) versus branch-specific decor (tagged e.g. `lairdec`) that
   was deployed in f5be29c and d8fb119. Alongside a few more vaults
   set up to place in Lair, this sets up further explicit decorative
   vault placement in Lair to be followed up in further commits.

--------------------------------------------------------------------------------
a86d0c5963 | David Lawrence Ramsey | 2025-10-24 08:19:30 -0500

Fix warning.

--------------------------------------------------------------------------------
17b9c6f5ef | Isaac Clancy | 2025-10-24 22:57:17 +1300

Do a better job of excluding an entire large door
If you have seen all the squares that make up a large door and you
exclude one square of the door the exclusion will spread to the rest of
the door. However, if you have only seen part of a large door and you
exclude it, the parts that you hadn't seen will remain unexcluded when
you see them. Instead, spread exclusions on large doors to new squares
that make up the door when you seen them.

--------------------------------------------------------------------------------
5f9b90cd0b | DracoOmega | 2025-10-23 21:55:22 -0230

Fix being able to freeze time on other floors by peeking at them (Darby)
eb2233f344 made it so that peeking at an adjacent floor, and then returning
to your current one, would save the *current* turn as the last time the
player was on that floor. This meant that if the player peeked immediately
before reentering the floor, the game would treat it as if almost no time
had passed, no matter how much time had actually passed.

This had a plethora of applications, like being able to freeze portal
timers, preserve poison on monsters when looping around to a different
staircase, negate all monster HP regen, or ensure that monsters chasing
where you last left the floor would have barely moved from their original
locations.

--------------------------------------------------------------------------------
34f3ec3571 | Isaac Clancy | 2025-10-24 09:05:48 +1300

Fix webtiles not redrawing when showing a prompt
When showing a prompt in the message panel such as the one from using a
faded altar, webtiles wouldn't redraw resulting in you not seeing the
prompt until after you had answered it.

--------------------------------------------------------------------------------
7d1d168b82 | Isaac Clancy | 2025-10-24 02:25:15 +1300

Fix the skills menu not redrawing in webtiles
Making changes to the skills menu such as enabling or disabling a skill
wouldn't show until you reopened the menu.

--------------------------------------------------------------------------------
43d75eb032 | Isaac Clancy | 2025-10-23 23:52:29 +1300

Don't display short lived frames in console
We render multiple frames for every player turn, e.g. after the player
takes an action, after a monster takes an action, start of the player's
turn, when going through menus etc. However, most of these frames are
replaced with a new frame before the next monitor vblank and are thus
discarded. If we discard these short lived frames ourself, it should
look better than having one occasionally pop up briefly while
simplifying the code as tiles already discards these frames.

--------------------------------------------------------------------------------
79be30a44c | mumra | 2025-10-23 07:53:00 +0100

Set a default value for game_version in client.html
This prevents a 500 Server Error if the webtiles server hasn't been
restarted (and therefore game_version is unavailable).

This commit can safely be reverted once all webtiles admins have had
a chance to restart their server with the updated server.py in place.

--------------------------------------------------------------------------------
1bb3f14039 | mumra | 2025-10-23 05:46:21 +0100

Don't try to checkwhite font files

--------------------------------------------------------------------------------
82b4fbf79d | mumra | 2025-10-23 05:24:08 +0100

Copy webfonts permanently into static

--------------------------------------------------------------------------------
cb0159e603 | Implojin | 2025-10-22 23:04:17 -0500

Document some clua api functions
These were previously added for internal autofight use and had no entries
in `make api`. As they are being used, we might as well document them.

--------------------------------------------------------------------------------
f6560e084f | Implojin | 2025-10-22 23:04:17 -0500

Remove a dead comment from 2012
We're using absdepth in way too many places to ever consider this.

--------------------------------------------------------------------------------
7b57addf1e | Isaac Clancy | 2025-10-23 16:40:05 +1300

Add missing includes to fineff.h
This was broken in the refactor and was causing our header build test to
fail.

--------------------------------------------------------------------------------
99e36ef0dd | Implojin | 2025-10-22 22:05:46 -0500

Let CMD_DROP_LAST ('D') automatically disable autopickup
Following from 32dc36160e, here we allow dropping the last-picked item
to disable autopickup using the same rules as CMD_DROP.

--------------------------------------------------------------------------------
855d04f7d5 | Isaac Clancy | 2025-10-23 15:40:25 +1300

Refactor: move final effects out of the header
This should make it so that we don't have to rebuild everything that
uses final effects whenever something that final effects depends on
changes.

--------------------------------------------------------------------------------
2470553f75 | Implojin | 2025-10-22 21:25:23 -0500

Show artefact enchant limit in item descs for Mountain Dwarves
As a bonus, we get to mildly dedent and simplify.

--------------------------------------------------------------------------------
3133c6b059 | David Lawrence Ramsey | 2025-10-22 11:21:58 -0500

Add another Xom esteem name to artefacts.

--------------------------------------------------------------------------------
43e0034f20 | mumra | 2025-10-22 11:17:54 +0100

Add a cachebusting key to lobby static assets
Adding a version string to all the lobby assets ensures that, if the
server rebuilds and there is an update to client scripts, players will
definitely get the update when they reload the browser, and not get
a locally-cached copy of the file.

This enables use of more aggressive caching strategies, longer cache
times, in-memory caching with nginx/Apache, or even pushing static
assets over to CDN, if server admins wish to configure thing way,
without worrying about the client browser potentially serving stale
assets.

It would be even better to either a) keep a separate version number for
the lobby client or b) compute a hash key to use for this cachebusting
string, so that assets can be reused from cache when they haven't
changed (which is usually the case) but given the small size of these
assets (compared to e.g. the game client and tiles images) it seems like
a lot of work and complexity for a small gain. It's much more important
to ensure that players at least don't have a stale client.

(For the styles and the require.js include, static_url at least ensures
a stable hash; but for the other scripts loaded by require, I have to
pass a key into config, so it can't be computed per asset like these
ones.)

--------------------------------------------------------------------------------
ea061f7a3d | Isaac Clancy | 2025-10-22 20:47:06 +1300

Fix some mark of the celebrant related crashes
If a lurking horror tormented you and it activated the blood arrows from
mark of the celebrant and a blood arrow killed the lurking horror the
game would then crash when the now dead lurking horror tried to kill
itself (which they do after using torment). You would also get a similar
crash from hoarfrost cannons using their last shot against you etc. To
fix this make firing the blood arrows a final effect similar to how we
handle other sources of retaliation damage.

fixes #4562

--------------------------------------------------------------------------------
dad79eb2a5 | David Lawrence Ramsey | 2025-10-21 19:56:41 -0500

Fix spelling.

--------------------------------------------------------------------------------
e7a429eae4 | mumra | 2025-10-22 01:22:24 +0100

Use DejaVu Sans font by default in webtiles
The adds the font as an embedded webfont, so webtiles now appears the
same as the default desktop font.

The font is still overridable in configuration should anybody prefer to
use their own system or other font, but this certainly looks much nicer
than the default monospace font on browsers in Windows!

--------------------------------------------------------------------------------
934f5e3708 | Isaac Clancy | 2025-10-22 01:08:04 +1300

Fix graphical glitch with some doors created in wizmode
When placing a door above or below an existing door in wizmode, the old
door wouldn't change its tile even though it is now part of a large door

--------------------------------------------------------------------------------
09e2fcb399 | Isaac Clancy | 2025-10-21 23:47:31 +1300

Remove old unused targeting overlays
They now just use the normal overlay code and all the old code to handle
them is dead.

--------------------------------------------------------------------------------
469e5f41f7 | Isaac Clancy | 2025-10-21 22:46:46 +1300

Fix flash_view in tiles
It wasn't redrawing the tiles, so if you didn't call a function that
redraws tiles (e.g. delay, scaled_delay) before the next call to
viewwindow, the flash would never be seen.

--------------------------------------------------------------------------------
c4236cc629 | Memoria | 2025-10-21 01:57:10 -0500

Remove 4 of the 5 ladies of the lake
The grunt_lady_of_the_lake vault spawns a merfolk avatar in a lake when
the player approaches a sword in the center. If the player left and
re-entered the floor beforehand, each tile by the sword would spawn its
own merfolk avatar, spawning up to 5 avatars near the player. It seems
reasonable to only spawn the Lady of the Lake upon stepping on the sword
itself, as the player will generally autotravel there to identify the
sword anyway.

--------------------------------------------------------------------------------
a50f8efd80 | Isaac Clancy | 2025-10-21 16:59:03 +1300

Remove unused code from discover_mimic

--------------------------------------------------------------------------------
6892638188 | Isaac Clancy | 2025-10-21 16:46:50 +1300

Change parameter type of put_colour_ch to char32_t
The parameter type was `unsigned int` previously but should have been
updated to char32_t when moving to c++11

--------------------------------------------------------------------------------
d7b9d59e62 | Isaac Clancy | 2025-10-21 15:49:49 +1300

refactor cloud_tile_variation
cloud_tile_variation is an enum that determines how a cloud chooses its
tile. It has an entry called CTVARY_NONE which is used for clouds with a
fixed tile that doesn't vary. However, some clouds with it were special
cased to not have a fixed tile, which adds extra complexity over givng
them their own enum entries and also makes it harder to determine which
clouds are animated.

--------------------------------------------------------------------------------
7c143c1dcc | Isaac Clancy | 2025-10-21 15:16:10 +1300

Add an invert method to FixedBitArray
Previously we were rolling our own implementation in abyss.cc

--------------------------------------------------------------------------------
7b2b1f96eb | David Lawrence Ramsey | 2025-10-20 11:35:28 -0500

Add support for partial bane name matches.
Used only in wizard mode, as partial mutation name matches also are.

--------------------------------------------------------------------------------
65985d8095 | unutbu | 2025-10-20 10:03:43 -0500

Add the ability to toggle banes in wizmode.
To use, type `&}` then the name of the bane.

[Committer's note: Adjusted commit message, and did checkwhite and
unbrace.]

--------------------------------------------------------------------------------
34f68e377c | Implojin | 2025-10-20 00:23:09 -0500

Let autofight prioritize good stabs
This commit allows autofight attacks when wielding high stab damage
weapons to prioritize stab attempts, when available. This targeting
prefers tier 1 stabs (sleep/paralysis/petrify) but will attempt to make
any available stab. Autofight with stab weapons will now try to move the
player closer to the nearest stab target, if one exists and there is no
higher priority target that prevents the move.

This will *not* continue to move the player if a different target is
adjacent: In my estimation, moving past adjacent monsters seemed likely
to cause player deaths to unexpected autofight behavior, so I haven't
done that.

The motivation here was that I'd like autofight to be a bit smarter about
stab targeting -- previously, it would often ignore perfectly good stabs
because the only thing it cared about was whether a tier 1 stab existed,
and its prioritization for that was fairly low.

I might want to do further tweaks here: As mentioned, I'd somewhat prefer
these positioning choices to be even more aggressive, but I'm hesitant to
surprise players with unexpected autofight pathing.

This commit adds a new clua bind to expose more stab info to autofight:
`you.has_good_stab()`, which will return true if the player has a short
blade equipped (or otherwise has good stabs enabled, as through
spiderform etc.)

--------------------------------------------------------------------------------
a32e351020 | Memoria | 2025-10-19 21:41:02 -0500

Fix player ghost tiles constantly re-randomising
The inclusion of title size to seed ghost doll randomisation was causing
the hash function to output different results every time the ghost was
redrawn, continuously changing its appearance. Subtracting its size is a
hacky, temporary fix, but resolves the issue for the time being.

--------------------------------------------------------------------------------
a051f2b509 | Isaac Clancy | 2025-10-20 14:19:35 +1300

Fix console not showing the last message on windows
If you did can action that generated a message such as pressing the
escape key to generate an "Unknown command" message, the message
wouldn't appear until you pressed another key.

--------------------------------------------------------------------------------
00c038fbf2 | Implojin | 2025-10-19 15:16:34 -0500

Fix CMD_AUTOFIRE (shift+tab) to check wall transparency
Previously, autofire considered things blocked behind transparent walls
as valid ranged targets, which led to some awkward targeting situations:

Y#..
c#..
...@

This setup would print "There's something in the way.", as autofire
considered both targets valid and prioritized targeting the elephant.

Following this commit, blocked CMD_AUTOFIRE targets will return AF_FAILS,
which should correct the targeting and messaging here.

--------------------------------------------------------------------------------
a42d9e8aaf | Medrano83 | 2025-10-18 22:44:55 +0200

Android: Mods
Implements a simple file manager to make the SAVEDIR/dat accessible on
Android. This is useful to install fonts and override the game data
files.

I have also improved the launcher's error handling and updated some
deprecated code.

Closes #4748

--------------------------------------------------------------------------------
7ce176cf9e | David Lawrence Ramsey | 2025-10-18 12:30:14 -0500

Fix crashes in arena fights set in the Abyss.
Closes #4838.

--------------------------------------------------------------------------------
717b963787 | patrick | 2025-10-18 12:01:41 -0400

Adjust placements for my various big tiling vaults (regret-index)

--------------------------------------------------------------------------------
c44303a282 | patrick | 2025-10-18 11:19:27 -0400

Add another large decor vault based on tilings
I saw an interesting pattern on a tile floor recently, so I made a
vault based on it. Then I entered a vault fugue and made 15 other
subvaults that would also fit into the same main vault and would
make interesting tiling patterns.

--------------------------------------------------------------------------------
36487f65ea | Isaac Clancy | 2025-10-18 23:14:51 +1300

Add blood rotation to map knowledge
We used to use the actually rotation of blood on a square when drawing
it. However, the rotation of blood on an out of sight square can be
changed and we don't want to leak this change to the player. Instead,
store a copy of the blood rotation in the map knowledge and only update
it for squares the player can see.

--------------------------------------------------------------------------------
b8f90621be | brianfaires | 2025-10-18 21:36:35 +1300

equip_slot_by_name(): Catch "Body Armour"
Allows Lua API's item.equip_type to work with:
- l_item_equipped_at()
- l_slot_is_available()
Previously didn't work for body armour. equip_type = "Body Armour",
Both functions only check for "Armour"

s_equip_slot_names was only created to support this function afaict,
and just duplicates `enum equipment_slot`

Backward compatible: equip_type returns the same strings, but functions
will now check for both varieties of names.

Tested locally and everything works as before but catches body armour.

--------------------------------------------------------------------------------
ac57078213 | Isaac Clancy | 2025-10-18 20:44:41 +1300

Don't use env.level_state when drawing tiles
env.level_state is based on the actually level, whereas what we draw is
based on what the map remembers of a level. So for example, if a
Jiyva worshipper uses oozemancy, moves out of sight of the slime walls,
waits for oozemancy to end, and then reloads the game, the
LSTATE_SLIMY_WALL flag will not be set on env.level_state but now out of
sight slimey walls will still be drawn as thats what the map remembers
being there. Luckily we don't actually need to use env.level_state in
the drawing code and there isn't any benefit to using it.

--------------------------------------------------------------------------------
3beb288adb | Implojin | 2025-10-18 00:49:40 -0500

ci: Bump android and mingw runs to ubuntu-latest
We need libpng-dev in the ci environment to generate tilesheets; the
android run sets up its dependencies in gradle, and the mingw run
generates crosscompiled contribs, both of which were no good to use here.

(See also a53296f351 for a previous instance of the crosscompile issue.)

As far as I can tell, these runs in ubuntu-22.04 must have had a libpng
available that we now need to explicitly specify in ubuntu-24.04.

I also forgot to update the source packages run to ubuntu-latest in
c80b890e59, so here we bump that as well.

After this commit, the only run still on 22.04 is catch2.

--------------------------------------------------------------------------------
bc34600443 | Isaac Clancy | 2025-10-18 17:19:53 +1300

Don't restrict telling the player about acidic slime to floors
When examing a floor next to a slime wall, it tells you that it is
covered in acidic slime. However, this was restricted to floor squares
only as console only shows acidic slime on floors. This was misleading
as a shaft for example next to a slime wall would still corrode you when
standing on it. It also isn't that uncommon for you not to be able to
see that something is effecting a non-floor square in console without
examining the square so it should exceptable for that to be the case
with slime from walls as well.

--------------------------------------------------------------------------------
9630a171c0 | Isaac Clancy | 2025-10-18 16:50:03 +1300

Fix scrolls being wasted when losing connection (mumra)
When reading an an unidentified scroll that requires you to make a
choose such as enchant weapon that requires you to choose a weapon, if
you save and quit before making the choose the scroll would be wasted.
The game can save and quit on its on when losing connection in webtiles
resulting in the player losing a scroll at no fault of their own. To fix
this restore the choose on loading the game like we do with other
uncancelable chooses.

--------------------------------------------------------------------------------
c80b890e59 | Implojin | 2025-10-17 19:04:23 -0500

Bump most CI to ubuntu-latest, python to 3.13
Here we bump python versions to 3.13 so that we can test webtiles with
crypt-r, and we bump as many runners as we can back up to ubuntu-latest.

Webtiles runners now test with python 3.8, 3.11, and 3.13, with older
versions using crypt, and 3.13 using crypt-r following 7c3bd3c27620.

We still have some issues with the mingw, catch2, and android runners
under ubuntu-latest, so these runs remain using ubuntu-22.04 until we
can get those sorted.

--------------------------------------------------------------------------------
7c3bd3c276 | gammafunk | 2025-10-17 18:07:45 -0500

Roll back python package requirements
All our CI tests with python 3.8, even for non-WebTiles builds. Hence
these updated requirements weren't satisfiable in the github ubuntu linux
runner. Python 3.8 is the oldest version WebTiles formally supports, so
it does make some sense to work with this version in CI. Since I don't
want to require a more current python for CI until we've discussed that,
I'm reverting back most of the requirement changes. I'm keeping the
`crypt-r` requirement, but conditioned on a python version of at least
3.13.

This partially reverts 13813543c0.

--------------------------------------------------------------------------------
f182cc49eb | regret-index | 2025-10-17 19:21:51 -0230

Fix trove_leda body armour (Monkooky)
An error of string concatenation resulting in items like

"plate armour plus:"

which, inexplicably, itemspec raised no concerns over. To try to make this
a little less repetitious as item drops in the trove otherwise, the trove
now also has slightly higher chances of boots of earth.

--------------------------------------------------------------------------------
13813543c0 | gammafunk | 2025-10-17 16:25:13 -0500

Document requirement changes for WebTiles server
We now require the `crypt-r` python package for python versions 3.13 and
later, since the `crypt` module was removed from the standard library.
Also update the WebTiles changelog and README.

--------------------------------------------------------------------------------
d0e9a9ddd5 | David Lawrence Ramsey | 2025-10-17 10:44:37 -0500

Add references to baubles in Zin speech.
Since they're effectively temporary talismans, despite being named
differently. (There may be only one type of bauble now, but that
could change at some point.)

--------------------------------------------------------------------------------
b018e8e09e | David Lawrence Ramsey | 2025-10-17 09:59:59 -0500

Add status dexcription for "Gem (*)".

--------------------------------------------------------------------------------
0af764086a | DracoOmega | 2025-10-16 18:41:01 -0230

Don't trigger Trickster against firewood (Sergey)
I am amazed this oversight went so long without being noticed.

--------------------------------------------------------------------------------
26e05f8c72 | Implojin | 2025-10-16 12:28:54 -0500

Fix Marionette targeter infoleaking illusions (radio-gra)
As reported in #4682, players with Dith could reveal which targets were
rakshasa and mara illusions by opening the Aphotic Marionette targeter.

This commit stops the marionette targeter from leaking this info,
and allows illusions to now be valid marionette targets.

(Excluding illusions as targets here should be unnecessary, and doesn't
meaningfully change the balance of the ability.)

Fixes #4682.
Closes #4683.

--------------------------------------------------------------------------------
59ef0daa6d | Implojin | 2025-10-16 11:54:12 -0500

Remove Silence's stealth penalty (rypofalem, hellmonk)
This was a weird simulationist relic from an earlier era of crawl.

This penalty was inconsequential in practice, and doesn't need to become
more consequential: the drawback of casting Silence is that the player
then needs to deal with being silenced!

It'll make no difference to cut this, so let's simplify it out.

--------------------------------------------------------------------------------
637f7d0b85 | David Lawrence Ramsey | 2025-10-15 01:19:29 -0500

Fix typo/indentation of shadow dragon quote.
Adjust indentation based on scroll of teleportation quote.

Closes #4835.

--------------------------------------------------------------------------------
eaba0656bb | person50605 | 2025-10-14 12:01:31 -0500

Use Lua-friendly functions
Use you.in_branch instead of you.where_are_you, as ../es/monsters.txt
uses you.in_branch as well.

[Committer's note: Squashed and adjusted commit message.]

--------------------------------------------------------------------------------
ec41f428ff | David Lawrence Ramsey | 2025-10-13 23:16:45 -0500

Move _preferred_max_level() to art-data.txt.
Using the new field name MAX_LEVEL, and with a default value of 0
instead of -1 since art-data.pl makes all default number values 0.

--------------------------------------------------------------------------------
2d9baa426d | David Lawrence Ramsey | 2025-10-13 22:30:28 -0500

Sort art-data fields alphabetically.

--------------------------------------------------------------------------------
07a09a4f98 | David Lawrence Ramsey | 2025-10-13 21:50:05 -0500

Add proper #ifdefs for scarves of spirit shield.
Since they shouldn't exist anymore once we break binary
compatibility, as is assumed by other #ifdefs elsewhere.

--------------------------------------------------------------------------------
f66e048957 | David Lawrence Ramsey | 2025-10-13 15:43:20 -0500

Make Reflect ego desc match artprop ego desc.

--------------------------------------------------------------------------------
92558d7288 | LiciTheCrawler | 2025-10-13 12:45:39 -0500

feat: Adjust Body Armour acquirement
Currently body armour acqurement is dominated by robes, ring mails,
troll leather, plate and crystal plate. Higher armour skill makes plate
and crystal plate more likely, but the chance to get one of those five
is about the same even at 27 skill.
Additionally scale mail and chain mail are very rare. This version
brings several new body armour egos that spawn on scale, chain or plate
so it makes sense to make those slightly more likely.
Okawaru gifts also tend to leave a bad feeling after being offered a
robe or troll leather on your heavy armour using char.

This commit changes the weights of ring, scale, chain, plate and cpa.
It also changes the formula for body armour acquirement so low base AC
body armours become significantly less likely at higher armour skill.
For example: Body size restricted species still had ~27% to acquire
robes or TLA at 27 Armour skill. With the new formula at 27 skill
that chance is ~2.5%. For normal size species robe + tla + ring
mail went from ~23% at 27 with the old formula to ~4% with the new
formula.

--------------------------------------------------------------------------------
2d8feda9de | David Lawrence Ramsey | 2025-10-13 05:14:46 -0500

Checkwhite.

--------------------------------------------------------------------------------
587c5a4573 | Isaac Clancy | 2025-10-13 22:57:08 +1300

Bring umbra animation to web-tiles
local-tiles has animated umbras. Bring this to web-tiles

--------------------------------------------------------------------------------
5e4d60c372 | Isaac Clancy | 2025-10-13 22:52:24 +1300

Don't use gameplay random to draw umbras
We don't won't redrawing the screen to have an effect on gameplay

--------------------------------------------------------------------------------
a3357b45eb | Isaac Clancy | 2025-10-13 21:11:27 +1300

Fix parchment highlights not drawing correctly in water/clouds
The coloured highlights on the edges of parchments were drawing as if
they were above the water or clouds instead of in them

--------------------------------------------------------------------------------
1dbdc781f8 | regret-index | 2025-10-13 05:07:13 -0230

Cut down the Shoals (entrance) sun
This edit to white_noise's Shoals entrance tile is mostly meant as a
delayed follow-up to 85a6fcb. Whatever degree and excuse of magic permits
the Shoals tides of an underground sea to be bordered on all level sides
by more sea is still substantially removed from there being magical
underground suns on each floor, and I'd rather just focus on what that
"underground sea" already implies without inviting comparisons to portals,
demon dimensions, or indefinite non-serious arguments about how one could
have such underground suns work.

(Ideally, heavier edits to this tile would show the sea being underground
in the entrance tile, but the branch in general could do with an art
update, so I will leave that to the discretion of whoever picks up
such desired adjustments to its entrance / floor / rock walls.)

--------------------------------------------------------------------------------
55c375fb90 | regret-index | 2025-10-13 04:48:05 -0230

Rearrange terrain-setting lines in collectors'_demense (Omelet)
This should prevent the vault from using different rock wall tiles in
Swamp and then substituting some of those walls into mangroves, resulting
in mangroves with rock wall tile graphics that can still be awoken and
burned down (but not dug out).

--------------------------------------------------------------------------------
473fb080b9 | David Lawrence Ramsey | 2025-10-12 22:07:40 -0500

Don't mention "standing" in Cloud status desc.
Per ad1f891, you may not have any feet.

--------------------------------------------------------------------------------
fa53f958eb | David Lawrence Ramsey | 2025-10-12 18:50:00 -0500

Fix spelling.

--------------------------------------------------------------------------------
9201133964 | David Lawrence Ramsey | 2025-10-12 09:11:30 -0500

Add missing space.

--------------------------------------------------------------------------------
85a5aa5d54 | David Lawrence Ramsey | 2025-10-12 08:45:52 -0500

Fix typo.

--------------------------------------------------------------------------------
154c593529 | David Lawrence Ramsey | 2025-10-12 08:36:14 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
04fd3a23e9 | DracoOmega | 2025-10-12 03:00:20 -0230

Fix wall monster pathfinding considering walls opaque (gammafunk, various)
This only affected certain types of pathfinding, but significantly that
included the one done for the danger check used to control autoexplore.
This meant that autoexplore would consider rock fish on the other side of
glass to be unable to reach the player until they actually crossed over to
the other side of the wall.

(I've also removed a misleading comment.)

--------------------------------------------------------------------------------
5b29d69663 | Medrano83 | 2025-10-11 21:20:51 +0200

Update description for tile_use_small_layout option

--------------------------------------------------------------------------------
22c0543b7e | DracoOmega | 2025-10-11 16:13:44 -0230

Actually fix the aforementioned issue properly (ASCIIPhilia)

--------------------------------------------------------------------------------
fd4178987c | regret-index | 2025-10-11 15:20:20 -0230

Fix a bad copy-paste for Webtiles (ASCIIPhillia)

--------------------------------------------------------------------------------
c2d90bad4c | regret-index | 2025-10-11 12:30:19 -0230

New vault tile sets + adjacent vault review
This includes:

 * Three sparser styles of grass, overlaid over rough stones or ceramic
   tiles, made from a rejected Swamp floor of roctavian's and crystal
   tiled floors by Denzi. These are meant to provide less lush grass tile
   sets for various different tones (e.g. building interiors, overgrown
   gardens and tighter caves, lava effects, etc) for more overgrown
   branches (Lair, Swamp, Shoals) with only occasional uses elsewhere.

 * A more unique and chaotic rock wall for Gloorx Vloq's realm (replacing
   a 3-rune-branch's wall tile recolouring for extended branch use) and
   other vaults meant to invoke the lord, mixing together Denzi's
   wall_relief and wall_undead with white_noise's recolouring of
   ontoclasm's Crypt stone walls and Darby's ossuary stone walls.

 * A haphazard dark magical "pit" of floor, heavily remixing co's old Lair
   floor tiles after those were replaced in 011df5c. These are deployed in
   various magical and antimagic vaults (such as Abyss mage vaults, Snake
   mana viper vaults, and Spider ghost moth vaults).

 * Two more magical wall types- one derived from roctavian's earlier
   form of V's stone walls and various rpg assets by finalbossblues,
   experimentally producing shelves with more prominent objects on them
   compared to the ones in e.g. Bloax vaults_stone_12 and _13 or Darby's
   vaults-crystal2 and 3, plus one derived from roctavian's rejected
   stone walls for Lair repurposed to have glowing magic tangled within
   them. The shelves are a non-book option for various magical humanoids,
   while the crackling walls provide another magic-looking option besides
   the somewhat over-used state of crystal.

This also removes two different ancient floor tile options that weren't
actually in use, and alters various other vaults as I passed by them
while distributing each of these new tiles. Aside from fixing up
bazaar_lake's fish population, making a few more branch ends show off
more unique tiles, moving another vault from Depths to Vaults, and
cleaning up winding_woodlands.des, not too much should be worth noting.

--------------------------------------------------------------------------------
08d3286d27 | Medrano83 | 2025-10-11 11:57:28 +0200

Android: Calculate scale ignoring the navigation bar
The Android navigation bar may alter the screen height. This is a
problem in landscape mode, where height restricts the scale and fonts
size. This fix obtains the real screen dimensions via JNI.

--------------------------------------------------------------------------------
be1bb89a5e | Medrano83 | 2025-10-11 11:56:41 +0200

Android UI adjustments
- Automatic full layout on Android if the screen is big enough.
- Maximize popups in small layout.
- Fine tune map scale to match default LOS in reference resolutions.

--------------------------------------------------------------------------------
64110d9d53 | Implojin | 2025-10-10 09:39:24 -0500

Add a new tile for darts of disjunction
I was surprised we didn't have a custom dart tile for these; In my head,
dispersal was previously translocations-coloured at some point, but
apparently that wasn't the case and I was just thinking of the icon.

Anyway, it's using the disjunction palette now and I've found an excuse
to make one more thing in crawl purple.

--------------------------------------------------------------------------------
35f8af1e77 | David Lawrence Ramsey | 2025-10-10 08:44:37 -0500

Checkwhite.

--------------------------------------------------------------------------------
75e778cf4b | person50605 | 2025-10-10 08:43:40 -0500

Update translation guide
Since the Transifex project has been removed, we now need to edit the
text files directly.

[Committer's note: Adjusted commit message and ran checkwhite.]

--------------------------------------------------------------------------------
2c4840ae45 | David Lawrence Ramsey | 2025-10-09 20:08:27 -0500

Add another time name to artefacts.

--------------------------------------------------------------------------------
48bd0ad4f3 | DracoOmega | 2025-10-09 15:19:05 -0230

Fix protean grace description including demonspawn mutations (Bamboolord)
This didn't reflect the bonus actually granted (the A screen itself was
accurate).

It would probably be best if this was properly exported to lua instead of
copy-pasted from C++, but this is a quick fix for now.

--------------------------------------------------------------------------------
42f622490f | person50605 | 2025-10-09 12:04:20 -0500

Add line breaks to floor desc
For branch-specific descriptions, add a line-break before the
branch-specific part.

[Committer's note: Adjusted commit message.]

--------------------------------------------------------------------------------
cf32860caa | person50605 | 2025-10-09 12:03:48 -0500

Fix comments in floor desc
Oops, I used // instead of -- for comments in the floor translation.
This fixes that.

[Committer's note: Adjusted commit message.]

--------------------------------------------------------------------------------
fa3fc790c8 | David Lawrence Ramsey | 2025-10-09 11:58:23 -0500

Add person50605 to the credits.

--------------------------------------------------------------------------------
8c381c6311 | person50605 | 2025-10-08 12:04:11 -0500

Update Spanish translation.
[Committer's note: Squashed, ran checkwhite, and adjusted commit
message.]

--------------------------------------------------------------------------------
54748a22c8 | person50605 | 2025-10-08 11:58:26 -0500

Fix German Lair description.
It's gone from eight to five levels deep.

[Committer's note: Split this patch out separately, and adjusted commit
message.]

--------------------------------------------------------------------------------
4347b36f16 | code2828 | 2025-10-08 08:11:04 -0500

Fix indentation of breath_to_spell map.
[Committer's note: Pulled out of previous patch, and edited commit
message.]

--------------------------------------------------------------------------------
25954c103f | code2828 | 2025-10-08 08:09:32 -0500

Make classed draconians' base_type their usual color.
Instead of randomly chosen.

[Committer's note: Squashed, moved indentation change to another patch,
and edited commit message.]

--------------------------------------------------------------------------------
a168a4e2c1 | Isaac Clancy | 2025-10-07 22:13:06 +1300

Fix slimy floors tiles not always being correct
They wouldn't show if the slimy wall producing them hadn't ever been
seen and they wouldn't disappear from floors in sight when a wall
stopped producing then until the wall was next seen. This is
inconsistent with how they are shown in console and also inconsistent
with the new description you get when examining the floor.

Fixes #4021

--------------------------------------------------------------------------------
2aa5b7787d | DracoOmega | 2025-10-07 05:28:26 -0230

Fix missing line break in description of enkindled spells (Namsan)

--------------------------------------------------------------------------------
34d59673ce | Isaac Clancy | 2025-10-07 18:59:10 +1300

Say if a floor square is covered in slime when examining it
Floor squares near walls in the Slime Pits are covered in acidic slime
that corrodes you when on them. However in console, this was only shown
by changing their colour and can be hidden by other things that change
the colour of a square like silence and halos. There isn't a perfect
solution to this, but we can let the player know that the square is
covered in acidic slime when they examine it like what we do for silence
and halos etc.

--------------------------------------------------------------------------------
d34000703d | Implojin | 2025-10-06 22:45:54 -0500

Make Slime floors default brown in console (WizardIke)
Previously, the slime walls were causing adjacent acidic floors to
be highlighted in lightgreen in console, while the base floor colour
being used in Slime was green. These lightgreen highlights were hard to
see considering they're both just a bunch of little dots, so here we set
the base colour to brown so that players can more easily distinguish
which tiles are affected by wall acid.

I don't think this changes the branch aesthetics significantly when
played in console -- it'll still have the lightgreen walls and
wall-adjacent floors.

Note that these floor colours are set at level generation, so to see the
updated colour you'll need to check it in a level that hasn't generated
yet.

--------------------------------------------------------------------------------
ef1816a107 | Implojin | 2025-10-06 20:30:06 -0500

Let (e)quip menu also unequip by default
Here we default `equip_unequip = true`, allowing players to unequip items
through the (e)quip menu by simply pressing the item key by default,
instead of needing to go through the various other unequip menus.

--------------------------------------------------------------------------------
b463225636 | mumra | 2025-10-07 01:02:30 +0100

Let Spike Launcher shoot wall monsters on same tile
It seemed a little unfair the spike trap couldn't hit a monster at
literal point blank range, but fair_adjacent_iterator simply doesn't
have a way to include the origin.

I did consider *always* hitting the monster if you can lure it right
onto the spike trap (and it might look better really) but it'd be such
obscure behaviour it seemed unneccessary.

--------------------------------------------------------------------------------
cf84d1853f | David Lawrence Ramsey | 2025-10-06 18:52:10 -0500

Fix fallback artefact brand handling (hellmonk).
Check against force_type instead of item.sub_type() in
_setup_fallback_randart(), since the forced type doesn't get transferred
to the actual item until after we return from _setup_fallback_randart().

So, among other things, the hat of the Bear Spirit's fallback should now
properly have the spirit shield ego (at least until we break binary
compatibility and only allow the spirit shield ego on offhand items).

--------------------------------------------------------------------------------
ca541438bd | mumra | 2025-10-07 00:23:19 +0100

Fix targeter_explosive_beam behaviour with wall monsters
Bugginess was reported around Mercury Arrow when aiming at a rock fish.
The issue is the explosion map was never getting initialised when the
targetted cell was solid; switched to is_invalid_target to account for
possible monsters. The fix should also apply to Combustion and Noxious
draconian breaths.

--------------------------------------------------------------------------------
c0d0a7eb03 | David Lawrence Ramsey | 2025-10-06 16:54:22 -0500

Fix indentation.

--------------------------------------------------------------------------------
1eab771e70 | David Lawrence Ramsey | 2025-10-06 16:52:07 -0500

Add missing space.

--------------------------------------------------------------------------------
94098a172f | David Lawrence Ramsey | 2025-10-04 17:39:49 -0500

Make Rampage ego desc match artprop ego desc.

--------------------------------------------------------------------------------
5901921300 | David Lawrence Ramsey | 2025-10-04 17:31:14 -0500

Reword ego descs to consistently be first-person.
This matches jewellery and artprop descriptions, and is consistent with
the first-person descriptions already in ego descriptions.

--------------------------------------------------------------------------------
9f382c6734 | David Lawrence Ramsey | 2025-10-04 01:37:15 -0500

Fix vampirism and spectralising ego names (mumra).
They were using the adjective name instead of the verbose one.

--------------------------------------------------------------------------------
3e737eca7e | Implojin | 2025-10-03 22:20:25 -0500

Give baubles a console glyph
16aa5c7703 didn't add console glyph handling for baubles, and although
7c3ebb11f0 added autopickup option compatibility for baubles, they were
still displaying as '0' in console.

Here we map baubles to U+2022 '•' in crawl's default character set, with
'|' as a backup ASCII character set glyph (to ape talismans).

Note that gizmos are also missing a console glyph, but I haven't added
that here, because gizmos are also missing a bunch of other plumbing
that would be needed to function as dungeon-placeable items.

--------------------------------------------------------------------------------
e5e6b2775c | David Lawrence Ramsey | 2025-10-03 17:08:27 -0500

Disallow acquiring foul flame brand if holy.
Since it won't work for you the same way a holy weapon won't work for
you if you're demonic or undead.

--------------------------------------------------------------------------------
85a6fcb57f | David Lawrence Ramsey | 2025-10-02 16:39:53 -0500

Revert "Improve plants mon descriptions"
This reverts commit 374f6ec268afb495de7454641bc4e4a9c19ffd5f.

--------------------------------------------------------------------------------
374f6ec268 | code2828 | 2025-10-02 15:23:19 -0500

Improve plants mon descriptions
There's sunlight in shoals so note that when describing a plant, fungus,
ballistomycete, or tree.

Closes #4452.

--------------------------------------------------------------------------------
76d92dc445 | David Lawrence Ramsey | 2025-10-02 15:10:27 -0500

Fix typo.

--------------------------------------------------------------------------------
047248ea71 | LiciTheCrawler | 2025-10-02 13:18:17 -0500

fix: Prevent acquiring a few things with certain sacrifices
Prevents Mask of the Dragon with Love sac, Death ego with Necro
sac, Command ego with Armour, Summoning or Love sac and Resonance ego
with Forgecraft sac.

[Committer's note: Squashed and tweaked punctuation.]

--------------------------------------------------------------------------------
eaea44af37 | David Lawrence Ramsey | 2025-10-02 11:24:34 -0500

Deduplicate terse jewellery ego descs.
Make jewellery_base_ability_string() use jewellery_effect_name()
now that it's been properly updated and disentangled from the former,
instead of including the same descriptions in two places.

--------------------------------------------------------------------------------
b46ca96979 | David Lawrence Ramsey | 2025-10-02 11:24:29 -0500

Disentangle jewellery_effect_name().
Make it no longer depend on jewellery_base_ability_string() to fill in
blank entries, since it now covers all entries.

--------------------------------------------------------------------------------
a3bcf35f0e | David Lawrence Ramsey | 2025-10-02 11:23:34 -0500

Organise jewellery base ability strings/descs.
So that they're in the same order as in jewellery_effect_name(),
and so that if we're in a game old enough to still have amulets of
controlled flight(!!!) it won't malfunction.

--------------------------------------------------------------------------------
a09cb41c20 | Aliscans | 2025-10-02 00:46:39 -0500

Add an option for item.subtype() to return the subtype of armour.
By default, item.subtype() returns the name of an armour slot for
armour. Add an option to make it return the subtype name (so "robe" for
Victory) instead.

[Committer's notes: I'm also cherry-picking this one from #4686,
because in an ideal world this item.subtype lua wouldn't *need* to be
munging the slotname as the subtype, and we're only doing that to allow
historical user aux-item-autopickup scripts to continue to work.

Thanks to Aliscans for this PR!]

--------------------------------------------------------------------------------
17c18ac9d2 | regret-index | 2025-10-02 00:59:49 -0230

Fix a mismatched zot_orb_type() to orb placement check (Autarch)

--------------------------------------------------------------------------------
4782afe4e0 | Aliscans | 2025-10-01 20:06:20 -0500

Let the Lua item.name() function return DESC_DBNAME.
Adjust description_type_by_name() so that item.name('db') returns the
name given by DESC_DBNAME (calling, e.g., Victory a robe). The other
DESC values could already be specified with item.name().

[Committer's notes: As far as I can tell, this lua bind was intentionally
left out when the others were added in 2007 - 2009. No idea why, but
after discussion with DO I've decided to merge this as it seems unlikely
to cause issues.

Closes #4686.

--------------------------------------------------------------------------------
2fdb7e1e2a | Implojin | 2025-10-01 19:36:33 -0500

Make lua item.equip_type return a string (Aliscans)
Previously, this field returned a number corresponding to the item's
internal equipment slot, which wasn't a terribly useful format for
end-user scripts. Instead, we now return the lowercase string of the
item's equipment slot; e.g. "weapon", "body armour", "gizmo", etc.

Ordinarily I'd be cautious about changing the return signature of an
api call like this, but searches for uses of this both internally and
in qw turned up nothing, and at least one github user seemed to have no
idea this existed (#4686), so I think we're okay just changing this to
be more obviously-useful.

If you're a user and this breaks your rcfile (who are you?!?!), you
simply need to do a string comparison now.

--------------------------------------------------------------------------------
8d9beec91c | Implojin | 2025-10-01 18:06:50 -0500

Fix clua api item.is_redundant documentation
When generating the clua api, this string is used to generate the api
entry name for the function, so previously our api docs had two separate
entries for item.description (and none for item.is_redundant).

--------------------------------------------------------------------------------
a3333b5090 | Implojin | 2025-10-01 18:06:50 -0500

Fix lua item.name description type by number (Aliscans)
As reported in #4686, lua_isstring was always returning true for
numbers here. To quote the Lua 5.1 manual:

"Returns 1 if the value at the given acceptable index is a string or a
number (which is always convertible to a string), and 0 otherwise."

Instead we compare with lua_type, which seems to be the intended way to
do this (and which we already use in l-debug).

Fixing this may reveal other underlying bugs, as these desc-by-number
checks have apparently just always been broken, but I'd rather fix those
up as we find them, as we were *trying* to use this in objstat, among
other places.

--------------------------------------------------------------------------------
7dd2cff76d | David Lawrence Ramsey | 2025-10-01 14:48:46 -0500

Add more words to Crazy Yiuf's speech.

--------------------------------------------------------------------------------
2673f4c4b1 | David Lawrence Ramsey | 2025-10-01 14:38:35 -0500

Properly mark more obsolete egos.
So that they're obsolete both in non-terse and terse mode.

--------------------------------------------------------------------------------
cdf5c94360 | David Lawrence Ramsey | 2025-10-01 14:06:31 -0500

Update comments in is_weapon_brand_ok().
To match the ones in item-prop-enum.h.

--------------------------------------------------------------------------------
b1d8365279 | David Lawrence Ramsey | 2025-10-01 14:04:37 -0500

Fix spelling.

--------------------------------------------------------------------------------
e4f29185cc | David Lawrence Ramsey | 2025-10-01 13:53:44 -0500

Add/organise jewellery_effect_name() entries.
Now it covers all jewellery types (including the obsolete ones) in both
non-terse and terse mode, and all in the same order. The missing terse
names are taken from describe.cc:jewellery_base_ability_string().

--------------------------------------------------------------------------------
e01d595eeb | David Lawrence Ramsey | 2025-10-01 13:51:30 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
440696b903 | David Lawrence Ramsey | 2025-10-01 08:40:12 -0500

Move missile ego descriptions to the database.
Also reword several of them slightly.

Also fix inaccurate description of disjunction, since it blinks those it
hits away instead of blinking them uncontrollably (mumra).

These are not yet searchable via the help system.

--------------------------------------------------------------------------------
e69390e865 | David Lawrence Ramsey | 2025-10-01 08:40:12 -0500

Move armour ego descriptions to the database.
Also reword several of them slightly.

These are not yet searchable via the help system.

--------------------------------------------------------------------------------
b3b7527496 | David Lawrence Ramsey | 2025-10-01 08:40:12 -0500

Move weapon ego descriptions to the database.
Also reword several of them slightly.

Ranged and bladed weapons with special messaging get separate entries,
since there's no way to know whether weapons are such without looking at
something outside their egos.

These are not yet searchable via the help system.

--------------------------------------------------------------------------------
9aa3bd820c | Implojin | 2025-09-30 20:12:49 -0500

Add a clua bind for you.is_useless_skill (dolorous)
This makes the C++ side skill uselessness check available in lua contexts
by calling `you.is_useless_skill("skillname")`.

--------------------------------------------------------------------------------
521a7a493f | David Lawrence Ramsey | 2025-09-30 11:49:19 -0500

Fix missing punctuation in Wildshape desc.

--------------------------------------------------------------------------------
4192e25726 | David Lawrence Ramsey | 2025-09-30 08:51:23 -0500

Add weapon brand comment.

--------------------------------------------------------------------------------
5eed0d1197 | Isaac Clancy | 2025-10-01 00:40:14 +1300

Make invis indicators accurate
Usually, when we show invis indicators we show them where the monster
is. However, when a monster turns invisible and then moves in just
one player turn, we would show the invis indicator at the square
where the monster went invisible (or an adjacent square if there is now
a monster in this square). This happened rarely enough that players
usually thought that it was a bug. Instead, when showing an invis
indicator, we should always show it on the square with the monster.

This also brings some sanity to the `show_update_at` function as it now
only affects the location that we told it to affect.

--------------------------------------------------------------------------------
1c848183b9 | tianmaster | 2025-10-01 00:26:58 +1300

Fix merfolk fish-tail clipping in Quill form (#4804)
Quill form is not a full-body polymorph like Dragon or Fortress Crab; it
only alters certain body parts, similar to Hive or Maw. Therefore the
tile should preserve the player's original species silhouette.
Genies and nagas already have bespoke lower-body tiles for this purpose,
but merfolk were left wearing a humanoid "legs" layer on top of their
fish tail. Copy the approach used for Hive: when a merfolk is in water
(fishtail active) simply crop the bottom of the Quill armour tile so the
tail remains the only visible lower extremity. This produces a clean,
species-consistent sprite.

--------------------------------------------------------------------------------
21e52a9974 | Implojin | 2025-09-30 04:13:59 -0500

Add a species title (Darby)
🐸

--------------------------------------------------------------------------------
42e6ae0925 | David Lawrence Ramsey | 2025-09-30 02:55:30 -0500

Revert "Add menu functionality for Gozag's potion petitions and merchant calls."
This reverts commit 0d9fc5886c60552a2990c88f5580f9ba99974c3f.

Revert "Remove redundant check, and adjust comments."

This reverts commit 68a8e45f2931e104fc1e6480478b9d381eaedf75.

Revert "Sort Gozag-menu-related includes."

This reverts commit 19b71b184affbd07b5148ff45f4cbec595890116.

Revert "Remove now-unused Gozag non-menu shop functions."

This reverts commit 4aeee8c786d6a1fd7f09bdd84c3126cd3f5e64de.

Revert "Clear Gozag potion petitions/shops when escaped."

This reverts commit 0d94558edf84aea71c52ebde45ffdacae482d2da.

--------------------------------------------------------------------------------
0d94558edf | David Lawrence Ramsey | 2025-09-30 02:35:05 -0500

Clear Gozag potion petitions/shops when escaped.
So that we get new ones when we invoke them again, instead of the same
ones over and over until we choose something instead of escaping.

Closes #4819.

--------------------------------------------------------------------------------
4aeee8c786 | David Lawrence Ramsey | 2025-09-30 02:13:11 -0500

Remove now-unused Gozag non-menu shop functions.

--------------------------------------------------------------------------------
19b71b184a | David Lawrence Ramsey | 2025-09-30 01:59:00 -0500

Sort Gozag-menu-related includes.

--------------------------------------------------------------------------------
68a8e45f29 | David Lawrence Ramsey | 2025-09-30 01:41:22 -0500

Remove redundant check, and adjust comments.

--------------------------------------------------------------------------------
7f2bc5db9b | person50605 | 2025-09-29 22:57:59 -0500

Update !Berserk and Berserk status description.
Make the former describe what the berserk status does. It now mentions
HP, speed, and damage buffs; action restrictions (everything but move
and kill); buff extension (or rather, how it wears off quicker if you
don't attack enemies), and -Berserk status.

Make the latter mention that only melee attacks are allowed, and not
ranged weapons or thrown projectiles; use "perform" instead of "make";
and mention that you are slowed when it expires.

[Committer's note: Squashed and edited/consolidated commit messages.]

--------------------------------------------------------------------------------
7c3ebb11f0 | Implojin | 2025-09-29 21:31:07 -0500

Add baubles and gems to wizmode &o menu
Previously, this wasn't working because neither of these item types
had an item symbol defined that could reasonably be input in-game.

Here we map B and G to baubles and gems for this purpose, allowing
this menu to work, and hopefully not creating problems elsewhere.

If this breaks console in unexpected ways, y'all know who to yell at.

Fixes #4816.

--------------------------------------------------------------------------------
089dd02ed7 | LiciTheCrawler | 2025-09-29 17:33:06 -0500

feat: Rework Mask of the Dragon
Mask of the Dragon is one of the boring unrands. This changes it to have
a chance to summon a dragon when using an Invocation with enemies in LoS.

The chance to summon goes up with the piety cost of the ability used,
and the dragons summoned scale with XL.

The Mask's base AC is increased to +2, and it loses Will+ and +3 Slay.

(Okawaru is prevented from gifting it.)

[Committer's notes: Rebased, squashed, minor style tweaks, and edited the
resulting commit message.

Big thanks to Lici for doing this design and implementation!

Closes #4769.]

--------------------------------------------------------------------------------
4b6faae6c0 | David Lawrence Ramsey | 2025-09-29 16:42:51 -0500

Fix typo.

--------------------------------------------------------------------------------
4977470e7c | David Lawrence Ramsey | 2025-09-29 14:32:17 -0500

Update CREDITS.

--------------------------------------------------------------------------------
0d9fc5886c | tianmaster | 2025-09-29 05:23:40 -0500

Add menu functionality for Gozag's potion petitions and merchant calls.

--------------------------------------------------------------------------------
a4a9301aaf | Implojin | 2025-09-28 18:26:09 -0500

Fix many teleport closets in wad_woods
As reported in #4811, the wad_woods series of vaults was able to drop the
player into various teleport closets and islands. It looks to me like
this was primarily caused by these vaults having multiple disjoint
pockets of space abutting the edge of the vaultdefs: As best as I can
tell, level connectivity here was only guaranteeing one path into these
vaults in the absence of `@` glyphs, so when they were emplaced, these
little pockets on the edges of the vaults could turn into closets if the
vaults were placed overlapping something solid.

There were 10 closets and 2 islands (thanks to gammafunk for noticing the
islands) here that I've patched; I'm no grand vaultsmythe, so this series
of vaults may yet want another pass.

wad_woods_tower     (2 closets)
wad_woods_01        (1 closet)
wad_woods_04        (3 closets)
wad_woods_river_01  (split island)
wad_woods_river_03  (split island)
wad_woods_road_01   (1 closet)
wad_woods_minihive  (3 closets, including the central hive!)

minihive now has no_tele_into in its central hive, and I've also made
some stylistic adjustments to woods_04 and woods_06 with the intent of
reducing some of their autoexplore pain points -- it seemed quite
unfriendly to force the player to bash their way through quite that many
plants and bushes.

Ideally I'd like to make this entire series of vaults more autoexplore
friendly, but I'm done poking at this for now. Maybe later!

Fixes #4811.

--------------------------------------------------------------------------------
ba8827eb1e | Medrano83 | 2025-09-28 16:46:36 +0200

Android: Update to NDK r28 and other dependencies
This is required to publish the app on Google Play after November.
https://android-developers.googleblog.com/2025/07/
transition-to-16-kb-page-sizes-android-apps-games-android-studio.html

--------------------------------------------------------------------------------
30ccb7d8ce | Vincent Cheng | 2025-09-28 16:44:26 +0200

Bring upstream packages closer to Debian/Ubuntu distributed packages
Hi, I'm the new maintainer for crawl in Debian, and I'd like to sync up
the upstream Debian packaging with what's currently released in [Debian
sid](https://packages.debian.org/source/sid/crawl). I merged a handful
of changes from the upstream packaging into the Debian version (thanks
to @robertxgray in particular for the changes to use
`install-xdg-data`), and I'd like to contribute back some of the changes
I made. The goal here is to reduce the diff as much as I can (outside of
debian/changelog) to make it easier for me to package newer versions of
crawl in Debian going forwards, and also to reduce the likelihood that
the Debian/Ubuntu vs upstream packages diverge enough to cause problems
e.g. APT upgrade conflicts, although that's already highly unlikely.
Thanks for considering!
--------------------------------------------------------------------------------
d88e050752 | David Lawrence Ramsey | 2025-09-28 08:18:05 -0500

Add some draugr-related Donald lines.

--------------------------------------------------------------------------------
87a9c9a43c | David Lawrence Ramsey | 2025-09-27 20:48:12 -0500

Fix comment typo.

--------------------------------------------------------------------------------
6e6508596a | Implojin | 2025-09-27 19:54:21 -0500

Update des syntax documentation
Specifically, add a section describing typical use of the ^ glyph,
(traps were weirdly missing from this!), and update the use of = , as
that's defaulted to runed clear doors since b3145dc118.

--------------------------------------------------------------------------------
f307c94c40 | Implojin | 2025-09-27 15:37:37 -0500

Move mark of execution's rampage check into player::rampaging
This check was added to the wrong method in a31ef7ce32.

There is no existing implementation of monster rampage, so this didn't
matter for now, but if that ever changes it would be good to have this
check in the right place so that all actors don't start rampaging while
the player's mark of execution is active.

--------------------------------------------------------------------------------
4770884fd2 | DracoOmega | 2025-09-27 03:05:37 -0230

Allow reaching attacks against monsters in walls
(As well as ctrl+direction attacks.)

--------------------------------------------------------------------------------
f287e4c00f | Implojin | 2025-09-26 23:02:08 -0500

Add an assert to player::how_mutated
There are a few places where returning a negative result here would
cause nonsense to happen, and this shouldn't be doing so anyway.

Let's just add an assert here to make sure the bugs in fd47f0a967
are caught if they ever return in the future.

--------------------------------------------------------------------------------
473ba29e1b | DracoOmega | 2025-09-27 01:02:56 -0230

Don't hide rC+ / rF+ on randart armour with resistance ego (oxeimon)
And more properly fold them into artprops, like was done for many other
egos in 4f6ac0d.

Also, do a little validation so that it isn't possible to produce an item
with rF++++ this way.

--------------------------------------------------------------------------------
468f62f02d | DracoOmega | 2025-09-27 01:02:56 -0230

Make a function actually return what it claims to return.
(Not that this return value is really used for anything, but it's
consistent with similar functions, some of whom do have their return values
used.)

--------------------------------------------------------------------------------
fd47f0a967 | DracoOmega | 2025-09-27 01:02:56 -0230

Refactor to fix some issues with player::how_mutated()
The most critical of these was that code added by b9f27a8 (11 years ago!)
would result in any how_mutated() returning an extremely negative number
for any demonspawn with any Ru sacrifice (...because the code to subtract
the number of sacrifices was in the mutation iteration loop....)

This resulted in several problems: silver doing no additional damage to
them (no matter how mutated), diminishing returns on normal mutations never
happening, and (most visibly) getting huge negative EV and Slaying if they
also had Protean Grace. Which, finally, made this problem visible.

But there were also a few more subtle issues with how 'non-innate' and
'silver affecting' were conflated, that caused Makhleb marks to count
against the player's normal mutation count for purposes of making normal
mutation sources fail. But also, *temporary* mutations also counted for
this, which seems incorrect to me.

So I have slightly refactored how_mutated, disentangling silver checks a
little more, and making only normal mutation count have any effect on
mutation chance.

This fixes #4813

--------------------------------------------------------------------------------
d341bd4f2c | coraxioU9 | 2025-09-26 14:43:34 -0500

Note Okawaru's joy of hard battles in Powers screen
Piety gain for Okawaru scales with the difficulty of the monster faced;
the gain is otherwise identical to that of other gods. This commit adds
a special mention that Okawaru "really likes" it when you kill tougher
monsters.

(Author notes: Okawaru is placed at the end of the switch statement,
specifically to line up with the comment that "unique/unusual piety gain
methods [should go] first" -- killing stronger foes isn't *that* unusual
or unintuitive.)

Closes #4656.

--------------------------------------------------------------------------------
adde8f3e0b | David Lawrence Ramsey | 2025-09-26 14:42:04 -0500

Fix punctuation in god favour message.

--------------------------------------------------------------------------------
7a9f7ce033 | coraxioU9 | 2025-09-26 14:07:08 -0500

Add baubles to "autopickup toggle" menu
(Note: the autopickup toggle menu is primarily/internally intended for
"known items" in comparison to unknown items)

Baubles were previously not in this menu, and it seemed logical to add
them. In particular, the entire "Baubles" category is added,
futureproofing if other baubles besides flux are created.

Closes #4619.

[Committer's note: Moved the bauble check in check_item_knowledge() to
just after the talisman check, removed sorting of baubles to match
talismans (since added bauble types are likely to have tiers
eventually), and adjusted a comment regarding the latter.]

--------------------------------------------------------------------------------
9e89a6c8f2 | DracoOmega | 2025-09-26 05:27:47 -0230

Fix message for hitting an rC- monster with ice (Wandering mushroom)
When I made this message less misleading for pure cold beams in 7bd8858, I
forgot to do so for ice ones.

--------------------------------------------------------------------------------
fce907168a | brianfaires | 2025-09-25 14:20:39 -0500

crawl_regex_find -> crawl_regex_matches

--------------------------------------------------------------------------------
6ef1f922e4 | DracoOmega | 2025-09-25 00:31:19 -0230

Disable animations during fsim
While there were no screen redraws during fsim, a lot of animation code
would still include full delays, greatly slowing down fsim for a variety
of artefacts that could produce spell-like effects from attacking. In fact,
this behavior was so non-linear with the number of simulations performed
that I suspect it might have something to do with overlays stacking up
enormously with no screen refresh to clear them. So instead, let's not do
that.

As an example, this commit reduces the length of time it takes my computer
to produce a full fsim chart with Arc Blade to ~3 seconds from a previous
**23 minutes!**

--------------------------------------------------------------------------------
acf2245ded | Memoria | 2025-09-23 18:36:49 -0500

Give bee octopodes and jellyfish cats haircuts
When in several forms, including quill, flux, hive, and medusa, felid
and octopode player dolls had default humanoid hair drawn over the top-
center of their tiles. As all but flux meld helmets, do not draw hair
for anyone in those forms, and for flux, exclude it for both felid and
octopode player dolls.

--------------------------------------------------------------------------------
d1d6a90be8 | David Lawrence Ramsey | 2025-09-22 16:16:25 -0500

Alias the small abom. quote for the large abom.

--------------------------------------------------------------------------------
e495c5c0ca | person50605 | 2025-09-22 15:59:36 -0500

Add reference to bloodless to !Lignification
Tweak the !Lignification description to reference the user's blood
turning to sap., thereby making them bloodless

Fixes #4752

[Committer's note: Reformatted and adjusted commit message.]

--------------------------------------------------------------------------------
f2c00fc3ce | Implojin | 2025-09-22 13:07:14 -0500

Cut talisman shop prices in half (Darby)
These were really high. Half is completely arbitrary here based on
nothing but vibes. Fiat.

--------------------------------------------------------------------------------
9d19f5fe6d | Isaac Clancy | 2025-09-22 21:00:16 +1200

Fix console screen tearing on Windows
On Windows we were writing the output to the console line by line which
allowed the screen to refresh when only part of the frame was written
out to the console. This resulted in part of the current frame showing
and part of the previous frame. To fix this, update the whole dirty
region of the console at once with a single call to
`WriteConsoleOutputW`.

--------------------------------------------------------------------------------
7725fd915e | Isaac Clancy | 2025-09-22 20:38:07 +1200

Fix incorrect message about losing your capstone with Ignis (code2828)
If you start as a monk and then get Ignis from a faded altar, you will
have 6 stars of piety. If you then drop to 5 stars you would get a
message saying that you can no longer use rising flame which is
incorrect as unlike other capstone abilities, rising flame can be used
at any level of piety.

Fixes #4681

--------------------------------------------------------------------------------
2141946dcd | regret-index | 2025-09-22 02:50:28 -0230

Very scatter-shot vault review
Of note:

 * Yet further adjustments have been made to ossuaries to mildly buff the
   weakest ones and mildly nerf the strongest ones.

 * cryptofortress_bobbens has more monster set option variety.

 * To make nicolae_qazlal_style_of_elements more consistent in its
   monster grouping while still preserving the spirit of having the earth
   monster in the set actually escape the glass confines so many other
   vaults use as just decoration, the D set uses other early elemental
   animals (as Qazlal wrath and Qazlal vaults both deploy), and a new Elf
   set-up has been added to place regular elementals in their native
   branch.

 * grated_community_mu has been moved from Depths to D:12-14 and
   Vaults:1-4, alongside immense header clean-up. The monster set has been
   extremely out of date for a long while on both threat levels (plain
   kobolds, centaurs, gargoyles) and on branch differentiation levels
   (orcs, elves)- rather than try to 100% revise its contents, I've made
   two seperate sets of somewhat-overlapping contents placed earlier. This
   comes with notable layout revisions (so it can place in V), some heavy
   tile changes (including fix-ups for using early D rock tiles for stone),
   and a hopefully much easier to parse header that doesn't constantly
   redirect assignments to their console glyphs instead of the default
   vault glyphs.

--------------------------------------------------------------------------------
9ac725a8d5 | regret-index | 2025-09-22 02:50:27 -0230

Recent-ish mutation icon tilework
New icons for the Reckless mutation (made from Ontoclasm's Divine Shield
invocation icon and CanofWorm's Weapon Gift invocation icon) and the Lucky
mutation (made from Ontoclasm's recharging icon and Denzi's rejected Charms
skill icon). Also, some brightening of Makhleb's Dis-destruction mutation,
to help it stand out a bit more and be of potential palette matching with
other future icons.

--------------------------------------------------------------------------------
e6a3148c77 | regret-index | 2025-09-22 02:50:27 -0230

Prevent several egos in "any armour ego:X" from picking orbs or scarves
This prevents eight or so vaults using "any armour ego:[something]" from
placing e.g. orbs of rPois or scarves of rF without the normal orb or
scarf ego properties. While other aux slot armour getting egos like rF
and rC are fine for portals, the rF and rC scarves are strictly worse than
scarves of resistance and the orbs are a very hard sell versus just using
e.g. a buckler of the given resistance (or an orb randart with resists,
which is probably also more common in comparison). It'd also require a lot
of specifications in both past and future vaults to avoid placing items
that shouldn't otherwise generate anyway. As such, we might as well
prevent these generating in the first place.

--------------------------------------------------------------------------------
92f08d0a1f | David Lawrence Ramsey | 2025-09-21 16:18:04 -0500

Adjust msg for spells not added to the library.
It's now "you learned nothing new or useful," in case the spell you
tried to add to your library is new but you're unable to memorise it.

Closes #4665.

--------------------------------------------------------------------------------
59adca7514 | Implojin | 2025-09-21 15:40:43 -0500

Reduce prompts when attacking peripheral summons (CarefulOdds)
With this commit we no longer prompt the player when they try to attack
self-summoned, peripheral monsters, unless doing so would cause an
explosion or penance. (I don't think it was currently possible to cause
penance by attacking these targets because they're all nonliving and
brainless, but this should be more future-proof, at least.)

The context here is that previously, players casting things like
fire storm > fridge would have to deal with a ton of nonsense prompts
about damaging their own conjured monsters. Yes, the player knows.
No, the player likely doesn't care.

We do continue to warn about damaging non-peripheral summons, under the
logic that if the player is using spells that are primarily summons
they'd probably prefer the prompt.

Re: prompting about explosive monsters and penance: There's an argument
that the penance case should prevent the cast instead of prompting, and
that might happen in a future commit.

--------------------------------------------------------------------------------
fbd95ee8bf | Implojin | 2025-09-21 09:54:02 -0500

Squelch OTR's ally immunity messaging
As an aoe spell with a duration, this gets *very* spammy -- we don't
need it! Players can figure out their allies aren't being hurt by seeing
them not be hurt.

Low-SNR message spam like this really bothers me, it just trains
players not to read messages which eventually catches them in a gotcha
moment when something important happens. I'd like to try to reduce this.

(It looks like the OTR messaging was previously *intended* to be quieted,
but it wasn't being passed through properly.)

--------------------------------------------------------------------------------
e7e061af33 | Memoria | 2025-09-21 09:15:26 -0500

Fix OTR ignoring ally protection (CarefulOdds)
Ally protection, such as on ancestors and demonic guardians, prevented
the impact damage of Olgreb's Toxic Radiance, but not the subsequent
poisoning effect. This was easy to miss because most protected allies
were also rPois. This commit addresses the exceptions to that rule.

--------------------------------------------------------------------------------
757fed6239 | Isaac Clancy | 2025-09-21 21:20:54 +1200

Fix a vault failing to place an orb of light
The lugonu_bribe vault is supposed to place an orb of light on its alter
when the player first sees it if the player worships The Shining One,
however, it was using the wrong item spec for creating one which
resulted in an error showing up in the player's message log instead.

--------------------------------------------------------------------------------
c084f1ff9f | Memoria | 2025-09-21 03:40:46 -0500

Fix Ru penance title checking current piety
When abandoning a god with Invocations as their highest skill, a player
gets their penance title even if not under penance, as with Ru, and ends
it only when the penance ends: in Ru's case, never. However, the title
checked their current piety and overrode it afterward only if under real
penance, giving ex-Ru Invocations masters normal Ru piety titles, such
as Drop of Water. Simply give traitors zero-piety titles from the start.

--------------------------------------------------------------------------------
5b27ca99f2 | gammafunk | 2025-09-20 23:38:51 -0500

Make boulder immune to petrification (powerbf)
Fixes #4799.

--------------------------------------------------------------------------------
202509a6c5 | Isaac Clancy | 2025-09-21 15:25:59 +1200

Fix comes into view messages for named orcs (cfcfcfcfcfcfcfcfcfcf)
When Beogh wrath sent a named orc after you with other orcs, the "comes
into view" message would have a stray 'a' or 'an' before the orc name,
for example "An Olfrun and 2 orcs come into view."

Fixes #4724

--------------------------------------------------------------------------------
d97c707fbc | DracoOmega | 2025-09-20 18:49:56 -0230

Slightly improve Nemelex card targeting around plants (not_that_greg)
The tracer used for aiming destruction cards treated all possible bolts as
non-penetrating, which had particularly awkward behavior with plants;
the game literally wouldn't let you aim at a target behind a plant, even
when the majority result of a card could shoot through it just fine.

Instead, treat the default as penetrating, and if the player happens to
roll the lowest power tier that can't actually penetrate, that's just the
(un)luck of the draw.

(In the future, some proposed Nemelex tweaks will probably make it more
unambiguous what type of effect you're getting at the point you're aiming
it, but this seems an improvement for now.)

--------------------------------------------------------------------------------
f853087cd1 | DracoOmega | 2025-09-20 16:54:41 -0230

Don't leave items thrown at wall monsters stuck in walls (Planckenstein)

--------------------------------------------------------------------------------
a7b1b26e73 | Implojin | 2025-09-20 12:24:32 -0500

Tweak potion and scroll shops in grated_community_mu
This vault has the unfortunate theming of telling a joke that's only
funny once: The inhabitants *really* want to keep out the riffraff,
so they setup a gated community and charge exorbitant prices to get you
to turn around and leave. Ha-ha.

Here we lower the prices for the scroll and potion shops in this vault
from greed 50 to greed 35 to match its preexisting slightly-lower smithy
shop greed, and we extend their set of available items to include more
questionably-useful consumables, hopefully allowing the player to maybe
want to buy something from them occasionally.

--------------------------------------------------------------------------------
550f29803e | Isaac Clancy | 2025-09-20 19:24:54 +1200

Add Zhang Haocheng to the credits

--------------------------------------------------------------------------------
3d66d47428 | Isaac Clancy | 2025-09-20 18:56:33 +1200

Fix swapping between Release and Debug builds in MSVC
Some of the dlls that crawl depends on in the MSVC build weren't always
being rebuilt when swapping between Release and Debug configurations,
which resulted in a crash when e.g. loading release crawl.exe with debug
libpng.dll.

--------------------------------------------------------------------------------
9f34567225 | Isaac Clancy | 2025-09-20 18:51:14 +1200

Fix crash with Jiyva spawning slimes on damage (code2828)
When Jiyva creates slime creatures as a result of taking damage, they
are meant to target the creature that caused damage to you. However, if
the damage was from a cloud placed by a dead ally (e.g. fire clouds from
a blaze-heart golem), the target would be set to ANON_FRIENDLY_MONSTER
which isn't a valid target and resulted in a crash. To fix this, don't
spawn slime creatures when damaged by a dead ally (we already don't when
damaged by a dead enemy).

Fixes #4733

--------------------------------------------------------------------------------
7f04e93277 | gammafunk | 2025-09-20 01:37:56 -0500

Fix generation of certain ring artefect properties
The code for specifying fixed randart properties relies on having an
accurate value for any intrinsic properties for the item's base type.
Certain rings like strength and slaying store use their plus value to
store how much they increase the relevant property, but this isn't yet
available when checking fixed artprops for item defs like `any ring...`.
We have a map to store the needed intrinsic properties and values for
jewellery items, but rings using plus had values of 0 in this data.
Hence an item def like `any ring artprops:Str:4` could roll a ring of
strength as its subtype, initially pass the artprop validity test, but
subsequently fail that test after its plus was set and the rest of the
properties were being filled in. This would lead to an error message and
the fixed properties being ignored.

This commit adds the standard plus values to the intrinsic property
values for the relevant rings and refactors related code.

--------------------------------------------------------------------------------
0d4a0e7ad0 | Zhang Haocheng | 2025-09-20 16:36:24 +1200

Fix various wizmode trap placement issues (#4773)
When using wizmode terrain placement to place a trap, fix the
following problems

1. Don't ask which trap to make if already specified.

2. Fix trap always made at you.pos() even when told to make it at
another place.

3. When the player places a shaft on a branch end, game awkwardly says
"Vault [nothing] tried to place a shaft at a branch end". It now says
"Something" if env.placing_vault is empty (dungeon.cc:6493). Hopefully
it looks better.

Fixes #4757.
--------------------------------------------------------------------------------
372a382c62 | DracoOmega | 2025-09-20 00:36:59 -0230

Make explore traps trigger at start of player turn instead of end
This simultaneously improves two things:

1) A very weird timing issue existed where tiles revealed during monster
   actions could queue up a trap effect that would only happen after the
   next *player* action. For instance, a swamp worm could harpoon shot the
   player into unexplored territory, then the player could attack the swamp
   worm and immediately get teleported, despite no new tiles being revealed
   on that turn.

2) Teleport traps allowed monsters at the player's new location to get an
   immediate action, before the player was given any chance to respond.
   While this was relatively unlikely to be overly punishing, in rare
   situations could result in the player being one-shot without any
   realistic chance to do anything about it. (In a worst-case scenario,
   a Chei worshipper moving through water might give monsters at their
   destination many turns worth of actions before the player got another
   one!)

This should hopefully be both slightly less weird and less unfair in those
situations.

--------------------------------------------------------------------------------
704fe40cd5 | DracoOmega | 2025-09-20 00:14:10 -0230

Fix parrying SH bonus not being correctly considered temporary
(Only affected HUD coloring, I believe.)

--------------------------------------------------------------------------------
00d5cd5258 | DracoOmega | 2025-09-19 23:08:36 -0230

Remove some (hopefully) needless special-casing of webtiles status export
I cannot find any current reason these statuses are special-cased (one of
them didn't even display properly in webtiles until the previous commit).

Looking through the history, there is some suggestion acrobat was done this
way to make the timing of it turning blue work in webtiles, but it
currently seems to have no effect on that, either way.

--------------------------------------------------------------------------------
4e2feb06e7 | DracoOmega | 2025-09-19 23:08:36 -0230

Improve colouring of temp AC/EV/SH modifiers, refactor webtiles handling
If player defenses are reduced below their normal levels via temporary
effect, they will now be colored red in the HUD (this was done previously
only for corrosion's effect on AC, and not if there were any positive
temporary effects of any kind active at the same time).

Also, export the boosted/normal/penalized defenses status to webtiles
directly instead of asking it to do its wn string comparisons on statuses,
which constantly resulted in things being overlooked or drifting out of
date. Now they should be in constant agreement with console/local tiles.

(I did not extend this to temporary changes to HP/stats, since those are
much rarer, but they could also be done the same way in theory.)

--------------------------------------------------------------------------------
22f87b5890 | David Lawrence Ramsey | 2025-09-19 20:00:59 -0500

Properly consider dead Prince Ribbit human.
Both in terms of tile and zombification message.

Closes #4496.

--------------------------------------------------------------------------------
c9ef2968d0 | David Lawrence Ramsey | 2025-09-19 18:58:14 -0500

Remove redundant #ifdef.
The removed electroferric vortex is already covered by it once.

--------------------------------------------------------------------------------
e9053afd9e | Aliscans | 2025-09-19 15:56:05 -0500

Stop debug_xom_effects() (&^X) from trying to run -1 times.
prompt_for_int() signals an error to debug_xom_effects() by returning
-1, which caused it to create a nonsensical xom_debug.stat file.

Fix this by only generating a file if the user requests a positive
number of iterations.

--------------------------------------------------------------------------------
7fd328712a | David Lawrence Ramsey | 2025-09-18 20:02:42 -0500

Unbrace.

--------------------------------------------------------------------------------
d9faca2a39 | DracoOmega | 2025-09-18 21:51:41 -0230

Fix an Arenasprint softlock (regret-index)
The dlua call to directly change terrain ignored temporary terrain changes
altogether, making it possible for situations like trying to place the
dungeon exit on top of a tree from Summon Forest, and that exit thus
disappearing entirely when the forest effect expired (and returned it to
its original underlying terrain).

Instead, immediately revert terrain changes at that tile.

(This may affect some things in other uses of this function, but I feel in
general that if a vault wants a terrain change to happen, that it really
actually should.)

--------------------------------------------------------------------------------
73db0cba50 | DracoOmega | 2025-09-18 21:51:35 -0230

Fix the Lernaean Hydra destroying stone walls (regret-index)
A combination of Summon Forest and the Lernaean hydra could be used to
permanently destroy walls - even stone or metal ones - since wall
destruction done via monster movement lacked the underlying terrain check
that spell digging does.

The behavior with diggers was sightly odder in that the original wall would
return, leaving Xak standing inside stone that you'd temporarily frozen
with rime yak form (for instance).

Both of them should now only be able to dig into terrain whose original
feature they could either also dig or occupy.

--------------------------------------------------------------------------------
9ab3afe60a | DracoOmega | 2025-09-18 08:02:26 -0230

Mention Bane of the Dilettante in the skill menu when affected by it
Also, perform a somewhat unsatisfying fix to prevent it being nearly
impossible to read this help text if too many bonuses and penalties were
activate at once, since it would overflow into the command list at the
bottom of the menu.

(It currently does this by no longer tying to put bonuses and penalties on
separate lines. I wanted to only do this when they'd otherwise overflow,
but it is remarkably difficult to know how much text space we have at the
point of assembling the text, and all of our frontends disagree with each
other. But the bonus from manuals always went on the same line, so
hopefully this is okay enough.)

This fixes #4674

--------------------------------------------------------------------------------
cbb4ff4ceb | DracoOmega | 2025-09-18 06:59:10 -0230

Fix Bane of the Dilettante not affecting unarmed combat (various)
I always considered this a 'weapon skill' and it was an oversight of mine
that it wasn't actually in the enum range.

This fixes #4653

--------------------------------------------------------------------------------
ef8bedc22d | Implojin | 2025-09-17 09:08:12 -0500

Make Maurice slightly less greedy (acrobat)
Here we remove the tech where players could throw non-mulching darts,
javelins, etc. at Maurice indefinitely, locking him into an item pickup
loop until he died.

--------------------------------------------------------------------------------
8ccb4c9eb4 | David Lawrence Ramsey | 2025-09-17 00:35:39 -0500

Disallow the hive talisman for the loveless.
According to commentary in PR #4633, lovelessness' not being accounted
for here is a bug.

--------------------------------------------------------------------------------
378a922e91 | David Lawrence Ramsey | 2025-09-16 21:28:38 -0500

Remove erroneous extra space.

--------------------------------------------------------------------------------
685023a0f2 | David Lawrence Ramsey | 2025-09-16 18:45:07 -0500

Add another valour name to artefacts.

--------------------------------------------------------------------------------
788241d4c1 | David Lawrence Ramsey | 2025-09-16 14:28:49 -0500

Properly warn when memorising spells under Trog.
god_spell_warn_string() has been expanded to account for memorising
spells, and it's now used for the warning prompt instead of a warning
message beforehand. Rhe warning message is displayed on its own in
interactive mode, as before, but not in wizard mode, since wizard mode
bypasses the conduct checks.

(Currently, only Trog hates both memorising spells and casting
them, so god_spell_warn_string() is a bit redundant now, but if it
differentiates between memorising and casting spells at some point in
the future, the distinction will be useful.)

Also, actually use the "no memorising spells" conduct, instead of
faking it with "spell casting" conduct.

Closes #4791.

--------------------------------------------------------------------------------
0fe1b3c525 | regret-index | 2025-09-16 14:17:03 -0230

Tweak some newer tiles
Adjust one of the sheen pixels on the front half of clockroaches, and
simplify the palette of vampire bloodprinces.

--------------------------------------------------------------------------------
7b498173eb | regret-index | 2025-09-16 14:17:03 -0230

Arenasprint: more balance work, more tiles
While I personally prefer the Sprints based on highly randomized monster
sets (arenasprint, pitsprint, zigsprint) for having substantially less
spoiler issues and more inherent variety than the others, they also will
continuously need more work than the rest of them for having previously
been highly reliant on generic "place:Branch" calls. (Such calls, of
course, have scaled poorly with the past decade-plus since these sprints
were first made trying to buff most later branches.)

Alongside heavy adjustments across earlier sets and tweaks to later sets,
I've also tweaked the spellbook shop once more, added some explicit
evokers for mildly attractive additional options, and replaced the
now-useless scroll of identify shop with a shop selling each orb type.
Boss kills now also give out random parchments, so magic-using characters
not using spell-gift gods can get some variety between each run past the
fixed book shop without upending the overall balance.

Additionally, I've made a small number of quick tile-hybrids to show
monster variants as arenasprint notably relies upon. There's quite a few
more to do in the future if these work out, but I'd like to rethink the
current inconsistent threat level of the sprint's "bosses" being high-HP
regular enemies versus uniques not announcing they're given more HP.
(Maybe sticking to mostly uniques and giving them a consistent adjective?)

 * Flame-cult kobolds: Sastreii's kobolds / demonologists tiles.
 * Witches: Sastreii's arcanist and occultist tiles.
 * Orb golems: Sastreii's iron golems and nargun tiles.

--------------------------------------------------------------------------------
797e1778c9 | Nikolai Lavsky | 2025-09-16 14:19:58 +0300

fix: remove an unused variable

--------------------------------------------------------------------------------
5195f5fa9f | Nikolai Lavsky | 2025-09-16 14:19:27 +0300

feat: add Warded flag to the monster utility
A followup to 668f0552 and 1509c973.

--------------------------------------------------------------------------------
bc4ca33cb1 | David Lawrence Ramsey | 2025-09-15 23:20:44 -0500

Fix wording.

--------------------------------------------------------------------------------
e184829fb3 | Memoria | 2025-09-15 21:27:26 -0500

Double disjunction dart mulch rate (DracoOmega)
They were originally balanced around the assumption that they mulched at
curare rates, but it was left out at the time.

--------------------------------------------------------------------------------
05f6c35849 | Memoria | 2025-09-15 21:13:12 -0500

De-spoiler throwable mulch rates (Ge0ff)
Instead of saying "It may be destroyed on impact," state the chance of
destruction on impact as a fraction (as many of the percentages are non-
integers or less visibly round). Refactors to get the brand-modified
mulch rate in a separate function from the actual check to mulch, so it
can be displayed to the player without code duplication.

--------------------------------------------------------------------------------
5fa5d96457 | David Lawrence Ramsey | 2025-09-15 19:26:57 -0500

Fix typo.

--------------------------------------------------------------------------------
adfededa23 | DracoOmega | 2025-09-15 19:47:36 -0230

Tweak wording of scarves of repulsion (hellmonk)
Some players interpreted 'missiles' to mean only those fired by ranged
weapons and not all forms of dodgeable projectile, so let's be a little
more explicit. (And also show the magnitude of the bonus.)

--------------------------------------------------------------------------------
a93910155b | DracoOmega | 2025-09-15 19:03:36 -0230

Refactor place_cloud to do its own validity checking, fix inconsistencies
place_cloud would assert if it tried to place a cloud inside a wall, which
has recently become possible to trigger in many more circumstances via wall
monsters. However, there were already many, many places where the code
depended upon the caller manually checking cell_is_solid() first and this
feels very needless to me in a situation where silently not placing a cloud
is already the behavior we want.

So now place_cloud does its own checking for in_bounds() and
cell_is_solid() and should be safe to call under any circumstance. I have
gone through and removed now-redundant checks from countless calls of this
method.

In addition, I have removed cases of vetoing place_cloud if a pre-existing
cloud was at that spot. Most of these predate the modern consistent cloud
priority behavior, meaning that quite a few effects (effectively at random)
would be blocked by purely cosmetic clouds (eg: foul stench, Frostbite, and
air-flavored Upheaval, to name just a few)

--------------------------------------------------------------------------------
6fb57b8551 | Isaac Clancy | 2025-09-15 14:47:22 -0500

Fix tile mismatch on monster lookup menu
When typing part of a monster's type into the ?/m menu, it will list all
monsters who's type is similar to what you typed in. In this list,
monsters that usually have a randomized tile will always show the same
tile. However, after selecting one of these monsters to view its
description, it will have a randomized tile. To fix this tile mismatch,
also don't randomize the tile when viewing the description.

--------------------------------------------------------------------------------
04a43924b8 | David Lawrence Ramsey | 2025-09-15 14:21:54 -0500

Fix verb conjugation in sticky flame msg (oops).

--------------------------------------------------------------------------------
8624165a17 | David Lawrence Ramsey | 2025-09-15 14:05:29 -0500

Use proper pronoun in sticky flame msg (#4790).
Closes #4790.

--------------------------------------------------------------------------------
1517b53afc | David Lawrence Ramsey | 2025-09-15 12:01:27 -0500

Fix wording and punctuation.

--------------------------------------------------------------------------------
53471ace1b | David Lawrence Ramsey | 2025-09-15 11:52:31 -0500

Fix typo and missing word.

--------------------------------------------------------------------------------
a5a8217afb | regret-index | 2025-09-15 13:22:06 -0230

Changelog updates through e5b59a6
This is mostly updating more obvious public-facing documentation about
newer tesseract rules and new wall-swimming monster rules, though it does
also include properly recording 76c1861 as the last changelog update
missed.

--------------------------------------------------------------------------------
e5b59a6c5f | DracoOmega | 2025-09-15 02:45:33 -0230

Fix find_newmons_square_contiguous
Accidentally broken by me rebasing wall monster code against new habitat
code in dea4f60.

Though this is used much less often than one might think from the name, and
may only have affected Arena and TRJ spawns (which could no longer appear
on any non-adjacent tile).

--------------------------------------------------------------------------------
83c447b6d4 | DracoOmega | 2025-09-15 02:45:33 -0230

Fix a very minor bug with wizmode monster placement
It would only attempt to place using the monster's actual habitat at a
distance of 2 from the player, and only expand its search beyond that using
HT_LAND.

This had the very minor effect of refusing to place wall monsters inside
walls that were more than 2 tiles away from the player.

--------------------------------------------------------------------------------
d59a36a5fb | David Lawrence Ramsey | 2025-09-14 22:22:14 -0500

Fix typo.

--------------------------------------------------------------------------------
12e3b08ebc | David Lawrence Ramsey | 2025-09-14 21:48:49 -0500

Update pluralisation tests.
Orc skeletons are no longer a thing, and neither are cockroaches.

--------------------------------------------------------------------------------
6dcbb0502f | David Lawrence Ramsey | 2025-09-14 21:21:54 -0500

Make roach-type monsters use roach zombie tiles.
Do this for both clockroaches and radroaches, now that the two no longer
share a genus.

--------------------------------------------------------------------------------
b3c9c7c7d2 | David Lawrence Ramsey | 2025-09-14 21:10:38 -0500

Remove one last giant cockroach reference.
Radroaches no longer have it as a genus, and clockroach is not an
appropriate replacement for it here.

--------------------------------------------------------------------------------
899332cdcb | David Lawrence Ramsey | 2025-09-14 20:57:01 -0500

Fix missing instance of cockroach -> clockroach.

--------------------------------------------------------------------------------
ae7c7d41fc | David Lawrence Ramsey | 2025-09-14 20:44:10 -0500

Fix typos.

--------------------------------------------------------------------------------
da7a6dae43 | David Lawrence Ramsey | 2025-09-14 20:43:12 -0500

Fix spelling.

--------------------------------------------------------------------------------
d441ead689 | David Lawrence Ramsey | 2025-09-14 20:40:34 -0500

Remove erroneous "/".

--------------------------------------------------------------------------------
500a117a72 | regret-index | 2025-09-14 22:34:11 -0230

Vault review, latest earth monsters edition
Alongside many minor changes and some Sprint adjustments, this commit also
handles three new monsters' distributions:

 * Rock fish are placed somewhat sparingly in vaults, as there was not
   a lot of depth-appropriate vaults deploying rock worms or interesting
   vaults using big fish / giant goldfish in the first place. Most
   notably, they have a few Sewer appearances to help nudge the ends of
   difficulty over again. New vaults will most likely be needed to
   really explore the possibilities of this return of wall-walking
   monsters.

   * Note that for now, vaults directly placing wall-walking monsters
     inside walls must have non-solid features next to one of those tiles
     for the monster to place, though there are still plenty of
     possibilities to use in doing so.

 * Kobold geomancers appear in a few kobold vaults, mage vaults, and
   earth vaults alike.

 * Mountainshells mostly just appear in Lair vaults with earthen themes,
   as well as a few Lair vaults looking for the highest-tier monsters
   native to the branch. They also get some placements in Earth zigs
   (though without any zig-stacking scaling) over boulder beetles, since
   they're much more capable of being relevant at that point.

The main other bit of note here is nerfing one of the Necropolis vaults
using moths of wrath.

--------------------------------------------------------------------------------
08238e9f3d | regret-index | 2025-09-14 22:34:11 -0230

Give bone dragons misery breath, mildly nerf stats, adjust placement
Bone dragons used to be a lot more common through the late game of Crawl.
They were out-of-Depths for late D and Vaults:$, as well as regular spawns
in all other Hells plus Zot. While they technically got trample and normal
speed to help them move from their original very plain designs, their
otherwise vanilla nature lead to both 2d46a37 and 6c14c25 culling them
from a lot of places due to having little effect beyond slowing down
players enough to let e.g. hell effects ram into the player. Their current
main home in Tartarus as of 58b44f3 mostly relies on them being the more
boring defensive behemoth when there's also profane servitors used in the
same branch, and their occasional appearances in Crypt ends as plain
monsters don't really help out how much the branch needs as an optional
branch mostly reusing monsters repeatedly present throughout the rest of
the game.

Some adjustments here would help out both Crypt and give the monster more
life beyond being straightforward melee. In particular, their description
outright explicitly mentions they lack the uniting mechanic all other
dragons have, which can afford another manifestation- a breath weapon that
hopefully reach the heights of notability other endgame dragons produce.

Bone dragons now use Boris's March of Sorrows spell added in 7102d64,
which produces both a line and a radius-1 burst of clouds of excruciating
misery- clouds introduced in d47e5fa that drain 10% of one's health at a
time, resisted by rN. It's nice to make rN passingly relevant for the
branches most thematically linked to it, and it should also still feel
meaningfully different from shadow dragons in doing flat damage ignoring
other defenses to instead emphasize the resist / one's positioning. In
exchange, they now have 15% less HP and a little less AC / EV, to offset
how they're now fairly more dangerous (especially alongside other undead)
without full resists.

They've been moved out of Tartarus (both to emphasize undertakers from
the prior commit and to avoid mixing together easily-confusable clouds)
and can now show up rarely in Crypt outside of a few branch end / vaults,
with mild adjustments of curse skull weight (c.f 0754acf) and flayed
ghost weight (as we're using in most endgame branches) to compensate.
Alongside some vault adjustments, this should give roughly another 25%
chance of finding a bone dragon each Crypt visit. With a fair number of
undead adjustments and additions over the past few versions, we're
hopefully getting reasonably close to making the branch feel more even in
threat level rather than just being a branch to clear off experience-gated
costs full of fodder with random curse skulls and liches- the next goal
would probably be to work more on the wraith end of things.

(Since Yred can offer these as a top-tier black torch summon, They now
also give out free misery cloud resistance to Their worshippers, the way
revenant soulmongers being in the list means Their worshippers get free
spectral flame cloud resistance. I'm not entirely sure if this should be
explicitly stated anywhere, since we're not really communicating current
umbra + spectral flame cloud resistances here- we'll see how other devs
feel about this.)

--------------------------------------------------------------------------------
9f71ee0e91 | regret-index | 2025-09-14 22:34:11 -0230

New monster: undertakers, for Tartarus
This new monsters, as usual, is meant to fulfill multiple purposes. They
get in another Necromancy spell into the undead-focused Hell as is notably
also split into debuffs, they get another interesting home for the now
implemented capacity for wall-walking monsters, and they finally expand
Crawl's strangely limited exploration of disembodied body parts beyond
skulls and cranial organs. They'll also provide another high-defenses
melee-damage-centered monster to permit revising an older, more boring
monster in the same space.

These giant hand constructs, flavoured as dragging corpses down to hell,
have stats somewhat akin to bone dragons with a fair bit less health and
deconstructibility instead of dispel vulnerability. Aside from thus being
sturdy and hitting reasonably hard, they have a few tricks:

 * They occasionally cast Borgjnor's Vile Clutch at range, the former of
   which was implemented for orc apostles back in 3bc30c4 and the latter
   made in 37b5911 is currently only used for spark wasps. While the
   spell has been quite successful in player hands, the obviously strange
   flavour of hand-bearing corpses even in wild branches is one that can
   afford mild elucidation; there's also very little constriction in
   extended outside of frail derived undead or Mnoleg's tentacled
   monstrosities, so it should still be distinct in its rare usage.

 * They can walk through walls, much like rockfish and earth elementals.
   Aside from the flavour of matching BVC and continuing to experiment
   with threatening standard player positioning, it also lets them play
   around with the newly reworked effect in the chokepoints of
   layout_catacombs and layout_cathedral_of_symmetry, or the more mazy
   and rocky parts of Tar:7. It can also lean a little into how Tartarus
   uses diggable rock for an understated earth theme in contrast to Dis
   being so focused on metal.

 * They have AF_DRAG, to preserve a little of the repositioning bone
   dragons also kept (and which we deploy in a reversed all over lategame
   dragons and extended derived undead in the form of trample). This
   overlaps a little with oni incarcerators in placement, but they should
   be reasonably different enough in feel as a frailer duo compared to
   a singular Manifold Assault top-tier threat.

These are mostly placed by fully replacing bone dragons in Tartarus and
Oblivion Howl (allowing said dragons to be revised in a following commit),
and come in duos 75% of the time much like bone dragons did 100% of the
time in Tartarus. They may also rarely be deployed in Crypt ends leaning
on thematically-adjacent mummies and already-present demons, as both fits
their theme and the needs of Crypt without quite reaching for the top
tier of threats already present there. (Most wall-walking monster uses are
set to patrolling so they don't disappear into level bordering walls,
which these also get.)

Their tile is derived from a CC0 cursor by Der_Wisch.

--------------------------------------------------------------------------------
03c3835724 | DracoOmega | 2025-09-14 22:34:11 -0230

New monster: Mountainshell
A second monster with warding, aimed at a later, rarer, and stronger
position than clockroaches. These are rare high-tier Lair spawns that
act slowly but have Seismic Stomp, allowing them to deal unavoidable
damage at range.

They are technically LRD-able, though their warding means that you can't
actually hurt *them* this way unless you're literally inside the blast
radius yourself.

[Commiter's notes: I've made them a tile by heavily editing an alligator
snapping turtle tile Denzi made that was never used. Vault placements
will come in a later commit.]

--------------------------------------------------------------------------------
f896cb7629 | DracoOmega | 2025-09-14 22:34:10 -0230

Make Brom's Barrelling Boulder castable by monsters
No current home for this aside from ghosts/illusions (or spellspark
servitor, if the player is feeling cheeky), but it might find one in the
future.

--------------------------------------------------------------------------------
ab517a5dfe | DracoOmega | 2025-09-14 22:34:10 -0230

Add kobold geomancers
An earlygame LRD-using monster. Has very little offensive ability if the
player isn't next to a wall, but can be scary if they are.

Spawns earlier the kobold demonologists (and without a band), but can also
later appear in demonologist bands where their smite-targeting may offer
useful support from behind other kobolds.

[Commiter's notes: I've made them a tile combining Sastreii's various
kobold tiles, walking earthen tome tile, and shattered gem tile, alongside
roctavian's old necromancers.]

--------------------------------------------------------------------------------
a39da1ece1 | DracoOmega | 2025-09-14 22:34:10 -0230

Give kobold demonologist's tile a weapon offset
Somehow it never had one, despite actually starting with a weapon.

--------------------------------------------------------------------------------
d75a07fb2d | DracoOmega | 2025-09-14 22:34:10 -0230

Replace giant cockroaches with clockroaches
Clockroachs are earlygame monsters meant to tutoralize Warding, as well as
provide a novel threat for mages. They have low HP, but also warding and
sandblast (a spell whose damage is also most dangerous to the very
characters who would rather blast it before reaching melee range, too).

While aimed a bit deeper than giant cockroaches were, the latter were just
one of multiple trivial earlygame threats that are nearly interchangeable,
so I feel there's no need to preserve their existance so close to this new
monster.

[Committer's notes: I've made these a tile by heavily editing a tile
submission for them by LemurRobot. I've also manually edited their vaults-
most notably, this serves as a soft attempt to yet further rein in Sewer
threat variance by giving weaker sewers clockroaches and stronger Sewers
dart slugs.]

--------------------------------------------------------------------------------
e37ab6d585 | DracoOmega | 2025-09-14 22:34:10 -0230

Let earth elementals wall through walls
Give the blandest elemental a little something more than 'slow, but
omniresistant'.

[Committer's notes: To discourage trying to kite multiple earth elementals
away from walls or other speed 10 enemies away from said elementals, I've
moved them from speed 6 to speed 8 and very slightly lowered their melee
damage. This comes with a few bits of adjustment to vaults to make them
patrolling, so they don't wander off deep into unknown wall territory,
and also occasionally to pin them behind lava or runed doors.]

--------------------------------------------------------------------------------
8ba1295188 | mumra | 2025-09-14 22:34:09 -0230

Some minor whitespace fixes

--------------------------------------------------------------------------------
ffae444f99 | DracoOmega | 2025-09-14 22:34:09 -0230

Move items out of walls if a monster dies in one
Only rockfish draugr can currently both use equipment and move through
walls, but who knows what the future might hold?

(This uses a slightly different appoach than the code used for pushing
items out of walls in other situations to specifically avoid pushing the
item to places the player cannot currently see, which tends to make it
look as though the item just disappeared.)

--------------------------------------------------------------------------------
21aa791233 | mumra | 2025-09-14 22:34:09 -0230

Rock Fish: new wall monster
Rock Fish use the wall monster habitat to present a new threat in early
D that removes the advantage of 1-tile corridors as a defence and
introduces the mechanics of wall monsters to the player with a monster
that is otherwise quite vanilla.

It is usually found in a small school to press the advantage of being
able to attack from more sides than a corridor would normally allow.

They also move faster through walls than open terrain, giving another
reason to prefer takling them in the open rather than corridors.

Tile: a recoloured and tweaked lava fish, originally made by Denzi.

[Committer's note: DracoOmega did a fair bit of work here, but the credit
was lost in her passing me this branch to do vault and tilework on. She
squashed some commits together, tweaked wall pathfinding to make fewer
superfluous detours, and adjusted rock fish stats, depth, and description.]

--------------------------------------------------------------------------------
d4d456d04f | mumra | 2025-09-14 22:34:09 -0230

Unify swimming logic
The check for swimming in terms of energy use was different than the
swimming check on the monster class, used for other purposes. This
meant lava swimmers (salamander etc.) were NOT considered swimming in
some places. The impact of this was minimal - just some messaging
around item drops and zombification - but a potential slipup if anyone
used the swimming check for any more significant purpose, and eliminates
an old FIXME comment.

[Committer's note: DracoOmega refactored this somewhat to account for new
habitat code.]

--------------------------------------------------------------------------------
dea4f60aa7 | mumra | 2025-09-14 22:34:09 -0230

Wall Monsters: new mechanic
Add an HT_WALLS habitat and bring back monsters that can occupy wall
tiles.

The general *concept* of monsters that can move in wall spaces was never
the issue but what was problematic was the execution (with Rock Worms).
Most of your tools not working against something was mainly annoying.

The new iteration updates beams and targetting code so wall tiles can be
attacked with almost all methods of combat, ranged and spells. The only
exception is cloud placement: this would result in even more in-depth
changes to allow clouds to exist sometimes on walls, and it seemed
reasonable to leave this as a singular defence advantage for wall
creatures.

The advantage these monsters can press is that they are able to surround
the player on all sides, even in a 1-tile corridor. Monster
implementations in further commits will be designed around mechanics
that exploit this unique ability further.

They are unable to move on walls where any adjacent floors are tagged
no_tele_into - thus preventing them breaching walls of dangerous vaults,
or escaping from intentionally created closets (e.g. entry vaults with
transparent walls).

This is minorly exploitable by the player if they know about it to
restrict the monster's movement; the same is also true at the map edge.
There is a more clever solution possible for both these problems but
it's non-trivial enough that I will leave this for later improvements.

[Committer's notes: DracoOmega rewrote a bunch of code to work properly
with the refactoring of monster habitat code done since this was first
written. I've tweaked the criteria from "all solid terrain" to "statues
and normal walls" to both help the earthen flavour of future monsters
getting this as well as avoiding issues of them passing through permarock
in Sprints or runed doors in general.]

--------------------------------------------------------------------------------
ab639c6bf4 | Implojin | 2025-09-14 15:25:54 -0500

Update contrib process docs for 2025
Here we remove several defunct doku wiki, mantis, and sourceforge (!)
links, and try to update these docs to more accurately reflect the
process in $current_decade.

I've removed specific tiles developer names as points of contact from
tiles_creation.txt, because individual availability fluctuates over time
and these docs are doomed to bitrot.

--------------------------------------------------------------------------------
46b0391784 | Implojin | 2025-09-14 08:44:35 -0500

Deduplicate a name in the credits
Mea culpa on this one, I hadn't known LemurRobot was already listed
under an earlier name.

Lovely splash, though. :)

--------------------------------------------------------------------------------
c40730ba34 | RypoFalem | 2025-09-13 23:51:53 -0500

Fix spell failure display with '!' in talisman descriptions
Talismans were changed from evokable to wearable but there was still a
check to see if the talisman was evokable before players could preview
spell failure rates. Now it checks if the talisman is wearable when
determining if spell failure changes should be shown.

Fixes #4756.

[Committer's notes: Reworded commit title and squashed.

Closes #4788.]

--------------------------------------------------------------------------------
3927eee56e | DracoOmega | 2025-09-12 23:53:45 -0230

Fix ktype string for KILLED_BY_DEATH_EXPLOSION just being 'spore'
It apparently was named this ever since it was first introduced 17 years
ago (by a commit which even talked about ball lightning, for that matter!)

The enum itself also hasn't been KILLED_BY_SPORE in quite a few years and
this is just confusing when doing sequel queries.

--------------------------------------------------------------------------------
93f52a107a | Implojin | 2025-09-12 06:39:50 -0500

Fix a ?/m crash when looking up Nobody (various)
Previously, when trying to lookup Nobody's description before they'd
actually generated in a game, their descriptor was trying to access an
uninitialized vector.

Fixes #4766.
Closes #4768.

--------------------------------------------------------------------------------
dbd17588e6 | regret-index | 2025-09-11 09:08:32 -0230

Fix logo border transparency issues in title_lemurrobot_gozag_vaults
Also properly center the logo by a few pixels.

--------------------------------------------------------------------------------
4f87ab926f | David Lawrence Ramsey | 2025-09-10 23:14:33 -0500

Remove unneeded backslash.

--------------------------------------------------------------------------------
46761a3f36 | Implojin | 2025-09-10 22:46:31 -0500

Add LemurRobot to the CREDITS
We've used several of your tiles (and now your nice gozag splash),
this should have happened sooner! Thank you!

--------------------------------------------------------------------------------
5cb60a99e0 | Implojin | 2025-09-10 22:40:56 -0500

Add a new gozag splash by LemurRobot
Pretty nice! 💰💰💰

--------------------------------------------------------------------------------
9fc263de82 | regret-index | 2025-09-10 17:09:09 -0230

Fix water replacing Ziggurat stairs and exits (dillyguru)
c1aa15e adding elemental wellsprings to the Summoners ziggurat set ends up
with Crawl trying to make sure said water-bound monsters actually start
off with a permanent source of water underneath them, which has a small
chance of replacing Ziggurat stairs and exits with water if the rare set
then decides to place that on the stairs or exit. (Wellsprings are placed
via the water monster set in Cocytus rather than the regular floor
placement code, so this never came up for the Cocytus ziggurat set). The
Summoners set already has a reasonable amount of variety for something so
rare, so it can just lose wellsprings to avoid this being an issue.

--------------------------------------------------------------------------------
48490cfe52 | Isaac Clancy | 2025-09-10 20:38:41 +1200

Fix a crash when shooting a ranged weapon
In commit 2b4b8e2 I introduced a crash when firing a ranged weapon with
no weapon in your offhand

--------------------------------------------------------------------------------
b74a43c243 | DracoOmega | 2025-09-10 02:10:50 -0230

Remove superfluous power arguments from permafrost/bog targeters
They have no power-scaling effects to their targeting (and at least in
Permafrost's case, never did).

--------------------------------------------------------------------------------
15f2ed07ff | DracoOmega | 2025-09-10 02:10:50 -0230

Fix Vehumet's range bonus not properly affecting Arcjolt (Bamboolord)
The game would claim its range was 3, but not actually jump to targets
beyond range 2.

--------------------------------------------------------------------------------
d5cd0e1a86 | DracoOmega | 2025-09-10 02:10:45 -0230

Refactor to fix Vehumet range bonus benefitting monsters
spell_range() was, by default, player-centric, yet used in many places for
monster casters. This meant that Vehumet's range extension incorrectly also
applied to monsters for a small handful of different things, including:
glaciate, permafrost eruption, searing ray (after the first turn it is
cast), fulminant prism, the post-bounce range of many bouncing beams, and
a the return value of couple clua functions. The bug with glaciate
(ie: worshipping Vehumet increasing Lom's range) may have existed as far
back as 0.25!

This commit fixes those bugs, as well as hopefully improving some of the
methods involved. Old Crawl had many spells with power-based ranges, but
few of them remain, so it is no longer required to specify power for every
range check (many, many spells used completely arbitrary numbers for it
just to satisfy the method signature), but it is now easier to specify the
*caster* you're checking range for, which can automatically calculate power
as well, when required.

An agent should be specified for any call to spell_range() where Vehumet's
range bonus *might* apply to some caster, but is otherwise optional for a
little less boilerplate.

--------------------------------------------------------------------------------
4d9aeb82da | DracoOmega | 2025-09-10 02:02:38 -0230

Remove two meaningless variable spell ranges from monsters
Lightning bolt could be as short as range 4 at low power, but the lowest
HD caster of it already has enough power to reach 8.

Beckoning Gale was never even meant to be anything other than full LoS
range and only had variable range by accident. The lowest caster already
reached range 7, though, so technically only barachi could see any
difference.

--------------------------------------------------------------------------------
2449f45e1b | David Lawrence Ramsey | 2025-09-09 23:28:11 -0500

Fix unused parameter warning.

--------------------------------------------------------------------------------
2b4b8e2f9e | Isaac Clancy | 2025-09-10 16:06:39 +1200

Fix penetrating weapons being blocked on coglins (cfcfcfcfcfcfcfcfcfcf)
When using a penetrating weapon in one hand and a non-penetrating weapon
in the other, coglins would get a message saying the path to their
target was blocked half the time when shooting through a plant.

Fixes #4528

--------------------------------------------------------------------------------
0f61ba0e50 | DracoOmega | 2025-09-09 16:02:45 -0230

Let autofight move towards warded enemies (various)
Autofight understood that it was impossible to damage warded enemies while
at range and would not consider attacking them. This is desireable for
ranged combat (so that it will shoot other things instead), but more
awkward for melee characters or when there is only one enemy in sight.

Now autofight should move towards a warded enemy if there are no other
valid targets the player can currently damage.

(This will be even more important in the near future when warded enemies
will exist beyond one bane and one wizlab.)

--------------------------------------------------------------------------------
f63fd7415a | RypoFalem | 2025-09-09 22:57:22 +1200

Display delay on throwing weapons (Planckenstein)
Just like with other weapons. Not only is this convenient but it also
makes it clearer that your throwing delay is effected by shields which
wasn't apparent to some players.

--------------------------------------------------------------------------------
c6a7b8500d | RypoFalem | 2025-09-09 22:57:22 +1200

Always display weapon delay in item descriptions
Previously it was displayed only when the displayed delay would be
different from the base delay. Normally, this was when you had zero
skill but it could also be hidden if your armour/shield delay canceled
out your weapon skill delay reductions. This was unexpected and I think
it's a good idea to always show the current delay anyway. It's short and
when it's absent, I need to spend time looking for it so I can be sure
that it's absent.

--------------------------------------------------------------------------------
35a1f1af79 | gammafunk | 2025-09-06 20:53:37 -0500

Welcome Wizard Ike to the Dev Team!
Welcome aboard! 🥳

--------------------------------------------------------------------------------
c6a5e4eafc | regret-index | 2025-09-06 14:37:50 -0230

Mostly catch-up vault review
This vault review is mostly accumulated fix-ups of small reports and pieces
I've noticed over time regarding newer tile adjustments or Trove clean-up
since the big overhaul, as well as a few other pieces like distributing
this version's newer equipment types in more vaults / troves / portals.
There's not a lot of other individual matters worthy of note, but:

 * Wizlab entrances and Borgjnor's Mausoleum have more visual fanciness,

 * The Crypt:3 shop now has more orb types and a chance for plate armour
   of death randarts,

 * and Tomb entrances no longer place plain mummes in exchange for various
   Ossuary monsters (that could at least hypothetically be relevant in
   support capacities) plus slightly more sphinx draugr.

--------------------------------------------------------------------------------
3737fe9480 | Memoria | 2025-09-06 02:11:23 -0500

Allow one-handed small species to acquire spears
Previously, if acquirement generated a polearm for a one-handed spriggan
or kobold, this would lead to a crash, as their only option, spears, are
acquirement weight 0. As it is their best and only polearm option, and
allowing at least one polearm type is the only way such a character can
acquire usable and powerful unrand polearms such as Wyrmbane, give basic
spears an effective weight of 1 in this case only.

It might be cleaner to give starter weapons weight 1 by default, or to
forbid characters in this situation from acquiring Wyrmbane, but either
seems comparatively sad for the player, so this exception is made here
for now.

--------------------------------------------------------------------------------
868e30f2ff | David Lawrence Ramsey | 2025-09-05 16:24:58 -0500

Fix erroneous item entry.

--------------------------------------------------------------------------------
b00f08be49 | DracoOmega | 2025-09-05 18:07:15 -0230

Remove undefined equipment behavior when transiting monsters (Xolotl)
In general, monster inventories are not stored inside the monster
themselves, but in env.items and the monster just stores references to
indicies in that array that correspond to their equipment.

When monsters are transited from one floor to another, their old inventory
is copied and new links set up when they are placed. *However*, determining
where to put them has to check if the monster is flying, which has to check
their equipment, *which isn't set up yet, and is thus pointing to random
items on the new floor*. In most cases, this is invisible, since most items
are either empty or have no relevant properties, but in theory a monster
*could* incorrectly think it was flying if one of its links pointed to a
flight item on the new floor.

Or, as led to this being discovered, could crash if the monster thought it
was wearing an artefact spellbook.

I believe this bug has probably existed approximatetly forever, but just
been very hard to trigger in a relevant way.

--------------------------------------------------------------------------------
b0061d6f5e | regret-index | 2025-09-05 14:42:46 -0230

New level document: a list of monsters not meant to leave their branches
A suggestion made a few years ago by elliptic, which I had him proofread
back then and which I've tailored to my own preferences afterward. Most of
this is meant to make sure extended branches still get to have their own
notable highlights compared to the rest of a 3-rune game, as well as to
not overly use monsters that readily injure and debuff other monsters.

As the document itself notes, a vault's monster choices can end up being
rejected or changed for reasons outside of this list- it is meant to
mostly to provide an offhand quick piece of reference material for both
vault submissions and vault edits. There are also a fair number of
specific exceptions, like Ziggurats and the Vestibule of Hell- reading
the full document is recommended.

(Ideally, this list would be expanded in the future for earlier branches
after getting a sufficiently varied monster pool readied for the each of
them, but it has been a slow process over the past versions to
sufficiently fill out other goals of D and endgame / extended branches.
So it goes.)

--------------------------------------------------------------------------------
f8f1bfb782 | yrdzrfxndfvh | 2025-09-05 14:42:40 -0230

small assortment of vaults (#4747)
adds some vaults across various branches

[Committer's notes: To be precise, this contains an Elf arrival
vault, a minivault each for Orc and Depths + Crypt, an entry vault each
for Tomb and Ziggurats, a Necropolis subvault, and a new lategame
guarded_unrand vault.

Initial feedback was provided privately and handled in follow-up
commits that have been squashed into the one commit. This included
leaving out a Dis non-end encompass vault using ironbound mechanists,
which has been rejected for now for putting living midgame branch guest
monsters in a Hell, but which will be accepted after the Hell-Pan roulette
project most likely ends up adding a Nazja's Tempering monster for Dis.

This submitter has assented to regular vault edits previously and
recently, which has lead a fair bit of header clean-up. Other notable
changes include:

 * Making _all_or_nothing_shop use a fair bit of Lua to read fairly better
   than constantly going over the header character limit repeating the
   word "randart" constantly- I really should make some formalized vault
   functions for this sort of super-long weapons list sometime.

 * Moving klown_kollege to Zot.des where it belongs, upgrading its rewards
   in an appropriate fashion, and significantly adjusting its aesthetics.

 * Replacing enter_ziggurat_h's moths of wrath (too much bleed-over
   between Depths and Zot for something as common as a ziggurat entrance,
   too dangerous to allow deep troll earth mages to dig out) and lost
   souls (functional but not really anything presented as common monsters
   these days) for some weaker support monsters in higher quantities-
   torpor snails, soul eaters, glass eyes, and rakshasa.

Resolves #4747.]

--------------------------------------------------------------------------------
a0e6fa1765 | regret-index | 2025-09-05 14:26:24 -0230

Adjust a few semi / recent tiles
 * I've changed the accursed mutation (which gives undead species their
   rDoom-) tile to use the Doom red-black palette of drudes / ravens /
   cacodemon extremities / Doom bolt icon and vfx, as well as the patterns
   used in Ill-Omen and Doom Bolt icon / vfx tiles, rather than just
   matching regular Yred invocation colours entirely.

 * I've also changed the contamination suceptibility icon away from the
   maze patterns of draining to instead the speckles of the Mutagenic Gaze
   icon, though with colours from the current Flux Form / contamination
   explosion tiles instead.

 * Discussions of deploying the Mass Regeneration spell on a future holy
   has lead to me noticing it never got its own icon in e97a2a3, so I've
   put together a quick one combining ontoclasm's Heal Other icon with
   roctavian's Regeneration icon.

(Also, I've removed yred_dark_bargain.png from the unused folder, due to
being used now thrice- Malign Offering, Shadow Draining, and this accursed
mutation icon. To help other devs without their own collections of removed
tiles, I've added some more spell icons to the folder: roctavian's Flame
Tongue / Controlled Blink / Phase Shift, and ontoclasm's Deflect Missiles
plus Excruiating Wounds.)

--------------------------------------------------------------------------------
77b2a6e07e | David Lawrence Ramsey | 2025-09-05 14:26:24 -0230

Add eyeball-themed entry vault (#4750)
[Committer's notes: While the vault's fountains of eyes are very gimmicky
features to put at the very start of the game and lack for any obvious
connection to Jiyva and Lugonu as the other eye fountain vaults lean upon,
we have over 300 arrival vaults as is and it's a good summation of some
of Crawl's weirder flavour to occasionally put unique decoration earlier,
so I'm fine with merging this with only a mild downweighting. Also, since
apostrophes work in vault names (c.f. bddc013), I added one in.

Resolves #4750.]

--------------------------------------------------------------------------------
c1aa15e374 | yrdzrfxndfvh | 2025-09-05 14:26:24 -0230

Adjustments to zig sets (#4638)
 * Shoals: Small boost to formless jellyfish and sphinx marauders
           (two of the more dangerous enemies in the branch)
 * Orc: Loses iron trolls (which don't really spawn in there), gains
        ettins
 * Crypt: Small boost to cognitogaunts and ancient champions
 * Ice: Reduces scaling for (former) top tier monsters so
        orbs of winter can be more prominent
 * Earth: Add walking crystal/earthen tomes and the iron trolls that Orc
          lost
 * Chaos: Add blood saints, fleshcrafters and zykzyl
 * Archers: Add cherubim
 * Summoners: Add elemental wellsprings

Also some minor formatting tweaks

[Committer's notes:

 * Crypt: Slightly lowered cognitogaunt scaling, as they're not that much
   difficult for megazig players to destroy and we've got enough sets
   trying to hate on mages as is.

 * Earth: Rejected putting obsidian bats over gargoyles, as they're more
   tangential + demonic than necessary, and zig levels are already using
   harmless monsters in the first Zig for the sake of letting people only
   briefly dipping into Zigs to not be completely destroyed (see Fire
   floor efreets, Ice floor ice devils, Air floor raiju, Lair itself.)

 * Negative Energy changes were ignored due to this submission managing to
   be between eee5569 and 9245ba7, the latter of which already added the
   orbs. (I'm also holding back alderkings from the floor due to planning
   a less plant / fae themed monster with Siphon Essence with Hell-Pan
   Roulette).

Also did my own further formatting adjustments to the above commit message
and ziggurat.lua itself. Resolves #4638.]

--------------------------------------------------------------------------------
7224c163e6 | code2828 | 2025-09-04 21:06:43 -0500

fix DjWn starting note missing a spacer

--------------------------------------------------------------------------------
51e9893999 | DracoOmega | 2025-09-04 20:57:44 -0230

Make warn_contam_cost default to true (various)
This was frequently asked about and we prompt for less important things
by default already, so this may possibly be correct.

--------------------------------------------------------------------------------
f293c4eec6 | DracoOmega | 2025-09-04 20:56:50 -0230

Don't prompt the player when a monster casts Irradiate (tekkud)
The warn_contam_cost option was apply even to monster-cast Irradiate.
Worse, if the player said no, the spell would in fact be aborted!

--------------------------------------------------------------------------------
feca0caa60 | Memoria | 2025-09-04 01:02:06 -0500

Prevent Spit Poison self-target
If the only valid targets were immune to Spit Poison, it would default
to targeting the player, needlessly prompting for self-damage when there
was no good reason to self-target anyway, and no meaningful benefit to
allowing this manually while many other effects do not. The T2 mutation
upgrade, Breathe Poison, is untouched because it can place defensive
clouds under and around the player.

--------------------------------------------------------------------------------
fad36595ba | DracoOmega | 2025-09-04 02:13:56 -0230

Fix Golden Breath tracer only warning about the first target hit (Darby)
Despite the breath being penetrating, the tracer was not, and so would
ignore penancy or ally-hit prompts if anything at all else was in the way.

--------------------------------------------------------------------------------
edf5e7425e | DracoOmega | 2025-09-03 22:56:07 -0230

Ignore artefacts when checking if floor jewelry is redundant (tekkud)
This could lead to minor info leaks when unID'd non-artefact jewelry on
the floor had autopickup disabled because a randart of the same base type
was in the player's inventory, but this is probably not correct behavior
anyway, since randarts are not guaranteed to be better than non-randarts
(if the player has rolled a poor enough one).

--------------------------------------------------------------------------------
138740454e | Memoria | 2025-09-02 21:07:47 -0500

Give spark wasp zombies the hornet zombie tile
They were using the killer bee zombie tile by default, despite the live
spark wasp tile closely resembling the live hornet tile.

--------------------------------------------------------------------------------
f7730aa224 | DracoOmega | 2025-09-02 02:43:44 -0230

Fix a crash with examining submerged shops (Omelet, Darby)
If the player had seen a shop on a given tile (or had it pre-revealed to
them in a Necropolis), but that tile was not currently in view and had
also had its terrain changed (such as by a nearby water nymph) examining
that tile (or even just moving your mouse over it in local tiles) would
crash.

This is a little bit of a cludgy fix (and still imperfect, since trying to
examine such a shop will show a question mark instead of its normal icon),
but a lot of code calls shop_at as a way of checking if there *is* a shop
at some arbitrary space, rather than in situations where it 'knows' there
is one, and this avoids disrupting any of that.

--------------------------------------------------------------------------------
1007c679b5 | code2828 | 2025-09-01 21:09:33 -0500

unify capitalization of Blorkula the orcula
...except in the 0.32 changelog. There are far more 'o'rculas than
'O'rculas throughout the code, and Blork the orc used small o's.

Fixes #4758.

--------------------------------------------------------------------------------
e448dd4f9f | Steinar Darri Þorgilsson | 2025-08-31 12:50:07 -0500

fix: correct typo 'Mahkleb' to 'Makhleb'

--------------------------------------------------------------------------------
a0c3d34337 | Memoria | 2025-08-31 07:50:01 -0500

Correctly draw shadows in levels with slimy walls
Whenever there was at least one slimy wall anywhere in the level, all
wall shadows everywhere would fail to draw, when the intent was to only
remove shadows around the slimy walls to draw their corrosive border
tiles instead. Besides being a visual bug also seen after Oozemancy, it
also leaked information to tiles players on whether a Slime entry vault
was on Lair:4 or Lair:5.

It now uses similar logic to the visually similar Frozen Ramparts tile
effects.

Resolves #2668.

--------------------------------------------------------------------------------
b454e72584 | DracoOmega | 2025-08-30 10:51:23 -0230

Account for certain allies being immune when autotargeting (CarefulOdds)
So that, for instance, it won't attempt to avoid aiming fireballs near Hep
ancestors or similar.

--------------------------------------------------------------------------------
7fb7e31020 | Implojin | 2025-08-28 21:29:18 -0500

Welcome Darby to the devteam!
Truly excellent artwork, welcome aboard! 🥳

--------------------------------------------------------------------------------
1a43761e04 | NormalPerson7 | 2025-08-28 20:59:43 -0500

Track runed doors in stashes again (#4533)
This was broken by 01fb971, which made runed doors no longer be
considered notable features.

Resolves #4533.

--------------------------------------------------------------------------------
1fd3e0fab4 | DracoOmega | 2025-08-28 15:32:58 -0230

Fix inverted logic in solar flare check (Acrobat)
It was triggering *only* if the player attacked firewood.

(Also extend the firewood check to several other post-attack effects like
Paragon and duration extensions.)

--------------------------------------------------------------------------------
fb6d2ffd9a | Implojin | 2025-08-28 10:48:03 -0500

Update new dev onboarding docs for 2025
No reason at all for this commit, there's nothing to see here.

--------------------------------------------------------------------------------
b9b9cd8368 | regret-index | 2025-08-28 05:31:21 -0230

Adjust trove.des (rypofalem, gammafunk)
 * As #4746 brought up, it's a little awkward for the Dread Knight's trove
   to be the only lowered weight trove without any documentation as to
   why. (It has no spellcaster support due to the -CAST propert of the
   unrand, which leaves it unlike the majority of other troves, and
   reaping weapons can clash with conjurations builds.) Rutra's trove is
   now also lowered in weight (as the wall mimics are quite gimmicky to
   have made much more common, and the stealth / stabbing / hexes rewards
   clash with other builds), and both now have brief inline comments
   explaining why they're less common.

 * The lua for generating trove shields has been adjusted to no longer
   have syntax issues for characters with high shields skill, trolls, or
   oni.

--------------------------------------------------------------------------------
837a7d7d13 | regret-index | 2025-08-28 05:31:21 -0230

A handful of new overflow-and-beyond altar vaults
These vaults try to get some more homes for recently added or changed
monsters, a little more variety earlier on as overflow altars once
struggled with, and with settings to place later on to add more divine
flavour to later branches. (On that second point: I'm not the most fond of
the altar counts of current overflow temples, but it will take quite a
few more earlier vaults, early monsters, and more tiles to justify
emphasizing otherwise-insufficiently-varied individual overflow altar
vaults again.)

The list includes:

 * a serpent's hoard for Gozag,
 * loose abstract lightning and clouds for Qazlal,
 * the aftermath of some bloody battle for Trog,
 * a Doom-spreading dais for Xom,
 * and both a burned-down ghostly prison and bone-lined pool for Yred.

--------------------------------------------------------------------------------
343d659c68 | David Lawrence Ramsey | 2025-08-28 00:57:50 -0500

Add another ancestor name.
Not really common, but apparently it's from Germanic roots meaning
"earth/world ruler," and there are similar actual names in the Western
European name list already.

--------------------------------------------------------------------------------
8f5b5987f2 | DracoOmega | 2025-08-28 02:40:46 -0230

Adjust monster door-smashing behavior (various)
While monsters smashing closed doors was intended to stop the weird dance
of the player opening a door as rapidly as another monster closes it (to
regenerate while staying safe) and did fairly well in that capacity, due
to specifics of monster behavior code, a monster would never become
eligable to smash a door unless they had physically seen the player before.
Some configurations of door allowed the player to do this indefinitely.

Instead, require the monster be targeting the player and the player be
adjacent to the door (otherwise, they can't close it again anyway!). This
should solve the potentially degenerate case while preventing a swath of
broken doors from wandering monsters elsewhere on the level.

(But berserking monsters can just break doors whether you're near them or
not.)

--------------------------------------------------------------------------------
4aed3dd789 | DracoOmega | 2025-08-28 01:34:48 -0230

Fix a crash in Glaciate's tracer during Primordial Nightfall (Shadow_Rider)

--------------------------------------------------------------------------------
49e4d3ded1 | DracoOmega | 2025-08-28 01:32:27 -0230

Fix most attacks not triggering several things (Acrobat)
Most notably coglin rev, but also scarab beetle flare, gloves of parrying,
and possibly something else.

--------------------------------------------------------------------------------
5ab0f24893 | DracoOmega | 2025-08-27 23:05:00 -0230

Fix a possible quick blade crash
If a coglin killed a monster with their first weapon, there would be a null
defender for the second weapon swing - which normally isn't an issue, since
this is used deliberately to setup possible cleaving on that weapon and
bails out before it actually tries to *attack* that null defender.

But if the second weapon a quick blade, and its first attack fumbled in
water, it could try to perform a second attack against that defender
without first checking if it was valid, resulting in a crash.

--------------------------------------------------------------------------------
4be6608664 | DracoOmega | 2025-08-27 21:08:53 -0230

Don't trigger Lucky mutation on artefacts (adelrune)
This was harmless, since it didn't do anything, but produced silly (and
possibly confusing) messages.

--------------------------------------------------------------------------------
ca918cc23e | DracoOmega | 2025-08-27 06:01:12 -0230

Fix quick blades performing infinitely many attacks
Whether in player *or* monster hands. Some vine stalkers may eat well
tonight - but watch out!

(I'm so sorry.)

This fixes #4753

--------------------------------------------------------------------------------
fc09c138cc | David Lawrence Ramsey | 2025-08-26 20:51:45 -0500

Fix typo (SentientSupper).

--------------------------------------------------------------------------------
761b20fccc | DracoOmega | 2025-08-26 22:23:23 -0230

Expand action counts for consumables
All action counts could tell one for scrolls and potions was that you had
used 'some scroll' or 'some potion'. Given how wildly these vary in value,
this isn't terribly useful!

Now there is a seperate CACT_DRINK and CACT_READ, tracking specifically
which potion or scroll was used. Wands likewise get the same treatment
(evokers were already separated, but all wands lumped into one category).

I have left the old CACT_USE action tracking around (but omitted from the
dump) since this is used for title tracking and scorefile fields, though
possibly some further refactoring ought to make those use the new action
count instead.

--------------------------------------------------------------------------------
c72e55c811 | DracoOmega | 2025-08-26 22:23:23 -0230

Slightly improve the wording of some action counts
Being hit while not wearing armour now says 'None' for the armour type
instead of 'Skin' (several species don't have any skin!).

Transforming back to your default form now says 'Default' instead of a
blank entry.

--------------------------------------------------------------------------------
3e62a86d1c | DracoOmega | 2025-08-26 22:23:23 -0230

Revise tracking of melee action counts
Currently, melee action counts track something slightly muddled between
'number of independent attacks made' and 'number of times you swung X
weapon at something'. For instance, hitting 8 adjacent monsters with an
axe counts as 1 melee action, while hitting 8 monsters with oni potion
cleave or Manifold Assault counts as 8 melee actions. Attacks caused by
riposting are also in a completely separate category from melee in general
while several other sources of getting bonus attacks are untracked.

This commit attempts to improve the situation a little by making a clear
seperation:
 -CACT_MELEE is for 'swung a specific weapon at something'. Attacking 8
  targets with an axe bump attack will count the same as 8 targets from
  Manifold Assault.
 -CACT_ATTACK is for 'performed an action that resulted in swinging some
  weapon at something' and tracks the *category* of this - whether it was
  a standard attack, a riposte, spellclaws, spellmotor, drunken brawling,
  or Wu Jian lunge or whirlwind (which are no longer tracked by 'fake'
  ability action counts). Things like Manifold Assault are not included,
  since there is already an unambiguous way to track their usage via spell
  counts. But future weapon arts will also be able to use this.

Hopefully this is a little bit less muddled than the current situation
while presenting some relevant new information.

--------------------------------------------------------------------------------
172d15ff22 | DracoOmega | 2025-08-26 22:23:23 -0230

Refactor a bunch of melee_attack code to fix a multitude of issues
A non-exhaustive list of issues hopefully fixed by this commit:
 -Dual-wielding coglins recieved no damage bonus from Vhi's or Bestial
  Takedown.
 -Bestial Takedown attacked with only the first of two weapons.
 -Spellclaw damage bonus (from Enkindle) or malus (from slow weapons) was
  not applying to secondary cleave targets or a second quick blade attack.
  The same was true of Bestial Takedown's damage bonus.
 -Fumbling the first of a series of quick blade attacks would cancel all
  remaining ones (even though each one already had an independent chance to
  fumble)
 -Berserkitis and *Rage could only trigger if the primary target of a
  cleave was non-firewood. This meant that you could attack a plant while
  cleaving other monsters completely safely (or use ctrl+direction to
  attack an empty space slightly to the side of the monster you were
  fighting)
 -Attacking monsters the player was afraid of could cancel an entire attack
  sequence if they were the primary target, but had no effect if they
  weren't (similar to above).
 -Coglins using ctrl+direction targeting an empty space while wielding a
  cleaving weapon would attack with only their first weapon and not both.
 -Ctrl+direction cleave did not trigger many post-attack effects, even when
  it attacked monsters (ie: extending status durations, triggering medusa
  tendrils and Paragon)

In general, it is now possible to query whether a complete 'attack set'
(ie: including cleave followups) contains a hostile non-firewood target and
most effects that trigger once-per-complete-swing against non-firewood
should check this instead of caring specifically about the primary target.

One other minor change is that it's no longer possible to trigger
berserkitis by attacking a friendly target (partially for code consistency
with Coglin Rev, and partially because this would possibly lead to very
silly behavior in specific circumstances anyway).

--------------------------------------------------------------------------------
849d61fbae | Nikolai Lavsky | 2025-08-26 18:17:05 +0300

fix: gray out Call Merchant when the player can't use it (ragingrage)
This ability isn't grayed out on the abilities screen even when
the player is in the Abyss or is not on an open tile.

This commit fixes that.

--------------------------------------------------------------------------------
6325da0c74 | David Lawrence Ramsey | 2025-08-25 23:49:36 -0500

Tweak Orb Guardians' unseen psychic alarm message.
Don't mention whether they disappeared or died, since you can't see
which happened. This is so e.g. an Ely-pacified Orb Guardian that leaves
Zot:5 offscreen is no longer erroneously described as dying.

Found by TwillAffirmer on Reddit.

--------------------------------------------------------------------------------
60c5172c02 | Nikolai Lavsky | 2025-08-25 15:20:06 +0300

docs: replace obsolete species and backgrounds in the options guide
Also, convert a bunch of stray tabs to spaces.

--------------------------------------------------------------------------------
dddbb4fcd7 | Nikolai Lavsky | 2025-08-25 15:18:13 +0300

docs: more updates to the vault documentation
Update an example that uses a ring of ice, since these rings were
removed in dcdeeda76.

Also, fix spacing and a few typos.

--------------------------------------------------------------------------------
2f2da9b363 | David Lawrence Ramsey | 2025-08-24 23:52:57 -0500

Fix spacing.

--------------------------------------------------------------------------------
5f4bf3d2fb | David Lawrence Ramsey | 2025-08-24 23:50:46 -0500

Fix spacing.

--------------------------------------------------------------------------------
a2aaf4483c | David Lawrence Ramsey | 2025-08-24 23:48:53 -0500

Fix typo.

--------------------------------------------------------------------------------
48b70b31e5 | David Lawrence Ramsey | 2025-08-24 23:45:33 -0500

Fix typo.

--------------------------------------------------------------------------------
b103728f7f | Lulu | 2025-08-25 00:37:21 -0230

Make Mass Market heavier (#4742)
ft. control-f-ing the item descs for the word 'heavy'

[Committer's notes: The brand certainly helps with the identity of the
shop, I suppose, and so do the non-equipment additions. Squashed together
commits, while cleaned up a fair bit of line spacing / item ordering. Also
adjusted non-weapon weights to be a bit higher with the addition of more
weapon types.

Closes #4742.]

--------------------------------------------------------------------------------
101ab87f62 | Matt Smith | 2025-08-24 19:09:10 -0230

Add Edmund's armoury Gozag overflow vault (#4715)
[Committer's notes: As the vault submitter said adjusting the vault would
be fine for the sake of studying this commit, I've given this a full
review. I've rearranged the header to the order stated in 1e59046,
slightly adjusted tabbing and the name, and gave two of the monsters body
armour as is lost when only specifying weapons for them. It's pretty
dangerous to reliably deploy uniques in early overflow altar vaults,
though the very narrow depth range should make this somewhat reasonable;
to try and lessen such concerns, I've also lowered the overall weight of
the vault a bit.

Closes #4715.]

--------------------------------------------------------------------------------
71d2dffe0f | Matt Smith | 2025-08-24 18:19:55 -0230

Adds a handful of small entry vaults (#4713)
[Commiter's notes: Squashed together commits done in response to provided
feedback, and slightly adjusts some alignment and line lengths.

Closes #4713.]

--------------------------------------------------------------------------------
d390f7e422 | David Lawrence Ramsey | 2025-08-24 02:21:56 -0500

Fix typo.

--------------------------------------------------------------------------------
9a7cbd1967 | David Lawrence Ramsey | 2025-08-23 18:09:49 -0500

Fix vault branch typo.

--------------------------------------------------------------------------------
8bba17d133 | David Lawrence Ramsey | 2025-08-23 18:07:44 -0500

Add missing Makefile title splash (Goratrix)

--------------------------------------------------------------------------------
1ad0e0334e | patrick | 2025-08-23 18:00:28 -0400

Make another small edit to a hard Vaults vault
I removed this shuffle because I couldn't remember what it was for
and figured it was just complicating things for no reason. But then
I did remember, and realized I wanted it back in there.

--------------------------------------------------------------------------------
4652e73e1c | regret-index | 2025-08-23 16:49:48 -0230

Fix up weapon-inlaid floor tiles in blades_alternative (Darby)
Basically just a header order matter.

--------------------------------------------------------------------------------
872437d217 | patrick | 2025-08-23 13:32:54 -0400

Add another 22-altar temple layout.
why does inspiration always strike right after
i've already pushed the damn commit

--------------------------------------------------------------------------------
2490ed292b | patrick | 2025-08-23 13:01:40 -0400

Add a few more options for 22-altar temples
After regret-index's recent commit (9db2fe2), I decided to add
a few more options for temples with 22 altars.

I made one temple layout with a simple arrangement of 22 altars,
nothing too fancy, and also added more options to
nicolae_temple_bog_church, which can now handle up to 25 gods,
which now that I think about it is probably impossible for
temple layouts. Oh well.

--------------------------------------------------------------------------------
2ad57854a0 | patrick | 2025-08-23 12:25:16 -0400

Hopefully fix a small but nonzero chance for a teleport closet

--------------------------------------------------------------------------------
1e59046dbc | regret-index | 2025-08-22 23:29:45 -0230

Update some of develop/level docs
Much of these documents are well over a decade out of date in terms of
their examples and standards alike. I'm not overhauling the entirety of
them on a whim quite yet, due to the thousands and thousands of words
written up in each of the documents, but there are bits here and there
I can quickly adjust. Of note:

 * Much of the introduction.txt/section F. Principles of vault making/
   write-ups have been fleshed out to be more precise about what is and
   isn't a good idea this many years later, to be more useful as
   guidelines and inspiration alike.

 * Quite a few examples used various pieces of content that don't exist
   (e.g. deep elf priests, as removed in 0310ae4), which I've adjusted
   as I've noticed them.

 * The cross-document section lettering order was broken back in 55beb4d,
   and b5f8d22 added a fourth document out of sync with the rest of the
   other headers. I've reset both, though it might be warranted to further
   adjust them for readability and reference alike (e.g. "V2-A: Glyphs")?

 * We've used "primary" and "replica" for synchronized lua markers since
   967258e, so I updated triggerables.txt to match. (I've also removed
   the sample provided, since it is astonishingly out of date from what
   we actually use now and "primary_name" isn't really used in the
   codebase; if anybody else could add an appropriate example, I'd be
   grateful.)

Outside of this, I have also placed an explicit preferred vault header
order, in develop/level/syntax.txt's Section I. Header information.
I've been trying to reorganize vaults in my many vault reviews to fit a
single unified house style, and it should be useful to have a specific
place to refer to for future submissions.

These write-ups almost certainly need more proofreading in the future,
but so much of these documents are out of date that even this day's random
work should be more than they've seen since they were first made. They're
also probably only very rarely noticed, since we haven't changed a lot of
vault syntax in many years and they've fallen into such disarray.
Hopefully, I can get around to doing more in the future, while also adding
new bits like e.g. listing off newer decorative walls / floors / features.

--------------------------------------------------------------------------------
b638385c18 | regret-index | 2025-08-22 23:29:45 -0230

Handle swamp_mist_pool teleport closets (#4735)
The chances of getting a teleport closet here when the vault is pressed
up against a wall are slim (since surrounding tiles also have to roll for
trees instead of water), but not impossible. As such, I am using two
different ways to address the matter in a randomized fashion: forced level
connection points (which doesn't always make corridors in many open
layouts, but does it enough times I'm avoiding it being the default), and
using the CLEAR syntax (which then relies on the default level connection
checks). While I'm here, I also cleaned up the header a little.

Closes #4735.

--------------------------------------------------------------------------------
9454bdcae6 | Nicholas Wilson | 2025-08-22 23:29:44 -0230

Place a statue on `nicolae_hells_hurtin_island` (#4501)
... so people don't accidentally walk into it.

[Committer's notes: Squashed the commits together. I am fine with both
this and tekkud's branch-fitting notion thereupon as a reasonable
autoexclusion approach for the vault.

Closes #4501.]

--------------------------------------------------------------------------------
35dfe5f7e9 | David Lawrence Ramsey | 2025-08-22 18:10:39 -0500

Don't allow orc priest conversion if under wrath.
Since b6bfbb2, converting to a non-good god is disallowed if you're
under that god's wrath; make orc priest conversion account for this.

(Otherwise, you could dump Beogh for no god, Beogh could send a band of
hostile orcs including a priest, the priest could try to convert you,
and it would fail because you'd still be under Beogh's wrath, which
makes no sense.)

--------------------------------------------------------------------------------
6f3593e490 | David Lawrence Ramsey | 2025-08-22 12:02:32 -0500

Don't warn about attacking god-protected monsters
Done for both neutral and non-hostile monsters, as is already done for
friendly monsters. Notably, the latter applies to slimes under Jiyva.
The former doesn't apply to anything yet, but handle it just in case.

Closes #4722.

--------------------------------------------------------------------------------
a6e5444794 | DracoOmega | 2025-08-22 03:31:31 -0230

Don't display Tesseract status without a tesseract (Planckenstein)
Killing an orb guardian with no tesseracts left alive could still cause
the Tesseract status to start being displayed on the status bar. This had
no actual effect, but players cannot be expected to know that.

--------------------------------------------------------------------------------
f37eb42a8f | mainiacjoe | 2025-08-22 00:51:48 -0230

Add a title splash by YLam (#4712)
This is a commissioned art piece.  The artist is a coworker of mine that
loves to draw.

[Committer's notes: The offerred art, while very nice, didn't fit the
format Crawl's title art uses in scale or logo deployment. As such, I
shrunk it down to a resolution roughly comparable to similiar styles like
baconkid's, fit one of the standard logo images onto it, and edited the
top of the image to have room for said logo. Also, I squashed in the
CREDITS.txt update commit into one commit, and updated webtiles to also
deploy this art

Closes #4712.]

--------------------------------------------------------------------------------
c72611b26b | regret-index | 2025-08-22 00:51:48 -0230

Fiddle with Josephine's depth some more
While Josephine was nudged up earlier in 005a376 already, her killratio
statistics continue to underperform both overall and on the earliest floor
she places on. With Nergalle cleaned up in 0a50e04, we've got enough of a
solid early necromancer unique we don't to emphasize another one for
longer; it's also good to further distance her away from the alt-timeline
Josephina at the other end of the game.

(While I'm herre, I've fiddled some more with some more unique depth
syntax arrangements, and pushed Yiuf down an entry alphabetically.)

--------------------------------------------------------------------------------
9087eac00d | DracoOmega | 2025-08-22 00:02:39 -0230

Adjust boundless tesseract behavior once more
While discussions with numerous players have indicated that many people
enjoy the change to Zot:5's dynamics that tesseracts bring in the average
case, I remain a bit concerned about the gamefeel of the more extreme
'failure states' (where, for whatever reason, a player ends up spending an
inordinate amount of time failing to kill them - especially if this
happens before they'd cleared out many non-tesseract spawns from the
floor.)

Even after the recent change to reduce maximum spawn rate and cap total
unrewarding spawns, it can still leave players feeling 'softlocked' by the
floor - unable to make any progress because of mistakes that were made
earlier. Now, tesseracts should still represent real danger (or it's
pointless for them to exist), but I feel they may be able to do this while
lessening their worst-case scenarios *and* making them more likely to just
kill the player outright once it is reached instead of wall them off.

Key changes:

-Tesseract spawn rate no longer increases over time at all. The baseline
 spawn rate is 1 per ~50 turns (nearly twice as slow as the previous
 maximum).
-Tesseract spawns are capped at 60 active at once in total, with no more
 than 100 *total* monsters on the floor (regardless of how many of them
 came from the tesseract)
-The first handful of monsters the tesseract spawns appear *faster* than
 before (but slow down after each one, reaching minimal baseline rate by
 15 monsters).

This is aimed at making tesseracts do just a little bit more to those who
deal with them efficiently, and much less against those who do the worst
against them. The new worst-case scenario may no longer be that scary to
strong players, but those aren't the players who were encountering it in
the first place, so this is hopefully more equitable (while still being
impactful enough to continue to influence the behavior of strong players in
the ways they've already said they enjoy it doing).

-The off-level timer now runs for a maximum of 500 turns instead of 1000.

 (The only reason it ran off-level at all was to prevent forcing players
 to return to Zot:4 every time they want to rest. It was not intended to
 penalize going somewhere else and some players did not even realize it was
 happening - potentially creating massive problems for their future self.
 500 turns is about the most time anyone can realistically spend resting,
 and with the general reduction in spawn rate, should be much more gentle)

-After spawning 80 monsters, new monsters have a 1-in-4 chance of spawning
 in the player's LoS instead of outside it (indicated by purple tesseract
 status).

Note that this is above the maximum spawn cap for the floor, so requires
the player to have been killing many tesseract spawns *and* still have
spent ~4000+ turns doing so. This is unlikely to come up for most people,
but is aimed at 'just killing' the player instead of walling them. For all
the reasons listed above, the opposition keeping you away from the
tesseract will be much less and regenerate much less quickly, so it should
always remain *possible* to get there. But there's additional risk.

-Tesseracts no longer generate awake (and can, in fact, not be woken up by
 anything short of the death of an orb guardian - stab away to your heart's
 content, should you manage to get there in one piece!)

-The monster weights for tesseract spawns have been adjusted to make storm
 dragons less overwhelmingly common (and classed draconians more common).
 This is probably an overall increase in danger level, not just variety
 (but more than compensated for by the other changes).

-Some messages for orb guardians being banished/pacified/dying off-screen
 have been improved.

Hopefully, all together, this is closer to striking a balance that feels
fun to play against without feeling overly punishing to slip up against
(while still being a credible threat all the while).

--------------------------------------------------------------------------------
b189c638a0 | DracoOmega | 2025-08-21 23:32:29 -0230

Make becoming Dazed interrupt monster channelled spells
ie: Word of Recall, Launch Clockwork Bee, and Searing Ray

--------------------------------------------------------------------------------
852368a59e | DracoOmega | 2025-08-21 23:32:01 -0230

Fix a variety of issues due to ordering of handle_monster_move
Due to how handle_monster_move was ordered, a variety of monsters with
atypical behavior would exit the function prematurely (to skip 'standard'
monster action code), but it was bailing out before the code to handle
monster regeneration and many passive damage sources was handled (ie:
clouds, bog, frozen ramparts, oozemancy). This means that the following
monsters could never regenerate or be affected by any of those things:

Prisms, boulders, hellfire mortars, diamond sawblades, lightning spires,
solar embers (but only while currently adjacent to the player),
rending blades (that triggered that turn), boundless tesseracts, and player
shadows. Note that tesseracts were supposed to regenerate 10 HP/turn and
instead effective had 0 regen at all....

In addition, multiple monsters could still act while Paralyzed (including
any of the above, but also any Vexed monster!)

These issues should hopefully be fixed now (and without breaking anything
else...)

--------------------------------------------------------------------------------
e8cf676ac6 | DracoOmega | 2025-08-21 16:39:36 -0230

Fix xv lying about monster wand power in webtiles (mysticsailboat)
This issue was fixed by daee816b5679 for console and local tiles, but
webtiles (of course) used a different codepath to display monster spells
on xv and it hadn't gotten the memo yet.

--------------------------------------------------------------------------------
d12c6b02fd | regret-index | 2025-08-21 16:14:24 -0230

Don't give jewellery out in Justicar troves to Coglins (Quasar471)
The various Lua clauses for controlling species-limited items were
incomplete regarding Coglins being unable to wear jewellery.

--------------------------------------------------------------------------------
ee87135f2d | RypoFalem | 2025-08-20 20:58:04 -0500

Remove a duplicate yaml key (no functional changes)
The generated form-data.h is identical.
--------------------------------------------------------------------------------
e8778ee6be | David Lawrence Ramsey | 2025-08-20 18:00:37 -0500

Fix warning.

--------------------------------------------------------------------------------
2cf2f3ce0b | David Lawrence Ramsey | 2025-08-20 17:47:26 -0500

Fix spelling.

--------------------------------------------------------------------------------
646a485ab0 | David Lawrence Ramsey | 2025-08-20 17:42:07 -0500

Add missing ENDMAP.

--------------------------------------------------------------------------------
56b9c373c2 | David Lawrence Ramsey | 2025-08-20 17:31:23 -0500

Fix typo.

--------------------------------------------------------------------------------
657cd509c9 | David Lawrence Ramsey | 2025-08-20 17:23:43 -0500

Fix spelling.

--------------------------------------------------------------------------------
5d8561dace | regret-index | 2025-08-20 19:31:26 -0230

Changelog updates through 818337ce7c
Covering inventory changes, new item egos, and the huge amount of new
tiles. Proofread by Darby and DracoOmega.

--------------------------------------------------------------------------------
e8b06f4ccb | regret-index | 2025-08-20 19:31:26 -0230

Further tweak Okawaru wrath
04553db expanding Okawaru's wrath options while also smoothening out the
XL curve also added the thematically-severely-awkward possibility of
getting orc priests, spriggan berserkers, or draconian stormcallers from
Okawaru's wrath via band attendees. I have removed most of these from
the top end, as the wrath is already quite vicious with more consistently
placing 5 or 6 endgame serious threats at once ontop of the player
compared to previously still rolling things like deep elf knights, deep
elf archers, and frost giants at XL 27.

--------------------------------------------------------------------------------
0751984624 | regret-index | 2025-08-20 19:31:25 -0230

Name the HP*2 status back to "doubled vigour"
This mostly rolls back 13cf121.

 * With 76c1861 and bb01f63 having provided in-game descriptions for
   monster statuses, clarifying what exactly the status does (in just
   multiplying HP) to players otherwise unaware of the mechanic is very
   straightforward (and getting people to read that tab in general would
   be good policy).

   - Due to the monstatus tab using database looks-ups, database
     translation PR efforts could fill in for those failing to parse
     Crawl via external translators, though admittedly this has fallen
     immensely behind in recent versions.

 * The messaging actually used for the effect can read quite awkwardly
   otherwise, with lines like "Your toenail golem looks doubled in
   health".

 * Loose future plans to update more of Elyvilon's abilities while making
   them a bit more expensive, in particular potentially making Divine
   Vigour give this doubled health buff to one's allies (both making the
   capstone ability more flashy and letting the healer god actually be any
   good for one's allies), which would more closely connect the effect to
   its in-game use in the future.

--------------------------------------------------------------------------------
35c39e4809 | regret-index | 2025-08-20 19:31:25 -0230

New monster: bes kemwar, for early D
These Malaysian maggot spirits, or green Ws in console, are meant to
cover two different goals at once.

 * Their highly-variable disease-spreading mythos is deployed here in a
   highly magical setting to inflict the Diminished Spell debuff on
   players, much earlier than Zykzyls summoned post-Lair-Branches or
   encountered directly in Pan. (They cast it as an irresistable
   line-of-fire needing beam effect, since the spell is in many ways
   weaker than actually preventing one from casting spells via mp
   draining or Silence or Sap; compare to how gnoll boudas get their
   irresistable Weakening Gaze.)

 * They're very early-game undead with passable but not much notable
   offenses outside of their spell-weakening trick, which lets them fit
   into early Yredelemnul Torch summons as something fairly weaker than
   the current high-rolls of wights or marrowcuda, and which can also
   help eventually remove necrophages as became somewhat obsolete with
   rot's removal (c.f. e446cd8).

They rarely place on D:4-8 with an 80% chance of banding with one of
phantoms, jellies, sleepcaps, or another bes super rarely, taking
equivalent weight from the each of those (and a tiny bit of ogre weight
even things out), to make their spell weakening effect actually have some
relevance beyond the individual encounter. They otherwise have stats
slightly worse than bullfrogs, with less speed but undead resists and
their debuff mildly compensating. They also take some of the necrophage
and marrowcuda weight out of the low-level XL summons made by Raising the
Black Torch, as Yredelemnul's strength is very high early on just for
the zombies and can use a little more early variety + weakening both.
Most notably, they also replace necrophages appearing in the Summon
Undead list still, which gives the spell a little more texture compared to
all the other melee-only bodies it uses.

(Their debuff is honestly a little weak early, as halving spellpower
doesn't do a lot very eaarly versus the base damage of spells themselves,
but between introducing the hex as is deployed later and being weaker
Yred spawns, I'm fine with them mostly being tutorializing enemies that
aren't super dangerous- the nudging up of ball pythons with constriction
reworks in b1b5fd0 ended up needing a nerf in b1b5fd0, and bombardier
beetles from 0fc8318 were a significant killer for quite a few months
until most players learnt the gimmick they were tutorializing.)

Their tile is a combination of Ploomutoo's hungry ghost tile and
roctavian's old mana viper tile, while the Diminish Spells spell icon
uses ontoclasm's old Pakellas Sap Magic icon, CanofWorms's magic
mutation icons, and Sastreii's Weakness status effect icon.

--------------------------------------------------------------------------------
bf16c74b88 | regret-index | 2025-08-20 19:31:25 -0230

Add a little more commentary to portal_generation_order
Necropolis portals can't be pre-generated due to there potentially being
multiple Necropolis visits per-game (c.f. bazaars being excluded in
5121451), which is noted over in update_portal_entrances() but not in
portal_generation_order.

--------------------------------------------------------------------------------
34913017d9 | regret-index | 2025-08-20 19:31:25 -0230

Update some branch / portal descriptions (Darby)
* Change the Bailey description to not singularly mention orcs, due to the
  presence of gnoll, ogre, and vampire bailies.

* Changes the Orcish Mines description to note orcs migrated to the
  Dungeon (c.f. 0a50e04) and aren't just in a chain of people taking
  advantage of one another (c.f. 3f351f0).

* Change the Vaults description to specifically acknowledge the Ironbound
  order and the particular thematic angle to its otherwise cosmopolitan
  monster population.

All of these were written up by Darby.

--------------------------------------------------------------------------------
bd457bb66c | regret-index | 2025-08-20 19:31:25 -0230

Let Mara dual-wield with a new tile
Mara has been somewhat underperforming for a long while as a midgame to
lategame unique, relative to other uniques roughly in the same range,
despite the great deal of danger his summons inherently represent. There's
a bunch of different reasons one can attribute to this, like summons not
taking stairs all the way back in cf90cb5 allowing easily dismissing them
to reset the encounter, and the positional magic reworks since 0.25 (e.g.
f302f3d, 290c60e) desynching the spells illusions can get, and the various
lategame unique additions in 0.29 (e.g. 226d363, 06d020a) plus buffs to
other lategame uniques in 0.31 (e.g. b247575, 1baa85e).

Simultaneously, I've been wanting to change Mara's appearance to be fairly
closer to the original myths for quite a while, as an extension of
removing the inaccurate anthromorphic tiger design from rakshasas back in
727ca9e. While mechanically Mara is extending from D&D's tiger-faced
rakshasas (as Trampier drew prompted solely by location and anthrophagy),
the tile neither resembles' the directly quoted Zelanzy's text (a hulking
giant in an omnichromatic cloak on a ever-shifting chariot with
smoking-blood vomitting horses) nor mythological depictions of Mara
tempting the Buddha (highly variable, but recurringly an ostentatious
multi-limbed figure with technicolour skin).

I am joining both such power concerns and art concerns alike into this
one commit, which gives him a new tile and gives him a second demon
weapon to dual-wield, with very mildly lower melee damage per-hit. This
should help Mara both on his own and when one doesn't have the chance to
escape additional clones, and should increase the reward value for
actually fighting a dangerous unique (as a second chance to actually
match one's weapon skill / apts / rolling a better brand and enchantment).
To that end, he also gets good_item light armour instead of just robes, to
match stronger melee; by the time he appears, players hopefully will
already have decided on body armour, but they may appreciate another
choice.

The aforementioned new tile is by Darby, leaning more to the mythological
angle visible in the links below. The new Mara Summon spell icon is
something I made using a prior revision of said tile.

https://commons.wikimedia.org/wiki/File:040_Calling_the_Earth_to_Witness_(901321
0701).jpg
https://commons.wikimedia.org/wiki/File:Battle_with_Mara.jpg

--------------------------------------------------------------------------------
cdb8317334 | regret-index | 2025-08-20 19:31:24 -0230

Highlight V:$ and Zot:$ staircases (Darby)
The guaranteed Vaults end ambush is iconic and unique and mechanically
quite successful at forcing a different style of play to approach the
floor. This arrangement is also completely unforecasted for both unspoiled
newcomers and experienced players playing fast enough they forgot which
floor of Vaults they're on. As such, this commit is adding unique stair
tiles and descriptions to the stairs leading in and out of Vaults:5, which
should both be a nice visual highlight late in the game as well as help
warn the aforementioned players from entering such.

(While it's unlikely people will miss they're entering the last floor of
Zot, due to the fixed colours of each floor, it's nice to have more tile
highlights for the climactic finish to a standard game, so the staircases
leading in and out of Zot:5 have also gotten new tiles. They have not
gotten unique descriptions, though, since there's no guarantees to what
one sees on entering the floor.)

All of these tiles were textures made by Darby on top of white_noise and
enne's edits of Denzi's staircase tiles. Said descriptions were also
written by Darby.

--------------------------------------------------------------------------------
d42c42303d | regret-index | 2025-08-20 19:31:24 -0230

Add a few remixes of Darby's tiles
I don't know when- if ever- we'll have unique tiles or even unique edits
of tiles for every Wizlab or even more than a third rune, but it's a nice
idea to try and help with selling wizlabs and runes alike.

 * Zonguldrok's Shrine now gets mildly-rearranged palette-swapped variants
   of Darby's ossuary stone.

 * Maxwell's Workshop now gets a hybrid of Darby's metal walls for Vaults
   plus roctavian and due's edits to Denzi's metal walls for Dis. (This is
   shared with pitsprint, which is striving to be so visually fancy it
   needs every unique metal tile it can get).

 * Cerebov's fortress now gets another palette-swap of Darby's
   floor_metal as is used across Vaults, to try and get a little more
   unique visual fanciness to the domain of the Lord of Fire and Steel
   otherwise overlapping with other places of steel and fire.

--------------------------------------------------------------------------------
011df5c81d | regret-index | 2025-08-20 19:31:24 -0230

Gigantic set of mostly branch tiles (Darby)
A rather varied set of beautiful work, heavily distinguishing the branches
yet further from one another, and fulfilling many very old art requests.

Walls:

 * Unique stone wall tiles for Lair, Orc, and Elf, finally making all
   branches have their own unique stone walls from D.

 * Unique stone walls for Ossuaries, to help them resemble the actual
   heavily-packed state ossuaries are distinguished by, as well as to
   reduce the emphasis on standard tile recolours for one of the
   earliest portals newcomers may see.

 * Unique metal and crystal wall tiles for the Vaults branch, to make the
   later floors of the branch be visually unique instead of reliant on the
   same tiles one can find throughout the game.
   - V's entry vaults don't employ these new tiles, to make it both more
     notable to make it deeper in the branch, and to match how the
     majority of branch entry vaults that actually do so are regulated to
     Depths.

 * Unique crystal wall tiles for Depths, matching the work done for
   crystal walls in Zot (668cce9) and metal walls in Depths (bd611b0).

 * Additional rock wall tiles for Lair that incorporate some of the
   greenery seen throughout the branch, and to contrast Lair against the
   cave levels of D or Orc.

Floors:

 * A new set of floor tiles for Lair, manifest as dark grass with rare
   stone for the ruins overflowing with plantlife.

 * Two new sets of grass tiles for a variety of different vaults, far less
   muddy than the prior ones, with bright and darker variations.
   - Brighter grass appears in Shoals, Bazaars, and somet Wizlabs.

 * Some new floor tiles for Vaults' harder vaults and its end floor,
   for both the default metal and rare chance of crystal.
   - To accomodate this, the hardcoded metal vs. crystal _fixup_walls()
     arrangement for V:$ in dungeon.cc has been moved to the actual vault
     itself.

 * A floor tile unique to the Hall of Blades with its own description (via
   decorative_floor tricks) that should emphasize its weird guaranteed
   nature to newcomers as well as help it stand out visually from the rest
   of Elf.

Other:

 * A Maggie tile that isn't just a palette swap of Jessica's, emphasizing
   her apprenticeship to Hell Knights with her wearing visible armour far
   closer to her dragon scales than the prior robe.

 * New exit tiles for Ossuaries, Bailies, Desolation, and the Crucible of
   Flesh, to try and reduce the prominence of the generic portal exit tile
   as doesn't particularly fit going to highly specific locations.

Each of these tiles' weights, descriptions, and alternation were
implemented following most of Darby's suggested specifications, with mild
adjustments. The old Lair floor tiles have been removed for now (they were
very rare to use elsewhere and were rather indistinct as mossy
cobblestone), though I may find another home for them after further edits
in the future.

--------------------------------------------------------------------------------
40ee31a434 | regret-index | 2025-08-20 19:31:23 -0230

Make piles of debris crumble, not wither
This is just shuffling around the text for piles of debris starting to
slowly die on hit, as was done for withered plants in 2bb1e3e.

--------------------------------------------------------------------------------
e5d32cb860 | fslottner | 2025-08-20 19:31:23 -0230

add new arrival vaults (#4702)
[Commiter's notes: Just fixed up whitespace formatting here; other
matters were handled in the PR's comments. Closes #4702.]

--------------------------------------------------------------------------------
878998d1fe | DracoOmega | 2025-08-20 15:06:50 -0230

Include the base type of randart staves in their name
This affected what type of damage the staff dealt (and what skills were
needed to boost it), which is a vital piece of information that was
otherwise buried somewhat subtly in the item's description. Let's
foreground this instead.

(Also slightly clarify orb of Attunement's description to make it a bit
clearer that it only works based on a randart staff's primary type.)

--------------------------------------------------------------------------------
041a10fefa | DracoOmega | 2025-08-20 15:06:50 -0230

Don't pre-reveal transporter destinations in Necropolis/Gauntlet
Travel can be overzealous in taking these transporters when players don't
expect it to, resulting in dumping the player into extremely scary
situations without warning.

Some better solution would involve displaying transporter destinations but
still not pathing the player through them if doing so would be dangerous,
but in the meantime the lesser evil is certainly the one that doesn't kill
people.

--------------------------------------------------------------------------------
1aad040a61 | DracoOmega | 2025-08-20 15:06:50 -0230

Make Dissipation work properly with Slow / Sticky Flame (sentientsupper)
These were decremented in custom functions that didn't interact with the
standard 'decrease a negative duration' function, and so were incorrectly
unaffected.

--------------------------------------------------------------------------------
9db2fe26c4 | regret-index | 2025-08-20 03:33:09 -0230

Get a Temple map with 22 altars in again (MysticSailboat)
When fceee19 properly assigned 21 altars to that Temple layout, it
accidentally left out having any maps tagged as having 22 altars, which
Crawl requires for initialise_temples() to work properly and causes
crashes when the seed decides to have 22 altars in Temple that run. As
such, I have smashed together multiple old trove maps lost with the
hyper-specific theming efforts of 3911a2f to make a new Temple map with 22
altars to fix the problem.

--------------------------------------------------------------------------------
849ecb78a7 | David Lawrence Ramsey | 2025-08-19 15:23:39 -0500

Move species' orcification messages to YAML.
This is only used when a given species' physiology doesn't fit the
default orcification message. Demigods get a message referencing
bugginess, since they shouldn't be able to worship Beogh in the first
place.

Also update documentation.

--------------------------------------------------------------------------------
a76b00939b | David Lawrence Ramsey | 2025-08-19 15:11:38 -0500

Sort a few species-specific entries.
So that they're all in the same order.

--------------------------------------------------------------------------------
8d0a83b6f5 | David Lawrence Ramsey | 2025-08-19 14:33:45 -0500

Adjust Xom ring slot messages.
Don't reference hands there so that it doesn't end up incorrect when it
applies to a ring on the macabre finger necklace.

--------------------------------------------------------------------------------
39c64e2046 | DracoOmega | 2025-08-19 14:01:12 -0230

Cap daze duration from mesmerisation on monsters
To a little less than the average of being dazed twice.

--------------------------------------------------------------------------------
d8ceb4c3b0 | DracoOmega | 2025-08-19 14:01:12 -0230

Cut Siren/Avatar song cast rate in half
When 523f668 refactored mesmerisation code, it unified cast rate behavior
between siren/avatar song and spell mesmerisation, removing an oddity that
made sirens/avatars try to mesmerise you *more* often if you were already
affected, rather than less.

But, in effect, this doubled their base cast rate against players that
resisted, which was probably not intended (and affected the monster-dazing
effect fairly heavily). Let's cut it in half again, hopefully making it
more similar in practice to before that commit.

--------------------------------------------------------------------------------
6c4b8e283e | RypoFalem | 2025-08-19 00:58:31 -0500

Give Command to scales of the Dragon King
I think the new Command heavy armour ego is fitting thematically since
kings give commands and the Command ego would allow many characters to
cast Dragon's Call in golden dragon scales with extreme training.

I removed will+ because it's boring. Although an identical artefact
could be still be randomly generated, hopfully this is more interesting
thematically and has more impact on players' strategic decisions.

--------------------------------------------------------------------------------
8822f1ac5b | David Lawrence Ramsey | 2025-08-18 21:03:36 -0500

Fix typo.

--------------------------------------------------------------------------------
ef0d768926 | David Lawrence Ramsey | 2025-08-18 20:44:55 -0500

Fix monster build.

--------------------------------------------------------------------------------
db517aa4a4 | Matt Smith | 2025-08-18 20:34:51 -0500

Attune w/Elemental Staff and Staff of Olgreb.
Closes #4730.

[Committer's note: Adjusted commit message.]

--------------------------------------------------------------------------------
5ba179bf4a | David Lawrence Ramsey | 2025-08-18 20:24:23 -0500

Fix capitalisation.

--------------------------------------------------------------------------------
fceee19c30 | regret-index | 2025-08-18 00:27:09 -0230

Assign the proper altar total to a Temple (Oneirical, Darby)
There are 22 B glyphs, but one is replaced with a staircase, so there are
21 altars placed in total for altar distribution assessment purposes.

--------------------------------------------------------------------------------
32fe679a33 | DracoOmega | 2025-08-17 20:42:24 -0230

Replace Antaeus's Flash Freeze with Sleetstrike (also for Blizzard Demons!)
With Flash Freeze's effect fairly heavily nerfed, it felt like Antaeus
could still use an accurate slowing tool in his arsenal. Drawing upon his
titan heritage, Sleetstrike is an ice-infused Airstrike that additionally
slows the target's movements for a little while. Its base damage is fairly
higher than Airstrike of equivalent power (to compensate for being
partially irresistable).

Blizzard demons are also given this; they've never been one of the more
threatening tier-2 demons and the slowing effect gives them a better
support tool for their uses in Pan.

(Sleetstrike spell icon by regret-index, combining ontoclasm's Airstrike
icon with cc0 sample pixel card art by Mumu.)

--------------------------------------------------------------------------------
8292378173 | DracoOmega | 2025-08-17 20:02:32 -0230

Fix monster airstrike damage flagrantly lying in xv
The listed damage for monster airstrike was extremely inaccurate in
multiple ways, treating it as though it used the same formula as player
airstrike when it very much did not. For instance, wind drakes claimed that
they did 2d(7-23) damage, but their actual damage range with 0 empty spaces
was 0-15 and with 8 empty spaces was 16-31. This is a very similar average,
but much lower variance (and a maximum damage that is a whole 33% lower
than claimed!)

This is a result of:
 -Using a function of random2avg() instead of roll_dice() for the
  power-based componant, which is extremely similar but not identical to
  the displayed numbers.
 -Not randomizing the space-based componant at all. You just flatly take
  +2 damage per empty space (unlike the player version).

While I considered changing the formula to match the player version, I feel
that the difference between how the open space bonus is handled makes
mechanical sense: the player is more predictably punished for being out of
position, while not being able to so consistently punish enemies for the
same 'mistake' (since enemies will make no attempt to avoid this). Also,
fixing it would mean giving multiple enemies significantly higher max
damage (which is something past commits already worried out loud about).

It's not clear that Gastronok needs to hit for 16 more damage than he
currently does, so I am instead opting to change xv to convey the true
behavior about space, while leaving it unchanged. (I did replace the use of
random2avg with roll_dice, since that difference is too unimportant not to
make consistent).

(This commit also fixes a minor bug where the player was considered 'open
space' for purposes of a monster airstriking something adjacent to you.)

--------------------------------------------------------------------------------
25f427f668 | DracoOmega | 2025-08-17 20:02:32 -0230

Greatly reduce the noise of ioods hitting each other
It's not at all clear why this was *much louder than Shatter* (and, in
fact, tied for the loudest noise in the game, along with things like Gong
and alarm traps....)

Orb/orb collisions are a lot more likely with the revised Orb card than
they used to be (though not all bad - since they will often be next to an
enemy when they collide!), and that level of noise seemed unexpected and
undesireable. They're still very loud, but no louder than Storm card.

--------------------------------------------------------------------------------
8c60c41f43 | DracoOmega | 2025-08-17 20:02:32 -0230

Attempt to improve the Orb card again
The 'starburst' effect from the Orb card was always more flashy than
effective - none of the orbs were launched with respect to the player's
chosen aim, and yet it was overly aggressive about telling orbs to attempt
to home in on that target anyway (instead of targets they might have a
chance of actually hitting). This meant that 6 orbs were often less good
at hitting anything at all than 1 orb.

When f4014ab attempted to fix a seperate issue with the starburst being the
'low' power effect of the card, it greatly exacerbated this problem; not
only did the single-orb version become much rarer at high power, but the
starburst effect could now fire just 1 or 2 orbs - usually aimed at nothing
in particular - making it dramatically ineffective.

This commit makes the following changes:
 -The 'center' of the starburst effect is always aligned with the player's
  aim (so that one orb always follows the direct path)
 -Non-center orbs will now choose targets based on 'closest angle' rather
  than 'closest distance within a moderate angle'. In general, this makes
  them a lot more likely to hit something (or at least make a reasonable
  attempt at doing so).
 -Burst orbs that lose their target lock (often due to another orb killing
  their target first) will try to reacquire the best one for their current
  angle and position.
 -Card power 1 always fires 3 orbs (in a narrower spread), while power 2
  fires 6 in a wider spread.

In general, higher power effects should now almost always be strictly
better than low power ones (instead of worse) and considerably more
effective. One downside is that the new target lock behavior does make the
orbs more likely to perform a full 180 and return in the player's
direction (provided an enemy is in the way), though one can usually still
safely maneuver them into hitting that enemy in this circumstance (and
surely a little bit of danger is appropriate for the gambler god -
especially when the payoff is large).

--------------------------------------------------------------------------------
24aa0edc3b | DracoOmega | 2025-08-17 20:02:32 -0230

Greatly reduce Flash Freeze accuracy at high power (and also damage)
Orbs of winter have been consistently outperforming other orb types, and
while I first assume this may have been the way Refrigeration damage stacks
up with multiple orbs on screen at once, a closer analysis suggests Flash
Freeze may be the larger culprit, accounting for ~80% of their direct
kills.

Flash Freeze's accuracy scaling was always a little weird, being hugely
affected by HD. Rime drake breath is merely 'pretty accurate', but orbs
of winter had 125 to-hit with it! (Contrast orb of fire's bolt of fire
having 31). Combined with its partial-irresistability, despite its
meaningfully lower base damage than bolt of fire, a character with rC++
and 32 EV would be taking nearly *3 times* the effective average damage
per flash freeze compared to someone with rF++ against an orb of fire's
bolt of fire.

This changes Flash Freeze scaling to massively reduce orb of winter's
accuracy (and also its damage to a lesser degree). It will still be more
accurate than comparable bolts, but hopefully a little more in line? (As
a side-effect, rime drake breath gets a small bit less accurate and a tiny
bit more damage, but I don't think it will be a significant effect.)

Antaeus is the greater casualty in this, who to some degree relied on the
freeze effect to catch up to the player, but that is slated for a change in
a subsequent commit.

--------------------------------------------------------------------------------
aebba8ef85 | DracoOmega | 2025-08-17 20:02:32 -0230

Actually display Cassandra's weapon
Accidentally omitted.

--------------------------------------------------------------------------------
20cf034aca | DracoOmega | 2025-08-17 20:02:32 -0230

Split _artp_can_go_on_item into two functions
_artp_can_go_on_item was used to both control what artprops were eligible
to randomly generate on a given item as well as what artprops *must* be
vetoed for functional/implementation purposes. But by bundling these
together, it became impossible to specify non-standard artprops (via
itemspec or certain backend methods) for an item that would work perfectly
well and just not *naturally* appear.

For instance, Noisy doesn't function outside of melee weapons (so putting
it on a non-weapon doesn't make sense), but Fragile can function on
anything and shouldn't be vetoed when forcibly requested on an item (and,
in fact, could be paired with some 'slow swap only' artprops that are also
vetoed on rings). So now these are split into two functions:
 -_artp_can_randomly_generate is used for 'soft' vetoes, preventing the
  artprop from generating on particular random items, but not overriding
  manual artprop specification
 -_artp_can_go_on_item should only be used for 'hard' vetoes, including
  conflicts with other artprops or things that simply don't work properly

There should be no functional change to normal item generation, but a few
more possibilities are opened up for the future (including one used in the
next commit).

--------------------------------------------------------------------------------
a7bd1a5da2 | DracoOmega | 2025-08-17 20:02:32 -0230

Try changing Boundless Tesseract's activation condition, tweak slightly
While overall reaction to tesseracts, now that the dust has settled a bit,
seems to be moderately positive, but one pain point in particular stands
out: when the tesseracts actually activate.

Currently they respond to noise and stealth checks the same as any other
monster (even if many people has ascribed custom behavior to them), and
this works okay in *most* situations, but there's some opacity in when
noise will actually reach them (ie: chains of monsters shouting can awaken
it from further away than expected, and it may not be clear why this
happens sometimes but not others), but also they will reliably get woken up
by alarm traps (even from exploration - possibly as soon as one enters the
floor!) and sometimes weirder situations like a passively made Jiyva jelly
bumping into one on the other side of the level. In general, this can feel
a bit arbitrary and unsatisfying.

So instead, this is an attempt to link the activation to something directly
observable by the player and more transparent, while hopefully also not
being gameable in as many ways as some other proposals: tesseracts now
activate the first time an orb guardian is killed (and orb guardians no
longer follow the player off Zot:5 unless the orb run has been started, so
that the player is not *forced* to activate the tesseract on an unlucky
Zot:5 entrance)

While it is technically possible to lure them away from the orb vault to
another staircase, the fact that they are all patrolling (and fast) means
that it's nearly impossible to 'cheese' anything in this way. Early alarm
traps can still be nasty, but the player may have options to avoid
triggering the tesseracts (and the orb guardians in the initial chamber
have been nudged backwards to make them less likely to pour out
immediately.)

In addition, since I expect the distance the player is from the tesseract
when it activates to be shorter in the average case (and due to certain
feedback about throwing/ranged weapons), I have moved the tesseracts one
tile around the corner into the upper lung. This is far more gentle than
some suggestions about giving them warding, since it is still possible to
damage them at range from the back of the lower lungs (and with large AoE
spells), but will require the player to expose themselves to a bit more
danger in the process.

Finally, the total number of tesseract-made spawns on the floor is now
capped at 100 (already rather out of control, but likely sufficiently bad
that we don't need to make outliers even more absurd), the maximum spawn
rate is slightly reduced, and it takes slightly more turns to reach it
(1200 instead of 1000).

--------------------------------------------------------------------------------
926ad0bca6 | DracoOmega | 2025-08-17 20:02:32 -0230

Rework Cassandra's death ambush effect
The on-death Word of Recall, while incorporating the floor Cassandra was
found on in a meaningful way, had variance that a number of players found
very unsatisfying - if a scary vault was on the floor, it was possible to
pull very out of depth monsters (and if they were already awake, they might
even act immediately). It's not clear to me that this was materially worse
than a teletrap (and Cassandra's kill rate has not been outsized so far),
but clearly not fun to a number of people, so let's try something else.

Killing Cassandra now creates several random bandless monsters (of the
current Depth + 2) at some nearby distance that is out of the player's
sight (but traversable to those monsters) and gives those monsters unerring
knowledge of the player's location. In addition, all stairs on the floor
will become sealed for a short period of time (to prevent the obvious
answer of immediately leaving the floor and ignoring them). This should
still give the player a scary problem to answer, but one that is literally
incapable of damaging them immediately (and likely not for several turns),
allowing the player some time to size up the situation and a wider variety
of viable responses.

In addition, there is now a small chance that her amulet may be a randart
with Bane on it. (While Bane does not generate normally on amulets, since
there's not additional compensation on them, simply being an early randart
may make it highly tempting nonetheless.)

--------------------------------------------------------------------------------
b9eed9ed82 | regret-index | 2025-08-16 18:46:36 -0230

Fix Trove armour placement for draconians (DillyGuru)
The condition functions to give given species different sets of items in
troves missed the difference between you.race() and you.genus(), as is
otherwise done in e.g. trove.get_trove_item since 6f326f6.

--------------------------------------------------------------------------------
4aa3bf59b2 | David Lawrence Ramsey | 2025-08-16 15:25:46 -0500

Make Y-worshipping players immune to torchlight.
Found by 7sidedmarble on Reddit.

The check for whether the umbral torchlight beam is the player's has been
replaced with a check for whether the player worships Yred, since the only
way to throw umbral torchlight is through the Yred ability.

--------------------------------------------------------------------------------
8215933f1f | David Lawrence Ramsey | 2025-08-16 15:22:58 -0500

Add missing check for Yred-worshipping monsters.
Since they're supposed to be immune to umbral torchlight.

--------------------------------------------------------------------------------
8a5a901316 | gammafunk | 2025-08-16 11:42:27 -0500

Fix a missing floor tile in a vault (tekkud)
In pdpol_temple_overflow_zin_treasury_gozag_greed, the Gozag altar was
missing a floor tile.

--------------------------------------------------------------------------------
73f07e0534 | David Lawrence Ramsey | 2025-08-15 14:50:29 -0500

Fix indentation.

--------------------------------------------------------------------------------
1302c14e92 | David Lawrence Ramsey | 2025-08-15 13:59:41 -0500

Reorder a monster check wrt umbral torchlight.
So that it looks at the monster's god before the monster's holiness, as
is done elsewhere.

--------------------------------------------------------------------------------
6778cbbdf0 | David Lawrence Ramsey | 2025-08-14 22:46:28 -0500

Add another Donald line.

--------------------------------------------------------------------------------
008d05bb96 | David Lawrence Ramsey | 2025-08-14 22:31:47 -0500

Tweak goblin sharper Cloud message.
Since unbreathing won't shield enemies from all those cloud types.

--------------------------------------------------------------------------------
374f41eeba | David Lawrence Ramsey | 2025-08-14 21:41:30 -0500

Fix punctuation.

--------------------------------------------------------------------------------
8c975815f2 | David Lawrence Ramsey | 2025-08-14 21:41:15 -0500

Fix obsolete Cloud card description (Monkooky).
Also update the goblin sharper dialogue referencing it.

Closes #4729.

--------------------------------------------------------------------------------
c67ce7006d | Implojin | 2025-08-14 20:24:11 -0500

Clarify ostracise trove entry prompt (kuniqsX)
Piety troves were changed in 6a75ce48ae to use the new ostracize
mechanic instead, but they were still using the old prompt message,
creating player confusion about what would happen upon entering while
under gods with nonstandard piety.

The xv feature text here should already be showing that it uses
ostracism, but let's clarify the prompt, too.

--------------------------------------------------------------------------------
ae34898536 | regret-index | 2025-08-14 02:38:08 -0230

Update some transporter documentation
Our no_tele_rules do in fact regularly worry over many transporter vaults
by default these days, and newcomers should be dissauded from making
transporters block off regular connectivity in many circumstances.

--------------------------------------------------------------------------------
ee6a24ebf6 | regret-index | 2025-08-14 02:28:45 -0230

Clean up spin_cycle and fix its gem hopefully for good (implojin)
With eee5569 as the most recent attempt to fix spin_cycle's gem issues
managing to place multiple gems instead, I have opted to sidestep the
vault's room rotation system entirely: both the Depths and the Zot branch
entrance and the gem are now always in the central garden (as was made
accessible via transporters in acbe401). This shouldn't be a problem for
connectivity, since 9dbac83 handles transporters for level connectivity
matters. The branch entrances themselves should be visible from outside,
too.

(While I'm here, I've also re-arranged the header a fair bit and left some
comments throughout; while it has been a relatively well-recieved vault
over the years, it is also one of the most complex in its definition
enough to require multiple fix-ups, so this should hopefully prevent more
errors in future commits.)

--------------------------------------------------------------------------------
2ccc6c5c14 | DracoOmega | 2025-08-14 01:06:36 -0230

More consistently capitalize skill names in ego descriptions
This seems to be the general norm elsewhere.

--------------------------------------------------------------------------------
c43b61291d | DracoOmega | 2025-08-14 01:04:48 -0230

Fix a typo (mysticsailboat)

--------------------------------------------------------------------------------
9dbac838b9 | DracoOmega | 2025-08-14 01:01:35 -0230

Allow transporters to count for level connectivity checks (regret-index)
The part of map generation that verifies all critical parts of a floor are
reachable (such as branch entrances) did not understand transporters (and
in fact was performed before transporters were properly set up, so it
couldn't see them even if it tried).

It seems to me like these should count for connectivity the same as
anywhere else the player can walk, so now we set up transporters slightly
earlier in level generation and allow connectivity floodfill to traverse
them in a similar way that travel already did.

--------------------------------------------------------------------------------
2a02ca1f9d | Implojin | 2025-08-13 20:26:35 -0500

Thoroughly prevent acq from offering useless manuals (Midn8)
Previously it was possible to read acquirement and be offered a manual
that was useless under your current religion, so long as your god did
not actively hate the skill being offered. We had some code in place
here to reduce the weight of these offerings, but the chance of players
being offered e.g. an invo manual under a non-invo god and it being a
good idea to actually god-swap for such a manual didn't make for a very
compelling choice.

As mentioned in e7282f2625, this code is quite silly.

--------------------------------------------------------------------------------
819bfcb938 | DracoOmega | 2025-08-13 17:30:06 -0230

Fix FTILE not respecting tile variant weights (regret-index)
When FTILE was used to define vault floor tiles, it picked its tile
variations completely at random, ignoring the weight values defined for
them (and thus making rare variants much more common than they should be).
And then, perhaps even more weirdly, when the game was saved and loaded,
all those tiles would be sustituted for different ones that actually
respected weights properly.

(Non-floor tiles seem to also not choose weighted variants properly in this
function, and yet don't have this problem. Maybe some later point is
updating those, but not floors?)

--------------------------------------------------------------------------------
fa3920e165 | David Lawrence Ramsey | 2025-08-13 01:29:34 -0500

Fix spelling.

--------------------------------------------------------------------------------
1f91f8d1e3 | hellmonk | 2025-08-13 00:21:44 -0500

Rephrase shadow dragon scales.
Players don't intuitively know how much stealth ER 15 with stealth++++ is
(it's equal to ER 0 with stealth+). Change shadow dragon scales to have no
ER penalty for the purpose of stealth and stealth+ instead for clarity.

--------------------------------------------------------------------------------
273c62b75a | RypoFalem | 2025-08-13 00:20:17 -0500

Don't allow Command armour in Okawaru capstone gifts (55-ENN)
Okawaru worshipers cannot make use of this armour ego without abandoning
Okawaru. Surely Oka wouldn't encourage the player to abandon!

--------------------------------------------------------------------------------
4f2b8cf1c1 | LiciTheCrawler | 2025-08-12 23:24:36 -0500

Fix: Add missing INSCRIP to the Plutonium Sword

--------------------------------------------------------------------------------
9ca7427ebf | Implojin | 2025-08-12 23:04:47 -0500

Let wizmode super heal clear doom

--------------------------------------------------------------------------------
5718d9dcf2 | RypoFalem | 2025-08-12 22:43:32 -0500

Let single-tile exclusions block destination stairs. (CrawlOdds, Darby,
riverfiend splats spriggans, Zewo)

For some reason single-tile exclusions on the destination side of stairs
didn't give warnings or prevent autotravel while multi-tile exclusions
did. This was done intentionally according to code comments but it's not
clear what benefits this had.

On the other hand it caused several people confusion over the years when
their exclusions didn't stop them from going into dangerous situations
that they had marked.

Closes #3115 and #3415

--------------------------------------------------------------------------------
2518ba41e4 | RypoFalem | 2025-08-12 21:41:59 -0500

fix: A temple with the wrong number of altars
dpeg_three_leaves_temple places [9 or 21] not [9 or 18] altars.
--------------------------------------------------------------------------------
50ae0a3e31 | David Lawrence Ramsey | 2025-08-11 20:08:06 -0500

Add a priest override flag for Cassandra.
Since she doesn't have any priest spells (Ashenzari is passively helping
her cast wizard spells), but still needs to be flagged as a priest for
e.g. Beogh's purposes.

--------------------------------------------------------------------------------
b8cb0afb7d | David Lawrence Ramsey | 2025-08-11 19:08:18 -0500

Fix spelling.

--------------------------------------------------------------------------------
c7ac84236b | patrick | 2025-08-11 20:02:40 -0400

Add some new nouns and adjectives for Forgecraft randbooks

--------------------------------------------------------------------------------
781da5af3e | DracoOmega | 2025-08-11 21:00:42 -0230

Give Cassandra ikiller credit for death summons (gammafunk)
I want to preserve the death message not directly stating her involvement
(the flavor is important!) but for the sake of bot tracking, I am
attempting to give her ikiller credit regardless.

Even if this works (I... am not sure how to test logfile generation
locally), this is still imperfect, since it cannot track monsters recalled
upon her death. It's not exactly straightforward to think about how one
might do this, even.

--------------------------------------------------------------------------------
6ce4d9079b | DracoOmega | 2025-08-11 20:55:20 -0230

Don't hide the evocable item drop page with Sac Artifice (gammafunk)
Items that were impossible to ever evoke weren't showing up there at all,
which could result in autoexplore still trying to stack charges of wands
you can never use nor easily drop.

--------------------------------------------------------------------------------
4bf5c0297e | David Lawrence Ramsey | 2025-08-10 22:54:02 -0500

Fix typo.

--------------------------------------------------------------------------------
765ce0cfc4 | David Lawrence Ramsey | 2025-08-10 22:16:30 -0500

Fix typo.

--------------------------------------------------------------------------------
078533993e | DracoOmega | 2025-08-10 23:18:24 -0230

Reduce doom cost of Summon Horrible Things (oneirical)
With Doom wearing off many times more slowly now, it's plausible the cost
for this spell is a little steep now, so let's lower it a bit. (It will
still be more dangerous than it was yesterday.)

--------------------------------------------------------------------------------
c991726cd9 | David Lawrence Ramsey | 2025-08-10 20:41:21 -0500

Tweak Cassandra line again.
To properly cover both good and ill fortune.

--------------------------------------------------------------------------------
20e1c13e1b | David Lawrence Ramsey | 2025-08-10 20:27:19 -0500

Add another Cassandra line.
Adjusted from the original to be two sentences and not three.

--------------------------------------------------------------------------------
ce4935aeb3 | DracoOmega | 2025-08-10 22:39:27 -0230

Allow monsters killed in their sleep to still say their death lines
Surely being violently stabbed can jolt them awake long enough to mutter
something at you.

--------------------------------------------------------------------------------
c78ead9e7f | DracoOmega | 2025-08-10 22:39:27 -0230

Mention jewellery worn by monsters that come into sight
Monsters wearing jewllery is rare enough that it's surely at least as worth
mentioning as branded weapons.

--------------------------------------------------------------------------------
522d93ce03 | DracoOmega | 2025-08-10 22:39:27 -0230

Replace Psyche with Cassandra, the Doomed Oracle
Psyche was one of the last remaining uniques with little flavor beyond
"Wow, I'm insane!". Her signature spell, Chain of Chaos, was also
incredibly hard to reason about (either in terms of what it would hit, how
many times it would hit, how much damage it would do, or what status
effects it even could inflict - which still includes things like Berserk
or full Paralysis that were removed from chaos weapons). The latter part
could be somewhat ignored in practice because she simply wasn't very
threatening, but all of that together doesn't make a very good monster
design.

So let's replace her with another woman from Greek myth with a much
stronger concept for Crawl: Cassandra, doomed to speak prophecy that no one
heeds.

Designed as the first doom-wielding unique, Cassandra is a priest of
Ashenzari who casts Doom Bolt and Swiftness, has Clarity and See Invis, and
also a couple mechanics unique to her: when first encountered, she inflicts
Doom on the player equal to half of what is needed to bring them to 100%
(eg: she will take the player from 0%-50% or 70%->85%). When she is killed,
some of the bad future she tried to warn you away from comes to pass: the
player will be ambushed by monsters drawn from elsewhere on the floor (and
recalled to places 3-4 tiles away). If none are left alive (perhaps because
you dragged her upstairs), floor-appropriate unrewarding ones will be
summoned instead.

The initial doom should make her doom bolts potentially threatening on
their own, and the doom she inflicts should make the player reluctant to
simply avoid killing her lest they suffer an even worse fate. But to
sweeten the pot slightly, she also has a 50% chance to spawn with a random
amulet. She appears slightly deeper than Psyche once did (since, while
frail, she naturally scales with the floor she's on). I have not placed
her in most sprints, since her death recall works poorly there.

(I would have been happy to remove Chain of Chaos and its confusing code
from the game altogether, but it's still used by the Mace of Variability.
It seems very reasonable to rewrite that to use something simpler in the
future, but I've left it there for now, where being hard to reason about it
is less of an issue.)

---------------

Cassandra tile by regret-index, made using roctavian's Harold and Psyche
tiles, CanofWorms's Servant of Whispers tile, plus Denzi's old deep elf
blademaster and naga mage tiles.

--------------------------------------------------------------------------------
b1f22f6449 | DracoOmega | 2025-08-10 22:35:24 -0230

Turn Bane of Recklessness into a mutation instead
While 0 SH can be a very relevant penalty on some characters, it was the
bane most likely to do literally nothing (and very little to many others;
3->0 SH is barely an inconvenience after accumulating that much doom).
Such situational downsides might be more relevant as mutations (where doing
'barely anything' is considered fine), and now it can come with an upside
as well: increasing two-hander damage by 15%! If life gives you lemons,
smack life upside the head with a triple sword.

--------------------------------------------------------------------------------
98edc186fe | DracoOmega | 2025-08-10 22:35:24 -0230

Further increase trove bane duration, convey this in advance
While the general bane duration increases will make these feel less 'free'
than they currently do, I suspect it may still not be quite enough, so
banes obtained from troves now last longer than those from other sources.

In addition, the prompt when entering such a trove will now tell the
player how many XLs they will be cursed for in advance.

Hopefully this feels like a more equitable tradeoff for the (now fairly
better!) trove loot.

--------------------------------------------------------------------------------
d252e45ce0 | DracoOmega | 2025-08-10 22:35:24 -0230

Make doom/banes last longer, adjust a few individual ones
While players seem to find banes interesting (especially as trove costs),
the almost unilateral consensus is that they're not threatening enough -
at least in part because they also don't last long enough. Doom also
clears too quickly to realistically apply banes in most situations; a small
survey of morgue files from 15-rune winners found that a majority never
experienced a single bane for the entire game - even including doing Tomb
in death form, which makes doom expire half as quickly!

Doom now takes much more XP to clear (so that it can actually have a
cumulative effect between fights), baseline duration of banes are
approximately doubled, and a handful of banes have shifted duration
category.
 -Elemental side-effect banes: Medium->Long
 -Dilettante: Long->Medium (should last approximately as long as before)
 -Mortality: Medium->Short (should last approximately as long as before)
 -Warding: Short->Medium (but trigger chance reduced)

The elemental side-effect banes have a much higher trigger chance upon
taking the relevant damage (but Heatstroke's slow duration is slightly
reduced). They were very situational in practice, and this should make it
more likely they feel relevant when afflicted.

Mortality trigger chance is raised, but cooldown between triggers slightly
increased (to hopefully reduce the chance of it never triggering at all,
which apparently happened with some regularity).

Bane of Paradox is much more likely to trigger.

Hopefully this state is closer to reasonable, but we'll see how it plays.

--------------------------------------------------------------------------------
153a2d6dee | David Lawrence Ramsey | 2025-08-10 17:39:57 -0500

Change a head reference to a mind reference.
Mainly for poltergeists who know the maximum number of spells.

--------------------------------------------------------------------------------
1b111379dc | patrick | 2025-08-10 13:04:48 -0400

Give Gozag's Platinum Reserve a spit-shine
Gozag's Platinum Reserve was created mostly as a joke: a shop full of
expensive artefacts you can't afford, intended to remind you that you're
poor -- but you can change that by joining Gozag! It predates my modern
philosophy of "a shop that's always bad is a joke that's only funny
once".

In practice, it's not always so bad -- sometimes, players will
accumulate a ton of gold in late game or extended and need something to
spend it on. But the problem with Gozag's Platinum Reserve was the
choice -- it only generated four items, hardly enough selection for the
discerning consumer!

Combining the notion of Gozagian capitalist excess with a shop gimmick
I've been thinking about for a while, I have touched up the inventory
by making it generate twenty items: the maximum a shop can hold. I've
also made sure to include magical staves and talisman artefacts, which
did not exist when the Reserve was initially created. Now you're more
likely to find something that's still worth it even at 10x the price.
Or, at the very least, you'll find something that makes you really wish
you weren't poor, and you'll look over at the Gozag altar...

Sadly, it's still not possible to add the biggest laser, Airwolf, or the
head of Keith Moon to shop inventories, but I did add some golden
statues to the grounds to punch things up a little more.

--------------------------------------------------------------------------------
f915fd9588 | DracoOmega | 2025-08-09 19:42:32 -0230

Fix incorrect chance for orbs of energy being on % screen (mysticsailboat)

--------------------------------------------------------------------------------
dd7f91d1c4 | David Lawrence Ramsey | 2025-08-08 22:45:46 -0500

Add missing Phobia status description.

--------------------------------------------------------------------------------
c6ea85272a | Implojin | 2025-08-08 14:12:59 -0500

Fix a teleport closet in trove_rift (dilly)
As reported in the roguelikes discord, it was possible for players
to enter any of the teleport traps in this trove and become
stuck in the central cross.

--------------------------------------------------------------------------------
15649fa837 | DracoOmega | 2025-08-07 21:11:47 -0230

Fix category multidrop hotkeys no longer working (Ge0FF)
Broken by 7fc1e07

--------------------------------------------------------------------------------
247caf9a7c | DracoOmega | 2025-08-07 21:11:47 -0230

Rework orb of stardust somewhat
While initial numbers for the orb of stardust effect were overtuned, rather
than simply reduce them, I decided to try a slightly wider change in light
of certain properties: namely that conjuring a fixed number of projectiles
was by *far* at its strongest against a single target (potentially doing
extra to encourage fighting very small battles and retreating often for
the big burst damage).

Instead, the orb now conjures one star plus one for *each nearby enemy*
(capped by a factor of your evocations skill). This means that the orb is
at its strongest when facing a lot of enemies at once (while always
'1 per enemy, at most', that firepower gets concentrated at the front, and
potentially buys the player space to keep casting).

To retain the relevance of MP spent, the MP used to activate the orb now
directly boost shooting star damage instead (by 25% per MP).

While (hopefully) a fair bit weaker than its current effect, the hope is
that the dynamics this produces are interesting and the orb still feels
like it rewards the investment.

(Since enemies with orbs of stardust will now usually be firing only 2
stars in the usual case, their star damage now scales non-linearly. For
sake of clarity, Jeremiah now does 4d4 while Frederick does ~4d14)

--------------------------------------------------------------------------------
e8c28444c0 | DracoOmega | 2025-08-07 21:11:47 -0230

Fix new orb of pyromania timing issues and tweak (Acrobat)
While 0dae1da fixed certain timing issues, it introduced new ones:
explosions could happen with no more enemies in range if there were enemies
in range at the moment the first monster died, and the explosion would
happen at the location the player occupied at the time the triggering death
occured, *not* when the explosion fired. Meaning that spells like
bombard could knock the player into their own explosion, damaging them.
This commit should fix that.

At the same time, I'd extended the effect radius from 2 to 3, while
reducing the damage slightly. It's intended that it only work at 'close
range' (a range closer than one's spells can operate at), but 2 may have
been a little bit *too* restrictive. Let's try it like this.

--------------------------------------------------------------------------------
6930c24efb | DracoOmega | 2025-08-07 21:11:47 -0230

Have the rElec- mut mention the resist in its short desc (Planckenstein)
As is standard for all the others.

--------------------------------------------------------------------------------
30ae0b2bbc | DracoOmega | 2025-08-07 21:11:47 -0230

Fix staves of necromancy not showing up when searching rN+ (salticid)

--------------------------------------------------------------------------------
2fab65de6a | David Lawrence Ramsey | 2025-08-07 16:42:15 -0500

Fix typo/Clang compile warning.
Closes #4711.

--------------------------------------------------------------------------------
b8c24cd5c8 | David Lawrence Ramsey | 2025-08-06 18:54:27 -0500

Fix indentation.

--------------------------------------------------------------------------------
3cac2c8ad3 | RypoFalem | 2025-08-06 18:53:33 -0500

fix: xom speech head variable (55-ENN)

--------------------------------------------------------------------------------
90fa8076ef | Nikolai Lavsky | 2025-08-06 22:49:12 +0300

fix: don't leak the ego of unidentified orbs in xv (acrobat)
Item descriptions were showing the effects of Evocations even for
unidentified orbs.

This commit fixes that.

--------------------------------------------------------------------------------
ddf292f8a0 | hellmonk | 2025-08-06 00:45:00 -0500

Reduce orb of glass vitrify chance.
Was a bit overkill at reasonable skill values.

--------------------------------------------------------------------------------
780caf05a1 | David Lawrence Ramsey | 2025-08-05 18:39:26 -0500

Fix typos, spelling, and wording.

--------------------------------------------------------------------------------
75dcb34f46 | regret-index | 2025-08-05 20:08:30 -0230

A quick new sky beast zombie tile (Bn)
The current fish zombie tile assigned to sky beast zombies (as of 34aa4bc
moving them to the F glyph) doesn't really resemble the current feathered
manta ray design (made in f2ebe9a). To make their tile match the proper
body shape, I've done a quick edit of that current tile that tears away
at it a bit and match zombie colours.

--------------------------------------------------------------------------------
bb01f63bd2 | regret-index | 2025-08-05 20:08:30 -0230

Write the rest of the monster status descriptions
Hopefully, these couple thousand words for less than a couple hundred
status lines should be helpful for newcomers and new features alike.

A few notes:
 * While I'd like to use individual monster pronouns here, there are
   enough subject-verb-tense agreement issues and enough ambiguity issues
   when mentioning another subject (e.g. affecting attackers) that we're
   just defaulting to just using it/its here.

 * "summoned" is left out due being already at the bottom of the default
   monster examination screen.

 * A few other indicators of behaviour versus stealth, like "unaware",
   have been left out due to having many different ambiguous use cases.

 * Some of Zin's Recite-exclusive statuses (e.g. mute, stupified, lost in
   madness) have descriptions but don't currently display in-game and
   instead use their matching regular status (e.g. silenced, paralyzed,
   confused). They are, however, effectively permanent, which would also
   be good to communicate to players; since Recite needs some review in
   general to be more parseable in possibilities, I have left these status
   description in just in case they do end up getting used.

Many thanks to DracoOmega for proofreading this write-up.

--------------------------------------------------------------------------------
279f6177dc | DracoOmega | 2025-08-05 20:08:30 -0230

Don't mention that a monster can't see you if it's blind
Of course it can't; it can't see anyone!

(But also: it will nearly duplicates the single-largest block of info on
the monster status tab, which seems unnecessary.)

--------------------------------------------------------------------------------
424bcd54a1 | DracoOmega | 2025-08-05 20:08:30 -0230

Rename internal name for monster Sign of Ruin enchant
Still accidentally called black_mark.

--------------------------------------------------------------------------------
76c186180a | DracoOmega | 2025-08-05 20:08:30 -0230

Add framework for a monster status description tab on xv
This is to allow the player to read more specific details of the status
effects currently active on a given monster (some of whom are only
loosely described in the one or two words of room we normally have for
them.)

This is currently done by database lookup of the string visible when
looking at a monster with x.

Actual descriptions pending in a future commit.

--------------------------------------------------------------------------------
e81f80b2e1 | DracoOmega | 2025-08-05 20:08:29 -0230

Rename an oddly-pluralized function
It only describes one!

--------------------------------------------------------------------------------
43d37e0709 | DracoOmega | 2025-08-05 20:08:29 -0230

Refactor a bunch of code related to local tiles mouseover descriptions
There was a chunk of monster description code seemingly used *only* for
printing to the message log when you move the mouse over something in local
tiles while *not* aiming anything (ie: if you are targeting an ability or
had previously pressed x, it would print the same messages that console and
webtiles sees, but if you had not, it would print something completely
different.)

Not only did this duplicate a bunch of other code, but in some cases it did
so in a way that produced obvious awkwardnesses like:
	It has been summoned.
	It is filled with an inner flame.
	It is summoned and inner flame.

It also attempted to print full monster descriptions to the message long,
which are now far too large to fit there. (This may have made sense 15+
years ago, which was the last time some of this was changed.)

Now it instead prints something very similar to if you were examining the
tile with x instead, and several methods of direction_chooser have been
pulled out to faciliate this.

(This also improves how many different functions with confusingly-similar
names there were, by renaming some and removing/replacing others.)

--------------------------------------------------------------------------------
c73acace97 | DracoOmega | 2025-08-05 20:06:26 -0230

Clear custom tile flavors when ruining vaults
One of the things _ruin_level does is sometimes replace tiles with the
feature type of a random adjacent tile. But this is done *after* the vault
definition is fully processed, and if special tiles were applied to the
ruined tile, it would retain them after the feature was converted to
something else (which could, for instance, result in water looking just
like the wall it used to be).

This is not the only place where features are changed post-vault-placement,
but I think this bug was somewhat disguised by how tile redefinitions may
simply be ignored if the feature is changed to 'floor' instead of anything
else.

I don't think this is a comprehensive fix, but it's possible any remaining
problems are only theoretical, as nobody has reported seeing them (and it
seems hard to examine exhaustively).

This fixes #4695

--------------------------------------------------------------------------------
ce694dbfb0 | DracoOmega | 2025-08-05 16:10:28 -0230

Fix inverted logic in Nobody memory display (Ge0FF)

--------------------------------------------------------------------------------
6e62d30407 | DracoOmega | 2025-08-05 13:42:54 -0230

Don't dismiss eldritch tentacles on player attacks (Acrobat)
The previous behavior of 'getting angry at the player' was seemingly broken
by fb19e97 and unnoticed by me until now. More than most summons, the fact
that you may have to deal with a hostile monster in a random position is a
deliberate part of this spell and being able to avoid it by hitting the
tentacle first (perhaps to 'reroll' its placement), feels like incorrect
behavior. (Although, in most cases, this is unlikey to matter much.)

--------------------------------------------------------------------------------
0dae1da89c | DracoOmega | 2025-08-05 13:08:56 -0230

Fix some orb of pyromania timing issues (Acrobat)
Pyromania intentionally could trigger only once per turn, but it did this
by storing the number of qualifying kills and then rolling the chance at
the end of the player's turn.

However, the player can kill things on the enemy's turn - this is how
things like clouds, poison, noxious bog, and several other things work.
Which resulted in an explosion at the end of the turn *following* the
monster dying.

To improve clarity, the explosion is now triggered immediately when a
qualifying monster dies, using an internal cooldown that only resets at the
start of the player turn. This should hopefully work much better.

--------------------------------------------------------------------------------
d0649960d3 | DracoOmega | 2025-08-05 12:20:37 -0230

Fix enemy orb cooldown (ie: for stardust) not expiring off-level (Acrobat)
Along with some other status effects that were also missing.

I swear, some year I will refactor this more properly.

--------------------------------------------------------------------------------
d7cdb239b7 | DracoOmega | 2025-08-05 12:20:36 -0230

Fix Bane of Claustrophobia giving slaying instead of antislaying (Bn)
See? The fear really was just in your head all along.

(Whoops.)

--------------------------------------------------------------------------------
b13c4b51f1 | DracoOmega | 2025-08-05 12:20:36 -0230

Add a milestone for seeing your first zot orb statue
At least for now.

(The goal here is to make it easier to measure the deadliness of each
version of Zot:5, rather than just 'which orb is best at landing a killing
blow' (in case these two are different).)

--------------------------------------------------------------------------------
67d493afc1 | Nikolai Lavsky | 2025-08-05 16:49:44 +0300

fix: let certain orbs activate Evocations training (acrobat)
Also, adjust a few orb ego description to mention Evocations scaling.

--------------------------------------------------------------------------------
32989d1883 | DracoOmega | 2025-08-05 00:06:55 -0230

Fix not being able to disassemble tempered forgecraft allies
ie: you were unable to remove a lightning spire from your way by attacking
it if it was currently Tempered.

This fixes #4689

--------------------------------------------------------------------------------
4ef15595ec | DracoOmega | 2025-08-05 00:04:12 -0230

Fix zot orb statues having no tile when searched for
For some reason, we were doing feature lookup by string (which failed for
features with dynamic names, like this one) instead of using the feature
type that *we already had*.

Looking at the original commit of 276b176 this code may predate storing the
feature type, but it seems almost surely correct to actually use it now
that we have it (ie: since at least 6 years ago...)

--------------------------------------------------------------------------------
78fe029cce | DracoOmega | 2025-08-04 23:32:40 -0230

Fix some timing issues with Beckoning Gale
It did damage before moving the creature or printing a message, which would
result in the message about a monster dying being printed *before* the
message about what killed it (which would then also say that it happened to
DEAD MONSTER, making the result further incoherent).

Now it moves first, then prints messages, then applies damage, (and finally
applies traps at the destination, if the victim is still alive).

This fixes #4526

--------------------------------------------------------------------------------
888cd41090 | DracoOmega | 2025-08-04 23:21:58 -0230

Fix EV change preview for granite talismans ignoring EV malus (salticid)
It was incorrectly categorized as a 'temporary' EV modifier and ignored.

(I don't think there were any other effects from this.)

--------------------------------------------------------------------------------
387ebad2a6 | DracoOmega | 2025-08-04 23:15:17 -0230

Make Deformed Body and talisman base AC modifiers stack multiplicatively
Currently they are additive, so maw (-75%) + deformed body (-40%) results
in -115% body armour AC. This is capped at 0, so it can never actually
*reduce* your AC, but is arguably not the best way for these to stack. (The
current behavior also makes blade talisman take a moderate amount of skill
before you gain any AC back from training it, if you have Deformed Body.)

Now they stack multiplicatively, so maw + deformed body results in -85%
AC.

This also adjusts some potentially confusing information in the form
properties table where the base AC listing considered your current armour
but *not* whether you had Deformed Body, overstating the penalty (though
the full AC change information at the bottom was still correct).

This fixes #4541 and #4535

--------------------------------------------------------------------------------
34431122f1 | DracoOmega | 2025-08-04 23:09:02 -0230

Reorder a confusing message regarding Sprozz and meph clouds
While meph cloud confusion did actually reliably interrupt Sprozz casting
Launch Clockwork Bee, the timing was such that the game would say they
were confused by the cloud, then say they continued winding the bee, and
then stop on the next turn.

Instead, print the winding message earlier in the turn. (There should be
no functional change.)

This closes #4563.

--------------------------------------------------------------------------------
75deb09d92 | DracoOmega | 2025-08-04 22:11:58 -0230

Remove spaces from a few internal enchant names
So that mapspec could actually give them to a monster (primarily in
wizmode).

This is admittedly not useful for almost any of these, since they won't
function without other infrastructure, but it's the principle of the thing.

--------------------------------------------------------------------------------
7ddf3a15b4 | DracoOmega | 2025-08-04 22:10:40 -0230

Fix seismosaurus egg sometimes not hatching (MixedVeggies)
The conditions for this were a bit opaque, but essentially: if the egg
somehow had a monster foe that wasn't in LoS of it, it wouldn't hatch -
even if its normal conditions were fully met. Having *no* foe was fine (and
it does not normally care about its own LoS, so long as its summoner has
LoS to a target), but having any foe it could not see would be completely
shut it down.

And there are a bunch of ways for it to get a foe that is out of sight, via
pet targets. Obviously through ta but the summoner simply being hit by a
monster out of the egg's LoS could sometimes set its target to that monster
and halt its hatching completely.

There are a bunch of things in mon_special_ability that probably don't work
properly in some situations due to this sort of behavior (and monster
spells as well). I'd like to review and refactor some of that in future,
but in the short-term it's vital that the egg behave consistently for
players (and it hopefully now should).

--------------------------------------------------------------------------------
a4eba9be41 | DracoOmega | 2025-08-04 21:28:12 -0230

Don't wait until the player is in LoS to regenerate Nobody's memories
When a large amount of time passes, Nobody will recover enough memories to
fully regenerate, but this wasn't being done until the player was in LoS
(and Nobody was aware of them), which could briefly result the game
claiming they had few/no memories left and then appearing to spontaneously
generate them as soon as they noticed you. Now, it should restore itself
in a more player-indifferent fashion.

Also fix a minor typo.

This fixes #4673

--------------------------------------------------------------------------------
6f5554e8e2 | DracoOmega | 2025-08-04 21:09:21 -0230

Update artprop cache when the Toga of Victory grows
This is potentially the only case where the artprops of an item the player
has equipped can change while they are wearing it, and failing to update
the cache meant that the increased slaying and int bonuses would not apply
until the next time it was updated for some other reason.

Since this happens on every equipment change and also every save (meaning
every time the player changes floor) and many other cases, in practice a
player was unlikely to be denied their rightful bonus for too long, but
it would still lag behind what stats the toga appeared to have.

This fixes #4690

--------------------------------------------------------------------------------
2cba7e52a5 | DracoOmega | 2025-08-04 20:53:35 -0230

Don't trigger Bane of Succour on deaths of firewood or friendlies
Friendlies dying would even heal other friendlies, making this quite
positive for some characters!

Fixes #4693 and #4694

--------------------------------------------------------------------------------
24c3516842 | DracoOmega | 2025-08-04 20:49:32 -0230

Let pillars of salt be affected by LRD
Saltlings already can be, so this just seems consistent to me.

Fixes #4699

--------------------------------------------------------------------------------
e05308c891 | DracoOmega | 2025-08-04 20:46:17 -0230

Fix a comment typo

--------------------------------------------------------------------------------
a62b8c6a89 | DracoOmega | 2025-08-04 20:46:02 -0230

Fix talismans sometimes not being adjusted properly when remapped
Swapping the letter they were bound to was only handled properly by =g if
it was the first of two letters you selected, not the second.

Fixes #4687

--------------------------------------------------------------------------------
6b1eaea29a | DracoOmega | 2025-08-04 14:23:07 -0230

Don't let Lucky mutation upgrade hides you get by killing (Flugkiller)
While probably exceedingly marginal in practice, there was some concern
that it could make sense to 'park' dragons in hopes of obtaining the Lucky
mutation later on and returning to kill them for slightly better loot.

(There are a lot of reasons I don't think this applies to loot on the
ground, but I didn't even realize it worked on dropped hides originally, so
it seems fine for it not to.)

--------------------------------------------------------------------------------
0b83302fb8 | DracoOmega | 2025-08-04 14:23:07 -0230

Allow converting to Beogh while invisible (Ogregutan)
While technically it makes some sense that the priest needs to see you to
offer conversion, it's a bit incoherant that you cannot voluntarily
surrender just because you happened to drink !invis partway through a
fight, and I think this is behavior few would expect. If they're aware
enough to try hitting you, they can surely acknowledge you shouting how
you've accepted Beogh into your heart.

--------------------------------------------------------------------------------
cafa3f870a | DracoOmega | 2025-08-04 14:23:07 -0230

Let orcish apostles walk on top of toxic bogs (Ogregutan)
This treats their water-walking ability as closer to actually flying over
water, preventing them from taking damage from it. (And Toxic Bogs already
function as water for many purposes, like merfolk swimming.)

This was initially motivated by them behaving very poorly in the Eringya's
Secret Bog trove, but makes sense to me in general - they're not *in* the
muck, after all.

(And extend the player the same protection if they can also walk on water,
for what vanishingly little it will matter.)

--------------------------------------------------------------------------------
9e2365adfb | DracoOmega | 2025-08-04 14:23:07 -0230

Make orb of stardust trigger immediately after using instant abilities
Instead of one action later (which can be kind of confusing).

I don't *think* running final effects here should have any consequences.

--------------------------------------------------------------------------------
9c2d171977 | DracoOmega | 2025-08-04 14:22:56 -0230

Fix orb of stardust triggering on things it shouldn't (AliasTheSpectator)
Most notable of which was *aiming* a spell and cancelling it (which would
spawn them after your next action), but it was also possible to spawn 9
shooting stars just by taking off a ring of magical power.

To avoid being hooked into everything that internally calls pay_mp(), I've
narrowed the semantics on what triggers the orb. It now only triggers on
paying MP to successfully use spells or abilities (or mp-powered wands,
which I am liberally interpreting as using a spell, due to their shared
evocations connection). Most other causes of paying MP are either too tiny
to be worth using an orb for anyway, awkwardly gamey (deliberate miscasts),
or potentially wildly broken (like Mad Mage's Maulers dumping 50 out of
them out at once.)

--------------------------------------------------------------------------------
baad0985c0 | DracoOmega | 2025-08-04 14:22:30 -0230

Clarify that only melee attacks build slaying as a werewolf (various)

--------------------------------------------------------------------------------
ba30303dc3 | DracoOmega | 2025-08-04 14:22:30 -0230

Allow =i to remap gear again (various)
This doesn't change the hotkey that is printed when you press = but allows
=i to additionally work the same as =g (as we do in a few other places for
'legacy' keybinds).

This closes #4669

--------------------------------------------------------------------------------
7fc1e07ca9 | DracoOmega | 2025-08-04 14:22:30 -0230

Change hotkey behavior in non-inventory menus
This restores something close to the pre-0.34 behavior for menus besides
non-paged 'i', with a hotkey selecting the closest matching entry, rather
than the first entry of the current category (the latter of which makes
sense when there are multiple categories with overlapping letters, but not
when there's a single category with so many letters that they can never be
all on screen at the same time, such as memorizing from a very large
library or examining many monsters on the screen at once).

This fixes #4700

--------------------------------------------------------------------------------
b8b9af027c | DracoOmega | 2025-08-04 14:22:30 -0230

Fix a few missing entries in options_guide table of contents (Lici)

--------------------------------------------------------------------------------
4594c10d8e | DracoOmega | 2025-08-04 14:22:30 -0230

Remove 'parchment' from the randbook name pool
It's confusing now that parchments are something specific.

--------------------------------------------------------------------------------
ae72ba5b58 | DracoOmega | 2025-08-04 14:22:30 -0230

Don't consider books of evil spells to be themselves evil (salticid)
So that autoexplore will not ignore them. Swapping away from good gods is
done more often than other gods, and the current behavior means that if a
player wants to use any evil spell they already encountered, they need to
manually go back and pick it up.

The spell library is supposed to remove this need in general, and it seems
harmless for forbidden magics to sit there in case the player may be
tempted to sin in future.

--------------------------------------------------------------------------------
5603ad5512 | DracoOmega | 2025-08-04 14:22:30 -0230

Make Wucad Mu only antimagic enemies on spell success (Rypofalem)
I somehow failed to consider that the channel effect can be triggered even
more reliably by casting a spell you won't succeed at, which sounds like a
bit much.

--------------------------------------------------------------------------------
e03677db13 | DracoOmega | 2025-08-04 14:22:25 -0230

Make allies reliably break daze with melee attacks (Lici)
The code that makes allies only have a 1-in-3 chance of distracting
monsters they hit in melee does so by, essentially, having only a 1-in-3
chance for the victim to register that they were hit at all. Meaning that
if a monster was dazed, another monster hitting them would often not snap
them out of it.

The way I am solving this feels a little bandaid-y, but may be entirely
adequate to the problem. (We'll see.)

--------------------------------------------------------------------------------
814572cca4 | DracoOmega | 2025-08-04 11:17:59 -0230

Remove some extra spaces in ego descriptions (Shard1697)

--------------------------------------------------------------------------------
d9655e4f6d | DracoOmega | 2025-08-04 10:54:38 -0230

Fix randart scarves sometimes generating without egos (Lici)
The new code to allow non-artprop egos to sometimes generate on randart
armour was accidentally causing randart scarves of harm and invis to
generate with no ego at all.

--------------------------------------------------------------------------------
33a118b497 | DracoOmega | 2025-08-04 10:52:53 -0230

Fix orbs of Wrath still generating (Acrobat)
Their removal must have gotten lost in the rebasing before pushing to
master.

--------------------------------------------------------------------------------
46a86ea436 | DracoOmega | 2025-08-04 10:52:18 -0230

Fix orbs of energy showing 0% effect chance while unequipped (Acrobat)

--------------------------------------------------------------------------------
155abb9b26 | DracoOmega | 2025-08-04 10:47:18 -0230

Improve description of orbs of glass (Acrobat)

--------------------------------------------------------------------------------
117922889b | DracoOmega | 2025-08-03 17:18:20 -0230

Mark Amulets of Wildshape as useless to undead

--------------------------------------------------------------------------------
abe1577ac2 | David Lawrence Ramsey | 2025-08-03 14:41:46 -0500

Add useless item checks for new egos.
These account for Ru sacrifices.

Amulet of wildshape: useless if you've sacrificed shapeshifting.

Amulet of alchemy: useless if you've sacrificed alchemy (primary effect)
and can't drink potions (secondary effect).

--------------------------------------------------------------------------------
0115154d79 | DracoOmega | 2025-08-03 16:51:35 -0230

Mark orbs of stardust as useless to Djinn (Lici)

--------------------------------------------------------------------------------
f01f3a26ca | DracoOmega | 2025-08-03 16:51:23 -0230

Don't trigger Stardust by using Sanctuary (Lici)
Not likely to come up much in a real scenario, since it would need to be
your first use of MP in a given battle, and still doesn't result in penance
if enemies are near you (since Zin suppresses all seeker hits inside a
sanctuary).

But technically, if there's only monsters *outside* the sanctuary, they
can fly out and hit *those* and give you penance. So let's just avoid that.

--------------------------------------------------------------------------------
523f668748 | DracoOmega | 2025-08-03 15:22:42 -0230

Refactor mesmerisation effects, make it Daze monsters (regret-index)
Mesmerisation currently has no effect on monsters whatsoever. Rather than
being completely player-centric, a thematically appropriate effect that
could be applied to monsters instead is Dazed (which also makes for an
interesting anti-ally ability that isn't just 'abjuration', and we'd like
more of those).

All player mesmerisation effects now also attempt to daze all hostile
monsters in LoS of the caster at the same time.

I have also heavily refactored the spell code involved; siren song and
mesmerise used essentially completely disjoint codepaths and there were
multiple issues inolved:
 -Mesmerise had a tracer argument that was never used by its tracer,
  resulting in monsters casting it when it would be impossible to ever do
  anything.
 -But the tracer argument itself was bugged so that if it ever *had* been
  called, it would have irresistably mesmerised the player - even bypassing
  Clarity!
 -Code to reduce cast rate depending on whether the player was mesmerised
  or not had inverted logic for the two spells (Mesmerisation was less
  likely to be cast if the player was already mesmerised, while Siren Song
  was *more* likely to be cast if the player was already mesmerised; now
  they will both reduce cast rate only when all targets in sight are
  affected.)
 -The mesmerisation spell would fail to work on the player if the *player*
  was silenced, for entirely opaque reasons (this makes some sense for
  Siren Song, since it is a sound-based effect, and has been tentatively
  retained there, but no longer applies to Mesmerise)
 -And in general, both functions were *similar enough* that it was hard
  to notice or reason about many of their differences.

Both spells now use a single, shared function to handle their mesmerisation
effects (with seperate code only for messaging and handling Avatar
effects). Several redundant checks (like asking if the caster is confused)
have been removed, messaging mildly improved for Mesmerise, and Avatars
will be a little less picky about singing so that their drowned soul summon
can operate even in cases where the player is otherwise unaffectable (they
already ignored Berserk, but now they only care that a foe is in sight).

Spell descriptions have been rewritten (in some cases, mentioning
properties that were always true, but never mentioned before now).

--------------------------------------------------------------------------------
a562f9f791 | DracoOmega | 2025-08-03 15:22:42 -0230

Fix a few remaining reference to Doom Howl
Now that it's called Oblivion Howl.

--------------------------------------------------------------------------------
89fc6cea23 | DracoOmega | 2025-08-03 15:22:42 -0230

Make Orb of Energy scale with evocations, adjust Wucad Mu
Orbs of energy were a little underwhelming - sometimes useable, but
generally considered not worth abandoning a shield for. Scaling their
effect with evocations may make them more tempting to use. It reaches its
current level of power with 4.5 skill and can greatly exceed it with
significant investment (currently up to 45% chance at 27 evo).

Wucad Mu's effect is currently 'orb of energy x2' and obviously this would
be absurd to double at this point, so I've given it something else. Leaning
into both the monastic flavor of the wizlab, and how the named statue there
drains MP, the crystal ball of Wucad Mu is now an orb of energy that has
a chance to drain additional MP (and briefly antimagic) any hostile
spellcasters in sight whenever the MP refund effect triggers.

--------------------------------------------------------------------------------
49353e1f95 | DracoOmega | 2025-08-03 15:22:42 -0230

Make Orbs of Guile scale with evocations
Guile was by far the most successful of the previous orb designs, being
extremely worth the tradeoff of a shield for specific playstyles. But it
was also arguably *too* powerful - singlehandedly making an entire
repertoir of spells strong the whole game long, reducing many lategame
enemies to 0 will, and generally making it feel night and day whether your
hexer found this specific item.

It is still a cool and exciting effect, and the situations it generates are
interesting, but requiring additional investment may make its power level
more reasonable. So, in keeping with the majority of orbs, it now scales
directly with evocations skill - requiring 16 skill to reach its old level
of power (though also being able to exceed it, for an even higher
investment).

--------------------------------------------------------------------------------
7586918c8d | DracoOmega | 2025-08-03 15:22:42 -0230

Make orbs more common
Finding an orb the player would actually want to use before they felt
committed to something else was always a bit of a problem, and now there
are even more orbs to choose from. While those orbs are also more
individually appealing, it might still help to have a higher chance to find
one earlier in the game.

(The code to do this takes a somewhat hacky approach, but our cascading
probabilities for body armour generation are somewhat hard to reason about
and I didn't want to take the weight out of items people were likely to
care about.)

--------------------------------------------------------------------------------
ddee564bc0 | DracoOmega | 2025-08-03 15:22:42 -0230

Allow appropriate elemental enhancers to appear on artefact aux armour

--------------------------------------------------------------------------------
152897a61c | DracoOmega | 2025-08-03 15:22:42 -0230

Replace existing uses of orbs of light and wrath
This includes changing Frederick and Jeremiah's starting gear
options, as well as a handful of vaults. (Some of the more
complex replacements to the latter courtesy of regret-index.)

--------------------------------------------------------------------------------
f86eb2a54b | DracoOmega | 2025-08-03 15:22:42 -0230

Show Orb of Glass success chance when examined

--------------------------------------------------------------------------------
fe97f93fca | DracoOmega | 2025-08-03 15:22:42 -0230

Fix multiple monster foxfire bugs and adjust will-o-the-wisp to compensate
There were a handful of different bugs that could cause hostile foxfire to
fail to deal damage (and often still die in the process) when one might not
expect them to.

Firstly, they could make attacks of opportunity against the player, in the
usual way of most monsters, which would inflict essentially no damage and
still kill them.

Secondly, a bunch of player-centric code was seemingly not properly updated
when will-o-the-wisps were first added, resulting in both:
 -Hostile foxfires cannot attack monsters whose cell the player cannot see
  (ie: player allies can evade damage from foxfires if the *player* ducks
  behind cover)
 -When a foxfire hits something, if its creator cannot see both it and its
  target at that time, it will die without dealing damage. (This is very
  reasonable behavior for player foxfires, but quite odd and unexpected for
  enemy ones; I am not sure anyone even realized this was happening.)

Thirdly, while possibly intentional, the behavior regarding foxfires after
their creator dies was strange. They would not die immediately, and would
continue to pursue their target, but then they they tried to *hit* the
target, would fail and die. One could make an argument that they should
vanish immediately, but I feel the behavior more consistent with similar
effects (such as orb of destruction) would be to remain viable after their
creator's death.

However, fixing each of these represents a meaningful buff, in practice, to
will-o-the-wisps, which are already the 2nd-highest killer in Swamp. It's
hard to estimate exactly what percentage of their shots whiffed, but given
the tendancy of wisps to break LoS with blinks or move places that will
result in the player moving away from existing foxfires (thus triggering
aoops), it's probably a meaningful number. So I have made some compensatory
nerfs at the same time.

Will-o-the-wisps lose their melee attack entirely (how could being engulfed
by a thing made of fire do no fire damage, anyway?) and their HD is
slightly reduced (to make their marshlights do less damage). But in
addition, the health of their foxfires is greatly reduced to make it
sometimes viable to kill them (as a mild replacement for the counterplay
previously caused by them being unable to hurt you after the wisp itself
was dead.)

Foxfires never had special attack protection, and the player's are fairly
fragile, but as a possibly-unnoticed side-effect of spellpower being
linearly converted to HD, which then became HP, wisp foxfires had more than
3 times the HP of the wisp itself! So now, foxfire HP simply caps at 20 -
this is deliberately more durable than living spells, who are supposed to
fall over at any damage in their direction, but still low enough that
sometimes you can blow them away.

We'll see how scary the resulting will-o-the-wisps are, but it seems better
to have them work more intuitively and then make whatever balance
adjustments are needed to make the resulting state remain appropriately
dangerous.

--------------------------------------------------------------------------------
b3e76cc095 | DracoOmega | 2025-08-03 15:22:42 -0230

Fix a possible local tiles crash with parchment rendering
I'm not sure precisely how this is triggered (and it does not seem common),
but let's try to handle this ocurrance a bit more gracefully.

--------------------------------------------------------------------------------
ee179f7925 | DracoOmega | 2025-08-03 15:22:42 -0230

Add some convenience shorthand for itemspec
You can now use 'any body armour', 'any aux armour', and 'any shield' to
produce a random item of the appropriate type that otherwise respects item
level and random weighting as exists for floor items in the game.

(This was requested to avoid situations where things like 'any armour
ego:poison resistance' could produce orbs of poison resistance, and may
also have some other usefulnesses.)

The refactoring should only result in a miniscule change in item weights.

--------------------------------------------------------------------------------
c671ef716b | DracoOmega | 2025-08-03 15:22:42 -0230

Don't skip an ego on nearly 50% of hats
Unlike helmets, and even when one is explicitly requested.

(This seems to date back to truly ancient times and I'm not sure what the
justification may have been, but seems unnecessary. And also made ego ice
enhancers far rarer than other elements on any species who couldn't wear
helmets.)

--------------------------------------------------------------------------------
9728f3e24f | DracoOmega | 2025-08-03 15:22:42 -0230

Make egos more common on aux armour
Aux armour drops vastly less often than body armour, which already made
some of the aux-only egos extremely rare - you could expect to find one
pair of gloves of infusion only every 3 complete 3-rune games, for
instance! This is likely even more foregrounded now that there are new
aux-only egos, so let's raise the ego chance for aux armour over other
types.

(This is a strict player buff, but having more varied things to choose
from is more interesting than not, and some upcoming changes will nudge
player power down in a more general way.)

--------------------------------------------------------------------------------
4f6ac0dd80 | DracoOmega | 2025-08-03 15:22:42 -0230

Improve interaction of armour egos and randarts, allow some to generate
While there has never been technical reasons why artefact armour cannot
have arbitrary egos (and, in fact, orbs and scarves have done this all the
time), it was only allowed for vault-placed items and sometimes led to
confusing situations for players nonetheless.

For instance, a plate armour of fire resistance could roll an rF+ artprop,
leaving its properties showing as {rF+, rF+}, even though this was
functionally identical to {rF++}. The most common cause of this was likely
vaults specifying an ego manually and also good_item (for random plusses),
which would sometimes create a randart also using the ego.

However, there were always a handful of armour egos that never appeared on
randarts at all (eg: Infusion or Hurling). Recent commits adding even more
of these (and more exciting ones) have had numerous players requesting it
be possible they show up on randarts and so this commit refactors a few
things to allow it to happen.

There is now a function to map ego->artprops, for cases where there is a
one-to-one mapping. In cases where an artefact has a prespecified ego that
*could* be an artprop, it will simply get converted to that artprop upon
generation. (ie: that {rF+, rF+} armour will generate as {rF++} only). If
the ego cannot become an artprop, it will be preserved as an ego.

And for naturally generated artefacts, they have a 50% chance of
generating an ego as normal and then keeping it *only* if it has no artprop
equivalent. (ie: armour will not generate rF+ at a higher rate than before,
but randart armours of Command will be possible).

Hopefully this will allow a few more interesting artefact combinations,
while reducing player confusion at the same time.

--------------------------------------------------------------------------------
162ebdc247 | DracoOmega | 2025-08-03 15:22:42 -0230

Cache worn armour/gizmo egos for faster access
Looking up whether or not the player is wearing particular egos is done
very frequently and involves iterating the player's entire list of equipped
items.

Instead, cache worn egos on equipment change, using the same logic that
artprops already do.

(This is probably of minimal benefit, but should still be slightly faster,
and is potentially another step closer to backend unification of some
egos/artprops.)

--------------------------------------------------------------------------------
c23445e14c | DracoOmega | 2025-08-03 15:22:42 -0230

New orb: Attunement
When used alongside a magical staff, it provides a second enhancer of the
same type as that staff. Additionally, staff damage procs from attacking
with it will restore 1-3 MP.

---------------

(Icon by regret-index, using ontoclasm's recharging icon)

--------------------------------------------------------------------------------
4885dbfb35 | DracoOmega | 2025-08-03 15:22:42 -0230

New orb: Mesmerism
These orbs inflict Daze in a small radius around the player when you are
injured by a melee attack. There is a cooldown afterward (that doesn't
recharge while moving, Hop-style, to temper how useful it is to kite things
things using them). The daze duration, cooldown, and effect radius are
improved by evocations skill.

Ideally, this is a defensive option that competes usefully with shields
while being very different in how it defends the player.

(Note that the name was chosen in anticipation of a subsequent commit that
will make mesmerise effects *in general* apply Daze to monsters.)

-----------------

Mesmerism icon by regret-index, using ontoclasm's blind status icon and
Sastreii's dazed status icon.

--------------------------------------------------------------------------------
aa9e52a59c | DracoOmega | 2025-08-03 15:22:42 -0230

Fix pacified orcs not dropping gear on turn you join Beogh (Ogregutan)
For reasons that are unclear to me, the player's religion was set to
GOD_NO_GOD in the middle of the pacification effect, and then set back to
Beogh afterward, meaning that if an orc was already on the stairs, they
would leave the floor while the player *wasn't* worshipping Beogh, and thus
not drop their items.

I can't see a reason for this behavior, so I have removed it (and also
reordered things to make messages make slightly more sense in that case.)

--------------------------------------------------------------------------------
51f9e9f3e9 | DracoOmega | 2025-08-03 15:22:41 -0230

New orb: Stardust
This orb conjures a group of shooting stars the first time its holder pays
MP while a hostile monster is in sight. This can be from casting spells,
but also many god abilities.

Shooting stars behave a bit like slow foxfires, but push enemies back on
hit and can be freely shot through (so as to not interfere with conjurers
when they repeatedly appear while blasting). The number of shooting stars
created is equal to the MP that was paid at once, and their damage scales
with evocations.

The orb only recharges once its wearer's MP refills to max and they spend
a few turns with no more enemies in sight (which is the closest to 'once
per battle, at the start of battle' that I can think of).

Hopefully this provides an interesting combination of additional damage,
light cover, and disruption for further blasting on different characters.

(Rather than attempt any logic in terms of 'MP cost' for monster spells
and abilities, the number of stars an enemy holding one makes is purely
based on their HD and happens on any spell/spell-based-ability usage.)

-------------------

Tile work by regret-index, using Denzi's wretched star tile, ontoclasm's
Foxfire tile, and Sastreii's starflower tile.

--------------------------------------------------------------------------------
595439e0fd | DracoOmega | 2025-08-03 15:22:41 -0230

Capitalise terse ego names
Largely to keep them from being lowercase in the list of artprops when they
generate on artefacts.

--------------------------------------------------------------------------------
19b50c724e | DracoOmega | 2025-08-03 15:22:41 -0230

New orb: Pyromania
There was some desire to make fire enhancers more common than other
elemental enhancers (partially in compensation for the loss of rings of
fire, and partially for thematic blasty reasons), so this orb combines a
fire enhancer along with a chance to unleash a radius 2 explosion around
the player whenever they kill something by any means other than attacking
it (ie: spells, wands, or abilities).

The trigger chance and damage both scale heavily with evocations. It can
happen at-most once per turn and cannot retrigger itself.

I'm not sure its exact power level right now, but hopefully it can at least
be fun?

--------------------------------------------------------------------------------
476d2340da | regret-index | 2025-08-03 15:22:41 -0230

New tiles for old, new, and future armour egos
Sources:
 * Body armour of Resonance: A CC0 set of weapon icons by Shade.
 * Body armour of Command: Ontoclasm's scroll of summoning and enchant
   armour icons.
 * Body armour of Death: Ontoclasm's draining / torment icon.
 * Hat of Sniping: Ontoclasm's old CTele icon.
 * Helmet (and orb) of Light: An edit of Ontoclasm's invisibility icon
   by Darby.
 * Gloves of parrying: Ontoclasm's reflection icon and old protection
   icon.
 * Amulet of Alchemy: Ontoclasm's old preservation icon.
 * Amulet of Dissipation: Ontoclasm's old Rod of Inaccuracy icon.
 * Amulet of Wildshape: Sastreii's unused Wand of Rending icon.
 * Orb of Glass: Ontoclasm's old rod of scattershot icon.
 * Orb of Power: Ontoclasm's old wand of magic dart icon and
   current Sword of Power tile.
 * Orb of Storms: Ontoclasm's fog and electrocution icons.

(Armour of Archery, the elemental-enhancer aux armour set, and the
Orb of Conjuring all keep their prior tiles.)

--------------------------------------------------------------------------------
280f043030 | regret-index | 2025-08-03 15:22:41 -0230

Rename armour of preservation and staves of death
 * Cloaks of preservation are now named cloaks of corrosion resistance.
   The linking of preservation to corrosion resistance in 8388af8 was
   always a strange piece redunancy, as without the old item conservation
   effect, it was otherwise identical to corrosion resistance yet made
   the property have different names on cloaks / shields versus rings.
   (The enshrouded potion icon also doesn't really reflect what opposing
   corrosion is themed after in Crawl.) Their icon is now just ontoclasm's
   old amulet / current ring resistance icon.

 * Staves of death are now named staves of necromancy. The new Armour of
   Death ego added in prior commits has significant mechanical differences
   from the staff (+NecroWiz, HP-costing non-Necro spells, no rN). Also
   pertinently, the majority of school-enhancer staves match up with their
   spell school names (with the other exception being the whole
   "resistable-cold-versus-partially-resistable-ice space". Their icon is
   otherwise the same as prior.

--------------------------------------------------------------------------------
76d39ff0f0 | DracoOmega | 2025-08-03 15:22:41 -0230

Add a linebreak between amulet descriptions and where they were obtained
Makes it a bit easier to read (and is present for most other items).

--------------------------------------------------------------------------------
4d727ebed7 | DracoOmega | 2025-08-03 15:22:41 -0230

Change Amulet of Alchemy's secondary effect
Instead of reducing the cost of Alchemy spells by 1, it now restores a
small amount of MP (currently 3-6) whenever the wearer drinks an
otherwise-useful potion.

This is a less narrow secondary effect than before (it seems a good idea to
me for amulets to be a little broader in their appeal) and leans into
another thematic association of alchemy. Additionally, MPRegen amulets were
often by-far the most desireable amulet for many mages and this might give
it a little competition in that regard (ideally being a little less
strong passively, but better in burst situations).

To discourage fiddly amulet swapping, it requires attuning to the amulet at
full MP, just like MPRegen does.

(It's possible I've set the numbers too high, but I'm curious how players
will feel to use it.)

--------------------------------------------------------------------------------
363eb5a365 | hellmonk | 2025-08-03 15:22:41 -0230

Change shield ego weighting
Split across types to mimic armours. Allow ponderous tower shields.

[Committer's note: Tweaked weights slightly and removed some leftover
code.]

--------------------------------------------------------------------------------
7340d8db8e | hellmonk | 2025-08-03 15:22:41 -0230

Amulets of Dissipation
Make negative dispellable effects and contam go away ~ twice as fast.

--------------------------------------------------------------------------------
5bbccda32b | hellmonk | 2025-08-03 15:22:41 -0230

Orbs of glass
They vitrify things, better if you have evocations skill.
I am not sure that skill scaling "makes sense" here, but we want
to try some skill scaling designs.

[Committer's note: fixed ego description and made them work when
held by monsters.]

--------------------------------------------------------------------------------
2b25ec2a56 | hellmonk | 2025-08-03 15:22:41 -0230

Gloves of Parrying
The anti-acrobat, they provide SH bonus if the last action was a melee attack.
This bonus is halved if your offhand is occupied by a non-weapon item.

(People keep asking for two handers to have innate SH, which seems like bad
design, but there may be space for a limited availability ego in that idea).

--------------------------------------------------------------------------------
e1b8626ddd | hellmonk | 2025-08-03 15:22:41 -0230

Reweight armour egos
Also add preservation to allowed shield egos.

[Committer's note: Further adjusted weights slightly.]

--------------------------------------------------------------------------------
22cfe5e50c | hellmonk | 2025-08-03 15:22:41 -0230

Armour of Resonance
Third of the heavy spell armours. Adds big wiz for forgecraft spells and
scales melee damage with forgecraft skill.

--------------------------------------------------------------------------------
9ea2bd097f | hellmonk | 2025-08-03 15:22:41 -0230

Armour of Death
Second heavy armour casting ego. Provides necromancy enhancer and a huge
necro enhancer, but makes non-necro spells cost HP. Hated by good gods.

--------------------------------------------------------------------------------
8c8a2d8949 | hellmonk | 2025-08-03 15:22:41 -0230

Armour of Command
First of three planned heavy armour casting egos. Armour of command provides
a very large success rate and power boost for summoning spells that scales with
armour skill. Appears on scale, chain, and plate armours.

--------------------------------------------------------------------------------
a4ab00da4f | hellmonk | 2025-08-03 15:22:41 -0230

Archery ego for heavy body armour
This has no relation to the old glove ego that was replaced with hurling.
Appearing on scale, chain, and plate, this ego halves encumbrance for the
purposes of ranged combat penalty. You can play a heavy armour archer once
again, but at a cost (having to find and enchant the relevant ego). Chance
will be adjusted in a later commit bc several other body egos are coming.

--------------------------------------------------------------------------------
0bc8f640c0 | hellmonk | 2025-08-03 15:22:41 -0230

Amulets of Alchemy
Alchemy enhancer and -1 cost to alchemy spells

--------------------------------------------------------------------------------
8580311ebf | hellmonk | 2025-08-03 15:22:41 -0230

Amulets of Wildshape
Gives +5 Shapeshifting skill when worn.

--------------------------------------------------------------------------------
dcdeeda760 | hellmonk | 2025-08-03 15:22:41 -0230

Remove rings of fire and ice
Since these egos are now available elsewhere.

--------------------------------------------------------------------------------
80f8d36c77 | hellmonk | 2025-08-03 15:22:41 -0230

Add enhancer egos for Air, Earth, Fire, Ice on aux armour
Helmets get Ice, gloves get Fire, cloaks get Air, and
boots get Earth.

--------------------------------------------------------------------------------
639ff0ef84 | hellmonk | 2025-08-03 15:22:41 -0230

New hat slot ego: Sniping
Boosts ranged damage by 50% against incapacitated targets.
No idea if this is any good or not but seems fun?

--------------------------------------------------------------------------------
11c46318db | hellmonk | 2025-08-03 15:22:41 -0230

Add light ego to helmets
Replaces see invis, which remains on hats. Orb ego will be changed later,
probably, but needs a solution for monks.

--------------------------------------------------------------------------------
645d3bf36b | DracoOmega | 2025-08-03 15:22:23 -0230

Fix Electrospasm treating rElec0 as rElec+ (Rypofalem)

--------------------------------------------------------------------------------
899ac32913 | Implojin | 2025-08-02 21:27:55 -0500

Fix Platinum Paragon's displayed noise (acrobat)
Bit of a hack here: Platinum Paragon doesn't use the noise set in its
spell data. Instead, it relies on the default explosion noise for a
radius 1 bolt::explode when it fires its shockwave. Fixing this
properly would mean passing spell noise data into bolt::explode
(we have multiple other preexisting beam noise hacks there already)
but as I've not written any of this code I'm taking the easy way out
and setting the displayed noise to match its explosion noise (which
seems mildly less bad than adding another post-hoc explosion noise
hack to the pile).

If you're looking at this in the future and you're like "Why wasn't
this fixed properly?" I apologize for nothing. Good luck!

Fixes #4696

--------------------------------------------------------------------------------
f6a5eb91fd | Implojin | 2025-08-02 16:17:26 -0500

Update species descs in the manual
Following from 4f8d8800e0 and 03986a22e6.

--------------------------------------------------------------------------------
4f8d8800e0 | Implojin | 2025-08-02 16:08:11 -0500

Tweak Gr and Dj descriptions (regret-index)
To hopefully make it a little more obvious to newer players that
there are magic-casting species options beyond Deep Elf.

--------------------------------------------------------------------------------
03986a22e6 | Implojin | 2025-08-02 15:33:38 -0500

Bump gnolls to top-left at character creation
Gnolls offer a great advantage to newer players learning the game --
They don't have to learn about skilling while simultaneously learning
about monsters and items. This advantage is large enough that gnolls
are a common community recommendation, so let's try canonizing it.

This will probably spark off another community rehash of species
ordering, and it's trivial to change these if we want to.

Here I've bumped MD down a bit because Mi still have the advantage of
retaliation and more generically-applicable melee apts.
The order is now: Gn > Mi > Mf > Gr > MD.

--------------------------------------------------------------------------------
86861419c1 | Implojin | 2025-08-01 15:11:53 -0500

Don't set invis stab UI for firewood
Deeply silly to display a bunch of ?s and (can't see you)s for plants
while the player was invis.

--------------------------------------------------------------------------------
92e3e6f1b1 | Implojin | 2025-07-31 17:35:43 -0500

Add AtCj as a suggested combo
Iskenderun might have been adopted by an Armataur, for all we know.

--------------------------------------------------------------------------------
2135b4bea5 | Implojin | 2025-07-31 17:29:34 -0500

Don't give inhibited regen to Armataurs (mysticsailboat)
Apparently it's been possible for Armataurs to be hit with inhibited
regen, preventing regeneration when enemies were visible. Given that
Armataurs were rebalanced around having access to the core gimmick
of rollpage, this was *really* rough for any game hit with it, and
this should have been prevented from the beginning.

Sorry about that!

Here we do save compat in addition to making the muts exclusive,
to help out any affected games in-progress.

--------------------------------------------------------------------------------
80739182b4 | Implojin | 2025-07-30 13:11:30 -0500

Re-bump zlib
Accidentally changed in f537972d3b.

--------------------------------------------------------------------------------
3f39f5e5c1 | Medrano83 | 2025-07-29 21:53:07 +0200

Fix freetype and libpng not building on macOS
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>

--------------------------------------------------------------------------------
33c2588a93 | patrick | 2025-07-28 11:59:39 -0400

Tweak Tiny Tomes
The Tiny Tomes bookshop sells spellbooks with only one spell
in them. With the advent of parchments, there's not really much
of a distinction between those and a spellbook with one spell,
except that the spellbook requires more keypresses to figure out
what the hell is in it.

Rather than completely cut the entire shop, since people seem to
like it, instead it now sells the second-tiniest spellbooks, with
two spells each.

Also, lower the weighting on two of my spellbook shops, since their
frequency was stepping on part of the purpose of parchments.

--------------------------------------------------------------------------------
204c02f503 | Medrano83 | 2025-07-28 10:40:39 +0200

Update to Android SDK 35
Starting August 31 2025, new apps and app updates must target Android
15 (API level 35) or higher to be submitted to Google Play.

There are two changes related to window insets in Android 15:
edge-to-edge is enforced by default, and there are also configuration
changes, such as the default configuration of system bars.

I'm also reworking the code to control the virtual keyboard
visibility because it's a mess.

--------------------------------------------------------------------------------
ec60261d0a | hellmonk | 2025-07-28 01:12:43 -0500

Let gods protect neutrals from bog (yrdzrfxndfvh)
Notably, you could kill TRJ with Jiyva using this method.
Closes #4289.

--------------------------------------------------------------------------------
f537972d3b | hellmonk | 2025-07-28 00:53:50 -0500

Improve a tempering message (projectNoob)
Don't claim that you can't see that place when you can see that place.
Closes #4626.

--------------------------------------------------------------------------------
202f19ae06 | Perry Fraser | 2025-07-28 00:18:18 -0500

fix: make '[X] to wear' text coloring gray (#4675)
The text for `easy_floor_use` in the case of floor items didn't have any
explicit color information set, causing the color of the nearby cyan
text to partially overlap. This fixes that by just explicitly setting it
as lightgray.
--------------------------------------------------------------------------------
a9e21796be | Implojin | 2025-07-27 12:20:41 -0500

Further tweak a devouring rift (regret-index)

--------------------------------------------------------------------------------
cfd1851050 | Implojin | 2025-07-27 12:10:38 -0500

Tweak a trove layout (particleface)
The level exit in the devouring rift was being placed in the
direction of the loot vault, contributing to some of the confusion
about which portal was the exit and which the transporter.

--------------------------------------------------------------------------------
69ce87f4c0 | Implojin | 2025-07-27 10:38:55 -0500

Remove some optional lua
Following 75a88694f0, trove exits prompt by default.

--------------------------------------------------------------------------------
75a88694f0 | Implojin | 2025-07-27 10:24:05 -0500

Add a confirm prompt to trove exits (dilly, particleface)
Players have had some unfortunate confusion about trove exits vs.
transporters, leading to players unintentionally exiting troves
early, and adding a prompt here is reasonable behavior.

It would probably also be nice to differentiate the trove exit portal
tile from the transporter tile a bit more?

--------------------------------------------------------------------------------
f09bc62600 | DracoOmega | 2025-07-26 10:55:38 -0230

Prevent casting Surprising Crocodile while a tree (Acrobat)

--------------------------------------------------------------------------------
ac1049ab15 | DracoOmega | 2025-07-26 10:17:21 -0230

Fix !f inscription not working for weapons on (a) (code2828)

--------------------------------------------------------------------------------
872aa19456 | DracoOmega | 2025-07-26 10:16:48 -0230

Remove an out-of-date part of talisman descriptions (mysticsailboat)
Technically they're still slow, but this is no different than other things
you put on, like amulets, that don't get a special note about this when
examined.

--------------------------------------------------------------------------------
2effaad7b1 | DracoOmega | 2025-07-26 10:15:52 -0230

Fix Sacrifice Words giving the wrong mutation
Whoops >.>

--------------------------------------------------------------------------------
e9fc4eb682 | DracoOmega | 2025-07-26 00:44:17 -0230

Fix Frozen Ramparts incorrectly persisting on the level border (tswn)
Apparently distance_iterator skips 'out of bounds' tiles (which the level
border counts as), meaning that while the level border could get affected
by ramparts, FPROP_ICY would never get cleared for it, causing it to
reappear there whenever the player cast ramparts again later on, even from
a great distance.

I am frankly amazed this bug went so long without being discovered, since
it seems that it may have always existed!

--------------------------------------------------------------------------------
2092a5b95c | DracoOmega | 2025-07-26 00:13:39 -0230

Fix a typo (mysticsailboat)

--------------------------------------------------------------------------------
fbc83c92bf | DracoOmega | 2025-07-25 20:35:25 -0230

Show diminished spells icon in webtiles

--------------------------------------------------------------------------------
8340f1be1c | DracoOmega | 2025-07-25 20:35:20 -0230

Sort talismans adjacent to other gear in the full inventory menu
So that letters will work for examining gear by default first, instead of
consumables (as it works in the other menu mode).

--------------------------------------------------------------------------------
f1290f79c6 | DracoOmega | 2025-07-25 20:35:14 -0230

Fix consumable_shortcut option not properly resetting when asked

--------------------------------------------------------------------------------
932838a434 | DracoOmega | 2025-07-25 20:35:09 -0230

Fix opening drop menu onto an empty page (dilly)
If the player had no gear, but some other items, the drop menu would still
default to an empty list of gear. Worse, because the menu had no entries,
all keypresses would automatically close it instead of allowing you to
switch to other pages.

--------------------------------------------------------------------------------
25a487ff23 | DracoOmega | 2025-07-25 20:35:04 -0230

Fix further issues with baubles getting inappropriate letters (dilly)

--------------------------------------------------------------------------------
525ab0ce3c | Implojin | 2025-07-25 17:15:09 -0500

Fix a typo

--------------------------------------------------------------------------------
b3cc5aa0c1 | Medrano83 | 2025-07-25 10:28:52 +0200

Fix zlib not building on macOS
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>

--------------------------------------------------------------------------------
fe01774196 | regret-index | 2025-07-24 23:44:43 -0230

Fix a trove mutation check (Oneirical)

--------------------------------------------------------------------------------
a178a525af | regret-index | 2025-07-24 17:49:06 -0230

Further adjust Kiku's wrath (Oneirical)
When b6bfbb2 reduced Kikubaaqudgha's draining wrath effect (from a range
between ~23.3% to 40% max hp to a new range of ~16.6% to 30% max hp) and
removed the ability to resist it via rN simultaneously (so an rN+++
character couldn't ignore a large part of the wrath), it made the wrath
still capable of dragging former worshippers down to single-digit percents
of their max HP (through the randomness of when the wrath actually
triggers), but without very much potential recourse to handle such.
Gifting god wrath should be dangerous, but even Okawaru wrath summons have
more potential responses than this, so I'm further adjusting the numbers
and adding another angle.

The new Kiku zero-tension wrath effect is mildly reduced at the top end,
with a range of ~16.6% to ~26.6% max HP, and more importantly will not
apply at all if the player is already drained for 50% or more of their max
HP. In exchange, Kiku wrath now also directly inflicts 35% to 50% Doom
regardless of whether or not draining occurred, as is somewhat linked to
the undead between draugr attacks and mummy death curses. Banes are still
reasonably rare to encounter currently (without entering optional /
extended branches), are evidently currently reasonably survivable, and
add to the strategic-damage emphasis prior; as such, it should be safe to
emphasize these over the relatively conventional draining angle.

--------------------------------------------------------------------------------
2e3327b29e | gammafunk | 2025-07-22 17:01:50 -0500

Fix a typo in option defaults

--------------------------------------------------------------------------------
7a1bca78f6 | WizardIke | 2025-07-22 11:36:02 -0500

Fix tele trap + stash tracker interaction (#4613)
When moving into a teleport trap, If you revealed an item just before
the trap was set off, the item would be missing from the stash tracker
and its description when you examined the square that is was in would
say it was the floor. This was because the map knowledge (which can be
used to quickly lookup the top item the player remembers in any square)
and the stash tracker (which stores all rememberd items) were getting
updated at different times and were becoming out of sync.
--------------------------------------------------------------------------------
4655a737c7 | DracoOmega | 2025-07-22 11:31:43 -0230

Improve message for failing a reaching attack (Midn8)

--------------------------------------------------------------------------------
4fc8f02bfa | DracoOmega | 2025-07-22 10:50:43 -0230

Give a more helpful message when the player is trapped behind allies
The situation where a player cannot swap with their allies is a rare one,
but often confusing when it happens (usually due to a pileup of zombies
that cannot cross deep water and a player who can). Try to give a more
specific message, along with a helpful suggestion.

(While it ordinarily would not be ideal to give the player advice instead
of solving a problem directly, I don't think it would be appropriate for
swapping to behave differently in this specific scenario than all others
- eg: by blinking the monster away or displacing the entire crowd
backwards - especially when it's easy to miss that one has gotten into
this situation in the first place.)

--------------------------------------------------------------------------------
dbd2f4b8c0 | DracoOmega | 2025-07-22 10:50:43 -0230

Improve wording of Bane artprop slightly (Flugkiller)

--------------------------------------------------------------------------------
f9775fd51f | DracoOmega | 2025-07-22 10:50:43 -0230

Prefer not to remove a Bane item when gear is forced off
In the same way that ^Drain and ^Contam were already handled.

--------------------------------------------------------------------------------
e90cadbcb8 | DracoOmega | 2025-07-22 10:50:43 -0230

Change 'i' menu hotkey behavior yet again (Acrobat)
Instead of 'first match below the cursor' do 'first match within the
current sub-section in which the cursor is located'. (ie: if the player is
hovering a potion, (c) will first select a potion on (c), if one exists,
regardless of whether the cursor is below it.

I apologize for how unstable the interface has been these past few days,
but I hope we're narrowing in on a stable final version of everything now.

--------------------------------------------------------------------------------
5d75d46d45 | DracoOmega | 2025-07-22 10:50:43 -0230

Allow ',' to work on all pages of the drop menu at once (particleface)
If the player wants to drop all useless items, they can do so without
needing to cycle through pages at all.

(The implementation is a little hacky - as perhaps this all is - but
hopefully still clear and functional enough.)

--------------------------------------------------------------------------------
e02c2b2bd4 | DracoOmega | 2025-07-22 10:50:43 -0230

Allow monster_unusual_items to hilight dangerous brands in some scenarios
Holy wrath weapons are wildly more dangerous than other brands against
those they work on, and remain dangerous even into lategame. But they are
also harmless to most characters, making including them in
monster_unusual_items awkward. Some players have resorted to custom lua to
add/remove holy wrath from that list depending on what they're playing, but
it feels like this should be supported by default, so I have made the
following simple addition to the option:

"vulnerable:" followed by the name of a brand can now be used to mark a
monster as unusual only while non-immune to this brand. Additionally, it
can optionally be used to specify an XL above which to stop marking the
monster. For instance, "vulnerable:holy_wrath" will hilight monsters with
holy wrath weapons, only while the player is vulnerable to them.
"vulnerable:venom:5" will hilight monsters with venom weapons while the
player is non-immune to them and XL 5 or below.

While unnoticed venom weapons are a common souce of earlygame deaths, the
threshold at which they stop mattering is subjective enough that I have not
set this by default, but "vulnerable:holy_wrath" now *is* default, since
they are always very dangerous (moreso than most default-marked items, in
fact!)

--------------------------------------------------------------------------------
71121d7308 | DracoOmega | 2025-07-22 10:50:43 -0230

New command: CMD_EXPLORE_NO_REST
Causes the player to autoexplore *without* resting for their HP/MP/status
to heal, even if those options are normally set to true. This is useful
in multiple situations where the player is just a little injured, but wants
to capitalize on temporary statuses like Animate Dead / Death Channel or
temporary god allies, rather than rest up and let those expire.

This sort of thing happens somewhat commonly to certain characters and
typically means having to manually explore for a while (even if you don't
otherwise care where you go), so I think this might be helpful.

...it's not currently bound to anything since I'm genuinely unsure what
reasonable default keybind is still available (I'm open to suggestions!)
Though perhaps it's somewhat risky to end up anywhere it could be hit by
accident since it is a button that bypasses normal 'safeties'?

--------------------------------------------------------------------------------
9293a925f6 | DracoOmega | 2025-07-22 10:50:43 -0230

Change spelling for consistency
All other player-facing places apparently use 'evocable items' even if the
codebase itself tends to prefer 'evokable'

--------------------------------------------------------------------------------
561764f35a | Implojin | 2025-07-21 22:39:28 -0500

qvfnyybj nabgure ehqr vgrz anzr
Sbyybjvat sebz n0o03r459q.

--------------------------------------------------------------------------------
da159a28c5 | hellmonk | 2025-07-21 21:51:32 -0500

Allow default targeting harmless friends
Don't check that the monster is threatening when deciding whether or not to
target them with ally-targeting spells, since those spells can be assumed to be
beneficial. As far as I can tell, this only affects Percussive Tempering at
the moment.

Closes #4434.
Fixes #4343.

--------------------------------------------------------------------------------
d36b845a40 | hellmonk | 2025-07-21 21:40:33 -0500

Fix ally cloud death attribution (RypoFalem)
Using a slightly different attribution message.
Closes #4671.

--------------------------------------------------------------------------------
525eb42237 | WizardIke | 2025-07-21 21:03:50 -0500

Fix a crash when examining a monster with unknown wand (#4499)
There are various bugs that can result in a monster being in view with
an unidentified wand and it would be better not to crash when examining
them. For example, monsters opening doors or peeking down a stairscase
in descent mode etc can result in you seeing monsters with unidentified
wands.
--------------------------------------------------------------------------------
4ac789b628 | David Lawrence Ramsey | 2025-07-21 19:03:11 -0500

Fix typo (Flugkiller).
Closes #4672.

--------------------------------------------------------------------------------
17903823d9 | regret-index | 2025-07-21 19:42:47 -0230

Quick fix-ups vault review (+ #4572, #4574, #4649)
A fistful of minor adjustments, like fixing up some hidden or missing
monsters, tweaking the flavour displays of various vaults, and moving a
vault to the right file after its depths were changed. Alongside this,
I've also put the midnight gem back in spin_cycle after eee5569 broke
it (which fixes #4649), added a little bit of connectors to
due_jungle_book after 57f10a3 introduced a teleport closet (which fixes
#4574, and fixed up bad connector placements in swamp_pool_[3|4|5]
as eadf994 mishandled (which fixes #4572).

--------------------------------------------------------------------------------
f1afc118e7 | regret-index | 2025-07-21 19:40:04 -0230

Juggernaut simulacrum tile (LemurRobot)
Adjusted a little bit in colour and details from the submission. Now we
just need a spectral juggernaut tile to finish off the full set.

--------------------------------------------------------------------------------
c60012f9c2 | regret-index | 2025-07-21 19:40:04 -0230

Adjust various tiles old and new
 * The spell icon for Gloom was missed in 589dcd5, which this adds in
   properly. As before, it is composited from Denzi's old Abjuration icon
   plus ontoclasm's previous Dazzling Flash tile.

 * I've got some interest in making a new cyclops monster later this
   version, which inevitably ends up highlighting how CanOfWorms's
   Polyphemus tile added in de3053d isn't very easy to distinguish from
   the base cyclops itself. To try and help this state for the future,
   I've recoloured his cape and bracelets to hopefully stand out more
   against the default terrain colours of Shoals.

 * An accidental older draft of the dragon draugr tile added in 98bede3
   and missed for being misspelt has been removed from the repository,
   while the old arenasprint orbs have been moved to rltiles/UNUSED after
   being removed in 9245ba7.

--------------------------------------------------------------------------------
c8c058ed60 | DracoOmega | 2025-07-21 18:23:26 -0230

Fix show_paged_inventory option
It was still showing the merged inventory immediately after opening.

--------------------------------------------------------------------------------
e980eeb3ff | DracoOmega | 2025-07-21 18:22:35 -0230

Allow using tab/shift+tab to switch between inventory pages (hollowman)

--------------------------------------------------------------------------------
6b72936f9e | DracoOmega | 2025-07-21 16:58:06 -0230

Don't force_more on allies getting doomed (for real this time) (Oneirical)

--------------------------------------------------------------------------------
9809850fe8 | DracoOmega | 2025-07-21 16:58:06 -0230

Slightly change item hotkey behavior in 'i'nventory menu
Pressing a letter now jumps to the first item *below* the cursor (wrapping
around, if necessary) rather than 'nearest'.

This interacts better with using category hotkeys, like ?, to jump between
categories, since the item you want will always be below that point, but
may not be nearest that point.

(And it turns out, the comment already claimed it did this, from when it
used to do this during development.)

--------------------------------------------------------------------------------
82b35fe456 | DracoOmega | 2025-07-21 16:58:06 -0230

New option: show_paged_inventory
If true, uses pages for the 'i' menu in the same way that the 'd'rop menu
does by default.

Defaults to false.

--------------------------------------------------------------------------------
32cc9f1e22 | DracoOmega | 2025-07-21 16:58:06 -0230

Fix consumable_shortcut and key mapping not working for baubles (Oneirical)

--------------------------------------------------------------------------------
ac8e67afc9 | DracoOmega | 2025-07-21 16:58:06 -0230

Update drop menu help text to mention page behavior

--------------------------------------------------------------------------------
32dc36160e | DracoOmega | 2025-07-21 16:58:06 -0230

Remove disable-autopickup toggle from 'd'rop menu (Ge0FF)
And automatically disable autopickup of dropped jewellery types (since that
will almost always be the desired behavior since the inventory change).

Technically there were still a few niche cases where this toggle could be
useful, but it was argued that they weren't worth keeping this feature
around for and I'm inclined to agree.

--------------------------------------------------------------------------------
265757be89 | DracoOmega | 2025-07-21 15:58:20 -0230

Improve jewellery autopickup exceptions
Rather than doing 'skip picking up non-stacking rings/amulets you already
have a copy of' via lua, create a new function that can answer the question
of whether a piece of jewellery is strictly redundant with a little more
nuance (as well as being easier to remember to maintain, since it doesn't
rely on string matching).

This properly accounts for an arbitrary number of current ring/amulet
slots and how many copies of a given jewellery type usefully stack (ie:
if you're wearing Justicar's Regalia while holding one of each amulet type,
autopickup with be off for =Faith but not =Regeneration)

It also stops picking up rings of a stacking type if you already have
enough to fill all slots (ie: stopping at 2 for most characters).

It is not *strictly* correct in all cases, but those should be niche. (For
instance, octopodes will stop picking up rings of fire protection at 3,
even though they might have rF- from some source. But in those cases, I
think we can ask the player to manually grab more if they really want.)

--------------------------------------------------------------------------------
829145972e | DracoOmega | 2025-07-21 12:13:56 -0230

Remove a stray useless statement

--------------------------------------------------------------------------------
e9ddf008a9 | DracoOmega | 2025-07-21 12:13:17 -0230

Fix options_guide description of consumable_slot (Ereinion)
^= was putting user-defined shortcuts *before* the default ones, causing
them to be overriden and have no apparently effect.

+= should be used instead.

--------------------------------------------------------------------------------
345f232843 | DracoOmega | 2025-07-20 19:18:06 -0230

Fix consumable_shortcut not working properly for evokers (PaperRat)
And potentially overwriting wand mappings in rare cases, even!

--------------------------------------------------------------------------------
e651354df7 | DracoOmega | 2025-07-20 19:07:16 -0230

Fix outdated description for Sac Drink/Words (Oneirical)

--------------------------------------------------------------------------------
121333a485 | DracoOmega | 2025-07-20 19:07:16 -0230

Fix broken colour tag on % screen while ostracised (Oneirical)

--------------------------------------------------------------------------------
be495c2c6e | DracoOmega | 2025-07-20 19:06:26 -0230

Don't prevent dropping unequippable gear (dilly)

--------------------------------------------------------------------------------
725f2bf89b | regret-index | 2025-07-19 20:20:50 -0230

Fix Ozocubu's trove failing to place (#4118)
RypoFalem is correct that the shield egos shouldn't specify two weights
for the same item, which entirely fails to place. To try and get some
of the original intent of making the shields rarer, most of the other
other items in its slot have been increased in total weight. Fixes #4118.

--------------------------------------------------------------------------------
1d9b2a2d9d | DracoOmega | 2025-07-19 09:29:11 -0230

Don't prevent page up/down from working normally in drop menu.
Yes, this makes < and > no longer swap pages (as had been requested), but
I think interfering with pgup/pgdown is a worse sin.

--------------------------------------------------------------------------------
8052acedee | DracoOmega | 2025-07-19 09:29:11 -0230

Fix a rare Nobody / shadow mimic crash (DewdropsOTG)
If you brought Nobody to 0 HP, triggered Pyrric Recollection, rolled for
a Dith shadow melee followup, and Nobody landed somewhere still in melee
range of your shadow, the attack would crash (since Nobody still looked
'dead')

Rather than check for this in shadow mimic specifically, I think it may be
better to change the behavior of this assert (since there are several other
things that can trigger it, and probably will be more in future).

Now, attempting to attack a mid-revival monster just does nothing (but
still takes time). It's perfectly valid for those to be on the grid, so
this isn't really a 'bug', per se, and doesn't need to crash.

This fixes #4668

--------------------------------------------------------------------------------
302e0d9ae3 | DracoOmega | 2025-07-19 09:29:11 -0230

Fix drop menu not sorting properly (Ogregutan)
Apparently it was only using the default sort conditions at all because its
type wasn't yet set to 'drop menu' until after items were added and sorted.
This stopped being the case in 1ca2ae5. (But this also means that the
sort_menu option for drop menus likely never worked properly before now,
either.)

--------------------------------------------------------------------------------
5969bbf2d0 | DracoOmega | 2025-07-19 09:29:11 -0230

Fix drop menu defaulting to wrong page sometimes
If the player had zero items of a given inventory category (ie: gear,
potions, scrolls, evocables), cycling through each page at start would
land on something other then gear (since cycling skips empty pages.)

Instead, view each page manually, to make sure we end up at the same
default every time.

--------------------------------------------------------------------------------
820aee5b56 | DracoOmega | 2025-07-19 09:28:55 -0230

Fix misleading warning prompts when changing gear letters (DewdropsOTG)
Adjusting the letter of 'dangerous' gear in your inventory would prompt you
as if you were about to equip or unequip them.

--------------------------------------------------------------------------------
bd44c153c2 | DracoOmega | 2025-07-18 15:41:38 -0230

Allow < > to additionally switch pages in drop menu (dilly)
And also refactor slightly.

--------------------------------------------------------------------------------
ddc175b71d | DracoOmega | 2025-07-18 15:41:00 -0230

Return 'i' menu to previous behavior
Perhaps at some point of shuffling deck chairs, we will arrive at a
better future.

--------------------------------------------------------------------------------
7c270478f4 | DracoOmega | 2025-07-18 15:33:41 -0230

Fix showing incorrect inventory pages in a number of menus (dilly)

--------------------------------------------------------------------------------
b117d8a9e7 | DracoOmega | 2025-07-18 12:50:16 -0230

More thoroughly prevent some crashes with inventory menus
89b82f3 was apparently insufficient (even if 0 was the most common case by
far). I'm not 100% sure where non-zero non-letter slots are coming from,
so I don't entirely like papering over it like this, but it's possible
they're harmless.

(Or at least, we can wait and see if any other problem happens besides this
sort issue.)

--------------------------------------------------------------------------------
13e22a4e1b | DracoOmega | 2025-07-18 12:44:23 -0230

Don't indefinitely wait to heal off poison in nonliving forms (Ogregutan)
Transforming into something with infinite rPois while already poisoned
merely suspends the poison, and it cannot be rested off in those forms.
So don't waste time trying.

--------------------------------------------------------------------------------
8fab406d75 | DracoOmega | 2025-07-18 12:42:13 -0230

Don't automap a consumable to an occupied letter (Moanerette)
Autoassignments set by consumable_shortcut neglected to consider that a
player could have manually remapped an item to a reserved letter, and would
give that out to the new item anyway.

Now, it should fall back on another slot in this case, as if no default was
set.

--------------------------------------------------------------------------------
1ca2ae5227 | DracoOmega | 2025-07-18 12:39:51 -0230

Change how the drop/'i' menus work (various)
In response to repeated struggles players expressed with the current setup
(which can map multiple items to the same letter on 'd'/'i'), this changes
these menus over to a multi-paged model.

Each of the 4 inventory sub-types (gear, potions, scrolls, evocables) now
display on a seperate page, which is accessed by left/right arrows. This
means that each letter uniquely maps to a single item on each of these
pages. Selections on previous pages are remembered (so the player can still
multi-drop items of multiple categories).

Some downsides is that it's no longer possible to see your complete
inventory in a single list, and using ',' to drop all useless items no
longer works (you'd need to cycle through each of the 4 pages manually to
drop useless items of each type). But after discussing this with several
players, I think this is the lesser of two evils; hopefully this will feel
more intuitive for players to interact with.

The implementation is a little rough, but a more elegant approach would
seem to require considerably more menu code rewriting, and hopefully this
can suffice.

--------------------------------------------------------------------------------
a83e6f9d55 | DracoOmega | 2025-07-18 08:47:19 -0230

Fix =g not letting you remap throwables (Undo)

--------------------------------------------------------------------------------
5bb89448b4 | DracoOmega | 2025-07-18 07:41:05 -0230

Fix draining Trove cost being 'be buggy' on overview screen (Ogregutan)

--------------------------------------------------------------------------------
40270de24b | David Lawrence Ramsey | 2025-07-18 01:12:23 -0500

Add a tile for the accursed mutation.
Based on a palette-tweaked and edited version of
UNUSED/gui/yred_dark_bargain.png.

--------------------------------------------------------------------------------
7be9a2d591 | David Lawrence Ramsey | 2025-07-18 01:11:27 -0500

Rewrite desc for the "no potions" mutation.
It's now consistently "You cannot drink." for both mummy and death-form
players, which fits the "You cannot drink potions in your current state!"
warning message elsewhere.

--------------------------------------------------------------------------------
81d314105f | DracoOmega | 2025-07-17 23:45:12 -0230

Display the (P)ut on action when examining a talisman (Planckenstein)

--------------------------------------------------------------------------------
89b82f3d1c | DracoOmega | 2025-07-17 23:45:12 -0230

Fix a crash with displaying floor items in some item menus (Kush)
One of the sort comparators only worked properly for items in the player's
inventory, and if there were enough valid items on the ground (which had
never been in the player's inventory before) to need sorting, the game
would crash tying to populate the menu.

--------------------------------------------------------------------------------
2adacdb53a | David Lawrence Ramsey | 2025-07-17 21:11:29 -0500

Stop adding "pair of" to gloves in Xom msgs.
Since gloves' names all start with +0 and the like now, which produces
incorrect messaging.

--------------------------------------------------------------------------------
b98de362c2 | David Lawrence Ramsey | 2025-07-17 21:10:00 -0500

Choose more random slot items for Xom msgs.
For cloaks, helmets, gloves, and boots, since multiple sets of them can
be worn now.

--------------------------------------------------------------------------------
1b205f4a7a | David Lawrence Ramsey | 2025-07-17 20:40:50 -0500

Rearrange Xom message item checks.
Check the offhand slot right after the weapon slot.

--------------------------------------------------------------------------------
d9fd00228f | David Lawrence Ramsey | 2025-07-17 20:40:49 -0500

Genericise a Xom msg random item check.
Instead of checking only the ring slot, have it take a slot.

--------------------------------------------------------------------------------
6208bf039e | David Lawrence Ramsey | 2025-07-17 20:40:49 -0500

Fix Xom msg refs to poltergeists' having heads.
Use "form" instead of "head" for them. Adding an entire head_name()
function for only the one species seems like overkill, so do it
manually for now.

Also, add another amulet message referencing the head.

--------------------------------------------------------------------------------
2f817d26c1 | David Lawrence Ramsey | 2025-07-17 19:18:52 -0500

Add Xom messages for the amulet slot.

--------------------------------------------------------------------------------
84388fc241 | David Lawrence Ramsey | 2025-07-17 17:35:32 -0500

Fix typo.

--------------------------------------------------------------------------------
2c30cb724a | DracoOmega | 2025-07-17 19:15:27 -0230

Don't forbid Coglins from putting on talismans

--------------------------------------------------------------------------------
1458e82541 | DracoOmega | 2025-07-17 19:15:04 -0230

Don't auto-remove a jewellery item while wearing a talisman (Planckenstein)
If you had a single ring or amulet on at the same time as a talisman, the
game would automatically remove it when you pressed (R) instead of asking
which item you wanted to remove.

--------------------------------------------------------------------------------
e9671bf27a | DracoOmega | 2025-07-17 19:13:56 -0230

Fix enter being broken in the (F)ire menu (Planckenstein)

--------------------------------------------------------------------------------
950e44d591 | DracoOmega | 2025-07-17 19:13:37 -0230

Fix default hotkeys for !magic/!might both being m (Planckenstein)

--------------------------------------------------------------------------------
7cc3d47e4f | DracoOmega | 2025-07-17 19:12:07 -0230

Fix missing kauxes for a number of beam attacks (ebonnov)
I'm not sure the full list, but a bunch of spells that used beams for
damage but didn't fire normal projectiles were missing an aux_source,
resulting in non-specific death messages. (Regular projectile beams would
fill in their aux_source from their name member automatically, but many
other uses of them would not.)

There's a small chance something out there relied on this behavior, but
hopefully not.

--------------------------------------------------------------------------------
758b754086 | DracoOmega | 2025-07-17 19:08:35 -0230

Fix broken kauxes for LoS attack spells (gammafunk)
Apparently broken since 733a6ea, causing Ozocubu's Refrigeration to produce
death messages suggesting it was caused by the monster hitting you in melee
instead (which is rather more noticable now that it is cast by Orbs of
Winter, which have no attack...)

This also simultaneously gives a unique kaux for dying to the Singing
Sword's sonic wave, which I'm not sure it had before. Who will be the first
to die to it, I wonder? (Will anyone?)

--------------------------------------------------------------------------------
3f22ea3c6a | DracoOmega | 2025-07-17 16:47:48 -0230

Don't remap consumables with no default binding upon identifying (coraxio)
They would automatically move to 'the first available letter' upon being
identified, instead of just staying put.

(This only applies to !moonshine using default settings, but players can
always edit/remove those defaults.)

--------------------------------------------------------------------------------
b23e77fdfe | DracoOmega | 2025-07-17 16:45:33 -0230

Don't announce consumable remapping that happens at game start

--------------------------------------------------------------------------------
83b025070f | DracoOmega | 2025-07-17 16:45:12 -0230

Fix new characters never generating with more than one consumable type
(Whichever was defined last was what they would end up with.)

--------------------------------------------------------------------------------
2aa8828f32 | DracoOmega | 2025-07-17 15:14:23 -0230

Change webtiles action panel sort order
Now also sorts each sub-category by 'usefulness' to more closely mimic the
default ordering in the inventory menus. (Also, I feel like 'letter' is
less useful with the new default consumable_slot behavior.) Hopefully this
doesn't end up being too controversial.

--------------------------------------------------------------------------------
6a5dc71c24 | DracoOmega | 2025-07-17 15:14:23 -0230

Let command repeat work in local tiles while having an unaffordable ability
This was a bit of work to track down, but essentially: in order to grey
out unusable abilities on the local tiles ability bar, each time the screen
is redrawn, check_ability_possible() is called. And enough_mp() and
enough_hp() are both called from that function with abort_macros = true,
which means that any time the usability of an ability is queried and you
don't have enough HP or MP for it, macros and key-repeat are automatically
cancelled.

While that makes some sense when it's called during you actually trying to
*use* the ability (and failing), it doesn't make sense when merely checking
whether or not you *could*. And as the code for handling command repeat is
piped through the normal input loop, this means that it redraws the screen
at the start of each new command, which redraws the ability icons, which
checks their usability, which then aborts the in-progress command repeat
before it can even do anything. Now, it should not.

I don't *think* making silent check_ability_possible() calls never
interrupt macros on its own should cause any further problems - checking
spell usability already didn't do so - and actually trying to use the
ability and failing will still do so.

--------------------------------------------------------------------------------
ff86fb1ae4 | DracoOmega | 2025-07-17 15:14:23 -0230

Automatically disable autopickup of dropped consumables
Since there's no longer any reason to drop them unless you don't want to
see them in your inventory, do this automatically.

--------------------------------------------------------------------------------
2ee0592ccc | DracoOmega | 2025-07-17 15:14:23 -0230

Make the 'next page' button in the local webtiles inventory more obvious
It wasn't clear that clicking on it would do anything.

(Also make it so that the display updates immediately when you click on it
and not 'The next time you move the mouse after clicking on it')

--------------------------------------------------------------------------------
a240211e49 | DracoOmega | 2025-07-17 15:14:23 -0230

Add a couple additional rows to the local tiles item panel
Now that players are more likely to carry more items around at once.

--------------------------------------------------------------------------------
95e1f2edf6 | DracoOmega | 2025-07-17 15:14:23 -0230

Fix a minor text wrapping issue with the % screen

--------------------------------------------------------------------------------
8f0873f1e5 | DracoOmega | 2025-07-17 15:14:23 -0230

Make talismans something you (P)up on instead of evoke
Remaining on e(V)oke after the consumable inventory change would result in
both consumables and non-consumables being on the same use screen, which
could lead to key conflicts (and in general I feel is something that should
be avoided as much as possible).

So they are now something the player has to (P)ut on. This means they also
must be in the player's inventory at all times (but revised inventory
limits should make this a complete non-issue). Dropping a talisman
automatically leaves the form, as one might expect, and the Begin
Untransform ability has been removed.

Save compat will put a copy of the player's current talisman into their
inventory (which will sometimes duplicate it, but that is harmless; there's
nothing you can *do* with a second identical one.). In the incredibly
unlikely case someone has 52 pieces of equipment already in their
inventory, it will untransform them and drop the appropriate talisman at
their feet. But this would require them to have had nothing in their
inventory *but* equipment, which seems profoudly unlikely.

Your current talisman will also show up in % and dumps, which seems a nice
minor benefit.

I'm not touching Ash's Curse of Devices right now, pending planned Ash
curse changes that will make that unnecessary.

--------------------------------------------------------------------------------
39c613d832 | DracoOmega | 2025-07-17 15:14:23 -0230

Allow quick-scrolling between item categories with left/right arrows
While this works in general inventory menus, it was foremost intended for
the drop menu (where the 'jump to item category' shortcuts aren't really
functional for that purpose, since they will also select all items of that
category to be dropped).

--------------------------------------------------------------------------------
928708bbf4 | DracoOmega | 2025-07-17 15:14:23 -0230

Expand inventory to alleviate most remaining inventory pressures
Crawl's inventory limit wasn't very restrictive in a gameplay-affecting
sense (players can carry an enormous number of tactical tools at once, and
freely return to pick up strategic tools whenever they want), but just
small enough that butting up against it still happened potentially many
times a game, as autoexplore tries to grab items you don't especially care
about and the player is forced to stop and figure out which of multiple
items they'll never use is the one they'll never use *the most*. This
interrupts the flow of gameplay and is generally a minor nuisance without
much resulting gameplay value (as you can still carry *almost* everything
you'd ever want to).

However, Crawl's inventory system was very married to its 52 item limit in
multiple ways, not least of which being: that's how many letters there
are. Some previous proposals suggested expanding that in minor ways, but
this is an attempt to have the final word on inventory limits, by
splitting each consumable verb into its own category and essentially
allowing you to hold every single consumable in the game at once *on top*
of 52 pieces of equipment.

This means it is now possible to have multiple items on (a), so long as
each of those belongs to a different category: equipment (including
throwables), potions, scrolls, and wands/evokabes. Since each of these is
primarily used via separate commands, there is typically no risk of
ambiguity (eg: ra, qa, Va, Wa will all unambiguously grab the single
matching item). In fact, this very property allows for mapping specific
consumables to specific letters via option, consistently from game to game
(eg: qc can be made to always quaff curing), which I think may be a solid
QoL improvement once players get used to it.

For menus that show the entire inventory at once (eg: 'd'rop), pressing
letters will now select the *nearest* item matching that letter. However
there should be much less need to quickly drop things, so I hope this
won't be a large inconvenience (and well worth the gain in other areas).
And the game tries very, very hard to make sure no unidentified scroll
and potions ever end up on the same letter, so the ?id menu should also be
unambiguous.

On a backend level, this expands you.inv[] to 127 slots, reserving all
beyond [51] for consumables (in any order). While not strictly unlimited,
this is enough room to simultaneously store every consumable currently in
the game at once (including disjoint item sets) with room to spare. If, in
future, this becomes untrue, it should be simple to expand that number.
The first 52 slots retain their current behavior (ie: rearranging
themselves when items change letter), while slots beyond 52 do not require
their link and slot members to match (ie: they can change letter without
being moved in the array).

The item_slot option has been renamed gear_slot and functions only on
equipment. A simpler consumable_shortcut option replaces it for
consumables - mapping a single item to a single letter. This is enabled by
default, with a full set of default values for all potions, scrolls, and
wands. An important aspect of this option's behavior is that it will
*never* map unidentified items to any letter reserved for a specific item.
So one can ensure that, eg, blinking scrolls are always on rb and pressing
rb could never result in reading a different scroll under any circumstance
(beside the player manually putting it on b themselves). I think, once
players get used to it, that this will be a meaningful QoL improvement.

And overall, having to almost never care about inventory limits again,
should be good for everyone.

--------------------------------------------------------------------------------
d6fc47bd0f | DracoOmega | 2025-07-17 15:14:23 -0230

New sort_menus option: usefulness
This sorts consumables by their current usefulness in descending order of
Emergency, Good, Normal, Dangerous, Bad, Useless. It is enabled by default
for actions like quaff and read, in anticipation of upcoming consumable
inventory changes.

--------------------------------------------------------------------------------
70df15b1d4 | DracoOmega | 2025-07-17 15:14:23 -0230

Mark ?silence as a 'dangerous' item
It is likely even more double-edged than many scrolls the game aready marks
as such, especially by lategame.

--------------------------------------------------------------------------------
b50b00bb3c | DracoOmega | 2025-07-17 15:14:23 -0230

Make the 'charged' sort_menus option work for evokers
Empty wands haven't been a thing for several years, but evokers *are*
something that can be 'empty' in one's inventory, so let's use it to for
them instead.

--------------------------------------------------------------------------------
1673ddcb0a | David Lawrence Ramsey | 2025-07-15 02:36:09 -0500

Make Zonguldrok's reaping count as evil (#4655).
Since it's not a weapon, but armour that adds the reaping brand to
whatever attack you're using, manually trigger the evil god conduct for
it, just as we do with Damnation. But do this after all other brand
checks, since it effectively gives your weapon the reaping brand on top
of whatever brand it has.

NOTE: Regarding brands with manual conduct triggers, one-shotting a
monster with Damnation, Zonguldrok, or a chaos effect that doesn't
resolve to a brand that works on dead monsters will not trigger the
appropriate conduct when it should, but that's a separate issue, and
this change still brings us closer to the correct behaviour. Also,
there's no warning prompt about potential penance when wielding
Zonguldrok, because all the warning prompt code is written with
the assumption that only weapons can trigger conducts, not armour,
but that's also a separate issue.

--------------------------------------------------------------------------------
90afa8895f | DracoOmega | 2025-07-14 18:09:07 -0230

Fix monsters sometimes not waking from spell damage (Planckenstein)
Accidentally broken by 77f475f

--------------------------------------------------------------------------------
3f269bfe75 | hellmonk | 2025-07-13 17:37:48 -0500

Update credits.txt

--------------------------------------------------------------------------------
f73b091665 | DracoOmega | 2025-07-12 16:37:27 -0230

Don't generate buggy mundane unrands (BlackTorch)
The 'mundane' itemspec tag causes an item to lose its plusses and ego
*after* it goes through the normal generation process. But nothing
(apparently) stopped the item from generating as an artefact before having
its plusses/ego squashed. For randarts, this just resulted in a +0 randart
with the rest of its properties intact (even its ego, since randarts don't
store it in the same field as non-artefacts!). But unrands repurpose the
brand field as their unrand ID, meaning that having its 'ego' set to 0
turned the item into 'DUMMY UNRANDART 1' (which would eventually assert
since it doesn't have a colour defined...)

Now 'mundane' necessarily also forbids the itemspec from generating an
artefact, which should fix these problems.

--------------------------------------------------------------------------------
77f475f057 | DracoOmega | 2025-07-12 06:27:27 -0230

Blame the player for fewer actions by confused enemies (Acrobat)
The actions of enemies confused by the player are attributed to the player
in many cases so that the player will still get credit for damage/kills
done by monsters you confused. However, this had the negative result of
allies also mistakenly believing that actions of confused enemies were
being done directly by the player.

So, for instance, you could summon a tarantella, it could confuse a chaos
spawn in melee, and that confused chaos spawn could hit it back and apply
a debuff, which the tarantella would then blame you for and disappear
(you'd even get penance if you were worshipping a good god!)

This didn't apply harmfully in all cases, but chaos flavored attacks in
particular used beam code for debuffs internally, resulting in this issue.
It is possible some other manifestations of this were also fixed in the
process.

--------------------------------------------------------------------------------
1c8910b83b | David Lawrence Ramsey | 2025-07-11 14:50:20 -0500

Add Zonguldrok speech for yet more artefact hats.
Specifically, the hat of the Alchemist and the crown of vainglory.

--------------------------------------------------------------------------------
534c8d5034 | David Lawrence Ramsey | 2025-07-11 14:24:35 -0500

Add Zonguldrok speech for yet more artefact hats.
Specifically, the hood of the Assassin and the mask of the Dragon.

--------------------------------------------------------------------------------
1fa925810a | DracoOmega | 2025-07-11 16:11:39 -0230

Fix broken force_more for tesseracts activating. (Acrobat)
I forgot to update it when I rephrased the message they give.

--------------------------------------------------------------------------------
a680ef8428 | David Lawrence Ramsey | 2025-07-11 12:18:18 -0500

Add Zonguldrok speech for more artefact hats.
Specifically, the crown of Dyrovepreva and the hat of the Bear Spirit.

--------------------------------------------------------------------------------
77d58bd210 | DracoOmega | 2025-07-11 08:07:53 -0230

Fix Figment icon not rendering in webtiles

--------------------------------------------------------------------------------
b7c2e1d855 | DracoOmega | 2025-07-11 08:07:53 -0230

Fix piety troves reporting their cost as "be buggy" (Ogregutan)
(On the dungeon overview screen)

--------------------------------------------------------------------------------
7c6d325bc2 | DracoOmega | 2025-07-11 08:07:53 -0230

Fix a Yred reaping crash if Ostracised to 0 piety (Ogregutan)

--------------------------------------------------------------------------------
c6894e477c | DracoOmega | 2025-07-11 08:07:53 -0230

Fix a force_more on allies getting banes (Lici)
Turns out 'Doom befalls you' also matches 'Doom befalls your [something]'.

--------------------------------------------------------------------------------
b873afd9ec | DracoOmega | 2025-07-11 08:07:53 -0230

New option: always_show_doom_contam (Particleface)
If true, this displays the doom and contam meters in the upper-right of
the sidebar, regardless of whether the player currently has any doom or
contam.

--------------------------------------------------------------------------------
ff7e82441f | DracoOmega | 2025-07-11 08:07:53 -0230

Don't announce "You feel the reach of Zot diminish." for both tesseracts

--------------------------------------------------------------------------------
8903f4d545 | DracoOmega | 2025-07-11 08:07:53 -0230

Fix a crash with banishing a boundless tesseract (WizardIke)

--------------------------------------------------------------------------------
71506e332b | David Lawrence Ramsey | 2025-07-11 02:04:04 -0500

Adjust crawling flesh cage polymorphing/mutation.
Since they're made of mostly ugly thing fragments, they shouldn't
polymorph the usual way, and since they don't have different colours
the way ordinary ugly things do, disallow their polymorphing, and
make their mutation only cosmetic.

(Coincidentally, both of these are exactly how polymorphed/mutated
abominations are treated.)

--------------------------------------------------------------------------------
79144c6770 | DracoOmega | 2025-07-10 14:16:10 -0230

Add an actual message to the tesseract milestones

--------------------------------------------------------------------------------
bb92c9d704 | DracoOmega | 2025-07-10 10:00:55 -0230

Adjust offlevel tesseract turn cap (acrobat)
The comment mistakenly talk about turns when the value involved was in aut,
but that made me also realize the cap was too small (since it was aut.)

I have raised the cap to 1000 turns (ie: 10,000 aut). The comment should
now also be accurate.

--------------------------------------------------------------------------------
f72e9069bf | DracoOmega | 2025-07-10 10:00:55 -0230

Add milestones for tesseracts activating/dying (gammafunk)

--------------------------------------------------------------------------------
e64c27fa7c | Isaac Clancy | 2025-07-10 10:00:42 -0230

Fix a webtiles desync when a spectator joins
When a spectactor joins we send the full map data to the spectator that
just joined and record this map data is the last sent map data. However,
the player and any pre-exiting spectators might not have received this
map data yet and as we set it as the last sent map data it won't be sent
again until it changes. To fix this, make sure all the pre-existing
clients have the most up to date map data before sending the full map
data to the new spectator.

Fixes #1474
Fixes #1637
Fixes #2473
Fixes #2499
Fixes #2704
Fixes #3153
Fixes #3222
Fixes #3489
Fixes #3974
Fixes #4013
Fixes #4169
Fixes #4536

--------------------------------------------------------------------------------
8c5cb908cf | DracoOmega | 2025-07-10 07:49:24 -0230

Various adjustments to Boundless Tesseracts
In response to assorted feedback (and noticing at least one bug in the
original code), I have made the following adjustments:

-While a tesseract is active, there is now a status light indicating this
 effect (and describing it, for those who overlooked the monster itself).
 Its color grows more intense the faster the spawn timer has become.
-Tesseract spawn rate increases more slowly with time, but starts slightly
 faster. (This is a nerf, unless one was very fast.)
-Tesseract spawns now properly 'catch up' while off-level, so there is no
 incentive to rest there as opposed to on Zot:5 itself (but this effect is
 capped to 3000 turns, just in case someone wanders off to do extended in
 the meantime).
-Killing a tesseract immediately removes all unrewarding spawns created by
 the tesseract (to help with overcoming extremely monster pileups in the
 worst case, and maybe making things slightly more satisfying to players in
 general). XP-granting spawns are unaffected (since it is otherwise
 impossible for the player to differentiate them from regular monsters).
-Zot:5 comes with slightly fewer natural spawns (to compensate for some of
 the tesseract's output; if you kill them fairly quickly, there may even be
 fewer monsters in total than in 0.33!)
-Tesseracts are a little more durable, but have a larger XP pool to grant.
-The message for tesseracts activating is a little less emphatic about the
 need to rush (which seemed to be frequently misinterpreted by players).
-Tesseract spawns are now attributed to the tesseract itself, for death
 attribution.

--------------------------------------------------------------------------------
b1c27173d8 | DracoOmega | 2025-07-10 05:35:06 -0230

Don't resend the full Doom tooltip every single webtiles update

--------------------------------------------------------------------------------
309a5445d7 | DracoOmega | 2025-07-10 05:31:49 -0230

Don't crash if explore_auto_rest_status is given invalid text (Ogregutan)
Giving it text that couldn't be parsed into a valid duration was resulting
in it trying to rest to wear off NUM_DURATIONS (which is out of bounds and
caused an assert).

--------------------------------------------------------------------------------
17b53af623 | David Lawrence Ramsey | 2025-07-09 19:39:16 -0500

Rename: persistent contam. -> contam susceptible.

--------------------------------------------------------------------------------
2db4d66fed | David Lawrence Ramsey | 2025-07-09 16:13:55 -0500

Fix typo.

--------------------------------------------------------------------------------
baadf7e5a7 | David Lawrence Ramsey | 2025-07-09 14:25:33 -0500

New mutation: persistent contamination.
This mutation makes the player absorb twice as much mutagenic energy
from being contaminated than they would otherwise, just as they would if
they were wielding the old Maxwell's Etheric Cage unrand. (Having the
mutation and wielding the unrand do not stack.)

It has the same rarity as the persistent draining mutation. The tile is
currently a palette-tweaked version of the persistent draining mutation
tile.

--------------------------------------------------------------------------------
88f5475926 | DracoOmega | 2025-07-09 15:25:26 -0230

Fix the infinite autorest protection being overzealous (not_that_greg)
It wasn't checking that the player was stuck in place, merely that they had
been autoexploring for 500 turns without interruption. Which doesn't happen
*often*, but can sometimes.

--------------------------------------------------------------------------------
7acc8d57e8 | DracoOmega | 2025-07-09 13:46:46 -0230

Prevent explore_auto_rest_status from resting an infinite length of time
This shouldn't be possible with default (or sane) settings, but the option
does not exhaustively prevent the player from manually adding effects that
do not expire with time (generally positive ones). In which case,
autoexplore can wait so long for them to go away that the game will crash.

This is a bit of a clunky solution, but it prevents a crash-on-demand that
also shouldn't happen unless the player is trying to do something very
silly.

--------------------------------------------------------------------------------
118629b06a | DracoOmega | 2025-07-09 13:46:46 -0230

feat: option to make autoexplore wait while listed durations are active
Resolves #3210 from (laserbat)

Added new rc option
    - explore_auto_rest_status (LIST)
    	Checks list and converts to known durations based on
	short_text and name_text.

Added two new duration_flags that signify negative effects and
cooldowns that affect the explore_auto_rest_status_set option

[Committer's note: updated to account for statuses added/removed since this
was first written, squashed two options into one, fixed several bugs,
added handling of resting off badforms and magic contamination, allowed
subtracting statuses from large sets (instead of having to manually
specify dozens of effects just to remove a single negative one), removed
inclusion of several statuses that do not expire with time, cleaned up
unncessary flag changes for removed status effects and rewrote the
options_guide entry.

I also made the option default to all negative effects, cooldowns, and
magic contamination. I think this is the most sensible default for average
players and only a very few will care about taking a tiny amount more turns
on some unimportant things.

Note that the new D_NEGATIVE flag is used on a handful of effects that are
not time-based or for which this option does not meaningfully apply (eg:
Paralysis). But even if there is no present use of this, I think
categorizing negative effects has future design applications.]

# Conflicts:
#	crawl-ref/docs/options_guide.txt
#	crawl-ref/source/duration-data.h
#	crawl-ref/source/initfile.cc
#	crawl-ref/source/options.h
#	crawl-ref/source/status.cc

--------------------------------------------------------------------------------
d11ae09b5d | DracoOmega | 2025-07-09 13:37:07 -0230

Mark 'bad' forms as such in form-data
To be used in a follow-up commit to allow automatically resting them off
before autoexploring.

(It's a little ambiguous whether tree form is good or bad, but I decided
that it should count as such for this purpose.)

--------------------------------------------------------------------------------
22a848724c | DracoOmega | 2025-07-09 05:15:33 -0230

Remove a leftover debugging statement (Undo)

--------------------------------------------------------------------------------
740026549f | DracoOmega | 2025-07-08 15:11:58 -0230

Let vampire bloodprinces fly (Lightli)
This was possibly an oversight to begin with; they even have wings in their
tile!

--------------------------------------------------------------------------------
f559632a36 | DracoOmega | 2025-07-08 15:08:11 -0230

Fix sometimes knowing Zot orb monster at game start (hyperactiveChipmunk)
I continue to forget that one can't assume bools actually start false.

--------------------------------------------------------------------------------
92974b8de6 | RypoFalem | 2025-07-08 12:22:55 -0500

fix: equipment truncation with show_resist_percent (adinsx)
It just needed 3 fewer characters so it didn't overflow to the next
line.

--------------------------------------------------------------------------------
a00341b0ce | regret-index | 2025-07-08 12:59:21 -0230

Changelog updates for 0.34
Timed a little late for the big Doom and Troves and Zot updates, but still
relevant for helping people read about such nonetheless.

--------------------------------------------------------------------------------
c8829d1dcf | regret-index | 2025-07-08 12:32:27 -0230

Add a Sentinel's Mark icon, display it on players by default
While there is technically a force_more involved with alarm traps since
0644d94 and a unique flash over the player for the spell since 82142fb, it
is possible to miss both in the walls of animations, tiles, and text one
can get on a turn, and it's one of the most relevant debuffs one can
otherwise miss. With this new icon being enabled by default in the
tile_player_status_icons option, it will hopefully be yet more difficult
for players to miss it in a relatively non-obtrusive fashion.

--------------------------------------------------------------------------------
7335e6a58e | regret-index | 2025-07-08 12:32:26 -0230

Recent tile adjustments
 * To help with parsing their outlines, the bottom fringe of reaper robes
   has been brightened.

 * To help it be more obvious and more readily resemble other current vfx
   tiles, ostracism's bolt effect now has brighter highlights.

 * To help with parsing each of them as traps and not new decorations or
   item tiles, archmage's traps, tyrant's traps, and devourer's traps now
   all use the same old trap plate / pit graphic Denzi used for many traps
   and which still survives currently with pressure plate + net traps.
   It's still a bit of a weird rift to have such a style versus the
   monochromatic ground-sigil types of trap graphics, but I'd prefer to
   emphasize such shared language over raising confusion between traps
   types as currently exists between teleportation trap variations and
   dispersal traps.

--------------------------------------------------------------------------------
bb4d5816a9 | regret-index | 2025-07-08 12:32:26 -0230

Nudge up devourer's traps
In line with 70c6c67 trying to make rarer and less consistent sources of
corrosion be more effective so they're more noticeable when they do
happen, and with the introduction of a corrosion effect doing more than 4
at a time, I'm nudging up devourer's traps to match the Corrosive Bolt
changes: 75% chance of -6 AC and slaying, as opposed to ~66% for -4.
They're far less directly effective (or anecdotally noticed) than the
other traps of their quartet, but are also inherently themed towards a
very late placement; as such, they can take the buff.

--------------------------------------------------------------------------------
ad3b09032c | regret-index | 2025-07-08 12:32:26 -0230

Fix a rare temple entry removing its own orb statues (Darby)

--------------------------------------------------------------------------------
9a6fec6d82 | DracoOmega | 2025-07-08 08:55:54 -0230

Don't double-note entering a Trove (regret-index)

--------------------------------------------------------------------------------
0396ba8ddb | DracoOmega | 2025-07-08 08:55:37 -0230

Make notes in the log for gaining/losing banes
Not exactly queryable by the bots, but might still help me get a better
sense of how often (and for how long) players are encountering banes.

(Also: it's probably a sufficiently noteworthy event in general.)

--------------------------------------------------------------------------------
4f5a5d9d27 | DracoOmega | 2025-07-08 07:01:32 -0230

Fix knowledge of which orb type Zot gets being lost on reload (Dhd)
I'd actually forgotten to write marshalling code for it. Whoops!

--------------------------------------------------------------------------------
b9c99e84c2 | Jared Miller | 2025-07-07 22:30:35 -0500

Handle ?-key spell description from cast menu (#4586)
This change adds `[?] help` to the cast menu, similar to the
memorization menu.
--------------------------------------------------------------------------------
826fe50d78 | WizardIke | 2025-07-07 22:30:13 -0500

Fix resizing the console while in a menu on windows (#4506)
Responding to console resize events in menus was disabled in 9746042 as
the way we were handling them lead to generating another resize event
resulting in an infinite loop. However, this results in the menu
becoming fairly unreadable until you exit it and go back in. With a
slight adjustment we can use the normal resize handling code in menus as
well which doesn't have this problem.
--------------------------------------------------------------------------------
747caa52fd | WizardIke | 2025-07-07 22:30:01 -0500

Fix clear_to_end_of_line for windows console builds (#4504)
It isn't meant to change the cursor position. However, it was changing
it which meant we had to disable some asserts on windows in b0d7ede
--------------------------------------------------------------------------------
6ecf20f4ee | RypoFalem | 2025-07-07 22:23:56 -0500

update options guide documentation (#4640)
of force_spell_targeter and force_ability_targeter defaults.
--------------------------------------------------------------------------------
d528656974 | David Lawrence Ramsey | 2025-07-07 21:25:08 -0500

Fix missing pixel on inert gravitambourine tile.

--------------------------------------------------------------------------------
87ee97bf79 | gammafunk | 2025-07-07 14:28:05 -0500

Fix a typo (Oneirical)

--------------------------------------------------------------------------------
19c559dd15 | hellmonk | 2025-07-07 14:17:37 -0500

fix a title bug

--------------------------------------------------------------------------------
0cc2c75a63 | DracoOmega | 2025-07-07 06:22:36 -0230

Ensure a Temple entry vault is always placed (staticshock)
In general, if an attempt to place a branch entry vault fails, the fallback
simply places the entry feature on its own on a random tile on the map. But
this is no longer adequate for Temple, as this means the Zot orb statues
outside may never be shown to the player.

Now, when a Temple entry vault fails to place, it will fall back on placing
the smallest possible vault (just the entrance + 2 statues) and if that
also fails, the level will be vetoed entirely.

--------------------------------------------------------------------------------
a7298f496d | DracoOmega | 2025-07-07 04:50:50 -0230

Add Dewdrops on the Grass to credits

--------------------------------------------------------------------------------
6f252c72f2 | DracoOmega | 2025-07-07 04:30:06 -0230

Don't ask which item to remove when all are identical (Back-form)
This behavior (ie: not prompting to pick a ring on ring swap when both are
identical) was seemingly lost in 2dbd7c1 and now it is back again in an
mildly enhanced form. (It should now work on any number of any type of
equipment, provided that all swap candidates are identical to each other.
So formicids with 2 identical gloves get the same treatment.)

--------------------------------------------------------------------------------
03e512366c | DracoOmega | 2025-07-07 04:12:59 -0230

Don't let rF- override steam immunity (Dewdrops)
While rF+ passively confers cloud steam immunity on its own, the way these
two resists were interconnected led to the unintuitive result that having
rF- could lead to to a pale draconian being able to be damaged by their own
breath.

Now steam res can merely *benefit* from levels of rF and never be reduced
by them.

--------------------------------------------------------------------------------
b9a1c928f1 | DracoOmega | 2025-07-07 04:07:15 -0230

Don't allow bypassing ability target restrictions with !/@
Similar reasoning to 0ad0e9b was for spells.

--------------------------------------------------------------------------------
26b3ba3cbc | DracoOmega | 2025-07-07 04:05:56 -0230

Don't leak invisible monster positions with Bestial Takedown (cool3)

--------------------------------------------------------------------------------
90f01339ec | DracoOmega | 2025-07-07 04:01:32 -0230

Add a small raven easter-egg
By popular demand.

--------------------------------------------------------------------------------
2e4cc96e4d | DracoOmega | 2025-07-07 03:55:02 -0230

Allow gloves of Hurling to stack (Darby)
Now that it is possible in multiple ways to have 2 pairs of gloves at once.

--------------------------------------------------------------------------------
e757dcb493 | DracoOmega | 2025-07-07 03:50:20 -0230

Allow reaping brand to work with Gozag (dilly)
And also combine with other corpse-using necromancy.

(And prevent it from working with Yred, who bans most other uses of
reanimation spells - it could produce two spectrals from one demon,
otherwise!)

--------------------------------------------------------------------------------
0f688253b4 | DracoOmega | 2025-07-07 03:41:25 -0230

Don't apply Bane of Warding to firewood (Darby)

--------------------------------------------------------------------------------
3ed96b2d95 | DracoOmega | 2025-07-07 03:41:12 -0230

Adjust riddle talisman description for felids (dilly)
Now explicitly mentions that it doesn't grant them barding and cloak slots.

--------------------------------------------------------------------------------
c64bd83218 | DracoOmega | 2025-07-07 03:29:14 -0230

Don't crash when using Aphotic Marionette with a tesseract in view (Darby)
Use an explicit flag for 'dummy' spells (that exist for UI purposes) to
prevent monsters from trying to cast them under any circumstances.

--------------------------------------------------------------------------------
857301abd6 | DracoOmega | 2025-07-07 03:28:17 -0230

Don't allow bribing/mirroring a Boundless Tesseract (Darby)
When the mirror copy expired, it would even kill all the real tesseracts on
the floor!

--------------------------------------------------------------------------------
3d2785031b | DracoOmega | 2025-07-07 03:26:21 -0230

Don't prevent using fuzzed ?blinking with LoS <= 2 (Darby)
Not that they're very useful with that small an LoS, but they technically
do more than nothing and so shouldn't be effectively forbidden.

--------------------------------------------------------------------------------
240e1f6f9e | DracoOmega | 2025-07-07 03:08:43 -0230

Fix Mutagenic Gaze giving far less contam than intended (Darby)
Was giving exactly 4% until you reached slightly below 100%, at which point
it was stopping entirely...

--------------------------------------------------------------------------------
e6c66e347d | Hellmonk | 2025-07-06 23:56:39 -0500

Add support for conduct titles (#4634)
Allow title handling outside the species/skill/god/stat paradigm. It should be
possible to make titles for various challenge conducts or unusual playstyles.
These titles will also be saved for player ghosts.

Includes a selection of such titles:
"Flawless", for holding all gems intact
"True Ascetic", for never using a potion or scroll
"Incurious", for 15 rune deathless Felid
"Ruthless", for having the Orb at xl 18 or lower
"Miser", for Gozag runs which never purchase from shops
"Chaos Fanatic", for 15 rune CK runs without abandoning Xom
"Keeper of the Flame", as above for Cinder Acolytes of Ignis

More will be added over time.
--------------------------------------------------------------------------------
28cf5388ae | DracoOmega | 2025-07-06 16:58:26 -0230

Remove a stray debugging statement
Leftover from 5232bdb. I'm honestly surprised no one ran into it in-game
in the meantime (since it's actually visible if playing console).

--------------------------------------------------------------------------------
d700b1d6c5 | DracoOmega | 2025-07-06 16:58:26 -0230

Fix Platinum Paragon targeter sometimes aiming at the player (Lici)
If the first habitable space near the desired enemy happened to be where
the player was already standing, it could aim it at you (which isn't
actually a valid target for it).

--------------------------------------------------------------------------------
e53ad14149 | David Lawrence Ramsey | 2025-07-06 12:47:38 -0500

Update comment regarding Terence.
Since he's no longer a mass murderer in hiding.

--------------------------------------------------------------------------------
3d0e656495 | Isaac Clancy | 2025-07-06 11:05:47 -0500

Make diamond sawblades splatter more blood (GnomeSayin)
Shredding enemies with sawblades feels like it should result in a lot of
blood, which it wasn't producing before. I limited each sawblade to only
spraying blood in a small area around its victims as its hard to tell
where the blood is coming from otherwise.

--------------------------------------------------------------------------------
4b37bdf94e | DracoOmega | 2025-07-06 13:06:40 -0230

Fix a typo (staticshock)

--------------------------------------------------------------------------------
8edd070e86 | DracoOmega | 2025-07-06 08:59:15 -0230

Don't crash on % screen with rF/rC less than -1 (Ogregutan)

--------------------------------------------------------------------------------
052753400f | DracoOmega | 2025-07-06 07:20:53 -0230

Don't consider all parchments identical on the shopping list (Ogregutan)
Picking up any parchment would remove all other parchments from the
shopping list, not just ones of the same spell.

--------------------------------------------------------------------------------
ba080413bb | DracoOmega | 2025-07-06 03:30:28 -0230

Fix %s screen showing the wrong resist values for rN (Planckenstein)

--------------------------------------------------------------------------------
a82abc1eca | DracoOmega | 2025-07-06 03:29:37 -0230

Fix parchments being more expensive than intended (Darby)
They were getting both the higher per-spell rate they were intended to have
*and* the cost of being in a book of one spell (making them nearly twice
as expensive as their apparent intention).

--------------------------------------------------------------------------------
0ac7050e40 | David Lawrence Ramsey | 2025-07-05 23:26:08 -0500

Fix wording.

--------------------------------------------------------------------------------
9245ba7e0e | regret-index | 2025-07-06 01:39:51 -0230

Variant orb vault distribution
A chunk of vault review accidentally not properly merged into eee5569.

Unthemed Zot vaults using orbs of fire just freely use whatever orb Zot
has that game, vaults with mostly just orbs of fire as threats only place
when said orbs are available, and old fiery / cold / negative energy and
acid vaults are each adjusted to have a chance of placing their orb only
if that orb is available. Most notably, this removes some old arenasprint
monsters trying to make its own vault monster variants of orbs of fire,
and adds the new cold and negative energy orbs to the corresponding
ziggurat floors to correspond to the current orb of fire set.

--------------------------------------------------------------------------------
58bce5c09a | David Lawrence Ramsey | 2025-07-05 17:39:11 -0500

Fix spelling.
Crystallizing Shot -> Crystallising Shot.

--------------------------------------------------------------------------------
49f3ece09a | DracoOmega | 2025-07-05 18:52:51 -0230

Properly make only spellbooks inedible
Instead of only parchments, the literal inverse of what I meant to do.

--------------------------------------------------------------------------------
9f259bd188 | DracoOmega | 2025-07-05 18:52:16 -0230

Improve a webtiles parchment rendering check (WizardIke)
Apparently next_pc and next_mc can sometimes get out of sync with each
other, which may have been the source of the crash in the first place.
Instead, make sure to use the same map_knowledge from which the tile was
derived.

--------------------------------------------------------------------------------
2e5ef21555 | DracoOmega | 2025-07-05 18:12:33 -0230

Remove a failing test case
It's no longer possible for an arbitrary species to mutate Tough Skin as of
724dfb3, so this test would always fail.

--------------------------------------------------------------------------------
6afd62ccd5 | patrick | 2025-07-05 16:20:06 -0400

Add two abstract decorative float vaults
In the vein of nicolae_hitomezashi, two big vaults based on
simple tilings of a single subvault. Nothing fancy.

--------------------------------------------------------------------------------
eef651f67a | DracoOmega | 2025-07-05 17:34:21 -0230

Fix EV just being V on the console sidebar (Lightli)

--------------------------------------------------------------------------------
9a6bba5181 | DracoOmega | 2025-07-05 17:19:57 -0230

(Maybe) fix a webtiles parchment rendering crash
I'm not yet sure how it's possible to be told to draw a parchment without
there being a parchment there to draw, but in the meantime this will
hopefully allow any affected player to proceed.

--------------------------------------------------------------------------------
02f3d51f4c | DracoOmega | 2025-07-05 15:02:23 -0230

Don't upgrade shop items via Lucky if they can't fit in one's inventory
While shop purchases are normally unaffected, if the player's inventory was
full at the time, they geet dropped on the ground instead, which *did*
allow Lucky to see them to upgrade. Now, it should not.

--------------------------------------------------------------------------------
3197762f3d | DracoOmega | 2025-07-05 14:46:27 -0230

Fix parchment description being broken (Sloweel)
It was trying to do database lookup including the name of the spell on the
parchment.

--------------------------------------------------------------------------------
7d0a7343d7 | David Lawrence Ramsey | 2025-07-05 12:15:14 -0500

Fix an obsolete ref to Sword of the Doom Knight.

--------------------------------------------------------------------------------
21a59f4854 | gammafunk | 2025-07-05 12:10:36 -0500

Fix a typo

--------------------------------------------------------------------------------
724dfb3b24 | David Lawrence Ramsey | 2025-07-05 12:04:26 -0500

Allow tough skin mutation for those with it innately.
The code that allowed this before (at least at some point) was removed
in 029931c, and there's precedent with the shaggy fur mutation.

Only oni and trolls have fewer than 3 levels of it anyway, and it has
the same rarity as the shaggy fur mutation when it's available.

--------------------------------------------------------------------------------
6336768dfd | David Lawrence Ramsey | 2025-07-05 11:45:04 -0500

Fix spelling (succor -> succour).

--------------------------------------------------------------------------------
62e60e0296 | DracoOmega | 2025-07-05 13:39:21 -0230

Continue fixing tag upgrade build

--------------------------------------------------------------------------------
60b5d8b99b | DracoOmega | 2025-07-05 13:27:54 -0230

More dead code removal
It might have helped if I actually saved this file before pushing >.>

--------------------------------------------------------------------------------
091814e867 | DracoOmega | 2025-07-05 13:22:32 -0230

Remove some dead code I forgot to delete
After the relevant effect was refactored in ed944a3ea86c6e6

--------------------------------------------------------------------------------
905eea1a6b | DracoOmega | 2025-07-05 13:07:42 -0230

Fix another tag upgrade build issue

--------------------------------------------------------------------------------
30d1165b96 | DracoOmega | 2025-07-05 12:47:52 -0230

(Maybe) fix tag upgrade build

--------------------------------------------------------------------------------
3911a2f490 | regret-index | 2025-07-05 12:36:45 -0230

Revise trove contents into new themed locales
The actualy rewards within Trove are mostly severely focused and uneven,
due to all but a few vaults focusing on very singular item categories- all
weapons, all armour, all jewellery, various potions, or various scrolls,
alongside a small number mixing spellbooks and magic staves. Even the ones
that can contain multiple categories can struggle due to the average
quality of placing only a few of some categories (like weapons) being
relatively low. This makes it very difficult to evaluate what the average
quality of troves should be in order to properly set the costs to enter
them. They are also mostly highly-forgettable boxes of items all in a
singular pile, without the decorations introduced throughout much of the
rest of the game, nor any particular themes, which is a somewhat lacking
state of affairs for one of the very few noncombat zones in the game
(compare to e.g. the extreme number of Temple layouts or Bazaar
customers added in e151113.)

This commit revamps a decent number of trove layouts and grants them new
themes plus names dedicated to spell namesakes and unrands, a space which
has made Wizlabs be one of the most memorable and beloved set of portals
in the game. (It also gets in a handful of names that would be very
difficult to make Wizlabs for with the current sprawl of Wizlabs without
substantially more lategame monster options; this isn't meant to be a hard
cap on returning to any of those eventually, and to those ends there is
a single overlap between troves and wizlabs already present). They also
have a rather large set of lua functions distributing their themes across
a variety of different item categories then tailored to species limits,
god restrictions, and player skills, which should make it so every trove
has a relatively more stable floor and ceiling of item quality. (They also
have less items overall- a hard focus on 12 items compared to the prior
16- between said tailoring of average quality and since the trove costs
revamp in 0288ec2 allows recklessly picking up troves on sight in
exchange for significant downsides.)

It'd take an excessively long amount of words to outline just exactly
what each new trove may contain, but to list and summarize each of them
in brief as an introductory teaser:

 * Ozocubu's Refridgerator:
  - freezing weapons, rC+ gear, and Ice Magic
 * The Storm Queen's Palace Crash Site:
  - electric weapons, rElec gear and shields, and Air Magic
 * Leda's Sunken Stockpile
  - heavy weapons, *Slow or ponderous gear, and Earth Magic
 * The Name-Rending Infernalists' Reservoir
  - flaming weapons, rF or Harm gear, and Fire Magic
 * Eringya's Secret Bog
  - spectral weapons, rPois gear, and Alchemy or Summoning
 * Rutra's Hidden Sanctum
  - venomous weapons, Stealth or +Inv gear, and Hexes
 * The Dread Knight's Derelict Charpel
  - draining or reaping weapons, Will+ or +Slay gear, and manuals
 * The First Justicar's Armoury
  - holy wrath weapons, rN gear, and regeneration amulets
 * The Octopus King's Forgotten Garden
  - enough jewellery and armour to exactly match octopode slots,
 * The Lost Hoard of Erebora
  - dragon scales, talismans, hat randarts, and elemental magic
 * a devouring Rift(!)
  - distortion and chaos weapons, random armour, and Translocations
 * an orange crystal hatchery(?)
  - antimagic weapons, Int or Will+ gear, Earth Magic and Summoning

If it turns out the overall item quality ends up feeling too high relative
to rolling troves or not in a game, the total item count can be reduced a
little, or the various consumables keyed to each of these troves can
replace some of the equipment. As is, I'd like to assess how well the
trove cost changes work out and how well the item mixes plus
skill-weighting feel in practice first. There are also still spaces for
conjoining trove themes, if other people want to submit additions to this
trove set in the future, other spells and unrands help pin down some
currently-absent themes, or more item types are added overall.

(This commit also revises the flavour of the Robe of Night to not mention
a real-world goddess in the context of Crawl's highly established
pantheon, adds a proper tilerim to the storm bow, and also adds a new
decorative floor option of inaccessible alcoholic drinks with a tile
based off of CC0 assets by Jetrel.)

--------------------------------------------------------------------------------
e75be34554 | regret-index | 2025-07-05 12:36:45 -0230

Experimental new Zot:5 stone wall tiles
This is yet further follow-up to 7ba718c and 668cce9. These are meant to
both bridge the gap between Sastreii's Depths stone wall tiles and Zot,
with the former using a style that otherwise doesn't match almost any
other branch walls in the game, as well as also show to those not keeping
up with the commit log that Zot:5 has noticeably changed mechanically
between the orb element rotation (c5e9435), scroll of blinking change
(f5e15d0), and the introduction of boundless tesseracts (1e78663). They
use an encased-relief style referring to other tiles throughout the game,
which I'd like to deploy to the rest of Zot eventually (with a different
set each floor both matching the current Zot floor colour schemas and
various different rune branches throughout the game). For now, I think it
does plenty to show off entirely distinct tiles at the very last floor of
the game.

Tile credits compromise of
 * Sastreii's Depths wall tiles,
 * roctavian's generic stone wall tiles,
 * Denzi's Zot rock walls, Elf wall / floor tiles, and fire drake tile,
 * Ontoclasm's crystal walls and Summon Butterflies spell icon tile,
 * LemurRobot's orb of entropy tile submission,
 * white_noise's Depths wall tiles,
 * and CC0 skill icons by frosty_rabbid.

--------------------------------------------------------------------------------
b1d7106892 | regret-index | 2025-07-05 12:36:45 -0230

New Xom effect: small amounts of Doom
While Xom recieved quite a large number of different good and bad effects
in the past two versions, one of the various lingering problems with
variety in Xom's actions is a lack of effects that can be done with no
visible monsters. In particular, this makes random teleport effects
very common while resting or travelling, which while successfully and
iconically disruptive to normal gameplay, is also one that encourages
tedious optimization (in retreating up staircases) while failing to
discourage other tedious optimization (in Xomscumming by waiting around
for net higher benefits). More meaningful effects that can be done outside
of combat would somewhat help.

As such, I am removing about 10% of the weight on teleportation to instead
let Xom increment up one's Doom at the same current likeliness of draining.
The effect mostly just increments up one's Doom by 15 to 25% if below 50%
Doom, and increments half that much if above 50% Doom and neither boredom
nor wrath are involved. Xom won't actually actively choose to inflict
enough Doom to make it above the 50% threshold unless they're bored or
wrathful, however, so this shouldn't produce Banes unless one is dawdling,
Xom-scumming, or facing particularly many Doom-inflicting enemies while
also getting somewhat unlucky. As such, this should thus not actually make
Xom worship much actively worse outside of poor luck versus Orbs of
Entropy or being too weak to handle given draugr, but it should still help
reduce the overall teleportation roulette amounts by enough to help a bit.

--------------------------------------------------------------------------------
94194747ba | regret-index | 2025-07-05 12:36:45 -0230

Vault review, post-doom edition
With orbs of winter, orbs of entropy, and draugr handled in prior commits,
this vault review mostly concerns drudes, ravens, and zykzyls, plus the
changes to neqoxecs, cacodemons, and shining eyes.

Worthy of note:

 * Drudes have limited to being placed in a few early tier-5 demon vaults,
   some but not all of which were old quasit placements.

 * Ravens have mostly been placed rarely in Lair vaults using most of the
   total Lair monster pool, as well as outside the two most unholy Lair
   endvaults as feels vaguely appropriate for their unlucky themes.

 * Neqoxecs and cacodemons get to be slightly more common now that the
   former's mutations are transient and the latter has to land multiple
   hits with a spell to inflict a direct long-lasting effect. Zykzyls,
   on the other hand, have been placed in only a couple of the former
   cacodemon locations as is thematically appropriate and are fairly more
   uncommon than cacodemons in vaults overall, due to neither digging nor
   being in Makhleb's servant list.

 * Mnoleg's level swaps out cacodemons for zykzyls to retain the mutation
   theme, and loses shadow demons entirely for now; while it's both funny
   and highly appropriate for the summoning-based fixed Pan lord to have
   summoners summoning more summoners, attaching it to the very sudden
   strategic damage of Malmutate casts is awkward. Shadow demons have been
   moved to always appear in Gloorx Vloq's level instead (who still has
   Summon Executioners and loose shadowy themes), to experiment a little
   with top-tier draugr both being far less common than malmutation in the
   level as well as to slightly lower said draugr placement.

 * Other incidental pieces of this vault review include keeping eels out
   of flame cloud generators behind glass, moving a Swamp-themed vault out
   of Snake and into Depths, fixing teleports for one closet and one
   Necropolis ghost subvault, and a nerf of a D:2 out-of-depths vault.

--------------------------------------------------------------------------------
41bb3a0f41 | regret-index | 2025-07-05 12:36:45 -0230

New monster: screaming refractions, for the Abyss
Injury Mirror on monsters appearing in many circumstances is somewhat
awkward, as it being cast near the start of a battle can prompt simply
resetting the encounter or kiting until one can wait on the Injury
Mirror cooldown instead. Its former usage on death knights somewhat was
helped by both attacks of opportunity and their bands, but their capacity
to otherwise kill a player at range was rather low. There are, however, a
few branches where regular respawns and unstable terrain can make it
awkward to try and ignore the monster, which can always do with more
unique monsters.

These new flying corporeal undead, "screaming refractions", are
crystalline Abyss monsters that pick up the Injury Mirror spell for an
unholy-ish branch that both doesn't have a lot of unique undead tied into
its distinct flavour as well as another crystal monster for one of the
branches with the most crystal in the game. Somewhat close to a phantasmal
warrior stats with better defenses and less melee damage, they also cast
Lee's Rapid Deconstruction to do some damage at range (if mostly limited
tp already stronger species or low-xl characters), as well as making
extreme amounts of noise as is quite dangerous in the Abyss if otherwise
ignored (in a fashion avoidable as usual with careful moving around
walls). (It could possibly also use other noise-based mechanics, if those
end up getting sufficient homes in the future....)

It appears relatively uncommonly in the middle of Abyss depths and a few
vaults thereof, trimming out some weight from various unholy monsters
already shared throughout the rest of the game. It could also work for
future weird portals with other sorts of active clock gimmicks, if they
can match the flavour of it.

The tile is composited from Denzi's deep elf fighter and old tormentor
tile, mixed with roctavian's worker ant and soldier ant tiles.

--------------------------------------------------------------------------------
76c8eab05c | regret-index | 2025-07-05 12:36:45 -0230

Revise death knights and move them deeper
The history of monster death knights of Yredelemnul is quite long and
quite strange, originating from the failed Dwarven Halls branch (8d12bfa)
as a deep dwarf monster with Drain Life to offset the inability to heal,
plus their one-currently-surviving gimmick of Pain / Injury Mirror that
mostly made Zigs much slower. They lost their initial Summon Undead
faux-recall spell in 083e7ed, got any actual stats and Crypt placement
in abfeb2e and its follow-ups, lost their dwarvish nature in 6cf6886,
were merged with unborn in 01b03bd to gain Haunt, then lost Haunt and
were moved earlier in 0464229. They've struggled to entirely retain much
of a gimmick beyond a living monster with a non-derived-undead band and
the tedious-in-normal-play Injury Mirror buff, which was removed in the
first major rework of Yredelemnul (b4513a3), and the second rework of that
god gave players rather different passives and active abilities (18fcfa0).
As such, they're strange stragglers of weird mechanics in a distant past.

Updating these death knights and adjusting their placement has multiple
purposes. Aside from actually aligning them with the player god fairly
more than currently, it can also reduce our reliance on necromancer
monsters throughout four branches and a portal throughout the whole game,
can help further seperate the monster overlap between late D versus Vaults
versus Depths, and help nudge up Crypt slightly more in threat level to
make it less uneven and less of a place to potentially work off strategic
damage.

This commit bumps up the stats and equipment of death knights a bit,
(including a 50% for the weapon to be draining branded), gives them a
radius-3 umbra they can ignore the penalties of, and grants access to Hurl
Torchlight (implemented for monsters in 2ecfa2a), which should be pretty
unique for monsters as simultaneous buffing and damage in one action.
Their Crypt bands have also been nudged further up the Yred Torch summons
pool, no longer using plain wraiths and instead a small chance of
jiangshi). In exchange, they lose access to Injury Mirror, slated to be
added to a different monster that can make walking away more relevant
beyond just attacks of opportunity). This does make them a little
detrimental to other monsters they may find outside their bands, but the
umbra effect is minimal in practice and it's cute enough to have unholy
monsters be somewhat dangerously reckless (c.f. Ghostly Sacrifice,
occultists fireballing themselves.)

They're no longer placed in late D, with most of their weight distributed
to monsters that could use slightly more common placement at a time where
they're relevant in threat level, and the chance for a wraith band has
instead been given to directly freezing wraiths (only when placed in late
D) as a means of making them be less straightforward melee monsters also
extended possibly too far across the game as stands. In exchange, they now
place in V completely replacing the current sparing necromancer monster
placement there, with a different band of mostly draugr with a chance for
another death knight; this is both meant to into the militarized humanoid
flavour of Vaults, the treasure-guarding flavour of draugr, and to make
derived undead bands be tangibly different between V and Depths. This is
still quite rare placement in V; I'd like to see how people feel about
draugr as melee-range non-instant strategic damage with harmless floors
and high ceilings in general before pushing them much higher, especially
in contrast to the removal of prior annoyances in regular-branch Injury
Mirror.

--------------------------------------------------------------------------------
f5d2b76d86 | DracoOmega | 2025-07-05 12:36:45 -0230

Display how helpful each pip of resist is on the % screen (various)
Many player resists provide different levels of value for each pip, and
while this is deliberate, it's not always clear (especially to new players)
how much each pip is worth.

So now, display the exact percentage of incoming damage the player will
take from each element next to its resistance pips on the % screen.

(A new option show_resist_percent allows disabling this, for players
already familiar who would rather it not take up space.)

--------------------------------------------------------------------------------
e722901d9e | DracoOmega | 2025-07-05 12:36:45 -0230

New good mutation: Lucky
This mutation gives a small chance (currently 2/4%) of any new floor item
the player encounters being upgraded to a randart of the same type - as
one of the most transparent and tractable implementations of a recurringly
suggested 'improve item luck' effect. It even announces the effect so that
players can realize it helped them!

I'm not sure exactly how generous this is in practice, since it excludes
monster items and shops (which are a large chunk of items one cares about),
but numbers are easily adjustable. And this feels like exactly the sort of
thing that could get some people more excited to drink !mutation for
reasons other than fixing problems.

--------------------------------------------------------------------------------
b8a1718476 | DracoOmega | 2025-07-05 12:36:45 -0230

Reduce the number of block of ice-shaped blocks of ice
Even if it is, perhaps, ontologically true.

--------------------------------------------------------------------------------
1ff2131c93 | DracoOmega | 2025-07-05 12:36:45 -0230

Allow specifying 'orc-shaped block of ice' in monspec (regret-index)
This previously only worked with pillars of salt.

--------------------------------------------------------------------------------
31aee9cdb8 | DracoOmega | 2025-07-05 12:36:45 -0230

Adjust Ill-Omen numbers

--------------------------------------------------------------------------------
6226c27287 | DracoOmega | 2025-07-05 12:36:45 -0230

Make undead players more vulnerable against doom/banes
In an inverse mirror of the undead having immunity to mutations, make them
take longer to work off doom and banes. (In keeping with the long tradition
of undead having additional vulnerabilities to contrast their immunities).

Poltergeists and revenants have both proven to be quite strong, so I'm sure
they can take this. I actually considered mummies *not* having this (there
are 'sacred' overtones to their flavor which one could reasonably use as
justification to lack this vulnerability), but wasn't sure if the single
exception would be unintuitive or not.

(Death form can also handle this, though I have some hesitations about
vampire form - but having all undead weaknesses was something I laid out
from the start, so this is at least consistent.)

It's possible that 'recover twice as slowly' is a bit aggressive, but I can
tune that down later if it turns out to be too much.

--------------------------------------------------------------------------------
7e80ae8a71 | DracoOmega | 2025-07-05 12:36:45 -0230

Make undead immune to the effects of umbra
(And also stop Dithmenos-worshipping monsters from being immune to umbras,
as much as those presently exist.)

In preparation of an upcoming monster death knight rework. (Yred-created
undead, player-side, were already immune.)

--------------------------------------------------------------------------------
eee55696c4 | DracoOmega | 2025-07-05 12:36:45 -0230

Randomize which Orb of Element guards Zot each game
Orbs of Fire are one of the most iconic enemies in all of Crawl - fast,
terrifying, and an overwhelming source of fire damage. So much so that
their mere presence makes players value rF+ over any other resist. This
sort of strategic consideration can be interesting, but it can sometimes
also makes things feel a little lopsided (with many resists considered
less appealing entirely *because* there are no endgame users of it that
are similarly scary). Alternate orb types have been a recurring player
suggestion, and rotating enemy content between seeds has been very
successful with S-branch rotation for many years, so this is an attempt to
see if doing so in a limited way for Zot could introduce some more
interesting variation in itemization decisions that players make, while
also presenting novel forms of challenge.

Each game, Zot is populated by *exactly one* of Orbs of
Fire/Winter/Entropy. Which type will appear there is announced to the
player in advance via statues found outside of Temple (and also outside
the entrance to Zot). This is so that the player is forewarned before
making run-long itemization decisions, such as what to spend ?ea scrolls
on (or especially Coglin gizmo choice). Once the player has seen the
statues in question, this information is also shown on the dungeon
overview screen (ctrl+O) just in case they may have missed it or
forgotten.

Zot vaults wanting to place whichever orb type was chosen this seed can
use 'orb of appropriateness' and the lua function dgn.zot_orb_type() can
be used to handle vetos/versioning for vaults that want to more
specifically match a given type of orb.

Ziggurats are allowed to use all 3 orb types in a single seed (as they
already place S-branch monsters from branches that weren't generated), but
the rest of the game should restrict itself to orbs of appropriateness.

Hopefully this will add a little bit of extra variety to runs without too
heavily disrupting the fundamental Zot experience.

(Vault review done by regret-index)

-------

Orb statue tiles made by regret-index, composited from LemurRobot's orb
of winter and orb of entropy submissions, CC0 pixel art orbs by flowly
and idylwilds, Sastreii's salamander firebrand and eye simulacrum tiles,
and the statue plinths made by ontoclasm.

--------------------------------------------------------------------------------
faf06d56fc | DracoOmega | 2025-07-05 12:36:45 -0230

New monster: Orb of Winter
The second of the new Zot orb monsters. It casts Flash Freeze, Ozocubu's
Refrigeration, and Ostracise. Its raw damage output is less than orbs of
fire, but Flash Freeze is harder to resist and slows your movement, and
Refrigeration is capable of hitting through any number of other monsters.
This means that it can threaten you in situations that orbs of fire could
not (especially in multiples!), but also that certain tactics like using
allies for the adjacency damage-reduction from Refrigeration become more
useful.

Ostracise is melee range only so that its unique threat doesn't
immediately shut down many characters, which still being relevant between
multiple fights.

Compared to orbs of fire, they have only rF+, but rC+++.

-----------

Orb of Winter tile by Darby.

--------------------------------------------------------------------------------
7341a40b18 | DracoOmega | 2025-07-05 12:36:45 -0230

New monster: Orb of Entropy
The first of a pair of two new monsters aimed to be similar in threat and
playfeel to orbs of fire, for the new Zot orb monster rotation. Each will
each be similarly fast, omniresistant spellcasters with one undodgeable
elemental spell, one dodgeable elemental spell, and a strategic damage
effect - but aimed to be as distinct as possible within this core
identity.

Orbs of Entropy cast Bolt of Draining, Acid Ball, and Ill-Omen. Their
damage spells are designed to check resists that are traditionally
devalued by players (and acid being the more damaging of the two means
that undead players won't get a free pass.) Acid Ball does somewhat less
damage than Fireball, but the player can gain only 50% resistance to it
and the corrosion effect can be a big deal.

Compared to orbs of fire, they have only rF+, but rCorr+++.

-----------

Orb of Entropy tile by Darby. Acid Ball spell icon by regret-index,
combining roctavian's sting and fireball tiles.

--------------------------------------------------------------------------------
b05e2c082d | DracoOmega | 2025-07-05 12:36:45 -0230

Improve bolt of draining accuracy
It is now as accurate as the average 'bolt of X' instead of being mildly
worse for some reason.

--------------------------------------------------------------------------------
70c6c67644 | DracoOmega | 2025-07-05 12:36:45 -0230

Mildly buff monster corrosive bolt
All acid beams had the same 50% chance of applying 4 corrosion to the
player on hit, but corrosive bolt's accuracy and cast rate were vastly
worse than acid spit, making the corrosion effect rarely relevant. Given
that it is only used by a few monsters in the game, I think it could stand
to be more impactful in those situations, so it now has a 75% chance of
applying 6 corrosion and somewhat higher damage. Perhaps that will make
people care just a little bit about having rCorr against it?

--------------------------------------------------------------------------------
6d902687a5 | DracoOmega | 2025-07-05 12:36:45 -0230

Slightly tweak dispellable monster effects
Remove Daze (now that Gozag aura passively hands it out constantly, it
seems too strong a Yara's synergy), Word of Recall (not actually a buff -
just an indication of an action the monster is performing), Sign of Ruin
(a divine-exclusive effect), and Bullseye Target. Add Diminished Spells
and Vexed.

--------------------------------------------------------------------------------
715f76a325 | DracoOmega | 2025-07-05 12:36:45 -0230

Mildly tweak the monster version of Ozocubu's Refrigeration
It now no longer does friendly-fire, as this would make the Orb of Winter
version in particular hard for monsters to use (monster OTR has had this
same property for a very long time).

Slightly tweak power scaling so that it is marginally weaker at very high
HD (Fannar is largely unaffected).

Finally, remove a weirdness to its tracer that would sometimes prevent
monsters from ever casting the spell if the player's AC was high enough.
This did require 52 AC to shut off Fannar's Refrigeration, so it probably
didn't happen very often, but beam tracers in general ignore the player's
AC and it's still possible to do *some* damage against a high AC monster,
so this behavior seemed weird to me.

--------------------------------------------------------------------------------
9c06f76501 | DracoOmega | 2025-07-05 12:36:40 -0230

Experimental Zot:5 change: Boundless Tesseracts
While the Zot:5 endvault is an iconic and often tense challenge, there have
been some repeated sentiments over the years that the best (or, at least,
a compelling) way to handle it is through a slow and tedious process:
staying a safe distance away and shouting for an incredibly long time to
very slowly lure monsters out of the vault where they can be pulled back to
the stairs or otherwise dealt with individually.

This commit attempts to address this issue by applying forward time
pressure in a relatively transparent and urgent way (while making pulling
things individually back to the stairs a little less guaranteed to be
safe). Each lung of the endvault now contains a Boundless Tesseract, which
is essentially a form of monster generator. So long as they are active,
random floor-appropriate monsters will periodically spawn across the floor.
This is slow at first, but steadily increases in speed the longer the
tesseracts remain alive. This should make ultra-slow strategies inadequate
and push players to be a little more aggressive with making their way into
the vault (while still being gentle enough initially that it does not
heavily disrupt normal strategies).

When tesseracts first 'wake up' (typically from nearby noise), they will
reveal and announce themselves to the player. Killing either tesseract will
also destroy the other (so the player only needs to enter *a* lung, not
both of them.). Finally, the tesseracts come with a 'pool' of XP to help
make their spawns feel less unpleasant while still removing any farming
incentives: the monsters spawned by tesseracts initially give XP normally
at first, but eventually become unrewarding if the player is slow enough.
Killing the tesseract rewards all remaining XP in the pool, so there is no
reason to delay doing so. This XP should hopefully be large enough that
average play will not run into many (or any) unrewarding monsters.

The spawn rate is very provisional at the moment, pending player testing.

(Tile credit goes to regret-index)

--------------------------------------------------------------------------------
e002260597 | DracoOmega | 2025-07-05 12:36:31 -0230

Make Zot/orbrun fuzz blinking scroll destinations
Zot has gone through many variations of translocations restrictions in
past; for a while, ?blinking were reduced to purely random blink, which was
justifiably considered too heavy-handed by making a key consumable nearly
useless. However, the sheer power of ?blinking when the player no longer
has any reason to conserve them sometimes results in the finale being more
anticlimactic than one would like - skipping past otherwise tricky
encounters, easily fleeing any Pan lord, using them as instant teleports
via any nearby teleport trap, etc. It feels like the finale might be a
little more interesting if a similar restriction was applied to them that
is already applied to ?tele - where they are still powerful, but just a bit
less reliable.

This introduces a 2 tile fuzz to ?blinking when used in Zot or on the
orbrun - functionally identical targeting to how the barachi Hop ability
already works (though capable of reaching to the edge of LoS). This isn't
a terribly strong restriction, but might do just enough to add a little
extra spice without feeling like the ?blinking a character has saved for
the end of the game weren't worth it.

--------------------------------------------------------------------------------
6a75ce48ae | DracoOmega | 2025-07-05 12:36:31 -0230

Revamp Trove fees using some new options
Troves are a theoretically exciting thing, and asking the player to
sacrifice something in exchange for a random reward can be interesting
gameplay, but many of the trove fees are troubled in practice.

Vital consumables are often too valuable for players to consider it
equitable to sacrifice them for an unknown reward, but more tricky is the
fact that the quantities asked for will in some cases exceed *how many of
those items generate for the player in the entire game*. Asking the player
to increase their challenge is one thing, but giving them tasks they cannot
complete (and might barely be worth it, even if they could) is
unsatisfying. And on the other end, options like 'item in a shop' are often
just "Gold (which will eventually be free), but complicated."

Instead, let's trim down the current options to focus on ones that are more
interesting, and give significant weight over to a new press-your-luck
option in the form of Banes - something the player can *always* pay, but
which still represents an immediate new threat to them.

-50% of Troves now ask the player to accept a pre-announced bane in order
 to enter. (The details of the bane are viewable when the portal is
 examined and I've excluded some of the more situational ones from the list
 of possibilities.)
-12.5% are piety-sacrifice troves (now using Ostracism instead, so that
 they function with more gods than before).
-~6.2% inflict heavy Draining on the player.
-~17% are split between Abyss/Slimy Rune and Horn of Geryone
-~4% require 2 acquirement scrolls
-~4% ask for an enchanted demon weapon (though any type will now suffice)
-~6% ask for enchanted dragon armour (with deeper types being rarer)

These numbers are subject to change in future (to be honest, I'm not sure
if the enchanted dragon armour is terrible interesting to keep, among the
other possibilities).

A subsequent commit will heavily revamp the *contents* of Troves as well.

--------------------------------------------------------------------------------
727a8ff8c5 | DracoOmega | 2025-07-05 12:36:31 -0230

New randart property: Bane
This property immediately inflicts the player with a random bane when they
first put the item on (in contrast to ^Contam and such, which do something
bad only when you take them *off*)

Since this likely makes it less appealing than many of those items (after
all, if an item you want to use for most of the run has ^Contam, that's
basically no trade-off at all!), Bane items spawn with a few additional
plusses, on average.

(I kind of would have liked to boost the other artprops on the item
instead, but the way artefacts are generated make this rather tricky
without additional code modification. So for now, it's stuck on weapons and
armour so that it has something to offset itself.)

--------------------------------------------------------------------------------
dd4ca101b7 | DracoOmega | 2025-07-05 12:36:31 -0230

Replace tempmuts from Hell effects with doom
A more thorough adjustment of Hell effects is likely to happen when Hellpan
roulette happens, but I think this sustitution make sense in the meantime.
(It it possibly meaner than tempmuts, now that their duration is a little
less irrelevantly short, but it feels more thematically appropriate to me).

--------------------------------------------------------------------------------
8c54407fd1 | DracoOmega | 2025-07-05 12:36:31 -0230

Allow two rPois items to overcome innate rPois- from forms (various)
Many players were surprised this didn't work (and it is different than
how innate rF- works in forms), so let's try allowing it.

(Virulence still reduces your resistances *after* they are capped at 1, so
it is possible to negate its effect any number of rPois items; this just
affects forms.)

--------------------------------------------------------------------------------
b285aab4bf | DracoOmega | 2025-07-05 12:36:31 -0230

Add rElec- to the regular mutation pool
At a lower weight than rF-/rC-.

Was never clear to me why just this one was Qazlal-only. Maybe because
resists to counteract it are harder to find? But it still seems like it
should be fine.

--------------------------------------------------------------------------------
32552a3645 | DracoOmega | 2025-07-05 12:36:31 -0230

Make Qazlal wrath use banes instead of temp mutations
The elemental vulnerability tempmuts never worked very well as a wrath
effect in the first place - wearing off nearly immediately and merely
draining undead (since they're immune to mutations!)

So now, this wrath effect applies banes instead. In theory, new Qazlal-only
banes that mimic the rF-/rC-/rElec- effects directly could be made, but I
have opted to use the 3 'elemental succeptibility' banes that already
exist for now. instead. (ie: Heatstroke, Snow-Blindness, and Electrospasm.)

--------------------------------------------------------------------------------
bc0309bb70 | DracoOmega | 2025-07-05 12:36:31 -0230

Add Doom to mummy death curses and adjust weights
This commit adds Doom to the list of mummy death curse effects (subbing in
for the now-removed stat drain they possessed until recently).

At the same time, it makes some wider changes to death curse weights.
First of all: as far as I can tell, since death curses were revised in 0.25
the weights in the table saying how relatively common each type of effect
is and the real weights of those effects have not agreed - all 3 of the
'high end' effects have literally double the seemingly-intended weight!

This has a somewhat less dramatic effect than it sounds in practice, but
does mean that torment is a full 25% of royal mummy death curses (and
smiting is no more common than the rest.), as well as lower-tier mummies
rolling no-effect curses less often.

With the idea that Tomb may both be a bit overtuned for non-deathform users
in general these days (and even higher than was 'intended' at last rework),
I am making the following changes:
 -Draining joins Smiting as a 'low-tier' effect (in fact, draining is
  almost strictly less dangerous than smiting these days, removing less HP
  on average while also respecting normal rN+)
 -Torment and Slow are made a bit less common

In addition to the worse results being less common, this also means that
death form is now immune to 35% of royal mummy death curse effects intead
of their current 50%.

When extended gets more comprehensive revamps later in 0.34, I will revisit
these number again, but this is hopefully an adequate interim state.

--------------------------------------------------------------------------------
eddbedc23e | DracoOmega | 2025-07-05 12:36:31 -0230

Replace Horrible Things chance of tempmut with Doom
Instead of a chance to get a temp Will- mutation, now casting the spell
gives a small amount of doom instead (with a 1 in 4 chance of a higher
amount, along with the message).

The amount is fairly arbitrary and not intended to significantly nerf the
spell (but it's a bit hard to predict how bad it will be, given that
killing things with XXX will directly low the doom it gave the player). So
we'll have to see.

--------------------------------------------------------------------------------
6405cb6f9f | DracoOmega | 2025-07-05 12:36:31 -0230

Make Oblivion Howl summons less likely to fail to place (Acrobat)
By allowing them to place beyond the player's melee range, if all adjacent
spaces are occupied or unavailable.

--------------------------------------------------------------------------------
42a77206da | DracoOmega | 2025-07-05 12:36:31 -0230

Rename Doom Hound -> Oblivion Hound
To avoid confusion with new Doom mechanics. (I briefly considered
giving them AF_DOOM and letting them keep the name, but they're already
doing something plenty fancy enough already.)

There is no functional change.

(I kept the same strings used internally for prop keys, to avoid having to
write save compat code.)

--------------------------------------------------------------------------------
62013438ae | DracoOmega | 2025-07-05 12:36:31 -0230

Rename Sword of the Doom Knight -> Sword of the Dread Knight
To avoid confusion with the new Doom mechanic.

There is no functional change.

--------------------------------------------------------------------------------
beb3228c29 | DracoOmega | 2025-07-05 12:36:31 -0230

Revamp unsafe potion/scroll mutations
The -potion/-scroll chance mutations are widely seen as the worst bad
mutations one can get (scrolls, especially). Even though they are usually
inactive, the *possibility* that the player could be denied access to
their most critical escape tools (such as ?blinking) in a crisis tends to
make them cure-on-sight. And in my opinion, this combination of 'usually
doesn't do anything, except when it abruptly results in your death' is
unsatisfying. So let's try experimentally flipping these mutations around.

These mutations now reliably block potions/scrolls in combat while the
player is *healthy* and become inactive while they are significantly
injured. This means that the player can always count on their emergency
tools being available when near death, but will have to plan around not
having access to them ahead of time - like preemptive ?tele or !haste. The
HP threshold is currently 65%/40% of max HP, based on the mutation level.
The blocking is not active outside of combat (to prevent interfering with
strategic consumables), but has a 6 turn lag time to wear off after
encountering enemies (so that ducking around a corner doesn't immediately
break it.) It's possible one or both of these numbers bear further
adjustment, but let's see how this plays for now.

(Level 2 of these mutations are currently also used as Ru sacrifices. I am
unsure if the piety value of those should be adjusted.)

--------------------------------------------------------------------------------
cdf022edef | DracoOmega | 2025-07-05 12:36:31 -0230

Make glass eyes cautious
Their gaze being instant actually made them *more* likely to close into
melee than most spellcasters, which is a bad fit for their support role.

(Their gaze being instant doesn't actually do anything helpful for them,
either, since they have no other actions they can perform besides 'move
towards the player's melee range'. But gazes being instant is a general
rule that *does* matter for other monsters, like ghost moths, so I'd prefer
not to change that.)

--------------------------------------------------------------------------------
b9118b70cf | DracoOmega | 2025-07-05 12:36:31 -0230

Fix the Cautious flag not working with instant-speed monster spells
Rather than 'if you didn't cast a spell', the criteria should be 'if you
have energy left over to move foward while still being in range to cast a
spell'.

--------------------------------------------------------------------------------
473d61d5f3 | DracoOmega | 2025-07-05 12:36:31 -0230

Give shining eyes Mutagenic Gaze instead of Malmutate
While counterplay to malmutate has always existed (ie: using blockers to
control line of fire) and shining eyes have never been all that dangerous,
the fact that there's a highly random element in 'see on open floor and get
a critical badmut immediately, before you can even react' has always been
unpopular with a certain group of people.

So let's try something that guarantees a longer reaction window (while
also being arguably more consistent with the other eyes that currently
exist.)

Mutagenic Gaze gives the player magic contamination instead of directly
malmutating them, but (like gazes in general) is not blocked by intervening
monsters. You so have some time to react, but 'blocked vs. not' is not so
binary (and they can contribute better in some group fights that Slime is
known for). Hopefully this feel make the outcome of shining eye fights feel
a bit more agentive and less up to chance, to those unsatisfied with the
current version of them.

----------------

Mutagenic Gaze spell icon by regret-index, remixing Denzi's divinations
icons and CanofWorms's irradiate explosion vfx.

--------------------------------------------------------------------------------
c9fbd40ca5 | DracoOmega | 2025-07-05 12:36:31 -0230

Add a new option: warn_contam_cost
Off by default, this option will prompt the player whenever a cast of a
contam-generating spell (currently just Irradiate) could potentially result
in the player going from <100% to >=100% contam.

(I considered making it default to help with new player learnability, but
since it has to prompt about things which *might* happen, not necessarily
*will* happen, this can result in it giving several prompts in a row if you
get lucky, which I worried was a bit intrusive. However, it seems useful to
have the option available for those who choose.)

--------------------------------------------------------------------------------
dccffc7fa4 | DracoOmega | 2025-07-05 12:36:31 -0230

Rework many things about contam formulas
Many aspects of the formulas underpinning magic contamination have not
been changed in a very long time and had aspects which were clearly
ancient/vestigial or even misleading. The maximal amount of contam the
game tracks (and even had messages for) was wildly unobtainable outside
of deliberate wizmode actions, contam explosions did an incredible
irrelevant amount of damage (3d5 AC-checking damage at 11,000 contam,
which was more than twice the level where mutations) and yet scaled
almost without limit (theoretically allowing screen-sized explosions
doing 3d125 damage) and checked random resistances (with no indication
they did this).

More importantly, the difference in threat posed by 'barely yellow'
versus 'deeply yellow' contam was enormous: ~3% chance of one mutation
versus 62% chance of 2 + 13% chance of 3 - or approximately 60 times as
many average mutations! Given plans to make use of hostile contam in a
few more contexts, I feel this degree of ambiguity is far too large.

Moreover, while setting the current threshold for lightgrey contam at
'the next irradiate is potentially unsafe' was a useful QoL feature for
that spell, this critical fact is not actually conveyed anywhere in-game
(and thus depends upon community knowledge alone) *and* is generally
incompatible with there ever being a second spell using a
differently-sized contam cost (of which some have been proposed).

So this commit reworks most contam-related formulas in an attempt to
clarify, simplify, and make suitable for future projects.

-Contam has been rescaled internally. 1000 is now the start of yellow,
 2000 the start of red, and 3000 the absolute cap.
-Contam decays faster, but does not start to decay until 7 turns have
 passed since contam was last gained.
-Low yellow is somewhat more dangerous than before and the difference
 between low/high has been narrowed. Very high levels of contam are worse
 than before (the mid range is similar to the prior state).
-Being invisible no longer prevents all contam decay.
-Evoking a scarf of invisibility no longer gives a tiny bit of contam (it
 was largely irrelevant, requiring 6 consecutive uses to hit yellow)
-Contam explosions are possible at lower levels of contam than before, do
 significantly more damage (and ignore the player's AC), are non-elemental,
 and their base damage is based on the player's XL rather than the amount
 of contam. Yellow-tier explosions are radius 1, red are radius 2 and do
 more damage than yellow.
-Contam mutations no longer have a 50% chance to ignore rMut (along with a
 few other narrow interactions with mutation conflicts due to counting as
 'forced'). This seems unnecessary, with rMut being both weaker and far
 rarer than when this system was first designed.
-Contam is now listed as a percentage on the UI, while contaminated (near
 the Doom indicator). Yellow is 100% (ie: the start of actual negative
 gameplay effects), red is 200%, and the cap is 300%. While the specific
 number is admittedly unimportant for minor contam, it helps make the
 difference between low/high transparent to the player, and critically:
 allows contam-costing spells to be transparent about what their risks
 are in the current moment.
-Contam is only shown on the status line once you have enough for it to
 have gameplay impact (ie: yellow or worse).

All contam-inflicting things have been adjusted in light of these changes.
Miscast contam was simply divided by 5 (ie: exactly to match internal
rescaling), while several large sources of contam (eg: Zot traps) were
lowered somewhat to account for an equivalent level of contam being more
dangerous. Irradiate's top-end was divided by 5, but the *average* lowered
somewhat, to account for low yellow being more dangerous. The average
number of mutations gained by casting 4 times in a row should be similar to
before.

---------------

New contamination explosion vfx made by regret-index, remixing CanofWorms's
irradiate explosion vfx.

--------------------------------------------------------------------------------
36ea7f389b | DracoOmega | 2025-07-05 12:36:30 -0230

Don't return true when _try_make_weapon_artefact fails
This mostly happens with giant clubs / animal skins, which can fail to
become randarts even when requested (though should they, really??). But it
seems like bad policy to sometimes return 'true, but not really' and
require checking again outside the function.

--------------------------------------------------------------------------------
1de4b17f54 | DracoOmega | 2025-07-05 12:36:30 -0230

Allow specifying ego in acquirement itemspec (regret-index)
eg: 'acquire weapon ego:freezing' to select the base type by acquirement
logic, but apply the freezing brand to the resulting output. Intended for
use in her upcoming Trove rework.

This code is a bit rough and also not completely foolproof. For instance,
'acquire weapon ego:distortion' on a character with high ranged weapon
skill has such a low chance to find a compatible base type on each attempt
that it frequently runs out of rerolls and gives up, returning a random
weapon instead. A more thorough solution would be nice (and there are some
outstanding issues with ISPEC_RANDART that make me want to attempt a more
comprehensive refactoring at some point), but that would be a large
undertaking and I think this is adequately functional for the moment.

--------------------------------------------------------------------------------
6aa2896139 | DracoOmega | 2025-07-05 12:36:30 -0230

New strategic debuff: Ostracism
Intended as the counterpart to malmutate/ill-omen for orbs of winter, this
effect temporarily caps the player's effective piety, restoring it only
through XP gained. This is a stacking effect, which caps effectively piety
at '200 - [ostracism amount]' (so if you had 165 piety and 50 ostracism,
you would count as 115 piety for most purposes and not have access to
whatever your god would offer at 5*). Piety stars with are 'inaccessible'
due to ostracism are indicated by magenta Xs on the piety bar.

This plays considerably better with several gods that have 'unusual' piety
mechanics than outright losing piety does: Ru sacrifices are not undone
(but access to abilities is temporarily limited), Usk piety can still
rise to a certain level, Ash can give smaller stat boosts without
interacting awkwardly with already-cused gear, etc.

(In fact, I also plan to use this to replace the 'lose all piety' trove
cost in a future commit, since it allows those troves to operate better
with multiple gods that are currently vetoed.)

Internally, most checks to you.piety should now use you.piety() (which will
factor in the ostracism effect). you.raw_piety is still used for anything
which interacts with piety directly (ie: all gaining/losing of real piety,
as well as several gifting schedule mechanics that are safer to not
interact with this debuff.)

Gozag and Xom are unaffected by this effect. (It would have been possible
for this to prevent Xom from being in a good mood, but I know regret-index
wants to eventually make adjustments to how Xom mood works altogether, and
she was in favor of Xom not interacting with it for now. Gozag just doesn't
really have piety at all, though, so it feels consistent for them not to
care.)

--------------

Ostracize tile and vfx made by regret-index, using ontoclasm's Burn Books
icon and Denzi's generic / ecumenical altar tile.

--------------------------------------------------------------------------------
a8eaa26881 | DracoOmega | 2025-07-05 12:36:30 -0230

Expand the definition of 'trivial' monster threat level slightly
Even a simple dungeon yak yielded too much XP to ever be considered
trivial, even by xl 27. This is obviously nonsense (and now there is a
mechanical consequence to this nonsense), so let's expand the category
slightly.

(I think threat tiers require a much more detailed review/rework, which I
hope to do later in this version, but such a thing is out of scope for the
moment.)

--------------------------------------------------------------------------------
67c6cfe966 | DracoOmega | 2025-07-05 12:36:30 -0230

Adjust a handful of things about Corrupting Pulse and tempmuts in general
Corrupting used a mix of multiple different types of LoS check in its code,
resulting in various weirdnesses:
 -It couldn't hit through grates (inexplicably), but the tracer thought it
  could, resulting in wretched stars repeatedly flashing at the player with
  no effect.
 -The flash was drawn as if it could pass through fog, but it could not.

Now it works through grates, as one would expect, and the code should be
slightly cleaner. Additionally, friendly wretched stars can no longer
mutate the player (they already couldn't do it to allied monsters!), so
they are no longer barred from casting it.

In the hope of slightly improving clarity of what negative mutations are
actually affecting the player at any given time, monsters are now less
likely to cast Corrupting Pulse against a player who is already heavily
tempmutated.

The formula for recovery time for tempmuts has been greatly simplified.
It is no longer based upon XP (with a sliding cost depending on current
XL), but rather a small number of kills of 'non-trivial' monsters, which is
easier to balance lasting a predictable length of time at various XLs.
Tempmuts are supposed to be very short compared to banes, but the current
costs could wipe out half of a player's tempmuts in a single kill
sometimes, which is a bit much. The formula for how many mutations are
removed at a single time has also been simplified. Overall it is now:
 -Every 4-7 kills, 2-3 tempmuts will be removed.

Finally, weak, clumsy, dopey, and berserkitis are no longer in the pool of
tempmuts - the first 3 because they are irrelevantly weak in the span of a
couple fights, and the last because it is very easy to overlook gaining in
the midst of gaining many tempmut until the player actually goes berserk,
by which point it may be too late to do anything about. In my opinion, this
is a generally unsatisfying way to threaten the player; many other badmuts
don't require *proactively* changing your behavior in this manner.
my opinion.

--------------------------------------------------------------------------------
bb9f6eaebf | DracoOmega | 2025-07-05 12:36:30 -0230

Make the message for gaining a permamutation you already have clearer
"Your mutations feel more permanent." is a perpetual source of player
confusion, being asked about time and time again. Instead, since we already
know *which* mutation just became more permanent, say so.

(The phrasing may be slightly dubious in a few cases, but I think that is a
far more minor sin than confusing everyone.)

--------------------------------------------------------------------------------
029931c8c2 | DracoOmega | 2025-07-05 12:36:30 -0230

Remove some confusing unused code
Not used since 1509c8b as far as I can tell.

--------------------------------------------------------------------------------
0e87efbab1 | DracoOmega | 2025-07-05 12:36:30 -0230

Don't offer Sac Will to base draconians
Since they may become purple and it feels weird and bad to just lose out
on your species resistance if this happens (and we don't know what color
they will become, even internally, until XL 7).

This is a similar thing that we do already for frail and robust demonspawn.

--------------------------------------------------------------------------------
ce3637a8a7 | DracoOmega | 2025-07-05 12:36:30 -0230

Improve some mutation conflict code
Code to handle certain types of directly-conflicting mutations was written
in a somewhat opaque fashion, and had special handling for cases that I
think are no longer relevant.

There are now only 2 types of mutation conflict pairs: those which are
'inverse' of each other (like Fraile/Robust) that subtract existing levels
from the other mutation when one is gained, and those which are
fundamentally incompatible (like Low Magic / HP casting) and which will
veto the new mutation unless it is forced.

The distinctions of 'delete one level if forced' vs. 'delete all levels if
forced' do not seem relevant since perma_mutate *already* deletes all
levels of conflicting mutations, and god-gifted normal mutations are
generally random and thus not important specifically what you get.

Besides refactoring, this also changes the conflict category of several
mutations. Elemental resistance and vulnerability mutations are now
considered inverse of each other, rather than incompatible (it is not clear
why this was ever the case). This means it is now possible for, eg, djinn
to tempmut fire vulnerability or white draconians to tempmut cold
vulnerability.

Evolution/devolution and rMut/devolution were previously considered inverse
of each other, but rMut/evolation were incompatible. They are now all
inverse.

--------------------------------------------------------------------------------
0e930c616a | DracoOmega | 2025-07-05 12:36:30 -0230

Make neqoxecs apply temp mutations instead of full ones (hellmonk)
While fear and player dissatisfaction over getting malmutated by neqoxecs
may be outsized compared to the real threat those mutations present, it
demonstrably has an effect on how players even *discuss* Extended (and,
for instance, the percieved importance of death form in Pan). Pan is due
for significant changes this version that may recontextualize a lot of
that anyway, but their use in 3-rune games is arguably awkward: a rare
result from a handful of summoners that is very unlikely to do anything to
you, but with that thin sliver of a chance of feeling very unfun to some
people.

I don't think there's a terrible lot of value in preserving the tiny chance
to get, say, berserkitis in Orc:2 (and I hope to do a series of things in
0.34 to make counterplay against bad mutations feel more agentive and
'push your luck' in general), so let's try making them inflict temporary
mutations instead.

Instead of Malmutate, they now cast Warp Body: a line-of-fire requiring
spell that inflicts a temp mutation and a small amount of damage (1d7).
But if the player already has 3 different tempmuts, they become Vitrified
instead of getting a 4th mutation. This keeps the mutation list from
getting too large to internalize, while also creating a more immediate
threat to endanger the player (especially if multiple neqoxecs are
cooperating together in Pan). Let's see how this feels!

-----------------

Warp Body spell icon by regret-index, combining ontoclasm's Ice Form tile
and NormalPerson7's Malmutate tile.

--------------------------------------------------------------------------------
3921acbb5b | DracoOmega | 2025-07-05 12:36:30 -0230

Refactor vitrify application to use less duplication

--------------------------------------------------------------------------------
03c9043ecf | DracoOmega | 2025-07-05 12:36:26 -0230

Add Zykzyls, a new tier-2 malmutating demon
Intended to fill the malmutate-shaped hole left by cacodemons, these cast
malmutate, enfeeble, and bolt of flesh. (Unlike fleshcrafters, they cannot
awaken this flesh themselves, but another monster planned to be added to
Pan in future will be able to do so, and I think it could be cute for
them to synergize. Also: sometimes the pillar might be usable by a clever
player to break line-of-fire with the zykzyl to avoid malmutate, which I
also think could be cute.)

They spawn naturally in most places Cacodemons currently do (and can be
summoned by Greater Demon), but do not appear in Makhleb's lists for either
the Crucible of Flesh or Infernal Servant.

--------------

Zykzyl tile by regret-index, composited from Poor_Yurik's giant firefly
tile, one of Denzi's large abomination tiles, and roctavian's death ooze
tile.

--------------------------------------------------------------------------------
3cc1a7f2c6 | DracoOmega | 2025-07-05 04:04:38 -0230

Adjust cacodemons to be doom-inflicters
While cacodemons are iconic for their ability to malmutate the player in
extended, this has created some historical dissatisfaction with them being
a possible hostile result from Infernal Servant. While I don't personally
believe the risk of abruptly getting a run-threatening mutation from a
hostile servant is relevantly likely, it's clearly very unpopular and I
don't feel the design is doing anything critical to preserve (unlike some
other unpopular things).

I also wanted a tiered demon to interact with the bane system, and giving
specifically cacodemons 'doom bolt' amuses me.

Doom Bolt replaces Bolt of Devastation in their spell set (approximately
the same damage, but inflicts some doom on hit), Slow replaces Malmutate,
and they gain AF_VULN on their melee (in compensation for losing it on
their bolt, so that their hexes can sometimes remain relevant in extended).

I've also rewriten their description to emphasize this a bit more (and
lean into how doofy (affectionate) their tile looks, in my opinion).

While technically these can still inflict strategic damage on the player
when summoned by Infernal Servant, the odds of landing multiple consecutive
doom bolts is so vastly less than malmutate that I hope it will not provoke
similar feelings from players.

(Note: another tier-2 demon with malmutate will be added to replace the
role cacodemons had in Pan, but will not be on Makhleb's list.)

-------------------

Doom Bolt spell tile by regret-index, combining roctavian's Sublimation of
Blood icon with ontoclasm's lightning rod Thunder Bolt tile. The vfx uses
said Blood icon with ontoclasm's Searing Ray vfx.

--------------------------------------------------------------------------------
1509c9730a | DracoOmega | 2025-07-05 04:04:38 -0230

Adjust the moon troll
With Dazzling Flash being removed as a spell (and Gloom not feeling
thematically appropriate to give the moon troll instead), I've decided to
make a somewhat bigger adjustment to the moon troll instead.

In addition to corrosive bolt, they now also cast LRD (which works well
with their crystal arena and also synergizes with corrosive bolt). The also
natively have Warding (ie: invulnerable from range), which is something we
plan to try on several monsters, including some earlygame threats. Is this
the mysterious power from beyond this world? Perhaps...

(I've also raised their HP a little, which was oddly low, but slightly
lowered their HD and cast rate of corrosive bolt. They now also only spawn
with a single escort instead of two.)

--------------------------------------------------------------------------------
589dcd5faf | DracoOmega | 2025-07-05 04:04:38 -0230

Reflavor Dazzling Flash -> Gloom, refactor blind resistances everywhere
Blindness checks were a little weird/messy, both in-code and in-game. There
were separate functions for can_be_blinded() and can_be_dazzled() - the
latter of which was approximately, but not entirely, 'can be blinded by
light-based effects'. Also, 'blindness immunity' in living monsters
superceded other resists in a way that sometimes felt odd - like Enfeeble
being able to blind unknowable eldritch beings without any recognizable
anatomy but *not* a regular dog. Finally, while b856850 making wands of
light work against exactly the exact same set of creatures as Dazzling
Flash was good from an intuitiveness perspective, it will run into the
weird issue later in 0.34 of light beams from holy creatures being
ineffective against undead, which feels like *very* incorrect flavor.

In an attempt to allow the power of holies to work against undead without
creating other inconsistencies, this commit reflavors Dazzling Flash
entirely, as well as unifying a number of resist checks and trying to lay
out more universal rules about how blindness works on monsters.

actor::res_blind() now has 2 levels, corresponding with the following
rules:
 -Physical means of blinding (darkness, ink, atropa, pies in the
  face...) work only on natural/demonic/holy monsters.
 -Light can additionally blind undead creatures (whether we consider wands
  of light explicitly holy or not, the traditional associations are very
  strong - and will be even moreso when the spelll is cast by a future holy
  monster)
 -Enfeeble and most direct divine powers can work on *anything*,
  overpowering the blind-immune property of dogs, deep trolls, etc.
  Assume that curses like Enfeeble are not affecting just visual senses,
  but perception in general.

Dazzling Flash is now called Gloom, and is Hexes/Necromancy, blinding
through dark instead of light. It is functionally unchanged beyond its
schools - however, being part-Necromancy is arguably a much better fit for
the effect than Fire ever was (...it's just that Fire was a quick fix to it
being Conjurations, which made even less sense....). Outside of flavor
reasons, it can synergize with undead allies to provide defensive cover and
necromancy was always a reasonably-popular option to give stabbers answers
for unstabbable things.

Other gameplay-impacting changes:
 -Wands of light can now blind undead again. This doesn't feel
  unreasonable, given the ammo considerations, and can sometimes provide an
  option that low-level hexes do not.
 -Enfeeble now works on a handful of creatures it did not previously - most
  meaningfully high-level jellies and deep trolls. While this is helpful,
  I suspect it's not by enough to be overly flattening.
 -Divine Shield can no longer blind non-living or unblindable monsters.
  This was not done for balance reasons, but consistency with the rules for
  light-based effects. Possibly the ability or TSO could get a slightly
  upward nudge in some other way, if it's felt warranted.
 -Recite and Ru Retribution can now blind any monster (Zin would even
  previously waste time *trying* to blind monsters it would never work
  against, which was not obvious with how the code was structured.)
 -Cloak of Starlight now can affect undead (which seems fine to me)

Note that non-living *player* species are still fully vulnerable to being
blinded; player non-livingness is... ever more weird and often quite
different than how it works on monsters in general, which is something I
plan to change/clarify in a later commit. Player undead should fully obey
the same rules as monster undead.

(I have also moved dazzling flash code - now gloom - into spl-monench.cc
instead of spl-damage.cc, which was a remnant of when Dazzling Spray was
actually a conjurer spell foremost.)

-------------------

Gloom spell tile by regret-index, composited from Denzi's old Abjuration
icon plus ontoclasm's previous Dazzling Flash tile. The vfx use CC0
particle effects by Kutejnikov.

--------------------------------------------------------------------------------
bdfbcd9d8f | DracoOmega | 2025-07-05 04:04:38 -0230

Remove internal zap power caps
These have served essentially no purpose for some time, as far as I can
tell, aside from being the source of occasional bugs. Monsters always
ignored them, and *spell* power caps supercede them for player usages
(although, if the zap for a spell had a lower cap than the spell, it would
effectively lower the spell power cap as well, which has resulted in bugs
in past).

It looks like the original reason for separating the two was to allow
spells where, at some point in their power curve, their range could be
increased *without* also increasing their power. No such spell has existed
for a very long time, and I cannot imagine we would choose to create
another, so it seems best to remove this.

(Though as always, with a refactor of this nature, it's possible this is
some localized effect I have overlooked, although I've tried to be
thorough.)

--------------------------------------------------------------------------------
daee816b56 | DracoOmega | 2025-07-05 04:04:39 -0230

Fix xv lying about monster wand spell power/effectiveness
Spells cast by wands use a completely different formula to determine their
power than if they were cast as proper spells by the monster themselves,
but xv would treat all wand spells as if they were normal spells. This
resulted in xv underestimating the success chance of hex wands in very low
HD monsters (ie: thinking a kobold zapped paralysis with 4 power instead
of 10), while overestimating them in most others.

--------------------------------------------------------------------------------
6c811b4e73 | DracoOmega | 2025-07-05 04:04:39 -0230

Refactor monster hex power and display somewhat
For many monster hexes, their spellpower was first multiplied by
ENCH_POW_FACTOR (ie: 3), only for this to be divided out of them again in a
different function. Worse, sometimes it wasn't; monster hex success chance
in xv relied on the expectation that monster hexes would divide their power
by 3 in their zaps, but there was no structural obligation to do so and a
few hexes, such as Mindburst or Soul Splinter, used a different factor to
control their power, resulting in xv showing an incorrect success chance.

xv additionally assumed that all monster hex power would be capped at 200,
though most spells do not do this (as monster spells do not in general).
Possibly no monster in a normal game can actually get power that high, but
a few Sprint monsters do exceed that (resulting in xv underestimating their
success chance.)

Finally, a handful of monster hexes did *actually* cap their power at 200,
which I consider inconsistent with monster behavior in general. Eidolons
actually hit this cap with their Cause Fear, meaning that brilliance
unexpectedly would have no effect upon it. I have removed this behavior
from all monster hexes to which it applied (Cause Fear, Mesmerise, Mass
Confusion, Dominate Undead, Doom Howl, Siren Song, and Confusion Gaze). I
think the only other cases in normal play where it may be possible to
exceed the old cap are brilliant glowing orange brains and brilliant
vampire bloodprinces? But who knows what the future might hold?

I've tried to be careful to otherwise preserve current formulas and success
rate, though some oversights may still be possible.

(There are additional problems with xv lying about the success chance of
monster hex wands, which will be addressed in a subsequent commit.)

--------------------------------------------------------------------------------
932a672110 | DracoOmega | 2025-07-05 04:04:39 -0230

Implementation of monster-castable Enfeeble
This works essentially like the player version, now that every debuff it
can apply also functions properly on the player.

Intended to be used for an upcoming monster (though should also function on
player ghosts/illusions).

--------------------------------------------------------------------------------
ed944a3ea8 | DracoOmega | 2025-07-05 04:04:39 -0230

Change Daze effect, use it to fix numerous issues with Gozag's gold aura
Daze was a fairly rarely-used status effect that, in practice, was
basically a slightly worse slow that produced more message spam (skipping
1-in-4 turns at random versus 1-in-3 turns consistently). It was sometimes
used in place of Slow for variety's sake, but wasn't very distinctive.

This commit converts it to a form of crowd-control that deliberately does
*not* enable stabbing opportunities on its own, which is something that
has highly biased many crowd-control-style effects in Crawl in past -
making them primarily valuable as instakill-enablers instead of for any
defensive properties, and forcing us to be conservative with allowing the
player access to them for the same reason.

Daze is now very similar to 'Sleep, if it didn't enable stabs or reduce
defenses' - the monster will pass its turns in place, ignoring noise or
other alerts, until the effect expires or a hostile action is taken against
it. (There is a 1-turn grace period when it is first applied where it
cannot be broken, largely to keep spells like Enfeeble from immediately
breaking their own effects.)

Existing effects that applied daze now do so for a much shorter length of
time. (And I believe there is some future design room opened up for other
effects to apply it in different ways.)

Daze can now also be applied to the player for the same effect, in
anticipation of a future commit that will make use of this.

Finally: since daze's new effect is nearly functionally identical to
ENCH_GOLD_LUST (used by Gozag's golden aura), the latter has been folded
into it and deprecated, which fixes multiple significant issues that it
had. Namely:
 -While ENCH_GOLD_LUST was used for the 'skip the next 1-5 turns' effect,
  the presence or absence of this debuff was literally invisible to the
  player, having neither an icon nor text on examining a monster. The
  effect could only be *inferred* by the monster simultaneously being
  distracted. *However*, the distraction effect (applied alongside
  ENCH_GOLD_LUST by setting the monster's foe to MHITNOT) almost always
  ended prematurely if multiple monsters were around (as it could be
  broken by any noise or many other minor things), making it extremely
  unclear that the monster was still stunned and generally making it look
  like the aura was far less effective than it was.
 -As noted above, the distraction part of this effect was very brittle,
  and also separate of the stunning. As Daze now more thoroughly keeps
  monsters from responding to alerts, using Daze here should keep them
  distracted for the overall duration of the effect.

Aside from the important effect of stopping the UI from flagrantly lying to
the player about what the aura was actually doing, explicitly using Daze
will have the following mechanical effects:
 -It will be marginally easier to attempt distraction stabs with Gozag,
  due to distraction being less brittle (though not to a degree that I
  expect to be significant, since it will still break on the first
  attempt).
 -As a visible debuff, the aura will now trigger poltergeist's Trickster
  effect. This is rather more significant, though hopefully not to a
  problematic degree (it still pales compared to how many debuffs Usk can
  put out in the same span of time, after all).

(Finally, this commit also stops Gozag's aura from affecting monsters on
the other side of glass.)

--------------------------------------------------------------------------------
810186ef39 | DracoOmega | 2025-07-05 04:04:39 -0230

Make Enfeeble apply Diminished Spells to monsters instead of antimagic
The way Enfeeble applied antimagic to monsters was somewhat unintuitive and
poorly-conveyed. Antimagic is a status that cares heavily about being
repeatedly stacked, with its chance of blocking a spell being dependant on
how much duration remains. But Enfeeble, unlike every other player source
of antimagic, DOESN'T stack - each cast will roll the effect duration and
increase it only if the remaining duration is less. This means that
repeatedly casting the spell will, on average, do very little to impair a
monster's spellcasting any more than the first cast did. This isn't really
communicated by the game at all (and directly affects how the spell should
actually be used).

While an argument could be made that antimagic's internal mechanics could
also be changed or communicated better, applying Diminished Spells instead
has a more transparent effect that naturally does not stack (and mirrors
the Weak the spell already applies). And, importantly, is something that
can be done to the player without being direct MP drain, for a pending
monster version of the spell.

--------------------------------------------------------------------------------
298d9142ee | DracoOmega | 2025-07-05 04:04:39 -0230

New status effect: Diminished Spells
This status reduces player spellpower by 50% (after stepdown and capping
power, so that the screen will always display half the power you ordinarily
had, instead of 'some opaquely variable amount less than normal'). On
monsters, it reduces their spell HD by 7 instead (to be more symmetric with
Empowered Spells raising it by 5).

Slated to be used by future monsters as a 'weak, but for spells' sort of
effect (as another avenue for interfering with spellcasting that is less
binary than silence or MP drain).

--------------------------------------------------------------------------------
8504f31491 | DracoOmega | 2025-07-05 04:04:39 -0230

Allow monsters to use Hurl Torchlight
Slated to be given to death knights are part of a pending rework (and maybe
also to another Yred-worshipping demonspawn in Pan, further in the future).

Now that other enemies can use it, I've changed the 'never hurt the user'
clause into a more general 'never hurt Yred worshippers' for more
deliberate symmetry with Cleansing Flame (which is also harmless to players
who worship holy gods) and adjusted the descriptions to state this.

--------------------------------------------------------------------------------
98bede34cb | regret-index | 2025-07-05 04:04:39 -0230

Revise derived-undead skeletons into uncommon Doom-spreading draugr
Monster skeletons have always struggled to differentiate themselves from
zombies in meaningful mechanical capacities beyond their visual flavour
and LRD vulnerability, especially with the removal of player-accessible
skeletons with the current state of Necromancy spells dropping such in
c2cd7fe. Said flavour has a certain innate appeal to vary up a large
number of older vaults and Crypt with various different types of scaling
undead, so revamping it entirely in a fashion that can somewhat preserve
the many different tiles is reasonable; much of the undead available in
the game have some difficulties with variety also matching their placement
across nearly the whole game, so a stronger version is also warranted.

Draugr are a new type of derived undead effectively completely replacing
monster skeletons, though not any of the other skull-slash-skeleton themed
monsters such as skeletal warriors. These Norse cursebound corporeal and
mystic undead have a rather more disjoint appearance than prior skeletons,
mixing gnarled wood into their fragmented skeletal appearance to hopefully
be instantly recognizable as something different (and leaning off of the
literal use of the word as "wood" in the common poetic connection of trees
to humans and draugr to felled trees in Old Norse, and to fit in a little
of their original shapeshifting capacities). They do indeed vary quite
noticeably, leaning on the cursing of Grettir:

 * They have fairly low health versus their HD compared to their previous
   amounts, much lower than zombies, slightly lower than spectrals, a bit
   higher than simulacra, and even less EV than the other undead. In
   exchange, they get +10 AC, both leaning into their LRD weakness and
   other means of ignoring such to promote a more tangible defensive
   profile difference between the two non-elemental derived undead here.

 * They don't lose any speed compared to their base type, like spectrals
   and unlike zombies, simulacra, or old skeletons. While it's a notable
   differentiation piece and flavourful alike to make derived undead worse
   than their base types, much effort was put into making only fast undead
   spawn for earlygame unless otherwise specified, which limits a lot of
   the actual capacity to actually make monsters derived from other
   monsters. (They do keep an inability to use stairs, though.)

 * No matter what type of monster they're based off of, their gnarls of
   envious wood can wield weapons, using the skeletal warrior weapon set
   outside of early vault placements. They use it for exactly one
   Doom-inflicting attack, which scales to their HD rather than the rest
   of their melee capabilities, and still get to attack with their other
   usual melee hits otherwise. This is meant to both help there be an
   option for a game-long source of Doom to make its slower increment
   process reasonably matter all game long, and also to make them notable
   as far more damaging in melee compared to zombies in exchange for their
   relative frailty (while still sturdier than comparative and extremely
   common simulacra.)

Draugr inherit the current skeleton behaviour of mostly being placed by
vaults, in bands, or naturally within Crypt. They are placed at a somewhat
lower count and deeper starting placement than previous skeletons in many
different vaults, due to essentially adding a new relevant enemy in spots
otherwise using two seperate skins for the same generic derived undead.
They have been removed from necromancer bands, but skeletal warrior bands
can have exactly one of their warriors replaced with a draugr to try and
make them a bit less monotonously singular. Aside from their curse-based
flavour spreading Doom a bit further, this should somewhat help with
Crypt's current reputation of being both very uneven and a place one can
work off experience-gated strategic damage, both lifting up some of its
threat and threatening with its own capacity to inflict such.

The draugr implementation was done by DracoOmega, with regret-index both
adjusting their vault usages, cleaning up a fair bit of other skeleton
code, and making new tiles. Said tiles are all derived from the original
skeleton tiles by roctavian, Sastreii, Denzi, Aygtets, and Robsoie.

--------------------------------------------------------------------------------
bbd43c3f96 | DracoOmega | 2025-07-05 01:56:41 -0230

Revive ravens as birds of bad luck
To follow up on drudes being able to inflict Doom in pre-Lair D, ravens are
now an uncommon Lair monster with reasonable melee and the ability to
inflict Doom on a target they have line-of-fire to via Ill-Omen. This is
playing off traditional 'omen of bad luck' associations, as well as
demonstrating an early use of what is planned to be one of Orbs of
Entropy's spells.

They also reprise their role as another option for what can emerge from
shambling mangrove foliage (though much rarer than hornets for now, since
multiple ravens together probably have a non-trivial chance of causing a
bane unless promptly handled).

-----------------------

Ill-Omen spell tile by regret-index, combining roctavian's Sublimation of
Blood icon with Bloax's Corona tile. The raven tile is a slight tweak of
Denzi's raven tile.

--------------------------------------------------------------------------------
5a39f0a0a9 | DracoOmega | 2025-07-05 01:56:41 -0230

Re-add quasits with a new coat of paint
Now called drudes (a Germanic nightmare spirit) to trim off the DnD-isms,
these are once again fast minor demons that inflict strategic damage with
their melee - but now in the form of Doom.

They are part of the Summon Minor Demon list, but now also spawn in D
(since they can actually do something), taking a little weight from white
imps and shadow imps.

The numbers on their AF_DOOM are aimed with the expectation that a single
drude encounter is unlikely to result in a bane, but consecutive ones (if
handled inadequately) could - as well as leaving players more exposed to
the threat of another monster in the following commit.

Credit to regret-index for the edit to the quasit tile.

--------------------------------------------------------------------------------
26b8a9168e | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Mortality
This bane gives a chance on any turn where the player is seriously injured,
but no non-trivial monsters are in sight, to summon hostile reapers to
claim their soul. (With a long cooldown whenever it happens.)

These are always summoned several tiles away from the player (to give them
time to react) and at low XL are also perma-slow (to allow the player to
flee). They always spawn with Warding (to keep 'kite a permaslow reaper for
100 years to hurl stones at it' from ever being a productive strategy.)

This is a bit of a reference to old Necro miscasts/death curses, but also:
the image of having to flee from an implacable but slow reaper when one is
vulnerable is very good flavor, in my opinion.

To prevent the player from having to do manual cleanup on reapers they've
parked or ran away from, clearing the bane itself immediately removes all
reapers created by its effects.

--------------------------------------------------------------------------------
0254f6ebed | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of the Hunted
This causes all hostile monsters summoned by enemies to appear adjacent to
the player instead of their caster (if they would normally appear next to
their caster, at least). It also increases their duration and makes them
able to unerringly track the player, as though they were Marked.

This is a long-duration bane, since it naturally only applies to a smallish
subset of monsters and isn't always relevant even on them, but it can make
summoners pin the player in corridors (especially when trying to flee!) and
make certain attempts to reset the fight less reliable than normal,
hopefully sometimes creating in novel sticky situations.

--------------------------------------------------------------------------------
668f0552a6 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Warding
This bane has a chance of applying a new 'Warding' status effect to groups
of enemies when you first encounter them, making them immune to all damage
from any source which is not currently adjacent to them. This obviously
includes direct damage, but also clouds (if the player that made them is
non-adjacent at the time) and DoT effects. Basically, any damage that would
be attributed to the player does nothing unless the player is adjacent to
them.

This is behavior planned as a passive aspect of some new monsters slated to
be added later in the version, but is debuting here first.

(The bane applies to groups of monsters in sight of each other at a time,
since it turns out that protecting *one* monster out of a group of other
monsters you could shoot at often does nothing - you just shoot the other
ones first and by that point the warded one is probably in melee range
anyway.)

----------------

Warding status icon made by regret-index from Ontoclasm's old amulet of
warding icon.

--------------------------------------------------------------------------------
35fecaca18 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Paradox
This bane gives a small chance when each new monster is spotted for the
first time that it becomes Touched by Paradox, granting it the power to use
Manifold Assault as a natural ability (and a 1/3 chance to blink randomly
each time it does so).

(This status effect is also slated to be used as a buff by a new
Lugonu-themed cultist concept in the near-ish future.)

----------------------------

Paradox status icon made by regret-index, using ontoclasm's Control
Teleport item icon.

--------------------------------------------------------------------------------
d15709afe7 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of the Dilettante
This bane reduces the player's highest weapon skill at the time they gain
the bane by 50%, and reduces their two highest skills among all magical
schools, invocations, and evocations by 25%.

Spreading the penalties around a few different skills is an attempt to make
this feel a little more equitable between different character types
(instead of, say, nuking just your best magic skill heavily and making
multiple key spells uncastable). The magical penalty is less directly
severe than the weapon one for the same reason (and shapeshifting is
excluded because of the possibility of immediately nuking the player's max
HP by a massive amount).

These penalties are pretty heavy, but the hope is that in at least some
cases, players we be able to lean into other skills they may have to make
up the shortfall - pivoting towards secondary magical schools or alternate
weapon types they may already have available.

--------------------------------------------------------------------------------
e0d6eff36e | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Multiplicity
This bane periodically creates 2-3 fragile clones of a monster in the
player's sight. These clones have 1/3rd the health of the original, 1/2 the
spell HD, and do 2/3rd attack damage, but do not expire on their own. The
interval at which they are created is heavily randomized, but it must be
at least 15 turns since the last time it happened (and usually a fair bit
more than that).

Uniques are not eligible to be cloned (I felt it might be too big and
outlier of threat).

---------------

Figment status icon made by regret-index.

--------------------------------------------------------------------------------
3a56b92573 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Succor
This bane heals nearby enemies whenever you kill another enemy - for a
random amount between 1/3 and 1/2 of the slain enemy's max HP.

This is likely only a minor nuissance for some builds, but a significant
impediment for others that rely on AoE damage (or do a bunch of it
incidentally, like axes), asking them to make some temporary changes to
their play patterns while the bane remains.

--------------------------------------------------------------------------------
10526ab61d | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of the Reckless
This sets the player's SH to 0 (and lasts a relatively long time). Since
this obviously does nothing to some players, it will only be given to a
player who currently has non-temporary SH (which does include amulets of
reflection or Qazlal worship). Since it can be 'mitigated' by different
equipment setups, the hope is that the duration will sometimes result in
players temporarily choosing different item sets than they would otherwise
(such as using a two-hander for a while).

It only being given to players who have SH at the time the bane is applied
*technically* makes it possible to game this, but I'm not convinced this
is actually beneficial (such as taking off a shield you're actually using,
while fighting a doom user, so that you... won't have a tiny chance of
losing the SH bonus that you just voluntarily lost at the cost of 5 turns
sitting still and instead get something possibly worse?)

--------------------------------------------------------------------------------
2eebc40b83 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Stumbling
This is essentially anti-acrobat, giving the player -25 EV on turns where
they moved or waited in place. Linking it to a preexisting trigger is
convenient for learnability and making retreating more dangerous than
staying and fighting under some circumstances hopefully prompts some
changes in behavior.

(I'm not entirely happy with the name, but there aren't good antonyms of
acrobat itself to use and I felt like things about 'conspicuousness' would
be assumed to be stealth-related.)

--------------------------------------------------------------------------------
ab6f3de915 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Claustrophobia
Gives -2 slaying for each wall the player is currently adjacent to. This is
pretty harsh in tight corridors, but an insufficiently harsh penalty could
make it too easy not to bother making playstyle changes to compensate. (If
it's too much, I'd probably rather lean towards making it shorter rather
than significantly more generous.)

--------------------------------------------------------------------------------
b4b1104264 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Electrospasm
Following the theme of the last two, this gives a 20% chance to gain -Move
when hit by electrical damage (reduced to 10% with rElec).

Electricity damage is a lot rarer than either fire or cold, but this status
has the potential to be much more distruptive when it happens, so hopefully
it's still likely to be sufficiently relevant.

--------------------------------------------------------------------------------
599f840ba3 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Snow-Blindness
In a similar fashion to Heatstroke, this bane gives a 25% chance to inflict
Blind+Weak on the player when damaged by cold (reduced by rC, down to 6.25%
with rC+++)

(It's possible the Weak feels ancillary to the name, but I felt like the
ranged 1 accuracy penalty was potentially not quite strong enough for
melee-only characters, given the percentage of the time they're likely to
have it. But like all banes, this is provisional and subject to change.)

--------------------------------------------------------------------------------
792dbfd15c | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Heatstroke
The first of a series of 'elemental vulnerability' banes. To try and keep
a clear distinction between badmuts and banes, plain negative resistances
will remaining badmuts only, while banes will tackle a similar flavor of
things in a different manner.

This bane gives the player a 25% chance of becoming Slow for a short while
when damaged by fire. This chance is decreased proportional to how much rF
they have at the time (with rF+++ reducing this to a 6.25% chance).

--------------------------------------------------------------------------------
215ae768d8 | DracoOmega | 2025-07-05 01:56:41 -0230

Add Bane of Lethargy
A simple one to start with - increased move delay by 30% while active.

Slow movement was a badmut people hated to be stuck with back in the days
when it was in the random mutation pool, but I hope the context of being
able to work it off in a moderate length of time will make it a more
interesting penalty to deal with.

--------------------------------------------------------------------------------
833c0d20aa | DracoOmega | 2025-07-05 01:56:41 -0230

Add infrastructure for Doom/Banes
Stat drain was once theoretically intended as a source of medium-term
damage that could cause problems for a player in aggregate, if not within
the scope of a single fight. But in most cases, it didn't actually do much
to most characters, and its effects were inextricably bound to the
grab-bag of minor effects stats provide - something designed for long-term
character differentiation rather than noticeable in small doses.

This is an attempt to introduce a 'replacement' for what that was possibly
trying to accomplish, but in a way that allows for more interesting
effects that are also more foregrounded and singular in what they do.

Banes will be a set of highly varied (and sometimes significant) penalties
are that cured only by gaining a significant amount of XP. They are
primarily gained by accumulating Doom (indicated by a percentage number in
the UI, once the player has any.). Doom does nothing on its own, but when
it reaches 100%, the player receives a random bane and Doom returns to 0.
Doom is *also* only curable through XP gain. The essential idea is that
you can carry doom between fights and if you fail to prevent it from
getting too high, you are given an interesting penalty to have to deal
with for a while. The hope is that this provides an interesting new method
of threatening the player that isn't just 'immediately kill them' - and
dealing with bad situations and eventually coming out on top is often the
source of the most memory moments in Crawl, after all!

Conceptually, these are a little bit similar to temporary mutations, but:
 -Harder to gain and much longer-lasting
 -Allowed to be more severe (since they are *never* permanent and don't
  need to be balanced around that possibility).
 -Work on undead (whose immunity to mutating causes multiple issues with
  some current uses of temp mutations; for example, Qazlal  wrath)

Their set of effects will also try to avoid direct overlap with mutations,
to keep the boundaries more distinct.

--------------------------------------------------------------------------------
bf3c94e042 | DracoOmega | 2025-07-05 01:56:41 -0230

Replace most vault uses of single-spell randbooks with parchments
A couple are preserved for the sake of a title joke.

--------------------------------------------------------------------------------
10e391dd33 | DracoOmega | 2025-07-05 01:56:41 -0230

Give a less buggy apperance to parchments in the item lookup menu
Instead of being a 'Parchment of unknown spell' containing a spell named
'unknown spell', just say they're a 'parchment' containing nothing.

--------------------------------------------------------------------------------
5ccffcbd92 | DracoOmega | 2025-07-05 01:56:41 -0230

Make spellbooks inedible
Randart books were significantly better than normal books in one specific
case: Jiyva. Since spellbooks are now already the 'rare' version of
parchments, let's just make them inedible in general, so as to avoid an
incidental Jiyva nerf.

--------------------------------------------------------------------------------
99ad798d1d | DracoOmega | 2025-07-05 01:56:41 -0230

Don't generate randart books normally
Randart books were already not especially more valuable than non-randart
books and now that regular books are already the 'rare and better' version
of parchments, I don't think there's any need of these being normal floor
items.

Sif and acquirement will still produce them (as will any vaults that wish
to, though some of those will probably also be converted in future).

--------------------------------------------------------------------------------
e40175b4d2 | DracoOmega | 2025-07-05 01:56:41 -0230

Allow placing specific parchments by itemspec
Now 'parchment of scorch' will return that specific parchment, but you can
also specify school or spell level, in a similar fashion to randbooks.
eg: 'parchment disc:fire' will return a parchment containing a random fire
spell (weighted by the level of the parchment generated) and
'parchment slevel:3' will return a parchment containing a random level 3
spell. These can also be combined, if one wants.

--------------------------------------------------------------------------------
20c652507f | DracoOmega | 2025-07-05 01:56:41 -0230

Adjust parchment weight/distribution
Make books a bit more common than previously, reduce total parchment count
for book shops (in part, to make webtiles UI less likely to require
scrolling), allow scroll shops a small chance to sell parchments and
increase their chance in general shops somewhat.

serial_shops now has a 50% chance to place an additional spell shop in
Snake/Shoals and a 100% chance to do so in deeper branches.

Overall, these changes returns the total number of spells found per game to
levels very close to those before parchments.

In addition, I've changed the level weighting function. Compared to stable,
this makes high-level spells less common early and more common in lategame.
Since low-level spells become rarer overall (due to lower weight past
earlygame), I have selectively increased the weight of a handful of utility
spells that often remain highly desirable all game long so that they do
not become much rarer than now. (They are still marginally less common than
stable, by endgame.)

--------------------------------------------------------------------------------
49a8721c84 | DracoOmega | 2025-07-05 01:56:37 -0230

Parchment tiles by regret-index
(Based off of a CC0 asset by idylwilds)

These use a series of composited pieces to give a different appearance to
each parchment based on the schools of its spell and also its spell level:
Each school gets a different colour/sigil, dual-school spells display each
school on one half of the parchment (while 3-school spells just select 2
at random). Level 1-4 spells have the simplest appearance, while 5-7 look
slightly more complex and 8-9 get additional glow around them.

I'm not... entirely happy with how hacky my approach to actually drawing
multiple overlays on a single tile is is, but a lot of our tile rendering
code is byzantine and I'm not sure there is anything nicer that doesn't
involve massive refactoring.

(If you count, you'll see that item tiles in general are composited in at
*least* 4 different ways in different parts of the code that want to
display them...)

(Parchments in console are now also coloured based on the schools of their
spell.)

--------------------------------------------------------------------------------
8e1e0eb00b | hellmonk | 2025-07-05 01:51:10 -0230

account for parchment spells in objstat

--------------------------------------------------------------------------------
b3df94d7d9 | hellmonk | 2025-07-05 01:51:10 -0230

Fix book acquirement
Parchments need to be treated as "not a book" in book_exists to avoid problems
with acquirement gen. I chose this approach because book_exists assumes a
fixed spell set in the places it's used. Might be good to rename the function
for clarity?

--------------------------------------------------------------------------------
3a513b15fd | hellmonk | 2025-07-05 01:51:10 -0230

Add infrastructure for parchments
[Committer's note:

Parchments are new single-spell 'books', intended to replace most normal
spellbook generation in the game. The motivating reasons for this are:
 -The bookshop UI is very bad. There are so many books in Crawl, whose
  contents are not very memorable (and change from version to version!),
  that even experienced players typically have to examine each and every
  one individually to see what spells are on offer.
 -Being forced to make sure that every spell is in exactly 2 spellbooks
  (no more or less), each of which must itself contain only 3-4 different
  spells, creates difficult manual optimization problems that must be
  solved nearly every single time new spells are added or significantly
  changed. Not only is this extra work, but oversights regularly happen
  (like some spells being unintentionally rare because the last shuffle
  resulted in them being in only one book).
 -Making spellbook contents the sole metric used to control spell
  distribution in a game is inflexible. Level-based distribution doesn't
  work very well when high and low-level spells are regularly baked
  together, and books sometimes cannot contain all the spells we'd like
  them to, based on their theme, when that would throw off overall
  frequency of those spells.

All of these things may be greatly improved by making the primary drop be
individual spells (while sometimes-larger spellbooks can be the
rare/artefact-style drops).

It is not intended that these make spells overall rarer (so parchments will
drop much more often than spellbooks did, taking a significant weight out
of stones).]

--------------------------------------------------------------------------------
d61037341e | hellmonk | 2025-07-04 18:09:20 -0500

update credits

--------------------------------------------------------------------------------
93b359f467 | WizardIke | 2025-07-04 17:54:33 -0500

Fix trolls not keeping claws with fungal fisticloak (#4600)
While wearing the fungal fisticloak with gloves on it, trolls would lose
the damage from their claws.

Fixes #4598 and #4631
--------------------------------------------------------------------------------
fe8c342c43 | WizardIke | 2025-07-04 17:26:00 -0500

Fix missing weapon prompts on coglin (#4568)
As a coglin, when attacking with an unrand weapon that should give a
prompt due to its unrand property (e.g. singing from the singing sword
hiting allies) in your primary hand, you would only get a prompt half
the time.

Fixes #4558
--------------------------------------------------------------------------------
d49d735587 | WizardIke | 2025-07-04 17:03:38 -0500

Spend a turn when failing to rampage over sigils (#4614)
When you rampage over a sigil of binding, still spend a turn on the move
even though you only moved one space instead of two due to the -move
from the sigil.
--------------------------------------------------------------------------------
8f30dc1df9 | WizardIke | 2025-07-04 16:45:12 -0500

Fix no warning when rampaging over trap (CrawlOdds) (#4469)
When you rampage over a trap, the trap will be set off, so you should
receive a warning. This was broken in 18e1206

Fixes #4459
--------------------------------------------------------------------------------
eb2233f344 | WizardIke | 2025-07-04 16:43:55 -0500

Fix viewing off level monsters, items, and clouds (#4519)
When viewing a level that you weren't currently on monsters, items, and
clouds sometimes wouldn't show as the place that clears these from in
view tiles was incorrectly countly the area around the player's position
as in view on all levels and the place that redraws in view tiles was
correct.
--------------------------------------------------------------------------------
f3e65b18df | Hellmonk | 2025-07-04 16:41:02 -0500

Fix: make vouchers usable from shopping list (#4612)

--------------------------------------------------------------------------------
4ea9b77528 | WizardIke | 2025-07-04 16:39:57 -0500

Fix krakens not flopping around on land (#4630)
A kraken can move into temporary deep water such as that created by the
summon forest spell and then be left on land when the water reverts
back. This should result in the kraken flopping around on land taking
damage. However, the check for this was checking if the monster's
habitat was HT_WATER and krakens are HT_DEEP_WATER now.
--------------------------------------------------------------------------------
d323970338 | Nicholas Wilson | 2025-07-04 16:23:07 -0500

Make `more_gem_info` show unacquired gems (#4560)
So that people do not forget to pick them up once they have the orb of Zot.
--------------------------------------------------------------------------------
3e33581886 | Peter McLarnan | 2025-07-04 16:08:55 -0500

Remove random items from alpha shops (#4576)
When alphashops selects an excluded item from an item set (e.g. Wand of
Light in a Wand of Acid game), the shop will fill the slot with a random
item instead, which will probably not match the theme.

Filter out excluded items to preserve purity.
--------------------------------------------------------------------------------
8b67606384 | Vaskritaya | 2025-07-04 16:07:46 -0500

Update background descriptions in crawl_manual.rst (#4625)
Updates the descriptions of a few backgrounds to match changes in .33:
- Fighters now have two might potions
- Shapeshifters now have baubles
- warpers now have darts of disjunction, rather than dispersal
--------------------------------------------------------------------------------
11e0a03ac7 | MikeJHeg | 2025-07-04 15:57:07 -0500

Add jinxbite damage to cast description (#4632)

--------------------------------------------------------------------------------
25cbcda860 | hellmonk | 2025-07-02 09:20:41 -0500

add missing breaks

--------------------------------------------------------------------------------
585f80a30c | antimachina | 2025-07-01 12:28:30 -0500

Add several new skill titles (#4601)
Octopode 27 UC from Crusher to Kraken
Octopode/Merfolk 27 Invo Lugonu gets Abyssopelagic
Merfolk 27 Hexes gets Siren
Octopode 27 Invo with an evil god gets Leviathan
Human of Yred 27 Fighting gets Death Knight
Demigod 27 Spellcasting gets Ascendant
Demigod 27 Stealth gets Thief of Divinity

(Octopode Crusher title moved to 2nd highest bracket UC,
and I cut the PR's minotaur title based on dev feedback) - hellmonk
---------

Co-authored-by: Hellmonk <nldehaan91@gmail.com>
--------------------------------------------------------------------------------
0397c6d773 | hellmonk | 2025-07-01 00:01:45 -0500

Minor skill title refactor and two new titles.
Adds functionality for checking intelligence and form in skill titles.
Add the "Herculean" title for high strength max unarmed demigods.
Add the "Pinnacle of Evolution" title for max shapeshifting crabs.

--------------------------------------------------------------------------------
d01ceb9fa2 | Weston Odom | 2025-06-28 16:03:33 -0500

add missing words to section 6-a of the options guide

--------------------------------------------------------------------------------
b288c88578 | Isaac Clancy | 2025-06-24 14:24:39 +0300

Fix old player marker being left on minimap after tele
After a teleport goes off, the old player marker wouldn't be cleared
from their minimap.

--------------------------------------------------------------------------------
732661e595 | DracoOmega | 2025-06-20 17:59:18 -0230

Fix Marionette always casting OTR with 100 power
Virtually no impact at the moment, since ritualists cast it with 96 power
anyway, but it *is* incorrect.

--------------------------------------------------------------------------------
ff597e4505 | DracoOmega | 2025-06-20 17:58:21 -0230

Fix rime yak walls being able to harm things through glass (Acrobat)

--------------------------------------------------------------------------------
ac0a550758 | DracoOmega | 2025-06-20 17:57:44 -0230

Fix bat cloud damage ignoring AC (Acrobat)
I really want to rewrite cloud damage code to be less tangled at some
point....

--------------------------------------------------------------------------------
9ac4a0d9d8 | DracoOmega | 2025-06-20 17:57:07 -0230

Fix fortress talisman randarts being able to get rCorr (Acrobat)

--------------------------------------------------------------------------------
22e6b53a17 | Nikolai Lavsky | 2025-06-18 13:35:31 +0300

docs: remove descriptions and translations of obsolete spells
These spells still appear among search results in the ?/s lookup, even
though the spells themselves are long gone. So let's remove them.

(Also, they were easy to spot, as these three spells were the only ones
with question mark icons.)

--------------------------------------------------------------------------------
f195f0a051 | WizardIke | 2025-06-16 19:34:06 -0500

Fix djinn training skills with targets less (cool 3) (#4514)
When raising all magic skills by 2 skill points, a magic skill with a
target could be capped by the target to only raise by 1 skill point
instead. This would happen when you had magic skills focused and a
non-magic skill enabled but not focused with manual skill training and
could also sometimes happen with automatic training.

Instead we should cap the skill point increase of all magic skills by
which ever magic skill target would be reached first (as this target
will turn off all magic skills).
--------------------------------------------------------------------------------
eab1728e4f | hellmonk | 2025-06-16 19:32:59 -0500

Describe Makhleb mark in ^
Previously used the default message even when a mark had been taken.
TODO: expand this to other capstones?

Closes #3939

--------------------------------------------------------------------------------
2cefda1e52 | WizardIke | 2025-06-16 17:50:02 -0500

Fix a test requiring long to be 64 bit (#4523)
It was trying to store 2,000,000,000,000 in a long which won't work on
32 bit builds or MSVC builds.
--------------------------------------------------------------------------------
493218e9dd | hellmonk | 2025-06-16 16:30:54 -0500

Improve message for unidentified tele with stasis
Unsure if we should do away with the canned stasis message altogether.

Fixes #4564

--------------------------------------------------------------------------------
7cd85c4fe5 | DracoOmega | 2025-06-16 04:45:48 -0230

Fix a crash with melding cursed slot-giving items with Ash
The slots granted by those items would be invisible to Ash, resulting in
the player having more cursed items than slots to put them in, which in
turn could result in having more than 200 piety.

This fixes #4584

--------------------------------------------------------------------------------
f4014ab7dd | NormalPerson7 | 2025-06-16 00:53:15 -0500

Fix the Orb card (#4557)
Ever since 45c4a97, the Orb card has had the same effect at its lowest
power level (power level 0) as at its highest (level 2), specifically a
circle of 4-8 orbs of destruction around the player. At power level 1,
it has always just fired a single orb of destruction. Prior to that
commit, power level 0 instead cast the old version of Iskenderun's
Mystic Blast.

With no suitable pure-conjurations-based replacement for orb of
destruction these days, I have elected to keep the orb of destruction
theme at power level 0. The effects are now:

power level 0: single orb of destruction using
               spell power = card power/10
power level 1: 2-3 orbs of destruction around you using
               spell power = card power/6
power level 2: 4-8 orbs of destruction (same as current) using
               spell power = card power/6

This should very much be a nerf to the Orb card compared to the last
five years, and nobody has complained that the card is too strong in
that time, so I think this should be fine. In any case, it's easy to
fine-tune.

Resolves #4550.
--------------------------------------------------------------------------------
40d046d360 | yrdzrfxndfvh | 2025-06-16 00:13:39 -0500

Make decorative altar monsters neutral (#4579)
2 altar vaults have harmless monsters behind grates or transparent walls
that are supposed to do nothing and die. However, you can dig them out
and for a good chunk of xp if you find them early enough. This pr makes
them neutral so that they don't give xp and there is no incentive to dig
them out (works with sac love too)
--------------------------------------------------------------------------------
171da1f90a | yrdzrfxndfvh | 2025-06-15 23:41:21 -0500

update sculpture garden vault (#4595)
replaces a not so dangerous enemy with a new dangerous one
--------------------------------------------------------------------------------
b00a169baa | wheals | 2025-06-15 11:44:56 +0300

Update MSVC version in INSTALL.md

--------------------------------------------------------------------------------
83bb3df973 | wheals | 2025-06-15 11:44:56 +0300

Fix warning in MSVC build

--------------------------------------------------------------------------------
6224c2db4b | wheals | 2025-06-15 11:44:56 +0300

Naive attempt to upgrade GHA to Windows 2025

--------------------------------------------------------------------------------
63c1f0f1fb | Medrano83 | 2025-06-14 22:23:25 +0200

Android: Fix crash when showing the system keyboard
Pausing the app seems to leave the mTextEdit in a bad state, because it
crashes the game when requesting focus. Recreating the object every time
the keyboard toggle button is pressed showed a reliable behaviour in my
tests, so I'm keeping it simple.

Closes #4093

--------------------------------------------------------------------------------
4abbe06800 | DracoOmega | 2025-06-12 14:20:57 -0230

Fix Frostbite and Condemnation using the wrong speech (ChoosenUndead)
Broken since 008097b (which caused it to do speech lookups including the
plus on the weapon, find nothing, and fall back on generic weapon speec).
Resulted in some jarringly off-flavor lines like
"The +8 trishula "Condemnation" erupts into laughter!"

--------------------------------------------------------------------------------
1953aced1e | regret-index | 2025-06-11 19:11:25 -0230

Fix a lingering chance for Zot:5 to be double-trapped (knorpule3000)
When 19588f4 tried to make it so both main entrances to the Zot:5 vault
can't be cut off by traps, it neglected to use different floor glyphs
than the rest of the vault, and thus accidentally left a very tiny
chance for the vault's completely random trap placement on all floor tiles
afterwards to choose spaces that weren't supposed to have traps. This
should fix such.

--------------------------------------------------------------------------------
8297d12de2 | DracoOmega | 2025-06-11 14:12:08 -0230

Don't crash on the Serpent of Hell trying to breathe (acrobat)
I am not sure what purpose this assert ever served, but since 7473122 the
SoH no longer counts as being multi-headed internally, meaning it will
always be false.

--------------------------------------------------------------------------------
404a8c3a75 | NormalPerson7 | 2025-06-11 10:51:58 -0500

Allow attacking hostile slime shapeshifters under J (#4518)
Jiyva currently doesn't turn slime-shaped shifters neutral, but
would previously prevent attacks on them anyway. This behaviour leaves
the player (temporarily) with a monster they cannot attack.

I have elected to effect this by not banning attacks on hostile slimes.
This may need to be adjusted if there are other ways for hostile slimes
to appear under Jiyva; I am not aware of any.

Fixes #4513.
--------------------------------------------------------------------------------
6c38aea23f | WizardIke | 2025-06-11 09:51:42 -0500

Identify monster equipment when peeking (napthats) (#4500)
When peeking down a staircase in descent mode, monsters would be left
with unidentified wands even though seeing a monster usually identifies
its equipment.

Fixes #4495
--------------------------------------------------------------------------------
f69c87c02d | WizardIke | 2025-06-11 09:39:24 -0500

Don't leak invis monster locations as a fungus (#4607)
When in fungus form and nervous (there is a non confused, non asleep,
non batty etc monster in view), the locations without monster's are
greyed out. This lets you know which locations have invisible monsters
without having see invisible as they aren't greyed out. Instead, grey
out locations without visible monsters only.

This does make it harder for players in fungus form to attack invisible
enemies as they will be told that they cannot move when pressing a
direction key, but this problem already exists for tree form and you can
still attack with ctrl-direction.
--------------------------------------------------------------------------------
0f670162d5 | DracoOmega | 2025-06-10 23:17:28 -0230

Fix oddities with purple ugly thing willpower (cool3)
Purple ugly things would not only retain their heightened willpower when
changing into another color, but each time they changed back to purple,
the bonus willpower that color grants would stack on top of however much
they already had, potentially resulting in absurd number.

--------------------------------------------------------------------------------
b171341b6e | regret-index | 2025-06-09 19:31:50 -0230

Make custom Crypt:$ rewards into a guaranteed expensive shop
As a late, optional branch with fairly less item rewards than Elf and an
uneven spiky difficulty, Crypt is often skipped in a standard 3-rune win,
with only ~39% of such wins in the past four versions making it to the
last floor of Crypt versus ~89% for the same of Elf. This is entirely
reasonable, to a certain degree; variety in a win can also include
skipping a branch entirely, and there's always concerns of indefinite
power spiralling inherent to making it be particularly directly
comparable to the item rewards of other endgame branches. Still, it'd be
nice to have something in particular to brandish with it, as the lategame
continues to slowly inch upwards in threat consistency and various uses
of strategic damage point slowly closer and closer to Crypt.

There is, of course, something non-obvious already present for such. Back
in bad0f68, the last floor of Crypt was always given thematic rewards,
which was further nudged up with a 33% chance for a talisman of death in
afdcd2b and a 31% for a sanguine talisman in 0754acf. This particular
aspect of Crypt is mildly spoilery and mostly parsed entirely as
coincidence due to the reasonable number of different items offered up
as rewards in Crypt, as well as the small chance of a monster picking it
up. To both make Crypt a bit more attractive and more explicit to the
unspoiled, while hopefully not spiralling too hard into overly consistent
rewards, I am taking a new approach to such: putting them all into a shop
that appears on every last floor of Crypt.

Said shop contains much of the previous inventory at a doubled price
mark-up, if with a lower ceiling than the previous high-roll of three free
jewellery randarts + a free vamp weapon or the Necronomicon. It always
contains:
 * One of the three rTorment talismans: sanguine, death, or granite.
 * Two of the following four weapons:
   * a high-tier weapon with vamp brand,
   * a high-tier weapon with pain brand,
   * a top-tier weapon with draining brand and guaranteed enchantment,
   * or a randart staff with a necro enhancer.
 * One ring randart with rN++ or an amulet randart with Regen+.
 * Another jewellery randart or a necromantic unrand.
 * A small spellbook with a level 7-or-higher Necromancy spell.
 * A shadow dragon scales randart, a tower shield with rN+ (with a
   50% chance to be a randart), or an orb randart with a Necro enhancer.

Aside from making the previous rTorment talismans more explicitly visible
for those looking for such before tackling extended, this should also
serve as a reasonable money sink for how there's not very many things
worth buying in the later half of the game without lucky bazaars or Gozag,
in a fashion similiar to the success of the flashiness for
`nicolae_hell_entry_big_baal_hell`. Most of these are reasonably
self-regulating just due to their very late placement- necromancy users
most likely want spells earlier than Crypt:3, weapons usually are
enchanted up much earlier than this also (and there's no weapon type match
guarantee), and there are obvious penalties inherent to the armour. It
should, however, still be plenty flashy enough to hopefully justify
itself.

(The shop also gets a custom tile to hopefully be more obviously more of a
standout, and is compromised of white_noise's shop tile, Denzi's old
statue pedestal, and ontoclasm's deck of dungeons icon. It admittedly
looks a little silly, but shops look somewhat silly in general until one
gets any used to them.)

--------------------------------------------------------------------------------
08eacbdeba | DracoOmega | 2025-06-09 16:58:17 -0230

Give vault-placed derived undead of uniques their proper names
This isn't something that should be typically done, but placing dervied
undead of uniques (which multiple vaults do for the Lernaean Hydra in
particular) resulted in them not getting their own names. ie: if you raised
the Lernaean hydra, you'd get a '27-headed Lernaean hydra zombie', but the
ones placed by the vault would just be called 'a 27-headed hydra zombie'.
This one isn't terribly ambiguous, but if anyone (for some reason) ever
placed a 'norris zombie', you'd just get a 'human zombie' with Norris's
stats. Feels incorrect.

--------------------------------------------------------------------------------
171c64471a | DracoOmega | 2025-06-09 16:58:10 -0230

Remove multiple 'fake' monsters types used only for recolouring
The large/small zombie/skeleton/simulacra distinction was still technically
alive internally, entirely to make larger ones a different colour. It seems
overkill to need entire monster types to do this with (and made the code
slightly more confusing in some places). Theoretically these monster types
existed so players could remap their colours via options (options_guide.txt
even gives examples of doing this!) but as far as I can tell, this probably
hasn't worked in over a decade. It is now, at least, possible to remap
the colour of both sizes simultaneously, as opposed to neither of them.)

--------------------------------------------------------------------------------
44170bca36 | DracoOmega | 2025-06-09 16:58:04 -0230

Make Beogh apostle corpses more obvious in console (gammafunk)
In an attempt to approximate the indicator used in tiles to make it easy
to spot Beogh apostle mid-battle, use the 'unusual' hilight on their tile
(even if a monster is on top of it).

--------------------------------------------------------------------------------
7473122876 | DracoOmega | 2025-06-09 16:57:58 -0230

Simplify Serpent of Hell melee
The Serpent of Hell used a system like hydras to multiply its first attack
but the number of heads it had - but would stictly and always have exactly
3. This technically allowed it to have slightly more than 4 attacks per
round and gave it hydra-like pseudo-cleave against dead enemies, but
neither of these seem terribly relevant (the '5th' attack only did 15
damage!). It also made /?m lookup lie by reporting its damage as if it had
only 1 head.

This feels like needless code complexity for an effect that doesn't
even interact with the head system dynamically, so I've just baked 3 bite
attacks into its attack table in the usual way, and slightly buffed the
remaining aux attacks in compensation for losing one. It should be hard to
even notice this change in a real game.

--------------------------------------------------------------------------------
47e3c77385 | DracoOmega | 2025-06-09 16:57:52 -0230

Allow undead hydra to attack multiple targets
For some reason, undead hydra were not able to perform the 'attack multiple
targets in one round if the first target dies' thing that living hydra do.
Maybe the original argument was that zombies weren't intelligent enough?
But zombies are still perfectly capable of using complex flight muscles or
coiling themselves around enemies to constrict them, so I don't see why
this should be any different (also: I'm not sure anyone even realized this
was a thing in the first place.)

--------------------------------------------------------------------------------
b2eba286c4 | DracoOmega | 2025-06-09 16:57:45 -0230

Rename a function for clarity

--------------------------------------------------------------------------------
cfdb215a35 | DracoOmega | 2025-06-09 16:57:39 -0230

Remove an unused spell description

--------------------------------------------------------------------------------
fbfeffa082 | Isaac Clancy | 2025-06-07 17:27:01 -0500

Don't hide items on decorative floor cells on console (croikle)
Show the item glyth instead of the decorative floor glyph like
we do with regular floors. This way items won't be hidden on garden
patches and other decorative floors.

Fixes #4380

--------------------------------------------------------------------------------
40ba0be6bd | Isaac Clancy | 2025-06-07 17:24:40 -0500

Fix rampage hints showing on levels you aren't on
When examining a level that you weren't on, rampage hints would still
show up leaking information about where you were relative to the map
borders.

--------------------------------------------------------------------------------
1a0b88e553 | Isaac Clancy | 2025-06-07 17:12:23 -0500

Fix the cloud targeter avoiding immune players
When casting a cloud spell such as freezing cloud, the targeter would
try to avoid hitting the player even when they were immune to the cloud.

Fixes #4592

--------------------------------------------------------------------------------
d0004994c2 | Isaac Clancy | 2025-06-07 14:35:32 -0500

Fix agony not saying when you are immune
When examining an enemy with the agony spell as a torment immune
character, it would show the chance of the spell effecting you instead
of saying that you are immune. Change it to say that you are immune for
consistency with the sleep and confusion spells.

--------------------------------------------------------------------------------
34ef1d5bbb | David Lawrence Ramsey | 2025-06-07 14:07:30 -0500

Fix typo.

--------------------------------------------------------------------------------
33411132f3 | regret-index | 2025-06-07 16:05:01 -0230

Make orc apostle monster bot lookup less absurd (rypofalem)
Finding a hundred different orc apostle spellsets and listing all of them
off is, unsurprisingly, a bad idea. They now just get the same "(random)"
listing for spells that pandemonium lords also get.

--------------------------------------------------------------------------------
ab3042f3a1 | gammafunk | 2025-06-07 13:23:26 -0500

Fix case sensitivity of monster lookups
Certain special lookups required lower-case. This doesn't matter much in
practice for DES, but for bot lookups it's inconvenient. Instead make
all monster name lookups case insensitive.

--------------------------------------------------------------------------------
80b48b8532 | regret-index | 2025-06-07 15:35:59 -0230

Relatively brief vault review
Worthy of note:

 * trove_garden's guaranteed jewellery is now always replaced with weapons
   for coglins, since troves aren't supposed to reward useless items.

 * Elf arrival vaults now use less pyromancers (which are too weak and
   seen too early really fulfill the whole arrival vault notion of scaring
   newcomers away from the branch) to instead use more knights and
   archers. They also more frequently lack ORIENT definitions, to help
   more with placing more variable vaults in the branch defined by its
   vaults.

 * The Elf:2 Hall of Blades now consistently forbids being able to dig
   a diagonal hole past the runed doors, instead of only doing this in
   one of its four layouts; while it was nice to tempt players into
   opening the hall up through leaving such an option open, it was
   awkward to try to fit into elven_hall_of_blades_hangedman_alternative,
   and Hellfire Mortar can repeatedly lower and raise the wall for rather
   exploitable behaviour now that it can shove aside flying monsters.

 * Teleport islands in coc_mu have been handled through no_tele_into flags
   on two paths closer to the rune and through more shallow water for one
   reward island on the longer path. This should fix #4570.

--------------------------------------------------------------------------------
a3557c0749 | regret-index | 2025-06-07 15:35:59 -0230

Nerf marauder AF_AIRSTRIKE, bump up their XP again
In another follow-up to 062376b, this continues to try to somewhat nudge
down sphinx marauders mostly by making their designs match more of other
designs in Crawl rather than inherently diminishing their gimmicks. Their
AF_AIRSTRIKE damage is unusually consistent in high damage compared to
most other melee attacks in the game when in particularly open areas,
which have turned out to be rather annoyingly unavoidable around
staircases in Shoals. A chart of the current number range:

Spaces |  0|  1|  2|  3|  4|  5|  6|  7|
----------------------------------------
   Min | 10| 14| 18| 21| 25| 28| 32| 36|
   Max | 15| 19| 23| 27| 31| 35| 39| 43|

The new formula changes the low-end so they can still have the same
highest damage rolls but around a ~20% average damage decrease with a
fairly lower floor, making their damage per turn fairly closer to what
much of the rest of Crawl melee combat makes people expect:

Spaces |  0|  1|  2|  3|  4|  5|  6|  7|
----------------------------------------
   Min |  4|  7|  9| 12| 14| 16| 19| 21|
   Max | 15| 19| 23| 27| 31| 35| 39| 43|

They'll always be somewhat terrifying in the way anything with both a
stun and notable highr-roll damage can be, so we've got a lot of space to
work with for marauder threat levels. They'll probably be more respected
over time anyway, though to help this out, their XP has been bumped up
again (c.f. faf1176) to make it over the threshold for XL 17 characters
seeing them as lethal / red-bordered.

(This does nerf Sphinx Sisters a bit, but the spell has turned out to be
wildly popular and successful for giving high Hexes investment another
spell option for killing monsters besides checking Willpower, so it can
probably reasonably survive some of a nerf to one of its two monsters.)

(As a consequence of these changes, sky beasts would have been nerfed a
bit from their original state, so I've given them one more HD to end up
with a lower floor and higher ceiling for airstrike damage than prior.
Those will probably be fine in the long term as more players get used to
their revised mechanics.)

--------------------------------------------------------------------------------
56df707391 | regret-index | 2025-06-07 15:35:59 -0230

Adjust Xom bazaars + Xom player confusion
 * After having the odds for multiple Xom bazaar trips have been
   continuously lowered in 8b305a4, 5cebcaf, and 6874458, it is now rare
   enough to see another Xom bazaar for much of the game after the first
   that it has become rather awkward how random chance can end up making
   the first Xom bazaar too early for players to afford anything fancy in
   it. As such, I am mildly decreasing the shop prices in the equipment
   shop (the most interesting one) and moving up the absolute minimum of
   gold required from 777 to 900.

 * Since Xom confusing players who can't immediately cure it can be
   substantially more lethal but is still quite iconic for the MuCK
   experience, I am softening the blow while still preserving the effect.
   Players who can't drink potions will be given Might of equal duration
   to the confusion (as a joke in and of itself), and the threshold of
   Xom severity needed to confuse other monsters at the same time is now
   broader (and thus more likely to happen for them).

--------------------------------------------------------------------------------
9222c71edf | regret-index | 2025-06-07 15:35:59 -0230

Fix Xom confusion only targetting peripheral monsters (DracoOmega)
4151254 had an accidental inverted logic check.

--------------------------------------------------------------------------------
ca93610848 | gammafunk | 2025-06-07 12:52:48 -0500

Update changelogs for 0.33.1
(cherry picked from commit 9cb173b281c11a5177f40b8c0662bacd3aac2717)

--------------------------------------------------------------------------------
708931efb8 | regret-index | 2025-06-07 10:17:50 -0230

Don't make the monster bot claim every enemy has reachcleave
Fortunately, this did not actually affect Crawl itself.

--------------------------------------------------------------------------------
b0ba1dcefe | David Lawrence Ramsey | 2025-06-07 01:45:45 -0500

Fix typo.

--------------------------------------------------------------------------------
4ca2a633ef | David Lawrence Ramsey | 2025-06-07 01:45:08 -0500

Fix spelling.

--------------------------------------------------------------------------------
f2480e12d0 | David Lawrence Ramsey | 2025-06-07 01:44:34 -0500

Fix comment typo.

--------------------------------------------------------------------------------
2e754a0f84 | regret-index | 2025-06-07 01:57:13 -0230

Fix the tag upgrade for some new monsters

--------------------------------------------------------------------------------
209a3779e7 | regret-index | 2025-06-07 01:32:59 -0230

Count obsidian bats as properly evil (staticshock)
This adds their demon-summoning attack brand to the evil attack brands
checklist, so the good gods will properly loathe them.

--------------------------------------------------------------------------------
1f4ce136ef | regret-index | 2025-06-07 01:32:59 -0230

New monster: kobold fleshcrafters, mostly for Depths
These new kobolds have a few seperate purposes. Much like chonchon in
cfbbab5, these are meant to add a little more variety to lower-tier
threat encounters in Depths, as is otherwise overflowing with many large
bands of relatively weak threats. They're also meant to further add
distance between V and Depths in much the same way as crawling flesh cages
did in 5fdd244, adding very different types of mages accompanying ugly
thing placements. Finally, they'll add a little more flavour towards
variant constructs and chaotic flesh experiments, with the former more
conspicuous now with Forgecraft, and the latter set-up for an eventual
second monstrosity pay-off in the future.

These kobold fleshcrafters mostly are a little lower than individual hell
knights in threat level, if with less notable resists or haste. They've
experimented a little on themselves to stand out more dramatically by
Depths depth, which includes rPois, 1 HP/10 aut regeneration, and a
poisonous tentacle aux slap. Alongside passable damage with venom or
draining short blades and long blades, they stand out mostly with their
spells:

 * Bolt of Flesh, another experiment in monster summoning conjurations.
   Unlike Flashing Balestra and Phantom Blitz, this irresistable damage
   spell both penetrates its targets (leaving the spawn somewhat far
   away from the player if they were close, but placing it behind them
   to cut off escape in corridor situations) and leaves behind a new type
   of initially-inactive firewood in the form of a new relatively-frail
   remnant piles of flesh.

 * Awaken Flesh, which uses the produced flesh by both making them explode
   in a 3x3 with chaos-brand damage (without any friendly fire, akin to
   mechanist tempering) and arise as a large abomination with all three of
   the abomination buffs (haste, might, and regeneration). Aside from
   actually showing abominations being made as has been absent since the
   removal of Twisted Resurrection in b39fecb, this also is another
   loose experimental targetting arrangement, where destroying or moving
   away from the flesh will be somewhat reasonable, but the chance for it
   to explode and the likelihood it will hit one's allies both are more
   dynamic than other direct explosions.

They spawn naturaly solely in Depths, where they take a decent chunk out
of regular very ugly thing band placement in smaller bands using both
fleshcrafters and both tier of ugly thing. They get some mage and chaos
vault placements across Depths, the Abyss, and some portals; most notably,
they have been deployed in some Swamp vaults to try and trim down the
absurdly large rune vault guest list for a branch that already has the
most variety and most unique monsters of any Lair branch.

(Piles of flesh could probably be used decoratively in the Abyss just
in-and-of-themselves, and another monster with Awaken Flesh and another
means of spawning flesh is planned eventually. They should probably be
fine for now as just bespoke spell components.)

Tile credits:
 * Kobolds: roctavian's older orc high priest tile, an overly non-humanoid
   fleshcrafter submission by LemurRobot, an incomplete draft for showing
   multiple species origins for orcs by Darby, and Sastreii's plain kobold
   tile.
 * Piles of flesh: The same fleshcrafter submission by LemurRobot, and
   roctavian's old macabre mass / crawling corpse tiles.
 * Bolt Of Flesh: Roctavian's Bolt of Cold icon, ontoclasm's Corrosive
   Bolt icon, and Denzi's pulsating lump + generic explosion vfx tiles.
 * Awaken Flesh: Denzi's pulsating lump tile, an old tentacled monstrosity
   tile by Bloax, and Denzi's generic explosion vfx.

--------------------------------------------------------------------------------
0bbdec72d4 | regret-index | 2025-06-07 01:32:59 -0230

New monster: chonchon, avian chaos sorcerers for Depths
These new rare mid-tier Depths monsters, Chilean and Argentinian
transformations for sorcerers having their own heads fly off to wildly
beplague others, have multiple angles of uniting flavour angles. They
offer up a corruptive devotion angle and a shapeshifting angle that
doesn't solely rely on the direct power of demons or the capacity to
become undead. They add one last bird-themed monster to the Depths to try
and smoothen over the weird presence of tengu as mountainous avians in an
underground dungeon, and one more bloodsucker to the Depths to try and
cover a little of how mixed the Depths are in themes between fae, giants,
dragons, as well as the standard undead. They even get a unique nexus of
combinations of several elemental themes- negative energy, chaos, and
wind, all of which have little overlap with other effects.

These batty flying abominations, winged sparkling heads, have stats
roughly comparable to spark wasps if slightly frailer, have a coinflip
chance to be in a band of two or three, and have both a notable spell
and notable melee:

 * They occasionally slowcast Beckoning Gale, the low-damage
   repositioning spell used by hippogriffs since their return in f081bcc.
   While there's a lot of air monsters late in most three-rune games, very
   few of them use wind or even many total spells beyond sharing the same
   Lightning Bolt- this should help with such options and also be a
   dangerous repositioning effects to correspond with other parts of Depths
   (e.g. wyrmholes translocation) plus contrast with Vaults's movement
   constraining focus (e.g. beastmaster bolas and warden sealing).

 * They also have both vampiric and chaos melee. The former is yet
   another attempt at making at least one pip of rN relevant for lategame,
   and the latter tries to find another home for chaos brand as was used
   extremely sparsely before the major revisions of 196b491 made it
   more reasonable to use throughout the game.

Their rather-uncommon placement in Depths mostly takes a bit of weight
from several highly-common lower-tier band placements using monsters
shared in other branches- deep trolls classes, tengu conjurers / warriors,
and very ugly things. They're probably a bit more dangerous than each of
these individually, but in coming in lower numbers overall, they'll
hopefully only mildly increase the threat levels relative to the standard
expectations of getting swarmed by dozens of bulky monsters at once in
Depths. They also get a reasonable initial distribution across vaults
themed around chaotic monsters, air, birds, or unholy mages.

Their tile is composited from griffon and raven tiles by Denzi as well as
CC0 scraps by Surt. Their quote is a little less established a resource
than many other non-fiction sources, but it is more than sufficiently
scholarly, and it is clear non-English mythological names that may sound
silly in English need some nudging towards their origins. (We've
definitely got much stranger or less eloquent fiction quote sources.)

--------------------------------------------------------------------------------
459fa385ca | regret-index | 2025-06-07 01:32:58 -0230

New monster: cognitogaunts, psychic ghouls for Crypt & Abyss & elsewhere
These new anthrophagic undead are meant to fulfill quite a few different
niches. They get in the iconic notion of undead that actually wants to
eat one's brains, without being particularly cliche in the treatment of
such, instead connecting to offhand details about fallen stars in the
descriptions for sun demons and starflowers. They get in more psychic
enemies, a very limited pool mostly comprised of some Brain Bite and
Draining Gaze users plus starcursed masses despite having a whole statue
type dedicated to it. They also can help slightly smoothen the gap
between the weakest enemies and bulkier enemies in Crypt, as well as
help distinguish Abyss a bit more in its use of undead versus other unholy
branches.

These cognitogaunts are `n` glyph monsters- a strange glyph of corporeal
anthrophagic undead that stretches from bog bodies to bloated husks to
ghouls. They're only a bit bulkier than plain deep trolls in their
standard undead stats (and hit a bit less often than those), but they
have have a few notable features:

 * An incredibly high cast rate for Brain Bite- the same 32% chance daevas
   have, to be precise. Daevas have been successful designs for a long
   while for being very bulky and attacking both irresistably and
   consistently for small amounts of damage- while these aren't quite as
   bulky, they can experiment with some of the same mechanical purpose
   in a more common degree.

 * Passable AF_CONFUSE and AF_PAIN melee attacks. These quite rare
   brands should still be straightforward enough to parse for their end
   effects being used elsewhere, but should still make it somewhat
   dangerous even after closing in on the constant smiter foe, also
   contrasting reasonably against the weak melee of brain worms and
   strategic effects of neqoxecs. (We _do_ need to come up with some
   mechanics that can reduce the overall hyper-presence of confusion in
   general, though.)

These replace skeletons in the Abyss, due to future plans for revising
skeletons this version making them somewhat undesirable to attach to
banishment; trading out an often fast or bulkier threat for something
that constantly drains mp and damages at range. They also trim off
chunks of weight from several plainer, weaker Crypt spawns: wraiths and
shadow wraiths (which they're stronger than) as well as ghouls (which
they're weaker than). Their starry origin flavour should help them be
useful for future portal concepts, but for now, they'll just show up
in Necropolis subvaults, slightly reduce the demon overlap across wizlabs,
and help with a long-term goal of not using 30+ guests in the rune vaults
of a branch with the most total monsters for it already.

Their tiles are comprised of coolio's unborn tile and CC0 scraps by Surt.

--------------------------------------------------------------------------------
b316cd9ea5 | regret-index | 2025-06-07 01:32:58 -0230

Buff necromancy monster pain weapons / brands (with other adjustments)
Pain attack flavours and weapons brands are quite sad in monster hands
compared to its useability for players. Not only does the former check AC
despite the weapon brand not caring about such, they also scale their
necromancy skill to only the HD of the monster- something decidedly
non-linear across the game that creeps up much slower versus the health
and defenses of given players. As such, I am doubling the damage of the
flavour and brand in the hands of monsters that know Necromantic spells.
This should not be greatly notable but still less ignorable, and both
marginally increasing the value of rN throughout the game as well as make
it more reasonable to use in any new monsters' hands.

(Of the monsters that get pain brands any reliably, tormentor melee has
almost never mattered, and neither has halazid warlock melee. This does
make Grinder deal fairly more damage, though, so I have significantly
reduced her regular melee damage and slightly lowered her spellcast rate;
while this does mean higher AC characters care more about her melee, it
also further emphasizes that any source of rN will squash her damage
output.)

With a more prominent check of monster necromancy capacities being added,
this also comes a tweak to make various monster-only healing spells no
longer count as Necromancy (and instead spschool::none, like Trog's Hand.)
Since the removal of Regeneration a fair ways back in 7e26dd5, the state
of monster healing as always Necromantic despite regularly being attached
to nameless gods or literal wood spirits has been quite jarring, and the
spells have had a strange `not_evil` tag to even hide such solely for the
sake of random miscast effects since 2bde065. While there's some
flavourful components to having the good gods essentially be enforcing a
monopoly on healing by labelling all other uses of it as necromantic /
evil, such being unstated is rather unintuitive and non-obvious when the
only player spell available for such is literally "vampiric". I have such
both made quite a few monster spells count as not necromancy, and removed
the spell flag as was only used for those.

--------------------------------------------------------------------------------
4f4cae6fa3 | regret-index | 2025-06-07 01:32:58 -0230

Simplify glowing orange brains
Specifically, I'm removing their Brain Bite spell.

Their reworks to give them an aura of empowered spells plus the Cautious
flag in 6fc613a (and to a lesser degree, their higher cast rate in
d00db9e) has succeeded in making them quite notable, to the point they can
afford to lose their least relevant aspect among many (the aforementioned
as well as Shadow Creatures, Cause Fear, and Mass Confusion): it will also
free up the spell for use on another late enemy, where it can be more
easily noticed. (This does make them a bit closer to boggarts as Shadow
Creatures casters used throughout the game, but the aura + cautious flag +
fear already does plenty to differentiate them from the banding
Invisibility-casting blinking monsters.)

--------------------------------------------------------------------------------
f517b90e60 | regret-index | 2025-06-07 01:32:57 -0230

New monster: crawling flesh cages, for V
Base ugly things are passable monsters in Ice Caves, Volcanoes, and
post-Lair D, but deeply struggle to be any relevant past the Lair
branches. The usage of them in V as old holdovers of late D and V both
sharing many monsters is a weird fit both in V's themes and threat level.
While the flavour of wizards leading their otherworldly experiments is
neat (and contrasts well against the very ugly things in Depths), there's
both plenty space to push the very-established concept further and also
use less weak threats for the later parts of the game.

These new crawling flesh cages are `x` glyph monsters, a spider-legged
cage crammed full of fragments of several ugly things. They're lightly
omniresistant and between the two tiers of ugly things outside of decent
AC, though they otherwise stand out for their unique and fancy attack
brand: AF_REACH_CLEAVE_UGLY, which hits all enemies in a two-tile radius
with one of the six ugly thing brands (fire, cold, elec, acid, poison, or
now antimagic). Naturally, this is meant to represent a new alternative
evolution for ugly things, and should be still relatively straightforward
enough to parse otherwise.

(In particular, alongside the mechanist axes / tempering of 8605e2f, this
is also meant to incidentally address some other recent character build
matters; ally-centric gameplay has gotten quite the attention and buffs
between new Summoning / Necromancy / Forgecraft spells, plus god reworks
like Yred's and Dith's providing strong allies or support for such.
Approaches towards such beyond repeating Abjuration everywhere are quite
valuable for giving more texture and variety against such, and bands of
cleaving, reaching monsters to attack large amounts of one's allies at
once past the proving grounds of the first runes should help with that.)

(The history of reach-cleave monsters is also worth comparing here. The
experiment of giving a similiar brand to fire elementals added in d94c9c0
and reverted in 3a05650 was removed mostly due to most uses for fire
elementals (Ignis wrath, pre-Lair pyromancer summons, Azrael band warning
members) definitely not needing a significant buff, even if most
elementals in Elf are awkwardly harmless for the depth otherwise. Other
solutions may come up in time for that case, but there is very little to
worry about regarding plain ugly thing usage in V- those have yet to break
five kills in the thousands of games dying in the branch each version. I
_am_ a little conscientious about non-polearm monsters getting reaching
effects, but we've let orange demons and snapping turtles do this for
quite a few years, so people will most likely adjust.)

The majority of flesh cage deployment has been reserved to the Vaults,
continuing to have said cages spawn as arcanist band members (dropping
from 2-3 to 1-2), taking out another small chunk of harpy weight to rarely
place by themselves, and replacing V:5's very ugly things to further the
distance between V and Depths. A few portals at the same rough depth also
get access to them as would be appropriate (i.e. no metal cages in
Cigotuvi's). There are some arguments to make about their holiness, in a
fashion reminscent of death cobs and profane servitors- for now, I'm
opting for living holiness, an inability to zombify their whole cage, and
LRD-vulnerability; it's a little weird they work with beastmasters but not
peacekeepers or mechanists, but probably it's fine?

Their tiles are comprised of heavy edits to a CC0 cage by ETTiNGRiNDER,
Sastreii's jorogumo tiles, and Denzi's original ugly thing tiles.

--------------------------------------------------------------------------------
f7d21c3a49 | regret-index | 2025-06-07 01:32:57 -0230

Teach purple (very) ugly things af_antimagic
Purple ugly things have been sitting on a very boring degree of mild
extra damage ever since they lost the ability to induce sickness or rot
back in cc162c0. (Hypothetically, they could pick up draining, but aside
from being the wrong colour schema for it, it's also very awkward for
Ely / TSO charming / summoning purposes for a monster to colour change
into evil). Giving them antimagic corresponds with our regular use of
purple-pink for many antimagic monsters as well as many non-elemental
magic item icons, it can make for a little more potential vault flavour
(dead wizards in ransacked labratories under the attacks of freed purple
ugly things?), and it helps out how they've got a very fancy and prominent
gimmick that hasn't actually been any notable past late D despite multiple
upgrades. Let's see how this works out.

(To match this with this and the resists of other ugly things, purple ugly
things get +40 Will and purple very ugly things get +80 Will, as is
now supported by 129f5b2. As the obvious point of comparison, purple
draconians get flat Will bonuses and the player draconian colour has
antimagic in their breath attacks.)

--------------------------------------------------------------------------------
a9c97bacbe | DracoOmega | 2025-06-05 17:21:05 -0230

Fix reaper and friendly protean progenitor speach being buggy
a40bc8c accidentally left out the divider between speech blocks, causing
reapers to lose their unique dialogue, as well as friendly progenitors to
gain it (as well as sometimes just saying 'reaper')

--------------------------------------------------------------------------------
a2f1e0a9fa | DracoOmega | 2025-06-05 17:21:05 -0230

Make Shred code slightly less player-centric
It would damage only enemies hostile to the *player*, paying no mind to the
attitude of the monster actually casting the spell. Currently this is
harmless in normal gameplay, as only the player can make diamond buzzsaws
(and they cannot be charmed), but it had some unintended test interactions.

(And it's totally plausible that Diamond Sawblades will be implemented as
a ghost spell at some point.)

--------------------------------------------------------------------------------
7ead7bf300 | DracoOmega | 2025-06-05 17:21:05 -0230

Fix/improve a test slightly
moncast.lua created its second test statue in an unsafe way - by generating
it at a specific place and then querying what monster is at the location we
tried to create it - but this does *not* guarantee that the monster we find
is actually the test statue. In fact, it is relatively common for monsters
to be summoned by the first test in the statue's intended place, causing it
to spawn elsewhere and some arbitrary sphinx to be selected instead.

The test now dismisses all monsters after each phase to avoid this specific
problem.

But also: many spells would never be cast during this test due to the 'foe'
being friendly to the casting monster. While this very rudimentary testing
approach can certainly never ensure *every* spell is castable (several have
very ideosyncratic conditions), it seemed to me that we could at least
make a non-aligned statue for it to shoot basic damage spells at, which
should improve test coverag.

And since we're actually regularly damaging one of our test statues now,
heal it between spells to avoid it dying (which can trigger asserts).

--------------------------------------------------------------------------------
dc56b02a7e | Isaac Clancy | 2025-06-05 17:21:05 -0230

Fix fair_adjacent_iterator returning duplicate locations
Instead of returning the 8 adjacent locations in a random order, it
would sometimes repeat a location and miss another location.

--------------------------------------------------------------------------------
833c818450 | Nikolai Lavsky | 2025-06-05 18:51:56 +0300

fix: let Revenants cast enkindled spells via the quiver when at 0 MP
Revenants can cast enkindled spells via `z` just fine when low on MP,
but doing so via the quiver is possible only if you have at least 1 MP.

This commit fixes that.

--------------------------------------------------------------------------------
3fe01be7b1 | riverfiend | 2025-06-03 11:55:30 -0500

Update Lugonu's distort weapon description
Ranged weapons can't be used, so we should warn worshippers.
--------------------------------------------------------------------------------
98ae272499 | Hellmonk | 2025-06-02 21:41:49 -0500

fix descent dungeon overview (#4587)
Fix descent dungeon overview to match that mode's structure.
--------------------------------------------------------------------------------
3711a3bbcc | David Lawrence Ramsey | 2025-06-01 10:22:50 -0500

Fix punctuation.

--------------------------------------------------------------------------------
fac9211266 | RypoFalem | 2025-06-01 15:08:26 +0300

docs: update FAQ
Update god recommendations, correct temple god altar depth, and explain
how to view damage rating and delay for weapons.

[Committer's note: replaced backticks with apostrophes for consistency,
tweaked commit title.
Resolves #4585.]

--------------------------------------------------------------------------------
4c0fa254c5 | Nikolai Lavsky | 2025-05-30 15:44:30 +0300

fix: let web-immune players autotravel through webs and nets
Currently, autotravel avoids walking through webs and nets even if
the player is immune to them, which is especially noticeable when
playing a Poltergeist. Also, you can't travel to a selected net/web tile
when it's safe.

This commit fixes that.

--------------------------------------------------------------------------------
ca858a1cb5 | DracoOmega | 2025-05-30 08:12:10 -0230

Fix bat swarm form getting torment immunity (Acrobat)
While it is likely fine from a balance perspective if your cooldown ability
gave you rTorment, bat swarm is already doing quite a lot of different
things and it's not at all clear or expected this would be one of them, so
I am removing it. (It was only ever true by accident).

--------------------------------------------------------------------------------
ee063f470e | DracoOmega | 2025-05-29 20:35:51 -0230

Fix new Frenzy icon not displaying in webtiles (riverfiend)

--------------------------------------------------------------------------------
129f5b2170 | DracoOmega | 2025-05-29 09:52:40 -0230

Allow specifying willpower in ghost_demon struct
So that purple ugly things can get bonus willpower compared to other ugly
thing types (in a future commit), but also allows things like future
spriggan ghosts to have better willpower than other ghosts.

If ghost_demon::willpower is -1, it will be ignored and use the monster's
normal willpower. This is used for loading any player ghost created prior
to this commit and so that no existing monster using ghost_demon *has* to
be edited or specify some amount of willpower.

It is possible that this results in new player ghosts having less willpower
than they would prior to this commit. If that's an issue, we can probably
just give them a percentile bonus at a future date.

--------------------------------------------------------------------------------
1959ad8d6d | DracoOmega | 2025-05-29 09:20:09 -0230

Fix Coglins being able to dual-wield in Fortress Crab form (Darby)
It wasn't melding their unique offhand slot, so you could keep both weapons
*and* lose their need to rev up at the same time!

--------------------------------------------------------------------------------
9b72c3cd0f | DracoOmega | 2025-05-29 09:20:09 -0230

Fix a couple issues with removing Obsidian Axe / Crown of Vainglory
It was impossible to unwield the Obsidian Axe via the local tiles inventory
panel, whether you were mesmerised or not. But it was also possible to get
around the 'can't remove while mesmerised' restriction via w- (which used
a slightly different codepath than dropping it) or even swapping to a
different weapon!

Vainglory likewise could be removed while the effect was active by putting
on a different helmet instead of just removing it.

Now all special 'cannot be removed' checks should apply even in these other
cases.

--------------------------------------------------------------------------------
8207d21d3a | DracoOmega | 2025-05-29 09:20:09 -0230

Fix a rare crash-on-load with timed effects
Since timed effects are scheduled relative to the previous time they were
scheduled (and not the current time), taking a sufficiently slow action
could mean that the next scheduled time was still in the past. If the game
was saved in this state, it would crash on load forever.

A better policy, I think, is to just process the timed effect multiple
times in a single turn, if that much time has passed.

(I also made the assert into an error message, since the game continues to
run just fine in this situation and it's not worth softlocking players
over.)

--------------------------------------------------------------------------------
d898879d29 | DracoOmega | 2025-05-29 09:20:09 -0230

Fix local tiles not using different colors for hp/mp gained since last turn
Both webtiles and console did this, but the logic to use the provided
colour for 'bar fill increased since last draw' just didn't exist for
local tiles. I'm not certain it ever did.

--------------------------------------------------------------------------------
7ecae41dda | hellmonk | 2025-05-28 22:28:43 -0500

Tag some crypt ends with no_descent
Crypt encompasses manually place tomb, and going there in descent crashes.

--------------------------------------------------------------------------------
8da7c38387 | regret-index | 2025-05-28 10:43:11 -0230

Fix reversed Trog wrath logic (sekai, acrobat)
When b6bfbb2 standardized the tension + health check made in 7aa09ac, it
accidentally reversed the logic for said Trog wrath, regularly vexing the
player if they were out of combat and not summoning berserkers in most
situations in combat. As such, I have set it back again to the original
intended functionality.

--------------------------------------------------------------------------------
eedf646592 | regret-index | 2025-05-28 10:43:11 -0230

Add an explicit, discrete frenzied icon
There's been some confusion about frenzied status being its own attitude
behaviour instead of essentially neutrality plus berserk minus doubled HP,
and the three seperate statuses shown (neutral, haste, might) all don't
actually indicate the monster can't cast spells. There's a mild tangled
history behind this, really- 0d004d7 actively decoupled frenzy from its
haste + might effects when only natural monsters could go berserk, while
575fbe4 let demons and holies berserk for more distinctions between
holiness categories and 070a2a6 removed the natural-holiness-only clause.

With no way for monsters to become frenzied without getting the haste and
might effects, I am baking the benefits back into the status and showing
a frenzy status icon + the neutral halo instead of also showing haste or
might. We don't make berserk show both haste and might icons either, after
all, and that one is introduced far earlier to new players. (To help
smoothen over this transition, I'm using a minor save compat tag to remove
haste and might from frenzied monsters for a single save update.) The new
icon combines purge's and ontoclasm's berserk icons.

--------------------------------------------------------------------------------
157474af12 | Nikolai Lavsky | 2025-05-27 11:56:43 +0300

docs: update the server admin list
Closes #4573.

--------------------------------------------------------------------------------
f41e6d5f71 | DracoOmega | 2025-05-27 06:15:24 -0230

Take another stab at fixing a cursor assert
I'd thought 07d09b6332526e would fix the fundamental problem here, but it
merely causes the game to assert over the same problem later, and in
somewhere that seems harder to safely remove (namely save_cursor_pos)

So I am falling back to the alternate idea of just rewinding the cursor so
that it will be in a valid position by the end of this function.

This reverts 07d09b6332526e

--------------------------------------------------------------------------------
1647f1c338 | DracoOmega | 2025-05-27 06:15:24 -0230

Fix an inescapable warning prompt about changing armour (Silken)
If the player tried to drop an equipped slow-swap item while enemies were
in sight, they would be prompted about doing this. But saying 'No' would
only result in the prompt being immediately asked again, and only 'Yes'
could break them out of this loop.

(This was caused by the prompt being in the wrong function and not properly
reporting that the action had been cancelled.)

--------------------------------------------------------------------------------
65ec681d5f | DracoOmega | 2025-05-27 06:15:24 -0230

Fix breaking cursed items without a prompt when leaving slot-granting forms
If, for example, the player entered sphinx form, equipped a barding, and
then cursed it, leaving the form would immediately shatter that barding
without prompt or warning.

Now, if exiting a form would cause any equipped item to be destroyed
(whether due to a curse of Fragile), the game will prevent the player from
doing so until they manually remove the items in question.

--------------------------------------------------------------------------------
2e3b24bea0 | DracoOmega | 2025-05-27 06:15:23 -0230

Improve a few things related to sphinx/serpent form additional slots
Both sphinx and serpent form grant the player additional equipment slots
compared to their default state, but this had some awkwardnesses with
temporary forms. If a sphinx drank !lignification, for instance, their
barding would immediately fall off and need manual re-equipping upon the
potion wearing off. The same was true for hostile polymorph or indeed any
temporary form change.

Now the items should meld under those circumstances instead. Leaving the
form for another talisman form will still remove the items altogether.

--------------------------------------------------------------------------------
9c5c50b1d7 | David Lawrence Ramsey | 2025-05-25 22:53:17 -0500

Fix missing space in Arena Sprint syntax line.
Closes #4575.

--------------------------------------------------------------------------------
03fca52c64 | hellmonk | 2025-05-25 21:52:31 -0500

Give Vehumet's first gift on join (Kab)
Vehumet's always been a bit slow to offer benefits, and there's been debate
over raising the starting level of spell gifts to 2 or 3 so that the first
couple are more likely to be useful (see 602a2ca for one step in this
direction). However, we do try to make most gods useful for a wide variety
of starts, and raising the level of spell gifts might make Vehumet even less
appealing for characters with questionable int or uh, melee deep elves (?).

So instead, let's let Vehumet gift the level 1 spell immediately upon joining
to make it a bit more tempting. The timing of other Vehumet gifts is unchanged
for now. Historically, gifts on joining have been considered "too strong" for
most gods, but access to a single level 1 spell should be fine.

--------------------------------------------------------------------------------
955a7a1ee1 | DracoOmega | 2025-05-23 08:51:49 -0230

Give vampiric thralls bonus stabbing damage vs. sleeping monsters
This is similar reasoning to what prompted doing this for Dith player
shadows: thralls are created most often by stealth stabber builds, but the
tralls themselves can wake up sleeping monsters with their attacks, denying
the player a chance to kill them directly. Now they should do a more
consistent job of killing sleeping monsters rather than waking them up.

--------------------------------------------------------------------------------
586759c184 | DracoOmega | 2025-05-23 07:51:15 -0230

Allow aqua form player shadows to match your reach (not_that_greg)
The code to place the shadow would act like it had extended reach, but it
would then fail to actually attack from where it was.

--------------------------------------------------------------------------------
f7695949cd | DracoOmega | 2025-05-23 07:22:11 -0230

Fix a (harmless) fallthrough in _on_enter_form (hyperactiveChipmunk)
Entering treeform fell through to entering dragon because of a shared
net-escaping effect. But when this intentional fallthrough was first
written, entering dragon form did nothing else. Now it does something
dragon-specific in addition. By coincidence, it is harmless to do this
when entering tree form, but it seems possible to cause a subtle bug if
that ever changes in the future, so I'm changing it now anyway.

--------------------------------------------------------------------------------
6660d7e1d0 | DracoOmega | 2025-05-23 07:18:02 -0230

Don't note that binding sigils are ', temporary' when examined
Since they're always temporary. (And "There is a binding sigil, tempory
here" reads really oddly. We don't bother to say 'there is a cloud of
steam, tempory here', after all.)

--------------------------------------------------------------------------------
6743e71f2f | DracoOmega | 2025-05-23 07:16:42 -0230

Improve message when a player steps on a binding sigil with slick slippers
You're not immune because of 'high momentum' but something else entirely.

--------------------------------------------------------------------------------
14f866c22a | DracoOmega | 2025-05-23 07:15:48 -0230

Let slick slippers prevent being bound by bolases (alenari)

--------------------------------------------------------------------------------
98d79c09ca | DracoOmega | 2025-05-23 06:43:26 -0230

Interrupt delays on being dragged (Flugkiller)
In rare situations this could even result in very unexpected outcomes, like
taking the stairs to the next floor of a Zig, being dragged onto the exit
portal mid-delay, and then leaving the Zig entirely instead.

--------------------------------------------------------------------------------
87d53aec9a | DracoOmega | 2025-05-23 06:42:43 -0230

Don't allow orbrun spawns inside Okawaru's arena (Flugkiller)
While hilarious, I am sure Okawaru would not welcome the intrusion into
their sacred 1-on-1 combat (also: it's a very unexpected result, imo)

--------------------------------------------------------------------------------
07d09b6332 | DracoOmega | 2025-05-23 06:35:10 -0230

Remove an unhelpful assert
Since dc679cd fixed an issue that caused status lights to sometimes not
draw fully, it is now possible for the cursor to end up just *outside* the
status panel at the end of printing (if the last character printed filled
the space completely), leading to this assert.

While it's possible to deliberately rewind the cursor afterward to avoid
this, it's not clear to me that this assert is even helpful. Stat printing
is extremely stateful and the assert does not record any of the state that
may have led to the error, making it very cryptic to debug most of the
time. And even in the worst case, the cursor being in the wrong place here
would merely some visible display error that would likely be far easier to
diagnose than a crash. So I am making an executive decision to just remove
this assert altogether.

--------------------------------------------------------------------------------
d31ae3d776 | DracoOmega | 2025-05-23 06:18:24 -0230

Fix a few resist-related bugs and refactor
There are a handful of cases where multiple beam types all check the same
resist but have different degrees of resistability/secondary effects. eg:
BEAM_THUNDER and BEAM_STUN_BOLT are both intended to have the same base
properties as BEAM_ELECTRICITY and just be 50%-irresistable / cause
ministun, respectively.

However, this meant that numerous places in code that wanted to behave a
certain way for BEAM_ELECTRICITY-like beams needed to cover all variants
individually and sometimes did not.

Most important manifestation: chain lightning was less resistable than
expected, since BEAM_THUNDER treated rElec as though it gave 50% resistance
instead of 66% (meaning that rElec reduced its damage by 25% instead of the
expected 33%). But there were several other problems I found, such as:
 -Stunning Bolt and Mercury Arrow being similarly less resistable than
  expected
 -Stunning Bolt checking full AC instead of 1/2 as electricity normally
  does
 -Stunning Bolt not procing Qazlal's adaptive rElec
 -A lot of 'physical' spell projectiles not procing Qazlal's adaptive AC

There is now a single function to map most variant beam types onto a
'canonical' representation of that element: get_beam_resist_type. This
should be used in most cases that we want any standard element-based
behavior, to reduce the number of different places that need to be
remembered if any new variant beam types are added in future.

--------------------------------------------------------------------------------
935ca2e64b | DracoOmega | 2025-05-22 04:13:18 -0230

Fix vampire form missing its rTorment (acrobat)
Astoundingly, one of the headlining features of vampire form (which shows
up on the A screen also) just... wasn't implemented. I'm not sure how this
happened. I'd like to blame rebasing before merge, but I suspect I just
*thought* I did it.

--------------------------------------------------------------------------------
4fdbbba251 | DracoOmega | 2025-05-22 03:59:00 -0230

Fix being unable to Light the Black Torch in a 2nd Necropolis (monkooky)
Since each instance of a portal vault has the same level ID, if the player
lit the torch in one Necropolis, they would be unable to use it in future
ones.

Pan already used a solution to the same problem (since each Pan floor is
also 'the same' floor, so include 'portal vaults in general' here (as a
little future-proofing)

Also fix a very marginal bug with the original implementation, which could
result in a player being unable to light the torch in Pan if they lit it
there, abandoned Yred while still in Pan, left Pan, and then rejoined Yred
afterward. This will probably never happen, but it's better to be correct.

--------------------------------------------------------------------------------
04553db0ad | regret-index | 2025-05-21 15:34:31 -0230

Okawaru and Jiyva god wrath adjustments
While it'd be tidier to fit all of these wrath changes all into one commit,
there's inherently so many separate complicated components here for
rarely-seen effects that it is almost certainly fine to make these changes
in a piecemeal fashion.

 * Jiyva wrath now just immediately removes all of the Jiyva-unique
   mutations on abandonment, rather than having a coinflip chance
   on top of individual wrath effects to remove said mutations. This
   should be reasonably parseable as similiar to Ashenzari's own
   curse-shattering effect, and simplifies regular wrath actions as are
   usually the most notable complexities of the current wrath system.

 * Oka wrath summons have been rescaled to have a somewhat gentler curve
   with a higher ceiling and more variety. While it's good for gifting
   gods to have very vicious wraths compared to other gods, it's quite
   absurd to the point of being completely unviable to throw impalers
   and javelineers at xl 7, titans at xl 13, and not have any further
   scaling than various giants past xl 21. This adds a variety of other
   non-unholy monsters that focus on melee attacks and not much for
   summons or debuffs, and should scale on nearly every level to be
   a little less unfathomable early as well as a fair bit more reliably
   scary when switched off for extended.

--------------------------------------------------------------------------------
6f594d49c9 | regret-index | 2025-05-21 15:34:31 -0230

Tweak monster draconian Willpower stats
While it's a legitimately interesting role for draconians in Zot to have
few resists in a branch with iconic heavily-resistant monsters, in terms
of extracting some last few bits of value from a variety of lower level
spells and various consumables, their low Will compared to monsters in the
branches immediately before them is somewhat excessively exploitable
since wands of charming / paralysis are reasonably available in large
quantities by Zot.

As such, I am giving +20 Will to all draconian classes- enough that Hexes
casters shouldn't really notice it, but more than minimal Evocations skill
will be necessary for Hexes wands to have much effect.

(Meanwhile, I am reducing the base Willpower of monster purple draconians
by 20, since player draconians had a notable drop in total Willpower and
their 120 Will is still going to be noticeably out of reach for most
characters without Sphinx Form, Guile, or spending scrolls of
vulnerability. It also lets draconian shifters otherwise have keep their
previous Will numbers.)

--------------------------------------------------------------------------------
4c23f74a62 | gammafunk | 2025-05-20 21:27:39 -0500

Tweak the layout of a Lair ending
When I reworked due_jungle_book to give it the current undead theme, an
obsidian statue was added to guard a special necromancy-themed loot
item. And area in an adjacent chamber was made transparent to try to
reveal the statue before it would be reach via autoexplore. This is
important to avoid an autoexplore trap into a mesmerizing monster that
few players will be able to resist at this depth. However the revealed
area both wasn't perfect and was visually awkward. This commit removes
the transparent walls from the adjacent chamber and tweaks the forested
area near the statue so that the statue is always revealed regardless of
movement approach in a way where it can't affect the player.

Also the player now must actually step into a square where they can be
affected by the statue to reveal the loot item. Most of the loot in the
other chambers of this vault is revealed from relative safety, so it's
nice to have some variation by requiring a potentially dangerous action
in order to see the most thematic loot item.

--------------------------------------------------------------------------------
72f3ce39ca | regret-index | 2025-05-20 18:29:09 -0230

Fix a rare potential teleport closet in a sewer (Smoked_Turtle_salad)

--------------------------------------------------------------------------------
e4df0b7357 | regret-index | 2025-05-20 13:29:43 -0230

Make Vehumet gifts evaluate Conj / Alch skill too
With the many new mid-level and high-level spells of 0.31 to 0.33, there
are now both options to climb elemental schools without Conjurations skill
as a main focus. There's also a reasonable (if limited) capacity to climb
with Alchemy as one's main focus. Vehumet not being knowledgeable about
either has worked out somewhat awkwardly with how many more total spells
criss-crossing the spell schools has worked out; as such, this is an
experimental shift to have Vehumet also evaluate those skills in terms of
the suitability of a spell for one's gifts.

(If it turns out it's too easy to do an e.g. Alchemy character with
Vehumet, we can do some more complicated spell evaluation after more
testing.)

--------------------------------------------------------------------------------
c1556f0ead | regret-index | 2025-05-20 13:02:28 -0230

Buff the Faerie dragon scales
Faerie dragon scales being a mildly-better acid dragon scales randart in
Depths is not very much of an incentive nor a distinguishing nature to it
outside of the 5% chances for slightly unique properties like Clarity,
+MP, or +HP. Its location is simply astonishingly late for characters to
change their body armour versus having enchanted other body armour options
up to that point. While power spiral concerns are always a bit of a
conscientious issue, the last adjustment to this was in b633e9c nearly
nine years ago, and we can afford another tweak to it after that timespan.

To make the fae stand out more compared to being a slightly modified
randart, it now always comes with a Hexes enhancer (suiting the
Enchantress it's found on, and not easily available with current enhancer
options), the aforementioned properties have been pushed to 10% chances
(nudged up to provide MP or HP in the range randart jewellery currently
gets for MP since 8d0d2ce), a new 10% chance for an invokable Invisibility
property, and a new enchantment range of +2 to +8 instead of +0 to +8.

--------------------------------------------------------------------------------
1162ebf0da | David Lawrence Ramsey | 2025-05-19 11:06:10 -0500

Make shaggy fur mut check more generic.
Check for innate shaggy fur instead of hardcoding species. Since both
felids and trolls have it innately at level 1, the result is the same.

--------------------------------------------------------------------------------
38d898e249 | Nikolai Lavsky | 2025-05-19 16:41:51 +0300

fix: don't print efficient metabolism-related messages for everyone
A followup to f3e82eb1549f. The duration of potions was increased only
if you had the mutation, but the "Your mutated metabolism churns"
messages were printed for everyone when drinking potions.

--------------------------------------------------------------------------------
eca827dbe4 | Nikolai Lavsky | 2025-05-19 13:42:28 +0300

task: remove the trunk 0.33 tournament reminder
This reverts commit 459acda4a36fd86f745f56dc4cf7e4d8a2cd0748.

--------------------------------------------------------------------------------
5619b36495 | yrdzrfxndfvh | 2025-05-19 07:48:16 -0230

Adjust revenant dummy monster
Changes the stats of revenant monsters to be more in line with other dummy
monsters. Also changes their cold resist to match
 the player default (rC+)

[Committer's notes: Very slightly nudged up their unarmed damage to
reflect their claws 1, to compare better to Felid and Troll monsters.
Closes #4545.]

--------------------------------------------------------------------------------
8ba686bdd4 | regret-index | 2025-05-19 07:45:20 -0230

Fix a wrath fallthrough

--------------------------------------------------------------------------------
86695d10ed | regret-index | 2025-05-19 07:45:20 -0230

Adjustments to a few somewhat recent tiles
 * The Magnetised status now properly has a unique icon instead of sharing
   one with Sastreii's dimensional bullseye icon, derived from said icon.

 * With potential similiar future monsters spells coming up, I ended up
   revising several gaze spell icons and the Summon Mushrooms spell icon.
   The former nearly all use their previous tile sources (aside from
   Vitrifying Gaze now consistently using the same Divination eye as other
   gaze tiles), while the latter uses a CC0 mushroom by Jetrel.

--------------------------------------------------------------------------------
d9f46fb735 | regret-index | 2025-05-19 07:45:20 -0230

Don't draw animal skins on starting screen Dr / Co
Draconians haven't been able to wear body armour since c28432e, so we
might as well be accurate on the starting screen for such. Coglins have
their animal skin removed so they can show off the exosuit they're in,
in the same fashion Mummies don't use such so they can show off their
bandages.

--------------------------------------------------------------------------------
592ff4ed9a | David Lawrence Ramsey | 2025-05-18 15:22:36 -0500

Fix spelling.

--------------------------------------------------------------------------------
b6bfbb2b53 | regret-index | 2025-05-18 17:27:24 -0230

Somewhat standardize and simplify a few more god wraths
As elaborated upon with the last god wrath change of 7aa09ac, many god
wraths are antiquated designs that are easily rested out. With the
improvements to tension tracking, I'm deploying a standardized tension
check (plus a sanity clause of an HP check) to reduce the effectiveness
of resting out a variety of god effects, trying to preserve distinct
effect flavour + reducing waiting out wraths + focusing long lists
towards a simpler or more concentrated pool in general.

 * Fedhas wrath no longer deploys direct damage (either boringly
   irrelevant or extremely dissatisfying in its results) via spells or
   giant spore and instead checks tension to apply Fungus / Tree
   transformations (both highly appropriate and relatively rare in hostile
   circumstances). The oklob spawning effect also no longer preserves the
   very old and very complicated Reproduction code to instead just place
   fuller rings of briars around the player alongside oklobs in a loose
   2-to-5 space radius around the player.

 * Jiyva wrath no longer transforms the player; Jiyva's wrath is already
   so heavily focused on strategic penalties that such wrath doesn't really
   need transformations distinctly not very slimy in form.

 * Kikubaaqudgha wrath no longer randomly torments (as is no longer Kiku's
   big invocation nor much easy to make satisfyingly relevant) and no
   longer checks rN to be thus fully resistable. The wrath now just uses
   the new tension check to either apply a short xl-scaled Sign of Ruin
   effect or drain for somewhat less than previously.

 * All gods besides the good gods, instead of currently just Lugonu, no
   longer permit rejoining them if one is already under their wrath. This
   prevents some strange exploits like abandoning Jiyva to kill TRJ and
   grab Slime:$ rewards without active item-eating slimes, then rejoining
   Jiyva who is otherwise kept alive during wrath. (The good gods already
   have weird wrath rules as is, so this shouldn't be too much of an
   outlier, and they'd never permit rejoining under such rules without
   deliberately joining a forbidden god to actively get their wrath.)

This is only a small part of future total god wrath plans- with more
passive effects, some reliance on potential new mechanics, more tension
and space checks to avoid resting out wrath, and more- but it deals with
a handful of more obviously exploitable matters, if nothing else.

--------------------------------------------------------------------------------
4e6b4df7a2 | regret-index | 2025-05-18 17:27:24 -0230

First new vault review for 0.34
Highlights:

 * The master elementalist now spawns with two pieces of Will+ equipment
   regardless of whether or not the Elemental Staff has spawned already.
   It also now spawns in arenasprint.

 * With the winrate of this tournament looking a little lower than the
   past tournament, I've taken another tour over some outlier branch
   entry vaults, branch end vaults, and portal layouts to nerf the
   most dangerous of each. (Most obviously out of any of these includes
   putting the moths of wrath in pre-Lair Necropolis ghost vaults
   behind grates instead of letting them roam freely, since they're
   reasonably strong as regular attacking enemies at that depth).

 * To continue to stab at the perpetual concerns of killhole tactics or
   shouting luring, and the new concern of Hellfire Mortar crushing
   single-tile corridor-entrance vaults for lategame branches with few
   dangerous flying enemies, I've taken some more steps towards making
   more Elf:3 vaults contain longer, wider empty paths out of the main
   enemy chamber that are also frequently split. This might require some
   more monitoring in the future in terms of death statistics (maybe
   with some mild edits for a little less elves on average?), but I'd
   like to see how the initial tactics shift first.

 * Negative energy ziggurat sets now use laughing skulls, slightly more
   shadow dragons, and halazid warlocks, while no longer using phantasmal
   warriors and less total eidola. This is meant to hue it a bit closer
   towards the negative energy theme instead of being a repeat of other
   undead branch floor themes, and help its position as being notable
   through player ghosts through getting in a player ghost summoner.

 * A new very rare summoners ziggurat set has been added to contrast
   against the conjurers set. While it's not the most lethal for megazig
   divers, few sets can, and it's nice to have a bit more variety with a
   mechanically silly theme that isn't so hard tied to one branch (with
   brains and halazid warlocks summoning corrupters and nekomata).

--------------------------------------------------------------------------------
fd459eca0c | regret-index | 2025-05-18 17:27:23 -0230

Nudge reaper flavour away from being skeletal
Reapers looking like cloaked skeletons yet being tiered demons is somewhat
awkward for several category checks; a reaper looking undead yet not
counting as undead is somewhat understandable (the Grim Reaper isn't
literally someone's random skeleton!) if rife for confusion, but a
skeletal figure not being deconstructible is against what most people
would expect. To address both fronts and help them come off as more
obviously non-brittle demons, I've given them a new floating tile by
mixing together their current tile by CanofWorms with ontoclasm's
lorocyproca tile and making them less bone-white; for bonus points, this
also adds another main-weapon-less tile for the sake of Tukima's and
tendrils. (This new tile ends up making them look like they're flying,
so they've also gained flight and a corresponding further small nerf to
their scythes in ice caves.)

--------------------------------------------------------------------------------
a31325d14c | regret-index | 2025-05-18 17:27:23 -0230

Nudge some more uniques depths around
With Crypt generally considered deeper than Vaults or Depths for the sake
of uniques placement, I am trimming out some underperforming uniques with
plenty of earlier placements from appearing in as many floors of it; Bai
Suzhen, Saint Roka, and Xtahua. (They've all been buffed recently, but
they're still not exactly about to challenge the deepest uniques like
Mennas, Vv, and Zenata any time soon.)

--------------------------------------------------------------------------------
062376b3e0 | regret-index | 2025-05-18 17:27:23 -0230

Increase stun immunity duration post-Vex
A variety of people have been severely wrecked by sphinx marauders since
their addition, and while this has been good for punishing those ignoring
their central gimmicks + raising the value of Will in Shoals as
differentiates it from Swamp (though people still undervalue it versus
fenstriders, strangely enough). It is, however, admittedly quite
frustrating to foreground more stuns in the game, especially on a monster
that does some of the most reliable high damage in the game through
AF_AIRSTRIKE.

The stun immunity duration granted after Vex was set to the same duration
as the one after Paralysis (1 to 3 turns), and to reduce the rather severe
low-rolls a player could experience in being Vexed again immediately
afterwards (and to match how it's longer than Paralysis itself), I am
instead setting it to the same duration granted after Sleep (3 to 5 turns).
This should still leave marauders plenty dangerous overall with the first
Vex plus their AF_AIRSTRIKE damage, but prevent the worst scenarios of
being vexed, drinking enlightenment or putting on a Will+ ring, and then
being vexed again while the sphinx is much closer to result in a rapid
death for frailer characters.

(This also technically affects Dominate Undead for undead player
characters, but the spell's already quite nasty as is even in its current
limited usage due to the full screen effect, and bloodprinces have Grave
Claw to terrify the non-poltergeists with.)

--------------------------------------------------------------------------------
3b6f53f83a | regret-index | 2025-05-18 17:27:23 -0230

Adjust a few more positive mutations
 * With the six new far-more-interesting and reasonably strong positive
   mutations added to the pool, I'm removing the capacity to mutate Fur on
   all species that don't innately have some levels of it (so, everybody
   but Felids and Trolls). We removed a lot of scales from non-demonspawn
   as part of simplifications in 66c8afc, and Fur was always very similiar
   to them (takes to level 3 to grant a resist, and otherwise only gives
   tiny amounts of AC) aside from not having the mutually-exlusive system.
   With it being very rare for non-Jiyva / demonspawn to see a third level
   of a mutation and it being very dull + weaker versus the newer mutations
   otherwise, it should be fine to diminish said mutation's prevalence.

 * With far more directly beneficial options of increases to offenses or
   defenses available in the newer mutations, the Passive Mapping / Sense
   Surroundings mutation is a fairly indirect and unimpressive benefit.
   When combined with the inconsistency in getting 3 levels of mutations,
   and their removal from being passives built into any present species,
   I am thus compressing the mutation to two levels, to match the
   compression of other difficult-to-quantify mutations back in b963882,
   0d03ebd, and 7753eea. (The first level provides as much as two levels
   would previously grant, and the second level grants as much as a
   previously-unavailable fourth one would. It's admittedly pretty
   dramatic and mighr encourage annoying behaviour to examine out of LOS
   like Ashenzari did before 3015b45, but this was already present
   behaviour before, and it hopefully should be fine mostly in the mutation
   being much rarer than the god.)

--------------------------------------------------------------------------------
27dfbaf0c5 | regret-index | 2025-05-18 17:27:23 -0230

New mutation: gain mild HP & mp when killing poisoned / drained foes
This new positive mutation is meant to try and entice characters towards
different skill investments and less popular weapon choices, without
directly looking at aptitudes, damage output, or spellpower and spell
success itself. Said mutation, called "Feed Off Suffering" in-game, has
two levels dependent on the HD of the monster killed:

 * level 1: 50% chance to heal (1 to 1 + (HD / 3)) HP and MP
 * level 2: 75% chance to heal (2 to 2 + (HD / 3)) HP and MP

This uncommon mutation doesn't require killing via poison or draining
damage directly, just that they have the status at the time of their death.
It's tuned lower than TSO, Makhleb, or Vehumet, since these are more
committal god choices, but unlike any of those three it works with ally
kills as well as player kills so walking alembics and channeled spectres
both can assist players. The conditions have some reasonably different if
usefully overlapping means to access it, including:

 * poison / draining / chaos / reaping weapon brands (which mostly aren't
   very popular and can get a rare nudge),
 * Jinxbite and Death Channel (relatively solid spells that can work for
   caster hybrids),
 * many Alchemy spells (which might rarely interestingly tempt purer
   mages to shift their spells skills towards the school),
 * and a small portion of choosable god allies, like ancestors, apostles,
   and bound souls (all of which can contribute to having even more
   choice criteria).

It'll inevitably have some fall-off over the course of the game as more
unholy and non-living monsters appear near the end of it, but it's safer
for an otherwise potentially strong mutation like this to have its
weakpoints. Whether or not this succeeds at being useful or it gets
ignored on the regular will have to be seen over a long span of time,
though there are many knobs to tweak on it if necessary.

The icon is made from Sastreii's fangs icons, CanofWorms' poison
resistance and mana mutation icons, plus PleasingFungus's drain status
effect icon.

--------------------------------------------------------------------------------
a229ff6502 | regret-index | 2025-05-18 17:27:09 -0230

New mutation: +Dam & +EV scaled to non-innate mutation count
This new very rare positive mutation, "protean grace" in-game, is meant
to fufill the aforementioned notion of more high-roll positive mutations
in another focused fashion; it makes both weaker positive mutation and
less-awful negative mutations still come with some upside, and tempt the
mildly mutated to drink another potion of mutation to amplify the bonus.
(It is extremely regulated currently by how potions of mutation first
remove 2 or 3 mutations and then give 1 to 4 mutations with a mutations/15
chance to remove a mutation instead; it's rather unlikely without other
mutations sources to get above 5 mutations in practice, and fairly more
likely to stay around 2 or 3.) The bonuses are chosen for both being
minimally available from mutations (Slay+ only via one demonspawn
mutation, +EV only from one demonspawn and one Jivya mutation) as well
as being useful to most characters to offset the other conditions present.

In terms of what they track, species traits, form attributes, and Ru
sacrifices all are not counted, but demonspawn mutations, Jiyva or Xom
gifts, and Makhleb destruction flavours + Marks are counted. Both good
mutations and bad mutations alike are counted, and it tracks discrete
mutations rather than mutation levels; having Protean Grace, Robust 2
and Claws 3 only grants three slaying / evasion. To avoid this being
disproportionately excessive with demonspawn, Jivya, or wretched star
sightings, this has a soft cap of halved benefits above 7 non-innate
mutations.

This mutation is fairly more risky than the other positive mutations
added recently or currently, but the cap and stat bonuses both can be
adjusted if it needed. If nothing else, it'll at least be quite exciting,
especially for demonspawn and Makhleb worshippers.

(The icon is composited together with a CC0 sword by Jetrel, Ontoclasm's
old potion of agility icon, and CanofWorms' mutation resistance icon.)

--------------------------------------------------------------------------------
f3e82eb154 | regret-index | 2025-05-18 17:04:36 -0230

New mutation: doubled potion durations
As a much-delayed follow-up to 9235b1e, 9303715, and a98c639, this commit
kicks off another batch of new positive mutations. These are meant to add
more interest and more high-roll possibilities beyond resists or flat
stats, which should hopefully make mutation roulette more varied and
tempting, as well as make up for the inherent lack of control one has over
curing bad mutation currently via potions of mutation.

This rare mutation repurposes some of the old functionality of armataur
tongues as was simplified and refocused in afeb8ed towards healing potions
for Oni. (It's flavoured as "efficient metabolism" rather than a long
tongue mostly for the sake of formicids and shapeshifting.) Much like said
focus, this mutation focuses the effect to be very specific instead of
needing explicit clarifications or categorizations, in affecting the
majority of potions (if not the strategic or healing ones) by doubling the
duration of buffs (and debuffs) they grant. (There is a bit of a shame in
not supporting even further high-rolls with potions of experience, but the
simplicity of this mutation compared to the special cases across old
armataur tongues hopefully feels worth the cost of losing such). With
essentially every character benefitting from using potion buffs before
engaging with uniques or branch end vaults, this should be reasonably
valuable and distinct without being particularly complex or burdensome,
while also still being reasonably capped in power by the number of potions
that drop per game.

(The implementation of this also adjusts several status caps for being
relatively arbitrary- considering ambrosia, attraction, enlightenment,
lignification, and resistance don't have caps, I'm not sure why might and
brilliance need caps on their effects either. This also increases the
cap on haste from 40 to 80, with potions of haste properly outlined as
giving 26-40 deca-auts of haste instead of a previous 40-79 being changed
to 26-52 followed by a cap of 40 due to the strange handling a long whiles
ago in 13d70d82c4. These alltogether are a little bit more power to Gozag
Potion Petition (which has gotten an adjusted description to suit the
various interactions it doesn't actually have), which can be corrected in
other ways if needed, but being more consistent across more potion effects
is a better position to be starting from.)

(The icon for this mutation modifies ontoclasm's standard potion tiles.)

--------------------------------------------------------------------------------
7535fbcc0e | DracoOmega | 2025-05-15 11:34:44 -0230

Fix a crash with getting vengeance upon a dismounted rider (Sergey)
If the kill caused by dismounting a rider that was marked for vengeance by
Beogh *cleared* that vengeance, the new monster would still be marked (and
killing it would assert, since that's not supposed to happen.)

This is a result of the mount/rider copying all enchantments of the
original, but the vengeance enchantment of the original *not* being cleared
with every other monster, since monster_iterator can't see it (because it's
dead).

Instead, don't decrement vengeance on mount kill at all, and require the
player to kill both things to count for one.

--------------------------------------------------------------------------------
6640704bf3 | David Lawrence Ramsey | 2025-05-12 15:52:52 -0500

Don't leak unid'd ?tele for cancelling teleports.
Closes #4546.

--------------------------------------------------------------------------------
e73d135d55 | RypoFalem | 2025-05-08 13:37:18 -0500

fix Wiglaf speech line (slitherrr)

--------------------------------------------------------------------------------
2162c6ad2a | gammafunk | 2025-05-08 13:30:41 -0500

Fix a spell description typo (nicolae)
Slightly reword Forge Monarch Bomb to correct a missing pronoun.

--------------------------------------------------------------------------------
ee89c07461 | regret-index | 2025-05-07 02:27:40 -0230

Fix another Necropolis no_tele_into tagging (blerg)

--------------------------------------------------------------------------------
d9c0e59f68 | regret-index | 2025-05-06 20:33:20 -0230

Properly tag Necropolis transporters as no_tele_into (blerg)
This also comes with some repositioning of both lines and glyphs to make it
more immediately obvious that they're present or missing.

--------------------------------------------------------------------------------
30d31c9650 | David Lawrence Ramsey | 2025-05-05 16:41:14 -0500

Fix spelling.

--------------------------------------------------------------------------------
87e15d8aba | Nikolai Lavsky | 2025-05-05 16:19:19 +0300

fix: remove an extra rim around Captain's Cutlass
The cutlass has a transparent outline, so the automatically added rim
creates a vertical shadow on the right and a few stray pixels on the
hilt. The tile has a shadow already, so let's turn the automatic rim
off.

Fixes #4521.

--------------------------------------------------------------------------------
019d2f6b9b | David Lawrence Ramsey | 2025-05-04 20:18:14 -0500

Properly show maxed-out Forgecraft icon (adinsx).
It was missing an entry in dc-skills.txt, which meant that the wrong
maxed-out skill icons were shown for Translocations, Invocations, and
Evocations.

Closes #4534.

--------------------------------------------------------------------------------
6dd01c98c1 | regret-index | 2025-05-02 22:00:29 -0230

Fix goblin riders reporting wrong monster deaths (Silken)
The message log would say on killing a goblin rider that one would have
killed a hornet or spriggan, despite neither being present, due to not
covering the added second mounted monster properly.

--------------------------------------------------------------------------------
459acda4a3 | gammafunk | 2025-05-02 16:25:48 -0500

Add the trunk tournament reminder

--------------------------------------------------------------------------------
a769c9257f | David Lawrence Ramsey | 2025-05-02 16:06:59 -0500

Fix spelling.

--------------------------------------------------------------------------------
7373fbb340 | regret-index | 2025-05-02 15:29:52 -0230

Slightly nerf the alderking presence in Sprint IV (_atomjack_)
From twenty one across the Sprint to one only on top of the Orb of Zot.
(Seriously, who would use the letters A through Y for monsters, and then Z
for shops?)

--------------------------------------------------------------------------------
70a1409b5d | Nikolai Lavsky | 2025-05-02 14:33:59 +0300

fix: a handful of typos

--------------------------------------------------------------------------------
971400571d | regret-index | 2025-05-01 21:29:13 -0230

Fix Necropolis scaling difficulty settings
Broken by the revisions to checking Necropolis depth uniq_tags in bef2bc0
accidentally leaving out the necropolis_difficulty() assignment line.

--------------------------------------------------------------------------------
bef2bc0af0 | DracoOmega | 2025-05-01 20:11:23 -0230

Fix Necropolis only being able to generate once per game (ge0FF)
It was intended that Necropolis be able to generate three times per game:
 -Up to one in D, Lair, Orc
 -Up to one in S-branches and Vaults
 -Up to one in Elf, Depths, Crypt

But the way that uniq_ tags to do this were applied didn't work properly.
The tags were being set when the vaults were first parsed at game start,
resulting in them all being given the *same* uniq_ tag. Merely changing to
add the tag only when the game had actually started also failed, since the
automatic veto for uniq_ tags was done *before* the tag was added to the
vault.

To work around this, use a custom veto for Necropolis entry vaults that
checks the appropriate uniq tag manually (since it was still remembered by
the game, just not *checked* before a vault was select to place).

--------------------------------------------------------------------------------
cc4a5a2413 | RypoFalem | 2025-05-01 14:49:30 -0500

fix typo in manual
they can they can
--------------------------------------------------------------------------------
2ac967d2bc | Nikolai Lavsky | 2025-05-01 19:25:02 +0300

fix: don't stop runrest when Trickster expires
Currently, the "You feel your existence waver again." message interrupts
the rest and move actions.
These messages happen constantly when the player uses hexes or a
draining/chaos-branded weapon, so let's make them less disruptive.

--------------------------------------------------------------------------------
3ef93ad0ef | DracoOmega | 2025-05-01 03:27:06 -0230

Fix joining Ignis sometimes giving incorrect piety (Back-Form, Darby)
Whenever a player lost piety with *any* god (even via passive decay), it
would set the amount of piety they would get from joining Ignis to whatever
their current piety was with their current god. (ie: if you had high piety
with some other god, lost a point for any reason, and then switched to
Ignis, you would have the same amount of piety you had with your previous
god.)

--------------------------------------------------------------------------------
e384856f76 | DracoOmega | 2025-05-01 03:24:40 -0230

Fix hellfire mortar being able to dig through temp terrain (Back-form)
When an effect digs through or otherwise destroys temporary terrain, it is
supposed to revert back to the original terrain (unless that original
terrain could be destroyed by the same means). This is to prevent, for
instance, turning a metal wall into a tree with Summon Forest and then
digging through that tree.

But due to some oddities in Hellfire Mortar's own digging code (and the
fact that digging *tracers* didn't follow the above rule), it *could* dig
through any sort of wall which had been turned into a tree. Now, hopefully,
it will not.

--------------------------------------------------------------------------------
86e90a63c3 | DracoOmega | 2025-04-30 22:34:24 -0230

Expire a few more enchantments off-level
(And when Nobody heals)

I swear, I'll improve this nonsense function at some point.

--------------------------------------------------------------------------------
c7ca326247 | DracoOmega | 2025-04-30 22:17:20 -0230

Don't spread Rimeblight to neutral jellies with Jiyva (Kab)

--------------------------------------------------------------------------------
6297cc6d13 | DracoOmega | 2025-04-30 21:53:31 -0230

Prevent Platinum Paragons from fumbling in water
By making them large, instead of medium.

(It was even possible for their entire finisher to miss this way, and
they'd still die doing it!)

--------------------------------------------------------------------------------
7afe9f270c | DracoOmega | 2025-04-30 21:53:31 -0230

Inform players that they can deconstruct stationary forgecraft allies
Clockwork bees already did this when no target was available, but it works
on lightning spires and other stationary things as well (but was perhaps
not well-known).

--------------------------------------------------------------------------------
ea708b1e90 | DracoOmega | 2025-04-30 21:53:25 -0230

Move Sprozz slightly shallower
I did think I was a bit conservative with their placement originally, and
kill stats bear that out - with the overwhelming majority of Sprozz's kills
coming on D:8.

So allow them to spawn one floor earlier and trim some of the bottom end
out of their range.

--------------------------------------------------------------------------------
3f59e3cd97 | DracoOmega | 2025-04-30 21:38:06 -0230

Interrupt putting on armour when polymorphed (cool3)
This could lead to weird and invalid equipment situations.

(This does, as a consequence, cause polymorph to interrupt *all* delays,
but probably suddenly turning into a bat would cause one to lose their
concentration on many things.)

--------------------------------------------------------------------------------
4915f533f5 | DracoOmega | 2025-04-30 21:36:45 -0230

End a few effects when exiting forms
Rime yak walls will disappear and werewolf loses its slaying bonus.

--------------------------------------------------------------------------------
6f8645e703 | DracoOmega | 2025-04-30 21:36:18 -0230

Prevent Rampaging from spawning on artefact spider talismans (cool3)
It is redundant and functionally useless.

--------------------------------------------------------------------------------
a46f707188 | David Lawrence Ramsey | 2025-04-30 12:11:44 -0500

Describe slime shroud mutation in the changelog.

--------------------------------------------------------------------------------
ef1bc71121 | David Lawrence Ramsey | 2025-04-30 12:04:24 -0500

Add missing slime shroud mutation description.

--------------------------------------------------------------------------------
2c013b9cb4 | David Lawrence Ramsey | 2025-04-30 11:23:32 -0500

Add placeholder tile: slime shroud mutation.
This is a palette-tweaked version of
UNUSED/spells/shroud_of_golubria.png.

--------------------------------------------------------------------------------
54cce05c65 | David Lawrence Ramsey | 2025-04-29 19:56:26 -0500

Fix spelling.

--------------------------------------------------------------------------------
42ce6d905b | Isaac Clancy | 2025-04-29 19:50:36 -0500

Fix a crash when describing an untrainable skill
The ?/ menu can be used to describe all skills including those that you
can't train. However, it would crash when trying to calculate how much
your AC/EV/SH would increase by when training the corresponding skill if
it wasn't trainable.

--------------------------------------------------------------------------------
32d3af9efa | regret-index | 2025-04-29 22:16:54 -0230

Some last 0.33 changelog updates

--------------------------------------------------------------------------------
fc51937fcf | regret-index | 2025-04-29 22:02:57 -0230

Quick venomous stinger tiles
With 6e34e43 allowing some more species to mutate stingers, we might as
well have non-generic tiles for such. This modifies the weakness stinger
mutation icons, which modified LemurRobot's submission for such.

--------------------------------------------------------------------------------
23ec2b9e95 | regret-index | 2025-04-29 22:02:57 -0230

Don't place talismans in troves for undead species (azide🇺🇦)
This sometimes hides items away entirely with floor or walls, replaces
them with gold in more dense item collections, or forbids the trove
entirely in the case of (the also updated) shapeshifting + evocations
items of trove_misc_dual_throne_room.

--------------------------------------------------------------------------------
3cbc0e6419 | regret-index | 2025-04-29 22:02:57 -0230

Add a description for the_bakery (#4327)
Plenty of quibbling over the description can be done later, but this
should avoid showing [ERROR:] for a description that ruins the vault's
joke. Fixes #4327.

--------------------------------------------------------------------------------
cf030c428b | regret-index | 2025-04-29 22:02:56 -0230

Adjust Necropolis entry chambers
I meant to remove the entry chamber opaque runed doors (seperate of the
transparent ones containing the ghosts) only after 34c5540 made Necropolis
levels pre-revealed and thus showing off plenty of scenery in its own
fashion, and forgot to do so at the time.

--------------------------------------------------------------------------------
f09d4728a9 | NormalPerson7 | 2025-04-29 19:31:14 -0500

Silence a warning

--------------------------------------------------------------------------------
dfa2712768 | David Lawrence Ramsey | 2025-04-28 21:50:44 -0500

Add missing description to bat form.
So that the "You turn into a bat." message is properly displayed.

Closes #4510.

--------------------------------------------------------------------------------
e1d6a0b940 | David Lawrence Ramsey | 2025-04-28 21:24:44 -0500

Check both weapon and offhand slots for Wyrmbane.
So that its messages about a worthy foe properly use its pluses if it's
in the offhand slot.

Closes #4512.

--------------------------------------------------------------------------------
68670cc5b6 | DracoOmega | 2025-04-27 19:05:23 -0230

Update ghost permastore
The ghost permastore has not been updated in over 6 years and contained
many ghosts from removed species, knowing removed spells (and without any
representation of spells added since then).

With Necropolises being a major feature of this release, it felt like time
to get them some modern ghosts. These files are merged together from
snapshots taken from CDI, CAO, CPO, CRB2, CXC, and CNC (thanks to all the
respective server admins for providing them), with a handful of
inappropriate names manually removed.

Crypt and Zig still had a very small number of ghosts despite all these
servers (~25 each), so I opted to merge Depths ghosts into Crypt and Pan
ghosts into Zig so that the pool would not be conspicuously small (perhaps
especially noticable in Zig ghost floors).

Early floors rapidly hit the ghost cap of 127 per bones file, meaning
server representation there is biased towards what was merged together
first (and this also prevents trying to get a more diverse spread of player
backgrounds.). It would be nice to have a better system for doing this in
future, but this is hopefully still a reasonable modernization to what we
currently ship with offline builds.

--------------------------------------------------------------------------------
3f916d2844 | regret-index | 2025-04-27 15:25:18 -0230

Sack of Spiders usable / inert tiles
Somewhat inspired by a submission by LemurRobot. Somewhat of a higher
priority to still fit in post-freeze with this version's evoker stacking
making it more attractive.

--------------------------------------------------------------------------------
07266aef2f | regret-index | 2025-04-26 19:03:03 -0230

Give spell-exclusive allies xp values
Quite a few spell-exclusive allies (cactus giants and most Forgecraft
spells) lost any generaation of experience point values when fa0adff set
only explicit values for most monster experience calculations. However,
tension calculations rely on having experience values for one's allies as
well as one's enemies. As such, even though the majority of these monsters
are extremely unlikely to ever be used outside of being summoned, I've
put together a bunch of quick values for these allies, somewhat arbitrarily
based off of the xp values of monsters from Summoning spells corresponding
to the equivalent spell level and the number made. (This also includes
removing `no_exp_gain` flags from the mobile constructs, which was a
holdover tag from before all the summoning rewrites anyway.)

--------------------------------------------------------------------------------
26465baa12 | gammafunk | 2025-04-25 21:02:35 -0500

Update the release guide
This is out of date, since all of the release building happens via a
github workflow. Convert it to markdown and update.

--------------------------------------------------------------------------------
8f67de2480 | David Lawrence Ramsey | 2025-04-25 20:21:58 -0500

Use std::move() instead of move() (#4468).

--------------------------------------------------------------------------------
8df79cbc47 | DracoOmega | 2025-04-24 20:55:14 -0230

Prompt before starting a multi-turn equipment change with nearby hostiles
At some point in past, the game would *effectively* prompt you about this
(and still gives the chance to interrupt if a monster comes *into* sight),
but sometimes this still catches players off-guard when they try to do
mid-fight slow swaps (for instance, swapping to a two-hander with a shield
equipped, without thinking about how this requires taking the shield off
first).

This uses similar logic that already existed for using talismans near
enemies, whenever the player tries to swap gear that would take multiple
turns to complete.

--------------------------------------------------------------------------------
e5d143e899 | DracoOmega | 2025-04-24 20:55:14 -0230

Improve messaging for Vexed enemies in some case (ge0FF)
Vexed enemies without attacks will no longer claim to 'attack' nearby
empty spaces, nor print no messages if they try to actually attack a nearby
actor (which did nothing, and didn't even pass their turn).

Flying enemies now have a 50% chance to attack the ceiling instead of the
floor, when targeting empty space. (This is purely a flavor thing.)

--------------------------------------------------------------------------------
73e29065a3 | DracoOmega | 2025-04-24 20:55:14 -0230

Pre-reveal Gauntlet floors (aside from the minotaur area)
This has been a long-requested QoL improvement, which was only deferred
due to not wanting to pre-reveal the minotaur's area (which is *intended*
to remain secret.) But now the no_automap tag can be added to vaults,
which prevents them from being revealed by brflag::fully_map. This is used
here to mask off the minotaur's subvaults, while revealing the rest of
Gauntlet.

--------------------------------------------------------------------------------
34c554033b | DracoOmega | 2025-04-24 20:55:14 -0230

Fully map Necropolis upon the player entering (various)
Now that brflag::fully_map works more correctly, this seems fine.

--------------------------------------------------------------------------------
62d904d2ac | DracoOmega | 2025-04-24 20:55:14 -0230

Fix some weird behavior with pre-mapped branches
While brflag::fully_map was intended to reveal the entire map upon entering
a branch, there was weird behavior regarding monsters and items. Namely
that fully mapping would give the player map knowledge of all monsters and
items on some level (such as adding mapped tiles to the stash tracker), but
*not* update some other things, including the display. This meant that you
would initially see no items or monsters, but those monsters would appear
once the tile entered LoS range *whether or not it was in LoS*. ie: plants
could suddenly appear on the other side of walls, as the player approached
them. Saving and loading the game would reveal all of this instantly.

Now, fully mapping a branch should in fact fully map it.

--------------------------------------------------------------------------------
b56b1c1597 | DracoOmega | 2025-04-24 17:39:55 -0230

Give old naga/barachi/spriggan ghosts non-10 movespeed
Since e3b193e player ghosts and illusions actually retain their natural
movespeed, but ghosts from versions older than this will have had it
marshalled as 10. And even after the ghost permastore is updated, it will
likely contain a mix of ghosts who died before and after this change.

So, for ghosts who died before this change, make these species default to
the 'standard' move speed for those species. This does not account for,
say, wearing ponderous gear, but that's a fairly minor thing.

--------------------------------------------------------------------------------
feb31ae96b | DracoOmega | 2025-04-24 17:36:57 -0230

Remove some worse-than-useless wizmode code for placing player ghosts
Playing a player ghost in wizmode would prompt the user to specify a
species and job for that ghost, but it had *already decided* by this point
in time what ghost it was placing and would just replace its listed species
and job with whatever you said - ie: make the ghost lie to you.

And then, on top of that, it always set their XL to 7 and HP to 20! (And
clobbered their name, too.)

So just remove all this code entirely. Now placing a player ghost will
simply place a random available ghost from the current floor. (It might be
nice to be able to specify what sort of ghost to pull up from the ones that
actually exist, but doing literally nothing is better than doing whatever
this was doing....)

--------------------------------------------------------------------------------
19675e9b32 | regret-index | 2025-04-24 01:59:15 -0230

Form gargoyle tiles, serpent form tile tweaks
Since 6e34e43, gargoyles are all canonically stony when merely changing
anatomy in a form and have wings when only changing substance in a form. As
such, they technically need different tiles from base humanoid species.
These new tiles are basically all merely palette swaps using gargoyle
player doll and statue form colourations, aside from borrowing wings from
ontoclasm's gargoyle player dolls to fit onto Aqua / Werewolf / Death Form
tiles; they're not the most distinct tiles as a result (and might benefit
from some touch-ups for more grain on e.g. the pigs), but it's cute enough
and accurate enough to add all of these tiles anyway.

(Also, I smoothened out the palette and added mild contrast to the previous
serpent form tiles.)

--------------------------------------------------------------------------------
29680c63db | regret-index | 2025-04-24 01:59:14 -0230

Rime yak form tile tweaks (LemurRobot)

--------------------------------------------------------------------------------
5522fbaf03 | DracoOmega | 2025-04-23 20:56:02 -0230

Fix a stray debugging statement left in sphinx riddle code

--------------------------------------------------------------------------------
11d99efb1b | NormalPerson7 | 2025-04-23 01:35:42 -0230

Let random blinks interrupt delays
Previously, (among other issues), the player could continue to pass
through a wall with Passwall after being blinked away from that wall
(e.g. from a monster with a distortion weapon).

--------------------------------------------------------------------------------
7c40ac6715 | Isaac Clancy | 2025-04-23 01:33:44 -0230

Fix talismans sometimes not showing xp needed (LiciTheCrawler)
When examining a talisman that isn't in your inventory, it wouldn't show
the xp needed to reach the min skill requirement. This is inconsistent
with weapons.

Fixes #4470

[Committer's note: Reordered display so that artefact properties are listed
first, with better spacing.]

--------------------------------------------------------------------------------
e7c71ef455 | Isaac Clancy | 2025-04-23 01:14:05 -0230

Fix fungal fisticloak popping off poltergeist when taking stairs
If you had all 6 aux slots filled, equipping the fungal fisticloak
should remove two of them. However, it was only removing one leaving you
with too many aux slots filled which would be fixed up by removing one
of them when taking a staircase.

Fixes #4445 reported by alexbeloi

[Committer's note: fixed a typo, renamed a method for improved clarity (and
to avoid being named the same as an existing, unrelated method), and fixed
a crash with previewing item stats when a cursed item was preventing you
from swapping to the item in question.]

--------------------------------------------------------------------------------
3893f0be7e | DracoOmega | 2025-04-22 22:20:16 -0230

Improve badmut messages for melded gear
As pointed out by the previous commit, the code to summarize a badmut for
what gear is melded by a form was slightly incorrect. In the process of
fixing this, I have also improved it by being more specific (if room
allows) about what is melded - accounting for whether the player had a slot
of that type to meld in the first place.

--------------------------------------------------------------------------------
0b5a4d9f43 | Cgettys | 2025-04-22 22:20:16 -0230

refactoring: a few warnings and cleanups in the new forms code
 * Fix a few warnings under clang
 * use testbits where applicable
 * constexpr-ify some stuff

--------------------------------------------------------------------------------
7cd6d3b477 | DracoOmega | 2025-04-22 20:52:55 -0230

Fix helmets not being properly marked useless in some situations
If the player had a mutation that prevented them from using helmets (but
not hats) and was in a form that suppressed this mutation (but didn't
actually let them wear a helmet), the game would think those items were
not useless and display them in stash searches. (eg: a tengu in rime yak
form). This hopefully fixes that.

(I would like to refactor the helmet/hat separation in 0.34, though. Small
issues keep cropping up.)

This fixes #4493

--------------------------------------------------------------------------------
34072830a5 | DracoOmega | 2025-04-22 20:41:38 -0230

Make Ghostly Sacrifice use a proper zap
So that it can display its damage in xv. (And also give it the new ghostly
fireball tile.)

This fixes #4492

--------------------------------------------------------------------------------
5321e18004 | DracoOmega | 2025-04-22 20:10:24 -0230

Fix local tiles never printing a second line of statuses
For some reason, a layout function for local tiles was substracting one of
the two status lines that both console and webtiles get. There appears to
be space, and it can be quite important to display this information in any
case.

--------------------------------------------------------------------------------
dc679cd639 | DracoOmega | 2025-04-22 20:10:19 -0230

Fix console sometimes not printing a second line of statuses
CPRINTF would automatically wrap the cursor's column back to the start of
the HUD region if printing a status that reached the end of available
space, causing _print_status_lights() to falsely think there was additional
space available on the current line (resulting in it not rendering the
second line at all).

Since it effectively does its own word-wrapping (and, perhaps unsafely,
relies on the cursor's current position to do so), it seems best to print
without wrapping.

This fixes #4502

--------------------------------------------------------------------------------
2e3338e8da | DracoOmega | 2025-04-22 18:12:49 -0230

Fix a few message issues with monster clockwork bee
This fixes #4498

--------------------------------------------------------------------------------
32f9708e38 | hellmonk | 2025-04-22 09:22:45 -0500

fix: soulmonger xp

--------------------------------------------------------------------------------
0ed8941409 | DracoOmega | 2025-04-21 18:40:22 -0230

Fix monster compilation (dolorous, WizardIke)
Broken by 08901def8ca, so let's pull this function out into a proper header
(and abyss.h seems appropriate enough.)

--------------------------------------------------------------------------------
998d3ab90e | DracoOmega | 2025-04-21 18:33:16 -0230

Formally allow serpent form to wear helmets
This is at least as much a stopgap bugfix as it is a deliberate design
change, but this fixes a couple existing issues that are tricky to resolve
otherwise.

(Currently if you're wearing a helmet before entering the form, it will
stay on, but you aren't allowed to equip one *after* entering the form. But
actually preventing the player from transforming if they have a helmet on
has some awkwardnesses and we can't just remove the helmet automatically
(or this would shatter cursed equipment!) and selectively melding some but
not all headgear would likely be a source of new bugs after feature freeze,
so this seems like the simplest solution for the moment.)

(It's not really a balance issue for the form to wear helmets,
incidentally; some people just think the flavor is odd.)

--------------------------------------------------------------------------------
6264474ae4 | DracoOmega | 2025-04-21 18:25:57 -0230

Allow previewing full AC/EV/SH/spell fail changes with a given talisman
While the form properties table does a good job of conveying the innate
bonuses of a form, it's not always immediately obvious what the net change
in stats will be when considering melded/unmelded gear, artefact
properties, or (perhaps especially) size changes. Now talismans should
display similar information when examined that most equipment does
(including the benefit of form wizardry or Walking's Scroll's skill bonus).

--------------------------------------------------------------------------------
98676e7e4b | David Lawrence Ramsey | 2025-04-21 09:00:31 -0500

Add another colour to the database.

--------------------------------------------------------------------------------
49ed466c4e | NormalPerson7 | 2025-04-20 20:14:37 -0500

Fix spells being greyed out on forget/adjust/quiver spell lists (#4436)
Spells which were not currently useful because there was no targetable
monster in sight would be greyed out on the forget/adjust/quiver spell
lists.

fixes #4397.
--------------------------------------------------------------------------------
aa796eac41 | NormalPerson7 | 2025-04-20 17:40:24 -0500

Change suppressed muts on the A screen from (()) to () (#4488)
...given that mutations can no longer be partially suppressed. Also
simplify the description from "Completely suppressed" to just
"Suppressed", and fix some unnecessary whitespace.
--------------------------------------------------------------------------------
6e93e1301c | Peter McLarnan | 2025-04-20 13:56:40 -0500

Fix quote for microbat
An extra blank line caused the microbat's quote to be literal `<bat>`
rather than copying the basic bat quote.

--------------------------------------------------------------------------------
08901def8c | DracoOmega | 2025-04-20 16:10:23 -0230

Fix monsters being alerted at the end of Passwall (dilly)
In fixing an issue with distortion unwield banishment effects being delayed
by one turn for Coglins, 0c5ade9 introduced at least one other (and
probably more) by calling world_reacts() on all 0-turn delays.

Rather than attempt to untangle exactly which parts of world_reacts() make
sense to call on 0-aut turns (ie: bookkeeping) and which do not (ie:
changes of world state), I am rolling back this particular fix and making
EquipOffDelay check for banishment specifically (PasswallDelay already
does much the same thing for traps, for instance).

A more comprehensive refactoring could make sense, but doesn't seem
appropriate after feature freeze, since the risk of subtle bugs seems high.

--------------------------------------------------------------------------------
910d91b7bb | radio-gra | 2025-04-19 19:28:31 -0500

Fix uninitialized variables in beam.h (#4491)

--------------------------------------------------------------------------------
5197cf2626 | Isaac Clancy | 2025-04-19 19:27:55 -0500

Fix monster backup weapons giving halos/umbras (NormalPerson7)
When a monster was using a ranged weapon but had Eos or Brilliance as
its backup melee weapon it would incorrectly get a halo/umbra.

Fixes #4487

--------------------------------------------------------------------------------
648a6164ec | regret-index | 2025-04-19 20:23:19 -0230

Fix a spell description typo (Limey Lassen)

--------------------------------------------------------------------------------
2612842421 | regret-index | 2025-04-19 18:08:52 -0230

Orb guardian skeleton tile
As requested by Darby and Silurio.

I'm not entirely sure how I feel about them placing in Crypt, or how we
don't let orb guardians drop corpses while still permitting derived undead
made from them, but while this will still happen in this version, they
might as well have a quickly made tile. (It is composited from Denzi's
fish skeleton, Robsoie's frog skeleton, and roctavian's troll + large
humanoid skeleton tiles.)

--------------------------------------------------------------------------------
8a2e46ec88 | regret-index | 2025-04-19 17:55:01 -0230

Update Self-Published Books (Oneirical)
Removing Monstrous Menagerie from a bunch of books after 7156b82, alongside
some updating of the version books for said new Sphinx Sisters and a
properly comprehensive take on the vowels books.

--------------------------------------------------------------------------------
aa21b9e2a3 | David Lawrence Ramsey | 2025-04-19 12:58:13 -0500

Add missing %%%% to statuses.
So that Catalyst no longer spills over into Shroud.

Closes #4490.

--------------------------------------------------------------------------------
43bc6dcca2 | hellmonk | 2025-04-19 10:52:20 -0500

Fix: price for flux baubles

--------------------------------------------------------------------------------
7f3c248699 | regret-index | 2025-04-18 18:00:00 -0230

More changelog tweaks
Downplay the Ziggurat Sprint updates (I still need to do more revisions
to it next version), shortened the mechanist line to match other new
monster lines and to be more accurate to their weapons, add both a new
tile I missed previously in 16aa5c7 / ed448de and the new tiles added
just now.

--------------------------------------------------------------------------------
0d2a297ef6 | regret-index | 2025-04-18 17:46:38 -0230

Disable some Zig decorations for now (cool 3)
As was pointed out in #4475, none of the feature renames work in ziggurat
pillar placement, which results in revealing the metal statue description
regular games aren't supposed to see. Pending fixing this bug, I am instead
temporarily commenting out various vault statue re-flavourings.

--------------------------------------------------------------------------------
fe3fe7f9ba | regret-index | 2025-04-18 17:46:38 -0230

Some last minute tile tweaks and additions
 * Adjusted the Medusa Form octopode tile to be a chalkish white, like the
   Siamese cat coluration for Medusa Form felids and unlike the blue
   colouration random octopodes could start as.

 * Adjusted the slowly-dying enchantment icon to use less garish colours
   and have a black outline so it contrasts better against the brighter
   colour floors like e.g. Shoals.

 * Adjusted the lines of Call Down Lightning's effect to look cleaner.

 * Removed an extra copy of the Dazzling Flash icon from the Conjurations
   spell folder.

 * Added new Ignite Poison vfx that avoids displaying a red flash
   constantly as one casts a spell- while this is less dramatically visible
   than such a choice, it's also far less confusable than the current
   settings default of red flashes being used for being at low HP.

--------------------------------------------------------------------------------
0f44f866f0 | gammafunk | 2025-04-18 14:02:39 -0500

Changelog updates (through 9efba704ed)

--------------------------------------------------------------------------------
9efba704ed | yrdzrfxndfvh | 2025-04-18 03:17:37 -0230

Add missing Zig pillar traps (#4475)
"Adds zig pillars for the remaining traps that have yet to be used there.
All pillars have a weight of 5 and [use megazig_zot_traps()].

* ziggurat_pillar_centre_dissolved: Places a few devourer's traps, as
  well as an entropy weaver. After the first zig, replaces more statues
  and empty floor with traps.

* ziggurat_pillar_centre_exhaustion: Places an archmage's trap, plus
  a [deep elf annihilator or draconian annihilator]. Starting from Zig+1,
  it instead
 places an ancient or dread lich and can put additiona
  archmage traps.

* ziggurat_pillar_centre_mighty_misfortune: Places a harlequin's trap or
  tyrant's trap. These were originally two separate pillars, but as they
  basically do the same thing I decided to merge them into one.

* ziggurat_pillar_centre_nasty_nets: Places one or more net traps,
  surrounded by a variable amount of iron grates. Limited to only place
  after zig:10 to avoid zig dippers being instantly netted and killed by
  a pan lord or something."

[Committer's notes: As per usual, Zigs are allowed to use contents
otherwise reserved for specific parts of the game, so these vaults are
fine.

I replaced banishers with annhilators since the former have poor chances
to affect people in Zigs, took out the variation floor tiles since some
of the floor looks kinda weird versus the repurposed Vaults floor, made
additional net traps require more than one Zig as the PR itself ponders
about, and commented out the feature redefinitions for now until we can
figure out why there are description bugs for such. I'd like to revise
our current zig floor and wall tiles eventually rather than have the
occasional splash from elsewhere strangely only affect the pillars
(surely we could do some quick work for given floor themes?...) but it'll
have to wait until I've spent more time on walls and floors for other
places, like V and extended.

Closes #4475.]

--------------------------------------------------------------------------------
663a9828c5 | nicolae-carpathia | 2025-04-17 23:06:32 -0400

Add more decor vaults to Lair (#4107)
Add more decor vaults to Lair. Main themes:
- Ruined remnants of human habitation (statues, dry fountains, etc.)
- Beast attacks (blood, skeletons, etc.)
- Vegetation (trees, plants, bushes, fungi, etc.)
--------------------------------------------------------------------------------
aa014feb8f | regret-index | 2025-04-17 22:16:23 -0230

A wide variety of different tiles (LemurRobot)
Seperate tiles each for sewer exit portals, randart troll leather armour,
weakness stinger mutation, and honeycomb talismans (now hive talismans).

 * The Sewer exit submission was remixed with ontoclasm's Sewer entrance
   tile to properly imply pipes inside rather than outside the Sewer.

 * The troll leather armour randart tile was recoloured to primarily
   resemble regular troll leather armour with differing highlights, and
   made larger to not seem overly small compared to the current plain
   troll leather armour through fur extensions from roctavian's troll
   monsters and Sastreii's death yaks.

 * The weakness stinger mutation icon was heavily edited to provide three
   discrete levels of the mutation (following the absence of a stinger in
   its first level and weakness only applied in the third), as well as
   given colour highlights akin to the style used for horn and antennae
   mutations.

 * The hive talisman replacement, while good for being more directly
   representative, was very understated for a talisman and over-emphasized
   the cords present on the placeholder tile. With the cord removed, I
   combined pieces from Denzi's royal jellies, Sastreii's flux talismans,
   ontoclasm's sewer entrance / exit plus Control Teleport spell to flesh
   out the tile some more.
   * As an actual hive rather than a honeycomb, I'm naming them to hive
     talismans in this commit- while the majority of the new talismans
     don't precisely match form name and talisman name, it's still present
     enough that it should probably be fine to switch just for the sake of
     having a decent enough talisman tile.

Also placed into the unused folders:

 * An incomplete set of talisman randart tiles: until the full set is
   complete, it is unfortunately better off to not single out talisman
   randarts for a limited portion of talisman types. I'll probably finish
   off the rest of the set with the further talisman work planned for
   0.34.

 * Fountains of ectoplasm were planned and requested for Necropolis in
   its early stages of consideration before fountains got a long list of
   god-specific flavour messages. I'd still like to do these too, but
   such lengthy messages are a bit of a low priority.

 * A couple of tiles for concepts that were later abandoned (like
   arctic jackrabbit form), wrong for their desired context (a tile for
   for solar embers that was too solid-looking, a phalanx beetle that
   lacked phalanx shields), or are unviable entirely (tentacles are far
   too much of a mess to add other multi-tile monsters in the same style).

--------------------------------------------------------------------------------
20824f1994 | patrick | 2025-04-17 19:46:20 -0400

Add some themed little-v vaults to big-V Vaults
Most of them are using the themes regret-index whipped up a while back,
but a few have more bespoke themes.

--------------------------------------------------------------------------------
8e704a0356 | DracoOmega | 2025-04-17 21:05:00 -0230

Fix lua tests being unable to end
They were defeated by the new quit prompt.

--------------------------------------------------------------------------------
9835b1d13d | DracoOmega | 2025-04-17 20:13:43 -0230

Don't terrify your own allies as a werewolf (midn8)

--------------------------------------------------------------------------------
1c2cc81580 | DracoOmega | 2025-04-17 20:05:34 -0230

Make it less possible to accidentally enter explode mode
While entering explore mode did require the user to type 'yes', several
less critical things in the game ask the player the same thing (such as
stepping on a Zot trap) and it is possible to overlook its significance
for something that cannot be taken back.

So, to help with that, make the text you have to type in several cases more
explicit. Explore mode now requires typing 'explore', wizmode 'wiz', and
quitting 'quit'. (Other prompts using 'yes' been left alone for now.)

--------------------------------------------------------------------------------
a73bde240a | DracoOmega | 2025-04-17 19:29:51 -0230

Correct a changelog error (Ge0FF)

--------------------------------------------------------------------------------
0521b7a92d | DracoOmega | 2025-04-17 19:29:51 -0230

Give a cast message for Small Mammals, Cactus Giant, and Horrible Things
Unlike almost all summoning spells, these never had any, and produced
absolutely no messages in the log for having cast them.

--------------------------------------------------------------------------------
a50f7344bf | DracoOmega | 2025-04-17 19:29:51 -0230

Fix Ironbound Mechanists trailing parts of their weapon behind in webtiles
This doesn't fix the underlying issue of not handling overlaps to the
bottom/right properly in webtiles (I tried for a while without success),
but compromises by making very small adjustments to the tile and its
weapon placement to prevent it from happening with its normal loadout.

--------------------------------------------------------------------------------
c28b6298cb | DracoOmega | 2025-04-17 19:29:51 -0230

Make Vex trigger Trickster (astupidcat)

--------------------------------------------------------------------------------
2875831e3d | DracoOmega | 2025-04-17 19:29:51 -0230

Mention that medusa tendrils won't hit invisible monsters (midn8)

--------------------------------------------------------------------------------
04befe0baf | DracoOmega | 2025-04-17 19:29:51 -0230

Be a little more explicit about how water form interacts with cleaving

--------------------------------------------------------------------------------
01fb971b63 | DracoOmega | 2025-04-17 19:29:51 -0230

Don't make a note about every runed door that the player encounters
While it makes some sense to list runed doors seen in the dungeon overview
(and this commit does not change that), the game would make an entry in the
dump about *every single runed door tile* the player ever observed. Just
encountering doorvault could flood a whole page of it (and necropolis also
is full of them).

This doesn't seem particularly worth noting, and nobody objected when I
asked about removing this.

--------------------------------------------------------------------------------
e7bdcb3ee3 | DracoOmega | 2025-04-17 19:29:51 -0230

Make Forgecraft miscasts scale in severity
By applying more corrosion at once for worse miscasts. Makes it a little
more dubious to try and overreach on spells in some cases.

(Of course, the damage formula for miscasts is a bit wonky in the first
place, but some quick testing suggests this number is probably reasonable.)

--------------------------------------------------------------------------------
6809c6f627 | DracoOmega | 2025-04-17 19:29:51 -0230

Lower revenants ranged apt to -3 (Ge0FF)
Ranged combat doesn't interact with either of their species gimmicks, so
let's steer players away from it a little more.

(Their dex was pretty awful anyway, but that's less immediately apparent.)

--------------------------------------------------------------------------------
d3e06e6052 | DracoOmega | 2025-04-17 19:29:51 -0230

Fix Summon Forest making trees out of open sea (Necromancer23)
(And other non-solid level borders, like endless lava or salt.)

--------------------------------------------------------------------------------
669c12ccc6 | DracoOmega | 2025-04-17 19:29:51 -0230

Reduce Autumn Katana's activation chance
When Manifold Assault was raised to level 7 by d8d9835, I claimed this
weapon would still only hit 4 targets, but in fact it has hit 8 ever
since.

I considered simply moving that number back to 4, but decided that a rarer
chance to have a bigger effect was the more flashy of the two options. It
should still be quite powerful like this.

--------------------------------------------------------------------------------
f59c703107 | DracoOmega | 2025-04-17 19:29:51 -0230

Buff Mark of Execution a little
It was arguably the most underperforming of Makhleb's marks. This
increases the activation chance from 14%->20% and improves the XL scaling
of the aux attack's base damage somewhat (by 3.5 by XL 27)

--------------------------------------------------------------------------------
dda9934dc5 | DracoOmega | 2025-04-17 19:29:51 -0230

Don't generate randart Storm talismans with -Tele
It prevents using the blinkbolt ability it gives entirely!

--------------------------------------------------------------------------------
853f1b10a2 | DracoOmega | 2025-04-17 19:29:50 -0230

Decrease poisonous vapour's direct damage by 1
Yes, exactly 1.

(It was arguably just a tiny bit too strong at the very earliest parts of
the game.)

--------------------------------------------------------------------------------
84cb37206f | DracoOmega | 2025-04-17 19:29:50 -0230

Simplify Mercury Arrow weakness formula
The somewhat complicated power-vs-weakness chance formula stems from when
it was Mercury Vapours and success chance was the only thing that *could*
scale. But now that it is attached to something with damage scaling from
power, let's just greatly simplify the formula (and make it less good
against lategame things.)

Simultaneously, give it an extremely gentle increase in damage at higher
power.

--------------------------------------------------------------------------------
f77214308d | DracoOmega | 2025-04-17 19:29:50 -0230

Make Maw form growl a tiny bit more often

--------------------------------------------------------------------------------
4bad248e96 | DracoOmega | 2025-04-17 19:29:50 -0230

Allow Fortress Crab to wield two-handed weapons
It still can't use shields, to be clear, but its big claw can heft even
big weapons just fine.

--------------------------------------------------------------------------------
0cb09fe5f2 | DracoOmega | 2025-04-17 19:29:50 -0230

Tweak sun scarab form slightly
Ember charge lasts a couple more turns before expiring and swapping now
heals the ember for 75% HP instead of 50%, making repositioning slightly
more flexible/rewarding.

Also nudge up solar flare damage at higher shapeshifting skill (while
leaving it more or less the same at low skill).

--------------------------------------------------------------------------------
72d0a695cf | DracoOmega | 2025-04-17 19:29:50 -0230

Extremely mildly nudge rime yak ice damage downward
I'm not convincied it's the best protean form by the margin some people
claim it is, but this adjustment should be fine regardless.

--------------------------------------------------------------------------------
c983b2adb0 | DracoOmega | 2025-04-17 19:29:50 -0230

Allow examining Armour/Dodging/Shield skill to see how helpful they are
Examining these skills now tells the player how much AC/EV/SH they will
gain for increasing it by 1 level.

After the last commit, armour skill no longer gives a consistent bonus per
base AC value (since it will give less to characters with Deformed Body),
so this can help make the difference clearer. (But also, for many
characters it's always been unclear how effective dodging will be for them
(or whether armour skill would raise EV by even more than dodging would),
so I think this will be helpful for everyone.)

I am a *little* nervous about how this changes your skills in the
background to calculate this, since it turns out that raising a skill by 1
touches a lot of different variables. But I am pretty sure I should have
caught every modified value in an unwind_var, so it should be safe.

--------------------------------------------------------------------------------
44653be034 | DracoOmega | 2025-04-17 19:29:50 -0230

Make base body armour AC penalties/bonuses interact with Armour skill
Maw form's -80% body armour AC penalty turned out to be too mild into the
mid/lategame due to it not affecting the bonus gained by Armour skill at
all. This was done for consistency with the Deformed Body mutation, which
also does not affect the AC gain from Armour skill. However, it is a very
common misconception among newer players that a percentile reduction to the
AC of your body armour *would* cause it to gain less AC from armour skill
(which is, after all, a percentile multiplier to the armour's base AC!).

So, after some discussion with other devs, I am changing all percentile
modifiers to body armour base AC to affect Armour skill's bonus also. To
avoid this being a flat nerf to naga/armataur, Deformed Body now reduces
AC by 40% instead of 50% and they each get +1 armour apt (to compensate
for each skill level being less effective than it was before.)

Some example numbers of AC before/after this change:
+0 plate with 0 armour skill: 5 / 6 (+1)
+6 plate with 14 armour skill: 17.4 / 15.8 (-1.6)
+12 GDS with 27 armour skill: 32.7 / 28.0 (-4.7)

(This *is* effectively a nerf to endgame values, but a tiny earlygame buff,
and with faster armour skill gain, likely not a nerf at all except to
lategame heavy armour users, who aren't likely to notice a lot, I suspect.)

Maw Form's AC reduction is reduced to -75% (still a signicant nerf for
latergame heavy armour users, which should make this a little less of a
free option for some people.). Blade Hands initial penalty goes from -80%
to -60%. Fortress Crab's bonus now scales from +70-135% instead of +75-150%
(this is still a significant buff, though one a number of people have felt
it needs).

--------------------------------------------------------------------------------
9f76b8bc13 | David Lawrence Ramsey | 2025-04-17 12:17:03 -0500

Add missing override to function (#4468).

--------------------------------------------------------------------------------
0c99ebbc95 | gammafunk | 2025-04-17 11:22:02 -0500

Fix a monster message (kaboissonneault)
The message for when a monster is silenced is missing a space.

--------------------------------------------------------------------------------
02257cc75e | WizardIke | 2025-04-16 23:50:07 -0500

Fix an invalid comparator being passed to std::sort (#4481)
In `player_equip_set::get_forced_removal_list` we were passing a
comparator to std::sort that returns true for equal items, however, it
should return false.
--------------------------------------------------------------------------------
31484365da | David Lawrence Ramsey | 2025-04-16 19:22:57 -0500

Add a few more "bland" names.
So that both male and female ones are covered.

--------------------------------------------------------------------------------
a3febebba9 | regret-index | 2025-04-16 21:30:14 -0230

Additional (mostly early) Necropolis tweaks
A little bit of conscientious adjustments before feature freeze, mostly.

 - The D:5-7 Necropolis spawn chance has been reduced (from 3.5% per floor
   to 2.75%), since no matter the vault enemy tweaks players are still
   behind the curve versus the average player ghost. There are also plenty
   of other early portals as is, and there's a fair bit amount of deeper
   Necropolis vault options that have more variety to better highlight
   anyway.

 - Gold counts in all Necropolis settings and the D:5-7 ghost rewards have
   been mildly increased, while the highest threats in D:5-7 ghost
   subvaults have been subdued a bit further.

--------------------------------------------------------------------------------
5d64c75d97 | David Lawrence Ramsey | 2025-04-16 18:55:41 -0500

Add better orcification message for Po/Re.
Both messages only reference tusks, since neither species has ears.
Poltergeists don't have heads, either, but assume they have mouths of a
sort, since they can wail, drink potions, etc.

--------------------------------------------------------------------------------
e87b3136a9 | David Lawrence Ramsey | 2025-04-16 12:19:51 -0500

Make Xom cast Sphinx Sisters through the player.
Instead of the now-removed-for-players Monstrous Menagerie.

Closes #4485.

--------------------------------------------------------------------------------
1c690d8f9f | DracoOmega | 2025-04-16 13:45:12 -0230

Lower ghost sticky flame damage, fix xv lying about it
xv claimed that sticky flame from an XL16 ghost did 2d6 damage, but this
was only the impact damage and the sticky flame debuff itself did ~2d16
per turn instead. The difference was even more disparate on higher level
ghosts (ie: XL27 claims 2d9, but did 2d25)

This commit lowers the per-turn damage by ~33% and adjusts the impact
damage to match (so that xv will report it more accurately).

--------------------------------------------------------------------------------
5c608351b7 | DracoOmega | 2025-04-16 13:45:12 -0230

Don't make aux attack misses claim the entire attack missed
This additionally caused rending blade to sometimes fail to trigger when
the attack hit, if it was followed by an aux attack which missed.

As far as I can tell, the only other consumer of this value for players
is fsim (meaning the accuracy value of aux-having characters was always
slightly incorrect.)

--------------------------------------------------------------------------------
1bf55eccbc | DracoOmega | 2025-04-16 13:45:12 -0230

Make Rending Blade much more reliable (and deal more damage)
While situations where rending blade was unable to find an attack path
when one clearly existed were a minority, they were still much too common,
to the point of making the spell feel fiddly and inconsistent. This commit
rewrites most of its pathing behavior entirely, in the hope of reducing
those confusing/frustrating scenarios to almost zero.

It uses a very heavy-handed approach to do so, iterating all possible paths
from its present position (and, if necessary, from all adjacent positions).
I'm not altogether happy with how heavyweight this is, but it's the best
way to ensure that it almost always does a thing if the player could see a
way for it to do a thing.

The blade can no longer 'store up' charge between turns to unleash in a
burst. This was intended to compensate for the 'unreliability' of the old
model, so that if it failed one turn, it might strike twice the next turn,
but was fairly unintuitive to players. Now it will either strike
immediately or not at all.

Finally, the blade leashes to the player like a phalanx beetle instead of
drifting around at a distance, semi-randomly. (The latter sometimes helped
it find paths in the old model, but is no longer helpful.)

In addition, the base damage of the blade has been raised, and the bonus
power per MP also raised.

I'm not altogether happy with this state, and feel the spell could possibly
use a deeper redesign, but there's no time to devise, implement, and test
one so close to feature freeze. And this is definitely a more usable state
for the spell than what currently exists.

--------------------------------------------------------------------------------
9079b5ed16 | regret-index | 2025-04-16 05:17:18 -0230

Last major vault review for 0.33
Of note:

 * Ironbound mechanists have been distributed around various mage and
   construct vaults in V, as well as some sprints. Sprozz and Nobody have
   also joined a bunch of sprints.

 * Sprint III (The Ten Rune Challenge) has mildly less absurd monster
   HD / HP adjustments / spellset changes entirely unannounced in its
   monsters, as was highlighted by the recent explicit-xp-definition
   requirements for vault monsters work. It's truly a relic of an
   incredibly different era, with very few design changes outside of
   item / monster removals since its addition back in 0.8, and it's a
   pretty rough mess in countless ways I'm reluctant to spend much time
   heavily testing to properly fix-up; as such, there are no guarantees
   for me properly fixing up the rest of this Sprint.

 * In the same capacity, I've done a brief go-over to Zigsprint, making
   its earliest sections less randomly horribly murderous and its later
   sections more evenly murderous. It probably needs a significant update-
   at minimum, splitting the sections to have a fifth difficulty setting-
   but this should help it feel a little less annoyingly, overly random
   in beginning threat levels.

 * To help differentiate early portal rewards a bit more apart from one
   another being heavily focused on consumables, and to accommodate the
   very specific niches both have, Ossuaries now have a 15% chance to drop
   inkwell talismans and Bailies have a 10% chance to drop fortress
   talismans.

 * Every Lair end vault now has a 10% chance to place a tier 2, 3, or 4
   talisman themed each vault and different between each vault, except for
   two small dragon ends which get a 7.5% chance each. (The protean-tier
   talismans are always placed randarts, as a bit of a consolation prize
   for it being late to see such.) There's a bit of a design quandry in
   terms of people wanting to stick with Shapeshifting versus the inherent
   variability in a roguelike benefitting not guaranteeing much for
   specific item drops throughout a run. Hopefully, between 035eff2 and
   this commit, there's at least some regular in-roads most games for
   shapeshifters sticking to talismans without being railroaded in single
   talisman choices throughout the game.

--------------------------------------------------------------------------------
1dfc6ad188 | David Lawrence Ramsey | 2025-04-15 22:53:03 -0500

Add two more orc names.

--------------------------------------------------------------------------------
d7f1c8f71e | DracoOmega | 2025-04-15 19:36:38 -0230

Hopefully fix a monster Clockwork Bee crash
(I can't be sure this was the cause, but it looks like a *possible* cause.)

--------------------------------------------------------------------------------
4de08de1f5 | DracoOmega | 2025-04-15 19:13:47 -0230

Make Summon Seismosaurus Egg spell targeter accurately show its range.
(And Hoarfrost Cannonade, while we're at it.)

--------------------------------------------------------------------------------
b64755db65 | DracoOmega | 2025-04-15 19:13:47 -0230

Fix summon spiders being unusable by Bound Soul
Missed by b498025, the former god argument was being passed as an argument
to spell fail, meaning the spell would fail if cast by any monster which
had a god. Broodmothers are godless, *but* bound souls always worship
Yred.

(This also applied to Monstrous Menagerie for the same reason, until the
previous commit.)

--------------------------------------------------------------------------------
7156b827e1 | DracoOmega | 2025-04-15 19:13:47 -0230

Replace player Monstrous Menagerie with Sphinx Sisters (regret-index)
Menagerie was an 'okay' spell, but often felt fairly underwhelming to use
and its design was in some ways a remnant of its age. There were huge power
level differences between the results you could roll (lindwurm's ranged
spell did more than twice the damage of manticore's!) and sphinxes felt
mildly at odds, mechanically, with the other results. It wasn't awful, but
let's try repurposing some of the same design space to focus on the most
theoretically interesting result.

Sphinx Sisters is a level 7 Summoning/Hexes spell that summons both a
sphinx maurader and a guardian sphinx in one cast. This gives the player a
wide spread of valuable hex effects, and their direct offense also has the
arguably interesting property that it gets worse the more other summons you
are using at the same time (as airstrike/af_airstrike do much less damage
the more crowded the area gets), potentially making them less desireable as
a 'just toss into the deathball' spell with clear upsides of its own.

This is obviously much more powerful spell effect than the one it's
replacing, but in casual testing does not seem out of line with other level
7 dual-school summoning spells (or Horrible Things, which is still more
accessible to many people at level 8).

Monstrous Menagerie remains as a monster spell, with Kirke's guardian
sphinx being downgraded to a sphinx marauder (as it was only upgraded
orginally out of a desire not to nerf the player spell).

(And since it was trivial to do so, Sphinx Sisters works for ghosts out of
the box.)

--------------------------------------------------------------------------------
6129d6fd55 | David Lawrence Ramsey | 2025-04-15 14:08:51 -0500

Fix shadowed variable warning.

--------------------------------------------------------------------------------
2276e7c6bb | DracoOmega | 2025-04-15 15:45:37 -0230

Don't require the seismosaur egg to have LoS to enemies (only the player)
Originally, the hatching condition only required that the egg itself be
able to see an enemy, but this leaked information to the player about
monsters around corners, so it was changed to *additionally* require the
monster to be in the player's LoS as well.

But every now and again, this results in a scenario where the player can
see a monster but the egg cannot, and this may not be obvious (ie:
involving corners/pillars), leading to some player confusion about why the
egg isn't hatching.

Given that there's already a proximity condition, the player's own LoS is
probably sufficient and the egg's no longer matters. This is a small buff,
but probably mostly a QoL improvement for edge cases.

--------------------------------------------------------------------------------
261e3f968d | DracoOmega | 2025-04-15 15:45:37 -0230

Show a range indicator around seismosaurus eggs (Various)
To maybe help the player intuit how close is 'in-range' for the egg to be
able to hatch, the ground within 4 spaces of the egg now changes to a brown
rocky texture while the egg is alive (but only while the player can see
those tiles, to keep from polluting map memory forever....)

Technically this can leak a bit of information about whether your egg is
still alive or not, but the living state of an egg that you can't even see
seems very unimportant in almost all cases.

(Also, this indicator doesn't show up in water, but presumably players will
almost always have used it many times outside of water, to still have a
sense of its properties if at some point the whole range isn't indicated.)

--------------------------------------------------------------------------------
620d4cdf13 | Kate | 2025-04-15 12:57:44 +0100

Fix Qazlal worshippers missing Blastmote prompts
Closes #4467.

--------------------------------------------------------------------------------
4986455a4a | David Lawrence Ramsey | 2025-04-14 20:42:26 -0500

Make flux baubles properly display training info.
Do this the same way talismans with non-zero starting skill values do.

Like similar code, it relies on the assumption that the only bauble form
available is flux form. There's no easy way to change that without
accounting for flux form's not having a talisman in a better way (its
talisman value of NUM_TALISMANS prevents the usual lookup), but this
will work for now.

--------------------------------------------------------------------------------
248d51f267 | David Lawrence Ramsey | 2025-04-14 19:19:07 -0500

Add Forgecraft to _wanderer_role_skill_select().
Since that function accounted for all magic skills except that one.

--------------------------------------------------------------------------------
7ad1b89dd9 | hellmonk | 2025-04-14 17:33:49 -0500

fix spriggan rider exp

--------------------------------------------------------------------------------
bb33ccb6fc | hellmonk | 2025-04-14 16:37:23 -0500

Fix vampire bloodprince exp

--------------------------------------------------------------------------------
adfce065ad | David Lawrence Ramsey | 2025-04-14 15:40:15 -0500

Add another Sprozz line.

--------------------------------------------------------------------------------
48063bec9d | David Lawrence Ramsey | 2025-04-14 15:22:09 -0500

Properly make baubles turn on Shapeshifting.
Since they use that skill the same way talismans do.

Closes #4483.

--------------------------------------------------------------------------------
f4463b9b3a | WizardIke | 2025-04-13 21:42:57 -0500

Stop at target with damnation if doing so avoids allies (Kab) (#4448)
Other ranged weapons will stop at their target if doing so will avoid
hitting allies that are past their target, so damnation should to.
--------------------------------------------------------------------------------
562d655eb3 | DracoOmega | 2025-04-13 23:29:43 -0230

Fix Sprozz being able to use jewellery

--------------------------------------------------------------------------------
c73dd887b5 | WizardIke | 2025-04-13 20:55:33 -0500

Fix a local tiles menu crash (#4453)
When more items were added to an existing menu and then the hovered over
item was updated the game would crash. This could happen when trying to
add an existing macro from the macro quick add menu or when searching
for a specific spell, hovering the mouse over the spell and then doing a
broader search that included the spell etc.

The reason for the crash is that setting the hovered menu item was
accessing some rendering related data that isn't generated until the
next time we render.

Fixes #4391
--------------------------------------------------------------------------------
53ce29fbc7 | DracoOmega | 2025-04-13 23:15:28 -0230

Fix monsters being unable to temper Hoarfrost Cannons (regret-index)
Hey, it could happen!

--------------------------------------------------------------------------------
f6ac00e180 | WizardIke | 2025-04-13 20:34:23 -0500

Fix arrow animation sometimes sticking around to long (#4472)
When ctrl-clicking a spot on the map adjacent to you in local tiles, you
perform an attack. If this attack was with a ranged weapon, the arrow
animation would stick around until you took a different action.

Fixes #4381
--------------------------------------------------------------------------------
388da27881 | DracoOmega | 2025-04-13 22:29:59 -0230

Make some forgecraft allies have better timeout messages than "fades away"

--------------------------------------------------------------------------------
a6f6b54981 | DracoOmega | 2025-04-13 22:29:59 -0230

Fix grey draconians keeping their +5AC in forms that melded scales (Lici)

--------------------------------------------------------------------------------
1d25703c72 | DracoOmega | 2025-04-13 22:29:59 -0230

Don't have monsters check if they can swap with themselves
Which they usually can't, since they aren't higher HD than themselves!

(I am not sure this has much practical effect, but it makes debugging some
interactions a little cleaner.)

--------------------------------------------------------------------------------
4cf1b8d64d | DracoOmega | 2025-04-13 22:29:59 -0230

Uncoglin-ify Ijyb
She was made a 'former' coglin when coglins were added, presumably in lieu
of having any actual coglins in the game, but her dialogue mostly didn't
fit them very well (in my opinion) and her mechanics didn't reflect their
core gimmicks in any way. Now that we have another coglin unique and
monster, I am returning her to her former description.

--------------------------------------------------------------------------------
f25bf0be4a | DracoOmega | 2025-04-13 22:29:59 -0230

New Unique: Sprozz, Inventive Apiarist
An earlygame coglin forgewright unique that casts Clockwork Bee and
Tempering (but has generally quite sad weapons and mediocre melee
themselves). The cast delay on bee does give the player a chance to try and
kill him first (or run away) but the bee will keep chase even as you do so
and Tempering could prove nasty if you let it hit you.

Has a 50% chance of dropping a randbook containing clockwork bee and 1-2
other Forgecraft spells.

Currently appears at the same depth as Amaemon, which may be a bit off,
though I'm not certain exactly how dangerous he will be in practice. Will
adjust again after some playtesting.

(Tile by LemurRobot)

--------------------------------------------------------------------------------
8605e2f772 | DracoOmega | 2025-04-13 22:29:59 -0230

New monster: Ironbound Mechanists (regret-index)
Intended to give some representation to the new forgecraft school among
monsters before 0.33's release (as well as finally showing off a
dual-wielding coglin somewhere), these enemies come with a pair of axes or
polearms and know Forge Phalanx Beetle and Nazja's All-Purpose Tempering,
which they can use with their beetle (or sometimes alongside other
constructs found in Vaults, if they're lucky enough). They hit about as
hard as vault guards (but twice!) but are a little less durable until they
get their beetle defense buff.

They replace the entire weight of boulder beetles in Vaults (which are
harmless by this point and already common enough elsewhere), much of
freezing and shadow wraiths from V:5, and also replace the (harmless)
spiders in entropy weaver bands in Vaults. (Theme-wise, perhaps we can say
something about the intersection of acid-etching and metalwork, but it's
not like anyone knows what an entropy weaver even *is* anyway...)

Further placement in vaults will come in a future commit.

-------------------

The tile was made by regret-index, and is composed of Sastreii's edits to
roctavian's base goblin tile, ontoclasm's vault sentinel tile, Sastreii's
ironbound beastmaster tile, and LemurRobot's Coglin player doll base.

--------------------------------------------------------------------------------
60505af82c | DracoOmega | 2025-04-13 22:27:04 -0230

Monster implementation of Forge Phalanx Beetle
The leashing code used by beetle needed some adjustments when useed by
monsters (since hostile monsters really, *really* want to charge at the
player, no matter what else you tell them to do) and still isn't perfect,
but should work properly in the majority of cases.

(The beetle gives a flat +10 AC to its summoner while adjacent, rather than
interacting with spellpower in any way.)

--------------------------------------------------------------------------------
cd0ef4900c | DracoOmega | 2025-04-13 22:27:04 -0230

Add monster-castable version of Percussive Tempering
As this is intended to be used on a general Vaults monster, I feel its
targeting should be a little more flexible than 'monster summoned by the
caster using a Forgecraft spell' so that it can interact with multiple
other 'construct'-y monsters that are common in Vaults, such as
peacekeepers and crystal guardians.

To hopefully reduce confusion about the difference between monster and
player version, I've opted to use the same approach as Vhi's Electrolunge
and make a slightly differently-named spell that can describe the
difference properly when examined. Thus, it's called Nazja's All-Purpose
Tempering.

--------------------------------------------------------------------------------
26292d7fe4 | DracoOmega | 2025-04-13 22:27:04 -0230

Allow monsters to cast Launch Clockwork Bee
This mostly works like the player version, though they get a few additional
kindnesses like the original target not needing to still be in LoS by the
time the bee launches (so that the player can't break the cast by just
stepping backward).

Recharging is handled as an ability of the *dormant* bee itself, where each
turn it checks if its summoner is adjacent and then maybe grabs action
energy from it to rewind itself in a way that *looks* like the caster took
that action (but can easily work with any monster who has the spell).

Intended for a forthcoming unique (and also player ghosts).

--------------------------------------------------------------------------------
fa0adff925 | Hellmonk | 2025-04-13 10:54:46 -0500

Fixed xp overhaul (#4480)
Thank you for participating in our bonus experience event!

---------

Co-authored-by: gammafunk <gammafunk@gmail.com>
--------------------------------------------------------------------------------
1aa8576e86 | hellmonk | 2025-04-13 01:57:40 -0500

Revert "Specify monster exp values directly (#4474)"
There's something buggy going on, needs fixing.

This reverts commit bf948c632cc59540f7b429e204f2721c81b20902.

--------------------------------------------------------------------------------
bf948c632c | Hellmonk | 2025-04-13 00:23:18 -0500

Specify monster exp values directly (#4474)
Monster experience values relied on a very complicated formula that tried to
account for a large number of factors related to monster power. While it did
capture many of the aspects that make a monster more dangerous, it was
inaccurate enough that monsters needed an additional corrective factor to have
reasonable values. Since we're already specifying monster xp with an ad hoc
formula, it's simpler to just remove the formula and specify xp value directly
in most cases.

Monster yaml files now allow the monster's base xp value to be set, and des
files can custom set exp (which should not be used except in sprint). Variable
xp remains for particularly complex monsters, like panlords, but with a simpler
formula. Derived undead reference the base monster's xp with a divisor.

This change should not significantly affect total xp available in a game.

---------

Co-authored-by: gammafunk <gammafunk@gmail.com>
--------------------------------------------------------------------------------
ed448ded6d | regret-index | 2025-04-12 20:18:05 -0230

Octopode Flux Form tile, as was accidentally missed out
I forgot to export and package the image alongside the rest of other
images sent to DracoOmega in midst of the big Shapeshifting update, to the
point that 16aa5c7 listed tile credits for the parts of this octopode but
left the tile out itself. (A heavily modified explosion from the CC0
release of DUELYST 1, and an edit by Darby of Bloax's base octopode tile.)
Thus, I am adding it in.

--------------------------------------------------------------------------------
31d52f885e | David Lawrence Ramsey | 2025-04-12 12:54:51 -0500

Add another Xom esteem adjective to artefacts.
And fix their alphabetical order.

--------------------------------------------------------------------------------
cabfb930c9 | WizardIke | 2025-04-12 10:20:30 -0500

Fix shape shifters losing their thrall status icon (Monkooky) (#4473)
When shape shifter vampire thralls changed shape they would incorrectly
lose their thrall status icon.

Fixes #4386
--------------------------------------------------------------------------------
f361626b86 | WizardIke | 2025-04-12 09:57:48 -0500

Fix blood for blood spawning orcs faster the faster your turns (#4471)
A turn that took 5 auts would spawn in twice the number of orcs that a
10 aut turn would spawn, resulting in 4 times as any orcs spawning per
aut. This change makes the average number of orcs spawned per aut the
same no matter how long your turns take. It keeps the same spawn rate if
you are taking turns of length 10 auts although this might need
adjusting as many melee characters can have an attack delay closer to 7
auts when getting blood for blood online which would spawn at about
twice the rate with the old system.

This also fixes a crash that would sometimes occur as sometimes turns
can be cut short to 0 auts (e.g. when resting is interupted).
--------------------------------------------------------------------------------
af07fd2aab | DracoOmega | 2025-04-12 09:30:37 -0230

Fix octopodes hiding equip in quill, medusa, and hive form (Graveyardigan)

--------------------------------------------------------------------------------
b5025a402e | gammafunk | 2025-04-11 21:06:08 -0500

Some changelog fixes
Ghouls were removed, so talk about Revenants and Poltergeists instead.

--------------------------------------------------------------------------------
9fcff2c720 | DracoOmega | 2025-04-11 23:11:56 -0230

Fix skeletons of monsters without skeletons generating (Kab)
Either one of these two fixes is sufficient to make the problem go away,
but they both feel like they're probably supposed to be this way. (ie:
even if a change to fixup_zombie_type caused the bug to manifest, it only
makes sense to query the skeleton of the *original* monster type anyway.)

--------------------------------------------------------------------------------
7cf80d010f | regret-index | 2025-04-11 22:02:01 -0230

Give decorative floor a default tile for detection purposes
While it's useful for big question marks to distinguish the feature as
buggy if found by itself, showing question marks or fountains with
magic-mapping and Ashenzari gives a pretty strange impression for
otherwise working placement. As such, this adds a mildly fancy floor
tile of literal tiles, made from roctavia's white marble floors and
Sastreii's runelights and ontoclasm's detected item icon, to display
something that is still conspicuous but hopefully reasonably less
confusing.

--------------------------------------------------------------------------------
2974f4b71e | regret-index | 2025-04-11 21:08:20 -0230

Don't automatically draw rims around newer ghost-vortex monsters
It's not noticeable at all on the default D or V floor, but it looks
pretty awful on brighter floors like some Desolation entrances use to
try and outline the fading fuzzier outline parts of them. Thus, they
are being spared from automatically tile rim drawing.

--------------------------------------------------------------------------------
a2417cb52f | regret-index | 2025-04-11 20:14:28 -0230

Tweak some unidentified randart descriptors
Specifically, "crude" makes a randart sound like it's of lower quality,
and is one of the most obviously clashing with the given fanciful randart
tiles. It's been replaced in its multiple uses with a variety of different
fancier synonyms for "glowing", to match "glowing" being a common
non-artefact un-identified equipment descriptor.

--------------------------------------------------------------------------------
d3c52d3de1 | regret-index | 2025-04-11 20:14:28 -0230

Tweak a Xom bazaar banishment line (Undo, staticshock)

--------------------------------------------------------------------------------
b443386b90 | hellmonk | 2025-04-11 10:56:59 -0500

adjust a few vaults

--------------------------------------------------------------------------------
f222d5610f | David Lawrence Ramsey | 2025-04-11 08:11:08 -0500

Fix typo.

--------------------------------------------------------------------------------
28318407f2 | Isaac Clancy | 2025-04-10 22:28:46 -0500

Fix malign gateway not spawning its tentacle (caiman-dorohedoro)
We where giving eldritch tenacles a habitat of HT_FLYER instead of
HT_FLYER | HT_MALIGN_GATEWAY which was preventing them from spawning on
the tile containing the malign gateway.

Fixes #4464

--------------------------------------------------------------------------------
ed1b8474e7 | David Lawrence Ramsey | 2025-04-10 18:30:58 -0500

Fix typos.

--------------------------------------------------------------------------------
54c7f790d0 | David Lawrence Ramsey | 2025-04-10 18:29:35 -0500

Fix spelling.

--------------------------------------------------------------------------------
e84ffcc68e | David Lawrence Ramsey | 2025-04-10 18:25:17 -0500

Add another goblin sharper line.

--------------------------------------------------------------------------------
30b3e4ad61 | regret-index | 2025-04-10 18:07:56 -0230

Further changelog updates (through 41512545)
Some days late on the big talisman overhaul, but I did have a few more
monsters to fit into the version (and still might have a few more).

--------------------------------------------------------------------------------
41512545bd | regret-index | 2025-04-10 17:43:11 -0230

Let Xom confuse non-living and plant xp-granting monsters
75e0785 tried to prevent decorative plants, battlespheres, and other
spell-extensions from being confused by Xom by checking holiness, which
misses plenty of monsters that are reasonable to confuse (and can still
be confused by e.g. Confusing Touch) like gargoyles or oklob plants.
With 62137d7 providing a singular clean check for not-really-real
monsters, we can just use that instead.

--------------------------------------------------------------------------------
f081bcc90c | regret-index | 2025-04-10 17:43:11 -0230

Bring back hippogriffs with new gimmicks for Bailies
Hippogriffs were removed in fc24509 for being very plain melee-only
monsters. In the spirit of the previous commit adding wyvern-riders to
Bailies and 5e5e084 returning crocodiles for early portal purposes with
new gimmicks, I'm reviving these heraldric beasts for use in some of the
underperforming axe bailies. In this position, their description gives the
explicit status of them as both mascot and guard dog, and they are also
given the following two new and old gimmicks:

 * A new spell, Beckoning Gale. This smiting attack does low, AC-checking
   irresistable damage and pulls the target forward up to two tiles, if
   possible. This should reduce somewhat reduce the capacity for
   approaching weaker bailies through constant retreat, defeating the
   entire effect of an organized fortress, while also serve as a
   reasonable stepping-stone between Sewer crocodiles and Ice Cave reapers
   and Swamp alligators / swamp worms. (It is also part of continued
   attempts to make Air feel like an element with reasonable
   manifestations throughout the game relative to other elements.)

 * Warning Cry, as we're possibly stretching a little thin (putrid
   mouths? bunyips?) but which otherwise reasonably fits them pulling
   players forward into worse positions and their new guard-pet flavour,
   as well as reducing their approaching speed and Beckoning Gale cast
   rate both.

Naturally, as with the previous commit, this comes with more fix-ups to
the bailey.des file and some adjustments of their underperforming new
home layouts. They otherwise are not returning to standard D, Lair, or
Shoals spawns- it'd defeat the point of making portals differ from their
branches to share them in D, in Lair they're individually unimpressive
monsters that have no guarantee to find other monsters, and Shoals has
plenty enough movement control gimmicks as is. They do, however, get to
place in their old special_room_mythical_zoo placement, finally getting
rid of the not-exactly-storied hell rat from the list and letting it have
something unique to stand out with. In the future, they might fit the
occasional Necropolis portal-themed ghost vault, too.

The hippogriff tile further adjusts roctavian's edits to Denzi's
hippogriff tile. The Beckoning Gale icon uses a CC0 spell icon by
frosty_rabbid combined with PleasingFungus's Lesser Beckoning icon, and
the vfx alters Denzi's old Airstrike icon.

--------------------------------------------------------------------------------
506a72f698 | regret-index | 2025-04-10 17:43:11 -0230

New monster: goblin riders (of wyverns), for bailies
Bailies somewhat continue the trend of older Sewers in mostly containing
monsters from nearby floors plus the trend of older Ossuaries having very
little for unique features or mechanics. While they get to abuse equipment
to brandish reaching / cleaving / boomerangs as well as orc knights, they
don't have a lot else that isn't very map specific (and even then, most of
those don't try to push very hard on novel mechanics, just on monsters a
bit deeper into the Dungeon past Bailey depth). A little bit of additional
variety can go a long way here.

Goblin riders ride wyverns, a heraldic beast chosen to try and liven up
the relatively singular military flavour of bailies, as well as a monster
that has always been somewhat bland as a breathless faux-dragon (later
than current steam dragons) or fast melee monster (near bullfrog and water
moccasin depth). Goblins have been chosen to ride them half to prop up
the current unavoidable usage of them as D:1-4 enemies in a D:7-10 portal,
and half to expand player coglin flavour a little bit further in the form
of goblins trying all sorts of means to gain additional power.

(Mechanically, they function in the same capacities as spriggan riders;
spear-wielding flying fast monsters bulkier than the base of either, which
can spawn either on death. This gets to deploy a straightforward and
established mechanic quite far away from its other use, while not being
super difficult to parse overall. They're between orc warriors and orc
knights in stats otherwise, and appear in most of the non-over-arching
gimmick polearm bailies to help strengthen ones with underperforming
killstats or weaken ones with overperforming killstats. They also get some
sparse use in some large goblin-plus-other-monster D vaults, since this is
still a somewhat low count otherwise.

While I'm here, the vampire bailey has been moved to axes and gets
wyvern zombies; it's been underperforming since ebf5b86, there are
fairly more polearm bailies than axe bailies, vampires had equal apts
in both weapon types, and it can match the deployment of goblin
rider and the Order of the Dragon without needing to do a fair bit of
work to make goblin rider derived undead tiles work.)

Their tile combines ontoclasm's wyvern tile, roctavian and Sastreii's
goblin tile, and roctavian's edits of ontoclasm's spriggan rider tile.

--------------------------------------------------------------------------------
5a9280516a | Isaac Clancy | 2025-04-10 17:33:14 -0230

Fix floor tiles sometimes spawning instead of electric eels (steves)
When placing an electric eel, if there isn't any water near by it
should place water and then place the eel in the water. However, it was
placing a floor tile instead.

--------------------------------------------------------------------------------
f942cfc08c | DracoOmega | 2025-04-10 17:16:56 -0230

Fix werewolf howl being noiseless and working while silence (Ge0FF)
It now makes as much noise as a regular shout, which is fairly loud for
something that can happens a lot, but probably makes more thematic sense,
at least.

--------------------------------------------------------------------------------
b567cd7934 | DracoOmega | 2025-04-10 17:05:20 -0230

Mark protean talismans as always useless to undead (MolochManiac)
Even if not for the same reason as other talismans.

--------------------------------------------------------------------------------
0908c37db5 | DracoOmega | 2025-04-10 17:04:38 -0230

Fix ?acq sometimes giving protean talismans (Lici)
This also incidentally allowed undead to acquire specifically those, since
the fact that they don't transform the player meant they weren't marked as
always useless.

--------------------------------------------------------------------------------
6e034a266e | DracoOmega | 2025-04-10 16:25:17 -0230

Make horns not require bones (so that statue form doesn't meld them)
This is largely to be consistent with other aux-slot-blocking mutations in
statue form (which are generally all kept).

This logic originally existed to prevent octopodes from mutating horns, and
now that 'can randomly mutate' and 'is suppressed in a form' logic are more
intertwined, this meant that statue form would meld this aux (and only this
aux). Which even let minotaurs wear helmets!

I realize that horns are bones in real life, and not found in cephalopods,
but 'something approximating the shape and function of a horn' is good
enough in my opinion (after all, they'd be made of stone in statue form,
just like hooves, which still function just fine). We can just assume that
octopode 'horns' are entirely made of chiten, like their beaks.

--------------------------------------------------------------------------------
880612a73a | DracoOmega | 2025-04-10 16:12:24 -0230

Correct outdated Repel Missiles description (cool 3)

--------------------------------------------------------------------------------
8d87ab35fb | DracoOmega | 2025-04-10 13:01:27 -0230

Don't make Spellmotor attacks against firewood

--------------------------------------------------------------------------------
40b5ba378e | DracoOmega | 2025-04-10 13:01:13 -0230

Don't let {!a} inscriptions stop spellclaws and similar (CarefulOdds)
The intent of the code was that various 'automatic' attacks like
spellclaws, spellmotor, and oni potion cleave, would never make attacks
that could harm allies or incur penance. Rather than prompting the player,
they simply wouldn't occur.

Which I think is still fine for unrand weapons with splash damage and the
like (where constant prompts could be intrusive for minor gain), but it
interacts oddly with the {!a} inscription, which now makes *any* attack
prompt (and thus prevents these automatic attacks from ocurring.)

One possible issue is that this inscription is used both for "My attack is
low-value, so don't waste actions making it" in which case there's no
reason anyone would want to skip *free* attacks. The other is often "This
weapon has *Rage on it and I don't want to berserk."

But inscriptions probably shouldn't have a 'gameplay' effect (where the
player can turn a mechanic on or off, but only by changing the inscription
on their weapon). So instead, we simply ignore that inscription now, which
is likely far more intuitive to everyone instead. (I know *I* didn't
expect this behaviour, until it was pointed out.)

--------------------------------------------------------------------------------
9dadf00a51 | DracoOmega | 2025-04-10 12:52:02 -0230

Don't hit neutral enemies with medusa tendrils or Fungal Fisticloak (midn8)
While they could already technically hit you back, 'automatically' drawing
their attention is perhaps not desireable. (Also, while it fortunately
didn't actually angry Ely, that was probably *also* a bug.)

--------------------------------------------------------------------------------
48baaf208d | DracoOmega | 2025-04-10 12:09:19 -0230

Only show plusses of evokers in inventory
Will hopefully make it slightly less confusing to see shops and vaults
with +2 and +3 evokers that are all actually the exact same as each other.

--------------------------------------------------------------------------------
991b9104fa | DracoOmega | 2025-04-10 11:40:20 -0230

Fix inverted logic in Sack of Spiders check (Namsan)
It would only let you use it while there *wasn't* space (and you were
casting a damage aura, and tried to cancel)....

--------------------------------------------------------------------------------
d632a87c15 | hellmonk | 2025-04-09 23:56:47 -0500

Untweak merfolk aptitudes.
Merfolk's longblade and polearm apts were changed to give them more weapon
variety pretty much immediately before long blades were made to scale with
dexterity instead of strength. The stat changes encouraged the same thing,
since dex works with merfolk's huge dodging apt, so long blades became
dominant. So let's revert the apt change and try once again to strike a
balance; longblades back to +1 and pole back to +4. This reverts 15338bc.

--------------------------------------------------------------------------------
b23fe84fff | hellmonk | 2025-04-09 23:55:23 -0500

update credits

--------------------------------------------------------------------------------
8d68d41625 | Paperbell | 2025-04-09 23:51:26 -0500

Fix "Aiming Wall Jump instantly removes constriction" (#4460)
The constriction removal now happens after the targeting and checking
for exclusions.

Closes #4456
--------------------------------------------------------------------------------
e720cd608b | DracoOmega | 2025-04-10 00:07:15 -0230

Prevent kraken simulacra from walking into land. (Various)
8ec9f77 effectively converted all simulacras habitat into normal
amphibious, allowing kraken simulacra to leave deep water. A couple vaults
use these in ways that could be excessively dangerous, so I'm
special-casing to toss them back in again.

After a little discussion, I think spectral and bound kraken can be allowed
to leave the water (it always felt rather silly that they couldn't, despite
being non-physical and flying) and temporarily disable the one vault that
uses them early enough for this to be a potential problem until Index can
review and adjust it.

--------------------------------------------------------------------------------
0d869b6020 | DracoOmega | 2025-04-09 23:21:56 -0230

Fix a few things ignoring item-based/temporary monster flight (WizardIke)
An accidental oversight caused by 238f98a3a70114a0d7. Now, mons_habitat
will automatically include any source of flight.

(And prune another bit of code that should now be unnecessary.)

--------------------------------------------------------------------------------
2e7bcb65c5 | DracoOmega | 2025-04-09 22:47:57 -0230

Allow ?summoning to make monsters over lava (WizardIke)
RANDOM_COMPATIBLE_MONSTER's type was only resolved to a real monster after
create_monster() had already searched for a compatible place to summon it
and the habitat it defaulted to wouldn't allow it to exist over lava (it
basically considered it a giant land monster, so deep water was okay, but
not lava).

This meant that even in places where ?summoning had a high chance of making
a flier, if the player was surrounded by lava, nothing would be produced at
all. Instead, resolve the random monster type *first* and then look for a
place to put it.

(I don't *think* anything meaningfully relies on the current ordering, and
monsters placed by vaults and level gen do not use create_monster() at all,
as best I can tell, so this probably has little effect outside of shadow
creatures.)

--------------------------------------------------------------------------------
f562faade5 | DracoOmega | 2025-04-09 22:47:57 -0230

Shrink broodmothers to keep them from swimming.
This is mostly to improve UI behavior regarding Sack of Spiders (where it
was the only result that could survive deep water) and isn't expected to
have a major impact otherwise. (Nothing they summon could swim anyway.)
Naga and anyone in serpent form will perhaps be happier by a minuscule
amount.

--------------------------------------------------------------------------------
09dec714be | DracoOmega | 2025-04-09 22:47:57 -0230

Refactor summon space checks, add a few more, fix oddities
This refactors the checks for 'enough room to summon a monster' added by
f2a3531c2594a0d with the intent of reducing boilerplate, by wrapping the
error message and bundling stop_summoning_prompt() together with it into a
single player_summon_check() function that can be used succinctly.

It also adds these checks to a number of evokers - sack of spiders, horn of
Geryon, box of beasts, and phantom mirror. In the process, it also fixes
some oddities with a couple of these. If the sack or box failed to create
a monster (but *not* the horn!) failed to produce a monster, it would not
take any time nor use up the evoker charge. But this was a real attempt,
so if the player had any chance at all of making broodmothers, they could
infinitely use the sack over deep water and fail for 'free' until rolling
high enough to get one.

Now, alas, an evoker failing to do anything still uses up the charge to
prevent these sort of shenanigans (but the game should be much better at
preventing the player from doing so in the vast majority of cases).

A few god abilities also get summon checks - Infernal Servant for space
and Infernal Legion / Blood for Blood for damaging auras.

Finally, fix Sphere of Battle not appearing while the player is maintaining
a damaging aura like Polar Vortex (which couldn't even hurt it!) while also
no longer spamming mysterious messages every turn that it wasn't able to
summon one due to a lack of space.

--------------------------------------------------------------------------------
238f98a3a7 | DracoOmega | 2025-04-09 22:37:28 -0230

Allow mons_class_habitat to return HT_FLYER
Instead of having multiple different callers of this function manually
check flying status afterward and add HT_FLYER onto the return value
themselves.

It's now in the same category as 'considering giant monsters amphibious for
most purposes' (with the ability to ignore this to look at 'core' habitat,
if desired.)

This also fixes an issue with f2a3531c259 where the checks for flying
summons did not properly account for them flying.

I am... not 100% sure this doesn't have unexpected effects on some part of
code that doesn't expect flying monsters to have HT_LAVA, but I didn't see
anything obvious upon looking into it, and it feels like a cleaner way to
use our new habitat bitflags.

--------------------------------------------------------------------------------
f2a3531c25 | Isaac Clancy | 2025-04-09 22:34:28 -0230

Don't waste a turn when summoning with no space (NormalPerson7)
When trying to summon a creature where you can't see any available
space to place it, don't spend a turn or any resources.

Fixes #3837

--------------------------------------------------------------------------------
2aa98cafca | DracoOmega | 2025-04-09 19:14:55 -0230

Prevent players from sometimes erupting in steam from lava damage (Lici)
Same problem as the last commit, just in a slightly different place!

--------------------------------------------------------------------------------
9cda426663 | DracoOmega | 2025-04-09 19:10:17 -0230

Fix all ice damage sometimes freezing players (cool3)
Instead of just those in Aqua form.

--------------------------------------------------------------------------------
1b03d5c995 | DracoOmega | 2025-04-09 12:47:39 -0230

Don't say 'Nothing Appears to Happen' when using a flux bauble (Oneirical)
Even when something obviously happens!

--------------------------------------------------------------------------------
4cd9bc0ae1 | DracoOmega | 2025-04-09 12:42:37 -0230

Buff Bat Swarm
While intended to be a mildly situational escape tool, some aspects of its
parity with old batform still left it a little too unappealing in the parts
of the game where the player is likely to be able to use it.

Give it a much larger EV bonus (beyond just making you tiny, which wasn't
even beneficial to felids, for instance) as well as making the ability
instant (so you can immediately start to flee, if that's what you want),
along with very slightly reducing its cooldown.

--------------------------------------------------------------------------------
22d0c26b9a | DracoOmega | 2025-04-09 12:39:04 -0230

Adjust staff/talisman acquirement (Lici / regret-index)
Make talisman acquirement ~40% more common (now that there are a lot more
options to choose from).

Make staff acquirement rarer, but make it usually produce a randart staff
(which makes it a little more likely to appeal to a wider audience when it
does actually happen).

--------------------------------------------------------------------------------
4300a70641 | DracoOmega | 2025-04-09 12:28:13 -0230

Don't generate Inkwell talisman randarts with rPois (Oneirical)
Since that form has rPois+++ already.

--------------------------------------------------------------------------------
d59af15f9f | DracoOmega | 2025-04-09 11:47:06 -0230

Don't crash when unequipping a flight-granting item between floors
As part of the bug fixed in the previous commit, if the item removed
granted flight, the game would try to land the player while their position
was still out of bounds, thus crashing the game. Since the code in
land_player() that cares about position only even makes sense if you're on
a real tile, just skip it in this case.

(The current bug that caused an item to wrongly unequip should be fixed,
but there are other ways this could happen, so it seems better not to
crash.)

--------------------------------------------------------------------------------
8df3e7e299 | DracoOmega | 2025-04-09 11:47:06 -0230

Better handle melded slot-granting items on floor transition (Zeldest)
The block of code in tags.cc that handles auto-unequipping items the game
determines should not be able to be equipped (primarily intended as save
compat, to deal with items or species slot restrictions being changed
between versions, but which happens to also get called between floors) was
overzealous in some situations.

For instance, if the player wears an unrand that grants additional item
slots, and transforms into a form which melds it (thus 'removing' those
slots), the items in those slots are simply melded until they untransform.
But upon loading the save (such as by changing floors), the game would not
see the slot-granting item, and thus think the player was wearing too many
items and remove some of them.

Now, when doing save cleanup, the game should count all slot-granting
unrands as if they were unmelded.

--------------------------------------------------------------------------------
c42becad87 | DracoOmega | 2025-04-09 11:47:06 -0230

Raise the internal mid-calculation cap on spell fail
This was lowered to 210 by 20a70ad to ensure no overflows would happen
mid-calculation, but when the cap on wizardry stacikng was removed by
9f3f650 it became possible for a 'capped' spell difficulty to be reduced
to less than 100% fail (and recent talismans offering school-specific
wizardry have made this easier to achieve). This results in very strange
effects where an incredibly hard spell can be made to have non-zero success
more easily than one would expect, but then its success rate does not
improve further even with significant skill.

For instance, prior to this commit, combining Vehumet wizardry with 2 rings
of wizardry and rime yak form gave 67% fail on Polar Vortex even with 0
spell skills (which did not improve at all until more than 13 skill was
gained). It should now remain over 95% fail by 10 skill, and improve more
smoothly.

(This is, of course, still an *enormous* improvement to spell success, but
is less powerful than one might expect given that Polar Vortex with that
much spell power still averages less than 12 damage per cast!)

I am pretty sure the new number is still safely out of range of any
overflows.

--------------------------------------------------------------------------------
ee18ce180a | DracoOmega | 2025-04-09 11:47:06 -0230

Make Quill form constriction-immune (Midn8)
For parity with spiny.

--------------------------------------------------------------------------------
7415e38c4b | DracoOmega | 2025-04-09 11:47:06 -0230

Fix Ghoul and Vampire still appearing on the aptitudes screen (RelicWraith)

--------------------------------------------------------------------------------
f55667836f | DracoOmega | 2025-04-09 11:47:06 -0230

Don't consider having a bauble a reason to train Evocations (Kab)

--------------------------------------------------------------------------------
adcc90f0a7 | DracoOmega | 2025-04-09 11:47:06 -0230

Don't generate Fly on randart talismans of flying forms (r)

--------------------------------------------------------------------------------
83d59caeef | David Lawrence Ramsey | 2025-04-08 13:59:49 -0500

Fix DES typo (caiman-dorohedoro).
Closes #4457.

--------------------------------------------------------------------------------
9e0ece63c4 | DracoOmega | 2025-04-07 22:43:06 -0230

Tweak Shapeshifter starting kit (various)
Give them back their potion of lignification, which serves a different role
than flux baubles (since the latter isn't helpful on D:1).

Reduce the number of flux baubles from 4->3 (but increase the duration of
each by ~12%).

And finally, let them start with 2 Fighting skill instead of 1 (which is
pretty standard for backgrounds we expect to start the game by hitting
things.)

--------------------------------------------------------------------------------
09812d1b2c | DracoOmega | 2025-04-07 22:36:17 -0230

Sort talismans/baubles slightly later in the inventory menu
They appear at the top of the screen when eVoking items, even though they
are probably used much less frequently than wands are. Probably it would
be better if they were listed afterward instead.

--------------------------------------------------------------------------------
3ac7d70a2f | DracoOmega | 2025-04-07 22:30:06 -0230

Say that temporary terrain is 'temporary' rather than 'summoned'
The latter made sense for Summon Forest (and is arguable for several other
sources of temporary terrain), but is a bit silly for rime yaks. Just
saying it's temporary feels more general to me.

--------------------------------------------------------------------------------
a8654e4a82 | DracoOmega | 2025-04-07 22:28:07 -0230

Allow digging frigid walls (dilly)
To be clear, this doesn't allow digging through metal walls that have been
frozen. Just doesn't prevent the player from digging through rock their
rime yak has been fighting near.

--------------------------------------------------------------------------------
a4083e643d | DracoOmega | 2025-04-07 22:06:39 -0230

Don't let various clouds override blastmotes (Silken)
0d4b2e2 changed blastmotes to be overridable by every other cloud so that
players couldn't place one and stand on it to be 'immune' to incoming
hostile clouds for as long as they didn't move, but 3537ca1 shortly
thereafter made blastmotes explode on the player if they stood still,
removing almost any need for the former commit. Exploding yourself every
single turn is not great catoblepas protection!

In fact, blastmotes being so overwritable meant that you couldn't even cast
blink without immediately replacing the clouds with nothing (since the
translocation cloud would overwrite it!). So let's just revert this.

--------------------------------------------------------------------------------
5f4cc31479 | DracoOmega | 2025-04-07 21:59:43 -0230

Fix tengu talons being melded in all forms (including no form!) (Taran)
6e34e43 refactored the logic previously used to prevent species without
feet from mutating hooves/talons, but alas tengu were not considered to
*have* feet, so their talons were just permanently suppressed for the lack
of them.

But they have something 'close enough' to feet, so let's just remove this
flag.

--------------------------------------------------------------------------------
4b0afb21ba | Isaac Clancy | 2025-04-07 21:22:25 -0230

Rework habitats
Store habitats as a bit mask of the different terrain categories
monsters of that habitat can survive on. This lets us easily check of
one habitat is more restrictive than another or if a monster can survive
on a category of terrain e.g. land, water, shallow water or deep water
etc.

[Committer's note: Fixed a minor bug with wizmode listing of monster
 habitats, removed unused random_monster_at_grid() function and simplified
 code supporting it.]

--------------------------------------------------------------------------------
dec1508c23 | gammafunk | 2025-04-07 16:46:52 -0500

Fix an item spec in a vault (Lici the Crawler)
In the vault gammafunk_dig_for_victory, when identification was
simplified in 008097b4, the pre_id statement was added to the wand
specification without a space. This broke the charge specification.

--------------------------------------------------------------------------------
0db3892cde | DracoOmega | 2025-04-07 19:06:13 -0230

Fix amorphous players not being net-immune (cool3)

--------------------------------------------------------------------------------
a1fbd1fdd8 | David Lawrence Ramsey | 2025-04-07 16:21:44 -0500

Update manual for gnolls' treasure sense.

--------------------------------------------------------------------------------
b02921b1fd | DracoOmega | 2025-04-07 18:41:55 -0230

Fix amorphousness not making the player unconstrictable (cool3)

--------------------------------------------------------------------------------
255900d39e | DracoOmega | 2025-04-07 18:28:01 -0230

Properly show fortress crab's rCorr on the talisman screen (Lici)

--------------------------------------------------------------------------------
97c528e2ac | DracoOmega | 2025-04-07 18:28:01 -0230

Be explicit that power doesn't make seismosaur eggs hatch faster
Since this is a thing players ask about with some regularity.

--------------------------------------------------------------------------------
47bbfe444f | DracoOmega | 2025-04-07 18:28:01 -0230

Let solar ember charge actually decay
It was intended that the 'every second hit' property of solar flare
wouldn't maintain charge for long times (so there was no incentive to ever
'charge' it in advance), but apparently ENCH_SPELL_CHARGED did not decay
at all. Now it should properly only last a few turns (enough to reposition
mid-fight, but not to hold the charge for an extended time).

--------------------------------------------------------------------------------
ecf1ff5691 | DracoOmega | 2025-04-07 18:28:01 -0230

Allow WJC martial attacks to trigger a variety of post-attack effects
An increasing number of things had been coded to happen once per 'attack
action' on the player's part (as opposed to each 'attack', so that they
did not occur many times per Manifold Assault or quick blade multi-attack),
but this meant that they did *not* work for martial attacks (even though I
think it is reasonable to consider a movement that triggers an attack set
'an attack action')

Things that previously did not work with martial attacks, but now should:
 -Platinum paragon's support attack
 -Medusa form tendril attacks
 -Solar ember flare
 -Werewolf slaying bonus and Detonation Catalyst not expiring

(Technically Dith shadow mimic and Mark of Execution also didn't work
properly here, but good luck worshipping two gods at once.)

--------------------------------------------------------------------------------
7def2da44a | DracoOmega | 2025-04-07 18:28:01 -0230

Fix treasure sense mutation description properly
(It shouldn't still talk about their noses. That was the entire reason to
reflavor it.)

--------------------------------------------------------------------------------
b3d6f88162 | DracoOmega | 2025-04-07 18:28:01 -0230

Fix a couple issues with Breathe Rust
Make the beam actually stop where the player aims instead of forcing them
to press . to make it agree with the targeter.

Actually show that it can possibly affect greater than radius 1 if the
player has 12 shapeshifting or less (it already did this for higher skill),
which it could do in narrow spaces sometimes.

Don't prompt the player about harming themselves (since you're immune).

--------------------------------------------------------------------------------
2f037eda1b | gammafunk | 2025-04-07 14:25:46 -0500

Fix a mutation description (Ge0ff)
Strong Nose was renamed to Treasure Sense.

--------------------------------------------------------------------------------
dd9937bba7 | David Lawrence Ramsey | 2025-04-07 01:14:56 -0500

Fix food cache messages for new serpent form.
Since it's now called amphisbaena form. Also account for its having two
heads.

--------------------------------------------------------------------------------
04dd99a9a2 | DracoOmega | 2025-04-07 03:40:44 -0230

Fix save-upgraded naga/barachi still having old MUT_SLOW (Colgate)
Characters upgrade before the recent talisman push had the old mutation on
top of their *new* anatomy-based method of having slow movement, resulting
in being twice as slow as intended.

--------------------------------------------------------------------------------
6d63c99ee2 | yrdzrfxndfvh | 2025-04-07 00:40:50 -0500

fix typo

--------------------------------------------------------------------------------
c88dc84941 | DracoOmega | 2025-04-07 02:53:54 -0230

Fix rime yak frigid wall damage being buggily high (hellmonk)
The overriden get_special_damage function was a ghost brought back by the
rebasing I did prior to pushing to master, and corresponded to an earlier
implementation that used these numbers very differently. But it was causing
the game to ignore the damage formula specified in the form yaml (and
resulting in something like double the intended damage!)

--------------------------------------------------------------------------------
5438af56c9 | David Lawrence Ramsey | 2025-04-06 17:17:04 -0500

Replace random artefact -Cast with *Silence.
Since -Cast shouldn't occur on random artefacts anymore.

Closes #4449.

--------------------------------------------------------------------------------
c94a1da995 | DracoOmega | 2025-04-06 19:12:42 -0230

Tweak default form name gen, improve wizmode form change command
Wizmode now lists forms in alphabetical order instead of enum order (which
was increasingly hard to find anything in now), as well as hiding more
deprecated forms.

Underscores should no longer show up in a handful of form names when viewed
on % (eg: "rime_yak-form"). I've opted to shorten some two word names into
one (eg: "yak-form") which is a little less specific, but reads better than
"rime yak-form" to me.

--------------------------------------------------------------------------------
b6f76e6a27 | DracoOmega | 2025-04-06 19:12:42 -0230

Fix protean talismans falsely claiming they need 7 skill (various)

--------------------------------------------------------------------------------
f92b08d944 | DracoOmega | 2025-04-06 19:12:42 -0230

Fix Breathe Rust missing an in-game description (Lici)

--------------------------------------------------------------------------------
e46acfb542 | David Lawrence Ramsey | 2025-04-06 16:24:54 -0500

Add another philosophy name to artefact weapons.

--------------------------------------------------------------------------------
913ef12283 | hellmonk | 2025-04-06 16:13:28 -0500

Don't allow corner sniping with mcc

--------------------------------------------------------------------------------
ed398bb5f6 | hellmonk | 2025-04-06 15:35:00 -0500

Nerf permafrost slightly (again)

--------------------------------------------------------------------------------
18e4f2ac3a | hellmonk | 2025-04-06 15:29:52 -0500

Raise death form skill req.
Pending broader rework that won't make this version.

--------------------------------------------------------------------------------
459ca9329c | hellmonk | 2025-04-06 15:14:53 -0500

update comments

--------------------------------------------------------------------------------
cdc85123d2 | hellmonk | 2025-04-06 15:13:14 -0500

checkwhite

--------------------------------------------------------------------------------
5b40c49a21 | sdynet | 2025-04-06 15:12:47 -0500

Change Kiku and Zin passive to max at ****** (160) piety. (#4052)
Change the chance of passive power to max percent out at 160 piety,
like other gods:
 * Kiku's torment protection
 * Zin's polymorph protection
--------------------------------------------------------------------------------
1517c42a8e | hellmonk | 2025-04-06 15:08:35 -0500

Max berserk extension at 160 piety (sdynet).

--------------------------------------------------------------------------------
302fb0c024 | WizardIke | 2025-04-06 14:33:03 -0500

Change how flayed duration increases when a flayed ghost is in view (#4440)
It used to increase by more per turn if your turns were quicker e.g.
taking a turn of length 10 auts would increase it by 5 auts but taking a
turn of length 1 aut would increase it by 50 auts and a turn being cut
short to 0 auts by your rest being interrupted would result in a crash.
After this change the increase is equal to half the time your turn took.
--------------------------------------------------------------------------------
da6aefb492 | WizardIke | 2025-04-06 14:31:55 -0500

Fix bump attacks with range using a turn when cancelled (Kab) (#4433)
If you attacked an enemy with a ranged weapon by trying to move into
their space and it give you a warning prompt, saying no to the prompt
would still spend a turn.
--------------------------------------------------------------------------------
bf7406bced | DracoOmega | 2025-04-06 03:51:07 -0230

Don't allow monsters to act on 0 delay turns (Darby)
A wild bug that has possibly existed literally forever. When
handle_monsters() is called, all monsters are given at least 1 energy,
regardless of how long the turn took - even if it was 0 aut! 0 aut turns
are used deliberately in a handful of places, including interrupted delays
of all sorts. Some practical examples include trying to autoexplore while
confused, or when the only unexplored part of the level is behind a runed
door.

But what this meant is that the player could repeatedly try to autoexplore
in those cases *and monsters would still act*, despite no turns passing!
This was somewhat hard to exploit by accident (since autoexplore being
cancelled due to hostile monsters in view did *not* result in 0 aut turns),
but possible in theory. For instance, one could use runrest_ignore_monster
settings to bypass that obstacle, then put an exclusion over themselves and
press autoexplore repeatedly. This could be used to let the player's allies
path back to them 'instantly' after a teleport without their summon timers
expiring, or to lure offscreen monsters into view without buff durations
decreasing or potentially more broken things nobody has thought of yet.

It looks like the original logic for monsters always getting at least 1
energy is that it predates the use of div_rand_round, so that sufficiently
fast player actions against sufficiently slow monsters could result in them
reliably never gaining any energy at all. That has not been the case in at
least 17 years, so I see no reason not to just let them gain 0 energy. It
should have no meaningful effect outside of this weird exploit.

--------------------------------------------------------------------------------
6054d9cdd8 | DracoOmega | 2025-04-06 03:51:07 -0230

Fix rime yak form having no prayer_action (BTC)
(Naga would still 'coil up' in front of an altar in this form, despite
having no coils.)

--------------------------------------------------------------------------------
da8ebc6330 | DracoOmega | 2025-04-06 03:51:07 -0230

Fix a crash with solar ember flare and summoners
Or perhaps other reasons that a target might be dead by the time we get
around to them.

--------------------------------------------------------------------------------
fc8086f953 | gammafunk | 2025-04-06 00:12:28 -0500

Fix a DES typo
In gammafunk_necropolis_ghost_abyssal_escape, a condition meant to check
for placement in Snake erroneously looked for Shoals instead.

--------------------------------------------------------------------------------
34aa4bc718 | regret-index | 2025-04-06 02:13:18 -0230

Move sky beasts out of Y and into F
Nobody previously knew what a sky beast was, beyond "like an ice beast
that flies", itself a loose generic fantasy monster monster that was moved
somewhat questionably onto the 'Y' glyph alongside the other yaks and
elephants for being a simple non-carnivorous quadruped long ago. The sky
beast tile has moved from a vaguely-legged cloud (f20cd82), to a crackling
coatl (46161bd), to a very abstract cloudy ray (4a87d9e), to the current
feathered manta ray (f2ebe9a). The last of these as finally made it
somewhat coherent to parse also unfortunately clashes with its original
status long ago in bodyshape as derived undead tiles are assigned to it,
with it currently being shown as a winged quadruped if undead despite only
very briefly having legs compared to the last fifteen years.

With F mostly established as 'Frogs and 'F'ish (electric eels will be
addressed eventually....), I am taking the opportunity to both make its
glyph and its derived undead shape a fish, as manta rays are. This is
possibly pushing the 'F'ish part of the glyph a little (mostly for being
the only one of them not fast), but it hopefully makes substantially more
sense than leaving it in the same space as yaks and elephants.

--------------------------------------------------------------------------------
a9e06e29dd | regret-index | 2025-04-06 02:13:02 -0230

Partial vault review, Necropolis vs talismans edition
While I'd prefer to normally be fairly more comprehensive in these sorts
of vault reviews, most of this review is heavily aimed at the Necropolis
feedback over the past week or so since its addition: while the first
Necropolis range was bugged for half of that period due to 052fbde to
mostly place on D:4 and D:5, this emphasized that the conversion of ghost
vaults to Necropolis subvaults still was tailored pretty heavily towards
minimal rewards beyond ghost XP in the earliest depths.

A variety of different approaches have been taken, as a result:

 * Necropolis portals can no longer appear on D:4, now starting the
   earliest at D:5. Aside from nudging it a bit further away from
   Ossuary depth, this is meant to allow player backgrounds a bit
   more power relative to the D:5-7 monster set as well as get more
   consumables or spells enough to handle early ghosts. I'm a little
   sad this no longer keeps the earliest range exactly in Temple's
   depth range, but the shift should help with nudging down threat
   and nudging up rewards.

 * New talismans appropriate to the flavour of various themed ghost
   subvaults (like element and spell-school match-ups, or newly golden
   dragon-coils for Gozag) have been added to vaults with relatively
   minimal rewards.

 * Ghost subvaults that were mostly unthemed or undead-focused replace
   one stack of gold with randart weapons. These are mostly (but not
   always) reaping or spectral, and which lean towards non-endgame
   two-hander equipment, to try and mildly help out the current swing
   towards shields as well as to offer something else enticing and
   unknown beyond gold early without warping overall balance much.

 * To match the 1/100 chance for the dancing chaos weapon Xom ghost
   vault to get the Mace of Variability, a fifth or so of the ghost
   subvaults get an additional 1/100 chance to explicitly place an
   item

 * The most lethal early ghost subvaults have been nudged further down
   in difficulty when very early, especially
   gammafunk_[...]_berserking_beasts and regret_index_[...]_air_whorl.

Alongside this, a handful of other large theme vaults and some shops
have been granted new talisman chances as would be appropriate.
Another vault review will be done before feature freeze for this 0.33
version, and some additional Necropolis subvaults that can accommodate
more talismans are likely to be made, but I would like to get further
feedback on the risk-reward status of Necropolis subvaults sooner.

--------------------------------------------------------------------------------
959a2634c1 | DracoOmega | 2025-04-06 02:07:06 -0230

Actually commit the changes I claimed I made to the last commit
Oops >.>

--------------------------------------------------------------------------------
53fe09bee8 | Isaac Clancy | 2025-04-06 02:00:11 -0230

Fix swapping between talisman of the same type
If one or both of the talisman are artifacts we need to change the
artifact properties applied to the player which we weren't doing.

Fixes #4412

[Committer's note: Fixed a conflict and edited a comment.]

--------------------------------------------------------------------------------
eed9a5f3f1 | Isaac Clancy | 2025-04-06 01:53:43 -0230

Fix incorrect max magic after using artifact MP+ talisman
Activating an artifact talisman that gives max magic points wouldn't
increase your max magic points until the game was reloaded and
deactivating it would incorrectly increase your max magic points until
the game was reloaded.

--------------------------------------------------------------------------------
8ec457024c | DracoOmega | 2025-04-05 20:55:12 -0230

Checkwhite

--------------------------------------------------------------------------------
5232bdbd2e | DracoOmega | 2025-04-05 20:30:45 -0230

Mildly improve Platinum Paragon's autotargeting (Oneirical)
It now realizes that it can't be placed over deep water/lava and will
select its default deployment position accordingly.

In addition, if there is no habitable space adjacent to any enemy, it will
fall back on the nearest habitable space to the player, instead of the
player themselves (who it can never be cast on). This should make it mildly
smoother to use with the quiver.

--------------------------------------------------------------------------------
a0e6e5b276 | DracoOmega | 2025-04-05 19:25:46 -0230

Allow Fire Storm to spawn vorticies on any terrain
Instead of just plain floor for some reason.

--------------------------------------------------------------------------------
5b159af9e7 | DracoOmega | 2025-04-05 19:21:08 -0230

Be more explicit about Medusa form's poisoning range (cfcfcfcfcf)

--------------------------------------------------------------------------------
05e272bded | DracoOmega | 2025-04-05 19:19:01 -0230

Remove self-damage restricton on Aqua form's steam clouds
It doesn't seem critical to prevent the player from making steam via
self-damage now that it uses a damage-based chance (which it did not when
this code was first written). And they could make steam from the water
that they bled from self-injury *anyway*...

--------------------------------------------------------------------------------
df68cfba8e | DracoOmega | 2025-04-05 19:17:26 -0230

Fix a unit test case
Simulacra should now be amphibious.

--------------------------------------------------------------------------------
b1c48543f7 | DracoOmega | 2025-04-05 18:54:09 -0230

Don't let Shadow Torpor immediately break Cause Fear
Technically this has wider-reaching effects, but for the most part it seems
harmless to slow a wandering monster without alerting it in the rare case
this will happen, while immediately cancelling the fear you just cast is
significantly unfun.

--------------------------------------------------------------------------------
b83392f031 | DracoOmega | 2025-04-05 18:52:13 -0230

Fix a bunch of forms incorrectly having pants on some species (Oneirical)
Forms which changed the base tile, but still allowed most species to keep
their pants were incorrectly drawing pants on top of cats and octopodes and
other species as well. This should stop that.

This is a bit of a quick fix, but a more thorough one seems not worth the
effort at the moment, given the refactoring that might be involved.

--------------------------------------------------------------------------------
1042a406b4 | DracoOmega | 2025-04-05 18:50:42 -0230

Fix dragon form breath using an unintended formula (Oneirical)
While the UI would list the 'intended' damage of dragon form's new breath,
the code to calculate the power when actually firing accidentally used
leftover code from prior to the rework, which was purely XL-based. This
happened to result, in practice, with the damage being *wildly* higher than
intended - with golden breath potentially doing 3d74 x2 at XL 27!

--------------------------------------------------------------------------------
4491eb6210 | DracoOmega | 2025-04-05 17:31:37 -0230

Don't skip a variety of attack effects on quick blade's second attack
This was broken by d67f6492281a5b8d0 which fixed a major bug, but had
several unintended side-effects. For instance, the second attack of a
quick blade set:
 -Couldn't fumble in water
 -Wouldn't flinch away from a monster you're afraid of
 -Didn't get the accuracy bonus of Manifold Assault or Kinetic Grapnel
  (or Grapnel's slaying bonus, either)
 -Couldn't trigger berserkitis (arguably okay)
 -Didn't add to attack action counts (not actually sure which of the two
  behaviours makes more sense here)

Now specifically skip the cleaving target phase, while running the rest of
the code in handle_phase_atempted()

--------------------------------------------------------------------------------
b00addd42c | DracoOmega | 2025-04-05 17:07:36 -0230

Remove a couple now-unused functions
As of 26fe8ce

--------------------------------------------------------------------------------
0526e4ba42 | DracoOmega | 2025-04-05 17:06:18 -0230

Fix hailstorm being very slow on webtiles
Technically, this was also possible in local tiles, since the culprit was,
very ironically, the reduce_animations option (which defaults to true only
online) which tries to make beam animations quicker by not drawing each
cell and only doing a delay the end of the total beam (equal to 15 ms
longer than the per-cell time).

However, hailstorm fires an individual beam at each cell (with a draw delay
of 0), meaning that reduce_animations caused it to have a minimum delay of
15 *per cell*.

Now it will only add a per-beam delay if the draw delay was more than 0.

--------------------------------------------------------------------------------
8ec9f772c5 | DracoOmega | 2025-04-05 16:24:32 -0230

Allow simulacra to swim
They're made of ice and ice floats!

(More pertinently, this was a mild issue with Sculpt Simulacrum, where the
blocks of ice it made *did* float, but the simulacra did not, sometimes
resulting in the blocks of ice hatching into nothing in confined spaces.)

For the most part, this should have limited effect on monster balance (the
notable simulacra used in Ice Caves generally could already cross water
due to their size or flight anyway).

--------------------------------------------------------------------------------
3ee7a2e22b | DracoOmega | 2025-04-05 16:21:50 -0230

Mildly buff Sculpt Simulacrum
The simulacra now can act immediately upon transforming (instead of a turn
or two later), mildly increasing the speed with which the spell can start
doing damage.

--------------------------------------------------------------------------------
16e3111c1b | DracoOmega | 2025-04-05 16:20:16 -0230

Mildly nerf Eringya's Surprising Crocodile (hellmonk)
The spell's utility is very strong and that may make its direct damage a
bit too high at the same time, so this nudges it down approximately 20% or
so.

(Some of this is done by reducing the damage multiplier of the initial
attack, but also the crocodile's base damage. Since this is actually used
as an enemy in sewers, I have raised its HD/HP very mildly in its natural
form to try and keep it 'approximately the same' while weakening it for
the spell.)

--------------------------------------------------------------------------------
e530c6ecf2 | DracoOmega | 2025-04-05 16:16:59 -0230

Don't claim Walking Scroll's skill bonus is 0.5 higher than it is (Lici)

--------------------------------------------------------------------------------
a6c7e407a8 | DracoOmega | 2025-04-05 16:16:30 -0230

Don't claim storm form has rPois- (cool3)
A copy-paste error from when this was first yaml-ified, I think.

--------------------------------------------------------------------------------
21d5be53e8 | DracoOmega | 2025-04-05 14:54:50 -0230

Fix a syntax error in sphinx riddle reactions (cool3)

--------------------------------------------------------------------------------
2990fdbb04 | DracoOmega | 2025-04-05 14:42:52 -0230

Remove most autogenerate resistance fakemuts for forms
Now that the form properties screen lists all of these in a clear and
concise way, I don't think this is needed. And the current patchwork of
special cases (which existed before the new properties screen) claims a lot
of slightly-inaccurate things about different forms (like claiming a
werewolf's rC is from having an 'undead body') that are extremely not
future-proof for any form changes and additions.

--------------------------------------------------------------------------------
c7b98f8d14 | DracoOmega | 2025-04-05 14:42:52 -0230

Fix A screen claiming dragon form sill breathed only fire (Lici)

--------------------------------------------------------------------------------
a54df15eb3 | DracoOmega | 2025-04-05 14:42:52 -0230

Always be able to make at least one bee, at very low skill Hive form
In practice, I think nobody will ever use it at this low skill anyway, but
it makes the talisman description look better than claiming you will
produce -0.80 bees.

--------------------------------------------------------------------------------
af41fc2b4a | DracoOmega | 2025-04-05 14:38:16 -0230

Fix hive form giving negative regen at very low skill. (Lici)

--------------------------------------------------------------------------------
8c2c6fc0b0 | DracoOmega | 2025-04-05 13:36:02 -0230

Be a little more explicit in flux bauble's description (Planckenstein)
Be clear that the flux damage happens on every 3rd hit. (The A screen
already said this, but that requires actually using the consumable.)

--------------------------------------------------------------------------------
c14d4a9f51 | DracoOmega | 2025-04-05 13:00:45 -0230

Fix medusa stinger being able to do damage with slaying (Lightli)
Noticed indirectly via a Pain Bond crash (ie: the direct damage from
stinging one monster killing your next target), but it isn't intended that
a slaying ring should make a non-direct-damage aux do damage anyway.

--------------------------------------------------------------------------------
d062ae842b | DracoOmega | 2025-04-05 05:53:29 -0230

Fix a crash with creeping infernos exploding (aliasthespectator)
(Or any other fire/lava damage beam without an agent, though it's not
immediately clear if there are any.)

--------------------------------------------------------------------------------
0cbbbf96d3 | DracoOmega | 2025-04-05 03:28:24 -0230

Fix medusa stingers still doing impact damage
Left over from an old version that worked differently (but easy to miss,
since the message saying whether they did damage or not was also removed
to avoid saying 'but does no damage' all the time!)

--------------------------------------------------------------------------------
82ae926f7e | DracoOmega | 2025-04-05 03:28:24 -0230

Fix broken medusa form description on mutation screen (sdynet)

--------------------------------------------------------------------------------
33e5050f0a | David Lawrence Ramsey | 2025-04-04 22:36:44 -0500

Fix typos.

--------------------------------------------------------------------------------
7b1675eec6 | David Lawrence Ramsey | 2025-04-04 22:36:44 -0500

Fix spelling.

--------------------------------------------------------------------------------
7c4187d92a | DracoOmega | 2025-04-05 01:05:28 -0230

Yet more undeprecating of spider form
I really need to figure out how to build the tag upgrade build locally so
I don't keep spilling piecemeal commits all over master like this.

--------------------------------------------------------------------------------
b912aae84b | DracoOmega | 2025-04-05 00:53:34 -0230

Undeprecate *another* part of spider form
We'll get there eventually, I promise.....

--------------------------------------------------------------------------------
7fc1159351 | DracoOmega | 2025-04-05 00:42:42 -0230

Try again to fix the tag upgrade build

--------------------------------------------------------------------------------
eea17693e1 | DracoOmega | 2025-04-05 00:29:48 -0230

Remove major version tags around spider form
Since it's been un-deprecated.

--------------------------------------------------------------------------------
905dc14bd5 | DracoOmega | 2025-04-05 00:10:42 -0230

Delete deprecated form yaml on tag upgrade
In theory, it might be nice if form-gen.py could detect forms from an old
major version and ignore them automatically, but this seems like a quick
fix to the tag upgrade build issues.

--------------------------------------------------------------------------------
270924a3fa | DracoOmega | 2025-04-04 23:38:08 -0230

Diversify Wanderer talisman options a little
Instead of just Quill or Protean talismans, wanderers can get any of the
protean-tier talismans directly (as a 'good' item), a handful of flux
baubles, or even an Inkwell talisman (if they also have a spell skill).

The current skill requirements does mean they won't start with enough skill
to use their only talisman if they start with a tier 2 one, but that may
just be par for the course for wanderer.

--------------------------------------------------------------------------------
12a86a1876 | DracoOmega | 2025-04-04 23:38:08 -0230

Mildly nerf / adjust statue form
Statue form has been dominantly popular for many species since the talisman
rework, providing an unparalleled defensive bonus to species that otherwise
are sorely lacking for AC. And it's fine for it to be popular and strong
(it should be strong, given the investment involved and its other
downsides!), but the sheer degree of difference in power some species, like
felids or octopodes, gain from reaching this this form is potentially
troublesome and risks still being the central focus even with more diverse
options available.

So now statue form also gives -20% EV while in it. This will affect felids
the most, and trolls the least, among those who regularly use it (and that
is fine, since trolls had a real decision between armour and statue form,
while felids could often feel like there was no equivalently viable
option at all.) And, thematically, it's always felt a little weird that one
is just as dodgy as a solid stone statue.

(I realize that statue used to penalize EV in past and that was removed,
but context has changed enough that I think it's worth trying again.)

In addition, statue exchanges some of its base UC bonus for flat strength.
The aim is that this is 'about the same' for unarmed characters, while
being a buff to strength users of the form, to slightly diversify its
benefits.

--------------------------------------------------------------------------------
b20e0214d6 | DracoOmega | 2025-04-04 23:38:08 -0230

Adjust the skill thresholds of some talisman tiers
Now that the old flux-tier has been expanded with a wider variety of forms,
I want to push protean tier and blade tier a little further apart, and then
nudge statue tier a tiny bit higher as well. (And I think we should stop
using t1.5, since protean is a full diverse thing now and not just a
stopgap to 'real' forms.)

Tier 1 remains 0-7
Tier 2 (ie: protean tier) is 8-14 (was 7-14)
Tier 3 (ie: blade tier) is 12-20 (was 10-19)
Tier 4 (ie: statue tier) is 17-25 (was 16-25)
Tier 5 (ie: storm tier) remains 23-27

Technically this means that tier 1 and 2 don't overlap at all, but Flux is
still intended to bridge that gap.

Blade hands and serpent get minor buffs to put their 'starting' stats
similar to where they used to be at 12 skill (ie: blade hands only gives
-80% base AC at this point).

--------------------------------------------------------------------------------
035eff260e | DracoOmega | 2025-04-04 23:38:08 -0230

Significantly adjust talisman drop rates
Talisman chance for floor items is now by tier instead of by individual
talisman (reducing boilerplate and making more future-proof). Curve of
tier versus item level is changed.

Talismans that are a 'low' tier compared to current item level have a
significantly elevated chance to be a randart (which, in theory, might
sometimes encourage someone to use a less conventional form, while the
mundane version of the talisman would never be considered by that point.)

Talismans obtained by acquirement have an additional 25% chance to be a
randarts (many items have a *significantly* higher chance to be randarts
when made this way, but previously talismans did not).

Many more talismans drop in the game in total (now that there is a lot more
diversity of options) and their drop chance no longer decreases so
dramatically with depth. I've taken a bunch of the weight for this out of
stones, though the previous non-linear curve of talisman chance versus
other item chance means that it's impossible to keep exactly the same ratio
of other stuff, game-long. The effect should be small, however.

Currently, due to several existing talismans being regularly used in
vaults, while almost none of the new ones are, the drop chance for many
old talismans is still markedly higher than new ones of equivalent tier.
But this should be nudged in a future commit that distributes new ones
better.

--------------------------------------------------------------------------------
283cc17409 | DracoOmega | 2025-04-04 23:38:08 -0230

Add Protean talismans (for Shapeshifter start)
Having a diversity of early/midgame forms is good for the variety of anyone
who might pivot into shapeshifting by finding these talismans during the
game, and it feels sad to canonize just one of them by putting it into the
shapeshifter start (and thus heavily limiting who is likely to actually use
it), but we'd hardy want to make shapeshifter start with 4 different
talismans of the same tier, either.

This is an attempt to randomize what capstone form shapeshifter will end up
with, while limiting the startscumming incentives that would come with just
giving the player a random talisman at the start. Instead, they are given a
protean talisman that *turns into* a random tier 2 talisman when evoked
with at least 6 shapeshifting skill (ie: slightly below the min skill to
use whatever it turns into).

(I have picked a mix of full-body and partial-meld forms for this tier,
since I've seen it reasonably argued that full-body forms make species much
less important to the background than it would otherwise be, but at the
same time, I feel like they're an important part of the shapeshifting
fantasy - to become something monstrous and very unlike one's normal form.
So this allows us to split the difference.)

Protean talismans are not intended to generate as floor items (though some
vaults could still be allowed to place them.)

----------------------

The protean talisman tile was made by regret-index, and combines
Sastreii's protean progenitor tile with ontoclasm's elemental wellspring
tile.

--------------------------------------------------------------------------------
94a7fed46a | DracoOmega | 2025-04-04 23:38:08 -0230

Move Maw form down a tier, adjust properties somewhat
Maw form has been fairly popular, but in a way that is extremely lopsided.
Fully 68% of maw form wins are with draconians (which notably get the form
with 0 downsides while *also* being a terrible fit for statue form), while
felids and octopodes account for 21%, and all other species *combined* only
reach 11%.

It turns out, losing body armour is a really big ask and even a very good
aux attack is usually hard to justify for it - the attack/defense tradeoff
just isn't comfortable for something that *also* takes training. And while
the heal-on-kills can be strong, it isn't enough to rely on when you're
trying to get the ball rolling.

So this commit targets it a bit earlier, while also attempting to make it
a bit less biased by species. Instead of melding your body armour
completely, Maw form now reduces its base AC by 80%. This is *close* to
melding it for vanilla armour, but significantly less penalizing with
enchanted/randart armour and skill. At the same time, its damage has been
reduced slightly and it now also gives reflavored shoutitis as your maw
growls hungrily at anything it might eat (such that it's not *completely*
free for draconians). It will still be *better* for draconians than anyone
else, which is fine, but hopefully not to such a polarising degree.

--------------------------------------------------------------------------------
16aa5c7703 | DracoOmega | 2025-04-04 23:38:08 -0230

Turn Flux Form into a new type of consumable
Shapeshifters, as a background, change their form surprisingly few times
over the course of the earlygame. They start already transformed, and
possibly change form just once in the first 10 levels, to use their flux
talisman (though some players opt not to do even that). It feels to me that
a little something about 'having a mutable form' was lost with the advent
of talismans over old form spells, and this is an attempt to recapture some
of that without (hopefully) the problems the old system had.

Flux Baubles are a new type of consumable that can be used to temporarily
enter Flux Form (which, conveniently, was already thematically defined by
being unstable!). The form lasts for a certain number of contam attacks
(rather than time), after which the player reverts to their previous form.
Using a bauble takes only a single turn (rather than the slow change of a
talisman). It still scales with shapeshifting skill in the exact same
manner that talisman forms do.

The idea is that flux form can still come online before the shapeshifter's
new capstone talisman will, but will be a transient power surge. The player
can use it for scarier situations (and a few battles afterward), and it can
even retain some use after their capstone talisman is useable (both by
being *transiently* more powerful than low-skill capstone forms, and also
sometimes allowing you to quickly escape certain form downsides at the cost
of a consumable).

Flux form is generally more powerful than it used to be (its EV boost now
scales with skill, for instance) since it is a short-lived thing. (It also
now melds gloves mostly as a thematic thing, since it was unclear how your
touch could be so mutagenically unstable that it melded weapons but *not*
your gloves.)

Internally, baubles are implemented as a new item base type, largely for
ease of generating them randomly in levels, but I think there is future
potential for more types of baubles - either high-level temporary forms, or
maybe even 'early' but transient access to some normal forms, eg: Storm
Bauble?

A handful of flux baubles replace Shapeshifter's potion of lignification.

------------------

The flux bauble and new flux form tiles were made by regret-index.
 * The baubles combine Sastreii's previous flux talisman with CC0 bombs
   by chrisblue.
 * The humanoid flux overlay heavily modifies CanOfWorm's Irradiate vfx.
 * The felid flux form tile combines Denzi's various felid bases with a
   heavily modified explosion from the CC0 release of DUELYST 1.
 * The octopode flux form uses the same explosion with an edit by Darby of
   Bloax's base octopode tile.

--------------------------------------------------------------------------------
877b675cef | DracoOmega | 2025-04-04 23:38:08 -0230

New form: Medusa
The 3rd new form aimed at being a Shapeshifter capstone, Medusa form melds
the player's helmet and cloak and replaces their hair/head with a long mane
of jellyfish-like tendrils. Yes, *that* kind of medusa.

Whenever the player attacks in melee, their tendrils lash out
automatically, inflicting poison on several random nearby enemies (with
shapeshifting skill increasing the number affected at once).

But it's also the *other* type of medusa: when the player is reduced to
60% HP, they automatically empower all poison near them, giving a
skill-based chance to petrify any nearby poisoned enemies. (As is becoming
a wider trend, this cooldown is restored only when you fully heal again.)

While automatic AoE petrify is a strong effect, it taking multiple turns
and only *starting* once the player is already injured (on a form that
doesn't otherwise have defensive benefits) will hopefully keep it from
being excessive, while still being distinctive and fun. (And it can even
combo a little with other sources of AoE poison, like OTR!). And if maybe
it encourages a shapeshifter to pick up a shortblade and train some
stabbing skill, I think that could be good, too.

(The form also comes with rPois.)

-------------------

The medusa form and polyp talisman tiles were made by regret-index.
 * Polyp talisman: Free use seaweed by finalbossblues, a CC0 stone by
   idylwilds, and ontoclasm's original runed door tiles.
 * Medusa humanoids: A CC0 jar by Jetrel, Denzi's old jellyfish, and
   a CC0 alien robot by Emcee Flesher.
 * Medusa octopode: The above medusa form components mixed with Bloax's
   default octopode tile.
 * Medusa felid: The above medusa form components mixed with Sastreii's
   statue felid tile and LemurRobot + CanofWorms's vampire felid tile.

--------------------------------------------------------------------------------
8c349ff05e | DracoOmega | 2025-04-04 23:38:08 -0230

New form: Sun Scarab
Another full-body form targeted as a Shapeshifter starter capstone (fire
to contrast with rime yak's ice!), sun scarab draws from the Egyptian
mythological associations of a scarab beetle pushing the sun around by
coming with its own pseudo-battlesphere that provides the bulk of its
power.

While in this form, the player will have a 'solar ember' that follows
alongside them. It uses similar leashing behavior to phalanx beetles, but
additionally will not move while already adjacent to the player (so that
its positioning remains predictable while the player fights.)

Every second time the player attacks in melee, their solar ember will
unleash a blast of fire against all enemies adjacent to it (and damage
itself somewhat). This is the major source of scarab form's bonus damage,
and requires positioning in ways that allow the orb to damage things
without itself being destroyed (for example, corridors don't work at all!).
Swapping places with the ember heals it substantially, however, allowing
the player to keep their damage source alive in exchange for sometimes
exposing themselves to more danger.

If the ember is destroyed, it will automatically respawn a number of turns
later (ancestor-style), but this is still a big problem for the form, which
derives most of its power from it being alive.

On its own, scarab's melee attacks have a 50% chance of applying rF- to
their target if they pass AC (which allows you to 'focus' a target for
the ember's damage, as well as synergize with other fire spells the player
may have) and you gain wizardry for fire spells (much like rime yak does
for ice). You also have rF++ and rPois-.

The hope is that this is a cute change of positional play for melee, that
makes you really feel like you're in a different form, while also being
as distinct from rime yak is possible (ie: rime yak wants nearby walls and
sun scarab wants open space!)

--------------------

The sun scarab form and solar ember tiles were made by regret-index. The
talisman was made by LemurRobot.
 * The sun scarab form mixes one of Denzi's old helmets with both his old
   boring beetle and boulder beetle tiles.
 * The solar ember combines Denzi's old sun demon tile with a CC0 block by
   Emcee Flesher.

--------------------------------------------------------------------------------
c257eede70 | DracoOmega | 2025-04-04 23:38:08 -0230

Revamp dragon talisman somewhat
Dragon form was always relatively unpopular due to its (somewhat
unintuitive) melee glass cannon nature. But beyond that, "You do a ton of
melee damage, but your breath weapon is barely even worth using." is a
terrible flavor fit for monsters who are most iconically defined *by* their
breath, in my opinion.

The breath weapon (as a remnant of being so ancient that it once was a
general mutation) also scaled with player XL and not shapeshifting skill in
any fashion, contrary to... basically every scaling form property these
days.

This commit aims to improve the situation in the following ways:
 -The default dragon type is now a golden dragon, rather than a fire
  dragon (per regret-index's suggestion). This arguably gives it a bit of
  a niche as a 'resistances' form to contrast with its overall mediocre raw
  defenses (due to its size).
 -The breath weapon is now *substantially* more powerful, but shares the
  same XP recharge system that draconian breath does (which seems to have
  been pretty successful.) It effectively fires all 3 golden dragon breath
  types at once, doing a piercing line of fire and cold damage, and leaving
  poisonous clouds behind. It scales with shapeshifting skill, not XL.
 -The UC boost has been meaningfully reduced (and default tail slap aux
  removed - though draconians retain theirs), with the idea that the
  breath should account for a meaningful chunk of its overall power.
 -Draconians get a substantial shapeshifting skill-based boost to their own
  breath power (instead of the form flatly doubling it), but it also
  recharges twice as quickly (to match the recharge rate of non-draconians
  using this talisman).

Numbers are a bit provisional on some of this, but the hope is that it
feels appealing to more people, and also more 'like a dragon' to play as.

-------------------------------

The golden dragon talisman, form, ability icon, and vfx were edited and
made by regret-index.
 * The talisman recolours the previous dragon-coil talisman using the
   older fire dragon design made by Denzi and edited by roctavian, Marbit,
   and Bloax.
 * The form tiles all recolour Sastreii's regular, felid, and octopode
   dragon form tiles.
 * The golden breath icon combines ontoclasm's Spit Poison, Breathe Fire,
   and Breathe Frost tiles.
 * The golden breath vfx combines Sastreii's light bolt with roctavian's
   Throw Fire and Throw Frost effects.

--------------------------------------------------------------------------------
d6583b6a34 | DracoOmega | 2025-04-04 23:38:08 -0230

Give serpent form an extra head (regret-index)
Serpent form has been relatively unpopular since it was introduced (and
some argue a bit on the weak side), so let's try making it be a bit more
exciting by referencing a mythical two-headed serpent instead and letting
the player wear two hats at once while in this form.

(Felids, alas, can still wear nothing. But they get cat ears in the form
now!)

----------------

The new amphisbaena form tile was made by regret-index, mixing Sastreii's
serpent form tile with Denzi's snake skeleton tile.

--------------------------------------------------------------------------------
6de4b18375 | DracoOmega | 2025-04-04 23:38:08 -0230

Allow overwriting a cloud with another cloud of the same type
(So long as the new cloud has a longer duration.)

This was aimed foremost at Rust Breath (which has a very long duration and
high cost, so being unable to place clouds on top of other almost-expired
clouds felt awkward.)

It does also affect a few other player spells, such as Fire Storm and
Mephitic Cloud. The latter is likely the largest effect of anything
player-facing, but it seems unlikely to me that this buff will have an
excessive effect on its power.

It does *not* affect Freezing Cloud (whose targeting causes it to spread
around existing clouds, rather than place in a fixed area.)

Likewise, it doesn't affect most monster cloud uses, which obey similar
rules (but does affect a couple, like catoblepas breath. This seems like it
should be fine to me.)

--------------------------------------------------------------------------------
1c013a4fdd | DracoOmega | 2025-04-04 23:38:08 -0230

Allow swapping off melded equipment when equipping new items
This was largely irrelevant until now, but Fortress Crab form melding your
offhand specifically meant that it melded two-handed weapons (even though
one-handed weapons were allowed). So if a player was wielding a two-handed
weapon when they transformed, they would be unable to equip a one-hander
(since the two-hander was melded).

Now you can simply a melded item away in the normal fashion (but since you
cannot equip a *new* item of that type, in most other cases this should
result in no visible change.)

--------------------------------------------------------------------------------
b602923376 | DracoOmega | 2025-04-04 23:38:08 -0230

Remove some long-unused cloud function declarations

--------------------------------------------------------------------------------
bf4c485681 | DracoOmega | 2025-04-04 23:38:08 -0230

New form: Fortress Crab
This is an (almost) full-body blade-tier form that attempts to do some of
what statue form does (ie: a slow, tanky transformation) in a way that
appeals to a nearly inverse set of characters.

Fortress crab melds all of your armour *except* body armour, which it
flavor-wise fuses directly into its shell to strengthen it - multipying its
base AC by a significant amount. So it's a full-body from that wants to be
used by character who *can* use heavy body armour.

Outside of this, the form has slow movement (in-between naga and barachi),
rPois- and rCorr, a modest UC bonus, and can breathe clouds of rust at the
cost of its own HP - a new cloud type that inflicts corrode and weak (but
only a small bit of direct damage, unlike acid clouds). What sort of crab
would it be if it *couldn't* spew clouds, I ask?

Note: fortress crab is also capable of wielding a weapon in its main hand!
I envisoned something a little like a fiddler crab, capable of gripping
something at least well enough to bonk another person with it.

-----------------

The fortress talisman, fortress crab form, and rust cloud / ability tiles
were made by regret-index.
 * The fortress talisman mixes Coolio's fire crab tile with free use world
   map fortress tiles and armour tiles by Idylwilds.
 * The fortress crab form mixes those current crab and fortress tiles with
   Malwyn's original fire crab tile.
 * The Breath Rust icon uses NormalPerson7's ink cloud tile.
 * The rust clouds remix ontoclasm's seething chaos clouds tiles.

--------------------------------------------------------------------------------
f7def149ad | DracoOmega | 2025-04-04 23:38:08 -0230

New form: Walking Scroll
This is a tier 1 form (ie: the same tier as Quill form, but *not* in any
starter package) intended to provide unique appeal as an early caster form
(and possibly tempt some characters to unconventionally train shapeshifting
early and then maybe transition into later forms afterward).

This is a full-body form that increases your skill with *all magic schools*
by half of your shapeshifting skill, but prevents you from casting spells
above level 4. Your attacks also inflict 50% less damage, but have a 50%
chance of restoring 1 MP when you hit, and you gain a small bonus to your
max MP (4-9, based on skill).

The idea here is that it can be a powerful boon to an early caster who
trains a little shapeshifting, but automatically falls off hard after a
little while (while possibly prompting the player to try out other forms
with the skill they've already learned.)

(In future, I hope to implement a few randart variants that even allow you
to 'read' yourself for a scroll effect.)

-------------------

Inkwell talisman and living scroll form tiles made by regret-index.
The former edits a CC0 inkwell by idylwilds, while the latter combines CC0
scrolls by idylwilds and deep dwarf berserkers by coolio.

--------------------------------------------------------------------------------
6a8d0c91c1 | DracoOmega | 2025-04-04 23:38:08 -0230

New form: Werewolf
An 'upgraded' beast form (now blade-tier) that aims to capture the visceral
fantasy of being a ferocious werewolf a bit better. Whenever you kill an
enemy in melee, you gain a stacking slaying bonus (up to +12). When this
bonus reaches +5 (and with a chance on each kill afterward), the player can
let out a vicious howl that attempts to freeze all visible enemies in fear
(ie: *both* fear and -move) on a will check (power scaling with
shapeshifting.)

They also come with the Bestial Takedown ability, which performs a jumping
attack at +(75-125)% damage against any enemy who is currently afraid
(whether from you howling at them, or any other source, like ?fear). Kills
made by Bestial Takedown will always cause you to perform a howl afterward.

Play pattern-wise, this lends itself to building up over an extended fight
and then leaping around like a slavering beast as you pounce and kill
enemy after enemy (or sometimes reading ?fear immediately to enable your
wild assault!).

As baseline benefits, werewolves also get Regen+ and the equivalent of
claws 3, along with rC+ (fur!) and str/dex +3, but meld all aux slots
(like beast form once did) and have Will-.

--------------------

The lupine talisman, werewolf form tiles, and new ability icons were made
by regret-index.
 * The lupin talisman mixes Sastreii's previous beast talisman with the
   Claws mutation icon by LemurRobot.
 * The humanoid form tiles combine Denzi's old hell beasts with Sastreii's
   beast form tile and CanofWorms's edit of Sastreii's wolf tile. The
   naga one mixes this with Sastreii's base naga player doll tile, the
   djinn one with Team Impy's djinn player doll tile, and the armataur one
   with Sastreii's armataur player doll tile.
 * The felid werewolf form combines Denzi's current felid tiles with
   CanofWorms's edit of Sastreii's wolf tile. The octopode werewolf form
   combines Bloax's base octopode player doll with the same wolf tile.
 * The Bestial Takedown icon uses ontoclasm's Power Leap icon mixed with
   some of Bloax's Corona icon sparkles.

--------------------------------------------------------------------------------
3754a00ae0 | DracoOmega | 2025-04-04 23:38:07 -0230

New form: Sphinx
Another granite-tier form, sphinx comes with AF_AIRSTRIKE flavored melee
(like sphinx mauraders) that does increased damage based on the number of
open spaces around a monster (scaling with shapeshifting skill), as well as
playing around with slot mechanics introduced this version. While in sphinx
form, a player can wear a cloak and barding (even if they ordinarily could
not!).

Sphinx form also grants major wizardry for hexes spells and reduces the
Will of enemies to resists player effects by 40 (like half an orb of guile,
but without the downside).

As a minor (and mostly flavorful) downside, while in sphinx form the player
will compulsively pose riddles to enemies they run into. This is mostly a
reflavored shoutitis, though it has a very small chance to confuse/vex an
enemy instead of just alerting them. A bunch of uniques also have specific
responses to being annoyed by a riddle!

-----------------------

The sphinx form tiles and prelminary riddle talisman tiles were made by
regret-index.
 * The initial talisman combines CC0 wall tiles by Emcee Flesher with
   amulet tiles by Denzi.
 * The sphinx form tiles mix Bloax's old Frances tile, Denzi's sphinx
   tile, and a CC0 wing icon by frosty_rabbid. The felid sphinx tile
   uses Denzi's old Jessica tile and current felid tiles with the same
   wing.

--------------------------------------------------------------------------------
87a6fb974b | DracoOmega | 2025-04-04 23:38:07 -0230

New Form: Aqua
This is a blade-tier form which turns the user's body into a wellspring of
elemental water which can change its shape fluidly. It is intended to offer
another 'substance-changing' form besides statue form (so that its
interaction with mutations are not a one-off) and allow the player to pull
off some unique things.

While in this form, the player's melee range is increased by two. And,
unlike normal reaching, you are still able to perform aux attacks at this
distance since your *entire* body is stretching outward. (Yes, even if
you're made of water, you can still have functional horns - let's assume
that you're able to control the density of your water just as well.)

This additional range stacks with the reach of polearms (though you can't
perform aux attacks at full polearm range). Axes *don't* cleave everything
in range 3 (which would be absurd), but rather will just hit your main
target and everything else adjacent to you. You also cannot stab things
from a distance (which I think would be simply too powerful, especially on
characters with reduced LoS range).

To sell the idea that you're really *made* of water, there are a few other
upsides/downsides:
 -When damaged, you sometimes splatter temporary pools of water nearby
  depending on how much damage was taken.
 -When damaged by fire beams, you sometimes explode in a cloud of steam.
 -When damaged by cold, you have a 50% chance of getting the Frozen status,
  slowing your movement for a while.

Finally, you have an active ability on an XP cooldown - Watery Grave. This
turns all water within 4 tiles of the player against any enemy standing
atop it, doing water damage and also waterlogging these enemies for a short
while (and removing all the shallow water). While the player may sometimes
want to use local water to activate this, it's important to note that in
most cases, you will be able to use this by maneuvering enemies over the
water that the player themselves has 'bled'!

------------------------------

All aqua form tiles and ability icons were made by regret-index.
The wellspring talisman tile was made by LemurRobot.
 * The standard humanoid tiles combinine ontoclasm's water nymph with the
   player doll defaults for humans (Denzi), armataurs (Sastreii), djinn
   (Team Impy), and naga (Sastreii editing Denzi's).
 * Aqua form octopodes combines Sastreii's dragon octopode and death
   form octopode tiles with Bloax's base octopode tile and ontoclasm's
   water elemental tile.
 * Aqua form felids combine a CC0 water elemental by Clint Bellanger,
   ontoclasm's elemental wellspring tile, and Sastreii's storm felid +
   statue felid tiles.
 * The Watery Grave ability icon combines CC0 water textures by
   finalbossblues with Purge's gravestone tiles.

--------------------------------------------------------------------------------
ff6960d168 | DracoOmega | 2025-04-04 23:38:07 -0230

Make autofight properly respect the player's reach range
Add a clua function that lets autofight actually check the player's reach
range instead of calculating it from each equipped weapon.

(The latter approach was actually buggy for coglins since the equip slot
refactor, and would only consider the range of their *first* equipped
weapon. So if you had, say, Rift in your second slot and a regular polearm
in your first, it would still move you towards enemy even while in Rift's
range.)

--------------------------------------------------------------------------------
2a3c9456fa | DracoOmega | 2025-04-04 23:38:07 -0230

Remove reach_type enum, replace uses with ints
This enum was strictly mappable to an integer, with a straightforward
meaning (and some commit messages even mentioned how things would break
if it ever *stopped* mapping strictly to an int range).

I believe this is an unnecessary bit of indirection (and a reaching bonus
I plan to add to a form in a subsequent commit would be much simpler using
ints).

--------------------------------------------------------------------------------
b2f483308b | DracoOmega | 2025-04-04 23:38:07 -0230

New form: Living Hive
This is a statue-tier form, intended to diversify appealing options at that
tier. It also melds body armour (and helm), providing a much smaller amount
of AC, but also a significant amount of both HP and MP regeneration (which
are improved by shapeshifting skill). In addition, whenever the player's HP
falls below 50%, multiple angry bees will swarm out from your body to
defend you. These come naturally berserk (and with the Concentrate Venom
status!) to make something like a killer bee still relevant into lategame.
Like Mark of the Celebrant, this status recharges only once the player
reaches full HP again.

The hope was to provide something with enough defensive utility to be
attractive to some of the characters who would otherwise consider statue
form their main viable option, while being as different as possible. The
MP regeneration it provides (and not slowing the player!) also makes it
markedly stronger as a caster form than statue is (and potentially of
interest to characters who'd not otherwise consider training shapeshifting
at all!)

And who doesn't want to unleash swarms of bees upon their enemies?

(Okawaru disapproves of this form - not only because the swarm of allies is
a core part of it, but the regeneration is even thematically coming from
the labor of your little friends and we all know that Oka hates friends.)

-------------------

The hive form tiles and preliminary honeycomb talisman tiles were made by
regret-index.
 * The initial talisman combines Denzi's old honeycomb and amulet tiles.
 * The hive form tiles use CC0 honeycomb tiles by delta12 studio. The
   felid tile mixes it with Denzi's felid tiles and the octopode tile
   mixes it with Bloax's base octopode player doll tile.

--------------------------------------------------------------------------------
8bced58abf | DracoOmega | 2025-04-04 23:38:07 -0230

Replace Beast form with Quill form
Beast form was, more or less, a glorified ring of slaying in exchange for
your aux armour. And while this could be a useful (if bland) trade in the
earlygame, it felt to me like a bit of a waste of the traditionally very
popular 'werewolf' fantasy. So I am planning to promote werewolf into a
higher-tier form where it can be a bit more exciting, and replace beast
with something else of suitable power level for shapeshifters to start in.

Quill form also trades all of your aux armour away, but in return it makes
you spiny (with damage that scales with shapeshifting). 40% of melee
attacks made against the player will trigger an automatic retaliation for
1d2 - 1d8 damage (depending on shapeshifting skill). This is sometimes
stronger than beast form's slaying and sometimes weaker, but also more
distinctive (and it makes the shapeshifter start more distinct *visually*
too, in my opinion - selling the idea that you're a weird metamorph instead
of just 'a slightly different colour adventurer').

-----------------------

The quill talisman and form tiles are by regret-index.
 * The quill talisman combines a CC0 morningstar by idylwilds with an
   unused tile for the Sceptre of Asmodeus by Denzi.
 * The humanoid form combines Sastreii's beast form tiles with roctavian's
   old porcupine tile. Djinn combine this with Team Impy's djinn player
   doll tile, Armataurs combine this with Sastreii's armataur player doll
   tile, and Naga combine this with Sastreii's naga player doll tile.
 * Quill form felids use Denzi's old cat tiles with roctavian's porcupine.
 * Quill form octopodes combine roctavian's porcupine tile with Porkshop's
   edit of dolphin's old octopode tile.

--------------------------------------------------------------------------------
b134689226 | DracoOmega | 2025-04-04 23:38:07 -0230

New form: Jumping Spider
Another thematic nod to an old form, but with major functional changes.
This is a blade-tier form with an emphasis on speed, evasion, and being a
sneaky jerk.

The form provides an EV bonus (on top of being tiny), rampaging, a stealth
bonus, a small chance to web enemies on melee hit, and short-blade quality
stabs while unarmed. (And is rPois- minus, as is the spider tradition.)

In addition, you have an evasive jump ability, which is functionally like
a random blink (that isn't affected by silence or antimagic), but with
two additional benefits:
 -The player is guaranteed to successfully dodge any dodgeable attack until
  their next turn. (ie: nothing can hit you on the turn you jump)
 -Enemies have a chance to immediately lose track of you (ie: as if they
  were wandering and hadn't spotted you yet.)

Random blink is often fairly unexciting past earlygame (and more controlled
blinking is incredibly strong in obvious ways), but the hope is that these
extra factors combine to make Jump a uniquely useful way to try and slip
away from enemies (despite the risks of not knowing where you will land) -
or even launch a rampage stab into their blind spots while they fumble
around trying to see where you landed!

Low AC full-body forms can be a tough sell past earlygame, but the hope is
that this provides enough benefits to be appealing to some characters
nonetheless, and capture some of the feel of being a tiny sneaky menance.

-------------

The jumping spider form, talisman, and ability icons were handled by
regret-index.
 * The tile mixes roctavian's old spider genus monster tile with
   LemurRobot's old culicivora tile and Denzi's old boring beetles.
 * The form tile mildly edits Bloax's old spider form tile.
 * The jump icon recolours ontoclasm's Blink icon.

--------------------------------------------------------------------------------
5397cbf093 | DracoOmega | 2025-04-04 23:38:07 -0230

New form: Rime Yak
This is the first of several forms aimed at being possible capstone forms
for the Shapeshifter background. As a bit of a nod to the old Ice Form,
while blending in one of Crawl's most iconic animals, this is a full-body
form that offers +15% HP, rC++, rF-, some scaling AC, and the ability to
swim.

Instead of doing cold damage in melee directly, whenever you perform a
melee attack, you chill a random wall adjacent to your target (and then
adjacent to yourself, when those run out). Enemies adjacent to these frigid
walls take cold damage each turn (similar to frozen ramparts, though the
damage scales mildly with each additional frozen wall). These walls do not
disappear when the player moves, though the expire rapidly if you stop
attacking. Like ramparts, they can chill cold-blooded enemies - one of the
more notable upsides ice form used to have.

Hopefully this melee behavior makes them feel a little different to play
than just 'branded melee' while also promoting the different positional
considerations.

In addition, the player has wizardry with all Ice spells while in this
form (equivalent to two rings). I think it may be interesting for forms
to offer some 'side' bonuses outside of their core niche, to potentially
promote different skilling decisions or appeal to characters that might
otherwise pass on them. And ideally this encourages some shapeshifters
to learn magic when they otherwise wouldn't, and some mages to use
talismans when they otherwise wouldn't.

----------------------

The rime yak form and talisman tiles were made by regret-index.
 * The talisman combines Sastreii's eye simulacrum with a horned beast
   from the CC0 release of Duelyst 1.
 * The rime yak form tile combines ontoclasm's fish simulacrum with
   CanofWorms's edits of Sastreii's yak, death yak, and catoblepas tiles.
 * The rime wall tiles combine Denzi's old Freeze Ammunition tiles with
   CC0 wall tiles by cynicmusic.

--------------------------------------------------------------------------------
570bf73ca2 | DracoOmega | 2025-04-04 23:38:07 -0230

Refactor Form::get_ability_damage() and datify
Allow specifying as data in the form yaml, and generalize (so that we can
fold some other form-specific functions into the more general
Form::get_special_damage(), such as Flux's contam damage.)

(Is there some good reason that dam_deducer is done via templates instead
of those parameters just being member variables? It make some of the code
around it a little awkward (like being unable to instantiate them without
using new), and the non-template version would still be straightforward.

--------------------------------------------------------------------------------
c9c0e2b7cf | DracoOmega | 2025-04-04 23:38:07 -0230

Rescale form hp_mod by 10
So that it is possible to change HP by increments of less than 10%

--------------------------------------------------------------------------------
1dc67346ad | DracoOmega | 2025-04-04 23:38:07 -0230

Datify form EV bonus and whether they get an offhand punch

--------------------------------------------------------------------------------
a4685c7025 | DracoOmega | 2025-04-04 23:38:07 -0230

Remove a stray vampire species reference

--------------------------------------------------------------------------------
9aa9956688 | DracoOmega | 2025-04-04 23:38:07 -0230

Change/improve the talisman form properties display
It now displays many scaling values in a table, showing their value at
min, max, and current shapeshifting skill (which should hopefully give
players a better idea of how much each scales).

It also lists resists, which slots are melded, and which categories of
mutations are suppressed. (Along with a handful of form-specific things
like blinkbolt damage and vampire healing chance.)

And, in general, the information is presented in a more compressed format
that is easier to read at a glance.

Talisman database entries have most lines about their slot-melding removed,
since they are now redundant with the more explicit listing right below
that.

Many Form methods are refactored to accept a specific skill value (with -1
defaulting to 'the player's current skill')

--------------------------------------------------------------------------------
acb73b3f8a | DracoOmega | 2025-04-04 23:38:07 -0230

A few minor improvements to column_composer and TablePrinter
Allow specifying the number of column width in column_composer at runtime
and allow centering text within these columns.

Allow having TablePrinter automatically add rows once a certain number of
cells are added.

(To be used for the new talisman form property display)

--------------------------------------------------------------------------------
b320dc18af | DracoOmega | 2025-04-04 23:38:07 -0230

De-duplicate form property popup
A block describing various properties of a talisman form was accessible
both in the item description of the talisman, and as a tab on the A screen.
However, these two popups (despite containing similar information) were
constructed using completely separate code (which was also forced to use
different formatting, due to the constraints of the A screen being a
'list'-style menu).

This commit removes the form properties tab of A entirely, and replaces it
with an item popup for the player's current talisman when they examine the
form fakemut in the A menu. This conveys the same (or greater!) information
without needing to maintain two different codepaths - something especially
important as continued improvements are made to it.

--------------------------------------------------------------------------------
6e34e4305b | DracoOmega | 2025-04-04 23:38:07 -0230

Change a number of things about how forms and mutations interact
There were a number of poorly-known or understood quirks about which
mutations were suppressed by which forms. While the system was *mostly*
simple in theory, it resulted in numerous oddities. For instance, gargoyles
lost their rElec in many forms (but kept their rN), thin skeletal structure
was kept in explicitly boneless forms (even though it is not possible to
mutate it on a boneless species), time-warped blood was possible to mutate
on bloodless species (though it would always be inactive), naga poison spit
was usable in most forms that draconian breath weapons were not, and
perhaps most jarring of all: gargoyles were vulnerable to LRD in all forms
- even as a wisp!

This commit makes a number of changes aimed at fixing some of the more
illogical interactions, making behavior more clearly explicated in-game,
unifying and simplifying some code, and (hopefully) improving gameplay in a
few specific cases.

Following some dev discussion, forms can now be considered to modify only
the player's anatomy while leaving their substance alone (ie: most
fully-body animal forms), only their substance while leaving their anatomy
alone (ie: statue form), or modifying both (ie: tree form). Suppressable
mutations are tagged as belonging to either of these categories (along with
a couple smaller categories used to unify some existing mutation behavior,
like 'needs blood')

Gargoyle's AC, petrification resistance, and such are now considered
explicitly a property of their body being stone, and are 'substance'
mutations. They now retain all of these in anatomy-changing forms (meaning
that serpent form turns you into a *stone* serpent, instead of a fleshy
one), but lose them in substance-changing forms (no more being deconstructed
as a wisp!)
 -This is a clear buff to gargoyle shapeshifting, but they still have -3
  apt and I'd argue it's more interesting to keep their core racial perks
  in more forms instead of those not even being a consideration.

Naga and barachi slow movement are now explicitly tied to their naga tail
and hop mutations (as 'anatomy'), and they will either retain both or lose
both in any form.
 -This does mean that statue naga are much slower than they used to be,
  though it was unclear why statue was a 'standard' speed for everyone
  anyway.

Spriggan fast movement is now explicitly magical and no longer suppressed
in any form.
 -Spriggans had the best shapeshifting apt in the game (and are
  mythologically famous for changing forms), but the combination of their
  abyssmal unarmed combat *and* losing the core gimmick that makes
  spriggans any good at all meant that a majority of forms were a complete
  non-option for them. I think it's more interesting if they get to keep
  their core identity while transforming, and hope this opens up a little
  more variety for them.

Gnoll item detection is reworded to no longer be a property of their noses
(how did that work, anyway?) to put aside questions about suppressing it.

Most general resistance mutations are considered now considered
'substance' mutations, meaning they will be retained in many full-body
forms that used to suppress them, but lost in statue form. The latter is
not a deliberate balance change, but a consequence of trying to apply
mostly-predictable rules to this system. Statue form can be individually
adjusted later, if needbe.

Mutations can no longer be 'partially suppressed' (which was a fair bit of
code complexity that was currently used almost entirely to remove AC
bonuses from demonspawn scale mutations while retaining their other
bonuses - not that it even said what 'partially suppressed' meant in-game!)
Since statue form already suppresses most resistances now, this is double
needless, in my opinion.

In-game mutation descriptions now show what category a mutation belongs to,
and forms explicate which of these categories they suppress (though I hope
that the relationship will be largely intuitive to players, once they get
used to it).

Code that controls what mutations the player is eligable to mutate is now
also unified with code that controls what mutations are suppressed in forms
(rather than being incompletely duplicated).

Finally, silver has a more predictable interaction with player forms: the
player now takes full damage from it when in any form at all (instead of it
being an ad hoc list that somehow considered being a snake more chaotic
than flux form!)

--------------------------------------------------------------------------------
ade8af2941 | DracoOmega | 2025-04-04 23:38:07 -0230

Change a number of things about tail-slaps and stinger mutation
Handling of the tail slap aux attack and stinger mutation were a little
tangled. Determining whether the player could perform this aux was done
via exclusion (ie: 'if you have a tail, but not any of these other tails')
which was more opaque than necessary. Also, it led to several odd
situations, like:
 -Draconians tail-slap aux wasn't displayed anywhere in-game
 -Naga could mutate a venomous stinger, but never actually attack with it

This commit rearranges some logic and makes the following functional
changes:
 -Any species with a tail (except merfolk) can mutate a stinger and
  actually attack with it if they do so. Yes, this includes felids.
  (The fact that a regular cat tail isn't a useful weapon seems moot when
  you've explictly mutated a scorpion stinger, imo.)
 -The 'tail-slap' attack is actually called 'sting' if you have a stinger.
  Scorpions don't go around slapping people with their tails!
 -Draconians of all sorts now share MUT_ARMOURED_TAIL with armataurs. This
  mutation is now 2 levels, so that armataurs can retain their higher
  damage. (Both species aux damage is unchanged.)
 -MUT_STINGER is generally buffed. While other species could ocassionally
  get it, it was primarily a green draconian species mutation, and they
  were a bit on the weaker side (and the mutation was *quite* weak, giving
  only +1 damage on their aux and a 50% chance to apply one level of poison
  when it passed AC - not very exciting at XL 14!).
  -MUT_STINGER now gives +3 damage per level (and green dracs get 2). The
   poison can now apply even if the main hit doesn't do damage (ie: the
   same as venom weapons - and a large part of why those are even good),
   which also helps naga/felids who mutate this aux without the base damage
   of a tail slap behind it.

Most mutations should properly update on upgraded saves, though green dracs
won't recieve their second level of stinger. (This would require more
involved save compat code, given that it's in the general mutation pool,
and doesn't seem important enough to bother.)

--------------------------------------------------------------------------------
6607b30490 | DracoOmega | 2025-04-04 23:38:07 -0230

Remove unused RANDOM_NON_SLIME_MUTATION
Unused since the Jiyva revamp of 0.28 (and, in fact, would error if we
even tried to give a mutation of that type, at present).

--------------------------------------------------------------------------------
42f6460979 | DracoOmega | 2025-04-04 23:38:07 -0230

Datify transformation holiness, make players real plants
Rather than being contained inside player::holiness(), forms can now
specify holiness changes directly in data.

(Vampire and bat swarm are still special-cased, since they apply undead
holiness on top of the player's default holiness, rather than replacing it
entirely.)

This commit also makes fungus and tree form actually give the player plant
holiness.

Previously, the player was given most of the benefits of having plant
holiness in an ad hoc fashion that checked each form directly and wasn't
even always consistent (for instance, fungus form wasn't unbreathing, but
tree form was!).

There may be some minimal functional change caused by this, but nothing
significant that I have noticed (besides the aforementioned bug).

--------------------------------------------------------------------------------
ba3d2838b6 | DracoOmega | 2025-04-04 23:38:07 -0230

Derive 'no casting' badmut description automatically
This was already a data member, but for some reason the badmut was added
manually to all forms for which can_cast was false. This is no longer
necessary.

--------------------------------------------------------------------------------
f5c89d5418 | DracoOmega | 2025-04-04 23:38:07 -0230

Move form base move speed into data

--------------------------------------------------------------------------------
8f33384712 | DracoOmega | 2025-04-04 23:38:07 -0230

Generate form-data.h from yaml
This converts the data defined in form-data.h into a series of yaml files
in dat/forms (similar to what was done for monsters).

The data blocks in form-data.h were very opaque to read or edit, and this
should be a lot clearer (while also making future structural changes
easier, since default values for new fields can be automatically propogated
to any existing form, with less risk of typos).

--------------------------------------------------------------------------------
41bbcf56d9 | DracoOmega | 2025-04-04 23:38:07 -0230

Simplify duration handling for forms
The FormDuration class (and its various ways to convert transformation
power into randomized duration) was clearly a holdover from temporary form
spells, and mostly made it slightly more opaque to calculate the duration
of what temporary transformations still remain.

This class (and associated code/member of form_entry) is removed, and any
temporary transformation effects specify their durations directly (instead
of specifying power which was run through FormDuration). All bad forms in
the game used the exact same numbers anyway, and the only temporary
positive effects are Bat Swarm and Vessel of Slaughter.

Polymorph/Porkalator have their formula simplified; duration no longer
scales with power (power already affects success chance, after all) and
the average is a fair bit shorter (and the maximum significantly shorter).
The high roll durations on hostile polymorph were generally excessive;
the player was likely to either be dead or completely out of the battle
before then (at which point, more turns doesn't mean much).

I have preserved the existing duration formula for !lignification exactly
(as this is the most important player-facing one). The few other sources,
like Nemelex or Jiyva wrath, have also been simplified, but are rare and
unimportant enough that numbers are fairly arbitrary and unlikely to matter
much.

(Finally, I also removed some code for handling extending durations of
existing duration-based transformations, which as far as I can tell is no
longer possible.)

--------------------------------------------------------------------------------
ece6b70641 | NormalPerson7 | 2025-04-04 10:53:26 -0500

Stop Summon Holies trying to summon too many monsters (#4438)
Summon Holies has a summon cap of 4, but the code previously allowed
seraphs to make up to at least 8 at once, causing the excess to
immediately disappear.

closes #4288.
--------------------------------------------------------------------------------
7930c9f332 | NormalPerson7 | 2025-04-04 10:16:52 -0500

Fix a crash on casting Passwall during Primordial Nightfall (#4437)
Passwall had previously assumed LOS 0 was simply impossible, and trying
to cast or aim it with 0 LOS triggered an assert.

closes #4348.
--------------------------------------------------------------------------------
94aef208b2 | Hellmonk | 2025-04-04 09:27:31 -0500

Rework trove vetoes (CipHuK) (#4426)
Trove skill check logic for weapon vs spell skills (use higher
arithmetic mean) did not make a lot of sense. Some characters would care
about both weapons and spells, and mean weapon skill among trained
weapons does not have the same value as mean spell school. I've opted to
make both of these hard skill breakpoints instead. The weapon skill
check takes max weapon skill with a low threshold as a better method of
determining if a character is interested in weapons. The spell skill
check takes sum of magic skills with a higher threshold to indicate
characters that care at least somewhat about casting. These trove vetoes
are gameable by players who memorize des files for fun, but so were the
old functions.

Broader trove rework planned for next version.

Closes #3445
--------------------------------------------------------------------------------
ff708282ee | regret-index | 2025-04-03 14:55:37 -0230

Track Necropolis visits in morgue files (Ge0FF)
Personally, I'd prefer our phrasing to use "You have visited X once" over
"You have visited X 1 time", but that's how the Abyss and Pandemonium are
both phrased, so it's following those for consistency reasons versus
the current "many parts of one Necropolis" portal description flavour.
(Maybe it's worth adjusting them all at once?)

--------------------------------------------------------------------------------
052fbde84c | regret-index | 2025-04-03 13:50:48 -0230

Reduce excessively high Necropolis chances, hopefully
The portal was missing a `chance_foo` tag as the other portals use, which
was resulting in much higher chances to see a Necropolis than CHANCE
should be providing. There's some worrying issues with objstat's feature
count reflecting very different odds from mapstat on whether or not adding
the tag does anything meaningful (possibly from not regenerating the .des
cache properly?), and whether or not the `chance_foo` tag properly works
to avoid rerolling into the same vault, but this does immediately help the
problem at hand by moving from 100% chance to place in D over 100
iterations to ~29% over 100 iterations.

--------------------------------------------------------------------------------
bd1523b72e | Nicholas Feinberg | 2025-04-02 16:09:11 -0700

Fix probability_at (DracoOmega)
Broken for tables with multiple entries since c1c896e988 (2019).

--------------------------------------------------------------------------------
8b514e5c94 | WizardIke | 2025-04-02 10:53:55 -0500

Fix a crash when zooming local tiles (sulla) (#4424)
When zooming in local tiles we call `do_layout` to calculate the new
size of the view buffer (as well as other things). however, we need to
call `redraw_screen` to actually resize the view buffer before next
rendering or the game will crash. We were calling `mprf` before
`redraw_screen` which can lead to a force more which can sometimes
result in rendering.

This change maybe should be applied to earlier versions to, as in at
least version 0.32 zooming in map view mode causes force mores by
default.
--------------------------------------------------------------------------------
8ee07ae269 | WizardIke | 2025-04-02 10:47:01 -0500

Fix erroneous warning when firing at enemy in front of friendly (dilly) (#4431)
The beam would stop at the enemies, so the warning was incorrect. This
was broken in commit 1564750
--------------------------------------------------------------------------------
bf953fe936 | Nikolai Lavsky | 2025-04-01 22:41:20 +0300

Remove quokka
Specifically, this commit removes an earlier version of quokka's yaml
file, which somehow got into the monster yamlification commit
(5b44be1dd).

--------------------------------------------------------------------------------
126c83ba82 | mumra | 2025-04-01 19:07:44 +0100

fix(webtiles): Make rcfile editing change backwards compatible
The fix in 1e05e1a unfortunately broke rcfile editing if the user
received an updated client.js but the Python server had not yet
restarted to start exposing the new interface. So if game_id is not
present just ignore it and assume it was the last requested rcfile as
before.

--------------------------------------------------------------------------------
c9706edb85 | David Lawrence Ramsey | 2025-04-01 09:48:30 -0500

Various food cache message updates.
Assume for now that poltergeists and revenants can't eat food.

Also, move vampire messages down into the forms section, since it's now
a form instead of a species.

--------------------------------------------------------------------------------
0c5ade9840 | NormalPerson7 | 2025-03-31 21:57:46 -0500

Fix some issues with coglins wielding and unwielding weapons (#3880)
- Fix distortion unwield banishment triggering a turn late for coglins
- Fix delay interrupts (most notably abyss entry from coglin distortion
unwield) from asking the player twice whether they would like to "Keep
equipping themselves?"

Another thing that arose during the making of this PR: when being
banished or shafted, `you.time_taken` is set to 3/4 of the usual time it
would take for the player to complete their action, which can have
bizarre effects. Attacks and spells can be cast, items can be equipped,
scrolls/potions/wands can be used, all randomly and inexplicably 2-3
auts faster than usual. This feels a bit counterintuitive, and I
wouldn't be surprised if it has unintended effects.

There was a bug I experienced a while ago with ?revelation carrying over
to the new floor when being shafted the turn after reading the scroll
which I couldn't reproduce, but I wonder if this is related.
--------------------------------------------------------------------------------
567e58e7c7 | David Lawrence Ramsey | 2025-03-31 18:14:00 -0500

Make slime shroud use the generic Jiyva mut tile.
Since it doesn't have a specific tile, and it's a Jiyva-only mutation.

--------------------------------------------------------------------------------
50241e219b | regret-index | 2025-03-31 19:47:01 -0230

Quickly fit in some more 4/1 tiles (CanofWorms)
One of these was intended for magical staves, but the code matching tiles
for those as identifiable and visually consistent between types is a fair
bit of a headache to slip in temporary tiles for, so I instead gave it to
Yiuf.

While I'm at it, I also re-enabled a much older hat tile, since it suits
the time at hand.

--------------------------------------------------------------------------------
c49d4a5c3e | regret-index | 2025-03-31 19:47:01 -0230

Even more green tiles (pianoman523 / LemurRobot)
A non-generic mutation icon for Jiyva's pseudopods mutation and a spell
tile for Detonation Catalyst, to be more specific. Neither have been
adjusted much beyond palette adjustments to be closer to other Jiyva /
fire / alchemy icons.

--------------------------------------------------------------------------------
350d6bbb2a | regret-index | 2025-03-31 19:47:00 -0230

Make green draconians monsters sting, not tail-slap
Player green draconians grow venomous stingers, so monster green
draconians should actually reflect this in messaging rather than their
scaly tail slaps managing to somehow spread poison.

--------------------------------------------------------------------------------
a3193f7d8d | regret-index | 2025-03-31 19:47:00 -0230

Move gnolls from 'g' to 'j' glyphs
The 'g' glyph hosts a somewhat eclectic set of differing monsters:
Goblins, gnolls, boggarts, and dwarves. (Some of this is inherited from
when the Dwarven Halls wanted their own batch of dwarves and were moved
from 'q' to 'g' to help distinguish classed draconians in Zot.) With three
out of four of these having gained player representation back in 0.32 as
quite popular species with straightforward flavour, there's a reasonable
incentive to have some additional monsters for them in the future (such
as a gnoll with an actual spread of different spells, coglin forgewrights,
or goblins recklessly trying other means of gaining power). The glyph,
however, contains 14 monsters already, leaving very little space in
console to add any further without some change.

To facilitate this, I'm splitting these apart based on cliches of size.
Gnolls have no history nor media depicting them particularly as small
spirits, which otherwise unites goblins, boggarts, and dwarves. (Crawl
dwarves not being small is silly, but a long foregone matter.) They are
thus being moved into their own seperate glyph using one of the few
remaining current unused console glyphs, 'j': 'j'nolls shouldn't be much
weirder than the decade or so of 'g'warves. All monsters involved are
otherwise preserving their colours, aside from dwarf dummy monsters being
moved from green to Wiglaf's lightgreen (since nearly all dummy monsters
are locked behind glass anyway).

(Honestly, it'd help with several other spaces if we could add more
console glyphs outside of standard keyboards, as constructs are overloaded
on '9' and dogs / cats / bears / hogs are crammed full into 'h', but even
if we committed to doing such they'd still need some deliberate division
as been done here.)

--------------------------------------------------------------------------------
a40bc8c295 | regret-index | 2025-03-31 19:47:00 -0230

More adjustments for newer monsters
 * Sphinx marauders are now large instead of giant, both to reflect them
   being younger than the guardian sphinxes as well as accommodating
   impending future uses of non-giant-sized sphinxes.

 * Friendly protean progenitors no longer use the standard human
   intelligence random dialogue, since they're not any talkative in their
   normal messages.

 * Wyrmholes have climbed to the top of killers in Depths since their
   addition three months ago, which is admittedly further than I
   particularly planned- while it's good for Depths to have more
   extremely distinct monsters from V:$ and most of Zot, they're not meant
   to quite quash down any other comparative threats in the branch. (It's
   hard to tell how many people also died to not bothering to cancel the
   teleport, though.) They've been pushed deeper into the Depths
   depth-scaling and are somewhat less common (with alderking weight
   pushed up slightly to compensate), as a consequence. They also have had
   some of their numbers slashed slightly- less hp, lower cast rate for
   their breath, and speed 12 over speed 13. I'll still be keeping an eye
   on them, but I'd rather reduce their numbers a little further if needed
   rather than otherwise nerf their suite of defenses or their central
   displacement gimmicks.

--------------------------------------------------------------------------------
f22e4207f8 | David Lawrence Ramsey | 2025-03-31 14:30:26 -0500

Add another pattern and glowing adj. to colours.

--------------------------------------------------------------------------------
7f1b14aa5c | WizardIke | 2025-03-31 10:00:54 -0500

Fix player tracers not warning when path is blocked (staticshock) (#4421)
When trying to shoot through a plant or transparent wall you should get
a message such as "Your line of fire to the ogre is blocked by a plant".
However, I broke this in commit 1564750
--------------------------------------------------------------------------------
1e05e1a6a0 | mumra | 2025-03-31 07:39:42 +0100

fix(webtiles): Don't flash wrong rcfile if two different "edit rc"s clicked
It was maybe impractical for this to happen except on a very slow
network, but certainly possible to briefly see the wrong rcfile or even
to not see the correct one at all if messages were somehow received
out of order (shouldn't happen, as websockets guarantee messages are
recieved in the order they're sent, but who knows what could happen
inside Tornado).

--------------------------------------------------------------------------------
26fe8ce49a | radio-gra | 2025-03-30 21:59:11 -0500

console: draw waypoints over other items and features (#4323)
Currently, waypoints are only displayed on otherwise empty squares on
the level map view. In combination with them not being xv-able and not
reporting any sort of coordinates other than what level they're on, this
makes it so that if anything overrides them, they become impossible to
find without actually traveling to their exact location.

For my use case, this is a very annoying problem - I use waypoints to
track timed portals and mark encounters with monsters that indicate
potential branch entrances (e.g. redback on L:3), and in general for
annotations that are more location-sensitive where annotating the whole
floor doesn't cut it. Especially when scouting portals, being able to
see exactly where the waypoints are at all times is very important. I
understand that x-marks-the-spot may not the intended use case for
waypoints, but I suspect it to be by far the most common one.
--------------------------------------------------------------------------------
f145acab4e | Charlie Gettys | 2025-03-30 21:42:38 -0500

fix: AUTOFIGHT while immotile should not wait (CrawlOdds) (#4399)
If immotile (e.g. from -Move), we should not wait when you try to
autofight by default.
No other case that I can see will wait unless AUTOFIGHT_WAIT is set -
why is this one different?

This logic was added last year in
52037ea7a925a6ae6b1b67939267cd8f1f4837a4.
I'm guessing because it was confusing to hit tab and have nothing
happen? but mpr would make more sense to me to solve that.
Gate the old behavior behind autofight_wait.

Could add another option for it instead, but it seems consistent with
the behavior of the autofight_wait option in general.

Closes #4394
--------------------------------------------------------------------------------
fe11bc45f1 | Alex Jurkiewicz | 2025-03-30 21:22:09 -0500

feat(webserver): Add game_id to rcfile_contents (#3496)
When webtiles clients request an rc file's contents,
 they send a
`get_rc` message with a `game_id` property. The webt iles sever responds
with a `rcfile_contents` message that has a `content s` property.

Because the response doesn't include `game_id`, the client has to treat
this as a stateful request. It has to remember what was recently
requested and can't pipeline multiple requests.

The current webtiles client stores this state in the
 UI and will ignore
the additional property. But its existence will simp lify design of
future webtiles clients.
--------------------------------------------------------------------------------
74edd5530c | David Lawrence Ramsey | 2025-03-30 17:35:25 -0500

Add another adjective to artefact books.

--------------------------------------------------------------------------------
5d77c6c51e | Heinrich Ody | 2025-03-30 17:12:51 -0500

Optionally add target location description (#4073)
### Main Changes

In #1422 several ways to improve accessibility for visually impaired
players are discussed. I believe the issue can be closed when this PR is
merged.

This PR adds showing location description along with tile descriptions
during aiming and viewing.

To enable this feature `Options.monster_item_view_coordinates` needs to
be set to true. See also "Options for blind players" from the
options_guide.

### Other Changes
Also added some comments to some description methods.

### Pictures
Some pictures (or terminal outputs) to visualize the changes. New is
`Location (x, y)`.

#### When pressing `f` with a ranged weapon:

```
Fire: e) +0 orcbow
Press: ? - help, Q - select action
Shift-Dir - straight line
Location (0, 3)

                                     sefie the Shield-Bearer           *WIZARD*
                                     Minotaur
                                     Health: 19/19     ========================
               ####                  Magic:  0/0
               #..                   AC:  6 (26%)      Str: 20
               #.ß                   EV:  8            Int: 5
               #..                   SH:  0            Dex: 9
               #.#                   XL:  1 Next:  0%  Place: Dungeon:1
               #*#                   Noise:  0 ------  Time: 6.5 (0.0)
               #*#                   e) +0 orcbow
               #☺#                   Fire: e) +0 orcbow
               #.#
               #.#
               #.#
               #..
               #.ß
               #..
               ####
```

#### When pressing `x`:
```
Press: ? - help, v - describe, . - travel
Location (0, 0)
A staircase leading out of the dungeon.

                                     sefie the Shield-Bearer           *WIZARD*
                                     Minotaur
                                     Health: 19/19     ========================
               ####                  Magic:  0/0
               #..                   AC:  6 (26%)      Str: 20
               #.ß                   EV:  8            Int: 5
               #..                   SH:  4            Dex: 9
               #.#                   XL:  1 Next:  0%  Place: Dungeon:1
               #.#                   Noise:  0 ------  Time: 1.0 (0.0)
               #.#                   a) +0 rapier
               #☺#                   Nothing quivered
               #.#
               #.#
               #.#
               #..
               #.ß
               #..
               ####

```

### Background

After discussion a few items where suggested in #1422 as improvements:

> During standard interactions, place the terminal cursor at the
new-turn underscore instead of at the player, so that "start reading
from cursor" reads the message window.
> During targeting mode, place the terminal cursor at the description
portion of the message window, so that "start reading from cursor" reads
what's currently being targeted (and add an option to display the player
relative coordinates).
> For other things that use the message window for a prompt move the
cursor appropriately to the start of the prompt.
>    When displaying full screen menus, move the cursor to the top left
> When full screen menus give a prompt (like in acquirement) move the
cursor to the start of the prompt.

Most of the suggested changes already have been merged into crawl
(except the additional positions when aiming). The cursor positioning is
made unnecessary by placing the message window at the top of the
terminal, and by clearing old messages (see also "Options for blind
players" from the options_guide).
--------------------------------------------------------------------------------
57531695c7 | Hellmonk | 2025-03-30 16:39:02 -0500

Adjust shop pricing (#4417)
Reduce the price of heavy armours and orbs. Increase the price of most
strong weapon types. Increase price scaling with depth, especially for
consumables. Hoping for more interesting shop decisions later in the
game; more changes to come but probably not in this version.
--------------------------------------------------------------------------------
17c16fb7e5 | WizardIke | 2025-03-30 16:28:22 -0500

Fix harmless beams prompting when hitting allies (cool 3) (#4416)
There shouldn't be a prompt warning you that you will hit your allies
with a beam if the beam is harmless to your allies. I accidentally broke
this in commit 1564750
--------------------------------------------------------------------------------
d2c03782b8 | gammafunk | 2025-03-30 12:53:33 -0500

Fix a DES typo (AutarchDCSS)
Fixes #4414.

--------------------------------------------------------------------------------
7451b4b137 | WizardIke | 2025-03-30 12:16:08 -0500

Fix closing doors with the mouse (#4276)
Control left mouse clicking an open door would result in an unknown
command message instead of attacking in the direction of the door. The
reason for this is that the game would try to close an open door if you
control left clicked it and couldn't see a monster on it, but generate
the command to do so incorrectly. This is a bad idea as control left
clicking is almost always used to attack invisible monsters. This change
moves closing doors to shift left clicking and fixes the generation of
the command.

Fixes #3801
--------------------------------------------------------------------------------
8bb8084e21 | DracoOmega | 2025-03-30 14:14:58 -0230

Warn the player when firing Mule could trigger a trap (CarefulOdds)
Similar logic already existed for Bombard, but not for Mule.

--------------------------------------------------------------------------------
cefcf6c28b | gammafunk | 2025-03-30 00:30:55 -0500

Fix a lua typo
For Necropolis, the internal difficulties are always lower-case.

--------------------------------------------------------------------------------
3993efc380 | Hellmonk | 2025-03-30 00:15:38 -0500

New spell: Detonation Catalyst (#4388)
Playing with buff duration and melee on-hit effects. Detonation Catalyst
is a level 5 Fire/Alchemy spell that causes melee hits to do an
ignition-style shaped explosion centered on their primary target. Does
not work on cleaving attacks, but does work with reach, WJC move
attacks, rampage, electric charge, manifold assault. The duration is
extremely short (30-50 aut), but attacking prevents the duration from
decreasing. Also, a large percentage of the spell's damage comes from
the weapon's base damage. Please charge into enemies while wielding dark
maul I am begging you, it will be really funny.

---------

Co-authored-by: DracoOmega <draco.omega.dcss.dev@gmail.com>
Co-authored-by: gammafunk <gammafunk@gmail.com>
--------------------------------------------------------------------------------
1564750bf8 | WizardIke | 2025-03-29 23:15:40 -0500

Improve player tracers (#4219)
Players can fire two kinds of tracers. The first is used to check for a
target and e.g. gray out your quivered spell if it has no target. The
second is fired by functions like `player_tracer` and warns when there
are bad targets (e.g. yourself or an ally). Instead of choosing between
these two by setting a combination of flags on a bolt before firing it,
choose between them by passing a different tracer class to the bolts
fire method.

when firing a tracer with the `player_tracer` function don't just warn
about one of your allies that would be hit, instead warn about all of
them in the same way that melee attacks do (e.g. when using the singing
sword). Also, don't spam warnings when firing a starbust that will
target you multiple time, instead just say up to how many times the
starbust can hit you.

Fixes #4151
--------------------------------------------------------------------------------
aa25462d22 | David Lawrence Ramsey | 2025-03-29 22:42:44 -0500

Fix wording.

--------------------------------------------------------------------------------
e0a373db31 | David Lawrence Ramsey | 2025-03-29 22:42:44 -0500

Fix typos.

--------------------------------------------------------------------------------
f69652860f | David Lawrence Ramsey | 2025-03-29 22:42:44 -0500

Fix spelling.

--------------------------------------------------------------------------------
185f48b25f | regret-index | 2025-03-30 01:06:08 -0230

Remove a vault testing weight (Darby)

--------------------------------------------------------------------------------
9b26fc442c | regret-index | 2025-03-30 00:54:29 -0230

Fix tag upgrade wrapping for Necropolis

--------------------------------------------------------------------------------
45187ed2c3 | DracoOmega | 2025-03-30 00:32:45 -0230

Re-allow chaos weapons for player ghosts/illusions
It's not clear to me why it even remained banned when distortion was
allowed, but certainly seems unnecessary these days.

No holy wrath weapons on ghosts makes thematic sense, but unfortunately
this code is also used for player illusions, which currently means that
you can't even clone a holy wrath weapon you're wielding onto a 'living'
illusion. I'd like to fix this too, but there's some... tricky jank
involved, so I am deferring it for now.

--------------------------------------------------------------------------------
e3b193ec8d | DracoOmega | 2025-03-30 00:32:45 -0230

Make player ghosts/illusions actually copy the player's move speed
The reasoning for making all player ghosts move speed 10 dates from a much
earlier time when ghosts freely roamed the dungeon. It was probably
unnecessary to deprive spriggan ghosts of their speed after ghost vaults
were first made to exist and seems even moreso now. (And, in my opinion,
it was extra weird that copies made by Mara or the Illusion Card didn't
respect the player's speed.)

Due to how bones files are saved, this won't *retroactively* make spriggan
ghosts fast or naga slow, but should affect ghosts moving forward (and the
permastore has long been wanting an update...)

--------------------------------------------------------------------------------
7c26d03b70 | DracoOmega | 2025-03-30 00:32:44 -0230

A little backend work for Necropolis
Draw player ghosts in Necropolis from the floor the Necropolis is entered
from. Also set absdepth for item generation in the same way (so that both
enemies and rewards scale properly no matter what point in the game one
takes the portal.)

--------------------------------------------------------------------------------
72caabbf62 | regret-index | 2025-03-30 00:32:29 -0230

Move ghost vaults into the Necropolis, a game-long repeating portal
Ghost vaults, while a reasonable approach to the former issues of
deliberately making spoilery griefing ghosts way back when, have a variety
of implementation issues in the current day:

 * While newcomers may willingly walk into out-of-depths put on direct
   display, many cautious experienced players will put off the vast bulk
   of them until they're harmless (give or take zombies), which throws out
   most of their interest and complexity. This capacity to backtrack also
   make the majority of early vaults contain minimal rewards, which itself
   further emphasizes them as mostly a trap early on.

 * Their need for sufficiently-varied themes somewhat distort the branches
   they appear in, with undead in many branches that otherwise avoid being
   unholy, Slime spawns in Elf, or Xom and Lugonu absolutely everywhere
   with little restraint or care.

 * In Depths and Zot, three quarters of ghost vaults using "ORIENT: float"
   ends up eating the regular vault slot those floors could have used for
   distinct and flashy vaults that aren't particularly stuck as optional
   challenges.

To address all of these concerns at once, especially the first of these,
I am porting them all into a new portal: the Necropolis. Up to three of
these can spawn each game: One in D, Lair, or Orc; one in Snake, Swamp,
Spider, Shoals, or Vaults; and one in Elf, Depths, or Crypt.

Each Necropolis contains entry groves, wide-open empty halls, and three
ghost vaults, in an attempt to distinguish them compared to other confined
portals. Ghost vaults themselves on average have been made larger to
accommodate this, and are each still discrete optional chambers held
behind runed doors or transporters; as thus a free selection of given
challenges, it should also feel different enough from other portals to
function fine in its own highlighted fashion. (Many vaults have been
given some marginal additional rewards and weakened when appearing early,
but it is fine if players do not opt to take all or even some of the
challenges each Necropolis, since this is mostly focused on improving the
status quo; in this same spirit, Necropolis portals take 50% longer to
disappear than other portals, so people won't feel as rushed.)

(This portal also comes with a large amount of unique tiles to try and
evoke a certain muted starry otherworld, as well as a variety of new
entry vaults, some preliminary layouts, and my own hand at themed vaults
scaled throughout the game. See prior commits for tile credits there.)

Alongside those 10 more ghost vaults to join a total of about 42 other
ghost vaults, there are many specific implementation wrinkles involved:

 * The entry gardens use runed doors so instant autotravel defaults on
   webtiles aren't going to completely miss the non-ghost-vault parts
   of each level, which mildly slows down play but hardly by enough for
   me to particularly worry much.

 * The outsider perimeters of ghost vaults are not no longer tagged as
   no_tele_into, since there's so much more space around them now. To
   reduce the overall effectiveness of teleporting right as one opens up
   runed doors for this portal dependent on them, all vaults are tagged
   as patrolling, so it's now much harder to split up the vault's contents
   away from one another.

 * Ghost vaults that just contain one ghost and ghost vaults that focus
   almost solely on undead monsters can only appear once a floor, to try
   and reduce the portal feeling too much like Ossuary 2: Crypt 4.

 * No Necropolis entries appear in Zot despite ghost vaults existing there
   previously, as that contains no portals. There have been additions to
   Zot's stair vaults over the past few versions, so this shouldn't be too
   much of a loss to that branch.

 * Lair branch appearances sans Slime (i.e. Snake, Swamp, Shoals, Spider)
   regularly use subvault contents across branches, and the latest
   appearances of Necropolis (Vaults and Elf, Depths and Crypt) always
   share their contents entirely. Portal vaults at this depth already
   pull from extended branches like the Hells and Pan, or outright
   contain unique monsters entirely like Desolation, so there is a
   pressing need to be able to vary up ghost vault contents with
   sufficient difficulty to reasonable compare to the endpoints of those
   portals. Additionally, Elf and Crypt both have very limited monster
   sets in themes and raw number count, while already overlapping in
   tangible ways with V and Depths respectively, so sharing potential
   subvault contents with the other branches helps expand the amount
   of monsters a Necropolis can use when placing three vaults per
   visit.

   * (While this results in some very non-undead ghost vaults for Crypt,
      that branch getting access as Depths has to the vast majority of
      all ghost vaults options feels entirely appropriate.)

 * A variety of newer ghost vaults use very... novel runed door
   arrangements. None of them are really much worse than what has been
   heavily established by door_vault, though, and they present some
   less singular approaches compared to single boxes with one small
   runed door entrance, so they should be fine.

 * One vault (gammafunk_gnarly_gnolls) was too large to fit in Necropolis
   subvault sizes and has had its ghost removed, while another vault
   (nicolae_yredelemnul_ghost_church) also has had its ghost removed.
   Ziggurats still keep their access to player ghosts also.

 * (Runed door and transporter vaults not reliant on player ghosts have
    not been touched. A large focus of this project was inherently focused
    on how player ghosts as a minimum of vault contents can be very
    notably dangerous in a fashion that encourages delays, and there were
    substantially more ghost vault appearances than other such runed door
    or transporter vault appearances due to their flat chance each floor.)

--------------------------------------------------------------------------------
aaf212a877 | regret-index | 2025-03-29 21:30:39 -0230

Necropolis's near-comprehensive new tile set
Split from the following commits to credit each of the sources for the
tiles, and to make it easier to keep them around if the ghost vault /
ghost portal quandry ends up being handled in a completely different way
instead.

 * The entrance, exit, and absence tiles use roctavian's Bazaar, old Slime,
   and old Shoals entrance tiles.

 * The trees use Sastreii's trees, dead trees, and demonic trees.

 * Floor tiles mix floor_crystal_squares, floor_mosiac, and floor_grass.

 * Stone walls mix Swamp's stone, Snake's stone, wall_marble,
   floor_demonic, and Denzi's icons for Berserk Rage, Cause Fear, Silence.

 * Metal walls mix Denzi's Dis walls and CC0 scraps by Surt.

 * Clear permarock combine ontoclasm's various clear wall tiles with more
   CC0 scraps by Surt.

 * Gravestones are just a portal-appropriate recolouring of Purge's
   previous gravestones.

 * The decorative deep water mixes the current deep water with ontoclasm's
   dimensional edge for the Golubria wizlab.

 * Okawaru and Gozag flavoured iron statues use CanOfWorms's bailey
   statues, roctavian's golden statues, and ontoclasm's iron golem statue.

--------------------------------------------------------------------------------
3b93c1ba95 | regret-index | 2025-03-29 21:30:33 -0230

Petrified plants -> petrified flowers (as their own monster)
We've used two different variants of petrified plants before this point,
with evilmike_catoblepas_cave using a singular greyscale variant of an old
plant tile for perm_ench:petrified normal plants with a custom
description, and ebering in both Desolation and an ecumenical altar vault
using withered plants without a custom description. The former case both
required tile updates never bothered with, would be easily inaccurate
after dispelling, and produced lines like "a petrified plant (petrified)",
while the latter has been granted brown dying plant tiles in 914cb65
and thus no longer visually suit it. They are still a somewhat useful
conceit, however, as a plant that can match with petrified trees and
which tells a small story in-and-of itself. As such, I'm revising these
entirely with a new directly stone tile and monster, which can also help
out the themes of an upcoming portal.

Petrified flowers follow the sturdiness of sacred lotuses in b3a183b (and
not the frail boulders of d9500d9) in being extremely difficult to destroy
and not slowly dying on hit, relying more on being omniresistant rather
than regeneration. (Hopefully, when combined with being used only in
rather sparse numbers, people won't feel obliged to destroy it and it
can actually survive standard dungeon violence.) They count as both
non-living and plants, which mostly matters for showing as non-living in
the description but still allowing Fedhas characters to walk through them.
They're been given some melodramatic description flavour to fit their use
in Desolation, and outside of the grandfathered-in earlier vaults should
only be fit into more dramatic portals or the Realm of Zot (where I've
tried to slowly further emphasize a tertiary theme of the extremely
ancient and primordial.)

Their tiles are comprised of ontoclasm's old Fedhas Evolution ability tile
and red tufts of grass from a CC0 ninja-themed asset pack by pixel-boy.

--------------------------------------------------------------------------------
344fa49817 | regret-index | 2025-03-29 21:29:49 -0230

Don't use spider zombie tiles for emperor scorpions
With a seperate scorpion zombie tile already extant, and an extreme
unlikelihood with current design paradigms to mix normal scorpions with
emperor scorpions in the same vault, we might as well make the strongest
zombie type for Spider not be literally the same tile as the weakest.

--------------------------------------------------------------------------------
e3b8f7ef18 | regret-index | 2025-03-29 21:29:48 -0230

Don't do unnecessary terrain fix-up for spectrals in vaults
Previously, when vaults placed spectrals, they'd check the habitat of the
monster they were derived from to see whether or not they'd need floor
forcibly placed under them instead. Spectrals, unlike other derived
undead, fly, which makes them not need any terrain checks at all; as such,
this fixes them getting unnecessary land placed under them when otherwise
put over lava or deep water.

--------------------------------------------------------------------------------
804bde4694 | DracoOmega | 2025-03-29 20:15:44 -0230

Fix monsters from Lugonu's Corruption lasting forever (Ge0FF)
Likely broken since fb19e97205a5 this was possibly the only place in the
code where summoned monsters were made with no summoner *or* summon type
(that weren't also *intended* to be permanent).

But in general, it feels like giving something a summon timer ought to
actually apply its summon timer, so modifying the core function like this
makes sense to me.

--------------------------------------------------------------------------------
c301a0fa6f | MikeJHeg | 2025-03-29 10:27:27 -0500

Fixed description of Zot trap to be more accurate (#4400)
Zot traps don't actually have the effect of throwing you into the abyss
in their effects table. Removed that line in the description and
replaced it with petrification.
--------------------------------------------------------------------------------
c4a73f2e74 | Aliscans | 2025-03-29 09:56:56 -0500

Stop making notes about once-forgotten features. (#4086)
The game makes a note of some features whenever they are marked as
"seen". The "forget level map" command clears the "seen" flag for most
of the features on the current level, meaning that something could have
several notes made about its discovery.

Only make a note the first time something is seen.

Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
0ac082cc57 | Hellmonk | 2025-03-29 09:48:26 -0500

Slimy Shroud Jiyva mutation (#4367)
Loosely based on the removed shroud of golubria spell, but with a
simplified design. It has a 1/4 chance to negate a melee attack, after
which it goes on cooldown for a while depending on the damage prevented.
--------------------------------------------------------------------------------
9fdd3ef415 | radio-gra | 2025-03-28 09:56:27 -0500

Mark maxed out misc evokers as useless if not in player's inventory (#4402)
Existing code only marks useless misc evokers as such if they're in
shops, but if they're just laying on the floor they are currently not
considered useless. This is a nuisance in zigs, which have one or more
evokers on almost every floor, quickly maxing them out and adding more
visual noise to an already overloaded ctrl-X menu.

The hacky inventory check is not ideal, but I couldn't come up with a
better solution without going out of my depth and messing with core
functions. I checked all edge cases I could think of like standing on +5
evo while having a copy in your inventory
--------------------------------------------------------------------------------
b62e7e9324 | WizardIke | 2025-03-28 09:38:39 -0500

Fix the mouse doing incorrect commands when keys are rebound (#4282)
We were converting some mouse commands into the key press that would
result in that command with default key bindings. For example, if the
'<' key was rebound to open the read scrolls menu, clicking on an up
staircase you were standing on would open the read scrolls menu.

Fixes #3799
--------------------------------------------------------------------------------
86ab01573d | David Lawrence Ramsey | 2025-03-28 09:22:17 -0500

Unbrace.

--------------------------------------------------------------------------------
41a24375dd | hellmonk | 2025-03-28 09:20:42 -0500

checkwhite

--------------------------------------------------------------------------------
780a91e42c | hellmonk | 2025-03-28 09:20:21 -0500

update credits

--------------------------------------------------------------------------------
30fa6646ce | hellmonk | 2025-03-28 09:14:19 -0500

Don't persist bind soul through stairs (kleiner-fisch).
Closes #4078 and #4075. Not taking the rest of 4078 because current behavior
with dropping los is intended, per DracoOmega.

--------------------------------------------------------------------------------
a82abb8be2 | cadi | 2025-03-28 09:10:18 -0500

[webTile] : add expiring description for expiring status (#4110)
Indicate status expiration in the tooltip description ui.
--------------------------------------------------------------------------------
846544658f | Nikolai Lavsky | 2025-03-28 14:14:21 +0300

fix: display the vexed status icon in webtiles
Followup to f4f8fbaca.

--------------------------------------------------------------------------------
12c12526e9 | mumra | 2025-03-27 23:23:10 +0000

Fix a comment
There is no read_scroll function, so make this comment a bit more
accurate.

--------------------------------------------------------------------------------
04438170c2 | mumra | 2025-03-27 23:23:03 +0000

Remove a last vestige of monster scroll use
Since 35f977f monsters will not pick up or use any scrolls, so this code
is now unneccesary.

--------------------------------------------------------------------------------
a6697884fe | Nikolai Lavsky | 2025-03-27 23:43:26 +0300

docs: remove inedible corpses from the options guide
and replace them with a more contemporary example.

--------------------------------------------------------------------------------
064f4b25fe | Kyle Rawlins | 2025-03-27 14:43:57 -0400

build: only rewrite job/species files when changed
Previously, all generated files would be unconditionally rewritten
whenever these scripts were called. Because this guarantees an updated
mtime on species-type.h and job-type.h, which are included in a very
large number of files, this typically triggers a full rebuild even if
the content of these files does not change. Sure, ccache solves this,
but it's a very easy issue to hit for new users who aren't yet at the
advanced stage of installing ccache. This commit only rewrites generated
headers if they do change.

via: 
https://www.reddit.com/r/dcss/comments/1jl7qsf/why_when_i_compile_dcss_after_edi
ting_jobs_or/

--------------------------------------------------------------------------------
ae8f5d1afa | WizardIke | 2025-03-27 10:08:42 -0500

Make monsters stop attacking when their target becomes friendly (#4366)
For example if you have an allied zombie hydra and it defeats an orc
challenger sent after you by Beogh, it shouldn't use its remaining
attacks to attack the now friendly orc.

Partial fix of #4352
--------------------------------------------------------------------------------
0f6edee007 | Aliscans | 2025-03-27 09:55:23 -0500

Don't hang on SIGHUP in wizard_mod_tide(). (#4285)
Make Crawl shut down correctly in some situations where it didn't
already.

Make wizard_mod_tide() respond to seen_hups, rather than ignore it.
Make ui::delay() treat seen_hups as if the user had pressed the Escape
key.

---------

Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
4c332b3a82 | hellmonk | 2025-03-26 22:10:37 -0500

Adjust hexagon encompass
Trim some of the exotic monsters and reduce monster count.

--------------------------------------------------------------------------------
122d78936f | Isaac Clancy | 2025-03-26 17:24:38 -0230

Fix a crash when casting phantom blitz (Colgate)
When a monster cast phantom blitz with all 700 monsters on a level, the
game would crash.

--------------------------------------------------------------------------------
f708817d99 | DracoOmega | 2025-03-26 00:10:24 -0230

Hopefully maybe fix a cryptic Beogh conversion crash
It's not entirely clear to me the sequence of events required to trigger
the crash in a real game, though at least two people have. It seems to
(maybe) require returning to a level with no monsters on it, which still
somehow has the LSTATE_BEOGH flag set, while the player is injured enough
to be able to convert to Beogh. Though it's unclear to me how that flag
can *be* set with no monsters on the floor (it also probably only happens
on webtiles, due to codepaths involving milestones being examined on floor
transition.)

But at any rate, env.max_mon_index should probably never be -1, even if
it's unclear *exactly* why that is resulting in this crash via
monster_near_iterator.

--------------------------------------------------------------------------------
2ccf60101c | DracoOmega | 2025-03-25 16:06:22 -0230

Fix an off-by-one error with loading env.max_mon_index
If somehow a floor had generated enough monsters to hit MAX_MONSTERS, and
was loaded again in this state, monster_iterator would try to iterate past
the actual monsters and crash.

(Hitting MAX_MONSTERS during the game itself was handled properly.)

--------------------------------------------------------------------------------
c6c205540b | Nikolai Lavsky | 2025-03-25 16:34:04 +0300

fix: an issue with subprocess and signal modules in Python 3.12
Launching the server gives the following error on some Python 3.12s:
"AttributeError: module 'subprocess' has no attribute 'signal'."

Previously, the subprocess module imported `signal`, so it was possible
to use `subprocess.signal`. But this `import` was removed from the
module in [1] in January. This caused some bugs, and the commit was
reverted [2] on Feb 16, half a month later. Some distributions, for
example Arch Linux, provide Python 3.12 with the commit [1], but
without [2] (yet), hence the error.

To fix this, import the signal module directly instead of relying on
`subprocess` to provide it, as was suggested in #4353. Also, the
subprocess module is not used for anything else in `process_handler.py`,
so it should be safe to remove.

This addresses the second part of #4353 and allows to run the server on
Python 3.12. Other supported versions of Python shouldn't be affected by
this change at all. Supporting 3.13 requires replacing the deprecated
crypt module, which should be done by someone more familiar with the
authentication code.

[1] https://github.com/python/cpython/commit/f65aa0d1
[2] https://github.com/python/cpython/commit/042b4924

--------------------------------------------------------------------------------
46e4344c46 | hellmonk | 2025-03-24 23:26:27 -0500

Allow spellvamp with vampiric draining.
Closes #3693. Moved to beam code as per comment.

--------------------------------------------------------------------------------
e63a381d31 | Brian Faires | 2025-03-24 22:43:10 -0500

Add lua function item.inscribe(inscription="", append=true) (#2805)
Currently, no way to set inscriptions from lua aside from sendkeys().
That gets messy and spams the dialog.
Added function to append or replace an existing inscription.
--------------------------------------------------------------------------------
ecfa6e8a7d | WizardIke | 2025-03-24 22:27:36 -0500

Don't crash when targeting outside map (#4372)
When targeting outside the map,
`direction_chooser::update_previous_target()` would search for the
monster closest to the target to set as your previous target. However,
the radius_iterator used for this was asserting that the target was
inside the map.

Fixes #4368
--------------------------------------------------------------------------------
6208d13a8f | WizardIke | 2025-03-24 22:24:39 -0500

Fix the tile_runrest_rate option (#4385)
This option controls how often we render in milliseconds when resting,
exploring, or travelling. However, it was being ignored resulting in
large amounts of time being washed waiting for vsync or rendering
updates that were never going to be visable. I also, reduced its default
value from 100ms to 17ms as 10 fps felt choppy.
--------------------------------------------------------------------------------
9300408954 | Charlie Gettys | 2025-03-23 23:41:36 -0500

ci: fix checkconventionalcommit.py (#4312)
Python version in CI doesn't like line 36.
My local version of Python is fine with it.
Split the statement in 2 to satisfy more Python versions.

Also exclude certain branches from main repo.
We're not gonna fix past commit messages.
--------------------------------------------------------------------------------
9c36f3742a | WizardIke | 2025-03-23 23:36:48 -0500

Make fair_adjacent_iterator fair (#3914)
The old fair_adjacent_iterator would visit the tiles around it in the
following order
1 4 6
2 x 7
3 5 8
starting from a random tile and wrapping around when it reached the last
tile e.g. if the random start was 4 then 4,5,6,7,8,1,2,3. So imagine for
example a yellow ugly thing surrounded by walls and other ugly things
trying to pick a random ugly thing around it when changing colour as
shown below

w=wall
r=red ugly thing
y=yellow ugly thing
b=brown ugly thing
c=cyan ugly thing
g=green ugly thing

w w r
w y b
w c g

if the random start was an adjacent ugly thing that ugly thing would be
selected, however, if the random start was one of the walls the iterator
would be advanced until it reached the cyan ugly thing and it would be
selected givng the cyan ugly thing a 5/8 chance of being selected and
the red, brown and green ugly things 1/8 chance each.

This change makes fair_adjacent_iterator visit the tiles around it in a
random order (without repeats)
--------------------------------------------------------------------------------
c4b2e2bd67 | David Lawrence Ramsey | 2025-03-23 23:19:16 -0500

Fix spelling.

--------------------------------------------------------------------------------
8bf82eaf03 | hellmonk | 2025-03-23 23:12:26 -0500

update credits

--------------------------------------------------------------------------------
d0d60a0ba6 | hellmonk | 2025-03-23 23:01:45 -0500

Update background descs (NotAJumbleOfNumbers)
Make some magic backgrounds more descriptive. Thanks Mumra for the hedge wizard
and air elementalist descriptions. Also, update Fighter and Warper to correctly
describe their consumables, and allude to Cinder Acolyte starting spell.

--------------------------------------------------------------------------------
e3852c236f | WizardIke | 2025-03-23 22:18:06 -0500

Allow manifold assault with the Sword of Power (#4393)
When the Sword of Power shoots a bolt, start the bolt from one space
before the defender in the direction from the attacker to defender
instead of always starting from the attacker. This allows it to make
attacks it a distance with manifold assault.
--------------------------------------------------------------------------------
bd99899e7f | gammafunk | 2025-03-22 22:19:15 -0500

Fix teleport closets in a vault (notthatgreg)
The vault minmay_twisted_water has various squares that are fully
surrounded by walls and deep water. Update these to have the
no_tele_into KPROP. Also remove an unused MONS entry. Fixes #4395.

--------------------------------------------------------------------------------
2614225963 | gammafunk | 2025-03-22 16:03:20 -0500

Fix a spell description (CarefulOdds)
The description for Summon Horrible Things referenced its former int
drain effect. That was replaced with adding a weak-willed temporary
mutation. Although this negative effect will be revisted in the future,
this is what the spell does for now, so update its description. Also use
a more accurate spell description key name.

--------------------------------------------------------------------------------
28f6e29f1b | DracoOmega | 2025-03-21 23:04:45 -0230

Fix being able to equip all shields on any size of character (kfkqmtg)
An oversight from 10c1f53

--------------------------------------------------------------------------------
8d8e88ab66 | mumra | 2025-03-21 18:05:37 +0000

Correct an inaccurate comment
Looking at c65fdff where this comment was written, it seems fairly clear
it was meant to refer to the code *after* not *above* the comment. The
preceding code doesn't have much logic and is gathering some data
necessary for the movement code.

--------------------------------------------------------------------------------
2171951b38 | DracoOmega | 2025-03-21 13:31:58 -0230

Don't crash if taking 0 delay turns while Fathomless Shackles is active
(Swapping equipment that involves delays uses a 0 aut turn internally, as
part of its sequencing, meaning that you can crash whenever you try to swap
body armour with Fathomless Shackles active.)

--------------------------------------------------------------------------------
5d35c07169 | DracoOmega | 2025-03-21 09:32:54 -0230

Fix randart enhancer staves sometimes not displaying resists (Lici)
If a randart enhancer staff generated with a resistance of a type that the
staff's base type gets by default (ie: a staff of cold with an additional
rC+), it would be completely invisible on the inscription. The resist would
still function (and be viewable with %), but the item description would
always override it with 1 level.

--------------------------------------------------------------------------------
7ce8407eea | Nikolai Lavsky | 2025-03-20 18:14:38 +0300

fix: display the chaos-laced status icon in webtiles
This got missed in 4b739738.

--------------------------------------------------------------------------------
0534b38e66 | David Lawrence Ramsey | 2025-03-19 19:13:01 -0500

Account for muscle-less players in Xom messages.
Change "muscles" to "sinews."

Rationale: Since revenants are skeletal, they don't have muscles (despite
their orc name, they don't appear to be built like Skeletor), and
poltergeists don't have bodies in the usual sense, but both have some
ectoplasmic equivalent of sinews to hold themselves together. Other
species would have ordinary sinews to do the same, and adding a flag for
whether a species has muscles seems a bit too niche. so sinews is a
better generic term for what holds different species together.

--------------------------------------------------------------------------------
4b41cfc14b | David Lawrence Ramsey | 2025-03-19 19:03:45 -0500

Account for formless players in Xom messages.
Since the player equip code indicates that they don't have heads, don't
count the head as a body part for them.

--------------------------------------------------------------------------------
10c1f53bb1 | DracoOmega | 2025-03-19 16:40:37 -0230

Let tiny and large species put gloves on their Fungal Fisticloak
The 'armour size' check was applying even to the fisticloak's gloves slot,
but in most cases, 'armour size' is now redundant with the fact that the
species in question don't get a SLOT_GLOVES of their own in the first
place.

I believe that body armour may be the only place where this parameter has
a more nuanced meaning, so we perform the old check there and use a simpler
one for hats vs. helmets. (Hats/helmets also need another refactor in
future to make Zonguldrok more properly ignore horns on the player's head,
but that's a lot trickier and out of scope for this commit.)

This fixes #4302

--------------------------------------------------------------------------------
6e1b721bf3 | DracoOmega | 2025-03-19 16:40:37 -0230

Fix some wierdness with poltergeists and Fisticloak
The most obvious manifestation of this bug was the cloak sometimes falling
off when the player took the stairs, but the underlying issue is that if
you had 5 aux slots filled up already, and tried to put on the fisticloak,
it would still let you *even though it should require two of those slots*.

The issue is that the search for both 'a slot that can hold a cloak' and
'a slot that can hold a hat' was finding the same single slot and thinking
this was good enough. (And then save compat code was knocking off the
fisticloak on level change, since it properly detected that you didn't have
enough slots for it.)

Now, multi-slot items should substract each slot they take up from your
total slots, when calculating whether something can fit or not.

This fixes #4322

--------------------------------------------------------------------------------
df4e34529f | DracoOmega | 2025-03-19 16:40:37 -0230

Fix poltergeists not getting the bonus slot from Zonguldrok/Fisticloak
(And also any similar items which might theoretically add an extra boot or
cloak slot in the future)

--------------------------------------------------------------------------------
bae9310bee | Nikolai Lavsky | 2025-03-19 17:19:48 +0300

fix: make Poisonous Vapours targeter ignore rPois enemies, again
Currently, the spell becomes active on the quiver and in the z? menu
even if there are only poison-resistant/immune enemies in range. The
targeter correctly highlights enemies without rPois, but refuses to
highlight poison-vulnerable targets, like killer bees. Also, there is no
message when aiming at a monster that can't be affected. Finally, when
cycling through possible targets, the targeter doesn't skip
poison-resistant monsters.

So, as a remake of 3f6d0115, this commit brings back a custom targeter
and a usefulness check for the spell. But since current Poisonous
Vapours is different than the pre-b5f9efb4 implementation, the new check
in `spell_no_hostile_in_range()` is slightly different too.

--------------------------------------------------------------------------------
3039f5625e | David Lawrence Ramsey | 2025-03-19 00:05:41 -0500

Fix comment typo.

--------------------------------------------------------------------------------
d685d6802f | mumra | 2025-03-18 23:59:18 +0000

Fix some Deep Elf tile offsets
Since 9b14fc1 (plus 3b45c41), which changed the hand positions of
monster Deep Elves, their weapons have been floating a few pixels away
from a correct holding position. This updates the relevant offsets so
the weapons (and shields, if used) are held properly.

--------------------------------------------------------------------------------
85c0d3feac | DracoOmega | 2025-03-18 19:57:40 -0230

Fix a Nobody / phantom mirror crash
timeout_enchantments was also deleting its summon timer in the middle of
reviving it (causing it to die again before the avoided_death_fineff had
fired, resulting in an assert).

Really would be nice to have that 'just remove harmful status effects'
function....

--------------------------------------------------------------------------------
f5e40d3f22 | DracoOmega | 2025-03-18 19:45:30 -0230

Buff Nobody a little
Despite their scariness on paper, they've been statistically
underperforming, so I am making a few adjustments.

Their spells from Phyrric Recollecton get burnt out at 50% HP instead of
60%, they get a tiny HD and AC increase, and their Haste and Might actually
persist between phases (which I'd always thought it did - that was the
*point* of that spellset - but neglected to realize it was being cleared).

Additionally, in hopes of averting the possibility that a scarier Nobody
would be tempting to park on another floor (because they couldn't learn any
of their scary stuff until you first damaged them), they can now ignite
their first memory merely upon *seeing* and engaging the player, whether
they are actually injured or not.

We'll see how much effect this has on them.

--------------------------------------------------------------------------------
3a960af9c8 | DracoOmega | 2025-03-18 19:17:12 -0230

Don't give Trickster AC for debuffs applied TO friendlies (particleface)
A silly example is that blazeheart golem becoming paralysed by stepping
away from it would give you AC (since it is a negative status effect that
was applied by a friendly monster!). This could even be repeated by
stepping back and forth rapidly.

But in general, it's probably a good idea that you only get AC for
debuffing non-friendly monsters, since there's probably some other
degenerate silliness that would otherwise be possible.

--------------------------------------------------------------------------------
36a277cbe7 | DracoOmega | 2025-03-18 19:15:25 -0230

Fix Nobody sometimes immediately losing their new spells (cool3)
If Nobody took a big enough hit to go from healthy to dead in a single
action (ie: without losing their previous Phyrric Recollection effect from
damage), the enchantment cleanup effect would cause it to happen *after*
giving them their new spells, resulting in them never appearing to gain
them at all.

--------------------------------------------------------------------------------
285c9414cd | DracoOmega | 2025-03-17 12:21:36 -0230

Let Fighter start with a second potion of might (Lici)
Of all the backgrounds, it's arguable that fighters start with the smallest
kit in total. Most everyone else starts with *multiple* consumables (or a
book on top of their consumables). Having more stuff is more fun (and
further distinguishes melee starts from each other), so let's give them an
extra.

--------------------------------------------------------------------------------
8eb92faf5a | DracoOmega | 2025-03-17 12:09:49 -0230

Don't let Okawaru gift reaping weapons (cool3)
Oka doesn't technically hate you for using them, but the brand does nothing
while worshipping them, so it feels they should never gift it.

--------------------------------------------------------------------------------
b9a02fdcf7 | person50605 | 2025-03-16 19:46:32 -0500

Add rock wall description for spanish version
Committer's Note: Added a missing period. Resolves #4364.

--------------------------------------------------------------------------------
dbf6267756 | DracoOmega | 2025-03-16 20:59:54 -0230

Fix an arc blade crash with Manifold Assault
When I refactored this function, apparently I neglected to recall that the
*player* could end up in this list sometimes.

--------------------------------------------------------------------------------
6ed86a1e71 | DracoOmega | 2025-03-16 19:28:04 -0230

Give revenants one memory charge when they hit XL 3
Due to weirdnesses with XP formulas, it's currently possible to go several
floors without actually earning one in that part of the game (even though
the pace picks up rapidly after that). It's a little wierd to be given an
ability and then be unable to use it for several more levels.

--------------------------------------------------------------------------------
45411cbfb5 | DracoOmega | 2025-03-16 19:26:44 -0230

Very gently buff poltergeist and nerf revenant
Poltergeist XP apt -1 -> 0
Revenant XP apt 0 -> -1

Poltergeist's starting cloak is now also +1, to give them a little more AC
in the very earlygame, where some starts struggle.

--------------------------------------------------------------------------------
b58ee74901 | DracoOmega | 2025-03-16 08:10:56 -0230

Fix two spell flavor texts not showing in-game
These have apparently never been visible in-game since I wrote them.
Whoops!

--------------------------------------------------------------------------------
c82cddcf98 | gammafunk | 2025-03-15 21:08:27 -0500

Fix the autofight_nomove_fires option (vvokhom)
When set to true, this lua option allows autofight-without-move to use
the quiver if an appropriate action is available. It was broken in the
case when the corresponding option for normal autofight was true.
Resolves #3169.

--------------------------------------------------------------------------------
03d16f74bf | mumra | 2025-03-16 00:07:08 +0000

Add a comment to explain inconsistent naming of a chaos enum
One might argue there's no reason why anything associated with chaos
*should* be inconsistent, but just to avoid any well-meaning contributer
trying to "fix" this inconsistency in the future it seemed a good idea
to spell out why it's this way.

--------------------------------------------------------------------------------
ce43c158f7 | Antern | 2025-03-15 00:40:34 -0500

feat: add a tile_min_stat_width_characters option
The option allows changing the minimal width of the sidebar in pixels
for the regular layout. Previously this had been hard-coded to 42.

Committer's Note: Fixed a typo in the options guide and reformatted, and
cleaned up commit wording. Resolves #3027.

--------------------------------------------------------------------------------
6823389612 | mumra | 2025-03-15 05:35:42 +0000

Update mailmap address

--------------------------------------------------------------------------------
69e70d1efc | Isaac Clancy | 2025-03-15 05:16:22 +0000

Fix far viewing
In local tiles while in map view mode, you should be able to right
click and drag the mini map to view those parts of the map. However, in
version 0.26 dragging the mouse stopped doing anything and in version
0.28 right clicking the map stopped doing anything.

Fixes #3804
Fixes #3802

--------------------------------------------------------------------------------
737f9c07e4 | mumra | 2025-03-15 04:39:12 +0000

docs: Mention advancecomp dependency for msys2

--------------------------------------------------------------------------------
3176162370 | WizardIke | 2025-03-14 23:24:45 -0500

Clarify that the hood of the assassin only effects melee (#4373)
Its description said that it gives effective stabs with any weapon, but
it only gives them on melee weapons. Change its description to say any
melee weapon.
--------------------------------------------------------------------------------
28ef6d8391 | gammafunk | 2025-03-14 02:12:48 -0500

Put certain traps in the stash (Ge0ff)
Add the translocation traps, alarm traps, shafts, and plate traps back
to the stash tracker. These traps can help navigate within or across
levels (translocation and shafts), or can be used tactically (alarm), or
might release goodies (plate), so they're useful to track. We still
don't track the remaining trap types.

--------------------------------------------------------------------------------
610cef96e5 | DracoOmega | 2025-03-13 12:49:55 -0230

Don't prompt for each individual bad Static Discharge target (staticshock)
When casting the spell near allies, you were required to confirm for each
target potentially hit. Confusingly in some situations (such as after
reading ?butterflies), you could be prompted many times for a monster with
the same name, making it appear as though confirming did nothing.

Now we gather all targets first, and prompt once at the end (using the same
basic approach used for many other spells at this point), with a little
extra boilerplate for arc blade in particular, so that it doesn't warn you
about 'casting' anything.

--------------------------------------------------------------------------------
789d534dee | DracoOmega | 2025-03-13 05:40:31 -0230

Fix Enkindled spells never failing (cool3)
Despite their listed success chance, casting a valid spell while Enkindled
would never miscast (so long as the fail chance was below 100%, which
wasn't actually difficult with the wizardry bonus. Pre-Lair Shatter
wouldn't even be implausible, with some luck!)

(This line was a leftover from a much earlier iteration of Enkindling that
never made it to trunk, and which got overlooked when revising it.)

--------------------------------------------------------------------------------
778f541198 | mumra | 2025-03-12 22:39:56 +0000

Don't sometimes prevent a ranged unrand from ever spawning
The 2nd parameter to destroy_item ("never_created") should be true in
cases like this otherwise, if it happened to be an unrand, it will be
prevented from spawning again later. It's slightly unclear to me if this
case can even be hit, but since it's there it's better to do it safely.

--------------------------------------------------------------------------------
aa92ecd419 | mumra | 2025-03-12 22:38:39 +0000

Update a TODO comment in mon-cast.cc
It was slightly out of date mentioning a parameter that didn't exist
anymore, and in fact is prohibitively complex enough to do that it seems
unlikely to ever happen; at least make this clear in the comment.

--------------------------------------------------------------------------------
791b5fa680 | mgdelmonte | 2025-03-11 16:44:33 -0700

Adds more info to the lua `monster` object.
Adds helpful information that's difficult or impossible to extract
from the UI:
* `last_seen_at_turn` -- the turn number when you last saw this mons
* `range` -- the monster's maximum range with weapon, spell, or wand
* `items` -- the list of items the monster carries

Closes #2676.

--------------------------------------------------------------------------------
4b46c49a68 | David Lawrence Ramsey | 2025-03-11 01:49:49 -0500

Sword of Zonguldrok -> Skull of Zonguldrok.
Two places still had the sword: minmay_guarded_unrand_zonguldrok and
Zigsprint. Make them use the skull instead.

Zigsprint now puts the skull in the same place where the sword was. The
sword isn't a weapon as everything else in that pile is, but since
equipping it gives you the reaping brand on kills, it can affect your
weapon, so maybe that's okay?

--------------------------------------------------------------------------------
4d4a6e4d5f | Yi Yang | 2025-03-11 00:40:42 -0500

fix: Bring Asterion's ability names in line with overhauled Makhleb (#4247)
Asterion's current ability name, "Greater Servant of Makhleb", comes
from Makhleb's old ability names before the 0.32 overhaul.
    
Since the overhaul was mostly merging the lesser/greater pairs while
leaving the actual mechanics untouched, I think we can keep the existing
monster spells (along with icons and descriptions), but use the new
ability titles.
    
The other ability, "Major Destruction", is contrasted with another
monster spell "Legendary Destruction". It is thus not changed.
--------------------------------------------------------------------------------
d345d8e626 | Hellmonk | 2025-03-11 00:16:33 -0500

Replace -Cast with *Silence (#4359)
-Cast was very polarizing; it tended to either do nothing or make the
item unusable. Try out a more dynamic negative effect along the lines of
*Corrode; 3% chance for temporary silence when damaged. Silence duration
is identical to blueberry klown pie. This effect works on monsters (who
ignored -Cast entirely) in the rare case that one spawns with a *Silence
artifact.

-Cast remains exclusively on mad mage's maulers, where it's necessary
for the gimmick.
--------------------------------------------------------------------------------
b1fd84065c | hellmonk | 2025-03-10 22:39:47 -0500

fix firewood

--------------------------------------------------------------------------------
26c1957b85 | SentientSupper | 2025-03-10 22:38:09 -0500

Allow damnation to bullseye (#3673)
The only ranged weapon dimensional bullseye doesn't work with is
damnation which tends to surprise players. Given that damnation is a
rare unrand, it wouldn't hurt to remove this special case.

Closes #3532

Co-authored-by: Hellmonk <nldehaan91@gmail.com>
--------------------------------------------------------------------------------
029b10d757 | hellmonk | 2025-03-10 22:26:30 -0500

Update credits

--------------------------------------------------------------------------------
37f5625743 | yrdzrfxndfvh | 2025-03-10 18:37:56 -0500

Fix normal revenants spawning in zig

--------------------------------------------------------------------------------
b902cd2960 | David Lawrence Ramsey | 2025-03-10 18:31:12 -0500

Add another rare trout type for Xom.

--------------------------------------------------------------------------------
b2a79e37e6 | Nicholas Feinberg | 2025-03-10 15:48:07 -0700

Remove canned necromancy
Unused since 8cec33880d2397/613369fe0c22f4, both 2022.

--------------------------------------------------------------------------------
dfc5a943e8 | hellmonk | 2025-03-10 10:31:23 -0500

Move some unrand props to artps.
Use the existing randart props for salamander hide and amulet of air.
I didn't change elemental staff - might make the text too long?

--------------------------------------------------------------------------------
5af9d733ea | hellmonk | 2025-03-09 23:52:41 -0500

checkwhite

--------------------------------------------------------------------------------
34610d1a4b | SentientSupper | 2025-03-09 23:52:16 -0500

Allow aux attacks to receive lash bonuses (#3695)
WJC's lash claims to work on melee attacks and doesn't specifically
mention not benefiting aux attacks.

Closes #3298

---------

Co-authored-by: Hellmonk <nldehaan91@gmail.com>
--------------------------------------------------------------------------------
13e890bdef | DracoOmega | 2025-03-09 21:00:56 -0230

Fix Enkindle description (Patrick2011b)
Emphasize that it only applies to damage-dealing spells and not all spells.

--------------------------------------------------------------------------------
4f4ccd14fd | Aliscans | 2025-03-09 17:11:42 -0500

Dead lemures give no thanks. (#3964)
Move the "With Pikel's spell broken..." message into the
DACT_PIKEL_MINIONS handler, so it only prints if you can see any lemures
which survived long enough to depart.

Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
9575c84de6 | DracoOmega | 2025-03-09 11:23:30 -0230

Let antimagic weapons work for Trickster (not_that_greg)
Melee attacks that inflicted antimagic on monsters (including both
antimagic weapons and AF_ANTIMAGIC) weren't properly attributing their
source.

--------------------------------------------------------------------------------
d3ab83ea69 | gammafunk | 2025-03-08 11:55:17 -0600

Add staircases and hatches to the stash tracker (Dzeddy)
It's nice to be able to find stairs and escape hatches from the stash
search. Map mode will cycle between all stair-like features, whereas a
stash search is more exact. This commit adds these features to stash
feature tracking. Closes #4313.

--------------------------------------------------------------------------------
356a6cb85b | bobross419 | 2025-03-08 00:53:19 -0600

Disambiguate Zonguldrok slot (#4295)
A player noticed that the Skull of Zonguldrok's artefact text
was unclear as to the equip slot which caused some problems with the 2H
they were using. This adds a "When held" to the second sentence to
clarify.

---------

Co-authored-by: Bennett Novak <bennett@foxbots.com>
--------------------------------------------------------------------------------
d031bd43ab | gammafunk | 2025-03-07 17:18:12 -0600

Fix up some spectral weapon save compat
For 954e1a44, update the code to handle spectral weapon from either of a
monster's potential weapons. Certain monsters like deep elf blademasters
can wield two weapons, and its possible that the spectral weapon comes
from the alternate weapon. Also fully tag major this compat code.
Resolves #4337.

--------------------------------------------------------------------------------
7b7a8c7f49 | Isaac Clancy | 2025-03-07 17:18:12 -0600

Allow coglins to benefit from two spectral weapons (jejorda2)
They used to only be able to bring out one spectral weapon when they
were attacking with one spectral weapon in each hand.

Fixes #3719

--------------------------------------------------------------------------------
36cedeed02 | David Lawrence Ramsey | 2025-03-07 16:27:58 -0600

Fix lambda warning (#4351).

--------------------------------------------------------------------------------
71a40e40ae | Hellmonk | 2025-03-07 10:29:44 -0600

Update rF-/rC- messaging (NormalPerson7)
Add messaging for flaming/freezing brand hits with rF-/rC- and update messages 
for cold beams so that all negative resist messages can be caught with 
"you terribly" in rcfile.

Closes #3868.
--------------------------------------------------------------------------------
22bb8dc075 | gammafunk | 2025-03-06 21:14:57 -0600

Fix compilation on older versions of gcc
The change in ec844b11 to use a default implementation of the move
assignment for map_cell throws a compilation error on gcc 4.7. To allow
trunk to build on CAO, I'm reverting the move assignment back to
the previous implementation.

--------------------------------------------------------------------------------
eb0194f0d2 | David Lawrence Ramsey | 2025-03-06 19:50:43 -0600

Remove unused variable (#4351).

--------------------------------------------------------------------------------
875e6274b3 | gammafunk | 2025-03-06 11:43:06 -0600

Add WizardIke to the mailmap

--------------------------------------------------------------------------------
b0cd332cd7 | Isaac Clancy | 2025-03-06 11:34:35 -0600

Fix a crash when initializing Nobody's memories
We were accessing a vector out of bounds for some game seeds.

--------------------------------------------------------------------------------
dcb4e7fafb | DracoOmega | 2025-03-06 09:08:14 -0330

Remove salmon
...these were a sort of to-do marker I'd left myself while working on
poltergeists and then forgot to remove after I'd verified them. Whoops.

--------------------------------------------------------------------------------
86570bf2c2 | DracoOmega | 2025-03-06 09:08:07 -0330

Don't print superfluous messages when merfolk change forms in water
If a merfolk left a form that *wasn't* melding their boots, while in water,
(but their boots were independently melded into a tail), the game would
print a message about their boots unmelding and then immediately melding
again.

--------------------------------------------------------------------------------
db6124fe53 | DracoOmega | 2025-03-06 09:08:01 -0330

Fix a small bug with fishtail/multislot boot items
While Lear's was melding properly in water for merfolk, the AC display
wasn't being updated properly.

In theory, it was possible for this bug to cause mechanical consequences if
a multi-slot boot had an important unequip effect, but Lear's did not, so
this was entirely visual.

--------------------------------------------------------------------------------
d93d3284e2 | WizardIke | 2025-03-05 22:33:33 -0600

Simplify malign gateway targeting (#4045)
The spell can now target directions that aren't one of the 8
compass directions. Also improves the targeter. Closes #3910.
--------------------------------------------------------------------------------
fa27b1d1f1 | David Lawrence Ramsey | 2025-03-05 20:40:35 -0600

Add more words to Crazy Yiuf's speech.

--------------------------------------------------------------------------------
2fe43ac7d6 | hellmonk | 2025-03-05 00:35:17 -0600

update zot springs

--------------------------------------------------------------------------------
4a4ec41471 | NormalPerson7 | 2025-03-05 00:26:31 -0600

Improve colours of spells in spellbooks (#3645)
Currently, in WebTiles, the colours of spells in spellbooks are far from
useful. The most important question when x-v-ing a book (e.g. in a
gauntlet, or a ghost vault) and seeing its spells is "do I already have
this spell in my library?". There was previously no way to check this
without leaving the x-v menu and manually checking.

With this PR, all spells will be greyed out in book descriptions if you
already have them in your library (or if they are useless, or if you
have memorised them via Vehumet), lightred if forbidden, lightgrey if
eventually useful, and lightblue if you could memorise it immediately,
in that order of priority.

Better suggestions for colouring are welcome. I had wondered whether it
would be better to change WebTiles to use the local tiles (and I presume
console) formatting for spellbook descriptions, but I figure there's a
reason why WebTiles and local tiles have different formatting in the
first place. On the other hand, doing so would bring spell tiles to
local tiles' spellbook descriptions, and it would bring the "already
known" column to WebTiles, which would also solve this problem.
--------------------------------------------------------------------------------
8eeeba328a | hellmonk | 2025-03-04 23:30:51 -0600

reorder prompt

--------------------------------------------------------------------------------
dc4d684894 | pyy156941 | 2025-03-04 23:29:50 -0600

Fix: prompt dangerous TSO summon (#4182) (#4186)
The player could get penance without warning by summoning divine warrior with 
fulsome fusilade or polar vortex active. Prompt in these scenarios instead.
--------------------------------------------------------------------------------
b9e851eaf5 | radio-gra | 2025-03-04 21:36:01 -0600

Let players query elapsed real time from Lua

--------------------------------------------------------------------------------
b2a08d023c | DracoOmega | 2025-03-04 16:04:54 -0330

Fix shapeshifter monsters spawning in their natural form (Ge0FF)
Broken somewhat subtly by 31604a8. monster_polymorph will fail if the
monster isn't in a valid position (since the space they're on isn't
habitable for anything they could turn into), so moving when in
_place_monster_aux the monster is actually put on the grid caused them to
always spawn in their native, unshifted form.

I have moved the polymorph lower in the function. I am a little concerned
that there may be other non-obvious consequences to the change done in
31604a8, but a cursory inspection didn't turn up anything else that seemed
dependent on the monster having a real position.

--------------------------------------------------------------------------------
f0a98eff6c | tianmaster | 2025-03-03 22:36:02 -0600

Fix: display correct monster tile in water
...when using a monster tile as the player tile.
--------------------------------------------------------------------------------
908c38d9fd | Aliscans | 2025-03-03 22:22:11 -0600

Make auto-training train spell skills more readily for djinn. (#3930)
Calculate how much exercise spell skills gives for a new character
before splitting spell skills. This means that level 1 djinn auto-train
magic to a similar degree to other species.

Train spell skills (roughly) in proportion to the exercise put into
them, where it had been much less.

The aim of this is to make the auto-train behaviour feel similar for
Djinn to the way it feels for other species. The 0.31 version feels very
different to me, with no spell training at level 1 and little emphasis
on it later on (to the extent that setting focus on a different skill
could eliminate spell skill training altogether).

Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
0f3e296413 | radio-gra | 2025-03-03 22:06:52 -0600

Clarify options_guide.txt regarding player-defined dump sections (#4212)
As it stands there's no documentation of any kind regarding custom dump
sections, other than options_guide mentioning it exists. A more detailed
description should save potential users much of the headache figuring
out how it works.
--------------------------------------------------------------------------------
0c0bac5df6 | NormalPerson7 | 2025-03-03 22:04:57 -0600

Prevent attacks of opportunity on dead felids (#4292) (#4319)
Dead felids awaiting revival could still receive attacks of opportunity
while they were dead, which cluttered up the message log.

Will resolve #4292.
--------------------------------------------------------------------------------
49552807fa | WizardIke | 2025-03-03 20:30:48 -0600

Allow manifold assault with the Arc Blade (#4275)
The Arc Blade sometimes shoots out a number of arcs at monsters adjacent
to you when you attack with it. This doesn't work very well when hitting
a monster that isn't adjacent to you with manifold assault, so manifold
assault didn't allow using it. This change makes the Arc Blade shoot an
arc at the monster instead if it isn't adjacent to you and allows it to
be used with manifold assault.

Fixes #3876
(only sword of power remains)
---------

Co-authored-by: Hellmonk
--------------------------------------------------------------------------------
20fab2804b | hellmonk | 2025-03-03 17:48:02 -0600

Fix manifold with devastator.
Previously did not check for ally hits unless the target was adjacent to the
player.

--------------------------------------------------------------------------------
935a399613 | WizardIke | 2025-03-03 17:39:30 -0600

Allow manifold assault to be cast when it would warn (#3877)
Allow manifold assaulting with a weapon that warns

Because manifold assault chooses its targets at random, it has to avoid
targets that would warn the player so as not to put them in penance etc.
However, when using a weapon that would warn when attacking any monster
(e.g. the singing sword with an ally in view) this lead to it not
finding any targets it could hit. To fix this, prompt when attacking with
a weapon that would always warn when attacking and only exclude targets
where the actual target is the problem (e.g. to close to an ally when
using devastator).

Fixes #3838
--------------------------------------------------------------------------------
2af1c82aae | Hellmonk | 2025-03-03 15:17:29 -0600

Adjust evoker placement (#4270)
Reduces evokers in vaults and increases number in shops.
--------------------------------------------------------------------------------
eff102fec0 | Aliscans | 2025-03-03 14:05:11 -0600

Stop antique shops from overcharging. (#4222)
If an antiques shop contains two unidentified amulets, rings or wands of
the same type, it gives a price for each item. If the player tries to
buy both, the game charges a different price for the second item.

Change it to charge the agreed price for everything.

This avoids a situation where the player could agree to pay X for some
goods but actually be charged Y for them. There are others (such as
asking separately about the second item or not selling it in the same
transaction), but this one doesn't involve changes to the UI.

Shops with two similar unidentified amulets, ring or wands are rare, so
it shouldn't matter too much how it's handled. Charging a lot of money
without warning seems like quite a bad way to do it, though.

Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
c616208095 | David Lawrence Ramsey | 2025-03-03 08:34:51 -0600

Add another Donald line.

--------------------------------------------------------------------------------
6494ea8a0c | DracoOmega | 2025-03-03 03:07:06 -0330

Fix Enkindling applying its success bonus to all spells (monkooky)
While the UI correctly showed which spells *should* be affected by this
status, it nonetheless still let other spells get the success rate bonuses
(though not any of the other bonuses).

--------------------------------------------------------------------------------
7de7f153e6 | mumra | 2025-03-03 00:20:08 -0330

Avoid crash when clockwork bee falls in deep water
Prevents a segfault which would happen when the bee's target disappears
from view at the same time as the bee is flying over a body of deep
water (or lava). The case that the "inert" (and flightless) bee failed
to place, due to no solid ground being near enough, wasn't handled and
execution fell through to the next block where it was assumed a target
did exist.

Rather than needing to figure out exactly why the bee won't place to
have messages like splashing in the water, the bee can just self-
destruct; it's the same result.

[Committer's note: made the dust cloud from this last long enough to
actually be seen, and not always spawn on top of the player.]

--------------------------------------------------------------------------------
567c1b0550 | DracoOmega | 2025-03-02 23:56:52 -0330

Remove status effects from monsters when turned into vampiric thralls
Arguably this could remove *negative* status effects while leaving positive
ones alone, but there isn't a convenient shorthand to do that at the
moment, and it's likely relevant only ocassionally.

--------------------------------------------------------------------------------
21fd171549 | DracoOmega | 2025-03-02 23:50:13 -0330

Fix Paragon sometimes losing its link to the player (salticid)
The duration of the paragon link status (which was used to determine
whether you could have attacks against you blocked by the paragon, as well
letting your attacks trigger the paragon and recasts perform its super
attack) was set to the same duration as the paragon's own timer, with the
intent that it last exactly as long as the paragon did.

However, it was possible for the paragon to end up lasting longer (more
easily if it was slowed), resulting in a period of time where the paragon
was visibly active, but you gained none of these benefits from it (and
recasting the spell would just replace it, rather than allowing you to use
its super move).

Now it doesn't attempt to expire at all, but simply end when the paragon
dies (which it always *also* did - meaning the original duration may have
always been unnecessary).

--------------------------------------------------------------------------------
dd1ef96ac7 | Peter McLarnan | 2025-03-02 20:38:07 -0600

Fix imp _suck_up_adj2_ syntax
Imp speech _suck_up_adj2_ displays an error because of a missing

`then`. Restore correct syntax.
--------------------------------------------------------------------------------
170f05ed26 | gammafunk | 2025-03-01 20:34:26 -0600

Fix the altar count of a temple map (🝀)
The map mainiacjoe_temple_hex_bubbles was tagged as a 22 altar temple.
However one of the altar placement glyphs is always turned into the exit
stairs, hence it's actually a 21 altar temple. I'm tagging it as such so
that a 22nd altar will get properly placed via an overflow altar.

--------------------------------------------------------------------------------
95e74fc971 | patrick | 2025-03-01 17:52:44 -0500

Update docs for changes to pre-id vault syntax

--------------------------------------------------------------------------------
bc49e453e1 | patrick | 2025-03-01 17:00:30 -0500

Add some shops
Most of them are just regular decor shops, with no special inventory,
just various arrangements of features to stand out in the competitive
marketplace of the dungeon. Also a couple general multi-shop vaults.
And then because I'm me, there are a few themed early-game shops.

--------------------------------------------------------------------------------
87e8ae5f2c | patrick | 2025-03-01 15:51:54 -0500

Add a couple decor vaults
Just a few decor vaults that have been sitting on my hard drive
for a little while. Two of them use the "cache of food" features.
Enjoy!

--------------------------------------------------------------------------------
9f28e2c356 | DracoOmega | 2025-03-01 05:08:53 -0330

Silence a warning

--------------------------------------------------------------------------------
1347f3dca7 | DracoOmega | 2025-03-01 05:06:51 -0330

Fix Dream Dust having 1/10th the intended duration (CarefulOdds)

--------------------------------------------------------------------------------
4ee2c7fec9 | Isaac Clancy | 2025-02-28 20:23:20 -0600

Fix loading high evasion ghosts (OblivionHorseArmour)
The ghost evasion cap was lowered from 60 to 50, so we need to cap
ghosts evasion to 50 when loading them.

Fixes #4198

--------------------------------------------------------------------------------
e392e11081 | Zen Liu | 2025-02-28 10:21:48 -0600

Update monspeak.txt
fix the missing %%%% on line 3147
--------------------------------------------------------------------------------
5987b84d57 | Isaac Clancy | 2025-02-28 10:01:45 -0600

Properly update area grid on monster item unequip
The `monster::unquip` function was checking if it changed the monster's
halo and umbra radii and invalidateding the area grid if it did.
However, because it only runs any effects that need to happen on unequip
and doesn't actually remove the item from the monsters equipment slots,
it doesn't change the halo or umbra radii. Instead we should check if
the halo and umbra radii have changed in the places that actually
remove the items.

[Committer's note: Shortened initial commit message.]

--------------------------------------------------------------------------------
f9ae776928 | Isaac Clancy | 2025-02-28 09:43:45 -0600

Don't become a religious traitor when switching good gods (A0rika)
Good gods are usually fine with you switching to another good god, so it
doesn't make sense for you to get the traiter title from the religion
you left in this case.

Resolves #4329

--------------------------------------------------------------------------------
79d371098c | DracoOmega | 2025-02-27 08:40:26 -0330

Change the default setting for show_more to false (various)
This may be a bit controversial, but it's been discussed several times and
I've been largely convinced that it's a better default (even if perhaps
not for immediately intuitive reasons).

While it might seem bad to new players for Crawl to 'skip past' messages
on busy turns (rather than pause to show them everything that happened),
in practice, most of those turns have a lot of noise (when a zombie army is
fighting another army, most individual messages don't matter at all) and
more crucially, *this trains players to tune out* --mores-- which includes
messages so critical that Crawl *forces* a --more-- on them by default.

In fact, this seems like the *inevitable* result of some builds causing
mores every normal turn (zombie armies are the most obvious, but it's easy
to cause this with various AoE spells as well - especially in webtiles,
which has a smaller message log than local tiles default). You can't really
play those without getting in the habit of skipping past --mores-- and then
you are certain (no matter your skill level) to eventually overlook
something the game tried to warn you about.

Crawl has moved more and more important things into force_more over the
years, and I have been largely convinced that reserving this sort of
interruption for something we think actually matters is better for both
newer players *and* veterans. (In fact, changing this option is one of the
first pieces of advice given in some contexts.)

If this causes some new things to slip past players that may have been less
likely in past, it might make sense to very slightly raise the threshold on
what an useful force_more should be on, if --more--s in general are rarer.

--------------------------------------------------------------------------------
6f445b353c | DracoOmega | 2025-02-27 07:58:45 -0330

Make Dispel Undead work with spellclaws
It does do damage, after all!

--------------------------------------------------------------------------------
b33f6f0c7a | DracoOmega | 2025-02-27 07:58:27 -0330

Fix Nobody not being vulnerable to LRD (Salticid)

--------------------------------------------------------------------------------
4c41ede6ec | DracoOmega | 2025-02-27 07:58:05 -0330

Have Nobody list their remaining number of memories when examined (Ge0FF)
While there are icons to indicate this already (albeit small ones), it
wasn't technically visible in console mode at all.

--------------------------------------------------------------------------------
cfd1ee5803 | DracoOmega | 2025-02-27 07:56:42 -0330

List max memory charges in Enkindle ability description
This was already listed in the mnemophage mutation description, but many
people didn't seem to think to look there, so now it is in the ability
description itself as well.

--------------------------------------------------------------------------------
aa9a383145 | DracoOmega | 2025-02-27 07:55:57 -0330

Fix aux autopickup lua in advanced_optioneering for poltergeists
It didn't see the need to pick up a second hat, so long as you already had
*a* hat equipped. It should now properly respect anyone who has additional
compatible slots of a given type (thus behaving properly for someone
wearing Zonguldrok and such, for instance.)

--------------------------------------------------------------------------------
8cb532ef1d | David Lawrence Ramsey | 2025-02-26 18:43:06 -0600

Mark Po as non-armour users for trove purposes.
Closes #4332.

--------------------------------------------------------------------------------
375e5309dc | DracoOmega | 2025-02-26 02:03:07 -0330

Fix Rift being able to make some attacks through walls (Leissi)
get_cleave_targets() didn't properly respect line of sight for targets
beyond a range of 2, meaning that monsters at exactly a range of 3 would
be considered valid targets for certain attacks while wielding Rift, even
while on the other side of walls.

(This included spellclaw and spellmotor attacks, oni drunken cleave, and
the Xom Cleaving status.)

--------------------------------------------------------------------------------
c279ef658a | David Lawrence Ramsey | 2025-02-25 14:11:18 -0600

Mark Charlatan's Orb as bad after artifice sac.
If you have no way to train Evocations, it can provide no benefits, only
downsides.

--------------------------------------------------------------------------------
4747edec7a | David Lawrence Ramsey | 2025-02-25 11:46:30 -0600

Add another anger_possessive entry to artefacts.

--------------------------------------------------------------------------------
31604a8050 | Isaac Clancy | 2025-02-25 11:35:26 -0600

Fix grow oklob not placing under the player (LiciTheCrawler)
There was a bug that made plants hostile while being placed and Fedhas
worshippers cannot be on top of hostile oklob plants (but can be on top
of other hostile plants). This allowed growing ballistomycetes under
the player but not oklobs.

Fixes #4048

--------------------------------------------------------------------------------
8065d6aae3 | Aliscans | 2025-02-25 11:05:04 -0600

Let the user look at more "nogen" items in the help menu.
Replace the "nogen" tag with a "deleted" one for "TAG_MAJOR_VERSION =
34" sections of art-data.txt. Both tags mean the item isn't created in
the normal way. The "deleted" tag alone stops the help menu from giving
details of the item.

Remove the code in extant_unrandart_by_exact_name() which let some of
the nogen items be looked up.

[Committer's notes: Squashed commits, synced with trunk.]

--------------------------------------------------------------------------------
b461eca50d | NormalPerson7 | 2025-02-25 10:53:34 -0600

Don't let Blorkula cheat banishment (#4205)
Previously, Blorkula would split into vampire bats when banished, and
if they reformed, trying to banish them again would cause a crash.

Resolves #4205.

--------------------------------------------------------------------------------
6df694a5e7 | yrdzrfxndfvh | 2025-02-25 10:52:42 -0600

add new skill title for coglin max necromancy

--------------------------------------------------------------------------------
c780007be6 | Isaac Clancy | 2025-02-25 10:38:23 -0600

Fix monsters not getting shield and orb egos (yrdzrfxndfvh)
After equipment slots were reworked in commit 2dbd7c1, the
`monster::wearing_ego` function stopped checking the shield slot for
egos when checking armour for egos leaving monsters unable to benefit
from shield and orb egos.

Fixes #4324

--------------------------------------------------------------------------------
e7142aa715 | DracoOmega | 2025-02-24 22:41:55 -0330

Fix a crash with melding Vainglory (tallbingo)
Or theoretically any item which grants more than one additional slot,
although this is the only one which currently exists.

That code was... very much not how you grab the 'second from the back' item
in a vector, and I am amazed it never caused a noticable issue when
testing.

--------------------------------------------------------------------------------
a8ad765c7d | mumra | 2025-02-24 23:41:06 +0000

Don't let Pyrrhic Recollection be used by marionette
This caused a crash as ultimately it resulted in attempting to cast
(or attempting to *pretend* to cast to check validity) this spell that
is actually not castable (and it certainly doesn't make sense for the
spell to be castable by marionette anyway).

Possibly the marionette code should veto any spell with zero frequency
but this has to be done in a few places and this is at least a simple
fix for the immediate crash.

--------------------------------------------------------------------------------
e20181a0a6 | DracoOmega | 2025-02-23 10:18:23 -0330

Fix a few more bugs with Fly status and talismans
"You float gracefully downwards." was being printed on talisman removal,
even if the player wasn't flying beforehand. And swapping from a talisman
form without Fly to a different talisman that had this artprop wasn't
activating it properly.

(I have done this by moving the equip_artefact_effect call for the talisman
until partway through the transformation itself, since it was otherwise
being undone by the untransformation that happened inbetween.

--------------------------------------------------------------------------------
a22800f72b | DracoOmega | 2025-02-23 10:18:16 -0330

Fix entering vampire form from another talisman not unmelding (RBrandon)
This logic was intended to allow vampire to go back and forth from bat
swarm form directly (rather than shift back to normal as an intermediate
step), but was written incorrectly.

--------------------------------------------------------------------------------
220a0729da | DracoOmega | 2025-02-23 10:06:29 -0330

Wake Nobody up if you 'kill' them in their sleep
Stab kills would result in them still using Pyrrhic Recollection, and even
speaking to the player, without actually waking up.

--------------------------------------------------------------------------------
b731a06b74 | DracoOmega | 2025-02-23 09:58:19 -0330

Fix a couple problems with phantom mirrored Nobodys (Master_Clown)
Mirrored copies of Nobody were still capable of igniting memories to revive
themselves (which is fine in and of itself), but the clearing out of
enchantments done when this happens was also deleting their summon timer
(and not killing them at the same time, since they were flagged for
revival.) This would result in Nobody sticking around forever after first
dying.

On top of this, the timeout *itself* would count as a revivable kill. This
should now be properly restricted to real deaths (ie: banishing them
should properly bypass revivals now also.)

--------------------------------------------------------------------------------
ba6825f11c | DracoOmega | 2025-02-23 09:44:34 -0330

Fix icons for Nobody's memories/state not rendering on webtiles
Some day, I may start remembering this more than 30% of the time.
Yesterday was not that day.

--------------------------------------------------------------------------------
ed98ad6427 | DracoOmega | 2025-02-22 14:33:14 -0330

Fix a crash on monster lookup of Nobody in webtiles (cool3)
Unlike local tiles, webtiles shows status icons over the monster tile in
monster descriptions, and the 'fake' monster made by help lookup didn't
have the property used to determine how many memories to draw over it
initialized.

--------------------------------------------------------------------------------
55f3b791fc | DracoOmega | 2025-02-22 14:19:53 -0330

Fix a crash with Fulsome Fusillade around Malign Gateways (Zadiel)
The issue was that malign gateways are solid (and thus can't have an
explosion form in them) but can still be targeted as the center point for
a fusillade explosion (since there's a monster there).

In and of itself, this would be fine, but code to draw the potion bottles
during the animation assumed that the center would *always* be part of the
explosion, and reading from the flavor map to see what color they should be
was tacitly inserting a key of BEAM_NONE at that spot (which would later
be interpreted as real attack data, and cause a crash).

This commit reorders things slightly so that this should no longer happen.

--------------------------------------------------------------------------------
9b73534a46 | David Lawrence Ramsey | 2025-02-22 11:25:15 -0600

Add another Nobody line.

--------------------------------------------------------------------------------
775f105d90 | David Lawrence Ramsey | 2025-02-22 11:25:10 -0600

Fix punctuation.

--------------------------------------------------------------------------------
6ae22fc144 | DracoOmega | 2025-02-22 10:40:09 -0330

Reduce monster arcjolt damage
(This largely existed only on ghosts up to this point, but the previous
values did about as much damage as *plasma beam* on high level monsters,
while being unable to miss. With Nobody being able to cast it, this felt
a little excessive to me.)

I guess this is technically a nerf to Spellspark Servitor, but I doubt this
spell was used on it very much.

--------------------------------------------------------------------------------
58097cfb87 | DracoOmega | 2025-02-22 10:40:09 -0330

Don't let monsters sometimes cast spells with 0 cast rate
This is a consequence of the 'emergency' spell frequency bonus ignoring
monster cast rates altogether and just picking a spell at random. This is
generally weird behavior that I plan to also change in the future, but for
the moment this is a quick fix to one specific problem.

(Nobody's Pyrrhic Recollection is only used as a reaction and should never
be cast 'normally' - it's just in the spell list so that players can read
details about it.)

--------------------------------------------------------------------------------
ce41f9e9f2 | DracoOmega | 2025-02-22 10:40:09 -0330

New unique: Nobody
A revenant formed from the collective resentment of an entire host of
people who died alone and forgotten, they burn through multiple different
identities as you fight them (and must be 'killed' repeatedly to put them
to rest for good.) They spawn at the same depth as Sojobo.

Their Pyrrhic Recollection ability consumes a memory to restore them to
full health and temporarily give them access to a single powerful spell
(or occassionally a pair of them, if one didn't stand alone well enough).
These include many conjurations, but also summoning and some support spells
like Haste or Cause Fear. They will use this ability shortly after being
first damaged, and also to avoid a killing blow (each consuming one of 3
total memories they have to burn.)

Their cast rates with these spells are notably high, but inflicting damage
to them will end the state prematurely, giving the player a bit more agency
in the first, and also giving the battle an 'ebb and flow' - periods where
Nobody is are capable of burst damage, and periods where they are not (at
least until you take another of their lives).

The idea was to create something flavorwise liked and mechanically adjacent
to Enkindling (while being more functional on a monster, where things like
'ignore armour penalties and have better cast success' are not really a
thing.)

(If you leave the battle for few hundred turns, their memory charges will
be restored, to prevent players trying to take out lives individually and
flee, but otherwise there should be no time pressures.)

The spells were deliberately chosen to be things found on other monsters
(or known as player spells), but leaning towards those which were a little
less common.

I am fairly unsure about some numbers and the dynamics of this unique are
a bit, well, unique, so playtesting is needed, but I hope people find them
interesting!

(Tile by regret-index, using roctavian's edits of dd's old mummy priest
tile, roctavian's centaur / medium humanoid skeletons and Abyss entrance
tile, plus Sastreii's stoker tile.)

--------------------------------------------------------------------------------
753b300546 | DracoOmega | 2025-02-22 10:40:09 -0330

Fix vampires being unable to enthrall with some weapons (RBrandon)
Unrand weapons that had a melee effect (eg: Captain's Cutlass, Wyrmbane,
Arc Blade, and many others) would bail out of the melee attack function
early if their target died (regardless of whether the unrand effect had
anything to do with it). This was early enough that vampire bite effects
were never processed, meaning that any lethal stab attack with such a
weapon could never heal the vampire or make a thrall.

(Of all the effects that unrand weapons skip against dead monsters, I
believe this may be the only one that doesn't require a living one to do
something useful.)

--------------------------------------------------------------------------------
ded44dc72d | David Lawrence Ramsey | 2025-02-21 13:07:35 -0600

Add missing Cacophony status description.

--------------------------------------------------------------------------------
cff28b789e | DracoOmega | 2025-02-21 05:33:53 -0330

Properly remove halo when Vainglory is unequipped

--------------------------------------------------------------------------------
14d85d4b26 | DracoOmega | 2025-02-21 05:33:41 -0330

Don't allow Shattering items which other items depend upon
ie: Shattering Vainglory with 4 cursed rings equipped (on a normal slot
character) would also automatically shatter 2 of those rings without
further prompt or interaction.

Now it is impossible to shatter an item that would require shattering other
items as a consequence. The player will have to do that manually.

--------------------------------------------------------------------------------
8e848e9f8b | Cgettys | 2025-02-21 05:31:44 -0330

fix: Ash cursed item destruction bug (bobross419)
The item was being destroyed before unequip_item was called. As a result,
the call to unequip_item did nothing at all. Because the item was already
OBJ_UNASSIGNED, rather than being the specific item that unequip_item
needed to handle.

This resulted in several bugs:
* Visual artifacts (halo/umbra/etc)
* Likely various messages not being printed
* Possibly other persistent issues?
E.g. update_vision_range not being called.

Closes #4309

[Committer's note: rewrapped message and slightly edited fix]

--------------------------------------------------------------------------------
3f0725400b | DracoOmega | 2025-02-21 04:06:26 -0330

(Hopefully) fix a crash on berserk/frenzy wearing off on monsters
The enchantment I was pulling the agent out of (to blame the post-frenzy
slow on) was already deleted by the time it was examined, resulting in
undefined behavior and a high chance of crashing.

--------------------------------------------------------------------------------
45e6bba2ff | David Lawrence Ramsey | 2025-02-20 21:22:02 -0600

Rename a few tiles: palentonga -> armataur.
For consistency with the other armataur forms, and because palentongas
have been replaced with armataurs for a while.

--------------------------------------------------------------------------------
14800dbadd | David Lawrence Ramsey | 2025-02-20 17:58:13 -0600

Fix monster warnings about now-obsolete attacks.

--------------------------------------------------------------------------------
2faa50a443 | David Lawrence Ramsey | 2025-02-20 17:56:43 -0600

Make monster account for corrosion changes.

--------------------------------------------------------------------------------
113915ce07 | David Lawrence Ramsey | 2025-02-20 17:17:47 -0600

Remove now-obsolete enchantment reference.

--------------------------------------------------------------------------------
4732f40816 | DracoOmega | 2025-02-20 19:27:11 -0330

Fix racial AC bonuses being suppressed in vampire form (Lici)

--------------------------------------------------------------------------------
d88ad5618d | DracoOmega | 2025-02-20 19:27:11 -0330

Increase poltergeist's translocations apt from -2 -> 0
They do seem like they could be better at forcibly moving things from one
place to another (and there's been a lot of people calling for it), but I'm
still just slightly hesitant on giving more and more things a strongly
positive translocations aptitude, especially since that seems to co-occur
with high hexes an oddly large percentage of the time.

--------------------------------------------------------------------------------
f46f2fc6f1 | DracoOmega | 2025-02-20 19:27:11 -0330

Tweak recommended jobs for new species a little
Unrecommend gladiator and brigand for poltergeist (the former in particular
is not a great fiit). In their place, I am electing to break from tradition
and actually recommend chaos knight for a species - the random debuffs Xom
throws around give poltergeists AC, and their chaos weapon does as well,
creating a natural synergy. (And chaos knight is a better background in
general than it used to be, since the last Xom changes.)

I am also recommending hexslinger, despite poltergeist's bad ranged apts,
since Jinxbite is so immediately strong on them and Cause Fear is also
enormously synergistic.

Also add a few reverse recommendations, mostly for revenant.

--------------------------------------------------------------------------------
307a816d8e | DracoOmega | 2025-02-20 19:27:11 -0330

Change how Trickster AC bonus stacks and expires a little
While the maximum amount of AC poltergeists could get from Trickster was
strictly capped by their XL, the amount of stacks in the background could
be gained without limit (as long as you gained a new one every 6-9 turns).
I'd intended this to allow a little bit of overflow so that debuffing many
things at once at low XL still gave a more enduring benefit than just a
couple, when the AC cap is still so low.

But in practice, this allows some fairly degenerate stacking at high XL
with spells like Cause Fear, stacking up a very long duration of the
effect.

Now, you can only overflow by 10 AC more than your max bonus, allowing a
little wiggle room, but not nearly so much.

Additionally, stacks above 15 are half as likely to be earned, making it a
little harder to reach the full bonus against lategame swarms.

--------------------------------------------------------------------------------
50231a2b66 | DracoOmega | 2025-02-20 19:27:11 -0330

Make monster revenants claw you instead of hit you
Feels a little closer to the player species at no cost.

--------------------------------------------------------------------------------
1c17e8307f | DracoOmega | 2025-02-20 19:27:11 -0330

Change a few things about vampire blood-drinking and thralls
Vampire lifestealing required the monster you were stabbing to not just be
susceptible to vampirism, but also have blood. This was a holdover from how
the vampire species's own lifesteal worked (and has an obvious thematic
motivation), but it turns out that a *lot* of living monsters don't have
blood when you might otherwise expect them to! Insects, worms,
orb guardians, eyes, jellies, raijuu...

This isn't a consistent player-facing list and that makes it bad to base a
player-facing ability off of. So instead, vampire vampirism now obeys the
same rules as regular vamp and simply gets different *messages* for
monsters who don't have blood. I wasn't able to make this list as
comprehensive and specific as I'd like, but should cover the vast majority
of cases one can encounter in the game.

At the same time, I am extending the number of things eligable to have
thralls made of them. You can now additionally enthrall demons (even though
they are immune to vampirism). Various ways to raise demons as undead are
well-attested in the game at this point (the living/holy/demon trinity
governs many such effects), and even if it's *mildly* weird that you can't
drink their blood but *can* turn them, I think it may play better if this
form's benefits don't turn off so completely in extended. It's already
attempting to compete with one of the most popular forms.

In a future commit, I may make some adjustments to the scaling benefits
vampires recieve (since it feels like skill training isn't terribly
exciting for them at the moment), but this is hopefully a nudge in a
positive direction nonetheless.

--------------------------------------------------------------------------------
99610d196a | DracoOmega | 2025-02-20 19:27:11 -0330

Fix vampire inhibited regeneration not working properly

--------------------------------------------------------------------------------
6954e95ee6 | DracoOmega | 2025-02-20 19:27:11 -0330

Fix vampiric thralls being immortal (Oneirical)
The prop applied on stab kill to indicate that a monster should be revived
as a thrall wasn't being removed after becoming one, causing every
subsequent death to just revive them again. Oops.

--------------------------------------------------------------------------------
56e99acd2c | DracoOmega | 2025-02-20 19:27:11 -0330

Remove a meaningless enchantment
A leftover since Demonic Guardian's rework in 0.27, this hasn't actually
done anything in a long time.

--------------------------------------------------------------------------------
5299482de4 | DracoOmega | 2025-02-20 19:27:11 -0330

Fix up various debuffs not triggering Trickster
This includes:
 -Bind from Grave Claw
 -Charm
 -Teleport Other
 -Slow caused by cold-bloodedness (which is now attributed to whatever did
  the cold damage; it used to be attributed to the monster who was slowed!)
 -Corona

Debuffs applied by Xom now also trigger Trickster as well. This is arguably
not the player's 'fault', but if other godly effects like Uskayaw paralysis
are going to count (and I feel they should), then we can argue that this
should, too. Perhaps the important part is that it wouldn't have happened
if not for the player's dutiful worship, and thus they can feel personally
responsible?

Finally, this *stops* paralysis on Kiku wretches from being attributed to
the player (ie: you could get AC just by Unearthing Wretches, which feels
wrong to me; they were like that when you first saw them!)

--------------------------------------------------------------------------------
aa83346545 | DracoOmega | 2025-02-20 19:27:11 -0330

Refactor malmutate versus monsters to accept an agent
So that it can work with Trickster.

--------------------------------------------------------------------------------
6381969a2e | DracoOmega | 2025-02-20 19:27:11 -0330

Refactor many things about corrosion effects / resistances
The code involved in applying corrosion to players and monsters was
surprisingly tangled, using opaque math (that nonetheless was reducible to a
a simple percentage), and multiple different similar-but-not-quite methods.
There were also numerous inconsistencies, including:
 -Multiple sources of corrosion could affect rAcid+++ enemies, but it was
  often hard to guess which. (ie: Entropic Weave and level 2 Vitriol card
  could corrode acid blobs (50% of the time))
 -AF_ACID couldn't corrode monsters with rAcid+, even though BEAM_ACID
  could.
 -res_acid() and res_corr() sometimes disagreed with each other (eg: a
  Resistance buff would improve res_acid() but *not* give res_corr()
 -Passive acid damage from meleeing jellies was affected by rCorr twice
  (decreasing the chance of corroding the player *and* reducing how much
  they were corroded by).
 -Message order sometimes indicated the player was corroded by acid
  *before* it hit them.

This refactors most methods involved in this, fixes the above issues, and
simplifies several things. There should only be a handful of functional
changes outside of bugfixes:
 -Monsters with rCorr+++ are now immune to being corroded by all sources.
 -Monsters with rCorr+ consistently have a 50% chance to not be corroded,
  regardless of source.
 -Acid clouds now have a 66% chance to corrode a player standing in them
  instead of 50% (a result of code simplification, not a balance change;
  these clouds barely exist at present except in player hands.)
 -The player has a 50% chance to be corroded by BEAM_ACID instead of ~49%
 -Effects that apply a differing amount of corrosion to the player than 4
  are less affected by diminishing returns (ie: they don't apply 4 twice,
  but rather apply 8 at once). Currently this is only Wu Jian wrath (and
  who knows if that effect will even survive), but I have plans to use this
  for other adjustments in the near future.
 -Importantly: corrosion can now have an actor source, so that it interacts
  properly with poltergeist's Trickster passive.

--------------------------------------------------------------------------------
be30b90cc8 | DracoOmega | 2025-02-20 19:27:11 -0330

Fix player Revenants not taking bonus damage from Shatter

--------------------------------------------------------------------------------
df518dbf55 | Nikolai Lavsky | 2025-02-21 00:12:50 +0300

docs: update Alchemist description (Kab)
Their starting spell was changed in baccc4ca4.

--------------------------------------------------------------------------------
50f50cedb2 | Nikolai Lavsky | 2025-02-20 23:58:54 +0300

fix: remove Po's spiteful retaliation attack
Specifically, the `SPITEFUL_ATTACK_ITEM_KEY` define, which is not used
anywhere.

--------------------------------------------------------------------------------
77bb7ed3da | Nikolai Lavsky | 2025-02-20 23:37:45 +0300

feat: make &H recharge batform, Po's Cacophony, and Re's Memories
Also, let wizmode super healing cure poison vulnerability.

--------------------------------------------------------------------------------
4bdad0dc50 | Aliscans | 2025-02-20 12:23:21 -0600

Use plural verbs in _xom_time_control().
Give "you and everything else in sight" the plural verbs it deserves.

Split some long lines.

[Committer's notes: Removed spurious extra space.]

--------------------------------------------------------------------------------
555990002e | wheals | 2025-02-18 23:07:05 +0200

docs: Update CREDITS.txt
For 616585275e

--------------------------------------------------------------------------------
d6b2ec2eef | David Lawrence Ramsey | 2025-02-18 10:59:35 -0600

Add Donald line about revenants.
To match their new flavour.

--------------------------------------------------------------------------------
f251c32bc1 | regret-index | 2025-02-18 07:09:30 -0330

More green tiles (pianoman523 / LemurRobot)
A non-generic icon for the missile-absorbing-jelly and a revamped
Xak'krixis tile, specifically. Compared to the submission, the former had
its colours adjusted more towards other Jiyva abilities and mutations,
while the latter had several arms heavily adjusted to not have a book
covered up by a weapon as well avoiding brandishing a weapon directly in
front of their own face. It's still a little silly they're wearing a hat,
but monsters wear lots of clothes players don't, like pants.

--------------------------------------------------------------------------------
ec4e1d79e0 | David Lawrence Ramsey | 2025-02-18 01:48:14 -0600

Fix typo.

--------------------------------------------------------------------------------
11643a3c80 | DracoOmega | 2025-02-18 00:56:12 -0330

Make insubstantialness actually block nets for players (TheMeInTeam)
There's been a surprising amount of inconsistency in which ways being
insubstantial works for players and monsters. For instance, insubstantial
players were already immune to *webs*, which are functionally the same in
most ways.

--------------------------------------------------------------------------------
ecac187fed | David Lawrence Ramsey | 2025-02-17 20:43:43 -0600

Fix comment typo.

--------------------------------------------------------------------------------
478cf1221d | DracoOmega | 2025-02-17 23:02:44 -0330

Fix spellclaw's damage multiplier never applying (Darby)
While the multiplier was *set* in a way that is seemingly correct, this
parameter was only ever used for monster melee attacks and not player ones.
This meant both that undertrained/slow weapons were attacking at full power
when you cast spells, but also that enkindled melee attacks weren't getting
the (sometimes fairly large!) damage bonus they were supposed to recieve at
all.

I am... slightly unclear whether this is a net nerf or buff, but at the
very least it was the intended design, so we can see how their power level
feels after this.

--------------------------------------------------------------------------------
de1897d326 | DracoOmega | 2025-02-17 23:02:44 -0330

Fix Cacophony armour being hostile with Oka (ploomutoo)
This is thematically just the poltergeist's own body taking up more tiles
than usual, and not some ally you're calling in to help.

--------------------------------------------------------------------------------
86a188487b | wheals | 2025-02-17 22:17:19 +0200

Upgrade webserver ci to ubuntu-latest
We downgraded to 20.04 for python 3.6, which we no longer attempt to
use. GitHub is deprecating the 20.04 images soon, so if this doesn't
work (if perhaps latest ubuntu doesn't support python 3.8 either) I'll
try 22.04.

--------------------------------------------------------------------------------
8bdf87329e | wheals | 2025-02-17 22:10:04 +0200

Add a commit hook for checking commit conventions

--------------------------------------------------------------------------------
ec844b1194 | wheals | 2025-02-17 22:10:04 +0200

Simplify map_cell definition

--------------------------------------------------------------------------------
00f9be72f1 | Cgettys | 2025-02-17 22:10:04 +0200

fix: remove undefined behavior from map_cell
Clang-tidy warns about these memcopies:
* Undefined behavior, source object type 'const map_cell' is not 
TriviallyCopyable
* Undefined behavior, destination object type 'map_cell' is not 
TriviallyCopyable

Pointer provenance / type-based aliasing analysis are part of the C++ standard, 
so this analysis seems correct.

* Remove the UB by changing to proper field-wise copies; compiler should 
optimize it pretty well, especially for the move case.
* Simplify the operator== and != to do pointer comparison, as at present, the 
memcmp was comparing pointers that are unique per instance anyway. Leave a TODO 
about it.
* Also leave some TODOs for future work I'll do in a follow-up PR.
* Some general cleanup (e.g. ternaries where they make sense)

--------------------------------------------------------------------------------
616585275e | wheals | 2025-02-17 22:10:04 +0200

Reuse monster_iterator::advance() (bernardosulzbach)
Closes #3764

--------------------------------------------------------------------------------
9eb7eaf012 | brandon s allbery kf8nh | 2025-02-17 22:09:38 +0200

only deploy docs on main repo
As currently written, the `deploy_docs` action runs on forks,
which means anyone with a fork of the crawl repo gets a build
failure when updating the fork. This patch makes it only run on
the main crawl repo (hopefully).

--------------------------------------------------------------------------------
7767d82716 | Cgettys | 2025-02-17 22:09:13 +0200

ci: Automatically check commit messages against guidelines
Add a python script to check line lengths of all commit messages
not in master.

Should work properly even in the case where it's ran on master,
though it's a bit pointless there.

--------------------------------------------------------------------------------
111d7e6ee8 | David Lawrence Ramsey | 2025-02-17 09:46:30 -0600

Add Po/Re to species mutation tests.

--------------------------------------------------------------------------------
c516c672c2 | regret-index | 2025-02-17 11:06:40 -0330

Quick vault review, mostly bugfixes and minor nudges
Worthy of explanatory notes:

 * nicolae_shoals_entry_flooding gets a tiny amount of gold added to it
   due to the possibility that the water nymph can cover up the entrance
   to Shoals without the player seeing it (most obviously for kobolds).
   The gold should guide autoexplore back to the vault to see the entrance
   afterwards.

 * The antique champions of Zonguldrok's wizlab have catapulted it to the
   top of wizlab statistics, so I've nerfed their HP / AC / damage down a
   little. Cigotvui's wizlab hasn't been much successful at killing
   people despite its overflowing item rewards, so Cigotuvi's Monster now
   gets a permanent regeneration enchantment to parallel the random buffs
   the other abominations in the wizlab now have.

 * The Xom greatest gift vault now mirrors the Xom hyper-buffing ally
   Xom action for its gift.

 * special_room_bee no longer uses decorative flowers for now, since the
   vault feature redefinition doesn't work with layout code and
   layout_roguey can place special rooms directly.

--------------------------------------------------------------------------------
0607873e95 | yrdzrfxndfvh | 2025-02-17 11:06:40 -0330

reinstate yak island (#4108)
[Commiter's notes: This PR still emphasized extremely tedious optimal
gameplay; the Lair version still allows picking up a bow to kill death
yaks with 0 ranged skill once the rest of the floor was cleared out,
except now with walking back and forth away from weak petrifying cloud
impacts plus being randomly put to sleep. Meanwhile, the Swamp version
consists of an arbitrary pond of spectral monsters from multiple
different branches solely due to ghost crabs.

The author has assented to letting me heavily reshape their submissions in
order to make them mergeable, so this mostly keeps a very simplified
version of the vault in just Shoals, deploying oklob plants in order to
help with excluding the disconnected island version of the vault, and
otherwise just deploying actual ranged threats across water instead of
landbound Egyptian bulls stalling out autofight in a Greek sea branch.

Closes #4108.]

--------------------------------------------------------------------------------
228bcfb148 | hellmonk | 2025-02-17 11:06:39 -0330

three new ossuaries, one new sewer (#4268)
[Commiter's notes: Squashed together commits, one of which concerned a
variety of edits based on feedback I provided in ##-dev, and rotated some
particularly taller-than-wide map definitions. For the ossuaries, I've
only done minor header style-consistency maintenance and kept a Yred altar
away from a Kiku monster. The sewer map had some self-replacing MONS vs.
KMONS definitions, which I fixed to provide the amount of threats one
would expect from most sewers.

Closes #4268.]

--------------------------------------------------------------------------------
d2bf43c392 | DracoOmega | 2025-02-17 06:22:42 -0330

Fix barbs working on insubstantial players (Planckenstein)
They already didn't work on insubstantial *monsters* and intuitively would
be expected not to work on insubstantial players either. (Presumably
nobody noticed or cared in Wisp or Storm Form up to now, though)

--------------------------------------------------------------------------------
c9bfa88436 | DracoOmega | 2025-02-17 05:41:37 -0330

Fix trickster AC bonus not coloring AC blue in webtiles (Lici)

--------------------------------------------------------------------------------
00fd1e57a9 | Monkooky | 2025-02-17 05:06:32 -0330

Remove 'attack previous target' shout
'Attack previous target!' appears in the shout menu if you have a target,
and they are alive in line of sight.

First, the 'Attack previous target!' shout can be issued even when not
displayed on the menu; if you have a previous target alive but out of LOS
it will command allies to target them. This technically leaks information,
but is mostly just strange and buggy looking.

Second, what your previous target is is obtuse. Your target is changed when
you perform any action which places a targetter, along with some other
conditions. Notably, firing past a monster or casting apport will clear
your previous target.

Given how low value ordering an attack on your previous target would be
even if it were fully functional, it seems better to remove the option
entirely.

--------------------------------------------------------------------------------
95744fd038 | Aliscans | 2025-02-17 05:00:02 -0330

Don't crash if a wizard flees the Vaults without a rune.
Entering the Vaults via the stairs and then leaving with &u triggered
an ASSERT in _rune_effect().

Fix this by briefly "unlocking" the Vaults as the wizard escapes.

--------------------------------------------------------------------------------
5f4d809e43 | Cgettys | 2025-02-17 04:59:11 -0330

fix: some warnings produced by header_build_tests
* Add missing include to conduct-type.h to ensure it is self-contained
  (e.g. not depending on other headers happening to include tag-version.h
  before including it)
* Remove unnecessary semicolon.
* Add missing cstdint includes

--------------------------------------------------------------------------------
19d9dbdb0b | Isaac Clancy | 2025-02-17 04:53:08 -0330

Fix Hep ancestors sometimes spawning incorrectly
If the player gained enough piety to gain an ancestor on an enemy's turn
or at the start of their turn (e.g. from an enemy digging or the
player's passwal finishing), they will get a turn to act before their
ancestor is summoned as the ancestor will be summoned at the end of the
player's turn. Delaying the summoning of the ancestor to the end of the
player's turn is done by storing a copy of the ancestor in a queue.
This lead to a bug reported by krajj7 (aka chujev) where changing your
ancestor's name on this turn would result in them spawning with the old
name. Fix this by using the actual data for the ancestor instead of the
data in the queue.

Queueing up spawning an ancestor also lead to a bug reported by
NephilaWeaver where a teleport trap could teleport you into unexplored
terrain giving you enough piety for an ancestor and then piety delay
could bring you below the piety required for an ancestor but fail to
remove your ancestor as it hadn't spawned yet. Then at the end of your
next turn, your ancestor would spawn even though you didn't have enough
piety. Then when your got enough piety for an ancestor, a second one
would spawn. Fix this by checking if spawning an ancestor is needed
before spawning one from the queue.

Fixes #3300
Fixes #3450

--------------------------------------------------------------------------------
db0d976a04 | DracoOmega | 2025-02-17 04:51:55 -0330

Fix auras stacking Trickster AC bonus continuously (Darby)
Because auras internally deleted and re-added their enchantments every
turn, Trickster would see this as you applying a fresh debuff and keep
raising your AC with each turn that passed (if you somehow had a torpor
snail ally, for instance.)

Auras should now *replace* existing enchantments rather than delete/add
(which also probably lets us remove the existing special-casing on
ENCH_DOUBLED_HEALTH)

--------------------------------------------------------------------------------
6ce588bc5f | Cgettys | 2025-02-17 04:19:47 -0330

refactor: enum related cleanups
 * Split explore_stop_options into its own header.
 * Make initfile parsing use maps instead of brute force else-ifs
 * Make the layers enum a enum class
 * simplify base movespeed logic in form_base_movespeed
 * Fix return type of viewmap_flash_clour and fix compiler warning.

[Committer's note: resolved merge conflicts in transform.cc]

--------------------------------------------------------------------------------
d97012d3a2 | Isaac Clancy | 2025-02-17 04:07:29 -0330

Fix incorrect max health and magic after melding items (ritt)
After melding items that gave max health or magic your max health and
magic would be set to the values for having the items unmelded. Also
unmelding the items would set your max health and magic to the values
for having them melded.

Fixes #4284

--------------------------------------------------------------------------------
c90e054cf1 | DracoOmega | 2025-02-17 04:05:14 -0330

Don't let Vainglory block transporters and PoG (radio-gra)

--------------------------------------------------------------------------------
67d6cae5cd | Cgettys | 2025-02-17 03:58:57 -0330

style: a few cleanups in Beogh apostle code
Add a named constant to make it clear why some of these loops start from 1.
Fix a few typos and add comments to help myself or anyone else in the future.
Make a few parameters const where they already could be.

--------------------------------------------------------------------------------
dea60a99ca | Isaac Clancy | 2025-02-17 03:56:00 -0330

Fix unexpected "Okay, then" when swapping weapons (projectNoob)
When swapping weapons as a coglin, you would get the message
"Okay, then" after selecting which weapon to swap out. This is incorrect
as you should only get that message when cancelling the action.

Fixes #4267

--------------------------------------------------------------------------------
6b3b8b87c1 | Isaac Clancy | 2025-02-17 03:54:57 -0330

Fix swapping two-handed weapon with fly to one without
When trying to swap a two-handed weapon with the flight property on it
with another two-handed weapon without flight while wearing another
item of flight, you would get a message saying that you would drown and
be unable to swap weapons if you were above deep water. This was caused
by the item swapping code trying to unequip the two-handed weapon twice
(once to free the primary hand and once to free the offhand) which would
mess up the count of equipped flight items.

Fixes #4258
Fixes #4255

[Committer's note: renamed a variable to avoid shadowing a parameter]

--------------------------------------------------------------------------------
1afe1e7492 | DracoOmega | 2025-02-17 02:35:07 -0330

Display battlesphere projectile damage when examining them
(Particularly so that the interaction with Tempering can be displayed;
there was some confusion over whether it affected it or not.)

--------------------------------------------------------------------------------
b3c5c66fec | DracoOmega | 2025-02-17 02:32:56 -0330

Fix Ravenous Swarm spell description

--------------------------------------------------------------------------------
6ee9563bfc | DracoOmega | 2025-02-17 01:46:20 -0330

Allow attuning regeneration items if your max HP falls
Regen+ items are inactive when equipped while injured, until the player's
HP returns to max. But if the player experienced an effect that lowered
their max HP to equal or less than their current HP (most easily by using
a talisman you didn't have quite enough skill for, but other ways are
possible), no amount of resting would let them attune until the player took
damage and then healed to full again after *that*.

Normally we want to avoid giving the player advantages for deliberately
lowering their max HP with talismans, but in this case the advantage of
'attune instantly so that you regenerate faster' is rather overpowered by
'lose a lot of HP immediately'. And this avoids the player being put in
regeneration limbo in normal gameplay, when using a mildly underskilled
talisman (or perhaps even getting drained at an inopportune time).

--------------------------------------------------------------------------------
21a13a6849 | DracoOmega | 2025-02-17 01:20:36 -0330

Make Percussive Tempering give extra duration to expiring allies (Lici)
Just 3-5 turns, if they have less than 5 turns left (specifically to avoid
the feelsbad situation of casting it on something that immediately vanishes
before doing anything with the buff.)

--------------------------------------------------------------------------------
34267a8048 | DracoOmega | 2025-02-17 01:13:35 -0330

Fix death curse messages being printed when out of LoS of their target
Easiest to cause with Discord, but still possible in other ways.

--------------------------------------------------------------------------------
953dd5d6a3 | DracoOmega | 2025-02-17 01:09:55 -0330

Prevent Mark of Haemoclasm from blowing up firewood (Ge0FF)
I feel mildly sad that you can no longer chain-detonate a cluster of plants
all at once, but you probably 'shouldn't'.

--------------------------------------------------------------------------------
725e1c6e44 | DracoOmega | 2025-02-17 00:59:31 -0330

Don't let spellclaw melee ignore nets/webs (monkooky)

--------------------------------------------------------------------------------
976e243d3e | DracoOmega | 2025-02-17 00:20:08 -0330

Fix a crash when looking up haunted armour with ?/m
I'd just copied the code for dancing weapon tiles, but those actually get
'default' equipment, and there currently seems to be no reason to give
default equipment to something that can only be made by cacophony.

So use a fallback tile instead of an assert.

--------------------------------------------------------------------------------
38914867c8 | David Lawrence Ramsey | 2025-02-16 17:20:58 -0600

Fix spell description typo (adwarshall).
Closes #4306.

--------------------------------------------------------------------------------
1bb2c40a17 | David Lawrence Ramsey | 2025-02-16 17:13:36 -0600

Adjust suck-up adjectives again.
Give death form "well-preserved," since it may not have bones if it's
e.g. an octopode, and give Revenant "ivory-boned."

--------------------------------------------------------------------------------
5eea946fe3 | David Lawrence Ramsey | 2025-02-16 17:06:39 -0600

Add suck-up adjectives for Po/Re.
Poltergeists get "high-spirited," and Revenants get "ivory-boned" as
death form also does, since the default of "rosy-lipped" doesn't fit
either of them.

--------------------------------------------------------------------------------
cb418da545 | David Lawrence Ramsey | 2025-02-16 17:06:39 -0600

Fix capitalisation of the Revenant's orc name.

--------------------------------------------------------------------------------
3ed869fdc1 | Cgettys | 2025-02-16 23:50:30 +0200

fix: unistd.h inclusion for macOS 10.14
Hopefully fix #4299.

I'm not entirely convinced all usage of unlink should not be unlink_u. But 
that's a separate discussion.

--------------------------------------------------------------------------------
9913f6a86f | wheals | 2025-02-16 23:48:50 +0200

Run Win32 MSVC build in CI
As long as there's little extra cost to supporting Win32 (and it works just
fine in my testing) we may as well build it regularly too.

--------------------------------------------------------------------------------
e56dd6e543 | Cgettys | 2025-02-16 23:48:26 +0200

ci: Add msvc build job
* Add msvc build job covering all x64 build configurations
* Fix gen-all.py to run targets in the correct order so that a clean msvc build 
works
* clean up vcxproj - Visual Studio can be repetitive for no reason
* YY_NO_UNISTD_H needs to be defined for all msvc configurations after wheals' 
latest cleanup.

--------------------------------------------------------------------------------
c8760497ea | Nikolai Lavsky | 2025-02-16 22:15:00 +0300

docs: fix changelog typos

--------------------------------------------------------------------------------
d053411cd7 | regret-index | 2025-02-16 13:36:10 -0330

Fix another accidental smoky over midnight gem (#4281)
Really should standardize the gem placements in Depths and Zot entrances
with a vault.lua function, the way vault statues and decorative floor
do such.

--------------------------------------------------------------------------------
e697f8936e | regret-index | 2025-02-16 13:21:03 -0330

Fix x-v not showing Clarity blocks Vex / Dominate Undead (#4259)
Accidentally left out of f4f8fba. The addition of the other use of Vex
(as part of Dominate Undead, in 4c592b3) postdates the issue, but also has
the same problem of having left an immunity check out from monster
examining. Both have been fixed, while the immune_to_hex order has been
mildly re-arranged for better groupings.

Closes #4259.

--------------------------------------------------------------------------------
f30ef7623c | regret-index | 2025-02-16 13:21:03 -0330

Don't use an enter_abyss instead of an exit_through_abyss in Pan (#4278)
They use the same tiles, so there's a reasonable chance people may
accidentally use the former to try and leave Pan. (There's a reasonable
argument they shouldn't, but next version's Pan plans are unlikely to keep
exits through the abyss anyway, so it's probably not worth bothering.)

Closes #4278.

--------------------------------------------------------------------------------
eed266bea4 | David Lawrence Ramsey | 2025-02-16 10:21:32 -0600

Fix typos.

--------------------------------------------------------------------------------
874f29ee33 | DracoOmega | 2025-02-16 07:16:51 -0330

Fix enkindlable spell fail rate in spell memorisation menu (staticshock)
It was accidentally displaying the raw fail rate instead of the actual
chance of failure.

--------------------------------------------------------------------------------
8c39c319c7 | regret-index | 2025-02-16 06:38:23 -0330

More changelog updates (up through eec983bea9)
Timed for the new undead species and talisman, though also encompassing
a variety of other item, monster, tiles, and interface changes.

--------------------------------------------------------------------------------
eec983bea9 | DracoOmega | 2025-02-16 05:53:05 -0330

Don't claim revenants have skin or are fleshy
Bone isn't *exactly* a skin-equivalent, but probably the closest thing to
how this is used.

--------------------------------------------------------------------------------
2a11fc99a4 | DracoOmega | 2025-02-16 05:50:38 -0330

Reword description for rF+/rC+ mutations
Neither poltergeists nor revenants have flesh (and they both start with
innate rC+, even!)

--------------------------------------------------------------------------------
a97358ce9c | DracoOmega | 2025-02-16 05:47:18 -0330

Let poltergeists share djinn's 'Weightless Champion' title
Getting the title on a species with -3 UC sounds like suffering, but they
really shouldn't be a 'middleweight' (and frankly have a better claim to
being literally weightless than djinn do!

--------------------------------------------------------------------------------
4120f66cc9 | DracoOmega | 2025-02-16 05:42:39 -0330

Give poltergeists a better description of what being insubstantial does
This gives them the same fakemut as wisp/storm form and adds an actual
long description to it, allowing the player to get comprehensive info on
what they're protected from.

--------------------------------------------------------------------------------
a3f61267b9 | DracoOmega | 2025-02-16 05:41:46 -0330

Fix poltergeists being vulnerable to petrification (Lici)
For some reason, player rPetrify did not check is_insubstantial (unlike
monster rPetrify...) and just relied on the insubstantial forms also having
MR_RES_PETRIFY. That is now changed (and I have removed MR_RES_PETRIFY
from wisp/storm form; like monsters, this only should need to be used in
cases where it is not already implied by being insubstantial).

--------------------------------------------------------------------------------
5e1a386783 | DracoOmega | 2025-02-16 05:23:04 -0330

Fix randart talismans with Fly having an inverted effect (SleepyMeeple)
Using a talisman with {Fly} didn't make the character fly, but removing it
again *did* (effectively giving you permaflight).

This was a consequence of the fairly brittle and order-dependant way
transformations work (ie: the equipped talisman wasn't active at the time
we'd take flight because the player wasn't actually in that form yet).

--------------------------------------------------------------------------------
c77da5a6f4 | DracoOmega | 2025-02-16 03:46:25 -0330

Fix a crash with using Phantom Mirror on a friendly apostle
monster::is_summoned() returns false even for things with ENCH_SUMMONED if
that monster is also unrewarding (which apostles are). This caused phantom
mirror copies of your apostle to look like a real apostle to vegenance
swearing code, which caused a lookup for the apostle data for an apostle
with a different mid than any you actually have.

Now, we clear MF_HARD_RESET and MF_NO_REWARD when making a phantom mirror
clone (since the behaviors of those are effectively superceded by being
a proper summon in the first place).

It is possible that this should be done in more places that monstes are
cloned, but it's a bit tricky to trace all the ways these various flags are
used (or how clones are made), so I have opted for a simpler fix to the
more serious problem right now.

--------------------------------------------------------------------------------
911dfa4448 | DracoOmega | 2025-02-16 03:11:47 -0330

Rename poltergeist armour slot for clarity
SLOT_ANY_AUX (ie: a specific slot that can contain any aux armour) was too
confusable for SLOT_ALL_AUX_ARMOUR (ie: a fake slot that queries any slot
that happens to contain aux armour), so let's try something more
unambiguous. We're probably not likely to get any other species using this
slot anyway.

--------------------------------------------------------------------------------
9e5c492961 | DracoOmega | 2025-02-16 03:03:11 -0330

Fix poltergeist armour not being visible to some queries
Code scanning for 'any equipped armour' could not see poltergeist armour.
At the very least, this caused regen+ armour not to activate on them, but
it's likely it caused a number of other problems.

--------------------------------------------------------------------------------
11965a5a82 | DracoOmega | 2025-02-16 02:44:04 -0330

Prevent WJC martial stabs from attacking your own thralls (Oneirical)
If you created a vampiric thrall from a stab triggered by a martial attack,
any subsequent attacks caused by the same movement would still try to
target the (now-friendly) monster. You could cancel them with a prompt,
but it's still weird.

(Yred bound souls seem to use the same approach in this commit, so it
probably should fix any such weirdness without other issues.)

--------------------------------------------------------------------------------
f9589bcb02 | DracoOmega | 2025-02-16 02:25:53 -0330

Add poltergeist/revenant player shadow tiles (regret-index)

--------------------------------------------------------------------------------
969233c879 | regret-index | 2025-02-15 17:10:41 -0330

Fix Vampire Thrall status not rendering in webtiles

--------------------------------------------------------------------------------
6bae641e05 | David Lawrence Ramsey | 2025-02-15 14:30:55 -0600

Fix missing word.

--------------------------------------------------------------------------------
617501e0ff | David Lawrence Ramsey | 2025-02-15 10:52:50 -0600

Remove erroneously readded ghoul desctiption.

--------------------------------------------------------------------------------
f716cb1c98 | David Lawrence Ramsey | 2025-02-15 10:49:17 -0600

Fix typo.

--------------------------------------------------------------------------------
a774014b48 | regret-index | 2025-02-15 12:53:21 -0330

Fix Crypt zig floors (cool 3)

--------------------------------------------------------------------------------
7c096ce8a3 | DracoOmega | 2025-02-15 12:26:33 -0330

Checkwhite / unbrace

--------------------------------------------------------------------------------
ff4dafabf9 | DracoOmega | 2025-02-15 12:21:04 -0330

More tag upgrade build fixes

--------------------------------------------------------------------------------
97afa80b3a | DracoOmega | 2025-02-15 12:09:46 -0330

Change poltergeist genus/adjective for cooler titles (lici, regret-index)
(And actually link the correct dummy monster; oops)

--------------------------------------------------------------------------------
9ed1df1ea5 | DracoOmega | 2025-02-15 12:08:55 -0330

Fix tag upgrade build (hopefully)

--------------------------------------------------------------------------------
4a08e36d24 | DracoOmega | 2025-02-15 11:47:59 -0330

Remove a stray bit of unremoved Vampire code

--------------------------------------------------------------------------------
0754acf4b9 | regret-index | 2025-02-15 11:30:45 -0330

Vault review, vampire revisions edition
 * Crypt:3 now has a ~31% chance to contain a sanguine talisman,
   seperately of the chance for it to contain a talisman of death. I'd
   still would like to shove in all the theme-loot into an extra-expensive
   custom shop guaranteed every game as both a money sink and a more
   obvious way to indicate the branch's chances for undead talismans /
   high level necromancy spells / decent unholy weapons / rN++ randart
   rings and Regen randart amulets, but this should work for a quick
   arrangement right now; doing that sort of work might be warranted
   after another couple more monster / reworks go through the branch.

 * Sanguine talisman distribution otherwise looks mostly for vampire
   vaults in mid to late D, Crypt, and Depths. There's not a lot of
   natural early monsters or vaults to deploy it as an enticing drop, but
   the D vaults should help a little with the overall talisman consistency
   fronts.

 * Sanguine talismans also have been added to the Trove talisman list.
   Trove talismans have been adjusted further to not offer either unholy
   talisman to worshippers of Ely and TSO, and to offer potions of
   mutation instead for worshippers of Zin (for eventual cleansing as
   the only form of form-changing Zin supports).

 * Vampire bloodprinces mostly go into various Crypt and Depths vaults
   themed around vampires, with the latter pool being proportionally
   quite rare and not guaranteed. This naturally includes a fair number
   of Crypt ends otherwise reliant on Jory or undying armouries (though
   the latter are not removed; they still buff vampire knights, and they
   won't buff princes anyway according to 4fe8696). They also get (low)
   placement in Crypt zig floors; vexing lichform mega-zig delvers will be
   amusing and they can attack past other monsters with Grave Claw.

 * I've very slightly lowered the curse skull spawning rate with the
   addition of bloodprinces taking up some spawn weight. Crypt has had a
   rough reception at various times, due to its awkward and redundant
   position as an optional undead branch when both lategame and extended
   are both filled with unholiness while borrowing many monsters once
   meant for Crypt. While it's good for curse skulls to be a character
   check in the same way dancing weapons work for Elf, them being
   arguably the strongest individual monster in the branch is a little
   singular in branch distinction and can be de-emphasized a little with
   newer monsters in whichever forms that takes.

 * The Xom + Hep overflow altar now finally comes with lines from Xom
   explaining the subtle joke.

--------------------------------------------------------------------------------
46d9157e01 | DracoOmega | 2025-02-15 11:30:45 -0330

Assorted vault fixups for the new undead species
Mostly changes to player species dummy monster vaults and so forth.

--------------------------------------------------------------------------------
baaed966f3 | DracoOmega | 2025-02-15 11:30:45 -0330

Rename monster revenants -> revenant soulmongers, and add a species dummy
Now that player revenants exist (and monster revenant mechanics only
*partially* correspond to those of player ones), I think it makes sense to
make the existing monster not a 'generic' revenant, but something more
specific. ie: they're not just doing 'revenant things', but their own
things.

A lower-tier revenant monster making more direct use of Enkindling flavor
seems possible in future, but for now I'm just adding a species dummy
monster in its place.

--------------------------------------------------------------------------------
867c1f9194 | DracoOmega | 2025-02-15 11:30:45 -0330

Fix randomization of diamond sawblades damage in spell menu (monkooky)

--------------------------------------------------------------------------------
9dca8172ea | DracoOmega | 2025-02-15 11:30:45 -0330

New player species: Revenant
This is an attempt at making a more interesting and diverse species that
retains some of the core ghoul strengths (ie: strong heavy armour unarmed
combat, with undead resists and a mild healing gimmick), while being of
broader appeal and allowing you to do some unique things no other species
can.

They are designed from the ground up to promote a unique form of hybrid
blaster play (an archetype which players regularly expressed interest in,
but which Crawl's systems somewhat fight against) and do this via two
mechanisms:

1) Whenever they cast a damage-dealing spell, they perform an immediate
melee attack against the highest-health enemy in range. This is similar to
coglin's spellmotor gizmo (which has also been popular within its niche),
but has more predictable targeting and applies to a more narrow range of
spells, but is *reliable* on the species.

The goal of this is to both incentivize pure casters to care more about
their weapon skills than normal (and position in ways that care about melee
more than usual) and also to make mid-power spells more appealing for melee
characters than they would otherwise be (since they're folding part of
their attack power into them). And this is further empowered by:

2) They harvest 'memories' from monsters they kill, which they can consume
to briefly enter an empowered state by using their Enkindle ability. Each
damage-dealing spell they cast while Enkindled consumes a stored memory,
but is greatly empowered: it costs no MP, has additional power (which
scales with XL), has increased success chance, and importantly *suffers no
penalty from encumbrance*. Each spell cast consumes a stored memory, and
the state will end when they are all used (or after a short time, consuming
all unused memories regardless). Finally, the instant attack granted by
casting a spell while Enkindled receives a damage multiplier based on the
spell level, and heals the player for a portion of the total damage dealt
by it (this is a minor nod to ghoul's healing quirk, but importantly - a
way to make even spell-focused characters care about melee positioning
while Enkindled.)

Enkindling allows players to hybridize in ways that would otherwise be
impossible; it still requires skill investment to use spells beyond early
level, but a much more justifiable level of investment for the payoff
(even if they can only use these spells every now and again). As the
memories are harvest on an XP-timer, in some ways it is like a draconian
breath ability that you get to choose yourself (based on spellbook finds
and skill decisions).

Since estimating how good your spell success will be while enkindled vs.
not would otherwise be opaque, the spell UI additionally lists the
enkindled success chance side by side the normal one (so that the player
can always see what it will be, and also which spells qualify).

The bonus has been limited to direct attack spells specifically because
utility and summoning spells already see plenty of hybrid play and the
damage-dealing ones specifically suffer by comparison. The criteria are
similar (but not identical) to Vehumet's - excluding battlesphere and
servitor and including a handful of directly-damaging necromancy spells
that Vehumet only excludes so as not to step on Kiku's toes.

At XL 3 (when they gain access to Enkindling), revenants also learn a
random level 1 damage-dealing spell - flavored as recalling a fragment of
their own death. This is to allow *all* backgrounds to start interacting
with this core ability immediately, rather than melee BGs being entirely at
the mercy of the floor god. (Okay, all backgrounds besides berserkers....)

Revenants naturally have -20% MP, which should also push caster a little
more towards caring about their spellmelee (and having fewer reserves in
the average battle, to compensate for being able to tap into free
spellcasts in a pinch). (Though they get a flat +1 MP to stop spell
backgrounds from starting with 2 MP at XL 1, which is just miserable.)

Their aptitudes are nearly identical to ghouls, aside from both
spellcasting and conjurations being raised from -2 to -1.

(This is at least the 3rd major internal iteration on the 'hybrid blaster
species' concept, and if some of the perks hey have seem rather large,
it's at least partially because it takes large perks to *make* this work.
But this version felt like it created a unique and interesting melee hybrid
experience that was fun to play; and if it turns out to be too good on
more pure casters, there are other knobs to tweak still.)

Hopefully players enjoy them!

---------------

Tile credits:
 -Revenant player dolls by pianoman523 (with edits by regret-index)
 -Other tile edits by regret-index, using:
  -Spellclaw icon: pianoman523's claw mutation tile and ontoclasm's
   magical power + fire resistance item tiles.
  -Mnemophage icon: Sastreii's revenant tile plus Denzi's old fire giant
   tiles.
  -Enkindling max charges: Ontoclasm's old sticky flame tile.
  -Enkindling status icon: Ontoclasm's fire resistance item tile.
  -Enkindle ability icon: Sastreii's horn mutation icon tile and old
   Dark Bargain icon mixed with Denzi's old fire elemental tiles.

--------------------------------------------------------------------------------
176551e282 | DracoOmega | 2025-02-15 11:30:45 -0330

Allow querying the total damage a melee attack set did
melee_attack.total_damage_done tallies both base weapon and brand damage,
on all hits of a cleaving or multi-hit attack, as well as aux damage.

(To be used for Revenants shortly, but may have other future uses as well.)

--------------------------------------------------------------------------------
9f6efc3231 | DracoOmega | 2025-02-15 11:30:45 -0330

Refactor Usk/Beogh damage tracking somewhat
No functional change yet (but this opens the door to making Beogh include
things that Usk does not, in future).

--------------------------------------------------------------------------------
55edde139b | DracoOmega | 2025-02-15 11:30:45 -0330

Remove player ghouls
Ghouls have been consistently at the bottom of the species popularity for a
while (while not even being a 'challenge species' like mummy, which might
intrinsically lower their expected pickrate). They're not fundamentally
flawed in any way, but they just don't seem to be compelling; the
heal-on-kills in exhange for -regen isn't well-liked, and their play
patterns are considered a little narrow. So let's try replacing them with
something that still does ghoul's core strength similarly well (ie: heavy
armour unarmed combat) while hopefully being more dynamic and flexible in
othe ways - and with new flavour to boot.

--------------------------------------------------------------------------------
91aef888bc | DracoOmega | 2025-02-15 11:30:45 -0330

Refactor player wakeup code
Aside from the just-removed chance for players to be awakened by noise,
all other calls to player::check_awaken() used an argument of 500, as a
means to say 'Just wake up now' (technically, anything 50 and above would
have sufficed...), so now there is just a player::wake_up() which does
exactly this.

(The old schema was additionally odd, since while check_awaken() was a
method of actor, monster::check_awaken() was an empty stub that did nothing
and a non-class method check_awaken(monster) was the actual monster stealth
check instead (unrelated to noise)....)

--------------------------------------------------------------------------------
2e4c680cff | DracoOmega | 2025-02-15 11:30:45 -0330

Fix Grave Claw being cast from full los range by monsters
Non-beam-based spells have apparently *no* automatic checks for whether the
target is in range, for monsters. And this was largely disguised by most of
those spells being full LoS range anyway, or having very particular
targeting that was handled in a bespoke way (such as fulminant prism). But
Grave Claw was neither of those things, and despite claiming it was range
4, could hit from full screen range.

*In addition*, I am adding logic to prevent recasting on a player that
already has the -move status. Getting locked in place by this spell could
feel a little frustrating (and overly dangerous) by an early apostle, as
more and more turns of -move stacked up. Now they will space casts out a
little better. (Monsters get no such protection.)

--------------------------------------------------------------------------------
b30f0b4cc1 | DracoOmega | 2025-02-15 11:30:45 -0330

Don't give sleeping players a tiny chance to wake up on any noise
This was obscure and rarely came up in practice, but sleeping players had
a tiny chance to be woken up by noise before something damaged them. But
this chance was low enough that even a monster literally shouting in your
face had only a ~16% of doing so (yet also, a rat squeeking from halfway
across the room could have a non-zero chance).

Players probably just assumed they rolled a low duration when this
happened, but especially now that monster hex sleep doesn't even work this
way, there's no need for such an obscure mechanic, in my opinion.

--------------------------------------------------------------------------------
4c592b3367 | DracoOmega | 2025-02-15 11:30:45 -0330

New monster: Vampire Bloodprince
As another user of the bat clouds that vampire form can unleash, these are
positioned as a top-tier threat for Crypt (which may also help out some
vampire-themed endvaults that struggled to have a thematic top-end).

They have relatively hard-hitting (but unarmed) melee and know Ravenous
Swarm (ie: a wave of bat clouds), Drain Life, Grave Claw, and also another
new spell: Dominate Undead.

It has been tradition for many necromantic enemies whose primary tricks
don't work on undead (just as drain life, bat clouds, and their vampiric
melee do not) to get Dispel Undead as a way to be less harmless to them.
But that route has been used a lot, so I am trying something different
(with an eye for reusing the spell in some form on a mummy dynasty in Tomb
in 0.34). The spell has a will-resistable (but high) chance to turn all
unfriendly undead monsters to the caster's side, but significantly (and
unlike old Control Undead), applies Vex to player undead thus-affected.
This is a significant debuff, but if properly positioned, the player can
still kill the vampire through it (and the immunity granted afterwards
keeps you from being locked down.)

It feels suiting with their general theme of dominating and controlling
enemies. Let's see how they play.

--------------

Tile edits by regret-index, using:
 -Vampire bloodprince: roctavian's old vampire, quicksilver ooze, Bloax's
  old Dowan, and Denzi's old dragon tile.
 -Dominate Undead icon: roctavian's Charming spell icon and ontoclasm's
  Mass Confusion spell icon.

--------------------------------------------------------------------------------
3de618130a | DracoOmega | 2025-02-15 11:30:45 -0330

Fix bits of monster weapons visibly trailing behind in webtiles
There was already code to handle rendering tiles whose contents overlapped
slightly with the tile to the left or the tile above, but none for the
tile to the upper-left. So certain weapons on certain monsters (mostly
large polearms) could leave little bits of themselves on previous tiles as
their owner moved around.

That should now be fixed.

--------------------------------------------------------------------------------
b61f5c51ee | DracoOmega | 2025-02-15 11:30:44 -0330

Add a couple missing break statements

--------------------------------------------------------------------------------
dabf14c81c | DracoOmega | 2025-02-15 11:30:44 -0330

Remove an unused ability description

--------------------------------------------------------------------------------
60819bef44 | DracoOmega | 2025-02-15 11:30:44 -0330

Add Sanguine Talismans (ie: Vampire Form)
Vampires are such an iconic fantasy staple (and famous for being something
all manner of living creatures can become) that they feel a natural fit for
a talisman form. And being aimed at a higher level also allows doing some
more exciting things with than the species itself did, I believe.

This is a form targeted at statue form tier. Given that death form's
immunities are already somewhat problematically polarizing in extended, I
didn't want to make torment immunity even more accessible, so this
specifically leans into the 'part-living and part-undead' thing that the
vampire species theoretically had going on. You gain a large stealth bonus,
torment resistance (like statue form), and rC+, but are still vulnerable to
many things that affect living creatures (ie: poison) as well as undead
ones (ie: dispel undead and holy wrath), and do not regenerate when
monsters are visible.

You gain the close equivalent of vampirism brand on stab attacks that you
make, as well as a chance on *all* melee attacks made at 50% hp or lower
(chance scaling with shapeshifting skill). These stipulations are an
attempt to distance its melee healing from Maw form a bit more (though
stabs being extra-good for healing was a lesser-known property the vampire
species also had).

More dramatically, killing living being with stab attacks can turn them
into short-lived vampires as well! This is one of the most iconic parts of
general vampire myths, and heretofore absent in Crawl; whenever you kill
a vampable monster with a stab attack, and have no current thrall, it will
turn what you killed into one - making it undead, granting it a vamp bite
aux, and (if it was a spellcaster), teaching it the Vampiric Draining
spell. These are fairly short-lived, and so shouldn't step on Yred's toes
too much (but it specifically being the *first* one you kill that way in a
battle might lead to interesting targeting choices sometimes.)

Finally, vampire has access to an improved bat form. Instead of just one
bat, you turn into an entire swarm of them, spreading clouds of bats on
many nearby tiles when you transform (and creating some more around
yourself periodically.) Since these clouds can put monsters to sleep, they
can both help the player escape *or* allow them to sneakily turn around and
sink their fangs into a monster and create a thrall to turn the tide of
battle. This transformation is uncancellable and on an XP-recharge timer.

Overall, I hope this talisman is fun to use, and also fits into a niche
that no other form really does at present (with its obvious stealth
synergies). Note that if the player is forbidden allies by Oka or Ru,
vampire form is still usable - you just won't make any thralls upon kills.

Note also: dragon-blood was already using a vial of blood with bat-like
wings above it, which felt too vampire-like now that vampire will be an
actual talisman form, so the new sanguine talisman is an edit of its sprite
while dragon form has recieved an entirely new talisman tile.

Tile source credits (with work done by regret-index):
 -Vampire-blood talisman: Sastreii's dragon-blood talisman plus
  pianoman523's vampire bats.
 -Dragon-coil talisman: The older fire dragon design made by Denzi and
  edited by roctavian, Marbit, and Bloax.
 -Vampire Form: Denzi's old Agnes tile, Sastreii's knight / mage tiles,
  roctavian's old plain vampire tile.
   - Variations: Sastreii's tengu dummy monster tile, armataur / naga /
     statue djinn player paper doll tiles, and dragon-form octopode tile.
   - Vampire felids: pianoman523 + CanOfWorms working from scratch.
 -Bat Swarm Form: pianoman523's vampire bats and CC0 bats by Clint
  Bellanger for the player tile, Ontoclasm's form icons for the ability.
 -Vampiric Thrall status: Coolio and jpeg's old mimic teeth.

--------------------------------------------------------------------------------
95567868e7 | DracoOmega | 2025-02-15 11:18:52 -0330

Add bat clouds
Intended to be used both by the forthcoming vampire form (and also a
monster, to give players a little familiarity with it *outside* of a
specific talisman), these clouds deal irresistable damage to any non-undead
inside them while also slowly putting them to sleep if they remain inside
the cloud for too long.

Damage from the clouds themselves also does not break sleep, potentially
putting the player in a very bad situation if they get overcome (but they
should have a few turns to figure out something to do, even if pinned.)

(Tile credit to regret-index, using Ontoclasm's seething chaos tiles)

--------------------------------------------------------------------------------
1702625a51 | DracoOmega | 2025-02-15 11:18:52 -0330

Make monster forced sleep into a real enchantment, adjust durations
Sleep (as applied by Ensorcelled Hibernation and other magical effects)
wasn't actually a 'real' enchantment in the backend. A monster's behavior
state was simply set to how it is when they are first spawned. This meant
both that putting monsters to sleep with magic didn't count as a debuff
that poltergeist's passive could notice (which would be unexpected behavior
for players) but also that sleep's duration was always: *shrug*

Aside from the one-turn protection on being awoken from forced sleep
effects added in 8a0c6618593e6a89682b3fb6e53a4acc91d0982c there were no
duration controls on forced sleep effects. This meant the duration was
based heavily upon stealth (and nearby monsters making noises), and if the
player actually ducked out of sight of a sleeping monster, they could even
remain asleep indefinitely. An upcoming sleep effect wants a bit more
control than that (so that it doesn't break nearly as immediately, but also
can't last indefinitely), and it seems better to me if these behaviors are
unified.

So now, putting monsters to sleep (by any effect except for Step From Time)
applies a 'Deep Sleep' enchantment to the monster, during which they cannot
be awoken by noise or passive stealth checks. After this duration expires,
they will wake up automatically, reardless of any other stimulus - with a
50/50 chance of this immediately alerting them to the player (or having to
make another stealth roll to find you again).

Hitting or otherwise directly affecting a sleeping monster will still wake
them prematurely (and the 1-action wake prevention that existed prior to
this commit remains - mostly as help against the annoying situation of
allies immediately breaking a sleep effect before the player can exploit
it.)

Ensorcelled Hibernation is the most affected by this change. In an attempt
to not affect its play patterns *too* much, its sleep duration is very low.
As mentioned above, EH's current duration is quite complicated to
calculate, but this change significantly lowers the upper bound on the
effect (and also its average, in many 1v1 situations), while also ensuring
that you get at least 20 aut of sleep even if another monster happens to
make the tiny noise of attacking you while near them.)

I don't intend to make it feel *too* reliable, but Enchanter is generally
not considered terribly strong at the moment, so if this results in a mild
buff, I consider that okay - especially if the playfeel may also improve
mildly at the same time. Knobs like sleep success rate can be tweaked
later, if needbe.

As part of formula refactoring, the durations of many sleep sources against
the player have also changed mildly; if the average number of turns was
changed, it was generally lowered slightly, and the high end was often
reduced significantly - satyrs could previously put the player to sleep for
between 5-18 turns and now do so for 4-11. Sleepcaps always did 5 and now
do 3-5. This likely has limited effect in practice.

--------------------------------------------------------------------------------
aebd54e673 | DracoOmega | 2025-02-15 11:18:52 -0330

Remove a bunch of unused webtiles code related to the mutations UI menu
This appears to have been entirely unused, even before the vampire blood
menu was removed from it. Possibly since the more detailed mutations menu
was added by a603e38af334a77f00c2b29c781fe2538925648d ?

--------------------------------------------------------------------------------
d0a9bed6e2 | DracoOmega | 2025-02-15 11:18:52 -0330

Allow examining fakemuts for longer descriptions
While there are some other organizational advantages, the most
player-facing benefit that real mutations have over fakemuts (especially
for forms, which use a lot of fakemuts) is that they can be examined on the
A screen for more details. Fakemuts cannot (and there are a number that are
more complex than can be fully conveyed in a single short sentence.)

While allowing forms to give *real* mutations is a possible future project,
there's a number of complications related to mutation conflicts and how
they do or don't stack with normal mutations doing a similar thing (as well
as the UI handling of said). This commit opts for a simpler angle that can
still give the player just as much information: allowing them to examine
fakemuts as if they were real ones.

This is accomplished by pairing the 'terse' and full description of
fakemuts together, and using the terse description as a key for database
lookup (much like mutation name is). Any fakemut whose terse description
can be found in the database is giving a hotkey and full description in the
A menu.

This already applies to a couple fakemuts which duplicated real ones, but
can be easily applied to almost any other fakemut (with the caveat that
fakemuts that use dynamic names are currently incompatible, but using
partial string matching could allow them to work in future as well).

--------------------------------------------------------------------------------
c2044cd2ad | DracoOmega | 2025-02-15 11:18:52 -0330

Remove code to make hostile dancing weapons via Tukima's and Sac Love
Policy for a long time has been to just not let the player cast the spell
while hated by all, so this is no longer needed.

--------------------------------------------------------------------------------
38a2e2c53e | DracoOmega | 2025-02-15 11:18:52 -0330

Default to using a menu for item swap prompts with 4+ options
This may be subjective, but while poltergeist swap prompts could often fit
in the message log, I think they're much harder to read than as a menu.

--------------------------------------------------------------------------------
4e3b0e0d72 | DracoOmega | 2025-02-15 11:18:52 -0330

Hide inscription and plusses for DESC_QUALNAME

--------------------------------------------------------------------------------
f08bb6f277 | DracoOmega | 2025-02-15 11:18:50 -0330

New player species: Poltergeists
These take the slanted skill aptitudes of vampires (arguably one of the
most distinguishing aspects of the species, in practice), and undead-ness,
and put them in the context of an entirely new gimmick: flexible aux slots.

Poltergeists can equip up to 6 helmets, hats, gloves, boots, or cloaks, in
any combination (but cannot wear body armour at all). Recontexualizing gear
choice is a straightforwardly interesting way to change how Crawl is played
(and octopodes have been extremely popular for their own way of doing
this.) and the new equipment slot tech I added in 2dbd7c1ffd makes this
straightforward.

Compared to vampires, they have: -10% HP, +2 throwing instead of -3
(tossing objects around is something poltergeists are famous for! Though
their strength is very low.), -3 unarmed combat instead of +1 (you have no
physical body at all!), and small tweaks to a few magic aptitudes:
  Forgecraft: 0 -> -1
  Fire: -2 -> -1
  Air: 0 -> +1
  Ice: 0 -> +1
  Earth: 0 -> -1

They retain the superlative hexes and stealth aptitudes that vampires had
(along with their miserable conjurations).

They also have two other gimmicks:

-They gain temporary AC for inflicting (non-poison) debuffs on enemies.
 This increases with each new enemy a new debuff is inflicted upon and
 decays over time (and is capped based on your XL). They naturally have
 low AC as a species, and this gives them a flavorful way to deal with that
 on a temporary basis, as a species that are natural hexers. (Also, it's
 hilarious to imagine a situation where it could be legitimately correct to
 read ?immolation for emergency defense.)

-At XL 13, they gain the ability to send their equipped armour flying
 around to assault enemies at range. This 'Cacophony' ability has a long
 XP-based recharge (about the same as 3 draconian breath charges, at the
 moment) and generates an enormous amount of noise for the duration, but
 creates a haunted armour 'ally' for every piece of aux armour the player
 is wearing. These have phalanx-beetle-esque AI and cannot stray more than
 2 tiles away from the player (after all, thematically, they *are*
 connected to the player), and have only moderate stats, but their attacks
 can daze, drain, or even confuse their targets.

 This is a powerful (but fun!) ability, and I think the way the noise
 aspect plays directly opposite the default stealth play that poltergeists
 excel at could make it an interesting 'desperate fallback' for when
 stabbing fails. (Poltergeist literally means 'noisy ghost',
 etymologically, after all, so I thought it was a cute connection). It
 *might* be a bit overtuned at the moment, but we'll see how playtesting
 feedback goes.

These will hopefully be fun to play (initial feedback has been positive!)
and a more unique and cohesive experience than the species they are
replacing, while still allowing them to largely be good at what vampires
were most iconic for.

-----

Tile credits:
 -Poltergeist player doll by pianoman523
 -Other icons by regret-index using:
  -Float icon: Denzi's old air elemental tile and ontoclasm's flight
   equipment icon.
  -Trickster icon: ontoclasm's Shroud of Golubria icon and Bloax's
   Corona icon.
  -Formless icon: Denzi's killer klown and old silent spectre tiles, plus
   ontoclasm's scroll of noise icon.
  -Cacophony icon: ontoclasm's plain scarf icon, Sastreii's boots tile,
   and Denzi's old cap and air elemental tiles.

--------------------------------------------------------------------------------
673755988e | DracoOmega | 2025-02-15 10:49:17 -0330

Remove player Vampires
Player vampires have had a troubled history. Their original blood mechanic
was complex and not widely liked, but the simplified one has had other
problems - they're sort of two species stapled into one, but the downsides
of bloodless form cause many experienced players to advocate ignoring it
altogether, leaving vampire as sort of 'human with regen+ and funny apts'.
It doesn't really succeed in selling the (generally popular!) fantasy of
'being a vampire', and any complex mechanic where a common play pattern is
to pretend it doesn't exist is in need of serious reconsideration.

In subsequent commits, a new species will be added to fill some of
vampire's current aptitude niche, without the legacy of these issues
attached to it, and a talisman will be added in an attempt to make the
'being a vampire' fantasy work a little better.

(Unlike most removed species, I have cut nearly all vampire-related code
entirely, so existing vampire will not be playable in upgraded saves - the
player will be given the option to become a human instead, in a similar
manner that lava orc upgrading was handled. There was considerably more
complexity in the code to be #if-def'd out than in any other removed
species, and given how much new vampire-related code will be added for the
form (which could be confused for similar function related to the removed
species!), it felt best not to be burdened by pulling this into the
indefinite future.)

--------------------------------------------------------------------------------
1bbad35be4 | DracoOmega | 2025-02-15 10:49:17 -0330

Make a few new(-ish) monster statuses dispellable

--------------------------------------------------------------------------------
5cf9c13a7c | DracoOmega | 2025-02-15 10:49:17 -0330

A couple new walking verbs for different species
Djinn now 'float' (how were they walking without legs, anyway?), spriggans
'sprint', and barachi 'hop'.

This mostly affects a handful of titles, but people enjoy that sort of
thing.

--------------------------------------------------------------------------------
796593f022 | David Lawrence Ramsey | 2025-02-14 09:49:08 -0600

Fix comment typo.

--------------------------------------------------------------------------------
ba96422312 | regret-index | 2025-02-14 10:00:44 -0330

Tweak a changelog entry
8b3c759 missed the full ramifications of ff6897e, and shouldn't be lost
with the need for a larger changelog catch-up in a few days.

--------------------------------------------------------------------------------
79430971fb | regret-index | 2025-02-14 09:50:40 -0330

Temporarily nerf nekomata (until later Pan reworks)
Nekomata were meant to be on par with Pan's tier-1 demons and the
deployment of shrike bands in the Hells as preperation for eventual
Hell-Pan roulette plans, with a variety of other monsters planned to be
in the same rough space of difficulty for the same branch. Various other
plans and focuses between the active devs for the 0.33 version ended up
with only a few more small steps into said roulette plans, which has left
them much more of a stand out in threat for Pan than was originally
intended.

With the release coming around sooner or later, I'm opting to temporarily
nerf nekomata until Pan itself gets both its reworks and its repositioning
as part of those Hell-Pan roulette plans. Phantom Blitz now only hits from
5 tiles away, permitting casters to use Airstrike / Fire Storm / Fulsome
Fusillade without getting additional summons in. Their weapon damage has
been also somewhat nerfed, and they're less common to spawn both on
regular Pan levels and on Lom's floor specifically. Several parts of
this are likely to be partially reverted in the future, pending on what
the endstate of those further Pan additions ends up as.

(While monster xp calculations are messy and the threat evaluation
criteria clashes awkwardly with the experience values we want to actually
hand out for a given game, when there's several less runes each game
nekomata at the very least can also get the ~4000 xp status needed to make
them always show up as a highlighted lethal threat.)

--------------------------------------------------------------------------------
ef3346897f | regret-index | 2025-02-14 09:23:09 -0330

Yet more tension adjustments
Tension now tracks players being blind, vexed, constricted, engulfed,
petrifying but not fully petrified, being unable to move from Momentum
Strike or bolases, being unable to cast due to Sapped Magic, being marked
by the Sign of Ruin, vainglory, and being in shallow water while neither
capable of swimming or flying. On the monster side, tension also now
tracks monsters being paralyzed, vexed, or chaos laced. Both have been
refactored to make such thorough status checks both more compressed and
easier to compare, which has minimal total effects (mostly in still
tracking all player statuses while asleep / paralysed / petrified; most
don't strictly make the given situation much worse, but they'll still be
meaningful for whenever that status wears off). Tension will never be
perfect, but it can at least continue to be closer to usable for broader
purposes than Xom, one unrand, or Beogh.

(Additionally, to make it easier to assess these things on the regular,
I've added a wizmode command to just directly output tension (&N) rather
than having to run fulldebug and use something that checks tension in
order see such.)

--------------------------------------------------------------------------------
dbd929141c | regret-index | 2025-02-13 12:08:03 -0330

A handful of additional tiles
 * Human wanderlust mutation: ontoclasm's autoexplore command icon and
   CanofWorms's regeneration icons.
 * Demigod divine attributes mutation: ontoclasm's strength, dexterity,
   and intelligence ring item icons.
 * Djinn HP casting mutation: ontoclasm's Channel Magic invocation and
   CanofWorms's mana link mutation icon.
 * Demonspawn demonic guardian level 1, Summon Minor Demon: Ontoclasm's
   Call Imp and Summon Demon icons (adjusted to make it not a palette
   swap of Call Imp, also to de-emphasize wings when many 5s have no
   wings.)
 * Launch Bomblet vfx: Ontoclasm's Hurl Damnation icon and the edit of
   ChrisBlue's CC0 bomblets.

--------------------------------------------------------------------------------
f4c381edbf | regret-index | 2025-02-13 05:21:06 -0330

Make (glowing orange) brains unblindable
While blind resistance is relatively arbitrary in a number of cases, (do
deep trolls use some sort of heat sense? can an early random hound really
perfectly smell out the presence of a ghost enough to avoid its stabs?),
the usage of jellies as creatures without eyes being unblindable somewhat
reasonably extends towards floating disembodied brains managing to do the
same, and it'd miss the organelle / weird magic flavour to give a floating
brains explicit eyes anyway.

--------------------------------------------------------------------------------
036c31cd67 | regret-index | 2025-02-13 05:08:53 -0330

Remove deep dwarf dummy monsters
They're not actually placed in any species vaults except as flavour in
unanimated skeleton forms, for the time between the removal of deep
dwarves and the revival of mountain dwarves. Since the latter has been
evidently successful, we can just use the dwarves that at least appear in
playable and unique forms in the game instead of dwarves that don't
(especially when "deep" manages to include "d:1"). It'll save another
glyph-colour combination for other potential work, if nothing else....

(XXX: Probably we shouldn't append "removed" to skeleton items of removed
monsters? This seems like a long-standing weirdness in general, at least.)

--------------------------------------------------------------------------------
853641c8f9 | Flugkiller | 2025-02-12 21:56:21 -0330

feat: penance title for players abandoning with an invo title (DracoOmega)
Make it so that whenever a theist player would abandon their god while
having an invocations title, they would gain the penance title for as
long as their wrath lasts.

For flavor reasons, this woud be an appropriate way to make these
titles available in game, as most of them are currently unobtainable.

[Committer's note: fixed intentation, renamed a function for clarity.]

--------------------------------------------------------------------------------
9c2e5f8391 | mumra | 2025-02-11 02:30:47 +0000

Fix teleport closets and connectivity in numerous vaults
This is a first pass using scripts/placement.lua to track down closets
and other connectivity problems in vaults.

Initially began after a report by Darby on Discord regarding
wad_woods_river_04 and turned into a rabbit hole once I discovered
the script.

This first batch covered only about 1/5th of the vaults, but this script
should probably be added to CI once everything is passing.

In most cases these were very simple mistakes in the vault definition,
in some other cases involving more convoluted substitutions a reasonable
fix was harder to find. In several instances vaults simply had to be
added to the list of exceptions in placement.lua, for reasons explained
there (perhaps a new tag should be added to the vault definitions
instead, but for now the list is not too bad.)

--------------------------------------------------------------------------------
30d10493ae | wheals | 2025-02-09 02:07:55 +0200

checkwhite

--------------------------------------------------------------------------------
2b6df3989f | wheals | 2025-02-09 01:51:24 +0200

MSVC: final fixes

--------------------------------------------------------------------------------
4482402deb | wheals | 2025-02-09 00:59:17 +0200

MSVC: Remove unnecessary macros

--------------------------------------------------------------------------------
a22baf0345 | wheals | 2025-02-09 00:32:43 +0200

C4804/C4805: unsafe use of bool

--------------------------------------------------------------------------------
0e0c79de7c | wheals | 2025-02-09 00:29:32 +0200

MSVC C4717: infinite recursion (see also: C4717)

--------------------------------------------------------------------------------
bb62f359f3 | wheals | 2025-02-09 00:24:42 +0200

MSVC C4715: not all controls paths return a value

--------------------------------------------------------------------------------
56396f341d | wheals | 2025-02-09 00:18:48 +0200

MSVC C4305: truncation from double to float

--------------------------------------------------------------------------------
4e7ccd4116 | wheals | 2025-02-09 00:18:14 +0200

MSVC C4101: unreferenced local variable

--------------------------------------------------------------------------------
df013bed80 | wheals | 2025-02-08 20:34:59 +0200

MSVC C4068: unknown pragma

--------------------------------------------------------------------------------
6c93a2eff1 | wheals | 2025-02-08 20:28:43 +0200

Remove several shims for MSVC

--------------------------------------------------------------------------------
e8e03e5234 | wheals | 2025-02-08 19:23:04 +0200

MSVC warning C4018

--------------------------------------------------------------------------------
83f57b3437 | wheals | 2025-02-08 19:05:54 +0200

Remove a sad and lonely function

--------------------------------------------------------------------------------
ae123b17cc | wheals | 2025-02-08 18:58:37 +0200

Fix warning C4003: not enough arguments for function-like macro invocation

--------------------------------------------------------------------------------
503d60fff3 | DracoOmega | 2025-02-07 21:07:47 -0330

Fix HP scaling when entering/exiting talisman forms (CanOfWorms)
When the player's max HP is adjusted by changing form via talisman, their
current HP is supposed to be left alone. This is to discourage things such
as shifting into a form with -90% max hp and then immediately leaving it
for a big heal.

But the logic for this was subtly broken by 2dbd7c1 which changed which
point in the complicated transformation sequence the player's 'default
form' was set - resulting in the code thinking you were merely returning to
that form after polymorph (which *is* supposed to scale your HP, so that
you get bonus HP from drinking !lig, for instance.)

But apparently, even in 0.32, this logic was partially broken. It was
possibly to instantly heal by shifting into an underskilled talisman, and
then directly into a talisman that you *did* have skill for (eg: beast
talisman).

Rather than rely on the finicky behavior of comparing current and default
form, HP scaling is now controlled by a new argument passed to
transformation functions, so that it should hopefully reliably happen where
we want it to, and not when we don't.

--------------------------------------------------------------------------------
a04295bf88 | David Lawrence Ramsey | 2025-02-07 12:17:52 -0600

Add a few more words to Crazy Yiuf's word list.

--------------------------------------------------------------------------------
a4bcbd7fdb | CipHuK | 2025-02-05 18:01:34 -0600

Add title for Oni with Forgecraft=27

--------------------------------------------------------------------------------
f07b35d43f | CipHuK | 2025-02-05 18:01:34 -0600

Add a "Yokozuna" title for UC=27 for Oni

--------------------------------------------------------------------------------
e0e89e2142 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Disable warning */ found outside of comment in the MSVC build
This warning isn't very helpful as all our uses of */ outside of a
comment are function arguments of the form `type */*name*/` which
couldn't appear in a multiline comment anyway as multiline comments
cannot be nested.

--------------------------------------------------------------------------------
c4a1124d71 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Fix libpng having the wrong library directory in the MSVC build
It had a library directory that was relative to the solution directory,
so when the build was changed from building it from the contribs
solution to building from the crawl-ref solution it ended up wrong.

--------------------------------------------------------------------------------
4c2dad739c | Isaac Clancy | 2025-02-05 11:51:02 +0200

Generate the tile info when building crawl with MSVC
We used to only rebuild the tile info when building the tilegen
project. However, this resulted in the tile info only being rebuilt
when the source files of the tilegen project changed and not when the
png files that make up the tiles etc changed. Building the tile info
also depends on rltiles/dc-unrand.txt which is generated when building
the crawl project.

--------------------------------------------------------------------------------
d1e7653d98 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Remove a reference to a section that doesn't exist in INSTALL.md
In the Visual Studio build instructions section of INSTALL.md there was
a reference to the getting-the-source section. However, this section
doesn't exist.

--------------------------------------------------------------------------------
9f70472dd7 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Give a better error in the MSVC build when missing a file
When running gen-all.py (which is run as part of the MSVC build), give
a readable error that shows up in Visual Studios error list when
missing an input file.

--------------------------------------------------------------------------------
a8f5c6886c | Isaac Clancy | 2025-02-05 11:51:02 +0200

Update the MSVC troubleshooting tips
Many of the tips referred to building the Contribs solution which is no
longer done.

--------------------------------------------------------------------------------
7188704608 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Generate species related data before use in the MSVC build
The files species-data.h and aptitudes.h were being used before they
were generated in gen-all.py

--------------------------------------------------------------------------------
cd760e359c | Isaac Clancy | 2025-02-05 11:51:02 +0200

Update the tested windows versions in INSTALL.md
It now says that the MSVC build was tested on windows 10 and 11, instead
of just windows 11

--------------------------------------------------------------------------------
1f88427f96 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Add missing dependency to the MSVC build

--------------------------------------------------------------------------------
1c20e33684 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Fix warning: ignoring unknown option '/arch:SSE'

--------------------------------------------------------------------------------
144e0c8bc2 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Fix option 'Gm' has been deprecated

--------------------------------------------------------------------------------
284a72a4f8 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Fix configure.py not handling compiler arguments

--------------------------------------------------------------------------------
8dc9acfdb9 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Generate the job headers in the MSVC build

--------------------------------------------------------------------------------
88bb7a16fa | Isaac Clancy | 2025-02-05 11:51:02 +0200

Don't require Windows Vista or later

--------------------------------------------------------------------------------
1ee772c2ef | Isaac Clancy | 2025-02-05 11:51:02 +0200

Fix generating mon-data.h in MSVC

--------------------------------------------------------------------------------
f87482f642 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Don't crash when closing the console on Windows

--------------------------------------------------------------------------------
e61d0eb7ff | Isaac Clancy | 2025-02-05 11:51:02 +0200

Remove the requirement to run gen-all.cmd when compiling with MSVC

--------------------------------------------------------------------------------
99d9e2d662 | Isaac Clancy | 2025-02-05 11:51:02 +0200

Fix MSVC doing full rebuilds on minor changes
config.h is included in the precompiled header (which all source files include) 
when building with MSVC so don't recreate it at the start of every build if its 
contents haven't changed.

--------------------------------------------------------------------------------
139a715e1b | Isaac Clancy | 2025-02-05 11:51:02 +0200

Add mon-aura.cc to the MSVC build

--------------------------------------------------------------------------------
d23d1e44ec | Isaac Clancy | 2025-02-05 11:51:02 +0200

Remove the requirement to build the contribs first in MSVC

--------------------------------------------------------------------------------
28b6147393 | Wizard Ike | 2025-02-05 11:51:02 +0200

Fix the MSVC build

--------------------------------------------------------------------------------
8e35882a37 | David Lawrence Ramsey | 2025-02-04 23:56:50 -0600

Fix indentation of staves entry.
It now matches the indentation of the other entries.

--------------------------------------------------------------------------------
819cd40f79 | David Lawrence Ramsey | 2025-02-03 11:08:40 -0600

Add another name to artefact jewellery.

--------------------------------------------------------------------------------
6e8ebd26cc | David Lawrence Ramsey | 2025-02-02 18:00:38 -0600

Add another vice name to artefacts.

--------------------------------------------------------------------------------
11f0fbb8a0 | Cgettys | 2025-02-02 18:01:02 -0330

style: fix a few warnings
Fixes #4262
* Removes unused fields where it make sense
* In the case of targeter_wall_arc, put it back into use (and move where the 
hard-coded value is)
* Also fixes one other warning that only occurs in debug-lite or release 
configurations

--------------------------------------------------------------------------------
d7ebb852bb | Isaac Clancy | 2025-02-01 22:03:27 -0600

Don't freeze corpses that have been turned to gold
When you killed a monster with the white draconians breath ability while
worshipping Gozag, you would get a message saying it shattered and
turned to gold but you would get a block of ice and no gold. Fix this by
not freezing a monsters corpse if it has been turned to gold.

Fixes #4185

--------------------------------------------------------------------------------
10f033e6c0 | Isaac Clancy | 2025-02-01 21:56:44 -0600

Fix foxfire swarm using the wrong tile and power
The foxfire swarm ability was creating foxfire with a power of
GOD_NO_GOD (0) instead of 20 and marshlight set to 20 instead of its
default value of false.

--------------------------------------------------------------------------------
d4473f9b22 | David Lawrence Ramsey | 2025-02-01 21:49:04 -0600

Fix comment punctuation.

--------------------------------------------------------------------------------
20553fcd9c | David Lawrence Ramsey | 2025-02-01 21:48:36 -0600

Fix agrid checks when a monster's soul is bound.
Use the same logic as in 5402c8831a8110ceab99db8b4897b0e08906509a.

--------------------------------------------------------------------------------
5402c8831a | Isaac Clancy | 2025-02-01 21:43:42 -0600

Fix always invalidating the area grid when a monster dies
We were checking if the radius of any of the monster's halo, umbra or
silence were not equal to zero. However, they have a radius of -1 when
they don't exist.

--------------------------------------------------------------------------------
5e9c716987 | David Lawrence Ramsey | 2025-02-01 21:29:24 -0600

Mark the Skull of Zonguldrok as evil.
The reaping brand for weapons is evil, so the reaping brand on an
offhand item should be too.

Closes #4286.

--------------------------------------------------------------------------------
6b1dbc9ee3 | LiciTheCrawler | 2025-01-31 14:50:51 -0600

Fix: Reorder Forgewright startng items
Reorders the starting items to be consistent with other backgrounds
with a simillar kit.

--------------------------------------------------------------------------------
59c2f4dbea | mumra | 2025-01-31 18:53:50 +0000

Remove a very outdated Gozag shops comment
It appears since c8711a1 it hasn't been true that serial_shops is used
by Gozag code. Prior to that it was the case that Gozag would only call
merchants to branches that already allowed random shops, so the comment
is long redundant now.

--------------------------------------------------------------------------------
cb9a0bf236 | Nikolai Lavsky | 2025-01-31 16:10:16 +0300

fix: actually take note when the player is vexed
The logic check was inverted, as we need a non-zero duration there.

--------------------------------------------------------------------------------
62b7471ca3 | Hellmonk | 2025-01-28 22:29:07 -0600

Zot vault updates (#4271)

--------------------------------------------------------------------------------
5b60755d71 | dependabot[bot] | 2025-01-28 19:14:41 -0600

Bump virtualenv in /crawl-ref/source/webserver/requirements
Bumps [virtualenv](https://github.com/pypa/virtualenv) from 20.25.1 to 20.26.6.
- [Release notes](https://github.com/pypa/virtualenv/releases)
- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pypa/virtualenv/compare/20.25.1...20.26.6)

---
updated-dependencies:
- dependency-name: virtualenv
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
--------------------------------------------------------------------------------
511808601d | Cgettys | 2025-01-27 11:16:37 -0600

ci: Generate docs in CI and publish to GitHub Pages
* Generate Lua docs with ldoc
* Generate FAQ.html with make docs
* When on master, publish generated artifact to GitHub Pages
* Add a very rudimentary index.html to serve as landing page
* Once merged, https://crawl.github.io/crawl/ should show the new index.html
* With working links to FAQ.html and lua/index.html :)

One less task to do manually :)

--------------------------------------------------------------------------------
c9bed652d4 | Kyle Rawlins | 2025-01-27 07:46:30 -0500

fix: maybe fix a crash in stale pid handling code

--------------------------------------------------------------------------------
13cf12185f | Implojin | 2025-01-26 09:40:45 -0600

Rename doubled vigour to doubled health (CarefulOdds)
The description here was flowery enough that players were uncertain
about precisely what effects doubled vigour had, and it also wasn't
possible to look this up on the ?/t status menu, because that's only
setup to search for *player* statuses. As this effect simply doubles
HP, it should be okay for us to lose the xv prose alluding to other
possible effects here, and instead just say that it doubles health.

--------------------------------------------------------------------------------
2b3b4944bb | DracoOmega | 2025-01-24 12:07:17 -0330

Simplify a clua stab tier function
We already encode this information directly in monster info flags, so
check those instead of essentially reimplementing their logic.

--------------------------------------------------------------------------------
61249f3da4 | DracoOmega | 2025-01-24 12:06:24 -0330

Reduce redundant messages when examining wandering monsters
We don't need to say that they're unaware of you, not looking at you, *and*
wandering. (The recent refactoring seems to have resulted in saying more
of these at once; this should dial it back to just 'wandering, not aware of
you')

--------------------------------------------------------------------------------
c6a1a9b5a5 | DracoOmega | 2025-01-24 12:05:16 -0330

Fix new confusion/unaware icons not rendering in webtiles (Kab)
You'd think I'd stop forgetting this so often by now....

--------------------------------------------------------------------------------
5f9c754f44 | DracoOmega | 2025-01-24 08:18:28 -0330

Give confusion its own icon, refactor some stab-tier related code
Using the same white question mark for Confusion and also for a monster
merely not having yet notice the player (as well as a host of other things)
caused recurring, well, confusion, in players. While this icon was
*technically* indicating that low-tier stabs were possible, this meaning
was opaque to most players (and confusion is a much more significant
status than being distracted).

-Confusion now gets a yellow question mark instead
-Distracted, unaware, and unable to see an invisible player retain their
 old white question mark
-Nets, petrifying, and blindness no longer display an additional icon
 (since they already displayed an icon which fully implied the latter)

I also refactored several methods related to stabbing checks (removing, for
instance, some old support for calculating stabbing tiers *by* monsters,
as well as renaming confusing things like mons_looks_distracted and
MB_DISTRACTED, neither of which meant that a monster would be described as
distracted.)

I also added a new stab_type, STAB_BLIND to differentiate invis stabs from
blindness stabs in action counts in dumps, since grouping them together was
misleading in this context (ie: the only context most of these types are
used.)

Finally, some hints mode code that used the refactored code has been
adjusted, fixing some bugs in the process:
 -Monsters will no longer be described as 'unusual' just because they are
  asleep or friendly. (This message has been repurposed to explain the
  'unusual item' hilight instead.)
 -Monsters will no longer be described as having 'not noticed you yet'
  because they're paralyzed.
 -Turning off console stab hilighting no longer removes messages
  about sleeping monsters.
 -Since sleeping monsters are no longer automatically considered
  'interesting', I have loosened the danger tier required for this from
  nasty to tough.

--------------------------------------------------------------------------------
5d0df7669e | DracoOmega | 2025-01-24 08:18:21 -0330

Fix wand charges not always displaying for held wands in local tiles
(I am not quite sure how a wand without ISFLAG_IDENTIFIED ended up in the
player's inventory, but generally the flag should not be checked directly
anyway, since it ignores type knowledge.)

--------------------------------------------------------------------------------
9dea29b9c6 | DracoOmega | 2025-01-24 08:18:14 -0330

Fix dancing weapons made by Tukima's Dance being abjurable (regret-index)
Among other things, this made them produce wrong/confusing death messages
about disappearing in puffs of smoke (even though they're right there on
the ground).

--------------------------------------------------------------------------------
f901164d30 | DracoOmega | 2025-01-24 08:18:07 -0330

Fix !lig turning flight items off (Ge0FF)
Tree form suppresses flight while active, and it suppressed it *so hard*
that it wasn't even possible to see that a flight item was equipped on the
player. But player::airborne() already accounts for tree form independently
so there seems no need of equip_flight() also doing so.

--------------------------------------------------------------------------------
7f59f0ee2d | DracoOmega | 2025-01-24 08:18:01 -0330

Update artprops when swapping between talismans of same type (Ogregutan)

--------------------------------------------------------------------------------
599c4360dd | Cgettys | 2025-01-24 04:31:06 -0600

fix: overflow of overlays with Qazlal's Disaster area (prawnwizard)
In rare cases, you can exceed the 20 overlay limit.

Primarily due to duplicate overlays. This leads to a crash.

To fix this:
* Deduplicate all overlays, not just the most recent
* Reduce overlay cap to 16 instead of 20 for vectorization reasons
* Make packed_cell fit into 196 bytes, because why not + cache alignment
* Make add_overlay an instance method for convenience

Modern clang versions auto-vectorize and unroll this std::find nicely.
GCC doesn't do quite as well, but at least clones/unrolls it
4 wide. We'll see if it's a win or not.

--------------------------------------------------------------------------------
b9f7a0f2ca | gammafunk | 2025-01-23 23:57:43 -0600

Fix a passed argument in a dungeon lua function
The function dgn.monster_weapon() passed an incorrectly named variable
to dgn.random_item_def() since bcfb333f. This means that various vaults
using dgn.monster_weapon() to give weapons to monsters didn't get
additional arguments applied (usually related to better item quality).

--------------------------------------------------------------------------------
eca436ef18 | regret-index | 2025-01-23 00:01:04 -0330

Tweak descriptions for scrolls and symbols of torment
Both mention that they only affect living creatures, despite also
affecting holy creatures for dozens of versions. Alongside updating both
of these to mention it, I'm mentioning rN partially resists it in the
spell description, since we somehow list this next to nowhere in-game.

(TODO: We could probably really do with somebody going through all the
busywork to explicitly flag every single spell in spl-data.h by the
resists they check, alongside caring about AC and EV and SH, then just
display this as a new line when examining specific spells. Having to list
it in the description for every electric spell, many Ice-but-not-"cold"
spells, and magma is already pretty ponderous, and the many newer
cross-school spells of 0.32 / 0.33 have exacerbated this matter.)

--------------------------------------------------------------------------------
faf1176e91 | regret-index | 2025-01-22 23:31:09 -0330

Follow-up tweaks to semi-/recent commits
 * c898128 forgot to make the new airstrike vfx alternate amongst each of
   their given potential tiles; this fix also comes with adding another
   tile to the weakest so they all can reasonably vary.

 * 60181c1 forgot to remove the redundant web_immune tag from Dissolution
   when giving them the amorphous tag.

 * Sphinx marauders (6ac722a) are doing decently terrifyingly for
   themselves, but have shown to be a bit noticeably strong for their
   earliest appearance in late D. Their experience has been nudged up
   from ~1150 to ~1425, enough to make them always display as Lethal in
   threat (and red-outlined in tiles) until XL 17, and also they've been
   nudged down a little bit in the D out-of-depths list so that they're
   excluded from D:14 9s.

 * Tengu conjurers getting emergency Force Lance over emergency Blink in
   e136f0c was a reasonable concept to extend out their use of
   Battlesphere, made awkward by how emergency spells themselves are not
   greatly consistent on low-hp monsters in the first place. To make their
   display of it less confusing compared to other emergency-only spells
   mostly comprising of Blink or healing, they now get non-emergency
   access to it as well as an increased use of it in emergencies, similiar
   to how queen bee Berserk Other works out. Tengu conjurers aren't
   showing up as too particularly threatening statistically as a late D
   lightning bolt user or even compared to other tengu, so it shouldn't be
   much dangerous a nudge upwards.

--------------------------------------------------------------------------------
7aa09acf19 | regret-index | 2025-01-22 07:15:26 -0330

Simplify Trog wrath
Many god wrath designs are very antiquated due to god wrath being one of
the least prominent and least relevant systems within Crawl, existing in
the bulk of circumstances for discouragement or to be squashed by special
cases more than something to expect people to suffer through. While a
small number are singularly straightforward (Ash, Oka), the many different
older wraths list off various thematically appropriate effects held to
strange standards (like direct damage or status not checking for combat,
so they're just rested off unless the former directly kills the player).
Most of them moulder until something either intersects with it by accident
(like revisions to miscasts and stat damage) or happens to incidentally
overlap in threat and theme.

Trog's wrath famously includes quite a few vicious Brothers In Arms, to
make Berserkers leaving Trog quite difficult for a long while despite
being one of the more tempting gods to leave (learning spells, getting
given weapon gifts). It also features a lot of strange side-effects
focused on theme over relevance that all just get rested off or
uncontrollably kill a given blaspheming apostate:

 * Weakness, recently replacing mostly-irrelevant strength loss, still
   not actually checking whether or not any enemies are nearby;
 * Slowing, at least reasonably connected to Berserk, also very common
   between three other wraths and a small chance on all wraths;
 * Paralysis, no longer connected to Berserk since 0ac0241, shared
   with several other thematic wraths
 * Fireballs, meant to be physical and not magical despite there being
   no precedence or follow-up on this concept ever since, also sharing
   the same issues as other damage and non-combat status wraths.

All of these non-summon effects have been replaced with a combination of
two debuffs, applying both Weak and Vexed (f4f8fba). The latter effect
being nothing but attacking in place reasonably thematically and
mechanically invokes how Berserk focuses on doing the same while being
fairly worse, kept in check for even former Trog worshippers through the
presence of the former effect. Compared to prior, this checks for both
one's current health and a survivable band of tension (which has been
reasonably improved over the past few versions and prevents just
standing around early D enemies), rather than just triggering at random
while one travels or rests or sits in a closet. Since this is fairly
more dangerous than before, the summon wrath effect has been somewhat
mildly tweaked downward in level scaling.

This should hopefully all make it easier to explain the wrath, remove a
variety of bland repeated effects for something consistently iconically
terrifying, and also grant another home to the new Vex mechanic. Ideally
in the future other god wraths could be simplified with extant or future
mechanics (like crunching Beogh wrath down to apostles, Makhleb wrath
down to a Crucible visit, or Sif and Vehumet wrath down to implementing
various monster temporary-spell-statuses concepts).

(This also comes with adding Vex duration to run notes. We track paralysis
but not petrification in the notes, mostly due to the former's lethality
compared to the latter being diluted by basilisks; with the current homes
for the status being god wrath or a quite intimidating Shoals monster,
it seems reasonably closer to paralysis enough to also track.)

--------------------------------------------------------------------------------
c898128944 | regret-index | 2025-01-22 03:03:29 -0330

Handful of additional preliminary tiles
 * Sacrified eye: Ontoclasm's sacrifical dagger and a CC0 spell icon by
   frosty_rabbid.

 * Airstrike / Upheaval air vfx: Denzi's old air elemental tile.

 * Weaponless Pikel: Sastreii's current Pikel tile.

Also, properly enabled Hunting Call's spell icon as was accidentally not
enabled when added in 8f22220.

--------------------------------------------------------------------------------
76efb29fe3 | regret-index | 2025-01-21 05:57:29 -0330

Ever-incremental vault review
Worthy of note:

 * The weaker Snake ends have small numbers of tyrant's traps and
   archmage's traps placed in them, to further emphasize the branch's
   prominence of traps pushed up in 19588f4, to help differentiate the
   ends beyond more or less concentration of the same enemies, and to
   also hopefully even out the gaps between rune vaults there.

 * The small number of trove scroll options have been re-weighted, most
   noticeably giving out less torment or immolation scrolls in exchange
   for more ally scrolls and some poison scrolls. They also no longer
   give weapon or armour scrolls to Felids.

 * The Elf:2 hall of blades weapons code has been cleaned up a fair bit.

 * A small number of overflow vaults that could place before the minimum
   overflow altar depth of D:3 have been properly shoved further deeper.

 * A selection of severely-underperforming Depths and Zot vaults (ones
   with one kill or less in the past three versions) have been tweaked
   upwards in threat.

 * skrybe_chaotic_catacombs joins the nine other theme vaults set up to
   place on D:$ as a themed Depths entry vault.

--------------------------------------------------------------------------------
4fe8696770 | regret-index | 2025-01-21 05:57:28 -0330

Exclude new sphinxes from Bestow Arms
While they're meant to wear armour, they're not meant to wield any size
of weapons with any of many not-great options (lion paws, telekinetic
magic, prehensile hair, or a human's mouth). As such, I'm adjusting the
logic for Bestow Arms to skip over monsters that lack AT_HIT or
AT_WEAP_ONLY attacks (the two attack types that actually use a given
weapon), and adjusting both sphinxes' attack types to avoid using just
AT_HIT. (Possibly it'd be nice to have an AT_BATTER for battering with
wings for attacks like marauder AF_AIRSTRIKE, but I suspect many would
parse that as being hit with batter or a bat.)

--------------------------------------------------------------------------------
979fcb14f9 | Implojin | 2025-01-20 10:36:16 -0600

Update ploomutoo in the CREDITS
Thank you again for the batch of decor sprites in 76a730d507, they're
really quite nice!

--------------------------------------------------------------------------------
159b78985f | Isaac Clancy | 2025-01-20 01:57:13 -0600

Cast OTR with uppercase Z when all enemies resist poison (CrawlOdds)
When casting Olgreb's toxic radiance with no enemies in view, it would
give the message "You can't see any susceptible monsters within range!
(Use Z to cast anyway)". However, when casting with only poison
resistant and immune enemies in view, it would cast normally even though
it couldn't effect anything. Fix this inconsistency by also requiring
uppercase Z to cast with only poison reistant and immune enemies in
view.

This change also fixes a bug where monsters would always act as if they
could see invisibly even when they couldn't when deciding whether to
cast OTR.

Fixes #3957

--------------------------------------------------------------------------------
cd0d8a32dd | Implojin | 2025-01-20 01:33:37 -0600

Fix excluded feature annotations (Aliscans)
In particular, don't annotate excluded enterable shops and portals as
being staircases on ctrl+o.

Closes #4136

--------------------------------------------------------------------------------
dc80f5c099 | Aliscans | 2025-01-20 01:13:00 -0600

Automatically identify some obsolete items.
Add food and rods to the "always known" list in item_type_known(). This
restores some behaviour from before _full_ident_mask() was deleted, in
that you are no longer asked if you want to identify "removed food"
items.

--------------------------------------------------------------------------------
1cbb7ff58e | David Lawrence Ramsey | 2025-01-19 20:00:07 -0600

Make Sprint check for mutations, not species.
Instead of the Coglin and Felid species, check for the "no jewellery"
and "no weapons or thrown items" mutations in Fedhas' Mad Dash and Arena
of Blood, respectively.

--------------------------------------------------------------------------------
802b72d441 | David Lawrence Ramsey | 2025-01-18 22:23:16 -0600

Add a few Xom messages for fountains of eyes.

--------------------------------------------------------------------------------
d154b68b10 | regret-index | 2025-01-18 23:04:48 -0330

Tactile mutation icons (CanofWorms)
Demonspawn demonic touch and Jiyva disarming tendril mutation icons, to
be precise.

--------------------------------------------------------------------------------
e11c45b518 | regret-index | 2025-01-18 23:04:48 -0330

Properly grant more body armour to deep elf / high priest monsters
Deep elf spellcasting monsters have a strange chance to vary heavily in
body armour, ranging from none to chain mail and managing to leave out
the robes many elves visibly wear. This might be an antique relic from
when robes were far better than other light armour options or when
there were substantially more low-tier elves, but now that neither of
these are too pressingly true they're very conspicuous in their body
armour variance compared to most other monsters, with an eight-year old
comment pointing it out. (In particular, deep elf knights have tiles that
visually give them heavier armour than deep elf archers, yet the latter
consistently get leather compared to the former mostly having nothing on.)

This commit removes their chance for no armour, replacing it entirely with
robes, while also removing the highest AC roll of chain mail, which few
player deep elves are casting crystal spears in. Aside from hurting LRD a
little, this mostly shouldn't be of too much pressure considering only one
of them is at a point where a robe's ac would noticeably mean much
(pyromancers).

(In the same capacity, with no Beogh provisions of high priests any more,
they can also use a mild nudge up to have the same offerings instead of
mostly wearing nothing. The plain orcs and plain orc priests don't get
this change, however, since they're early enough that the robes would
actually make a meaningful difference, and since the rare chance to get
chain mail is of at least some interest for very early game characters.)

--------------------------------------------------------------------------------
379047849a | David Lawrence Ramsey | 2025-01-18 20:18:23 -0600

Fix an ellipsis at the end of a sentence.

--------------------------------------------------------------------------------
4d2cd2bd01 | David Lawrence Ramsey | 2025-01-18 19:20:56 -0600

Revert "Fix inconsistent ellipses."
This reverts commit a9c169229f9d7a1da6d0bd631e69a7ca024eb047.

--------------------------------------------------------------------------------
289bc3cdf1 | David Lawrence Ramsey | 2025-01-18 18:22:33 -0600

Add Zonguldrok messaging for unrand hats.
Currently, the only one with special messaging is the hat of Pondering,
but the mechanism is in place to add more.

--------------------------------------------------------------------------------
a9c169229f | David Lawrence Ramsey | 2025-01-18 18:22:13 -0600

Fix inconsistent ellipses.

--------------------------------------------------------------------------------
dcb3d5a981 | Hellmonk | 2025-01-18 10:30:12 -0600

don't spawn 500 randarts in hall_of_zot

--------------------------------------------------------------------------------
bf5a252ee1 | David Lawrence Ramsey | 2025-01-18 08:58:48 -0600

Fix comment typo.

--------------------------------------------------------------------------------
6ac722a880 | regret-index | 2025-01-18 04:00:58 -0330

Split sphinxes into earlier marauders and later guardians
Sphinxes are rather weird for their very broad uses throughout the game.
They're out-of-depth highlight threats in post-Lair D, bosses for one end
vault for Shoals, a mostly mid-tier monster in the later reaches of Vaults
and Depths, flavour monsters in Crypt, and a fixed cluster of threats at
the start of Tomb. They work fine at their far ends here, but serve for
weird encounters throughout midgame and lategame, since they've been
fairly power-crept compared to brains and liches and earthen tomes as
hexes monsters. Altogether, this leaves them in an awkward state, as
their placement regularly presume they're more of high-tier threats in
their deployment places despite placing across most of the game.

This split, compared to the arcanist / occultist split of 129f0b0, isn't
really meant to reduce the presence of any particular gimmick (though
it does lower early paralysis a tiny bit). What this is instead meant to
do is let both uses of the monster being effectively scary while
broadening a little bit of themes and flavour for Shoals, a debuff-focused
branch that struggles with more enemy archetype flavour variety beyond
dozens of merfolk leading other mostly-human hybrids plus monsters
borrowed from other places entirely (whether appropriately thematic, as
with original sphinxes and titans, or deeply reaching, like angels and
deep elves). While the branch has a lot of Will checking effects, for the
most part swapping in more Willpower is a luxury of less annoyance
compared to encountering 1 (one) fenstrider witch in the opposite branch;
this should hopefully make the resist be worth considering for Shoals,
especially when the new hex works nastily with common reaching monsters...

 * Sphinx marauders are the earlier-game and newer of the two sphinxes,
   and are flavoured more around the bloodthirsty sphinx of Mount Phicium.
   They have AF_AIRSTRIKE (see abc8f7a), an incidental cast rate for
   Confuse, and the parent commit's somewhat terrifying Vex status. Both
   hexes prevent the player from making it to safer ground to get away
   from relatively serious melee damage, but characters with ranged
   offenses can do more before the sphinx gets close, and characters with
   melee offenses are more fine with being stuck in place attacking. They
   appear in late D out-of-depths, rarely late in Shoals as top-tier
   threats with a chance of a duo of harpies (who have battiness to work
   with both major gimmicks), and in V:1-4 with a good chance of the other
   sphinx (to give V a little more to work with, and to make the other
   sphinx a little less common for its buff.)

 * Guardian sphinxes are the previous plain lategame "sphinx" monster,
   now more focused in flavour on the recurring grave/temple-guarding
   apotropaic variety of sphinx. They're granted a bit more to all stats-
   most noticeably, in HD, HP, and spell cast rate, so that they're more
   likely to succeed at hexing characters past the point where willpower
   swaps / main gear is common. They appear occasionally in V:1-4, at the
   current semi-regularity in Depths and in Crypt vaults, and in the
   the Tomb:1 main area entrance with a slight numbers decrease.

(Monstrous Menagerie gets a flat upgrade in access to guardian sphinxes,
as its position as a ranged monster summon doesn't particularly stand out
post-Forgecraft, nor is it particularly effective at raw damge nor
body-blocking compared to other high-level Summoning spells. The spell
could do with revisions at some point in the future. Kirke also doesn't
have much of a high killratio compared to other uniques in her depth
range like Nessos and Rupert and Urug, so she can also take the buff.
To emphasize them as being something more purposeful than just being
another random beast, and to help with some potential future plans,
both are equipped with not-visible-on-their-tile cloaks as draconian
classes have been using for many years.)

The guardian sphinx tile is mostly just an edit of the current base sphinx
tile by Denzi to have darker skin and golden accessories. The sphinx
marauder tile mixes in said sphinx tile both roctavian's human Erica tile
and a CC0 wing icon by frosty_rabbid.

--------------------------------------------------------------------------------
f4f8fbaca6 | DracoOmega | 2025-01-18 03:44:08 -0330

New status effect: Vexed
Intended as a 'less dangerous' variant on paralysis, this status effect
causes the target to uncontrollably attack nearby spaces for the next
several turns. They are 7 times more likely to attack spaces with
creatures in them (but can still attack empty spaces) and do not suffer
any defensive penalties during this, but cannot do anything else.
(Naturally, this is blocked by having Clarity.)

If the player has a bunch of enemies near them that they were planning to
stay and fight anyway, this is probably not so bad for you. But sometimes,
of course, it can be a real problem.

Note: you *can* attack your allies this way (and they can attack you), but
gods will not penance you for this. Summons will still go poof, though!

This is intended for Index's upcoming sphinx mauraders (and possible a
couple other places, eventually).

[Index's notes: The status icon was made from Purge's old berserk status
icon, and the spell icon was made from Sastreii's meatsprint destroyers.]

--------------------------------------------------------------------------------
12f01c111f | DracoOmega | 2025-01-18 02:55:40 -0330

Refactor/unify immune to sleep/paralysis and blame handling
Sleep and paralysis now share the same immunity status (in preparation for
a 3rd disabling status that will likewise share it.)

In addition, blame tracking for paralysis and petrification is combined,
and sleep is added to this (so that it will now be possible, when a player
dies while asleep, to see whose fault it was - just as has been true for
paralysis and petrification for a while).

--------------------------------------------------------------------------------
13ce909368 | David Lawrence Ramsey | 2025-01-17 23:32:22 -0600

Improve reaping brand messaging.
_make_derived_undead() now allows overriding the default success and
failure messages (the "mist gathering" ones). Do this for kills using
the reaping brand, so that its messages are only displayed when monsters
are successfully spectralised (and visible to the player).

The failure message only applies to zero-headed hydras, which should be
impossible to get with a reaping brand, but it's in place just in case
a bladed weapon somehow gets both the flaming and reapling brands, or
otherwise non-reapable monsters of living holiness get added.

Fixes #4251.

--------------------------------------------------------------------------------
7bd0b9f747 | DracoOmega | 2025-01-17 17:00:01 -0330

Allowing wearing multiple gloves of infusion to stack (Lici)

--------------------------------------------------------------------------------
f0ed78e9a4 | DracoOmega | 2025-01-17 17:00:01 -0330

Fix a crash with upgrading an old save that was wielding a non-weapon
When putting their old equipment into new slots, the code would be quite
unhappy about trying to figure out what slot a potion or scroll belonged
in (since the answer was 'none of them').

It should now just silently unequip it.

--------------------------------------------------------------------------------
40307037ee | DracoOmega | 2025-01-17 17:00:01 -0330

Fix claws not working while *not* wearing gloves (Inkie)
The logic check was essentially inverted, giving you the bonus while
*wearing* gloves (but still preventing gloves at level 3)

--------------------------------------------------------------------------------
5d708c21f5 | DracoOmega | 2025-01-17 17:00:01 -0330

Hilight active talisman as 'equipped' in local tiles inventory
(And as 'melded' if you are polymorphed into something else while using
it.)

--------------------------------------------------------------------------------
42a8017c8a | DracoOmega | 2025-01-17 17:00:01 -0330

Fix talisman artprops being active in hostile polymorphed forms
If the player had transformed using an artefact talisman, and then was
polymorphed by a monster, they would incorrectly retain the talisman
artprops in that form.

--------------------------------------------------------------------------------
9d3b6016f6 | DracoOmega | 2025-01-17 17:00:01 -0330

Fix talisman artprops not applying if no gear was (un)melded (Bamboolord)
The artprop cache wasn't being updated when you changed form, if that
change didn't actually affect any of your non-talisman equipment.

(It would still be corrected again if you subsequently changed any gear,
or saved/loaded, left the floor, etc.)

--------------------------------------------------------------------------------
3a106aa490 | DracoOmega | 2025-01-17 17:00:01 -0330

Fix a crash with mummy death curses hitting other monsters
(I *think* the other effects do not fire behavior effects and are thus
safe. I would have excluded passing the dead mummy agent against a monster
victim entirely if not for the fact that this would probably also mess up
XP attribution for the player in some cases.)

--------------------------------------------------------------------------------
73d441481e | DracoOmega | 2025-01-17 17:00:01 -0330

Don't use split columns for list jewellery if an item is too long
Possibly it should be truncated instead, but I'm not exactly sure how
useful this command even is if it cuts off half the artprops of a ring.

--------------------------------------------------------------------------------
574e4ebf17 | DracoOmega | 2025-01-17 17:00:00 -0330

Fix a crash with " (list jewellery) on octopode on a narrow window

--------------------------------------------------------------------------------
19588f4062 | regret-index | 2025-01-16 19:30:59 -0330

Initial distribution of the new trap quartet
Alongside the previous commits each placing traps naturally, this also
handles and tweaks a fair number of vaults and branches. Most worthy of
note:

 * The Zot:5 entrance traps have been reworked, removing the chance for
   both corridors to be completely blocked off by traps. 25% of the time,
   one corridor will be blocked off by at least one trap, while the other
   will be traversible but have two of the newer traps lining the entrance
   and exit. This is meant to still punish standing in the corridor as
   a chokepoint or retreating repeatedly through it, but also allow
   reasonably consistently moving through the path compared to the
   teleport or dispersal options, plus add a little more variety compared
   to before.

 * Tomb's traps have been diluted a little with tyrant's traps and
   marginally less traps placed overall. If we get more traps in the
   same buff / debuff veins as prior, then more probably should be
   deployed in the branch- the power creep has been rather excessive
   for the branch due to the binary nature of relying on torment.

 * Snake and Vaults both now have a slightly higher natural-spawns trap
   count, now that they have weaker traps to work with: Snake gets a
   flat +2 per floor, and Vaults gets +1. As has been mentioned in
   previous trap addition commits, both of these branches need more to
   stand out with on variety and fanciness levels compared to other
   branches near them; there is also zero guarantee these traps will
   end up anywhere near monsters or vaults anyway.

 * The two bailies with the worst kill statistics in the current stable
   and trunk versions (bailey_axe_4 and bailey_polearm_nasty_gnolls)
   both get tyrant's traps in them to both buff them and have a little bit
   of an earlygame introduction to later trap mechanics.

 * A small number of abyssal rune vaults with the worst kill statistics in
   current and trunk versions, as well as several underperforming Abyss
   vaults that can appear outside of the Abyss, now have harlequin's traps
   and devourer's traps, for both connecting more flavour together and
   helping said vaults along.

 * To emphasize wizlabs having more prominent and fancy gimmicks,
   Alistair's Party Mansion now gets harlequin traps, and Yara's Duelist
   Academy gets archmage's traps, both far away from their given layout's
   original bosses.

For the most part, these flavour-focused traps either should rely on
direct connections to gods, spells, or unrands appropriate to a branch
(e.g. archmage's traps for Vehumet vaults with several branch-sourced
spellcasters), or the branch placements already established in the
random_trap_for_place() function. The main exceptions are late D (where
there still should be some caution in throwing around too many of
these), Zot, and Ziggurats.

--------------------------------------------------------------------------------
b98e54cbae | regret-index | 2025-01-16 19:30:59 -0330

New trap: devourer's trap, corroding players
This trap is a very-delayed follow-up to b65a573 producing the very strange
flavour of monsters praying to Lugonu to corrode their foes, while the
Abyss contains minimal corrosion and Lugonu contains zero corrosion
abilities. As such, this trap contains the most obviously divergent
flavour of any of the traps: the description mentions the stomaches of
unseen extradimensional beasts, akin to the tentacles of a tainted
otherworld like Malign Gateway creates (and keeping some space open for the
finishing of PR #3775).

This rather abstract trap corrodes the player (with normal rCorr
checks) 2/3 times it's stepped on. While a couple of branches
successfully deploy corrosive effects (entropy weavers in Spider, Slime,
Dis), the effect is relatively rare enough it can spare a bit more
broader usage. It's not the most exciting effect (neither using a new
buff like harlequin's traps nor combining player debuffs and buffs like
tyrant's traps and archmage's traps), but the capacity to use more traps
in branches and vaults overall benefits from simple traps that still
meaningfully affect combat.

This trap rarely spawns naturally in Slime, Pandemonium, and will be
placed in a number of Abyss vaults. Slime wants for more variety (even if
corrosion is pretty common already) and further obfuscates the origins
of Jiyva's invasion (hi, starry gem), the Abyss has its aforementioned
connection to corrupters, and Pandemonium is connected to the Abyss
as well as also being in need of more differentiating variety in its
infinite length.

The tile was composited from CC0 spell icons by 7Soul1 and Denzi's old
Warp Weapon spell icon.

--------------------------------------------------------------------------------
4b739738c5 | regret-index | 2025-01-16 19:30:48 -0330

New trap: harlequin's trap, granting AF_CHAOS to monsters
With the reworks to chaos starting from 196b491 onwards, chaos effects
are safe enough to deploy in broader circumstances. With a multitude of
renewed and flavourful chaotic gods to lean on these days, a trap that
can be used in their vaults and which isn't reliant on weapon wielding
can reasonably distribute this in a novel fashion compared to the limted
ways chaos is currently deployed.

These harlequin's traps only have effects if monsters are in sight, and
grant 20 to 28 turns of a new chaos-wreathed status to two or three
highest-HD non-holy monsters in sight of the trap without the status
(or innate chaotic attacks). This works somewhat like the Ignis wrath
flame-wreathed status in replacing the attack flavour of a monster's
first attack, except with AF_CHAOTIC instead of AF_FIRE, and no damage
or speed buffs. (It thus stacks with monster melee weapons, but not
ranged weapons). It should provide an interesting variation of the
common use of Might throughout the game in letting monsters try to
apply debuffs or harder-to-resist damage in melee, and also provide a
more novel rare sight amongst the various other trap mechanics added
in this commit batch.

This trap rarely spawns naturally in the Depths, Zot, and Pandemonium.
Zot has some of the strongest chaotic monsters in the game (proteans /
klowns / orbs of fire / Tiamat), Pandemonium has its lords, and Depths
is close to both while benefitting from a little more explicit
connective tissue in its own burgeoning fae flavour. The performance
flavour for chaos hopefully will also help lead a little more into the
sudden appearance of klowns before their appearance in Zot, while
reasonably still feeling somewhat traditional in fantasy thematics; Xom
certainly would approve, anyway.

The hopefully-eye-catchingly animated tile was composited from CC0 spell
icons by 7Soul1 and the old deck item tiles by ontoclasm.

--------------------------------------------------------------------------------
81da222250 | regret-index | 2025-01-16 19:30:47 -0330

New trap: archmage's trap, draining player mp + granting brilliance
The natural follow-up to a melee-focused trap is a magic-focused trap.
These mystic traps steal from the player's magic (by draining 33% of one's
current mp) to grant Brilliance to two or three strongest hostile
spellcasters without Brilliance in the trap's sight (i.e. 20-28 turns of
casting spells more often with higher effective HD). Draining mp affects
both spellcasters and a large number of invocations, while brilliance for
the right monsters should be reasonably dangerous.

(This doesn't preclude the usage of mp drain on Zot traps, as it is
only a portion of one's mp reliably versus Zot traps draining all of
one's mp on a rare basis.)

This trap spawns in Snake, Elf, and Depths naturally. Snake continues to
need more differentiation as a Lair branch, it heavily suits the flavour
of Elf and helps the branch a little more past its large vault dependence,
and Depths is one of the most magical branches in the game between the
fae, the magic giants and flighty animals, and literal walking spellbooks
even before all the various other wizards in it, helping more with the V
versus Depths split.

The tile was composited from CC0 spell icons by 7Soul1.

nerf archmage traps

--------------------------------------------------------------------------------
bcc7e3493b | regret-index | 2025-01-16 19:30:30 -0330

New trap: tyrant's trap, weakening players + mighting monsters
With the steady removal of mechanical / direct damage traps, there have
been strange consequences as well as large amounts of design space both
opened up by the lack of weaker trap types. The orb chamber's double-trap
arrangement can lead to fiddly, tedious tactics at what is meant to be the
climax of the game, Tomb has continued to creep more steadily upwards in
threat due to its extreme reliance on torment, and vaults can't establish
a place as fortified without jumping straight to alarm and net traps at
minimum (incidentally losing most of the original Ossuary gimmick).

As such, I'm starting up a set of weaker traps, aimed both at helping out
these cases and providing more flexible + tangible flavour for both vaults
and given branches than The Power of Zot or translocations or infinite
net machines. They will still follow the same current paradigm as Zot and
alarm traps, where players and hostiles alike walking onto a trap hurls an
effect at the player, to help keep the nature of traps straightforward
enough to easily learn.

Tyrant's traps are for militaristic contexts. Whenever the player or a
hostile monster steps on the trap, it will steal from the player's melee
capabilities (by inflicting 10-14 turns of Weak, capped at 50) in order to
empower two or three highest-hd monsters in sight (by granting 20-28 turns
of Might). If there are no monsters in sight, the Weak is still applied.
(While this and other upcoming traps could mildly annoying to rest off if
there aren't any further monsters in sight, with pre-revealed traps it's
rare to need to activate traps to explore a floor, and when it does block
off a path it's nowhere near the annoyance dispersal and teleport traps
can invoke in the same capacity, so it should be a net reduction in
annoyance.) This swing should hopefully force melee-centric characters
to switch tactics, while still being relevant for other characters as
Might has shown to work throughout the game.

These traps rarely spawn naturally in Orc, Snake, and Vaults. Orc could
do with more unique components beyond the orcs regularly used elsewhere,
Snake struggles in terms of variety and distinction versus the other Lair
branches (plus it contains both status effects already), and V needs
more thematic aspects to help establish it as an organized branch
versus the Depths shortly after it. Each of these traps will come with a
slight decrease for shafts (which are now mostly helpful for players in
the actually visible form) and dispersal traps (which are roughly
comparable in helping monsters and hurting the player on a short-term
basis).

(The messaging is kind of weird- I'm not super happy with my options, but
"constitution" reads as max hp drain and "power" is used regularly for mp.
With no actual statdrain in the game anymore as of de20453, hopefully
people will notice the Weak status being gained instead of expecting
actual lost "strength".)

The tile was composited from CC0 level block scraps by Surt and Bloax's
original tentacled monstrosity tile.

--------------------------------------------------------------------------------
64b092adc6 | DracoOmega | 2025-01-16 11:18:25 -0330

Fix Justicar's Regalia having the wrong word in its inscription (Ge0FF)
(I had originally debated between the two, but evidently forgot to change
one when I changed the other.)

--------------------------------------------------------------------------------
c71af56701 | Nikolai Lavsky | 2025-01-16 16:00:41 +0300

fix: pluralize "Oni" as "Oni"

--------------------------------------------------------------------------------
0e3914b0de | Nikolai Lavsky | 2025-01-16 15:36:17 +0300

fix: don't show moonshine potions on the action panel
since even Oni can't drink that.

--------------------------------------------------------------------------------
8ce5bd8831 | DracoOmega | 2025-01-16 00:08:53 -0330

Fix Ash ignoring Coglin's offhand slot for piety purposes (GnomeSayin)

--------------------------------------------------------------------------------
f0d829a46a | DracoOmega | 2025-01-16 00:07:50 -0330

Don't claim that boots are too big for spriggan hands
Or too small for troll ones, though perhaps the troll was just a little
confused about how to wear them.

--------------------------------------------------------------------------------
2d41d3628e | DracoOmega | 2025-01-16 00:07:01 -0330

Don't give spriggans boot and glove slots
They're little, not tiny.

(They couldn't put any armour that exist in the game *in* those slots, but
the UI would still claim they had them, and Ash would refuse to give them
full piety for binding a full set of equippable item.)

--------------------------------------------------------------------------------
3cb26d0658 | DracoOmega | 2025-01-15 18:48:26 -0330

Split 'unknown jewellery' on autopickup menu (ge0FF)
Now it shows 'unknown amulets' and 'unknown rings' instead (with each of
these toggling off just the relevant category instead of having to do both
at once).

--------------------------------------------------------------------------------
800c1ae1cb | DracoOmega | 2025-01-15 18:18:05 -0330

Don't allow [A]lways ignoring randarts for autopickup
Selecting [A] for a randart jewellery item currently causes autopickup to
turn off for all unidentified jewellery. But [A]lways has a poorly-defined
meaning for randart jewellery in the first place. While it is possible to
deduce the type of a randart amulet, it often is literally impossible to do
this for rings, so having [A]lways just disable autopickup for that subtype
would lead to very opaque behavior, even for experienced players.

Also: in most cases, it doesn't make *gameplay* sense for a player to
exclude all randarts of a given type, since their artprops can easily be
far more important and aren't predictable. You may not want to wear an
Amulet of the Acrobat, but how many people would consider that to mean they
also wanted to ignore {Acrobat, rF++ Int+8 Slay+5}?

So, this commit disables the [A]lways option when being prompted over
artefacts.

It *additionally* disables it for stacks of items, since it seems very
unlikely that one wants to disable type autopickup of a bunch of items at
once that just happen to be standing on the same spot. (And what would it
do if the stack contained both artefacts and non-artefacts?)

--------------------------------------------------------------------------------
eb6b0e9581 | DracoOmega | 2025-01-15 17:37:34 -0330

Get !T/!R/etc. working again, and document the general !u/!e inscriptions
It's arguable that we ought to just take the more specific ones out of the
manual entirely, but I've left them for now. (Surely a single 'Don't equip'
inscription is enough? Possibly a single 'Don't use' inscription also? But
I don't really use this functionality, so I don't feel like I know enough
about how people use it to barrel all over it.)

--------------------------------------------------------------------------------
4f3e835044 | DracoOmega | 2025-01-15 17:35:42 -0330

Restore {=R} to functionality
And document that it works on more than just jewellery now.

--------------------------------------------------------------------------------
86ebd2fb29 | DracoOmega | 2025-01-15 16:50:53 -0330

Fix some orbs not being properly marked as useless (ge0FF)

--------------------------------------------------------------------------------
2fa979db60 | DracoOmega | 2025-01-15 01:16:49 -0330

Rename some removed status effects for consistency
This does effectively nothing since their durations were set to 0 in the
commit that removed them, but I noticed that every other removed duration
was formatted this way....

--------------------------------------------------------------------------------
a79ed6c2ef | DracoOmega | 2025-01-15 01:16:49 -0330

Fix Awaken Armour only being castable while *not* wearing armour.
Except for the part where the spell would then abort because you weren't
wearing armour.

(A logic check got inverted after the equipment slot refactoring. Oops.)

--------------------------------------------------------------------------------
2e45f3495a | David Lawrence Ramsey | 2025-01-14 22:05:47 -0600

Fix missing punctuation in Awaken Armour message.

--------------------------------------------------------------------------------
23834c3785 | DracoOmega | 2025-01-14 19:44:23 -0330

Some tweaks to equip_slot_name for better backwards-compatibility with lua
The equip slot refactor changed the output of equip_slot_name largely for
visible UI reasons, without fully considering the effect on existing lua
scripts.

I have opted to return clua .subtype() to its old lower-cased output (and
even make body armour return "body" again.

The one persistant change is that bardings are still separate of boots (and
shields/orbs return 'offhand' rather than 'shield'), which I think is worth
breaking some backwards compatibility for.

I also updated the aux armour autopickup script in advanced_optioneering
to account for bardings.

--------------------------------------------------------------------------------
d2b01e6f85 | DracoOmega | 2025-01-14 19:18:44 -0330

Make gizmo egos work properly again
Accidentally broken by the fix to armour in 2e5bc60

I really would like to untangle some of this in future better than this...

--------------------------------------------------------------------------------
2e5bc604ec | Implojin | 2025-01-14 16:35:12 -0600

Hopefully let artefact brands work again (CarefulOdds)
As reported by various players, randart scarves of shadows and
resistance weren't properly applying their brand effects. This has
been a little difficult to test because generating these items in
wizmode or through item spec *did* properly set the brands -- we
needed to test against dungeon generated items, for item generation
weirdness reasons.

Hopefully this fix catches it; if not, we'll have to do some future
refactoring.

--------------------------------------------------------------------------------
b604e0db52 | Alex Beloi | 2025-01-14 05:07:59 -0600

Update add_autopickup_func to use capitalized subtype
The autopickup function is matching against the return from l_item_do_subtype, 
which is a wrapper around equip_slot_name, which in 2dbd7c1f was changed so 
that the strings are capitalized.



thanks to @lmplojin on discord for the pointer.
--------------------------------------------------------------------------------
6518f178e1 | Cgettys | 2025-01-14 04:14:01 -0600

Fix: white splash screen when OpenGL 3+ unavailable (Ge0ff)
I thought GL_TEXTURE_MIN_FILTER had the same value for both branches.

I thought incorrectly.

Fix it in the simplest possible way for now.
I'll clean this up more in a future PR.

Fixes bug introduced in #4217

Co-authored-by: Implojin <implosionwow@gmail.com>

--------------------------------------------------------------------------------
de7caedde6 | Cgettys | 2025-01-14 00:19:42 -0600

Remove GLU dependency
Avoid depending on deprecated GLU library by dynamically loading
OpenGL 3+ function glGenerateMipmap where available.
If it's not available, Where it's not, we just render without mipmapping.

Note that for a lot of resolution / rc setting / zoom level combos,
we don't mipmap anyway, and this PR doesn't change those cases at all.

Also note that OpenGL 3.0 was released in 2008.
glGenerateMipmap is available even on decade old GPUs and iGPUs as a result.
For players running truly ancient GPUs and systems that supported GLU,
but not OpenGL 3, and who happened to have just the right setup for us to
enable mipmapping, we will now render without it.

If anyone actually does turn out to be affected, they may be able to use
a version of llvmpipe that supports OpenGL 3+ as a software renderer.
llvmpipe is available on Linux and Unix-like systems.

Also note we could turn on mipmapping on GLES targets according to
https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glGenerateMipmap.xhtml.

This may be quite useful for low resolution screens, like older android phones.
But I'll leave that for a future commit.

--------------------------------------------------------------------------------
535f1cdcc7 | Implojin | 2025-01-13 22:53:22 -0600

Don't prevent item stacking based on differing inscriptions
Previously it was possible to end up with two separate stacks of
stackable items in your inventory you had inscribed each stack
differently prior to pickup.

This behavior appears to have been added out of an abundance of
caution in 4c5c3809de (2007). It seems unnecessary today; let's
remove it.

(Stackable items with conflicting inscriptions will now inherit the
inscription of the stack in your inventory when picked up, or the
pre-existing stack on the ground when being dropped.)

Fixes #4214

--------------------------------------------------------------------------------
af1eef3400 | Implojin | 2025-01-13 21:57:28 -0600

Always identify a couple more base item types
As a followup from 9e0d956b5c.

--------------------------------------------------------------------------------
e79d8a169f | DracoOmega | 2025-01-14 00:08:05 -0330

Fix a crash with the known items menu
The 'dummy' item used for the gems entry was causing an assert about its
name, now that it counts as identified (even though its name is never used
in that menu anyway.) But replacing it with an actual gem that looks the
same seems fine.

--------------------------------------------------------------------------------
203f4b1603 | DracoOmega | 2025-01-13 21:17:54 -0330

Don't let the player kill themselves with Makhleb marks + vitrify
Skip damage multipliers from harm/vitriy/etc when dealing self-damage from
inscribing a mark into yourself.

--------------------------------------------------------------------------------
77dd6fc368 | DracoOmega | 2025-01-13 21:17:54 -0330

Prevent a crash when Surprising Crocodile drags a monster into a shaft
If the monster actually fell through, it wouldn't be there by the time the
actual attack happens, resulting in a crash.

--------------------------------------------------------------------------------
9e0d956b5c | DracoOmega | 2025-01-13 21:17:54 -0330

Make a few more item types count as always identified
Fixes a weird issue of ?id scrolls being readable when on top of a corpse,
even though no items would be shown in the list *to* identify.

--------------------------------------------------------------------------------
60363ce734 | DracoOmega | 2025-01-13 20:58:57 -0330

Fix religious abilities having the wrong hotkeys for zealot starts (Kab)
God invocations default to being mapped to a/b/c/etc. and Renounce Religion
is mapped to 'X'. But since 2dbd7c1 zealot starts would have Renounce
Religion on 'f', and god abilities like berserk start at 'g'. (Joining said
god later on worked properly.)

The reason for this was rather opaque, but essentially: the new equip
system causes equip_item() to be called for the player's starting equipment
and this calls check_item_hint() which grabs a list of the player's
current abilities (to see if they have gained any, so that hints mode can
teach the player about that). Getting a list of abilities automatically
applies hotkeys to any the player has which don't have any yet (and the
new character already worships their god at this point, so Renounce
Religion, Berserk, etc. are given default keybinds.) By the time
set_god_ability_slots() was called, they already had keybinds and so were
not given any, resulting in this issue.

I have elected to resolve this by having set_god_ability_slots() delete
even abilities that belong to your current god, so they can be assigned
fresh (this is only ever called in newgame and upon joining a god, so this
seems safe.). Renounce Religion is handled slightly differently and given
a default keybind in find_ability_slot(). This technically means that if
the player has something already assigned to X when they join a god, that
it will end up elsewhere instead. I'm not sure this matters.

--------------------------------------------------------------------------------
812cd53223 | DracoOmega | 2025-01-13 20:58:57 -0330

Fix enhancer staves not getting the usual wield message

--------------------------------------------------------------------------------
dfcb6f04d8 | DracoOmega | 2025-01-13 20:58:57 -0330

Fix being unable to unwield a magical staff (ragingrage)
The game would claim you were already empty-handed (because the function
in unwield to check your current weapon was accidentally still filtering
out non-OBJ_WEAPONS and not non-weapons

--------------------------------------------------------------------------------
6f71aec649 | DracoOmega | 2025-01-13 20:58:57 -0330

Don't warn about fleeing apostle challenges for entering a PoG (salticid)
They were apparently too stair-shaped for comfort.

--------------------------------------------------------------------------------
12a0c8464c | DracoOmega | 2025-01-13 20:58:57 -0330

Actually stop the Sword of Zonguldrok from generating

--------------------------------------------------------------------------------
836663c12a | Implojin | 2025-01-13 15:24:59 -0600

Add Charlie Gettys to the CREDITS
For 37eb8d4443. Thanks for your ongoing ci efforts!

--------------------------------------------------------------------------------
a3f7f667d0 | DracoOmega | 2025-01-13 04:13:23 -0330

Remove a breadswinging-related comment

--------------------------------------------------------------------------------
dc257c63a9 | DracoOmega | 2025-01-13 04:12:06 -0330

Replace an assert with a prompt instead
I thought it was impossible to reach this point for any non-equipment
anymore, since I removed breadwielding (and the ability to select any
ineligable item from the equip menus), but apparently you could still reach
this point via inscriptions like {@w1}, creating an easy crash-on-demand.

It seems sensible enough to just abort with a message, in this case.

--------------------------------------------------------------------------------
233abfc1fd | DracoOmega | 2025-01-13 03:58:54 -0330

Fix one's armour sometimes silently falling off (pisaster)
If the player was transformed into a form whose *body size* was too large
or small for certain items (ie: bats are tiny, and tiny creatures cannot
use gloves), these items would be forcibly removed the next time the player
was unmarshalled (as part of new generalized save compat code to remove
items the player is not allowed to be equipping). Note: the player is
unmarshalled every time they leave their current floor...

This code now checks only the player's *base* body size (since forms don't
rely on changes in body size to control what slots are available, and forms
shouldn't forcibly remove items in any event; that's what melded slots
are for.)

--------------------------------------------------------------------------------
535689ca4f | DracoOmega | 2025-01-13 03:16:07 -0330

Make Freeze use a proper zap
This fixes the targeter being a little wierd and sometimes locking onto
monsters out of range, as well as being unaware that cold-immune enemies
are not useful targets for this spell.

(There should be no mechanical change as a result of this.)

--------------------------------------------------------------------------------
752c899f1e | DracoOmega | 2025-01-13 02:20:12 -0330

Fix body armour being tagged {auxiliary armour} for stash search

--------------------------------------------------------------------------------
c0115c06c0 | DracoOmega | 2025-01-13 02:10:34 -0330

Fix jewellery not being marked as useless for Coglins

--------------------------------------------------------------------------------
a61b68f949 | patrick | 2025-01-12 20:41:05 -0500

Make the Legendary Smithy's work slightly less legendarily bad
Tweak the bad artprops in the inventory to make them somewhat less
god-awful.

--------------------------------------------------------------------------------
af52db9ec8 | DracoOmega | 2025-01-12 21:31:57 -0330

Fix artefact antimagic weapons not reducing your max MP (staticshock)

--------------------------------------------------------------------------------
8ee53adf16 | DracoOmega | 2025-01-12 19:51:47 -0330

Fix shattering cursed items that grant slots not removing items (Darby)
Previously, shattering an Ash-cursed item that granted equipment slots
would allow you to keep the extra items you had equipped in those slots
(at least until you saved the game - or left a floor, which silently does
the same - which performed automatic fixup on your slots). Now they should
visibly be removed from you when you shatter.

--------------------------------------------------------------------------------
56b6964273 | DracoOmega | 2025-01-12 19:51:47 -0330

Fix delayed wield printing the wrong message for non-Coglins (cool 3)
Now that you can automatically remove a shield when trying to equip a
two-handed weapon, species other than Coglins can queue a delay to equip a
weapon. It isn't actually slower than a turn for them, but printed the
Coglin message anyway, which was confusing.

--------------------------------------------------------------------------------
ee6a2ae5b8 | DracoOmega | 2025-01-12 19:51:47 -0330

Fix some weird effects with Ash and the tiles item window (Darby)
If someone was worshipping Ash, had some cursed equipment, and moved their
mouse over equipment in the local tiles inventory panel, it could cause
the visible equip status of those items to change (and also print messages
to the log and maybe even identify items....)

Basically, mouseover creates the item description tooltip, which does the
equipment preview, which quietly swaps equipment in the background to see
your new stats. But because one call to ash_check_bondage() was in the
wrong place, doing so could change your piety in the midle of the preview,
causing messages to print and redrawing the inventory in the middle of
what should otherwise be an invisible action.

This is hopefully fixed now.

--------------------------------------------------------------------------------
9f8dda7171 | DracoOmega | 2025-01-12 19:51:47 -0330

Fix a crash with many death curses triggering at once (Darby)

--------------------------------------------------------------------------------
5a0e0285cb | DracoOmega | 2025-01-12 19:51:47 -0330

Prevent removing the Crown of Vainglory while stair block is active
It wouldn't be the *worst* balance thing if the player was allowed to
spend 5 turns deliberately smashing their crown to escape from its hold,
but it feels more in the proper spirit of the thing to go the Obsidian Axe
route and just prevent the player from taking it off when the big downside
is active.

--------------------------------------------------------------------------------
f56b7f98d4 | DracoOmega | 2025-01-12 19:51:47 -0330

Remove ac_with_specific_items functions
These were once used as part of the early AC change previews, but the
current system that actually puts on arbitrary items temporarily has
superceded that for a while. The only remaining user of these functions for
anything other than 'the armour you are actually wearing' is the
description for !lig, and that can use the same logic as forms checking
for flight (ie: temporarily transform and then look at our resulting
stats). This is a lot heavier weight, but for this purpose that's fine (and
by the code's own admission, it didn't properly restrict itself to the
passed set of items anyway.

This also fixes shields of protection no longer giving AC.

--------------------------------------------------------------------------------
285ba1224f | DracoOmega | 2025-01-12 19:51:47 -0330

Fix bucklers not showing up when using ctrl+f for 'shield'
The shield slot in menus was renamed to the offhand slot (orbs exist, after
all!), which apparently was passed on to the stash search inscriptions.
(Other shields still showed up since those have 'shield' in the name).

Since this is all done by lua, this commit solves that by exposing
is_shield to clua and using this to additionally add the {shield} tag to
shields.

--------------------------------------------------------------------------------
3ec6d0f5d0 | DracoOmega | 2025-01-12 19:51:47 -0330

Fix a few issues with ' command
This should fix the last of #4231

--------------------------------------------------------------------------------
14d66cf9ea | DracoOmega | 2025-01-12 19:51:47 -0330

Fix equip messages for weapons being accidentally removed

--------------------------------------------------------------------------------
7d3a69787e | DracoOmega | 2025-01-12 19:51:47 -0330

Fix equipped weapons not showing on webtiles sidebar
As well as removing some more remnants of the old equip system.

--------------------------------------------------------------------------------
37eb8d4443 | Cgettys | 2025-01-12 19:51:36 -0330

fix: failing header tests
Fix all the remaining failing header tests

--------------------------------------------------------------------------------
da5e99f6e2 | patrick | 2025-01-12 15:11:04 -0500

Update the commercial district of grated_community_mu
The Legendary Smithy shop in the grated_community vault was not a
particularly good shop. A shop doesn't have to always be useful, but
it should at least be useful sometimes. A shop that's always crap is
a joke that's only ever funny once. Any possible usefulness for
mundane, damaged high-end gear is a gimmick done better by the
Lightly-Used Armoury anyway. Accordingly, use gammafunk's new
artprops specification tech to give it a new gimmick, similar to the
old one, but with the potential to make something someone might
conceivably ever use: All randarts, but each has at least one bad
artefact property.

Also, replace the long-lost food shop with a scroll shop. Similarly
to the Miraculous Elixirs next door, it sells only scrolls of
non-guaranteed utility: noise, torment, and vulnerability. It's not
quite the same as a potion of mutation, but it'll do for now.

--------------------------------------------------------------------------------
32e6db6f59 | DracoOmega | 2025-01-12 14:36:52 -0330

Remove a stray debugging statement (ge0FF)

--------------------------------------------------------------------------------
d0af61dcc4 | David Lawrence Ramsey | 2025-01-12 11:37:03 -0600

Add missing Protected status description.

--------------------------------------------------------------------------------
237e977852 | David Lawrence Ramsey | 2025-01-12 11:15:06 -0600

Tweak eudemon blade description.
Since undead and demonspawn have been able to wield them for awhile,
albeit with their holy wrath brand disabled, the part about how "it
cannot be wielded by the forces of evil" now makes little sense, and
the descriptions of sacred scourges and trishulas don't have that part
either.

--------------------------------------------------------------------------------
e07210bfbf | DracoOmega | 2025-01-12 05:19:41 -0330

Fix the Vainglory debuff being dispellable (Darby)
An oversight when copy-pasting, oops.

--------------------------------------------------------------------------------
296d49ecf8 | DracoOmega | 2025-01-12 05:19:41 -0330

Fix a couple crashes related to equipping dangerous items on the floor
If one attempted to equip an item on the floor such that a warning prompt
would happen (ie: for ^Drain items), it could cause a crash in two
different ways - by trying to get an out of bounds inventory letter, or by
leaving a 'ghost' item in the player's backpack that could later cause the
game to think the player's inventory had room, but fail to put anything in
it.

But I think the entire process of temporarily putting the item into the
player's inventory is no longer necessary (it only existed due to stat zero
checks from an older version that never even made it to trunk), so that
alone should hopefully fix these crashes.

--------------------------------------------------------------------------------
385c7f6713 | David Lawrence Ramsey | 2025-01-12 01:59:00 -0600

Use apostles' pronouns when anointing them.

--------------------------------------------------------------------------------
b602fafdc2 | David Lawrence Ramsey | 2025-01-12 00:47:25 -0600

Use mpr() instead of mprf().

--------------------------------------------------------------------------------
c40ce7fcf5 | DracoOmega | 2025-01-12 03:12:48 -0330

Slightly buff the Macabre Finger
In past discussions, it was generally agreed that even if the effect was
cool, this amulet was often a bit underwhelming in practice, so let's give
it a little extra boost. (The idea of making it a regeneration amulet had
been proposed, but that might make it *too* automatically good. This should
be something like '1/2 regen' in a lot of cases, but texturally different.)

Was the number 7 really lucky for whatever poor soul this finger once was?

(Also, change the artprop name to match Vainglory)

--------------------------------------------------------------------------------
c877134c9c | David Lawrence Ramsey | 2025-01-12 00:25:07 -0600

Reorder octopodes' species_flags.
They're now just before aptitudes, the same location as every other
species' species_flags.

--------------------------------------------------------------------------------
8ba66c0f68 | DracoOmega | 2025-01-12 02:50:39 -0330

Fix yet more CI errors

--------------------------------------------------------------------------------
0da8038b3c | David Lawrence Ramsey | 2025-01-12 00:04:44 -0600

Fix wording.

--------------------------------------------------------------------------------
773a97d5a4 | David Lawrence Ramsey | 2025-01-12 00:03:55 -0600

Fix missing punctuation.

--------------------------------------------------------------------------------
0c33c9779a | DracoOmega | 2025-01-12 02:24:49 -0330

Fix a couple more ci errors

--------------------------------------------------------------------------------
d0d10d1f0b | gammafunk | 2025-01-11 23:48:43 -0600

Remove an outdated vault
The vault gammafunk_ghost_stat_death was very much thematically tied to
stat drain, both in terms of monsters and loot. Now that stat drain is
removed, rather than trying to shoehorn in something about
mutation/polymorph, I think it's ok to just remove this vault. The exact
layout is already used by another more memorable vault,
gammafunk_ghost_berserking_beasts. I had intended to make the two vaults
have distinct and more randomized layouts at some point, but never got
around to it. Thankfully stat drain removal gives a simple way to remedy
the distinctiveness problem!

--------------------------------------------------------------------------------
a49f8ab139 | DracoOmega | 2025-01-12 02:13:13 -0330

Allow the elusive crimon imp to return to hiding (Cgettys)

--------------------------------------------------------------------------------
008900fb2a | DracoOmega | 2025-01-12 01:53:46 -0330

Allow formicids to wear a second pair of gloves
For years, players have periodically asked why formicids can't wear gloves
on their second pair of hands. And the answer has mostly been about the
pain of implementing this, rather than any compelling balance reason not
to.

And now implementing this is easy! So let's give it a go.

--------------------------------------------------------------------------------
f0b4e4a408 | DracoOmega | 2025-01-12 01:53:46 -0330

New unrand: the Crown of Vainglory
A fragile +3 crown that grants Will+ and *two* extra ring slots. But its
ostentatious majesty comes with a (hopefully) commensurate downside:
whenever you enter a floor, you immediately wake up all enemies in sight of
where you arrive and are forbidden from taking stairs for a decent while
after doing so. One as grand as you surely wouldn't flee from danger like a
common peasant?

(Tile credit to regret-index, using CanOfWorm's Crown of Eternal Torment
tiles, plus CC0 rpg item assets by Jetral)

(It also gives the player a radius 0 halo, which confers no mechanical
upside, but does give the usual mechanical *downsides*. But you look
fabulous, so why should you care?)

--------------------------------------------------------------------------------
2550460db2 | DracoOmega | 2025-01-12 01:53:46 -0330

New unrand: the Fungal Fisticloak
A living cloak covered in tiny symbiotic wandering mushrooms, it occupies
the helmet slot as well (and gives HP-10, Str-2, Int-2), but grants an
extra glove slot for the mushroom colony's own 'fists'.

The cloak will also sometimes use those fists of its own volition; each
turn there is 1 in 4 chance for the cloak to launch a special aux attack
at a random adjacent enemy, which itself has a 1 in 3 chance to briefly
inflict confusion from its spores. This can happen regardless of what else
the player is doing (though attacks do tend to trigger it more often, just
from being quicker actions.) As an aux attack, it should also be affected
by slaying, strength, and anything else that would work on normal auxes.

Finally a solution to how friendly wandering mushrooms are too shy to move
in the presence of enemies: you can move *for* them! (And who wouldn't want
a cute mushroom pal to have their back in the dungeon?)

(Tile credit to regret-index, using Denzi's old cloak of the Thief,
tormentor, and giant centipede tiles, mixed with CC0 mushrooms by Surt.)

--------------------------------------------------------------------------------
c7ca3d38c2 | DracoOmega | 2025-01-12 01:53:45 -0330

Replace the Sword of Zonguldrok with the Skull of Zonguldrok
This is an orb-slot item that makes the player's weapon act like it had the
Reaping brand (on top of whatever brand it might actually have), gives rN+
and Int+4, and allow allows the player to wear another hat (by putting it
on the skull).

It is also rather talkative, and comments on several things, including what
hat the player chooses to put on its head. Finally, players can learn
important lore about this legendary necromancer (such as his thoughts on
millinery).

(Tile credit to regret-index, using Denzi's old curse skull and roctavian's
medium-sized humanoid skeleton. Vault edit credit to her, as well)

--------------------------------------------------------------------------------
cfde047c93 | DracoOmega | 2025-01-12 01:53:45 -0330

New unrand: Justicar's Regalia
The first of a set of new unrands to show off the new item slot system,
the Justicar's Regalia is +5 scale mail that gives the player an additional
amulet slot, along with 4 strength. In addition, allies the player creates
or summons themselves while wearing it will spawn with Regeneration.

(Tile by regret-index, using roctavian's old splint mail randart and chain
mail randart tiles, loginerror's branded elven scale mail, and Bloax's
plain scale mail tile.)

--------------------------------------------------------------------------------
e9a161bd7f | DracoOmega | 2025-01-12 01:53:45 -0330

Tweak / generalize Reaping brand (regret-index)
Instead of only existing on the Sword of Zonguldrok (which is a fine enough
weapon, but among the less exciting unrand weapons), allow Reaping to spawn
rarely on any randart weapon (at about half the frequency of Speed).

Instead of permanent zombies, it now creates temporary spectrals (but at
a somewhat higher chance than it used to create zombies).

(The Sword of Zonguldrok itself will be going away in a subsequent commit.)

--------------------------------------------------------------------------------
cfdfd765e8 | DracoOmega | 2025-01-12 01:53:45 -0330

Remove quasits
These monsters already *mostly* did nothing (and also barely existed).
With their dex drain gone they now do *literally* nothing, so let's make
them gone entirely.

(In contexts that could place multiple random low-tier demon, they have
been cut without replacement. A couple vaults that specifically placed
quasits have been adjusted per regret-index's suggestions)

--------------------------------------------------------------------------------
a2ca077a11 | DracoOmega | 2025-01-12 01:53:45 -0330

Make messages about the player being slowed use warning colors
Several *less* scary debuffs already had their announcements colored red,
and Slow is pretty relevant all game long, so it feels like it should also
be red.

--------------------------------------------------------------------------------
ec04cbc662 | DracoOmega | 2025-01-12 01:53:45 -0330

Simplify stat zero
With stat damage removed from the game, hitting stat zero has become even
more unlikely. While inopportune mutations and equipment that reduce stats
can still do this, the former are even more situationally unlikely to make
you hit zero than stat damage was, and the latter are mostly a momentary
misstep by the player that can be immediately corrected. Given this, I
think it is appropriate to greatly simplify the effects of having 0 of a
stat.

Instead of immediate paralysis, permaslow, additional stat-specific
effects, and only gradual recovery, having a stat at 0 or below just gives the
player permaslow so long as it is below 0. Once it is above 0 again, they
are completely fine.

This allows us to eliminate all checks for swapping form or equipment which
might reduce a stat to 0 (being briefly slow is not the same sort of
emergency that paralysis is, and there are no lingering effects.) This is
good, because the code was somewhat complex and already full of corner
cases that it didn't catch - and permaslow already seems quite sufficient
to dissuade a player from simply powering through having -8 int from their
gear.

Whether even *this* level of effect is worth having compared to just
capping stats at 1 is a little unclear to me, but it does keep players from
considering artefact stat penalties to their dump stat to be completely
free, and maybe once in a blue moon it makes a negative stat mutation be
more impactful?

Some of the removed status effects may find a home again as part of future
debuff effects not tied to stat damage.

(The stat_colour option is still around for now. Technically, there is
still some value in making it obvious that the player is close to 0 in a
stat, but it feels a little too... emphatic for the current danger level,
in my opinion. I may also cut it in the future, if other people are in
favor of doing so.)

--------------------------------------------------------------------------------
de2045381e | DracoOmega | 2025-01-12 01:53:45 -0330

Remove all stat draining from the game
While stat drain could still be caused by numerous different sources, its
position in modern Crawl felt fairly vestigal. The largest sources of int
drain have been gradually removed, such that very few sources left pose a
realistic threat of causing a player to hit stat zero. And even for the
cases that remain, it's unclear that "Does very litle to most players, but
in specific circumstances to very specific characters can rarely cause
immediate paralysis that maybe kills you" is actually good. While it is
theoretically possible to make a stat drain system that has a bit more
impact in general without being as spiky in the worst case, I think that it
would be better not to be beholden to the historic nature of this system
(and the small-yet-often-complex effect stats have on a player) when
designing any new medium-term 'debuffs'.

And so, after some discussing, I am removing stat drain entirely (and stat
zero itself will be simplified in a subsequent commit). The following
changes have been made:

-Stat drain attack flavors have been removed without compensation. The only
 monster whose stat drain could be relevant more than once in a blue moon
 were ghost moths, who already have plenty going on without it. Eidola
 and putrid mouth stat drain already did 'basically nothing' and they may
 recieve something else in a future commit.
-Vampire batform loses the stat damage with no compensation (they're not
 long for this world in any case).
-Klown pies lose stat damage without compensation. (They can already do a
 half-dozen other things which are usually more impactful anyway.)
-Degeneration clouds are now clouds of alcoholic mist, which inflict
 Vertigo (to match the change to the potion). This is very silly, but the
 clouds were already rather silly and only exist in Alistair's wizlab, in
 a room where you likely never step on them.

-Chei wrath loses stat drain without compensation (that wrath effect
 already generated massive noise).
-The weight of Kiku's torment and HP drain effects absorb the weight of
 what used to be stat drain (and the HP drain is reduced in strength a
 little, in compensation)
-Trog's str drain is replaced with long-duration Weakness
-Sif's int drain weight is split between existing MP drain and confusion

-Undead being malmutated now have their HP drained instead
-Zot traps now blind instead of drain stats
-Xom stat drain has had about half of its weight moved into pseudo-miscast

Placeholder changes:

-Hell effects has the old stat drain weight split evenly between HP drain,
 temp badmut, and doing nothing (and the HP the drain amount lowered a bit
 in compensation). This is temporary; there were already some awkwardnesses
 with hell effects, regarding going elsewhere to farm it off (and its
 interaction with the Persistant Drain mutation), and temp mutations don't
 last more than a couple kills in Hell and are largely irrelevant (their
 timer behavior really wasn't designed with this sort of system in mind). I
 already planned to change how they worked when Hellpan routlette is
 implemented, but this should hopefully be at least 'functional' until that
 point.

-Summon horrible things now has a chance to give a temp Weak-Willed
 mutation instead of int drain. This is... slightly silly and low-impact
 (if thematically appropriately), but just a placeholder for a new type of
 effect I plan to implement later.

--------------------------------------------------------------------------------
13154cae79 | DracoOmega | 2025-01-12 01:53:44 -0330

Replace Deterioration mutation with Poor Constitution
With stat drain being removed, I am adjusting the basic concept of this
mutation to weaken the player in a different way upon taking damage.

This now gives a (reduced, compared to Deterioration) chance to become Weak
for a while upon taking non-trivial damage. At the second level of the
mutation, it gives an additional chance to also be briefly slowed. Numbers
are fairly arbitrary for now.

For the most part, this is still rougher than Deterioration was (as one
level of it rarely did anything relevant to most characters), and it is
possible that some other badmuts could be added to split the weight of it
in future.

--------------------------------------------------------------------------------
223a808d43 | DracoOmega | 2025-01-12 01:53:44 -0330

Change potions of degeneration into potions of moonshine
With stat drain slated to be removed, these potions would be left doing
nothing at all. And while I don't think there was an important *mechanical*
reason to keep !degeneration around, a great many vaults use them
specifically for flavor purposes (as a proxy of alcohol), so I figured: why
not lean into that more explicitly?

Drinking a potion of moonshine gives the player 10-25 turns of vertigo
(which technically does more than !degeneration was ever likely to do, but
should be thematically fitting without being crippling, either)

--------------------------------------------------------------------------------
c6088a4a74 | DracoOmega | 2025-01-12 01:53:43 -0330

Refactor and adjust mummy death curses
In preparation for stat drain being removed from the game, the chance for
stat drain is folded into HP drain entirely. As this is removing one of the
only options that could affect undead players, I am using this moment to
make another adjustment at the same time.

Currently, the direct damage from death curses (ie: not the Torment) uses
messages identical to the Pain spell (and similar to other pain damage),
but actually is (seemingly deliberately) unaffected by rN in any way! The
damage is fully prevented by being torment *immune*, but even torment
resistance (as granted by statue form and being a gargoyle) also did
nothing to reduce the damage whatsoever. This feels extremely
counterintuitive (who would expect that worshipping TSO could protect you
from torment but *not* 'pain' damage?)

It would be straightforward to make this normal negative energy damage.
However, given the fact that Tomb's difficulty is already so enormously
affected by whether the player has death form or not (a design problem that
future Tomb adjustments slated for 0.34 already planned to take aim at), I
am going to try going in the opposite direction instead.

While death curses were once directly tied to necromancy miscast effects,
that hasn't been the case for a long time, so I don't think we don't need
to be beholden to them all centering on negative energy-esque effects. And
one thing that mummies already do a lot of that is intuitively irresistable
is smite things! So this commit changes the not-really-pain effect to be a
smite effect instead. This means it will do full damage to undead players
(while, importantly, not actually doing any greater damage to anyone else
than it currently does - at least outside of tree form)

It is possible that by making the 'easier' option of how to tackle Tomb
harder, some follow-up adjustments may be indicated (though I think evening
the balance between undead/living is still a fundamentally good general
direction). We shall see.

Finally, this commit also gives death curses their own proper ktype
(instead of KILLED_BY_SOMETHING) and uses a similar technique now used by
exploders to attribute blame properly to a mummy who is already dead (which
will help with future sequell queries)

--------------------------------------------------------------------------------
2dbd7c1ffd | DracoOmega | 2025-01-12 01:53:43 -0330

Completely rewrite how player equipment slots are handled
The system Crawl used to handle its equipment slots was conceptually
simple, but inflexible; every possible place an item could be equipped
had a unique enum entry in equipment_type. This resulted in things like
2 different enums for left ring and right ring, 8 additional ones for
octopode rings, another specifically for the ring granted by the Macabre
Finger (and a bunch of code to compute a list of which of these slots
was available at the moment - with Ru's Sac Hand removing a different
enum depending on whether you were an octopode or not!)

This made adding additional slots for different body plans non-trivial
(even Coglins had to duplicate a lot of code to handle letting the
player equip more than one weapon - something that was very
ring-specific up to that point). Items like Lear's, which occupy more
than one equipment slot at once, also required a lot of brittle
special-casing in many different places.

This commit rewrites player equipment handling from the ground up,
allowing much more flexibility with items, species, or mutations that
add new slots, as well as simplifying items that occupy multiple slots.
It also fixes a handful of existing bugs and improves QoL in a number of
common cases.

An incomplete list of major changes:

[Backend]:

-All information related to player equipment is now contained in the new
 player_equipment_info class (replacing you.equip, you.melded,
 you.activated, and you.unrand_reacts) and all querying/changing of
 equipment is done through its methods.

-Equipment slots are now defined by *type* rather than instance. ie: there
 is only one SLOT_RING, but the player can possess an arbitrary number of
 them (or of any other slot) and this number can be dynamically modified by
 mutations, equipment, or anything else one likes.

-As such, all slots of a type are now equivalent. You don't have a 'left
 ring' and a 'right ring', but '2 rings' (minorly affects inventory
 messages, Ru sacrifices, etc.)

-Bardings no longer occupy the boots slot, but have their own SLOT_BARDING,
 reducing the number of places we need to check what is actually allowed in
 this slot. (Barding-using species have a SLOT_BARDING instead of a
 SLOT_BOOTS, but there's nothing forbidding a species from having both).

-What slots a character has available are determine solely by
 get_player_equip_slot_count()

-Restrictions *within* those slots are largely handled by can_equip_item()
 which takes care of hat/helmet restrictions, and weapon size
 considerations.

-Equipment that occupies more than one slot (ie: Lear's, but also
 two-handed weapons) now places an 'overflow' copy of itself in every other
 slot it occupies. This allows a unified way to see what is filling a slot
 (without counting the item multiple times), improves QoL in several ways
 (see [UI] section below) and reduces Lear's-specific code to two lines.

-Artefact properties are now cached in player_equip_set::artprop_cache when
 equipment is changed, eliminating the need to scan our entire equipment
 set to do vector prop lookup whenever we want to check anything relevant.
 (In future, this could theoretically be expanded to include equivalent
 egos, streamlining some things like player resist lookups).

-Unrands the player has currently equipped are likewise cached as bitflags,
 for similar reasons.

-A number of clua functions related to equipment and equipment slots have
 been changed or renamed.

-Many other functions have been renamed for clarity or adjusted slightly.
 Several currently-unused functions have been removed.

[UI]:

-A lot of UI code related to equipping/unequipping items has been unified:
 (w)ield, (W)ear, and (P)ut on no longer use largely different code paths,
 and the UI handles having multiple equipped items of any given type. (See
 try_equip_item())

-The player no longer needs to manually unequip items in a particular order
 if more than one item would have to be removed before a new item can be
 equipped. eg: if trying to equip a two-hander while wielding a one-hander
 and a shield, the game will automatically remove the shield first, rather
 than telling the player they have to do that themselves. Likewise for
 taking on/off Lear's or the Macabre finger.

-Equipment previews (for EV/spell fail, etc.) now account for multi-slot
 items. ie: the preview for wielding a two-hander will also account for
 removing your shield in order to do so.

-It is no longer possible to wield non-weapons (eliminating quite a few
 checks all over the place). Outside of turncount tricks, breadwielding
 hasn't had a functional purpose in approximately forever, but there was a
 surprising amount of code complicated by the fact that it existed
 (included multiple checks that were no longer reachable, even prior to
 this commit)

-A few circumstances where pressing a button would bring up a different
 equip menu than expected have been improved.

-Flight warnings for switching form with particular combinations of gear
 should be more accurate.

[Gameplay]:

-Gaining a mutation that would cause an equipped item to fall off will
remove that item from you immediately, even if it is currently melded by
a form (rather than deferring this to the next time you shapeshift back
to normal).

-Since there is no longer a concept of 'which' ring slot is which, ring
 removal for things like Sac Hand or shattering a cursed Macabre Finger can
 choose any ring to remove without worrying about what order the player put
 them on in.

-All circumstances that cause the player to involuntarily lose a slot will
 prioritize removing items without negative unequip effects first, if
 possible. (eg: if you have a ring with {^Drain} and one without, you will
 lose the one without when you Sac Hand)

[Caveats]:

-While it is possible to give the player any number of any kind of slot,
 a couple things still only have well-defined behavior for a smaller
 number:
 -Body armour and shields have a number of penalty-related properties that
  only currently make sense for having a single one of them. (And
  actor::body_armor() and actor::shield() assume that only one will ever
  exist).
 -Weapons still count on the player having no more than two. This is more
  semantically easy to adjust than for body armour and shield, and related
  code can be refactored to simplify a few more Coglin-related things in a
  future commit.
 -Player paperdoll still generally assumes no more than one of each
  standard piece of gear.

Save compat code should gracefully handle converting from the old
equipment system to the new one (including unwielding non-weapons, if
someone loaded a save that still had one, etc.)

I realize this commit is massive, but given the foundational nature of what
was being rewritten, it was too impractical to break it into smaller pieces
and expect any of them to even compile. I have tested countless
interactions quite thoroughly, but it would be foolish to assume in
something of this scale that no bugs remain. But I believe the code is in a
much better place overall, and should enable many exciting future features
with relatively little future pain.

--------------------------------------------------------------------------------
f03798f366 | DracoOmega | 2025-01-12 01:28:07 -0330

Fix a rouding issue with equipment previews
It was possible for an item to change a player's EV to (say) 20.95. The
equipment preview would round this to 21.0, while the stat bar would say
20 EV instead. The preview should say 20.9 in this case instead, now.

--------------------------------------------------------------------------------
b756c04f85 | DracoOmega | 2025-01-12 01:28:07 -0330

Improve performance of mons_is_safe
This is called every time a monster_info object is normally created (which
is typically *many* times per turn when around monsters) and involved
several sources of needless effort.

To check whether a monster could reach the player, it set up and performed
full pathfinding for any non-adjacent monster (which allocates multiple
arrays the size of the entire dungeon floor). It now calls can_go_straight
first, as it commonly done in other reachability checks, allowing it to
skip pathfinding in a majority of cases.

It now also skips dispatching to lua in cases where we know that the lua
check will trivially return true. (ch_mon_is_safe can only make monsters
appear *safer*, not more dangerous. So if we've already established that
they're safe, there is no need for this call.

Finally, we don't construct an entire new monster_info to pass to lua when
all the function ever uses is the monster's name (for
runrest_ignore_monster checks).

In combination, this is a moderate measurable improvement to this method's
performance (which can get called quite frequently.)

--------------------------------------------------------------------------------
6a727fa3a9 | DracoOmega | 2025-01-12 01:28:06 -0330

Improve get_mutation_level performance
Due to a poorly ordered logic check, literally every time the game queried
whether the player had *any* mutation, it needed to pull their species data
to see if they could bleed (as part of Sanguine Armour's check). Now it
properly verifies that it is looking up Sanguiine Armour *first*.

Additionally, the check to see whether a mutation would be suppressed was
done before even checking to see if the player had the mutation in question
at all. These checks are now reversed.

(Due to a combination of this and the species data map lookup,
get_mutation_level was an unexpected hotspot, requiring a map lookup any
time any mutation was checked - which was often many times per action.)

--------------------------------------------------------------------------------
c4e2c3447e | DracoOmega | 2025-01-12 01:28:05 -0330

Fetch species_def by array lookup instead of map lookup
Another small optimisation in response to profiling data. Since species
already have a fixed compile-time enum order, fetching species data via a
map is unnecessary.

This changes the generated species-def.h to define a const array instead,
sorted in enum order. (The enum order is obtained by doing crude string
parsing on species-type-header.txt. There may be some more elegant way to
do this, but I think we can count on the existing parts of this file not
changing in ways that would break this.)

I had to convert the pre-yaml deprecated species into *actual* yaml in the
process, so that they could be inserted in the correct order, instead of in
a single block at the end.

--------------------------------------------------------------------------------
84a917550b | DracoOmega | 2025-01-12 01:28:05 -0330

A small optimisation to actor iterators.
monster_iterator and monster_near_iterator are pretty simple under the
hood; they simply iterate through the entire 700-entry env.mons array,
ignoring all entries that aren't a defined and living monster (and then
doing additional LoS checks, in the case of monster_near_iterator).

But Crawl rarely has even 100 living monsters on a floor at once (and often
far less), so *most* of these checks are expected to fail. They aren't
terribly expensive individually, but these iterators can be used many, many
times per turn (even while resting, in some cases) and showed up as a small
hotspot in recent profiling.

This applies a very simple and transparent optimisation to these iterators.
Instead of checking MAX_MONSTERS every time, the game tracks the maximum
index into env.mons which contains any monster and stops these iterators
when they reach that point (since we know that no real monsters will be
found in the rest of the array). This max_mon_index is increased whenever
get_free_monster() returns a monster with a higher index than the current
max, and trimmed once per player turn (in clear_monster_flags(), which
already iterates through the entire monster array).

This is a 'loose' upper bound, in that monsters can die or be removed
mid-turn without lowering max_mon_index, but it's only critical that
max_mon_index never be *lower* than the maximum index containing a real
monster. But since essentially *all* uses of creating new monsters for
env.mons should be calling get_free_monster() first, this should be
reliable, and reduce the number of calls to monster::alive via iterators
by an order of magnitude.

--------------------------------------------------------------------------------
c3122fab97 | gammafunk | 2025-01-11 22:08:47 -0600

Fix a shop typo (projectNoob)
The correct book name is "book of metalworking". Fixes #4227.

--------------------------------------------------------------------------------
9116421d5b | brandon s allbery kf8nh | 2025-01-11 19:26:07 -0600

document git conventions
The git quickstart guide now mentions the most important git
commit message conventions, and links to a page with more
detailed information and additional common conventions.
Additionally, they are now referenced in the contributors guide.

--------------------------------------------------------------------------------
4e6c6e10dc | Implojin | 2025-01-11 19:13:13 -0600

Fix engulf immunity conditions
In particular, don't grant engulf immunity based on recent constriction,
but also don't grant this based on spiny or slick slippers.

--------------------------------------------------------------------------------
5a69badbe1 | Implojin | 2025-01-11 18:58:26 -0600

Document spiny mutation constriction immunity (cool 3)
TIL this exists.

--------------------------------------------------------------------------------
a5f79bb512 | Kyle Rawlins | 2025-01-11 12:24:26 -0500

fix: don't assume the existence of nproc in Makefile
On macos, nproc would need to be installed by gnutools, so this line has
been generating a (harmless?) error in CI where this doesn't happen.
This variable is only used in the android build process.

--------------------------------------------------------------------------------
60181c1710 | gammafunk | 2025-01-10 16:50:04 -0600

Make Dissolution amorphous (Colgate)
All jellies are supposed to be amorphous and hence immune to
constriction, except that Dissolution didn't have this flag. I think
this was a simple oversight that no one noticed until now due to their
rarity. For consistency, let this blob be squishy!

--------------------------------------------------------------------------------
931650e2db | advil | 2025-01-10 10:34:17 -0500

fix: handle gozag shopping list + abandonment interaction
When abandoning gozag, shops are abandoned as well. This is primarily
handled via a daction when entering the level, but the shopping list was
also supposed to be cleaned up immediately. This was implemented by
doing an excursion to every level with a shop, triggering dactions as a
side effect. Unfortunately, since 063869c3723ef6c1 in 2019 dactions
haven't been run on excursions. I think that this change back then may
have been accidental, but running dactions on excursions seems like a
crazy / risky thing to do, so I'm pretty hesitant to restore this
behavior.

This commit provides a straightforward fix that just explicitly runs
gozag cleanup code from the shopping list. I actually wonder if, instead
of implementing this by dactions + shopping list code, gozag code should
directly clean up every shop at the time of abandonment. This would fix
some other lingering sync issues; for example, interlevel maps / travel.

This commit does not include save compat; it'd probably be possible to
reuse old save compat code to do this. But affected players can easily
fix the crashes by removing items from their shopping list.

--------------------------------------------------------------------------------
0a0a479413 | Hellmonk | 2025-01-08 22:43:14 -0600

Make evokers stackable (#4215)
XP evokers that repeatedly generated throughout the game were unsatisfying

because all except the first were useless. However, xp evokers only generating

once led to some feel-bad moments with bazaar shops and other areas where an

item can be permanently lost. So let's try a new system.



Evokers stack, increasing their recharge rate as their plus increases, up to +5

maximum. A +5 evoker recharges in half the time compared to a +0 one, and the 

evocations skill formula has been adjusted slightly to compensate - 27 skill 

now charges in half the time of 0 skill. These effects stack multiplicatively.

Further number adjustments are likely in the near future.



Co-authored-by: DracoOmega
--------------------------------------------------------------------------------
a135081b66 | regret-index | 2025-01-08 21:45:27 -0330

Fix berserk and petrify being blue (various)
206cbdc handled the previous bitwise logic incorrectly, and should show up
properly now.

--------------------------------------------------------------------------------
d81fdbf327 | DracoOmega | 2025-01-08 18:32:57 -0330

Don't default ?blinking targeting at monsters (Lici)

--------------------------------------------------------------------------------
20429fc42b | Implojin | 2025-01-08 10:25:22 -0600

Add Ahyangyi to the CREDITS
For b9af4457a1. Thanks for the fix!

--------------------------------------------------------------------------------
b9af4457a1 | Yi Yang @ Anteros | 2025-01-08 10:20:41 -0600

Let beam targeter to take whether it's harmless into account.
The situation I was trying to fix is to stop Mephitic Cloud targeter from 
trying to avoid the Qazlal-worshipping player. The harmlessness check is 
already there, but not called by the beam targeter.

`bolt::harmless_to_player()` was private. However, it makes sense for the beam 
targeter to call this, and making it public would be the straightforward way to 
do this.

--------------------------------------------------------------------------------
206cbdca84 | regret-index | 2025-01-07 22:52:03 -0330

Change screen colours during paralysis and petrification
When a player falls asleep, the screen darkens, matching their eyelids
closing. From a mechanical perspective, this is weird, as paralysis and
petrification are more common and frequently longer than being set asleep
and often immediately waking up again from being hit. From a flavour
perspective, fantasy petrification turning one's eyes to stone is often
not the greatest for vision either. Of the other statuses, petrification
in particular is weirdly inconsistent and easy to be abruptly confused
about due to the double-petrification rules, and could use a bit of an
aide.

This colours the screen lightgrey while one is petrified, matching one's
newly stony eyes. To fit alongside this, the screen turns blue while one
is paralysed, which somewhat matches the hexes colours and doesn't overlap
with Corrupting Pulse flashes or force_more flashes. Since both statuses
don't allow player interaction anyway, it shouldn't obfuscate too much
underneath. (I suspect quite a few people who don't read commit messages
or changelogs will be confused and alarms by the screen changing colours,
but in these particular cases it's fortunately completely correct that
something bad has in fact occurred, so it shouldn't be too much trouble).

--------------------------------------------------------------------------------
f2b2ec9bae | regret-index | 2025-01-07 22:52:03 -0330

Make fungus form and tree form sleep immune
This grants parity with monster motile plants also being sleep immune.
This should only really come up for lignifying in front of sleepcaps (or
for very strange anti-satyr tactics), but it raises less questions
overall.

(Possibly fungus and tree form should both get a proper holiness change,
but this would come with some headaches of getting oklobs to fire through
transformed Fedhas worshippers, which I'm deferring for now.)

--------------------------------------------------------------------------------
5bcc8a2132 | gammafunk | 2025-01-06 19:30:28 -0600

Tweak Victory placement
Instead of probably wasting a player's superb_item loot half the time,
put Victory on top of the guaranteed down hatch in the central monster
chamber. Since Dig for Victory as popularised in Nethack is supposed to
involve going down a level (in fact multiple levels) to reach Victory,
the hatch is arguably the most appropriate place for this toga!

--------------------------------------------------------------------------------
d80f97202f | Implojin | 2025-01-06 18:58:48 -0600

Dig for Victory!
Here we add Victory to gammafunk_dig_for_victory at a 50% chance.
Doing this entirely for entertainment value, but it should have the
side effect of making Victory less vanishingly rare; we can tweak
generation here if desired.

Unclear whether players will equip Victory if it generates during
lategame -- we'll see what happens.

--------------------------------------------------------------------------------
b60e247eb4 | regret-index | 2025-01-06 01:10:45 -0330

Don't generate substantially more amulets than rings (various)
Broken by 9283c13 accidentally inverting from one_chance_in_(4) while it
was rearranging the item type code.

--------------------------------------------------------------------------------
5978acde03 | Implojin | 2025-01-05 14:47:22 -0600

Exclude artefacts from drop_disables_autopickup (DemifiendCruithne)
Here we follow from ac1af34cca and exclude artefacts from interacting
with the drop_disables_autopickup option, on the grounds that (like
missiles) artefacts aren't meaningfully distinguished using type-id.

N.b. currently, we're using `is_artefact()` as a pseudo item id flag
throughout the code, mostly for descriptions. There may be more minor
bugs lurking related to inconsistent handling of type id with
(jewellery and magical staff) artefacts, because we're relying on
manually calling is_artefact() during checks related to type id, which
seems really easy to forget about.

Resolves #4197 (again)

--------------------------------------------------------------------------------
2dfc2d5bbc | Implojin | 2025-01-05 14:04:14 -0600

Revert "Fix drop_disables_autopickup artefact interactions"
As reported by DemifiendCruithne, the fix in 5a1d68acde didn't
properly handle picking up and dropping artefacts with previously
unknown type-ids. The player could pick them up, drop them, and have
autopickup disabled for, e.g., all jewellery.

We generally exclude artefacts from interacting with type-ids
throughout the code -- this is intentional, and 5a1d68acde was
incorrect. I'm fixing this differently in a following commit.

This reverts commit 5a1d68acde340c43e86384e4ac4fb337e20daf5f.

--------------------------------------------------------------------------------
64fd3f8b57 | gammafunk | 2025-01-04 14:59:08 -0600

Update the list of required Tiles packages (Cgettys)
More recent versions of Debian have started to require the installation
of libglu1-mesa and libglu1-mesa-dev to get GL/glu.h.

I'll not here that some cursory searches about this header point to it
being part of the OpenGL utilities library, which is something that is
no longer maintained and should no longer be used. Updating the OpenGL
portion of our Tile code is not part of my skill set, so for now I'll
just include the packages we need to get the headers we need for
compilation. Long term, we should probably look to modernising our
OpenGL code, since functions we're depending on may not be around much
longer.

Closes #4200, closes #3998.

--------------------------------------------------------------------------------
1404ca9d21 | Implojin | 2025-01-04 10:09:55 -0600

Temporarily set CI to ubuntu 22.04
Github's ubuntu-latest runner upgraded to 24.04 today, which
broke a bunch of our CI. This commit should let our CI run
while we fix the rest of it.

--------------------------------------------------------------------------------
974e7ae34f | Implojin | 2025-01-04 07:49:12 -0600

Add Flugkiller to the CREDITS
For f20420b48f. Thanks!

--------------------------------------------------------------------------------
f20420b48f | Flugkiller | 2025-01-04 07:47:04 -0600

fix: Make spells that never miss unaffected by blindness

--------------------------------------------------------------------------------
717b6cd007 | David Lawrence Ramsey | 2025-01-03 21:19:31 -0600

Fix typo.

--------------------------------------------------------------------------------
4e2cdc3fdc | Implojin | 2025-01-03 20:20:45 -0600

Fix stash resist inscriptions for dragon scales (Lici)
In 008097b4cb, dragon scale body armour resist inscriptions stopped
autoinscribing. This happened because body armour basenames began
prepending "+0", which caused our (extremely brittle) lua
autoinscription code to get confused when alphanumeric string
matching -- it was now trying to match a table of armour name
strings against '0'.

Here I'm "fixing" this by changing the alphanumeric pattern to match
just alpha instead, which should restore the old match behavior.
Surely this could be made less brittle, but I hate this.

Fixes #4202

--------------------------------------------------------------------------------
5766912e8f | DracoOmega | 2025-01-03 18:20:34 -0330

Fix weird Mercury Arrow autotarget issues (Lici)
In an attempt to needlessly avoid including the player in its AoE effect
(since it can't affect the caster anyway), the autotargeter would sometimes
try to aim at another monster instead of the 'intended' target. Though,
because of the explosive bolt style targeting, it couldn't simply aim to
the side like with fireball, and would only do this if another enemy was
positioned exactly so that you could hit *them* while including the main
target in the weakness AoE effect - leading to this behavior seeming
random.

By marking this spell as never affecting the player, the targeting should
behave more normally.

--------------------------------------------------------------------------------
e182471b36 | DracoOmega | 2025-01-03 18:20:28 -0330

Add a hopefully-clarifying statement to Searing Ray cast message (ge0FF)
Searing Ray normally locks onto a monster you cast it on, tracking their
position across several turns. But if you cast the spell with . instead
(ie: the general 'aim at spot' key), it would, well, aim at the spot
instead and *not* track the monster. This was surprising to some players.

I don't feel this behavior is inconsistent with . in general, but it was
said that a message might improve clarity a little, so I have added one to
announce the player's target lock upon casting, if they have one. Possibly
this is a minor improvement?

--------------------------------------------------------------------------------
92776e1539 | David Lawrence Ramsey | 2025-01-02 20:43:31 -0600

Fix spelling.

--------------------------------------------------------------------------------
d993fb3fa4 | DracoOmega | 2025-01-02 20:12:17 -0330

Fix weird Transference autotargeting behavior (Lici)
The targeter knew that it couldn't aim *directly* at your ancestor, but did
not realize this meant it could not affect it at all, and so when it was
the closest monster to the player, would try to 'catch it' in the AoE
radius of the ability (even though that doesn't make any sense in this
case).

--------------------------------------------------------------------------------
9de6381486 | David Lawrence Ramsey | 2025-01-02 15:04:03 -0600

Add another Ashenzari object.

--------------------------------------------------------------------------------
b1901768e9 | David Lawrence Ramsey | 2025-01-02 15:04:03 -0600

Add ring of stealth quote.

--------------------------------------------------------------------------------
5a1d68acde | Implojin | 2025-01-02 13:40:14 -0600

Fix drop_disables_autopickup artefact interactions
We received a report that the drop_disables_autopickup rc setting was
incorrectly disabling autopickup for some item base types if an
artefact was dropped (jewellery and magical staves, notably).

This was happening because the item_type_known() signature that was
being used excludes artefacts from checking subtype ids.

Here we change the `\` autopickup menu behavior to allow artefacts of
the affected base types to be autopickup toggled using their subtype,
if known.

Fixes #4197

--------------------------------------------------------------------------------
1816505622 | regret-index | 2025-01-02 08:11:11 -0330

Update docs/develop/spells.txt for 0.33
Primarily aimed at highlighting repeated trends in Forgecraft spells for
future possible development, but also clarifying a few other matters of
creation and broader phrasing as has been brought up by other new 0.32 and
0.33 spells.

--------------------------------------------------------------------------------
c0fec7c300 | Aliscans | 2025-01-01 18:42:44 -0600

Fix the way the scroller works when a menu grows.
Previously, if a player had a spell library containing every spell,
searching it for "hat" led to Shatter being selected. Searching for "a"
after this led to Shatter still being selected, but only the top of the
spell list being displayed.

This happened because UIMenu::update_items() resized item_info but
didn't set the x, y, row or column fields, and
UIMenu::get_item_region() relied on those being up to date.

Call UIMenu::do_layout() to fix it.

--------------------------------------------------------------------------------
3f35e1a551 | Implojin | 2025-01-01 18:31:26 -0600

Fix Uskayaw linepass confusion targets (klement)
Apparently Usk's linepass confusion has been applying in a full-LOS
beam ahead of the targeted tile for several years and nobody in dev
noticed. Oops? This behavior definitely wasn't intended.

The linepass tracer pierces to determine its targeting, and this is
the same beam that subsequently applies confusion to everything along
its path. This commit changes this beam to use aimed_at_spot.

This is a small power nerf to Usk, which is already in the lower half
of recent god picks, so maybe we'll come up with a minor balance buff
here at some near-future point.

Fixes #4190

--------------------------------------------------------------------------------
1c515a75a4 | Aliscans | 2025-01-01 16:01:15 -0600

Update the default message_colour for two portal messages.
A couple of the final warning messages for portals (bailey and bazaar)
weren't highlighted. Change that.

--------------------------------------------------------------------------------
9754aa523c | Aliscans | 2025-01-01 15:43:19 -0600

Stop mortars from colliding with "a floor" and then being "destroyed!".
If the lava stream for Hellfire Mortar is shortened by an obstacle
which is no longer there when the mortar reaches the spot, and the
player sees it, this could give the message "The hellfire mortar
collides with a floor and sinks back into the magma."

Omit the "collides with a floor " part unless the mortar hits a monster
or "solid" terrain.

Remove the death message which followed this (which seemed redundant)
and stop blaming a monster for the death. That is, change the
killer_index in monster_die() to NON_MONSTER and the silent flag to
true.

--------------------------------------------------------------------------------
397e312dc0 | Aliscans | 2025-01-01 15:22:35 -0600

Use article_a() instead of "a article" in a few places.
Replace "a %s" (and equivalent) with article_a() in some places where
the noun can start with a vowel sound, or where the noun isn't clear
from the context.

For instance, typing ?/i with the default setup now prints "Describe an
item;" rather than "Describe a item;".

--------------------------------------------------------------------------------
6b0abae525 | Hellmonk | 2025-01-01 14:35:46 -0600

re-enable descent mode (#4196)

--------------------------------------------------------------------------------
97e6b1a4fe | Nikolai Lavsky | 2025-01-01 18:59:29 +0300

docs: update copyright date

--------------------------------------------------------------------------------
cdb383b4eb | David Lawrence Ramsey | 2025-01-01 00:35:03 -0600

Add a few more Forgecraft miscast messages.

--------------------------------------------------------------------------------
85d2812e02 | David Lawrence Ramsey | 2025-01-01 00:33:58 -0600

Fix typo.

--------------------------------------------------------------------------------
7ba718c05c | regret-index | 2024-12-30 08:40:57 -0330

New Zot metal wall tiles
These tiles are further follow-ups to bd611b0, 668cce9, and 8e166ad, each
all trying to try and make the endgame a little more visually fancy and
more thematically unique, as well as to help provide more theme cues for
future vault deployments beyond reusing monsters from other branches.
Unlike most metal tiles, these are rather detailed instead of two-part
slabs- originally meant to illustrate draconic scales, they ended up
feeling somewhat like a jagged void, befitting the unholy realms holding
the runes of Zot and the casual presence of various strong undead within
the branch. They should still read as metal due to their desaturation
and gleam, at least, and probably won't read as stone or crystal due to
the former trending towards visibly discrete parts and the latter bearing
rainbow facets.

(They're made from a CC0 skill icon by frosty_rabbid and the current metal
wall tiles by Bloax. This commit comes with a little extra deployment of
the metal tile in some Zot entry vaults and a little adjustment to not use
too much of the tile for allusions that it doesn't fit, like the vaults
meant to echo the Vaults.)

--------------------------------------------------------------------------------
bfdca0e29a | regret-index | 2024-12-29 07:54:53 -0330

Prevent getting out-of-bounds in meatsprint (#4153)
[PR #4153 does two seperate things:

 * Due to newer spells and Djinn access to them, it's possible to be
   shoved into the spawning teleport room with judicious use of Hellfire
   Mortar and letting walls seal themselves back up enough times. The PR
   adds a single-tile box of generic permarock: I'm making it much thicker
   in case further problems eventually arise, and also giving it the tile
   + name of the Crucible's permarock (which directly matches up, of
   course).

 * It also buffs the weapon stats of most of the monsters' weapons, which
   marginally increases their threat value but also goes over the limits
   of what weapons can normally get. I'm a little conscientious about the
   possibility in the indefinite future state of Crawl that somebody might
   further crunch down on weapon stat caps (c.f. 5a0b83f and 6a47537),
   and it pulls attention away from the much better joke of the slay rings
   increasing indefinitely higher, so I've left that out (and thus just am
   addressing the PR directly in this seperate commit).

Closes #4153.]

--------------------------------------------------------------------------------
8748bb4102 | William S. | 2024-12-29 03:25:32 -0330

New start-up and clockwork bee tiles (#4102)
"The Orb of Zot on top of the leader board sprite is outdated, and the tile
size was inconsistent. Descent startup tile also needed an upgrade. The new
one shows stairs descending deeper into the dungeon."

[Commiter's notes: Changed the Descent icon to both have more depth /
height to each step and to use a red palette- gold palettes on the starting
menu are more information based compared to red changing the mode's
behaviour entirely, and it also corresponds to hatches being red.

The clockwork bee tile submission has been heavily adjusted, keeping the
gear of the current one in order to make it more obviously mechanical
versus the ally circle in-game and deploying a palette unlike the current
or the submitted tile to match other Forgecraft tiles Sastreii made.
(Sastreii will replace a large number of Forgecraft tiles as is at some
point in the future, but updating the tile to have a wind-up key seems
harmless enough to me.)

Closes #4102.]

--------------------------------------------------------------------------------
a1de10103b | gammafunk | 2024-12-28 22:25:43 -0600

Update DES syntax documentation on artprops

--------------------------------------------------------------------------------
9283c139d4 | gammafunk | 2024-12-28 20:52:23 -0600

Reroll items that conflict with any fixed artprops
The artprops keyword in an item_spec induces an item to be a random
artefact, but with the specified artefact properties always present. A
problem arises when the base type or sub type of the item is randomized,
since specific base/sub types can conflict with the specified
properties. For example, "any ring artprops:rF:1" will conflict with the
intrinsic rC- of a ring of ice, causing the rF+ artprop to be ignored
when that item type is rolled. For vaults that are trying to define
thematic items, having some randomly generated items ignore the
specified properties won't work. The alternative is to specify an
explicit list of acceptable subtypes in the vault, but this is onerous
and more difficult to maintain.

This commit implements rerolled random types whenever there's a conflict
between the specific fixed artprops and the item's intrinsic properties.
This rerolling is limited to 1000 attempts to avoid an infinite loop, a
scheme already in use before this commit for weapons and jewellery. We
just extend it to staves and talismans and trigger rerolls for all types
whenever there's an artprop conflict. Now the result of an item_def of
the form "any TYPE artprops:..." will always produce an item of TYPE
with a random subtype where all specified artprops can be applied. If
this proves to be impossible, for example because the specified artprops
could never be compatible with TYPE, item of TYPE with random subtype is
still generated, but with any offending artprops ignored. An error
message is printed for each conflicting artprop in this case.

--------------------------------------------------------------------------------
d6aff4a22f | gammafunk | 2024-12-28 20:52:23 -0600

Remove a special distribution for rings of slaying
Rings of slaying currently have 1/3 the chance to generate as a ring
type compared to other ring types. This was seen as necessary in older
versions, namely prior to 0.10, where slaying was added to a weapon's
base damage and hence was influenced by skills and stats. This is no
longer the case, and rings of slaying aren't markedly more powerful
than, say, a ring of Str/Dex appropriate for the player's weapon type.
This commit removes the special ring of slaying weighting so that all
rings types have the same chance.

--------------------------------------------------------------------------------
a97fc534a3 | gammafunk | 2024-12-28 20:52:23 -0600

A minor fix to randart property accounting
Before this commit, when generating randart properties that can have
both good and bad values, such as rF, Str, etc, a property could be
previously assigned a good/bad value only to later have its value
changed to the opposite type, and both instances would consume quality
points assigned to the numbers of good and bad properties despite there
being no net change. Additionally, although we only ever assign a max of
two bad properties, both could be consumed by setting a single property
to -1 twice, or for properties like Str, a different negative value
twice, since we never add to negative properties like we do to positive
ones.

This commit cleans up the logic so that, during randart generation, no
property that's already been assigned a good/bad value will ever be
subsequently switched to the opposite type of value. It also prevents
"wasting" bad properties by assigning the same one twice. It's somewhat
difficult to say whether this change results in a minor buff or a minor
nerf to artefacts, since we are both more consistently adding bad
properties but also more consistently adding good ones. A comparison of
randart stats with wizmode ^I for 1000 iterations of "any ring" both
before and after the change shows no meaningful differences in
mean/median numbers of good and bad properties nor for the overall
proportions of good/bad properties.

--------------------------------------------------------------------------------
6fa848a78e | gammafunk | 2024-12-28 20:52:23 -0600

Improve aspects of randart property assignment
Currently during randart generation, no artefact property can be
modified if it's intrinsic to the item. This means that artefact rings
of protection from fire can only ever have rF+, for example. While we
don't want to allow such rings to have less fire resistance than rF+,
there should be no problem with them having more.

This commit implements a scheme where an intrinsic property can be
modified, so long as it's in the right direction: it can increase a
property value that's positive or decrease one that's negative, so long
as the appropriate max/min is respected. I've generalized the property
mapping scheme used by jewellery and made a map for talismans to
intrinsic resistance properties by talisman type. Now all items that can
have intrinsic artefact properties are accounted for in a more unified
way.

One wrinkle for talismans is the issue of the dragon-blood talisman. We
mark rPois as intrinsic, since all players do get that property in
dragon form, but for the rF++ and rC- there's the issue of draconians
versus non-draconians. It might be reasonable to include those
properties as intrinsic only if the player is non-draconian. For
draconians, the situation is more complicated since the player doesn't
know their color until XL7. Obviously the talisman property mapping
could use knowledge of draconian color from the start of the game, but
there's a remote chance of awkwardness with an information leak.

On the other hand, if we simply don't ever include rF++/rC- in this
intrinsic mapping, since we never decrease a property past a level of
-1 anyhow, randart dragon-blood talismans will be at worst rF+ while in
form. Likewise seeing some of these talismans with rC0 or higher doesn't
seem too weird. For now I'm going with this simpler approach of
leaving out rF++/rC- from the list of intrinsic properties. This can
easily be revisited in the future with some species-specific code, if
need be.

--------------------------------------------------------------------------------
563f8729d4 | David Lawrence Ramsey | 2024-12-28 20:35:48 -0600

Fix typo.

--------------------------------------------------------------------------------
7e41ec5257 | Nikolai Lavsky | 2024-12-28 17:55:10 +0300

fix: a typo (Aliscans)

--------------------------------------------------------------------------------
f2ebe9ab39 | regret-index | 2024-12-28 06:02:27 -0330

New sky beast tile (pianoman523)
Colour adjusted away from the submission's richer blues and darker greys
to hopefully be reasonably readable as air-themed, but with a more coherent
and detailed anatomy than before. Comes with a slight description tweak to
point people towards it being feather-tailed.

--------------------------------------------------------------------------------
7e861bf89c | regret-index | 2024-12-28 06:02:08 -0330

Loose, miscellaneous tiles tweaks and additions
 * Legendary Destruction no longer shows two different backgrounds at
   once.

 * One of the withered plant tiles has been adjusted to not have any white
   corner sections and thus read as having anything under it (even if it's
   otherwise placed in the wrong corner).

 * The ever-obscure local tiles aptitudes tab now has icons to properly
   display gnoll and djinn aptitudes.

 * Dazzling Flash now has a proper Hexes + Fire palette.

 * Upheaval and Disaster Area now uses proper magma and iceblast tile
   effects. (Possibly should look into making airstrike and air-upheaval
   vfx tiles, as well as the start of LRD / tremorstone / rubble vfx
   tiles?)

 * Additional new preliminary mutation icons:
   * barachi hop: Using Sastreii's barachi player species dummy monster
     and
   * djinn flat hp: ontoclasm's apt / spell level numbers and CanofWorms'
     powered by death icons.
   * mp-powered wands: recolouring ontoclasm's device recharge.
   * sacrificed hand: CanOfWorms powered by pain icon and ontoclasm's
     sacrifical Ru dagger.
   * screaming: Denzi's Berserk Rage and Projected Noise spell icons.

 * Also a little bit of file headers and old spell icon management.

--------------------------------------------------------------------------------
c3d0ca870a | regret-index | 2024-12-27 02:43:08 -0330

New animations and a quote for alchemy / potion flavour
The conjunction of Poison Magic and Transmutations-san-forms into one
school was mostly meant as mechanical triage, making the overall school
into something one can win a three-rune game with after the former lost a
fair bit of its intended context with Conjurations changes and the latter
was quite orphaned in variety despite always having been two different
purposes slammed together. In actual flavour results, there's a lot of
different fronts to tackle:

 * Dangerous elements, minerals, and old hypothesises are somewhat
   reasonably emphasized between mercury, greek fire, fulminant gold,
   radioactivity, phlogiston, and sulphur.

 * The Elric-style transmutation of given materials is what the
   Transmutations half already did, and is a reasonable front to focus
   on for the unavoidable need to crossing over with elemental schools.

 * The philosophical reformation of the self is, of course, parcelled off
   into Shapeshifting and talismans.

 * The concocting and bottling of weird substances has increased a little
   in flavour fronts, but neither Alistair's Walking Alembic nor Fulsome
   Fusillade are in the starting spellbook for Alchemists, which leaves
   off their start as a little detached from that front. (Actually making
   inventory-occupying items regularly beyond god gifts is explicitly
   part of the modern Won't Do list, it should be noted:)
   https://github.com/crawl/crawl/wiki/Won't-Do-(2024)

To help the school a bit further on these flavour fronts (especially the
last one), I'm adding a variety of different pieces in this commit:

 * Some additional flashes of potions for Alistair's Walking Alembic
   (which also helps telling that it succeeded in mixing its potions and
   wasn't just destroyed first) and for Fulsome Fusillade (which always
   emphasized raining down flasks in the first place).

 * A visible tossed flask and messages for doing so for Mephitic Cloud,
   which has always had weak flavour around its high noise level and
   can be repurposed into being a more chemistry-focused spell. (No,
   swamp drakes won't be visibly breathing flasks.)

 * Some recoloured potion flashes also granted to Gozag's Potion Petition,
   which could do with a bit of a visual flourish.

 * A brief bit of a text on analyzing alchemy regarding mercury for the
   new Mercury Arrow spell.

(All potion graphics here continue to use CC0 resources by Shade. The
Alembic and Petition circles also use heavily altered CC0 vfx by codemanu.)

--------------------------------------------------------------------------------
491c9d3d12 | David Lawrence Ramsey | 2024-12-26 01:47:28 -0600

Add another verb to artefacts.

--------------------------------------------------------------------------------
ebbabaea00 | Nikolai Lavsky | 2024-12-24 19:31:02 +0300

fix: spike trap kills giving no XP/piety
It looks like `ZAP_SPIKE_LAUNCHER` had the default thrower,
`KILL_NON_ACTOR`, so poor Forgewrights got no XP/piety for their spike
traps killing monsters.

--------------------------------------------------------------------------------
a33de6ed39 | DracoOmega | 2024-12-23 23:14:29 -0330

Fix beam tiles for beams whose tile varies with distance travelled (r-i)
Accidentally broken by afcf47756822c0054e31f1b0fdfddaf4394db83a

--------------------------------------------------------------------------------
04647cc05b | DracoOmega | 2024-12-23 22:37:37 -0330

Fix bound souls not dropping items when you get a new one (ebering)
They properly dropped equipment when killed or when you abandoned Yred, but
replacing one bound soul with a new one caused the old one's gear to
vanish into nothingness instead.

--------------------------------------------------------------------------------
6d1d786d43 | DracoOmega | 2024-12-23 17:05:41 -0330

Fix orbs of destruction blocking targeting while with Jiyva (Flugkiller)
Jiyva's jelly protection works rather oddly, and makes even piercing beams
count as non-piecing when firing in the direction of jellies. A minor
oversight when 'can fire through monster?' code was refactored is that
targeting now treated *all* transparent monsters that way while you
worshipped Jiyva, resulting in being unable to aim beams through orbs of
destruction (among other things).

It should hopefully now properly restrict this behavior to jellies.

--------------------------------------------------------------------------------
b8190b8772 | DracoOmega | 2024-12-23 17:05:32 -0330

Fix orbs of destruction being tagged as minions
I'm a little surprised that this didn't result in them going poof when
their 'summoner' was killed, but the *intent* of the minion tag was to
indicate this, for consistency's sake.

--------------------------------------------------------------------------------
bd611b0ba5 | regret-index | 2024-12-23 03:59:54 -0330

New Depths metal wall tiles, some more vault wall tiles
Depths has a soft fey and forest theme (the grown-over barrow and cairn
spriggans previously seen in a tree-filled Swamp then appearing again
there,  various magical wildlife like spark wasps, the new alderkings).
This direction somewhat helps it feel like more than just "the furthest
reaches of Some Weird Standard Fantasy Dungeon" as other standard enemies
like elemental giants and dragons inevitably invoke. To lean a little more
into that, these new tiles here actually swing somewhat in the opposite
direction from the Depths stone wall tiles: they're fairly brighter (since
most metal tiles are distinguished by their gleam anyway) and have
experimental patterns of multi-coloured leaves. This should help the place
feel a little more uniquely magical and a little more organic, which helps
further distinguish Depths and Vaults apart as well as sets a contrast for
Zot's deployment of withered and petrified plants.

This also comes with two other wall tiles: a scorched wall stone tile, and
a tile covered in bright blue mould. Both are small parts of an experiment
to produce many wall types of specific flavours and themes in order to
push for using them more often over more disruptive features (liquid,
glass, plants) everywhere. (Using unique tiles everywhere was an old
concern of early vault devs, but my philosophy is that it's an infinitely
lesser sin than diluting a branch's identities with not-even-thematic
present enemies instead, so I'd prefer leaning over into that over time.)
The former burnt walls easily fits into Crawl in general, and the latter
is mostly awaiting an early mould-themed enemy not yet done to go
alongside it. I'll figure out more homes for their sighting and additional
decoration walls of the same sorts over time.

(These might be worth some feature descriptions in the future once there's
a way to use multiple feature names and descriptions in the same vault, as
would also help fix up 1f37800. For now, they can be a little mysterious
for those not reading commits.)

Sources:
 * Depths metal: entirely made from Surt's CC0 scraps.
 * Puffball mould stone: roctavian's edits of Denzi's stone paired with
   more of Surt's CC0 scraps.
 * Scorched stone: Denzi's other stone walls and yet further CC0 scraps
   by Surt.

--------------------------------------------------------------------------------
2636b53cb1 | regret-index | 2024-12-23 03:59:54 -0330

Update the Draconians part of the manual
This didn't get updated after 926e5b6 and 02fa12c, leaving the section
still talking about red draconian clouds and the absence of a grey
draconian breath. Both of those commits should be covered in these soft
rewrites, which were edited by the original author of those commits.

--------------------------------------------------------------------------------
193fcf71ad | regret-index | 2024-12-23 03:59:54 -0330

Replace Vaults:5 spiders and hornets with jellyfish
It gets rid of monsters that are completely harmless by V:5's depth (some
long-inherited chaff of redbacks, wolf spiders, and hornets). It
accomplishes a little bit more of the goal to put more distance between
Vaults (& Vaults:5) versus Depths, with formless jellyfish being a regular
Vaults:1-4 spawn. It also shouldn't increase the difficulty of the floor by
too much, since they're already not greatly dangerous by Vaults:4 anyway.
(They'll still be pretty rare, with about 0.34 formless jellyfish per
V:5.)

--------------------------------------------------------------------------------
69c26771d4 | DracoOmega | 2024-12-19 14:19:09 -0330

Fix the same problem if tele status is lost by felid revival (flugkiller)

--------------------------------------------------------------------------------
e3d305a3a5 | DracoOmega | 2024-12-19 14:13:02 -0330

Fix soujouring bolt / tele status removal interaction (ge0FF)
If the player manually removed the hostile teleport status from sojourning
bolt with ?tele or !cancellation, it didn't remove the prop indicating that
the pending teleport was hostile. This meant that:

a) The player was immune to having sojourning bolt used on them again until
   the next time they teleported.
b) The next time they teleported (through any other means), they would
   always teleport towards enemies. (The wyrmhole would even still come
   along for the ride, if it was still alive and on the level!)

--------------------------------------------------------------------------------
50edc0063f | David Lawrence Ramsey | 2024-12-18 19:09:10 -0600

Fix book name typo.

--------------------------------------------------------------------------------
ebda2548b9 | David Lawrence Ramsey | 2024-12-18 19:09:10 -0600

Fix enum typo.

--------------------------------------------------------------------------------
5200cac597 | DracoOmega | 2024-12-18 20:44:36 -0330

Recommend Forgewright to some species
This had been overlooked for a while now.

Mountain Dwarf and Coglin are the obvious species to get Fw recommended,
Deep Elf continues its pattern of recommending all mage starts, and I have
semi-arbitrarily also recommended it for Barachi, Formicid, and Gnoll.

--------------------------------------------------------------------------------
0192c196d7 | DracoOmega | 2024-12-18 20:42:46 -0330

Tweak djinn background recommendations
Shapeshifter may have made more sense back when it was Transmuter, but is a
fairly poor Dj background these days. But moreover, spell-less starts feel
like poor recommendations for djinn in general - not because melee djinn
are exactly awful, but from the perspective of 'relative newcomer who could
use pointing in a direction', they don't engage with djinn's core gimmick
immediately *and* will leave them with poorer spell selection all game
long.

With that in mind, I have removed both gladiator and shapeshifter, and
added conjurer, air elementalist, and warper. (Warper feels like a much
better style of 'melee' start for djinn anyway, as it gives them utility
spells which will be useful all game long.)

--------------------------------------------------------------------------------
553329c310 | DracoOmega | 2024-12-18 19:28:17 -0330

Clarify that gloves of infusion don't affect ranged attacks

--------------------------------------------------------------------------------
509b591311 | DracoOmega | 2024-12-18 19:27:54 -0330

Fix spacing of spell list when examining books (riverfiend)
It didn't get realigned after I did the same for spell cast and
memorisation menus (and Eringya's Surprising Crocodile was just slightly
too long).

--------------------------------------------------------------------------------
d8102e6941 | DracoOmega | 2024-12-18 19:13:01 -0330

Prevent rewinding clockwork bee while berserk
I could go either way on whether this is necessary, but it's arguably too
spell-like an effect to let the player do in this state.

--------------------------------------------------------------------------------
f6116cc0f7 | DracoOmega | 2024-12-18 19:06:43 -0330

Don't leak info about out-of-los monsters via seismosaurus egg (hellmonk)
An exceedingly minor benefit that was probably almost never practical to
do, but the incubating status could indicate the presence of a monster out
of the player's own LoS if it was in the egg's and they were standing next
to it.

Which really doesn't matter very much, but also seems harmless to fix.

--------------------------------------------------------------------------------
747ea1e65a | DracoOmega | 2024-12-18 19:05:27 -0330

Fix hatched seismosauruses not caring about spellpower
The egg's HD was adjusted, but the seismosaurus was accidentally always 11.

(This will result in a mild nerf below 80 power, but the spell seems to be
performing quite well and I don't think this will change that overly.)

--------------------------------------------------------------------------------
f9fe234eca | DracoOmega | 2024-12-18 18:54:34 -0330

Don't blink a monster which steps on a dispersal trap twice

--------------------------------------------------------------------------------
bcb7bb59d2 | DracoOmega | 2024-12-18 18:53:42 -0330

Fix monster stasis not blocking a number of effects it should
Stepping on a dispersal trap, being hit by a wand of warping, and darts
of curare all worked on monsters with stasis, despite that supposedly
conveying immunity to such things.

Part of this stems from monster::blink() not checking no_tele() (while
player::blink() *did* check this). A couple uses of monster::blink()
relied on this behavior (such as displacing monsters at the player's
location at the end of Step From Time), so I have added a parameter to
ignore stasis in those few cases. Currently divine or system-related
effects should be the only things that do.

(Also added a message if you land disjunction darts on an immune
target.)

--------------------------------------------------------------------------------
d6f4b2210c | DracoOmega | 2024-12-18 18:45:41 -0330

Fix "A My Sojourn through Swampland"

--------------------------------------------------------------------------------
ce4a908ce7 | DracoOmega | 2024-12-18 18:45:13 -0330

Remove vestigal prefer_ranged flag from Platinum Paragon (ge0FF)
This was a remnant of an earlier design that never even touched trunk.

--------------------------------------------------------------------------------
c79a71ed66 | DracoOmega | 2024-12-18 17:30:16 -0330

Remove an errant print statement (riverfiend)
Overlooked when cleaning up local debugging code from the recent ID flag
simplification.

--------------------------------------------------------------------------------
7c13caed80 | Nikolai Lavsky | 2024-12-17 16:10:49 +0300

fix: add two new melee attack flavours to the monster utility
This commit adds handling of `AF_ALEMBIC` and `AF_BOMBLET` flavours,
which were added in 2b47ff03 and 998f9657 respectively.

--------------------------------------------------------------------------------
0f6f25fa8a | Nikolai Lavsky | 2024-12-17 15:45:58 +0300

build: add missing Python packages for the build_monster job

--------------------------------------------------------------------------------
3074593ffc | Nikolai Lavsky | 2024-12-17 15:33:23 +0300

fix: the monster build
It was broken in two places:
* there was a missing header file (008097b4);
* a couple of variables were declared inside a `case` statement without
  a scope (abc8f7ac).

--------------------------------------------------------------------------------
0919e08b47 | Nikolai Lavsky | 2024-12-17 15:11:36 +0300

build: add a GitHub Actions job for building the monster utility
Currently it's hard to notice when a change breaks the monster utility.
Because even when it's broken, the bots just keep using the latest good
version, and the game itself can compile without any errors.

Let's add a CI check for this.

--------------------------------------------------------------------------------
bb9e8c554f | DracoOmega | 2024-12-16 19:15:19 -0330

Fix a handful of logic errors with wyrmhole hostile teleport
It can no longer teleport the player into no_tele_into locations (though
this may have been unlikely in practice, since it still required LoS to a
monster that *wasn't* standing on a no_tele_into spot.

It no longer picks the first valid spot near a monster, but correctly picks
a random one in LoS of it.

It no longer needlessly counts all monsters in LoS of spots near every
possible monster on the floor (which could cause it to pluralize a message
incorrectly, beyond just wasting time.)

It will fall back on a random teleport if there are no valid spaces near
any valid monster on the floor (instead of not moving the player at all).

It won't perform teleport-related interrupts if you don't actually
teleport.

It won't 'blink' the wyrmhole if the player doesn't actually teleport.

It won't incorrectly amuse Xom even if you don't teleport (for what little
this matters...)

It won't crash if the wyrmhole is dead or gone by the time it actives.

It won't instantly trigger whenever the player presses &B to aim a wizmode
teleport (which even left you with a NON-hostile teleport duration
still active afterward...)

(Also add a few explanatory comments throughout the function.)

--------------------------------------------------------------------------------
b45a8adffe | DracoOmega | 2024-12-16 16:07:41 -0330

Make x default to starting on the player's position again (Ge0FF)
Accidentally changed by eb7098a

--------------------------------------------------------------------------------
2f8c66fcfe | DracoOmega | 2024-12-16 16:07:34 -0330

Fix a crash with issuing orders
If you had a saved 'previous target', but that target was no longer around
(possibly because you'd killed it), the game would crash before even fully
printing the prompt.

--------------------------------------------------------------------------------
8436cd0d56 | David Lawrence Ramsey | 2024-12-15 20:15:14 -0600

Fix spelling.

--------------------------------------------------------------------------------
400cf8515c | regret-index | 2024-12-15 21:45:49 -0330

More 0.33 changelog updates (up through f9d81107)
Aside from the regular catch-up and this recent monster work, this also
fits in a mention of changes to pitsprint I forgot in the last 0.33
changelog work.

--------------------------------------------------------------------------------
f9d8110708 | regret-index | 2024-12-15 21:29:17 -0330

Replace current sky beast mechanics with AF_AIRSTRIKE
Sky beasts were added in fe51cf0 for the sheer sake of variety in a very
different development era than the current day. They used to be a source
of mutagenic flesh, but corpse eating has been removed; they used to be
another earlygame monster, but with orc wizards consistently getting
invisibility in the spellbook squashing they're not much of a tutorial
beyond making people start walking backwards for the invisibility to wear
off to instead get random attacks of opportunity; and they use AF_ELEC,
which barely matters compared to more damage considering the lack of
chance to find rElec that early outside of starting off as a Gargoyle.
Still, it is also nice to have early air-themed monsters, as long as Crawl
is going to be reliant in some fashion on the fantasy cliches of the
classical elements, so they deserve a rework rather than removal outright.

As such, they now drop both AF_ELEC and the flickering invisiblity effect
for the new AF_AIRSTRIKE introduced in the previous commit. This swaps out
their 5-6 elec damage (ignoring AC if the first hit deals damage) for a
range between 4-5 physical damage when fully surrounded to a terrifying
14-18 with 7 open air tiles (i.e. with only the sky beast adjacent.) This
seems quite dangerous, but the invisibility bonuses to sky beasts were
quite notable at the point in the game one fought them, and in a full
corridor it'll do about the same damage with slightly more AC-respecting.
It'll kill a lot of blind autofight tactics, but there's not much point
to new monster gimmicks if failing to respect them courts death.

To try to make this new change more obvious, their tile has also been
flipped upside-down. This may be quite silly, but it has always had a
relatively difficult-to-parse tile, and should still visually work as a
ray-like beast swooping down from mid-flight.

--------------------------------------------------------------------------------
abc8f7acd2 | regret-index | 2024-12-15 21:29:17 -0330

Add AF_AIRSTRIKE, adjust Airstrike messaging
Crawl's differing elements have very different degrees of representation
throughout the game, in some part influenced each by the different spells
available back in single-digit-version Stone Soup days. Fire gets many
repeats of bolt and fireball and clouds, Ice only rarely gets its
explosion and uses a few gimmicks repeatedly like the Frozen status or
Creeping Frost, Earth gets all sorts of strange connections between metal
and corrosion and slowness and invulnerability, and Air... in terms of
repeatable gimmicks gets Lightning Bolt, repositioning Lightning Bolt, and
Airstrike. The last is at least pretty unique amongst effects in Crawl,
and could help with further flying + air themes for monsters in Crawl, so
expanding it a little further in a weaker context seems reasonable.

This new attack flavour is sort of like casting Airstrike whenever a
monster hits, doing extra damage that scales both with HD and with the
open spaces around the target. It ignores the usual AC check for flavour
triggering (like AF_PURE_FIRE) because it's about manipulating the air
in the space directly around the player (and to make the flat damage
of attacks not be nearly so easily ignored by AC). The brand damage
itself, however, still checks AC, unlike most damage brands. The damage
formula is pretty different from normal Airstrike (in the same way AF_COLD
is nothing like Freeze or Bolt of Cold), with minimal flat damage
component (since that was in the attack itself) and also far more HD and
open space based damage scaling.

      | 0 spaces     | 4 spaces     | 7 spaces
--------------------------------------------------
5 HD  | 4-5 damage   | 9-12 damage  | 14-18 damage
--------------------------------------------------
10 HD | 10-12 damage | 24-28 damage | 35-40 damage
--------------------------------------------------
15 HD | 18-19 damage | 42-46 danage | 61-66 damage

(Strictly speaking, a monster with a polearm _could_ get this brand, but
none of the handful of monster concepts currently planned are going to
wield weapons, so it's extraordinarily unlikely the full 8-space bonus
will ever come up.)

Compared to Airstrike itself, it's inherently less dangerous in terms of
its range and the capacity to dodge or block the initial hit. Of course,
it's also inherently potentially more dangerous if one doesn't actually
respect it enough to move near walls because it'll be activating on
_every_ successful hit instead of just whenever a monster feels like
casting a spell. It should still feel reasonably thematic (since Airstrike
is the iconic one air spell that doesn't use electric damage), and in
particular it may help less observant newcomers notice how Airstrike's
open-air damage bonuses work later on if the brand is given to an
early-game monster. (It's hard to use particularly late in the game in a
number of layouts, but it should be fine in some Lair water branches or
Hells layouts....)

This also comes with some different messages in both the spell and the
attack flavour scaling to the number of open spaces one has around them:
one for 0-2 spaces, one for 3-5 spaces, and one for 6-8 spaces.

--------------------------------------------------------------------------------
637b6df254 | regret-index | 2024-12-15 21:29:17 -0330

New monster: wyrmholes, translocation drakes(?) for Depths / Zot / Pan
I do not apologize for the pun.

Crawl contains a fair number of Translocations spells for players, but
beyond the widespread deployment of blinking, knockback, and the rare mage
who has learned Banishment without worshipping Lugonu, very few monsters
in Crawl translate such a prominent school into their own mechanics. This
reaches as far as dragons and drakes embodying and breathing most other
spell schools yet none in this, a matter which can be recitified in a
fashion that also can help establish more flavour about the ease of
tearing through reality in this setting. (Being deployed in Depths can
also lead a little into Zot's draconian shifters being quite notable
compared to a minimal use of translocations themes elsewhere.)

These new wyrmhole enemies for Depths are insubstantial, non-living,
flying holes in spacetime. (I personally assert that the pun's no more
silly than "glass eye", "marrowcuda", or the deployment of jellyfish in
the Slime Pits each made by seperate devs. They're drakes, rather than
dragons, due to the 'D'ragon glyph being overstuffed & overdone while
the dra'k'e glyph has many free spots to work with; this also puts them at
the opposite end of threat and spawning rate compared to V's lindwurms.)
They've got much higher EV than comparative top-tier dragons, are speed
13, get a singular strong bite with a brand effect instead of trampling
or claw attacks (shadow dragons also have branded bite attacks!), and
possess but two simple mechanics that should make them more than
sufficiently nasty for another Depths out-of-depth:

 * AF_BLINK_WITH, as was added to phantoms all the way back in 39035a7
   and never used again afterwards. Aside from mechanical bookends in a
   position where many more monsters may accompany them and players have
   far more tools to handle such repositioning, it also reasonably offsets
   how Depths has more diggable walls and more corridors than most other
   lategame branches.

 * An experimental new (natural) spell, "Sojourning Bolt". This breath
   has a flat 50% chance to set other monsters to teleport, and for
   players alone to get a new red "!Tele!" status. Monster uses of
   Teleport Other previously failed due to not reliably placing players
   into actual danger, which was addressed for the teleportitis mutation
   back in db80c50 by always aiming for hostiles on the floor if possible.
   Likewise, this hopefully distinguishable teleport status will do the
   same on a delay _and_ bring the caster long, but as with all teleports
   it can be cancelled by reading another teleport. In Depths, this should
   usually have a vault or unexplored space to toss players and divers
   into, but players should also have enough tools plus enough spare
   teleport scrolls to handle this one way or another.

While native to Depths as a rare out-of-depth, this monster has also been
put in a small number of magic-themed vaults and dragon-themed vaults in
both Depths and Zot, as well as the one ghost moth demonic rune vault in
Pan (those _are_ explicitly interdimensional threats). Their description
tries to form more worldbuilding connective tissue with both big dragon
branches also being linked to demon dimensions (c.f. the work done with
forests and fae in 18c7c0e). Their supportive capacities are more
intertwined with damage to the player than most other support monsters,
and should reasonably have decent chances of suceeding due to their high
health, but there's only about 1 on average per Depths as a highly
dangerous out-of-depth. Let's see how much people actually fear them or
not.

Their sparklingly animated tile is sourced from ontoclasm's old lava
worms, Denzi's old lindwurms and the Portal spell icon, plus roctavian's
old shadow fiends. The Sojourning Bolt spell combines Denzi's tiles with
dolorous's edit of ontoclasm's old Bend Space icon.

--------------------------------------------------------------------------------
357dd4766e | regret-index | 2024-12-15 21:29:16 -0330

New monster: oni incarcerators, top-tier monsters for Gehenna
The Hells are uneven- not just statistically, but also in variety. The
Iron City of Dis and Tartarus have 4 essentially-unique monsters that
spawn in them (and 14 overall), while Gehenna and Cocytus have 3 (with
13 overall). Elemental themes are already somewhat played-out as is over
the full course of Crawl in comparison to the looser themes of Dis or the
broad re-uses of Tartarus, but each of the Hells as have gotten attention
over the years could do with being a little closer to each other, and the
most Gehenna has to its name are fiery demons and damnation already
heavily emphasized in other branches. As such, while it's still a fair
number of months yet before more thorough efforts are extended towards
extended, I'm willing to break some of the already-asymmetric arrangement.

Oni incarcerators are a new high-tier threat for Gehenna, using an already
functional combination of mechanics while also making use of the ogre to
oni species change for additional (mythologically accurate!) flavour.
These oni catch the various damned souls of the hells and keep in line,
unable to escape, with reasonably high melee damage, a flaming two-handed
polearm, AF_DRAG, and a decent cast rate on Manifold Assault. These
two last points _stack_, in that being attacked through Manifold Assault
allows AF_DRAG to move victims a square closer to the caster. This should
be uniquely scary (as Manifold Assault skips EV and SH since its level
upgrade, and it works across the whole screen to hit both the player and
their allies), while still unique in its play pattern: compared to Harpoon
Shot, it's far shorter a distance to be continuously pulled, but it's far
more likely to endanger players due to skipping several defenses. It
should also rather suit a branch focused on irresistable explosions.

(Aside from Manifold Assault, these oni always wear fire dragon scales, so
they can reasonably handle other fireballs in the branch, and otherwise
have atrocious EV & AC plus high health- they're still a bit lower in
stats than iron giants overall. They also get Throw Bolas- the -Move spell
introduced for redone ironbound beastmaster in a727347- as an occasional
cantrip to threaten characters on the opposite end of the AC/EV spectrum.
This also adjusts hellephants to scale less with the depth of the branch-
they're not that threatening for Gehenna- to not screw with quite as many
monsters distributions in the branch otherwise.)

They should serve reasonably as kill-on-sight targets the same way
brimstone fiends and hellions already do for the branch, but with rather
different means of resisting it (through high AC and rF rather than having
other enemies hold back explosions), and serve as a rare highlight of
danger when deep into Gehenna comparable to the same deployment of shard
shrikes, iron giants, and doom hounds. (I'd prefer the Hells not get too
much harder while future roulette plans need to inherently tone it down,
but adjusting numbers down is fairly easier than making sufficient variety
and unique dramatics manifest. There's only a little under 5 per Gehenna
trip currently, anyway.)

Their tile is a composite of Sastreii's base oni player-dummy-monster tile
and the old draconian zealot tile by roctavian.

TODO: To try and emphasize their theme of serving gods in general rather
than just being innately evil (as these aren't unholy any more than the
random nonliving monsters in the hells are, nor the random giants),
adding a holy-servant blue oni would be a good suppliment.

--------------------------------------------------------------------------------
af1b155deb | DracoOmega | 2024-12-13 18:32:48 -0330

Remember to call apply_location_effects after Crocodile movement (Zeldest)

--------------------------------------------------------------------------------
e59816bd28 | Implojin | 2024-12-12 20:14:07 -0600

Fix trove entries being free
As reported in #4171, players were able to enter troves by responding
'Y' to the prompt regardless of whether they had the necessary items.
008097b4cb changed the appropriate lua call here and it seems to have
been failing silently, until the player tried to interact with the
trove's lua marker.

Fixes #4171

--------------------------------------------------------------------------------
4bf1a7f943 | DracoOmega | 2024-12-12 22:06:22 -0330

Fix more broken item description lookups (Patrick2011b)
This time with non-artefact ego armour.

I suspect there are more of these bugs lurking here and there; I ought to
do a more thorough survey for such in the future.

--------------------------------------------------------------------------------
c3ec0608c4 | DracoOmega | 2024-12-12 18:50:55 -0330

Remove another unnecessary ID-related function
(It was now used only in one place, and seems to be superfluous in this
context compared to a simple !is_identified())

--------------------------------------------------------------------------------
a1b9855ae8 | DracoOmega | 2024-12-12 18:49:42 -0330

Fix some spurious {unknown} inscriptions in morgue files
This would be appended even to identified randarts, since those mostly
don't *have* type IDs.

--------------------------------------------------------------------------------
ac9c2c9ce0 | DracoOmega | 2024-12-12 18:29:53 -0330

Fix Fedhas ballistos destroying briars (and related problems) (Sdynet)
After the summon backend refactoring, most plants created by Fedhas
abilities no longer counted as worshipping Fedhas. But it turns out that
this was one of the very few cases where that had mechanical implications!
Only Fedhas-worshipping plants can fire through other plants (which meant
that oklobs could no longer fire through neutral plants, ballisto spores
could destroy friendly briars, etc.)

This fixes #4168

However, until recently, the ballisto problem was *itself* masked by
explosion damage being mistakenly attributed to the player instead of an
allied monster. After that was fixed, the original problem was revealed.

Now these plants should all function properly once more.

--------------------------------------------------------------------------------
eb329c71a5 | DracoOmega | 2024-12-12 17:55:05 -0330

Fix webtiles hotbar items appearing unidentified when known (BaconRulez)
Webtiles caches properties of player items and only updates them when it
detects that they have changed, but since item type knowledge is now
included in item_def::is_identified(), both the cached and new item were
returning the same tile (which meant that the hotbar would not update from
the unidentified tile at all, until one reloaded their game.)

Testing ID flags directly here feels a little awkward, but probably an
adequate fix?

--------------------------------------------------------------------------------
e303688651 | DracoOmega | 2024-12-12 17:51:28 -0330

Fix wands not auto-identifying when bought from an antique shop
This fixes #4170

--------------------------------------------------------------------------------
eb7098ad9d | DracoOmega | 2024-12-11 17:47:46 -0330

Fix targeting UI for phantom mirror (and a few other things)
When I made TARG_ANY not cycle through monsters (so that dig/gavotte
wouldn't aim at monsters by default, which doesn't actually make sense for
them), I accidentally broke this cycling for several *non*-spell effects
that were still using it (and in some cases, not even having a proper
hit function.)

This is a fairly minimal-effort improvement that should at least restore as
good functionality to phantom mirror (and several god abilities) as existed
before the major targeting rewrite. But in future, it might be nice to
make, for instance, Wall Jump actually target walls by default.

--------------------------------------------------------------------------------
3dd2b31670 | DracoOmega | 2024-12-11 17:43:39 -0330

Fix Rending Blade being hostile to Oka worshippers (Ge0FF)

--------------------------------------------------------------------------------
4374b4c6da | DracoOmega | 2024-12-11 16:02:22 -0330

Fix DB description lookup of identified armour not working (NotBatman)
It was accidentally including the armour plusses in the DBName.

--------------------------------------------------------------------------------
577656edd5 | DracoOmega | 2024-12-11 15:57:28 -0330

Fix a webtiles crash with monster player tiles (gammafunk)
008097b accidentally gave the monster_info the player's actual weapon and
shield instead of a copy of them, leading to deleting a pointer that was
still in use.

--------------------------------------------------------------------------------
008097b4cb | DracoOmega | 2024-12-11 02:47:28 -0330

Squash all ID flags into one, refactor heavily
Crawl's identification game has grown more and more simple over the years,
but much of the *backend* for its old complexity remained in the code:
there were flags for individually identifying an item's type, plusses, and
even each individual artprop of every artefact. At one point in time, these
all served a purpose, but most of them are redundant or unnecessary now.

This replaces all existing ID flags with a single one, ISFLAG_IDENTIFIED,
and refactors a ton of code to be simpler and more clear; items are now
either fully identified or unidentified.

Multiple completely unnused functions have been removed, a few more have
been renamed for clarity, and identification checks for situations where
un-ID'd items should be impossible (ie: checking the ID status of equipment
the player is currently wearing) are also removed. Old uses of
set_ident_flags() and set_ident_type() are both folded into identify_item()
as appropriate.

get_item_known_info() is removed entirely. With item identification being
binary and all monster equipment being pre-identified, this felt like
overkill for most current uses. Instead, we just hide unknown properties of
items in player-facing description, rather than making a copy of every item
with all unknown properties removed (in fact, most uses of this function
effectively did so already.) ID checks were added to a few clue item
functions, but the only place that required any special handling (as far as
I noticed, at least) was calculating attack delay with an unidentified
weapon with a speed or heavy brand, and that can be handled more simply.

The stanard way to check whether an item is identified is now
item_def::is_identified(), which checks not only the ISFLAG_IDENTIFIED on
the item itself, but whether the item *type* is known. (A less obvious
effect of get_item_known_info was that the item copy could be *more*
identified than the original in many cases - in fact, this was seemingly
how the game showed items on the floor whose type was known, but which you
had not yet picked up, as identified - but that functionality is no longer
needed.)

Since there are no longer multiple levels of identification, itemspec
identification syntax is changed somewhat. Instead of "ident:all" or
"ident:type", there is just "pre_id". (I wanted to just use "ident"
originally, but this ran into issues with scrolls of IDENTification and
trIDENTs...)

One minor loss is that item_def::name can no longer be passed
ISFLAG_KNOWN_PLUSSES to hide printing of plusses on items, but on reviewing
all current uses of this, approximately the only change I can see is that
item plusses will be used for the message about manifold assault being
incompatible with your current weapon, and the name of armour echoes (which
is arguably an improvement for them, now that they're not longer +0 all the
time). DESC_DBNAME no longer includes plusses by default (it never made
sense there).

Given this was a complicated and far-reaching refactor, it is possible some
additional bugs remain, but I've verified a plethora of different
interactions, both in wizmode and actual gameplay, and they seem correct.
Fingers crossed.

--------------------------------------------------------------------------------
146f489888 | David Lawrence Ramsey | 2024-12-09 18:26:10 -0600

Add another mythical creature to artefacts.
According to E. Nesbit's "The Book of Dragons", it's an inverse griffon,
with the lion half in the front and the eagle half in the back. It's
spelled leo-griff there, but that doesn't fit the style of e.g.
hippogriff.

--------------------------------------------------------------------------------
1592f7d419 | regret-index | 2024-12-09 20:02:47 -0330

Set up a four-month-long gag (Darby)
The process for this went:

 * Reading through ToME4's list of spell effects and noticing the capacity
   to make one of one's ally skeletons a Lord Of Skulls, then
 * comparing Crawl's lack of skeleton spell allies these days (to recieve
   such a title) to one of Dragon Quest's greatest monster designs, the
   guaardvark.

The end results should somewhat reasonably work even without this context,
in terms of emphasizing how this perpetually-joyful-looking marsupial has
over a hundred thousand kills under its name in this ever-so-violent video
game.

--------------------------------------------------------------------------------
bd2725d2c0 | jjjingleheimer | 2024-12-09 20:02:47 -0330

Add tile for player under Glaive of Prune curse (#3239)
It would be helpful for some visual to see when the prune curse kicks in,
& adds fun flavor.

[Committer's notes: Decided on one of the submissions that didn't have any
icy effects on it, due to either coming off as closer to fire or being very
obviously cut off, and desaturated it a bit from the Glaive of Prune's
colours to try and get closer to the specific dark glossiness of a prune.
Implemented actually displaying this with the tech introduced for a31ef7c,
and cleared out a redundant tile while doing so. It's a little weird
looking (though prunes are not the most photogenic of food in the first
place), but the visuals when it happens are 100% worth it, so I am grateful
for the submission.

Closes #3239.]

--------------------------------------------------------------------------------
a6ff03a38b | Implojin | 2024-12-09 07:46:56 -0600

Enable some slow-swap artps on talismans (Lici)
This enables +invis, harm, and rampage as possible randart talisman
artps.

It does not enable -cast for now, as an intentional design choice,
because we want to encourage spellcaster -> shapeshifting skill
transitions.

It also does not enable regen, because of an extant regen-related
crash in the underlying item deactivation code. (TODO: fix this)

--------------------------------------------------------------------------------
2ebf7937d9 | Implojin | 2024-12-07 14:44:30 -0600

Fix a des typo (Pinkbeast)

--------------------------------------------------------------------------------
7c3642ac46 | Implojin | 2024-12-07 10:25:43 -0600

Don't skip mutation and forms checks when equipping bardings
As reported in #4142, Nagas were previously able to equip bardings
while in beast form. This was because `can_wear_armour` was returning
true early when equipping bardings, thus skipping the mutation and
forms checks further down in the function.

Fixes #4142
Closes #4148

--------------------------------------------------------------------------------
b64493d6d0 | Implojin | 2024-12-07 07:56:09 -0600

Remove a spurious untransform barding check
As far as I can tell, it isn't currently possible to wear boots on a
barding species while transformed. Also, special casing this slot
removal exclusive to boots on barding species was super weird; if this
fix was previously needed, it seems like it should have been handled
on the equip side.

(Did we ever have a form that *intentionally* gave temporary legs with
an attached equip slot??)

--------------------------------------------------------------------------------
fb585edb74 | brandon s allbery kf8nh | 2024-12-07 06:30:20 -0600

remove old g++ check
The pattern matches Arch's 14.2.x, which leads to inconsistent
optimization and crashes with their build flags.

Meanwhile, (a) OS X no longer ships the ancient gcc/g++ it's
trying to avoid, and (b) akrasiac was at some point upgraded to
a gcc/g++ that supports C++11, so just remove the whole thing
instead of trying to fix it.

--------------------------------------------------------------------------------
80a0b1252b | regret-index | 2024-12-07 01:59:07 -0330

Vault review ever-repeating
Worthy of note:

 * A few decorative altar vaults to Chei and Oka can now appear in Snake,
   and a few more vaults closer to the tone of V than Depths (using e.g.
   crystal guardians or slime creatures) have been moved to the former.

 * In an experimental and incomplete fashion, a small number of Elf end
   vaults that had singular single-tile corridors for entrances now have
   diagonal entryways that allow for mild ducking around corners but also
   don't make it quite so easy to funnel enemies down a single line, to try
   and mildly discourage digging tactics nearly as much as the branch
   already does for the first ~50% of the end vault. Possibly these stone
   entrance paths want to get fairly larger still to more meaningfully
   discourage such, but I'm wary of doing too much with this when the end
   castle layout wants more discrete singular boxes....

 * Yet more small amounts of beast and serpent talismans are in thematic
   vaults early on.

 * Some of the statistically weaker Pan lord vaults and Swamp end vaults
   have been nudged upwards again.

 * The last couple of rounds of arenasprint are slightly more vicious
   yet again, due to the ceiling already being quite high and the discrete
   nature of waves being easy to adjust. Some day I'll do enough fresher
   tests to get a feel for the overall wave balance.

--------------------------------------------------------------------------------
a893128bbb | DracoOmega | 2024-12-06 19:21:50 -0330

Fix bombard having the wrong projectile tile

--------------------------------------------------------------------------------
5a6c091abe | gammafunk | 2024-12-06 14:13:20 -0600

Fix the build on CAO
Apparently CAO's gcc 4.7 doesn't like that various calls to std::sort()
have lambdas with non-const arguments. We're not sure precisely why it's
complaining, since this doesn't happen with non-ancient versions of gcc.
Until we can upgrade CAO's toolchain, this fix will allow CAO's crawl
builds to complete.

--------------------------------------------------------------------------------
f8f82a2dde | DracoOmega | 2024-12-06 06:43:47 -0330

Fix Searing Ray crashing when cast
Broken by 1f3234b. I should have paid more attention to the 'else' below
that...

Fixes #4162

--------------------------------------------------------------------------------
8bf3021b3d | DracoOmega | 2024-12-05 23:24:28 -0330

Revert "Make banish animation (and similar) fill the webtiles viewport properly"
This seems to be causing crashes with shift+X that I don't yet know the
cause of, so I'm reverting for now in hope that the slow build servers
don't catch this.

This reverts commit 761acde7cbba57105fef83c912b375ac92b690cd.

--------------------------------------------------------------------------------
ceed6161e0 | DracoOmega | 2024-12-05 21:25:23 -0330

Reduce Diamond Sawblade damage
This spell has gotten overall positive feedback, but is probably a little
overtuned. This reduces its damage output by ~20% (a little less at low
power, and a little more at high power.)

--------------------------------------------------------------------------------
ec6189af12 | DracoOmega | 2024-12-05 21:16:14 -0330

Allow Spike Launcher to be built in any type of wall
I'd originally thought that limiting it to rock walls would be a positional
restriction of mild interest (the vast majority of early walls are rock
already, after all, and the spell is long past its lifespan by the time
that changes). This has been somewhat unpopular, but the biggest motivator
for this change was realizing that this makes it almost completely unusable
in Sprints. Arguably that isn't the biggest deal with the current state of
Sprint maintenance, but I'm also not sure 'rock only' is a critical part of
the spell's design either. So now it works in all walls.

There is no functional benefit to making the trap in a metal or crystal
wall, compared to rock, but it does work. (I didn't want to incentivize
people dragging things back to an isolated crystal pillar in earlygame, and
the random targeting might feel worse if it could miss the 'good' wall
nearby.)

This also adds a static targeter (which coincidentally fixes a crash with
the default one, which thought it was a beam spell with -1 range...)

--------------------------------------------------------------------------------
1f3234b322 | DracoOmega | 2024-12-05 20:55:42 -0330

Fix Searing Ray charging an extra 1 MP on its first turn active
If you only had 2 MP, it would still work, but would eat up 3 MP if you had
it available.

If you were a djinn at 3 HP, though, it would just crash.

--------------------------------------------------------------------------------
ddd2a15787 | DracoOmega | 2024-12-05 20:54:52 -0330

Fix sawblades still spinning in Sanctuaries (Bn)

--------------------------------------------------------------------------------
698b4d415c | DracoOmega | 2024-12-05 20:53:43 -0330

Don't let alembic brew potions by hitting firewood (Oneirical)
I considered ignoring peripheral monsters also, but that might be
unintuitive and those at least typically only show up mid-battle.

--------------------------------------------------------------------------------
d85df88ef1 | DracoOmega | 2024-12-05 20:52:43 -0330

Fix pillars of rime not expiring with time (Oneirical)
And make them last just a touch longer than they were supposed to.

(Was accidentally broken bye the summon refactor.)

--------------------------------------------------------------------------------
761acde7cb | DracoOmega | 2024-12-05 19:34:37 -0330

Make banish animation (and similar) fill the webtiles viewport properly
crawl_view.viewsz is supposed to represent the size of the viewable
viewport, but webtiles only ever used the default value (33x17, for some
unclear reason...) rather than adjust it based on the actual viewable area.

The map itself was clearly drawn without needing to consult it, but this
made some animations take up a fixed size in the middle of the screen
rather than the whole viewable area. (It also negatively affected feature
cycling with x, and potentially some other UI things that expected viewsz
to correspond to the viewable area, instead of typically being smaller than
it.)

Given that I still have low confidence with webtiles rendering, I'm not
completely confident something else didn't rely on the old (seemingly
buggy) behavior, but fingers crossed...

--------------------------------------------------------------------------------
9d6bf4ca7f | DracoOmega | 2024-12-05 06:05:24 -0330

Disallow casting Poisonous Vapours on yourself
(It currently crashes if you do so, but I'm not especially sure there's any
good reason to allow it anyway.)

--------------------------------------------------------------------------------
34712576ec | regret-index | 2024-12-05 00:53:27 -0330

Tweak Call of Chaos's target checks
It used to only exclude firewood, but not tentacle segments or projectiles.
Providing message spam _and_ visual confusion for buffing tentacle
segments (that may despawn anyway as part of tentacle movement) is
particularly obvious with Mnoleg having both Call of Chaos and Malign
Gateway. As such, it now uses the is_peripheral check from 62137d7 to
cover those other missing parts.

--------------------------------------------------------------------------------
7ca0e80452 | regret-index | 2024-12-05 00:45:36 -0330

Further Forgecraft tiles (Sastreii)
Spell icons for Nazja's Percussive Tempering and Splinterfrost Shell,
alongside a new monster look for platinum paragons.

--------------------------------------------------------------------------------
7ba2e51c61 | regret-index | 2024-12-05 00:16:29 -0330

Prevent Xom bazaar trips in Sprint
Crawl crashes rather unhappily when Xom tries to enact bazaar banishment,
due to all branches outside of the Sprint map not being allowed to exist.
It'd screw up arenasprint and meatsprint timers, and Lugonu doesn't get to
do any Abyss shenanigans either, so we might as well just disable it both
from Xom's choices and wizmode calls.

--------------------------------------------------------------------------------
988c20a3a5 | regret-index | 2024-12-04 23:50:30 -0330

Remove an unused enum
dragon_class_type was used for Summon Drakes having a chance to also pick
base draconians or random dragons (and for bonus points, listed all the
drakes under lizards due to having a chance for komodo dragons), but hasn't
been used for such since the Summon Drakes changes in 9b5a216 (as 0b5e84b
carried forward).

--------------------------------------------------------------------------------
afdce70f48 | DracoOmega | 2024-12-04 21:04:50 -0330

Fix the game thinking Mercury Arrow could hit 1 past its range (pisaster)
This was true of Mercury Vapours, but you only get the splash effect when
you actually hit something now, so it cannot affect things with no enemy
in range.

--------------------------------------------------------------------------------
ae92cfba07 | DracoOmega | 2024-12-04 18:41:24 -0330

Fix randart staves getting verbose descriptons in dumps (Ge0FF)
Other weapons did not get the block about how your skill training would
affect them (which even contained unstripped colour tags).

--------------------------------------------------------------------------------
a90abc6ff1 | DracoOmega | 2024-12-04 17:32:42 -0330

Fix custom books shop for new spells
(Oops)

--------------------------------------------------------------------------------
c082a88ec8 | DracoOmega | 2024-12-04 17:12:38 -0330

Don't weaken monsters with no attacks
(It cannot actually do anything to them, so don't bother announcing.)

--------------------------------------------------------------------------------
f97d59c571 | DracoOmega | 2024-12-04 17:12:38 -0330

Remove rPois from endoplasms
With Alchemist's starting spell now literally unable to harm monsters with
rPois, an early endoplasm seems unnecessarily threatening to XL 1
alchemists. So let's just cut their rPois entirely (who says all slimes are
made of the same sort of stuff, anyway, right?). This should have little
meaningful effect on anyone else.

--------------------------------------------------------------------------------
baccc4ca43 | DracoOmega | 2024-12-04 17:12:33 -0330

Experimentally adjust Alchemist level 1/2 spells
Mercury Vapours was a spell that many players struggled to find worth
using. The weakening effect could hit the player in close range (making it
less good for helping melee encounters than one would like), and the very
short range left its smite-targeting only mildly useful. The fact that the
weakness ignored rPois was *intended* to help alchemists a little against
poison-immune encounters, but generally it didn't help by *enough* to make
it worth fighting poison-immune enemies instead of fleeing. It certainly
wasn't useless, but it feels like we can do better.

This is an attempt to make the Alchemist level 2 feel a bit better, while
keeping the uses between their level 1 and 2 spell more distinct. Mercury
Vapours is replaced with Mercury Arrow, a range 4 level 2 conj/alchemy
spell that does partially-irresistable poison damage (just like sting did)
and inflicts Weakness on the enemy hit (and all enemies adjacent to it)
using the same formula Mercury Vapours used to. It *cannot* weaken the
player. Sting is replaced by Poisonous Vapours (slightly different than the
old spell by that name). It is range 3 level 1 alch/air spell that does a
tiny bit of AC-ignoring poison and inflicts 1 level of poison on a target,
but does not affect anything with rPois at all - essentially a
weaker/shorter-range version of 0.30 poisonous vapours, but level 1.

The hope here is that the level 2 is more worth using in more situations
(including sometimes against rPois enemies, even if they remain a distinct
weakness for early alchemists), while making the level 1 a bit more
distinct in usage compared to a couple other level 1 spells and Sting. (It
retains utility for a little while by being able to poison enemies behind
other enemies, even while mercury arrow does more burst damage.)

(Sting continues to exist as a monster spell, for the very few current uses
of it.)

Let's see how this feels!

--------------------------------------------------------------------------------
67a601c709 | regret-index | 2024-12-04 16:53:07 -0330

Vault review: partisan distribution edition
This comes with an occasional reformatting to vaults as I came across them,
of course. Vaults listing off all types of weapons now deploy partisans as
long as they featured polearms, aren't looking for demonic weapons or
two-handers across weapon types or hydra-head chopping capabilities, and
especially if they were otherwise looking for one-handed weapons. They
regularly replace in vaults a number of lair-branch-or-later halberd and
glaive uses, since both of those are still already thrice and twice as
common respectively and this is meant to help prop polearms as a weapon
category up. They're also deployed in early portal rewards and as part of
regular sprint weapon distribution as one would expect, and get a branded
enchanted appearance half of the time in the bardiche slot in the Hall of
Blades.

--------------------------------------------------------------------------------
3e022af010 | DracoOmega | 2024-12-04 16:53:07 -0330

New melee weapon base type: Partisan
Polearm itemization had a conspicuous gap compared to most other weapon
types. Not only did it only have a single top-tier one-hander (demon
tridents), but it also didn't have a common weapon drop in a similar
position to scimitars; tridents fell off pretty early and then the only
better one-hander was both rare and evil. (Yes, trishulas exist, but also
they barely exist and are highly specific.)

While it is true that decent *two-handed* polearms are fairly common early
on, which presents a somewhat different earlygame path than other weapon
classes, the fact that there was no transitional 'Lair-depth' weapon *and*
reduced availability of an endgame one-hander (good gods forbid the only
option, and it also cannot show up in Hall of Blades unlike all other
weapon classes.) commonly made it less attractive to invest in compared to
other options. This is an attempt to improve that a little bit without
making it feel like weapon classes are being homogenized in the process.

Partisans are a one-handed polearm with 14 base damage and 17 delay, making
them the slowest one-hander in the game. They are intended to be generally
worse than a demon trident, but also more common - the high investment both
differentiating them a little from scimitars and similar weapons, while
also being a beneficial use of the high skill investment a polearms player
may have put into, say, using a glaive before finding one of these.

They have been added to the weapon tables of many existing monsters which
could use both broad axes (ie: weapons of similar tier) and polearms. A few
monsters whose *only* demon weapon option was demon tridents had them
replaced entirely with partisans (on the assumption that it was purely
mechanical reasons they had one demon weapon, and not flavor ones). I opted
to skip giving them to merfolk, as getting Shoals in a game is already a
huge boon to a polearms player, but naga can spawn with them at a somewhat
increased chance compared to other monsters.

Credit to regret-index for the tile edits. Sources:
 * Shafts: roctavian's mundane / magical glaives, magical halberds, and
           randart tridents.
 * Ribbons: roctavian's old randart glaives.
 * Points: ontoclasm and roctavian's long swords and double swords.
 * Player doll tiles: roctavian's magical spear.

--------------------------------------------------------------------------------
0c05a917f8 | DracoOmega | 2024-12-03 21:34:47 -0330

Fix beams not being properly bouncy (ragingrage, pisaster)
I used the wrong bool in 7056299 and didn't notice at the time because it
*also* fixed the bug. Oops.

--------------------------------------------------------------------------------
c3491426b6 | DracoOmega | 2024-12-03 18:59:44 -0330

Fix monster_pathfind::fill_traversability ignoring no_actors argument
The argument was set and then *immediately* discarded by the call to
init_pathfind, so let's just do the proper setup directly in
fill_traversability.

(This resulted in battlesphere being able to 'blink' to the other side of
enemies, even when no visible path existed.)

--------------------------------------------------------------------------------
a85234a9e1 | DracoOmega | 2024-12-03 18:59:44 -0330

Fix battlesphere sometimes shooting its owner (1000000branches, Darby)
When a battlesphere fails to find any path to shoot at its primary target,
it can accept a 'fallback' position that let it shoot at *some* enemy in
that direction instead. But the source of the beam wasn't being properly
updated if it did so, causing it to fire from whichever position it fired a
tracer from *last* - which could even strike the player!

--------------------------------------------------------------------------------
afa22cc02a | DracoOmega | 2024-12-03 04:09:23 -0330

Fix rings of Fire/Ice having a {buggy} stash prefix (Namsan)

--------------------------------------------------------------------------------
862ef21dcb | DracoOmega | 2024-12-02 20:53:22 -0330

Fix item spell fail preview sometimes giving the wrong summary (Ge0FF)

--------------------------------------------------------------------------------
f291e87058 | DracoOmega | 2024-12-02 20:51:01 -0330

Have clockwork bee remember its target focus between windings
Instead of picking an entirely random enemy target each time a clockwork
bee is reactivated, have it prefer the target it was last focused on (if
it's still in sight and valid). It even maintains this memory if the
original target it was aimed at leaves LoS before the bee deploys (so that
bumping it afterward will still get it heading in the proper direction,
instead of somewhere else at random).

This should be a small QoL improvement, hopefully.

--------------------------------------------------------------------------------
74c169a5b7 | DracoOmega | 2024-12-02 20:30:00 -0330

Fix being able to deconstruct blazeheart cores with ctr+direction (Ge0FF)
(Really, I don't think they made sense as a tempering target anyway.)

--------------------------------------------------------------------------------
7056299157 | DracoOmega | 2024-12-02 20:26:33 -0330

Prevent a rare Call Down Lightning crash
If Call Down Lightning was cast upon a solid feature containing a monster,
it would attempt to bounce (being electricity). And trying to bounce when
it took no path in the first place would assert.

It is very hard for this situation to even occur at the moment, but one
specific instance is when an eldritch tentacle has first appeared and is
still in its malign gateway feature (which is solid). A thunderhulk can aim
at it with Call Down Lightning, and then try to bounce off the 'wall' it
just shot.

Now, beams will not bounce at all if they are aimed at a spot. (Thanks to
Implojin for the suggestion, which is a better general fix than just making
Call Down Lightning non-bouncy, which I'd been otherwise about to do.)

Note: due to a separate issue, the spell still doesn't *hit* the tentacle
when cast from this spot, but the tentacle would be immune to the damage
even if it did, so I don't consider that as relevant to fix at the moment.
Perhaps if we ever end up with other monsters inside walls, in the future.

--------------------------------------------------------------------------------
e6a5942adc | DracoOmega | 2024-12-02 19:59:00 -0330

Try again to fix assorted buggy behavior with exploding monsters
4d9de507325e9399f8639ab74e243801ce0b59dd fixed some bugs and introduced
others. It broke blame strings for player's being killed by friendly
exploders (ie: would claim that they were killed by an exploding program
bug) and also introduced a weird issue where monsters would flee away from
blazeheart core explosions because they were testing reachability against
ANON_FRIENDLY_MONSTER at (0,0) and determining that they could not reach
it.

Instead of setting ANON_FRIENDLY_MONSTER as the source of friendly
explosions directly now, it still uses the exploder's mid (for proper blame
strings), but beam::agent() is changed so that if it fails to find anything
when retrieving the agent by mid, it checks if a monster by that mid has
been cached (as is currently done only for dying exploders) and then uses
MID_ANON_FRIEND purely for damage attribution (so that the player gets XP
but not penance).

Since this still means that the ME_WHACK event will be attributed to
ANON_FRIENDLY_MONSTER, specifically ignore that for purposes of setting
foe (but still do all the other aspects of getting hit by them, like
breaking fear, etc.)

I'm not 100% confident this doesn't introduce some other bug somewhere in
this ongoing game of explosive whack-a-mole, but fingers crossed!

--------------------------------------------------------------------------------
5569844878 | regret-index | 2024-12-01 18:55:29 -0330

Don't place a Zot entrance on D:15 (PanSaczeczos)
Possibly we should have more standardized function-based set-ups for
placing Depths and Zot entrances, between the tags, the weights, the gems,
and the actual specific entry features- the last of these got the wrong
feature in a copy-paste, making due_index_antique_fridge place the wrong
branch entrance in the D:15 setting. (Possibly Crawl itself should also
actually complain about generating floors not connecting properly to given
branches....)

--------------------------------------------------------------------------------
bf341ee2b0 | Nikolai Lavsky | 2024-12-01 14:28:47 +0300

docs: remove obsolete targeting commands
As a followup to 83d77bb6a, update the list of commands and settings
files.

--------------------------------------------------------------------------------
d50fa5e7cc | DracoOmega | 2024-11-30 15:12:07 -0330

Don't fail to place explosion clouds beneath the player (grumposus)
Broken by 33284afee520d1fe114d1a0560f5795f086bd044 .

(The method used there apparently gets tripped for all explosions, causing
them to skip the part where they leave clouds on the player's tile. This
should hopefully be a bit more foolproof, even if it's slightly ugly.)

--------------------------------------------------------------------------------
914cb651be | regret-index | 2024-11-30 09:53:01 -0330

Withered mystic tiles (pianoman523)
Tiles for Iskenderun's Mystic Blast and withered plants. The former had
some re-orienting edits done to make it feel less solid for a damaging
blast effect, while the latter (which clearly mix both new tiles and
Sastreii's new regular plant tiles) have been edited to mix the old focus
on grey with the new tiles being brown- said neutral-dark grey helps the
tile fit one of its branches' palettes more easily (Zot), and also
provides a little less monochromatic appearance mixed amongst the less
colourful derived undead it's usually deployed with.

--------------------------------------------------------------------------------
4aaac53294 | regret-index | 2024-11-30 08:27:59 -0330

Some more Forgecraft spell icons (Sastreii)
Kinetic Grapnel, Fortress Blast, and Rending Blade, to be precise.

--------------------------------------------------------------------------------
2437acaab0 | regret-index | 2024-11-30 08:03:45 -0330

Count mutant beasts as chaotic (#4150)
As the issue notes, the box of beasts is hated by Zin, and they also are
explicitly thematically created by radiation. This mostly matters for
one vault and one wizlab, but we might as well be consistent about this.

Closes #4150.

--------------------------------------------------------------------------------
151a97f16f | DracoOmega | 2024-11-30 01:01:53 -0330

Fix a typo (Patrick2011b)

--------------------------------------------------------------------------------
83d77bb6aa | DracoOmega | 2024-11-30 01:01:53 -0330

Completely rewrite default target picking and cycling code
The code which rested at the core of direction_picker and controlled how
default targets were picked for spells was ancient and deeply arcane,
making it laborious to make even simple, oft-requested QoL improvements to
many spells. It also suffered from multiple surface-level issues, like
inconsistent behavior about aiming explosions to avoid the player hitting
themselves. (eg: casting fireball with a single enemy in melee range of you
would aim off to the side of that enemy, so as to avoid getting caught in
the blast, only if you had not previously aimed at that enemy on a prior
turn. If you *had*, it would instead aim straight at them and force the
player to adjust the aim or deal with a warning prompt.)

This commit replaces the inner workings of this part of direction_chooser
entirely and improves a multitude of autotargeting behaviors in the
process. It no longer uses recursion with multiple gotos or targets enemies
based on viewport dimensions(!) and should be vastly easier to work with in
future. In addition:

 -AoE will be noticably better at avoiding the player, regardless of
  whether you'd previously aimed at that enemy.
 -AoE will also attempt to avoid harming allies, if a trivial aim
  adjustment could accomplish this.
 -The aimer is more aware of when AoE is harmless to the player, and won't
  needlessly aim-adjust a wand of roots off to the side of an enemy.
 -You no longer need to aim directly at a monster for the aimer to consider
  it your 'previous target'; merely catching it in the blast of a spell is
  sufficient. (In cases where multiple monsters are in the affected area,
  it will prioritize keeping its existing target lock, and otherwise pick
  the closest to the centre.)
 -+/- can now cycle through enemies that aren't themselves in range, but
  could be hit by AoE (ie: enemies just beyond the range of fireball) and
  will work sensibly with LRD.
 -Ranged autofight will more consistently use smart default aim, instead of
  only doing so for some spells.
 -Previous monster target is saved via mid instead of mindex (which could
  rarely do weird things when mindexes were reused)
 -Better default behavor for some spells like Gavotte (no longer
  prioritizes aiming at nearby enemies) or Tempering (prefers constructs
  with enemies actually in the blast zone.)

All in all, this should produce meaningfully improved behavior for a number
of spells (and AoE spells like fireball, in particular, should prompt the
player about harming self or allies *significantly* less, making them more
autofight-friendly.)

To be clear, this isn't an attempt to make targeting smarter in the sense
of 'make better decisions for the player'. It doesn't attempt to choose
more important enemies or maximize how many things are caught in AoE, but
rather to not present the player with 'obviously incorrect' default aims.
It will still generally prioritize 'last-targeted enemy' or 'closest
enemy', but not default to including the player's face in the blast when
some obvious way not to do that exist. (And all of this new behavior is
disabled if Options.simple_targeting is true, though using that feels
personally quite questionable to me.)

This commit also removes a couple unused or non-functional commands (some
effectively broken since as far back as 553c0cd8d1dc9edb71fdb08f1d3d3be3 ),
as well as CMD_TARGET_PREV_TARGET (which I feel was largely opaque and
unhelpful). Finally, while 'iterate through feature in viewport while
aiming' has been reimplemented for the sake of using stairs via x, you
can no longer cycle through items on the ground with ;/' in that mode. I am
unconvinced that this was ever useful to do when ctrl+x exists (and X still
offers the same functionality for the map in general.). +/- still works for
cycling objects when aiming Apportation.

All in all, I hope this is a significant improvement to code readability,
and also a meaningful improvement to player QoL with many different spells.

Death to _find_square.

--------------------------------------------------------------------------------
870d526920 | Nikolai Lavsky | 2024-11-29 19:53:11 +0300

fix: don't print messages when monsters cast Irradiate out of LOS

--------------------------------------------------------------------------------
2f7cafc865 | patrick | 2024-11-27 00:30:52 -0500

Checkwhite
:I

--------------------------------------------------------------------------------
223376ce86 | patrick | 2024-11-27 00:19:44 -0500

Tone down nicolae_beast_mode
This vault places a box of beasts, and surrounds it with hostile
but weak mutant beasts. It turns out that even weak mutant beasts
who roll the shock facet can be overwhelmingly murderous with their
blinkbolts. (Blinkbolting mutant beasts are responsible for one of
the few times I've killed myself with one of my own vaults, even.)
Thus, I have specified the non-shock combinations of facets explicitly
for the juvenile mutant beasts. Additionally, slightly tone down the
number of juveniles, from 4-7 to 3-6.
The lone larval mutant beast will retain the ability to roll the
shock facet, at least for now.

--------------------------------------------------------------------------------
cdad7ad164 | regret-index | 2024-11-26 22:24:07 -0330

Fix a vault testing weight (tekkud)
(Really large vaults and vaults_hard vaults are both difficult for the
V layout generators to handle, so this wasn't quite as common as its
weight made it appear to be.)

--------------------------------------------------------------------------------
1c27a4ad61 | DracoOmega | 2024-11-26 21:05:08 -0330

Fix Charm instantly breaking (not_that_greg)
Accidentally broken by 1dcf16d5f2f0bb8b4fbd7f36cd11368bcbb95fe0

--------------------------------------------------------------------------------
cd918d39a0 | DracoOmega | 2024-11-26 19:33:03 -0330

Don't launch bomblets at firewood (Ge0FF)

--------------------------------------------------------------------------------
61fbf599b9 | Nikolai Lavsky | 2024-11-26 12:31:28 +0300

fix: don't say Paragon can use any current weapon
since paragons can't fall back on using the player's current weapon
since 901f017ee1.

--------------------------------------------------------------------------------
5daf8ae013 | DracoOmega | 2024-11-26 01:14:37 -0330

Fix a knockback-related crash

--------------------------------------------------------------------------------
41443316a5 | Isaac Clancy | 2024-11-26 00:09:27 -0330

Warn when summoning with fulsome fusillade active (Flugkiller)
Fulsome fusillade can damage your summons so it should warn when you
try to summon with it active, similar to spells like polar vortex.

Should resolve #4055

--------------------------------------------------------------------------------
7791d1a895 | DracoOmega | 2024-11-26 00:00:40 -0330

Fix some illusions not being marked as summoned/temporary
While many illusionary clones are supposed to hide the fact that they are
summoned (since it's part of the illusion that you can't tell them apart
from the original), this is fairly silly for things like player illusions
or hostile clones of your ancestor and such.

But treating those *entirely* as normal summons would reintroduce an
information leak, where it was possible to identify the real Mara by
looking at the 'summoner' of your illusion. But the real problem is not
player illusions, but Mara themselves, so refactor things to hide the
summoner specifically if it's Mara, but show it for other player illusion
sources (ie: mainly the strange machines in the Tukima wizlab)

This fixes #4083

--------------------------------------------------------------------------------
1dcf16d5f2 | DracoOmega | 2024-11-25 23:31:58 -0330

Refactor god_protects, shoot_through_monster, and related functions
A number of different types of ally are intended to either never be harmed
by player actions, or outright be fired through (eg: battlespheres, Hep
ancestors, demonic guardians). But many of these different catergories are
handled by different functions, and one category or another being
overlooked from some attack is a frequent source of bugs.

This refactors essentially all such cases to go through a pair of
functions: never_harm_monster() and shoot_through_monster(). The former is
for all monsters that should never be negatively affected by any actions
caused the a given agent (usually the player). shoot_through_monster() is
mostly the exact same list, except additionally includes Jiyva jellies
(where the player cannot harm them, but also cannot shoot through them.)

(I think some of this Jiyva behavior is a bit strange and incorrect, but
I've not attempt to change its current functionality in this commit.)

never_harm_monster() shoud be used in most cases, with
shoot_through_monster() specifically for projectiles.

This commit also fixes a handful of existing bugs, such as it being
possible to affect a demonic guardian with Irradiate or slow any
normally-unharmable ally with Metabolic Englaciate.

This also fixes #3985, and half of #4083

--------------------------------------------------------------------------------
77984fd6c1 | DracoOmega | 2024-11-25 19:17:36 -0330

Improve out of range message when aiming Paragon finisher (pisaster)
If you aimed it at a spot the Paragon could not see (possibly because you
had blinked away from it), the game would confusingly claim "You cannot
see that place." when the actual issue is that the *paragon* cannot see
that place. So let's just say that it's out of range instead.

--------------------------------------------------------------------------------
d464759a54 | DracoOmega | 2024-11-25 19:06:36 -0330

Don't show EV/fail rate preview when examining unID'd randart weapons
(Armour and jewelry appear to have already had this check.)

--------------------------------------------------------------------------------
cfb42be0b4 | DracoOmega | 2024-11-25 19:05:47 -0330

Don't allow looking at spell success rate changes for unequippable items
While (for example), a spriggan examining a scale mail wouldn't be told
that it would affect their spell fail chances, if they pressed '!' they
could still bring up a tab confusingly showing some of that information
anyway.

--------------------------------------------------------------------------------
66324250c4 | DracoOmega | 2024-11-25 18:42:38 -0330

Allow deconstructing forgecraft constructs with ctrl+direction
You used to be able to accomplish something similar with lightning spire,
back when it got upset when you hurt it, but this stopped being possble
once mindless constructed stopped caring about player damage. It felt that
it was fine if the player *couldn't* instantly dismiss them (and largely
still do), but this is aimed at improving QoL for clockwork bee in
particular.

When there are no more targets around to attack, clockwork bee falls
dormant. It also cannot be recharged without a visible target. This
frequently results in it briefly blocking a corridor after a battle, and
while I have not *personally* felt that this is a problem (you should
rest!), enough other people have found it annoying that I am doing this
with the aim of making it feel better for them.

This solution still feels 'clunky' to me (needing an additional command and
giving a *much* longer message when trying to reactivate a bee without a
target), but other proposed solutions have had potentially more serious
side-effects, so let's just give this a try for now and see what player
response is.

--------------------------------------------------------------------------------
97b8356728 | hellmonk | 2024-11-25 15:14:28 -0600

add vouchers to $ and typo fix

--------------------------------------------------------------------------------
8d44b91d9a | hellmonk | 2024-11-25 14:50:36 -0600

checkwhite

--------------------------------------------------------------------------------
d38a5f2e37 | hellmonk | 2024-11-25 14:49:18 -0600

Add extreme couponing
This needs some interface work.

--------------------------------------------------------------------------------
bdf4c9db22 | dependabot[bot] | 2024-11-25 13:50:22 -0600

Bump tornado in /crawl-ref/source/webserver/requirements
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4.1 to 6.4.2.
- 
[Changelog](https://github.com/tornadoweb/tornado/blob/v6.4.2/docs/releases.rst)
- [Commits](https://github.com/tornadoweb/tornado/compare/v6.4.1...v6.4.2)

---
updated-dependencies:
- dependency-name: tornado
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
--------------------------------------------------------------------------------
20f8f3c1c4 | Implojin | 2024-11-25 13:43:26 -0600

Add Robert J. Redelmeier to the credits
For 520e15dbdb.

--------------------------------------------------------------------------------
bec97544d0 | regret-index | 2024-11-25 09:35:05 -0330

Checkwhite
(...doesn't know about newly added files for a given commit? Hrm.)

--------------------------------------------------------------------------------
18c7c0e533 | regret-index | 2024-11-25 08:46:56 -0330

New monsters: alderkings, death trees for Depths and rarely Crypt
While plants have been very slowly added to Crawl due to the innate
difficulties of designing more immobile monsters, the motile plant glyph
('f') is one of the few console glyphs mostly wide open for additional
monsters. There's a lot of easy flavourful design space for more plants,
and in particular, adding one of them in Depths has multiple benefits: it
can connect the various spriggans moved there closer to a branch otherwise
mostly preoccupied with giants and undead, it can make Fedhas's plant
pacification mean a little more throughout the game, and it can help
further split apart the artificial fortification spirit of the Vaults
versus the more uncontrolled cavern-dungeon of the Depths.

Alderkings are a translated name of something from various works of
Germanic literature, a storied figure of a darkwood elf king that haunts
deep forests and absconds with or kills trespassers. (Crawl's elves aren't
particularly fey, so it's deployed around the main fey threats of
spriggans instead. The translation drift between the Danish elverkonge and
German erlkönig is a couple centuries old, so it feels fine to make it
literally a tree as the artistic tradition still includes rather than some
fey spirit. Without a name to the title and with a lot of differing takes
in centuries of tradition, demoting them to a non-unique feels fine enough
to me.) These are deep out-of-depth walking trees in Depths with
mildly-below-ettin level melee damage, reasonable hp and AC but poor EV and
rF-, plus three notable spells:

 * Grasping Roots, the ranged constriction spell used by shambling
   mangroves: aside from using a little more constriction in Depths as is
   less present in Vaults with tentacled monstrosities moved out from the
   branch, it also slows running away from its short-range other spells.

 * Siphon Essence, the range-2 torment into self-healing ability
   provided by talismans of death: an experiment in trying out more
   highly dangerous short-range spells and means of healing monsters in a
   more reasonably tangible fashion, a means of endangering lategame
   characters with very high defenses, and a chance to establish yet
   another unique way to deal unholy damage as Crawl's large focus on
   unholy threats regularly needs. Unlike Torment, this range can be
   avoided for a large number of characters, and it also can avoid
   hurting living allies as Depths still contains plenty of.

 * Dispel Undead, the not-ranged version players, their ghosts, and
   burial acolytes use: a chance to further emphasize that monsters can
   have varying Dispel Undead ranges, and one short enough to still
   emphasize their Grasping Roots.

Thus, they pin their foes in place, cast high-damage short-range spells
with various non-standard resistance checks, and then finish them off
with heavy melee. Hopefully the obvious synergies between these spells and
the rarity of a character caring about both Siphon Essence and Dispel
Undead will be straightforward enough for players to learn and fear.
They're quite scary in practice, but Depths threatens a lot with large
bands of monsters; they'll mostly endanger reckless spell-less characters,
who would be just as imperilled if not more so by shrike and spark wasp
bands. One can always teleport before they get close, after all....

Aside from placing around once or twice per game in generic threat vaults
and regular floor spawns, they also appear in a number of forested,
necromantic, and magical vaults throughout Depths. As strong necromantic
casters, these also appear in a sparse Crypt vaults that already used dead
trees; since the branch has plenty of regular living necromancers already,
this shouldn't be too out of place. (This also comes with some tweaking of
various other uses of dead trees and petrified trees, to deal with the
automagic feature-recolouring-to-tile match-up mess.)

Their tile is an amalgamation of CanOfWorms's hill giant, Sastreii's
demonic trees, roctavian's shambling mangrove, and ontoclasm plus
lingerstink's Asterion. It animates in a mildly experimental fashion to
bridge tree foilage and necromancy colours.

--------------------------------------------------------------------------------
e55ba79dcc | DracoOmega | 2024-11-24 03:47:20 -0330

Fix missing break in disjunction dart description (Bn)

--------------------------------------------------------------------------------
9ebf140c76 | Alejandro Ramirez | 2024-11-24 03:07:28 -0330

Make player doll match lost wings mutation (#3973)
Redraw the player doll when losing wings so that
draconians that loses their big wing mutation see
the change immediately (kuniqsX)

Resolves #3973

--------------------------------------------------------------------------------
c1ee981f09 | regret-index | 2024-11-24 03:06:14 -0330

Changelog tweaks (various)

--------------------------------------------------------------------------------
c1d4bba160 | regret-index | 2024-11-24 03:05:27 -0330

Tweak spriggan druid call / might criteria
8a9237d added a special case to make only swamp dragons count for
mons_is_beast, leaving out the swamp end fire and ice dragons due to their
noticeably higher threat. Since then, Swamp has gotten quite a ways more
dangerous, and in particular druids can call in bunyips in Swamp or
shrikes and spark wasps in Depths. As such, I'm removing this one special
case, letting them care about the other types of dragon when calling in
or granting might to beasts in general.

--------------------------------------------------------------------------------
d3692a3390 | regret-index | 2024-11-24 03:05:27 -0330

Various quick adjustments to ironbound beastmasters
 * The beastmaster spawn count is higher than desired due to a shift
   later in design to target slime creatures instead of harpies plus an
   accidental use of max over min, doubling their overall placement rate
   from what was planned. This enstates their proper chance to appear in
   a band versus depth, while adjusting the numbers to make them appear
   quite often with lindwurms, more rarely with slime creatures, and with
   less beasts overall in their more common vaults.

 * Arcanists were added on the same console glyph and colour combination
   in 129f0b0 since the ironbound beastmaster removal. I'm moving
   arcanists over to lightred, since it matches their tile and what
   currently is on that same combination (the true form of shapeshifters)
   is harmless whenever actually found anyway.

 * Their description has been tweaked to not raise confusion about them
   causing frenzy or berserk with their aura.

--------------------------------------------------------------------------------
d447e0d7be | DracoOmega | 2024-11-24 03:02:01 -0330

Don't remove felid stat-0 status on revival if stats still below 0
Dying removes stat drain, which will *usually* result in stats being above
0 again (in which case it's fine to remove these statuses), but mutations
or equipment may result in them still being 0 or less after being revived,
in which case they should persist.

Closes #4066

--------------------------------------------------------------------------------
dac7352ac4 | DracoOmega | 2024-11-24 02:33:18 -0330

Fix spacing in reminder message for recruiting first apostle
This closes #3865

--------------------------------------------------------------------------------
eefd5e6a19 | DracoOmega | 2024-11-23 23:21:54 -0330

Fix/tweak a few things about randart artprop descriptions
-Remove a redundant additional description of Wiz effect for randart rings
 of wizardry

-Give a few more base types 'fake' artprops (now that appropriate ones
 exist) and remove the hard-coded descriptions of even faker artprops

-Cut some descriptions that weren't even being used at present (due to
 having been using fake artprops for a while)

-Describe artprops in full item descriptions in the same order that they
 appear in the inscriptions (instead of enum order, which reads as very
 arbitrarily unrelated in-game)

-Show the rC+/rF- from base rings of Ice (and inversely for Fire) in the
 randart's inscription. At one point in time, 'Fire' was sufficient to
 imply rF+/rC-/fire-enhancer, but that is no longer the case. (ie: when
 'Fire' shows up on a randart staff or orb, it may *only* mean a fire
 enhancer, with no resists baked in.)

This closes #2664

--------------------------------------------------------------------------------
520e15dbdb | Robert J. Redelmeier | 2024-11-23 19:39:40 -0600

Fix a typo
Correct tense for Phalanx Beetle spell description.

[Committer's notes: Edited commit message.

Closes #4139.]

--------------------------------------------------------------------------------
26961a4193 | DracoOmega | 2024-11-23 21:49:24 -0330

Fix a comment

--------------------------------------------------------------------------------
afcf477568 | DracoOmega | 2024-11-23 20:07:41 -0330

Refactor how tile-picking for beams works
Tile selection for beams used to be handled by tileidx_bolt(), which was
organized in an... archaic manner. Tile selection was done via a
combination of beam color and string-matching against the name of the
projectile being fired. This was clunky and also error-prone in several
ways: projectile text could be edited elsewhere (which would silently cause
their custom tiles to disappear), tile overrides for removed spells could
remain long after the spell was gone (since it's not obvious which string
corresponds to what spell). In fact, both of those things were true for at
least one or two spells immediately prior to this commit!

This removes that function entirely and instead allows any custom tiles to
be specified as a simple member of zap_info (or manually-specified via
beam.tile_beam and beam.tile_explosion, in cases where zaps are not used.)
If neither is specified, it will still fall back on the default
color-to-tile mapping done by tileidx_zap().

This also allows the tile for the path of a beam, and the explosion at the
*end* of that beam, to use different tiles easily. This has been applied to
iceblast (and related spells) and fireball at present, but could easily be
extended to move things. (I think it is a cleaner visual, in general, if
the non-damaging trail and damaging explosion of an effect use different
tiles, though not all effects have such obviously useful tiles
pre-existing.)

Tile directional orientation is now also handled automatically by
vary_bolt_tile() and I renamed the tile enums for the 'default' color-based
bolts to be clearer.

Aside from the aforementioned animation tweaks to iceblast/fireball, there
should be no other functional change.

--------------------------------------------------------------------------------
b703b2c8d9 | Implojin | 2024-11-23 13:11:09 -0600

Defer klown pie fragility ordering (Flugkiller)
Following the reasoning of 1838bd627c, here we defer applying
player-targeted klown pie effects until after their damage is dealt.

Monster-targeted klown pie effects were already being applied after
the hit, so nothing to change there.

--------------------------------------------------------------------------------
97f3e5c200 | Implojin | 2024-11-23 13:01:12 -0600

Defer monster-targeted crystallizing bolt fragility ordering
This is for consistency with 1838bd627c and really should have been
a part of that commit. Mea culpa.

--------------------------------------------------------------------------------
ec2332499f | David Lawrence Ramsey | 2024-11-23 10:52:05 -0600

Fix typos.

--------------------------------------------------------------------------------
0f947df1d0 | brandon s allbery kf8nh | 2024-11-23 10:35:37 -0600

 disable installation of pkg-config and libpng
Both are already installed on current GHA images; the former is
actually redirected to install a different variant (there are two:
the original, and a fast but buggy C version), which then conflicts
with the already-installed version. So simply skip installing both.

--------------------------------------------------------------------------------
4990ddc06c | brandon s allbery kf8nh | 2024-11-23 10:27:56 -0600

silence unused flash_tile parameter warning on console

--------------------------------------------------------------------------------
8b3c75940f | regret-index | 2024-11-23 04:57:22 -0330

0.33 changelog update up through ga4cb51f6ed
It seems unlikely that any Forgecraft spells or the set of new decorations
are about to be removed any time soon, so it's probably safe to go ahead
and write up the new changelog entry for this version.

--------------------------------------------------------------------------------
a4cb51f6ed | DracoOmega | 2024-11-23 04:22:10 -0330

Nerf Monarch Bomb
While feedback has been that the desired loop of 'deploy bomblets, then
blow them all up' is a fun one, there's concern that monarch bomb is too
good at doing things *other* than that - doing meaningful direct damage
with Launch Bomblet and creating surprisingly durable meat shields in the
process.

Since I think the explosions are the star of the show, this is an attempt
at reducing the power of other aspects:
 -Bomblets are significantly more fragile and expire more quickly
 -Launch Bomblet damage is greatly reduced
 -Monarch Bomb melee damage slightly reduced
 -Monarch Bomb itself is very slightly more durable (it was always quite
  fragile compared to other constructs of similar level, and still is)

I considered additional measures like reducing the chance that their melee
attack spawns a bomblet based on the number of bomblets already deployed,
but I'm going to hold off on any further changes until seeing feedback for
this version.

--------------------------------------------------------------------------------
356abe4680 | DracoOmega | 2024-11-23 04:22:10 -0330

Tweak Clockwork Bee
While the tradeoffs involved in the spell are interesting, there has been
concern that it is too strong in corridors, where the player's ability to
repeatedly repair their bee when it runs out of charge allows it to hold
place in front of the player too consistently.

This experimentally attempts to counterbalance that somewhat by adding a 1
MP cost to recharging the bee (along with decreasing the amount healed when
you do so.)

Given how time-consuming it is to resummon a bee mid-fight, I do think
there's a somewhat delicate balance of durability here before it starts to
feel outright bad (and I have concerns of design overlap with healing
inugami via MP), but let's give it a try for now, anyway.

--------------------------------------------------------------------------------
0c973e93fc | DracoOmega | 2024-11-23 04:22:10 -0330

Reduce monster Hellfire Motar power
After hellfire mortar damage scaling was adjusted by e22bf9ab365384d5e94
(for player-side purposes), I neglected to consider the effect this would
have on monsters. Wiglaf's mortar (in addition to gaining 1 range) went
from 3d15 to 4d18!

(This reduces it to 4d13, which is still a little stronger than in 0.32,
but to a degree that feels more reasonable.)

--------------------------------------------------------------------------------
5b279c5cb0 | DracoOmega | 2024-11-23 04:22:10 -0330

Allow hellfire mortar to try pushing obstructing monsters backward
Since becoming 3-school, hellfire mortar is a much bigger investment than
it used to be. Sinking back into magma the moment a stray flier steps in
front of its path is mildly annoying, and I think unnecessary. So now it
will try to push such things back one space instead.

(It doesn't do anything fancy to push obstructions away, so two in a row
will still block it, but this should make it less likely to be defeated by
'incidental' obstacles.)

--------------------------------------------------------------------------------
9c6473c76c | DracoOmega | 2024-11-23 04:22:10 -0330

Fix incorrect messages being printed if pushed back by a boulder
(And in a somewhat more plausible situation after the next commit.)

--------------------------------------------------------------------------------
0a4fc1a4de | DracoOmega | 2024-11-23 04:22:10 -0330

Adjust Rimeblight spread mechanics
While a powerful spell in the right circumstances (and with appropriately
grisly flavour), rimeblight could be more inconsistant than one would like.
While the spread chance from explosions was quite high, it was never
guaranteed, and poor early rolls could fail to get the plague going in a
meaningful way, making it sometimes feel like a poor use of turns. Delayed
damage always has an uphill fight to compete against burst damage, and the
whiffs felt just a bit too common.

Also, while there was a chance to spread upon death, the fact that a living
infected had many *more* chances to spread rimeblight (via explosions)
could make it feel bad to have them die early. A level 7 spell ideally
shouldn't make you feel bad if it kills something, so I have changed the
spread mechanics in the hope to make it both more consistent and never
'punish' you for killing an infected monster early.

Rimeblight now has the same 'chain-to-adjacent-enemies-on-cast' behavior
that Petrify does, afflicting up to two connected enemies per cast. The
ice shard explosion no longer spread rimeblight at all, but upon death, it
has a 100% chance to spread to adjacent enemies, and a 50% chance to spread
to those at radius 2. Combined, these should make it easier to get started,
less likely to abruptly peter out due to RNG, and if anything *reward*
killing things quickly with undead or refridge assistance to spread it
further.

--------------------------------------------------------------------------------
d1af28e953 | DracoOmega | 2024-11-23 04:22:10 -0330

Make Teleport Other smite-targeted
A fairly unpopular spell in the Warper starting book. Teleport Other does
have some value when a character is weak and needs to escape things, but
Piledriver makes it a less appealing spell to learn early (when spell
levels are scarce) and it's never been terribly exciting any later than
that.

Allowing it to be cast on specific monsters in packs, to remove the most
dangerous elements of them in advance, will give the spell more flexibility
that I hope make it feel a little more worth considering in more
situations.

--------------------------------------------------------------------------------
d268329e45 | DracoOmega | 2024-11-23 04:22:10 -0330

Replace Darts of Dispersal with Darts of Disjunction
Darts of dispersal were most noticable as part of Warpers' starting kit,
but despite multiple buffs, were still largely a 'desperation option' you
were never happy to use.

Warper's biggest weakness is that none of its kit provides it any offensive
power whatsoever until it can cast Piledriver (which is at least XL 3, and
usually later) Back when their darts were boomerangs instead, sometimes the
damage *could* make a difference in early fights, but now they are more
akin to a blink that can miss (but costs no MP) and blinking is something
warpers are generally not lacking for! And since dispersal darts aren't
really relevant to anyone else when they can (rarely) show up later in the
game, let's just try replacing their effect entirely.

Disjunction darts inflict a short-lived status effect on enemies they hit
which causes them to blink a short distance away from the thrower for 3-4
turns in a row, taking 2d2 damage each time they do so. This still allows
them to be used as an escape option (perhaps even more reliably than
present), but the small flat damage very specifically is aimed at helping
win fights in those first couple XLs.

They also do not auto-mulch, like dispersal used to, but mulch at the
standard rate for dats. (I feel this behavior was somewhat of a holdover
from when it could show up on proper ammo that did *real* damage. There's
a big difference between doing a whole battle's worth of normal attacks
that keep a target displaced versus the ocassional dose of minor damage.)

I did not remove the Dispersal missile brand entirely in this commit (it
might be possible it finds another home on something in future?), but it no
longer naturally spawns on anything. Outside of a sprint, all places that
used dispersal darts now use disjunction ones instead.

--------------------------------------------------------------------------------
e44d3cceb3 | DracoOmega | 2024-11-23 04:22:05 -0330

Make Piledriver's targeting more flexible
While Piledriver's damage can be significant when the spell is first
learned, there are a number of things about the spell that make it awkward
to use in a number of situations - one of which is how groups of enemies
will tend to file into a neat line behind each other while the player is
repositioning to line up a shot, rending the spell literally unusable on
any of them.

Now, multiple contiguous enemies in a row can be pushed together, dealing
damage to whichever enemy is at the *back* of that line. This should
hopefully allow the spell to feel like it 'misses' less often.

(Regardless of the length of this line of monsters, they must still move at
least 1 tile and strike something which is in LoS of the caster, which
actually fixes a preexisting bug that allowed kobolds to sometimes query
for presence of walls or creatures out of their LoS.)

Additionally, this commit allows the player to pick which of multiple valid
piledriver directions they want to move along. I'd originally hoped that
the auto-targeting would create interesting positional decisions, and while
I believe that it does to an extent, it is common to end up with coinflips
between 'good move' and 'extremely bad move'. I don't think these feel very
satisfying and can make it feel punishing to try utilising the spell as a
core part of your kit sometimes. "I would have been better off casting
nothing and just running away." is not a great feel and happens somewhat
commonly at the moment.

The spell still does dramatically more damage when pushing things a long
distance, so I am hoping that alone is sufficient to create interesting
positional questions and encourage some aggression (rather than only using
it along 'safer' trajectories). We'll see.

--------------------------------------------------------------------------------
5383b0d124 | regret-index | 2024-11-23 00:29:02 -0330

Tweak the Iceblast effect tile (DracoOmega)
Less orthogonal symmetry and less taking up the whole tile to get closer to
the other blasting effects Crawl already uses, and a slight amount more
visual variety through rotation now that it's noticeable when it does so.

--------------------------------------------------------------------------------
a727347fca | regret-index | 2024-11-23 00:29:01 -0330

Heavily revise and revive ironbound beastmasters
V is a branch that is very pressured in its placement- usually immediately
after some of the higher variety in the game in the Lair branches, usually
before the heavy large vault use in Elf and Depths that it itself can
barely use, and yet not originally given a unique monster set to itself.
There's been multiple attempts to help out the branch out with more and
more unique monsters, and in my personal opinion, it could always use
more: the loose theme of much more organized and cosmopolitan structure
is easily workable, and V:1-4 has decent value as a pacing break after the
first few runes that still tries to stand out mechanically.

Ironbound beastmasters were tried out in 0b001ba and removed in f8b08d3
for a number of reasons that are each reasonably addressable in different
fashions:

 * Depending solely on their bands made them require unique and very
   frail special-casing to always place their band regardless of other
   calls for individual monsters (in vaults, wizmode placements, bot
   information calls, and so on). Rather than going out of the way to make
   sure individual beastmaster spawns come with a band, they instead now
   only spawn a part of V animal and slime bands when those bands already
   successfully place, with a chance increasing by depth to join lindwurm,
   slime creature, and dire elephant bands when the full band spawns
   already. (This replaces one of the dire elephants with a beastmaster
   when it spawns, but doesn't for lindwurms or slime creatures.)

 * Goad Beasts was a very invisible spell, since the actual number of
   actions monsters take in a turn without involving spells is a
   relatively subtle effect. Instead of relying on the energy system, this
   instead relies on a far more direct effect using other reworked
   systems: they simply have an passive aura of haste for living
   creatures of animal or lower intelligence. This should also help
   create very little ambiguity as to what they haste, because they
   visibly immediately haste or don't haste given other monsters.

 * They were also pretty weak for their depth when caught by themselves
   seperated from a successful band placement, whether from bands
   wandering around or being convoked. This return comes with somewhat
   higher base damage and a coinflip chance for a polearm. They also now
   have a new support spell that can work with other monsters than beasts
   or slimes, "Throw Bolas", which does relatively minor physical damage
   for the depth and also inflicts -Move. (The rope for the bolas
   projectile and spell icon is a CC0 asset by fleurman, and the balls are
   steel sling bullet icons by ontoclasm.)

(To accomodate the last of these, paralysis and petrification both end
with "You can now act again", and -Move from Momentum Strike now reads
"You can move again" rather than "You are no longer robbed of your
momentum".)

I'll let players find out in practice just how common it is to be bound in
place as hasted dire elephants or hasted titanic slime creatures barrel
towards them. Players are pretty strong by the time they do V, and I'm
doubtful the ~4 beastmasters per visit will noticeably more dangerous than
the multitudes of thunderhulks or convokers, anyway. Being interrupted
heavily by not being able to move may get some resistance from players who
otherwise focus solely on playing quickly (c.f. 98a3e4f and 54e5184), but
fortunately their boosted allies can help solve the problem of reckless
play in a quick and direct fashion.

--------------------------------------------------------------------------------
49d95937af | gammafunk | 2024-11-22 17:18:53 -0600

Fix the build (DracoOmega)
In 8f22220, the tile enum was added as a new entry instead of replacing
the dummy entry of 0. For at least GCC, on newer compilers this
incorrect data was silently initialized into the struct, but the older
version of GCC on CDO was not happy. Concerning that newer compilers
didn't at least warn about the problem, but at least the offending line
was easy to detect...

--------------------------------------------------------------------------------
5fac02aaea | Implojin | 2024-11-21 12:46:35 -0600

Revert "Fix slime not showing around slime walls after reload"
This commit was causing level previews using shift-X [ or ] to display
the player's current floor in the main viewport, instead of the target
floor.

I don't have time to hunt this down right now and am concerned about
leaving it alone since this was likely caused by an interaction with
tags, so I'm simply reverting for now.

This reverts commit 96a7ec282a2df5b68c187281be947cd77b4c37f8.

--------------------------------------------------------------------------------
e3c942dec9 | DracoOmega | 2024-11-20 22:47:29 -0330

Fix Ru magic school sacrifices blocking the wrong schools (Lightli)
Sac Forgecraft blocked Translocations, Sac Translocations blocked Alchemy,
etc. (even though it removed levels of the appropriate skill.)

--------------------------------------------------------------------------------
39329bb7ae | DracoOmega | 2024-11-20 18:24:08 -0330

Don't show irrelevant information when looking up non-book spells (Ge0FF)
Looking up spells with ?/s that were technically player usable (because
they were wand spells, or an internal implementation of an ability) would
still display miscast effects and some other things which would only be
relevant if any player could actually cast the spell directly.

Instead, hide this information for non-book spells.

--------------------------------------------------------------------------------
7ab36c3030 | DracoOmega | 2024-11-20 18:16:36 -0330

Fix an Arenasprint crash with foxfires
After 6938ffb21ab4f, foxfires are directly killed as part of them hitting
enemies, but if such an attack ended a wave in Arenasprint, the automatic
'dismiss all allies' function in lua would kill the foxfire before the
point where the foxfire's own code would kill it, leading to an assert.

I am... not entirely happy with this sort of safeguard here just for one
sprint (and suspect there are similar cases elsewhere, too), but it's an
immediate short-term fix at the very least.

--------------------------------------------------------------------------------
4d5a26f9b7 | DracoOmega | 2024-11-20 18:06:07 -0330

Don't ignore beam.aux_source set by mons_spell_beam
A couple spells set custom aux_sources in their beam setup, which would be
entirely ignored in practice. For instance, when 357ea4826f refactored how
Creeping Frost was set up, the game began to claim that players killed by
it were killed '...by a frost.', but that is not the only spell thus
affected.

I can't see any obvious reason why we should ignore aux_sources set up
manually, and the code here is truly ancient. So let's try only setting
default values if no non-default values have already been set.

This fixes #4011

--------------------------------------------------------------------------------
4330605426 | DracoOmega | 2024-11-20 17:00:16 -0330

Shorten alchemy artprop string to match other spell schools
After 1bdb9b73b77 shortened forgecraft's, I realized that basically every
other school used an abbreviated version as well. Alchemy could arguably
have still fit, but Alch seems adequately clear to me.

--------------------------------------------------------------------------------
531cc0b697 | DracoOmega | 2024-11-20 17:00:01 -0330

Fix battlesphere firing message (Flugkiller)
I considered rolling back to the shorter 'Your battlesphere fires!', but
since battlesphere uses more particular target selection now and yet cannot
*always* reach the target of that selection (though it tries very hard),
I thought that specifying its aim might reduce confusion sometimes when it
hits something other than its ideal target.

Maybe this doesn't matter? Easy to change again later, at least.

--------------------------------------------------------------------------------
c00413b3c2 | DracoOmega | 2024-11-20 17:00:01 -0330

Flag Kinetic Grapnel as destructive
I hesitated a little, since half the point of this spell is as a melee
augment, but I'd mostly been thinking of Vehumet support at the time. But
since this flag also affects whether it works with battlesphere, probably
it shouldn't be excluded from support by a spell in its own school.

--------------------------------------------------------------------------------
e3ca3d1998 | DracoOmega | 2024-11-20 17:00:01 -0330

Don't let the player (rarely) shoot themselves while confused
Firing beams while confused aims randomly, but this random space chosen to
aim at could extremely rarely be the player's own location, giving them a
1 in 169 chance to shoot *themselves.*

Melee attacks cannot harm the player while confused, and I think this is
unexpected behavior that could sometimes be quite lethal. Just aim
somewhere else instead.

This closes #4091

--------------------------------------------------------------------------------
9a27585c1c | DracoOmega | 2024-11-20 16:29:24 -0330

Don't let Fusillade target (or affect) orbs of destruction
This fixes #4010

--------------------------------------------------------------------------------
7bd8858e0c | DracoOmega | 2024-11-20 16:28:06 -0330

Make message for hitting rC- monsters with cold less misleading
It sounded similar to applying the frozen status to them, and was also
completely different than the player message for the same thing (whereas
both players and monsters are 'burned terribly' by fire when rF-)

This closes #4098

--------------------------------------------------------------------------------
1bdb9b73b7 | Implojin | 2024-11-20 11:30:07 -0600

Shorten Forgecraft's artefact property string (gammafunk)
Using the full name here was a bit unwieldly.

--------------------------------------------------------------------------------
8f22220ccd | regret-index | 2024-11-20 02:12:47 -0330

Yet further and further additional tiles
Something of a milestone to have one of these sets of tiles finally
completed; the generic monster spell icon is now used on nothing and all
spells have a fitting non-generic icon now. No promises on this being
accomplished for mutation icons (which are far more specific than the
various blasts of spells and thus have far less resources to ply upon),
or vfx (far less bounded in terms of what could do with unique effects),
and the statue work of 8e166ad seems to have not been noticed much.

 * Call Down Lightning, Primal Wave, Hurl Sludge, icons:
   CC0 spell icons by frosty_rabbid.
 * Call Lost Souls icon: ontoclasm's lost soul icon +
                         DracoOmega's ghostly status icon.
 * Creeping Frost icon: Denzi's crystal square walls +
                        CanOfWorms's Frozen Ramparts icon.
 * Death Rattle icon: ontoclasm's cloud spell tile +
                      Denzi's old dragon breath ability icons.
 * Holy Breath icon: Sastreii's pearl dragon + another CC0 spell icon by
                     frosty_rabbid.
 * Hunting Cry icon: CanOfWorms Wereblood icon +
                     Ultraviolent4's swift status icon.
 * Launch Bomblet icon: The current Hurl Damnation icon by ontoclasm
                        and the current CC0 bomblet tile by Chrisblue.
 * Mourning Wail, March of Sorrows icons:
   Denzi's Tomb rock walls, ontoclasm's cloud spell tiles, and a CC0
   spell icon by frosty_rabbid.
 * Paralysis Gaze icon: A CC0 eye by Surt.
 * Pyroclastic Surge icon: pianoman523's Hellfire Mortar tile +
                           multiple CC0 spell icons by frosty_rabbid.
 * Seismic Stomp icon: Denzi's old 64x64 dragon tiles paired with
                       pianoman523's Resonance Strike icon.
 * Still Winds icon: jpeg's travel exclusion adjustments and the
                     generic cloud spell icon by ontoclasm.
 * Waterstrike icon: CC0 water tiles by finalbossblues +
                     another CC0 spell icon by frosty_rabbid.
 * Wind Blast icon: A public domain piece by 7soul1.

 * Wild Magic, Subdued Magic icons: CanofWorms's Demonic Magic icons.
 * Big Wings icon: A public domain piece by 7soul1 + Sastreii's robust
                   mutation icon.

 * Another Zot granite statue: Denzi's old Tornado spell icon.

(Additionally, Battlecry's palette was tweaked a little, and Hoarfrost
Bullet joins the other cannon-output spell in the monster list.)

--------------------------------------------------------------------------------
3db37b140e | yrdzrfxndfvh | 2024-11-20 02:12:46 -0330

add monsters to ziggurat_pillar_centre_c (#4109)
"Summoners get stokers, fravashi, moths of wrath (decreased weight),
and guardian serpents."

"Smiters get deep elf high priests, ophanim, salamander tyrants, soul
scholars, naga ritualists (decreased weight), soul eaters (decreased
weight), flayed ghosts (decreased weight), entropy weavers and daevas, and
lose glowing orange brains, with decreased weight going to monsters that
don't do anything against the undead."

"Suppressors get apises and glowing orange brains. The latter are a curious
case because they fit well into all three types, but IMO having a permanent
brilliance aura is justification enough to end up in the AOE buff/debuff
category."

[Committer's notes: Seraphim and silent spectres have both been rejected
for being too strong and defining of other zig floors. Polterguardians
have been rejected for being too weak in impact, and I'm taking out
servants of whispers in the same capacity. Since these lists are getting
exceptionally long and messy, I've adjusted the lines here to use only
one of a given monster per floor- this hopefully will be more specifically
memorable to use a floor of curse skulls support, ot a floor of moth of
wrath support, rather than intermingling every floor getting the vault with
a dozen or more different enemies from the one custom list. Finally, I
moved undying armouries out of the summons list- Flashing Balestra doesn't
work through grates- and over into the suppressors list now renamed a
support list.

Merges and closes #4109.]

--------------------------------------------------------------------------------
f19855ecf0 | regret-index | 2024-11-20 02:12:46 -0330

Give Dispater AF_CORRODE
Multiple fronts of reasons for this, really:

 * Dis has a corrosion mechanic presented simply for being inside it, but
   only caustic shrikes further the flavour or mechanical connection
   between the location of the hells' iron city and said corrosion effect
   (versus how many different ways earth and metal themes are used on
   monsters across the game and in Dis itself). While the other floors of
   Dis are plenty dangerous as is, Dispater themself has the lowest
   killratio of any of the hell lords in the past three versions, and thus
   can take a buff.

 * Compared to the unrand Pan lords, who have lots of unique or nearly
   unique spells to be flashy and memorable encounters, the hell lords are
   rather straightforward and boring in various different capacities.
   The hells themselves may be fairly more dangerous, but surely the
   uniques guaranteed each extended rune should get a little more to them
   too? Antaeus is easily kited, Ereshkigal has so many spells she's too
   inconsistent at actually following up silence or paralysis, and
   Asmodeus and Dispater are extremely similiar uniques with elemental
   projectile spells + Hurl Damnation + limited demon summon options, high
   AC and low EV, and a fixed equipment drop. (Asmodeus is statistically
   more dangerous due to Fire Summon getting to summon more at once, of
   course.) AF_CORRODE's irresistable corrosive nature as is deployed only
   on rust devils otherwise somewhat adds to the threat possibility space
   (I expect a bunch of good death logs with Corr (-40) before enough
   people pay enough attention) in a reasonably thematic enough fashion to
   work with.

--------------------------------------------------------------------------------
43d13352a3 | Aliscans | 2024-11-19 23:15:38 -0330

Don't let non-damaging clouds or walls stop shift+dir running.
Let the player run (shift+dir) through safe clouds.

Let the player run up to slimy walls if immune to their effects.

In both cases, the player could already travel through an affected
square.

--------------------------------------------------------------------------------
51936a82b6 | Isaac Clancy | 2024-11-19 23:15:33 -0330

Fix display of GDR in wizmode
Use the rounded down instead of randomly rounded version of the players AC
when calculating guaranteed damage reduction for display.

[Committer's note: edited slightly to silence a compiler warning.]

--------------------------------------------------------------------------------
96a7ec282a | Isaac Clancy | 2024-11-19 22:46:07 -0330

Fix slime not showing around slime walls after reload
After reloading and sometimes after changing levels, the slimey acidic
floors around the walls in the Slime Pits (and oozemancy walls)
wouldn't appear.

--------------------------------------------------------------------------------
9afaf516a7 | Isaac Clancy | 2024-11-19 22:45:46 -0330

Don't blame the player when a confused ally kills (BarneyGumball)
Angels summoned by The Shining One worshippers could become confused
(e.g. by being hit by a tarentella) and then kill themselves or other
angels putting the player in penance. Fix this by not blaming the
player for kills by confused allies unless they (or an ally) confused
the ally.

Fixes #3304

--------------------------------------------------------------------------------
1c2b424464 | Isaac Clancy | 2024-11-19 22:31:30 -0330

Let grey draconians keep iron scales in dragon form (kuniqsX)
Other draconian get to keep the mutations they get from their colour
when possible in dragon form, so it would be consistent for grey
draconians to keep their iron-fused scales.

Fixes #4111

--------------------------------------------------------------------------------
c7453fe8aa | Isaac Clancy | 2024-11-19 22:17:19 -0330

Fix autofight not moving over web with slick slippers (jejorda2)
When autofight was trying to move towards an enemy to attack it and the
only way you could see to reach the enemies was through a web, autofight
would give a message saying there was no safe path to the enemy and do
nothing. It should have moved through the web as the slick spippers give
immunity to them.

Fixes #3125

--------------------------------------------------------------------------------
ee4b17a322 | Isaac Clancy | 2024-11-19 22:00:55 -0330

Round down the displayed damage for thrown weapons (sdynet)
Previously, displayed damage for thrown weapon was rounded randomly
possibly giving a different value each time you examined your weapon.
It is now rounded down similar to unarmed.

Fixes #4047

--------------------------------------------------------------------------------
438ea5f9f1 | DracoOmega | 2024-11-19 20:04:13 -0330

Allow looking up spells by school with ?/s
Currently, looking up 'necro' with ?/s returns just 5 results, one of which
isn't even a player spell. Looking up 'fire' returns an incredible number
of results (most of which aren't fire.) This is an often-requested feature
in one form or another, so here's a stab at something simple and hopefully
helpful.

If you type '@', followed by a part of that school name, into spell search,
it will now return all player book spells of that school and nothing else.
(ie: '@necro' returns all player necromancy book spells.) A reminder of
this behavior is given at the prompt for entering a search key (the same
way as is done for glyph lookup options for some other categories.)

Thanks to Ge0FF for some helpful suggestions.

--------------------------------------------------------------------------------
30e30eea18 | DracoOmega | 2024-11-19 17:40:59 -0330

Unbreak Vanquished Vanguard / Summon Mortal Champion summon cap (Ge0FF)
Broken since fb19e97205a5 which made ENCH_SUMMON get set even when
mark_summoned is called with a summon type of 0. Both of these spells call
mark_summoned() a second time, after the monster is created, to properly
mark their manually-created gear as summoned, but this was trashing the
record of what spell had created them, causing their summon cap to be
ignored.

--------------------------------------------------------------------------------
02a2365326 | DracoOmega | 2024-11-19 15:45:58 -0330

Improve spell failure change description (Ge0FF)
Due to not checking the *displayed* chance on xv, it was possible for the
UI to think that a visible change in cast rate would happen for an item,
even when it would not (for instance, 'improving' it from way over 100%
fail to merely slightly over 100% fail). This meant the game would suggest
pressing '!' even though that did nothing.

Now we calculate all of the actual percentages directly, even on the first
pass, so that we can be sure to give accurate information.

Additionally, xv will now summarize by listing the change of the spell
whose failure rate is most affected by the gear change (eg: "your spell
failure would worsen by up to 22%"), to give a better idea whether those
details are worth looking at or not.

--------------------------------------------------------------------------------
2e717cac72 | DracoOmega | 2024-11-19 02:34:56 -0330

Add a preview for examined equipments' effect on spell success
Equipment in Crawl has a signficant effect on spell success that can often
be difficult to intuitively predict the magnitude of. The general advice
for determining just how badly that heavy armour will affect your spells is
to try it on, but this isn't always possible. Sometimes a player is
considering buying expensive armour from a shop, but isn't sure if it will
ruin their important spells or not. Worse, Ashenzari worshippers often
cannot swap their items without literally destroying them forever.

In the spirit of items showing preview of how they would modify your EV,
item descriptions now indicate their effect on spell success. Since effect
on spell success is extremely individual to the spell, a single number
cannot be provided; instead, a second page of information is provided for
items that would modify spell success rate (accessible by pressing '!')

This indicates the change in spell failure for every spell the player knows
which would change by at least 1%. They are sorted in order of magnitude of
change, and color-coded for how good/bad the change is. Items which cause
any such change mention this in the same space where AC/EV changes are
listed (along with how to access the additional information).

Something like this has been a repeatedly-requested feature for some time
now. I hope it will be helpful!

--------------------------------------------------------------------------------
2d3314aca4 | hellmonk | 2024-11-18 21:01:33 -0600

fix descent portal messages (again)

--------------------------------------------------------------------------------
4d9de50732 | DracoOmega | 2024-11-18 15:38:51 -0330

Fix various brokenness with exploding monster attributions (Midn8)
The most obvious breakage is that the player was incorrectly getting
penance for blazeheart core explosions, but the player also was not getting
XP for some things like ballisto spore explosions. I *think* this should
straighten most of that out.

--------------------------------------------------------------------------------
648c01eb48 | DracoOmega | 2024-11-17 22:49:25 -0330

Don't crash when a spike launcher made on the level border fires
By making the source of the attack be the monster's feet rather than the
spike launcher's own location (I don't think this actually affects anything
meaningful, since it was only range 1 anyway.)

--------------------------------------------------------------------------------
9a63397c37 | DracoOmega | 2024-11-17 21:08:17 -0330

Fix a pronoun issue with Curse of Agony expiring (salticid)

--------------------------------------------------------------------------------
aa28e0d10a | DracoOmega | 2024-11-17 21:02:10 -0330

Don't warn about hurting immune allies with Plasma Beam or Magnavolt

--------------------------------------------------------------------------------
0618abe852 | DracoOmega | 2024-11-17 20:57:28 -0330

Tweak will-of-the-wisp resists
Remove the mildly-inexplicable rC+ and add another level of rF+

--------------------------------------------------------------------------------
165d15814e | DracoOmega | 2024-11-17 20:56:50 -0330

Fix Soul Splinter not working on electric eels
They're not normally spectralisable on account of having no melee attack,
but since the soul wisp does not refer to any of the source monster's
stats besides HD in any way, there's no reason they should be excluded.

--------------------------------------------------------------------------------
37ced69e49 | DracoOmega | 2024-11-17 20:45:00 -0330

Ban Awaken Forest from being cast via Aphotic Marionette (Colgate)
Since it will currently always be hostile to the player.

(I could have sworn I disabled this before the ability was first pushed to
trunk, but seemingly not.)

--------------------------------------------------------------------------------
1f546792b7 | DracoOmega | 2024-11-17 20:40:48 -0330

Make phalanx beetle AC boost colour AC blue in webtiles
This fixes #4138

--------------------------------------------------------------------------------
971a450147 | DracoOmega | 2024-11-17 20:15:15 -0330

Be a bit clearer that pyre arrow's listed damage is per turn

--------------------------------------------------------------------------------
0e9803c144 | DracoOmega | 2024-11-17 20:15:02 -0330

Give the player a helpful suggestion when set on fire
While information about how to deal with sticky flame is included directly
in the status description, spell description, and bombardier beetle
description, let's try a tiny bit of extra notice that is hopefully
inobtrusive enough (rather than yell this at the player every single turn).

--------------------------------------------------------------------------------
adb32c1a65 | DracoOmega | 2024-11-17 20:07:36 -0330

Don't claim that gravitambourine does anything to orbs of destruction
It would still print the 'is pinned by gravity' message, even though it did
not actually affect them.

--------------------------------------------------------------------------------
0817dc3971 | DracoOmega | 2024-11-17 20:03:35 -0330

Allow Yara's to remove Bestow Arms's effect
Also, use a prop to handle the cooldown on the undying armour, rather than
repurposing the enchantment itself, now that it can be blown up and is no
longer 'decorative'.

--------------------------------------------------------------------------------
177a7290d3 | DracoOmega | 2024-11-17 20:01:42 -0330

Fix spacing in hoarfrost cannon idle messages

--------------------------------------------------------------------------------
d82fd1d872 | DracoOmega | 2024-11-17 19:22:43 -0330

Make spike launchers more visible in console (Undo)

--------------------------------------------------------------------------------
6624952077 | DracoOmega | 2024-11-17 19:22:43 -0330

Unbreak matches_player_speed for zombies
Summoned creatures were not intended to have the 'automatically match the
player's speed when travelling' behavior, but after the recent summon
refactoring, is_summoned() returns true for a larger category of monster,
including zombies.

Intead, let's try excluding based only on whether they have a summon timer
or not.

--------------------------------------------------------------------------------
1e4d284106 | DracoOmega | 2024-11-17 19:22:43 -0330

Don't let hostile polymorph prevent Vessel of Slaughter's transformation
Makhleb's power is not so puny. (Also, it consumed costs without even
doing its thing.)

--------------------------------------------------------------------------------
e0577c41e0 | DracoOmega | 2024-11-17 19:22:43 -0330

Don't fumble Wu Jian wall jump attacks if your destination has water
The ability itself says that you attack 'from above', yet you technically
landed at your end point *before* attacking, which could result in silly
things like falling into water a moment before being described as jumping
over something, and water at the end point could also cause you to fumble
your attack altogether.

Now, you should funtionally attack first and *then* land (and cannot fumble
even if you're leaping towards water.)

--------------------------------------------------------------------------------
f3c5cb16e6 | DracoOmega | 2024-11-17 19:22:43 -0330

Don't give apostles extra plusses on unrandart armour
Could result in silly things like them showing up in +8 moon troll leather
armour.

--------------------------------------------------------------------------------
c6086724bb | DracoOmega | 2024-11-17 19:22:43 -0330

Forbid imprinting a weapon your god hates (Ge0FF)
And if you already imprinted one before switching to a god who dislikes
your prior choice, unimprint it upon conversion.

--------------------------------------------------------------------------------
4d67529974 | DracoOmega | 2024-11-17 19:22:43 -0330

Let Spike Launchers be LRD'd

--------------------------------------------------------------------------------
82142fbd45 | regret-index | 2024-11-17 05:47:07 -0330

More specific spell icon / effect tiles
Most of these are using the new flash_tile() functionality added for
various Forgecraft spells to add new flashes of debuffs that are extremely
important to not miss, dramatizing them more than other debuffs and
hopefully continuing to make it harder to miss that they were inflicted.
(Several of these didn't even _have_ visual effects previously, which was
especially strange considering most hexes do by default.) The
splinterfrost barricade salvo, meanwhile, is meant to help distinguish it
from using the non-penetrating Throw Icicle effect.

Sources:

 * Draining Gaze vfx: roctavian's edit of Denzi's eye of draining.
 * Doom Howl vfx: roctavian's Shadow Fiend tile.
 * Entropic Weave vfx: Denzi's burst graphics and Pete Hurst's cobwebs.
 * Sap Magic vfx: snw-0's icon for the Sap Magic invocation +
                  Sastreii's antimagic icon.
 * Sentinel's Mark vfx: aidan holm's Sentinel's Mark spell icon.
 * Splinterfrost salvos: An edit of roctavian's throw icicle projectiles.
 * Stoke Flames icon: pianoman523's current creeping inferno tile.

This also comes with some reorganizing of dc-misc.txt to sort the spell
effects by rough school of origin, to ease any further additions to the
file.

--------------------------------------------------------------------------------
599108c877 | Nikolai Lavsky | 2024-11-17 00:13:13 +0300

fix: give water elementals animal intelligence too
This got missed in 62137d702.

--------------------------------------------------------------------------------
901f017ee1 | DracoOmega | 2024-11-16 16:53:26 -0330

Make Platinum Paragon use artefact weapons only (PleasingFungus)
I'd originally implemented per-weapon-type damage scaling for paragon out
of concern that certain weapon types (like axes or quick blades) would be
disproportionately good on them. Many of the usual factors that govern
player weapon choice don't really apply to either monsters or lategame -
scaling is very different, and you're sure to have your choice of a
reasonable weapon in nearly any category. I didn't want the choice to feel
too 'flat'.

But something you perhaps *aren't* guaranteed to have an obvious gauranteed
best option of are artifacts (and artifact weapons are the most fun to use
anyway.) So let's try removing the weapon-type-based scaling and just only
allow imprinting artefacts. (This does make Gyre and Gimble even more
absurd, but... maybe that's allow?)

This does mean the paragon can no longer fall back on using the player's
current weapon, if you've never imprinted one, so to try and avoid players
not realizing they should use this, you can no longer cast paragon unless
you first imprint *something*. (I considered just having them be unarmed
in this case, but it seems likely some players will miss that.)

--------------------------------------------------------------------------------
838d476545 | DracoOmega | 2024-11-16 16:53:26 -0330

Don't waste a turn trying to deploy a Paragon in deep water (Lightli)
Possibly the paragon should just fly, but while I debate about that, it
shouldn't consume a turn and 9 mana to do nothing.

--------------------------------------------------------------------------------
d03ed3959e | DracoOmega | 2024-11-16 16:53:26 -0330

Be more clear in the Spike Launcher failure message (ragingrage)

--------------------------------------------------------------------------------
a53a18d65b | DracoOmega | 2024-11-16 16:53:26 -0330

Fix spell memorisation menu spacing (Lightli)
I forgot to realign this to fit crocodile when I adjusted the spell cast
menu.

--------------------------------------------------------------------------------
46016ea2b6 | DracoOmega | 2024-11-16 16:53:26 -0330

Don't let Walking Alembic give player potions in Cocytus (regret-index)
If it deliberately works like real potions in as many other ways as
possible, probably this should also block it.

(For now, it doesn't affect ally buff effects, but to be honest, I am not
sure how much we can concieve of sawblades as drinking a potion anyway.
Maybe the alembic just made it some nice industrial oil to polish it with.)

--------------------------------------------------------------------------------
99847303ae | DracoOmega | 2024-11-16 16:53:26 -0330

Preserve clockwork bee HP better than winding/unwinding
This grew especially weird when Tempering was involved, and could result
in it looking like your bee grew steadily more injured each time you
re-activated it.

--------------------------------------------------------------------------------
50e1018844 | DracoOmega | 2024-11-16 16:53:26 -0330

Fix missing Shred spell icon

--------------------------------------------------------------------------------
c18741777b | DracoOmega | 2024-11-16 16:53:26 -0330

Preserve Tempering status when a clockwork bee unwinds/winds (ragingrage)
This also meant you could get explosions off the bee much more often than
expected.

--------------------------------------------------------------------------------
976cc2dc96 | Implojin | 2024-11-16 13:25:02 -0600

Draw Kinetic Grapnel UI icon in webtiles
This was left out of 0183c6dfd6.

--------------------------------------------------------------------------------
68e16c8a2b | Implojin | 2024-11-16 13:02:18 -0600

Don't randomize Fortress Blast damage description (again)
This is a fixed version of the fix from 94af0e6272d7.

--------------------------------------------------------------------------------
b7987cb560 | Implojin | 2024-11-16 12:58:23 -0600

Revert "Don't randomize Fortress Blast damage description"
I didn't know we were already using a different call for non-randomized
AC in the UI, fixing this differently in a following commit.

This reverts commit 94af0e6272d72a908e7deefd438db50019df8eae.

--------------------------------------------------------------------------------
94af0e6272 | Implojin | 2024-11-16 12:44:11 -0600

Don't randomize Fortress Blast damage description
It looks like this had been the intent already, but we were passing
in armour class with a div_rand_round.

--------------------------------------------------------------------------------
b8170214e4 | Implojin | 2024-11-16 12:37:09 -0600

Fix Fortress Blast damage description (Oneirical)
This spell description was using presumably-older version of its
damage formula that capped at 51 ac, instead of 70.

--------------------------------------------------------------------------------
90355d26cc | Implojin | 2024-11-16 10:28:52 -0600

Fix book of metalworking description (Zeldest)

--------------------------------------------------------------------------------
6b26e9b081 | regret-index | 2024-11-16 08:47:26 -0330

Tweak and add some more Xom tension spells
Battlesphere and Intoxication have been adjusted towards their new spell
levels, while two new Forgecraft spells have been introduced for the sake
of both variety and tactical screwery: Alistair's Walking Alembic feels
both appropriate for Xom's potion effect focus as well as leaving around
poison clouds to screw with a non-poison-resistant player's movement, while
Diamond Sawblades encourages repositioning mid-combat to be able to get any
value out of their free but arbitrary rare placement.

--------------------------------------------------------------------------------
a5ffdf50d9 | regret-index | 2024-11-16 08:47:26 -0330

Fiddle with a variety of monster attack type messages
Alembics and blazehearts both punching were using attack types not actually
in active use previously, as were dream sheep headbutting foes. In this
same spirit of being a little more specific with reasonably straightforward
attack types, the following not-weapon-using enemies now use attack types
and words other than "hit":

* iron golems punch both times,
* draconian monks punch for their first hit (and still kick + tailslap
  after),
* ushabti headbutt (they're too rigid to do much else),
* spatial maelstroms and thermic dynamos touch and engulf,
* and toenail golems gore.

None of these should affect gameplay- even if one dragged an undying
armoury over to draconian monks, they already preferred their bare fists
before any other weapons.

--------------------------------------------------------------------------------
d0176ef91a | regret-index | 2024-11-16 08:47:26 -0330

Short vault review, post-Forgecraft edition
 * nemelex_lonely_heart_becter no longer places Jessica post Temple.

 * Crypt entrances are now capped on their laughing skull counts,
   since rolling multiple laughing skull bands is quite dangerous
   for characters that kill monsters more slowly.

 * alphashops, custom_books, the Xom bazaar, and a variety of other
   vaults have new spells and books in the context of both the past
   couple of versions and Forgecraft.

--------------------------------------------------------------------------------
2aa0d2bae1 | David Lawrence Ramsey | 2024-11-16 01:07:10 -0600

Fix typo.

--------------------------------------------------------------------------------
b5dd53abf3 | David Lawrence Ramsey | 2024-11-16 01:01:15 -0600

Add Winding status description.
Also remove extra %%%%'s from status.txt.

--------------------------------------------------------------------------------
12864aae5e | DracoOmega | 2024-11-16 02:37:35 -0330

Fix a crash with examining Platinum Paragon spell description

--------------------------------------------------------------------------------
e664b64c1b | Nicholas Feinberg | 2024-11-15 21:46:47 -0800

Dedent

--------------------------------------------------------------------------------
b08092cf68 | Nicholas Feinberg | 2024-11-15 21:22:29 -0800

Small spell description tweaks

--------------------------------------------------------------------------------
907fb87e44 | David Lawrence Ramsey | 2024-11-15 23:18:48 -0600

Add a few Forgecraft ghost lines.

--------------------------------------------------------------------------------
2e8e2f50cc | David Lawrence Ramsey | 2024-11-15 23:17:16 -0600

Fix spelling.

--------------------------------------------------------------------------------
69e20f60b9 | gammafunk | 2024-11-15 23:13:46 -0600

Tweak a clua function
For the newly added view.trap_at() function, slightly rework it to
return the "base" trap name by the crawl-side trap_name() function. This
is mostly for consistency with the c_trap_is_safe() clua hook, which is
passed this same form of name. Previously we used a longer form that
includes "trap" in its returned string, which is more appropriate for
e.g. `x` mode descriptions.

--------------------------------------------------------------------------------
241dc13c55 | Nicholas Feinberg | 2024-11-15 21:12:45 -0800

Remove the indescribeable
Since an actual Forgecraft description is higher in the same file.

--------------------------------------------------------------------------------
0267f39781 | Nicholas Feinberg | 2024-11-15 21:10:49 -0800

Fix a few monstrous typos

--------------------------------------------------------------------------------
0c33a18029 | Nicholas Feinberg | 2024-11-15 21:05:00 -0800

Fix: (Parenthesize) Percussive Tempering
Make percussive temp check attitude while ignoring monsters.

--------------------------------------------------------------------------------
d72c9b7a1d | DracoOmega | 2024-11-16 01:28:25 -0330

Fix tag upgrade build?
Apparently the only beetle that had the beetle genus was phalanx beetle,
and it is otherwise dummied out. It's maybe arguable a mechanical one
shouldn't be a living genus anyway, but I honestly barely know what genus
even affects.

--------------------------------------------------------------------------------
0f9341590b | Nicholas Feinberg | 2024-11-15 20:56:59 -0800

Lay seige (to rest)

--------------------------------------------------------------------------------
48282d16c9 | DracoOmega | 2024-11-16 00:46:48 -0330

Diamond sawblades monster placeholder (regret-index)
Pulled out from Sastreii's spell tile until a final version arrives.

--------------------------------------------------------------------------------
d547fa6d45 | DracoOmega | 2024-11-16 00:46:48 -0330

Forgecraft spell tiles (Sastreii)

--------------------------------------------------------------------------------
ab24663898 | DracoOmega | 2024-11-16 00:46:48 -0330

Mark a majority of Forgecraft constructs as LRD-able
Battlesphere and Rending Blade feel too insubstantial for this, but most
other constructs are clearly made of metal or a similar hard material.

--------------------------------------------------------------------------------
6070836552 | DracoOmega | 2024-11-16 00:46:48 -0330

Various Forgecraft monster/spell tiles/placeholders (regret-index)
"CC0 piece usage:
  * Walking alembic enemies: shade's CC0 potions
  * Monarch bomb and bomblet enemies: Chrisblue's CC0 bombs

 The rest were cobbled together from old Crawl tiles."

--------------------------------------------------------------------------------
ef13c8a7ea | DracoOmega | 2024-11-16 00:46:48 -0330

Fix a typo

--------------------------------------------------------------------------------
070a0f9593 | DracoOmega | 2024-11-16 00:46:48 -0330

Don't fire battlespheres at pacified monsters (SallyRoses)

--------------------------------------------------------------------------------
2d81e8531f | DracoOmega | 2024-11-16 00:46:48 -0330

Remove a martyred shade's injury bond when it becomes a flayed ghost
Injury Bond ends automatically when the source of the effect dies, but the
shade isn't 'dead' - it's just not a shade anymore. While the flayed ghost
cannot *continue* to apply the aura to allies, it would still linger for
30 aut after the shade died/transformed. Now, it should end immediately.

--------------------------------------------------------------------------------
5a289ac79d | DracoOmega | 2024-11-16 00:46:47 -0330

Expire capped summons immediately instead of only *almost* immediately
Removing pre-existing summons when summoning things over a cap used a
special internal status for 'quickly expiring', but this expiring was still
very, very quick - immediately as that monster's next turn arrived, which
was virtually always before the next player action. It was only even
possible to see this in particular circumstances such as after an animated
armour moved a step, or for monsters summoned by other monsters.

Instead, just remove the summons immediately. (This also makes bookkeeping
for certain effects less troubled by ensuring that any previous monsters
made by a spell are removed *before* the new one is fully set up.)

--------------------------------------------------------------------------------
a521cab93d | DracoOmega | 2024-11-16 00:46:47 -0330

Reorder some checks in _set_firing_pos
The considerably more involved checks in mon_can_move_to_pos were being
called even for positions that were clearly out of range, leading to
potentially a great deal more work than was needed.

Instead, do the quickest vetoes first.

(There should be no functional change.)

--------------------------------------------------------------------------------
abaddbb882 | DracoOmega | 2024-11-16 00:46:47 -0330

Try to prevent Battlesphere / Rending Blade from leaving their caster's LoS
Their somewhat chaotic-looking movement gives them higher odds than most
allies of breaking LoS with their caster, which can be somewhat confusing
(ie: 'did it expire without me noticing?'). Try a little harder to keep
them where their creator can see them.

--------------------------------------------------------------------------------
49116da691 | DracoOmega | 2024-11-16 00:46:47 -0330

New Forgecraft UI/effect tiles (regret-index)
Spell tiles for Percussive Tempering and Magma Barrage.

Effect tiles for Detonate Monarch Bomb, Paragon Tempest, Percussive
Tempering, and Manifold Assault.

Sources:

 * Platinum Paragon tempest / Manifold Assault: CC0 slash vfx by Cethiel.
 * Nadja's Percussive Tempering icon: Denzi's old Force Lance icon.
 * NPT vfx: A CC0 aura effect by Kutejnikov and roctavian's branded
   hammer tile.
 * Monarch Bomb shrapnel: Denzi's old zap effects, lava tiles, and
   LRD icon.

--------------------------------------------------------------------------------
dc4253ee1e | DracoOmega | 2024-11-16 00:46:47 -0330

Let flash_tile display arbitrary tiles, not just colours
(And fix an animation delay bug in Shadow Tempest)

--------------------------------------------------------------------------------
01bb53b866 | DracoOmega | 2024-11-16 00:46:47 -0330

Exclude various Forgecraft spells from Oka/Sac Love
On the fence about Diamond Sawblades (it's a monster where attacking it is
meaningful, but it's also kind of 'Frozen Ramparts, but you make the
rampart yourself') and Lightning Spire (traditionally excluded, but you
can no longer give it orders, which makes it closer to Hellfire Mortar
which *is* currently allowed). Wouldn't be surprised if more debating the
subject happens later.

--------------------------------------------------------------------------------
62137d7022 | DracoOmega | 2024-11-16 00:46:47 -0330

Heavily refactor mons_is_conjured/mons_is_object, simplify
mons_is_conjured was a category being used in multiple (only partially
overlapping) ways. In some contexts, it was used as an equivalent for
is_summoned() for non-abjurable things which is_summoned() did not return
true (but now does, since the recent rework). In other contexts, it was
used to exclude monsters too minor to be randomly targeted for certain
effects (eg: Obsidian's Axe's mesmerisation effect or Ignis's Fire
Champion). In others, it was used overly broadly to avoid prompting the
player about harming invulnerable allies (ie: orbs of destruction), with
sometimes odd effects like Shatter being unable to damage spatial vorticies
or boulders.

In still more, it was used (as part of mons_is_object) to control what
allies were angered by attacks and which ones gods would penance you for
attacking - which weren't even symetrical categories! A lightning spire
would be angered by you hitting it and vanish, but Ely would not min. But
a spellforged servitor would *not* be angered by you hitting it, and yet
Ely would penance you anyway.

mons_is_object also relied on a bespoke list of things we considered to be
'a mindless object' that often overlooked things which seemingly belonged
there (while also producing weird effects like Orb of Mayhem never
triggering off killing dancing weapons or lighting spires, even though
other seemingly similar things counted.)

This commit replaces both of those functions completely. M_PERIPHERAL
replaces M_CONJURED (since the ancillary nature of these monsters is the
relevant mechanical thing, and not the fact that they were made by magic),
actor::is_peripheral() replaces most uses of mons_is_conjured() and also
folds tentacles and firewood into that same category. The very large number
of places that checked firewood/conjured/tentacles together now need only
check is_peripheral(), which should largely encompass 'is a proper
monster'.

Places that used mons_is_conjured to exclude 'minor monsters' now use
is_peripheral(). Places that used it to exclude 'pseudo-summons' just use
is_summoned() instead. Places that used it to reduce targeting prompts now
check always_shoot_through_monster() instead (which isn't actually
comprehensive, but the rest of that will wait for a later commit).

mons_is_object is removed altogether and rules regarding angering allies
and incurring penance are simplified. Anything which is both non-living and
brainless neither gets angry nor incurs penance - full stop. I gave
elementals animal intelligence, since it *feels* like they should have
enough sapience to complain about being attacked, but I doubt this matters
in practice. Most other uses of mons_is_object are simply cut (so orb of
mayhem will work on kills of any xp-granting enemy)

Sac Love / Oka ally conduct behavior is also effectively simplified a
little - monsters that are peripheral are okay and everything else is not.

There may be a handful of other minor behavioral changes (Siphon Essence no
longer works on firewood, for instance...) but I think most not already
mentioned are of minor conseqeuence.

--------------------------------------------------------------------------------
da257ce4a4 | DracoOmega | 2024-11-16 00:46:46 -0330

Make mons_is_firewood() into an actor method and replace usages
Firewood checks are done in many, many, many places. And many of these
places want to perform that check on an actor which might not actually be a
monster, leading to a common idiom like:
 if (targ->is_monster() && !mons_is_firewood(*targ->as_monster())

This is so common that I think being able to just call targ->is_firewood()
is a lot cleaner.

This commit replaces all usages of mons_is_firewood() with the new method,
improves one or two comments, and additionally fixes a minor bug where
Chaos slow/minipara could be chosen against monsters with stasis.

--------------------------------------------------------------------------------
74f4821936 | DracoOmega | 2024-11-16 00:46:46 -0330

Make Refrigeration *actually* count only allies for huddle bonus
While I claimed to do this in 1450d63957e5a (and the reasoning stands), a
misreading of the code meant that the commit did *literally nothing*. Let's
try doing it properly.

--------------------------------------------------------------------------------
cdf5795841 | DracoOmega | 2024-11-16 00:46:46 -0330

Use message channel to categorically ignore monster timeout messages
Since that was part of the point of there being one in the first place.

(And also ignore decor messages by default, too, in the rare case where
someone has told themselves to run across piles of fruit)

--------------------------------------------------------------------------------
33284afee5 | DracoOmega | 2024-11-16 00:46:46 -0330

Fix enemies sometimes getting incorrectly hit twice by allied beams
When allies fire a piercing beam at an enemy, and the player happens to be
standing in the path of that beam (and could be harmed by it), they will
cut their shot short immediately before it would hit the player. But this
is done by 'rewinding' the beam as soon as they test whether it can harm
the player, and code designed to allow piercing beams to hit monsters
standing at the player's location (ie: Fedhas plants) allows a beam to try
hitting a monster immediately after trying to affect the player. But the
beam has already rewound at that point, resulting in hitting the monster in
the space immediately *prior* a second time.

Now try a bit harder to actually end the beam processing when we mean to.

--------------------------------------------------------------------------------
cf86d80d2e | DracoOmega | 2024-11-16 00:46:46 -0330

Adjust how spell range is displayed in the spell menu
Instead of being shown in the form of @---->, it now just displays an
actual number. There was some recurring ambiguity among new players as to
whether you were supposed to just count the dashes or include the > as
well, but it was also needlessly hard to tell at a glance whether a spell
was full LoS range or only *almost* LoS range (unless the player had
another spell with longer range to compare it to).

This change also comes with a few other improvements:
 -Variable range spells are now listed in the form of X/Y where X is the
  current range and Y is the maximum possible range. The old method used
  . after the > to indicate 'possible range which the player does not yet
  have enough power to reach', but I think this was a little non-obvious
  and it also did not in any way indicate that a spell had variable range
  if you had already reached its maximum. I think this should now be
  clearer.
 -The red coloring of monster spell ranges in xv will now properly account
  for the player being *too close* to be in range of Call Down Lightning
  and Flashing Balestra.
 -The player spell menu in webtiles should no longer flicker between two
  sizes when you switch display modes with !
 -Range takes up less width in the spell menu (so something else can use it
  instead).

--------------------------------------------------------------------------------
6c71ebfaaa | DracoOmega | 2024-11-16 00:46:46 -0330

Actually give Shadow Puppet a summon cap
The commit that added it claimed it has a cap of 3, other information
sources have since claimed it has a cap of 3, and I am fairly sure I have
responded to a question at some point by saying that it had a cap of 3, but
it actually had no cap at all. Oops.

(I guess, in practice, it's quite hard to summon more than 3 of them in a
single battle anyway.)

--------------------------------------------------------------------------------
fb2b16b6a3 | DracoOmega | 2024-11-16 00:46:46 -0330

Add Dithmenos shadow mimic spell for Forgecraft
Shadow Turret: makes a stationary ally which repeatedly fires Shadow Shot,
a basic single-target spell with full LoS range (that otherwise does much
less damage than direct shadow attack spells, of course).

Summon cap of 2.

--------------------------------------------------------------------------------
1f958b4f53 | DracoOmega | 2024-11-16 00:46:46 -0330

Move Animate Armour into Forgecraft, rename and tweak
Saying that the spell created 'animated armour' always felt a little wierd
to me given that it clearly wasn't your armour that had gotten up and
started moving about (unlike with dancing weapons!). The writing tried to
describe this as the 'spirit' of your armour rather than the armour itself,
and I have attempted to lean a little further into that. The spell is now
named Awaken Armour and explicitly draws out an 'echo' of your current
armour (with some descriptions tweaked, as needed).

The one current use of natural animated armour (nicolae_shop_mannequins)
now no longer drop 'themselves' (which was always an unexpected
interaction, given how the spell clearly doesn't animate a real object). I
apologize to people who got creative with Overgrowth to snag an early
dragon scales.

The spell now also copies your armour in its entirety (rather than creating
a plain +0 version of your armour's base type). It feels a little more fun
to me to be able to apply artifact properties to your minion, and in
general Animate Armour was never considered overly powerful, so some degree
of buff seems fine. Inheriting plusses does mean that it is probably a fair
bit more durable, so I've nudged down its base HP slightly at the same
time.

Finally, the armour echo now tries to spawn adjacent to the caster. (I also
removed the 'dancing weapon' icon in the corner, since animated armour
generally looks nothing like armour on the ground, unlike dancing weapons,
and shouldn't be similarly confusable.)

--------------------------------------------------------------------------------
3cf105bb5b | DracoOmega | 2024-11-16 00:46:45 -0330

Distribute spells through new books
And give Forgewright/Summoner their new starter spells.

(As well as fixing up a couple cases where an earlier spell was mistakenly
in 3 books (Gavotte / Simulacum) or just 1 (Grave Claw).)

These are a little more provisional than usual, since I'm still hoping to
heavily overhaul the spellbook system at some point in 0.33.

--------------------------------------------------------------------------------
d5f8b11300 | DracoOmega | 2024-11-16 00:46:45 -0330

Don't give djinni Percussive Tempering without something to temper
Technically some of the spells on this list are impossible to be offered
before a level 5 spell, but it seemed worth being comprehensive in case
the spell levels of any of these things change in future.

--------------------------------------------------------------------------------
ff6897e465 | DracoOmega | 2024-11-16 00:46:45 -0330

Move Battlesphere into Forgecraft, tweak, rewrite backend code
This commit moves Battlesphere from Level 5 Conjurations to Level 4
Conjurations/Forgecraft. I was a little less certain about this becoming
Forgecraft than I was the other spells I've moved, but it does allow it to
share schools with its closest relatives, Servitor and the new Rending
Blade.

At the same time, this adjusts the behavior of battlesphere slightly, and
rewrites its code almost completely. While the refactor of ca6d514eab45b7
greatly reduced the number of situations where a battlesphere looked like
it should have triggered, but did not, it didn't remove them altogether.
Battlesphere's original implementation worked by co-opting normal monster
movement/action code to try and coax the battlesphere into relocating
itself over multiple actions until it had line-of-fire to a given target.
This was quite brittle and involving an increasing amount of bespoke code
and properties to try and do so intelligently. Rather than try to add *even
more* to fix these issues, I've opted to use a different approach
altogether.

Now, when a battlesphere is looking for an alternate firing position, it
calculates what spaces it could reach from its current position within 3
movement actions (accounting for what creatures are currently in the way),
and if any of those are valid firing positions, it will just immediately
move to that location. The battlesphere was already fast enough that
'teleporting' in this way should be visually indistinguisable from doing it
the normal way, but considerably less error-prone.

At the same time, I've changed the battlesphere's targeting behavior from
'pick a target at random' to 'pick the most injured target' (as calculated
by the difference between its max and current hp). This should greatly
increase the chance of it focusing on the target the player wants it to (or
at the very least - a target it is most likely to finish off).

I've also removed the effect of spellpower on duration and number of shots
before disappearing. Doing low damage at low power is enough, I think,
rather than doing low damage *and* only lasting for a few turns. (I've set
the average number of shots per cast at around ~70 power in the old
system.)

Battlesphere's been a fairly lackluster spell in recent years, and moving
it into side schools would probably make it even less appealing without
some touch-ups, so hopefully this new version feels better to use.

--------------------------------------------------------------------------------
8729743b89 | DracoOmega | 2024-11-16 00:46:45 -0330

Add method to compute movement reachability for monsters in a given range
monster_pathfind::fill_traversability() allows computing all spaces
reachable by a given monster, up to a given range. This information can
then be queried by monster_pathfind::is_reachable(pos). This allows seeing
which spaces a given monster could or couldn't reach within X moves.

I also added a boolean to allow considering actors to be opaque to movement
(so that you can ask the question of "What can I reach if everything in my
way remains there?")

The implementation isn't really the cleanest, but it saves on
reimplementing things monster_pathfind can already do.

This code will be used for a subsequent Battlesphere rewrite, but might
have other theoretical uses in future.

--------------------------------------------------------------------------------
f64de3d7f2 | DracoOmega | 2024-11-16 00:46:45 -0330

Move Spellforged Servitor into Forgecraft and rename
While I've always thought Spellforged Servitor had a nice ring to it, the
name feels increasingly weird when there's now no less than 4 other "Forge
[Creature]" spells. Being forged by a spell isn't a distinguishing
property anymore!

So now it's called Spellspark Servitor instead (and descriptions updated
accordingly).

Besides not being abjurable, there is no functional change.

--------------------------------------------------------------------------------
bcf7d946de | DracoOmega | 2024-11-16 00:46:45 -0330

Move Hoarfrost Cannonade to Forgecraft/Ice, tweak placement very slightly
The cannons can no longer place in melee range of the player and will
always appear at range instead.

(Also slightly remove alchemy references from the spell's descriptions.)

--------------------------------------------------------------------------------
e22bf9ab36 | DracoOmega | 2024-11-16 00:46:45 -0330

Add Forgecraft school to Hellfire Mortar and adjust numbers
It is now Earth/Fire/Forgecraft instead of just Earth/Fire. Since 3-school
spells are quite a bit harder to cast (especially at level 7!), its numbers
are generally adjusted upward.

It now uses a different internal spell from bolt of magma that is
functionally very similar, but with +1 range and different scaling. The
reliance on monster bolt of magma was a little restrictive and caused the
spell to have much poorer scaling with power than I think is desireable.
(200 power mortar didn't even do 50% more damage than 50 power mortar,
while the damage of many other high-level attack spells increases by nearly
200% in the same comparison.) A mortar-unique spell allows more control
here.

(As an incidental side-effect, Mortar HP no longer increases with
spellpower, but was always generally high enough that the mortar dying from
damage was rarely a real concern, so I think it's fine.)

--------------------------------------------------------------------------------
a5f1cede91 | DracoOmega | 2024-11-16 00:46:44 -0330

Move Summon Blazeheart Golem into Forgecraft (with minor flavor rewrites)
Besides becoming a non-abjurable construct, there should be no functional
changes.

--------------------------------------------------------------------------------
d6ff5ca7ac | DracoOmega | 2024-11-16 00:46:44 -0330

Move Summon Lightning Spire into Forgecraft, tweak behavior
Moves Lightning Spire from summonings/air into forgecraft/air and renames.

At the same time, I am trying a behavioural change in the spirit of
forgecraft allies having more unique deterministic behaviors (and also to
differentiate it a little further from Hoarfrost Cannonade, now that they
will share schools in addition to being close in level). Instead of being a
'normal' ally that listens to your instructions about what to hit, spire
now always fires its bolt at the *furthest viable hostile target* (much
like how plasma beam works). If that path is blocked, it will aim at
increasingly closer enemies until it finds a shot it's willing to take.

It still has its 50% chance to cast per turn. (I think the 'spikiness' of
this is also a good differentiator from hoarfrost's reliable shots every
second turn.)

--------------------------------------------------------------------------------
31361a5066 | DracoOmega | 2024-11-16 00:46:44 -0330

New spell: Rending Blade (Level 4 Conjurations/Forgecraft)
Intended as a new Reaver capstone spell, as well as a sort of 'melee
counterpart' to Battlesphere. Continuing the reaver tradition, this is a
strong damage conjuration with significant downsides, which supports a
conjurations hybrid playstyle.

Casting this spell uses *all* of the caster's remaining MP to create a
magical blade that flies alongside you for a small number of turns.
Whenever the caster hits with a melee attack while the spell is active,
this blade will attempt to dash through a line of enemies, inflicting
irresistable damage to all of them. When the blade dies or expires, the
MP used to form it is returned to the player. (An earlier version just gave
-Cast for the duration, but I thought it was a little more interesting if
it was *possible* to restore MP during the spell's effect, and also if the
amount of remaining MP provides a small power boost.)

The blade will prioritize the most HD of enemies in can hit in one dash
without leaving the caster's sight. If no viable target exists that turn,
it will retain up to 3 charges to unleash the next time a target presents
itself. (Since the blade uses the same M_MAINTAIN_RANGE behavior that
Battlesphere does, which jitters a bit, it tends to find viable shots again
on subsequent turns.) Hitting multiple enemies in a single attack (such as
with an axe) can trigger the blade multiple times at once! This is
obviously strong, but axe conjurers are such a niche thing that I think
it's okay if it's theoretically especially good with them (after all, it's
also especially good with quick blades.)

Given that the blade *deliberately* cannot fly through the player
themselves, it tends not to function well without a little space around,
but can be quite strong with the proper terrain.

(Reavers are not an especially weak background, although not a popular one,
and anectodally, many seem to stop training conjurations after Momentum
Strike. By offering a higher-level spell that continues the hybrid
playstyle, it may make them feel a bit more attractive - at least, make
them more likely not to ignore conjurations entirely in the long-term,
in favor of melee.)

--------------------------------------------------------------------------------
9e9ac7db5e | DracoOmega | 2024-11-16 00:46:44 -0330

New spell: Phalanx Beetle (level 6 Forgecraft)
This spell constructs a fast-moving ally whose mere presence increases the
caster's AC while it is alive, but which has a unique behavior: it will
never leave the caster's side under its own power.

If the caster moves, it will follow in lockstep with them (although it can
pivot around to reach enemies near you.) If forcibly separated (ie: via
knockback or blinking) it will prioritize returning to your side over
attacking anything else. It cannot be ordered away.

Its attack is fairly unimpressive for its level, and it cannot be thrown at
enemies, but it is durable and increases the caster's own durability (as
well as providing a natural synergy with Fortress Blast). Intended as a
generic mid-range option that can fit into almost any Forgecraft build.

--------------------------------------------------------------------------------
dd785e4bd3 | DracoOmega | 2024-11-16 00:46:43 -0330

Fix Shadow Tempest skipping stationary monsters
I think this was a mistake from copy-pasting Shadow Bind (which obviously
does nothing useful against stationary monsters)

--------------------------------------------------------------------------------
e2ea8aeea1 | DracoOmega | 2024-11-16 00:46:43 -0330

New spell: Summon Seismosaurus Egg (Level 4 Summonings/Earth)
Intended as the other half of a replacement for Summoner losing Blazeheart
and Lightning Spire, while trying to retain some of the dynamicism that
Blazeheart added to the background.

This spell summons a dinosaur egg on a random tile between 2-3 spaces away
from the player. If the player sticks near that egg for several turns, to
imprint upon it, *while enemies are nearby*, the egg will hatch into a very
strong ally for its level. (A small heart icon will be displayed over the
egg if the conditions are right for it to hatch, making it more transparent
to players when things are sufficiently in range.)

A seismosaurus is somewhat overstatted for level 4 (to compensate for the
slowness and positioning needed to hatch one) and has the Seismic Stomp
ability, which deals smite-targeted damage to several random enemies within
4 tiles of the seismosaurus. This deal only 1/3 damage to fliers, but can
sometimes cause grounded enemies hit by it to stumble and miss their turn
outright. They will use Stomp immediately upon hatching, and can also use
it randomly thereafter.

Being a smite-targeted AoE, it plays well with all sorts of allies (ie: it
can shoot 'through' them) and positions you end up in. And I think it
naturally gives the spell a sort of progression, where when you *first* get
it, the dinosaur is very strong, but you need to put effort into holding
the line with much weaker allies in order to hatch it. And then later on,
when you have stronger allies, you can toss an egg out for some
supplementary damage behind your higher-level summons.

Initial playtesting feedback has been positive, and I think the spell is
fun to use!

--------------------------------------------------------------------------------
9cda979304 | DracoOmega | 2024-11-16 00:46:43 -0330

New Spell: Fortress Blast (Level 6 Forgecraft)
A deliberate melee hybrid spell to further establish Forgecraft as not
*just* about making allies, but also other things conceptually related to
tangible physical structure and armou

Fortress Blast is a player-centered AoE attack spell whose damage scales
entirely based on your AC. Casting it roots the player in place for several
turns (during which they can still perform other actions), and at the end
of these turns, there is a large explosion of physical force. Spellpower
affects how quickly the blast charges up, but the power cap is deliberately
low, since this is aimed at characters with high AC who are less likely
to plausibly *reach* high power.

This is aimed, to a degree, as a sort of inverse counterpart to Manifold
Assault. Where that spell tends to be favored by EV characters (due in
part to its spell level making it harder to cast in armour), this one is
obviously aimed at AC characters. It comes with the downside of needing to
anchor you in place, but can do a lot more damage-per-MP if you're facing
many enemies. A spell to be added in a subsequent commit can also increase
the player's AC directly, providing a natural synergy for this spell (and
Animate Armour, slated to be moved to Forgecraft, naturally is boosted by
similar things, creating a cohesive sub-theme)

The damage scaling from AC is non-linear (ie: each point of AC is worth
*more* than the last) and currently caps at ~70 AC. The damage is *quite*
high with high AC, but given that it can inflict that damage at most every
few turns (along with downside), I do think it needs to be at least a
little high. (Formulas are, of course, subject to change from playtesting.)

--------------------------------------------------------------------------------
79a0bfb111 | DracoOmega | 2024-11-16 00:46:43 -0330

Don't override spell targeters for helpful spells, regarding the player
Regardless of what targeter::valid_aim returned for the player,
direction_chooser would consider the player a valid target and default to
them for anything with spflag::friendly or spflag::neutral.

--------------------------------------------------------------------------------
123cb02394 | DracoOmega | 2024-11-16 00:46:43 -0330

New spell: Nazja's Percussive Tempering (Level 5 Forgecraft)
Another hybrid offense/defense spell, Nazja's Percussive Tempering targets
an allied creature which was created by a Forgecraft spell and applies the
Tempered buff to it as well as healing it somewhat and immediately dealing
AoE damage around that creature.

Tempering boosts the monster's HD by 4 and also increases its melee damage
by 25%.

Tempering is fairly short-lived, but importantly the spell cannot be recast
on an ally who is currently tempered. And since a large chunk of the
spell's utility is in the damage burst (and a little in the heal), the hope
is that it isn't something you auto-cast on an ally, but rather choose an
appropriate time to use.

A useful and flexible utility spell that naturally interacts with different
forgecraft allies in different ways.

--------------------------------------------------------------------------------
5bfd77ad25 | DracoOmega | 2024-11-16 00:46:42 -0330

New Spell: Splinterfrost Shell (Level 7 Ice/Forgecraft)
This spell creates 4 splinterfrost barricades in an aimable semi-circle
around the caster, pushing anything currently occupying those spaces
backward first, if possible.

These barricades are moderately durable walls (with standard ice resists),
but when destroyed will fragment into piercing ice projectiles that launch
in the direction of whatever destroyed them (as long as no allies are in
the way). They will melt automatically if the caster moves more than 2
tiles away from them.

The spell can be used both offensively and defensively, providing breathing
room against melee enemies (and conveniently moving them out of permafrost
eruption's minimum range, while the barricades themselves are immune to the
damage from permafrost / freezing cloud / refrigeration) and also being a
meaningful source of damage themselves against enemies that can destroy
them rapidly.

I've been a *touch* concerned about how strong it is to be able to reliable
and repeatedly push enemies out of the way with a 'wall', but lategame has
many enemies who can fire through these barricades, and a level 7
dual-school that is foremost defensive probably gets a fair bit of room to
be powerful.

(There are some mildly weird-looking behaviors monsters currently exhibit
when pathing around barricades, but nothing outright broken. I hope to fix
some of these in the future.)

--------------------------------------------------------------------------------
998f96577b | DracoOmega | 2024-11-16 00:46:42 -0330

New spell: Forge Monarch Bomb (Level 6 Fire/Forgecraft)
This spell summons a Monarch Bomb, which is a relatively weak ally with the
ability to deploy a large number of Bomblets via its melee attack (or at
range with the Launch Bomblet spell). These bomblets are mobile, but
possess no attack of their own (and cannot be ordered around).

However, when the player recasts the spell, all active bomblets and the
monarch bomb itself will detonate, dealing half-physical/half-fire damage
to all adjacent targets (and destroying themselves).

This has shades of the old Forceful Dismissal spell, but in a more specific
context. There's a certain mild 'push your luck' element with detonating
the bombs now versus waiting for more bomblets to be deployed, and setting
up and then triggering large explosions is fun! It also offers Fire magic
an optonal side path that can perform better against fire-resistant
targets, making what I think is an interesting option when approached from
either school.

--------------------------------------------------------------------------------
5a53e7b716 | DracoOmega | 2024-11-16 00:46:42 -0330

Move warn_about_bad_targets, improve slightly
This adds a parameter which can be used to exclude certain targets which
cannot be harmed by the attack being warned about. (This isn't used more
widely at the moment, but there are some existing uses that probably should
be edited to account for resists.)

Also, if the same space is affected more than once, don't confusingly claim
that "Something (and 1 other bad target)" could be hit.

--------------------------------------------------------------------------------
2b47ff03c0 | DracoOmega | 2024-11-16 00:46:41 -0330

New spell: Alistair's Walking Alembic (Level 5 Forgecraft/Alchemy)
This spell creates a potion-brewing golem with both offensive and
supportive properties.

Its melee attack vents fumes (creating short-lived poison clouds around
what it punched), and after it has performed a certain number of attacks,
it will finish brewing potions and distribute them. This affects up to 5
nearby allied monsters, and also the player (if they are within 3 tiles of
the alembic when it finishes.)

For monsters, the effect is chosen randomly among haste, might, brilliance,
or heal wounds (choosing only effects that could do something for the
monster in question - ie: no might on monsters with no attacks.).

For players, it chooses one of haste, magic, heal wounds, might, or
invisibility, at random. These effects are slightly weaker than drinking
the potion directly, but otherwise count as a 'real' potion for multiple
effects (ie: mummies cannot drink them, oni can get a cleave attack from
drinking !hw/!magic, etc.)

Now, giving the player unlimited potion effects 'for free' might seem very
strong, but I believe the combination of the randomness, as well as needing
to have this golem survive and attack a bunch of turns in a row before
getting any effect at all, can balance this out appropriately. !haste is
strong not *just* because being hasted is strong, but because you can
become hasted the moment you want to and not: a ~1-in-5 chance 5-6 turns
later.

Also, the potion connection is, I think, good flavor to make alchemy feel
more alchemy-like. A useful offensive buddy, with a unique bonus.

--------------------------------------------------------------------------------
beb85e986e | DracoOmega | 2024-11-16 00:46:41 -0330

New spell: Platinum Paragon (level 9 Forgecraft)
The capstone of the Forgecraft school, this spell is intended as an
ally-creation spell that holds up as being worthly of level 9, while also
being as different from Dragon's Call as is possible.

Instead of creating a large number of short-lived, disposable, regular
monsters, it creates a single unique ally that you are encouraged to keep
alive (at least for a little while) and even fight beside (as opposed to
maneuvering to use your dragon swarm to *prevent* enemies from being
beside you.)

As a single bespoke ally with modality, Paragon has a lot of things going
on, but I think many of these properties flow naturally together and play
in a fun and distinctive way:

-Your Paragon can wield any melee weapon the player has found. (You use the
 Imprint Weapon ability to select this weapon, similar to how Imbue
 Servitor is used to select servitor spell.) Whenever you cast Paragon
 after this, it will spawn wielding a perfect replica of that weapon (so
 there's no need to carry it around in your inventory or switch to it
 before casting the spell).
-Whenever the caster performs a normal melee action, your paragon will also
 perform an instant melee attack again a random enemy in its range.
-While within 2 tiles of your paragon, it has a 1-in-3 chance to block any
 attack targeting the player. (This is aimed to further encourage the
 caster, who might be themselves frail to have a level 9 spell, to melee
 alongside their paragon with more confidence.)
-The paragon builds up charge as it melees things, and when it has attained
 a sufficient amount, the spell can be recast to perform a powerful
 finisher - unleashing a weapon attack with a bonus damage multiplier again
 many nearby enemies, and destroying the paragon in the process.
-Casting the spell itself deploys the paragon to a selected nearby location
 and deals modest damage via a concussive shockwave to nearby enemies
 (aimed at making the cycle of 'deliberately destroy paragon, replace
 paragon' feel better since you also get an immediate benefit to making a
 new one.)

All together, this makes a customizable ally that can feel different from
run to run (lots of exciting unrand weapons to give it!), encourages the
player to get in the thick of battle themselves (it charges up the finisher
faster!), and gives not just a stat-stick, but a fancy button to press as
your level 9.

Some numbers may still need adjusting, but early playtesting feedback has
been quite positive, and I think it's a very fun spell.

--------------------------------------------------------------------------------
b6ef6c3bbe | DracoOmega | 2024-11-16 00:46:41 -0330

Pull out some Gravitas and animation code into reusable functions
Since these are slated to get an additional use shortly.

--------------------------------------------------------------------------------
5f7b8dfc52 | DracoOmega | 2024-11-16 00:46:41 -0330

New spell: Eringya's Surprising Crocodile (Level 4 Summonings)
Intended as a Summoner starting to spell to replace the two level 4s it's
about to lose to Forgewright.

This spell summons a crocodile as a short-term mount beneath the caster,
which performs an ambush attack and repositions the caster in a single
action.

This spell is cast upon a target in melee range. The summoned crocodile
will perform an immediate attack against that enemy (which never misses and
has bonus damage based on spellpower), and drag both it and the caster
backwards. Then the caster hops off the crocodile, landing a space further
back, while the crocodile remains as a normal summon. It also makes some
water along the drag path.

The spell cannot be recast while the crocodile is still active (so you
can't perform silly chain-grabs), but it's fairly short-lived and fragile.

This is intended to be a more dynamic use of summons than average, and
allow some useful repositioning - leaning into crocodile's natural drag
attack by making it even better at deliberately pulling enemies away from
their allies to surround them with your own creatures, while also putting
the crocodile between you and whatever enemy was just next to you.

--------------------------------------------------------------------------------
3d961a6350 | DracoOmega | 2024-11-16 00:46:40 -0330

New spell: Diamond Sawblades (level 7 Forgecraft)
This spell creates up to 4 sawblades in the following fixed positions
around the player, which deal damage to adjacent enemies each turn they
are active:

X...X
.....
..@..
.....
X...X

(They cannot be placed in any space the player cannot see, or one with a
wall or other monster.)

The sawblades can be used both as AoE damage, or short-lived obstructions
(though they're not terribly durable) and the unique targeting will
hopefully interact with different spaces in interesting ways. (For
instance, they are useless in straight corridors, but very strong in
diagonal ones, and can be used both defensively and offensively in a single
cast, with the proper positioning.)

They are intended as a flexible and straightforward high-level
single-school option.

--------------------------------------------------------------------------------
0183c6dfd6 | DracoOmega | 2024-11-16 00:46:40 -0330

New spell: Kinetic Grapnel (Level 1 Forgecraft)
Given that Spike Launcher will be online for most Forgewrights by XL 2,
this is a spell with a short shelf-life, but they *do* need a generally
reliable XL 1 option and this is intended to be that.

Kinetic Grapnel is a short-range direct-damage projectile. If it
successfully does damage, it lodges a grapnel in that enemy which allows
the caster's next melee attack against them to be an automatic hit with +3
slaying.

Requiring a dodgeable, low-damage projectile to do damage should hopefully
limit its long-term usefulness as an accuracy boost (and the flat slaying
falls off quickly), but this forefronts some of the 'melee hybrid'
properties of Forgecraft from XL 1 while offering a straightforward tool
before more positional ones come online.

(The spell tiles at the moment don't look very grapnel-like, but this was
at least the 3rd level 1 spell I tried, so we'll just consider them a
placeholder for now.)

--------------------------------------------------------------------------------
0e8916362e | DracoOmega | 2024-11-16 00:46:40 -0330

New spell: Construct Spike Launcher (Level 2 Forgecraft)
Another Forgewright starter spell, this temporarily transforms a random
adjacent rock wall into a 'trap'/turret that repeatedly attacks a random
adjacent enemy each turn. If the caster moves more than 2 tiles away from
this launcher, it will disappear prematurely.

The idea here was to explore creating an 'ally' that couldn't be used as
an earlygame corridor swap or obstruction for enemies (which Summoner is
famously good at). In practice, it plays a little like making a single-tile
and single-target Frozen Ramparts, which allows a bit more movement while
active (and might, in fact, require the caster to move immediately in order
to position an enemy in the launcher's range). But that is a popular and
successful spell, and I feel this is more than sufficiently distinct from
it.

(I would have been happy to have this spell by targeted as Forgewright's
level 1 spell, but its terrain-dependence means that some entry vaults
simply will not allow the player to use it at all in their initial battles
and that feels unacceptable.)

--------------------------------------------------------------------------------
524258f53f | DracoOmega | 2024-11-16 00:46:40 -0330

New spell: Launch Clockwork Bee (level 3 Forgecraft)
A starter spell for Forgewrights (and their first that actually places a
monster on the field), this creates a fast and powerful-for-its-level
mechanical bee, with a number of specific limitations.

Casting the spell requires a hostile target to point it at, and then
winding the bee's clockwork requires channelling it for several turns
before it launches. The bee will fixate its attacks on the selected target
while it lives (similar to how Haunt and Soul Splinter work), but can
perform only a limited number of attacks before running out of power.

When the bee runs out of power, it falls dormant to the ground. The player
can wind it back up again by attempting to move into its tile, which will
refill it with energy and even heal it a little (and is a lot faster than
channelling 4 turns to launch a new one).

The idea is that the slow deployment (that cannot be done pre-battle),
combined with the strong incentive to actually poke your bee when it falls
down, will make playing with this ally a distinctive experience. And its
raw stats will make it feel good despite its limitations.

(It even comes with rF+/rElec+ to make it play a little better with
Forgewright's level 4 spells.)

--------------------------------------------------------------------------------
08c86277a0 | DracoOmega | 2024-11-16 00:46:40 -0330

Unify handle of channelled spells
Searing Ray, Flame Wave, and Maxwell's Capacitive Coupling all had a bunch
of common behavior (ie: ending on movement or becoming silenced during the
casting of the spell) that each spell implemented individually - and
sometimes in slightly different ways from each other.

This is an attempt to provide common functions to handle these shared
behaviors in a unified way (and make it easier to add a 4th such spell
without more code duplication).

This doesn't clean up all props used by these spells the way the old code
did, but that shouldn't matter - the props will always be set to relevant
values when the spell is cast, and ignored when the spell is not active.

This commit also contains save compat code to handle anyone who happened to
have saved in the middle of channelling one of these spells.

--------------------------------------------------------------------------------
ce823060fa | DracoOmega | 2024-11-16 00:46:40 -0330

Make quote text more visually separated from mechanical text
This adds a visual divider between mechanical descriptive text and flavor
text for most non-monster UI (monsters already have it on a seperate tab),
as well as drawing said text in a darker color.

It would be nice if there was some color between grey and darkgrey here,
and it would be *especially* nice if I could actually center the divider,
but as far as I can tell, a bunch of places that construct these
descriptions do not yet know the width of the popup they will be placed in,
so left-justified it is for now.

(While I feel many of the real-world quotes Crawl currently uses are
dubious or added out of a sense of completionism, I think the same space
could be used for ancillary flavor text or *in-world* quotes instead, and
plan to use it for such for at least a few forthcoming spells. More could
theoretically be done over time.)

--------------------------------------------------------------------------------
382a69801f | DracoOmega | 2024-11-16 00:46:40 -0330

Allow specifying weapon renames in job-data, give Forgewrights hammers
This is an ugly solution and maybe I should just canonize hammers as a
non-generating item again.

--------------------------------------------------------------------------------
845a3d3791 | DracoOmega | 2024-11-16 00:46:40 -0330

Implement backbone of new spell school: Forgecraft
Forgecraft is about making tangible physical constructs and reinforcing
them in various ways. It contains many spells which create things like
cannons, golems, or magical weapons, as well as a variety of supportive
utility.

This school is not intended to address a specific 'flaw' in Crawl at the
moment, but rather because I think it would be a fun new thing and allow
for even more cross-school diversity. I believe there is still a lot of
untapped potential in ally-creation spells, but Summonings was already one
of the most populated schools in the game. Necromancy shows that other
schools with an ally+utility focus can work well in Crawl, and this is
intended to be a new one of such - landing somewhere between the two in
terms of ally/utility balance.

Compared to Summonings, Forgecraft allies tend to have more specific unique
behaviors, and either operate in a limited way or are triggered based on
the caster's own actions (ie: as Battlesphere is). Forgecraft is also aimed
with hybrid play in mind from the start - with multiple spells that benefit
from melee cooperation in specific ways that Summoning spells don't or
which are directly augmented by melee ability.

Multiple existing spells will be moved into Forgecraft (with some
adjustments), as well as many new spells across subsequent commits.

This commit adds the basic infrastructure of the Forgecraft skill, as well
as icons, descriptions, Forgecraft enhancer artprop, Ru sac skill, randbook
words, and so forth, as well as a placeholder for a new mage background,
Forgewright.

(Because of strict skill enum grouping among spell skills (ie: all of them
have to be contiguous), this repurposes the SK_TRANSMUTATIONS enum to
become SK_FORGECRAFT. But, after examining this, I think it should be
basically safe.)

Aptitudes:

Mountain Dwarf: +2 (but now have -2 Summoning)
Coglin: +2
Yellow Draconian: +2 (they were the only colour with no aptitude bonus,
                      and this seemed reasonably connected, since Alchemy
                      was already used.)
Demonspawn: -1
Felid: -1
Ghoul: -2
Minotaur: -2
Tengu: -2 (to contrast with their +2 summoning, as an inverse of MD)

In all other cases, species have the same Forgecraft apt as they had
Summonings.

Forgecraft miscasts cause self-corrosion - less because acid damage is a
theme in Forgecraft spells, and more that operating upon the structural
integrity of physical objects is their domain, and making said structure
*worse* feels like a plausible failure state to performing them
incorrectly.

--------------------------------------------------------------------------------
0b821916ea | gammafunk | 2024-11-15 15:49:54 -0600

A clua function to examine traps
Traps can currently mostly be described by view.feature_at() by parsing
the resulting feature name. However "mechanical" traps like net and
pressure plate use the same terrain type, so there's no way to
differentiate those. Furthermore one has to manual parse the internal
feature name. This commit adds a `view.trap_at(x, y)` function that
returns a base trap name if a trap exists at (x,y), otherwise returning
nil.

--------------------------------------------------------------------------------
1838bd627c | Implojin | 2024-11-15 15:08:45 -0600

Fix crystallizing bolt fragility ordering (Flugkiller, Ge0ff)
Crystallizing beams were previously applying fragile before they
calculated their initial hit damage, meaning that their listed in-game
description significantly undersold their max damage, which was
misleading and surprising to players.

Here we tone down the initial hit damage of this beam significantly
by fixing it to apply fragile after the hit when cast on the player,
similar to our handling of BEAM_ACID corrosion.

TODO: Should any other beam effects also be reordered to apply after
the hit?

--------------------------------------------------------------------------------
559d583a2e | DracoOmega | 2024-11-14 17:43:19 -0330

Tweak foxfire monster description
The part about it being able to injure friendlies hasn't been true in
years.

--------------------------------------------------------------------------------
d02de9489b | DracoOmega | 2024-11-14 17:43:18 -0330

Don't let foxfires drag around enemies who cannot move
Due to a misordering of checks in _mons_can_displace, monsters were able to
swap with a hostile foxfire even if they were bound, paralyzed, caught in a
net, or several other things. This had the apparent effect of looking like
foxfires were 'pulling' this enemy towards them sometimes, as they hit it.

The whole 'enemies can freely swap into hostile foxfires' thing is a little
weird when the player cannot do anything of the sort. I guess the idea was
to prevent them being used to body-block enemies (since instead of wasting
a turn swinging at the foxfire, the monster will still be able to step
forward where they wanted to go), and removing this *would* be an earlygame
buff to the spell. But I wonder if the player should also be unobstructed
by them, since marshlight health is set so high that you cannot practically
injure them anyway. A question for another day...

--------------------------------------------------------------------------------
4d9b5d05aa | DracoOmega | 2024-11-14 17:43:18 -0330

Don't have hostile marshlights sometimes fly in the wrong direction
Or rather: despite being 'projectiles' shot by a will-o-wisp, marshlights
could fail to even notice the player after spawning and wander away while
looking confused (especially if the player had high stealth.) Instead, have
hostile foxfires simply inherit the caster's foe.

--------------------------------------------------------------------------------
6786cf231f | DracoOmega | 2024-11-14 17:43:18 -0330

Set MG_AUTOFOE targets upon monster spawn, instead of later
This should hopefully make the process slightly less brittle by
*immediately* setting an MG_AUTOFOE monster who finds a foe to BEH_SEEK
instead of relying on it happening later.

(This might render the previous commit unnecessary, but it might still be
relevant for homing in on a target only notice *after* spawn.)

--------------------------------------------------------------------------------
80d639dd4d | DracoOmega | 2024-11-14 17:43:18 -0330

Try to prevent foxfires from sometimes failing to move towards enemies
If the player cast foxfire with the only hostile targets at the edge of
their vision, it was possible for some foxfires to spawn too far away from
this enemy to see it themselves. Crawl generally handles these situations
by using the player's vision to pick foes for summons, but for exploding
allies *in particular*, their target would not be properly set on spawn,
since this seems to be done via an ME_ALERT event. This meant that there
was a small chance that the foxfires you spawned would just run off in a
random direction and disappear, despite there being an obvious target for
them.

Removing the check this commit touches altogether causes foxfires to
cluster nicely next to the player and follow them around if no enemies are
in sight, allowing you to 'pre-fire' a bunch of them in advance of an
incoming enemy, which I'm not sure is great gameplay for this spell. But
this smaller change seems to at least *mostly* fix the aforementioned
issue (even if it feels like a bit of a band-aid).

--------------------------------------------------------------------------------
6bca15cbc9 | DracoOmega | 2024-11-14 17:43:17 -0330

Re-enable certain animations on webtiles after 10 years
These were disabled by c562a60e928ebbb . It's unclear what technical issue
might have caused them not to function properly at the time, but they seem
to work without issue now, and it seems a shame for webtiles players not
to have the fancy banishment entrance animation. (Also, without it, there
were complaints that the Xom bazaar entrance was jarringly abrupt.)

--------------------------------------------------------------------------------
be89f894c6 | Implojin | 2024-11-14 10:02:18 -0600

Fix a purple draconian Ru sac will crash
https://underhound.eu/crawl/morgue/ZingZang1235/crash-ZingZang1235-20241112-1840
40.txt

What happened here was that first, the player took Ru sacrifice will,
granting an innate MUT_WEAK_WILLED. Then, at XL7, they became a purple
draconian, and the levelup mutation code tried to grant them an innate
MUT_STRONG_WILLED. This caused the loop in perma_mutate() to assert,
because there was an implicit assumption there that we wouldn't try
to grant conflicting innate mutations.

To workaround this, here we prevent granting a species mutation on
levelup (!) if a prior conflicting innate mutation exists.

This really shouldn't be happening, but as we've seen, continued
expansion of Ru sacrifices and species mutations (and now Makhleb marks)
over time makes it increasingly likely that someone will inadvertently
add conflicting innate muts which will need to be handled.

These conditions could have theoretically triggered an assert for a
long time, but as far as I can tell, the conditions to actually
trigger this bug were introduced in 02fa12cfa58b when purple Dr gained
strong-willed. This commit therefore shouldn't need to be backported
further than 0.32.

I've also added an explicit assert here to maybe save some future
devtime in tracking this down, if it reoccurs through an alternate
(non-levelup) call to perma_mutate() in the future.

--------------------------------------------------------------------------------
37b12fa2a3 | Implojin | 2024-11-14 09:00:36 -0600

Fix two clua make api errors
This should once again be working properly. Would be nice to get
doc.dcss.io updated at some point.

--------------------------------------------------------------------------------
4d20f59752 | Implojin | 2024-11-13 09:00:43 -0600

Dedup invocations manual acquirement (Darby)
Here we dedup some code that's being checked in invo_skill(), and also
permit invocations manual acquirement under GOD_NO_GOD with the reasoning
that this might affect future god choice.

We also block this acquirement for demigods, as it will never be useful
for them.

--------------------------------------------------------------------------------
661e094aa2 | Implojin | 2024-11-13 03:47:39 -0600

feat: Add player torment immunity info to clua
Here we expose player torment immunity as a clua function,
you.torment_immune().

Players have occasionally asked for this info to become available in
clua, so here it is.

Internally, this just wraps player::res_torment(). Our C++ handling of
the various torment-affecting statuses is mildly messy, but I'm not
touching any of that here.

--------------------------------------------------------------------------------
a8252ba838 | regret-index | 2024-11-13 01:53:01 -0330

Some more new specific spell effect tiles
A bunch of these were produced as side-effects or add-ons for impending
Forgecraft spells that can also just be added in advance for other spell
effects. In particular, I'd like to make partially-resisted blasts more
visually distinguished from regular blasts in general, and this should be
a reasonable start; splitting off Flash Freeze and Chain Lightning would
be next if I had ideas for either.

Sources:

 * Wand of Warping's blast: A CC0 slash vfx by Cethiel.

 * Iceblast and Seracfall and Glaciate: Denzi's old LCS icon.

 * Magma zaps and Fire Storm: Denzi's old zap effects and lava tiles.

(I'd like to reorganize dc-misc.txt entirely and make tileidx_bolt solely
fall on spell sources rather than colour + string matching, but I'll wait
until after Forgecraft lands to slightly reduce the number of merge
conflicts, since it's not greatly pressing to do either.)

--------------------------------------------------------------------------------
6419177204 | Implojin | 2024-11-12 09:43:09 -0600

Add Lici to the credits
Thanks Lici!

--------------------------------------------------------------------------------
c977fbfc18 | Implojin | 2024-11-12 09:25:31 -0600

Remove some obsolete Ru code
Following e16e337a13, SIZE_SMALL species can now use staves one-handed.

--------------------------------------------------------------------------------
e16e337a13 | LiciTheCrawler | 2024-11-12 09:20:50 -0600

1h enhancer staves for small species
Enhancer staves are currently two handed for Ko and Sp.  I feel like it mostly 
catches people off guard and doesn't matter much as far as their power level 
goes. 



It might be worth taking a look at other stuff since it feels like there is 
little reason behind what is two and what is one handed for small species.
--------------------------------------------------------------------------------
3712c6d7f1 | David Lawrence Ramsey | 2024-11-11 08:09:48 -0600

Add another mythical creature to artefacts.

--------------------------------------------------------------------------------
fd16a8b4c0 | Nikolai Lavsky | 2024-11-10 16:49:53 +0300

text: update the description of Bolt of Light
This wand spell doesn't confuse the player anymore.

--------------------------------------------------------------------------------
6a9379c173 | Aliscans | 2024-11-10 12:24:04 +0000

Use more nouns when a boulder pushes something into the unknown.
Brom's Barrelling Boulder can push monsters into terrain you haven't
seen. This created a message such as " Your boulder crushes the orc
against and falls apart!" as feature_description_at() returns an empty
string for unknown terrain.

Replace the empty string with "something" for that message.

--------------------------------------------------------------------------------
75134b2f13 | gammafunk | 2024-11-09 13:03:51 -0600

Fix the CAO build by using std::set::insert()
It seems that CAO's STL doesn't support std::set::emplace().

--------------------------------------------------------------------------------
f801aa8b2f | gammafunk | 2024-11-09 02:04:32 -0600

Fix mapstat/objstat initialization issues
This commit fixes a crash due to mapstat/objstat not resetting seen
unrands between iterations. Once all 8 octopus king rings had been
generated from previous iterations, the first iteration that attempted
to generate another octopus king ring would cause a crash. Even if the
crash didn't happen, objstat wasn't generating unrands correctly across
iterations.

To fix this, I've made mapstat/objstat use a centralised
dgn_reset_player_data(), which is a function formerly called
dgn_flush_map_memory() that was used by lua tests. This function covered
all resets mapstat/objstat was already doing as well as those it was
missing. It was missing one reset for item sets, which I've added. Use
of dgn_reset_player_data() reduces the number of places where we have
duplicate player data reset code from three to two; hopefully at some
point we can reduce this to one.

Additionally for mapstat/objstat, we call initial_dungeon_setup() to get
a more centralised and complete initialisation of dungeon setup that
includes setting up Ecumenical Temple maps. I've also rename the dlua
function dgn.clear_data() to dgn.clear_persistant_data() for clarity and
consistency with another related dlua function.

--------------------------------------------------------------------------------
0d2c7b62eb | Nikolai Lavsky | 2024-11-08 15:34:55 +0300

text: update the description of Trog's wizardly items conduct
Troglodytes can safely use pain-branded weapons now, but a wizardly
item like the sphere of Battle will get them into trouble.

--------------------------------------------------------------------------------
9556e82baa | Nikolai Lavsky | 2024-11-08 13:19:26 +0300

fix: don't let pain weapons enable Necromancy training under Trog
Even though followers of Trog can use pain branded weapons since
9c3d1c461, they get no benefit from training Necromancy. So training
this skill is not only harmful, but also useless for them.

--------------------------------------------------------------------------------
f847e8a4cf | David Lawrence Ramsey | 2024-11-08 01:24:37 -0600

Unbrace.

--------------------------------------------------------------------------------
832354d22e | David Lawrence Ramsey | 2024-11-08 01:20:22 -0600

Fix missing message when all gems are collected.
It wasn't properly accounting for gems in branches that weren't
generated in a given game (Swamp, Shoals, Snake Pit, Spider's Nest).

--------------------------------------------------------------------------------
c96b193c27 | brandon s allbery kf8nh | 2024-11-05 19:17:29 -0600

work around crash in actor::knockback
https://cbro.berotato.org/morgue/sjaakdevlaming/crash-sjaakdevlaming-20241006-01
4359.txt

Passive retaliation killed the caster of a force lance before
knockback could occur; since the caster's position was long gone
by the time actor::knockback finally got called, there is no
position to knockback away from any more, so just return false.

[Committer's notes: DracoOmega mentioned a preference for trying to
preserve knockback direction here even if the knockback agent was
dead, but as that commit hasn't yet happened, I'm merging this, since
it should fix a recurring segfault.

Closes #4077.]

--------------------------------------------------------------------------------
559140af29 | David Lawrence Ramsey | 2024-11-04 08:09:13 -0600

Reword Brilliance's description.
So that it only refers to Yredelemnul by name, as is done elsewhere.

--------------------------------------------------------------------------------
2694494baf | Nikolai Lavsky | 2024-11-04 15:03:42 +0300

fix: adjust conditions for activating skill training (dilly)
Currently, the activation of skill training has a few false positives
and false negatives:
* Artefact rings and amulets with +Blink/+Inv don't activate training
  of Evocations.
* Weapons and staves with evocable abilities enable training of
  Evocations even if you can't use such items. E.g., carrying an
  artefact GSC with +Blink does that even if you're a kobold or felid.
* Artefact talismans with +Blink don't activate Evocations training.
* An active talisman doesn't enable relevant skills unless you have it
  in your inventory. So evoking a talisman from the ground doesn't
  activate training of Shapeshifting.
* Shattering a cursed item under Ash doesn't deactivate training of
  corresponding skills.

This commit fixes that and refactors the relevant code a bit. Thanks
to dilly for reporting this!

--------------------------------------------------------------------------------
381ce9d8e6 | regret-index | 2024-11-02 21:28:10 -0230

Don't display doubled vigour fading messages out-of-los (Implojin)

--------------------------------------------------------------------------------
4b1f6b956e | David Lawrence Ramsey | 2024-10-30 19:14:38 -0500

Fix typo.

--------------------------------------------------------------------------------
b28a76aa2d | Nikolai Lavsky | 2024-10-30 23:31:58 +0300

refactor: tweak some unrand staves-related code
Both UNRAND_ASMODEUS and UNRAND_DISPATER are no longer staves. Also,
the former has a passive effect now, which doesn't depend on Evocations.

--------------------------------------------------------------------------------
7c11dcb7fa | regret-index | 2024-10-30 17:55:22 -0230

New Xom action: light webs on fire
On one hand, it's what a lot of games that aren't Crawl would allow the
player to do anyway, and Xom already has a noticeably fiery action.

On the other hand, the idea that in the entirety of Crawl, that only Xom
can rarely decide to do this, is probably funny enough in and of itself.

Much like Snakes to Sticks, this is meant to provide a Xom action that
changes according to the branches one gets in a game- and somewhat
usefully, there's only two monsters in Spider's Nest with any fire
resistance. Unlike Snakes to Sticks, this comes with a fair bit less
complexity- it just removes all webs in sight (and frees anybody stuck in
a web), then creates fire clouds where those webs were. It provides a
little more ease of movement for the branch in a flavourful fashion without
being too intrusive, and continues the trend of Xom uniquely warping the
Dungeon's terrain on a whim.

--------------------------------------------------------------------------------
8dadf6a4fb | David Lawrence Ramsey | 2024-10-30 13:04:49 -0500

Add missing Divine Shield status description.

--------------------------------------------------------------------------------
8d75f24163 | Sean Dewar | 2024-10-29 19:10:16 -0500

Add missing space to Horror status light text
Makes it consistent with other such status light texts, and should fix the
WebTiles hover tooltip showing "No description found" despite a correct
description existing in `dat/descript/status.txt:458` (though I couldn't locally
test that; assumed from looking near `tileweb.cc:1213` and
`webserver/game_data/static/player.js:447`).

--------------------------------------------------------------------------------
14434f1371 | Implojin | 2024-10-29 12:45:07 -0500

Add adelrune to the credits

--------------------------------------------------------------------------------
10d9a8409e | guillaume | 2024-10-29 12:06:25 -0500

Apply location effects to flank and swoop
Before this commit, flank and swoop attack flavours would
not trigger traps and trap-like effects like sigil of
binding when moving the monster.

I haven't found an issue for this but I stumbled upon that
bug while feeling clever about a ufetubus getting sigil'ed.
The ufetubus didn't get sigiled as I expected.

Here we also let sigil of binding prevent monsters from flanking or
swooping: without this change, adjacent bound ufetubui would still be
able to flank the player.

[Committer's notes: Squashed. Edited commit message.

Closes #4101.]

--------------------------------------------------------------------------------
5f200facdd | regret-index | 2024-10-28 18:15:47 -0230

Minor vault review, mostly aesthetics edition
Worthy of note:

 * Vaults entry vaults now consistently all don't take up the large vault
   slot on the floor, so late D has more odds to place more interesting
   vaults to thus stand out a little bit more to justify itself.

 * wizlab_eringya has grass floor tiles again, as was accidentally removed
   in 5f48996.

 * lightli_orcish_oven is downweighted in V, since vaults_rooms are used
   substantially more thoroughly than otherwise and we've gotten plenty of
   vaults for V since 831329d.

 * nicolae_yak_garden has been moved from an incredibly deep depth
   (originally meant to be half way through Lair, now pushed upwards as
   Lair has picked up more threat) and has a Crypt version to use the
   old lich garden flavour when it was in Zot before 8ac13c1 moved it to
   Forest (followed by it eventually moving it to Lair).

 * serial_glass now has a 1/4 chance when placing in Depths, Elf, or Crypt
   to use different (but still reserved) tile colourations, to make it a
   little nicer seeming later on. This also makes a handful of generic
   glass vaults sometimes use those different colours, but honestly, it's
   fine to throw around more tile changes visuals-wise compared to a lot
   of other accumulated vaultmaking sins.

 * "you.depth_fraction() < 1" checks in vaults for being on floors before
   the end of a branch have been replaced with checks for "you.depth() ~=
   dgn.br_depth(you.branch())", which is longer but actually directly
   states its usage intent and makes lua usage more consistent for future
   guide-writing purposes.

--------------------------------------------------------------------------------
2e8f5e9b4e | DracoOmega | 2024-10-26 04:51:29 -0230

Fix monsters sometimes following the player into Duels (particleface)
MF_TAKING_STAIRS is set on nearby monsters when the player starts to take a
stair. This flag is used at the end of the stair delay to determine what
monsters are eligable to follow. It is cleared from non-following monsters
when the player leaves the floor, but was *not* cleared when the player's
attempt to take the stairs was interrupted (eg: by constriction, trampling,
etc.)

Oka's Duel ability enters the arena via code that handles normal stair
transitions. It does not *set* the MF_TAKING_STAIRS flag, but it still
respects it on any monsters which already had it. Thus it was possible, if
the player took the stairs, was interrupted, and then used Duel, to pull in
all the monsters that *would* have followed them across the stairs into the
Duel.

This was a rather mysterious bug to deduce and I'm still not 100% convinced
this solves all instances of Duel stowaways, but it does solve at least a
solid chunk of them.

--------------------------------------------------------------------------------
9f708d3ed5 | DracoOmega | 2024-10-26 04:51:23 -0230

Apply some attack flavours against dead monsters
Monster attack flavour handling was skipped if the initial hit killed a
monster's target. Most of the time this was sensible (no point in freezing
something that is already dead!), but a handful of attack flavours had
effects that reached beyond just the target they were attacking. For
example:

-Broodmothers/Obsidian Bats couldn't summon things off killing blows
-AF_VAMPIRIC monsters couldn't drain HP from killing blows (notably: the
 vampiric weapon brand *does* work on killing blows.
-Shadowghasts don't lose their invisibility on shadowstabs that kill their
 target (allowing them to reuse it immediately)
-AF_SWARM, AF_BLOODZERK, AF_BLINK similarly don't work properly.

This commit changes a handful of such attack flavours to work even if the
defender is dead.

--------------------------------------------------------------------------------
1faad6508c | tuohy | 2024-10-25 23:36:33 -0700

correct period to comma in wand of light description

--------------------------------------------------------------------------------
1108719ceb | regret-index | 2024-10-24 21:59:46 -0230

Reorganize dc-wall.txt
This file is a complete mess, depositing branch walls all over the
place and with two awkward divisions of intermingled rock and stone
tiles before an end point of glass / crystal / metal splits.

This shouldn't have any visible effects in-game, but it should make
adding new wall tiles reasonably more consistent through ordering and
sectioning. Sections-wise, everything has been split into:
 * The default wall tiles (+ colour variations) for each main wall type,
 * then branch tiles according to their rough depth,
 * then portal tiles,
 * then vault tiles.

This also consistently puts features in those given sections into
split-ups of rock, then stone, then other features, rather than mixing
the former two. It also adds comments over tiles for branches and portals
whose tile file names don't contain their given location in their name.
Altogether, this should hopefully significantlly help keep the file more
organized and help others look up tiles' places and uses for vault
deployment.

--------------------------------------------------------------------------------
6879795947 | regret-index | 2024-10-24 21:59:46 -0230

New Makhleb Mark invocation icons (Sastreii)
Undeniably striking art, each of them.

--------------------------------------------------------------------------------
b0ae30da48 | regret-index | 2024-10-24 21:59:45 -0230

Adjust Xom polymorph checks (Mike)
5cebcaf adding in a condition to avoid polymorphing super early bats over
arrival / altar vault liquids also accidentally screwed up the logic
checks to properly exclude firewood, the non-living, or the undead as long
as one was above XL 3. This has been fixed and tweaked upwards to require
being above XL 4, also preventing Xom from polymorphing regular firewood
plants and fungi entirely.

Xom could previously still polymorph early oklob plants into thorn hunters
or starflowers or shambling mangroves, though, (and could make sleepcaps
turn into ballistomycetes to sporulate with extremely little warning),
which is now also softly excluded from completely destroying early chaos
knights (by refusing to polymorph plant holiness monsters period unless
one's above XL 8).

--------------------------------------------------------------------------------
26535046ea | regret-index | 2024-10-24 21:59:45 -0230

Place a missing midnight gem (#4097)
Accidentally broken in ce7c55b. My apologies.

--------------------------------------------------------------------------------
e21b1ddef6 | regret-index | 2024-10-24 21:59:45 -0230

A variety of remixed extended tiles
All of these branches lacked their own unique tile appearances beyond a
few recolours of default tiles. With the bulk of extended running heavily
off of theme and novelty more than about replayable variety, it helps
Pan and the Hells each to have their own unique tiles for both the sake
of external vault flavour and for the flavour of each of those branches.
(I also have some ideas and work done on new Zot tiles in this capacity,
but it required each branch to technically have its own tiles first.)

 * Pandemonium stone: A mix of Denzi's wall_relief, wall_bars, and
   Porkchop's stone_dark walls recolouring Denzi's stone_grey walls.

 * Mnoleg stone variation: A mix of Denzi's wall_relief, wall_bars, and
   unrecognizably-warped old very ugly thing tile.

 * Gloorx Vloq stone: A mix of ontoclasm's Crypt metal, plus Sastreii's
   Snake stone and Depths vault floors.

 * Lom Lobon crystal: A combination of heavily edited CC0 art by NettySvit
   and cynicmusic.

 * Cerebov metal: A mix of Heavily edited CC0 art by Surt and
   unrecognizably-warped balrug tiles by Sastreii.

 * Gehenna stone: A mix of ontoclasm's Labyrinth stone and
   unrecognizably-warped pit fiend tiles by Denzi.

This also comes with some minor adjustments to a number of vaults to deploy
these tiles a bit more (for various demonic contexts), and to avoid using
them in holy_pan while that's still around. Should be a little easier to
make Pan decor any visually interesting, at least.

--------------------------------------------------------------------------------
d854694f7a | Kate | 2024-10-24 22:22:23 +0100

Remove a speech line

--------------------------------------------------------------------------------
bacc2b0399 | Kate | 2024-10-24 22:22:10 +0100

Adjust some more Yredelemnul messages
To properly refer to Yredelemnul only by name.

--------------------------------------------------------------------------------
48f6307ce2 | Kate | 2024-10-24 22:12:08 +0100

Clarify some Yredelmnul ability descriptions

--------------------------------------------------------------------------------
41421e2eb3 | Nikolai Lavsky | 2024-10-24 16:21:14 +0300

text: tweak a few more descriptions
To match the "Does X" format. Also, remove a stray space.

--------------------------------------------------------------------------------
f2f3612d91 | Kate | 2024-10-24 00:33:11 +0100

Adjust some god descriptions
To match the other descriptions in referring to the player as "the
worshipper", "the follower" etc, rather than directly as "you".

--------------------------------------------------------------------------------
9ae0b0c6c5 | Kate | 2024-10-24 00:29:17 +0100

Adjust some ability descriptions
To match the format of other abilities ("Does x" rather than "Do x").

--------------------------------------------------------------------------------
c4cfdf539c | Kate | 2024-10-24 00:25:46 +0100

Reword some god messages and descriptions
By convention, Crawl gods aren't gendered, and they are referred to
directly by name only (not by singular they pronouns). Adjust some speech
lines, descriptions and other messages to match this.

--------------------------------------------------------------------------------
e5f5f5be5e | Kate | 2024-10-23 01:14:20 +0100

Fix Ignition exploding on projectiles

--------------------------------------------------------------------------------
2f91ea3cd2 | Kate | 2024-10-22 23:17:35 +0100

Display Imbue Servitor's delay on the ability menu

--------------------------------------------------------------------------------
361589c4d2 | Kate | 2024-10-22 18:02:12 +0100

Fix Ash bondage not updating with slot-blocking muts
Bondage level was rechecked if an equipped piece of equipment was forced
off due to a mutation, but not if you didn't have anything equipped in that
slot already. However, it should still be rechecked in those cases because
piety scales based on the number of available slots (so if, for example, a
player has every slot filled except one, and then that uncursed slot is
blocked by a mutation, they should then reach max piety).

--------------------------------------------------------------------------------
d558c92145 | Kate | 2024-10-22 18:02:04 +0100

Australianise some spelling
And fix a typo.

--------------------------------------------------------------------------------
6938ffb21a | Kate | 2024-10-22 16:30:54 +0100

Fix some Foxfire messaging
Prevents foxfires from printing "Your foxfire is destroyed!" messages when
hitting something, and correctly uses their timeout message on expiry.

--------------------------------------------------------------------------------
6727bf9f3c | Nikolai Lavsky | 2024-10-22 17:58:03 +0300

feat: make miasma-breathing monsters less picky about their targets
There doesn't seem to be one explicit and consistent policy for player
resists affecting monster AI, but most cloud spells don't check even
species-level resistances.

A catoblepas would happily breathe calcifying dust at a gargoyle or
djinni, swamp dragons don't mind breathing poison at a mummy, having
poison resistance or even poison immunity doesn't affect swamp drakes'
AI too, and only death drakes absolutely refuse to waste turns breathing
miasma at anyone with rMiasma. This includes not only mummies, ghouls,
and bloodless vampires, but also players who wear the Cigotuvi's embrace
and players in statue, storm, death, or wisp form.

Death drakes share this spell with a few extended monsters, so this
commit makes them all ignore rMiasma when casting Miasma Breath or Death
Rattle.

--------------------------------------------------------------------------------
a0fd5bc31a | Implojin | 2024-10-21 19:49:30 -0500

docs: deprecate some mantis links
Players haven't been able to create accounts on mantis for many years,
it doesn't seem helpful to continue to link mantis in our in-game FAQ.

I've also updated a few links here to our currently active community
feedback locations: github issues, github PRs, and the roguelikes
discord.

--------------------------------------------------------------------------------
90227b9278 | DracoOmega | 2024-10-19 12:59:53 -0230

Don't have inner flame monsters explode on timeout (dilly)
While this is appropriate behavior for things like ball lightning, inner
flamed summons that expire should just disappear quietly.

--------------------------------------------------------------------------------
3d4140c9fd | regret-index | 2024-10-18 23:59:00 -0230

New requested monster spell icons (pianoman523)
Spells that get new icons: Blink Allies Away, Blink Allies Encircling,
Dimensional Anchor, Flash Freeze, Mesmerize, Resonance Strike, Vitrify,
and Vitrifying Gaze.

Most of these have come with some edits and tweaks to the initial
submission. The Blink Allies [Encircling | Away] icons also uses the old
ally heart icon drawn by ontoclasm, and the Resonance Strike icons also
uses the Leda's Unmaking tile by Sastreii.

(Also, removed an excess placeholder Hoarfrost Cannonade tile left
in a different folder for now.)

--------------------------------------------------------------------------------
de4f08d9b4 | regret-index | 2024-10-18 23:32:31 -0230

Some more preliminary tiles, triton edition
Composited from other tiles to fulfill differentiating the large number
of absent mutation and spell icons, as is usual:

 * Mertail mutation: ontoclasm's mermaid statue.

 * Siren Song, Avatar Song: CanOfWorms' Fugue of the Fallen icon,
   ontoclasm's merfolk siren / merfolk avatar water tiles and
   dancing weapon status icon.

--------------------------------------------------------------------------------
790fefb5c0 | regret-index | 2024-10-18 18:08:17 -0230

Don't try to place blind dancing weapons (#4089)
nicolae_gammafunk_elf_defective_weapons_storage tries to make one set of
defective dancing weapons blind, but nonliving creatures can't be blinded
in the first place, losing the defective weapon flavour that excuses a
runed door box from placing ~8 or more dancing weapons. (The vault's own
comments mention trying out confusion instead, but this will just make them
kill everything else in the vault.) To fit the defect theme of being slow
or covered in acid, and to follow the bug report's suggestion, they are now
vitrified instead so they will effectively die much faster.

Closes #4089.

--------------------------------------------------------------------------------
6dbb4b3ddd | regret-index | 2024-10-18 17:41:20 -0230

Add more to the Abyss feature sanitizing list
This list is used for when banishment changes one's immediate terrain
surroundings from the prior branch into the Abyss. (Honestly, we could
probably do with more of the reverse of Abyss corruption here and have the
floor tiles of given old branches show up in the Abyss both on immediate
banishment and in the floor copying so people can more easily notice that
the Abyss is mirroring places besides Swamp.)

 * Decorative floors rely on vault redefinitions and thus show up as
   question marks asking for a bug report otherwise. They now are just
   replaced with plain floor instead for now.

 * The Orb Dais was duplicated by banishment (and is itself still otherwise
   unchanging in the process), and now is replaced by a statue instead.

 * Runed doors not set by vaults (and instead by the Abyss copying seen
   and generated floors) tend to not actually lead to anywhere or serve
   their purpose at all, which is flavourful but also confusing for the
   heavy usage of runed doors as a highly mechanical matter. They now
   are replaced by regular clear closed doors instead. (Abyss recently got
   new flavour with the eye fountains, anyway.)

--------------------------------------------------------------------------------
803e90bfac | regret-index | 2024-10-18 17:14:10 -0230

New leather armour tiles (Sastreii)
Good updates for all of the base leather armour tiles (mundane, good_item,
and randart), as well as a new tile for Cigotuvi's Embrace.

(I also moved the most easily reusable old variation to the unused/armour
directory and deleted some quite old tiles in exchange.)

--------------------------------------------------------------------------------
551f775c75 | DracoOmega | 2024-10-18 15:09:12 -0230

Fix Gavotte not being aimable at the level boundary (Drazool)
The spell never directly affects the target cell anyway, and you can
already cast it against any other type of wall just fine (if your objective
is to move things besides yourself).

--------------------------------------------------------------------------------
0442bec93c | DracoOmega | 2024-10-18 15:06:03 -0230

Fix pillars of rime not being LRD-able (Drazool)

--------------------------------------------------------------------------------
49991a7d3d | DracoOmega | 2024-10-18 15:02:56 -0230

Properly use the MONSTER_TIMEOUT channel for explosion poof messages
(Since this is intended to replace the normal poof message when inner flame
blows up a summon, for instance.)

--------------------------------------------------------------------------------
14ba1b91ca | DracoOmega | 2024-10-18 15:02:14 -0230

Fix some weirdness with blazeheart core explosions (Ge0ff)
The core itself was now accidentally treated as abjurable, resulting not
only in some odd messages about its residue disappearing in a puff of
smoke (and it itself disappeared in a puff of smoke), but *actually* making
smoke on its own tile, which prevented the flame clouds from ever being
placed there.

--------------------------------------------------------------------------------
a278277405 | DracoOmega | 2024-10-18 14:59:59 -0230

Don't make blazeheart golems explode on timeout (particleface)

--------------------------------------------------------------------------------
8cbeda2b7e | RypoFalem | 2024-10-18 05:15:08 -0500

Extend single-day holidays to three days.
Since servers use UTC to determine the time, Halloween evening in the
Americas doesn't count as Halloween in web games. Extend Halloween and
April Fool's to 3 days so it's covered by all time zones. The winter
holidays already last over 2 weeks so remain unchanged.

--------------------------------------------------------------------------------
2bbf05e178 | regret-index | 2024-10-18 03:12:17 -0230

Revive and heavily revise some removed vaults
This isn't meant to be a completely comprehensive project, but a
continuation of a loose experiment of mine to help with various always
pressing desires (like V vaults, D:$ vaults, or Depths:$ vaults) in line
with d25c09d's own revivals.

 * dhfh_tomb_1: Removed in 8598196 for its Norse flavour of jotunn and
   cursed undead also just being the same contents as lategame enemies
   anyway (and also having very little nested-portal interest), this has
   been revived as a vault for V mixing those together with thematically
   -appropriate preservers, gargoyles, and new decorations to try to hit
   its mourning-crypt concept once more.

 * metal_show: Removed in 1042b88 for using very harmless enemies and
   uniques quite late into the game as a wave of miscellaneous fans
   watching a metal concert in a game with no instruments. This has
   been revived back in its V position with a heavy upgrade in threat
   using monsters already present in V, and further heavy redecoration.
   Even if it mostly comes off as a nightclub coven, that's still
   something of reasonable interest for a vault.

 * wizlab_ozocubu: Removed in 9c11f61 for being incomplete before
   initial wizlab testing, as well as filled with comically underpowered
   enemies for its depth, and then never followed up upon due to the
   great design difficulty of it not overlapping too heavily with Ice
   Caves. Following on its initial use of skeletal warriors to vary up
   the opposition, I've converted the provided layout into a cavern's
   icy castle with various living and dead warrior options usually
   equipped with cold gear, and deploy it through a large number of
   branches for another themed V vault, a Zot stair vault hitting on a
   neglected resistance there, and a D:$ / Depths:$ vault.

--------------------------------------------------------------------------------
b65ea80194 | Implojin | 2024-10-17 20:30:45 -0500

Fix inhibited regen infoleaking invis mons
Previously, the inhibited regen mutation effect was being applied while
any monster was nearby, regardless of whether the player knew that it was
there. This was technically an infoleak, and also led to messaging that
players found confusing: E.g. with a nearby unseen horror, players couldn't
rest, and they weren't being informed why in the combat log.

This commit changes the behavior of inhibited regen to only take effect
with visible nearby monsters: there shouldn't be any issues with this from
a gameplay perspective, and this fixes both the infoleak and the messaging.

Fixes #4018.
Closes #4064.

--------------------------------------------------------------------------------
3dacd37fa5 | Implojin | 2024-10-17 00:48:52 -0500

Clarify spellcasting tutorial phrasing (Noctsol)
We had a report from a player that the `z?` message in the spellcasting
tutorial wasn't very clear (is the game unsure about what the command is?).

This commit tries to clarify things by breaking up that message, into
separate memorisation and quivering tutorial tiles.

--------------------------------------------------------------------------------
3973d0effb | Medrano83 | 2024-10-15 22:15:46 +0200

Fix the Android default screen settings
This value error makes the game crash on some devices when starting
the game in landscape mode.

Thank you to the player from Indonesia who reported the bug.

--------------------------------------------------------------------------------
0e9ad9ad44 | Implojin | 2024-10-14 22:12:27 -0500

Remove an outdated slime shaft veto (gammafunk)
Previously, player shaft destinations were specifically vetoing target
positions with adjacent slime walls. This check was added in 61e6210cf4,
to prevent shafts in slime from dealing damage to the player (and possibly
killing the player) before they had a chance to react.

That reasoning was obviated in e3182b2870, when slime walls were reworked
to no longer deal damage. Preventing the player from being shafted to a
position that corrodes them is less compelling reasoning; let's allow it
again.

This reverts commit 61e6210cf4b648636163e9fe7f42c1eae1754a39.

--------------------------------------------------------------------------------
921eff9f32 | regret-index | 2024-10-14 22:26:30 -0230

Replace the V / Trove rock tiles
These rarely-seen rock tiles have always been somewhat gaudy in their
highly-saturated fashion from back in the very first days of Crawl having
tiles, and don't particularly obviously suit either of their uses. I'm
fusing them with the equally-old and currently quite rare wall_brick_gray
(currently used in one Spider end, one Shoals end, one Kiku vault, and one
bazaar option) to present a sort of "flaking golden bricks stained very
lightly with blood" look, which should hopefully work out better in terms
of resembling regular building material while still looking different from
most other places' rock tiles.

--------------------------------------------------------------------------------
0bf80241f6 | mumra | 2024-10-14 08:02:16 +0100

Properly remove Animate Skeleton
Animate Skeleton was nominally removed in 613369f but the removal was
somewhat incomplete. The spell description was left in a number of
translations (just removed in en), the spell tile still remained,
the spell data was still present and not made into an AXED_SPELL, the
enum was not marked for TAG_MAJOR_VERSION deletion, and (consequently)
it was not added to removed_spells.

So to avoid potential confusion and errors I have done the above. I
also added a fixup in tags.cc so very old Necromancer saves should now
receive Soul Splinter instead (which it was ultimately replaced with).

--------------------------------------------------------------------------------
06e22a58e0 | regret-index | 2024-10-13 00:58:34 -0230

Fit more vault.lua includes into the .des files
Crawl rebuilds got somewhat tempermental about the .des caches after
5f48996 and ce7c55b made the bulk of files rely on dlua/vault.lua functions
to redefine statues or floor- this should hopefully should fix up such
issues by putting the crawl_require line into all files that use any of
the three redefinition functions.

--------------------------------------------------------------------------------
8334a9b5f1 | regret-index | 2024-10-13 00:48:28 -0230

Adjust some spell tiles
 * Removed the Fake Rakshasa Summon icon, since the old Rakshasa summon
   behaviour is extremely unlikely to return and current Rakshasas split
   without casting a spell.

 * Made a new quick placeholder Hoarfrost Cannonade tile using Sastreii's
   recent hoarfrost cannon submissions. Spells like this one meant for the
   upcoming school may need a new full revising in time to get them closer
   to one another in colour schema and consistent tile appearance, but this
   should most likely wait until the initial spells are added for the
   school.

 * Repurpose a Hoarfrost Cannonade tile submission that lacked any visible
   cannons to instead work as Hoarfrost Bullet and Legendary Destruction
   icons, with the former also using ontoclasm's Throw Icicle icon.

 * Trim the accidental black border off of the Gell's Gavotte icon.

--------------------------------------------------------------------------------
6874458004 | regret-index | 2024-10-13 00:48:28 -0230

Heavily rewrite Xom's action picking code + subsequent odds
Xom's twin action-picking functions (one each for good and bad actions)
were legendarily bad code that was next to impossible to properly assess
the odds of any given action or change such in any meaningful way. (One
could run the wizmode Xom simulations list to get a very rough idea of the
former, but the latter was heavily bound by its implementation.) This
rewrite replaces massive waterfalls of condition + roll checks to instead
just use a list of weights and lambdas, to make it much easier to parse
and adjust for any future Xom changes, as well as to minorly tweak Xom's
overall effects with such newfound capabilities.

This also comes with some implementation changes:

 * Xom will only polymorph allies with non-zero tension, so Xom will no
   longer see the player resting and decide to replace the regenerating
   single long-term ally with a random no-longer-regenerating ally.

 * Tension checks are no longer heavily fudged between actions, and now
   weapon animation, multiple ally summoning, mass charm, and swapping
   door states all require more than next to no tension to happen.

 * Most noticeably: Xom's non-boredom mood no longer de-emphasizes the
   most common effects, for both good and bad effects. Xom's mood has
   always been one of Xom's weakest design components (in how Xom's
   inherent lack of reliablity meant particularlly good or bad moods
   were background announced swings of luck rather than any inherent
   change). Future goals for Xom in this version are to replace all
   of Xom's mood levels besides boredom with a visible tension meter,
   while slicing out the most enemy-annihilating / player-annihilating
   options into more controlled fashions to try and save a worshipper
   rather than annihilating individual quokkas or komodos with half a
   dozen force lances.

   * Most noticeable out of this is that Xom is marginally more likely
     to teleport the player into bad situations in a worse mood at no
     tension, and is more likely to stick to potions and tension spells
     versus summoning allies or raining down destruction when in a good
     mood at any meaningful tension.

In the total average of Xom moods, action chances shouldn't change by more
than a flat 0.1% to happen or 4% proportionally either way with the new
math, but even mood evening out the likelihood of actions more often there
are a few notable shifts while these initial numbers were being set:

 * In the good actions list, tension spells and random item gifts are
   marginally more common (as they're some of Xom's most usefully
   variable actions in the first place), while detect all, fog, mass
   halo, and bazaar trips are all less common (the first is quite good
   these days but has significant fall-off on more completed floors, the
   second is boring, and the last two work better the rarer they are to
   see).

 * In the bad actions list, Xom has less chance to roll nothing and
   slightly more chance to make idle noise.

--------------------------------------------------------------------------------
701edd8936 | DracoOmega | 2024-10-13 00:44:25 -0230

Fix Yred reaping always working (T1-M4T)
The code explicitly skipped summoned zombies/spectrals, but since the
recent summon refactor, Yred's own zombies counted as such, causing your
reaping effect to think you never had any zombies (and thus should have a
100% chance of success).

In addition to fixing that, this commit adds an explicit summon type to
track Yred-reaped undead more directly.

--------------------------------------------------------------------------------
0a5ed6d79a | DracoOmega | 2024-10-12 23:54:25 -0230

Fix Elemental Force summons expiring immediately (Autarch)

--------------------------------------------------------------------------------
07456b3189 | DracoOmega | 2024-10-11 17:28:07 -0230

Fix tentacles losing constriction whenever they pull something
The entire concept behind how starspawn tentacles and snaplasher vines are
supposed to work is that they pull the thing that they are constricting.
But (since 0.18-ish) due to their own movement, they actually stop
constricting the thing immediately *before* they drag it, resulting in
confusing message sequences like "The snaplasher vine loses its grip on
you. The vine pulls you backwards!" How is it doing that, exactly?

This is, of course, because there is a moment in time where the tentacle
has moved, but the constrictee has not yet, and thus the constriction is
'invalid'. Conceptually, they're supposed to be moving at the same time,
though, so this adds a parameter to actor::moveto and actor::move_to_pos to
allow skipping constriction invalidation until after both things have
moved.

--------------------------------------------------------------------------------
3382226504 | DracoOmega | 2024-10-11 17:28:07 -0230

Don't display tentacle/segments as 'minions'
They may internally be treated as summons, but are logically part of a
single large creature and probably make sense to display as such.

(Solo tentacles created by magic still display as minions, but their
segments should not.)

--------------------------------------------------------------------------------
9adc1c5f74 | DracoOmega | 2024-10-11 17:28:06 -0230

Be a little more specific about summon dismissal on attacking friendlies
Use a (hopefully) more correct killer_type and don't fire this for
tentacles/segments. Propogating the event to the head should properly
handle whether the tentacle monster should go poof or just get angry with
you.

--------------------------------------------------------------------------------
9dbd12bfa3 | DracoOmega | 2024-10-11 17:28:06 -0230

Fix attitude change propogation for tentacles
Changing the attitude of a tentacle head properly adjusted the attitude of
its tentacles, but the reverse was *not* true, leading to some weird
behavior.

If a player (for instance) attacked the tentacle segment of a charmed
starspawn, the starspawn would appear to ignore it entirely. (The segment's
attitude would be made hostile, but segments are constantly recreated every
action, and it would be seemlessly replaced by another friendly one
essentially immediately.)

But if the player attacked the *tip* of a tentacle, the tip would turn
hostile, *but the rest of the segments would not*, resulting in some
impressive acrobatics as the tentacle attempted to attack/constrict its own
segments.

This commit attempts to do a better job of propagating attitude changes
back up to the head. Changing attitude directly in wizmode works properly
if you do it for tentacle segments, and attitude changes cased by
ME_WHACK/ME_ANNOY behavior events called on child monsters will send the
same event to the tentacle head itself. This should result in attacks
against any part of the tentacle monster being interpreted as attacks
against the monster as a whole.

--------------------------------------------------------------------------------
1d54a0429a | DracoOmega | 2024-10-11 17:28:06 -0230

Fix a crash on non-damage kills of tentacle segments (staticshock)
If a tentacle segment was killed for reasons other than damage, the code in
monster_die that attempts to clean up the rest of the tentacle would
recursively kill it a second time before the first monster_die finished,
resulting in an assert.

(Presently this is happening due to a second bug that is considering
all tentacle segments to be summons which should be abjured upon taking
friendly fire, but it is conceptually possible to trigger this in other
ways.)

--------------------------------------------------------------------------------
2156aa9015 | mumra | 2024-10-11 05:47:28 +0100

Fix randomness in shield block to-hit calculation
To account for shield block in hit %, shield_bonus() was copied to
monster_info; however slightly unexpectedly there was a random roll
being applied in this method. This meant that for monsters with shields
(or an amulet of reflection) the to-hit % would randomly change each
time inspected.

Additionally the way integer division was used across these methods
meant there was some further inaccuracy in the simple average calculated
for some values of sh.

This change improves the formula a bit; it's still not perfect but
definitely better. It also now correctly indicates when a monster's
incapacitated status is affecting the shield block, if that monster had
zero dodge normally.

--------------------------------------------------------------------------------
6ce201e34c | mumra | 2024-10-11 05:47:27 +0100

Clean up an unused function call
In the past, _player_hurt_monster handled its own death cleanup, but
this was changed in 1567df3. Various other incremental changes to the
function mean there is nothing hurting the monster *other* than the
::hurt call, and as that now handles any necessary death cleanup
this final condition should never be possible to hit.

--------------------------------------------------------------------------------
2cf4ae63b3 | mumra | 2024-10-11 05:47:27 +0100

Comment cleanup: an already-done constify todo
Was apparently already done in 083cf6bb240

--------------------------------------------------------------------------------
6fe43b3371 | mumra | 2024-10-11 05:47:27 +0100

Fix Sniper showing 1% hit chance and bypass shield
Improvements to the hit chance display unfortunately introduced a bug
when hit chance is AUTOMATIC_HIT, causing the xv to show to hit as 1%.

While fixing this I noticed there is a very tiny but still non-zero
chance for AUTOMATIC_HIT attacks to be blocked by a shield, due to
AUTOMATIC_HIT being treated as a hit roll of 1500. Since this is either
slightly unexpected or if intended should be more impactful, it seems
easiest to just bypass shield checks as well for something like Sniper.

--------------------------------------------------------------------------------
de153c73cf | mumra | 2024-10-11 05:47:27 +0100

Correctly describe Canine Familiar cooldown
Due to confusing property ordering in duration data, the "You are unable
to call your canine familiar" message was only visible in wizmode, and
not on the @ screen as intended.

--------------------------------------------------------------------------------
e325cd85d1 | mumra | 2024-10-11 05:47:27 +0100

Remove and clarify a TODO around OOD monsters
The comment was inaccurate as the check *can* come out true, so I added
an explanation as to why it's there.

--------------------------------------------------------------------------------
41fc793b43 | mumra | 2024-10-11 05:47:27 +0100

Remove a redundant XXX comment
Given ammo no longer really exists, this comment seems to be irrelevant
now.

--------------------------------------------------------------------------------
c8b311e6f6 | mumra | 2024-10-11 05:47:27 +0100

Remove some dud param comments and fix typo
The documented params seem long gone.

--------------------------------------------------------------------------------
06a421242d | gammafunk | 2024-10-10 23:40:20 -0500

Add the Abjuration spell to clua monster info
Monsters with spells marked with the summon flag get Abjuration the
automatically, although only cast with a chance when they would cast a
summon spell. This special case has to be handled separately if we're
listing a monster's spells. Hence this commit adds Abjuration to a
monster's spell list in clua when appropriate.

--------------------------------------------------------------------------------
7f099897d9 | mumra | 2024-10-11 04:45:44 +0100

Fix directional bias in pool fixup
Due to the algorithm modifying tiles as it went, subsequent iterations
were based on the new state rather than the original - this resulted
in North- and West-facing pools getting affected potentially several
tiles deep, while the South and East edges general got just a one tile
layer of shallow water, which looked a bit odd and not symmetrical.

The adjusted algorithm builds a vector of coords to paint later: however
this looked rather too neat as then there is only ever a 1-tile border
of shallow water. So I ran a 2nd pass to let the shallow water encroach
to 2 tiles deep in places. The probabilities needing tweaking to
produce a satisfying organic look that is quite varied.

Sometimes the 2nd pass will not run, with a 25% chance, to produce
tidier pools and moats occasionally (but not in Lair).

--------------------------------------------------------------------------------
4eba2d974d | DracoOmega | 2024-10-10 17:19:34 -0230

Fix mangrove hornets being marked as 'minions' (Riverefiend)
This also gives them not having XP.

Additionally, fix summon marking for hornets from mangroves that are
themselves summoned (ie: by shadow creatures).

--------------------------------------------------------------------------------
19655175bd | DracoOmega | 2024-10-10 16:07:52 -0230

Fix Wucad Mu / Borg wizlab summons being broken (midn8)
When summon mgen_data was switched to using aut durations instead of abj
degree, vaults which manually created summoned monsters was overlooked.
Since it's a bit of a pain to do the per-monster duration randomization in
vaultspec, I've made "dur:X" there default to calling summ_dur directly.

This means it isn't possible to specify summon duration in aut in vaults
(or wizmode monster creation...), which I consider inideal, but this is a
reasonable quick fix given how rarely this functionality is used.

(This also makes all summoned monsters made by monspec 'actual' summons,
which isn't strictly true in theory, but is true for all current uses I
know of. Slightly unhappy about this.)

--------------------------------------------------------------------------------
21dfed3d1e | patrick | 2024-10-09 10:08:52 -0400

Make a scroll shop always ID the scrolls lying around
These days, vaults that always place a specific type of consumable
will pre-ID that consumable to avoid the need for spoilers. This
scroll shop vault, which leaves a few scrolls of noise lying around,
somehow missed the memo. So I'm fixing that.

--------------------------------------------------------------------------------
09451382ac | Nicholas Feinberg | 2024-10-08 22:06:30 -0700

New Fedhas altar (Sastreii)

--------------------------------------------------------------------------------
ac5b87be5f | Nicholas Feinberg | 2024-10-08 22:06:05 -0700

New plant tiles (Sastreii)

--------------------------------------------------------------------------------
6c17059a10 | DracoOmega | 2024-10-07 19:20:39 -0230

Fix agent-less monster::was_created_by() always returning false
Things likely broken by this:
 -Qazlal elementals losing their cloud and Upheaval immunity
 -Lugonu anti-wrath protection not prioritizing wrath summons
 -Flashing Balestra weapons using the wrong death messages

--------------------------------------------------------------------------------
7c53e13f8b | DracoOmega | 2024-10-07 19:20:33 -0230

Fix Flayed effect ending upon taking stairs with a ghost (staticshock)
The comment for monster_cleanup() was misleading enough that some on-death
functions ended up being moved here by 5f5c15f, but this resulted in Flay
wearing off immediately if a flayed ghost left the level (including by
taking the stairs with the player!)

There were some other bugs also, such as earning credit for Beogh Venegance
kills by merely taking the stairs with a vengeance-marked target. They
didn't even lose the status, so you could dance up and down with the same
simple enemy repeatedly to clear a vengeance debt against many other
things!

(I've rewritten the function comment to hopefully be clearer in future.)

--------------------------------------------------------------------------------
44df65d264 | Matthew Granstrom | 2024-10-07 14:40:20 -0400

Remove Gell's Gravitas
from Nicolae's custom books shop
--------------------------------------------------------------------------------
443864507a | gammafunk | 2024-10-04 18:20:37 -0500

A clua monster method for finding its summoner
The crawl UI highlights a monster's summoner in LOS examination mode,
but there was previously no way to determine a monster's summoner from
clua. This commit adds a summoner_pos() method to the monster info table
that returns a pair of LOS coordinates of the monster's summoner. It
returns nil if the monster's isn't summoned or it the monster or its
summoner are not in LOS. I've copied the summoning monster's mid into
the monster_info class and updated the examination mode UI to use this
information. This way we have a centralized check for whether the
summoner is valid to reveal, at least regardless of LOS concerns.

--------------------------------------------------------------------------------
933e26f2f7 | David Lawrence Ramsey | 2024-10-04 12:21:45 -0500

Fix typo.

--------------------------------------------------------------------------------
dcf9493a85 | DracoOmega | 2024-10-04 14:30:22 -0230

Better-document some methods (Ge0FF)

--------------------------------------------------------------------------------
74cecdf8d6 | DracoOmega | 2024-10-04 14:28:36 -0230

Fix Pan lords improperly using A/An when coming into view with others
ie: "A Plog and a hellwing come into view."

(This lead more than a couple players to think they were a weirdly-named
ordinary monster and not a pseudo-unique.)

--------------------------------------------------------------------------------
4be0ea19d6 | DracoOmega | 2024-10-04 13:37:04 -0230

Adjust kill crediting for exploding monsters in general
The more I look at crediting in _setup_base_explosion, the more I feel like
it doesn't make sense. So now, non-abjurable monsters created by the player
always credit the player directly (ie: prisms, ball lightning) and other
friendly monsters will credit ANON_FRIENDLY_MONSTER to ensure you get
proper XP for them.

--------------------------------------------------------------------------------
e630d8722b | DracoOmega | 2024-10-04 13:37:04 -0230

Fix fulminant prisms having incorrect summon data (aliasthespectator)
They were appearing as abjurable, which not only made their death messages
weird ("the fulminant prism residue disappears in a puff of smoke!") but
possibly affected the fact that you weren't credited for their kills
anymore.

--------------------------------------------------------------------------------
6d1de5a75f | regret-index | 2024-10-04 00:32:06 -0230

Tweak confusion's interaction with tension
Confusion is easily cured with potions of curing later in the game, so
staying in confusion being a high multiplier of tension is sort of weird
in so far as one would only do such if they weren't any concerned with
the encounter. (However, it's still plenty lethal very early on, when
one doesn't know about potions of curing yet.) Contrariwise, confusion
is substantially worse than many other statuses if one can't actually
cure it any time soon due to not being able to drink potions (whether
in Cocytus, while possessing -Potion status, or being a mummy / lich).

As such, this takes the current x2 tension multiplier for confusion,
sets it slightly higher by default, and drops that slowly down versus
one's current XL, unless one can't drink to cure it which case it
becomes a flat x2.5 multiplier. (This is a little silly for Elyvilon, but
there's a piety cost involved for the extremely little non-Xom non-wrath
uses of tension that could even come up versus -Potion.) Hopefully this
should help out Mummy Chaos Knights a little bit more and get tension the
littlest bit closer to being a more usable function.

--------------------------------------------------------------------------------
f9cddea6ec | regret-index | 2024-10-03 23:48:00 -0230

Teach searing wretches to swim across lava
Gehenna is in a weird place versus Cocytus, where over half of its threats
can't move across lava the way Cocytus's can move across deep water. While
this does provide a useful contrast point for the differing varieties of
ranged monsters in Gehenna (and tyrants also work very differently than
wellsprings), it means the main unique layouts of the Hell work out
awkwardly in terms of several threats figuring out how to walk towards the
player.

As a point of comparison, the other fiery undead in the branch (stokers)
actually _swims_ across lava, which feels like precedent enough to let
searing wretches do the same. Melee-only threats being impeded by their
own branches terrain feels very awkward, there's no vaults in Gehenna
that seem to rely on them being unable to move across lava, and there's
not a lot of lava for them to otherwise swim in as part of Margery's
band, so this should be a reasonable safe change.

--------------------------------------------------------------------------------
fb316f7f2e | regret-index | 2024-10-03 23:42:46 -0230

Name removed spells when failing to learn or cast them
It can be quite annoying to type in wizmode e.g. just "Conjure" for Ball
Lightning and not be explicitly told it first found Conjure Flame, or
that "Summon S" fills in the rest as Swarm and not Small Mammals, so
we might as well list what exactly it tried to find instead.

--------------------------------------------------------------------------------
40db0d2193 | regret-index | 2024-10-03 23:18:16 -0230

Fiddle with Hells stair -> fountain replacements
Getting what are now established as normal drinking water fountains in the
hellish realms of endless lava and endless decay looks a bit silly, so
their non-blood fountains have been replaced with dry fountains. (In the
hell filled with water it's fine, and in the hell meant to be a city it's
one of the closest way its boxes are actually any life-like.)

--------------------------------------------------------------------------------
3a15ca111d | regret-index | 2024-10-03 23:18:16 -0230

New creeping inferno tile (pianoman523)
As with the apis change in b8f47f2 and retiling in b29aa79, this
submission was delayed until the mechanics for the monster were reworked,
to hopefully help tiles players associate a new appearance with a
drastically different behaviour. This combines and edits multiple
submissions by the same artist; it still looks a bit silly, but vastly
less janky than the previous creeping inferno's lurking horror recolour
tile.

--------------------------------------------------------------------------------
b7d3b0a02a | regret-index | 2024-10-03 23:18:16 -0230

Revise creeping infernos and tweak stokers
Creeping infernos are very strangely troubled monsters for Gehenna.

 * Frail explosive enemies in extended are extremely unlikely to actually
   detonate on the player in general, as anything from wands to level 2
   spells to boomerangs and stones could easily kill them before they
   approach.

 * The lurking horror behaviour where they hesitate to move the further
   away they are combines very strangely with their limited explosion
   range and frailty- while lurking horrors are a usefully-scaling
   screen-wide torment burst, creeping infernos can take over a dozen
   turns from being a screen-distance away (thus giving players lots and
   lots of time to throw a stone), and can take twice as long if a player
   actually tries to run away at all.

 * Even when they actually succeed at hitting the player, their 8d7
   partially-resistable damage is only slightly stronger than a balrug's
   3d23 fireball with one pip of rF, and weaker than balrug smiting or
   hellion damnation at two pips of rF, which is very sad for something
   that could have very easily failed to hit the player.

(I'm not going to even start on how stokers have little chance to succeed
in rarely summoning bombs that are slow to actually have walk up. Maybe
these designs made more sense when stokers had maintain_range? They're
extremely unlikely to get it back, but this should help them too- for
now, they're moving from a tiny 5% to a passable 10% chance to actually
summon their defining threat.)

This commit reworks creeping infernos entirely to instead just act like
bloated husks do for Swamp- they have an average of 111 HP, move normally
at normal speed, and still explode on death or on touching the player (for
8d10 rather than 8d7 previously!) if they reach melee range. This
reasonably increases their functionality while still preserving their
namesake impending threat- now instead of collapsing from individual
stones, they require rather deliberate firefighting as their new bulk
inevitably creeps towards the player. To help make this not trivially
ignorable, they also go from Will 10 to Will 60- by the time one's in
the Hells, non-spellcasters can afford some Evocations investment.

It will take a fairly long bit of testing to see how this works out-
extended feedback takes quite a while to come in. Gehenna is unlikely to
move that much further from its current easiest Hell position or push that
much higher than the other hells (which _have_ been adjusted recently),
anyway- these still die to anything from summons to conjurations to
Manifold Assault to charming a hell hog to just facetanking their
relatively low single-burst damage anyway.

--------------------------------------------------------------------------------
52868c5510 | DracoOmega | 2024-10-03 22:33:08 -0230

Fix Boris's timeout speech

--------------------------------------------------------------------------------
2442f177b0 | DracoOmega | 2024-10-03 22:33:02 -0230

Fix a handful of monsters not counting as true summons
(Basically anything that called mark_summoned() directly, without ever
having used mgen_data::set_summoned())

This incidentally messed up the poof messages for them as well.

--------------------------------------------------------------------------------
4bb16c9eb9 | DracoOmega | 2024-10-03 22:32:53 -0230

Fix summons not looking like summons during timeout (Colgate, Darby)
monster::is_summoned() was looking for the presence of a summon timer to
determine whether a monster was summoned, but this timer doesn't actually
exist while they're in the process timing out. As a result of this, it was
possible to get XP from hitting hostile summons and then letting them
expire. (If you actually killed them, they would still look like summons
and grant no XP).

While KILL_TIMEOUT probably never needs to give XP, it seems dangerous to
allow summons to look - at any point - like they are not summons. Who knows
what other things, now or in the future, might work improperly this way?

I am *hoping* the new criteria for is_summoned() will properly encompass
everything that should count and nothing which shouldn't, but I won't be
entirely confident until we test it out. Fingers crossed!

--------------------------------------------------------------------------------
bb4998b30b | DracoOmega | 2024-10-03 13:05:12 -0230

Use a different color dot for non-abjurable summons
And describe them as 'minion' when examined, instead of 'summoned'.

(Also fix the Unrewarding icon not rending on webtiles)

--------------------------------------------------------------------------------
df8c4cf9b9 | DracoOmega | 2024-10-03 13:05:12 -0230

Fix Makhleb god description not rending on webtiles
fc8bfd6970fa08 caused the description + cost of Makhleb's capstone ability
to be exactly 80 characters in length, which meant there was no space
between the description and the cost (longer strings get spaces inserted,
but *exatly* 80 characters does not). This caused the regex the webtiles
UI uses to split the string to not work.

This commit changes the regex to no longer require a leading space before
the parantheses, since those are only used for costs here anyway.

This fixes #4068

--------------------------------------------------------------------------------
4194ddcd66 | DracoOmega | 2024-10-03 13:05:12 -0230

Fix crash with blastmotes clouds exploding
Accidentally broken by d9015ae29d17d9

--------------------------------------------------------------------------------
550cd92e2e | Nikolai Lavsky | 2024-10-03 18:08:42 +0300

fix: don't transit all banished low HD monsters to the Abyss
After 3fdf3ab24, banished uniques and some high HD monsters were sent
into the Abyss where the player could find them again. But after
25b58072b, all banished monsters get `MF_BANISHED`, so
`needs_abyss_transit()` is true for all of them, regardless of their HD.
As a result, the Abyss could have too many non-abyssal monsters,
especially if the player uses a weapon of distortion.

This commit fixes that by restoring the HD filter.

--------------------------------------------------------------------------------
6c114678ce | DracoOmega | 2024-10-03 03:15:21 -0230

Fix multiple creatures having incorrectly brief durations (Shummie)
When I changed summons to take aut durations instead of abjuration degree,
I overlooked those effects which call mark_summoned() directly (rather than
using mgen_data::set_summoned()). This meant that anything created by
several effects would spawn with a duration of less than 1 turn.

These included phantom mirror (both the item and the monster spell),
phantom blitz, chaos clones, and the flayed ghost from Martyr's Knell.

--------------------------------------------------------------------------------
cd4c005c59 | DracoOmega | 2024-10-03 01:12:48 -0230

Fix players getting no XP for kills by their own ball lightning
I'm not really satisfied with some of how kill attribution works for
exploding monsters *in general*, but I think this should fix the most
significant known issue for now. (Prisms still worked properly, even
without this)

--------------------------------------------------------------------------------
56ef7711ba | regret-index | 2024-10-03 00:34:45 -0230

More nekomata tweaks
 * Don't use the altered nekomata tile for Phantom Blitz unless the
   caster-to-clone is a nekomata, just in case some sprint monster ends
   up using the spell.

 * Tweak the nekomata experience value yet further up. Honestly, we could
   probably do with adjusting threat display for lategame characters with
   some sort of overriding threat flag- hell sentinels no longer being
   listed as lethal at reaching XL 20 is a pretty direct demonstration
   that the whole system is troubled at high experience levels.

 * Remove nekomata from the orb run, as they're overshadowing the random
   Pan lords there and many people aren't examining a new monster to treat
   it with the same respect a random Pan lord would deserve. (I'd rather
   just keep the strongest Pan monsters out of the orb run entirely than
   actually nerf down monsters meant to be highlights of a given extended
   branch. If we continue to move in the direction of Hell-Pan roulette,
   we can just seperate orb run lists from Pan entirely (since Pan
   wouldn't exist in half the games) and it could mix in Hell enemies
   without expecting either branches' strongest and most emblematic
   monsters to appear on the orb run like shard shrikes or doom hounds.)

--------------------------------------------------------------------------------
30d083ede6 | DracoOmega | 2024-10-03 00:23:43 -0230

Don't crash on monsters dying to dead monsters (+fix monster frenzy orb)
The guard which prevented a crash on kills by dead monsters (such as
exploders) was removed by 400f974 at least in part because the comment
above it was misleading enough that I thought it wasn't necessary.

This also fixes a second bug among the same code, where Orbs of Mayhem
wielded by monsters could only trigger if the player currently worshipped
TSO and the monster which died was evil. ...because for some reason, the
mayhem check was in the TSO follower blessing codeblock, and appears to
have always been.

--------------------------------------------------------------------------------
eaf764a6c2 | DracoOmega | 2024-10-02 21:43:37 -0230

Don't kill an ancestor every time the player takes the stairs (Shummie)
After the recent refactoring, the simplified ally dismissal code was
killing *all* monsters on the floor the player was leaving that were marked
as having been created by the player. And for some reason, Hep ancestors
considered the player to be their summoned.

I don't *think* there will be any issue with them just not having a
summoner marked at all, and this fixes the present issue. (If some reason
is discovered why this marking is important, I can fix it in some other
way.)

--------------------------------------------------------------------------------
07b0ac27cd | DracoOmega | 2024-10-02 15:38:34 -0230

Fix minor message bug and simplify summon removal upon leaving floors

--------------------------------------------------------------------------------
4639139513 | DracoOmega | 2024-10-02 15:38:34 -0230

Rename monster::is_summoned_by() to ::was_created_by()
Since it includes more things now where monster::is_summoned() will return
false, and it feels very wrong to me if is_summoned_by() is ever true when
is_summoned() is false.

(There's a decent argument that is_summoned() should also be renamed to
is_temporary() or something. I'll consider it.)

--------------------------------------------------------------------------------
53d16b7429 | DracoOmega | 2024-10-02 15:38:34 -0230

Narrow what returns true from monster:is_summoned()
To ensure that unrewarding monsters from god wrath, etc, do not count.
(This also means that friendlies made by Animate Dead / Death Channel will
go back to not counting, but I am fairly sure this doesn't actually affect
anything meaningful.)

--------------------------------------------------------------------------------
d61e3f1930 | DracoOmega | 2024-10-02 15:38:34 -0230

Use a couple documented-but-mostly-unused summon types
Despite being clearly described as existing for this purpose,
MON_SUMM_WRATH wasn't used for god wrath summons and MON_SUMM_ZOT wasn't
used for things made by Zot traps. Fix this (at least partially; it's
possible I overlooked some wrath effect).

(This actually has a mechanical effect now that Lugonu anti-wrath
specifically looks for monsters created by other gods' wrath. But it seems
like good policy regardless.)

--------------------------------------------------------------------------------
e49fde2923 | DracoOmega | 2024-10-02 15:38:34 -0230

Make Bind Soul simulacra (and Kiku wrath derived undead) unrewarding
It wasn't terribly obvious that the simulcra created by Bind Soul were
temporary, since their durations were extremely long, but they were. Which
meant that the player got no XP for them, despite no messages otherwise
indicating they were 'summons'. At that rate, it seems fine if they just
stay around forever, and are explicit about this.

This also fixes a bug where the MF_NO_REWARD flag set by Kiku wrath
reanimations was being overridden just a few lines below where it was set.
This didn't *seem* to result in the player being able to get XP from them
in 0.32, so a different (bug?) must have been preventing this bug from
mattering. At any rate, it should be fixed now.

(The MF_HARD_RESET doesn't really do anything except make the new icon
and description appear properly)

--------------------------------------------------------------------------------
8706489d8f | DracoOmega | 2024-10-02 15:38:33 -0230

Rename 'durably summoned' to 'unrewarding' and tweak a few things
Despite the name, durably summoned monsters didn't act like summons in
very many ways besides 'created by a spell/effect and don't drop items or
xp'. They weren't abjurable, could take stairs, were valid targets for many
things summons were not, never went away when the thing that created them
was destroyed, etc.

At the same time, some monsters which were *effectively* the same as
'durably summoned' were not marked as such, presumably because no pretense
of magic was involved - most notably the spawns of The Royal Jelly.

I think this entire thing would be made clearer by not giving any
suggestion that current 'durably summoned' monsters are similar to
'summoned' and instead hilight the part that *actually* distinguishes them
from any other normal monster: the fact that they don't give any reward.

These monsters now say 'unrewarding' when examined, and the icon used is
slightly different (to distinguish it further from the summon dot). TRJ
spawns also recieve this icon, so it will now be possible to tell them
apart from other jellies at a glance. (This was always possible if you xv'd
them, but that was very time-consuming)

This additionally removes the message "That felt strangely unrewarding" for
monsters explicitly labelled as unrewarding. I mean, what else would one
expect?

Note: this icon is presently displayed both on the same condition as
durable summons were (ie: having both MF_HARD_RESET and MF_NO_REWARD) but
also the old condition used to mention no rewards when xv'd (which just
checked for MF_NO_REWARD and mons_class_gives_xp()). This previous behavior
was always *slightly incorrect*, since MF_NO_REWARD does not prevent item
drops, and while many effects set both flags at once, not all of them do.
In fact, it is important that some don't! (Bound souls should still drop
their equipment, for instance). But despite this, xv will claim that they
cannot drop items.

A review to fix up a few cases where this gives slightly misleading
information would be a good idea, but it rarely actually matters, so I
will do that at some future time.

--------------------------------------------------------------------------------
e1902a1114 | DracoOmega | 2024-10-02 15:38:33 -0230

Use the new summon placement range functions in a few more places
-Tukima's Dance will now prefer to spawn the dancing weapon adjacent to its
 wielder (but can still spawn at range 2 if this isn't possible).
-God wrath summons can now place all the way to the edge of the player's
 LoS, if nearer spots are occupied. (Instead of being trivially foiled by
 a couple nearby monsters in a hallway.)
-Wizmode monster creation no longer refuses to place things beyond 2 tiles
 away from the player, but will also go all the way to the edge of LoS if
 nearby spaces are full.
-Derived undead will prefer to be placed upon the dead creature's own
 space, if possible. (This potentially has more balance effects than these
 other changes, but it feels more theatically sensible if a monster rises
 as a zombie where it fell instead of 'sometimes several spaces away for
 some reason'.)
-Kiku's Unearth wretches can place wretches up to 4 tiles away, if nearer
 spaces are occupied.

--------------------------------------------------------------------------------
5f4ad15b96 | DracoOmega | 2024-10-02 15:38:33 -0230

Add new members to mgen_data to control placement radius
Prior to this commit, monsters created via create_monster() were either
created at a specified position (if the MG_FORCE_POS flag was set) or at a
random habitable spot within 2 tiles of a specified position (if it was
not). If a spell wanted to choose a random spot at any other distance, even
just '1', they needed to write their own code to do so - and there were
many examples already in the codebase of performing a very similar sort of
random iteration manually.

This commit aims to make that much easier to do, with less boilerplate, by
adding 3 new members to mgen_data: range_preferred, range_max, and
range_min.

ranged_preferred sets the range from the center point where the monster can
be randomly placed (ie: the current behavior functions as if this was
always '2')

range_max allows placement to exceed this range if, and only if, all tiles
within that range are invalid. This allows an easy fallback in cases where
we'd rather place something close, but will accept placing it far away
rather than not place it at all.

range_min specifies the minimum distance that the placement *must* be
further than - to allow forcing something to be placed non-adjacent to a
given location, for instance.

All of these can be conveniently set via mgen_data::set_range()

This commit also adds the MG_SEE_SUMMONER flag, which requires that the
chosen spot also be within line-of-sight of its summoner. (Most summon
spells do not require this, as they are centered around the summoner in the
first place, and line-of-sight to the center point is *always* required,
but some create summons at a random location around a target instead, where
this is useful.)

This commit also refactors multiple existing spells to benefit from this
new capacity - sometimes shortening them a great deal in the process.

There should be just a couple minor functional changes from this.
 -Dragon's Call can no longer create dragons outside of the player's LoS,
  if it chooses a target on the edge of the player's LoS
 -Haunt likewise will no longer place ghosts out of sight, when aimed at a
  distant enemy. This was awkward, since it was possible for it to appear
  as though the spell did nothing (and in practice, it might *actually* do
  nothing, since the ghosts can't attack from there anyway). I expect this
  is a small buff in practice, but I think it's just good policy.
 -Scroll of Butterflies uses trivially different placement logic for its
  more distant butterflies (but note that the edited comment was always
  inaccurate, due to a lack of the MG_FORCE_PLACE flag. It chose a random
  spot within 2 tiles of another random spot that was within 3 tiles,
  irrespective of whether the first chosen spot was empty, and thus always
  effectively picked a spot with 5 tiles. Since ?butterflies current
  behavior seems good to me, I've not elected to change the code to fit the
  comment, but rather the comment to fit the code.)

--------------------------------------------------------------------------------
1689aa8ef3 | DracoOmega | 2024-10-02 15:38:33 -0230

Slightly change find_habitable_spot_near and document
This adds the ability to set an 'exclude_radius' to the search, which will
ignore all spaces within that radius of the center point. This expands and
replaces the old 'allow_center' argument (since an exclude_radius of -1 is
equivalent to false, and 0 to true). It also generalizes the
'in_player_sight' argument to work for any actor, by passing a pointer to
that actor. Both of these will be used by a subsequent commit.

(I kind of dislike how radius and exclude_radius arguments aren't next to
each other, but since the latter rarely needs to be specified, I opted to
put it afterward so that it can be optional.)

The default behavior for this method is now equivalent to if allow_center
was true. Many uses of this method specified false, but I have not
preserved this behavior since in almost all cases it did nothing - the
center point in many searches is already occupied and thus will already be
ignored. The time savings of skipping a single cell check is irrelevant
compared to a simpler method call, imo.

--------------------------------------------------------------------------------
f263a04dbc | DracoOmega | 2024-10-02 15:38:33 -0230

Simplify monster_habitable_grid and refactor
monster_habitable_grid allowed specifying a 'wanted feature', which
could cause the function to return false even if the primary feature being
queried was otherwise habitable. While technically more flexible than this,
the only uses of this in the codebase were to prevent amphibious/flying
monsters in Shoals (and Crypt zombies) from spawning in deep water, where
the player might not even encounter them.

I think the entire notion of a 'wanted feature' was unnecessarily
confusing for this purpose, so I have replaced
mgen_data.preferred_grid_feature with a simple flag, MG_PREFER_LAND, which
accomplishes the same behavior as if preferred_grid_feature had been set
to DNGN_FLOOR before this commit. I have also removed the wanted_grid
argument from monster_habitable_grid altogether.)

At the same time, since monster_habitable_grid actually took a *feature*
as its argument, rather than a position, I renamed it
monster_habitable_feat instead (similar to the naming convention of other
existing functions), and wrote a simple monster_habitable_grid which takes
a coord_def as an argument instead, slightly shortening a very common way
that monster_habitable_grid was already used.

There should be no functional change from this commit.

--------------------------------------------------------------------------------
654a16ed5e | DracoOmega | 2024-10-02 15:38:33 -0230

Remove one-off code to handle Marionetting Hellfire Mortar
With the new summon refactoring, this special case should no longer be
necessary.

--------------------------------------------------------------------------------
e900964f09 | DracoOmega | 2024-10-02 15:38:33 -0230

Allow sculpt simulacrum to use normal summon cap behavior
Now that it should work properly for it.

--------------------------------------------------------------------------------
9c9fe8b57b | DracoOmega | 2024-10-02 15:38:33 -0230

Add a message channel for monster timeout / summon poof messages
So that they can be consistently darkgrey.

The most common of these were already colored that way by string-matching
in default options, but many others were overlooked (eg: firewood withering
away wasn't marked boring.). Rather than keep adding more strings to
default options, set their interest level at the source (which is easier
now due to recent refactoring!)

(For the moment, I elected to keep Kiku wretches dying in default colors,
unlike other timeouts. Maybe other people will think this is needless, but
it's trivial to change now.)

--------------------------------------------------------------------------------
27754e092d | DracoOmega | 2024-10-02 15:38:33 -0230

Remove one-off handling of Awaken Vines
Awaken Vines' implementation used multiple single-use props, an
enchantment, and a custom removal function to manage what was *effectively*
just a normal summon cap and summon/summoner relationship. Especially with
the recent refactoring of summon handling to include non-abjurable
creations, this is entirely unnecessary, so let's cut it all.

(One bit of hard-to-even notice behavior that is not preserved by this
restructuring is that snaplasher vines would instanty die if the dryad
which created them ever lost LoS to them. This may have made some sense
when dryads were normal enemies, but that hasn't been the case in over a
decade.)

--------------------------------------------------------------------------------
5f5c15f4b7 | DracoOmega | 2024-10-02 15:38:33 -0230

More assorted tidying of monster_die
-Use a macro to more cleanly check for all 'reset-style' killer_types in
 some places.
-Move some cleanup-related code into monster_cleanup()
-Tweak what monster death effects are blocked by exploding (will no longer
 allow Gozag worshippers to make a dancing weapon actually fall to the
 ground by using Firestarter)
-Rename a confusingly-named and rarely used argument.
-Use the new 'real_death' boolean to shorten a common grouping of death
 checks in many on-kill effects.
-Add a small number of clarifying comments.

This isn't comprehensive. There's quite a few things which *probably*
should be in monster_cleanup() and aren't (which could matter in the
multiple situations where monster_cleanup() is called without
monster_die()). I also wanted to wrap a number of monster-specific death
effects into a function similar to _player_on_kill_effects() but there's
good reason for some of them to happen *before* death messaging and for
some of them to happen *afterward* (and while almost none of them trigger
for non-real_deaths, a couple need to).

But this still fixes several small bugs (and hopefully doesn't introduce as
many new ones!) while being slightly tidier.

--------------------------------------------------------------------------------
400f9744fa | DracoOmega | 2024-10-02 15:38:33 -0230

Pull a variety of player on-kill benefits into a new function
Various benefits that were triggered upon the player or their allies
killing monsters (such as heal-on-kills, berserk extension, or Fugue of the
Fallen) were scattered all over monster_die() - some of them before the
death message for the monster would even be printed!

For clarity's sake, I have pulled all of these that do not concern
corpse-based necromancy into a new function: _player_on_kill_effects. The
hope is that this improves clarity somewhat by centralizing such things
together and giving them a designated 'place'. I've also removed a few
logical checks that seemed unnecessary.

There should be almost no deliberate functional change (besides some
messages being re-ordered).

--------------------------------------------------------------------------------
d9015ae29d | DracoOmega | 2024-10-02 15:38:33 -0230

Fix inner flame explosion message order for summons
This was incorrect, even before the recent refactoring. If an abjurable
summon exploded from inner flame, the message log would print something
like: "The wolf spider disappears in a puff of smoke. The wolf spider
explodes!". Now it will properly print a summon poof message afterward,
instead (by saving it in the explosion_fineff itself).

--------------------------------------------------------------------------------
9931db76b1 | DracoOmega | 2024-10-02 15:38:32 -0230

Refactor death message handling for summons and death cloud handling
Previously, clouds left upon the death of abjurable summons (but also
chaos spawn death clouds and the flashing balestra death animation) were
handled by _monster_die_cloud while many clouds left by other monsters
upon death (such as fire vorticies or simulacra) were handled elsewhere.

Additionally, _monster_die_cloud was the function responsible for printing
expiry messages for abjurable summons (which led to minor nits like
living spells having a custom expirely message which could never be printed
because they were set to not leave clouds upon death.)

Tidy this up a little. _monster_die_cloud covers more cases of monsters
leaving clouds, _print_summon_poof_message now covers messaging seperately
of leaving clouds, flashing balestra handling is moved to the block of
other dancing weapon special cases.

There are a few minor functional changes. For one, fire vorticies will no
longer vanish without a message, and will leave a fire cloud when they
expire instead of just when they are destroyed (which is a deliberate
change). There may be some other more minor effects (primarily with
messaging).

--------------------------------------------------------------------------------
79d8e41889 | DracoOmega | 2024-10-02 15:38:32 -0230

Remove (hopefully) unused pluralization code from summoned_poof_msg
While summoned_poof_msg was normally used for summoned monsters
disappearing, it could also be called with an item argument, which was used
when monsters opted to drop a summoned item (and that item subsequently
disappeared). The pluralization code was used only in this place, but I do
not believe it is actually possible for living monsters to drop summoned
items in a way the player can see it. (They sometimes do during their
creation, but this is silent, and they specifically can't pick up new gear
which might cause them to swap out their old gear.)

In the interest of simplification, I have removed this code and placed an
assert in monster::drop_item to catch the possibility that some case still
exists where a summoned item can become non-silently dropped.

--------------------------------------------------------------------------------
80a12c77ea | DracoOmega | 2024-10-02 15:38:32 -0230

Remove a deeply misleading comment
To what degree this was ever true, it hasn't been for over a decade.

--------------------------------------------------------------------------------
ecef227842 | DracoOmega | 2024-10-02 15:38:32 -0230

Rename KILL_DISMISSED to KILL_RESET_KEEP_ITEMS and use it less
KILL_DISMISSED was identical to KILL_RESET except that non-summoned items
in the monster's inventory would be dropped, but whether one or the other
was used for a given function call was rather arbitrary (and it wasn't
intuitively clear how little difference there was without looking it up.)

This commit renames the enum value to be more explicit about what it does
and then changes most uses of KILL_DISMISSED to KILL_RESET instead. In the
overwhelming majority of cases this was either used for monsters that can't
drop items in the first place (ie: ioods, foxfires), or used after manually
setting MF_HARD_RESET on a monster (which is just a longer way to do the
same thing KILL_RESET does anyway). A few points in monster_die even
converted KILL_RESET to KILL_DISMISSED for specific enemies, like fire
vorticies for no reason I can determine (they can't have items, either!)

I have kept KILL_RESET_KEEP_ITEMS in the couple cases where preserving the
items is deliberate.

(It's *possible* that converting KILL_RESET to KILL_DISMISSED for dancing
weapons was intended to serve some actual function, but I'm not sure
there's any situation that should KILL_RESET an arbitrary monster and want
any piece of it to remain. If I've overlooked a good reason, that bit can
be changed back again.)

--------------------------------------------------------------------------------
98d3b7e5f7 | DracoOmega | 2024-10-02 15:38:32 -0230

Remove the 'wizard' argument from monster_die()
This was almost entirely redundant with using KILL_RESET / KILL_DISMISSED
with the 'silent' argument true. The only actual difference I could find
(summoned monsters still making clouds for non-wizmode reset kills) is
arguably a bug and will probably be changed later.

--------------------------------------------------------------------------------
fab00f013d | DracoOmega | 2024-10-02 15:38:32 -0230

Use KILL_TIMEOUT for ENCH_SLOWLY_DYING and reorganize death messages
This attempts to make KILL_TIMEOUT the universal killer_type for a monster
dying due to time, as well as centralize the unique death messages for
various sorts of temporary monsters in the same place a little better.

--------------------------------------------------------------------------------
714e8dfca1 | DracoOmega | 2024-10-02 15:38:32 -0230

Fix a minor message issue with Fugue and wretches
Due to a misplaced bracket, all deaths of Kiku wretches would generate a
Fugue stack, even if the spell wasn't active. This didn't actually *do*
anything without the spell being active (and stacks were set to 0 again
whenever you actually cast it), but it would still print the message for
reaching maximum stacks upon the 7th wretch death since the last time the
player cast the spell.

--------------------------------------------------------------------------------
fc3e015edf | DracoOmega | 2024-10-02 15:38:32 -0230

Remove KILL_MISCAST and replace with KILL_NON_ACTOR
This was essentially identical to KILL_NON_ACTOR in effect, and not even
used consistently for miscasts; ones caused by Spellbinder would use either
KILL_YOU or KILL_MON depending on who wielded it and the Wild Magic card
uses KILL_YOU. But mummy death curses (despite not being miscast for many
years) *did* use KILL_MISCAST - at least when they came from actual
mummies. I think this is just confusing and doesn't add anything of value
to the codebase that I can see.

Note: this enum is only for deaths of *monsters* and has nothing to do with
ktypes regarding the player being killed by miscasts.

--------------------------------------------------------------------------------
c0f3b9e138 | DracoOmega | 2024-10-02 15:38:32 -0230

Rename KILL_MISC to KILL_NON_ACTOR
This better-communicates the largest use of it (direct damage done by
things which are neither the player nor monsters, such as neutral clouds
or some god actions).

It is still used for a few things that arguably don't fit under this
definition, but some of them will be moved out again shortly.

--------------------------------------------------------------------------------
2912c12445 | DracoOmega | 2024-10-02 15:38:32 -0230

Don't use KILL_MISC for tentacle cleanup deaths
Tentacle segments are killed and recreated constantly in the background,
and to prevent these 'internal' kills from causing infinite recursion (via
killing a segment leading to trying to destroy the whole tentacle leading
to killing a segment, etc.) KILL_MISC kills specifically will not clean up
the rest of the tentacle.

...except KILL_MISC is used for actual sources of damage in the game, which
can kill a tentacle segment in the traditional way. If a tentacle takes
damage this way (eg: from some Xom actions or vault cloud generators, among
other things), it can cause affected sections to disappear in puffs of
smoke or even appear temporarily disconnected.

Since this internal tentacle cleanup is something *very* specific, I've
given it its own killer_type to avoid any possible ambiguities. No other
effect should ever use this.

--------------------------------------------------------------------------------
2d1a5b4622 | DracoOmega | 2024-10-02 15:38:32 -0230

Add M_UNSTABLE flag to handle removing some monsters on level change
Several monsters do not play well with how 'catchup' turns work in Crawl
upon returning to a previous floor - hellfire mortar fires multiple times
in a row, ball lightning blow up near where they were the last time the
player was there, even if hundreds of turns have passed.

Removing a few of these upon level exit was already handled, but some were
not, and this generalizes all that by adding a monster flag for 'always
remove summoned instances of this monster when the player leaves the level
they're on'.

(Note: this is *not* already handled by the code to remove player summons
upon leaving a level, since this is an issue for hostile ones as well.)

--------------------------------------------------------------------------------
fb19e97205 | DracoOmega | 2024-10-02 15:38:32 -0230

Refactor backend handling of summons / created monsters (Part 1)
Crawl's handling of summoned and not-technically-summoned-but-close
monsters is a complicated and somewhat untidy thing that makes it harder to
generalize behavior between conventional summons and other monsters that
share many of their properties, without considerable special cases and
bespoke code in various places. For instance, monsters created by the
player can use one of *4* different enchantments for their timer, which can
result in those monsters expiring with with 4 different killer_types (but
not even on a 1-to-1 basis with which timer is used!) that results in
sometimes-unclear differences in behavior. It's also needlessly verbose to
ask if a given monster was created by a given spell, easy to forget to
check for all 4 different ways a monster can be temporary here, and many
other issues that have resulted in various bugs over time (several of which
were outstanding at the time of this commit.)

This is an attempt to significantly clean up and better-document this
entire system, as well as make it easier to interact with and fix a number
of bugs in the process.

Major changes:

-ENCH_ABJ, ENCH_FAKE_ABJURATION, and ENCH_SHORT_LIVED are all folded into
 a single timer: ENCH_SUMMON_TIMER. (Save-compat code will convert
 deprecated enchantments into the new standard timer).

-Rather than differentiate summon behavior by which timer is used, two
 monster flags are added (MF_ACTUAL_SUMMON and MF_PERSISTS) to cover the
 most clear and actually-meaningful differences that already existed.
 -MF_ACTUAL_SUMMON indicates the a monster is abjurable, will produce a
  poof message (and possibly clouds) when it dies - regardless of whether
  this was by timeout or being directly killed - and will not produce other
  death effects (like simulacrum freezing clouds) when it times out.
 -MF_PERSISTS indicates that a monster should not be removed when its
  creator dies (ie: the current behavior for ball lightning and prisms).
 Both of these flags can be easily set by bool parameters to
 mgen_data::set_summoned() (which has a new method signature). Otherwise,
 all summons follow the same set of behaviors.

-monster::is_summoned() will now return true for any sort of 'temporary'
 created monster, regardless of specifically its type. It no longer uses
 outparams.
-monster::is_summoned_by() allows easier querying of summon type (and
 summoner, if desired).

-Summon durations specified in mgen_data now use auts instead of
 'abjuration degree'. The latter was coarse-grained in a way that made it
 problematic to work with for effects that wanted to scale duration with
 power (sometimes resulting in durations that could vary randomly between
 8-200+ turns!), but also: durations for things like ball lightning were
 too short to fit in even the smallest degree, so this change was strictly
 necessary
 -summ_dur(degree) provides a short-hand to emulate the old duration
  behavior, where desired. There are places this ought to be changed, but I
  have not yet done a thorough review of them, and summon duration of most
  things should generally remain unchanged by this commit.
 -The duration of things that used a default ENCH_SHORT_LIVED is adjusted
  slightly (instead of 2.4 - 8.4 aut, they use 4-7)

-Planned-but-not-fully-implemented: All deaths due to summon timers
 expiring will use KILL_TIMEOUT rather than the mishmash of things they
 currently do.

(Not only will this refactoring make it easier to add forgecraft creations
with less special-cased code, but ideally the UI will be slightly improved
by showing the summon dot icon on exactly those monsters which will vanish
with their creator and never on those which will not - removing some
ambiguity that players have complained about in past.)

Note: some changes regarding proper tidiness and unification of killer_type
to make all of the above statements work properly, will be done in
subsequent commits.

--------------------------------------------------------------------------------
b498025f53 | DracoOmega | 2024-10-02 15:38:31 -0230

Remove the 'god' argument from most player summoning spells
Despite being in the method signature of many, many spells, this argument
was almost never used, and in the rare situations where it *was* used,
mostly never mattered.

It set the god of the summoned monster to a given value, but monster gods
(especially of player-friendly summons) aren't displayed to the player in
nearly any situation outside of the cast messages of priests (which none of
these spells could even create).

Despite several comments in spl-summoning.cc saying otherwise, this
argument was not the 'god of the caster' and in fact one of the only ways
it could be anything other than GOD_NO_GOD for many spells was when Xom
cast the spell through the player, which would make the resulting monster
worship Xom (not that the player could tell the difference).

Approximately the only functional changes are:
 -If Xom makes the player cast Summon Horrible Things, the player has the
  normal 1-in-5 chance to lose int instead of 0. (This very minor downside
  hasn't been able to be fatal in ages, and double-sided Xom effects are
  something Xom is already full of.)
 -Summons created by player spell cast by Xom will no longer reduce tension
  by an exaggerated amount. Ones created by Xom code directly still will
  (though this may be removed in a future commit)

--------------------------------------------------------------------------------
ce7c55b1ec | regret-index | 2024-10-02 15:27:32 -0230

Vault review, clean-up edition
Worthy of note:

 * A variety of overflow altars now have a low chance to be used in V as
   empty room choices, to further try and help the branch's flavour by
   making given rooms dedicated to given gods. (This also takes from
   Depths decor options, but that branch has extreme counts of potential
   choices to take from). Only a select number of gods show up in this
   capacity; Okawaru, for the metal and gifts; Gozag, for the gold; Zin,
   for the law and metal themes, Sif Muna, as the main magic god with
   material possessions (as nearly all the ironbound enemies are magical),
   plus very rare sightings of Ely and TSO to join Zin.

 * After adjusting for their respective weights, I've buffed the two
   weakest Shoals ends (the original huts and the second-ever caves) and
   nerfed the second-highest after the recently-adjusted holies end
   (storm_palace), to try and normalize end threat a little more. This
   does increase the average Shoals threat overall, but Shoals is doing
   slightly worse than the other three Lair branches currently (and the
   branch really needs a fresh monster infusion, honestly), so it
   should be fine.

 * New lua functions now cover regularly-reused granite statue and metal
   statue redefinitions as 5f48996 set up for decorated floor options,
   which should make diggability and console colours be far more
   consistent between feature uses, trim down a large bunch of repeated
   boilerplate throughout .des files, and also be much easier to explain
   in future documentation- now all a vault has to do to get one of these
   various themed pieces is specifying the right glyph and feature name
   for a given function call.

--------------------------------------------------------------------------------
6f3bd40977 | David Lawrence Ramsey | 2024-09-30 15:07:27 -0500

Fix typo.

--------------------------------------------------------------------------------
1636c52b2f | Nikolai Lavsky | 2024-09-30 18:51:05 +0300

feat: make &H reset more cooldowns and heal more statuses
This commit lets wizmode super healing cure -Recite, -Gavotte, rF-,
and -Word and also fully charge Grave Claw.

--------------------------------------------------------------------------------
81d07ba6e8 | patrick | 2024-09-30 08:55:05 -0400

Fix small typo in vaults_rooms_hard.des
It's been bugging me for a while.

--------------------------------------------------------------------------------
860b457654 | regret-index | 2024-09-30 04:32:30 -0230

New Coglin paper doll tile (pianoman523)
It gets somewhat awkwardly covered up by the default pants characters get,
but it's a reasonable improvement in terms of more obviously being a
mechanical harness than prior.

--------------------------------------------------------------------------------
407acacb1d | Brian Power | 2024-09-29 23:48:13 -0230

Fix #4063: Quad damage (Sprint) is pluralised to "quad damagi" (#4064)
[Closes #4063.
Closes #4064.]

--------------------------------------------------------------------------------
0e6af4a6f9 | RypoFalem | 2024-09-29 23:17:51 -0230

Update quickstart.md (#4057)
Replace a mention of Hill Orc with Mountain Dwarf.

Make the layout section less console-specific.

Mention that heavy armour also hampers launcher attacks.

[Closes #4057.]

--------------------------------------------------------------------------------
fc8bfd6970 | regret-index | 2024-09-29 23:07:41 -0230

Tweak the text of large HP costs on abilities
The previous ambigious cost of "Pain" was used on four different abilities:

 * Kiku's Brand Weapon With Pain: invoking Torment
 * Lugonu's Enter the Abyss: a completely random but non-lethal HP amount
 * Yred's Bind Soul: 1/3rd of HP, returned on soul-binding
 * Makhleb's Brand Self: 2/3rds of HP

Mentioning in abilities that this merely "will hurt you" is quite the
understatement, and was also entirely false for Kiku if the player is
undead or a wisp. "Pain" is also a relatively overloaded term in-game,
with both a weapon brand and a monster spell that both don't hurt nearly as
much.

As such, I've added another ability flag to differentiate Kiku's Torment
cost from the other costs, and more precisely state in the other ability's
cost descriptions that one will lose a large fraction of their HP.
Hopefully, this should prevent people from using Kiku and Makhleb 6* gifts
mid-fight as can be quite dangerous.

--------------------------------------------------------------------------------
0e69982c27 | regret-index | 2024-09-28 23:49:36 -0230

Prevent most (but not all) auras from affecting firewood (Sastreii)
This was less obvious when the main aura being deployed was torpor snails
and thus players only saw them when a wand of charming or a scroll of
summoning got a friendly torpor snail to affect firewood. Now that
polterguardians can make rare V plants repel missiles and apises can
double the vigour of nearby Shoals or Holy Pan plants (yet not prevent them
from withering away entirely), this is conspicuous enough that it's now
disabled for most auras by default.

(The main exception here is for martyred shades, as Fedhas doesn't
complain about summoning ghosts these days and they definitely _should_ be
able to support player or enemy briar patches. For now, unless further
aura effects produce a second exception, said injury bond is the only one
that still affects firewood.)

--------------------------------------------------------------------------------
437a092d51 | regret-index | 2024-09-28 23:41:03 -0230

New tiny tiles (Sastreii)
Scrub nettles and boggarts, to be more specific.

(To offset adding a few more tiles into rltiles/UNUSED for the sake of
future potential placeholders, I've also cut a few more of what was in the
folder.)

--------------------------------------------------------------------------------
5f489960a8 | regret-index | 2024-09-28 23:04:15 -0230

New decorations: flags, flowers, mop buckets, fur brushes
All of these employ the previous commit's "decorative floor" feature. As a
result, they are all mutually exclusive in appearances with each other,
and all thus lack messages or solidity. Still, they should help liven up
the Dungeon with various non-obtrusive themes.

 * "Orcish standards" appear in the more statistically dangerous orc
   bailies, a few of the blander orc vaults outside of their branch, and
   some of the least decorated Orc vaults in the branch, so these vaults
   have more than orcish idols and altars of Beogh.
 * "Infernal standards" mostly appear in Gehenna, so the branch has
   something specific to it (compare 9c46c80.)
 * Regular "mop and bucket" decorations appear in Vaults, with the rare
   occasional other use in D and other humanoid-centric branches like
   Snake. We've got a lot of random generic boxes made by layout
   generators already- given closets and corners might as well be handed
   a small bit of flavour and purpose.
 * "Bloodied mop and bucket" decorations mostly appear in Dis and Makhleb
   vaults (compare to pillars of rime and infernal standards).
 * "Garden patches" and "floral vases" appear in various housing and
   garden locations (extending some of 5c82c18 while also giving them
   descriptions), with the latter also getting a few graveyard uses.
 * "Flower patches" appear in various forests, grassy locales, and around
   a few killer bee vaults.
 * "Mourning vases" and "broken floral vases" appear in ruins, undead
   vaults, memorial graveyards, and so on and so forth.
 * "Fur piles", while very rare, mostly appear in Vaults (where they're
   brushing the various yaktaurs) and other yak vaults.

All of these tiles are by ploomutoo, as was added in 76a730d. I trimmed
out and made various colour-cyclings of the cobblestone garden flowers for
more visual variety in flower patches. To ease further tile additions
using these features and to make the colouration schemas more consistent
for any other uses, these all use a predefined list in dlua/vault.lua-
just use something like ": decorative_floor(_G, 'p', "flower patch")" in
a given vault. (Some other repeated feature renames / recolours /
retiling, like 0.32's various statues, probably should get this same
sort of ease in the future, to trim down on boilerplate and make it easier
to document and teach other would-be users of such in the future.)

Thanks to DracoOmega for helping edit these new decorative feature
descriptions. (I also resorted dat/descript/features.txt a little while
adding these new descriptions, to split apart portals from other vaults.)

--------------------------------------------------------------------------------
1f37800eb1 | regret-index | 2024-09-28 23:04:14 -0230

Placeholder feature: decorative floor
This is a bit of a placeholder hack for a large number of good tile
submissions in 76a730d and potential additional tile additions over time,
that don't want to actually be executed as rapidly-destructible or
diggable statues, solely placed on top of walls, or heavily written up for
character-specific messaging as fountains and food incidentally heavily
rely upon. (There are also no features left that entirely make sense for
them to be renames for, after fountains gained flavour messages in 8966e59
to help justify their whole lot. It would also add an indefinite number of
additional floor tiles to feign these otherwise being properly layered on
top of given branch layouts, and would lose out on writing up any
descriptions for them.)

Without any other relatively reasonable ways to approach such, and with
nearly a dozen different potential tiles workable for these purposes, I am
using a hack of a new feature solely meant to be redefined, which for all
intents and purposes is floor with a different glyph. (As with the
addition of food caches back in 831329d, these are all walkable features
that shouldn't interrupt terrain transformation in any fashion, and which
Xom doesn't interact with.)

Ideally, these cases would instead be handled with a significant rewrite
to the vault code for KFEAT to allow per-instance per-glyph redefinitions
of names and colours and tiles, in much the same way as vault monsters,
scythes, and hammers work. It'd deal with various other issues (like the
current inability to use both dead trees and live trees in the same vault,
or the inability to use more than two types of statues) and smoothen over
a fair bit of this code. Until then, the relatively invisible hack should
be worth the straightforward additional flavour possibilities.

(Note: I am 100% against adding almost anything else in this space, like
DNGN_METAL_STATUE_2 or DNGN_DECORATIVE_FLOOR_2, solely for the sake of
vaults that want to deploy multiples of these at once. Said rewrite should
happen before stretching this hack any further, as the cost of having a
single feature wouldn't be nearly as bad as adding further ones.)

--------------------------------------------------------------------------------
12f2da7b15 | gammafunk | 2024-09-28 15:34:33 -0500

fix: Correct a filename to fix the build
The Makefile expects the splash screen filenames to have a prefix of
"title_". Also clean up some tabs in the Makefile itself.

--------------------------------------------------------------------------------
9ec8a70db8 | Nicholas Feinberg | 2024-09-27 12:17:27 -0700

New Oni Summoner splash (benadryl)

--------------------------------------------------------------------------------
660b845a87 | gammafunk | 2024-09-25 20:41:49 -0500

doc: Update the debian changelog for 0.32.1
(cherry picked from commit f5deb65975461a56ac8751e43d5d0e34f98eae4c)

--------------------------------------------------------------------------------
533394c400 | gammafunk | 2024-09-25 20:41:47 -0500

doc: Update the changelog for 0.32.1
(cherry picked from commit ba77377449e8c9fd173e04de3e1cb4a329792bc7)

--------------------------------------------------------------------------------
c1924735fe | DracoOmega | 2024-09-25 14:03:02 -0230

Fix apises giving monsters permanent max HP every turn (RoGGa)
The apis aura, behind the scenes, was removing and re-adding the doubled
vigor buff each turn. This theoretically would have no effect (dividing
their doubled max HP by 2, then multiplying it by 2 again), but math in
monster::scale_hp intended to prevent monsters from *losing* max HP after
berserking, due to rounding, was causing each monster in the aura to gain
1 base max HP for every turn they were near the apis. This meant that by
the time the player found the apis, monsters nearby might have gained
hundreds of additional max HP!

The solution in this commit is very quick and hacky. A better solution
would involve actually storing the monster's 'original' max HP in some
fashion. But since there are multiple stacking ways to modify this, and
some care would be needed to make sure it did not introduce new bugs, I
have opted for the simplest, quickest solution for the moment, to put a
stop to a bug that will easily kill players.

--------------------------------------------------------------------------------
07630011bb | regret-index | 2024-09-25 01:52:00 -0230

Silence a build warning

--------------------------------------------------------------------------------
70dc07e95b | regret-index | 2024-09-25 01:07:21 -0230

Adjust the repulsion field mutation text (#4053)
As the issue notes, 359da3a forgot to adjust this mutation's description of
repel missiles, which this now fixes.

--------------------------------------------------------------------------------
aa0487cc57 | regret-index | 2024-09-25 01:04:43 -0230

Add a description for Mass Regeneration (#4049)
The addition of the Mass Regeneration monster spell in e97a2a3 forgot to
include a written description for the spell.

Closes #4049.

--------------------------------------------------------------------------------
c7607e5391 | regret-index | 2024-09-24 23:27:22 -0230

Fix elves_outpost_lemuel's lua (#4050)
I screwed up some brackets slightly in 8908559- this should place in each
of its locations now. Tweaked some syntax slightly while I was here.

Closes #4050.

--------------------------------------------------------------------------------
9c46c80674 | regret-index | 2024-09-24 22:25:16 -0230

Reuse pillars of rime as occasional Cocytus decor
Another attempt to try and use what we already have available in game for
another decorative purpose, to make Cocytus feel a little more Hell like
instead of just being an ice zone with demons in it as ice caves already
present.

Compared to the usage of decorative boulders in d9500d9 and their
replacement for piles of debris in 03d5c24, these don't list a movespeed
or have use that itself is more active. (If people _are_ still going to be
paranoid about them doing something, then those same people are probably
still paranoid about granite statues or pillars of salt.) Also: by the
time one's in Cocytus, most characters should also be readily easily able
to break apart or pierce attack past an obstacle with only ~37 average HP
and 15 AC, so I am experimenting a second time with using obstacles that
don't start slowly dying on the slightest touch. It should distinguish it
a little more as an actual new decoration, and they're not really placed
in a branch that has lots of space or running around to encourage
individually destroying them all.

--------------------------------------------------------------------------------
c068db49a3 | regret-index | 2024-09-24 22:25:16 -0230

Don't claim stationary monsters can open doors
As they can't, which is listed confusingly for ice blocks and pillars of
both salt and rime (due to them depicting things frozen or saltified being
able to wield equipment before they collapse entirely) plus Roxanne.

--------------------------------------------------------------------------------
c0dc3ca754 | patrick | 2024-09-24 18:01:15 -0400

Fix up the custom gadgets shop
Now that evokers are basically unrands, it's possible for one gadget
shop to stock a good chunk of the evokers in your game. I've changed
the inventory so it can only ever generate one evoker at once.

--------------------------------------------------------------------------------
4966338b9b | DracoOmega | 2024-09-24 17:09:16 -0230

Don't zap self with Magnavolt if standing in a dust cloud (monkooky)
It didn't even warn the player, even.

--------------------------------------------------------------------------------
4e3108018c | regret-index | 2024-09-24 15:37:54 -0230

Make base jellies amorphous (Ogregutan, rypofalem)
When I was working on cc540e3, I was replacing what were originally checks
for monsters with the jelly genus, and forgot to actually adjust the base
jelly monster itself. Whoops.

(This mostly makes them immune to constriction and nets again.)

--------------------------------------------------------------------------------
b29aa79de7 | regret-index | 2024-09-24 15:37:53 -0230

Two new holy tiles (Sastreii)
Apis and ophan tiles, to be specific. Hopefully people will quickly
associate the newer tiles with their new aura behaviours?

--------------------------------------------------------------------------------
b8f47f2566 | regret-index | 2024-09-24 15:37:53 -0230

Give apises an aura of doubled vigour
Apises are entirely vanilla monsters after they lost their weakness
death curse effects, which is somewhat understandable (no resting off
statuses whenever a monster dies (unless we made a completely different
schema of needing to kill other monsters first, which would still be
extremely weird flavour for an Elyvilon curse)). It is also very awkward,
as holies are already struggling with being homogenous walls of stats
without much to distinguish the each of them. They're thus prime material
for giving a new gimmick.

This passive aura of a status added in the prior commit that doubles
enemy health (for all enemies besides other apises) should help on
multiple fronts. Much like torpor snails, eyes, and various summoners, it
should make them a high priority target, though they get to have solid
melee damage (and slightly reduced HP than their current very high
numbers) to help them stand out a little from those monsters. It also
provides very direct Elyvilon flavour- they're using Divine Vigour on all
of their allies- without the awkward inconsistency and low impact that
more indirect means of healing allies could look like, and it heavily fits
one of the kinds of flavour of what one might expect holy monsters to do
compared to other holiness categories throughout the game.

(This, of course, also comes with significant reworks to the vaults
deploying apises to make them use far less apises- not that there's almost
any of them in the game. This is most notable for heavily tweaking
shoals_end_hellmonk_holy_island, which is also the top end of current
Shoals end weight-adjusted kills; aside from a relatively slight amount of
enemy tweaking, this also comes mostly with making the islands larger
and adding marginally more randomized cover so that the whole level is
far less densely concentrated, letting less of the level wake up and
rush the player at once.)

--------------------------------------------------------------------------------
e876008791 | regret-index | 2024-09-24 15:37:53 -0230

New monster buff: doubled vigour
One troublesome part of making more monster designs for sufficient variety
in several remaining branches is the lack of straightforward buffs
available for monsters to apply to one another. (We _are_ using Battlecry
or Might Other on eight different monsters at this point, as an obvious
example.) It's not the most pressing matter, but additional buffs of
reasonably straightforward and reusable capacities would help.

This new doubled vigour buff extends relatively simply on another common
status effect- berserk, which multiplies both melee damage and hp on
monsters by 150%. This rare buff doesn't affect melee damage, but instead
further increases health by 200% instead. Most uses of hostile healing
beyond Major Healing (on two extended uniques) and innate regeneration
don't really stand out that much, while this should be dramatic enough to
notice. (Since it'll still rescale dealt damage after the status wears off,
it also shouldn't be much more annoying in giving a monster longevity than
berserk itself does). Admittedly, this buff should be used extremely
sparingly as a result, and the current default duration is only as long as
Berserk is.

While this is mostly meant for an Elyvilon-themed monster in an upcoming
commit (thus a name corresponding with the Divine Vigour invocation),
this commit also slips it into the Call of Chaos list (where it can
replace the extremely weak effect of agility to instead give the list
something of high, brief notability besides haste, and thus actually
be a dramatically relevant spell when cast) and onto Xom's hyper-buffing
an ally action (where it can help the earlier xp end of possible provided
allies not immediately die in various situations). Another home may show
up for it in the full scope of time- but for now, it's actually relatively
simple in-code, compared to a lot of other effects, so it shouldn't hurt
any more than Agility somehow still sticking around does.

--------------------------------------------------------------------------------
23b886832e | DracoOmega | 2024-09-24 01:13:56 -0230

Don't claim 'You are here.' about tiles on other floors

--------------------------------------------------------------------------------
5e1e37f56a | DracoOmega | 2024-09-24 01:08:36 -0230

Don't allow performing actions on features on other levels (angelslayer)
Related to the previous bug, it was possible to open/close doors on other
floors, provided you were standing adjacent to the same coordinate on your
present floor. You could also interact with transporters and worship at
altars (and possibly other things?)

--------------------------------------------------------------------------------
e40546fae5 | Aliscans | 2024-09-24 00:44:16 -0230

Don't let the player use off-level items with CMD_DISPLAY_MAP.
_allowed_actions() had allowed commands such as (g)et for items on
another level, so long as they have shared the player's co-ordinates.
You could (say) pick up the orb of Zot from D:1, or "blink" through a
wall using a suitably placed scroll.

It now only allows "(g)o to location" for anything on another level.

--------------------------------------------------------------------------------
d0a131fed7 | regret-index | 2024-09-23 02:21:44 -0230

Fix a teleport closet in nemelex_altar_shiori (Halvarca)
The risks of compressing dense SUBST lines together combined with the
no_tele_into flag, alas.

--------------------------------------------------------------------------------
3386d7afde | regret-index | 2024-09-23 02:21:44 -0230

Let player illusions copy a lot more statuses
The _player_duration_to_mons_enchantment list for player illusions
(whether sourced from Mara, Nemelex, or Xom) is extremely short, unchanged
in 13 years. Unsurprisingly, we've added quite a few statuses over such
a span of time, but next to none of them have been included in this list.
It's got a strangely flavour-based comment explanation above it stating
that "internal" "magical" effects are supposed to be gathered, but not
"external" effects- I'm choosing to forego this entirely, due to such
logic being both 1: non-obvious, 2: weird to single out when illusions
also are ostenibly getting one's collective equipment offenses and
defenses, and 3: extremely out of date with other added "internal" magic
effects.

The old list of copied effects were: invisibility, confusion, paralysis,
slow, haste, might, berserk, and poison. The new list adds on: barbs,
blind, brilliance, corrosion, dimensional anchor, fire vulnerability,
frozen, lowered or heightened will, -move, petrifying, poison
vulnerability, resistance, sap magic, sign of ruin, swiftness, toxic
radiance, vitrification, and weak.

This should make friendly illusions a little weaker (which is fine,
since Nemelex is quite strong) but with a few key upside uses (in
preserving some notable effects like brilliance and swiftness). It
should also make hostile effects a bit scarier (unless one is already
heavily debuffed, which covers for itself anyway), which is good due to
Mara underperforming these days and Xom always being in need of more
noticeably variation in threat.

--------------------------------------------------------------------------------
ea5bc3604b | David Lawrence Ramsey | 2024-09-22 08:51:36 -0500

Fix typo.

--------------------------------------------------------------------------------
b0d9199257 | regret-index | 2024-09-22 04:18:47 -0230

More tweaks to more recent monsters
 * Experience value increases are being handed out to thermic dynamos
   (which are taking up quite a high proportion of kills versus appearance
   numbers), undying armouries (who are successfully providing very
   dangerous support roles while being reasonably sturdy themselves), and
   nekomata (who are successfully completely terrifying if not properly
   respected, can squash most other tier-1 demons, and are currently
   tearing apart Pan visitors). Since the winrate went slightly down in
   the last tournament, this should be fine in terms of slightly
   increasing overall amounts of experience in the game, and it should
   also help the monster threat assessment displays.

 * Sin beasts continue to underperform in Pan- unsurprising, considering
   their relatively low damage as melee threats that late. Rather than
   buff Geryon much further, sin beasts spawning rather than being
   summoned now appear in duos- trampling non-draconic monsters tend to
   spawn in bands as is, and their support capacities of antimagic and
   repositioning for other monsters will work better when they get
   another body to work with.

 * To help make finding the original nekomata easier to parse, their
   summons now get a differently-recoloured tile to help mark them
   seperately from the original beyond the small purple summoned status
   dot. (I'm divided on doing what AF_SWARM does and sending the
   summons to be owned by original caster, as this will make them summon
   copies much faster due to individual ones not having their own
   effective summon cap- I want more data before revising such an
   implementation.)

--------------------------------------------------------------------------------
8e166ad1d2 | regret-index | 2024-09-22 03:58:17 -0230

New tileset for granite statues in Depths, Zot
The long granite statue tile list has a number of upsides and downsides.
It provides reasonably easy flavour for given vaults of civilisation or
ruin, it highlights the highly cosmopolitan population of the Dungeon and
its branches, and they always immediately serve as a conspicuous
highlighting point to indicate the presence of a vault. However, they also
have major issues- with 29 different statue tiles depicting completely
different matters used in excess amounts throughout every single branch
regardless of that branch's flavour, they immediately all blend into the
mental background. A given arbitrary hall in D, Lair, Snake, Swamp, Elf,
and Zot all share depictions of angels, demons, warriors, and snails,
which actually homogenizes those branches with the very means a vault is
meant to stand out with. While an extensive list of highly-specific
stand-out decorations have been deployed throughout 0.32 and 0.33 to try
and provide more specific flavour, they can't be deployed absolutely
everywhere without losing their own distinctive flavour, and already in
their sparser uses lead to concern and confusion about whether or not
they actually do anything.

As an attempt to deal with such issues, I'm starting what may be an
extremely long-term project, to deploy overlapping but mostly completely
different tilesets for granite statues in different branches corresponding
to their contents and flavour both. As I have plenty of artistic
limitations, the bulk of what I'm deploying here is admittedly recolours
using current tiles, unused tiles, and replaced tiles. Still, I am adamant
that this overall effort is worthwhile for making a statue actually have
any deliberate purpose rather than being effectively random noise in over
75% of their hundreds of uses.

This commit starts off with Depths and Zot, branches that already heavily
want to stand out as dramatic for being the end of a regular three-rune
game. These statue sets include focusing down on demons, not-yet-walking
tomes, liches, spriggans, and varying depictions of orb guardians over
the ages. Hopefully they'll succeed at making Depths and Zot feel more
coherent in their specific flavour, and the palette + statue tiles they'll
share amongst themselves but not other branches will hopefully help
connect the two branches yet further.

"New" tile sources:
 * Tomes statue - Ploomutoo's decorative books.
 * Spriggan, vampiric fang statues -
   Coolio's spriggan berserker and mimic tiles.
 * Asmodeus, devil statues -
   roctavian's non-tall Asmodeus and blue devil.
 * Lich, seraph, serpent and old orb guardian statues -
   Denzi's old 32x32 and 64x64 tiles.

--------------------------------------------------------------------------------
9b1a4445c4 | regret-index | 2024-09-22 03:58:17 -0230

New tengu tiles (Sastreii)
Wonderfully sharp tilework as is usual.

(I quickly threw together a new Shadowslip base tengu tile, since it was
missing from the submission and those are relatively simple tiles to make.
Maybe something else besides the tengu conjurer can get a goofy wizard hat
that doesn't blend in so much with the tile in the future?)

--------------------------------------------------------------------------------
f64d002df9 | regret-index | 2024-09-22 03:58:17 -0230

New decorations: weird machinery
Both of these new, very rare, and harmless statue-variants are using
pieces from the large tile submission by ploomutoo in 76a730d. Since
they're much more advanced technology than is usual for the rest of the
Dungeon, they're currently solely meant to be used in Wizlabs (where they
can join conduits in being weird magicwork equipment) and Zot (where
electric golems have been running around for decades, which has other
sci-fi references in it, and which has always wanted to seem more notably
different from the rest of the Dungeon).

The enigmatic dynamoes are flavoured around knowing as little as possible
about the machine, while the nascence circuits are flavoured around
inexplicably knowing its exact purpose in making constructs. The duality
of this should be cute enough to justify such an isolated shift in
technological purpose (and neither actually implies that much more fancy
capabilities than what iron and electric golems already imply). Both
are only deployed in already relatively weird vaults or wizlabs that
already focus on construct and mystery themes.

(There have been some disagreements between devs about how much these
tiles and other vault statues should be deployed, so for now, they're
only in a handful of vaults each. Several other decorative statues and
petrified trees are in less, so this is fine for now. In the future,
there should probably be more overall decoration options, which will
also help figure out what exact tones and contents each branch wants.)

--------------------------------------------------------------------------------
89085595bf | regret-index | 2024-09-22 03:58:16 -0230

Ever-recurring vault review
Of note:

 * grunt_temple_overflow_holy_war uses rock walls for wall_catacombs, so
   it matches the use of that rock in serial_column_ruins.

 * st's old swamp vaults now have several still-relatively-old Swamp
   monsters added to them so that they're less monotonously close to the
   Swamp rune vaults (since they lack the sheer number to hold any of the
   same interest said rune vaults also possess).

 * elves_outpost_lemuel and sword_in_stone are now rescaled earlier on, so
   they're not quite so aggressive with pre-Lair threats like e.g. 5.5
   zephyrmancers.

 * Chaos zig floors no longer include greater demons (as proteans provide
   plenty of non-pan-lord variety and other floors emphasize plenty of
   greater demons at this point), while Vestibule zig floors use slightly
   slower amounts of silent spectres (as they become redundant after a
   certain point versus the actual threats of a floor) in exchange for more
   greater demons.

--------------------------------------------------------------------------------
2999c8d83f | patrick | 2024-09-21 23:06:20 -0400

Add a quote for the hand cannon.

--------------------------------------------------------------------------------
d67f649228 | DracoOmega | 2024-09-20 02:43:18 -0230

Don't attack an exponential number of times with cleaving quick blades
(ie: if you have the Cleave status from Xom)

The second attack against each target would initiate an entire new series
of attacks against every adjacent enemy, which grew *wildly* out of hand
with many nearby enemies. If you were sufficiently bad at killing them
(maybe only possible in wizmode), this could even crash the game.

Instead, only determine cleave targets from the first attack.

--------------------------------------------------------------------------------
3f967fc499 | regret-index | 2024-09-19 20:07:49 -0230

Hatch off a spider teleport island (#3611)
I'm not the most worried about people using their last blinking scrolls to
leap onto no_tele_into islands and having absolutely no other ways to get
out, but we might as well be consistent about handling such through
hatches.

--------------------------------------------------------------------------------
6e02436c18 | regret-index | 2024-09-19 20:06:06 -0230

Fix an Abyss crash (Implojin)
ae9bbc2 screwed up Abyss feature conversion (as I had been indecisive as
to whether or not fountains of eyes should be handled in sanitize_feature
or push_features_to_abyss), and should now properly handle weird terrain
again.

--------------------------------------------------------------------------------
b814bfba8c | regret-index | 2024-09-19 19:55:38 -0230

Properly contain a runed door (#4040)
minmay_the_grid_triangle_9x9_subtriangle didn't account for subvault
usages that would connect in the backmost part- I've had to squish in the
vault to make sure it's sealed in. This sometimes means that there's no
actual monsters behind a runed door, but the vault creator has a deep
antipathy against NSUBST and I'd need to review the entire rest of this
file if I was going to make that more consistent anyway.

Closes #4040.

--------------------------------------------------------------------------------
4cb121a70e | regret-index | 2024-09-19 19:48:14 -0230

Make the Robe of Folly actually a dull grey (#3787)
The 16-year-old rltiles tile for the Robe of Folly has never actually
matched its description as "a dull grey robe", a description roughly
equally old. With a new fanciful Robe of Augmentation tile replacing a
previously grey tile, I've quickly tweaked that old Augmentation tile
to be both a dull grey and stained like the old Robe of Folly tile was.

Closes #3787.

--------------------------------------------------------------------------------
af0e7bad45 | regret-index | 2024-09-19 19:31:05 -0230

New default meat cache tile (pianoman523)
Modified to be slightly redder than the original submission- they may
be mostly cured and smoked meats, but they should also parse as meat.

--------------------------------------------------------------------------------
675ddfb807 | regret-index | 2024-09-19 18:48:41 -0230

A wide variety of new tiles (CanOfWorms)
New Tiles for the Robe of Augmentation, Firestarter, the rarely-seen base
forms for shapeshifter monsters and glowing shapeshifters, and living
spells now in newly different shades depending on the spell they'll cast.

There's also a new a great orb of eyes tile that I can't help but see a
face in, and have thus mirrored to face left (as every single monster
besides the one literally-sleepwalking monster does). We'll see how it
feels in practice.

--------------------------------------------------------------------------------
22c7523c43 | regret-index | 2024-09-19 16:49:52 -0230

Fix a mutation text typo (CanOfWorms)

--------------------------------------------------------------------------------
b1f659f69e | Nicholas Feinberg | 2024-09-19 09:08:50 -0700

Convert monster_shout to use a reference
As a demonstration, and also cleanup.

--------------------------------------------------------------------------------
4d60b030d2 | David Lawrence Ramsey | 2024-09-18 23:38:10 -0500

Rename Agonizing Touch to Agonising Touch.

--------------------------------------------------------------------------------
39ec392c86 | David Lawrence Ramsey | 2024-09-18 23:25:29 -0500

Fix typos and spelling.

--------------------------------------------------------------------------------
36d77bed45 | Index | 2024-09-19 01:49:17 -0230

Fix crash in Xom's wave of despair effect (#4037)
If `place_monster_corpse` returns nullptr, the game crashes when trying

to call `turn_corpse_into_skeleton`.



Possible when placing a skeleton on a terrain feature that destroys

items, like lava. (`move_item_to_grid` destroys the would-be corpse

item)



Example crash log:

https://underhound.eu/crawl/morgue/seandewar5/crash-seandewar5-20240902-225318.t
xt
--------------------------------------------------------------------------------
a16d74b5a3 | regret-index | 2024-09-19 01:48:19 -0230

Revive ancient pizza memes (pianoman523)
Add a new cache of meat tile by pianoman523 that clearly is Just A Pizza
with slight extras. Since caches of meat are meant to convey a wider
variety of meal options beyond pizza itself, the odds of seeing it out in
the wild are relatively low compared to the current placeholder sausage +
jerky tile, but it _can_ be specified by a vault, as has now been done for
a few old vaults and with the revival of one old food vault.

--------------------------------------------------------------------------------
cdc6e31f64 | regret-index | 2024-09-19 01:03:32 -0230

Reorganize monspell.txt (completely) and rltiles/UNUSED folder (a little)
 * Removed some tiles in the UNUSED folder otherwise already in use,
   renamed more &s as .small.pngs, and moved some more tiles to proper
   locations.

 * unused/armour/cornuthaum.png is entirely supplanted by
   item/armour/headgear/wizard_hat.png and is thus no longer stored.

 * monspell.txt has been alphabetized heavily, had several removed spells
   or specific-spell monster cast lines cleaned out, and had a number of
   entries placed in their right header sections. Hopefully, having an
   already alphabetized set of lists should make this have far less decay
   and rot set into the entire arrangement over the next years.

--------------------------------------------------------------------------------
a3ff4ff344 | regret-index | 2024-09-18 21:02:02 -0230

New creepy-crawly tiles (Sastreii)
New brain worm and culicivora tiles, to be specific.

--------------------------------------------------------------------------------
37ed16d397 | regret-index | 2024-09-18 19:46:00 -0230

Fix gold_lair_mu's teleport islands (#3612), update it
The bug report issue pointed out some teleport islands, which I've handled
here through hatches since it's not the most compactly threatening vault
by any real margin.

While I'm here, I also fiddled with the header to fit more house style
matters, removed oklob plants entirely as are harmless at Depths depth, and
doubled the golden dragon count (to two) due to golden dragons no longer
being such a rare highlight with the reworking of D:16-27 into Depths.

--------------------------------------------------------------------------------
97551ef1b1 | regret-index | 2024-09-18 05:41:52 -0230

Adjust blizzard demon flavour, messaging, substance (Lici, acrobat)
With blizzard demons having had a formless (and angry) crackling cloud
tile for over a dozen years (e970459), they can reasonably count as
insubstantial. With c2ce1f5 having changed their shape out of a humanoid
state, their Airstrike message has been screwed up (not that it's ever
really clear they ever had conventional arms), so they now have a custom.
arm / hand name string. With a deeply generic elemental description since
their inception in caa05f8 (not a single other demon is even just described
as "greater"), they can do with even the slightest bit of emotion-driven
flavour in their description and cast messages.

--------------------------------------------------------------------------------
4c57dba787 | regret-index | 2024-09-18 00:13:34 -0230

Fix an include error
727ca9e forgot to include coord-def.h in mon-clone.h adding a new default
argument for clone_mons. Weirdly enough, regular compiliation didn't
complain at all about this, probably due to chain includes.

--------------------------------------------------------------------------------
8afca07a99 | regret-index | 2024-09-18 00:05:44 -0230

Fix the build
Forgot to not cast players as monsters in 9f88647.

--------------------------------------------------------------------------------
80eda39fb5 | Lexi Hattaway | 2024-09-17 22:30:39 -0230

Add arrival / ecumenical / ice cave entry vaults (#3984)
[Committer's notes: Most of what I'd do here was sent as feedback to the
PR and eventually handled by the submitter. The only things I'm doing here
are tweaking one of the vaults' header line orders and squashing all of
the commits into one.

Merges #3984.]

--------------------------------------------------------------------------------
5656a03f3f | regret-index | 2024-09-17 22:30:39 -0230

Prevent more species dummy monsters from getting Crypt zombies
Since the player isn't expected to fight plain deep dwarf, tengu,
draconian, or vine stalker monsters in general, making their zombies in
Crypt is deeply silly and weird. The former two at least have the reasoning
that they were previously regular monsters and got removed from such a
position, the plain draconians are weird (holdovers from shapeshifters
turning into them)?, and vine stalker zombies raise general questions of
"just how alive is their host body" that are difficult to answer.

--------------------------------------------------------------------------------
9f88647463 | regret-index | 2024-09-17 22:30:39 -0230

Don't let chaos confuse boulders and bombs (#3654)
Most mons_is_conjured spell components shouldn't be confusable in the first
place, aside from the vortices already being redundantly pseudo-confused-
they all have specific behaviours that don't work when confused or
acknowledge being confused.

Closes #3654.

--------------------------------------------------------------------------------
727ca9edda | regret-index | 2024-09-17 22:30:39 -0230

New Pan demon: nekomata
Pandemonium could always do with some more variety beyond the demons one
sees shared between summoning from the rest of a 3-rune game, the demonic
vaults before Lair branches + entry vaults Depths, and the demons shared
with the Abyss and the Hells. Demonspawn enemies and Pan lords themselves
reasonably help with this, but there's plenty of hypothetical space across
multiple glyphs to fit in more monsters, especially in the danger tier
that demonspawn try to fulfill between tier 2 and tier 1 demons.

This new feline demon of trickery and disdain, a white "R" in console, is
meant to try out a strange conjoining of archetypes- it is a ranged weapon
threat _and_ a summoner, simultaneously. In the former aspect, it always
comes with a branded ranged launcher (of flaming or draining, to reflect
its arson and necromantic mythological capacities), plus Repel Missiles
(as we never used in extended) and a demon blade (of either brand) as a
fallback. In the latter aspect, it has a high chance to cast a new
conjurations spell- "Phantom Blitz", a single-target projectile that deals
damage and summons a copy of itself where the projectile stops. The summon
cap for the spell is only 2, but each of the clones have their own summon
cap for the spell, which should be memorably terrifying if let out of
control.

This thus has the unique, cruel property of being even stronger than
previous monsters that summon-on-hit by instead summoning from a distance
with a conjuration, and works as a new iteration on the illusion mechanics
of other eastern demons used in Crawl already. In its placement, it joins
Pan and ranged Zig floors, gets to appear as a mage in Lom Lobon's floor
and in a few guaranteed demonic rune vaults, plus regular Pan floor
monster set generation / orb run sightings. Very high level Xom
worshippers may also see them rarely- a summoning demon that can get out
of control feels entirely appropriate for Xom.

Their tile is a modification of Sastreii's current rakshasa tile (with
twin tails pulled off of Denzi's felid tiles). The current rakshasa tile
is far too cat-like to be any mythologically accurate- a proper rakshasa
may be somewhat beastial, but is hardly a full anthromorphic design, and
also usually somewhat deformed. (Blame D&D for the tiger associations.)
The previously-unused tile by meckryl still emphasizes ornate accessories
while fitting a more fangsome and asymmetric appearance, and is now used
for the rakshasa earlier in the game instead. The Phantom Blitz spell icon
placeholder simply modifies ontoclasm and roctavian's Searing Ray icon.

--------------------------------------------------------------------------------
2b7a90caab | DracoOmega | 2024-09-17 15:38:32 -0230

Remove a tiny bit of obsolete code
It isn't actually possible to directly create skeletons of active monsters
since the removal of Nectotise.

--------------------------------------------------------------------------------
fe4f17deeb | DracoOmega | 2024-09-17 15:38:32 -0230

Update a comment
Fountains haven't counted as water since b47861556a4dd18e

--------------------------------------------------------------------------------
4012fd3d9b | DracoOmega | 2024-09-17 15:38:32 -0230

Fix a rare crash with Dith shadow shot
If the player made a ranged attack which killed its primary target, and
also triggered a shadow shot while the player shadow was not already out
*and* the player was both invisible and could not see invisible, the game
would crash. If any of these things was not true, it worked properly.

(The issue stemmed from fuzzing for beams near invisible players and how
MID_PLAYER was used as the source of the tracer for determining what other
target the shadow should shoot at, if it wasn't deployed yet. But
MID_PLAYER_SHADOW_DUMMY was added for the specific purpose of simulating
a player shadow that doesn't exist yet, so use it instead here. To be
honest, I'm not sure why it wasn't already.)

--------------------------------------------------------------------------------
8218d4fa48 | Sean Dewar | 2024-09-17 11:55:17 +0100

Fix crash in Xom's wave of despair effect
If place_monster_corpse returns nullptr, the game crashes when trying to call
turn_corpse_into_skeleton.

Possible when placing a skeleton on a terrain feature that destroys items, like
lava. (move_item_to_grid destroys the would-be corpse item)

Example crash log: 
https://underhound.eu/crawl/morgue/seandewar5/crash-seandewar5-20240902-225318.t
xt

--------------------------------------------------------------------------------
fd2f4f1e42 | brandon s allbery kf8nh | 2024-09-16 21:27:03 -0500

don't crash if shadow can't be placed (ChongLi)
If a player is surrounded by monsters to depth 3+, _get_shadow_spots
produces an empty vector and the game crashes trying to dereference
the first entry. Check for an empty vector first.
(https://cbro.berotato.org/morgue/ChongLi/crash-ChongLi-20240908-132253.txt)

--------------------------------------------------------------------------------
df7c40bf2b | NormalPerson7 | 2024-09-16 21:00:13 -0500

Don't auto-hide currently unmemorisable spells when picking up books
Previously, if you worshipped Okawaru (for example), spells which
could not be memorised would be silently added to your library and also
hidden in your library.

Spells that can't be memorised do not appear on the spell library
interface, so this had no actual effect as long as the spell could not
be memorised. But, say, if you then abandoned Okawaru, you would
find all their previously unmemorisable spells hidden in the library
(so that, to unhide and memorise them, you would have to visit the
"Show" screen).

In practice, this meant many players would just assume the spell was
lost forever.

Resolves #3994.

--------------------------------------------------------------------------------
4126433af7 | DracoOmega | 2024-09-16 20:08:03 -0230

Don't boost !magic from Potion Petition by being an oni/Kyrias (Lici)
Technically !ambrosia would also be bugged in this fashion, were it
possible to actually get it via Potion Petition.

--------------------------------------------------------------------------------
ad5dd902bf | DracoOmega | 2024-09-16 20:08:03 -0230

Don't generate coglin gizmos with Rampage for Chei worshippers
In the same spirit that acquirement respects items your god bans, don't
let coglins of Chei invent gizmos with rampage (which therefore rules out
an entire whole item, along with its guaranteed properties).

--------------------------------------------------------------------------------
e7007fb380 | NormalPerson7 | 2024-09-16 20:07:53 -0230

Don't gain experience from killing allied apostles
Previously it was possible to kill your apostles with e.g. scrolls of
poison, not incur wrath, and gain experience from the kill.

I can't really imagine players ever wanting to take advantage of this,
but nonetheless it goes against the spirit of Beogh so let's prevent
apostles from giving experience.

--------------------------------------------------------------------------------
c4b16875ff | NormalPerson7 | 2024-09-16 20:07:34 -0230

Preserve bribe enchantments for reviving bennu
Previously, if a bennu was friendly-bribed in their first life, it
would revive as a permanent friendly ally that could follow the player
everywhere. If it was temporarily neutral-bribed, it would revive
as a permanent neutral monster.

Fix this issue by preserving friendly and neutral bribe enchantments
upon revival.

Sidenote: currently unbribed bennu get a second chance to become bribed
upon revival - is this good behaviour?

Resolves #4026.

--------------------------------------------------------------------------------
45882a55ab | NormalPerson7 | 2024-09-16 13:57:27 -0500

Fix HP/MP not updating when (un)equipping the Charlatan's Orb
Make the Charlatan's Orb explicitly update the player's HP and MP in its
equip/unequip functions.

Also add the Charlatan's Orb as a cause of increased skills on the
skills screen to fix the previous text
"Skills enhanced by  are in green."

--------------------------------------------------------------------------------
55f019ead6 | DracoOmega | 2024-09-16 16:08:21 -0230

Make exploding sheep properly flee from the player (Lici)
The dream sheep spawned by kb_xom_exploding_sheep are generated permanently
afraid, with the presumable intent that they run away from the player,
however they aren't generated being *aware* of the player, which means that
they usually have an internal target of (0, 0) and they try to run away
from that instead of the player (ie: they just move south-east in general,
regardless of where the player is).

If any other monster shouted or the player otherwise got the sheep's
attention somehow, they would start fleeing in the proper direction, but it
could still sometimes be a rude surprise to a low XL player. So let's try
to get them moving in the right direction to start with.

--------------------------------------------------------------------------------
f9f973bd00 | gammafunk | 2024-09-16 09:18:11 -0500

task: Remove the trunk 0.32 tournament reminder
This reverts commit b3de7b944d009aaea3c3fea32e8150c556050f64.

--------------------------------------------------------------------------------
bf3d107625 | regret-index | 2024-09-15 23:41:53 -0230

Scale Zig sets a marginal amount harder
Since the quadratic scaling introduced in 5942d1e seems to have gone on
perfectly fine without much noticing for ziggurats in the last tournament,
we clearly can do with a little bit more harsh scaling for more floors.
Worthy of note:

 * Tar floors become almost entirely tzitzimimeh and silent spectres.
 * Dis floors become almost entirely hell sentinels.
 * Fire floors become almost entirely orbs of fire.
 * Holy floors become almost entirely seraphs.
 * Abyss, as a branch that can technically spawn silent spectres, now
   joins the fun of becoming a floor with explicit silent spectres and
   a swapping out of liches for daevas (who still smite under Silence).

Also, with increasing chances up to a guarantee on the ninth completed
ziggurat, Zot traps replace the floor of many (but not all) ziggurat
pillar vaults after one has completed more than one ziggurat, so that
pillar vaults are more noticeable amongst all the rest of the enemy spam.

I do want to still come up with more unique scaling effects for ziggurats,
later in this version, but they'll most likely wait until after more Pan
and holy work is done.

--------------------------------------------------------------------------------
9310caa5ee | David Lawrence Ramsey | 2024-09-15 20:39:18 -0500

Fix doubled foul flame melee attack damage.
The previous doubling of damage was only supposed to apply to foul flame
weapon attacks.

This partially reverts 90a6e0420698cfe08bc0206b481ef80845585b54.

Closes #4000.

--------------------------------------------------------------------------------
01db4b9143 | regret-index | 2024-09-15 18:42:45 -0230

Make Ephemeral Shield only activate on invocations that cost anything (Ge0FF)
Mostly to prevent instantly renaming one's ancestor from providing free SH
over and over again. "Costs" as the mutation description now mentions
include piety, HP, MP, cards, gold, max HP draining, Exhaustion, -Recite,
and (begrudgingly) sacrifices to Ru. It's a weird list, but for the most
part it should be fine for costing something or another preventing most
invocations spam anyway- the only real cost here is losing Wu Jian
wall-jumps, and Serpent's Lash is already an invocation that can highly
value getting some shields afterwards.

(I'm not greatly worried about this still counting allies recall, as I
mentioned in 9303715. Wasting the turn for 7 SH is unlikely to be of much
value versus either walking away from enemies or swapping behind one's
allies, and the mp cost is not insignificant when the gods with Recall
also have MP-costing abilities of much higher value between Smiting,
Torchlight, and Idealize.)

(There _might_ be some arguing about cards, Exhaustion, and Recite all
counting. We'll see how this feels out over the long time it takes for
non-Xom non-Jiyva characters to even see the mutations.)

--------------------------------------------------------------------------------
433eebaeb2 | regret-index | 2024-09-15 17:32:41 -0230

Let player berserk give immunity to fear (DracoOmega)
Berserk monsters are immune to fear when berserked (as is obvious with
early black bears), but players aren't (and a comment has been wondering
about this discrepancy since c6d2f85). Cause Fear is a relatively rare
effect only used on about four monsters, so it's not too significant a
monster nerf / berserk buff (and those monsters all either meaningfully
summon or debuff from a distance, so there's still some danger), but it
adds a little more consistency in a relatively player-generous fashion.

(Also of high importance: Crawl doesn't show the fear aura that well when
one is also berserk, and it'd be a massive headache to try to make it do
so. Happy dual solutions.)

--------------------------------------------------------------------------------
b1b5fd0351 | regret-index | 2024-09-15 17:32:41 -0230

Marginally nerf ball pythons
After the major constriction rewrite of 9adf0d1, ball python have finally
started to successfully tutorialize on the existence and power of
constriction for D:1. This is good! It means there's a monster with a
gimmick that'll take a fair ways longer to be seen again, that can allow
experimenting with the gimmick much earlier, and which stands out amongst
other D:1 and D:2 enemies in its support + damage role.

However, they're also a noticeably increased threat on D:1, which doesn't
really need the bump upwards- between the two tournaments, they moved from
the 43rd killer to the 13th. A good promotion, but possibly a bit much for
one.

As such, I'm nudging down their non-constriction damage and their EV very
slightly, which should make it easier to kill them when there's other
enemies around, but which should also still let their newly finally
threatening constriction be somewhat noticeable if they're not focused down
on.

--------------------------------------------------------------------------------
c2ce1f5d24 | regret-index | 2024-09-15 17:32:40 -0230

List which monsters can open doors
There are a number of monster tile bodyplans that would seemingly preclude
the ability for a monster to open doors, yet some of those monsters still
can in practice. Sun demons, ugly things, tentacled monstrosities and
starspawn, glowing orange brains, various weirdly-composed golems and
wraiths (including putrid mouths), Gloorx Vloq, Lom Lobon, and orb
guardians make up the most obvious candidates here. It would be a
significant nerf to make many of these unable to use doors (and console
has gone on by knowing e.g. most Xs and all tiered demons can use doors).

Instead, this could be addressed by UI means somewhat directly. This
comes with a variety of different attempts to address this:

 * Every monster that can wield equipment already has the ability to open
   doors. Doors descriptions (outside of runed and sealed doors) further
   emphasize this fact, as well as mentioning some monsters that don't
   use equipment but can open doors.

 * Monsters that could have equipment but haven't found any (crimson imps
   and iron imps being the obvious stand-outs), as well as monsters that
   only have MONUSE_OPEN_DOORS, now mention it amongst the other travel
   lines. To try to make the nonstandard-appearance door users stand out,
   monsters that lack a humanoid shape have a conspicuously different
   properties line than normal.

   * (Ufetubi are now MONS_SHAPE_BIRD (they're closest to penguins),
     sun demons are now MON_SHAPE_ORB (matching foxfires and orbs of
     fire), and blizzard demons and putrid mouths are now MON_SHAPE_MISC
     (matching worldbinders as hands in clouds). This should only affect
     messaging and not anything else.)

 * Jellies, Xtahua, and the Serpent of Hell also explicitly mention they
   can eat or crash through doors, as well.

 * To try to reduce the number of description lines here, don't bother
   listing off if a monster could survive in water or lava if it already
   flies- currently, there's no way to ground enemies without outright
   polymorphing them anyway.

If there are sufficient complaints about excess monster information
displayed here versus other more important bits, then some of this can be
reverted. I'd like to keep the unusual door interactions and avoiding
flying + water travel reductions, regardless.

--------------------------------------------------------------------------------
1d4d42d1c2 | regret-index | 2024-09-15 17:32:40 -0230

Prevent polymorph and shapeshifters from accessing base tengu
Plain base tengu monsters were used for a while as regular monsters in
making classed tengu into regular monsters, but were cut for being far more
plain and weaker than comparative naga or merfolk. As such, they never got
the M_NO_POLY_TO tag other base player-species monsters got, which I'm
fixing up here- if it's not already a branch spawn, the only player species
monster that's allowed to spawn normally (i.e. not as part of vault decor)
are humans.

--------------------------------------------------------------------------------
7901554542 | regret-index | 2024-09-15 17:32:40 -0230

New spell / unrand tiles by Sastreii, some unused tile reorganizing
New great tiles for Permafrost Eruption, Magnavolt, Hellfire Mortar,
Fulsome Fusillade, the hoarfrost cannon and hellfire mortar monsters, and
the unrands Brilliance + the Sword of the Doom Knight.

Most of the previous tiles were moved to the unused folder, and I've now
now moved many old spell tiles from the unused/gui folder to their proper
unused/spells folder while tweaking said tiles.

--------------------------------------------------------------------------------
9a799e10ea | regret-index | 2024-09-15 17:32:40 -0230

New decoration: cache of baked goods
A follow-up to 831329d in terms of providing more options for civilized
and lived-in housing flavour, though with some different angles here.
These try for species' culture flavours rather than cultivars of fruit
or given animal meats, and they're creeping into spriggan / centaur /
klown / V vaults more than caches of meat go towards carnivore species and
caches of fruit go to various old fruiting plants / trees.

As with the other food caches, Xom also can spawn or shuffle them around,
and they use the same food_snacking_frequency option added in 9f76b2e.
This also gets to mean the triumphant return of spriggan bakers.

Their tiles are by ploomutoo, edited slightly from 1a665c4 to have more
outlining as helps with lighter background tiles.

--------------------------------------------------------------------------------
5c82c18273 | regret-index | 2024-09-15 17:32:40 -0230

A quick distribution of some new decorative tiles
 * The yak with flowers on it is now part of the Elyvilon peaceful quokka
   vault at further depths and one of the more grassy bazaars.

 * The bailies with orc warlords now get quick wall tiles dedicated to
   Beogh, using one of the Beogh wall banners.

 * A few vaults meant to be a nice, idyllic home or garden get the gardens
   with cobblestones around them.

 * A few Vaults and Zot vaults sample from the newer fountains. Ideally,
   I'd like to use different fountain tile bases per branch, but this
   would need more than just palette-adjusted drawing efforts for dry +
   eye fountains- probably would be good to ask other artists for such.

TODO: Write up decorlines as was done for food and fountains for different
types of flowers between each branch, add a variant recolour or two (and
use the version without the cobblestone in Lair), then have gardens be a
new kind of walk-on-for-commentary terrain type?

--------------------------------------------------------------------------------
76a730d507 | perci | 2024-09-15 17:32:39 -0230

Added a batch of 44 vault decor sprites (#3992)
"including baked goods caches, flower pots, banners, fountains, and a mop"

[Committer's notes: Pretty great tiles that'll help spruce up a large
number of vaults and portals and branches. Squashed the three commits
together, put the wall tiles into their own folder, made one additional
variation of a flower garden tile going into UNUSED for future plans, and
updated some comments + moved it to the right position in the text file.
Following commits will make use of a number of the more straightforwardly
usable tiles. Not entirely sure how to handle some of the others, but the
overall set can be useful for other devs in the future.

Closes #3992.]

--------------------------------------------------------------------------------
fe9c01f85b | regret-index | 2024-09-15 17:32:39 -0230

Comprehensive updates to pitsprint
This was a bit of an experiment to see how it'd feel to try and make one
of the most flexible sprints (due to its game-wide monster tiering system)
catch up to the modern day, after the decade since any sprints last got
any serious work on them. It took far more than I expected, so I'm not in
much of a rush to update much of the other's.

 * Half of Crawl's development's worth of enemy additions have been
   added to the Sprint's monster tier sets (that are mostly bound solely
   by power, not theme), which should heavily increase enemy variety.

 * Through the complete revising of the monster tier sets and the
   addition of one more monster tier, the power curve of the Sprint is
   more generous early on and more lethal later on- of particular note,
   the Storerooms, the Metal Vault, the path to the Armoury, and the
   Steel Vault have less spiky difficulty than prior, while the iron rune,
   golden rune, and Orb of Zot are all even more heavily guarded than they
   used to be. People like shrikes, right?

 * The Storerooms contain one randbook at the end (so spellcasters
   aren't forced to take a small number of gods to get any spells between
   their starting book and the Elf:3-styled Coven), and several lower-level
   talismans (so Shapeshifters aren't utterly hopeless). Each rune contains
   increasing amounts of scrolls of acquirement underneath them, also, for
   a splash of possibly-actually-worthwhile variety amongst the excess of
   later loot.

 * The labelled chambers between sections are now distinguished from other
   doors within the vaults and pits by being opaque runed doors. This
   should help make them stand out more for the sake of examining them
   to see the difficulty order one can take throughout the Sprint, and
   also help them stand out better in tiles.

 * The Crystal Vault is now the Titanium Vault, since it was never
   actually made of crystal walls in the first place and the Coven
   actually did in fact have Crystal walls surrounding it.

--------------------------------------------------------------------------------
1e7691d964 | regret-index | 2024-09-15 17:32:39 -0230

Add a dozen-plus mythological randart armour names
The myth sources in question are mostly representing relatively
sparsely-acknowledged continents and regions in fantasy- Africa, South East
Asia, and further parts of South America. Maybe some day a game will
directly feature rainbow-furred lightning anteaters or basket-headed
hyenas, but for now, more references are always good to send some slim
number of players off learning more for.

--------------------------------------------------------------------------------
626d331453 | regret-index | 2024-09-15 17:32:39 -0230

Give runed translucent doors actual descriptions (CanofWorms)
The commits adding clear runed doors and making them spawn regularly
throughout the dungeon, 546a308 and b3145dc, both didn't actually give
them descriptions, I'm just combining the regular translucent door and
opaque runed door descriptions here, which should be functional enough.

(On a tangential note: we probably just make regular translucent doors and
translucent rock / stone walls actually made out of glass, rather than
mentioning magic wood for the former and being so wordy for the latter.
Glassblowing is thousands of years old, to the point of being older than
iron smelting, and we already have trees for "things players could expect
to destroy without much effort but instead have to use specified means to
do so". This would probably have to come with making glass eyes not LRD
for an extra large radius, though.)

--------------------------------------------------------------------------------
c186b92f40 | regret-index | 2024-09-15 17:32:38 -0230

New holy monster: Fravashi
Whether or not the full longterm plans of a holy rune and a shortened rest
of extended follow through, there's still some reasonable value in adding
and keeping around other holy monsters. For over a decade, we kept around
a unique encompass vault in Pan that was supposed to test and showcase
holy monsters, only for six out of twelve non-boss monsters to all have
been cut for various strange mechanical experiments. It's hard to say,
however, that Pan should lose the vault- with nine different runes
dedicated to partially or fully demonic realms, there's a lot of obvious
value to having a vastly different theme to varying games up with.
As such, on occasion, more holy monster work will be followed through.

Fravashi are Zoroastrian guardian spirits both for and from heroic mortal
spirits, and here serve as the fourth simple humanoid(ish) 'A'ngel between
angels, daevas, and cherubim. (Aside from fitting the martial angle TSO
innately provides for humanoid holies in this game, they also continue to
attempt to broaden the sources of holy monsters beyond Christianity, if
somewhat ironically through using a faith angled to the opposite of
daevas.)

They lack angel speed or daeva tower shields and smiting spells, but as
both embodiments and guides of moral champions, they represent a
relatively straightforward, inverted component of holy worship in Crawl-
they summon a single living warrior to their cause, which in this case
is a deep elf blademaster or a spriggan defender always granted a holy
short blade or two. Most non-unique summoners in Crawl try to be
dangerous by hiding among multiple summons or plying on much later
enemies than one might fight otherwise, but these should serve a unique
purpose by doing meaningful damage from behind their summons with a
two-handed holy or electrocution polearm. (There's a neat incidental theme
across the weapon-wielding holies that they all have next to no
randomization in their weapons and emphasize different weapons each, which
this continues to invoke.)

Much like pearl dragons in their prior high-damage state and ophans with
their new extremely powerful support status, these are not meant to show
up in almost any 3-rune game aside from the occasional vault already using
angels and daevas out in the open. They thus are only set to appear in
sparse late-game / extended / sprint uses of holies, and do not appear
with TSO's summoning invocation.

Their placeholder tile is a mix of the deep dwarf artificer tile made by
Coolio, the phoenix tile made by Porkchop, and an old dwarven buckler tile
by roctavian. Their Summon Mortal Champion spell icon combines
CanofWorms's Okawaru weapon acquirement, the standard summoning circle,
and a spriggan defender coloured slice of roctavian's deep elf blademaster
tile.

--------------------------------------------------------------------------------
c637f1ba41 | regret-index | 2024-09-15 17:32:38 -0230

Adjust some portal monster population tables
This mostly just affects scrolls of summoning, Kiku's wretches, and the
rare Xom action, when inside these portals, unless somebody ends up using
Shadow Creatures casters in any of them. Still, it's good to keep an eye on
them ever-so-often whenever the portals themselves are changed.

 * Since a couple of Sewers have dart slugs as of e431911, they've been
   added to the list to reduce the chances of the high-roll crocodiles
   and take some weight off the not-very-thematically-appropriate quokka.

 * Ice caves haven't had non-summoned ice beasts in them since cc58b11, so
   their notably high weight in the list is weird. They have given most
   of their weight over to adding in wolves at a low weight, plus
   increasing the odds of the highly appropriate (and readily findable)
   polar bear.

 * Volcanoes only have one layout with toenail golems, so their high
   chance to place is relatively quite weird. Their weight has been
   reduced down slightly with obsidian bats and fire crabs, and given
   over to the iconically-present salamanders and fire elementals.

--------------------------------------------------------------------------------
cc540e3e4a | regret-index | 2024-09-15 17:32:38 -0230

Unite jellies and water elementals under M_AMORPHOUS, tweak other checks
There's been some consternation for a while that water elementals and
elemental wellsprings, as entities composed of liquids, should have the
same immunities that jellies get (constriction, webs, nets as of 4fe0c3d).
There have been a few requests to make them insubstantial (c.f. PR #3032),
but I would prefer to instead unite them with jellies in a new flag that
can reduce the number of jelly genus checks, instead of granting the
water-formed enemies immunity to petrification or implying that a monster
which can entirely engulf a player also has no actual substance.

This commit adds the M_AMORPHOUS flag, shared by both jellies and water
elemental / wellsprings. This gives the latter web, net, constriction
immunity, and Shatter resistance as the former does, and hopefully
should feel a bit more logically consistent while cleaning up a weird
check scattered across the code base. This commit additionally teaches
the monster information bots to display insubstantial and amorphous
flags, as is useful for offhandedly checking net and BVC immunity.

(This commit also removes the barbs immunity from jellies. If they'd be
immune to barbs because they can force the barbs out of themselves, then
the same can be said of all sorts of other physical projectile states,
like Frozen. The committer of dd4bd0d agrees with doing this.)

FIXME: Borgjnor's Vile Clutch always listed the hit chance as 100% for
insubstantial enemies, and continues to display it for amorphous enemies.
It's a very silly targetter since it's always 100% or 0%, but it should
show the latter for those immune to it.

--------------------------------------------------------------------------------
5cebcafe45 | regret-index | 2024-09-15 17:32:38 -0230

Yet more Xom and tension tweaks
 * Xom polymorph now cannot target monsters before XL 4 if they're over
   deep water or lava, as the attempt to prevent them from drowning can easily
   produce D:1 killer bees or ynoxinuls. Xom polymorphing hostile monsters
   up in HD before XL 10 now also comes with a consolation prize
   of a malmutate, to make it slightly less horrendous to handle very early.

 * Bazaars have been randomized some more to mildly weaken them; I had
   originally designed them anticipating it to be far more rare that what
   turns out in practice, and them appearing at all is already plenty of
   a buff to Xom enough they can take some downtweaks.
   * Manuals no longer extra bias to be evocations or shapeshifting,
   * Spellbooks have a fifth potential spell in each school but are now
     capped at two spells available per book,
   * Randart jewellery has a small chance to be randart amulets of both
     regeneration and faith with the same downsides, and no longer shares
     the exact same downside in each bazaar,
   * Xom bazaars contain only two of the three wands and only one of
     berserk potions, ambrosia potions, or silence scrolls,
   * Orbs and scarves have a new joke dud option,
   * and Xom bazaars past the first have been made yet further rarer,
     while somewhat more gold is recquired to access bazaars at all
     (which hopefully should also delay them until after seeing Orc.)
   (The talismans are untouched mostly in anticipation of the future
    version's development hopefully helping with shapeshifter variety
    needing more than it currently does in general. The reduction in
    chance to get a manual of shapeshifting probably reasonably nerfs
    this enough for now.)

 * Xom draining now is halved (draining 3.25% instead of 7.5% of max hp)
   if one is very low level or already any drained unless Xom is bored or
   wrathful, as there's some unfun death spirals to getting heavily
   drained repeatedly and it's a lot less unique than many of the
   other ways Xom can try to kill the player.

 * Since the demonic plant / toadstool ring is meant to be an relatively
   positive action, Xom now checks if there are monsters with smiting
   attacks that aren't at least two squares or closer to the player,
   and needs there to not be too many as long scaled versus one's XL.

 * Sleeping and feared monsters now count for an notably small fraction of
   their experience value for the sake of tension assessment (instead of
   counting as absolutely zero threat). Sleeping monsters in sight are
   unlikely to stay sleeping for long, and feared monsters can turn around
   for all sorts of accidental or terrain-based reasons.

--------------------------------------------------------------------------------
0f4f676546 | regret-index | 2024-09-15 17:32:37 -0230

Further adjust Cheibriados wrath and haste response
Cheibriados wrath uses tension very strangely with a both fine-grained yet
randomized fashion. Since tension is useful only as an extremely loose
assessment and awkward to ever calculate versus given threats, I'm going
to heavily simplify the check, so it will hopefully reduce the need to
keep an close eye on this wrath whenever adjusting tension in the future.

The five different tiers of mixing together effects across Cheibriados's
current wrath have been reworked and combined into three instead.

  * If there's almost any notable tension:
    * current hp >= 75% of your max hp: inflict sleep.
    * Otherwise: remove haste plus inflict slow.
  * Otherwise: drain stats plus make an extremely loud noise.

This is still dynamic in its own straightforward fashion, hopefully:
bringing in more enemies while exploring, threatening the player without
just using direct damage while in combat in a fashion that can
technically be survived, and statdraining the player heavily if they try
to wait it out in a closet. To disincentivize the last of these, stat
drain has been further pushed up in severity.

(Cheibriados wrath has been repeatedly heavily changed, perhaps because
the time theme is one of the loosest in available themes for malevolent
effects- wrath once contained miscasts, other god wraths, random item
curses, and so on and so forth. God wrath doesn't inherently need the most
variety as long as it's actually reasonably threatening in a distinct
fashion, though, as can be seen with Hep and Ash and Ru, so it should be
reasonably fine in this very compressed state.)

Also in this commit: Cheibriados now prevents potions of haste from ever
actually affecting the player, rather than forgiving them only if they
drink it unknown and throwing them into penance otherwise. This is mostly
meant to makes matters more consistent with Chei's prevention of haste
from chaos and berserk, as well as with Okawaru's prevention of using ally
summoning scrolls. In the future, it also helps with probably just making
all penance just involve removing god passive benefits and invocations as
the good gods and Beogh do, as piety loss to a sufficient degree and said
restrictions can be plenty enough downsides, and it'd make god penance
fairly more straightforwardly parseable for all gods.

--------------------------------------------------------------------------------
06665551a2 | regret-index | 2024-09-15 17:32:37 -0230

Adjust and replace some unrand tiles
 * Implement ploomutoo's new replacement for the toga "Victory" floor
   tile, extracted seperately from PR #3992 since the rest of that PR
   is about a different topic entirely. Annotation for future reference:
   it's meant to represent a toga praetexta.

 * Brilliance and Punk now have actual acid brand and foul flame brand
   icons, the former mixing together snw-0's modifications of ontoclasm's
   electrocution and holy wrath brands, the latter mixing the same snw-0
   and ontoclasm sourced exploding missile / immolation scroll icon with
   UltraViolent4's corroded status icon. (Previously, their brand icons
   generated by bleeding over into the old list of missile icons, marking
   foul flame as an electric weapon and acid as an exploding weapon.)

--------------------------------------------------------------------------------
8966e59373 | regret-index | 2024-09-15 17:32:37 -0230

Fountain decor messages + new options to set their frequency
Since the fruit and meat decoration messages have worked out reasonably
well, we clearly could expand this notion to the other already-present
breadth of entirely-decorative features: fountains.

Since there's not nearly as many varieties of water that are of interest
compared to different varieties of fruit and meat, these messages mostly
take on an entirely different tact- they instead differ by one's
worshipped god. The gods already serve quite directly in Crawl as some of
the most prominent personality and flavour throughout the game, and they
can lend some reasonable (and potentially mildly controversial)
characterization to the otherwise featureless, faceless adventurer all
characters serve as. Some of these gods surely have very obvious
influences and focuses on their worshippers, after all- shouldn't a
Makhleb worshipper care in some way about a fountain of blood?

These messages come with yet further experimentation in flavour lines.
Many messages are only provided when there are no hostile enemies in
sight, and the chance differs based on said hostile presence: 10% if
they're present, and 40% if they're not. (Much like as was done in
9f76b2e, this comes with a new option: "fountain_line_frequency".) This
also comes with a brief flavour nod (but hopefully not much chance of
confusion) back to sparkling fountains being differentiated by having
miniscule magical effects. Not all god and fountain combinations come
with unique lines, but there's enough cute little lines written up that
it should be a good start.

Thanks to Darby, staticshock, and nicolae for additional message ideas,
and DracoOmega for both additional messages + proofreading.

--------------------------------------------------------------------------------
ae9bbc25c5 | regret-index | 2024-09-15 17:32:37 -0230

New decorations: fountains of eyes
Fountains have been heavily established for a decade as entirely
decorative features, which is both beneficial (parses immediately as a
sign of civilization or ruin, doesn't have to interrupt the hyperfocus
Crawl has on combat) and detrimental (they usually immediately fade
into the mental background).

Since we've already got melodramatic features like fountains of blood
established for many years, we might as well try out more weird materials
that can be a little more memorable.

Fountains of eyes recontextualize a never-used tile submission for great
orbs by pubby in Mantis Issue 9606. They spawn solely in the Abyss
(replacing fountains besides blood when the Abyss layouts choose levels
one has been through before) and a few vaults elsewhere with explicit
themes based on either flesh, organs, or shapeshifters. They should
probably help Crawl continue to feel memorably weird.

(As to why they're not just vault renames of fountains of blood, a
follow-up commit will actively use the differences between the two on a
lower scale.)

Possibly in the future we may get further unique fountain options?

--------------------------------------------------------------------------------
fe3b5c5baa | regret-index | 2024-09-15 17:32:36 -0230

Partial transitional vault review
A fair number of changes I noted down during feature freeze and the
0.32 tournament, to nerf and tweak a number of vaults.

Worthy of note:

 * beargit_hepliaklqana_dungeon_heroes only uses wands of polymorph
   on D:3-4 and atropa darts on D:5-6 instead of wands of charming, as it's
   far too easy to get completely locked down if one doesn't have much luck
   with potions of curing early on due to monsters zapping wands very
   frequently due to spells (the brigand even has higher chances to confuse
   than Sigmund does). If wands of charming get a different player effect
   later on, then these can be returned.

 * Moved _guarded_unrand_wrath_of_trog to Elf instead of D:13-15. If the
   idea of guarded_unrand vaults is to use out-of-depths one can leave for
   later or reasonably run away from, then being able to autoexplore into
   three spriggan berserkers on D:13 breaks this rule.

 * serial_library no longer generates Sif Muna altars before D:8, in
   correspondence with other early non-Portal altars being heavily
   curtailed.

 * The old Forest end Depths vaults now no longer use any deep elves, to
   further distance itself from Elf and Vaults using deep elves.

 * One of the_grid vaults has been tweaked so it no longer places ancient
   liches on D:14, as we've mostly stopped doing without the use of runed
   doors.

 * Gauntlet monster sets have been repeatedly tweaked over, as they were
   never adjusted after the buffs to glowing orange brains. The highest
   non-Minotaur killers in the portal by a noticeable statistical margin
   have been somewhat nerfed (death scarabs and death drakes), while some
   of the least common killers have slightly more company (arcanists /
   occultists, tyrant leeches, shadowgasts, and chaos spawn).

 * shoals_end_grunt_garden now places slightly more plants and has fancier
   non-default wall and floor tiles, to hopefully make it fairly more
   obvious actual vaults are still being placed on the last Shoals floor.

--------------------------------------------------------------------------------
6ec11c1643 | regret-index | 2024-09-15 17:32:36 -0230

New Xom action: hyperbuff a (low HD) ally
This new effect has multiple different fronts of interest. It tries to
experiment yet further with monster effects not easily available for
players otherwise (e.g. invisible + radiating + mirror-damaging allies),
it tries to have Xom do more obviously interesting things according to
one's build (as summoners and necromancers may notice this more often),
and it also just has the "Xom could do absolutely anything" wild factor
expanding past the current status effect tricks to instead hone down onto
over ten different buffs being thrown around at once.

This very rare good Xom effect looks for rather low HD allied monsters
present, scaling with one's experience levels and extended runes, and
falling back onto creating some relatively mundane allies otherwise.
Once there's at least something to target, Xom then gives it 20-40 turns
of might, haste, invisibility, brilliance, repel missiles, resistance,
regeneration, increased Will, toxic radiance, damage mirror, swiftness,
and a full heal. The chosen ally is still reasonably likely to die, in all
honesty, but what a glorious death it will be!

(While the scaling is quite slow, it will at least usually care for
some zombies and Xom-granted allies both across the length of the game.
It's fairly less likely to happen for those not running around with
allies, though.)

--------------------------------------------------------------------------------
0fe423d510 | regret-index | 2024-09-15 17:32:36 -0230

Various small extended / recently-changed monster adjustments
 * Arcanists have felt relatively weak in their uses relative to old
   wizards or the shoved-downwards occultists, despite the multiple
   spell revisions they've gotten, while occultists continue to be
   quite harmless in Depths. The former has one more HD, and both now
   have a bit more health and evasion, so they can live long enough to
   actually do any of their collective gimmicks.

 * Bennu have a very specific mechanical purpose (punish undead players
   who otherwise don't care about most other Tomb threats with a fast
   holy-branded monster that's difficult to kill) which they're not very
   impressive at executing in practice. To make them stand out more as a
   melee threat in the branch and to actually function as a threat undead
   characters worry over, their three attacks have been consolidated to
   two and the bulk of their damage is in the holy-branded first attack
   (which should then multiply to deal fairly more holy damage).

 * Iron golems now have slightly less health and defenses- while they
   still serve a reasonable role as extremely difficult to break in the
   middle of ambushes across Dis, they can have enough to be relevant
   without also being extremely slow to kite and kill once they're
   inevitably the last enemies alive. Since it's nice that Dis is one of
   the most dangerous places in the game, as compensation crystal echnidas
   are now speed 13 to try and actually be any relevant alongside the next
   change.

 * Crystal guardian crystallizing shot is rare to actually hit in
   practice compared to their prior rebounding fire / cold bolts, both
   dealing fairly less damage and being newly blockable. (While Vitrify
   is quite dangerous, they aren't guaranteed to actually live long
   enough to capitalize on it.) Since they're no longer late D
   out-of-depths, they can afford some direct buffs to try and approach
   their old threat levels. Crystallizing shots now are more accurate,
   more damaging, and more likely to apply Vitrify, while crystal
   guardians themselves hit mildly harder.

--------------------------------------------------------------------------------
a98c639910 | regret-index | 2024-09-15 17:32:36 -0230

New mutation: haste allies when injured
Another mutation meant to be exciting in differing ways for differing
builds yet balanced out by being rather build specific. This two-level
mutation uses the Mark of the Celebrant rules (triggers at 50% health,
comes back only the next time one reaches 100% health) as are reasonably
reliable and straightforward enough to parse for something far less
directly destructive- the spilling of one's time-warped blood instead
hastes the highest HD allies in sight, two per level.

This has obviously extremely strong consequences for summoners and
necromancers, but also having allies in the first place means that whoever
is damaging the player by a fair bit is also ignoring those allies to do
so, which is dangerous enough that it will only somewhat help out the
given situation at hand. The permanent-ally gods obviously reasonably
benefit from it, though Yred gets a lot more than 2 or 4 allies and Hep's
ancestors eventually will haste themselves anyway, while gods with big
ally-summoning invocations like TSO, Nemelex, and Fedhas still see a
little bit of unique interest compared to relatively plainer mutations.

(This mutation is completely suppressed by Chei, in the same way Okawaru
suppresses demonic guardian, of course.)

The extremely placeholder mutation icon combines ontoclasm's Sublimation
of Blood and hasted status icons.

--------------------------------------------------------------------------------
9303715c30 | regret-index | 2024-09-15 17:32:36 -0230

New mutation: spell / invocations shield
Following up on the spirit of the previous commit trying to add positive
mutations dependent per-build for the sake of adding more energy and
excitement to the overall pool, this good mutation is a touch more
complicated but should still be relatively straightforward. Casting spells
gives the bearer +7 SH for a turn, and using invocations gives the bearer
+7 SH for 2-4 turns (with the duration reset for each invocation).

This is meant to parallel several other conditional defenses as we've
built up over the years (acrobat's evasion when moving or standing still,
protection brand and ParryRev's AC when attacking with one's weapons),
while avoiding those established exact means of defense or condition.
(It does share the same number and multiple-turns status of protection
brand, though). It also shouldn't overlap too much with large bone plates
(highly conditional for several builds, with piety and mp limits, yet the
single level gives more than the first two levels of bone plates), and it
no longer collides with TSO's divine shield. As a bonus, invocations aren't
really a space explored with mutations outside of early Forlorn
experiments, and this starts out exploring that space with a relatively
safe mutation.

(While there's some jankiness about using it for Recall abilities, this
still costs MP and also lasts so little time one probably could have just
tried to reposition around allies in most of those circumstances more than
just repeatedly using the ability standing in place. Everything else costs
at least something innately.)

Hopefully this should be reasonably interestingly variable with differing
characters without being too much to keep track of on a regular basis (at
least, not any more than protection and acrobat themselves already need).

The mutation icon uses Ontoclasm's Divine Shield icon with different
magic and invocation colours.

--------------------------------------------------------------------------------
9235b1e983 | regret-index | 2024-09-15 17:32:35 -0230

New mutation: efficient magic
Random mutations have had a rocky history across Crawl, with very uneven
high rolls and low rolls now long past (like changing movement speed in
either direction, much more minor AC and stat changes than currently,
and various troubled experiments with a multitude of different potions
all held back by there being too many minor mutations). The current state
of positive mutations and singular potions of mutation at this point is at
relatively stable if boring equillibrium- the proportions of meaningful
defensive benefits and net positive benefits versus effects that can be
easily ignored are pretty generous in the player's favour, though a
variety bad mutations are far worse (and should be far worse) than even
the best good mutations are any good.

On and off during 0.33, I'd like to try and make this state of affairs
more exciting with relatively simple build-specific mutations to add more
spice to the overall mutation pool. Forcing people to engage with the
mutation system via singular potions of mutation might as well have
more exciting rare high-rolls involved, and Xom in midgame / lategame
shouldn't mostly make characters overloaded with resists. Whether or not
they'll survive the years, I don't know, but as long as they're all
relatively conservative effects, at least some fraction of them should
probably survive and already be restrained by the lack of control on
the overall mutation system.

This mutation at hand... is actually quite simple as new effects go. In
the same vein as Coglin gizmo Spellmotor, it flatly reduces the cost of
spells (but can't go below 1 MP) equal to one's mutation level (which has
2 ranks). Unlike Spellmotor, it doesn't come with free random melee
swings or the potential to go even higher, but in exchange being untied
to melee attack has obvious benefits for a variety of conjurer builds.
Compared to adjusting mp capacity, the flatter effects are excitingly
stronger earlier in the game (spells are lower level and one has less
total mp) than later on (a lot more mp-efficient spells are open and it
discounts proportionally less). Also, it doesn't help out invocations nor
guardian spirit (as shared with wild and placid magic). It _is_ quite
strong with other stacking mp saving effects, but beyond the limited count
of brilliance potions, getting both in most games is decidedly unlikely
anyway. (There might be more complicated ways to better approach this
overall discount space, but it's probably fine to start simple here.)

The mutation icon recolours ontoclasm's Channel Magic icon with Sastreii's
head-slot mutation icons.

--------------------------------------------------------------------------------
a31db6c34e | regret-index | 2024-09-15 17:32:35 -0230

Reflavour, retheme, rename - quicksilver oozes -> void oozes
Expanding the mechanics and flavour of quicksilver beyond just a rare
dragon and its draconian counterpart over the course of versions and
years has gone onwards somewhat awkwardly. Quicksilver oozes were added
in 0.27 (433ef79) and didn't use the exact dispelling effects mechanism
when there was only one other quicksilver monster around, which would have
been fine by itself. It became somewhat awkward, however, when quicksilver
elementals were added in 0.28 (e42411b) and wands of quicksilver were
added in 0.29 (5a96994), making there be a total of three explicitly
quicksilver-themed items and monsters that dispelled plus one monster that
didn't. While there's almost no quicksilver elementals in 3-rune games
without the intervention of Xom these days, which helps avoid confusion
between oozes and elementals, it's still a weird state overall.

As such, after some previous bikeshedding on the topic, they are now named
void oozes, and have a much more explicitly antimagic emphasis in their
description. The new tile, new flavour, and new name all do not, however,
actually change their stats or mechanics. I'm not sure what I make of
their current weird position, where they're notable threats in early
portals and rare vault uses but common fodder throughout their native home
of Slime. It's probably fine for now.

Potentially their new starry name and appearance flavour could also
encourage more abyssal and ruins themes without relying so heavily on
monsters meant to stay in the Abyss, which is also good for keeping
monsters more reasonably bounded per-branch.

Their new description is by DracoOmega, and their new tile is by
pianoman523.

--------------------------------------------------------------------------------
8750c69c83 | regret-index | 2024-09-15 17:32:35 -0230

Make Xom's altar tiles a bit more colourful
In console, Xom's altar cycles through every colour available. In the
altar's description, it mentions it shimmering through every possible
colour. In tiles... the altar has been an iconic greyscale face the
entirety of its existence. I'm not really sure why there has never been
any attempts at colour for it whatsoever.

To make the most prominent chaos god in the game more chaotic, I'm
tweaking the tile as a compromise- the base changes colours with every
different frame, but the face remains grey. These colours, naturally, are
based off of the chaos clouds' colours and mixing between them, though
with mild desaturation. Hopefully it shouldn't be too eyesearing to rest
alongside, any more than other older chromatic tiles like Nemelex's altar
or the bigger frame-per-frame changes like Makhleb / Hepliaklqana / Sif's
altars. If it _is_ and feedback asks something less conspicous, I can try
a second approach of coloured sparkles akin to what Zin and Nemelex altars
use instead.

--------------------------------------------------------------------------------
67b09052d6 | Kate | 2024-09-15 17:26:14 +0100

Mark milestones when buying runes (grothendieck)
Buying items in shops always creates a note and then flags the item to
avoid creating duplicate notes, but that flag then also caused milestone
recording to be skipped. Historically this wasn't an issue because the only
items that need milestones are runes/gems/the Orb but at least one of those
is now purchasable in a rare case!

--------------------------------------------------------------------------------
460ee30645 | regret-index | 2024-09-14 21:25:52 -0230

Don't spawn abyssal stairs on Abyss:7 (Shadow_Rider)
No accessing Abyss:8 just yet, anyway.

--------------------------------------------------------------------------------
ff001066c8 | regret-index | 2024-09-14 21:25:52 -0230

Put a spot for the Serpent of Hell in tar_mu (Lici, #4027)
The encompass vault was missing an actual place for the Serpent of Hell's
set-up function to look for and spawn the unique in question.

Closes #4027.

--------------------------------------------------------------------------------
55745971f8 | gammafunk | 2024-09-13 16:47:33 -0500

feat: Add monster intelligence to clua
Monster intelligence (e.g. "Human" or "Mindless") was missing from clua
even though it's present in the UI. This is a minimal implementation
that simply returns the standard description string of a monster's
intelligence. This is technically a feature, which we wouldn't normally
add to stable/tournament, but it's only related to UI and arguably a bug
that it was missing. It's also very minimal and has been tested locally.

(cherry picked from commit cc8dab42f0033f0eb96e1de10bcbeea62793514c)

--------------------------------------------------------------------------------
9043e79ccf | Samantha Tobias | 2024-09-08 04:35:42 -0230

fix: "Ran out of altars for temple" error (thirdmesn, Vajrapani) (#4005)
A few temple vaults had a temple_altars_X tag where X was lower than
the number of altars in the vault. This caused the "Ran out of altars
for temple" error during the creation of a new character/dungeon.

This commit fixes the issue by increasing the tag values to match the
number of altars in the vault. This change results in temple vaults
with 22 and 26 altars, instead of the previous max of 21.

Note: Does not update temple vaults with a variable temple count due
to substitution removing the superfluous altars in the vault.

Resolves #2810
Resolves #3846

[Committer's note: actually tweaked the initialization temple function to
allow the 22-altar temples to be picked. This _does_ slightly raise the
average number of gods compared to 1659c76, but it's probably fine now
that more gods are attractive to more characters in 0.32. Also, left a few
more comments around.

Closes #4005.]

--------------------------------------------------------------------------------
7029d3762f | gammafunk | 2024-09-07 21:04:49 -0500

fix: Don't nest the clua monster spell table
The implementation of the clua monster info spells() function was
unconditionally putting the array of spells in another table, probably
to handle the case when a monster doesn't have spells. This commit uses
this (empty) table only in the case when a monster doesn't have spells.

--------------------------------------------------------------------------------
e99af74eb8 | DracoOmega | 2024-09-06 21:59:22 -0230

Add Alejandro Ramirez to CREDITS.txt

--------------------------------------------------------------------------------
1545d69ba7 | DracoOmega | 2024-09-05 15:29:20 -0230

Fix gravitambourine being able to move orbs of destruction
Since virtually nothing in the game can act upon these directly, I don't
think this should be able to either.

--------------------------------------------------------------------------------
fa4ca675df | DracoOmega | 2024-09-05 15:28:53 -0230

Fix octopode physiology (dilly, rypofalem, ge0FF)
Their species_flags were split between two blocks and seemingly only the
second was having any effect.

--------------------------------------------------------------------------------
321b5f042a | Alejandro Ramirez | 2024-09-05 15:13:46 -0230

Ensure only actual spells trigger SpellMotor (#4003)

--------------------------------------------------------------------------------
9fb28c6a05 | DracoOmega | 2024-09-05 15:12:09 -0230

Don't trigger chaotic artifact weapons against dead monsters
This could happen if specifically the base *brand* of the weapon killed a
monster, and even then didn't usually cause a visible problem. With chaotic
Rift and Punk *specifically* (among all chaotic unrands that can currently
appear in the Xom bazaar), this resulted in a crash.

Unlike other sources of brand damage, Punk's acid and distortion banishment
fully reset a monster when they happen, meaning the defender's type is
MONS_NO_MONSTER by the time the secon apply_brand_damage() happens. And
chaos brand specifically tries to look at a monster's resists to determine
what brands it can roll. Against a normal dead monster, this happens
normally (and then it elects not to apply the brand at all), but against a
reset monster, this causes an assert when it looks for its resists.

I think a more proper solution involves refactoring the chaos brand check,
but I'd like to cherry-pick a bugfix in 0.32, so I'm going with the
simpler solution with less possible side-effects for right now.

--------------------------------------------------------------------------------
92cb95d158 | regret-index | 2024-09-02 19:47:05 -0230

Fix a vault using Dungeon's gem in Depths (WizardIke)
An unfortunately missed copy-paste from the D:$ configuration screwed up
the Depths:$ configuration. For bonus points, it'd show up as shattered on
the ground.

--------------------------------------------------------------------------------
b3cc53a541 | DracoOmega | 2024-09-02 15:06:26 -0230

Give the Black Torch status some short_text
(So that it can be queryable from lua, first and foremost.)

--------------------------------------------------------------------------------
75c2363917 | DracoOmega | 2024-09-02 15:06:26 -0230

Hopefully fix crash when viewing the Form Properties menu (ge0FF)
This crash doesn't occur on any architecture I personally have access to,
but had been reported for local tiles on both Arch Linux and Fedora. Big
thanks to ge0FF for hopefully tracking down the real culprit. I'm just
going to have to take other people's word that this fixes things.

--------------------------------------------------------------------------------
41e258f827 | DracoOmega | 2024-09-02 15:06:26 -0230

Don't let Vanquished Vanguard summons sometimes drop items (cfcfcfcfcf)
This only happened if they were killed directly (as opposed to timing out
or the summoner being killed).

--------------------------------------------------------------------------------
4495e38fd1 | DracoOmega | 2024-09-01 18:28:53 -0230

Fix all blockable beams being blocked 100% of the time (Lici)
Broken since 2031b86 alarmingly....

--------------------------------------------------------------------------------
b3de7b944d | gammafunk | 2024-08-30 21:21:10 -0500

task: Add the trunk 0.32 tournament reminder

--------------------------------------------------------------------------------
6fe00ff5d4 | gammafunk | 2024-08-29 16:13:02 -0500

doc: Update the changelog for the 0.32 release
(cherry picked from commit 2a3b71ecb9cd912fbbc65fd33e16365abcc6daa8)

--------------------------------------------------------------------------------
f63b3e169c | gammafunk | 2024-08-29 15:56:07 -0500

task: Update the debian changelog for 0.32.0
(cherry picked from commit e9cc5b35c8837d80da24021ff7dc4a8983bbf222)

--------------------------------------------------------------------------------
cf2570bee3 | DracoOmega | 2024-08-28 18:20:19 -0230

Add Grave Claw to the list of monster smitey spells
...that is used to determine whether the caster will push past allies.

As per the comment above the list, these probably should really be spell
flags (or maybe a flag on the monster itself instead??) There are quite a
few things which would theoretically qualify to be on this list, but I'm
not filling it out right now as this would cause monster behavior changes
that may or may not be positive and shouldn't be done so close to release.

Will aim to do something with it in 0.33, though.

--------------------------------------------------------------------------------
30fde11914 | DracoOmega | 2024-08-28 18:18:18 -0230

Significantly decrease monster Grave Claw damage
While this isn't used on any normal monsters (yet?) and scary ghosts with
it can mostly be avoided, wizard apostles (especially early ones) could be
disproportionately deadly to fight with the numbers the spell currently
has.

(I'll probably take a closer look if anything else gets this in 0.33, but
for now I feel a quick fix is warranted.)

--------------------------------------------------------------------------------
df7718d54d | DracoOmega | 2024-08-28 18:14:02 -0230

Describe the pseudopod aux attack when examining the mutation

--------------------------------------------------------------------------------
516f9d4634 | DracoOmega | 2024-08-27 23:03:11 -0230

Fix enhanced breath damage not displaying for red draconians (Undo)

--------------------------------------------------------------------------------
8f600990a4 | DracoOmega | 2024-08-27 21:58:25 -0230

Fix draconians not getting breath power boost in dragon form (Undo)
This was always intended, but the refactoring done as part of 0.32's
draconian breath revamp ened up accidentally removing the new breaths from
the code which would give them increased power.

At the same time, clean up a confusing remnant of that old code, which gave
ABIL_BREATH_FIRE reduced power outside of dragon form (even though it was
impossible to have it outside dragon form) and gave Naga who had mutated
ABIL_BREATH_POISON increased power if they were in dragon form (???)

(Dragon form breath weapon really should scale with Shapeshifting skill now
instead of XL, but I plan to do that as part of a greater pass on forms
in 0.33)

--------------------------------------------------------------------------------
a5f74d5c56 | DracoOmega | 2024-08-27 16:52:28 -0230

Fix another spacing issue with player titles on % screen (NormalPerson7)

--------------------------------------------------------------------------------
01a4114b50 | DracoOmega | 2024-08-27 16:33:33 -0230

Fix an extraneous space in Dith max invo title in webtiles sidebar

--------------------------------------------------------------------------------
ad26841d26 | DracoOmega | 2024-08-27 16:33:33 -0230

Add a placeholder description for armataur monsters
These can be encountered in a few entrance vaults, so it's possible for
players to examine them, and they were missing a description altogether.

(It amuses me a little to write of yaktaurs as if they were common frames
of reference for people from this world.)

--------------------------------------------------------------------------------
3f04b6fbeb | DracoOmega | 2024-08-27 16:33:33 -0230

Adjust orc monster description
The current one's flavor seemed a little incongruous with the 0.32 Beogh
changes.

--------------------------------------------------------------------------------
0e1e677ba4 | DracoOmega | 2024-08-27 16:33:33 -0230

Prevent a crash with a phantom mirrored Blorkula being killed
Cleaning up enchantments on Blorkla before 'saving' them prior to bat
split was also deleting the abjuration timer, causing them to die
mid-split. Ideally, I'd like to let them just split into summoned bats, but
there's no easy way at present to delete enchantments *other* than
abjuration. So instead, just prevent summoned Blorklas from splitting.

This makes me a little sad, but it's so niche a situation that I can't
justifying the refactoring that might be involved post feature-freeze.
Maybe some future time?

--------------------------------------------------------------------------------
fefbaf9652 | DracoOmega | 2024-08-27 16:33:33 -0230

Fix a possible crash with Xom fake shatter
It tried to modify the quantity of the large rocks created *after* they
were placed on terrain, but if the location selected to place them was
lava, the rock would already be destroyed by the time the code attempted to
modify it.

It would be easy enough just to not try to place rocks in lava at all, but
the sizzling splashes caused by them seems flavorfully appropriate enough
to me.

--------------------------------------------------------------------------------
df10614e8e | CipHuK | 2024-08-26 16:04:40 -0230

fix(trove): allow wand of digging for trove_misc_dual_throne_room (#3993)
[Committer's note: Unnerfed the wand of digging charges count; the trove's
already more niche than the other wands trove, trove_wands_scrolls.

Closes #3993.]

--------------------------------------------------------------------------------
d232e38429 | DracoOmega | 2024-08-26 02:35:44 -0230

Don't crash when aiming Gavotte near the edges of an unseen map boundary

--------------------------------------------------------------------------------
b05a317584 | DracoOmega | 2024-08-25 16:57:30 -0230

Fix a crash when shock serpent reprisal kills a monster

--------------------------------------------------------------------------------
6d945e7588 | DracoOmega | 2024-08-25 16:17:38 -0230

Use attack_strength_punctuation for shock serpent reprisal (cfcfcfcfcf)
Surprising amount of code editing was needed to do this and still print the
resist message in the proper place.

--------------------------------------------------------------------------------
89b494631c | DracoOmega | 2024-08-25 16:17:32 -0230

Make recruitable apostles disappear when you change floor
Previously, if you were off-level when the recruit timer expired, the
apostle would remain wandering on that floor forever. Instea, end the timer
immediately if you leave the floor.

I'm a *tiny* bit uncertain about whether this could catch a player
off-guard by ending the window prematurely, but it's relatively consistent
with other uses of good-neutral orcs and there's probably not many
situations where a player needs to leave a floor immediately, and still
plans to come back and recruit afterward. (And this is simpler to
implement by far).

--------------------------------------------------------------------------------
4120489253 | Medrano83 | 2024-08-25 16:35:14 +0200

Android fix. Declare the gategory of the app as a game
Categories are used to cluster multiple apps together into meaningful
groups, such as when summarizing battery, network, or disk usage.

--------------------------------------------------------------------------------
2325b17bb0 | DracoOmega | 2024-08-25 02:17:57 -0230

Display Lightning Spire's damage in Summon Lightning Spire cast interface
Following similar logic to Hoarfrost Cannonade doing so.

--------------------------------------------------------------------------------
11011316db | DracoOmega | 2024-08-25 01:59:56 -0230

Display which monster is engulfing the player (when examining them)
In a similar fashion to when a monster is constricting you, indicate which
monster is engulfing you when you are being engulfed (to help with
ambiguities when there are several possible monsters nearby).

This doesn't indicate the source of monster/monster engulfment, but that
seems of much more marginal value. (It is much less straightforward to do
this, since monsters themselves don't track who or even *if* they are
currently engulfing anything)

--------------------------------------------------------------------------------
6b671fb534 | DracoOmega | 2024-08-25 01:55:05 -0230

Display Makhleb's Unleash Destruction hit-chance when targeting

--------------------------------------------------------------------------------
2c1f918eca | DracoOmega | 2024-08-25 00:35:43 -0230

Remove some old runrest_ignores
The reasoning no longer applies to current Yred (and only one of these
message even happens anymore).

--------------------------------------------------------------------------------
3094c0ca69 | DracoOmega | 2024-08-25 00:35:07 -0230

Stop auto-explore rest over deep water with expiring temp flight
If the player had temporary flight and was over deep water or lava, pressed
autoexplore, and was injured enough for autoexplore to rest first, the
game would skip past the expiring flight warning instantly and activate
emergency flight (potentially draining the player quite a bit for no good
reason).

It feels like autoexplore rest probably just shouldn't ignore force_mores
at all (this was already a default force_more), but for the moment adding
the message to runrest_stop_message fixes the immediate problem.

--------------------------------------------------------------------------------
5a265af164 | DracoOmega | 2024-08-24 23:24:10 -0230

Don't let cosmetic clouds block catoplepas breath (among other things)
We've established reasonably clear rules about cloud overwriting by now,
and cosmetic (ie: harmless, non-opaque) clouds are supposed to be
overwritable by everything. This is true in perhaps the majority of cases,
but bolt::affect_place_clouds() (used mainly for placing clouds *along* a
beam path) still has a check that ends prematurely if there is *any* cloud
already at a given space.

This didn't even always just prevent clouds being placed in *that* space.
Noxious Breath and March of Sorrows used this function to place clouds in
tiles *adjacent* to the beam path and those would also be skipped if there
was a cloud present. So, for instance, using Vhi's to engage Boris could
give several turns of immunity to misery clouds being placed anywhere near
you.

This affected at least: catoblepas breath, player green and yellow
draconian breath, March of Sorrows, Mourning Wail, ushabti Death Rattle,
and creating cold/steam clouds over water with cold/fire beams.

It nominally affected many other monster cloud breaths, but those placed
most of their clouds outside of this function, so in practice it likely
only blocked cloud placement near the monster when the monster itself was
breathing far away from itself (ie: you couldn't use Vhi's or similar for
any practical protection.)

--------------------------------------------------------------------------------
e8922636c0 | DracoOmega | 2024-08-24 21:34:00 -0230

Don't leak the presence of monsters in the Refrigeration targeter
The color-coding used to indicate how many allied monsters are adjacent to
each monster (affecting Refrigeration's damage) leaked information on
the presence of both invisible monsters and those out of the player's line
of sight entirely.

--------------------------------------------------------------------------------
9311ea8977 | DracoOmega | 2024-08-24 21:22:35 -0230

Fix a niche crash with displaying future XL-based mutations
If the player already recieved a non-innate version of a mutation they were
slated to receive at a later XL, the mutation preview would display an
incorrect mutation level (ie: expecting that they would gain an additional
level of that mutation, instead of making the level they had already gained
innate.) If that level was higher than the actual max, this would cause a
crash when opening the mutation menu.

(A realistic example is a felid mutating a level of fur at random,
resulting in the mutation preview thinking they will gain Fur 4 at XL 12)

--------------------------------------------------------------------------------
c0fac641d8 | DracoOmega | 2024-08-24 21:13:50 -0230

Allow casting BBB on deep water (Dilly)
The boulder can already travel through deep water, so there's no reason to
prevent the player from casting it on a deep water tile. (This was a
leftover from when it wasn't large enough to cross deep water).

Also slightly tweak failure messages.

--------------------------------------------------------------------------------
8ec6a561cd | DracoOmega | 2024-08-24 21:07:52 -0230

Fix Shadowslip having a misleading duration when used repeatedly (Acrobat)
Using Shadowslip while it was already active would *set* the duration of
the misdirection effect on all enemies to a rolled duration, while the
visual change to your shadow was *added* to the duration of its curent
transformation. This meant that if you used it again before it wore off,
the effect would expire long before it 'looked' like your shadow had
returned to normal.

Now the shadow visual transformation should better match the duration of
the mechanical effect.

--------------------------------------------------------------------------------
afe045b255 | DracoOmega | 2024-08-24 20:53:33 -0230

Fix canine familiars being left alive on past floors
I am not sure what this function call was doing in the old coded that it
was copied from in this refactor, but at the very least it seems
superfluous now (it will be called by monster_die() below anyway).

--------------------------------------------------------------------------------
be950636f5 | DracoOmega | 2024-08-24 20:32:22 -0230

Fix a crash when trying to use quivvered Shadowslip with no shadow
Even if the ability was unusable because of no active shadow, the codepath
for using it via quiver would still construct a targeter first, and this
targeter (used to show what monsters will be distracted) assumed that it
could not be called without an active shadow. This turns out to not be the
case.

(The targeter is never shown to the player, either way.)

--------------------------------------------------------------------------------
5a015b80b9 | Medrano83 | 2024-08-24 22:51:02 +0200

Fix Android mouse detection
The code inherited from SDL compares Event.getSource with
InputDevice.SOURCE_MOUSE. This doesn't work on modern devices.
The right way to identify a mouse event is:
 - Event.isFromSource(InputDevice.SOURCE_MOUSE)

This also improves commit e7e1c0f, because SOURCE_CLASS_POINTER
is too generic.

I'm also removing some unused variables.

--------------------------------------------------------------------------------
4b97a1a549 | Medrano83 | 2024-08-24 22:50:49 +0200

Fix Android touchpad scrolling
Chromebooks use buttonless ACTION_MOVE events to represent touchpad
scrolling. Normal cursor movement uses a different action:
ACTION_HOVER_MOVE.

--------------------------------------------------------------------------------
fa02dad217 | gammafunk | 2024-08-23 18:01:28 -0500

fix: Don't mark certain spells as self enchantment
A number spells are marked as self enchantments despite not setting any
kind of duration or enchantment on the caster itself. These are mostly
demon-related summon spells, a few conjurations that create monsters
(e.g. Marshlight and Conjure Ball Lightning), as well as Phantom Mirror
and Spawn Tentacles. For the non-summoning spells, having this flag
leads to them not being considered as ranged spells. For Spawn
Tentacles, there's even an explicit check to override this! This commit
removes the self enchantment spell flag on the aforementioned spells. It
also removes checks in the monster casting code for some of these spells
that were only needed because of this flag.

One subtle aspect affected by this commit is a monster's second spell
cast attempt. If a monster rolls a targeted spell for its action and is
unable to find a target, a second casting attempt is made, and 50% of
the time this second check only considers self enchantment spells. So
this change effectively reduces the frequency monsters would cast these
spells if they also have a spell that can somehow fail to target.
However this frequency reduction is very small in practice for the
monsters affected by this change. For example, I have tested orc
sorcerers who are in LOS but unable to target the player with bolt of
drain/paralyze, and they still readily cast Summon Demon. Monsters that
don't have targeted spells in addition to these spells will see no
change at all.

Not including summons nor spells that make conjured monsters as ranged
attacks doesn't make a lot of sense and should be revisited in a future
commit. In terms of player safety, many monster summoners create summons
with "proper" ranged attacks or superior terrain traversal compared to
the summoner. And conjured monsters certainly pose an acute threat to
the player at range. I want to make extra sure I understand all the
implications of designating summon spells as ranged attacks for
monsters, although I'm fairly sure there are no issues. For now, the
only change in this regard is removing an explicit exclusion for Conjure
Ball Lightning as a ranged spell. Lom Lobon is the only monster with
this spell and has Glaciate, another ranged spell, so this has no
in-game effect.

Finally, Repel Missiles and Berserker Rage are clearly self enchantments
and so are given the self enchantment flag by this commit. For Berserker
Rage, this means that bear monsters will no longer be flagged as ranged
monsters.

--------------------------------------------------------------------------------
b2e620de6b | Nicholas Feinberg | 2024-08-22 16:29:25 -0700

Fix: don't stairs into the abyss (CarefulOdds)
Malign Gateway's terrain feature isn't stairs, so don't colour
it on the minimap as if it were stairs. Display it as a wall.

--------------------------------------------------------------------------------
34d56c8fa2 | Nikolai Lavsky | 2024-08-23 00:16:07 +0300

text: mention that Soul Splinter inflicts weakness (MIC132)

--------------------------------------------------------------------------------
e7e1c0f356 | Medrano83 | 2024-08-22 20:43:27 +0200

Fix Android mousewheel scrolling
The code used to detect mouse scroll events in the SDLActivity doesn't
work in modern devices because the event's source is different from
SOURCE_MOUSE.

Reference: https://developer.android.com/games/playgames/
           input-mouse#handle_mousewheel_scrolling

--------------------------------------------------------------------------------
fc2bf62883 | David Lawrence Ramsey | 2024-08-21 19:17:44 -0500

Don't give gladiators default kite shield tiles.
They haven't had shields in their starting equipment for ages.

--------------------------------------------------------------------------------
8817171229 | Medrano83 | 2024-08-21 21:52:02 +0200

Android: Add a full screen option to the launcher
I got this message from an Android user:

> can't enable full screen mode by setting "tile_full_screen = true",
> still shows a black bar on top with device status.

I agree a full screen option for Android can improve the user
experience. Mostly when playing on landscape mode with modern devices.

You can read this in the docs:

> Where you set the UI flags makes a difference. If you hide the system
> bars in your activity's onCreate() method and the user presses Home,
> the system bars will reappear. When the user reopens the activity,
> onCreate() won't get called, so the system bars will remain visible.
> If you want system UI changes to persist as the user navigates in and
> out of your activity, set UI flags in onResume() or
> onWindowFocusChanged().

Tried both options and the behaviour when using onWindowsFocusChanged
is more consistent. When using onResume, full screen is lost whenever
you open the top menu.

--------------------------------------------------------------------------------
ae761ad27d | David Lawrence Ramsey | 2024-08-21 10:57:38 -0500

Adjust kraken tentacle msgs to not mention water.
Since a soul-bound kraken flies and so is not in water.

--------------------------------------------------------------------------------
589741c2aa | gammafunk | 2024-08-20 21:09:48 -0500

fix: Add some missing KMASK to a vault (dilly)
Set these unreachable areas to have no level generated monsters nor
items. Also, we can't actually make a gnoll bouda skeleton, just gnoll
skeletons, so simplify the skeleton placement.

--------------------------------------------------------------------------------
099670764a | David Lawrence Ramsey | 2024-08-20 18:18:40 -0500

Fix Xom glove slot msgs for certain randarts.
The Mad Mage's Maulers and Delatra's gloves don't start with "pair of ",
but make Xom glove slot messages put that at the beginning of their
names anyway, so that all glove names come out as singular and the
message grammar fits.

There should be a better way to handle this, but this will work for now.

--------------------------------------------------------------------------------
72c75df84f | David Lawrence Ramsey | 2024-08-20 16:55:14 -0500

Fix indentation.

--------------------------------------------------------------------------------
eb33c5b31a | Medrano83 | 2024-08-20 23:50:43 +0200

Android fix: Swipe gestures produce undesired click events
I had the chance to play the game on a tablet and tried to use touch
events only. It was a painful experience, but this will help.

--------------------------------------------------------------------------------
5cf48a82f6 | David Lawrence Ramsey | 2024-08-20 12:12:41 -0500

Add missing commas to some monster speech.

--------------------------------------------------------------------------------
aee97d7bc7 | DracoOmega | 2024-08-20 14:10:45 -0230

Properly make Oni double potion heal affect !magic (Acrobat/dilly)
It was always intended to, and the mutation description even mentions such,
but apparently it never worked properly.

This also affects Kyrias, which is intended to have the same set of
functionality.

--------------------------------------------------------------------------------
f212be2d05 | Nikolai Lavsky | 2024-08-20 14:55:01 +0300

fix: remove evocable flight, again
Having a barding or boots of flying in the inventory enables training of
Evocations, even though such items no longer require an activation.

This commit fixes that.

--------------------------------------------------------------------------------
24a3017434 | Nikolai Lavsky | 2024-08-20 13:39:55 +0300

docs: mention the removal of permanent bazaars in the changelog
They were removed in e446cd8f.

--------------------------------------------------------------------------------
f2d5535fad | Nikolai Lavsky | 2024-08-20 13:25:09 +0300

docs: update `dump_order` in the options guide
Document the new `apostles` field, which was added in d887a3bc.

Also, convert some stray tabs to spaces.

--------------------------------------------------------------------------------
dab2e85f15 | David Lawrence Ramsey | 2024-08-20 00:53:11 -0500

Fix Xom ring msgs for macabre finger necklace.
Since the ring there isn't worn on a hand.

--------------------------------------------------------------------------------
a8b5e4c4fa | David Lawrence Ramsey | 2024-08-19 20:34:12 -0500

Move Beogh resurrection invo icon to UNUSED.

--------------------------------------------------------------------------------
fda3adbe32 | DracoOmega | 2024-08-19 20:09:57 -0230

Allow no_tele_into tags (and some others) to actually work for subvaults
Map tags which applied fprops (such as no_tele_into, no_tide, no_jiyva)
did nothing at all when attached to a subvault. Most of these were not
used this way, as far as I can tell, but no_tele_into *was* used several
times - notably in the S-branch preview chambers for
grunt_ashenzari_visionary - meaning that it was possible for the player to
teleport (or take a hatch) into a place from which there was no escape and
also many wildly out of depth monsters.

Now, the same set of fprop tags that work with parent vaults should also be
respected by subvaults.

(It's worth nothing that kprops applied to subvaulted glyphs by the parent
vault are *also* ignored when a subvault is merged, so there was really no
good way to do this sort of thing prior to this commit, despite what one
might expect.)

This fixes #3979

--------------------------------------------------------------------------------
8f3c08acc0 | DracoOmega | 2024-08-19 20:09:57 -0230

Show some fprops in the local tiles tile tooltip
It wasn't easily possible to see what tiles were marked no_tele_into in
game, and this is helpful for diagnostics sometimes.

(I didn't bother showing fprops here which are easy to verify visually,
such as Sanctuary. It would be easy enough to expand this list in future,
though, if there's any need.)

--------------------------------------------------------------------------------
1eb867fef6 | DracoOmega | 2024-08-19 20:09:57 -0230

Hopefully finally make player ghosts stop trying to cast Gell's Gravitas
The spell was removed from existing monsters in unmarshallMonster() (as is
done for many other spells) but player ghosts apparently don't go through
that function when they are loaded, allowing it to cast a spell that
didn't exist for monsters anymore.

--------------------------------------------------------------------------------
3d2af943be | DracoOmega | 2024-08-19 20:09:57 -0230

Update removed_spells list
And add version tags around a few spells that were effectively removed, but
never got them.

I wonder if, instead of using the AXED_SPELL macro in spell-data.h, dummy
data should automatically be provided for any spell in the removed_spell
list? Since currently there are effectively multiple places to say that
the spell was removed, with different consequences for not being listed
there.

--------------------------------------------------------------------------------
751def610d | Medrano83 | 2024-08-20 00:19:32 +0200

Fix Android build on armeabi-v7a
There's an error when building the game with NDK 26 for armeabi-v7a.
This passed unnoticed on previous tests because the other architectures
supported by Android are not affected. It can be fixed with another
function casting on sdl2-mixer.

--------------------------------------------------------------------------------
cf733dc7dc | DracoOmega | 2024-08-19 15:22:12 -0230

Fix swoop/flank attacks missing some of the proper checks (Ogregutan)
It was possible for a monster to perform one of these attacks while afraid,
pacified, in a sanctuary, or possibly even against an ally (though I'm not
100% sure that the circumstances that would set up this last case were
possible in practice).

--------------------------------------------------------------------------------
e547df2160 | Sean Dewar | 2024-08-19 09:52:17 -0700

Fix stash search prefixes for golden dragon scales
Presumably broke since the rename from gold -> golden.

--------------------------------------------------------------------------------
8ac6e3977b | DracoOmega | 2024-08-18 18:24:36 -0230

Display what aspiring flesh will turn into when you examine them
The game already announces this in the message log, but it can be easy to
overlook and more fiddly than necessary to go find it again if you want to
double-check. Now it is displayed on the same line with other status
effects when you look at them.

--------------------------------------------------------------------------------
1836586e43 | regret-index | 2024-08-18 17:53:36 -0230

Add tekkud to the credits
Missed back in 84d97b0 and ea827eb.

--------------------------------------------------------------------------------
4ec9ae56f4 | regret-index | 2024-08-18 17:53:36 -0230

Mildly adjust the changelog
Remove a duplicate soul scholar entry, mildly allude to the conditions Xom
bazaars happen in, and list off a fair number of tile additions not listed
in other changelog updates.

--------------------------------------------------------------------------------
1d4c9e7c8f | DracoOmega | 2024-08-18 17:31:10 -0230

Don't (confusingly) leak invisible monsters with Piledriver (Acrobat)
While Piledriver already could never target and move a monster the player
could not see, it was possible for an invisible monster to be in the way of
moving something the player *could* see, which resulted in a confusing
message about the spell being unusable in situations where it looked like
it should be.

Now the targeter will display paths based on what the player can see, but
if an invisible monster is in the way of the selected path, the spell will
fizzle without effect when cast instead. This is a little unfortunate, but
also we can't really move something that has nowhere to move. (If *a*
viable path remains unblocked, the spell will take that one instead)

--------------------------------------------------------------------------------
e868d8570b | gammafunk | 2024-08-18 13:54:57 -0500

doc: Changelog update

--------------------------------------------------------------------------------
fdaad256b3 | David Lawrence Ramsey | 2024-08-18 10:04:14 -0500

Fix wrong changelog commit hash (gammafunk).

--------------------------------------------------------------------------------
8529b04c42 | DracoOmega | 2024-08-17 21:40:06 -0230

Stop Coglins from destroying cursed items without a prompt in local tiles
Clicking on a weapon in the inventory panel in local tiles attempts to
wield that weapon. For coglins in particular, it bypasses the normal
prompt for 'which hand do you want to put that weapon in?' - with left
click going into the main hand and ctrl+left click going into the offhand.

However, the logic in can_wield() regarding curses only checked that the
player had *a* hand free to wield a given weapon - not necessarily the hand
they were about to put something in! So if a player had one cursed weapon
and their other hand was free, using click-to-equip for the hand with the
cursed weapon would see that it was possible to equip a new weapon, and
then immediately unwield and destroy the cursed item to replace it with the
one just clicked on.

Now there is specific logic to check for the corresponding weapon being
cursed first.

--------------------------------------------------------------------------------
193dd4b38f | DracoOmega | 2024-08-17 21:07:55 -0230

Fix ally-cast foxfires from counting as the player's own kills
I'm not sure this matters for a whole lot outside of messaging, mind you.

--------------------------------------------------------------------------------
f4a7df68b9 | DracoOmega | 2024-08-17 21:06:41 -0230

Fix an issue with Mark of the Celebrant and Reflection
Since Celebrant's cooldown was set *after* the volley of blood arrows
fired, if the player took damage as a result of it, this damage could
trigger another barrage. (Possibly this could also happen with Pain Mirror)

But while this is a bug in its own right, the crash mentioned in #3972
doesn't seem to me like it could be directly caused by getting multiple
bloodrites. I think reusing the beam structure may have resulted in
improper values being set if the beam was reflected in the process. So
instead, copy the beam structure anew with each shot to avoid this.

This should fix #3972

--------------------------------------------------------------------------------
470f6e4a91 | DracoOmega | 2024-08-17 20:11:45 -0230

Some Gavotte targeter improvements
If a monster that will get wall slammed overlaps with the player's transit
path, it will still be hilighted to indicate it will take damage.

The targeter now accounts for seen terrain and monsters that are outside
the player's current line of sight, instead of effectivey treating
everything the player cannot currently see as empty floor. This allows more
intuitive and accurate hilighting of which monsters will take damage from
a given movement (since it otherwise may not be obvious why a given monster
isn't hilighted when the *player* knows there's a wall in the way already.)

This does mean the tracer will sometimes claim a monster will take damage
when it won't (ie: because something dug a wall out of line of sight or
destroyed a plant it was expected to hit) but this should be much, much
more rare than the previous situation of ignoring map memory of unseen
walls entirely.

--------------------------------------------------------------------------------
691159746b | DracoOmega | 2024-08-17 20:11:45 -0230

Expire boulders and ballisto spores when changing floors
At some point in the not-so-distant future I will actually unify 'temporary
monster' checks that don't depend specifically on abjurability. But in the
meantime, don't let the player drag boulders between floors with them.

(Amusingly, spores would effectively only follow you only if there was a
hostile monster in sight when you took the stairs, and otherwise stay on
their original floor.)

--------------------------------------------------------------------------------
d9894b7f15 | DracoOmega | 2024-08-17 20:11:45 -0230

Note in Upheaval's description that it cannot harm the player
(Or elementals summoned via Elemental Force)

--------------------------------------------------------------------------------
e2c4daa879 | DracoOmega | 2024-08-17 20:11:45 -0230

Prevent spawning a Crucible exit on the other side of deep water
Since the only deep water possible in this map is on the very edges of the
arena, forcing the exit to only place on the floor (which makes more sense
anyway) should prevent any possible softlocks.

--------------------------------------------------------------------------------
718b86c488 | DracoOmega | 2024-08-17 20:11:45 -0230

Don't let Rimeblight explosions hit good neutrals
This mostly only matters for Beogh worshippers, but could unduely cause
penance at random mid-battle. If it can ignore friendlies, it can ignore
neutral orcs, too.

--------------------------------------------------------------------------------
959a7d1ea5 | DracoOmega | 2024-08-17 20:11:45 -0230

Fix AF_SPIDER and AF_HELL_HUNT printing messages when triggered out of LoS

--------------------------------------------------------------------------------
e09b82ad32 | DracoOmega | 2024-08-17 20:11:45 -0230

Fix initial explosion from Rimeblight ignoring LoS check (CarefulOdds)

--------------------------------------------------------------------------------
9405a8f6c0 | DracoOmega | 2024-08-17 20:11:45 -0230

Remove Oni gaining extra benefit from mutation potions
An oversight left over from when the original armataur double potion
mutation applied to all potions. Oni are only intended to double healing
potions.

--------------------------------------------------------------------------------
62c44d5b28 | DracoOmega | 2024-08-17 20:11:45 -0230

Add a confirmation prompt for accepting Infernal Marks (various)
This is a high-impact choice made once per run. A confirmation prompt seems
reasonable here.

--------------------------------------------------------------------------------
c9fbf6cc2f | DracoOmega | 2024-08-17 20:11:45 -0230

Remove an orphaned comment
The code it was commenting *on* has been already removed anyway (it was
in regard to spell enhancers not applying to spells cast via rods).

--------------------------------------------------------------------------------
1502f1d042 | DracoOmega | 2024-08-17 20:11:45 -0230

Remove code for handling zapping wands with 0 charges.
This isn't possible to do anymore, anyway.

--------------------------------------------------------------------------------
0ad0e9b9b2 | DracoOmega | 2024-08-17 20:11:45 -0230

Don't let !/@ work when aiming smite-targeted spells
These keys allow force-casting a spell not just beyond its range, but at
places where the spell's targeter:::valid_aim() returns false - essentially
ignoring any target validity checks that are done there. While this serves
some purpose for beam spells, by allowing the player to select beam paths
that are not possible within the spell's range, (and the beam's range and
physical properties will be respected, regardless), I don't think it
serves any purpose for spells which target a specific location. Forcing a
spell to be cast on a location the game itself says is not valid is just
asking for undefined behavior. And boy, there's quite a bit of it at the
moment. This may not be comprehensive, but at the moment at the very least:

-Grave Claw, Mercury Vapours, Momentum Strike, Cigotuvi's Putrefaction,
 and Sculpt Simulacrum can all be cast at full LoS range.
-Magnavolt and Putrefaction can trigger a crash-on-demand by aiming at a
 tile without a monster.
-Putrefaction can be functionally used on uninjured monsters and non-living
 monsters.

Many older spells in the game do not exhibit the same range bugs because
each spell's own code checks manually that the target they have been given
is valid and in range - with even the most straightforward of range checks
being essentially duplicated countless times in different places. Some of
these spells predate the targeting API existing at all, and some were
bandaided later on, but I'm inclined to think that where a spell defines a
hitfunction for validity, that this function should be authoritative and
the spell should not have to duplicate its checks (this sort of problem has
come up many times in past and been fixed in a one-off manner on many of
this times.)

Doing so would allow cutting out a bunch of now-redundant code from many
spells, though I am going to pass on doing so during feature freeze, since
it seems at risk of introducing new bugs. I'd like to make it a 0.33 thing,
though.

--------------------------------------------------------------------------------
280500051a | DracoOmega | 2024-08-17 20:11:45 -0230

Display the health buff that shadows get from Shadowslip in xv (Acrobat)

--------------------------------------------------------------------------------
fccc69708b | DracoOmega | 2024-08-17 20:11:45 -0230

Don't mislead firewood with Shadowslip
"The fungus turns its attention towards your shadow x24"

--------------------------------------------------------------------------------
098aa689ba | DracoOmega | 2024-08-17 20:11:45 -0230

Fix enemies being mislead by Shadowslip after being charmed (Monkooky)
If an enemy was distracted by your shadow, they would continue to fixate
on it even after being charmed. On the one hand, this makes a certain
sense. They think your shadow *is* you, so why should they listen to orders
from that othere chump over there? And it *is* pretty funny.

But probably it should just break the mislead effect, so now it does.

This fixes #3970

--------------------------------------------------------------------------------
2c87f10760 | Kate | 2024-08-17 22:05:56 +0100

Adjust a description for consistency
"Magic" rather than "mana".

--------------------------------------------------------------------------------
2cd2782243 | gammafunk | 2024-08-17 15:07:03 -0500

doc: Some clua api doc tidying

--------------------------------------------------------------------------------
8b4f558f18 | gammafunk | 2024-08-17 15:02:40 -0500

fix: A check for monsters having ranged spells
The function mons_has_ranged_spell() didn't considered spells marked as
ranged by _ms_ranged_spell() to actually be ranged unless their range
was greater than 1. The problem with this is that many LOS-affecting
spells have an undefined range, which gets resolved to a range of -1.
Hence a monster like a curse toe with e.g. Symbol of Torment and only
summons as its other spells was incorrectly not flagged as ranged. This
commit only excludes attack spells if their range is exactly 1.  I've
looked over all calls to mons_has_ranged_spell() and there's nothing
that should break if we expand the list of monster ranged spells in this
way.

It might be good to actually designate a LOS range for all the various
smite targeted attack spells for clarity in the monster info UI. Smiting
itself already has such a range, for example. I'm not changing any spell
definitions for now, since I've not checked if those changes could
somehow have other side effects. Monster AI is notorious for having
subtle bugs.

(cherry picked from commit 585c54f536188b0a9123da2be5ea99197ebdd732)

--------------------------------------------------------------------------------
f3f7718482 | Implojin | 2024-08-17 14:48:55 -0500

fix: clua api ldoc generation
This has apparently been broken since 60c0b14602 (mid-0.31), as mentioned
in previous commits on this ldoc remains pretty fragile.

To regenerate these, run `make api`.

--------------------------------------------------------------------------------
a3a3e7ce51 | Implojin | 2024-08-17 11:36:33 -0500

Add Lexi Hattaway to the credits

--------------------------------------------------------------------------------
28ae855c5f | David Lawrence Ramsey | 2024-08-16 22:30:14 -0500

Fix enum name for magnetised dust clouds.
So it consistently uses 'magnetised', instead of 'magnetized' in some
places and 'magnetised' in others.

--------------------------------------------------------------------------------
9333e8e020 | patrick | 2024-08-16 23:23:25 -0400

Tone down the greed value of a Shoals shop
100 is the same value as Gozag's Platinum Reserve, which is intended
to be a ridiculously high overcharge. The proprietor of the mermall
isn't supposed to be quite that greedy. Now it's 20.

--------------------------------------------------------------------------------
191c959e3d | David Lawrence Ramsey | 2024-08-16 22:06:45 -0500

Tweak food_snacking_frequency documentation.
Since 40% is not one third of the time.

--------------------------------------------------------------------------------
cc75f2f1da | Lexi Hattaway | 2024-08-16 23:04:53 -0400

added my first vault (pentagon) after testing

--------------------------------------------------------------------------------
88fe4fe15f | David Lawrence Ramsey | 2024-08-16 21:36:48 -0500

Use @objective@ properly in Nergalle's dialogue.

--------------------------------------------------------------------------------
385508daed | regret-index | 2024-08-16 01:59:21 -0230

Add Darby to the credits
Accidentally left out after f582fa6, despite d06570b and 3ec762b.

--------------------------------------------------------------------------------
8f138eace0 | David Lawrence Ramsey | 2024-08-15 16:17:24 -0500

Add Michael Hunter to CREDITS.

--------------------------------------------------------------------------------
6728d54412 | David Lawrence Ramsey | 2024-08-15 10:43:37 -0500

Add Christopher Partin to CREDITS.

--------------------------------------------------------------------------------
122fbd90ea | DracoOmega | 2024-08-15 05:54:48 -0230

Make uniques a little more chatty
There's been a bunch of effort in recent years to characterize uniques
better, and give them more personality in their dialogue. It seems fair
that they get to chat a little more than other monsters as a consequence,
so that players have a better chance to see it before killing them.

(Donald and Yuif had greatly increased odds to talk compared to other
uniques, and I have lowered their bonus to keep their net rate of
conversation about the same as it was before now.)

--------------------------------------------------------------------------------
0be9698d78 | DracoOmega | 2024-08-15 05:54:48 -0230

Nudge Mark of Haemoclasm's numbers up again just a small bit
After the previous buffs of 4c67e76a8e2a7885a haemoclasm feels a lot closer
to the right place, but could possibly stand to be just a *bit* more
frequent, so this increases its trigger chance from adjacent enemies a
small bit more and also nudges its base damage a tiny bit higher.

--------------------------------------------------------------------------------
38b740fdb0 | DracoOmega | 2024-08-15 05:54:48 -0230

Fix Unleash Destruction being completely silent
Not sure *exactly* how much noise to give it, but 'more than none'. In
theory, I could see it argued that lightning-based destruction should be
louder than other types, and this wouldn't actually be hard to implement,
but I'm unconvinced that it's meaningfully better to sometimes be much
louder than other times at random.

--------------------------------------------------------------------------------
562a9a4611 | DracoOmega | 2024-08-15 05:54:47 -0230

Don't let player shadows stab loudly (Midn8)
Player stabs are deliberately silent, but when your shadow joined in to
eviscerate some poor elf in their sleep as well, it would make enough noise
to potentially wake up all the others.

I could just block shadow melee noise on stabs, but shadow *spells* are
already all completely silent, so it seems fine to make their melee
universally silent as well.

--------------------------------------------------------------------------------
907ac0868c | DracoOmega | 2024-08-15 05:54:47 -0230

Allow divine heal-on-kill to work on monsters which are 'objects'
It already seperately excluded summons and things which don't grant the
player XP, but for some reason it *additionally* vetoed monsters which
were objects. Monsters that counted as objects but also gave XP *mostly*
meant 'dancing weapons', but it was still strange that Makh/Veh/TSO healing
didn't count them.

This bit of code seems ancient, and if there was ever a good reason for it,
I doubt there is anymore.

--------------------------------------------------------------------------------
0c44f4d719 | DracoOmega | 2024-08-15 05:54:47 -0230

Slightly rescale chance of good god lifesaving to cap at 6*
In keeping with a general policy of not giving god benefits that scale
beyond the 6 piety stars the player is able to see, piety above 160 no
longer increases the chance of good gods randomly saving your life (Ely's
guaranteed lifesaving already hit max chance at 6*)

The old chance was ~28% at 200 piety and ~24.4% at 160 piety. The new
chance maxes at 26% at 160 piety (using a very slightly simpler formula).

--------------------------------------------------------------------------------
a6fa64cfb8 | DracoOmega | 2024-08-15 05:54:47 -0230

Slightly tweak Magnavolt spell description
To try and make it somewhat clearer that it fires one beam individually at
each marked target.

--------------------------------------------------------------------------------
b7f7cf1fb9 | DracoOmega | 2024-08-15 05:54:47 -0230

Fix a possible Crucible of Flesh crash
When new victims are spawned, they are placed with 30-80% of their max hp,
but for enemies with very little max hp, it was sometimes possible for this
to round down to 0, placing a seemingly-normal-looking enemy that the game
nonetheless thought was 'dead' when you tried to hit it, causing an assert.

--------------------------------------------------------------------------------
3e066615e7 | DracoOmega | 2024-08-15 05:54:47 -0230

Buff / un-nerf Drain Life
While 9e354a60c6874087a purported to only make Ramparts and Refrigeration
check AC (and gave them additional damage in compensation), it also did
this to Drain Life and *without* giving it any additional damage at the
same time. With the low damage that Drain Life puts out from monsters, this
was a very significant accidental nerf.

Since the game is already pretty consistent about life-draining style
effects ignoring AC, I've opted to return this property to Drain Life
instead of just buff its damage. But since Soul Eaters were never known to
be *that* scary, I've also adjusted its damage slightly upward as well
(from 1d21 to 2d13). Unavoidable damage that ignores AC is pretty strong,
but Drain Life is extremely resistable, so I think it's fair for its raw
numbers to feel relevant.

(I've also removed a bit of unnecessary code/comments now that Drain Life
isn't player accessible in any fashion.)

--------------------------------------------------------------------------------
d20efa1b82 | DracoOmega | 2024-08-15 05:54:47 -0230

Make a few more spells work with Aphotic Marionette
This implements Marionette casting of Battlesphere, OTR, Polar Vortex, and
Malign Gateway (mostly through calling the player versions of these spells
via overrides).

It also fixes Berserker Rage being inconsistent about when it could be used
this way, as well as Invisibility not producing a message when gained this
way.

--------------------------------------------------------------------------------
6655e30ea7 | DracoOmega | 2024-08-15 05:54:47 -0230

Give RevMPSaver an additional effect, rename to SpellMotor
In theory, flat spell cost reduction is a powerful effect, but capitalizing
on this gizmo property is difficult. To benefit from it, you need to engage
in weapon combat first, but many of the spells which gain the most from
being able to repeatedly cast with cost reduction tend to be attack spells
you'd preferred to have cast from a distance. Its design seems to want a
character who is strong enough to comfortably sit in melee, but who has
relevant blasty spells they want to cast a lot *after* that point, which
is a hard sell on a species whose biggest strength comes from leaning into
their ability to do enormous weapon damage while sacrificing defense.
Moreover, the cost reduction is also short-lived, since Rev will wear off
while the player is casting.

In the hope of moderately addressing both of these awkwardnesses, I am
adding a second effect to RevMPSaver and renaming it to SpellMotor. In
addition to its current effect, it also causes the player to launch a
melee attack at a random enemy in range whenever they cast a spell. This
gives a direct boost to the hybrid blaster archetype, but also helps the
player *sustain* the cost reduction by maintaining Rev if there are nearby
enemies to hit while casting. It also allows the player to *build* Rev by
spellcasting (but only while directly engaging in combat with those
spells).

If your weapon attack would somehow have a delay *longer* than it takes to
cast a spell, there is a proportional chance to perform no attack (so no
being cheeky with giant heavy weapons).

While this arguably makes this gizmo property more powerful than its peers,
I think the archetype it directly supports is also weaker and less
straightforwardly popular on coglins such that I think this is okay. (And
it would be nice if all gizmo properties felt reasonably worth taking; I
think RevMPSaver is currently a bit of a dud.)

--------------------------------------------------------------------------------
2cfdfcf2c9 | DracoOmega | 2024-08-15 05:54:47 -0230

Adjust Dazzling Flash tracer for monsters, increase duration vs. player
Monsters previously considered already-blind enemies as useful targets for
this spell. And while the duration *can* stack, it's generally not very
useful to keep extending blindness on an already blind player (and, in
fact, the moon troll's cast rate was high enough that they would spend
fully 25% of their turns casting it, regardless of it accomplishing
anything).

In some mild compensation, increase the baseline duration when applied to
the player. This does affect some other methods of blinding the player, but
in general it is a weaker effect on players and a longer duration makes
sense to me. (This also doesn't matter a lot given the rarity of blind
effects in the game that will hit the player. This is slated to be changed
somewhat in 0.33 and duration will be reviewed again at that time.)

--------------------------------------------------------------------------------
04ba9e8093 | DracoOmega | 2024-08-15 05:54:47 -0230

Change Dazzling Flash schools (Conj/Hexes -> Hexes/Fire)
A remnant of back when Dazzling Spray actually *was* a damaging spell,
conjurations has been an extremely weird fit on the completely non-damaging
Dazzling Flash spell for a while. It also meant that Vehumet could gift it
to players, despite it not being appropriate to the god at all.

The choice of Fire as the new secondary school is somewhat arbitrary, but
it felt like the closest thematic fit for 'makes a lot of light, very
abruptly'. (I don't think it will affect players much, as one never really
trained conjurations as a hexer, nor picked up flash as a conjurer.)

--------------------------------------------------------------------------------
cb2735431a | David Lawrence Ramsey | 2024-08-14 22:16:14 -0500

Add another Xom ring slot message.

--------------------------------------------------------------------------------
34a0b8a54a | David Lawrence Ramsey | 2024-08-14 20:45:31 -0500

Fix typo.

--------------------------------------------------------------------------------
414de441e9 | regret-index | 2024-08-14 23:12:42 -0230

Update some ancient documentation links
After adding quite a bit more to the Art Requests wiki page, I realized I
should check what is recommended for people reading the documents, and
found incredibly ancient references. Some of these tile requests stretch
as far back as 14 years ago, and should at least be directed more towards
present day contexts.

--------------------------------------------------------------------------------
ac85ce32bd | regret-index | 2024-08-14 16:24:29 -0230

Add a force_more to sighting the_gamble (Riverfiend)
While autoexplore does stop for the immediate sightings of both an altar
and a transporter, it is relatively plausible to completely miss that it is
a limited time offer amongst the messages of sighting the enemies and
rewards in either side. Since this has completely different behaviour than
normal transporter vaults in being temporary (and is thus better off for
it), it might as well get a force_more the way temporary portals do.

--------------------------------------------------------------------------------
e0650be844 | regret-index | 2024-08-14 05:15:14 -0230

Make some food documentation more consistent
Indecisiveness bleeds through, sometimes.

--------------------------------------------------------------------------------
5a795d2ccf | CipHuK | 2024-08-14 05:03:55 -0230

Trove: Fix trove_misc_dual_throne_room veto (#3976)
"The trove contains two misc which are useful even for low Evocations.
There are four talismans which do not depend on the no-device mutation,
plus evocation + shapeshifting manuals."

"Also, there's no wands in the 'prices' table."

[Committer's notes: squashed the two commits together and adjusted the
logic syntax to be a bit more easily readable.

Closes #3976.]

--------------------------------------------------------------------------------
9f76b2ef98 | regret-index | 2024-08-14 03:38:11 -0230

New option: food_snacking_frequency (default 40%)
A relatively quick and simple setting for caches of fruit and meat, which
allows setting the percent chance of displaying their corresponding flavour
message. Should be relatively harmless, but also reduce the current
awkwardness of people who want to see the messages dancing back and forth
on top of the piles (as long as they read the options guide, alas).

On that same note, since people seem to be relatively receptive of the
flavour messages in the first place, the odds have been increased (from
~33.3% to 40%).

--------------------------------------------------------------------------------
6bd198a3e8 | regret-index | 2024-08-14 01:28:58 -0230

Brief quick vault passover
Some living trees replaced with dead ones, a late D glowing orange brain
placement nerf, and some decorative altar adjustments + fix-ups.

The last of these adds a small chance for the tiny altar square used in
a large amount of games to get a highly variable floor tiling arrangement
around it, to add a little more interest to the open-altar squares being
used constantly throughout such a large part of the game. It also comes
with a few tweaks to _pick_an_altar() for a few branches to catch up to
some later flavour options; as long as we've got such a minor flavour
function already around, we might as well continue to update it.

--------------------------------------------------------------------------------
a9c2434b49 | regret-index | 2024-08-13 21:55:46 -0230

Tweak some Xom messages
The Xom pseudo-miscasts that entail "Something invisible lands on the
floor beside you!" and the like unfortunately collide with the warning
colours in the default messages.txt for invisible monsters using
something as broad as "Something .* you". This commit replaces those
messages with new ones that won't collide with such and are still
appropriately confusing for Xom.

--------------------------------------------------------------------------------
3ec762b4b6 | regret-index | 2024-08-13 20:57:20 -0230

Further loose tile edits and additions
 * New tiered talons mutation icon by Darby.

 * New vampire bat tiles and the held Charlatan's orb by pianoman523, both
   with edits (the former brightened up in a few shades to contrast better
   against dark floors, the latter desaturated to match the item on the
   ground).

 * A less inaccurate rakshasa tile by meckryl has been added to the unused
   monster tile folder in anticipation of finding a proper home later for
   the current tiger-demon rakshasa tile.

 * The new claws mutation icon has been edited to show three levels
   through darkening and brightening individual different claws, as was
   suggested by Ge0FF.

 * Mystic cages have been edited to hopefully read more as a feature and
   less as an item, through chopping off the top to fit on a plinth.

 * Coolio's edit of Denzi's dwarf tile has been edited further to remove
   the axe always in its hands, since cosmetic weapons on monsters
   inteferes with showing actual weapons on the same monsters.

 * Wiglaf's duplicate tile in the /player directory has been cut, since
   there's already one in the /unique directory.

 * Additional mutation icons: no potions (ontoclasm's potions), no armour
   (Bloax's troll hide armour), no grasping (ontoclasm's statue tiles),
   stabbing paws (aidanholm's generic monster spell icon), multilived
   (Denzi's felid tiles), shaggy fur (Sastreii and CanOfWorms's death yak
   tile), gelatinous body (CanOfWorms's slime creatures), camouflage
   (white_noise's D walls and snw-0's pebble walls), beak (outlining from
   a Creative Commons Zero bird vector by Lexatchison), and torment
   resistance (CanOfWorm's resistance icons + roctavian's tormentor).

--------------------------------------------------------------------------------
86e73b92f4 | DracoOmega | 2024-08-13 17:55:46 -0230

Properly add dummy data for removed electroferric vorticies
This fixes #3977

--------------------------------------------------------------------------------
d22c55109e | gammafunk | 2024-08-13 09:13:25 -0500

fix: DES syntax in a serial vault (ASCIIPhilia)
The serial_demonic vault had a malformed KMONS for depths 9 and 10.

--------------------------------------------------------------------------------
b660852781 | Nikolai Lavsky | 2024-08-12 13:19:45 +0300

docs: adjust a couple of help texts
Fix a colour tag and realign table columns.

--------------------------------------------------------------------------------
d7452cd21e | DracoOmega | 2024-08-12 01:51:23 -0230

Nudge Hellfire Motar damage down slightly
This spell is slated to become 3 school in 0.33, and will likely get this
damage back again afterward, but for the moment it may be a *touch* too
strong when also considering its utility and excellent MP-efficiency.

--------------------------------------------------------------------------------
c677a86b84 | DracoOmega | 2024-08-12 01:51:23 -0230

Slightly relax Eringya's Toxic Bog's placement restrictions
By allowing bog to be created on tiles with a maximum of *2* adjacent walls
instead of just one. Bog is a spell with a lot of limitations, and while I
think some of those limitations are interesting, it could probably stand to
be just a *bit* more permissive. Let's give it a try.

--------------------------------------------------------------------------------
cc760f6cd4 | DracoOmega | 2024-08-12 01:51:23 -0230

Properly make orc wizard apostles Cautious
Astoundingly, despite this flag having been implemented *for* them in the
first place, it appears to have never actually been implemented in trunk
at any point. I am really not sure how this came to happen.

Hopefully this makes this feel a little less suicidal to have as allies,
as it was originally intended to.

--------------------------------------------------------------------------------
d7b6f665e1 | DracoOmega | 2024-08-12 01:51:23 -0230

Increase Cigotuvi's Putrefaction draining cost
The latest iteration on corpse rot seems to have been well-received, but is
probably a bit strong for where it is. I considered moving it to level 5,
but the original intent of "Strong for a level 4 spell, but with a
meaningful draining cost" is something I want to try leaning a bit more
into first, and the current iteration virtually removes the cost if
spellpower is high enough.

New draining cost is 75->35 at max power (versus 55->5 before this commit)

--------------------------------------------------------------------------------
ce3698e0c0 | DracoOmega | 2024-08-12 01:51:19 -0230

Revamp Brom's Barrelling Boulder a little
When first added to the game, there were significant concerns that BBB's
obvious upsides of providing blockers and crowd-controlling lines of
enemies while also damaging them would be too strong. In practice, the
spell's many limitations and low damage made it almost universally
considered to be bad instead. While sometimes one hit the perfect storm of
juggling a scary monster repeatedly out of sight until it died, there were
simply too many ways for the spell to fail to provide value. It was useless
against adjacent enemies, usually useless against enemies at range 1 (who
would destroy the boulder before it did anything), extremely unreliable
against enemies at a distance (due to veering off course at random), easily
sidestepped by groups of enemies on open terrain, aimable only in compass
directions, and after all that did much less damage than stone arrow. For
comparison, IMB (also a level 4 starter book spell) knocks back enemies in
*all* directions, is usable against things already on top of you, *and*
does more damage, without being considered overpowered. So I think it's
time to revisit boulder.

Boulder now moves one tile immediately upon being cast (so that it can no
longer be destroyed before even moving). Its HP increases with spellpower
(and will generally be higher). It no longer causes a fragmentation
explosion upon hitting a wall (this did almost no damage anyway) nor takes
passive damage from running into enemies. Instead, it simply is destroyed
upon hitting a wall or moving into an enemy that cannot be moved (whether
because it's against a wall or otherwise stationary) - though it will do
additional damage in the latter case. It no longer applies a ministun to
pushed enemies (previously done automatically via actor::knockback).

It also no longer veers off course. This was likely intended as a way to
keep it from being too reliable an obstruction in corridors, but it also
made it too unreliable in the open as well (and the aiming restrictions
*already* made it require specific positioning to be useful). Instead,
corridor protection comes in the form of the boulder taking abrasion damage
from solid terrain it passes alongside. Each time it moves, it takes
(randomized) damage proportional to how many adjacent solid features there
are. This means that it takes no damage rolling in the open, but will
disintegrate after only a short distance in a full corridor. The targeter
has even been updated to indicate the distance at which a boulder (with
HP based on your current spellpower) may disintegrate before reaching.

Finally, boulder damage has been increased.

The hope is that this iteration on boulder feels more rewarding to use, and
is appropriately powerful for a level 4 dual-school spell.

--------------------------------------------------------------------------------
322ac23952 | DracoOmega | 2024-08-12 01:51:19 -0230

Remove some seemingly-redundant rendering code
While investigating the issue that is hopefully resolved in the prevous
commit, I noticed that monster status icons are seemingly rendered twice in
local tiles. The code I am removing appears to be effectively repeated by
the call to pack_foreground() in DungeonCellBuffer::add

--------------------------------------------------------------------------------
0f7a2dab06 | DracoOmega | 2024-08-12 01:51:19 -0230

Properly render clouds on top of items in local tiles
The comments suggest this was always intended, but didn't actually work due
to how items are packed in a different buffer than monsters (and one which
appears to always be rendered after clouds).

Now it applies a similar technique used when items are to be drawn
submerged in water, and moves cloud-engulfed items to a lower buffer.

(Webtiles uses different rendering code and did not have this bug.)

--------------------------------------------------------------------------------
1803d01ea8 | DracoOmega | 2024-08-12 01:51:19 -0230

Tweak Magnavolt behavior a little and buff
Electroferric vorticies were always a bit of a kludge to fix how otherwise
the spell (designed to ramp up in power over multiple casts) got a lot
worse when it actually killed the magnetised enemies quickly. But I never
really liked how they were big and space-filling and sometimes oddly good
as obstacles; it felt out of theme for how the spell was supposed to
function. So here's another take on solving the same problem:

Instead of magnetised enemies making an always-magnetised vortex monster
upon death, they leave behind a cloud of magnetised fragments instead. This
cloud has no effect on its own, but will function as an attractor for
Magnavolt, just like a magnetised enemy would. It lasts a short time and
then dissipates (without any of the 'extended duration by rezapping'
behavior electroferric vorticies had).

I have also increased the base damage of the spell by a moderate amount,
given feedback over its current power level.

Finally, the magnetised dust status reveals invisible enemies - mostly to
ensure that enemies which go invisible *after* marking them will not
result in the beam tracer either leaking information *or* misleading the
player about whether or not the beam paths that will result from casting
the spell are safe.

--------------------------------------------------------------------------------
2a9263fe16 | regret-index | 2024-08-11 19:24:16 -0230

Various requested tiles (pianoman523) + Jiyva altar adjustments
Tin of tremorstones active and inert versions, claw and hoof mutation
icons, and Hellfire Mortar's spell icon.

 * The hooves and claws icons don't have three variations like most
   mutations, but getting away from the generic mutation icons (especially
   for mutations given player species will have innately, who probably)
   shouldn't show helix strands) is the more important goal for UI
   consistency than having the full count of gradations.

 * Hellfire Mortar's icon is in a weird spot because the actual mortar
   monster itself is using an old recolour of a granite statue rather than
   having a proper mortar-like tile, but "mortar shaped like a dragon" will
   probably still be retained eventually anyway.

 * The Jiyva altar tweaks in this fixes the light-direction to be
   consistent with each part, brings the palettes of each part closer, and
   adjusts the outlining of the slimeball against the the wobbling altar
   it's on top of. Hopefully it'll read better now?

--------------------------------------------------------------------------------
aa93178157 | regret-index | 2024-08-11 02:27:19 -0230

Yet further adjustments to Xom effects
 * Xom bazaars hold one less talisman (since they frequently get repeats
   and the randart is more enticing), plus potentially one more potion
   (since most of the consumables presented are relatively undervalued).

 * Xom hostiles have been further tweaked downwards at earlier levels,
   with there being plenty of new effects covering the "Xom tries to
   directly kill the player" front without needing the precise nature of
   "Xom directly just summons something you can't fight in a corridor
    ambush situation". While it was always possible to get early tier-4
    and tier-3 demons, they were much less likely than the revised state
    was for XLs 6 and 7, which has thus been tweaked upwards. Also, the
    first few XLs get even less hostiles, so there's a decent chance to at
    least fight or get something before dealing with 4 crimson imps on D:1
    or D:2.

--------------------------------------------------------------------------------
3bae8276e6 | regret-index | 2024-08-11 01:42:44 -0230

Last big vault review for 0.32
This, of course, continues to include tweaks to the most dangerous and
least threatening portals and branch ends for many places.

Worthy of note:

 * To help make early portals be somewhat easier to find, two of the Sewer
   entries that only placed in far corners of levels now have experimental
   severe wall padding away from the furthest corners, and the Bailey entry
   that has no monsters or terrain differences has been cut.

 * cheibrodos_frozen_isle has no_tele_into (to reduce getting wrecked by
   teleport) _and_ a hatch in it now, dealing with issue #3927.

 * Crypt entry vaults now use Crypt walls to sell a little more flavour for
   the ever-struggling Vaults branch, and have specified monster types to
   reduce overlap with other Vaults enemies / Depths enemies and also cut
   the small chance to see non-Crypt curse skulls.

 * Pan entries now use Pan floor (but not Pan wall) so there's less
   spoilers about which of a dozen fixed boxes in each game have demons
   in them in each Depths.

 * pleasuredromes is updated to better suit Depths again. (Why did we have
   commits screwing with Depths encompass vaults, but none to reduce all
   of the unthemed deep elf use?)

 * wizlab_doroklohe now has pretty different monster sets to try and reduce
   its overlap with other demonic and undead wizlabs, either pairing those
   more directly or swerving over into earth and construct themes alongside
   some sparse use of undead.

 * (Base gargoyle monster tiles and war gargoyle tiles have been adjusted
   to actually more obviously split from one another, since this will make
   for the second wizlab pairing the two.)

--------------------------------------------------------------------------------
dd5112e32b | David Lawrence Ramsey | 2024-08-10 19:41:37 -0500

Add another gizmo noun.

--------------------------------------------------------------------------------
fe854bf2fb | David Lawrence Ramsey | 2024-08-10 11:18:58 -0500

Remove now-inaccurate comment bit (ge0FF).

--------------------------------------------------------------------------------
b3f2be6f28 | Nicholas Feinberg | 2024-08-10 08:37:18 -0700

Remove an antique bit of monster AI (Monkooky)
Doesn't seem helpful to make low HP monsters avoid targeting the
player. This logic dates back to pre-Stone Soup days.

--------------------------------------------------------------------------------
7c87569a87 | David Lawrence Ramsey | 2024-08-10 10:18:02 -0500

Make Blorkula's bat form unconstrict him.
Closes #3971.

--------------------------------------------------------------------------------
c9a0f24d00 | David Lawrence Ramsey | 2024-08-10 01:34:58 -0500

Fix indentation and spacing.

--------------------------------------------------------------------------------
49d6eb21ec | DracoOmega | 2024-08-10 00:51:32 -0230

Fix console build

--------------------------------------------------------------------------------
c18c819373 | DracoOmega | 2024-08-10 00:15:32 -0230

Make it more obvious where the Crucible exit is
Properly update the minimap when the portal opens (I thought this happened
already, but apparently not) and also make a ring around it change to a
different type of floor. Possibly a higher-visibility floor could be
chosen or (ideally) a fancier exit tile made at some future point, but this
should still improve visibility a little, at least.

--------------------------------------------------------------------------------
6f226b4170 | DracoOmega | 2024-08-10 00:15:32 -0230

Make poison status icon overlap a little less with other things

--------------------------------------------------------------------------------
7ec8f00e54 | DracoOmega | 2024-08-10 00:15:32 -0230

Show some status icons above the player (and add customizable options)
Certain negative statuses are very important, but can be easy for a player
to overlook when they are applied randomly or unexpectedly (eg: Slow from
*Slow triggering, or from draconian cold-bloodedness). We already have
standard icons for many of these things, so it seems possible to indicate
them directly above the player, where it may be a lot more obvious than
the sidebar.

I have added support for displaying a number of statuses there (and it is
now straightforward to add more). Since there are many statuses that
*could* be indicated but which are often not important to do so (either
because they're low impact, beneficial, or already have their own default
force_more), I've added a new option: tile_player_status_icons. This allows
a player to decide which of the implemented statuses they want to show this
way (if any).

Currently there is support for displaying slow, fragile, sentinel's mark,
will/2, haste, weak, corrosion, might, brilliance, -move, constriction and
petrifying. By default, it only displays slow, fragile, constricted, and
1/2 will. This is somewhat arbitrary and I am open to input for different
defaults.

I tried to make the string used in the options to enable a status be the
same as it appears on the sidebar (though it bothers me a bit that it's
harder than I'd expect to efficiently query this directly - duration-data.h
currently cannot be included anywhere without manually including a bunch of
things before it, which is awkward....)

-Potion and -Scroll are other statuses that immediately jump out to me as
worth showing in this manner (since they can be critical, and also easy to
miss activating) but no icons exist for them yet. (Also, poison is still
handled by an older method and cannot be edited with this option yet.)

--------------------------------------------------------------------------------
39fa310435 | DracoOmega | 2024-08-10 00:15:32 -0230

Give Animated Armour the resists of their base type
(ie: animated fire dragon scales having rF++ rC-, etc.)

It seems like this was always intended, but because animated armour wasn't
flagged as using equipment, the resists on their gear was also ignored
(though the AC on their gear was *not*, oddly enough...)

--------------------------------------------------------------------------------
e9c885f53b | regret-index | 2024-08-09 19:05:27 -0230

Further dog summon icon improvements (pianoman523)
It's a little fancy for something relatively mechanically straightforward,
but hey, people love their (magical) dogs, so we might as well lean into
it.

--------------------------------------------------------------------------------
1fec1db897 | David Lawrence Ramsey | 2024-08-09 09:12:26 -0500

Add another new Makhleb line for Donald.

--------------------------------------------------------------------------------
78ccd735b5 | DracoOmega | 2024-08-09 04:17:47 -0230

Fix broken Mark of Execution activation chance (Acrobat)
I forgot to remove the 100% chance to activate that I'd be using in testing
and I additionally forgot to check that what you were killing was actually
hostile, so that the player couldn't activate it by killing cheap friendly
summons. Oops.

--------------------------------------------------------------------------------
e9ac164b42 | DracoOmega | 2024-08-08 23:12:25 -0230

Prevent using Passwall to move through temp terrain (rypofalem)
It was *also* possible to use Oozemancy to Passwall through metal or
similar walls. Now it isn't.

--------------------------------------------------------------------------------
19bd505595 | DracoOmega | 2024-08-08 23:12:25 -0230

Mention that Dissolution/Xak'krixis can dig in xv

--------------------------------------------------------------------------------
0dac2c7386 | DracoOmega | 2024-08-08 23:12:25 -0230

Fix multiple broken things with monster digging/burrowing
For some reason, burrowing monsters could only burrow through exactly rock
wall and clear rock wall and *no other* diggable features. Yes, this meant
that Dissolution, whose name has been in the section header comment of the
digging section forever, and who has special messages unique to them alone,
*couldn't dig through any wall type that actually exists in the zone they
appeared in*. Wow.

Also, monsters that could cast the Digging spell could only dig through
exactly rock wall, clear rock wall, and grates - none of the other types
of diggable terrain would prompt them to cast the spell, even though it
would work if they did.

This commit refactors that entire section slightly, and makes burrowing
and digging directly check for feature diggability instead of this ancient
narrow list. I've banned burrowing monsters outside of Dissolution (which
is currently just Xak'krixis) from burrowing through slime walls, largely
for parity with the reasoning given to player formicids. Take proper care
of those mandibles!

--------------------------------------------------------------------------------
8a5fa98918 | DracoOmega | 2024-08-08 23:12:25 -0230

Fix Polar Vortex not properly putting water under destroyed mangroves
It was bypassing the normal wall destruction function entirely, and it's
not clear to me that there was any good reason for this.

--------------------------------------------------------------------------------
851616cc3e | DracoOmega | 2024-08-08 23:12:24 -0230

Remove a digging exploit with formicids of Jiyva
While wands of digging would simply not work on temporary terrain prior to
the previous commit, formicid digging *did* work. And it was possible to
use Oozemancy to make metal walls slimy and then simply walk through them.

While it would be, in theory, possible to apply the same policy as the
previous commit - let the player walk through walls whose underlying
feature could also be dug - it has awkwardness with how the player moves in
the process. We can't just revert to metal and keep you in the same place;
the player may have forgotten which walls were metal and which weren't!

After a little discussion, it seems fine to dodge the question by just not
letting you dig through acidic slime with your mandibles at all.
Technically a small nerf to formicids in Slime, but I doubt it ever really
mattered there anyway. (I am normally adverse to one-off exceptions like
this, but people seem to think this one is intuitive enough and it neatly
solves the issue.)

--------------------------------------------------------------------------------
7cfa934292 | DracoOmega | 2024-08-08 23:12:24 -0230

Allow summoned trees to burn (and oozified walls to be dug)
For some years now, temporary terrain has been immune to numerous effects
that might destroy it, such as wands of digging. This is a sensible
precaution to prevent the player from temporarily transforming metal or
other undiggable terrain into rock so that they can dig straight through
it.

Summon Forest can transform metal walls into trees as part of its effect,
but it also places numerous trees on empty terrain, and it's always felt a
shame to me that it's impossible to burn those down too. Messy
conflagrations can be fun from time to time, and it also makes the trees
feel more tree-like instead of inexplicably fireproof. So this is an
attempt to make temporary terrain behave more like that type of terrain
normally does while *still* preventing the player from using it to cheese
their way through terrain that they should not.

Essentially: digging and burning works on temporary terrain like it would
on normal terrain, but if the underlying feature could *not* be affected by
that effect, it simply causes the terrain to revert to that instead.
Zapping digging at a metal wall that has been oozified will return it to
metal, as will burning a wall that has been turned into a tree. But
oozified rock will dig as normal, and trees made in open areas can spawn
fires propery. (As a bonus, burning down a rock-tree still makes some fire
cloud nearby - like what would happen if it *could* put a spreading fire
in the wall's place).

Currently, all other sources of terrain destruction are unchanged. Forest
fires can't spread *into* temporary trees, they are unaffected by Polar
Vortex, and Shatter still completely erases rather than reverts terrain
(even though trees are easier to shatter than metal walls).

--------------------------------------------------------------------------------
1c43b724a3 | DracoOmega | 2024-08-08 23:12:24 -0230

Make dryads cautious
Summon Forest is already a strong spell, but the degree to which the dryad
(key to the spell actually doing anything at all) will suicidally rush
enemies for no benefit can sometimes be fiddly or dissatisfying. Having to
protect them with your own body can be interesting, but the open layout
often makes that impossible when they're so insistant on moving past you
to hit stuff for irrelevant damage, and it feels wrong that it's helpful to
order them *not* to attack stuff, which you can only do if you're not using
other allies at the same time.

Now they should be a little less overeager to close in on enemies.

--------------------------------------------------------------------------------
af4033067c | DracoOmega | 2024-08-08 23:12:24 -0230

Don't print message for breathing your draconian breath when it fails

--------------------------------------------------------------------------------
acb7b81f54 | regret-index | 2024-08-08 20:48:58 -0230

A spree of placeholder innate trait / mutation / weirdness icons
Even if it'll take quite a long while to properly really fill out this
space, it'll look less and less awkward the more non-generic icons there
are available to correspond to each individual trait. This commit
continues to remix old tiles to provide new ones.

(FIXME: I'd _really_ prefer if the handful of mutations that are innate to
some species but possible to mutate on other species didn't share the
"generic" mutation icons in both circumstances. After this commit, that
list is limited to Beak, Talons, Claws, and Gelatinous Body.)

Credits:

Mutations:
 * Berserk: aidanholm's Malmutate icon and snw-0's rage ego icon.
 * Deterioriation: The Malmutate icon and roctavian's flayed ghost tile.
 * Persistent drain: The Malmutate icon and Denzi's Tartarus stone walls.
 * Teleportitis: ontoclasm's Teleport scroll icon and Bloax's Corona icon.
 * Strong-willed: CanOfWorms's resistance icons and ontoclasm's
   magic resistance / willpower item ego.
 * High mp + low mp: Sastreii's robust, thin skeletal structure,
   and antimagic status icons, plus CanOfWorms's mana mutations.

Innate traits
 * Forlorn (demigod godlessness), faith (as innate to mummies):
   snw-0's faith item ego.
 * Demonspawn Hurl Damnation: ontoclasm's Hurl Damnation ability icon.
 * Demonspawn Demonic Will: roctavian's red devil plus the strong will
   pieces.
 * Draconian cold-blood: aidanholm's adjustment of ontoclasm's Freeze
   icon, paired with ontoclasm's Sublimation of Blood icon.
 * Yellow draconian acid res, pale draconian steam resistance, gargoyle
   petrification res: CanOfWorms's poison resistance icon, snw-0's
   petrified status icon, and Denzi's steam breath ability icon.
 * Kobold nightstalker: CanOfWorms's shadow item ego icon.
 * Naga spit poison: Ontoclasm's spit poison icons.
 * Tengu acrobatics: Sastreii's edit of Lasty's acrobat item ego icon,
   and ontoclasm's statue tiles.
 * Vine Stalker antimagic bite: Sastreii's fangs tile plus CanOfWorms's
   mana mutations.

Gods:
 * Jiyva-gifted / yellow draconian acidic bite: Bloax's acid blob tile
   plus jpeg and coolio's old mimic teeth.
 * Jiyva-gifted eyeballs: Denzi's great orb of eyes tile.
 * Jiyva-gifted engulfing: ontoclasm's water elemental tile.
 * Jiyva-gifted item detection: ontoclasm's detected item plus
   CanofWorms's slime creature tile.
 * Ru's skill sacrifices: snw-0's skill-training icons, one of Denzi's old
   skill-training icons, and ontoclasm's sacrificial Ru dagger.
 * Sacrifice resistances / temperature sensitivity:
   CanOfWorms's fire vuln and cold vuln mutation icons.
 * Sacrifice essence -> weak-willed:
   CanOfWorms's vulnerability icon and ontoclasm's MR / Willpower item ego.

--------------------------------------------------------------------------------
bb65b56dd8 | DracoOmega | 2024-08-08 15:33:04 -0230

Fix Shadow Tempest sometimes failing to hit anything
Due to a missing break statement, the chosen casting position was being
ignored and a completely random one used instead (which might frequently
not have LoS to any valid enemy).

--------------------------------------------------------------------------------
f6b258df08 | DracoOmega | 2024-08-08 15:33:04 -0230

Fix Yred zombies persisting after leaving the floor (Undo)

--------------------------------------------------------------------------------
4f2d7920a8 | michaelhunter27 | 2024-08-08 07:46:42 -0500

Add doll editor info to docs/tiles_help.txt
Adds a 'character appearance' section in tiles_help.txt that gives an
overview of the Doll Editor.
Resolves #2815

--------------------------------------------------------------------------------
700f80e4b4 | DracoOmega | 2024-08-08 05:00:10 -0230

Fix a test suite error (unhappily)
It was being used to perform mutation tests without a core part of mutation
data being initialized, and only appeared to work up to this point due to
what I consider essentially a coincidence. It made mutation-related
functions effectively consider *all* mutations to have the data of the
first mutation listed in mutation-data.h, which until 
02fa12cfa58bf5b15c769780ce23e0ab14f10ce6
was Tough Skin (which happened to have 3 levels - the only reason that a
test didn't fail before now).

The test harness here is skipping a massive amount of standard
initialization code for Crawl, seemingly deliberatetly. I understand the
desire for more isolated tests, but this strikes me as deeply concerning,
as it's not at all clear when necessary parts in this complex system may or
may not be initialized in ways that cause the test to produce incorrect
values. This time, a test failed that should have succeeded, but it seems
entirely possible to me that it could also cause tests to succeed that
ought to fail.

Basically: I don't really like this, or my equally ad hoc fix here. This
will silence build failures for the moment, but it feels like a bad
long-term solution to any of this.

--------------------------------------------------------------------------------
96dd062b79 | David Lawrence Ramsey | 2024-08-08 00:34:33 -0500

Fix missing period.

--------------------------------------------------------------------------------
52cfe79831 | David Lawrence Ramsey | 2024-08-08 00:26:28 -0500

Fix indentation.

--------------------------------------------------------------------------------
c4951ef730 | David Lawrence Ramsey | 2024-08-08 00:25:02 -0500

Fix typos.

--------------------------------------------------------------------------------
17f805d8e1 | David Lawrence Ramsey | 2024-08-08 00:24:22 -0500

Fix doubled word.

--------------------------------------------------------------------------------
f1bee5885c | DracoOmega | 2024-08-08 02:30:38 -0230

Adjust flavour descriptions of draconian scales a little
Yellow draconian scales were described as 'golden yellow' and in fact their
dragon talisman transformation described them as turning into 'golden
dragons', despite mechanically and flavor-wise having almost nothing in
common with these. I assume it dates back to before acid dragons actually
existed and was just an attempt to get *some* dragon that was similar to
yellow draconians. Well, now we have a very clear analogue, so let's use
that.

Flavor descriptions tweaked accordingly. (Also moving the 'iron' descriptor
out of grey's scales, since that should now be covered by their XL 14
mutation.)

--------------------------------------------------------------------------------
02fa12cfa5 | DracoOmega | 2024-08-08 02:30:37 -0230

Adjust player draconian color balance a little
Draconians have long been considered a strong species, but after the breath
rework of 926e5b6e4c1ff7608bc4a4bdb60678fc7a80099a , multiple players
thought they had become even stronger. This wasn't my intention and I had
considered nerfing their aptitudes in weapon/magic skills a little in
compensation, but after further investigation into player data, it appears
like draconians may benefit from being played by experienced players to a
noticably greater degree than most other species do - in other words, they
are only an outlier in species strength when including experienced players
and seem closer to middle-of-the-pack otherwise. I am theorizing that this
is because benefiting from the new breath mechanics involves active
resource management moreso than most species' strengths do. At any rate, I
am reluctant to broadly nerf a species that may be 'fine' for the larger
chunk of Crawl's playerbase, especially since one of the ways in which they
are strong is varied, interactive, and unique.

However, balance *between* colors could use some adjustment. To this end, I
am making the following changes:

-Grey draconians get their +5 AC bonus at XL 14 instead of XL 7
-Red draconian breath damage is significantly increased and can no longer
 miss.
-Black draconian breath damage is slightly reduced.
-Yellow draconian breath range is increased by 1. (A tweak to acid bite may
 also be coming in a future commit)
-Purple draconians no longer have increased willpower scaling with XL, but
 get the Strong Will mutation at XL 7 and at XL 14 gain 'Inviolate Magic'
 which prevents their magical effects from being unravelled and reduces
 hostile MP drain by 2/3rd.

More detailed reasoning:

-Grey draconians are clearly ahead of the pack at the moment. 5 AC may be
 debatably weaker than a key resist in lategame, but 5 AC is a lot when you
 get it all at once at XL 7. To that end, move their +5 AC to XL 14
 instead. (It may be tradition for all draconians to get some resist at XL
 7, so let's just say they're getting rFumblingInWater which is already
 more impactful than rSteam)

-Red draconians are clearly worst and I think the numbers on their breath
 are a large part of it. It was balanced with the assumption of being able
 to hit a single target with multiple explosions, which I think is more
 awkward in practice than I'd expected.

-Purple getting a better willpower modifier than other draconians is rather
 opaque if you're not familiar with the game and barely indicated anywhere.
 Making this an explicit mutation is a lot more transparent *and* has the
 helpful side-effect of making them stronger from XL7-14, since they were
 also underperforming. Since this nonetheless results in them having 1 less
 pip of willpower by the end of the game, I've given them a different minor
 thematically congruent benefit at XL 14 (credit for the suggestion to
 Undo)

--------------------------------------------------------------------------------
0b084fa221 | DracoOmega | 2024-08-08 02:30:37 -0230

Slightly refactor/simplify _dispellable_player_buffs
It hasn't needed to keep track of both durations and attributes for years
now, so remove the remaining references to dispellable attributes. (Even
ATTR_DELAYED_FIREBALL was removed automatically on load, so it was
impossible for the removed save compat code to even do anything).

--------------------------------------------------------------------------------
a427651528 | DracoOmega | 2024-08-08 02:30:37 -0230

Slightly increase chance of Mark of Execution activating
Also remove the clause about it not triggering off of summons. This never
actually worked, due to being incorrectly checked after the monster was
already dead, but on reflection I think it might be fine to activate on
kills of summons; I don't see any obvious cheese potential attached.

--------------------------------------------------------------------------------
4c67e76a8e | DracoOmega | 2024-08-08 02:30:37 -0230

Buff Mark of Haemoclasm
The most underperforming of the Marks, haemoclasm is popular and
conceptually fun, but frequently failed to help the player very much - and
could in fact make things worse for them! The explosion chance was far too
low to rely on doing anything useful (and would commonly hit nothing even
when enemies did explode) but still generated normal explosion noise,
attracting more enemies to the player's position without even much
compensation.

This commit greatly reduces explosion noise (down to 5), lowers the chance
of enemies exploding with nothing nearby to hit, and greatly increases the
chance of enemies exploding when they *do* have something adjacent to hit
- rising moderately with how many things are nearby. I'm not 100% certain
that this is better than just a flatly higher chance at all times, but the
idea is to reduce purely-negative noise generation from blasts that cannot
be productive, while somewhat encouraging the player to wade into dense
piles of enemies to maximize explosion chance (and the possibility of
chain-reactions!) in crowds.

I've also slightly increased the blast damage caused by higher HP enemies.

We'll see how this feels and further adjustments will be made if called
for.

--------------------------------------------------------------------------------
7d931e3562 | DracoOmega | 2024-08-08 02:30:37 -0230

Tweak Crucible of Flesh danger level slightly
It's still a little hard to tell exactly where to balance this. On the one
hand, several players have repeatedly stated is was surprisingly easy to
handle. On the other, nearly 20% of players who have taken this mark have
ultimately died to the Crucible itself. Maybe this is slightly inflated by
how the same characters *without* Vessel of Slaughter may have died in
whatever situation caused them to use it instead.

At any rate, this is intended to be a fairly minor adjustment. The easiest
levels players can plausible enter the Crucible will have slightly weaker
demons, while at higher levels the Crucible has a slightly higher cap on
the number of demons it can produce at once (and how many will be there
when the player first arrives).

--------------------------------------------------------------------------------
1005255f1a | DracoOmega | 2024-08-08 02:30:37 -0230

Nerf Mark of the Celebrant damage
Celebrant has been a popular mark, and is widely agreed to be the most
powerful at present. It seems fun, which is good! It also seems like it
might be a little *too* good, so let's try reducing its numbers somewhat.
(This is about a ~22% reduction in damage output)

--------------------------------------------------------------------------------
55b383cc16 | DracoOmega | 2024-08-08 02:30:36 -0230

Improve Mark of the Legion's description, slightly improve demon quality
The mark description failed to mention that demons summoned by Infernal
Legion will never be hostile (unlike regular servants!) and may have
undersold its power by referring to the summons as 'weaker demons'. While
it's true that their tier will be lower than those produced by the baseline
Infernal Servant, their quantity is intended to *more* than make up for
that.

(It's been the least-chosen mark in testing and I haven't gotten much
direct feedback on it yet. Will this help? Perhaps slightly.)

--------------------------------------------------------------------------------
51068f2e44 | DracoOmega | 2024-08-08 02:30:36 -0230

Increase Globe of Annihilation damage
Giving up your ability to summon servants can feel like a significant
sacrifice for a Mahkleb worshipper to make. Let's make what you get in
exchange feel a little more exciting by increasing the payoff a bit.

--------------------------------------------------------------------------------
f8e23a721c | DracoOmega | 2024-08-08 02:30:36 -0230

Slightly reduce Mark of Atrocity scaling cost, make finale auto-hit
Using ramping destruction with Mark of Atrocity is a heavy commitment that
costs a large amount of HP, and while I do like the risk/reward aspect of
this, it can feel unsatisfying if your big payoff misses. While I don't
think it was terribly likely to do so, let's try just making it not.

--------------------------------------------------------------------------------
2eb4e9bb4a | DracoOmega | 2024-08-08 02:30:36 -0230

Adjust Dith shadow HP calculation, improve durability during Shadowslip
Instead of Invocations directly increasing Dith shadow HP, scale it with
player XL only. This should largely be in line with line with the present
values at moderate amounts of Invo (though less if invo was raised high).
Instead, make using Shadowslip directly increase your shadow's HP based on
your invocations skill.

While Invocations already increased the duration of Shadowslip's decoy
effect, this additional duration could be hard to benefit from due to the
decoy dying too quickly. This should help a little with that, while also
making it possible to explain Invocations' effect directly in the ability
description, without it having any other hidden effects.

(Also make the shadow mimic linger just slightly longer after appearing, to
widen the window where Shadowslip is possible to use.)

--------------------------------------------------------------------------------
0cffd93fc7 | DracoOmega | 2024-08-08 02:30:36 -0230

Tweak Dith weapon damage
Remove the damage reduction given to ranged weapons versus melee ones. I
was a little concerned originally that archer of Dith would be overly
strong compared to other options, but this seems to not be the case (and
many launchers are already slower than melee weapons, so they were
additonally disfavored).

Give quick blades a 25% reduction in shadow base damage compared to other
weapons. They should still be the weapon that benefits the most from shadow
mimic melee, but to a somewhat more moderate degree.

--------------------------------------------------------------------------------
2995cb534d | DracoOmega | 2024-08-08 02:30:36 -0230

Tweak Dithmenos shadow spell numbers
Shadow Prism does less damage, Shadow Ball and Creeping Shadow do slightly
less damage at low power, all shadow spells which can miss (Shard, Ray,
Tempest) are a little more accurate at higher power.

Shadow Torpor's formula is changed and it slows for much longer than before
(it was excessively weak in its current incarnation).

Shadow Puppet has a little less HP in general, lower damage earlygame and
increased damage very lategame.

--------------------------------------------------------------------------------
878f319458 | DracoOmega | 2024-08-08 02:30:36 -0230

Reduce Dith piety gain slightly, tweak ability costs
Marionette is now a little cheaper and Nightfall is slighty more expensive.

--------------------------------------------------------------------------------
b1c0d4f7e4 | DracoOmega | 2024-08-08 02:30:36 -0230

Fix a possible crash with Shadow Tempest
If it killed an enemy that caused other enemies already selected as valid
targets to die (ie: summons vanishing because their summoner died), it
could still try to zap one of these now-dead monsters (now located at
(0, 0)), causing an assert.

--------------------------------------------------------------------------------
da2ddc2728 | DracoOmega | 2024-08-08 02:30:36 -0230

Don't cause self-used Cleansing Flame to engulf the caster
Since all users of this were already immune to its effects, this just
produced needless (and possbly confusing) messages about resisting
something. Instead, just have it affect tiles in range that are *not* the
source, as most caster-centered AoE effects already do.

--------------------------------------------------------------------------------
11afe5f69b | DracoOmega | 2024-08-08 02:30:36 -0230

Pay HP/MP costs at the start of using an ability instead of afterward
Spells pay their costs before the code of a given spell executes, which
allows (for example) Vehumet/TSO's mp-on-kills passive to cover the cost of
the spell itself. But abilities only paid their costs *after* their code
was finished executing, meaning this was not possible.

It also resulted in oddness with Mark of Atrocity's scaling HP cost, where
the player would be charged the cost of the *next* level of atrocity while
only checking that they could afford to pay for the current level of
atrocity. (Fortunately it was not actually possible to die this way.)

I have rearranged code so that the payment happens before the ability is
used and is silently refunded if the ability fails or is cancelled (just
like spells currently do). Unfortunately, piety costs are much more
complicted, since gaining/losing piety can trigger messages and other
mechanical effects. So piety is solely paid after the ability code is
complete. I think this has much less of a noticable gameplay effect than
with HP/MP costs, however.

Finally, this also fixes a bug where the check for triggering Celebrant
after casting a spell with an HP cost happened at the wrong moment, and
could be triggered at instant speed merely by aiming a spell that *would*
result in the caster falling below 50% HP if they cast it - whether or not
they actually did so.

--------------------------------------------------------------------------------
96598cd710 | DracoOmega | 2024-08-08 02:30:35 -0230

Map Makhleb's Accept Mark abilities to capital letters by default

--------------------------------------------------------------------------------
25aef92037 | DracoOmega | 2024-08-08 02:30:35 -0230

Prevent casting Rimeblight on yourself (Midn8)

--------------------------------------------------------------------------------
64bea3c403 | David Lawrence Ramsey | 2024-08-07 13:46:36 -0500

Add a few more Xom drained brain messages.
Which use the other random body part options.

--------------------------------------------------------------------------------
0111239397 | Implojin | 2024-08-07 13:24:48 -0500

fix: Don't reject bones muts in tempforms (acrobat, Ge0ff)
23c4013377 introduced a bug where demonspawn could miss a horns levelup mut
(with a blank demonic ancestry message) by gaining an XL while in treeform,
stormform, wispform, etc. We really don't want to be rejecting mutations
based on temporary forms here.

--------------------------------------------------------------------------------
d06ab9c186 | David Lawrence Ramsey | 2024-08-07 12:31:05 -0500

Tweak Xom more-stealth message.
Feeling more catlike makes little sense if the player's a felid,
and it doesn't match the initial stealth message.

--------------------------------------------------------------------------------
d3e31708f3 | David Lawrence Ramsey | 2024-08-07 12:23:02 -0500

Fix indentation.

--------------------------------------------------------------------------------
9c17b79270 | David Lawrence Ramsey | 2024-08-07 12:16:29 -0500

Fix Xom drained brain msgs.
They don't go through god_speaks(), so they need the substitutions and
substring handling to be done manually.

Maybe random body parts should be handled in the database instead of
the code, but that would require adding Lua hooks for all the functions
indicating which body parts the player does and doesn't have. For now,
this is simpler.

Closes #3966.

--------------------------------------------------------------------------------
8f36e4defd | Nikolai Lavsky | 2024-08-07 16:11:02 +0300

fix: pluralise Xom-summoned illusions correctly

--------------------------------------------------------------------------------
89ee397a09 | regret-index | 2024-08-07 02:36:33 -0230

Throw together another Makhleb overflow altar
A lot of Makhleb's overflow altars rely on fighting tier-5 demons (which
are barely seen from Makhleb outside of potential future Crucible wrath),
or demons behind glass (an old cliche we don't need that much more of).
This vault playing around with negative space should help out those
vaults without too much extra burden, deliberately drawing off of a new
flavour Makhleb has in marks, by carving / splattering one onto the floor
rather than into one's flesh.

--------------------------------------------------------------------------------
634013aeb6 | David Lawrence Ramsey | 2024-08-07 02:36:33 -0230

Add rare fire-themed temple to Ignis and Makhleb.
"It contains a fire pit and bloody fountains on both sides (more
Makhleb's preference than Ignis', but the former has many nore
worshippers, after all)."

[Committer's notes: Due to containing a non-Temple god, I decided to make
this a rare Makhleb overflow altar with an Ignis altar rather than the
other way around. Also took out some unecessary randomization covered
inherently with vault rotation and mirroring default functions, moved
around the header lines to fit house style, and opted for a dry fountain
for Ignis instead.

Closes #3791.]

--------------------------------------------------------------------------------
51d8626461 | regret-index | 2024-08-07 02:36:33 -0230

Quick small icon adjustments
Hide some error question-marks in the spell list, give the Word of Chaos
mutation a non-default icon using its own ability icon, fixed a weird
visual issue with the cold / fire resistance level 3 mutations, and
properly give reduced potion healing the same icon as other mutations
one can mutate without innately having it (by being Vine Stalker).

(It'd be nice in that last case if we had a certain dynamic icon adjustment
for splitting up innate versus changeable mutations, but there's still an
absolutely immense amount of new mutation icons needed before that can
really be done anyway, alas.)

--------------------------------------------------------------------------------
156bdd17b3 | David Lawrence Ramsey | 2024-08-06 17:26:53 -0500

Fix wording regarding death cobs.
Since they're described as cobs of maize.

--------------------------------------------------------------------------------
cc84cd3215 | David Lawrence Ramsey | 2024-08-06 14:28:21 -0500

Add another Xom gizmo slot message.

--------------------------------------------------------------------------------
8252d5bbfe | David Lawrence Ramsey | 2024-08-06 14:00:41 -0500

Add another gizmo noun.

--------------------------------------------------------------------------------
56fa223c91 | David Lawrence Ramsey | 2024-08-06 13:47:19 -0500

Revert "Make maximum skill checks account for Ru."
Since it only affects maximum XP level, not maximum skill level.

This reverts commit 79a3620ce472ee7c03ea3699a0e18aa6aacdea37.

--------------------------------------------------------------------------------
452ae66ae0 | David Lawrence Ramsey | 2024-08-06 12:26:51 -0500

Make XP docking account for Ru's Sacrifice Exp.
Since your maximum XL is no longer 27.

--------------------------------------------------------------------------------
79a3620ce4 | David Lawrence Ramsey | 2024-08-06 12:16:59 -0500

Make maximum skill checks account for Ru.
If you've sacrificed experience, you maximum level is no longer 27.

Also, make gaining the inexperienced mutation lower your training
targets so that they're in range.

--------------------------------------------------------------------------------
a8328fd078 | elliottbernstein | 2024-08-06 11:35:09 -0500

block entry of > 27 skill target

--------------------------------------------------------------------------------
d85c740706 | Isaac Clancy | 2024-08-06 09:07:14 -0500

Fix incorrect dependencies in the Makefile

--------------------------------------------------------------------------------
0644d943d1 | Implojin | 2024-08-05 21:44:17 -0500

Increase visibility of malevolence messaging (sdynet)
Here we force_more for malevolence messages and highlight them in the log,
to hopefully reduce the incidence of players not realizing they've been
hit with malevolence (especially when going down stairs).

--------------------------------------------------------------------------------
c0d1bbeec4 | regret-index | 2024-08-05 21:03:50 -0230

Don't try to use the Bazaar wrapper outside of Bazaars (Cheibrodos)
The default-depth line for the entries was still applying to the bazaar
wrapper vault (for Xom versus not-Xom vault bazaars), which meant there
was a small chance for a bazaar-entry floor to try to place the wrapper
itself (and then fail due to the bazaar layouts all being only valid within
bazaars). Moving the default-depth line above it fixes this.

--------------------------------------------------------------------------------
e579cb0a31 | Nikolai Lavsky | 2024-08-05 23:16:29 +0300

feat: add an indicator for banished apostles
Sometimes an alive apostle doesn't show up at work, doesn't answer work
emails, and ignores Recall Apostles.

This can happen if the apostle has been banished, but there was no
indication for that on the Extra religion screen previously. This commit
fixes that.

--------------------------------------------------------------------------------
909ce11954 | David Lawrence Ramsey | 2024-08-05 12:13:28 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
90a6e04206 | David Lawrence Ramsey | 2024-08-05 02:28:16 -0500

Fix foul flame damage (hjklyubn, DracoOmega).
The formula was only doing half the damage it was supposed to be doing.

--------------------------------------------------------------------------------
f8a32a3a8c | regret-index | 2024-08-05 03:43:32 -0230

Use a min and not a max
Whoops.

--------------------------------------------------------------------------------
0c025799d4 | David Lawrence Ramsey | 2024-08-05 00:06:44 -0500

Add another mythical creature to artefacts.

--------------------------------------------------------------------------------
0ccf3f1864 | regret-index | 2024-08-05 02:15:52 -0230

Summon only two, not three illusions from Xom wrath + Oka (particleface)
The action normally gives one a friendly illusion to offset the two hostile
ones, but with sacrificing love or worshipping Oka the friendly one would
be hostile instead. This now only places two illusions period if allies are
forbidden, so it's not made _extra_ worse.

--------------------------------------------------------------------------------
8b305a4296 | regret-index | 2024-08-04 22:04:14 -0230

More adjustments to Xom and tension
Worthy of note:

 * Xom's bazaars are now a lot less likely while autotravelling between
   floors, and with decreasing odds past the first if one's not in
   noticeable trouble. While they're a reasonable success, getting
   seven per 3-rune game after hitting the rough basic gold minimums is
   far too many per game.

 * Xom's divination is once more less likely on already-explored or
   already-revealed floors- the creature detection isn't super reliable
   due to not updating compared to Ash or antennae, so it shouldn't
   eat up a variety of Xom actions.

 * Xom's door opening-and-closing is now solely a bad act with minimum
   rather than maximum tension, due to the number of ways things can
   go badly with it (like ghost vaults), and it is now no longer
   nearly so likely in high tension scenarios.  A small amount of other
   scenery screwery has also been added (food and tree warping), to
   still keep a little more variety when Xom's in a good mood.

 * Xom's hostile shadow creatures count scales even further to XL now,
   since it got a lot from guaranteeing a chaos-list creature amongst
   them.

 * Xom's actions have been juggled around a bit more to make stat drain
   and torment less likely plus showcase the newer effects instead.
   Hopefully 0.33 will contain a massive rewrite of the overall
   action choices....

 * The monster current percent of health to tension threat ratio is no
   longer a 1-to-1 ratio (and instead scales to 33% of their total threat
   if they're hostile or neutral, and to 20% otherwise). As everybody
   knows, "almost dead" means "still entirely capable of killing you".

 * Monsters chanting Word of Recall count more for tension, and monsters
   that can't see an invisible player no longer count as much less.
   Neutral and good neutral monsters now count for half rather than 0
   tension, also (so frenzying a monster doesn't completely throw out
   its capacity to also spin around and hurt you, and so that random
   friends aren't completely ignored for the distractions they may be).
   Silence is now tracked for the player always (invocations and scrolls
   are just as relevant as spells are), and for monsters only if they care
   about such.

 * Tension is now always slightly higher in Pan (where there's no easy
   escape and still regular monster summoning) and much higher on the Orb
   run (for obvious reasons).

--------------------------------------------------------------------------------
c3173615b2 | DracoOmega | 2024-08-04 18:43:43 -0230

Fix off-by-one error in Dismiss Apostle descriptions (Mattlistener)
Accidentally broken by 258319946a6387f947fb8e9a2748ec4143870134

It was printing the stat block for the incorrect apostle (including, more
confusingly to players, the last apostle that was available to be
recruited, whether they had actually taken them or not!)

--------------------------------------------------------------------------------
f9ad053adf | David Lawrence Ramsey | 2024-08-04 14:12:47 -0500

Don't refer to undead krakens as dead (Aliscans).
Simplify the message to not mention dead ones (as is done with
starspawn) and to be more accurate regarding tentacles in a way that
should cover all cases (e.g. a soul-bound kraken from Yred's power
flies, and so is not in water).

--------------------------------------------------------------------------------
f563a0e96e | David Lawrence Ramsey | 2024-08-04 14:04:39 -0500

Remove obsolete comment.

--------------------------------------------------------------------------------
faebb8589b | David Lawrence Ramsey | 2024-08-04 12:23:32 -0500

Document BiA Sprint change.

--------------------------------------------------------------------------------
d9b9d3c9f4 | David Lawrence Ramsey | 2024-08-04 12:11:00 -0500

Rename the Xom number key.
Since it's only used locally.

--------------------------------------------------------------------------------
579b58d1eb | David Lawrence Ramsey | 2024-08-04 12:00:28 -0500

Put back an eye reference in a Pan lord desc.
This partially reverts commit e099dce725e5513535340ebb5d52ce9d2ed2cbab.

--------------------------------------------------------------------------------
33269283d3 | David Lawrence Ramsey | 2024-08-04 10:08:47 -0500

Improve Charlatan's Orb changelog entry (ge0FF).

--------------------------------------------------------------------------------
48756ab783 | David Lawrence Ramsey | 2024-08-04 09:27:17 -0500

Revert "Replace eyebrow references with hair references."
Now that all species have eyes again, we can assume again that if they
have hair, they have eyebrows.

This reverts commit 61b81b70c18568995e0eea3fec7c10c91e6aba5e.

--------------------------------------------------------------------------------
132a33245d | Monkooky | 2024-08-04 09:21:14 -0500

Remove undocumented 'wait here' command
The behaviour of the undocumented 'wait here' shout is clearly similar
to 'guard this area'; but the different parameter for _set_friendly_foes
obfuscates that they are identical.

This makes the code harder to parse with no real gain to gameplay.

--------------------------------------------------------------------------------
33c259952e | David Lawrence Ramsey | 2024-08-04 09:21:09 -0500

Update changelog for Charlatan's Orb changes.

--------------------------------------------------------------------------------
ad2143bade | Monkooky | 2024-08-04 09:21:09 -0500

Update Charlatan's Orb
The Charlatan's Orb can currently break the 27 skill limit for
evocations, and this does not behave correctly for some misc evokers.
The orb was already probably an incorrect choice for a significant
majority of characters, and simply capping the boost at 27 would have
made this worse.

Instead, we give the orb a more unusual effect of directly boosting
skills based on unmodified evocations.

--------------------------------------------------------------------------------
e91ea31d48 | Implojin | 2024-08-04 05:25:11 -0500

Remove an obsolete fake lang line
We haven't passed out from exhaustion since 0ac0241410, and I'm removing
this because it came up in an unrelated grep. Possibly more of these
are obsolete, but I haven't the heart to brutally trim them.

--------------------------------------------------------------------------------
4b24945042 | Implojin | 2024-08-04 02:49:32 -0500

Remove a 2010 sprint piety cost hack
Prior to this commit, this hack only affected BiA, increasing its piety cost
(and no other god abilities) by 2.5x in sprint. Very dubious that this
approach was ever a good idea. Sprint could certainly use a balance pass,
but this isn't it.

This reverts commit 8636e5810e06c6195528b92d0df079439bb1c6f5.

--------------------------------------------------------------------------------
9bdd919550 | orjb1 | 2024-08-03 21:37:44 -0230

Propose unrand guarded vault for Rift
"So the flavour I'm going for here is [...] not abyss/leakage themed, [and
I] did not want a portal (in my headcannon the acolyte got stuck here
experimenting).

My idea was that the acolyte has been busy 'forging/blessing/animating'
demon tridents repeatedly eventually created 'Rift'. Elf/Vaults seemed
reasonable?"

[Committer's notes: Squashed commits, fixed another descriptions issue
according to dolorous's comments in the PR, moderately nerfed the other
dancing demon tridents, added new tile decoration, and heavily adjusted
the header to fit Crawl house styles- see my comment in the PR for further
elaboration there.

Closes #3711.]

--------------------------------------------------------------------------------
85f748f000 | yrdzrfxndfvh | 2024-08-03 20:23:44 -0230

add silly lair vault
"oh no... the lair of the legendary eight-headed giant serpent Orochi has
been infested with cockroaches!"

[Committer's notes: Removed float orientation (why are people so ready to
take up the big vault slot with small vaults?), moved it to the right
file, handled some teleport closets, and added a makeshift kusanagi reward.

Closes #3848.]

--------------------------------------------------------------------------------
a3d266470a | yrdzrfxndfvh | 2024-08-03 19:28:13 -0230

2 monster additions to ziggurats
"adds protean progenitors to giants because they are giants and undying
armories to orc because it sounds fitting (they get the same scaling as
moths of wrath)"

[Committer's notes: Both notions are appreciated, but are both restrained
in being being added here for differing reasons. I somewhat lowered the
chances on Orc floors for both moths of wrath and undying armouries, to
try and not outweigh their prevalence already in Spider / Vaults /
Lair Branches / Earth floors, and also because they can't actually affect
one another that well. It, of course, should still be meanfully harder
off with the undying armouries regardless. Protean progenitors also are
somewhat lowered in weight from other stronger giants because they're
rather mechanically different from other giants and because it'd take away
from the juggernaut + titan focus otherwise when protean progenitors also
already have Chaos floors. Still should both be good for a little more
spice in the already too-weak floors.

Closes #3920.]

--------------------------------------------------------------------------------
28c56dd285 | gammafunk | 2024-08-03 11:44:42 -0500

fix: Correct a Bazaar item name (Oneirical)

--------------------------------------------------------------------------------
f6a9f58c4e | David Lawrence Ramsey | 2024-08-03 11:02:19 -0500

Tweak Zin angel message.
Refer to gambling as lawless, not evil; it's a chaotic, but not evil,
act.

--------------------------------------------------------------------------------
300cd2986e | David Lawrence Ramsey | 2024-08-03 09:14:30 -0500

Rename default djinni/naga tiles w/colours.
So that all the pairs are next to each other in alphabetical order.

--------------------------------------------------------------------------------
41edf89b93 | David Lawrence Ramsey | 2024-08-03 08:31:18 -0500

Fix XL typo.
Coglins get gizmos at XL 14, not 13.

--------------------------------------------------------------------------------
4a25f2133e | David Lawrence Ramsey | 2024-08-03 07:48:03 -0500

Fix typo and capitalisation.

--------------------------------------------------------------------------------
20d766a256 | DracoOmega | 2024-08-03 04:36:59 -0230

Update changelog

--------------------------------------------------------------------------------
19b87b1804 | David Lawrence Ramsey | 2024-08-02 22:21:21 -0500

Fix spacing.

--------------------------------------------------------------------------------
6abdf1223d | regret-index | 2024-08-02 23:04:40 -0230

New Xom action: force speaking a slow Word of Recall
The easiest way to interact with players in a game about killing monsters
is to introduce more monsters, and while Xom's list of actions is very
full of summons already, there are yet still further contexts and twists
one can reasonably experiment with. This very rare bad Xom action, with
controls on minimum XL and maximum tension, should reasonably stand out on
a few fronts: it can be interrupted (and takes between 2x and 3x as long
as a normal word of recall to do so, so there's lots of space to react),
and it's pulling out actual monsters from the level and its vaults as
opposed to generating yet more monsters one could flee and wait out timers
for. Probably it's fine under Xom's continued flexibly unreliable nature?
Definitely not any worse than when a Zot trap randomly does it.

(Also, it allows lines like "The rat is forced to slowly start squeaking
a word of recall!", which is a great notion in and of itself.)

--------------------------------------------------------------------------------
c468895e65 | regret-index | 2024-08-02 22:54:56 -0230

Let Xom add an extra chaos brand to unrands (DracoOmega)
"This implements an item flag that lets unrand weapons be described as
'chaotic' and gives them the chaos brand (on top of whatever brand or
on-hit effects the unrand weapon might already have).

This is intended solely as a Xom perk for Xom's bazaars. Regular
rebranding can't work on unrands, and it felt like there could be some fun
to be had with Xom breaking the rules and giving you a touch more chaos on
some of the most interesting and exciting weapons."

[Committer's notes: This gives a 37.5% chance of seeing a chaotic-touched
normal unrand weapon distributed amongst the weapon types in a Xom bazaar,
and a 37.5% chance of seeing a regular unrand that was already risky or
chaotic enough without extra effects. Since chaos brand is actually a
relatively poor fit on weapons besides ranged or short blades or top-end
two-handers on a god that provides zero reliable emergency escape options,
the power already baked into unrands should help cover for it.

For the record, just to reiterate: absolutely do not provide this in any
contexts besides Sprints or Xom's bazaars. This is solely meant as a rare
treat for Xom worshippers in the base game.]

--------------------------------------------------------------------------------
c472126ed2 | regret-index | 2024-08-02 22:54:56 -0230

New Xom action: special bazaar banishment
The most exciting part of Xom by a decent margin are the strategic
benefits for worshipping them, since this lasts far longer than any given
moment of Xom's whims passing by to make a situation worse or better.
While direct gifts and mutations are relatively fine starting points,
there's a decent space more to do something unique, especially with only
one other god interacting with shops solely through direct player's
choices of semi-permanent dungeon fixtures.

This rare Xom action directly warps a character over to a unique Bazaar,
as long as they have a sufficient amount of gold. (For technical reasons
involving losing previous bazaar floors, this can't happen while in you're
in a Bazaar or the Abyss. Whenever you exit, you'll arrive wherever you
just were previously.) This Xom-exclusive bazaar itself contains all three
of the following heavily customized shops:

 * "Party Supplies": Potions and scrolls with some risk to the user
   (e.g. immolation, silence, ambrosia), and a small amount of debuff
   darts, both for cheap and with extra-high quantities.

 * "Affordable Mysteries": Spellbooks leaning on effects Xom directly or
   indirectly uses across the non-conjurations non-elemental schools,
   some wands, some talismans with one randart, plus a manual that
   supports one of those prior books / wands / talismans.

 * "Avant-Garde Galleria": Chaos randart weapons, small chances for
   innately risky or chaotic unrand weapons and armour, two randart
   rings with a negative resist plus either ^Contam or ^Drain, and two
   randart orbs of mayhem / wrath / guile with a chance of a randart
   scarf of harm instead.

This being done through a bazaar's shops rather than god gifting
reasonably differentiates it from other god gift upgrades (including Xom's
own untouched regular gifts), but it should hopefully feel quite distinct
and memorable and exciting when one gets the opportunity, and it should
also encourage people to try out more of riskier consumables, equipment
egos, and negative artefact properties.

--------------------------------------------------------------------------------
b3ecabcc9f | David Lawrence Ramsey | 2024-08-02 16:56:14 -0500

Improve player blindness check.
Use is_lifeless_undead() for consistency with everywhere else.

--------------------------------------------------------------------------------
f771970a14 | David Lawrence Ramsey | 2024-08-02 16:47:16 -0500

Remove stray blank line/semicolon.

--------------------------------------------------------------------------------
3c87236292 | David Lawrence Ramsey | 2024-08-02 16:27:52 -0500

Add a few more eye messages for Xom.

--------------------------------------------------------------------------------
1698bd01fb | David Lawrence Ramsey | 2024-08-02 16:18:51 -0500

Reorder Xom body part checks a bit.
Put eyes after ears, as is done in random_body_part_name().

--------------------------------------------------------------------------------
9069b2dbac | David Lawrence Ramsey | 2024-08-02 16:16:06 -0500

Remove lack of eyes from players/monsters.
Every player species/form is now assumed to have eyes.

Only undead players (not counting living vampires) are unblindable and
undazzleable. Monster vine stalkers also lose the unblindable flag.

Eyes are still available as a random body part in Xom messages.

--------------------------------------------------------------------------------
9a6a6aee9f | David Lawrence Ramsey | 2024-08-02 14:54:43 -0500

Consistently add commas to definitions.

--------------------------------------------------------------------------------
857e39b105 | David Lawrence Ramsey | 2024-08-02 14:41:50 -0500

Properly ban eye sacrifices for eyeless players.
It was done in the wrong place; Ru's sacrifice mutations are handled
differently.

--------------------------------------------------------------------------------
d77ae7e48b | DracoOmega | 2024-08-02 15:55:11 -0230

Fix ranged auto-fight behaviour with Soul Splinter (CarefulOdds)
It wouldn't properly realize you couldn't usefully cast it on a monster
that was presently soul-splintered.

--------------------------------------------------------------------------------
996240b6d9 | David Lawrence Ramsey | 2024-08-02 13:15:11 -0500

Fix comment wording.

--------------------------------------------------------------------------------
3fab5b5d33 | David Lawrence Ramsey | 2024-08-02 12:50:56 -0500

Fix comment typo.

--------------------------------------------------------------------------------
61fea11729 | David Lawrence Ramsey | 2024-08-02 12:00:25 -0500

Add a few lines to Zin angels/goblin sharpers.
Taken from an image in this Reddit thread (u/kuniqsX):
https://www.reddit.com/r/dcss/comments/1ei6m5l/5_hand_blackjack_deal/

--------------------------------------------------------------------------------
666e40ff79 | David Lawrence Ramsey | 2024-08-02 11:54:20 -0500

Fix punctuation.

--------------------------------------------------------------------------------
ec6e65acc9 | David Lawrence Ramsey | 2024-08-02 11:03:18 -0500

Add another book magic entry to artefacts.

--------------------------------------------------------------------------------
9dd00976c5 | Monkooky | 2024-08-02 00:24:10 -0500

remove auto-hit flag
this flag is entirely redundant; it is true exactly when aimed_at_feet is and 
checked exactly when aimed_at_feet is

--------------------------------------------------------------------------------
c4cf240705 | DracoOmega | 2024-08-02 02:29:43 -0230

Allow Mark of the Celebrant to trigger when djinn pay HP for spells
(If such payment lowers them below 50%)

--------------------------------------------------------------------------------
5a228cc3b6 | DracoOmega | 2024-08-02 02:29:18 -0230

Make Permafrost Eruption actually unable to miss
Since it was intended to be, and the description implies it is (as opposed
to merely being very accurate).

--------------------------------------------------------------------------------
0da81c886d | DracoOmega | 2024-08-01 02:54:10 -0230

Fix typo in god description

--------------------------------------------------------------------------------
2a28826f5c | DracoOmega | 2024-08-01 02:54:10 -0230

Fix a future mutation indicator still showing on 'A' when it shouldn't

--------------------------------------------------------------------------------
f7326234eb | regret-index | 2024-08-01 00:43:27 -0230

Vaults vaults batch (with extras)
Part of the problem of the Vaults branch is that with its level generation
focus on themeless minivaults making up the majority of every floor,
there's not very much space to actually focus on the strength of vaults as
something different from regular floor generation to notice as it stands
out. The heavy work done on differentiating V from Depths has somewhat
helped this, but for the most part, if there's no significant out-of-depth
spam it can be difficult to actually distinguish floors as floors and not
just opportunities for ironbound gimmicks to roll high and mean.

This vaults batch, aside from one themed vault and a few vaults that try to
place themselves throughout most of the game, is meant to somewhat address
this with a few relatively simple themes and a depth-scaling lua function
to help emphasize monsters the branch consistently already uses as instead
part of given themed chambers- cold storage ice boxes, parks and zoos,
charnelhouses, and intersection checkpoints for mages or ranged monsters.
They're a little more likely to place monsters than other vaults because
the depth scaling somewhat warps the capability to normally rely on normal
monster band placements, but overall few should stand out versus what
one could get already, while varying up the terrain and each game just that
little bit more.

(Also, this commit comes with a minor additional case to prevent weaponless
training dummies from interrupting rest, and also consolidating the two
"preserve_wall" and "no_wall_fixup" tags into one rather than splitting
their vault usage between the two.)

--------------------------------------------------------------------------------
4455a2a023 | regret-index | 2024-08-01 00:43:26 -0230

Green tiles (pianoman523)
The volley of thorns spell icon and a new extra-fancy altar for Jiyva,
both with heavy edits.

--------------------------------------------------------------------------------
1ee3b3fea3 | David Lawrence Ramsey | 2024-07-31 21:06:30 -0500

Mark serpent form as having a tail.
And make sure it only works for constriction, not tail-slaps.

--------------------------------------------------------------------------------
75b3d6c479 | DracoOmega | 2024-07-31 23:14:36 -0230

Fix inverted logic in refactor aux attack checks.
Players could use every aux they *didn't* have, instead of ones they did...

--------------------------------------------------------------------------------
dcd205b14f | DracoOmega | 2024-07-31 21:44:54 -0230

Make Blindness actually reduce player aux accuracy
(One of the pitfalls of it using an entirely different to-hit function...)

--------------------------------------------------------------------------------
31a074b6e7 | DracoOmega | 2024-07-31 21:44:54 -0230

Reword the names of a few aux attacks to look better in xv
Avoiding such lines as "You have 80% to hit with your claws and 75% to hit
with your claw." (This doesn't affect hit verbs, though will also affect
miss messages.)

--------------------------------------------------------------------------------
ee1fe2baa0 | DracoOmega | 2024-07-31 21:44:54 -0230

Change how aux attack accuracy is displayed
Previously, the small description of aux attack mutations would list
trigger chance, accuracy, and base damage in one block, which misleadingly
made it look like the accuracy was in some way a property of that specific
aux attack. But in fact, all aux attacks have the same accuracy and this
was just reporting the player's current to-hit with aux attacks in
*general* (a fact that was misunderstood by literally everyone involved in
a recent discussion about them) and additionally doing so using a scale
of plusses that no one had any confidence about the meaning of.

We already report player melee to-hit in monster descriptions in a
human-readable way, so I am adding a description for aux attack accuracy
there as well (if the current character has any) and removing the line from
aux mutation descriptions.

I tried to be careful that the math here was correct (there are multiple
subtle differences between how the to-hit value is used by auxes versus
normal melee attacks) but am still not 100% confident.

--------------------------------------------------------------------------------
e50eda5ae6 | DracoOmega | 2024-07-31 21:44:54 -0230

Refactor aux attack usability
Instead of a switch statement in _extra_aux_attack(), add a is_usable()
method to AuxAttackType (so that it is possible to direct query whether the
player possesses a given aux attack type outside of trying to perform them.

--------------------------------------------------------------------------------
2b9147af3d | Implojin | 2024-07-31 18:39:45 -0500

fix: Disallow zigfig use on the orb dais (Lightli)
Previously, it was possible to use a zigfig while standing on the orb dais,
resulting in the zigfig being used without a zig entrance appearing.

Here we mark the dais as "critical", hopefully preventing this and other
issues in the future.

--------------------------------------------------------------------------------
b43e308ab6 | Implojin | 2024-07-31 17:49:59 -0500

fix: tweak colours of evokers in item stacks
Following from 3b7b6a97b3 and 50297eb6a4, here we give evokers the same
treatment as the previous commit.

--------------------------------------------------------------------------------
3b7b6a97b3 | Nikolai Lavsky | 2024-08-01 01:30:45 +0300

fix: tweak colours of artefacts in item stacks
It's hard to notice artefact magical staves and artefact talismans in
big item stacks, because their glyphs are coloured in darkgrey as if
they were mundane items.

This commit fixes that, and also gives unrandarts lightcyan colour as
a followup to cf64465.

--------------------------------------------------------------------------------
5e7d71ec3a | DracoOmega | 2024-07-31 06:13:40 -0230

Let orc wizard apostles know Soul Splinter and Grave Claw.

--------------------------------------------------------------------------------
cbb58235ac | DracoOmega | 2024-07-31 06:13:40 -0230

Let monsters cast Grave Claw
Also mostly for ghosts and illusions. (Most of the code was already in
place for this to work earlier; I just hadn't done the last bits.)

Monsters, of course, are flagrant cheaters and don't have to care about
ammunition for this spell. Ghosts, at least, are probably as full of the
malice of the recently dead as they can hold.

(This means the spell description could be a little misleading with the
latter paragraph; in future I will try to find a way to fix that.)

--------------------------------------------------------------------------------
bc9fe51480 | DracoOmega | 2024-07-31 06:13:40 -0230

Let monsters cast Soul Splinter
Mostly for ghosts/illusions at the moment, though who knows if another use
will present itself in future.

--------------------------------------------------------------------------------
d9bca62529 | DracoOmega | 2024-07-31 06:13:40 -0230

Gently nerf Gravitambourine
Make it require slightly more evocations to get a radius upgrade and
decrease its Bind duration at less than ~11 evocations.

--------------------------------------------------------------------------------
e2a70cf4d0 | DracoOmega | 2024-07-31 06:13:40 -0230

Prevent Injury Bond from being cast on firewood (regret-index)

--------------------------------------------------------------------------------
afbbcc1b85 | DracoOmega | 2024-07-31 06:13:40 -0230

Make Blazeheart Golem explosion *actually* scale with spellpower.
This has been bugged since the spell was first implemented and would always
cause a 3d20 explosion regardless of spellpower (oh, the irony....). After
so long seeming to not be wildly overpowered at this level, I was a little
hesitant to nerf it to the originally-intended values, so I have moved
those upward a little. It will now reach 3d20 at 80 spellpower instead of
100 (capping at 3d22 at 100 power).

I expect it will still feel like it packs a sufficient punch (but it really
was intended to care about spellpower.)

--------------------------------------------------------------------------------
87d6e9d5b4 | DracoOmega | 2024-07-31 06:13:40 -0230

Make recasting Canine Familiar give a minor duration boost at low duration
It was possible if a familiar was already nearly expired when the player
recast it (to heal/buff them) for it to poof before even making use of
the instant attack you gave it. Now, ensure this doesn't happen by giving a
few extra turns of duration if they were almost out.

(This isn't enough to make it viable to keep them along with you at all
times, but should ensure that if you spend MP in their direction that they
will remain long enough to immediately make use of it.)

--------------------------------------------------------------------------------
df025e5179 | DracoOmega | 2024-07-31 06:13:40 -0230

Fix random rounding in Rimeblight spell description (Acrobat)

--------------------------------------------------------------------------------
c1ca0b895e | DracoOmega | 2024-07-31 06:13:40 -0230

Display hoarfrost cannon damage in Hoarfrost Cannonade description
To make it a little easier to tell how gear changes will affect your
summons' bullets without having to actually cast the spell.

--------------------------------------------------------------------------------
cde8aef498 | DracoOmega | 2024-07-31 06:13:40 -0230

Rename a couple confusing zap_types
ZAP_FLASH_FREEZE wasn't actually used by Flash Freeze, which instead used
ZAP_ICY_FLASH_FREEZE (while the former was used only by Creeping Frost).

Rename these to actually correspond to the spell that uses them.

--------------------------------------------------------------------------------
480633aa27 | DracoOmega | 2024-07-31 06:13:39 -0230

Clear the pursuers list after uncontrolled blinks/teleports
This mostly addresses the rare case of a teleport going off (or dispersal
trap being triggered) on a turn where the player had stepped away from some
monster and this translocation moving them into range of the monster when
they otherwise would not have been. (ie: it is possible to recieve an
attack of opportunity if you step away from a monster, teleport, and then
land 2 tiles away from their present location - even if you were nowhere
near the monster when you moved).

(Technically this makes the player immune to attacks of opportunity even in
cases where they were already in range and shifted only a single tile, but
that seems harmless.)

--------------------------------------------------------------------------------
b985506b0a | David Lawrence Ramsey | 2024-07-30 22:38:28 -0500

Tweak a few Xom pseudo-miscast messages.

--------------------------------------------------------------------------------
9527bbf916 | David Lawrence Ramsey | 2024-07-30 22:35:04 -0500

Reorder Makhleb mut checks.
Put them in the same order that's used elsewhere.

--------------------------------------------------------------------------------
46e0fb5215 | David Lawrence Ramsey | 2024-07-30 21:22:27 -0500

Add a few more time names to artefacts.

--------------------------------------------------------------------------------
39ff337fbb | David Lawrence Ramsey | 2024-07-30 21:14:10 -0500

Add second placeholder for Globe of Annihilation.
If the player had no Makhleb hell-mutation, it would mention drawing
power from "the Hells themselves", but have no description for the
energies produced; it now uses "hellish energy" as a placeholder there.

--------------------------------------------------------------------------------
79739bf276 | DracoOmega | 2024-07-30 22:25:53 -0230

Make Call Down Lightning a bit more visible when cast
Without a beam trail, the default animation was very brief. Let it linger
just a tiny bit longer.

--------------------------------------------------------------------------------
1adbacb195 | DracoOmega | 2024-07-30 22:24:22 -0230

Make cerulean imps more likely to speak after summoning them
I actually went in to find out why the line to make them speak was 'broken'
and couldn't actually trigger, but evidently they just had a ~96% chance to
opt to say nothing when asked. These lines feel cute enough that I think
they should be a little more common.

--------------------------------------------------------------------------------
db1a49ac58 | DracoOmega | 2024-07-30 22:20:13 -0230

Fix 'future XL mutations' key showing up all the time on 'A' (PJRamaglia)

--------------------------------------------------------------------------------
bd53a00970 | DracoOmega | 2024-07-30 21:14:37 -0230

Fix incorrect labels for local tiles paperdoll editor (inflori)
Off-by-one since Coglins added an off-hand weapon slot.

--------------------------------------------------------------------------------
ebd19936ad | DracoOmega | 2024-07-30 21:13:38 -0230

Display Makhleb's 4* Destruction upgrade on the god power screen (cfcfcfcf)
Not really happy with how hacky this code is, but it otherwise seems hard
to insert the power at the appropriate point it is gained.

--------------------------------------------------------------------------------
f4909a7c5b | DracoOmega | 2024-07-30 21:11:17 -0230

Slightly clarify a point in Mark of the Legion's description (Acrobat)

--------------------------------------------------------------------------------
b5635700b4 | DracoOmega | 2024-07-30 21:10:42 -0230

Let ?summoning work in the Crucible (Lici)
It's not really easy to scale the results of this scroll with how dangerous
the Crucible itself has scaled at any given time, but that's probably fine.

(I've included all of the non-Tyrant Makhleb servant set in the list that
the scroll can produce.)

--------------------------------------------------------------------------------
b690a713b1 | DracoOmega | 2024-07-30 21:07:39 -0230

Prevent aiming Unleash Destruction at yourself (cfcfcfcfcf)
The player couldn't be hurt by the beam itself, but would still pay the
cost for the ability and waste time.

--------------------------------------------------------------------------------
73a98bbdeb | DracoOmega | 2024-07-30 19:17:56 -0230

Display future XL-based mutations on the 'A' screen (elliptic)
This commit will make the 'A' screen display mutations that will be gained
predictably at a future XL (ie: *not* for demonspawn or base draconians,
but for all other species-based mutations).

I have attempted to word these to make it somewhat more clear that the
player does not have the mutation in question *yet* (ie: turning 'you can'
into 'you will be able to' and so forth.) Simple automatic string
replacements cannot reliably shift the tense of everything, so a custom
message to describe a future mutation can also be specified in
mutation-data.h (and this is done for a few of them, including ones that
are especially long or would be really confusing, like claiming that
vampires will 'become afflicted by vampirism' by XL 3 because bat form is
technically an uprade to the vampirism mutation...

I'm not entirely happy with the implementation, but it should still be a
mild status quo improvement.

--------------------------------------------------------------------------------
a117348762 | David Lawrence Ramsey | 2024-07-30 14:35:30 -0500

Fix punctuation.

--------------------------------------------------------------------------------
263b1d479b | David Lawrence Ramsey | 2024-07-30 14:22:50 -0500

Add demonspawn soul scholar quote.

--------------------------------------------------------------------------------
cabdb54bf2 | David Lawrence Ramsey | 2024-07-30 13:57:30 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
0340e304aa | David Lawrence Ramsey | 2024-07-30 13:56:59 -0500

Tweak a hell message.
We don't know if the player can taste things, and while there is a
can_smell() function, there's no can_taste() function, and the sense of
taste is mostly the sense of smell anyway if real-life rules apply here.

As for the player's not having blood, the blood definitely isn't theirs
in that case, so the message still works for them.

--------------------------------------------------------------------------------
cddd9a82b6 | David Lawrence Ramsey | 2024-07-30 13:39:32 -0500

Add "mouth" to Xom's list of body parts.
Also add a few messages for it.

(Also, regarding the previous commit message, all players are guaranteed
to have two arms, if not two hands [due to Ru sacrifices], so they're
all have singular and plural external body part options.)

--------------------------------------------------------------------------------
cc40c1ef04 | David Lawrence Ramsey | 2024-07-30 12:34:31 -0500

Add "muscles" to the list of internal body parts.
So an octopode (with no bones) in death-form (with no blood) has one
singular internal body part (the soul) and one plural internal body
part (the muscles), so that internal body parts always have a possible
option.

External body parts are covered in singular by the head, and in plural
by the hands, so they always have a possible option already.

--------------------------------------------------------------------------------
8c2505f567 | David Lawrence Ramsey | 2024-07-30 11:58:18 -0500

Add another gizmo modifier.

--------------------------------------------------------------------------------
cc2d2dd7b6 | David Lawrence Ramsey | 2024-07-30 11:44:11 -0500

Replace redundant gizmo entry (oops).

--------------------------------------------------------------------------------
f42772b7c7 | David Lawrence Ramsey | 2024-07-30 11:11:58 -0500

Update Xom message to account for all body parts.

--------------------------------------------------------------------------------
accad25bde | David Lawrence Ramsey | 2024-07-30 11:08:31 -0500

Add Xom messages for internal body parts.

--------------------------------------------------------------------------------
903400a49a | David Lawrence Ramsey | 2024-07-30 11:08:31 -0500

Add "soul" to the list of internal body parts.

--------------------------------------------------------------------------------
7a905b2f1b | David Lawrence Ramsey | 2024-07-30 11:08:31 -0500

Rework random body part handling.
Properly separate internal and external body parts via a flag defined in
mon-util.h, and actually include mon-util.h in mon-util.cc and xom.cc so
that it's properly defined.

--------------------------------------------------------------------------------
f36d2cfbaf | David Lawrence Ramsey | 2024-07-30 11:08:13 -0500

Add another gizmo entry.

--------------------------------------------------------------------------------
8415c405d9 | patrick | 2024-07-30 11:26:26 -0400

Add more gizmo terminology

--------------------------------------------------------------------------------
b2e4c6566d | DracoOmega | 2024-07-29 19:09:05 -0230

Remove a very tiny chance to fail to place a Duel opponent
monster::find_home_anywhere() (used as the default placement method for
transiting monsters) isn't guaranteed to actually work. It tries 600 times
to place a monster (choosing a random cell anywhere on the floor, which may
be well outside the bounds of a portal vault) and afterward just gives up.

This may be acceptable behavior for shafted monsters (though I am a little
dubious even here), but in the case of Duel it results in the Duel
immediately ending and the *next* time the player duels, that monster can
appear alongside the new one.

I'm not 100% sure this is the underlying cause of a recent bug, but it I
can't see any other obvious cause, and this definitely is *possible* (if
fantastically rare).

Anyway, just place the duel target next to the player on arrival (like with
stairs), which is more certain to work. (It will be relocated after that
time anyway.)

(Side note: monster::find_home_anywhere() doesn't appear to respect
no-tele-into either, meaning it is probably possible to shaft monsters into
display case vaults. Fixing this is somewhat non-trivial, though, since
I think the most obvious implementation would also prevent monsters from
taking stairs or hatches into no-tele-into areas as well, and I think at
least some vaults make use of this at present?)

--------------------------------------------------------------------------------
f184c26545 | DracoOmega | 2024-07-29 19:02:41 -0230

Place duel opponents properly if you have LoS range < 3 (inflori)
Duel tries to place your opponent a random 3-5 tiles away from the player,
in a spot that the player still can see. But it is possible for kobold with
scarf of shadows and Robe of Night to have LoS 2, making those two
conditions mutually exclusive. This resulted in the monster placing
'anywhere' instead, which could include in the spectator stands where it
was impossible to reach them....

Now the min placement distance will be capped by you.current_vision

--------------------------------------------------------------------------------
cea2b13a19 | gammafunk | 2024-07-29 12:05:42 -0500

fix: Remove a teleport closet (Natris,nicolae)
For nemelex_altar_shiori, some glyphs that became floor were not flagged
with `no_tele_into`.
Some glyphs inside unreachablehk

--------------------------------------------------------------------------------
38ce937ec6 | Christopher Partin | 2024-07-28 21:13:21 -0500

Update README.md
Added a link right below # How to Play to help navigate users to the
installation help documentation.

This documentation is nested under several folders. For new users or
those who aren't technically-savvy, having these installation
instructions directly in the README, under How to Play, makes sense.
That way they don't have to go searching if they run into any confusion,
which will cause frustration.

[Committer's note: Removed unneeded initial slash from link, and
reformatted commit message.]

--------------------------------------------------------------------------------
1bdf80281f | regret-index | 2024-07-28 23:05:04 -0230

Idiosyncratic earthworks (pianoman523)
New barreling boulder tiles, a more convincing Charlatan's Orb, and
something heavily repurposed into providing unique stone walls for the
Abyss. Abyss as a result has one of three different tile colours of stone
each game, which is a little weird but looks unique enough that I'm willing
to take the chance on this experiment.

--------------------------------------------------------------------------------
4efc981e7d | David Lawrence Ramsey | 2024-07-28 19:08:27 -0500

Put Makhleb's mut desc checks in the same order.
In case someone uses wizard mode to grant themselves multiple ones, the
description will be as accurate as the code is.

Also, remove a duplicate "the" from a fallback message.

--------------------------------------------------------------------------------
3abf8ce565 | David Lawrence Ramsey | 2024-07-28 18:43:01 -0500

Remove unneeded line breaks.

--------------------------------------------------------------------------------
19d7f822da | David Lawrence Ramsey | 2024-07-28 18:36:37 -0500

Also mention piercing in Hell-upgraded UD.

--------------------------------------------------------------------------------
9376fc3c60 | David Lawrence Ramsey | 2024-07-28 18:21:46 -0500

Mention how your associated Hell changes UD.
Closes #3938.

--------------------------------------------------------------------------------
a9c1aa24dc | DracoOmega | 2024-07-28 14:47:06 -0230

Fix weird typo with Infernal Servent power boost from hostiles (ge0FF)

--------------------------------------------------------------------------------
7aa91e79b9 | regret-index | 2024-07-28 06:22:01 -0230

Improve calcifying dust visibility (pisaster)
While the older calcifying dust tiles were troubled ones on an aesthetic
level, they admittedly were all quite difficult to miss- fully opaque and
mostly a colour not densely provided in most capacities. For visibility's
sake, I'm making the new tiles somewhat more filled in, brighter, more
saturated, and fully solid.

This still isn't perfect, but I'd honestly prefer more changes on other
system levels for this sort of matter anyway for other clouds, as many
other cloud tiles are much harder to see and mostly rely on not being
nearly as prominent, in much higher quantities, or both. Some sort of
not-standing-in-a-harmless-Cloud status, maybe?

(Also, I adjusted the default danger highlighting for calcifying dust
in general- its phrasing doesn't seem to account for it doing less than
one exclamation mark's worth of damage, which is very silly in its
inconsistency.)

--------------------------------------------------------------------------------
f9c04a0793 | regret-index | 2024-07-28 06:22:01 -0230

Fruit tiles (meckryl) and spider tile (pianoman523)
The cache of fruit and culicivora tiles, specifically. Both nice
improvements on accuracy and colour.

--------------------------------------------------------------------------------
03e56d13fd | DracoOmega | 2024-07-28 03:07:22 -0230

Don't display Charms/Transmutations skills in Djinn dumps (inflori)
When manually enabling spell skill training on a djinn (either for a
character type that started with it off, or toggling it off and on again
on some other character), it would enable *all* magic skills, including
those which had been removed. I don't think had much effect, since it
wouldn't train them or display them in the skill menu, but they WOULD show
up in chardumps after that point.

--------------------------------------------------------------------------------
c00c2e1e4a | DracoOmega | 2024-07-28 02:10:23 -0230

Checkwhite

--------------------------------------------------------------------------------
6854c7020c | DracoOmega | 2024-07-28 01:54:55 -0230

Fix another lua test assert
Apparently fsim.lua was turning the player into a minotaur, which caused
them to have horns by the time mutation.lua rolled around, which prevented
them from gaining antennae (and had previously only been stopped by
mut_species.lua turning them into something else first). Instead, change
into something with no *physiological* mutations to conflict with tests,
during this test itself.

(I do still wonder if an explicit test species makes sense...)

--------------------------------------------------------------------------------
6b3df5fff8 | DracoOmega | 2024-07-28 01:54:55 -0230

Improve Mark of the Tyrant's hostile summon behaviour (Lightli)
Getting a hostile demon from Infernal Servant also raises the quality of
the friendly demon you get, but with 25+ invo and Mark of the Tyrant, this
made demon qualify fall off the top of the chart and summon the default
demon (a red devil) instead.

Additionally, being able to get actual hostile fiends at the highest levels
of invo with this mark could feel overly punishing for the player's
investment, so let's cap hostiles to the same level that they would be at
high invo without having this mark.

--------------------------------------------------------------------------------
a89054ee6c | DracoOmega | 2024-07-28 01:54:55 -0230

Raise Formicid translocation aptitude to +2
After felid and spriggan's massive +4 translocations apt, virtually no
other species in the game has better than 0 (aside from +1 for Deep Elf and
Barachi, who have positive apts with virtually every magic). I find the
idea of a species who cannot translocation *themselves* being otherwise one
of the most adept at using it to be amusingly paradoxical, and there are
multiple high level spells now that a formicid would be very happy to cast
(even while still lacking access to the low-level bread and butter of the
school, which I think could create some interesting tension.)

Let's see how it feels.

--------------------------------------------------------------------------------
3a655b3292 | DracoOmega | 2024-07-28 01:54:54 -0230

Fix a crash with killing an enemy with the 1st of 2 retaliation attacks
More specifically, with killing one via minotaur retaliatory headbutt when
the executioner blade aux from Mark of Execution was active. It would try
to retaliate a second time, after the monster was dead.

--------------------------------------------------------------------------------
fafa18294e | DracoOmega | 2024-07-28 01:54:54 -0230

Tweak some mutation lua tests
There are now no species in Crawl without any innate mutations at all, so
it is not possible for the lua tests to rely on any playable species not
having any.

In fact, it turns out that mutation.lua *already* silently relied on you
being a species with no innate mutations, even though that had stopped
being true by default since humans were changed, and it was only due to
'cleanup' at the end of a previous test in the default ordering that it
didn't assert. (ie: it would already assert if you ran the test on its own)

I've changed mut_species.lua to restore the player to the species they were
at the start of the test rather than to any specific species (this feels
closer to the idea of 'cleanup' to me and is what is currently done with
the player's position.)

As for mutation.lua, I changed the asserts to only ensure that NON-innate
mutations are cleaned up (this was only done during random mutation tests
anyway, and not ones that cared about mutation conflicts). If we really
want to ensure a blank slate of innates for the purposes of tests, I think
we would be better off either creating a method specifically for this
pupose or a vanilla species specifically to be used for tests only (and
thus not depending on vagueries of design changes over the years).

--------------------------------------------------------------------------------
766c39c706 | DracoOmega | 2024-07-28 01:54:54 -0230

Give Deep Elves innate increased MP regen
Deep Elves are the last remaining species without anything unique about
them besides numbers - even humans have a neat special gimmick now! And
while they are a fairly popular and extremely iconic species for pure
casters, many skilled players consider them to be on the weak side even
within their own domain - their skills at magic simply not outweighing
their fragility. While winrate should not be a primary concern with
species design (cf. mummies!), I think this is a case where it's possible
to make them a little stronger and also a little more fun without
fundamentally affecting how they play to anyone who enjoys their current
incarnation - something minimally intrusive that will make them better at
specifically the thing they are already chiefly associated with doing.

And I firmly believe everyone likes having a little something they can
point at about a species they like and say "This is a thing they can do
that no other species can!" Let's try giving Deep Elves one of those
things!

(And given the positive reaction that was voice dabout a previous changelog
update that falsely claimed this change had already been made, I suspect
many people will be happy to see it.)

--------------------------------------------------------------------------------
f17e09bd7d | DracoOmega | 2024-07-28 01:54:54 -0230

Make tides look a little better around some pseudo-walls (regret-index)
While trees and statues are 'solid', they don't actually visually occupy
all of their tile, and having the tide in Shoals make a hard cut off around
them looked kind of bad. This generally looks much nicer.

--------------------------------------------------------------------------------
dce7167cdc | DracoOmega | 2024-07-28 01:54:54 -0230

Don't let Vessel of Slaughter be dispelled
It would even immediately throw the player into the Crucible if an enemy
did this!

--------------------------------------------------------------------------------
b58bf77696 | DracoOmega | 2024-07-28 01:54:54 -0230

Don't crash on using Vessel of Slaughter in Sprint
This one *does* potentially allow 'stalling' in Meatsprint specifically,
but Djinn warpers having Vhi's is probably more balance-affecting than this
is (and what *is* Meatsprint balance, anyway?) I don't expect it should be
problematic in other ones).

--------------------------------------------------------------------------------
cfb98ad842 | DracoOmega | 2024-07-28 01:54:54 -0230

Re-enable Duel in Sprint
There were some past concerns about it affecting the balance of certain
sprints by letting the player duck out of situations that were never
intended to allow a breather, but the current version of Duel mostly
doesn't allow using it to stall. It seems like it should be fine to me.

--------------------------------------------------------------------------------
3ada536caa | DracoOmega | 2024-07-28 01:54:54 -0230

Mildly reduce Soul Splinter's power
This has been a well-liked and effective spell, but might be a little bit
TOO effective. This lowers its health by ~30% and decreases its damage a
little when extracted from enemies with more than 2 HD.

--------------------------------------------------------------------------------
d8249b9959 | DracoOmega | 2024-07-28 01:54:54 -0230

Prevent recasting Soul Splinter on a monster with a wisp already out
Or at the very least, say that they're not susceptible and prevent it from
working (being beam-targeted makes it a little hard to outright prevent it
from being cast in the direction of an ineligable monster). This prevents
the current wierdness of it making weakness wear off the target when you
recast it (as well as strange message ordering).

Additionally give better messages when the wisp doesn't form due to a lack
of adjacent space (and likewise don't auto-target an enemy in such a
position).

--------------------------------------------------------------------------------
c485ba435c | DracoOmega | 2024-07-28 01:54:54 -0230

Refactor and simplify how monsters follow the player across stairs
The code that handled determining which monsters would follow with the
player when they took stairs or transporters had some opaque and
complicated behavior which may have once served an important purpose, but
enough of the game has changed around it that I think a simpler and more
intuitive method could be better.

Namely: friendly monsters could follow the player from up to 5 tiles away
from the staircase, but only so long as they were connected in a contiguous
chain, and *only* if there was not a single non-friendly monster adjacent
to the player at the same time (at which point the max distance allies
could be pulled from was 1). Note that 'non-friendly monster' in this case
included PLANTS. So merely being near a plant would cause you to leave
allies behind which you'd normally expect to follow you.

Note also that this chain didn't care about line of sight, so you could
pull along things around multiple corners, just so long as they were all
touching each other.

There was additional behavior of flagging monsters as MF_TAKING_STAIRS even
when we knew they *couldn't* take stairs, just so they could count as links
in that chain to allow access to stair-taking allies who might be behind
them, and needing to juggle separate return values for whether that flag
*really* meant they were taking the stairs or not. (Also, if one of them
broke the chain during transit, the rest of your allies wouldn't arrive...)

The original stated purpose of this code was to prevent zombies and summons
from blocking perma-allies behind them from travelling with the player, but
in the time since it was written, interlevel-recall was added and most
perma-allies removed from the game. There just isn't a compelling need for
this additional complexity anymore, in my opinion.

The new logic is: stair-using allies can follow from 3 tiles away (so long
as the player can see them) and adjacencies don't matter. MF_TAKING_STAIRS
should now only be used for monsters who are *actually* taking the stairs,
and determining followers can be done via a simple radius_iterator instead
of a sort of breadth-first search.

This does allow you to pull allies that are clearly not adjacent to the
you through transporters, which are instant, but it's not like the previous
logic ever pretended the monsters were walking multiple tiles into the gate
under their own power in a single turn anyway. I think it should be fine.

(I have also fixed a few other minor bugs at the same time, such as it
being possible to seperate Dowan and Duvessa if one of them gets confused
after you start taking the stairs but before you finish.)

Finally, since we no longer need to keep non-stair-using allies alive
during the entire transit process merely to determine which monsters WILL
transit, I have moved the code to kill such summons before it, which can
help with certain bookkeeping.

--------------------------------------------------------------------------------
f8c9cd62c2 | DracoOmega | 2024-07-28 01:54:54 -0230

Fix being unable to fire Unleash Destruction through plants
This was because Unleash Destruction lacks piercing before 4* and the
zap type used for the tracer in this case wasn't actually defined (and the
logic was backwards anyway...)

This fixes #3941

--------------------------------------------------------------------------------
c1c50dc342 | DracoOmega | 2024-07-28 01:54:54 -0230

Don't claim that battlespheres and boulders are 'summoned allies'
When you leave them behind by taking the stairs.

Battlesphere already has its own messages and I doubt anyone would expect
a tumbling boulder to follow them down the stairs at any rate.

--------------------------------------------------------------------------------
f1d1f664bd | DracoOmega | 2024-07-28 01:54:54 -0230

Expire friendly summons upon leaving a level instead of returning to it
This makes bookkeeping for a number of things easier (since summoners can
be notified that their summons expired while they're still on the same
floor as each other instead of possibly never) and I think it more
intuitively fits what the player would expect to happen anyway.

I have slightly simplified the relevant code after moving it to remove
cases I don't think matter anymore (ie: there are no more Yred perma-allies
that *aren't* bound souls). One trivial behavioral change is that if you
leave summons behind and then immediately return to the floor you just
left, you won't see any clouds of translocational energy left behind where
they were standing. I don't think this really matters.

--------------------------------------------------------------------------------
a12b9cfa14 | David Lawrence Ramsey | 2024-07-27 20:01:54 -0500

Remove soul-ripe check for Yred lit torch kills.
Killing a ripe soul apparently bypasses the lit torch kill routine
entirely when it becomes a bound soul.

--------------------------------------------------------------------------------
344574098c | David Lawrence Ramsey | 2024-07-27 19:47:19 -0500

Use the possessive for Yred souls/Beogh donors.
Also ensure that unseen kills with the black torch unlit use "a" instead
of "the", as is done for such kills with the black torch lit.

--------------------------------------------------------------------------------
a15a51717f | DracoOmega | 2024-07-27 14:26:07 -0230

Fix the Crucible of Flesh's branch description not displaying properly.

--------------------------------------------------------------------------------
83ca460988 | DracoOmega | 2024-07-27 14:24:19 -0230

Fix Makhleb (and Veh/TSO...) heal-on-kill chance (Acrobat)
Due to an issue with bracketing in 6009e8ebb8f3537a9b757f7d46b1154c4f9f549e
the heal chance didn't smoothly scale between 1* and 6*, but rather
remained at 30% at 1* until jumping suddenly to 80% at 6*. This should fix
that.

--------------------------------------------------------------------------------
d116fae4fa | DracoOmega | 2024-07-27 14:06:51 -0230

Slightly clarify some code regarding kills by Dith shadow mimic
Since the revamp, shadow mimic no longer tries to pretend it has the
player's MID, so I'm pretty sure it's not necessary to seperate this logic
(and the comment is outdated at any rate).

--------------------------------------------------------------------------------
1ab59e17f5 | DracoOmega | 2024-07-27 14:06:51 -0230

Make Dimensional Bullseye default targeter prefer the most distant enemy
Instead of defaulting to the closest (which is often pointless). The hope
is this is a very minor improvement to QoL when using this spell
frequently.

--------------------------------------------------------------------------------
75a34a4cac | DracoOmega | 2024-07-27 14:06:51 -0230

Have Beogh-pacified Orc drop their equipment upon leaving level (Acrobat)
Automatically pacifying orcs who were wearing equipment the player wanted
could be a sometimes-frustrating experience for Beogh worshippers. The
heavy penance Beogh exacts for attacking neutral orcs was intended to
discourage the deeply unflavorful act of murdering your converts to steal
their stuff, but in practice it was still sometimes possible to body-block
their exit from the level and find something else to kill them for you.

I'm not sure exactly how often this was practical, or how commonly players
actually did this, but at the same time I don't know that 'randomly lose
access to a monster's items from time to time' is an especially interesting
thing to try and preserve. So now pacified orcs will simply drop all their
items when they leave the level.

I've tried to flavor this in the most sensible way I could think of (since
one assumes they're not completely giving up the sword to live in the woods
and still have a use for those items themselves!). But you *are* the
possible messiah after all...

--------------------------------------------------------------------------------
5b40a6c5d3 | DracoOmega | 2024-07-27 14:06:50 -0230

Make Arachne's band actually place
Due to this oversight, Arachne's band had *never* placed after she was
moved outside of Spider, and somehow this never got reported despite her
description and dialogue repeatedly mentioned this presence. >.>

The multiple buffs she recieved were done under the assumption that her
band had been spawning properly all along, but let's see how she performs
now that they have finally been reunited.

--------------------------------------------------------------------------------
1bfce1397b | David Lawrence Ramsey | 2024-07-27 10:59:45 -0500

Adjust Crucible of Flesh branch naming.
The short name shouldn't have an initial "The" (so the Place: entry
doesn't display "a The Crucible"), and the full name shouldn't have its
initial "The" capitalised (so artefacts named after it don't have a
capitalised "The", as artefacts named after other branches don't).

--------------------------------------------------------------------------------
85759862ca | David Lawrence Ramsey | 2024-07-27 09:46:08 -0500

Fix punctuation.

--------------------------------------------------------------------------------
26e724702a | David Lawrence Ramsey | 2024-07-27 09:24:02 -0500

Don't display Makhleb abilities w/o descriptions.
Only brand 1 has an associated god ability description.

Attempting to display brand 2 or 3 will erroneously add a "None." to the
the end of Makhleb's god abilities list, so skip doing that.

Closes #3937.

--------------------------------------------------------------------------------
59ecee1589 | David Lawrence Ramsey | 2024-07-27 08:47:33 -0500

Remove redundant code.
Dith's behaviour in describe_god_powers() is the same as the default.

--------------------------------------------------------------------------------
139e194fa2 | regret-index | 2024-07-27 00:48:33 -0230

Some experimental projectile & cloud effect tile placeholders
These new tiles are mostly meant to try and reduce Crawl's use of the
exact same single cyan blast for effects themed after translocations,
metal, lightning, and necromantic effects, alongside a few others.
These new effects are for:

 * Metal Splinters (using roctavian's Sandblast)
 * Splinterspray and Volley of Thorns (also using that Sandblast)
 * Force Lance (using snw-0's spell icon for Force Lance)
 * Harpoon Shot (using roctavian's Stone Arrow and Iron Shot effects)
 * Ghostly Fireball (using unused Warp Weapon, Guardian Statue, and
                     Kitsune tiles by Denzi, jpeg, and amcnicky)
 * Calcifying Dust (using snw-0's seething chaos clouds)

(The Ghostly Fireball looks a little weird for a fireball but fine for a
negative energy effect, and that spell already probably should be joined
back to other negative energy themes if it's not going to have the healing
effect- even will-o-the-wisps didn't end up becoming undead. This still
leaves out Flashing Balestra and Momentum Strike in terms of keeping the
blast mostly for lightning effects, but I don't know what to use for the
former and the latter is part of a couple different effects that should be
adjusted to actually draw the beam at all times instead of only when it
misses.)

--------------------------------------------------------------------------------
51ccf8c654 | gammafunk | 2024-07-26 22:12:33 -0500

feat: Extend and clean up a clua debug function
For `crawl.stack()`, allow passing a coroutine as an argument, so that
we can examine its stack instead of the current clua one. This is
necessary for debugging something like qw, which wraps its main
execution in a coroutine. I use standard lua functions for checking when
an argument is a lua "thread" (lua's terminology for coroutines) and
converting a coroutine into a lua state. The approach used in this
commit is modeled on what the `debug` library `stacktrace()` function
does to examine coroutines, as seen here:

https://github.com/crawl/crawl-lua/blob/master/src/ldblib.c#L99

I've tested this with qw, and it works as expected.

This commit also removes the request in the call `lua_getinfo()` for the
number of upvalues, since this isn't used. It also fixes up and
completes the lua documentation of `crawl.stack()`.

Resolves #2677.

--------------------------------------------------------------------------------
3a32abd9b4 | mgdelmonte | 2024-07-26 22:03:11 -0500

Add `crawl.stack` function to return the current Lua stack.
Committer's Note: Squashed a subsequent bugfix commit that used snprintf
since we use a fixed-length buffer. There were concerns expressed in
the #crawl-dev channel about allowing introspection from clua, but
after looking over this implementation I think it's fine. The `debug`
lua library supplied by lua itself does far more than what this simple
stack printing function is doing, and probably needs to remain
unavailable from clua. The debug information gathered by `crawl.stack`
is as minimal as possible, it can only ever look at clua state, and it
only ever obtains basic strings about each function's activation record
as supplied by the `lua_Debug` struct.

--------------------------------------------------------------------------------
c4896267e4 | David Lawrence Ramsey | 2024-07-26 11:19:32 -0500

Add another Donald line for new Makhleb.

--------------------------------------------------------------------------------
35137aee6f | DracoOmega | 2024-07-26 12:40:34 -0230

Add a default force_more for Makhleb offering Marks (ge0FF)

--------------------------------------------------------------------------------
7459a598b3 | DracoOmega | 2024-07-26 12:23:52 -0230

Fix indentation

--------------------------------------------------------------------------------
3eb02839ad | DracoOmega | 2024-07-26 12:23:51 -0230

Don't let the player use Vessel of Slaughter while a vessel of slaughter
While the instant damnation blast makes this potentially useful, and it
doesn't even extend duration (thus delaying the Crucible), it's not the
most intuitive thing and was never intentional.

(Also properly mark the ability as disabled inside the Crucible, rather
than merely have it abort on using.)

--------------------------------------------------------------------------------
1eedee072e | DracoOmega | 2024-07-26 12:23:51 -0230

Fix %s falsely claiming Vessel of Slaughter gives 'half damage' (ge0FF)
A remnant from an earlier iteration.

--------------------------------------------------------------------------------
b0f3c1772e | Nikolai Lavsky | 2024-07-26 17:46:44 +0300

fix: don't brand self with a buggy note description
Also, remove an unnecessary space and full stop for consistency with
other `perma_mutate()` and `temp_mutate()` calls.

--------------------------------------------------------------------------------
a2252a6852 | David Lawrence Ramsey | 2024-07-26 08:36:09 -0500

Add more comma fixes (ge0ff).

--------------------------------------------------------------------------------
796cbfd0a2 | David Lawrence Ramsey | 2024-07-26 08:28:35 -0500

Fix wrapping.

--------------------------------------------------------------------------------
309b93d907 | David Lawrence Ramsey | 2024-07-26 08:28:35 -0500

Fix wording.

--------------------------------------------------------------------------------
a62e944755 | David Lawrence Ramsey | 2024-07-26 02:23:56 -0500

Fix typo.

--------------------------------------------------------------------------------
5e83875c39 | David Lawrence Ramsey | 2024-07-25 23:57:48 -0500

Fix incorrect comma in inexperienced mutation.

--------------------------------------------------------------------------------
f333cd237d | David Lawrence Ramsey | 2024-07-25 23:57:04 -0500

Revert one more incorrectly added comma (DracoOmega).
This partially reverts commit d8dc43ca6bb7975a14134bd797f78f8a4c8ebf60.

--------------------------------------------------------------------------------
fff831dfa0 | DracoOmega | 2024-07-26 02:18:20 -0230

Fix a crash upon using Vessel of Slaughter (Lightli)
This one is sort of amusing, since it didn't crash for me locally. But
apparently if you try to call zappy to fill out a beam struct for a zap
with no player defined hit/damage values, and are in wizmode, it will
*silently* replace those empty values with the monster equivalent zap. But
outside of wizmode, it will not (and then promptly assert due to not having
any values).

And of *course* I do my testing and development in wizmode... >.>

--------------------------------------------------------------------------------
e40bc53d54 | David Lawrence Ramsey | 2024-07-25 23:46:29 -0500

Revert some incorrectly added commas (DracoOmega).
This partially reverts commit d8dc43ca6bb7975a14134bd797f78f8a4c8ebf60.

--------------------------------------------------------------------------------
cde62734c2 | DracoOmega | 2024-07-26 02:00:49 -0230

Fix missing Vessel of Slaughter ability (Lightli)

--------------------------------------------------------------------------------
dde1e95dc1 | David Lawrence Ramsey | 2024-07-25 23:22:30 -0500

Add another ghost line for new Makhleb.

--------------------------------------------------------------------------------
faf5e19491 | DracoOmega | 2024-07-26 01:33:07 -0230

Flag Brand Self abilities as hurting the player
This may not be a sufficiently emphatic warning for how much they hurt,
but it's at least better than claiming they cost nothing. (And is about
the same as what Kiku's Brand Weapon With Pain ability says.)

--------------------------------------------------------------------------------
4064a0edb0 | David Lawrence Ramsey | 2024-07-25 23:01:36 -0500

Update a few Donald lines for new Makhleb.

--------------------------------------------------------------------------------
7e27316db8 | David Lawrence Ramsey | 2024-07-25 22:48:55 -0500

Add another Makhleb executioner line.

--------------------------------------------------------------------------------
e8675a7101 | David Lawrence Ramsey | 2024-07-25 22:42:42 -0500

Rewrap Fugue status description.

--------------------------------------------------------------------------------
08024717e7 | David Lawrence Ramsey | 2024-07-25 22:42:04 -0500

Add comment regarding now-unused ability flag.
So it can be more easily reused.

--------------------------------------------------------------------------------
d8dc43ca6b | David Lawrence Ramsey | 2024-07-25 22:39:05 -0500

Fix typos/spelling/wording/punctuation.

--------------------------------------------------------------------------------
fd94369f82 | DracoOmega | 2024-07-25 23:22:04 -0230

Fix tag upgrade build

--------------------------------------------------------------------------------
fed0f14cea | DracoOmega | 2024-07-25 22:56:49 -0230

Update Makhleb powers description a little

--------------------------------------------------------------------------------
54559aaebc | DracoOmega | 2024-07-25 22:56:49 -0230

Save compat code for existing Makhleb worshippers
Will set up the selection of Marks, as well as confer a random destruction
flavour if they're already at 4* or above.

--------------------------------------------------------------------------------
718c1bd059 | DracoOmega | 2024-07-25 22:56:49 -0230

Nudge up Unleash Destruction's cost and damage

--------------------------------------------------------------------------------
c22535738f | DracoOmega | 2024-07-25 22:56:48 -0230

Add a note and milestone for accepting Marks from Makhleb

--------------------------------------------------------------------------------
30a9add2dc | DracoOmega | 2024-07-25 22:56:48 -0230

Add icons for Makhleb Mark mutations/abilities (regret-index)

--------------------------------------------------------------------------------
2c43a06e4e | DracoOmega | 2024-07-25 22:56:48 -0230

Rename destruction flavour mutation enums

--------------------------------------------------------------------------------
07fbe39955 | DracoOmega | 2024-07-25 22:56:48 -0230

Makhleb capstone: Mark of the Fanatic
The most flashy and complex mark by far, this grants the player the
Vessel of Slaughter ability - a high piety-cost ability that transforms
them into a demonic avatar of Makhleb and unleashes a large blast of
damnation around themselves as they do so.

While in this form, the player has demonic resistances (including torment
immunity), will invulnerability, takes 1/3rd less damage from all sources,
recieves doubled healing from kills, and has a bonus to all outgoing damage
proportional to how low health they were when they activated the ability
(with the expected healing from damnation kills encouraging the player to
'push their luck' a little).

But in exchange, once the transformation wears off, the player will be
dragged into the Crucible of Flesh and made to suffer and slay in payment.

The Crucible is a medium-size portal arena that continually spawns waves of
hostile demons (scaled to the player's level and also how many runes they
have collected beyond 3) and paralyzed mortal victims. The player must earn
their exit by finding and slaughtering enough of these victims (killing
demons also counts for half as much, but the faster the player can manage
it by taking out 'helpless' targets, the less bad things will be for them.)
Killing a mortal victim will immediately spawn another somewhere else on
the map, while demons instead arrive at semi-regular intervals (up to a
cap).

Kills in the Crucible grant no xp or items, but still count for Makhleb's
heal-on-kills passive, to help allow the player to sustain themselves
(since resting will often be difficult here). There are also a small number
of single-use teleport traps scattered around which the player can use for
short-term escapes.

In some ways, the gameplay of the Crucible is reminiscent of being
banished, but should still be sufficient different as to be distinct - the
map is pre-revealed and stable, it has walls instead of being endless, the
monster set is more controlled, ?teleport works the same as usual, etc.

A fundamental flavor aspect of Mahkleb's Marks is about accepting hellish
bargains at the cost of oneself, and I felt like at least one of them
should lean as hard as possible into classical 'deal with the devil'
flavour: tremendous power at a cost one may come to regret later. And
Vessel of Slaughter's power is undeniable, and its cost unique. I hope
people find it fun! (I am sure various numerical knobs will need tweaking,
since this is a complex double-edged effect and it should both feel worth
it AND dangerous).

(I also plan to replace Makhleb wrath with use of the Crucible so that we
can fully eliminate all the unsatisfying direct-damage wrath effects that
tend to either do nothing or kill the player with little counterplay).

Massive credit to regret-index for designing the portal vault (with heavy
subvaulting randomization), as well as the Crucible wall tiles and tiles
for slaughter form. Couldn't have done this without her.

--------------------------------------------------------------------------------
182a3b3928 | DracoOmega | 2024-07-25 22:56:48 -0230

Mahkleb capstone: Mark of Atrocity
This Mark increases both the power and cost of the player's Unleash
Destruction ability each time it is used consecutively (ie: without doing
anything else inbetween). Upon using it a 4th time, it will also unleash
4 additional empowered bolts of destruction at random distant targets and
reset this buff.

Some of the additional cost is in flat HP, making this slightly better in
relative terms on high HP species.

--------------------------------------------------------------------------------
a31ef7ce32 | DracoOmega | 2024-07-25 22:56:47 -0230

Mahkleb capstone: Mark of Execution
Allows a fragment of an executioner to rest dormant inside oneself.
Whenever you kill an XP-granting enemy in melee, there is a 1-in-8 chance
for it to awaken and manifest their iconic whirl of blades around the
player. For the duration, the player gains rampaging and a very good aux
attack (whose base damage scales with XL) which also triggers upon the
player dodging (like minotaur retaliatory headbutts).

The duration of this status effect is very brief, but it does not expire
for actions that the player spent attacking (allowing one to keep it up
indefinitely as long as they keep swinging).

--------------------------------------------------------------------------------
21b3c34ece | DracoOmega | 2024-07-25 22:56:26 -0230

Refactor melee aux attack handling slightly
This is to allow performing an individual specific aux attack without
needing to perform all the rest of the attack round at the same time.

There should be no functional change caused by this commit.

--------------------------------------------------------------------------------
6638cf3674 | DracoOmega | 2024-07-25 22:56:24 -0230

Makhleb capstone: Mark of the Celebrant
Whenever a player with this mark is reduced to 50% or less HP, they
unleash a flurry of blood arrows aimed randomly at nearby enemies (at least
one per enemy, though if there are fewer than 8, it may shoot at the same
enemy up to twice, with the remaining shots scattered randomly).

Rather than a time-based cooldown, the passive recharges immediately when
the player returns to full HP again - which in some situations might even
happen due to Makhleb's healing in a protracted battle. To help this
slightly, kills made with these blood arrows will always trigger Makhleb's
healing passive.

Given that it is effectively 'easier' to trigger and recharge with less max
HP, and provides an immediately response to help stabilize after spike
damage, it is expected this will be relatively more appealing to lower HP
/ EV-based characters than Marks which rely on paying flat HP instead.

--------------------------------------------------------------------------------
33c4ccffdb | DracoOmega | 2024-07-25 22:32:52 -0230

Remove a couple outdated comments (and some irrelevant code)
Exploding spores haven't made monsters beneath themselves in a long time,
and likely won't again (certainly not in this manner, at any rate.)

--------------------------------------------------------------------------------
06b347fab1 | DracoOmega | 2024-07-25 22:32:52 -0230

Makhleb capstone: Mark of Haemoclasm
This mark gives a passive 10% chance whenever the player kills a monster
themselves for it to explode in a violent rain of gore, damaging enemies in
a 3x3 area. The damage the explosion does is proportional to the max hp of
the thing killed (and cannot harm the player or their allies). If an enemy
dies to this explosion, they instead have a 100% chance to explode,
allowing for occasional dramatic chain explosions (especially if the player
has been using AoE damage sources up to this point, which likely gives it
additional synergy with axes and conjurations).

--------------------------------------------------------------------------------
ecea4f0a1a | DracoOmega | 2024-07-25 22:32:52 -0230

Different tiles for each flavor of Destruction (regret-index)

--------------------------------------------------------------------------------
9c19790104 | DracoOmega | 2024-07-25 22:32:52 -0230

Mahkleb capstone: Mark of Annihilation
Replaces Infernal Servant with Globe of Annihilation, which launches an
iood-like projectile that explodes in a large blast of the player's
signature destruction. It moves at speed 15 (so about half the speed of an
iood), and the size of the explosion increases with the distance travelled:
no explosion (and only 1/2 damage) at point-blank range, radius 1 at 1 tile
travelled, 2 at 2-3 tiles travelled, and finally 3 at 4+ tiles travelled.

Part of the logic of this replacing servant is that while this is a
destruction-flavored ability, I didn't want it to completely eat up having
a 'free' conjurations button of flexible elements with something much more
expensive and less flexible. And it wouldn't play very well with servants
anyway, so the loss might not be that meaningful. (I considered it simply
being a 3rd ability, but at the moment am saving that for something a bit
flashier; I could be convinced otherwise, with testing.)

--------------------------------------------------------------------------------
07ef8100c4 | DracoOmega | 2024-07-25 22:32:51 -0230

Makhleb capstone: Mark of the Legion
This mark replaces the player's Infernal Servant ability with Infernal
Legion, which gives a status that summons many short-lived demons near the
player over time instead. These demons are weaker (equivalent to using
Infernal Servant with approximately 1/2 of your Invocations skill), and
the ability itself is much more expensive. They will only be summoned while
at least one enemy is nearby.

This mark also allows you to fire Destruction through your allies without
harming them (since they now have a much greater tendency to get in the way
at all times), which has some additional synergy with other player builds
as well.

--------------------------------------------------------------------------------
d15373d040 | DracoOmega | 2024-07-25 22:32:51 -0230

Mahkleb capstone: Mark of Carnage
This mark changes how the player's Infernal Servant operates. Instead of
summoning a demon near the player, it instead summons that demon adjacent
to a random visible enemy and causes a 5x5 burst of destruction where it
appears. This burst uses only the 'characteristic' types of the player's
Unleash Destruction ability (ie: fire/lava if you have Geh, acid/metal
splinters if you have Dis) and cannot inflict damage on either the player
or your other allies.

--------------------------------------------------------------------------------
f17db963b2 | DracoOmega | 2024-07-25 22:32:51 -0230

Makhleb capstone: Mark of the Tyrant
This mark improves the player's Infernal Servant ability, especially at
very high invocations.

Summoned servants have duration 6 instead of 4, and at 19+ invocations it
starts to become possible to summon the other tier 1 demons (with hell
sentinels needing ~26) at an additional piety cost. Whenever the player
kills an enemy on their own, a random active servant will be buffed with
one of: haste, might, brilliance (if they have spells), or regeneration.

--------------------------------------------------------------------------------
258319946a | DracoOmega | 2024-07-25 22:32:51 -0230

Add code framework for gaining Infernal Marks
This adds the basic backend for gaining Makhleb's new capstone gift - one
of a selection of Makhleb-specific mutations that grant powerful passive
effects and/or change how your Makhleb invocations work.

At 6*, the player will be offered a choice of 3 different Marks (out of
however many exist - currently planned at 9). Selecting one of these will
permanently brand the player with it (injuring them greatly in the
process...) and give them its effect for as long as they worship Makhleb.
The mark will persist as a mutation, even if they abandon the god, but will
not actually function unless they start worshipping them again (this
prevents any possibility of abandoning to reroll your mutation
possibilities, and it's also good flavour that you have to live with the
consequences of your actions here.) Forms which normally suppress mutations
will not suppress these.

(They also cause silver vulnerability - despite otherwise being
perma-mutations, they are clearly demonic in origin and ought to count.)

None of the marks included in this commit *do* anything yet; that will come
in future commits.

--------------------------------------------------------------------------------
2cd86a2a38 | DracoOmega | 2024-07-25 22:32:51 -0230

Merge Lesser/Greater Servant abilities into Infernal Servant
As part of the Mahkleb revamp, both demon summoning abilities are being
merged together. Infernal Servant is still obtained at 3*, is priced
between the two previous abilities, and the quality of demon summoned is
now strongly influenced by invocations (and sorted roughly in order of
strength, so that it requires more invocations to get executioners and
balrugs than other 2s, for instance.)

The variety of demons it can summon is expanded to include red devils, ice
devils, rust devils, soul eaters, sun demons, and sixfirhy, while losing
neqoxecs (which were very weak as allies and unpleasant as enemies).

Hostile demons are no longer produced by failing to use this ability, but
instead there is a flat 1-in-6 chance that any use of it will produce a
durably summoned hostile demon *alongside* your friendly one - along with a
small increase in quality of the friendly demon summoned at those times.
The hope is this preserves some of the 'deal with a devil' flavor of the
ability while making it less correct to 'use at the start of battle and
then ?tele if you get a bad roll'.

--------------------------------------------------------------------------------
ac1edcbc3a | DracoOmega | 2024-07-25 22:32:51 -0230

Greatly simplify demon summoning from Obsidian Axe
With Mahkleb servant summoning changed, the last remaining code using
cast_summon_demon() and _summon_demon_wrapper was the Obsidian Axe. This
code still retained support for summoning hostile and temporarily-friendly
demons (the latter not used since player Summon Greater Demon's removal by
f16e6d0322db59044e3995c94cea1b2b62393fd3 ) and imps, almost all of which
was unused. The Obsidian Axe doesn't need most of that, so I folded a
simpler version directly into the artefact function itself.

It should work largely the same as before this commit, with only a very
minorly different chance of summoning a 3 vs. 4, and always at duration 6
instead of something like a ~90% of being duration 6.

--------------------------------------------------------------------------------
02c4a77254 | DracoOmega | 2024-07-25 22:32:50 -0230

Merge Minor/Major Destruction into Unleash Destruction
Mahkleb was the last god remaining who had a minor/major split among
abilities doing largely the same thing (and where the lesser of those
eventually becomes almost entirely obsolete as the game goes on.) It makes
some sense to merge them to create more room for other exciting toys at
higher piety levels.

But even though Major Destruction had the lowest piety cost among all
abilities in the game that cost piety, Minor Destruction literally cost 0
and there can be a powerful psychological difference between 'free' and
'only almost free'. Some players liked having an ability they could use
without long-term cost! But the same time, having something 'freely
spammable for limited effect' has some design awkwardnesses, so let's try
leaning into the HP cost even more (which is flavorful for Makhleb, and can
counterbalance the ability being free in the short-term while still having
no *strategic* cost).

At the same time, let's introduce a little more chaotic diversity from run
to run by having 4 different 'flavours' of Unleash Destruction (themed
after each of the Hells) and granting the player a random one of these when
they first hit 4* with Makhleb (ie: the same threshold that previously
granted Major Destruction.)

Unleash Destruction now costs more HP (which scales with the player's max
HP) and no longer relies on existing unrelated zap types (which caused
periodic issues when one of those was changed, and also made it difficult
to even tell what Destruction's average damage was). In its base form, it
selects between Fire, Cold, Electricity, and Negative Energy (all dealing
the same damage) and is non-piercing. All 4 of the upgrade mutations give
it piercing, replace one of these elements with a different thematically-
appropriate one, and add an additional property to a base element. In full:

Gehenna Destruction:
 -Fire (which inflicts rF-), Lava, Lightning, Negative Energy

Cocytus Destruction:
 -Cold (which inflicts Frozen), Ice, Lightning, Negative Energy

Tartarus Destruction:
 -Fire, Cold, Negative Energy (with bonus damage!), Devastation

Dis Destruction:
 -Fire, Cold, Lightning, Acid, Metal Splinters
  (It gets a 5th, since the Negative Energy that gets swapped out is
   the most frequently useless of the base types and Acid is arguably best)

Hopefully this revamped Destruction feels suitably relevant both early and
later, a least a little distinct from other blasty invocations such as
Qazlal's by being piety-free but self-destructive, and gives a touch more
variety between runs.

(The player character now also produces blood around themselves whenever
they use this or any other Makhleb invocation, as another touch of
flavour.)

--------------------------------------------------------------------------------
0afb396884 | Nikolai Lavsky | 2024-07-26 00:15:17 +0300

fix: treat artefacts with Reflection as unusual items
The `unusual_monster_items` option is case-sensitive, so the default
"reflect" value matched only non-artefacts.

--------------------------------------------------------------------------------
0624b5bc0c | advil | 2024-07-25 14:48:33 -0400

fix: correctly call job-gen.py in Makefile
The #! line in this script is the best option, but it's still not going
to solve every configuration. In build scripts, it's best to rely on the
Makefile's configuration, not the #! value.

--------------------------------------------------------------------------------
342958b4cc | David Lawrence Ramsey | 2024-07-25 13:24:26 -0500

Decouple being a draconian and lacking hair.
All draconians are now explicitly flagged as lacking hair.

--------------------------------------------------------------------------------
2eaa09f63e | David Lawrence Ramsey | 2024-07-25 12:59:30 -0500

Use species::skin_name() for flesh peoperly.
Check for pluralisation as the species::skin_name() comments suggest.

--------------------------------------------------------------------------------
3489c0331a | Implojin | 2024-07-25 12:31:48 -0500

fix: Draw ghost backgrounds in webtiles
This was left out of 767fb09e7d. Thanks again to index for her tiles work
here, this seems like a nice improvement!

We're missing an unusual background tile for ghosts, but there should
be no way for ghosts to have unusual items with the current code anyway:
I've defaulted unusual ghosts to have the regular unusual highlight just
to let this codepath work properly in the future.

--------------------------------------------------------------------------------
786527281b | David Lawrence Ramsey | 2024-07-25 12:18:39 -0500

Describe flesh as "skin" by default.
To match species::skin_name() when possible.

--------------------------------------------------------------------------------
c59282bd5f | David Lawrence Ramsey | 2024-07-25 12:14:42 -0500

Actually describe gargoyles' skin as stone.
At the species level. This matches statue form as well.

--------------------------------------------------------------------------------
db40d755ae | David Lawrence Ramsey | 2024-07-25 12:00:47 -0500

Properly describe gargoyle "flesh" as stone.

--------------------------------------------------------------------------------
47babdb9eb | David Lawrence Ramsey | 2024-07-25 11:58:33 -0500

Fix comment typo.

--------------------------------------------------------------------------------
a6c389bb27 | David Lawrence Ramsey | 2024-07-25 11:43:05 -0500

Fix flesh name handling.
species::skin_name() is not guaranteed to be either singular or plural,
so take a cue from expiring petrification and use "flesh". Use "stone"
if we're actually petrified.

--------------------------------------------------------------------------------
f0725ce4dc | David Lawrence Ramsey | 2024-07-25 11:14:48 -0500

Properly account for form wrt bandages.
Currently only mummies have bandages, and can't be transformed into
something without them, but check just in case.

--------------------------------------------------------------------------------
93245fa936 | David Lawrence Ramsey | 2024-07-25 11:07:55 -0500

Add flesh to random body parts.

--------------------------------------------------------------------------------
cb7f57b3ea | David Lawrence Ramsey | 2024-07-25 10:10:34 -0500

Properly separate singular/plural body part msgs.

--------------------------------------------------------------------------------
f64ed195ed | David Lawrence Ramsey | 2024-07-25 09:59:49 -0500

Add another Xom tail message.

--------------------------------------------------------------------------------
b0289f24ba | David Lawrence Ramsey | 2024-07-25 09:57:41 -0500

Adjust a Xom tail message.

--------------------------------------------------------------------------------
b31574310d | David Lawrence Ramsey | 2024-07-25 09:54:47 -0500

Add Xom random body part pseudo-miscasts.

--------------------------------------------------------------------------------
a3dc3e8338 | David Lawrence Ramsey | 2024-07-25 09:45:56 -0500

Split out body part msgs into their own function.
Also separate them into singular and plural options.

--------------------------------------------------------------------------------
2c1b039590 | David Lawrence Ramsey | 2024-07-25 07:38:54 -0500

Shorten -Gavotte status description.

--------------------------------------------------------------------------------
5617537c2f | David Lawrence Ramsey | 2024-07-25 00:47:53 -0500

Remove obsolete Stiff status description.

--------------------------------------------------------------------------------
f366dc3c9d | David Lawrence Ramsey | 2024-07-25 00:47:53 -0500

Add missing -Gavotte status description.

--------------------------------------------------------------------------------
767fb09e7d | regret-index | 2024-07-25 02:36:53 -0230

More adjustments to ghost visibility
While adjusting the opacity of ghosts is somewhat reasonable, it also
heavily diminishes them actually being ghosts, due to their tile otherwise
relying heavily on player paper doll tiles, so I'd like to try a bit of
a different approach that also addresses one of the core awkwardnesses
of ghosts varying heavily versus players over time.

Regardless of one's threat display settings, all ghosts now have an
wavering gradient overlay aura matching their threat level. This should
also help with ghost visibility, while additionally emphasizing them a
bit more dramatically than just being a player doll tile but harder to
see. (This has the weird side-effect of such an aura wavering if one
levels up mid-fight, but clearly they're just being intimidated by the
player's power.)

--------------------------------------------------------------------------------
a15e480964 | David Lawrence Ramsey | 2024-07-24 21:24:51 -0500

Give felids tails (only cosmetic).
Such tails don't do tail-slapping, and can't grow stingers either.

Since the felid tiles all show tails, and there's nothing indicating
they're e.g. Manx types.

--------------------------------------------------------------------------------
c0dcec2120 | David Lawrence Ramsey | 2024-07-24 21:12:46 -0500

Use booleans instead of numbers in has_tail().

--------------------------------------------------------------------------------
3df9983ad0 | David Lawrence Ramsey | 2024-07-24 21:02:09 -0500

Account for player tails in Xom/body part msgs.

--------------------------------------------------------------------------------
353f8a747c | David Lawrence Ramsey | 2024-07-24 20:45:01 -0500

Remember that players generally have heads.
Add "head" to the list of random body parts, since we assume in other
messages elsewhere that all players have heads.

--------------------------------------------------------------------------------
55c3cb5494 | David Lawrence Ramsey | 2024-07-24 20:27:11 -0500

Add another acrobatic move to Xom dances.

--------------------------------------------------------------------------------
3ba28113cd | David Lawrence Ramsey | 2024-07-24 20:17:54 -0500

Add @random_body_part_external@.
This is the same as @random_body_part@, except that it leaves out blood
and bones. (If a species with external blood and/or bones is added, it
will obviously need to be adjusted for them.)

Make Xom use it in clone drop messages, so that mirrors don't get
smashed over parts of the player that should not be on the outside.

--------------------------------------------------------------------------------
6575a434b8 | David Lawrence Ramsey | 2024-07-24 20:07:42 -0500

Account for missing a hand in random body parts.

--------------------------------------------------------------------------------
8bde0a30e5 | DevJac | 2024-07-24 19:44:33 -0500

Distinguish explore mode deaths from Felid deaths
By adding a note for the former.

[Committer's note: Adjusted commit message.]

--------------------------------------------------------------------------------
5e739b3c72 | David Lawrence Ramsey | 2024-07-24 18:35:15 -0500

Add another mythical creature to artefacts.

--------------------------------------------------------------------------------
081d225295 | Aliscans | 2024-07-24 18:22:55 -0500

Improve wrapping for monster_item_view_coordinates.
The "monsters in view" display wraps long lines. It ignored
monster_item_view_coordinates when calculating this (except with local
tiles), so missed the ends of some lines. It no longer does.

--------------------------------------------------------------------------------
d8bda1bd53 | Implojin | 2024-07-24 15:46:09 -0500

Slightly improve ghost visibility
Player ghosts were kind of difficult to see in tiles and webtiles,
especially Op ghosts, which tended to easily blend with their vault
backgrounds. This commit slightly increases the alpha of ghost tiles:
r-i had mentioned possibly adding an aura to these to improve visibility
as well. More to come in a future commit?

--------------------------------------------------------------------------------
6bbb805001 | David Lawrence Ramsey | 2024-07-24 10:39:50 -0500

Keep the petrified from bleeding (Implojin).
If they're petrified, they don't have blood.

--------------------------------------------------------------------------------
ab7c848782 | David Lawrence Ramsey | 2024-07-24 10:20:55 -0500

Fix merfolk fishtail checks wrt feet (Implojin).
The fishtail should override mutations, and is independent of form, so
it needs to go before the mutation check and the usual form check.

--------------------------------------------------------------------------------
4a3ce621dc | David Lawrence Ramsey | 2024-07-24 10:16:28 -0500

Disallow gaining blood w/form changes (ge0ff).
So gargoyles/djinn will still be bloodless regardless.

This means that no form uses FC_ENABLE for has_blood anymore. (Unless we
eventually add a hypothetical blood elemental or the like, which would
need it by definition.)

--------------------------------------------------------------------------------
3eefd6cc51 | David Lawrence Ramsey | 2024-07-24 09:50:37 -0500

Fix body part checks for forms (#3935).
Don't erroneously fall through and use the species body part if the
current form doesn't have it.

Also, actually use form_has_feet() instead of only checking for the
merfolk fishtail.

Closes #3935.

--------------------------------------------------------------------------------
1d9136647e | David Lawrence Ramsey | 2024-07-24 07:47:53 -0500

Fix spelling (sulfur -> sulphur) (Graveyardigan).

--------------------------------------------------------------------------------
0c0b0355b8 | David Lawrence Ramsey | 2024-07-23 18:08:41 -0500

Fix spelling.

--------------------------------------------------------------------------------
d06570b3e2 | regret-index | 2024-07-23 20:26:15 -0230

New Alchemist starting-screen icon (Darby)
Venom Mage's spider was better than the encircled half-box Transmuters
used by being more material, but something a little more specifically
alchemical like this nice potion is fairly better for it. Now if only it
didn't take until L8 Conjurations / Alchemy to get a potion-themed spell.
(There's always next version....)

--------------------------------------------------------------------------------
6311a4899b | regret-index | 2024-07-23 19:04:02 -0230

New Xom action: wave of despair
Xom already copies a variety of potions as one of the most common effects
granted to the player, so why not also some of the more tactically
interesting scrolls? In particular, one of the tension spells is using
a much weaker version of a consumable, so it's a good idea to make it
a little more recognizably distinct.

This new rare beneficial action is meant to be dramatic in a different
sense than prior debuffs or destruction by combining a few effects
together at once. After Xom tells a spooky story, inanimate skeletons pop
out, and the ensuing wave of horror halves will, then drains, then fears
everything else in sight. The Will/2 state lasts fairly longer than the
fear, making it so stabbers can use other hexes if possible once they
start chasing the player again, and also applies to the player, so there's
still some risk around the right monsters as Xom should always readily
wield.

(To help make this a bit more visible, I added a quick Will/2 status icon
derived from the current scroll of vulnerability icon.)

Consequentially, Cause Fear has been replaced in the Xom tension spells
list with Dazzling Flash (which is weak, but not much weaker than Small
Mammals already is) and Summon Blazeheart Golem (which has a cute
"suddenly handed a bomb" mechanical capacity).

--------------------------------------------------------------------------------
7af4bb0ebb | regret-index | 2024-07-23 17:33:16 -0230

New Xom action: friendly + hostile clone drop
Another hostile Xom effect meant to naturally inherently scale and vary
across games in a relatively straightforward fashion while providing
further variety, this rare Xom effect differs from other hostile summons
by giving you a free ally! Unfortunately, it's outnumbered- this effect
summons brief two hostile illusions and one friendly illusion, with the
single real player balancing these teams.

While ghost-illusion code continues to lag behind on ranged characters and
early spellcasters for more important uses of it- Nemelex's Illusion card,
player ghost vaults, and Mara each- Xom cloning the player imperfectly in
this notably rare action should feel reasonably fine with Xom's chaotic
malevolence anyway. (Having both friendly and hostile copies should make
it feel reasonably different than any of those circumstances, also).
Part of its rarity includes 1: being only done with other monsters around,
so there's any incentive to fight with the free ally if possible, and 2:
actually having a maximum tension cap, so that the illusions don't get
overshadowed by other ways one might be dying anyway.

--------------------------------------------------------------------------------
b48ef885c9 | David Lawrence Ramsey | 2024-07-23 14:52:07 -0500

Fix typo.

--------------------------------------------------------------------------------
1cace68bb9 | DracoOmega | 2024-07-23 17:21:15 -0230

Give the orb dais a proper feature type name (ge0FF)

--------------------------------------------------------------------------------
b95f67303f | David Lawrence Ramsey | 2024-07-23 14:47:54 -0500

Unbrace

--------------------------------------------------------------------------------
a363cd56c6 | DracoOmega | 2024-07-23 17:12:41 -0230

Don't ever claim the orb dais is '(summoned)' (ge0FF)
Using a terrain change effect on top of the dais wouldn't change it, but
would still place a map_terrain_change_marker there, resulting in Crawl
confusingly claiming that the pre-existing feature had been 'summoned'.

Now just don't place a marker there at all.

--------------------------------------------------------------------------------
5f6dd93176 | DracoOmega | 2024-07-23 17:12:41 -0230

Remove an unnecessary use of item_def::is_critical()
I believe this was once to prevent Xom from making you drop critical items
from your inventory, but all that would do now is print a harmless flavour
message about the item (and since runes and the orb were goldified, I don't
think it even does this anymore!)

--------------------------------------------------------------------------------
83d8b1f7ab | DracoOmega | 2024-07-23 17:12:41 -0230

Mark gems as critical items (ge0FF)
A little light future-proofing against them potentially being destroyed by
terrain changes.

--------------------------------------------------------------------------------
44e0ba907c | Implojin | 2024-07-23 14:28:17 -0500

fix: don't hide the orb in console
The orb dais feature was preventing the orb from being drawn in console.
Easy enough to fix!

--------------------------------------------------------------------------------
f20c09c4ad | DracoOmega | 2024-07-23 15:16:09 -0230

Remove a now-unused include

--------------------------------------------------------------------------------
dfbe08ab73 | DracoOmega | 2024-07-23 15:04:19 -0230

Place the Orb of Zot on an untransformable dais
When b22d4219adc6 was done to address Hellfire Mortar cheese, I didn't
fully consider all the different effects that might cause the orb to be
displaced without the player anticipating this. While it's arguable that
Xom starting the orb run without warning is just Xom being Xom, it also
seemed likely that casting Summon Forest near the orb could randomly do so,
as well as Imprisoning a monster adjacent to the orb, and likely other
things.

Starting the orb run unexpectedly is a nasty surprise, so instead of doing
that whenever the orb is displaced by (possibly unintentional) terrain
changes, let's just veto all terrain changes beneath the orb's original
location entirely (by giving it a special pedestal feature that is immune
to such things).

--------------------------------------------------------------------------------
16c7f17c50 | DracoOmega | 2024-07-23 14:55:57 -0230

Don't be content with shifting items into closed doors
When trying to relocate an item because the terrain beneath it changed, any
'traversable' square that doesn't destroy automatically destroy items (ie:
lava) was considered an adequate place to put them. But closed doors are
considered traversable only because they *can* be opened, not because they
aren't solid right now.

--------------------------------------------------------------------------------
a91aa3b054 | DracoOmega | 2024-07-23 14:54:09 -0230

Don't let Xom door rings destroy items
It was only intended that the door push items out of the way, rather than
destroy them altogether.

This fixes #3932

--------------------------------------------------------------------------------
4f39dfde82 | David Lawrence Ramsey | 2024-07-23 08:19:09 -0500

Add another noisy hell message.

--------------------------------------------------------------------------------
d1fa21d13b | Neil Moore | 2024-07-22 21:45:15 -0400

Fix extra percents.

--------------------------------------------------------------------------------
81e4515041 | Neil Moore | 2024-07-22 21:41:30 -0400

Re-arrange artefact weapon animal names.

--------------------------------------------------------------------------------
922ebfbbec | Neil Moore | 2024-07-22 21:29:11 -0400

Add more insects and other crustaceans as artefact names.
[skip ci]

--------------------------------------------------------------------------------
262b726ed5 | Neil Moore | 2024-07-22 19:32:53 -0400

Add amphibians to randart names.
The section supposedly half-devoted to them didn't have a single one.

[skip ci]

--------------------------------------------------------------------------------
0219e330f3 | Neil Moore | 2024-07-22 19:05:25 -0400

Add some arachnids and reptiles as artefact names.
[skip ci]

--------------------------------------------------------------------------------
ebc898e6fd | David Lawrence Ramsey | 2024-07-22 17:55:20 -0500

Add another bird name to artefacts.

--------------------------------------------------------------------------------
3dcc86864f | Neil Moore | 2024-07-22 18:51:07 -0400

Add more ratites.
Especially emus, who famously managed to defeat a military expedition.

[skip ci]

--------------------------------------------------------------------------------
c53ba1435b | Neil Moore | 2024-07-22 18:43:55 -0400

Add more birds to artefact names.
A few of which, but not most, are native to Australia.

Also, move "Fulmar" to be in correct alphabetical order.

[skip ci]

--------------------------------------------------------------------------------
f39ece730e | regret-index | 2024-07-21 19:12:25 -0230

* All three of Xom's divinations are now crunched together into one    effect. 
Each individual component frozen in time doesn't really provide    much for 
useful strategizing, and this also helps those with less    spoilers tell where 
vaults are by adding creatures to the magic    mapping. (Also, detect creatures 
using only creature genera is kinda    funny anyway.) In exchange, these 
divinations are slightly less likely    to occur, swapping positions with the 
already-enticingly-variable    and scaling tension spells.
 * Xom's sticky ignition, divine lightning, force lance fleet, tension
   spells, and friendly / hostile monster summons all now softly scale
   with runes 5 through 15 so Xom is more noticeable throughout extended.

 * Xom's ally and hostile summoning now also gets rare bunyips and
   always-chaos-branded reapers, since the top end needs a bit more
   variety overall and the latter combines the undead + demon options
   reasonably nicely. Hostile summoning in general has also been tweaked
   again: more distance if you're in wrath with less monsters (as the new
   upgrades have been a bit aggressive sometimes), and less distance
   without wrath (as it's a little too easy to run away otherwise).

 * Xom's decor list now includes one-use teleport traps, since it
   coincides with other translocation Xom effects and it provides a bit of
   interesting upside to have a few to fall back upon, without ever
   interrupting full level connectivity in a troublesome fashion.

 * Xom's fake shatter now drops some sparse large rocks for decorative
   purposes and other Xom vault correspondence, as well as a consolation
   prize for Oni and Trolls.

 * A variety of Xom's rarer good actions are now slightly more likely to
   happen, period, to compensate for the list of new actions making it
   less likely Xom will give strategic benefits like items or good
   mutations. Ideally nearly all of _xom_chooses_good_action and severity
   alike would be completely revised for a regular random weighting
   function, while strategic effects would be collected up and timed
   entirely seperately of Xom's random tension-tracking actions
   (incidentally also dealing with xomscumming at the same time), but for
   now, Xom acting slightly more often is fine since over a third of Xom
   actions have been freshened up and made more variable at this point.

--------------------------------------------------------------------------------
1273c59209 | dependabot[bot] | 2024-07-21 20:30:08 +0200

Bump zipp in /crawl-ref/source/webserver/requirements
Bumps [zipp](https://github.com/jaraco/zipp) from 3.18.1 to 3.19.1.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.18.1...v3.19.1)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
--------------------------------------------------------------------------------
abeaff3f86 | Medrano83 | 2024-07-21 18:48:40 +0200

Update Android SDK - API level 34
Starting August 31, new apps and app updates must target Android 14
(API level 34) to be submitted to Google Play.

https://support.google.com/googleplay/android-developer/answer/11926878

--------------------------------------------------------------------------------
bf73d41ef1 | Implojin | 2024-07-21 09:42:24 -0500

Fix a teleport closet in water_maze_lemuel
Looks like this was a minor oversight in d77652238, we were trying to place
a hatch and some teleport scrolls here without a corresponding glyph.

--------------------------------------------------------------------------------
1906822081 | David Lawrence Ramsey | 2024-07-20 13:42:52 -0500

Add another gizmo entry.

--------------------------------------------------------------------------------
91f3fefd7d | David Lawrence Ramsey | 2024-07-20 13:41:32 -0500

Fix spelling.

--------------------------------------------------------------------------------
ca01da35c6 | patrick | 2024-07-20 14:17:32 -0400

Increase Coglin gizmo-related vocabulary
After consulting with a consortium of Coglin engineers, we have
learned a great deal about their technology, and accordingly we
have been able to expand the technical language used in Crawl to
describe their magnificent gizmos.

In other words, I added a few entries to gizmo.txt, including both
real-world technical jargon and technobabble memes. Just a few.

Some of the names thus generated may seem redundnant -- it's possible
to get, say, an "autoautomatic autolator" -- but remember that
Coglin technology is very advanced, and their terminology must be
very precise to include all the nuances of meaning, which sometimes
appears as redundancy to lesser minds. Thank you for understanding.

--------------------------------------------------------------------------------
2a440f7bdf | regret-index | 2024-07-19 21:08:43 -0230

Ever-continuous widespread vault review
Of note:

 * A few undying armouries have been snuck into a few Crypt ends, as
   they're 1: undead, 2: a bridge between the various constructs old Crypt
   ends used before Crypt had more undead and the undead in Crypt, and
   3: work well with vampires as several Crypt end sets try to make work
   despite the vampire presence in Depths. They're only in a few of these
   vaults, so they'll still mostly stay highlights of V:$ and Cerebov's
   level, regardless.

 * _qazlal_generations has become another rare D:$ depths entrance vault.

 * sewer_co_15_rooms now actually provides a potion of enlightenment to
   enter its center room, and grunt_spider_rune_island no longer can roll
   a chance to need flight or digging to acquire its rune.

 * volcano_pools has been adjusted to make it so no starting positions
   can see the main center eruption point, so people quickly diving into
   a volcano and then resting up won't be engulfed in flames.

 * Troves that focused on jewellery now also provide a pair of random
   talismans with increased randart weighting the lower tier they are, to
   help out shapeshifters without excessively increasing the value of
   troves for most other characters otherwise. This matches up with
   talismans being sold in jewellery shops.

 * One evocations trove designed before evokables became singular items
   also now also provides talismans and higher overall wand quality, and
   a trove that focused on providing four weapons each of four different
   brand now uses Lua to place much higher quality equipment than before
   (but still has no guarantees it matches up with one's own weapon
   skills). For the record, we should avoid using "any weapon" in troves
   without either heavy Lua or as a weighing down of "acquire weapon",
   because "any weapon" loves constantly going for D:1 kobold and goblin
   gear.

 * Two nearly-or-literally identical Ziggurat entries were crunched
   together, and a quick new one was added for variety's sake.

--------------------------------------------------------------------------------
20967cede3 | Nikolai Lavsky | 2024-07-19 16:56:54 +0300

fix: time out a few more statuses when returning to a level
Continuing from 116ff8c4a, make a few more monster enchantments time out
while the player is off-level.

Affects most noticeably the Snake Pit and Elven Halls, where the player
could return to a previously visited floor and find that buffs of nearby
monsters didn't expire after hundreds of turns.

--------------------------------------------------------------------------------
3cb1da796b | David Lawrence Ramsey | 2024-07-18 22:18:35 -0500

Add missing -GClaw status description.

--------------------------------------------------------------------------------
b744d034b2 | David Lawrence Ramsey | 2024-07-18 15:51:31 -0500

Add another Xom flora message.

--------------------------------------------------------------------------------
41f0f79244 | David Lawrence Ramsey | 2024-07-18 13:15:48 -0500

Document holy/unholy brand wielding changes.

--------------------------------------------------------------------------------
3d9f9bc62a | David Lawrence Ramsey | 2024-07-18 10:11:50 -0500

Add another substance name to artefacts.

--------------------------------------------------------------------------------
74a7a6101b | David Lawrence Ramsey | 2024-07-18 10:06:54 -0500

Drop "THE_" from the Enchantress' enums.
Since the other monsters with "the" names don't include it.

--------------------------------------------------------------------------------
2231033d06 | David Lawrence Ramsey | 2024-07-18 09:48:14 -0500

Make unique_name() handle the Enchantress.

--------------------------------------------------------------------------------
c619bd7f2a | David Lawrence Ramsey | 2024-07-18 09:48:14 -0500

Fix indentation.

--------------------------------------------------------------------------------
ea9f75d149 | David Lawrence Ramsey | 2024-07-18 01:40:29 -0500

Add another colour to the database.

--------------------------------------------------------------------------------
bcf935ffba | patrick | 2024-07-17 23:42:44 -0400

Add a quote for Magic Dart

--------------------------------------------------------------------------------
071218b31a | regret-index | 2024-07-17 23:24:07 -0230

Make tension track more statuses from both players and monsters
For the most part, the tension formula hasn't been adjusted since e11a346
fourteen(!) years ago. It's an extremely imprecise formula in a multitude
of ways- it doesn't know the actual attack or spell ranges of any given
monsters, anything about monster support capacities, the path and presence
of spell components like clouds or ramparts or prisms, the players' and
the monsters' resistances, and so on and so forth. It somewhat works as a
very simple way to track the density of hostile monsters present versus
one's own health, but would be quite burdensome to make be actually
reasonably good at guessing much more than that.

As a result, we've tried to use it for less and less actually meaningful
roles over time. Currently it's most prominent for reasonably informing
Xom of when to act, whether or not to forbid Beogh's apostle challenges,
and if a vault warden should close a given door or not, all of which are
reasonably relevant enough that they should reasonably work regardless of
how little we'd want to use tension elsewhere.

While I'm not pushing for making tension actually become more unweighty
and lengthy, it's currently already supporting a number of enchantments
on players and monsters, and an update for all of the particularly
dramatic new effects added over the past 14 years should be reasonable
to quickly work into what already exists. (For reference's sake, slow
counts for x1.5 tension, being netted or webbed is x2 tension, and
of course none of this matters if there's nothing hostile in sight.)

 * Players with corrosion get a scaling multiplier for each point of
   corrosion they have on them.
 * Players at 10% or lower mp adds a x1.125 multiplier.
 * Player mesmerization and fear adds a x1.2 multiplier.
 * Players that are fragile, have the -Potion status, or the -Scroll
   status get a x1.33 multiplier.
 * Players that are marked, attractive, unable to cast due to Sap Magic,
   in bat form, or in wisp form get a x1.5 multiplier.
 * Players in fungus, pig, or tree form get a x1.66 multiplier.
 * Monsters that have brilliance or are armed by an undying armoury get
   a x1.25 multiplier.

(The only particularly controversial point here is most likely MP, but
most gods use MP for invocations even on non-spellcasters, tension is
fuzzy anyway, and most reliable mp drainers should have some reasonable
threat to them also, so it's probably fine. There's a long list of
absent bits here- sticky flame and poison are the most conspicuously
absen-, but this probably shouldn't go for much else not added here,
since most of the above are player-option-limiting in some obvious
dramatic fashion or another.)

Since most of what relies on tension is both invisible and randomized for
most players, this shouldn't be too concerningly gameable or complex.
Zapping one's self with polymorph, drinking attraction, and drinking
lignification are all now technically options for grabbing Xom's
attention or delaying an apostle challenge, but this is quite
unlikely to make things net better than if one did not in fact do any of
these things. The player also could have just hurt themselves instead
to get the same rough circumstances change. What this does mean,
however, is that Xom should feel fairly more proactive in a wider number
of scenarios and Beogh will send challengers in less awful situations,
which is plenty enough gain for both gods to probably be worth a page's
worth of easily-adjustable and easily-removable checks.

(Others may quibble about these exact values. Future commits may change
any of these multipliers' strength.)

--------------------------------------------------------------------------------
a06d8ee8d1 | regret-index | 2024-07-17 20:36:29 -0230

Adjust each Serpent of Hell
The Serpent of Hell hasn't changed much since 06872b5, which lets even an
extended-only unique of four manifestations provide reasonable statistical
data for assessment It also means the context of the Hells has changed
around them a fair bit around them, and while we don't need to make every
Hell be competively close to one another, it does highlight a few strange
bits. In particular, the Tartarus Serpent uses corrosion despite the fact
Dis directly uses such multiple times, and the Gehenna Serpent lagging
behind the others is more pressing now that Gehenna fell behind the other
hells with the 0.28 hells overhaul.

This commit adjusts most of the Serpents' potential breaths:

 * Tar: Bolt of Draining 🡲 Ghostly Fireball, Corrosive Bolt 🡲 Poison Arrow
This frees up Corrosive Bolt for Dis, while leaning a little on the poison
attacks of putrid mouths plus the extra miasma in the branch since the 0.28
overhaul. In exchange, since Bolt of Draining directly out of the Serpent's
mouth hasn't killed anybody in 15 versions, that's swapped out with Ghostly
Fireball to let it at least skip EV.

 * Dis: Metal Splinters 🡲 Corrosive Bolt, Crystal Spear 🡲 Iron Shot
The hell that automatically corrodes those who enter should be the hell
with the Serpent that breathes corrosion. Caustic shrikes already made it
valuable to keep rCorr on anyway, so it shouldn't be too worriesome to
upgrade. Crystal Spear has been swapped out for Iron Shot to deal flatly
less damage, with the range difference not matter too much due to each
serpent being speed 14.

 * Geh: Flaming Cloud 🡲 Bolt of Magma
Flaming clouds don't scale at all with the rest of the game, so the breath
attack barely matters in the Hell one is most likely to have fire
resistance in. Magma at least is partially irresistable, without being
quite as devastating as Damnation is.

Also, the Cocytus and Gehenna Serpents now get equal health with the other
two Serpents (from ~280 HP to ~323 HP), since those are the two worse
performing Serpents and they're already more than differentiated enough
on most other levels. The Dis Serpent, meanwhile, loses a little AC
and EV, mostly to help subdue Dis that little bit more and compensate
for the Metal Splinters replacement.

(This does mean the Cocytus one keeps the strangely low-power Freezing
Cloud breath, but it's getting a health buff here and its Flash Freeze
was buffed by both a0a6642 and f3e26c5, so its broader term stats
should probably equal out over more time.)

--------------------------------------------------------------------------------
b72f62450a | regret-index | 2024-07-17 18:16:46 -0230

Give ?/b a tile for Arena
Just Okawaru's altar, which is kind of silly but fairly less silly than
showing off a question mark for a place that uniquely doesn't have a
normal regular entrance feature for it.

--------------------------------------------------------------------------------
0268064b0c | regret-index | 2024-07-17 17:47:06 -0230

Add "any hex wand" shorthand
This lets vaults and wizmode use the seed's hex wands slot with
"any hex wand" like "any beam wand" and "any blast wand" do, which
seems to have been accidentally left behind when c28e0ee left out
what 376ae5a and a4b73df did.

--------------------------------------------------------------------------------
ad30c92003 | David Lawrence Ramsey | 2024-07-16 16:53:09 -0500

Tweak "Brilliance"'s deescription again.
Specifically mention the dark energy instead of saying "it"; "it" could
erroneously refer to the weapon instead.

--------------------------------------------------------------------------------
a504a9fe27 | David Lawrence Ramsey | 2024-07-15 23:08:22 -0500

Fix typo.

--------------------------------------------------------------------------------
b736c3cf91 | David Lawrence Ramsey | 2024-07-15 22:38:57 -0500

Fix the message naming unique simulacra (#3887).
Use the species name for uniques in such messages. If you make simulacra
out of the Enchantress, you get Enchantress-shaped blocks of ice that
turn into spriggan simulacra; make the message reflect this.

This also avoids problems with naming simulacra after uniques with names
starting with "the".

Closes #3887.

--------------------------------------------------------------------------------
7c789dabc8 | David Lawrence Ramsey | 2024-07-15 22:19:24 -0500

Fix some Enchantress naming issues (#3887).
As a monster with a name starting with "the", she was only handled
properly in name_zombie(). She wasn't handled properly in either monster
naming or polymorphed monster naming;

Although there has to be a better way than hardcoding it for all those
cases.

--------------------------------------------------------------------------------
30ed0ade3c | David Lawrence Ramsey | 2024-07-14 16:20:27 -0500

Simplify Xom pseudo-miscast feature checks.
Use feat_is_statuelike() and feat_is_tree() for the cases where they
apply.

Accordingly, rename the Xom message key "Xom feature statue" to "Xom
feature statuelike".

--------------------------------------------------------------------------------
86621e3b08 | David Lawrence Ramsey | 2024-07-14 16:15:07 -0500

Fix comment typo.

--------------------------------------------------------------------------------
e9b8def293 | David Lawrence Ramsey | 2024-07-14 13:10:25 -0500

Vary the number of times Xom makes you do stuff.
Always using three is boring. Vary from two to six instead.

Also use this for the number of extra fingers Xom makes gloves grow.

--------------------------------------------------------------------------------
5bdad0bed3 | David Lawrence Ramsey | 2024-07-14 12:46:45 -0500

Add more dance moves to Xom messages.
Accordingly, handle hand and foot substitutions in such messages.

Hand(or whatever)stands may get a bit odd for certain types of @hand@,
but... it's Xom.

--------------------------------------------------------------------------------
665319e8ad | David Lawrence Ramsey | 2024-07-14 12:25:06 -0500

Rename Xom message key from "two eyes" to "eyes".
To make it match the other pairs-of-body-parts tags.

--------------------------------------------------------------------------------
1bc7ac4a97 | David Lawrence Ramsey | 2024-07-14 11:45:18 -0500

Add purple vine stalker player base tiles.
For a little more variety. These are just palette-tweaked versions of
the red ones.

--------------------------------------------------------------------------------
3abdcd505c | David Lawrence Ramsey | 2024-07-14 09:28:54 -0500

Add Xom pseudo-miscast messages for trees.

--------------------------------------------------------------------------------
41815e7850 | David Lawrence Ramsey | 2024-07-14 09:09:07 -0500

Simplify atropa blindness checks.
We only need to check for blindness resistance once, whether player or
monster.

--------------------------------------------------------------------------------
815c66556a | David Lawrence Ramsey | 2024-07-14 08:59:32 -0500

Fix blinding-related crash (NormalPerson7).
Don't treat the player as a monster if they can't be blinded.

--------------------------------------------------------------------------------
0dbcb5d558 | David Lawrence Ramsey | 2024-07-13 20:28:44 -0500

Add a few more types of evil to artefacts.

--------------------------------------------------------------------------------
1e61e2beae | David Lawrence Ramsey | 2024-07-12 23:21:10 -0500

Add a few acrobatic moves to Xom's dances.

--------------------------------------------------------------------------------
c1d8bbef5d | David Lawrence Ramsey | 2024-07-12 23:07:28 -0500

Add another microorganism name to artefacts.

--------------------------------------------------------------------------------
2721c5bb2a | elliptic | 2024-07-12 13:36:13 -0400

Allow randart launchers to have chaos or holy brands (rarely)
It wasn't clear to me why these were forbidden - chaos is a possible result
from brand weapon scrolls on launchers and TSO can holy brand launchers,
so there's no implementation concern at least. The weight here has been
taken from speed (now 75% as common as it used to be) and antimagic (now
50% as common as it used to be).

The remaining forbidden brands on randart launchers are venom, protection,
pain, spectral, and distortion. For reference, here are some brief arguments
for why each of those should probably remain forbidden:

- venom: would encourage a lot of kiting, since venom weapons max out monster
poison quickly
- protection: defenses are less relevant/interesting when at range
- pain: ranged is awkward with necromantic allies since can't shoot through
them
- spectral: positioning is less interesting than with melee, and the
spectral weapon is less likely to take damage from monsters
- distortion: currently even Lugonu is forbidden from disto-branding a
launcher - would turn one of distortion's major downsides, blinking monsters
away, into an advantage

--------------------------------------------------------------------------------
99b34a318c | patrick | 2024-07-11 20:05:13 -0400

Update Big Baal Hell's to use artprops
Specifying armour randarts with egos gives display bugs; the ego
property gets listed twice. Fix that by using the artprops feature
for what it was meant for: generating randarts with a specific
property (that randarts are supposed to have).

While I'm here, make all the gear into randarts, not merely
good_item, and touch things up in a few other places.

--------------------------------------------------------------------------------
17eea93bd4 | patrick | 2024-07-09 22:23:11 -0400

Clear out the Clear Minds Boutique
There were two shops using the gimmick of having randarts with
properties that can't normally generate: Clear Minds Boutique and
One-of-a-Kind Rings. This is a bit much for a gimmick that's already on
the edge of what these people let me get away with. Clear Minds was made
entirely as a proof-of-concept while gammafunk was implementing artprop
specification syntax, while One-of-a-Kind Rings already existed before
then and has a stronger theme. Also, by only generating one such
randart, One-of-a-Kind Rings is a little less egregious with its
gimmickry. Accordingly, Clear Minds is getting cut.

While I'm rummaging around in shops.des, One-of-a-Kind Rings is also
getting an inventory tweak: the HP and MP artprops get their higher
ends toned down somewhat.

--------------------------------------------------------------------------------
162e8f4579 | Nicholas Feinberg | 2024-07-09 16:22:41 -0700

Set up a nine-month-long gag (ploomutoo)
It's like April Fools in July!

--------------------------------------------------------------------------------
df7db63c15 | David Lawrence Ramsey | 2024-07-09 00:19:24 -0500

Remove another reference to ears.

--------------------------------------------------------------------------------
3855256e49 | DracoOmega | 2024-07-08 21:38:50 -0230

Fix an obscure crash with tgw_kikubaaqudgha
This vault used lua to place a miasma cloud, killing a caged human and
'raising' them as a zombie. A script called upon the human dying deleted
the cloud they were standing in, but due to a change introduced in 
c0b93f29f480c8b389dd038c0c571e0ef521d79d
it was now possible for them to die before _actor_apply_cloud was finished
looking at that very cloud which it still maintained a reference to,
resulting in undefined behavior.

Despite what the lua comment says, the presence of the cloud does not
actually prevent placing a zombie there (perhaps it did when the comment
was written 13 years ago), so let's just not delete it.

--------------------------------------------------------------------------------
281234c535 | David Lawrence Ramsey | 2024-07-07 11:44:43 -0500

Properly check for unsigned char range (oops).
Instead of casting and comparing (which will fail if the casted value
coincidentally ends up in range), use UCHAR_MAX.

--------------------------------------------------------------------------------
484b3ae991 | David Lawrence Ramsey | 2024-07-07 11:34:39 -0500

Remove duplicate word in comment.

--------------------------------------------------------------------------------
64a9791703 | David Lawrence Ramsey | 2024-07-07 11:31:02 -0500

Avoid crashing at Yes/No/All prompts.
If the key is out of range, act as though we hit Escape, as we do with
other non-alpha keys there, instead of causing undefined behaviour in
isalpha().

Closes #3505.

--------------------------------------------------------------------------------
582db3b95e | David Lawrence Ramsey | 2024-07-07 10:37:07 -0500

Consistently use python3 in scripts (Aliscans).

--------------------------------------------------------------------------------
da96e870eb | David Lawrence Ramsey | 2024-07-07 09:10:25 -0500

Fix spacing.

--------------------------------------------------------------------------------
bbbd308e8c | David Lawrence Ramsey | 2024-07-07 09:03:45 -0500

Add a quote for the Malign Gateway portal.

--------------------------------------------------------------------------------
1c079de84e | David Lawrence Ramsey | 2024-07-07 08:34:12 -0500

Fix fire crab quote.

--------------------------------------------------------------------------------
888de62073 | David Lawrence Ramsey | 2024-07-07 08:22:22 -0500

Fix more unused variable warnings.

--------------------------------------------------------------------------------
677be5308e | David Lawrence Ramsey | 2024-07-07 08:15:17 -0500

Remove unused variable (geekosaur).
Closes #3911.

--------------------------------------------------------------------------------
9e1b529eb0 | elliptic | 2024-07-07 08:04:55 -0400

Fix HW's Conj starting skill being accidentally changed to 1 (acrobat)
(This was accidentally changed by 17d8ae0d.)

--------------------------------------------------------------------------------
51ab8bf2ec | David Lawrence Ramsey | 2024-07-06 01:38:20 -0500

Remove Terence quote.
Since he's been reflavoured from a murderer to a veteran, a quote about
a murderer no longer fits.

--------------------------------------------------------------------------------
494059ca46 | regret-index | 2024-07-06 03:41:49 -0230

Quick generic mutation icon placeholders
To help some filter out mutations more easily on the A menu, this adds
generic icons each for good mutations, bad mutations, Jiyva mutations, and
Demonspawn mutations. The categories should provide a bit more immediate
usefulness compared to the generic pawprint monster spells frequently rely
upon, at least.

This mostly tries to avoid innate species mutations (since it's not great
to confuse them for other temporary mutations one has), and also Ru's
sacrifices (since I didn't have much for ideas that didn't involve
basically making the entire set). I might eventually get ideas for
following up further on either.

Tile used: CanOfWorms' mutation resistance icons, aidanholm's Malmutate
icon, snw-0's Summon Demon icon, and Denzi's edible royal jelly tile.

--------------------------------------------------------------------------------
52db497177 | regret-index | 2024-07-06 03:29:03 -0230

New Xom action: fake Shatter
An rather rare action meant to provide more uniquely Dungeon-altering
material as Xom alone can abuse, in the veins of c695c3f and f441f4b. This
action has a few changes from Shatter: it has much worse odds to destroy
most features beisdes doors or diggable objects (enough to make it much
more likely Xom will malmutate, banish, or teleport people hoping Xom will
cut through a vault for them), it leaves behind piles of debris in the
rock or stone features it destroys, and most importantly, it doesn't
actually do any damage- but it still makes one of the loudest noises in
the game.

The singular nature of the random destruction is somewhat neutral, really-
thinner corridors become wider, opener areas may produce new corridor
veins out of them, rooms may break open, and it's slow for all but the
last of these to matter much in one combat due to the slowly withering
nature of debris- but the extreme of a proper (fake) shatter still marks
it as a net bad effects. It's a reasonable joke, at any rate, for Xom to
do something unique.

--------------------------------------------------------------------------------
1167860672 | David Lawrence Ramsey | 2024-07-05 15:47:16 -0500

Show aux hoof/talon base damage (CrawlOdds).
Whether or not it's blocked by wearing boots.

Closes #3779.

--------------------------------------------------------------------------------
39ae1f09f9 | David Lawrence Ramsey | 2024-07-05 08:37:18 -0500

Prevent casting BVC on oneself (CrawlOdds).
Closes #3901.

--------------------------------------------------------------------------------
c50a736680 | David Lawrence Ramsey | 2024-07-05 08:13:59 -0500

Properly represent coglins in one more place.
All player species were represented in a few vaults where they're caged
up, but not in this one.

--------------------------------------------------------------------------------
83a2a37392 | David Lawrence Ramsey | 2024-07-05 08:02:41 -0500

Remove plant holiness from Maurice (ge0ff).
Added accidentally.

--------------------------------------------------------------------------------
89fc517f9a | DracoOmega | 2024-07-05 04:25:40 -0230

Fix Grave Claw no longer recharging after dying as a felid (Doctor Sulfur)

--------------------------------------------------------------------------------
4f90109601 | David Lawrence Ramsey | 2024-07-05 00:23:17 -0500

Update docs for new species flags.

--------------------------------------------------------------------------------
7c36963bb8 | NormalPerson7 | 2024-07-04 23:54:13 -0500

Use plaintext for more things in species and background YAML files
Change the background YAML files to use plaintext for the
recommended species and skills fields, and the species YAML files
to use plaintext for the recommended jobs, flags, undead, and
recommended_weapons fields (for consistency).

The only enum values remaining are the species' corresponding monsters
and the backgrounds' starting spells, which probably ought to remain
enum values as they don't always correspond to their in-game names.

Hardcode job-gen.py to allow writing simply 'draconian' in the yaml
recommended species field instead of 'base draconian', where the enum
value is SP_BASE_DRACONIAN.

--------------------------------------------------------------------------------
9c0ddd4bd7 | NormalPerson7 | 2024-07-04 23:24:20 -0500

Move some common functions out of job-gen and species-gen
This commit moves common validation and other helper functions that
would be useful for any yaml-to-header generation file out of
job-gen.py and species-gen.py, and into a new file genutil.py,
and lets the two scripts import gen_util.py.

Note the name of the utility module is genutil.py without a hyphen,
because importing file names containing the hyphen character is
impractical in Python.

--------------------------------------------------------------------------------
6ad58cae74 | NormalPerson7 | 2024-07-04 23:24:11 -0500

Convert weapon_choice to an enum class and abstract the yaml field
This commit changes enum weapon_choice into an enum class.
This allows a neat pattern format in job-data-jobs.txt of
weapon_choice::{weapon_choice}, and consequently permits changing the
enum values in the job yaml files into simple strings.

Hence, the weapon_choice yaml field now has the three possible values
"none", "plain", and "good", as opposed to the old enum values
"WCHOICE_NONE", ..., "WCHOICE_GOOD".

Update background_creation.md to reflect this.

Note that previously, the type weapon_choice was defined twice, once as
an enum type, and once as a pair<weapon_type, char_choice_restriction>
in newgame.cc. Changing the enum to an enum class prohibits the second
definition, so this commit renames the type defined in newgame.cc to
weap_choice.

--------------------------------------------------------------------------------
f6c074b974 | NormalPerson7 | 2024-07-04 23:23:52 -0500

Move weapon_choice and job_def definitions out of job-data.h
After this commit, the enum weapon_choice and struct job_def are located
in a new file, job-def.h, instead of being generated in job-data.h by
job-data-header.txt.

The header of job-data.h now contains a description of the struct.

--------------------------------------------------------------------------------
0b8ad47905 | NormalPerson7 | 2024-07-04 23:23:24 -0500

Add documentation for background creation using yaml files
This commit converts background_creation.txt to use the format of
species_creation.md to document the yaml format for backgrounds.

Also add a one-line README to dat/jobs/.

--------------------------------------------------------------------------------
6925c6ba18 | NormalPerson7 | 2024-07-04 23:20:24 -0500

Generate job groups on the character selection screen from yaml files
This commit adds the following new, automatically generated file:
 - job-groups.h
generated by job-gen.py, using almost identical code to that for the
species groups generated by species-gen.py.

--------------------------------------------------------------------------------
17d8ae0da5 | NormalPerson7 | 2024-07-04 23:20:10 -0500

Generate job data from yaml files
This commit converts the following files from hand-written to
automatically generated:
 - job-data.h
 - job-type.h

These files are generated from yaml files in the same way as species,
using the Python script job-gen.py, which is a modified version of
alexjurkiewicz's original species-gen.py.

--------------------------------------------------------------------------------
240133560a | David Lawrence Ramsey | 2024-07-04 23:09:13 -0500

Fix typo.

--------------------------------------------------------------------------------
4d2d54d482 | David Lawrence Ramsey | 2024-07-04 23:09:10 -0500

Remove unneeded space.

--------------------------------------------------------------------------------
d92453a9ef | regret-index | 2024-07-05 01:30:46 -0230

Fix the Xom test

--------------------------------------------------------------------------------
0f6896ee0c | regret-index | 2024-07-05 00:37:21 -0230

New Xom action: mass(?) charm
Another unique and removed god ability reasonably shareable with the
maximalist god of random effects: the Crusade card. There's some further
design space between and beyond replicating single target hex wands and
the invocation buff with weird intelligence checks, after all.

Swapping around multiple allegiances in the midst of battle is good
chaotic fun, but since it can be much stronger to convert multiple
monsters present compared to other effects (even in just telling a charmed
monster to run offscreen and get itself killed), it's been seperated from
the other Xom effects. This good Xom action will always charm one random
monster, fail to charm another random monster, and then rolls to mostly
find the lower-HD half of present monsters to charm afterwards. Going for
the "weaker" proportion of matters is, of course, reasonably balanced by
that half having the player to try and balance out present monsters with,
and still gets quite involved in the warring afterwards. Let's try it out.

--------------------------------------------------------------------------------
a0d142641b | regret-index | 2024-07-05 00:37:21 -0230

More broad Xom action adjustments
 * As long as Xom's not bored or wrathful, Xom's torment now also hits
   every other living being in sight as well as the player. With Kiku
   having lost the effect for Sign of Ruin, there's design space for the
   mixed-benefits effect, and it can tempt people into still pushing
   forward on a fight after being tormented, while all still functioning
   under a mostly negative effect due to being uncontrolled.

 * Xom summoned chaotic allies and enemies once more are nerfed to be
   slightly weaker versus XL again, most notably to reduce the odds and
   pressure of the highest quantity lowest level spawns producing
   hellwings alongside other tier-4 demons immediately next to players in
   early Lair, as well as to cover for their new threat levels past Lair
   branches. Hostile non-brain-drain summons are also fuzzed in placement
   to not be immediately surrounding the player, to provide more varied
   tactics to handle them as opposed to being directly in cleaving / IMB
   range and to reduce the habits of making most Xom worshippers only
   rest in niches and hallways.

 * Since bazaars are entirely harmless and thus uninteresting to Xom
   otherwise, Xom now replaces the flavour customers of bazaars with...
   very different sights.

 * Xom now cannot polymorph most monsters into higher HD monsters before
   xl 4, to prevent D:1 deaths to killer bees and bullfrogs and so on and
   so forth. (This unfortunately doesn't currently work for bats, as the
   polymorph fixed-list key per monster needs to prevent shapeshifters
   from drowning themselves over liquids, and thus any other flying
   options a bat could be polymorphed into is five or more floors deeper a
   threat. Passing through a lot more code to allow Xom to not care
   about instantly drowning given enemies would be ideal, eventually.)
   Polymorphs are also explicitly described as hostile or not in one's
   notes.

 * Xom's good and bad monster enchanting now both can enchant increasing
   numbers of visible enemies on screen, with a range capped by XL. This
   also comes with swapping out the charm and invisibility effects for
   vitrify and regeneration- mass charm is slated for its own seperate
   effect to actually have resistability attached, and mass invisibility
   (while very funny) is far too annoying to have be a common thing in Xom
   games. There might be some space for Xom to do more things in this
   space (like throw on a dozen debuffs that all don't overlap with
   paralysis or confusion onto a single target), but this should help for
   now with the continued goal of the past Xom commits for 0.32 both
   making Xom's danger scale more throughout more of the game and making
   Xom's upsides feel more variably tangible than just "skip random fights
   and get random mutation benefits".

--------------------------------------------------------------------------------
f441f4bd93 | regret-index | 2024-07-05 00:37:20 -0230

New Xom action(s): glass door enclosure
Why imprison something in silver walls if those walls will inevitably
collapse? Might as well at least try something flashier.

Vitrification was removed from Xom's list of effects back in 1be608a due
to interrupting rest, travel, and exploration with monsters who possibly
could yet in practice obviously do not actually have any chance to reach
the player. While this is quite understandable, it was nice to have Xom
materially effect the dungeon itself in more permanent fashions beyond the
extremely rare moving of stairs or a mechnically-irrelevnt smattering of
random decor. There are ways to approach this, in particular, that
shouldn't really impare the rest / travel / exploration space by too much.

This rare Xom action has two different versions depending on Xom's mood.
In either form, Xom surrounds the player in a ring of disconnected clear
doors at distances 3 through 5, digging through diggable walls and
replacing decorative non-altar features as is needed. When Xom is feeling
merciful, this also comes with blinking hostile monsters inside or on top
of the ring outside the box. When Xom is feeling cruel, this comes with
not blinking out adjascent enemies if you're already surrounded, as well
as blinking in more visible enemies into the box (scaling randomly to xl).
Either way, it should still be nicely dramatic and also still reasonably
parseable for Crawl to let one rest behind the transparent doors if
monsters on the other side can't, in fact, open them.

(Aside from trying to vary up effects here to be seperate of the recent
new Xom flora ring, the radius size and disconnected doors here are
deliberately evoking reverse_door_vault. While this is somewhat of a very
narrow in-joke meme, it also serves interestingly enough from a tactical
perspective to excuse such.)

--------------------------------------------------------------------------------
18e1206b13 | Implojin | 2024-07-04 19:48:51 -0500

Remove an unneeded rampage terrain prompt (CarefulOdds)
Since a0b39eb048, rampage has been issuing a check_moveto terrain prompt
if the player does a rampage double-move across a tile that pings
check_moveto, even if that move would end on a "safe" tile. (E.g. rampaging
through a poison cloud into an open tile.) This seems unnecessary as long
as we're checking the player's final position, which we are.

--------------------------------------------------------------------------------
acc7b8076f | David Lawrence Ramsey | 2024-07-04 13:48:45 -0500

Fix typo.

--------------------------------------------------------------------------------
0126419439 | David Lawrence Ramsey | 2024-07-04 13:24:30 -0500

Tweak player dazzling/blinding logic.
Dazzling immunity requires blinding immunity, and blinding immunity
requires not having eyes. This is closer to the monster version where
the former is true alredy, and produces the same results as before.

--------------------------------------------------------------------------------
7058c45308 | David Lawrence Ramsey | 2024-07-04 11:36:37 -0500

Flag vine stalkers/Maurice as unblindable.
Like players, they don't have plant holiness, and giving it to them
might introduce bugs. So match the player side of things (no
dazzling/blinding) the easiest way.

--------------------------------------------------------------------------------
b54987c067 | David Lawrence Ramsey | 2024-07-04 10:55:30 -0500

Add another Xom ear message.

--------------------------------------------------------------------------------
534115abf4 | David Lawrence Ramsey | 2024-07-04 10:50:11 -0500

Remove a few references to ears.

--------------------------------------------------------------------------------
e137b16e2f | David Lawrence Ramsey | 2024-07-04 10:46:53 -0500

Replace another eye reference.

--------------------------------------------------------------------------------
503b74bf45 | David Lawrence Ramsey | 2024-07-04 10:43:07 -0500

Tweak see invis description to mention vision.
This matches the in-game text in mutation-data.h.

--------------------------------------------------------------------------------
61b81b70c1 | David Lawrence Ramsey | 2024-07-04 10:36:41 -0500

Replace eyebrow references with hair references.
Checking for hair for only the eye messages that reference eyebrows in
Xom pseudo-miscasts is overly complex.

--------------------------------------------------------------------------------
98fe185553 | David Lawrence Ramsey | 2024-07-04 10:31:29 -0500

Rename gold dragon scales to golden dragon scales.

--------------------------------------------------------------------------------
0ec4f85e22 | David Lawrence Ramsey | 2024-07-04 07:54:29 -0500

Make Vine Stalkers not have ears.
Since they're symbiotes, it could go either way, but the tiles seem to
not show visible ears, and plants don't have external ears in the usual
sense anyway.

--------------------------------------------------------------------------------
9b862b9597 | David Lawrence Ramsey | 2024-07-04 00:00:26 -0500

Put random body part msg code in the right place.
It was in Xom's pseudo-miscasts so I could test it more easily, but it
should have been in do_mon_str_replacements() so that it could be used
generally, e.g. in god_speaks().

--------------------------------------------------------------------------------
971c8ffe15 | David Lawrence Ramsey | 2024-07-03 23:48:12 -0500

Make Xom make your ears wiggle instead of glow.
Glowing a random colour is interesting, but movement is more
interesting.

--------------------------------------------------------------------------------
a66dc387fe | David Lawrence Ramsey | 2024-07-03 23:45:07 -0500

Replace a Xom ear pseudo-miscast msg.
We don't know if your species already has pointed ears or not, so just
make them glow some other colour.

--------------------------------------------------------------------------------
d6264605d0 | David Lawrence Ramsey | 2024-07-03 23:40:26 -0500

Add msg for Xom's ripping magic out of you.
Using a random body part the player has.

Suggested by regret-index.

--------------------------------------------------------------------------------
5d929861f7 | David Lawrence Ramsey | 2024-07-03 23:31:39 -0500

Add Xom pseudo-miscasts for ears.

--------------------------------------------------------------------------------
6afc23fd24 | David Lawrence Ramsey | 2024-07-03 23:27:28 -0500

Indicate whether species/forms have ears.
In species, make a new species flag for it. The player species and forms
that don't have external ears are now flagged as having no ears.

Nothing is done with the functions to detect player ears yet; this will
be remedied.

--------------------------------------------------------------------------------
d25bf8764e | David Lawrence Ramsey | 2024-07-03 22:08:28 -0500

Tweak Xom's eyes pseudo-miscasts again.
Drop references to right and left, and just say one of your eyes.
This allows the message to work regardless of which eyes it's talking
about.

--------------------------------------------------------------------------------
2d43d07d79 | David Lawrence Ramsey | 2024-07-03 21:55:49 -0500

Document the fix for Xom's eyes pseudo-miscast.

--------------------------------------------------------------------------------
de14e3e199 | David Lawrence Ramsey | 2024-07-03 21:48:53 -0500

Fix Xom's eyes pseudo-miscasts.
Count the ones from your current form, but not the ones form Jiyva's
mutation, since the latter are not the usual left/right eyes that the
messages are made for.

--------------------------------------------------------------------------------
a0bb186744 | David Lawrence Ramsey | 2024-07-03 21:05:37 -0500

Fix override warnings?

--------------------------------------------------------------------------------
e099dce725 | David Lawrence Ramsey | 2024-07-03 20:46:51 -0500

Handle players with no eyes.
Fix a few references that assume eyes (the see invisible mutation's long
description, plus a Pan lord description).

Also account for no eyes in Ru's eye sacrifices and Xom's eye-related
pseudo-miscasts.

--------------------------------------------------------------------------------
3a50e4b0e9 | David Lawrence Ramsey | 2024-07-03 20:46:46 -0500

Indicate whether species/forms have eyes.
In species, make a new species flag for it. The player species and forms
that are immune to dazzling/blinding (vine stalkers, trees, and fungi)
are now flagged as having no eyes, and that quality is now what gives
them such immunity.

The code assumes elsewhere that all species have eyes; this will be
adjusted.

--------------------------------------------------------------------------------
2ac8d13b53 | David Lawrence Ramsey | 2024-07-03 20:46:36 -0500

Try to clean up dazzling/blindness checks.
Move them to actor, and apply them consistently to both player and
monster as much as possible: dazzling checks everywhere, except for
atropa darts, which explicitly do blinding checks.

On the player side, resistance to being dazzled is the same as
resistance to being blinded, to keep dazzling/blinding as available to
players as possible.

This means that vine stalker players, as well as players in tree or
fungus form, can no longer be dazzled/blinded, but all other players
can.

--------------------------------------------------------------------------------
c8384d3eb5 | elliptic | 2024-07-03 20:34:53 -0400

Fix the wrong gem being placed in a D:15 vault (sosloow)

--------------------------------------------------------------------------------
195b16cf10 | David Lawrence Ramsey | 2024-07-03 18:45:13 -0500

Add a few blank lines.
To make the form_has_ functions stand out better.

--------------------------------------------------------------------------------
d6cd30cd14 | DracoOmega | 2024-07-03 20:39:55 -0230

Let Divine Shield block ioods and refactor a little

--------------------------------------------------------------------------------
eaf127bca1 | David Lawrence Ramsey | 2024-07-03 17:54:11 -0500

Fix death-form's never having bones (oops).
It now has bones only if the original species does.

Also, consistently refer to it as fossilised instead of bony, for those
species without bones.

--------------------------------------------------------------------------------
483be5070d | elliptic | 2024-07-03 18:03:53 -0400

Save compat to remove negative Divine Shield charges

--------------------------------------------------------------------------------
a96e11e7f4 | elliptic | 2024-07-03 17:46:12 -0400

Fix characters getting a negative amount of divine shield charges
(They got them even without worshipping TSO!)

--------------------------------------------------------------------------------
e965ef129e | David Lawrence Ramsey | 2024-07-03 16:38:46 -0500

Fix bugs/inconsistencies for plant players.
Since they don't actually get plant holiness, the player::can_be_dazzled()
checks for such did nothing. Check for the species and forms directly
instead.

Also, make fungus form immune to torment, since it's supposed to have
plant holiness, and tree form makes you immune to torment for the same
reason.

--------------------------------------------------------------------------------
9bc2200ab7 | Nikolai Lavsky | 2024-07-04 00:03:53 +0300

fix: remove duplicate "the" from RevPerry messages
Fixes messages like "You knock the the +0 club out of the goblin's
grip!"

--------------------------------------------------------------------------------
b22d4219ad | DracoOmega | 2024-07-03 16:42:47 -0230

Make the Orb complain if any method moves it (ge0FF)
It was possible to use hellfire mortar's temp lava to slowly shift the Orb
of Zot all the way to the stairs before picking it up (by creating lava
under it, causing it to be displaced by one tile). Other less practical
methods of moving it include Tomb cards and Summon Forest.

Since the Orb complains about apportation, it probably ought to complain
about this as well. Now any terrain change that triggers a shift which
moves the orb will have a similar effect as apportation being cast upon it.

--------------------------------------------------------------------------------
b890d635f5 | DracoOmega | 2024-07-03 16:39:38 -0230

Actually print a message when Sign of Ruin blinds a monster (elliptic)

--------------------------------------------------------------------------------
0a67a26650 | DracoOmega | 2024-07-03 16:39:27 -0230

Apply Sign of Ruin effect on either melee *or* brand damage (elliptic)
Sign of Ruin had a mild lack of synergy with Kiku's pain brand gift (in
that Pain weapons function even on 0 damage hits, but those hits still
could not trigger Sign of Ruin). Now it triggers if either the main hit
*or* brand does damage on a given attack.

--------------------------------------------------------------------------------
2031b86b8c | DracoOmega | 2024-07-03 16:31:43 -0230

Make Divine Shield actually block beams (elliptic)
Not sure how I overlooked this....

--------------------------------------------------------------------------------
329bce5e63 | DracoOmega | 2024-07-03 16:31:07 -0230

Don't expire Divine Shield with time (elliptic)
When reworking this ability, I'd kept a small duration on top of the
limited block charges with the aim to keep the scope of the ability to a
single combat. But it's been pointed out that this makes it possible to end
a fight with blocks remaining, walk over to a second, and have the effect
expire right as you're about to get hit.

Since there's a non-trivial piety cost to the ability, we shouldn't need to
worry about pre-buffing, so now your block charges simply stay around
indefinitely until used.

(This converts DUR_DIVINE_SHIELD to now be the number of remaining block
charges rather than aut, and removes the use of ATTR_DIVINE_SHIELD
entirely)

--------------------------------------------------------------------------------
23c286355e | David Lawrence Ramsey | 2024-07-03 01:08:16 -0500

Avoid spurious blinding msgs from TSO's shield.
Try to blind them first, and display the "struck blind" message only if
it succeeds and they weren't blinded before. Since unblindable monsters
can't be blinded, this will properly stop the "struck blind" message
from displaying for them.

--------------------------------------------------------------------------------
54083d67a5 | David Lawrence Ramsey | 2024-07-02 22:31:13 -0500

Fix incorrect possessive in merfolk siren msg.
(Why isn't there a warning for a non-boolean erroneously used as a
boolean parameter?)

--------------------------------------------------------------------------------
f62c45d80e | elliptic | 2024-07-02 13:53:14 -0400

Tweak Hedge Wizard start (acrobat)
Hedge Wizard had one of the least reliable XL 1 starts in the game since
their starting spell, Magic Dart, had extremely low damage at their 1
Conjurations skill spell power.
power. So let's raise that to 2 starting Conj skill.

In addition, let's give them 1 Necromancy skill for symmetry with
Summoning and Translocations now that they have a L2 Necromancy spell in
their starting book.

This commit also removes Slow from their starting book - it wasn't very
appealing to raise Hexes just for Slow spell power given how many other
schools they might want to train, and it isn't a very good spell at very
low power. This means that Slow now isn't in any starting spellbooks, so
it seems reasonable to cut it as a player spell altogether - it isn't very
fun gameplay anyway. I'll wait a bit on doing that though.

--------------------------------------------------------------------------------
b4b85c6ba5 | David Lawrence Ramsey | 2024-07-02 10:20:12 -0500

Move player_has_bones() into actor.
Map the monster version to mons_skeleton(), which is the closest
equivalent on that side. It's currently not used directly anywhere,
but it might be useful at some point for an eventual spell that only
affects living monsters with bones.

Whether monsters have hair and/or feet doesn't seem to affect much on
that side, so those functions are still player-specific. (Unless there
are eventual spells to e.g. strangle monsters with their own hair, or
knock their feet out from under them.)

--------------------------------------------------------------------------------
38ac799c93 | David Lawrence Ramsey | 2024-07-02 09:50:24 -0500

Update comment.
Now that has_blood() exists, Xom could rip your magic out through it,
too.

--------------------------------------------------------------------------------
4f4802e42f | David Lawrence Ramsey | 2024-07-02 09:44:19 -0500

Indicate whether species/forms have blood.
In forms, move the quality from can_bleed to has_blood. Elsewhere,
rename the function. In species, make a new species flag for it.

Note that having certain holinesses no longer automatically implies
not having blood. Species with no blood are explicitly flagged as having
no blood instead. (The one exception to this is the check for
is_lifeless_undead()'s being false, which is needed to account for
the one odd case of not-currently-alive vampires.)

--------------------------------------------------------------------------------
611ce37909 | David Lawrence Ramsey | 2024-07-01 18:26:45 -0500

Indicate whether species/forms have feet.
And make player_has_feet() use it properly.

Note that having certain intrinsic mutations no longer automatically
implies not having feet. Species with such mutations are explicitly
flagged as having no feet instead.

--------------------------------------------------------------------------------
23c4013377 | David Lawrence Ramsey | 2024-07-01 17:28:34 -0500

Indicate whether forms have bones.
And make the various bones checks use it properly.

--------------------------------------------------------------------------------
ab78b9c92e | David Lawrence Ramsey | 2024-07-01 17:07:26 -0500

Rename function to match associated variable.
Use form_changes_physiology() instead of form_changed_physiology().

--------------------------------------------------------------------------------
61c9020154 | David Lawrence Ramsey | 2024-07-01 17:02:53 -0500

Indicate whether forms have hair.
And make player_has_hair() use it properly.

--------------------------------------------------------------------------------
5f993c34c6 | David Lawrence Ramsey | 2024-07-01 13:17:33 -0500

Fix desc of death-form arms for boneless species.
Use "fossilised" instead of "bony" for them. Maybe there's a better
option, but it's all I could think of at the moment.

--------------------------------------------------------------------------------
c0d58c9ec9 | David Lawrence Ramsey | 2024-07-01 09:59:29 -0500

Properly check if the player has hair.
Account for forms as well as species (as best we can), and have Xom's
hair-related pseudo-miscasts use this check.

--------------------------------------------------------------------------------
cffdeba968 | DracoOmega | 2024-07-01 02:31:44 -0230

Buff Arachne yet more
Even after the last buff, she's still been lagging behind; venom bolt and
poison arrow just don't scale that aggressively compared to other uniques
she shares her depth range with now.

This gives her some more HD for extra spell damage, nudges up her
conjuration cast rate just a smidge, and replaces Blink with Blink Range.

--------------------------------------------------------------------------------
3df90f6c32 | DracoOmega | 2024-07-01 01:52:01 -0230

Make the number of Elemental Force summons a little more consistent
It used to summon between 1 and 'Invocations - 1' elementals, resulting in
an extremely wide variance, especially at higher invocations. It's already
generally outshone by direct damage options at high invo, so it probably
doesn't also need a chance to roll just a single elemental.

--------------------------------------------------------------------------------
3e911bed26 | DracoOmega | 2024-07-01 01:30:41 -0230

Slightly clarify message for trying to invent a gizmo with full inventory
At least some players didn't seem to understand that this was referring to
their inventory, as opposed to some other problem.

--------------------------------------------------------------------------------
e3ac9d4567 | DracoOmega | 2024-07-01 01:30:09 -0230

Make Planerend summons last a bit longer.
Abjuration degree 1 is just a very short length of time for hostile
summons to last. (Forceful Invitation can stay at 1, due to the context in
which it is usually encountered.)

--------------------------------------------------------------------------------
6d7365d79f | DracoOmega | 2024-07-01 01:28:40 -0230

Don't let Orb of Mayhem's effect target the thing that just died.
This produced a very confusing series of messages (and also wasted the
effect on a monster who was in the process of dying at the time.)

I kind of think that monster_near_iterator by default just shouldn't
include the monster whose perspective it is from, as the vast majority of
time this specific check is then added manually (or forgotten!).

--------------------------------------------------------------------------------
17a61085a0 | DracoOmega | 2024-07-01 00:37:55 -0230

Tweak message for trying to use draconian breath that is exhausted
This was written for an old draft that restored charges when you entered
new floors, but apparently was never changed when it became xp-based
instead.

--------------------------------------------------------------------------------
712046fcb8 | DracoOmega | 2024-07-01 00:37:07 -0230

Fix a visual bug with green draconian breath tracer
At XL too low to have the breath spread beyond the central line, it was
nonetheless showing that it might affect an area adjacent to any monsters
hit by the central line (due to shared code with Combustion Breath).

--------------------------------------------------------------------------------
80f043cd07 | DracoOmega | 2024-07-01 00:35:44 -0230

Prompt and warn if green draconian breath could leave a cloud on an ally

--------------------------------------------------------------------------------
8640a3fb66 | DracoOmega | 2024-06-30 22:02:30 -0230

Hopefully fix some webtiles flash alpha problems more properly
screen_cell_t.flash_alpha and cell_t.flash_colour weren't initialized upon
construction. While draw_cell() would set these to appropriate defaults
before using them for most purposes, TilesFramework::_send_cell
specifically only wrote these values to json if they differed from the
previous frame. This allowed a brief window upon loading a screen (and
maybe other times?) where it was possible the uninitialized number would
equal the 'real' number we wanted to write there, and because there was
'no change', it would not get written to webtiles json at all.

At the same time, this means that a flash_alpha of 0 should never cause
a json write under most circumstances, even though this is used as a
'default alpha' for active flashes (often actually 100). So notice when
they're trying to use an undefined alpha value javascript-side and assume
it is zero instead.

I'm not 100% convinced this will properly fix all of the bugs bandaged over
by 6d3ed6f0afcef2dff2510c721f16ae45721817a5 but it seems like a good attempt.

--------------------------------------------------------------------------------
d7d0690006 | DracoOmega | 2024-06-30 22:02:30 -0230

Don't assert when aiming a lightning rod at LoS 0
It's not clear to me that this assert is needed in the first place (and
regular beam targeters don't have a similar one).

--------------------------------------------------------------------------------
b41b9731f8 | DracoOmega | 2024-06-30 22:02:30 -0230

Don't let faint miasma linger indefinitely if the player stands on it

--------------------------------------------------------------------------------
ddb5797f8f | DracoOmega | 2024-06-30 22:02:30 -0230

Preview EV/SH changes from wielding randart staves (pisaster)
They should now display the same info block that randart weapons do, in
this regard.

--------------------------------------------------------------------------------
a2a0cb1fca | DracoOmega | 2024-06-30 22:02:30 -0230

Fix Marionette targeter not counting draconian breaths (not_that_greg)
In the demoninator, at least. This turns out to actually have been an issue
with get_unique_spells(), which would ignore breaths if no spell filtering
flags were set.

This doesn't seem to have had wider consequences as other uses of this
function specify at least one filter. (Though I think this function was
accessible to client lua, so it may have also affected someone else at some
point in time, somehow.)

--------------------------------------------------------------------------------
14bc459c0f | DracoOmega | 2024-06-30 22:02:30 -0230

Flag Fulsome Fusillade as chaotic
The chance is low, but it *can* malmutate enemies caught in an unstable
reaction, so this would be consistent with other mutating spells. Sorry,
Zin worshippers.

--------------------------------------------------------------------------------
bb5b61914e | DracoOmega | 2024-06-30 22:02:30 -0230

Show Grave Claw charges in quiver line, while it's quivered (CarefulOdds)
Seems like a small UI nicety.

--------------------------------------------------------------------------------
0bbe9e1929 | David Lawrence Ramsey | 2024-06-30 14:46:07 -0500

Fix typo.

--------------------------------------------------------------------------------
e1784ef838 | DracoOmega | 2024-06-30 17:02:21 -0230

Improve Step From Time's functionality
Step From Time is a conceptually cool ability - let the level run for a few
hundred turns without the player and see how much that improves your
situation - but its reliability is deeply troubled in practice. It is very
common for it to make no meaningful improvement in your situation - and
worse, enemies get an immediate action so sometimes the player can even
get blasted by monsters that weren't in sight before they used it!

A fundamental problem with the ability working the way it does is that
monster wandering behavior in Crawl - when there is no player to track nor
noise to pursue - is very, very dumb. A monster can literally spend
thousands of turns in a medium-sized room without figuring out how to exit
it - a problem that gets even worse the more other monsters are in the room
for it to bump into, as each time its movement is blocked, it will start
moving in a different random direction instead, making it near-impossible
for a cluster of monsters to exit a corridor.

I spent a while investigating how this basic wandering behavior might be
improved, but it's unclear that any changes which do not require a
massive-scale refactoring of monster behavior code (which is a good idea in
general, but very daunting) would actually be beneficial. The incidental
property of 'monsters tend to stay inside enclosed major vaults unless the
player is fighting nearby' is arguably good, more intelligent behavior
could be much more computationally expensive, and what monsters do when the
player is extremely far away from them mostly just isn't that important.

Except for Step From Time.

So instead, let's cheat. Rather than merely causing a large amount of time
to pass and hoping the results incidentally make a good button to press,
let's move some things behind the scenes to ensure that they do - while
still staying true to some of the flavor and 'unpredictability' of the
ability - but to a more acceptable degree.

Step From Time now passes only 100 turns in the old way (enough to
introduce some general randomness, and cause timed effects to wear off,
summons expire, poison to kill things, etc.). And then it grabs a random
50-85% of nearby awake monsters and manually moves them some distance away
from the player to simulate them wandering (if wandering actually worked
any good at all). They will always end up somewhere out of the player's LoS
that they could have walked under their own power (so it's definitively
*not* a teleport).

Then we roll an independent power-based chance to put awake creatures
anywhere in the level to sleep. (A property Step From Time effectively had
in the old days, and one that seems thematically appropriate without being
too easy to exploit.)

Finally, we steal just enough energy from monsters which remain in the
player's LoS to ensure that they do not act before the player has seen
them.

In total, using this ability is a lot more likely to improve the player's
situation (but is not guaranteed, still has a large degree of
randomization, and still functions poorly in places the player could
*expect* it to function poorly, like enclosed spaces with no exit.)

I've nudged the piety cost up slightly at the same time, but it should feel
like a much better button to push, regardless.

--------------------------------------------------------------------------------
fadd82bc4f | DracoOmega | 2024-06-30 17:02:21 -0230

Don't crash when shadow-throwing a large rock
The game wasn't considering them throwable by player shadows, which led to
other issues with code that assumed they could.

Fixes #3899

--------------------------------------------------------------------------------
0d330ff531 | David Lawrence Ramsey | 2024-06-30 00:05:21 -0500

Update Kiku powers description (jlwoodwa).
Since torment has been replaced with the sign of ruin.

Closes #3898.

--------------------------------------------------------------------------------
9325eb94cc | David Lawrence Ramsey | 2024-06-29 21:33:42 -0500

Tweak a Xom divine lightning message.
Since the effect produces multiple blasts now, instead of just one.

--------------------------------------------------------------------------------
79019f5db0 | David Lawrence Ramsey | 2024-06-29 20:51:52 -0500

Fix spacing.

--------------------------------------------------------------------------------
069b42e500 | David Lawrence Ramsey | 2024-06-29 20:42:38 -0500

Fix spelling.

--------------------------------------------------------------------------------
bdf0b8bb2c | regret-index | 2024-06-29 22:43:51 -0230

Scattered Xom buffs to both worship and wrath
As mentioned back in a3c6b23, the various changes between dropping
miscasts and adding heavy XL scaling have reduced the chances Xom will
directly kill the player, which is good for making people actually stay
with and appreciate Xom, but also lets chaos knights who abandon Xom early
live more often. The latter is unideal- it goes against the spirit of
chaos knight in the first place!- and so several bits of wrath are now a
bit harsher, to invoke the prior state of tier-3 demons on D:2.

 * Xom's wrathful actions no longer can include harmless miscast
   messages or random noise, as these don't actually do anything much
   to a given sinner.

 * Hostile summons counts are doubled under boredom and tripled under
   wrath (alongside an upgraded increase in effective level).

 * Xom banishes deeper and earlier while wrathful.

 * Xom's bad mutation effect is guaranteed to have at least one bad
   mutation if you're under wrath.

 * Xom enemy buffs no longer include BEAM_AGILITY- it's just not much of
   a decent joke unless it's actually made to do something, anyway.

As a bit more of a carrot to go with the stick, to reward those who stay
with Xom, more positive actions are a bit more noticeable and less
malevolent to the player, also:

 * Xom polymorph-to-shapeshifter effects now require being at least xl 5,
   unless under Xom wrath or boredom.

 * Xom's single-ally summons last an average of 320 aut (up from 170)
   before vanishing and now get a free regeneration buff, so one can
   actually keep them around for a reasonable while on their floor
   without making one's own resting awkward.

 * Xom's random spells-through-the-player cast list swaps out Summon Ice
   Beast (boring, old, starter book spell) with Martyr's Knell (exciting,
   new, unique in support capacities), and Metabolic Englaciation
   (redundant with several other haste and slow effects) with Animate Dead
   (since Death Channel is already present and useful). Tension now also
   contributes to spellpower alongside Xom interest and player XL.

 * Xom's divine lightning blast now also comes with several random
   lightning bolts occasionally aimed somewhat towards enemies, since some
   seem to miss the random firing of old black draconian breath and disc
   of storms.

 * Xom's Ignition-predecessor Mass Fireball now also sticky flames on hit.
   Since Xom won't catch worshippers in the fireball barrage, there's now
   a bit more of interest and agency in charging towards whatever one
   wants to keep alight, and it's also a bit closer to Xom's tones by
   highlightning status effects too.

--------------------------------------------------------------------------------
5538e63c64 | regret-index | 2024-06-29 22:37:57 -0230

New Xom action: living Force Lance fleet
Divine foxfire swarms are clearly too weak to interest Xom.

Xom's direct destruction effects (outside of the incredibly rare Fusilade
and Chain of Chaos calls) are currently rather dull for a contemporary
divine context- either blasting the worshipper directly with a lightning
AOE or tossing around a few fireballs that might incidentally be fake.
There's ripe space for additional effects and revisions that can at least
look fancy and also let the god remotely catch up to the newer effects
from Nemelex, Qazlal, Ru, and Ignis, as long as they're unaimed as always.

This new effect only activates if there's more than one enemy visible. If
it does, it first does non-damaging knockback in a small radius around the
player, akin to the scroll of butterflies, and then fills the space around
the player with living spells that cast Force Lance. Force Lance in
particular is chosen for its capacity to wildly push enemies around if
they aren't immediately killed (and even repeatedly knock enemies out of
sight only for them to walk back in and get pushed out again), which
provides a more positive contrast to the position-swapping Xom action
that's already been around for a while.

The effect itself scales both spawns and damage heavily to the player's XL
and is reasonably weaker during Xom wrath. It tends to mostly wound but
not directly kill from full health random bands appropriate for their XL
while rapidly crushing uniques without bands or summons, which is fine
since Xom's random irresistable debuffs will already do the same anyway.

--------------------------------------------------------------------------------
9b0b472dee | regret-index | 2024-06-29 22:37:57 -0230

New Xom action: brain drain
Other new joke directions: doing the active opposite of divine abilities.
In this case, Channel Magic and Draw Out Power.

Since Xom's already covering statdrain, active draining, and torment,
we might as well complete the number of ways Xom can affect the player's
stats and points with something a bit more dramatic. (They did always
find Brain Feed amusing, for whatever reason.) This Xom bad action drains
3/4ths of a worshipper's current mp (if and only if they have any) and
transforms such into hostile (rarely neutral with severity) brain
worms, mana vipers, and / or quicksilver elementals, scaling heavily to
that worshipper's level. If Xom's bored or wrathful, this instead drains
all mp, has no neutrality chance, and scales one's XL up further.

It's a bit more violent of a prank than usual for Xom, but is that
really that much different than their old predilection for explosions?

--------------------------------------------------------------------------------
beb539b8dc | David Lawrence Ramsey | 2024-06-29 18:57:12 -0500

Tweak Xom gizmo pseudo-miscast msg.
To make it overlap less with the dragon armour pseudo-miscast msg.

--------------------------------------------------------------------------------
c6c5c127b9 | David Lawrence Ramsey | 2024-06-29 18:25:00 -0500

Add Xom pseudo-miscasts for gloves/boots slots.
There are grammar oddities for a few unrands with plural names (e.g. the
Mad Mage's Maulers, which are not described as a pair of maulers), but
they have the same oddities when in the player's inventory.

--------------------------------------------------------------------------------
f4a1136d2b | David Lawrence Ramsey | 2024-06-29 17:50:37 -0500

Clarify comment.
Gods can change unrands, as shown by Yred and "Brilliance". Xom could
change unrands for chaos branding, but doesn't.

--------------------------------------------------------------------------------
6f9366b24c | David Lawrence Ramsey | 2024-06-29 17:48:19 -0500

Improve display of Xom ring slot miscasts.
The ring names should start with "your" even if they're artefacts, like
the other slot miscast messages.

--------------------------------------------------------------------------------
f6d08ccad7 | David Lawrence Ramsey | 2024-06-29 17:41:54 -0500

Add a Xom pseudo-miscast for ring slots.

--------------------------------------------------------------------------------
1c16d331d5 | David Lawrence Ramsey | 2024-06-29 16:13:55 -0500

Add a Xom pseudo-miscast for the gizmo slot.

--------------------------------------------------------------------------------
6061a74ad1 | David Lawrence Ramsey | 2024-06-29 13:37:09 -0500

Add another pattern to the colour database.

--------------------------------------------------------------------------------
f4827b8d6a | David Lawrence Ramsey | 2024-06-28 21:23:18 -0500

Add a few more Kiku Donald/player ghost lines.
To reflect the flavour change from pain and torment to ruin and despair.

The player ghost line referencing pain and torment is still there, but
the way it's worded, it could apply to the ghost instead of the player,
and who knows how Kiku punishes worshippers who fail them by dying?

--------------------------------------------------------------------------------
a8b34eb901 | DracoOmega | 2024-06-28 18:27:35 -0230

Fix a possible Xom mass-paralysis crash

--------------------------------------------------------------------------------
eaafe8afc0 | David Lawrence Ramsey | 2024-06-28 15:18:34 -0500

Fix spelling.

--------------------------------------------------------------------------------
b744659e03 | David Lawrence Ramsey | 2024-06-28 15:17:20 -0500

Update Necromancer background desc (jlwoodwa).
Since the Necrotise spell has been replaced with Soul Splinter.

--------------------------------------------------------------------------------
7b7531d185 | David Lawrence Ramsey | 2024-06-28 14:27:08 -0500

Add another Xom dry fountain message.

--------------------------------------------------------------------------------
798c8b9a8b | gammafunk | 2024-06-28 10:23:09 -0500

fix: Use the correct number of altars in a temple (nicolae,Namsan)
For mainiacjoe_temple_bowtie_tessellation, this map actually has 19
altars, so tag it correctly as such.

--------------------------------------------------------------------------------
3f2e493c45 | DracoOmega | 2024-06-28 12:11:06 -0230

Change/improve how Aphotic Marionette works somewhat.
Targeting this ability now calculates how many spells each visible monster
could cast *at the present moment*. This accounts for whether other enemies
are in range of their conjurations (and not immune to them), whether the
player is able to be buffed by any buffs they may have (accounting for
stasis or already having these buffs), and several other things. This
should make the ability feel more reliable, as it should always be able to
cast as many spells as it claims it can.

The ability also no longer requires an audience if the monster has spells
that would function without one (ie: you can have a monster Haste you
without needing some random bystander in sight.)

This also means that since Marionette should *always* do something, it no
longer needs the weird piety cost system where most of the cost was
deducted only *after* a monster did a thing (but would be
partially-refunded otherwise.)

I remain concerned at how wildly effective this version is against certain
enemies, like Zenata. Requiring another enemy around diluted her Sheza's
Dance casts with Resonance Strikes (and often meant she had her own
weapons for distractions against your weapons). I am not currently sure how
to dilute the strength of Marionette in its best cases without making it
too unappealing in more average ones (nor how to cost it based on how much
it *did* via any sane formula.)

However, players were regularly confused by facets of the old method and
this should be a lot clearer by default, so let's go with this for now.

--------------------------------------------------------------------------------
1ec71475ea | DracoOmega | 2024-06-28 12:11:06 -0230

Make summons gained via Marionette appear around the player
Instead of around their nominal summoner. This is intended in part to make
it less trivial to immediately kill a summoner with their own summons
(though I am unsure how much it helps, since the player could be near them
in the first place.)

--------------------------------------------------------------------------------
a5e027c416 | DracoOmega | 2024-06-28 12:11:06 -0230

Fix Marionettes not appearing to have the right alignment to some spells
mons_aligned() worked properly, but wont_attack() did not. Spells are
entirely inconsistent as to which they use, so some spells would not
consider the marionette to be on the proper team.

--------------------------------------------------------------------------------
a5c9273df1 | DracoOmega | 2024-06-28 12:11:06 -0230

Fix spells cast by Marionettes caring about their own health
(ie: they would be reluctant to cast attack spells in ways that could also
hurt them, when they were explicitly intended to be indifferent to this
fact.)

--------------------------------------------------------------------------------
f1b019fc7b | DracoOmega | 2024-06-28 12:11:06 -0230

Fix monster Eruption cast message always claiming it's aimed at the player

--------------------------------------------------------------------------------
a3775c49d2 | DracoOmega | 2024-06-28 12:11:06 -0230

Fix being able to aim Grave Claw at yourself
(Which would immediately crash)

--------------------------------------------------------------------------------
8e808ea584 | DracoOmega | 2024-06-28 12:11:06 -0230

Fix capitalisation in Grave Claw spell description

--------------------------------------------------------------------------------
94106ed5a1 | DracoOmega | 2024-06-28 12:11:06 -0230

Fix missing break statements (Waxwing)
Was requiring Grave Claw to be recharged for Starburst to be castable.

--------------------------------------------------------------------------------
a9aa173657 | regret-index | 2024-06-27 22:43:35 -0230

Silently clear player tile clouds when Xom stops time
Since there's not much counterplay to Xom's mass-paralysis otherwise, and
also since there's not too many other ways to actually take much damage
when everything on screen's paralyzed. (Aside from lethal poison? Well,
when worshipping Xom, one probably should have been a little more cautious
enough to cure such quickly when other possible actions like divine
lightning or hostile summons could have been called instead.)

--------------------------------------------------------------------------------
ca161acf3c | regret-index | 2024-06-27 22:43:35 -0230

Loose odds and ends vault review
Not too much of note, but still noted down amongst other tweaks:

 * Fixed up evilmike_haunted_forest having living tree tiles amongst the
   the dead trees.

 * No longer make the serial_ice vaults place inexplicably harmless
   enemies in D:12-15 or Vaults:1-4.

 * Marginally increased the weight of non-encompass Depths entry vaults
   that are themed vaults with Depths entry configurations; we should
   embrace more of D:15 being notable with more vaults in the same
   sort of arrangement, honestly.

--------------------------------------------------------------------------------
0121280f0d | regret-index | 2024-06-27 22:43:34 -0230

Fiery and icy Swamp end vault fusion
I've never been much of a proponent of leaning on threats not based on a
branch for branch ends when said branch ends are supposed to be the
dramatic finishing point of the branch in question. It dilutes the
branch identity and threats already present in a branch to swerve over
into a different direction with only the loosest of collective theme
justifications, and frequently doesn't even try to connect them back
to the monsters present. If we need more branch end variety, plenty
can be done while still trying to connect to what's present and with
new layouts. Sometimes this guests-work has been retroactively made to
make more sense (like pharoah ants in Spider for the death scarab end),
but I'd like to continue to keep a stern eye on such spaces regardless.

One of the most obvious manifestations of this is in Swamp, which despite
getting notable enemy updates in 0.14 and 0.26, has had a historical
obvious emphasis on looking elsewhere for more threats (due to design
patterns built up from a decade and a half ago prior to either update).
I've pared this back down a little over time for other concerns, and will
continue it here by merging two other troublesome vaults- swamp_fiery and
swamp_icy. These two have had issues for a while- the former's
unrestrained clouds fry most of what's inside before being fought (and
for a long while was at the bottom of threat level due to using, like,
steam dragons and fire crabs for a rune vault), while the latter relies
heavily on slow melee monsters and has extremely little connection to
Swamp itself beyond modified hydras. This merger emphasizes a few
different points:

 * Having both themes provides enough variety to still work with both
   the old iconic monsters and regular Swamp spawn. The half of present
   monsters that aren't hydra simulacra are instead branch spawns that
   still work with simulacra, like swamp dragons and will-o-the-wisps.

 * The clouds and walls have been reworked to make the former more
   organized and the latter thicker, enough to reduce the likelihood
   monsters will wake up and wander into damaging internal flaming clouds
   before actually approaching the vault. It also makes the external
   freezing clouds mildly easier to move past, to focus more on other
   internal threats.

 * In an experimental difference from other swamp layouts, combining
   both layouts is meant to emphasize several large open chambers
   rather than dense singular cave-boxes or a long corridor of spawns.

Let's see how such revisions work out. The old two vault layouts might get
used eventually for more elemental game-long vaults later on, but the
vault's sort of combining the two shapes together, so it's fine for now.

--------------------------------------------------------------------------------
88ce094893 | David Lawrence Ramsey | 2024-06-27 20:10:26 -0500

Actually remove Pakellas altars for version > 34.
Formerly, it was moved upward for that case, but not removed as it was
everywhere else.

--------------------------------------------------------------------------------
ef57fefe5d | DracoOmega | 2024-06-27 19:38:18 -0230

Don't allow casting Soul Splinter with Oka (elliptic)
Just an oversight.

--------------------------------------------------------------------------------
1c6beb5740 | DracoOmega | 2024-06-27 19:38:18 -0230

Change how Grave Claw recharges
There were numerous concerns raised that the original recharge behavior of
Grave Claw (a single use which was restored after 2-3 kills) was troubled.
It could place too much emphasis on the order that fights were encoutered
or prompt retreating from threatening fights to go recharge a shot
elsewhere first.

I don't want the spell to feel tedious, but I *do* want to emphasize the
'harvesting death' flavor of it while presenting a unique consumable-ish
mechanical identity. After some discussion, it was decided to try this
instead:

The player can now stockpile up to 3 charges of Grave Claw at once. Each of
these charges takes a random 4-6 living deaths to recharge. To avoid
showing a status light at all times for the state of a spell the player
will eventually stop caring about, the number of remaining charges is
listed in other ways:
 -When you are aiming the spell, the targeter line says how many charges
  are remaining.
 -When the spell is examined, it will say how many charges remain.
 -When the player is out of charges completely, there is still a -GClaw
  status light.
 -When the player expends their last charge upon casting it, there is a
  message printed.

Hopefully these are comprehensive enough while being inobtrusive.

When the player first memorises the spell, they gain one charge of it
immediately (to prevent starting necromancers from learning a spell and
then being unable to use it at all for several battles). Save files being
upgraded from an older version will also gain one charge if they already
had the spell.

Let's see how this feels.

--------------------------------------------------------------------------------
25ed1c7c0c | Nicholas Feinberg | 2024-06-27 15:04:47 -0700

Fix another bug

--------------------------------------------------------------------------------
29f3d313aa | Nicholas Feinberg | 2024-06-27 15:02:52 -0700

Silence a warning

--------------------------------------------------------------------------------
e2cddfa179 | Nicholas Feinberg | 2024-06-27 15:00:58 -0700

Fix: not every attack should eviscerate (Epsilon)
C++ is a good language.

--------------------------------------------------------------------------------
76dddd7891 | David Lawrence Ramsey | 2024-06-27 12:10:28 -0500

Add a few more glowing_adj entries to colours.

--------------------------------------------------------------------------------
fdff619988 | DracoOmega | 2024-06-27 03:06:29 -0230

Don't let your shadow cast Shadow Puppet out of combat (Acrobat)
Being the only shadow spell that didn't require a target, it was possible
to repeatedly cast summon spells outside of combat to fish for shadow
puppets - especially since low level summon spells could still produce
strong allies this way if the player's xl was reasonably high. Worse,
because the shadow triggers <25% of the time, you could be encouraged to
keep rerolling until you got lucky enough to get several in a row before
running out of MP.

Let's curtail this possibility by only allowing the spell to be cast in
combat (like other shadow spells effectively already were).

--------------------------------------------------------------------------------
f798c56413 | DracoOmega | 2024-06-27 03:03:04 -0230

Give Dithmenos melee shadows better sleep stabs
A common situation with Dithmenos stabbers is that their opening attack
kills a sleeping monster and their shadow immediately attacks another
sleeping monster which the player *could* have dispatched the following
turn, and merely wakes it up without much damage done. This feels bad.

But forbidding shadows from attacking sleeping outright enemies would feel
bad in so many other situations. Instead, let's try to make this feel less
bad by letting the shadow just stab the sleeping monster themselves.

Monsters already get a large damage multiplier when attacking a sleeping
target, but they can always roll low. Good player stabbing weapons get
some guaranteed damage, so let's give that to shadows also: if and only if
they are attacking with a short blade or felid claws.

(I am unsure whether to include the Hood of the Assassin in this condition.
Shadows normally don't care about anything the player is wearing beyond
their weapon, so it would be inconsistent with that. But not doing so may
cause a similar feelsbad situation - just a rarer one. I could be pursued
otherwise.)

--------------------------------------------------------------------------------
8a0c661859 | DracoOmega | 2024-06-27 02:54:02 -0230

Make slept monsters unable to wake before the player's next turn
There have been recurring bugs over the years of various methods of putting
monsters to sleep being immediately broken (ie: a monster being woken up
by the very thing that put them to sleep), and sometimes-brittle code
trying to patch over specific instances of this. This is an attempt at a
more general solution.

Monsters which are put to sleep via (hopefully) any method are now immune
to being woken up by (hopefully) any means until the player's next turn.
This automatically addresses special cases added to handle Creeping Shadow
procs from Ensorcelled Hibernation, should fix chaos weapons waking up
monsters that they just put to sleep, and possibly other things.

This does have the effect where player allies can attack a sleeping enemy
for bonus damage without waking it up - theoretically multiple times in a
row. In practice, I doubt this will be a real problem. Most enchanter types
are not using allies to any real effect at the same time they are sleeping
things (and would have just one-shot the sleeping enemy with their next
attack anyway). It may come up a little more often with chaos weapons and
Dithmenos, but that seems fine if it does. (It also has the positive
side-effect of removing feelsbad situations where a monster that the player
put to sleep is woken up by some immediate incidental damage they did not
anticipate.)

One may note the 'hopefully's up there. Monster behavior code is a tangled
beast and I am not at all fully confident there isn't some way to
accidentally wake a monster up despite this. We shall see.

--------------------------------------------------------------------------------
f7cbc378ca | DracoOmega | 2024-06-27 01:03:34 -0230

Allow Vehumet's range bonus to apply to the player's Spellforged Servitor
The servitor is explicitly casting the player's own spells (and is the
one summon that Vehumet explicitly supports), so it seems fair to me that
it shares the player's own range with them as well.

--------------------------------------------------------------------------------
1ed0126d3b | DracoOmega | 2024-06-27 01:03:34 -0230

Allow Vehumet range bonus to affect a few more spells
IMB, Flame Wave, and some other player-centered AoE already benefited from
an effective radius extension via Vehumet. This expands that to include
Hailstorm, Frozen Ramparts, and Eringya's Toxic Bog, which had previously
been excluded. This seems fairly harmless, arguably more consistent, and
importantly probably more fun.

--------------------------------------------------------------------------------
602a2ca46c | DracoOmega | 2024-06-27 01:03:34 -0230

Make Vehumet's 2nd gift be level 2-3 instead of 1-2 (elliptic)
There's already a fair bit of randomness in when the player can be offered
Veh gifts (compounded by randomness in when one finds Veh altars in the
first place), and getting a level 1 spell for your second gift is almost
universally sad - even if worshipped fairly early. Let's be a little more
generous.

--------------------------------------------------------------------------------
6009e8ebb8 | DracoOmega | 2024-06-27 01:03:34 -0230

Greatly boost the effectiveness of heal-from-kills at low piety
While the ability to heal HP/MP from suitable kills was nominally given at
1* for worshippers of Mahkleb, Vehumet, and TSO, the chance of it actually
happening on a suitable kill at that point was less than 1%. It basically
didn't *really* exist until a decent bit more piety was gained.

Since the amount of healing itself was already based on the HD of what was
killed (making it naturally weaker in the earlygame anyway), it doesn't
need to be practically useless at first. At the same time, it meaningfully
scaled at piety values above 6* and there's been some efforts over the
years to make piety-based things actually max at the highest level the
player can see.

This commit rescales the trigger chance to be 30% at 1*, maxing at 80% at
6*. This is slightly below the old theoretical max (85% at 200 piety), but
a combination of piety decay and diminishing returns on piety gain and
actually *spending* piety on things meant that one wasn't likely to ever
stay at 200, and so this is hopefully - at most - a tiny reduction in
practice. (This may be slightly less true for Vehumet, who doesn't have any
way to spend piety, but I still doubt it's significant. If so, these can
be decoupled from each other.)

--------------------------------------------------------------------------------
3d6ac616a9 | David Lawrence Ramsey | 2024-06-26 18:16:25 -0500

Reorder spells in Trismegistus Codex.
This fixes a test failure caused by Cigotuvi's Putrefaction's now being
level 4.

--------------------------------------------------------------------------------
3c3405656d | David Lawrence Ramsey | 2024-06-26 18:08:48 -0500

Fix spelling.

--------------------------------------------------------------------------------
3947c7c5ea | David Lawrence Ramsey | 2024-06-26 18:08:20 -0500

Fix punctuation.

--------------------------------------------------------------------------------
cefdf76d2c | David Lawrence Ramsey | 2024-06-26 18:08:16 -0500

Fix naming of #ifdef'ed-out enum.

--------------------------------------------------------------------------------
b2846a84f6 | DracoOmega | 2024-06-26 20:35:50 -0230

Fix Bestow Arms animation being visible out of LoS (regret-index)

--------------------------------------------------------------------------------
d6a4db0e28 | DracoOmega | 2024-06-26 20:35:50 -0230

Fix tag upgrade build

--------------------------------------------------------------------------------
69d1a470dc | regret-index | 2024-06-26 20:26:31 -0230

New Xom action: haste / slow / para _everything_, including you
Other gods Xom can reasonably easily make jokes about: Chei.

This categorized-as-a-bad action has Xom give the same duration (give or
take time slices and base delay) of haste, slow, or paralysis to both
the player and everything else in sight. Because of this symmetry, it's
less terrible than it seems, yet still serves a seperate purpose from
just affecting the player / individual monsters: it changes the usefulness
of subsequent summoning or necromancy from either side, it lets other
monsters wandering in be more or less noteworthy, and it lets
damage-over-time effects still tick down on the paralyzed. Should be
fine as another simple Xom action, and gets to bring up the divine
dramatics of e.g. bending time into knots.

(This does occasionally screw over formicids with mass haste, but they
also get the benefits of mass slow and mass paralysis. Xom's summon and
banishment rescaling already made formicid chaos knights far less
troubled, anyway.)

Note: I opted not to absolutely flood the message log with every single
last enemy in sight being affected. If other devs feel like this should be
done for consistency's sake or to make it be more obvious in the message
log, they may go ahead and change this.

--------------------------------------------------------------------------------
afaae9a287 | regret-index | 2024-06-26 20:16:48 -0230

Add Ambrosia to Xom's potion list
Xom loves confusion and provides both healing and magic potions, so it
seems entirely appropriate. It gets half weight to match with the other
double-sided potions like attraction and berserk, though it'll probably be
less bad than those nonetheless.

--------------------------------------------------------------------------------
c695c3f67a | regret-index | 2024-06-26 20:16:47 -0230

Let Xom decorate with more than just altars
While Xom being vain is good for characterization and jokes alike, we've
got a variety of other options at this point that reasonably allow for
some other jokes.

Xom can now rarely randomly place caches of fruit, caches of meat, open or
closed doors, and entrances to the Abyss, on open floor in the same fashion
they place altars to Xom. The caches are entirely decorative, the doors
provide a weird occasional LOS manipulation tactical benefit but are
rarely relevant for cutting off monsters so they instead get to look
nicely absurd, and the entrances to the Abyss probably won't matter too
much versus Xom being able to banish directly or getting to the normal
Depths entrance but does allow for a little bit of a dramatic yet
entirely harmless effect on the nearby environs.

With there being more terrain changes besides altars, this also lowers the
chance of Xom summoning friendly butterflies a bit to show those off,
since the other summon effects can now also include butterflies.

--------------------------------------------------------------------------------
a3c6b23753 | regret-index | 2024-06-26 20:16:47 -0230

New Xom action: surround with toadstools / demonic plants
Xom hasn't gotten new effects in eight years, and has in fact mostly lost
effects due to the miscast simplification in 3e08ee0. With Xom being a
little less likely to directly kill the player earlier on after db1107a
and b92a340, there's a fair bit more space to try and actually introduce
more upsides and more downsides to effects compared to prior. It's a bit
difficult to make too many jokes that don't feel too meta, but angling for
some of what many other gods have, since they've changed a lot more than
Xom has in the past eight years, is a reasonably easy angle to work with.

This new effect makes a ring of toadstools or demonic plants with a radius
between two to four, biasing towards the plants and radius 4 with XL.
We've still kept around toadstools around despite not using them much
(maybe they should go in more Sewers?), but they serve fine enough as
uniquely frail firewood, and demonic plants are entirely in the spirit of
Xom's still-somewhat-demonic focus. Mechanically, this effect may block
off player retreats, or it might prevent large groups of enemies from
properly surrounding the player as they fight / try to teleport away.
Reasonable enough for one of many upcoming bits of spice, and allows a
few lines riffing off of Fedhas (alongside some other silly joke lines).

--------------------------------------------------------------------------------
5113baeebe | regret-index | 2024-06-26 20:16:47 -0230

Give Sif Muna's Channel Energy back its success message
This was lost in 942ac9c, and I feel like it's better for consistency's
sake to make gaining all buffs actually provide a message in the message
log; by the time one can make it much reliable, it's only one message
across five or six turns of spellcasting anyway.

--------------------------------------------------------------------------------
6dbd6f5238 | DracoOmega | 2024-06-26 20:15:36 -0230

Fixup a renamed enum that got missed when squashing

--------------------------------------------------------------------------------
c9b62028b5 | DracoOmega | 2024-06-26 20:04:41 -0230

Fix rings of wizardry and amulets of regenMP having a stash tag of {buggy}

--------------------------------------------------------------------------------
2c54b8fa63 | DracoOmega | 2024-06-26 20:04:41 -0230

Cigotuvi's Dreadful Rot -> Cigotuvi's Putrefaction (level 4 Necro/Air)
Cigotuvi's Dreadful Rot was a spell in an awkward place. It could be used
to open up small gaps against enemies in corridors in the earlygame, but it
was found only on the background which already had Call Imp and Blink, both
of which can do this more flexibly (and actually be a primary kill tool, in
the case of Call Imp). You could sometimes use Mephitic Cloud to confuse
enemies into it, but it was unclear how much help you needed against an
enemy that was already confuse-locked.

So let's try a different and higher-level take on making miasma clouds.

Cigotuvi's Putrefaction is a smite-targeted level 4 Necromancy/Air spell
which must be cast on a living monster that is at least 'heavily wounded'.
Repurposing the old cloud spreader code (last used about 10 years ago, but
never removed) it causes miasma clouds to billow out from this monster over
the next several turns. These clouds start as harmless 'faint miasma' that
exists to give the player a better idea of the area of effect before
turning into proper miasma the next turn. Faint miasma will never turn
harmful so long as the player themselves is standing there (so no matter
what terrain you create the clouds on, they won't hurt you - though it's
still possible to surround yourself!)

The spell has a fairly significant draining cost, but this cost itself is
heavily reduced by spellpower. (Increasing number of clouds and cloud
duration via spellpower felt like it ran the risk of sometimes making the
spell harder to use instead of strictly better.)

Let's see if Corpse Rot the Fifth (Sixth?) feels in a better place.

--------------------------------------------------------------------------------
bfa4c909b4 | DracoOmega | 2024-06-26 20:04:41 -0230

Don't absolutely forbid monsters from stepping into miasma
Unlike essentially every other harmful cloud in the game, no monster that
could be affected by miasma would *ever* step into it. Even mindless
monsters who explicitly will walk into any other type of cloud, no matter
how injured they are, would stop dead in their tracks in front of miasma.

This made using some miasma-related effects as a player somewhat awkward.
Either it was too hard to convince anything to stand in it or it could be
used as a weirdly reliable obstacle even to endgame monsters that would
barely be harmed by it.

Let's try just making the logic use the same hp-based check it does for
other damaging clouds in general.

--------------------------------------------------------------------------------
c0b93f29f4 | DracoOmega | 2024-06-26 20:04:41 -0230

Buff / unbreak miasma cloud effects versus monsters
Due to a seemingly innocent change in 3abaafb9f6336d86ed529b034a35b75a16c8f4ec
that tweaked the formula for slow duration from BEAM_SLOW versus monsters,
miasma clouds went from slowing monsters for ~10+ turns to exactly 1 turn.
(This is because the fake beam miasma used to apply slow had an ench_power
of 0, which previously gave a slow duration of 0 and now gives a slow
duration of 1. Except 0 is special-cased to use the 'default' duration of
an enchantment as specified in mon-ench.cc, which was actually something
like 10 times longer...)

This gives miasma slowing an explicit duration again (bypassing any beam
nonsense), as well as applying additional impact damage to monsters.
(Unlike against players, miasma clouds applied identical poison and nearly
identical base damage to monsters as regular poison clouds. Since monster
poison stacking is weird, rather than try to poison them harder (which
would barely matter) apply additional impact damage if they fail their
rPois check as a proxy for how much scarier they are supposed to be than
poison clouds).

--------------------------------------------------------------------------------
3d5deab1c5 | DracoOmega | 2024-06-26 20:04:41 -0230

Make necromancers start with a dagger
Now that their level 1 spell will often involve them also meleeing the
target before killing it.

--------------------------------------------------------------------------------
2685a3d210 | DracoOmega | 2024-06-26 20:04:41 -0230

Add Grave Claw (level 2 Necromancy spell)
This is partially intended to make Vampiric Draining no longer the singular
damage tool a necromancer relies on before Animate Dead comes online, and
also as a relevant replacement for Cigotuvi's Dreadful Rot in the Hedge
Wizard book, where I think it may also play interestingly.

Grave Claw is a smite-targeted direct damage spell that does physical
damage and inflicts a very short-term Bind effect on a monster. It can be
fired while on the other side of your allies (allowing it to play well with
Soul Wisp - and sometimes help it get an extra hit on a monster if the wisp
spawns on the other side of it), can damage rN-immune targets, and even
does more upfront damage than Vampiric Draining (though checks AC). With
one important stipulation: it cannot be recast until you have killed 2-3
living/zombifiable monsters. This makes it a situational tool that can
help equalize otherwise difficult fights, but can never be the main way you
deal with anything.

I think a spell directly relating to harvesting deaths is good flavor
for early necromancers to have, especially now that their level 1 spell no
longer does this. It helps with hostile undead (while not preventing them
from being an overall bad matchup) and I think it presents some interesting
decisions. It does overlap with Vampiric Draining in several ways, but I
think there are enough distinctions that this will improve the gamefeel of
their kit as a whole.

(Hedge Wizards can also benefit from a more impactful spell in their
necromancy slot, and they too have an ally to synergize with it.)

--------------------------------------------------------------------------------
c2cd7fecab | DracoOmega | 2024-06-26 20:04:41 -0230

Replace Necrotise with Soul Splinter
Necrotise is a perfectly functional damage spell for early floors, but the
skeleton often feels like an afterthought; there's frequently nothing
around for it to hit and it will usually be gone by the start of any
subsequent battle. By the time this is less true, its damage is already
starting to fall off. (Also: neither it nor Vampiric Draining can do
anything to rN+ monsters, some of which are quite threatening to a
background that is already considered a weaker mage start).

There has been some desire for necromancer to have a more reliable 'ally'
spell before reaching Animate Dead, but one that still clearly falls off
past earlygame. Derived undead have some issues in that regard, with how
they naturally scale with the monsters they are made from, so this is an
attempt at accomplishing this goal with a new fixed ally.

Soul Splinter is a will-resisted enchantment that breaks off a tiny
fragment of a monster's soul into a Soul Wisp: a short-lived ally that will
fixate on the monster it was extracted from (much like Haunt summons do at
higher levels) though can stick around a short while afterward. A wisp can
be created from any spectralisable monster and will spawn adjacent to it,
also inflicting weakness on the monster for more or less as long as a part
of its soul is out of it. Higher HD monsters will produce wisps with
somewhat stronger attacks, but its health is always low.

The beam-based targeting and unique monster placement should make it feel
distinct from existing level 1-2 summons while remaining necromantic. It
notably helps necromancer's bad matchup against ufetubi. The fact that it
can spawn on the opposite side of a monster in a corridor to let the
necromancer team up on someone is also relevant. Let's give it a try!

--------------------------------------------------------------------------------
456191073c | David Lawrence Ramsey | 2024-06-26 17:30:03 -0500

Use && instead of and.
The latter is valid, but is harder to search for.

--------------------------------------------------------------------------------
6b5e21af4e | Nicholas Feinberg | 2024-06-26 15:13:30 -0700

Fix missing space (SallyRoses)
Minor oversight in 325916669285695f42df15ebe3e2019d2ac322ea.

--------------------------------------------------------------------------------
811786a8ad | David Lawrence Ramsey | 2024-06-26 08:00:33 -0500

Add a few more glowing colour messages for Xom.
One matches the one already used for singular items, and the other uses
the newly revived glowing_adj.

--------------------------------------------------------------------------------
97836dd66e | David Lawrence Ramsey | 2024-06-25 23:17:07 -0500

Tweak orc priests' description of Beogh.
New Beogh seems to have enough mercy to balance out their cruelty.

--------------------------------------------------------------------------------
ec53afd64b | David Lawrence Ramsey | 2024-06-25 22:10:56 -0500

Fix typo.

--------------------------------------------------------------------------------
dcf5b866f4 | David Lawrence Ramsey | 2024-06-25 21:30:03 -0500

Use @the_monster_possessive@ in one more place.

--------------------------------------------------------------------------------
b399a4f4c3 | David Lawrence Ramsey | 2024-06-25 21:20:29 -0500

Add another glowing_adj to the colour database.

--------------------------------------------------------------------------------
f9429a18e8 | David Lawrence Ramsey | 2024-06-25 21:17:44 -0500

Fix comment typo.

--------------------------------------------------------------------------------
4b1f165adb | David Lawrence Ramsey | 2024-06-25 21:15:44 -0500

Add another monster alchemy miscast message.
Based on the similar unseen alchemy miscast.

--------------------------------------------------------------------------------
57f3d0c160 | David Lawrence Ramsey | 2024-06-25 21:13:03 -0500

Simplify glowing dust miscast messages.

--------------------------------------------------------------------------------
2796a0dc91 | David Lawrence Ramsey | 2024-06-25 21:09:50 -0500

Fix incorrect weight in monster miscast message.

--------------------------------------------------------------------------------
6d36d0655f | David Lawrence Ramsey | 2024-06-25 21:03:47 -0500

Use @the_monster_possessive@ in more places.
I missed these in the last update.

--------------------------------------------------------------------------------
0e839f5252 | David Lawrence Ramsey | 2024-06-25 21:00:25 -0500

Add glowing colours to the color database.
Pulled from the old scrolls of random uselessness.

This partially reverts commit 00efbec225e6347ddd28a58c3dd2184177f46084.

--------------------------------------------------------------------------------
13f425ce8b | DracoOmega | 2024-06-25 22:47:19 -0230

Fix a weird infinite loop with ally retreat orders (robotcentaur)
Due to an oversight, after ally retreat behavior was refactored by 
6316ba047ae8947d194a466133b87ee628c4d497
it didn't actually properly end once they'd reached their destination.
Their behavior and patrol points would be set properly to end it, and then
handle_behavior would silently reset their behavior back. I am frankly
astounded that no one else reported this problem before now.

But even worse: because it would set their patrol point to (0, 0) WITHOUT
actually changing their behavior to not seek it out, anything that reached
the end of where it was going would immediately attempt to travel to
(0, 0). And apparently if you were on a level where the ally in question
could get near to the level boundary (eg: Shoals), this would cause an
infinite loop. I am not sure the specific cause of this, since it went away
when the first bug was fixed; I assume it was because handle_behavior kept
getting called to give the monster somewhere valid to move and it kept on
insisting it should move to (0, 0).

Anyway, it seems to work properly now.

--------------------------------------------------------------------------------
bc0a3b031a | David Lawrence Ramsey | 2024-06-25 14:39:34 -0500

Add another Donald Dithmenos line.

--------------------------------------------------------------------------------
be422a758e | David Lawrence Ramsey | 2024-06-25 12:51:01 -0500

Don't apostrophise grunting crab melee attacks.
The monster name isn't used in those messages at that point, and getting
the apostrophisation in that case is complex enough that it currently
isn't worth the effort, and likely will be wrong because it involves
fake language support anyway.

--------------------------------------------------------------------------------
3259166692 | David Lawrence Ramsey | 2024-06-25 12:32:15 -0500

Make simple god and monster msgs apostrophise.
By adding an extra parameter to the functions, so that "'s" isn't
hardcoded everywhere the possessive is needed.

The only instances of a hardcoded "'s" left are ones in string
replacements that will likely break if changed (or if apostrophise()'s
current logic is changed); the vast majority are now properly passed
through apostrophise().

--------------------------------------------------------------------------------
e3f4e31a3f | David Lawrence Ramsey | 2024-06-25 09:29:39 -0500

Reflavour Terence.
He's now a veteran of a war with the armataurs. Much of his dialogue has
been rewritten to reflect this.

--------------------------------------------------------------------------------
5e8508d677 | RypoFalem | 2024-06-25 09:21:52 -0500

Update search help text for shops (PJRamaglia)
! is used to toggle between travel and view in the search window. ? seems to do 
nothing.
--------------------------------------------------------------------------------
4ceacca870 | DracoOmega | 2024-06-25 04:17:50 -0230

Fix a possible crash with Sign of Ruin (Dhd)

--------------------------------------------------------------------------------
b4869f84db | David Lawrence Ramsey | 2024-06-24 01:27:40 -0500

Fix spacing.

--------------------------------------------------------------------------------
5c60499851 | Nicholas Feinberg | 2024-06-23 22:39:25 -0700

Fix azure jelly xv display (Flugkiller)
Any monster with two or more identical melee attacks *followed* by
more melee attacks of a different type would fail to display the
latter attacks. Oops.

--------------------------------------------------------------------------------
0fb811b797 | regret-index | 2024-06-24 02:21:51 -0230

Bump up Xom chaos upgrades and Xom-through-player spells
 * Make chaos branding a monster's weapon give a stronger range: +2 to +4,
   instead of +0 to +4. This should make it a bit more tempting to use
   chaos brands as Xom indirectly offers by consistently offering more
   enchantment on the weapons dropped afterwards, which continues to be
   in the proper spirit of Xom.

 * Give Xom Fulsome Fusillade at the near-top end of player spells they
   can cast through the player. While the presented list is mostly trying
   to avoid direct damage higher than OTR, it's also a random elements
   spell that inflicts random debuffs in random areas, which is extremely
   chaotic in a nice dramatic fashion similar to Chain of Chaos staying
   just above it. While there's a bit of jank in it running out
   immediately if one has next to no MP, that also works well as a joke
   Xom can pull on the player, and it takes so long to get to the point
   one can get enough tension to see the spell even non-spellcasters
   should have enough MP to work with anyway.

 * Give Xom's spells-cast-through-the-player a small amount of flat
   additional spellpower scaling to one's XL. Currently, such effects use
   a weird spellpower range based on how far one is away from the centre
   of piety, which makes Chain of Chaos and the various hexes options
   regularly fail to do almost anything against enemies for a later chunk
   of the game; the player's XL contributing to this should help with Xom
   feeling more noticeable later on as they currently struggle with. Since
   Xom is rarely a reliable god at the best of times and all of the spells
   are scaled directly to tension anyway, this shouldn't much worrisome
   a buff.

--------------------------------------------------------------------------------
db1107abd2 | regret-index | 2024-06-24 01:40:30 -0230

Scale Xom's summons to XL, introduce a lot more options
For a god of chaos that has little restraint in choice or power, Xom is
kind of dull in their choice of servants. Demons tiers 3 through 5 and
some random shadow creatures both binds singularly demons too heavily to
chaos and leaves out a variety of more fun and weirder options than what
one will see plenty of in Orc or the branch they're already within.

Alongside the old demon summons (and a few more demon summons at higher
tiers), this adds a fairly large amount of various living and undead
monsters themed around various themes Xom already focuses upon:
relocation, confusion, mutation, variable summoners, chaotic natures, and
so on and so forth. There's also a sparse amount of additional demons
meant to preserve and extend the old demonic flavour, mostly aimed at
demons not more obviously used by Makhleb or Nemelex. To help make it
more plausible to parse such, there's also a decent chance to make given
choices appear in pairs. Also, shadow creatures calls themselves will
always get one of these manifold chaos options (and are slightly less
common), to both make it a little less plain and because it's a little
funny to see a given demon look lost in a swarm of Vaults humans and
troll / taurs.

This also adjusts the scaling of monsters chosen and placed: it is now
impossible to meet any tier-3s on D:1 without Xom being bored or
abandoned, while one will stop seeing tier-3s past lair branches. There
is also a lot less of a chance to see over 6 or so monsters, outside of
a couple of banding-designated monsters such as laughing skulls or dream
sheep, since the overall pool is a lot more dangerous / strong later on
than it used to be. This should mostly make it so Xom is much less likely
to directly kill on the first few floors, but is always providing some
degree of potential threat later on instead of hitting a tier-3 wall or
solely relying on shadow creatures. While summoned allies are also scaled
to be notably strong later on, getting more than one comes with quite a
short duration by default, so it's just a per-fight uncontrollable perk.

TODO: This is still somewhat rather limited in decent options for lategame
and extended characters, in trying to not overlap too hard with Lugonu,
Makhleb, Jiyva, or using holies. Maybe Xom briefly summoning a distorted
bound soul of a slain unique as an ally could pass as a joke at Yred's
expense? Maybe we just need a few more Depths, Zot, and Pan enemies.

--------------------------------------------------------------------------------
73ecd75965 | Nicholas Feinberg | 2024-06-23 17:52:59 -0700

Remove unused god passive messages
These were added in 5f1ddaaadb3 (2015) and last seriously touched
in fc596c4910b (2017). They are a grand and noble project which no
one has taken up, and which has caused a great deal of dev confusion
as a result. (E.g. people changing these messages, which do nothing,
instead of the real ones.)

They're also a bit rotten, I suspect.

Let's cut them for now. We can re-add them whenever someone has the
steam to take this on again.

--------------------------------------------------------------------------------
6d26cd89fa | Nicholas Feinberg | 2024-06-23 17:46:48 -0700

Fix thresholds for kill god passives
Match messaging in religion.cc, etc.

--------------------------------------------------------------------------------
bf6a2ca414 | Nicholas Feinberg | 2024-06-23 17:45:35 -0700

Revert "Make Veh MP restore better at low piety (DracoOmega)"
We're going to make a better version of this change later.

This reverts commit c39d94d1f1a73ce59934977991b5215bdd183d79.

--------------------------------------------------------------------------------
c39d94d1f1 | Nicholas Feinberg | 2024-06-23 17:34:18 -0700

Make Veh MP restore better at low piety (DracoOmega)
There's some feeling that this is too unimpactful early on.

--------------------------------------------------------------------------------
950dbd3e0a | Nicholas Feinberg | 2024-06-23 10:15:01 -0700

Maybe fix gem mimic bugs
Don't let gem mimics block real gems from breaking.

Also, always show shattering messages for *on-map* gems, even if
more_gem_info is false. That setting is only supposed to hide it when
gems shatter *while in your inventory*.

--------------------------------------------------------------------------------
6ea4a1c0b2 | regret-index | 2024-06-23 00:45:33 -0230

Further additional monster spell icons
With over 60 monster spell tiles done for 0.32, we're roughly at about 27
monster spells lacking distinct icons. Ideally, that latter number would
be 0, but it's taken plenty enough to get to this point.

Sources:

 * Chain of Chaos: Sastreii's Manifold Assault and snw-0's Mass Confusion.
 * Chaos Breath: snw-0's Freezing Cloud's icon.
 * Conjure Living Spells: snw-0's Recite icon and hellmonk's recolouring
                          of ontoclasm's living spell icon.
 * Doom Howl: snw-0's summoning ring and roctavian's Shadow Fiend tile.
 * Flaming Cloud: snw-0's standard cloud icon.
 * Flay: Denzi's flayed ghosts.
 * Funeral Dirge: snw-0's Might icon, Ultraviolent4's Swiftness icon,
                  CanofWorms's Fugue of the Fallen icon, and flodiebold's
                  adjustment of the degeneration potion icon.
 * Harpoon Shot: roctavian's Stone Arrow and PleasingFungus's Lesser
                 Beckoning.
 * Holy Flames: roctavian's Ring of Flames and snw-0's Swiftness.
 * Spit Lava: Denzi's Spit Poison and roctavian's Stone Arrow.

Also, mirrored the various dragon / draconian breath / spit tiles to face
right rather than left, to more closely match the direction the majority
of other conjuration icons are oriented.

--------------------------------------------------------------------------------
6d3ed6f0af | DracoOmega | 2024-06-22 04:53:11 -0230

Quick stopgap measure to fix webtiles flashes sometimes being fully opaque
For unclear reasons that I have been completely unable to reproduce,
flashes for some players in webtiles sometimes become completely opaque
instead of transparent. Even worse, since this applies to the constant
screen effect from berserk, it can make the player completely unable to see
the battlefield for the entire duration of the effect.

This behavior is inconsistent, and seems to sometimes go away on reloading,
but given that we can't expect players to know or do this, I've attempted
to disable the only place I can see that allows for variable alpha
transparency in flashes (ie: any value other than hard-coded 100/150).

This will result in the screen effect for blind being a bit overly loud,
but hopefully this is just a short-term measure until someone can figure
out what the real problem is. (I mean, hopefully it even works - it's hard
to test a fix to a problem I cannot reproduce...)

--------------------------------------------------------------------------------
b5a8b8454b | Aliscans | 2024-06-22 01:44:54 -0230

Mark transporter destinations as known on entering a fully_mapped level
This lets the player use travel commands to reach an altar in
hellmonk_temple_divided_pantheon (where there are transporters between
the stairs and most of the altars) without first visiting the
transporters manually.

brflag::fully_map now also prevents transporters from appearing in the
level overview. On other levels this happens until the transporter is
used.

--------------------------------------------------------------------------------
c13c8a0a3b | NormalPerson7 | 2024-06-22 01:16:36 -0230

Use redefinable yellow for poison in hp-bar (mumra)
This brings poison in line with all other HP/MP-bar colours.

--------------------------------------------------------------------------------
2bc2bbeccd | NormalPerson7 | 2024-06-22 01:16:36 -0230

Allow using black as a menu_colour for Webtiles inventory UI
Previously, using black as a menu_colour option was never useful,
because black text is always invisible on the black game background.
However, we can now redefine the colour black, as of d719f66, opening
up a 16th possible text colour to use with menu_colour.

Upon trying to do exactly this myself, I discovered the Webtiles
inventory UI implicitly, and apparently unintentionally, replaces
black text with lightgray, regardless of what black may have been
rebound to. Let's fix this, so we really can have a 16th colour.

--------------------------------------------------------------------------------
d165621694 | DracoOmega | 2024-06-22 00:51:52 -0230

Fix another invisible monster leak with Gavotte
(Don't leak whether a visible monster will take damage only because it
*hits* an invisible one.)

--------------------------------------------------------------------------------
9ce1d27a0f | NormalPerson7 | 2024-06-22 00:51:52 -0230

Don't leak invisible monsters when casting Gell's Gavotte (#3836)
Fix the targeter revealing the locations of invisible monsters in
line of sight when they would be hurt by the spell.

Resolves #3836

--------------------------------------------------------------------------------
a7e19f97df | DracoOmega | 2024-06-21 17:50:32 -0230

Cut an extremely niche and mostly-pointless monster behavior
If holies walked over a good god altar, or branch natives of orc, elf, or
spider (but no other branches!) walked over the entrance/exit to their
branch (only the entrance, in Spider's case) while wandering, they had a
chance to set that location to their patrol point and stick near it. Did
you know that?

Of course you didn't.

(Realistically, this mattered slightly more when monsters could spawn on
top of stairs over time, and this could cause these monsters to cluster up
around the place they came out of. But that behavior is itself long gone,
so this can join it.)

--------------------------------------------------------------------------------
02cc6ff11a | DracoOmega | 2024-06-21 17:46:31 -0230

Remove a couple vestiges of armataur curl status

--------------------------------------------------------------------------------
2ec1b1993f | DracoOmega | 2024-06-21 17:45:57 -0230

Fix all statuses coloring SH blue in webtiles
After removing Divine Shield's effect on SH, this left SH-boosters with an
empty string (even when there is no defined "sh" member at all...) which
matches all other strings and made all statuses color your SH.

I could reorder checks so that it never looks for "sh" here, but then it
might surprise someone in future that tries to put another in and it
doesn't work.

This is still dumb, though.

--------------------------------------------------------------------------------
cb7df17468 | DracoOmega | 2024-06-21 16:52:48 -0230

Don't crash on reusing a shadow mimic with a non-ranged weapon
If a player created a shadow mimic while wielding a non-launcher, then
switched to a launcher and triggered a shadow shot, the code would assume
it could reuse the existing shadow mimic and attempt to fire from whatever
it was wielding (which crashed). Now we simply don't reuse a shadow mimic
for shadow shoot unless it's wielding a launcher.

--------------------------------------------------------------------------------
8499d7ef60 | DracoOmega | 2024-06-21 16:51:15 -0230

Prevent casting Starburst with LoS 0 (elliptic)
Due to how the beams are handled, this would try to fire all 8 of them
directly at the player instead (though at least it prompted you not to).
It already was incapable of firing *beyond* your LoS.

--------------------------------------------------------------------------------
2ed6c15cf2 | DracoOmega | 2024-06-21 16:50:25 -0230

Prevent Polar Vortex from affecting things beyond the player's sight range
The fact that Polar Vortex could damage enemies beyond sight range was most
obvious in combination with Primordial Nightfall, but was already
attainable just by being a kobold (and especially one who also had a scarf
of shadows).

Now we simply cap the max vortex radius each turn by your current vision
range.

--------------------------------------------------------------------------------
9a3e478684 | DracoOmega | 2024-06-21 13:24:02 -0230

(Maybe) fix LoS range being semi-permanently reduced by Nightfall
Or rather, it seemed like it may have been possible for Nightfall to end
while the player's LoS was still less than normal, and then nothing would
trigger a LoS range update to reset it properly. (It's not altogether
clear to me how, but might involve low invo and high delay actions.)

Now, simply call update_vision_range whenever Nightfall wears off, which
should fix any similar problem.

--------------------------------------------------------------------------------
b304cf6f2a | David Lawrence Ramsey | 2024-06-21 10:47:46 -0500

Tweak wording of Ruin status description.

--------------------------------------------------------------------------------
0ea0d47ddd | DracoOmega | 2024-06-21 13:02:35 -0230

Fix Dazzling Flash player tracer not working properly (dilly)
Looking at the code I edited here, I wonder if mons_aligned should just be
renamed to actors_aligned or something, to make it more obvious that it
works just fine for players, too.

--------------------------------------------------------------------------------
de231d1551 | DracoOmega | 2024-06-21 13:00:48 -0230

Don't crash when dropping items into lava

--------------------------------------------------------------------------------
21e9c0a11a | DracoOmega | 2024-06-21 13:00:33 -0230

Add missing status description for Sign of Ruin

--------------------------------------------------------------------------------
6630b05a1f | DracoOmega | 2024-06-21 01:22:50 -0230

Remove some unused arguments

--------------------------------------------------------------------------------
afa2d2b35f | DracoOmega | 2024-06-21 01:22:17 -0230

Fix a possible crash

--------------------------------------------------------------------------------
99379c98dc | DracoOmega | 2024-06-21 00:28:40 -0230

Don't block Deathly Blight from slowing stationary monsters

--------------------------------------------------------------------------------
1438d3d306 | DracoOmega | 2024-06-21 00:28:40 -0230

Replace Kiku's Torment power with Sign of Ruin
Kiku's Torment ability was widely considered a very niche aspect of their
kit. While its effect could be situationally powerful, it was unpredictably
dangerous to the player *and* duplicated a scroll effect. There were often
already enough scrolls of torment in a game for the number of times one
really wanted to use torment (unless the player was undead) resulting in it
just not being a button people were very excited to have. So let's
experiment with something else.

The revamped Sign of Ruin was done with this possibility in mind; Soul
Scholars were always Kiku worshippers, after all. By debuffing a group of
enemies with something that scales directly off receiving melee attacks
(and has no friendly-fire), it plays well with having lots of minions in
play, but importantly does not actually *require* them. (An earlier draft
used the old ally-buff version of Black Mark, but if Kiku hadn't deigned to
give you actual ally creation spells you could use with Wretches, it was
very sad).

Kiku has the highest abandonment rate of any god besides Ignis (part of why
their wrath was buffed significantly a short while ago). Maybe a little
carrot to go with that stick?

(The numbers are still pretty fuzzy, but I'll adjust them based on feedback
if the net effect of having this ability feels good.)

--------------------------------------------------------------------------------
65f7e67581 | DracoOmega | 2024-06-21 00:28:40 -0230

Split Black Mark (the spell) away from Black Mark (the mutation)
Black Mark was the signature spell of the now Demonspawn Soul Scholars, but
was usually unimpactful in practice and symmetry with the player demonspawn
mutation of the same name limited its ability to be buffed without
confusing people (and had historically resulted in its most significant
effect being outright removed). An always-on player passive and a signature
short-term status used only in extended have such different balance
considerations that I think it better if they just be two entirely
different effects.

The DS mutation remains named Black Mark (and is unchanged). The Soul
Scholar spell has been renamed to Sign of Ruin and its functionality
changed (though with the same core mechanical thrust). The spell now places
a debuff on a 5x5 area of enemies that will trigger each time those enemies
are hit with a melee attack, applying heavy draining and then one of either
slow, weak, or blind. This is basically an inverted (and more powerful)
version of their old effect, with the antimagic removed (Warmongers in the
same zone already have the anti-magic end of things as a focus).

As a debuff, it can follow the player through an extended battle, but there
are additional lines of counterplay if things get rough enough (ie:
!cancellation works on it). It also works better with the subject of the
immediately following commit.

--------------------------------------------------------------------------------
c06f56343a | DracoOmega | 2024-06-21 00:28:40 -0230

Make Divine Shield (hopefully!) more interesting
TSO's Divine Shield ability was reasonably useful, but extremely plain. It
gave you some more SH for a little while and... that was it. (It also
arguably suffered a bit with the change to max-blocks-per-turn, where even
tacking on a large SH number to a buckler still only let you block once per
turn).

Let's try something that might feel a little more exciting. Instead of
giving you SH over a medium period of time, Divine Shield now causes you to
have a 100% block chance for the next X attacks (for relatively small
values of X without lots of invo). Ranged attacks will be reflected and
melee attackers have a 50% chance to be briefly blinded. (The fun thing is
that since TSO prevents stabbing entirely, blindness is actually purely
defensive for once, instead of also offensive.)

Guaranteed [block X times] has some potentially interesting ramifications
in that it's much worse against rapid numbers of small hits and much better
against slow singular attackers. (It's worth noting that shield blocks
always happen *before* the player rolls to dodge, so many of those blocks
might get eaten up by attacks that would have missed you anyway, making
the raw number look potentially stronger than it actually is.) The
blindness gives a potentially longer-term benefit even if the blocks get
eaten immediately, but it does matter where you are standing when you
activate it.

In any event, the hope is that this makes earlier TSO a little more
exciting and feels fun to use.

--------------------------------------------------------------------------------
c1a0a21539 | DracoOmega | 2024-06-21 00:28:40 -0230

Don't let TSO halos make allies easier to hit
TSO offers some obvious support to a general summoner: halo makes summons
more accurate and TSO's blessings will heal and extend the duration of
summons. It feels slightly awkward in this context that it will *also* make
all of your non-divine summons more likely to *be* hit. Let's lean a little
more into generalist summoner support by making this not be the case.

--------------------------------------------------------------------------------
24f1105c5b | DracoOmega | 2024-06-21 00:28:40 -0230

Player blindness tweaks
Move the min and max duration rolls from chaos/light beam blindness closer
together, add a status description for webtiles, and let wizmode super
healing remove blindness.

--------------------------------------------------------------------------------
7051e9d3e0 | DracoOmega | 2024-06-21 00:27:21 -0230

Simplify player Blindness formula, bugfix
Increase of directly interacting with to-hit rolls relative to a target's
EV (which make the status itself doubly ineffective against non-evasive
targets and was more complex to describe), being Blind now causes the
player to have a flat chance to miss with any attack or dodgeable spell -
multiplicative with your baseline accuracy.

At distance 1, this is a 30% miss chance, increasing by 15% with each tile
of distance and capping at 90%. 90% is very high, of course, but for a
temporary status effect that already has several forms of counterplay, it
*should* feel tactically dubious to just punch through it at its worst.

(This also fixes a bug with the previous implementation where *all* beams
aimed at monsters would suffer blindness penalties relative to the player's
location while the player was blinded - even if the player was not the one
firing them!)

--------------------------------------------------------------------------------
33b0d0bbf2 | mumra | 2024-06-21 00:27:21 -0230

Revised formula for player blindness
The old formula produced weird cliffs where chance dropped rapdily to 2% at
an arbitrary distance, because we were scaling to_hit to *below* the
target's ev where it is no longer possible to hit them.

The new formula treats target ev as a "minimum" to-hit and scales to near
that point instead, using a simple inverse formula to produce a curve. This
provides a much smoother and more predictable change over distance while
still meeting the basic requirements of "noticable in melee, but extreme at
LOS range". The malus is move to pre_roll rather than post_roll as this
adjustment *has* to be made before the roll when we still know the margin.

Another surprise: it escaped my attention before that ev is applied wildly
different in beam accuracy vs regular combat; for beams, the ev is
randomised so the effective useful to-hit is 0 instead of the targets ev.
So the old formula was already behaving quite reasonably for beams, but the
new formula didn't: so now beams pretend that ev is 0 for the purpose of
the blindness malus.

Other minor changes:
 - Tweaked language to be less ambiguous
 - Removed blindness preventing you read scrolls
 - Don't specifically wake player up on blinding (the cause of the blinding
   will probably wake them anyway)
 - Slightly shuffle messaging and other side effects so they don't trigger
   if blindness didn't increase
 - Cleaned up an unused key and some unneccessary consts
 - Fixed some Lua interface comments
 - Split out the description function from the calculation so the same
   rendering can be used for beam targetting

--------------------------------------------------------------------------------
8b871bd4d5 | mumra | 2024-06-21 00:27:21 -0230

Blindness visual: fix missing function call

--------------------------------------------------------------------------------
624a8697e9 | mumra | 2024-06-21 00:27:21 -0230

Monster version of Dazzling Flash
Now we can blind the player in an interesting way, dazzling flash can be
unlocked for player ghosts.

The resist mechanism (chance depending on player XL vs spell power) is
perhaps not great and should be reviewed.

I gave the spell to Moon Trolls slightly arbitrarily as I was testing with
them and it felt thematic so I left it in (it's a very rare encounter
anyway).

--------------------------------------------------------------------------------
21430ed920 | mumra | 2024-06-21 00:27:21 -0230

Gozag wrath can distract players
We now have an effect quite close to disraction, we can blind the player
when they see the glint of gold.

--------------------------------------------------------------------------------
99f3dc8830 | mumra | 2024-06-21 00:27:20 -0230

Use blindness for Zin wrath
Zin recite can blind monsters so it seems reasonable to do the same to the
player.

--------------------------------------------------------------------------------
f578f06fe3 | mumra | 2024-06-21 00:27:20 -0230

Add blinding to klown pie effects

--------------------------------------------------------------------------------
224f11bc01 | mumra | 2024-06-21 00:27:20 -0230

Add blinding to possible chaos effects

--------------------------------------------------------------------------------
f154754031 | mumra | 2024-06-21 00:27:19 -0230

Add visual effect for blindness
A flash overlay with opacity increasing with distance from player

--------------------------------------------------------------------------------
748e439bf7 | mumra | 2024-06-21 00:27:19 -0230

Add an alpha channel to screen flashes
Makes it possibly to specify a custom alpha level per tile for a screen
flash. Not actually used anywhere in this commit, it's for blindness effect
in forthcoming commit.

--------------------------------------------------------------------------------
99b0e4aa55 | mumra | 2024-06-21 00:27:19 -0230

Make flashes consistent in webtiles
Webtiles only had a full-screen flash but in desktop it was per-tile (with
an optional hitfunc). The colour was already available on screen_cell_t so
it was easy to just send this value in the cell json only if it changed,
and this even saves redraws as we don't need to invalidate the entire map
on a flash, only the changed tiles. And it's much easier on the eyes to
boot.

--------------------------------------------------------------------------------
369c5d7d74 | mumra | 2024-06-21 00:27:19 -0230

Blindness: player accuracy debuff
Monster blindness has been available in various forms for some time, but
there was no equivalent player effect and obvious sources of blindness just
Confused the player if anything.

The new Blind status can be inflicted on the player with a wand of light
and with atropa darts.

While affected, your accuracy is reduced; by more the further away the
target is. Mechanically your "to hit" roll is reduced by 10% for every tile
distance (starting at your own tile) so maximum 80% for a normal race or
90% for Barachi. It affects melee and ranged, and also those spells that
care about accuracy, so this has most effect on ranged combat.

--------------------------------------------------------------------------------
be225da3e8 | mumra | 2024-06-21 00:27:18 -0230

Make "to-hit" display more accurate and consistent
A number of improvements to the % displayed while targetting and also on
monster information screens.

The existing state of things was not ideal, and not made clearer by a lot
of duplication of logic. In some places "to hit" was shown while in other
places "to evade", meaning the player has to invert their mental arithmetic
arbitrarily. This was supposedly intended to convey that some calculations
did not take shield blocking into account but others did; however even this
logic was not always applied and some cases of "to hit" were still
pre-shield, and regardless there was no way for the average player to
understand this distinction. (It also doesn't help that in code language,
"to hit" is always the roll *before* accuracy penalties and shields take
place). The calculations were also not done at all for thrown projectiles,
and I uncovered a bug where due to a double negative, Umbra was actually
*increasing* accuracy (but the % display got used the *correct* formula so
nobody ever noticed). And different paths implemented different logic for
displaying the % (melee vs throwing vs ranged vs spells).

This commit fixes all of that; shields are now taken into account in all
estimations, the language is changed to consistently "to hit", all forms
of to-hit display are calling the same logic, and Umbra is actually
penalising accuracy as intended.

--------------------------------------------------------------------------------
a50e958451 | DracoOmega | 2024-06-21 00:27:04 -0230

Finally give Bind a proper status icon (regret-index)
Reusing the constrict icon was misleading since not only could monsters not
escape from it under their own power, but it didn't inflict any damage or
EV reduction. I don't know how it took me this long.

--------------------------------------------------------------------------------
f8b37b105b | DracoOmega | 2024-06-21 00:27:04 -0230

Place monster non-adjacent to player at start of Duel (elliptic)
It could be extremely advantageous to melee characters to always start in
melee range of the target they picked (while simultaneously being worse for
ranged characters, which Okawaru also explicitly supports). Now instead the
duel target will be placed in a random spot in the arena, 3-5 tiles away
from the player.

The smallest arena wasn't actually large enough to do this if the player
started at its centre, so we now randomize your arrival location to one
of the corners there instead. I added a small bit of similar randomization
to the second-smallest. The larger arenas remain unchanged.

--------------------------------------------------------------------------------
d717340134 | DracoOmega | 2024-06-21 00:27:03 -0230

Don't give the player an extra turn in a Duel if the target kills itself

--------------------------------------------------------------------------------
1b3ecf1023 | regret-index | 2024-06-20 22:24:11 -0230

Adjust Kiku titles and the corresponding Ds enemy
There's not been much adjustment of piety rank titles in the past decade
unless the gods in question were adjusted, which has some silly and rather
strange overlaps in contrast with one another as more and more titles are
racked up between them. Kiku's is one of the strangest; we've got a 1*
"Scholar of Death" as a stepping stone to greater power in contrast to
Sif's 4* "Scholar", a 2* "Merchant of Misery" who has no connection to
Gozag or any selling in Crawl, a 3* "Artisan of Death" who doubles up
on the word death just in case one missed the theme of the god, a 4*
"Dealer of Despair" unrelated to Nemelex, and a 6* "Lord of Darkness"
unrelated to Dith. Most jarring is the occult symbol title at 5* that
even beyond its unfortunate modern associations breaks the naming
schema in nearly every way: neither "X of Y" nor a pairing of concrete
job and suffering.

This adjusts some (if not all) of Kiku's piety titles to focus a little
harder on a particularly academic angle of necromancy (helping further
distinguish from Yred's more ferverent faith angle), as well as deal
with a variety of the prior mentioned matters.

This naturally also comes with renaming (and retiling) the Demonspawn
enemy that explicitly invokes Kiku and mirrors one of the available
titles. These new demonspawn soul scholars are a little less dramatic
in their new names, but add a bit more texture to all the intimidation
and bluster attached to other unholy matters throughout Crawl (see
also Nergalle and Xak'krixis)- it's also no more bland than the current
corrupters. They could honestly do with a pretty significant buff on
their signature spell anyway (which struggles immensely against extended
player defenses), which would coincide well with this rename.

--------------------------------------------------------------------------------
dbccd6685e | DracoOmega | 2024-06-18 19:46:52 -0230

Fix Dith shadow mimic and Yred reaping chance not maxing at 6*
The former seems to have been uncapped entirely, while the latter falsely
believe piety_breakpoint(6) was 6* and not... 255 piety??

(I swear, I am just going to make that mistake in perpetuity)

--------------------------------------------------------------------------------
ca6d56b4bc | DracoOmega | 2024-06-18 19:46:11 -0230

Fix/adjust Blorkula the Orcula
Being able to kill all of Blorkula's bats before he could reform was
probably just a little bit too unlikely, and success was overly binary: if
you couldn't kill all of them, there was no benefit to killing *any* of
them. Instead, Blorkula will reform with HP missing for each bat lost
below 4 (since he splits randomly into 4 or 5) - recovering with only 2/7th
HP if only one bat remains.

At the same time, the fact that Blorkula had a long cooldown before being
able to split into bats a second time was a bit too opaque, and even some
players who had killed him repeatedly did not realize. I have added it to
the description and now also utilise the 'catching his breath' status to
display the cooldown in the status line. I hope this makes it more
intuitive.

Since it should be a fair bit easier to kill Blorkula in a single fight
now, I've minorly nudged up the stats of the bats themselves. (I expect
he's still less dangerous overall.)

Finally, this fixes a pair of bugs that could sometimes clone Blorkula.
Due to erroneous bracketing, if Blorkula 'died' while out of the player's
line of sight (or while invisible), bats would be created without removing
the humanoid Blorkula (or even injuring it from the deathblow). The bats
would eventually form into another Blorkula, resulting in two alive at
once. This was exacerbated by timeout_enchantments causing Blorkula to
blink randomly at the moment of death, if he was confused when he died
(thus increasing the chance of dying out of the player's LoS). This should
hopefully be working properly now.

--------------------------------------------------------------------------------
f261964bf6 | DracoOmega | 2024-06-18 19:34:16 -0230

Fix a crash with generating wizard apostles at very low power
Their secondary spell could have power so low there was no valid spell to
go in that slot, resulting in an infinite loop of rerolling.

--------------------------------------------------------------------------------
f429392eed | David Lawrence Ramsey | 2024-06-18 14:26:54 -0500

Add another ancestor name.

--------------------------------------------------------------------------------
9260dd1d50 | Isaac Clancy | 2024-06-18 10:56:04 -0500

Improve picking up part of a stack with the mouse

--------------------------------------------------------------------------------
8a41b728e5 | advil | 2024-06-18 08:41:50 -0400

fix: quiet some clang warnings
clang now gives warnings on set-but-unused variables (including
incremented ones that are never accessed). This commit addresses the
ones it found.

--------------------------------------------------------------------------------
023c873f58 | David Lawrence Ramsey | 2024-06-18 02:16:18 -0500

Re-separate priestly god overrides (oops).
So they don't fall through to non-priestly monsters.

--------------------------------------------------------------------------------
e2b7767857 | David Lawrence Ramsey | 2024-06-18 02:12:02 -0500

Simplify god override logic a bit.

--------------------------------------------------------------------------------
523ca51177 | NormalPerson7 | 2024-06-17 21:32:16 -0500

Rebalance wanderer good staves skill, remove decent staves skill
For a while now, staves skill has been completely unbalanced for
wanderers, as the wanderer background treated a +0 quarterstaff as if it
was equivalent to a +0 falchion/hand axe/mace/short sword, when it is
considerably better. This commit makes a +0 quarterstaff the good
quality reward for staves skill (instead of a +2 quarterstaff).

I have spent some time considering a suitable replacement for decent
staves skill, including a random magical staff, a magical staff
matching possible magic skills, or simply a -2 quarterstaff. But
magical staves are probably a little too niche, and I consider that it
might feel bad to start with a -2 unbranded weapon, even if in reality
it's okay.

So I've just decided to remove decent staves skill as a possibility.
After all, there is no staves option for the backgrounds that get a
choice of a decent weapon (Mo/Be/CA/CK/Wr/Re), so why should there be
for wanderer?

[Some data: from a sample of 1,000,000 HuWns, good staves skill
occurs about 4.2% of the time, and decent staves skill occurred before
this commit about 4.8% of the time. After this commit, other decent
weapon and magic skills are each picked about 5.1% of the time.]

--------------------------------------------------------------------------------
0b7e42055f | NormalPerson7 | 2024-06-17 21:32:16 -0500

Slightly improve wanderer stat assignment
This is all very theoretical, and wanderer stat assignment is
ultimately overwhelmingly random. Make polearms and staves always
give an increased chance for strength (instead of coinflip str/dex)
and make evocations give an increased chance for a random stat
(because all three stats are entirely irrelevant to evocations).

This leaves all weapon skills benefitting their damage-increasing
stat except throwing and UC (which I feel thematically have much
better claims at being random str/dex). Fighting and shapeshifting
appropriately give random str/dex.

From a sample of 1,000,000 both before and after this commit, this
changes the average str/int/dex assigned by the background for HuWn
from 3.55/3.75/4.69 to 3.75/3.89/4.35. The objective is very much not
to reach 4/4/4 as species tend to give more str and backgrounds tend
to give more dex on average. But this seems acceptable to me.

--------------------------------------------------------------------------------
4b47c47490 | NormalPerson7 | 2024-06-17 21:32:16 -0500

Force wanderers to get three unique skills, reorder skill adjustments
Put the adjustments to wanderer's skills earlier in the wanderer
process, so that skills are rerolled instead of being assigned to
SK_NONE whenever incompatible (shield + 2-h weapon) or duplicate
skills are chosen.

This allows wanderer stat assignment to use the reassigned skills,
and it forces wanderer to actually choose three unique skills,
instead of just abandoning one of them if a duplicate was picked and
replacing it with random skill levels and a decent consumable.

I have retained the behaviour that you can't get two pieces of armour,
and that the second skill out of armour, dodging and decent stealth
gives a decent consumable instead, but now assign the skill levels
normally instead of ditching the decent skill altogether.

--------------------------------------------------------------------------------
47c2c9e938 | David Lawrence Ramsey | 2024-06-17 20:28:14 -0500

Update documentation for monster god YAML.

--------------------------------------------------------------------------------
c5d1addcfd | David Lawrence Ramsey | 2024-06-17 12:09:03 -0500

Set monster gods in YAML.
_place_monster_set_god() is now place_monster_maybe_override_god(). It
can override the YAML-set god (orc Beogh-worshippers and unbelievers,
Xom-adopted holies in the Abyss), and gives any priestly monsters with
no god set the nameless god, just like the old code, except without the
explicit genus checks. The explicit genus checks were redundant anyway,
since they all fell through to the default case.

The old code included a comment that all (non-priestly) angels and
daevas worship TSO, except for Mennas. However, the actual code made all
(non-priestly) holies worship TSO except for Mennas and apises (Elyvilon
worshippers); seraphim were explicitly set as TSO worshippers. I've made
the new code give angels and daevas who normally worship TSO a chance to
worship Xom in the Abyss; doing that for all holy beings who worship TSO
would override seraphim.

Also, make orc apostles explicitly worship Beogh, instead of leaving it
as a 6-out-of-7 chance for the non-priestly ones. It doesn't make sense
for the latter to be unbelievers.

--------------------------------------------------------------------------------
be31ae4084 | David Lawrence Ramsey | 2024-06-17 11:22:21 -0500

Fix comment typo.

--------------------------------------------------------------------------------
7f99e5bb7e | David Lawrence Ramsey | 2024-06-17 08:29:50 -0500

Set the god wrath avatar's god properly.
It should have the god whose wrath it represents.

--------------------------------------------------------------------------------
753a682cf0 | David Lawrence Ramsey | 2024-06-16 08:42:51 -0500

Change apostrophe usage back in one case (wheals)
Since "lotus" is not a proper name. (Although its apostrophe usage could
technically go either way; the rules are not consistent.)

--------------------------------------------------------------------------------
bbce87da4e | David Lawrence Ramsey | 2024-06-16 08:31:24 -0500

Fix spacing.

--------------------------------------------------------------------------------
abf264ae7c | David Lawrence Ramsey | 2024-06-15 16:44:51 -0500

Add another fruit name to artefacts.

--------------------------------------------------------------------------------
748c53551c | David Lawrence Ramsey | 2024-06-15 16:27:28 -0500

Add another Xom lava message.

--------------------------------------------------------------------------------
12c7e32266 | David Lawrence Ramsey | 2024-06-15 16:09:28 -0500

Fix more apostrophe usage.

--------------------------------------------------------------------------------
2324582093 | David Lawrence Ramsey | 2024-06-15 15:24:54 -0500

Construct proper possessive monster names.
Apostrophise them properly, and use e.g. "@The_monster_possessive@"
and @The_something_possessive@ instead of "@The_monster@'s" and
"@The_something@'s".

--------------------------------------------------------------------------------
a62346c5fa | David Lawrence Ramsey | 2024-06-15 15:21:51 -0500

Construct proper possessive player names.
Apostrophise them properly, and use "@player_name_possessive@" instead
of "@player_name@'s".

--------------------------------------------------------------------------------
1b1507a7a7 | David Lawrence Ramsey | 2024-06-15 15:21:47 -0500

Construct proper possessive god names.
Apostrophise them properly, and use "@god_name_possessive@" instead of
"@god_name@'s".

--------------------------------------------------------------------------------
3d6a2cece9 | David Lawrence Ramsey | 2024-06-15 15:18:26 -0500

Use @Subjective@ in Zenata speech.
Accordingly, make subjective and objective pronouns get capitalised
properly dependent on the case of the tag, so that they aren't
always lowercase when in the middle of a line, as in Zenata's dialogue.

--------------------------------------------------------------------------------
d5ad79822a | David Lawrence Ramsey | 2024-06-15 14:31:53 -0500

Fix typo.

--------------------------------------------------------------------------------
d2a126e119 | David Lawrence Ramsey | 2024-06-15 13:54:26 -0500

Replace duplicate word in Crazy Yiuf speech.
Use "knee" instead of "hand" a second time.

--------------------------------------------------------------------------------
b736c20c39 | David Lawrence Ramsey | 2024-06-15 13:46:59 -0500

Fix capitalisation.

--------------------------------------------------------------------------------
e40d03d5a3 | David Lawrence Ramsey | 2024-06-15 12:47:26 -0500

Fix apostrophe usage.

--------------------------------------------------------------------------------
823a3ec96b | David Lawrence Ramsey | 2024-06-15 12:42:15 -0500

Fix punctuation.

--------------------------------------------------------------------------------
088a3bca6d | DracoOmega | 2024-06-14 14:34:20 -0230

Fix a crash with xv-ing Nessos

--------------------------------------------------------------------------------
4b4f0a9da8 | NormalPerson7 | 2024-06-14 14:34:20 -0230

Add x-v row showing primary melee damage/flavour for ranged monsters
Except for Nessos, monsters never apply an attack flavour to their
ranged attacks. Previously, x-v would pretend that monsters' ranged
weapon attacks additionally applied their primary melee attack's
flavour - this most notably applied to salamanders. Fix this.

So that the player can always see the attack flavour of a monster's
primary melee attack, add an additional row to the attacks table for
monsters that wield a ranged weapon to show the base melee damage
and flavour of the monster's primary melee attack.

Ideally, we would show the damage of the monster's alternate weapon
(if they have one) if and only if the player has already seen them
wield it. However, this information is currently not tracked by the
game, and would require a disproportionate amount of work to implement
for what is a very minor improvement.

[Note: while I believe a monster cannot dual-wield or dual-fire
ranged weapons at present, the code does not assume this, in case it
becomes possible in the future.]

--------------------------------------------------------------------------------
2c2fcc182a | NormalPerson7 | 2024-06-14 14:34:20 -0230

Split up and clean up _monster_attacks_description
_monster_attacks_description was becoming a monster, and, without this
commit, the changes in the following commit would have grown it even
further. Split it up into several helper functions, and tidy up
some unnecessary code (e.g. we don't need to check weapons for
ARTP_SLAYING).

--------------------------------------------------------------------------------
02f1baff1b | NormalPerson7 | 2024-06-14 14:34:20 -0230

Treat ghost/pan lord brands like other brands on x-v
There seems to me to be no reason to treat these differently now that
normal weapons have their maximum brand damage shown together with
their normal damage numbers. Ghosts will now have their attacks shown
as "Hit: weapon of <brand>" and pan lords as "Hit: <brand> touch".
I admit that this is ultimately a loss of information on the x-v
screen, but it also makes x-v more universally consistent.

Also, properly include might/berserk/weak effects for the calculation
of max brand damage.

Perhaps we could add weapon brands to ?/ at some point to improve
the transparency of what each brand actually does.

--------------------------------------------------------------------------------
c23e6531e3 | NormalPerson7 | 2024-06-14 14:34:20 -0230

Don't imply melee-only buffs affect ranged weapon damage on x-v
Applies to might, berserk, idealised (not that there's currently
any way to get a ranged ancestor anyway) and weak.

--------------------------------------------------------------------------------
e41de2be01 | dependabot[bot] | 2024-06-14 14:10:25 -0230

Bump tornado from 6.4 to 6.4.1 in /crawl-ref/source/webserver/requirements 
(#3857)
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4 to

6.4.1.

<details>

<summary>Changelog</summary>

<p><em>Sourced from <a

href="https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst">torna
do's

changelog</a>.</em></p>

<blockquote>

<h1>Release notes</h1>

<p>.. toctree::

:maxdepth: 2</p>

<p>releases/v6.4.1

releases/v6.4.0

releases/v6.3.3

releases/v6.3.2

releases/v6.3.1

releases/v6.3.0

releases/v6.2.0

releases/v6.1.0

releases/v6.0.4

releases/v6.0.3

releases/v6.0.2

releases/v6.0.1

releases/v6.0.0

releases/v5.1.1

releases/v5.1.0

releases/v5.0.2

releases/v5.0.1

releases/v5.0.0

releases/v4.5.3

releases/v4.5.2

releases/v4.5.1

releases/v4.5.0

releases/v4.4.3

releases/v4.4.2

releases/v4.4.1

releases/v4.4.0

releases/v4.3.0

releases/v4.2.1

releases/v4.2.0

releases/v4.1.0

releases/v4.0.2

releases/v4.0.1

releases/v4.0.0

releases/v3.2.2

releases/v3.2.1

releases/v3.2.0

releases/v3.1.1

releases/v3.1.0

releases/v3.0.2

releases/v3.0.1

releases/v3.0.0

releases/v2.4.1

releases/v2.4.0

releases/v2.3.0</p>

<!-- raw HTML omitted -->

</blockquote>

<p>... (truncated)</p>

</details>

<details>

<summary>Commits</summary>

<ul>

<li><a

href="https://github.com/tornadoweb/tornado/commit/2a0e1d13b5222dca4388c0ec8a4bb
74ea6fa4af2"><code>2a0e1d1</code></a>

Merge pull request <a

href="https://redirect.github.com/tornadoweb/tornado/issues/3388">#3388</a>

from bdarnell/release-641</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/b7af4e8f5ee578b78e1be5ade43fd
b1103659a0e"><code>b7af4e8</code></a>

Release notes and version bump for version 6.4.1</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/d65f6e71a77f53a1ff0a0dc55704b
e13f04eb572"><code>d65f6e7</code></a>

Merge pull request <a

href="https://redirect.github.com/tornadoweb/tornado/issues/3387">#3387</a>

from bdarnell/chunked-parsing</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/8d721a877dd5c2bc0693d9c4d3954
eb11fbd404b"><code>8d721a8</code></a>

httputil: Only strip tabs and spaces from header values</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/7786f09f84c9f3f2012c4cf387841
7cb9f053669"><code>7786f09</code></a>

Merge pull request <a

href="https://redirect.github.com/tornadoweb/tornado/issues/3386">#3386</a>

from bdarnell/curl-crlf</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/fb119c767e9c43e71ea823311b0d5
3f566d86b73"><code>fb119c7</code></a>

http1connection: Stricter handling of transfer-encoding</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/b0ffc58e02f33f6aa480f008b7449
5601d988ce1"><code>b0ffc58</code></a>

curl_httpclient,http1connection: Prohibit CR and LF in headers</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/0efa9a42b4c94ee98549d86992c68
227f83efd4e"><code>0efa9a4</code></a>

Merge pull request <a

href="https://redirect.github.com/tornadoweb/tornado/issues/3385">#3385</a>

from bdarnell/update-black</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/2757c6e4874968dd2f74a4d08b450
da795de5b6c"><code>2757c6e</code></a>

Merge pull request <a

href="https://redirect.github.com/tornadoweb/tornado/issues/3384">#3384</a>

from tornadoweb/dependabot/pip/requests-2.32.2</li>

<li><a

href="https://github.com/tornadoweb/tornado/commit/291d1b661be273b86792e965ac65f
9bced8d4ebe"><code>291d1b6</code></a>

*: Update black</li>

<li>Additional commits viewable in <a

href="https://github.com/tornadoweb/tornado/compare/v6.4.0...v6.4.1">compare

view</a></li>

</ul>

</details>

<br />





[![Dependabot compatibility

score](https://dependabot-badges.githubapp.com/badges/compatibility_score?depend
ency-name=tornado&package-manager=pip&previous-version=6.4&new-version=6.4.1)](h
ttps://docs.github.com/en/github/managing-security-vulnerabilities/about-dependa
bot-security-updates#about-compatibility-scores)



Dependabot will resolve any conflicts with this PR as long as you don't

alter it yourself. You can also trigger a rebase manually by commenting

`@dependabot rebase`.



[//]: # (dependabot-automerge-start)

[//]: # (dependabot-automerge-end)



---



<details>

<summary>Dependabot commands and options</summary>

<br />



You can trigger Dependabot actions by commenting on this PR:

- `@dependabot rebase` will rebase this PR

- `@dependabot recreate` will recreate this PR, overwriting any edits

that have been made to it

- `@dependabot merge` will merge this PR after your CI passes on it

- `@dependabot squash and merge` will squash and merge this PR after

your CI passes on it

- `@dependabot cancel merge` will cancel a previously requested merge

and block automerging

- `@dependabot reopen` will reopen this PR if it is closed

- `@dependabot close` will close this PR and stop Dependabot recreating

it. You can achieve the same result by closing it manually

- `@dependabot show <dependency name> ignore conditions` will show all

of the ignore conditions of the specified dependency

- `@dependabot ignore this major version` will close this PR and stop

Dependabot creating any more for this major version (unless you reopen

the PR or upgrade to it yourself)

- `@dependabot ignore this minor version` will close this PR and stop

Dependabot creating any more for this minor version (unless you reopen

the PR or upgrade to it yourself)

- `@dependabot ignore this dependency` will close this PR and stop

Dependabot creating any more for this dependency (unless you reopen the

PR or upgrade to it yourself)

You can disable automated security fix PRs for this repo from the

[Security Alerts page](https://github.com/crawl/crawl/network/alerts).



</details>



Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
--------------------------------------------------------------------------------
e0739fc0ca | DracoOmega | 2024-06-14 14:04:49 -0230

Improve stumbling into unknown walls with LoS 0 (elliptic)
Instead of printing no message at all, instead print a message about
feeling something solid and map the tile the player bumped into so they can
remember this.

--------------------------------------------------------------------------------
9aaa1af74f | DracoOmega | 2024-06-14 14:03:39 -0230

Don't warn that Permafrost Eruption might hit cold-immune allies
Since it will never be aimed at them directly, the only collatoral damage
it can ever do is cold.

Closes #3863

--------------------------------------------------------------------------------
eb6dff901a | DracoOmega | 2024-06-14 03:16:15 -0230

Fix Charming breaking immediately (Undo)
Broken by e42ff28ed44e11e251d firing ME_ANNOY after the enchantment effect
instead of before.

I opted to solve this by just not considering BEAM_CHARM to be nasty to a
monster you're aligned with, which seems to work well enough.

--------------------------------------------------------------------------------
a2480ef707 | David Lawrence Ramsey | 2024-06-13 23:19:19 -0500

Update mut_species.lua test for current species.
The species list in it now includes all current species except for
demonspawn, whose mutations are tested separately from the others.

--------------------------------------------------------------------------------
23b81e505f | DracoOmega | 2024-06-14 01:31:36 -0230

Fix a possible crash

--------------------------------------------------------------------------------
6e0f240ce6 | DracoOmega | 2024-06-14 00:35:14 -0230

Let ranged bump attack work with sight range 0 (elliptic)
Currently, if the player has a sight range of 0 (ie: during the first turns
of Primordial Nightfall), trying to move into a monster will say "You can't
see that place." and consume your turn without doing anything. For more
consistency with melee attacks, this aims to let you try to shoot whatever
you bump into in this case.

Since ranged attacks use beams to create their ranged_attack (and beams
can't be aimed out of your LoS like this), this short-circuits that part
if your vision radius is 0 and makes the ranged_attack directly.

I am not really happy with this implementation and would like to come up
with something a little nicer (though I'm not sure how plausible this is),
but it seems to produce the desired functionality at present.

--------------------------------------------------------------------------------
cabffc2860 | DracoOmega | 2024-06-14 00:35:14 -0230

Remove beam code left over from lamps of fire

--------------------------------------------------------------------------------
50798860ff | DracoOmega | 2024-06-14 00:35:14 -0230

Make coglin shadow mimics wield weapons in random hands
Compared to players, this *almost* never matters, since monsters can't stab
and their weapons are always unbranded. But technically if a player was
wielding an axe and a non-cleaving weapon, it would be optimal to have the
axe in the main hand so the shadow could always cleave even if the main
target died.

--------------------------------------------------------------------------------
ec5035c421 | DracoOmega | 2024-06-14 00:35:14 -0230

Give Coglin ranged mimics a shot with their offhand weapon

--------------------------------------------------------------------------------
74f68ee730 | DracoOmega | 2024-06-14 00:35:14 -0230

Let coglin melee shadows attack with both weapons
Shadow mimics of coglin players get a second attack, wielding a shadow
copy of their offhand weapon (if they have one).

This probably doesn't play nice with shadow positioning if the player is
wielding a polearm and a non-reaching weapon at the same time, but
hopefully that is a niche enough situation not to worry about it for now.

--------------------------------------------------------------------------------
e42ff28ed4 | DracoOmega | 2024-06-14 00:35:13 -0230

Alert monsters hit by enchantments *after* the enchantment effect
This is aimed primarily to avoid the relatively-common situation of casting
Ensorcelled Hibernation on a wandering monster that is unaware of you, and
this causing it to shout and wake up other monsters immediately, even when
the spell successfully puts it to sleep. Now (like non-enchantment beams),
the monster is alerted only *after* the effect happens - and being asleep
will stop them from shouting.

This technically buffs a similar situation with paralysis wands and maybe
a few others, but that seems fine.

I am slightly concerned this might have unforseen consequences (since it's
not obvious if there was a *reason* behavior events were fired early in
this function), but I guess we'll see them if we see them.

--------------------------------------------------------------------------------
a58bd73f9f | DracoOmega | 2024-06-14 00:35:13 -0230

Change Piledriver damage formula
Piledriver asks some unique positioning questions of the player and can do
very solid damage for a low-level spell when the player lines up a max
distance shot with it. However, because it was tied to the default
collision damage formula, distance could only scale the dice *size*,
meaning that even a high power Piledriver would often wiff. This is not
unusual for spells in Crawl, but for Piledriver it was especially bad.
Lining up a good shot often takes multiple turns of setup and cannot simply
be repeated immediately (or perhaps at all), *and* often asked the player
to lunge into a more dangerous position in the process. Especially as a
starting spell of a weaker background, the payoff needs to feel more
reliable for people to invest the necessary skill points (and also do what
the spell asks of them).

To that end, instead of 2d(X-Y) damage, Piledriver now does (3-9)dX damage.
(Average damage should remain similar, and the ratio between min and max
distance shots also remains similar (4 tiles was ~3x as strong as 1 tile).
High rolls may be a little less common, but making it far less likely not
to get *a* relevant amount of damage may hopefully make it feel better to
use.

--------------------------------------------------------------------------------
860313677f | DracoOmega | 2024-06-14 00:35:13 -0230

Refactor collision damage and adjust several things about it.
Previously, all knockbacks/collisions which could inflict damage did so via
a fixed formula contained in actor::collide (though the power supplied to
this formula varied greatly based on source). This made it slightly
inflexible for things which wanted to do more specific things with how they
applied collision damage (ie: Gavotte or Piledriver caring about the
distance a monster has travelled before the collision). actor:collide now
instead takes a pre-AC damage number that it will apply to the colliding
actors, if applicable. This is in anticipation of a future adjustment to
Piledriver's damage, but is more flexible in general.

This commit also makes several other changes in the process:
 -Primal Wave and Mud Breath no longer inflict collision damage. This
  happened fairly rarely for Primal Wave, due to low knockback distance and
  being most common in very open areas, but could inflict up to 2d25
  additional damage when it happened (which wasn't indicated by xv!). I
  nudged the spell damage up slightly in exchange for no longer causing
  nasty surprises if the beam angle lines up just so.
  (Mud Breath, due to way in which collison damage was calculated, only did
  2d3 by XL 27...)
 -Force Lance knockback distance and chance no longer scale with
  spellpower (all current casters are pretty similar anyway)
 -Wind Blast and Force Lance collision damage should be indicated by xv
 -Brom's Barrelling Boulder inflicts no collision damage when it cannot
  displace an actor (it was only ever 2d2 anyway)
 -Force Lance (the weapon) has a higher minimum collision damage it can
  inflict (now that such things are easy to add) and overall does more
  collision damage in general. (It's one of the fun points about the weapon
  that nudges you to use it differently, and I've never heard anyone say it
  was especially strong)

Unless stated otherwise, damage from other effects should not have changed.

--------------------------------------------------------------------------------
e112003704 | DracoOmega | 2024-06-14 00:35:13 -0230

Let Harpoon Shot pull monsters
This seems to have never functioned, even though the code for it clearly
assumed things other than the player *could* be pulled (eg: there was code
to check if the player could see the actor being pulled). There doesn't
seem to be any particular reason to prevent monsters from being pulled by
this (and in fact, warrior apostles can come with Harpoon Shot because I
assumed it could do something!).

--------------------------------------------------------------------------------
d50b3fb463 | David Lawrence Ramsey | 2024-06-12 21:12:43 -0500

Checkwhite

--------------------------------------------------------------------------------
65f5bb9f5d | David Lawrence Ramsey | 2024-06-12 21:11:42 -0500

Fix spelling and tweak wording.

--------------------------------------------------------------------------------
a602a137e7 | regret-index | 2024-06-12 23:35:48 -0230

Changelog updates to be6e7be4eb9
Mostly just describing the new Dithmenos overhaul.

--------------------------------------------------------------------------------
d8fb119709 | regret-index | 2024-06-12 23:35:48 -0230

Vault review + Snake decor odds increasing
Of note:

 * Took the no_tele_into out of some Zot and Vaults entry vaults.
   There's not really any obvious reason to avoid dangerous teleports in
   specific entry vaults but not most others.

 * Since we've got about 27x2 decorative vaults exclusive to Snake after
   181dc37 and a couple of decorative features options in particular that
   help them stand out relative to other branches, I've given Snake:3-4
   the same 33% extra chance to place decorative vaults that Zot:1-4 got
   in f5be29c. The branch has difficulties with standing out versus other
   Lair branches each brandishing obvious terrain feature differences,
   so this should help it out a little more on its identity front versus
   D itself. In exchange, a couple of luniq_ and uniq_ tags were thrown
   around in and out of snake.des to not completely submerge Snake levels
   in water, lava, or coloured glass.

--------------------------------------------------------------------------------
bced643967 | David Lawrence Ramsey | 2024-06-12 15:58:02 -0500

Remove obsolete glowing mutation description.

--------------------------------------------------------------------------------
b53bcb1ace | DracoOmega | 2024-06-12 17:36:05 -0230

Fix misnamed shadow spell (Necromancer22)
(This also meant its description was missing)

--------------------------------------------------------------------------------
882d200727 | Nicholas Feinberg | 2024-06-12 16:31:55 -0230

Probably fix webtiles offhand weapon display

--------------------------------------------------------------------------------
3a74b83753 | DracoOmega | 2024-06-12 16:16:52 -0230

*Actually* remove the Noise Suppression mutation from the game
I dummied it out, but missed setting the weight to zero, so it could still
be gotten by players (but would do nothing).

(Also remove a stray description)

--------------------------------------------------------------------------------
34fece25b4 | DracoOmega | 2024-06-12 16:16:52 -0230

Don't shift players arriving on stairs with no_tele_into (grumposus)
I'd thought this logic was a fallback only used if the position the player
was arriving on was unsafe, but in fact it was call every time regardless.
This meant we would shift the player merely because they were in a
no_tele_into zone, even if where they were standing was perfectly safe.

Now we should probably only care about no_tele_into if we have to move the
player at all.

--------------------------------------------------------------------------------
9b860b2f1f | David Lawrence Ramsey | 2024-06-12 13:01:34 -0500

Add desc for unrand scarf of invisibility.
Since there's one for the unrand amulet.

--------------------------------------------------------------------------------
9407733e47 | David Lawrence Ramsey | 2024-06-12 11:37:53 -0500

Add quote aliases for acrobat/reflection amulets.
These are all sorted, except for the amulet of nothing at the end.

--------------------------------------------------------------------------------
98076e6198 | David Lawrence Ramsey | 2024-06-12 11:27:32 -0500

Properly rename ring of willpower tile.
It's now i-willpower.png instead of i-r-magic.png, since the term magic
resistance is no longer used.

--------------------------------------------------------------------------------
c9bec69f6a | David Lawrence Ramsey | 2024-06-12 11:24:08 -0500

Rings of life protection enum -> positive energy.
This matches the in-game naming of the item, and makes the ring quotes
actually sorted.

Rename the associated tile accordingly.

--------------------------------------------------------------------------------
ea9a0aee67 | David Lawrence Ramsey | 2024-06-12 11:12:03 -0500

Add quote alias for ring of stealth.

--------------------------------------------------------------------------------
7c37e35bdb | David Lawrence Ramsey | 2024-06-12 11:11:11 -0500

Sort quotes for rings.
These are now in alphabetical order (mostly).

--------------------------------------------------------------------------------
5c610d4edf | David Lawrence Ramsey | 2024-06-12 11:01:28 -0500

Move wand of mindburst's quote alias.
It's now in alphabetical order like the other wands, instead of in the
same position it was in when it was called the wand of disintegration.

--------------------------------------------------------------------------------
6cc9bafbc4 | David Lawrence Ramsey | 2024-06-12 11:00:49 -0500

Add missing quote aliases for other wands.
All of them should be covered now.

--------------------------------------------------------------------------------
d6a05a151d | David Lawrence Ramsey | 2024-06-11 23:13:32 -0500

Add quote alias for wand of warping.

--------------------------------------------------------------------------------
4bbee2eeb2 | David Lawrence Ramsey | 2024-06-11 23:04:24 -0500

Fix punctuation in quote citations.

--------------------------------------------------------------------------------
d4d5bcc6f4 | DracoOmega | 2024-06-11 21:33:53 -0230

Allow Cloak of the Thief to stack with Dith 1* power
It may not have been obvious that it did not, and it seems like an unrand
probably shouldn't just do nothing for Dith worshippers like this.

--------------------------------------------------------------------------------
e82873c70e | DracoOmega | 2024-06-11 21:20:49 -0230

Don't return from the Abyss into inaccessible areas
If a character with temporary flight was banished over lava or deep water,
upon departing the Abyss, they would be placed on the nearest safe tile
they could occupy - but this displacement did not respect no_tele_into and
could sometimes result in them landing in places the player was never
supposed to be able to enter (and possibly trapping them there).

This does mean we will sometimes push the player further than necessary (if
they got banished in this way from a ghost vault somehow), but that seems
more harmless than the behavior it's replacing.

(This scenario also applies to Duel, by the way)

--------------------------------------------------------------------------------
d887a3bc58 | DracoOmega | 2024-06-11 21:15:58 -0230

Include apostle short descriptions in Beoghite character dumps
Since one's apostles are really a significant part of a Beogh worshipper's
power and worth recording/listing.

(This uses the same format of description as seen on the Extra religion
screen)

--------------------------------------------------------------------------------
cafd96f65b | DracoOmega | 2024-06-11 18:55:08 -0230

Rework Okawaru's Duel ability somewhat
Duel was an ability with great flavor that, in practice, was usually best
used in ways that went against that flavor - by duelling relatively
harmless enemies so that the player could stall to heal up. Using it
against genuinely scary enemies often meant trapping the player in a fight
against them with no escape options and limited reward for doing so. This
aims to improve that situation by tweaking a few things about how Duel
works.

When you start a duel, the player will now instantly heal for half of their
missing health. But when the duel ends, your hp/mp will be reset to
whatever they were when the duel *started*. This means simultaneously that
there is no benefit to stalling to heal (you'll just lose that health when
the duel ends), but also that you sometimes stand to benefit greatly from
taking a risk (getting a large heal when at low hp, or undoing any battle
damage from one scary monster before you fight others)

Duels also now end instantly once the main target is dead. All items on the
floor are automatically gathered up and deposited at the player's feet,
where they exit. (In the rare case of the player standing over deep water
or lava, an Okawaru altar will be made at their feet to ensure the items
are not lost.)

Finally, the piety of cost of duel is also significantly reduced, such that
it is equivalent to Finesse.

--------------------------------------------------------------------------------
c8ab930618 | advil | 2024-06-11 15:07:37 -0400

fix: handle some webtiles race conditions
Most of this was found while debugging cao behavior when out of disk
space. A number of extremely strange race conditions could happen when
game startup fails in unusual ways, as well as in a subsequent attempt
to shutdown the server. This commit tries to handle these a bit better.
Unfortunately, the best solution I found for the big one (a race
condition after fork, but before execvpe overwrites python) is simply to
delay so that execvpe takes hold; fork + asyncio is not well behaved.
See:
    https://github.com/python/cpython/issues/66197
As far as I can tell, the promised solutions of safely closing the event
loop in a child never materialized.

--------------------------------------------------------------------------------
01dcfa0dcd | DracoOmega | 2024-06-11 13:57:22 -0230

Fix Beogh ally-heal-on-damage not being active until 4*
When the UI claims 3*.

(I never seem to remember that piety_breakpoint(3) is actually 4* because
why the heck would it be? >.>)

(Note: it didn't even check your piety level at all until a couple days
ago, but it seemed better to have it match up with the UI's claims. It
wasn't really a balance adjustment, since it shows up as soon as you can
get apostles in the first place.)

--------------------------------------------------------------------------------
18c097c992 | DracoOmega | 2024-06-11 13:05:51 -0230

Fix an obvious typo (ge0FF)

--------------------------------------------------------------------------------
14a633c46e | DracoOmega | 2024-06-11 13:00:03 -0230

Fix marionette spell markers being visible outside monster lookup (ge0FF)
They were still showing up next to spells in books the player was
examining.

--------------------------------------------------------------------------------
9bcd2ff519 | David Lawrence Ramsey | 2024-06-11 00:21:15 -0500

Remove doubled word in Primordial Nightfall desc.

--------------------------------------------------------------------------------
2b8cd2b559 | David Lawrence Ramsey | 2024-06-10 17:26:53 -0500

Fix spelling.

--------------------------------------------------------------------------------
fa1790ab66 | David Lawrence Ramsey | 2024-06-10 16:39:57 -0500

Add another Screaming Sword line.

--------------------------------------------------------------------------------
77ad410699 | DracoOmega | 2024-06-10 16:54:01 -0230

Fix * next to some spell names for non-Dith worshippers (ge0FF)
This was meant to indicate an interaction with Aphotic Marionette. The
full description of what the * was indicating was properly hidden for
non-Dith worshippers, but a logic error meant that the asterisk itself was
still visible for everyone (confusingly).

--------------------------------------------------------------------------------
aeb9cdf509 | DracoOmega | 2024-06-10 15:05:04 -0230

Remove some restrictions on where apostle challenges can happen (various)
A variety of concerns have been expressed about the gameplay dynamics of
blocking apostle challenges on rune floors, and their hidden nature. I
still have some significant reservations of my own about changing it
(particularly as concerns V:$), but with the HP threshold for challenges
being a small bit more generous, we can give it a try to removing these for
now.

(I left Zot:5 vetoed for now, but the rest of Zot has also become
eligible.)

--------------------------------------------------------------------------------
2d498743f0 | DracoOmega | 2024-06-10 14:47:00 -0230

Change Nightfall stealth bonus (elliptic)
While the bonus was fairly sizeable, it still didn't do enough to counter
the major penalties from heavy armour characters (thus defeating one of the
purposes of the bonus - making Nightfall feel more consistent).

Instead of giving you 100 stealth, it now caps your minimum stealth at 100.
This might technically be a nerf to very stealthy characters using it, but
I doubt it's one they could even notice.

--------------------------------------------------------------------------------
1b2b8bafc6 | DracoOmega | 2024-06-10 14:39:37 -0230

Add 'Nightshade' as a Dithmenos title for Vine Stalkers (Flugkiller)

--------------------------------------------------------------------------------
9f789a9292 | DracoOmega | 2024-06-09 21:49:05 -0230

Tweak Dithmenos wrath
Instead of summoning demons and undead to harass the player, Dithmenos can
now summon multiple shadow puppets (whose damage scales with the player's
level) with a chance to slow the player at the same time, or animate the
player's shadow against them as an active hostile monster.

The hostile player shadow can know a single shadow spell drawn at random
from the schools of spells the player knows. A handful of these don't
really work when cast by an independent shadow and so are excluded for the
moment.

I'd still like to do something with the Dith wrath option that puts you to
sleep, but this at least excises the 'arbitrarily evil' part of the wrath.

--------------------------------------------------------------------------------
443a00b34a | DracoOmega | 2024-06-09 21:49:05 -0230

Add a targeter to indicate which enemies will be misled by Shadowslip
I've seen a little uncertainty sometimes why some monsters were or were
not affected by this effect (possibly because the monsters weren't
targeting the player at the time), so now it hilights all such monsters
before cast.

I'm a bit concerned now that it might be misleading in a different way for
hilighting something different than 'where the player will move' but I hope
at least that part is unambiguous enough with experience to not require it?

--------------------------------------------------------------------------------
c9175b0889 | DracoOmega | 2024-06-09 21:49:05 -0230

Fix a few breaks in mons_cast that should be returns
Breaks in the giant switch statement led to a default behavior of firing
the beam which is always passed into this function, after whatever the
spell's own effect was. In almost all cases, there should be a return
statement after the spell's code block instead (although at least two cases
do this break intentionally...)

Mostly, the effect of this seems to be invisible, though it caused
Marionette to crash when casting Summon Scorpions due to firing a beam with
no source position specified. I'm actually not sure why normal casting of
this spell *doesn't* crash, since setup_mons_cast() doesn't fill that info
in for the spell either (since it's not supposed to be *using* that beam),
but I will just assume something somewhere else along the way of the
normal cast path superfluously fills in this information.
f

--------------------------------------------------------------------------------
58e5f1b3e6 | DracoOmega | 2024-06-09 21:49:05 -0230

Don't let monsters perform reach attack from out of sight
When using Primordial Nightfall

--------------------------------------------------------------------------------
82c59061e6 | DracoOmega | 2024-06-09 21:49:05 -0230

Make Primordial Nightfall give a stealth bonus while active
The ability could sometimes be less effective than expected if the player's
base stealth was very low (with a few corner cases where that could even be
exploited, such as attacking orbs of fire with LoS 0 and 0 Stealth and
having them refuse to wander away)

This should hopefully make cheese less practical while making it feel a
little better in other cases.

--------------------------------------------------------------------------------
38f5e135ac | DracoOmega | 2024-06-09 21:49:05 -0230

Make shadow mimic play less poorly with Ensorcelled Hibernation
Due to its schools, casting EH can trigger either Shadow Torpor or Creeping
Shadow, both of which are capable of immediately waking up what you just
put to sleep, which is extremely bad playfeel for Enchanters - an archetype
Dith specifically wants to support.

Shadow Torpor now in general doesn't wake sleeping monsters (it seems
harmless to slow a sleeping monster). I think it would be more problematic
if Creeping Shadow *also* didn't wake sleeping monsters in general (or we
might get people spamming Ozo's Armour at the end of LoS to take out
sleeping bands...) but the current gameplay is so bad that I'm making it
'cheat' a little and not wake up sleeping monsters that have specifically
been put to sleep via Hibernation.

--------------------------------------------------------------------------------
7207012e00 | DracoOmega | 2024-06-09 21:49:05 -0230

Adjust Dithmenos flavor
They are no longer an evil god who focuses on corruption-via-darkness, but
rather a neutral god of night and of things half-seen in the dark.

In keeping with this, Dithmenos now operates on exploration piety instead
of kills - they want you to venture into the dark hidden places of the
dungeon, as one might wander the night, and discover what lurks there.

Since Dith's entire ability context is already changing, upending piety
rate ought to be doable without any greater concern than the god rework as
a whole has.

This commit also replaces all existing titles. One reference umbra (which
Dith no longer uses), another referenced 'Endless' night (when you now
have a Nightfall ability that explicitly ends and whose description talks
about how night always gives way to day), and more references a hatred of
fire that is also long-gone. So it felt like a chance to do them over from
scratch.

--------------------------------------------------------------------------------
393c3b82af | DracoOmega | 2024-06-09 21:49:05 -0230

Aphotic Marionette (new Dithmenos 4* ability)
An activated ability that allows the player to grab hold of an enemy
through their shadow and force them to unleash a barrage of spells as if
it were the player casting them.

In a single action, the enemy will run through their known spells (in
random order), attempting to cast each on random targets hostile to the
player, and repeating spells only once all valid spells have been cast
once. Creatures they summon this way will belong to the player and many
beneficial effects that they would apply to themselves will be applied to
you instead (such as Might or Invisibility). You are also fully protected
from any damage they would cause (ie: if you force Nikola to repeatedly
cast Chain Lightning).

A handful of spells are not eligible to be cast this way (either because
they would be useless, harmful, or are currently broken in some fashion),
but these are all clearly indicated with an ‘!’ when examining an enemy.

Can only ever be used successfully on given enemy a single time, period.
(In some cases, such as an enemy having a single spell that is
theoretically valid but which no enemy is in range of, using Marionette may
have no useful effect. In those situations, most of the piety cost is
refunded and you will able to try again another turn).

By default, attempts to cast 3 spells by the targeted enemy, though at very
high levels of invocations, this number can be raised as high as 6.

----

The implementation of this is fairly complicated, but I have mostly tried
to avoid doing anything *inside* the code of existing spells (with just a
couple small exceptions). However, wonky as it is in some ways, I think the
net effect feels really cool and meaningfully different than charming, and
rounds out Dith's kit as abilities that never directly damage or summon
anything but manipulate existing monsters and their ability to act against
you through trickery.

(I do plan to do a little more refactoring to this later, but it should
largely function as-is. Somewhat unclear about what the piety cost should
be, since it varies from fairly disappointing to extremely powerful
depending on what is around to use it on, but that's some of what
experimental branches are for)

--------------------------------------------------------------------------------
d9fb448ec8 | DracoOmega | 2024-06-09 21:49:04 -0230

Implement new Dithmenos spell shadow mimic
Old spell mimic was a very fickle thing, working properly with fewer and
fewer spells over the years as more of them stopped being simple targeted
effects (and even those which were often needed special-case logic to
prevent, say, immediately cancelling Teleport Other on a monster or
immediately destroying your own boulder with a shadow shard). However, the
idea of god passive that works differently based on what magic the player
themselves is using is a good one, so I have attempted to make a consistent
version of this.

Whenever you cast any spell, there is a chance for your shadow to cast a
'shadow spell' corresponding to the school of the spell you cast (chosen at
random for multi-school spells). These spells mimic something of the
*style* of that school of magic, but not the substance - doing
non-elemental damage or otherwise being irresistable.

The shadow spell list is:

Fire: Shadowball (like Fireball, but irresistible.)
Ice: Creeping Shadow (like Creeping Frost, except irresistible and with a
 somewhat smaller range.)
Earth: Shadow Shard (single target, high damage projectile.)
Air: Shadow Tempest (smite-targeted (but dodgeable) damage that strikes
 between 30-50% of all visible enemies + 1)
Alchemy: Shadow Prism (make a shadow prism that works like a fulminant
 prism, but is somewhat harder to hit and deals no damage to allies)
Conjurations: Shadow Beam (a penetrating damaging beam)
Necromancy: Shadow Draining (3x3 damaging burst centered on the shadow
  which ignores enemy AC.)
Summoning: Shadow Puppet (minor ally with swoop/flank/constricting attacks
  whose base damage scales with spellpower. Summon cap of 3.)
Hexes: Shadow Torpor (penetrating beam that applies low-duration Slow to
  enemies. Ignores Will and always succeeds, though the duration is reduced
  by enemy HD versus spellpower.)
Translocations: Shadow Bind (short-duration Bind (ie: no movement) effect
  to a random number of enemies in LoS. Spellpower make it affect more
  enemies at once.)

The spellpower of your shadow is based on a function of your XL and the
level of the spell which triggered it. (Each spell level is worth 4 Xls)

All shadow spells are silent and inflict no damage to the player or their
allies.

This resist-ignoring boost provides a different vector of supporting
spellcasters than current spellcasting gods. You aren't given new spells or
the ability to cast them any better, but you *do* get built-in versatility
and bonus damage in a way that should feel different depending on what sort
of caster you're playing)

(Credit to regret-index for the shadow puppet tile and most of the spell
icons)

--------------------------------------------------------------------------------
357ea4826f | DracoOmega | 2024-06-09 21:49:04 -0230

Refactor Creeping Frost
Simplifies some of the code a little, while also allowing future effects to
perform the same 'burst from walls' effect with a smaller radius and
different beam properties.

There should (hopefully) be no meaningful functional change to the spell.

--------------------------------------------------------------------------------
db99905527 | DracoOmega | 2024-06-09 21:49:04 -0230

Add a special mid to simulate being a player shadow
For tracers where the shadow does not yet exist, but where we wish to trace
from the perspective of a potential one.

--------------------------------------------------------------------------------
5a209e1d8c | DracoOmega | 2024-06-09 21:49:04 -0230

Allow beam tracers to work without an agent
This is specifically for shadow mimic spell tracers here, where the shadow
monster may not yet exist (yet we need to trace from the shadow's
perspective to account for being able to shoot through the player).

--------------------------------------------------------------------------------
ff88027d6e | DracoOmega | 2024-06-09 21:49:04 -0230

Force summons created by player shadows to count the player as summoner
Instead of the shadow itself, which often will not even last a turn,
causing the summons to immediately poof.

--------------------------------------------------------------------------------
7a8788ee89 | DracoOmega | 2024-06-09 21:49:04 -0230

New Dith 5* ability: Primordial Nightfall
Immediately reduces the player's sight radius to 0 and then slowly restores
it to normal over the duration of the effect. Cannot be reapplied until it
has fully worn off (so the player cannot spam it to remain
nearly-invulnerable).

Fills a little of the role of Shadow Form being a defensive panic button,
without nearly so many different properties and up/downsides baked into it,
and hopefully feels reasonably unique as well.

One quirk that might not be immediately apparent is that enemies can still
attack you when your sight radius is 0 because 'moving into a space' always
counts as an attack if something is there. You do get the invisibility
bonus to avoid their attacks because they still can't 'see' you, however.

--------------------------------------------------------------------------------
d377fa96d6 | DracoOmega | 2024-06-09 21:49:04 -0230

Remove unused Dith ability descriptions from translations

--------------------------------------------------------------------------------
57e9c227c7 | DracoOmega | 2024-06-09 21:48:59 -0230

Add noise dampening as Dith 1* ability
Intended to fill some of the same role as umbra once did, but in a way that
has more potentially interesting ramifications for blasters as well.

--------------------------------------------------------------------------------
63ec5cfc87 | DracoOmega | 2024-06-09 21:41:40 -0230

Remove the Noise Suppression mutation
(In preparation for it being baked in as Dithmenos's first passive)

--------------------------------------------------------------------------------
848d387018 | DracoOmega | 2024-06-09 21:41:40 -0230

Slightly improve spacing in god-passive.h for clarity
Grouping each god's abilities together, as is done in several other files.

--------------------------------------------------------------------------------
ebaddcd06c | DracoOmega | 2024-06-09 21:41:40 -0230

Replace Shadow Step with Shadowslip (new Dith 3* ability)
Usable only while your shadow is out, Shadowslip swaps your position with
it at instant speed and then misleads all visible enemies into thinking
that your shadow *is* you. Enemies mislead this way will focus their
attention solely on your shadow for several turns (or until the shadow
dies), allowing you to slip away or stab them in the back.

It costs a relatively modest amount of piety, but also some HP (as Shadow
Step itself did).

--------------------------------------------------------------------------------
df2a5d8dae | DracoOmega | 2024-06-09 21:41:39 -0230

Overhaul Dithmenos shadow mimic (for attacks)
Instead of briefly placing an invisible monster at the player's location
(which tries very hard to convince the code in several places that it
really *is* the player - a source of multiple bugs in past), player shadows
are now proper monsters that show up on a nearby tile when they trigger.

(They do not act independently, so they can be somewhat compared to a
spectral weapon that lingers around for a few turns after activating to
potentially distract monsters, and will interact with a future ability.)

Melee attacks that trigger mimic will attempt to place it on the opposite
side of the creature you're attacking and then swing at it, where this is
possible, but can place on any tile up to 3 tiles away, and select any
valid enemy in this range if it is not. (ie: they will always try to hit
something, if they can). Ranged mimics will simply place somewhere nearby,
but otherwise follow similar rules.

The player and their shadow can freely fire through each other.

As before, your shadow wields an unbranded +0 copy of your weapon's base
type, though its own base damage now scales with your XL so that it should
have more impact and remain more useful across the length of the game.

(The logic for spell mimic will be added in a future commit)

--------------------------------------------------------------------------------
f6379e189b | DracoOmega | 2024-06-09 21:41:39 -0230

Remove Dith's passive umbra, simplify umbra stealth bonus
With umbra having become a core Yred mechanic, Dith is going to be swapping
it out for a different method of making the player harder to notice (see
d5141423a9 )

Also, rather than handling divine umbras and item umbras differently (which
I think was not obvious to almost anyone), just standardize them at +50%
stealth regardless of piety.

--------------------------------------------------------------------------------
a7885c0a3b | DracoOmega | 2024-06-09 21:41:39 -0230

Rename shadows (the undead monster) to shadowghasts
To reduce some confusion/ambiguity between player shadows (which are
non-living) and the common monster (which is undead) - especially now that
player shadows are a visible thing a Dith worshipper can see (and will
likely be eventually used in wrath effects)

--------------------------------------------------------------------------------
8171723bb2 | DracoOmega | 2024-06-09 21:41:39 -0230

Separate the dummy monster used for god wrath from player shadows
This has caused bugs in past, and now that player shadows themselves are
also no longer going to be weird hidden monsters standing on the player's
tile, let's properly give wrath avatars their own monster type.

There should be no functional change from this commit.

--------------------------------------------------------------------------------
fa19ac73ef | DracoOmega | 2024-06-09 21:41:39 -0230

Remove Dithmenos's Shadow Form ability and associated form
Shadow Form was a moderately useful defensive tool, but it came with an
extremely long list of assorted bonuses and penalties (several of which
were highly specific). As part of the pending revamp, it is slated to be
replaced with a different ability that aims to achieve a similar function
of 'powerful defensive cooldown that makes you supernaturally hard to be
seen' in a more streamlined manner. (See 7444593a7a )

--------------------------------------------------------------------------------
0d7b496e3d | DracoOmega | 2024-06-09 21:34:15 -0230

Remove Dith's bleed smoke passive
This rarely triggered until high piety, and even then was widely thought
to be more of a drawback than it was an upside (due to blocking ?blinking
at random and interfering with targeting.) Dith's revamp will be doing
other things instead.

--------------------------------------------------------------------------------
45bd9992d9 | DracoOmega | 2024-06-09 16:16:57 -0230

Remove default argument from SpellLibraryMenu
When I wrote this, I'd intended for the default argument to be memorise
(and then typoed it). But since this is only constructed in 3 places, and
each one uses a different argument now anyway, might as well remove this.

--------------------------------------------------------------------------------
af954efcbc | DracoOmega | 2024-06-09 16:16:57 -0230

Make apostle challenges a little more generous about the player's HP
Instead of merely needing the player to be over 50% hp to issue a challenge
(which is often still dangerously low early on), use a sliding scale based
on the player's xl. (>80% at xl 0 to >50% by xl 27)

--------------------------------------------------------------------------------
fdec4ed788 | DracoOmega | 2024-06-09 16:16:57 -0230

Fix pathfinding issues with apostle challenges / Blood for Blood
Pathfinding without a proper monster agent always considered closed doors
(and deep water and lava) to be untraversible, resulting in the code for
apostle challenges and BfB considering areas behind closed doors
unreachable. This could happen very frequently in Vaults.

Since apostle challenges that cannot be issued are merely delayed, and the
player will open doors as they explore the level, this may not have been
immediately obvious to most players, but it nonetheless shouldn't be
possible to avoid a challenge just by sitting in a room with the door
closed.

BfB had a similar issue due to how it places continuous reinforcements just
out of sight and has them move towards the player. It now should no longer
be flummoxed by doors.

(Friendly monsters normally cannot actually open doors, but I have made an
exception in this case, since it feels appropriate for the gameplay that
BfB creates.)

--------------------------------------------------------------------------------
e5cf5f0ba6 | DracoOmega | 2024-06-09 16:16:57 -0230

Make Erica always spawn with a ring instead of sometimes an amulet
This was always the intention anyway, as I understand it.

--------------------------------------------------------------------------------
5a71cb29df | DracoOmega | 2024-06-09 16:16:57 -0230

Don't let wizard apostles learn the same secondary spell twice
This did actually double their cast rate of it, but confused people by
showing up twice in the apostle info blub (and was rather opaque anyway).

--------------------------------------------------------------------------------
1a24481981 | DracoOmega | 2024-06-09 16:16:57 -0230

Add Permafrost Eruption and Hellfire Mortar to the wizard apostle list

--------------------------------------------------------------------------------
e83a209741 | DracoOmega | 2024-06-09 16:16:57 -0230

Make Beogh ally healing via damage stronger (and tweak wording)
I think the pseudo ally-vampirism effect Beogh granted was already decently
relevant, but seemed to have gone overlooked by a bunch of people. Since
Beogh doesn't seem in danger of being *too* good (and anything which
requires the player to put themselves in harm's way is already the 'less
strong' side of Beogh anyway), let's try buffing the effect a noticable
amount and see if people notice it more.

--------------------------------------------------------------------------------
f893faa421 | DracoOmega | 2024-06-09 16:16:56 -0230

Prevent apostle challenges before D:6
Early apostle challenges can be enormously dangerous, and this made early
faded Beogh altars and/or monks often more bad than good. This attempts to
address the worst cases by simply banning all apostle challenges before
D:6. That is still fairly early, but ideally a more manageable level of
early.

(Progress towards the next challenge will still accumulate even before this
point, so the early piety bonus will still result in more rapidly getting
a full roster, but hopefully not before the player has a reasonable chance
of managing it.)

--------------------------------------------------------------------------------
e97a2a3757 | DracoOmega | 2024-06-09 16:16:56 -0230

Fix Regenerate Other being usable on self, add Mass Regeneration
Despite the name, priest apostles could use Regenerate Other on themselves.
Now it really does require they cast it on someone else, but a high-level
version that applies regeneration to *all* allies has been added as a rarer
priest spell, in partial compensation.

--------------------------------------------------------------------------------
13359583c7 | DracoOmega | 2024-06-09 16:16:56 -0230

Improve Noxious Breath targeting behavior
Targeting will no longer default to aiming at the player, even when
susceptible enemies are in range. Also, it will properly display the chance
for the noxious clouds to confuse enemies instead of a misleading 'hit
chance' (it can't miss in the first place)

This fixes #3831

--------------------------------------------------------------------------------
ea5a38db02 | elliptic | 2024-06-09 14:03:25 -0400

Mark the god.worship milestone only after setting initial piety
Previously if you had Invocations as your top skill it recorded the penance
title for your new god.

--------------------------------------------------------------------------------
0555720625 | elliptic | 2024-06-09 02:06:19 -0400

Fix not being able to memorize spells not currently castable (johngfound)
Piledriver and Sublimation were two examples of spells that had issues.

--------------------------------------------------------------------------------
dcd31b5c68 | DracoOmega | 2024-06-08 22:54:03 -0230

Mention in spell descriptions whether they are servitorable (elliptic)
If the player knows Spellforged Servitor, there will be a line appended to
full spell descriptions letting the player know whether this is a spell
that servitor could cast.

--------------------------------------------------------------------------------
790598c828 | David Lawrence Ramsey | 2024-06-08 18:55:49 -0500

Fix typo.

--------------------------------------------------------------------------------
4a138bde44 | DracoOmega | 2024-06-08 20:34:37 -0230

Let players choose which spell their Spellforged Servitor casts (elliptic)
Spellforged Servitor is a fun and popular spell, but it relies on a hidden
priority list of spells it can cast which isn't documented anywhere in
game. This is somewhat opaque to inexperienced players, and even for
experienced ones, can lead to unfortunate situations of wanting to avoid
memorizing a spell that the player would like to use, but which they would
rather their servitor not.

In an attempt to improve this situation a little, the player now has an
Imbue Servitor ability while Spellforged Servitor is known, which will
allow them to specify which eligable spell the player would like them to
cast.

This ability dismisses the servitor and takes 5 turns to complete, so is
not intended as a quick swap in combat. If the player never uses it, the
servitor defaults to its current behavior (to prevent people who forget or
do not realize from having a bad time). If the imbued spell somehow becomes
ineligable (either due to ?amnesia or the player no longer being able to
cast it well enough), the servitor will also fall back to the old default
behavior.

(It was suggested that it might be nice if the UI would also list spells in
the player's library which *could* be eligable if the player memorized them
or trained more, but that seems significantly more complicated to
implement. I wouldn't object if someone else tried, though.)

--------------------------------------------------------------------------------
b41d2f8c7d | DracoOmega | 2024-06-08 20:34:37 -0230

Remove -MP from Cloak of the Thief (elliptic)
The cloak having a downside at all, after its effect was changed, was
partially for historical reasons, and it seems plausible it doesn't need
one at all (it's already +0). Since -MP seems to still be stopping some of
the characters it could be interesting on from using it, let's try getting
rid of it entirely.

--------------------------------------------------------------------------------
8bd0f5762a | David Lawrence Ramsey | 2024-06-08 16:43:18 -0500

Clarify changelog entry for DS foul shadow.

--------------------------------------------------------------------------------
d719f66080 | DracoOmega | 2024-06-08 15:12:09 -0230

Add option to redefine colours in Tiles/Webtiles
custom_text_colours lets you change the RGB value of any of the 16 basic
terminal colours used by Crawl and much of its interface. These are
specified as arbitrary pairs of colour name and hex code (eg:
lightmagenta:#fd59fa ) and can be remapped individually.

Thanks a ton to mumra for outlining how to get any of this kind of
functionality working in Webtiles.

I've never touched options code or webtiles rendering before (or web code
in general...), so I am still a *little* nervous I've done something wrong,
but it seems to work properly in testing.

--------------------------------------------------------------------------------
1404227de2 | David Lawrence Ramsey | 2024-06-08 09:21:31 -0500

Tweak goblin sharper dialogue.
Separate the list of cards from the deck of oddities and the list of
cards from non-Nemelex decks, so that the latter can be adjusted more
easily.

--------------------------------------------------------------------------------
6e78a6c96c | elliptic | 2024-06-07 22:04:37 -0400

Fix changelog error

--------------------------------------------------------------------------------
7c0229b0b9 | DracoOmega | 2024-06-07 23:23:57 -0230

Make blocks of ice (and hoarfrost cannons) amphibious
The former in particular had some awkward interactions with being unable
to sculpt simulacra of merfolk while over deep water. The merfolk simulacra
would be able to swim, but the blocks of ice could not. Since blocks of ice
are pretty well known for floating in the ocean in reality, I don't think
it would be too weird if they did so here.

And let's let hoarfrost cannons do it too while we're at it, because why
not?

--------------------------------------------------------------------------------
ecdbb5f6cc | DracoOmega | 2024-06-07 23:09:50 -0230

Tweak AF_VAMPIRIC message (Namsan)
Instead of saying they draw 'strength' from your injuries (which might be
confused for them gaining Might or some other form of power boost, say they
draw 'vitality' instead.

--------------------------------------------------------------------------------
7842008b98 | DracoOmega | 2024-06-07 23:07:07 -0230

Don't claim hellfire mortars 'flop about on dry land' (elliptic)
While I found it very hard to cause this in testing, it appears to relate
to being constricted in place for long enough that the lava path disappears
beneath it.

The main answer to this is to make the mortar too large to constrict, but
in the rare situation where it may be otherwise possible to replace the
lava beneath it with some other terrain, I have also suppressed the message
in general.

--------------------------------------------------------------------------------
e1e3299b55 | DracoOmega | 2024-06-07 23:05:09 -0230

Remove hellfire mortars upon leaving a level

--------------------------------------------------------------------------------
9f51f148f8 | DracoOmega | 2024-06-07 23:04:18 -0230

Let hoarfrost cannons be affected by LRD
Since they're clearly made of ice.

--------------------------------------------------------------------------------
a2d40b9c78 | DracoOmega | 2024-06-07 23:03:52 -0230

Buff Undying Armouries a little
They have an interesting set of abilities, but feel perhaps a little
undertuned for a rarer lategame enemy.

Make the dancing weapon created by Flashing Balestra spawn with Might and
increase the duration of Bestow Arms (and make ranged weapons a little more
likely to be given by it).

Also increase their spawn weight in the Vaults OOD table by a modest amount
(since it's the only place in the game they naturally spawn), trimming a
sliver of weight from storm and shadow dragons in the process.

--------------------------------------------------------------------------------
49f9abe96c | DracoOmega | 2024-06-07 21:11:29 -0230

Preserve the auras of bound souls
At the moment, that basically just means torpor snails and glowing orange
brains, neither of which are ideal bound souls in the first place, but it
seems harmless and maybe ocassionally useful.

--------------------------------------------------------------------------------
eb34fb9520 | DracoOmega | 2024-06-07 21:10:13 -0230

Fix being unable to use Bind Soul on monsters without attacks
The logic was inverted since %bf13549d7c2a334ff38fb0051bddd08410055114
letting you make spectrals with no attacks via Death Channel, but
preventing you from using Bind Soul on such monsters, even if they knew
spells.

--------------------------------------------------------------------------------
1cf930e433 | DracoOmega | 2024-06-07 21:08:32 -0230

Fix Yred always saying they were 'Noncommittal' no matter your piety
The logic didn't get updated after Yred returned to a normal piety system.

--------------------------------------------------------------------------------
b780b6b422 | David Lawrence Ramsey | 2024-06-07 13:52:01 -0500

Unbrace

--------------------------------------------------------------------------------
fe1d291595 | elliptic | 2024-06-07 14:41:24 -0400

Simplify weapon acquirement
The goals here are similar to that of armour acquirement simplification -
remove weird bits of logic that could be exploited by a spoiled player
(e.g. raising Necromancy skill from 0 to 2 made non-artefact weapon gifts
twice as likely to be pain) and make the code simpler in general, while
still trying to give the player useful or interesting items.

The way in which weapon acquirement chose a weapon skill to use (via a
weighted random choice with weights based on the player's skill levels) is
unchanged by this commit. There are two main changes beyond that though:

First, weapon subtype (war axe vs broad axe vs battleaxe, etc) was
previously chosen with weights determined in a very complicated way that
took the player's highest weapon skill (even if not the one being gifted)
and their shield skill into account (and had breakpoints when comparing them)
and also (for non-Trog acq) looked at the cube of the weapon's base damage
divided by the weapon's base delay. This was all on top of acquire_weight
numbers in item-prop.cc. That has been drastically simplified - now we mainly
just use the acquire_weight numbers. They are modified slightly based on
Shields skill (to prefer 1-handers with higher Shields skill) and also
unseen subtypes have 5 times the weight (unchanged from before).

When coming up with the new acquire_weight numbers, I didn't try to work out
what all the effective weights with the old system were (again, they took
weapon stats into account in a complicated way) but instead aimed for
consistency across weapon skills. For each weapon skill, I aimed for about
50% of the weight to be split among "top-tier" weapons (anything not very
clearly worse than other weapons for endgame characters, so e.g. for axes
these are broad axe and executioner's axe) and also gave 0 weight to weapons
in the set of weaker starting weapon. I also tried to keep things roughly
evenly divided between 1-handers and 2-handers at base (though raising
Shields skill will make 1-handers somewhat more common).

The second major change was to rework brand weighting for non-artefact
weapon acquirement. Instead of weights ranging from 1 to 6 for different
brands with no apparent logic, I've changed it so there is a single list
of "boring" brands that are rerolled 2/3 of the time (effectively meaning
their weights in the brand tables in item-prop.cc are divided by 3):
flaming, freezing, draining, heavy, venom, protection, and electrocution.
It seems reasonable to try to make non-artefact weapon acquirements
somewhat more exotic like this.

In addition, scroll acquirements no longer generate artefact weapons with
negative enchantment (non-Xom god gifts already had this protection).

In general I'm unsure how big these changes will be in practice (probably
some weapon types are impacted more than others), though things looked
fairly reasonable in my testing. It should be much easier to tweak things
in the future though.

--------------------------------------------------------------------------------
f6fde8ad6d | elliptic | 2024-06-07 14:41:24 -0400

Fix items in starting inventory not being marked as seen
This meant that if a fighter starting with a war axe found acquirement before
finding a second war axe (or dropping their starting one), they would have
the unseen bonus increasing the chance of getting offered another war axe
from acquirement.

--------------------------------------------------------------------------------
181dc37c9d | patrick | 2024-06-07 11:42:09 -0400

Add some sinuous, squamous decor vaults to the Snake Pit
Also use some more decorative conduits in places, mostly just copying
the code that regret-index put in elsewhere in Snake, for thematic
consistency.

--------------------------------------------------------------------------------
ac80d7c31b | elliptic | 2024-06-07 11:25:35 -0400

Fix typo in tower shield acq weight

--------------------------------------------------------------------------------
5039c0303e | elliptic | 2024-06-07 10:58:27 -0400

Simplify armour acquirement
These changes had two goals: to make armour acquirement logic relatively
unmanipulable by the player while still being likely to provide useful or
interesting items, and to simplify armour acquirement logic.

After this commit, the player's skills only affect armour acquirement in
two ways: higher Shields skill makes tower shield more likely and bucklers
and orbs less likely, and higher Armour skill makes higher AC body armour
more likely and lower AC body armour less likely. Both of these effects are
relatively weak and don't have any special breakpoints.

In particular, body armour acq no longer depends in strange and complicated
ways on Dodging and Spellcasting skill. In general it should be much easier
to tweak body armour acq in the future, since the weights used are just the
acq_weights defined in item-prop.cc (which I have changed to focus more on
better/more interesting types) modified by a simple function of Armour skill
and AC of the armour.

In addition, the logic for making artefacts and items in "unseen" slots more
common has been drastically simplified, though hopefully things are still
fairly similar.

In general it should be fairly hard to notice these changes in practice -
probably the biggest changes are to body armour, which I suspect is better
in practice on most characters now, and which I've also made somewhat more
common.

--------------------------------------------------------------------------------
5c500c4b6e | elliptic | 2024-06-07 10:09:22 -0400

Make demons summoned by obsidian axe always friendly (Ge0ff)
Removing the ~4% chance of hostiles - it wasn't documented and wasn't very
impactful aside from giving a very tiny chance of getting mutated by a
hostile neqoxec before killing it with the axe. This is even consistent
with Makhleb Lesser Servant having 0 hostiles after ~8 invo skill.
Obsidian axe has a much more dangerous and interesting drawback already.

--------------------------------------------------------------------------------
925b980f54 | DracoOmega | 2024-06-07 01:13:29 -0230

Give Wiglaf's hat a proper tile (regret-index)
So now you can look properly stylish (instead of it mostly looking like a
wizard hat).

(I was sorely tempted to name the file hat_stupid.png, just so everyone's
aware, but elected for clarity instead.)

--------------------------------------------------------------------------------
95f95faf5e | DracoOmega | 2024-06-07 00:39:03 -0230

Tweak how piety costs are described in ability descriptions
Due to how rounding was performed, and the fact that '1% of your maximum
piety' was the lowest piety cost ability descriptions could display, the
game claimed Makhleb's Major Destruction and Lesser Servant cost the same
amount of piety, when in fact Major Destruction costs 1/6th what Lesser
Servant does. (It would be quite a bad ability if it actually did cost just
as much!)

Piety costs now round up instead, meaning that Lesser Servant will say it
costs 2%, while Major Destruction says 'less than 1%', which is a lot
closer to accurate.

(It's possible this rounding change makes something slightly less accurate
somewhere else, but I'm not aware of two abilities belonging to the same
god where it was nearly so misleading.)

--------------------------------------------------------------------------------
2b8f59dbc9 | DracoOmega | 2024-06-07 00:25:14 -0230

Fix monster Bind Soul tracer including the caster as an eligible target
(Even though it never works on the caster). This could cause monsters to
cast the spell to no effect.

--------------------------------------------------------------------------------
d392c7bc3d | DracoOmega | 2024-06-07 00:25:06 -0230

Fix a couple monster spells using 'true' attitudes instead of current ones
Because of using mons_atts_aligned instead of mons_aligned, a charmed
monster would still consider their 'real' allies to be allies and not cast
these spells against them. (In fact, they might actually use these effects
against 'allies' of the same alignment they had been charmed to be.

--------------------------------------------------------------------------------
088aa39380 | DracoOmega | 2024-06-07 00:24:59 -0230

Rescale Drain status light colors
The thresholds currently used seem to have been derived directly from the
numbers used when drain affected skill levels instead of HP and are oddly
spaced (changing severity at >0%/5%/10%/25%/50% max HP lost), as well as
(in my opinion) giving a false impression of the severity of the effect at
low levels of draining. (At least I was surprised that red 'heavily
drained' starts at only 10% hp loss, which doesn't seem alarming enough to
warrant that label).

This commit respaces that to >0%/10%/20%/30%/50%. I'm interested in a few
more adjustments to draining formulas, but for now this allows a better
visible threshold for when Midnight Pantomime turns off.

--------------------------------------------------------------------------------
38bec8a339 | DracoOmega | 2024-06-07 00:24:51 -0230

Don't show a warning for moving while confused near ancestors
...and other allies you couldn't hurt even if you stumbled into them.

--------------------------------------------------------------------------------
995e409d96 | DracoOmega | 2024-06-07 00:24:39 -0230

Adjust some Webtiles text colors
Magenta text in webtiles was conspicuously dark, making multiple status
indicators unnecessarily difficult to read against the game's black
background. (Lightmagenta was also extremely desaturated, and neither
looked particularly like their equivalents in local tiles).

This commit adjusts these to improve contrast and readability, and also
does this to a lesser degree to blues and dark red.

(Side note: not a great fan of how many things in this css seem to want to
reference a common color specifically, but only do so by copy-pasting it
with a name in comments. I've done my best to be careful and keep
everything in sync.)

--------------------------------------------------------------------------------
58043dd47d | DracoOmega | 2024-06-07 00:24:31 -0230

Differentiate Magenta and Lightmagenta a little better in local tiles
These two colors were so similar that in practice one couldn't really tell
them apart. I've made Magenta slightly darker to help with this (though
hopefully not by so much that it impacts readability.)

--------------------------------------------------------------------------------
be264ac2b7 | elliptic | 2024-06-06 12:43:12 -0400

Let Vehumet support Rimeblight
It makes damaging explosions.

--------------------------------------------------------------------------------
a65b6e8950 | elliptic | 2024-06-06 12:40:57 -0400

Fix fluxform glow description on A screen
It doesn't make the player easier to hit.

--------------------------------------------------------------------------------
bc65bc19aa | NormalPerson7 | 2024-06-05 11:00:46 -0700

Fix ^ screen for Jiyva and Ignis (#3851)
Apparently Webtiles uses regular expressions to parse the ^ screen,
and it really doesn't like the use of parentheses in strings
describing god powers. There is a way around this, but it puts the
resistance in the cost column on Webtiles (in the same way as
Cheibriados' stat boost), which is unacceptable.

Also change "injuring" to "harming" when referring to jellies,
for better flavour.

--------------------------------------------------------------------------------
c82b5af2af | David Lawrence Ramsey | 2024-06-04 13:18:34 -0500

Improve speech regarding random classes of gods.
A chaotic, evil, and/or good god can now be randomly chosen via the
@random_god_chaotic@, @random_god_evil@, and @random_god_good@ entries.
The Zin angel's speeches are now updated to use these; for the last,
they now preach about the goodness of random good gods.

This way, the lists of chaotic/evil/whatever gods no longer have to be
manually updated in the monster speech database when a god's class
changes in the code (e.g. Nemelex Xobeh's becoming chaotic).

As a side effect, if Jiyva is dead, the Zin angel will now no longer
preach about "the lawlessness of Jiyva."

--------------------------------------------------------------------------------
b2d4fd1c9b | David Lawrence Ramsey | 2024-06-04 10:59:54 -0500

Fix Grunn speech typo (DevastatorOne).
Closes #3854.

--------------------------------------------------------------------------------
795e84f355 | mumra | 2024-06-04 01:19:13 +0100

Add some Xom dance moves

--------------------------------------------------------------------------------
eaf9e87d58 | David Lawrence Ramsey | 2024-06-03 11:55:21 -0500

Add Xom translucent wall/empty hands messages.

--------------------------------------------------------------------------------
5e68aa8d9f | NormalPerson7 | 2024-06-02 14:16:02 -0500

Make various small improvements to ability summary on ^ screen
 - Beogh: add lines for Beogh sending challenges as you gain piety,
   and explain that they can be recruited if you defeat them;
   improve various other inconsistencies around ^ for new Beogh
 - Ignis: explain that Rising Flame is one-use-only
 - Lugonu: show passive banishment on other gods' wrath
 - Yredelemnul: explain that light the torch gives allies at 1*
 - Jiyva: show jellies being peaceful, eating items, and being
   protected from player damage, and show the Slime Pits unlock at 6*

Also move a number of passive abilities with hardcoded descriptions
describe-god.cc to the table of god powers in religion.cc.
The only abilities left in describe-god.cc are those that have
unusual criteria (e.g. Hep frailty), or those whose text changes
as you gain piety (e.g. lifesaving, umbra).

There remain several minor passives (e.g. Trog's ally protection
and berserk extension, Elyvilon's ally lifesaving) which are too
minor to appear on ^.

[Committer's notes: Squashed. Fixed spacing. Fixed reversed logic that
wrongly coloured the convert_orc passive. Fixed piety breakpoint for
colouring orc apostle recruitment: it's not 3*, but 0*. Also put all
logic that colours passives in the same order.]

--------------------------------------------------------------------------------
251a44db69 | DracoOmega | 2024-06-02 09:34:41 -0230

Don't give XP for killing hellfire mortars

--------------------------------------------------------------------------------
c7fbda7099 | DracoOmega | 2024-06-02 09:34:27 -0230

Try to avoid an infinite handle_monsters loop with Hellfire Mortar
In some circumstances, it was possible for the mortar to be unable to move,
yet not die either, in which case it never consumed energy on its turn and
would cause an infinite handle_monsters() loop.

While some of the individual causes of this warrant being addressed
directly, for now put in general protection so that these should not crash
(but simply have the mortar pass its turn harmlessly and expire at the end
of the lava effect at the latest).

--------------------------------------------------------------------------------
432df90de2 | NormalPerson7 | 2024-06-01 13:44:33 -0500

Tweak wanderer good-throwing/good-weapon items
Previously, the good set of throwing items for wanderer was 1-4
curare-tipped darts and a +2 dagger. Neither of these scale well with
throwing skill, which is likely to be your highest skill. This could
also be extremely disappointing if you got 1 curare dart and it
mulched immediately. To encourage actually training throwing skill,
replace the enchanted dagger with large rocks/javelins/boomerangs
(depending on size), up to a total of 7 pieces of ammunition.
(Note: this uses the same code as the gladiator background, so
small species will get double the number of boomerangs.)

Also, the good set of weapon items for all weapon skills had a 4/5
chance of giving a +2 enchantment to a decent-quality weapon
(falchion, mace, etc), and a 1/5 chance of upgrading to a good-quality
weapon (long sword, flail, etc). In practice this upgrade was rather
rare, and starting with a +2 decent weapon is a little too frequent.
So let's bump the upgrade chance to 1/3, for the sake of variety.

[Committer's notes: Edited commit message.]

--------------------------------------------------------------------------------
78dad2f34e | David Lawrence Ramsey | 2024-06-01 11:46:13 -0500

Fix spelling.

--------------------------------------------------------------------------------
cc7ef8420a | David Lawrence Ramsey | 2024-06-01 11:38:06 -0500

Clarify Yred's Black Torch changelog entry.
It only summons allies starting at 1*, even though you first get it at
0*.

--------------------------------------------------------------------------------
632b080833 | David Lawrence Ramsey | 2024-05-31 16:02:10 -0500

Add a few more chaos manes to artefacts.

--------------------------------------------------------------------------------
426ccd8811 | regret-index | 2024-05-31 02:22:46 -0230

Quick vault review
Of note:

 * Replace shrikes in two heavily-themed Elf vaults with walking
   frostbound and earthen tomes each. They're strong thematic placements,
   don't get to fire too horribly-dangerously in the high-monster-density
   narrow corridors arrangements Elf uses, and there's reasonable enough
   chances to survive long enough to teleport if one's doing Elf earlier
   compared to those shrikes.

 * Add a slight pinch of additional variety to profane_halls.

 * Slightly more insults via newer items and artprops to tgw_lugonu_bribe.

--------------------------------------------------------------------------------
bd61dd866b | David Lawrence Ramsey | 2024-05-29 13:37:02 -0500

Add a few more colour names to the database.

--------------------------------------------------------------------------------
b82444e216 | David Lawrence Ramsey | 2024-05-28 19:04:07 -0500

Set proper console colours for conduits.
So that all alchemical conduits are poison-coloured, all arcane conduits
are Vehumet-coloured, all dimensional conduits are warp-coloured, all
earthen conduits are earth-coloured, all fiery conduits are
fire-coloured, all icy conduits are ice-coloured, all misfortune
conduits are shimmer blue-coloured, all soul conduits are
smoke-coloured, and all storm conduits are electricity-coloured.

--------------------------------------------------------------------------------
0e98aa1795 | David Lawrence Ramsey | 2024-05-28 16:31:35 -0500

Set proper console colours for statues.
So that all scintillating statues are mountain-coloured, all golden
statues are yellow-coloured, and all silver statues are
silver-coloured.

--------------------------------------------------------------------------------
dbcf8a7b3f | David Lawrence Ramsey | 2024-05-28 00:30:49 -0500

Replace duplicate virtue name in artefacts.

--------------------------------------------------------------------------------
d0d00ac9c4 | David Lawrence Ramsey | 2024-05-27 17:05:26 -0500

Add a few more Xom staircase messages.
Also tweak the code to replace @staircase@. It's in more than one
message now, so the optimisation for it is overkill.

--------------------------------------------------------------------------------
e9e123dbde | David Lawrence Ramsey | 2024-05-27 11:24:50 -0500

Add fruit/meat lines for gargoyles/statues.

--------------------------------------------------------------------------------
2b70ce2205 | David Lawrence Ramsey | 2024-05-27 09:24:57 -0500

Add another bird name to artefacts.

--------------------------------------------------------------------------------
198796a1b9 | David Lawrence Ramsey | 2024-05-26 17:30:21 -0500

Attribute death-spread rimeblight correctly.
Closes #3833.

--------------------------------------------------------------------------------
275cc6b170 | David Lawrence Ramsey | 2024-05-25 19:22:58 -0500

Reenable Xom miscast substrings.
Do them efficiently by only doing substring replacements on the message
we end up displaying. Also, add substrings back into Xom eye messages.

--------------------------------------------------------------------------------
3085f02e0b | regret-index | 2024-05-25 21:35:38 -0230

A little more (placeholder?...) spell tile work, new(?) spells edition
* Hoarfrost Cannon/ade now uses an extremely modified version of the
  kobold blastminer's cannon, rather than the diamond obelisk. Eventually,
  it'd be good to have a semi-crystalline appearance for the cannon, but
  this should also help with the prior Forceful Dismissal tile not being
  confused with its current Maxwell's Capacitive Coupling tile.

* Bestow Arms uses the rough same icon base as Sheza's Dance, but without
  the musical notes or many noticeable chips in the main blade.

* As future-proofing for other plans, and to help Alchemy's thematic
  cohesion a little bit more, the Fulminant Prism tile is now themed and
  coloured as soft fulminating gold, a material well known to western
  alchemy as both synthesize-able but also mostly highly explosive. (Of
  course, one can't make prisms of gold, but that's what magic is for.)
  While I've emphasized that it's 1: magic and 2: soft for it to not count
  as brittle for LRD purposes, I cannot stop other devs from possibly
  making it work with LRD anyway in the future if they so desire it. It's
  a severe tactical error to almost ever do such, considering the spread
  of different schools involved as well as doing more damage for less MP
  to just actually place multiple Prisms, so I'd personally prefer to
  prevent players from even trying to aim for false synergies.

* Rename Prayer of Brilliance's tile to its new non-aura name.

* Alphabetized the dc-spells.txt file a bit more. Possibly we should be
  organizing these by spell level and some documentation or UI's order
  for the spell schools? Not in a rush to figure that out, anyway.

--------------------------------------------------------------------------------
86927b1969 | David Lawrence Ramsey | 2024-05-25 14:55:20 -0500

Fix Xom impromptu dance check.
Properly use player_has_feet() instead of making assumptions regarding the
ability to wear boots.

--------------------------------------------------------------------------------
c506da67b6 | David Lawrence Ramsey | 2024-05-25 10:06:44 -0500

Tweak Xom substitutions.
Do the lowercase ones first, as in do_mon_str_replacements().

--------------------------------------------------------------------------------
c2b75838d0 | David Lawrence Ramsey | 2024-05-25 10:04:45 -0500

Simplify Xom database strings a bit.
Only check for empty ones if there's a chance of they're being empty
(the feature and body armour ones, if nothing Xom can play with is
available). Also, drop substring usage, so we aren't calling
maybe_pick_random_substring() a bunch of times; the substitutions are
enough.

--------------------------------------------------------------------------------
99e0a4bd94 | Aliscans | 2024-05-25 09:16:04 -0500

mprf("string")/mprf("%s", string) -> mpr(string)
Also wrap some long lines.

[Committer's notes: Edited commit message.]

--------------------------------------------------------------------------------
d3ef473dfc | David Lawrence Ramsey | 2024-05-24 21:39:11 -0500

Expand Xom hair messages beyond eyebrows.
Now you can spontaneously grow facial hair, too.

--------------------------------------------------------------------------------
0fe9cc0fda | David Lawrence Ramsey | 2024-05-24 12:52:03 -0500

Only do Xom dances if you can wear boots.
It's simpler than the naga species/fishtail check, and the
heel-clicking message only makes sense if you have heels to click;
assume anyone who can wear boots has heels.

--------------------------------------------------------------------------------
cf91537885 | DracoOmega | 2024-05-24 14:02:02 -0230

Revert "Prevent enemies from summoning in Okawaru's Arena"
There was more opposition to this change than I was expecting from
previous discussions. It still feels like Duel could use a little
something, but perhaps something else.

This reverts commit 28453e28303c8ec3fca004e8f8115febf7e91e70.

--------------------------------------------------------------------------------
ae95028895 | DracoOmega | 2024-05-24 13:59:21 -0230

Revert "Make living spells count as 'conjured'"
Not only did this make living spells remain after the tome they'd
come out of was dead, but it caused them to ignore their summon
cap.

(Further evidence that the functionality of some of these flags
could use consolidation and cleanup)

This reverts commit 2d6ab54fa9add43c1c3fbb67585905fc1f3aa11b.

--------------------------------------------------------------------------------
157a17335d | David Lawrence Ramsey | 2024-05-24 10:41:54 -0500

Add another dance name to Xom messages.

--------------------------------------------------------------------------------
45592c0896 | David Lawrence Ramsey | 2024-05-24 10:29:39 -0500

Move Xom's divine lightning msgs to the database.
And add two more messages to the original one.

--------------------------------------------------------------------------------
c984cbb1ce | David Lawrence Ramsey | 2024-05-24 10:20:37 -0500

Add another Xom shallow water option.
It can already briefly boil; let it briefly freeze, too.

--------------------------------------------------------------------------------
a78d4baa1f | David Lawrence Ramsey | 2024-05-23 22:22:12 -0500

Add a few more pattern names.

--------------------------------------------------------------------------------
9654fa51c0 | David Lawrence Ramsey | 2024-05-23 21:46:31 -0500

Add another Xom metal wall message.

--------------------------------------------------------------------------------
a73736a63b | David Lawrence Ramsey | 2024-05-23 21:36:20 -0500

Expand Xom eye messages beyond monocles.
Now Xom can give you eyepatches, too.

--------------------------------------------------------------------------------
fdf316e120 | David Lawrence Ramsey | 2024-05-23 20:36:07 -0500

Simplify high degree corrode chances (mumra).

--------------------------------------------------------------------------------
b7e3594fbc | Monkooky | 2024-05-23 20:34:53 -0500

fix corrosion chances for high degree
likely broken in 7d2b172

not likely relevant since only ever applies to wu jian wrath

--------------------------------------------------------------------------------
ad1f891a58 | Aliscans | 2024-05-23 20:26:18 -0500

Don't rest if you're dying in a sanctuary.
Refuse to rest if suffering from fatal poison, sticky flames or
emergency flight, even in a Zin sanctuary. Before, the game paused for
a turn to let these cause damage before stopping.

Also remove the word "standing" from "You're standing in..." (you may
not have any feet) and split some long lines.

--------------------------------------------------------------------------------
a70493316b | David Lawrence Ramsey | 2024-05-23 19:43:29 -0500

Move Xom's armour messages to the database.
Simplify things by no longer pluralising the message for a robe; it's
the only message that uses pluralisation, and adding it for only the one
case would be a lot of effort for little gain.

--------------------------------------------------------------------------------
3fb591a930 | David Lawrence Ramsey | 2024-05-23 15:48:48 -0500

Adjust Xom statue message.
Make a statue spin in place instead of doing an impromptu dance, since
we don't know what kind of statue it might be (or if it's been
redefined).

--------------------------------------------------------------------------------
18e651e562 | David Lawrence Ramsey | 2024-05-23 15:26:10 -0500

Move Xom's heel-clicking message to the database.
Simplify things by not having it require boots anymore, and adding it
in the impromptu dance messages, since it could be seen as a dance move.
One side effect of this is that you can't do it while airborne anymore,
but otherwise it has all the same restrictions as Xom's impromptu
dances.

--------------------------------------------------------------------------------
33a4c11214 | David Lawrence Ramsey | 2024-05-23 15:11:48 -0500

Fix capitalisation of Xom slot messages.
They should only be capitalised if they're at the beginning of the
message. Just because all the current messages put them at the
beginning doesn't mean that will always be the case.

--------------------------------------------------------------------------------
cab03da4c4 | David Lawrence Ramsey | 2024-05-23 15:07:05 -0500

Add Xom offhand slot messages to the database.

--------------------------------------------------------------------------------
6b41a1c859 | David Lawrence Ramsey | 2024-05-23 14:59:18 -0500

Fix basenames for helmet and cloak messages.
Using "your" and the basename, as was done before, makes the message
shorter, and keeps the "your" part for artefacts.

--------------------------------------------------------------------------------
5f1ab2f97b | David Lawrence Ramsey | 2024-05-23 14:54:52 -0500

Fix check for having one hand available.
Account not for just missing hands, but the offhand slot.

--------------------------------------------------------------------------------
5e7fbf1b49 | David Lawrence Ramsey | 2024-05-23 14:48:07 -0500

Add Xom helmet slot messages to the database.

--------------------------------------------------------------------------------
e64a787fdf | David Lawrence Ramsey | 2024-05-23 14:41:07 -0500

Move Xom cloak slot messages to the database.
To simplify things, use the billowing and head-wrapping messages for
both; scarves can billow, and cloaks can wrap themselves around your
head if twisted the right way.

--------------------------------------------------------------------------------
d3dd8e2323 | David Lawrence Ramsey | 2024-05-23 14:27:35 -0500

Move Xom unarmed messages to the database.
Add a message referencing both hands for two-handed players.

--------------------------------------------------------------------------------
7f32bf64ec | David Lawrence Ramsey | 2024-05-23 12:05:51 -0500

Add Xom's bandage messages to the database.

--------------------------------------------------------------------------------
7bd33a5f4e | David Lawrence Ramsey | 2024-05-23 11:55:28 -0500

Add proper empty string checks for Xom speech.
For the entries that don't have it, just in case speech lookup fails.

--------------------------------------------------------------------------------
1594a75379 | David Lawrence Ramsey | 2024-05-23 11:53:47 -0500

Add Xom monocle messages to the database.

--------------------------------------------------------------------------------
d359847116 | David Lawrence Ramsey | 2024-05-23 11:36:10 -0500

Add Xom eyebrow messages to the database.
And do proper substring substitutions on both them and the impromptu
dance messages, even though the latter currently has no substrings.

--------------------------------------------------------------------------------
0cf2ae49a4 | David Lawrence Ramsey | 2024-05-23 11:27:03 -0500

Add Xom impromptu dances to the database.
Also add another dance option: the cha-cha.

--------------------------------------------------------------------------------
d6ea513206 | David Lawrence Ramsey | 2024-05-23 10:43:09 -0500

Add general underfoot messages for Xom.

--------------------------------------------------------------------------------
2164ef01d7 | David Lawrence Ramsey | 2024-05-23 10:40:29 -0500

Use a ternary operator in another place.

--------------------------------------------------------------------------------
67769320d9 | David Lawrence Ramsey | 2024-05-23 09:58:48 -0500

Use push_back() in some Xom messages.
Instead of emplace_back(), for when we're pushing back a variable.

--------------------------------------------------------------------------------
c2c3137104 | David Lawrence Ramsey | 2024-05-23 09:32:39 -0500

Disallow Xom tapdances for players who can't act.
Since the same restriction applies to players who click the heels of
their boots together.

--------------------------------------------------------------------------------
b12cf6e68c | David Lawrence Ramsey | 2024-05-23 09:14:14 -0500

Simplify naming of Xom inventory-related keys.

--------------------------------------------------------------------------------
4c70718b6c | David Lawrence Ramsey | 2024-05-23 09:09:43 -0500

Fix typo in Xom key (oops).

--------------------------------------------------------------------------------
64b13a49ba | David Lawrence Ramsey | 2024-05-23 09:01:54 -0500

Adjust Xom monocle message for one-eyed players.
If you've sacrificed an eye, it no longer specifies which eye gets the
monocle.

--------------------------------------------------------------------------------
3bc4ff6abe | David Lawrence Ramsey | 2024-05-23 08:28:29 -0500

Consolidate Xom inventory item messages.
The ones that occur only if there's solid ground under the player and
the ones that occur regardless now use the same lines when applicable,
and the latter are now in the database.

Also, inventory items can now glow random colours as well as flash or
vibrate.

--------------------------------------------------------------------------------
ddd6be794e | Nicholas Feinberg | 2024-05-22 20:48:40 -0700

Make Zin's altar twinkle
I'm making this animation for my own purposes, and wanted to give it
back to the source.

--------------------------------------------------------------------------------
f31e8602d3 | David Lawrence Ramsey | 2024-05-22 20:15:38 -0500

Move more Xom messages to the database.
The item(s) jumping out of your backpack and then back in are now
handled.

--------------------------------------------------------------------------------
d686d4318b | David Lawrence Ramsey | 2024-05-22 19:39:19 -0500

Consolidate two Xom messages.

--------------------------------------------------------------------------------
de576c14da | David Lawrence Ramsey | 2024-05-22 19:31:27 -0500

Move more of Xom's messages to the database.
This is now done for the messages regarding dungeon features underneath
the player.

--------------------------------------------------------------------------------
bb75d02521 | David Lawrence Ramsey | 2024-05-22 15:17:25 -0500

Wrap overly-long line.

--------------------------------------------------------------------------------
4c66c2f241 | David Lawrence Ramsey | 2024-05-22 15:13:48 -0500

Tweak for loop condition.

--------------------------------------------------------------------------------
d5c3120602 | David Lawrence Ramsey | 2024-05-22 15:06:31 -0500

Move Xom's feature messages to the database.
Note that this is currently only done for the messages regarding dungeon
features surrounding the player.

--------------------------------------------------------------------------------
e8832af77b | David Lawrence Ramsey | 2024-05-22 14:33:08 -0500

Rearrange Xom message checks a bit.

--------------------------------------------------------------------------------
98074d0971 | David Lawrence Ramsey | 2024-05-22 14:06:38 -0500

Remove duplicate Xom blood fountain logic (oops).

--------------------------------------------------------------------------------
d7423c112a | David Lawrence Ramsey | 2024-05-22 12:59:18 -0500

Add another Xom stone arch message.

--------------------------------------------------------------------------------
4e5cd39131 | David Lawrence Ramsey | 2024-05-22 12:42:18 -0500

Add a few more Xom statue messages.
Statues can now tapdance the same way the player can. (If the statue is
of something with no feet... let's say that Xom finds a way.)

--------------------------------------------------------------------------------
4e96f1f5b6 | David Lawrence Ramsey | 2024-05-22 12:39:39 -0500

Fix indentation.

--------------------------------------------------------------------------------
29bc1f9022 | David Lawrence Ramsey | 2024-05-22 12:20:00 -0500

Remove unneeded blank lines.

--------------------------------------------------------------------------------
60ba5cd16a | David Lawrence Ramsey | 2024-05-22 11:59:50 -0500

Make Xom messages account for redefined features.
Also, consolidate a few messages.

There are still a few oddities, such as "The gravestone turns to stare
at you.", but the features are at least named correctly.

Closes #3826.

--------------------------------------------------------------------------------
a9ead07e84 | David Lawrence Ramsey | 2024-05-22 11:31:45 -0500

Add another dry fountain message for Xom.

--------------------------------------------------------------------------------
f7e3935c44 | David Lawrence Ramsey | 2024-05-22 10:33:46 -0500

Fix punctuation.

--------------------------------------------------------------------------------
5cf9a61fe5 | mumra | 2024-05-22 03:48:17 +0100

Remind monsters how to open doors
A fairly old bug seemingly introduced in 323ad4e. Monsters would open doors 
under the simplest circumstances (standing right next to them, and/or with an 
otherwise unobstructed view to the player) but as soon as waypoint pathfinding 
kicked in, the is_habitable check was happening too early and they never got to 
check if they were able to traverse the door. Closed doors are not considered 
habitable (probably since 323ad4e).

These checks were introduced to solve an issue with clinging but were not 
purged in 53d2a09 when clinging was removed. Both checks were duplicated in 
mons_can_traverse but in the correct sequence to also account for doors.

--------------------------------------------------------------------------------
87cd461dd1 | David Lawrence Ramsey | 2024-05-21 17:31:47 -0500

Add Xom message for metal statues.
And consolidate it with the one for granite statues, since they both do
the same thing now.

--------------------------------------------------------------------------------
5ce18b405a | David Lawrence Ramsey | 2024-05-21 10:04:28 -0500

Add another pattern name.

--------------------------------------------------------------------------------
5f74a5512e | David Lawrence Ramsey | 2024-05-20 23:46:59 -0500

Add another pattern name.

--------------------------------------------------------------------------------
5069440637 | David Lawrence Ramsey | 2024-05-20 23:40:33 -0500

Add another Xom message with colour patterns.

--------------------------------------------------------------------------------
ce46c558ed | DracoOmega | 2024-05-20 21:08:52 -0230

Don't cover stairs with dead hoarfrost cannons (particleface)
The puddles from them melting was intended primarily as a minor flavor
thing and not something that should be so mechanically impactful as to
block off a player's escape from a floor.

They now use logic similar to primal wave and replace only plain floor.

--------------------------------------------------------------------------------
16219f168b | David Lawrence Ramsey | 2024-05-20 18:09:25 -0500

Fix typo in alchemy miscast message.

--------------------------------------------------------------------------------
30aeb729f7 | NormalPerson7 | 2024-05-20 20:18:56 -0230

Fix Hellfire Mortar power cap (#3820) (#3824)
Spells implicitly take the lesser of their defined power cap and their

corresponding zap's defined power cap when deciding what their real

power cap should be. Since Hellfire Mortar is linked to

ZAP_HELLFIRE_MORTAR_DIG, which had a cap of 100, Hellfire Mortar

erroneously also had a cap of 100. Since it doesn't appear that power

actually does anything for this zap, just raise the zap's cap to 200.
--------------------------------------------------------------------------------
08d867e968 | gammafunk | 2024-05-20 16:49:52 -0500

feat: Unarmed attack ego description for clua
Via `you.unarmed_ego()`, which returns a string containing a description
of the ego, if any. Takes an optional boolean argument to return a terse
ego description, which defaults to false.

--------------------------------------------------------------------------------
c81a1b28c5 | David Lawrence Ramsey | 2024-05-20 16:03:57 -0500

Add a few Xom messages referencing colour patterns.

--------------------------------------------------------------------------------
c7163d470e | David Lawrence Ramsey | 2024-05-20 15:56:13 -0500

Tweak wording of necromancy miscast message.

--------------------------------------------------------------------------------
50be89a3ba | David Lawrence Ramsey | 2024-05-20 15:56:13 -0500

Adjust unseen alchemy miscast messages.

--------------------------------------------------------------------------------
48138d7521 | David Lawrence Ramsey | 2024-05-20 15:55:39 -0500

Fix spacing of a pattern name.

--------------------------------------------------------------------------------
2ab4ef48e6 | mumra | 2024-05-20 15:38:21 -0500

Some tweaks and additions to miscast messages
* Added some colourful pattern names, which player and monster skin can
  turn into on alchemy miscasts
* Removed some duplication in miscast messages by combining with
  [one|two] syntax (and removing an outright duplicate)
* Change "sparks" message to "cinders" in Fire miscasts as it was
  already used in Conj
* Necromany "shivers with cold" message sounded too much like an ice
  miscast, so I modified it to "walking over your grave" message
* You feel off-balance for a moment: sounded more like translocation so
  I moved it there
* A number of messages were repeated across several miscast types:
  - Strange energies run through your body: also used in death curses,
    almost the same as the malmutate message, and also rather similar to
    magic contamination "wild energies", so I just removed it to avoid
    being mistaken
  - Strange surge of energy: removed from Conjurations since it's also
    used in hexes alongside "magic surges out"
  - Air crackles with energy: sounds rather more like an electricity
    effect, but air *wasn't* a school that used it, so I moved it there
    instead
* Added a few minor variations to things here and there

--------------------------------------------------------------------------------
9b32533982 | mumra | 2024-05-20 15:37:21 -0500

Txt-ify miscast messages
Moving these to their own txt file was reasonably straightforward and
makes it now possible to translate them - as well as making it easier to
make additional substitutions such as colour names or further
randomisations (without having to invoke these lookups unneccesarily for
cases that are not using them).

This commit replicates the exact messages as they were without further
modification.

--------------------------------------------------------------------------------
d283c3be7c | gammafunk | 2024-05-20 11:51:31 -0500

feat: Add unarmed combat damage to clua
Via `you.unarmed_damage_rating()`, which returns two values: the damage
rating as a number, and the damage rating description as a string. Also
add line breaks to l-you.cc to make reading easier.

--------------------------------------------------------------------------------
ac1fde5492 | David Lawrence Ramsey | 2024-05-20 00:32:13 -0500

Fix typos, spelling, and wording.

--------------------------------------------------------------------------------
b66479f5cc | David Lawrence Ramsey | 2024-05-19 22:32:26 -0500

Mention Fedhas' protecting friendly plants.

--------------------------------------------------------------------------------
b12068d400 | David Lawrence Ramsey | 2024-05-19 21:53:01 -0500

Add correct 0.32 up-through version (oops).

--------------------------------------------------------------------------------
3a8b7b03c6 | David Lawrence Ramsey | 2024-05-19 20:48:56 -0500

Add sometimes-pasta-adjacent food to artefacts.

--------------------------------------------------------------------------------
14f4ba10ed | David Lawrence Ramsey | 2024-05-19 20:07:56 -0500

Add 0.32 up-through version to changelog.

--------------------------------------------------------------------------------
1eea0c6e6f | David Lawrence Ramsey | 2024-05-19 19:58:49 -0500

Fix spelling: bedeviled -> bedevilled.

--------------------------------------------------------------------------------
f56e53c086 | David Lawrence Ramsey | 2024-05-19 19:55:44 -0500

Colourise drag and swarm in monster bot.

--------------------------------------------------------------------------------
2ebb5e6a31 | David Lawrence Ramsey | 2024-05-19 19:55:32 -0500

Update monster bot for AF_SWARM.

--------------------------------------------------------------------------------
d8addd5893 | David Lawrence Ramsey | 2024-05-19 19:41:57 -0500

Fix description of DS foul flame mutation.

--------------------------------------------------------------------------------
48eddae406 | David Lawrence Ramsey | 2024-05-19 19:24:32 -0500

Clarify new Ijyb's description.

--------------------------------------------------------------------------------
2cd1f3e945 | David Lawrence Ramsey | 2024-05-19 19:23:42 -0500

Fix typos and spelling.

--------------------------------------------------------------------------------
8efb30d515 | regret-index | 2024-05-19 21:46:11 -0230

Fiddle with the changelog's future (various)
Deep Elves getting an innate faster mp regen mutation has been discussed
multiple times over 0.32's development, but hasn't actually been
implemented yet. Sorry for the confusion.

--------------------------------------------------------------------------------
d1fd03315b | regret-index | 2024-05-19 21:21:30 -0230

Nudge around some listings and documentation
Move Arachne and Wiglaf's sections in uniques.des to the right alphabetical
and section positions, mention how we finally have a lava spell and a
little more clarity for Air Magic's restrictions in spells.txt.

--------------------------------------------------------------------------------
9412f0fc87 | regret-index | 2024-05-19 21:21:30 -0230

Changelog for 0.32 (up to 78dc6a7)
Notes:

* I'm probably 33% wordier than others who have written up the changelog
  before. Some of these overhauls or new spells are pretty complicated,
  so I think it's fine, but others can abbreviate and alter the changelog
  as they desire.

* I've seen people also lament the loss of Hill Orcs from a flavour
  perspeective, so I ended up emphasizing "all species can become orcs" in
  the mentions of Mountain Dwarves thus replacing them multiple times.

* We've been a little inconsistent across versions in using Artefact,
  Item, and Unrand headers. I'm opting for the first two, since that's the
  most recent changelog's approach.

--------------------------------------------------------------------------------
f720f7fe4a | patrick | 2024-05-19 19:38:24 -0400

Decor vaults for Crypt
Special request from r-i, ages ago. Contains some that have good
loot just lying around, to increase the loot in Crypt, to lure more
hapless adventurers to their deaths. Not you, though. You'll be fine.
Go in the Crypt. Go in there. Go in the Crypt. Go. Do it. It's fine.

--------------------------------------------------------------------------------
78dc6a7b8a | patrick | 2024-05-19 16:54:01 -0400

Fix up some shop vaults and add some more
1) Redo the inventory of the elemental shop, since the original
   theme is long-obsolete now that evokers are unique and in item sets.
2) Touch up the changing room inventory.
3) Tweak the rings in the One Of A Kind Rings now that the MP values for
   regular randarts have been tweaked upwards. Current values may be
   ridiculous, I will find out when I get yelled at about it--
4) Added a generically magic-themed shop with some of the new
   magic-themed decoration features.
5) Added a multi-shop vault featuring antiques out the wazoo.

--------------------------------------------------------------------------------
91856e71ab | DracoOmega | 2024-05-19 15:30:58 -0230

Buff / Fix Rimeblight
After 799ce95f6cd29deaeda1c58a8f94fcd328702e82 is was intended that
Rimeblight spread to adjacent creatures whenever an infected creature died,
but in actuality, this only happened if they died due to the instakill
threshold effect and left behind a pillar of rime. As it is extremely
common for a monster to go from >20% hp to dead directly, the buff wasn't
actually working as intended. I have fixed that now.

I suspect this change alone does a very substantial amount to make the
spell feel stronger, but in response to feedback, I have also let
Rimeblight affect nonliving/undead monsters (with the caveat that they
*don't* get the instakill pillar effect, as they have no lifeforce to
empower the plague on the verge of their death), and nudged up the low
end of its duration and DoT damage by a tiny smidge.

Let's see if this finally feels appropriately strong in the proper
situations.

--------------------------------------------------------------------------------
bb3f4b5168 | David Lawrence Ramsey | 2024-05-19 10:25:06 -0500

Checkwhite

--------------------------------------------------------------------------------
ab2d129dd7 | David Lawrence Ramsey | 2024-05-19 10:18:31 -0500

Add a message for when the player finds all gems.
Use only the miscellaneous colours in it, to avoid duplicate colours as
much as possible.

Suggested by regret-index.

--------------------------------------------------------------------------------
540c3cb408 | David Lawrence Ramsey | 2024-05-19 10:02:34 -0500

Fix obsolete orb ego: channelling -> energy.

--------------------------------------------------------------------------------
6251899524 | David Lawrence Ramsey | 2024-05-19 09:59:51 -0500

Fix spelling.

--------------------------------------------------------------------------------
db9be81004 | David Lawrence Ramsey | 2024-05-19 09:48:05 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
69e7503642 | David Lawrence Ramsey | 2024-05-19 08:42:10 -0500

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
5cb19619eb | David Lawrence Ramsey | 2024-05-19 08:10:34 -0500

Add more minor alchemy miscast messages.

--------------------------------------------------------------------------------
732af374f4 | Nicholas Feinberg | 2024-05-18 23:17:30 -0700

Fix missing mons spell info (DeathSushi)
The legend that explains how to read monster spell descriptions was
missing.

Probably broken since at least df0a5da549d686d (2022).

--------------------------------------------------------------------------------
101ff301c8 | David Lawrence Ramsey | 2024-05-19 00:25:43 -0500

Tweak wording of new alchemy miscast msgs.

--------------------------------------------------------------------------------
7eaa27f522 | David Lawrence Ramsey | 2024-05-19 00:04:40 -0500

Add alchemy miscast msgs w/new colours (mumra).
Do colour name substitutions on miscast messages so that this works.

--------------------------------------------------------------------------------
5768f2273c | David Lawrence Ramsey | 2024-05-18 21:53:39 -0500

Add a few Xom messages for blood fountains.
Since there are Xom messages for all the other fountain types.

--------------------------------------------------------------------------------
5aad360255 | David Lawrence Ramsey | 2024-05-18 21:37:56 -0500

Add a Xom resurrection line referencing colours.
Everything turns monochromatic before Xom saves you.

--------------------------------------------------------------------------------
72dcce589e | David Lawrence Ramsey | 2024-05-18 21:14:19 -0500

Add a few Xom mutation lines referencing colours.
Good mutations mention gouts of light, while random mutations mention
flashes of light; neither use the monochromatic colours.

--------------------------------------------------------------------------------
3cc3825e25 | David Lawrence Ramsey | 2024-05-18 20:52:35 -0500

Add a few more Xom messages referencing colours.
Water and water in fountains can now briefly flash colours.

--------------------------------------------------------------------------------
ecc208a7ad | David Lawrence Ramsey | 2024-05-18 19:33:59 -0500

Make a Xom message use the new colour database.
In Xom's list of pseudo-miscasts, instead of making your offhand item
flash a lurid colour, make it flash a lurid "randomly chosen colour".

As suggested by regret-index.

--------------------------------------------------------------------------------
0db79e9a43 | David Lawrence Ramsey | 2024-05-18 18:54:38 -0500

Remove unneeded extra "%%%%".

--------------------------------------------------------------------------------
f9f58d7fab | David Lawrence Ramsey | 2024-05-18 17:49:03 -0500

Add another sky colour name to artefacts.

--------------------------------------------------------------------------------
64db273368 | David Lawrence Ramsey | 2024-05-18 17:22:38 -0500

Move colour names into their own database entry.
They're now in colourname.txt, and accessible to the speech database in
general instead of just Blorkula's dialogue.

"rainbow_colour" has the rainbow colours, "misc_colour" has the
miscellaneous non-monochrome colours, "mono_colour" has the monochrome
colours black, white, and grey, and "any_colour" has a mix of them all.

Note that "mono_colour" and "any_colour" aren't used anywhere yet,
although they work in perfunctory testing.

--------------------------------------------------------------------------------
31401ee733 | David Lawrence Ramsey | 2024-05-18 14:48:46 -0500

Add more colour names to Blorkula's dialogue.

--------------------------------------------------------------------------------
7932608573 | mumra | 2024-05-18 02:53:47 +0100

Apply defender AC for electrolunge damage
Incorrectly the attacker's was being applied instead.

--------------------------------------------------------------------------------
13c1908155 | David Lawrence Ramsey | 2024-05-17 11:05:00 -0500

Add yet more colour names to Blorkula's dialogue.

--------------------------------------------------------------------------------
75f53f5641 | David Lawrence Ramsey | 2024-05-17 11:03:02 -0500

Fix missorted colour entry.

--------------------------------------------------------------------------------
a64f6baaea | David Lawrence Ramsey | 2024-05-17 11:02:39 -0500

Add still more colour names to Blorkula's dialogue.

--------------------------------------------------------------------------------
39d9cdbf94 | David Lawrence Ramsey | 2024-05-17 10:31:16 -0500

Add another fruit name to artefacts.

--------------------------------------------------------------------------------
0f580fe372 | David Lawrence Ramsey | 2024-05-17 09:12:15 -0500

Add more colour names to Blorkula's dialogue.

--------------------------------------------------------------------------------
c771b14f0e | David Lawrence Ramsey | 2024-05-17 08:37:39 -0500

Add another Qazlal Donald line.

--------------------------------------------------------------------------------
f3498c87cc | David Lawrence Ramsey | 2024-05-17 08:32:57 -0500

Add another thing name to artefacts.

--------------------------------------------------------------------------------
f786d4924a | David Lawrence Ramsey | 2024-05-17 08:32:26 -0500

Rock melon -> rockmelon (oops).

--------------------------------------------------------------------------------
249f2362e2 | David Lawrence Ramsey | 2024-05-17 08:24:36 -0500

Cantaloupe -> rock melon (jejorda2).
Since the latter is the Australian name for the fruit (and associated
colour).

--------------------------------------------------------------------------------
f6571284fb | David Lawrence Ramsey | 2024-05-16 21:57:55 -0500

Add a few more fruit names to artefacts.

--------------------------------------------------------------------------------
904c1d6a4d | David Lawrence Ramsey | 2024-05-16 07:46:29 -0500

Fix truncated ghost brand descs (NormalPerson7)

--------------------------------------------------------------------------------
e648739837 | DracoOmega | 2024-05-16 05:08:37 -0230

Fix Wiz being listed twice on randart rings of wizardry
Was just a visual bug. It still only provided one level of wizardry.

--------------------------------------------------------------------------------
e5b5818aa0 | David Lawrence Ramsey | 2024-05-15 21:00:23 -0500

Add yet more colour names to Blorkula's dialogue.

--------------------------------------------------------------------------------
b41659da18 | Kyle Rawlins | 2024-05-15 21:33:33 -0400

Revert "Add a minimum maximum message size"
PF committed this without realizing that the code added by 2d7b844e09c6
is recent. That change already adds a default of 1000, and when the
option is explicitly set to None or 0, chat is disabled altogether (chat
commands still work).

This reverts commit 5fb32589bcaf44ddd6ffcb06a6a8ae016db6489c.

--------------------------------------------------------------------------------
37f40e56f2 | David Lawrence Ramsey | 2024-05-15 19:57:06 -0500

Add still more colour names to Blorkula's dialogue.

--------------------------------------------------------------------------------
4d507754ad | David Lawrence Ramsey | 2024-05-15 19:26:11 -0500

Add more colour names to Blorkula's dialogue.

--------------------------------------------------------------------------------
91d48be214 | DracoOmega | 2024-05-15 21:29:36 -0230

Boost Coglin base Will, replace Will+ gizmo property (Lici)
Coglins have often been mentioned as a species that struggles with Will
checks, due to their more restricted access to Will+ items while only
having baseline Will. I'd been mostly okay with this being a weakpoint of
the species, but after some discussion about how this may bias gizmo
selection unduely towards whichever ends up with Will+ on it, I've decided
to experiment with removing it.

There's a fairly limited list of possible bonuses that could replace Will+
in the minor gizmo slot (I feel See Invisible and Flight are too weak to
feel compelling, even paired as a minor bonus, and I'd been deliberately
avoiding AC/EV and stat upgrades), and what I've settled on for now is
Wizardry+4MP. It's possible this doesn't appeals to enough coglins to
open up the decision space between gizmos in the way this commit was
generally intended, but wizardry on an otherwise-appealing gizmo might
specifically incentivize a little hybridization that a player wouldn't have
otherwise done, and that feels worthy trying.

--------------------------------------------------------------------------------
8d0d2ced60 | DracoOmega | 2024-05-15 21:29:36 -0230

Make MP property on randarts not always be exactly +/-9
For variety's sake, more than anything else. The exact range of possible
values is now 4-12, though weighted more towards the middle of that range.
(The new median is ~7.2, I believe)

(Technically this would also affect how much HP randarts could give you if
that prop could ever actually appear on them)

--------------------------------------------------------------------------------
5fb32589bc | Nicholas Feinberg | 2024-05-15 14:48:41 -0700

Add a minimum maximum message size
For chatty cathys.

--------------------------------------------------------------------------------
f2d3ae65d4 | David Lawrence Ramsey | 2024-05-15 13:14:03 -0500

Add yet more colours to Blorkula's dialogue.

--------------------------------------------------------------------------------
2d7b844e09 | Kyle Rawlins | 2024-05-15 13:55:41 -0400

feat: configurable chat message length limits for webtiles
This adds a length cap to chat messages, for one variety of flood
control. The initial default is a bit arbitrary. This option will also
allow a server admin to disable ordinary chat altogether (doing this
leaves chat commands still available).

This commit will need a webtiles server restart to take effect.

--------------------------------------------------------------------------------
f824865791 | David Lawrence Ramsey | 2024-05-15 09:16:49 -0500

Add still more colours for Blorkula's dialogue.

--------------------------------------------------------------------------------
ca21d12091 | David Lawrence Ramsey | 2024-05-14 16:49:28 -0500

Add more colours for Blorkula's dialogue.

--------------------------------------------------------------------------------
75c6d2788c | DracoOmega | 2024-05-14 18:30:41 -0230

Fix Arachne's Greater Ensnare making net traps instead of webs
When I was busy testing to see if multiple different trap types functioned
with the new temporary trap code, I apparently forget to change this back
before pushing...

--------------------------------------------------------------------------------
9761ffe6f0 | DracoOmega | 2024-05-14 18:24:02 -0230

Don't block autoexploring through the player's own Toxic Bog
Fixes #3813

--------------------------------------------------------------------------------
144c9d6bc9 | DracoOmega | 2024-05-14 18:13:48 -0230

Give boulders a less insectoid tile
This isn't the best-looking rolling boulder, but at least it no longer
looks literally identical to a boulder beetle.

--------------------------------------------------------------------------------
a792d77c5b | DracoOmega | 2024-05-14 18:12:25 -0230

Fix a buggy interaction between boulders and nets
Since boulders bypass much of normal monster movement code, they happily
continued to move while netted. But alas, net status works by assuming
there is a net item on the ground of tile the netted monster is located in,
which causes various wierdness when they move.

Fixes #3763

--------------------------------------------------------------------------------
3c570bdce9 | DracoOmega | 2024-05-14 16:54:22 -0230

Fix unique kills with Hurl Torchlight not granting extra torch charges
Fixes #3733

--------------------------------------------------------------------------------
d3407eeabb | DracoOmega | 2024-05-14 16:46:07 -0230

Allow evoking the Staff of Olgreb when held in the off-hand (ragingrage)

--------------------------------------------------------------------------------
df85cb4a80 | DracoOmega | 2024-05-14 16:43:02 -0230

Fix MP+/- properties on artifact talismans not updating MP on removal
unequip_artefact_effect requires the talisman to actually not be in the
active talisman swap before calling it, otherwise calc_mp() will still see
the talisman in question and not calculate mp properly.

Fixes #3810

--------------------------------------------------------------------------------
f15d36bda6 | DracoOmega | 2024-05-14 16:11:19 -0230

Don't make Blorkula split into bats to avoid going up the stairs
After being pacified (whether by Beogh or Ely).

Fixes #3815

--------------------------------------------------------------------------------
b1f4dc6409 | DracoOmega | 2024-05-14 16:11:19 -0230

*Actually* fix a crash with reflected Flashing Balestra
3f0eabb45ed531f516199376e383c2a5aa0d3e97 was still checking the wrong agent.

--------------------------------------------------------------------------------
bb83fb5040 | David Lawrence Ramsey | 2024-05-14 00:15:13 -0500

Remove unneeded space.

--------------------------------------------------------------------------------
dbf92fe7da | DracoOmega | 2024-05-14 01:43:58 -0230

Replace RevMP gizmo property with RevMPSaver
RevMP's effect was widely considered undertuned, but I'd like *some* effect
based on Rev that supports a blaster playstyle, so this is a second
attempt.

RevMPSaver gives a flat cost reduction to the player's spells based on how
revved they are (-1/2/3 MP per rev tier). This effect cannot reduce a spell
below 1 cost.

This has some related dynamics to the old effect, but notably encourages
the player to unload spells *after* melee, which is usually the inverse of
what you'd like to do when blasting. If the power of the effect is strong
enough, I think that could be a distinctive quirk. Wind up a bit to
rapid-fire mid-level conjurations with a hefty discount, or to squeeze the
most value out of the last few MP you have in a prolonged battle.

Let's see how this iteration feels.

--------------------------------------------------------------------------------
a4d4a8453a | DracoOmega | 2024-05-14 00:22:12 -0230

Experiment with making bands a little harder to separate
Monsters in bands that have a natural leader try to stay within a moderate
distance of this leader while wandering about, so that if the leader is
chasing after the player, the rest of the band tends to follow (whether
they've yet noticed the player themselves or not). But no such protections
between band followers and each other exist, which sometimes results in it
being straightforward to pick off the members of a band individually
without alerting most of them - often without much deliberate effort, if
they're already awake.

In past, there have been some issues with the functionality of bands that
rely on each other for synergy, so I'm curious to try making them a little
bit stickier.

This commit makes it so that when a band leader would pick a new wander
target, if one of their followers is out of sight and seeking a target,
they will wander in the direction of that band member instead of randomly.
And since band followers already vaguely follow the leader, the band as a
whole will tend to move in that direction.

There is still a bit of lag time here. The leader still finishes moving
wherever they were wandering first, and gets no special awareness of the
player (or whatever else their follower was chasing). But it increases the
*tendancy* for the rest of a band to follow on a slight delay from the
player engaging any part of it.

I'm not certain if this change will be impactful enough to be clear to
players, or that it will be a mechanical improvement if it is, but things
of this nature are hard to know without playtesting, so let's playtest!

(This commit also independently fixes a bug introduced by 
672eff3212572a203b58ffd4f1e2474d8a40fcfc
which made band leader unable to push past their own followers)

--------------------------------------------------------------------------------
92b31c1b4c | DracoOmega | 2024-05-14 00:07:06 -0230

Remove some seemingly unneeded companion code
You can't get orc uniques as companions anymore, after all.

--------------------------------------------------------------------------------
bcb4e34c79 | DracoOmega | 2024-05-14 00:03:01 -0230

Fix a crash-prone way of getting more than 3 apostles at once
If you dismissed an apostle who was in a disconnected branch (eg: a portal
vault or the Abyss) that the player was not currently in, it would delete
their apostle data, but *wouldn't* properly remove them from the interlevel
recall list. Officially, they weren't your apostle anymore, but you could
still recall them. And if you did, from there on out, whenever they died,
the game would crash (as it attempted to update their apostle status to
dead, when they no longer had stored apostle data at all).

This should fix that problem.

--------------------------------------------------------------------------------
066ad49fd8 | DracoOmega | 2024-05-13 17:02:06 -0230

Give Beogh recruit/dismiss abilities at 0* instead of 3*
This is to avoid the unfortunate situation of a player winning an apostle
challenge, only to realize they've fallen below 3* and can't actually
recruit said apostle.

Since these abilities already do not announce to the player that you have
them while they're unusable (ie: because you have no one to dismiss or
recruit), it should be safe for Beogh worshippers to simply always have
them. Apostles still don't show up unless you're at 3*.

--------------------------------------------------------------------------------
2d6ab54fa9 | DracoOmega | 2024-05-13 17:02:06 -0230

Make living spells count as 'conjured'

--------------------------------------------------------------------------------
28453e2830 | DracoOmega | 2024-05-13 17:02:06 -0230

Prevent enemies from summoning in Okawaru's Arena
Functionally a minor buff, but also flavorfully appropriate: monsters
brought to the arena by Okawaru's Duel ability can no longer summon allies
and are forced to fight one-on-one, whether they want to or not.

This (ideally) blocks abjurable summons, while still allowing marshlights,
battlespheres, etc. - just as Oka works for the player. Though given how
many different ad hoc ways Crawl has of creating or summoning monsters, I'm
not completely confident there aren't false positives/negatives here. But
they can be stamped out over time.

--------------------------------------------------------------------------------
ea327e7d78 | DracoOmega | 2024-05-13 17:02:06 -0230

Buff Arachne
Perhaps unsurprising in retrospect, but exiling Arachne from Spider
resulted in placing her deeper than before, and she just doesn't seem to
have been able to keep up.

This commit gives her some more AC, a little more HD, raises the cast rate
of venom bolt and poison arrow moderately, and also replaces her Ensnare
spell with 'Greater Ensnare', which additionally places webs on a random
number of tiles adjacent to the target point, whether it misses you or not.
The idea is to essentially just make her 'more' of what she already is.

(These other webs go away in a handful of turns, so you can't use her to
make a huge mess of a level and trap other things afterward)

--------------------------------------------------------------------------------
a0239f6ce8 | DracoOmega | 2024-05-13 17:02:06 -0230

Allow placing traps via temporary terrain changes
So that things like webs can also be added transiently.

(This doesn't work properly for golubria portals, since the ammo property
of that 'trap' functions as its duration, resulting in it immediately
closing. But it seems to work otherwise)

--------------------------------------------------------------------------------
93184b181e | David Lawrence Ramsey | 2024-05-13 12:44:49 -0500

Actually display equipped scarf of invis (oops).

--------------------------------------------------------------------------------
5d753f05ca | David Lawrence Ramsey | 2024-05-13 12:26:34 -0500

Give Coglins invisibility in Fedhas' Mad Dash.
Instead of a non-draining amulet of invisibility, which they can't wear,
give them a non-draining scarf of invisibility instead. (Adapt code from
meatsprint to accomplish this.)

The item tile is a recolour of item/armour/scarf1.png, using the palette
of item/amulet/artefact/urand_amulet_invisibility.png, and the worn tile
is a recolour of player/cloak/scarf_magenta.png.

Closes #3773.

--------------------------------------------------------------------------------
6203b1e6a4 | DracoOmega | 2024-05-13 11:44:30 -0230

Mention glowing orange brains' brilliance aura in description (namsan)
An oversight when I was adding it.

--------------------------------------------------------------------------------
bc14699165 | DracoOmega | 2024-05-13 11:44:22 -0230

Don't crash when monsters aim hellfire mortar near level boundaries

--------------------------------------------------------------------------------
7caecd69e6 | DracoOmega | 2024-05-12 04:25:55 -0230

Fix a crash with monsters aiming Hellfire Mortar near the level border
The heuristic to decide where to aim it would try aiming at out of bounds
squares, causing an assert in beam code.

--------------------------------------------------------------------------------
5152ae1ce3 | DracoOmega | 2024-05-12 03:13:58 -0230

Prevent a crash from casting Hellfire Mortar on level boundary (acrobat)

--------------------------------------------------------------------------------
8b4cc811b7 | DracoOmega | 2024-05-12 02:10:03 -0230

Don't crash on forcibly displacing the player from a wall (acrobat)
This was plausible to achieve by casting Hellfire Mortar several times in
a row, progressively deeper into a wall, so that the path from the first
cast had closed up by the time the second was closing up.

--------------------------------------------------------------------------------
44bfc332e5 | David Lawrence Ramsey | 2024-05-11 19:43:24 -0500

Add another chaos name to artefacts.

--------------------------------------------------------------------------------
e769ff8643 | regret-index | 2024-05-11 21:30:34 -0230

Actually make monster yellow drac bite damage weaker than green stingers
Whoops.

--------------------------------------------------------------------------------
87abc831c1 | DracoOmega | 2024-05-11 20:55:19 -0230

Buff Draconian Stormcallers (and white draconians in general) a little
White draconians as a base type have been at the bottom of the pecking
order for some time, with a resistable breath type whose damage was lower
and had no secondary effects. Also, the HD hack used to make their breath
damage lower than ice dragons of the same HD wasn't reflect in xv, causing
the game to say they did 3d28 damage when they only did 3d18 (a pretty
massive difference!)

This commit raises their breath damage to 3d22 and makes xv display it
properly.

Stormcallers additionally pick up the same trick that Qazlal player
worshippers did this patch - being safe from their own Upheaval. They will
also be slightly more willing to hurt their allies with it (since summoning
even a single wind drake was enough to fully preventing casting it against
even an xl 27 player). This should mostly only matter in corridor
situations, so still only a modest change. Finally, raise their Upheaval
cast rate - it's the spell they're most likely to be unable to cast, so
they can get a higher liklihood to use in situations where they can.

Their kit is still a bit anti-synergistic with itself, but it's flavourful
so this may be a completely adequate improvement.

--------------------------------------------------------------------------------
7bd66db0f0 | regret-index | 2024-05-11 20:54:59 -0230

Give monster yellow draconians the players' acid bite aux
This adds a bit more consistency to how green draconians have a poison
sting aux on both players and monsters. More pressingly, it also gives
draconian annihilators a bit more differentiation from deep elf
annihilators beyond a trading of high Will for a little more HP and some
AC, through letting them have marginally more melee damage and applying a
bit more corrosion than prior, as well as between draconian annihilators
and the other conjurations-focused classes in the same avenue.

(Yellow base draconians are already third in kill statistics, though
they're not particularly high compared to red or green base draconians,
while black and purple base draconians are noticeably higher. The rough
same positioning in the middle of the pack also applies to annihilators.
As such, this shouldn't be too dramatic an overall Zot buff.)

The damage is slightly lower than the green draconian sting aux, since
corrosion is harder to deal with than poison.

--------------------------------------------------------------------------------
6a5d6975f0 | Nicholas Feinberg | 2024-05-11 07:39:47 -0700

Give serpent form rDrown (acrobat)
Since they can swim, and for consistency with Mf etc.

--------------------------------------------------------------------------------
12f0f65bdd | Nicholas Feinberg | 2024-05-11 07:39:47 -0700

Remove unused function in header

--------------------------------------------------------------------------------
2afa0c46cb | David Lawrence Ramsey | 2024-05-11 09:15:38 -0500

Fix outdated Dvorak keybind (christakahashi).
Closes #3491.

--------------------------------------------------------------------------------
df15be1b29 | David Lawrence Ramsey | 2024-05-11 08:38:17 -0500

Make the chaos spawn temple transparent.

--------------------------------------------------------------------------------
12fa8b1472 | DracoOmega | 2024-05-10 21:33:29 -0230

Add a proper targeter for Slouch, display damage per monster
Instead of just hilighting all of LoS when aiming the ability, it will now
actually show which monsters will be affected by Slouch (ie: indicating
that it cannot affect sleeping or stationary monsters) as well as indicate
how much damage an individual monster is expected to take, based on its
speed.

(This should help give players a better understanding of how much speed
affects the damage Slouch actually does)

Also make the ability's damage description more explicit that this is
damage against normal-speed monsters. Unlike spell damage, this is never
listed in a format where we only have a few characters to work with, so
we're free to be a little more verbose.

--------------------------------------------------------------------------------
8bf067fb8e | NormalPerson7 | 2024-05-10 21:31:15 -0230

Add damage to ability descriptions
For the following abilities:
 - all breath weapons
 - storm form: blinkbolt
 - demonspawn: hurl damnation
 - orb of Dispater: evoke damnation
 - Beogh: smiting
 - Cheibriados: slouch (damage against a normal-speed monster)
 - Ignis: foxfire swarm
 - Jiyva: oozemancy
 - Qazlal: upheaval, disaster area
 - Ru: power leap, apocalypse
 - Uskayaw: stomp, grand finale
 - Yredelemnul: hurl torchlight
 - the Shining One: cleansing flame

Makhleb's minor destruction and major destruction are too random to
describe in a simple formula in any meaningful way, except potentially
we could make it state the average damage in the future. The same
applies to Nemelex' cards.

In many cases, abstract the power and damage formulae for these
abilities to ensure the output damage is the same as listed.
This often involves listing the rounded-down damage formula, where
abilities use div_rand_round on skill/XL.

There are many more abilities that it would be nice to quantify in
their descriptions based on the player's current skill but don't
fit neatly into the damage category. It would also be nice to list
ability noise, and damage at max skill, but since abilities often
don't have a clearly defined power-cap and noise is often dealt
with elsewhere, this is challenging.

Nonetheless, this will hopefully be useful in allowing players to
see how their skill/XL affects damage output. Players should
remember that there are usually no actual breakpoints and that
the damage listed has usually been rounded down.

--------------------------------------------------------------------------------
cb1f725376 | DracoOmega | 2024-05-10 19:17:02 -0230

Reroll misery clouds from Condenser Vane
Instead of simply producing no cloud on that spot at all (and then printing
a god message explaining why you got scammed).

--------------------------------------------------------------------------------
0981f75f4d | DracoOmega | 2024-05-10 19:17:02 -0230

Suppress bad clouds from Xom's cloud trail while worshipping good gods
It was possible to get a cloud trail from Xom wrath, while worshipping a
good god, and get a cloud type hated by your god, resulting in potentially
a huge loss of piety. Now inappropriate cloud types will be suppressed by
your current god and turned into salt instead.

All good gods suppress miasma and misery, and Zin additionally blocks
chaos and mutagenic clouds.

--------------------------------------------------------------------------------
cadf65b764 | DracoOmega | 2024-05-10 19:17:02 -0230

Make Blorkula un-zombifyiable (since he's a vampire now)
As hilarious as "Blorkula the Orcula the orc zombie" is.

--------------------------------------------------------------------------------
d489c1ee53 | DracoOmega | 2024-05-10 19:17:02 -0230

Don't perform a deathbed conversion on an already-converted orc
I'm not sure that this deal with #3808 entirely, since I wasn't able to
reproduce the unlinked items part, but in the process of testing, I noticed
that an orc could surrender multiple times if you 'killed' them again after
they'd already converted. This shouldn't happen, regardless, and *maybe*
could be related?

--------------------------------------------------------------------------------
034902570a | DracoOmega | 2024-05-10 19:17:02 -0230

Improve sticky flame messaging while rF-
Now it says that it 'burns you terribly' if you have rF-, like other
sources of fire damage.

Fixes #3789

--------------------------------------------------------------------------------
3f0eabb45e | DracoOmega | 2024-05-10 19:17:02 -0230

Don't crash on a Flashing Balestra that kills its own caster (ge0FF)
eg: as caused by Ru or presumably amulets of Reflection as well.

--------------------------------------------------------------------------------
f13bc15527 | DracoOmega | 2024-05-10 19:17:01 -0230

Make Magnavolt beams non-bouncy
In most circumstances, this doesn't matter, since the beams are always
aimed at a monster and stop at that monster. But if one of the magnetised
targets ends up on the other side of a granite statue, you can still see
them, but the beam cannot properly reach them, and will rebound off the
statue without a warning.

Rather than deal with all the targeter issues of properly displaying and
prompting the player for these situations (since that would only make the
spell feel cludgier), let's just make the beams stop if they can't reach
their target.

Fixes #3809

--------------------------------------------------------------------------------
f9b02fec0a | David Lawrence Ramsey | 2024-05-10 15:32:10 -0500

Unbrace

--------------------------------------------------------------------------------
271a355215 | David Lawrence Ramsey | 2024-05-10 15:20:41 -0500

Refactor handling of bardings (#3788).
Rename player::wear_barding() to player::can_wear_barding(), and make it
account for form changes. Also, remove _cant_wear_barding_reason(), and
fold its old logic into can_wear_armour().

With this done, bardings can now be properly shown as unavailable when
the player could normally wear them, but is in a form that prevents
wearing them.

--------------------------------------------------------------------------------
34ef5f125e | gammafunk | 2024-05-10 12:16:58 -0500

feat: Improve lua monster speed descriptions
Speed descriptions were made more detailed in e72b690d, but lua was
still using the old adjective system. This commit moves the description
logic directly into `monster_info` so that it's use for both lua and
in-game descriptions.

--------------------------------------------------------------------------------
4ba1219d08 | David Lawrence Ramsey | 2024-05-10 09:53:36 -0500

Fix inaccurate Lear's hauberk armataur message.
They can't wear it, but it's not blocked by their tails as with nagas;
it's blocked by their (four) feet.

--------------------------------------------------------------------------------
2fe6b246ae | David Lawrence Ramsey | 2024-05-10 09:07:52 -0500

Shuffle and reweight some goblin sharper lines.
Bias them somewhat in favour of card deck lines; and less so for deck of
punishment lines, dropped card messages, and misplaced card messages.

--------------------------------------------------------------------------------
6b3bedf760 | David Lawrence Ramsey | 2024-05-10 07:38:13 -0500

Reorganise priestly Makhleb worshippers a bit.
Put Asterion at the end of the list, since he's a unique, and simplify
the nearby comment.

--------------------------------------------------------------------------------
1dda8f8d83 | regret-index | 2024-05-10 03:52:16 -0230

Mildly bump up obsidian bat difficulty
Cross-referencing objstat's average bat count versus the Orcish Mines death
statistics since they're added, they're rather middle-of-the-pack in terms
of lethality, despite being rare spawns mostly unique to the branch with a
rare gimmick. New monsters don't have to be hyper lethal to justify their
continued existence, but it helps a branch with low variety to have a given
rare spawn be any much noticeable, so they can do with a little bit more
teeth.

Obsidian bats get a summon cap of 4 rather than 3, and slightly better
damage and defenses all around. They also move from speed 25 to speed 30;
there's next to no slow earth monsters any more, so a stone bat being
slower than other bats doesn't really fit anyway.

--------------------------------------------------------------------------------
c27ebab66b | mainiacjoe | 2024-05-10 03:52:16 -0230

Add a hat* shop (#3646)
"This hats-only shop places two of see invisible, willpower, and
intelligence hats, a good_item hat, a randart hat, and either a single
unrand hat or a second randart hat.  Uses hat tiles that are rarely
encountered elsewhere. Since it only places good items, have it
show up fairly deep."

[Committer's notes: Cleaned up a bit of logic code checking. Since the
nostalgia has overflowed so far that the dwarf came back entirely, name the
shop after the granny his dialogue mentions as making his hat instead.
Also, remove the shop from most Lair branches- Wiglaf didn't show up in
water branches and we don't put shops in Spider in general. Snake is fine,
though. Vault weight is lower due to showing off previously rather rare
tiles and containing all these randarts and unrands, too. In exchange for
such increased rarity, it now also gets a coinflip chance to contain a
book solely containing Wiglaf's new signature spell.

This might be a little too silly, it might be fine. We'll see how this
lasts the years.

Closes #3646.]

--------------------------------------------------------------------------------
c2f12fc6cd | regret-index | 2024-05-10 03:52:16 -0230

Make the orc priest apostles a little more fancy (#3628)
To differentiate orc priest apotles more from just being recoloured orc
wizards holding the orc priest tablet, give them a bit of shiny trim like
high priests have, but with silvery-metal colours and skipping the collar
to reduce the chance of it being confused with said high priests (who have
gold trim and trim on the collar). Ideally in the future we could get
fancier and slightly varying tiles on this front, but this should help for
now.

Closes #3628.

--------------------------------------------------------------------------------
a9bbc2f417 | David Lawrence Ramsey | 2024-05-10 00:14:28 -0500

Make hell knights properly worship Makhleb.
They're priests, but weren't getting the proper god in the priest
section of _place_monster_set_god().

--------------------------------------------------------------------------------
58216f8073 | DracoOmega | 2024-05-09 23:11:27 -0230

Fix Hellfire Mortar incorrectly saying no targets were in range (Tavran)
It was falsely interpreting "Will not be harmed by lava being created
underneath it" with "Will not be harmed by this spell."

--------------------------------------------------------------------------------
dfafe4981a | DracoOmega | 2024-05-09 22:45:08 -0230

Fix missing break statements in spell usability logic (RelicWraith)
Due to an oversight that was then repeatedly several times in a row, a
number spells were checking the usability of both themselves *and* every
spell implemented after that.

I'm impressed this didn't come up sooner, but I guess a lot of these spells
are unlikely to be used at the same time by the same character.

--------------------------------------------------------------------------------
c2fb2e3241 | Nicholas Feinberg | 2024-05-09 11:40:30 -0700

Tweak some spellbooks
Make the Tri-Codex thematic again.

--------------------------------------------------------------------------------
635abf799e | David Lawrence Ramsey | 2024-05-09 07:20:31 -0500

Fix wording in formicid no-shafting message.

--------------------------------------------------------------------------------
81c516503d | Nicholas Feinberg | 2024-05-08 18:31:16 -0700

Pluralize Djinn correctly
The initial uppercase threw off our pluralise function.

--------------------------------------------------------------------------------
f737d811cb | Nicholas Feinberg | 2024-05-08 18:28:19 -0700

Partially dedent

--------------------------------------------------------------------------------
0c6998e1a6 | Nicholas Feinberg | 2024-05-08 18:18:39 -0700

Partially fix a Xal'krixis line
Fix one of two.

--------------------------------------------------------------------------------
5559f47ff0 | DracoOmega | 2024-05-08 21:23:08 -0230

Add a comment to clarify that a function is for UI purposes only

--------------------------------------------------------------------------------
b5dd1e8a01 | DracoOmega | 2024-05-08 21:23:08 -0230

Reorder invalid target messages for Bind Soul
So that it will complain about something being an ally before it complains
about them being a summon.

--------------------------------------------------------------------------------
598e6e71c1 | RypoFalem | 2024-05-08 21:23:07 -0230

fix: Bind Soul targeter revealing the true Mara
Yredelemnul's Bind Soul ability checks if the monster was summoned and
in the case of Mara Summon, this allowed the targeter to show which Mara
was not an illusion. Ditto for rashaka's phantom mirror spell.

Fix this by ignoring if the monster is summoned for interface purposes
when the monster has the phantom mirror enchant (currently the targeter
and the displayed potential hp of the bound soul).

Also blacklist player illusions from this effect since this new corner
case, as far as I know, is the only monster with the phantom mirror
effect that is a trivially deducible summon. Is there a better way to do
this?

[Committer's note: slightly edited a comment for clarity]

--------------------------------------------------------------------------------
5393115b2d | RypoFalem | 2024-05-08 21:23:07 -0230

fix: blink revealing invisible monsters (Ge0ff)
The targeter excluded tiles with invisible monsters. Make it so the
targeter only excludes the tile if the player knows there's a monster
there.

--------------------------------------------------------------------------------
44e7262d61 | NormalPerson7 | 2024-05-08 21:22:51 -0230

Improve the A screen for forms
For the longest time (likely forever), forms' innate resistances
have not been displayed on the A screen with the rest of the form
properties, except for poison immunity and torment resistance
(which are weirdly specific exceptions). This commit changes that.
Resistances will only be displayed where the player doesn't have a
(non-suppressed) mutation superseding them.

Add the blinkbolt and siphon essence abilities, clarify shadow form's
spellcasting penalty and resists, add descriptions of bad forms'
offensive and defensive stats, clarify wisp form's "highly resistant"
fakemut and add insubstantial, add serpent form's cold-bloodedness,
split statue form's slowness and melee bonus, display blade hands'
body armour AC penalty, align bat/pig form fast with the mutation.

Also, tone down the wording on alive Vp's regen ("accelerated" sounds
faster than "unusually fast" to me, even though the effect is 1/4 of
"unusually fast").

Add a new `badmuts` field to form-data.h, so that all of the red-
coloured "bad" fakemuts can be displayed on A together, and to remove
hacky and inconsistent <lightred> tags in form-data.h. Reclassify
some existing fakemuts as bad (e.g. tree stationary, statue slow).

Fix bugs with amphibiousness not displaying in permanent forms and
poison immunity displaying as an innate fakemut instead of a form
fakemut for some forms, which were caused by the addition of
permanent forms in 0.31. Fix fungus form having rN+++ even though
plants and wandering mushrooms no longer have this.

--------------------------------------------------------------------------------
31df86b944 | NormalPerson7 | 2024-05-08 21:22:33 -0230

Add Permafrost Eruption as a monster spell for servitors/ghosts
Modelled off the code for Plasma Beam, as Permafrost Eruption is
similar (lvl 6, two blasts, automatic targeting). I have set the damage
to be about 70% of that of monster Plasma Beam, accounting for the fact
Permafrost Eruption doesn't miss, and noting that a similar ratio
exists for the player spells. We can always tweak this later.

Servitors will cast this spell, with priority set just below
Plasma Beam and just above Fireball (I figure it should be a bit
stronger than monster fireball, but the close targeting restriction
will make it slightly more awkward for servitors to have than
Plasma Beam). Player ghosts will also have it; perhaps at some point a
unique will get it too.

[Committer's note: fixed a minor oversight in the tracer using a player
instead of monster zap, and nudged monster permafrost damage up a small
amount]

--------------------------------------------------------------------------------
2c080400b3 | caryoscelus | 2024-05-08 21:21:18 -0230

Fix formicids able to shaft while in non-mutaion-preserving forms
Previously, if formicid character was in a form that disables mutations,
ability menu would remove both Dig and Shaft self, but the latter was
still possible by using ability quiver. Now this workaround is removed.

fixes #3776

--------------------------------------------------------------------------------
2164d10d88 | DracoOmega | 2024-05-08 18:11:29 -0230

Tiny formatting change to recent xv improvements
List damage for quivered throwing items AFTER normal attacks instead of
before. (It seemed better to have 'attacks which are always there' come
predictably first to me).

Also insert a line break above the attacks table for a slight improvement
in visual clarity.

--------------------------------------------------------------------------------
080bef29c6 | NormalPerson7 | 2024-05-08 16:59:46 -0230

Show monster staff damage in x-v; let them use staves of conjuration
Magical staff damage works differently to weapon brands, and it was
previously extremely obscure how much bonus damage a monster could
deal with its magical staff. I imagine complaints about this were
limited by the fact that only Arachne, Fannar, Josephina, and Jorgrun
have high chances to actually come with a magical staff.

Add the max bonus damage from a magical staff to the x-v screen, where
the brand information is provided for weapons. I have attempted to
provide a suitable descriptor for the type of damage in each case,
though "earth" and "conj" I admit are quite weak.

Unlike all the other magic skills used by magical staves, monsters were
not previously allocated any conjurations skill, so they would never
get any bonus damage from staves of conjuration. I imagine this is due
to staves of conjuration only gaining a melee effect in 695e311.
Give them conjurations skill equal to the other elemental schools.

--------------------------------------------------------------------------------
ce9c8287b8 | NormalPerson7 | 2024-05-08 16:59:46 -0230

Remove separate quiver line in x-v
Missiles are now shown in the Throw line of the attack table, and
for special darts and throwing nets, they are also described in the
unusual item description. Thus, the line "It is quivering javelins."
or similar is now redundant.

--------------------------------------------------------------------------------
9a59075d7c | NormalPerson7 | 2024-05-08 16:59:46 -0230

Completely fold monster throwing/ranged into the x-v attack table
When a monster wields a ranged weapon, the x-v attack table previously
implied the monster could hit you with that weapon. Now explicitly
show this as "shooting" the weapon, and include archer bonus damage
in the Max Damage column of the table. Also special-case Nessos
so that his extra venom brand is displayed in the Bonus column.

When a monster quivers a throwing weapon, add an extra line
to the top of the attack table describing the monster's throwing
attack, which takes into account brand effects, slaying and archer
bonus damage. Silver will display its extra damage against the player
in their current mutated state.

This permits the removal of the extra text for the archer flag and
Nessos, which was always very easy to miss anyway.

Example: yaktaur captain, +0 arbalest, silver javelins

Immediately before this commit:
Attack            Max Damage
Hit: +0 arbalest  45
It can deal up to 18 extra damage when attacking with ranged weaponry.

Now:
Attacks                 Max Damage
Throw: silver javelins  57 + 19 (silver)
Shoot: +0 arbalest      63

--------------------------------------------------------------------------------
c2b490d30a | NormalPerson7 | 2024-05-08 16:59:46 -0230

Include slaying equipment in monster damage on x-v
The real calculation (attack::calc_damage) is able to access
monster::scan_artefacts, but for some reason the x-v descriptions use
a monster_info object instead, which isn't able to access this method.
Thus this requires a new function to duplicate monster::scan_artefacts
for monster_info.

--------------------------------------------------------------------------------
d582849698 | NormalPerson7 | 2024-05-08 16:59:46 -0230

Improve x-v for AF_PURE_FIRE, AF_DRAIN; fix damage being off-by-one
AF_PURE_FIRE was previously very unclear about the fact that the
Max Damage number is actually all fire damage and that there is no
bonus fire damage. Fix this by removing the "bonus" column from
AF_PURE_FIRE and listing the damage in the Max Damage column as fire.

AF_DRAIN previously did not list its max damage, even though it did
extra damage. [Sidenote: draining effects are weirdly inconsistent:
for monsters, AF_DRAIN deals up to damage/2 half the time,
draining weapons do this all the time, whereas for players, draining
weapons do 2-4 + damage/2 but only half the time.]

Most importantly, the formula for melee damage dealt by monsters is
    damage = 1 + random2(monster attack damage)
               + random2(weapon base damage)
               + enchantment/slaying roll
when monsters have a weapon, which has a max of
    max = monster attack damage + weapon base damage + ench/slay - 1
but the -1 was not being reflected in x-v. Fix this.

Future commits will incorporate slaying into x-v damage numbers, and
improve the display of ranged and throwing weapon damage on x-v by
folding it into the attack table.

--------------------------------------------------------------------------------
983892f291 | NormalPerson7 | 2024-05-08 16:59:45 -0230

Add monster weapons and brand damage to x-v
In 3dd9dd1, monster attacks were put into a table after many
descriptions got too long. However, in the process we lost most
monster weapon brands from being shown on x-v at all.

The result was that the "max damage" number shown on x-v was often
a lie, and there were only two ways to check monster weapon brands:
(a) reread the message from when a monster enters LOS for the first
    time (but note, this currently doesn't display when entering
    a new floor sometimes due to a bug), or
(b) use x to examine the monster, but this only works when in LOS.

Let's take advantage of the new table setup in two ways: firstly,
rather than "(w/weapon)" being shown for every monster weapon attack,
list a monster's weapon's terse description in the Attacks column
after "Hit", and secondly, add the max damage from the monster's
weapon brand to the Max Damage column.

To make this all fit on the 80-character wide description UI, make
the column widths adjust themselves to the width of the text in the
columns. Where this still isn't good enough, truncate the weapon
description, as this is the least important part of the table.

Example: Norris, wielding a +2 demon trident of draining.
Previously:
Attack      Max Damage          Bonus
Hit         48                  Cause confusion

Now:
Attack                         Max Damage       Bonus
Hit: +2 demon trident (drain)  48 + 24 (drain)  Cause confusion

--------------------------------------------------------------------------------
a94dba6d8c | DracoOmega | 2024-05-08 16:33:12 -0230

Properly attribute blame to Blorkula for their bats

--------------------------------------------------------------------------------
af1361ef87 | DracoOmega | 2024-05-08 16:33:00 -0230

Remove status effects from Blorkula when they turn into bats
While some things like haste could arguably make sense, it feels rather
silly to have Blorkula split while petrifying and then reassemble
themselves 20 turns later while still petrifying.

--------------------------------------------------------------------------------
c66c6fa605 | DracoOmega | 2024-05-08 16:30:58 -0230

Fix a Hellfire Mortar crash
It is possible that the target of the second bolt of magma in a turn will
be dead by the time it comes to fire on it (probably because it was also
in line of the first bolt, even if not its primary target). Instead of
assuming each target we picked is alive, double-check and then skip to the
next candidate, if the original is dead and one exists. That way the mortar
won't sometimes appear to mysteriously only fire once, even when a viable
second shot clearly exists.

--------------------------------------------------------------------------------
d4bb4810a1 | David Lawrence Ramsey | 2024-05-08 11:24:59 -0500

Adjust Donald Vehumet message.
Now that the Hellfire Mortar spell exists.

--------------------------------------------------------------------------------
d1626824a6 | David Lawrence Ramsey | 2024-05-07 18:33:09 -0500

Fix spelling.

--------------------------------------------------------------------------------
b87f078905 | David Lawrence Ramsey | 2024-05-07 18:24:59 -0500

Fix old comment references to Blork.

--------------------------------------------------------------------------------
4931952e80 | David Lawrence Ramsey | 2024-05-07 18:24:06 -0500

Fix old speech references to Blork.

--------------------------------------------------------------------------------
ce087b800c | David Lawrence Ramsey | 2024-05-07 18:18:19 -0500

Remove leftover Blorkula aliases.
He's undead now, and can't be polymorphed, so he doesn't need them
anymore.

--------------------------------------------------------------------------------
df7bd898e0 | David Lawrence Ramsey | 2024-05-07 18:10:51 -0500

Fix punctuation.

--------------------------------------------------------------------------------
66631293e3 | David Lawrence Ramsey | 2024-05-07 18:10:25 -0500

Fix spelling.

--------------------------------------------------------------------------------
169130f397 | DracoOmega | 2024-05-07 20:20:27 -0230

Give polterguardians an actual melee attack
Believe it or not, it wasn't intentional that they didn't have one. It
should still be fairly tame, but there's few monsters in Crawl that can't
hit you at all from melee.

--------------------------------------------------------------------------------
6fc613a006 | DracoOmega | 2024-05-07 20:20:27 -0230

Give glowing orange brains an *actual* aura of brilliance
Using the new easy aura framework, brains provide the empowered spells buff
to nearby allies so long as they are alive. Unlike Prayer of Brilliance,
this affects any monster that is antimagic-vulnerable (ie: it also works
on demons and other natural spellcasters, like eyes). This gives them an
interesting support function and also makes their summoning feel a little
more different than other Shadow Creatures users.

Additionally, they get the 'cautious' flag. Despite a synergistic spellset
that sounds scary in theory, brains often would spend most of their turns
simply walking up to let the player punch them (and they don't even have a
melee attack!). This makes the combination of summons/disruption/fear a
little more likely that the player has to consider how to answer.

--------------------------------------------------------------------------------
7553c99a0f | DracoOmega | 2024-05-07 20:20:27 -0230

Tweak Cloak of the Thief
While noise suppression is a powerful effect, many players felt
uncomfortable using this item now that it had an even greater slaying
penalty than the old version.

But it occurred to me that Quiet is already less useful on the sorts of
characters most affected by -slay, so let's try making it give a moderate
MP reduction instead (since Quiet is strongest on casters).

--------------------------------------------------------------------------------
408b9259fb | DracoOmega | 2024-05-07 20:20:26 -0230

Fix Marrowcudas having 1 will
An oversight from being initially copied from skeleton's stat block. 10
will is still deliberately very low, but 1 felt silly.

--------------------------------------------------------------------------------
03a3b7408b | DracoOmega | 2024-05-07 20:20:26 -0230

Remind Xak'krixis to dress themselves
(Mostly by accident, they weren't given a robe or any other body armour.
I don't expect changing this has much practical effect.)

--------------------------------------------------------------------------------
eae4683228 | DracoOmega | 2024-05-07 20:20:26 -0230

Replace Deep Elf Elementalist Freezing Cloud with Hoarfrost Cannonade
Freezing cloud wasn't a very functional spell on these enemies. Because of
the unpredictable splash of monster cloud spells, the elementalist would
often refuse to cast it at all (even in an open room with no one else
around!) for fear of hitting themselves. And then when they did, it was
often more dangerous to the elementalist (or other elves) than it was to
the player. Let's try replacing it with a different ice spell that has
neither of these problems.

I am letting monsters 'cheat' and create the cannons centered around their
foe, rather than themselves (both so that they can do something with it
when there's a pileup of other elves in the way, and so it's less trivial
for the player to just stay out of range of them).

--------------------------------------------------------------------------------
033698f6b5 | DracoOmega | 2024-05-07 20:20:26 -0230

Make Hoarfrost Cannonade monster-castable
To keep monster from wasting their cannon charge-up, they will only recast
the spell if no existing cannon of theirs is in sight of their foe.

(Getting the cannons to disappear on the death of their creator involved
some fairly ugly hacks, since the main method of doing this explicitly only
works on things which are abjurable. In the future, it would be nice to
unify the various non-abjurable things that go away on creator death (ie:
tentacles, battlespheres, vines, spectral weapons, and now this) instead of
each one being handled essentially in its own one-off way.

This commit modifies monster::is_summoned to retrieve the summon type of
a creature regardless of whether they're abjurable or not (since many
non-abjurable things set this!). It was unclear to me why it would only do
this for abjurable things. Since the return value of the method is
unaffected, I don't THINK this changes the semantics of anything currently
using it.

--------------------------------------------------------------------------------
95e6ca381b | DracoOmega | 2024-05-07 20:20:26 -0230

Wiglaf has returned for his hat (and brought a very big gun)
Along with the return of playable mountain dwarves, it seemed like a good
joke to bring back an iconic mountain dwarf unique at the same time, just
so long as there was something interesting for Wiglaf to *do* and I think
I may have found that.

Wiglaf can now cast Hellfire Mortar, a thematically appropriate (and
hopefully fun) spell. They've lapsed a little in their worship of Okawaru,
losing Haste to keep them from overlapping with modern Donald too much (but
still know Might). They always spawn with a good randart hat and since,
well, everyone knows Joseph *took* that hat, they alternate with him as a
unique pair.

A tiny bit of their dialogue was restored from the old days, but after
trimming out the cliche drunkenness and vague racism, the vast majority of
it is new. I did my best to manage scottish eye dialect in a similar style;
not sure if I have gone overboard or not.

Implementation note: it's impossible in a conventional way for a monster to
have a hat and a shield at the same time, even using the 'usual' hack used
for Nikola's gloves. So I have shoved Wiglaf's hat into his jewelry slot,
which I dislike rather a lot. But I'm reasonably sure that it works
properly.

--------------------------------------------------------------------------------
8d931bda07 | DracoOmega | 2024-05-07 20:20:26 -0230

Implement monster-castable Hellfire Mortar (and fix some more bugs)
This uses a 'probably smart enough' heuristic for determining where to
launch the thing (since it can't simply shoot it directly at its target).
In testing, it seemed to do a pretty decent job of it.

Also fixed:
 -Cast messages for the morter firing at things sometimes being wrong
 -Being able to turn the level boundary into lava with it
  (This was less disasterous than you'd expect, since the morter still
  wouldn't enter it, but it could give you extra turns of it firing in
  place while it tried and failed)
 -Not actually generating the giant noise that the spell implied was
  happening

--------------------------------------------------------------------------------
a69805936c | DracoOmega | 2024-05-07 20:20:26 -0230

Don't trap monsters in walls via Hellfire Morter (ge0ff)
To my surprise, while terrain changes expiring were happy to place the
player in a wall, it simply doesn't revert at all if it would put a monster
in a wall (and thus would remain lava forever).

Instead, use the same approach to try to push the monster out of the new
wall with increasing levels of force that was done by 
706e7c35db215fc7c8d9ae1040d2b281f451c2de
(now generalized to use the same code)

--------------------------------------------------------------------------------
10a096165b | DracoOmega | 2024-05-07 20:20:25 -0230

Properly ascribe blame for deaths due to exploding monsters
This was broken since 3dd439832fe0f5fe295caad1a2fe3e479a757cda which caused
all ikiller information for deaths caused by exploders (ie: ball lightning
or fulminant prisms) to be lost. This isn't conceptually trivial to fix,
as now the monster responsible for the explosion will already be cleaned
up by the time the explosion happens (and the entire blame chain was stored
inside that monster).

The fix I've settled on is to maintain a very transient cache for copies of
monsters that are about to explode. If a scorefile_entry tries to look up
a monster by mid and fails, it will look at this cache instead so that it
can find the dead monster's info as it was when the final_effect was
first scheduled.

(This cache is cleared as soon as fineffs are done processing, so there
shouldn't be any need to worry about its state.)

It's possible there is some other class of fineff that could benefit from
using it, for similar reasons, but this wasn't immediately obvious to me.
However, this should once again let us see whose fault these deaths are.

(Fun fact: I'd thought that Xak'krixis was wildly underperforming, but
apparently a full 90% of their kills weren't being attributed to them. Poor
Lom also lost out on ~30% or so of their kills since the original commit).

--------------------------------------------------------------------------------
7e7c522bf1 | DracoOmega | 2024-05-07 20:20:25 -0230

Actually attribute banishment kills to their source
In practice, this doesn't actually change very much that I can see (unlike
what the deleted comment implies, you don't appear to double-dip on xp even
with a non-anonymous source.) but does allow a few monster-specific death
effects to check if the player was the one doing the banishing.

--------------------------------------------------------------------------------
76af017031 | DracoOmega | 2024-05-07 20:20:25 -0230

Blork the Orc -> Blorkula the Orcula
As part of the Beogh overhaul, it seems like a good idea to demonstrate
that some orcs other than just the player have non-orcish heritage, and
this was one of the funnier options.

Blorkula also gets a new gimmick to go with being a vampire: when he would
otherwise die, he instead splits into multiple (randomly colored!) vampire
bats. The player has a modest length of time to kill these bats before they
pull themselves back together into a healthy Blorkula once more. (There is
a lengthly cooldown so that he cannot do it again immediately, but will
regain that ability if the player is forced to flee).

He also gains a modest vampire bite aux and adds Sting, Sandblast, and
Shock to his spell repertoir (specifically in keeping with the recent
greater emphasis on his 'obsessed with different colors' theming).

This definitely makes Blork more dangerous than before, but he is currently
the statistically least dangerous unique of his depth range, so there is
probably a fair bit of headroom to buff him without concern. I have still
nudged him down a floor, out of caution. We'll see if this works out
appropriately enough.

(I also edited a handful of dialogue lines, both to mention the Beogh
conversion history and to cut out the specific implication that his
suspenders are somehow magically empowering him - he's got enough other
theming going on now.)

--------------------------------------------------------------------------------
7ff33ff42c | DracoOmega | 2024-05-07 20:20:24 -0230

Add methods to follower class to simplify storing in a prop
It's easy to store both monsters and items in props, but because of how
Crawl handles monster inventories, very tricky to store a monster that is
*carrying* items in a prop. Follower wraps some of this process, but cannot
be stored directly. This should help a little.

--------------------------------------------------------------------------------
bb4d5d823d | David Lawrence Ramsey | 2024-05-07 13:19:36 -0500

Add bird name to artefacts.

--------------------------------------------------------------------------------
60eeae62d1 | gammafunk | 2024-05-07 11:05:29 -0500

feat: Buff evocable invisibility
Items like the scarf of invisibility and +Inv in general have been seen
by many players as not competitive with other items/properties for a
while now.  Invis on demand is very strong and I believe still
underrated for combat situations by even experienced players. However
+Inv requires high evocations investment just to receive a passable fail
rate has a significant drain cost on top. We do want +Inv to require
evocations investment, and drain is still the best option to limit
spamming the ability without care, but better balance can be had.

This commit reduces the fail rate's dependency on evocations by 1/3, the
same fail rate as +Blink, and reduces the drain cost by 1/3. Hence with
4/8/12 evocations skill, we get 14%/6%/1% fail rates. Complaints about
the drain cost are less prominent than complaints about the ability fail
rate, but hopefully cumulatively these buffs make players consider using
+Inv a bit more.

--------------------------------------------------------------------------------
4fd57f6e19 | David Lawrence Ramsey | 2024-05-04 21:17:34 -0500

Use @the_monster@ instead of the @monster@.

--------------------------------------------------------------------------------
d771f2e3db | David Lawrence Ramsey | 2024-05-04 21:01:03 -0500

Add missing comments to goblin sharper dialogue.
In order to indicate all deck types.

--------------------------------------------------------------------------------
d2cf461c18 | Aliscans | 2024-05-04 17:20:23 -0500

Fix a message for items giving magic regeneration.
Before, the game referred to "your injured body" if you tried to wear
an amulet of magic regeneration when your health and magic were both
below their maxima.

The message for that item no longer mentions your physical injuries.

--------------------------------------------------------------------------------
b508db45f8 | David Lawrence Ramsey | 2024-05-04 17:07:51 -0500

Port over fix for god speech substitution syntax.
Originally from e6c31236d680a93faaff0604426160384db98a5a.

--------------------------------------------------------------------------------
39e60451f5 | Nicholas Feinberg | 2024-05-04 15:03:36 -0700

Revert "Identify un-ID'd randbooks when read" (Aliscans)
Obsoleted by events.

This reverts commit c751ee2058a0c833a17201e2928c0dc67b7c4c61.

--------------------------------------------------------------------------------
c4a1ec1d0d | DracoOmega | 2024-05-04 19:26:44 -0230

Fix Repel Missiles expiring off of monsters (ge0ff)
The repel missiles status was recently made to decay with time (as part
of the aura rework and polterguardians). I had assumed as the time that
the permanent repel missile status used by Deep Elf Archers and co was
already set to INFINITE_DURATION, but it was not, and now unintentionally
expired with time.

--------------------------------------------------------------------------------
5b11573b90 | DracoOmega | 2024-05-04 19:26:44 -0230

Fix a possible crash when casting Hellfire Mortar
I hadn't noticed this was before the general null check (but it has to be
above the normal BEAM_DIGGING check too, since it only ignores SOME
monsters)

--------------------------------------------------------------------------------
94f45d32bb | Nicholas Feinberg | 2024-05-04 13:25:16 -0700

Remove Haste Plants (Ge0ff)
Again.

--------------------------------------------------------------------------------
029dca9f2a | gammafunk | 2024-05-04 09:30:25 -0500

feat: Add monster door usage info to clua
The `can_use_doors()` method indicates whether the given monster can
ever use doors.

--------------------------------------------------------------------------------
04caa866ee | David Lawrence Ramsey | 2024-05-03 20:24:18 -0500

Fix comment typo.

--------------------------------------------------------------------------------
e7eec5b58b | David Lawrence Ramsey | 2024-05-03 18:44:46 -0500

Fix some Rimeblight messaging for named monsters.
So we no longer get e.g. "Shards of ice erupt from the Erolcha's body!"

--------------------------------------------------------------------------------
a27d9813d7 | David Lawrence Ramsey | 2024-05-03 18:33:23 -0500

Fix wording and punctuation.

--------------------------------------------------------------------------------
a89ee85f61 | David Lawrence Ramsey | 2024-05-03 18:26:06 -0500

Use @reflexive@ more in monster spells/speech.

--------------------------------------------------------------------------------
b4e814ae46 | DracoOmega | 2024-05-03 20:45:30 -0230

Fix some typos (Namsam)
The most delayed typo fix ever, sorry.

--------------------------------------------------------------------------------
f843a72a4b | DracoOmega | 2024-05-03 20:45:30 -0230

Fix Rimeblight and Bestow Arms icons not displaying in webtiles

--------------------------------------------------------------------------------
799ce95f6c | DracoOmega | 2024-05-03 20:45:30 -0230

Tweak Rimeblight a little more heavily
Increased the infection chance from rimeblight explosion from 1/2 to 2/3.
Monsters that die to rimeblight now also have the same chance of spreading
the disease to adjacent creatures (without accompanying damage) to avoid
the awkward situation of you otherwise wanting to keep weak things alive
long enough for them to become contagious (without adding death explosions
that risk making it feel too adjacent to inner flame).

You can no longer aim the spell through some of your allies (this was
always an oversight).

More significantly: explosions and disease spread no longer happen out of
line of sight. Previously, the most powerful use of this spell was to
unleash it on a group and then get the heck away so that they would slow
die to each other while the player was safely away. While we do allow some
high level spells to have this capability, it feels like there's a lot more
risk baked into, eg: Discord, to counterbalance this. I'm a bit
uncomfortable with this being the primary use-case for Rimeblight, and want
it to feel sufficiently attractive to use while standing around for a
fight. (The internal ice damage still occurs while out of sight, in the
same way that poison still works out of sight)

I also increase explosion damage somewhat (though note that the increased
rate of spread is fairly significant).

We'll see how this updated version feels to use.

--------------------------------------------------------------------------------
a603194e1b | DracoOmega | 2024-05-03 20:45:30 -0230

Lightly tweak Fulsome Fusillade
Make the first volley not cost an additional 2 mp beyond the casting cost
(this was always unintentional), end the effect immediately the first time
the caster lacks the mp to sustain it (instead of remaining 'on standby'
for a while while their mp regenerates) and nudge up its damage a tiny bit.

--------------------------------------------------------------------------------
d6975a0968 | DracoOmega | 2024-05-03 20:45:30 -0230

Tweak Curse of Agony description for clarity
Some people found it ambiguous whether you needed to hit the monster twice
to make it trigger once. Hopefully this makes it more obvious that you get
two separate triggers per cast.

--------------------------------------------------------------------------------
e8f873248b | DracoOmega | 2024-05-03 20:45:30 -0230

Remove an unused bolt member
Since it stopped being necessary to warn the player about whether a beam
could destroy a tree.

--------------------------------------------------------------------------------
706e7c35db | DracoOmega | 2024-05-03 20:45:30 -0230

Improve behavior if player ends up in a wall due to terrain changes
Instead of instantly randomly teleporting the player, try to simply shove
them out of the way of the wall first (and, failing that, try to move them
somewhere in los range first).

There were probably other situations this could previously happen, but it's
easier to do deliberately now because of Hellfire Mortar. Now the player
should almost always be gracefully pushed backwards instead of being able
to trigger an instant teleport this way.

--------------------------------------------------------------------------------
f64a43db20 | DracoOmega | 2024-05-03 20:45:30 -0230

Hellfire Mortar (level 7 Fire/Earth spell)
A replacement for seismic cannonade from the other direction. This spell
creates a line of temporary lava in a chosen direction (even through walls
in that direction) and spawns a mortar that moves along that line of lava,
firing autonomously at nearby targets while it does so.

The mortar fires bolts of magma at up to 2 different random enemy targets
each turn, then moves 1 tile further along the path that was carved out for
it. When it reaches the end of this path (or a monster blocks its attempt
to move), it will disappear.

Given that it acts entirely autonomously over a short duration, I have
decided that it is closer to a foxfire or battlesphere than it is to a
lightning spire in terms of whether Okawaru forbids it or Vehumet supports
it. I could see arguments in the other direction, though.

Also: enough years have passed since Hellfire was renamed Damnation that it
is safe to use for something else again, right? (And this time, it really
*is* doing fire damage...)

--------------------------------------------------------------------------------
7561cb4b74 | DracoOmega | 2024-05-03 20:45:30 -0230

Fix a couple missing message recolorings
And remove code that was no longer called.

--------------------------------------------------------------------------------
66f656e766 | DracoOmega | 2024-05-03 20:45:30 -0230

Seismic Cannonade -> Hoarfrost Cannonade (lv 5 Ice/Alchemy)
Seismic Cannonade was generally poorly received. There was some lack of
clarity about needing to charge 1 cannon versus all cannons, perception
that its damage was inadequate because so much of it was back-loaded, and
I personally felt like the possibility of 'missing' your shockwave attack
due to the cannons timing out unless you cast it immediately upon reaching
full charge was unfortunate.

I don't think the idea was unsalvageable (and simply raising damage and
charge rate might have done a lot for it), but I've decided instead to
shift element and try using this to address another gap in Crawl's spell
library instead. (High level earth will get another new spell shortly
instead).

Until the recent Permafrost Eruption, there was literally only a single
offensive Ice spell between Frozen Ramparts and Ozocubu's Refrigeration.
That did a bit to help Ice's midgame being so incredible centered around
Freezing Cloud, but an additional option at 5 should help midgame
diversity.

Hoarfrost Cannonade summons 2 hoarfrost cannons which shoot long-range
shards that inflict the Frozen status on enemies. It inherits a greatly
simplified form of charge-up mechanic compared to Seismic Cannonade: the
cannons start at full health, but each shot the cannon fires consumes a
chunk of this health. If it survives to fire a 5th and final shard, that
shard will explode for greater 3x3 AoE damage. No manual recast or tracking
needed, but the player is still incentivized to protect the cannons to let
them get their biggest hit off. (The explosion does no damage to friendlies
since its automatic nature would otherwise make it likely to either whiff
or hurt you).

(Also: more for flavor reasons than anything else, when the cannons fade
away, they briefly leave a small puddle of water behind.)

This generally fits the tone of Ice doing 'damage over time', while still
being very different than Freezing Cloud. Let's see how this one goes over.

--------------------------------------------------------------------------------
f3e26c52f0 | DracoOmega | 2024-05-03 20:45:30 -0230

Increase the effectiveness of the Frozen status
Frozen was applied as a side-effect of Flash Freeze and Creeping Frost,
but didn't have very much impact. It lasted 2-4 turns and increased move
delay by 3 aut, meaning that even if you moved every one of those turns you
were penalized, you'd lose less than 1 turn on average. In most situations,
I think it barely affected how the player should conduct themselves. If a
debuff is going to exist, I think it should be easier to notice that it did
something, so let's try ramping it up slightly.

Frozen now lasts 3-5 turns instead, and increases move delay by 50%
(identical to being slowed). This is fairly conservative, but it's a nice
round number with existing precedent. Frosthearts are already fairly
scary as-is, so I've nudged their HD down by 1. This may not turn out to be
necessary.

As for monsters, Frozen was even more sad. Mostly this didn't matter, as
circumstances where it was applied to monsters was few (and Upheaval is
likely to simply kill them rather than have you worry about how slow they
move now). But the combination of 'Almost always lasts 2 turns' and
'Increases move delay by 4 aut' meant that it was nearly mathematically
impossible for a normal-speed enemy to visibly lose even a single turn
from it. (It being a flat +4 to move cost also had the strange effect
where enemies with fast movement but normal overall speed suffered a
greater penalty than enemies with equivalently high speed for all actions.)

Since debuffs like this tend to need a *larger* impact to notice on
monsters than on players, let's try making it double their move delay
instead (and last slightly longer). This will be relevant for the very
next commit.

--------------------------------------------------------------------------------
a0a6642542 | DracoOmega | 2024-05-03 20:45:30 -0230

Let Flash Freeze damage targets that already have Frozen status
It's a somewhat odd and very specific exception (that does not apply to
any other effect that applies Frozen, either) that Flash Freeze cannot deal
any damage to a player/monster that already has frozen.

Rime Drakes' breath cooldown already made them unlikely to be able to
attack the player any more often than this and marginal buffs to other
users seem low impact.

Admittedly, this makes it possible that a player facing *multiple* rime
drakes at once can get breathed on a lot more often, but it was honestly
kind of weird that they couldn't.

--------------------------------------------------------------------------------
d495c7ad2a | mumra | 2024-05-02 23:00:25 +0100

Break system packages (fix MacOS build)
To fix an error running new version of pip3 in virtualised environments.

> You may restore the old behavior of pip by passing
> the '--break-system-packages' flag to pip, or by adding
> 'break-system-packages = true' to your pip.conf file. The latter
> will permanently disable this error.
> If you disable this error, we STRONGLY recommend that you additionally
> pass the '--user' flag to pip, or set 'user = true' in your pip.conf
> file. Failure to do this can result in a broken Homebrew installation.
https://peps.python.org/pep-0668/

--------------------------------------------------------------------------------
1bd1766845 | David Lawrence Ramsey | 2024-05-02 16:20:33 -0500

Reorder a few goblin sharper lines.
So that the deck-related lines are last.

--------------------------------------------------------------------------------
293f3812c8 | David Lawrence Ramsey | 2024-05-02 16:19:54 -0500

Reorganise goblin sharper's card lines.
They're properly divided into sections by deck now.

--------------------------------------------------------------------------------
9e7e224b41 | David Lawrence Ramsey | 2024-05-02 16:07:01 -0500

Add deck of punishment lines for goblin sharper.

--------------------------------------------------------------------------------
8129f212cf | David Lawrence Ramsey | 2024-05-02 13:25:12 -0500

Move Nem's oddities cards into their own entry.
Also, make them more likely to show up than the other misplaced cards.

--------------------------------------------------------------------------------
348a825d6c | David Lawrence Ramsey | 2024-05-02 13:02:34 -0500

Remove low weight from misplaced card message.
The goblins sharper has enough dialogue now that it won't come up often
anyway.

--------------------------------------------------------------------------------
eb237df2fa | David Lawrence Ramsey | 2024-05-02 12:50:23 -0500

Add other oddities cards to goblin sharper lines.

--------------------------------------------------------------------------------
e50fcabe14 | David Lawrence Ramsey | 2024-05-02 11:34:48 -0500

Fix spelling.

--------------------------------------------------------------------------------
0624dd83d0 | David Lawrence Ramsey | 2024-05-02 11:25:54 -0500

Adjust a goblin sharper line.
Orbs of destruction don't always blow up their targets.

--------------------------------------------------------------------------------
55e95659df | David Lawrence Ramsey | 2024-05-02 08:37:09 -0500

Add goblin sharper lines for renaining Nem cards.

--------------------------------------------------------------------------------
e5262815a4 | David Lawrence Ramsey | 2024-05-01 20:51:20 -0500

Fix spelling.

--------------------------------------------------------------------------------
a127011c1b | David Lawrence Ramsey | 2024-04-30 09:53:05 -0500

Add another adjective to artefacts.
(Impassible is not the same as impassable, but the former is still a
word in its own right.)

--------------------------------------------------------------------------------
490276c8bd | David Lawrence Ramsey | 2024-04-30 09:43:56 -0500

Fix typo.

--------------------------------------------------------------------------------
a794c8f787 | David Lawrence Ramsey | 2024-04-30 01:29:35 -0500

Fix spelling.

--------------------------------------------------------------------------------
53ce97cea7 | David Lawrence Ramsey | 2024-04-30 01:29:19 -0500

Fix typo.

--------------------------------------------------------------------------------
caa3975920 | regret-index | 2024-04-30 01:54:02 -0230

Put proper opacity masks in a new overflow altar vault
Monsters behind glass in vaults tagged as transparent need "opaque" KMASKs
to tell the builder those spaces aren't actually breaking connectivity
(since the monsters can't be freed without freeing up connectivity).

--------------------------------------------------------------------------------
08be3ee2a1 | David Lawrence Ramsey | 2024-04-29 07:51:18 -0500

Make the temple's chaos spawn generate awake.
So that its messages consistently show up.

--------------------------------------------------------------------------------
98c967edbf | brandon s allbery kf8nh | 2024-04-29 07:35:50 -0500

add mon-aura.cc to Android project
…hopefully

--------------------------------------------------------------------------------
f039ace532 | David Lawrence Ramsey | 2024-04-29 07:35:23 -0500

Add Zin vs. Nemelex temple overflow vault.
To help integrate Nemelex vault-wise as a chaotic god, since there are
Zin/Xom vaults and Zin/Makhleb vaults.

This has (cosmetic) pink crystal walls, a talking Zin angel, and a
talking goblin sharper worshipping Nemelex (only dialogue, no
abilities). Note that the latter's dialogue provides minor spoilers as
to what some cards do.

--------------------------------------------------------------------------------
7194ef5473 | David Lawrence Ramsey | 2024-04-27 16:34:26 -0500

Add fish name to artefacts.

--------------------------------------------------------------------------------
232a111982 | DracoOmega | 2024-04-27 19:00:44 -0230

Fix a rare Gozag crash
When an enemy is killed in a way that causes their corpse to explode (eg:
mindburst or iood) while worshipping Gozag, multiple piles of gold are
scattered around the general area. The amount of gold in each pile is
determined by randomly rounding 'total gold' / 'number of piles'. For
medium-sized creatures specifically, if the player rolled the lowest
possible amount of gold and the highest possible amount of chunks, it was
possible for this to round down to 0 gold in a pile.

Which was already specifically guarded against! Piles of 0 gold will not be
placed by _explode_corpse. ...but _explode_corpse operates using a
reference to the 'original' corpse and while place_monster_corpse attempts
to destroy the corpse item after an explosion, destroy_item() specifically
doesn't do anything to an item with a quantity of 0, so the original corpse
(now gold) would remain with a quantity of 0.

Mostly this was invisible, but upon leaving the current floor, attempting
to save the present floor would trigger an assert for the 0-gold pile being
invalid, causing this crash.

Now just make sure that none of the piles ever has less than 0 gold in it.

--------------------------------------------------------------------------------
f613fa27ca | DracoOmega | 2024-04-26 21:57:17 -0230

Fix a crash with casting Metabolic Englaciation against the player
Only player ghosts can do this presently, I believe?

--------------------------------------------------------------------------------
15cee8bff2 | regret-index | 2024-04-26 20:35:11 -0230

Vault review, mostly for new monster / revisions
 * Abominations earlier than post-Lair have been tweaked down slightly, due
   to large abominations being capable of rolling demonic crawler levels of
   regeneration and small abominations being harder to escape from.
   Aside from a few vaults, this noticeably reduces the highest rolls of
   small abominations in gauntlets and slightly lowers large abominations
   in Gauntlets overall, while reducing their count a bit in the Abyssal
   Lair end. A few other uses of abominations are mildly tweaked otherwise.

 * Undying armouries get another few uses in extended. One or two now place
   in most of Cerebov's vaults, finally emphasizing the steel part of their
   Fire and Steel title beyond iron shots and red devil tridents by using
   the armoury weapon granting gimmick on balrugs. (Since Cerebov's already
   plenty scary, these sparing placements are decently far away from
   Cerebov themself when possible.) They also get a use in earth zigs
   (which helps them further differentiate from Dis floors by arming
   gargoyles and giants), plus a grated ziggurat pillar.

 * Spider rune vaults at the outliers of kill rates have been slightly
   tweaked up or down accordingly, and the _arachne_lair vault previously
   at an acceptable middle-of-the-pack position has been nudged upwards
   in jorogumo count to the moving out Arachne from Spider.

 * Ossuary killrate top and bottom ends have been also nudged correspondingly
   towards the center, and two of the current weakest ones (silent_tomb
   and city_of_the_dead) both get the fresh new marrowcuda option.

--------------------------------------------------------------------------------
23695124c3 | David Lawrence Ramsey | 2024-04-26 15:11:27 -0500

Add another pasta type to unrands.
Also remove unneeded blank lines.

--------------------------------------------------------------------------------
eaffa7765d | DracoOmega | 2024-04-26 17:35:39 -0230

Don't let AF_SWARM trigger from attacking firewood (riverfiend)
As much as a swarm of angry fish ghosts savaging a lone plant is hilarious
to imagine, it's a little much to subject the player to in many
circumstances.

--------------------------------------------------------------------------------
e4ad002853 | DracoOmega | 2024-04-26 16:43:43 -0230

Don't Bestow Arms to monsters wielding unrandarts
regret-index plans to use them on Cerebov's level and it would be deeply
silly to replace Cerebov's trademark sword with something else. But even
in general, unrandarts are noteworthy enough not to overwrite with this
effect.

--------------------------------------------------------------------------------
9cce12141b | David Lawrence Ramsey | 2024-04-26 14:02:01 -0500

Fix capitalisation.

--------------------------------------------------------------------------------
0e4aabf6a3 | David Lawrence Ramsey | 2024-04-26 14:01:28 -0500

Fix spelling.

--------------------------------------------------------------------------------
52f7614869 | DracoOmega | 2024-04-26 16:11:43 -0230

Make Cigotuvi's Monster's constriction less absurd
This may have always been bizarrely high, but was a lot less visible before
the recent-ish constriction changes that are more explicit about the damage
it does - which is evidently a whopping 25-50 unavoidable damage
*per turn*.

Mutant beasts (which this is) use the same number as damage for all of
their aux attacks, but the scale of damage done by a constriction attack
really isn't on the same scale, so let's divide it a bit. (10-20 is still
a decent bit)

--------------------------------------------------------------------------------
9de2d02d68 | David Lawrence Ramsey | 2024-04-26 08:20:58 -0500

Fix punctuation.

--------------------------------------------------------------------------------
55a6d9f8c3 | David Lawrence Ramsey | 2024-04-26 08:20:43 -0500

Fix typos.

--------------------------------------------------------------------------------
b024fe692e | DracoOmega | 2024-04-26 02:58:12 -0230

Fix tag upgrade build

--------------------------------------------------------------------------------
cb48baab6a | DracoOmega | 2024-04-26 02:47:58 -0230

Fix accidentally using a removed ranged brand for Bestow Arms
Oddly enough, this actually visually worked convincingly enough in testing
that I didn't even notice >.>

--------------------------------------------------------------------------------
44a4d61e07 | DracoOmega | 2024-04-26 02:15:39 -0230

Fold Lorocyprocas into Hell Beasts and rename/tweak (regret-index)
As per the previous commit, this removes loros and gives their antimagic
attack to hell beasts, which are additionally renamed to 'sin beast' (it
was always a little weird that something which commonly spawns in Pan but
NOT in Hell was named 'hell beast')

They have the same base damage as before, with antimagic on their bite
attack. Their HD was raised from 7->12 (as this directly affects their
antimagic strength) which is still a bit lower than loros, but they're
much faster.

Out of some concern that Geryon might be a little too oppressive for
characters that aren't meaning to tackle the rest of Hell (since horn
troves are fun and should be encouraged!), I reduced the summon cap on
sin beasts from 8->5, and reduced their duration and his cast rate a little
bit. A pure buff to evoking the Horn of Geryon itself also seems unlikely
to be too good?  We'll see how much any of that feels like a problem.

--------------------------------------------------------------------------------
5e5f0453cd | regret-index | 2024-04-26 02:15:38 -0230

Remove lorocyprocas from vaults and level generation
Perma-invisible enemies need to be more threatening to work properly, and
there's a surplus of tier-2 demons that have needed a little more power
and interest for the indefinite lengths of Pan. This is in advance of
their antimagic and palette both being merged into hell beasts, which
will be elaborated upon in a later commit.

Most uses looking for generic demons slightly re-weigh their demons
depending on how many demons they're spawning, with larger counts
getting a little bias away from tormentors and hellions in their tier but
Pan, Abyss, and ghost vaults with large numbers of monsters rather late not
bothering for such. (Pan and Abyss floor generation itself mostly leans on
tier 2s in general, including future hell beasts.) Vaults looking for
antimagic or invisibility themes have been adjusted to either use hell
beasts (as they'll get antimagic later) or different adjascent themes
entirely for the latter.

--------------------------------------------------------------------------------
27c0888e48 | DracoOmega | 2024-04-26 02:15:38 -0230

Exile Arachne from Spider, replace with a new formicid unique
Since the introduction of jorogumos to Spider, Arachne's main gimmick has
felt a little crowded out. They're perfectly good monsters, but she's more
or less just a larger one that blinks, and it feels like she'd be more
noteworthy if she was simply somewhere else, so let's move her.

Arachne now comes with 2-3 orb spiders and can spawn in Vaults:1-4, Elf,
and Depths:1 *only in games where Spider was not generated*. You either get
joros or her, but not both. (Orb spider backup in open terrain also tends
to make her ensnare gimmick more sharply threatening, which is sort of
neat)

Replacing her in Spider is a long-awaited formicid unique. Xak'krixis is
an alchemist on expedition from an isolated formicid kingdom, studying
the fauna of Spider. They cast venom bolt, ignite poison, and an improved
version of fulminant prism which places two at once *and* has no friendly
fire. A straight adaptation of the player spell wouldn't play very well,
but multiple 'safe' bombs can make it less trivial for the player to
simply ignore, while also not endangering the many bands in Spider. (The
noise of them is even a danger of its own down there).

Xak comes with a venom-branded two-hander and a shield (why have a formicid
if they aren't going to use a shield with a two-hander, right?) and can
also dig while moving - but *not* while wandering (to avoid some of the
old boring beetle problem of loudly digging out a level whenever they'd
gotten woken up). Mostly this means they'll only do it while actively
pursuing the player, but also while running away (and possibly in some
other situations).

--------------------------------------------------------------------------------
c072c2fc51 | DracoOmega | 2024-04-26 02:15:38 -0230

Remove a couple unused function definitions

--------------------------------------------------------------------------------
9a1d0e620c | DracoOmega | 2024-04-26 02:15:37 -0230

Add Undying Armouries, a Vaults out-of-depth monster (regret-index)
These replace tentacled monstrosities from the Vaults spawn list entirely,
reducing the number of different zones they appear in, while offering a new
sort of threat that is a strong thematic fit with Vaults itself.

Undying Armouries are a vortex of weapons, animated by a poltergeist formed
from the souls of numerous smiths and weaponmasters. They have decent melee
and two unique spells:

Flashing Balestra is a mini iron shot, usable only from range, that spawns
a short-lived dancing weapon near its target - as one of the souls in the
maelstrom leaps out to duel with you.

Bestow Arms temporarily grants copies of a random summoned weapon to 5-7
nearby allies. These tend to be top-tier items, with good brands and
plusses, with a slight bias towards polearms, but also including launchers!
This is a unique vector of enemy buff that still ties into existing game
systems (and giving an entire band, say, speed longbows or vampiric glaives
ought to be felt!)

The implementation of this was tricky, and while I think I have caught and
fixed most situations where this could devour their real weapon
permanently, I'll be keeping my eye on it for other weirdness.

--------------------------------------------------------------------------------
5f1a5ef9f1 | DracoOmega | 2024-04-26 02:15:37 -0230

Replace Arcanist Force Lance with Searing Ray
Since it was given a monster implementation, I thought this could be a fun
spell to fight against sometimes. Force lance is used widely (and something
else in Vaults uses them now, too!), and this feels like a natural fit, so
let's try it.

--------------------------------------------------------------------------------
7b5b3b7c9c | DracoOmega | 2024-04-26 02:15:37 -0230

Slightly tweak early 5s
Ufetubi were moved a bit deeper after they gained flanking, but have
continued to be pretty harmless. Give them the tiniest damage buff and
move them shallower again. Nudge shadow imps a bit shallower by the same
amount.

--------------------------------------------------------------------------------
8286d04e41 | DracoOmega | 2024-04-26 02:15:37 -0230

Make xv less misleading about enemies with a regeneration buff
This never got updated when Regeneration was buffed.

(It's still SLIGHTLY misleading, due to fuzzed monster hp and non-random
rounding, but should be a lot less so)

--------------------------------------------------------------------------------
bf5259ec58 | DracoOmega | 2024-04-26 02:15:36 -0230

Make abomination randomization more interesting and obvious (regret-index)
Abominations' randomized stats were a sort of hidden detail that has
increasingly not mattered (especially since their speed was made flat).
But the concept of them being randomized amalamations of who-knows-what is
solid flavor (and more interesting than them being vanilla melee monsters),
so let's try to hilight their randomization in a more obvious way.

Abominations now start with a single random buff out of: might, haste, or
regeneration. This makes it very obvious to the player how a particular
abomination is different from any other, while still keeping them fairly
simple.

Their AC/EV has been set to the average of their old values and their
damage reduced slightly (haste/might versions will still hit harder than
the old abominations did, but not by quite so much). I also took away
no_regen from them while I was at it; not sure there's any good reason
they still have it.

Some early value uses of abominations will possibly need adjustment.

--------------------------------------------------------------------------------
3c4af0e93a | DracoOmega | 2024-04-26 02:15:36 -0230

Don't let !cancellation attempt to dispel aura effects
It could technically remove torpor snail slow, but then it would
immediately be reapplied, which is more or less doing nothing. To avoid
this being unclear to players, don't let it be drunk to remove effects that
will immediately be reapplied.

--------------------------------------------------------------------------------
6ba1bb067c | DracoOmega | 2024-04-26 02:15:36 -0230

Make Ophans Mark the player as long as they remain in LoS (regret-index)
I'm not exactly certain what monster balance for many holies is even
supposed to be at this point in the game, but ophans currently don't do
very much that effectively threatens the player, and this perhaps might
(as well as being somewhat interesting and thematically appropriate).

--------------------------------------------------------------------------------
0aa0afcdd8 | DracoOmega | 2024-04-26 02:15:35 -0230

Add marrowcudas to pre-Lair D
These were intended as low-level Yred fodder (who is still using
necrophages for early Black Torch summons, despite those not even spawning
anywhere anymore) as well as an earlygame introduction to a mechanic used
on a much latergame monster, though *that* monster isn't implemented yet
and it's possible its design will end up changing before it is.

Nevertheless, this is a tiny bit of additional variety, another monster
that could be used as a boss in a Sewer or Ossuary, and provides an
earlygame summoner (of which there are very few which aren't uniques) and
very strongly hilights the 'kill the summoner first' approach.

They are a fast, relatively low-damage, flying skeletal enemy with
AF_SWARM, which summons an additional copy of *itself* whenever it deals
damage to a target. (And then those copies can summon other copies, and
so forth, up to a cap of 8). It can block off retreat in corridors and
quickly create overwhelming numbers if ignored, but dies fairly easily when
focused directly.

They spawn (relatively rarely) at a slightly shallower depth than Wights,
as well as sometimes in the early water table (instead of 100% electric
eels all the time.)

I'm still uncertain if their placement is too close to wights and would be
better at some other depth, with other stats. I'll reassess this after some
playtesting.

--------------------------------------------------------------------------------
9bf84028a4 | DracoOmega | 2024-04-26 02:15:35 -0230

Don't make stationary monsters immune to Slowing
There's no particularly obvious reason why being unable to move should make
one immune to their ACTIONS being slowed.

This doesn't affect terribly many things, since most stationary enemies are
already will-immune and/or have rC+, but does let chaos brand slow work on
statues and metabolic englaciation hit oklobs, among a couple other things.

--------------------------------------------------------------------------------
096cba56ea | DracoOmega | 2024-04-26 02:15:34 -0230

Add Polterguardians
These are support allies, intended for Vaults, which give passive repel
missiles to all nearby allies (and also cast force lance so that they're
not utterly useless on their own).

They have a modest chance to appear in Vault Warden or Preserver bands, and
can sometimes spawn with 1-2 random single enemies (much like Rakshasa
can).

I'm not 100% happy with their solo spellset, outside of the aura effect,
but while metal splinters is the most thematic attack spell for them to
have, it also does the least against charactes who are already the least
likely to care about the repel missile effect, which seems undesireable.

--------------------------------------------------------------------------------
d62b0c61f9 | DracoOmega | 2024-04-26 02:15:34 -0230

Don't let tracers think Might Other benefits monsters without attacks
The buff beam wouldn't actually *apply* Might, but monsters would still
think that they could, resulting in them casting a spell with no visible
effect.

--------------------------------------------------------------------------------
b277726453 | DracoOmega | 2024-04-26 02:15:34 -0230

Make Aura of Brilliance no longer an aura
In theory, this spell was supposed to continuously grant brilliance to
allies near the caster, aura-style. In practice, it was kind of broken.
The code looks like it was *attempting* to renew the brilliance duration
each turn, but did not actually do so (reapplying full duration only after
it completely wore off of someone). Also, each application of brilliance
lasted approximately equally long (give or take randomization) as the
entire aura itself. So it was very common for the 'aura' to run out before
the first application of a buff did, and never extend its duration at all.
And then sometimes, it would last *just* long enough for the buff to wear
out and reapply it, effectively doubling the duration.

To make matters more confusing, the aura would immediately turn off if
ever a single turn passed without a buffable ally being in LoS of the
caster. (And there was no icon indicating an aura was even active...)

It would be possible to make it function more like an aura, but I'm not
sure there's a great mechanical benefit to doing it in this case. So
instead, just make it a one-time AoE buff (with about 75% longer duration
than it has at present) and remove the other supporting code.

--------------------------------------------------------------------------------
183d00d4ec | DracoOmega | 2024-04-26 02:15:34 -0230

Refactor / unify how monster passive enchantment auras work
Currently this combines torpor snail slow aura and martyred shade injury
bond aura into a single new system (which will make it very simple to add
similar effects with less duplicated code).

Functional changes:
 -Torpor snails now (deliberately) work through grates/statues. At least
  one vault already assumed that they did, and it doesn't feel like there's
  a good thematic or mechanical reason for them not to
 -Martyed shade's injury bond now wears off if they spend more than a
  couple turns out of LoS of what they're protecting (previously, LoS only
  mattered to apply, and it would otherwise never wear off).
 -Shades now apply injury bond each turn without needing a visible foe
  nearby. (The old behavior could sometimes lead to confusing situations
  where they wouldn't bond an ally for no obvious reason)

It is *possible* there are some minor changes with timings of when effects
are applied or removed, but I think those should be the main effects.

--------------------------------------------------------------------------------
fa1cc04b1d | David Lawrence Ramsey | 2024-04-23 19:21:40 -0500

Fix punctuation.

--------------------------------------------------------------------------------
15e7c0074e | David Lawrence Ramsey | 2024-04-23 14:25:24 -0500

Fix the build?

--------------------------------------------------------------------------------
cfd66e3ff3 | David Lawrence Ramsey | 2024-04-23 13:52:50 -0500

Make class-specific orc names work with apostles.
Orc apostles now have their own name keys based on class. So priestly
apostles can now be named Judas, just as friendly orc priests used to
be.

Accordingly, add names for warrior and wizard apostles.

--------------------------------------------------------------------------------
b3226c233f | David Lawrence Ramsey | 2024-04-22 16:21:49 -0500

Make god protection work with cleaving/reaching.
So that you can no longer attack Fedhas and Jiyva allies via those
methods.

--------------------------------------------------------------------------------
b4a59205af | David Lawrence Ramsey | 2024-04-21 18:10:10 -0500

Fix Hurl Torchlight description.
It damages holy beings, not unholy beings.

--------------------------------------------------------------------------------
abb26cbae4 | David Lawrence Ramsey | 2024-04-21 14:53:08 -0500

Fix spelling.

--------------------------------------------------------------------------------
5bea24bcb7 | Nicholas Feinberg | 2024-04-21 12:48:42 -0700

Don't allow rain to create deep water anywhere
Pretty silly and almost impossible to trigger in practice. I like silly,
but there's no sense keeping code for something no one will ever see.

--------------------------------------------------------------------------------
a3b3661b09 | Nicholas Feinberg | 2024-04-21 12:39:00 -0700

Allow rain to create deep water in sprint
Now that it's temporary.

Reverts 57db23c628d709e5e6e635634631c1f7cdf624bc.

--------------------------------------------------------------------------------
7117bd966e | Nicholas Feinberg | 2024-04-21 10:35:06 -0700

Fix a silly use of mon_is_object

--------------------------------------------------------------------------------
1f0809d323 | David Lawrence Ramsey | 2024-04-21 12:18:39 -0500

Fix now-inaccurate comment.
Since Lugonu hasn't had Bend Space for awhile.

--------------------------------------------------------------------------------
d272cc43a0 | David Lawrence Ramsey | 2024-04-21 12:17:21 -0500

Fix corpse naming of the mad acolyte of Lugonu.
So that it leaves a "human corpse", instead of a "human corpse of mad
acolyte of Lugonu".

--------------------------------------------------------------------------------
d927fbf5ee | David Lawrence Ramsey | 2024-04-21 09:25:37 -0500

Add another colour for Blork's dialogue.

--------------------------------------------------------------------------------
d922fe92ef | David Lawrence Ramsey | 2024-04-21 08:14:46 -0500

Properly apostrophise rimeblight message.

--------------------------------------------------------------------------------
a09f62fbf4 | DracoOmega | 2024-04-21 01:44:16 -0230

Fix missing Recall Apostle description (due to typo)

--------------------------------------------------------------------------------
35e66b3ebd | David Lawrence Ramsey | 2024-04-20 19:38:06 -0500

Move old box of beasts tile to UNUSED.

--------------------------------------------------------------------------------
b8cfe57ea9 | DracoOmega | 2024-04-20 18:04:12 -0230

New tiles for gravitambourine / box of beasts by meckryl

--------------------------------------------------------------------------------
e909cc9b66 | NormalPerson7 | 2024-04-20 11:11:53 -0500

Fix a few things about wanderer
  - Troll, oni and spriggan wanderers now actually get armour when
    they roll armour skill (acid dragon scales for good quality,
    otherwise an aux slot) as originally intended. They'll also get
    armour skill if they start with acid dragon scales.
  - Ghoul wanderers can now get potions of attraction like every
    other species
  - Formicid wanderers can now start with a quarterstaff or a
    ranged weapon and a shield
  - Starting wands of warping now get 2-4 charges like iceblast/roots
    instead of getting 15

Also, to incentivise using starting unarmed combat skill when wanderers
get it, make wanderers that start with unarmed skill not get the
default club/dagger if they weren't assigned another weapon.

--------------------------------------------------------------------------------
1b2d3e27e7 | Kyle Rawlins | 2024-04-20 12:10:51 -0400

fix some lua docstrings (FBV)
(Sadly, I still don't have the ability to actually rebuild the docs)

--------------------------------------------------------------------------------
384da2ce10 | David Lawrence Ramsey | 2024-04-20 00:42:06 -0500

Fix typo.

--------------------------------------------------------------------------------
f09306aaf3 | advil | 2024-04-19 20:11:23 -0400

fix: typo

--------------------------------------------------------------------------------
345e16ba17 | advil | 2024-04-19 20:10:04 -0400

fix: comment an obscure number (hellmonk)

--------------------------------------------------------------------------------
b208e08d4e | David Lawrence Ramsey | 2024-04-19 17:57:27 -0500

Mark the faith mutation as good instead of bad.
Since it gives no penalties, and is exclusive to mummies anyway.

--------------------------------------------------------------------------------
ee455d87c4 | David Lawrence Ramsey | 2024-04-19 17:50:40 -0500

Fix spelling.

--------------------------------------------------------------------------------
7161d331b1 | David Lawrence Ramsey | 2024-04-19 09:28:38 -0500

Add Rimeblight to Kiku gift list (NormalPerson7).

--------------------------------------------------------------------------------
85d4e5bfdb | David Lawrence Ramsey | 2024-04-17 18:57:12 -0500

Add a time name to artefacts.

--------------------------------------------------------------------------------
881aff7752 | David Lawrence Ramsey | 2024-04-17 18:48:09 -0500

Set killer properly for Ely wrath heals (oops).

--------------------------------------------------------------------------------
4cb0429790 | David Lawrence Ramsey | 2024-04-17 18:42:09 -0500

Alert stabbed monsters Ely wrath heals (#3759).
Instead of letting them possibly stay unaware.

Closes #3759.

--------------------------------------------------------------------------------
c73bb6fe4b | DracoOmega | 2024-04-17 20:39:36 -0230

Let Gavotte ignore -move when moving the player again
Tragically, I forgot that you could simply cast Momentum Strike to
reliably cause the status to yourself. Letting formicids or !lig work
differently is one thing, but I think that too easily gives Gavotte
modality of 'Do you want to move yourself or not?' which I don't want to
introduce to the spell.

(On reflection, the monster equivalent of -move didn't stop them from
being flung around anyway.)

--------------------------------------------------------------------------------
b20137aa24 | DracoOmega | 2024-04-17 20:11:32 -0230

Don't double-miscast when miscasting Seismic Shockwave (NormalPerson7)
This was a consequence of how the second spell was embedded inside the
cast code of the first. Instead, directly switch which spell is being
cast inside your_spells, depending on the cannon's mode.

This feels a little ugly, but is at least clear in what it's doing and
seems to solve the original problem without creating new ones.

--------------------------------------------------------------------------------
80a8511205 | DracoOmega | 2024-04-17 20:11:32 -0230

Make -move and stasis block the self-move portion of Gavotte
You already can't move stationary enemies this way, so it feels like it
should work the same way for players. But unlike many transloctions that
move the player, you're clearly affecting the *general area* and not
specifically yourself, so it seems intuitive that you can still hurl
enemies around even if you remain in the same place.

This does mean that formicids can do things with it that other species
cannot, but it's not clear to me that the advantage of 'can toss enemies
out of your LoS sometimes' outweighs the downside of 'can't ever use it to
rapidly reposition yourself', and formicids aren't exactly a concerningly
powerful species at present. We'll see if that holds up in practice.

(Deliberately miscasting translocation spells to get this property on other
species seems almost certainly worse to attempt than doing something else
with your time, and if someone wants to use !lig to take advantage of this,
then they can be my guest)

--------------------------------------------------------------------------------
95e3b1b552 | DracoOmega | 2024-04-17 20:11:32 -0230

Don't poof summons when you Gavotte without hurting them (Drazool)

--------------------------------------------------------------------------------
61e5eb5241 | David Lawrence Ramsey | 2024-04-17 16:48:02 -0500

Adjust Donald's Yred dialogue.
Add one new line, and adjust another one to account for spectral things.

--------------------------------------------------------------------------------
b2c533c2cc | David Lawrence Ramsey | 2024-04-17 16:38:02 -0500

Fix spelling.
Ensure "cerulean" is spelled consistently, betwen the imp and the Blork
colour, and resort accordingly.

--------------------------------------------------------------------------------
1450d63957 | DracoOmega | 2024-04-17 17:42:28 -0230

Don't let allies reduce damage enemies take from Ozocubu's Refrigeration
It always felt both a flavor mismatch *and* unfortunate mechanics that
simulaca (which are immune to Refrigeration) still had anti-synergy with
it by reducing the damage enemies would take from it. Rather than
specifically exclude icy monsters from this calculation (and invite
confusion/debate about what is sufficiently un-warm), only give the huddle
bonus from monsters *allied* with the target taking damage. So massed
enemies take the same reduced damage as now, but your summons will no
longer deign to give them a friendly cuddle for warmth.

This effectively buffs both spells a little, but Refridgeration doesn't
seem so strong these days that it can't handle that, and it feels like a
cute and intuitive synergy.

--------------------------------------------------------------------------------
23bc409a18 | DracoOmega | 2024-04-17 17:42:28 -0230

Tweak Fulsome Fusillade animation
Explosions will generally come out faster now. Hopefully will still be
adequately readable.

Also properly respect the no-animation setting.

--------------------------------------------------------------------------------
222fab4e45 | DracoOmega | 2024-04-17 17:42:28 -0230

Fix Fusillade maintaince cost not working properly for djinn (ragingrage)
The status light would be dimmed (like they could not afford to pay) at all
times, but it didn't actually cost them any hp to maintain at all.

--------------------------------------------------------------------------------
999f1deb04 | DracoOmega | 2024-04-17 17:42:28 -0230

Fix Fusillade usability tracer caring about line-of-fire (ragingrage)
The spell itself did not, but you had to force-cast it if anything was in
the way.

--------------------------------------------------------------------------------
9044fd6bb8 | DracoOmega | 2024-04-17 17:42:28 -0230

Don't let the player cast Seismic Cannonade while worshipping Okawaru
Even if you lose out on such wonderful messages like "The seismic cannon
feels only hate for you! x3"

--------------------------------------------------------------------------------
d60f5e5fc7 | Nicholas Feinberg | 2024-04-17 09:05:20 -0700

Fix rimeblight double-kills (Ge0ff)
Stop killing dead monsters! Hopefully. (Untested.)

--------------------------------------------------------------------------------
3814254bd7 | David Lawrence Ramsey | 2024-04-16 16:36:48 -0500

Add two nouns and one modifier to gizmos.

--------------------------------------------------------------------------------
f62624241c | mumra | 2024-04-16 21:22:36 +0100

Fix more rare caps issues in speech
Snorg, Thermic Dynamos, Norris, and cornered monsters.

--------------------------------------------------------------------------------
284280803b | DracoOmega | 2024-04-16 16:26:32 -0230

Improve seismic cannon shot damage at higher spellpower a little
Earlier versions of this spell did too much upfront damage, and while I was
repeatedly dialing this back, I left it so that spellpower did very little
to actually improve them. This should raise their damage at higher power,
but not affect it very much at lower power.

(Damage may still warrant adjustment in *general*, but I'll wait on more
playtesting feedback for that)

--------------------------------------------------------------------------------
1362d298d4 | DracoOmega | 2024-04-16 16:26:32 -0230

Don't turn seismic cannons hostile when you hit them (ge0ff)
They're mindless objects it seems like they should obey the same rules as
spellforged servitor here.

(This had the additional negative effect that the other cannons could
charge themselves up by firing at the now-hostile cannon...)

--------------------------------------------------------------------------------
0afd68cec4 | David Lawrence Ramsey | 2024-04-16 12:33:11 -0500

Fix typo.

--------------------------------------------------------------------------------
871480c51d | David Lawrence Ramsey | 2024-04-16 10:21:03 -0500

Fix capitalisation in monster message (Ge0ff).

--------------------------------------------------------------------------------
d68e888341 | David Lawrence Ramsey | 2024-04-16 09:43:03 -0500

Count foul stench as a retaliatory DS mutation.
So the player can't get it along with spiny or foul shadow.

--------------------------------------------------------------------------------
508020473e | David Lawrence Ramsey | 2024-04-16 00:17:45 -0500

Add abandoned chaos spawn temple overflow vault.
This features altars to all three chaotic gods (now that Nemelex is
considered chaotic), a walled-off chaos spawn (cf. the walled-off angel
in a Zin overflow vault), a damaged chaos weapon for flavour, and
chaotic decor such as (cosmetic) orange crystal walls.

--------------------------------------------------------------------------------
002fc65269 | DracoOmega | 2024-04-15 23:16:14 -0230

Don't let Fusillade hit targets through glass (mumra)
Oops.

--------------------------------------------------------------------------------
fd48ac3f16 | David Lawrence Ramsey | 2024-04-15 20:31:21 -0500

Make Dissolution/tormentor rare speech be rare.

--------------------------------------------------------------------------------
82205d557d | mumra | 2024-04-15 20:30:22 -0500

Make Killer Klown rare speech actually rare

--------------------------------------------------------------------------------
6b026da01a | David Lawrence Ramsey | 2024-04-15 17:59:22 -0500

Fix spellbook name typo.

--------------------------------------------------------------------------------
a1d19d5947 | David Lawrence Ramsey | 2024-04-15 17:52:14 -0500

Fix missorted Blork colour entry.

--------------------------------------------------------------------------------
1366db7308 | David Lawrence Ramsey | 2024-04-15 17:41:39 -0500

Fix typos, wording, and spelling.

--------------------------------------------------------------------------------
b27d4a036e | DracoOmega | 2024-04-15 19:52:02 -0230

Shuffle new spells into spellbooks, add 3 new books in the process

--------------------------------------------------------------------------------
4722b9ceb0 | DracoOmega | 2024-04-15 19:52:02 -0230

Some tweaks to auto-aiming to make Magnavolt work sanely with autofight
This repurposes the still-implemented but currently unused prefer_farthest
member of direction_chooser and adds spflag::prefer_farthest to let spells
use this (currently just Magnavolt).

It also fixes some bugs I discovered with its implementation in the
process, like how it choose the 'farthest' target by starting with the
default closest target and then cycling backwards once so that it would
'wrap around' to the farthest. Which didn't actually work properly in many
cases where the default target *wasn't* the closest to start with.

Additionally, this adds a preferred_aim member to targeter (which normally
defaults to returning valid_aim) for situations where it is clear that a
certain valid target would not be what the player would *actually* want to
aim at in the vast majority of cases. Default target selection is now done
in two passes - looking for a preferred_aim first, and then picking a
valid_aim second if no preferred_aim is found. This isn't intended to use
any complex heuristics to guide the player, but for simple situations where
'closest valid target' doesn't actually represent good default behaviour.

There may be other spells for which it makes sense to use this, but for now
it's also just used by Magnavolt (otherwise, ranged autofight uses the
spell so badly that you essentially could only ever manually cast it)

For the record: the deep guts of direction_chooser are scary and deeply
unpleasant to work with. I am not 100% confident that what I have done here
won't have some undesired side-effect, though in basic testing other
things seem to still work properly. Fingers crossed. (I also wasn't
thilled to add a member to targeter for just one spell here, but wasn't
sure of a cleaner way to accomplish the goal with what I was working with.)

--------------------------------------------------------------------------------
a627dd3ad3 | DracoOmega | 2024-04-15 19:50:45 -0230

Magnavolt (level 7 Air/Earth spell)
An attempt to fill out more cross-over spells, since I think those can
present interesting skilling decisions, as well as continuing to add more
options for high-level casters in general. Magnavolt is a smite-targeted
spell that coats a target with a thin layer of magnetised metal and then
fires a bolt of electricity at every visible enemy that is magnetised in
this way. (Meaning that the first time you cast it, it will fire one bolt,
but repeatedly casting it will fire 2, 3, 4, and so forth).

The magnetised status is short-lived, reduces the target's EV to 0, and
also causes them to leave behind an electroferric vortex for a brief while
after death (which is stationary, but perma-magnetised, so that it can
continue to serve as an anchor for the spell if the initial target
immediately dies, which helps to keep the ramp-up more predictable in
situations where the caster is actually successfully killing things).

By blending the two opposing schools together, this spell offers Air more
controllable (and less unsafe) long-range damage at this level range, while
giving earth better AoE (in exchange for it being more resistable) with a
simple unique twist. Ideally this tempts some people to pivot in ways that
previously weren't as rewarding, while offering a new simple damage option
for high level mages.

--------------------------------------------------------------------------------
242962994e | DracoOmega | 2024-04-15 19:50:45 -0230

Seismic Cannonade (level 7 Alchemy/Earth)
Another attempt to fill in some high-level alchemy options of a very
different style than Fulsome Fusillade, this spell consturcts 3 seismic
cannons near the caster which are stationary turrets that fire medium-range
projectiles each turn and have a built in 'super' they can charge up for.

The cannons are initially created with 1/2 of their max hp, but heal a
small amount with each shot they fire (as they dig up and incorporate more
material from the earth into their frames). Once they reach full hp, the
caster can recast the spell to unleash a seismic shockwave that does
significant area damage to a targeted location and also destroys the
remaining cannons in the process.

This is intended to lean into alchemy's thematics of 'creation' (as
Fusillade leaned into 'chemical reactions'), while providing a high-level
ally spell that feels distinct from, say, a Spellforged Servitor using
bombard or crystal spear (which Earth could already access at this level
with a splash of a secondary school). By contrast, cannonade is noisier,
less flexible with positioning, and requires some defending, but can switch
between wide-scale AoE and single-target damage on the fly. (It was also
an attempt to make another 'modal' ally spell after the positive response
to revamped Call Canine Familiar).

As usual, all of the various numbers involved in this are still provisional
and may need adjusting. (Also: the cannon tile is very sad; I apologise.)

--------------------------------------------------------------------------------
7e3501342c | DracoOmega | 2024-04-15 19:50:45 -0230

Rimeblight: New Level 7 Ice/Necromancy spell
A beam-targeted irresistable enchantment that inflicts Rimeblight upon a
living/holy/demonic creature. The creature will take AC-ignoring cold
damage over several turns as ice devours them from the inside out, and also
periodically explode in a flurry of ice shards that damages nearby hostiles
(but not the player or their allies!) and can spread the disease to
succeptible creatures it hits.

Creatures with rimeblight on them that drop below 20% hp (ie: the 'almost
dead' threshold) will instantly die and be replaced with a short-lived
pillar of rime. (Purely decorative, but the flavor is too good to pass up
here, in my opinion)

Beyond the neat flavour and unusual spreading mechanics, this provides a
high level offensive necromancy option that isn't ally-based (and also a
little more variety in high-level ice magic in general).

--------------------------------------------------------------------------------
697f7be91b | DracoOmega | 2024-04-15 19:50:45 -0230

Fulsome Fusillade: level 8 Conjurations/Alchemy
An attempt at giving alchemy a high-level blasty spell that feels
sufficiently distinct from those which already exist, while also feeling
appropriate to the thematic spirit of the school.

Fulsome Fusillade gives the player a status which causes beakers of random
reagents to rain on nearby targets for each of the next 5 turns, causing
3x3 explosion of either fire, cold, electricity, or poison arrow aimed on
top of 3 random enemies. But importantly, if any of those explosions
*overlap*, the area of overlap is instead hit by a volatile alchemical
reaction that deals a larger amount of non-elemental damage and has a
chance to apply a random debuff.

In effect, one can consider it somewhere between Polar Vortex and Ignition;
it does mp-efficient damage over time but benefits greatly from targets
being adjacent to each other. It can work in corridors and hit enemies from
a far range, but becomes far less useful against either single targets OR
a very large number of targets - being ideal against a single clustered
group that will focus the random hits into a small area.

Many aspects of this spell are still tentative and subject to further
adjustment as playtesting happens.

--------------------------------------------------------------------------------
8c197d95f1 | David Lawrence Ramsey | 2024-04-15 16:10:05 -0500

Add one more colour for Blork's dialogue.
Technically, "sorcerer's violet" is another name for the periwinkle
flower, and not the name of a colour, but I'm using it as the latter, at
PleasingFungus' suggestion.

--------------------------------------------------------------------------------
f7567baaaa | David Lawrence Ramsey | 2024-04-15 15:56:25 -0500

Add more misc colours for Blork dialogue.

--------------------------------------------------------------------------------
40ac7a0f4d | David Lawrence Ramsey | 2024-04-14 13:37:02 -0500

Clarify foul flame brand description.
Like holy wrath, it has to get through armour to do extra damage.

--------------------------------------------------------------------------------
d7206a2022 | David Lawrence Ramsey | 2024-04-14 11:44:53 -0500

Fix wording.

--------------------------------------------------------------------------------
ade3313668 | David Lawrence Ramsey | 2024-04-14 09:50:15 -0500

Remove remnants of stationary boulders.
Since 03d5c24, decorative piles of debris are used for decoration
instead of stationary boulders, so boulders should no longer block
travel or count as firewood.

This reverts commit aa138b54abb418331c72e2e0836ebba38158137b.
This partially reverts d9500d9d985ea3c7500565b73bca617f04e8edfb.

--------------------------------------------------------------------------------
6cb2a80f7e | David Lawrence Ramsey | 2024-04-14 08:50:38 -0500

Allow wanderers with shapeshifting skill.
These start with either a beast or a flux talisman.

Note that, unlike shapeshifters, they don't start in shapeshifted form.
They won't have the skill for flux talismans, and starting in beast form
only for beast talismans seems odd, given that their other equipment
could include things melded under beast form. (Assume the difference is
because they didn't go to Official Shapeshifter School.)

--------------------------------------------------------------------------------
5a1759da3d | NormalPerson7 | 2024-04-14 08:50:23 -0500

Fix wanderer evoker starts from allowing duplicate evokers
Previously, if your wanderer rolled a misc evoker, you could still
get the same misc evoker generate in your game. Since they're meant
to essentially be unrands, fix this.

[Sidenote: misc evokers are generally pretty unbalanced for starting
equipment. The lightning rod in particular is insanely strong, with
4 charges of (2+)d15 unavoidable lightning damage. Some rebalancing
may be desirable in future.]

--------------------------------------------------------------------------------
a8fa3634e4 | David Lawrence Ramsey | 2024-04-13 22:31:19 -0500

Fix wording.

--------------------------------------------------------------------------------
546787307d | Nicholas Feinberg | 2024-04-13 11:26:30 -0700

Fix: destroy the power of imagination (CuriousUB)
Avoid taking the square root of a negative number when calculating GDR.
The results could be dangerously complex.

--------------------------------------------------------------------------------
5a2cda0630 | David Lawrence Ramsey | 2024-04-12 11:48:31 -0500

Add blank line.

--------------------------------------------------------------------------------
3b45f6b399 | David Lawrence Ramsey | 2024-04-12 11:48:10 -0500

Add another Xom esteem entry to artefacts.

--------------------------------------------------------------------------------
5c35ed9eb8 | David Lawrence Ramsey | 2024-04-12 09:21:25 -0500

Add another unlikely hybrid to artefacts.

--------------------------------------------------------------------------------
1cae6b7ea0 | David Lawrence Ramsey | 2024-04-12 00:10:08 -0500

Fix spelling.

--------------------------------------------------------------------------------
1d8594ba9b | David Lawrence Ramsey | 2024-04-11 22:11:21 -0500

Fix spacing.

--------------------------------------------------------------------------------
b82d5c5c13 | David Lawrence Ramsey | 2024-04-11 22:11:01 -0500

Add more modern mythical animals to artefacts.

--------------------------------------------------------------------------------
8b09de87e5 | David Lawrence Ramsey | 2024-04-11 21:59:01 -0500

Fix typo.

--------------------------------------------------------------------------------
f9495cfbe1 | Nicholas Feinberg | 2024-04-11 18:24:04 -0700

Add meckryl to the CREDITS
Note that they have assented to use DCSS's CC0 license for their art.
(That is, for the tile in the preceding commit, Yred's Recall icon.)

--------------------------------------------------------------------------------
f54f9d2431 | Nicholas Feinberg | 2024-04-11 18:16:44 -0700

New Yred Recall tile (meckryl)
A truly gripping portrayal...

--------------------------------------------------------------------------------
a7055e1045 | Nicholas Feinberg | 2024-04-11 18:16:44 -0700

Don't let broodmothers abjure (hellmonk)
Copy-paste error.

Possible that 'summon spiders not abjuring' should be a property of the
monster, not of the spell? Probably we'd want a hypothetical intelligent
summon spider caster to abjure?

--------------------------------------------------------------------------------
04a7ad8e02 | DracoOmega | 2024-04-11 01:44:34 -0230

Fix various bad interactions between Gavotte and allies (RBrandon)
Gavotte would count as attacking an ally (for penance purposes) even if
that ally didn't actually hit anything. Moreover, there was no proper
warning for casting Gavotte in ways that WOULD result in hurting allies.
(And lastly, the message ordering for penance via Gavotte was mildly bad,
with the player feeling guilty before anything actually hit anything else.)

These should hopefully now all be fixed.

--------------------------------------------------------------------------------
eafeab658c | David Lawrence Ramsey | 2024-04-10 19:28:01 -0500

Give unrand amulet of invisibility its own tile.
It now uses a palette-adjusted version of the amulet of Cekugob tile,
instead of the actual amulet of Cekugob tile.

--------------------------------------------------------------------------------
cc1024d444 | David Lawrence Ramsey | 2024-04-10 17:08:00 -0500

Fix misspelled amulet type in tiles.

--------------------------------------------------------------------------------
0f22ef8d61 | David Lawrence Ramsey | 2024-04-09 10:49:03 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
ff2ca24bee | David Lawrence Ramsey | 2024-04-09 10:48:44 -0500

Revert "Musical instruments shouldn't work silenced"
This reverts commit 7506e133619c5ed742734399c36a65b1e3989442.

--------------------------------------------------------------------------------
093061d48c | David Lawrence Ramsey | 2024-04-09 09:37:41 -0500

Remove unneeded space.

--------------------------------------------------------------------------------
7506e13361 | mumra | 2024-04-09 09:37:17 -0500

Musical instruments shouldn't work silenced
While it could possibly be argued that it has some translocational way
to make noise even in a silence field,
it seems more logical that a silenced musical
instrument should actually stop functioning.

--------------------------------------------------------------------------------
9e1d0c6be1 | mumra | 2024-04-09 09:37:17 -0500

Instruments shouldn't jingle when silenced
Also removed a couple of errant references
to Gravitas.

--------------------------------------------------------------------------------
739538afd8 | David Lawrence Ramsey | 2024-04-06 21:35:00 -0500

Fix comment.

--------------------------------------------------------------------------------
30c33ebcab | David Lawrence Ramsey | 2024-04-06 21:34:04 -0500

Add a gizmo adjective and noun.

--------------------------------------------------------------------------------
4a80058b82 | Medrano83 | 2024-04-06 20:45:19 -0500

Fix the description of walls with unseen changes (take two)
Temporary terrain changes produced by the summon forest spell can
affect dungeon features outside of the player's LOS. Those features
lose the flavour when described or if the dungeon view is reloaded.
The description is also wrong for the summoned trees after the spell
finished.

The first version of the patch had to be reverted because it crashed
on some vaults with loot on top of custom floor.

--------------------------------------------------------------------------------
d49a5c60f5 | Nicholas Feinberg | 2024-04-06 16:22:20 -0700

Fix a confusing message (Silurio)

--------------------------------------------------------------------------------
c671339a80 | David Lawrence Ramsey | 2024-04-05 17:09:37 -0500

Fix info leak w/unID'd shop artefacts (#3756).
In antique shops, artefact weapons and armour wouldn't be identified,
but would still hint at their enchantments through their descriptions if
you were a Mountain Dwarf.

Fix this by describing such artefacts just as "ancient artefacts" if you
don't know their enchantments.

Closes #3756.

--------------------------------------------------------------------------------
8e5f33bbaa | Kyle Rawlins | 2024-04-05 16:46:38 -0400

fix: sanitize sanity check

--------------------------------------------------------------------------------
8f8f606f09 | Kyle Rawlins | 2024-04-05 16:44:39 -0400

fix: further tweaks to webtiles lazy image loading
In testing, the first attempt didn't look very good on a live server,
because the image load was very visible. This commit changes the
approach to randomly select and ensure loading for an image every time a
logged-in player enters the lobby. Like the prior attempt, it forces
loading by removing the lazy attribute; as the comment notes, I'm not
sure the standards require a browser to react to this, but they do seem
to in practice.

--------------------------------------------------------------------------------
ab96632d6e | David Lawrence Ramsey | 2024-04-05 14:02:07 -0500

Fix foul flame colour in monster info bot.
It was changed from yellow to lightmagenta in one place, but not the
other.

--------------------------------------------------------------------------------
2ec9e35ba7 | David Lawrence Ramsey | 2024-04-05 13:44:59 -0500

Fix underline.

--------------------------------------------------------------------------------
d9e1bd76a7 | David Lawrence Ramsey | 2024-04-05 09:54:16 -0500

Adjust a comment.

--------------------------------------------------------------------------------
36d3288a94 | Monkooky | 2024-04-05 09:53:43 -0500

Remove unused areaprops

--------------------------------------------------------------------------------
b4fc452618 | Kyle Rawlins | 2024-04-05 09:10:11 -0400

fix: lazy load webtiles title images (mumra, ge0ff)
Over time we've accumulated more and more of these, and since they are
loaded from html, this has built up initial webtiles load time. There's
really no need to frontload them, the way they are used. This commit
uses a relatively modern but nowadays widely available lazy loading
attribute to defer loading. In order to actually sequence the image load
of a non-cached image before the tilesheets, I did need to manually
remove the attribute still. Tested on firefox/chrome mac.

--------------------------------------------------------------------------------
99e313a671 | Kyle Rawlins | 2024-04-05 09:10:10 -0400

fix: disable requirejs timeout altogether (mumra, ge0ff)
The default value for this timeout is 7s. Since tilesheets are sequenced
before js modules in client loading (because they are loading from
html), on a slow connection this timeout can be hit for non-cached
tilesheets. I didn't find a reasonable version-independent way to defer
tilesheet loading without a lot of refactoring, so instead, just disable
the requirejs timeout. It would be possible to set this to a large
value, but from the user's perspective, since we already have a loading
screen, there's no real difference. It's just a matter of whether the
errors show up in the developer console or not, but the hang-on-load
behavior is the same either way. I also couldn't see any value in making
a user-facing timeout error on the load screen. So, this commit takes by
far the simplest approach and just disables the timeout.

For reference, in 3G throttling I was seeing 40-70s load times, and in
4G throttling this can go up to 30. I'm not sure we are trying to
accommodate 3G, but 4G might be reflective of bad connections we would
want to try to accommodate.

--------------------------------------------------------------------------------
30fb1b0edc | DracoOmega | 2024-04-04 22:34:18 -0230

Don't let Coglins equip jewellery when polymorphed (ragingrage)

--------------------------------------------------------------------------------
eb5ba95c15 | Kyle Rawlins | 2024-04-04 08:32:47 -0400

build: fix macos ci
This commit attempts to make the macos CI workaround robust for all
scenarios I have seen, and clearly document how it works.

--------------------------------------------------------------------------------
7811c86cf0 | DracoOmega | 2024-04-03 18:55:00 -0230

Don't let bound or constricted monsters follow the player through stairs
The constriction interaction was even more weirdly buggy, as they could
remain constricted on the other side of the stairs, even if the constrictor
themselves was left behind on the previous floor.

(Note: things the player is physically constricting will still follow you,
as the very act of taking the stairs first releases them)

--------------------------------------------------------------------------------
90b412cebd | DracoOmega | 2024-04-03 18:55:00 -0230

Prompt the player before Piledriving into an ally (Monkooky)
You already couldn't use a friendly as the main target, but it was possible
to slam an enemy *into* a friendly without warning. Now the player is
warned properly.

--------------------------------------------------------------------------------
686ce31a6c | DracoOmega | 2024-04-03 18:55:00 -0230

Make Gell's Gravitambourine a little noisier (ge0ff)
Given that it's intrinsically music-based, possible this feels a little
better than it being marked as 'quiet' if you examine it?

(The exact amount of noise here is basically arbitrary)

--------------------------------------------------------------------------------
c89641f149 | NormalPerson7 | 2024-04-03 23:53:14 +0300

Don't show MPRegen line on % screen for djinn

--------------------------------------------------------------------------------
e5cd51f897 | wheals | 2024-04-03 23:51:52 +0300

Fix red draconians in dragon form having two breath abilities (#3750)
Fixes #3750

--------------------------------------------------------------------------------
f85d74f360 | David Lawrence Ramsey | 2024-04-02 20:00:54 -0500

Ban Zin's artefacts from having the chaos brand.

--------------------------------------------------------------------------------
40b700cd64 | David Lawrence Ramsey | 2024-04-02 19:41:42 -0500

Limit Ignis' artefact weapons to flaming brand.

--------------------------------------------------------------------------------
c41d80381e | David Lawrence Ramsey | 2024-04-02 15:50:36 -0500

Rename gui/spells/poison to gui/spells/alchemy.

--------------------------------------------------------------------------------
59293ed448 | Nicholas Feinberg | 2024-04-02 13:47:36 -0700

Fix: catch a few more strays (Ge0ff)

--------------------------------------------------------------------------------
7cf571d63e | David Lawrence Ramsey | 2024-04-02 15:04:32 -0500

Add misc colours as an option for Blork dialogue.
These are taken from the colour list used for the scrolls of random
effects before they were removed in 00efbec, but with the rainbow
colours removed; black, white, and grey removed; and alizarin crimson,
saffron, and vermilion added.

--------------------------------------------------------------------------------
8ce7b1ec60 | Nicholas Feinberg | 2024-04-02 12:51:14 -0700

Fix: bring stray lajatangs back to the fold (Ge0ff)
Remove stray pixels.

--------------------------------------------------------------------------------
7c90f283a1 | yrdzrfxndfvh | 2024-04-02 12:44:28 -0500

add cardinal to rand_wpn

--------------------------------------------------------------------------------
41c5271027 | DracoOmega | 2024-04-01 18:07:37 -0230

Make Teleport Other try to teleport the affected monster out of LoS
I don't expect this raises the spell's power overly much, but avoids the
unfortunate scenario of spending all your MP to overcome a monster's will
only to have it land 2 spaces to your left and not improve your situation
at all. Now it is at least guaranteed to land out of LoS (though nothing is
stopping it from being immediately around the corner and walking back in,
of course)

--------------------------------------------------------------------------------
90097df4a3 | DracoOmega | 2024-04-01 18:07:37 -0230

Nudge Thunderhulk Blink Ranged cast rate down slightly
In partial compensation for it being less likely to move them closer now
instead. They're already quite dangerous, and being inside of their
effective range is important counterplay.

--------------------------------------------------------------------------------
3c7185120d | DracoOmega | 2024-04-01 18:07:37 -0230

Replace a couple uses of Blink Away with Blink Ranged
Blink Away will happily move the monster out of sight of their target
(which is usually the player) while Blink Ranged attempts to create
distance while still being able to see the target.

It seems better behaviour in the majority of cases if enemies don't leave
the range at which they can threaten the player altogether. I left Blink
Away alone for summoners (who often benefit actively from leaving their
summons to hit you, even if they can't see you themselves) and boulder
beetles (because they can be so dangerous early on and them sometimes
disappearing is a more of a mercy to the player than a nuissance)

--------------------------------------------------------------------------------
00f42548a0 | DracoOmega | 2024-04-01 18:07:37 -0230

Prevent the player from self-targeting ranged weapons
There was virtually no reasonable use-case for doing so (and it even
required stepping through multiple different confirmation prompts!).
Dispersal darts were approximately the only case where this could bring
the player any benefit but:
 a) That's kind of dumb
 b) You were very likely to miss anyway, so it would almost never be
    *actually* good to try to blink this way, anyway.

--------------------------------------------------------------------------------
55d883d9c5 | DracoOmega | 2024-04-01 18:07:37 -0230

Make Dispersal Darts better at blinking things away from the thrower
Technically they already tried to prefer blinking things away, but were so
bad at it that I'm not sure anyone even noticed. (They simply picked TWO
random valid destinations and would move the victim to the further of these
two).

This repurposes some existing blink_ranged code and in the process improves
some jankiness with it to prevent this making the *worst* case for
dispersal darts worse (even as the average case improves). Now the code
will ignore possible destinations that are closer than where the blinker
already is. (Yes, it was very possible for a monster to cast Blink Away
and actually blink towards instead...)

This is effectively a minor buff to monsters with Blink Away (and also
Disjunction), but those spots were always downweighted so I don't think
it's a significant balance change, so much as polishing off odd behaviour.

Mostly, this is intended to buff Warper earlygame a small bit by making
one of their trademark consumables better at its job.

--------------------------------------------------------------------------------
66197389d5 | DracoOmega | 2024-04-01 18:07:37 -0230

Don't let prefer_ranged enemies rarely swap to melee weapons in melee
Enemies with the PREFER_RANGED flag have a 10% chance not to shoot on any
given turn where they have line of fire, and if they rolled this chance
while adjacent to their target, were likely to try to melee attack them
instead, which looked very silly (Master Archers don't even generate with
melee weapons, so they'd just try to punch you!)

--------------------------------------------------------------------------------
6f7e3dd176 | DracoOmega | 2024-04-01 18:07:37 -0230

Don't apply Gell's Gavotte to the other side of glass

--------------------------------------------------------------------------------
a0139969d6 | DracoOmega | 2024-04-01 18:07:37 -0230

Try harder not to give ghosts Gell's Gravitas

--------------------------------------------------------------------------------
4be4bdcb63 | DracoOmega | 2024-04-01 18:07:37 -0230

Remove Piledriver -move, rescale damage, lower to level 3
Initial balancing of this spell was far too conservative. Players were
wary of using it because of the -move after cast and the damage payoff
was generally not good enough to make it enticing. I could adjust those
things, but -move isn't very popular in general, so let's see if the
unique aiming restrictions keep it from being too powerful even without
any cooldown or downside attached.

I have rescaled the damage-by-distance formula so that close range
piledrivers are less effective than before (though max range ones can
be somewhat *more* effective than before, depending on power) and lowered
it to level 3. The hope is that this better addresses some of Warper's
weak earlygame and entices more translocations investment. It may also
benefit from being further away from the more flexible Vhi's.

We'll see how this version fares.

--------------------------------------------------------------------------------
730d1222b3 | David Lawrence Ramsey | 2024-04-01 13:06:03 -0500

Add another flower name to artefacts.

--------------------------------------------------------------------------------
cfddb08e57 | David Lawrence Ramsey | 2024-03-30 20:07:42 -0500

Fix reference to Margery in Maggie's speech.

--------------------------------------------------------------------------------
23b751d0ae | SentientSupper | 2024-03-30 16:42:58 -0500

Refactored randart staves tile fix (Ge0ff)

--------------------------------------------------------------------------------
d694a166fc | SentientSupper | 2024-03-30 16:42:58 -0500

Fix an issue with randart staves in local tiles
When an item that has a randomized appearance (potions, staves) on the
floor is rendered, the item's main tile is actually the "brand". The
randomized tile gets added on later by calling add_main_tile which
calls tileidx_known_base_item on the main tile when. This is a hack,
but it lets you see the brands of identified items on the ground.

However with randart staves, the main tile gets put in the special tile
slot instead. Normally this won't cause any issues, but the local tiles
inventory renders items as if they were on the ground. It calls
add_main_tile on the special slot which then renders the randomized
staff appearance on top of the randart staff tile.

Fixed by not doing this for special tile slots.

--------------------------------------------------------------------------------
3df4fa4a82 | David Lawrence Ramsey | 2024-03-30 16:27:07 -0500

Fix typo.

--------------------------------------------------------------------------------
59262bdc9b | Nicholas Feinberg | 2024-03-29 13:45:54 -0700

Cut Permafrost Eruption damage by 20%
The initial numbers for this spell were intended to err on the side of
'too powerful'. And they were! Now that playtesting confirms the spell
is strong, let's pull back on its damage a bit. The goal is for it to
still be strong, just a bit less so.

--------------------------------------------------------------------------------
e202e49faa | David Lawrence Ramsey | 2024-03-29 00:12:13 -0500

Rename obsolete tile refs to Poisonous Vapours.
It was renamed Mercury Vapours awhile ago.

Also add a placeholder tile for Mercury Vapours: a palette-shifted
version of the Poisonous Cloud tile instead of a straight copy of it.

--------------------------------------------------------------------------------
877066f4b4 | David Lawrence Ramsey | 2024-03-28 16:15:19 -0500

Add foul flame to _chaos_beam_flavour().
To match the chaos_types flavour list in attack::random_chaos_brand().

--------------------------------------------------------------------------------
f73ac73325 | DracoOmega | 2024-03-28 16:24:06 -0230

Remove Gell's Gravitas from players/monsters
It was fun enough to let players who had it from old versions play around
with infinite tambourines for a bit, but if it's causing actual crashes
from ghosts which still possess the spell, I really ought to just remove
it.

Fun fact: while old Gravitas was technically implemented as a monster
spell, due to a non-functional tracer, monsters would never actually think
it would damage anything, and thus never cast it (even though casting it
could have worked). This may have always been broken, for all I know.

--------------------------------------------------------------------------------
153ae1a8d6 | DracoOmega | 2024-03-28 01:05:11 -0230

Don't crash on gavotting a dead monster
The pushing order is sorted so that this shouldn't happen from Gavotte
itself, but some scenarios (such as lost souls sacrificing themselves to
save something else that was just pushed into a wall) can result in
monsters dying prematurely, resulting in a crash.

This fixes #3739

--------------------------------------------------------------------------------
107c3107db | SentientSupper | 2024-03-27 23:22:41 -0230

Fix pressing f twice to aim quivered Dr breath
Previously pressing f with a quivered breath would not let you start
aiming your breath until you pressed it again.

--------------------------------------------------------------------------------
0cd9e5b168 | Wizard Ike | 2024-03-27 22:59:06 -0230

Fix jinxbite doing extra attacks

--------------------------------------------------------------------------------
b5af3dc018 | yrdzrfxndfvh | 2024-03-27 20:25:49 -0500

add Charlatan's Orb to shop of orbs

--------------------------------------------------------------------------------
c35c0dd17b | DracoOmega | 2024-03-27 21:38:50 -0230

Rename a couple things for improved clarity
Also don't display 'it is liquified' when moving the cursor over tiles of
mud, only Leda's proper.

--------------------------------------------------------------------------------
1478e51eec | Monkooky | 2024-03-27 21:38:50 -0230

Fix grey drac breath display
Removes a <liquefied> from the display that was appearing as-is. Also,
don't display leda's text for mud and make mud show liquiefied description.

[Committer's note: squashed and edited typoes]

--------------------------------------------------------------------------------
a0577c09bc | Monkooky | 2024-03-27 21:38:49 -0230

Simplify liquefaction
Leda's Liquefaction would set a 'liquid' flag for all tiles in range; then
for non-water empty tiles would set the mechanically relevant
'liquid_actual' flag.

The only read of either flag is through the 'liquefied' function, which
would disregard water tiles and non-empty tiles. Line 694 would never
return true, a line 688 would pre-empt it and return false.

--------------------------------------------------------------------------------
165e151e72 | wheals | 2024-03-28 00:29:54 +0200

fix: crash on loading a coglin with ring of flight (#3728)
Fixes #3728

--------------------------------------------------------------------------------
e9ae430426 | David Lawrence Ramsey | 2024-03-27 11:33:36 -0500

Allow memorising Piledriver v/no targets (#3737).

--------------------------------------------------------------------------------
b0a091d592 | David Lawrence Ramsey | 2024-03-27 00:16:01 -0500

Fix spelling.

--------------------------------------------------------------------------------
2009358679 | David Lawrence Ramsey | 2024-03-27 00:02:06 -0500

Fix wording.

--------------------------------------------------------------------------------
58459ad016 | David Lawrence Ramsey | 2024-03-26 23:42:36 -0500

Fix indentation.

--------------------------------------------------------------------------------
05aacc5516 | DracoOmega | 2024-03-27 00:57:51 -0230

Fix typo (ragingrage)

--------------------------------------------------------------------------------
adc223dc64 | David Lawrence Ramsey | 2024-03-26 22:18:46 -0500

Fix spelling.

--------------------------------------------------------------------------------
4c6cd3ffef | David Lawrence Ramsey | 2024-03-26 22:17:12 -0500

Tweak wording.
Referring to both "the caster" and "you" as the same entity in the same
sentence is awkward.

--------------------------------------------------------------------------------
e0dfd15e89 | DracoOmega | 2024-03-27 00:13:16 -0230

Shuffle new spells into books
(And swap out Warper Manifold Assault for Piledriver)

--------------------------------------------------------------------------------
b106c4ab2c | DracoOmega | 2024-03-27 00:13:16 -0230

Make Piledriver display damage in a more maintainable way

--------------------------------------------------------------------------------
24355c9986 | DracoOmega | 2024-03-27 00:13:15 -0230

Improve IMB collision damage description
The previous method was too long to fit into the main spell list and would
get cut off in the middle. Instead, just show the main damage there and
show a more verbose description (including collision damage) in the full
spell description.

--------------------------------------------------------------------------------
e52afbec85 | DracoOmega | 2024-03-27 00:13:15 -0230

Gell's Gravitas -> Gell's Gavitambourine
Gell's Gravitas has been in an awkward place for many years. It's
conceptually cute, but generally agreed to be one of the weakest spells in
the game, and there are implementation issues with making how it works
transparent to players (eg: beam paths often mean that monsters the player
expects to get pulled do not, and even if they do, they may move
immediately afterward, making it *appear* as though they did not). I tried
rewriting it in various ways, but it always felt like it was stepping on
the toes of another spell in the same school that did that things better.
IMB and Dispersal are both much better at getting things away from the
player, Piledriver is (hopefully!) a more direct and intuitive way to slam
monsters into walls for value, and Gavotte can do that at a larger scale.

However, by turning it into an evocable effect, we may be able to lean into
the 'gather monsters into one place' facet more effectively than one could
from a repeatable effect, as well as improving direct damage without
concerns that it's in the wrong school for that. Hence, the tambourine!
(Because I also cannot resist a silly portmanteau)

The tambourine is smite-targeted in a large radius (that scales with evo)
and tries to pull every monster in that radius into as small an area as
possible, then holds non-friendly ones in place there for several turns, as
well as dealing some immediate (non-collision-based) damage to them.

It currently alternates with phial of floods as a 'control' evoker, though
once the pool of evokers expands just a little bit more (which I'm still
hoping to do in 0.32), I'd like to remove these '1 of 2' pools from evokers
and just pull 5 at random from the entire list. I think it's better for run
variety and I don't see the need to guarantee an even distribution of
evoker roles (or even power) from run to run in the same way that it makes
sense for wands (since those are a bread-and-butter early toolset).

(I also realize we've never had proper names in evokers before, but at this
point they're *basically* unrands - coloring and all - so it's probably
fine, right?)

The tile is... very placeholdery, but I tried my best. >.>

--------------------------------------------------------------------------------
90288d38ae | DracoOmega | 2024-03-27 00:13:15 -0230

Gell's Gavotte (new level 6 Translocations spell)
A different take on gravity manipulation, intended to provide a fun and
novel tool between level 4 and the new climb to level 7 Manifold Assault.
This spell lets the caster temporarily reorient gravity in a cardinal
direction of their choices, moving *everything* that isn't tied down 4
tiles in that direction, potentially falling into walls and each other.

'Everything' includes the caster, so it can be used for repositioning in
some situations, but keep in mind that enemies will usually follow in
lockstep with you unless you cast it from a position where they will bump
into walls instead of being able to follow you.

Enemies only take collision damage if they move at least one space from
this effect (so no bashing things against the sides of a 1-tile hallway)
and there is a several cooldown after casting it to prevent using it
repeatedly to leap across long distances.

Nevertheless, it's a tool that is multipurpose - repositioning yourself,
doing damage, lining up enemies together for other spells. And one that
does so via unique mechanisms that will hopefully be fun to play with.

(The targeter helpfully hilights which monsters will take collision damage
when the spell is aimed in a given direction, rather than asking the
player to count distances themselves)

--------------------------------------------------------------------------------
d8d983544c | DracoOmega | 2024-03-27 00:13:15 -0230

Move Manifold Assault to level 7, attempt to buff accordingly
Manifold Assault is a fun and popular spell, and having spells that
interact directly with weapon combat is good, but the combination of how
well it scales in lategame and how little investment is needed for many
characters to pick it up by that point is somewhat flattening - it's an
easy and powerful tool for a lot of characters to splash and there's little
reason for those characters ever not to (especially since spellpower
mattered very little for it, in practice)

This commit makes Manifold Assault a lot more of a commitment to get
online, but ideally leaves the spell still feeling powerful and rewarding
when one does so. Compared to its previous incarnation, it now hits twice
as many targets per cast (and scales to hit even more at >100 power), and
can never miss. If this leaves it insuficiently exciting at its new level,
additional buffs will be considered. (I have retained the 'unarmed attacks
hit 1/2 as many things' for now, though I'm not sure whether or not that's
necessary at level 7?).

(Autumn Katana still only hits 4 things at once with its proc, though those
hits will now never miss)

--------------------------------------------------------------------------------
8d86919e2e | DracoOmega | 2024-03-27 00:13:15 -0230

Maxwell's Portable Piledriver (new level 4 Translocations)
Intended as a replacement for Manifold Assault as a lower level combat
oriented translocations spell (that scales less well, but needs less combat
skill to function).

It automatically grabs an enemy in melee range, and propels both it and
the caster in that direction until hitting another monster or a wall (or
reaching max range). It does damage via collision only, but that damage
is increased based on how far you've travelled.

Targeting is automatic, and it will pick the enemy who has the longest
unobstructed path to another enemy or wall (to prevent it being far too
commonly unusable with multiple adjacent enemies, where most available
targets are unproductive).

The caster gets -move after using it, proportional to the distance
travelled, and it cannot be recast while you have -move. This is to make it
primarily useful for offensive purposes and short-term repositioning
without being a good way to run away from things (it should always be a net
reduction in long-distance movement speed).

I realize this is similar to Vhi's in several ways, but rather than being
redundant with it, I think they actively complement each other. Piledriver
can target only enemies which Vhi's cannot, moves enemies when Vhi's only
moves the player, and they combo well together - being able to Vhi's into
an enemy to then piledrive it into a wall, or using Vhi's to escape after
doing so (since it bypasses -move)

--------------------------------------------------------------------------------
e6577ed3b2 | DracoOmega | 2024-03-27 00:12:53 -0230

Refactor a couple spell animations
A number of spells that flashd an individual tile as part of their
animation (eg: scorch) were using mostly-duplicated code to do so. This
pulls that out into a separate function so that it's easier to reuse.

(There are a couple other places that could *maybe* make use of this, too,
but these were the most simple and obvious)

--------------------------------------------------------------------------------
583ece5c49 | DracoOmega | 2024-03-27 00:12:53 -0230

Slightly refactor ENCH_BOUND handling
Fathomless shackles bind is directly marked instead of assuming that all
non-sigil binding is from Shackles. (So that -move can be used in other
context without side-effects)

--------------------------------------------------------------------------------
9d3c0f8a62 | SentientSupper | 2024-03-27 00:12:52 -0230

Describe spellpower effects on IMB and Gell's

--------------------------------------------------------------------------------
4c2c1c8b4a | SentientSupper | 2024-03-27 00:12:52 -0230

Describe collision damage for spells
This includes gravitas and IMB.

--------------------------------------------------------------------------------
bbb8fdbe59 | Monkooky | 2024-03-26 09:35:26 -0700

remove some meat
meat_and_reaction needed a quantifier preceeding it, unlike fruit_and_reaction. 
This was confusing and caused repeated errors, so we're changing it.

Also sneaking in a haggisification of death yak sausage

--------------------------------------------------------------------------------
4648e6c457 | David Lawrence Ramsey | 2024-03-25 19:57:53 -0500

Fix spelling.

--------------------------------------------------------------------------------
1216c0e361 | David Lawrence Ramsey | 2024-03-25 19:56:40 -0500

Fix typo.

--------------------------------------------------------------------------------
4d5e64a94f | Monkooky | 2024-03-25 22:01:34 -0230

Make forms adjust hunger (#3720)
[Adds support for form-specific food messages, and messages for some forms.
Makes messages fall back to species-based eating for forms that lack
specific messages. Also, a minor fix to spriggan fruit sampling, and a
new message for draconians.]

[Committer's notes: Squashed the commits together. Added a shared template
position for shared lines (carnivore, shortness, inediate), for more
cleanliness and further additions in the future, redid spacing, and
alphabetized both entries. Commented a little further, added a line for
storm form, and adjusted blade form's meat eating message a little further.

Merges #3720.]

--------------------------------------------------------------------------------
f1ef24bf73 | Monkooky | 2024-03-25 22:01:34 -0230

Update orp_of_zott (#3729)
Use the Charlatan's orb instead of a random randart orb, as it fits the
joke of the vault better.

[Committer's notes: Squashed commits together, fixed a missing FTILE
assignment, scattered items a bit further away from the stair / "orb"
placements, and cleaned out some unused glyph lines while I'm here.

Merges #3729.]

--------------------------------------------------------------------------------
8d3e27d251 | David Lawrence Ramsey | 2024-03-25 16:25:24 -0500

Make Ctrl-\ wizard command work on local tiles.
And add explanatory comment about the non-letter control sequences that
work on console.

--------------------------------------------------------------------------------
410066aba4 | David Lawrence Ramsey | 2024-03-25 08:04:39 -0500

Remove Jiyva's conversion penance check.
Since there's no way to get penance under Jiyva anymore.

--------------------------------------------------------------------------------
5ca9e1acf1 | David Lawrence Ramsey | 2024-03-25 07:58:52 -0500

Don't let Jiyva convert shapeshifters.
Since they aren't guaranteed to stay in jelly form.

Closes #3730.

--------------------------------------------------------------------------------
eaf45d8e21 | SentientSupper | 2024-03-24 21:29:40 -0700

Describe mindburst and pain damage
In monster spell description.

[Committer's note: refactored.]

Closes #3709.

--------------------------------------------------------------------------------
4b62edca99 | Nicholas Feinberg | 2024-03-24 21:21:26 -0700

Fix: remove fired missiles
From the docs. (Since ranged weapons no longer use ammo.)

--------------------------------------------------------------------------------
0a3110eadd | Nicholas Feinberg | 2024-03-24 21:20:31 -0700

Update drop_disables_autopickup docs

--------------------------------------------------------------------------------
ac1af34cca | SentientSupper | 2024-03-24 21:19:35 -0700

Improve drop_disables_autopickup behavior
Don't disable autopickup when dropping missiles because missiles with
different brands share the same base type.

--------------------------------------------------------------------------------
984978c3b2 | SentientSupper | 2024-03-24 21:18:36 -0700

Add zot.cc to vcxproj

--------------------------------------------------------------------------------
65f7d67da1 | NormalPerson7 | 2024-03-24 21:17:47 -0700

Show coglins' offhand weapon in the WebTiles interface
Add a second weapon line for coglins to the WebTiles interface, just
below the normal weapon line and above the quiver, which is hidden in
all cases where you don't have an offhand weapon equipped.

This works differently from console/offline tiles, but I personally
think this is how those formats should work too. (Currently, they
have both weapons listed on the same line, which gives each weapon
awfully little space for its properties, or in the case of artefacts,
even just the name can be too long.)

--------------------------------------------------------------------------------
aba3a3cf60 | RypoFalem | 2024-03-24 20:42:31 -0700

fix: Solve the Mara Hall problem
(DracoOmega named this the "Mara Hall problem" and I love that so I'm
using it here.)

Before this commit, when Mara summoned two illusions of himself, he
would have a 1/2 chance of swapping positions with each illusion
consecutively. This led to a spoilery outcome where you had better odds
of attacking the real Mara if you attacked one of the Maras at the new
positions as demonstrated below:

Call Mara's original position 'a', the position of the first illusion
'b', and the position of the second illusion 'c'.

1st action 2nd action Result position
swap(1/2)  swap(1/2)  c(1/4)
dont(1/2)  swap(1/2)  c(1/4)
swap(1/2)  dont(1/2)  b(1/4)
dont(1/2)  dont(1/2)  a(1/4)

You can see here that the probabilities of the true Mara being at
position a and b are both 1/4 while the sum of the probabilities of Mara
being at position c are 1/2. I don't know of any way position c and b
can be distinguished, but you can usually distinguish position a because
that's where Mara starts. Knowing this, you know that you have equal or
greater odds of attacking the true Mara if you switch from attacking the
Mara at the original position to one of the ones at the new positions.
Like with the Monty Hall problem, you should always switch!

This commit keeps the 1/2 swap chance for the first illusion but uses
1/3 chance for the next potential swap. (and 1/4, 1/5, 1/6, etc for
subsequent swaps but Mara only makes two clones so that never happens in
practice) This evens out the odds as demonstrated by the new table:

1st action 2nd action Result position
swap(1/2)  swap(1/3)  c(1/6)
dont(1/2)  swap(1/3)  c(1/6)
swap(1/2)  dont(2/3)  b(1/3)
dont(1/2)  dont(2/3)  a(1/3)

Now the two c's sum to 1/3 and all three positions have an equal chance
of containing the true Mara!

[Committer's note: refactored.]

Closes #3722.

--------------------------------------------------------------------------------
29eef4237d | David Lawrence Ramsey | 2024-03-24 22:12:33 -0500

Add placeholder tile: equipped Charlatan's Orb.
It's player/hand2/orb2.png with the palette adjusted to better resemble
item/armour/artefact/urand_charlatan.png.

--------------------------------------------------------------------------------
4cabd7605a | Edgar A. Bering IV | 2024-03-24 17:27:28 -0700

move putrid mouths to lightred in console
Having spectral things and putrid mouths on the same glyph caused a
variety of legibility problems. Lightred W is free currently and has a
rough alignment with the tile, so let's go with that.

--------------------------------------------------------------------------------
0e82a1035d | regret-index | 2024-03-24 18:47:53 -0230

Add sticky flame to Hints Mode (PleasingFungus)
While moving around or moving into water is already mentioned in the
earliest user's description, the status's descriptions, and all of the
player and monster spells' descriptions, we clearly haven't emphasized it
enough for many people to have noticed the change. While it'd be quite
intrusive to mention it whenever one's lit on fire (since it'd bleed
across multiple console lines), people in hints mode are already getting a
large amount explanation attached to various matters, and bombardier
beetles are quite early, so, it's probably a good idea to make sure at
least those newcomers get told about this very directly.

--------------------------------------------------------------------------------
6c632cbfbc | regret-index | 2024-03-24 18:30:23 -0230

A few more monster-based skill titles (yrdzrfxndfvh), some tidying
With some minor adjustments, this takes some of the titles that weren't
weaker monsters, overly jokey in tone, or weird implications of changing
physiologies on non-Draconians, from #3712.

 * 27 Fighting Humans of Makhleb - the Hell Knight
 * 27 Unarmed Octopodes - the Crusher
 * 27 Armour Trolls - the Iron Troll
 * 27 Shields Spriggans - the Defender
 * 27 Fire Magic Gargoyles - the Molten
 * 27 Invocations Draconians of TSO / Ely / Zin - the Pearl Dragon

These should be relatively straightforwardly understandable each. "Crusher"
is a little silly still as a reference to a removed monster, but it's
probably fine in the same way all the Felid unarmed titles shift away from
the regular unarmed titles also.

(While I'm here, I also sorted skills.cc's list of special titles to follow
the in-game display order of skills and the historical / enum order of when
species were added, rather than the orders of whenever people added these.)

--------------------------------------------------------------------------------
74a9d55e41 | regret-index | 2024-03-24 17:23:13 -0230

Mildly brighten up the obsidian bat tile
Various people have complained the tile doesn't contrast enough against the
relatively dark floors of the Orcish Mines. While obsidian bats are kind of
inherently a dark material with a near-black other use of it currently
present, a little bit of lightening this up should help without losing
much of the flavour.

--------------------------------------------------------------------------------
d708a3a1bf | David Lawrence Ramsey | 2024-03-24 14:12:44 -0500

Add Charlatan's Orb status description.

--------------------------------------------------------------------------------
456b196249 | David Lawrence Ramsey | 2024-03-24 14:12:44 -0500

Add inscription for Charlatan's Evocations boost.
And order the descriptions of the orb's capabilities properly.

--------------------------------------------------------------------------------
f510db4c87 | David Lawrence Ramsey | 2024-03-24 14:12:44 -0500

Make the Charlatan's Orb actually glow.

--------------------------------------------------------------------------------
240068c231 | Monkooky | 2024-03-24 14:12:44 -0500

Add unrand Charlatan's Orb
Adds a new unrand which boosts evocations, but delays teleports and
reduces stealth in the same way as the Orb of Zot.

This unrand serves two purposes besides thematic appeal; firstly it
provides a preview of the less obvious effects of the Orb status, and
secondly provides an equipment based means of boosting evocables.

[Committer's notes: Fixed punctuation and formatting, and did
checkwhite.]

--------------------------------------------------------------------------------
b728d0252e | David Lawrence Ramsey | 2024-03-22 22:57:31 -0500

Fix capitalisation.

--------------------------------------------------------------------------------
74ea0c1b11 | David Lawrence Ramsey | 2024-03-22 22:38:21 -0500

Fix comment typo.

--------------------------------------------------------------------------------
4c8b870234 | David Lawrence Ramsey | 2024-03-22 19:16:16 -0500

Remove obsolete reference in Orb status.
The Orb of Zot hasn't interfered with Passage of Golubria since 1899a4c4.

--------------------------------------------------------------------------------
315f82d515 | David Lawrence Ramsey | 2024-03-22 06:32:58 -0500

Fix punctuation.

--------------------------------------------------------------------------------
0968bab981 | Kyle Rawlins | 2024-03-21 12:57:48 -0400

fix: further webtiles startup sequencing issues
In particular, webtiles.pid has to be written after shed_privileges. I'm
fairly confused because I thought I'd duplicated the order exactly with
this part, but I guess not.

--------------------------------------------------------------------------------
41daaf438a | Kyle Rawlins | 2024-03-21 12:40:57 -0400

fix: missing `self.`

--------------------------------------------------------------------------------
c80f89d3a0 | Kyle Rawlins | 2024-03-21 12:37:09 -0400

fix: server startup sequencing issues
The previous code was accidentally deleting pidfile before the startup
step....

--------------------------------------------------------------------------------
06071df075 | Kyle Rawlins | 2024-03-21 12:37:09 -0400

Revert "fix: move `shed_privileges` later in webtiles setup"
The cert problem I was worried about isn't fixed by this, and moreover,
shedding privileges so late on a new install results in a bunch of files
owned by root that shouldn't be.

This reverts commit b001dabdc76911c4204983db9db46ef477979ecf.

--------------------------------------------------------------------------------
7a0cf5b9ff | Kyle Rawlins | 2024-03-21 12:37:09 -0400

fix: improve logging message

--------------------------------------------------------------------------------
68839bf7ff | David Lawrence Ramsey | 2024-03-21 11:14:47 -0500

Reword Ash cursed item desc.
Cursed items normally can't be enchanted, since they become artefacts,
but now we have Mountain Dwarves, who can enchant artefacts.

--------------------------------------------------------------------------------
8da92d5247 | David Lawrence Ramsey | 2024-03-21 09:16:09 -0500

Remove now-unused now_is_morning() function.

--------------------------------------------------------------------------------
23d0647428 | David Lawrence Ramsey | 2024-03-21 08:56:28 -0500

Remove now-unneeded #include (yrdzrfxndfvh).
skills.cc only needed misc.h for now_is_morning(), which was only used
for some Meteoran titles, and now Meteorans are gone.

Note that now_is_morning() is currently unused by anything.

--------------------------------------------------------------------------------
524b7c7fd8 | Kyle Rawlins | 2024-03-21 09:24:50 -0400

fix: quiet a dgl-build-specific warning

--------------------------------------------------------------------------------
766f10fcc8 | SentientSupper | 2024-03-21 08:18:37 -0500

Clear dimensional bullseye when apostle yields
Include ENCH_BULLSEYE_TARGET in timeout_enchantments.

--------------------------------------------------------------------------------
4d9a32fa43 | SentientSupper | 2024-03-21 08:08:40 -0500

Make allies avoid pressure plate traps
Consider pressure plates to be bad for the player because they spawn /
uncage monsters that attack the player so that allies avoid stepping on
them.

--------------------------------------------------------------------------------
303fdf7e8e | David Lawrence Ramsey | 2024-03-21 07:55:35 -0500

Adjust Blork the orc description/dialogue.
His rainbow-coloured suspenders were a magical cast-off from a wizard,
and they transferred power to him beyond that of an ordinary orc. But
they also made him a little mad, and colour-obsessed.

--------------------------------------------------------------------------------
b0e0dd98ef | David Lawrence Ramsey | 2024-03-21 07:53:24 -0500

Remove Jiyva's no-hurting-jellies conduct.

--------------------------------------------------------------------------------
93c155cd69 | David Lawrence Ramsey | 2024-03-21 07:53:24 -0500

Remove Fedhas' no-hurting-friends conduct.
Since they protect plants from harm, and the only friends you have
under Fedhas, that they care about, are plants.

--------------------------------------------------------------------------------
a5f95a5a20 | David Lawrence Ramsey | 2024-03-21 07:53:24 -0500

Make god protection work even with manual swings.
This affects Fedhas worshippers with plants, Hep worshippers with
ancestors, and Jiyva worshippers with slimes.

--------------------------------------------------------------------------------
95e1662365 | David Lawrence Ramsey | 2024-03-20 19:44:27 -0500

Fix punctuation.

--------------------------------------------------------------------------------
fa783ce77f | David Lawrence Ramsey | 2024-03-20 14:11:40 -0500

Fix monster info bot compilation (Ge0ff)

--------------------------------------------------------------------------------
ee37984d8d | David Lawrence Ramsey | 2024-03-20 12:13:11 -0500

Remove prototype of nonexistent function.

--------------------------------------------------------------------------------
5c25360fe0 | David Lawrence Ramsey | 2024-03-20 11:51:25 -0500

Fix spacing.

--------------------------------------------------------------------------------
7cbadc2d6b | David Lawrence Ramsey | 2024-03-20 11:45:53 -0500

Fix reversed resists/damage message order.
For cloak of flames, passive freeze, and foul flame melee attacks.

--------------------------------------------------------------------------------
b59af49cd9 | David Lawrence Ramsey | 2024-03-20 11:41:03 -0500

Constify variable.

--------------------------------------------------------------------------------
f47b1a0506 | Kyle Rawlins | 2024-03-20 09:39:50 -0400

docs: fix an obsolete comment in config.py
(To be honest, I'm not entirely sure if this parameter would *ever* have
an effect on webtiles, from reading tornado code.)

--------------------------------------------------------------------------------
3d70bf0cf2 | David Lawrence Ramsey | 2024-03-20 07:33:52 -0500

Print apostle damage numbers properly (Ge0ff)
When they're bad, print them before resetting them to zero.

--------------------------------------------------------------------------------
fc315c9ecd | wheals | 2024-03-19 22:46:22 +0200

fix: the build

--------------------------------------------------------------------------------
60f1b215fc | wheals | 2024-03-19 22:43:35 +0200

Try to really fix apostle damage tracking (Ge0ff)
I still have no idea how this slipped past the code that was supposed to be
fixing it up, but once it did the tag minor version check is worthless.

--------------------------------------------------------------------------------
c76ea14763 | Kyle Rawlins | 2024-03-19 15:53:42 -0400

fix: don't ignore `max_lobby_idle_time` setting
The accidental comparison caused this value to get set to 1, so lobby
timeouts were just always using `connection_timeout`.

--------------------------------------------------------------------------------
9ed4220b88 | Kyle Rawlins | 2024-03-19 15:29:06 -0400

feat: webtiles-internal https redirect option
This option lets you e.g. redirect http://server:8080 to
https://server:8443. There's various external ways of doing this, but
it's convenient when running webtiles on custom ports to simply be able
to set the redirect in webtiles options.

Note: after spending a bunch of time on this, I've concluded it's
essentially completely impossible within tornado to redirect a http to
https connection on the same port (or vice versa). It's a bit
unfortunate, as this would help with a bunch of scenarios that browsers
auto-manage when using 80/443, but it is what it is. See
https://github.com/tornadoweb/tornado/issues/523 for more info. Also,
tornado just hangs when you send a https connection to a http port,
apparently before the Application code gets access; I have no idea why
this is. But probably official servers will soon no longer use http
ports at all, so maybe not a worry.

--------------------------------------------------------------------------------
50abb8ab99 | Kyle Rawlins | 2024-03-19 14:44:33 -0400

fix: missing tuple wrapper
Also, slightly tweak default config

--------------------------------------------------------------------------------
3ef9c6c661 | David Lawrence Ramsey | 2024-03-19 11:12:09 -0500

Fix punctuation.

--------------------------------------------------------------------------------
234660e9f1 | David Lawrence Ramsey | 2024-03-19 11:11:19 -0500

Fix wording.

--------------------------------------------------------------------------------
5d9b134aa6 | David Lawrence Ramsey | 2024-03-19 09:58:22 -0500

Make effect/iron_shot_7.png 32x32.
Since it's supposed to be a horizontal flip of iron_shot_1.png.

--------------------------------------------------------------------------------
829d17d61b | Kyle Rawlins | 2024-03-19 10:32:09 -0400

feat: webtiles cli support for an ssl port
This is primarily to facilitate --live-debug tests. By its nature, I
haven't been able to test this commit locally beyond ensuring that it
doesn't break normal startup.

--------------------------------------------------------------------------------
b001dabdc7 | Kyle Rawlins | 2024-03-19 10:16:20 -0400

fix: move `shed_privileges` later in webtiles setup
SSL cert keys may be conventionally stored in a way that needs
privileges to access by default; don't force server admins to tweak
permissions on this file when copying into chroot.

--------------------------------------------------------------------------------
d9b930ba1b | Kyle Rawlins | 2024-03-19 10:14:53 -0400

fix: missing comma

--------------------------------------------------------------------------------
dd6cb82677 | Aliscans | 2024-03-19 08:43:42 -0500

Change the spelling of some words to Australian English.
Change a few places where a word used a spelling which is not spelt
correctly according to
https://www.australian-dictionary.com.au/wordcheck/.

This only changes things in places where the spellings may be displayed
to the user. I include the documentation in this. I haven't changed the
changelog or doc/develop, or any of the contrib stuff.

This changes:

channeling -> channelling

dueling -> duelling

offense -> offence

defense -> defence

skillfull/skillfully -> skilful/skilfully

willful -> wilful

--------------------------------------------------------------------------------
362cfcae2a | Edgar A. Bering IV | 2024-03-18 21:53:14 -0700

docs: clarify the prohibition against wishes (Alkali Man)
This sentence in the manual aims to explain why acquirement does not
offer wishes, but the wording is confusing for people not coming to
crawl from nethack. Re-write it to make it in the positive framing about
the randomization of acquirement instead.

--------------------------------------------------------------------------------
a6a9c15173 | orjb1 | 2024-03-18 23:54:01 -0230

Add guarded unrand Arga vault (#3702)
[Committer's note: Recoloured the metal in tiles, didn't do much else.
Quicksilvers are a good fit together with Arga (fast, non-elemental,
Will+ on the axe and scales both), so a straightforward vault's plenty
fine.

Closes #3702.]

--------------------------------------------------------------------------------
ec90db9d9c | regret-index | 2024-03-18 23:54:01 -0230

Throw together a placeholder Permafrost Explosion tile.
Mixes together the original RLTiles icon for Shatter, roctavian's icons for
Bolt of Cold and Ozocubu's Refridgeration, and ontoclasm's icon for
Hailstorm. Should at least emphasize it's an earth spell alongside ice.

--------------------------------------------------------------------------------
03d5c24375 | regret-index | 2024-03-18 23:54:01 -0230

Decorative boulders -> decorative piles of debris
There's been some consternation around the use of unmoving decorative
boulders in d9500d9. They list a speed if they actually moved (the speed
of BBB's use of the boulder) but don't move in and of themselves, and they
also show up in the monster list (because for some reason this isn't innate
to firewood). Outside of lingering implementation issues, they're awkwardly
not quite as difficult to destroy as bushes but still require manual effort
compared to the withering away of plants. They also collected a fairly
large amount of confusion and paranoia about them being made to roll in
some trap function or another, and while I'd like all of Crawl's unique
vault traps to rely on pressure plates eventually (c.f. e446cd8), players
will always have some confusion attached to such a re-use.

As such, I am replacing most of their uses with an entirely different
decorative feature altogether, to fulfill and further extend some of the
same spirit of earthen decor beyond different wall and statue tiles or yet
more and more piles of large rocks items and stone items around.

Piles of debris are meant to fulfill a immotile non-living rubble and ruin
position, akin to the expanded uses of pillars of salt. They behaves mostly
like plants (in that they will die several turns after being first hit),
with some minor tweaks. They have 40% of plant HP but light omniresistance
and non-zero AC, which makes it somewhat more plausible for them to be
destroyed advance of such collapsing if one can work around those defenses.
They count as amphibious, so they can be placed in deep water in vaults for
e.g. Shoals and Swamp. Finally, they also collapse into dust (sidestepping
the inquiries about it dropping stones or large rocks), which also means a
brief cloud of sparse dust when it's destroyed akin to chaos spawn and
simulacra. Hopefully, adding what is essentially another type of rare
firewood that more specifically implies wrecked ruins rather than overgrown
ones shouldn't raise the same issues re-using spell boulders did.

Their name and description are ironically enough somewhat up in the air:
I'm somewhat dissatisfied with both, and other devs may find-replace a
better name as long as the intent of "half-broken stonework" survives.
The tiles use a mix of the RLTiles earth magic spell icons (Sandblast,
Passwall, LRD, Shatter) and PleasingFungus's original placeholder tile for
rockslimes. Possibly some recolours would be reasonable for making them fit
into Slime or Desolation too, though I'm a little cautious about spreading
firewood a little too far in the broader scope of things.

--------------------------------------------------------------------------------
9ccf1647ab | regret-index | 2024-03-18 23:54:01 -0230

New Mines enemy: obsidian bat
Obsidian bats in both name and form are meant to further emphasize the cave
parts of the Orcish Mines, as well as emphasis the varied demonic threat
attached to both orc high priests and orc sorcerers. Aside from these fits,
they're also meant to punish how it's regularly easy (and slow) to flee
across the Orc:$ level away from the endvault unless a summoner rolls the
faster demons, a sorcerer rolls on paralysis, or the player's actually weak
enough to care much about (even post-buff) wargs post-Lair.

They're non-living faceless bats with rF++ that have a derivative of the
broodmother special- a AF_HELL_HUNT that summons either hell hounds or hell
rats on hit 66% of the time, capped at 3 out at once. They're quite a ways
weaker than broodmothers otherwise- in stats and damage somewhere between
unseen horrors and wargs, or possibly a blink frog band with heavy resists
if the player has no EV. Still, by being batty, they regularly step away
from the player to let their summons get in the way, a distinguishing
feature for a summoner that will probably also rather vex players. Their
defenses are probably their most notable feature- with passable AC and EV
on top of resists- but by the time one enters Orc a god or floor drops
should allow even alchemists to have some other option when facing them.

These spawn alone by themselves, taking a small chunk out of wargs as we
currently can't adjust due to CCF and ogres as people see plenty of much
earlier than Orc. (Possibly we should consider lowering Orc's monster count
the same way Lair does to handle the two new Orc enemies being a little
stronger than the average normal spawn.) A couple of thematically
appropriate demonic and lava orc vaults and ends place them, one of the
Volcano sets uses them on rare occasion, and they take yet another (much
smaller) slice out of Abyss abominations. Since we've got a lot of demons
already, I'd prefer these to stay relatively early and fire-centered rather
than used freely in most other vaults otherwise- anything that escaped out
of Hell from which pours out Hell itself should be a little special.

Their tile is by Sastreii.

--------------------------------------------------------------------------------
a2165e0cdb | regret-index | 2024-03-18 23:54:00 -0230

Recentish tile / decor adjustments
 * Porkolator: A border fix plus hex sparkles so it's not just A Pig.

 * Fathomless Shackles: Chain tweaks to emphasize their size in contrast to
   the smaller chains of Bind Soul.

 * Canine Familiar: A quick recolour to use the inugami's palette.

 * Coglin Gizmos: Chroma adjustments to help move the purple-pink-red
   options away from one another.

 * Scintillating statues: Animate them far less often, and tweak a
   placement, since they're evidently very distracting as entirely
   decorative features.

--------------------------------------------------------------------------------
281c7690d9 | regret-index | 2024-03-18 23:54:00 -0230

Another small vault batch
Really should clean out more of my drafts files at some later point.

 * Two Abyss entries, with thematically appropriate and Depths appropriate
   spawns, meant to vary up Abyss entries since mostly don't have enemies
   attached to them compared to the Pan and Hells entries.

 * A decorative Snake vault, trying to help reach the higher Snake decor
   count needed to make them always appear on Snake:$ to help vary up those
   floors more tangibly.

 * A couple more removed vault layouts revamped for other uses. A volcano
   layout used for a game-wide fire and earth vault, a dwarf vault used for
   another misc_elf_vault, and a Zotdef layout used for a Zot stairs vault.
   Would be nice to convert another two layouts of Zotdef into stair vaults
   with the same monster set set-up, eventually.

--------------------------------------------------------------------------------
33df2375a9 | Kyle Rawlins | 2024-03-18 18:04:48 -0400

fix: various issues with webtiles idle timers
Since sometime around 2a3aa404fa2d, the play idle timer has been broken.
The issue is essentially race conditions in checking whether a game has
actually started/stopped, where the idle timer was reset during game
startup but before it had fully started. This commit should make both
timers work in a way that is more robust to this issue. The other
problem is that 2a3aa404fa2d seems to have assumed that the connection
life check was only happening during play, which was incorrect. This
lets it work in the lobby, while spectating, and during play again.
The overall implementation is still somewhat painful, because no time is
really tracked in the lobby; possibly it should be.

I also changed the semantics of `max_lobby_idle_time` to match
`max_idle_time` a little better.

--------------------------------------------------------------------------------
4004213054 | Kyle Rawlins | 2024-03-18 14:58:34 -0400

fix: remove debug code

--------------------------------------------------------------------------------
ce6887170d | Kyle Rawlins | 2024-03-18 14:48:17 -0400

refactor: modernize/fix webtiles signal handling
The Tornado 6.4 release notes say: "`IOLoop.add_callback_from_signal` is
suspected to have been broken since Tornado 5.0 and will be removed in
version 7.0. Use `asyncio.loop.add_signal_handler` instead." This commit
is a direct reaction to that; we've certainly had some pretty flaky
shutdown behavior with the existing approaches. To update the signal
handlers with this suggestion, a bunch of other changes were necessary:

* Move all callback setup into an async function, start the ioloop with
  an asyncio call. This is Tornado's current recommended approach, so
  really this is a long-needed modernization.
* separate socket binding (non-async) from tornado server startup
  (async)
* it's no longer safe to directly call IOLoop.current().stop(); the
  means of triggering shutdown is therefore converted to (i) an Event
  that waits for sockets to close (fixing some other issues with the
  previous approach), and then (ii) code that cancels remaining tasks if
  this takes too long.
* a bunch of old back-compat is removed. This patch is relatively
  conservative, but does definitely assume asyncio.

This patch is still really far from any sort of asyncio conversion;
nothing except the main server start function is async.

--------------------------------------------------------------------------------
1b414cbff7 | Kyle Rawlins | 2024-03-18 14:01:07 -0400

refactor: update stale lock code
This modernizes this code a little bit for python 3, and also checks for
the existence of the process first before prompting the user about
"stale processes". When a server is force-shudown via kill -9,
lockfiles aren't cleared, and the previous version wouldn't actually
check if the pid was real until the 10s prompt had elapsed.

--------------------------------------------------------------------------------
0f6f1dd4b9 | SentientSupper | 2024-03-17 21:25:21 -0700

Fix cursed item background not being red
In local tiles. Should be fine for ISFLAG_CURSED to be included in
get_item_known_info now that the only source of curses is ash.

Closes #3683

--------------------------------------------------------------------------------
b0416c464d | SentientSupper | 2024-03-17 21:18:08 -0700

Display chance for wand of warping to blink
When targeting.

--------------------------------------------------------------------------------
00dc8146b4 | David Lawrence Ramsey | 2024-03-17 20:26:36 -0500

Fix spelling.

--------------------------------------------------------------------------------
fba4d74c8c | Nicholas Feinberg | 2024-03-17 15:38:37 -0700

Update CREDITS for bjo*
Per request: https://github.com/crawl/crawl/pull/3688#issuecomment-2002327035.

--------------------------------------------------------------------------------
77bb6d37f3 | SentientSupper | 2024-03-17 15:36:58 -0700

Show undead players as immune to polymorph

--------------------------------------------------------------------------------
5810ea11cc | SentientSupper | 2024-03-17 15:36:58 -0700

Show player as immune to charming with clarity

--------------------------------------------------------------------------------
903ea0f9b0 | Aliscans | 2024-03-17 15:36:02 -0700

Correct how the display_char option handles gems and gold.
DCHAR_ITEM_GOLD and DCHAR_ITEM_GEM were in a different order in
dchar_names[] (used by the "display_char" option) to the one in
dungeon_char_type, meaning that the option had unexpected effects.

Fix this, and add item_gem to the docs for this option.

--------------------------------------------------------------------------------
2cddf732a9 | DracoOmega | 2024-03-17 20:04:31 -0230

Fix a crash with ending constriction after level transit
If the constricted actor no longer existed, it would try to dereference
a null pointer. There's already checks deeper down to prevent the mid of
an nonexistant actor from doing things.

--------------------------------------------------------------------------------
6b6a0ea73c | David Lawrence Ramsey | 2024-03-17 15:05:24 -0500

Refactor Upheaval/Disaster Area's target skips.
Both will now properly skip over all targets they're harmless to.

(Before this, aiming Upheaval directly at a target it shouldn't damage
would damage it regardless, whether yourself or an elemental force.)

--------------------------------------------------------------------------------
1cb27b7edc | David Lawrence Ramsey | 2024-03-17 15:05:24 -0500

Disable prompt when self-aiming Upheaval.
Since it's supposed to be harmless to you.

--------------------------------------------------------------------------------
8d7d3c4e6d | David Lawrence Ramsey | 2024-03-17 15:05:24 -0500

Constify variable.

--------------------------------------------------------------------------------
c677e9a310 | David Lawrence Ramsey | 2024-03-17 15:05:24 -0500

Readd the Disaster Area radius limitation.
So it doesn't always blast everything in LOS.

--------------------------------------------------------------------------------
e6bea51fa9 | Monkooky | 2024-03-17 15:05:24 -0500

Remove Upheaval friendly fire
Makes Upheaval (and consequently Disaster area) do no damage to
Elemental Forces. Other allies are still affected, for thematic and
consistency reasons.

--------------------------------------------------------------------------------
6ff4911247 | Kyle Rawlins | 2024-03-17 12:35:50 -0400

fix: remove 3.12 from ci webserver testing
Unfortunately, pinned versions fro 3.8 are broken in 3.12 because of
package deprecation. I don't think our current version management for
these tests is a very good approach, but I don't have a fix right now.
So, temporarily disable 3.12 altogether. These tests currently don't do
much so it shouldn't be a big deal.

--------------------------------------------------------------------------------
14b72cc9fe | Kyle Rawlins | 2024-03-17 12:33:09 -0400

fix: further update webtiles tests
It seems that these tests weren't updated when webtiles code was
refactored into a subdirectory. It sort of doesn't matter, because
essentially all of our source code is excluded in tox.ini anyways. (What
is the point of having these tests when everything is excluded? I have
wondered this myself.)

--------------------------------------------------------------------------------
424f3ba4f7 | Kyle Rawlins | 2024-03-17 11:52:09 -0400

fix: update requirements files for webserver tests
This is for py38, we'll see if it works for other CI targets.

--------------------------------------------------------------------------------
bdd6c9c6ed | Kyle Rawlins | 2024-03-17 11:39:15 -0400

fix: convert CI macos pyyaml dep to homebrew
I have some reservations about this, but once any python stuff at all is
installed via homebrew, it becomes hard to go back.

--------------------------------------------------------------------------------
66263ccf9e | Kyle Rawlins | 2024-03-17 11:34:22 -0400

fix: update some CI python versions
Python 3.6 no longer works here. I believe we've gotten all servers past
eol python versions at this point, so it's safe to only test current
versions.

Also, I (conservatively) updated the python 3.7 installs for catch2
tests to 3.8. This could probably go further?

--------------------------------------------------------------------------------
93cc127212 | Kyle Rawlins | 2024-03-17 11:21:16 -0400

fix: possibly unbreak macos CI pip3 call
This will probably fix this immediate call, but it's unclear to me
whether the fixed version will install pyyaml in the right place.

--------------------------------------------------------------------------------
f73a246b04 | Kyle Rawlins | 2024-03-17 10:48:11 -0400

fix: reorder some CI steps
Homebrew and system installed python have an unfortunate interaction
from time to time. Most recent github statement on this:

https://github.com/actions/runner-images/issues/9471#issuecomment-1984202712

We already had a workaround in place from c6129fcb3f40, but it is not
working for the current round of the bug. I think reordering should be
the fix. Previously this CI issue must have triggered later in our build
process (currently unclear to me how; maybe the brew calls in the prior
step only recently triggered a dependency upgrade; right now the culprit
is libpng). This commit should ensure it is always triggered before any
brew calls.

--------------------------------------------------------------------------------
a50f3326c4 | Kyle Rawlins | 2024-03-17 10:21:08 -0400

fix: convert some string `+`s to `make_stringf`
Crawl string templating is all over the place, but imo using + for
templating is the worst of the available options.

--------------------------------------------------------------------------------
c8563f6773 | Nicholas Feinberg | 2024-03-16 22:24:38 -0700

Fix multiple spell list lettering (SentientSupper)
Spell lists with three or more sections (e.g. natural + magical +
wand spells) would be lettered incorrectly, as would various other
cases. Fix this by simplifying lettering.

--------------------------------------------------------------------------------
1ee7915d7e | SentientSupper | 2024-03-16 19:53:22 -0700

Display PE center targets with more opacity
Display permafrost center targets with more opacity. This includes a
nonstandard use of AFF_YES but I don't think any players would complain.

--------------------------------------------------------------------------------
66358920a5 | bjiorn | 2024-03-16 19:52:23 -0700

Fix max HP value in description of your ancestor
Previously the value was not up-to-date after gaining a level until your 
ancestor died and respawned.

--------------------------------------------------------------------------------
54de21ab35 | Nicholas Feinberg | 2024-03-16 19:49:42 -0700

Don't crash on \
Broken in 95338c156ce86d7b4b3cb89f98aa10beac2d877e etc.

--------------------------------------------------------------------------------
a9a889f0c6 | Nicholas Feinberg | 2024-03-16 19:37:57 -0700

Remove buggy handling for un-ID'd wands
This logic would hide *all* spells for monsters with un-ID'd wands.
Players should no longer ever see monsters with un-ID'd wands, so add
an assert instead.

--------------------------------------------------------------------------------
fbd0129fbb | Nicholas Feinberg | 2024-03-16 19:37:01 -0700

Fix momentarily un-ID'd monster wands (SentientSupper)
We had old monster info cached for a turn, meaning that you could see
ijyb come into view with 'a wand of flame', xv them immediately, and
see them holding 'a forked gold wand' instead.

--------------------------------------------------------------------------------
c23bbe546e | Nicholas Feinberg | 2024-03-16 19:14:02 -0700

Wand description refactoring
Following 0bf9c4c012e350145fa2752b77bbbcd8f03b9586.

--------------------------------------------------------------------------------
79873398bf | Nicholas Feinberg | 2024-03-16 19:02:23 -0700

Further revise wand spell descriptions
There's no good way to explain why players are affected differently
by some spells than monsters are, but we can try to be a little less
blunt than 0bf9c4c012e350145fa2752b77bbbcd8f03b9586.

Also, fix Fastroot's name. It's a pun!

--------------------------------------------------------------------------------
95338c156c | Nicholas Feinberg | 2024-03-16 18:57:41 -0700

Fix randart stave names (various)
Partially reverts 55136d7.

Closes #3685.

--------------------------------------------------------------------------------
1a05c61809 | wheals | 2024-03-16 22:53:23 +0200

Fix a crash after banishing a challenging apostle (Memoria, Ge0ff)

--------------------------------------------------------------------------------
63684f6103 | wheals | 2024-03-16 22:38:54 +0200

Update Beogh vengeance accounting when cloning (#3588).
Fixes #3588.

--------------------------------------------------------------------------------
65a1bb7473 | David Lawrence Ramsey | 2024-03-16 12:55:44 -0500

Fix comment typo.

--------------------------------------------------------------------------------
ad064519fa | NormalPerson7 | 2024-03-16 09:34:59 -0500

Add SH preview and standardise AC/EV/SH previews in descriptions
Previously, the AC change shown in item descriptions included
temporary effects such as Qazlal's AC+3 status or Ignis' fiery armour,
but the EV change did not include temporary changes.

This commit changes the AC preview to match that of EV
in not including temporary effects, and adds an SH preview, which also
does not include temporary effects. I figure that this is the most
consistent strategy, but if it is too confusing, we can always go the
other way. The most important thing is that it is consistent between
AC/EV/SH.

Additionally, with AC/EV/SH now allowed to take fractional values,
all items that affect AC/EV/SH will show the change in their
descriptions, except for non-artefact rings of protection/evasion
and amulets of reflection. E.g. shields of protection will now also
show the AC change, for completeness, and artefact rings of protection/
evasion and amulets of reflection will show their messages (because
strength and dex changes can affect flat bonuses on these items).

I have merged the old method of computing the AC change into the
more recent approach of fake-equipping the item, to simplify some code.

--------------------------------------------------------------------------------
0bf9c4c012 | SentientSupper | 2024-03-16 09:19:38 -0500

Show wand spells in monster description
Add placeholder tile for bolt of light and some new descriptions.

Tweak some wand spell descriptions. Charming and bolt of light will now
mention their effects on the player. Roots no longer mention an increase
in damage over time since that was removed in the constriction rework.

Add placeholder warp space tile from dolorous, based on an edited
UNUSED/gui/lugonu_bend_space.png with the palette of
item/wand/i-disruption.png.

[Committer's note: Squashed, and consolidated and edited commit
message.]

--------------------------------------------------------------------------------
1953ddba12 | SentientSupper | 2024-03-16 08:00:32 -0500

Don't leak magic if antimagic rolls 0 duration
Antimagic frequently rolls a duration of 0 on hits but will still print
the "magic leaks into the air" message which doesn't seem right to me.

--------------------------------------------------------------------------------
a344392067 | Wizard Ike | 2024-03-15 22:31:33 -0700

Fix summoned protean progenitors' spawns
Make their spawns summoned too.

[Committer's note: fixed comments and refactored slightly.]

Closes #3599.
Closes #3622.

--------------------------------------------------------------------------------
9e65270477 | SentientSupper | 2024-03-15 22:10:56 -0700

Add option to remove dropped items from autopickup
Adds a new option: drop_disables_autopickup which removes all dropped
items from autopickup automatically. A QoL thing that allows you to
drop items (especially from local tiles inventory panel) without
needing additional keypresses to enter the autopickup menu and disable
autopickup manually. Defaults to off.

--------------------------------------------------------------------------------
f7ae706393 | David Lawrence Ramsey | 2024-03-16 00:01:11 -0500

Fix comment typo.

--------------------------------------------------------------------------------
bc5cafa0a1 | SentientSupper | 2024-03-15 21:57:59 -0700

New tile for slug shots
Based on the iron shot tile but with less outline, and colors taken from
enchanted boomerangs. Feels weird for the hand cannon description to say
it shoots metal slugs while the actual tiles look like sling stones.

Closes #3641.

--------------------------------------------------------------------------------
49a1623ff6 | SentientSupper | 2024-03-15 21:52:08 -0700

Revert "Reduce the rarity of rings of slaying"
This reverts commit a5b73f788d0da6e87d89aed2e0f0753b06fca47e.

--------------------------------------------------------------------------------
0bc3202ee7 | SentientSupper | 2024-03-15 21:52:08 -0700

Reduce the rarity of rings of slaying
They're roughly 3x as rare as other rings for some reason and I don't
think they're good enough to be receiving such special treatment.

--------------------------------------------------------------------------------
05749c3a33 | SentientSupper | 2024-03-15 21:52:08 -0700

Lower the price of slaying rings
Rings of slaying are more than twice as expensive than other variable
strength rings despite being arguably not that much better.

Tone down its price to match other rings so it isn't often more
expensive than good randart rings that generate in stores.

--------------------------------------------------------------------------------
d24e9608d4 | SentientSupper | 2024-03-15 21:48:49 -0700

Buff Norris cast rates
Even after his previous buffs, Norris's killratio remains below 1%. In
an actual game, he shows up at a time when you're already steamrolling
most enemies, and then gets steamrolled.

Raise his draining gaze frequency dramatically so it can actually
outdrain your mp regen and also increase primal wave's cast frequency
slightly.

--------------------------------------------------------------------------------
55bdc6a8b1 | SentientSupper | 2024-03-15 21:45:53 -0700

Don't leak invisible monster location with PE
Fixes #3661

--------------------------------------------------------------------------------
c18e4ce02a | Nicholas Feinberg | 2024-03-15 21:44:30 -0700

Fix bound krakens (Talandazar)
Let them fly freely, not flop foolishly.

Closes #3461.
Closes #3674.

--------------------------------------------------------------------------------
7cc139b6fe | SentientSupper | 2024-03-15 21:23:30 -0700

Fix makh major destruction firing acid globs
Fixes an issue introduced by 926e5b6
Closes #3678

--------------------------------------------------------------------------------
4b9ed32530 | David Lawrence Ramsey | 2024-03-15 19:49:14 -0500

Fix typo.

--------------------------------------------------------------------------------
1d96ad090f | Nicholas Feinberg | 2024-03-15 15:34:52 -0700

Fix a shocking typo (Monkooky)

--------------------------------------------------------------------------------
4c840350cb | Nicholas Feinberg | 2024-03-15 15:33:15 -0700

Make the Elemental Staff check AC too
For consistency with other staves.

--------------------------------------------------------------------------------
d9da9a62e7 | Nicholas Feinberg | 2024-03-15 15:27:14 -0700

Make staff damage closer to other elemental damage
Most elemental damage checks AC - see 9e354a60c687 for a fuller
explanation of why, and why it's good to be consistent. Make elemental
staff damage do the same.

Staves of fire, cold, death, and poison all now check AC normally,
and all do +25% damage from their old values. Staves of air check
half AC (like other electric damage). Staves of conjurations and
earth already checked AC and are unchanged.

This is not intended to be a nerf or a buff to staff damage, just an
attempt to make AC's effects more intuitive. Numbers are subject to
change.

--------------------------------------------------------------------------------
84b946f976 | Nicholas Feinberg | 2024-03-15 15:16:41 -0700

Refactor staff damage

--------------------------------------------------------------------------------
55136d7841 | Nicholas Feinberg | 2024-03-15 13:43:28 -0700

Begin data-ifying staves

--------------------------------------------------------------------------------
ee0ae1bddf | SentientSupper | 2024-03-15 12:42:56 -0500

Don't let krakens into toxic bogs
Closes #3456

--------------------------------------------------------------------------------
7df3b1584c | SentientSupper | 2024-03-15 11:38:26 -0500

Don't evolve while undead
Closes #3535

[Committer's note: Dropped player::can_safely_mutate()'s temp
parameter's being explicitly set to true, since it defaults to true
anyway.]

--------------------------------------------------------------------------------
b3796b0532 | SentientSupper | 2024-03-15 07:47:55 -0500

Remove a random useless semicolon

--------------------------------------------------------------------------------
515539a894 | David Lawrence Ramsey | 2024-03-15 01:33:18 -0500

Add placeholder tile: Yred's lighting the torch.
This is an edited and palette-tweaked version of
UNUSED/gui/conjure_flame.png.

--------------------------------------------------------------------------------
016ad743e0 | Nicholas Feinberg | 2024-03-14 17:20:15 -0700

Don't crash on fog (rypofalem)

--------------------------------------------------------------------------------
77e4170d28 | David Lawrence Ramsey | 2024-03-14 17:47:03 -0500

Rename a god conduct to be more accurate.

--------------------------------------------------------------------------------
6768db42a9 | David Lawrence Ramsey | 2024-03-14 17:37:00 -0500

Remove unused "Desecrate Orcish Remains" conduct.

--------------------------------------------------------------------------------
9ec0c110ad | Nicholas Feinberg | 2024-03-14 11:41:02 -0700

Somewhat refactor god_protects
Add a reference-based implementation for common use cases.

--------------------------------------------------------------------------------
8cd13bf097 | SentientSupper | 2024-03-14 11:18:32 -0700

Make Jiyva protect jellies from harm
Jiyva's mpregen and mp/wild magic/int mutations support casters well,
but the random jelly spawns are especially annoying for casters. You
can't firestorm when a jelly decides to hug your target. You can't
shatter if there are jellies on the floor because there's a chance you
damage a jelly behind a rock wall and incur penance. You can't even
immolate at any time because a jelly could spawn and throw itself into
the flames. This is no fun and I'm changing that.

Jiyva now protects slimes from harm similarly to Fedhas with the
difference that you can't fire through slimes and they'll absorb
projectiles if you try to do so.

Jiyva also prevents immolation scrolls from affecting jellies because
using jellies as bombs is not cool (at least from Jiyva's
perspective).

Additionally, all god protection will protect from torment. Previously
this wouldn't have had an effect because plants and ancestors already
resist torment.

Based on 75f1ca80bcda43d3fbc33714f3299d0209dd9cc1 with changes.

[Committer's note: Did some refactoring and fixed some small issues.

We should remove J's no-hurting-jellies conduct next.]

Closes #3653.

--------------------------------------------------------------------------------
0fd22b6b0a | Nicholas Feinberg | 2024-03-14 09:24:07 -0700

Remove an unused variable (SentientSupper)
Obsoleted in 3d1ca0d2d81d10d4c5f25e9f2ea6d83abcc60257.

--------------------------------------------------------------------------------
60f233581c | David Lawrence Ramsey | 2024-03-13 23:46:13 -0500

Make foul shadow mut give a stealth bonus.
Like all other sources of umbra.

--------------------------------------------------------------------------------
0ab5258196 | elliptic | 2024-03-13 19:59:14 -0400

Remove steel elves (ge0ff)

--------------------------------------------------------------------------------
0a1840c5b1 | David Lawrence Ramsey | 2024-03-13 18:06:08 -0500

Restore separate umbra radii for Yred and Dith.

--------------------------------------------------------------------------------
c29ba85809 | David Lawrence Ramsey | 2024-03-13 17:37:53 -0500

Add better placeholder tiles for foul shadow mut.
These are derived from a combination of the foul stench 1 mutation tile
and the inner flame spell tile, with a few minor adjustments and the
palettes tweaked.

--------------------------------------------------------------------------------
6677626c59 | elliptic | 2024-03-13 14:50:05 -0400

Fix display of monster chance of hitting a player with positive SH

--------------------------------------------------------------------------------
9bfe03fe0b | elliptic | 2024-03-13 11:27:07 -0400

Decrease precision in display of AC/EV changes on gear swaps
From two decimal places to one decimal place, since nobody actually needs
that much precision. Currently the difference is computed with two decimal
places before being truncated, which means that it will say things like
"AC would increase by 2.2 (7.9 -> 10.2)" - I think this is better than the
alternative of making the displayed increase fluctuate between 2.2 and 2.3
as you equip/unequip unrelated armour.

--------------------------------------------------------------------------------
1ee5eff69a | elliptic | 2024-03-12 23:55:33 -0400

Smooth out draconian AC growth (rypofalem)
Previously draconians gained 1 AC on every third level while nagas gained
1/3 AC every level (relevant in combination with armour skill etc), even
though they had identical messages etc. It's unclear to me that this was
ever really intentional (could just be careless parenthesation), but it
mostly didn't matter prior to 5fa0bccb since draconians had very few
available sources of non-integer AC without Armour skill (mainly Ozocubu's
Armour). But now that it matters, let's be consistent. (Gargoyles also
have fractional AC gain already.)

This is effectively a 0.33 AC buff on average, but 5fa0bccb was a small
EV nerf to players who previously trained to dodging breakpoints, so this
seems okay.

--------------------------------------------------------------------------------
fc9fac7961 | SentientSupper | 2024-03-12 19:55:09 -0500

Unbug throwing nets
Once upon a time there lived two bugs in a cottage.

The first bug caused a third throwing net that nets a target that's
been netted and then netted again with a second net to get stuck on the
target without increasing the net duration but remain stuck after the
target breaks free, leaving behind a net that catches nobody but yet
cannot be picked up.

The second bug caused netting a target that's standing on top of a net
to merge the nets together, breaking both nets once the target breaks
free.

Now the cottage is on fire and both bugs are dead. Throwing nets that
hit a netted target will not net the target and nets that successfully
net a target will not merge with any nets on the floor.

--------------------------------------------------------------------------------
5386afd49c | SentientSupper | 2024-03-12 19:31:27 -0500

Make abyss exit spawning interrupt travel
At least in local tiles, an abyss exit spawning does not interrupt
autoexplore so you could press o and immediately find yourself 50 steps
away from an exit that just spawned even with a force more for the
message. This commit makes it that having an abyss exit or downstairs
spawn interrupts autoexplore.

--------------------------------------------------------------------------------
5fa0bccb63 | elliptic | 2024-03-12 17:46:24 -0400

Remove AC, EV, SH breakpoints
Previously raising Armour, Dodging, or Shields skill purely for the
defensive benefits (as opposed to decreasing penalties of armour/shields)
did nothing except at discrete points where it suddenly gave you one extra
point of AC (or EV etc). With most skills we try to avoid this sort of
breakpoint so that players gain less benefit from micromanaging skill levels.

Although AC, EV, SH were all already computed to high precision, an internal
value of 8.37 AC was rounded to 8 AC before being used for anything. This
commit changes that - now a value of 8.37 AC means that 8 AC will be used
63% of the time and 9 AC will be used 37% of the time. This type of random
rounding is already used to smooth out the effects of skills in various
other points, including the effect of weapon skill on weapon delay.

The precise internal value of 8.37 AC is currently only visible to the
player when examining an equipment item and seeing how swapping it in will
change their AC. Previously the game might have said "Your AC would decrease
by 1 (8 -> 7)" whereas now it might say "Your AC would decrease by 0.61
(8.37 -> 7.76)". The display of player AC/EV/SH everywhere else is rounded
down to an integer, similar to how weapon delay is displayed rounded down
to a multiple of 0.1. I think there's a decent argument that both weapon
delay and AC/EV/SH (after this commit) should be displayed with one extra
digit of precision "normally", but that can be a separate discussion.

A note on balance: in general I expect this to only have very minor effects.
Previously AC was rounded down to an integer, EV was rounded up,
and SH was rounded to the nearest integer. This means that for a "random"
character not paying attention to the breakpoints, on average this commit
will increase their AC by 0.5 and decrease their EV by 0.5, while leaving
SH unchanged. For a player paying close attention to both AC and EV
breakpoints, this commit will decrease their EV by 1 when they are at both
breakpoints, but help their AC and EV relative to that when they are
training between breakpoints. If there are any concerns about this being a
(minor) player nerf I'd suggest increasing EV by 0.25 or something like that.

--------------------------------------------------------------------------------
7accb7eaf3 | gammafunk | 2024-03-12 14:15:22 -0500

fix: Remove an ORIENT line from a vault (dolorous)
The vault wander_guarded_unrand_ratskin is in mini_monsters.des yet has
a float orient. It's perfectly fine as a minivault, since it's small and
has no weird issues with vault connectors, so remove that orient.

--------------------------------------------------------------------------------
5251a91aee | David Lawrence Ramsey | 2024-03-12 11:53:59 -0500

Put S.o.t.D.K. back in a Crypt vault.
This reverts commit 783e625e56036b44a4caa56aa6156ba30ca523d2.

--------------------------------------------------------------------------------
6270fc1253 | David Lawrence Ramsey | 2024-03-12 11:53:59 -0500

Revive grunt's old S.o.t.D.K. vault, adjusted.
It's renamed from grant_unrand_guarded_doom_knight to
grant_guarded_unrand_doom_knight, to match the naming of all the other
guarded unrand vaults in variable/mini_monsters.des.

This partially reverts commit 20c470eb4851b751f159898c8d60758f7ae9a1b8.

--------------------------------------------------------------------------------
f5658d774c | SentientSupper | 2024-03-12 11:53:59 -0500

checkwhite

--------------------------------------------------------------------------------
957ebe1dbe | SentientSupper | 2024-03-12 11:53:59 -0500

Update doom knight melee effect message
To account for the player being the victim.

--------------------------------------------------------------------------------
3634fed8bd | SentientSupper | 2024-03-12 11:53:59 -0500

Rework and bring back sword of the doom knight
Replace pain brand with the doom brand which causes it to inflict up to
10% of its victim's maximum health on hit. This does the opposite of
the sword of power, dealing more damage the tougher the foe you face
and avoids making you train necromancy for bonus damage when the weapon
has -cast.

Give it ^Drain to discourage swapping it in and out to use spells
because of -cast or only when you face a tough enemy like a unique
panlord.

Also make it evil because doom sounds evil and it was used by a yred
worshipper.

[Committer's notes:

This partially reverts commit 20c470eb4851b751f159898c8d60758f7ae9a1b8.]

--------------------------------------------------------------------------------
0418803318 | David Lawrence Ramsey | 2024-03-12 11:11:31 -0500

Add placeholder tile: wielded Scythe of Curses.
So that the item in question no longer erroneously uses the tile for the
wielded Finisher when it's not Finisher (although the tile is a
palette-tweaked and minorly adjusted version of the wielded Finisher
tile).

--------------------------------------------------------------------------------
316d9043ac | David Lawrence Ramsey | 2024-03-12 10:50:58 -0500

Don't redundantly flag some unrands as evil.
The Sceptre of Torment has the pain brand, the Sword of Zonguldrok has
the reaping brand, and the obsidian axe has the draining brand. These
three unrands are already evil by virtue of their brands, so they don't
need to be flagged as evil.

--------------------------------------------------------------------------------
804251a7fb | SentientSupper | 2024-03-12 09:54:38 -0500

Add punctuation to collisions, remove from misses
It's unclear to me why misses call attack_strength_punctuation when the
damage is always 0, so always use a period instead.

Make punctuation marks in collision messages vary with amount of damage
dealt. This is averaged for collisions between creatures. Collisions
can sometimes deal surprising amounts of damage and this better conveys
that!!

--------------------------------------------------------------------------------
c880bc24ad | David Lawrence Ramsey | 2024-03-12 08:41:40 -0500

Add "Brilliance" to a Crypt vault.
Since it's now tied to Yredelemnul lore-wise.

--------------------------------------------------------------------------------
93135e86f0 | David Lawrence Ramsey | 2024-03-11 23:41:12 -0500

Rename a vault.
wheals_unrand_guarded_autumn_katana is now
wheals_guarded_unrand_autumn_katana, to match the naming of all the
other guarded unrand vaults in variable/mini_monsters.des.

--------------------------------------------------------------------------------
7bd404cb94 | Nicholas Feinberg | 2024-03-11 18:10:16 -0700

Nerf Cigotuvi's Embrace (elliptic)
Since skeletons no longer rot, don't encourage hoarding them for
Embrace AC. I'm skeptical that anyone would do this, but let's just
be safe.

--------------------------------------------------------------------------------
e26c5dbc97 | David Lawrence Ramsey | 2024-03-11 14:49:28 -0500

Fix comment typo.

--------------------------------------------------------------------------------
73ff4a9562 | Nicholas Feinberg | 2024-03-11 12:42:08 -0700

Add two new books
To get us closer to the desired three-spells-per-book average,
add a Book of Movement and Book of Wicked Creation to depopulate
some of the more densely-packed books.

--------------------------------------------------------------------------------
75126f55eb | Nicholas Feinberg | 2024-03-11 12:11:47 -0700

New spell: Permafrost Eruption (L6 Ice/Earth)
It seems like it'd be fun to have an ice/earth spell. This one plays
with a targeting idea I've wanted to use for a while, an explosion
that automatically targets the largest clump of enemies onscreen.
(It'll never target anything adjacent to the player, which is a weakness.)

The spell does one physical hit to the whichever enemy is in the centre
of the blast, and another cold (AC-ignoring!) hit to that enemy and
everything adjacent to it. It's intended to encourage players to go into an
unusual school pairing by compensating for their school's weaknesses: Ice's
difficulty dealing with single targets, and Earth's issues with enemies
that have both EV and AC.

Damage numbers are first drafts, and Servitor support plus a proper tile
are TODOs.

--------------------------------------------------------------------------------
49d7e34f9b | Nicholas Feinberg | 2024-03-11 12:10:45 -0700

Add more files to the Xcode project
This is dubious and might break things. Apologies if so.

--------------------------------------------------------------------------------
c4f3efa9c8 | David Lawrence Ramsey | 2024-03-11 13:49:00 -0500

Improve fallback brand handling for "Brilliance".
It's supposed to have a unique brand, and fallback brand handling is
supposed to be done in the unrand definition. It's now replaced with a
randart eveningstar of pain if it's already been generated.

Accordingly, remove its fallback brand handling from
minmay_guarded_unrand_brilliance.

--------------------------------------------------------------------------------
7bcfc0ab29 | David Lawrence Ramsey | 2024-03-11 13:23:13 -0500

Fix spelling.

--------------------------------------------------------------------------------
100c63a273 | David Lawrence Ramsey | 2024-03-11 12:58:49 -0500

Fix build (why did this compile?) (WizardIke).

--------------------------------------------------------------------------------
cb3c702784 | patrick | 2024-03-11 10:33:27 -0400

Fix an error I made in the shops definition syntax
I made a recent update without fully testing all the possibilities.
I apologize to all those who have been harmed by my negligence.

--------------------------------------------------------------------------------
dc239d62e1 | David Lawrence Ramsey | 2024-03-10 17:06:06 -0500

Fix song/spoken word citations.
They use quotes, not underlines like book citations.

--------------------------------------------------------------------------------
a07e523f8f | Implojin | 2024-03-10 16:57:02 -0500

Add a brand inscription to the dragonskin cloak (ragingrage)

--------------------------------------------------------------------------------
3729bd50f8 | David Lawrence Ramsey | 2024-03-09 21:27:35 -0600

Add a quote for the sacrificial altar of Ru.

--------------------------------------------------------------------------------
ff75c0dad8 | David Lawrence Ramsey | 2024-03-09 16:18:21 -0600

Mark monsters w/foul flame melee attacks as evil.

--------------------------------------------------------------------------------
53a61d21a5 | David Lawrence Ramsey | 2024-03-09 15:53:58 -0600

Fix capitalisation.

--------------------------------------------------------------------------------
46848ad166 | David Lawrence Ramsey | 2024-03-09 15:24:09 -0600

Reformat a few lines of mutation data.

--------------------------------------------------------------------------------
09a337154d | Implojin | 2024-03-09 10:27:56 -0600

Fix rollpage mutation descriptions
These were missed in 0ebe13f60c.

--------------------------------------------------------------------------------
66fdcfdd25 | SentientSupper | 2024-03-09 08:09:09 -0600

Let armataurs with bardings and talons kick foes
Closes #3636

--------------------------------------------------------------------------------
0ebe13f60c | SentientSupper | 2024-03-09 08:07:37 -0600

Change short desc of rollpage mutation
Having two mutations MUT_ROLL AND MUT_ROLLPAGE share the same
short_desc means you can only interact with one of them in wizmode.

--------------------------------------------------------------------------------
e8a88695a4 | gammafunk | 2024-03-09 00:25:17 -0600

fix: WebTiles Health and MP spacing (particleface)
The changes in 8f7e8e6e inadvertantly removed the whitespace that comes
after the "HP:" and "MP:" stat labels in the HUD. This was a result of
incorrectly joining the span tags for these labels to the logical lines
of the span tags containing the numeric values portion of the display
for these stats.

This commit adds the new logical lines where necessary. It also removes
some newlines added in 8f7e8e6e that were inserted within the `<span>`
tag elements to allow for use of newlines without making new logical
lines. It's not that hard to work a few overly long lines, and having a
newline inserted after e.g. `<span` and before `>` looks extremely
dubious.

--------------------------------------------------------------------------------
3d30ec2550 | Nicholas Feinberg | 2024-03-08 19:28:08 -0800

Add banana bread (hellmonk)

--------------------------------------------------------------------------------
f59354a618 | David Lawrence Ramsey | 2024-03-08 19:00:11 -0600

Fix spelling.

--------------------------------------------------------------------------------
add1f40288 | David Lawrence Ramsey | 2024-03-08 18:46:01 -0600

Adjust Book of the Earth description.
Since mountain dwarves are back, but hill dwarves are not.

--------------------------------------------------------------------------------
a018e7e89e | Nicholas Feinberg | 2024-03-08 16:10:52 -0800

Remove protean progenitor sInv
Not at all clear to me why they had it, and not conducive to player
intuitions about which monsters do and don't see invisible.

--------------------------------------------------------------------------------
c4e8710386 | David Lawrence Ramsey | 2024-03-08 17:00:38 -0600

Adjust "Brilliance" description a bit.
To make it clearer that its old wielders are the ones being repulsed,
not its shadow.

--------------------------------------------------------------------------------
97ce250973 | David Lawrence Ramsey | 2024-03-08 13:26:27 -0600

Add a quote for the tower shield of Ignorance.

--------------------------------------------------------------------------------
2e395d4530 | David Lawrence Ramsey | 2024-03-08 11:07:38 -0600

Colour foul flame melee attacks properly.
Since they're now a super-umbra instead of an evil halo.

--------------------------------------------------------------------------------
9eff4c5b6e | patrick | 2024-03-08 11:27:27 -0500

Expand the inventory of the One-of-a-Kind Rings shop
We here at the One-of-a-Kind Rings corporate offices would like to
thank you all for your continued support of our franchise. We strive
every day to provide dungeon-goers with the finest of unique rings,
and with the recent advances in artefact-specification technology,
we're pleased to present an all-new addition to our inventories.

One-of-a-Kind Rings franchises will now generate one guaranteed
randart ring with a property that's usually unavailable on randarts.
These properties are:
    Repel Missiles, Clarity, rMut, SH+5, HP+X, and MP+X
    (where X for HP and MP can vary from +10 to +15; for MP, this
    is higher than the usual fixed value of MP+9).

Once again, thank you for your continued patronage.

--------------------------------------------------------------------------------
cc61e46a16 | patrick | 2024-03-08 11:01:26 -0500

Make an extremely important update to the shop def documentation
No doubt that thousands, perhaps millions, of lives will be saved from this.
No need to thank me.

--------------------------------------------------------------------------------
3542139ebd | David Lawrence Ramsey | 2024-03-07 23:11:23 -0600

Fix comment typo.

--------------------------------------------------------------------------------
01338f72df | Alex Jurkiewicz | 2024-03-07 21:04:18 -0800

Ignore non-.yaml files in games.d/
Use case: I disable forks by renaming them to `bcrawl.yaml.disabled`.
--------------------------------------------------------------------------------
3af422c12e | Quinten Konyn | 2024-03-07 21:02:33 -0800

Check for flight item removal safety on swap
When removing an item, `_safe_to_remove_or_wear` checked for
the safety of removing the item if it provided flight and the
player was above lava or deep water. However when swapping two
items, `remove` is false and the removal of the old item is
implicit. The function to check the safety of flight removal
`safe_to_remove` is not called in this case.

This commit adds a flight removal safety check in the branch of
`_safe_to_remove_or_wear` that has determined that we're swapping
out an old item, echoing the check that was already happening for
non-swap removal.

I added comments to both `safe_to_remove` checks, because it is
not immediately clear that only flight removal safety is checked by
that funciton. `_safe_to_remove_or_wear` has a comment stating that
it checks for stat zero and does not mention flight, so I wanted
to make sure the code doing something other than what that
comment says was clearly signalled.

Resolves #3502.

--------------------------------------------------------------------------------
ee4d739957 | David Lawrence Ramsey | 2024-03-07 21:13:22 -0600

Add a few more ancestor names.

--------------------------------------------------------------------------------
5f7579bffe | David Lawrence Ramsey | 2024-03-07 19:47:23 -0600

Adjust foul flame melee attack description.
Since it does extra damage to everything, mostly to holies and good god
worshippers, but that needs to be conveyed in limited space.

--------------------------------------------------------------------------------
8f7e8e6ef7 | Alex Jurkiewicz | 2024-03-07 17:42:26 -0800

fix: Update game.html tags
There were a number of `<div>` and `<span>` tags that were self-closed
(eg `<div/>`). Trailing slashes in opening tags are ignored by HTML
parsers and by convention only used for "void" tags (those that don't
support closing tags).

This led to HTML parsers in some cases misparsing the document, where eg
`<div/><div/>` would be interpreted as `<div><div></div></div>` instead
of the intended `<div></div><div></div>`.

Read more:
https://developer.mozilla.org/en-US/docs/Glossary/Void_element#self-closing_tags

Convert all `<div>` and `<span>` to standards compliance.

Also, make the following (mostly cosmetic) changes with Prettier:

* Consistent 2-space indentation
* Add a trailing slash to all `<link/>` tags
* Don't use HTML comments to keep sequential `<span>`s on the same line
* Clean up inline style strings
* Consistent JS quoting

Closes #3497.

--------------------------------------------------------------------------------
31c6501bf3 | yrdzrfxndfvh | 2024-03-07 17:38:46 -0800

Remove redundant 'unblindable' flags
Obsoleted by b856850.

Closes #3587.

--------------------------------------------------------------------------------
d0e5102f28 | elliptic | 2024-03-07 18:07:47 -0500

Remove a magic breakpoint in book acquirement
A character with no magic skills has a 0% chance of getting a spellbook
instead of a manual from acquirement. Previously the chance of getting a
spellbook increased up to 40% as the proportion of a character's skills
that were magic increased up to 25%, and then suddenly the chance jumped
all the way to 100%. This commit removes the breakpoint, so magic-oriented
characters who previously had a 100% chance of getting a spellbook will
now get a mix of spellbooks and manuals.

--------------------------------------------------------------------------------
007c2181c8 | elliptic | 2024-03-07 18:07:47 -0500

Tweak weighting in talisman acquirement
Most talismans aren't randarts and thus are useless if they are duplicates,
so increase the weight scaling factor for not-already-seen talismans.

Also, if you have the skill for a talisman of a given tier, that probably
means you already have at least one talisman of that tier and are most
interested in a talisman of tier one higher, not a second talisman of
the same tier (and a talisman of lower tier is even less likely to be
interesting).

--------------------------------------------------------------------------------
d6aa9b3b29 | elliptic | 2024-03-07 18:07:47 -0500

Tweak acquirement option frequencies
Previously staff acquirement stopped happening once the player found all
staff types (even though it can still produce artefact staves). This meant
that other acquirement types became more common once all staff types had
been found, meaning that acquiring a useless staff instead of gold could
be a good idea just to improve quality of future acquirements.

Also, the just-implemented talisman acquirement had a higher chance of
being offered to players with more Shapeshifting skill, which meant that
once a player found all the talismans they wanted raising Shapeshifting
skill actually made their acquirement scrolls worse.

Replace these conditions with flat probabilities - put staff and talisman
in the pool of possible acq options (from which 3 non-gold options are
selected) only 2/3 and 1/3 of the time respectively.

--------------------------------------------------------------------------------
91cf321817 | Nicholas Feinberg | 2024-03-07 14:58:17 -0800

Refactor Gozag shop acq
And ban book shops for Djinni - mostly, though not entirely, useless.

--------------------------------------------------------------------------------
7ecb952e3c | Chuck Sellick | 2024-03-07 14:58:17 -0800

Gozag shouldn't offer jewellery shops to Coglin
Jewellery shops have a 10% chance per item of generating a talisman, but it's
highly unlikely you'd buy one for that reason when general stores can include
them anyway.

Closes #3633.

--------------------------------------------------------------------------------
e89081bf26 | David Lawrence Ramsey | 2024-03-07 10:37:29 -0600

Add talisman acquirement.
Modeled after staff acquirement, in that it's accessible via the scroll,
but only commonly so with enough shapeshifting skill. It's biased in
favour of talismans you haven't seen, and more biased in favour of
shapeshifting skill. However, no talismans are entirely ruled out; it's
still possible, although rare, to acquire a talisman with no
shapeshifting skill.

Accordingly, start keeping track of what talismans we've seen, as is
already done with misc items.

Xom can also give talismans as gifts now, chosen entirely randomly.

--------------------------------------------------------------------------------
a006e7742e | Nicholas Feinberg | 2024-03-06 22:13:24 -0800

Use more references

--------------------------------------------------------------------------------
40f72ca6f8 | Nicholas Feinberg | 2024-03-06 22:11:02 -0800

Improve valid_blink_destination's type signature

--------------------------------------------------------------------------------
1a6acf87a6 | Nicholas Feinberg | 2024-03-06 22:06:27 -0800

Fix: leaky hop targeter (acrobat)
Don't reveal unseen invisible monsters with the frog hop targeter.

--------------------------------------------------------------------------------
c5db3fc80f | elliptic | 2024-03-06 21:52:37 -0500

Make the delay display in @ round down instead of up (pisaster)
To match the delay display when you examine a weapon. I don't have a
preference for round up vs round down, but we should be consistent.

--------------------------------------------------------------------------------
2954f76710 | David Lawrence Ramsey | 2024-03-06 20:44:50 -0600

No jewellery acquirement if useless, redux.
_find_acquirement_subtype() now accounts for the no-jewellery
mutation, and won't generate jewellery with it.

--------------------------------------------------------------------------------
83232ee236 | David Lawrence Ramsey | 2024-03-06 17:21:53 -0600

Fix crash while generating wizmode acquirement stats.
Skip over the gizmo and ring preview slots, since we can't acquire for
them.

--------------------------------------------------------------------------------
d7a9830edf | David Lawrence Ramsey | 2024-03-06 17:07:36 -0600

Fix possible wizmode floating point exceptions.
If you run wizard mode acquirement or randart property stats for fewer
than 10 iterations, don't display the calculation of the completed
percentage, because the formula for it will divide by zero.

--------------------------------------------------------------------------------
4925a30cd0 | David Lawrence Ramsey | 2024-03-06 16:25:52 -0600

Revert "Destroy unchosen misc items in acquirement."
Since the logic would only be used for scroll acquirement, which
isn't done for misc items.

This reverts commit 817ac4a56f2a2e6c12e8715ccea3086e342bd4d4.

--------------------------------------------------------------------------------
817ac4a56f | David Lawrence Ramsey | 2024-03-06 15:41:59 -0600

Destroy unchosen misc items in acquirement.
Since we can acquire them, just not via scrolls.

--------------------------------------------------------------------------------
923888f401 | David Lawrence Ramsey | 2024-03-06 15:34:00 -0600

Fix enum spelling.
TAG_MINOR_COGLIN_NO_JEWELRY -> TAG_MINOR_COGLIN_NO_JEWELLERY.

--------------------------------------------------------------------------------
53793998da | David Lawrence Ramsey | 2024-03-06 11:50:16 -0600

No jewellery acquirement if we can't wear any.
Specifically, leave it out of the acquirement classes, as is done for
weapons if you can't wield any, and armour if you can't wear any.

--------------------------------------------------------------------------------
41e9ccace9 | David Lawrence Ramsey | 2024-03-06 11:06:30 -0600

Fix message spacing.

--------------------------------------------------------------------------------
619fc34308 | Nicholas Feinberg | 2024-03-06 08:22:49 -0800

Fix hand cannon description (Qwer)

--------------------------------------------------------------------------------
46d191b0ed | elliptic | 2024-03-06 00:46:34 -0500

Fix coglins not getting full Ashenzari piety

--------------------------------------------------------------------------------
87aaac5c70 | David Lawrence Ramsey | 2024-03-05 16:50:52 -0600

Adjust orcbow description.
Since hill orcs are no longer a thing, but the exodus of orcs into the
dungeon is.

--------------------------------------------------------------------------------
cf8ae8bc37 | Nicholas Feinberg | 2024-03-05 13:07:42 -0800

Ignore more Xcode stuff

--------------------------------------------------------------------------------
41a94f2f57 | Nicholas Feinberg | 2024-03-05 13:07:42 -0800

Turn hand cannons into slug throwers
People feel like cannons should shoot bullets. Very well!

--------------------------------------------------------------------------------
9e401d1733 | wheals | 2024-03-05 22:11:10 +0200

Fix prompt when attacking monsters with proper names (#3626)

--------------------------------------------------------------------------------
d15513231b | wheals | 2024-03-05 22:11:10 +0200

vault: Fix a silver statue (#3598)
Fixes #3598

--------------------------------------------------------------------------------
02cdc058b7 | Nicholas Feinberg | 2024-03-05 10:49:35 -0800

Fix: don't quiver 'invent gizmo'

--------------------------------------------------------------------------------
c93699c114 | wheals | 2024-03-05 17:47:05 +0200

Coglins: fix the autumn katana giving free attacks with the other weapon (#3603)
Fixes #3603

No Fun Allowed

--------------------------------------------------------------------------------
070d9c1bce | wheals | 2024-03-05 17:31:05 +0200

Coglins: only rev up once per cast of Manifold assault

--------------------------------------------------------------------------------
fbf9df647f | wheals | 2024-03-05 17:05:33 +0200

Show all skills if the only trainable ones would be hidden (#3501)
Fixes #3501

--------------------------------------------------------------------------------
862064635e | wheals | 2024-03-05 16:44:26 +0200

Treat reflected phials of floods correctly (#3600)
If the player fired them, make a full-sized splash and do waterlogging.

Fixes #3600

--------------------------------------------------------------------------------
0454c09109 | wheals | 2024-03-05 16:08:32 +0200

Print a message when trying to autoexplore while confused (#3553)
Fixes #3553

--------------------------------------------------------------------------------
8c5b87dc23 | wheals | 2024-03-05 15:32:03 +0200

docs: Update options guide for dump_order (#3495)
Oudated since 9c56bcba7, though the option to use Lua has existed, apparently
undocumented, since version 0.1.4.

--------------------------------------------------------------------------------
aed7c0c624 | wheals | 2024-03-05 14:43:32 +0200

fix: don't sometimes choose invalid random combos (#3546)
This could most easily be reproduced by choosing Shapeshifter and a random
species. If the coinflip led to the species being resolved first, then it could
choose Mummy or Ghoul, since it hadn't copied Shapeshifter from ng_choice into
ng.

Fixes #3546

--------------------------------------------------------------------------------
9348d4545b | David Lawrence Ramsey | 2024-03-05 00:59:31 -0600

Clarify foul flame weapon brand description.
Good god worshippers can't use foul flame-branded weapons, just as holy
beings can't.

--------------------------------------------------------------------------------
36a8ca9f72 | David Lawrence Ramsey | 2024-03-05 00:45:08 -0600

Add red vine stalker player base tiles.
Since Maurice is a red vine stalker. These are just palette-tweaked
versions of the green ones, which are now renamed to indicate their
colour.

--------------------------------------------------------------------------------
d166fa89d2 | David Lawrence Ramsey | 2024-03-04 18:25:55 -0600

Deathbed conversion clears vengeance (#3576).
For ordinary orcs, as is done for defeated orc apostles (except that
sneak attacks also work on ordinary orcs). Note that this is the only
type of conversion that works on orcs marked for vengeance now.

Add conversion types for vengeance and follower vengeance, and a few
vengeance speech lines.

--------------------------------------------------------------------------------
40f424ee2b | wheals | 2024-03-04 12:16:57 +0200

Credit Wizard Ike

--------------------------------------------------------------------------------
1c984fe9d1 | Nicholas Feinberg | 2024-03-03 21:11:28 -0800

Revert "fix double portal messages (descent) (real)"
Broke many more important things, like 'slime walls opening' and
'portals not being unlimited use'.

We will do a real fix for this one day.

Reverts b8176ab9f12de3214a609a7000c4832df59a3880.

--------------------------------------------------------------------------------
8a157a660c | elliptic | 2024-03-03 23:59:15 -0500

Don't let players trigger spiders_nest_spider_trap as many times as they want
831329d5 placed a second copy of the same basket of spiders trap in this
vault, which ended up meaning that when you stepped on one of the two
traps, the other trap would become unremovable and you could just
repeatedly trigger it to kill as many (experience and piety-giving)
redbacks as you wanted.

This commit makes it so that only one of the traps actually places; there
are presumably ways to make the vault work with multiple copies but this
seemed like the easiest fix for now.

--------------------------------------------------------------------------------
1f4d3039f5 | David Lawrence Ramsey | 2024-03-03 18:08:39 -0600

Fix breath fire desc (NormalPerson7) (#3621).
Closes #3621.

--------------------------------------------------------------------------------
145b2e8c49 | Nicholas Feinberg | 2024-03-03 15:54:41 -0800

Fix off-hand wielding non-weapons (Memoria)
Hopefully!

--------------------------------------------------------------------------------
fe4e56b67c | David Lawrence Ramsey | 2024-03-03 17:21:05 -0600

Fix an incorrect key for orc follower speech.

--------------------------------------------------------------------------------
64ea0e4219 | David Lawrence Ramsey | 2024-03-02 23:24:12 -0600

Revert "Adjustments for Spellforged form"
This reverts commit 82787085d03d1af1fc06f7f07c22e844af5fe98f.

--------------------------------------------------------------------------------
e499677281 | David Lawrence Ramsey | 2024-03-02 23:23:44 -0600

Revert "Add Spellforged Talisman"
This reverts commit 11ff892dbcd30c8fda559df780a7a5bea4325432.

--------------------------------------------------------------------------------
e1e0f865ad | David Lawrence Ramsey | 2024-03-02 23:14:20 -0600

Add a few ancestor names.

--------------------------------------------------------------------------------
c4c496a4b8 | Monkooky | 2024-03-02 20:33:11 -0600

remove base UC from Spellforged Form
Somewhat pointless addition to the design

--------------------------------------------------------------------------------
9b0da3812b | Monkooky | 2024-03-02 20:33:11 -0600

Adjust Spellforged Infuse, AC
Should feel a little better to use for high int casters.
Infuse might be too strong now.

--------------------------------------------------------------------------------
cc6265022e | Monkooky | 2024-03-02 20:33:11 -0600

Tweak Spellforged Form
Make the description more informative, and raise the AC granted (without 
raising the cap)

This likely still needs tweaks.

--------------------------------------------------------------------------------
82787085d0 | Monkooky | 2024-03-02 20:33:11 -0600

Adjustments for Spellforged form
Make intelligence changes properly update AC display
Make spellforged form not benefit from int for spell fail rates
Make spellforged form account for int drain

--------------------------------------------------------------------------------
11ff892dbc | Monkooky | 2024-03-02 20:33:11 -0600

Add Spellforged Talisman
Adds a new T2 talisman with
+1 AC/2 intelligence over 10
-8 EV, scaling down to 0 at max skill
Innate infusion, with normal power at minimum skill and quintuple power at max 
skill

Still needs description work, AC updates without reforming

--------------------------------------------------------------------------------
ba8f9cf90e | David Lawrence Ramsey | 2024-03-02 09:52:10 -0600

Prevent disarming orc apostles (#3604).
Since we already can't take their weapons via Tukima's.

This also avoids a crash on the ^ menu, caused by assuming all orc
apostles have weapons and trying to calculate the damage from those
weapons.

Closes #3604.

--------------------------------------------------------------------------------
2ff3c994f6 | David Lawrence Ramsey | 2024-03-02 09:16:47 -0600

Assert on getting a name from an unnamed weapon.
It's clearer than a straight crash.

--------------------------------------------------------------------------------
8e3e136d6a | David Lawrence Ramsey | 2024-03-02 08:39:16 -0600

Don't call is_artefact() twice naming weapons.

--------------------------------------------------------------------------------
69a5a376f1 | DracoOmega | 2024-03-02 03:57:42 -0330

Properly label gizmos on the " screen
They did actually show up there, but the slot was labelled 'Unknown'.

--------------------------------------------------------------------------------
c481c6522b | David Lawrence Ramsey | 2024-03-02 01:23:02 -0600

Add clarifying comment.

--------------------------------------------------------------------------------
f897c97020 | DracoOmega | 2024-03-02 03:47:08 -0330

Don't crash on various things related to the ring preview slot
At the very least, from viewing the " screen, but probably others as well.

--------------------------------------------------------------------------------
85ff8e36a1 | David Lawrence Ramsey | 2024-03-02 01:06:29 -0600

Don't call name_weapon() on artefacts.

--------------------------------------------------------------------------------
97116cfa04 | David Lawrence Ramsey | 2024-03-02 00:48:03 -0600

Use maybe_name_weapon() when changing species.
In the new silent mode. This also deduplicates code.

--------------------------------------------------------------------------------
684d82af33 | David Lawrence Ramsey | 2024-03-02 00:47:58 -0600

Allow disabling maybe_name_weapon() messages.
So we can use it to silently name a weapon.

--------------------------------------------------------------------------------
a1b646022c | David Lawrence Ramsey | 2024-03-02 00:47:12 -0600

Refactor weapon naming a bit.
Getting the name of a weapon is now in its own function,
get_weapon_name(), and is less entangled with maybe_name_weapon()
and say_farewell_to_weapon().

--------------------------------------------------------------------------------
2d1f746d5d | David Lawrence Ramsey | 2024-03-01 23:39:14 -0600

Don't erroneously skip over slots w/artefacts.
And remove unused variable. This code needs to be deduplicated from
that of maybe_name_weapon().

--------------------------------------------------------------------------------
896cc9457e | David Lawrence Ramsey | 2024-03-01 23:32:58 -0600

Don't name artefacts when changing to coglin.

--------------------------------------------------------------------------------
b28a26c98d | David Lawrence Ramsey | 2024-03-01 21:37:01 -0600

Name wielded weapons when changing to coglin.
Via the wizmode "change species" command. This avoids a crash when
trying to unwield an unnamed weapon, which can happen if you changed
species from non-coglin to coglin while wielding a non-offhand weapon.

Accordingly, move the WEAPON_NAME_KEY definition from items.cc to
items.h, so we can use it in change_species_to().

--------------------------------------------------------------------------------
d5c3ca020d | David Lawrence Ramsey | 2024-03-01 18:39:30 -0600

Make '!' and '?' work in wizard menus (Aliscans).
Do this by overriding skip_process_command(), as is done in a few other
places.

Closes #3610.

--------------------------------------------------------------------------------
ef4fe23122 | elliptic | 2024-03-01 16:29:23 -0500

Tweak recommended backgrounds on Co

--------------------------------------------------------------------------------
21d2723c0b | DracoOmega | 2024-03-01 17:22:42 -0330

Minor additional mmov-related cleanup
I'd really like to be able to just use a 'new_pos' value in _monster_move
instead of constantly going 'mons->pos() + delta' but a couple places at
the end specifically reset delta and even vaguely rely on it being reset
to function as they do (such as the chance for a confused monster to
additionally hit itself after attacking another monster >.>)

A couple of them seem probably like they can be handled another way, but
as that is a functional change (however minor), I am not doing that here.

--------------------------------------------------------------------------------
aa1d24be35 | Monkooky | 2024-03-01 17:22:42 -0330

refactor handle_monster_move
handle_monster_move uses a global variable 'mmov' which is manipulated by
several functions. This obfuscates how mmov is set, and makes it difficult
to be confident about the current state of mmov at any given time.

This refactor makes several functions return a new value for 'mmov' instead
of directly manipulating it, and renames such functions to better document
their function. Other functions are directly passed a reference to mmov
with minimal change to functionality.

--------------------------------------------------------------------------------
64bcc3171f | DracoOmega | 2024-03-01 16:21:05 -0330

Improve EV preview for more item types
Item descriptions will now list EV changes caused by shield penalties and
stat changes on any type of equipment (ie: artefact weapons, jewellery)

-Shields will list EV changes from equipping them even if you have a
 2-handed weapon equipped. (Looking the weapon itself will show the change
 from removing it). This feels better than automatically folding in
 removing such a weapon into the shield's description.
-Rings will always list their stats as if you had room to equip one more
 ring (and not say 'switch' in their description) since it's impossible to
 guess where the player would want to put it

Internally, ring previews are handled by making an additional internal
equipment slot that is used only for these previews (so that it can list
them unaffected by however many rings the player has on at the time).

EV change will only be listed at all for weapons/jewellery that modify
this (since the vast majority will not). I considered not showing it on
aux armour by default as well, but there was some concern that this might
be more confusing than leaving it there all the time?

--------------------------------------------------------------------------------
05d3356bbf | DracoOmega | 2024-03-01 16:21:05 -0330

Allow querying equip/unequip verbs for given items

--------------------------------------------------------------------------------
fff94016a1 | SentientSupper | 2024-03-01 16:21:05 -0330

Newline ac and ev preview in armor description
It's easier on the eyes.

--------------------------------------------------------------------------------
a5ee4a594e | regret-index | 2024-03-01 16:01:46 -0330

Prevent Coglins from getting jewellery-focused troves (Flugkiller)
After the species' restriction of rings in 54e5184 and amulets in ae3e191,
there is no rewards for said species to be found in the troves that solely
place jewellery, so those troves can be restricted for Coglins.

Strictly speaking, nicolae_trove_octotrove places non-jewellery equipment
alongside the amulets and rings. However, shields are also extremely
discouraged for Coglins, which leaves the trove a source of three hats. It
thus has also thus been restricted.

--------------------------------------------------------------------------------
b37f33011e | David Lawrence Ramsey | 2024-03-01 09:31:39 -0600

Make mad acolytes of Lugonu worship Lugonu.

--------------------------------------------------------------------------------
918cac0f7e | David Lawrence Ramsey | 2024-03-01 08:42:17 -0600

Fix wizmode item creation crash (#3595).
If prompt_menu = false in your rc file.

Closes #3595.

--------------------------------------------------------------------------------
706899e69d | DracoOmega | 2024-03-01 00:16:40 -0330

Don't crash when autodazzler triggers while you're invisible
(And lacking see invis)

The code here somewhat reasonably seems to assume that if there's an agent
with a non-player ktype that they're a monster. But I currently can't seem
to have the dazzler tracer both count friendlies properly *and* not prompt
the player without using the player as its source and using a non-player
ktype.

This feels wrong, and like the real solution lies elsewhere, but for now
let's at least double-check that the agent is a monster instead of
crashing.

--------------------------------------------------------------------------------
afe9d2b23c | gammafunk | 2024-02-29 20:30:19 -0600

doc: The c_choose_coglin_gizmo hook

--------------------------------------------------------------------------------
9f707a9c88 | DracoOmega | 2024-02-29 22:12:47 -0330

Make ManaRev and ParryRev scale smoothly instead of on/off (elliptic)
Per the discussed suggestion, ParryRev give 2/4/5 AC based on visible Rev
status tier (with disarm happening only when fully Revved). ManaRev
likewise gives 20/40/80 mp regen based on Rev tier (steeper scaling, but
there's no additional capstone benefit here). It's plausible this is still
on the weak side, but I'd like to see it in practice a little before I
staple some additional MP to it.

(I also refactored some code slightly so that the status light and these
gizmo properties reference the same concept of tier)

--------------------------------------------------------------------------------
7b30705457 | DracoOmega | 2024-02-29 21:35:43 -0330

Fix RegenMP being listed twice on randart amulets of magic regen
This was only a visual bug. It still only applied a single time.

--------------------------------------------------------------------------------
3e1049bc92 | David Lawrence Ramsey | 2024-02-29 15:43:35 -0600

Fix punctuation.

--------------------------------------------------------------------------------
ec57dfcd37 | gammafunk | 2024-02-29 14:24:20 -0600

feat: Coglin gizmo acquirement support for clua
Add the hook `c_choose_coglin_gizmo` for clua users to choose their
coglin gizmo, also adding a new value to use with the clua
`items.acquirement_items()` function to check the offered gizmos.

--------------------------------------------------------------------------------
c871cf952d | gammafunk | 2024-02-29 14:24:20 -0600

refactor: Move some defines to a different header
The define keys related to regular acquirement as well as oka weapon
gifting were in religion-enum.h, when none of them are enums and only
some of them are even related to relgion. Move these to acquire.h,
adding a couple includes in some cc files and removing some includes of
religion-enum.h in a couple other header files. Overall this should
reduce header dependency, since one of the headers with a removed
include is player.h

--------------------------------------------------------------------------------
667c705b62 | David Lawrence Ramsey | 2024-02-29 11:59:53 -0600

Display msg for MD and max-ench artefacts (#3605).
Closes #3605.

--------------------------------------------------------------------------------
dfd1246722 | Nicholas Feinberg | 2024-02-29 09:22:35 -0800

Tweak hunter starting slings (elliptic)
Make the off-hand worse than the primary, as with hexslinger and
melee starts.

--------------------------------------------------------------------------------
5dfea8ec95 | Nicholas Feinberg | 2024-02-29 09:17:53 -0800

Deduplicate a magic rev number

--------------------------------------------------------------------------------
403443e4af | Nicholas Feinberg | 2024-02-29 09:12:03 -0800

Start Coglins with dual weapons (elliptic)
Remove a tiny bit of scrounging for daggers. Any start which has a
one-handed melee weapon now gets a bonus +0 dagger. Hexslinger gets
a bonus -2 sling, and hunter gets two +1 slings instead of the bow.

--------------------------------------------------------------------------------
f2dc5a0a38 | DracoOmega | 2024-02-29 13:08:47 -0330

Prevent a crash when unequipping Faith after Coglin save upgrade
It was calling god_speaks before the level was fully loaded, and for some
ancient reason god_speaks uses a fake monster at the player's location,
which was trying to perform unused string replacements involving the
feature description of the tile the player was standing before the level
they were on was fully loaded....

I think some more of this ought to be refactored in future, but this seems
to fix the immediate crash for now.

--------------------------------------------------------------------------------
4f87150244 | Monkooky | 2024-02-29 09:27:20 -0600

make regen/regenMP gizmos attune
previously, if tinkered up while not at full hp/mp, would never attune.

--------------------------------------------------------------------------------
0c985b5a6a | David Lawrence Ramsey | 2024-02-29 09:14:10 -0600

Deduplicate code in _handle_regen_item_equip().
By using the now non-static item regen-checking functions.

Partially suggested by matta.

--------------------------------------------------------------------------------
1203c30ec8 | David Lawrence Ramsey | 2024-02-29 09:03:59 -0600

Move item regen-checking funcs to item-prop.cc.
Since they can't be static anymore.

--------------------------------------------------------------------------------
9e019001af | David Lawrence Ramsey | 2024-02-29 08:53:26 -0600

Fix spelling of "no jewellery" mutation/

--------------------------------------------------------------------------------
4c7f4391e0 | elliptic | 2024-02-29 09:29:08 -0500

Fix a crash on equip (Monkooky)

--------------------------------------------------------------------------------
3570a563aa | David Lawrence Ramsey | 2024-02-29 08:03:41 -0600

Add a few gizmo adjectives/nouns.

--------------------------------------------------------------------------------
233958a4c4 | DracoOmega | 2024-02-29 01:25:28 -0330

Improve % screen for Coglins
Properly say that rings are both unavailable, and list their gizmo there
as well.

--------------------------------------------------------------------------------
68838b59b6 | David Lawrence Ramsey | 2024-02-28 22:45:13 -0600

Fix spelling.

--------------------------------------------------------------------------------
e087637393 | David Lawrence Ramsey | 2024-02-28 22:31:44 -0600

Fix punctuation.

--------------------------------------------------------------------------------
dcaf52ac95 | David Lawrence Ramsey | 2024-02-28 22:31:40 -0600

Fix typo.

--------------------------------------------------------------------------------
62a8415c68 | DracoOmega | 2024-02-29 00:51:17 -0330

Continue to shuffle gizmo tile locations
That just broke REGULAR builds instead... oops.

--------------------------------------------------------------------------------
5854fa997c | DracoOmega | 2024-02-29 00:37:46 -0330

Maybe fix tag upgrade builds
I didn't even notice there was major version tagging inside of tile
definition files....

--------------------------------------------------------------------------------
c347e58e9c | DracoOmega | 2024-02-29 00:31:44 -0330

Fix being able to use Invent Gizmo from xl 1
Not sure how that statement ended up getting deleted.

--------------------------------------------------------------------------------
49363698eb | DracoOmega | 2024-02-28 23:58:40 -0330

Change Cloak of the Thief's effect
It seems widely agreed these days that Cloak of the Thief's fog effect is
not only double-edged but perhaps actively bad. Sometimes it saves you, but
many other times it reduces your ability to use ?blinking without actually
benefitting you at all. Many experienced players think it may be worse than
a plain cloak and that feels like a sad place for an unrand to be.

So let's try something else entirely!

Instead of any fog effect, Cloak of the Thief now provides noise
suppression while wearing it (equivalent to, and not stacking with, the
mutation). Since this is a very powerful effect, I have also reduced the
enchantment to +0 (and increased the slaying penalty to -3). The hope is
that this is more exciting than the cloak used to be without being
unreasonable. (If I've overshot the numbers, they can always be changed)

--------------------------------------------------------------------------------
2a815d3ee2 | DracoOmega | 2024-02-28 23:58:40 -0330

New unrand: Gloves of the Gadgeteer
Using the same (non-stacking) boost as Gadgeteer gizmos (ie: +30% faster
evocable recharge and 30% chance not to consume a wand charge), they
additionally boost wand power by 30%, but are fragile.

Gloves that do something very different than other artifact gloves (and
are hopefully fun and different about it without being unreasonable)

--------------------------------------------------------------------------------
1a98434088 | DracoOmega | 2024-02-28 23:58:39 -0330

Make Coglin off-hand weapons fall off when switching species
Instead of being stuck there entirely until you switch back.

--------------------------------------------------------------------------------
a046ce8265 | DracoOmega | 2024-02-28 23:58:39 -0330

Correct constriction status description (ge0ff)

--------------------------------------------------------------------------------
481bfe3726 | DracoOmega | 2024-02-28 23:58:39 -0330

Prevent allies from displacing you with Electrolunge (lici)
Even if your allies were just trying to be helpful, randomly blinking the
player if you got in their way had the chance of being needlessly
endangering. So now allies won't cast it if they would steal the player's
spot.

(But also add a message if the player somehow gets displaced by the spell
anyway, which is currently narrowly possible (ghosts) and may be more
possible in the future.)

--------------------------------------------------------------------------------
ae3e1911cf | DracoOmega | 2024-02-28 23:58:39 -0330

Coglin Gizmos!
While the latest incarnation of the coglin downside (no rings, but
rF+/rC+ at xl 13) may be at a reasonable power level, there's been much
interest expressed in making this system a little more involved,
randomized, and 'exciting'. So here is an attempt at this which tries to
capture some very fun coglin flavour in the process:

Coglins no longer gain fixed resists at xl 13, and in addition to being
unable to wear rings, also cannot wear amulets. But in exchange, they
get a one-time choice of 3 random 'gizmos' at xl 14 - randomized
equipment designed to fill part of the role of the jewelry they replace.

The intent is that these gizmos are still overall a net downside
compared to normal jewelry slots (with the earlier power, flexibility,
and lategame artifact possibilities those hold), but that they preserve
some of the choice and excitement of finding new items and deciding
between them - and not always knowing what you're going to end up using
at the start of the game. A downside that *feels* like an upside. After
all, being fun should be one of the foremost criteria for a new
species, right?

These gizmos are generated as follows:

Each gizmo has exactly 1 'rare property' and 2 'common properties'.

There are 6 total common properties (rF+, rC+, rPois+rCorr, rElec, Will+,
Slay+3) and the player is gauranteed to see all 6 of them each game - just
in randomized combinations.

There are currently 7 different 'rare properties', of which the player
will be offered a random 3 each game - so that you *can't* know in
advance which you will be offered (nor rely on getting a specific one
each game). Several of these draw from existing equipment properties and
several are entirely new. I feel strongly that it helps the player
fun-factor of the system a lot if some of what you get from gizmos
doesn't just feel like "Jewelry, but less of it" but rather contains
some *new* choices instead of old ones (even if they're overall less
powerful).

The list of current rare properties is:

1) Regen + RegenMP

2) Repel Missiles + Clarity

3) Rampage + Acrobat

4) Gadgeteer:
     30% faster evocable recharge rate and 30% chance not to consume a wand
     charge on firing

5) ManaRev:
     RegenMP++ but *only* while fully Revved

6) ParryRev:
     AC+5 while fully Revved, along with a small chance to disarm an enemy
     upon hitting them. (This does not do any damage, unlike Captain's
     Cutlass's extremely significant damage, to be clear)

7) AutoDazzle
     Small chance to fire a non-damaging beam of blinding light at an enemy
     whose attacks you dodge - even at range.

The idea is that different modifiers should appeal to different sorts of
characters, and also that several of them actively lean into the main
gimmick of coglins by synergizing directly with Rev and attacking.

Obviously the balance of all of these is provisional, but I think given
player response to various previous downsides, it's important to try and
sell the *fun* of this foremost. Numbers can be adjusted down as-needed
afterward.

I hope people enjoy them!

(Credit to regret-index for the tilework, and multiple other devs for
design discussion and suggestions)

--------------------------------------------------------------------------------
4e4bab2fd2 | DracoOmega | 2024-02-28 23:46:10 -0330

Add ARTP_MANA_REGENERATION
Functions the same as the amulet. Amulet of Vitality is now a plain amulet
with 2 levels of ARTP_MANA_REGENERATION instead of being a RegenMP amulet
that was special-cased to count twice.

Amulets of regeneration and magic regeneration used entirely different
methods to track whether the player was attuned to them or not, and this
unifies them, as well as refactoring a whole lot of code related to this.
(This also improves messaging a couple of cases, such as Amulet of Vitality
implying it doesn't work for Djinn at all when you first wear it). I also
reduced some needless scanning of inventory artifact props whenever the
player's regen ticks while they are already at full hp/mp.

There is one functional change here, which is that items which grant both
hp and mp regeneration (currently ONLY the Amulet of Vitality) will no
longer provide either until BOTH of the player's hp and mp are full
simultaneously. This irks me a little, but it seems minor enough that all
of the extra infrastructure required to avoid it (while still allowing
more than a single source of RegenMP to ever function at once) seems
unnecessary.

--------------------------------------------------------------------------------
a5e47cdb36 | DracoOmega | 2024-02-28 23:46:09 -0330

Add ARTP_ACROBAT
For future use in gizmos.

--------------------------------------------------------------------------------
efe97123c3 | David Lawrence Ramsey | 2024-02-28 16:48:59 -0600

Put gnoll bouda desc in alphabetical order.

--------------------------------------------------------------------------------
fdd2188cd4 | David Lawrence Ramsey | 2024-02-28 16:18:01 -0600

Fix inconsistent capitalisation of willpower.

--------------------------------------------------------------------------------
aa138b54ab | Nicholas Feinberg | 2024-02-28 07:26:18 -0800

Fix travel boulder issues (jagoly)
This is a hack! We should be using a different, stationary monster
type for decoration.

--------------------------------------------------------------------------------
866d13106e | regret-index | 2024-02-28 01:07:42 -0330

Fix a cast message fallthrough (CarefulOdds)
Accidentally broken with reorganization in c02482b.

--------------------------------------------------------------------------------
1309dff24d | DracoOmega | 2024-02-28 00:55:53 -0330

Fix misleading messages saying that a beam was 'repelled' without RMsl
Still not sure this is correct, but it's *more* correct than it was before.

--------------------------------------------------------------------------------
991db66f5c | regret-index | 2024-02-28 00:49:45 -0330

Fix a few recent vaults, tweak a recent monster's description
Two vaults screwing up the silver statue naming, one vault using the wrong
name for poison gas, and a rewriting attempt to make thermic dynamos focus
more on being an insubstantial vortex with energy cells attached rather
than a physical engine that could be rapidly deconstructed.

--------------------------------------------------------------------------------
fb31f2349e | Nicholas Feinberg | 2024-02-27 20:11:15 -0800

Fix offhand Wyrmbane again (jagoly, elliptic)
Cont'd from a146dc8f6d50fe5756997a64e09b11ed8337dac3.

--------------------------------------------------------------------------------
e1f55a61bf | David Lawrence Ramsey | 2024-02-27 17:42:49 -0600

Move halo/umbra gear handling to equip/unequip.
So that a monster wielding an item from off the floor will be handled
properly.

The check is now done in monster::pickup() (which might as well be
monster::pickup_and_equip()) and monster::unequip().

--------------------------------------------------------------------------------
25767b42b7 | David Lawrence Ramsey | 2024-02-27 17:05:51 -0600

Properly handle monster halo/umbra from gear.
If a monster's wielding an item changes its halo and/or umbra radius,
invalidate the agrid so that the halo/umbra is drawn properly on monster
placement instead of after monster movement turn afterward (so that e.g.
if Frederick gets an orb of light, it'll work from the beginning).

It's crude, but the functions that accomplish this on the player side
are all completely player-specific.

--------------------------------------------------------------------------------
a61f84b8bd | David Lawrence Ramsey | 2024-02-27 16:01:25 -0600

Fix comment typo.

--------------------------------------------------------------------------------
0d0dddbf9d | David Lawrence Ramsey | 2024-02-27 15:59:21 -0600

extract_manticore_spikes() -> extract_barbs().
Since barbs aren't exclusive to manticores.

--------------------------------------------------------------------------------
8156e94834 | Nicholas Feinberg | 2024-02-27 11:47:15 -0800

Fix: blaze trees 🥬 (CarefulOdds)
Make blazeheart core explosions light trees on fire, as with other
big explosions.

This logic remains silly :)

--------------------------------------------------------------------------------
b0876beb0e | Nicholas Feinberg | 2024-02-27 11:13:16 -0800

Fix double sling overshoots (ragingrage)
When wielding two ranged weapons as a Coglin, if there's an ally past
the target, make sure that both shots automatically stop at the target,
not just the first shot.

--------------------------------------------------------------------------------
b6d6f0d0ac | David Lawrence Ramsey | 2024-02-27 10:16:11 -0600

Remove message for maximum player barbs, as it never seems to come up due to 
player turns.

--------------------------------------------------------------------------------
953deb8648 | David Lawrence Ramsey | 2024-02-27 10:07:15 -0600

Ensure barb_player() can't go over max dur/pow.

--------------------------------------------------------------------------------
2fc6374f7a | David Lawrence Ramsey | 2024-02-27 10:05:07 -0600

Allow specifying barb power in barb_player().

--------------------------------------------------------------------------------
240abd312f | David Lawrence Ramsey | 2024-02-27 10:00:06 -0600

Readd lost message for extra player barbing.

--------------------------------------------------------------------------------
7be0c910eb | David Lawrence Ramsey | 2024-02-27 09:41:08 -0600

Add sanity checks to barb_player().
Assert we're not in the arena, and handle invalid turn values.

--------------------------------------------------------------------------------
03785628c0 | David Lawrence Ramsey | 2024-02-27 09:36:40 -0600

Add message for maximum player barbs.

--------------------------------------------------------------------------------
60b85d4bcb | David Lawrence Ramsey | 2024-02-27 08:52:34 -0600

Actually use turns when initially barbing.

--------------------------------------------------------------------------------
0f40c14376 | David Lawrence Ramsey | 2024-02-27 08:49:27 -0600

Move player barbing into its own function.
This deduplicates the code for manticore spikes, steelbarb worm spikes,
and Wu Jian barbed spike wrath.

There's now a message for when you get barbed while already being
barbed; and the message for initially getting barbed drops the initial
"the", so it can be reused.

--------------------------------------------------------------------------------
3863d584d4 | DracoOmega | 2024-02-27 03:47:14 -0330

Actually put that fix in a place where it'll work
I may be slightly panicking

--------------------------------------------------------------------------------
d25475ebd2 | DracoOmega | 2024-02-27 03:43:55 -0330

Fixup yellow dracs created with Caustic Breath
For those unlucky enough to still have them in their saves.

--------------------------------------------------------------------------------
344ed53f66 | DracoOmega | 2024-02-27 03:00:33 -0330

Fix monster yellow draconians doing ludicrous breath damage (jagoly)
For some reason, despite having the same exact damage as every other
monster that spits acid at you, they still used the player spell internally
and when it was recently changed, I didn't notice this fact.

--------------------------------------------------------------------------------
08f29ac1c3 | DracoOmega | 2024-02-27 00:18:06 -0330

Fix almost all explosions becoming Nullifying Breath (jagoly)
>.>

--------------------------------------------------------------------------------
f581d88c14 | Nicholas Feinberg | 2024-02-26 18:36:00 -0800

Make boulders unthreatening (regret-index)

--------------------------------------------------------------------------------
f716714d7f | David Lawrence Ramsey | 2024-02-26 20:21:48 -0600

Typo fix.

--------------------------------------------------------------------------------
94ed278cf8 | DracoOmega | 2024-02-26 18:49:39 -0330

Cap Sticky Flame's duration on players much lower
The cap of 100 turns was leftover from the older incarnation of sticky
flame and not adjusted after 0.31's changes to it. 100 turns is really a
silly high number, and not something one could realistically encounter in
most scenarios, but now that it can do actual relevant damage, it seems
needless to have it be able to stack so high.

I've set the duration at 35 which works out to exactly 5 movements from the
player and is approximately the average duration of being hit by it twice.

--------------------------------------------------------------------------------
9efa865df0 | DracoOmega | 2024-02-26 18:49:39 -0330

Cap max number of things pulled by Blink Allies Encircling
This used to have a power-based cap on how many allies it could blink at
once. Some of the code even remained to do this, but was rendered
non-functional by fb65b577b5ec8cf810b0ab130fba421e077fe631

Something being accidentally broken in the past is certainly no reason to
return to it, but while this is a great spell that creates great problems,
the possibility of being *completely* surrounded by enemies the instant a
guardian serpent comes into view can sometimes feel a bit excessive. I'm
especially concerned that constriction changes may independently make this
deadlier, so let's try reducing the numbers a little and see how this
feels.

(It now blinks 3-6 units around the player, rather than 'as many as will
fit')

--------------------------------------------------------------------------------
926e5b6e4c | DracoOmega | 2024-02-26 18:49:39 -0330

Revamp Draconian breath weapons
There's been some desire to revamp how draconian breath weapons work for
a while now, so this is a serious attempt at doing so. The general idea is
to make pressing the button less common (ie: avoid it being 'correct' to
breathe at the start of every latergame fight, even when the breath does
very little) while also making the breath effects flashier and more
impactful when you do.

All breath weapons can now store up to 3 charges, and are on an XP-based
recharge system. (You get 2 charges immediately upon hitting level 7 and
upgraded saves above xl 7 will be given 3). All breaths have been adjusted
somewhat - with some being overhauled more significantly - both to be more
distinctive from each other and to scale better throughout the length of
the game.

Red Draconians: Combustion Breath

Borrowing functionality from old Explosive Bolt, Combusion Breath causes a
fireball to strike every target in a line. It does less single target
damage than most breaths, but can do significant AoE damage if you line up
a good shot. (The user is immune to damage from these explosions).

Green Draconians: Noxious Breath

Very similar to their old breath, but the clouds last longer (especially at
higher power) and it has a power-based chance to spawn additional clouds
along the sides of the main beam as you rise in xl.

Pale Draconians: Steam Breath

Again, very similar to their old breath, but the initial hit now does
relevant damage, and the density/duration of the steam clouds improves with
xl. (Keep in mind, using it is now much less free than it used to be.)

Yellow Draconians: Caustic Breath

Fires a penetrating acid bolt that leaves acidic fog clouds on all
unoccupied spaces it passes over. These are rarely seen clouds (which
yellow draconians are conveniently immune to!). Early on, these can serve
as obstructions to enemies, and later on a reliable damage source that few
things are immune to.

Black Draconians: Galvanic Breath

Fires a projectile that does electricity damage to all targets connected
to what it hits - think of it as firing an arcjolt at a single (possibly
distant!) cluster of enemies. (This also refactors arcjolt code somewhat
and improves its animation by no longer interrupting it wheneve the
message log fills up)

White Draconians: Glacial Breath

Fires a penetrating beam of cold which does the highest individual damage
of any draconian breath and also turns anything it kills into durable
blocks of ice for a little while. Good as both a direct damage solution and
also to create blockers in corridors or other chokepoints.

Purple Draconians: Nullifying Breath

Fires a non-penetrating projectile that expands into a radius-2 explosion.
It dispels magical effects on targets hit (like before) and also inflicts
significant amounts of antimagic - but its damage is quite poor compared
to other damaging breaths. (The user is immune to their own breath.)

Grey Draconians: Mud Breath

Fires a non-pentrating ball of mud which has knockback and leaves puddles
of temporary mud around its destination. (Similar to Primal Wave, but
muddier). Grey draconians are now unaffected by mud.

Having long been the only draconian distinguished by having no breath at
all, it felt a bit sad to leave them out of the fun.

Breath weapon charges available are indicated by a status light (as well
as in the ability menu, but after playtesting I felt it better if one
didn't feel the need to bring up the ability list repeatedly to check).
As draconian breath no longer has a breath cooldown (the limited charges
accomplishes more than enough to prevent it from being spammed, and being
able to burst some of the damaging breaths from time to time is a good
thing, imo) there should be no risk of getting it confused with the old
'Breath' status light (which is additionally renamed '-Breath')

All sorts of numbers here may need nudging in one direction or another,
(recharge speed especially needs playfeel testing in both early and
lategame) but I think this is a decent set of useful distinct effects to
start from.

--------------------------------------------------------------------------------
55cc24dd7e | DracoOmega | 2024-02-26 18:49:39 -0330

Very slightly adjust monster stats after constriction changes
Lower naga warrior base damage (since it's likely the changes make them
more dangerous), slightly weaken tmons constriction damage, restore
starspawn tentacle's long-lost accuracy.

--------------------------------------------------------------------------------
93f03418a4 | DracoOmega | 2024-02-26 18:49:39 -0330

Allow previewing EV change for armour in item descriptions
This is a much more complicated question than displaying AC changes was,
since EV depends on a complicated formula that hinges not only on the
change in ER between the two armour being compared, but also differences in
str/dex from properties on the two items.

Rather than try to duplicate the complex logic of _player_evasion() or
parameterize every single aspect of it (which would be brittle and
error-prone if any aspect of gear properties ever changed), I have opted
to 'simulate' the correct answer by internally equipping the item just long
enough to calculate player EV while wearing it.

As this is done by directly manipulating equipment links, it should be
invisible and have no side-effects rewarding wielding/unwielding.

One complication is that Crawl's item system makes it literally impossible
for the player to equip (even internally) an item that isn't in their
inventory. And since inventory is capped at a fixed size and might be full
(and the player might be examining an item for a slot which is currently
empty!), there is no normal way to gaurantee we have anywhere to put this
item, even temporarily.

So I have 'cheated' by adding an extra slot to you.inv beyond MAXPACK (the
normal cap). This should be invisible basically everywhere, and is not
marshalled (since it's only temp working space). This still makes me
slightly nervous, but I have looked through as much code that directly
manipulates this array as I can without seeing a problem this will cause
(other than one fixed by this commit itself), and I also see no other
reasonable way to do this without overhauling item links entirely. Which,
while theoretically nice, is wildly out of scope here.

As this process is still somewhat sketchy, I've tried to document the
gotchas quite explicitly, where they exist. But I think the QoL improvement
to players is well worth the hack.

--------------------------------------------------------------------------------
f30d4d0f88 | DracoOmega | 2024-02-26 18:49:38 -0330

Remove some never-used virutal methods
We don't have any concept of armour penalties for monsters, we never did,
and I doubt we ever will.

And if that somehow changes, someone can always put them back in then.

--------------------------------------------------------------------------------
e1c152a988 | DracoOmega | 2024-02-26 18:49:38 -0330

Reorganize how player EV is calculated, improve clarity and display
Penalties and bonuses to player EV were split among several nested
functions, often with no clear separation of why something was in one place
and not another (ie: modifiers for vertigo, being constricted, and having
Agility were all in different functions, despite all being temporary and
flat)

This sometimes had subtle (or not so subtle!) strange effects such as
vertigo affecting the merfolk swiming bonus, but nets and constriction not
doing so. In fact, nets/webs (which supposedly reduce EV to 1/2) could have
a much greater or larger effect than this (a character that had sac'd EV
to Ru twice could go from 10->0 EV when netted, while a high level
character in Storm Form might only go from 49->43 EV, neither of which is
very like 'half')

Being paralysed could even RAISE player EV, if their normal EV was low
enough!

I have reorganized how bonuses are applied, mostly with an aim at improving
clarity and consistency, while reducing weird effects such as the above.

Now multipliers to the players EV (eg: nets/webs/petrifying/merfolk swim)
happen after all 'permanent' modifiers to EV are accounted for
(eg: equipment, mutations), but before all 'temporary' modifiers
(eg: acrobat/agility/constriction) are tallied. Effects like paralysis or
clumsy now cap the player's EV at a small amount, rather than setting it
to that amount (so that it will never raise it).

This also improves the logic for displaying EV on the UI, which will now
display any temporary modifiers that lower EV in red and ones which raise
it in blue. (Only a few penalties were previously indicated in red, and a
bug meant that nets' effect on EV was never shown at all!)

--------------------------------------------------------------------------------
359da3ace0 | DracoOmega | 2024-02-26 18:49:38 -0330

Change how the Repel Missiles effect works
This is both a simplification and a rebalancing.

Current, repel missiles works by reducing the to-hit roll of a missile by
a random amount from 0-100% of its current value (or 0-50% of its value if
it's a penetrating beam). In effect, this acts a little like a multiplier
of the defender's EV - it does almost nothing at low EV and its
effectiveness directly rises with EV - but with different math.

This has several arguably bad effects:
 -The buff has little effect on enemies with mediocre EV (and there's been
  a desire to make an rMsl aura enemy, who would currently accomplish
  little when supporting many types of enemy)
 -The effect of the buff is *enormously* counteracted by EV reductions like
  wand of roots (which used to grant something like a +2800% chance to hit
  versus The Enchantress, as an extreme example). If enemies have rMsl, I
  think you should *feel* it in the same way that you feel enemy rF when
  you're attacking with fire
 -Scarves of repulsion were close to useless on many characters, but a lot
  of players did not realize this and assumed they were still providing
  meaningful bonuses to characters with no EV. This new system should make
  that a lot clearer to explain, as well as make some itemization choices
  viable that previously were not.

This changes rMsl to be a flat +EV versus missile attacks instead, and
operates even if the target is incapacitated (the magic is still pushing
arrows away, even if the caster is asleep!) The old behaviour of being
only half as efffect against penetrating beams is removed also (SH already
offers a means of attack avoidance that specifically is worse against
penetrating beams).

In enemy hands, it should have a stronger effect on most enemies, and be
much less negated by constriction (though constriction still helps a bunch
in most cases!). In player hands, this is a buff if the player is below
~18 EV and a nerf if the player is above that (which I think should make
scarfs of repulsion more appealing to more characters and maybe make
itemization decisions a little more diverse)

Numbers can, of course, be adjusted (and the player/enemy bonus separated),
but I think it's fair that rMsl feel impactful against the type of thing it
resists in a similar way that a pip of resistance would be against its.

--------------------------------------------------------------------------------
1d82c4ac31 | DracoOmega | 2024-02-26 18:49:38 -0330

New blast wand: Wand of Warping
Alternates with Iceblast and Roots.

This implements one of the discussed proposals for an alternate AoE attack
wand to make /roots a little less common. It does a similar fireball-sized
blast and has a chance to blinks everything caught in the blast radius
(including you!)

It does slightly less damage than iceblast (though is irresistable), but
while blinking enemies has strong utility potential, in practice the
scattering of them can be as much of a drawback as it is an advantage.
Sometimes you can use it to juggle something away from you, other times it
will bring them closer or reduce your ability to hit multiple targets.
Being able to deliberately hit yourself with it as a way to escape some
situations (at the cost of damage/charges) also feels like a reasonable
part of this package. Sometimes more unwieldy than other wands, sometimes
more useful, and definitely distinct.

The blinking chance starts at 50% and scales to 90% by ~15 evocations.

Make /warping not 100%

--------------------------------------------------------------------------------
9adf0d1baa | DracoOmega | 2024-02-26 18:49:37 -0330

Simplify and rebalance many things about Constriction
This commit significantly affects formulas for nearly every aspect of
constriction, both for and against both players and monsters. It includes
bugfixes, simplifications, and deliberate rebalancing.

Notable changes:

1) Constriction damage no longer scales over time. This had already been
   unknowingly broken for monster-applied constriction for a long time,
   and now is removed for players as well. This simplifies some internals,
   as well as making duration increases for player effects like /roots not
   scale so non-linearly

2) Constriction escape chance for players has been radically simplified.
   The old formula was very hard to intuit odds from, but when I ran the
   math, the player was overwhelmingly favored to escape most things by
   the second attempt, and still most likely to escape on a first attempt.
   Tentacled monstrosities were the notable exception, who were something
   like 2.5 times as likely to hold onto you as the next-best constrictor.

   Player escape is now independent of the constrictor's HD and is a flat
   40%, 75%, 100% chance depending on attempts. (Despite being overwhelming
   likely to escape most things by 2 attempts, there was still a long tail
   that made it theoretically possible to fail many times in a row, and I
   am not convinced this is worth preserving)

   Monster escape chance still scales with constriction power (eg: evo for
   /roots or spellpower for BVC) and now includes the monster's HD in this
   formula - intended so that /roots can be stronger earlier game than it
   currently is, while weakening the hold effect lategame without any
   investment. (This also fixes a bug where /root hold power was based on
   the player's xl....)

3) Blinking and related effects now ALWAYS escape constriction, rather than
   merely making a 'better' attempt at escape. (It was claimed that they
   previously counted as '2 escape attempts', but even this was not really
   correct - they were a single attempt that counted as if you'd already
   made one.) In practice, ?blinking was extremely likely to work against
   anything that wasn't a tmons, to the point that I think it felt
   unsatisfying that sometimes it did not. Since constriction will be more
   dangerous in various ways now, it feels fairer to allow this to be
   reliable. (It also simplifies the code somewhat.)

   Guaranteed escapes now get different messaging to hopefully make it
   clearer that they work this way.

4) Changed the EV penalty for constriction. Rather than a heavy size-based
   multiplier for monsters and an ignorable -3 EV for players, it applies
   a flat -10 EV to both. This should make that penalty actually matter
   for players and reduce some of the most lopsided uses of the EV
   reduction against enemies, while also simplifying.

   (Monsters being constricted and monsters held in webs/nets previously
   shared the same complex penalty. Now constriction applies before these,
   but can stack. Webs are simplified to ignore monster size now also)

5) Rebalanced damage/duration of most source of constriction in the game.

   Enemy melee constriction damage is now randomized (it didn't used to be)
   and somewhat higher. (Also displays on xv!).

   Grasping Roots has a higher minimum duration but a lower maximum
   (previously only the maximum scaled with power, resulting in duration
   ranges like 2-21 turns). Damage is decreased (in compensation with being
   harder to escape and penalizing EV more). If this results in defanging
   Shambling Mangroves, they can be adjusted.
    -While enemy BVC isn't used much yet, I am intending to leave it
     actively into being a short-duration, higher-damage effect while roots
     is a high-duration, lower-damage effect.

   Player melee constriction is no longer based directly on player str
   (25 str characters used to do 5x the damage of 5 str characters!), but
   purely a function of XL.

   Damage of all player sources increased somewhat, to compensate for no
   longer scaling over time.

   Wand of roots lasts longer and does more damage at low power.
   (the old non-linear damage scaling from duration left it pretty mediocre
   at low power)

6) Because I expect melee constriction against the player to feel stronger
   from most sources, I have reduced the chance to apply it on hit from
   100% to 66%. This may or may not turn out to be necessary, but in
   general I favour more impactful effects applied less often than mild
   ones applied all the time.

7) Better messages to differentiate roots/bvc wearing off versus being
   escaped from.

As this affects balance of many things across many parts of the game, some
time to observe how it plays out will be needed, and I imagine other
numerical tweaks will happen subsequently. But I hope this is a better
baseline from which to work.

--------------------------------------------------------------------------------
4120381aae | David Lawrence Ramsey | 2024-02-26 15:11:21 -0600

Remove Beogh follower blessing from wizmode.
Since Beogh no longer blesses followers. The only god that does that now
is TSO.

--------------------------------------------------------------------------------
623d607eb2 | Medrano83 | 2024-02-26 14:04:10 -0600

Better numeric keypad support in Linux
* Fixes #3174
* Fixes the insert, delete and clear keys
* Fixes the control variations
* Fixes some /+ and *+ combinations
* Reduces duplicate code, unixcurses_get_vi_keys is not more

--------------------------------------------------------------------------------
327783ce0c | wheals | 2024-02-26 21:00:16 +0200

Fix Duvessa shaking her weapon @at_foe@ (#2985)
Fixes #2985

--------------------------------------------------------------------------------
bf54915a1b | wheals | 2024-02-26 20:26:26 +0200

Properly render formatted strings in webtiles status tooltips (#3487)
Fixes #3487

--------------------------------------------------------------------------------
b60d49af14 | David Lawrence Ramsey | 2024-02-26 11:50:50 -0600

Reenable creating talismans in wizard mode.
By putting '%' back in as an item class option in
wizard_create_spec_object().

--------------------------------------------------------------------------------
8322af0e9e | David Lawrence Ramsey | 2024-02-26 11:19:31 -0600

Check innate monster umbra first, before gear.
As it's done in player umbra. This also means we don't have to run max()
on the innate umbra value, since monsters don't have a god-passive umbra
to handle first as players do.

--------------------------------------------------------------------------------
0d5b953572 | David Lawrence Ramsey | 2024-02-26 11:06:00 -0600

Unbrace

--------------------------------------------------------------------------------
7272be175e | David Lawrence Ramsey | 2024-02-26 11:01:28 -0600

Handle monster halo/umbra dual-wielding.
Check for halo/umbra sources in the alt weapon slot, and handle them
properly.

--------------------------------------------------------------------------------
9fcb8cb90e | David Lawrence Ramsey | 2024-02-26 10:59:09 -0600

Handle monster h/u of radiuses other than 3.
Use whichever radius is biggest, like the player versions. Currently
no item-based halo or umbra has a radius bigger than 3, but the cases
should work.

--------------------------------------------------------------------------------
854a88b85f | David Lawrence Ramsey | 2024-02-26 10:52:36 -0600

Handle monster umbras accurately, like halos.
A monster with an innate umbra and wielding umbra-inducing gear will
now properly have whichever umbra radius is bigger. No monsters
currently have both at the same time, but the case should work.

--------------------------------------------------------------------------------
8f43bd2636 | David Lawrence Ramsey | 2024-02-26 10:52:36 -0600

Rename a variable in monster::halo_radius().
And move its initialisation down a bit.

--------------------------------------------------------------------------------
926718a23e | wheals | 2024-02-26 18:40:35 +0200

Checkwhite and fix tag upgrade.

--------------------------------------------------------------------------------
6800aa8109 | Wizard Ike | 2024-02-26 18:34:04 +0200

Remove an unnecessary check

--------------------------------------------------------------------------------
bc85f96775 | Wizard Ike | 2024-02-26 18:34:04 +0200

Don't reactivate autopickup when shafting a friendly invisible monster

--------------------------------------------------------------------------------
1188cb50b8 | Wizard Ike | 2024-02-26 18:34:04 +0200

Reactivate autopickup when polymorphing an invisible monster makes it friendly

--------------------------------------------------------------------------------
ce2fa97723 | Wizard Ike | 2024-02-26 18:34:04 +0200

Fix autopickup not deactivating when charming wears off invisible monsters

--------------------------------------------------------------------------------
f82703d296 | Wizard Ike | 2024-02-26 18:34:04 +0200

Fix toggling of autopickup when polymorphing monsters

--------------------------------------------------------------------------------
c630c63b3f | Wizard Ike | 2024-02-26 18:34:04 +0200

Fix autopickup sometimes not reactivating when invisibility ends on a monster

--------------------------------------------------------------------------------
85cd9b6c44 | Wizard Ike | 2024-02-26 18:34:04 +0200

Fix autopickup not being reactivated when shafting monsters

--------------------------------------------------------------------------------
aad2c9efd1 | Aliscans | 2024-02-26 18:11:57 +0200

Change debug_make_trap and debug_make_shop to use PromptMenu.
This reduces the amount of typing and memory needed to use these, which
seems like an improvement to me. Neither command has many valid
options, which helps.

--------------------------------------------------------------------------------
ce8dbf9607 | Aliscans | 2024-02-26 18:11:54 +0200

Use a PromptMenu for various selections in wizard mode.
Various wizmode functions functions printed a menu in the message
window, but didn't check if it would fit, and thereby hid some of the
options.

Make some use PromptMenu instead. This displays the menu in a separate
popup if it's larger than the message window, so doesn't share this
issue.

--------------------------------------------------------------------------------
70f7560b1c | elliptic | 2024-02-26 01:16:10 -0500

Fix Coglin delay-averaging rounding
Previously if you dual-wielded a 0.6 delay weapon and a 0.7 delay weapon
(for instance) all your attacks would be delay 0.6, instead of half being
0.6 and half being 0.7.

--------------------------------------------------------------------------------
2eb335deba | David Lawrence Ramsey | 2024-02-25 19:13:51 -0600

Add talisman references to Zin's Recite speech.
Since using them will make Zin excommunicate you.

--------------------------------------------------------------------------------
694b92fbcc | David Lawrence Ramsey | 2024-02-25 18:41:41 -0600

Improve Wu Jian wrath wrtr barbs/slowness.
For barbs, increase the duration of barbs rather than setting it,
capping it at 12 turns, and set the barbs' power to a maximum of 6,
depending on what it already was set to. These limits are modeled after
those of manticore barbs.

For slowness, use slow_player() to make the player slow for a certain
duration, since that function will handle things properly if the player
is already slowed.

These changes handle the cases where the player already has barbs in
them, and/or is already slowed, when Wu Jian wrath kicks in.

--------------------------------------------------------------------------------
d9500d9d98 | regret-index | 2024-02-25 20:41:51 -0330

New decorations: (unmoving) boulders
We should be very sparing on spreading almost any of various monsters used
to make various spells work. Several of them are very weak as threats (fire
vortices, ball lightnings), and several of them are essentially adding new
monsters that have to go over rigorous design criteria entirely seperate of
their functionality for a spell- for example, we're almost certainly not
going to make dryads or cactus giants anything besides glassed monsters in
a gimmick portal if every.

That said, Brom's Barrelling Boulder makes an extremely physical object
that, when made to not move as the default placement works, can reasonably
fit in any number of vaults already placing stones, large rocks, crumbled
columns, shafts, and so on looking for earthen decoration. The boulder has
a different tile when it's not rolling, and uses "dbname:still_boulder" for
a description when not moving. Do note that they should not be used for any
meaningful walls, however, since we've already got normal plants covering
most of that design space already.

The placeholder tile is an extreme edit of canofworms's Brom's spell icon.

By the way, new rule: no sokoban vaults.

--------------------------------------------------------------------------------
9ce6b883f8 | David Lawrence Ramsey | 2024-02-25 14:39:26 -0600

Rename obsolete tile references to /disint.
It was renamed to WAND_MINDBURST ages ago in non-tiles code, even if its
actual enum value hasn't changed. So rename it WAND_MINDBURST in tiles
code as well, and rename item/wand/i-disintegration.png to
item/wand/i-mindburst.png accordingly.

--------------------------------------------------------------------------------
64808676d3 | David Lawrence Ramsey | 2024-02-25 12:26:34 -0600

Make DS foul flame activate a bit more often.
Instead of 10% chance at mut level 1, 25% chance at mut level 2, and 40%
chance at mut level 3, make it 15% chance at mut level 1, 30% chance at
mut level 2, and 45% chance at mut level 3.

--------------------------------------------------------------------------------
ec4258ea6e | David Lawrence Ramsey | 2024-02-25 11:34:36 -0600

Add desc for Trog's Regen and Will++ combo.
This is mostly so mouseovers of the status on webtiles will display both
of its effects, instead of just the regen part.

--------------------------------------------------------------------------------
a82d83fd34 | David Lawrence Ramsey | 2024-02-25 11:05:48 -0600

Make autotravel account for binding sigil immunity.

--------------------------------------------------------------------------------
bc26b63f61 | David Lawrence Ramsey | 2024-02-25 08:26:31 -0600

Increase gold value of foul flame brand.
Since it's artefact-only. It also shouldn't match holy wrath here,
because it does more damage.

--------------------------------------------------------------------------------
c36836c417 | David Lawrence Ramsey | 2024-02-25 07:20:38 -0600

Fix typo.

--------------------------------------------------------------------------------
46bb8dd638 | regret-index | 2024-02-25 04:43:45 -0330

New(?) monster: thermic dynamos, for Elf and vaults elsewhere
These new monsters are meant to provide another notable nonliving monster
to Elf beyond the dancing weapons, as well as pick up the fire and ice
theme for former crystal bolts much more directly by being bejewelled
mobile elemental turbines. They're meant to be a weaker glass cannon
compared to crystal guardians- swapping their notable AC, rElec+++,
and a bit of spellpower for passable evasion, fast movement speed, and
two-individually weaker hits of AF_FIRE + AF_COLD. Arguably they're also
a little reminscient of zephyrmancers, as low-AC bolt-bouncers in Elf:
on that front, they're much harder to kill in exchange for a far easier
resistance and respecting more of AC. In exchange for their overall
weaker or comparable state they're a bit more common in Elf and various
vaults than crystal guardians were in V, occasionally banding in duos, and
also replace the latter's use in late D.

To help clarify their particular mechanics and to distance further from the
old crystal theme, Crystal Bolt spell's dual-element possibilities have
also been split into two seperate spells of Rebounding Blaze and Rebounding
Chill, which are slightly-rescaled copies of Bolt of Fire and Bolt of Cold
aside from the wall bounce. I don't know if future uses might be found for
these spells or these monsters, but they give a little more variety past
Lair branches in conjunction with the change to V's crystal guardians.

Their placeholder tile is a mix of DD's old Enter the Abyss tile and
canofworms's old tile for the Staff of Battle (before that got orbified).
The spell icon tiles, like Crystal Bolt before them, mix together
roctavian's Bolt of Fire, Bolt of Ice, and stone wall tiles.

--------------------------------------------------------------------------------
88e274e576 | regret-index | 2024-02-25 04:31:54 -0330

C. guardians / echidnas: Crystal Bolt 🡲 Crystalizing Shot (PleasingFungus)
While "notably-resistant melee enemy with a ranged attack" as an archetype
for monsters has a variety of reasonable manifestations as this point,
crystal guardians are a bit weird. The earthen theme they might brandish as
a monster made entirely of crystal instead focuses elsewhere, over to the
connection crystal walls have with bolts of cold and bolts of fire. That
particular mechanic's prominence has been mildly reduced over time, since
wands lost both and spells lost the former, and there's been a little
reduction of it versus other forms of it even on monsters (no more deep
elf conjurers, removed off of necromancers and ancient liches). While it
lets them fire through some other earthen and icy monsters, it's a bit
off compared to more direct earth themes of raw damage with a side bit of
corrosion at most.

Since Vitrify seems to have worked out relatively well as a dangerous
hex to throw around, I'm making them fire off a short-range projectile
shot that applies the status two thirds of the time it hits and deals
any damage. Refined crystal monster making one as fragile as unrefined
crystal has a certain cruel logic to it, and it's one last reasonable
vector to toss the effect around for a while now by being much more
threatening to the high-ac, low-ev characters than Fragile otherwise
potentially threatens the reverse. It does do less damage on hit than the
crystal bolts did, since while it can't bolt-bounce it's inherently
multiplicative for other monsters too (like the mighting peacekeeper bands
in V they show up in most games in, or the terror that Desolation tends to
be). To orient them towards their focus on melee here, they also get a few
tweaks towards slightly less HP and AC but slightly more melee damage.
This also gives crystal echidnas the aforementioned Crystallizing Shot over
Crystal Bolt. They're quite weak for extended and mostly meant to be
generic elemental fodder for Dis, which isn't a terrible position, but as a
monster designated only for such late positioning they could do with a
mechanic of any much note when they're otherwise a faster, weaker version
of a monster already seen in V. Said vitrification should be terrifying in
Dis, which admittedly might warrant some adjustments on Dis a little later.

The Crystal Bolt spell hasn't been removed, as a one-off use of
bolt-bouncing on an element besides lightning is a reasonable mechanical
niche another monster could use with some renaming. The new Crystallizing
Shot spell tile uses both snw-0's LCS icon and Bloax's Corona icon.

--------------------------------------------------------------------------------
d044c6f0f0 | David Lawrence Ramsey | 2024-02-25 00:54:35 -0600

Fix punctuation.

--------------------------------------------------------------------------------
c2b5402982 | David Lawrence Ramsey | 2024-02-25 00:06:18 -0600

Fix spelling.

--------------------------------------------------------------------------------
b91d5d9764 | David Lawrence Ramsey | 2024-02-24 21:22:05 -0600

Add more flower names to artefacts.

--------------------------------------------------------------------------------
255bbe2f98 | David Lawrence Ramsey | 2024-02-24 13:40:21 -0600

Adjust ETC_FOUL_FLAME's colours again.
Its portion of glowing colours now consists of bright versions of both
of its umbra colours, white and brightmagenta, instead of just the
former.

--------------------------------------------------------------------------------
df13d27894 | David Lawrence Ramsey | 2024-02-24 13:01:08 -0600

Add placeholder tiles for new "Brilliance".
The new item tile is a palette-tweaked version of
UNUSED/weapons/eveningstar7.png, and the new hand1 tile is a
palette-tweaked version of player/hand1/eveningstar2.png.

Also, rename the new hand1 tile from mace_of_brilliance.png to
eveningstar_brilliance.png, since "Brilliance" has been an eveningstar
for awhile, and move both the old item and hand1 tiles to UNUSED.

--------------------------------------------------------------------------------
38b2580584 | regret-index | 2024-02-24 01:45:43 -0330

Vault review without end
See all the other vault review commit messages about header clean-up and
balancing according to stats and slipping in a few more recent items where
they're appropriate and what not. Also worth of note:

 * Throw around a few more of the new randart-specifying properties in some
   heavily themed vaults and wizlabs.

 * Add a few more vaults into the Elf:1 misc_elf_vault slot, and reduce the
   presence of the single one of them that places runed doors.

 * One new incomplete effort is to start specifying all Abyss non-rune
   non-exit vault items, as both higher in overall quality (since the
   kills-to-escape and rune detection changes have hurt actually bothering
   with vaults) but also of lower potential value, to discourage
   deliberately perusing earlier Abyss floors for items when they're not
   dangerous (such as before doing ziggurats or Hells).

--------------------------------------------------------------------------------
65538d4c26 | regret-index | 2024-02-24 01:45:43 -0330

Put scrub nettles in default auto-excludes (Ge0FF)
Hostile burning bushes didn't get an auto-exclude, so I missed it for the,
well, one main game vault use. Nettles should be passable rare earlygame
monsters anyway as long as they're in tunnels to work with their range 4.

Also, make autoexclusion radiuses for nettles and starflowers both
correspond to the maximum range they can hit the player, rather than
assuming they hit from full LoS.

--------------------------------------------------------------------------------
ee0a85e2a4 | Nicholas Feinberg | 2024-02-23 20:16:12 -0800

Remove Pakellas
From the OSEL set.

--------------------------------------------------------------------------------
cef59e7467 | Nicholas Feinberg | 2024-02-23 20:14:16 -0800

Remove W*/P*
Don't allow trying to wear or put on arbitrary objects. You can't!

--------------------------------------------------------------------------------
7a634219b2 | Nicholas Feinberg | 2024-02-23 20:10:01 -0800

Remove Beogh item gifts
From the OSEL set.

--------------------------------------------------------------------------------
54e5184e7a | Nicholas Feinberg | 2024-02-23 20:08:33 -0800

Coglins: --Move, +-Rings & +Resist
-Move was added to Coglins to add tactical variety, and to balance
out their big upside (dual wielding) without making major and
undesirable nerfs to skill aptitudes or HP. There were some upsides
to -Move-on-action, and it might someday return in some other context,
but ultimately very few people enjoyed it - even with considerable
work put into UI improvements, it still broke flow.

Instead, let's try doubling down on Coglins' 'no fast swap' gimmick
and remove their ability to wear rings. (It'd interfere with their
magic exo-arms, see.) I'm generally not particularly fond of equipment
restrictions, since they reduce the fun of finding gear (one of the
juciest parts of Crawl), but this is at least novel and has some
other interesting interactions with the rest of the species.

To partially compensate for this downside later on, Coglins now gain
rF+ rC+ at XL 13. We might or might not eventually replace this with
a choice between a few different 'upgrades'.

Minor notes:
- Coglins can still wear rings if they find the Macabre Finger
  Necklace. This is very silly and the UI isn't great, but unrands
  are allowed to be silly.
- Possibly we should remove rings from the % screen rather than
  showing them as 'unavailable'.

--------------------------------------------------------------------------------
a46d8fb2d5 | Nicholas Feinberg | 2024-02-23 18:03:47 -0800

Fix: marshall offhand doll parts (Namsan)
aiiiiiiiii

--------------------------------------------------------------------------------
5d8ddb3428 | Nicholas Feinberg | 2024-02-23 17:52:26 -0800

Fix: no mon weap inscrips in combat (riverfiend)
Matching the behavior for player weapons. "The goblin hits you with
the +3 mace of Famine {flame, rC+ rF- Stlth++}" doesn't need the
full inscription included every time, or any time.

--------------------------------------------------------------------------------
c8eefc90e7 | David Lawrence Ramsey | 2024-02-23 16:42:52 -0600

Fix non-damaging barbs of Wu Jian wrath (#3507).
The ATTR_BARBS_POW attribute wasn't set.

--------------------------------------------------------------------------------
5f989adc20 | David Lawrence Ramsey | 2024-02-23 15:04:09 -0600

Tweak punctuation.

--------------------------------------------------------------------------------
a4b76d3f39 | David Lawrence Ramsey | 2024-02-23 14:50:01 -0600

Make slick slippers give binding sigil immunity.
Also document this in their description.

--------------------------------------------------------------------------------
5664dac8fc | David Lawrence Ramsey | 2024-02-23 14:50:01 -0600

Move binding sigil immunity into a function.
Accordingly, disable the warning for stepping onto binding sigils if
you're immune. Also, change references to "your" sigil to "the" sigil,
so that it's not player-specific, and change the message for when
someone's immune to it to work for both players and monsters.

--------------------------------------------------------------------------------
f15d296471 | Monkooky | 2024-02-23 13:26:13 -0600

Datify changed_physiology
Add a changed physiology bool to form class and data.

[Committer's note: Updated for current trunk, and did checkwhite.]

--------------------------------------------------------------------------------
0b0b42bae7 | David Lawrence Ramsey | 2024-02-23 12:09:55 -0600

No moving via trampling/dragging if bound.
This comes into effect with Sigils of Binding and Yred's Fathomless
Shackles.

Closes #3547.

--------------------------------------------------------------------------------
3b8dbc4376 | gammafunk | 2024-02-23 11:46:51 -0600

fix: The artprops specifier for monster item specs
This commit allows artprops to be used in any items specified as part of
a monster's specification, including wizard mode and DES. I've checked
through all other calls of `items()`, and it doesn't seem there's any
other place missing these fixed properties being passed as an argument.

--------------------------------------------------------------------------------
db0f5c71e3 | David Lawrence Ramsey | 2024-02-23 08:52:36 -0600

Tweak more punctuation.

--------------------------------------------------------------------------------
0c113e4b92 | David Lawrence Ramsey | 2024-02-23 06:33:45 -0600

Tweak punctuation.

--------------------------------------------------------------------------------
26e39782c6 | elliptic | 2024-02-23 03:42:34 -0500

Swap Coglin and Barachi in the species selection screen
Even if -Move is replaced with something else, Coglin still seems likely
to be more complicated.

--------------------------------------------------------------------------------
080537f31e | David Lawrence Ramsey | 2024-02-22 22:27:37 -0600

Fix wording.

--------------------------------------------------------------------------------
f785c728e9 | David Lawrence Ramsey | 2024-02-22 22:21:44 -0600

Fix typos.

--------------------------------------------------------------------------------
3324ac0059 | gammafunk | 2024-02-22 22:14:37 -0600

fix: Exclude unrands from wizmode randart stats
Unrands are in fact not randarts. Unrands might even be fixedarts, but
no one really remembers what a fixedart is.

--------------------------------------------------------------------------------
f641b5e0b5 | gammafunk | 2024-02-22 22:14:37 -0600

doc: Document the artprops item spec tag
In the DES syntax guide, add a hopefully complete description of how to
use it along with a few important notes.

--------------------------------------------------------------------------------
e4683972fd | David Lawrence Ramsey | 2024-02-22 21:43:00 -0600

Fix messaging in Jinxbite sprite message.
Louise should be bonked with "her" weapon, not "its" weapon.

--------------------------------------------------------------------------------
4bed94c0a3 | DracoOmega | 2024-02-23 00:05:59 -0330

Don't give apostle challenges while the player is under penance
It's a strong feedbad when you can't even recruit the apostle after you
win it (since you have no god abilities while penanced)

This doesn't stop the unfortunate situation of it feeling bad if you
somehow get penance *during* a challenge, but I can't simply send the
challenge away the moment this happens or the player could deliberately
attack their own apostles to end it at-will.

--------------------------------------------------------------------------------
3038c6faba | DracoOmega | 2024-02-23 00:02:17 -0330

Fix a possible crash
I somehow keep forgetting it's possible for agent() to return null.

--------------------------------------------------------------------------------
36b1df8bed | DracoOmega | 2024-02-22 23:47:20 -0330

Fire final effects after _pre_monster_move
Enchantments tick in this function (notably poison and sticky flame),
which can result in monsters dying. Sometimes those deaths trigger a
avoided_death_fineff (Beogh deathbed conversion, defeating apostles,
bound souls being created). If that fineff is not processed before another
monster acts, the dying monster will still be in an invalid state and can
cause an assert if another monster tries to attack it.

This is hard to trigger on purpose, but it still seems reasonable to fire
final effects after each monster does its pre_move.

--------------------------------------------------------------------------------
4e6cf12409 | DracoOmega | 2024-02-22 23:47:15 -0330

Fix reflected projectiles causing the player penance if they hit an ally
If the player fired a projectile at an enemy who reflected it back, and
the it missed the player and struck an ally behind them, this would be
misattributed to the player themselves (and cause penance for Beogh / good
gods).

Change the conduct check to look at whether the agent() is the player
(which properly handles reflection blame) rather than the original
killer_type.

--------------------------------------------------------------------------------
af4921d101 | David Lawrence Ramsey | 2024-02-22 14:54:39 -0600

Add "Brilliance" quote.

--------------------------------------------------------------------------------
1f14e3f6c3 | elliptic | 2024-02-22 14:22:43 -0500

Don't place hand cannon clouds on top of the player
Previously they were more likely (1/3 chance) to place on top of the player
than on any surrounding square, since fair_adjacent_iterator always iterates
through the center first. Clouds on top of the player are also probably
less nice decoratively while being more obstructive functionally (e.g.
they block catoblepas breath), so let's just only place them adjacent
to the player.

(This commit also removes a small chance of not getting any cloud even
when there is still room adjacent to the player.)

--------------------------------------------------------------------------------
e3e1ee326f | Nicholas Feinberg | 2024-02-22 11:05:43 -0800

Fix tab with off-hand reaching

--------------------------------------------------------------------------------
4efcb1c6c7 | patrick | 2024-02-22 11:40:26 -0600

Touch up the Clear Minds Boutique just a skosh
Talismans can be randarts too, so let's let them join the fun.

--------------------------------------------------------------------------------
7902d401d8 | patrick | 2024-02-22 11:40:26 -0600

Add a shop using the new artprops feature (gammafunk)
As requested, a vault that uses the new artprops feature. Surprising
no one, it's a shop! The Clear Minds Boutique generates four randarts
which are hardcoded to include Clarity as one of their properties.

--------------------------------------------------------------------------------
387adf243f | gammafunk | 2024-02-22 11:40:26 -0600

feat: Simplify formulas for artefact properties (elliptic)
When making an item randart, there's a binomial(7, 0.3) distribution
used to assign quality from a level of 1 to 7. This is currently done by
taking a binomial with 7 trials and taking a max of this and 1. This
commit simplifies this to just be a 1 + binomial(6, 0.21), which has a
similar mean.

Additionally this commit simplifies the distribution for the number of
bad artefact properties added. The current implementation is a min of a
binomial distribution and the max allowed bad properties, which is 2
minus the number of any fixed bad properties. This binomial has a number
of trials randomized based on the quality level and random rounding,
with a fixed `p` of 0.3. The new implementation removes the min and the
dependence on quality in the binomial, making the number of trials
simply be the max allowed bad properties. The `p` is reduced to 0.21 to
keep the mean number of bad properties similar to as before.

This distribution will lead to more randarts having only 1 bad property
instead of 2 and will even out the numbers of bad properties across
randarts by quality. It's not clear that the original relationship of
bad props to quality was necessary and this new distribution is much
easier to reason about.

Here are stats for `any randart` from 10k iterations each both before
and after this distribution change:

Before:
Max # of props = 6, mean =  2.87, median = 3
Max # of good props = 5, mean =  2.45, median = 2
Max # of bad props = 2, mean =  0.42, median = 0
Max (good - bad) props = 5, avg # =  2.03

After:
Max # of props = 6, mean =  2.97, median = 3
Max # of good props = 6, mean =  2.54, median = 3
Max # of bad props = 2, mean =  0.44, median = 0
Max (good - bad) props = 6, avg # =  2.10

The means are quite similar for both types of props, so this change
shouldn't have a large effect, but will make future reasoning about
randart balance easier.

--------------------------------------------------------------------------------
84f73fd571 | gammafunk | 2024-02-22 11:40:26 -0600

feat: Rework wizmode artefact and randart stats
This commit improves a number of aspects of the Ctrl-I wizmode command
that generates statistics for acquirement and randarts. The randart
stats subcommand now accepts an arbitrary item spec instead of prompting
for an inventory item. This allows us to examine randart stats of
arbitrary item classes that can create multiple types of items, as well
as stats for randarts that use the newly implemented fixed properties.

This subcommand now prompts for a number of iterations instead of always
making ~27k. Despite doing a bit more work in item generation, it still
runs quickly enough to generate statistics for 10k items in a few
seconds on my machine. The item spec used forces randart, but for item
specs that can generate non-randart items (e.g. `any` can generate
consumables), such items are discarded and not used in the statistics.

The subcommands now write to the distinct files "acquirement_stats.txt"
and "randart_stats.txt" instead of using the same ".stats" file. Output
file creation now happens only after all input is validated and output
progress is simplified. For both subcommands, item creation happens at
the unseen origin location (0,0), eliminating message spam. Finally, the
subcommands are refactored to use central data accessors for artefact
properties, egos, etc, instead of maintaining their own independent
lists.

--------------------------------------------------------------------------------
1e417eb1c6 | gammafunk | 2024-02-22 11:40:26 -0600

feat: Specifying fixed properties for randarts
This commit adds support to item_spec to specify an arbitrary set of
artefact property values. The values are given in any item spec
according to the following syntax:

artprops:prop1:val1&prop2:val2 ...

Matches against property names are case insensitive, and properties like
rPois and ^Contam that are boolean can omit specifying the value. This
syntax can be used in any item spec, including when defining items for
vaults, giving items to monsters, etc.

When making the item, the randart property randomization considers the
fixed values in terms never overriding these values. Randart generation
considers how many good/bad properties the fixed ones add to the item
and proceeds with its usual randomization process, which means that it
may add additional random properties.

Some error checking is done on the given value ranges to prevent
negative values on properties that are only ever positive and to only
allow 0 or 1 on boolean values.

--------------------------------------------------------------------------------
08bcfe7efd | David Lawrence Ramsey | 2024-02-21 23:05:59 -0600

Fix "Brilliance" inscription: Halo -> Umbra.

--------------------------------------------------------------------------------
7d46fac7e4 | elliptic | 2024-02-21 22:07:31 -0500

Don't fail to wait off Coglin -Move due to haste randomization
When hasted player_speed() returns either 6 or 7 randomly, so it was
possible to have -Move duration set to 7 and then have a 6-aut wait action
afterwards. This commit lowers the -Move duration by 1 to make room for such
randomization.

--------------------------------------------------------------------------------
e345137cd0 | DracoOmega | 2024-02-21 21:29:22 -0330

Fix giving the player exactly 1 XP for kills they were uninvolved with
Lightly broken when I took out the 2x multiplier for player damage done,
when the last of the ally xp penalty was removed.

--------------------------------------------------------------------------------
80b497e092 | David Lawrence Ramsey | 2024-02-21 18:56:14 -0600

Give players with foul shadow night vision.
Since it's another source of umbra, and it's coming from them anyway.

--------------------------------------------------------------------------------
0bc28be9fb | David Lawrence Ramsey | 2024-02-21 17:43:23 -0600

Let ghost demons have umbras.
Currently only used for Pan lords with foul flame, who all get radius-1
umbras.

--------------------------------------------------------------------------------
d6b1d19087 | David Lawrence Ramsey | 2024-02-21 17:20:20 -0600

Consolidate halo/silence aura/umbra checks.

--------------------------------------------------------------------------------
448f42529f | David Lawrence Ramsey | 2024-02-21 14:08:57 -0600

Adjust parameters for setting monster gods.
_place_monster_set_god() only uses mgen_data's monster class and place,
so use those as parameters instead of the whole mgen_data struct. Also,
make it take the monster before those two parameters.

--------------------------------------------------------------------------------
937e6280d3 | David Lawrence Ramsey | 2024-02-21 14:08:57 -0600

Simplify setting monster gods a bit.
In _place_monster_set_god(), since priest monsters default to
GOD_NAMELESS if everything else fails, return after setting priest
monsters' god. That way, there isn't quite as long of an if/else chain.

--------------------------------------------------------------------------------
efc72b7d41 | David Lawrence Ramsey | 2024-02-21 14:08:57 -0600

Make setting monsters' gods its own function.
_place_monster_set_god() is split out of place_monster_aux(), but is
otherwise unchanged.

--------------------------------------------------------------------------------
4368416496 | Nicholas Feinberg | 2024-02-21 11:54:36 -0800

Fix: allow Vhi's with -Move (Drazool)
Since it's no longer Palentonga's Rolling Charge, it's a translocation
effect now. As such, it bypasses -Move and is only blocked by -Tele,
stasis, being a tree, etc.

--------------------------------------------------------------------------------
123bbc5fe1 | elliptic | 2024-02-21 11:34:14 -0500

Don't apply -Move on Coglin if there are no monsters left
Try this out since this seems responsible for a fair proportion of the
annoyances, e.g. players immediately wanting to manually move at the end of
a fight. This commit also tries to wipe existing -Move that might still be
remaining from a previous Coglin action if the action that concluded the
fight was fast (e.g. a fast melee attack). (In principle maybe this part
should be implemented somewhere else so that -Move is also removed if the
action concluding the fight was a fast action that doesn't normally cause
-Move (e.g. swapping a ring and having an ally kill the last enemy in that
0.5 time), but that seems super rare so this should be sufficient for
testing the change.)

Note that invisible monsters still count for this, so this does leak their
existence - this seemed better than alternatives.

--------------------------------------------------------------------------------
28b100f618 | David Lawrence Ramsey | 2024-02-20 19:30:12 -0600

Move foul_flame_monster() into melee_attack.
Since the other demonspawn mutations are handled there.

Also, improve debug messages, set beam.thrower like cloak of flames and
passive freeze, and add proper punctuation for greater damage.

--------------------------------------------------------------------------------
65e0ca0ff2 | Nicholas Feinberg | 2024-02-20 17:23:14 -0800

Fix: don't segfault on offhand unrands
Set unrand_reacts to the slot corresponding to the hand we're actually
wielding an unrand in, not always EQ_WEAPON.

This also fixes artefact staves with world_reacts functions, if they
existed, which they don't.

--------------------------------------------------------------------------------
ba97123464 | Nicholas Feinberg | 2024-02-20 17:23:14 -0800

Refactor unrand_reacts
We already set you.wield_change in every relevant world_reacts
unrand func.

--------------------------------------------------------------------------------
b849e8b480 | David Lawrence Ramsey | 2024-02-20 17:31:01 -0600

Add a few missing foul-flame-related bits.
It can rarely show up in the chaos brand, so it should be displayed
then. Also, like holy wrath, it needs to do damage to function, even if
nothing is currently immune to it.

--------------------------------------------------------------------------------
34023cf50c | David Lawrence Ramsey | 2024-02-20 13:16:47 -0600

Add a TODO.
Pan lords with foul flame touch would ideally have radius-1 umbra, but
there's no easy way to implement that right now.

--------------------------------------------------------------------------------
42da790b35 | DracoOmega | 2024-02-20 14:21:10 -0330

Fix Vhi's destination checking being player-centric (Sergey)
Even if a monster was casting Vhi's, it used only the player to determine
whether a destination tile was safe. This meant that flying monsters would
refuse to dash onto lava if the player was not flying, but also that land
monsters would happily dash into lava if the player *was* flying (and then
crash).

Thank you for your sacrifice, Bogfrid. You will be remembered.

--------------------------------------------------------------------------------
f8fd08910c | elliptic | 2024-02-20 12:38:27 -0500

Make autoexplore wait for -Move to end

--------------------------------------------------------------------------------
ceb5a3b12e | Nicholas Feinberg | 2024-02-20 08:06:41 -0800

Fix: wands don't nerf legs (elliptic)

--------------------------------------------------------------------------------
59b7d7490c | Nicholas Feinberg | 2024-02-20 07:58:09 -0800

Fix offhand wielding unrands (dolorous)
Closes #3571.

--------------------------------------------------------------------------------
2cd877353e | Nicholas Feinberg | 2024-02-20 07:46:05 -0800

Fix: Coglins get -Move for ranged/throwing

--------------------------------------------------------------------------------
3d4e8de404 | Nicholas Feinberg | 2024-02-20 07:45:04 -0800

Fix offhand-only attacks

--------------------------------------------------------------------------------
744942f433 | regret-index | 2024-02-20 03:06:04 -0330

Fix a door ficus (elliptic)

--------------------------------------------------------------------------------
d27e1419c2 | regret-index | 2024-02-20 03:04:45 -0330

Even more non-player spell icon tiles + Yred ability icon tiles
Still placeholdery, still stitching together from other old tiles, still
better than pawprints for all the webtiles players (and maybe local tiles
players eventually? Who knows?)

Spell sources:
 * Aura of Brilliance: Sastreii's Recieve Forbidden Knowledge icon and
                       Brilliance monster status icon.
 * Call of Chaos: CanOfWorms's Word of Chaos icon.
 * Call Tide: roctavian's old watery Shoals stairs.
 * Concentrate Venom: Sastreii's status icon plus Bloax's Corona icon.
 * Crystal Bolt: roctavian's Bolt of Fire + Bolt of Ice + stone wall tiles.
 * Drain Magic, Sap Magic: snw-0's icon for Pakellas's brief Sap Magic
                           invocation + Sastreii's antimagic icon.
 * Dream Dust: CanOfWorm's dream sheep tile.
 * Druid's Call: snw-0's recall icon + Sastreii's bunyip and toad tiles.
 * Entropic Weave: Ultraviolent4's corrosion status icon + Pete Hurst's
                   cobweb tiles.
 * Fire Summon: nlavsky's Major Servant icon, previously used for the Staff
                of Asmodeus's own summon ability.
 * Malign Offering: Sastreii's Dark Bargain icon, coloured like Kiku icons.
 * Regeneration: roctavian's Regeneration spell icon.
 * Sheza's Dance: Sastreii's Pain Branding icon, CanofWorms's Fugue of the
                  Fallen icon, snw-0's dancing weapon status icon and
                  summoning sigil, roctavian's glaive + morningstar tiles.
 * Summon Illusion: DD's old icon for Yred Injury mirror + snw-0's sigil.
 * Throw Ally: PleasingFungus's Lesser Beckoning icon +
               CanOfWorms's Jinxbite icon.
 * Throw Klown Pie: snw-0's jester pie tile and jester cap tile.
 * Weakening Gaze: The original rltiles See Invisible plus Sastreii's
                   Weak status icon.

Ability sources:
 * Hurl Torchlight: snw-0's Hurl Damnation + snw-0's Cleansing flame icons.
 * Fathomless Shackles: snw-0's Sanctuary + CanOfWorm's Break The Chains.

This also comes with a few alterations to already present monster summon
spells icons, to fit more in frames or with newer tiles than prior, and
some reorganization and description adjustment alongside it.

--------------------------------------------------------------------------------
8d7c456967 | DracoOmega | 2024-02-20 02:39:06 -0330

Allow scrolling the god info panel up/down
So that one can actually read a recruit's stats in an 80x24 console window,
should someone wish to do so.

For some reason, key events weren't being passed along to the default
widget input handler here, which actually meant that the oldBeogh follower
list (which could theoretically get even longer than this) did not scroll
either.

--------------------------------------------------------------------------------
0ac29734fc | Nicholas Feinberg | 2024-02-19 21:56:04 -0800

Fix: don't rev when shooting air (elliptic)
This check seems OK for now, though it's a bit bad against invisible
foes.

--------------------------------------------------------------------------------
4da7c8d6d1 | Nicholas Feinberg | 2024-02-19 21:40:07 -0800

Fix: don't call offhand weapons 'worn' (elliptic')

--------------------------------------------------------------------------------
dbcfc4233b | David Lawrence Ramsey | 2024-02-19 22:10:51 -0600

Adjust "Brilliance" description a bit.
Foul flame is only mostly gone, so to say only its lesser version
survived is not quite right.

--------------------------------------------------------------------------------
f9bc0de034 | DracoOmega | 2024-02-19 23:51:09 -0330

Fix prompt for recruiting your first apostle using the wrong hotkey
Because the code hadn't technically given the player access to the Recruit
ability yet, the game wouldn't properly report on what hotkey it WOULD
have, if the player had it.

(Also fix a bug with it still printing the reminder if the player had
apostles, but they were all dead or elsewhere)

--------------------------------------------------------------------------------
ba67e77f49 | DracoOmega | 2024-02-19 23:31:57 -0330

Improve apostle UI - show brief stats in Dismiss ability / overview
Remembering which of multiple dead apostles had which spells / items can
be a little hard, and comparing a new recruit to multiple apostles (some
of whom may also be dead) has a bit more UI friction than I wanted.

So now you can see a simplified overview of your apostles' stats (plus
those of an available recruit!) all at once in the religion screen
(replacing the previous mostly-useless companion list, leftover from older
days). Each Dismiss Apostle ability will also show the same stat place for
the apostle you're dismissing.

This block shows name, class, HP/AC/Damage, equipment, and spells. It's
generally much less featureful than xv, but should still be a meaningful
UI improvement. Additional polish may come in future, but I felt that this
already provides enough QoL benefit that it's worth pushing.

--------------------------------------------------------------------------------
52729c3a44 | David Lawrence Ramsey | 2024-02-19 19:29:10 -0600

Adjust ETC_FOUL_FLAME to make it shadowy.
It now consists of umbra colours (darkgrey and magenta), plus the
occasional flicker of white to show that it's glowing.

--------------------------------------------------------------------------------
03ac3cc0af | David Lawrence Ramsey | 2024-02-19 17:00:31 -0600

Extinguish foul flame's last glow.
Make the wielding messages for foul flame weapons mention blackness
instead of radiance.

--------------------------------------------------------------------------------
0bcb2a7693 | DracoOmega | 2024-02-19 19:20:10 -0330

Don't offer Beogh conversion to Demigods (ragingrage)
They couldn't actually *join*, but would still get peached to as if they
could (and even get the Join Beogh ability, which didn't actually work).

--------------------------------------------------------------------------------
c0d2f6eb97 | David Lawrence Ramsey | 2024-02-19 16:15:14 -0600

Rework foul flame damage to scale with XL.
Simplify the damage function as well. The new formula is based on the
spiny damage formula, and most likely still needs adjustment.

--------------------------------------------------------------------------------
2cdf64c09c | David Lawrence Ramsey | 2024-02-19 15:21:59 -0600

Reflavour foul flame as darkness, not light.
The foul glow mutation is renamed to foul shadow, and its description
has been adjusted. It loses its glow-related effects in favour of
a consistent umbra with radius 1-3 (dependent on mutation level). It's
also removed from Meteorans. At kate's suggestion, it also conflicts
with spiny, since both give retaliation-based attacks. Its placeholder
tiles are now the darkness tile in UNUSED/gui for level 3, and palette
swaps of it for levels 1 and 2.

"Brilliance" now has an umbra instead of a halo, like the ring of
Shadows, and its description has been adjusted. The rewritten lore now
describes foul flame as an overpowered umbra prototype. Its tiles need
to be redone (item/weapon/artefact/urand_brilliance.png and
player/hand1/artefact/mace_of_brilliance.png).

Foul flame's actual damage in-game is unchanged.

--------------------------------------------------------------------------------
a146dc8f6d | Nicholas Feinberg | 2024-02-19 13:01:28 -0800

Fix Maxwell's revving offhands (elliptic)
Too good a bug to keep...

--------------------------------------------------------------------------------
f177465bdf | DracoOmega | 2024-02-19 17:12:28 -0330

Don't crash when deathbed pacifying an orc standing on the stairs
They would immediately leave the level when converted, and then by the time
the revival fineff fired, they would already have stopped existing.

--------------------------------------------------------------------------------
52037ea7a9 | elliptic | 2024-02-19 14:14:59 -0500

Make autofight wait for -Move to end if it wants to move towards an enemy

--------------------------------------------------------------------------------
614e6b550b | Nicholas Feinberg | 2024-02-19 11:10:05 -0800

Fix the build?

--------------------------------------------------------------------------------
98a3e4f53e | Nicholas Feinberg | 2024-02-19 10:57:46 -0800

-Stiff, +-Move (elliptic, BountyHunterSAX)
Coglins' Stiff mutation did provide interesting dynamics in combat,
but could be very punishing of mispresses - one tab too many could
cause a very painful double turn. Try a similar dynamic with -Move
on attack/cast/throw, lasting for your turn + 1 normal action.

This is pretty similar in terms of tactical implications, since
moving at 2.0 speed is similar to waiting for 1.0 and then moving at
1.0. The upside is that this blocks dangerous moves; the downside is
that it involves more obstruction from and messaging by the UI.

Let's try it out. :)

--------------------------------------------------------------------------------
b960cd1172 | DracoOmega | 2024-02-19 13:52:25 -0330

Don't interrupt rest when allies take poison ticks
This was additionally confusing since there isn't even any message for them
taking damage this way, so it's not clear what's interrupting the player.
(And it happens a lot from incidental damage in places like Snake)

And while it's sad to lose an ally that way, the player also usually can't
do anything about this - if they're lethally poisoned, they're just going
to die. (Standing in a poison cloud does direct damage and will still
interrupt, so most ways to get *more* poisoned will still alert the player)

--------------------------------------------------------------------------------
b00f77f2df | David Lawrence Ramsey | 2024-02-19 10:12:00 -0600

Move foul glow to tier 2 demonspawn mutations.
It needs to show up more often for testing, and it's not as
game-warping as tier 3 mutations.

--------------------------------------------------------------------------------
ce5c0aab1b | David Lawrence Ramsey | 2024-02-18 23:19:22 -0600

Adjust a few Donald speech lines for new Beogh.

--------------------------------------------------------------------------------
45148b779a | Nicholas Feinberg | 2024-02-18 21:16:22 -0800

Shuffle Rev colours around (DracoOmega)

--------------------------------------------------------------------------------
2ba4f54afb | Nicholas Feinberg | 2024-02-18 20:15:39 -0800

Fix: ranged attack don't 'pierce through' orbs
In terms of messaging.

--------------------------------------------------------------------------------
c7c9bb8ef8 | Nicholas Feinberg | 2024-02-18 20:14:25 -0800

Fix: don't count CACT_BLOCK for orbs

--------------------------------------------------------------------------------
673a13063c | Nicholas Feinberg | 2024-02-18 20:14:23 -0800

Use a new helper

--------------------------------------------------------------------------------
b64034399e | Nicholas Feinberg | 2024-02-18 20:10:39 -0800

Fix: orbs aren't (divine) shields
Don't treat an orb as a shield for TSO messaging purposes.

--------------------------------------------------------------------------------
709d21d5af | David Lawrence Ramsey | 2024-02-18 20:11:52 -0600

Add a few Donald speech lines for new Yred.

--------------------------------------------------------------------------------
dd288483a6 | Nicholas Feinberg | 2024-02-18 17:25:33 -0800

Fix antimagic being pro-magic offhandedly (Lightli)
Apply the SPWPN_ANTIMAGIC max MP penalty to off-hand weapons.

--------------------------------------------------------------------------------
0a58b4a09e | David Lawrence Ramsey | 2024-02-18 19:03:54 -0600

Fix tag_upgrade build?

--------------------------------------------------------------------------------
4a20d55004 | regret-index | 2024-02-18 21:10:22 -0330

Quick vault review and decor adjustments
Some layout and gimmick reconfiguring, some rewards and monster and feature
choice tweaking, increased weight rather than decreased weight to a bunch
of extra-large V vaults because they're already unlikely to spawn with the
layout generator in the first place, and some continued emphasis of
harmlessness in some of the newer decorations.

--------------------------------------------------------------------------------
831329d5cd | regret-index | 2024-02-18 21:10:21 -0330

New decorations: caches of fruit and meat
These are meant to provide the flavour of fruit trees and groves, or people
discreting stashing away meals within settlements and fortresses, without
the attending manifold issues of the hunger clock. Many vaults on either
front end up involving the constant presence of greenery or lakes and moats
to emphasize the notions of housing; this can compliment and reduce the use
of either without interrupting as plants and water do, with relatively
straightforward decoration that shouldn't be confusable as much else.

Both of these fruit and meat piles are akin to dry fountains, not statues-
they don't block fire or movement, and solely sit on the ground. They can
also walked on without any effects beyond a rare message about stopping
to nibble at floor food. (Most of the fruit messages are trying to be
cosmopolitan, while the meat messages this time around are specifically
tailored to the various animals of the Dungeon for a little more
world-building. There's also a variety of species-specific messages.)
In console, these are green and brown % or ÷ glyphs, the same glyphs as
skeletons, which should continue to help with not flooding the screen any
more than those currently do.

(This also comes with a couple vaults being scaled for further locations
than they currently possess, since they felt workable for other contexts.)

The current fruit cache tile was made by snw-0, while the meat cache tile
components go as far back as the original rltiles project. They're a little
placeholdery- they feel a bit too item-like for now, though players
shouldn't take too long to get used to it. These, more than any other
decorative feature, would benefit from more contributions over time-
getting back sultanas, snozzcumbers, and pizza would be nice, and it would
also help to drift away from tiles that specifically invoke old carryable
items. I'd also be up for a cache of baked goods for a handful of vaults,
which could easily have some pie pile tiles for Zot....

(TODO: .rc setting for allowing fully muting the new MSGCH_DECOR_FLAVOUR,
or brightening it from a current default darkgray. If such controls get in,
maybe we could consider rare messages for other stuff, like walking over
fountains, beside animated statues, or on top of impending cloud vents?)

--------------------------------------------------------------------------------
a70f5b33bd | Nicholas Feinberg | 2024-02-18 16:03:50 -0800

More Coglin novelty titles (ragingrage)

--------------------------------------------------------------------------------
363f0df772 | David Lawrence Ramsey | 2024-02-18 17:54:43 -0600

Remove unneeded quotes from YAML files.
Some have them around species name, abbreviation, short name, adjective,
and/or genus; and some don't. (Mountain Dwarf has them around some
things and not others.) They're read properly either way, so the quotes
aren't necessary.

--------------------------------------------------------------------------------
17d16cfdc5 | Nicholas Feinberg | 2024-02-18 15:05:00 -0800

Fix: don't crash on monster ranged
Oops!

--------------------------------------------------------------------------------
951292165a | Nicholas Feinberg | 2024-02-18 14:58:13 -0800

Let coglin trees dual wield
The intent was to block the exoskeleton muts (dual wield, slow wield,
rev wield) for forms with no weapons, but to enable them for
weapon-using forms. Treeform, inconveniently, melds 'physical' muts
but also wields weapons. Let it dual-wield, since it feels very weird
for coglins to otherwise want to wield a shield in their weapon-holding
offhand, etc. Mecha-tree!

--------------------------------------------------------------------------------
7f4458d1ef | Nicholas Feinberg | 2024-02-18 14:52:33 -0800

Leave the shadows behind (elliptic)

--------------------------------------------------------------------------------
89e69b9ebe | Nicholas Feinberg | 2024-02-18 14:51:53 -0800

Fix crash on lig ending (dolorous)
With an offhanded weapon.

Resolves #3557.

--------------------------------------------------------------------------------
0012f907a2 | Nicholas Feinberg | 2024-02-18 14:38:48 -0800

Fix: don't wield items twice (SentientSupper)
Don't allow using the local tiles UI to wield the same one-handed
weapon in both hands simultaneously. Juggling is illegal and clowns
should be executed.

--------------------------------------------------------------------------------
0561d8ba88 | Nicholas Feinberg | 2024-02-18 14:36:32 -0800

Loosen up stiff coglins (Sergey, SentientSupper)
Count waiting as movement for Stiff purposes, to discourage jogging
back and forth while waiting for enemies to round a corner. (One
must infer the coglin is jogging in place within the tile.)

--------------------------------------------------------------------------------
f146ca5fe1 | Nicholas Feinberg | 2024-02-18 14:26:36 -0800

Add a very serious title (hellmonk)

--------------------------------------------------------------------------------
02c5f9f64a | Nicholas Feinberg | 2024-02-18 14:25:29 -0800

Fix: don't crash when printing stats
With offhand weapons.

--------------------------------------------------------------------------------
a990712c8d | Nicholas Feinberg | 2024-02-18 14:24:55 -0800

Fix: don't lose offhand ofter untransform (SentientSupper)

--------------------------------------------------------------------------------
2a2ee83d2c | DracoOmega | 2024-02-18 18:31:14 -0330

Interrupt autorest and travel when allies take damage
Because autorest interrupts on fewer things than resting manually does, it
was possible not to be notified of an apostle sitting in a poison cloud
and have it immediately die with one button press. This is obviously quite
bad.

Now interrupt when any visible ally takes damage, to avoid this.

I am... more than a little worried that this will create needless
interruptions in regular play and that this should be more conservative,
but the situation it's aimed at fixing is very bad, and it's been argued
that the downsides won't come up in practice. So let's see, and then maybe
try to narrow down criteria later, if it turns out there's issues.

--------------------------------------------------------------------------------
7fda0f466e | DracoOmega | 2024-02-18 18:27:09 -0330

Buff wizard apostles somewhat
I intentionally kept the weight of some spells I thought would be
especially useful on allies low, but in practice wizards often seem to be
comparing poorly to other apostles, so I think they can stand to be more
common. (This may still be too conservative?)

Also make cast frequency of attack spells a little higher, give a little
more hp, and also give bonus evasion that scales with apostle power (since
their armour never gets especially good).

--------------------------------------------------------------------------------
bd18ae22b0 | DracoOmega | 2024-02-18 18:11:20 -0330

Improve reminder for how to recruit an apostle
The game already told the player how to if they had no apostles, but
perhaps since the reminder came *after* the force_more for the apostle
being available to recruit, it was sometimes overlooked.

Now included it in the original message, colored to be hilighted more.

--------------------------------------------------------------------------------
fe756443ca | DracoOmega | 2024-02-18 16:55:40 -0330

Fix formicids being interrupted from taking stairs by dispersal traps
(And anyone else with stasis, for that matter)

Fixes #3567

--------------------------------------------------------------------------------
baf8858e17 | DracoOmega | 2024-02-18 14:42:06 -0330

Fix Scorch steam always being attributed to the player (SentientSupper)
Could cause penance when cast by a hostile apostle against a friendly one,
if the latter was standing over water.

--------------------------------------------------------------------------------
767cff9cbe | Kate | 2024-02-18 15:38:25 +0000

Fix delays not being interrupted by Rising Flame
It was possible to, for example, activate Rising Flame, start climbing a
staircase, then have the Rising Flame go off without interrupting the stair
delay. Because Rising Flame then puts a shaft underneath the player's new
location, they'd automatically jump back down the shaft as part of the
continued stair delay.

--------------------------------------------------------------------------------
c488ab431e | Kate | 2024-02-18 15:38:25 +0000

Tweak a message
And adjust spacing.

--------------------------------------------------------------------------------
758c6da2ce | grumposus | 2024-02-18 15:37:53 +0000

Make rising flame valid to use on D1 with the Orb
And cause it to win the game.

Closes #3519.

--------------------------------------------------------------------------------
289a535e89 | David Lawrence Ramsey | 2024-02-18 01:04:41 -0600

Don't list Hill Orcs in the aptitudes menu.

--------------------------------------------------------------------------------
cd93b57ba1 | David Lawrence Ramsey | 2024-02-17 19:40:41 -0600

Fix spelling.

--------------------------------------------------------------------------------
66ff23f1a4 | David Lawrence Ramsey | 2024-02-17 19:38:57 -0600

Handle joining/leaving good gods and foul flame.
Joining them makes you holy, and thus unable to use it; leaving them for
non-good gods makes you not holy, and thus able to use it.

--------------------------------------------------------------------------------
d0048a8123 | Nicholas Feinberg | 2024-02-17 16:58:32 -0800

Increase Foxfire Swarm damage
Moving it from 1d6 to 1d8 might make it a bit more competitive with
Ignis's other active. Elliptic suggested reducing the max number of
foxfires from 24 to 8 (ie going from radius 2 to 1), which *would*
make it easier to balance, but would be a terrible loss to the
spectacle of the effect. I'd rather hold off.

--------------------------------------------------------------------------------
3fb9450a1b | Nicholas Feinberg | 2024-02-17 16:44:49 -0800

Fix: goblins are not elves (dolorous)

--------------------------------------------------------------------------------
cc96a6ac99 | Nicholas Feinberg | 2024-02-17 16:08:20 -0800

New species: Coglins
Wielding weapons in each hand, Coglins are puny goblins that ride magic
exoskeletons into battle. They're slow and inflexible in many ways.
When they stop moving, their exoskeleton will be slow to move again.
When they stop swinging, their exoskeleton's strikes will be weaker until
they rev back up again. And when they switch weapons, it takes them some
time to re-attune their exoskeleton's spirit. But once they get going -
look out!

More notes on mechanics:
- Dual wielding: you can choose to wield a 1h weapon instead of a shield
  in your off-hand. (Unless you're wielding a 2h in your primary hand.)
  Whenever you strike with your primary weapon, your secondary will also
  attack. This doesn't trigger extra aux attacks. You can dual-wield 1h
  ranged weapons, but mixing and matching ranged and melee weapons doesn't
  work. Delay is the average of the two. The order of attacks is random.
- Warmup strides: whenever you take a turn that's not movement, your next
  movement will take twice as long as normal. Other actions (attacks,
  spells, etc) remain normal speed.
- Warmup strikes: your ranged and melee attacks are 33% weaker until you
  fully rev up, which takes about 4.0 dAut of attacking enemies.
- Slow wielding: wielding, unwielding, or switching weapons (in both the
  primary and off-hand) takes 5 standard turns instead of 0.5.

The idea is to play in a similar space to formicid's 2h+shield ability.
Dual wielding is expected to *usually* be stronger than wielding a 2h or
1h+shield - and if it isn't, we can buff it until it is - but gear
found will sometimes prompt one to use a shield or a 2h weapon, for a
shorter or longer period. That sort of 'soft' change for gear evaluation
(as opposed to a 'hard' lockout on item types ala spriggan/kobold/ogre/etc)
seems fun and exciting.

The various downsides are intended to complement this. Dual-wielding is a
big strategic upside, so the downsides are tactical, hopefully making fights
feel a bit different without being overly obtrusive. (And slow-wielding, in
particular, is intended to avoid excessive weapon micromanagement.)

There's also an implementation of an unused 'attractivitis' mutation in this
commit. We may later turn this into a generic badmut, or cut it entirely.
downside, either!

More notes:
- Weapon names are purely cosmetic, but Esmeralda's feelings will be hurt if
  you say so.
- Apts and attributes are early drafts and especially subject to change.

--------------------------------------------------------------------------------
ed53ad6fd3 | David Lawrence Ramsey | 2024-02-17 15:27:32 -0600

Officially deprecate Hill Orcs in YAML.

--------------------------------------------------------------------------------
2c85d38dee | David Lawrence Ramsey | 2024-02-17 15:27:32 -0600

Switch Lua mutation test from HO to DE (#3551).
Since DE don't have any mutations, and HO are now deprecated.

Suggested by wheals.

Closes #3551.

--------------------------------------------------------------------------------
f317980e7c | David Lawrence Ramsey | 2024-02-17 15:27:32 -0600

Properly #ifdef out one last Hill Orc reference.

--------------------------------------------------------------------------------
b72868ee7c | David Lawrence Ramsey | 2024-02-17 08:31:08 -0600

Add more god-related names to artefacts.

--------------------------------------------------------------------------------
c6a9d31ccb | elliptic | 2024-02-17 03:00:42 -0500

Remove an outdated note about boomerangs not returning (SentientSupper)

--------------------------------------------------------------------------------
4f4d228785 | David Lawrence Ramsey | 2024-02-16 20:59:48 -0600

Consistently rename deprecated species' YAML.
All of them now start with "deprecated-".

Hill Orcs are untouched for now.

--------------------------------------------------------------------------------
3b6c037139 | David Lawrence Ramsey | 2024-02-16 20:26:12 -0600

Move species' orc names to YAML.
Humans are the only ones who don't get a specific orc name, and so
default to "Orc". Demigods get "Buggy Orc", since they shouldn't be able
to worship Beogh in the first place.

All the obsolete species get orc names, too. (Deep Dwarf is Deep Dworc
because Deep Orc is already used for Deep Elf.)

Also update documentation.

--------------------------------------------------------------------------------
c80224b05e | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Revive minmay's old "Brilliance" vault, adjusted.
It's now guarded by profane servitors instead of angels/daevas; if
"Brilliance" has already been generated, it'll now generate a randart
eveningstar of draining, pain, or vampirism instead of holy wrath; and
the item it generates no longer has the obsolete not_cursed property.

This partially reverts commit 20c470eb4851b751f159898c8d60758f7ae9a1b8.

--------------------------------------------------------------------------------
c85c4ccd42 | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Revive "Brilliance" with the foul flame brand.
Change its brand from holy wrath to foul flame, change its colour from
ETC_HOLY to ETC_FOUL_FLAME, drop its other qualities aside from its +1
enchantment, give it its old halo back, and rewrite its description to
add some lore about its corruption and the origin of the foul flame
brand.

This partially reverts commit 20c470eb4851b751f159898c8d60758f7ae9a1b8.

--------------------------------------------------------------------------------
7dcfd5f6c4 | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Revive and rename an old elemental colour.
Put the colours of ETC_SHINING back in, and rename it ETC_FOUL_FLAME.
Its colours are bright enough to use for the foul flame brand.

This partially reverts commit 4071159e5c0962697a6c6eb0299a3d1e46caf787.

--------------------------------------------------------------------------------
953bdd34fd | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Add foul flame to chaos effects, rarely.
Its unpredictability is fitting for chaos, and only a few monsters with
demonic holiness currently have the chaos attack flavour.

--------------------------------------------------------------------------------
26e6efbaab | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Add foul flame weapon attacks to Pan lords, rarely.

--------------------------------------------------------------------------------
2ccd7fcaca | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Add foul flame melee attack weapon and flavour for monsters.
Currently, the former's brand is banned from actual weapons; it's
only for monster attacks that are treated as weapons. However, all
the code needed to put it on weapons is in place.

Also, update the monster bot to account for foul flame attacks and
resistance.

--------------------------------------------------------------------------------
3bb25885a7 | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Add foul flame melee attack for players.
This is tied to the glowing mutation (you glow with foul flame).
It triggers on attacks, similarly to the foul stench melee attack. Its
functions are also modeled after those in emit_foul_stench().

--------------------------------------------------------------------------------
c1e5129a55 | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Add foul flame.
It's basically inverse cleansing flame: undead/demons take less
damage, and holies and good god worshippers take extra damage.

--------------------------------------------------------------------------------
9a4668d5da | David Lawrence Ramsey | 2024-02-16 19:05:06 -0600

Rework glowing mutation into foul glow mutation.
Turn it into a 3-level mutation, move it to tier 3 demonspawn mutations,
mark it as good, and change its messages and description accordingly.
Meteorans still keep 1 level of it, even though its nature has changed.

Also add placeholder tiles for it: palette swaps of the old Darkness
spell tile from UNUSED/gui.

--------------------------------------------------------------------------------
5eddc7eabd | DracoOmega | 2024-02-16 19:40:26 -0330

Fix Animate Dead zombies remaining after floor change
Also broken by 0a82c8690a01462b55615d2cbd8e7497dc3b9d6c but appeared to be
working correctly because of the bug fixed by 
213d36726f0033a8e4beb488114cccfd39a8a707

--------------------------------------------------------------------------------
4f8ebfe289 | Andrew O'Neill | 2024-02-16 15:08:30 -0600

Finish removing CMD_TOGGLE_TRAVEL_SPEED
This removes the CMD_TOGGLE_TRAVEL_SPEED from colemak keybindings and keybind 
help.

--------------------------------------------------------------------------------
4ea16c4597 | David Lawrence Ramsey | 2024-02-16 14:14:05 -0600

Fix punctuation.

--------------------------------------------------------------------------------
b00bd655f3 | DracoOmega | 2024-02-16 16:29:32 -0330

Nerf Light the Black torch at low piety
While I am fine with Yred being a god that offers a quicker early power
spike than most gods, it felt a bit TOO much - especially if the player
finds an early faded altar.

Light the Torch now only provides allies upon reaching 1*, and the ally
tables have been adjusted slightly so wights (and especially groups of
wights) will be less common at very low piety/xl. A few other things have
also been nudged here or there.

--------------------------------------------------------------------------------
652cfa06da | David Lawrence Ramsey | 2024-02-16 13:34:33 -0600

Tweak punctuation.

--------------------------------------------------------------------------------
e323ee73c6 | David Lawrence Ramsey | 2024-02-16 13:31:32 -0600

Fix typo.

--------------------------------------------------------------------------------
90474121c3 | David Lawrence Ramsey | 2024-02-16 13:29:07 -0600

Update species_creation.md for child_name.

--------------------------------------------------------------------------------
42642787d0 | DracoOmega | 2024-02-16 14:55:05 -0330

Unbreak telling allies to guard an area
This was broken by 0a82c8690a01462b55615d2cbd8e7497dc3b9d6c changing the
LoS check for allies to return to you from 'Does this ally currently have
LoS to the player' to 'Does this ally ever need LoS to the player to
attack', resulting in all perma-allies attempting to return to the player
every single turn - whether they could see you or not.

I've also carved out an additional exception to not return to you if you
told them to guard an area, since this is probably what the player wants
in that case.

Additionally, telling allies to follow you, or recalling them, should fully
end their travel behaviour. (Previously - and unrelated to the linked
commit - telling them to guard an area after you'd previously told them to
guard a different area would often result in them trying to run back to
the first one or something outright being stuck in place, since they would
still be trying to use pathfinding info from the previous time they did
pathfinding)

I am 100% positive travel_path is still not being cleared in all situations
that it should be, so it's possible that the minor change in
_handle_monster_travelling will uncover some additional bugs, but the code
currently seems to assume that the monster's target will be travel_path[0],
if it's travelling, and thus if anything sets its target directly, it can
cause it to perpetually freeze in place by assuming it's moving to its next
waypoint when it's not actually moving anywhere at all. Probably better to
find any other bugs as they come up rather than leave this one here.

(Probably better to refactor a lot of monster movement / behaviour code,
but HOO BOY is that a tall ask...)

--------------------------------------------------------------------------------
eb24b2cc03 | David Lawrence Ramsey | 2024-02-16 11:37:55 -0600

Flag non-mundane starting items as such (#3548).
So that they get the proper tiles for branded/enchanted items.

Closes #3548.

--------------------------------------------------------------------------------
213d36726f | DracoOmega | 2024-02-16 05:03:32 -0330

Fix Animate Dead zombies being temporary (CarefulOdds)
Accidentally broken by 0a82c8690a01462b55615d2cbd8e7497dc3b9d6c

Sorry!

--------------------------------------------------------------------------------
e6c31236d6 | David Lawrence Ramsey | 2024-02-16 00:57:03 -0600

Fix god speech substitution syntax (#3545).
The speech databases use @this@ instead of <this>.

Closes #3545.

--------------------------------------------------------------------------------
d8048dd28f | DracoOmega | 2024-02-15 20:47:36 -0330

Fix Electrolunge cast message

--------------------------------------------------------------------------------
d58f893b0d | DracoOmega | 2024-02-15 19:55:40 -0330

Prevent using Tukima's on apostles (Darby)
Even though apostles and their bands were MF_HARD_RESET (and thus don't
drop items), it was still possible to animate their weapons and then kill
them to gain a copy yourself. You could even do this repeatedly (if you
were willing to upset Beogh) to a friendly apostle, who would return from
abandoning you with a fresh copy of their weapon.

I could theoretically just have made their gear count as summoned, but that
still leaves the problem of using Tukima's *before* you recruit them and
then leaving them forever without any weapon. It seems unfun to let players
trap themselves like that, so let's just ban casting it on them.

--------------------------------------------------------------------------------
bb23cca24c | DracoOmega | 2024-02-15 19:55:40 -0330

Don't allow binding souls of phantom reflections (Darby)

--------------------------------------------------------------------------------
295baea383 | DracoOmega | 2024-02-15 19:55:40 -0330

Don't transit monsters marked as followers
Normally when entering a floor, followers (ie: things taking the stairs
with you) are placed before transiting monsters (ie: things that fell down
a shaft earlier or were banished). But Abyss generation could place
transiting monsters (sometimes multiple times?) before the normal call to
place followers.

Followers are placed near the player, while transiting monsters are placed
anywhere, so this could result in player allies seeming to disappear when
you stepped through an Abyss portal.

This also had the unfortunate side-effect of not updating the companion
list properly, so let's try to prevent it.
but transiting monsters placed randomly on the floor.

--------------------------------------------------------------------------------
a2df31511f | DracoOmega | 2024-02-15 19:55:40 -0330

Fix bound souls being saved to the companion list as hostile
This was seemingly always the case, but usually not noticable as each
level transit would update the saved copy (with the real, friendly one).
But in some cases where a soul didn't transit properly and was recalled,
it would be recalled as hostile and remain hostile forever afterward -
even after being repeatedly killed!

(It was theoretically even possible to farm unlimited items off a bound
soul this way, by recalling and killing it over and over again)

--------------------------------------------------------------------------------
9b00542b0a | DracoOmega | 2024-02-15 19:55:40 -0330

Fix dactions that could cause Ancestors/Bound Souls to incorrectly die
Because entering a new floor causes all dactions from the entire game's
history to fire (see 063869c3723e ), the dactions for losing your Hep
ancestor (due to piety loss/excommunication) or bound soul (due to binding
a new one) could happen repeatedly. This usually did nothing, but in the
Abyss in particular could cause them to simply die - a minor nuissance for
an ancestor, but a permanent mysterious loss for a bound soul.

Now we try to be a bit more picky about whether we actually kill something
with this daction: check that the player still doesn't qualify for an
ancestor, or that the bound soul we're trying to remove isn't the player's
current companion.

--------------------------------------------------------------------------------
4bb08483cd | DracoOmega | 2024-02-15 19:55:40 -0330

Make companion_is_elsewhere lie less
Companion_is_elsewhere relied on a manually updated list of what floor each
companion was supposed to be on. This was normally pretty reliable, but
there were a few cases (the Abyss in particular) where the list could THINK
they were there, but were not (eg: because the map was regenerated since
the player was last there)

Some results of this:
 -Being unable to recall followers that the game THOUGHT were on the floor
  with you, but were not
 -A particularly troublesome bug where old dactions to upgrade a Hep
  ancestor would incorrectly think the ancestor was on the current floor
  (since it wasn't 'elsewhere'!) and then try to change its weapon.
  Except, since it was referring to a monster that wasn't REALLY on the
  floor, trying to access its weapon would point to a random (probably
  undefined) item on the floor's item list instead. Tinkering with this
  could create various forms of buggy item to appear and crash the game.

Now, since we know we can't 100% trust the cached list, whenever the
list thinks a companion is on our current floor, we double-check that it
actually is. And if it is not, set its location to an invalid floor (since
it's currently effectively 'nowhere')

This should fix both above bugs and possibly some others.

--------------------------------------------------------------------------------
51ccb66acf | DracoOmega | 2024-02-15 19:55:39 -0330

Fix apostles being returned to you in the middle of AoE (Darby)
If a kill during the earlier part of an AoE attack generated enough piety
to end Beogh penance, Beogh would return your apostles to you in the middle
of that attack, which could then hit them and immediately re-penance you.

Make this a fineff as well.

--------------------------------------------------------------------------------
7eccf60f97 | DracoOmega | 2024-02-15 19:55:39 -0330

Preserve Beogh vengeance markers through polymorph (Oneirical)

--------------------------------------------------------------------------------
9c5f7be1a3 | DracoOmega | 2024-02-15 19:55:39 -0330

Remove Passwall armour bonus if the spell is interrupt
eg: by being trampled in the middle of it.

This fixes #3543

--------------------------------------------------------------------------------
e39a69d6b2 | regret-index | 2024-02-15 19:44:18 -0330

Cut another necrophage use, mildly nerf them to nerf Yred
Forgot to remove necrophages from ghoul bands when I cut them from vaults
in e446cd8. Bog bodies take up their weight entirely, so minimum and
maximum ghoul band size has been reduced in exchange.

Very early Yred is quite strong due to the many benefits at 0* needed to
make the new piety gain restrictions work. Since necrophages solely exist
for the bottom of Yred's raised Black Torch summons now, they can be a
little weaker in both damage and health to make the snowballing a little
harder at the earliest XLs working with Yred.

--------------------------------------------------------------------------------
5942d1eb2b | regret-index | 2024-02-15 19:44:17 -0330

Adjust Zig set scaling a little more
Emphasize spriggan druids in Lair floors a little less, scale Tomb / Pan /
Fire floors a little harder, let the non-Tar hells at the higher ends
emphasize a little more of the selected monsters, and screw with some
experimental quadratic scaling for Air (titans) and Earth (hell sentinels
and iron giants). Further steps still need to be taken, but this continues
to be a very quick way to continue to adjust megazigging.

--------------------------------------------------------------------------------
b3a183b876 | regret-index | 2024-02-15 19:44:17 -0330

New decorations: sacred lotuses
The opposite of demonic plants in multiple ways, sacred lotuses are holy
water-bound plants that don't wither away and have sturdiness even beyond
bushes. They provide some additional decorative plants of a more notable
nature than the old proliferation of trees and plants themselves, and are
meant to only be used in very sparing pillars and sides rather than
potential blockades like most other non-hostile plants are delegated to.

They're used in vaults for Elyvilon (as symbols of longevity), Fedhas (as
a revered plant), and the Wu Jian Council (as a symbol of elegance and
grace). In particular, the first of those provides a little more fanciness
for holy themed vaults, which focus heavily on wall and statue retiling
due to the rather limited breadth one can use holies when compared to the
wide variety of potential unholy themes. It can also provide a little bit
of fanciness to the very watery, plant-filled branches of Swamp and Shoals.

They use the old thorn lotus tile by snw-0.

--------------------------------------------------------------------------------
65e31ca853 | regret-index | 2024-02-15 19:44:17 -0330

Burning bush -> scrub nettle (monkooky)
There's been some concerns with the increase of decorations that some
non-decorative monsters shouldn't be confusable with decorative features.
Burning bushes, those weird biblical jokes, fall directly under this
concern. A regular bush can already be set on fire and use the same tile as
the other enemy in question without suddenly picking up the ability to
shoot 3d9+ Throw Flame. They're only used in one sprint, one vault's
configuration for one branch, and by Fedhas's Overgrow ability, so
modifying them into something a bit less confusable should address this
without upsetting balance too much.

The new scrub nettle is an Australian nettle, mildly enhanced in the way
dart slugs and bombardier beetles are. It uses Sting over the burning bush
Throw Flame, which gives them a partially irresistable attack that actually
scales notably directly with one's Invocations skill (since orc apostles
can get the spell for a while anyway). In exchange, the resistance is
vastly more common, they're lower HD / HP to start with, and Sting only has
a range of 4 instead of 7 (not that this is any more awkward as an ally
than the wandering mushrooms the ability already grants). This probably
doesn't upset Fedhas balance too much- Overgrow is very expensive and used
for terrain-manipulation as much as it is for turret and mushroom support.
We could look into invocations not granting such a high ratio of invo
skill versus HD _every_ plant Fedhas uses, if needed.

It might be useful in the right heavily-constrained portal, as a
introductory baby immobile in a context of Sewers already occasionally
having strange numbers of plants. If the name is somewhat questioned for
not seeming threatening while the bulk of immotile plants aren't, it can
use the far more direct name of "stinging nettle" instead.

Their placeholder tile is a deeply silly mix of the original rltiles spiny
worm, the first tile for porcupines by Malwyn, and an unused "poison
pollen" plant tile from wad left in UNUSED for twelve years.

(If these don't work out, it might be possible to set a different plant on
fire instead of bushes, or maybe make a monster that's the base for a
solitary snaplasher vine to reach out?)

--------------------------------------------------------------------------------
526f7d4993 | gammafunk | 2024-02-14 20:35:28 -0600

fix: Walls in a ghost vault (EnegeticOcto)
For gammafunk_ghost_abyssal_escape, it recently got the preserve_wall
tag added due to its use of rock in its internal layout. Unfortunately,
when this tag is present, the Vaults layout seems to replace stone wall
with rock wall at some point. Until we can figure out how to fix this,
have this vault only use metal and crystal for its random walls.

--------------------------------------------------------------------------------
5e32175d1f | David Lawrence Ramsey | 2024-02-14 19:00:26 -0600

Fix duplicate comment.

--------------------------------------------------------------------------------
1d7162e751 | Nicholas Feinberg | 2024-02-14 12:18:29 -0800

Fix: felids can't wield artefact weapons
Broken in 4224600aead45df7c84102127e7103837e200c84.

--------------------------------------------------------------------------------
91ca388d19 | Nicholas Feinberg | 2024-02-14 12:15:14 -0800

Fix dwarven adjectives (Lici)

--------------------------------------------------------------------------------
cdbe0f7f08 | DracoOmega | 2024-02-14 15:11:03 -0330

Fix one overlooked thing from the previous commit
It's not clear that the source pos ever really did anything here anyway,
as a frenzied monster will immediately pick a different nearby target
regardless.

--------------------------------------------------------------------------------
cc65242e2a | DracoOmega | 2024-02-14 15:08:38 -0330

Slightly refactor chaos_affect_defender to fix a couple of bugs
Chaos_affect_defender was a member of attack, and was used for
chaos-branded weapons, but it was ALSO used for chaos clouds. And this
meant that clouds had to construct a fake attack just to call it. This had
the consequence that there always had to be an 'attacker'. Since clouds
often have no agent, the game defaulted to having the 'attacker' be the
actor standing in the cloud.

This was capable of causing penance in the following way. A friendly
monster steps into the cloud and gets confused by it. Since they are the
'attacker' for this chaos effect, they count as having been confused by a
player-friendly source for purposes of blame tracking. (This is how the
player gets credited for kills done by monsters they confused). But then
when this confused monster triggers the cloud again, because the source of
the chaos effect (ie: themselves) was confused 'by you', YOU are considered
the source of the new debuff they recieve, which counts as you attacking
them yourself, as far as the good gods and Beogh are concerned.

I have pulled chaos_affects_defender out attacks entirely. Now it is
chaos_affects_actor() and the source is optional. It should otherwise
operate basically the same as it did prevously, aside from fixing an
additional bug where web effects from a chaos weapon incorrectly re-applied
the damage that attack did and produced weird messages.

(Note: I wasn't sure what file to put this in, so it's ended up in
clouds.cc. If someone feels strongly, they could put it somewhere else, I
guess)

--------------------------------------------------------------------------------
94eecf844d | DracoOmega | 2024-02-14 13:15:26 -0330

Fix Yred giving the wrong number of torch charges (Darby)
I am not sure how in the world I missed those elses. But also, it turns
out I missed a function that would have let me write this in a less dumb
way in the first place. Whoops.

--------------------------------------------------------------------------------
bc685e0f5f | patrick | 2024-02-14 11:38:59 -0500

Fix up randbook.txt
The comment says that the headers for multi-spell books need to have
the spell schools in alphabetical order, which was broken when
Alchemy was invented. No doubt this ruined untold numbers of games.

--------------------------------------------------------------------------------
fed3edf829 | Nicholas Feinberg | 2024-02-13 22:01:15 -0800

Fix an ||

--------------------------------------------------------------------------------
cc768c7156 | Nicholas Feinberg | 2024-02-13 21:53:56 -0800

Fix Mountain Dwarf titles (particleface)

--------------------------------------------------------------------------------
028c0f8d43 | David Lawrence Ramsey | 2024-02-13 23:01:57 -0600

Checkwhite

--------------------------------------------------------------------------------
8574905f7e | DracoOmega | 2024-02-14 01:23:09 -0330

Don't let friendly monsters use manifold assault on targets you can't see

--------------------------------------------------------------------------------
6c3d6ff0d8 | DracoOmega | 2024-02-14 01:23:09 -0330

Don't mark your own apostles for vengeance (Oneirical)
Even if they *did* kill your other apostles in a momentary act of blind
frenzy >.>

--------------------------------------------------------------------------------
fa6ab80fcc | DracoOmega | 2024-02-14 01:23:09 -0330

Clear apostle list on game start
To keep from bringing apostles from a past game into a future one.

This fixes #3534 and #3533

--------------------------------------------------------------------------------
409ee8c19d | DracoOmega | 2024-02-14 01:23:09 -0330

Reroll apostle names to avoid the player ever having two identical names
Make sure that any apostle challenge does not share a name with any of the
apostles the player already has, to avoid the confusing situation of having
two of them named the same thing.

Also remove some unneeded (or outright incorrect) code from
give_monster_proper_name

--------------------------------------------------------------------------------
fced3f9c7c | regret-index | 2024-02-13 22:55:30 -0330

New formless jellyfish tile (CanOfWorms)
A quite pretty new tile, really.

(The state of formless jellyfish themselves seems to be roughly fine after
quite a few buffs since their original implementation, but they still are
a very strange fit for V as a branch. Possibly they could be trimmed from
such and emphasized a little more in Shoals and Slime as they mechanically
and thematically fit, much more than somewhere also very close to Depths's
and Crypt's vampire knights, after V gets more monsters in the future?)

--------------------------------------------------------------------------------
e446cd8fad | regret-index | 2024-02-13 22:44:01 -0330

Vault review again again
Header cleaning, set variety increasing, early decoration overuse reducing,
later decoration use increasing, slight twitches of end balance, so on, and
so forth.

Of note:

 * Permanent bazaars no longer spawn- all bazaars are now timed. The chance
   for bazaars and bazaars alone confused people who haven't seen lots of
   them (as it's a low overall chance) into thinking they'd be portals one
   can revisit past the first trip. With the multitude of customized shop
   vaults also providing a lot more interest to shops these days, there's
   not too much pressure on bazaars

 * Necrophages have been trimmed out of vaults. Ever since rot and drain
   become intertwined, they don't really have any mechanical distinction
   beyond being an even earlier form of wight. A variety of other low-level
   undead fill their slots, depending on the vaults in question. I'm not
   removing them outright quite yet due to early Yred's xl scaling rather
   relying on them being present: it'd be good long-term to have a
   replacement for multiple early undead with their own distinguishing
   mechanics. Weeping skulls and giving misery protection the way we do for
   revenants and spectral flames might be of some use, but I'm wary of
   those appearing too often as is. (Maybe we could use some fixed skeleton
   types instead?...)

 * david_glass_crypt always places dread liches now, so one can't use a
   variety of smiting means to safely wear down any lich combinations that
   otherwise can't attack through the grates. It also finally places
   pressure plates under the tiles that will free the liches, so there's far
   less spoilers attached to the vault.

 * A few appropriately-air-themed Zot vaults that don't contain all of the
   downstairs or all of the upstairs now place storm talismans, regularly
   over the lightning rods that'd be found earlier by that point. We're
   already handing out level 9 spells in Zot vault rewards anyway, and it's
   not exactly solving Zot:5 compared to playing well enough there.

--------------------------------------------------------------------------------
b47861556a | regret-index | 2024-02-13 22:44:00 -0330

Make exactly one type of fountain not count as a watery feature (elliptic)
With the multitude of different decoration types added and upcoming, there
is a need for more consistency between them, and regular fountains were
tracked as water for a variety of mechanics while sparkling fountains did
not. Fire projectiles could make steam, sufficiently strong cold
projectiles could make freezing clouds, and while no vaults nor level gen
itself use it nor should use it these days, technically electric eels or
entire krakens could fit in a fountain. The clouds are narrow mechanical
interactions (since fountains themselves aren't that common) that don't
need to serve as player traps, while eels work better in actual bodies of
water and krakens shouldn't fit in fountains anyway.

(There's also putting out sticky flame, and the loss of that is a little
sad, but also the walk to a fountain would potentially put it out before
even getting to the fountain anyway. This also cuts some Waterstrike
and Shoals tide interactions, but Shoals doesn't exactly need fountains
to provide water there.)

Fountains now consistantly just count as floor for all intents and
purposes. This also removes feat_is_watery(), since it is entirely
redundant with feat_is_water().

(I might consider flavour messages for walking over them in the future
with an rc setting to potentially mute such, in the same vein as another
planned feature, but it should probably be tested on those first.)

--------------------------------------------------------------------------------
bfd232f637 | DracoOmega | 2024-02-13 22:18:27 -0330

Fix apostles still getting player Vhi's instead of monster Vhi's
Seems to have gotten messed up in the rebase to master.

--------------------------------------------------------------------------------
33d090a6ea | David Lawrence Ramsey | 2024-02-13 17:37:04 -0600

Fix spelling.

--------------------------------------------------------------------------------
d28b14363d | DracoOmega | 2024-02-13 19:40:15 -0330

Charge artefact text to account for Mountain Dwarf ability (ge0ff)
Now it can also be a little more specific about not working on unrands,
too.

--------------------------------------------------------------------------------
817a28345e | DracoOmega | 2024-02-13 19:39:06 -0330

Fix hostiles beyond able to follow the player through portals (various)
This was broken by 71bd2ada001b which was only intended to let you take
FRIENDLIES with you, rather than losing the old enemy avoidance behaviour.

(It's possible this was responsible for a bug that caused multiple monsters
to follow the player into the arena after using Okawaru's Duel ability,
but I've not been able to reproduce that myself.)

--------------------------------------------------------------------------------
751ec8d2e7 | David Lawrence Ramsey | 2024-02-13 14:22:11 -0600

Tweak punctuation.

--------------------------------------------------------------------------------
fdec872538 | elliptic | 2024-02-13 12:13:10 -0500

Fix reversed logic for octopode offhand punches
It gave offhand punch with shield to all non-octopodes instead.

--------------------------------------------------------------------------------
598725c5f2 | DracoOmega | 2024-02-12 18:28:39 -0330

Don't fire god conducts for allies banishing enemies

--------------------------------------------------------------------------------
0af507d5f7 | DracoOmega | 2024-02-12 17:51:53 -0330

Actually fix that on UNmarshall instead of marshall
That's what I get for rushing...

--------------------------------------------------------------------------------
c1aaa98db6 | DracoOmega | 2024-02-12 17:41:42 -0330

Fix a crash with rescaling damage_friendly
Now that damage_friendly is no longer DOUBLE the friendly damage done to a
monster, and assert could be tripped if a save file with a damaged monster
was upgraded and that monster was killed.

--------------------------------------------------------------------------------
3a0b63c28c | David Lawrence Ramsey | 2024-02-12 13:16:50 -0600

Fix wording.

--------------------------------------------------------------------------------
710106c67f | DracoOmega | 2024-02-12 13:31:48 -0330

Checkwhite
Of course, the original branch was fine and I never thought to run it for
the one new file upon rebase >.>

--------------------------------------------------------------------------------
900342706a | DracoOmega | 2024-02-12 13:00:38 -0330

Fix typoes (Oneirical)

--------------------------------------------------------------------------------
7083e1d292 | DracoOmega | 2024-02-12 13:00:38 -0330

Fix Beogh conversion HP thresholds (Oneirical)

--------------------------------------------------------------------------------
4c96c8b02c | DracoOmega | 2024-02-12 13:00:38 -0330

Give Recall Apostles at *1 instead of *3, adjust keybinds
The player cannot *get* apostles until 3*, but it felt awkward for
smiting to sometimes remove the ability of the player to call existing
apostles between levels. Now the player gets it at 1* (but the ability
will be hidden if they have not recruited any yet)

Also adjust internal ordering so the default keybind for recall and smite
aren't so weird.

--------------------------------------------------------------------------------
d26a540e39 | DracoOmega | 2024-02-12 13:00:37 -0330

Adjust Mennas's description
To account for new Orcish flavor

--------------------------------------------------------------------------------
f263e331dc | DracoOmega | 2024-02-12 13:00:37 -0330

Cosmetic orcification
Beogh worshippers now get a fake-mutation at 3* to indicate their orcish
physical features growing in. This has custom messages to try and account
for different species physiology.

(I didn't make this a real mutation since I think it should ignore most
things that would affect that and then it would need different message
overrides for different species, etc.)

This mutation remains if the player stops worshipping Beogh, but if they
then worship Zin, Zin will cleanse it from them!

--------------------------------------------------------------------------------
28f58e91f7 | DracoOmega | 2024-02-12 13:00:37 -0330

Unbreak orcish follower speech, adjust some lines
The code was still only giving special 'orcish' lines for followers and
Beogh worshippers if you were a Hill Orc, so a huge number of speech lines
could never be seen.

Beogh worshippers will now always qualify as 'related' and I have edited a
handful of speech lines for things that now feel out of theme (or otherwise
imply that random orcs follow you, as opposed to leave you along).

I also reduced the huge negative weight to allies orcs speaking, since
there are now far, far fewer of them.

This is far from a comprehensive dialogue pass, but should still improve
things.

--------------------------------------------------------------------------------
8bc2e63c94 | DracoOmega | 2024-02-12 13:00:37 -0330

Remove a leftover from ally kills giving 1/2 XP
Monsters internally track damage done to them in two categories: damage
that will give the player XP, and damage that won't (ie: walking through
natural clouds or being caught in the blast of another non-confused
enemy).

Because player allies used to give 1/2 XP, the 'XP-granting damage' value
multiplied all player damage by two (since it was 'twice as good as ally
damage') and did math with this basis.

I have simplified this to just use a standard 1-to-1 ratio in all cases.

(This incidentally fixes a bug where allies that banished enemies would
grant no XP for the banishment at all)

--------------------------------------------------------------------------------
a99f5f2d08 | DracoOmega | 2024-02-12 13:00:37 -0330

Fix Beogh conversion not being offered after abandoning your god
Due to how the level caches whether there is a possible conversion offer
on the floor upon first seeing an individual priest, if you weren't an
atheist then, they will never offer it until you leave the floor and come
back.

(Also raise the HP threshold required for conversion to be offered to 2/3
instead of 1/2)

--------------------------------------------------------------------------------
977514b4d7 | David Lawrence Ramsey | 2024-02-12 13:00:37 -0330

Adjust descriptions of gnolls and ogres.
Since orcs aren't really a species anymore, they can't be relatives,
but can still be friends.

--------------------------------------------------------------------------------
4d81122c55 | David Lawrence Ramsey | 2024-02-12 13:00:37 -0330

Update the Torch status for unlit and lit states.

--------------------------------------------------------------------------------
13f15799a3 | DracoOmega | 2024-02-12 13:00:37 -0330

Properly warn Beogh players when attacking while confused near apostles
This seems to have gotten broken when I made apostles themselves not get
angry when attacked (since them ever being hostile messed a number of
things up), but this made the warning logic no longer care that BEOGH
would still get upset.

Now it checks whether the monster can be angered *inside* bad_attack,
which seems a more logical place for it to be anyway?

--------------------------------------------------------------------------------
90196dfee5 | DracoOmega | 2024-02-12 13:00:37 -0330

Note in the log when the player recruits an apostle

--------------------------------------------------------------------------------
5325a588fe | DracoOmega | 2024-02-12 13:00:37 -0330

Fix binding The Royal Jelly's soul not opening the vault
Since Bind Soul actually *prevents* the monster's death internally (despite
what the flavor looks like...), a bunch of death triggers don't happen and
this was the most noteworthy one.

Now binding a soul will immediately fire some death triggers.

I'm... not 100% happy with this; I can't help but wonder if other
death-related things should also be being process when binding a soul, but
I've also not seen other specific complaints (and there's awkwardness with
having the original simply die, since the bound soul needs to inherit
their equipment...)

--------------------------------------------------------------------------------
f359be642f | DracoOmega | 2024-02-12 13:00:36 -0330

Add ability icons for dismiss/recruit apostle (and repurpose one for BfB)
The dismiss apostle icon even changes its appearance based on whether the
apostle is currently alive or dead!

--------------------------------------------------------------------------------
b88b685d91 | DracoOmega | 2024-02-12 13:00:36 -0330

Fix low power warriors accidentally getting throwing weapons

--------------------------------------------------------------------------------
58a3cf78d1 | DracoOmega | 2024-02-12 13:00:36 -0330

Rewrite backend handling of the player's apostles and their state
The original version of this used a whole lot of different props (and even
assembled some prop keys via a prefix and the monster's mid) and was
generally a little unwieldy (even if it did work). I have converted this
over to using a small data structure specifically for tracking apostle
state. This generally simplifies code and will probably provide future
benefits.

It also allows me to track a 'vengeance contribution' for each individual
apostle the player has, which I am using to adjust the revival formula yet
again to fix a few weird cases (eg: dismissed apostles would still
contribute a vengeance bonus upon vegeance completion, and the way piety
needed was capped could cause 3 deaths to be cheaper than 2).

**THIS WILL BREAK SAVES WORSHIPPING BEOGH PRIOR TO THIS POINT**

Or rather, players with Beogh exprimental saves that upgrade to this
version will probably lose the ability to revive apostles they have, and
other things may go wrong. But this way, things on the backend should be
better by the time we merge with trunk.

I have tested most of the interactions affected by this change, but have
no confidence I have squashed 100% of the bugs. It was tricky to set up in
the first place, so we'll have to see if people find more of them....

--------------------------------------------------------------------------------
0768ad7e14 | David Lawrence Ramsey | 2024-02-12 13:00:36 -0330

Adjust Yred nonliving death msg.
Since the black torch is now explicitly powered by souls, not bodies.

--------------------------------------------------------------------------------
62e296f0d0 | David Lawrence Ramsey | 2024-02-12 13:00:36 -0330

Fix spelling.

--------------------------------------------------------------------------------
2336e41e9f | DracoOmega | 2024-02-12 13:00:36 -0330

Leave allies behind when taking transporters without room to place them
The current behaviour when taking a transporter is that the game tries to
place all monsters coming with you near the player, and then if there is
not enough room for them, to place them anywhere else in the level. In some
rare situations this has awkward effects: for instance, if there isn't
room to place followers after a Gauntlet transporter, those followers can
be placed in inaccessible bubbles of the Gauntlet instead. This is
especially bad for Beogh worshippers, as it can lead to their apostles
immediately dying in ways you will never be able to avenge.

Instead, if there is no room to place a friendly follower near you, simply
leave them behind.

Note: a similar thing happens when travelling across stairs, and while it
also makes sense not to have elevator vaults teleport allies across a
floor, I don't think it is safe to do so in this case; we cannot choose to
leave a creature behind at its original location because that floor is
already unloaded - they would simply cease to exist entirely.

--------------------------------------------------------------------------------
d0523255b2 | DracoOmega | 2024-02-12 13:00:36 -0330

Fix a typo (Oneirical)

--------------------------------------------------------------------------------
20b91082ab | DracoOmega | 2024-02-12 13:00:36 -0330

Try to prevent wizard apostles from shoving warrior apostles out of melee
Since wizard apostles often have higher HD than warriors (for spell damage
purposes), they will happily shove warriors out of the way to get in melee
of enemies instead. This feels fairly bad and hurts their utility. Instead,
try to make warriors take frontline priority over all other apostle types.

--------------------------------------------------------------------------------
1a7d3d2297 | DracoOmega | 2024-02-12 13:00:36 -0330

Fix a few Yred Light the Torch interactions
You can now use the torch on more than a single Pan floor per game and
cannot light the torch in Abyss at all.

--------------------------------------------------------------------------------
ee83b44df3 | David Lawrence Ramsey | 2024-02-12 13:00:36 -0330

Fix wording.

--------------------------------------------------------------------------------
a9ae0c87c7 | David Lawrence Ramsey | 2024-02-12 13:00:36 -0330

Fix typo.

--------------------------------------------------------------------------------
a0f32581da | David Lawrence Ramsey | 2024-02-12 13:00:36 -0330

Fix capitalisation.

--------------------------------------------------------------------------------
c1e9edfe0b | David Lawrence Ramsey | 2024-02-12 13:00:36 -0330

Add missing Torch status description.

--------------------------------------------------------------------------------
9b2ac7c21b | David Lawrence Ramsey | 2024-02-12 13:00:36 -0330

Fix wording.

--------------------------------------------------------------------------------
97a3dcafad | David Lawrence Ramsey | 2024-02-12 13:00:36 -0330

Fix typo.

--------------------------------------------------------------------------------
63503779cc | David Lawrence Ramsey | 2024-02-12 13:00:35 -0330

Checkwhite

--------------------------------------------------------------------------------
238c146a84 | David Lawrence Ramsey | 2024-02-12 13:00:35 -0330

Re-add lost typo fix.

--------------------------------------------------------------------------------
7dfd7e7624 | DracoOmega | 2024-02-12 13:00:35 -0330

Print a reminder when you kill things with Yred without a lit torch
So long as your torch *could* still be lit on that floor, but was not.

A couple people said this might help with sometimes forgetting to do so,
and hopefully make it clearer to new players how the god works currently.

--------------------------------------------------------------------------------
4ed34f77cf | DracoOmega | 2024-02-12 13:00:35 -0330

Prevent shafting when Yred's torch is lit
In practice, I think this wasn't *really* a balance concern, but enough
people seemed to find that it felt bad that I don't think it's important to
preserve either.

--------------------------------------------------------------------------------
131f71961a | DracoOmega | 2024-02-12 13:00:35 -0330

Remove Yred piety bonus for mostly-cleared floors
This bonus was extremely small in practice (only +~1.5 extra piety for
clearing 91% instead of 66%) but multiple players assumed it was larger and
warped some of their play decisions around it. This isn't a desired effect,
so I'm simply removing the bonus entirely (but leaving the flavor messages)

If this somehow proves on overly meaningful nerf to Yred's overall piety
gain, we can tweak it up in another way.

--------------------------------------------------------------------------------
9c8e3d14eb | DracoOmega | 2024-02-12 13:00:35 -0330

Replace Hill Orcs with Mountain Dwarves
Now that Beogh allows worship from any species, it's been broadly agreed
to replace Hill Orcs with some sort of dwarf. I'm not married to the
specific name (and other people seem to care more about this), but we can
go with this at least for now.

Mountain Dwarves are intended to fill a similar role to the Hill Orc
species they are replacing - strong heavy-armor fighters who are noticably
better at casting than their Minotaur cousins (even if still middling at it
in several regards). I want to lean a little harder into them being
especially suited for heavy-armour casting. As such, they innately get 1/2
ER from their armour for purposes of spellcasting (but not for EV).
They retain HO's noteworthy +3 invo, while also offering the first Fire Apt
above +1 in the game (which old Mountain Dwarves also shared, for what it's
worth).

There have been numerous suggestions for an additional simple gimmicks, but
I'm interested in trying out this one: unlike any other species, their
cultural history as artisans for the gods lets them use enchant
weapon/armour scrolls to improve randarts. They cannot improve them above
the level that a mundane item of the same type could be improved, and
cannot affect unrandarts at all (which are conveniently a different color
these days, for clarity!). I am hoping that this gives them uniquely
interesting decisions over which items to wear in a way that is different
from other species without being too obtrusive about it. Capping things to
normal item plusses means they still can't make items stronger than
randart high-rolls already could, though it obviously increases their
consistency at finding such.

--------------------------------------------------------------------------------
8b4507520a | DracoOmega | 2024-02-12 13:00:35 -0330

Tweak apostles again
-Give them missing See Invis.
-Improve wizards' chance for a ring (and limit it to ring types that will
 actually do something helpful for them).
-Make better heavy armor types a bit less rare.
-Adjust warrior spell lists, moving the level range of Might upward and
 making several other spells more common and/or available earlier.

--------------------------------------------------------------------------------
4ae1c6de6b | DracoOmega | 2024-02-12 13:00:35 -0330

Remove Touch of Beogh's effect on spell HD
I've been slightly concerned this contributes to some overly dangerous
early encounters, but also there's currently no good way to indicate HOW
enhanced the spell damage of early wizards is. Maybe this nerfs them too
much later in the game, but who knows? (Touch of Beogh retains the
improved cast rate part of Brilliance)

--------------------------------------------------------------------------------
4addfe49e4 | DracoOmega | 2024-02-12 13:00:35 -0330

Let orc apostles walk on water
Or something close enough to it, anyway.

They basically count as amphibious in all ways, aside from being drawn
on top of water, not resisting drowning, and having different xv lines.
The code for this feels slightly hacky, but is minimal and localized, so
probably fine.

Swamp and Shouls have continued to be awkward enough for Beogh worshippers
that I think it's mechanically important to do this (and the flavor fits!)

--------------------------------------------------------------------------------
8f7c6c806a | DracoOmega | 2024-02-12 13:00:35 -0330

Tweak Beogh resurrection piety mechanics a little
The old system had a few weird issues in certain cases. Each apostle death
added to the 'total piety needed' to trigger a resurrection, while clearing
vengeance divided this 'total piety needed' by 4. But this meant that:
-Clearing vengeance 3 separate times for three separate deaths gave a
 considerably larger benefit than having all 3 of your apostles dying at
 once and avenging them together
-If you dismissed a dead apostle to recruit a new one and THAT died, you'd
 continue carrying forward the cost of the initial one who was dead. In
 some cases where avenging was not possible, this could defer resurrection
 indefinitely.
-If an apostle died with no enemies around (possibly due to posion from
 something already dead), you would NEVER get the vengeance bonus and it
 would take far longer to revive them.

Now, instead of dividing total piety needed, fulfilling vengeance counts as
getting a large lump sum of progress, and this progress is proportional to
how many apostles have been avenged. It should not matter if they die
individually or all at once.

Also, if a death does not have any targets to mark for vengeance, you will
gain the piety you WOULD have gotten from avenging them immediately.

Total piety needed for resurrection is capped (at a bit less than 3 times
the cost of reviving a single apostle), so that continuously having new
recruits die won't be needlessly punishing.

Also, I have removed the scaling of apostle revival cost by apostle power.
This had been intended to make early revivals quicker, and considered
expected piety gain in lategame to be faster anyway, but anectodally,
lategame apostles still die very quickly, so that may not have been
necessary. Will continue to keep my eye on it.

--------------------------------------------------------------------------------
4aeb71bd7c | David Lawrence Ramsey | 2024-02-12 13:00:35 -0330

Fix punctuation.

--------------------------------------------------------------------------------
c5226419f1 | David Lawrence Ramsey | 2024-02-12 13:00:35 -0330

Fix wording.

--------------------------------------------------------------------------------
62afc2ab20 | David Lawrence Ramsey | 2024-02-12 13:00:34 -0330

Fix more typos.

--------------------------------------------------------------------------------
d9b01eff48 | David Lawrence Ramsey | 2024-02-12 13:00:34 -0330

Add a few more Beogh apostle challenges.

--------------------------------------------------------------------------------
bede89242a | David Lawrence Ramsey | 2024-02-12 13:00:34 -0330

Move Beogh apostle challenges to the database.

--------------------------------------------------------------------------------
8341cf9762 | David Lawrence Ramsey | 2024-02-12 13:00:34 -0330

Fix typos.

--------------------------------------------------------------------------------
bf95a28546 | DracoOmega | 2024-02-12 13:00:34 -0330

Fix Yred wrath summons being friendly instead of hostile

--------------------------------------------------------------------------------
61f58e8097 | brandon s allbery kf8nh | 2024-02-12 13:00:34 -0330

fix android, xcode and visual studio projects (#3517)
not that the latter two likely to work afterward
--------------------------------------------------------------------------------
8281743e1d | DracoOmega | 2024-02-12 13:00:34 -0330

Fix a ~3 turn buffer before the Bind Soul debuff wears off
Ending immediately when LoS was broken sometimes led to unexpectedly
losing your ritual without the player even realizing that a move would put
them out of sight of their target. Now give them a very short grace period
before ending the Bind Soul effect.

I really, really hate this code. Surely there is a better way to reduce
the duration of an enchantment by a specific amount than this? I didn't
want to deconstify an argument in a giant function that otherwise respects
this, though....

--------------------------------------------------------------------------------
f2bdd56232 | DracoOmega | 2024-02-12 13:00:34 -0330

Don't crash on saving game after abandoning Beogh with apostles
The dump was trying to get the name of the 'Dismiss Apostle' abilities so
that it could show actions counts in the dump and with all apostles now
erased from their internal slots, was crashing.

Also: make logs count the 3 Dismiss Apostle abilities as the same ability,
for action count purposes. This code is kinda ugly....

--------------------------------------------------------------------------------
41bdf576c2 | DracoOmega | 2024-02-12 13:00:34 -0330

Don't forbid recalling allies out of the Abyss
Since actually being banished internally 'kills' a follower, they shouldn't
be on the companion list anyway. So all this code is currently doing (I
think) is causing companions you take into the Abyss *with* you to be lost
there forever. Seems unnecessary and unfun.

--------------------------------------------------------------------------------
1cc89617d9 | DracoOmega | 2024-02-12 13:00:34 -0330

(Hopefully) fix some crashes when reviving apostles that died in portals
The game was complaining that an Ice Cave's exit didn't generate, which may
have been because it was already used to leave from (and closed).

At any rate, since the player should normally never be able to go back to
the same floor of any disconnected branch again, it should be fine not to
attempt to do cleanup on them... right?

--------------------------------------------------------------------------------
162f1d354f | DracoOmega | 2024-02-12 13:00:34 -0330

Fix Blood for Blood orcs disappearing on save load (Oneirical)
The old interlevel recall code was cleaning them up automatically (because
they were a 'divine companion' that wasn't listed as having their location
be the current floor - because of course they're not real companions at
all).

--------------------------------------------------------------------------------
9402a6c0be | DracoOmega | 2024-02-12 13:00:34 -0330

Fix a crash with handling ally_attacked interrupts from dead sources

--------------------------------------------------------------------------------
7d8823f397 | DracoOmega | 2024-02-12 13:00:34 -0330

Fix another arena crash

--------------------------------------------------------------------------------
5b61e976ea | DracoOmega | 2024-02-12 13:00:34 -0330

Don't give apostle challenges on the orb run (Oneirical)
Oops.

--------------------------------------------------------------------------------
6e0f2b54f2 | DracoOmega | 2024-02-12 13:00:34 -0330

Fix another typo

--------------------------------------------------------------------------------
424b3b579c | DracoOmega | 2024-02-12 13:00:33 -0330

Adjust Touch of Beogh and apostle power scaling (especially early)
Nudge HP of apostles down a small bit at low power, increase it a bit at
high power. Change how power capping works so that getting challenges
unusually early (monks in particular) does not result in them being
unfairly dangerous.

Change Touch of Beogh's effect on HP. Instead of a flat +50%, it now gives
a bonus that scales with apostle power (capping at the old +50% by 66 pow)

This is intended foremost to make early challenges less potentially
unfair to weaker or unlucky characters, with just a tiny bit of boosting of
lategame allies.

--------------------------------------------------------------------------------
d43e904abf | DracoOmega | 2024-02-12 13:00:33 -0330

Fix Infestation angering friendly apostles
It seems fine to just make friendlies immune to it, rather than just
relying on them not being worth any XP.

--------------------------------------------------------------------------------
3e841c5839 | DracoOmega | 2024-02-12 13:00:33 -0330

Fix some missing Beogh/Yred descriptions

--------------------------------------------------------------------------------
58d3cb9162 | DracoOmega | 2024-02-12 13:00:33 -0330

End Blood for Blood on felid death
I am very strongly side-eyeing that 'TODO' immediately below the code
added here and thinking I ought to get on with implementing that in 0.32
because this feels like it's getting ridiculous.

--------------------------------------------------------------------------------
2a095079e4 | DracoOmega | 2024-02-12 13:00:33 -0330

Actually properly lose memory of all apostles on abanoning Beogh
Currently, if you abandoned and rejoined, the game would let you have the
same apostles back again.

--------------------------------------------------------------------------------
5d7853fcdf | DracoOmega | 2024-02-12 13:00:33 -0330

Don't crash on dismissing apostles lost in the Abyss (Oneirical)
And probably those in some other places, too!

--------------------------------------------------------------------------------
f21637b8b4 | DracoOmega | 2024-02-12 13:00:33 -0330

Make Hurl Torchlight not damage the player, increase range 4->5
The player was already immune if they were undead or non-living, but while
I'd hoped in general that not being able to use it at point-blank range
would make positioning for it more interesting, in practice I'm not sure
this is happening (or that many zombie pileups allow *any* positioning that
could do something useful without hitting the player). So for now, let's
try it just being harmless to you.

--------------------------------------------------------------------------------
134b4720af | DracoOmega | 2024-02-12 13:00:33 -0330

Interrupt travel when player allies are attacked from out of sight
Currently, while visible animations and messages happen when allies are
shot from out of player LoS, these do not interrupt travel. This can be
somewhat unpleasant for zombies and is deeply bad for apostles (whose
deaths is a major event). Now the player should be interrupted by default
when an ally is attacked by something the player cannot see.

This uses the ME_WHACK behaviour_event() reaction, which should cover a
great deal of offensive things used against them, but possibly not
everything.

I am a little concerned at this making it harder to use travel to flee a
battle where your zombies are holding the line, but the positive QoL from
this change is obvious. We'll see if any of this ends up being a problem.

--------------------------------------------------------------------------------
8fd3fe7888 | DracoOmega | 2024-02-12 13:00:33 -0330

Don't randomize bound soul HP in the targeter

--------------------------------------------------------------------------------
3c422697ae | DracoOmega | 2024-02-12 13:00:33 -0330

Don't turn friendly orc apostles hostile, even if you hit them
Hitting them would trigger penance, which is supposed to just temporarily
remove all allies, but the first ally hit could still turn hostile and NOT
be removed (which caused multiple different subsequent buggy behaviours).

Now they are unable to be made hostile, period. (You still shouldn't hit
them)

--------------------------------------------------------------------------------
6c3fea370f | DracoOmega | 2024-02-12 13:00:33 -0330

Make dismissing divine allies on penance a fineffect
If you read ?immo around orcish allies and something hit one, you would be
blamed for the resulting flame cloud and given penance *in the middle of
an attack*, resulting in deleting the attacked monster before the attack
was done, ultimately resulting in a crash. I suspect this is the same cause
as some TSO I've seen periodically, so I am moving all divine ally
dismissal into a fineffect. This technically results in the player being
able to get more penance at a time (by hitting multiple summons at once
before they disappear), but a solution to that might be somewhat complex
and I'm not sure it's necessary.

I also removed some old code to protect against a crash that should no
longer be necessary.

--------------------------------------------------------------------------------
c998edd0f3 | DracoOmega | 2024-02-12 13:00:33 -0330

Don't issue divine challenges while taking the stairs
Beogh could send an apostle at you WHILE you were leaving a level, and then
get mad at you when you completed doing so (even though the player
literally can't stop themselves at that point)

--------------------------------------------------------------------------------
2de81325c6 | David Lawrence Ramsey | 2024-02-12 13:00:33 -0330

Adjust Recite for Yred flavour changes.
Yred is fallen now; and Lugonu, being outside both the pantheon and the
dungeon, is beyond fallen.

--------------------------------------------------------------------------------
726641d81b | regret-index | 2024-02-12 13:00:32 -0330

Add some apostle names
All of them are references to mythical or historical defeated converts of
kings, warriors, retainers, or wild men, alluding a little to the new
defeat and recruit system attached to orcish apostles. Possibly a little
more could be done with this, possibly we'll just get other sorts of
references snuck in eventually.

Also, remove Harm as an apostle name, since it collides weirdly with the
actual brand we've had for a long while now.

--------------------------------------------------------------------------------
659aec8226 | regret-index | 2024-02-12 13:00:32 -0330

Add and edit a few apostle spell tiles / descriptions / lines
Sticks to Snakes was missing a description and didn't imply the double
snake summon, which it now does. Several summon spells also get tiles:
Sticks to Snakes gets roctavian's old tile for such, Divine Armament's tile
uses the standard circle and snw-0's Tukima's Dance tile, and Summon Vermin
uses eyes from Sastreii's goliath frog and roctavian's jumping spider on
top of a modified version of roctavian's Summon Small Mammals.

--------------------------------------------------------------------------------
cdd5ff0c81 | DracoOmega | 2024-02-12 13:00:32 -0330

Fix some Beogh status tracking being buggy when a felid dies (Oneirical)

--------------------------------------------------------------------------------
9c5a3828f8 | DracoOmega | 2024-02-12 13:00:32 -0330

Fix new status icons not displaying in webtiles

--------------------------------------------------------------------------------
7b7eff50b8 | DracoOmega | 2024-02-12 13:00:32 -0330

Fix some typoes (Oneirical)

--------------------------------------------------------------------------------
edb14d6f02 | DracoOmega | 2024-02-12 13:00:32 -0330

Fix crashy Beogh wrath
In a crisis of personality, Beogh would still be added to the list of gods
that can punish you while worshipping them, but then remember they were not
supposed to do that sort of thing anymore. Then the game would become
unhappy.

--------------------------------------------------------------------------------
4bc29743d5 | DracoOmega | 2024-02-12 13:00:32 -0330

Be more consistant about announcing Beogh conversion offers
The old code clearly intended the player be guaranteed to have a priest
speak to them (and print a message about how to convert) the first time
they were eligable. But since this was in behaviour_event() it wasn't
actually guaranteed that the priest would do this on any turn. In
particular, it seemed very unlikely on turns they cast spells (though they
would sometimes not bother for many turns in a row for unclear other
reasons).

I have pulled this outside of monster behavior code entirely. When the
player qualifies for the first time, they will reliably be informed at the
start of their turn. (Priests still have the old 1/10th chance to mention
conversion at any other eligable time)

--------------------------------------------------------------------------------
d9a27e9d63 | DracoOmega | 2024-02-12 13:00:32 -0330

Fix misformatted status description (Oneirical)

--------------------------------------------------------------------------------
5303d90686 | DracoOmega | 2024-02-12 13:00:32 -0330

End Fathomless Shackles when you die as a felid (Oneirical)

--------------------------------------------------------------------------------
16b257c626 | DracoOmega | 2024-02-12 13:00:32 -0330

Fix friendly orc apostle descriptions being broken

--------------------------------------------------------------------------------
ec13966b38 | DracoOmega | 2024-02-12 13:00:32 -0330

Make it more explicit how you recruit apostles
When an apostle becomes available to recruit, if the player has none
already, the game will print an explicit reminder about the ability you
need to use to recruit them.

Also added a default force_more when recruitment is available, as well as
letting defeated apostles linger slightly longer.

--------------------------------------------------------------------------------
0494e2ba4b | DracoOmega | 2024-02-12 13:00:32 -0330

Remove an overlooked debug message

--------------------------------------------------------------------------------
eae03d5cd5 | DracoOmega | 2024-02-12 13:00:32 -0330

Fix a logic check for Light the Black Torch being inverted
Fixes being able to light the torch an unlimited number of times per
floor...

--------------------------------------------------------------------------------
f6bdb7c248 | DracoOmega | 2024-02-12 13:00:31 -0330

Fix Beogh species name changes not being visible in webtiles

--------------------------------------------------------------------------------
24b0147655 | DracoOmega | 2024-02-12 13:00:31 -0330

Fix tag upgrade build
Overlooked these earlier.

--------------------------------------------------------------------------------
7faa43753b | DracoOmega | 2024-02-12 13:00:31 -0330

Prevent using Sculpt Simulacrum on friendly/neutral units (Darby)
I considered making it prompt you and then aggro them, but this seems
simplest.

--------------------------------------------------------------------------------
18fcfa04ef | DracoOmega | 2024-02-12 13:00:31 -0330

Revamp Yredelemnul
Since their last revamp, Yredelemnul has felt in a mechanically troubled
spot. Passive reaping can be useful, but using zombies as piety/ability
payment suffers from several problems:
 -The player has essentially no god powers on a new floor
 -The opportunity cost of losing long-term allies for a short-term
  effect is frequently not equitable (this is especially true with Dark
  Bargain)
 -Piety is based on total HD of nearby zombies, while ability costs are
  based strictly on NUMBER of zombies, and the zombies to sacrifice are
  picked randomly, so it is often impossible for the player to even
  ballpark how many uses of Drain Life they have available before
  running out of piety
 -Your zombies can die out of LoS while travelling, depriving the player
  of god powers if they don't micromanage them
 -Frequently, by the time the player is in a bad situation, they no
  longer have the bodies left to perform any divine intervention at all

All in all, it's been widely agreed that the practical problems outweigh
the benefits of this system, so let's try something else entirely -
specifically aimed at addressing key weaknesses of current Yred (bad on
new floors, no panic button in bad situations) while adding a little
more flavor.

Yredelemnul is now specifically themed as a fallen 'good' god who was
exile from their number and holds a grudge against them. (They always
were the only evil god who actively disliked using holy weapons, and
profane servitors are clearly dark mirrors of angels, so let's lean into
this a little more). They specifically want their worshippers to be able
to scour floors clean of life without retreat, and give a power set to
encourage this.

-----------------------
Post-Revamp ability set
-----------------------

The player now gets an umbra upon worship, which grows with piety.
Passive reaping works only upon monsters that *die inside an umbra* (it
is fine if zombies kill them, but the player must be nearby). The should
encourage a little more active participation in battle than spell-based
necromancers often do.

Formula for reaping chance has been changed a little. Base reaping
chance starts out lower than before, but rises with piety. Your odds of
reaping an individual zombie are inversely proportional to how many HD
of them you currently control - if you have none, you will ALWAYS reap a
kill. The idea is to smooth out low-rolls when a Yred-worshipper has few
allies, while curtailing snowballing a little harder (especially at low
piety)

-------------------------------------
New 0* ability: Light the Black Torch
-------------------------------------

Raises Yred's symbol aloft and begins your conquest of the current floor
in their name.

Immediately provides the player with multiple temporary undead servants
(based on player's xl and capped by a function of their piety). This is
usable only ONCE PER FLOOR, ever. Moreover, the player *only* gains Yred
piety while the torch is lit and it will be extinguished as soon as you
leave the floor by any means. Yred will provide a message evaluating the
player's performance when they first leave a floor, as well as some
bonus piety if they have killed a majority of enemies on it before doing
so.

This is intended to help Yred's weakest period - the start of floors
when you have no zombies - while giving the player some control over
when they want to start a floor 'for real' (ie: maybe they got shafted
and just want to flee, maybe there were no monsters anywhere near the
stairs and immediate summons would be wasted, etc.). In addition, it
provides a flavorful conduct that meshes well with how zombies already
want to work.

-------------------------------
New 2* ability: Hurl Torchlight
-------------------------------

At 2* or above, whenever the player Lights the Black Torch, they will
gain a small number of charges of Hurl Torchlight that last for the rest
of that floor - 2 charges at 2* piety, rising to 5 by 5*. This is a
fireball-style projectile that deal appreciable non-elemental damage to
living/holy/demonic creatures (ie: the same types Yred can reap) and
empowers your undead minions caught in its blast - giving them
short-duration Might and a little instant energy.

This gives even more immediate level-starting power, while continuing
the theme of 'Use your per-floor resources well' and plays interestingly
with your zombie army.

As Yred prizes unique souls, killing a unique will grant an additional
charge of Torchlight.

-------------------------------
Tweak Bind Soul as a 4* ability
-------------------------------

Bind Soul was always the most unique and iconic Yred ability and this
preserves the core of it (perhaps making it even more useful) while
changing some fiddly parts of it.

Rather than applying a limited-duration status to an enemy you are
trying to bind (and thus making it rarely unpredictably fail if you
missed too often, which felt bad), the soul-ripe status has unlimited
duration, but breaks as soon as you lose LoS on the enemy you are
binding. In exchange (and to preserve some of the risk/reward feel of
the ability), you immediately lose 1/3 of your current HP to begin the
binding process (but get it back if you succeed). This combination
should make it feel dangerous to bind the most powerful souls, but leave
the player feeling they have more agency in ensuring they do.

Bound souls now have fast regeneration (a QoL fix for resting with them
out of combat), and their HP is based on a function on the original
monster's HP and the player's invocations skill rather than strictly 'HD
x 10' which had some unintuitive effects. (Bind Soul has a better
targeter that will now also inform the player of how durable their new
friend will be if they take it!)

-----------------------------------
New 5* ability: Fathomless Shackles
-----------------------------------

Aimed to offer Yred a powerful panic button that still works even if
their army has fallen apart, Fathomless Shackles is like a twisted
mirror of Sanctuary. It creates a zone on the ground which slowly
shrinks over time. So long as the player remains inside the zone, all
enemies that share it with them will be bound in place and unable to
move and will also take constant negative energy damage which heals the
player for a portion of the damage dealt (capped to prevent huge crowds
from being overly strong without also making reasonable numbers of
targets offer too little healing). Isolated souls (ie: enemies not
adjacent to any ally) take 50% more damage.

Like Sanctuary, another cannot be created while the current one remains
(even if it's become too tiny to be useful).

------------------------------------

Ideally, these changes make Yred more powerful, but also more fun to
play.

--------------------------------------------------------------------------------
71bd2ada00 | DracoOmega | 2024-02-12 13:00:31 -0330

Allow followers to enter/be recall into portal vaults
The original veto for this appears to long predate interlevel recall and
I can't help but wonder if it was an attempt to prevent followers being
lost forever inside portals. In any case, that time has long passed and I
see no good reason to forbid a player from using apostles or bound souls
in portal levels.

--------------------------------------------------------------------------------
848e6196cd | DracoOmega | 2024-02-12 13:00:31 -0330

Make Beogh/Yred recall instant again
With the number of permanent allies of Beogh capped at 3, incremental
recall felt rather silly. Sometimes it got all 3 of them in one turn and
sometimes it took 2 (with additional messages about starting/stopping
recall). This feels unnecessary.

Yred still can have a larger number of zombies at once, but given that
they are bound to a single floor and the mass armies that originally
prompted incremental recall are a thing of the past, I think we can safely
trim this code out and simplify.

--------------------------------------------------------------------------------
3f351f0dc0 | DracoOmega | 2024-02-12 13:00:31 -0330

Comprehensively overhaul Beogh
Beogh has been in a somewhat troubled place for a long time.

Micromanaging an army can be a tedious, fiddly process in Crawl, and yet
a Beogh player is punished for not doing so by losing large chunks of
their god's supposed benefit - followers getting caught on monsters out
of sight of you and dying, being shot and pulled away when you're
auto-travelling, or just in general behaving in ways not conducive to
them living. The reward for babysitting them is also lackluster; while
orcs can be powerful for a while, they fall off hard later in the game
where even warlords cannot be expected to live long against serious
threats.

But even if that were not the case, and your allies remained extremely
powerful lategame, it's arguably not good design to offer the player a
god that 'plays itself' by letting you grow an army that can handle
dangerous things with limited player intervention.

In addition, while Beogh being restricted to Hill Orcs was a
flavor-first gimmick, it was also one that limited the potential
richness of the god; not everyone wants to play a hill orc, and much of
the richness of Crawl is the combinatorics that come from being able to
pair arbitrary gods/species/backgrounds together.

And so all of that is going to change.

This commit combines years of feedback, suggestions, and design
discussions to create a completely new Beogh experience - one that
should hopefully stick to the spirit and fantasy of what Beogh offered,
while being more mechanically interesting, less tedious to play, and
offering more clearly strong upsides.

Major changes:

---------------------------------------------------------
Open Beogh worship up to all species, reflavor Beogh/orcs
---------------------------------------------------------

Beogh has received some significant rewriting to accompany this change.
Rather than simply being an intolerant god of a violent people, Beogh is
now explicitly a god of pariahs and the dispossessed. Orcs are not a
singular species which Beogh allow to worship them, but rather *anyone
who worships Beogh may rightly call themselves an orc*. The shared
physical appearance seen in the orcs of the dungeon is a result of
Beogh's power touching upon them over a long period of time; some of
those orcs may have once been humans, elves, or even octopodes.

Still outside the normal pantheon (and disliked by the Good gods),
players of all species can convert to Beogh via any orc priest if they
are at low health *and not already worshipping another god* (this is
partially to keep the Beogh status light from constantly blinking at
every player in the game forever now).

In fact, a player may now access the 'Convert to Beogh' ability while
confused, and doing so will provide minor healing and confusion removal.
Fall to your knees and the Shepherd will protect you as one of their
flock.

A significant amount of descriptive text involving Beogh has been
rewritten.

----------------------------------------------------
Remove nearly all existing orcish follower mechanics
----------------------------------------------------

Beogh worshippers no longer have normal orcish monsters join them. All
Beogh blessings (ie: improving follower weapons, bestowing additional
followers, and random healing after kills) are removed. Monsters can no
longer level up. Manually gifting weapons/armour to followers is
removed. The Resurrection ability is removed.

Hostile orcs instead have a piety-based chance to turn good neutral,
become pacified, and leave the level instead. (To preserve some of the
flavor of the old system without it leading to a large army for the
player)

---------------------------------------------------------
Replace orcish army mechanics with a new 'Apostle' system
---------------------------------------------------------

At *** piety and above, Beogh worshippers will be sent divine challenges
from Beogh. These apostles are essentially randomized uniques, generated
using a system that can scale their power over the entire course of the
game. When you defeat these apostles in battle, you can recruit them to
join you.

The player may have up to 3 apostles following them at once, and may
freely dismiss any of them to recruit a new one if they so wish.

Apostles that die do not do so permanently, but will be automatically
revived by Beogh once the player proves themselves worthy. To
differentiate this repeated ally revival as much as possible from Hep
ancestors, apostles do not come back over TIME, but rather based on
piety gained with an additional twist: Beogh wants you to avenge their
deaths.

When an apostle dies, all hostiles in sight of it at the time are marked
for vengeance. Killing all of the marked targets will greatly speed up
the dead apostle's return (currently it cuts the total piety needed to
1/4). Thus, while it is still possible to revive an apostle killed by
something you cannot afford to fight, the player is *greatly*
incentivized to find a way to do so. The aim is that this system
encourages the player to try and defend their allies, but does not
permanently punish them for failing to do so - as well as presenting
interesting difficulties when the player is forced to manage on the back
foot from time to time.

(Marked monsters currently also set their patrol points to the body of
the apostle they were marked for, to help the player find them again.
This may be a *little* weird, but I think it's worth it to avoid the
fiddliness of repeatedly autoexploring a level looking for them, and I
doubt it's meaningfully exploitable since it requires letting an apostle
die, which is a non-trivial loss in power)

Internally, the death of an apostle sets a prop for 'piety needed to
revive'. If a second apostle dies before the first comes back, the total
piety needed is increased. All apostles will always revive together -
partially for the greater impact of gaining several refreshed allies
mid-battle, and partially to reduce cycles of 'lone apostle coming back,
only to immediately die because you can't defend them without other
allies around to help'. As this is based on piety gain, Faith does help.

Generated apostles are divided into 3 archetypes: warrior, wizard, and
priest, and are generated with an internal 'power' parameter (scaling
from 0-100) that controls both their stats and what items/spells they
have access to.

-Warriors have the most HP and melee damage and get the heaviest
armour/weapons. They can know Battlecry and sometimes know a single
other spell drawn from a list of self-buffs and melee-friendly skills
like harpoon shot or Vhi's.

-Priests have medium hp/melee power, always know smite, as well as at
least one other spell drawn from a list of summoning/support spells
(with a couple specialized damage ones)

-Wizards have low melee power, but draw from a wide list of conjurations
and hexes, as well as some self-buff and utility spells (eg: haste,
blink, battlesphere)

Since apostles do not grow with the player, and have fixed stats and
gear, the idea is that the player upgrades their power over time by
getting NEW apostles who are stronger than their old ones. Ideally,
different player archetypes may favor some apostle types over others,
and specific high-roll apostles will be noteworthy and keep their value
even after the player finds other stronger ones. Choosing who to keep
should be interesting, and hoping for a particularly good apostle
exciting. But you have to defeat them first!

------------------
Apostle Challenges
------------------

An apostle challenge will be issued shortly after the player first hits
3* piety, and then every so often afterwards (based on total piety
gained, and slowly down in rate somewhat based on how many challenges
the player has already fought). They way they work is this:

Beogh announces the challenge when it is issued. Then a randomly
generated apostle (scaled based on the number of challenge previous
fought, capped by your XL) will be placed somewhere a short distance
outside of the player's sight (but with a valid path to the player's
location). The apostle and their band (if they have one) can track the
player as if the player was Marked.

Leaving the floor during a challenge will place the player under a
modest penance. (Beogh has been changed to not cause wrath effects on a
follower during penance, but this will still deprive them of their
apostles until penance is lifted.)

Hostile apostles have a buff during challenges, 'Touch of Beogh', which
multiplies their HP and acts similarly to a (weak) Might and Brilliance
(but stacks with them). The idea was to enable apostles who were
simultaneously strong enough to threaten the player when hostile, but
not too strong for the player to have as allies (when they will no
longer have this buff).

Smite is also specifically forbidden from targeting enemy apostles
(Beogh wants you to prove your own mortal abilities to them!), though
their band is fair game. (I think this is suitably flavorful, but the
biggest motivation is that otherwise Smite would be too easy a way to
simply delete any scary apostle if you wanted to, and that feels
inappropriate)

The timing of challenges is not fixed. During god_reacts(), if the
player has earned enough piety to qualify for a new challenge, the game
checks whether circumstances are suitable. Challenges will not be
issued if:
 -The player is on a rune floor, in a portal vault, or in Zot
 -The player is below 50% HP or tension is sufficiently high
 -Several attempts to find a valid space to place the apostle fail

The first two are to reduce TOO unkind to the player (apostle challenges
can be scary and they will often already have their hands full here).
The third is to avoid the expense of exhaustively checking connectivity
whenever this happens; if we can't easily find a spot, chances are the
player will be in a better location in the near future anyway.

-------------------------------------------------------
Passive ability: heals friendly apostles by doing damage
--------------------------------------------------------

Both to encourage the player to step into the fray rather than letting
allies handle things on their own AND to give the player better agency
in keeping their apostles from dying when things go bad, dealing damage
has a chance to heal friendly apostles based on the damage done.

This uses similar rules to Uskayaw for determining what damage 'counts'
(ie: ignoring summons, poison, etc.), but rather than any complicated
threat formula simply caps the total contribution of any damage instance
by the smaller of 'the remaining hp of the monster damage' and '1/2 of
that monster's max hp'. This should minimize any value the player could
get from carrying around rats or leaving a high hp monster almost dead
and simply reward wading into a fight and hurting things a whole lot.

At the end of each player turn (to minimize message spam), there is a
40% chance to take 40% of your total damage contribution that turn (if
this is more than 5) and split it evenly among all damaged apostles.
This is fairly substantial healing, but apostles are still vulnerable to
being overwhelmed and in general encouraging the player to push forward
in dicey situations instead of immediately bailing (or feeling
completely doomed to save your friends) feels good.

-------------------------------------------
Add a new capstone ability: Blood for Blood
-------------------------------------------

To replicate some of the old feeling of leading a massive orcish army
(but with less tedium and micromanagement) as well as providing the
player with a powerful button when they're on the back foot (and perhaps
have no apostles alive at all), I have added a dramatic new active
ability at 5*.

Blood for Blood costs a massive amount of piety, but summons a large
number of elite orcs around the player immediately, as well as giving
them a status that continuously spawns additional orcs just outside of
the player's LoS and has them stream in from all directions over time.
The rate of new orc spawns is inversely proportional to how many orcs
remain alive (ie: you get more of them, the fewer are otherwise still
alive).

The Blood for Blood status lasts a long time, but rapidly decays if
there are no hostile monsters in sight.

This ability can definitely be enough to turn a battle completely
around, BUT there is a heavy caveat to using it: you have to be standing
over the corpse of a dead apostle. So not only does it require you to
have lost an ally in this battle, but you need to be able to reposition
to stand on them (and remember: monsters involved in an apostle slaying
will patrol around their corpse afterwards, so you can't simply leave
and wait for them to go away).

To help with UI concerns, tiles with valid corpses are highlighted in a
way that makes them clear even if other monsters are standing on them.
Fight your way to your fallen kin and swear bloody vengeance in their
name!

----------------------
Assorted minor changes
----------------------

-Smiting costs slightly less piety
-Adjusted various descriptions

------------------- THINGS NOT YET DONE -------------------

-There's a bunch more dialogue and descriptions that need changing
-The flavor-only mutations (and associated messages) of slowly turning
 into an orc do not exist yet.
-Probably further balance adjustments!
-Try to avoid giving you apostles with the same name as one you already
 have
-Make the dismissal UI a bit clearer about which apostles are alive or
 dead
-Replace playable Hill Orcs with a different species
-Make Beogh wrath summon random apostles to fight the play
-Possibly refactor storage/handling of apostles

# Conflicts:
#	crawl-ref/source/mon-data.h
#	crawl-ref/source/mon-flags.h

--------------------------------------------------------------------------------
1008970e6a | DracoOmega | 2024-02-12 13:00:30 -0330

Add M_CAUTIOUS to make (selective) spellcasters less likely to approach
This is intended foremost for orc apostle wizards, but I think there are a
few other places where it may be appropriate (such as glowing orange
brains, whose spellset is especially hurt by waltzing up to the player
without even a melee attack)

The way it works is that if an M_CAUTIOUS monster doesn't opt to cast a
spell that turn (or use a wand, reaching attacking, etc.) but had a valid
spell it COULD have cast, and is not already in melee range of something,
it has a 2/3 chance to wait in place instead of moving forward. It's sort
of like having a cantrip that it won't ever use in place of attacking.

I am hoping this will make wizard apostles a bit better at not flinging
themselves into the jaws of death.

--------------------------------------------------------------------------------
de802753b3 | DracoOmega | 2024-02-12 13:00:30 -0330

Add Divine Armament, another spell to help round out apostle summons
Drawing upon Beogh's long history of directly granting weapons to their
followers, this spell summons a single dancing weapon. The dancing weapon
an individual apostle can summon will be identical between uses of this
spell can will be either an axe or a polearm (both of which I think are
the more interesting options for the player to have access to)

At low power, it summons either a plain war axe or trident. At medium
power, it summons either a battleaxe or glaive of electrocution. And at
max power, it summons either an executioner's axe or bardiche of speed.
Dancing weapon power also increases between these, so that the actual
power of the summon shows larger differences between tiers (and the bottom
tier is suitable to offer to the player fairly early)

Even weak dancing weapons could be dangerous early enemies for many
players, but I think Beogh worshippers' access to smite makes them uniquely
capable of dealing with these, and it will help to give priest apostles
more variety.

--------------------------------------------------------------------------------
9b8e009703 | DracoOmega | 2024-02-12 13:00:30 -0330

Remove dancing weapon power's effect on weapon speed
The formula that controls a dancing weapon's speed (based on power) was
broken in gfb02dadd07 and meant that 100 power dancing weapons were normal
speed, while ANY value lower than 100 was 1/2 that speed. Since the last
Tukima's Dance revamp, the remaining places that used variable power
dancing weapons were Beogh wrath (which mostly doesn't exist) and a
Nemelex card. Reaching 100 power with the card was pretty attainable, but
it was strange that until that point, your summon would both move and
attack at half speed.

I have removed the effect of power on speed entirely. Even if it did scale
linearly, like the other stats do, 50% power meaning 50% damage *AND* 50%
speed would be a quadratic effect on power scaling, which I don't think is
desireable.

--------------------------------------------------------------------------------
0a50e047fe | DracoOmega | 2024-02-12 13:00:30 -0330

Fix multiple issues with Nergalle's spectral orc summon, revamp her flavor
There was a bunch of jankiness with Nergall's summon spectral orcs, at
least some of it dating back from when it wasn't otherwise possible to make
spectrals of non-base-genus types (ie: only spectral orcs, not spectral orc
knights). The way the code originally 'cheated' to make them look like they
were higher-level orcs still causes large visible titles over the spectrals
in local tiles, often overlapping with each other in unreadable ways. At
the same time, the tiles were unable to display the randomized equipment
the spectrals were given. The spell also didn't properly respect its own
summon cap (and was wildly inconsistent about how much power it could
generate at a time - '1 plain orc' and '3 orc warlords' were technically
both possibilities!)

The spell now always summons 3 orcs at once (its cap). It can no longer
summon plain orcs. I have added custom tiles for spectral orc warriors,
knight, and warlords to be used only by this spell (so that their equipment
is shown). I have also made the orcs specifically spawn with unbranded
polearms and unbranded armour, so that there is no need for the player to
examine them each time they appear. Higher-level orcs have better base item
types, but there is otherwise no randomization.

At the same time, I heavily revamped Nergalle's flavor from a 'cruel and
ugly sorceress' to a 'chronicler of orcish history'. Her description and
all of her speech lines have been rewritten from scratch (to also better
line up with the flavor of the Beogh revamp). 'Summon Spectral Orcs' is
also renamed to 'Vanquished Vanguard', with the description hilighting the
polearms the spectrals are given.

Nergalle herself can no longer get warlords from this spell, but the spell
has HD-based power scaling so that Beogh apostles at higher levels will
still be able to.

--------------------------------------------------------------------------------
3bdcaaee6d | DracoOmega | 2024-02-12 13:00:29 -0330

Move monnames.txt into the monspeak database
So that Nergalle can babble about randomly named orcs.

--------------------------------------------------------------------------------
e2892a3d53 | DracoOmega | 2024-02-12 13:00:25 -0330

Don't let allies repeatedly cast blink/battlesphere with nothing around
It was mildly amusing when a Yred bound soul might do this, but it should
be a lot more regular ocurrance for allies to have these spells with
Beogh now. And an ally blinking away from you right as you autotravel to
another level, so that they miss travelling through the stairs with you, is
more than a little awkward.

--------------------------------------------------------------------------------
6316ba047a | DracoOmega | 2024-02-12 13:00:22 -0330

Fix and simplify telling monsters to retreat, add an icon to display it
Ordering friendly monsters to retreat had been partially broken for some
time by the addition of more and more things (such as zombies) to the list
of 'can't attack out of the player's los' - which caused them to
immediately bounce back to the player as soon as they left your sight.
Even worse, this made it look like they were no longer retreating, even
though they still were internally and would thus ignore all hostiles.

That part was fixed by 74bf07aea25d19011249c416dfe458c39cdb4042, but old
code that kept allies from retreating too far ahead of the player still
felt awkward in practice. I have removed the distance-based rubber-banding
entirely (possibly this was a protection from when many allies would still
attack out of los?) and increased the distance retreating allies will move
by default. Retreating allies will now also follow the player across
stairs.

Finally, I have added an icon to indicate when allies are in a retreating
state, which should make their behavior clearer to players.

Hopefully, these improvements, combined with the change to the
'stop attacking' order, will make it easier for the player to keep their
allies safe when they choose to.

--------------------------------------------------------------------------------
376ae90d61 | DracoOmega | 2024-02-12 13:00:22 -0330

Improve ally 'Stop Attacking'/'Follow Me' orders
Telling your allies to stop attacking did nominally cause them to stop
attacking, but was a little wonky.

First of all, while it made them cancel their current targets, if
something attacked them (a common occurrence in situations you'd ever need
to tell them to stop attacking in the first place), they would still
immediately switch back to attacking that things.

Secondly, it would disable ally behavior of automatically picking targets
indefinitely. If, at any point, you told your summons to 'follow you' and
later ran into an enemy, they would not engage without you attacking first
or directly commanding them. Not only was this invisible behavior, but
there was no mechanism to cancel it (without setting the pet target some
other way, such as attacking something yourself).

Now, issuing a 'follow' or 'stop attack' order to allies will also prevent
them from responding to attacks, but end automatically once the player has
spent 50 consecutive aut outside of LoS of hostiles. This number was
picked somewhat arbitrarily, but the idea was to buffer against the order
ending immediately if a hostile briefly leaves sight, but still be very
likely to have worn off by the time the player reaches something that could
be considered 'the next encounter'.

Together, this should hopefully make the order more fluidly useful for its
ostensible purpose.

--------------------------------------------------------------------------------
0a82c8690a | DracoOmega | 2024-02-12 13:00:20 -0330

Refactor/rename summon_can_attack()
This function (used to prevent player summons and other allies from
attacking outside the player's line of sight) has gotten a laundry list of
specifiers attached to it over time, as more and more things are added to
it (and more oversights are corrected). The name is also somewhat
misleading, since many of those things are not summons!

With the Beogh revamp removing one of the last cases of a perma-friendly
player ally being able to attack outside of los, I have simplified the
check greatly: now it looks entirely at whether the monster is permanently
friendly, with no other qualifiers. This means that charmed/bribed monsters
can still fight out of sight (since their 'true' attitude is not friendly)
but essentially of the existing cases in _mons_attacks_outside_los should
be subsumed more cleanly.

I've also renamed these functions, to be more clear with what they're doing
now: monster_needs_los() and monster_los_is_valid().

I also removed a couple special-cases that don't seem necessary (spectral
weapons are already banned from manual attacks elsewhere, for instance)

Fun fact: due to the exact specifiers in _mons_attacks_outside_los, charmed
death knights and profane servitors would previously refuse to attack out
of los because they worshipped Yred....

--------------------------------------------------------------------------------
22358aa1f4 | DracoOmega | 2024-02-12 13:00:19 -0330

Fix minor bugs with set_nearest_monster_foe and refactor slightly
The iterator for letting monsters pick other monsters as foes, for some
reason, used LOS_DEFAULT_RANGE, regardless of the player's current vision
range. This meant, for instance, that a monster at the extreme end of a
barachi's sight couldn't engage another monster from that distance.

The more concerning scenario - monsters still looking 7 tiles away for
targets if you're a kobold - turned out not to matter for another reason:
global los is cached using the player's LoS range, so calls to
monster::can_see() would still fail for overly far monsters - they would
just be called against targets that they would NEVER be able to see.

With that in mind, I have removed a redundent los check in _mons_check_foe,
corrected this bug, and renamed an argument for clarity.

--------------------------------------------------------------------------------
0c26625034 | DracoOmega | 2024-02-12 13:00:17 -0330

Adjust Shock/Sting damage for monsters
These spells don't really exist outside of ghosts (that also don't really
exist) and low-level apostles, but their damage was really very bad even
compared to other low-level monster spells like throw flame/frost. This
raises them both fairly appreciably, but also removes a bizarrely high
accuracy value for monster Sting.

--------------------------------------------------------------------------------
bf7ee06084 | DracoOmega | 2024-02-12 13:00:17 -0330

Tweak monster Sandblast
Make it take 1.5x as long to cast, as the player spell does. But also raise
its base damage significantly. (For some reason, it was identical to
Throw Frost/Flame, despite checking AC 3 times. Now it is significantly
more than that.)

--------------------------------------------------------------------------------
15188589b1 | DracoOmega | 2024-02-12 13:00:14 -0330

Adjust monster regeneration enchantment and add Regenerate Other
ENCH_REGENERATION was only used as part of monster Trog's Hand (which was
itself used only by spriggan berserkers). Since it merely did the
equivalent of setting the M_FAST_REGEN flag, this made berserkers heal
exactly 1 hp per turn, instead of the ~0.48 they would have healed without
it. It did last a long time, but that is frankly a pathetic amount of
healing.

ENCH_REGENERATION has now been co-opted for another simple monster spell.
It now applies regeneration on TOP of whatever natural regen a monster has
(instead of replacing it) and heals 5% of the monster's max health + 3
each turn. This should let it scale a little to the target's own toughness
and be something the player can actually feel.

Regenerate Other is a simple use of this (intended for priest apostles at
the moment) that simply applies this buff to a random injured ally in
sight.

Since this also significantly buffs Trog's Hand, I have cut its duration to
less than half. (But I'm not convinced it is even that interesting or
relevant on spriggan berserkers, who are already nearly magic-immune in the
first place, and can't even use it if they go berserk first, which they
often will. Considering cutting it from them and maybe finding a new home
for it in future.)

--------------------------------------------------------------------------------
02d7de5f7b | DracoOmega | 2024-02-12 13:00:01 -0330

Re-add Sticks to Snakes (as a priestly apostle spell)
Good appropriate flavor and helps increase priestly variety.

Summons 2 of either water moccasins, black mambas, or anacondas, based
non-randomly on spellpower (so it will be consistent for each apostle).

--------------------------------------------------------------------------------
fcd2887363 | DracoOmega | 2024-02-12 13:00:01 -0330

Fix ghosts/illusions not being able to see all player spells after amnesia
Reading ?amnesia reduces you.spell_no by 1, but simply zeroes out the spell
slot that was forgotten, without moving spells in higher slots back down.
With how player spells are iterated by ghosts, this effectively meant that
for each amnesia a player read, their top-most spell slot would become
invisible until a new spell was learned. If a player forgot multiple spells
to learn a single more expensive one (as is often the case), several of
those older spells would remain hidden.

Ghosts already skip over SPELL_NO_SPELL so let's just iterate the whole
array.

--------------------------------------------------------------------------------
3bc30c4099 | DracoOmega | 2024-02-12 13:00:01 -0330

Let monsters cast BVC
I'm not entirely happy about the number of places this duplicates code with
grasping roots rather than directly sharing it. That might be a place for
future refactoring.

--------------------------------------------------------------------------------
0b06cff994 | DracoOmega | 2024-02-12 13:00:00 -0330

Let monsters cast Lesser Beckoning
This is actually liable to be a lot stronger in monster hands than player
ones, as a non-damaging harpoon shot you can't avoid. Maybe could replace
Blink Other in Roxanne's set?

Either way, it's now available for Mara to torment poor unfortunate Warpers
with.

--------------------------------------------------------------------------------
03f2d2ab7a | DracoOmega | 2024-02-12 13:00:00 -0330

Let monsters cast Manifold Assault (and refactor a few things)
Beyond letting monsters use the spell in general, it refactors Autumn
Katana's code so that it isn't mostly-copying manifold assault code in a
separate way.

Additionally, this refactors the special handling that both of these (and
Wu Jian martial attacks) used for calculating weapon delay, so that it now
relies only player_speed() and not you.time_taken. Commits dating back
many years now suggest that it always should have worked this way, and I
have not seen any bad results in testing all of these things with some
rigor. Frankly, I'm of the opinon that you.time_taken should NEVER have any
meaning in the middle of any player action, and only after the player's
turn is complete.)

--------------------------------------------------------------------------------
4d0ad107bb | DracoOmega | 2024-02-12 13:00:00 -0330

Implement monster Kiss of Death
And give it a better message than "The negative energy hits you."

--------------------------------------------------------------------------------
6d05f22e25 | DracoOmega | 2024-02-12 12:59:58 -0330

Split monster Vhi's into Vhi's Electrolunge
Functionally very similar to player Vhi's except that it doesn't care about
the distance travelled for its damage, and simply applies a flat (HD-based)
amount of electric damage if the initial attack hits (rather than being a
multiplier on the weapon damage).

It has a different name in large part to give it a different description
when examined. xv properly shows the added damage.

(I also gave it +1 range compared to player Vhi's)

--------------------------------------------------------------------------------
6658dcf839 | DracoOmega | 2024-02-12 12:32:25 -0330

Heavily refactor Vhi's Electric Charge and let monsters use it
This removes the special-casing involved with targeting Vhi's and runs it
through a standard spell targeter instead. Also makes the spell less
player-centric so that monsters can use it. I think there's room for this
to see play outside of just ghosts/illusions as well.

Should simultaneously fix a crash caused when a monster displaced by Vhi's
triggers a dispersal trap that puts a different monster back in the
charger's way. (Now it tries repeatedly to free space until space actually
remains free).

I think it's arguable that monsters should get a bigger damage bonus from
this than players do. I may do that later.

--------------------------------------------------------------------------------
5a133617b6 | DracoOmega | 2024-02-12 12:32:25 -0330

Searing Ray monster implementation
Just for ghosts/illusions for the moment, but I think this one has real
potential on some other monsters (I have arcanists in mind in particular).
The dynamics of a channel that can be interrupted by the player moving
(either out of range or to block the beam with other monsters) feel like a
good one.

With this in mind, the monster version also lasts longer at higher power
than the player themselves can reach. If someone dislikes this, there's
always the possibility of a foxfire/marshlight split with a fancier name
for the arcanist version.

--------------------------------------------------------------------------------
7f64abb3f7 | DracoOmega | 2024-02-12 12:32:25 -0330

Implement monster foxfire (for illusions and ghosts)
Marshlight already used basically identical code to foxfire under the hood
(just with a key for cosmetic changes to it). To make this spell less
strong at the same HD, monsters cast it with half power compared to
marshlight, but it otherwise works the same way.

(Of course, this still scales up much more than the player spell at high
HD, but that's just how monster spells work in general)

--------------------------------------------------------------------------------
815546e591 | DracoOmega | 2024-02-12 12:32:25 -0330

Let monsters cast Scorch
No direct users for it for the moment, though this enables it for player
ghosts and illusions.

--------------------------------------------------------------------------------
a626bee456 | DracoOmega | 2024-02-12 12:28:27 -0330

Fix blazeheart cores being able to be knocked back (Oneirical)
In practice, this virtually never occurred, since the core is scheduled to
act immediately after the player's next turn and enemies will rarely get
any action between that and it exploding, but such a rare interaction
shouldn't cause an explosion to happen at a different location than the
player would expect.

--------------------------------------------------------------------------------
c5dd13f2a7 | DracoOmega | 2024-02-12 03:12:17 -0330

Fix a crash when !lig wears off while having a non-base default form
And probably any other hostile polymorph.

This was broken by 6027059026f005a40a6

(Using transform() directly will not exit a forced form, so we should
make sure to manually do so first. I don't believe return_to_default_form()
is called anywhere where we wouldn't want that)

--------------------------------------------------------------------------------
4625e66871 | regret-index | 2024-02-11 19:24:55 -0330

Decorate Pan a little further
 * Give a 33% chance to use one of the rune-themed Pan decorative vaults by
   nicolae in the corresponding unrand lord levels. Despite there being
   only four to five each for each of them, the bulk of such are all
   decently randomized in connectivity and pillars, while most of the rune
   levels outside of the rune vaults are already somewhat forgettable as
   their random monster sets focus more on theme than threat. (This would
   be a good place to get more vaults in the same style, which would allow
   increasing the overall odds.)

 * Add four more small vaults to the overall decorative vault pool,
   pushing it to about 14 non-specific vaults and 17 direct references.

 * Give an additional 20% chance to use one of the general decor vaults
   throughout the regular Pan floors. It's not the highest quantity for a
   technically infinite number of levels, so the chance isn't set that
   high, but the vaults available are both reasonably variable and they'll
   be frequently unseen due to the rapid rate most people dive Pan anyway.

 * Use the current flat chances of small blood fountain vaults to add an
   additional chance for decor corresponding directly to the current Ds
   enemy gods worshipped- demonic trees for Lugonu, WALL_UNDEAD bone rock
   for Kikubaaqudgha, and scintillating statues for Makhleb.

--------------------------------------------------------------------------------
6027059026 | wheals | 2024-02-11 20:12:10 +0200

Fix location effects when transforming (#3274)
In addition to the flying and diving messages mentioned in the issue
that were never printed, the all-important "Floosh!" got skipped when
swimming players left a flying form.

--------------------------------------------------------------------------------
aa9fc57931 | wheals | 2024-02-11 20:12:10 +0200

Combine swimming and water-safety for forms
Since they are now the same.

--------------------------------------------------------------------------------
f394fe61d4 | wheals | 2024-02-11 20:12:10 +0200

Let statues swim (#3081)
They were already half-swimming, in that Merfolk and Octopode statues
got their stealth bonuses while underwater.

--------------------------------------------------------------------------------
3737fec271 | wheals | 2024-02-11 20:12:10 +0200

Start shapeshifters with active talisman (#3494)

--------------------------------------------------------------------------------
e5b9942ccf | Nicholas Feinberg | 2024-02-11 08:56:57 -0800

Parenthesize (wheals)

--------------------------------------------------------------------------------
93939002d8 | SentientSupper | 2024-02-11 08:56:14 -0800

Bugfix corrosion display for weapons in webtiles
 It was displaying 4 times the corrosion for weapons

--------------------------------------------------------------------------------
ad12e124b7 | Nicholas Feinberg | 2024-02-11 08:55:51 -0800

Add SentientSupper to the CREDITS

--------------------------------------------------------------------------------
159c032296 | regret-index | 2024-02-11 03:27:26 -0330

Fix tag upgrade for submerging removal

--------------------------------------------------------------------------------
6f326f69ea | CipHuK | 2024-02-10 22:21:09 -0800

Stop asking for dragon armour toll from draconian
As draconians do not use dragon armour, it is not a big deal for them to
pay such small price to enter trove

--------------------------------------------------------------------------------
028e34cad9 | Nicholas Feinberg | 2024-02-10 22:06:10 -0800

Give krakens rArcjolt (hellmonk)
Reduce the damage that krakens (and other tentacle-creating monsters)
take from multiple hits to their tentacles in the same attack.

--------------------------------------------------------------------------------
465344b4ef | Nicholas Feinberg | 2024-02-10 21:48:40 -0800

Clean up remaining submerge code
Resolves #3504.

--------------------------------------------------------------------------------
dfa216537b | Monkooky | 2024-02-10 21:48:37 -0800

Remove (tentacle) submerge
Submerge as a mechanic introduces very unique special cases that must be guarded
against throughout the code. The untargettability it grants requires a special
check in several targetters, and the ability to temporarily coexist with
monsters makes removing the enchantment very complicated.

Right now the only monsters that can submerge are tentacle segments, for whom
the ability is fairly uninteresting. Preserving submerge for tentacle segments
is decidedly not worth the technical debt it incurs.

This does not touch the tile drawing code; it may still be possible to see
'submerged' tentacles if a tentacle somehow gets disconnected. There may be
vestigial code for drawing other submerged entities.

--------------------------------------------------------------------------------
7d2b172a6e | SentientSupper | 2024-02-10 21:19:13 -0800

Change how rCorr interacts with corrosion stacks on the player
Protecting yourself against corrosion feels bad because of how
inconsistent it is.

Each stack of corrosion on the players reduces AC and slay by 1.
Quadrupled most sources of corrosion to compensate. Having corrosion
resistance will halve the number of stacks applied to the player
instead of a coinflip chance to prevent the status entirely.

--------------------------------------------------------------------------------
dd6c86a88c | Zhang Kai | 2024-02-10 21:13:23 -0800

Update godspeak.txt

--------------------------------------------------------------------------------
1c9add51e8 | Zhang Kai | 2024-02-10 21:13:23 -0800

Update montitle.txt

--------------------------------------------------------------------------------
0617a3dc7d | Zhang Kai | 2024-02-10 21:13:23 -0800

Fix clouds.txt

--------------------------------------------------------------------------------
88f2fc3365 | Zhang Kai | 2024-02-10 21:13:23 -0800

Update status.txt

--------------------------------------------------------------------------------
6c123904f3 | Zhang Kai | 2024-02-10 21:13:23 -0800

Update spells.txt

--------------------------------------------------------------------------------
5640b269d8 | Zhang Kai | 2024-02-10 21:13:23 -0800

Fix ability.txt

--------------------------------------------------------------------------------
8acc429591 | Zhang Kai | 2024-02-10 21:13:23 -0800

Update monsters.txt

--------------------------------------------------------------------------------
2c310156bd | Zhang Kai | 2024-02-10 21:13:23 -0800

Update skills.txt

--------------------------------------------------------------------------------
4c714f3379 | Zhang Kai | 2024-02-10 21:13:23 -0800

Update features.txt

--------------------------------------------------------------------------------
601a84782f | Zhang Kai | 2024-02-10 21:13:23 -0800

Update gods.txt

--------------------------------------------------------------------------------
f76145dc59 | Nicholas Feinberg | 2024-02-10 21:10:03 -0800

Make offhand punches UC only (various)
Most people seemed to assume they already were, so there's a strong
intuitiveness argument, and they are vanishingly rarely relevant
with weapons.

This also solves certain elf-related problems.

--------------------------------------------------------------------------------
accdc7a51e | Nicholas Feinberg | 2024-02-10 21:04:58 -0800

Revert "Revert "Temporarily evert "Simplify off-hand attacks"""
This reverts commit 95b6ac8b5ca23ae5db383e8efd33fbd561136ce6.

--------------------------------------------------------------------------------
5e8725010d | Nicholas Feinberg | 2024-02-10 18:35:13 -0800

Fix spectral outgoing damage
Spectral weapons were doubling the player's damage, not increasing
it by 1.7x.

;_;

--------------------------------------------------------------------------------
35ecbacc28 | elliptic | 2024-02-10 21:06:35 -0500

Don't cheat the player out of a shop in st_orc_town

--------------------------------------------------------------------------------
54dcad9685 | patrick | 2024-02-10 20:58:19 -0500

Add a bunch more options to randbook.txt
I added a bunch of alchemy terminology to go with the new spell
school. Then I entered a thesaurus fugue and added a bunch of
synonyms, especially for the spell school adjectives. I also
added a bunch of other titles. Enjoy!

--------------------------------------------------------------------------------
4224600aea | Nicholas Feinberg | 2024-02-10 17:02:06 -0800

Let evil players wield good weapons
Blocking undead and demonic players from wielding weapons of holy
wrath was very fiddly - lots of annoying corner case code around
entering and leaving Death Form.

Achieve the same flavour with less annoyance by just disabling the
brand while players are dead, rather than blocking wielding
entirely.

--------------------------------------------------------------------------------
04fe69798e | Kyle Rawlins | 2024-02-10 17:05:11 -0500

fix: add some gem asserts
These solve nothing for me, unfortunately. But they would make crashes
for an out of bounds access here (which is possible by providing
NUM_GEM_TYPES to these functions) less cryptic.

--------------------------------------------------------------------------------
39ddab2b6a | regret-index | 2024-02-10 18:32:05 -0330

More non-player spells tiles + juggernaut skeleton placeholder
The latter is meant to help quickly distinguish them from the other giant
skeletons in Depths, pairing together snw-0's juggernaut helmet with
roctavian's large humanoid skeleton. It looks... very silly- the helmet's
on _really_ tight- but it's rather important for necromancer bands and
Crypt and Gloorx's level, so it will do for now.

The spell icons continue to be a little placeholdery in terms of stitching
together and editing currently extant tiles, but it should continue to help
to have anything distinguishing besides pawprints.

Sources:
 * Confusion Gaze: snw-0's Mass Confusion and the original rltile project's
                   See Invisible spell.
 * Ensnare: Pete Hurst's cobweb tiles.
 * Eruption: snw-0's Upheaval.
 * Forceful Invitation: white_noise's exit stairs from Lair branches.
 * Injury Bond: Bloax's Corona tile + Sastreii's Injury Bond status icon.
 * Plane Rend: white_noise's exit stairs from Elf, V, Slime, and Crypt.
 * Stunning Burst: ontoclasm's Paralysis icon + roctavian's Lightning Bolt.
 * Slug Dart: snw-0's dart slug + roctavian's Stone Arrow projectile
              effect.
 * Virulence: CanOfWorms's resistance and vulnerability mutation tiles.
 * Warning Cry: The original rltiles project's Projected Noise.
 * Woodweal: Sastreii's regular trees + ontoclasm's heal wounds.

Also, Ghostly Sacrifice uses the Ghostly Fireball tile, since we're still
using Iceblast's tile for Seracfall, and monster Blinkbolt now uses the
Player blinkbolt tile.

--------------------------------------------------------------------------------
a5a6d979e4 | Nicholas Feinberg | 2024-02-10 13:25:20 -0800

Simplify some local tiles mouse UI
There's no longer any reason to wield non-weapons other than goofing,
and the mouse UI doesn't actually let you do so, so remove support
for ctrl-clicking to unwield scrolls, potions, etc.

Also, don't bother checking to see if weapons are throwable or evocable
etc. They haven't been for a while. :)

--------------------------------------------------------------------------------
1929dd4202 | Nicholas Feinberg | 2024-02-10 13:25:20 -0800

Further wield/unwield weapon refactors

--------------------------------------------------------------------------------
e57e94b799 | Nicholas Feinberg | 2024-02-10 13:25:20 -0800

Remove the adjust_time_taken param
Mostly unused and kind of clunky. (The alternative is clunky too,
mind you.)

--------------------------------------------------------------------------------
c02482bde3 | regret-index | 2024-02-10 02:25:01 -0330

More adjustments for some recently-changed late uniques
 * Norris's killratio is doing quite poorly since his return, in some part
   due to trying to avoid the same Paralysis that was seen as redundant in
   his original removal but also not successfully getting AF_SLEEP due to
   potential multiplier one-shot spikiness. He went from a resistable Drain
   Magic to an irresistable but proportional mp drain in d00db9e cutting
   out Brain Feed for Brain Bite, and that's another distinguishing aspect
   we can keep working with when he's already intersecting a little with
   other water themed monsters as is, so I'm pushing his antimagic
   component even further by replacing Brain Bite for Draining Gaze's
   extremely dramatic 0-30 mp range. More focusing on destructive magic is
   definitely less time spent on peace and contemplation of death, and it
   emphasizes a threat distinct from most late uniques.

   (This also comes with a somewhat silly tile for Draining Gaze and new
   messages + some resorting within monspell.txt.)

 * Frederick is missing the fighter tag, despite having been buffed to
   deal more melee damage than several other uniques in the same range with
   conjurations also (Norris, Jory, Sojobo). He's been doing decently after
   the 0.31 release and the tweaks of b247575 / b730325 / 1baa85e, so I'm
   nudging his damage down slightly (50 -> 44) in exchange for a little
   consistency with surrounding uniques in getting an accuracy improvement.

 * Boris can use equipment while regular liches can't, for whatever reason,
   and always spawns with a robe. As a little more of an incentive to
   actually kill him rather than park him on a floor, and to give more
   distinction between attempts beyond the orb run or the luck of other
   spawns, I'm giving him a randart robe every time he spawns, guaranteed
   to be at least +2. He spawns quite late, so it's rare for people to want
   to switch over to a robe if they didn't have a decent extremely light
   body armour already, but it lets e.g. casters refight Boris repeatedly
   to find Archmagi (and then possibly die to orbs and misery).

--------------------------------------------------------------------------------
14f8b2e1af | David Lawrence Ramsey | 2024-02-09 11:34:01 -0600

Add another fruit name to artefacts.

--------------------------------------------------------------------------------
c02fa2a002 | regret-index | 2024-02-09 04:11:30 -0330

New decoration: mystic cages
In the footsteps of conduits and on a different track than the divine and
demonic statues prior, these are meant to start providing inobtrusive
decorative features reflecting a relatively more regular life inside of
the dungeon beyond mostly empty rooms filled with enemies milling about.

Mystic cages are metal statue redefinitions as kennels and enclosures for
many pets: the hounds of gnolls and orcs, the menageries of vampires, the
experiments of various wizards, the hypothetically tamed beasts within
Vaults, and so on and so forth. With how often there's a mix of given
intelligences in randomized generic floor spawn sets, it's easy to miss
a vault deliberately pairing given monsters together if noise makes them
wander or split- these can help straightforwardly imply such with minimal
effort.

The mystic cage tiles are a mild edit of the tile for Maxwell's Etheric
Cage, made by CanOfWorms, removed back in 0.25.

--------------------------------------------------------------------------------
f7c527a163 | regret-index | 2024-02-09 00:45:15 -0330

Part one of megazig buffing - scale them faster
The first ziggurat in each game is in a good place. Even three-rune
characters can dip into the first few floors for reasonable rewards
compared to Depths itself, while extended characters can try their luck
even without L8/L9 conjuration spells for reasonably further.

Megazigging, unsurprisingly, has been strangely affected by spells, gods,
and items over the years since 62fe6c3. While megazig design shouldn't
take any priority over the rest of Crawl, it's clear that most floors fall
to Gozag, Ignition, orbs of mayhem, Powered by Death or Djinn HP, talismans
of death, and the occasional fallback of autopenetrating javelins to the
point of a certain tedium. Only Silence, Sap Magic, and the occasional
hundred Seraphs manage to roll much of any chance to kill the player. While
I wanted to provide some variety with minimal effort or codebase burden for
a niche group of zig delvers, it is clear that most of the raw numbers of
megazigs don't really threaten without luck considering the 100 or 200 zigs
results the top delvers have. They can play older versions if they want to
grind raw numbers, but for future versions, I'd like to even out this
difficulty across floors some more and make the practice somewhat more of
an accomplishment overall by making zigs past the first all fairly more
lethal.

The first step of several planned steps for megazig buffing is to ramp up
the current scaling. Zig completion's effects on monster choices is tripled
in most cases and doubled on monster placing in floors. Floors won't always
max out before hitting double-digits (due to increasing HD inherent to
those monster choices), but around Zig 9 they usually can, and this also
emphasizes the danger of several other sets before one can completely max
out elemental skills or reliably have all of the unrands to work with.
The floors with silent spectres, pan lords, or ghosts all don't scale those
monsters quite as fast as the others, though.

(Also, slip in some buffs to a few loose floors. Of particular note:
quicksilver elementals for dispelling haste are now emphasized monsters in
Dis and Vestibule sets, draconian stormcallers and scorchers are emphasized
in draconian sets to rain down Upheaval + damnation, and Pan floors now
scale to emphasize just tier-1s and demonspawn.)

--------------------------------------------------------------------------------
2d33c3cfaf | Nicholas Feinberg | 2024-02-08 10:48:16 -0800

Fix Gastronok's corpse (FPSBOSSFIGHT)
Broken in 5b44be1ddb685f4f29a3c56d8fed4afaf7c9e86f.

--------------------------------------------------------------------------------
9dbbe29261 | regret-index | 2024-02-07 22:55:20 -0330

Tweak and add some monster dialogue
Assume cats are very small, that mummies can't smell, and that we've got
something less meta to weep about.

It's going to take a long time to get kill lines for most generic monsters,
but nicolae- and DracoOmega have some good ones for killer klowns.

--------------------------------------------------------------------------------
3e06421dc0 | regret-index | 2024-02-07 22:25:54 -0330

Fix webtiles tile animations
Broke in aef1140 adding more animating tiles, properly handled now.

--------------------------------------------------------------------------------
ad68cc1cce | regret-index | 2024-02-07 22:23:56 -0330

First fresh vault review for 0.32
The usual scaling sets much more versus depth, reducing long tails of
absurd rolls for monsters, cleaning up headers to fit a more consistent
house style, so on and so forth. One particular point that'll fit into
these recurring vault reviews from hereon is that with more decorative
features added and to be added, early crystal appearances and granite
statue counts will be regularly reduced to compensate- there's far too many
uses of such in early D for them to stand out as decorative any more or for
it to stand out in dangerous vaults past the earlygame, which can do with
some trimming down in exchange for some of these fancier options.

A few other things of note:

 * Some hells ambushes have been nerfed a little, with added cover and
   slightly lower monster counts. While extended can and should be quite
   cruel to players, there's a big difference between even the recent
   branch buffs and immediately ambushing a player with adjacent paralysis
   and damnation or making melee characters wade through 5+ curse skulls
   in an open layout, considering the

 * evilmike_ambush is now nerfed in a variety of branches, by using
   hand-picked spawns usually from the given branch it spawns in. The sheer
   hostility of the vault was less of a concern when far more of the later
   branches had far more harmless spawns in them, but this was heavily
   aggravated by the revision to hell's sets and the introduction of
   things like Blink Allies Encircling and berserkable tmons. Most of the
   branch placements still have sheer volume and a few notable threats
   at such high quantities, anyway.

 * Air zigs now use wind drakes and ironbound thunderhulks, to add a little
   more variety.

--------------------------------------------------------------------------------
77eb882913 | regret-index | 2024-02-07 02:15:44 -0330

Reflavour Ijyb into an artificer
While we don't need to represent every single last past and future player
option available, one background lacking much for monster representation
already has a perfect fit for it. Ijyb is distinguished by always having an
early high-tier wand since 1a4ba80, much like Artificer's wand of iceblast.
While a hypothetically more deliberate artificer unique would want for more
items to use, a unique with an early strong one can avoid handing out too
much loot at once and also avoid the heavy burden of making non-wand
evokers work for monsters. Ijyb also has a variety of old lines like
"Me kill you!" and "Die!", deeply generic lines that can be easily replaced
with repurposed, long-unused lines written up for Pakellas.

Ijyb's new title is the Inquisitive. Her description and dialogue now
emphasizes her experimental homemade wand (thus also explaining how she has
one so early in D) as well as using her foes as new test subjects. She
still keeps her usual manner of speech despite the new vocabulary, which
should help give her somewhat distinct dialogue overall, too.

None of Ijyb's stats are themselves are changed, since she's already plenty
dangerous. Maybe she should always have a club and not a coinflip chance
for a dagger, like Artificers start with?

--------------------------------------------------------------------------------
b47733332d | elliptic | 2024-02-06 21:36:13 -0500

Don't look at movement delay when computing Vhi's Electric Charge delay
Spriggans, nagas, and Chei characters don't take an unusual amount of time
for any other translocations. Vhi's is more controlled than Blink or
Passage (and Passage does usually involve some walking to actually use),
but it is still restricted enough in use that I don't see a problem with
letting it be a fast way for nagas or Chei characters to reposition in
certain situations. If necessary, it seems much easier to justify Chei
hating this spell than to justify this spell looking at movement delay.

There were also some weird interactions previously with Vhi's being slower
to cast for humans in shallow water and faster with swiftness active, etc.

--------------------------------------------------------------------------------
9fbf7fb75a | regret-index | 2024-02-06 19:25:10 -0330

More non-player spell tiles
A lot of kinda placeholdery re-uses of old tiles or old styles, but almost
anything is usually better than the current generic icon.

Sources:

 * Awaken Forest: Sastreii's regular tree tiles plus snw-0's berserk icon.

 * Berserk Other: DD's old Evoke Berserk tile.

 * Corrupting Pulse: Denzi's original tile for wretched stars.

 * Legendary Destruction: Roctavian's Fireball tile, snw-0's recolouring of
   that for Iceblast, and aidanholm's recolouring for Ghostly Fireball.

 * Mindburst: Ontoclasm's disint / mindburst wand icon, plus snw-0's old
   Brain Feed icon.

 * Roll: Sastreii's rolling boulder beetle tile.

 * Summon [many things]: The old rltiles summon icon on top of: roctavian's
   redbacks (Summon Spider), roctavian's edit of coolio's emperor scorpions
   (Summon Emperor Scorpions), roctavian's Executioners (Gloorx's spell),
   roctavian's edit of ontoclasm's hell sentinel tile (Dispater's spell),
   roctavian's tzitzimimeh (Ereshkigal's spell).
   * (Also, some replacements of tile choices for Summon Drakes (using
      snw-0's recolour of roctavian's death drake), Summon undead (snw-0's
      jiangshi tile), and the four standard Summon Elemental spells (using
      ontoclasm's tiles for each).

 * Cleansing Flame, Corrupt: The current invocation ability tiles for them,
   both by snw-0.

 * Debugging Ray: snw-0's cancellation tile over DracoOmega's bombardier
   beetle edit of Bloax's goliath beetles.

This also slightly tweaks the Cleansing Flame description to not mention
invocations skill when a monster has the spell.

--------------------------------------------------------------------------------
6e397d8a7c | David Lawrence Ramsey | 2024-02-06 15:24:25 -0600

Add missing "Dog" status description.

--------------------------------------------------------------------------------
4b40a1289b | Nicholas Feinberg | 2024-02-06 13:02:11 -0800

Tweak bsig desc (CarefulOdds, regret-index)

--------------------------------------------------------------------------------
8a9189f6be | Rytis Petronis | 2024-02-06 10:09:26 -0600

fix acc display of throwing slaying bonus (#3343)
this will div_rand_round beast form slaying for accuracy displaying

otherwise



[Committer's note: Squashed, and shortened initial commit message.



Closes #3343.]
--------------------------------------------------------------------------------
cc018136db | regret-index | 2024-02-06 12:34:44 -0330

Fix placeholder BB boulder tile (SentientSupper)
5b44be1 accidentally used the base boulder beetle tile instead of the
rolling one. We still could use an actual distinct tile for this in the
style of its spell icon (something more geometric), but for now, this both
makes it properly spherical and also now animates it.

--------------------------------------------------------------------------------
1704d4baff | regret-index | 2024-02-06 12:34:44 -0330

Unbrace

--------------------------------------------------------------------------------
fac0567ad4 | wheals | 2024-02-06 14:28:14 +0200

Fix a crash when the player gets mighted by chaos brand

--------------------------------------------------------------------------------
2e8054a333 | regret-index | 2024-02-06 00:58:27 -0330

Make Xom give more chaos brand, adjust chaos brand Xom amusement
Hasting and mighting hostile monsters with chaos now sometimes lightly
amuses Xom to allow more managing Xom mood by using the now more usable
chaos brand.

Since that brand is more usable by players and less lethal from monsters,
we can share it a little more often in Xom's actions. Xom now overrides any
non-holy weapon brand of monster weapons when chaos branding weapons,
rather than only touching unbranded weapons. Chaos shouldn't be so quite
limited, and it makes it more likely to find more usable chaos weapons.
(Still not handing out chaos missiles though, since that clogs up
inventories and chaos nets act deeply strangely. They've been slightly
cleaned up for the sake of Chuck, though they still need unifying with
chaos weapons and BEAM_CHAOS eventually.) Also, Beogh's slated to not
involve giving equipment gifts to orcs in a future rework, so orcs don't
need to have it be invisibly randomly blocked.

--------------------------------------------------------------------------------
3087d83e6e | regret-index | 2024-02-06 00:58:27 -0330

Buff Maurice Will (ragingrage), nerf Erica
Erica leapt up from a ~4.4% killratio to a ~9.4% killratio after b730325
over the course of the 0.31 tournament, which was a lot more than the
desire to push her to the pre-octofying recent killratio of ~5.7%.
She gets a minor Will nerf (as octopodes don't have any particular Will
advantage over other species) and most (but not all) of her melee and EV
increases reverted.

Contrariwise, while Maurice is doing a lot better for the antimagic bite
in sheer damage terms, he's still doing merely okay for a pre-Lair unique
at 3.1% killratio. Vine Stalker gets boosted Will compared to baseline
species, so he can get a minor Will buff.

(Also, fiddle around a bit more with Maurice speech lines on the new
flavour front.)

--------------------------------------------------------------------------------
32696db3d1 | regret-index | 2024-02-06 00:58:27 -0330

Lower the contrast on bedeviled crystal tiles (PleasingFungus)
The fancy graphics on top of a wall tile is already plenty without needing
to quite catch the eye so much for being just a retiled / redescribed wall,
I suppose. The more colourful originals will sit in the git history anyway
for others' potential use, and the desaturating also sells corruption in
its own fashion.

--------------------------------------------------------------------------------
af751e2436 | DracoOmega | 2024-02-05 22:30:09 -0330

Fix players being naked and refactor
The addition of a mirrored weapon tile category caused a bunch of code that
calculates what order to draw player paperdoll parts to work incorrectly.

And trying to fix it uncovered FOUR DIFFERENT PLACES that were duplicating
a handmade list and logic for determining this order. I have consolidated
these into a single function, and also attempted to reduce some other
duplicated logic in the process. (I think a little more couple be shaved
off, but it was less clear whether some of the other differences were
important or not)

--------------------------------------------------------------------------------
1a93b60f7d | DracoOmega | 2024-02-05 19:05:08 -0330

Revert "Revert "Enter the mirror dimension"" with a fix
This reverts commit 35313b3b0401f36c7d3da60decceb00c3a9668e6.

An uninitialized variable seems to have been the cause of build
problems.

--------------------------------------------------------------------------------
70af1cc7e0 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update spells.txt

--------------------------------------------------------------------------------
cfad4d882d | Zhang Kai | 2024-02-05 14:10:13 -0800

Update mutations.txt

--------------------------------------------------------------------------------
cbc441926e | Zhang Kai | 2024-02-05 14:10:13 -0800

Update mutations.txt

--------------------------------------------------------------------------------
288a8eea13 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update wpnnoise.txt

--------------------------------------------------------------------------------
9fa2045b72 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update wpnnoise.txt

--------------------------------------------------------------------------------
9bb898f744 | Zhang Kai | 2024-02-05 14:10:13 -0800

Create wpnnoise.txt

--------------------------------------------------------------------------------
b18a041c26 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update shout.txt

--------------------------------------------------------------------------------
ab21dbf0b5 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update monspell.txt

--------------------------------------------------------------------------------
47820993c2 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update unrand.txt

--------------------------------------------------------------------------------
b395becbbf | Zhang Kai | 2024-02-05 14:10:13 -0800

Update tutorial.txt

--------------------------------------------------------------------------------
24aeb8fce1 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update status.txt

--------------------------------------------------------------------------------
9394785459 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update spells.txt

--------------------------------------------------------------------------------
db81703f1b | Zhang Kai | 2024-02-05 14:10:13 -0800

Update species.txt

--------------------------------------------------------------------------------
78019320dc | Zhang Kai | 2024-02-05 14:10:13 -0800

Update skills.txt

--------------------------------------------------------------------------------
7189f9785e | Zhang Kai | 2024-02-05 14:10:13 -0800

Update mutations.txt

--------------------------------------------------------------------------------
2699e95f02 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update monsters.txt

--------------------------------------------------------------------------------
d3b20e54b6 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update items.txt

--------------------------------------------------------------------------------
ed181fcaab | Zhang Kai | 2024-02-05 14:10:13 -0800

Update gods.txt

--------------------------------------------------------------------------------
5344a817ef | Zhang Kai | 2024-02-05 14:10:13 -0800

Update features.txt

--------------------------------------------------------------------------------
18cdba413a | Zhang Kai | 2024-02-05 14:10:13 -0800

Update clouds.txt

--------------------------------------------------------------------------------
21a18ad617 | Zhang Kai | 2024-02-05 14:10:13 -0800

Update branches.txt

--------------------------------------------------------------------------------
18257a444a | Zhang Kai | 2024-02-05 14:10:13 -0800

Update backgrounds.txt

--------------------------------------------------------------------------------
301c3d356d | Zhang Kai | 2024-02-05 14:10:13 -0800

Update ability.txt

--------------------------------------------------------------------------------
c7ef563f12 | advil | 2024-02-05 15:53:11 -0500

fix: improve some rltiles error messages

--------------------------------------------------------------------------------
35313b3b04 | Nicholas Feinberg | 2024-02-05 12:51:22 -0800

Revert "Enter the mirror dimension"
This reverts commit 42a248e5ca1fbb01cd6a4bc39afc052bf682d3cf.
This reverts commit 8649878a938f6e263d233149ee192d4ca934b401.

--------------------------------------------------------------------------------
8fd5419284 | elliptic | 2024-02-05 15:38:00 -0500

Rename maybe_random_div to maybe_random2_div
So that I stop being confused by it.

--------------------------------------------------------------------------------
a335ffa919 | advil | 2024-02-05 12:46:42 -0500

refactor: generalize some feature description code
2c8f65ca5f32ac introduced some code to try to allow redefined features
to be conditioned on layouts, for the sake of Dis statues. This code
made various assumptions like: there is always a layout, a level always
has vaults, and a layout is always at position 0 of the level vault
vector. bc18a39e1d331e tried to fix some of these assumptions, but
didn't really handle the case where a level has no vaults at all (can be
true in the abyss), which leads to an empty level vault vector.
(Accessing position 0 of such a vector may fail to crash under various
compiler and runtime circumstances...)

This commit refactors to (i) reuse previously existing, slightly more
robust code to find the vault at a position, and (ii) adds a function to
try to more robustly find a layout if one exists. It's unclear to me
whether the position 0 assumption was or wasn't safe if there is a
layout (it wasn't guaranteed, but may have been true in practice), but
this code doesn't make it. As far as I can tell this works with the dis
statue case.

--------------------------------------------------------------------------------
42a248e5ca | Nicholas Feinberg | 2024-02-05 07:52:04 -0800

Fix an unsigned comparison (Monkooky)

--------------------------------------------------------------------------------
8db1b9f803 | Nicholas Feinberg | 2024-02-04 22:38:04 -0800

Rework attack delay
Rather than special casing many places where we *don't* want to
change time after a melee attack, make melee attacks run time only
when it *does* change.

--------------------------------------------------------------------------------
672eff3212 | Nicholas Feinberg | 2024-02-04 18:01:30 -0800

Refactor more band leader code

--------------------------------------------------------------------------------
c8c0bed1ba | DracoOmega | 2024-02-04 17:55:10 -0800

Refactor testing of band follower/leader relationships
A bunch of multi-line checks to props were being repeated in several
places, which are now more nicely wrapped up in a couple simple monster
methods.

Also splits the MF_BAND_MEMBER flag (which was effectively only used to
make band members talk 1/10th as often...) into MF_BAND_FOLLOWER and
MF_BAND_LEADER in preparation of some future behavioral tweaks to make it
less easy to pull followers away without their bands noticing.

--------------------------------------------------------------------------------
fd3f6d62af | DracoOmega | 2024-02-04 17:53:40 -0800

Make ability_name return string instead of const char*
I want to do some dynamic name construction inside that function, and it's
a lot more straightforward that way.

--------------------------------------------------------------------------------
63ff0dcbff | DracoOmega | 2024-02-04 17:53:09 -0800

Fix minor wizmode bug with xp calculation
It still thought pacified monsters were worth 1/2 xp.

--------------------------------------------------------------------------------
8649878a93 | Nicholas Feinberg | 2024-02-04 17:49:42 -0800

Enter the mirror dimension
Instead of hardcoding a hand-made set of flipped weapon tiles,
generated flipped versions of every single doll weapon tile and use
*those* for dual-wielding monsters. (Ettins, blademasters, 2hos, etc.)

Arguably, we should use this tech for Frances? I'm not sure exactly
how, though.

Preparation for steel elves.

--------------------------------------------------------------------------------
5f43475211 | regret-index | 2024-02-04 20:05:32 -0330

Hide the "report this" metal statue description on banishment
Since it can't inherit the vault or layout's description or tile when
being moved to the Abyss. This also might also help with abyss_walk test
crashes?

--------------------------------------------------------------------------------
722a80f8b5 | regret-index | 2024-02-04 19:59:27 -0330

Don't let Throw Ally throw tentacles (Lici)
If an iron giant throws the tentacle tip, it will cause a disconnecting
sever. If it throws the tentacle segments, an unattached tentacle segment
will sit on the floor for one turn before disappearing the next. Either
way, this is definitely undesired behaviour we can avoid in the slim cases
of Zot trap eldritch tentacles or charm / scrolls of summoning plus Malign
Gateway in Dis and a tiny number of vaults.

--------------------------------------------------------------------------------
668cce9384 | regret-index | 2024-02-04 19:59:27 -0330

Fancify Zot and Pan a little more
This adds some experimental new bismuth-styled crystal tiles for Zot, with
a custom rainbow palette and a faint square impression from ontoclasm's old
labyrinth tiles- meant to reflect the varied elements and chaotic nature of
Zot. This also makes a bunch of trees and plants in Zot always place as
petrified, demonic, or withered- a lot of Zot monsters mention being quite
ancient (liches, moths of wrath) or primordial (orbs of fire) or both
(proteans), so leaning a bit more into being a realm sealed extremely long
ago feels rather appropriate compared to getting rather normal greenery
clashing with most of Zot's default palette, also. Zot should be dramatic!

(Also, threw some conduits in pan_disco_hall and fixed a missing floor
colouring there.)

--------------------------------------------------------------------------------
95bf75a7d5 | Nicholas Feinberg | 2024-02-04 15:24:54 -0800

Unbrace

--------------------------------------------------------------------------------
bc18a39e1d | Nicholas Feinberg | 2024-02-04 15:24:43 -0800

Don't crash in the abyss_walk test (DracoOmega)
Like the Abyss itself, this code unsettles me.

--------------------------------------------------------------------------------
5b1be31b7c | elliptic | 2024-02-04 16:20:38 -0500

Make groups of monsters handle diagonal chokepoints more consistently
Sometimes a monster that can attack the player will instead walk to the
side to let a friend move forward and help. For example, when fighting a
pack of yaks near the corner of a corridor

: #####
: #.YYY
: #@###
: #.###

the lead yak has a 50% chance of moving west into the corner instead of
attacking the player.

This behavior didn't work right in one particular type of situation:

: ###YY
: ###YY
: ..Y##
: .@.##
: ...##

It used to be that the lead yak would never move south or west in such
a situation, even though in the similar situation with an extra wall

: ###YY
: ###YY
: ..Y##
: .@###
: ...##

it would have the expected 50% chance of moving west. (There was a similar
issue as well with the player moved one square north in the preceding two
diagrams.)

This commit tries to fix this, so you will no longer be safe fighting one
yak at a time in the second diagram above. Other behavior is hopefully
unchanged.

Note that in the situation

: ###YY
: ###YY
: .@Y##
: .#.##
: ...##

the yak will still never move south - this is because currently monsters
will only change their move by a 45 degree turn, not a 90 degree turn as
would be needed here. The goal of this commit isn't to make groups of
monsters as smart as possible, but just to fix a single weirdness/bug with
the old behavior.

--------------------------------------------------------------------------------
29182dc2f9 | regret-index | 2024-02-04 17:40:32 -0330

Ghost / illusion Starburst -> Bolt of Fire
This follows the same spirit as Necrotise -> Pain, Confusing Touch ->
Confuse, Curse of Agony -> Agony, Dragon's Call -> Summon Dragon, and so
on, of being very close in sharing the same core mechanic (penetrating
fire beam here) while being awkward for monsters to get directly (they'd
shred all of their allies, aligning in the 8 directions is awkward for
mobile monsters). Helps continue to maintain Illusion Card and Mara
Illusions, plus continues to help player ghosts not fall too hard behind
from the present day.

Also, slightly resort the translated spell list in ascending spell-level
order, since this list is starting to get kinda long.

--------------------------------------------------------------------------------
d980ff3818 | regret-index | 2024-02-04 17:40:32 -0330

Add a Ghoul title
In the spirit of ccc5534 and e618eea and so on, it feels suiting to have
the current strongest of the corporeal undead anthrophage monsters be
reflected in the player titles too. Nicely dramatic for anybody who wants
to max out a -2 apt, anyway.

--------------------------------------------------------------------------------
0d27ed53bc | Nikolai Lavsky | 2024-02-04 23:59:56 +0300

task: remove the 0.31 trunk tournament reminder
This reverts commit e66fa4eb29bf7b720200d5fbfce887e1803ce131.

--------------------------------------------------------------------------------
4c9cb3f8dd | yrdzrfxndfvh | 2024-02-04 14:40:18 -0600

Add "Royal Mummy" title

--------------------------------------------------------------------------------
5b44be1ddb | Nicholas Feinberg | 2024-02-04 12:34:40 -0800

Move monsters into YAML
For hopefully better readability and editability, without having
to cross-reference obscure fields.

--------------------------------------------------------------------------------
0f96f66c9d | David Lawrence Ramsey | 2024-02-04 14:33:06 -0600

Add C, J, R, and U death messages (Oneirical, #3452)
Jiyva's messages only make sense if the player left a corpse, so
they're adjusted for that.

--------------------------------------------------------------------------------
6d6becde81 | David Lawrence Ramsey | 2024-02-04 14:33:06 -0600

Add Hepliaklqana and Ignis death messages.

--------------------------------------------------------------------------------
59d7447d90 | David Lawrence Ramsey | 2024-02-04 14:33:06 -0600

Make all gods use death messages if available.
This restructures _god_death_message(), and renames it
_god_death_messages(), since it can now display multiple messages.

The Xom message, the Gozag gold message, the Okawaru duel message, the
Beogh heretic priest message (extended to account for if you ever
worshipped Beogh, and calling you an apostate instead if you abandoned
him), and the Nemelex death message (now only shown if you left a
corpse) are displayed after any death messages from the database.

--------------------------------------------------------------------------------
10d5f734ec | David Lawrence Ramsey | 2024-02-04 14:33:06 -0600

Add database key handling to god death msgs.
The default death message for any god will be "@God_name@ death".
Anything specific to leaving a corpse, having undead holiness, or having
nonliving holiness is specified by the appended keys "corpse", "undead",
and "nonliving".

Add a few god speech aliases to account for this.

--------------------------------------------------------------------------------
8b38da208c | David Lawrence Ramsey | 2024-02-04 14:33:06 -0600

Put holiness god death msgs in the database.

--------------------------------------------------------------------------------
ef299f28a6 | David Lawrence Ramsey | 2024-02-04 14:33:06 -0600

Save monster holiness for undead/nonliving.
Don't check it multiple times, since it affects several god death
messages.

--------------------------------------------------------------------------------
76c4a70de9 | David Lawrence Ramsey | 2024-02-04 14:33:06 -0600

Move simpler god death messages to the database.
Currently only Fedhas.

--------------------------------------------------------------------------------
855f1f9822 | David Lawrence Ramsey | 2024-02-04 14:33:06 -0600

Save whether the dead player left a corpse.
Don't check it multiple times, since it affects several god death
messages.

--------------------------------------------------------------------------------
6a9e7a72c1 | David Lawrence Ramsey | 2024-02-04 14:17:07 -0600

Add Nemelex to Recite's list of chaotic gods.

--------------------------------------------------------------------------------
3be09a196a | regret-index | 2024-02-04 16:44:56 -0330

Adjust V calls for Forceful Invite, Plane Rend
Since aa1e17a, ironbound thunderhulks have ended up twice as high in the
kill statistics as any other monsters worldbinders summon, despite being
slightly below the average summon choice in weight- they got buffed not
much later in 59a505c, and are currently one of the most effective
killers in the branch of V itself. Worldbinders now summon ironbound
frosthearts instead, which may have autohit attacks but also hurt for less
damage while respecting more AC and being much easier to resist. Still
should be interesting to reposition and restrategize around.

As a different home for thunderhulk summoning, Ds corrupter Plane Rend
loses vault sentinels- who aren't very likely to hex even the lowest Will
species at xl 27 as Pan expects, with only 19% against having a single
peice of Will gear- and swaps in those thunderhulks instead, which can at
least blast Pan explorers somewhat reasonably instead.

--------------------------------------------------------------------------------
aee7bb2a12 | Nicholas Feinberg | 2024-02-04 12:03:50 -0800

Checkwhite

--------------------------------------------------------------------------------
3ce9459eb3 | Nicholas Feinberg | 2024-02-04 12:03:31 -0800

Hide removed items in ?/i (elliptic)

--------------------------------------------------------------------------------
7569c349a0 | Nicholas Feinberg | 2024-02-04 12:03:19 -0800

Fix automagic while caught (noisytoot)
Yuck :(

--------------------------------------------------------------------------------
7d43067348 | Nicholas Feinberg | 2024-02-04 12:02:59 -0800

Make skeletons eternal
It seems weird that skeletons rot away in the presumably finite time
that the player spends within the dungeon, and it's cool to leave
more of a trace of your presence when retracing your tracks. Since
skeletons are purely decorative now, let's leave em around.

Some argument for removing the ridiculous and complex corpse decay
system entirely, but I don't have the heart.

--------------------------------------------------------------------------------
95b6ac8b5c | Nicholas Feinberg | 2024-02-04 12:02:49 -0800

Revert "Temporarily evert "Simplify off-hand attacks""
This reverts commit cbf77bbcfcd59d85fcee38741aa2897316b9d79d.

--------------------------------------------------------------------------------
1854ded1b6 | elliptic | 2024-02-04 15:01:57 -0500

Deep Elf: Air Magic apt 0 -> +1 (SentientSupper)
This is a relic of the days when High Elf existed and this served to help
differentiate between them.

--------------------------------------------------------------------------------
aef1140ae2 | regret-index | 2024-02-04 16:31:19 -0330

New decorations: magic conduits, bedeviled crystal
These are both highly variable pieces, meant to reflect spell schools and
demonic planes, to serve as magical varieties of decoration beyond the
usual emphasis of clouds or longer lengths of plain crystal walls.

The former are all further metal statue types of miscellaneous magic
collecting devices, with a slightly different orb, different palette, and
names each for all the spell schools. (Translocations is grouped together
with Summoning, as we have few workable translocations themes for vaults.)
These conduits help a couple of magical portals and branches beyond the
recent occasional presence of bookcases- Ice Caves, Volcanoes, Wizlabs,
Snake, Elf, Crypt, and Zot. They also provide some more workable flavour
for the spell-gifting gods who don't give spellbooks, Kiku and Vehumet,
plus a small number of particularly magic-focused vaults deeper on- across
Vaults and Depths.

The latter is a different tile and description for crystal walls, and serve
as links to the various demonic planes of regular games and extended for
a multitude demonic vaults without all of them leaning too hard on demonic
vegetation or lava (as clashes with quite a few other themes). They don't
actually spawn inside Hell / Pan / Abyss themselves, but there's a large
number of demonic vaults across D, Depths, Zot, and so on that can
reasonably fit a little window into Cocytus or Pan or the Abyss.

The conduits are a mix of snw-0's first spell icon for Battlesphere, the
rltiles original iron golem, and a variety of subtle overlays using
ontoclasm's item type icons. The bedeviled crystal combines quite a few
parts- roctavian's old lugonu altar, snw-0's grey crystal recolouring,
jpeg's original strange machine for Tukima's wizlab, and depending on
the crystal: dd's lava, snw-0's recolouring of roctavian's floor_frozen,
Denzi's cobalt_stone + wall_bars + floor_demonic, roctavian and due's edits
of Denzi's iron walls, and the original rltiles work on floor_nerves.

--------------------------------------------------------------------------------
f7c557ff5a | regret-index | 2024-02-04 16:27:14 -0330

New decoration duo: silver statues, scintillating statues
We've got a small number of god / theme statues around already, like Gozag
and TSO's golden saint statues. This could be extended further for both
flavour and visual variety purposes, and so these two follow suit.

The former are metal statue of order, law, security, and stasis. These are
obviously used in vaults for Zin, but also employed in the Vaults, a place
full of metal, disciplined guards, and rather monotonous features and
terrain beyond sparing glass or bookcases. (Yes, there's undead in the
branch, but these statues aren't direct links to Zin, and guards in
different areas can have different faiths. Think of the Crypt as being
actively sealed away inside the branch.)

The latter are rainbow stone statues, representative of chaos and chance.
There's enough Xom and Nemelex vaults for them to fill out a respectable
number, alongside some klown-centric vaults in Zot and a rare flashiness
component for Gauntlet exteriors. Worth of note is that this comes with a
couple of highly chaotic Xom and Lugonu vaults being made consistently
traversible and instead emphasizing these fancy animated statues, removing
the need to fill them with no_tele_into spaces and letting them serve as
properly transparent rather than vetoing at random.

The former combines the sparkles of roctavian's Zin altar, Denzi's silver
star without that altar's hand in front of it, and the pedestal of
ontoclasm's old silver statues before those were turned into obsidian
statues. The latter uses ontoclasm's statue plinths alongside CanOfWorms's
pieces from Xom's chessboard. (If we make more evokers in the future, they
probably should shift further yet from what the either of those did,
anyway.)

(This also removes the no_random vault tag, used literally nowhere besides
wizlab_cigotuvi's doors, because it didn't work for any non-door purposes
and the support for it also made animations themselves not consistently
work. This also does a fair bit of header clean-up and updating for some
of the enemy using vaults, chaotic or not.)

--------------------------------------------------------------------------------
2c8f65ca5f | regret-index | 2024-02-04 16:27:14 -0330

Make and use a hidden metal statue feature
We've got a pair of explicitly metallic statue types in vaults that don't
actually deconstruct into metal: iron statues in Dis, and golden statues in
both TSO and Gozag vaults. Further updates will add another two statues
that are also clearly not made of rock. Metal walls behave noticeably
differently from rock walls- alongside the relatively unimportant matters
of LRD messages / damage and Shatter difficulty, most relevantly they're
also not diggable. Statues ostenibly made of metal can pick up these
properties, especially when reserved for rarer theme vaults; it also
heavily reduces the subvault hacking needed to set two different statues
with two different descriptions within the same vault.

The tile flips upside-down snw-0's DNGN_STATUE_TRIANGLE tile and recolours
it with ontoclasm's impish iron statue tile, though both the base feature
and the tile both shouldn't be seen by default- the regular metal statues
themselves __are not to be used by vaults__, and instead as bases for
specific vault flavoured statues.

This also mildly edits raw_feature_description in directn.cc to accomodate
letting layout code use set_feature_name, so the iron statues in Dis's
layout_subdivisions have the same iron statue name and description as all
of the vaults in the branch do. This probably shouldn't be too much of a
concern regarding preserving given vault flavour versus given layouts,
since we're not otherwise usually changing feature names for entire layouts
too often.

--------------------------------------------------------------------------------
cb1c6d8acb | regret-index | 2024-02-04 16:27:14 -0330

Juggle around console statue and fountain glyphs
The more decorative statue types we add to the game and the more
vault-exclusive custom statues still linger around, the more awkward it
is that monster statues share a glyph with decorative feature types. They
don't really trick people between the monster list and autoexclusions,
anyway, though their flavour as an actual monster is already flavour enough.

This moves monster statues in console from 8 to I- immotile non-plants.
This should help those still sticking to ASCII deal with future decorative
statue type additions by splitting them up so 8 stays as an entirely
decorative glyph. Also, in unicode, this moves decorative statues, from
8 to ß- the eszett still looks like an 8, but either unicode mode tends to
avoid using alphanumeric characters for anything that isn't a monster.

Somewhat seperately, in ASCII fountains share a glyph with runes and
misc evocables, which is completely absurd. I'm moving it to -, since
there are plans for other dungeon installations that don't block movement
or projectiles and that can reasonably share the same glyph. It's hopefully
not too confusable with _, which frequently have changing colours, anyway.

--------------------------------------------------------------------------------
fab9c5ac03 | regret-index | 2024-02-04 16:27:14 -0330

Make Nemelex Xobeh count as chaotic (but not evil)
If Makhleb is a chaotic god for offering random blasts plus providing
summons of neqoxecs and cacodemons, then surely Nemelex also counts as
chaotic- much bigger and wilder potentially-unpredictable blasts, mass
enemy polymorph, and outright providing Pandemonium lords as well as those
same malmutating demons as summons. Nemelex doesn't count as evil here,
though, following the demonic chaos precedent of Xom.

This currently just angers Zin when abandoning them for Nemelex. It does
make another upcoming decorative feature have a little more use, though.

--------------------------------------------------------------------------------
56a75c70eb | Nicholas Feinberg | 2024-02-04 11:31:13 -0800

Pass weapon into ranged attacks
Constify more things, and don't assume that the weapon being used
to fire is the same weapon that the attacker is holding in their
primary hand.

Preparation for steel elves.

--------------------------------------------------------------------------------
c5f5bd7300 | Nicholas Feinberg | 2024-02-04 11:28:18 -0800

Fix missing blowgun tile for unrand

--------------------------------------------------------------------------------
e84ba5949b | Nicholas Feinberg | 2024-02-04 11:26:52 -0800

Remove unused function

--------------------------------------------------------------------------------
79f8f80802 | Nicholas Feinberg | 2024-02-04 11:20:21 -0800

Remove support for antique wielded tiles
Not a lot of folks wielding rods or darts lately, for some reason.

--------------------------------------------------------------------------------
58955fab79 | advil | 2024-02-04 11:03:18 -0500

docs: tweak WSL webtiles docs
For WSL 2, there are apparently some IP address complications. This
commit attempts to address them...

--------------------------------------------------------------------------------
058985b245 | DracoOmega | 2024-02-03 02:42:53 -0330

Fix dactions not being processed after level peek (Darby)
Each level stores an index into the global list of scheduled dactions
that reflects 'the last daction that was done on this level'. The idea
being that whenever you reenter a level where you've already been, it will
use this index to process only the 'new' dactions that have been added
since you were there last.

The problem is that (for some reason), the dactions_done wasn't actually
being marshalled properly, but the game was assuming that it was impossible
to save a floor without all dactions being caught up. And this is
distinctly NOT the case in at least one situation (and maybe more): level
excursions!

Essentially, making a level excursion to any floor would cause any dactions
scheduled (but not yet processed on that floor) to never happen there.
An easy way to demonstrate this is by pulling Kirke to another floor, away
from her hogs, and killing her there. Then peeking back at the old level.
If you did this, and then returned for real, the hogs left behind would
never transform back, since the excursion had made the game save that
floor's dactions_done as 'total number of dactions that exist'.

This potentially affects countless things, in a wide variety of stuations.
Even doing things with the shopping list triggers level excursions, which
would have invalidated daction state on the floor with the shop, I'm
pretty sure.

This fix is a very simple one, and seems to work (and feels like what this
code always should have been). But it's possible I'm overlooking something,
of course, and it can't be as simple as it seems. Fingers crossed?

--------------------------------------------------------------------------------
a30500b4d3 | regret-index | 2024-01-26 02:45:38 -0330

Catch a missing Depths gem (GnomeSayin)
evilmike_zot_entry_gauntlet doesn't use the same standardized function
of zot_entry_setup like the other zot entry vaults do because it uses
a different monster set than the others. As such, it was missed in
866d48a, which was mostly checking the presence of that function being
called. I edited Zot gem placement in 2f004bd, but I missed out on this
one also because I was just editing the use of that function. (I also
didn't catch it in afdcd2b adjusting a lot of gem placement, because it
wasn't one of the rune branch uses as I was worried about at the time).

Sorry, everybody who missed out on the gem this way. I'll fit another
review of smoky and midnight gems into the next big vault review for the
early start of 0.32.

--------------------------------------------------------------------------------
ec2d92a32c | Implojin | 2024-01-24 18:41:06 -0600

fix: Apply attack delay to WJC rampage kills (Undo)
7bd419a0e5 introduced a bug where if the player killed their rampage target
during WJC postmoves, that move would take zero delay and fail to end the
turn. Using this bug, the player could equip seven-league and a high damage
weapon like the lochaber axe or dark maul, and bounce around the screen
making zero delay WJC attack moves.

move_player_action implicitly assumes that either an attack or a movement
will be attempted if it's being called: In this case, after 7bd419a0e5,
its movement attempt was being blocked, and there was no target monster
left to attack, so it eventually just returned without applying time_taken
or ending the turn.

This commit hopefully fixes the bug, by applying attack delay and ending
the turn if our rampage target dies during WJC postmoves.

--------------------------------------------------------------------------------
2adb59ae06 | gammafunk | 2024-01-23 19:15:46 -0600

fix: Serpent of Hell placement in Dis (Sar)
The subvault dis_grunt of iron_city_of_dis had bad substitutions that
could sometimes replace the glyph used for the SoH with some other
definition. I've reworked the substitutions to (1) always place the SoH
if Dis is its target branch, (2) randomize placement between the two
locations for the SoH the map uses, and (3) retain the slight
randomization of the spawn location in the rune chamber regardless of
whether SoH places on this map.

(cherry picked from commit 3a7656b989bb67f3439edfef999a82b942910c4d)

--------------------------------------------------------------------------------
5c88369fb2 | Nicholas Feinberg | 2024-01-23 08:53:58 -0800

Remove a duplicate description (regret-index)

--------------------------------------------------------------------------------
b04dd89b9b | Nicholas Feinberg | 2024-01-22 21:01:54 -0800

Don't crash on bad mut names (regret-index)

--------------------------------------------------------------------------------
abbd88f42e | Nicholas Feinberg | 2024-01-22 20:59:20 -0800

Fix two misnamed mutations (regret-index)

--------------------------------------------------------------------------------
6a59d0303a | Nicholas Feinberg | 2024-01-22 20:58:17 -0800

Fix ?/u showing potion of (regret-index)
potion of mutation is not a mutation named potion of.

--------------------------------------------------------------------------------
d9ff480968 | DracoOmega | 2024-01-21 00:01:23 -0330

Don't let spectral weapons get free hits every now and again
Actual triggered attacks by spectral weapons were handled by
spectral_weapon_fineff, but it was still possible for the spectral weapon
monster to randomly path into the player (or, presumably, something else).
And since all it takes in Crawl logic to initiate an attack is 'trying to
move into something we're not aligned with'), this would cause an attack.
Potentially multiple attacks in a row, in fact.

Since we never really want fight_melee to happen for spectral weapons, this
specifically blocks that.

(We could just reduce their speed to 0, but the sight of them dancing back
and forth feels a minor shame to lose, I think)

--------------------------------------------------------------------------------
36ad0d86fd | DracoOmega | 2024-01-20 23:59:25 -0330

Fix a very strange crash involving Vehumet wrath and quivering plasma beam
If Vehumet wrath triggered while the player had plasma beam quivered, the
game would reliably crash. The exact cause of this is a bit complicated and
also complete nonsense.

-God wrath creates an 'avatar' monster to serve as the origin of hostile
 spell effects against the player. This avatar uses MONS_PLAYER_SHADOW (for
 some reason...), which is invisibly placed at the player's own position
-The force_more that happens when god wrath triggers causes the UI to
 refresh, which causes a recalculation of whether the quivered spell has
 any visible targets (so that it can be dimmed if it does not)
-Calculating visible targets for beam-based spells involves firing a tracer
 at every single tile in LoS (including the player's own position!) until
 it finds one that hits anything hostile to the player.
-Plasma beam's tracer IN PARTICULAR fires a second beam at each spot,
 immediately after the first, without resetting the tracer's state (to
 account for monsters that may be immune to electricity but not fire)
-Because of some weirdness that I do not like, beam::agent() specifically
 checks if there is a MONS_PLAYER_SHADOW at the player's position, and
 then if the beam's source_id is MID_PLAYER, it returns the player shadow
 instead (this is somehow needed to make player shadows not copy the brand
 on player launchers for mimic ranged attacks...)
-Seperately, code that makes player allies stop beam attacks short if they
 would hit the player checks specifically that the agent() is a monster and
 that the beam is friendly. And then, when it would otherwise hit the
 player, 'rewinds' the beam one tile and stops it 'right before'.

All together, what causes the crash is:
 -Plasma beam tracer tries aiming at the player
 -Plasma beam's agent is hijacked by the Vehumet wrath avatar, since one
  currently exists
 -The beam's agent is now a monster (Vehumet), but the beam itself IS STILL
  FRIENDLY (because it's a player tracer), so it tries to regress the ray
  one tile to avoid hitting the player.
 -And because it's plasma beam, it repeats this a second time without
  resetting the beam and tries to regress a second time and then the math
  becomes very unhappy

A bunch of shadow mimic stuff is kind of a mess, but for now just verify
that the MONS_PLAYER_SHADOW standing beneath the player is actually their
shadow and not the shadow of a vengeful god who has decided to add some
variety to their day and assault the player's patience instead.

--------------------------------------------------------------------------------
74fbe469d6 | gammafunk | 2024-01-20 00:01:55 -0600

feat: A spell icon for Martyr's Knell (Sastreii)
(cherry picked from commit 5a2aebc5c2ff56217ad0f224068f0e939ed537ac)

--------------------------------------------------------------------------------
978bd804de | elliptic | 2024-01-19 17:34:00 -0500

Fix found gems shattering not being hidden by default (without more_gem_info)
It still leaves a note and milestone regardless of the more_gem_info
option, but the note is hidden unless the option is turned on.

--------------------------------------------------------------------------------
e66fa4eb29 | Nikolai Lavsky | 2024-01-20 00:12:24 +0300

task: 0.31 trunk tournament reminder

--------------------------------------------------------------------------------
efbe487952 | gammafunk | 2024-01-18 21:39:18 -0600

task: Update the debian changelog for 0.31.0
(cherry picked from commit 5180dd6056c141b7ef092b4df485498114467054)

--------------------------------------------------------------------------------
9740d1a105 | gammafunk | 2024-01-18 21:38:47 -0600

feat: New small abomination tiles from Sastreii
Tweaks to the blue one to make it look less like an abyssal tree, color
tweaks to the other one, and a new variant added.

(cherry picked from commit 2b8753d7e0eaf7b277a50fd64ef26e6b134fe243)

--------------------------------------------------------------------------------
8eac1daf1a | regret-index | 2024-01-18 19:16:20 -0330

unbrace

--------------------------------------------------------------------------------
d77652238b | regret-index | 2024-01-18 18:47:54 -0330

Deal with some teleport islands
Possibly water_maze_lemuel doesn't need the scrolls of teleportation after
it gets a hatch, but it does also make early unspoiled enlightenment into
the spiral guaranteed to be worthwhile, so I guess it's fine.

--------------------------------------------------------------------------------
fa3d79c85d | regret-index | 2024-01-18 18:44:16 -0330

Don't make firewood slow down ally travelspeed (CarefulOdds)
Something about demonic plant caution and brainless zombies goes here.

--------------------------------------------------------------------------------
86f1af28a2 | Kyle Rawlins | 2024-01-18 09:36:41 -0500

docs: md fix for webserver changelog
From using this changelog format on other projects, I've learned that
there's variation in whether a list is supported without a blank line
following a previous paragraph (github rendering supports this, but many
automated tools do not). This moves the changelog to the stricter
format.

--------------------------------------------------------------------------------
eba56dac1e | Kyle Rawlins | 2024-01-18 09:32:04 -0500

docs: update webtiles server changelog

--------------------------------------------------------------------------------
7c03013a13 | Kyle Rawlins | 2024-01-18 09:30:14 -0500

feat: error when python is past eol
This is intended to provide some feedback to server admins. For now this
error is toothless, but it won't be forever. (The version will need
manual updating, unfortunately.)

--------------------------------------------------------------------------------
6ae6769602 | gammafunk | 2024-01-17 11:49:30 -0600

doc: Some changelog tweaks (nicolae)
(cherry picked from commit c680215f6857a8aaf79f7ad4b0617d79fa5d988e)

--------------------------------------------------------------------------------
daabb59e76 | Nikolai Lavsky | 2024-01-17 11:26:47 +0300

docs: fix default value for `more_gem_info`
This option defaults to false, see 407de8339.

--------------------------------------------------------------------------------
e526923d97 | regret-index | 2024-01-17 03:29:22 -0330

Add Abyss runelights to default monster_item_view_features settings
They're very important to not miss, and monsters are placed on top of them
in multiple different Abyss rune vaults.

--------------------------------------------------------------------------------
28bc0835a1 | regret-index | 2024-01-16 19:26:03 -0330

Catch lost Lair gems, adjust a Spider gem
baedc58 did fix placing too many runes in the Arachne spider end (since I
missed the corner placements in afdcd2b), but also easily places the gem
quite far away from the rune. With some thorough clean-up of the vault
header, I've also reconfigured the vault slightly to have a proper
arrangement of gems placements close to rune placements.

Also, the spreee of edits in 866d48a accidentally made wormcave fail to
place the gem on occasion, if the double-small-Lair-end workings chose it
as the second (but not the first) of those double-Lair-ends. Additionally,
if Crawl fails to place two smaller Lair ends as it rarely does, then it
wouldn't place the Lair gem at all. Both of these have been fixed, the
latter by placing it in the first Lair end the game places just in case
it doesn't succeed in placing the second.

--------------------------------------------------------------------------------
89e19f1974 | Sean Dewar | 2024-01-15 10:26:04 +0200

Add missing description for Okawaru's "Receive {Weapon,Armour}" ability

--------------------------------------------------------------------------------
b74e046682 | 910rd | 2024-01-14 23:44:13 -0330

Add spell icon for Martyr's Knell

--------------------------------------------------------------------------------
dc043339e7 | DracoOmega | 2024-01-14 23:25:51 -0330

Try to clarify Martyr's Knell's summon cap
The summon cap of 1 applies only to the shade itself, and NOT to any flayed
ghosts that might later be created. I feel this is mechanically necessary
for the spell to not feel bad (since renewing your defensive benefit - or
even recasting the spell by accident - would instantly wipe out most of
what your flayed ghost could have accomplished).

But multiple players expressed that they felt mislead by the spell
description still saying "You can sustain at most one creature summoned by
this spell." so I have decided to make the description more explicit (with
a rather ugly special-case >.>)

--------------------------------------------------------------------------------
542084ee55 | DracoOmega | 2024-01-14 23:22:34 -0330

Tweak Sculpt Simulacrum's numbers
Reaction to this spell has been a bit mixed, with many believing that the
situational nature of the delay isn't worth the payoff. There's been
discussion of revamping a few aspects of the spell, but since we're in
feature freeze, I am going to just make modest numerical changes.

Originally the ice blocks were deliberately fragile, since I thought that
might give them interesting situational considerations, but it feels like
the delay alone provides that. I have now made them quite durable instead,
so that it's less likely your attempt to create summons will be distrupted
by damage - and in fact they may sometimes offer a defensive benefit.

I've also increased the summon duration from 2 to 3. It explicitly did not
want the summons to be so long-lived that the typical use-case was to
create them from the tail end of one battle so that you could bring them
into the next one. That is how necromany operates and I wanted this to be
as different-feeling as possible in that regard. But 3 is still pretty
common for regular summons, so hopefully fine.

We'll see how this incarnation feels across the length of 0.31

--------------------------------------------------------------------------------
d26e512322 | DracoOmega | 2024-01-14 22:43:05 -0330

Display damage modified by Might/Weak/Idealise in monster descriptions
Showing both base and current values, to make it unambiguous to the player
that Might isn't additionally added on TOP of this.

--------------------------------------------------------------------------------
baedc5810e | Implojin | 2024-01-14 10:07:35 -0600

fix: Don't place 5 runes in a spider vault
Looks like this was an oversight in afdcd2bc08.

--------------------------------------------------------------------------------
7fc57aa741 | Aliscans | 2024-01-13 21:14:13 +0200

Improve how search handles artefacts.
Instead of returning artefacts where the name & prefixes match, or
where the artefact description matches, return artefacts (from
inventory, floor or shops) which match with all three things combined.

--------------------------------------------------------------------------------
abc238812c | Rytis Petronis | 2024-01-13 21:13:26 +0200

removes ability to start repeat sequence with armour equip commands
The repeat command doesn't allow other multi-turn commands such as wield weapon
or wear jewelry, so this makes the behaviour unified.

--------------------------------------------------------------------------------
dfb5f862aa | wheals | 2024-01-13 21:08:10 +0200

Refactor

--------------------------------------------------------------------------------
18b7feefb4 | wheals | 2024-01-13 21:05:01 +0200

Show real file name for rc errors (#2536).

--------------------------------------------------------------------------------
414e8e9f11 | DracoOmega | 2024-01-13 13:38:16 -0330

Fix a possible crash with casting Sticky Flame at very low power
If spellpower was less than 10, it was possible for the div_rand_round to
result in random_range(1, 0) which asserts.

Having less than 10 power when casting a level 4 spell is pretty
implausible in most circumstances, but apparently doing it in Shadow Form
can help...

--------------------------------------------------------------------------------
e934b4519a | Nicholas Feinberg | 2024-01-12 22:24:44 -0800

Fix a teyepo (cool 3)

--------------------------------------------------------------------------------
aaba7af156 | Nicholas Feinberg | 2024-01-12 22:07:39 -0800

Cut some less-notable changes (gammafunk)

--------------------------------------------------------------------------------
bffa963729 | Nicholas Feinberg | 2024-01-12 21:49:40 -0800

Continue unmaking Meteorans (various)

--------------------------------------------------------------------------------
72778bb224 | DracoOmega | 2024-01-13 00:12:21 -0330

Don't lie about Yred bound soul hp
It is perhaps surprising to some people that bound soul hp doesn't care
about the hp of the original monster, but (like all dervied undead) is
purely a multiplier of the original's HD.

8d68a812144 misleadingly made bound souls' description state the original's
hp, (which was much less than their actual hp for many souls, while being
also much MORE than various lategame unique souls).

Yred is slated for significant changes in 0.32, and more transparency for
how much hp a bound soul will have is part of that. But in the meantime,
xv should at least reflect the current state more accurately.

--------------------------------------------------------------------------------
b1ac2c5b25 | DracoOmega | 2024-01-13 00:06:07 -0330

Fix a few errors in the changelog

--------------------------------------------------------------------------------
0d8cb65f81 | Nicholas Feinberg | 2024-01-12 17:34:15 -0800

Hide all traces of the time machine (Cilian)
Shh!

--------------------------------------------------------------------------------
23ea822b79 | Nicholas Feinberg | 2024-01-12 17:21:59 -0800

Finalish changelog update

--------------------------------------------------------------------------------
a7cece931a | Kyle Rawlins | 2024-01-12 09:35:48 -0600

docs: update changelog for 0.30.1
Historically we actually count the fixes, but this is a bit annoying to
do and doesn't really provide much useful info to anyone.

Comitter's Note: Cherry-picked from 713bb673 and added 0.30.1 to the
debian changelog as well.

--------------------------------------------------------------------------------
dde2bdd852 | Implojin | 2024-01-12 02:11:00 -0600

fix: Don't default autopickup useless evokers
29cbedb7bc enabled default autopickup for elemental evokers, but wasn't
checking whether they were useless or forbidden; under gods with ally
restrictions or forbidden conducts like Oka/Ru/Zin, this was picking up
evokers that couldn't be used.

This commit lets default evoker autopickup respect useless and forbidden
items.

--------------------------------------------------------------------------------
952d896825 | Nicholas Feinberg | 2024-01-11 23:10:20 -0800

Partial changelog update

--------------------------------------------------------------------------------
5cb510d322 | regret-index | 2024-01-11 18:26:26 -0330

New Fugue and Blazeheart spell icons (CanOfWorms)
Both of them are good work, as usual.

Re-alphabetized a little of summoning and necromancy in dc-spells, while I
was adding new spells there. A lot of these tiles listings need some heavy
reorganizing, honestly.

Wereblood's icon is now used for monster Battlecry, as something rather
important to notice on a rather wide variety of different monsters, and
as something which reasonably fits as a shouting face.

--------------------------------------------------------------------------------
1a3bd5dcfb | Aliscans | 2024-01-11 21:17:50 +0200

Fix InvMenu::load_inv_items().
Repair the function which lost secondary hotkeys in the previous
change.

--------------------------------------------------------------------------------
c8d6b64c82 | Aliscans | 2024-01-11 21:17:50 +0200

Make "!" in the identify scroll menu identify the first unknown potion.
Print (e.g.) "select first with '!'" in the menu to warn the player.

--------------------------------------------------------------------------------
4e6510e29d | Aliscans | 2024-01-11 21:17:50 +0200

Tell the player about MF_SECONDARY_SCROLL in menus.
If MF_SECONDARY_SCROLL is set, state in any menu "subtitles" that
object class keys (such as ? or /) move to an item in its section. This
was not previously communicated.

Add MF_SECONDARY_SCROLL to equip/unequip and identify menus.

--------------------------------------------------------------------------------
688b343257 | DracoOmega | 2024-01-11 10:32:59 -0330

Fix pacified good neutrals not acting like they were pacified
This is currently done to nearby orcs when you first accept a Beogh
conversion. I assume it was intended that they actually become pacified
or the could wouldn't have called mons_pacify(), but in practice this
didn't actually work, since for some reason monsters needed to have BOTH
the pacified flag AND be true neutral.

--------------------------------------------------------------------------------
d28174fed3 | DracoOmega | 2024-01-11 10:32:47 -0330

Fix a slew of frightening issues with pacified monster pathing
Pacified monsters were intended to path directly to the nearest level exit
and then leave the level. Sometimes they did this! And some other times,
deeply broken things happened. Where do I even begin...

First of all, there was a small chance each turn for a pacified monster to
give up on whatever exit it was moving towards (1-in-40 for human
intelligence monsters and 1-in-120 otherwise). The comments implied that
this was intended to help 'stuck' monsters look for a different staircase
instead, but the code never let them ACTUALLY look for a different one.
Instead, it would cause them to just start wandering vaguely in the general
vacinity of the nearest exit instead (possibly more than LoS range away
from it). Maybe they would randomly step on it at some point! But probably
not. (Also, if they were far enough from the exit at this point and
mindless, they would likely just wander around where they already were)

Also, if they rolled the random chance to stop moving towards an exit, that
exit would also become unusable to all subsequently pacified things (until
either ALL exits on a floor got marked that way, or the code hit a 1-in-20
chance when trying to find an exit for a pacified monster to regenerate
the cache from scratch). So they could give up, and then also cause future
monsters to ignore nearby stairs, too.

Also, for some reason, the code considered teleport traps as valid 'exits'
from the level, but it was only possible to trigger them 'leaving' by
stepping on one if they were also wearing -tele items (since otherwise they
would teleport before the 'leave level' check happened. If they landed
nearby, they would keep on walking into the trap over and over again,
trying desperately to accomplish something useful. If they DID have a -tele
item, on the other hand, stepping onto the trap would cause them to cease
to exist without even a message.

And most terrifyingly of all: the code used a cache of level exits on a
floor to avoid having to search for all of them each time a monster was
pacified. BUT THIS CACHE WAS NOT DISCARDED IF YOU LEFT THE FLOOR. This
meant that pacified monsters would try to path towards where exits were ON
A PREVIOUS FLOOR, and not the current one. And if they actually reached the
coordinates of one of those, they would simply vanish without a message.
As near as I can tell, this has likely been broken in this way for a very,
very long time.

Anyway! The code is different now. The cache is properly regenerated on
each new floor, monsters actually attempt to do a pathfinding check when
looking for an exit (to avoid the very real original problem of just being
stuck staring at an exit across water until they rolled the slim chance to
started wandering in place instead). They will even look for another exit
if the one they are moving towards becomes inaccessible during their
journey (detected somewhat crudely by 'has passed a turn without a valid
step forward', which isn't perfect, but is a hell of a lot improved).

If there are somehow NO exits they can path towards at all, they will
properly give up on trying and just wander around. The odds of being in
a completely disconnected spot (ie: on the other side of deep water) and
then this changing later (eg: by something teleporting them) feels slim
enough not to worry about it.

Also, teleport traps no longer count as valid exits. (Shafts and Gateways
to the Infinite Horrors of the Abyss still do, because they're funny)

--------------------------------------------------------------------------------
cbf77bbcfc | Nicholas Feinberg | 2024-01-10 10:26:49 -0800

Temporarily evert "Simplify off-hand attacks"
I forgot we're in feature freeze. Will merge this in 0.32.

This reverts commit ba2c541246222192d693b6520cb875a9e2dbfda5.

--------------------------------------------------------------------------------
ba2c541246 | Nicholas Feinberg | 2024-01-10 10:25:25 -0800

Simplify off-hand attacks
Off-hand attacks' trigger chance scaled on UC and on XL, unlike
all other aux attacks, which scaled only on XL (if anything).
This felt inconsistent (a punch scales on UC but a kick doesn't?),
and was confusing for players who misunderstood the UC skill
descriptions and thought off-hand punches were more than a consolation
prize for being shieldless.

Change their trigger to scale purely based on XL instead. (Damage
still scales based on UC, for now, but perhaps should also be XL
based.)

It'd be great to add a description for these somewhere - no idea
where it'd live. Ideally there'd be both a manual section and
somewhere in-game where you could learn more about your current
off-hand damage and chance.

--------------------------------------------------------------------------------
54f21dcd01 | Implojin | 2024-01-10 10:35:21 -0600

Remove some obsolete autopickup lua
This code was added in a35564097f (2015) to prevent autopicking
multiple elemental evokers, which have generated only once per game
since 5db6f66fbb.

--------------------------------------------------------------------------------
29cbedb7bc | Implojin | 2024-01-10 09:18:53 -0600

Autopickup elemental evokers by default
Excluding the horn of Geryon, because it doesn't currently exist on
the \ menu, and we want players to be able to manually disable these
if desired.

Possibly the horn should be enabled in both places, since it is treated
internally as an xp evoker, but I'm not touching that here.

--------------------------------------------------------------------------------
beaec30b81 | DracoOmega | 2024-01-09 19:26:10 -0330

Let monsters cast ensnare on other monsters (Oneirical)
I overlooked this when scanning for other 'low damage beams with
side-effects' since there isn't actually a corresponding zap type in the
list.

--------------------------------------------------------------------------------
a12eea24be | DracoOmega | 2024-01-09 19:05:56 -0330

Avoid a rare crash with eleionoma/witch wand creation (PleasingFungus)
The exact cause is still a bit obscure, but it seems like if they drop a
wand that is your last unID'd wand, and that wand was also on your shopping
list, it can cause a level excursion that wipes out the still-dying
monster's data before their death is finished processing.

I'm still not satisfied with this, as it's unclear why it only triggers for
the LAST wand (and not 100% of the time, even then), but this still seems
to greatly improve the situation.

--------------------------------------------------------------------------------
e65d87d18d | Nicholas Feinberg | 2024-01-09 09:33:25 -0800

Make ribbon worms catch their breath (Monkooky)
Reduce serial ensnare spam. They need some time to grow new guts,
even with that M_FAST_REGEN!

--------------------------------------------------------------------------------
d52d5dbe6e | Nicholas Feinberg | 2024-01-09 09:32:25 -0800

Give a gem an unswirly (Ge0ff)

--------------------------------------------------------------------------------
4aaf141004 | DracoOmega | 2024-01-08 15:22:25 -0330

Forbid -cast and spell school enhancers on the same randart

--------------------------------------------------------------------------------
890cdf5628 | Nicholas Feinberg | 2024-01-07 22:53:33 -0800

Don't label Lom Lobon a minor threat (cool2)
?/m monsters are MTHRT_UNDEF.

--------------------------------------------------------------------------------
9787180647 | Nicholas Feinberg | 2024-01-07 17:30:47 -0800

Autoquiver throwables on pickup again (advil)
Broken in b92c8fe61fd27051bdea34e1b4cbf590aca69b95.

Resolves #3344.

--------------------------------------------------------------------------------
8663dec9be | Nicholas Feinberg | 2024-01-07 16:31:30 -0800

Fix dgn_farthest_from (ihatemudryk)
The old code did not work - it was a broken implementation of a
breadth-first search. Incidentally, it would also crash if it was
passed a beacon with just one adjacent tile, or two beacons with no
adjacent tiles. (But that was mostly unrelated.)

Resolves #3460.

--------------------------------------------------------------------------------
7d6f0aea37 | Nicholas Feinberg | 2024-01-07 15:40:33 -0800

Fix fleeing orb spiders' bloodlust (ZillyBean)
Firing positions are not relevant when fleeing.

Resolves #2992.

--------------------------------------------------------------------------------
996d7381b2 | Nicholas Feinberg | 2024-01-07 15:22:30 -0800

Adjust tentacle description (acrobat)
Sigh.

Resolves #3458.

--------------------------------------------------------------------------------
60c5cc7444 | Nicholas Feinberg | 2024-01-07 14:49:33 -0800

Fix Bai losing her blood too soon (acrobat)
Only drop talismans (and jewellery, etc) after she dies, not just
when she transforms into a dragon.

Resolves #3455.

--------------------------------------------------------------------------------
6e05a210f3 | regret-index | 2024-01-07 15:31:02 -0330

Catch a different missing silver rune (Darby)

--------------------------------------------------------------------------------
2b2087bae8 | regret-index | 2024-01-07 15:18:57 -0330

Catch a missing silver rune (CarefulOdds, Darby)
Might be a good idea for objstat to also track runes just in case anybody
does another big overhaul of all the V:$ quadrant subvaults or anything
else extremely long. Also, I feel obliged to say it's kind of dumb how
long we've kept the tradition of "O" being the rune glyph / branch entrance
glyph since it was not longer hardcoded to dynamically turn into the right
entrance / rune so very very long ago and it's so easy to read it as a 0.

--------------------------------------------------------------------------------
bec6b6ccbf | Nicholas Feinberg | 2024-01-06 22:40:01 -0800

Fix: don't crash in \ (lowenheim)
How did no one else report this?!

Resolves #3404.

--------------------------------------------------------------------------------
1c3f895ad5 | Nicholas Feinberg | 2024-01-06 22:29:55 -0800

Limit GDR application (DracoOmega)
We have never used GDR on triple or proportional AC types, and I
doubt we ever will. Rip out the code.

Resolves #3426.

--------------------------------------------------------------------------------
a0385a40c4 | Nicholas Feinberg | 2024-01-06 22:24:53 -0800

Fix bound monsters being swappable (acrobat)
Resolves #3454.

--------------------------------------------------------------------------------
17a54de940 | Nicholas Feinberg | 2024-01-06 22:07:25 -0800

Refactor Sigil of Binding

--------------------------------------------------------------------------------
1b3c7e429d | Nicholas Feinberg | 2024-01-06 22:00:39 -0800

Fix sturdy frame description (acrobat)
Resolves #3457.

--------------------------------------------------------------------------------
94871bc2e8 | regret-index | 2024-01-07 02:06:14 -0330

Fix an occasional connectivity bug

--------------------------------------------------------------------------------
e7908ec95f | Nikolai Lavsky | 2024-01-07 00:40:01 +0300

fix: don't gain extra lives after losing gems
Due to a missing `break` in 7c67ea8c8, every time the power of Zot
shattered a gem, a note about gaining an extra life was added to the
morgue.

--------------------------------------------------------------------------------
300232130d | regret-index | 2024-01-06 17:23:54 -0330

Adjust a few small monster bits
The withered plant description adjusting their age versus the branch they
spawn in wasn't working properly, which this fixes. Also, this reorganizes
some of monspeak.txt into proper alphabetizing, and friendly laughing
skulls via Yred now still speak on occasion.

--------------------------------------------------------------------------------
3d35757396 | regret-index | 2024-01-06 17:23:28 -0330

Nudge up kobold blastminer ranged damage (Monkooky)
While these are meant to be anti-melee monster experiments, the current low
damage of blastminer arbalests (less than orc warriors with arbalests)
makes it entirely plausible for sufficient AC characters to kill them via
poison darts rather than closing in and risking getting bombarded. This is
an unideal state for a monster as deep as Orc and involves some kiting,
so they're getting a slight nudge up of ranged damage (but not Bombard
damage) to try and discourage such tactics. Bombard is still a much bigger
focus of threat for the monster, anyway.

--------------------------------------------------------------------------------
e0997bbf37 | regret-index | 2024-01-06 17:09:49 -0330

Placeholder: rename + retile hard mode ice cave entries
This distinguishes easy and hard ice caves explicitly in game by making the
latter's entry feature be "glacial archways" to "a glacial chasm". This
also adds a new, higher-detail tile by Sastreii.

Currently, this is only a vault-defined feature name using a fragile hack
for the current branch-based difficulty split (as of fc7f089). In the next
version, we would like to make easy and hard mode portals (ice caves or
other future settings) lead to entirely different branches that happen to
share the same maps (e.g. said "Glacial Chasm"), rather than having the
current opaque hard cut-off. Adding new branches is beyond the scope of
currently being in feature freeze, however, so this is a somewhat
incomplete adjustment for now. It should still be an improvement, in that
it explains to newer players that there's any signifncat difficulty split
at all.

--------------------------------------------------------------------------------
e08a94be7c | DracoOmega | 2024-01-06 09:11:17 -0330

Fix some more possibly-uninitialized variables

--------------------------------------------------------------------------------
ea8d852952 | DracoOmega | 2024-01-06 08:49:07 -0330

Avoid a divide-by-0

--------------------------------------------------------------------------------
515db51633 | DracoOmega | 2024-01-05 19:06:46 -0330

Remove a long-unused zap type

--------------------------------------------------------------------------------
5eddcf2448 | DracoOmega | 2024-01-05 19:06:46 -0330

Fix monsters refusing to use pyre arrow / meph breath on other monsters
This is a very hacky stop-gap fix because I don't want to do the deeper
code refactoring that would be involved in a better fix after feature
freeze.

But the gist is that monsters would refuse to use these against other
monsters because the tracer says that they would inflict 0 damage (even
though the primary reason to use them is for their post-hit effect)

Currently, because AC is rolled during monster-vs-monster tracer checks,
low damage attacks can randomly be ruled irrelevant, even when their
side-effects would be very relevant. In practice, many of these do enough
damage that this is unlikely to occur (ie: quicksilver bolt, bolt of
devastation, and klown pies all do 3d20), but this may also be an issue
with some zaps with sufficiently low impact damage.

In future, it would be good to unify all 'apply a non-damaging effect from
a non-enchantment beam' into a single place that can check if a target is
eligable and then apply it, instead of the scattershot approach of checking
things in multiple different places (and sometimes via string comparison!)
This could even include the great mess that is monster cloud code!

But for now, this appears to fix the most immediate problem, and hoppefully
shouldn't cause any new ones.

--------------------------------------------------------------------------------
8f5e8aebd6 | regret-index | 2024-01-05 01:30:13 -0330

Emphasize only intelligent monsters activate net traps
Whether or not this is a weird behaviour we entirely want to keep,
we might as well clarify the current specific behaviours of net
traps (always player-centric, only human-intelligence monsters
activte it) in their description.

I'm of two minds to keep this- it's extremely idiosyncratic and
unexpected compared to other traps, but removing it would make two
ossuaries and Zot:5 and Tomb all toss even more nets indefinitely
at players. Might be worth considering a limited activation count
and some context of only monsters activating it, in 0.32.

--------------------------------------------------------------------------------
b20b95014f | regret-index | 2024-01-05 01:30:13 -0330

Catch some missing V:$ gems (DracoOmega)
Figured out with the power of objstat looking for gems and some
long, meticulous hunting.

Also slightly adjusted some other gem positions and left a comment
on not accidentally leaving behind too many 'k' glyphs for the
gem subvault to properly find.

--------------------------------------------------------------------------------
df1f1dc8e9 | Implojin | 2024-01-04 22:12:43 -0600

Move Barachim in the manual (Darby)
Ba are intermediate at character select, but were listed in the manual
under advanced.

--------------------------------------------------------------------------------
e50629dacd | DracoOmega | 2024-01-04 23:21:48 -0330

Teach objstat about gems
So that we can run tests to verify that it will place all of them 100% of
the time.

--------------------------------------------------------------------------------
3c05fc5d25 | regret-index | 2024-01-04 22:12:50 -0330

Catch some missing Elf:$ gems (Flugkiller)
I don't really know why two of these later vaults were giving out
better rewards and counts than the others, nor why two of the
earliest vaults don't use the same standardized loot distribution
and guardians vaults both before and after them use. Should review
and standardize these item amounts more in the future.

--------------------------------------------------------------------------------
a8702eb40a | regret-index | 2024-01-04 21:17:27 -0330

Barachi and Oni dummy monster tiles (Sastreii)
We've accumulated so many nice tiles for player-species dummy
monsters it'd be nice to have more than one pan lord vault and a few
entry vaults use them. Even if they need to be kept out of actual
monsters for players to fight, and we've got a preponderance of
early vaults showing off monsters behind glass, maybe some idea will
come up some day. (Maybe some more bazaar customers off in the far
distance of layouts that aren't nearly so cave-like?...)

--------------------------------------------------------------------------------
afdcd2bc08 | regret-index | 2024-01-04 20:29:26 -0330

Indefinite widespread vault review
Of note:

 * Barachi, gnolls, armataurs, djinn, and oni are now all in the various
   species zoo arrival vaults and the one pan vault.

 * Crypt:$ gets a 33% chance to place a talisman of death, replacing the
   old evokers pile that struggles with the evoker count limitations these
   days. Death form is extremely expensive, skill points wise, and there's
   not much left of a regular 3-rune game for such a drop to be too useful,
   but it can be another enticing reason to visit Crypt and might make more
   characters actually try out extended beyond those already ready for it.

 * Some shard shrikes were trimmed out of a variety of vaults. We have a
   couple more reasonable ice enemies at this point compared to when they
   were added, and there's been too much leakage of hells as is.

 * wizlab_doroklohe gives a single charge of digging and a single scroll of
   revelation at the start, now, to forewarn its exact contents. It also
   has messages directly pointing at the walls for the countdown.

 * Gems have been taken off the exact same space as the runes in the
   branches with both, so they can sparkle on their own seperately of the
   runes and so apportation UI / casts don't work awkwardly against them.
   This will need more testing to make sure I didn't misplace any V gems...

--------------------------------------------------------------------------------
e90ac80ac4 | yrdzrfxndfvh | 2024-01-04 20:29:06 -0330

buff ice ziggurats (#3401)
[Committer's notes: Simulacra in ziggurat previously called directly
from HD versus the ziggurat's abs/depth, which would end up getting
stuck later on shrikes and two of the giants. The specified list for
simulacra is a good idea, but it is too much of a malevolent meme
for zig dippers to possible instantly explode against a 20-headed
hydra simulacrum. Used a different specific list instead. Also,
wendigo do in fact overlap too much with Cocytus. Rather than pull
further from Cocytus, use ice monsters that don't- ironbound
frosthearts, and walking frostbound tomes. Both are probably still
fine for Ziggurat dippers, and one of the layouts places the start
of the floor by a wall.

Closes #3401.]

--------------------------------------------------------------------------------
41d5ff3e7b | DracoOmega | 2024-01-04 19:12:16 -0330

Fix Peanut Brittle pies not actually vitrifying monsters
Also fix a trivial inconsistency in durations.

Fixes #3399

--------------------------------------------------------------------------------
55fdcbfc7f | DracoOmega | 2024-01-04 18:47:45 -0330

Fix alchemy miscast text in spell descriptions (Picklenugget1)
It should say that they can poison you, but inflict 'alchemy damage' >.>

Fixes #3451

--------------------------------------------------------------------------------
a2fd7aa73c | DracoOmega | 2024-01-04 18:23:54 -0330

Prompt the player before stepping onto a binding sigil
I don't like the code duplication in this function. Probably could use some
refactoring at some point.

--------------------------------------------------------------------------------
4e53e8b332 | DracoOmega | 2024-01-04 18:22:45 -0330

Fix Gozag/Yred worshippingers being unable to cast Sculpt Simulacrum
It doesn't use corpses anymore, so there should be no conflict.

--------------------------------------------------------------------------------
532432118c | DracoOmega | 2024-01-04 18:22:16 -0330

Fix orb spiders being able to move a little while asleep
No code specifically keeps sleeping monsters from moving. It's just that
their target (ie: 'where I'd like to move') is set to themselves.
M_MAINTAIN_RANGE monsters try to move towards firing_pos instead and this
was not set, so when put to sleep they would still move to their next
intended destination before stopping.

This fixes #2972

--------------------------------------------------------------------------------
a3383bade6 | regret-index | 2024-01-03 21:01:23 -0330

Add some of nicolae-'s Crypt & Orc vaults from PRs #3325 & #3326
nicolae- has been very preoccupied during 0.31's development period, and
wasn't able to finish updating either pull request in response to feedback.
He's assented to me fitting in vaults from these two pull requests that
would require minimal to no editing for 0.31, and I have done here.
Hopefully, in the fullness of time, he'll be free enough to update and
finish the rest of those pull requests' contents.

--------------------------------------------------------------------------------
1bbaa075f8 | regret-index | 2024-01-03 19:43:03 -0330

Mildly reorganize orc.des and crypt.des
Mostly some quick headers and splitting decorative vaults from
monster vaults. We're not very close to the minimum branch-unique
decor count for either branch (somewhat arbitrarily: 20 for one
floor, 27 for two, and 54 for four), but there's decorative vaults
inbound for both of these, and it'd make future assessment for
such be much faster.

--------------------------------------------------------------------------------
5526595cd0 | regret-index | 2024-01-03 18:58:42 -0330

Remove a testing weight for D:15
Whoops. Sorry.

--------------------------------------------------------------------------------
39cc6bdce3 | yrdzrfxndfvh | 2024-01-03 18:07:04 -0330

a couple more ziggurat pillar changes (#3402)
[Committer's notes: Even if we were to allow nameless horrors
outside of miscasts, they're very redundant and boring when there's
already a very long list of summoners also available. Animated
armour is also very boring as a hostile monster due to its glacial
movespeed, and trying to solve this by giving it more HP is
extremely undesirable as one-off behaviour. The other stuff is good.
Alongside from leaving out those singled-out components, I did a
little bit of reformatting, clean-up, and sprucing up.

Closes #3402.]

--------------------------------------------------------------------------------
1b1bae75ae | regret-index | 2024-01-03 17:29:05 -0330

Deal with rude bazaar customers plus other vault monster attitude weirdness
Okawaru worshippers and those that sacrificed love both now get messages
about the good_neutral bazaar customers leaving as soon as the player
arrives, rather than having to fight them all as hostile monsters.

For those who have neither excuse yet killed completely friendly people for
the experience and piety, there's actually been a long-standing bug.
Friendly, neutral, and good_neutral monsters placed via vault monspec, as
opposed to any other means or source, would still give rewards for killing
them. Monsters placed this way are now marked as not giving rewards, so now
nobody gets xp or piety for attacking the bazaar customers, Elyvilon altar
quokkas, or the Zot hot tub draconians. Ease up on the murder sprees.

--------------------------------------------------------------------------------
7be0f4f3a5 | Implojin | 2024-01-03 10:49:13 -0600

Improve Serpent's Lash rampage behavior (sdynet)
After 961fd35ebc, making a rampage attack across a one-tile gap while
serpent's lash was active (e.g.: @.o) wouldn't consume serpent's lash.
Instead, the player would make a rampage move, followed by an attack,
using attack delay.

The new behavior was surprising to players: Prior to 961fd35ebc, the same
setup consumed a serpent's lash charge, moving with 0 delay.

Here we allow rampage moves ending in an attack to trigger serpent's lash,
which should bring the behavior more in line with player expectations.

This could be simplified while better respecting WJC encapsulation by
calling the full WJC post moves here, but that would trigger whirlwind
twice for these one-tile move attacks, which might be a bit much re:
balance.

--------------------------------------------------------------------------------
93c622d222 | yrdzrfxndfvh | 2024-01-03 01:43:13 -0330

add a vault for each hell branch (#3425)
[Commiter's notes: No draconian shifters in Gehenna, sorry. They're too
off-theme and clash with the vault's own desire to have monsters call down
damnation. Alongside some general clean-up, I also specified statue tiles
in the Gehenna vault, lowered the monster spam with randomization in the
Cocytus vault and gave it pharaoh ants over necromancers so soul-binding
is far more likely to happen, tossed out the plain lich who can't IOOD or
bolt of cold through the Tartarus spectral snake pile, and buffed the Dis
orange crystal count to be less trivial after luring the motile monsters
out.

Closes #3425.]

--------------------------------------------------------------------------------
8ca8a6932e | regret-index | 2024-01-03 01:43:13 -0330

Lower protean progenitor Will (Prakerore)
They had Will 180 to match titans as a nearby giant, but the other high
tier giants added well after those (juggernauts, iron giants, tainted
leviathans) all only have Will 120. It should be reasonable to make
proteans fit the same notion- even 27 Evocations doesn't make charm or para
wands get better than 12% success rate, and more dedicated hexing already
has big other concerns in Zot (like orbs of fire and electric golems).
Plus, reading a scroll of vulnerability in Zot comes with lich-shaped
trade-offs for now, and may come with additional problems in the future.

--------------------------------------------------------------------------------
8e2b85f8ed | Edgar A. Bering IV | 2024-01-02 20:08:37 -0800

fix: dont place a god altar with polyominoes
This was meant to be `b` not `B`

--------------------------------------------------------------------------------
7e4722a024 | Implojin | 2024-01-02 19:30:36 -0600

Fixup a rampage assert
ba8647c523 moved this assert before the rampage move it was intended to
guard against.

--------------------------------------------------------------------------------
ba8647c523 | DracoOmega | 2024-01-02 21:27:29 -0330

Move an assert somewhere it can actually theoretically trigger

--------------------------------------------------------------------------------
e1511139a1 | regret-index | 2024-01-02 21:06:35 -0330

Experiment: give bazaars non-hostile monster customers
While it's good for variety's sake and flavour's sake to have portals that
don't contain any monsters, bazaars could do with a little more fanciness
than their current very old style and roster for decorations. It'd take a
fair bit of effort to add more decorations to each individual bazaar map,
since there's over forty of them, but there is one relatively unique and
cute option available with relatively minimal effort:

Other customers! They're att:good_neutral, which means they won't attack
players, won't follow them out of the portal, and won't provide xp or piety
if the players are jerks. The choices here are all quite weak for Bazaar
depth, so it's unlikely carting hostile monsters into the bazaar would be
even slightly worthwhile; those choices are also monsters representing both
branches and other player species, kind of. It should also give the place a
little more liveliness compared to other empty places like Temple and
troves, suiting for its explicitly busy state.

For now, there's 1-3 customers per bazaars, with a 1 in 27 chance for 4-6
customers.

TODO: Idle bazaar customer dialogue.

--------------------------------------------------------------------------------
e0190472d0 | regret-index | 2024-01-02 21:01:25 -0330

Trim a bit off of Aizul's deeper depths (Ge0FF)
Following the spirit of 005a376, Aizul's got good dangerous appearances in
the Lair branches and a pre / post Lair branches Elf, but falls off later
on as player XLs go up and innate Willpower can stave off her Sleep casts.
With around a ~0.3% or worse killratio in Vaults, Depths, and Crypt, and
with plenty of other late uniques around to provide variety, she can
slither away from all but the first two floors of Vaults and be better off.

--------------------------------------------------------------------------------
4ceaed913a | regret-index | 2024-01-02 21:01:25 -0330

Tweak Pan Lords a little more, yet again
 * Summon Vermin gets swamp worms and goliath frogs over redbacks so it's
   tangibly different from Summon Spiders + hell rats. It'd be nice to have
   some unique actually cast this spell in the future- we've managed to
   mostly de-emphasize summoning uniques in the newer designs these days...

 * Pan lord random brands add AF_DRAG to the list, because dragging
   somebody away from a staircase during the orb run is good, and because
   they already got trample in f39bf5d.

 * Pan lords now get Plasma Beam, Vitrify, move the no-longer-piercing
   Metal Splinters (81a9d5b) from AOE spell rolls to bolt and projectile
   conjurations spell rolls, lose a duplicate Bolt of Devastation chance,
   and lose Iron Shot for Bombard because they've already got both LCS and
   Metal Splinters.

 * A variety of Pan lord AOE spells (and some ghost spells like CBL, Malign
   Gateway, and Plasma Beam) now result in them giving more experience,
   since most spells of their spells already did such. Commit messages in
   e.g. f6a566e is correct in that the specifics of this list are rather
   weird, but this should properly show the danger and reward the xp for
   both ghosts and Pan lords as seems to be its main coherent focus.

I also tried to sort the spell sets in a few lists a little better:
(hexes -> summoning -> buffs -> conjurations (fire -> ice -> earth -> air
-> necro -> alchemy) -> the rest).

--------------------------------------------------------------------------------
f47e9a2960 | DracoOmega | 2024-01-02 20:34:59 -0330

Fix blastmote knockback (and maybe other things??) not clearing water hold
If the player was knocked back by a blastmote explosion, it would not end
a water elemental engulf that was currently in progress, even if it knocked
you away from them. Curiously, this wasn't true if the water elemental was
the one knocked back instead.

I am going to go on record here and say there are FAR TOO MANY similarly
named functions for moving players and monsters around, which check some
different subset of different properties (and sometimes call each other,
but sometimes don't). It's not at all clear to me which you are even
SUPPOSED to call in different situations (is it clear to anyone?) and given
the breadth and complexity of different checks performed for movement, I
think it would be nice to do some heavy refactoring of this. ...some day.

--------------------------------------------------------------------------------
72ca9f7c6f | DracoOmega | 2024-01-02 20:34:59 -0330

Fix a terrible interaction between Noxious Bog and quicksilver
Casting Eringya's Noxious Bog simultaneously created bog tiles around the
player and gave a status that made the player immune to these, *but those
two things were not otherwise linked*. This meant that if the player lost
the status (due to drinking !cancellion or being hit by quicksilver), the
bog would remain, but they would lose their immunity to it - often swiftly
dying in the process.

Since the bog is supposed to be radiating from the player's magical effect
in the first place, instead immediately remove the bog if the player loses
the status prematurely.

--------------------------------------------------------------------------------
e2c2431d72 | DracoOmega | 2024-01-02 20:34:59 -0330

Give Protean Progenitors (and flesh) rPois, give flesh fast regen (r-i)
In the theme of many giants representing a different elemental school of
magic, consider progenitors the 'alchemy giant' and give it the appropriate
resist (this also makes them safer from green drac clouds)

Also, aspiring flesh were always intended to regenerate at the same speed
as their protegenitors.

--------------------------------------------------------------------------------
9d92c49a05 | DracoOmega | 2024-01-02 20:34:59 -0330

Very slightly reduce the odds of chaos polymorph (regret-index)

--------------------------------------------------------------------------------
508479e61e | DracoOmega | 2024-01-02 20:34:59 -0330

Fix a minor bug with mons_has_attacks()
Only treat AT_WEAP_ONLY as an attack if the monster actually has a weapon.
(xv even hides that the monster has an attack at all if it isn't wielding
one)

--------------------------------------------------------------------------------
4bb3443018 | DracoOmega | 2024-01-02 20:34:59 -0330

Block Chaos weapons from using Might/Weak on monsters with no attacks
Mostly using similar logic to what BEAM_MIGHT itself uses. (Which is why
it can stack Weak but not Might, even if that otherwise feels quite
arbitrary. Not likely to matter in practice, though.)

--------------------------------------------------------------------------------
4d2d64e67e | DracoOmega | 2024-01-02 20:34:59 -0330

Describe goliath frog acid damage in xv
It's a little unfortunate that this is still slightly lying, since that's
only how much damage *players* can take from it and not other monsters,
but probably that is better than showing nothing at all.

--------------------------------------------------------------------------------
5715333c33 | David Lawrence Ramsey | 2024-01-02 15:53:59 -0600

Add Yred death message for nonliving players.
Djinn and Gargoyles can't be zombies or join the undead harvest.

Message suggested by regret-index.

--------------------------------------------------------------------------------
bdd0a2a65a | regret-index | 2024-01-02 18:18:19 -0330

Caster tile updates by Sastreii
Some magical effects in the left hands of some monsters sort of clashed
with the possibility of listing effect icons in that specific corner-
notably including haste, lost soul ghostliness, or icebound souls. These
new tiles should reduce those concerns for casters of each: arcanists,
necromancers, deep elf death mages, and ancient liches have all been
adjusted.

--------------------------------------------------------------------------------
6f9dbf35b3 | regret-index | 2024-01-02 18:08:02 -0330

No more deriving undead from the already undead
Currently, the vast bulk of undead can't be used to make derived undead.
The exceptions are highly idiosyncratic, and are mostly later additions
of flavour-wise corrupted monsters that happen to leave corpses. There's
long-established precedent for even corporeal, corpse-leaving dead to not
rise yet again with the necrophage / body body / ghoul glyph, and it makes
a lot more sense for all undead to not get a third chance at shambling
around from both flavour and mechanical perspectives.

I am thus preventing vampire mosquitoes, ghost crabs, death scrabs, and
tainted leviathans from being possible zombie fodder. This does once more
make Tomb that little bit harder, since death scarabs actually make for
quite strong undead minions (losing battiness, keeping a high speed,
and available in constant swarms). I do feel a little conscientious about
such, but Tomb should be addressed on very different grounds than through
this very weird, inconsistent, and unexpected behaviour.

--------------------------------------------------------------------------------
98767d6fda | regret-index | 2024-01-02 17:54:56 -0330

Adjust species -> class recommendations re: Alchemy
In-game background recommendations are generally looking for positive apts.
They were untouched in the Transmutations + Poison merger into Alchemy.
Gargoyles went from 0 Poison to -2 Alchemy, which makes most of the starter
spells difficult enough that they probably shouldn't be recommended it.
Felids always had -1 in Poison and still, but they lost their fast movement
for kiting purposes and we don't recommend every caster background for
Felids. Tengu also lost their fast movement and had their -2 Transmutations
plus 0 Poison averaged to -1 Alchemy, which also leaves that species +
background a bit worse off. All three are no longer recommending Alchemist
after first choosing the species.

In return, I'm tentatively adding Vampire to the list of those recommended
Alchemists. They went from +1 Transmutations plus -1 Poison to +1 Alchemy,
which makes for a decent enough start- note that Vampire is already
recommended Ice Elementalist and Earth Elementalist, both with +0 apts
in the corresponding elements. They have -3 Conjurations and -2 Fire, but
+0 Air should allow reasonable Mephitic Cloud casting, and they can still
easily throw around Olgreb's Toxic Radiance. Whenever they find it, they'll
also be good casters of Alistair's, Eringya's, and especially Yara's given
spells.

--------------------------------------------------------------------------------
fc7f089eb7 | regret-index | 2024-01-02 17:08:14 -0330

Very slightly trim Ice Cave and Ossuary ranges
Prior to the introduction of Depths, the Ice Cave difficulty split in D was
a coinflip on a random midpoint floor of D (D:14 or 15) and always set to
hard when deeper than that. The coinflip was removed in b4d244a, but
183a740 reintroduced the notion by making D:14-15 contain hard ice caves.
This was done due to the bottom of D being not very far away from having
to explore the Lair branches themselves, where those are always set to
hard. Over time, there's been confusion about which of those floors
contains hard ice caves- the D:13-14 threshold neither uses the very last
floor of D, nor does it stop at the thresholds use for placing Orc or
Vaults. It especially doesn't help that at the current juncture, in-game
nothing is actually explained about harder ice caves outside of noticing
what particular monsters one faces- it mostly matches to specific branch
ranges, but falters on this exact point.

While there's been discussion about using different names for features
and the sidebar for distinguishing this difficulty split ("ice grottos"?),
there's also been some discussion about how ice caves strangely stretch
out one element for a long chunk of the game itself, to the point of using
specific ugly thing colours, draconians, and monsters mostly unique to V
or Cocytus. It doesn't help that there's not any time gap between most of
when one can encounter easier versus hard ice caves, either. While I
actually have some interest in stretching out the easy versus hard portal
concept further in the future, most of it would feature much wider divides
than D:13 versus D:14, anyway. With all of this considered, I'm cutting out
the D:14 and D:15 ice cave spawns entirely- it should introduce a tiny bit
of a gap, reduce the pressure ice caves have for spawning so often, and
removing the confusion for 0.31 which floors of D can contain which ice
caves difficulties.

Also. Ossuaries are in a very awkward part of the game in some ways- a D:4
character and a D:8 character can be very far apart just in terms of
finding chain / plate, a non-starter weapon, or being able to reliably cast
a L3 or L4 spell instead of L2. While it's good to feature them early as a
portal to shake up the most-often-seen early game, and since they got so
such a recent rebalancing and set updates, later ossuaries still rarely
feature any much for threats. In lieu of adding idiosyncratic difficulty
scaling to the lot of them, I'm instead trimming the very last floor
of ossuaries for now- it makes their range the same amount of floors as
Sewers, and the deathrate for D:8 ossuaries over the past three versions
is a paltry ~0.5% anyway. This comes with very slightly more chance to
see Ossuaries on D:6 and D:7, to somewhat make up for the lowered overall
Ossuary count.

--------------------------------------------------------------------------------
005a376ed2 | regret-index | 2024-01-02 06:16:14 -0330

Trim off a bit of Kirke and Josephine's depths
Both of them have current killratios very weak in Lair branches, and they
both spawn much earlier currently in Lair itself. Josephine doesn't really
need the first floor of any of the Lair branches, where wraiths will
completely fall off- it's probably a remnant of when she got the standard
variable necromancer bands and before she was moved to also spawn in Lair.
Meanwhile, it's thematic to have Kirke in Shoals, but she doesn't need to
keep spawning past the first floors of any of the Lair branches when she
already has D and Lair as placements themselves.

--------------------------------------------------------------------------------
5ff9445e89 | regret-index | 2024-01-02 02:42:28 -0330

Alter more branch vault fanciness
 * Stone walls in Zot by default now match the wall colours of the Zot
   floor they're on. There's interest in getting much fancier tiles for
   Zot stone eventually, but this should help it a little for now.

 * The new stone walls and floors in Depths have been adjusted in
   miniscule, slightly more varying amounts.

--------------------------------------------------------------------------------
e431911d44 | regret-index | 2024-01-02 02:04:09 -0330

Once more, yet more, widespread vault review
Header house style consistifying, redundant line cleaning, so on and so
forth.

Of note:
 * Depths entrances are now the other main category of vault that place
   any of the new Depths stone floor tiling and columns.

 * Nerfed volcano_village's rare chance to place three or more hell hogs.

 * Burial acolytes are more consistently tagged patrolling (to try to stay
   with their zombies) and aren't placed on D:4 anymore.

 * There's been some concerns that Brain Bite is a pretty complicated
   mechanic to be mostly showcasing so early as Sewers with little other
   chance to read or see it. To offer other chances for newer players to
   parse the mechanic with less pressure, there's now a rare chance each
   in two Xom overflow altars and a Trog overflow altar to see them in
   early D, but nowhere else of note.

 * The old orb chamber minivaults, which are currently acceptably very
   dangerous in terms of just filling the old orb guardian positions with
   random floor spawns, now consistently have different floor tiles and
   colours as a bit of warning in advance they're very dangerous. Some
   fraction of them had magenta stone glass, but not all of them, so it
   might as well be consistent between the each of them.

 * spin_cycle gets another update to keep Lair branch out-of-depths
   (spriggan berserkers, salamander tyrants) out of the D:15 spawn and
   refocus it back to intelligent bands as was the explicit point of the
   long depths-scaling band-making function.

 * Spider ends no longer use a generic grey brick wall tile for stone,
   since Spider got branch-unique tiles in 5baa6b7 and we might as well
   actually use those in their main branch use. (This also means no
   WALL_SANDSTONE in the tomb end, since most other uses of that are for
   rock walls and not stone anyway.)

 * nicolae_gadget_shop now has 4 items, not 8. The current rotating sets
   for evocables make it very awkward to take most of the entire dungeon's
   miscellaneous evokers inventory in one possibly very early shop.

 * Louise in Depths Abyss entrances has been replaced with double
   occultists, rather than moving her far too late than she should be.
   Should work on a quick batch of variety for that neglected set, maybe.

 * _crystal_crosses_colossus is now less symmetric (with one open "arm"),
   has an updated monster set for all the newer monsters since its
   conception, and is also a rare option to spawn on D:15.

 * wizlab_cigotuvi offers slightly less potions of mutation, no longer
   offers beast talismans, and makes the lower tier talismans randarts.

 * door_vault and its variation's opaque runed door outside is now
   transparent (and runed). This doesn't effect the actual inside
   disconnected doors, which are still opaque and not revealing the
   contents. Shouting isn't strong enough to reveal the insides, though any
   louder source will, but this was already somewhat lost after scrolls of
   revelation were added anyway. A lot of the newer playerbase has been
   trained to only care about the now very common clear runed doors, while
   there's only about two vault sets and one regular one using opaque runed
   doors at this current juncture (and the former two are now losing it).
   It's still plenty of a mystery and a joke, if not more so, to see a box
   of one big runed doors containing only regular doors at first glance.

 * Bog mummies have a placeholder tile of the old bog body tile by Bloax
   rather than mixing mummies with spells and mummies without them
   distinguished in tiles solely by a floating title / sidebar difference.

--------------------------------------------------------------------------------
618ab1f346 | Nicholas Feinberg | 2024-01-01 14:15:28 -0800

Restore ribbon worm regen (Lici)
Still too easy to cruelly pelt them with stones from max range elsewise.

--------------------------------------------------------------------------------
de110550cb | David Lawrence Ramsey | 2024-01-01 13:34:16 -0600

Fix spacing.

--------------------------------------------------------------------------------
487c6999dc | DracoOmega | 2024-01-01 14:10:31 -0330

Remove a left-over reference to Ghost Moths healing from draining gaze
(They stopped doing this against players a little while ago, but still
could heal from draining other monsters)

--------------------------------------------------------------------------------
eeface34f9 | DracoOmega | 2024-01-01 14:10:31 -0330

Very, very slightly boost the base HD of mana vipers

--------------------------------------------------------------------------------
7a8a475ec2 | DracoOmega | 2024-01-01 14:10:01 -0330

Have AF_ANTIMAGIC apply 50% more stacks to monsters with none
The antimagic formula is kind of lopsided, in that short durations of the
effect also have dramatically reduced effectiveness even for the brief
while it lasts. It's been suggested that the formula itself could use some
revisions, but I'm reluctant to touch something that upset the balance of
player antimagic weapons so close to freeze.

This commit is MOSTLY aimed at boosting Summon Mana Viper for players - it
doesn't affect the player behind hit by them, or antimagic weapons at all.
But ideally it makes it a bit easier for the viper to apply enough
antimagic to actually do something without also boosting its damage.

(Mana vipers themselves are slated for a possible rework in 0.32, but this
can act as a stopgap until then)

--------------------------------------------------------------------------------
0319aaedb4 | DracoOmega | 2024-01-01 13:57:35 -0330

Greatly increase Laughing Skull spawn rates in late-D and Crypt
For some reason, they were essentially the least common monsters in the
normal spawn list for both places (and vanishingly unlikely in D). If we're
going to add a shiny new monster, let's let people actually encounter them!

(Band placement means that the Crypt ones will be a lot nastier than D, if
anyone is curious from the numbers)

--------------------------------------------------------------------------------
1a631d31ac | DracoOmega | 2024-01-01 13:57:35 -0330

Update Passwall's description to include the new AC bonus
And also rewrite a little, since I think the old description implies to new
players that you get more movement control in the rock than you actually
do.

--------------------------------------------------------------------------------
5a0b83f448 | gammafunk | 2024-01-01 01:01:23 -0600

fix: Handle bad plus values in item specs
When making weapons or armour via an item spec, don't allow plus values
that would crash (over 30 on armour worn by monsters) or cause item
error messages (over 30 on weapons or armour). These plus checks should
be unified and include items for which plus does nothing, but I'm not
doing that now, since avoiding wizmode and monster crashes is the main
goal.

I've also made the monster armour assert checking the plus use <= 30 as
its condition instead of < 30, since the former is used by
debug_item_scan().

--------------------------------------------------------------------------------
569d6c7dce | David Lawrence Ramsey | 2023-12-31 20:09:23 -0600

Move Agony spell quote to Curse of Agony.
And make Agony use it too, since it's the monster version of the same
spell.

--------------------------------------------------------------------------------
0302df589c | David Lawrence Ramsey | 2023-12-31 19:01:18 -0600

Fix erroneous comment.
Inugami phantom mirror duplicates don't give a penalty if they die, but
they're not the same as inugami clones.

--------------------------------------------------------------------------------
69dc257577 | Nicholas Feinberg | 2023-12-31 14:37:02 -0800

DELETEME

--------------------------------------------------------------------------------
ad166cc88d | Nicholas Feinberg | 2023-12-31 14:33:39 -0800

Describe monster explosion damage (regret-index)

--------------------------------------------------------------------------------
f4f160f642 | DracoOmega | 2023-12-31 16:22:46 -0330

Fix a crash (hopefully)

--------------------------------------------------------------------------------
8c38f09004 | David Lawrence Ramsey | 2023-12-31 13:29:44 -0600

Give EEs Conjurations instead of Alchemy (#3444).
Since Passwall (now level 3) no longer uses the latter, and Stone Arrow
(level 3) uses the former.

--------------------------------------------------------------------------------
cc20369e73 | DracoOmega | 2023-12-31 15:53:52 -0330

Fix Vehumet not supporting Sticky Flame (Oneirical)
After I moved it out of conjurations, I forgot to give it the destructive
flag.

--------------------------------------------------------------------------------
e6ad0bb64a | Nikolai Lavsky | 2023-12-31 22:04:40 +0300

feat: darken non-present monster resists on webtiles
As a followup to 0c084823, this commit adds support for colour tags in
descriptions.

--------------------------------------------------------------------------------
cae8a03998 | DracoOmega | 2023-12-31 15:30:13 -0330

Adjust some monster tracer behavior to be friendlier to the player
Previously, while monster tracers factored in the resists of other
monsters when calculating friend/foe hit values, they would never do this
for players. This meant that allied monsters wouldn't realize that bolts of
draining/venom were harmless to undead players and refuse to ever fire them
through the player (although this is a behavior we constantly see them do
with other monsters). Since it should be entirely helpful to let allies do
this, allied monsters now consult harmless_to_player() when determining
whether to worry about hitting you.

Additionally, allied monsters with penetrating beams of any kind that are
NOT harmless to you, will stop their shot immediately before it would hit
you - passing through as many monsters as possible up to that point. This
sort of behavior was attempted in 72347fce6 and then reverted in
98e7288b7fd because it stopped all allied piercing beams at their first
target regardless of whether this mattered. This commit attempts to be a
little more specific and only stop them when it DOES matter.

(Short-circuiting beam tracing like this feels just slightly sketchy to me,
but in preliminary testing, it appears to work fine)

--------------------------------------------------------------------------------
330b8c2b23 | regret-index | 2023-12-31 03:44:38 -0330

Reduce charmed / bribed allies' reckless disregard for collateral damage
There's some old, odd code that reduces the foe_ratio value for monsters
casting spells- basically, how worthwhile it is to hit allies versus hit
foes, by evaluating them against each other with collective HDs and XLs-
if the caster has an only temporary attitude change. This was originally
meant as flavour and balance for both Summon Greater Demon (where
successful summons were hostile but temporarily charmed) and Control
Undead (which was never permanent)- if they already will become hostile
eventually, then they could hypothetically be fine with "accidentally"
hitting the player. Since we have neither of these any more, it is instead
a strangely opaque component of wands of charming and Gozag bribes that
those affected will ever-so-helpfully hit almost any number of players
and allies as collateral damage. This is unideal behaviour for being
completely unexpected as a downside to either, so this special-casing
has been cut.

TODO: There's some interest in further reducing the capacity for allies of
the player to hit the player- see 98ec557 and 98e7288. This would need a
significant undertaking to rewrite the current use of foe_ratio due to it
being set constantly elsewhere and also being used for hostiles versus the
player as well as allies alongside the player. Removing it entirely without
a lot more supporting code makes either monsters be willing to hit as many
others as possible if this also hits the player, or it'd be possible to
stand by a rat at all times to prevent any spells being cast. Either way,
it's still quite fundamental for how fire giants, de sorcerers / high
priests, and dr scorchers don't fireball themselves. Probably this could
all do with some preliminary work, but not so close to 0.31's release.

--------------------------------------------------------------------------------
7bd419a0e5 | Nicholas Feinberg | 2023-12-30 10:59:48 -0800

Don't lungepage recklessly (Hal)
If you rampage toward a monster and then kill it with lunge, don't
continue by moving into its tile. Even if we prevented moving into
deep water or lava, this could still result in the player moving
into traps, dangerous clouds, or exclusions, all of which seem like
potentially nasty surprises. Let's settle on a destination tile when
we start the move and then stick to it.

--------------------------------------------------------------------------------
0d58f7cc60 | Nicholas Feinberg | 2023-12-30 09:11:49 -0800

Fix weird name bugs (Cilian)
If you enter an invalid name ('/') then hit * to randomize your
name, clear the "that's a silly name!" text and state.

Don't allow hitting * to randomize name while being prompted about
overriding an existing save. Feels nonsensical and surprising - answer
the question first!

--------------------------------------------------------------------------------
fc755a3201 | David Lawrence Ramsey | 2023-12-30 09:20:39 -0600

Add extra zombie quote (yrdzrfxndfvh).
Closes #3403.

--------------------------------------------------------------------------------
274590c540 | David Lawrence Ramsey | 2023-12-30 09:20:33 -0600

Add dreamshard necklace quote (yrdzrfxndfvh).

--------------------------------------------------------------------------------
4574a07c27 | David Lawrence Ramsey | 2023-12-30 08:50:00 -0600

Fix a few quotes.
Tweak the bracketed part of one Order of the Stick quote, properly mark
one Calvin and Hobbes quote as spoken by Calvin, and make both the
Calvin and Hobbes quotes use the same style.

--------------------------------------------------------------------------------
b1e071b2f0 | David Lawrence Ramsey | 2023-12-30 08:50:00 -0600

Add Brain Bite spell quote.

--------------------------------------------------------------------------------
91cac6e7f7 | David Lawrence Ramsey | 2023-12-30 08:04:35 -0600

Update docs for humans' new +0 Exp mod.

--------------------------------------------------------------------------------
43313d8a59 | DracoOmega | 2023-12-29 23:47:04 -0330

More heavily nerf Blazeheart Golem
The golem seems to be pretty popular! It also seems to be too strong. Since
the exploding part of it is the most mechanically flashy, I've aimed most
of this nerf at its melee attack.

It loses AF_FIRE entirely. It gains a bit of base attack damage in
exchange, but this should still be a significant reduction in damage. Its
attack now also removes 1/3 of its hp on impact, instead of 1/4, meaning it
will fall apart more often and also need to be recast more often for the
same damage output. I've also reduced its AC a little (though I'm not
really sure much this matters in either direction)

Let's see how it feels after this.

--------------------------------------------------------------------------------
0899f109bd | DracoOmega | 2023-12-29 23:47:04 -0330

Mildly nerf Call Canine Familiar
Primarily by increasing its death timer from 6-11 turns to 13-21. Without
the draining involved, this was likely overly generous. If the player feels
'stranded' without it sometimes, they is probably an acceptable problem for
letting the dog die.

Also reduce its AC by 1, and its attack by ~1 at higher power.

--------------------------------------------------------------------------------
8d97d346d7 | DracoOmega | 2023-12-29 23:47:04 -0330

Reduce duration of Bolt of Devastation's Will/2 against players (acrobat)
It mirrored the duration of Strip Resistance, but being much easier to
apply, it could possibly stand to be shorter.

--------------------------------------------------------------------------------
af9025df8f | DracoOmega | 2023-12-29 23:47:04 -0330

Buff Staff of Earth melee damage
Staff of earth's gimmick was that its melee checked triple AC, but had
higher base numbers than other enhancer staves. In practice, this mostly
meant that in all practical situations, it was the weakest staff - and
often significantly worse than the other AC-checking staff, conjurations.
It used to require ~20 earth / 15 evo just to tie with a staff of conj
against AC 5 enemies, when the vast majority of lategame enemies had
significantly higher than that.

Conjurations was the 'generalist' staff - rarely the *best* staff against
an enemy, but always far from the worst. The enemies earth was best against
barely existed - or were too low threat to matter. Enemy AC tends to just
be too uniformly high in later parts of the game. So instead, let's
replace the 'resist' it checks with 'is the target flying'.

This draws on analogy with Shatter, while being much simpler: flying
targets take 1/3 damage, but its base damage is higher than conjurations
(though moderately reduced from its value before this commit). This means
it will be better than conj against all enemies which do not fly, and
substantially worse against any that do - much like staff of fire is much
better than conj against all enemies without rF and much worse against
those that have it.

--------------------------------------------------------------------------------
1724605f31 | DracoOmega | 2023-12-29 23:47:03 -0330

Buff Naga Ritualists
A generally underperforming monster, with a flashy spell that had extremely
low numbers.

Old ritualist OTR did 1d4 impact damage + 2d3 poison per turn to the
player, for a couple of turns. This is now raised to ~1d6 + 2d7 poison per
turn (and may last marginally longer).

Virulence also got a slightly higher power multiplier.

--------------------------------------------------------------------------------
d120b57d70 | DracoOmega | 2023-12-29 23:47:03 -0330

Buff/refactor Concentrate Venom / curare and beam poison application
Concentrate Venom had a bunch of strange wrinkles to it. It straight-up
replaced the poison application of poison spit and AF_POISON attacks with
curare code, which *itself* had a few odd wrinkles. Some examples:

-Monsters with any rPos were immune to curare, so enemies with concentrated
 venom were flatly nerfed against them (as they would normally have had a
 1-in-3 chance of applying poison)
-Monsters could sometimes inflict more poison with their attacks by
 default than curare could, so concentrate venom could make them apply LESS
 poison
-Curare had a 1 in 3 chance to apply to a player with rPois, but the poison
 from it applied through a codepath that checked that 1 in 3 again, even
 though the direct poison damage did not. Meaning 1 in 3 hits of curare
 wouldn't actually poison the player at all, even while otherwise affecting
 them.
-Concentrated poison spit wouldn't print a 'You resist.' message even when
 you DID resist all its effects (and when a non-concentrated version of the
 same attack would print a message)
-Curare had a 'levels' argument and additional code around this, despite
 the fact that in all cases, levels was 2. (This is a remnant from when you
 could needlestab - something removed in 2018)

Beyond all its weirdnesses, concentrate venom also didn't feel very
impactful. So this commit includes some buffs as well as cleanup.

A spell/attack affected by concentrate venom now applies the full poison
it would have originally dealt IN ADDITION to the curare effect. AF_POISON
attacks (which normally trigger 1 in 3 times) now trigger 1 in 2 times with
the buff active. And the buff itself has a longer duration.

Curare code is cleaned up a little, there's no longer the weird
double-reduced change of applying only the poison to an rPois player, and
I also changed the message for monsters being hit by curare to more closely
match the message against players (instead of '[monster] convulses' which
was oddly close to holy wrath.)

Additionally, I increased the amount of poison-over-time that BEAM_POISON
applies to the player. I don't expect this to have too dramatic an effect
(a player can always drink !curing if rolls are bad), and should have the
biggest effect in Snake, which could probably use a gentle buff.

--------------------------------------------------------------------------------
81a9d5bdf2 | Nicholas Feinberg | 2023-12-29 17:04:30 -0800

Turn off splinters' piercing
There's no obvious reason that they pierced (their description and
theme didn't read as obviously piercing in the way that a Bolt of Fire
does), and there's no mechanical need for them to, either.

(The piercing effect on metal splinters dates back to pre-Stone Soup!)

--------------------------------------------------------------------------------
1b70e30f2a | Nicholas Feinberg | 2023-12-29 15:52:39 -0800

Add a TODO

--------------------------------------------------------------------------------
0fffd28697 | Nicholas Feinberg | 2023-12-29 15:49:55 -0800

Fix the build..? (geekosaur)

--------------------------------------------------------------------------------
7df4bd0979 | Nicholas Feinberg | 2023-12-29 15:45:56 -0800

Fix: don't fuzz pals' tracers if invis (acrobat)
Just as the player can see their invisible allies, let your allies
know where you are, even when you're invisible.

Resolves #2892.

--------------------------------------------------------------------------------
28235c32bf | Nicholas Feinberg | 2023-12-29 15:31:29 -0800

Add Manifold Assault animation (Jeremy)

--------------------------------------------------------------------------------
961fd35ebc | Nicholas Feinberg | 2023-12-29 11:37:07 -0800

Enable WJC + rampage
Not really sure why this was disabled.

Reverts 3b7de120b3c.

--------------------------------------------------------------------------------
2966ba1ece | Nicholas Feinberg | 2023-12-29 11:18:17 -0800

Refactor kpath (gammafunk)
Try to make the logic clearer.

--------------------------------------------------------------------------------
88dc79e8f5 | Nicholas Feinberg | 2023-12-29 11:08:09 -0800

Remove who (geekosaur)

--------------------------------------------------------------------------------
bad02465ae | Nicholas Feinberg | 2023-12-29 11:00:39 -0800

Cut volcano_overflow
When one creates bold and innovative gimmicks, sometimes they work
out. This was not one of those times.

--------------------------------------------------------------------------------
47440f1d08 | Nicholas Feinberg | 2023-12-29 10:58:59 -0800

Make collision death messages less awkward
Arguably!

--------------------------------------------------------------------------------
395ea6166f | Nicholas Feinberg | 2023-12-29 10:53:38 -0800

Fix: know kows

--------------------------------------------------------------------------------
86c3eabce0 | Nicholas Feinberg | 2023-12-29 10:48:25 -0800

Double naga poison spit dice (regret-index)
Instead of doing nothing, sometimes do something.

--------------------------------------------------------------------------------
b9fef29221 | Nicholas Feinberg | 2023-12-29 10:48:25 -0800

Re-reduce ribbon worm XP
Match old worm XP. Meant to include this in the original ribbon worm
commit but forgot to amend.

--------------------------------------------------------------------------------
a2f466ef2e | DracoOmega | 2023-12-29 14:23:49 -0330

Fix new ghostly icon on Webtiles (Ge0ff)

--------------------------------------------------------------------------------
cbffd4cd76 | DracoOmega | 2023-12-29 13:59:05 -0330

Repurpose unused simulacrum status icon for lost soul revives
Due to a bug, this icon was never used for simulacrum anyway, so I have
recolored it to repurpose as an icon indicating things that have been
revived by a lost soul (and thus are now undead, cannot be revived again,
etc.) since it already looked so appropriate for that.

--------------------------------------------------------------------------------
bdf0704f8b | gammafunk | 2023-12-29 09:51:31 -0600

fix: Trove logic for checking skills (CarefulOdds, CipHuk, WizardIke)
The function trove.spell_skills had typos in skill names dating back to
2010, and these functions are use in veto checks for troves that give
specialized equipment. I haven't investigated how this code wasn't
giving these errors all this time, but this commit fixes the skill
names.

Additionally I've added the Ranged Weapons skill to the weapon skill
check, since the relevant weapon troves are happy to give out ranged
weapons. I've also reindented the lua and slightly refactored.
Fixes #3430. Closes #3434.

--------------------------------------------------------------------------------
a9fbd17ea5 | regret-index | 2023-12-29 06:09:02 -0330

Add Sastreii's new Depths tiles
A branch-specific version of stone for all of Depths, to which I added a
quick plainer variant to reduce a bit of noise when a lot of stone walls
are visible at once, as well as new ground floor tiles and dramatic
columns for statue-replacements, now employed in most of the ever-iconic
Depths encompass vaults. The floor tiles and columns hould be reasonable
for other vaults, old and updated or new, to specify or leave out as
their theme fits. It should be used sparingly for particularly dangerous
and large vaults, though.

Also, to try to help with branch appearance differentiation, don't use
these tiles or columns outside of the context of Depths itself. (Maybe
sometimes the Depths entrance in D would be fine?)

(This also came with a little bit of vault clean-up. Should do some
more for the sake of gems and vault header standardization eventually...)

--------------------------------------------------------------------------------
e0622b2318 | Nicholas Feinberg | 2023-12-28 23:05:04 -0800

Expel worms' innards
Worms have long been a troubled monster. As a slow melee monster,
they tended to do approximately nothing to any but the most arrogant
and foolish players. Careful players would simply kill them from
range with rocks or whatever else comes to mind. (See eg 8f025e602fb57e
for an attempt to partially address this.)

Retheme them to ribbon worms (real life creature) and make them ensnare
the player. Reduce their damage and remove their fast regen as
compensation. I'm very unsure whether this will do anything, but it
seems worth a shot.

--------------------------------------------------------------------------------
b37faac87e | Nicholas Feinberg | 2023-12-28 22:35:45 -0800

Maybe fix a crash

--------------------------------------------------------------------------------
3db28f3c96 | Nicholas Feinberg | 2023-12-28 22:11:24 -0800

Update the mailmap for dolorous

--------------------------------------------------------------------------------
79c7dd0eeb | David Lawrence Ramsey | 2023-12-28 23:38:59 -0600

Add more colours of Oni player base tiles.
Since oni also come in yellow, green, and black.

--------------------------------------------------------------------------------
358e972e7c | David Lawrence Ramsey | 2023-12-28 23:26:23 -0600

Allow polymorphing monsters into uglies.
All the other ghost demon types are unsuitable for polymorphing (unique,
undead, nonliving, flagged with M_NO_POLY_TO). Pan lords are technically
not unique, but they might as well be.

--------------------------------------------------------------------------------
63d5b5648c | David Lawrence Ramsey | 2023-12-28 23:26:00 -0600

Allow cloning of uglies and dancing weapons.
Ghost demon monsters can now be cloned. As for the others, named
monsters still aren't clonable, which rules out Pandemonium lords,
player ghosts, and player illusions; conjured monsters still aren't
clonable, which rules out spectral weapons; and inugami are
explicitly not clonable because you don't get the usual penalty if
the inugami clone dies.

--------------------------------------------------------------------------------
b6db4fbaf3 | gammafunk | 2023-12-28 23:05:38 -0600

fix: The ikiller field for aspiring flesh
These attribute their ikiller to the protean progenitor that spawned
them, but the ikiller field should have prefixes like "spawned from" etc
stripped so just the indirect monster name remains. This prefix didn't
match any existing pattern of the ones we already stripped from ikiller,
so I'm adding a new pattern stripping rule.

--------------------------------------------------------------------------------
96aa2eae3f | David Lawrence Ramsey | 2023-12-28 22:28:53 -0600

Consistently capitalise Human in species descs.
"Humanoid" is left unchanged.

--------------------------------------------------------------------------------
39c5316367 | David Lawrence Ramsey | 2023-12-28 22:28:21 -0600

Fix changelog typo.

--------------------------------------------------------------------------------
ec74395fc0 | David Lawrence Ramsey | 2023-12-28 22:28:21 -0600

Consistently spell the plural of simulacrum.

--------------------------------------------------------------------------------
e8925a3f95 | David Lawrence Ramsey | 2023-12-28 22:28:21 -0600

Fix typo in new Sculpt Simulacrum description.

--------------------------------------------------------------------------------
f9f310993c | David Lawrence Ramsey | 2023-12-28 22:15:49 -0600

Tweak description of At MP-regen (Implojin).

--------------------------------------------------------------------------------
95e4157dad | David Lawrence Ramsey | 2023-12-28 22:15:49 -0600

Mention Armataur rolling MP-regen in the manual.

--------------------------------------------------------------------------------
be66496138 | DracoOmega | 2023-12-28 23:14:49 -0330

Unbrace
Will I ever remember to do this before I push things?

I'm guessing: no

--------------------------------------------------------------------------------
6cad3da956 | DracoOmega | 2023-12-28 23:11:19 -0330

Actually tag Sculpt Simulacrum as unholy (Darby)

--------------------------------------------------------------------------------
d0b3b2ae9f | DracoOmega | 2023-12-28 23:11:19 -0330

Fix blazeheart golem being ironically unable to follow slow players (Darby)
Due to some timing weirdness, blazeheart golems could keep up with normal
speed players, but were entirely unable to do so for slow ones. (This is
essentially because moving sufficiently slow would cause multiple turns to
pass by the time the golem got another action, at which point it would go
"Oh! The player isn't adjacent to me and hasn't been for several turns! I
should turn off."

This check is now from the golem's time perspective instead, and is
approximately "If the player was next to me at either the start or end of
my turn, I remain active." and it only turns off after both checks are
consecutively false.

(This probably also plays slightly nicer with its slow attack?)

--------------------------------------------------------------------------------
8901a676bb | DracoOmega | 2023-12-28 23:11:19 -0330

Timeout binding sigils that leave the player's sight
This isn't intended so much as a nerf as it is to prevent a
complained-about situation of an unseen monster stumbling onto a sigil you
left behind and then showing up for the first time with swiftness on it.

--------------------------------------------------------------------------------
2dea6e066b | DracoOmega | 2023-12-28 23:11:19 -0330

Don't crash on placing boulders outside of casting Brom's
There's been some desire expressed to use stationary ones as decorative
features in vaults. And at any rate, it probably shouldn't crash the game
if you place one in wizmode by accident.

--------------------------------------------------------------------------------
867c55e3b0 | DracoOmega | 2023-12-28 23:11:19 -0330

Don't drunken brawl if your weapon would place you under penance (Darby)

--------------------------------------------------------------------------------
9c3b9a8043 | regret-index | 2023-12-28 22:13:16 -0330

Seriously update docs/develop/spells.txt
This is an immensely old document, referring to many removed schools and
removed spells, mostly unchanged from seven years ago in f9017aa. Maybe
it's mostly unused, but it's still sitting around in the source.

I'm giving it a pretty quick first draft update. Almost anything is better
than still referring to Charms or demon-summoning or the time when like
66% of Earth spells were Transmutations. At some point, maybe one of the
devs who originally worked on positional magic can update this further with
more precise philosophy, but it's at least a document actually attached to
Crawl compared to version-specific Github pages.

--------------------------------------------------------------------------------
324eae3c28 | Nicholas Feinberg | 2023-12-28 16:14:20 -0800

Tighten various gem timers
The intent is that gems should be reachable by average players, but
shouldn't be routinely encountered during 'normal' (full clear, non
rushing...) play. Let's poke at some gems that have seemed a bit too
easy to pick up thus far.

--------------------------------------------------------------------------------
74ab47f370 | Nicholas Feinberg | 2023-12-28 16:09:53 -0800

Cut accursed CMD_TOGGLE_TRAVEL_SPEED
Mindless busywork. Begone!

--------------------------------------------------------------------------------
cda7ceedc9 | Nicholas Feinberg | 2023-12-28 16:09:52 -0800

Match ally speed outside combat (elliptic)
As a UI convenience, make allies speed up to match the player's
move speed if there are no enemies nearby. This is a common minor
pain point for players (needing to hit ctrl-t to match travel speed),
and there's no reason players should need to worry about it.

This should hopefully be mostly transparent and unnoticeable for
players.

--------------------------------------------------------------------------------
8a4046af8c | DracoOmega | 2023-12-28 18:14:28 -0330

Don't place players under penance for blazeheart golem's explosions (Darby)
Similar logic to how guardian golem used to work - you still get xp for the
explosions, but your god will not be bothered if an ally was careless
enough to stay in the blast zone.

--------------------------------------------------------------------------------
d7e1f54061 | DracoOmega | 2023-12-28 18:14:28 -0330

Make Sculpt Simulacrum less buggy when trying to sculpt krakens (Darby)
Since kraken can only occupy tiles that blocks of ice cannot, it would look
like you were making a simulacrum like normal, and then it would disappear
in a puff of smoke when it came time to 'hatch'.

Now instead, if the simulacrum that is being created cannot occupy the ice
block's tile, it tries to pick a random nearby one instead.

Kraken simulacra are far too much fun to simply forbid people make!

--------------------------------------------------------------------------------
0872b9eb7f | DracoOmega | 2023-12-28 18:14:28 -0330

Don't turn friendly blocks of ice hostile when hit (CarefulOdds)
The simulacrum that came out of it would still be friendly, but a block of
ice should not appear especially troubled by anything you do it.

--------------------------------------------------------------------------------
48da474f17 | DracoOmega | 2023-12-28 18:14:28 -0330

Don't let Sculpt Simulacrum produce simulacra of tentacles (Darby)
More confusingly, the kraken tentacle simulacra would also be using the
kraken simulacrum tile instead of their own??

--------------------------------------------------------------------------------
d74043ad92 | DracoOmega | 2023-12-28 18:14:28 -0330

Don't create a flayed ghost when killing your own martyr (Darby)
Hitting them would normally cause them to instantly disappear, like most
summons, but if you did enough damage to kill them in a single attack,
you'd still get a flayed ghost out of the deal.

--------------------------------------------------------------------------------
e2d6d42b48 | Implojin | 2023-12-28 15:24:21 -0600

fix: Remove At long tongue from the manual

--------------------------------------------------------------------------------
6dbd80e900 | Implojin | 2023-12-28 15:03:59 -0600

fix: rcfile autopickup option gem compat (Ge0ff)
Previously, setting the `autopickup` rcfile option always resulted in gem
autopickup being disabled, no matter what setting was used.

The code in `read_custom_option` initially disables autopickup for all item
types as it runs, and then re-enables pickup for each item type through
`item_class_by_sym`. That function previously had no glyph mapped for
OBJ_GEMS, so any time it tried to parse the autopickup option, gem autopick
would be disabled.

This commit fixes that by mapping unicode U'\x2666' (♦) to OBJ_GEMS here,
to match the existing glyph for gems in viewchar.cc, which should allow e.g.
`autopickup += ♦` to work as desired.

--------------------------------------------------------------------------------
d420192249 | DracoOmega | 2023-12-28 03:29:04 -0330

Move LRD back below Stone Arrow for Servitors (acrobat)
I have been sufficiently convinced that this might encourage certain
characters to avoid learning LRD at all, which was not my intent.

--------------------------------------------------------------------------------
9e9b236d67 | DracoOmega | 2023-12-28 03:28:24 -0330

Various updates to the manual
Concerning the Alchemy merge and Oni.

--------------------------------------------------------------------------------
53b6572822 | DracoOmega | 2023-12-28 01:58:21 -0330

Unbrace

--------------------------------------------------------------------------------
13c63e15e9 | DracoOmega | 2023-12-28 01:41:40 -0330

Make Spellforged Servitor a little less gameable, nerf mildly
The fact that Spellforge Servitor could inherit a player spell that had a
whopping ~50% fail rate meant that it was often correct to learn a spell
that you could never viably cast. And since servitor spellpower is based on
the power of the summon, rather than the spell it's casting, this barely
mattered. Plasma Beam was the most common offender, since it doesn't even
share a single school with Servitor.

Now the player needs at least a 20% success rate in a spell for servitor to
cast it. That's still a pretty high fail to use on a conjuration, but not
outside the realm of someone trying it.

This also nudges servitor's HD in player hands down just slightly. It
should still be a very strong spell.

(Also, I moved LRD above Stone Arrow in the spell priority list, since I
think that normally the player would prefer it cast that AND it's higher
level so it's probably not unintuitive that it might?)

--------------------------------------------------------------------------------
ca6d514eab | DracoOmega | 2023-12-28 01:41:40 -0330

Fix several Battlesphere targeting bugs, refactor, tweak slightly
Battlesphere triggering was originally split into two functions:
aim_battlesphere(), called immediately before the trigger spell fires, and
trigger_battlesphere(), called immediately afterward. This was so that it
could save the position of the player's firing target, in case that target
died to the triggering spell. Since the changes several years ago to make
battlesphere fire at a RANDOM target instead, this split was needless code
complexity - we can simply pick a target AFTER the spell fires.

In fact, doing so fixes a bug that could frequently cause the battlesphere
to appear not to trigger for no obvious reason: if the random target it
picked before the player spellcast was itself killed by the player
spellcast. This was actually very common with AoE spells or against only
two visible targets (a 50% chance to skip its turn whenever you kill one!)

Battlesphere would also silently fail if the random target it picked was in
line of sight of the player, but NOT the battlesphere itself - another
situation relatively common when corners were combined with the
battlesphere's idle movement. Now it considers only the player's los when
picking a random target.

Finally, after a target was picked, if there was no safe line of fire to
it from the battlesphere's current position, it would attempt to find
another nearby spot and shoot from there. But the search radius was smaller
than how much ground it could cover in a turn, so it would sometimes
silently fail while appearing to have a valid firing angle. It is still
possible to fail in this situation, if the battlesphere ends up more than a
full turn away from ANY viable firing position (often because the player is
body-blocking most of them), but it still meaningfully improved.

Additionally, I have tweaked the target select to prefer shooting at the
same target the battlesphere shot at last turn - so that it essentially
'locks on' to a given enemy - even if the player has no control over which.
It felt far too common for the battlesphere to spread its shots around
uselessly, doing insignificant damage to multiple targets - now it should
be a little more dogged about taking SOMETHING down.

--------------------------------------------------------------------------------
f45dec508d | regret-index | 2023-12-28 01:39:23 -0330

Adjust a few newer enemies stats and placement
 * Laughing skulls go from animal to human intelligence to match the other
   emotional and non-emotional skulls, get a second pip of fire resistance
   to emphasize them more as fiery and for potential future other uses, and
   place a little earlier in D (absdepth 16-24 -> D:14 to absdepth 22).
   They seem to be working fine, if not particularly intimidatingly, so
   their earlier placement should be fine also. Late D is a weird spot
   currently that could always do with a little more tangible variety.
   (D freezing wraith chance was reduced a little in exchange.)

 * Arcanists place another floor up. While they've been in flux for a
   while, with quite a few different spell schools, they're also more than
   fine enough earlier considering the earlier vaults haven't shown to be
   too much of a problem at any point. (D hydra chance was reduced a little
   bit in exchange).

--------------------------------------------------------------------------------
9677d6cc8b | regret-index | 2023-12-28 01:27:31 -0330

Gloorx's level: (crawlers ->) weavers -> flayed / skulls (Ge0ff)
While I'd still like to find another home for the very sparsely used
entropy weavers, and they're a lot less harmless than demonic crawlers
were, I'll admit the former are pretty tangential to Gloorx Vloq's current
mix of skeletons, ghosts, miasma, poison, and torment. I'm swapping them
out for a mix of the first two, barring more obvious options (and while
there's only one summoning demon besides ynoxinuls). Flayed ghosts and
laughing skulls both aren't too prominent in the immediately-comparable
Tomb or Tartarus, the former has more percentage-based damage, and the
latter has unique mechanics we can play more around with.

--------------------------------------------------------------------------------
3d8c94b372 | regret-index | 2023-12-28 01:01:09 -0330

Reflavour vitrify pie (gammafunk)
Clear pies are too far away from parseable types of pie. While this one is
a little niche still, it should work on both allergies and synonym grounds.

--------------------------------------------------------------------------------
61f1b55d25 | regret-index | 2023-12-28 00:46:02 -0330

Sort Throw Ally into the right alphabetical spots
It used to be Goblin Toss when Robin was added, and never got moved to
the right spot in the file when it was broadened for Polyphemus and iron
giants.

--------------------------------------------------------------------------------
18695baee4 | regret-index | 2023-12-28 00:46:02 -0330

Buff vault lightning spires
Lightning spires are one of the very few spell-sourced monsters that work
reasonably fine outside of that spell's context- a very straightforward
lightning statue.  This is somewhat marred by the fact the earliest one
encounters them is Swamp or Elf, followed by them appearing in Vaults,
Wizlabs, Abyss, and Zot, yet their default HD is... 3. 21 HP and a 3d6
non-loud lightning bolt. A pretty sad threat level (a more resistant
electric eel with a little better defenses?) for that usage.

I'm buffing these vault spawn lightning spires by making their base HD 10,
the equivalent of a max power Summon Lightning Spire cast- this gives them
3d13 bolts and an average of 70 HP. (Their base hp has been adjusted so
this shouldn't affect the spell itself.) This should give them have a lot
more of a point, wherever they place.

--------------------------------------------------------------------------------
54790a2f53 | Nicholas Feinberg | 2023-12-27 18:13:43 -0800

Remove ENCH_PURSUIT
Obsoleted after e438bbe35ce7f90b92d4 (August 2023).

--------------------------------------------------------------------------------
2f8d4710b4 | Nicholas Feinberg | 2023-12-27 14:53:45 -0800

Simplify tutorial equip advice
To reduce the number of keys new players need to learn, suggest
using (e)quip and une(c)quip, rather than (w)ield, (W)ear, (P)ut on,
etc.

--------------------------------------------------------------------------------
98d077343f | Nicholas Feinberg | 2023-12-27 14:28:24 -0800

Fix missing mpreg description
For armataur upgraded rollpage.

--------------------------------------------------------------------------------
de279c822b | Nicholas Feinberg | 2023-12-27 12:55:30 -0800

Fix Mad Mage Mauler align (Ge0ff)

--------------------------------------------------------------------------------
382a9587f0 | Nicholas Feinberg | 2023-12-27 12:45:42 -0800

Fix unused var

--------------------------------------------------------------------------------
60647507ee | Nicholas Feinberg | 2023-12-27 11:27:47 -0800

Copy pass on new spell descriptions
Try to compact down longer descriptions and focus on info that
players need.

Sorry, Sculpt Simulacrula. We need a flavor text area for spells so we
can put all the fun stuff about assaying biology and alchemists arguing...

--------------------------------------------------------------------------------
34aac30a23 | Nicholas Feinberg | 2023-12-27 11:13:15 -0800

Localize a constant

--------------------------------------------------------------------------------
9d21c19d62 | David Lawrence Ramsey | 2023-12-27 10:24:56 -0800

Fix spell description typos.

--------------------------------------------------------------------------------
4c6a1022df | Nicholas Feinberg | 2023-12-27 08:47:55 -0800

Slightly buff siphon essence
Now that it doesn't affect rTorm monsters, it can be a bit stronger
to increase its attractiveness in 3-rune games. Bump healing by 1/3rd.

Could also decrease the MP cost, but I feel like the current 20MP
cost is very cool and splashy... holding off on that for now.

--------------------------------------------------------------------------------
e7282f2625 | Nicholas Feinberg | 2023-12-27 08:36:19 -0800

Fix: ShSh manuals under Zin, cont'd
See comment. This code is bad!

--------------------------------------------------------------------------------
86286aae65 | Nicholas Feinberg | 2023-12-27 08:25:24 -0800

Fix: fewer ShSh man acqs under Z (Lici)
Treat shapeshifting skill as useless for Zin for acquirement
purposes.

Probably transmutations should always have been marked in this way.

--------------------------------------------------------------------------------
4a97266263 | Nicholas Feinberg | 2023-12-26 23:31:48 -0800

Refactor chain petrify

--------------------------------------------------------------------------------
87ca8d402b | DracoOmega | 2023-12-26 23:50:16 -0330

Don't give player ghosts/illusions Animate Dead (regret-index)
They can't cast it anyway.

--------------------------------------------------------------------------------
59d654bfca | DracoOmega | 2023-12-26 23:37:44 -0330

Fix !cancellation contamination (The Unspeakable) (#3424)
Missing parenthesis meant potion of cancellation was accidentally giving

you contamination most of the time.
--------------------------------------------------------------------------------
5f6a03739c | RypoFalem | 2023-12-26 20:39:36 -0600

Fix !cancellation contamination (The Unspeakable)
Missing parenthesis meant potion of cancellation was accidentally giving
you contamination most of the time.

--------------------------------------------------------------------------------
3ad46bb88a | DracoOmega | 2023-12-26 21:10:26 -0330

Fix missing spell description
Oops >.>

--------------------------------------------------------------------------------
d63ae51a8c | DracoOmega | 2023-12-26 20:24:08 -0330

Silence warnings about removed attack types

--------------------------------------------------------------------------------
8388f8c9e3 | DracoOmega | 2023-12-26 20:23:55 -0330

Teach monster about Pyre Arrow damage

--------------------------------------------------------------------------------
8e5c54c242 | DracoOmega | 2023-12-26 20:09:50 -0330

Fix several MORE custom books

--------------------------------------------------------------------------------
ac69e1350c | DracoOmega | 2023-12-26 19:53:37 -0330

Fix a missed Guardian Golem reference from custom randbooks

--------------------------------------------------------------------------------
542172135e | Nicholas Feinberg | 2023-12-26 14:34:59 -0800

Show Curse of Agony in webtiles

--------------------------------------------------------------------------------
5259d7e80d | DracoOmega | 2023-12-26 18:50:02 -0330

Buff Petrify a little
Reduce range slightly, but make it chain to up to 2 adjacent/connected
hostile targets at 2/3 enchantment power.

Player Petrify has been in an awkward state for a little while. It was the
capstone spell of the Earth Elementalist starting book for quite a while,
but was common for EEs to never make use it. Unreliably locking an enemy
down this way has questionable utility for a blaster playstyle with the
damage reduction involved. And while it can do decent work specifically as
a stabber setup spell, it's unclear that it performs *enough* better from
classic Enchanter spells to justify it being much harder to access due to
non-overlapping schools. Back when EE started with LRD, there was obvious
direct synergy (with being able to use AC-piercing LRD on a key target or
blow up groups in absence of walls), but that ship sailed a while ago now.

The hope here is that this will make the spell more interesting/usable as
disruption tool for non-stabbers as well, without making it significantly
better for stabbing individual key threats.

(While I'd only intended to modify the player spell (with a slight
renaming) and leave monster petrification unchanged, PleasingFungus has
argued that it's simpler if they both work the same way and that the
relatively minimal buff to the enemy spell is harmless. It's... probably
fine? Though I am sure some people will be caught off-guard by getting
petrified despite standing behind an ally...)

--------------------------------------------------------------------------------
62420d5c14 | DracoOmega | 2023-12-26 18:50:02 -0330

Standardize Passwall range at 3, move to level 3, give AC while using
The variable power-based range on Passwall was awkward in a few ways,
and this should make it a little less complex and more intuitive.

Also grant the player an AC bonus while transiting with the spell, to
make it feel a little safer and more tempting to use as an early-game
escape, when the margins of life and death are thinner.

--------------------------------------------------------------------------------
e664984be9 | DracoOmega | 2023-12-26 18:50:01 -0330

Move Summon Ice Beast to level 3
This spell was hurt greatly by changing its cap from 3 to 1. Ice
Elementalist still gets occasional use out of it since sometimes any body
is better than no body, but it's regularly skipped over even in its starter
book and just doesn't compete very well against multiple other summons of
its level range. Perhaps at 3 it will be more appealing again.

--------------------------------------------------------------------------------
94f3faafae | DracoOmega | 2023-12-26 18:50:01 -0330

Fugue tweaks
Prevent capstone pain damage from hitting firewood.

Make the 2d5 capstone pain damage scale with spellpower, starting lower at
2d3 (up to 2d7 at 100 power), partially to compensate for how much easier
it is to trigger the capstone at low skill via Kiku wretches. Perhaps this
complication is unnecessary? (Or perhaps it would make more sense to
trigger pain on only some subset of hits and make it hurt more when it
does, for less message spam?)

Add the ambient noise-making message from Fugue to default runrest ignore,
so that it isn't so obnoxious to try and rest after a fight due to all the
wailing.

--------------------------------------------------------------------------------
3fdea2571f | DracoOmega | 2023-12-26 18:50:01 -0330

Let Fugue of the Fallen work with Kiku wretches, tweak Kiku gifts
After some discussion, it seemed there was wide agreement that it was fine
if the deaths of wretches gave stacks for Fugue. Importantly, this lets
there be a second spell that benefits from wretches between levels 2-5, so
Kiku can guarantee something less sad than Necrotise. Reliably turning
wretches into slaying is powerful, but the piety cost of calling wretches
multiple times to do so should still be meaningful.

Kiku now will always give one of Animate Death or Fugue of the Fallen in
their first gift. Martyr's Knell is added to the second gift list,
replacing Sculpt Simulacrum (since it is no longer necromancy).

This has the potentially interesting consequence that there is a 50/50
chance of your early necromancy gifts pushing you in an ally vs. melee
direction - and in fact, that Kiku can gift a spell several starts might
want that *isn't* in the Necromancer starter kit.

--------------------------------------------------------------------------------
04e91338fe | DracoOmega | 2023-12-26 18:50:01 -0330

Agony -> Curse of Agony (for players)
Agony has been widely considered an unimpressive spell in player hands for
quite a while. In earlier parts of the game, its damage often compares
unimpressively to Vampiric Draining against many enemies - somewhat sad
when these are both starter spells and Agony is 2 levels higher. It can
find a niche later in the game against some enemies, but ideally the
capstone of any player background is something you are excited to get
online. Ranged Agony was considered problematic in past, so let's try a
different approach.

Curse of Agony is a range 3 hex that inflicts a brief curse on the affected
enemy. The next two times that enemy is struck in melee by the caster, they
will lose half their current health - AFTER the damage from the melee
attack applies (so somewhat less than 50%, in practice). The small bit of
range lets the player try to overcome an enemy's Will *before* they're in
range of Vampiric Draining or melee, but still requires them to engage
directly instead of using zombies to trigger the agony effect.

Its power multiplier is cut in half compared to Agony, which should make it
somewhat less useful as the game goes on, but ideally more useful in
earlier parts of the game than Agony itself was.

This is also a chance to make some monster spells less confusing. Old
'Agony Range' is now just Agony again, while Fenstrider Witches get
Agonizing Touch. There is no functional change, but I think it should be
a little more obvious to new players that Fenstriders can only do this in
melee range - especially now there there is no player analogue to this.

Curse of Agony is replaced with Agony on player ghosts / illusions, so they
have something to cast in that slot.

--------------------------------------------------------------------------------
ac907ffc89 | DracoOmega | 2023-12-26 18:50:00 -0330

Simulacrum -> Sculpt Simulacrum (6 Ice/Alchemy)
Current simulacrum is by no means a bad spell in isolation, but it has
the misfortune of being packed in among multiple other necromancy ally
creation options that are either easier to cast, more powerful, or
arguably both. But simulacra are cool, so let's try opening things up by
moving it out of the necromancy school entirely, where it may face less
competition in its role.

To differentiate it further from corpse-based necromantic means of
generating allies, the spell is redesigned. It is now a range 1 touch
spell that creates 2-3 blocks of ice nearby, which will transform into
simulcra of the touched target after 3-5 turns (plus an extra 1-3 turns
for each subsequent block of ce). This can be cast repeatedly on the
same enemy, with no limit on the number of ice blocks which can exist at
once, but there is a cap of 5 active simulacra and a new one awakening
will expire your oldest. These simulacra are also shorter-lived than the
previous version of this spell.

This creates a dynamic where you often want to deliberately get in
threat range of more dangerous enemies, but still have to wait for a
payoff, which should hopefully feel a little different from other ally
spells. It is worth noting that the player also cannot swap through ice
blocks, so this can create dynamic terrain problems - and creating many
in a row may fence you in with whatever monster you considered dangerous
enough to want to copy.

It is worth noting that there are a lot of balance knobs to tweak here -
durability of ice blocks, number created at once, delay before summoning
things out of them, etc. The original concept of the spell even
inflicted freezing damage with the initial touch (and generated fewer
simulacra overall), but it was suggested that it might be better to
focus on just one aspect here. So let's try it out!

(Also, since there was poor visual clarity between blocks of ice and
simulacra in tiles, I tried to differentiate the block of ice tile's color
from simulacra as much as I could while still looking like ice, as well as
limit it to only a single shape, for a consistent silhouette. I think this
helps at least a tiny bit?)

--------------------------------------------------------------------------------
8101ae7cb4 | DracoOmega | 2023-12-26 18:50:00 -0330

Add Martyr's Knell (level 4 Summon/Necromancy)
The *other* half of Guardian Golem.

Shielding allies via injury bond is a decent concept, but ironically, pure
summoner builds have less use for this than necromancers. Summons are more
easily replaceable, often fewer in number, and if we look at the starter
book in particular, there are few targets worth protecting - spammals and
imp are too low level to matter, inugami already offers a mechanism to
protect it, and lightning spire is often out of enemy range. Zombie armies
on the other hand....

Martyr's Knell summons a Martyed Shade, which is a fast-regenerating, but
non-attacking ghost that offers passive injury bond, just like guardian
golem used to. But if it dies before expiring, the pain of re-experiencing
its own death will transform it into a flayed ghost (and instantly flay a
couple random hostile targets). A flayed ghost can be powerful, but since
its damage is so transient (and it is not especially durable), either
positionally defending it or quickly killing its targets is important if
you want it to matter.

The hope is there are a number of ways to use this spell. It can defend an
undead horde and engage more safely from behind it by dying quickly, or it
can be used with limited other summons (or even on its own, with deliberate
positioning) as an offensive tool that requires the player to ensure it
doesn't die early.

Spellpower affects both shade and flayed ghost hp. The latter helps make
the flaying stick around a little better. The former may not be *strictly*
upside, but it seems reasonable to make it just a little harder to get your
more powerful ghosts (and it makes it better at tanking, of course).

There is also a working enemy implementation of this spell, and I think
there is definite design room for an enemy unique using it. (And, of
course, there's always Mara).

--------------------------------------------------------------------------------
7aaa3406e0 | DracoOmega | 2023-12-26 18:50:00 -0330

Guardian Golem -> Blazeheart Golem (lv 4 Summon/Fire)
Guardian Golem has had an identity crisis for a while. Nominally about
protecting your other summons, its most effective usage was actually as a
bomb - with injury bond more commonly serving as a means to help it blow up
reliably than to actually protect anything. It also did wildly high damage
for a level 3 spell - a whopping 3d20 at 0 power, plus additional flame
clouds.

But the thing is - the bomb playstyle was actually kind of fun! There were
positional considerations with getting the bomb to blow up on a timely
basis and not also engulfing yourself in it and it felt like it had obvious
use-cases that weren't shared with other spells. Having summoning spells
that feel distinct and have distinct uses is good, and so I aim to retain
that here, while splitting out the ally-shielding part of the spell and
(hopefully) making its damage more reasonable for its level.

Summon Blazeheart Golem is a level 4 Summoning/Fire spell. The new golem
has a melee attack (and a pretty good one, at that!) but a unique property
where the flame inside it can only be sustained if the summoner stays close
to it. Outside of a small grace period to make it more fluid to use when
the both of you are moving, the golem will go completely dormant so long
as the summoner is non-adjacent to it.

The golem's attack is slow, has AF_FIRE, but also damages the golem for
25% of its max hp whenever it lands a blow. When the golem dies, so long as
it is not dormant, it leaves its volatile core behind. This core will
explode in a 3x3 fire explosion (with clouds) after the next player action.
The timing is handled so that the player should ALWAYS get a chance for
exactly one action between seeing the core appear and it exploding, no
matter how fast or slow you are. A dormant golem causes no explosion at
all.

The idea here is that you can still use this golem as a tool to cause loud
fiery explosions, involving unique positional play. The summoner has to be
willing to step into the fray with the golem, and then plan to get out
again. You cannot throw it at problems from a safe distance (but also are
not randomly punished for engaging with it). In fact, the idea is that it
should be competitive with Lightning Spire in the starter book, but for
different situations/playstyles - Blazeheart Golem wants you to be in the
fray with it, while Lighting Spire supports a more evasive/mobile approach.

All damage numbers are still provisional and will be tweaked based on
feedback, but for reference the explosion currently does between
3d11 - 3d20 based on spellpower (compared to old golem's fixed 3d20).

--------------------------------------------------------------------------------
8735cdfb9f | DracoOmega | 2023-12-26 18:49:59 -0330

Fix some monster death effects not happening if they die with Inner Flame
Most notably Protean Progenitors would not spawn Aspiring Flesh if they
exploded on death (even though, message-wise, they're *always* exploding on
death), but apparently Spriggan Druids would also not use their death buff
and a few other things may have not been cleaned up properly if they died
this way.

--------------------------------------------------------------------------------
645d2ae13f | regret-index | 2023-12-26 18:21:36 -0330

Spruce up each rune-guarding Pan lords' realm
The bulk of particular enemy decisions for most of the four fixed Pan lords
enemies were made ages ago, before we had nearly so many varied monsters
for almost any branch in general. Since there's been such a massive influx
of new monsters to work with compared to so far back in the past, it'd be
reasonable to further add to the gimmickry the lords themselves already
brandish, rather than focus on plain + common + weak flavour choices for
Pan vaults like occultists, large abominations, or weaker skeletons.

 * Mnoleg's level uses very few very ugly things, abominations, or
   tentacled monstrosities for a lot more protean progenitors and shadow
   demons- the former for more interesting shapechanging, the latter to
   fit the summoning (and since Tartarus lost them). There's far too many
   of the former melee-only types before extended, and Mnoleg lacks much
   for noticeable spawns beyond eyes and cacodemons- these two will both
   help. (Note: Don't use proteans beyond Zot, Zigs, and Mnoleg's floor.
   Zot non-draconians get very limited to no non-Zig drift or bleed to
   keep them distinct and dramatic.)

 * Gloorx Vloq's level loses lorocyproca and demonic crawlers for reapers
   and entropy weavers, while upgrading the skeletons hard. While this
   loses a bit of spectral flavour and demon presence, demonic crawlers
   have no real threat in Pan and there's some interest in removing
   lorocyprocas for more interesting tier-2 designs in the future.
   Meanwhile, entropy weavers still can corrode even extended characters,
   and reapers have a new effect plus aren't much prominent in Tartarus
   anymore. (This is a bit of placeholder future-proofing: if a new
   summoning tier-2 does end up existing, then shadow demons could fit
   here better over some other spawns, like shadow wraith and soul eater
   explicit placements, and those demons can replace Mnoleg's shadow
   demons.)

 * Lom Lobon's level loses arcanists and occultists, as they're pretty
   mundane mortal scholars of magic for extended. Instead, to represent
   more interesting mystics across the Dungeon, there's now small amounts
   of one conjurer from each of the Lair roulette branches- nagaraja,
   merfolk aquamancers, fenstrider witches, and jorogumo. They readily
   match up with the green deaths or blizzard demons already present, and
   while mostly not too extra dangerous at Pan depth they're more
   interesting to see than the prior options.

 * Cerebov, the most infamous and intimidating lord of Pandemonium, loses
   orange demons and crimson imps for pretty rainbow fluttering insects.
   They're definitely not the newly revised, rarely used elsewhere,
   very fire-focused sun moths.

 * Each of the unrand lords vaults places an increasing clump of demonspawn
   related to the lord in question for each rune you have on you when
   entering. Mnoleg gets corrupters (summoning), Gloorx Vloq gets black
   suns (necromancy), Lom Lobon gets blood saints (conjurations), and
   Cerebov gets warmongers (big equipment). There's not any extra in the
   given levels beyond those initial counts, though, so they shouldn't
   make the levels blend together too hard with the rest of Pan.

 * Also, the non-holy guaranteed demonic rune vaults and Mnoleg's realm
   both contain some potions of mutation now, to compensate for when the
   old potion of cure / beneficial mutation shuffling removed the (very
   delayed, unreliable, heavily guarded) potions of cure mutation in the
   holy pan level. Those holies should be revised to be less boring, at
   some point, but for now, it should make those vaults feel more
   worthwhile.

This also updates arenasprint and the chasing-across-Pan / orb run spawns
of the lords for those four new sets, a few new tile choices to reduce the
use of generic D floor and wall tiles, deals with teleport islands in Lom's
realm, and tweaks a varied number of vaults to even out some higher and
lower vault lethality ends. Maybe eventually Pan will be varied enough to
be made yet shorter and extended could be made shorter in general?...

--------------------------------------------------------------------------------
8468ca10c8 | Kate | 2023-12-26 21:47:53 +0000

Australianise some spelling

--------------------------------------------------------------------------------
7f6f75e24c | Nicholas Feinberg | 2023-12-26 10:58:29 -0800

Don't associate hand cannons with alchemy
Players were confused and thought they had something to do with the
new spell school.

--------------------------------------------------------------------------------
903e00c026 | Nicholas Feinberg | 2023-12-25 23:24:19 -0800

Revert "Fix default shop ordering" (gammafunk)
Just broke more things.

This reverts commit d22453358fbc46b1444d6a61a651476891020241.

--------------------------------------------------------------------------------
2add1c7226 | regret-index | 2023-12-25 22:14:43 -0330

unbrace

--------------------------------------------------------------------------------
7819447e5a | regret-index | 2023-12-25 22:09:50 -0330

Once more, buff Mnoleg
Mnoleg's still doing somewhat poorly compared to the other pan lords, and
it's a nostalgic past-time at this point to regularly tweak and buff them.
Unlike many other times, this won't involve too many big or complicated
identity and spell changes, but instead some number tweaks.

 * Since Lom gets to cast their spells obscenely often, it should be fair
   for Mnoleg to get the same. They now cast Malign Gateway, Summon
   Horrible Things, and Summon Eyeballs all about x1.5 as often as before,
   so they're more consistent about tossing out everything before they die.

 * Their AF_MUTATE attack brand has been removed, and the titled in-game
   Demon Lord of Chaos just actually hits the player with AF_CHAOS. There's
   still cacodemons plenty across the floor as is, the eyes already show a
   focus on a rain of debuffs, and the tentacle's already adding chaos
   brand to the fight. Mnoleg also drops one of their four(!) melee
   attacks, redistributing most of the damage across the other attacks (now
   made the more chaotic AT_RANDOM) so the AF_BLINK hit is more likely to
   deal the damage needed to let Mnoleg actually blink.

 * Mnoleg's hp is rather low compared to half other lords- of the other
   lords near their average hp, two of three of them have Major Healing
   (Lom and Eresh), and the third is killing fine on sheer high numbers
   and speed (Gloorx). As such, they get another average 73 HP, vaguely
   approaching Asmodeus and Dispater's rough ~450 HP range, and a little
   better defenses made a little more uneven.

--------------------------------------------------------------------------------
c82a368367 | Nicholas Feinberg | 2023-12-25 16:38:22 -0800

Oops

--------------------------------------------------------------------------------
55a4951847 | Nicholas Feinberg | 2023-12-25 16:37:43 -0800

Credit aedyr

--------------------------------------------------------------------------------
fb072f231e | Monkooky | 2023-12-25 16:33:34 -0800

Tweak Upheaval radius logic
Properly show the inner circle as guaranteed once you get a chance
of hitting things in the outer ring. This is still slightly wrong
if you have literally 0 invo skill, but I don't care.

Closes #3334.

--------------------------------------------------------------------------------
2086043a82 | aedyr | 2023-12-25 16:21:59 -0800

Reformat background_creation as Markdown
Closes #3349.

--------------------------------------------------------------------------------
fdc2f8288e | Nicholas Feinberg | 2023-12-25 16:13:07 -0800

Tweak some Frederick triumphs

--------------------------------------------------------------------------------
cdbc00b6e1 | Rosstin Murphy | 2023-12-25 16:07:20 -0800

Add Frederick triumph lines
Closes #3395.

--------------------------------------------------------------------------------
6be9deba8d | Nicholas Feinberg | 2023-12-25 16:04:46 -0800

Refactor enchant code
Closes #3361.

--------------------------------------------------------------------------------
8b49caffdb | Aliscans | 2023-12-25 16:04:46 -0800

Enhance max enchant messages
Change what happens when weaponry or armour in enchanted to its
maximum.

1. Print "while" rather than "moment" in the message, to give the
player a hint that something unusual has happened.

2. If caused by a scroll, cancel repeated actions. The next scroll
can't enchant this item again, but the same keypresses could enchant
something else.

Also, print the message at the end of enchant_armour(). This matches
enchant_weapon(), and means that any lua function which is triggered by
the message sees the item in its final state.

--------------------------------------------------------------------------------
6c1934c42b | Monkooky | 2023-12-25 15:09:29 -0800

Make Lightning Rods use half AC
Makes lightning rod check against half AC rather than proportional AC.
This change follows in a push to make lightning damage always ignore half AC, 
and also removes an inappropriate usage of proportional AC.

This is a buff, but it's unclear to me to what degree, as lightning rod damage 
code is fairly opaque.

--------------------------------------------------------------------------------
8ab06856ec | mgdelmonte | 2023-12-25 14:57:21 -0800

Add lua function view.get_map
This is significantly more efficient than querying each cell
from lua. It also provides more and better data, but never more
than is visible to a normal player. See function comments for
a complete description.

[Committer's note: did some minor refactoring.]

Closes #2675.

--------------------------------------------------------------------------------
7b7c7d10e1 | mgdelmonte | 2023-12-25 14:48:20 -0800

Fix lua skill function bugs
The lua skill functions were done variously, with some using
str_to_skill_safe (which returns Fighting if there is a skill
mismatch) and some using str_to_skill; and each was done
longhand.  This PR factors out the common code and uses
str_to_skill, which is the only method that makes sense.
The str_to_skill_safe gives totally false results if the
wrong skill name is used.

And as a related matter, this PR fixes the documentation,
which referred to Ranged Combat as a skill, when it is
actually called Ranged Weapons.

--------------------------------------------------------------------------------
7873091dee | Michael Del Monte | 2023-12-25 14:30:58 -0800

Fix bug in lua `target_weapon`
Crawl currently lacks the ability to speculatively examine
the to_hit value of a non-wielded weapon.  The underlying
melee_attack and ranged_attack objects appear to allow
weapon selection, but for a player, they always use the
currently wielded weapon.  This commit removes the misleading
`item` parameter and corrects the function description.

Resolves #2694.

--------------------------------------------------------------------------------
d22453358f | mgdelmonte | 2023-12-25 14:27:18 -0800

Fix default shop ordering
Sorting by type, name, price is neat, but it breaks the lua
integration because the sorted menu scrambles item letters, so
the `items.shopping_list` has no relationship to any menu you
can see in the game.  That is, `items.letter_to_index` fails
to work properly.

This PR restores the original "stock" order as the default,
which means that `items.letter_to_index` will work again.

Closes #2987.

--------------------------------------------------------------------------------
8329074549 | mgdelmonte | 2023-12-25 14:22:54 -0800

Fix Lua bug in view.cell_see_cell
Closes #3107.

--------------------------------------------------------------------------------
5034fedf43 | Monkooky | 2023-12-25 14:16:48 -0800

Make Ozo's Fridge ignore firewood for huddling
Ozocubu's Refridgeration deals reduced damage to actors that are adjacent to
another actor. This previously included firewood.

If fridge is your primary damage source (by a sufficiently large margin), you
are encouraged to shoot firewood with a sling then wait for it to die when it
comes into LOS, so that monsters could not huddle against it. This is an
extremely unfun play pattern.

While this issue occurs to some degree with plant blocked missiles, it is not as
severe in those cases, nor as easily fixable. In the case of missiles,
retreating until an enemy enters line of fire is sufficient. In the case of
Ozocubu's, you must retreat until the enemy is a full tile beyond the plant,
which may be several turns where the enemy has LOF but can still huddle.

[Committer's note: deduplicated.]

Closes #3303.

--------------------------------------------------------------------------------
a5f28545b9 | Nicholas Feinberg | 2023-12-25 13:22:12 -0800

Axe Cig rot fee
Player sentiment seems pretty negative about Cigotuvi's Dreadful Rot
at the moment. The current drain cost dates back to 08ca5ef3b563a5f1,
when the spell was first added - it's a first draft. Let's cut it by
a bit more than half and see if it feels better.

--------------------------------------------------------------------------------
2bdb5a6e49 | DracoOmega | 2023-12-25 13:36:34 -0330

Don't make rPois- creatures also immune to Mercury Vapours (Darby)
It's so easy to assume that !res_poison() means 'doesn't resist poison',
but of course it does not.

--------------------------------------------------------------------------------
2bb1a01664 | gammafunk | 2023-12-24 23:10:31 -0600

fix: Better placement of the Crypt gem (dilly)
Due to how the shared Crypt loot randomization works, the ivory gem
could end up in some obscure places on e.g. evilmike_haunted_forest,
namely locked away with unsightly ghouls behind iron grates. This commit
moves the gem off of one of the special loot piles that gets randomized
to various possible locations in each map, and onto its own glyph. This
glyph now appears in a central location at the "end" of every Crypt:3
end vault. On a couple maps the gem replaces a single gold pile, which
is no great loss to the player, and on the rest no loot items are
sacrificed.

--------------------------------------------------------------------------------
9f37b22e94 | elliptic | 2023-12-25 00:08:38 -0500

Make heavy rarer on long blades and randart melee weapons
Heavy is more complicated and arguably more powerful than vorpal was, while
also being a bit scary to use; it doesn't need to be quite as common.
I pulled back on the weight for long blades in particular to partially
match short blades (where heavy doesn't generate naturally on non-randarts)
and increase brand weight diversity between weapon classes.

For randarts, I left other weights unchanged, which means all other brands
got (slightly) more common; this is probably a buff (more speed/spectral...)
but my general impression is that still using a randart melee weapon in
endgame isn't that common compared with a boring +9 non-artefact, so
making their brand assortment a little more exciting seems fine.

--------------------------------------------------------------------------------
d128f7319e | David Lawrence Ramsey | 2023-12-24 17:36:56 -0600

Call trog_wizard arcanist a wizard again (#3379).
Closes #3379.
--------------------------------------------------------------------------------
80bb053e4c | David Lawrence Ramsey | 2023-12-24 17:34:50 -0600

Recycle dialogue for alchemist player ghosts. (#3417)
Move the old Transmutations dialogue to Shapeshifting, and put the

Poison Magic dialogue under Alchemy.
--------------------------------------------------------------------------------
2dc4e65319 | David Lawrence Ramsey | 2023-12-24 17:34:19 -0600

Fix warning if Beogh can't give an orc an orcbow. (#3386)

--------------------------------------------------------------------------------
b614d7c52f | David Lawrence Ramsey | 2023-12-24 17:33:40 -0600

Change species' magic resistance to willpower. (#3397)
This updates the species YAML files and associated documentation. "mr"

is now "wl", to match the species aptitude header and footer.
--------------------------------------------------------------------------------
7c67ea8c80 | RypoFalem | 2023-12-24 22:57:36 +0000

Note when felids lose or gain lives
This should make it much easier to keep track of how many lives you had
at what point in the game.

--------------------------------------------------------------------------------
47f062a2e6 | Nicholas Feinberg | 2023-12-24 14:31:34 -0800

Fix constriction + bombard (CarefulOdds)
Also water engulfing, though harder for this to apply for Bombard
specifically.

Also fixes Mule issues.

--------------------------------------------------------------------------------
8a68c6e047 | Kate | 2023-12-24 20:08:44 +0000

Use @possessive@ in some Boris speech lines

--------------------------------------------------------------------------------
a3d031de95 | David Lawrence Ramsey | 2023-12-24 13:12:57 -0600

Change species' magic resistance to willpower.
This updates the species YAML files and associated documentation. "mr"
is now "wl", to match the species aptitude header and footer.

--------------------------------------------------------------------------------
2ccc7d8fe7 | Nicholas Feinberg | 2023-12-24 10:25:43 -0800

Oni are dummies (acrobat)

--------------------------------------------------------------------------------
6789619139 | Nicholas Feinberg | 2023-12-24 10:23:38 -0800

Add Sean Dewar to the CREDITS

--------------------------------------------------------------------------------
34bb7ddc15 | Nicholas Feinberg | 2023-12-24 10:23:05 -0800

Remove accidental defaults (Ge0ff)
Oops! (!!)

--------------------------------------------------------------------------------
ca53710c0c | David Lawrence Ramsey | 2023-12-24 08:17:55 -0600

Recycle dialogue for alchemist player ghosts.
Move the old Transmutations dialogue to Shapeshifting, and put the
Poison Magic dialogue under Alchemy.

--------------------------------------------------------------------------------
007bd0a1a9 | regret-index | 2023-12-24 06:32:43 -0330

Tweak a variety of monster stats, spells, and gear
 * Burial acolytes don't need quite so high Willpower for a D:4 portal.
   They're now at a much more appropriate Will 20. Their two conjuration
   effects are plenty nasty already, also, so they get a mild nudging down
   of melee damage.

 * Let meliai give more experience, so people with tile_show_threat_levels
   won't ignore them as much, and since they're easily quite nasty for
   low hp characters (as their nudging down in Spider in bd29554, f2a2391,
   and d12d1d2 can attest). Their rough kill numbers versus objstat ratio
   in D places them pretty close to skeletal warriors, who give a lot more
   even after this.

 * Give war gargoyles less HD and less casting rate for Metal Splinters as
   is weird for a gargoyle to be breathing anyway, but more AC, melee
   damage, and a chance for a branded weapon as is more suiting for a
   player species renowned for melee. Maces and flails brands are a little
   weird for this, but it's a nice random holy wrath chance.

 * Give Frederick a randart orb of light or energy- light for the demigod
   semi-divinity, energy for his conjurations. It serves as a tempting
   reward all of his recent huge buffs (b247575, b730325, 1baa85e), and
   continues to help distinguish him from other uniques. (This, of course,
   comes with some adjustment for his weapons to be all one-handed).

 * Call Lost Souls now has a hard summon cap of 3 again- death mages
   calling in a higher number at a time was evidently plenty enough of a
   buff to it- and works properly in wizlab_borgnjor's random effects
   again.

 * Let Pan lords cast the misery-cloud generating March of Sorrows,
   replacing their quite harmless Freezing Cloud cast. (Also, rename the
   ENCH_RING_OF_DRAINING to RING_OF_MISERY, and fix some database lines
   missing the s at the end of the spell name.)

--------------------------------------------------------------------------------
4b2ba238e7 | Nicholas Feinberg | 2023-12-23 21:48:54 -0800

Mark Wucad Mu useless to Djinn (Aliscans)
Also, to Trog.

Closes #3372.

--------------------------------------------------------------------------------
829106c53c | Nicholas Feinberg | 2023-12-23 21:43:35 -0800

Tweak job/species recs (OctopodesWeekly)
Funnily enough, no new Op recs.

Closes #3365.

(See justification in that PR description.)

--------------------------------------------------------------------------------
7a62d739cf | Sean Dewar | 2023-12-23 21:32:44 -0800

Fix some duration descriptions
Some duration descriptions were out-of-date or missing entirely (e.g:
"No description available" when hovering over statuses on WebTiles).
Here's my attempt at updating them!

As I don't know Chinese, just remove the "Slay" status entry, as that one no
longer applies (needs changes to accurately describe "Fugue").

[Committer's note: tweaked Fugue and Jinx descriptions.]

Closes #3414.

--------------------------------------------------------------------------------
2e576bbbd6 | Sean Dewar | 2023-12-23 21:32:44 -0800

Fix Bullseye/PProj issues
- Remove the old "PProj" status description, and replace it with an updated one
  for "Bullseye" (I don't know Chinese, so I just removed that one).

- As Portal Projectile is now a monster-only spell, update its description to
  attempt to more accurately reflect its behaviour when casted by monsters.

- Remove `action::affected_by_pproj()`, which is unused.

- Remove `action::is_bullseye_active()` and its uses.
  This function incorrectly treats each shot as costing 1 MP, and implies that
  bullseye is unusable while confused; both cases are no longer true.
  Remove uses from `action::uses_mp()` overrides and from `fill_status_info()`.

--------------------------------------------------------------------------------
f84c63c4fe | David Lawrence Ramsey | 2023-12-23 21:24:26 -0800

Add a line for player ghosts with Shapeshifting.

--------------------------------------------------------------------------------
3924f4b49e | David Lawrence Ramsey | 2023-12-23 21:21:25 -0800

Make initial monster vitrify messages end in "!".
This matches the monster message for Killer Klowns' clear moon pies.

--------------------------------------------------------------------------------
44eaecdf4b | David Lawrence Ramsey | 2023-12-23 21:21:25 -0800

Properly message when you're vitrified more.
When you're already vitrified, being hit with Vitrifying Gaze will say
that your fragility will last longer. Do this for ordinary Vitrify as
well.

--------------------------------------------------------------------------------
77d344c5cb | David Lawrence Ramsey | 2023-12-23 21:20:31 -0800

Don't list Meteorans in the aptitudes menu.

--------------------------------------------------------------------------------
8e30cb9bd4 | Nicholas Feinberg | 2023-12-23 21:18:47 -0800

Fix Xom's divine experiences (pooka109)
Don't apply the goofy confusion/slowing from wrath when Xom's wrath
does nothing. (Purely for thematic reasons - feels hard to be
'overwhelmed' by nothing.)

Closes #3408.
Closes #3409.

--------------------------------------------------------------------------------
3b179efc34 | David Lawrence Ramsey | 2023-12-23 21:14:36 -0800

Fix spelling in a few new spell descriptions.
Closes #3406.

--------------------------------------------------------------------------------
385a91d2d2 | Nicholas Feinberg | 2023-12-23 21:11:04 -0800

Set burial acolytes' god (pooka109)
Closes #3416.

--------------------------------------------------------------------------------
7102d64fe6 | regret-index | 2023-12-23 23:32:39 -0330

Make Boris make you sad
Boris is a very sad unique. He's lost his dagger (acddeb6). He's been
seperated from his cat (8eed16d) for ages. He's become nearly identical to
plain liches aside from trading Haste for Iron Shot (6612197). He's lost a
decently large chunk of his placement range, diluting his gimmick (f5560fb,
1b62a5d, 67d208b). He also just doesn't actually kill many people- while
it's obviously awkward to assess the killrate statistics of somebody that
comes back, his killrate over the past three versions is a very sad ~0.45%.

It could bring one to tears, really. He's got an almost tangibly
miserable lot, one could say.

Boris now loses Invisibility for an upgraded version of the weeping skull
misery cloud spell (c.f. d47e5fa) - a cloud line that lasts 8-12 turns that
doesn't skip over the vulnerable, and which forms a mephitic-cloud style
1-radius burst of 2-5 turn clouds. (Most of the Invisibility weight wasn't
entirely put into this new March of Sorrows, and was distributed into other
conjurations.) This should be an interestingly nasty combination with his
Orb of Destruction, as it will eat away at players trying to sidestep the
orbs. It also cutely makes every single one of his spells conjurations,
which I'm sure he'd prefer, and gives him a spell distinct from both liches
and other uniques. Wear rN+.

Boris also now places in Depths:1-2, Vaults:1, and Elf:$, so his
resurrection mechanic has more chances to actually be seen. This might make
him a bit absurd on the orb run, but he's only gotten 5 kills then in the
last nearly three years since 3208aba, so it should be fine.

(Also, some more Boris lines and text. Hooray for melodramatics.)

--------------------------------------------------------------------------------
36f0627844 | DracoOmega | 2023-12-23 15:54:37 -0330

Allow Manifold Assault to work with more unrandarts
Now that we can test the safety of each attack before we make it, some more
things can be allowed to work. Specifically: Devastator, Scepter of
Torment, the Singing Sword, and the Mace of Variability.

The Mace of Variability's Chains of Chaos look slightly weird when they
trigger off non-adjacent targets, but still function alright.

Arc Blade doesn't currently work at all when it hits a non-adjacent target
(and produces potentially confusing messages) and Sword of Power's beam aim
functions oddly, so they remain disabled for now. Theoretically this could
be adapted to work in future.

I have *some* concerns about effectively multiplying the trigger chance of
screen-wide effects, but PF has argued in favor of fun and who am I to
immediately say no?

--------------------------------------------------------------------------------
e298f011d9 | DracoOmega | 2023-12-23 15:54:37 -0330

Don't drunken cleave targets that might cause penance with unrandarts
More specifically, for each attack an oni could make while drinking, we
check if said attack *would* prompt the player about endangering allies if
they made it normally, and then veto any such attacks.

No prompts, only attack things safely, enjoy your unrands.

--------------------------------------------------------------------------------
59f95bc4ea | DracoOmega | 2023-12-23 15:54:37 -0330

Allow checking if an unrandart wreapon would give an attack prompt
Without actually showing one to the player. Intended so that we can test in
advance whether an attack might be unsafe, before attempting it.

--------------------------------------------------------------------------------
589f70cbe3 | Kate | 2023-12-23 18:44:23 +0000

Fix wording in a speech line

--------------------------------------------------------------------------------
c720559798 | DracoOmega | 2023-12-23 12:47:45 -0330

Don't require shift+z to cast Mercury Vapours at enemies still in the AoE
It doesn't seem an uncommon situation that the player would want to cast
early for the Weak, so let's not make them see an extra prompt.

--------------------------------------------------------------------------------
88e648cc9f | DracoOmega | 2023-12-23 12:47:45 -0330

Greatly increase bombardier beetle's xp
Due to how the game automatically determines this, it was far lower than
other monsters of comparable threat. (I wonder if it might even have caused
the UI to suggest to players was trivial when it wasn't?)

Still keeping a close eye on these little guys' lethality and may nudge
them downward, depending on how it shakes out.

--------------------------------------------------------------------------------
f52a5a9ab3 | regret-index | 2023-12-23 00:47:41 -0330

Adjust new skull noise
While most full-bodied undead are still effected by silence, curse skulls
and wraithly monsters use magical or natural abilities. With that rough
precedence, it makes reasonable sense for both weeping skulls and laughing
skulls to be immune to silence. New messages have also been added for both,
alongside messages for ones blasting at allies from offscreen.

(This also fixes the mon-spell.lua test failing, as apparently SPELL_NOISY
is a tag for non-wizardly / priestly abilities. They should be noiser,
anyway- I wonder a little about S_SCREAM and its piercing shrieks actually
being louder than normal, considering the many years it seemed like that
was the case as well as it making obvious sense. (It was just notable when
Crypt was mostly zombies that they shouted at all.) It'd make demonic
crawlers louder in a relatively quiet branch, though, so I'll defer to
others' opinions on that front.)

--------------------------------------------------------------------------------
7de3fab2a5 | regret-index | 2023-12-22 22:35:00 -0330

Tweak & distribute new skulls & acolytes across portals & vaults
Weeping skulls and burial acolytes are mostly put into the ossuaries with
minimal gimmicks and kill rate. Several ossuaries trim down the D:1 zombie
numbers and continue to pick up a small amount of fancier derived undead
(spectral scorpion, bullfrog simulacrum, croc zombie). This also gets in
some long-due nerfs for the wraith ossuaries and the bog mummy ossuary's
pile of bee / wyvern zombies- both are gone now that ossuaries in general
have less spiky gimmicks.

(This comes with a large amount of reshaping and handling Ossuaries in
general, to be honest. They have pretty awful disparaties in their kill
ratios even with quick crocodile zombie adjustments- the bottom 4/20
Ossuaries had a collective weighted killratio of 5% and the top 4/20 had a
collective killratio of 45%. Several also had some immensely troublesome
gimmicks- _due_cavern's skull traps never worked but thousands of people
autoexplored into wraiths, while _zaba_flooded was content to use wyvern
zombies in the same portal mostly using D:1 zombies. There's been some
heavy reworking of layouts from disproportionate killratio ends, including
some heavy reshaping and gimmick distribution. There's now a ~44% chance
to encounter either of the new monsters in an Ossuary, with functional
layouts like the bog mummy, scorpion, and ambush ones leaving them out.)

Weeping skulls and burial acolytes also show up in a few altar vaults for
Yred and Kiku, respectively, and a few Crypt vaults. Weeping skulls also
get a little Abyss integration, and could easily get more.

(After testing in their intended ossuary locations, weeping skulls are
a bit bulkier than their starting commit, while Malign Offering has been
tweaked further downwards in starting power for burial acolytes.
Laughing skulls also now show their possible maximum damage.)

--------------------------------------------------------------------------------
38fc4fe9c3 | regret-index | 2023-12-22 22:35:00 -0330

Nerf plain elf monster stats and xp
We don't really use plain elves as anything besides player species zoo
filler or plain shapeshifter monster dud rolls, but they do have their
zombies appear in a bunch of ossuaries. They currently heavily resemble
humans monsters except for having a bit more EV, health, and HD, but
this for some reason hands out like x1.75 XP versus humans.

Since all the x-v improvements recently and over the decades have helped
make arbitrary zombies relatively straightforward to quickly parse, there's
not too much problems with keeping said plain elf zombies in ossuaries.
(Probably not good to add lots of player species that don't spawn in the
Dungeon, but players should have some reasonable immediate recognition
of an elf). They still probably shouldn't hand out so much XP there now
that we have actual new threats for Ossuaries with their own XP reward
attached. Elf enemies gain some EV, lose some AC / HP, and now only
provide about as much XP as the base humans do.

--------------------------------------------------------------------------------
dac2563cd0 | regret-index | 2023-12-22 22:34:59 -0330

New monster: burial acolytes, for Ossuaries / Crypt vaults / Kiku altars
Another new monster meant to be Ossuary bosses. These jackal-masked priests
of Kiku practicing out interring the dead and raising them after they've
gone through the proper rites have several different spells to work with:

 * Malign Offering, the heal-others by-damaging-a-target beam DE high
   priests use, which can help heal up Ossuary zombies one otherwise kites
   or easily lures apart from one another.

 * A weak and rare 3d7 Dispel Undead not-range, to scare player undead in
   a way that can still be reasonably handled at range. (This comes with
   another rescaling of low HD Dispel Undead not-range, since it was very
   strong even at very low HD.)

 * A new spell, Funeral Dirge, which gives very brief sprinting and might
   buffs for several undead close to a foe. This is meant to further
   showcase early monster support spells (alongside boudas), and also lets
   them try to help make jackal zombies and gnoll zombies actually have
   any threat to them in the weaker ossuaries.

While this is a fairly complex enemy to be introducing early, most
Ossuaries have been quite simple barring notable out-of-depths (wraiths,
wyvern / bee zombies) since they lost all of their non-alarm traps in
1e82c30. They can afford an actually noticeable monster or two between
these, weeping skulls, spectres / simulacra, and croc zombies in the
non-out-of-depth arrangements, especially when the earlier portal before
it contains water mechanics and now its own far-from-D spawns too.

Burial acolytes don't particularly fit in too many other branches, but as
explicit Kiku priests, they also reasonably fit as Kiku overflow altar
guards since most of those slowly lost their zombies. They also can help
out the extreme number of Crypt vaults deciding that piles of derived
undead each stuck in individual closets will ever actually threaten
anybody not making a thunderous racket, since the buffing Dirge will
let them be super-frail support even much later.

Their tile is the old anubis guard tile by Grunt, moved back from the
unused monster's possible-player-sprites folder. Probably people won't be
too confused by seeing them in another Egyptian context again after seven
or so years.

--------------------------------------------------------------------------------
22ebceef79 | regret-index | 2023-12-22 22:34:59 -0330

Monster revision: Flying skulls -> Laughing skulls
Flying skulls are extremely harmless for their current placement, being
mostly just monsters that shout for silent zombies to wake up to rather
than anything of actual interest in-and-of-themselves otherwise. They're
not very useful enemies to actually fight beyond very earlygame, yet
used mostly in late undead vaults or Crypt, a notion we've tried to
rather phase out these days compared to previously.

The newly renamed laughing skulls (so named contrast against the new
weeping skulls), have lost most of their resists beyond rF+ (many other
undead lack for it, but several vaults kind of want a vague fiery
undead theme available, and since they're now red to contrast agains old
flying skull white / cyan). They also have an rN-checking mechanic, but are
far more direct about it. They now cast 3d13 Bolt of Draining, and scale up
the power of their bolt with each skull available in their LoS- 25% for
each other laughing skull laughing with them, capped at 100%. While there's
a few piercing-bolt band designs in Crawl already (hell hounds, raiju, kind
of spark wasps, and hell knights), few of them are quite so slanted in both
raw damage and health frailty as these are- with five total present, each
hits as hard as shadow dragons, but they'll die very quickly when hit.
This should make them have an interesting bias against melee fighters
(after all the other repositioning and mp-draining effects added this
version). Or they'll get zapped by wands. It's at least better off than
before, and might make rN a bit more respectable a resistance.

Since they now have a built-in scaling mechanic, they now replace shadow
wraiths in the D out-of-depth pool appearing with only a single other skull
(and not even that when pulled up solitary in vaults), and are reduced in
number rather than cut out of many earlier vaults. They otherwise still
appear in their bands in Crypt and Abyss, though the latter has been made
to raise over time rather than lower. Several vaults have had their flying
skull counts nerfed, while other vaults have swapped them in for weeping
skulls.

The new tile is by Sastreii.

--------------------------------------------------------------------------------
eb2fc1291e | regret-index | 2023-12-22 22:34:59 -0330

New monster: weeping skulls, for Ossuaries / Abyss ( / Crypt vaults)
Ossuaries are in a weird place relative to the rest of early D, though not
nearly as plain as Sewers were prior to ac1dc8b and 5e5e084. Plain mummies
and derived undead are both, strictly speaking, a unique monster and a much
later monster type for the Ossuary default set. The problem is that without
the interference of traps (heavily reduced over time) or very large numbers
and no chokepoints, there's a lot of boring kiting and picking-apart the
slow zombie hordes for a variety of different characters. The energy rework
of attacks-of-opportunity help them a little bit, but not enough to make
zombified versions of D:2 + human and elf zombies particularly plus slow
mummies very interesting. There's a few ossuaries with unique gimmicks,
like the wraith ones or the open layout ambushes or silence or scorpions
or bog mummies, but overall, the rest are very, very plain.

Weeping skulls are a new monster meant to be occasional Ossuary bosses as a
noticeable spike of danger beyond the current sad state of normal mummies,
alongside another future enemy type. Somewhat frail undead, they use the
newly-altered clouds of excruciating misery by randomly and sparsely
spawning them in random squares of a two-tile ring around themselves (but
never directly on top of the player). They also have a variant of the
cloud-line breath catoblepae and ushabti have, spawning brief misery clouds
while skipping past those that would be vulnerable (non-Undead). These both
make running from zombies and mummies both include a fair bit of deliberation
over walking around clouds or taking small amounts of unavoidable damage to
walk through them, which should add a fair bit of interest to many
gimmickless and weaker ossuaries all being roughly the same.

They also show up in the Abyss as natural spawns, once more taking off a
little bit of the very large weight small abominations have early in the
Abyss, and spawning with a second skull when any deeper than Abyss:1. Most
enemies in the Abyss will be immune to the clouds, and they can sometimes
slow the player retreating from far more dangerous enemies around, which
is a cute use for weaker monsters there.

Their tile is by Sastreii.

--------------------------------------------------------------------------------
d47e5fa42b | regret-index | 2023-12-22 22:34:58 -0330

Buff?: Clouds of negative energy -> clouds of excruciating misery
Clouds are weird. (Much of Crawl is weird.) Their damage is fixed per cloud
type, which makes it difficult for clouds to be used against the player
outside of a given rather narrow window of reasonable damage, since there's
rather limited and possibly expensive ways to deal with large amounts of
space becoming unavoidable. (Some effects, like poison, miasma, and
spectral flame do sidestep this, at least). We've also got a pretty large
amount of clouds at this point that are extremely narrow in their presence
and use, for very disparate circumstances- a pile of different decorative
opaque clouds and damage types mixed between Wizlabs, Desolation, Xom,
condenser vane, and two or less monsters each for almost everything besides
miasma. It'd be nice to try and make more dramatic effects when we have so
many, so it'd be possible to compress such endless lengths over time.

As part of this notion, I'm heavily revamping a cloud essentially exclusive
to condenser vanes and Xom- clouds of negative energy. They're currently
somewhat weird within the vane itself, positioned at the same tier as acid
and thunder but much easier to resist than either for monsters and more
awkward to idly walk through than acid for players. They're also not very
interesting either way, another cloud doing another flat amount of damage
like the other standard element clouds despite undead already having the
unique non-standard miasma and spectral flames to work with.

I'm revising these clouds away from dealing the standard cloud damage of
10-32 damage to players and 6-22 damage to enemies to instead deal with
flat percents, in the style (but not practice) of torment. These newly
renamed clouds of excruiating misery now deal 10% of the player's max HP
(6.6% with rN+, 3.3% with rN++, none with rN+++) and 15% of monster max
HP whenever they hit (most monsters have a lot less raw health than most
players, so they on average take more damage from even numbers lowered
for them and not players- likewise, such low-ish percentage damage has to
be higher to monsters for it to work properly). This should make them
scale reasonably to be a little dangerous if liveable fine early on and
reasonably terrifying later on, thus making them usable for future monster
re / designs. It should also help with rN+ being a very neglected
resistance for most players on average, since later versions of these
cloud should deal quite a bit of damage.

Additional notes:

 * The tile has been somewhat changed with a hard light overlay of rltiles
   sourced wall_undead. We could really do with more cloud tile bases
   eventually. At least they're definitely obviously different colours than
   miasma or spectral flames in console?

 * Condenser vane is unchanged, since it'll take a bit of a while to tell
   just how good these clouds are in player hands- it's a worse roll
   earlier on (low monster health) and already an easily bad roll later on
   (lots more undead and unliving), but it can now really shred through
   giants and uniques. Monster cloud safety versus intelligence checks
   in _mons_avoids_cloud is a very per-case hacky mess- if there's any
   concerns about its strength, a proper check for this new cloud's
   non-standard damage should be added there just for starters.

 * The name of "excruciating misery" can be quibbled over in the future,
   but with such rapid damage against e.g. player trolls it felt like it
   needed some emphasis. It's also meant to both fit with and be a little
   distinguishable from Crawl's love of adjectives for Pain- Agony,
   Torment, Anguish.

--------------------------------------------------------------------------------
282adc679d | Implojin | 2023-12-22 16:48:07 -0600

Enable default gem autopickup
In some brief local testing, this approach seemed to work to enable gem
autopickup by default, while still allowing players to disable it through \.

--------------------------------------------------------------------------------
32b5b8ab40 | Nicholas Feinberg | 2023-12-22 14:10:56 -0800

Add always_show_gems
Give players an opt-in way to always show gem timers, as with the
Zot timer. If more_gem_info is also set, then this will also show
the time until held gems shatter.

Please don't turn this on.

--------------------------------------------------------------------------------
9dc51933c8 | Nicholas Feinberg | 2023-12-22 13:48:54 -0800

Fix: leaky boulders (particleface)
Don't allow testing for invisible enemies for free with Brom's
Barrel o' Boulders.

--------------------------------------------------------------------------------
f40074dcd0 | Nicholas Feinberg | 2023-12-22 13:43:46 -0800

Add kittens
For a Hep low-piety invo title.

The naming here is a little iffy - 'feline kitten' feels silly.
Should maybe special case that.

Also a bit leery of 'tengu chick' but whatever, we can roll that
back later.

--------------------------------------------------------------------------------
04589416ad | Nicholas Feinberg | 2023-12-22 13:27:09 -0800

Add stop_summoning_prompt on evokers (dilly)
And fix dragons to not warn you when bog is active.

--------------------------------------------------------------------------------
a1c90ae492 | Nicholas Feinberg | 2023-12-22 13:03:23 -0800

Randomize blastmote push order (acrobat)
The order in which adjacent creatures are pushed back by blastmotes
should be random, not a fixed memorizeable pattern.

--------------------------------------------------------------------------------
3537ca1da6 | Nicholas Feinberg | 2023-12-22 12:59:45 -0800

Blastmotes: explode on wait (elliptic, Implojin)
Per discussion, it seemed simpler and more intuitive for blastmotes
to explode when a creature (incl. the caster) ends their turn in the
blastmotes, rather than only when they move in. The motes bump into
you, etc. (They're still sleepy when you cast them, so you get a turn
of leeway to bail.)

We could cut the special logic to explode blastmotes on move from
monster.cc and player.cc, but the results were less visually pleasing,
so I left them in.

We might want to add warnings for waiting in motes, but eh - it's a
mistake you won't make too many times. :)

--------------------------------------------------------------------------------
ade28b54fc | DracoOmega | 2023-12-22 13:34:22 -0330

Actually set weight of ARTP_ENHANCE_TMUT to 0
It was suppressed in game, but could still generate on items, causing the
ocassional randart with only 1 visible property.

--------------------------------------------------------------------------------
a19005be0f | DracoOmega | 2023-12-22 13:05:54 -0330

Fix missing Sticky Flame status descriptions in webtiles
Higher intensity fire was failing to find the description.

--------------------------------------------------------------------------------
0f3f92e71e | DracoOmega | 2023-12-22 04:13:32 -0330

Fix broken build
What a misleading error message. I have now learned that a
variable can shadow a member function that it is storing the value
of and the compiler will merely act like the function doesn't
exist at all without implying the actual problem.

I shake my fist at you, C++

--------------------------------------------------------------------------------
a852a4444a | Nicholas Feinberg | 2023-12-21 22:27:18 -0800

Don't crash when barbs kill monsters
Broken in 019d70c61ac.

--------------------------------------------------------------------------------
c98d92de7d | DracoOmega | 2023-12-21 22:12:41 -0330

Tweak Fugue of the Fallen description to improve clarity a little

--------------------------------------------------------------------------------
98b23dd7b7 | DracoOmega | 2023-12-21 21:21:09 -0330

Lint

--------------------------------------------------------------------------------
85b50b08cf | DracoOmega | 2023-12-21 21:05:45 -0330

Tweak Mercury Vapours in a couple of ways
The range is greatly reduced (6->3), weakness formula is tweaked (generally
lower chance at most levels, and especially at higher enemy HD), and it now
won't inflict any poison on creatures with rPois.

In turns out that the rules about whether sources can apply poison to rPos
monster 1/3 of the time are very inconsistent, but there's a *mild* lean
towards this being true of physical delivery sources (eg: venom brand) and
BEAM_POISON (which the player largely has no access to) and false for
several other spells - notably OTR in the same starter book. Since Sting
already is notable for being part-physical, I think it's fine to make rPois
enemies fully immune to the poisoning of this spell.

But I do want to keep the weakness effect that operates on a different
vector and have slightly tweaked the description to maybe make that
clearer.

Finally, I have allowed players to cast it on themselves, since this was
requested multiple times (believe it or not). By the same rules as enemies,
rPois will protect you from the poison application (but not weakness!)

--------------------------------------------------------------------------------
c275714b29 | DracoOmega | 2023-12-21 21:05:44 -0330

Apply sticky flame reduction to trampling and dragging monsters
This feels like a 'deliberate movement' on their part.

This also does a little refactoring of how deliberate movement effects are
applied and fixes a bug with no applying new location effects properly to
either party involved in dragging.

--------------------------------------------------------------------------------
6d40cd707e | DracoOmega | 2023-12-21 21:05:44 -0330

Shuffle a few Vehumet wrath spells to their correct levels
I worried that Vehumet casting new sticky flame on the player might be a
bit too strong, but it turns out it could have already hit you with 3d20
energy bolt at xl 9, so maybe this wrath was already a general problem and
no player should be testing Vehumet's patience at those levels.

--------------------------------------------------------------------------------
56cbf0ba3b | DracoOmega | 2023-12-21 21:05:44 -0330

Energy Bolt -> Bolt of Devastation, now applies Will/2 (regret-index)
An extra effect for a plain spell, drawing on the name of its most frequent
user. (Should also synergize with Cacodemons trying to hex a lategame
player, as well as several Will checks in Slime).

Previous BEAM_DEVASTATION (used only by orbs of destruction now) is renamed
BEAM_DESTRUCTION.

--------------------------------------------------------------------------------
7abab0001e | DracoOmega | 2023-12-21 21:05:43 -0330

Refactor applying Will/2 to players and monsters
This adds an Actor::strip_willpower() method that unifies applying this
status to both types of actors, and generally simplifies the multiple
places this is currently applied (AF_VULN, Strip Willpower hex, demonic
touch aux, ?vulnerability).

Old behavior for adding additional duration to someone who already had
1/2 Will was to not print an additional message, and this is preserved
(though should it be?)

I have also changed the message for reading a scroll of vulnerability. It
always sounded uncomfortably similar to !magic (and even the wild magic
card), and since MR was changed to Willpower maybe it should have some
theming that feels a little more like it affects being's willpower instead?

(Feel free to shuffle the adjective to something else, if there's
opposition)

--------------------------------------------------------------------------------
5278e7341f | DracoOmega | 2023-12-21 21:05:42 -0330

Don't immediately affect the player by clouds from the Clouds card
The new version of the Clouds card creates a ring of clouds around visible
enemies, and will place the clouds beneath the player if the player is
already adjacent to an enemy when they draw it. The intent was that, like
hostile cloud placement by enemies, the player had a turn to react and step
out of the cloud - it is extremely mean to randomly afflict the player with
miasma without a warning, even as a card effect!

This commit should replicate the original intended behavior by giving a 1
aut cloud immunity if the card places a cloud under the player.

--------------------------------------------------------------------------------
841635c0e0 | Kate | 2023-12-22 00:17:21 +0000

Mark the Arena branch as fully mapped
Arena maps are designed to be small and fully within LOS upon entering, and
that should stay the case, but the fully_map branch flag is still applicable
as it reveals the occasional edge of the spectator area and prevents
exploration healing without needing an extra special case (and also prevents
exploration piety, in case Okawaru ever ends up caring about it!).

--------------------------------------------------------------------------------
cd514f47d3 | DracoOmega | 2023-12-21 14:30:20 -0330

Silence a compiler warning about shadowed variables

--------------------------------------------------------------------------------
273af0913d | DracoOmega | 2023-12-21 14:30:20 -0330

Fix a test failure

--------------------------------------------------------------------------------
9953226333 | DracoOmega | 2023-12-21 14:30:20 -0330

Turn Oni drunken brawling into a real mutation
So that it won't overflow the mutation screen and can be examined for a
more specific description.

--------------------------------------------------------------------------------
7095806d71 | Nicholas Feinberg | 2023-12-21 09:40:47 -0800

Fix iron giant not having a quote
Discussion of souls feels vaguely appropriate for a Hells enemy.

--------------------------------------------------------------------------------
40f9ea6007 | Kyle Rawlins | 2023-12-21 12:39:28 -0500

fix: correctly show email in change email ui on webtiles
Luckily, this bug was entirely cosmetic; email was not actually set to
null and it was even updated correctly. But it prevented both logging
the new email, and showing the new email (or old email) to the player in
the webtiles UI.

This fix will require a webtiles server restart to activate.

--------------------------------------------------------------------------------
b567cfdca4 | DracoOmega | 2023-12-21 02:41:38 -0330

Fix Earth Magic description still mentioning Transmutations (Oneirical)

--------------------------------------------------------------------------------
753d86d23d | DracoOmega | 2023-12-21 02:40:43 -0330

Fix Oni only getting several of their mutations at xl 2 (dillyguru)

--------------------------------------------------------------------------------
7fd7ca34b5 | DracoOmega | 2023-12-21 01:32:18 -0330

Fix tag upgrade builds for oni

--------------------------------------------------------------------------------
e2edf0f575 | DracoOmega | 2023-12-21 01:32:18 -0330

Cut Pyre Arrow from Azrael
Especially with the introduction of bombardier beetles, there's more than
enough prominant sticky flame in the game now. His spell set will be fine
without it.

--------------------------------------------------------------------------------
5616923710 | DracoOmega | 2023-12-21 01:32:18 -0330

Remove AF_STICKY_FLAME
The only users left are searing wretches, and it doesn't seem too important
on them (and they surely didn't need the megabuff the overall sticky flame
changes caused them). Besides, I think wanting to move to cure a status
works better when you aren't necessarily in melee range of something at the
time, too.

And it saves me making one more formula sane, too >.>

(I removed searing wretches previously-irrelevant 3rd hit and folded some
of its damage into their first.)

--------------------------------------------------------------------------------
948705f5d4 | DracoOmega | 2023-12-21 01:32:18 -0330

Revamp Sun Moths
Sun Moths are... weird. Why are they holy (in a branch with multiple
notable natural necromancy things, for that matter)? What is the halo
supposed to accomplish? Why do they resist electricity?

They've effectively just been irresistable bolt monsters with decorative
sticky flame and while that isn't *nothing*, said bolt of energy is slated
to get a will-lowering effect this version and that *also* doesn't do
anything in Spider, so this seemed a good time to give them a shake-up.

They now have a higher intensity pyre arrow and lose energy bolt and
AF_STICKY_FLAME to pick up AF_SWOOP. They will light you on fire and
intercept you when you attempt to shrug it off. They lose rElec, become
rF++ instead of rF+, and become a little more fragile. I'm perhaps
needlessly worried about how dangerous new sticky flame is since I don't
have good data on that yet, but the *idea* is that these become one of the
most notable sources of it in the game, since it's their primary means of
threat (whereas it is secondary on most other enemies that have it).

I have also rewritten their description. I am rather fond of it, tbh.

--------------------------------------------------------------------------------
0fc8318213 | DracoOmega | 2023-12-21 01:32:09 -0330

Add Bombardier Beetles to help tutorialize new sticky flame
The changes to monster sticky flame make it substantially more dangerous
than it used to be, and players used to the old status quo may not realize
that moving will greatly reduce damage taken. I made sure to include this
in pyre arrow's description, but why would a player who thinks they know
how it works look at it again? (And it's too intrusive to tell the
player every turn "Are you sure you want to stay still?")

So I am adding a monster with pyre arrow to early D. It is intended to be
scaled so that it isn't terribly likely to *kill* players, but may still
naturally teach them how sticky flame works before they reach enemies who
*can* kill them with it.

It is a speed 6 creature, so it gives the player plenty of time to run away
from it while on fire (or even incidentally discover that they can shake
off sticky flame via movement when they charge *towards* it.) and is
otherwise fairly harmless in melee.

--------------------------------------------------------------------------------
3627872b49 | elliptic | 2023-12-20 23:43:34 -0500

Add a break

--------------------------------------------------------------------------------
990ad9562c | elliptic | 2023-12-20 23:41:23 -0500

Don't display gem intactness info on the game end screen without 
Options.more_gem_info
But still write it to the vmsg logfile field.

--------------------------------------------------------------------------------
81216b26b2 | gammafunk | 2023-12-20 21:05:34 -0600

fix: Don't used runed doors in a vault (Midn8)
The vault jmf_multi_god_temple2 apparently got runed doors when it
previously had secret ones and we removed secret doors. It places normal
level spawns, so it shouldn't be runed at all. Not to mention hiding
overflow altars behind runed doors is generally a bad idea.

--------------------------------------------------------------------------------
013ef95028 | Nicholas Feinberg | 2023-12-20 18:13:31 -0800

Always include full gem info in logfiles (elliptic)
Oops!

--------------------------------------------------------------------------------
8c40ea976f | DracoOmega | 2023-12-20 19:21:22 -0330

Checkwhite
Some day I will remember to do this before pushing instead of afterward.

...

Maybe.

--------------------------------------------------------------------------------
afeb8edd3b | DracoOmega | 2023-12-20 19:15:33 -0330

Change player Ogres into Oni, shorten Armataur tongues
Ogres are considered a fairly weak player species, and have been arguably
additionally troubled by the fact that most of the ogres the player ever
encounters in the dungeon are dumb giant club brutes - leading new players
to assume this is the core ogre playstyle, despite many veterans arguing
that they make better mages than fighters, and that 1-hander + shield is
the better choice for them.

Simultaneously, there's been a desire to cut armataur's doubled potion
gimmick. Their new regen-on-rampage is already very strong, and does a
better job of emphasizing the species' core movement gimmick than long
tongue does, and it is much easier to reasonably balance their power
without TWO big sources of healing. (Inversely, despite their large hp
pools, ogres can be paradoxically fragile and could definitely benefit from
the additional potion healing.)

So I am simplifying that mutation, moving it to ogre, and rethemeing them
slightly to give the mechanic a stronger flavor fit.

Player Ogres are now Oni. Leaning into the mythical backdrop of them being
legendary drinkers and brawlers, oni gain doubled health and magic from
any potion that restores these (ie: !curing, !heal wounds, !magic, and
!ambrosia, and when they drink such a potion, they also make an immediate
attack against all enemies surrounding them. Cleave with a giant spiked
club, just so long as you have enough on hand to drink while you do it!

Oni apts are mostly the same as Ogres, with the following changes:
 Maces -1 -> 0
 Armour -2 -> -1
 Shields 0 -> -1
 Invocations 1 -> 2

People have clamored for ages for the most obvious wielder of giant spiked
clubs in the game to not have a negative apt and that seems reasonable to
me (the ancient +3 they had made this more of a no-brainer, but 0 probably
leaves other weapons sufficiently appealing)

Slightly better armor and slightly worse shields apt (along with drunken
brawling) may also nudge them a bit more towards 2-handers without making
them obviously correct.

And +1 invocations due to their famous associations of working for the
celestial bureaucracy (as torturers... >.>)

They have also gained horns 1 (they already were too large to wear helmets,
so this is a minor buff than a new restriction - also oni are usually
depicted with horns).

I toyed with the idea of giving them built-in shoutitits 1, with rewritten
messages so that they kept bellowing challenges and taunts at random
enemies. And while I think the flavor of this is *hilarious*, I worry that
their buffs might not entirely compensate for this downside. Or maybe it
would be fine along with some other minor tweak?

Either way, this hopefully does a somewhat better job of selling the
fantasy of the species one is playing as, while providing a unique gimmick
to play with.

(Enemy ogres are staying as ogres - it would defeat some of the purpose of
this if they changed - but Erolcha specifically may be slated to become an
oni instead)

--------------------------------------------------------------------------------
33de52bd5f | Nicholas Feinberg | 2023-12-20 12:13:41 -0800

Axe slime gem time (elliptic)
Empirically seems a bit too easy at the moment. Reduce the clock
from 1500 dAut to 1000.

--------------------------------------------------------------------------------
12b4d39fdb | Nicholas Feinberg | 2023-12-20 12:01:42 -0800

Don't heal poly'd mons (MysticSailboat)
Polymorphed monsters getting a huge heal was added in 0c496e0be39
(0.4, 2008) without explanation. It doesn't seem intuitive or needed,
and is actively counterproductive for Nemelex's Degeneration card
in combination with other Destruction cards, so let's cut it.

(It was also completely undocumented, as far as I can tell. Of course!)

Shapeshifters get to keep healing on each shift, as before. Slimified
monsters explicitly get a full heal, since that feels right to me
( ✨ vibes ✨ ).

--------------------------------------------------------------------------------
0d4b2e2ecf | Implojin | 2023-12-20 11:28:13 -0600

fix: Don't let blastmotes grant cloud immunity (Drazool)
Previously, players casting blastmotes could stand on the tile where
it was cast, gaining immunity to all types of clouds as long as they didn't
move. This kind of elbereth-tech seems undesirable (especially so for a level
3 spell), so this commit allows other cloud types to overwrite blastmotes.

--------------------------------------------------------------------------------
06160a9761 | Implojin | 2023-12-20 11:01:54 -0600

Let searches for rPois match alchemy staves (particleface)
Looks like an oversight with the staff rename. Thanks to particleface for
reporting this!

--------------------------------------------------------------------------------
5021b54cb2 | DracoOmega | 2023-12-20 03:30:53 -0330

More fixups to Mercury Vapour
Properly print a message when casting at a protected ally or empty space
and don't warn the player about casting on allies that won't be affected
anyway (including other allies that are poison immune)

Also: don't display the weakness success chance in negative numbers if it's
'below' 0%

--------------------------------------------------------------------------------
783b6e986b | DracoOmega | 2023-12-20 02:59:29 -0330

Let Hep ancestors properly avoid Mercury Vapours
And Fedhas plants too, I suppose :P

--------------------------------------------------------------------------------
078f9b89d1 | DracoOmega | 2023-12-20 02:43:25 -0330

Copy beam.hit_verb in bolt_parent_init
It's not clear why this wasn't being done, and I don't see what harm would
come from doing so. In fact, several pieces of code seem to have already
expected that this happened, and specified hit_verbs that were never used.

--------------------------------------------------------------------------------
5fad861c52 | DracoOmega | 2023-12-20 02:43:16 -0330

Make Malign Offering into a zap
So that its damage can be shown when examining monsters.

--------------------------------------------------------------------------------
dfb52cbc09 | DracoOmega | 2023-12-19 22:09:08 -0330

Fix a Mercury Vapours crash
I must have reordered some of this *after* testing it...

--------------------------------------------------------------------------------
23da92e3a2 | DracoOmega | 2023-12-19 21:14:57 -0330

Fix a couple custom randbook uses of Poisonous Vapours that missed renaming

--------------------------------------------------------------------------------
cae00c0fb1 | DracoOmega | 2023-12-19 20:27:12 -0330

Shuffle spellbooks a bunch
The book of Changes was incredibly sad (and nonsensically named) with just
Sting and Irradiate, and attempting to touch this up caused a chain
reaction (which hopefully still improves the status quo).

Unrestrained Analects loses Ignition and gains Ozocubu's Refrigeration.

Book of Battle returns, with Ozocubu's Armour, Manifold Assault, and
Fugue of the Fallen.

Book of Changes renamed to Book of Spontaneous Combustion, containing
Inner Flame, Irradiate, and Ignition.

Book of Alchemy renamed to the book of Transmutation (but contains the
same spells as before).

Book of Minor Magic lost Mephitic Cloud and gained Blink.

Book of the Senses gained Mephitic Cloud.

Book of Blood gained Call Imp (since apparently there was only one book
that had a copy of it)

Book of Cantrips gains Sting.

Book of Death loses Fugue of the Fallen.

Book of Misfortune loses Inner Flame to gain Jinxbite.

Book of Danerous Friends loses Jinxbite.

Ozocubu's Autobiography and the Inescapable Atlas were cut. The latter's
description didn't really make any flavor sense with its spell set of Blink
and Manifold Assault. It's a shame to lose two of the best book
descriptions, so I adapted most of the former for Book of Battle.

Trismegistus Codex loses the joke about all its spells having 3 schools,
but the only other 3 school spell remaining is Mephitic Cloud which already
shares another book with Freezing Cloud. Alas.

--------------------------------------------------------------------------------
952b61244d | DracoOmega | 2023-12-19 20:27:11 -0330

More minor Alchemy spell adjustments
Change Fulminant Prism into Conjuration/Alchemy. (The Hexes part was
always dubious flavor, but I'd wanted *something* non-elemental that wasn't
conjurations itself.)

Cut Dazzling Flash from Conjurer. It made a lot more sense when this was
Dazzling Spray and did actual damage, and now that no other spell in the
book needs hexes, it makes sense to remove it. Slightly sad for the book to
have 4 spells instead of 5, but its power level should barely be affected.

Slightly buff Sting impact damage at max power and increase its range by 1.
Technically it's marginally harder to reach max power than before, but also
while this remains the only spell that Alchemists can use against rPois
enemies until Sticky Flame, it might to be just a tiny bit better.

Also change Sting's description.

--------------------------------------------------------------------------------
b5f9efb42b | DracoOmega | 2023-12-19 20:27:11 -0330

Poisonous Vapours -> Mercury Vapours
Poisonous Vapours was in a somewhat awkward position, where at very low
power, it would often inflict less total damage than sting for twice the
mp - something a very early character often cannot afford, even with
vapour's more generous targeting. It became much better with more mp and
spellpower, but by that point you could often cast OTR which usually
outclasses it.

This attempts to give it secondary appeal, even while sandwiched between
those two starter spells, and give a little bit more alchemy flavor.

It is still a smite-targeted direct poison spell, but it additionally has
an HD-based chance to inflict weakness on both the target and any adjacent
to it - regardless of poison resistance. It is also slightly more generous
with posion application if the target was not already poisoned, and a
little less generous at reaching full stacks. I also reduced its range to
6.

The current weakness success chance is:
100 - max(0, (victim_hd * 12 - pow * 2 - 10))
which aims to make it fairly reliable against early enemies, but drop off
severely against later ones - even at max power. (Enemies not in the center
of the spell have only 2/3rd the normal chance to be affected - I am not
sure if this is a necessary complexity or not).

--------------------------------------------------------------------------------
019d70c61a | DracoOmega | 2023-12-19 20:27:10 -0330

Revamp Sticky Flame (the status and the spell!), give to Alchemists
Sticky Flame, the player spell, has been widely considered to be a
little sad for a while; the attack of opportunity changes hurt kiting
with it a lot, and there are generally more appealing fire options at a
similar level. And Sticky Flame, the status used *against* the player,
has been even sadder for far, far longer. It doesn't scale with the
enemy applying it and does such a trivial amount of damage that it can
be completely ignored in virtually all situations.

This commit aims to address both of these issues simultaneously and give
Alchemist a new toy at the same time (as well as a better tool in their
kit to deal with rPois enemies).

Sticky Flame (the status) now does more damage per turn than it used to
(*far more* against players) and has a generally longer duration, but is
removed rapidly when the victim moves instead of performing other
actions - essentially a sort of 'reverse barbs'. The per-turn damage of
the player status also scales directly with enemy spellpower, so that
both smoke demons and balrugs can threaten appropriately for their
depth. The idea is that this status will do significant fire damage over
time unless the player actively attempts to put it out - but not so much
that it is always correct to drop what you're doing and do so.

The status effect still does fixed damage per turn to monsters (though
higher than before), but monsters *also* put the status out much faster
when they move - meaning that when the player lights a monster on fire,
they will now want to stand in place next to it rather than move away and
waste most of their spell, which should hopefully bring interesting
positional decisions, especially when combined with the rest of alchemist's
starting kit.

Sticky Flame has moved from Conjurations/Fire to Alchemy/Fire and added
to Alchemist's starting spells. It should do meaningfully more (and more
consistent) damage to targets, so long as you can actually remain near
them.

Also, the monster spell name 'Sticky Flame Ranged' was always a
historical holdover and somewhat confusing considering the multiple ways
in which it was different than Sticky Flame, so it is now further
divorced from the player spell and renamed Pyre Arrow. It deal no impact
damage at all (while the player spell still does, as a means of
additional scaling, considering that the damage of sticky flame against
monsters is fixed). Monster spell info displays the *per turn* damage
taken from the sticky flame status this spell applies. (Alas, this is
currently not true and also complicated for the player version when used
by player ghosts...)

I have also done a bunch of internal renaming and light refactoring. No
longer do we have a DUR_LIQUID_FLAMES, but an ENCH_STICKY_FLAME, and
then apply them both with a function called 'napalm', but instead use
sticky_flame consistently.

There are a LOT of numbers and formula changes in this commit, and I
have done my best to make them vaguely reasonable, but I have no doubt
that some will need playtesting adjustment - especially since this is a
new dynamic being introduced both for and against players.

--------------------------------------------------------------------------------
614289c723 | DracoOmega | 2023-12-19 20:27:02 -0330

Wereblood -> Fugue of the Fallen (level 3 Necromancy)
Wereblood has had somewhat weird thematics ever since Shapeshifting took
over all of the 'transform self' effects from Transmutations. Necromancy,
on the other hand, is a natural fit for a spell that is powered by killing
things.

This has the following mechanical changes over current Wereblood:
 -The healing effect is removed
 -Ally kills now boost the effect (but allies themselves do not benefit
  from it in any way)
 -Max stacks reduced to 7 instead of 9
 -At maximum stacks, successful hits will inflict minor pain damage to all
  adjacent targets to the one you attacked. A little bonus for the tricky
  task of maxing it!
 -Moved to level 3

I haven't put this in the necromancy starter book. Wereblood was never great
at low levels, since you usually can't sustain fights long enough to build
it and struggle to kill already. I think there's no way a necromancy wants
to use their mp on this instead of vampiric draining, and it's more
interesting if the spell is intended for later use. Also: this gives players
more incentive to splash necromancy on a hybrid that doesn't involve allies!

To avoid the player needing to worry about whether any individual monster
they kill has a 'soul' or whatever, the spell is themed as using fresh
death to draw in the spirits of the long-dead that already linger everywhere
in the dungeon (I mean, there's enough corpses in every inch of the dungeon
that BVC works, right? :P)

--------------------------------------------------------------------------------
8f7eaaa2f0 | DracoOmega | 2023-12-19 20:26:54 -0330

Merge Poison Magic and Transmutations into a single school: Alchemy
When forms were removed from Transmutations to create
talismans/shapeshifting, the Transmutations school was left in a slightly
awkward state. It still contained multiple strong and useful spells (eg:
Irradiate and Yara's) but was a little thin on the whole, especially at
lower levels, and lacked natural inroads. And Poison Magic has long had
issues with being overly narrow in thematic scope compared to other
schools, as well as lacking exciting lategame spells.

This merger attempts to improve both issues at once and open up more
interesting future design space by combining the two schools into one:
Alchemy. This makes several higher level transmutations spells more natural
to access, give the Venom Mage start (now Alchemist) more lategame things
to look forward to, and potentially allows for the design of more varied
means of doing damage than poison.

All spells that were either Transmutations or Poison are now Alchemy,
with the following notes:
 -Ignite Poison moved to level 4 since it's now 2 schools instead of 3.
 -Eringya's Noxious Bog was left at level 6, despite becoming single-school
  since it's already widely considered unappealing and this might help it.
 -Sting became Conjurations/Alchemy.
 -Wereblood is slated to be rethemed and moved to Necromancy, but isn't yet.

Most species aptitudes for Transmutations and Poison Magic were already the
same. Cases where that was not the case are listed below.

--------------------------------
Transmutation/Poison -> Alchemy

Demonspawn: -1/0 -> 0
Felid: 1/-1 -> -1
Formicid: 1/3 -> 3
Gargoyle: -2/0 -> -2
Ghoul: -1/0 -> -1
Hill Orc: -3/-1 -> -2
Merfolk: 3/1 -> 3
Minotaur -2/-3 -> -3
Naga: 0/3 -> 2
Octopode: 0/2 -> 1
Spriggan: 3/0 -> 1
Tengu: -2/0 -> -1
Vampire: 1/-1 -> 1
--------------------------------

This vaguely averages apts, with a slight bias for the original poison
skill (and some personal subjective opinion here and there). Formicids and
Merfolk both keep their +3 poison apt - the former because it can easily
handle the buff, the latter because it's just too good to let merfolk make
their own bogs to swim in. Felid apts are in line with their other
offensive-focused magic skills, Gargoyles inflexible nature makes them
less adept at inducing change in others, and Vampires have traditional
thematics around transformation that makes a +1 feel appropriate to me.

Ashenzari's Curse of Beguiling loses Conjurations, and the old Curse of
Alchemy is renamed Curse of Sorcery (Conjurations + Alchemy).

Alchemy miscasts inflict the poison status on the player. (I kind of
prefer the idea of them inflicting corrosion instead, though no player
Alchemy spell can yet do this, so I'm not sure how people would feel).
Messages are provisional, but frankly the miscast system in general has
issues with the fact that messages cannot check player properties (cf:
ghouls getting messages about how they violently convulse in pain, then
take 0 damage) and could use separate work.

The Plutonium Sword is decoupled from transmutation miscasts (which no
longer exist). I have also added back a vague approximation of the
direct damage they used to inflict before the big miscast simplification
of a couple years back.

Save upgrading will grant players Alchemy skill equivalent to the sum of
old Poison and Transmutation skills.

Alchemy randbook words are a partial merger of old Poison and
Transmutation book words, with heavy cutting, curating, and addition of
things. (I tried to prune things directly associated with shapeshifting,
as well as poison words that seemed too close to disease and putrescence
in a 'gross' sense - instead trying to lean into a more academic vibe for
such things. Also added a decent handful of specifically-alchemical
references.)

Still slightly awkward that it can use poison words for a book containing
no spells that poison, but probably no worse than randbooks often are.

(Gloorx can stay as a high-level alchemist. Hot new DCSS lore!)

--------------------------------------------------------------------------------
bf3fed316f | Nicholas Feinberg | 2023-12-19 11:08:34 -0800

Tweak gem notes (Ge0ff)
Include spare time. Also, remove spite for consistency.

--------------------------------------------------------------------------------
a3cce3a448 | elliptic | 2023-12-18 22:06:53 -0500

Swap the order of gems and runes on the win screen.
It makes sense to have runes be first and closer to the Orb since they
are more important than gems.

--------------------------------------------------------------------------------
5f2baee751 | Nicholas Feinberg | 2023-12-18 16:12:21 -0800

Remove undocumented Chei/gem interaction
Was surprising and probably not needed for Chei to slow gem timers.
We can reconsider this later, of course, but if we do we should
probably make Chei slow the rate at which gem_time_spent accumulates,
so players aren't incentivized to consider swapping to Chei while
almost out of gem time.

--------------------------------------------------------------------------------
7208ddb293 | Nicholas Feinberg | 2023-12-18 15:54:15 -0800

Align colons
In monster stat blocks.

Boy, what a bother! :)

--------------------------------------------------------------------------------
a3531c41b4 | Nicholas Feinberg | 2023-12-18 15:13:07 -0800

Reduce slick slippers price by 30%
Since its downsides aren't really factored in. This might be overkill.

--------------------------------------------------------------------------------
dfd56e322c | Nicholas Feinberg | 2023-12-18 15:09:19 -0800

Tweak repulsion ego description
The old one was unclear to some, helping contribute to the perennial
repulsion-reflection mix-up. Maybe this will help?

--------------------------------------------------------------------------------
b28be9a5f2 | Nicholas Feinberg | 2023-12-18 15:09:15 -0800

Fix the build

--------------------------------------------------------------------------------
27c7112c99 | Nicholas Feinberg | 2023-12-18 15:05:29 -0800

Ban double flying talismans (Flugkiller)

--------------------------------------------------------------------------------
7e11add784 | elliptic | 2023-12-18 13:04:13 -0500

Remove a comma

--------------------------------------------------------------------------------
b6740aa4e6 | Nicholas Feinberg | 2023-12-17 21:43:32 -0800

Fix a sneaky inugami bug
We didn't erase CANINE_FAMILIAR_MID when we changed levels, meaning
that we might accidentally believe that some other random monster on
the new level was our beloved dog. When we cast call canine familiar,
we could end up buffing and healing a random, probably hostile monster,
or just being unable to summon a new dog. Pretty good!

This whole mid-based approach is very scary to me (it feels quite
fragile), but it's what we're doing for spectral weapon, so maybe it's
fine? I wonder about tagging the dog instead of the summoner, though.

--------------------------------------------------------------------------------
9785b71c3f | Nicholas Feinberg | 2023-12-17 21:42:24 -0800

Simplify some inugami code and fix a minor bug
Mostly minor refactoring, but also fixes a bug in which, if something
copied your inugami (phantom mirror, Mara, etc) and then the copy died,
the game would think your inugami died (and would set a cooldown,
prevent you from healing/buffing your dog, etc). This is important for
all those times that you use phantom mirrors on your dog.

--------------------------------------------------------------------------------
0c0848231e | Nicholas Feinberg | 2023-12-17 16:51:43 -0800

Darken non-present monster resists

--------------------------------------------------------------------------------
0d254b9dff | Nicholas Feinberg | 2023-12-17 16:22:01 -0800

Continue removing gems from descent
They don't really work properly, IMO. We can revisit this later.
(They were already disabled in the UI.)

--------------------------------------------------------------------------------
8770774cb4 | Nicholas Feinberg | 2023-12-17 16:19:50 -0800

Fix hiding lost unvisited gems (CarefulOdds)
The gem UI is supposed to hide unfound and broken gems by default,
to avoid demoralizing players by telling them about things they can
never get. However, if a player had run out of time for a gem but
the gem's floor hadn't been visited yet, that gem wouldn't be hidden.
Fix that.

--------------------------------------------------------------------------------
407de8339a | Nicholas Feinberg | 2023-12-17 16:13:50 -0800

Hide clock for held gems by default (elliptic)
Just getting a gem is enough of an achievements. Some players find
it stressful to be informed that their gems will shatter even after
they get them. (Quite understandably!)

Hide gem shattering behind a new, default-false rcfile option. This
has no effect on score, it just makes 'gems shattering' into an
even-more opt-in mechanic.

--------------------------------------------------------------------------------
1c27f8a97b | Nicholas Feinberg | 2023-12-17 15:40:19 -0800

Don't fear Zot
Continue removing Meteoran.

--------------------------------------------------------------------------------
5190ab2d73 | Nicholas Feinberg | 2023-12-17 15:13:38 -0800

Add a price for artefact spell enhancers
This code is bad!

--------------------------------------------------------------------------------
0cff9e4079 | Nicholas Feinberg | 2023-12-17 15:13:38 -0800

Wizmode: show item value in xv
I forget if there's another way to do this.

--------------------------------------------------------------------------------
5386780bc2 | regret-index | 2023-12-17 19:12:56 -0330

Re-order alligator attacks
As with trample, dragging needs to be the last attack in a monster's list
of attacks, or it won't do further attacks after it moves. It's a little
weird for them to tail-slap before biting, but I wasn't intending for
alligators to lose quite so much melee damage against higher AC characters,
so it has to work out this way unless a fair ways more material is
rewritten.

--------------------------------------------------------------------------------
4d4119cd44 | regret-index | 2023-12-17 19:09:20 -0330

Buff protean progenitors in various differing ways
The general reception of them seems to be that they're cool but a little
weak for Zot. Progenitor wise, they get a bit more melee damage in base
form and their band chance goes from 33% to 66%. Aspirant wise, the flesh
has a bunch more health, slightly less maximum time before each polymorphs,
HD 10 is guaranteed the third flesh now, and a fourth appears if poly code
manages to pull out HD 8 or lower. If this still isn't enough, possibly we
could fiddle around with the shapeshifting HD or the higher HD's spawning
count, or we could make one of the flesh piles drop off at half health
instead of waiting until they death.

--------------------------------------------------------------------------------
cfba0412b6 | regret-index | 2023-12-17 18:33:24 -0330

Bump up Bai Suzhen's transformation threshhold a little.
Her transformation gimmick is somewhat inherently stymied by Crawl's
randomness sometimes going far past her hard 50% HP threshhold. It was
originally set a little low because she had more of a gimmick in her first
phase (rain clouds ring to help her getting fast amphibious movespeed in
the second phase), but since she doesn't have said first form gimmick, it's
plain enough that it doesn't need to stick around for as long. I'm nudging
it to 66% health instead.

--------------------------------------------------------------------------------
8606b069a1 | regret-index | 2023-12-17 18:25:17 -0330

Double klown pie Vitrify (flugkiller)
Klown polymorph was much longer than most other statuses from the pies or
from polymorph in general, so its replacement could do with being longer.
This also further differentiates it from the hex. Enjoy the gelatin.

--------------------------------------------------------------------------------
2f004bd33d | regret-index | 2023-12-17 18:19:20 -0330

Fix some absent gems and a crystalized boss.
grunt_lair_end_beastmaster lost the titular troll when the earthy gem was
added to that vault. Also, all the scaling vaults for Depths that can have
a Zot entrance weren't touched (same with the D vaults that could have a
Depths entrance), so they didn't place any gems properly. 866d48a was an
admirable effort, nonetheless, but this should fix up more of its wake.

Also did some cleaning up while I was looking through all of these. Of
minor note was finding out grunt_runaround was set up for D:15 but never
actually placed. I'm heavily nerfing the Depths entrance it set up, though.
D:15 is not a place for a titan, two hell knight bands, and a shrike in the
same room.

Eventually, I'd like to adjust most of these vaults to place the gem not
underneath the rune or other loot or on the Depths / Zot entrance, so that
they can be admired on the floor as the sparkly gems that they are.
Probably later, though.

--------------------------------------------------------------------------------
dddd49282e | Nicholas Feinberg | 2023-12-17 12:45:43 -0800

Tweak some gem colours

--------------------------------------------------------------------------------
b2fffa6d40 | Nicholas Feinberg | 2023-12-17 12:41:56 -0800

Increase Tomb gem time (Oneirical)
The odd structure of Tomb makes it a bit harder to get through than
most branches.

--------------------------------------------------------------------------------
03ee008336 | Nicholas Feinberg | 2023-12-17 12:17:26 -0800

Make malign offering less noisy (Hal)
Don't print messages when you can't see any participants.

--------------------------------------------------------------------------------
cef503e1cc | Nicholas Feinberg | 2023-12-17 12:14:39 -0800

Remove $ (regret-index)
Typo in 866d48a76e53198ac7dee08fed80d99590233fe9, probably.

--------------------------------------------------------------------------------
2402ceb476 | Nicholas Feinberg | 2023-12-17 12:12:01 -0800

Remove orc gem
As with other gems, the orc gem was intended to be an interesting
challenge in itself and to also contribute to the difficulty of the
'all gems intact' challenge. However, Orc's layout meant that players
would often reach the gem quite quickly, even in normal play - not an
interesting challenge. Tightening the time limit would mean that Orc
was a bit more inaccessible than intended. As it was, travel time
to/from Elf and shopping could already create heavy pressure on the
timer.

Let's cut the glittering gem for now. This makes the 'all gems'
challenge a bit easier, and encourages resting in Orc instead of in
Elf:1, but that's liveable. (And similar to other cases re: resting
in Temple, etc.)

It could be interesting to instead make the Elf gem include the Orc
branch in its timer, so it has a longer overall timer but ticks down
while the player is in Orc as well as Elf. That has too high a UI
and complexity burden to be justifiable, though, probably.

Trivai: one now reaches 27 by adding 15 runes + 11 gems + 1 orb.

--------------------------------------------------------------------------------
e6b85068f3 | elliptic | 2023-12-17 13:55:27 -0500

Don't let Kiku wrath drain all the player's MHP in a single turn (Oneirical)
Still a substantial amount of drain with no rN (30%-50% of player MHP).

--------------------------------------------------------------------------------
1fbed5ca12 | regret-index | 2023-12-17 07:07:08 -0330

Juggle arcanist and occultist spells one last time, hopefully
Arcanists don't have nearly enough damage spells to make use of their
Vitrify hex, while Occultists are still kind of weird on theme and power.
Occultists give Force Lance to Arcanists (who lose Blink) so the latter can
still maintain distance while also being more likely to properly sequence
the buff / hex -> hex / buff -> blast designs. Occultists get Poison Arrow
in exchange because poison correlates somewhat with their names and also it
does more direct damage for more circumstances so they're less sad in
Depths. Still don't entirely know how I feel about either, but they're
better off than ~6.5 banishers per Vaults trip were, I guess.

--------------------------------------------------------------------------------
ad7a08865a | regret-index | 2023-12-17 07:04:56 -0330

Buff and shorten Vitrify, update UI around it, spread it a little more
Vitrify seems to have been relatively well recieved for the prospect of
having a new dangerous Hex beyond paralysis and banishment, but there's
been relatively low fears of it due to the conservative rate it started out
at. I'm buffing it from +30% damage to +50% to make it match the damage
numbers of negative resistances and be dangerous enough it has to be
worried about immediately. The gaze goes from increments of 6 to 10 turns
to 4-8 turns, and the spell goes from 8-24 to a less harsh cap of 8 to 18.

To correlate with this buff, the default messages settings now make players
being vitrified get the same danger colours as constriction and corrosion
in the message log. I'm also adding the exact damage increase it inflicts
to the % screen, to correlate with the exact numbers currently displayed
for harm. There was a fair bit of divided opinion in multiple places
regarding percents like Harm currently uses versus multipliers instead,
or if it should be be made additive instead of multiplicative with Harm.
There's little agreement on the latter, but the biggest opinions were to
display it like current Harm but seperately of the full indicator, a
"+50% damage incoming" which kinda lies if one also has Harm active. I
sort of prefer the multiplicative approach, parsing and expectations-wise,
but if other devs feel strongly about rAll- being additive instead of
multiplicative (or alternatively, if the display should multipliers
or combine the damage incoming together or whatever), they may do as they
wish; I cede the ground to them.

Since the previous state of the effect worked out fine prior, it should
also be reasonable to share it with more than just a few paralyzers:

 * Cacodemons lose the boring Slow and Confuse combo to cast Vitrify and
   a bit more Bolt of Energy. It sort of fits the matter / flesh shaping
   theme Dig and Malmutate already had, and lets them cast a flashier hex
   for greater demon summoning / Pan than spells present the whole game
   long. Maybe their Bolt of Energy could be looked at next for being so
   plain...

 * Klown pies swap out Polymorph in their effects list for Vitrify. There's
   been some consternation about melding the entirety of one's armour being
   far more lethal than most other possible effects around between AC and
   resists, and this makes one still reasonably frail while both keeping
   one's built-up-all-game-long defenses / resists and varying once more
   from the hex or the gaze by checking EV and LoF instead of Will or LoS.

--------------------------------------------------------------------------------
11c5b68f87 | regret-index | 2023-12-17 02:00:15 -0330

Small Xom overflow and Orc decor vault batch
The Xom vaults were inspired by 6d556a0 and 292434c. Probably the 0.2%
chance for Xom to present completely unusable randarts is fine, alongside
the 2% chance for a pile of box of beasts mimics.

The Orc decor vaults are all somewhat inspired by Orc ends in various
fashions and are meant to help a little bit with making an Orc decor
guarantee, alongside the additions from PR #3325 whenever that's done.

--------------------------------------------------------------------------------
9d81352419 | Implojin | 2023-12-16 17:36:35 -0600

Let Humans rest before exploring (PI-314, Patrick2011b)
By giving Humans explore regen, f11e229afd introduced a bug where Hu wasn't
properly resting to full before autoexploring. This commit fixes that by
reverting 32f4ba3753, which is no longer needed now that Meteoran has been
removed.

--------------------------------------------------------------------------------
a6fa84c583 | regret-index | 2023-12-16 20:05:07 -0330

Fix a deep water gem (elliptic)
Speedrunning is one thing, but we can't really expect most players to dive
through deep water too.

--------------------------------------------------------------------------------
b81609b7df | regret-index | 2023-12-16 19:56:43 -0330

Crunch down Saint Roka's band later on, restrict their later range
Roka's range is extremely wide for a unique heavily dependent on earlier
game spawns- Orc, Snake, Elf, Vaults, Depths, and Crypt. While it's cute
and thematic that they're bringing even plain orcs as deep down as Depths
and Crypt, those spawns are also extremely sad individual spawns and a
very weird explicit sign of Roka being just around the corner.

In the spirit of how orc warlords can spawn in Vaults with just a few orc
knights, Saint Roka's band is now substantially stronger in Vaults, Depths,
and Crypt- instead of 8 to 16 non-warlord orcs, wargs, or trolls, the band
has been bound to just 5 to 8 of knights, sorcerers, and high / priests.
Roka has also been excluded from Depths:3-4 and Crypt:3 in the process.
Hopefully this should make them a little more interesting as a unique that
scales based on their placement.

--------------------------------------------------------------------------------
b2a365499e | regret-index | 2023-12-16 18:46:33 -0330

Juggle around the unused monster tiles folder some more
Considering a fair number of the tiles will forever exist in the git
history, rltiles/UNUSED is a weird batch in an untidy closet we're
evidently never going to bother to fully clean out. There's tiles in here
that are in active use at the current moment, older versions of currently
present monsters (fine for former-humans, baffling for generic demons), and
a variety of tiles that wouldn't really past muster for any even short-term
use. Whatever gets here versus entirely removed basically boils down to
random chance based on a dev bothering to keep given tiles or not.

This brief tour cuts out dozens of redundant or mediocre tiles left lying
around, alongside tiles currently in use one way or another. It also adds
back a handful of tiles that look any decent, to help out with making
future placeholders and to help out other works using the rltiles CC0
license. (It adds a bit to the repository, but crawl's tiles are so so tiny
that it adds no real burden compared to e.g. adding whatever new splash
screens we get.) Re-added tiles here include coolio's spirit and griffon,
roctavian's death ooze / ravenous mimic / giant mite / ants, and Denzi's
rock worm. Also, all the non-tall lord / Tiamat tiles are now consistently
labeled as .small.

If anybody really misses some of these tiles, maybe we could do with a
subfolder for this that contains every tile we've replaced or removed,
seperate of the main folder.

--------------------------------------------------------------------------------
5f6fb4f5a3 | regret-index | 2023-12-16 18:46:32 -0330

Add and trim a few Xom spells and cloud trails.
New spells: Wereblood, Animate Armour, Battlesphere, Malign Gateway.
Wereblood forces the player to make noise and thus is neat as a mixed
blessing, Animate Armour gets to by-pass its innate castability versus
armour weight issues to be more interesting as a random free god act,
Battlesphere makes for a decent joke if not actually usable and compensates
for the power of the two summons here, Malign Gateway has been missing
since the miscast streamlining and is extremely appropriate between the
chaos brand and unavoidable neutrality.

(These all are exchanged for Canine Familiar, which can't use one of its
most interesting aspects in the recast and thus will mostly make players
unavoidably get drained and guilt.)

New cloud trail clouds are salt and blastmotes, both at miniscule chances.
The salt's purpose is obvious, while the blastmotes are manually set at 25
power (power with those is weird and modular) and definitely give a certain
kind of danger and excitement very distinct from the spell by getting them
without having to stop for laying each of them.

--------------------------------------------------------------------------------
9f703e4c1d | DracoOmega | 2023-12-16 18:07:29 -0330

Don't drain the caster when their inugami dies
This was originally intended to incentivize keeping your familiar alive,
but the recast cooldown probably does a sufficient job of that in the
earlygame on its own.

More importantly, this interacted extremely poorly with guardian golem,
repeatedly punishing the player for ever daring to use them together. While
I fully intend to do something with golem itself in the near future, this
should help smooth over some bad gamefeel in the meantime.

--------------------------------------------------------------------------------
3cd9a69821 | elliptic | 2023-12-16 11:53:09 -0500

Fix the intact gem count
Previously it was subtracting 1 for gems that shattered without ever
being picked up.

--------------------------------------------------------------------------------
7a52a54ec8 | elliptic | 2023-12-16 10:30:55 -0500

Buff Jiyva MP regen to match the amulet (acrobat)
This is the same size buff that amulets of MP regen got in 12fdbb3a, so
now the HP/MP regen ratio under Jiyva is again the same as between the
respective amulets (so at max piety Jiyva regen boosts are the same as a
free amulet of Vitality). I'm somewhat wary of making too much MP regen
available in general (there's a reason why MPRegen isn't a randart property
and HPRegen is), but on a non-temple god like Jiyva it seems fine to go
a little crazy.

--------------------------------------------------------------------------------
c9949b0d25 | Nicholas Feinberg | 2023-12-16 07:30:43 -0800

Fix gem time warning force_mores
Broekn by fedaa185804df896b16962672e4947481c4ad31f.

--------------------------------------------------------------------------------
048bac5d70 | Implojin | 2023-12-16 08:49:40 -0600

feat: Armataur rollpage MPRegen
Several players have noted that after the max HP nerfs in b2354cd04e and
593ecc88b7, Armataur book starts seem to be in a pretty rough place,
especially before XL 7. The intent of this commit is to help out earlygame
Armataur caster backgrounds while maintaining the reduced HP from those
earlier commits -- to do that, I've here added rollpage MPRegen, given at
XL 1, at a regen rate relative to the current At HP regen numbers.

This leaves Armataur's mutations in a more mechanically complex place than
I'd like: Probably some further simplification is now appropriate here, but
I'll leave that to a future commit.

--------------------------------------------------------------------------------
fedaa18580 | Nicholas Feinberg | 2023-12-15 22:28:31 -0800

Various other gem fixes
Tweak wording of warnings and add a screen flash on shatter.
Don't claim there's a noise - there isn't and shouldn't be.

--------------------------------------------------------------------------------
dc1e8866aa | Nicholas Feinberg | 2023-12-15 22:28:31 -0800

Fix more bonus gem warnings (elliptic)
Don't warn on entering a branch when a gem is nearly shattered
*unless* you actually have the gem.

--------------------------------------------------------------------------------
aa4636e842 | elliptic | 2023-12-15 22:06:53 -0500

Give 10 times as much score for gems in winning games (still not very much).
This makes each gem give 5-10% extra score in a typical 3-runer win, which
seems fair enough. Also, this makes picking up a gem that is "on the way"
very likely to be (slightly) score-positive even in speedruns.

--------------------------------------------------------------------------------
094a60cb62 | Nicholas Feinberg | 2023-12-15 18:09:26 -0800

Show gem turns in E
Per zot clock.

--------------------------------------------------------------------------------
0072eaf8aa | Nicholas Feinberg | 2023-12-15 17:40:21 -0800

Support alternating elemental colours
Looks much nicer for current uses (gem names, spell damage).

--------------------------------------------------------------------------------
521f287fb9 | Nicholas Feinberg | 2023-12-15 17:40:21 -0800

Unsort elemental colour text
On further consideration, it looks nicer scrambled. Ideally what
we'd want is to have the colours cycle in an orderly fashion, but
that's a little fiddlier.

--------------------------------------------------------------------------------
31605cc404 | Nicholas Feinberg | 2023-12-15 17:40:21 -0800

Make glittering gems gold
Looks nicer. Make the item glyph itself brown to avoid confusion
with gold in ascii-only mode.

--------------------------------------------------------------------------------
4c614596a2 | regret-index | 2023-12-15 22:00:36 -0330

Protean progenitor and aspiring flesh tiles by Sastreii
Delicious uranium ice cream. Farewell once more, antique abomination tiles.

--------------------------------------------------------------------------------
b92a3409a4 | regret-index | 2023-12-15 22:00:36 -0330

A quick tuning down of Xom's banishment power (Lici)
Xom's interest levels restrict the chance to banish the player, but
currently, Xom's banishment power uses player xl as a stand in for monster
banisher HD. While there's checks before xl 9 to have Xom usually rescue
the player, this scaling works pretty poorly between what power we expect
of players at given xls versus given monster HD- for example, deep elf
sorcerers have only 14 HD to send the player down to Abyss:3, which is
reasonable at the time one's doing Elf but not so much for an end-of-Lair
character that happens to be xl 14. The current range looks like:

xl  | 1   | 2-6 | 7   | 8-12 | 13  | 14-18 | 19  | 20-24 | 25  | 26-27
-----------------------------------------------------------------------
min | A:1 | A:1 | A:2 | A:2  | A:3 | A:3   | A:4 | A:4   | A:5 | A:5
max | A:1 | A:2 | A:2 | A:3  | A:3 | A:4   | A:4 | A:5   | A:5 | A:6

While there's a fair bit more abyssal agency than many years prior, this is
still quite agressive even for Xom, considering how much later it can ruin
a character. I'm doing a quick formula adjustment to the player's xl in the
equation to make this more reasonable for now. The resultant possible
minimum and maximum depths now look like:

xl  | 1-11 | 12-15 | 16  | 17-20 | 21  | 22-25 | 26  | 27
-----------------------------------------------------------
min | A:1  | A:1   | A:2 | A:2   | A:3 | A:3   | A:4 | A:4
max | A:1  | A:2   | A:2 | A:3   | A:3 | A:4   | A:4 | A:5

Possibly we could make people in zigs or with 5+ runes visit Abyss:6,
but people playing extended Xom probably would manually go to Abyss:7
themselves anyway. Should also look into Lugonu being less boring...

--------------------------------------------------------------------------------
3c0fa26f73 | regret-index | 2023-12-15 22:00:36 -0330

DE Death Mages: buff stats, make Call Lost Soul call more
Deep elf death mages lost Twisted Resurrection in b39fecb since they
couldn't collect nearly enough corpses to make meaningful abominations (and
also abominations are very boring spawns anyway). They are thus rather
specifically limited to one spell that makes them stand out- Call Lost Soul.
However, summoning one soul at a time at a paltry 11/200 cast rate makes
the potential revival function of this spell not particularly impressive-
they tend to revive themselves but once to Bolt of Draining the player more,
and otherwise rarely help prolong the lives of other present deep elves.

Support monsters aren't inherently bad designs, but the other spells are
statistically pretty mediocre at actually killing the player, worse off
than every other deep elf in the branch. If this spell and this monster
are to stick around, they needs to be far more flashy to justify the
complexity burden.

They get a little more HD, health, and double the Call Lost Soul cast rate.
Their summon now also summons two lost souls at a time (rarely three),
rather than one. This should help them stand out more as a deep elf that
absolutely need to be killed first amongst several other deep elves or else
risk nearly all of the other conjurers getting a second life's chance to
blast players to bits.

TODO: add a tiles indicator for thus-revived monsters being ghostly. Not
sure how they haven't gotten one for so long.

--------------------------------------------------------------------------------
2b3bde5f41 | regret-index | 2023-12-15 22:00:35 -0330

Leda's Liquefaction experiment: Earth / Hexes to Earth / Tmut, + buff
Leda's Liquefaction started as Earth / Transmutations in 0412296. It was
changed to Hexes as part of the double-combo of ae9be96 and 06cfd5e moving
it to Hexslinger so the Hexes-based ranged background could focus on and
cast something they're particularly suited to use. 9e18931 moved it out of
the starter book because a level 4 dual-school spell split a weapons
background too many ways, and ever since then it's been left pretty wanting
and unused. It's inherently a rather risky spell, as is anything that slows
down the player's movement, and doesn't particularly fit most of Hexes'
desire to run up and stab things nor is it necessarily likely to tempt
ranged characters at its weird schools intersection point. It's gotten
some buffs, but is still an unpopular fit.

Changing it from level 4 Earth / Hexes to level 3 Earth / Transmutations
covers a fair number of different bases. Hexes is extremely packed in its
lower-level and mid-level spells with the recentish Hexslinger update, so
it could afford to move a spell to another school. Transmutations as a
school losing forms in 1880023 hasn't completely killed the school, since
the unarmed focus rarely intersected too much with the power of Ignite
Poison / Irradiate / Yara's, but it is definitely a school that could do
with more unique effects on its own even if as a flavour grab-bag of
non-Hexes buffs / debuffs / damage. Moving it to Transmutations also pushes
it away from the school containing direct Slow spells, while it works on
a very different vector anyway. Finally, I think Transmutations always
made a lot more sense- there's no Willpower check or HD check involved, and
it clearly is transforming the earth near the caster anyway.

Leda's Liquefaction also gets a mild increase of base duration outside of
power (10 -> 15) to help it out a little more, since Transmutations itself
is rarely a school and skill to contribute spellpower with, and since it's
already a risky spell without needing to be ineffectual when actually
tried. In terms Placement-wise, not much has happened beyond moving it from
the Book of the Hunter to the Book of Sloth. I'm in two minds about
possibly moving it to spell level 3 if this still isn't enough...

--------------------------------------------------------------------------------
1baa85e0a2 | regret-index | 2023-12-15 22:00:35 -0330

Buff various old late game uniques stats, bands
Xtahua's statistics are atrociously low for even a lategame unique. For a
once-beloved dragon with three different gimmicks, they still lag heavily
behind other uniques in their equivalent range. Some of this is that while
their stats are higher than all normal dragons, they simply have much worse
health than nearly any other uniques in their range- somehow, the extra big
dragon has less health than a draconian (Bai Suzhen), a normal human
(Margery), a lich (Boris), and even a tengu (Sojobo). To help them actually
survive long enough to consistently use their 3d40 breath and para roars as
a unique with a built-in weakness, they now have only slightly under Vv's
health, and get some AC and melee buffs alongside this. (Possibly they
could do with some sort of mechanical overhaul in general...)

Bai Suzhen isn't doing nearly as poorly as Xtahua or anybody else in this
commit, but still is somewhat lagging a little behind late uniques. Her
transformation gimmick relies very heavily on her living particularly long
for breath and clouds to do much, but it's very easy for the randomness of
player damage to heavily overshoot the 50% health threshold she relies on.
As such, she also gets a mild HP buff and breathes primal wave a little
more often.

Margery is very boring and also performing reasonably poorly. She's a fire
giant with fancy equipment paired with a hell knight band, in the range
where one will fight about 8 of either in the average game. Since her band
is the notable part of her, I'm extending its fanciness a bit further. She
gets one less max hell knights, but on the hell side of things, the band
gets a hellephant or searing wretch to do even more fire damage, and on the
priest or necromancer side (yes hell knights are priests), she gets a deep
elf high priest or death mage to do more cool weird support stuff.

Frederick can clearly afford getting more and more stat buffs until he
doesn't take a month between kills.

--------------------------------------------------------------------------------
807b2c42aa | regret-index | 2023-12-15 22:00:35 -0330

Somewhat buff wargs
Orc is a weird branch. One of its weird components is that a fair bit of
Orc:$ can regularly involve repeatedly retreating over large amounts of
open space for a long while to try and break up a dense endvault full of
harmless and not-so-harmless enemies, simply and repeatedly normally
walking away. While a few enemies in the branch can somewhat sucessfully
interrupt this (faster demon summons, sorcerer paralysis) and it wouldn't
be a bad idea to add more, wargs are hypothetically a monster meant to
cover for this. They are directly orc-themed (by being taken straight
from Tolkien), have rPois for whatever mild distinction it grants them,
move faster than normal speed players... and they're still quite weak,
for non-banding monsters in Orc.

Grabbing statistics since 0.27, the only natural branch spawns they kill
more frequently than are plain orcs, orc wizards, and blastminers (who are,
of course, very new monsters). They're more notable for being Lair entry
guards and Orc entry guards than the branch intended to mostly contain
them, which is rather backwards. With Call Canine Familiar no longer being
reliant on their statistics for the top end of the spell, we can afford
to slightly emphasize up another non-Orc monster for the Mines to provide
it a little more variety and counteract those slow, slow retreat tactics.

Wargs get a bit more speed, AC, and now hit for more than plain yaks
since they're usually fought past Lair. In exchange, a bunch of Lair and
Orc entry vaults use only one warg at most, and otherwise use wolves in
their stead. Some pre-Lair D vaults have also had wargs a bit weakened.
They could probably do with an actual gimmick eventually (letting plain
orcs ride them?), but this should help notice them in the right spot.
Some future commit can just refer to this particular essay again.

--------------------------------------------------------------------------------
98b32277e7 | gammafunk | 2023-12-15 19:13:29 -0600

fix: Properly check some clua hook return values
For the hooks for scrolls of identify/enchant weapon/brand
weapon/enchant armour, only attempt to use the returned character if
it's actually a letter.

--------------------------------------------------------------------------------
843723b269 | gammafunk | 2023-12-15 19:13:29 -0600

feat: An clua item field for enchantability
This addes an is_enchantable boolean property to the clua item class,
allowing callers to know whether they can enchant an item without
performing complex calculations based on item information on their own.
Items that don't have a known plus value return true for this property.

--------------------------------------------------------------------------------
e217f1483f | Nicholas Feinberg | 2023-12-15 16:57:06 -0800

Uncomment an important line
Oops! (!!)

--------------------------------------------------------------------------------
932532b177 | Nicholas Feinberg | 2023-12-15 16:55:18 -0800

Remove an antique comment
Demonic runes can no longer stack, for a variety of reasons, so
there's no need to clarify *why* they can stack even with different
colours.

--------------------------------------------------------------------------------
a1d457b083 | Nicholas Feinberg | 2023-12-15 16:53:57 -0800

Don't print control hints for monster
The monster IRC bot, that is.

--------------------------------------------------------------------------------
567cc9bd90 | Nicholas Feinberg | 2023-12-15 16:44:50 -0800

Slightly tweak Vaults branch description
Crawl has so, so many 'madmen'. Let's continue substituting more
interesting and evocative words until we get down to a reasonable
baseline level of madness.

Really this could use a full rewrite, but this will do for now.

--------------------------------------------------------------------------------
19c8a159c1 | Nicholas Feinberg | 2023-12-15 16:43:57 -0800

Tweak prismatic gem description (regret-index)
🌈

--------------------------------------------------------------------------------
67763e304b | Nicholas Feinberg | 2023-12-15 16:41:26 -0800

Rename obsidian -> midnight gem (hellmonk)
We already have an obsidian rune, and that's in a different branch.

--------------------------------------------------------------------------------
5f21a37ad4 | advil | 2023-12-15 19:25:56 -0500

build: fix mutation test failures from mutated humans
The `mut_species.lua` test, as part of its cleanup, relied on humans
being mutation-free. This would break the following test
(`mutation.lua`) which assumes that its character starts mutation-free,
when the two are run in sequence.

--------------------------------------------------------------------------------
aba747a4dc | Aliscans | 2023-12-15 19:21:27 -0500

Fix compiling with NOWIZARD.
The wizard option is defined in NOWIZARD builds. Define an enum it
relies on then.

--------------------------------------------------------------------------------
5bc90fcf8d | advil | 2023-12-15 18:57:45 -0500

fix: don't crash on gems in the known item menu

--------------------------------------------------------------------------------
18113328f3 | advil | 2023-12-15 18:44:23 -0500

build: possibly fix tag upgrade CI build

--------------------------------------------------------------------------------
57893ffec4 | Nicholas Feinberg | 2023-12-15 12:56:15 -0800

Fix gem crash (oops)

--------------------------------------------------------------------------------
7e0a1e9799 | Nicholas Feinberg | 2023-12-15 11:00:36 -0800

Remove Me(teoran)
Following on from the last two commits, Gems now serve the purpose
that Meteorans were intended to, and Humans have taken their healing.
Meteorans can now fly on to another star. Farewell, sweet princexes!

I have a new species to fill Meteoran's "slot" in-progress, but the
current planned 0.31 release is too close for it to land yet. More
on this in the next few months, with any luck.

--------------------------------------------------------------------------------
f11e229afd | Nicholas Feinberg | 2023-12-15 11:00:36 -0800

Give Humans exploration healing (elliptic)
Humans have long been thought of as rather bland. The intent is for
them to be a vanilla 'baseline species', but that excites very few
players in practice.

Let's move them even closer to baseline by moving their XP apt down
to the default, and give them Meteorans' exploration healing in
exchange. Humans are natural explorers, after all!

This might encourage some fun new playstyles. Numbers, as ever,
subject to change. (elliptic thought we should double explore healing,
but I want to try baseline healing first.)

--------------------------------------------------------------------------------
866d48a76e | Nicholas Feinberg | 2023-12-15 11:00:36 -0800

Add gems
When I added Meteoran (1352289c90d, based on Hellmonk's ad05b8d819def),
I wanted to give players a fun way to engage with time pressure. When I
play, I really enjoy the feeling of exploring on less than full HP and
making choices about which areas to explore. (Full clearing everything
carefully can be fun, too, but variety is the spice of life!) I'd hoped
to find a way to bring that playstyle to the wider playerbase, with time
limits that are more defined and achievable than the harder and fuzzier
goal of 'compete for a high score'.

Some people, including myself, really liked Meteorans! But a large
number of players, probably the majority, found them stressful and unfun.
That isn't the end of the world - I'd much rather have a species which
20% of players love and 80% hate than one which 99% of players don't care
about one way or another. But I'd also hope that we could do better.

Gems are intended to be an alternate approach to the 'time pressure'
playstyle. They're a new type of collectible item, appearing at the end
of DOLESAPNMVCWUZ - basically, all the non-portal, non-temple branches of
a 3-rune game. Each gem has an associated time limit, which ticks down
while the player is in their associated branch. When that time runs out,
regardless of whether the player has gotten the gem yet or not, Zot rudely
smashes the gem into ten thousand pieces.

The intention is to allow several different ways to interact with gems:
- Ignore them, or not even realize they exist. This is intended to be the
  primary/default interaction.
- Dive to grab gems, but not bother trying to keep Zot from smashing them.
  This is a 'lightweight' speedrunning playstyle, a bit like the Speed
  Demon I tournament banner.
- Keep one or more gems intact by only exploring part of a branch, perhaps
  opting to 'go for it' when your character is feeling especially strong.
- Try to grab all gems and retrieve them all intact. This is roughly
  equivalent to the old Meteoran playstyle.

Gems have absolutely no mechanical use within the game. They offer a very
minor score bonus (10k points each), as a bonus for new players who look
at scores for unwon games, but shouldn't affect normal play or speedrunning
in any way.

Getting the Orb of Zot shuts the timer off. One could skip branches, get
the orb, and then clear branches while holding the Orb to get gems with no
time limit... but orbrunning is its own form of time pressure, and I'm
skeptical this would be easier than playing 'normally'. :)

Time limits are currently set on a per-branch basis. Lair, Vaults, and
Depths have longer time limits than they did for Meteoran, to allow for
large levels and travel time, while Slime and Zot are shorter. However, I
would be startled if these time limits stuck - I personally suspect most
of them are too tight for species which *aren't* as strong as Meteoran.
We can experiment.

The good gem tiles are by Sastreii, the bad ones are by me. :)
Credit also to ellpitic for helping to set me down this path.

--------------------------------------------------------------------------------
0d9d05ade9 | Nikolai Lavsky | 2023-12-15 15:33:12 +0300

feat: make wizmode &H command heal a few more statuses

--------------------------------------------------------------------------------
abc64e778c | regret-index | 2023-12-14 21:06:46 -0330

Volcano quick review
More spiky outlier nerfing and weaker vault buffing. We also don't need to
name exactly one layout's transparent stone as special glass. Alongside
that:

 * Hell hogs and fire crabs in the beastial monster set are keeping about
   even killpace, even though the crab gets less company in most
   arrangements compared to the hog. They're now swapped in tiering.

 * Salamanders are the strongest Volcano killers by a lot due to mystic
   hasting, so they now get nerfed equipment in the same fashion hell
   knights are nerfed. (This mostly means no shortbows.) This won't be
   too much of an overall volcano nerf since so many of the weaker layouts
   were buffed, anyway.

 * There's now about a ~1.6% chance each for granite and dragon-blood
   talismans in the normal fire-res / aux armour / dragon scales slot per
   volcano, as thematic fits, for further light talisman distribution, and
   to further distinguish the rewards from ice caves.

Never really going to be settled here until toenail golems actually get
a gimmick, of course.

--------------------------------------------------------------------------------
aa9e43cceb | DracoOmega | 2023-12-14 17:52:57 -0330

Fix a duplicated -Scroll light

--------------------------------------------------------------------------------
105cd16510 | DracoOmega | 2023-12-14 17:43:40 -0330

Don't refuse to break charm when attacking charmed things
Apparently they still had ATT_HOSTILE under the hood and it was just
supressed. Now just 'check_attitude' instead, which accounts for this (and
other sources of false friendliness).

Behavior code is a tangle sometimes...

--------------------------------------------------------------------------------
c6352e7e69 | Kyle Rawlins | 2023-12-14 13:53:51 -0500

fix: don't crash on call canine familiar
Repro instructions (Implojin): drink !invis, cast call canine familiar.

Prior to this commit, the game would crash if an inugami `ghost` was
accessed by side effects of `create_monster`, which was possible (e.g.
if there was an invisible actor nearby, a behaviour_event was triggered
immediately before the return to the casting code). Generally,
ghost_demon code assumes that the ghost gets fully set up in
`create_monster`. This commit initializes a ghost object there at least
so that it won't crash (along with a bit of tweaking of the starting hp
values), and then finishes initialization in the spell, where there is
access to spellpower. I'm a bit concerned about spreading this out being
somewhat brittle (I don't think any existing ghost demons do this so
there may be violated assumptions), but it seems to work in some quick
testing.

--------------------------------------------------------------------------------
4b27ddf301 | DracoOmega | 2023-12-14 13:30:42 -0330

Make recasting canine familiar also cleanse it of poison
There were some complaints about needing to babysit your dog after battle,
if it was poisoned, to prevent it from passively dying while you rested -
exacerbated by how monster poison is non-deterministic and can sometimes
last much longer than anticipated. Now, at least, you should only need to
heal it once in most cases.

I could see the argument that it should just have rPois instead, but even
if wargs have it, I'm a *tiny* bit reluctant to give that out at old hound
power - and it doesn't even fix the underlying issue completely, since
there's still a *chance* that they get poisoned anyway.

(I also considered just making it outright impossible for an inugami to
die to poison ticks, but that might feel weird...)

--------------------------------------------------------------------------------
91106424db | DracoOmega | 2023-12-14 13:21:07 -0330

Don't claim 'Nothing appears to happen' when Chaos weakens a monster

--------------------------------------------------------------------------------
7b04074989 | DracoOmega | 2023-12-14 13:03:29 -0330

Fix broken inugami see invis
They already had the M_SEE_INVIS flag and it was never intended that they
lose it compared to existing dogs, but apparently if monsters have a
ghost_demon struct, the game looks there and only there for whether they
should be able to see invisible.

ghost_demons are weird.

--------------------------------------------------------------------------------
25cd97262b | Implojin | 2023-12-14 05:29:20 -0600

Fix some x hover invis messaging (Lici)
Lici reported an e(x)amine hover messaging bug: If a monster couldn't see the
player, and the monster began petrifying, it would lose its "can't see you"
x hover text.

This was being caused by the MB_CANT_SEE_YOU flag (from 85c4641d08) being
set based on find_stab_type. That function returns the highest priority stab
it finds: several of them have higher priority than STAB_INVISIBLE, and if
any of them applied, it would cause MB_CANT_SEE_YOU to remain unset,
regardless of whether the monster could see the player.

--------------------------------------------------------------------------------
f58a9bc654 | regret-index | 2023-12-14 04:38:18 -0330

Add alligators to zombie lists, display AF_DRAG in the monster list
Alligators aren't the strongest zombies for extended, but they've still got
a mechanically distinct thing to throw around since dragging always works
if it does any damage. Might also help for restricting Crypt's derived
undead list away from "literally _everything_ in the game", eventually,
considering the weird stuff like orb guardian zombies that gets now.

Since 5a15c83 highlighted reaching, constriction, and trample for the sake
of determining which derived undead get a given attack flavour amongst
other monsters sharing the same tile / glyph, it seems reasonable to add
croc and alligator dragging to the list for the sake of ossuaries and the
aforementioned earlier zombies.

--------------------------------------------------------------------------------
a3aaffb735 | DracoOmega | 2023-12-14 04:36:29 -0330

Assign blame to protean progenitors for the monsters they create

--------------------------------------------------------------------------------
0136665373 | DracoOmega | 2023-12-14 03:28:33 -0330

Make inugami instant attack happen whether it has cleaving targets or not
So that recasting the spell can still provide a little extra offense even
in one-on-one situations.

--------------------------------------------------------------------------------
61f25df15f | DracoOmega | 2023-12-14 03:28:33 -0330

Fix a crash with Canine Familiar and attempt to future-proof
The CANINE_FAMILIAR_MID prop was supposed to exist if and only if the
familiar was alive, and be automatically removed whenever it ceased to be.
Stairs, at least, seem to violate this, and while that individual problem
could be fixed, it doesn't solve things for people currently trapped with
a prop and no dog.

Instead, have the function that determines whether your familiar is active
actually look for the dog itself each time, and clean up the prop if it
isn't there (which should fix currently broken games as well).

--------------------------------------------------------------------------------
e37a338825 | David Lawrence Ramsey | 2023-12-13 23:41:39 -0600

Call trog_wizard arcanist a wizard again (#3379).

--------------------------------------------------------------------------------
50297eb6a4 | Implojin | 2023-12-13 22:06:14 -0600

feat: Menu colouring and search tags for evokers
Elemental evokers are quasi-artefacts now, so it makes sense to give players
a UI heads-up that they're special. This commit colours elemental evokers in
menus as though they were unrands, adds a stash search alias for evokers on
ctrl+f, and lets players easily redefine evoker menu colour in their rcfiles.

This commit also exposes a clua check for whether an item is an xp evoker:
`item.is_xp_evoker`.

--------------------------------------------------------------------------------
6819f34284 | regret-index | 2023-12-13 23:02:46 -0330

Fix a vault's Zot placement.

--------------------------------------------------------------------------------
548ab4fc23 | David Lawrence Ramsey | 2023-12-13 18:51:12 -0600

Fix warning if Beogh can't give an orc an orcbow.
The message now says "orcbow" instead of "crossbow".

--------------------------------------------------------------------------------
fd5aef93c1 | DracoOmega | 2023-12-13 21:13:37 -0330

Don't make all monster cleaving attacks cost no energy
It was *removing* ENCH_INSTANT_CLEAVE after the attack, but not actually
checking first to see if the monster even had it...

I'm so, so sorry you poor people....

--------------------------------------------------------------------------------
a05e42328c | David Lawrence Ramsey | 2023-12-13 16:08:13 -0800

Fix references to magic resistance instead of willpower, part 3.
The function hex_success_chance() names its first parameter wl, but the
prototype for the function names it mr. Change the latter to wl.

--------------------------------------------------------------------------------
bc79757a61 | David Lawrence Ramsey | 2023-12-13 16:08:13 -0800

Fix references to magic resistance instead of willpower, part 2.
Rename the function _foe_mr_lower_goodness() to
_foe_wl_lower_goodness().

--------------------------------------------------------------------------------
29ed27f178 | David Lawrence Ramsey | 2023-12-13 16:08:13 -0800

Fix references to magic resistance instead of willpower, part 1.
The monster enchantment enum is ENCH_LOWERED_WL, but the name given for
it in enchant_names[] is "lowered_mr". Change it to "lowered_wl".

--------------------------------------------------------------------------------
3cdb644a07 | DracoOmega | 2023-12-13 19:50:47 -0330

Make some new monsters ineligable to generate as derived undead
Either because they won't function meaningfully or outright cause a crash.

--------------------------------------------------------------------------------
ce794a2c1e | regret-index | 2023-12-13 19:19:10 -0330

fix the build from a merge conflict

--------------------------------------------------------------------------------
5927ffeb39 | regret-index | 2023-12-13 19:13:55 -0330

Chaos: don't roll vampirism if the attacker's at full HP (elliptic)
Another particularly obvious part of chaos seeming to do nothing with the
recent repeated attempts to make it not roll useless effects.

I'm not sure it's reasonable or plausible to make it always _show_ an
effect, since elec and vamp both still have those brands' own respective
75% chance and 40% chance to not actually activate. (We could make some
special case hacks, but that's quite a bit of ugly work.) Still should
continue to buff the brand into actual higher tiers of interest.

--------------------------------------------------------------------------------
ab4aac0091 | regret-index | 2023-12-13 19:13:55 -0330

New arcanist, occultist, and necromancer tiles by Sastreii
Should help with not confusing the former two, who of course would be very
insulted by the notion.

--------------------------------------------------------------------------------
f7ac9a977b | regret-index | 2023-12-13 19:13:55 -0330

Buff Ghoul MP apt: -1 -> 0 (elliptic)
If we're going in on ghouls having very specific apts to try to cast with
as an alternative to unarmed on a species that can't shapeshift then I
guess we're going all in.

--------------------------------------------------------------------------------
ea7044e769 | regret-index | 2023-12-13 19:13:55 -0330

Cut dragging reapers from Demonic Guardian (monkooky)
Reaching allies dragging enemies closer is mostly a downside for players,
alas. Maybe in the future there will be something more interesting and
stronger than lorocyprocas in the 2s tier for Demonic Guardian to use?

--------------------------------------------------------------------------------
2d1116f657 | regret-index | 2023-12-13 19:13:55 -0330

Adjust Dr stormcaller and shifter spells, Dr monk monster melee
 * While komodo dragons appearing in Summon Drakes helped it out a little
   before rime drakes and wind drakes were added to the list, their
   harmless nature in Zot is a bit conspicuous with the stormcallers'
   Qazlal flavour- they're neither cloud-focused nor elemental. As such,
   they're gone from the list, mostly going into the options that aren't
   swamp drakes.

 * Draconian shifters having both Blink Range and emergency Blink Away is
   very silly and distracting, considering they've already got three
   different distinct spells. The emergency Blink Away has been changed
   to an additional chance to cast more Blink Range, so they can still
   remain in ideal range for dispel breath / encircling.

 * While the point of Draconian Monk monsters in Zot is that they're not
   particularly flashy on any spell fronts or even weapons and instead just
   hit the player with pretty aggressive melee (and thus are notably the
   only nonbase draconian that can be berserked), they've lost a bit of
   their luster over time. Most of the other draconian classes have been
   reasonably focused down and cleaned up, with draconian knights being the
   most notable for getting to haste without dropping the ability to toss
   out lightning bolts and icicles.

   Giving the draconian monk monsters in Zot AF_FLANK helps round out that
   mechanic's otherwise rather early focused appearance, reasonably fits
   their martial-arts focus and theme, and is clearly not too much
   currently due to draconian shifters tossing off plenty of Blink Allies
   Encircling. They lose a tiny amount of health in exchange.

--------------------------------------------------------------------------------
dfa497c050 | regret-index | 2023-12-13 19:13:51 -0330

New monster: protean progenitors, for Zot
Zot hasn't gotten new monsters besides the addition of then-new ghost moths
13 years ago (8d1b968), or the swapping of fire and ice dragons for already
present prior quicksilver dragons 7 years ago (0b18a7b). Most Zot work
across Crawl's development has been more oriented on adding more and more
stair vaults to Zot or fixing up the non-top-tier monsters otherwise
present: tmons constrict / demonic berserk, curse toe summons, death cob
attack brands, klown chaos, lich and draconian class spells. This is
entirely reasonably behaviour that has relatively evened out Zot's threat
level over time, but it has been a very restrained and compact set for a
while. It wouldn't hurt to try out more. Especially stuff that can break up
Zot's heavy reliance on relatively conventional, highly established, and
spreading elsewhere draconians.

Protean progenitors are transmutations giants for Zot. The origins of all
the dungeon's countless shapeshifters, they first start off as relatively
simple foes- unarmed Irradiate casters with fast regen but poor defenses
and no resistances. When they die, however, they leave behind some last
children in some last new form as they violently split into piles of
'aspiring flesh'- by default two at HD 12, with increasing chances of a
third if it rarely rolls any lower HD. These non-attacking, non-moving
piles will over the course of a few turns polymorph into hasted, mighted
copies of whatever the giant originally tried to transform into, and
never transform again. At HD 12 over the glowing shapeshifter HD 10
default, this gives double-buffed options of e.g. fire and ice dragons,
unarmed ettins, tyrant leeches, alligators, jorogumo, and broodmothers.
A chance to review much earlier branch spawns as a surprise in every giant
provides a bit more variety of bands over Zot's many base and nonbase
draconian packs, while also hewing closer to the weirder spectrum of Zot's
many non-draconic non-elemental monsters.

For now, they eat up a bit of the base draconian and non-base draconian
bands weight, and spawn with a 33% chance to have a second one accompany
them- a quick objstat roll says there should be about 4 of them throughout
Zot and each of Zot's standard base draconians reduced from ~11 to ~10. The
exact strength of these are inherently difficult to assess, so they'll
probably need a fair bit of public testing to see how these work out- base
form's base stats, spawn count, and band count are all easily changed.
They've also only been added to a restrained number of vaults- ones that
span the bulk of Zot's current monster set, or that invoke chaos and flesh.
They might make for reasonable spawns on Mnoleg's level to lower their
reliance on ugly things and eyes, but for now are otherwise only in chaos
zig floors. If we get any other new big Zot monsters, it might be a good
idea to look at slightly reducing the overall spawn count as is done for
Lair.

(Severely placeholder tiles are mostly made of currently unused decade-old
rltiles for large abominations, small abominations, and glowing
shapeshifters, with palettes from Sastreii's ice dragon and radroaches.)

--------------------------------------------------------------------------------
f6b18e3e5b | DracoOmega | 2023-12-13 19:05:56 -0330

Awaken Forest tweaks
Adjust the duration to be a little more consistent (higher minimum duration
and a greater tendancy to be closer to the average).

Also change the cast logic. Previously they would only cast Awaken Forest
if at least one enemy was *already* adjacent to a tree. In practice, using
it if the player is *near* a tree in Swamp is still likely to constraint
future movement options in an interesting way, so now it checks if any
enemy is 2 tiles away from a tree instead.

I also raised the cast rate of it for druids somewhat - at least partially
to make up for 'gambling' that a cast will hit the player in future and
sometimes behind wrong. (Since they won't recast while it's active, this
should waste minimal turns).

--------------------------------------------------------------------------------
fa3c0d6efd | DracoOmega | 2023-12-13 19:05:55 -0330

Don't cancel Awaken Forest the moment you swing in a druid's direction
More specifically, the game was calling mons_att_changed() whenever the
player performed an offensive action at an enemy - even if that enemy was
already hostile. This was often harmless (if unexpected), but it did result
in two strange behaviors:

-Attacking a druid (even if you missed!) would immediately end its Awaken
 Forest effect as though it had changed sides.
-Attacking a tentacle (or tentacle head, like a tentacled starspawn) would
 cause all its tentacles to stop constricting anything they were
 constricting.

This attempts to only call mons_att_changed() after attacks if that monster
was not already hostile. (But behavior code is complex and I can imagine
there being some other scenario this misses.)

--------------------------------------------------------------------------------
958caa0173 | DracoOmega | 2023-12-13 19:04:16 -0330

Revamp Call Canine Familiar
The fact that CCF randomly rolled between different tiers of preexisting
canine based on player spellpower had always created some awkwardnesses.
The power jump between tiers could be dramatic, and when the summon
duration was higher, could even encourage rerolling to get a better dog.

This replaces the reliance on tiers of existing monsters by introducing a
new (spell-exclusive) canine that can instead scale smoothly in damage,
health, and AC based on player spellpower, without any breakpoints. No
more rerolling: now you always get the dog that you deserve.

But there's more! In an effort to have more 'interactive' summon spells
that don't simply fall into the hole of 'also throw a dog at it' along with
everything else you're summoning *and* emphasize the familiar bond more,
the spell has the following additional behavior:

-If your inugami dies, you are drained and cannot resummon it for a short
 while.
-Recasting the spell while your inugami is still active, instead *heals* it
 and causes its next attack (within a few turns) to cleave and cost no
 energy.

It should be individually a small bit stronger than the old dogs, and
encourage more interacting with it, to make best use of the healing and
cleaving, based on the situation.

All numbers associated with this ought to be vaguely reasonable, but are
still subject to change.

--------------------------------------------------------------------------------
dc8495921b | DracoOmega | 2023-12-13 19:04:16 -0330

Don't lie so blatantly about pandemonium lord max hp
While most pan lord stats were read from their ghost_demon struct,
max hp was read purely from their mon-data entry which meant it was often
blatantly incorrect. Non-spellcasting lords get a huge hp multiplier that
meant xv's displayed average could be nearly 100 hp less than the true
average - and we already show their spell set to the player, so this is
entirely knowable, but very misleading to less familiar players.

Since we already show entirely concrete numbers for almost everything else
they do - including many things that *aren't* derivable from their other
stats - just show their actual hp like we do for player ghosts.

--------------------------------------------------------------------------------
4ab8c38853 | Implojin | 2023-12-13 01:28:59 -0600

Fix some vital mutation messaging (cool 2)

--------------------------------------------------------------------------------
41278d8d1d | David Lawrence Ramsey | 2023-12-12 15:10:20 -0800

Remove spurious sticky flame reference in _ugly_thing_resists().

--------------------------------------------------------------------------------
5e5e916f41 | Implojin | 2023-12-12 06:47:09 -0600

Simplify rampage healing (ragingrage, elliptic)
Previously, Armataur's roll heal required its target monster to be at least
"easy" threat to provide regen, as an attempt to limit the incentive to kite
slow mons (like worms) around indefinitely for ongoing regen value.

This threat check made roll heal less intuitive and harder to explain to
players: Why didn't they gain regen from a particular rampage move? What
precisely constitutes a trivial monster? (What was the rcfile setting to
display threat, again?)

We can simplify this by removing the threat check -- it's arguably not worth
the complexity, given that kiting slow mons around can block off avenues of
escape, and isn't entirely "free" to begin with.

Perhaps someone will come up with a better way of limiting the slow mons
kiting incentive here; I'd still like to disincentivize that but I don't
think that making roll heal more complex for casual use by having a threat
component is the right way to handle this. Feedback welcome!

--------------------------------------------------------------------------------
e2c1a860ed | regret-index | 2023-12-12 02:25:13 -0330

Reduce excessive Gozag worship checks (PleasingFungus)
When moving gold to the top of monster corpse stacks for Gozag worshippers,
we can check if the player's worshipping Gozag at the start of that
function, not for literally every tile on the floor while moving them up.

--------------------------------------------------------------------------------
77787f6025 | regret-index | 2023-12-12 02:21:45 -0330

Make AT_RANDOM more random, tweak cherub and pan lord verbs
When 04f5058 added chaos weapons and first finished chaos spawn, they had
a random attack verb ranging across the enums of AT_HIT to AT_BUTT (the
predecessor of AT_GORE). A few years later on in 965a83c, refactoring
accidentally made it go from going between the two to choosing just those
two. Whoops. Since there's lots of weird attack flavours usually tied to
actual effects (trample, constrict, reach sting, engulf), it probably
should continue to handpick attack verbs, but the list could be wider.

Pan lords are properly using a random range across an enum, but this
lead to them falsely displaying trample and constrict messages when
their effects got de-coupled from their flavours (e.g. e5ae1c3). I'm
giving them the same random list as chaos spawn here, which is less
elegant but also doesn't show incorrect messages for an entirely flavour
selection.

Also, if the four verbs for AT_CHERUB are supposed to correlate to the
four heads biting / pecking / goring, then the human head just hitting is
boring. It now headbutts instead. That's what a human head does, right.

--------------------------------------------------------------------------------
a8fea8b373 | David Lawrence Ramsey | 2023-12-11 14:50:51 -0800

Add player ghost speech lines for Hepliaklqana, Uskayaw, and Wu Jian.

--------------------------------------------------------------------------------
c87f13db18 | David Lawrence Ramsey | 2023-12-11 14:50:18 -0800

Remove a duplicate amulet type for artefacts.

--------------------------------------------------------------------------------
bbe41ddc13 | David Lawrence Ramsey | 2023-12-11 14:50:18 -0800

Add a gemstone type and a ring type for artefacts.

--------------------------------------------------------------------------------
7cbfa2dbce | David Lawrence Ramsey | 2023-12-11 14:48:30 -0800

Add more fruit names to artefacts.

--------------------------------------------------------------------------------
6568d3517c | David Lawrence Ramsey | 2023-12-11 14:48:13 -0800

Add Dithmenos to the list of evil gods that Zin's Recite talks about.

--------------------------------------------------------------------------------
528c708208 | David Lawrence Ramsey | 2023-12-11 14:47:51 -0800

Add more Donald lines for Kikubaaqudgha.

--------------------------------------------------------------------------------
937bba79b8 | Zhang Kai | 2023-12-11 14:47:24 -0800

Update passives.txt

--------------------------------------------------------------------------------
ba30d56aa1 | Zhang Kai | 2023-12-11 14:47:24 -0800

Create shout.txt

--------------------------------------------------------------------------------
31f30a3bcb | Zhang Kai | 2023-12-11 14:47:24 -0800

Create miscname.txt

--------------------------------------------------------------------------------
809d50fed1 | Zhang Kai | 2023-12-11 14:47:24 -0800

Update monspell.txt

--------------------------------------------------------------------------------
2f54df98a7 | Zhang Kai | 2023-12-11 14:47:24 -0800

Update species.txt

--------------------------------------------------------------------------------
7ba04b7275 | Zhang Kai | 2023-12-11 14:47:24 -0800

Update spells.txt

--------------------------------------------------------------------------------
5f35260eb8 | Zhang Kai | 2023-12-11 14:47:24 -0800

Update items.txt

--------------------------------------------------------------------------------
2bb9357481 | Zhang Kai | 2023-12-11 14:47:24 -0800

Update monsters.txt

--------------------------------------------------------------------------------
2dc6425d64 | Zhang Kai | 2023-12-11 14:47:24 -0800

Update status.txt

--------------------------------------------------------------------------------
eb346b3e67 | Zhang Kai | 2023-12-11 14:47:24 -0800

Update mutations.txt

--------------------------------------------------------------------------------
f47eeb1b7f | CipHuK | 2023-12-11 14:47:06 -0800

Felid: update manual about Felids
Felids aren't fast any more

See 406407be8511ac9846d21bd4a51990ab4ce1dbb7

--------------------------------------------------------------------------------
273cecb5ae | Nicholas Feinberg | 2023-12-11 14:44:42 -0800

..

--------------------------------------------------------------------------------
13d87b7c24 | Nicholas Feinberg | 2023-12-11 14:44:27 -0800

More changelog fixes and tweaks (Monkooky)

--------------------------------------------------------------------------------
d88bbb8b4d | Nicholas Feinberg | 2023-12-11 11:04:46 -0800

Tweak the ORB's grab message (regret-index)
Flying skulls make "a hideous shriek", which isn't nearly as loud
as the ORB.

--------------------------------------------------------------------------------
60294ff2a0 | Nicholas Feinberg | 2023-12-11 11:02:31 -0800

More changelog updates and fixes

--------------------------------------------------------------------------------
57eb4e83fd | regret-index | 2023-12-11 14:52:32 -0330

checkwhite
...possibly the most lines checkwhite has ever checkwhite'd.

--------------------------------------------------------------------------------
9b43b03d93 | regret-index | 2023-12-11 14:45:56 -0330

Two quote additions, some quotes.txt clean-up
The new quotes are for abyssal stairs and the Petrify spell. The
formatting for either source might be a bit off, since we're inconsistent
about bothering with sections, years, or numbers for webcomics- if anybody
feels strongly about this, they should also go update the Order of the
Stick quotes alongside these two.

 * Potions of blood, sling bullets, and bolts all don't even have item
   descriptions, so they don't need quotes. Arrow quote now is used for
   Poison Arrow. (If we get new tiles and underlying code bothering to
   make hand cannons fire bullets, probably they could use the sling
   bullet code, but currently they fire bolts.)

 * Wizard quote has been given to arcanists and occultists.

 * Storm Form and Necromutation quotes have been put under the matching
   new talismans.

--------------------------------------------------------------------------------
f006fbbd5c | regret-index | 2023-12-11 14:19:27 -0330

Sort quotes.txt by category
On the outset of Crawl, quotes were sorted into a handful of different
categories. All the way back in 2013, 45418d0 and f5e63f4 ended up tossing
out the headers and sections into three alphabetical lists- entire monster
glyphs, then everything besides non-unique monsters and items, then generic
monsters and items. Since the second versus the third isn't a very obvious
or clean split, the former list ended up gaining both non-unique monsters
and items, while the latter list gained random spells and abilities.

As a chance to review the current state of various quotes, and since I
didn't want to add to the mess if I added any new ones, I've gone out and
made a bunch of new lists. They now procede in the following order:

 * Dungeon features
 * Dungeon branches
 * Spells and abilities
 * Items
 * Unique monsters
 * Vault monsters
 * Generic entire monster glyphs
 * All other monsters

Hopefully these don't get messed up over time either.

(I didn't sort out the non-English quotes.txt files, mostly because their
headers should also probably be in those languages.)

--------------------------------------------------------------------------------
c5c9b8f871 | regret-index | 2023-12-10 20:01:40 -0330

Let monsters get Dispel Undead (non-Range)
When Dispel Undead Range was created to split the melee and range versions
between players and monsters, the former wasn't put into mons_spell_beam.
This prevented monsters from getting it, which wouldn't normally be a
problem since monsters are mostly given Dispel Undead Range by default.
Player ghosts and player illusions, however, are supposed to get the
player's version of it, and since that works, we might as well give them
the shorter range version of it.

The hit dice of this can get fairly obscene for ghosts, but since it's not
a starter spell for necromancers and player ghosts were shoved into runed
door vaults, it shouldn't be too concerning for Mu / Vp / Gh players to
suddenly explode without at least some reasonable counter-measure
assessment. Should be a good sight in negative energy zigs and continue to
help fix up Illusion Card a little more, at least.

--------------------------------------------------------------------------------
4904f62167 | regret-index | 2023-12-10 19:55:39 -0330

Juggle around the t and l glyphs in console, sort some monster files
The 't' glyph in console contains crocodilians, tetsudines, and crabs.
There's not really any obvious grouping together of these- from a
taxonomic standpoint they're very far apart, from a casual association
standpoint either the crocodilians have no shells or the crabs look
nothing like the other reptiles, and from a Crawl standpoint they group
together three amphibious watery monster types very loosely considering
only the crabs breathe clouds and only the turtles are slow on land.
This could do with an update.

 * Alligators and crocodiles go on 'l' over 't' so the glyph can
   reluctantly fit together shelled animals. There's some taxonomic
   argument one could make about crabs joining other insects on 'B'ugs,
   but this at least has one casual grouping parseable and also doesn't
   leave the glyph stranded with all of two turtles.

 * Wyverns go into 'k' over 'l' for dra'k'es. As lindwurms were shoved
   into there alongside the drakes, it should sell an overall conceit
   of "fantastic lesser dragon" than a glyph that otherwise contains
   completely mundane repti'l'es and a strange lost shark.

 * Skysharks go into 'F' instead of 'l' so F can support flying fish
   alongside the current 'F'rogs. Even if this isn't much established
   yet (I do have plans...), there's no dedicated fish glyph since
   eels were moved to 'S'erpentine, and they're currently in 'l' just
   because wyverns were another flying 'l' than any other obvious fit.

Seperately of all of this, mon-data.h gets extremely messy past the two
alphabetical lists, so I've shoved some entries in there and mon-spell.h
back and forth. Those shouldn't have any in-game effects, though.
(dc-mon.txt is also quite messy, but at least that doesn't affect me
looking at spare glyphs for new monsters.)

(I'd be tempted to add a _monster_glyphs.txt for these revisions, but
7cdbcdd got rid of them all, so, go learn rc setting stuff if you protest.)

--------------------------------------------------------------------------------
b7303255ee | regret-index | 2023-12-10 18:08:04 -0330

Buffs for several recently changed / revived monsters
 * Frederick hasn't gotten a kill in the near-week since his new spellset
   was added, despite that being intended as a buff as well as a code
   streamlining. He now gets back back his lost HD and gains even more
   melee damage plus servitor cast rate, since his heavy gear +
   conjurations + servitor gimmick clearly can be pushed much further from
   his poor statistics for many versions prior.

 * Erica's kill-to-being-killed ratio has dipped slightly (5.4% -> 4.4%)
   since her human to octopus surgery. While she had more kills from Venom
   Bolt than Force Lance previously, the lower overall hex rate and the
   varied species with rPois both probably mean she lost a bit of danger.
   She now gets a bit more EV and more melee damage to focus a bit on how
   earlygame octopode melee can be quite strong.

 * Crocodiles aren't seeming too impressive since their return. Since the
   Sewer water moccasins they were replacing had more health, crocs could
   also do with a bit more HP and EV so they last longer to show off their
   new gimmick more.

 * Another Brain Bite tweak now makes it drains a minimum of 1 MP, to cover
   for the super-early very low MP values Sewer-delvers being rounded down
   to 0 when brain worms are looking for a percentage to burn.

--------------------------------------------------------------------------------
9e8fd56bc8 | regret-index | 2023-12-10 17:43:27 -0330

Add a symbol uniting the unequip-based artefact properties
There's been occasional reports that "drain" and "Drain" are confusingly
close to one another, it'd be nice to point people towards Contam being on
on unequip rather than on random damage, and there's now a Fragile status
alongside a Fragile artefact property. Adding a random symbol here shared
between the three of them should help a little bit with all three of these
concerns.

--------------------------------------------------------------------------------
bbf96558bc | regret-index | 2023-12-10 17:23:08 -0330

Shove in two more player -> monster spell equivalents for illusions/ghosts
Necrotise translates to Pain, Confusing Touch to Confuse. Both are
imperfect, but we've got a few examples of that already with Dragon's Call
-> Summon Dragon and Swiftness -> Sprint, and they're reasonably close.
Also, the current player to monster gap for starter background spells for
Illusion Card and player ghosts is incredibly high, so a little less
pressure would help a bit- this should get a little more attention in some
eventuality, so both don't drift off nearly as much.

--------------------------------------------------------------------------------
2d6e4551af | regret-index | 2023-12-10 10:32:06 -0330

Make dream sheep headbutt, not bite (#2740)
The Github issue in question seems to want to add a new AT_HEADBUTT, but we
seem to have made AT_HEADBUTT for... ugly things having random verbs... for
over a decade without using it directly anywhere else. It does seem to be
very easy to find videos of sheep headbutting people and one another and
other animals, while biting seems to only happen when they're overly feisty
while being handfed. So.

Closes #2740.

--------------------------------------------------------------------------------
9944ec47dd | Nicholas Feinberg | 2023-12-09 21:45:15 -0800

Don't dump runes' or books' origin
Runes and books haven't lived in players inventory for
a little while now, so no need to print their origin in morgues.

--------------------------------------------------------------------------------
d94f34c16b | Nicholas Feinberg | 2023-12-09 21:01:49 -0800

Bring Aizul's quote into a new era
This citation format might be wrong, sorry.

--------------------------------------------------------------------------------
60c0b14602 | gammafunk | 2023-12-09 21:25:39 -0600

feat: clua api support for inventory scrolls
This commit adds the clua hooks c_choose_identify,
c_choose_enchant_weapon, c_choose_brand_weapon, and
c_choose_enchant_armour, which allows users to choose targets for the
corresponding scrolls without a menu. These hooks all return an
inventory letter to indicate the target. If the target item isn't valid
for the scroll, the usual menu happens.

Add documentation for these and also document the
c_choose_okawaru_weapon and c_choose_okawaru_armour hooks.

--------------------------------------------------------------------------------
d935f9fcdc | regret-index | 2023-12-09 14:09:40 -0330

More brief chaos fixes
Mostly related to extremely short weakness. Yes, the five resistances
check is important, or else the policy of not rolling useless effects
on chaos (??) would be betrayed when hitting eldritch tentacles with
chaos (why are those acid immune anyway).

--------------------------------------------------------------------------------
f5c68a802a | Implojin | 2023-12-09 04:03:38 -0600

fix: Draw Dimensional Bullseye status icon in webtiles
This wasn't being drawn in webtiles builds.

If Sigil of Binding gets its own icon instead of TILEI_CONSTRICTED at some
point, it will also need this change to draw that icon in webtiles.

--------------------------------------------------------------------------------
f582fa60c8 | Implojin | 2023-12-09 03:38:46 -0600

Add a tiles icon for vitrified (Darby)
Thanks to Darby for the icon!

--------------------------------------------------------------------------------
ae6a2ecfb5 | regret-index | 2023-12-09 04:03:00 -0330

Rare effect quickfixes
Actually use the proper function for making monsters frenzy, also make the
vitrification text on monsters not be possessive for no reason. Maybe we
should get an icon for the latter now that it's any playable accessible?

--------------------------------------------------------------------------------
196b491b36 | regret-index | 2023-12-09 02:50:20 -0330

Step one of far too many for revising Chaos brand
Chaos brand is an absolute nightmare under the code, and also extremely
awkward as an actual design in practice. Players give the monsters with it
an extremely wide berth because of the banishment chance (which is actually
just 0.15%) and the very long buffs / debuffs list also attached, except
secretly the paralysis / slowing / petrifying effects were actually
invisibly casting a hex with power equal to the damage dealt. This was
actually pretty weak against the player's increasing AC and Willpower over
the course of the game, outside of mister super early Yiuf. (Meanwhile,
mushroom fist style AF_CONFUSE got a flat chance without a check, and also
chaos clouds made absolutely zero will / damage check to apply any of the
effects). In player hands, the weapon has a handful of miserable hits for
most of the game without ranged or summons- hasting or berserking a monster
is quite the betraying roll- and is also somewhat boring in the effects
it can actually get, regularly being rather common effects in the rest of
the game.

While there's been dev interest in revising this all for next version,
trying out more dramatic effects after they were culled out due to the
miscast streamlining, I'm doing some quick revisions now that make it
consistently somewhat dangerously yet while also reducing the most
dangerous individual effects from player or monster hands. This should
make it far less awkward to be desperately avoiding monster melee for a
sub-4% chance of an actually notable effect.

 * Chaos debuffs via the weapon brand and attack flavour both consistently
   ignore defender willpower now, with another flag added to beams. With
   how several different effects (confusion most notably) and clouds both
   didn't care about this, it's best to err towards the more dramatic for
   something we've been very cautious about spreading.

 * As compensation for the above and to have less hyper-rare rapid-death
   results, distortion has been taken off the regular weapon brands check
   (clearing off banishment) and paralysis is capped at exactly 1 turn
   (like Stunning Burst). On the player end of things, turning monsters
   into shapeshifters has been cut (poly does the same thing scaling
   better throughout the game), while monster berserk has now been
   replaced with Frenzied (keeping haste + 50% damage, losing HP buff,
   becoming neutral) like datura and Discord, which makes it more
   interesting as an upside and downside simultaneously.

 * Added as new effects to entice wielders and terrify victims are weak,
   corrosion, halved will, vitrifying, sleep, and ensnaring webs. Blink
   has also been isolated and preserved off of distortion. Agility's
   out barring a dramatic revision to it as a boring flat +5 EV.

 * Through some adjustments to the varied lists and another beam, both
   seething chaos clouds and Chain of Chaos has been updated to match the
   current non-brand effects list again.

Since we're not using most chaos monsters outside of the Abyss, there's not
too much concern to mildly nerf a few of them- they'll be far more
consistent in applying effects, anyway. Chaos spawn counts in a few earlier
vaults have been lowered or tiered higher, too.  It's probably worth
keeping an eye on Chaos Knight starting weapons, but most people actually
trying to win currently unwield those very fast, and this could do with a
fair bit of testing first. Probably should keep an eye on Malign Gateway
too.

TODO: make a chaos.cc that can handle these behaviours so that Chain of
Chaos doesn't desynch regularly, and so that clouds aren't faking a melee
hit of the person inside hitting themselves for zero damage to enchant
themselves with the chaos effects list. Also there's probably still more
effects to screw around with, too, like Devastator-style explosions,
random summons, brilliance, or cancellation. This is a relatively less
disruptive update for now, mostly aimed at making these all behave far
more parseably and more usably.

--------------------------------------------------------------------------------
eb876a39b7 | elliptic | 2023-12-08 20:23:19 -0500

Fix Oka never gifting plain javelins (acrobat, Ge0ff)
Unintentionally changed in 073b73dc.

--------------------------------------------------------------------------------
cee99d1eea | Nicholas Feinberg | 2023-12-08 09:40:30 -0800

Give fleshy orifices teeth (Sastreii)
Yum, yum, yum!

Avoiding the obvious ref to the term rhyming with 'Hakuna Matata'.

--------------------------------------------------------------------------------
36d1ea7889 | Nicholas Feinberg | 2023-12-08 09:32:45 -0800

Bullseye status icon (Sastreii)

--------------------------------------------------------------------------------
593ecc88b7 | Implojin | 2023-12-07 21:53:13 -0600

Gently nerf Armataur HP gain
Player response to rampage healing has been great! Lots of feedback like
"I was in a bad situation, and then rolled to get some regen and I felt
really smug about it." Good stuff.

At has been slightly overtuned for a while now, though, and rampage healing
seems to have made this issue worse. I'd like to tone down Armataur
slightly before the upcoming 0.31 feature freeze / tournament.

Hopefully these changes will result in At being a bit more balanced.
We'll see how this goes!

--------------------------------------------------------------------------------
f211197f41 | Nicholas Feinberg | 2023-12-07 16:40:45 -0800

Describe AF_ACID damage (dilly)

--------------------------------------------------------------------------------
800acc2fd1 | gammafunk | 2023-12-07 16:24:42 -0600

fix: checks for chaos flaming and freezing (hellmonk)
A similar issue to that fixed in 831ba139. Use the correct checks for
allowing these brands from chaos. The current checks looked for "fiery"
and "icy" monsters respectively, which does cover a bunch of monsters
immune to fire damage, but not all of them. Instead we check that the
target is either the player (who can never be fully immune to
flaming/freezing) or, for monsters, if it has less than 3 levels of the
relevant resistance, otherwise it would be immune.

--------------------------------------------------------------------------------
831ba139f3 | gammafunk | 2023-12-07 15:28:59 -0600

fix: A check for chaos electrocution (TheMeInTeam)
When the chaos brand chooses an effect, it's supposed to omit any brand
results that would have no effect on the target. The electrocution chaos
result was missing the necessary electricity resistance check and was
getting selected only to have no effect, so add this check.

--------------------------------------------------------------------------------
24c7c7037b | Nicholas Feinberg | 2023-12-07 11:52:50 -0800

Add Serpent form tile (Sastreii)

--------------------------------------------------------------------------------
12f98b27bc | regret-index | 2023-12-07 03:51:19 -0330

checkwhite

--------------------------------------------------------------------------------
5e5e084c30 | regret-index | 2023-12-07 03:23:01 -0330

Bring back crocodiles with AF_DRAG as mostly Sewer & Ossuary exclusives
Much like the return of brain worms, this is meant to help with Sewers
having very little besides monsters slightly earlier or later than the D
floors surrounding the game with, while showcasing a mechanic for new
players to see much later on. With slightly reduced stats to compensate
for their new AF_DRAG mechanic, they replace the water moccasins that
alternate with Pargi that will be seen not too much later in D itself
and fit into a few other gimmickless, chaotic sewers.

Unlike the return of brain worms, they admittedly aren't super thematic
monsters to fit much elsewhere without being somewhat redundant in some
role or another (sewer-depth crocs aren't much interesting for Lair), so
the secondary use of them is for another early D portal instead.
Ossuaries technically are using zombies and mummies alongside a variety
of weaker enemy types, but are also severely inconsistent in threat
level by only having a single ossuary each use conceits such as live
scorpions, undead centaurs / bees, spectrals, or flying skulls. Undead
crocodiles fit the Egyptian theming attached to mummies and are also
used in a handful of the noticeably weakest Ossuaries.

(A very small number of other vaults have gotten them back or may access
them, but only in sprints or early D. I poked at a few of the weaker
ossuaries while I was here adding the monsters to them, but I ought to take
a longer look at the high ends and low ends of both portals sooner or
later.)

--------------------------------------------------------------------------------
adca813884 | Nicholas Feinberg | 2023-12-06 17:45:32 -0800

Revert "Print monster names for unseen shouts"
Pushed accidentally.

This reverts commit d8d442875f0fa2de3af95ba7ff780a7c650386eb.

--------------------------------------------------------------------------------
224063c1d0 | Nicholas Feinberg | 2023-12-06 17:44:53 -0800

Add S_SQUEAK (bloodnok)
The set of monsters affected here is too funny to not borrow.

--------------------------------------------------------------------------------
d8d442875f | Nicholas Feinberg | 2023-12-06 17:17:16 -0800

Print monster names for unseen shouts
So players don't have to look up what on earth makes "a rustling",
or what the difference between a skittering and a faint skittering is.

Might give too much info for shout luring. Maybe should disable for
some common shout types, eg shout, roar...

--------------------------------------------------------------------------------
41b13fce57 | Nicholas Feinberg | 2023-12-06 17:16:34 -0800

Lint

--------------------------------------------------------------------------------
4be0acca3a | regret-index | 2023-12-06 21:27:17 -0330

Tell the monster bots about AF_DRAG.
Whoops.

--------------------------------------------------------------------------------
42354c1e67 | regret-index | 2023-12-06 21:21:01 -0330

Grant AF_DRAG to alligators and reapers, with stat nerfs
Alligators have been pretty vanilla beyond having variable speed via
sprinting, which was removed from them in ccde610 for being a weirdly
inconsistent speed (and part of messily precise seperate action speeds)
rather than any interesting innately. They've got a reasonable position as
regular melee monsters since Swamp's twin monster revisions, but it
wouldn't hurt to give them a mechanic of their own, and there's already
plenty of interest in Swamp in screwing with movement (roots, briars,
woodweal, sludge, harpoon) that AF_DRAG should fit the branch as well as
their flavour perfectly fine. It might be a little close to the last in
the list, but Force Lance and Primal Wave coexist with tramplers and
Airstrike + Waterstrike exist in the other liquid branch- monster melee
and conjurations have such different dynamics it's fine for them to have a
little bit of overlap.

Reapers are in a weird position currently. They've got a straightforward
theme useful in a variety of different vaults by being big-damge reaching
branded weapon wielders, but despite their high damage they're not
particularly noticeable as threatening monsters within their supposed
normal spawning position of Summon Greater Demon or Pan. They're in fact
most noticeable for Ice Caves, which is a weird position for a tier-2
demon threat. Not all of them can be hellions or tormentors or balrugs,
and it might be reasonable to shove them off into R glyph with efreeti
and rakshasa instead, but they could do with a little more of a trick.
Reapers pulling the player in so they can't escape death is pretty cool,
also.

Alligators get a minor hp nudge downwards to compensate for the buff.
Reapers get less HP, less damage, give more XP, _and_ ice cave reapers get
-4 enchantment on their scythes. They'll still be completely terrifying,
since characters with low EV can't walk away from them at all, but at least
they're definitely distinct and scary things even from SGD or in Pan.

There should be room for some other following uses of this mechanic...

--------------------------------------------------------------------------------
24261f851f | regret-index | 2023-12-06 21:21:01 -0330

New attack flavour - AF_DRAG
This acts as a reversed trample- when the attacker deals damage, they move
backwards and the target moves forward into the space the attacker was just
attacking from, as long as the monster moves back into an empty tile it
can inhabit and drags you to somewhere you can inhabit. Unlike trample, it
doesn't make any size checks, since most of what's intended to have this
isn't as big as elephants or dragons- just imagine them hooking and
dragging your feet / tail / smoke trail / whatever with them as they back
up. Also unlike trample, it will work with reaching weapons; the attacker
won't back up if you're a tile away, only if you're both adjascent. Like
trample, this still respects the mountain boots unrand, and is inherited
by the zombies of anything that attacks with it.

This is a somewhat scarier brand than trample in that usually the player
would rather be moved away from where they previously were rather than
pulled towards unknown territory, so it'll be substantially less prevalent
then trample's all elephants + all dragons + like three other eldritch /
demons. (It doesn't work at all in corridors with enemies behind them,
after all.) It otherwise shouldn't be particularly more jarring or weird
than how trample already slowly repositions players, anyway, and is
another simple way to continue to screw with player-monster positioning
with less direct other analogues than other effects currently heavily used.

(Note that none of these messages and names are set in stone.)

--------------------------------------------------------------------------------
46bab52692 | Nicholas Feinberg | 2023-12-06 14:46:52 -0800

Tweak flux talisman (acrobat)
To make shapeshifters feel less like heavy armour melee characters,
block use of body armour with Flux talismans. Give Flux +4 EV to
compensate.

--------------------------------------------------------------------------------
54a413c38e | Nicholas Feinberg | 2023-12-06 10:13:48 -0800

Rename anaconda -> serpent form
Match the name of the talisman and avoid direct parity comparisons
with the monster (which doesn't exactly match, since the monster
doesn't have rPois and the form now does). Would also be a good
excuse if we wanted to make the form not cold-blooded.

--------------------------------------------------------------------------------
8949418266 | Nicholas Feinberg | 2023-12-06 10:06:59 -0800

Give serpent talisman rPoison
It's inconsistent with monster anacondae, but still feels vaguely
intuitive to players (snakes are rPois, right?) and is a modest buff
for a somewhat underappreciated form.

--------------------------------------------------------------------------------
99969ba1bc | Nicholas Feinberg | 2023-12-05 19:02:34 -0800

Don't blame spriggan druids for their friends
We usually describe the ikiller as a band leader or summoner -
a creature with pretty direct responsibilty for its pal who just
killed you. Including spriggan druid convoking is a stretch. Should
ironbound convokers get blame, or guardian serpents, or any number
of buffing monsters..?

Basically, it makes the stats very hard to parse, which wasn't the
intent.

--------------------------------------------------------------------------------
0e810151a1 | regret-index | 2023-12-05 23:32:13 -0330

unbrace

--------------------------------------------------------------------------------
af5d62a200 | regret-index | 2023-12-05 23:16:47 -0330

Tomb card: use non-default wall tiles
When using the Tomb card, in sufficiently messy terrain or with lower power
leading to incomplete wall raising, it can be easy to forget which walls
will be the ones that'll eventually go down unless one bothers to check
over each surrounding wall. This ui quandry is due to it using the given
branch's default rock tiles, so over in Tiles it can be made clearer just
by using a distinct rock tile- I've chosen WALL_SANDSTONE for this, since
it's what's used in wizlab_dorokhole.

(Note to self: wall_sandstone is inconsistently used for rock or stone
in different vaults, should fix that to the former.)

--------------------------------------------------------------------------------
1471edab23 | regret-index | 2023-12-05 22:26:41 -0330

Cloud card: bring back select other cloud types
3194668 removed the variable cloud types from the Cloud card because the
damage options made it inappropriate for the deck it was in. While this is
a reasonable direction for it to follow, retaining the cloud-ring aspect
for harmless if opaque clouds mostly just makes it a very awkward version
of scroll of fog, for being centered on enemies instead of the player.

This re-adds different cloud types to the cloud card, but each tier uses
different types of debuff clouds rather than the old set of clouds including
poison, fire, ice, or acid clouds.

 * L0: mephitic fumes
 * L1: miasma
 * L2: calcifying dust.

Also, in the same spirit of encaging enemies it previously had, it once
more doesn't place directly on monster tiles (but now actually works for
non-wall tiles like fountains and open doors like it should), and they
also last less time than they used to. The later two clouds don't overlap
with condenser vane, and while there's some spell overlap the cloud ring
functionality making many monsters not move forward but getting debuffed
when they do should be a reasonably distinct effect compared to the
limitations of Cigotuvi's Dreadful Rot, the will-check of Petrify, and the
cloud lines of Elements card catoblepas summons.

(Possibly Nemelex should reward very slightly less cards if any more cards
get revised at this point, but escape cards are already usually just
stacked or triple-drawn from outside of pretty earlygame, and the sheer
power of Tomb, Elixir, or higher-power Exile still look much better off
than this.)

--------------------------------------------------------------------------------
6a32cc10e0 | Nicholas Feinberg | 2023-12-05 16:44:24 -0800

Fix E display for felid lives
Broken in 51874910468ad3864b802425bf3022.

--------------------------------------------------------------------------------
ec03705108 | Implojin | 2023-12-05 15:23:17 -0600

feat: Let randart orbs have spell enhancers (Lightli)
This sounds like it could generate some fun orbs. Let's try it out!

As part of enabling enhancer artps for orbs, this commit also
increases enhancer generation weights for both randart staves and orbs:
The previous weights were low enough that these ARTPs were vanishingly
rare on orbs.

Weights for enhancer artefact properties are now slightly lower than Harm:
Still pretty rare, but significantly more common than they were.

--------------------------------------------------------------------------------
406407be85 | Nicholas Feinberg | 2023-12-05 13:14:54 -0800

Felids: increase HP, nix fast move (Lici)
Felid low HP is interesting. It's a very good fit for felids both
thematically and mechanically, in that it encourages engaging with
the extra life system - getting randomly obliterated by an orc
priest, centaur, etc, is compensated for by coming back to life
afterward. Still, there can be too much of a good thing, and playing
around the *extreme* fragility of felids can be tiring.

Fast movement is thematically cool, and feels vaguely appropriate
for cats (slippery little things!). However, the gameplay is not
particularly good, especially with species like felids which are
only *slightly* fast. Scooting five steps for every space cleared,
shot taken, etc, is a high keypress to meaningful decision ratio.

Let's try something a bit different. Bump up felid's HP apt (from
-40% to -30%) and cut their fast move. Boost int and stat growths
a bit to help caster felids (who used the fast move more), and tweak
apts to avoid this being too big a boost to late-game shapeshifter
felids (who had their speed mutations melded anyway).

See also 51874910468ad3864b802425bf30220b4fa1e95e.

--------------------------------------------------------------------------------
e66bdc89e9 | regret-index | 2023-12-05 16:33:56 -0330

Swarm card: more bee types
The Foxfire to Swarm card swap is understandable in the number of different
monsters that had been lost to the former card over time, making it harder
and harder to parse the "big number of flying enemies" theme. Poor ravens,
red wasps, bumblebees, insubstantial wisps, and vapours.

However, 1d6 and 1d9 bees at higher power is also just really unimpressive
and unexciting compared to the rest of Nemelex's summon cards, and there's
three bee types already available for the card to rely on. Since another
summons card was just nerfed, reaching out to those should be fine, and
since they're all still groupable together as bees, it shouldn't be too
much more complexity overhead.

The 1d3 killer bees at the bottom end of the Swarm card isn't changed by
this commit, but the second tier is now 1d4 bees plus a queen bee, and
the third tier is now 1d5 bees plus a queen bee plus three meliai. They're
all still quite frail summons, but it should be interesting to have queen
bees as a support summon mixed in amongst the rest, and they'll still fall
off against higher AC and AOE later on anyway.

--------------------------------------------------------------------------------
1a011fea95 | regret-index | 2023-12-05 16:13:06 -0330

Elements card: more summon swaps
 * Replace the fire vortex summon with a solitary fire bat. While they're
   technically weaker, the fire bats fit the beasts theme as opposed to a
   raw elements theme, and also they're not awkwardly perma-confused allies.

 * Replace the iron golem summon with a war gargoyle. Also weaker, but this
   is substantially less awkward than the number of times and ways one may
   want to swap around and speed up the obscenely strong, basically
   unkillable, and also slow melee-only ally. Also, more motile ranged
   emphasis in Nemelex's summoning cards helps distinguish the decks from
   the Summonings school as well as from other gods' summoning invocations.
   (It even introduces a nice curve of 2/4 -> 3/4 -> 4/4 ranged summons!)

--------------------------------------------------------------------------------
73d24e4865 | Nicholas Feinberg | 2023-12-05 10:04:26 -0800

Tweak docs for species intrinsics

--------------------------------------------------------------------------------
b247575874 | regret-index | 2023-12-04 22:47:31 -0330

Frederick buffs and spell revisions
Frederick's current killratio, even for a lategame unique, is currently
very sad- over the past 16 months of recent versions it's a paltry 0.27%.
Spellforged Servitor is a cool gimmick, but with various player magic
overhauls it's meant a fair bit of special-casing for spells the player can
no longer cast, and the other conjurations are all relatively common spells
from a multitude of other lategame enemies currently available. An update
can help deal with all of these matters at once.

Frederick now loses Iron Bolt, Bolt of Cold, and Force Lance for the new
spells of Plasma Beam and Bombard, while keeping Spellforged Servitor
which can cast those both. We seem to be fine with these spells on player
ghosts, anyway, and it can introduce interesting complicated ally targetting
tactics as another distinct gimmick alongside the Servitor amplifying this.
Since Plasma Beam does extremely high damage in monster hands, he gets a bit
of an HD nerf. (It's more resistable than his prior spellset, at least.)
Since Bombard is knocking him away from melee more (and since phials of
floods / scrolls of silence neuter him a lot more than other uniques), he
gets a bit more health and a bit of a damage buff. Hopefully he should
catch up to all the surrounding power creep here for another 8 years.

(In converted saves his servitor won't do anything, but also, a single
unique having 1/4 spells not work is probably not worth the compat tag.
TODO: adjust another unique to use ice magic to compensate for this
contributing to uniques fire bias?...)

--------------------------------------------------------------------------------
2d9f522bd3 | regret-index | 2023-12-04 22:47:31 -0330

Make red very ugly things not lose AF_FIRE for AF_STICKY_FLAME
AF_STICKY_FLAME made sense as an upgrade mostly when there was still item
destruction; when we lost item destruction in 0.15, sticky flame's
non-scaling damage made it pretty harmless beyond pretty early parts of the
game. Sticky flame could do with a new mechanical purpose, but until it
gets it, it is probably for the better that something so prominent in
3-rune winning games as 19 seperate spawns isn't noticeable weaker than its
default form if it rolls the wrong element.

--------------------------------------------------------------------------------
48e20ad691 | Nicholas Feinberg | 2023-12-04 18:12:57 -0800

Tweak blastminer description again (Darby, r-i)
Clarify why the cannon is a kobold exclusive.

--------------------------------------------------------------------------------
339af1cd1d | Nicholas Feinberg | 2023-12-04 17:58:48 -0800

Simplify Dimensional Bullseye
Remove the MP cost, per a comment from DO. It probably wants more
buffs than this, but a simplification is a nice start.

--------------------------------------------------------------------------------
ff0e985136 | Nicholas Feinberg | 2023-12-04 17:56:36 -0800

Disable descent in stable
It's not ready yet! </3

Soon...

--------------------------------------------------------------------------------
8e13b648a7 | Nicholas Feinberg | 2023-12-04 15:26:50 -0800

Finishish updating the changelog

--------------------------------------------------------------------------------
f31bc9b788 | Nicholas Feinberg | 2023-12-04 15:21:25 -0800

Tweak blastminer description
Add blastmotes (cross-references! Lore!) and play with style a bit.
The note about 'unable to survive much violence' read as a mechanics
hint, but AFAIK it doesn't refer to any actual mechanic.

--------------------------------------------------------------------------------
e7b2bbabab | Nicholas Feinberg | 2023-12-04 11:41:32 -0800

Partially update the changelog
Less than three months behind now!

--------------------------------------------------------------------------------
23dfb1424f | David Lawrence Ramsey | 2023-12-04 15:14:15 -0330

Fix spelling / punctuation / wrapping with Donald / Kirke / Yiuf lines (#3366)
[Squashing.

Closes #3366.]

--------------------------------------------------------------------------------
9b2f056800 | David Lawrence Ramsey | 2023-12-04 15:11:49 -0330

Remove obsolete Donald speech lines.
Lugonu no longer has Bend Space, Fedhas no longer uses fruit, and
Ashenzari's curses no longer feel deathly cold.

--------------------------------------------------------------------------------
5654b9beab | yrdzrfxndfvh | 2023-12-04 15:05:31 -0330

adjust a zig pillar and zig set order (#3359, #3364)
[Commiter's notes: Lowered the pan lord chance even further, so that
there's less bias against Shatter for dipping the early floors of a zig
in normal 15 rune games. The order of hells listing is somewhat arbitrary
but can be made to match the pure element sets right after it, so I'm
reorganizing the monster list order to match rather than the comments.

Closes #3359 and #3364.]

--------------------------------------------------------------------------------
d43dddfec8 | regret-index | 2023-12-04 14:40:43 -0330

Show how much mp Draining Gaze will take, remove its ghost moth healing
The healing effect was special-cased for ghost moths but not orange crystal
statues, and ghost moths would usually drain your mp so early, fast, and
fully in any given encounter that the healing part rarely actually healed.

The display for Draining Gaze looks kind of weird (as a weighted average
it will almost never roll near the bottom), but is better than not actually
telling the player they could lose 19 MP from one ghost moth action.

--------------------------------------------------------------------------------
2ddfaa6341 | regret-index | 2023-12-04 14:40:43 -0330

Brain Bite adjustments and fix-ups
Make the intended zero-mp check into a low mp check so monster randomness
doesn't struggle against natural player MP regen (with the threshold being
the 20% max mp it takes away). Display a different message and move Xom
interest to when extra damage is being dealt. Adjust the damage from 4-12
at the sufficient mp threshold to 8-16 so the description can just say it's
doubled from a 4-8 base. Display that base with an asterisk in the in-game
and out of game monster look-up, as LRD currently does, since most of the
time one's MP should be above the doubled damage point.

--------------------------------------------------------------------------------
cee744ad6c | Nicholas Feinberg | 2023-12-04 09:39:05 -0800

Fix the build
Oops again!

--------------------------------------------------------------------------------
2e861ca955 | Nicholas Feinberg | 2023-12-04 09:28:26 -0800

Fix throwing messages
Oops! Broken in 67c613c7490a4bb1fa95612f9fdb62fd977e241e.

--------------------------------------------------------------------------------
f6f8548f45 | Nicholas Feinberg | 2023-12-03 22:52:08 -0800

Remove an unused return
This was added in a17368df4fc (2009) and, as far as I can tell,
never used.

--------------------------------------------------------------------------------
bca3d03946 | regret-index | 2023-12-04 00:51:12 -0330

Even more widespread vault review
Of note:

 * _lair_caniforms_friends gets a hell hog because it's also an elemental
   mammalian quadruped as fills the vault already and also because it's
   been struggling at the bottom of the lair kills list.

 * Lair endings with dragons have been each been tweaked. The swampy one
   gets a chance for an ice dragon over a fire dragon, the minivolcano has
   a 1/3 chance for two hell hogs, and the wurm / snail cave has been
   warped to place the dragon room in a plant corridor at a random end of
   the vault rather than with a runed door right at the start. (If we're
   already putting dragon bosses without runed doors in one end, we really
   don't need runed doors in front of the other dragons; it dilutes the
   warning capacity of runed doors to just shepard autoexplore. The
   minivolcano should be stabbed at in this regard, but that's harder to
   adjust...)

 * The Hall of Blades blade talisman has an explicit small chance to be
   a randart now, to make it less sad for later Elf visits and to continue
   to try to get people to open the vault up.

 * orc_legates has been taken out of the Elf:1 guaranteed minivault pool
   for being much more dangerous and dense than the others in that slot.
   Three minivaults made much later than the original set setting have
   been added to the tag to compensate.

 * Several iron golems escaping Dis to find the protection of Chei altars
   in Depths have been damned back to hell, with iron dragons watching
   over those altars to keep them from coming back.

 * Moved amcnicky_altar_lugonu_corruption and its out-of-Abyss lurking
   horrors from most of its main-game placement (outside of the themeless
   D and Depths) for extended placement instead. There's many excuses
   one can make for monsters from elsewhere invading a branch, and that
   doesn't really inherently justify diluting the entire game with
   monsters that'll mostly just force one to rest rather than kill.
   Lurking horrors in particular will be felt more in the Hells and Pan
   anyway.

 * Remaining teleport / flight islands in Cocytus:$ and Gehenna:$ have
   been covered with more liquids and no_tele_into, which should close
   Mantis #12466.

--------------------------------------------------------------------------------
67c613c749 | Nicholas Feinberg | 2023-12-03 17:43:09 -0800

Pull out a helper function for shooting
Prep for violating the WON'T DO.

--------------------------------------------------------------------------------
9f62ae3b74 | Nicholas Feinberg | 2023-12-03 17:14:43 -0800

More ranged fixes and improvements
- Don't disable Dith's shadow mimic when Dimensional Bullseye is
  on.
- Fix the name for damnation bolts (broken in a3525b893cb2b9a98).
- Make boomerangs return while dimensional bullseye is on.

--------------------------------------------------------------------------------
15b8f8c986 | Nicholas Feinberg | 2023-12-03 16:37:27 -0800

New badmut: persistent drain
We've been slapping drain everywhere, so maybe a mut that interacts
with it (makes it stick around longer) could be 'fun'.

--------------------------------------------------------------------------------
1202beb697 | Nicholas Feinberg | 2023-12-03 16:34:49 -0800

Stabilize shapeshifters (regret-index)
Make shapeshifters try to stay near their original HD, rather than
slowly and inevitably turning into 1 HD monsters.

--------------------------------------------------------------------------------
6451dbdfc1 | Nicholas Feinberg | 2023-12-03 16:21:06 -0800

Tweak Hailstorm damage (acrobat)
+50% damage at 0 power, -20% at 100 pow.

--------------------------------------------------------------------------------
a3593d9213 | regret-index | 2023-12-03 16:02:14 -0330

Forbid a book trove from Djinn (jakew42)
trove_books_scrolls technically can randomly provide scrolls and staves to
Djinn, but we're already rather scrupulous about these sorts of rewards in
terms of weighing skills against weapon troves or another book trove. As
such, it now gets both a spell skills check and a djinn exclusion.

(In terms of other troves with books: trove_garden has a much lower book
reward proportion, trove_library is fine for Djinn since they're always
given five manuals instead(!), and the odds for nicolae_trove_salty to
give out mostly books is so miniscule we should celebrate somebody winning
the lottery of winning the lottery when it happens.)

--------------------------------------------------------------------------------
a3525b893c | Nicholas Feinberg | 2023-12-02 20:39:07 -0800

Simplify Damnation code
Remove a whole bunch of unused, antique boilerplate.

Really this shouldn't be an artefact-level function, it should just
be directly in throw.cc. But not worth changing.

--------------------------------------------------------------------------------
ab2881137f | David Lawrence Ramsey | 2023-12-02 14:58:31 -0800

Add one more Donald line.

--------------------------------------------------------------------------------
a5f70e4a02 | David Lawrence Ramsey | 2023-12-02 14:58:31 -0800

Fix typo.

--------------------------------------------------------------------------------
3ee3de5b36 | David Lawrence Ramsey | 2023-12-02 14:58:31 -0800

Add more monster speech lines for Donald and Crazy Yiuf.

--------------------------------------------------------------------------------
8df10c8ff4 | regret-index | 2023-12-02 19:27:45 -0330

checkwhite

--------------------------------------------------------------------------------
7eecc1f1b0 | regret-index | 2023-12-02 18:59:07 -0330

Nerf some other outlier Sewer maps
The big W-shape and the kobold church both have nearly double the effective
kill rate of the next following maps, and so both lose a few more monsters
since the weaker sewers just got and will get more exciting material to
liven Sewers up with instead. sewer_church also gets less shallow water
islets surrounded by deep water screwing with flight and teleport, and
loses the Grinder guarantee because we don't give a Pargi guarantee either.

--------------------------------------------------------------------------------
ac1dc8be8b | regret-index | 2023-12-02 18:38:08 -0330

Bring back Brain Worms as a mostly Sewer and Abyss exclusive
They of course have Brain Bite as percentage mp drain + minor unavoidable
damage, rather than Brain Feed glacially eating off int. There's a variety
of different causes and intents here, rather than using them as random
D fodder as they were originally:

 * No eyes of draining means very little early antimagic, which can be
   revisited on monsters that can themselves actually hurt the player
   and on lower amounts to more reasonably screw with earlier casters.

 * Sewers are mostly using early D monsters in an early D portal
   alongside early liquid, and could use anything distinguishing to them.

 * Desolation, for whatever weird development history it's taken, has
   demonstrated mostly portal-unique not-one-off monsters work fine.

 * Abyss has tons of unique monsters but still heavily relies on abominations
   (and imps) to cover for more straightforward and weaker spawns.

As such, with the rather changed Brain Bite, slipping in old brain worm
friends helps give some Sewers a monster nowhere near the rest of early D,
and gives Abyss a little more monster variety to work with. On the former
front, they're direct additions to some of the worst-performing and / or
least interesting sewers (as I also fit in a bunch of heavy headers
clean-up). On the latter front, they increase in band size versus a
Abyss:1-6 spawn range, like thrashing horrors, taking a small chunk of
placement rate from some imps and small abominations. Solo on Abyss:1,
bands of 1 to 2 on Abyss:2-3, 1 to 3 on Abyss:4-5, and 1 to 4 on Abyss:6.

(I didn't remake some minivaults that previously used brain worms in D or
re-add them to vaults that used them in Lair and Spider, but who knows what
gimmickry wherever others will eventually use them in. They're also back
in some of the sprints that used them in highly mixed or gimmick outputs.)

--------------------------------------------------------------------------------
3bd3108e02 | regret-index | 2023-12-01 20:25:44 -0330

Catch a loose Brain Feed use
While it's weird that the lunar statue will have both Brain Bite and
Draining Gaze, it's also got LCS and Shadow Creatures which also
clashes, so, it's probably fine for it to be constantly blasting.

--------------------------------------------------------------------------------
d00db9ed6e | regret-index | 2023-12-01 19:25:27 -0330

Adjust most Brain Bite users
Since the new spell form is a little more complicated and overlapping
with other spells these enemies have, they could do with some paring down.

 * Glowing orange brains have a very poor kill rate despite being positioned
   as D out-of-depths and Vaults / Slime spawns, due to having too many
   spells to consistently do their player avoidance + summoning concept
   and instead foolishly float towards the player's blades and fists. They
   lose Blink here, since it's the least interesting of their three different
   player-restraining spells, and gain more chances to cast each of their
   remaining other spells.

 * Neqoxecs move a marginal amount of their Malmutate into Brain Bite. They
   got additional odds to mutate with 61ce20c removing their 5s summoning
   but continue to not have much notable to them beyond mutations, so adding
   to any other threat beyond the strategic damage of mutation makes it feel
   a little less lopsidedly annoying compared to other tier 4 / 3 summon rolls
   going for the kill.

 * Orange crystal statues already had Draining Gaze, so Brain Bite isn't much
   of an improvement. They'll lose Brain Bite entirely and instead focus on
   casting more of their summon and confuse spells, so they can also more
   consistently execute what they're supposed to present (no mp + summon
   swarm).

 * Norris loses Drain Magic to cast Brain Bite some more, in the same vein
   of overlap-reduction done for orange crystal statues.

There's a little room left for a much earlier appearance of this new spell...

--------------------------------------------------------------------------------
dffb6e3712 | regret-index | 2023-12-01 19:13:37 -0330

Brain Feed -> Brain Bite (minor damage + mp drain, no int drain)
Brain Feed is an extremely weird monster spell in most games. With so
little stat drain around by default in a three-rune game, individual hits
against a stat approach 0 extremely rarely unless a player has next to
none, which is influenced heavily by character start combo and very little
by normal character growth. The relatively minor hit of intelligence also
does very little for its use on higher Int characters aside from slightly
worsening spell success rates, which works weirdly against the flavour of
various brain-eating monsters not actually caring about the quality of
brain so much as just killing those with incidentally little of it.

It's kind of difficult to tell what this spell should do. It'd be entirely
possible to make it drain a lot more intelligence or percentage-based +
flat intelligence to make actually effect more characters, but while
strategic damage of a restorable sort would be more mechanical diversity,
screwing with spell success chances and non-tangible damage rolls aren't
mechanics we've kept to the present day (c.f. skilldrain, old sap magic).
So, I'm sidestepping the original effect of the spell entirely, while
focusing still on its theme.

Brain Feed is now revised into Brain Bite, a mildly-experimental mix of half
a Smite plus a percentile version of Draining Gaze- 4-8 irresistable direct
damage doubled if you have no mp, then draining 20% of one's max mp (rounded
down). (This now also works on monsters, dealing damage checking on antimagic
and then applying antimagic.) The percentage part lets it scale across the
game (compared to Draining Gaze rapidly heavily draining most player mp), and
irresistable but restrained damage sources are currently pretty reserved
designs (Smiting, Damnation, usually Torment) that could be iterated further
upon.

(It'd be good to think over what the point of statdrain even is outside
of Hell, Tomb, and klown pies. Possibly a variant of flaying but only
for stats would be interesting, possibly making an even shorter para but
with brief stat-zero would be an interesting revision of current para.
This is kind of out of this particular commit's scope, though- getting
to stat zero via Brain Feed didn't really happen for a very large number
of character combinations, so concerns over that are minimal.)

Tile update uses the old mimic teeth tile by coolio, modified by jpeg,
on top of the current Brain Feed icon by snw-0.

--------------------------------------------------------------------------------
9ad1905e61 | regret-index | 2023-11-30 19:45:19 -0330

Adjust K blastminer stats / placement a little more.
Nerf their HD so Bombard hurts less and have them cast it a little less,
lower their HP to demonologist levels, and have their bands coinflip for
going solo rather than always appearing in a band. Also, lower their
placement in some of the Orc ends that use them.

In exchange for said nerfs, we can up their individual spawning weight
a little more, and toss them into a few more appearances (post-Lair
kobold vaults, late kobold special rooms, archer zig floors, and so on).
I'm wary of upping their spawn rate too high for sheer testing purposes,
as Orc still could do with more non-orcish additions, blastminers aren't
intended to be the sole non-Orc notable threat, and I'd rather not actually
flatly increase the threat level of ever-awkwardly-positioned Orc as is.
Still, it's reasonable to mildly nudge them up for now.

(As to whether people will internalize getting into the cannon's range
makes a given blastminer as dangerous as an orc sorcerer rather than
just being another weak kobold... well, we can let that take its course.)

--------------------------------------------------------------------------------
11243cb979 | regret-index | 2023-11-30 19:45:19 -0330

Make the V "preserve_walls" tag actually preserve rock
Kind of looks like it wasn't actually following through from looking
for the tag to actually doing anything with it since its concept in
e7d2410, I think?

--------------------------------------------------------------------------------
7fa767f3fe | Implojin | 2023-11-30 15:30:37 -0600

Let stash searches for mapping match revelation
This commit adds a {magic mapping} stash search tag to revelation scrolls,
purely for UI convenience. Searches like "map", "mappi", etc., will now
return any revelation scrolls that may exist in your game.

--------------------------------------------------------------------------------
6898e6545c | Nicholas Feinberg | 2023-11-29 13:59:18 -0800

Even out demonspawn starting attributes
The extra point of int is an antique oddity leftover from aa62dae1b9dd.
Demonspawn are generalists; no reason to shift them very slightly
toward casting.

--------------------------------------------------------------------------------
a03ddba797 | Nicholas Feinberg | 2023-11-29 10:11:18 -0800

Remove explore healing from Arena
Folks have noted for a while that Meteoran gets a huge burst of
explore healing from entering Okawaru's Arena. This is kind of cute,
but it's not really exploring, and it's not in keeping with the
intention of explore healing. Since Arena is quite strong enough as
is, let's cut this. (Don't think this will violate player intuition.)

--------------------------------------------------------------------------------
246cf0196b | Nicholas Feinberg | 2023-11-28 20:52:24 -0800

Display drown damage

--------------------------------------------------------------------------------
e6ea8fd53f | Nicholas Feinberg | 2023-11-28 20:50:24 -0800

Fix the monster build (gammafunk)

--------------------------------------------------------------------------------
e172a6e21a | Implojin | 2023-11-28 17:30:50 -0600

fix: refactor some unusual items monster messaging
750b6846b9 introduced a bug that could cause monster bands to come into view
with messages like "A gnoll is ." if one of the mons in the band was carrying
an unusual item that was neither branded nor artefact, like a throwing net.

Here I've refactored and unified the relevant code to be able to handle
messaging for arbitrary unusual items, but `get_monster_equipment_desc`
is still pretty fragile, and has had many similar messaging bugs over the
years (e.g. 7046ed1b37, f44d0c5ad2, 1e14066ec4).

Fingers crossed that this doesn't break anything else.

--------------------------------------------------------------------------------
adecf4124d | Nicholas Feinberg | 2023-11-27 22:43:20 -0800

Refactor slimify
This logic is ridiculous and should probably be rethought, but
this is at least easier to read.

--------------------------------------------------------------------------------
d61ee18ceb | Nicholas Feinberg | 2023-11-27 22:38:15 -0800

Refactor polymorph
Continuing from 6ee961360c27e626047 (2020), make all poly code use
a more consistent, simpler to understand set-based logic. This
includes Xom, Nemelex, chaos, etc.

Also removes RANDOM_TOUGHER_MONSTER, unused since the removal of
polymoths in b5aec581b1ad18 (2013).

--------------------------------------------------------------------------------
283494c966 | Nicholas Feinberg | 2023-11-27 21:43:45 -0800

Add controversial Rakshasa tile (Sastreii)
The depiction of rakshasas as tigers seems to be an antique D&Dism.
To be mythologically accurate, we should move away from it; or, if
we want to keep this sweet art, we should retheme rakshasas as eg
'felid illusionists' or 'devil-cats' or similar.

Anyway, this is newer and more dynamic than the previous cat-like
Rakshasa tile, so let's use it :)

--------------------------------------------------------------------------------
c13cea2ef3 | regret-index | 2023-11-27 21:29:46 -0330

New dragon-octopode tile, more dragon tile updates (Sastreii)
Yet more good work.

--------------------------------------------------------------------------------
b20eab6ec2 | regret-index | 2023-11-27 21:03:30 -0330

Fix arcanists just saying "Occultist", give occultists their tongues back (Undo)
Accidental fallthrough dealt with. Actually rarely directly mentioning
the rivalry in their dialogue is cute, though, so I added a rare new line
for either.

--------------------------------------------------------------------------------
b0f5842387 | regret-index | 2023-11-27 20:16:50 -0330

Non-placeholder kobold blastminer tile (Sastreii)
Obviously a lot better than prior frankenstein'd tiles, and much cooler
looking, but there's some awkwardness in reading rare hand cannons on the
right hand. Still looks good for arbalests and fine enough for bows.
Maybe it could swap cannon hands by giving said cannon wheels instead
of hoisting it on an arm? This is good enough for now, anyway.

--------------------------------------------------------------------------------
3a14828bb5 | regret-index | 2023-11-27 20:16:50 -0330

Throw kobold blastminers + more ogre mages into a few Orc vaults / ends
New monster with reasonably different functionality for the branch, new
placements. Mostly fit into more cave-like ends (that they dug open),
and vaults that would fit some ranged monsters or more general variety.

Also, since ogre mage bands are very rarely used anywhere anymore (dropped
from both V and Depths, so mostly just a post-Orc D spawn), they can be
pushed a little bit more than the exactly one Orc end to give Orc a little
bit more scariness.

(Also also, fitting in a little per-end balance nudging and head
reformatting, while I'm here.)

--------------------------------------------------------------------------------
6ba0ef72ef | regret-index | 2023-11-27 20:16:49 -0330

New Mines enemy: kobold bombardiers
Part of how Orc got its levels cut in half was the lack of variety inherent
to an orc-centric branch, with a variety of orcs already sitting on most
of the possible roles orcs could play, and with the obvious other cavedwellers
mostly overlapping with the rest of the game. This is part of an experimental
batch of new enemies meant to fleshen out the identity of the Orcish Mines on
the latter part rather than the former, which should also grant it a fair bit
more enemy variety to actually vary up its ends with beyond the standard four
strongest orc types and rare per-end uses of ogre / centaur / giant guests,
all already available elsewhere in D and V.

Kobold bombardiers are uniquely both ranged monsters and conjurers,
benefitting from the distance of the former and the burst damage of the
latter. They use the player species' +3 ranged weapons apt with an orcbow,
arbalest, or very rarely a hand cannon, and exaggerate this further by also
operating a monster-only cannon with which they slowcast Bombard. The latter
deals quite fairly more damage and lets them back away from those approaching,
but is more limited in range compared to their weaker arbalests, which should
provide an interesting tension without needing too much further complication.
(Possibly monster Bombard might warrant an 100% self-knockback rate rather
than a 50% self-knockback rate, to be any noticeable compared to Iron Shot,
but I don't know if that'd be a bit too much of a buff to ghosts using it).

They naturally spawn in duos, and probably could fit in a slim number of D
vaults already focused on kobolds. A couple of less conventional Orc end
vaults (like the one currently reliant on centaurs, the serial vault towns
and mushroom circles, and the encompass vault) will get these in the future.
For now, they replace the completely harmless gnolls in the branch alongside
a little bit of the orc warrior bands and cyclops weight, skimming off of
monsters one sees plenty of in D. They're more dangerous than any of those,
but they're probably not more dangerous than higher-tier orcs, so it should
be fine.

(Extremely placeholder tiles frankensteined between roctavian's old big kobold
tile, needle trap tiles, and one of the granite statue tiles. TODO: decide on
the best name between kobold demolitionist (maybe too close to demonologist?),
kobold blastminer (extremely on the nose but maybe the best reading?), and the
bombardier name used here (less rather direct and not a portmanteau?))

--------------------------------------------------------------------------------
5585b42bd2 | regret-index | 2023-11-27 20:16:49 -0330

Make monster Bombard knockback the caster 100% of the time
Currently the only users of it are player ghosts, and player ghosts being
optional weird threats with dramatic spells mostly assigned to them is
their current entire point, so them getting Bombard as opposed to Iron Shot
should be more noticeable. It also makes any future monsters (as is slated
in a future commit) casting Bombard be more parseable and consistent at
using that as a gimmick mechanic compared to the normal Iron Shot.

(It's not symmetric with player Bombard still being a coinflip to move,
but monsters have lots of ways their spells are stronger than players
anyway, and nobody's complaining about monster summons working out of
monster LoS currently.)

--------------------------------------------------------------------------------
b392501acf | Nicholas Feinberg | 2023-11-27 12:13:55 -0800

Add a message for AF_CONFUSE (CarefulOdds)

--------------------------------------------------------------------------------
4fe0c3d864 | regret-index | 2023-11-27 04:18:01 -0330

Make living jellies immune to nets, note this + their rConstrict in x-v
Making jellies immune to nets is consistent with their immunity to
constriction, and matches with how insubstantials are immune to both.
It's a nerf to throwing nets, but we just buffed nets mildly by being
able to hit SIZE_GIANT monsters in 7dc041b anyway.

Aside from making fused slime creatures a bit scarier to run from, this
is most noticeable for removing one of the many TRJ strategies. There's
possibly a little concerning increase in threat in Slime between that, some
of the newer slime end layouts, and the new prevalence of glass eyes and
their non-golden / creature company. Might be worth looking into with
slightly reduced floor spawns or something, but it's probably fine for now.

This also adds a note to x-v that jellies are amorphous and immune to
ensnarement (both nets and constriction), as is noted for insubstantial
monsters. It'd be nice if this amorphousness note also was useful for
Shatter's effectiveness, but Shatter checks the general Jiyva creatures
and I don't think eyes should get immunity to either of the ensnaring
effects? Probably.

(XXX: jelly simulacra being too solid to avoid nets / constriction is fine
from a flavour perspective, but does that justify jelly zombies also being
vulnerable to the same stuff?)

--------------------------------------------------------------------------------
7d1fb776a8 | Nicholas Feinberg | 2023-11-26 14:21:34 -0800

Maybe fix Dispater dropping his orb (cool2)

--------------------------------------------------------------------------------
3c0c803687 | Nicholas Feinberg | 2023-11-26 14:18:07 -0800

Maybe fix item AC changes in morgues
Shouldn't waste time talking about the effect of equipping/de-equipping
your armour in your morgue. It's too late!

--------------------------------------------------------------------------------
2febe9be03 | Nicholas Feinberg | 2023-11-26 14:02:11 -0800

Let Boris switch away from Morg
Since he never actually used it, and, also, it was removed.

--------------------------------------------------------------------------------
23a41d6f7c | Nicholas Feinberg | 2023-11-26 14:00:18 -0800

Add more Grinder lines
Try to add a little variety for player deaths to Grinder (frequent).
Pay no attention to the inconsistency.

--------------------------------------------------------------------------------
9f3f65008f | Nicholas Feinberg | 2023-11-26 13:52:11 -0800

Remove wizardry hard cap
Benefits from wizardry capped out at six rings of wizardry, or
one wiz ring plus Veh's bonus. This was almost totally irrelevant,
since benefits from more than one wiz ring were almost imperceptible
anyway. Remove the cap.

--------------------------------------------------------------------------------
f8cb93b20b | regret-index | 2023-11-26 18:05:40 -0330

Size up smoke demons (PleasingFungus)
I don't know how many other weird sizes are going to be found out from
the new size indicator list and honestly I don't know how long most
sizes (or at least more than three) will even last, but since this
was asked for directly, I'll make this random demon with a non-small
tile not small on dev request.

--------------------------------------------------------------------------------
54a1e13892 | regret-index | 2023-11-26 17:58:42 -0330

Shrink ufetubi.
Make them SIZE_SMALL, not SIZE_NORMAL. They're defined by swarming
whether by themselves or from ynoxinuls, and most other tier-5 lesser
demons are smaller than default (aside from lemures, who are at least
former souls). This probably means very little, but size is more
visible with the examination streamlining, so.

--------------------------------------------------------------------------------
4d48fc061a | regret-index | 2023-11-26 17:52:17 -0330

Some more of the indefinite vault review
Some adjustments to Zot stair vaults, some buffs to serial_magic_research
since it's been severely power crept plus some restraining its spawning
floors in Depths, some teleport closet handling from serial_baiyou, giving
more of a cue for the antique champions in wizlab_zonguldrok in console,
more abyss rune tweaks, and some other stuff. A slim few things of note:

 * Digging directly adjascent to the abyssal rune has been made harder in
   a few vaults using such (though digging can still randomly help.)

 * Reduced the weaker enemy count in infiniplex_zot_generator, in exchange
   for more of the enemies that do matter at that depth. lemuel_fire_house
   and lemuel_acid_trip may create some precedent for large numbers of
   harmless enemies in Zot (and they're definitely using much weaker ones),
   but they're both in much smaller maps and dump them out alongside the
   nonbase draconians more reliably.

 * lemuel_draconian_sentries mostly just eats digging charges as a
   stairs vault, since there's little push towards trying to run past
   them instead of just pulling each out individually. Experimenting her
   with changing it into an ambush vault instead, so one can't avoid being
   heavily blasted by multiple draconians unless they dive down a hatch.

 * pan_frozen_over is very far under the other guaranteed demonic rune
   vaults in kill statistics, so clearly it'll be safe to replace the
   juggernaut simulacra with walking frostbound tomes, right?
   It overlaps even less with Cocytus, at any rate.

--------------------------------------------------------------------------------
0b22e4e0f1 | Nicholas Feinberg | 2023-11-25 20:57:26 -0800

Tweak butterfly stats
Remove their will (ridiculous that they had any) and put their EV
back up a bit. I dropped it to make scrolls of butterflies better
against ranged enemies, but now that ?butterflies summons way more
and does knockback, this should be less necessary - and intuitively,
butterflies *should* have very high EV!

--------------------------------------------------------------------------------
6eca2949b2 | Nicholas Feinberg | 2023-11-25 20:56:51 -0800

Fix: don't make Dith hate boulders
Don't trigger shadow shard after casting Brom's Barrel o' Boulders.
It's sadly counterproductive.

--------------------------------------------------------------------------------
202bf7ea07 | Kyle Rawlins | 2023-11-25 16:04:13 -0500

fix: guard against a webtiles failure mode
I'm not exactly sure how this is reachable, but it apparently is.
Possibly now via a startup error of some kind, following
aead2f62b19a4b?

--------------------------------------------------------------------------------
aead2f62b1 | Kyle Rawlins | 2023-11-25 14:15:28 -0500

fix: better handle webtiles ttyrec write errors
If a ttyrec write on game start triggered an OSError (e.g. on a full
disk), the process object wouldn't get started, but also wouldn't get
fully cleaned up due to a bug, resulting in spurious processes in the
lobby. This fixes this bug, so now the process should get cleaned up
(and the user gets an error message).

This commit also tweaks the handling of OSError on ttyrec writes for a
started game. Previously they just led to an unhandled exception from
the callback, now they log a better error; unclear if something else
should happen.

--------------------------------------------------------------------------------
7e9613595b | regret-index | 2023-11-25 03:16:41 -0330

Erica: from human to octopode
Erica, while a functional threat, is also a pretty weird mix inherited from
old mixed monsters quite a while ago. Few pre-Lair uniques have five
different spells- could you actually name them all off the top of your head?
She's also got some very boring kill-you dialogue, which could do with almost
anything else to compliment it.

Changering her from a human to an octopode can focus on IRL octopus camouflage
and venomousness aspects, making her venom bolt + invis less generic, and gets
in another player species representative with minimal complexity burden. It
also replaces her robe with a random ring as a secondary reward for defeating
her, and helps her weird melee / conjurations split some more with a little
constriction (which also gets to be witnessed and experienced for new players
before the Snake entry with something besides harmless ball pythons).

This commit also cuts Confuse and Force Lance out of her spell set- the former
due to the adjacent prominent of monsters with invisibility and confusion,
and the latter due to its clash with constriction. (It'd be reasonable to have
another early-game unique with Force Lance instead, but that's out of this
change's scope). The cast rate from both is directly put into her Slow and
Venom Bolt casts.

Placeholder tile uses Bloax's old octopode crusher tile paired with roctavian's
prior Erica tile palette and flaming sword.

--------------------------------------------------------------------------------
69a08244f0 | regret-index | 2023-11-25 03:16:37 -0330

Maurice: from human to vine stalker
Maurice has lost most of his distinctly weird gimmick at this point. He uses
his own wand now to discourage players from dropping wands instead, he can't
drink your potions and read your scrolls any more, and he can't even sprint.
He clearly could use something new to cover for this.

Changing him from a human to a vine stalker lets him threaten with antimagic
bites, a vector of threat not particularly prominent until Lair branches, and
thus gives him something new to do. It also improves his melee a fair bit, so
that he's not noticeably weaker than, say, the vampires one could encounter
in near equal depths, and alongside the customary vine stalker regen helps him
actually just outright kill his foes. This even also swaps out another plain
human to instead represent one of the many weird player species Crawl so
prominently presents, one that reflects his thieving background in being a
magical body-snatching parasite.

While this is a notable buff to his melee and durability, he's still not much
stronger than, say, the functional Amaemon, so I'm also nudging his depth a
little shallower- D:7-12 instead of D:8-13. Possibly he could also lose
AF_STEAL entirely with this change, but I'll leave that for others to decide.

Placeholder tile is frankensteined from Sastreii's unused jack-o-lantern tile
mixed with roctavian's thorn hunter vines + palette and the current Maurice
tile's palette (also by roctavian).

--------------------------------------------------------------------------------
5939ac1fb6 | Edgar A. Bering IV | 2023-11-22 09:03:26 -0800

fix: condition troll hide on species (Lici, Ge0ff)
No more green hides from Earth Mages and Shamans

--------------------------------------------------------------------------------
b2354cd04e | Monkooky | 2023-11-22 01:06:33 -0600

feat: Armataur rework: Rampage healing
Players and devs alike have expressed that Armataurs felt like they needed
something more, so here it is! This commit is a minor rework of At.

The new feature here is rampage healing: At XL 7, Armataurs now gain a
stacking regen buff when they roll towards enemies. This regen buff is
loosely based off of Powered by Death, but instead of triggering on kills,
it triggers when you roll.

Rampage healing only triggers when rolling towards threatening mons, as an
attempt to limit the long-term incentive to kite slow mons around.
This is an imperfect solution and I don't like how this can be opaque to
players; expect further simplifications in future.

Awkward Tongue is gone. Poof. Buh bye. It was awkward.

At's rugged brown scales 3 are replaced with tough skin 3: No more 7% MHP,
but you keep the 3 AC.

There are many different directions rampage healing could go from here, but
let's try it out this way for a bit?

Co-authored-by: Implojin <implosionwow@gmail.com>

--------------------------------------------------------------------------------
35875b34c7 | regret-index | 2023-11-21 18:26:58 -0330

Give player Ghouls +4 Intelligence
Ghouls as one of the three undead player species are otherwise extremely
one-note compared to the more prominent gimmicks of contrasting vampires
and mummies (whether or not those gimmicks work in practice), due to their
mix of apts and stats. They've got a few decent casting apts but atrocious
intelligence and dexterity apts, and they've got +1 Unarmed + Claws 1 with
-1 in all weapons otherwise, so they almost all end up pointed towards
unarmed melee builds in practice.

Buffing their base Int to not be so low makes it not nearly so terrible to
consider their +1 Ice and Earth apts (or their +0 Necro and Poison apts)
as an alternative. They still don't get random int boosts from levelling
and their Dex has been left still extremely low, so they're still somewhat
flavourfully pointed towards unarmed ravaging, but player ghouls now also
get at least the chance to consider other options while they still exist
(and not just get merged into Vampire or whatever).

--------------------------------------------------------------------------------
7710a678fc | Nicholas Feinberg | 2023-11-21 13:42:41 -0800

Damn the Serpent of Hell (gammafunk)
rDamn is normally only on monsters which cast damnation. The SoH's
rDamn was leftover from before 06872b5b195 (2015), when it had a
Hellfire breath.

--------------------------------------------------------------------------------
88a7baa7fa | Nicholas Feinberg | 2023-11-21 13:42:41 -0800

Show non-regenerating mons (CarefulOdds)

--------------------------------------------------------------------------------
b0162a2734 | regret-index | 2023-11-21 17:03:14 -0330

Crunch down and tweak more Zig set populations
Since a variety of branch populations were more fleshed out over time,
less and less of the sets need to emphasize broad yet specific monsters
in them over time. Also of note:

 * Vaults sets properly use V out-of-depths as I intended to use and
   accidentally left out ages and ages back. Makes them notably more
   dangerous on average, but mostly only for those not megazigging,
   and that's fine since the full V ood set is already one of the most
   varied of available branches anyway.

 * Crypt sets focus less on the heaviest hard-hitting undead, since Tar
   and Dis picked those up, and instead more on revenants, since they've
   got Dispel Undead to go threaten megaziggers with.

 * Fire is scarier because we've got enough monsters in that element we
   can avoid overlapping with all those normal-endgame dragons and giants.

 * Lair branch Roulette is more crunched down so it can place more
   ghost moths.

 * The new Vestibule set is now rarer and somewhat nerfed to weigh the
   random spawns higher than the handpicked ones. It's still pretty
   dangerous just by being another silent spectre set, of course, but it
   doesn't need to be quite so prominent while zigs are trying to be
   varied instead of just twenty-seven floors of silent spectres +
   orbs of fire + tzitzis. This buffs the scaling for the non-Tar hells,
   while they're also being more focused down, as a little recompense.

--------------------------------------------------------------------------------
277233ada9 | Nicholas Feinberg | 2023-11-21 12:04:26 -0800

Adjust minor monster descriptions (Flugkiller)
Only show regen rate for fast-regen monsters (Flugkiller) and move
sInv back into the 'text description zone' to make room for holiness.

--------------------------------------------------------------------------------
b799ba9de5 | Implojin | 2023-11-21 13:15:19 -0600

Fix an AK pocket abyss save upgrade crash
Abyssal Knight games that were saved while in the starting pocket abyss, and
subsequently upgraded past e63b5e0675, ended up having no level id on the
stack when trying to exit the abyss.

This commit should allow any affected saves to return to D:1.

--------------------------------------------------------------------------------
2bbac1624d | Nicholas Feinberg | 2023-11-21 09:59:55 -0800

Describe panlord/ghost brands again (Lici)
Got lost in 3dd9dd10254512485882.

--------------------------------------------------------------------------------
83d41fd8b6 | Nicholas Feinberg | 2023-11-19 16:58:41 -0800

Tweak glass eyes' description
57150269e139b239e5 made glass eyes LRD-able, based on an early WIP
description of glass eyes that described them as being literally
glass. In the meanwhile, the final version of 492612b1e5dc9033738
changed glass eyes to only be glass-y. This was inconsistent.

The mechanical implications of the decision are limited, and player
intuition probably does want 'glass eyes' to be literally glass.
Adjust the description to match, and cut out a sentence that
duplicates the 'spells' section.

--------------------------------------------------------------------------------
b85d59ca80 | Nicholas Feinberg | 2023-11-19 16:51:47 -0800

Fix: maybe avoid a boulder crash (geekosaur)
Try to only make boulders push things which are alive.

--------------------------------------------------------------------------------
70f3316b05 | Zhang Kai | 2023-11-19 09:18:47 -0800

Create godname.txt

--------------------------------------------------------------------------------
b2e1c032c2 | Zhang Kai | 2023-11-19 09:18:47 -0800

Fix montitle.txt

--------------------------------------------------------------------------------
0e25566502 | Zhang Kai | 2023-11-19 09:18:47 -0800

Fix gods.txt

--------------------------------------------------------------------------------
0976ef0c61 | Zhang Kai | 2023-11-19 09:18:47 -0800

Fix cards.txt

--------------------------------------------------------------------------------
86b3dce6e7 | Zhang Kai | 2023-11-19 09:18:47 -0800

Create monspell.txt

--------------------------------------------------------------------------------
1ba604ef71 | Zhang Kai | 2023-11-19 09:18:47 -0800

Fix godspeak.txt

--------------------------------------------------------------------------------
d157652452 | Zhang Kai | 2023-11-19 09:18:47 -0800

Update features.txt

--------------------------------------------------------------------------------
a6869d85f1 | Zhang Kai | 2023-11-19 09:18:47 -0800

Update unrand.txt

--------------------------------------------------------------------------------
64512e9d5b | Zhang Kai | 2023-11-19 09:18:47 -0800

Update spells.txt

--------------------------------------------------------------------------------
71cec17ea4 | Zhang Kai | 2023-11-19 09:18:47 -0800

Update items.txt

--------------------------------------------------------------------------------
2e2ac5b567 | Zhang Kai | 2023-11-19 09:18:47 -0800

Update monsters.txt

--------------------------------------------------------------------------------
cbe862445d | Zhang Kai | 2023-11-19 09:18:47 -0800

Update status.txt

--------------------------------------------------------------------------------
13f20ad9b5 | Zhang Kai | 2023-11-19 09:18:47 -0800

Update mutations.txt

--------------------------------------------------------------------------------
f23a8c9ba6 | Zhang Kai | 2023-11-19 09:18:47 -0800

Fix ability.txt

--------------------------------------------------------------------------------
4d60c6eab0 | Nicholas Feinberg | 2023-11-19 09:09:39 -0800

Remove sleeptime supershields (cool 2, Ge0ff)

--------------------------------------------------------------------------------
a9834b393d | Nicholas Feinberg | 2023-11-18 17:41:00 -0800

EVIL HACK: Don't pre-ID randbooks
I regret every writing code. (And 658a57c81a4/85e71fe22c973af) in
particular.

Fixes #3345.

(Hopefully.)

--------------------------------------------------------------------------------
1e7a56e4ca | Nicholas Feinberg | 2023-11-18 15:58:15 -0800

Tweak Spellforged Servitor spells
Cut Sticky Flame (quite depressing in melee), add Irradiate.

--------------------------------------------------------------------------------
97aaa3725a | Nicholas Feinberg | 2023-11-18 15:42:54 -0800

Remove size's effect on shields (again)
Continuing from 6e8f0f562f661212d597, remove the effect of monster
size on SH. (For simplicity and sanity.)

This is a small nerf to spriggan monsters, which get -4 SH now (if
they had bucklers before). Spriggan riders, for example, go from 24
SH to 20. We can comp 'em some HD or EV or something if needed.

--------------------------------------------------------------------------------
f7a513a3ec | Nicholas Feinberg | 2023-11-18 15:32:26 -0800

Display monster equip/ench resists
It was previously a rude secret that, eg, Fannar had rF- from his
ring of ice and that Parghit had GDA resists. This also messed with
targeters.

Well, now that all monster equipment is ID'd, this is easy to fix.
So let's fix it!

--------------------------------------------------------------------------------
7238fd0580 | Nicholas Feinberg | 2023-11-18 15:05:43 -0800

Display monster SH
Also, round monster stat pips up. Don't claim monsters with 4 AC
have 'none'.

--------------------------------------------------------------------------------
add1f9aa00 | Nicholas Feinberg | 2023-11-18 14:28:04 -0800

Rephrase singular attacks (Namsan)
You know, why not.

--------------------------------------------------------------------------------
31867e143a | Nicholas Feinberg | 2023-11-17 23:15:33 -0800

Compact more monster info
Plop threat, regen rate, size, intelligence, and sInv into another
line in the 'stat block'. This isn't as important as speed or attack,
so arguably it should be below them, but it looks nice all together.

--------------------------------------------------------------------------------
d25c09d0c2 | regret-index | 2023-11-18 02:50:04 -0330

Big themed scaling vaults batch across D, Depths, Swamp, V, Zot.
About twelve, mostly focusing on gods or locale echoes, generally spanning
D:8-14 or D:12-14 and Vaults / Vaults, some also fitting into Swamp or Zot.
Most of them are relatively safer than what god-themed vaults can already
do for D:13- or what generic floor spawn vaults can get from few controls
on out-of-depths, so it should be fine.

Most of these, barring the Makhleb, Nemelex, and Zot + Pan arrangements,
are experiments and practice in stretching out how far natural branch
spawns might go to provide anything resembling a coherent theme:
a pseudo-swamp, a Halloween mansion, some sinful smouldering keep, an
undead garden, some shadows of Dith, and so on. Some of the most extreme
scaling monster listing headers might warrant revisiting by throwing such
into lua functions and then trying out other layouts under the same idea
and a uniq_ tag, but it's important to first see if these game-spanning
vaults have everything down right first. D's enemy set hasn't gotten
removals in ages and both D and Depths support a lot of guest themes, so
such lists probably shouldn't go out of date any time soon, either.

--------------------------------------------------------------------------------
536417deff | yrdzrfxndfvh | 2023-11-18 02:50:04 -0330

new Ziggurat pillars (#3348)
[Committer's notes: No to the ballistomycetes; while it's a nice concept
to vary Zig floors by occasionally helping the player out directly,
ballistos are pretty exclusive to Fedhas at this juncture and they're far
too harmless for zigdelvers otherwise to much justify. Also, adjust the
two monsterful ones' depths to a more standard point of double digits
zig floors.

Closes #3348.]

--------------------------------------------------------------------------------
3cc34cc19e | regret-index | 2023-11-18 02:50:04 -0330

Fix up the new cutlass ship vault (#3002)
Removes the lair branch ancient champions (spoilery aggression) and lair
branch or deeper large counts of wights / wraiths / eels (completely
harmless) for spawns more reasonable for each of the branches. Also,
compress the rest of the header to house style standards, and fix up some
teleport island and placement issues regarding the vault's water.

Alongside the prior merged commit, closes #3002.

--------------------------------------------------------------------------------
30827cb387 | kippig | 2023-11-18 02:50:04 -0330

Add ghostly pirate ship vault.

--------------------------------------------------------------------------------
809df13f7d | regret-index | 2023-11-18 02:50:04 -0330

Update the shared lists in mon-spell.h
Don't mention klowns in the list without pies, mention formless jellyfish
for now in MST_BLINK_CLOSE, and rename + move down the howler monkey
and ghost moth spell lists to their corresponding glyphs, since those
don't share entries anymore with demonic crawlers or eyes of draining.

--------------------------------------------------------------------------------
6fe15c62fe | Nicholas Feinberg | 2023-11-17 21:55:40 -0800

Let spectral weapons regenerate
Don't see any reason to ban it. Dancing weapons and animated armour
both can regen. Doubt it'll matter.

--------------------------------------------------------------------------------
e8c24b2130 | Nicholas Feinberg | 2023-11-17 21:46:01 -0800

Fix: free foeless foes from the bat zone (autarch)
If a batty enemy ends up with no foe (perhaps because of Ru), don't
leave them stuck in BEH_BATTY indefinitely.

--------------------------------------------------------------------------------
8808d95e9a | Nicholas Feinberg | 2023-11-17 19:55:14 -0800

Don't crash when examining kraken zombies (r-i)
Or anything else with negative stats (!).

--------------------------------------------------------------------------------
fb7600b534 | Nicholas Feinberg | 2023-11-16 21:58:10 -0800

Unbrace

--------------------------------------------------------------------------------
91e83f5f74 | Nicholas Feinberg | 2023-11-16 21:56:39 -0800

Make test spawners flammable
Remove rStickyFlame, which was almost entirely useless. It was mostly
applied to insubstantial monsters/forms, which... are already immune
to sticky flame, by virtue of being insubstantial.

The main effect here is that red very ugly things can now be sticky
flamed. But they have rF++, so who cares!

--------------------------------------------------------------------------------
2e47921a08 | Nicholas Feinberg | 2023-11-16 21:47:50 -0800

Remove rVortex (hellmonk)
It did nothing. The only thing that had it was twisters, which
already have immunity from Polar Vortex by virtue of having 'cast'
one themselves.

--------------------------------------------------------------------------------
f85fca5ced | Nicholas Feinberg | 2023-11-16 16:32:08 -0800

Move monster attacks up
Out of the random garbage zone, up to the exciting fun zone.

Spells should go above them.

--------------------------------------------------------------------------------
0ab6d62aba | Nicholas Feinberg | 2023-11-16 16:04:12 -0800

Experiment: simplify shields
Previously, shields degraded in effectiveness with each attack they
blocked. This helped differentiate SH from EV, but was quite subtle -
many players had no idea.

To make the mechanics clearer and simpler, replace this effect with
a limit on the number of blocks shields can make each turn. Bucklers
get two blocks a turn, kites three, towers four, and players with SH
but no shield (eg from "reflect or bone mut) get just one. This should
hopefully make the different shield types feel a little more distinct,
as well.

The numbers here are extremely rough and need testing; I wouldn't be
surprised if the max blocks all dropped by 1 (except for shieldless),
for example. Some other things that might be good follow-ups:

- Print a message whenever someone *would* have blocked an attack,
  but was out of blocks. (Would this be too spammy?)
- Make bone plates give an extra max block (perhaps instead of some
  of the SH?).

--------------------------------------------------------------------------------
66a32c7c6b | Nicholas Feinberg | 2023-11-16 15:19:35 -0800

Simplify abominations
The random speed gimmick was not very exciting; most players didn't
know it existed, and knowing that the majority of large abominations
were slower than normal speed would not improve anyone's game experience.
Make small/large abominations a constant 12 and 10 speed, respectively.

We can add new gimmicks to them at some point if we get good ideas, but
this change shouldn't really have any effects on the status quo.

--------------------------------------------------------------------------------
0361d129ea | Nicholas Feinberg | 2023-11-16 15:15:53 -0800

Display AF_DROWN damage
'Max' is a bit misleading for these values, since the average is
higher than half the max, but what can you do.

--------------------------------------------------------------------------------
441186997c | Nicholas Feinberg | 2023-11-16 15:03:36 -0800

Don't claim statues can outpace nagas
Nagas are slow, but not that slow.

--------------------------------------------------------------------------------
3dd9dd1025 | Nicholas Feinberg | 2023-11-16 14:51:41 -0800

Tableify monster attacks
As we've added more info about monster attacks, their descriptions
have gotten increasingly unreadable. One example:

    They can claw for up to 40 damage; kick (for up to 23 damage)
    to blink self if any damage is dealt; tentacle-slap (for up to
    35 damage) to cause mutations if any damage is dealt; and gore
    for up to 30 damage (about 58% to hit you).

Address this by plopping attack descriptions into a table. This
lets us remove the redundancy of "if any damage is dealt" for most
cases, and should hopefully be easier to read and sort through
generally.

One downside is that mons weapon brands are no longer shown at all,
which could be pretty misleading. I ran out of space to fit them,
but maybe they could be shown somewhere?

--------------------------------------------------------------------------------
f29f09145b | Nicholas Feinberg | 2023-11-16 12:04:30 -0800

Move TRJ stats out of attack descriptions
TRJ jellies aren't an attack!

--------------------------------------------------------------------------------
7cb12e4e53 | Nicholas Feinberg | 2023-11-16 11:19:25 -0800

Show common monster resists en-bloc
Putting together a stat block.

--------------------------------------------------------------------------------
0064d2672a | Nicholas Feinberg | 2023-11-16 10:40:18 -0800

Caveat abomination speed (Lici)
Rip.

--------------------------------------------------------------------------------
fa0b634519 | Nicholas Feinberg | 2023-11-16 10:29:16 -0800

Caveat sixfirhy/jiangshi speed (Monkooky)
Since they're very weird!

--------------------------------------------------------------------------------
e72b690d9f | Nicholas Feinberg | 2023-11-16 10:10:09 -0800

Rework monster speed descriptions
Speed is one of the most important traits a monster had, but we buried
it in a sea of trivia and described it quite vaguely. The old speed
adjectives used to work OK, but once we started adding monsters with
extremely fast or slow actions (e.g. juggernauts, animated armour),
they were quite inadequate.

Instead, show:
- A speed percentage (eg 150% for 15 speed monsters, 80% for 8-speed mons).
  This percentage is unaffected by haste, slow, etc - it's just base speed.
  Higher numbers are better. Hopefully this is intuitive.
- More percentages for special action types ("swim: 166%", "attack: 33%").
  These percentages are pre-multiplied by base speed (so a juggernaut with
  33% attack speed takes about 3.0 dAut per attack), and higher is still
  better. Hopefully this is intuitive.
- An estimate of whether the monster is normally faster or slower than
  the player, without taking into account buffs/debuffs or terrain for
  either the player or the monster. There might be some int rounding errors
  here.

--------------------------------------------------------------------------------
2d28e49fa5 | Nicholas Feinberg | 2023-11-16 09:21:11 -0800

Simplify snapping turtles
Previously, they had a slow 'base' speed and a reduced attack delay,
exactly cancelling each other out. This was silly.

Return their attack delay to normal (slowing their attack by 25%)
and increase their attack damage to very roughly compensate. This
also means they now work the same way as alligator snapping turtles.

Numbers are rough; possibly the damage increase should be higher.
If they feel weak after this, we can turn numbers up a little more.

--------------------------------------------------------------------------------
54f1719f28 | Nicholas Feinberg | 2023-11-16 09:17:04 -0800

Remove support for customizing some energy types
We had no* monsters with custom action speeds for item use, item
pickup (!), or 'special' actions, and I'm skeptical that we'd need
to. Remove support for customizing these speeds.

*snapping turtles don't count.

--------------------------------------------------------------------------------
ee8ca3e5de | Nicholas Feinberg | 2023-11-16 09:03:03 -0800

Remove ACTION_ENERGY
Unused since d1872aa6dd455cb2 (2014).

--------------------------------------------------------------------------------
5322dac6a2 | Nicholas Feinberg | 2023-11-15 18:02:04 -0800

Collapse basic monster stats onto one row
Part one of a process of hopefully making monster vital info a bit
easier to digest at a glance.

--------------------------------------------------------------------------------
454b1f1e0a | Implojin | 2023-11-12 18:12:39 -0600

Add a new Meteoran title (inflori)

--------------------------------------------------------------------------------
5b978dac0e | Nicholas Feinberg | 2023-11-11 13:49:05 -0800

Add an Ooze status description (hypergardens)

--------------------------------------------------------------------------------
858d187a59 | Nicholas Feinberg | 2023-11-11 13:47:29 -0800

Tweak death talisman names
To avoid "the talisman of death of Plog", rename artefacts to
"death talisman".

--------------------------------------------------------------------------------
77c946d0b9 | gammafunk | 2023-11-11 11:48:42 -0600

fix: Use the correct floor tiles in a vault (PleasingFungus)
For lemuel_minitomb, use the appropriate sandstone floor tile under
traps.

--------------------------------------------------------------------------------
fbdfbacc72 | regret-index | 2023-11-09 20:04:27 -0330

Quick adjustments for several other zig sets
Cut the no-longer-used hell knights and demons from Gehenna, Cocytus,
and Tartarus zig sets, shove a little more varied threat not emphasized
in other sets into Fire floors, and trim down the Swamp set since most
of the weaker enemies are gone plus we have Tartarus and Tomb sets now
for miasma spam anyway.

--------------------------------------------------------------------------------
5fc2386627 | yrdzrfxndfvh | 2023-11-09 19:40:25 -0330

new ziggurat floor type: vestibule (#3117)
similar to the lair roulette, but with hell branch monsters instead

[Committer's notes: Don't name it Hell Roulette, since all four hell
branches are in each game at this current juncture. Lair roulette
refers to a specific selection without Slime and all.

Cut out the incomplete selected Vestibule set + derived undead for mostly
place:Hell spawns, since it's not meaningfully much different and avoids
desynching with only minor hell knight / necromancer additions otherwise.
Instead, focus on placing specific monsters from each Hell with zig
completion count, to match with the Lair roulette set and so there's
another silent spectre floor. Also, futz with the math a fair bit.

Closes #3117.]

--------------------------------------------------------------------------------
9676161fe1 | yrdzrfxndfvh | 2023-11-09 18:07:33 -0330

change holy ziggurat floors to include more monsters (#3118)
adds sun moths, holy swine & seraphs to holy zig floors

holy swine have a decreasing chance to spawn at lower depths & seraphs
have an initially very low spawn rate which increases with depth and
zigs completed

[Committer's note: No holy swine. Plenty of non-branch Zig sets leave out
the weakest enemies in their themes, and the current slim vaults using
holy swine have at least some gesture of demonic magic, Xom, or Kirke
having done something malevolent, while a ziggurat doesn't. Sun moths
get half weight; they are technically holy, but they don't really fit
much with the other holies, they're pretty harmless for zigs, and also
their design needs shifts beyond "conjurer in the non-conjurations branch"
and "rarely tell new players ghost moths exist".

Pearl dragons no longer try to spawn more often than daevas, since their
breath went from 3d36 to 3d18. Seraphs are restricted from the first half
of ziggurat floors until one does sufficiently many ziggurats, so that
unholy players aren't any further discouraged from single-digit first zig
floors in regular 15 rune games. Thanks, c0fddb9. Still will probably
ruin a bunch of megaziggers to be surrounded by fire-immune cleansing
flame users, but I'm sure they'll adapt.

Closes #3118.]

--------------------------------------------------------------------------------
8e65716e6e | yrdzrfxndfvh | 2023-11-08 16:19:40 -0330

orb shop vault (#3141)
a rare, sealed off shop vault with (when applicable) orb-like enemies
guarding it that appears in the mid-to-late game

hopefully this will encourage people to use orbs over shields for once

[Committer's note: Appreciated concept. Added a set for Vaults placement.
Removed the Spider placement, as we have no other Spider shops currently and
only one non-unique monster in the whole branch can even wield orbs. To
still get out an orb spider appearance, use such in a new D:13- placement
instead. Said D:13-15 placement is also the only one with a runed door, as
the middle range of branches don't really warrant it compared to other
minivaults- instead, it just gets thicker walls to prevent much spillage.
The Depths and Zot placements are nerfed rather than relying on a runed door,
though- higher hd shapeshifters are pretty extreme gimmicks out of Abyss /
Zot and only very loosely linked to the magical orb theme, and ancient /
dread liches are rather heavy to put in a limited-reward Zot vault that
also has an orb of fire in it. Not sure how much people will get crystal
(ball), fireball, and damnation sphere themes alongside direct orbs,
but whatever.

Closes #3141.]

--------------------------------------------------------------------------------
770356a28f | regret-index | 2023-11-07 19:18:57 -0330

A quick sweep over wizlab.des
Of note:

 * There's been some voiced interests in keeping more of the extended
   monsters more exclusive to extended, for both making extended more
   exciting and special in using such plus keeping some very awkward
   monsters in their specified context. It'll take a while to assess
   the each of those, but for now, a quick swap out of the ds warmonger
   / black sun in wizlab_demon for a hellephant / dread lich should work.

 * Crunch down the Cigotuvi's deformed header list with some lua, with
   some different descriptors. Drop the monstrosity's reaching stinger
   (which would prevent it from approaching to trample and constrict)
   for a second trampling attack. Give the wizlab the unrand named after
   the same wizard, for more player temptation.

 * While monsters not drinking potions gives Eringya's some actual rewards,
   it could do with a bit more to correspond to both the master archer spam
   and the actual spells named after Eringya. ENB is now guaranteed, with
   a big stack of either lignification (bouqet) or poison scrolls (bog),
   and the random spectral weapons now use Asterion's spectral weapons
   (broad axe or demon weapons) alongside the quarterstaff or lajatang.

 * According to their kill statistics: mildly nerf Borg's and Eringya's,
   mildly buff Hellbinder's and Cigotuvi's, continue to buff Golubria's.

--------------------------------------------------------------------------------
d5ff2fe127 | regret-index | 2023-11-07 19:18:57 -0330

Finish fixing up wizlab_zonguldrok (#732)
Crunch down on the untidy header, reduce spectral and ghost presence to reduce
overlap with wizlab_borg and to mostly fit theme + focus on them appearing via
Haunt, put more martial-focused theme loot in the rewards, make graves being
replaced by monsters raise some dust and smoke to emphasize the shift more than
a sudden swap, visually mark the antique-awakening tiles to be less spoilery,
simplify the random monster list instead of trying to be an exact 1-to-1 of
possible gravestone spawns, open up some chokepoints on the inside, slightly
lower the grave count after these spawn buffs.

Alongside the prior commits, closes #732.

--------------------------------------------------------------------------------
f599b16ab9 | regret-index | 2023-11-07 19:18:56 -0330

Antique lich -> Antique champion (also no longer just a rename!)
Zonguldrok's Wizlab sure features a conjurer boss for something named after
a sword. To help it with more mechanical distinction, to help the wizlab
not be so far behind in kill statistics, and to actually match the flavour,
the antique lich as a jokey rename is instead replaced with another
vault-exclusive actual monster in the same fashion as most wizlabs use,
one that can actually wield the titular weapon in its own hands.

Aside from having a lot more HD, somewhat more HP and EV, plus a little
more melee damage than ancient champions, antique champions live up to
their name by having a spell currently unused elsewhere that ancients
lost in 2016 (Haunt) and an upgrade to another lost in 2021 (Bolt of
Draining -> Ghostly Fireball). They retain Haste and also cast Might
for even more face smashing, and they spawn in a pair (rather than
the current solo ancient lich or the PR's additional plain lich
company) to stand out from the singular vault monsters in other
Wizlabs. (Why do almost all namesakes presume they're describing
individuals and not groups, anyway?)

(If the name being confusable is somewhat bad now that it's actually more
dangerous, then just renaming these some more is entirely reasonable.
Some sort of battlelich style name theming would probably work.)

--------------------------------------------------------------------------------
94548685de | NormalPerson7 | 2023-11-07 19:18:56 -0330

Buff Zonguldrok's Shrine
[Committer's note: Zonguldrok's wizlab is indeed underperforming;
the gimmick's actual used contents don't match up to the player or
dungeon power creep. This squashes a fairly large number of commits
together: adding two extra liches to the antique lich fight, bumping
the derived undead to midgame and endgame giants / trolls / dragons
instead of ogres or plain trolls, and throwing in a lot of random Crypt
spawns in place of prior lategame wights and vampires.

It's a reasonable effort, but I've got my own rather different work
to add on ontop of it, so unlike prior vault pull requests, I'm going
to leave my edit out of this and instead put them in following commits.]

--------------------------------------------------------------------------------
9a2f3ffc92 | Nicholas Feinberg | 2023-11-06 21:29:33 -0800

Fix some felid blade paws issues
Blade paw tiles don't work well for most of the alt felid tiles, so
disable em.

--------------------------------------------------------------------------------
3b49de5836 | Nikolai Lavsky | 2023-11-06 13:13:12 +0300

fix: colour artefact talismans white (SentientSupper)
Their names weren't white due to a missing colouring prefix.

--------------------------------------------------------------------------------
04711c9635 | regret-index | 2023-11-05 19:04:13 -0330

Editing pass + extra fleshing-out vaults for serial_library (#2903)
Mostly adding to the decorative vault count, to try to get a sufficient
variety count for something innately as pressured as another serial
vault relying solely on walls / doors / floors rather than any features
or monsters. If there was more threat vaults, it'd be reasonable to
guarantee one or two rather than rolling up to all four, but whatever.
Edits on the prior material:

 * Clean up a ton of repeat lines by throwing them into a standardized
   lua function and default-depth line. Also, move author name from the
   tag to the vaults.

 * Trim out one of the most generic decoration vaults, the decor tag
   from several other relatively generic vaults, and downweigh the
   appearance of these outside of the library vault. Some caution should
   be exercised to prevent spreading out a decorative tile from being too
   common, and a bunch of the tiniest ones here are quite plain outside
   of a full serial vault level theme.

 * Tried to make several of these pieces less boxy.

 * Updated the few enemy vaults in multiple ways: use a specific enemy
   set for D:4-7 instead of spawning out-of-depths much more dangerous
   than the later themed caster spawns, update for the wizard split, and
   nerf some of the branch placements (a box with 2-10 Elf:3 elves,
   walking tomes, or nagaraja and tyrants is a bit much at the top end).

 * Expanded the branch placement from D / Depths / Snake / Elf to also
   include Vaults (as individual rooms, not the serial vault) and Crypt.
   Both of those branches could also use some added variety.

Closes #2903.

--------------------------------------------------------------------------------
b08921ce47 | hellmonk | 2023-11-05 18:58:34 -0330

feat: Another library vault

--------------------------------------------------------------------------------
c0b921035c | hellmonk | 2023-11-05 18:58:34 -0330

feat: Serial library vaults
Add a new serial vault type that places a large number of vaults that use the
wall_studio tile set. Most vaults are small and relatively simple, but a few
large vaults that place thematic monsters and/or book loot are included. The
vaults can place in D, Snake, Elf, and Depths at 0.5% chance.

--------------------------------------------------------------------------------
676ae46b74 | hellmonk | 2023-11-05 18:58:34 -0330

feat: Small library arrival vault

--------------------------------------------------------------------------------
c0ee4c512b | hellmonk | 2023-11-05 18:58:34 -0330

feat: Two library overflows

--------------------------------------------------------------------------------
60c323e8ed | hellmonk | 2023-11-05 18:58:34 -0330

feat: Library ghost vault

--------------------------------------------------------------------------------
aa2abb9e42 | Nicholas Feinberg | 2023-11-05 08:06:05 -0800

Fix some monspeak keys (rypofalem)

--------------------------------------------------------------------------------
08d55dae12 | Implojin | 2023-11-03 15:25:50 -0500

Fix spelling (Ge0ff)

--------------------------------------------------------------------------------
3233f18187 | Implojin | 2023-11-03 10:06:07 -0500

fix: Antique shop talisman ID (particleface, Ge0ff)
Talismans purchased from antique shops were previously not having their id
flags set, causing them to be valid targets for ?identify.

More broadly, item identification flag handling continues to be a mess, and
some further refactoring is probably in order here, but this commit fixes the
immediate bug, at least.

--------------------------------------------------------------------------------
5e6e4ef867 | Nicholas Feinberg | 2023-11-02 21:10:23 -0700

Fix another Trog pain bug (Implojin)
No idea what I was thinking with 9c3d1c461af.

--------------------------------------------------------------------------------
1d0c90dd83 | Nicholas Feinberg | 2023-11-02 21:02:09 -0700

Fix pain ego with Trog (Implojin)
Don't block monsters from using pain ego if the player worships Trog
(broken in 9c3d1c461af). Do block monsters which worship Trog from
using pain ego.

Goodbug.

--------------------------------------------------------------------------------
bfb7dba898 | Implojin | 2023-11-02 17:05:59 -0500

fix: Don't randomize UC damage description (confidence interval)
Previously, the displayed UC base damage with @ was being randomly rounded
whenever the player pressed the key.

--------------------------------------------------------------------------------
7b6862f502 | Nicholas Feinberg | 2023-11-01 22:19:43 -0700

Swap evilness of "Macabre and "Vitality
The amulet of Vitality was made evil so that we'd have more evil
unrands. This has persistently confused players, since the theme
doesn't scream 'evil' (even with the lovely new lore!). Try moving
the evil onto the macabre finger necklace instead, which *does* seem
rather unwholesome.

--------------------------------------------------------------------------------
1816016f30 | regret-index | 2023-11-01 19:31:57 -0230

Fit some more vaults from Depths / late D into Vaults, more .des clean-up
The ironic thing about the Vaults layout set all the way back in 0.12 is
that the variety of large theme vaults themselves were somewhat lost in
exchange for the small vault focus instead. With a relatively coherent and
specific monster set at this point, it doesn't take too much to fit more
into such requirements. A few late D vaults are now also scaled to fit in V,
while a couple of unexciting Depths vaults with flavour and enemy choices
more suiting for V have been moved to V instead.

(The old TSO-talks-to-you-directly angel vaults in particular might be
somewhat screwed up by ironbound convokers, but that sure also applies to
the contents of ghost vaults, so for most character it's probably fine; if
one isn't unholy, then martial-master deep elves and cacodemons are already
far more vexing to have suddenly drop in anyway. It also very slightly adds
to the overlap of Depths and Vaults here, but angels and daevas aren't
individually much threatening by Depths, so a somewhat earlier placement
should help them out.)

(Also, while I'm here, continue to adjust a bunch more headers in terms of
house style, proper organization placement, and rotating for line-saving.)

--------------------------------------------------------------------------------
eadf994542 | regret-index | 2023-10-30 18:22:34 -0230

Quick swamp.des adjustments
Mostly house style imposing + some particularly weird enemy set adjusting.

Most worthy of note:

 * Put a single @ in each of the super-common deep water pools, so they
   finally stop randomly being completely closed off from the level.
   Closes #3171. Doesn't close 3055 due to the Orc example there.

 * Properly put the extra tag on most of the decor vaults and move some
   of them to the right section. Means even more decoration in the most
   decorated branch, but it's probably fine.

 * Replace the vampire knights in byrel_swamp_growth_death_and_undeath with
   ghouls. Yes, it's a Yred vault in a branch with paralysis monsters and
   undead. The vault's also a major outlier as the most lethal Swamp end by
   a noticeable margin (alongside the pentagram end) and armoured
   aristocratic knights are flavour-wise rather out of place for this wild
   bog compared to the ghouls currently directly in the branch spawn list
   (and also on the Yred spawn list, of course). Buffs for the distant
   weaker list to balance out this absurd positioning, when weighted,
   the two newest swamp ends having 36% of kills together and two of the
   earlier swamp ends having 7% together is impending.

 * (Speaking of which, until I'm done replacing it entirely, shove some
    will-o-the-wisps into the fiery swamp end and toss out the harmless
    steam dragons for a bunch more lindwurms.)

--------------------------------------------------------------------------------
988fe4f06c | yrdzrfxndfvh | 2023-10-30 16:22:10 -0230

Two small Swamp vaults (#3330)
[Committer's notes: Put some hard caps on the body / husk count in the
former vault, put deep water in some of the chokepoints, and put more
equipment on the witch. Removed the latter vault from the Swamp ruins
constant level placement, instead making it place a random other
decorative vault from that batch. Decorated it a bit more, and also
increased the earth loot variety in such, since half of all games don't
actually have the tin of tremorstones to find and it's good to keep
sneaking in more flavourful talisman vault rewards. Also renamed it to
something even slightly parseable for an archeological dig, unless there's
a sixth song named "mirage" with actually relevant lyrics I couldn't find.

Closes #3330.]

--------------------------------------------------------------------------------
f127b1a779 | regret-index | 2023-10-30 15:46:18 -0230

Show equipment on more monsters + adjust base DS monster tile
 * Fenstrider witches have been able to pick up weapons for a long while
   without actually showing it on the tile; since they're currently already
   wearing robes, might as well show gear if they find anything else.

 * Show weapon + shield on base demonspawn monsters and those
   vault-decoration-only armataur / meteoran monsters. The former matters for
   the one Orc end still, the latter doesn't but we're still doing it for most
   of the other species dummy monsters like formicids and octopodes and tengu.

 * Swap the plain demonspawn tile with the old monstrous demonspawn tile-
   the current one doesn't have claws or horns as the crunching down of
   the base types into one monster gave them, which leads to occasional
   underestimating of their melee in the current Orc end placement.

--------------------------------------------------------------------------------
1e143483b6 | Skrybe | 2023-10-29 17:12:50 -0230

Xom-themed vaults (#2616)
[The first:] Inspired by the Xom worshiping daevas that can generate in
the Abyss. Contains daevas that call on Xom to smite the player, dancing
holy weapons, and chaos effects through apocalypse crabs and chaos
weapons wielded by the angels and daevas.  Some angels that bored Xom
have been turned to holy swine.

[The other:] Undead Xom worshipers have built a deep shrine (or maybe
they just took over a temple to Yred/Kiku?). Some of the followers are
wielding chaos weapons, a few dancing draining weapons are wielding
themselves, and cacodemons will provide plenty of opportunity for
hilarious mutations. The temple is led by mummified Xom priests
in the back.

[Committer's note: Cleaned up both headers heavily. Minorly nerfed the
Abyss vault. Converted the Crypt end into a regular D + Depths vault and
heavily lowered its derived undead / skeletal warrior spam, leaning more
on regular D + Depths chaos + demons (and some MuCks), and with a touch
of Xom's standard messy decor. Even when taking out the wide number of
demons harmless by depth, I'm ruling out cacodemons and chaos brand being
a noticeable part of the broad and notably focused Crypt end sets. D and
Depths have chaotic / demonic monsters and undead themes plenty to cover
for the union, and we could do a lot more with juxtaposition in bigger
vault themes anyway.]

--------------------------------------------------------------------------------
c230f8ef24 | Nicholas Feinberg | 2023-10-28 14:11:52 -0700

Ban a grate warden play (Midn8)
Don't let vault wardens seal doors/stairs through grates. Too easy
for it to lead to a soft-lock.

--------------------------------------------------------------------------------
643d43726f | Nicholas Feinberg | 2023-10-28 14:00:59 -0700

Unban felid claw muts (Lici)
This restriction was, as far as I can tell, totally arbitrary and
unneeded. It's been in there since felids were first added and I'm
not sure anyone has really thought very hard about it since.

Partially reverts d4ad7b454ee (2010).

--------------------------------------------------------------------------------
5d48084ff3 | advil | 2023-10-28 14:19:43 -0400

fix: levelgen freeze with zin + randart talisman
`@god_name@` in a randart talisman name would trigger a check as to
whether the randomly chosen god likes the artefact. There was an
accidental dependency in this code path on you.religion specifically for
god_despises_artefact, so the wrong god would be checked for this case,
and in particular a zin character would cause levelgen to run in a tight
loop while trying to generate a talisman. (Possibly the relevant code in
`replace_name_parts` should have an escape clause of some kind?)

--------------------------------------------------------------------------------
2a3aa404fa | advil | 2023-10-28 11:19:57 -0400

feat: a webtiles lobby idle timer
Over time a running webtiles server tends to accumulate lobby
connections where a browser window is still open to the lobby after
someone has saved; CAO runs at about 40-50 at any given time (a big
proportion of the total sockets), and I tend to think the vast majority
of these aren't real. This commit adds a basic idle timer running in the
lobby that is configurable (and disableable) by the server admin. At the
end of the timer, the connection is closed. Any action in the lobby
restarts it, but there aren't many actions that can be taken. The
default is enabled with a fairly long (3hr) timeout.

TBD: does this break beem without further special casing?

--------------------------------------------------------------------------------
6ef4313e94 | advil | 2023-10-28 11:19:57 -0400

refactor: improve webtiles socket/process cleanup
The target of this is a bit theoretical: there's some kind of leak-like
behavior happening over time where sockets that correspond to closed
connections don't get removed from the socket list, if `process` fails
to be cleaned up. I can't really figure out why the latter is happening,
but I can see it on CAO.

This commit should ensure that non-running closed connections get
handled correctly, via a single cleaner code path. It also logs the case
where there's a stale instance of `self.process` on socket close. This
bug was somewhat obscured by a logging bug, fixed in the previous
commit.

--------------------------------------------------------------------------------
f86a31d22a | advil | 2023-10-28 11:19:45 -0400

fix: don't report stopped webtiles processes as idle

--------------------------------------------------------------------------------
75a2e9a4b4 | Implojin | 2023-10-27 14:40:06 -0500

fix: Victory nearby monster checks
Prior to this commit, Victory's nearby monster checks occurred after using
consumables. This unintentionally allowed reading ?blink and ?fog without
resetting Victory's bonuses, if the character's line of sight became empty
afterward.

Victory now checks for nearby mons before using consumables;
reading ?blink with hostiles in LOS should now reset Victory's stats.

--------------------------------------------------------------------------------
d09d022031 | regret-index | 2023-10-27 16:05:43 -0230

Clean-up, revise, buff wizlab_golubria
This messy slice of Abyss has the worst direct kill rate of its peers, and also
is pretty boring compared to an Abyss trip after teleporters became far more
standard fair to see throughout the rest of the Dungeon. This also needs some
more revisions thrown its way.

 * Spatial vortices, blink frogs, and dispersal + distortion mages are now
   replaced and downplayed correspondingly for some Spider enemies instead.
   Plays off of themes of both ghost moths as interdimensional and also
   Spider:$'s spider silk aux armour for Shrouds of Golubria; gives an identity
   to contrast with"micro-Abyss"; removes the annoyance of vortex handling.

 * Enemy set cuts out early Abyss spawns due to being irrelevant for Wizlab
   depth, shifts a fair number of middle-tier enemies into earlier tiers, and
   has some commented closer to parseable weights for its enemy list.

 * The center chamber no longer places the teleporter-in spot in nearly so
   easily away from the eldritch tentacle, adds another eldritch tentacle
   to the random spawning to try and make more spots open to tentacles,
   and adds two of the higher tier enemies to the spot to add more
   variable variety than just an obsidian statue and its tentacles.

 * Randomization finally commented. Still immense.

 * Outer circle made slightly less open so there's less autoexplore time wasted
   trying to explore all of the open space outside the relevant chambers.

--------------------------------------------------------------------------------
306229cb8d | regret-index | 2023-10-27 14:48:04 -0230

Brief vault review of some slice of mini_monsters.des and float.des
Header cleaning, vaguely shoving things towards one house style, fair ways
more appropriate depth scaling for vaults with broad ranges, some proper
branch fitting. A couple of severe kill statistic deviations also targetted.
Will do more of this review in the future.

Notes:
 * Some orc minivaults have been moved from Depths to Vaults, since
   Vaults still has orcs as regular spawns and Depths doesn't.
   The endless toil to divide those two continues.

 * nicolae_hydra_factorization places the 27 one-headed hydras in its
   sequence as dead skeletons, not as monsters. Since one-headed hydras die
   instantly when beheaded, the first section otherwise hands out about
   as much XP as Lair:$ with little threat, which is far from ideal.

 * hangedman_aerie_drop hasn't properly distributed its enemies before the
   runed door is opened since 826ad36 made traps not worked behind glass.
   As a salvaging of the vault, it focuses on an unavoidable dispersal trap-
   still awkward, but at least it still has any functional gimmick now.

 * There's a long list of enemies that shouldn't bleed out of their branches
   even if it's otherwise hypothetically thematic, and doom hounds without
   Grunn near the top of that list, so they were dropped from a vault.
   Some proper review will target a lot of these things eventually-
   other stuff will probably include iron golems and creeping infernos.

 * I would have gone after more vaults with D:2 scorpions or D:5 unseen
   horrors, but that list is several dozen vaults long. Maybe there should
   be more caps on D out-of-depth placement for the extremely early
   material, maybe I should just hit only one of those ranges a little.

 * There's a lot of ORIENT: float vaults that are pretty small and empty.
   I'm not exactly sure why quite a few of said vaults aren't minivaults,
   except to make Depths:2 and 3 to roll not getting a notable vault. This
   deserves more deliberate and length review in the future (and / or debate
   over if those floors should roll guaranteed minivaults instead), but for
   now, I'm trimming a handful of them out from Depths.

--------------------------------------------------------------------------------
24f9ace8b5 | advil | 2023-10-26 08:39:53 -0400

fix: add a bounds check in webtiles menu code
Resolves mantis bug 12718

--------------------------------------------------------------------------------
7f5505f354 | MainiacJoe | 2023-10-26 04:13:36 -0230

Two Swamp entries (#3240)
[Committer's note: Thickened walls in the former vault to reduce the
chance noise makes them wander out of the vault, and removed bunyips
while mildly downgrading some of the threat in case they wake up anyway.
Reduced spriggan druid count and removed dryads + teleport closets from
the latter vault. (Monsters that don't exist outside of spells are not
currently accepted vault contents. We had cut out druids from Lair many
years ago, but they're relatively weak in Swamp these days?...) Also,
cleaned up both headers.

Closes #3240.]

--------------------------------------------------------------------------------
e1948c8a92 | hellmonk | 2023-10-26 02:57:53 -0230

feat:Talisman vault (#3211)
Small vault that places a talisman and corresponding monsters/scenery.

[Committer's note: Limited the sets per branch in terms of threat level and
branch theme, so there's no autoexploring into a Lair dancing weapon or
a Mines air elemental + raiju band. Cleaned up the header, added more of a
border, a door, and the patrolling tag so they wander away a lot less from
the vault theming, since most of these are pretty out-of-depth. Made threat
monsters not sit on top of the talisman so one doesn't miss the reason to
bother with the vault. Give each of them a small chance of being a randart.

Closes #3211.]

--------------------------------------------------------------------------------
8a8ce12e04 | Kyle Rawlins | 2023-10-25 17:39:51 -0400

fix: various issues with webtiles use item mode cycle
Toggling modes in this menu in webtiles was incredibly buggy, because
menu info was not fully updated (headers could become hoverable, tiles
stuck around, etc). This commit fixes every issue that I was able to
find.

--------------------------------------------------------------------------------
7ea235fadd | Nicholas Feinberg | 2023-10-25 07:39:12 -0700

Tone down talisman prices (Lici)
These values were a bit too high.

--------------------------------------------------------------------------------
a325b2283a | Nicholas Feinberg | 2023-10-23 08:15:58 -0700

Fix the build..?

--------------------------------------------------------------------------------
9b7d53a0bd | Nicholas Feinberg | 2023-10-23 08:11:05 -0700

Fix a randart talisman gen bug

--------------------------------------------------------------------------------
b7fda78df9 | Nicholas Feinberg | 2023-10-23 07:51:04 -0700

Add prices for randart talismans & staves

--------------------------------------------------------------------------------
0fca184906 | gammafunk | 2023-10-21 23:19:03 -0500

feat: Add evokable item damage to clua
This added an evoke_damage string field giving the damage dice display
seen when examining the item in the UI. This works for wands and XP
evokers that deal direct damage.

--------------------------------------------------------------------------------
a24f6d603d | gammafunk | 2023-10-21 23:19:03 -0500

feat: Add damage and noise to evoker descriptions
For the XP evokers that do direct damage and have casting or effect
noises, namely the Tin of Tremorstones, Phial of Floods, and Lightning
Rod, show the current damage die and noise values in the item
descriptions, like we already do for wands.

The Lightning Rod damage situation is a bit complicated due to arc
length decreasing the damage, but we mention this now in the main
description text.

--------------------------------------------------------------------------------
4004991382 | Nicholas Feinberg | 2023-10-21 20:40:29 -0700

Add randart talismans
This has been planned from the start of talismans. Should add some
occasional spice to talismans - more excitement when you find a
strong one, tough decisions when you find an earlier form with good
randart props or a later one with bad props, etc.

--------------------------------------------------------------------------------
f2c640e547 | Nicholas Feinberg | 2023-10-21 20:40:29 -0700

Save active talisman
For later.

--------------------------------------------------------------------------------
43d22bd090 | MainiacJoe | 2023-10-21 21:23:55 -0230

A Shoals entry and an Orc decorative vault (#3230)
 * Four pools, three merfolk or a tougher monster, one per pool.
 * A kraken in a very tiny pool in an oval room.

[Committer's notes: Heavy header clean-up. The first of these has been
altered for far less plants to let autoexplore actually find the Shoals
entry, and swaps out a blind autoexploring into a sea snake in Lair
for a manticore instead. The plants might hypothetically provide some
warning, but if other monsters roar right beside the walls the vault
monsters are likely to tear right through the plants.

The second of these was a kraken Shoals entrance, blocked off by plants.
There's something to be said for how kraken don't really feel much
intimidating any more these days, but there's too much that's awkward
with the use of such in Lair: it's not actually super plausible for a
Lair character to deal enough damage at full range to get the free XP, but
it's both tempting and very tedious to try, plus one can actually just get
mangled doing it. For want of another obvious use for it, the vault's name
vaguely points it at putting it in some mines instead, as one of a million
glass vaults; they didn't kill it and neither should you. Could use
another vault PR to go guarantee Orc:1 decor, maybe?...

Closes #3230.]

--------------------------------------------------------------------------------
cb8bc90ed4 | Nicholas Feinberg | 2023-10-21 14:48:15 -0700

Describe forms in the A-menu
Yet more prep for randart forms.

--------------------------------------------------------------------------------
7b14ca2962 | Implojin | 2023-10-21 15:53:36 -0500

fix: Save compat for vitrifying gaze
In saved games that upgraded across 492612b1e5, floating eyes silently kept
their paralysis gaze after becoming glass eyes, and lost the need to charge
to activate the effect, giving those bugged glass eyes the ability to spam
paralyse.

This commit hopefully fixes any remaining affected saves, by upgrading
those mons to gain vitrifying gaze.

--------------------------------------------------------------------------------
eb88551f38 | Implojin | 2023-10-21 03:18:25 -0500

fix: webtiles EV colour while Fragile
After cd2b144e7b this string became able to match both "fragile" and "agile"
statuses, erroneously colouring EV lightblue in webtiles while fragile.

--------------------------------------------------------------------------------
fa384e33e1 | gammafunk | 2023-10-21 01:09:01 -0500

feat: Evokable accuracy info for clua
Add a target_evoke() method to the monster info table. Like the
corresponding target_weapon(), target_spell(), et al. methods,
target_evoke() gives the accuracy string seen in the UI when targeting
the given monster with the given evokable. It expects an item obtained
from the clua items library as an argument, and only returns a non-empty
value for wands or the Phial of Floods. The other evokables either
always hit or otherwise don't have a meaningful notion of accuracy.

--------------------------------------------------------------------------------
fe29db990f | gammafunk | 2023-10-21 01:09:01 -0500

feat: Show the hit chance for the Phial of Floods
The Phial didn't show its hit chance in the targeting UI due to the
unique setup it has. Ideally it would use your_spells() for most of its
setup, like wands and the Lightning Rod do. Other than using a custom
range that differs from the default range of the Primal Wave spell, I'm
not sure if there are reasons why it can't use your_spells(), so I'm
just modifying the existing approach for now.

--------------------------------------------------------------------------------
24c8ebf480 | gammafunk | 2023-10-21 01:09:01 -0500

feat: Add weapon damage ratings to clua
The new damage_rating() function in the item metatable gives both the
rating as a number and the full damage rating string as return values.
An input argument added to the crawl-side damage_rating() function
allows us to get the first value. This might be doable in a cleaner way,
but this approach was simplest given how the calculation is structured.

--------------------------------------------------------------------------------
57150269e1 | Nicholas Feinberg | 2023-10-20 23:00:07 -0700

Make glass shatter
Unlike e.g. stone giants, glass eyes are being described as being
made of glass. As such, they should be vulnerable to LRD and Shatter.

--------------------------------------------------------------------------------
f5be29c462 | regret-index | 2023-10-20 17:10:36 -0230

Put Zot decorative vaults on 33% of Zot floors.
Zot's supposed to be dramatically weird, both in its flavour and as
the last branch in a normal game. This is somewhat addressed by its wacky
spawn list having been buffed over time, but can't really be that easily
conveyed otherwise in normal Crawl modes- notable terrain features only work
for otherwise constantly-fleeing normal speed characters when they're
constantly unavoidably present (c.f. water), and balance-wise we shouldn't
make every floor throw around lengthy stair and ambush-vaults and force
players and characters to frequently nearly full-clear Zot.

So, an alternative sprucing up notion. This uses the freshly 54 Zot-only
decoration-only vaults to place a fair ways more often than they'd normally
would otherwise, like how D:14-15 and Depths frequently place their own
decorative vaults. Most of them rely on weird level-intersecting negative
space tricks or echoing all the rune vaults one finds those keys to Zot.
It's not much, but it's more interesting than the current paradigm, anyway.
If there's mild concern, luniq_ tags could be made uniq_ instead...

(For speedrunners and divers, it's worth noting a fair number of these
vaults roll a 1/4 or 1/5 chance for one stair, so there's not too much
pressure to memorize the vaults for if they'll have stairs or not under
such circumstances compared to anywhere else on the floor.)

--------------------------------------------------------------------------------
59900296c7 | regret-index | 2023-10-20 17:10:17 -0230

Update the older decorative Zot vaults.
 * Add the new luniq_zotdec_(large/negative_space/liquid) tags as corresponds
   to the each of them, so they work better with the new set using such.

 * Remove a teleport island, even if it's unlikely anyone gets stuck by Zot.

 * Add a quick tiny amount of variation to some previously static curves.

 * Interplay of stone, metal, and crystal walls is pretty overdone at this
   point in all the other decor vaults already, since Crawl is so restrained
   on decoration options outside of fancy tilework. As such, several of the
   vaults relying much on that get more negative space tricks instead.

--------------------------------------------------------------------------------
76384004bd | regret-index | 2023-10-20 17:10:13 -0230

Large batch of Zot decor vaults.
Something like forty of them, joining the prior fourteen for a round 27 X 2.

Several different focuses: negative space (by letting regular levelgen fill
in or weirdly connect splits), st_stairs_# (as a minivault series seen
throughout the game but also higher chance), rune vaults (since they're
containing the keys to this realm in the first place), and some of the
layouts available for Zot (like layout_onion/_interference). The rune vaults
miniatures use a tiny amount of wall-facing coloured glass, since that's
been established by a variety of other Zot vaults by this point.

Most have only a small chance for a stair. There's some self-explanatory
luniq_ tags preventing floors from becoming too consumed by all this:
 * luniq_zotdec_rune
 * luniq_zotdec_liquid
 * luniq_zotdec_large
 * luniq_zotdec_negative_space

If the rune vault gimmick turns out to be a bit too much (so many rune
branches involve liquids, after all), then they should be set to scale
versus depth: Lair roulette for Z:1-2, V / Abyss / Slime for Z:2-3, and
extended for Z:3-4. There's not nearly as much liquid focus in the
non-rune-vault-mock-up other decor vaults.

Intended for a follow-up commit that standardizes additional decorative
vault placement for Zot, like how the bottom of D and Depths both work.
Still usable even if that doesn't happen, of course.

--------------------------------------------------------------------------------
d0bd89e52a | regret-index | 2023-10-20 17:02:44 -0230

Further adjust arcanist vs occultist spell sets, power, placement
Arcanists being hasted paralyzing Lightning Bolt spammers was a bit much
for the prior pre-Lair out-of-depth / late D regular spawn, but Freezing
Cloud is next to harmless because it won't even fire on itself like the
ones with the old spellsets do, but still easily die to it anyway with
the right layout. Meanwhile, occultists spawning in Depths is still
mostly harmless beyond the necessary state of diluting other spawns, due
to their relatively low spellpower by that point; overall, the Fireball
+ Banish spellset has significant issues with being much more successful
at banishing the player (to a harmless Abyss:2) than actually directly
threatening to kill them. Yet some more shuffling around is somewhat
warranted.

The new spellsets are:
 * Arcanist: Bolt of Cold, Vitrify, Haste, Blink
 * Occultist: Fireball, Banish, Invisibility, Force Lance

The latter also gets more HD and slightly more health. To acknowledge their
more consistent blasting threat (alongside the higher banish chance), they've
been shoved down another regular level of D, and vaults placing both earlier
interchangeably now place occultists slightly deeper- mostly post-Lair. Vaults
not focused on high variety also more consistently place occultists over
arcanists in Depths, as was clearly intended. Erolcha doesn't need this buff,
so her spellset's finally been split off from occultists for now. Though,
maybe she could swap Invis for Vitrify to sit between the two? Probably not.

(...there's still kind of a big awkward component here where banishment from
a weak monster isn't going to do much by Depths anyway, but the V placement
is a lot more frequent than the Depths placement and the point was to reduce
an increased rate in banishment. Not really sure there's an easy answer
to this outside of much further revisions instead, with, like abyssal knights
or a completely different spawn for Depths instead. At least with the HD
bump, they'll be sending people to Abyss:3 instead of Abyss:2?)

--------------------------------------------------------------------------------
9b124e0958 | regret-index | 2023-10-20 16:51:10 -0230

Great orbs of eyes: Para -> Vitrify, Drain Magic -> Polymorph, +1 HD
Great orbs of eyes are some of the stranger designs around, in being both
a combination of many other eyes yet weaker than most of them for it between
needing line of fire and not focusing on applying the one hex. In their
earliest appearances as late D generic slightly-out-of-depth spawns they're
only noticeable when one doesn't bother to swap in Willpower or is is doing
incredibly badly by the time they see them, and are rather sad when they
then appear a whiles later in V, Slime, and a bunch of Depths vaults.

Since other eyes themselves have changed a fair bit, these amalgamates can
also change to both match up a bit better and to be both more memorable.
Another hitdice (12 -> 13) helps with them landing any hexes at all later on.
Vitrify matches the floating eye change, while Polymorph somewhat matches
shining eyes in comparison to Drain Magic no longer mirroring the removed
eyes of draining. (It's admittedly less unique to take badforms away from
being mostly a Psyche and Kirke special, but the former still has Chain of
Chaos + chaos or disto brand, the latter still has Monstrous Meneagerie,
and both spawn much earlier than these do.) The unaltered presence of
Confusion and Mindblast somewhat help focus it on weakening the player
one way or another before just blasting and meleeing compared to other
eyes, so it gets to be noticeably weird and somewhat mean.

(Only minimal vault adjustment; they're not in the normal D spawn range,
and without a teleporter or runed door they don't spawn earlier than
one Lair branch vault or Vaults, which have a lot worse.)

--------------------------------------------------------------------------------
492612b1e5 | regret-index | 2023-10-20 16:51:10 -0230

Floating eyes -> Glass eyes (elliptic)
Floating eyes are pretty cool conceptually, by being one of the most
exaggerated versions of a support monster, doing zero damage themselves but
irresistably paralyzing for accompanying monsters to take advantage of.
They're also pretty awkward in practice, being late and rare and frail
enough to usually just zap nearly immediately with bolt / blast wands. Of
course, if one either can't do such or doesn't notice them alongside other
monsters, then they rather directly completely destroy specific character
builds when alongside other monsters. This rather binary state deserves
some adjustment, which comes alongside some new flavour to make sure
people notice the difference.

The new Fragile status (take 30% more damage) is plenty meaningful enough
to help with any other company, but allows enough counterplay in comparison
to Paralysis that the monster itself can be stronger. Turning these
floating eyes to glass eyes ironically comes with slightly over twice the
health (close to Depths spriggans) and non-zero EV. (They're not brittle
for the sake of LRD currently, but people can argue over all of this
flavour seperately of the mechanical work.) Also, their Vitrifying Gaze
doesn't need to charge up like Paralyzing Gaze does: instead, they rack
up the duration 6-10 turns each cast up to a cap of 50 turns. This means
one has to dedicate a bit more effort towards them to actually prevent or
reduce the effect and regularly may have to suffer through it, but one also
can actually strategize around being much more effectively frail. At the
very least, a very roughly similiar concept seems to work fine with flayed
ghosts, so it should reasonably work out here too.

For both testing purposes and variety purposes, they're set to appear a
tiny bit more in Depths and substantially more often in Slime, the latter
cutting a little into the relatively weak great orbs of eyes. (They're
already always set to spawn with another non-banding enemy, so it shouldn't
affect other normal spawns too much.) The Paralyzing Gaze monster spell
also hasn't been cut here, in case any of this is reverted, though it'll
need some work to be properly irresistable again (though maybe any future
use shouldn't skip willpower anyway, considering the prior design problems).

(Placeholder tile adjustment of the old tile for now.)

--------------------------------------------------------------------------------
cd2b144e7b | regret-index | 2023-10-20 16:51:10 -0230

New monster hex - Vitrify (take 30% more damage!)
Aside from the slow propagation of Barbs and Will/2, new statuses haven't
really been spread around on monsters too often. There's a large pool of
old monsters exchanging back and forth a variety of straightforward
conjurations and hexes while newer monsters sit on weird one-offs that are
risky to spread much further due to their given distinguishing complexity.
Surely something new could help freshen up such a pool and allow another
high-threat effect.

This new Vitrify hex applying the Fragile debuff has the same effect as the
downside of two stacks of Harm without the upside: if you take any damage,
you'll take 30% more. This is obviously quite bad, but in comparison to
paralysis, which this is meant to mildly lower the presence of, one still
keeps EV and SH to avoid damage with. Also, instead of rolling 2-4 turns of
monster behaviour to randomly fail to / ruin you with with little recourse,
one has 10-25 turns to use any number of defensive consumables, spells, and
actions to shield one's self with until it wears off. Currently, like Strip
Willpower, monsters won't cast it again if you already have the debuff, so
they can focus on hitting you instead.

(There's been some wondering if lowering current + max HP would be more
transparent about its exact effects in comparison to the innate fuzziness
and spikes inherent to screwing with damage in a game with such complicated
defense calculations; c.f. the time gap between 762e91d and 141e18f.
I'm not much of a fan of this alternative; aside from stepping on the toes
of the rather widespread flayed ghost, I'd argue that for many players the
actual value of one's own max HP numbers is pretty fuzzy in how most people
don't remember the exacts of vast network of incoming damage numbers anyway.
Still, it's worth noting for future work if this state of Vitrify doesn't
work out.)

(Balancing numbers, word and phrasing choices, and uses of this, are all
openly subject to change in the future. At the very least, it's been nine
years since the Vitrification card was around and seven since Xom did the
same effect, so it's unlikely for too much confusion on that front, and
while Fragile is also an equipment modifier word, I'm sure most people
would agree unequipping your self is lethal. This has also been implemented
as a status for monsters, for charming or summoning purposes. It's rather
boring to directly put much of in player hands, but it might be reasonable
to toss into Xom's list or shuffle around some Nemelex cards to fit in
over Degeneration's awkward placement in the destruction deck.)

--------------------------------------------------------------------------------
762e91d90a | regret-index | 2023-10-20 15:35:23 -0230

Fix Harm not dealing more damage to players & extra multiplying poison
141e18f has two seperate bugs. Using *= operators in ouch.cc's
_apply_extra_harm, due to the order of operations, results in it rounding
back down to the neutral 100%, as can be witnessed rather directly with
Torment but presumably was otherwise attributed to defenses and damage
roll fuzzing otherwise.

Also, when poisoned, Harm seems to use the poison value rather than the
given Harm stacks on the player / monster. This results in fun
multiplicative issues from sufficiently higher hits of poison- redbacks
can inflict 200 poison damage in one hit, for example.

This fixes both. Time for more re-evaluations of Harm again...

--------------------------------------------------------------------------------
daa99269f9 | Implojin | 2023-10-19 21:33:19 -0500

lint: unbrace

--------------------------------------------------------------------------------
9ea0feecda | Implojin | 2023-10-19 21:12:11 -0500

Remove some commented-out tentacle code
Presumably some of this has been useful for debugging in the past, but most
of it hasn't been touched in >9 years and there's no need for us to retain
a bunch of dead code here.

--------------------------------------------------------------------------------
4ff0be5013 | Kate | 2023-10-20 01:21:31 +0100

Fix staff of air description
As with the other elemental evoker staves, it ignores AC, so make sure this
is documented in the item description.

--------------------------------------------------------------------------------
e801674230 | Kate | 2023-10-20 01:21:26 +0100

Apply half AC to Static Discharge damage
Instead of ignoring AC entirely, for consistency with other spells dealing
BEAM_ELECTRICITY damage. Increase base damage slightly to compensate
(although this may not be necessary, since most early monsters won't have
enough AC for it to make a difference, and as an L2 spell it should fall
off past the early game).

--------------------------------------------------------------------------------
b096ee56cb | Kate | 2023-10-20 01:20:21 +0100

Simplify Static Discharge damage calculations
For mysterious reasons, Static Discharge had 3 different damage
calculations - one for hitting monsters, one for the hitting the player, and
one for when the spell caused self-damage to the caster. However, the self-
damage calculation was always overwritten by the player-specific calculation
so only applied to monster self-damage.

Simplify the spell to always use the same damage calculation, which is
halved when hitting the caster. In practice this should be mostly
indistinguishable - the player will now take noticeably more damage from
hostile Static Discharge casters, but there aren't any of these outside of
player ghosts.

--------------------------------------------------------------------------------
3617cccc65 | regret-index | 2023-10-19 21:33:52 -0230

Adjust decorative gimmicks for a pair of arrival vaults (#2493)
shiori_arrival_elements seems to only generate a single cloud per billowing
for three of the sections, currently. The fog_machine code for the vault
hasn't been adjusted as far back as 58b486a's cleanup of the header, so it's
presumably some accidental quirk of limiting fog_machine cloud spread when
not visible or connected to the player. Since the dangerous clouds are all
behind stone glass, it should be fine to let them billow a little harder with
some higher other parameters and using still-functional spread_rate values.

amcnicky_arrival_blooded_trapdoor was adjusted in 91da126 to actually place
some blood, but does't guarantee any, so I opted for a little more guaranteed
blood splatter. That commit also referred to the wrong github issue, since
said issue accidentally listed a different issue number for another game,
alas.

Closes #2493.

--------------------------------------------------------------------------------
f4fcaacff8 | MainiacJoe | 2023-10-19 19:28:55 -0230

Two Sewer entry vaults (#3236)
These are maze entries with either 5-6 normal sewer entry monsters
or a single iguana.

[Committer's note: Cleaned up headers, put the iguana chance a
little deeper- D:3 is a floor early for iguanas.

Closes #3236.]

--------------------------------------------------------------------------------
6adbb78044 | RypoFalem | 2023-10-19 21:59:16 +0100

fix: implement a correction for imp-liments
lich -> death form. Imps can compliment the player again.
--------------------------------------------------------------------------------
8b917bc6d4 | Nicholas Feinberg | 2023-10-19 13:11:36 -0700

Remove weapon enchantments
RIP Freezing Brand, Warp Weapon, et al.

(Just moving files around.)

--------------------------------------------------------------------------------
7b59d4eb97 | DracoOmega | 2023-10-18 18:34:05 -0230

Make monster low-hp casting stop ignoring fear (and other things)
When a monster is at less than 1/3 hp, it has a flat 1 in 8 chance to cast
a random spell it knows (in addition to its normal spellcasting chance).
But this extra cast chance ignored monsters being afraid (ie: they would
cast offensive magic just fine) and also range flags on spells (so spark
wasps at low hp could use blinkbolt from melee range, which they are
normally forbidden from doing).

This commit enforces the same checks on low-hp casting that normal casting
has. (Really, it would probably be good to fold all this code together a
little more cleanly, but this should fix the most direct problem).

--------------------------------------------------------------------------------
84ea7605eb | Nicholas Feinberg | 2023-10-18 10:52:00 -0700

Mark !invis useless again when perma-backlit (CarefulOdds, elliptic)
This was broken by 902d8d2af84.

!invis is now marked useless in flux form. This is not really ideal
(autopickup should really take it anyway) - someone should fix it.

--------------------------------------------------------------------------------
62d6f922e0 | Nicholas Feinberg | 2023-10-18 10:52:00 -0700

Tweak backlit mut desc (CarefulOdds)

--------------------------------------------------------------------------------
83f249bd18 | Nicholas Feinberg | 2023-10-18 10:52:00 -0700

Simplify repeated !invis use
The invisibility spell is long gone, so we don't need to worry
about repeat casts (if we ever did?). (This is pre-DCSS logic.)

--------------------------------------------------------------------------------
95c4c6a0d8 | Implojin | 2023-10-18 03:25:21 -0500

fix: Treat the Zot clock as noteworthy
..and stop this note from printing "Buggy note passed" in the log.

--------------------------------------------------------------------------------
8b6cb33e30 | Implojin | 2023-10-18 03:06:59 -0500

Clarify Meteoran Zot clock description (CarefulOdds)
As the Zot clock no longer insta-kills, let's be more specific about its max
HP reduction effect.

--------------------------------------------------------------------------------
0a390f2509 | Nicholas Feinberg | 2023-10-17 21:17:59 -0700

Fix dream grammar
"DickyLongcocking saved by the dreamshard necklace!" is not very
grammatical.

--------------------------------------------------------------------------------
e39a22a033 | Kate | 2023-10-17 22:04:13 +0100

Fix display of Axe of Woe's damage rating
On '@', just display the flavour message on its own, instead of "Your damage
rating with the +∞ Axe of Woe is about your enemies will bleed and die for
Makhleb."

--------------------------------------------------------------------------------
affab04aa4 | Kate | 2023-10-17 21:56:54 +0100

Fix displayed damage rating for non-weapons
On '@', just display a zero when wielding any non-weapon (instead of listing
out all the strength and skill bonuses that don't apply), and don't count
wand charges towards the enchantment portion of the damage rating if
wielding a wand. Closes #3280.

--------------------------------------------------------------------------------
6e6a34aff2 | Monkooky | 2023-10-17 21:23:55 +0100

Lower Jinxbite Will/2 Duration
Lowers the duration of the Will/2 status to more closely match Jinxbite;
additionally remove spell power scaling for Will/2 to remove a minor
training disincentive. This should rarely have serious balance
implications, but be better for quality of life.

[Committer's note - Refactored to avoid a crash, and added a cap to Jinxbite
duration itself.]

--------------------------------------------------------------------------------
d4ebf70e20 | Monkooky | 2023-10-17 21:23:55 +0100

Adjust handling of caps in you.increase_duration()
Removes a behaviour where you.increase_duration() could lower durations when
passed a duration with a cap while already over that cap. Relevant in a few
rare cases (e.g. Klown pies applying a capped low-duration silence would
reduce the duration of an existing silence spell).

[Committer's note - rewrote commit message and separated out Jinxbite
handling. Closes #3293.]

--------------------------------------------------------------------------------
28cbb04a8c | Nicholas Feinberg | 2023-10-16 17:11:03 -0700

Remember a dream
Add a note type and a milestone for having your life saved by the
dreamshard necklace.

--------------------------------------------------------------------------------
3060d423dc | Nicholas Feinberg | 2023-10-16 16:55:25 -0700

Unban Ozocubu's Armour + Statue Form (Lici)
Not as needed now that Statue Form isn't int-based.

--------------------------------------------------------------------------------
ebf5b86a2d | Kate | 2023-10-16 22:37:55 +0100

Remove weapons from some zombies in a bailey
Zombies aren't supposed to be able to use items, and giving them polearms
in this bailey results in the polearms not being visibly displayed in
console. The main threat of the vault is the gargoyles and vampires, so no
compensation has been given to the zombies (but they could perhaps instead
be changed back to regular orcs, as well).

--------------------------------------------------------------------------------
a885b83477 | Kyle Rawlins | 2023-10-16 17:08:50 -0400

feat: clo to force a full des cache reset
This option ensures that the des cache is rebuilt from scratch,
independent of whether the .des files have changed. It then uses this
option in `make test`, so that local runs of `make test` exercise the
entire set of des files (and match CI and webserver version update
behavior for cases where des syntax changes).

(For consistency, I probably should have named this `-resetdb`, but I
don't like the name `-builddb` in the first place.)

--------------------------------------------------------------------------------
8387aacbc1 | Nicholas Feinberg | 2023-10-16 13:59:46 -0700

Give wizards their tongues back

--------------------------------------------------------------------------------
50735af31d | elliptic | 2023-10-16 16:06:42 -0400

Make Sif gifts less frequent at lower piety.
Where Okawaru or Trog had 0 chance of gifting right after reaching 5* piety,
Sif had about an 8% chance; this made it reasonably plausible to get a gift
and then drop back below 5* during the piety timeout. This commit
generally makes Sif gifts less frequent at piety less than 6* and more
frequent at piety more than 6*. This does mean that the expected time to
the first Sif gift is longer; if this feels undesirable, I would suggest
moving gifts to start at 4* piety instead of 5*.

I'm not sure whether this is a large enough change to make it reasonably
easy for players to get to 6* Sif piety before getting every spell in the
game, but if it does have that effect then I see it as a good thing. The
main intent of the change though is to make it much less likely to drop
a piety rank without using abilities.

--------------------------------------------------------------------------------
4c35d5ed2b | Nicholas Feinberg | 2023-10-16 07:27:56 -0700

Arcanists: lbolt -> fcloud (regret-index)
To differentiate from other lightning bolt + force lance monsters,
give arcanists freezing cloud instead. Fun synergy with paralysis
and force lance.

--------------------------------------------------------------------------------
eeba0b7a58 | Nicholas Feinberg | 2023-10-16 07:23:37 -0700

Give Occultists a hand (dinky)

--------------------------------------------------------------------------------
472e003958 | advil | 2023-10-16 09:48:11 -0400

build: fix some warnings

--------------------------------------------------------------------------------
32ab0262c4 | Kate | 2023-10-16 13:03:39 +0100

Fix the build
Remove some stray wizards.

--------------------------------------------------------------------------------
02257934e3 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update monsters.txt
Update and revise translation.
--------------------------------------------------------------------------------
ebcc7e148e | Zhang Kai | 2023-10-15 23:28:06 -0700

Update monsters.txt
Update and revise translation.
--------------------------------------------------------------------------------
e0a2eff941 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update spells.txt

--------------------------------------------------------------------------------
26f404366d | Zhang Kai | 2023-10-15 23:28:06 -0700

Update items.txt

--------------------------------------------------------------------------------
6abf09ed30 | Zhang Kai | 2023-10-15 23:28:06 -0700

Create godspeak.txt

--------------------------------------------------------------------------------
dc452ea274 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update features.txt

--------------------------------------------------------------------------------
77c0d2a828 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update unident.txt

--------------------------------------------------------------------------------
baebb6b12a | Zhang Kai | 2023-10-15 23:28:06 -0700

Update unrand.txt

--------------------------------------------------------------------------------
70e9662eb1 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update species.txt

--------------------------------------------------------------------------------
beab03f220 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update gods.txt

--------------------------------------------------------------------------------
907d27a6c6 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update spells.txt

--------------------------------------------------------------------------------
550896e986 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update backgrounds.txt

--------------------------------------------------------------------------------
e30bc5b396 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update items.txt

--------------------------------------------------------------------------------
be6526df08 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update montitle.txt

--------------------------------------------------------------------------------
f21790cbe8 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update monsters.txt

--------------------------------------------------------------------------------
69cb52fc78 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update status.txt

--------------------------------------------------------------------------------
30f743f5ea | Zhang Kai | 2023-10-15 23:28:06 -0700

Update mutations.txt

--------------------------------------------------------------------------------
90a03a5dd1 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update tutorial.txt

--------------------------------------------------------------------------------
1e2b247f76 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update ability.txt

--------------------------------------------------------------------------------
75c64fe6d6 | Zhang Kai | 2023-10-15 23:28:06 -0700

Update help.txt

--------------------------------------------------------------------------------
129f0b0447 | Nicholas Feinberg | 2023-10-15 23:25:40 -0700

Split wizards in half (elliptic)
When monster spellbooks were merged in bc7614a589d44b (Jan 2021),
the number of wizards with Banish tripled. This increased the amount
of Banishment in Crawl by an undesirable amount.

Wizards were used quite widely for thematic reasons - they're a
Generic Magic Monster. Rename them to 'occultists' and add an 'arcanist'
monster, which has the same stats but a non-banishy spellbook
(para, haste, lbolt, and flance). Put occultists in Depths, arcanists
in Vaults, and a 50/50 split everywhere else. (Wizard name replaced
to discourage future overuse and to disambiguate with orc wizards.)

Didn't bother reflowing some vaults lines, so some are quite long now.
Sorry!

--------------------------------------------------------------------------------
1a8549509d | gammafunk | 2023-10-15 21:33:58 -0500

fix: Colour some clear stone in a vault (elliptic)
For gammafunk_dig_for_victory, make all clear stone use the special
color currently used to hold the deep troll earth mages flanking the
inner path. This colouration was done to distinguish diggable from
non-diggable clear walls, especially in console, and there's no reason
not to apply it to the clear stone proceeding the loot area as well. We
do that and additionally use the colored stone for the outer walls as
well, so now diggable and non-diggable clear walls are always
distinguished by the same color.

--------------------------------------------------------------------------------
40fc089f4a | Kate | 2023-10-16 00:34:06 +0100

Document Nessos's special-cased brand stacking
Closes #3316.

--------------------------------------------------------------------------------
86116bc889 | Nicholas Feinberg | 2023-10-15 15:43:41 -0700

Give fire crabs rLava (elliptic)
Brutal buffs, or perhaps nerfs, to hangedman_research_pyrotechnics,
cheibrodos_lair_end_hotspot, and minmay_lair_entry_lava. (The latter
is the point.)

--------------------------------------------------------------------------------
85e71fe22c | Nicholas Feinberg | 2023-10-15 15:23:18 -0700

Fix: ID randbooks
Reverts to the behavior we had before 658a57c81a4f6. Fixes bugs.

--------------------------------------------------------------------------------
be960a18b5 | gammafunk | 2023-10-15 16:18:25 -0230

fix: A fix and minor changes to branch entries
Add a missing MONS statment and apply some house style rules.

--------------------------------------------------------------------------------
385d4b38af | regret-index | 2023-10-15 16:17:18 -0230

Vault review: Branch entries
Most of this is nerfs to notable statistical outliers of the most dangerous,
and minor buffs to the absolutely weakest. It's not bad for a branch entry
vault to have some notable danger, but the higher it is, the more it
de-emphasizes the branch the vault spawned in and the more it emphasizes
specific spoiler knowledge or arbitrary surprise spikes of danger. For
example, autoexplore being bad around trees in Lair:2-3 if any noise was
made because one could travel into blind harpooning beside dual bog bodies /
hydrae, or random doors in Depths revealing three hellephants and five
hell hogs immediately on the player at once. Not ideal.

(This occasionally also just uses more strict NSUBST behaviour to reduce
slim chances for absurd numbers, and also makes some minor adjustments
for Depths and Hells having continued to change identity over time.)

Additional notes:
 * A slim few rarely-spawning entries rely on a singular extreme out-of-depth:
   like a fire crab guarding Lair, or a guardian serpent guarding Snake.
   For now, I'm just adding some terrain cover to mildly reduce the threat;
   further discussion of the state of these is probably warranted.
   Some others, like the oklob plant guarding lair and the mini-Vaults:5
   entrance get people far more for hubris than inherent chasing danger...
   so their inherent nature hasn't been touched.

 * No deep water in Spider entries (no clinging anymore, discourage poking).

 * No ORIENT: float in Snake entries since other lair branch entries aren't.

 * While a couple of the tier 4 and tier 3 demons could serve the occasional
   support functionality (af_corrode, af_barbs, malmutate), their presence
   in Depths entries to Pan was notably weak otherwise compared to
   how much the constant Hells entrances got. With this, the entry function
   now places no tier 4s, less tier 3s, and usually a second tier 2.

 * This also slips in some minor formatting style standardization-
   stuff like a standard NAME -> TAGS -> DEPTH -> ORIENT -> MONS -> ITEM ->
   KFEAT -> [randomization] -> feature tiles and colours order, or
   minimizing "nothing" in monspec and itemspec. Establishing a firm
   house style guide and enforcing it might be nice eventually...?

--------------------------------------------------------------------------------
d2e1b1f749 | mainiacjoe | 2023-10-15 16:02:24 -0230

One arrival vault (#3178)
An oval room with oval walls in the middle,
with decorations around the entrance inside.

This vault was the sample project in MainiacJoe's "The Beginner's Guide
to Contributing Vaults to Dungeon Crawl: Stone Soup".

[Committer's note: Moved from simple.des to small.des.
Closes #3178.]

--------------------------------------------------------------------------------
75fcfec63a | Implojin | 2023-10-15 12:36:39 -0500

fix: Conjugate aoops pursuit verb (riverfiend)

--------------------------------------------------------------------------------
e136f0c47a | regret-index | 2023-10-14 21:43:23 -0230

Remove fast movespeed off of monster tengu, compensate each differently
Player tengu have lost faster movespeed due to kiting tedium, so monster
tengu should somewhat correlate. While I personally feel that there's
some advantages to not strictly trying to preserve symmetry between
players and monsters for the sake of making monsters also actually work,
the marginal speed advantage of monster tengu is east enough to exchange
for actually fleshing out and focusing in on the rest of their gimmicks.

Each of tengu reavers, tengu warriors, and tengu conjurers gets a different
buff to compensate: tengu reavers get rMsl, tengu warriors get AF_FLANK,
and tengu conjurers cast Battlesphere more often + swap emergency Blink
for emergency Force Lance.

 * Late game ranged combat is exceptionally strong and simple, with extremely
   little notable trying to counter it (spriggans die to area wands, Sojobo /
   Enchantress are both unreliable spawns and both dislike wand of roots).
   Tengu reavers currently having an identity of random bolt + decent melee
   basically makes them a fancier giant. Giving them rMsl like Sojobo has
   suits the air apt, fleshes out the current focus on having all the bolts,
   and puts a little more pressure on those late game ranged characters.

 * Tengu warriors were just slightly more dangerous orc knights aside from
   their faster move speed, except with another tengu instead of battlecry +
   other orcs, and in late D after one may have already done Orc. Giving them
   the new AF_FLANK to fly behind the player in melee gives them a memorable
   trick without feeding further into stats arms races, and even results in
   a minor support role when they spawn in Depths. (As mid-D out-of-depth
   vault / spawns, if the player starts running earlier, then they're easier
   to escape without the added movespeed anyway. If players don't, well.
   They'll learn.)

 * Tengu conjurers are the only normal monster with battlesphere! They're
   also basically earlier deep elf zephyrmancers that cast lightning bolt
   less often, down to sharing blink (if in an emergency slot). To give
   them a bit more of a niche with this speed nerfing, they're getting
   a higher battlesphere cast chance (since it's completely dependent on
   proper sequencing of random actions) and replace emergency blink with
   emergency force lance (which will still put some distance but also
   actually activates the battlesphere more than a tenth of the time).

A few early D vaults using tengu monsters have been adjusted alongside this.

--------------------------------------------------------------------------------
9a209b2425 | elliptic | 2023-10-14 11:18:35 -0400

Remove some Sword of Power breakpoints
Now it just fires HP/270 beams, rounded randomly. This is a tiny buff to
characters with less than 270 HP and a larger buff to characters with
significantly more than 270 HP (hard without statue form + berserk etc),
but I suspect the sword is still on the weaker side of unrands.

--------------------------------------------------------------------------------
1609e0ac53 | regret-index | 2023-10-14 02:06:53 -0230

Unbrace

--------------------------------------------------------------------------------
71e63ac981 | regret-index | 2023-10-13 22:56:27 -0230

Give ufetubi AF_FLANK, make them spawn in duos a floor later
There's not much that ufetubi have to stand out amongst the early fast
monsters- essentially hounds with higher damage and half the health plus
some random resists. While they're more notable in early D than anywhere
else they once previously spawned, they could do with any actual distinction.

Since they're originally mostly noticeable for flocking off of ynoxinuls,
let's lean on those origins a little harder. They get the new AF_FLANK
capacity to slip past the player on a melee attack, and to make that
actually notably matter anywhere, they also get a little more HP and spawn
with another ufetubus, in D:5-7 instead of D:4-7. Maybe they'll finally be
noticeable when they pin one in from fleeing a given water moccasin or ogre?

(The ufetubi-summoning Ynoxinuls are rarely used in vaults at depths
where they'll actually hurt the player much, but this commit also nerfs
a few earlier vaults that use either without easy recourse, just in case.
I'm not too concerned about this affecting demon summoning too much;
sure, an orc sorcerer or high priest's ynoxinuls pin one in even harder,
but a sun demon or sixfirhy could just kill directly instead.)

--------------------------------------------------------------------------------
e004ede0ee | regret-index | 2023-10-13 22:55:08 -0230

New attack flavour - AF_FLANK
Like hellwings' AF_SWOOP, this gives a monster a chance and a cooldown to go
behind its target if said space is free. Unlike AF_SWOOP, the new AF_FLANK
triggers on melee attacks, rather than giving it a free blink close from 2
to 5 tiles away. (Since this isn't being done from long range, that chance
is 1/3 hits here, not 1/4 turns active.)

Whatever gets this thus gains the notable ability to get past its foes in
corridors and chokepoints, but without adding to the heavy use of a variety
of different types of blinking used broadly throughout the game. Autofight
probably shouldn't be too confused since they're already in melee anyway.

--------------------------------------------------------------------------------
fe8ebadbca | regret-index | 2023-10-12 16:10:23 -0230

Transform a tiny amount of Elf:3 loot into thematic Elf:2 Hall of Blades loot
The 1/3 chance to actually get an appropriate or even tempting top-tier
weapon as the only real rewards from the Hall of Blades is kind of weak
relative to the high danger an open vault eating up half of the level filled
with dancing weapons presents. It's regularly better to not open the vault,
but as a guaranteed placement avoiding it is awkward on top of the meagre
rewards- Elf:3 hatches, teleports, and teleport traps are much worse,
with little compensation for such an otherwise dramatic nature.

As such, I'm buffing Blade's items rewards, while trying to adhere to its
focus and flavour. Each vault gets a 50% chance for a blade talisman, so
unarmed characters might actually care about it and may get something, plus
two scrolls of enchant weapon and either a third or a brand weapon scroll.
A third handpicked top-tier dancing weapon also spawns half the time
(making the chance to get a specific weapon go from ~33% to ~42%), and their
handpicked brands list replaces venom and draining with heavy and spectral.
(These odds might be adjusted with further debate.)

To balance out such additional items in the branch, the Elf end vault
loot has been very slightly decreased- there's two items per endvault now
just replaced with gold. (This sort of arrangement might warrant further
reducing / "transferring" to support another optional branch's lacking
rewards versus danger, in Crypt, but that will take a fair bit more
review and debate.)

--------------------------------------------------------------------------------
02e7d12df6 | Nicholas Feinberg | 2023-10-11 18:06:31 -0700

Add Jinxbite tile (CanOfWorms)

--------------------------------------------------------------------------------
a9a24b5522 | brandon s allbery kf8nh | 2023-10-11 18:05:49 -0700

prevent a Grand Finale crash
If there are lost souls in LOS when Grand Finale is used, one may
create a new monster where the exploded one had been, causing a
crash. Catch this and take the fallback path.

--------------------------------------------------------------------------------
a0274b33d4 | Kate | 2023-10-12 00:53:10 +0100

Fix spacing

--------------------------------------------------------------------------------
ba0c9b4c9a | Kate | 2023-10-12 00:50:24 +0100

Fix Dimensional Bullseye leaking Mara clones
Expire the effect from the real monster when creating a clone.

--------------------------------------------------------------------------------
346e7cf427 | Kate | 2023-10-12 00:21:45 +0100

Adjust Sigil of Binding messaging
It gave a warning exactly 2 turns before expiring, but no message at all
on actual expiration. Timeout warning messages should generally be
randomised, and in this case there isn't really any need for a warning
message at all - remove the warning message and add expiry messages.

--------------------------------------------------------------------------------
10ed682358 | MainiacJoe | 2023-10-11 16:01:39 -0230

Add two Ossuary entries (#3238)
[Committer's notes: Moved these to the bottom of the entries section,
for now, to fit with the rest of the file. Some later commit should
reorganize portal entries to split the threatening from the decorative.
Also, made a custom non-slow vaguely Egyptian undead set replacing
D zombie use to tone down e.g. unseen horror zombie spam on D:8.
Maybe this should be functionized and used all ossuary entries?
Ossuaries themselves scaling or not based on not specifying zombie lists
is weird and really should be addressed one way or another, much less how
the non-scaling ones think rat zombies are interesting D:4 enemies.]

--------------------------------------------------------------------------------
cc72cf4df8 | Roadster Tracker | 2023-10-11 12:58:01 -0230

Adding rocket / ship arrival / monster vaults (#2773)
[Committer's note: Two smoky arrival rockets (where I heavily reduced smoke),
a Greek ship minivault (I moved to D and Depths mixing Shoals and other
enemies), and a ...beplagued colony ark capsules of zombie minivault (for
which I cleaned up the list and combined together). These are pretty silly
in this fantasy context, but I suspect few people will notice they're
rockets without source-reading anyway, so it probably should be fine.]

Closes #2773.]

--------------------------------------------------------------------------------
674d60d6f7 | gammafunk | 2023-10-10 17:13:13 -0500

fix: Correct an NSUBST
For the subvault hex_subvault_crossings, the rock replacement pattern
should leave non-modified glyphs as rock, not replace them with floor.

--------------------------------------------------------------------------------
9b2fd80f0c | gammafunk | 2023-10-10 16:47:53 -0500

fix: Place some subvaults correctly (elliptic)
For the hex_subvault_* set of subvaults, which are part of
hellmonk_hyper_hexagons, the subvaults were missing an unrand tag to
prevent their placement as normal vaults. Add this tag and move common
tag setup to the hex_setup() function these subvaults all use.

--------------------------------------------------------------------------------
b85685009f | Nicholas Feinberg | 2023-10-10 12:48:02 -0700

Make /light match Dazzling Spray (ebonnov)
It was confusing that Dazzling Spray didn't match /light for which
monsters could be blinded. Restrict /light so that nonliving, plant
and undead monsters can't be blinded by it. (Which seems moderately
intuitive.)

--------------------------------------------------------------------------------
3d5d91748a | Nicholas Feinberg | 2023-10-09 16:51:52 -0700

BOULDER (CanOfWorms)
Add a spell tile for Brom's Barreling Boulder.

--------------------------------------------------------------------------------
74853506b1 | Nicholas Feinberg | 2023-10-09 15:57:14 -0700

Small binding sigil tweaks

--------------------------------------------------------------------------------
087f8585d8 | Nicholas Feinberg | 2023-10-09 15:56:35 -0700

Binding sigil spell & feat tiles (CanOfWorms)

--------------------------------------------------------------------------------
f9435882c7 | Nicholas Feinberg | 2023-10-09 15:28:55 -0700

Deduplicate Oka gifts (elliptic)
Ban Oka from offering non-artefact weapons/armour of the same type
and ego, since it was quite depressing to be offered three bardiches
of protection or whatever.

This is an Op^Oka armour gift buff especially, since they have so few
slots that they're very likely to get gifted artefacts. That's fine,
though.

--------------------------------------------------------------------------------
102095e7f3 | Nicholas Feinberg | 2023-10-09 15:27:16 -0700

Fix the build

--------------------------------------------------------------------------------
0814019178 | Nicholas Feinberg | 2023-10-09 15:10:33 -0700

Add Okawaru capstone icons (CanOfWorms)

--------------------------------------------------------------------------------
9dce7d3444 | MainiacJoe | 2023-10-08 20:31:50 -0230

Two late D vaults (#3229)
[Committer's note: Both of these were Depths entries with some issues- one
didn't have any threat or interest unless one digged out extremely
out-of-depth enemies, and the other had little actual connection to Depths as
a branch. Both of these have been converted to late D minivaults instead.
The former arena made into an Okawaru vault using some D oods, as another
experiment with all the backtracking material to make opening something be
dangerous even late game. The latter labyrinth was given a few Lab
non-minotaur enemies at the entrance to warn a little more and contrast
a little with the other current faux-Lab. Note we probably shouldn't have
too many more of the latter: added a new uniq_ tag for now, anyway.]

--------------------------------------------------------------------------------
469dc525a8 | yrdzrfxndfvh | 2023-10-08 18:31:02 -0230

new vaults in crypt and depths (#3028)
[Committer's notes: A highly specific game reference of an beast zombie pile
+ curse skulls made into an enclosed Crypt single-stair ambush. Derived
undead can't regenerate, but they can't be taken up the stairs either, so
it should still kinda work.

Also, a tengu + shrike minivault for Depths, after I gave it actual rewards
and a little less of a chokepoint.

Closes PR #3028.]

--------------------------------------------------------------------------------
86f20125e8 | Nicholas Feinberg | 2023-10-08 13:57:20 -0700

Remove DOS support (Ge0ff)
Cont'd from 5577605d7802af08a7cc1c2d09c1b5599dfcee6c (2011).

--------------------------------------------------------------------------------
2a902b0113 | patrick | 2023-10-08 12:56:58 -0400

Add some simple decor vaults to Swamp and mini_features.des
Nothing too fancy here. Just some designs that had been stuck
in my head for a while.

--------------------------------------------------------------------------------
7dc041b90a | elliptic | 2023-10-08 12:24:05 -0400

Let nets/webs work on giants.
The precise set of which monsters are SIZE_GIANT is one that players don't
have much reason to learn for anything other than net-throwing, and it
could be an annoying gotcha when players were playing quickly and didn't
notice the (immune to nets) in the targeter for something they didn't
expect to be SIZE_GIANT (e.g. quicksilver ooze vs azure jelly).

If letting players freely net hydras, dragons, Cerebov, etc feels too
strong, we can reduce net generation and/or add some HD scaling.

This commit also affects players in dragonform, who are no longer immune
to nets/webs.

--------------------------------------------------------------------------------
362426d53f | Nicholas Feinberg | 2023-10-07 22:17:36 -0700

Fix a randbook info leak (elliptic)
"Unknown" randbooks weren't so unknown after all.

--------------------------------------------------------------------------------
c9b61b78f7 | Kate | 2023-10-07 21:05:22 +0100

Improve cloud spell targeters
When aiming cloud spells that use a targeter_cloud, correctly display when
existing harmless clouds can be overwritten. Also fix an older bug that
made cloud spells look like they could spill into a Sanctuary, and don't
allow trying to cast clouds inside a Sanctuary (previously the targeter
would tell you that nothing would happen, but the cloud could spill out of
the Sanctuary).

--------------------------------------------------------------------------------
99b8c10eda | Kate | 2023-10-07 20:45:15 +0100

Let ophan holy flames overwrite cosmetic clouds
Using the same cloud strength rules as used for other cloud spells.

--------------------------------------------------------------------------------
7ff8af7976 | elliptic | 2023-10-04 17:42:37 -0400

Simplify _cloud_is_stronger
Don't let opaque clouds overwrite harmless opaque clouds; this was mainly
relevant for using scroll of fog against catoblepas breath (which now
works). Now no opaque or harmful cloud can be overwritten other than steam
(which might not need a special case, but it dissipates very quickly anyway
so it sort of makes sense).

--------------------------------------------------------------------------------
62f75f5e9b | Kate | 2023-10-04 22:06:44 +0100

Fix apply_area_cloud being unable to overwrite clouds (qwqw)
Fixes cloud spells (such as swamp drake breath) being unable to overwrite
harmless/cosmetic clouds.

--------------------------------------------------------------------------------
d1b5ebe444 | elliptic | 2023-10-04 16:16:55 -0400

Fix hand cannon smoke being biased towards certain directions (kate).

--------------------------------------------------------------------------------
aac375c287 | Kate | 2023-10-03 23:00:22 +0100

Don't crash when self-targeting Bombard/Mule

--------------------------------------------------------------------------------
2feec9bdef | Kate | 2023-10-03 23:00:22 +0100

Prevent self-targeting purple draconian breath
As with 762be4b276345 preventing self-targeting wands of quicksilver, don't
grant purple draconians unlimited access to cancellation.

--------------------------------------------------------------------------------
b3bcc0d938 | elliptic | 2023-10-02 19:43:47 -0400

Remove pearl dragon as an option in a the_grid subvault
It just generated with a pile of gold with no surrounding holy-theming,
and there are plenty of other dragons that can be used instead. Mummies
etc deserve not to be randomly blasted by a pearl dragon like this, and
it's nice to keep them as a more special monster.

--------------------------------------------------------------------------------
9abc20d24f | Implojin | 2023-09-30 10:48:03 -0500

Fix an unintentional fallthrough (PF)

--------------------------------------------------------------------------------
dc52ec4e09 | regret-index | 2023-09-27 13:58:09 -0230

Brief reorganizing & header rewriting for some .des files
 * abyss.des - Shorten the abyssal rune vault header with the addition
   of runelights, and put the rune vaults after the rune vault combinations
   with the other non-combined rune vaults.

 * wizlab.des - Remove the XP listing off the top banner, if it's not going
   to be used and since we're not tracking average xp off of other portals.
   Put the two randomly-named wizards' wizlabs at the top of list rather
   than the bottom so it can otherwise be listed in chronological order.

 * zot.des - reorganize to seperate decorative vaults from
   non-decorative vaults, for a future plan.
   Also consistently put the TAGS line second after NAME.

--------------------------------------------------------------------------------
427724c815 | Nikolai Lavsky | 2023-09-27 15:38:30 +0300

feat: add a default force_more for Okawaru's capstone gifts
Otherwise it's easy to miss when these gifts become available.

Also, remove an obsolete force_more for Oka's armour gifts.

--------------------------------------------------------------------------------
dad65c7809 | elliptic | 2023-09-27 02:56:31 -0400

Don't have god wrath slow the player for 0 turns
Giving the message for slowing but not actually slowing the player was
confusing; instead use a more typical slow duration (same as *Slow etc).

--------------------------------------------------------------------------------
038b102fc3 | elliptic | 2023-09-26 23:09:42 -0400

Buff finessed rapier of speed.
A rapier of speed at mindelay (or various other fast weapons of speed)
takes 10/3 aut per swing (random-rounded). With Finesse this should be
halved to 5/3 aut, but instead weapon delay was hardcapped below at 2 aut.

This commit reduces that hardcap to 1 aut (which should be impossible to
reach anyway). When quickblades had the same issue as rapier of speed it
was possible to view the 2 aut cap as part of shortblade balance (though
only with Okawaru specifically...), but with new quickblades it's hard
to defend it as sensible. A finessed quickblade is already effectively
a 5/4 aut attack delay weapon.

--------------------------------------------------------------------------------
6d2ecbb638 | Nicholas Feinberg | 2023-09-26 13:18:28 -0700

Prompt before dubious bombard shots
Don't stumble backward into eg zot traps without a prompt.

--------------------------------------------------------------------------------
762be4b276 | Nicholas Feinberg | 2023-09-26 10:27:44 -0700

Ban self-targeting /quicksilver (elliptic)
It's fun to have multiple uses for items, both offensive and utility,
but using wands of quicksilver to cancel effects on the player was
entirely too powerful. Since there are so many charges of /qs than
there are potions of cancellation, it effectively made most status
effects irrelevant. It's good for games to feel different depending
on which items you get, but this went too far, unfortunately.

Purple dracs can still self-target for now.

--------------------------------------------------------------------------------
67fb590e27 | Nicholas Feinberg | 2023-09-26 09:38:05 -0700

Reduce verbiage
By one word.

--------------------------------------------------------------------------------
3fff7bce4a | Nicholas Feinberg | 2023-09-26 07:30:09 -0700

Fix bombard message (Flugkiller)

--------------------------------------------------------------------------------
3ceb0a68c4 | Implojin | 2023-09-25 18:28:50 -0500

fix: Correctly gender M_ARCHER uniques on xv
This affects Nessos, Vashnia, and Joseph.

--------------------------------------------------------------------------------
2a3a5bc3be | elliptic | 2023-09-25 02:20:03 -0400

Let monsters throw instead of launch sometimes (Superwelder).
Previously a goblin with a sling and curare would look scary but never use
the curare. Instead, make it throw in place of launching 1/3 of the time.

--------------------------------------------------------------------------------
8ad8ed16fb | Implojin | 2023-09-25 01:18:04 -0500

fix: Don't steal mons throwables with Tukimas (Darby)
Previously, it was possible to pull throwables out of monster inventories by
casting Tukima's Dance at them, iff they were wielding a ranged weapon.

This behavior seems to date back to when launchers had ammo and seems buggy;
I think we're ok to just remove it.

--------------------------------------------------------------------------------
c15d34cb79 | Implojin | 2023-09-25 00:30:03 -0500

fix: Allow inventory ctrl+f searches in descent
Broken in 9a366f9be8.

--------------------------------------------------------------------------------
3a2c1c66ba | Nicholas Feinberg | 2023-09-24 14:59:41 -0700

Halve bombard knockback chance (Flugkiller)

--------------------------------------------------------------------------------
143b1e81fc | elliptic | 2023-09-24 00:45:00 -0400

Make heavier body armour less common from acquirement.
I have no clue whether this is a significant change in practice and this
body armour weighting code should really be replaced with something less
spoilery and impossible to understand, but this has been bugged since 0.17
(47d87d71 removed this abs alongside other changes and refactoring) and
at least now the "highest chance when armour skill = (displayed) evp - 3"
comment isn't lying.

--------------------------------------------------------------------------------
2a533130d9 | Kate | 2023-09-24 00:58:48 +0100

Prevent blessed weapons generating without holy brand (qwqw)

--------------------------------------------------------------------------------
f545646a5b | Kate | 2023-09-23 22:16:42 +0100

Adjust a Ru hint (Ge0ff)

--------------------------------------------------------------------------------
b7646bb5e3 | Kate | 2023-09-23 21:55:03 +0100

Adjust tense in a rampage message
And its equivalent message for Line Pass/Power Leap.

--------------------------------------------------------------------------------
2ae921e79e | Kate | 2023-09-23 21:55:03 +0100

Fix a hint

--------------------------------------------------------------------------------
a5cc291a1b | gammafunk | 2023-09-23 11:49:22 -0500

fix: Use stone in a runed door vault (Ge0ff)
For minivault_13, use stone for the walls sealed by the runed door,
otherwise the vault can generate monsters than can dig free.

--------------------------------------------------------------------------------
f28bc0971e | Kyle Rawlins | 2023-09-23 11:36:17 -0400

fix: guard against the most obscure possible octoring case

--------------------------------------------------------------------------------
e5246a80f4 | Kyle Rawlins | 2023-09-23 11:05:27 -0400

fix: tighten an octoring assert
This octoring check should at least be applied during tests; this change
strengthens the check quite a bit (possibly too much, see comment).
(Note that tests are still passing, at least in one-off local runs.)

--------------------------------------------------------------------------------
a682863bf0 | gammafunk | 2023-09-23 09:45:38 -0500

fix: Use stone glass in a runed door vault (CarefulOdds)
For minmay_expanding_circles, use stone glass instead of rock so that
any monsters behind the runed door can't dig out.

--------------------------------------------------------------------------------
2b794fb95e | Kyle Rawlins | 2023-09-23 10:38:24 -0400

fix: add octoring handling for unrand lookup
Also, unrand status handling altogether to some code that is maybe only
used in wizmode?

--------------------------------------------------------------------------------
d5cc6f37b9 | Kyle Rawlins | 2023-09-23 09:57:59 -0400

fix: fix fix

--------------------------------------------------------------------------------
532e591ea2 | Kyle Rawlins | 2023-09-23 09:52:29 -0400

fix: unrand generation logic in the abyss
If an acquirement scroll was read in the abyss, the previous iteration
of this logic would allow unrands *only* if they were lost in the abyss,
which wasn't intended. I think it would also potentially break logic for
items marked as lost in the abyss when *not* in the abyss.

--------------------------------------------------------------------------------
f6de2f5ab6 | gammafunk | 2023-09-22 16:19:03 -0500

feat: A lua api for Okawaru capstone gifts
This commits adds the lua hooks c_choose_okawaru_weapon() and
c_choose_okawaru_armour() to allow automatic choice in the acquirement
menus for Okawaru gifts. This is the same method used for lua handling
of acquirement scrolls.

We add an argument to items.acquirement_items() to request items for a
specific source of acquirement. I've just chosen integers values,
starting at 1 for the scroll, 2 for Oka weapon acquirement, and 3 for
Oka armour acquirement.

There's currently no support for checking whether these one-time
abilities have been used. The you.one_time_ability_used() interface
won't work both because it's currently not used for Oka's capstones and
because there are two separate capstones. The latter isn't compatible
with the simple boolean values in the FixedBitVector used by
player::one_time_ability_used. Rather that trying to generalize this,
I'm leaving it to lua scripts to check the ability table to verify
availability cache whether the player has used them.

--------------------------------------------------------------------------------
e7c7cf74f0 | elliptic | 2023-09-22 01:51:10 -0400

Bias Oka armour acquirement towards body armour.
Old Oka gifts had this bias, so let's bring it back here as an effort to
counteract the phenomenon of getting 4 not particularly exciting aux slot
armour options and being sad that you only get to pick one - great body
armour can potentially be far more exciting than other slots.

--------------------------------------------------------------------------------
073b73dce1 | elliptic | 2023-09-22 01:47:06 -0400

Make acquire.cc less divine.
The divine parameter in acquire.cc obscured what was going on (e.g. new
Oka armour/weapon gifts set it to false) and was redundant with the agent
parameter. This commit is mostly a refactor removing the parameter - the only
functional changes should be to Xom acquirement gifts, which lost some
special-casing that was shared with Trog or (old) Oka gifts for simplicity.

Specifically, Xom armour acquirement is no longer biased towards body armour
like old Oka gifts and Xom weapon acquirement now uses the stronger skill
weighting of scroll of acquirement instead of the weaker skill weighting of
Trog gifts (and old Oka gifts). I doubt this significantly changes Xom
balance.

--------------------------------------------------------------------------------
d61d57ddb1 | Kyle Rawlins | 2023-09-21 17:47:30 -0400

lint: checkwhite?

--------------------------------------------------------------------------------
7e855b048f | Kyle Rawlins | 2023-09-21 17:45:56 -0400

feat: mention (e)quip in tutorial 3
On the theory that the (e)quip menu is simpler for new players to
understand, this adjusts a few things in tutorial 3 so that they teach
this key. I didn't actually remove mention of the specific keys, so it
does risk even more information overload. The tutorial summary is also
expanded and refactored.

--------------------------------------------------------------------------------
3877ef4a19 | Kyle Rawlins | 2023-09-21 17:14:28 -0400

fix: fit tutorial 1 summary into one fewer lines
Condense a line of this tutorial summary away.  This summary was 23
lines long.  When this is displayed as a popup in console at 80x24, the
more message + spacer eats two lines, which obscures the last line of
this summary.

--------------------------------------------------------------------------------
8fc83f02d9 | Nicholas Feinberg | 2023-09-21 11:15:20 -0700

Fix the build

--------------------------------------------------------------------------------
3021e91290 | Nicholas Feinberg | 2023-09-21 10:25:50 -0700

New new iron shot: Bombard
Leda's Unmaking felt a little too unimpactful - Iron Shot with a
little mud spattered on. Try stealing some new tech from Mule and
re-replace it with Bombard, which sends you back a tile when you cast
it.

Might need to nerf the damage a bit more or make the knockback only
a chance (e.g. a coinflip).

--------------------------------------------------------------------------------
bd3c83e6a7 | brandon s allbery kf8nh | 2023-09-21 08:37:06 -0700

Explicitly qualify std::move and std::forward
Clang++-15 now warns about all unqualified uses of `std::move` and
`std::forward`. According to https://reviews.llvm.org/D119670?id=408276
this is a new recommendation by the C++ standards committee, due to
"concerns that this might be an usual anti pattern
particularly britle worth warning about - both because move
is a common name and because these functions accept any values".

--------------------------------------------------------------------------------
a77100ea1a | Nicholas Feinberg | 2023-09-20 21:59:39 -0700

Fix Mule reflection crash (elliptic)

--------------------------------------------------------------------------------
9fc3694601 | Nicholas Feinberg | 2023-09-20 21:54:03 -0700

Small boulder buffs
Reduce wobbliness and increase structural stability.

--------------------------------------------------------------------------------
3bb973df9e | Monkooky | 2023-09-20 20:31:58 -0500

Fix torpor snail slow
Torpor snails currently allows you to clear any other slow, by walking into
the snail's LOS then leaving it.

This fixes that.

[ Committer's note: Squashed, Closes #3313. ]

--------------------------------------------------------------------------------
c8a3e26bd0 | Implojin | 2023-09-20 18:43:06 -0500

Slightly increase orb floor drop rate (again)
Continuing from 548886b2ed for the same reason (plenty of monsters generate
with other kinds of shields as gear, but not orbs), let's again bump the
floor orb drop rate slightly. No comp for other weightings: 548886b2ed
silently adjusted the total weights here from 60 to 58.

--------------------------------------------------------------------------------
0bc164a743 | Kate | 2023-09-20 12:16:28 +0100

Refactor _acquirement_item_def
To make it clearer that this parameter isn't equivalent to the "divine"
variable used by acquirement_create_item.

--------------------------------------------------------------------------------
e1f4d4d48a | Kate | 2023-09-20 12:16:22 +0100

Fix Okawaru capstone acquirements having lowered quality
Confusingly, only the missile gifts should be treated as "divine", since
this affects the quality of acquired items in various ways (reduced skill
weighting, worse brands, etc). The capstones are intended to be at scroll
acquirement level of quality.

--------------------------------------------------------------------------------
eb2ac4d552 | Nikolai Lavsky | 2023-09-20 12:47:56 +0300

fix: replace Portal Projectile with Dimensional Bullseye in a shop
`nicolae_custom_books` still had Portal Projectile in a few
self-published books, even though it's no longer a player-castable
spell.

Replace it with Dimensional Bullseye, which seems to fit the theme of
the relevant spellbooks.

Resolves #3311.

--------------------------------------------------------------------------------
95b03c3367 | elliptic | 2023-09-19 21:01:16 -0400

Tweak Okawaru missile gift timing/timeouts.
This tries to roughly approximate the old missile gift frequency and overall
piety drain from timeouts. In particular, missile gifts were moved to 5*
(from 3*); they were quite rare before 5* anyway unless you trained Throwing
a lot. Also, this commit removes the spoilery impact of Throwing skill on
throwing gift frequency/piety drain rate.

More tweaks will probably be needed, since this tweak is purely theoretical
based on my (possibly flawed) reading of the code and the other Oka gift
changes will impact Oka balance too.

--------------------------------------------------------------------------------
46d7d4cff6 | elliptic | 2023-09-19 21:00:34 -0400

Fix Okawaru missile gift stacks being ten times as large as intended.

--------------------------------------------------------------------------------
c67433417a | Kyle Rawlins | 2023-09-19 15:41:09 -0400

fix: don't truncate headings when calculating column layouts
This was a bit of code that was incomplete in the multicolumn layout
code, where it was intended that headings always occupy their own row.
The side effect of it being unimplemented was that even for regular
1-column menus, headings could get truncated if they were longer than
regular menu items.  (No current multicolumn menus use headings, so this
remains a bit under-tested.)

Resolves #3305

--------------------------------------------------------------------------------
bc85d14992 | Kate | 2023-09-19 19:55:56 +0100

Replace Okawaru's gifts with capstone acquirements
Replacing the (often low-quality) weapon and armour gifts when gaining
piety, give Okawaru two capstone abilities gained at 6*, offering two
separate acquirement-quality selections - one of weapons, and one of
armour.

Okawaru still grants throwing weapons regularly, but will no longer give
weapons or armour over time. The gift timeout on throwing weapons is
slightly increased to compensate for the fact that the longer gift timeouts
from weapon/armour gifts no longer apply (but this may need further
fine-tuning).

--------------------------------------------------------------------------------
6bc09d010c | hellmonk | 2023-09-18 15:40:52 -0400

Revert "add readme and ci"
This reverts commit 6ae0a060256104c6a1ce545c6cb28a428d641ad2.

--------------------------------------------------------------------------------
6ae0a06025 | hellmonk | 2023-09-18 15:36:09 -0400

add readme and ci

--------------------------------------------------------------------------------
356b232404 | Kyle Rawlins | 2023-09-18 09:51:20 -0400

fix: a crash due to bad easy_floor_use code
The item use menu, for historical reasons, does some of its logic
outside of the menu code proper. This commit fixes a crash that resulted
from an ad hoc use of a keycode on menu exit to handle the
easy_floor_use case, where that keycode could also be set by normal menu
code via processing of CMD_MENU_CYCLE_HEADERS.  Instead, just add a bool
to specifically handle this return case.

The preconditions for this crash are an empty menu, which possibly
should be prevented (see 6eb203de8ee), and if allowed, could stand to
have better ui. But an empty menu still shouldn't crash.

--------------------------------------------------------------------------------
4b2e6d12cb | Kyle Rawlins | 2023-09-18 09:28:11 -0400

Revert "Temporarily disable tab-to-toggle-(un)wield (Darby)"
This reverts commit 6eb203de8eedc1ca9851bf46ce9fca1c41805539.

--------------------------------------------------------------------------------
5eb97db20b | Nicholas Feinberg | 2023-09-17 20:33:49 -0700

Allow fragging boulders (Lightli)

--------------------------------------------------------------------------------
c751ee2058 | Nicholas Feinberg | 2023-09-17 20:11:45 -0700

Identify un-ID'd randbooks when read
Can't miss out on those exciting names :)

--------------------------------------------------------------------------------
1a4ebe560d | Nicholas Feinberg | 2023-09-17 20:06:26 -0700

Fix missing book articles (elliptic)
A leatherbound book, not just leatherbound book. (Cont'd from 4455d0aa58...)

--------------------------------------------------------------------------------
4455d0aa58 | Nicholas Feinberg | 2023-09-17 20:01:54 -0700

Re-identify sif book gifts
Cont'd from 658a57c81a4f6df, bb03a45e84812a8b891.

--------------------------------------------------------------------------------
6eb203de8e | Nicholas Feinberg | 2023-09-17 19:45:23 -0700

Temporarily disable tab-to-toggle-(un)wield (Darby)
Crash-y. We should add logic to check whether the opposite operation
is valid, only display & obey the control when it is, and bring this
function back.

--------------------------------------------------------------------------------
672be3cf0e | Nicholas Feinberg | 2023-09-17 19:36:08 -0700

Fix floor talisman crash (particleface)
Don't crash when evoking an illegal floor talisman, e.g. when undead
or in a forced form.

--------------------------------------------------------------------------------
bab767e8fe | Nicholas Feinberg | 2023-09-17 18:30:52 -0700

Reduce boulder wobbliness (elliptic)

--------------------------------------------------------------------------------
a445dbd2db | Nicholas Feinberg | 2023-09-17 12:49:23 -0700

Tweak Lugonu powers description (TenthLevelVegan)

--------------------------------------------------------------------------------
59c20c4c50 | Nicholas Feinberg | 2023-09-17 11:56:32 -0700

Credit Cureja

--------------------------------------------------------------------------------
6a5aa610a2 | Nicholas Feinberg | 2023-09-17 11:51:25 -0700

Give boulders a flarhgunnstow (elliptic)
Experimentally, to push Brom's Barrelling Boulder toward an appropriate
power level for a start-book spell, add a 1/3 chance per move of the
boulder wobbling to one side while rolling. This makes it fairly
prone to hitting the sides of corridors, for example.

--------------------------------------------------------------------------------
141e18f675 | Nicholas Feinberg | 2023-09-17 11:21:36 -0700

Fix deterministic poison + "harm (elliptic)
Multiply poison at time of application rather than at time of damage,
to keep the poison display accurate.

--------------------------------------------------------------------------------
eda3e60247 | Nicholas Feinberg | 2023-09-17 11:19:00 -0700

Fix toxic bog KILLED_BY (DracoOmega)
It should be KILLED_BY_BEAM; _BY_POISON is only for actual poison
over time damage.

--------------------------------------------------------------------------------
eadacf9148 | Nicholas Feinberg | 2023-09-17 10:06:33 -0700

Fix: large boulder issues (Bardcore)
Add a description and make it giant, so that we don't have to worry
about handling nets or webs.

TODO: check handling of constriction.

--------------------------------------------------------------------------------
b9f6cac5a1 | elliptic | 2023-09-17 11:45:32 -0400

Tweak the launcher loot in wizlab_tukima.
Make the (potential) randarts a mix of penetration and speed instead of
just speed, and don't generate a non-artefact triple crossbow of penetration
(since generating an artefact instead). This wizlab still has a high chance
of generating the best launcher in your game, but a much lower chance of
generating the best launcher in 100 games.

--------------------------------------------------------------------------------
7818237a85 | Kate | 2023-09-17 15:59:31 +0100

Remove a redundant explosion from a description

--------------------------------------------------------------------------------
93f5cd52f0 | Kate | 2023-09-17 15:50:45 +0100

Fix a missing spell description (Sergey)

--------------------------------------------------------------------------------
3199509076 | Kate | 2023-09-17 15:40:30 +0100

Use some canned messages for ability cooldowns

--------------------------------------------------------------------------------
3e901ae6a7 | Kate | 2023-09-17 15:40:30 +0100

Increase Blink's base cooldown
The cooldown previously had a base duration of 1-2 turns plus a
power-dependent duration, and at full power it was eliminated entirely.
Instead give it a base duration of 2-4 turns, which still remains at full
power. (In practice the duration is actually 1-3 turns, since the turn
spent casting it counts towards the cooldown.)

--------------------------------------------------------------------------------
ce1d0c9d47 | Kate | 2023-09-17 15:40:30 +0100

Revert "Allow cancelling/dispelling -Blink"
Unlike -Move and -Tele which are debuffs applied by monsters/miscasts,
-Blink is strictly a spell cooldown, comparable to the cooldowns on Death's
Door, Polar Vortex, Ru's abilities, etc. As with all of these, it shouldn't
be dispellable in the same way that standard status effects are.

This reverts commit b47e89e9764e3024b6e00f44f3f2080c2a483cd6.

--------------------------------------------------------------------------------
3fee5d3b0d | Kate | 2023-09-17 15:40:30 +0100

Let Dimensional Bullseye be dispelled on targets
It was already dispellable but only on the player side.

--------------------------------------------------------------------------------
6c5bf4ee3b | Kate | 2023-09-17 15:40:30 +0100

Adjust wording in a Sigil of Binding message

--------------------------------------------------------------------------------
0d66cbabe8 | elliptic | 2023-09-16 17:03:24 -0400

Species selection screen: DE -> Simple, Gh -> Intermediate, lower At.
DE is very simple (no mutations!) and has always been a popular choice for
a first casty character. Gr and Dr make fine casters too but they are less
obviously casting-devoted, so having a simple casting option in Simple
seems good.

Gh is reasonably simple if you play it as a heavy-armour Tr, but the low
Int/Dex can make it sort of miserable if you deviate much from that without
knowing exactly what you are doing. Having it next to Tr seems not great.

At was moved closer to the end of Simple because although it's generally
considered strong, it does have a solid number of weirdnesses (double
potions, weird body armour valuation, rampage).

--------------------------------------------------------------------------------
bb03a45e84 | Nicholas Feinberg | 2023-09-16 10:34:15 -0700

Fix randbook names

--------------------------------------------------------------------------------
a33818d538 | elliptic | 2023-09-16 12:26:56 -0400

Make Chei piety gain only depend on monster base speed (hellmonk).
Previously players could gain more Chei piety while killing the same
monsters by going into statueform, waiting for the monster to haste itself,
not using abilities that slow the monster, and so on. This was fairly
insignificant in practice, but still a concern.

This commit simplifies Chei piety gain to only care about the monster's base
speed (and not any modifiers or the player speed). Instead of only giving
piety for monsters faster than the player, Chei only gives piety for
monsters who are speed 10 or faster. This has the largest impact on
spriggans, who will now gain piety from regular speed monsters as soon as
they worship Chei instead of having to find fast monsters to kill to gain
piety at the start.

The dependence on player speed was relatively small for non-spriggans in the
old system; a human worshipping Chei and killing a speed 10 monster
progressed from a 1+3/12 piety multiplier at start to a 1+5/12 piety
multiplier at max slowness. This commit replaces that with a global 1+4/12
piety multiplier. This commit also increases the bonus for killing fast
monsters, to compensate for no longer giving piety for slow monsters who
are still faster than the Chei-slowed player.

--------------------------------------------------------------------------------
505c3d19dc | Nicholas Feinberg | 2023-09-15 21:11:46 -0700

Make formless jellyfish poisonous (elliptic)
To clarify that rPois affects their sting. This is 100% and purely
for thematic reasons, and there's a reasonable argument that their
sting should be rethemed to affect rPois players.

--------------------------------------------------------------------------------
d226941206 | Nicholas Feinberg | 2023-09-15 20:34:07 -0700

Make flux form prettier (fbwer)
Per request, change the console glyph from radroach to shapeshifter.
I hope this brings joy to both all and sundry.

--------------------------------------------------------------------------------
900534bfaf | Nicholas Feinberg | 2023-09-15 20:27:55 -0700

Continue to nerf Jeremiah
Killrate too high. Too many dead players. Reduce dead player count
slightly.

-10% HP, -20% cast rate, -a bit of melee damage. Fix dialogue.

--------------------------------------------------------------------------------
658a57c81a | Nicholas Feinberg | 2023-09-15 20:23:21 -0700

Fix display of part-ID'd artefact jewels (Undo)
Instead of "the ring of Maso {Int+6}", show "a twitching amber ring of
intelligence" until you fully ID the ring. The former was misleading -
it looked like a very bad randart!

This change will cause other bugs and is very silly.

--------------------------------------------------------------------------------
80d2040ea8 | Nicholas Feinberg | 2023-09-15 20:04:37 -0700

Make jellyfish para twice as good (elliptic)
Remove the coinflip chance for it to fail after post-AC damage.

--------------------------------------------------------------------------------
3d1776edcb | DracoOmega | 2023-09-15 19:31:28 -0700

Brom's Barrelling Boulder (L4 Earth/Conj)
This spell creates a boulder in an adjacent tile to the player, which then
moves in a straight line in that direction. If the boulder tries to move
into a creature, it will damage it (and step into its tile if it dies in
the process). If the creature survives, it will be pushed back *and so will
every creature adjacent to it in a line*, effectively bowling an entire
line of enemies backward.

The boulder is a regular 'creature' that can be damaged, and takes
self-damage whenever it hits a creature (so that it will eventually die
even in the process of rolling over things). If it hits a wall, it will
immediately explode into a minor sharpnel explosion. (Like iood, it also
disappears if it leaves the player's LoS)

The spell is fun to play with and feels significantly different than iood
in its uses.

(Currently level 4 Conjurations/Earth. I sort of wanted it to be pure
Earth, but fear it would be too accessible at 4, and not able to fit into
the starter book at 5 (and then it's competing against LRD at that level
anyway....))

[Committer's note: refactored, bugfixed, and rebalanced. Very concerned
that this spell is wildly overpowered, but not being castable in melee
is a real restriction... seems fun to try out, at least.

Also added this to the EE start book, as seemed to be intended from the
commit message.]

--------------------------------------------------------------------------------
67fe2935dc | Nicholas Feinberg | 2023-09-14 17:54:18 -0700

Be more pessimistic in @ (riverfiend)
Let players know when their shields and/or armour are slowing their
attacks by at least 0.05, instead of rounding down at 0.1.

--------------------------------------------------------------------------------
8440623082 | Nicholas Feinberg | 2023-09-14 14:15:53 -0700

Remove unidentified decks
' description.

Continuing from e45b02a626603baa917b118212daf77ed0a4bb4b (2018).

--------------------------------------------------------------------------------
a522cfaf1d | Nicholas Feinberg | 2023-09-14 14:15:03 -0700

Nerf G&G and GotG
Gyre, Gimble and Glaive of the Guard were quite busted. They're probably
still busted, but maybe more reasonably so.

--------------------------------------------------------------------------------
1b212f6383 | Nicholas Feinberg | 2023-09-14 14:11:57 -0700

Adjust new Hexslinger spell descriptions (🐙Mike)
Try to clarify what's going on with each.

--------------------------------------------------------------------------------
2dc9076e4e | Nicholas Feinberg | 2023-09-14 13:44:44 -0700

Revert "Make Inner Flame irresistable"
This was wildly busted. Inner Flame was quite powerful enough before.

This reverts commit a7a09d1bdf0350176ee9d0e5c956576bfa06e425.

--------------------------------------------------------------------------------
fb43ecf041 | Nicholas Feinberg | 2023-09-14 11:16:43 -0700

Reduce fungal nostalgia (CanOfWorms)

--------------------------------------------------------------------------------
645550293d | hellmonk | 2023-09-14 10:14:19 -0700

feat: Reworked collapsing volcano
A try at improving one of the least popular volcano maps.

Closes #3215.

--------------------------------------------------------------------------------
ee50f9274c | Medrano83 | 2023-09-14 10:10:24 -0700

New init file option: lua_max_memory
The max memory in MB allowed for user Lua scripts is only configurable
via command line options. Setting this value in the init file can be
useful in platforms where the command line is not available, e.g.
Android.

--------------------------------------------------------------------------------
e94db9e091 | Medrano83 | 2023-09-14 10:08:22 -0700

New option use_terminal_default_colours
Use the terminal's default foreground and background colors. This can be
used to enable a transparent background.

Closes #2534

--------------------------------------------------------------------------------
44fb0289a7 | Nicholas Feinberg | 2023-09-14 10:06:29 -0700

Tweak auto-travel to adjacent squares
Refactor to dedent, and don't bother prompting players. (Prompts
are evil and only cause pain.)

Merges #3250.

--------------------------------------------------------------------------------
ec6b7dd1af | cureja | 2023-09-14 09:55:35 -0700

feat: Auto-travel to traversable squares next to non-traversable ones
Added UI improvement that makes it so if the player selects a
non-traversable target with a traversable cell adjacent, prompt before
failing and allow the user to go to the closest adjacent cell instead.

This feature doesn't affect controls that wouldn't have invoked the
"Sorry, I don't know how to traverse that place." msg.
This is intentional. While using touch controls or within the current
view, it should be following the current idea to not spam the user with
prompts and messages on easy misclicks.

This feature could also be expanded to have an options for always
saying yes to the prompt, increased radius for the check (and
corresponding option for it).

This feature request originated from the wiki on UI Improvements

--------------------------------------------------------------------------------
7e385a8f09 | RypoFalem | 2023-09-14 09:53:06 -0700

feat: Note when Maurice steals items/gold
Maurice's sleight of hand may go unnoticed by a player; leaving a
player who escaped confused by thier mysteriously light pockets. Note
the appropriation in the dump/morgue to help players find thier
missing loot.

Having things stolen is funny so recording this also makes for more
interesting morgues.

--------------------------------------------------------------------------------
72ee4cea48 | Monkooky | 2023-09-14 09:44:53 -0700

Publish a cookbook
Closes #3296.

--------------------------------------------------------------------------------
e0ecf0ced4 | Quinten Konyn | 2023-09-14 09:41:43 -0700

Fix "I'll leave it outside" shop message
When purchasing items from a shop when you don't have sufficient inventory
space, a message is supposed to appear that notifies you that the shop keeper
will put the items on the ground for you.

This message was not appearing because it was being immediately reset with line
1328 (update_help) before ever getting drawn. This fix changes update_help based
on whether the last command caused items to be left outside.

Closes #3149.

[Committer's note: I share the author's concerns about whether this is the
cleanest way to fix the bug, but don't have time to dig further into menu code.]

--------------------------------------------------------------------------------
a7962925eb | Nicholas Feinberg | 2023-09-14 08:36:47 -0700

Take another shot at Jeremiah's description
Try to resolve some disfluencies.

--------------------------------------------------------------------------------
fe7b580527 | hellmonk | 2023-09-13 21:28:54 -0400

better peek status fix
Accounts for delver.

--------------------------------------------------------------------------------
a1453ea1fc | hellmonk | 2023-09-13 21:28:54 -0400

checkwhite

--------------------------------------------------------------------------------
12535ecb4f | hellmonk | 2023-09-13 21:28:54 -0400

don't peek on D:1 entrance

--------------------------------------------------------------------------------
b8176ab9f1 | hellmonk | 2023-09-13 21:28:54 -0400

fix double portal messages (descent) (real)

--------------------------------------------------------------------------------
e8284cb111 | Nicholas Feinberg | 2023-09-13 12:15:24 -0700

Fix the (elliptic)

--------------------------------------------------------------------------------
b7a3900dc0 | Nicholas Feinberg | 2023-09-13 11:33:59 -0700

Init skip autofight check (Ge0ff)

--------------------------------------------------------------------------------
bc345e7fcb | Kyle Rawlins | 2023-09-12 15:09:51 -0400

fix: tags.cc fixup for monster tile prop type change
cb44df74be1 changed the type of this prop from short to int, which led
to save compat crashes. be3b949103aec has a temporary fix at the point
of the crash. This commit moves the fix to tags.cc so that it happens on
load, and can be more easily kept with other save compat code.

--------------------------------------------------------------------------------
45f7035092 | Nicholas Feinberg | 2023-09-12 10:06:36 -0700

Continue removing Stuck

--------------------------------------------------------------------------------
4b8cbeaf33 | Nicholas Feinberg | 2023-09-12 09:21:28 -0700

Fix tag upgrade build?

--------------------------------------------------------------------------------
be3b949103 | Nicholas Feinberg | 2023-09-12 09:03:30 -0700

Fix save compat?
Very unclear to me what's going on here. (This was caused by
cb44df74be13a44.)

--------------------------------------------------------------------------------
87205ac768 | Nicholas Feinberg | 2023-09-11 22:16:50 -0700

Checkwhite

--------------------------------------------------------------------------------
cfa880d796 | Monkooky | 2023-09-11 22:16:25 -0700

remove unused variables

--------------------------------------------------------------------------------
7cf6fccd4b | Monkooky | 2023-09-11 22:15:54 -0700

Reallow gozag title for excessive spenders
While it's not technically penance, Descent's debt mechanic is close enough to 
justify giving out Gozag's penance title

--------------------------------------------------------------------------------
754b9d5b1c | Nicholas Feinberg | 2023-09-11 20:13:30 -0700

Remove Stuck status
Replace with -Move -Tele.

--------------------------------------------------------------------------------
1e36db7fc6 | Nicholas Feinberg | 2023-09-11 20:10:00 -0700

Describe foxfire damage in xv (elliptic)

--------------------------------------------------------------------------------
775d53a1b6 | hellmonk | 2023-09-11 23:00:31 -0400

Revert "fix double portal messages (descent)"
This reverts commit 2891f507e4c8974e39899099021733ffc0b64d9f.

--------------------------------------------------------------------------------
12d0ffd41e | hellmonk | 2023-09-11 23:00:11 -0400

Revert "fix descent peeking"
This reverts commit cef226ec5255e91fa15b8420ad21b111a5c2a68f.

--------------------------------------------------------------------------------
cef226ec52 | hellmonk | 2023-09-11 22:40:23 -0400

fix descent peeking

--------------------------------------------------------------------------------
2891f507e4 | hellmonk | 2023-09-11 21:53:37 -0400

fix double portal messages (descent)

--------------------------------------------------------------------------------
a75f04deac | Nicholas Feinberg | 2023-09-11 11:04:42 -0700

Fix force-attacks with ranged weapons (dilly)
Don't warn the player "you're too injured to fight recklessly" if
you're hitting ctrl-right, etc.

This code sucks!

--------------------------------------------------------------------------------
983cc26eec | Nicholas Feinberg | 2023-09-11 07:45:19 -0700

Fix the build?

--------------------------------------------------------------------------------
cb44df74be | Nicholas Feinberg | 2023-09-11 07:16:47 -0700

Tweak Marshlight appearance
Make will-o-the-wisps' foxfires match their colouring, and tweak
messaging. This should hopefully make players more scared of them.
(At least in tiles, sorry!)

Some argument for giving the marshlights a different name and/or a
fully separate monster type.

This may break save compat.

--------------------------------------------------------------------------------
01b46875f1 | Nicholas Feinberg | 2023-09-10 21:30:40 -0700

Switch out hand cannon smoke (elliptic, CarefulOdds)
Smoke was a little too impactful, and also didn't fit The Lore (ha).
Switch it out for magical condensation.

--------------------------------------------------------------------------------
6167ad07ae | Nicholas Feinberg | 2023-09-10 21:24:50 -0700

Maybe add a debt description (Aoae)
This might not work. I forget if we need to strip off the parenthetical
in Debt(x) somewhere.

--------------------------------------------------------------------------------
3c93526463 | hellmonk | 2023-09-10 12:10:00 -0400

more no_descent tagging

--------------------------------------------------------------------------------
fd0b5baff3 | hellmonk | 2023-09-10 12:10:00 -0400

fix: don't stair map after using hatch

--------------------------------------------------------------------------------
33397049d7 | hellmonk | 2023-09-10 12:10:00 -0400

allow lair->slime
puts Jiyva back in the game, sometimes.

--------------------------------------------------------------------------------
802b72c31d | hellmonk | 2023-09-10 12:10:00 -0400

unbrace

--------------------------------------------------------------------------------
1c7ed170bf | hellmonk | 2023-09-10 12:10:00 -0400

rework descent delver

--------------------------------------------------------------------------------
72e5dbe34a | hellmonk | 2023-09-10 12:10:00 -0400

checkwhite

--------------------------------------------------------------------------------
7577179881 | hellmonk | 2023-09-10 12:10:00 -0400

fix debt bugs

--------------------------------------------------------------------------------
3505057eba | hellmonk | 2023-09-10 12:10:00 -0400

feat: Shorten D to 12 floors (Descent)
very worried this breaks something

--------------------------------------------------------------------------------
9a366f9be8 | hellmonk | 2023-09-10 12:10:00 -0400

fix: Don't show offlevel items in descent
Bad gamefeel etc.

--------------------------------------------------------------------------------
9427e72f32 | Nicholas Feinberg | 2023-09-10 07:23:15 -0700

Add a no_descent tag to fountain_basement

--------------------------------------------------------------------------------
c7603755dd | elliptic | 2023-09-09 15:38:16 -0400

Nerf unwielding (0.3 -> 0.5).
Other weapon swaps (wielding, switching from one weapon to another) take 0.5.
This is a nerf to repeatedly wielding and unwielding distortion in an
emergency, but that doesn't seem like enough of a reason to have a weird
duration on this action.

--------------------------------------------------------------------------------
e00f3ba22f | DracoOmega | 2023-09-09 15:48:20 -0230

Prevent 'Done Exploring' when the player is fenced in by binding sigils
And instead properly show 'Partly explored, can't reach some places.'

Some parts of the pathfider code are a mess and needlessly hard to follow.
The description for this function in particular had clearly become untrue
in the 17 years since it was written, and I'm not even 100% certain this is
all it is used for anymore. Maybe it could use a better name?

I've tried to edit the comment to be a *bit* less deceptive, though, since
it clearly affects exploration pathfinding.

--------------------------------------------------------------------------------
975ee8456d | DracoOmega | 2023-09-09 13:47:49 -0230

Prevent autotravel from moving the player onto binding sigils

--------------------------------------------------------------------------------
1f61f89ab9 | DracoOmega | 2023-09-09 13:47:48 -0230

Make Eruption lava creation slightly more consistent
Given that Pyroclastic Surge (in most situations) specifically depends on
the combo with Eruption, it was a little weird that Eruption could
sometimes not create any lava whatsoever.

Instead of an independent coinflip per floor tile in its radius, it now
guarantees placing at least 1 lava tile per cast, if possible. (Still has
a coinflip for the rest of them)

These two commits are effectively a meaningful buff to Tyrants. If this
makes them too strong, their numbers can be nudged down somewhat, but I
think it's better for the player not to have invisible immunity to their
spells in ways that aren't transparent at all.

--------------------------------------------------------------------------------
d35ca32644 | DracoOmega | 2023-09-09 13:47:48 -0230

Fix Eruption/Upheaval's tracer thinking it was radius 2 instead of 1.
Given that both Salamander Tyrants and Draconian Stormcallers come with
bands, this made them unwilling to use it in an enormous number of
situations where friendly fire wasn't even possible. (For instance, even
in an otherwise empty room, Tyrants could never use it on a turn the
player steps away from them in melee - resulting in a chase where they will
NEVER stop to cast their big spell).

As far as I can tell, this was broken since first implemention.

--------------------------------------------------------------------------------
b042b5dc4a | DracoOmega | 2023-09-09 13:47:48 -0230

Fix Starburst only prompting for friendly fire to the right of the player
More specifically, it would prompt if anything was in the first beam it
traced (which is directly to the player's left). At that point, since the
same tracer was reused, the fact that player_tracer didn't reset
passed_target meant that it would *see* friendlies in other beam paths, but
ignore them. I don't see why setting passed_target to false each time would
negatively affect anything, but you never know in Crawl...

Also: to avoid the player having to answer y/n once for every single
direction that has friendlies, a single yes will bypass future prompts for
that one cast.

--------------------------------------------------------------------------------
c0fddb96e8 | DracoOmega | 2023-09-09 13:47:48 -0230

Let monspec weights of 0 actually be 0.
Instead of being quietly changed to weights of 10. (This is useful for
some dynamic depth-based weighting techniques)

It's hard to tell if any existing vaults are affected by this, but surely
one wouldn't be *relying* on a weight of 0 being actually 10, right? (I
sure hope not)

--------------------------------------------------------------------------------
517f4904bd | Kate | 2023-09-09 17:13:22 +0100

Display Dimensional Bullseye to-hit bonus when aiming

--------------------------------------------------------------------------------
bb17821c20 | Implojin | 2023-09-09 09:00:38 -0500

Fix a compiler warning (shadowed variable)

--------------------------------------------------------------------------------
ecc126b380 | Implojin | 2023-09-09 08:20:50 -0500

Don't describe rings/amulets as talismans
Closes #3291.

--------------------------------------------------------------------------------
405de50cea | RypoFalem | 2023-09-09 13:19:33 +0100

Correct a typo (credit to fbwer!)

--------------------------------------------------------------------------------
a145531891 | Nicholas Feinberg | 2023-09-08 15:39:27 -0700

Remove a charmingly obsolete comment
(Obsoleted by the previous commit.)

--------------------------------------------------------------------------------
1016066182 | elliptic | 2023-09-08 17:43:00 -0400

Actually suppress MUT_CLAWS in bladeform.
I believe this doesn't functionally change anything, just makes it clearer
to the player that blade hands means their claws are useless.

--------------------------------------------------------------------------------
cfe89afef6 | Kate | 2023-09-08 12:27:57 +0100

Fix Dimensional Bullseye crashing when aimed
The displayed to-hit percentage is now incorrect when aiming directly at the
marked target, as the bonus isn't applied to the to-hit calculation in
to_hit_pct() - this will need to be handled separately.

--------------------------------------------------------------------------------
f82c85558f | Kyle Rawlins | 2023-09-07 13:34:36 -0400

fix: write milestones to SHAREDDIR, not the save directory
Originally, there was no distinction between these directories, and
everything went in one place. The shared directory was added primarily
for servers that keep multiple crawl versions, so that e.g. all trunk
games would write to the same logfile / score file. (Previous to this
change, servers used symlinks to accomplish this.) I believe it was just
an oversight that milestone writing wasn't changed as well, but writing
to what is usually a version-specific save directory breaks milestone
writing for new versions unless a symlink is produced. Trunk seeded
milestones (which aren't really consumed yet) have mostly been broken
since they were created, unfortunately, and no one noticed; more
recently, this has affected descent mode on CAO trunk.

This change will obviate the need for some of dgl-config's symlink
management, but crucially, *only when all earlier trunk versions are
gone*. So right now, this is mainly a descent-targeted fix.

Famous last words, but as far as I'm aware, this shouldn't change the
behavior of any current server setup for regular milestone writing.

--------------------------------------------------------------------------------
aea1e32358 | Nicholas Feinberg | 2023-09-07 10:22:18 -0700

Move jinxbite into a fineff
Simplify - don't have to worry about it killing the defender mid-attack.

Also do some minor refactoring.

--------------------------------------------------------------------------------
f13585253f | gammafunk | 2023-09-06 20:57:29 -0500

feat: Add a more convenient exit to a WizLab (elliptic)
For Wucad Mu's Monastery, put the exit close to the starting area, since
we try to do this in general for portals. Previously the player had to
walk pretty far across the map to get to it and may have missed that it
even existed. Tweak the layout a bit, removing a room that's no longer
used and landscape trees appropriately now that the room is gone.

--------------------------------------------------------------------------------
830162fb6c | DracoOmega | 2023-09-06 22:27:22 -0230

Fix something that got broken by Dimensional Bullseye rebase earlier
Not sure how this file's changes just disappeared. Makes me worried
something else may have also... >.>

--------------------------------------------------------------------------------
4a7cf283bb | DracoOmega | 2023-09-06 20:33:51 -0230

Fix splitting/merging of creatures sharing some enchants it should not
Monster cloning already vetoed copying ENCH_HELD and ENCH_VILE_CLUTCH,
but slime creatures / starcursed masses use an entirely different code
path that cannot be trivially combined. So for now, do the simple thing
of just vetoing sharing a couple enchantments that probably should not be
shared.

--------------------------------------------------------------------------------
9db281c723 | DracoOmega | 2023-09-06 20:33:48 -0230

Change Hexslinger starting spells
The new spell list is:
 -Jinxbite
 -Sigil of Binding
 -Inner Flame
 -Cause Fear
 -Dimensional Bullseye

Hexslinger was always troubled. Its spellbook was split across multiple
schools, making them tricky to cast, and they still didn't do much without
ALSO training ranged weapons heavily. Slow was often a trap and in
general the archetype was clunky, without providing sufficient benefit for
splitting your skills between weapons and spells.

The intent of this change is to provide a smoother curve of castable
spells, and more immediate value to training hexes instead of simply
ignoring them in favor of being a 'worse hunter'.

Jinxbite provides a little immediate power to help deal with earlygame
threats with which current hexslinger often struggles significantly.

Sigil of Binding provides powerful utility and can help set up Inner Flame
triggers in a way that the old spellset could almost never safely do in
practice.

Portal Projectile was always a spell that was far better late than it was
early, and so Dimensional Bullseye is now a capstone that provides
even stronger long-term value, but with other easier to cast spells that
let you bridge the gap to it better.

Cause Fear was always good (if you could manage to survive long enough
to have access to it!) and remains untouched.

(Also give them 1 starting level of Fire Magic, to help just a little bit
with getting Inner Flame off the ground)

--------------------------------------------------------------------------------
a7a09d1bdf | DracoOmega | 2023-09-06 20:33:18 -0230

Make Inner Flame irresistable, downscale damage and clouds based on power
Inner Flame was a powerful effect when everything worked, but it was often
very finicky in practice. Even when the hex landed, early characters would
frequently struggle to detonate the creature in a timely manner (and then
either fail to get almost any value out of it OR blow themselves up by
trying). I don't think that making it always land will make it too strong,
since you still need other, less-reliable tools to set it off.

But this commit also makes the POWER of the explosion scale with spellpower,
now that success chance does not. In practice, this means that spell-based
inner flame will usually do less damage and produce less clouds than
before (but the former may also make it more usable early on!) but
hopefully still feel better to use - especially if trying to set up
chain detonations.

Scroll of immolation and Guardian Golem should still result in detonation
effects identical to before this commit (though its arguable that golem
could also use this to downscale its effect at lower power).

--------------------------------------------------------------------------------
74abd10e9e | DracoOmega | 2023-09-06 20:32:54 -0230

Experimental spell: Jinxbite (level 2 Hexes)
This spell gives a short self-buff to the player. Whenever they attack an
enemy while this buff is active, if that enemy fails a will check, you
inflict minor irresistable damage and draining (and some playful messages).
I realize draining is commonly necromantic, but several player abilities
give clear precedent for it being a source-agnostic (and the number of
minor debuffs we can hand out to enemies is a little limited...)

The spell can only be cast while a susceptible enemy is in sight and will
expire two turns after one no longer is (even if this was just from you
turning a corner to wait). Additionally, the player will suffer WILL/2
proportional to the duration of the spell when it is cast. The idea was to
create a minor opportunity cost to casting the spell - earlygame the extra
benefits are clearly worth it, but should fall off later where you'd be
better off just shooting something.

Behind the scenes, the base duration of jinxbite is fairly long, but each
time it triggers additionally reduces the duration of the buff on you by
4 turns (helping to make the number of triggers you get out of the spell
a little more consistent)

--------------------------------------------------------------------------------
470c21bd56 | DracoOmega | 2023-09-06 20:30:26 -0230

Replace (player) Portal Projectile with Dimensional Bullseye
Portal Projectile was always in a slightly odd space. Its utility was
theoretically quite high, but also fairly situational. It only did anything for
one particular archetype, and despite being a low-ish level spell, usually not
very useful until midgame (since it also required strong ranged attack to do
anything reliable, and earlygame battles were less likely to present targets it
was relevant for). Hexslinger was clearly the class that *wanted* to get the
most use out of it, but didn't get very much out of pushing for it early.

Dimensional Bullseye takes the idea of 'smite-targeted ranged weapons', nudges
its level up to 4, and aims to make it more immediately impactful.

Now you smite-target an enemy with this spell to create a 'link' beween your
ranged weapon and it. And every time you perform a ranged attack aimed at any
*other* target (that isn't friendly or firewood), your projectile will teleport
to the marked target at the end of the attack, allowing you to hit 2 things at
once (with a spellpower-based accuracy bonus against the marked target).

It still consumes 1 mp per teleporting shot (this may or may not still be
necessary, since it can kill at most one target per cast anyway) and now works
with throwing weapons as well as launchers (the throwing ammo will land on the
ground at the marked target).

I've also made a small tweak to autofight that should hopefully make it
disfavor attacking a marked target if an unmarked target is also attackable (so
that this doesn't start asking people to manually aim in order to avoid wasting
the value of the spell)

--------------------------------------------------------------------------------
574d41e441 | DracoOmega | 2023-09-06 20:30:04 -0230

Add Sigil of Binding: new level 3 Hexes spell
This spell creates two sigils on the ground at random locations within 2 tiles 
of
the caster (one at range 1 and the other at range 2). If a creature moved onto a
a sigil before it expires, that enemy will be bound in place for several turns.
This blocks all movement, but does *not* impair action, evasion, or otherwise
make the target more stabbable. When the binding expires, that enemy will become
Swift for twice as long as it was bound. Swift enemies are immune to sigils.

The duration of the binding scales with spellpower, but is also reduced by the
HD of the enemy. Only one cast worth of sigils can exist at a time (recasting
will replace them with new ones).

The caster is still bound in place if they step on their own sigil, so take care
about using it in confined spaces! (Self-binding does *not* scale with 
spellpower,
but the caster also does not become swift afterward)

--------------------------------------------------------------------------------
f03d1854d5 | Kate | 2023-09-06 13:00:51 +0100

Clarify shop wording when going in to debt in Descent

--------------------------------------------------------------------------------
409c26aa35 | gammafunk | 2023-09-05 18:03:35 -0500

fix: A bounds check for a clua function (qw)
The clua monster info method :can_traverse() didn't do a bounds check on
its input coordinates before reading map knowledge, which lead to a
crash when the coordinates were out of bounds.

--------------------------------------------------------------------------------
7ce4588941 | Nicholas Feinberg | 2023-09-05 13:50:49 -0700

Fix Kiku wrath (various)
Kiku's wrath was almost entirely ineffectual. It worked via death
curses, which are meant to be relevant in combat or near-combat
situations, not when the player is just out and about.

Address this by reworking wrath effects. There's now equal chances
of heavy HP drain, heavy stat drain, or tormenting + making a loud
noise. There's also a new passive which causes dead monsters to
sometimes turn into hostile, no-xp zombies/simulacs/spectres - this
is an experiment and might need tweaking.

This should hopefully make it a bit riskier to abandon Kiku after
looting its gifts.

--------------------------------------------------------------------------------
72f39bf969 | Kate | 2023-09-05 18:32:17 +0100

Prevent a dragon armour trove placing for Draconians (#3272)
Unlike most other armour troves (which specifically place usable/aux
armour), this trove is themed around dragon armour and so is mostly useless
for Draconians. While there are a few usable items, it's already banned for
Octopodes (who would be able to use the same set of items from it).

Closes #3272.

--------------------------------------------------------------------------------
04e7d4291d | Kate | 2023-09-05 18:32:17 +0100

Remove a teleport closet in an arrival vault (#3275)
lightli_arrival_windingriver could generate inaccessible areas - most of
these were tagged no_tele_into, but one particular spot could create an
inaccessible bubble that wasn't correctly tagged.

Closes #3275.

--------------------------------------------------------------------------------
0fe126139e | Kate | 2023-09-05 18:32:17 +0100

Fix FoWr starting with a scroll of blinking (#3261)
Scrolls weren't being treated as identified for the purposes of determining
uselessness at character creation.

Closes #3261.

--------------------------------------------------------------------------------
f7fab4af10 | Kate | 2023-09-05 18:32:17 +0100

Allow orbs to be acquired (#3262)
With a small fixed chance when selecting a shield type.

Closes #3262.

--------------------------------------------------------------------------------
86692c7075 | Nicholas Feinberg | 2023-09-05 09:49:09 -0700

Tweak PoG wording slightly

--------------------------------------------------------------------------------
7d3d2d1642 | Kyle Rawlins | 2023-09-05 12:47:43 -0400

feat: give descent games their own save directory
This corresponds to a distinct save slot on webtiles.

--------------------------------------------------------------------------------
96623f570b | Kate | 2023-09-05 17:24:57 +0100

Rename sourceless malevolence
Explicitly describing it as "sourceless" feels inelegant - just describing
it more simply as a "malevolent force" has a similar effect and leaves its
source (or lack thereof!) up to the imagination.

--------------------------------------------------------------------------------
1899a4c4f0 | Kate | 2023-09-05 17:24:57 +0100

Reduce Passage of Golubria duration
Apply the lowered Zot duration to the spell everywhere, and remove the
other Zot special case of increased fuzziness. If it ends up being too
strong on Zot:5 again, it's probably better to make changes to the spell
that apply everywhere, rather than make more special-casing.

--------------------------------------------------------------------------------
72d93d2d00 | Kate | 2023-09-05 17:24:57 +0100

Add details to a Kiku gift note
Weapon branding gifts already also add a separate note describing the
weapon, so also add a description for Kiku's spell gift.

--------------------------------------------------------------------------------
325fb90cb2 | Kate | 2023-09-05 17:24:57 +0100

Rebrace & fix indentation

--------------------------------------------------------------------------------
d2efda5d0c | Kyle Rawlins | 2023-09-05 12:21:47 -0400

doc: mention descent mode in options guide for `type`

--------------------------------------------------------------------------------
7c33a2ab94 | Kyle Rawlins | 2023-09-05 12:21:04 -0400

feat: tweak welcome messages for non-standard modes
This always shows game mode explicitly with the welcome message (except
in normal, hints, and tutorial mode); previously it was only apparent
from this message for seeded mode. As part of this I changed the game
type name for descent mode to match the main menu, which hopefully won't
matter for anything (it would matter for database stuff, but aside from
welcome messages, there doesn't appear to be any).

--------------------------------------------------------------------------------
08580218fa | Kyle Rawlins | 2023-09-05 12:15:34 -0400

feat: add a few welcome messages for descent mode
These are mediocre, so feel free to edit or add more. But, it needed
something.

--------------------------------------------------------------------------------
ec73a1986a | Kyle Rawlins | 2023-09-05 09:33:53 -0400

fix: add a missing branch-data field

--------------------------------------------------------------------------------
238779eb0a | Nicholas Feinberg | 2023-09-04 11:17:45 -0700

Unbrace

--------------------------------------------------------------------------------
4df812870a | Nicholas Feinberg | 2023-09-04 11:13:00 -0700

Add Descent mode (hellmonk)
Descent mode is a new alternate mode for playing Crawl, like Sprint.
In Descent mode, once you go down stairs, there's no* going back up!

The dungeon has been re-arranged so that you can go through it
linearly; the branches have been put in a linear order. When you go
down stairs, you're considered to be 'peeking' down the stairs, and
can freely go back up. You can also see everything around other
upstairs on the level. Once you take any action on the new level,
however, *all* of the upstairs crumble forever!

This is a very early stage of the mode, and many changes will be
needed to help Dungeon Crawl work with this new structure. One that's
already been added is 'debt'. You can buy items from shops when you
don't actually have enough gold to afford them. However, once you do,
you're in debt, and you can't buy anything else before you get back
in the black again!

Descent is intended to feel different from 'classic' Crawl, but not to
be more difficult overall. Further changes will be made as necessary
to help push the game's challenge level back. We're also hoping to
make other changes to make choosing your path through the dungeon more
exciting and dynamic.

Please let us know if you see anything broken, especially crashes,
unreachable level areas, etc. And have fun!

--------------------------------------------------------------------------------
566e9ce4a0 | DracoOmega | 2023-09-04 10:37:54 -0230

Have moncast.lua use is_valid_mon_spell() instead of manual blacklist
Having to manually specify every invalid spell regularly caused crashes
when a new spell was implemented, and the list also got out of sync with
spells that *gained* monster implementations over time.

I did my best to manually verify that this new version doesn't miss things
that the old version caught, and I can't find any. This should be much
less prone to future problems.

--------------------------------------------------------------------------------
7da72447bb | Nicholas Feinberg | 2023-09-03 22:37:53 -0700

More triumphs

--------------------------------------------------------------------------------
85aee17e53 | Nicholas Feinberg | 2023-09-03 21:51:40 -0700

Update description for '.' (OctopodesWeekly)
See #3263.

--------------------------------------------------------------------------------
1b0e0212a4 | Nicholas Feinberg | 2023-09-03 21:51:24 -0700

Elaborate on ?fog/?immo descriptions (OctopodesWeekly)
See #3263.

--------------------------------------------------------------------------------
6d49a2b2d0 | Nicholas Feinberg | 2023-09-03 21:51:11 -0700

Fix living crystal spell count (OctopodesWeekly)
This was intended to spawn 1-2 spells per cast, but was bugged to
create the same 2-3 as other tomes did.

See #3263.

--------------------------------------------------------------------------------
34c7ba284f | Nicholas Feinberg | 2023-09-03 21:35:36 -0700

Retheme: hand crossbow -> hand cannon (Sastreii, hellmonk)
Hand crossbows are intended to be a rare, high-tier one-handed range
weapon, similar to eveningstars or double swords. However, the name
and theme hasn't conveyed this well to players. People reasonably ask:
wait, wasn't this a starting weapon? And: how come a hand crossbow
does as much damage as a two-handed arbalest?!

So, retheme them. Hand cannons are alchemical weapons that douse bolts
in magical powders to send them screaming forth. (E.g. by causing the
bolts to fall forward instead of down, bewitching them into a fatal
attraction with their target, etc, etc.) They also belch smoke when
fired, for theme reasons (this might need to be toned down) and are
extra noisy. They're otherwise identical to hand crossbows.

It's a bit silly, but crawl has triple swords and triple crossbows,
so it seems within bounds for tone. Let's try it out!

Tiles by Sastreii, original suggestion from hellmonk.

--------------------------------------------------------------------------------
39726597b9 | Nicholas Feinberg | 2023-09-02 14:07:57 -0700

Give Flux talismans a glow-up (Sastreii)
New item tile.

--------------------------------------------------------------------------------
3fb8326ac6 | DracoOmega | 2023-09-02 11:51:29 -0230

Remove some unused code
Left over from the period where zombies died after Animate Dead wore off.

--------------------------------------------------------------------------------
2497d51a65 | DracoOmega | 2023-09-02 11:51:29 -0230

Make wizmode super-heal heal a few more things than it currently does
No promises I didn't overlook a few more of them.

--------------------------------------------------------------------------------
902f515a81 | Nicholas Feinberg | 2023-09-01 13:07:46 -0700

Fix "acrobat uselessness for tengu (Bardcore)

--------------------------------------------------------------------------------
de94368793 | Nicholas Feinberg | 2023-09-01 11:13:04 -0700

Increase spectral weapon damage sharing
Spectral weapons shared half the damage they take with their owner,
which historically has been kind of irrelevant. Generally mechanics
should be either relevant or removed; let's push toward relevance
(as a minor spectral nerf) by increasing damage sharing to 70%.

--------------------------------------------------------------------------------
684573625c | Nicholas Feinberg | 2023-08-30 18:54:22 -0700

Fix tengu flight (Bardcore)

--------------------------------------------------------------------------------
7db66e5c3b | Nicholas Feinberg | 2023-08-30 15:47:03 -0700

Move tengu acrobatics and flight around (elliptic)
Tengu stats have also become acrobatic, appropriately.

--------------------------------------------------------------------------------
d984b8cdd8 | elliptic | 2023-08-30 18:38:56 -0400

Give tengu their acrobat + flight starting at XL 1.
I actually like having big levelup moments later in the game, but XL 5 is
a bit early and I think it's good to just let tengu start to experience
their acrobatics at game start. I think moving the flight alone to XL 7
or later, possibly coupled with some other thematic buff, could be good.

--------------------------------------------------------------------------------
c5a091b79a | Nicholas Feinberg | 2023-08-30 12:04:49 -0700

Replace tengu EV with more EV
Flat or multiplicative EV boosts are pretty bland, and not very
different from just giving Tengu more dex. Replace their +4 and +20% EV
with innate acrobaticism, as the amulet.

We can play around with dex or dodging apts as needed after this, if
further balance tweaks are needed.

--------------------------------------------------------------------------------
205ce3f705 | DevJac | 2023-08-30 11:31:42 -0700

Fix typo: "It isextremely good for stabbing"
An in-game description was saying "It isextremely good for stabbing". Fix the 
typo.
--------------------------------------------------------------------------------
aa4cf243c6 | elliptic | 2023-08-30 09:36:00 -0400

Make CACT_ARMOUR count every time you receive AC-checking damage.
Previously it only counted the times when your AC prevented all the damage
from an attack. Counting every time AC is applied is more consistent with
how other action counts work (e.g. we don't just count melee attacks that
kill an enemy) and also more useful. After this change, if you stand still
and let a hobgoblin attack you 100 times, your Armour/Dodge/Block action
counts will sum to exactly 100.

--------------------------------------------------------------------------------
b4d89c20fa | Nicholas Feinberg | 2023-08-29 22:51:35 -0700

Replace tengu speed with more EV
Tengu speed has always been rather fiddly to use. A 10% speed bonus
means you only gain one tile of distance from a normal-speed enemy
every ten moves, which is hard to do much with. Recent changes to
attacks of opportunity removed one of its few use cases.

Let's leave high speed to the spriggans and double down on tengu's
evasion bonus. Give them an extra +4 EV starting at XL 1, and move
the second, +20% bonus to XL 7 to give it a bit more breathing room.

--------------------------------------------------------------------------------
f2d5465dac | Nicholas Feinberg | 2023-08-29 12:46:21 -0700

Fix passive effects after mons death (ivysly)
This code is a nightmare, but as far as I can tell, there is no case
in which check_phase_hit() returns false in which we should still
try to apply defender retaliation effects. (Almost all of the time,
we return false because the defender is already dead, and we can't
apply retaliation in that case anyway.)

--------------------------------------------------------------------------------
be3e110b4e | Nicholas Feinberg | 2023-08-28 18:50:52 -0700

Fix missing dummy Mule tile

--------------------------------------------------------------------------------
42a08e578b | Nicholas Feinberg | 2023-08-28 18:49:36 -0700

Fix Death's Door expiration message

--------------------------------------------------------------------------------
ab4348ca5e | elliptic | 2023-08-28 19:23:36 -0400

Give VS regen at XL 1 instead of XL 4 (Sentei).
XL 4 is a bit later than Mu's XL 3 necro enhancer, but still very early.

--------------------------------------------------------------------------------
c5503df394 | Nicholas Feinberg | 2023-08-28 16:11:57 -0700

Mark ?torment/?noise as dangerous (lici)
Instead of bad. They aren't *strictly* useless, after all.

Should probably find some way to mess with default autopickup logic
so that it ignores ?torment for non-undead.

--------------------------------------------------------------------------------
5dbfedd742 | elliptic | 2023-08-28 19:06:50 -0400

Move a mummy necro enhancer even earlier.
Just give them the first necro enhancer at XL 1 - getting to XL 3 often
happens on D:1 anyway, so let's just let players who start a mummy and
immediately look at their mutations to see how the species work see the
enhancer already.

--------------------------------------------------------------------------------
c9f3708fe1 | Nicholas Feinberg | 2023-08-28 15:24:03 -0700

Don't claim daggers rot (cool2)
When descending stairs with tukima's weapons refusing to follow,
just call them 'mindless puppets'.

This code is bad!

--------------------------------------------------------------------------------
e1e6cc2d06 | Nicholas Feinberg | 2023-08-28 15:06:15 -0700

Maybe fix a spider sack crash (geekosaur)

--------------------------------------------------------------------------------
38d6a14cb1 | Anabel | 2023-08-28 14:02:06 -0700

Updated tileidx_feature to prevent override of DNGN_UNKNOWN_PORTAL
Gauntlet portal would be leaked by magic mapping via a scroll of magic 
mapping/revelations and then examining shop/portal tiles.
gauntlet.des uses the dgn.til lua function, which leads to 
tile_env.flv(pos).feat being set when laying out the gauntlet entrance vault in 
a level.
tile_env.flv(pos).feat can override env.map_knowledge(pos) in tileidx_feature, 
which is used by the describe popup to select the appropriate tile.

This commit prevents the leak by adding DNGN_UNKNOWN_PORTAL as a tile exempt 
from being overriden. Removing the dng.tile call on the lua side seems to work 
as well, but I'm unsure which side effects that could have. Additionally, it 
makes sense to generally prevent DNGN_UNKNOWN_PORTAL from being overriden.

Refs: 3225

--------------------------------------------------------------------------------
953e295f31 | Monkooky | 2023-08-28 14:00:57 -0700

Remove Storm Form breakpoints
Previously storm form would breakpoint EV bonus at integer skill. This fixes 
that.

--------------------------------------------------------------------------------
d5cdc0191f | Nicholas Feinberg | 2023-08-28 13:48:57 -0700

Make Rupert stronger*
We have three other uniques whose theme is "they're insane". Make
Rupert slightly more distinctive by making him a vaguely Conan-esque
strongman. Rarrghrhgrghrgh!

I'm not sure why he lost the articles in his speech. I blame TF2.

--------------------------------------------------------------------------------
8e198d3294 | elliptic | 2023-08-28 16:02:48 -0400

Runify a vault (CarefulOdds).
So that it isn't an autoexplore trap.

--------------------------------------------------------------------------------
9d45dd1b72 | Implojin | 2023-08-28 11:02:19 -0500

fix: Gauntlet menu hotkeys
This fixes the help and (wizmode) travel menu hotkeys for Gauntlet:
Previously, they were being blocked by the keybind for the
CMD_MENU_CYCLE_MODE command.

I'm not very familiar with the menu code, so if this breaks something, please
feel free to revert.

--------------------------------------------------------------------------------
b136266e7e | Implojin | 2023-08-28 09:11:19 -0500

docs: Add tavern 2.0 link to README.md

--------------------------------------------------------------------------------
1ba1ce399d | Nikolai Lavsky | 2023-08-28 16:37:07 +0300

fix: show }sack usage numbers in morgues (#3271)
Previously, the call to `count_action()` at the end of `evoke_item()`
was unreachable when evoking the sack of spiders.

Resolves #3271.

--------------------------------------------------------------------------------
39d97e502b | elliptic | 2023-08-26 19:17:11 -0400

Move Vhi's Electric Charge to L4 (PleasingFungus).
It gives too much utility all game for a L3 spell. Sorry warpers!

--------------------------------------------------------------------------------
dbf204ffae | elliptic | 2023-08-26 18:22:01 -0400

Cap ghost EV at 50 instead of 60 (Lightli).
It turns out that even an endgame melee character might only be 2.5% to
hit a 60 EV monster...

--------------------------------------------------------------------------------
26219f789d | patrick | 2023-08-26 14:26:00 -0400

Tone down a Tartarus vault (LALALALr, gammafunk)
now it's possible to get to the silent spectre and kill it

--------------------------------------------------------------------------------
c6129fcb3f | Kyle Rawlins | 2023-08-26 11:42:07 -0400

build: fix macos CI
Homebrew is failing to update python because of preexisting symlinks in
/usr/local. I'm not sure why we suddenly started seeing this (the only
potentially relevant change I'm seeing recently is just a homebrew
version bump), but the issue is:
    https://github.com/actions/setup-python/issues/577

I pulled this specific fix from (found via that issue, MIT license):
    
https://github.com/aya-rs/aya/commit/7803db22a062be3cdce760cd6ff7e54b121117ed

--------------------------------------------------------------------------------
e1c0e020e0 | DracoOmega | 2023-08-25 14:08:58 -0700

Constify check_willpower
I can't see a reason this COULDN'T be const, but maybe it's my lack of C++
knowledge showing?

--------------------------------------------------------------------------------
80654f93e6 | DracoOmega | 2023-08-25 14:08:52 -0700

Remove a seemingly unused function declaration

--------------------------------------------------------------------------------
0682a58b2d | DracoOmega | 2023-08-25 14:08:37 -0700

Fix a crash if a monster pursues you and dies to barbs in the same move

--------------------------------------------------------------------------------
82435fa1af | elliptic | 2023-08-25 10:53:19 -0400

Give shapeshifter a little more int at start (acrobat).
I think this is a slight nerf and many shapeshifters will still use heavy
armour for much of the early game, but maybe this int will make hybridizing
a bit in later forms that can't use heavy armour more appealing as an option.

--------------------------------------------------------------------------------
766dd24fdf | Kate | 2023-08-25 13:27:28 +0100

Fix a crash on reflected missile kills

--------------------------------------------------------------------------------
285b096dc4 | Nicholas Feinberg | 2023-08-24 22:19:59 -0700

Scale sack of spiders count with evo skill
Make it stronger in the late game and distinguish it further from
box of beasts.

--------------------------------------------------------------------------------
23e5404fd7 | Nicholas Feinberg | 2023-08-24 22:07:14 -0700

Simplify sack of spiders' webs
Don't scale web chance with distance. Enemies' chance to evade is
enough randomness.

--------------------------------------------------------------------------------
16e5da7f86 | Nicholas Feinberg | 2023-08-24 22:05:35 -0700

Mention Mule's noisiness

--------------------------------------------------------------------------------
bcca1bc016 | Nicholas Feinberg | 2023-08-24 21:52:37 -0700

New unrand: Mule
Preview of the upcoming handcannon theme.

Tiles are, obviously, placeholder. Also it should really fire bullets.

--------------------------------------------------------------------------------
d65175cf8b | elliptic | 2023-08-24 10:21:04 -0400

Fix language in deathform status (Ge0ff).

--------------------------------------------------------------------------------
8143ab4f1d | elliptic | 2023-08-23 23:26:12 -0400

Random-round evo skill for sack of spiders.

--------------------------------------------------------------------------------
c9c7e45f3f | Kyle Rawlins | 2023-08-23 16:33:11 -0400

fix: prevent unobtainable misc items altogether
This is a lot of engineering for exactly one vault, but failing to place
a misc item as the superb item in `grunt_nemelex_the_gamble` makes the
vault altogether pointless in most cases. So, prevent a superb item from
having misc type if it is flagged as unobtainable. (The other case to
worry about is unrands, but I believe these should reroll fine -- the
object base type doesn't get rerolled.)

--------------------------------------------------------------------------------
18b96920e2 | Nicholas Feinberg | 2023-08-23 10:17:56 -0700

Make forms scale below min skill
Don't give the min skill AC, UC, EV etc bonuses for forms until you
actually reach min skill. Scale them downward linearly below min
skill, following the same formula as the scaling between min and
max skill.

--------------------------------------------------------------------------------
92e331aaff | Nicholas Feinberg | 2023-08-23 10:07:50 -0700

Fix phantom status icons (Ge0ff)
05c506a3cf9 introduced a pernicious webtiles bug where status icons
would persist across level transitions in very strange ways. This
should, hopefully, fix it.

All credit to Ge0ff for the investigation and the fix.

--------------------------------------------------------------------------------
8072aed512 | Nicholas Feinberg | 2023-08-23 10:06:37 -0700

Remove talisman offhand descriptions (acrobat)
Inconsistent to mention these only for dragon/blade and not for other
forms.

--------------------------------------------------------------------------------
95e8b0dc1a | Kyle Rawlins | 2023-08-23 11:12:52 -0400

fix: prevent infinite loops in `dgn_place_item`
Previously, if `_apply_item_props` deterministically aborted, this loop
would not terminate. After 5a299da95614 this could trigger on
`grunt_nemelex_the_gamble`.  This commit adds a loop breaking condition
based on placement attempts; it's a bit heuristic but fixes this case,
and I don't see how it'd cause other problems. (It's unclear to me if
there was another way to trip the infinite looping, maybe not?)

--------------------------------------------------------------------------------
d1cbd99268 | patrick | 2023-08-22 13:20:06 -0400

Fix up spacing, punctuation, etc. in a quote
HAAAARRRRK

--------------------------------------------------------------------------------
b34f6ce469 | Nicholas Feinberg | 2023-08-22 09:50:57 -0700

Remove unused AOOP code
Continuing from 4209ae197b53c91ba4e1345fe5cd51a30251e854.

--------------------------------------------------------------------------------
7ca08c1ff9 | Nicholas Feinberg | 2023-08-21 22:11:23 -0700

Revert "fix: don't meph cloud rpois players"
This reverts commit 0c796e0fe89ce0466a06fc39c39814d0b603bde1.

--------------------------------------------------------------------------------
0c796e0fe8 | hellmonk | 2023-08-21 21:14:24 -0700

fix: don't meph cloud rpois players
As far as I can tell this no longer deals even nominal amounts of damage, so
it's a waste of a turn.

--------------------------------------------------------------------------------
fa8c8b3ea2 | Nicholas Feinberg | 2023-08-21 21:12:02 -0700

Add a comment

--------------------------------------------------------------------------------
e7748cc39b | Nicholas Feinberg | 2023-08-21 17:05:33 -0700

Shift shapeshifting apts +1
It felt very bad to have the default apt for the skill be -2.
Shift it to -1, and adjust talisman skill levels such that each
talisman costs roughly the same XP to get to min and max skill on.

It now takes ~1.5x the XP to max out the top-level forms, instead of
~1.8x. Setting the apt to a default of +0 would mean taking only about
~1.25x the XP of getting a top-level form online to max it out; that
feels like too tight a squeeze to be a meaningful strategic choice.

Nerf Storm Form somewhat, since it's now easier to max out. Death Form
didn't really scale with power anyway (though we should fix that!), so
don't nerf it.

--------------------------------------------------------------------------------
c85dc1c48c | Nicholas Feinberg | 2023-08-21 14:40:13 -0700

Tweak olgreb code

--------------------------------------------------------------------------------
2b87e4e8af | Nicholas Feinberg | 2023-08-21 14:37:03 -0700

Fix: no Olgreb/Dispater under Sac Evo (elliptic)
No evoking without evocations!

--------------------------------------------------------------------------------
8c0b59315c | Nicholas Feinberg | 2023-08-21 14:07:24 -0700

Fix: don't require dispersal to do damage to trigger
This code was deeply weird. It'd check whether the throw did damage,
and then set the damage to 0 later regardless (since darts don't do
impact damage, except when they do).

Anyway, let's simplify.

--------------------------------------------------------------------------------
515432b62a | Kate | 2023-08-21 20:28:49 +0100

Shorten draining brand description
With the full details of its damage/probability now being shown in the
description, it's too long to justify also still having the extra flavour
line.

--------------------------------------------------------------------------------
6b635dca52 | Nicholas Feinberg | 2023-08-20 23:14:49 -0700

Mention insubstantial effects in storm desc

--------------------------------------------------------------------------------
7bf6ffcfed | Nicholas Feinberg | 2023-08-20 23:06:22 -0700

Describe form aux attacks
Badly. Also, dragon form has far far too many.

--------------------------------------------------------------------------------
3901247f13 | Nicholas Feinberg | 2023-08-20 23:06:22 -0700

Remove hydra form
's old constant. ;_;

--------------------------------------------------------------------------------
1819384c72 | Nicholas Feinberg | 2023-08-20 23:06:22 -0700

Add more details about maw aux

--------------------------------------------------------------------------------
7b48fd681b | Nicholas Feinberg | 2023-08-20 23:06:22 -0700

Describe form size in talisman descriptions

--------------------------------------------------------------------------------
06da2885e2 | Nicholas Feinberg | 2023-08-20 23:06:22 -0700

Mention statue form's rTorm

--------------------------------------------------------------------------------
8e0283293c | elliptic | 2023-08-21 00:03:57 -0400

Nerf Gyre and Gimble (+12 -> +10).
They've been incredibly good ever since the qblade buff.

--------------------------------------------------------------------------------
29856e7841 | elliptic | 2023-08-20 23:50:37 -0400

Fix Felids not getting an extra life at XL 4.

--------------------------------------------------------------------------------
894f4ffcd3 | Nicholas Feinberg | 2023-08-20 17:41:16 -0700

Fix: handle dead pursuers..?
Probably only living monsters should launch opportunity attacks.

--------------------------------------------------------------------------------
5187491046 | Nicholas Feinberg | 2023-08-20 17:36:24 -0700

Improve felid extra lives (elliptic)
It's good for species to have their cool gimmick (extra lives) show
up ASAP, and felids just had a cruel setback with recent changes to
opportunity attacks. So, let's give them an extra life at XL 1, and
make them not lose XLs on death.

--------------------------------------------------------------------------------
62dffe198b | Nicholas Feinberg | 2023-08-20 14:50:44 -0700

Simplify Siphon Essence
Death Form's Siphon Essence was originally intended to provide an
exciting payoff for using the form in extended, where many enemies
are nonliving and hence immune to torment. However, Death Form's
resistances are already very exciting in extended, and it was
surprising and counterintuitive to players that Siphon Essence's
torment effect applied to non-tormentable foes.

Make the effect match Torment by only applying to living foes. For
now, the melee 'blight' Slow and Weak status effects can still apply
to non-nonliving enemies, but that may change.

--------------------------------------------------------------------------------
34a2ce5c55 | Nicholas Feinberg | 2023-08-20 14:24:07 -0700

Clean up potential pursuers on leaving levels
This might fix a shaft crash, maybe.

--------------------------------------------------------------------------------
b6c6aa6955 | Nicholas Feinberg | 2023-08-20 14:24:07 -0700

Simplify pursuit attacks further (elliptic)
Ban monsters from launching attacks of opportunity on any but their
first move, if they take more than one move between the player's
turns. This could come up e.g. when moving away from an adder that's
more than two spaces distant from the player.

--------------------------------------------------------------------------------
7c2b8d6e60 | elliptic | 2023-08-20 15:18:57 -0400

Simplify MUT_READ_SAFETY and MUT_DRINK_SAFETY.
Previously they used a complicated formula (which was also bugged) taking
the player's HP and the damage dealt into account to determine the chance
of triggering. Instead, just use a flat 1% chance on any non-poison damage,
matching the *Slow randart property.

--------------------------------------------------------------------------------
831eee08f1 | Nicholas Feinberg | 2023-08-19 15:13:28 -0700

Remove an outdated comment (Ge0ff)

--------------------------------------------------------------------------------
4209ae197b | Nicholas Feinberg | 2023-08-19 14:27:02 -0700

Simplify attacks of opportunity (elliptic)
Using new pursuit tech, shift the time that enemies launch opportunity
attacks from when the *player* moves to when an *enemy* follows the
player. This has several advantages:

- It means that monsters who don't actually pursue players won't get
  attacks of opportunity. That includes monsters which cast a spell,
  fired a ranged weapon, or were just blocked by other monsters
  instead of moving.
- Removes special cases involving actions that were previously
  disabled for attacks of opportunity, e.g. broodmothers' spider
  spawning effect.
- Removes the need to memorize monster vs player speeds to figure out
  whether attacks of opportunity could trigger. They'll now trigger
  whenever the monster manages to pursue.
- Removes the counterintuitive behavior by which monsters with
  reaching weapons (i.e. polearms) couldn't launch attacks from afar.
  They'll now do so if and only if they move to pursue - that is,
  on the turn the player moves away, they'll normally stand pat
  and launch a normal attack instead.
- In general, reduces complexity both for players and developers.

As always, this is an experiment. Let's try it out. :)

--------------------------------------------------------------------------------
01f9145181 | Nicholas Feinberg | 2023-08-19 09:11:39 -0700

Fix hit% (acrobat, rypofalem, elliptic, implojin)
Remove duplication in halo calculation.

--------------------------------------------------------------------------------
7edc133841 | Nicholas Feinberg | 2023-08-19 09:04:13 -0700

Eustachio triumphs

--------------------------------------------------------------------------------
eb5f7b07fe | Kate | 2023-08-19 13:12:46 +0100

Add messaging when the reaping brand activates

--------------------------------------------------------------------------------
02b9bc310a | Kate | 2023-08-19 13:09:48 +0100

Fix a typo
One that's been around since art-data.txt was created in 2009!

--------------------------------------------------------------------------------
8a5a4361df | Nicholas Feinberg | 2023-08-18 17:54:04 -0700

Increase Jeremiah thematics further (elliptic)
Ban orb of wrath (too mean) and orb of light (too goody-two-shoes).

--------------------------------------------------------------------------------
02207c7b4b | Nicholas Feinberg | 2023-08-18 17:47:05 -0700

Make Jeremiah's gear more thematic
Instead of a glaive, give them a trident and a spooky magical orb.
What secrets lurk within? Perhaps it's occasionally an exciting
reward for the player?

This is intended as a nerf, since tridents usually do less damage
than glaives. A guaranteed glaive is really too much to give out
in mid-D, anyway.

--------------------------------------------------------------------------------
14bffd4ff3 | elliptic | 2023-08-18 17:42:14 -0400

Make archmagi randarts more common.
They were super rare since just being a randart robe is already quite
specific.

--------------------------------------------------------------------------------
5e7861486d | Nicholas Feinberg | 2023-08-18 13:52:50 -0700

Continue an unbroken string of triumphs
h/t hellmonk re: Polyphemus.

--------------------------------------------------------------------------------
bc2f96ccf4 | Nicholas Feinberg | 2023-08-18 13:52:40 -0700

Fix some Roxanne dialogue
Continuing from 18800231877e12caceb48c2f929f842d55aac934.

--------------------------------------------------------------------------------
3b62d3f2bc | Kate | 2023-08-18 21:31:53 +0100

Checkwhite

--------------------------------------------------------------------------------
7517d20e71 | elliptic | 2023-08-18 15:38:47 -0400

Tweak opportunity attack energy.
Don't randomize movement energy for a monster that just made an opportunity
attack, to avoid a situation in which the player moves away from a monster
and gets attacked twice that turn. Also, add a 50% chance that an
opportunity attack uses 1 energy, to be kinder to a player when an orc
warrior or similar catches up via random movement energy.

--------------------------------------------------------------------------------
e31d1ec5a1 | elliptic | 2023-08-18 15:38:47 -0400

Revert "Remove attacks of opportunity"
This reverts commit 78364c384948e7431266fbb9e381659bb4dd29ce.

--------------------------------------------------------------------------------
e438bbe35c | elliptic | 2023-08-18 15:38:47 -0400

The return of randomized energy (when pursuing the player).
Randomized energy (essentially monsters having a random choice between
0.9/1.0/1.1 move delay) was removed in c2095565. It had two main problems
- the first was that it felt surprising and 'unfair' when an ogre two
steps away suddenly moved and hit the player on the same turn, and the
second was that it incentivized running away from an adjacent monster
until random energy made a space between the two of you (usually only
taking 0-2 hits in the process).

This commit re-implements randomized energy, but only when the monster
is pursuing the player (replacing the experimental swiftness on pursuit).
This hopefully addresses the first issue with randomized energy, since
an ogre will only be able to move + attack if the player was adjacent to it
and just moved away - essentially an attack of opportunity.

The second issue will be addressed by bringing back attacks of opportunity
in a separate commit, making running away from an adjacent monster far
more deadly.

The hope is that randomized energy will help smooth out some of the sharp
edges on attacks of opportunity - we'll try it out.

--------------------------------------------------------------------------------
967258e92b | Kate | 2023-08-18 20:19:14 +0100

Remove some outdated language
Use primary/replica instead of master/slave for synchronized Lua markers,
and update language usage in a few other cases.

--------------------------------------------------------------------------------
eb4e1b2031 | Nicholas Feinberg | 2023-08-18 11:01:54 -0700

Ongoing triumphs

--------------------------------------------------------------------------------
5089dd5b6d | Neil Moore | 2023-08-18 12:53:39 -0400

Fix a stray "insane" (ghostwilliz)
Using autofight while a neutral monster was visible would result in:

  autofight.lua:305: bad argument #1 to 'is' (no such moninf flag: 'insane')

--------------------------------------------------------------------------------
23c5e8eb7f | DracoOmega | 2023-08-18 12:46:12 -0230

Properly warn the player when aiming explosions at empty tiles near allies
Proper stop attack prompts were only being given if the explosion effect was
aimed directly at a creature and NOT if you were aiming at an empty space near
that creature.

This seems to have been a result of the beam code detecting that we would only
hit our ally AFTER the 'target' we were aiming at, and then aiming at the ground
at that spot and assuming that was good enough to spare them. (hint: it was not)

So now, let's just disable suppressing prompts if the source of the damage is
an explosion.

--------------------------------------------------------------------------------
d85dfe4a71 | Kate | 2023-08-18 13:00:17 +0100

Don't let perma-confused monsters pursue the player
Such as butterflies.

--------------------------------------------------------------------------------
0c08979aea | Kate | 2023-08-18 12:58:11 +0100

Fix conjugation

--------------------------------------------------------------------------------
5a299da956 | Kate | 2023-08-18 12:16:42 +0100

Don't generate "unobtainable" unrands/XP evokers
The "unobtainable" tag is only used for nemelex_the_gamble (and should
generally be used very sparingly) - portal vaults (and Gauntlets in
particular) are definitely still fair game for unrands and XP evokers.

--------------------------------------------------------------------------------
69dc8cc98e | Nicholas Feinberg | 2023-08-17 22:49:46 -0700

A few more triumphs

--------------------------------------------------------------------------------
d01e783392 | Nicholas Feinberg | 2023-08-17 18:42:56 -0700

Add more triumphs

--------------------------------------------------------------------------------
dcce639ab2 | Nicholas Feinberg | 2023-08-17 18:18:35 -0700

Fix the pronouns of speed

--------------------------------------------------------------------------------
3702cae195 | Nicholas Feinberg | 2023-08-17 18:15:14 -0700

Refactor death messages
Hee hee hee. More to come, I think.

--------------------------------------------------------------------------------
cbebf7f143 | Nicholas Feinberg | 2023-08-17 16:17:04 -0700

Fix a CRITICAL anaconda bug (Oneirical)

--------------------------------------------------------------------------------
7ea453304b | Nicholas Feinberg | 2023-08-17 10:19:49 -0700

Make Maw Form healing trigger more often
This is just a small buff to make maw form feel better, based on
playtest feedback.

--------------------------------------------------------------------------------
791418dc5d | Nicholas Feinberg | 2023-08-17 10:17:23 -0700

Adjust Maw Form aux
To make it feel a bit more consistent, increase trigger chance to
75% (was 50%) and decrease damage from min/max 16/27 to 12/20.
This should make it a bit better against 0 AC enemies and a bit worse
against higher AC enemies, hopefully breaking even.

--------------------------------------------------------------------------------
881be02e36 | Nicholas Feinberg | 2023-08-17 10:14:01 -0700

Fix draconian dragon form AC
Accidentally got a +6 when the talisman change was made.

--------------------------------------------------------------------------------
6656212320 | Nicholas Feinberg | 2023-08-17 10:07:25 -0700

Feat: hot pursuit (elliptic)
Not to be confused with the similar-sounding apparel beloved of
certain players, 'hot pursuit' is a new mechanic to encourage fun
lines of play.

A Brief History
---------------

When in a very nasty spot (low on HP and next to a tough foe), players
have historically been able to 'pillar-dance', wasting time (both the
game's and theirs) to get time to heal. This is both unfun to do and
narratively unsatisfying. When in a tight spot, players should pull out a
cool trick (a spell, god ability or consumable), fight, and/or die!

We first tried to fix this by adding 'random energy', which unfortunately
fixed nothing. Then we tried 'attacks of opportunity', letting monsters
attack when the player moved away. These worked somewhat, but had several
disadvantages, including:

- They were very complex. The list of special cases for which monsters
  could attack the player and when was very long, and it was hard for
  players to track.
- They were very binary. If a monster was next to the player, danger was
  vastly higher than if they were 2 tiles away. If a monster was as fast
  as the player, danger was vastly higher than if they were just a bit
  slower.
- They had odd and unintuitive interactions with polearms (which didn't
  launch reaching attacks of opportunity).
- They were frustrating. Players felt profoundly unhappy when they were
  killed by attacks of opportunity - it felt like the game becoming more
  hostile.

So, let's try something a bit gentler

Hot Pursuit
-----------

When the player moves away from a monster, if that monster then moves
toward the player, they have a one in ten chance of putting on a 'burst
of speed', moving ~25% faster (move delay 0.8) for the next ~20ish turns.
This speed bonus affects the move that triggered it, so players walking
away from an adjacent yak have a 2% chance of getting a surprise bap
from them.

The intent is to again discourage 'pillar-dancing' and other fiddly
stalling tactics (e.g. running across the entire level to get to stairs)
in a 'softer', fuzzier way, without the hard binaries of attacks of
opportunity.

Wu Jian martial manuevers and Serpent's Lash again give immunity to
this effect.

Let's try it out!

--------------------------------------------------------------------------------
78364c3849 | Nicholas Feinberg | 2023-08-17 10:07:25 -0700

Remove attacks of opportunity
Experimenting with a new approach to discourage pillar-dancing.

Reverts d469af4107d0171314512d0e591032a5fe31303c.

--------------------------------------------------------------------------------
3b7de120b3 | Implojin | 2023-08-16 19:31:20 -0500

feat: Suppress rampage with WJC
By popular request, this commit suppresses rampage and rollpage while
worshipping WJC, thus allowing WJC's martial attacks to occur instead of
rampaging.

--------------------------------------------------------------------------------
ea3e70a90f | Nicholas Feinberg | 2023-08-16 15:26:58 -0700

Tweak more early-game monster descriptions
TY to rypofalem for the typo spot.

--------------------------------------------------------------------------------
758d19d7b2 | Nicholas Feinberg | 2023-08-16 15:16:12 -0700

Fix: keep cutting Blade's Wiz penalty (Namsan)
Continuing from 08d4ee96a19852dd389d79ca649037850834e347.

--------------------------------------------------------------------------------
ccde6106b6 | Nicholas Feinberg | 2023-08-16 15:09:25 -0700

Remove some dubious sprints
Remove Maurice's sprint, since it's very unclear why he had it
(or why he has anything he does. Rework someday!)

Remove alligators' sprint, since it wasn't very interesting - they
cast it often enough that you couldn't really play around it, they
were just going to be fast a bunch of the time. Upgrade them to base
12 speed (a bit slower on land then they were when swift) and cut
their HP and damage slightly to compensate.

--------------------------------------------------------------------------------
d1292be0fd | Nicholas Feinberg | 2023-08-16 14:59:45 -0700

Remove the Swiftness interaction with water
Swiftness not working in water was a deeply antique (pre-DCSS) mechanic
which was undocumented and unintuitive - why would you stop being
swift when walking in shallow water? It's not valuable for balance or
excitingly evocative, so cut it.

--------------------------------------------------------------------------------
03b8d61ab2 | Nicholas Feinberg | 2023-08-16 14:51:00 -0700

Fix: make frenzy references consistent
We sometimes called it 'frenzied', sometimes 'insane', and sometimes
just a 'mindless rage'. Let's try to be mostly consistent.

Also fix a few other insane references.

--------------------------------------------------------------------------------
c65fdffd30 | Nicholas Feinberg | 2023-08-16 14:35:21 -0700

Mostly remove obscure berserk shouting
When berserk or frenzied monsters walked around, they'd continuously
make shout-level noise (with no corresponding message). This only
occurred on movement, not on waiting, attacks, etc. Very silly!

Instead, frenzied monsters keep a chance to shout, and berserk
monsters keep their still purely-cosmetic "the foo rages" line.
It's iconic. I can't cut it.

--------------------------------------------------------------------------------
6e16503903 | Nicholas Feinberg | 2023-08-15 22:22:47 -0700

Fix: make |earth swing half as often (SentientSupper)
Turns out that quick blades and staves of earth are different things.

--------------------------------------------------------------------------------
2b9f58fa2b | Nicholas Feinberg | 2023-08-15 21:14:56 -0700

The Amazing Shrinking Frog
Continue shrinking Jeremiah's HP to a more depth-appropriate value.

--------------------------------------------------------------------------------
c02eecb565 | Nicholas Feinberg | 2023-08-15 21:06:50 -0700

Break Chain Lightning out of its frame
A quick hack-job to imitate other L9 spells.

--------------------------------------------------------------------------------
bdf9f2fc11 | Nicholas Feinberg | 2023-08-15 20:52:38 -0700

Shrink Jeremiah Jordan's jelly jar
J-frog is proving a little more lethal than intended. Let's try
pulling a lever a bit downward to encourage reasonable players to
actually tangle with 'em.

--------------------------------------------------------------------------------
a1bd9b08d9 | patrick | 2023-08-15 20:52:15 -0400

Add a new quote (Floobenga)

--------------------------------------------------------------------------------
aec1239e71 | Nicholas Feinberg | 2023-08-15 17:19:04 -0700

Fix: don't let death-form grow roots (acrobat)
Undead players aren't supposed to be able to transform. They *are*
allowed to leave death form and enter talisman forms, for convenience,
but they shouldn't be able to become trees. Even if Gozag offers!

I considered banning lig from potpet when in death form, but that
seemed inconsistent with other effects that are presently unhelpful.
Sometimes you get a potion you didn't want!

--------------------------------------------------------------------------------
2fa3788449 | Nicholas Feinberg | 2023-08-15 17:11:31 -0700

Remove support for bad jewellery
Negative enchantment rings have been gone for years. Let me know if
I forgot some.

--------------------------------------------------------------------------------
7ef6b13b4f | Nicholas Feinberg | 2023-08-15 16:22:35 -0700

Remove the dangerous item autopickup exception (Lici)
Most of these (eg lig, attraction...) are reasonably useful these
days. ?torment is probably the only exception (barring treeform
TRJ strategies).

Move ?torment from dangerous to bad to make this rule more useful.

--------------------------------------------------------------------------------
f98fd537a9 | Nicholas Feinberg | 2023-08-15 14:11:36 -0700

Remove Donald's hat of reflection (acrobat)
Use Implojin's new 'unusual monster highlight' to call out monsters
with reflection (amulets, shields, Warlock's Mirrors) for both tiles
and console players. To reduce visual noise, cut the corresponding icon.

--------------------------------------------------------------------------------
a7f35e1160 | Nicholas Feinberg | 2023-08-15 11:34:47 -0700

Give draconians visible maws (Midn8)

--------------------------------------------------------------------------------
463418d2c3 | Nicholas Feinberg | 2023-08-15 11:33:26 -0700

Fix Beast Form slay display (CarefulOdds)

--------------------------------------------------------------------------------
c1c765faf9 | Nicholas Feinberg | 2023-08-15 11:27:24 -0700

New Jeremiah tile (Sastreii)
This is silly!

--------------------------------------------------------------------------------
bf1d6132cb | Nicholas Feinberg | 2023-08-15 11:27:24 -0700

New Beast Form tile (Sastreii)

--------------------------------------------------------------------------------
ceb718ecc6 | Kate | 2023-08-15 00:06:32 +0100

Fix a crash with confused drowned souls
Confused monsters can get an attack on the player and then another attack
on themselves in the same action. If a drowned soul did this, it would
self-destruct on the first attack, but then try to make the second attack
against themselves before having properly been reset and counted as dead.
Fix by cleaning up dead attacking monsters at the end of a melee attack.

--------------------------------------------------------------------------------
eaa9c7a2c0 | Nikolai Lavsky | 2023-08-14 15:21:12 +0300

docs: fix talismans on the ?? screen
Use `percent` instead of the `%` item glyph, to prevent
`insert_commands()` from replacing it with `CMD_EVOKE`.

--------------------------------------------------------------------------------
dc2a67831c | Kate | 2023-08-13 21:04:23 +0100

Fix a qw ability name

--------------------------------------------------------------------------------
e126be3fee | Kate | 2023-08-13 19:58:50 +0100

Remove a hardcoded number

--------------------------------------------------------------------------------
c0d178777e | Kate | 2023-08-13 19:58:50 +0100

Rebrace

--------------------------------------------------------------------------------
27a3252745 | Kate | 2023-08-13 19:58:03 +0100

Adjust some cloning handling
Fix there being no message for chaos clones, don't grant experience for
clones, and allow chaos-cloning monsters with artefacts now that they'll
always be marked as summoned. Also prevent cloning tentacles and conjured
monsters.

--------------------------------------------------------------------------------
bc85326fa9 | elliptic | 2023-08-12 21:11:21 -0400

Remove the final instance of a speed 11 monster.
By making sphinx speed 12. In partial compensation, reduce sphinx casting
rate by a similar amount. They are still going to be a bit more dangerous
now.

--------------------------------------------------------------------------------
029fa849c0 | Nicholas Feinberg | 2023-08-12 16:31:22 -0700

Mention glow in flux description (Ge0ff)

--------------------------------------------------------------------------------
a3e2962e35 | gammafunk | 2023-08-12 16:44:18 -0500

feat: Tweak a Shoals vault (elliptic)
For nicolae_shoals_mertower, rework the design a bit so it's less likely
to be an autoexplore trap into a big chamber of top end merfolk. Have
the monsters be patrolling (appropriate for a tower) and put windows in
the tower as well. Add three pieces of loot, one of which has a 50%
chance to be a tower shield (this is a pun). For the inner monsters,
thin them out so we only place about 3.5 high end merfolk on average,
with javelineers made less common. The average number of monsters placed
is still about 7.

Also remove the tower's inner water. The original intent was for the
tower to be raised above the tides, but not so much that it was dry.
However this is a bit awkward thematically with the outside dry land,
and the vault is plenty hard without guaranteed water.

--------------------------------------------------------------------------------
08d4ee96a1 | Nicholas Feinberg | 2023-08-12 09:20:26 -0700

Remove Blade's Wiz penalty (various)
Somewhat superfluous now, and inconsistent lore-wise with other,
stranger forms.

--------------------------------------------------------------------------------
aab96319b4 | Kate | 2023-08-12 15:04:41 +0100

Fix regret_index_temple_of_mockery (#2667)
It was placing random monsters before the mocking monster could be placed,
since there was no monster defined for the 1 glyph.

Closes #2667.

--------------------------------------------------------------------------------
ba14c20cce | Kate | 2023-08-12 14:37:20 +0100

Fix some missing monster cast messages
Fixes #2703.

--------------------------------------------------------------------------------
28f74ba3e5 | elliptic | 2023-08-11 20:16:46 -0400

Buff lightning rod's price (Lici).

--------------------------------------------------------------------------------
3015b455e8 | Kate | 2023-08-12 00:54:46 +0100

Remove Ashenzari's passive mapping outside LOS
In favour of the newly (re-)implemented LOS-radius perfect mapping at 4*,
remove the wider-radius passive mapping that scaled with piety. Passive
mapping generally has interface issues, encouraging players to repeatedly
re-open the level map while moving around to check distant mapped areas.

--------------------------------------------------------------------------------
cacbf3a157 | Kate | 2023-08-11 23:49:26 +0100

Revert "Let monsters know if the player has clarity (Lici)"
Having monsters waste their time with useless spells is intended in some
cases - gaining certain resistances shouldn't make monsters more dangerous
by changing their AI and causing them to only cast spells that the player
is vulnerable to. There's very little consistency with this across
different monster spells, but in various cases the intended behaviour is
for them not to cast spells that the player is "obviously" (by virtue of
species etc) immune to, but to still cast them if the player has gained
resistance/immunity in some other way.

This reverts commit 993fcd7dae2e2a45acc3f264f09929cf83240ccc.

--------------------------------------------------------------------------------
0240bd9e67 | Nicholas Feinberg | 2023-08-11 15:23:13 -0700

Reduce out-of-branch spawns in Snake (elliptic)
Halve the number of quicksilver dragons in Snake rune vaults.

--------------------------------------------------------------------------------
0aeb0967f1 | Kate | 2023-08-11 22:16:59 +0100

Remove Gozag's passive gold detection
It was a cute minor flavour effect, but had weird consequences in practice -
granting Gozag a pseudo-mapping ability that was particularly spoilery
around vaults that placed lots of gold. Gold is still moved to the top of
item piles, to keep some of the flavour and make gold still stand out.

--------------------------------------------------------------------------------
6b883973aa | Kate | 2023-08-11 22:16:59 +0100

Replace some numbers with constants

--------------------------------------------------------------------------------
7fa58fedfe | Kate | 2023-08-11 22:16:58 +0100

Give Ashenzari perfect mapping within LOS (fbwer, elliptic)
As a substitute for the now-removed astral vision, but without the
implementation issues it previously had. Enabled at 4*.

--------------------------------------------------------------------------------
993fcd7dae | Kate | 2023-08-11 22:16:58 +0100

Let monsters know if the player has clarity (Lici)
Fixes monsters repeatedly trying to cast Cause Fear against immune players.

--------------------------------------------------------------------------------
2a164cf6a2 | Nicholas Feinberg | 2023-08-11 11:27:15 -0700

Reduce Jeremiah smite rate
Make it a bit closer to other early-mid D smiters.

Also make the spell rates equal, which will make hellmonk happy.

--------------------------------------------------------------------------------
071a6c1ffa | elliptic | 2023-08-10 13:07:06 -0400

Remove rC+ from storm dragons (acrobat).
Unclear why they have it, storm form doesn't even have rC+ and it is an
actual storm. Plenty of other dragons and late game undead have rC+.

--------------------------------------------------------------------------------
c2a4ee3747 | Nicholas Feinberg | 2023-08-10 07:24:19 -0700

Make Jeremiah only butterfly in sight (acrobat)
No spamming butterflies when out of LOS. Silly and counterproductive.

--------------------------------------------------------------------------------
c7390f8997 | Nicholas Feinberg | 2023-08-09 20:53:40 -0700

Reduce high duration summons (hellmonk, Buttons)
To discourage repeatedly recasting summons out of combat, decrease
the max durations of call canine familiar, call imp, summon ice beast,
monstrous menagerie, and spellforged servitor.

We may need to nerf monster abjuration later, but I'm skeptical.

--------------------------------------------------------------------------------
e4037352c6 | patrick | 2023-08-09 22:27:04 -0400

Rescue an arrival vault from oblivion and add it
orjb1 submitted a PR with an arrival vault in it:
https://github.com/crawl/crawl/pull/3246
but after initial feedback they seem to have deleted it.
I liked the vault, though, and yoinked it from oblivion.
I made a few changes to get it working right, but other
than that, I kept it mostly as it was submitted. (I didn't
fix the asymmetry of the empty floor spaces around the
edges, even though I mentioned it on the PR; I ended up
liking how it interacted with the rest of the level.)

--------------------------------------------------------------------------------
df67acd773 | Nicholas Feinberg | 2023-08-09 19:06:18 -0700

Warm Jeremiah up (acrobat)
Matching player barachim and the monster dummy.

--------------------------------------------------------------------------------
2cb333d0c2 | patrick | 2023-08-09 21:59:56 -0400

Fix the tiles in elethiomel_arrival_fortress_basement
been buggin me for years

--------------------------------------------------------------------------------
48e1739576 | Nicholas Feinberg | 2023-08-09 17:04:18 -0700

Tweak *Noise description (acrobat, elliptic)

--------------------------------------------------------------------------------
fcb59812bd | Kate | 2023-08-09 21:51:52 +0100

Fix a resting crash with inhibited regen
It was possible to start resting with no monsters in LOS, and then have a
monster come into view on the other side of deep water and activate -Regen
without interrupting the rest, causing it to continue indefinitely and hit
the assert threshold.

--------------------------------------------------------------------------------
61598ed1a1 | Kate | 2023-08-09 19:23:52 +0100

Remove a sleepwalking gimmick
As requested!

--------------------------------------------------------------------------------
6123214d49 | Kyle Rawlins | 2023-08-09 14:05:53 -0400

fix: initialize a PromptMenu variable (dilly)
TravelPromptMenu::refresh_prompt is called before this was initialized
in PromptMenu code, leading to undefined behavior (and probably
sometimes, the wrong prompt).

--------------------------------------------------------------------------------
b2b78dfc09 | Kyle Rawlins | 2023-08-09 13:56:19 -0400

fix: update PromptMenu state when switching modes
This could lead to the wrong hints (and maybe other issues) if menu mode
is forced by e.g. looking at a long altar list.

--------------------------------------------------------------------------------
28e415ffb7 | elliptic | 2023-08-09 11:19:12 -0400

Fix a misspelling.

--------------------------------------------------------------------------------
dc6bdc1437 | Implojin | 2023-08-09 09:27:44 -0500

Add a new tiles icon for paralyse
This is a simple recolour of the existing sleep icon, but hopefully it's
enough for players to differentiate paralysed and sleeping monsters.

Might need to redo the icon later if it's not distinct enough?

--------------------------------------------------------------------------------
5e04a77a59 | Nikolai Lavsky | 2023-08-09 17:20:46 +0300

fix: make grey clouds less purple
Remove stray purple pixels from clouds of grey smoke, which are
especially noticeable in the Desolation:

https://cdn.discordapp.com/attachments/1064517662111178804/1138836044721160333/d
esolation_clouds.png

--------------------------------------------------------------------------------
d5cd04eec4 | Kyle Rawlins | 2023-08-09 09:50:20 -0400

fix: quiet some enum class+switch related warnings
Mentioned in #3227

--------------------------------------------------------------------------------
ee86dcb4cb | Kyle Rawlins | 2023-08-09 09:36:32 -0400

fix: don't crash on line_down in an empty menu
Mainly replicable via memorize. This is related to, but not the same
crash, as in #3082.

--------------------------------------------------------------------------------
bafd7f5274 | Nicholas Feinberg | 2023-08-08 17:41:19 -0700

Fix: don't make flux suppress intrinsics (elliptic)
TODO: make this not bad

--------------------------------------------------------------------------------
3d79149578 | Nicholas Feinberg | 2023-08-08 13:22:17 -0700

New unique: Jeremiah, Barachi Dreamer
Playing more around with different types of summons in the early game,
Jeremiah is an early-game (D:6-9) unique who passively summons butterflies
every turn. Jeremiah then hits you with a draining glaive, hops backwards,
and smites you. (The glaive is the loot.)

Their backstory is deeply tragic but that's OK. They also have a very
silly sleepwalking gimmick which kate will remove soon.

It'd be thematic to spawn the butterflies while J is sleeping, but
it feels spoilery (for players who don't know what nearby summoned
butterflies indicate) and a bit too easy to completely avoid J
without even seeing them.

--------------------------------------------------------------------------------
f982180d95 | Nicholas Feinberg | 2023-08-08 13:01:21 -0700

Credit NephaliaWeaver

--------------------------------------------------------------------------------
dd471462e6 | Implojin | 2023-08-08 14:02:52 -0500

New tiles icon for pain bond (CanOfWorms)

--------------------------------------------------------------------------------
df1e9e4a2e | DracoOmega | 2023-08-08 16:02:26 -0230

A few minor improvements to quick fsim text output
Now prints a header message showing what monster is being attacked and with
what weapon (using fsim while unarmed but with a throwing item quivered
uses the throwing weapon to attack and NOT your fists, which could produce
misleading numbers).

Also removes the superfluous lines about the player not being hit during
your attack round, and the monster not being hit during your defense round,
which I think never report relevant information?

(Incidentally remove an old reference to when ranged weapons had seperate
ammo, which resulted in file output thinking you were shooting your weapon
out of your weapon)

--------------------------------------------------------------------------------
902d8d2af8 | Nicholas Feinberg | 2023-08-08 11:28:47 -0700

Don't give accuracy to Me foes (elliptic, acrobat)
Make flux form and meteoran backlighting work the same way as
self-halo (from TSO, orb of light, etc), by not providing an accuracy
bonus to foes. It still disables invisibility and ruins stealth.

Also, remove the flux form EV bonus added to compensate for this.

This reverts commit 7f215ca21b984ff96d35925c7007df7b865050c2.

--------------------------------------------------------------------------------
c77f77e11d | Kyle Rawlins | 2023-08-08 14:25:54 -0400

feat: improve artefact descriptions
This commit mostly aims to improve the display of artefact properties in
their long description.

* Make indentation for `Name: description` lines much more consistent
  across item types (and also refactor this code somewhat). If a
  property name is too long, don't chop it, just expand.
* Give jewellery egos a name, not just a description
* Move the weapon type description out of the item-specific property
  list, it now appears before handedness.
* Fix a bug with orb description spacing
* Parse DESCRIP and DBRAND (splitting by `:`) so that the hand-coded
  (and often very inconsistent) indentation in that file doesn't matter.
* Add some names to a bunch of DESCRIP cases

A few remaining oddities:
* weapon egos have an extra blank line following them not present in
  other item types that is hard to get rid of. Occasional weird
  interactions with this and dbrand.
* DESCRIP/DBRANDs that have an infinity symbol are not aligned correctly
* Probably other spacing stuff, this code is quite complex

--------------------------------------------------------------------------------
791ea4fb0e | Kyle Rawlins | 2023-08-08 14:25:54 -0400

refactor: show full artefact prop name in long descriptions
Previously, this would show just the base name (e.g. rF) instead of the
full annotation name (e.g. rF++). Getting this to work sanely involved a
refactoring of a whole bunch of code, but artefact prop code is still a
mess overall.

--------------------------------------------------------------------------------
6b702e47e2 | Kyle Rawlins | 2023-08-08 14:25:54 -0400

feat: support right click for help in local tiles skill menu
Resolves #3086

--------------------------------------------------------------------------------
df853b38fe | Kyle Rawlins | 2023-08-08 14:25:54 -0400

fix: use temporary mode for a prompt
This prompt could maybe use a bigger overhaul, but for now, make its
behavior more standard with other prompting.

Also, fix an unrelated comment.

--------------------------------------------------------------------------------
a81648d2db | Nephila Hirsch Oliveira | 2023-08-08 07:02:05 -0700

Only apply Flux contam on player attacks
Closes #3242.
Closes #3241.

--------------------------------------------------------------------------------
6f97920a28 | Nicholas Feinberg | 2023-08-07 22:22:26 -0700

Deduplicate some gear giveaways
This should really be dataified. But, like, in a more readable way
than weapons.

--------------------------------------------------------------------------------
15b80361f1 | Nicholas Feinberg | 2023-08-07 17:53:29 -0700

Weaken Flux Form scaling (elliptic)
Try to make it less competitive with tier 2 forms on the top end.

--------------------------------------------------------------------------------
98ab19c3ae | Nicholas Feinberg | 2023-08-07 17:05:32 -0700

Shift flux form slightly later
Min skill 6, to make it take a little longer to come online. Move
beast form's max skill up correspondingly.

--------------------------------------------------------------------------------
2108c08da7 | elliptic | 2023-08-07 19:47:02 -0400

Make fluxform less sleepy.
(In console it used to be the same highlight as sleeping monsters.)

--------------------------------------------------------------------------------
6cfc4c83a9 | Nicholas Feinberg | 2023-08-07 16:08:42 -0700

...really

--------------------------------------------------------------------------------
37d6a9d476 | Nicholas Feinberg | 2023-08-07 16:08:16 -0700

Make players dimmer (elliptic)

--------------------------------------------------------------------------------
f00e8c0ca5 | Nicholas Feinberg | 2023-08-07 15:27:56 -0700

New talisman: Flux
Intended to serve as a further goal for Shapeshifters to skill
toward, flux talismans are a bridge between Beast form and later
forms.

Users inflict magical contamination on foes with each hit. Level 1
contam backlights foes, revealing invisible enemies and reducing
their EV. Level 3 causes a meltdown, doing high damage (0-30 at
min Shapeshifting skill, 0-60 at max), malmutating the victim, and
resetting their glow. This is intended to create a distinctive
rhythm (1-2-3 hits) without breaking autofight or otherwise being
'fiddly'.

Flux form also has a moderate EV bonus (5 at min skill, 10 at max),
which is intended to more or less balance out the penalty for
permanently glowing.

The real tradeoff is that your unstable, flux-ridden form is unable
to wield weapons or shields and just sometimes destabilizes mid-swing.
The latter reduces post-AC melee damage by 1/3rd, similar to statue
form's +50% damage. This is intended to give the contam part of the
form more time to shine (so the player is less likely to just beat
enemies to death before the meltdown triggers), and also to limit
how far the form scales - eventually the damage penalty will outweigh
the upsides.

Beast form is now max skill 6 (was 10), and max slay 5 (was 7).
This keeps skill scaling similar while limiting how long users will
want to use their 'starter form'. I might still make further changes
to this, e.g. replacing slay with an aux.

--------------------------------------------------------------------------------
282fc92437 | Kyle Rawlins | 2023-08-07 16:31:20 -0400

refactor: move altar travel into TravelPromptMenu
This commit refactors some extremely janky prompt menu stuff for travel
to altars into the more structured TravelPromptMenu as a new mode. Like
the regular travel menu, it can appear in either the message pane or a
popup, and it has general and option-dependent code for deciding on
which it tries and how it lays out. I had considered just removing this
submenu entirely (since ctrl-f seems like a better approach to me), but
it sounds like players do use this primarily via the ctrl-o _ path.

--------------------------------------------------------------------------------
fc25b91918 | Nicholas Feinberg | 2023-08-07 12:49:34 -0700

Let iguanas swim (shmup)
One must be biologically accurate. It's paramount.

--------------------------------------------------------------------------------
5493424979 | Kyle Rawlins | 2023-08-07 11:25:32 -0400

fix: improve default handling in travel menus
For cases where there is a previous travel target:
* If arrow controls are on, highlight that branch as the default
* If arrow controls are off, accept [enter] as a quick shortcut (doesn't
  prompt for depth, because this is how it is done in the message pane,
  but this is a bit inconsistent..)
* When prompting for depth, if the branch matches the previous target,
  use the target depth as the default. This one is a new behavior, which
  makes the arrow control case a bit smoother.

--------------------------------------------------------------------------------
8d68a81214 | Nicholas Feinberg | 2023-08-06 22:56:15 -0700

Fix bound soul HP display (acrobat)
Continuing from 4fc774d21a5a6b3a19f414e2a6718f74ff07d088.

--------------------------------------------------------------------------------
aadceae713 | Nicholas Feinberg | 2023-08-06 22:51:29 -0700

Split gnomes and gnolls (canine)

--------------------------------------------------------------------------------
30e62f8b7a | Nicholas Feinberg | 2023-08-06 16:22:38 -0700

Change the updatelog
Or update the changelog, whatever.

--------------------------------------------------------------------------------
96a4d527f4 | Kate | 2023-08-06 23:21:28 +0100

Add an important number
To the randart name pool.

--------------------------------------------------------------------------------
37773c3749 | Kate | 2023-08-06 23:21:28 +0100

Remove some Xom names

--------------------------------------------------------------------------------
3e60cf2259 | Kate | 2023-08-06 23:21:27 +0100

Remove some randart names

--------------------------------------------------------------------------------
15872d262f | Kate | 2023-08-06 23:21:27 +0100

Rename an ice cave internal key
And a couple of other cases - not an appropriate term to use here.

--------------------------------------------------------------------------------
91c9547826 | Kyle Rawlins | 2023-08-06 15:01:18 -0400

fix: G >/< in webtiles
The keys were being intercepted by javascript paging code.

--------------------------------------------------------------------------------
4fd37da4f0 | Nicholas Feinberg | 2023-08-06 09:37:40 -0700

Reduce early-game talisman frequency slightly
Reduce beast talisman spam a bit.

--------------------------------------------------------------------------------
9002559900 | Nicholas Feinberg | 2023-08-06 09:37:40 -0700

Sometimes give Josephina a talisman of death (acrobat)
Feels thematic.

--------------------------------------------------------------------------------
b56e7cad85 | Kyle Rawlins | 2023-08-06 12:33:10 -0400

feat: prompt popup consistency for tiles
Several menus that can appear in the message pane support using popups,
but for historical reasons would do it only when necessary (e.g. there
is already a popup on the stack). The two main cases are the Y/N(/A)
menu, and the travel menu. Crawl taking input in the message pane has a
long roguelike-y tradition, but it prevents mouse input, and can't work
in all cases anyways. This commit moves the default towards consistently
using a popup in UIs where the popup works well. In particular, in local
tiles, and webtiles, these two popups (where the Y/N(/A) is used quite
widely) will now always pop up by default. As part of this change, I
have attempted to make a bunch of the behavior more consistent. Specific
notes:

* For those who prefer the old ways, set `prompt_menu = false`. This is
  the default still for console (where popups still take over the whole
  screen), including on webtiles builds. We'll see how much people hate
  this as a webtiles default...but I think it is a clear improvement on
  local tiles.
* Handling of case in defaults is changed; I think the behavior this is
  addressing is essentially buggy. Previously, for the popup (but not
  the message pane?) if a default was lowercased, but the menu required
  uppercase, the default wouldn't work.
* enter (and locally, space) now work to indicate a default in the popup
* Y/N prompts now have a smaller min width in webtiles
* With menu_arrow_control=false, the defaults are hinted more clearly in
  the popup
* Error messaging in the Y/N popup happens in the more, not in a dummy
  entry
* Arrow selection is now allowed for uppercase Y/N menus

--------------------------------------------------------------------------------
4fc774d21a | Nicholas Feinberg | 2023-08-06 09:28:06 -0700

Don't change bound soul HP (acrobat)
Weirdly spoilerly and never relevant in practice, since monsters
almost never level up these days.

Would maybe be nice to do the same for other derived undead (in
make_derived_undead_fineff::fire), but you'd need to play with
derived_undead_avg_hp() to rescale skeleton, zombie, simulac etc HP
to some fraction of the original monster's HP.

--------------------------------------------------------------------------------
a17b723721 | Nicholas Feinberg | 2023-08-06 09:28:06 -0700

Dedent

--------------------------------------------------------------------------------
61b50ae490 | elliptic | 2023-08-05 21:09:13 -0400

Switch the CSET_ASCII character for talismans back to '|'.
In CSET_ASCII, '%' is a very bad choice because it is used for corpses.
Using a different character for menus and for the item on the map isn't
ideal either, but seems less bad.

Ideally there would be an option to fully hide corpses, freeing up '%' for
an item class.

--------------------------------------------------------------------------------
43a2ca8e1b | Kate | 2023-08-05 22:43:15 +0100

Remove an orb of Zot descriptor
The joke of the orb of Zot just being "pretty good" unfortunately doesn't
work, since it doesn't scan grammatically in any of the welcome lines.

--------------------------------------------------------------------------------
bde574a406 | Nicholas Feinberg | 2023-08-05 13:54:01 -0700

Fix Norris's missing band
Surf's up, dude!

--------------------------------------------------------------------------------
390c57a952 | Nicholas Feinberg | 2023-08-05 13:50:23 -0700

Make troll leather armour closer to non-troll
After c8f691b2cc77d/dd814f33f16 (2021), when regen's strength was
doubled, troll leather armour became a much more powerful item.
It's a bit unfortunate that players' endgame armour is now so often
found in early D - it gives people less to look forward to.

Let's simplify by removing TLA's bonus base AC, making it match
vanilla leather armour's 3 AC.

MTLA gets +1 enchant to match its +5 MP.

--------------------------------------------------------------------------------
da5c5a71be | Nicholas Feinberg | 2023-08-05 13:49:59 -0700

Switch Norris's AF_SLEEP for AF_CONFUSE (elliptic)
Former was insanely brutal, in principle. Latter seems thematic and
not overused.

--------------------------------------------------------------------------------
e939bffe16 | Kyle Rawlins | 2023-08-05 13:52:26 -0400

fix: don't clear repeats when a monster destroys a floor stack
`dec_mitm_item_quantity` assumed it was being called by player actions
only, but it can be used in a few other cases, notably when a monster
(such as a jiyva slime) destroys a floor stack. I couldn't find a
reliable general way to check whether a player action is responsible for
the call, and this function isn't called that much, so I handled every
case. These clear calls are still necessary for floor actions; without
them a repeat that uses up a scroll stack (for example) with another
stack in the same position has very weird behavior.

This fixes a few other call types that shouldn't mess with command
history, but they probably don't matter as much.

Resolves #3194

--------------------------------------------------------------------------------
74618ad6ef | Kyle Rawlins | 2023-08-05 13:51:54 -0400

fix: don't count headers in stash search matches
Resolves #3188

--------------------------------------------------------------------------------
98c9adc2b6 | gammafunk | 2023-08-04 16:39:44 -0500

fix: Wizmode talisman UI (acrobat (again))
Escape the '%' since we're using a formatting string.

--------------------------------------------------------------------------------
5a032ab85b | Nicholas Feinberg | 2023-08-04 13:54:23 -0700

Fix wizmode talisman UI (acrobat)

--------------------------------------------------------------------------------
f4de33755b | Nicholas Feinberg | 2023-08-04 12:36:46 -0700

Standardize talisman glyphs
Unify on %, removing uses of T, | and ◎.

--------------------------------------------------------------------------------
8b0e38b958 | Nicholas Feinberg | 2023-08-04 10:23:46 -0700

Fix Forbidden Knowledge (pyy156941)
Closes #3228.

--------------------------------------------------------------------------------
c7e1478a07 | Nicholas Feinberg | 2023-08-04 10:22:10 -0700

Add an elemental staff inscript (acrobat, fbwer)
Closes #3234.

--------------------------------------------------------------------------------
10b485e85d | Nicholas Feinberg | 2023-08-04 10:17:58 -0700

Update Warper description (projectNoob)
Closes #3233.

--------------------------------------------------------------------------------
9e667d4245 | Nicholas Feinberg | 2023-08-03 21:20:49 -0700

Credit rypofalem
For a9c6de93fa29999e3921eaf2547a1db91c60a373.

--------------------------------------------------------------------------------
c8a9bf3d51 | patrick | 2023-08-03 13:37:52 -0400

Improve the shop spec documentation a bit more
Looking at the changes made in c1f2cfb, I saw that the "greed" section
of the shop spec documentation still said "Someone should fill the
algorithm here!" So I did. And then touched up some other places.

--------------------------------------------------------------------------------
88bc115a23 | patrick | 2023-08-03 12:08:23 -0400

Appropriately adjust agape appellations (PleasingFungus)
In 37a08a6, PF fixed a "spaces in a shop spec" bug by simply using
a pre-set name rather than a randomly-generated name. This commit
puts the randomly-generated names back in and makes sure they don't
break the spec with spaces.

For this, I simply got rid of the spaces rather than replacing them
with underscores: having a second word in the name that probably
doesn't begin with "A" breaks the alliteration. (Ditching the spaces
is a much easier solution than looking for spaces and changing all
the letters right after them to "A".)

--------------------------------------------------------------------------------
237aa7c712 | Kate | 2023-08-03 16:43:50 +0100

Fix monster-cast Arcjolt originating from the player
And fix the display of its range on the spell menu.

--------------------------------------------------------------------------------
c1f2cfbcc5 | Kyle Rawlins | 2023-08-03 10:23:46 -0400

doc: document a shopspec feature
Originally added 8eeaac88ab1b, now documented.

--------------------------------------------------------------------------------
1a7b003ef0 | Nicholas Feinberg | 2023-08-02 21:27:36 -0700

Disallow shafting players on stairs
Was too counterintuitive - led to endless surprised questions.

Reverts a7c9fdd7d17bda3a43126cbd05e5cae596c2112e.

--------------------------------------------------------------------------------
4a036dd22d | Nicholas Feinberg | 2023-08-02 21:26:39 -0700

Remove XP evokers from alphashops
Doesn't work well if they get replaced with wands.

--------------------------------------------------------------------------------
c278444e51 | Nicholas Feinberg | 2023-08-02 20:51:24 -0700

Remove an unused var

--------------------------------------------------------------------------------
37a08a676a | Nicholas Feinberg | 2023-08-02 20:50:05 -0700

Actively avoid agape appelations (advil)
crawl.name() can have a space in it.

--------------------------------------------------------------------------------
292434cca5 | patrick | 2023-08-02 20:39:13 -0700

Add guarded evoker vaults (Lici, Iguana)
Add a few mid-D vaults with lightning rod, phantom mirror, phial of floods,
or a box of beasts. The latter features the first hostile mutant beasts in
a vault, I think. Maybe we'll see more of them...

Closes #3073.

--------------------------------------------------------------------------------
9e84c16775 | patrick | 2023-08-02 16:23:14 -0700

Add new guarded new unrand vaults
The slick slippers, Victory, the Storm Queen's Shield, and the lochaber
axe can be found in these vaults. Since Victory's flavor mentions Okawaru,
and it's an early-game unrand, the Victory vault doubles as an Okawaru
overflow altar.

--------------------------------------------------------------------------------
e06127da47 | Nicholas Feinberg | 2023-08-02 16:22:13 -0700

Add items.pickable dlua (nicolae)

--------------------------------------------------------------------------------
23386290e8 | Nicholas Feinberg | 2023-08-02 15:55:18 -0700

Shift misc items a little later (nicolae)
Misc items (i.e. XP evokers, like Phial of Floods etc) didn't have
their generation frequency adjusted after they were made unique, so
they tended to all generate pretty early on. Shift them a bit later.

This reduces average misc items in D from 1.5 to 0.8ish, Lair from
0.9 to 0.6, Orc from 0.4 to 0.15, etc. Later rates actually increase -
for example, Elf:3 will probably now have more misc items to dangle
as shiny bribes, since they won't have already generated earlier.

--------------------------------------------------------------------------------
00a50fe4a9 | Nicholas Feinberg | 2023-08-02 15:02:55 -0700

Fix misc objstat

--------------------------------------------------------------------------------
07c4bd200f | Nicholas Feinberg | 2023-08-02 14:53:45 -0700

Fix: remove Forest
This has been obsolete since Jan 2014 or so.

Reverts d9674dfee0f (Sept 2013).

--------------------------------------------------------------------------------
38cd9da427 | Nicholas Feinberg | 2023-08-02 14:11:31 -0700

Minor objstat refactoring

--------------------------------------------------------------------------------
a1f710b590 | Sean Dewar | 2023-08-02 12:43:52 -0700

Fix Anaconda status description, remove unused variable
Mousing-over Anaconda status would show "No description found" on WebTiles as it
had the wrong name in the db (could still be found via ?/t as it would match the
contents).

Also remove an unused variable in `get_unusual_items()` after commit 128b3467.

--------------------------------------------------------------------------------
128b34678a | Nicholas Feinberg | 2023-08-02 11:15:49 -0700

Simplify unusual monster markings (Implojin, advil)
To reduce noise and simplify option handling, let's only mark as
unusual the items that are most likely to be relevant to players.
Wands, distortion and chaos weapons, darts and throwing nets are
all marked 'unusual' by default. Artefacts, brands to which the
player is 'vulnerable', spectral weapons, javelins, and items with
plusses are not.

As before, this can be configured further in the player's rcfile.

--------------------------------------------------------------------------------
70533b5a48 | mainiacjoe | 2023-08-02 12:40:35 -0400

Add some self-published spell books (#3223)
* Add a book of stinky clouds, "Amateur Aromatherapy"

* Add a book of spells that swapped schools, "Elemental Confusion"

* Add a book of range 1 spells that used to be ranged, "Getting Closer Than 
Before"

* Add a book for introverts, "Peace and Solitude"

* Add a book of high-level conjurations suitable for Spellforged Servitors, 
"Servitor Tips and Tricks"
--------------------------------------------------------------------------------
867994ef1c | Implojin | 2023-08-01 21:28:43 -0500

remove removed chess pieces
..from the autopickup menu.

--------------------------------------------------------------------------------
ffbd99370a | Implojin | 2023-08-01 17:14:13 -0500

Prioritize stab highlights in console (Undo, u/SvalbardCaretaker)
Since 750b6846b9, monster stabbability background highlighting in console was
being drawn at a lower priority than unusual item highlighting. This made it
difficult to see when a monster with an unusual item could also be stabbed
while playing in console mode.

This commit draws stab flags with higher priority than unusual, restoring the
old stab background highlighting behavior. However, the monster names on the
right side of the screen still have unusual state drawn at a higher priority
than stabbability; this way, console players can easily see if a monster is
both stabbable and unusual.

--------------------------------------------------------------------------------
10d7c63264 | Implojin | 2023-08-01 17:01:10 -0500

Let vulnerable highlight check cold blood (acrobat)
This is a temporary usability fix since the 'vulnerable' unusual option is
likely to be re-written soonish; thanks to acrobat for reporting this!

--------------------------------------------------------------------------------
1d4c2d1985 | Implojin | 2023-08-01 16:44:39 -0500

Add datura to unusual defaults (acrobat)
Thanks acrobat!

--------------------------------------------------------------------------------
7cee417757 | Kyle Rawlins | 2023-08-01 15:53:55 -0400

ci: workaround for an llvm install issue
Solution based on commits in:
https://github.com/llvm/llvm-project/issues/64182

This should be reverted once that issue is resolved (looks like the
maintainer is traveling right now).

--------------------------------------------------------------------------------
a67bebab74 | patrick | 2023-08-01 10:01:20 -0400

Add a new custom book shop
Back in 2012, I discovered a bug*. You couldn't define custom spellbooks
with more than one spell in a shop. This is because the symbol for
separating items in a shop definition was the same as the symbol for
separating spells in a randbook's spell list: |. The map parser would
just get confused.

In 2015, I submitted a patch that changed the symbol for separating
spells in a spell list to &, allowing custom shops to handle custom
spellbooks. I said, "I promise to abuse this new vault-writing power as
soon as possible." Apparently, "as soon as possible" was "eight years
later".

Some of the book themes are obvious, some less so. No doubt players will
enjoy trying to figure them out. I may have gone slightly overboard, but
that just means more variety for players. I do it all for them.

* https://crawl.develz.org/mantis/view.php?id=5706

--------------------------------------------------------------------------------
2c6fae2916 | Kate | 2023-07-31 13:55:23 +0100

Start Chaos Knights with a scroll of butterflies
Since their Xom chesspieces are gone.

--------------------------------------------------------------------------------
48435b3698 | Kate | 2023-07-31 12:36:38 +0100

Fix bardings being equippable in beast form (#3216)
Closes #3216.

--------------------------------------------------------------------------------
fad53b2027 | Kate | 2023-07-31 12:36:38 +0100

Remove Xom chesspieces
They didn't really fit as XP-based evokers, and weren't a particularly
useful or interesting effect.

--------------------------------------------------------------------------------
1d195df450 | Kate | 2023-07-31 12:36:37 +0100

Remove the Awaken Earth spell
It was intended as a counter to players digging tunnels in Elf, and while
it sort of works in that sense it also acts unintuitively and completely
unlike any other spell, being castable by monsters out of LOS and breaking
into and out of vaults. Give deep elf elementalists LRD instead.

--------------------------------------------------------------------------------
88bdf31460 | Implojin | 2023-07-30 19:20:06 -0500

Adjust vulnerable venom highlight (Shard1697)
This commit changes the behavior of the `vulnerable` unusual items option
so that it highlights venom brands when the player is lacking rPois,
instead of lacking poison immunity.

--------------------------------------------------------------------------------
f8416d752b | Kate | 2023-07-30 16:53:28 +0100

Reduce base piety for Sacrifice Forms
As a very narrow sacrifice, make it less valuable unless the player is
actually giving up on some invested skill levels.

--------------------------------------------------------------------------------
52e89b3c1f | Kate | 2023-07-30 16:53:28 +0100

Fix an Octopode armour acquirement crash (#12247)
Don't crash when acquiring armour as an Octopode with Antennae 3 and
Sacrifice Hand (and no valid armour slots as a result).

--------------------------------------------------------------------------------
d7735d0b83 | Kate | 2023-07-30 16:53:28 +0100

Fix mephitic cloud interaction with clarity (#12684)
Don't mark noxious fumes as dangerous or prompt to enter them when the
player has clarity.

--------------------------------------------------------------------------------
e20648be1c | Kate | 2023-07-30 16:52:45 +0100

Don't place fire vortices as monsters
As with ball lightnings, they have the "conjured" flag and aren't treated
as proper monsters in many ways, so shouldn't be placed by vaults or as
lava spawns. They remain only in a few cosmetic-only vaults and in some
Sprints, and have been replaced either with fire elementals or with nothing
in other cases.

--------------------------------------------------------------------------------
3a05650e59 | Nicholas Feinberg | 2023-07-29 22:03:03 -0700

Bland down up fire elementals
Not quite baked yet.

I'm hoping this doesn't break save compat.

This reverts commit d94c9c017c6dc1da663324c1593852aaabcf8696.

--------------------------------------------------------------------------------
e92f843865 | Nicholas Feinberg | 2023-07-29 22:00:16 -0700

Unrim Norris

--------------------------------------------------------------------------------
41b3b0883d | Nicholas Feinberg | 2023-07-29 14:06:56 -0700

Restore 1.6k-year-old Polynesian practices (CanOfWorms)
Reverts eca0601a2dbd5a46cc1852a0cd81f4bd09d9ae3c.

Time Cops Go Home

--------------------------------------------------------------------------------
0dfff664f2 | Monkooky | 2023-07-29 10:08:51 -0700

feat: two gimmick shops
Adds a mail order shop that sells mail and order
also a shop that sells weapons whose ego alliterates with the base type

The mail-order catalogue is structured to always have mail (usually good) and 
sometimes also have order.

Alliterative Armaments generates a list of alliteratively named items.

[ Committer's note: Removed holy weapons from the list, too wild. Closes #3004 ]

--------------------------------------------------------------------------------
6444dff9de | hellmonk | 2023-07-29 10:08:51 -0700

feat: Some new Zot stairvaults
[ Committer's notes:
  Reduced a/dlich count in crystal mountain
  Reduced iron golem count in zot clocked
  Closes #2977 ]

--------------------------------------------------------------------------------
3b489a7343 | hellmonk | 2023-07-29 10:08:51 -0700

feat: A brand new depths encompass
Slightly wip. This needs more subvault maps, wall and floor tile selection to
correspond with monster set, a better loot function, and some rebalancing.

additional hexagon subvaults - EBERING ARE THESE ENOUGH??

add some aesthetics - EBERING ARE THESE ENOUGH??

improve loot - EBERING IS IT LOOTY ENOUGH??

[ Committer's notes: The PR had subsequent commits to add subvault maps
  and loot adjustments. Fiend frequency was tweaked a bit. Committer
  is a console player so can't comment on the tiles but the console
  theme colouring is good. Adjusted stair randomization and placement to
  offer some increased skipability as is semistandard with U
  encompasses.
  Closes #2666 ]

--------------------------------------------------------------------------------
4f203cd64d | hellmonk | 2023-07-29 10:08:51 -0700

feat: Norris
Rework the surfer. Norris returns with a reworked spell set, water nymph aura,
a pack of skysharks, and a slightly less edgy theme. Norris tentatively
appears in elf, vaults, and depths. Numbers or placement will probably be
adjusted.

[ Closes #3042 ]

--------------------------------------------------------------------------------
d94c9c017c | hellmonk | 2023-07-29 10:08:51 -0700

feat: spice up fire elementals
Their attack flavor gimmick is kind of hard to notice even if you don't
have rF. Give them a reach-cleaving attack (like lochaber axe) to make
them stand out a little bit more.

[ Closes #2817 ]

--------------------------------------------------------------------------------
57aedf9c6d | hellmonk | 2023-07-29 10:08:51 -0700

feat: Holy shoals encompass ending
I think this is probably too hard right now.

[ Committer's note: It was.
  Reduced monster density to be more in line with other shoals endings on
  average. Gave the javelineers a better chance at silver javs (the hand
  of Zin).
  Closes #2611 ]

--------------------------------------------------------------------------------
f88b50090e | hellmonk | 2023-07-29 10:08:51 -0700

feat: New simple depths entry
[ Closes #2889 ]

--------------------------------------------------------------------------------
485654376a | AlexanderPosch | 2023-07-29 10:08:51 -0700

vaults: New entry vaults for Snake and Swamp
Snake:"alex1729_snake_entry_snake". It contains a few
nagas/mambas/moccasins and one salamander with a bow. The salamander is
positioned behind a turn so one can retreat and lure/run away if needed.

[ Committer's note: removed placement of mambas/mocasins,
  ego from salamander's bow ]

Swamp:"alex1729_swamp_entry_worm_eleionoma". The
vault contains an eleionoma and up to 2 swamp worms positioned behind
bushes.  I hope this isn't to deadly.

[ Committer's note: alas it was. toned down monster placement, increased
  randomization of layout ]

[ Closes #2956 ]

--------------------------------------------------------------------------------
263cdf863d | Implojin | 2023-07-29 10:54:46 -0500

Remove vamp from unusual default (acrobat, Ge0ff)
Trying to err on the side of less-is-more with this initial set of commits:
Each additional brand that we add by default here adds noise and dilutes the
impact of the unusual highlighting when it does show up.

For anyone who would really prefer more warnings, please remember you can
still add them to your rc file!

--------------------------------------------------------------------------------
0ef5263c4e | Kate | 2023-07-29 16:50:16 +0100

Update talisman manual listing

--------------------------------------------------------------------------------
05d06ac2ca | Kate | 2023-07-29 16:50:16 +0100

Adjust some documentation describing HP
Crawl canonically uses "health" (rather than "hit points") - adjust some
player-facing text to match.

--------------------------------------------------------------------------------
d1d04c167f | Kate | 2023-07-29 16:50:16 +0100

Label active talismans in the inventory

--------------------------------------------------------------------------------
f8873633c0 | Implojin | 2023-07-29 10:16:31 -0500

Further unusual default tweaks
Large rocks are never strictly 'unusual': The monsters that can generate
with them always have them. Silver was made redundant with javelins in
f782e3da01 : We don't need to be warning for it separately anymore.

More tweaks to come?

--------------------------------------------------------------------------------
77248fceac | Implojin | 2023-07-29 09:31:42 -0500

Remove heavy from default unusual warnings (PF)
After some discussion, this deals quite a bit less damage wielded by monsters
than I thought it did! We're removing this from the default warning for now,
but you can always re-add it in your rcfile if you'd like.

--------------------------------------------------------------------------------
750b6846b9 | Implojin | 2023-07-29 08:56:23 -0500

feat: unusual monster item threat highlighting
This commit adds a new game option: unusual_monster_items.

When set, this option highlights monsters carrying 'unusual' items,
similar to the existing tiles highlighting for 'nasty' monsters.

This is a list option that matches regexes against each monster's inventory,
so players can customize this in a very granular way. You could, for example,
highlight any monster carrying snakebite.

This works in both tiles and console through a pair of associated options,
tile_show_threat_levels = unusual , and unusual_highlight = hi:magenta .
Please see options_guide.txt for details.

I've setup the default highlighting here based on what felt reasonable to me
in playtesting: Future adjustments likely, feedback welcome.

--------------------------------------------------------------------------------
b642c7f9a3 | Nicholas Feinberg | 2023-07-28 22:29:57 -0700

Fix holy weapon death form prompts (dilly, acrobat)

--------------------------------------------------------------------------------
f782e3da01 | sdynet | 2023-07-28 22:16:01 -0700

Remove silver boomerang
Reduce inventory pressure and leave Silver as a place for javelin(and Lajatang 
of Order).

--------------------------------------------------------------------------------
83a47ab31f | sdynet | 2023-07-28 22:16:01 -0700

Adjusting  throwable ego:dispersal
Dispersal is a special ego that doesn't hurt, and I think it fits the theme of 
darts better.
Remove boomerang ego:dispersal
Add dart ego:dispersal

--------------------------------------------------------------------------------
6c87fcb011 | hellmonk | 2023-07-28 22:03:00 -0700

feat: Three new vaults entrances

--------------------------------------------------------------------------------
1e11dc61e8 | hellmonk | 2023-07-28 22:01:32 -0700

Adjust constriction
Remove the stepdown and scale linearly. Also, apply AC without breakpoints.
To compensate for increased damage after long durations, reduce the base
damage of a couple of the meatier constricting monsters, vile clutch, and
wand of roots. Damage is lower before 50 aut, so this may not have been
necessary, but we'll play it safe.

Closes #2883.

--------------------------------------------------------------------------------
ce2be97bb4 | hellmonk | 2023-07-28 21:56:27 -0700

Make some swamp ends less annoying
Reduce cloud placements in swamp_icy and swamp_pestilence, and replace the
pestilence oklob with a (much funnier) spectral bunyip.

--------------------------------------------------------------------------------
840a4f330f | Antal Spector-Zabusky | 2023-07-28 21:54:28 -0700

Hooves and talons shouldn't force bardings off

--------------------------------------------------------------------------------
f073b5ab69 | hellmonk | 2023-07-28 21:50:05 -0700

feat: pasta randarts (major [critical (vital)])
https://i.kym-cdn.com/photos/images/original/001/233/131/e09.jpg

Closes #3162.

--------------------------------------------------------------------------------
9dd5d42eca | Nicholas Feinberg | 2023-07-28 21:45:56 -0700

Fix: make /roots require solid ground again (bobross420-1)
Broken in 57a6a0d306af5fede1b6d10abc967cf4a8703c84.

Closes #3152.

--------------------------------------------------------------------------------
2bcca7f065 | Perren Yang | 2023-07-28 21:35:40 -0700

Add a Troubleshooting section to INSTALL.md (Olga)
For expectedly confusing pain points. Comes with a free initial
entry!

[Committer's note: fixed formatting.]

Closes #3197.

--------------------------------------------------------------------------------
32664fa86c | Perren Yang | 2023-07-28 21:35:39 -0700

Remove duplicate mention of zlib
It was mentioned twice in the dependencies list.

--------------------------------------------------------------------------------
df778148c9 | Jared Miller | 2023-07-28 21:30:49 -0700

Correct typos
Closes #3202.

--------------------------------------------------------------------------------
eed8119486 | laserbat | 2023-07-28 21:12:25 -0700

Added Necrodancer title

--------------------------------------------------------------------------------
7ea37e432a | orjb1 | 2023-07-28 21:11:52 -0700

Simple Arrival Vault With Lava
Closes #3182.

--------------------------------------------------------------------------------
af693774bd | Zhang Kai | 2023-07-28 21:09:42 -0700

Update unrand.txt

--------------------------------------------------------------------------------
449a7298ed | Zhang Kai | 2023-07-28 21:09:42 -0700

Update status.txt

--------------------------------------------------------------------------------
d5ede58fa0 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update spells.txt

--------------------------------------------------------------------------------
4c5a8775d7 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update skills.txt

--------------------------------------------------------------------------------
b7ef08388f | Zhang Kai | 2023-07-28 21:09:42 -0700

Update mutations.txt

--------------------------------------------------------------------------------
a4dcbe002f | Zhang Kai | 2023-07-28 21:09:42 -0700

Update monsters.txt

--------------------------------------------------------------------------------
792cb2b54a | Zhang Kai | 2023-07-28 21:09:42 -0700

Update items.txt

--------------------------------------------------------------------------------
40a9fac9db | Zhang Kai | 2023-07-28 21:09:42 -0700

Update backgrounds.txt

--------------------------------------------------------------------------------
13c07b6b04 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update ability.txt

--------------------------------------------------------------------------------
16a96a9694 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update FAQ.txt

--------------------------------------------------------------------------------
120e3251a6 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update help.txt

--------------------------------------------------------------------------------
757720c09c | Zhang Kai | 2023-07-28 21:09:42 -0700

Update backgrounds.txt

--------------------------------------------------------------------------------
832e491317 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update cards.txt

--------------------------------------------------------------------------------
cc9f500c86 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update features.txt

--------------------------------------------------------------------------------
bcea77f4c5 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update mutations.txt

--------------------------------------------------------------------------------
1dbc096f5e | Zhang Kai | 2023-07-28 21:09:42 -0700

Update status.txt

--------------------------------------------------------------------------------
127e5477f0 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update monsters.txt

--------------------------------------------------------------------------------
e6e5c98185 | Zhang Kai | 2023-07-28 21:09:42 -0700

Update items.txt

--------------------------------------------------------------------------------
7c72fd96ea | Zhang Kai | 2023-07-28 21:09:42 -0700

Update unrand.txt

--------------------------------------------------------------------------------
9f80d7ed8b | Zhang Kai | 2023-07-28 21:09:42 -0700

Update spells.txt

--------------------------------------------------------------------------------
a17a83b80e | Monkooky | 2023-07-28 21:08:19 -0700

Make artefact orbs use slightly orbier names
an exceedingly trivial oversight that I am only bothering to correct since I 
was already poking around in this code.

--------------------------------------------------------------------------------
649fb47aab | hellmonk | 2023-07-28 21:07:47 -0700

fix plasma beam damage
Pull out the lightning component to a new beam.

--------------------------------------------------------------------------------
5ef9b61f8f | Sebastian Zivota | 2023-07-28 21:05:06 -0700

Correct reference to "caster" in granite talisman's description

--------------------------------------------------------------------------------
e3233786a7 | Nicholas Feinberg | 2023-07-28 15:50:19 -0700

Fix: flip foes/friends (KurzedMetal)
Closes #3218.

--------------------------------------------------------------------------------
25055926c8 | Nicholas Feinberg | 2023-07-28 08:55:56 -0700

Remove //Ignacio (Ge0ff)

--------------------------------------------------------------------------------
8eba5f6939 | Nicholas Feinberg | 2023-07-27 20:18:08 -0700

More paralysis + petrification fixes (hellmonk)
Closes #3217.

--------------------------------------------------------------------------------
a258d1a3ce | Nicholas Feinberg | 2023-07-27 20:15:29 -0700

Fix chain paralysis + petrification (hellmonk)

--------------------------------------------------------------------------------
8c388e6fe1 | Nicholas Feinberg | 2023-07-27 20:13:56 -0700

Correct a comment
These have been wrong since 5c2cb368445 (2015).

--------------------------------------------------------------------------------
a77b45bd9b | Nicholas Feinberg | 2023-07-27 09:51:37 -0700

Halve death form HD draining (Midn8, elliptic)
8x the effect of a normal drain brand on HD was a little excessive.

--------------------------------------------------------------------------------
cf821cafb2 | Nicholas Feinberg | 2023-07-26 23:00:17 -0700

Remind players when they've finished Pan (Midn8)
In case they aren't watching } and/or aren't familiar with Pan.

--------------------------------------------------------------------------------
b59cdcccf2 | Nicholas Feinberg | 2023-07-26 20:52:47 -0700

Move more talisman power into scaling
Continue to make training Shapeshifting feel less bad by moving more
power into skill scaling effects. Boost top skill Anaconda AC and
Blade Hands damage. Reduce base Dragon Form and Statue Form AC,
moving it into skill scaling.

This is a pretty modest change, and more could be done.

--------------------------------------------------------------------------------
a53a963a1d | Nicholas Feinberg | 2023-07-26 20:47:12 -0700

Don't drain undead with death (Midn8)
Make the 'draining' component of death form's melee effects only
affect living and plant monsters, as with other sources of draining.
Probably it should check rN too.

--------------------------------------------------------------------------------
6b00f1bea8 | Nicholas Feinberg | 2023-07-26 15:18:00 -0700

Discharge off-level eyes (Sergey)

--------------------------------------------------------------------------------
0f8bd3a31e | Nicholas Feinberg | 2023-07-26 07:42:52 -0700

Fix Scorch damage display (CanOfWorms)

--------------------------------------------------------------------------------
b3e1d13bf4 | patrick | 2023-07-25 22:07:56 -0400

Tweak the ending of nicolae_hydra_factorization (gammafunk)
Spread the loot out across the floor of the Lerny chamber, instead
of piling it all up in a tiny closet at the end. Also very slightly
increase the max amount of loot and the number of guaranteed artefacts.
I'll get a kill in there one of these days.

--------------------------------------------------------------------------------
7d9b8f557b | patrick | 2023-07-25 21:45:44 -0400

Tweak the center of nicolae_shoals_lighthouse
Now that the phantom mirror is unique, there's a good chance it will
be replaced with a wand, which would make the flavor not work.
(Lighthouses use mirrors to reflect the light where it needs to go,
you see.) The only thing I can think of to replace it with is an orb
of light, but honestly, it might just be best to not have any loot
in there in the first place and close it off. So I'll do that.

This also fixes the issue mentioned in this reddit thread:
https://www.reddit.com/r/dcss/comments/152vcev/

--------------------------------------------------------------------------------
ac0dbeb3ab | Kate | 2023-07-24 20:06:05 +0100

Give Siphon Essence a unique cooldown
Exhaustion is reserved for god abilities that are intended to share a
cooldown (Ru in particular). There's no reason for Siphon Essence to share
a cooldown with those god abilities, so give it its own separate cooldown
as other similar abilities have.

--------------------------------------------------------------------------------
4a313f05bb | Kate | 2023-07-24 20:00:52 +0100

Adjust wording on X help screen (lowfye)

--------------------------------------------------------------------------------
95aa79084e | Nicholas Feinberg | 2023-07-24 10:10:48 -0700

Reduce ?blink trove prices
4-8 scrolls is an enormous price. ?blinking is extremely good,
especially now that it works in Zot and that Controlled Blink,
Semicontrolled Blink etc are gone.

Drop it to 3-5 scrolls.

--------------------------------------------------------------------------------
57cb03d3e8 | Nicholas Feinberg | 2023-07-23 17:06:40 -0700

Fix Siphon Essence exhaust (acrobat)
06437d652345d137a233 was purely cosmetic. Oops!

--------------------------------------------------------------------------------
827e0957a7 | Nicholas Feinberg | 2023-07-22 17:43:11 -0700

Halve siphon essence healing (elliptic)
"That much healing is the realm of Borg's and gods."

--------------------------------------------------------------------------------
06437d6523 | Nicholas Feinberg | 2023-07-22 17:40:46 -0700

Make siphon essence exhausting (dilly)

--------------------------------------------------------------------------------
08a7bc6f2d | Nicholas Feinberg | 2023-07-22 16:46:21 -0700

Add serpent talisman to serpentskin sales (dilly)
Sometimes!

--------------------------------------------------------------------------------
653cfed441 | Nicholas Feinberg | 2023-07-22 15:22:58 -0700

Bump dreadful rot duration

--------------------------------------------------------------------------------
7b4e30badb | Nicholas Feinberg | 2023-07-22 15:07:48 -0700

Remove Djinn legs (Goratrix, Monkooky)
This code is abysmal ;_;

--------------------------------------------------------------------------------
1e5ebcb2c6 | Nicholas Feinberg | 2023-07-22 15:00:04 -0700

Make dragon-form players red in the face (Sastreii)
New tiles for dragon form (including making the default form red,
following on from fd539b1f27069, 2015), plus Siphon Essence.

--------------------------------------------------------------------------------
810772c3d7 | Nicholas Feinberg | 2023-07-22 14:50:32 -0700

Rework Lucy wrath protection (elliptic)
Give a fixed 80% chance of banishing god wrath summons (and other
perma summons, due to code sloppiness) and a 30% chance of banishing
other monsters nearby, rather than banishing 2d3 random monsters
whenever god wrath triggers.

--------------------------------------------------------------------------------
e7fe003f5b | Kyle Rawlins | 2023-07-22 12:47:48 -0400

lint

--------------------------------------------------------------------------------
b41548654e | Kyle Rawlins | 2023-07-22 10:51:13 -0400

fix: several tutorial end issues
* The tutorial summary popups have had broken formatting since
  8e7229f42b641c00. This lets ui::message take color formatting
  optionally and uses it for this case.
* Give tutorial summary popups titles, and remove a manually formatted
  prompt that was hardcoded in the database, now that the popup is more
  standardized. Also reword the prompt for exit popups.
* tutorial exit conditions were also broken; this mostly shouldn't
  matter but may affect a popup on webtiles
* convert the tutorial death message to a popup with text from the
  database, rather than a hard-coded popup

--------------------------------------------------------------------------------
1ebeae05c6 | gammafunk | 2023-07-22 00:28:01 -0500

feat: Aiming at targets with `spells.path()`
Give this clua function a new argument to set whether it should aim its
bolt directly at the target, which is the same logic used by the '.' key
in the targeting UI. Previously the function always did this, so this
new argument defaults to true. The argument is useful for callers to
determine whether the full range bolt would hit e.g. friendly monsters
or locations that could destroy thrown ammunition.

--------------------------------------------------------------------------------
d109795599 | Nicholas Feinberg | 2023-07-20 17:34:17 -0700

Remember to sign your work

--------------------------------------------------------------------------------
456c268693 | gammafunk | 2023-07-20 16:28:19 -0500

feat: Tweak a Shoals vault
For nicolae_shoals_abyss_on_the_beach, have loot placed near the Abyss
portal instead of on top of it and the Lugonu altar, since this way it's
easier to see the loot items at a glance. Add one more star_item to the
loot, bringing the total to three items, so that this runed door vault
is a bit more worthwhile to enter. This very slightly decreases the
average monster placement but still gives it a 2:1 ratio for monsters to
loot.

--------------------------------------------------------------------------------
64bd43a5d1 | Nicholas Feinberg | 2023-07-20 13:33:47 -0700

Fix: mark granite talismans useless for gr (N0-LGA)
And some code deduplication.

--------------------------------------------------------------------------------
956748295d | Nicholas Feinberg | 2023-07-20 13:33:44 -0700

Add missing logo (gammafunk)

--------------------------------------------------------------------------------
21cae6e6d1 | Nicholas Feinberg | 2023-07-20 13:15:34 -0700

New Eustachio splash (CanOfWorms, King7artist)

--------------------------------------------------------------------------------
da1cbd555d | Nicholas Feinberg | 2023-07-19 13:00:19 -0700

Rework Arcjolt
Requiring direct adjacency to victims made it a bit harder to set
up cool chains of electrocution than was intended. Allow hitting
anything within radius 2 (and conducting from there as previously).
We may have to nerf damage later, which is fine.

Fix the bug that allowed Hep's ancestors to conduct Arcjolt blasts.

--------------------------------------------------------------------------------
91d0a87a8a | Nicholas Feinberg | 2023-07-19 12:41:12 -0700

Don't give /digging to monsters (Ge0ff)
Since they can't use it anymore.

--------------------------------------------------------------------------------
e6599b31ac | Nicholas Feinberg | 2023-07-19 11:04:36 -0700

Fix treeform not scaling damage with UC (acrobat)
Broken somewhere during the shapeshifting changes.

--------------------------------------------------------------------------------
889dc8f05a | Nicholas Feinberg | 2023-07-19 10:17:29 -0700

Encourage Shapeshifting training
Reduce max skill for tier 2 forms (maw, serpent, blade) from 20 to
18. This makes each level of shapeshifting give ~20% more stuff.

--------------------------------------------------------------------------------
67f8d5f464 | Nicholas Feinberg | 2023-07-19 10:14:54 -0700

Gobble down some transformative tiles (Sastreii)
New tiles for maw form and felid dragons.

--------------------------------------------------------------------------------
f858018070 | Nicholas Feinberg | 2023-07-19 09:43:25 -0700

Fix: remove Necromutation (wormbird)
From Crypt loot.

--------------------------------------------------------------------------------
dd4830dc55 | Nicholas Feinberg | 2023-07-19 09:40:47 -0700

Revert "Increase local tiles default font sizes (ortoslon)"
Revealed many latent bugs that I don't have time to fix and caused
unhappiness in various circles.

This reverts commit 4ac5daa9c1ac0adffcccbb193fca521ebfc9f310.

--------------------------------------------------------------------------------
82a5723daf | Nicholas Feinberg | 2023-07-19 09:40:02 -0700

Shapeshifter: +1 UC, -1 Fighting (elliptic)
Push the background a little more toward UC, since at present it's
a little too tempting to immediately switch to an early weapon. A
good weapon should still be tempting... it's a balance.

--------------------------------------------------------------------------------
eda263fcf1 | elliptic | 2023-07-18 21:09:36 -0400

Fix form AC scaling.
This was accidentally reduced when current skill was below the max skill
in 5cd03af36. I've rounded down to get the new value at min skill, which
is a small nerf (but the new FormScaling system is a buff below min
skill in general).

--------------------------------------------------------------------------------
d7f53cfe47 | elliptic | 2023-07-18 21:09:36 -0400

Fix mawform aux damage.
This was accidentally reduced by 9 in f44f7adfa.

--------------------------------------------------------------------------------
52107efa6a | Nicholas Feinberg | 2023-07-18 13:45:34 -0700

Merge Labyrinth and Temple (hellmonk)
Cute gimmick map made maybe less goofy with temple automapping.
Could also do another version where the altars are in the middle,
but maybe that's too much.

--------------------------------------------------------------------------------
c0898b9bfa | Nicholas Feinberg | 2023-07-18 11:23:28 -0700

Cleanup: tweak trove.des empty space
Hoping I can sneak this by some folks and give em a fun surprise
later with the misleaing commit message. If you spot this, don't
give the game away! Just add a smiley face on the commit :)

--------------------------------------------------------------------------------
f719d907db | Nicholas Feinberg | 2023-07-18 11:07:31 -0700

Remove nasty troves
Monsters in troves are just a mean gotcha. They mostly don't matter,
but they'd feel quite bad if they ever did. Let's cut the ynoxinuls
(pointless) and shining eyes (!!!) from their respective troves.

--------------------------------------------------------------------------------
ba68ff8b13 | Nicholas Feinberg | 2023-07-18 10:26:34 -0700

Add about 27 new species
To the artefact name pool.

--------------------------------------------------------------------------------
067879e3d3 | Kate | 2023-07-17 21:47:31 +0100

Update map knowledge when fully mapping levels (qwqw)
Fixes discovered altars in the mapped Temple not being searchable, and in
theory makes it possible to turn on mapping for Gauntlets (although there
are still other issues - revealing the end loot immediately isn't ideal).

--------------------------------------------------------------------------------
b7aa00794e | Nicholas Feinberg | 2023-07-17 12:48:57 -0700

Fix miasma exclusions in nonliving forms (Monkooky)
Ew!

--------------------------------------------------------------------------------
aec59ea282 | Nicholas Feinberg | 2023-07-17 10:25:18 -0700

Change talisman console glyph (jejorda)
To support the default PuTTY font.

--------------------------------------------------------------------------------
4ddeb37ba4 | Nicholas Feinberg | 2023-07-17 10:20:00 -0700

Fix form base damage
Oops!

--------------------------------------------------------------------------------
19405a7a6a | Nicholas Feinberg | 2023-07-17 08:24:47 -0700

Fix lig AC

--------------------------------------------------------------------------------
adbfe6a7a0 | Kyle Rawlins | 2023-07-17 10:23:50 -0400

fix: refactor / improve some local tiles menu shade logic
This fix also addresses what (in the old implementation) was an
off-by-one error that could lead to crashes in size 1 menus on local
tiles.

Resolve #3204

--------------------------------------------------------------------------------
4fced400ed | Nicholas Feinberg | 2023-07-16 20:37:48 -0700

Fix maw bite chance (Monkooky)
Since this isn't a mutation but rather an item-based effect, it
doesn't need to scale with XL. (It already scales with skill.)

Fix the chance at 50%. (Formerly ~53% at XL1, ~96% at XL 27.)

--------------------------------------------------------------------------------
cff7bd0079 | Nicholas Feinberg | 2023-07-16 17:03:24 -0700

Fix: don't crash on startup (steves)
Oops!

--------------------------------------------------------------------------------
f44f7adfac | Nicholas Feinberg | 2023-07-16 16:21:24 -0700

Unify more shapeshifting logic with FormScaling

--------------------------------------------------------------------------------
fc52928797 | Nicholas Feinberg | 2023-07-16 16:17:16 -0700

Dataify UC base damage
And buff blade/dragon form slightly, mostly for aesthetic reasons.

--------------------------------------------------------------------------------
5cd03af367 | Nicholas Feinberg | 2023-07-16 16:03:10 -0700

Refactor form AC
Hopefully this leads toward more readability.

--------------------------------------------------------------------------------
e76ace5867 | Nicholas Feinberg | 2023-07-16 15:10:40 -0700

Adjust transformation HP scaling (Sergey, CanOfWorms)
New and exciting tech:
- Enter an underskilled form to regen to your max (10%) HP very
  quickly, then switch out to be back at full HP.
- Leave dragon form to heal 50% faster, then switch back in when
  done.

This commit fixes both issues. It's a little weird when entering
anaconda/dragon form, but eh, we'll live.

--------------------------------------------------------------------------------
785cd24033 | Nicholas Feinberg | 2023-07-16 14:38:36 -0700

Remove an unused calc_hp parameter

--------------------------------------------------------------------------------
fa1e89e327 | Nicholas Feinberg | 2023-07-16 14:18:18 -0700

Fix tabbing through water in anaconda form (dilly)

--------------------------------------------------------------------------------
edf3814b65 | Nicholas Feinberg | 2023-07-16 14:01:14 -0700

Are (ragingrage)
Continuing from 3fc6992b3bdcffd37177a7bdf94e09f15f2840b7.

--------------------------------------------------------------------------------
9f8154dce0 | Nicholas Feinberg | 2023-07-16 13:58:20 -0700

New talismans (Sastreii)
Plus corresponding descriptions. Serpent talisman might want another
pass.

--------------------------------------------------------------------------------
7df5254b3a | Nicholas Feinberg | 2023-07-16 13:58:11 -0700

New ancient lich tile (Sastreii)

--------------------------------------------------------------------------------
edc87ead1b | Nicholas Feinberg | 2023-07-16 13:39:08 -0700

Re-tweak Sac Artifice description

--------------------------------------------------------------------------------
8f428e28dd | Nicholas Feinberg | 2023-07-16 13:37:21 -0700

Tweak Dowan dialogue
For many years, people unfamiliar with archiac English idioms have
been understandably startled by Dowan's charming folkways. Let's
accènt this encounter a bit diffèrèntly.

--------------------------------------------------------------------------------
3624f24208 | Kate | 2023-07-16 18:56:43 +0100

Fully map the Temple on entering
Adds a new flag for fully mapped branches, and refactors magic mapping to
handle full mapping with a parameter instead a special-cased radius check.

Fully mapped floors provide no exploration healing or piety, and have no
exploration traps (which was already true for the Temple except for the
healing).

It would be nice to also map Gauntlets on entry but there are some extra
things to resolve there - as implemented, monsters and items aren't mapped,
but displaying them would also reveal the minotaur's treasure immediately
(and removing Meteoran exploration healing would be a bit more meaningful
in Gauntlet than in Temple).

--------------------------------------------------------------------------------
165d99f333 | Kate | 2023-07-16 18:54:48 +0100

Recolour talismans of death
To magenta, instead of a mostly darkgrey elemental colour.

--------------------------------------------------------------------------------
53e30a7d5b | Kate | 2023-07-16 16:26:52 +0100

Show inaccuracy on the % screen

--------------------------------------------------------------------------------
dc8c9485ea | Nicholas Feinberg | 2023-07-15 22:56:34 -0700

Loose a terrible wrath upon forms
Reduce damage for anaconda, blade, dragon, and storm forms. Halve
maw healing chance. Slightly reduce storm form AC.

Further changes probably en route for death and statue form. Let's
play around and see.

--------------------------------------------------------------------------------
8e918b0104 | Nicholas Feinberg | 2023-07-15 22:42:15 -0700

Make Dragon min/max skill match Statue (elliptic)
To reduce the gap between tier 2 and 4 forms.

--------------------------------------------------------------------------------
0f5680fe28 | Nicholas Feinberg | 2023-07-15 22:41:18 -0700

Increase max HP penalty for shapeshifting
From -70% to -90%.

--------------------------------------------------------------------------------
4ac5daa9c1 | Nicholas Feinberg | 2023-07-15 22:32:33 -0700

Increase local tiles default font sizes (ortoslon)
For readability. This feels weird to me but maybe I'll get used to
it. Or maybe I'll revert it! The old defaults were set up for
1024x700, anyway, which seems absurd.

Closes #3116.

--------------------------------------------------------------------------------
ecf8365d7c | Nicholas Feinberg | 2023-07-15 22:18:10 -0700

Tweak ?fear description (OctopodesWeekly)

--------------------------------------------------------------------------------
51639376c0 | Nicholas Feinberg | 2023-07-15 22:15:59 -0700

Bearly fix fear references (OctopodesWeekly)

--------------------------------------------------------------------------------
ce7730605e | Nicholas Feinberg | 2023-07-15 22:09:15 -0700

Fix Tomb Fo shaft warning (WizardIke)
Broken in 4d237caa85e2dd7638bbde1e443ca14111cf8674.

Closes #3181.

--------------------------------------------------------------------------------
94ca0303d8 | Nicholas Feinberg | 2023-07-15 21:58:00 -0700

Fix stat display on untransform (MIC132)
Closes #3199.

--------------------------------------------------------------------------------
6747c968d8 | Nicholas Feinberg | 2023-07-15 21:49:45 -0700

Tweak Talisman of Death description (jejorda)
Closes #3201.

--------------------------------------------------------------------------------
8761c469a7 | Nicholas Feinberg | 2023-07-15 21:43:01 -0700

Remove unused conflicts

--------------------------------------------------------------------------------
6babd820d0 | Nicholas Feinberg | 2023-07-15 21:42:43 -0700

Fix the tag upgrade build?

--------------------------------------------------------------------------------
31dc95f928 | Nicholas Feinberg | 2023-07-15 20:29:06 -0700

Add talismans to ??

--------------------------------------------------------------------------------
3d276fc77b | Nicholas Feinberg | 2023-07-15 20:23:45 -0700

Let final effects fire during Serpent's Lash (N0-LGA)
Seems a little more intuitive to people that e.g. damage mirroring,
TRJ spawns, ?immo fire etc would happen right after a serpent's
lash attack, even before time unfreezes.

--------------------------------------------------------------------------------
8d65735525 | Nicholas Feinberg | 2023-07-15 20:14:08 -0700

Tag MUT_NO_REGENERATION for removal
In the unlikely day we ever break major version support.

--------------------------------------------------------------------------------
dca1076213 | Nicholas Feinberg | 2023-07-15 20:08:16 -0700

Continue removing monster potion use
Continuing from e8cad7f256b05d and 35f977ffcd317870459.

Fun bit here: friendlies wouldn't drink !inv if the player didn't
have sinv! How many years has *that* been irrelevant for...

--------------------------------------------------------------------------------
8f4bdadfad | Nicholas Feinberg | 2023-07-15 19:57:38 -0700

Play with unique talismans
Add dragon-blood talisman to Bai Suzhen (she was on my short-list
initially, and was a popular suggestion from others, e.g. elliptic),
and reduce the odds of some other talismans to a coinflip. Aizul
stays guaranteed (since that serpent talisman is more flavor than
value at the point it appears - until we upgrade it to a randart?!),
and Roxanne is of course iconic.

--------------------------------------------------------------------------------
c5ec2c201f | Nicholas Feinberg | 2023-07-15 19:57:38 -0700

Fix statue form pop distribution
Some testing code was left in.

--------------------------------------------------------------------------------
f123eb1c33 | gammafunk | 2023-07-15 18:38:27 -0500

fix: Correct syntax in an overflow altar vault
A syntax error in `beargit_hepliaklqana_dungeon_heroes` I noticed from
error messages during objstat runs.

--------------------------------------------------------------------------------
2c8c3c2ad7 | Nicholas Feinberg | 2023-07-15 16:18:42 -0700

Tweak maw form / gozag warning (elliptic)

--------------------------------------------------------------------------------
9f2073e164 | Nicholas Feinberg | 2023-07-15 16:09:03 -0700

Remove MUT_

--------------------------------------------------------------------------------
3a27601e74 | Nicholas Feinberg | 2023-07-15 16:07:12 -0700

New mutation tiles (CanOfWorms)
Mostly demonspawn stuff, but some other fun is there too.

Also some renames for tidiness and consistency.

--------------------------------------------------------------------------------
e85e653229 | Nicholas Feinberg | 2023-07-15 15:46:10 -0700

Improve monster output for talismans

--------------------------------------------------------------------------------
c43c3f5763 | Nicholas Feinberg | 2023-07-15 15:46:10 -0700

Clarify Sac Artifice re talismans (Flugkiller)

--------------------------------------------------------------------------------
d17712608e | Nicholas Feinberg | 2023-07-15 15:46:10 -0700

Fix double-double corpse combo (N0-LGA)
If you're in maw form, Yred should make spectres, not zombies. You
ate those corpses!

--------------------------------------------------------------------------------
146b5e124f | Nicholas Feinberg | 2023-07-15 15:46:10 -0700

Add messaging for Gozag gold maw form
Feeling cute, might delete this mechanic later.

--------------------------------------------------------------------------------
485e682e34 | gammafunk | 2023-07-15 15:51:00 -0500

feat: Tweaks to a Lair ending (elliptic)
For hellmonk_lair_end_abyssal_woods, don't try to place Mlioglotl with a
rare chance. For branch ends, we generally don't place `8` level threats
since the end vault is both important and already has a high difficulty.
We try to keep difficulty a bit more consistent for these maps, and
Mlioglotl is a fast and very hard hitting monster. Due to a slight bug
in my DES when I modified this vault that wasn't caught when the unique
was added to it in ae8ea5ec392b, Mlioglotl couldn't actually generate,
but let's just make this official.

Also replace the ancient zymes in this vault with a raiju. The zyme
sickness mechanic really only works in the Abyss, where having no regen
for any amount of time is impactful and resting or moving is a
non-trivial decision. Although the damage profile of a zyme is fine,
raiju is quite similar, is also an Abyss native, and its unique mechanic
is fine for Lair.

--------------------------------------------------------------------------------
31ea1f65cc | Nicholas Feinberg | 2023-07-14 18:27:11 -0700

Fix talisman shopping lists (Midn8, elliptic)

--------------------------------------------------------------------------------
e00219d475 | patrick | 2023-07-14 15:47:04 -0500

Make some tweaks to the jellycorners ending
Make the center "towers" of the corners more likely (though not
guaranteed) to create fighting niches, and provide more walls
to potentially make more niches. You might still have to dig out
a block or two of slime to get a good niche, though.

--------------------------------------------------------------------------------
988e38f321 | patrick | 2023-07-14 15:47:04 -0500

Add a new Slime Pit ending
In my earlier set of Slime Pit endings, I had one ending that was
intended to be easier than normal, with a lot of corridors. It turned
out to be even easier than I thought thanks to the abundance of
glass walls: TRJ could see the player but wouldn't move around the
walls to get to them, instead staying where it could see them.
When I merged the vaults, I dropped that one ending, thinking I would
get around to making another corridor-heavy vault some other time.
I wasn't expecting "some other time" to be "a day or two later",
but inspiration strikes when it wants. Anyway:
slime_pit_nicolae_block_by_block: Features a number of corridors with
the slime walls mostly confined to the edges, and more narrow areas
as you get closer to the center.

--------------------------------------------------------------------------------
c3c14f638d | Nicholas Feinberg | 2023-07-14 10:47:39 -0700

Prompt on unsafe untransform (elliptic)
Via the ability. (The evoker already prompted.)

--------------------------------------------------------------------------------
a29a1f0fbb | Nicholas Feinberg | 2023-07-14 10:40:44 -0700

Let anacondas autoexplore through deep water (elliptic)

--------------------------------------------------------------------------------
704a3bb60e | Alvin | 2023-07-14 07:01:07 -0700

fix beargit_hepliaklqana_dungeon_heroes formatting
remove unneeded "\"

--------------------------------------------------------------------------------
b88eb75e06 | Nicholas Feinberg | 2023-07-13 21:31:11 -0700

Talisman tiles (Sastreii)
Well, some of these are Sastreii. Some aren't. Guess which?

--------------------------------------------------------------------------------
50393794a2 | Nicholas Feinberg | 2023-07-13 21:30:41 -0700

Make Blade Hands damage scale with skill again
For felids and other non body armour users to have some justification
to train shapeshifting. A sop.

--------------------------------------------------------------------------------
3aca3be9df | Nicholas Feinberg | 2023-07-13 20:37:45 -0700

Simplify UC accuracy bonus
Remove bonus accuracy for throwing and for claws; add more flat
accuracy for UC generally and remove the extra skill-based bonus.

--------------------------------------------------------------------------------
4392ee761c | elliptic | 2023-07-13 22:58:10 -0400

Fix display of max maw damage.

--------------------------------------------------------------------------------
3fc6992b3b | Nicholas Feinberg | 2023-07-13 13:43:01 -0700

To

--------------------------------------------------------------------------------
cc2c45dbe4 | Nicholas Feinberg | 2023-07-13 13:41:45 -0700

Tweak prunes (Undo)

--------------------------------------------------------------------------------
cf7e37af1d | Nicholas Feinberg | 2023-07-13 11:22:42 -0700

Fix aptitudes generation (N0-LGA)

--------------------------------------------------------------------------------
a0b03e459d | Nicholas Feinberg | 2023-07-13 10:05:51 -0700

Feat: pyrna hc fbzr ehqrarff
Hfr n ebg13-"pvcurerq" yvfg bs fyhef naq bgure ehqr jbeqf gb qvfpbhentr
gur anzr trarengbe sebz guebjvat ernyyl anfgl fghss bhg gurer. Cynlshyyl,
ercynpr gur ehqr jbeq jvgu gur ebg13'q rdhvinyrag, fvapr gubfr npghnyyl
ernq cerggl jryy.

Jr pbhyq rkcnaq ba guvf naq nqq zber gb gur yvfg va shgher, nqq shmml
zngpuvat, rgp.

--------------------------------------------------------------------------------
e8cad7f256 | Nicholas Feinberg | 2023-07-12 23:08:12 -0700

Remove monster potion use
As with 35f977ffcd317870459, we have more fun ways to create difficulty.

--------------------------------------------------------------------------------
35f977ffcd | Nicholas Feinberg | 2023-07-12 22:56:17 -0700

Remove monster scroll use
This almost never came up these days (since monsters could only use
?summoning, and the relevant bailey vault now set those as no_pickup),
and it was mostly frustrating when it did. Crawl has many exciting
ways to add difficulty spikes - unique enemies, out-of-depth foes,
nasty vaults, malevolence effects... it doesn't need to add item
destruction into the mix.

--------------------------------------------------------------------------------
072fdb8a1f | Nicholas Feinberg | 2023-07-12 21:44:27 -0700

Give Death Form its willpower back (elliptic, Lightli)
Confusion without !curing is a very special gift.

--------------------------------------------------------------------------------
1326d75512 | Nicholas Feinberg | 2023-07-12 21:40:58 -0700

Fix Siphon Essence description

--------------------------------------------------------------------------------
771a54ca4b | Nicholas Feinberg | 2023-07-12 17:25:21 -0700

Remove anti-snake discrimination (acrobat)
Remove the -cast penalty on anaconda, since it didn't really have
a strong justification for existence.

--------------------------------------------------------------------------------
d316b798dc | Nicholas Feinberg | 2023-07-12 17:08:07 -0700

Add extra accuracy for UC skill
Compensate for loss of form-based secret accuracy bonus.

--------------------------------------------------------------------------------
f185e81a89 | Nicholas Feinberg | 2023-07-12 15:06:28 -0700

Re-add Begin Untransform ability (Ge0ff et al)
;_;

--------------------------------------------------------------------------------
80acddb972 | Nicholas Feinberg | 2023-07-12 14:15:33 -0700

Remove undocumented UC accuracy bonus (Mike)
Simplifying and slightly nerfing UC.

--------------------------------------------------------------------------------
9c3d1c461a | Nicholas Feinberg | 2023-07-12 12:25:24 -0700

Make Trog block pain brand
Rather than forbidding it, make Trog disable pain brand while
worshipped, as if the weapon was brandless. This should avoid some
random annoyances when e.g. finding an early enchanted pain weapon.

--------------------------------------------------------------------------------
800c682d7f | Nicholas Feinberg | 2023-07-12 12:10:06 -0700

Deduplicate evil

--------------------------------------------------------------------------------
473bed0ee8 | Nicholas Feinberg | 2023-07-12 12:07:36 -0700

Make ?/L less gloomy (nicolae)
Don't show removed clouds in the cloud help screen.

--------------------------------------------------------------------------------
c4385922b5 | Nicholas Feinberg | 2023-07-12 11:57:54 -0700

Make MCC create an electric haze
Goofy visuals for blowing someone up with maxwell's capacitative charge.

--------------------------------------------------------------------------------
dc1e01ee57 | Nicholas Feinberg | 2023-07-12 10:53:29 -0700

Fix felid statue form horns (dilly)
Broken by 8cd43ee5b5aa39107ad42fefe57e79ae61008c11.

--------------------------------------------------------------------------------
2fffdecd26 | Nicholas Feinberg | 2023-07-12 10:45:51 -0700

Fix dragon form max AC display (elliptic)

--------------------------------------------------------------------------------
43b936b0e3 | Nicholas Feinberg | 2023-07-12 10:44:34 -0700

Fix talismans marking evo trainable (dinky)
Also, zigfigs.

--------------------------------------------------------------------------------
3dc27fa2b3 | Nicholas Feinberg | 2023-07-12 10:36:00 -0700

Nerf red draconians (Ge0ff)
Forgot to set their shapeshifting to -2 when I was adjusting every
other species.

--------------------------------------------------------------------------------
cfcdfa2135 | Nicholas Feinberg | 2023-07-12 10:35:50 -0700

Add a comment

--------------------------------------------------------------------------------
8cbcc1cb85 | Nicholas Feinberg | 2023-07-11 20:09:14 -0700

Give monsters infinite wand ammo (gammafunk)
Following on from d7dd4bcd532, make monsters not use up charges
when they zap you with wands. This feels nice for the player - you
aren't "wasting" charges by not killing enemies fast enough!

Remove monster use of /digging to avoid new goofiness.

--------------------------------------------------------------------------------
985e0631fc | Nicholas Feinberg | 2023-07-11 19:07:09 -0700

Fix the build?

--------------------------------------------------------------------------------
295e72b191 | Nicholas Feinberg | 2023-07-11 18:01:21 -0700

Try to clarify "reflection description
Don't imply that it blocks attack in some way other than via shielding.
Do clarify that *all* blocked attacks will be reflected.

--------------------------------------------------------------------------------
2f84412e23 | Nicholas Feinberg | 2023-07-11 17:57:03 -0700

Add a fun phial of floods recharge message
There's room for more of these from the other evokers, but no need
to force it.

--------------------------------------------------------------------------------
5adf0113ea | Nicholas Feinberg | 2023-07-11 17:53:41 -0700

Refactor XP evoker recharge messages

--------------------------------------------------------------------------------
00f4a5a00c | Nicholas Feinberg | 2023-07-11 17:31:05 -0700

Blade Hands -> Rapier Hands (gammafunk)
It's a bit overly fiddly now to have blade hands users swap forms
to deal with hydras, so make blade hands do piercing damage (ala sbl)
instead of slashing damage (ala lbl). We'll nerf it again later.

--------------------------------------------------------------------------------
b923e448b6 | elliptic | 2023-07-11 15:28:43 -0400

Remove a Shields skill breakpoint.
Raising Shields skill to 3 was extremely cheap anyway, so let's remove a
spoilery breakpoint. This is a tiny buff to players with 0 shield skill
(and a shield equipped), who now get 0.57 extra SH. Players with 3 or more
Shields skill are unaffected.

--------------------------------------------------------------------------------
0a1456f148 | Nicholas Feinberg | 2023-07-11 10:25:51 -0700

Refactor gods disliking brands

--------------------------------------------------------------------------------
1880023187 | Nicholas Feinberg | 2023-07-11 08:03:40 -0700

Tweak forms
This change is intended to allow more opportunities for players to shift
into or out of a 'transmuter' playstyle, to improve the UI of forms, and to
improve some miscellaneous issues, e.g. Lichform being useless in 3-rune games.
For more context, see https://github.com/crawl/crawl/wiki/Transmutations-Reform.

Throughout, balance is a very rough sketch. I expect many things will need to
be buffed, others will need to be nerfed, and some will need to be replaced
entirely. This is a grand experiment, not a final state.

Talismans
---------

The largest change is that forms are no longer entered via spells. Instead,
special items called 'talismans' must be found and evoked. Once entered,
these 'talisman forms' last indefinitely.

Further notes on talismans:
- Talismans scale only on Shapeshifting skill (more on this later). They
  do not care about Int, Spellcasting, other spell schools, wizardry, or
  encumbrance. (That is, they aren't spells.)
- Talisman forms have a 'minimum skill'. Below that skill, entering the
  talisman form will reduce the user's maximum HP (while in the form).
  This is intended to roughly mimic the inability to effectively cast
  spells at low skills/high fail% - it provides a space in which an 'early'
  form can be better than a 'later' one, even if you've found both.
- Talisman forms have a 'maximum skill'. Above that skill, no further
  scaling applies. This is intended to roughly mimic max spellpower - it
  makes it more obvious that later-game forms will end up outscaling
  earlier ones.
- It takes 5 turns to enter or leave a talisman form, exactly as with
  armour or amulets. Use of a talisman form is intended to be a strategic
  decision, again like wearing armour, rather than something swapped in
  each fight.
- Talismans don't need to be held after they're used. You can evoke them
  from the floor and leave them there. This avoids inventory pressure.
- Talismans can be used with Sacrifice Artifice, since they don't use Evo.
- Zin instantly excommunicates users of a talisman. Take that, nerds!
- Trog is A-OK with talismans, just as with wands, magic swords, etc.

Art for talismans is pending.

Skills
------

Transmutations skill has been split in two. Talismans use a new skill,
Shapeshifting, and remaining Transmutations spells (of which there are
still nine, more than one other school!) continue to use Transmutations
skill. There was very little synergy or overlap between forms and Tmut
spells, and this makes it easier to make skilling decisions. Some argue
that Transmutations should be abolished entirely and its spells punted
into other schools; we'll see.

Shapeshifting aptitudes look broadly like Transmutations aptitudes,
with a -2 penalty applied so that forms are costly enough now that
they're all "single-school" and don't require Int. (That is, Humans
have a Shapeshifting apt of -2, etc.) A few species have had their
apts adjusted to account for the new role of Shapeshifting, but more
could be done here.

Background
----------

The Transmuter background has been replaced with a Shapeshifter, who
starts with a beast talisman and no spells. Their stats have been
adjusted accordingly.

Forms
-----

The following forms exist:

*Beast*: This is the starting form for the Shapeshifter background. It
melds all aux armours in exchange for a Slaying bonus (ala Wereblood) -
+2 at 0 skill, +8 at 13 skill (max).

This is intended to provide a bonus which is compelling early game (when no
or few aux armours have been found) but more tenuous later, especially for
non-transmuters. It's also intended to provide a bridge between Tmut and
weapon use, since a transmuter who finds a great weapon can switch from UC
to that weapon without giving up their form and Tmut training.

Beast form allows use of body armour so that it can present a reasonable
slay-for-AC tradeoff without becoming overly strong for 'dex-based' characters,
who wouldn't mind losing body armour nearly as much.

*Anaconda*: This is a tier 2 form. Anaconda form turns you into a giant
anaconda. All your items meld, you can constrict, you get some AC and an HP
bonus...

This is intended to replace Ice Form, a form to help transmuters transition
into the mid-game. The rF- of Ice Form is less appropriate for early-game
characters who can no longer switch between forms, and Ice Form is not
evocative - no one gets Ice Beasts. On the other hand, turning into a snake...
everyone gets that. That's the dream. Limbs are for dorks. Ssssss

*Maw*: This is a tier 2 form. Maw form melds the body slot, transforming it
into a giant mouth, ala the Brazilian Mapinguari. The maw provides an aux
attack with damage that scales on Shapeshifting skill. It also has the old
Hydra form devour-on-kill-for-hp gimmick, since everyone loved that.

This is intended to be a way that Shapeshifters can transition into the 
mid-game,
especially transmuters who use weapons. It's probably a bit too strong for
quick blade users at present - perhaps I'll give it +str -dex, or something.
(It may also just be too strong in general - numbers are WIP!)

*Blade*: This is a tier 2 form. It's blade hands. To compensate for it
being easier to enter, its UC damage has gone down slightly (22 -> 18).

It also now gives a deformed body-like AC penalty based on base body armour AC,
scaling from a 100% penalty at min Shapeshifting skill to 0% at max skill.
(That is, at min skill, +2 plate armour will just give you +2 AC, plus whatever
you get from Armour skill.) This is intended to model the dynamic of old Blade
Hands - pure glass cannon when you can only cast it in robes, later on more
usable in actual armour. Your body is deformed because there are blades inside.
Aaiiii!

This is intended to be another way that Shapeshifters can transition into the
mid-game.

*Statue*: This is a tier 3 form. It's statue form. Intended to be a way
for transmuters to head into late-game while still being able to use weapons,
if desired. Might need to be a bit stronger for weapon users.

*Dragon*: This is a tier 3 form. It's dragon form. AC and UC damage now
scale slightly with Tmut skill. Intended to be a way for transmuters to
head into late-game. Possible this should be tier 4 and Storm should be tier
3 - dragons are cool! Dragons should be the best!

*Storm*: This is a tier 4 form. It's storm form. Intended for players who
want to dump ludicrous amount of skill XP into tmut. Top end has been
adjusted somewhat downward.

*Death*: This is a tier 4 form. Replacing Necromutation/Lich Form, Death
Form makes you dead (no drinking potions, holy wrath/dispel undead vuln,
rC, rTorm, rPois, etc) and also gives you an assortment of spicy powers.
On hit (with melee/UC), victims get slowed, weakened, and heavily drained.
There's also a new active, Siphon Essence, which costs 20 (!) MP, halves
the HP of all enemies in radius 2, and heals you based on damage dealt and
Tmut skill. (That works on all non-MH_NONLIVING enemies, as do the debuffs.)

It no longer provides innate AC or Will, nor does it give a necro enhancer.
Its UC damage is now significantly higher, comparable to blade hands,
though still much lower than Statue, Dragon or Storm.

This is intended to be a way for players who want to spend huge skill XP
on tmut to do so, including those who use tmuts + weapons. It's intended
to feel a bit different from other forms while still being competitive in
melee. Other forms have huge base damage - Death Form has lower damage but
very strong debuffs. Other forms have AC (Statue), HP (Dragon) or EV (Storm) -
Death Form gives Siphon Essence as a very powerful survival tool.

Other Notes
-----------

Various books have been merged and consolidated to make up for the
removal of eight spells. It *might* make sense to drop the book generation
rate slightly, but I haven't done this yet.

Some uniques now spawn with talismans. More could be done with this, e.g.
placing talismans of death in Crypt.

Later changes
-------------

Talisman acquirement is a must. TODO.

In the future, artefact talismans (i.e. randarts) could be interesting -
to provide more excitement for rare finds. The randarts would have
the usual panoply of properties (rF+, Dex-2, etc), which would apply
while the player was in the relevant form.

It'd be fun to add more form types, e.g. ones that work well for
'casters'.

Might be interesting to have talismans start unidentified (like staves),
for a frisson of excitement in gauntlets etc.

Possibly Wanderers should get a chance to start with beast talisman?

--------------------------------------------------------------------------------
2d982f9f85 | Medrano83 | 2023-07-10 12:26:56 +0200

docs: comment the android game_scale management

--------------------------------------------------------------------------------
9a0961fb85 | Medrano83 | 2023-07-10 00:26:48 +0200

Fix lines longer than 80 characters in the options guide

--------------------------------------------------------------------------------
81891f999a | Medrano83 | 2023-07-09 23:53:55 +0200

Fix index of tiles options
Some tiles options are missing in the option guide's table of contents.

--------------------------------------------------------------------------------
ad7ace16ef | Medrano83 | 2023-07-09 16:51:19 +0200

Fix: If the menu is bypassed, the Android keyboard doesn't show
This bug has been detected while testing qw on Android.

--------------------------------------------------------------------------------
139696dc86 | Nicholas Feinberg | 2023-07-07 10:24:14 -0700

Maybe fix a Makh targeter crash
Probably caused by 1fc7ce93e22d3f740f665e9ced33f09dd8965dd7. I couldn't
repro the crash locally.

--------------------------------------------------------------------------------
b1c03b2570 | Nicholas Feinberg | 2023-07-06 13:12:24 -0700

Base Zot MHP penalties on base MHP
Don't include things like Dragon Form when calculating MHP penalties
from being zapped by the Zot clock. This should feel more fair to
unfortunate Meteoran transmuters.

--------------------------------------------------------------------------------
51bb95cda3 | elliptic | 2023-07-06 13:36:18 -0400

Thundrous -> Thunderous.

--------------------------------------------------------------------------------
09eb5fc4d3 | patrick | 2023-07-06 12:34:53 -0400

Add no_dump to a subvault
nicolae_letter_subblock is just a subvault that's used multiple
times in the same larger vault and all of its variation is
handled internally. The player gains no useful information from
seeing it listed in the end-of-game dump a zillion times.

--------------------------------------------------------------------------------
1fc7ce93e2 | Nicholas Feinberg | 2023-07-05 15:15:03 -0700

Fix Makh's Major Destruction targeter (acrobat)
And don't make Makh's targeters depend on DEBUGGING_RAY.

--------------------------------------------------------------------------------
0839b0fcba | Nicholas Feinberg | 2023-07-05 15:11:46 -0700

Fix flame wave + fedhas + trees (Monkooky)
This probably fixes flame waves going through trees, maybe. I'm
pretty leery of this code.

--------------------------------------------------------------------------------
a22c3bf811 | Nicholas Feinberg | 2023-07-05 14:57:43 -0700

Feat: increase zombie tolerance
If you bring a creature back from the dead as your mindless,
horrifying servant, there's no way that they get mad if you ding
'em with the edge of a fireball or a Ford Pinto. They're just gonna
take it. It's also bad gameplay for your undead summons to get mad
when you bop em.

So, make all zombies (and skeletons, and bound souls, etc) no longer
become angered when you hurt them. Poor things.

--------------------------------------------------------------------------------
518fb64703 | Nicholas Feinberg | 2023-07-05 14:53:20 -0700

Show Noxious Bog damage
Didn't bother setting this up for monsters.

--------------------------------------------------------------------------------
f72db212d5 | Nicholas Feinberg | 2023-07-05 14:50:25 -0700

Show polar vortex damage

--------------------------------------------------------------------------------
c2ff21d051 | Nicholas Feinberg | 2023-07-05 14:34:51 -0700

Add the Devil's own humor

--------------------------------------------------------------------------------
b600c05fae | Nicholas Feinberg | 2023-07-05 14:34:51 -0700

Fix formless jellyfish constriction (Ge0ff)
Being sz: small meant they couldn't constrict the vast majority of
players, making their gimmick pointless.

This partially reverts commit c79956ad2d5f7c16cb62790046a0fee3702d0713.

--------------------------------------------------------------------------------
efeffbb62a | gammafunk | 2023-07-04 08:56:32 -0500

fix: Use the correct type for the minor version
When reading the "chr" section, pass the read minor version as
`uint32_t` and not `uint8_t`, since we converted minor version to the
former in 43576957. Using the wrong type was truncating the minor
version to 0, resulting in some erroneous unmarshalling that corrupted
the value of `you.explore`, among possibly other things.

Note: This fix was cherry-picked from ca8d4b91 in the talisman-why-not
experimental branch, where the bug was noticed, but thankfully never
triggered in trunk.

Also remove an unused tag function and clean up a lack of whitespace.

--------------------------------------------------------------------------------
bddc013574 | nicolae-carpathia | 2023-07-03 14:11:08 -0400

Add a few vaults in various places (#3087)
Add a few decor vaults to mini_features.des, some simple overflow

altars to overflow.des, and some monster vaults to mini_monsters.des.

---

Ages ago, hellmonk said in the dcss channel:



[1/1]: The tier 3 demons. They are: {sun demon}, {smoke demon},

{soul eater}, {neqoxec}, {ynoxinul}, {sixfirhy}.



// EVIL HACK: — Today at 2:47 PM

imo make some d vaults featuring these guys in about d:9-12 range



So I did
--------------------------------------------------------------------------------
c2f4f3cf83 | patrick | 2023-07-03 13:07:46 -0400

Add some new Slime Pit endings
slime_pit: The main change was splitting out the various functions for
making the clear walls disappear when TRJ dies. I also removed some
downstairs glyphs, which were in there for some reason. I removed the
"no_dump" tag, since now that there are variants, players might want to
see which one they got. I also trimmed some excess walls off the edges
to get the width less than 70 tiles, allowing the vault to be rotated,
and accordingly removed the "no_rotate" tag.

slime_pit_nicolae_amoeboid: A variation on the basic slime_pit theme --
stairs near the outer edge of slime walls, with stone, loot, and TRJ
in the center.

slime_pit_nicolae_inversion: Switching it around a little: stairs near
an outer edge of stone walls, with loot and other decorative bits around
the outer edge. The center holds slime walls and TRJ. As the comment
notes, there is usually an acidless path to the center, but it's not
guaranteed.

slime_pit_nicolae_jellycorners: Instead of starting near the edge and
working one's way inwards, you start at the center and work your way
outwards. Here, TRJ is lurking in one of the square stone ruins in the
corners. The decaying stone walls might end up providing a little niche
to hide in, but also maybe not.

slime_pit_nicolae_royal_road_to_ruin: For a bit, I considered a layout
that was mostly just an A-to-B path, rather than mostly open areas the
player can wander through; this concept was rejected and the map I'd
made was turned into nicolae_slime_spelunking. The loot/TRJ section from
that was kept and reused here. Here, the three stairs start in a
mostly-open area, and then converge on the center together, turning into
a short A-to-B path. Like slime_pit_nicolae_jellycorners, players will
walk through decaying ruins of the pre-Slime civilization, which may or
may not provide fightin' niches.

slime_pit_nicolae_trefoil: A concept of 3-towards-1, in which there are
three distinct paths to the center, and going from one upstair to another
requires going through the TRJ zone. Here, there's quite a bit more loot,
so there are more monsters to compensate.

For all the new vaults, I mostly kept the same amount and ratios of
monsters (types, numbers) and loot (* relative to |) as in slime_pit.
That stuff is a pain to balance, and I figured it'd be easiest to go
with what I know. I also didn't bother weighting any of the vaults;
that can come later with feedback.

--------------------------------------------------------------------------------
8d62b2e7bb | Implojin | 2023-07-02 23:56:41 -0500

Give players the power of Friendship

--------------------------------------------------------------------------------
813d01f837 | Implojin | 2023-07-02 20:05:33 -0500

docs: update contrib docs tavern URLs

--------------------------------------------------------------------------------
58bb5d79cf | gammafunk | 2023-07-01 23:36:03 -0500

feat: Add games.d to gitignore
This way you can have local configuration without it showing up in `git
status`. Any changes to files in that dir actually in the repo will
still be seen.

--------------------------------------------------------------------------------
22e908daa7 | Implojin | 2023-07-01 13:08:04 -0500

Add ctrl+f stash search tags for some consumables
This commit adds resistance search tags to potions of resistance,
lignification, enlightenment, and scrolls of revelation:
e.g., searching for rF+ will now show any potions of resistance that exist.

I've also updated the long descriptions of ligni and treeform here, to try
to despoiler its rDrown behavior.

--------------------------------------------------------------------------------
8be760b2a8 | elliptic | 2023-07-01 09:41:34 -0400

Fix display of mud in console.
Now it works like shallow water, recoloring items instead of hiding them.

--------------------------------------------------------------------------------
b37851dbb3 | Nicholas Feinberg | 2023-06-30 13:10:45 -0700

If Tavern is so good, why isn't there a...
Resolves #3172.

--------------------------------------------------------------------------------
2c6cdc7aa0 | Nicholas Feinberg | 2023-06-30 13:08:19 -0700

Fix: mass conf shouldn't hex charmed foes (acrobat)
Specifically, this was an issue for allied monsters casting mass
confusion. (i.e. the hexer Hepliaklqana ally.)

--------------------------------------------------------------------------------
aee14a59e2 | Nicholas Feinberg | 2023-06-30 13:05:56 -0700

Fix felid horns
Oops! Broken by adcf659a075821c4.

--------------------------------------------------------------------------------
baa01a92c0 | Nicholas Feinberg | 2023-06-30 12:54:11 -0700

New Robe of Vines doll tile (Sastreii)

--------------------------------------------------------------------------------
ccc998df9b | Nicholas Feinberg | 2023-06-28 07:54:40 -0700

Remove Chant Word of Entropy
Gone since e0ef66670186d040d0d4af384bb9dffdff519f6f (2015).

--------------------------------------------------------------------------------
8757bd8695 | Nikolai Lavsky | 2023-06-28 16:36:04 +0300

fix: consider the ring of the Mage to be wizardly
so Troglodytes don't autopickup this unrand. After 8fc9a925b, the ring
of the Mage is completely useless for them.

--------------------------------------------------------------------------------
db31a4691d | Nicholas Feinberg | 2023-06-27 21:52:27 -0700

Cloak your misdeeds (Sastreii)
New tiles for Starlight, Dragonskin, Ratskin and the Thief.

--------------------------------------------------------------------------------
184df878d8 | Nicholas Feinberg | 2023-06-27 14:58:01 -0700

Pass an item_def& into evoke_item
This is preparation for talismans.

--------------------------------------------------------------------------------
b85abca632 | Nicholas Feinberg | 2023-06-27 14:50:51 -0700

Refactor evoke_check
Don't pass slots into these functions. This is preparation for talismans.

--------------------------------------------------------------------------------
2cbb21b356 | Nicholas Feinberg | 2023-06-27 13:26:15 -0700

Fix Lucy wrath protection crashes (#3173)
Introduced by be6b1f94854b4c053629de70abcc4c16dea3323d.

Resolves #3173.

--------------------------------------------------------------------------------
7da18cac08 | gammafunk | 2023-06-26 19:22:13 -0500

fix: Remove an obsolete clua function
The clua function `you.can_consume_corpses()` is no longer needed since
no species can consume corpses any more.

--------------------------------------------------------------------------------
82f8529059 | gammafunk | 2023-06-26 18:59:00 -0500

feat: A wizard command to unobtain runes and Orb
There's no existing convenient way to unget runes or the Orb of Zot, and
for testing purposes it's nice to be able to do this. The ideal UI would
present a toggle for each rune and the Orb, but that's more work to
implement and it's easy enough to re-obtain runes/orb with the wizard
mode item commands.

--------------------------------------------------------------------------------
547052bce9 | Nicholas Feinberg | 2023-06-25 16:12:54 -0700

Fix autoexplore on pf_just_have_faith (elliptic)
Don't let greedy monsters ruin the joke.

--------------------------------------------------------------------------------
ac7c113fc5 | Nicholas Feinberg | 2023-06-25 16:05:04 -0700

Fix: don't double-prompt for forbidden evokes
Both use_an_item_menu() and evoke_item() called
check_warning_inscription(), resulting in a double prompt when e.g.
evoking /poly under Zin via V.

I wouldn't be surprised if there were more bugs along these lines
still lurking.

--------------------------------------------------------------------------------
bc41564c69 | Kyle Rawlins | 2023-06-25 11:46:38 -0400

fix: convert a sanctuary ASSERT to a check
This is somewhat theoretical, but, I think if a sanctuary ends exactly
when changing level, and the coords that were the center of the
sanctuary are in los on the new level, there's a sequencing issue in
loading the new level where env.sanctuary_pos is reset, but the FPROPs
aren't yet cleared (I'm 95% sure they do get cleared later in the level
load process). This case triggered a crash on `is_sanctuary`.

This commit tweaks things so that this simply isn't a crash, we don't
check the FPROPs unless sanctuary_pos is set. This in principle would
prevent identifying a class of bugs with the FPROPs not getting cleared,
but I haven't run across such a bug in many years.

Resolves #3170

--------------------------------------------------------------------------------
b898f60d1c | Kyle Rawlins | 2023-06-25 11:12:38 -0400

feat: cropped version of main logo
This is not used in game, but it's very useful to have around as a
branding asset.

--------------------------------------------------------------------------------
2ad674f65e | Nicholas Feinberg | 2023-06-24 13:30:58 -0700

Remove emergency_untransform
Back when dropping into deep water would kill you instantly, it made
some sense for players with natural swimming abilities (e.g. Mf, Op)
to automatically leave non-swimming forms when they ended up over
deep water without flight. (E.g., when !flight expired.) These days,
there's less temporary flight around and emergency flight is available,
so let's remove this complexity.

--------------------------------------------------------------------------------
d3b2c1cad5 | Nicholas Feinberg | 2023-06-24 13:28:49 -0700

Increase Deal Four piety cost (Lici)
Nemelex's Deal Four is cheaper than Triple Draw but generally more
powerful, leaving little space for the former ability. Increase Deal
Four's piety cost to be between Triple Draw's and Stack Five's.

--------------------------------------------------------------------------------
86fe4a5e66 | Nicholas Feinberg | 2023-06-23 18:14:31 -0700

Resist the urge to delete resistance (hellmonk, cool2)
Oops!

--------------------------------------------------------------------------------
7586a6f1e9 | Nicholas Feinberg | 2023-06-23 17:51:26 -0700

Don't generate archmage ego robes (hellmonk)
As an experiment, to encourage more use of mid-range armour and to
compensate for the new enhancer staves.

Randart archmagi robes can still appear.

--------------------------------------------------------------------------------
08f92feebc | Nicholas Feinberg | 2023-06-23 16:05:05 -0700

Halve generation of staff randarts (acrobat)
Compensation for new multi-enhancer staff randarts in 4aa6249778bc.

--------------------------------------------------------------------------------
dfe2569204 | gammafunk | 2023-06-23 17:30:45 -0500

fix: Prevent monster generation in a vault (CanOfWorms)
For `dk_yredelemnul_ordeal`, don't generate monsters in this as it has
both themed monsters of its own as well as a sealed area where it would
be odd to generate monsters.

--------------------------------------------------------------------------------
a50d7bf3bb | gammafunk | 2023-06-23 16:45:59 -0500

feat: Tweak a runed door vault (CanOfWorms)
For `lemuel_bear_cage`, add `no_monster_gen no_item_gen` and put some
loot items in the vault. The first tag is to prevent off-theme monsters,
and the guaranteed loot is to make the vault more enticing to open. The
bear/Lair themed animals are weak post-Lair, so limit its placement to
Lair placement range (D:7-11 instead of D:7-). Rework the monster
placement to have better separation of monster types with appropriate
weights. Also add monster placement that gets harder with increasing
placement depth.

--------------------------------------------------------------------------------
aeb36284e3 | gammafunk | 2023-06-23 16:45:59 -0500

fix: Let the sense Abyssal rune to be seen in clua
If `items.get_items_at()` sees a valid item at a location but there's no
corresponding stash item, instead of returning nil, return the map cell
item. This allows us to see fully defined sensed items like the Abyssal
rune. It doesn't work for sensed items like those from gnoll's strong
nose mutation, but such items would need more complete item details
before we could return them to clua.

--------------------------------------------------------------------------------
4feb4907b2 | Nicholas Feinberg | 2023-06-23 13:40:37 -0700

Support no_exclude for misc items
For wizmode purposes.

--------------------------------------------------------------------------------
a26ba32dd1 | Nicholas Feinberg | 2023-06-23 12:50:38 -0700

Make ?revelation last slightly longer (Monkooky)
Rather than being strictly instantaneous, allow the player to start
their next turn with vision of whatever invisible things are nearby,
whatever's through walls, etc. This is a UI improvement - new monsters
will now be announced as 'coming into view' properly, etc.

--------------------------------------------------------------------------------
5e087ee2ca | sandertyu | 2023-06-22 11:34:27 -0700

fix tile_shield_offsets option
Updates game option for tile_shield_offsets to set
tile_shield_offsets_option instead of tile_weapon_offsets_option.
I believe this was simply a typo.

Resolves #3133

--------------------------------------------------------------------------------
ba352fbbf7 | Nicholas Feinberg | 2023-06-21 22:19:37 -0700

🐸 182 (Monkooky)

--------------------------------------------------------------------------------
dd590a99dd | Nicholas Feinberg | 2023-06-21 22:09:25 -0700

Hop some new tiles in (Sastreii)
Orcbow, blink frog, Dithmenos's altar, and Shrike simulacrae.

--------------------------------------------------------------------------------
9dded2c639 | Nikolai Lavsky | 2023-06-22 02:32:14 +0300

build: enable `CMD_MAP_EXCLUDE_RADIUS` in `NOWIZARD` builds
Since this command has been available outside of the wiz-mode since
2009, let's enable it for `NOWIZARD` builds too.

--------------------------------------------------------------------------------
dd1737301c | Nikolai Lavsky | 2023-06-22 02:30:40 +0300

docs: document a secret X-mode command
Added in af5862b9e, `CMD_MAP_EXCLUDE_RADIUS` allows placing exclusions
with arbitrary sizes on the map. The command was supposed to be
available only in the wiz-mode, but due to a missing `you.wizard` check
anyone can use it.

Since the command might be useful for checking the range of monsters'
spells or inner-flame explosions, let's document it in a few relevant
places.

--------------------------------------------------------------------------------
4352c244c2 | Nikolai Lavsky | 2023-06-21 23:02:30 +0300

docs: further update the list of available commands
This commit brings the list of available commands in line with the
default keybindings from cmd-keys.h.

--------------------------------------------------------------------------------
c5ef74bbde | Nicholas Feinberg | 2023-06-19 22:36:03 -0700

New Orb of Zot tiles (Sastreii)
Spin! Spin!

--------------------------------------------------------------------------------
c6c2007e03 | Nicholas Feinberg | 2023-06-19 22:14:48 -0700

Revert "Increase Meteoran zot clock"
+25% was too much. Let's keep thinking about this and try another
approach later.

This reverts commit 2312942fdab03ec46e66242d9c88c51edeca864b.

--------------------------------------------------------------------------------
519b7de00c | Nicholas Feinberg | 2023-06-18 16:58:00 -0700

Fix art-data generation for new enhancers

--------------------------------------------------------------------------------
1846a1fd2d | Nicholas Feinberg | 2023-06-18 16:07:20 -0700

GET EQUIPPED WITH WEAPON TILE (SASTREII)
New tiles for short sword/eveningstar randarts and orcbows.

--------------------------------------------------------------------------------
96ec847f19 | Nicholas Feinberg | 2023-06-18 15:54:37 -0700

Describe new enhancer artps
Oops!

--------------------------------------------------------------------------------
4aa6249778 | Nicholas Feinberg | 2023-06-17 15:26:20 -0700

Let randart staves enhance other schools
Add an enhancer artp for each spell school and let randart staves
get artps for other schools. So you can have the staff of the Slime
Pits {rF, Fire, Air} and have a staff that enhances both fire and air
spells. This doesn't provide innate resists like the base staff type
does.

Reasoning: seems fun; might encourage switching up spell use based on
staves found.

Also changes the naming of randart staves - rather than the staff of
fire "Fhwghdhs" {rF, Int-3}, we now have the staff "Fhwhgdhds" {rF,
Fire, Int-3}. This allows for staff names like "the staff of Bad
Decisions" - before, those would be the staff of fire of Bad Decisions,
which was too many 'ofs'.

It'd be fun to add these props to other randarts. Robes? Orbs? Hats?
Gloves? Cloaks and scarves? Staves and lajatangs..?

--------------------------------------------------------------------------------
91f28db67f | gammafunk | 2023-06-17 10:53:23 -0500

feat: Don't let the Damnation unrand harm the shooter
As of a99462a43, Damnation requires hitting an actual monster in order
to explode. Hence the player has no way to safely use the weapon on an
adjacent monster without harming themself. This creates an annoying need
to swap to a backup launcher frequently, since even when you have
exploding damnation bolts, monsters get adjacent quite often.

Hence this commit makes Damnation simply not affect the shooter. It's a
buff to Damnation, but the nerf in 404d6944 was strong, and the weapon
isn't overpowered these days. I also removed some ammo mulching code
that was specific to Damnation but is no longer necessary when launcher
ammo always mulches.

--------------------------------------------------------------------------------
9f7f995f2b | Nicholas Feinberg | 2023-06-15 17:24:40 -0700

Fix: don't summon obsidian axe crashes when chopping players
C.f. 3f4f80340b6620, true believers!

--------------------------------------------------------------------------------
85c54bcb58 | Neil Moore | 2023-06-14 15:13:40 -0400

Please speak only to my lawyer.
Several artefact weapon names.

[skip ci]

--------------------------------------------------------------------------------
e4b35d15fd | Nicholas Feinberg | 2023-06-14 11:40:07 -0700

Fix: don't turn dust into smoke
Since scrolls of fog were first added in 7ef7c926766, they've printed
something like this:

    As you read the scroll SDFKLVHYVN, it crumbles to dust.
    The scroll dissolves into smoke.
    It was a scroll of fog.

This is quite redudant. We don't need our scrolls to crumble into dust
and then into fog! Let's merge the first two.

--------------------------------------------------------------------------------
92a001385b | Nicholas Feinberg | 2023-06-14 10:29:12 -0700

Fix: show current delay for mid-skill heavy weapons (chimerix)
Heh heh heh. Pretty good bug.

--------------------------------------------------------------------------------
322a60d74e | Nicholas Feinberg | 2023-06-14 10:20:54 -0700

Simplify: don't mark ?revelation as cancellable
This is a minor oversight in 77163bc4736 (late 2022). It has no
effect on gameplay.

--------------------------------------------------------------------------------
5282407e52 | Nicholas Feinberg | 2023-06-14 10:04:46 -0700

Fix ego/normal barding tiles (Sastreii)
Accidentally swapped these. Whoops!

--------------------------------------------------------------------------------
82b7359922 | Nikolai Lavsky | 2023-06-14 17:18:20 +0300

fix: update default settings for `action_panel_filter`
Since the new versions of the potion of flight and scroll of magic
mapping have tactical uses, they should be displayed on the action
panel.

--------------------------------------------------------------------------------
7cdbcddada | Nikolai Lavsky | 2023-06-14 16:04:27 +0300

refactor: remove old monster glyph and keybind files
Added after a significant overhaul of monster glyphs and colours in 0.4
(f2f6755ac), monster_glyphs files allowed to make the glyphs of all
affected monsters show up as they did in previous versions.

There doesn't seem to be much demand for such files now, so it's time to
remove them.

Also, this commit removes the file with 0.3.4's key bindings that
somehow survived in the codebase for 15 years.

--------------------------------------------------------------------------------
1c394c0614 | Nikolai Lavsky | 2023-06-14 01:28:59 +0300

docs: remove eating and butchering
and add equip/unequip commands.

--------------------------------------------------------------------------------
46f44d267d | Nikolai Lavsky | 2023-06-14 00:15:08 +0300

fix: remove obsolete inventory colours
These were leftovers from preferred food and mutagenic corpses/chunks.

--------------------------------------------------------------------------------
3f4f80340b | Nikolai Lavsky | 2023-06-13 17:49:26 +0300

fix: don't summon obsidian axe demons when chopping firewood
Also, don't create summons when attacking conjured monsters.

--------------------------------------------------------------------------------
2312942fda | Nicholas Feinberg | 2023-06-12 17:53:10 -0700

Increase Meteoran zot clock
+25%, from 600 per floor to 750. This should give a bit more
flexibility, especially for especially time-tight areas like Lair
or Vaults, while still maintaining time pressure overall.

--------------------------------------------------------------------------------
b40cd77e26 | Nicholas Feinberg | 2023-06-12 16:41:22 -0700

Revert debug code change
Oops!

--------------------------------------------------------------------------------
c4c5a43528 | Nicholas Feinberg | 2023-06-12 11:01:39 -0700

Fix: don't start Wn with Slow+Slow (acrobat)

--------------------------------------------------------------------------------
b58dd9be76 | Nicholas Feinberg | 2023-06-11 22:37:53 -0700

Feat: magic mapping -> revelation
Magic mapping is a cool item, but I often find it sitting in my
inventory unused for the great majority of a game. I might use it
early on to find a timed portal if I'm having trouble, but after
that, it sits around until Zot. That's not exciting!

Meanwhile, the removal of Ashenzari's Astral Vision in 1891117ce2a
(Sept 2022) left a mechanical gap. We removed the "see through walls"
effect for a variety of UI and bug reasons, but it's still neat.
If the player only saw through walls for a moment, until the end of
their turn, there'd be no problem. So... let's kill two birds with one
scroll!

Scrolls of revelation still map the level, like magic mapping, but
they also reveal everything in LOS radius - monsters, items, unseen
horrors, you name it. This should hopefully create more incentive
to use magic mapping throughout the game - you might want to see
what's inside a scary looking vault or behind a door, for example.

It does break the legendary door vault a bit, but truthfully, that
thing was meant to be broken. If players want to spend a scarce
resource to peek inside, they can do that. :)

UI issue - invisible monsters vanish completely once your turn ends,
so you might want to note them down. Might poke at this at some point.

--------------------------------------------------------------------------------
b69b018a6c | Nicholas Feinberg | 2023-06-11 22:27:12 -0700

WIP

--------------------------------------------------------------------------------
adcf659a07 | Nicholas Feinberg | 2023-06-11 22:13:24 -0700

Move some silly tiles out of fe/op enums
So that randomly picking player bases won't result in a tile that
feels out-of-style, hopefully.

--------------------------------------------------------------------------------
bf13549d7c | Nicholas Feinberg | 2023-06-11 22:05:02 -0700

Fix monster specs for simulacrums/spectres
Broken by 0e04eb73d5a (2021), when we allowed demonic and holy ghosts.

This also fixes the 'monster' bot's output.

--------------------------------------------------------------------------------
0643eb4156 | Nicholas Feinberg | 2023-06-11 15:58:49 -0700

Experimental: randomize player tile on start
We have so many player tile variants. Shouldn't players get to see
them without having to mess around with the offline doll editor?

Some of the older tiles are sort of dubious, so let's call this a
test and revert it if there are complaints.

--------------------------------------------------------------------------------
05d2ad474e | Nicholas Feinberg | 2023-06-11 15:03:30 -0700

New barding tiles (Sastreii)
Lord, what a mess this code was... still is, really.

--------------------------------------------------------------------------------
b63f529262 | Nicholas Feinberg | 2023-06-11 14:18:46 -0700

New spell tile (Sastreii)
Blastmotes (icon and clouds), leda's unmaking (icon and shot).

--------------------------------------------------------------------------------
56bf346678 | Nicholas Feinberg | 2023-06-10 22:03:13 -0700

Add some tiles that just don't miss (Sastreii)
New Eos and Sniper tiles.

--------------------------------------------------------------------------------
e6debcdd2c | Nicholas Feinberg | 2023-06-10 22:00:04 -0700

Update hunter description (CarefulOdds)
Per 1e386dd289.

--------------------------------------------------------------------------------
6aa68a64a1 | Nicholas Feinberg | 2023-06-08 10:20:21 -0700

Randomize cloud type per condenser vane cloud
Reduce the odds of a complete whiff.

--------------------------------------------------------------------------------
e443d1f16c | Nicholas Feinberg | 2023-06-08 07:26:43 -0700

Add missing Reap description (Colgate)

--------------------------------------------------------------------------------
89dc3ad700 | Nicholas Feinberg | 2023-06-07 11:44:34 -0700

Let unrelated mons swap past lower-HD allies (elliptic)
To make ratscumming (new term) slightly weaker, allow higher-HD
monsters to *occasionally* swap past lower-HD allies. This allows
e.g. an orc warrior to eventually swap with a worm while you're
busily spearing or Momentum Striking the former.

--------------------------------------------------------------------------------
3fdcc5976a | Nicholas Feinberg | 2023-06-06 22:39:19 -0700

Always allow reaching over spectral weapons (elliptic)
Make spectral polearms less fiddly to use.

--------------------------------------------------------------------------------
b92c8fe61f | Nicholas Feinberg | 2023-06-06 22:34:30 -0700

Turn off quiver autoswitching (CarefulOdds, advil)
Switching to a new quivered item when you ran out of the thing you
were shooting made sense back when folks were juggling +2 elvish arrows
and +1 arrows of flame. These days, though, it's pretty uncommon that
the player wants to keep chucking stuff when their quiver runs empty,
and much more likely to be disastrous if e.g. the quiver switches from
boomerangs to scrolls of fear.

Let's disable this and see if anyone complains.

--------------------------------------------------------------------------------
5898b58c05 | Nicholas Feinberg | 2023-06-06 22:17:53 -0700

Don't assume that runes use SHOW_ITEM_MISCELLANY
They haven't for years. Instead, use CMD_DISPLAY_RUNES in the %
screen, matching the preceding lines for A and @.

This has no effect for anyone except players who've rebound }.

--------------------------------------------------------------------------------
f34b8b8c02 | Nicholas Feinberg | 2023-06-06 22:12:20 -0700

Make fear optional (Grit, Tollund)
By popular demand, make the new prompt for resting/autoexploring
as a Meteoran opt-in. Dial 1-800-FEAR-ZOT now for your free UI.

--------------------------------------------------------------------------------
046c7d2549 | Nicholas Feinberg | 2023-06-03 14:55:37 -0700

Mark distortion as chaotic and evil (kate, gammafunk)
Matching the Banishment spell, Lugonu, etc. This was originally the
case, but distortion was marked un-evil in 0.6 to make good god
followers have a better time wield-IDing things. Wield-ID is gone,
so let's normalize things again.

Reverts a8723822.

--------------------------------------------------------------------------------
68197d5272 | Nicholas Feinberg | 2023-06-03 14:55:37 -0700

Mark new wands as high-tier (Ge0ff)
Discourage low HD monsters from picking em up.

--------------------------------------------------------------------------------
3820da0fcd | CanOfWorms | 2023-06-03 17:30:40 -0400

Update cards.txt
Remove the description for Famine and note that one of the demons summoned

by the Pentagram can be hostile.
--------------------------------------------------------------------------------
31f6795574 | gammafunk | 2023-06-02 14:04:21 -0500

fix: Correct monster placement in a vault (CanOfWorms)
The vault grunt_forest_large_clearings had its monster placement messed
up over the years with a combination of fixes for traps and food
removal. This could lead it to place quite large numbers of wolves in
one of its possible states. Looking back at the design intended for the
vault in c5d36bef, I've fixed and simplified the DES. Now its four
possible states all place appropriate types and numbers of monsters.

--------------------------------------------------------------------------------
d189c61b28 | Nicholas Feinberg | 2023-06-02 11:04:41 -0700

Return Cerebov's Iron Shot (Ge0ff)
The Demon Lord of Fire and Steel, master of the Iron Castle, can have
a little iron shot as a treat.

--------------------------------------------------------------------------------
021bf36b8e | gammafunk | 2023-06-02 10:34:18 -0500

feat: A CLO for setting the max memory for clua
Previously this limit was always 16 megabytes, but there are use cases
(e.g. qw) where a local user or server admin wants to allow scripts to
go above this. Add `-lua-max-memory` to set the limit in megabytes, with
a default of 16MB.

--------------------------------------------------------------------------------
a8e5da340c | Nicholas Feinberg | 2023-06-02 07:40:28 -0700

Cleanup some misc item code
Don't claim that runes are misc items (rip), try to avoid cleaning
any misc items in the unlikely chance that a floor is completely
full (matching runes, etc), and don't claim that misc items can be
unided (RIP decks).

--------------------------------------------------------------------------------
a6d7543ad0 | Nicholas Feinberg | 2023-06-02 07:40:28 -0700

Show sacks of spiders in the \ menu again

--------------------------------------------------------------------------------
6ccac15303 | Nicholas Feinberg | 2023-06-02 07:40:28 -0700

Fix: give spider sacks a colour in TAG_MAJOR_VERSION > 34

--------------------------------------------------------------------------------
f52811907a | Medrano83 | 2023-06-02 16:08:08 +0200

Android: Keep the screen on
The screen is off again. I hate that.

--------------------------------------------------------------------------------
ffbd37ae57 | Medrano83 | 2023-06-02 16:08:08 +0200

Fix a few typos in java code comments

--------------------------------------------------------------------------------
8713efdfa9 | Kyle Rawlins | 2023-06-02 09:29:27 -0400

build: workaround for an actions/checkout bug
a9a6e9e7af1 and ea43df2a32 removed a step that was probably intended to
work around https://github.com/actions/checkout/issues/290 and
https://github.com/actions/checkout/issues/882, but broke the CI build
if anyone used a lightweight tag (because these fetch lines actually
shallow the tag depth to 1). This commit attempts to thread the needle
by making this workaround conditional only to releases, where (if the
person doing the release has followed the steps correctly), there is
guaranteed to be an annotated tag at depth 1 in the tag history. (If I'm
parsing the checkout bugs correctly, they only trigger on a tag action
anyways.)

--------------------------------------------------------------------------------
aae73658be | Nicholas Feinberg | 2023-06-01 07:16:21 -0700

Fix: spectral multiplication (acrobat)
Make spectral quickblades hit twice, not four times.

--------------------------------------------------------------------------------
e789d4113a | Nikolai Lavsky | 2023-06-01 16:35:17 +0300

text: add a description for the Will+ status

--------------------------------------------------------------------------------
2ddbf375f0 | Kyle Rawlins | 2023-06-01 08:44:40 -0400

feat: show scale when zooming in local tiles
It's good to show explicit feedback to the user for this (previously
only debug builds got this). This might be better to show somewhere else
in the UI, but for now it's easiest to just do in MSGCH_PROMPT, and
seems harmless.

--------------------------------------------------------------------------------
60543735b6 | Medrano83 | 2023-06-01 08:33:52 -0400

Fix zoom out
Prevents the current scale to be much higher than the maximum zoom.
Otherwise zoom out stops working until a lower value is reached again.

--------------------------------------------------------------------------------
875ba10a1c | Nikolai Lavsky | 2023-06-01 15:22:08 +0300

fix: mark }sack as useless under no-allies conducts

--------------------------------------------------------------------------------
25add195a6 | Nicholas Feinberg | 2023-05-31 22:23:12 -0700

Simplify Plasma Beam (elliptic, acrobat)
To make it easier to use the spell's unique targeting and to avoid
power breakpoints, make Plasma Beam always have LOS_RADIUS range,
rather than having range which increases with power. As a small
compensation, reduce damage by 10%. Max power is now 2x1d120 (was
2d1d31).

--------------------------------------------------------------------------------
9a23063699 | Nicholas Feinberg | 2023-05-31 22:16:35 -0700

Give hand crossbows more brands/plusses (elliptic, acrobat)
Since they tend to appear quite late (in Vaults, mostly), after the
player is likely to have already found an 'endgame weapon' of some
other type, give hand crossbows a few extra plusses and/or a brand
to encourage using em. This logic matches demon weapons'.

--------------------------------------------------------------------------------
62937cac54 | Nicholas Feinberg | 2023-05-31 22:05:37 -0700

Increase condenser vane cloud gen at low power
Continuing on from ec820db30826e, place clouds in about 40% of
cells adjacent to monsters at zero evo skill, up from 20%.

--------------------------------------------------------------------------------
5314a8f5be | Nicholas Feinberg | 2023-05-31 22:05:11 -0700

Refactor condenser vane logic
Use a set instead of repeatedly scanning a vector.

--------------------------------------------------------------------------------
c79956ad2d | Nicholas Feinberg | 2023-05-31 21:55:43 -0700

Increase formless jellyfish damage
It is still my dear hope that there is something fun to be found
in the concept of the one-turn paralysis constrict monster. Let's
give it one more shot.

--------------------------------------------------------------------------------
ca434935e8 | Nicholas Feinberg | 2023-05-31 21:54:55 -0700

Reset demonic crawlers' XP multiplier
It was bafflingly low. They gave less XP than steelbarb worms,
despite being likely more threatening.

--------------------------------------------------------------------------------
720ed57a1c | Nicholas Feinberg | 2023-05-31 21:48:55 -0700

Bring back Sacks of Spiders
As an alternate to boxes of beasts. When these were removed, it was
correctly noted that they were a bit too similar to beast boxes and
phantom mirrors, and the latter were more interesting due to a lack
of spiderous variety. Well, spider reform has addressed the latter,
and item sets address the former. So let's do it again!

Reverts a6edddd4f1eafeb1ccc421d0d29b50fba57057a8.

--------------------------------------------------------------------------------
1e386dd289 | Nicholas Feinberg | 2023-05-30 21:46:49 -0700

Give hunters ?butts instead of ?immo
?immo is grand, but hard to use in dangerous situations, especially
early on. Give hunters a scroll of butterflies so that they can
make some space early on, in a way that feels a little different
from Hexslingers' Cause Fear.

--------------------------------------------------------------------------------
f10b62a2d6 | Nicholas Feinberg | 2023-05-30 17:25:47 -0700

Reduce summon cap on living spells (Ge0ff)
Six felt a bit silly. Four should be plenty to cause players trouble.

--------------------------------------------------------------------------------
c3bc235b0d | Nicholas Feinberg | 2023-05-30 17:25:47 -0700

Note quick blade multipliers in weapon descs (Ge0ff)

--------------------------------------------------------------------------------
0a804a9fd0 | Nicholas Feinberg | 2023-05-30 17:25:47 -0700

Codify shield penalty descriptions (Lici)

--------------------------------------------------------------------------------
42d8f58691 | Kyle Rawlins | 2023-05-29 11:31:26 -0400

fix: CI header build

--------------------------------------------------------------------------------
48faf8a104 | Kyle Rawlins | 2023-05-29 11:05:38 -0400

feat: separator escaping for certain rc options
This implements escaping separators for certain rc options, most
importantly force_more_message and message_colour. There is so much
demand for this that many standard rc files (including crawl itself, see
e.g. 7dd7712201) have assumed this is already implemented, but until
0.30, there were no error messages to indicate when this was going
wrong.

For many (but not all) list options, this commit will let `,` be escaped
via `\,`. This really only matters for options where arbitrary regexes
are used. For the two options mentioned above, this commit also
implements escaping `:` via `\:`. The behavior for force_more_message
where an invalid channel prefix causes a `:` split to be ignored is
retained. (These are implemented slightly more generally, via the
message_filter and colour_mapping objects, but I don't think the
escaping matters for any other cases.)

This is a bit of a hodgepodge because of various different
implementations of separators, so I have not tried to make the change
very general.  Because the `runrest...` options are implemented in lua,
it is unfortunately not practical to implement escaping even `,` without
a major rework. Also, it would be easy to add this for options that use
split_parse, but as far as I can tell none really need it.

--------------------------------------------------------------------------------
4708a659fe | Nicholas Feinberg | 2023-05-28 07:32:47 -0700

Fix: don't let dj disable all skills (try 3) (elliptic)
This seems much more right.

Reverts d968683117aad80e602f599cbc24466dbbb81caf.

--------------------------------------------------------------------------------
2adbd49c56 | Nicholas Feinberg | 2023-05-28 07:17:04 -0700

Fix an ignis wrath / formicid crash (elliptic)
Follow the logic of e.g. Dith putting players to sleep, Jiyva trying
to transform the player, etc, by letting Ignis trying to shaft even
un-shaftable formicids. It's OK for players to feel cool and smug.

--------------------------------------------------------------------------------
7a2ff0754d | Nicholas Feinberg | 2023-05-28 07:12:41 -0700

Revert "Unify wereblood limits with subblood (12642, Yermak)"
This breaks too many forms for now. We'll revisit this after
oncoming tmut changes, hopefully.

This reverts commit f37ddd98f5ceeb110e8458d3e2aabab7e3ef3a31.

--------------------------------------------------------------------------------
df0485fa37 | Nicholas Feinberg | 2023-05-27 08:40:07 -0700

Fix: turn mud into gold (acrobat)
Un-unmake gozag's gold.

--------------------------------------------------------------------------------
0008aa4bac | Nicholas Feinberg | 2023-05-27 08:17:28 -0700

ayy eyy ohh

--------------------------------------------------------------------------------
d968683117 | Nicholas Feinberg | 2023-05-27 08:07:47 -0700

Fix: don't let dj disable all skills (again) (elliptic)
I think there's something broken here that I'm overlooking. This
fix seems wrong.

--------------------------------------------------------------------------------
cf6b8b5405 | Nicholas Feinberg | 2023-05-27 07:48:27 -0700

Fix: give dj a less great experience (elliptic)
We could be a little more fine-grained here, but it's not worth it.

--------------------------------------------------------------------------------
df935468f2 | Nicholas Feinberg | 2023-05-26 15:54:31 -0700

Remove no monsters from Lair
It's a take-a-hack give-a-hack kind of day. (Remove historical
compensation for chaff removal from Lair.)

--------------------------------------------------------------------------------
ae3621a16d | Nicholas Feinberg | 2023-05-26 15:32:32 -0700

Remove a 'not enough monsters' veto
03497ec52293cca692bb6c116ea5ce6c5bd8c4ef fixed the original inspiration
for this. It's still in principle possible to have a lair floor with
no monsters, but very unlikely. We'll fix that later.

--------------------------------------------------------------------------------
a1596ed5d5 | Nicholas Feinberg | 2023-05-26 15:18:53 -0700

Fix multischool spell success/power (purplemustard)
Broken by 39cede6f937497c.

--------------------------------------------------------------------------------
c0b45f0da6 | Nicholas Feinberg | 2023-05-26 14:23:30 -0700

Give fo innate shaft resistance (nicolae)
Feels thematic and not unfair - fo have fewer ways to deal with a
shaft.

This should probably be documented somewhere, maybe.

--------------------------------------------------------------------------------
2c42856c84 | Nicholas Feinberg | 2023-05-26 14:23:30 -0700

Make jellyfish less squishy
They lust for kills!

--------------------------------------------------------------------------------
918e1df75e | Kyle Rawlins | 2023-05-26 13:53:07 -0400

fix: s/rest/explore in a zot clock message

--------------------------------------------------------------------------------
33a4ccc0cb | Nicholas Feinberg | 2023-05-25 22:37:11 -0700

Tweak pf_eden (elliptic)
A dancing greatsword and a cherub is probably too mean for late D.
Move the vault to Elf, where dancing weapons fit right in.

Replace the potions with a randbook of summon mana viper + Discord,
matching the original apple theme.

--------------------------------------------------------------------------------
f37ddd98f5 | Nicholas Feinberg | 2023-05-25 21:44:30 -0700

Unify wereblood limits with subblood (12642, Yermak)
Blocks gargoyle from casting wereblood, since they have no blood.
Matches Sublimation of Blood. Looks like an oversight in 4d17e5cfac9.

--------------------------------------------------------------------------------
5d822261ab | patrick | 2023-05-25 22:39:26 -0400

Add a shop to shops.des
No shop with custom inventory this time, just a shop with a unique
method of theft deterrence. Downweighted for being somewhat gimmicky.

--------------------------------------------------------------------------------
b2cf6a9952 | patrick | 2023-05-25 22:33:55 -0400

Add a small vault to shoals.des for the King fans out there
the man in black fled across the desert and the vaultslinger followed

In other news, did you know you can just stick doors anywhere?

--------------------------------------------------------------------------------
c45a9370a1 | patrick | 2023-05-25 22:26:04 -0400

Add two flavor vaults to mini_features.des.
Well, three, if you count the subvault.

--------------------------------------------------------------------------------
28b06b89b3 | patrick | 2023-05-25 22:18:36 -0400

Ensmallen the inventory at the Tiny Tomes shop
It was pointed out on Discord that with 20 books, it can take an
annoyingly long time to look through all of them to examine their
contents. Accordingly, dial it down a bit by making it symmetric
with Tremendous Tomes, with each shop having 8 books.
(I have other ideas for shops with the maximum number of items,
anyway. (watch this space)))

--------------------------------------------------------------------------------
196d5507e3 | Nicholas Feinberg | 2023-05-25 09:50:44 -0700

Fix weapon ego info leak (eb)
Oops!

--------------------------------------------------------------------------------
6fa058ef04 | Nicholas Feinberg | 2023-05-24 22:26:24 -0700

Tweak onia_arrival_mini_maze[_b]
Don't intentionally hide 'treasure' (stones) behind plants. Not
riveting gameplay.

--------------------------------------------------------------------------------
2e3c275290 | sandertyu | 2023-05-24 22:12:24 -0700

add strange machine to default auto exclusions

--------------------------------------------------------------------------------
bfe2539a1d | Nicholas Feinberg | 2023-05-24 22:11:20 -0700

Fix meteoran rest/explore warnings (FizzleBang)
Don't warn when the zot clock is inactive.

--------------------------------------------------------------------------------
154427ae6a | elliptic | 2023-05-24 22:12:54 -0400

Don't kill players from 300+ health for the crime of opening a door in Geh.
Removes nicolae_geh_backdraft - the vault existed only to kill players who
didn't realize how much damage they would take in one turn if they opened
a door. I think putting the only downstairs on a level inside a runed door
vault is probably questionable in general as well, but mainly this just
isn't a good way to try to kill players.

--------------------------------------------------------------------------------
164a46f36d | Nicholas Feinberg | 2023-05-24 18:29:02 -0700

Give toadstools a new lease on life
Remove some code from back when toadstools automatically sprouted
up from corpses over time. The good old days...

--------------------------------------------------------------------------------
0e100b6ebc | Nicholas Feinberg | 2023-05-24 18:16:02 -0700

Re-require LOS for indirect constriction (gammafunk)
BVCing or roots-ing a monster and walking out of LOS isn't very
engaging.

--------------------------------------------------------------------------------
637a80eef8 | Nicholas Feinberg | 2023-05-24 15:33:17 -0700

Fix: reverse the anti-life equation (steves)
Oops!

--------------------------------------------------------------------------------
38777b0aa0 | Nicholas Feinberg | 2023-05-24 14:54:53 -0700

Maybe fix a phial crash

--------------------------------------------------------------------------------
ada98394da | Nicholas Feinberg | 2023-05-24 13:52:05 -0700

Reduce BVC base damage
Borgnjor's Vile Clutch was recently buffed by 57a6a0d306af, which let
it work on unseen and out-of-LOS enemies. It was already considered a
strong spell before that change, so focus it more on the distinctive part
of the spell (immobilizing enemies and reducing their EV) by reducing
the damage component. At 50 power (25% of max), the spell goes from
2d6 damage to 2d4.5; at 150 power, it goes from 2d11 to 2d9.5.

--------------------------------------------------------------------------------
26888eae30 | Nicholas Feinberg | 2023-05-24 13:52:00 -0700

New spell: Leda's Unmaking
Earth has three spells that are very similar: Stone Arrow, Iron Shot,
and Lehudib's Crystal Spear. They're single-target damage projectiles,
with power, range, and accuracy differences making up the only
distinctions. (There's Sandblast, too.) This feels a bit repetitive,
and Iron Shot + LCS especially have a hard time feeling distinct.

As a small differentiator, replace Iron Shot with Leda's Unmaking.
The latter is does a little less damage than Iron Shot, but causes
slain victims to turn to mud, slowing creatures' movements and impairing
their attacks ala Leda's Liquefication. This should hopefully make
Unmaking feel a little different from the other two in some situations.

Iron Shot remains as a monster spell for a few iron-themed monsters,
plus Boris, because he's old-fashioned that way.

This also incidentally increases the chance of Glaciate creating a
block of ice from 60% to 100%, to reduce complexity.

--------------------------------------------------------------------------------
ef9dfdaa1c | Nicholas Feinberg | 2023-05-24 10:08:58 -0700

Revert "Show a marker for departing monsters"
Re-using the invisible monster indicator was indeed too confusing. Will
take another shot at this later.

This reverts commit b28f3135ce239f4b5c1029938f69f1bf63154b65.

--------------------------------------------------------------------------------
b28f3135ce | Nicholas Feinberg | 2023-05-23 23:25:01 -0700

Show a marker for departing monsters
When a monster bails, show where it used to be so that the player
can figure out what's going on. Currently re-using the invisible
monster indicator - hopefully this isn't too confusing.

--------------------------------------------------------------------------------
bff143cfd1 | Nicholas Feinberg | 2023-05-23 22:39:56 -0700

Fix two more comment typos

--------------------------------------------------------------------------------
6aae568935 | Nicholas Feinberg | 2023-05-23 22:25:05 -0700

Turn lies into allies

--------------------------------------------------------------------------------
39008fba12 | Nicholas Feinberg | 2023-05-23 22:02:00 -0700

Warn before exploring or resting as Meteoran
Too easy to accidentally waste a hundred precious turns resting elsewise.
(I have done this many times.)

We can add some option for this if people really want.

--------------------------------------------------------------------------------
966c9bc6f3 | Nicholas Feinberg | 2023-05-23 17:07:15 -0700

Shift orcbows around
To reduce the threat of basic orcs and make getting an orcbow feel
a little more 'earned', remove the 1/18 chance of basic orcs getting
an orcbow and add a 50/50 chance of centaurs & centaur warriors
getting orcbows instead of shortbows. Overall rate of pre-lair orcbow
drops is unchanged.

--------------------------------------------------------------------------------
9ec6622867 | Nicholas Feinberg | 2023-05-23 08:05:56 -0700

Keep adjusting ranged weapon frequency
Give some arbalests back to orcs (to make arbalests reasonably
common in Orc), and trade out tengu warriors' longbows for arbalests.

--------------------------------------------------------------------------------
a5ff34e5da | Kate | 2023-05-23 16:02:24 +0100

Fix some missing variables in monster speech
Replace various possessive pronouns with the @possessive@ variable.

--------------------------------------------------------------------------------
9569ec16df | Nicholas Feinberg | 2023-05-23 07:51:08 -0700

Downgrade centaur warrior weapons
Make longbows a little rarer in D, to make it more likely that players
find the lower-tier arbalest first.

I've got my eye on you, Nessos.

--------------------------------------------------------------------------------
90744edd48 | Nicholas Feinberg | 2023-05-23 07:26:52 -0700

Fix (maybe): dj with maxed skills (reasonance)
Djinn with a maxed spellcasting skill shouldn't keep training it,
and they shouldn't be able to leave the skill training screen without
selecting a skill if any skill is maxed.

--------------------------------------------------------------------------------
6fe912e8c5 | Nicholas Feinberg | 2023-05-22 22:47:17 -0700

Fix a djinn !xp crash (reasonance)
If we didn't have anything set to train, the !xp preview would get
trapped in an infinite loop.

--------------------------------------------------------------------------------
1914d2863d | Quinten Konyn | 2023-05-22 17:47:15 -0700

Don't gender satyr spell messages
Continuing the work of this commit: 
https://github.com/crawl/crawl/commit/cbcab8c68d17d1623b564816eca41d8d4ce8847d
--------------------------------------------------------------------------------
838c19eb66 | Nicholas Feinberg | 2023-05-22 13:44:25 -0700

Fix missing newline (Ge0ff)

--------------------------------------------------------------------------------
aba2717c7e | Nicholas Feinberg | 2023-05-22 12:38:57 -0700

Add placeholder orcbow tiles
?

--------------------------------------------------------------------------------
be637cbdd6 | Nicholas Feinberg | 2023-05-22 11:38:11 -0700

Fix broken artefact book names (#3144)
Broken in 5f0c07693536 (#3138).

--------------------------------------------------------------------------------
19ca8be239 | Nicholas Feinberg | 2023-05-22 11:32:55 -0700

Fix alphashops for enlightenment (Goratrix)

--------------------------------------------------------------------------------
44bd3a6a1f | Nicholas Feinberg | 2023-05-22 11:16:14 -0700

Add a potion of enlightenment quote (DracheReborn)

--------------------------------------------------------------------------------
818c9244c5 | Kyle Rawlins | 2023-05-22 12:38:22 -0400

fix: quiet some gcc warnings

--------------------------------------------------------------------------------
6fc9643786 | Kyle Rawlins | 2023-05-22 12:35:42 -0400

fix: `uint` => `unsigned int`

--------------------------------------------------------------------------------
e618eeaa78 | Nicholas Feinberg | 2023-05-21 22:44:13 -0700

Add new Dj titles
Now that they can train individual magic skills. The Spellcasting one
is a little iffy, but I wanted to put wishes somewhere.

Credit ragingrage for Marid. That one's a D&Dism, not a 'real myth'
one, but it's fine.

--------------------------------------------------------------------------------
e8a828585e | Nicholas Feinberg | 2023-05-21 22:44:13 -0700

Fix quick blade time taken (Lightli)
Oops!

--------------------------------------------------------------------------------
c3f979dc1f | gammafunk | 2023-05-21 20:41:37 -0500

task: Remove the 0.30 trunk tournament reminder
This reverts commit d14b0f4ee22f9d1b00a3534f8e9ca280991fdedc.

--------------------------------------------------------------------------------
523567ee2f | Nicholas Feinberg | 2023-05-21 15:33:43 -0700

Increase orcbow base damage (elliptic)
Try to further distinguish it from shortbows. We'll see if this feels
too similar to arbalests, or whether the armour-piercing quality of
the latter's higher base damage has a large impact in practice.

--------------------------------------------------------------------------------
0ea7606829 | Nicholas Feinberg | 2023-05-21 15:02:58 -0700

New weapon: orcbow (elliptic)
The gap between starting weapons (slings/shortbows) and the next
level up (arbalests) was rather large. Since arbalests were fairly
uncommon in the Dungeon, the experience of ranged characters could
feel quite 'swingy' - an early arbalest find made you very strong,
a late one left you very weak. Some swinginess is fine, but this
felt excessive.

To address this, add a new 'orcbow' weapon, a bit stronger than a
shortbow. (If less accurate). Orcs now carry this weapon instead of
arbalests, including basic orcs (which now have a 1/18 chance of
spawning with one).

On average, there's about three orcbows appearing in D:1-11 (vs
about one arbalest before this commit). Arbalests are now less common
until later, since orcs lost theirs. (They might be a little *too*
uncommon now - I may take a second pass at shifting arbalest and
longbow distribution further.)

To further differentiate weapons, shortbows drop in damage and delay,
longbows increase in damage and delay, and hand crossbows once again
go back up one base damage to compete.

--------------------------------------------------------------------------------
4f7fe9c19c | Nicholas Feinberg | 2023-05-21 15:01:12 -0700

Move hexslinger str into dex
Make em more clearly focused on slinging (and hexing), rather than
hedging with a little str. (This has almost no mechanical impact.)

--------------------------------------------------------------------------------
62046a28e0 | Nicholas Feinberg | 2023-05-21 14:49:05 -0700

Make dreamshard cure poison on shatter (elliptic)
Probably feels pretty bad otherwise. This is by far the most common
'ongoing damage' effect - sticky flame, clouds, etc are rarer, and
also feel more 'external'.

--------------------------------------------------------------------------------
39cede6f93 | Nicholas Feinberg | 2023-05-21 14:48:56 -0700

Make Djinn use all skills (elliptic)
Because Djinn don't choose what spells they get, they need to have
unified spell school training. That ensures that, if they choose to
train magic, they can use whichever spells they get.

I initially implemented this by making Djinn *only* use Spellcasting
for magic. This was simple, which is good! But it had several issues:

- It prevented use of pain weapons & elemental staff melee, which
  was a recurring source of confusion for players.
- The low apt for Spellcasting felt bad, even though Djinn were still
  very strong.
- It meant that many types of items, like manuals of Fire Magic, were
  useless.
- It made Ashenzari Introspection curses ludicrously dominant.

Instead, let's make Djinn able to use all magic skills, as usual.
Furthermore, let's give them a ludicrous +11 apt in all spell schools
and Spellcasting, enough to let them train every one at once at the
same rate the old Spellcasting apt provided. However! The player can
only enable *all* magic skills or *none* - magic skills can't be
trained separately.

In practice, this is mostly equivalent to the old system, with the
exception of fixing the problems listed above and a few other caveats.
(For example, Ru Arcana sacrifices now work and 'waste' XP, like
sacrificing skills on a gnoll.) I'm hopeful it should feel much better.
(It's a slight buff to dj spell starts, due to how skills round.)

This needs playtesting both for bugs and to make sure the starting
skill setup works right. I'm quite scared. Fingers crossed...

--------------------------------------------------------------------------------
eec4556ff0 | Nicholas Feinberg | 2023-05-21 14:36:21 -0700

Potion of flight -> enlightenment
The potion of flight has long been somewhat bland - it's often
worth an inventory slot, but it's never exciting to use. Meanwhile,
we've long had requests for a potion which granted Will, like
resistance's damage effects. What if we solved both problems at
once, and added a new pun at the same time?

--------------------------------------------------------------------------------
3db0c59d1d | Nicholas Feinberg | 2023-05-21 14:31:38 -0700

New monster: formless jellyfish
Blink close, constrict, and sting to inflict 1-turn para, ala air elementals.
Should be a little funny.

Rare high-tier Shoals enemy, occasional Vaults enemy (replacing very
ugly things, which get plenty of appearances elsewhere), and Slime enemy
(in bands). Probably should be in a few vaults too, eg Slime special rooms.

--------------------------------------------------------------------------------
be6b1f9485 | Nicholas Feinberg | 2023-05-21 14:31:31 -0700

Make Lucy's wrath protection trigger on Gozag/Ely
Specifically, on Gozag's incite effect and on Ely's enemy lifesaving.
Lucy wouldn't trigger at all otherwise, since those gods don't have
'active' wrath.

Don't trigger on Gozag potion drinking blocking - feels abusable.

--------------------------------------------------------------------------------
57a6a0d306 | Nicholas Feinberg | 2023-05-21 14:31:23 -0700

Allow BVC/roots to work on unseen foes
Simplify. This was not intended for /roots, and it's not needed for
BVC. We can nerf BVC again in other ways if need be.

--------------------------------------------------------------------------------
23a37c35b7 | Nicholas Feinberg | 2023-05-21 14:31:15 -0700

Rework the dreamshard necklace
Getting an extra life in a roguelike is an insanely, wildly strong
effect. This made the dreamshard necklace a ludicrously strong item,
but not one that made the game feel more exciting. Instead, one's
character felt a bit weaker most of the time.

Let's try to fix both sides of this. To make the amulet a bit more
fun to wear, give it Acrobat - good for running away :) To make it
less preposterously strong (and thus possible that a really good
unrand or randart amulet could be preferable), make it only restore
the player to 1 HP when it triggers (rather than 50-100% of MHP),
but guarantee that they won't die until their next turn. To simplify,
make it only trigger when the player's HP drops to 0, rather than
sometimes triggering on very big hits, and remove *Drain.

Finally, make it stick around as a normal amulet of the acrobat after
it triggers, for running away synergy.

Let's try this out.

--------------------------------------------------------------------------------
79a9896557 | Nicholas Feinberg | 2023-05-21 14:31:05 -0700

Nerf mummies (revert consumable generation)
It seems like the small increase in potions, scrolls, etc added ~1yr
ago was neither helpful nor needed, and it did result in folks
feeling like they had more stuff than they knew what to do with. Let's
go back to the old levels.

This reverts commit ecccbbdb8416db653549fe9842ad7793bbed5843.

--------------------------------------------------------------------------------
1c57d4af30 | Nicholas Feinberg | 2023-05-21 14:30:56 -0700

Remove "faith handle warning under Uskayaw
There's no real risk to unequipping an amulet of faith under Usk,
so no need to prompt on equip/unequip.

--------------------------------------------------------------------------------
15d889b1e4 | Nicholas Feinberg | 2023-05-21 14:30:47 -0700

Don't let frosthearts freeze trees
Trees aren't walls. (It felt weird and surprising to players.)

--------------------------------------------------------------------------------
b47e89e976 | Nicholas Feinberg | 2023-05-21 14:30:40 -0700

Allow cancelling/dispelling -Blink
It's a very magical effect, so it should be cancellable.

--------------------------------------------------------------------------------
5541ac4cad | Nicholas Feinberg | 2023-05-21 14:30:30 -0700

Make summons inherit kmap
To make weird causes of death easier to track down with eg ikiller.

--------------------------------------------------------------------------------
2af904968c | Nicholas Feinberg | 2023-05-21 14:30:23 -0700

Note MHP loss on zotting
Life is pain ;_;

--------------------------------------------------------------------------------
d02987dbc6 | Nicholas Feinberg | 2023-05-21 14:30:07 -0700

Add Lodul to the Vaults ambush entry
He seems thematically appropriate and a reasonable difficulty level.
(He does not come with his band - the rest of the ambush is his band!)

--------------------------------------------------------------------------------
59b24d9a45 | Nicholas Feinberg | 2023-05-21 14:29:55 -0700

Rework quick blades (acrobat)
Quick blades are really cool. They're very fast! However, they feel
less fun to use than other weapons, since each button input corresponds
to only a small amount of damage. Recent changes to shield delay have
also really hurt them, since going from 0.3 to even 0.4 delay is a massive
decrease in damage over time.

To address both points, increase quick blades to base delay 1.2 / mindelay 0.5,
but make them launch two attacks per swing, like Gyre & Gimble. G&G, in turn,
goes to four attacks per swing. This works with aux attacks, Manifold Assault,
Xom's Cleave status, etc.

Nicely, this actually makes G&G much less hacky :) Hopefully!

Acrobat thought I should nerf G&G, but I'm holding off. Let's see how this 
plays.

--------------------------------------------------------------------------------
5f0c076935 | Nicholas Feinberg | 2023-05-20 14:47:03 -0700

Semi-fix a weird Hep crash (#3138, jturbzz)
I don't understand what would cause a Hep hexer ancestor to drop
its quickblade on the floor and also to somehow turn it into a
mangled randart, but that seems to have happened. Ew.

As the commit notes, see also https://crawl.develz.org/mantis/view.php?id=11756 
.

--------------------------------------------------------------------------------
49d609d0da | Kyle Rawlins | 2023-05-19 12:18:14 -0400

fix: add a missing cast in zoom code
Resolves #3130

--------------------------------------------------------------------------------
46d131a48f | Medrano83 | 2023-05-17 23:37:34 +0200

Fix: Reorder parameters in dungeon_terrain_changed
This function is also used to generate some branches. New parameters
should be placed at the end to minimize impact.

--------------------------------------------------------------------------------
1c3f6eb1f9 | wheals | 2023-05-17 20:29:24 +0300

fix: info leak in pog targeter (nesea)

--------------------------------------------------------------------------------
18c568b52f | wheals | 2023-05-17 18:01:41 +0300

fix: potential crash in ctrl-x menu

--------------------------------------------------------------------------------
1d5085d191 | Nicholas Feinberg | 2023-05-16 22:26:40 -0700

Tweak 7-league description (SeerSkye)
Put the functional info re: waking enemies with rampage(inf) in
the ego description, not the flavor zone.

--------------------------------------------------------------------------------
17ee01c9f4 | Nicholas Feinberg | 2023-05-16 14:57:56 -0700

Don't show unid'd charms wands useless for Oka
Properly pass item ID status through to cannot_evoke_item_reason().

--------------------------------------------------------------------------------
1548c4f2a5 | Nicholas Feinberg | 2023-05-15 22:10:23 -0700

Re-fix wizlab wizard names (elliptic)
9651f06ebd3838 caused hellbinders, etc to be incorrectly emitted
as uniq milestones.

Re-fixes #2738.

--------------------------------------------------------------------------------
98a128e1d9 | Neil Moore | 2023-05-13 22:07:50 -0400

Be often be more grammatical
[skip ci]

--------------------------------------------------------------------------------
603a1083af | Nicholas Feinberg | 2023-05-13 12:16:22 -0700

Revert "Fix the description of walls with unseen changes"
Tentatively seems to be causing crashes.

This reverts commit 571cc3f046e3ab839dc7d58be295795d4996aac6.

--------------------------------------------------------------------------------
571cc3f046 | Medrano83 | 2023-05-13 12:47:29 +0200

Fix the description of walls with unseen changes
If a wall is changed but we haven't seen the new state yet, the
description shows the tile for the base wall without flavour.

--------------------------------------------------------------------------------
15ee5a5005 | Medrano83 | 2023-05-13 12:47:29 +0200

Save flavour in terrain-change markers
Temporary terrain changes that replace walls (summon forest spell) are
not being properly reverted on wizlabs and some vaults with custom
walls. This change solves the problem by saving the old feature flavour
in the terrain-change markers.

Closes #2052

--------------------------------------------------------------------------------
22baebbf0b | Medrano83 | 2023-05-13 12:40:06 +0200

Add CI workflow for source packages
It is only triggered on releases.

--------------------------------------------------------------------------------
83e4e5f1f9 | Medrano83 | 2023-05-13 12:40:06 +0200

Debian release rework
Instead of creating a new release to include the Debian packages, the
files will be packed and added to the standard release as a single file.

--------------------------------------------------------------------------------
9056a99527 | Medrano83 | 2023-05-13 12:40:06 +0200

Allow any version format in debian packages
We want to execute the workflow in beta releases.

--------------------------------------------------------------------------------
8d20d54959 | Aliscans | 2023-05-13 12:37:54 +0200

FIX: Put both DescMenu classes in unnamed namespaces.
This resolves any confusion between them, and fixes #2824.

--------------------------------------------------------------------------------
cc5827d5d3 | Medrano83 | 2023-05-13 12:35:30 +0200

Fix another crash related to console resizing
The game may crash if the console window shrinks while a command is
being repeated. Also stop the UI from freezing in that situation.

--------------------------------------------------------------------------------
6e9e4f2b4c | Medrano83 | 2023-05-13 12:35:30 +0200

Fix the arena crashing on console resize

--------------------------------------------------------------------------------
18ee0db977 | Medrano83 | 2023-05-13 12:35:30 +0200

Fix wrong background colour on console resize
When the console size changes, some parts of the background are filled
using the default terminal (not game) colours. An explicit screen
clearing solves this problem.

--------------------------------------------------------------------------------
09a698029f | Medrano83 | 2023-05-13 12:35:30 +0200

Fix crashes when the terminal is too small
If the game has already started, changes in the terminal size that make
it unusable are gracefully handled. This is an attempt to follow the
same behaviour in other cases.

Closes #2311

--------------------------------------------------------------------------------
7e2ab59ffe | Medrano83 | 2023-05-13 12:35:30 +0200

Reset the cursor position before clearing the screen after a resize
This change stops the game from crashing when resizing the terminal.

Closes #1497
Closes #3045

--------------------------------------------------------------------------------
dc203af985 | Medrano83 | 2023-05-13 12:35:30 +0200

Fix the terminal mouse being disabled after a resize

--------------------------------------------------------------------------------
cbde74481b | gammafunk | 2023-05-12 23:37:28 -0500

doc: Correct a comment
Despite what the current comments claim, clua's monster info
:has_ranged_attack() method does in fact check for various kinds of
ranged attacks that includes spells and wands.

--------------------------------------------------------------------------------
282de0ab27 | gammafunk | 2023-05-12 23:37:28 -0500

feat: A lua function to test known map boundaries
This adds the clua function `view.in_known_map_bounds(x, y)`, which
returns true when the given coordinates are in the bounding box of map
areas known to the player. This is necessary to call functions like
`travel.is_excluded()` without generating an error, since this and
similar functions make such a check. Callers of these functions could
just use `pcall()` to trap the error, but it's good to have parity
between information the UI provides and what clua can determine.

This is a minimal feature addition that I've tested and will be pushing
to stable. I'm making it now for the purpose of running qw during
tournament. It turns the formerly static `_in_map_bounds()` to
the global `in_known_map_bounds()`, but the behaviour is identical. I've
also documented the relevant crawl-side C++ functions.

--------------------------------------------------------------------------------
5d4078a31e | gammafunk | 2023-05-12 23:37:28 -0500

feat: Better flight reasoning for lua functions
For the clua functions travel.feature_traversable() and
view.is_safe_square, add an assume_flight boolean argument that has
these assume the player has permanent flight. It's important to be able
to reason about traversability and safety when considering using
temporary flight or swapping to a permanent flight item. It wouldn't be
possible to do use these functions to reason about flight without an
argument like this, since there are multiple reasons a square can fail
to be traversable or safe.

These functions could instead return a table indicating all the reasons
why a square fails to be safe or traversable, but that would break
current scripts, so we'll do this for now. The comments for these
functions have been updated to more accurately describe what they test.

This is a minimal feature that I've tested and will be pushing to
stable. I'm making it now for the purpose of running qw during
tournament. It adds a new argument to `feat_is_traversable_now()` on the
C++ side, but with a default value that gives identical behaviour to the
old function.

--------------------------------------------------------------------------------
13bd767e95 | Nicholas Feinberg | 2023-05-12 14:36:26 -0700

Fix: display 'ready to howl' properly (elliptic)
We hid it if the howl key was set to false. It should only be hidden
when that key is true.

--------------------------------------------------------------------------------
4c684d5d01 | Nicholas Feinberg | 2023-05-12 14:30:51 -0700

Fix: finish removing the book of Maledictions (Woody)
Oversight in be57942821a.

--------------------------------------------------------------------------------
ea43df2a32 | advil | 2023-05-08 09:35:17 -0400

fix: Fully remove a broken CI line
a9a6e9e7af1e only removed one but this was duplicated many times.

--------------------------------------------------------------------------------
a9a6e9e7af | advil | 2023-05-08 09:20:26 -0400

fix: remove a redundant/broken CI step
Our current invocation of actions/checkout fetches the entire repository
history and the tags, and then this fetch line exists to apparently
shorten the history to depth 1. This isn't normally a big deal, but if
the most recent tag on a branch is non-annotated, this breaks git
describe on that branch. Current trunk is like this because of the
debian tag.

It's possible there's something I'm still not appreciating about what
this stop was intended to accomplish? Both changes to fetch depth were
added in a single commit in 449611fb78e74826.

--------------------------------------------------------------------------------
6d2539766c | Nicholas Feinberg | 2023-05-07 15:27:23 -0700

Prevent more duplicate artps
Don't allow boots of rampaging of rampaging or scarves of invisiblity
of invisibility.

--------------------------------------------------------------------------------
1fe5e1216f | Nicholas Feinberg | 2023-05-07 15:01:11 -0700

Don't count firewood as kills (CarefulOdds)
Clutters up logs and messes with the 'pacific' category. We're more
of an Atlantic gang here anyway.

Implemented in the display side rather than the recording side so
that I don't have to bother with save compat.

--------------------------------------------------------------------------------
c80a10f4b6 | gammafunk | 2023-05-06 22:22:40 -0500

doc: Add a missing debian changelog entry
for 0.29.1, which was added to the 0.29 branch but not to trunk.

--------------------------------------------------------------------------------
fcab9622e5 | gammafunk | 2023-05-06 22:22:40 -0500

doc: Update the debian changelog for 0.30
(cherry picked from commit 0735c779e89de14d041d983ef53a20bf03093de3)

--------------------------------------------------------------------------------
5ef74148a8 | advil | 2023-05-06 22:22:40 -0500

docs: various changelog tweaks
(cherry picked from commit a01eaba1cd2d81f8018eaf2b920752966742fc37)

--------------------------------------------------------------------------------
ce023dd156 | advil | 2023-05-06 22:22:39 -0500

docs: sync changelogs
0.29.1 was missing from the trunk version

(cherry picked from commit 561828ffede38fdaa81fd45f5f7cf5613b545356)

--------------------------------------------------------------------------------
7b2ceec048 | Nicholas Feinberg | 2023-05-06 15:52:19 -0700

Tweak Sandblast description (Abyss, elliptic)
'Half again' confused folks; try 'one-and-a-half-times'.

--------------------------------------------------------------------------------
12c4e5fa89 | Nicholas Feinberg | 2023-05-06 15:52:19 -0700

Simplify misc evokers' descriptions
Now that they should each be unique, don't refer to 'others of their kind.'
(This confused someone who thought it referred to other misc evokers!)

Also, don't mention charges for 1-charge items (seems redundant), but do
mention it for Xom chesspieces.

--------------------------------------------------------------------------------
d14b0f4ee2 | Kyle Rawlins | 2023-05-05 16:06:30 -0400

task: 0.30 trunk tournament reminder

--------------------------------------------------------------------------------
51783674b7 | patrick | 2023-05-04 20:36:23 -0400

Change the changelog

--------------------------------------------------------------------------------
3637d85276 | Nicholas Feinberg | 2023-05-04 16:58:29 -0700

Finalish changelog update for 0.30

--------------------------------------------------------------------------------
84e6b3452c | Kyle Rawlins | 2023-05-04 11:45:10 -0400

fix: don't disable autoclear for rc errors
Previously, an rc with many errors would force you to view each one,
because error messages reset autoclear. This behavior is really intended
for cases where an error comes in a batch with many other messages,
rather than a lot of errors at once; rc parsing generally doesn't emit
many messages except errors. So, use a different autoclear behavior for
this special case. The implementation is very brute-force with yet
another crawl state var, for simplicity near a release. (A better idea
might be to enhance the RAII message controls to allow controlling this
behavior directly.)

This probably wasn't a big deal previously but recent improvements in rc
error messages mean that some popular rc files (hda, at least) produce
*many* errors if used as-is in 0.30 (the bugs aren't new, but the error
messages for them are).

--------------------------------------------------------------------------------
efa6de2278 | Nicholas Feinberg | 2023-05-02 21:59:25 -0700

Show 2x for monster plasma beam
2x3d19 or w/e.

--------------------------------------------------------------------------------
c49c5fa273 | Nicholas Feinberg | 2023-05-02 21:59:00 -0700

Fix: monster plasma beam damage (dilly)
Use the monster zap damage, not the much higher player values.

--------------------------------------------------------------------------------
928a59620c | Nicholas Feinberg | 2023-05-02 21:50:20 -0700

Display plasma beam damage in monster

--------------------------------------------------------------------------------
4198be8af4 | Nicholas Feinberg | 2023-04-29 15:39:06 -0700

Replace Vhi's dust cloud with electricity
Now that we have decorative electric clouds, let's use em!

--------------------------------------------------------------------------------
51fda8cc5f | Nicholas Feinberg | 2023-04-29 15:23:08 -0700

Make Stuck block self-shafting (acrobat)
For consistency with pre-existing shaft traps, harpoon shot, etc.

Resolves #2839.

--------------------------------------------------------------------------------
7dff98ebb8 | Nicholas Feinberg | 2023-04-29 15:11:49 -0700

Correct Disjunction description (Lici)
Don't claim it causes contam, since it hasn't since fb90bdcb574a36d
(Nov 2021).

--------------------------------------------------------------------------------
2f52df8dfa | Nicholas Feinberg | 2023-04-29 15:05:45 -0700

Turn off the zombie incinerator (acrobat)
Recall has been broken for salamander/swimming zombies and
lava/deep water since db45db7b37d (April 2023). Ten years was probably
long enough to leave that bug around.

Resolves #2866.

--------------------------------------------------------------------------------
c985221192 | Nicholas Feinberg | 2023-04-29 15:00:05 -0700

Dedent

--------------------------------------------------------------------------------
cdfb0321a8 | Nicholas Feinberg | 2023-04-29 14:48:17 -0700

Slightly clarify Vhi's failure messages (Ge0ff)
It's very confusing what currently happens if you try to charge at
e.g. a thorn hunter behind briars. The issue here is that you *should*
be getting the message `The briar patch is immovably fixed there.`,
since stationary creatures (like briar patches) can't be teleported
or blinked.

You *can* get that message if there is a valid charge target *somewhere*,
but if there aren't *any* valid charge targets, `electric_charge_possible`
returns false and so `spell_uselessness_reason` just returns `you can't
see anything to charge at.`

This commit plumbs slightly more info through, but it still doesn't solve
the original info. Hopefully someone will figure out something better at
some point.

Closes #3007.

--------------------------------------------------------------------------------
92c415aa16 | Nicholas Feinberg | 2023-04-29 14:23:15 -0700

Let executioners chop heads (bobross420-1)
Some lore is simply too important to ignore. This also affects a
hypothetical disarmed Ignacio.

Resolves #3094.

--------------------------------------------------------------------------------
20724dfda1 | Nicholas Feinberg | 2023-04-29 14:13:24 -0700

Fix abyss_greek_temple issues (damerell)
Place Ru, and remove antique logic for disabling Wu in stable.

Reverts 2e29d97aba9aef597722005b08d2148bdfdfa7be.

Closes #3103

--------------------------------------------------------------------------------
73dabc6067 | Nicholas Feinberg | 2023-04-29 13:57:31 -0700

Fix trailing comma for UI JSON (tonyspumoni)
json_write_comma() is intended to be called immediately *before*
writing another object. If there's already a comma or opening brace
or similar as the previous character, then json_write_comma is a no-op.
This nicely (if somewhat confusingly) solves the issue of writing
commas before all but the last element of a list.

Closes #3078.

--------------------------------------------------------------------------------
7e8df60e79 | Michael Del Monte | 2023-04-29 13:38:07 -0700

Makes _safe_move_player also clear the command buffer.
Without doing this you get silly and possibly dangerous results
if the command buffer has commands that will get executed after
the safe move fails.

Closes #2986.

--------------------------------------------------------------------------------
3d22aafbd0 | Aliscans | 2023-04-29 13:30:38 -0700

Clear the training target before the message, rather than afterwards.
This means that a lua hook which catches the message can change the
skill target for the relevant skill (imagine a script which sets an
Axes target at 3, and sets it to 4 when it reaches 3). Previously, the
game set the target to 0 after the message returned, whether or not the
skill was still at its target.

--------------------------------------------------------------------------------
618583d7c3 | Zhang Kai | 2023-04-29 13:29:49 -0700

Update ability.txt

--------------------------------------------------------------------------------
18b1e96e0c | Zhang Kai | 2023-04-29 13:29:49 -0700

Update species.txt

--------------------------------------------------------------------------------
87f2efb3ad | Zhang Kai | 2023-04-29 13:29:49 -0700

Create status.txt

--------------------------------------------------------------------------------
8323249d43 | Zhang Kai | 2023-04-29 13:29:49 -0700

Update ZH translation

--------------------------------------------------------------------------------
ea4a182ca1 | Zhang Kai | 2023-04-29 13:29:49 -0700

Update ZH translation

--------------------------------------------------------------------------------
1f5b0daca9 | Nicholas Feinberg | 2023-04-29 13:23:38 -0700

Hide spellcasting by default for Trog
Considered harmful!

--------------------------------------------------------------------------------
e08a67761e | Implojin | 2023-04-28 16:21:22 -0500

fix: Don't let Jiyva eat evokers (dilly)
Since 5db6f66fbb, elemental evokers are now unique per-game, so we probably
don't want to let Jiyva slimes eat them. Thanks dilly!

--------------------------------------------------------------------------------
f69bf04e7a | Nikolai Lavsky | 2023-04-27 16:38:32 +0300

fix: make horn of Geryon's summons default to attacking
Currently, summoned hell beasts often just follow the player and ignore
nearby enemies until they attack first. This commit makes these summons
more aggressive, similar to how mutant beasts behave.

--------------------------------------------------------------------------------
2c2278344c | advil | 2023-04-27 09:31:48 -0400

fix: add a missing nil check to borgnjor's wizlab
Resolves #3109

--------------------------------------------------------------------------------
0704695555 | Nicholas Feinberg | 2023-04-26 16:29:27 -0700

Nerf Call Imp (elliptic)
Don't sometimes round up spear enchantment, to discourage CERTAIN
PEOPLE from repeatedly re-rolling imps until they get their ideal
gacha roll.

--------------------------------------------------------------------------------
6e42c06551 | Kyle Rawlins | 2023-04-24 17:37:56 -0400

fix: improve some options errors
Be more explicit about the source of the problem in a few cases, reword.

--------------------------------------------------------------------------------
7bafe92a0b | Kyle Rawlins | 2023-04-24 17:08:31 -0400

fix: add some missing explore_stop aliases
We had plural forms for most options except these two, make it
consistent.

--------------------------------------------------------------------------------
d85ba11b5a | advil | 2023-04-24 07:23:41 -0400

fix: redo disable some errors on dgl builds
Restore c8ec674a0ca, with some missing #ifdefs.

This reverts commit 2cc9ac7196178b7a7cd06e2ba3a27825e5ef34d3.

--------------------------------------------------------------------------------
2cc9ac7196 | Nicholas Feinberg | 2023-04-23 22:57:48 -0700

Revert "fix: disable some errors on dgl builds"
This removed the 'type' option from dgamelaunch builds entirely.
Since read_startup_prefs assumes that option exists, the game would
crash on startup.

Probably.

This reverts commit c8ec674a0ca8a934dd279f3553d5b4599694bb78.

--------------------------------------------------------------------------------
c8ec674a0c | Kyle Rawlins | 2023-04-23 22:31:28 -0400

fix: disable some errors on dgl builds
Recent changes error on these options on builds where they are disabled,
but previously, dgl builds wrote these options to the prefs file. So,
disable the errors for now until online players have ugpraded.

--------------------------------------------------------------------------------
f8af5b4991 | patrick | 2023-04-23 14:37:26 -0400

Merge branch 'master' of github.com:crawl/crawl

--------------------------------------------------------------------------------
7c48da4bfe | patrick | 2023-04-23 14:36:09 -0400

Add a new Qazlal overflow altar vault

--------------------------------------------------------------------------------
ec78dead90 | Edgar A. Bering IV | 2023-04-23 11:32:41 -0700

feat: print damage punctuation for arcjolt

--------------------------------------------------------------------------------
d4795048de | nicolae-carpathia | 2023-04-23 13:19:29 -0400

Add a diverse assortment of Vaults vaults (#3100)
Includes vaults for _empty, _standard, and _hard. I looked over the

existing vaults, but Vaults vaults tend to have a simpler variety

than other vaults because they tend to use a reduced glyph set. If

I've accidentally duplicated some other existing vault, my apologies.

Unless I've accidentally duplicated one of my own vaults, in which

case I absolve myself completely of all wrongdoing.
--------------------------------------------------------------------------------
36672149da | advil | 2023-04-23 09:07:49 -0400

feat: a `default` directive for rc files
This directive restores options to default values, in a way that is
robust to various forms of default initialization. It unfortunately just
gives an error for custom parsed options at the moment.

--------------------------------------------------------------------------------
8e18f04a39 | advil | 2023-04-23 09:07:49 -0400

docs: comment some newer options code

--------------------------------------------------------------------------------
464472ef9f | advil | 2023-04-23 09:07:49 -0400

fix: move travel_avoid_terrain fully into game_options
`on_set` functions that affect state outside of a game_options object
have a bad interaction with initialization, so this state would get
reset somewhat unpredictably. This commit removes the api for
manipulating this option, but it was also completely unused aside from
the option.

--------------------------------------------------------------------------------
14641e6071 | advil | 2023-04-23 09:07:49 -0400

fix: restore some test code
Accidentally rebased this out

--------------------------------------------------------------------------------
a550bc702f | Kyle Rawlins | 2023-04-23 09:07:49 -0400

fix: pull an enum into its own file
Apparently through some complex include chain, S_NORMAL conflicts with a
win32 define. This is a result of me including mon-util.h, when really I
just needed this one enum -- so pull it out into its own header.

Also, remove some c++11 warning-triggering constexprs.

--------------------------------------------------------------------------------
6c9d98b8e7 | Kyle Rawlins | 2023-04-23 09:07:49 -0400

fix: tweak some fixed length option details
Also, lint

--------------------------------------------------------------------------------
ffccbfb39d | Kyle Rawlins | 2023-04-23 09:07:49 -0400

refactor: standardize some complex list options
These were easier to do than I might have expected; several had existing
classes where writing a parsing constructor was not very hard, making
them easily adaptable to ListGameOption. The most involved here was
`monster_list_colour`, which I needed to relocate; it has less ad-hoc
code but it's still a bit involved.

--------------------------------------------------------------------------------
1af31d3574 | advil | 2023-04-23 09:07:49 -0400

refactor: yet more GameOption conversions
Honestly, most of these were too boring for anyone to have done anything
fancier with them before now. `game_seed` was already essentially
handled like the on_set cases.

Along the way, I fixed the kind-of-broken `tile_tag_pref`, adding two
new values ("auto", which better handles the old default behavior, and
"all", which just shows all tags).

--------------------------------------------------------------------------------
09bdf45078 | advil | 2023-04-23 09:07:49 -0400

refactor: convert rc directory options to GameOptions
The conversion was relatively straightforward, though initialization
order remains a bit tricky. As part of this I have upped the comments,
marked these options as disabled on DGL, and added some debug build
diagnostic code to ?v.

--------------------------------------------------------------------------------
864cb40d6f | advil | 2023-04-23 09:07:49 -0400

fix: prevent some dgl build errors
Previously, these options would be simply ignored, but now that they are
marked as disabled, writing them out to the prefs file leads to errors.
So, don't write them.

--------------------------------------------------------------------------------
1273e43332 | advil | 2023-04-23 09:07:49 -0400

refactor: move some custom options to base_game_options
The `macros` and `bindkey` syntaxes aren't appropriate for converting to
a GameOptions implementation, and in addition, the former already has an
in-game editing UI (the latter probably should, but doesn't; if it does,
it'll be distinct from a regular options-editing UI).
So, move them to the base class
list of manually handled meta-options (which is where I'm keeping things
that have this property).

Includes are handled in the base class. So move `additional_macro_file`
to the base class as well. (I don't know if turning this one into a
ListGameOption would be viable, but it might be good to generalize the
syntax..)

Also, fix some reset calls that were in the wrong class.

--------------------------------------------------------------------------------
6ea0fb6c0e | advil | 2023-04-23 09:07:49 -0400

refactor: simplify dump_order implementation
This had a non-standard implementation involving both a set and a
vector, but only the vector was actually used. Without the set, it's
just a bog-standard list option. (If someone wants the set back, it
could be reconstructed in an `on_set` trigger.)

--------------------------------------------------------------------------------
224273044b | advil | 2023-04-23 09:07:49 -0400

fix: rewrite the `enemy_hp_colour` option
The code that uses this option is hardcoded to assume a particular size
vector with each position having a designated value. However, the option
implementation treated it as a list, with complete flexibility as to
size, allowing prepending, subtraction, etc., and no validation of the
vector size. I haven't gotten it to crash but suffice to say the
behavior of the consumer code is at best undefined if the option is not
set correctly. It looks to me like the list manipulation patch 11 years
ago didn't look closely enough at what this option did when implementing
prepending etc for this option, though the lack of size validation goes
back to the original implementation of this option in ff9fb87a6f8b8d.

This commit reimplements the option behavior to always use a fixed size
vector. If not enough options are supplied, the unsupplied values remain
default, and if too many options are supplied, it produces an error.
I've also added the possibility of writing "default" for any of the
slots as a convenience.

--------------------------------------------------------------------------------
877bb45555 | advil | 2023-04-23 09:07:49 -0400

refactor: convert language options to GameOption
These use the string field + on_set pattern, which was very similar to
their previous implementation.

--------------------------------------------------------------------------------
2d27c6a638 | advil | 2023-04-23 09:07:49 -0400

refactor: convert map scale options to FixedpGameOption
This standardizes these two options using a new option class that can
handle decimal values directly, using `fixedp<>`.

...and, uh, this commit merges fixedp.h. This commit would at very long
last, resolve #810. Though, unlike the original idea of that PR, I no
longer think there's a need to wholesale convert scaled int code to
fixedp in order to merge!  It is still a really handy class to have
around for a lot of crawlcode, and it's kind of silly that it has sat
for so long without seeing any use.

(Insider notes: this version of fixedp.h has a few tweaks beyond the
2018 version. Primary ones are: integrating the test code with
crawlcode, and implementing numeric_limits min/max. Also added an
explicit copy constructor and dealt with various new warnings. We'll see
how it does on gcc...)

--------------------------------------------------------------------------------
55b71c9664 | advil | 2023-04-23 09:07:49 -0400

refactor: standardize `travel_avoid_terrain`
This option was only semi-implemented in the first place, and the new
technique of supplying a lambda to a ListGameOption is a good match for
standardizing this option without having to rewrite too much.

--------------------------------------------------------------------------------
c85053008e | advil | 2023-04-23 09:07:49 -0400

refactor: generalize some bitfield list options
These three options are generalized using a more invasive technique than
previous commits, to handle an underlying bitfield type. Instead of
trying to convert the list handling directly into a templated
ListGameOption or writing a new options class, I have stored the list as
a string, and triggered an update function each time the string is
changed, which updates the real value by overwriting the bitfield.  This
has the downside that if the actual option state is changed outside of
the option handling code, it does not trigger a change in the list
option state; but currently this does not matter.

--------------------------------------------------------------------------------
219cf69338 | advil | 2023-04-23 09:07:49 -0400

docs: update some option entries
Misc changes I noticed while reviewing options for refactoring. Mostly
just being clearer on the range of possible values for some options.

--------------------------------------------------------------------------------
8116253f26 | advil | 2023-04-23 09:07:49 -0400

refactor: standardize some maybe_bool option handling
There are various ways to write an options class for this, but since a
bunch of existing cases were already using MultipleChoiceGameOption, I
just created a convenience specialization of that class.

--------------------------------------------------------------------------------
16ca85fa0a | advil | 2023-04-23 09:07:49 -0400

fix: deal with some gcc-specific build issues
* biggest change: gcc is choking if the function supplied to OptFunctor
  is not explicitly a pointer or ref. I'm guessing clang is inferring
  this automatically. The spec does require that functions be a pointer
  or ref, but I'm unclear as to whether gcc or clang is right in their
  behavior when it's not explicit. In any case, making it explicit seems
  to work on both compilers.
* gcc doesn't like the `constexpr`s on `opt_parse_state`, not sure why.
* some misc warnings

--------------------------------------------------------------------------------
12f39dd2a6 | advil | 2023-04-23 09:07:49 -0400

refactor: convert remaining newgame opts to GameOption
This required work.
* Add an `on_set` function. This is present for all GameOption objects
  but I only exposed it in a constructor the class where it is
  actually used for now.
* Do some fairly crazy template stuff so that ListGameOption can
  (approximately) take a function that does the type conversion in its
  template arguments, rather than a class name. This finally let me
  unify and remove one of the many ways that initfile.cc parses += etc.
  It isn't intended to change the behavior of the relevant options in
  any significant way, but it could.

--------------------------------------------------------------------------------
2a961404d8 | advil | 2023-04-23 09:07:49 -0400

refactor: convert `type` to a GameOption
This one was straightforward to convert; I tweaked its behavior and
clarified its documentation in the process. Now, if the main menu is
shown, it will set the default game type to use at that menu with an
empty name. Previously, it did nothing in this scenario.

--------------------------------------------------------------------------------
2bd05cc0aa | advil | 2023-04-23 09:07:49 -0400

feat: generalized means of disabling an option on a build
That is, warning the user that it is disabled. Previously, you could do
this with only a multiple choice option. This is intended to be used
lightly: users might paste options between builds, and this should be
relatively seamless.

--------------------------------------------------------------------------------
0a6e7bf317 | advil | 2023-04-23 09:07:49 -0400

refactor: standardize some newgame options
This converts a few newgame options to GameOption implementations. These
are, remarkably, the "easy" cases. Actually using GameOption was not
such a big deal, but handling the quirky interactions and bug this
revealed was.

* Fixed a really nasty bug where in game modes selected via ui, the
  startup pref file for that game mode could be read under some
  circumstances, but was never written to; when it was read, it
  overrode the regular prefs file. (According to comments, the intent is
  that it should be used at all in this scenario.)
* The option `fully_random` was used internally, and could be set, but
  when set as an option in rc, it was only half-implemented: it still
  allowed char selection, but then showed the reroll prompt. Since this
  can be set (even more so after turning it into a GameOption), I've
  it a real implementation for the case where it is set via rc. (It
  might instead make sense just to not save it at all? But I wasn't
  quite sure if that would break complicated newgame code.)
* Several newgame options weren't documented. For new I've just
  hand-listed the sprint map options, since these are going to be quite
  hard for a user to figure out.
* Add some bits of game_option API that didn't end up getting used in
  this commit, but seem nice to have.

--------------------------------------------------------------------------------
79a2db1cd2 | advil | 2023-04-23 09:07:49 -0400

refactor: make `split_parse` a bit more organized
This code is still not very general...

--------------------------------------------------------------------------------
beecc3cae0 | advil | 2023-04-23 09:07:49 -0400

refactor: generalize option case handling
Before this commit, case sensitive GameOption-based options needed
custom handling, because a `lowercase` was done on the string used for
the constructor. This adds support for case sensitivity to a couple of
GameOption subclasses, and uses line parser state in the constructor so
that these classes can have access to the case sensitive version. As
part of this, I was able to fully remove the hardcoded list of case
sensitive options. Sadly, only one custom parsed option was able to be
generalized as a result of this.

Also, this fixes what seems to be a bug where morgue_dir is not treated
as case sensitive.

--------------------------------------------------------------------------------
a5d8a0da8e | advil | 2023-04-23 09:07:49 -0400

refactor: better separate option parsing, state, and management
Crawl options are extremely involved, with a massive set of options that
are set up and parsed in a wide variety of ways, with nearly all the
work being centralized in one heavyweight class (`game_options`) that is
primarily instantiated as a singleton. As this code has grown it has
become increasingly challenging to maintain it, especially when
considering significant user-facing improvements to configuration.

This commit attempts to impose (what I think is) a better structure on
this. I have split `game_options` into a base class `base_game_options`,
that is responsible for managing option "meta-state", and where generic
option-related code goes; option parsing is now run from this class. The
`game_options` class is now responsible for actual options fields, as
well as custom parsing. I haven't attempted (yet) to eliminate the giant
custom parsing conditional sequence, but it is now partitioned off from
the general parsing code. As part of this I have abstracted option
parsing state out of the parsing function itself, allowing parsing to be
split across multiple functions in a cleaner way.

There were probably multiple ways to achieve these refactoring goals,
but this one (a) keeps api compatibility for Options for external users,
and (b) makes it possible to write a sane copy constructor / assignment
operator for the meta-state (especially the vector of `GameOption *`s)
while using a defaulted copy constructor for the actual options fields.
Previously a defaulted copy constructor existed, but it wasn't safe to
use for any purpose except accessing the raw fields, because the
metastate wasn't handled correctly. The existing `merge` function
couldn't substitute for general purposes because it can only handle
GameOption style options.

As a refactoring commit, this leaves things in a somewhat intermediate
state: I have done what is necessary to get the top-down changes to
work, but there's a lot of messy code here still..

--------------------------------------------------------------------------------
6e8f0f562f | Nicholas Feinberg | 2023-04-22 13:10:56 -0700

Reduce shield penalties with Str instead of size (Lici)
To make strength a bit more meaningful for some characters that
might not currently care about it and to make tower shields more
desirable in the late game, replace the size component for the
shield penalty formula (for spell success & attack delay) with a
strength component.

With this formula, a 15 Str character will have the same penalty as
a medium-size character did before. A 21 Str character will have the
same penalty as a Formicid, Ogre or Troll did, a 9 Str character will
match an old Kobold, and a 3 Str character will match an old Spriggan.

This is a very small nerf for D:1 large species fighters and a buff
to them thereafter. Mid-sized stabbers, eg vampires, are hurt a bit
more; compensation TBD.

I vaguely suspect this commit is a bit too generous to shield users
and some nerfs are needed in some way, but I'm tossing it up for now
to think about it.

--------------------------------------------------------------------------------
abc949cf19 | Kate | 2023-04-21 23:11:19 +0100

Fix tag_upgrade compilation
Oops.

--------------------------------------------------------------------------------
620db56ad9 | Medrano83 | 2023-04-21 23:47:06 +0200

Fix two links in INSTALL.md
Credit to lukem12345.
Closes #2108

--------------------------------------------------------------------------------
a3e7370cef | Kate | 2023-04-21 21:52:43 +0100

Add a description lookup for passive effects
Using the name listed on the overview screen. Possibly this should use a
proper enum list like status_type.

--------------------------------------------------------------------------------
291f4736cf | Kate | 2023-04-21 21:52:43 +0100

Rework the overview screen
Remove the second column of "resists" (which mostly displayed passive
effects gained from amulets, and a few other assorted effects which only
displayed when active such as Archmagi and -Tele). The overview screen now
consists of two columns - resists, and equipment (which now have a lot more
space for randart inscriptions to be visible).

SInv is moved to the first column (by virtue of being an effect provided by
a ring that's more likely to be swapped around frequently).

Other generic "passive" effects, such as those provided by amulets and
artefacts, are shown below in a new list, grouped under "%" for longer-term
passive effects, followed by "@" for temporary status effects, and "A" for
mutations and innate abilities. This also allows some more detail to be
displayed (such as percentage chance of corrosion/slow from *Corrode/*Slow
artefacts, and percentage damage bonuses from Harm).

RMsl also moves to be displayed in this list rather than as a temporary
status light, as it's now provided by equipment, DS mutation or Qazlal
passive rather than being a temporary duration. Potentially other, rarer
passive effects (such as those from unrands) could also now be listed.

--------------------------------------------------------------------------------
e7184f5f97 | Kate | 2023-04-21 21:52:36 +0100

Remove unused ARTP_CAUSE_TELEPORTATION
Teleportitis has been mutation-only for some time.

--------------------------------------------------------------------------------
82af5b777a | Kate | 2023-04-21 20:46:33 +0100

Remove an unused parameter from wizardry

--------------------------------------------------------------------------------
8ee25b8dbc | Nicholas Feinberg | 2023-04-21 12:04:16 -0700

Increase lightning rod damage by 50%
Juice it up a little to make it a bit more comparable to other
elemental evokers, since players tend to be disappointed in it.

--------------------------------------------------------------------------------
ebefce21f7 | Kyle Rawlins | 2023-04-20 20:50:57 -0400

Revert travel messaging change and followups
This patch was a great idea, and well worth revisiting after the 0.30
release, but unfortunately the autotravel code it was trying to use to
accumulate messages is way more complicated than any of us had any idea
of. Main problems that arose:

* autotravel does exhaustive search (at least for cases where it
  doesn't find a path). Because of this, messaging would accumulate
  about all exclusions that could potentially be relevant, not just the
  ones that actually block travel in a particular way. In cases where
  the target wasn't reachable at all, a message would appear for every
  reachable exclusion in the dungeon. I think the autotravel search
  probably needs to be rewritten to handle some of these cases a bit
  better, e.g. a dynamic programming approach where a specific path
  can be checked to find appropriate exclusion messaging.
* Some traversal information is only available with an excursion
  (specific issues with this were in followup bugfixes that tried
  to address travel to unknown squares)
* Some cases of non-exclusion blockers (unexplored stairs) were not
  messaged correctly

It's possible that autotravel search is generally not what it could
be...

This reverts commit 25895a7845a2bd821876fda33a95df77f9feda4f.
This reverts commit 860fb061e71aec5659aa2f719141f7eac004ad19.
This reverts commit 710642bebeccf30edc188bff0cbce11d0ecf633b.
This reverts commit a3c4068687a7597f2320aab96a41c1ca348dc40e.

--------------------------------------------------------------------------------
77a82715bb | Nicholas Feinberg | 2023-04-20 16:42:02 -0700

Simplify waterlogging
Don't reduce effect duration by distance from the target. I'm skeptical
that this mattered (how often do you waterlog multiple relevant enemies
at once, anyway?) and it could in principle result in negative durations.

--------------------------------------------------------------------------------
d936c97349 | patrick | 2023-04-19 21:47:18 -0400

Add a quote for Harold

--------------------------------------------------------------------------------
a8025317a9 | Nicholas Feinberg | 2023-04-19 09:59:20 -0700

Fix the sulking sword('s lore)

--------------------------------------------------------------------------------
fb780f5df6 | Nicholas Feinberg | 2023-04-18 22:45:21 -0700

Always waterlog monsters hit by phial
Even if they're knocked out of the Splash Zone tm.

--------------------------------------------------------------------------------
335c31701a | Nicholas Feinberg | 2023-04-18 22:38:26 -0700

Reduce phial waterlogged duration
Previously lasted 7-11 turns at 0 evo. Now lasts 2-3 turns at 0
evo, gaining 0.5 turns of average duration for each level of evo.

--------------------------------------------------------------------------------
272f719a29 | Nicholas Feinberg | 2023-04-18 22:23:17 -0700

Reduce phial of floods' range to 5 (Lici)
Avoids issues with knocking enemies out of LOS and brings it closer
to parity with ?silence.

--------------------------------------------------------------------------------
abe9d7adf6 | Nicholas Feinberg | 2023-04-18 22:18:06 -0700

Simplify evoker recharge curves
Previously, evokers recharged according to an extremely complex
formula. This simplifies recharging considerably.

Both before and after, at XL 14 and 0 Evo, evokers could be used
about once per XL. At XL 27 and 13 Evo, they could be used about
five times per XL; now they can be used about 1.5 times.

This changes makes evokers usable a bit more often before XL 13 and
significantly less often at higher levels. This should make using
them feel a bit more strategic and meaningful, without making them
so precious that you're never able to use them at all.

https://docs.google.com/spreadsheets/d/1MKU84xL0E4dU3FkAhMTiZ7-7EiLwQI9TXgdlSoVg
he8/edit?usp=sharing
has a full breakdown.

--------------------------------------------------------------------------------
48e7df34de | Nicholas Feinberg | 2023-04-18 21:26:18 -0700

Fix: don't corrode player on excursions (Sergey)
The player shouldn't be displayed as corroded when they look at other
floors of Slime. They *should* be shown as corroded if they're currently
adjacent to a slime wall but just looking at another floor, but that
would require a larger rework to fix.

--------------------------------------------------------------------------------
aaebb76ac8 | Nicholas Feinberg | 2023-04-18 21:23:02 -0700

Fix: plasma conj'd warnings (Snackwell, CarefulOdds)
Don't warn when shooting plasma beams through IOODs, battlespheres,
etc.

--------------------------------------------------------------------------------
218f5a9f79 | Nicholas Feinberg | 2023-04-18 21:19:01 -0700

Add a you.species() clua alias
For consistency with the internal C++ naming. Might shift some
references over later.

--------------------------------------------------------------------------------
ec820db308 | Kate | 2023-04-18 23:17:00 +0100

Scale condenser vane cloud numbers with power
To make it less able to fill entire screens with clouds even at minimal
power, add some noticeable power scaling to the chance to place a cloud on
each valid target square.

--------------------------------------------------------------------------------
706747fef1 | advil | 2023-04-18 08:40:43 -0400

docs: update webtiles changelog

--------------------------------------------------------------------------------
25895a7845 | Nicholas Feinberg | 2023-04-17 17:50:06 -0700

Fix: set travelers up for success (pdpol)
Neither an exclusion on Vaults:4, an exclusion on Vaults:4,
an exclusion on Vaults:4, an exclusion on Vaults:4, an exclusion on
Vaults:4, an exclusion on Vaults:4, an exclusion on Vaults:4, an
exclusion on Vaults:4, an exclusion on Vaults:4, an exclusion on
Vaults:4, an exclusion on Vaults:4, an exclusion on Vaults:4, an
exclusion on Vaults:4, an exclusion on Vaults:4, an exclusion on
Vaults:4, nor an exclusion on Zot:1 will stop them!

--------------------------------------------------------------------------------
2dbb833546 | Kate | 2023-04-17 17:05:39 +0100

Fix spectral weapons not being treated as summoned
Fixes them dropping items on death since 3f05228d.

--------------------------------------------------------------------------------
6f1fe797d6 | Kate | 2023-04-17 16:47:48 +0100

Add orb of Battle/Wucad Mu tiles (Sastreii)

--------------------------------------------------------------------------------
e1321aca23 | Kate | 2023-04-17 15:26:02 +0100

Adjust Dispater's resists
Give them immunity to acid (to prevent them being corrodable by their own
orb), and reduce their fire resistance from 3 to 1.

--------------------------------------------------------------------------------
92fcfee559 | Kate | 2023-04-17 15:26:02 +0100

Let monsters be affected by *Corrode and *Slow

--------------------------------------------------------------------------------
27621e4024 | Kate | 2023-04-17 15:26:02 +0100

Tweak *Corrode and *Slow artefacts
Instead of each source of *Corrode giving an independent 3% chance to apply
a level of corrosion on taking damage, make sources additive (so the very
unlikely case of stacking lots of sources of *Corrode can no longer apply
multiple levels of corrosion). Do the same for *Slow (which has a 1% chance
per source).

--------------------------------------------------------------------------------
a414cb0b83 | Kate | 2023-04-17 15:26:02 +0100

Deduplicate some Harm code

--------------------------------------------------------------------------------
1367321604 | Kate | 2023-04-17 15:26:02 +0100

Allow artefact bardings to get SInv and Rampage
With them being worn by both Nagas and Armataurs, don't block properties
that are potentially useful to one of the two species (and rPois was
already allowed).

--------------------------------------------------------------------------------
fe652c801a | Implojin | 2023-04-17 07:14:01 -0500

fix: webtiles rampage indicator

--------------------------------------------------------------------------------
860fb061e7 | Edgar A. Bering IV | 2023-04-16 15:46:06 -0700

fix: a range check in travel failure messaging

--------------------------------------------------------------------------------
cfb1e0cf12 | Medrano83 | 2023-04-16 23:46:17 +0200

Add version information for Clang
Closes #2408

--------------------------------------------------------------------------------
2c689178d5 | Kate | 2023-04-16 21:21:59 +0100

Adjust the sphere of Battle
Let it enhance all destructive spells instead of only conjurations, but
make it act as a negative enhancer for non-destructive spells (giving it
more of an orb-like downside).

The description implied that the summoned battlesphere's power was based
purely off Conjurations skill, but instead its power was calculated exactly
as if casting the spell (factoring in intelligence and other enhancers).
Change it to only look at Conjurations skill (resulting in it being easier
to reach higher power since no stepdown is applied).

--------------------------------------------------------------------------------
710642bebe | Edgar A. Bering IV | 2023-04-16 12:10:22 -0700

fix: be correct when failing to traverse the unknown

--------------------------------------------------------------------------------
0f0e7abb2d | Zhang Kai | 2023-04-16 10:15:37 -0700

text: update zh translations
In:

unrand.txt
monsters.txt
spells.txt
items.txt
species.txt
ability.txt
branches.txt
cards.txt
tutorial.txt
status.txt
help.txt
FAQ.txt
clouds.txt
items.txt
help.txt
backgrounds.txt

[ Closes #3069 ]

--------------------------------------------------------------------------------
8da0834b8c | Skrybe | 2023-04-16 00:29:24 -0700

feat: edit layout_misc_corridors in Lair (#2898)
Make layout_misc_corridors sometimes use boxy=false when in Lair.  This 
provides a more "natural" look than the square rooms it generates otherwise, 
and works well with Lair ruination.  As a bonus, it also creates more crevices 
for the player to hide in.
--------------------------------------------------------------------------------
3629b4d965 | Perry Fraser | 2023-04-16 00:09:02 -0700

feat: show attack strength punctuation for instakills (#2793)
Seeing lots of !!!!!s is fun. Let's make Grand Finale's and MCC's messages print

some out for however much HP the monster you killed had.
--------------------------------------------------------------------------------
f40d3337c5 | Monkooky | 2023-04-16 00:07:40 -0700

fix: Rift reach assumptions in some edge cases
Rift breaks the assumption that the only number besides two is one. This fixes 
that.



However, it still makes the assumption that the only REACH enums are just an 
int with a fancy title.

This will break spectacularly if a weapon is ever given a reach that isn't just 
a number.



Closes #2683 


--------------------------------------------------------------------------------
a3c4068687 | pdpol | 2023-04-15 23:30:27 -0700

feat: better explain some travel failures and stops
[ Committer's note: revised to also handle terrain; switched to a vector
  passed by reference instead of a map passed as a pointer. Closes #2627 ]

--------------------------------------------------------------------------------
990a428a5c | Edgar A. Bering IV | 2023-04-15 13:05:23 -0700

feat: give a few more monsters spectral weapons
Adding it to the Klown brand list (ha!) and Spriggan Druids (wood
spirits of their quarterstaves!).

--------------------------------------------------------------------------------
ae7cc47792 | Edgar A. Bering IV | 2023-04-15 13:05:23 -0700

feat: give Asterion back his spectral weapon
You dropped this, king.

--------------------------------------------------------------------------------
3f05228d59 | Edgar A. Bering IV | 2023-04-15 13:05:23 -0700

feat: implement monster spectral weapons
The spectral brand's implementation, at this point, is easy to give back
to monsters, and in its latest iteration should be an impactful brand
for monsters to have, adding positional effects to certain foes.

Lightli pointed out the edge case of a dual wielding monster with two
spectral weapons. Currently only one spectral weapon remains visible at
the end of the round, but both attack correctly. Supporting some
monsters having two spectral weapons is a significant code cost for such
a small edge case.

--------------------------------------------------------------------------------
70414cbcbb | Kate | 2023-04-14 21:01:16 +0100

Tweak Makhleb destruction zap handling
Use dummy spells for the beams when using Makhleb's destruction abilities.
This fixes them triggering Majin-Bo vampirisism if a player-castable spell
is rolled. It also gives them a fixed noise level (3 for Minor Destruction,
and 7 for Major Destruction) instead of noise depending on the zap, which
is probably fine.

--------------------------------------------------------------------------------
9528432f70 | Kate | 2023-04-14 21:01:16 +0100

Clear beam noise after firing a tracer
Fixes Makhleb's destruction abilities having their loudness calculated as
if the player were firing the level 7 spell Debugging Ray.

--------------------------------------------------------------------------------
2aef359875 | Kate | 2023-04-14 21:01:16 +0100

Fix some damage spells not working with Majin-Bo (#3083)
Fixes Arcjolt, LRD explosions, Ignite Poison, and the direct damage portion
of OTR not being able to trigger Majin-Bo vampirism.

Closes #3083.

--------------------------------------------------------------------------------
8898057555 | Nicholas Feinberg | 2023-04-14 11:52:29 -0700

Special-case Armataur skill titles (Ge0ff)
Trivia: this affects only two titles at present, both quite rare.
But some things are important (????)

--------------------------------------------------------------------------------
395767de6d | Nicholas Feinberg | 2023-04-14 11:52:29 -0700

Cut monks' starting stealth (Ge0ff)
Since they start with an orb of light now, so the stealth doesn't do
much. This could be thought of as belated comp for the orb of light
buff.

--------------------------------------------------------------------------------
6b489f61ca | Nicholas Feinberg | 2023-04-14 11:52:29 -0700

Let Xom feed the player !attract (Lici)
That's a 'good' potion effect, right?

--------------------------------------------------------------------------------
afbe198592 | nicolae-carpathia | 2023-04-14 14:43:09 -0400

Add some new shops to shops.des (#3080)
* Add some new shops to shops.des



nicolae, making shop vaults? How surprising!



Most of these are simple generic shop vaults, intended to help increase

the amount of simple, non-gimmicky shops to increase variety a little.

Also increase the weight on the very basic "shop" vault, so that simple

one-tile shops get a little more representation. There are also a couple

of multi-shop vaults.



I told myself I was just going to stick to simple, non-themed vaults,

with no specially-defined inventories, but during a discussion where

memes of antiquity came up, I was inspired. (And then after I broke the

"only simple vaults" rule, I was inspired again, this time by one of

my other shops.)
--------------------------------------------------------------------------------
cd70e7a56d | Nicholas Feinberg | 2023-04-13 17:40:30 -0700

Fix: allow generating multiple zigfigs
Also quad damage, etc.

Oops!

--------------------------------------------------------------------------------
5db6f66fbb | Nicholas Feinberg | 2023-04-12 22:12:14 -0700

Make elemental evokers unique
Only generate at most one of any given evoker type in any game,
since duplicates are useless and feel bad. (They're replaced with
random wands.)

This probably breaks some themed vaults a bit. Sorry.

This code is a little scary and I hope it works.

--------------------------------------------------------------------------------
1ebda0b27c | Nicholas Feinberg | 2023-04-12 21:48:41 -0700

Fix the build?

--------------------------------------------------------------------------------
3b6d188ad2 | Nicholas Feinberg | 2023-04-12 21:23:06 -0700

Fix misc item sets (acrobat)
This wasn't actually implemented in 884ff3d523091af0892.

--------------------------------------------------------------------------------
26e8ee2fb7 | Nicholas Feinberg | 2023-04-12 19:47:28 -0700

New loading screen (benadryl)

--------------------------------------------------------------------------------
d49b78fada | Kate | 2023-04-12 22:53:53 +0100

Fix a pain bond + constriction crash
If a summoned monster was pain bonded to its summoner and caused the
summoner to die by taking constriction damage, it would cause a crash.

--------------------------------------------------------------------------------
6f554f940f | Nicholas Feinberg | 2023-04-12 14:41:37 -0700

Fix: bring rampage out of the dark (nlavsky)

--------------------------------------------------------------------------------
85a4f8702b | Nicholas Feinberg | 2023-04-12 14:19:57 -0700

Fix: make northwest tentacles stop rampaging (nlavsky)
Re-used enum, oops.

--------------------------------------------------------------------------------
1dbc053f64 | Nikolai Lavsky | 2023-04-12 14:57:59 +0300

fix: clean up obsolete force_mores and message colouring
Several default force_mores and colouring rules can be removed:

  * throwing weapons no longer fail to return (ba011c803)
  * armour and shields don't have to-hit penalties (4f6bc678f)
  * nimble evasion is gone (b865740ec)
  * three Nemelex-related messages have ceased to be as well (7ca12cd97)
  * storm clouds generate less message spam now (daa8bd6ff)

--------------------------------------------------------------------------------
63dfefce0d | Nicholas Feinberg | 2023-04-11 22:21:04 -0700

Fix: make confusing touch work with launchers (sfogarty)
Don't autoshoot if confusing touch is on. This is silly!

--------------------------------------------------------------------------------
f68c81a09d | Implojin | 2023-04-12 00:08:43 -0500

Merge pull request #3044 from Implojin/victory-meld
fix: a few victory bugs
--------------------------------------------------------------------------------
39c850d269 | Implojin | 2023-04-11 23:33:07 -0500

fix: unrand Victory stat reset bugs
This commit fixes several cases where Victory was improperly resetting its
stats. Sometimes they were being reset incorrectly (e.g. if the player was
involuntarily hit with /polymorph, or cancelled a scroll read at a prompt),
sometimes they were failing to reset (e.g. if the player drank a potion while
in treeform or spiderform).

Most of these bugs were related to improper meld handling; this commit
has fixed all such cases that I'm aware of.

Any conduct-violating use of potions or scrolls while melded should now cause
Victory to reset its stats as soon as your body armour is no longer melded.

(RIP Victory meld techs, we hardly knew ye.)

--------------------------------------------------------------------------------
27bf465a7b | Nicholas Feinberg | 2023-04-11 20:22:50 -0700

Ban demon weapons of holy wrath (#2913, acrobat)
This reverts commit 0ee6a06047e57c82ddb8123da0993e77481f9919.

Resolves #2913.

--------------------------------------------------------------------------------
0e3bda2066 | Nicholas Feinberg | 2023-04-11 18:36:58 -0700

Experimental: give monks an orb of light
There are two thoughts behind this change:
1. A background that starts with an orb of light might feel
   feel interestingly different, insofar as high-EV and invisible
   enemies become substantially less threatening with light held.
2. Monks are a bit weak (as backgrounds go), and light feels
   sufficiently 'divine' to fit with their theme.

I'm a bit worried that light has too much staying power for a starting
item - starting items should generally be replaced or obsolete at some
point, but I can easily see some characters keeping an orb of light
all game. That reduces variety when playing these backgrounds.

But this is cheap and easy to revert, so let's try it!

--------------------------------------------------------------------------------
7dd7712201 | Nikolai Lavsky | 2023-04-12 03:39:23 +0300

fix: a default force_more, again (advil)
Properly escape a comma in a force_more message.

Also, fix highlighting for a Formicid-specific warning.

--------------------------------------------------------------------------------
f4b2b2f793 | Nicholas Feinberg | 2023-04-11 15:15:15 -0700

Fix: mark a method static (Aliscans)

--------------------------------------------------------------------------------
7dea3e163d | Nikolai Lavsky | 2023-04-11 23:48:54 +0300

fix: don't stop for every "deal"
As a side effect of dd4664df, each message containing a "deal" triggers
a force more. This includes a couple of Donald lines and Finesse's
activation message.

--------------------------------------------------------------------------------
0ee6a06047 | Nicholas Feinberg | 2023-04-11 13:44:15 -0700

Fix: no demon whip angels (#2913, acrobat)
'any weapon ego:holy_wrath' is a bit too spicy.

--------------------------------------------------------------------------------
17dd5e2ed6 | Nicholas Feinberg | 2023-04-11 13:39:46 -0700

Fix: randart holy weapon brands (#2913, acrobat)
No more heavy eudemon blades!

--------------------------------------------------------------------------------
e24dbf0a4b | Nicholas Feinberg | 2023-04-11 13:27:27 -0700

Disable wretched torpor (Sergey)
Feels rude for Kiku's Unearth Wretches to slow you by bringing out
a torpor snail. Turn off their slow aura while they die.

--------------------------------------------------------------------------------
aad5e1864e | Nicholas Feinberg | 2023-04-11 13:22:54 -0700

Tweak reflection wording
Try to make it clearer that reflection happens after a block - that
is, that reflection doesn't give an extra chance to block.

--------------------------------------------------------------------------------
221ef3b968 | Nicholas Feinberg | 2023-04-11 10:06:51 -0700

Revert "Revert "Add indicator for rampage""
Bring back rampage, but this time cache it at the start of the
player's turn.

This reverts commit 42e074c17a0a78aebd7c1a0ff5bb393d75035f2b.

--------------------------------------------------------------------------------
bd8d5ba0ad | Nicholas Feinberg | 2023-04-10 22:09:36 -0700

Fix: no out-of-range ripostes on block (#3066)
Don't riposte when blocking an attack from an enemy who is out of
reach of your weapon.

Closes #3066.

--------------------------------------------------------------------------------
c344ba3439 | Nicholas Feinberg | 2023-04-10 21:32:34 -0700

Fix: make stasis block Vhi's
I'm sorry, FoWr ;_; Breaks my heart to do this, but the logic is
inescapable.

--------------------------------------------------------------------------------
dd4664df13 | Nicholas Feinberg | 2023-04-10 16:10:18 -0700

Clarify Nemelex too many cards messages
This confused people.

--------------------------------------------------------------------------------
2766ea1e55 | Kate | 2023-04-09 21:46:30 +0100

Fix new unrand names in vaults

--------------------------------------------------------------------------------
6a089771f7 | Kate | 2023-04-09 19:28:18 +0100

Shorten a welcome message
The max length for welcome messages is 79 characters rather than 80, since
the message area has a leading space.

--------------------------------------------------------------------------------
46ad940590 | Kate | 2023-04-09 19:28:18 +0100

Adjust spacing for unrand DBRAND/DESCRIP entries
Fix many unrand descriptions to have consistent spacing in their
descriptions (adjusting wording in a few cases).

A small number of unrands still have long inscription entries that result in
inconsistent spacing in their descriptions (Throatcutter, Frostbite, skin of
Zhor, robe of Vines, Kryia's mail coat, Lochaber axe). Not the end of the
world, but it would be nice to be consistent here and shorten their
inscriptions.

The Singing Sword, autumn katana, dragonskin cloak and sceptre of Asmodeus
also have too-long inscription entries but since they only have one line it
doesn't end up being noticeable.

--------------------------------------------------------------------------------
6cb29be199 | Kate | 2023-04-09 19:28:18 +0100

Rework the sceptre of Asmodeus
As with the sceptre of Torment, make its base weapon type an eveningstar
so that it's a bit more usable as a melee weapon. Instead of a brand, give
it an extra-high enchantment, and reduce Asmodeus's base damage to
compensate for the better weapon. In addition, turn its activated ability
into a passive one of summoning fiery demons on hit.

It would be nice to come up with a more substantial rework as it probably
still remains the least exciting of the Hell/Pan lord unrands, but making
it usable in melee is hopefully a start!

--------------------------------------------------------------------------------
8a7cdbe7ec | Kate | 2023-04-09 19:28:18 +0100

Give the Majin-Bo a custom base type
As with the other staff unrands, adjust it to be more appropriate for its
slot, making it more useful as a melee weapon by giving it a custom base
type. It keeps its one-handedness and ends up with 11 base damage, +1 base
accuracy, and 1.2 base delay (the same damage as a demon whip but with 0.1
higher base and min delay).

--------------------------------------------------------------------------------
46c7c7d458 | Kate | 2023-04-09 19:28:18 +0100

Reduce the Elemental Staff's resistances
Reduce the excessive amount of resistances and AC it provides to push the
emphasis slightly more towards it being a melee weapon for hitting things
with.

--------------------------------------------------------------------------------
def3eea6ad | Kate | 2023-04-09 19:28:18 +0100

Convert the staves of Wucad Mu and Battle to orbs
They existed as unrand staves with powerful passive effects but no
meaningful use as actual melee weapons (the staff of Battle triggering
battlesphere shots on hit doesn't really help enough to qualify it). As
with the staff of Dispater, turn them into orbs instead where they are no
longer freely swappable but can have a strong passive effect in exchange
for giving up the shield slot.

--------------------------------------------------------------------------------
60ff8d5f49 | Nicholas Feinberg | 2023-04-08 21:25:57 -0700

De-brand cerulean imp spears (Ge0ff)
Don't encourage scumming for the legendary 'distortion imp'...

--------------------------------------------------------------------------------
acf32f4bd3 | advil | 2023-04-08 10:51:59 -0400

fix: add a slow IO check
Also, this includes some commented debug code -- the reason for this is
that I am trying to avoid (yet) having async syntax in any code until I
am sure of all webtiles server versions; so these comments are a
placeholder until these calls can be added.

--------------------------------------------------------------------------------
5ad7410663 | advil | 2023-04-08 10:42:21 -0400

fix: remove some broken metaprogramming code
This was a nice idea, but it turns out this just sets the qualname of
the superclass `_execute` function 6 times.

--------------------------------------------------------------------------------
df59a09ada | advil | 2023-04-08 10:27:17 -0400

fix: throttle some webtiles error spam
When the server gets into a bad state and the socket buffers start to
get filled up, on recovery it often emits a very large number of logged
warnings in `on_message` (usually just many "Socket buffer full"
messages). This itself can be pretty IO intensive.  This commit
suppresses all but the first one in a sequence of errors.

Also, hide a common harmless warning that can happen on a disconnect.

--------------------------------------------------------------------------------
28734493ed | advil | 2023-04-08 09:59:13 -0400

docs: clarify `reduce_animations` docs

--------------------------------------------------------------------------------
4880f5d053 | advil | 2023-04-08 09:45:11 -0400

fix: add some explicit tornado.gen imports
These aren't needed locally on current tornado, but maybe they'll fix CI
errors...

--------------------------------------------------------------------------------
de56bdc4b3 | advil | 2023-04-08 09:43:11 -0400

fix: missing yield

--------------------------------------------------------------------------------
90bcbe0892 | advil | 2023-04-08 09:09:38 -0400

feat: use aiofiles for webtile status file writing if available
This is somewhat experimental. Basically this package does threaded file
IO so as not to block the event loop, which is our current biggest
source of blocking on (non-CAO) servers; currently used only for one
specific case (status file writing). If this works ok I would probably
expand it to be used for ttyrec writing (more technically involved than
this) and milestone tailing.

--------------------------------------------------------------------------------
38d5fb2972 | advil | 2023-04-07 10:27:02 -0400

feat: add a restful endpoint for server version
I think this should be fine to expose publicly (it was previously
visible in the admin panel). This information is tremendously useful to
the subset of the dev team that deals with server issues, but previously
it's been hard to get.

Note that the crawl version string printed here is *not* a game version
per se: it's the version string for what the webtiles server is running.
It would probably be nice to eventually provide a similar endpoint to
get available game versions (which should be doable via the load_games
data) but that's not what this does.

--------------------------------------------------------------------------------
d2d399bf01 | robertxgray | 2023-04-07 09:52:30 +0200

Android: Fix crash logs when the activity is paused
The game is saved whenever the Android activity is paused to avoid loss
of progress. However, it is not safe to use the save function without
a current game. We are also returning to the launcher on exit because it
feels more natural on this platform.

--------------------------------------------------------------------------------
b3d0e9abb2 | robertxgray | 2023-04-07 09:52:30 +0200

Android transparent keyboard: reduce contrast
The transparent keyboard looks less intrusive with gray borders.

--------------------------------------------------------------------------------
6a87d810ed | robertxgray | 2023-04-07 09:52:30 +0200

Configurable Android version code
ANDROID build variable is no longer a simple boolean, now it can be used
to set the Android version code in the Gradle scripts.

--------------------------------------------------------------------------------
c47655710c | robertxgray | 2023-04-07 09:52:30 +0200

Configure Android port to target SDK level 33
This is required by Google Play starting in August 2023.
https://developer.android.com/google/play/requirements/target-sdk

--------------------------------------------------------------------------------
911dee593f | robertxgray | 2023-04-07 09:52:30 +0200

Review the font sizes for Android
Text size is probably the biggest issue in the Android port. I made test
again and sadly the crt font cannot be increased without breaking
the menus. However, there's a tiny room for improvements:

- Increase the font size in the message area.
- Remove the custom settings for 960px screens, use 480x2 instead.
- Minor adjustements in the launcher.

--------------------------------------------------------------------------------
b985b96186 | robertxgray | 2023-04-07 09:52:30 +0200

Configurable keyboard size for Android
Adds a keyboard size option to the launcher with the value translated
to dp. It only affects the height because we are already using all the
width available.

--------------------------------------------------------------------------------
e65b671529 | robertxgray | 2023-04-07 09:52:30 +0200

Extra keyboard for Android
There's a new option to enable a small, transparent keyboard that can be
placed on any corner. It includes only directional keys but more can be
added in the future by popular demand.

--------------------------------------------------------------------------------
3d8fdb39a3 | robertxgray | 2023-04-07 09:52:30 +0200

Minor Android fixes
- Fix crash when the morgue is empty.
- Incluide a missing drawable in the repository.

--------------------------------------------------------------------------------
ebc706044b | robertxgray | 2023-04-07 09:52:30 +0200

Multiple keyboard options for Android
We can use the launcher to chose among 4 different keyboard options.
- Classic keyboard. Same as before.
- Transparent keyboard. Classic keyboard with transparent background
  covering the game screen.
- Android keyboard. Whatever keyboard the user has configured on the
  device by default.
- No keyboard. You can disable the virtual keyboard if a hardware
  keyboard is available.

--------------------------------------------------------------------------------
7cd38bc08a | robertxgray | 2023-04-07 09:52:30 +0200

Use slide animations for Android activity transitions

--------------------------------------------------------------------------------
3a57277134 | robertxgray | 2023-04-07 09:52:30 +0200

The morgue viewer for Android can download files
Files are copied to a destination chosen by the user using the Storage
Access Framework. Because the user is involved in selecting the files,
this mechanism doesn't require any system permissions.

This feature is not compatible and therefore disabled on devices older
than Android 4.4.

--------------------------------------------------------------------------------
7472ba6d35 | robertxgray | 2023-04-07 09:52:30 +0200

Morgue viewer for Android
The morgue viewer shows the list of files in the morgue directory. The
files can be sorted by name or date. Clicking on a file opens the file
viewer.

--------------------------------------------------------------------------------
7fbccd47fd | robertxgray | 2023-04-07 09:52:30 +0200

Init file editor for Android
It features a simple text editor and a viewer that can load both files
and assets. The viewer is used to display the Options Guide.

--------------------------------------------------------------------------------
71c1ce726e | robertxgray | 2023-04-07 09:52:30 +0200

Better support for Android API<21
- Load the native libraries in reverse dependency order.
- Use the AppCompat library to fix the button colours.
- Replace the symbol for the backspace key.

--------------------------------------------------------------------------------
50b06d295b | robertxgray | 2023-04-07 09:52:30 +0200

Create a launcher activity for Android
Base launcher that only starts the game. More features will be added in
the future.

--------------------------------------------------------------------------------
f9f9d0231b | robertxgray | 2023-04-07 09:52:30 +0200

Use common image resources in the Android project
The Makefile copies the needed resources to:
  - android-project/app/src/main/res/drawable

--------------------------------------------------------------------------------
25214051b3 | Nicholas Feinberg | 2023-04-06 21:58:03 -0700

Rework Call Imp
Call Imp is one of the least popular starting spells in Crawl (a
position for which there is some stiff competition!). There are two
major reasons for this:

1. The variance in quality between different imps encourage repeatedly
   re-casting the spell before fights to get the 'best' imp. This is
   not a lot of fun.
2. Crimson imps are very frustrating to work with. Their tendency to
   blink around, while delightfully impish, means that they waste a
   ton of time. This is not the most enjoyable balance mechanism.

Also, it doesn't meaningfully scale with spellpower. Players don't
care that much about this, but it's not great.

So let's try mixing things up. Call Imp now always summons one type
of imp, the brand-new, shiny Cerulean Imp. Cerulean imps come with
a little spear, perfect for hanging out behind you or your buds and
stabbing gnolls with. The spear starts at -4, and scales up to +1 at
max power. Also, max power is now 50 (was 100), matching other L2s.

This might be wildly overpowered! Let's see how it goes.

--------------------------------------------------------------------------------
e495a94dc4 | Nicholas Feinberg | 2023-04-06 21:57:43 -0700

New monster: cerulean imp
As crimson imps are to fire, white imps are to ice, and iron imps are
to earth, so are cerulean imps to the air. They move fast, carry spears,
and are not currently used anywhere. More to come.

--------------------------------------------------------------------------------
fb0d676c02 | Nicholas Feinberg | 2023-04-05 21:55:11 -0700

Fix friendly fire
Broken in abb061897f7b570d6fe8f0abf22fc0f8a34d7bbc.

--------------------------------------------------------------------------------
ecba963dcd | Nicholas Feinberg | 2023-04-05 15:31:55 -0700

Randart dragon scale tiles (Sastreii)

--------------------------------------------------------------------------------
3371b13838 | Nicholas Feinberg | 2023-04-05 13:38:58 -0700

Show AFF_YES for plasma beams with certain targets

--------------------------------------------------------------------------------
de262b677f | Nicholas Feinberg | 2023-04-05 13:38:58 -0700

Fix plasma beam targeter display
Should show the full line that beams can travel to hit targets.

--------------------------------------------------------------------------------
6f0cfe7724 | Medrano83 | 2023-04-05 16:51:25 +0200

Merge pull request #3067 from robertxgray/hotfix/debian_fonts
Three fixes for release CI workflows
--------------------------------------------------------------------------------
30c9307041 | Nicholas Feinberg | 2023-04-04 23:02:22 -0700

Fix corruption FX
Broken by 9fa57824fd46 (2012!), which caused terrain retiling to be
wiped out on load. Now that nice corruption should stick around
even after you come back to the game :)

--------------------------------------------------------------------------------
e7fda06224 | Nicholas Feinberg | 2023-04-04 22:37:58 -0700

Add a little corruption around banished creatures
Recolor walls & floors. Seems cool!

--------------------------------------------------------------------------------
5d778dfbfc | Nicholas Feinberg | 2023-04-04 22:18:05 -0700

Slightly buff chain mail
Encourage use of it a little more. Move EVP to 14 (from 15) and
give it a chance at ponderousness. Goal is to encourage early-mid
use of chain a little more.

--------------------------------------------------------------------------------
29429fb7b5 | Nicholas Feinberg | 2023-04-04 22:06:38 -0700

Slightly reduce Scorch's power scaling
It's juust a trifle strong. Take it from max power 2d10 to 2d9.
(0-power scorch is still 2d5.)

--------------------------------------------------------------------------------
be57942821 | Nicholas Feinberg | 2023-04-04 22:04:30 -0700

Kindle Blastsparks -> Volatile Blastmotes
A few changes:
- Move it from Fire/Air/Tloc to Fire/Tloc. Three schools was a tough
  sell for what the spell offered, it's a bit tricky to make more
  powerful (since increasing damage sometimes makes it worse), FE
  already has enough schools to train, and Plasma Beam now covers
  the Fire/Air 'niche'.
- Rename it to Volatile Blastmotes. People dislike kindling. I don't
  know why. Sparks aren't as relevant now that it's not an Air spell.
  (Tile colors are a little unfortunate but oh well.)
- Shufflle around some books. Remove the book of Maledictions.

--------------------------------------------------------------------------------
e6d4a54d57 | Nicholas Feinberg | 2023-04-04 16:48:41 -0700

Remove Summon Demon and Summon Elemental (Ge0ff)
From the manual.

Cont'd from eb620a33452e (2020) and f6694988d3990 (2014).

--------------------------------------------------------------------------------
a41ad49a19 | Nicholas Feinberg | 2023-04-04 12:57:04 -0700

Add orb randart tiles (Sastreii)

--------------------------------------------------------------------------------
eadee89a7f | Nicholas Feinberg | 2023-04-04 12:57:04 -0700

Make swamp and fire dragons more distinct (Sastreii)
Partially for colorblind friendliness.

--------------------------------------------------------------------------------
a5943265da | advil | 2023-04-04 09:48:35 -0400

feat: add a timeout to tileschat /kick
This makes this feature a bit more useful. The timeout is not saved
across sessions so this is more of a quick solution to some chat issue
than anything.

--------------------------------------------------------------------------------
bbea71524b | advil | 2023-04-04 09:48:35 -0400

fix: don't log blocklist restores
This is sort of useful for seeing who is blocked, but it also fills the
logs with annoying usernames, so remove it. Admins can get this info by
looking at the db, and blocks themselves are still logged.

--------------------------------------------------------------------------------
46802780a4 | advil | 2023-04-04 09:48:35 -0400

fix: explicitly handle a socket closed case
The `write_message` call that this is wrapping is not actually
guaranteed to be async, so we need to duplicate the exception handling
code for the case where a socket is closed during a write.

--------------------------------------------------------------------------------
a14d1daa06 | advil | 2023-04-04 09:48:35 -0400

fix: prevent a (harmless?) exception in webtiles
Recent changes make it more typical to send the lobby in an async
fashion, but that means (I think) that the `send_lobby_html` can
occasionally get sequenced after a close call, if a connection opens and
closes immediately for example. This is resulting in a Tornado exception
that is not very informative on the `render_string` call. This changes
adds an early return for the call that would crash.

--------------------------------------------------------------------------------
a6910c8ee8 | Nicholas Feinberg | 2023-04-03 22:34:35 -0700

Make Plasma Beam work with spellforged servitor
Seems extremely cool :) This code scares me but I think it works?

--------------------------------------------------------------------------------
abb061897f | Nicholas Feinberg | 2023-04-03 22:34:31 -0700

Extract beam::good_to_fire()
It's a surprise tool that will help us later.

--------------------------------------------------------------------------------
6562478734 | Nicholas Feinberg | 2023-04-03 22:07:25 -0700

Re-buff Plasma Beam to level 6 (acrobat)
Revert the damage nerf to Plasma Beam and move it up to spell level 6.
This should hopefully make it long-term useful for more characters and
encourage more interesting skilling choices by more strongly encouraging
investing in both air and fire to get it castable.

This reverts commit 5f1da4a474525568f6a61c8a6c006e096d86d7e4.

--------------------------------------------------------------------------------
7debd8f65e | Nicholas Feinberg | 2023-04-03 22:02:04 -0700

Shuffle Plasma Beam's books around
It should really be in both a fire book and an air book, not just
two air books.

--------------------------------------------------------------------------------
5d9b765f9c | Nicholas Feinberg | 2023-04-03 21:59:12 -0700

Don't make plasma beam leak invisible mons (acrobat)

--------------------------------------------------------------------------------
f34089d22e | Nicholas Feinberg | 2023-04-03 21:54:05 -0700

Reduce ranged weapon noise
From 7 to 5. This should make them a bit less noisome early game.

--------------------------------------------------------------------------------
99b7bfc59d | Nicholas Feinberg | 2023-04-03 21:52:31 -0700

Rework out-of-LOS ranged weapon noises
Be explicit about which weapon makes which noise, more or less.
Don't make people memorize that a whirr is a sling or whatever.

Be very silly about triple crossbows. They're a silly weapon.

--------------------------------------------------------------------------------
0d87f670db | Nicholas Feinberg | 2023-04-01 21:30:39 -0700

Buff orbs of energy & Wucad Mu further
After discussion and consideration, move the refund chance for orbs
of energy from 1/6 to 1/5. (Wucad Mu's chance is double orbs'.) The
old numbers were a little too conservative; these numbers might be
conservative too, but I'm worried about pushing Wucad Mu too far.

--------------------------------------------------------------------------------
44278198b4 | patrick | 2023-04-01 21:09:27 -0400

Update an artefact shop for the new reality
Add magical staves to the Antique Artefacts shop, because they can be
artefacts now.

--------------------------------------------------------------------------------
8e3194618a | Implojin | 2023-04-01 19:17:43 -0500

docs: update crawl-dev log urls

--------------------------------------------------------------------------------
7f2e898f52 | Nicholas Feinberg | 2023-03-31 21:51:58 -0700

Update the changelog

--------------------------------------------------------------------------------
0638232e92 | Nicholas Feinberg | 2023-03-31 16:17:51 -0700

Fix: minor issue with ogre tile colors (Sastreii)

--------------------------------------------------------------------------------
4aa63f3706 | patrick | 2023-03-31 19:04:16 -0400

Fix compressed_dpeg_circular_temple again (Sentei)

--------------------------------------------------------------------------------
f56873caf1 | Medrano83 | 2023-04-01 00:58:26 +0200

Fix GitHub Actions output parameters
An error was introduced when migrating from the obsolete set-output
commands in 94e0f26.

--------------------------------------------------------------------------------
28e3bdbff4 | Medrano83 | 2023-04-01 00:13:43 +0200

Fix AppImage builds
The GitHub Actions Runner no longer provides FUSE 2 by default.
Ref: https://github.com/AppImage/AppImageKit/wiki/FUSE

--------------------------------------------------------------------------------
8c6280c012 | Medrano83 | 2023-04-01 00:13:43 +0200

Fix hardcoded font paths in Debian packages
Use fontconfig to find the DejaVuSans ttf resources. This is the same
solution used in the Fedora packages.

Closes #1344

--------------------------------------------------------------------------------
7e3032bf44 | Nicholas Feinberg | 2023-03-31 13:14:16 -0700

Log errors with buggy UIs
To make debugging easier.

--------------------------------------------------------------------------------
745981c80b | Nicholas Feinberg | 2023-03-31 13:12:34 -0700

Fix Dith webtiles UI
<darkgrey>You can transform into a swirling mass of shadows.(9 HP, Piety---, 
Max HP drain)

The above description was too long after "Piety" turned into "Piety---",
meaning that our regexp for god powers broke, meaning that we got a
'buggy UI of type describe-god' error.

'Fix' this by shortening the way we describe HP drain in ability costs,
matching how we refer to Drain elsewhere. This is a bit fragile :)

--------------------------------------------------------------------------------
a366339e96 | Nicholas Feinberg | 2023-03-31 12:58:15 -0700

Remove gauntlet shapeshifters (CarefulOdds)
Without any sort of time pressure or ability for shapeshifters to
come after you, it's too easy to just wait until they change into
an easy form before entering their arena.

--------------------------------------------------------------------------------
89a915e538 | Nicholas Feinberg | 2023-03-31 12:29:12 -0700

Welcome Implojin to the devteam!
🎊

--------------------------------------------------------------------------------
adcbbbcd72 | Nicholas Feinberg | 2023-03-31 12:23:58 -0700

Initialize explore mode in webtiles

--------------------------------------------------------------------------------
a022fb42d2 | Kate | 2023-03-31 18:49:19 +0100

Fix a targeting check for Plasma Beam (#3057)
Let fire-immune monsters be considered valid targets, as long as they're
not also electricity-immune. Closes #3057.

--------------------------------------------------------------------------------
c60b083988 | Kate | 2023-03-31 18:49:19 +0100

Fix a killer klown message (#3060)
Closes #3060.

--------------------------------------------------------------------------------
8c80f4669f | Nicholas Feinberg | 2023-03-31 10:15:45 -0700

Underscore a fix (nicolae)
Sigh.

--------------------------------------------------------------------------------
2ae22b6899 | advil | 2023-03-31 09:06:29 -0400

fix: a variable capture bug in block/kick
Lambdas only do lexical capture by default, resulting in a hilarious set
of bugs in this code that I didn't initially catch. Use default values
for these lambdas to capture by value, per:
https://docs.python.org/3/faq/programming.html#why-do-lambdas-defined-in-a-loop-
with-different-values-all-return-the-same-result

--------------------------------------------------------------------------------
2ab08093c7 | advil | 2023-03-31 08:18:13 -0400

feat: convert webtiles muting to blocking
This commit converts the existing mute feature into much more absolute
control over webtiles chat for players. A player can now block specific
spectators from their games, block anon spectators (`/block [anon]`),
and disable spectating altogether (`/block [all]`). It didn't seem
necessary to have both features, so I've just reused existing code and
db tables and changed the chat commands + behavior.  Existing mutelists
are converted to blocklists.

* chat commands aren't renamed, and so the old ones don't work
* the underlying db table isn't renamed, it's a pain to do
* admin users can't be blocked
* I added a /kick command that doesn't block

--------------------------------------------------------------------------------
497892bb89 | advil | 2023-03-31 08:18:13 -0400

fix: tweak some default status file behavior
Possibly this shouldn't write on start/stop at all, but if it's going
to, make the call async. Also tweak the default value for how often this
is to write (5s is excessive I think).

--------------------------------------------------------------------------------
f3ab3527aa | Nicholas Feinberg | 2023-03-30 21:19:11 -0700

Hopefully fix a book name, again
Added in 93115170b90, half-fixed in 36a728ae673.

--------------------------------------------------------------------------------
faedca33fd | Nicholas Feinberg | 2023-03-30 21:17:20 -0700

Maybe fix a cloud crash
And rearrange a var to be initialized closer to where it's used.

--------------------------------------------------------------------------------
b7c98f8d04 | Nicholas Feinberg | 2023-03-30 21:08:47 -0700

Show explore mode in the webtiles HUD
Matching local tiles & wizmode.

--------------------------------------------------------------------------------
b3db690511 | Nicholas Feinberg | 2023-03-30 20:15:34 -0700

Fix Wucad Mu's description
The DESCRIP was out of sync with the item description.

--------------------------------------------------------------------------------
45e4c8609a | Nicholas Feinberg | 2023-03-30 20:12:30 -0700

Add a few hoppy new tiles (Sastreii)
Prince Ribbit, cane toad and blink frog.

--------------------------------------------------------------------------------
9b59a09336 | Nicholas Feinberg | 2023-03-30 10:17:43 -0700

Fix the mailmap
Oops!

--------------------------------------------------------------------------------
38647d8619 | Nicholas Feinberg | 2023-03-30 10:15:56 -0700

Welcome Félix Medrano to the devteam!

--------------------------------------------------------------------------------
42e074c17a | Kyle Rawlins | 2023-03-30 10:56:35 -0400

Revert "Add indicator for rampage"
This is apparently crashing

This reverts commit f9081046c1c5e1a7278961f3c865d7dbffa71ba7.

--------------------------------------------------------------------------------
d452b5e7fa | Zhang Kai | 2023-03-29 22:52:39 -0700

Update ZH translation
Resolves #3062.

--------------------------------------------------------------------------------
08c09530be | Nicholas Feinberg | 2023-03-29 22:48:57 -0700

Remove lava orcs (visually)
Cut some code that's been obsolete since f1e20021f53d (2017).

--------------------------------------------------------------------------------
f9081046c1 | Monkooky | 2023-03-29 22:43:53 -0700

Add indicator for rampage
Adds an icon indicating which directions will trigger a rampage.

Closes #2911.

[Committer's note: some reformatting, fixed bugs, replaced icon,
 added webtiles support, removed option pending complaints.]

--------------------------------------------------------------------------------
b9aa53057d | Nicholas Feinberg | 2023-03-29 16:03:26 -0700

Remove choko piety (CarefulOdds)
Show piety cost pips for applicable abilities to despoiler em a bit
and make it easier to tell how much stuff really costs. (On average.)

--------------------------------------------------------------------------------
2b4189239c | Nicholas Feinberg | 2023-03-29 16:03:26 -0700

Remove abilflag::piety
Unused since the removal of Injury Mirror (b4513a33dfc25, 2021).

--------------------------------------------------------------------------------
3818848631 | Kate | 2023-03-29 22:06:26 +0100

Update new dev checklist

--------------------------------------------------------------------------------
327ade24ea | Nicholas Feinberg | 2023-03-29 13:40:04 -0700

Fix a visual bug with Ignis abandon (Undo)
Redraw your AC after you lose Fiery Armour.

--------------------------------------------------------------------------------
e39c426379 | Nicholas Feinberg | 2023-03-29 10:01:46 -0700

Channeling tweaks and fixes (acrobat, kate)
Make Wucad Mu's -Wiz penalty match orb of energy's (rather than
being double it), and fix all miscasts getting refunded regardless
of whether channeling is held.

--------------------------------------------------------------------------------
cec3b41aec | Nicholas Feinberg | 2023-03-28 22:28:20 -0700

Re-re-rework channeling
Continuing from 08fbeb92c1a1, b207118a1a4a, and 17eb6287541f, this
once again revamps orbs of energy and the staff of Wucad Mu. They're
much simpler now. Both give a chance of refunding spells - 1/6 for
orbs of energy, 1/3 for Wucad Mu, 100% for miscasts regardless.
However, they apply a -Wiz penalty - orbs of energy give the
equivalent penalty to 2.5 levels of wild magic, and Wucad Mu again
gives twice that.

For simplicity, the interaction with Evocations has been removed.
(It's nice for Evocations to be mainly useful for active effects,
anyway.)

In the case of orbs of energy, this is intended to be a tradeoff
vs shields, since both apply a success penalty to your spells.
Orbs of energy give more killpower, but of course no defenses. With
Wucad Mu, you trade a spell enhancer and spell success for quite a
lot of MP.

Let's try this out.

--------------------------------------------------------------------------------
03d3dc51d9 | Nicholas Feinberg | 2023-03-28 20:29:39 -0700

Differentiate crossbows and longbows (acrobat, sentei)
Continuing from 9b1cab27183d4e, continuing from 2f8d10eca674,
decrease arbalest base damage by 1. This makes arbalests (slightly)
better* than longbows until Ranged Weapons 6, after which longbows
pull away and eventually do ~16% more damage per aut. This should
hopefully make longbows feel a bit more exciting and differentiate
them more from arbalests.

Decrease hand crossbow base damage by 1 to keep it lower than arbalests'.

Arbalests still do 25-40% more damage than shortbows (depending on sklevel).

*With 0 enchantment, no brand, zero slaying, and against a 0 AC enemy.

--------------------------------------------------------------------------------
cf5f444c16 | Nicholas Feinberg | 2023-03-28 13:54:52 -0700

Slick slippers: don't trample off stairs mid-climb
Surprised players (ie counterintuitive) and a bit too hard to balance.
Should be plenty of exciting downside without that specific interaction.

Also reduce EV to +4 (from +5), as a tiny counterbalance.

--------------------------------------------------------------------------------
5f1da4a474 | Nicholas Feinberg | 2023-03-27 22:49:50 -0700

Make Plasma Beam less extreme
Reduce damage to 25 (from 20) and reduce damage to 2/3rds of its
previous value. It was doing >50% more damage than starburst or iron
shot on a double hit, and those are higher level spells - more than
double fireball's damage. It's louder and less accurate than those
spells, and has worse targeting, but there's a limit to how much
that buys you. Let's smooth out the lows and the highs of the spell
a bit.

--------------------------------------------------------------------------------
57031e3d82 | Nicholas Feinberg | 2023-03-27 22:18:32 -0700

Show plasma beam's to-hit (acrobat)

--------------------------------------------------------------------------------
1dd620b518 | Nicholas Feinberg | 2023-03-27 22:09:17 -0700

Fix: make fiery plasma unblockable (acrobat)
beem.is_beam = true

--------------------------------------------------------------------------------
bf40cfac39 | Nicholas Feinberg | 2023-03-27 07:44:02 -0700

Refactor inaccuracy (Monkooky)
Closes #2959.

--------------------------------------------------------------------------------
53dc5368d7 | Monkooky | 2023-03-26 19:36:08 +0000

Fix cloud side effects
Fixes  #3058

--------------------------------------------------------------------------------
4fa250aae5 | Monkooky | 2023-03-25 22:56:19 -0700

Fix fear.
Monsters would previously snap out of fear even when hit, so long as they were 
below half health and were not cornered. This fixes that.

If there are still any monsters that are supposed to retreat until above half 
health, this breaks them.

--------------------------------------------------------------------------------
076f283afc | Monkooky | 2023-03-25 22:55:06 -0700

Make condenser vane good god approved
Good gods currently get upset only when condenser vane rolls Negative Energy 
clouds.
The chance of rolling Negative Energy clouds is somewhere in the vicinity of 
1/1000 at 0 evocations, rising dramatically as evo skill increases.
This creates an odd incentive to not skill evocations.

Squashing negative energy clouds (as opposed to rerolling) was chosen to be the 
minimum change that resolved the problem.

--------------------------------------------------------------------------------
ec5dcfc036 | Nicholas Feinberg | 2023-03-25 22:52:18 -0700

Increase thunderstorm damage
When they were first added in 75deb85f6e81443, thunderstorms were
intended to be a 'high-tier' cloud type. They currently dodge resists
that fire/cold clodus don't and do spiky damage, but that's not enough
to make them super exciting. Let's increase their damage from an
average of 13.5/dAut to 18.25, a ~33% increase. (Fire/cold clouds do
14 damage/dAut vs monsters.)

New max damage per strike for a 1 dAut turn is 50. (Was 37 before
this commit and, uh, a slightly mysterious amount before the preceding
commit.)

--------------------------------------------------------------------------------
298cdec9ad | Monkooky | 2023-03-25 22:35:22 -0700

Fix and refactor thunderclouds
Fixes #3050.
Closes #3053.

Refactors thunderclouds to minimize their special casing.
Adjusts thundercloud damage to on average equal normal cloud damage,
but a bit burstier.

[Committer's note: tweaked implementation to avoid copies.]

--------------------------------------------------------------------------------
af2f02e8c5 | Nicholas Feinberg | 2023-03-25 22:21:31 -0700

Do a proper rim job on randart staff shadows (Sastreii)
Fix goofy looking outlines around randart staves' shadows.

--------------------------------------------------------------------------------
bd1e3d8e73 | Nicholas Feinberg | 2023-03-25 22:17:17 -0700

Stop branding corpses
Obsolete since a69f94b37aa3bb0651baba4ae4920ba3ca99b7cd (2020).

--------------------------------------------------------------------------------
3bd36bede5 | Nicholas Feinberg | 2023-03-25 22:13:39 -0700

Show randart staff brands (Sastreii)
Also do some refactoring.

--------------------------------------------------------------------------------
fc935e4819 | Nicholas Feinberg | 2023-03-25 22:02:42 -0700

New tiles (Sastreii)
Slug zombie (eww!), monstrous menagerie, elemental & olgreb staffs.

--------------------------------------------------------------------------------
e5077277c9 | Kyle Rawlins | 2023-03-25 11:14:40 -0400

fix: prevent a race condition in game startup
If a signal is received before the execvpe call in a child process while
running crawl, the server's finally block could get called, deleting the
pidfile. This fix should head that off, though it's not a general fix
for races here (so I've also added a bunch of comments).

--------------------------------------------------------------------------------
c8157cb160 | Kyle Rawlins | 2023-03-24 17:45:20 -0400

fix: color equipped items in use item menus
This was working as intended, in that the default rule explicitly had an
inventory tag (so I guess there was a bug before), and therefore
shouldn't have had a highlight in use item menus. I don't see any
reason to restrict this to just inventory.

Also, document the tag for these menus, and tweak a few more things in
the menu_colour docs.

--------------------------------------------------------------------------------
10c84c77b0 | Kyle Rawlins | 2023-03-24 17:06:03 -0400

fix: shop colors

--------------------------------------------------------------------------------
a0a21ad780 | Kyle Rawlins | 2023-03-23 19:39:52 -0400

fix: an unhandled no-ttyrec case

--------------------------------------------------------------------------------
e0d47acfc0 | Kyle Rawlins | 2023-03-23 16:23:15 -0400

fix: a sync issue in webtiles shutdowns
I *think* this might be why webtiles isn't reliable shutting down; when
a lot of sockets are disconnected around the same time, some time the
watcher can (somehow) get removed from the player's _receivers list
before this gets called.

--------------------------------------------------------------------------------
4a46532650 | Kyle Rawlins | 2023-03-23 15:50:25 -0400

fix: don't disable ttyrecs in the default config

--------------------------------------------------------------------------------
bbd5a6ad7e | Kyle Rawlins | 2023-03-23 15:43:33 -0400

feat: option to disable ttyrecs at the server level
Previously you had to do this per-game, and it was a pain.

--------------------------------------------------------------------------------
5e84b56f07 | Nicholas Feinberg | 2023-03-23 12:33:25 -0700

Make Majin-Bo vampirism trigger on Polar Vortex (Monkooky)

--------------------------------------------------------------------------------
2eac9ac288 | Aliscans | 2023-03-23 10:48:49 -0400

FIX: Make the "browse character notes" screen obey menu_colour.
The ability to highlight notes in different colours in the "browse
character notes" display (constrolled with the menu_colour option) was
lost with a02aae867c.

This returns it, but with one small change. If a note is too long to
display on a single line of the display, the colour is chosen based on
the whole note, instead of assessing each line of output separately.

--------------------------------------------------------------------------------
d60598b1e9 | Kyle Rawlins | 2023-03-23 10:47:17 -0400

fix: further repair work on `menu_colour`
This has always been a weird option, because it is mostly about items,
but has also (at some points) worked for things that aren't items, and
really share no resemblance to items. This is pretty bug-prone (e.g. see
8abc85282e38), and has also just led to some of these options silently
failing over time as people failed to maintain them (see #3056).

This commit refactors the option so that the "any" or no-tag rules do
not apply to any many, but rather any item menu. "any" is
correspondingly renamed to "item" in the docs (though "any" is still
usable for back compatibility). I've also fixed pickup and "resists"
behavior, improved the documentation, and removed a few of these tags.

In particular, spell/ability are broken, have been for a very long time
(from just reading the code, I doubt they worked so long ago as 0.3,
though I didn't actually test), so I've just removed them from the docs.
I'm not opposed to them returning but in modern crawl it'd be a bit
tricky, since they would need to not override the hard-coded rules for
these menus. "notes" also doesn't work but #3056 will fix that (though
to be honest, if this PR didn't exist I'd also just remove that tag).
The help menu stuff probably semi-works (I didn't test carefully),
though I'm really unsure of the value. I don't know if it would be crazy
to make this option item-only, move the `note` one to a different
option, and remove `help`.

--------------------------------------------------------------------------------
b9d0489357 | Nicholas Feinberg | 2023-03-22 16:29:08 -0700

Make held ego demon weapons purple again
Since purple is closer to red (the item tile) than green.

--------------------------------------------------------------------------------
4458efe7bc | Nicholas Feinberg | 2023-03-22 16:21:45 -0700

New plasma, weapon tiles (Sastreii)
Plasma Beam and player doll demon ego/randart tiles.

--------------------------------------------------------------------------------
7f6bbad527 | Neil Moore | 2023-03-22 16:26:07 -0400

Remove an obsolete reference to EE stones
[skip ci]

--------------------------------------------------------------------------------
01031c21c8 | Kyle Rawlins | 2023-03-22 13:31:01 -0400

fix: remove 2 altars from size 14 compressed_dpeg_circular_temple
Not sure if this is the intended 14 altar plan, but it comes from taking
the double listing of `C` as a cue, and seems to work.

--------------------------------------------------------------------------------
92c0bcffe8 | Nikolai Lavsky | 2023-03-22 20:18:47 +0300

docs: update `menu_colour` documentation a bit more
`(` and `)` were the keys for displaying wielded and secondary weapons
back in 0.4. This behaviour was moved to `}` in 0.5 (42d8d07399), then
it was assigned to `Ctrl-v` in 0.10 (875129a2f9), and finally it was
removed in 0.11 (ff9fb87a6f). The corresponding part in the options
guide hasn't been updated since 2009.

Also, rip rods.

--------------------------------------------------------------------------------
960216f51a | Kyle Rawlins | 2023-03-22 09:40:28 -0400

docs: update `menu_colour` documentation
This was out of date in many ways, referring to various removed items,
food, etc., and missing some tags that are actually useful. I've also
tried to clarify the scope of this option as per discussion in #2873.
(As a side note, it's non-ideal that notes are colored with this option,
that should probably get broken out. It also seems like `any` prefixes
shouldn't apply across menu types, or alternatively there should be a
better prefix for indicating "items only".)

I did remove a bunch of the examples from the docs, because they were
outdated and somewhat confusingly redundant. It might be good to have
more examples in here, but they'd need to be a bit more current and less
redundant with the defaults. Maybe someone can pull a few from a
community rc?

Also fixed a few things in the actual defaults:
* runes were missing a color because they are no longer misc items
* removed old annotations related to food, this may cause some
  back-compat errors but that's probably ok at this point.

--------------------------------------------------------------------------------
0ad0bf95bc | Nicholas Feinberg | 2023-03-21 16:57:17 -0700

Add new randart staff tiles (Sastreii)
Oooh!

--------------------------------------------------------------------------------
828ccac5a3 | Nicholas Feinberg | 2023-03-21 14:04:43 -0700

Remove an unused return type (Monkooky)

--------------------------------------------------------------------------------
b1aff02ba6 | Nicholas Feinberg | 2023-03-21 11:25:36 -0700

Allow randartifying staves (dwetuski)

--------------------------------------------------------------------------------
b09b86bb1d | Kate | 2023-03-21 15:13:52 +0000

Fix a test failure (advil)
As per the comment, it would be nice if we could automatically check for
spells with no monster implementation, since adding new spells to this list
is very easily missed!

--------------------------------------------------------------------------------
7493c07aab | Nicholas Feinberg | 2023-03-20 17:49:16 -0700

Describe randart staff properties (master_daffy)

--------------------------------------------------------------------------------
9323dee000 | Nicholas Feinberg | 2023-03-20 11:56:43 -0700

Add some fun orbs to zigsprint
Seems like a funny gimmick to go into a zig with an orb of guile or
of mayhem. Doubt it's better than just grabbing Gong, but it's nice
to give options :)

--------------------------------------------------------------------------------
0ff054e9dc | Kate | 2023-03-19 23:13:21 +0000

Let Battlesphere fire on any destructive spell
Including non-conjurations, using the same spell list that Vehumet
supports. Refactor to use a spflag for those spells, and list any known
spells that would activate the Battlesphere in the spell description.

--------------------------------------------------------------------------------
27667f90d9 | Kate | 2023-03-19 19:55:18 +0000

Display Plasma Beam's targeter by default (acrobat)

--------------------------------------------------------------------------------
98134172ad | Nicholas Feinberg | 2023-03-19 12:38:08 -0700

Fix: Veh should support Plasma Beam

--------------------------------------------------------------------------------
1509c8bc92 | Kate | 2023-03-19 17:41:11 +0000

Adjust Xom mutation handling
Remove mutflag::xom, which marked a subset of bad mutations that Xom was
particularly likely to apply. Instead of using a special-cased way of
choosing mutations for Xom's bad mutation action, just use the standard
random mutation codepath but with a slightly higher chance of picking a bad
mutation (a 50/50 split of good/bad, instead of 60/40 for normal random
mutations). This should work out as giving a similar ratio of mutations but
without the special-cased handling of some mutations being extra common.

Closes #2614.

--------------------------------------------------------------------------------
79ad299dcf | Kate | 2023-03-19 17:41:11 +0000

Slightly reword Jiyva description (Implojin)
Use alternate wording to indicate that anything marked as a "fellow slime"
can eat items, not just jellies specifically. Closes #2960.

--------------------------------------------------------------------------------
9934a0ce24 | Nicholas Feinberg | 2023-03-18 18:26:45 -0700

Allow randart staves
The itemization game for 'casters' has always been a bit less exciting
than for more melee-focused characters. Melee characters have a wide
variety of weapons to play with, and can try to enchant up their weapons,
rebrand them, or maybe even luck into an exciting artefact. 'Casters'
mostly look for an appropriate staff or two, or maybe some 'stat sticks' -
but there isn't much upgrade potential. Once you have your staff, you're
set.

Tweak this a bit by allowing randart staves to generate. This should
hopefully be exciting for players (wow, check out this super shiny item!)
and might also lead to interesting strategic decisions - is this staff
good enough to push more more toward a particular spell school, or casting
in general?

--------------------------------------------------------------------------------
e10d75a369 | Nicholas Feinberg | 2023-03-18 14:07:13 -0700

Remove _randart_is_conflicting
Wildly redundant with _populate_jewel_intrinsic_artps().

--------------------------------------------------------------------------------
314a488677 | Kate | 2023-03-18 19:24:52 +0000

Don't let Plasma Beam target allies or conjured monsters

--------------------------------------------------------------------------------
9550c5b0f0 | Kate | 2023-03-18 19:13:22 +0000

Show full beam paths in Plasma Beam's targeter
Rather than just individual targets, so that it's a little clearer how it
aims.

--------------------------------------------------------------------------------
950d97f59e | Kate | 2023-03-18 18:59:27 +0000

Don't let Plasma Beam target enemies through fog (gammafunk)

--------------------------------------------------------------------------------
5a111fc481 | hellmonk | 2023-03-18 11:39:51 -0700

feat: new spell, Plasma Beam
Proposed lightning bolt replacement. It fires two beams at the most distant
enemy within range, one elec and one fire. Properties are otherwise similar
to lightning bolt. Goal is to trade the boltbounce minigame for a different
kind of positional targeting. This needs some kind of handling for invis
enemies but I can't decide how to do it.

Closes #2902.

--------------------------------------------------------------------------------
c239213254 | Kate | 2023-03-18 18:34:06 +0000

Reduce Ashenzari skill boost (again (again))
After multiple previous reductions it's still extremely strong. Continue
gradually bumping it down to be a bit more reasonable.

--------------------------------------------------------------------------------
b1c6e1a8ff | Kate | 2023-03-18 18:34:06 +0000

Move Ashenzari's trap detection to 4*
Instead of frontloading so many useful passives, move one of the more
desirable ones later.

--------------------------------------------------------------------------------
38b0942921 | Kate | 2023-03-18 18:34:06 +0000

Adjust messaging for Transference drain (CarefulOdds)
To reflect it being a passive change to the ability.

--------------------------------------------------------------------------------
82bc4aa17e | hellmonk | 2023-03-18 11:26:27 -0700

feat: Sleepcap vault

--------------------------------------------------------------------------------
860c267598 | Nicholas Feinberg | 2023-03-18 11:22:20 -0700

Don't let spectral weapons attack themselves (ragingrage)
One of the least impactful commits in Crawl's history.

--------------------------------------------------------------------------------
4ae07df7fc | Nicholas Feinberg | 2023-03-18 11:18:38 -0700

New weaponless Nessos & Sigmund variants (Sastreii)
Technically Sigmund should really show an alt weapon in his left hand,
but it'd take work, and it's kind of hard to get him to use a different
weapon.

--------------------------------------------------------------------------------
7006a028af | Kate | 2023-03-18 15:20:32 +0000

Move an Armataur quaffing message
Don't say that you slurp down a potion unless you've definitely actually
done so - previously it would be possible for this message to display
when cancelling a quaff.

--------------------------------------------------------------------------------
23479c02f2 | Nicholas Feinberg | 2023-03-17 22:09:55 -0700

Don't generate ego troll armour
Oops!

--------------------------------------------------------------------------------
be4bc1ceb8 | Nicholas Feinberg | 2023-03-17 15:48:18 -0700

Allow entering explore mode in dgamelaunch
Don't see any good reason to prevent this. This has been configured
since c088e799be5 (2014), when explore mode was first added.

--------------------------------------------------------------------------------
0bd9f85ce6 | Nicholas Feinberg | 2023-03-17 15:46:57 -0700

Add KILLED_BY_EXPLORING
Tragically common, really.

--------------------------------------------------------------------------------
a2f19c967e | Nicholas Feinberg | 2023-03-17 15:24:11 -0700

Properly ban contradictory scarf/orb randarts (acrobat)
No orbs of light with +Inv, orbs of energy with -Cast, etc.

Also allow more scarfs with harm, following the same logic as
non-rF rings getting to have rF.

--------------------------------------------------------------------------------
585d364ce2 | Nicholas Feinberg | 2023-03-17 15:24:11 -0700

Dataify armour egos
And deduplicate scarf/orb gen logic.

--------------------------------------------------------------------------------
417346db89 | Nicholas Feinberg | 2023-03-17 15:24:11 -0700

Force scarves and orbs to generate with egos
Even as randarts.

--------------------------------------------------------------------------------
d47c823769 | Nicholas Feinberg | 2023-03-17 15:24:11 -0700

Minor armour gen refactoring
Flatten logic and tinker slightly.

--------------------------------------------------------------------------------
20749f2c85 | advil | 2023-03-17 17:01:48 -0400

feat: let lua scripts detect hup/ctrl-c
This provides a dlua wrapper to crawl_state.seen_hups (which for scripts
now reports both SIGHUP and SIGINT) and uses it in the seed explorer to
react appropriately. Possibly it would be fine to expose this in clua?

More generally, it would be nice if there were a more automated way to
interrupt lua scripts on a signal, but I'm not sure what that is in the
crawl setup, at least to do in a safe/clean way. Right now a stuck rc
script will eventually trigger a SIGABRT in online circumstances if a
regular kill fails, which does interrupt (and not particularly cleanly).
Locally a stuck script usually requires a manual kill.

--------------------------------------------------------------------------------
08fc0cc78a | advil | 2023-03-17 17:01:48 -0400

fix: more tiles headless adjustments
Handle a bunch more ways in which code should only conditionally depend
on sdl-related state in headless mode.  This is not nearly enough to get
the full game running, and I'm not sure that'll be practical, but arena
runs, as do some rc tests. (RC test mode is still disabled in this
commit though, because it mostly crashes.)

* Default -test mode to headless for local tiles also
* Get ctrl-c working at the command line

--------------------------------------------------------------------------------
b44def57f8 | advil | 2023-03-17 17:01:48 -0400

feat: allow running scripts in all builds
The script/test code is pretty entangled, so this change entails linking
some (more) debug code. But, I don't think that should be a big deal. I
can't guarantee that all scripts work (and maybe some will need to
explicitly check for the right build), but this does allow the seed
explorer to work for straightforward cases outside of debug builds.

--------------------------------------------------------------------------------
981f4ca651 | advil | 2023-03-17 17:01:48 -0400

feat: don't use fake_pty for -test tests
These generally don't need or want ncurses, and are currently running in
headless mode anyways, so don't use fake_pty. In contrast, I've decided
that the stress tests are better by default *not* run in headless mode,
so that they exercise the full ncurses code path (though they now do
work in headless mode).

--------------------------------------------------------------------------------
64c6ef89db | advil | 2023-03-17 17:01:48 -0400

feat: let arena and rc scripts run in headless mode
The main effect of this is to lead stress tests work in headless mode.

This does absolutely no verification of whether rc files are appropriate
to run in headless mode, so a script (or just a normal rc file) that is
interactive will hang. But, an explicit rc argument most be given, so
it's on the user to verify.

Arena should be fine, it's never interactive.

--------------------------------------------------------------------------------
c9e3db4d4a | advil | 2023-03-17 17:01:48 -0400

Headless UI mode
Headless mode is a CLI-triggered mode where crawl suppresses UI
elements, either ncurses or sdl. For ncurses, all display operations are
essentially replaced with noops (except that cursor position is
simulated), and for sdl, an existing proto-implementation of the idea in
the form of `crawl_state.tiles_disabled` is expanded and made more
robust. (This was originally aimed at mapstat and objstat.) The only
build where `-headless` is unavailable in is windows console (though
windows tiles is not tested). One part of the point of this change is to
do away with the need for fake_pty for things like running scripts from
the command line; though to be clear, running certain tests in a way
that exercises UI code is still valuable and won't change.

* Currently, running rc scripts in headless mode isn't possible. This
  will be doable for console, but the current sdl headless code isn't
  robust enough to handle them.
* This commit also forces headless mode for -script and -test for builds
  that can do that.
* This lets ctrl-c send a HUP, and will interrupt tests. Still needs more
  adjustments as HUP has no impact while a long-running lua test or script
  is going.
* This all works on webtiles builds, but webtiles server can't handle
  headless crawl processes (this may be possible to get working).

--------------------------------------------------------------------------------
5d03d06573 | Aliscans | 2023-03-17 17:27:22 +0000

Have Wall Jump's targeter only highlight monsters it could affect.
As things stood, the targeter included every monster next to the
landing location, revealing invisible monsters and obscuring the scope
of the ability. It now only highlights monsters the action would try to
attack.

Closes #3008. Closes #3011.

--------------------------------------------------------------------------------
8574249b47 | Kate | 2023-03-17 17:27:22 +0000

Mark soul-bound monsters as immune to Simulacrum (#3038)
Monster simulacrum takes priority over the player's, so make that clearer
in the interface and don't let the player waste turns trying to target
monsters that have already been soul-bound. Closes #3038.

--------------------------------------------------------------------------------
c518acad8c | Kate | 2023-03-17 17:27:22 +0000

Remove unused code (Monkooky)

--------------------------------------------------------------------------------
333cc4477c | advil | 2023-03-17 10:56:59 -0400

fix: maybe make some menu code more robust
This code can apparently crash, which isn't surprising given how insane
the type handling is. However, I can't immediately see what is crashing.
Probably this could use a bigger rewrite, but this commit tries to amp
up the explicit type checking a bit so that if it crashes, it'll at
least be more apparent why.

--------------------------------------------------------------------------------
5ad918d77d | Nicholas Feinberg | 2023-03-14 15:35:20 -0700

Don't allow double Harm/Resistance (lici)
Oversight with scarf randarts, and a pre-existing issue with shield
randarts. (You could get a weird shield with "rF+ rC+, rF+".)

Would be nice to allow both of these stacking. Maybe sometime when
someone wants to put in the work.

--------------------------------------------------------------------------------
f0aa4a8bf9 | Nicholas Feinberg | 2023-03-14 13:33:54 -0700

Allow orb and scarf randarts
It's cool and exciting to get randarts, and also provides extra
incentives for players to use orb/scarf egos that they might normally
not bother with. These will be quite rare indeed, which makes them
all the more exciting!

Reverts 614d7e5ffcadf8711dbdcfdefc0ba100785c5137 and implements the
functionality it describes of 'guaranteeing a scarf ego'.

--------------------------------------------------------------------------------
1ff12e1e11 | advil | 2023-03-13 21:41:49 -0400

fix: show email in password reset CLI (gammafunk)
Broken in dc488dc59d06da635

--------------------------------------------------------------------------------
c85679547a | Nicholas Feinberg | 2023-03-13 17:31:58 -0700

Give the Thermic Engine a dbrand (ragingrage)
Tag the +ench on hit effect as Rev.

--------------------------------------------------------------------------------
a8ba668304 | Nicholas Feinberg | 2023-03-11 16:38:42 -0800

Maybe fix heavy weapon delay? (acrobat)
I need to take another look at this later.

--------------------------------------------------------------------------------
c727b3d3d6 | Nicholas Feinberg | 2023-03-11 13:47:39 -0800

New Hood of the Assassin tiles (Sastreii)
See also 358383bc755250ed4b6016580a4e583e6013edf8 and 
a7e42e2d2c60e0160f4cd9fd1aec4b594fd5dc50.

--------------------------------------------------------------------------------
ab80c607aa | Nicholas Feinberg | 2023-03-11 13:47:39 -0800

Join the club (Sastreii)
New skullcrusher tiles.

--------------------------------------------------------------------------------
0295b78d7d | advil | 2023-03-11 16:21:57 -0500

fix: prompt menu webtiles formatting (dilly)
Unfortunately there seems to be a mismatch in how webtiles is handling
multiline messages, where it should insert a space before every line
that doesn't have a prefix, but isn't. Looking at the webtiles code this
seems quite hard to fix, so I've retreated to individually printing the
prompt menu lines. (This is how the old `G` menu did this, which is why
it didn't have this bug before.)

--------------------------------------------------------------------------------
110b599a53 | Nikolai Lavsky | 2023-03-11 23:34:35 +0300

text: mention rFlCloud in Ignite Blood's description

--------------------------------------------------------------------------------
5f9855fb91 | robertxgray | 2023-03-11 14:41:02 -0500

Fix ccache caching
The new ccache action adds a prefix and a timestamp suffix to the cache
key by default. We are also adding another prefix and suffix in the
workflow configuration. This doesn't work as expected in most cases so
this commit removes the extra pre/suffixes from the configuration.

--------------------------------------------------------------------------------
ff62baca66 | Nicholas Feinberg | 2023-03-11 07:46:25 -0800

Tweak AF_SLEEP messaging
Don't spam about sleep spores unless the victim is actually put to
sleep, or at least an attempt is made.

--------------------------------------------------------------------------------
ba1e808681 | Nicholas Feinberg | 2023-03-11 07:46:25 -0800

Ease skyshark numbers down a bit
Finding a middle ground between 0b89b74ca80c5 and 6ffb7e90e5a.
turning a big dial taht says "skysharks" on it and constantly looking
back at the audience for approval like a contestant on the price is right

--------------------------------------------------------------------------------
7c8b1a6b49 | Kate | 2023-03-11 15:26:06 +0000

Teach art-data.pl about orbs
Should fix errors with the orb of Dispater's doll tile not being found.

--------------------------------------------------------------------------------
c5d4c5acee | Kate | 2023-03-10 21:19:32 +0000

Update Meteoran vision range on getting the orb (#3041)
Closes #3041.

--------------------------------------------------------------------------------
94e0f26ad8 | robertxgray | 2023-03-10 15:49:54 -0500

Fix Github Actions deprecation warnings
* The current ccache action cannot be updated, it has been replaced
  with the most starred one. This obsoletes the cache action and the
  manual ccache stats management.
* Update the checkout action to v3.
* Update the setup-python action to v4.
* Update the codecov action to v3.
* Replace the obsolete set-outputs commands with the new GITHUB_OUTPUT
  environment file.

--------------------------------------------------------------------------------
2ed206a1a6 | robertxgray | 2023-03-10 15:49:54 -0500

Fix CI builds for Android and more
* Update the Android Gradle plugin and use a compatible Gradle version.
  This improves the build times and fixes the SDK XML related warnings.
* Ccache doesn't get hits on Android because the compiler's mtime
  is different in every build. Change the compiler check strategy to
  content.
* The ccache configuration file created by the setup Github Action is
  ignored by current versions. This affects every build. New steps have
  been added to move the configuration files.
* Proper fix for 093205a. I'm very sorry for that.
* Fix a typo in the cache config for the AppImage builds.
* Use the Maven Central repository instead of the deprecated JCenter.

--------------------------------------------------------------------------------
305f33218d | advil | 2023-03-09 10:23:06 -0500

test: maybe_bool test cases

--------------------------------------------------------------------------------
0c4e4566d2 | advil | 2023-03-09 10:23:06 -0500

build: maybe fix android build

--------------------------------------------------------------------------------
45891bb24c | advil | 2023-03-09 10:23:06 -0500

refactor: convert old maybe_bools to new maybe_bools
This removes the old maybe_bool syntax entirely, and updates all uses of
it in the codebase.

(There are a lot of c-style casts that in principle should be
static_casts here.)

--------------------------------------------------------------------------------
8838f259ad | advil | 2023-03-09 10:23:06 -0500

refactor: rewrite maybe_bool
This commit rewrites maybe_bool to be, argubly, better. See below for
motivation, but here are the practical notes up front:
* `maybe_bool` becomes a class rather than an enum.
* After this commit, nearly anywhere you would write MB_FALSE or
  MB_TRUE you would simply write `false` or `true`.
* Where you would write MB_MAYBE you now should write
  `maybe_bool::maybe`.
* Comparison to `true` or `false` is safe and will do exact
  comparison. (The latter may appear surprising, but it is because
  comparison will cause a bool to be cast to maybe_bool, rather than a
  maybe_bool to be cast down to bool.)
* Semantics change: `maybe_bool::maybe` does not convert to true by
  default under any circumstance.
* In cases where you would have previously written `mb == MB_TRUE` you
  can just rely on a bool cast (`maybe` does not convert to `true`). In
  cases where you would write `mb == MB_FALSE` you can write `!mb`.
* frombool and tobool are replaced respectively by constructors and
  the class method maybe_bool::to_bool (as well as an explicit bool
  cast).
* While bool explicit operators have weird rules and can be used
  implicitly in some cases, there are still times when you'll need
  to do the cast. In particular, if a function returns a bool, to
  return a maybe_bool you'll need to explicitly cast.
* Mixing bools and maybe_bools in logical expressions generally requires
  an explicit cast. (If you write a condition that just uses !, that
  doesn't need one.)

Old `maybe_bool` had the advantage of simplicity: it was just an enum
and as long as these enum values are used consistently, it is pretty
simple to use and as efficient as any integer-based type, with
effectively no implementation code.

However, there are a few complaints about it. First, the naming scheme
was quite ad hoc across the enum values and various functions that used
them.  Second, and more importantly in my mind, the enum-based
implementation led in a very non-clean way to implicit int and bool
casts, and a very ad hoc semantics for this type, especially in its
interaction with boolean expressions. Taken as a three-valued logic, it
is very weird. The law of the excluded middle *is* valid (in the sense
that `p || !p` is always true), but double negation elimination is *not*
valid (i.e. `!!p != p`); the weaker double negation inference `!!!p ==
!p` does hold conceivably classing it with some paraconsistent logics,
though I haven't found an exact analogue (see [1], though this logic
doesn't much resemble L8 there, which has the same double negation
pattern). At a practical level this ad hoc nature made mixing with bools
in both directions weird and somewhat error prone; aside from the above
concerns (which essentially result from MB_MAYBE implicitly casting to
`true`), `true` would cast to the enum value MB_MAYBE, leading to clunky
conversion code in a lot of places, needing to always use MB
constants, and error-prone comparison with regular bools.

This commit tries to systematize things more cleanly, albeit with a much
more complicated implementation. The underlying data type does still
amount to a fancy enum (now an enum class), but it's wrapped with a more
clearly defined class, largely inspired by boost's logic::tribool.  (I
considered whether importing one of the various "`optional` but for
c++11" packages out there might be a solution, but ultimately rejected
this, because these classes tend to have an even weirder, for a
bool-based type, set of implicit conversions to bool). A `bool`
constructor is provided making it generally safe to use `true` and
`false` as e.g. return values, and an explicit cast to bool is provided
that has a better default than MB_MAYBE->true. (In some cases, this may
be the desired semantics, of course, but this is still doable via
`to_bool` or direct checks against false.) The operator semantics is
based on the standard "Strong Kleene" three-valued logic operators,
which provide a (imo) very sensible set of defaults for a three-valued
logic. Note that because of the existence of the bool operator, this
won't let you mix `maybe_bool`s in logical expressions together with
bools without some explicit casting one way or the other.  The
implementation is nearly (but not quite) purely header-based.

As part of this commit, I have implemented everything as a
back-compatibility layer and purely just tried to clarify the semantics
of various instances of maybe_bool in cases where it did get an implicit
conversion. The bulk of this is around `can_wear_item` which does tend
to treat its maybe return as truth-y.  A future commit will convert
MB_TRUE etc into their `maybe_bool::t` etc equivalents.

[1] Kamide 2013, A Hierarchy of Weak Double Negations, Studia Logica 101.6

fix

--------------------------------------------------------------------------------
f5068b961c | Nikolai Lavsky | 2023-03-09 15:09:12 +0300

fix: show rDrown and rBlind in the monster lookup (?/m)
Previously, these resistances were displayed only when inspecting a
monster via `xv`. But, for example, `?/mjelly` didn't mention rBlind
and rDrown at all.

In-game monster descriptions are constructed using a `monster *`.
On the other hand, monster lookup produces descriptions using just
the type and base type of a monster. The latter constructor initialized
the basic resists, but it didn't check for rBlind nor rDrown.

There was no way to check drowning resistance using only the type of
a monster, so this commit adds a new utility function for that.

--------------------------------------------------------------------------------
1aabd4f9c5 | Nicholas Feinberg | 2023-03-07 18:25:41 -0800

Hide spectral weapon attack descriptions (acrobat)
They're misleading now that spectral weapons use the player's stats
for attacks, not the monster's.

--------------------------------------------------------------------------------
928e84d663 | Nicholas Feinberg | 2023-03-07 18:20:03 -0800

Fix knockback beams (acrobat)
Restore the logic from before b7c8574cbb4cc21e112d13fa3a554c3b815787d8.

--------------------------------------------------------------------------------
512cf1e979 | Nicholas Feinberg | 2023-03-06 14:52:41 -0800

GET MAD! (Sastreii)
New tile for the Wrath of Trog. Not the god wrath, the weapon. You
know what I mean.

--------------------------------------------------------------------------------
f88a04b62d | advil | 2023-03-05 16:27:48 -0500

fix: restore non-debug `show_more`
This was apparently broken when I merged the android patch but no one
noticed? (Removed in f8cea274af24, I think it was just mistaken for
TOUCH_UI-specific code.)

--------------------------------------------------------------------------------
707647da51 | Kate | 2023-03-05 20:05:44 +0000

Improve handling of summoning prompts during AoE spells
Spells that summon only flying monsters should now correctly not prompt
with Eringya's Noxious Bog active.

--------------------------------------------------------------------------------
caf70739d4 | Kate | 2023-03-04 21:51:40 +0000

Add new orb of Dispater tiles (Sastreii)
For Dispater themself, as well as item and player doll tiles. Also update
the description to match!

--------------------------------------------------------------------------------
c246efe4b1 | Kate | 2023-03-04 18:17:49 +0000

Don't let Ru try to redirect butterfly attacks (#2988)
Closes #2988.

--------------------------------------------------------------------------------
066f1b0f1d | Kate | 2023-03-04 17:53:19 +0000

Tweak holy_pan to remove teleport closets (#2979)
Historically, Pan vaults got away with having teleport closets under the
assumption that anyone going there would have plenty of means of flight,
digging and/or teleportation, but it's also pretty simple to avoid in this
case. Move one of the of the exits to the opposite side of the river, tweak
some terrain to open up a pathway along one side of the river, and make a
couple of spots (Elyilon's altar island and the pearl dragon cave)
no_tele_into.

Closes #2979.

--------------------------------------------------------------------------------
e1c980b087 | Kate | 2023-03-04 17:07:21 +0000

Remove some iron grates from evilmike_geh (#2980)
They seem to exist to allow players to dig out and fly across some areas of
the lava, but could result in permaflying players getting trapped by
teleporting into the lava area without a way to get through grates. The
areas with grates also place stokers, which are theoretically able to
summon through the grates but in practice were unlikely to do so
successfully - removing the grates and opening up those areas allows the
outer lava monsters a way in.

Closes #2980.

--------------------------------------------------------------------------------
561648f94d | Kate | 2023-03-04 11:36:19 +0000

Fix gods protecting allies from hostile Irradiate (#3033)
Closes #3033.

--------------------------------------------------------------------------------
08b95dd62f | Nicholas Feinberg | 2023-03-03 16:25:16 -0800

Remove ABIL_MAX_EVOKE
This was only used in one place, where it wildly overestimated the
number of evocable abilities the player might have. Replace it with
a hardcoded cludge for now.

--------------------------------------------------------------------------------
bd0d260d8e | Nicholas Feinberg | 2023-03-03 11:13:12 -0800

Add a crawling zombie skyshark tile (Sastreii)
Only for player usage.

--------------------------------------------------------------------------------
320358a0d7 | Nicholas Feinberg | 2023-03-03 11:13:11 -0800

Allow cleaving insane monsters
Match the behavior for trying to swap with neutrals in movement.cc.

--------------------------------------------------------------------------------
744a1ced0f | Nicholas Feinberg | 2023-03-03 10:00:19 -0800

Remove giant fish zombies (Sastreii)
New tiles for skyshark and dream sheep zombies. Twisted...

--------------------------------------------------------------------------------
34551f5589 | Nicholas Feinberg | 2023-03-03 07:15:24 -0800

Break AF_BLODOZERK (Beargit)
No more sleepy sharks!

--------------------------------------------------------------------------------
17996783a1 | Nicholas Feinberg | 2023-03-02 20:43:16 -0800

Simplify the spectral brand
To make it easier to understand how the spectral brand works, rather
than using the stats of a strange 'spectral weapon' monster to determine
accuracy and damage, use the player's stats instead. (Then reduce pre-AC
damage to 70%, matching cleaving.)

This should make the brand scale more reasonably over the course of the
game (especially in the early game), and make it easier to make future
balance adjustments as needed.

--------------------------------------------------------------------------------
5a5fe0d677 | Nicholas Feinberg | 2023-03-02 16:35:48 -0800

New Sleepcap tile (Sastreii)
🍄💤

--------------------------------------------------------------------------------
7c6808c8ce | Nicholas Feinberg | 2023-03-01 16:29:47 -0800

Fix a copy-paste error (nlavsky)

--------------------------------------------------------------------------------
7470db7bff | Nicholas Feinberg | 2023-03-01 16:15:47 -0800

New monster: sleepcap
Playing with sleep mechanics a little more, sleepcaps are an early-D
monster (native to D:4-8) with a sleepy twist. If they deal damage,
they have a 50% chance to KO folks they hit. This is bad if there are
more enemies around (since it lets them approach while you sleep),
and also lets the sleepcap get in a second hit at you with the 2.5x
sleepstab bonus. (Or another monster with much higher damage might
get that hit...!)

These replace the rather boring necrophages as normal D spawns, since
those are basically more boring wights.

Main design goal here is variety. Hopefully players like them! :)

--------------------------------------------------------------------------------
1c18f60749 | Kate | 2023-03-01 21:36:22 +0000

Don't crash when banished by a HD 96 monster
It could happen to any of us, at any time...

--------------------------------------------------------------------------------
9d452a9ddb | Kate | 2023-03-01 21:36:22 +0000

Display melded items on the % overview
There was already handling for this, but it was skipped and just displayed
melded slots as temporarily unavailable (hiding the item).

--------------------------------------------------------------------------------
d090ac843f | Kate | 2023-03-01 21:36:22 +0000

Adjust Harm display on the % overview screen
As with other properties that are rarer/artefact-only, display Harm only if
the player has any levels of it. Display it with two pips so that the fact
that Harm has exactly two levels is visible to the player, move it and
*Rage to the bottom (as the two properties in the second column that aren't
just binary), and shift the equipment column over by a character to make a
little more room.

There are some ideas for a larger rework of the % screen, but in the
meantime this should hopefully be an improvement.

--------------------------------------------------------------------------------
a523dec638 | Zhang Kai | 2023-02-28 20:27:25 -0800

Update ability.txt
Update this file and make some of the sentences smoother.
--------------------------------------------------------------------------------
38cc7db976 | Zhang Kai | 2023-02-28 20:27:12 -0800

Update monsters.txt
Update this file and make some of the sentences smoother by the way.
--------------------------------------------------------------------------------
6f4d8801b8 | Zhang Kai | 2023-02-28 20:27:06 -0800

Update mutations.txt
Update this file and make some of the sentences smoother by the way.
--------------------------------------------------------------------------------
6e8ec0b4a4 | Zhang Kai | 2023-02-28 20:27:01 -0800

Update spells.txt
Update this file and make some of the sentences smoother by the way.
--------------------------------------------------------------------------------
dd12edfdc1 | Zhang Kai | 2023-02-28 20:26:53 -0800

Update unrand.txt
Update this file and make some of the sentences smoother by the way.
--------------------------------------------------------------------------------
aef21d7d98 | Zhang Kai | 2023-02-28 20:26:40 -0800

Update help.txt
Update this file and correct some pronouns by the way.
--------------------------------------------------------------------------------
1789cb11db | Rytis Petronis | 2023-02-28 10:22:10 -0800

Allow harm to stack
Harm is a pretty silly and niche effect. Currently, multiple sources
of Harm don't stack. It's rare that you'll have multiple usable sources
of Harm, but on the occasion that you do, it seems like it'd be fun and
distinctive to allow the effect to intensify somewhat.

The formula used is as follows:
- Damage dealt: 130% at one level of Harm, 145% at two levels.
- Damage taken: 120% at one level of Harm, 130% at two levels.

This is somewhat conservative. One level of Harm already pushes the game
a bit toward 'rocket tag', in which one side or another of a fight dies
instantly, and we don't want the effect to totally turn the game into a
mess. But it's a straightforward formula, and should still be a noticable
effect.

For UI reasons, this is displayed as a single pip that goes from '.' to
'+' to '!' as you accumulate Harm.

The impact of this on the game should be incredibly minor compared to the
reams of pixels that have been spilled on the subject, but I hope it brings
joy to those it does touch.

Closes #2646.

--------------------------------------------------------------------------------
841903a796 | advil | 2023-02-28 09:54:20 -0500

fix: don't let line_down move past the end of a menu
I think there's some more general issue with how scrolling to the end is
handled here, but this fix will do for now.

--------------------------------------------------------------------------------
80adb622cd | advil | 2023-02-28 09:46:15 -0500

fix: set a hover after pgdn with no hover
If no hover was set but arrow selection is enabled (the main case for
this is simply the i menu), the previous behavior for a while, which was
unintended, was that pgdn worked but without setting a hover. This is
not necessarily crazy behavior, but if you used an arrow key after this
it moved the hover to 0 and scrolled, which is weird. This commit
restores the intended behavior; this bug was just an off by one error
where get_first_visible skipped the first subhead.

--------------------------------------------------------------------------------
f32006e439 | advil | 2023-02-28 09:02:38 -0500

fix: tweak multicolumn scroll behavior
If the hover is in a position where the menu can scroll, but the hover
itself can't scroll (typically, it's in the right-hand column with a
one-item section directly below as the last section), a down/up arrow
would not do anything. This leads to the menu feeling kind of stuck --
it makes intuitive sense that the hover doesn't move, but the menu has
further items that just don't get revealed. This commit adds a scrolling
behavior for this case even with the hover not moving. In my testing it
feels fairly natural, much better than the old behavior, but it's a bit
ad hoc, so we'll see.

--------------------------------------------------------------------------------
fe289a77b0 | advil | 2023-02-27 21:48:46 -0500

fix: show correct scroll % in multicolumn console menus
I still only sort of understand this code, so I couldn't say why we
manually track m_height distinct from m_region or why m_region is wrong
on console (it seems ok on tiles), but this code needs to use the
layout-calculated height to get the correct percentage.

--------------------------------------------------------------------------------
b9f269a0db | advil | 2023-02-27 21:48:46 -0500

fix: maybe fix an off by one error
This mismatched the tiles code it is based on, and though I can't
replicate it, does seem like it might produce a crash. Changing it
doesn't seem to break anything.

--------------------------------------------------------------------------------
b249c134ee | Nicholas Feinberg | 2023-02-27 15:52:22 -0800

Clarify electricity AC piercing effect
Rather than saying it 'partially' bypasses AC, be more explicit and
say it ignores half AC.

--------------------------------------------------------------------------------
f2dbd7b3e3 | Nicholas Feinberg | 2023-02-27 15:05:13 -0800

Make Hepliaklqana knights ogreishly strong
Players have noted for years that knights are noticeably more useful
than the other two ancestor types. To encourage more variety in ancestor
choice, make knights attack at 150% delay, like ogres. This should
preserve their core strength (being really tough!) without also making
them as powerful offensively, carving out more of a niche for battlemages
and hexers.

--------------------------------------------------------------------------------
76fbd3846b | Nicholas Feinberg | 2023-02-27 14:57:57 -0800

Make mulch excitingly damaging (ebonnov)
It feels bad when your boomerangs and javelins and such break.
However, we do want to have limited ammo for throwing weapons, to
make them a limited consumable. We've talked about making them always
'mulch' (break) when thrown and multiplying out the quantities you're
given, but this removes any existing tactical limits on held ammo and
also has its own feel-bads.

Let's try something different. Whenever a player's boomerang, javelin
or large rock breaks, it deals extra damage (+33%). This mechanic is
inspired by Breath of the Wild, and might make it feel a bit more
exciting and fun when your item breaks, rather than just sad.

This is a small buff to throwing overall, and a small nerf to javelins,
which can no longer hit multiple creatures if they mulch (for messaging
reasons).

If folks like this, some things we could do further along these lines:
- Add bonus effects to darts when they mulch.
- Make players' throwing items only mulch on hit (not on miss), and
  increase mulch rates accordingly.

--------------------------------------------------------------------------------
b1fd0ec52f | Nicholas Feinberg | 2023-02-27 09:46:58 -0800

Fix entire the typo (FizzleBang)
Unbelievably, this has been around since kill counts were first added
in dcf7801daff (2007).

--------------------------------------------------------------------------------
6c64550be9 | advil | 2023-02-27 07:36:42 -0500

fix: don't crash on cycle_hover under some circumstances
This sometimes does or doesn't trigger, and it's a bit hard to figure
out why, but it seems to be cycle_hover before there's a layout.

--------------------------------------------------------------------------------
eb93a13fce | advil | 2023-02-26 23:54:52 -0500

fix: improve some type assumptions
`std::min` needs to be able to deduce the same type for its arguments,
and this was failing for this line on platforms where size_t is not an
unsigned long (aka windows). Instead, cast the size_t down to int and
just use ints.

--------------------------------------------------------------------------------
112adfe841 | advil | 2023-02-26 23:33:34 -0500

fix: unbreak plain console builds

--------------------------------------------------------------------------------
01416c3e00 | advil | 2023-02-26 23:25:20 -0500

fix: prevent a display bug in multicolumn multiline tiles menus
The `do_layout` call for UIMenu is very side-effect-y. It's also used in
the _get_preferred_size calculation for this class. But (for reasons
that I don't fully grasp) the ui code will call _get_preferred_size at
all sorts of strange times with quite speculative values. This may
itself be some sort of bug, I'm not really sure; but the side effects
were leading to rendering bugs. In particular, sometimes
_get_preferred_size would be called with the max window width, which
leads to rendering inventory items on a single line in a dense
multi-column layout, and the line positions for this rendering choice
would be cached. If `pack_buffers` gets called before a fresh do_layout
call with the correct width happens, the menu spacing changes because of
the cached values. For unclear reasons, this often happens on a
pagedown, and also in various scrolling circumstances.

This commit simply attempts to limit the side effects that matter during
_get_preferred_size calls, rather than looking too deeply into the `ui`
whys.

--------------------------------------------------------------------------------
f0e381c690 | advil | 2023-02-26 23:25:20 -0500

feat: a grid layout mode for menus
The two-column mode is really designed as a fallback, prioritizing
top-bottom layout with one column unless there's overflow. This commit
adds a different multi-column layout that fills left-right as much as
possible (up to some limits), which turned out to be very easy to do
once two-column mode was generalized. This mode is aimed at PromptMenu,
specifically the travel prompt, though it might eventually have more
uses.

--------------------------------------------------------------------------------
11f347f362 | advil | 2023-02-26 23:25:20 -0500

feat: a console multicolumn menu implementation
This commit generalizes the implementation of MF_USE_TWO_COLUMNS for
menus beyond just local tiles; two-column menus on console now work as
well. This is kind of a basic implementation in some ways, and e.g. it
will still use multiple columns if item names exceed the column width
(for local tiles, it will actually wrap such item names). But, it works
fairly well, and this is mainly an issue for artefacts whose name can be
viewed by looking at the item.

Subsidiary changes / notes:
* the relevant option is given a more general name (with the old one as
  an alias)
* the relevant option is explicitly applied only to item menus. The main
  case this affects is large search results in the help lookup menu,
  which in my testing looked pretty good as multi-column results.
* no effect on webtiles

--------------------------------------------------------------------------------
ab95473dd1 | advil | 2023-02-26 23:25:20 -0500

fix: improve hover behavior for local tiles multicolumn
This was a bit of a mess, I think essentially because I never dealt with
this when doing the initial hover implementation. Before this commit,
the up/down keys cycled hover (in L-R and the top-bottom order), and the
left/right keys did nothing (or changed mode if that was available).
This commit implements sensible grid-based behavior for all four
directions, with left/right still cycling modes for single-column menus
only. (All of these menus have other keys for mode cycling.)

--------------------------------------------------------------------------------
1094a8e747 | advil | 2023-02-26 23:25:20 -0500

refactor: convert the travel prompt to a menu
This is a somewhat involved refactor that should mostly have no impact
on the use of this menu in regular play. Previously, the travel prompt
simply printed a bunch of stuff in the message pane and prompted. In
most normal cases this is fine, but it was not robust to overflowing the
message pane, resulting in either a more, or lines that were simply not
invisible. (The case that reliably hits this is wizmode &~, which is
super annoying unless you have the branch hotkeys memorized, which I
really, realy don't.)

This commit implements a new Menu subclass that can format its menu
entries to be shown in a message pane prompt, and run a regular input
loop in the message pane. If the menu fits, it does this, otherwise, it
uses a menu popup. The travel prompt now uses this feature, which also
nicely separates formatting from menu logic. It's quite a bit more code,
though.  There's only one intended behavior change to this menu, which
is to support tab as a "last destination" hotkey -- enter won't work
when this menu is a popup. Otherwise, everything should behave pretty
much the same as before when this menu is in prompt mode.

The wizmode command is still a bit annoying because it doesn't fit every
branch on one screen still in 80x24 console, but I have a planned future
commit to address this.

(In the longer run, a planned use case for this sort of approach is to
add options to make some message pane input more mouse/touchpad
friendly.)

--------------------------------------------------------------------------------
c65c45c1d4 | Nicholas Feinberg | 2023-02-26 16:14:42 -0800

Move the Vaults rune lock inside (hellmonk)
Long ago, Vaults got a 'rune lock' - the requirement that players find
at least one of the fabled Runes of Zot before entering. This was added
so that players would be encouraged to fight at least one of the final
challenges of the Lair branches (Snake, Spider etc) at a time when they
were still challenging. Before this lock was added, wise players fought
those challenges much later, after getting so much XP and loot from Vaults
etc that they were trivial.

This was a big improvement! But there was one downside - lunatic players
who wanted to get the silver or, god forbid, golden rune before getting
any other runes (or even entering the Lair, perhaps!) were blocked from
achieving their dreams. Tragic!

So, this commit lets them do that. You no longer need a rune to enter
the Vaults, but you do need a rune to leave. Wise play probably remains
unchanged,

There is a fairly strongly worded warning for players trying to enter
the Vaults without a rune, with a requirement to type 'yes' to enter
(ala stepping on a Zot trap, entering wizmode, etc). So I'm hoping this
doesn't affect the experience for newer players. If it does, I'll rethink
this!

--------------------------------------------------------------------------------
b642276a43 | Nicholas Feinberg | 2023-02-26 15:34:32 -0800

Remove logic for the Ziggurat rune lock
Obsolete since 99093fa9e1422ab71f3389fe3be6d9d46b52971a (2021).

--------------------------------------------------------------------------------
d57b28dfd0 | Nicholas Feinberg | 2023-02-26 13:28:55 -0800

Fix? a "faith bug? (elliptic, acrobat)
The game didn't prompt when you switched from an amulet directly to
another amulet, because faith prompts only triggered on
OPER_REMOVE/OPER_PUTON and we were checking OPER_TAKEOFF, a totally
different thing.

I don't understand how this code ever worked, but it seems to work now,
in this case. Hopefully this doesn't break something else.

--------------------------------------------------------------------------------
f0a3970a7c | Nicholas Feinberg | 2023-02-26 13:28:55 -0800

Tweak Labrys scaling (elliptic)
To make it more impactful in normal conditions, change it from giving
+1 enchant per visible TOUGH enemy and +3 per NASTY enemy to instead
giving 3 times that amount, capping at a more reasonable +16 (matching
the obsidian axe) rather than +27. Lower the base enchant by 1 so that
everything lines up nicely.

--------------------------------------------------------------------------------
95585c18e7 | Kate | 2023-02-26 19:53:25 +0000

Fix a crash when entering some troves as a Felid
Instead of trying to acquire weapons in some cases (and crashing), fall
back to creating a random item if nothing useful can be found.

--------------------------------------------------------------------------------
a136d5a445 | Kate | 2023-02-26 19:50:30 +0000

Convert the staff of Dispater into an orb
Of the Hell/Pan lord unrands, the staff of Dispater is one where there's at
least a small chance that a character strong enough to acquire it might
still be able to make use of it, with evokable damnation being fairly
powerful. However, using it means swapping weapons repeatedly to activate
the ability. Convert it to an orb instead, and give it *Corrode and some
bonus AC for some minor added flavour (such that the AC compensates for when
corrosion kicks in, but with some hellish flavour and a downside along the
lines of regular orbs).

No tile yet!

--------------------------------------------------------------------------------
aadfcccb73 | Kate | 2023-02-26 19:39:48 +0000

Let monsters get bonus AC/EV from artefacts
Specifically from the AC/EV ARTPs (as opposed to from enchantment), which
were previously ignored. They deserve to get to enjoy fun randarts too.

--------------------------------------------------------------------------------
093205a2af | advil | 2023-02-26 11:54:34 -0500

fix: (quick fix) disable a bad android build line
This no doubt breaks the android build to remove, but it *really really
really* should not be attempting to rm -f -r this directory! (which in a
server build context, might be /var/lib/dgamelaunch or something --
luckily CDO has permissions set so this didn't work, hopefully true of
any other servers configured like this). I'm not sure what the best fix
for someone who is actually working on the android build process might
be.

--------------------------------------------------------------------------------
6e0788376e | Kate | 2023-02-24 23:27:54 +0000

Don't let Wanderers start with excluded misc items
No condenser vanes and tremorstones in the same game for lucky wanderers.

--------------------------------------------------------------------------------
d7a24ef9e4 | Kate | 2023-02-24 22:48:13 +0000

Update Brain Feed description (CarefulOdds)

--------------------------------------------------------------------------------
038c08e353 | Kate | 2023-02-24 22:42:04 +0000

Don't increase charges of tremorstones/condenser vanes
XP evokers remain very strong items for every character, and it's not
necessary to compensate for losing access to one type.

--------------------------------------------------------------------------------
884ff3d523 | sdynet | 2023-02-24 22:42:04 +0000

Connect item sets: {vane and {Tremorstones
Compared to other categories, Misc has many items with similar roles.
Therefore, I think it is a suitable target to apply item sets. However,
since this is taking one tactical means away from the player, I'm going to
increase the number of charge by one(vane) and two(tremor).

[Committer's note: adjusted vaults to still place thematically appropriate
loot. Closes #2961. -kate]

--------------------------------------------------------------------------------
7bc24448d7 | Kate | 2023-02-24 22:41:59 +0000

Remove an obsolete walljump check (nlavsky)

--------------------------------------------------------------------------------
13d48797d6 | robertxgray | 2023-02-24 08:36:25 -0500

Fix doc files wider than 80 characters
This may seem like a non-issue nowadays, but it is if you are playing
on a smartphone.

--------------------------------------------------------------------------------
b92711bcdf | Nicholas Feinberg | 2023-02-22 12:39:00 -0800

Apply acidic bite's acid damage pre-AC
Matching its behavior before 7a729d47d399. It did almost nothing
after that commit, since it had to deal post-AC damage to trigger the
acid, but only did 1d1 acid base.

Possible that this effect shouldn't require dealing post-AC damage at
all, but that'd be inconsistent with other auxes.

--------------------------------------------------------------------------------
d05cb21e94 | Nicholas Feinberg | 2023-02-22 12:22:30 -0800

Remove unused acid_strength param from splash_with_acid
RIP death by slime walls ;_;

--------------------------------------------------------------------------------
7c544603b3 | Nikolai Lavsky | 2023-02-20 16:49:24 +0300

fix: don't allow cursing/uncursing wrong items
Although `prompt_invent_item()` supports filtering items, it doesn't
check if the selected item is appropriate. Curse Item and Shatter
the Chains abilities don't have such checks either, so it was possible
to use them on wrong items.

The player could apply curses to non-equipped inventory items using
Curse Item. Similarly, it was possible to press `*` and select a
totally inappropriate item, e.g. a potion, when destroying a curse,
which crashed the game.

This commit fixes these bugs by ensuring that the item returned by
`prompt_invent_item()` is indeed cursable and equipped when using Curse
Item, or that it's a worn cursed item when using Shatter the Chains.

Note that unlike `item_is_cursable(item)`, `item_is_selected(item,
OSEL_CURSABLE)` also checks that the item is equipped.

--------------------------------------------------------------------------------
109b55a442 | gammafunk | 2023-02-19 22:02:39 -0600

feat: Some adjustments to sharkified vaults
For beargit_carnivore_pack, use KMONS, so we can specify alternative for
uniques that fail to place. Since komodos and skysharks don't have
bands, use multiple glyphs to allow placing multiple of these. Place any
choice from (on-average) two komodos, 1.5 skysharks, Grum, or Snorg.
Also clean up syntax.

Add skysharks to minmay_lair_end_frog_pond such that 1 of the on-average
3 tyrant leeches that place on that map will be a skyshark instead.
  Remove the patrolling tag that was previously placed just on tyrant
leeches. The map is pretty big and dense with monsters, so having just
having about two monsters stay close to the center won't do much.

Closes #2996.

--------------------------------------------------------------------------------
e9441fdd6e | kippig | 2023-02-19 22:02:29 -0600

Add some skysharks to Lair vaults
Committer's Note: From PR #2996. This commit adds
beargit_carnivore_pack, a carnivore-themed vault that places skysharks
and other thematic monsters and uniques.  I've cleaned up parts of a
failed rebase, removing merge lines and fixing some syntax problems.
I've withheld the change to minmay_lair_end_frog_pond, since for balance
reasons we'll want to mix skysharks into that vault a bit more
conservatively. I've kept the author's addition of skysharks to
gammafunk_lair_ancient_temple as-is, which is done in the logical way.

A subsequent commit will fix up aspects of beargit_carnivore_pack and
add skysharks to minmay_lair_end_frog_pond.

--------------------------------------------------------------------------------
632d372b77 | Nikolai Lavsky | 2023-02-20 00:22:38 +0300

fix: allow resting near slime walls
Since slime walls no longer damage the player, there's no reason to
prevent resting near them.

After this change, autotravel and Shift-movement still try to avoid
slime walls, though.

--------------------------------------------------------------------------------
6ec518bcff | Nicholas Feinberg | 2023-02-19 11:49:37 -0800

Fix slime wall messaging (Undo)
Don't message when you step near a wall if you're immune to slime walls
(probably because you worship Jiyva). Also, redraw your AC and weapon
when you worship or abandon J, just in case you were next to a wall.

--------------------------------------------------------------------------------
282d41900d | Nicholas Feinberg | 2023-02-19 11:25:21 -0800

Allow reviving felids & shafting players near slime walls
No longer instantly lethal.

--------------------------------------------------------------------------------
9b1cab2718 | Nicholas Feinberg | 2023-02-19 11:21:09 -0800

Virtually buff longbows (acrobat)
Continuing from 2f8d10eca674, increase longbow base damage by 1 and
decrease base delay by 1. This makes a +0 longbow better than a +0
arbalest against a 0 AC enemy from sklvl 14 onward, and better than
a 3xbow between sklvls 16-20. That is what we would call a 'niche'.

--------------------------------------------------------------------------------
160f7cfddd | Aliscans | 2023-02-18 23:01:40 -0800

Warn before launching inappropriate martial attacks
Previously, the game asked for confirmation before attacking with
(e.g.) a weapon inscribed with !a. It also did this before rampaging
into a monster, but not for Wu Jian's "martial attacks".

It now carries out the same checks before Wu Jian's lunge and whirlwind
attacks, and does it before a wall jump if this attacks a monster.

Closes #2962.

--------------------------------------------------------------------------------
2f8d10eca6 | Nicholas Feinberg | 2023-02-18 22:51:09 -0800

Remove the special case for longbow mindelay
As noted in #2981, it's not very impactful. Let's avoid adding special
cases for the sake of special cases.

--------------------------------------------------------------------------------
3287d911ca | Nicholas Feinberg | 2023-02-18 22:43:47 -0800

Fix an unintended SDL2 change

--------------------------------------------------------------------------------
694778e409 | Sergio Thompson | 2023-02-18 22:43:04 -0800

Add a new welcome message
[Committer's note: cut three out of four suggested messages and
rewrote the last.]

Closes #2997.

--------------------------------------------------------------------------------
2b115b064e | Brian Power | 2023-02-18 22:21:01 -0800

Make yellow draconian look distinct from green draconian for people who are 
red-green colour-blind

--------------------------------------------------------------------------------
5ead6e5f92 | Antal Spector-Zabusky | 2023-02-18 22:20:20 -0800

Remove the "You had/have # spell level(s) left" line from Dj morgues
Similarly, the "You couldn't/cannot memorise any spells" line.  Dj don't
keep track of spell levels or memorise spells.

--------------------------------------------------------------------------------
ab5ac29ea4 | advil | 2023-02-18 14:46:18 -0500

build: pin a gradle version
Method from official docs:
https://docs.gradle.org/current/userguide/github-actions.html

(Though, we aren't using gradlew..)

--------------------------------------------------------------------------------
bee577a6c3 | Nicholas Feinberg | 2023-02-18 11:31:42 -0800

Fix At message for potion stacks (starpolemic)
Don't claim that you drink all 10 potions of heal wounds, etc.

--------------------------------------------------------------------------------
6ffb7e90e5 | Nicholas Feinberg | 2023-02-18 11:31:42 -0800

Tweak sksysharks
Decrease action speed from 15 to 10, so they can't become mighted and
then berserk in one turn. Decrease move delay to 60% (from 100%) and
add another tail slap to compensate.

Increase attack damage by 20% and increase HP by 60% to make them more
threatening. Shift defenses away from EV and toward AC.

--------------------------------------------------------------------------------
07707717f1 | Kate | 2023-02-18 19:03:07 +0000

Fix syntax for a trove veto

--------------------------------------------------------------------------------
a761b1b143 | Kyle Rawlins | 2023-02-18 08:01:38 -0500

fix: update contribs for mac tiles capslock handling
This is aimed to prevent MacOS builds (post catalina) from asking for
input monitoring permission; it's unnecessarily alarming and isn't
needed. Plus, as far as I can tell the permissions request resulted from
a misimplementation in SDL2 of capslock handling in the first place.

--------------------------------------------------------------------------------
e64f9170bb | Kyle Rawlins | 2023-02-17 10:01:33 -0500

fix: resolve a couple more warnings
The outer-menu.cc is reported in #2891; I don't see it locally but it
seems good to make this code a bit safer. The semicolon is just a
pedantic warning.

--------------------------------------------------------------------------------
eb7024b798 | Kyle Rawlins | 2023-02-17 09:30:59 -0500

fix: prevent some `random_var` warnings
...on current MacOS at least. As far as I can tell it should be fine to
have all of these defaulted.

--------------------------------------------------------------------------------
1c7e38fe9f | Kyle Rawlins | 2023-02-17 09:25:53 -0500

fix: remove sprintf
`sprintf` is marked as deprecated and generates many warnings on current
MacOS builds. And indeed it does seem better to use at least snprintf in
most cases. (At various points I instead used make_stringf for more
idiomatic crawlcode, though.)

--------------------------------------------------------------------------------
7971cf19c3 | Nikolai Lavsky | 2023-02-17 01:16:44 +0300

fix: disallow unequipping cursed weapons
It was possible to unequip and destroy a cursed weapon by simply
switching to unarmed via `e-`. Similarly, this could be done in the
unified unequip menu by pressing `c` and the weapon's letter.

Compared to Shatter the Chains, shattering an item by unequipping it
took 3 auts instead of 10, and it could be done even under silence.
Also, the player could unequip the obsidian axe while mesmerized by
an enemy.

--------------------------------------------------------------------------------
2ef04afb54 | Kate | 2023-02-14 15:50:30 +0000

Don't let the Storm card try to push dead monsters
Fixes a crash when a collision kills something and then the card effect
continues to try and push that thing.

--------------------------------------------------------------------------------
a9a30cbeda | Kate | 2023-02-12 23:13:12 +0000

Remove an unused constant (PleasingFungus)

--------------------------------------------------------------------------------
08fbeb92c1 | Kate | 2023-02-12 22:57:29 +0000

Adjust channeling backfire effects
To hopefully make orbs of energy a little more usable at lower skill
levels, give a small flat bonus to resisting backfire effects, and don't
backfire when casting a spell that's too high level to ever successfully
channel (just bail out early instead).

Additionally, change the actual effect of backfiring to always apply -Cast
for a few turns, with a chance of also applying 1-5 Int drain (instead of
a coinflip between confusion and Int drain).

--------------------------------------------------------------------------------
ec953de308 | Kate | 2023-02-12 22:57:29 +0000

Give Arcjolt full LOS range
Instead of letting it chain to anything within range 5, allow it to keep
chaining to anything in LOS. Primarily changed just to simplify the spell,
since having a full chain of monsters all the way to the edge of LOS is
fairly rare.

--------------------------------------------------------------------------------
4aa5aa1482 | advil | 2023-02-12 15:44:27 -0500

fix: stop describing things as manuals of fighting (nlavsky)
Also, try to clarify this (somewhat odd) code a bit more.

--------------------------------------------------------------------------------
bab4234b37 | Nikolai Lavsky | 2023-02-12 22:16:32 +0300

fix: display the malmutated status icon in webtiles
This got missed in b84343df53.

--------------------------------------------------------------------------------
5528072125 | Nicholas Feinberg | 2023-02-11 16:56:49 -0800

Remove support for removed scrolls
Don't see any need to keep around special handling for ?recharge
and the various ?curse scrolls.

--------------------------------------------------------------------------------
536dbf11e5 | Nicholas Feinberg | 2023-02-11 16:50:29 -0800

Fix: properly handle unid'd useless scrolls
If the 'ident' param is passed, these should be considered useless.

I don't think this ever matters at present.

--------------------------------------------------------------------------------
b1c4c7f3ac | Nicholas Feinberg | 2023-02-11 16:44:44 -0800

Fix: don't give !magic to Djinni (BlurryCent)
There's probably more bugs lurking along these lines.

--------------------------------------------------------------------------------
bc771150d3 | Nicholas Feinberg | 2023-02-11 16:31:23 -0800

Tweak bloodzerk desc (dilly)
Phrase it as 'if blood is drawn', not just 'if damage is dealt'.

--------------------------------------------------------------------------------
2cf8fcd27f | Nicholas Feinberg | 2023-02-11 16:27:55 -0800

Make Chain Lightning ignore demonic guardians (Zil)
Oversight - I think I'd initially believed that god_protects() covered
that case. Probably the set of things that god_protects() covers and
should be the same as the set that demonic guardians are immune to.

--------------------------------------------------------------------------------
afbfe9f00c | Nicholas Feinberg | 2023-02-11 16:24:46 -0800

Tweak frenzy/berserk behavior
Remove some unintended overlap between checks. Let monsters with
no attacks become frenzied (it's still great to neutralize em!),
and let special allies (i.e. demonic guardians) go berserk.

--------------------------------------------------------------------------------
b84343df53 | Nicholas Feinberg | 2023-02-11 16:15:54 -0800

New tiles (Sastreii)
Skyshark, Storm Queen's Shield, and malmutated.

--------------------------------------------------------------------------------
3161bf10a1 | advil | 2023-02-11 13:30:58 -0500

fix: exclude removed items from the glyph to name cache
This prevents e.g. a manual of slings from showing up under glyph lookup
(and I assume many other items). Annoyingly, manual removedness status
needs to check `plus`, so the usual removed item code won't work for it.

--------------------------------------------------------------------------------
9a087e29e1 | advil | 2023-02-11 13:18:33 -0500

fix: support BOOK_MANUAL lookup by exact name
This fixes only a tiny fraction of weirdness related to manuals in the
item help lookup menu, but it prevents the actual error popups.

Remaining weird things (that I know about):
* "Manual" shows up in the glyph menu, with a manual of fighting
  description.
* All manuals show up in the glyph menu even though they have nearly
  identical descriptions. (Possibly only one should show up, with a
  generic description?)
* When searching for "manual" normally, only the "Manual" shows up, and
  it has the manual of fighting description.
* Removed manuals show up in the glyph menu (this one I know how to fix,
  so a following commit will take care of it)

--------------------------------------------------------------------------------
1a60562a26 | advil | 2023-02-11 12:24:18 -0500

fix: disable : and # in the help menu pre-game
The previous behavior was that these would just exit out of the help
menu. Now they are explicitly marked as disabled, and do nothing, if
there is no game going.

--------------------------------------------------------------------------------
c4145cabe6 | advil | 2023-02-11 11:57:03 -0500

refactor: convert various errors to ui::error
For `die` calls: arguably, `die` should only be used for invalid game
state where continuing isn't safe, or for detecting programming error
(cases that should be found during debug). I've converted a few (not
very many) `die` calls to simply do an error popup. There are still a
few more ui cases that are arguable. I did a pass through all `die`
calls but it may not have been exhaustive.

For MSGCH_ERROR logging: this new ui::error call should be used in any
case where the error might happen during a popup. I did a pass and found
a bunch of these, but I still may have missed some. There also might be
a bunch of cases where popups or menus use a different means to indicate
an error state, that could be converted to this call.

--------------------------------------------------------------------------------
8e7229f42b | advil | 2023-02-11 11:57:03 -0500

refactor: generalize some popup code
Previously there was (at least as far as I know) not really any single
standard way to throw up a popup with a short (or long) message in it,
leading to a bunch of ad hoc `ui::Popup` + `ui::Text` + CRT mode rendering calls
that were all similar, but not quite identical, and also not very
general. This replaces these with a single code path:

* Use the formatted_scroller class so that we automatically get a bunch
  of features that just plain `ui::Text` doesn't have. Also, if someone
  wants a quick way to show longer text, this easily provides that.
  (There's some code that could be refactored to use this capability,
  but I haven't done that.
* Wrap class instantiation in some convenience calls in the ui
  namespace.
* Standardize various aspects of this across calls

As part of this I fixed a bunch of formatted_scroller bugs:
* webtiles spacing fixes
* implement title in webtiles (this was just missing)
* if easy_exit is set, allow clicking out of scroller popups
* refactor so that a scroller can correctly handle subclassing key
  overrides, regular scroller key handling, and easy exit all at the
  same time. (Slightly complicates the api from the standard
  process_key).

--------------------------------------------------------------------------------
5a9884bb7c | Nicholas Feinberg | 2023-02-09 19:24:35 -0800

Refactor maybe_bloodify_square

--------------------------------------------------------------------------------
0b89b74ca8 | Nicholas Feinberg | 2023-02-09 19:24:33 -0800

New monster: skyshark
Slicing through the Dungeon's air - oh, what graceful beasts! What
a terrifying sight...!

Skysharks are a speed-15 flying monster that becomes more dangerous
once it tastes blood, first getting Might (+50% damage) and then
going Berserk. Perhaps wise to kill them before that happens?

They're currently intended as a high-end threat for Lair and a low-end
Shoals monster, but they might migrate to the Desert once that lands.
So to speak.

Canonically, this species is related to, but distinct from, the skysharks
that the Slick Slippers are made from.

--------------------------------------------------------------------------------
c2c871d025 | Nicholas Feinberg | 2023-02-09 14:12:06 -0800

Remove unused arcjolt power

--------------------------------------------------------------------------------
a6a79fd877 | Nicholas Feinberg | 2023-02-08 22:52:22 -0800

Fix: cap doom howl power (acrobat)
Oops!

--------------------------------------------------------------------------------
c2185399d4 | Kate | 2023-02-09 00:22:35 +0000

Fix Arcjolt range handling (#2875)
Don't consider Arcjolt to have range 5 - like Static Discharge, it has
range 1, requiring a target to be adjacent (but then can continue onward
and hit further targets). The limit on how far it can travel is still shown
clearly in the targeter. Fixes Spellforged Servitors with Arcjolt wasting
turns doing nothing (thinking they're in range to cast it but then being
unable to). Closes #2875.

--------------------------------------------------------------------------------
0b50240ab4 | Neil Moore | 2023-02-08 17:25:16 -0500

Add a sphinx quote.
Somehow we have neglected to add any Yeats quotes in all these years,
only one secondhand reference. This major omission is now now corrected.

[skip ci]

--------------------------------------------------------------------------------
f493690b3a | Nicholas Feinberg | 2023-02-08 12:45:13 -0800

Fix apportation + mimics (dilly, acrobat)
Broken in 86a8295270962016579da244f3382e678c83a075.

--------------------------------------------------------------------------------
bd6742b3f2 | Nicholas Feinberg | 2023-02-08 08:38:39 -0800

Add a message when stepping near slime walls (dilly)
Beware the corrosion cost!

--------------------------------------------------------------------------------
ab721bf1f9 | Nicholas Feinberg | 2023-02-08 08:32:21 -0800

Ban usk piety for nameless horrors (dilly)
Don't encourage ridiculous miscast tech.

--------------------------------------------------------------------------------
b7baff67ae | Nicholas Feinberg | 2023-02-08 08:21:43 -0800

Add a runrest stop for out-of-LOS shots (dilly)
When something's shooting at your pal from outside your LOS, stop
resting.

--------------------------------------------------------------------------------
8343f060c3 | Nicholas Feinberg | 2023-02-08 08:12:43 -0800

Add a message for monsters recalled away
When a monster is recalled to a location outside your sight (by
a convoker's Word of Recall spell), print a message so that they
don't just vanish without explanation.

--------------------------------------------------------------------------------
7f663e2a95 | Nicholas Feinberg | 2023-02-08 08:05:25 -0800

Halve the chance of Irradiate malmutation
To focus a bit more on the exciting parts of the spell (damaging
enemies & contaminating the player), malmutate victims only on a
coinflip chance. We could play with these numbers further as
appropriate - for example, by making the chance depend on power
and/or victim HD, or just by adjusting the flat rate.

--------------------------------------------------------------------------------
e6a52f7cba | Nicholas Feinberg | 2023-02-07 17:46:49 -0800

Remove endotherms 
(꧁🌺𝓱𝓮𝓪𝓭𝓱𝓸𝓷𝓬𝓱𝓴𝓻𝓸𝔀🌺꧂)
The text was both superfluous and incorrect.

--------------------------------------------------------------------------------
69c6e2d096 | Nicholas Feinberg | 2023-02-07 16:39:06 -0800

Fix a Storm Queen comment (acrobat)

--------------------------------------------------------------------------------
639cfe8b63 | Nicholas Feinberg | 2023-02-07 15:56:30 -0800

New unrand: Storm Queen's Shield
The Disc of Storms is back, in completely unrelated form!

Alternatively: did you ever want to be a shock serpent?

The Storm Queen's Shield is a +5 kite shield of flight and rElec that
has a chance to retaliate on block, lashing out with 3d7 of
half-AC-checking electric damage. This effect triggers even up to
range 3 (as with shock serpents). It's a bit like reflection, but it
works on melee blocks (unlike reflection).

Not sure this ended up being extremely exciting, but I did implement
it, so let's see!

--------------------------------------------------------------------------------
0bc11aca90 | Nicholas Feinberg | 2023-02-07 15:56:30 -0800

Pass the attacker to shield_block_succeeded
For the Storm Queen's Shield.

--------------------------------------------------------------------------------
9c67137058 | Nicholas Feinberg | 2023-02-07 15:56:23 -0800

Refactor shock serpent discharge
To support other discharge fineffs.

--------------------------------------------------------------------------------
bfdf073431 | advil | 2023-02-04 16:13:19 -0500

feat: try `w` for map mode add waypoint
This key is currently unbound, and ctrl-w is blocked by browsers. So
let's try just using the simplest possible binding for this. It may be
prone to confusion with miskeys, in which case it might make sense to
swap `w` and `W`?

Resolves #2984

--------------------------------------------------------------------------------
74f6264c45 | advil | 2023-02-04 14:46:10 -0500

fix: better handle a webtiles chroot error case
A common webserver setup issue (on a new setup, or an upgrade from an
old version of tornado) is that modern webtiles under a chroot requires
a copy of the python library in the chroot. This is because any `import`
after the chroot call is still looking for the python library at the
same path as before, but paths have changed; older tornado (and a lot of
older python code in general) simply didn't use locally scoped import.
However, it is good python practice in a lot of cases, and are now
used both in modern tornado and various parts of the webtiles server.

This usually seems to fail first in tornado code (though I think that's
not the only possibility) -- so this commit adds an explicit check for
this and attempts to provide a more informative error message along with
the exception. By its nature this is a bit hard to directly test
locally...

--------------------------------------------------------------------------------
59b9271927 | advil | 2023-02-04 11:09:54 -0500

docs: update webtiles changelog
This should include everything done so far in 0.30; there was a fair
amount missing, so the commit accordingly does a bunch of reorganization
to existing 0.30 notes.

--------------------------------------------------------------------------------
6493da8e45 | advil | 2023-02-04 09:58:06 -0500

fix: fully disallow python 2, tweak deprecation handling
Python 2.7 was deprecated with the 0.29.0 release in Aug, and now
crashes on start because of the use of a py33 module (py33 was released
in 2012). It would probably be possible, in principle, to get py27
working again, but nearly all servers have updated, and I'm pretty tired
of extreme backcompat hacks. This commit prevents the server from
starting either with an old version of python, or with an old version of
Tornado. In the future some backcompat commit can probably also be
cleaned up, since I'm not sure this affects more than ~1 server.

--------------------------------------------------------------------------------
ea05faddec | Nicholas Feinberg | 2023-02-03 13:59:18 -0800

Mention CBL checking half AC (acrobat)

--------------------------------------------------------------------------------
116ff8c4af | Nikolai Lavsky | 2023-02-02 18:47:39 +0300

fix: expire fire vulnerability when returning to a level
It was possible to burn away monster's fire resistance using Scorch,
leave the monster on another floor, return more than a hundred turns
later, and the monster would still be vulnerable to fire.

--------------------------------------------------------------------------------
f23d94013f | spiros | 2023-01-31 11:51:41 -0800

added leading space to text message on uselessness

--------------------------------------------------------------------------------
880c04f40e | Zhang Kai | 2023-01-31 11:51:16 -0800

Update tutorial.txt

--------------------------------------------------------------------------------
b847cfa5cd | Zhang Kai | 2023-01-31 11:51:10 -0800

Update unrand.txt

--------------------------------------------------------------------------------
dfc2f88e47 | Zhang Kai | 2023-01-31 11:51:03 -0800

Update spells.txt

--------------------------------------------------------------------------------
40cfa726b3 | Zhang Kai | 2023-01-31 11:50:57 -0800

Update monsters.txt

--------------------------------------------------------------------------------
c44e5b395e | Zhang Kai | 2023-01-31 11:50:49 -0800

Update items.txt

--------------------------------------------------------------------------------
c37f88b80d | Zhang Kai | 2023-01-31 11:50:43 -0800

Update features.txt

--------------------------------------------------------------------------------
43c3b1f7ca | Zhang Kai | 2023-01-31 11:50:34 -0800

Update clouds.txt

--------------------------------------------------------------------------------
a00cedfdfe | Zhang Kai | 2023-01-31 11:50:22 -0800

Update ability.txt

--------------------------------------------------------------------------------
c68057be0a | advil | 2023-01-29 10:17:08 -0500

test: add an arena test
The arena call from #2955 is fairly useful because it exercises items in
the arena (which none of the other tests do), and it's very quick to
run. This commit adds it as a new stress test.

--------------------------------------------------------------------------------
b6d103fe33 | advil | 2023-01-29 10:02:55 -0500

fix: add some arena item checks
These functions all assume a reasonable value for `you`, which can't be
assumed in the arena. These three checks have some overlap for the
reported crash, but it seems good to cover a bunch of bases here since I
think multiple code paths code apply, and some of the checks in this
code that don't crash may still have undefined behavior.

Resolves #2955

--------------------------------------------------------------------------------
d89dcf765f | Nicholas Feinberg | 2023-01-28 13:07:43 -0800

Fix the build

--------------------------------------------------------------------------------
9870b12c7c | Nicholas Feinberg | 2023-01-28 12:53:52 -0800

Wake monsters when they're smitten (Ge0ff)
By Smiting, airstrike, waterstrike, resonance strike, throw ally, freeze...

--------------------------------------------------------------------------------
1587923927 | gammafunk | 2023-01-27 23:16:37 -0600

feat: Support up to 100 waypoints
For establishing a user coordinate system on levels on the clua side, we
need to be able to create at least one waypoint per permanent level.
Crawl has almost 90 such levels, so 100 waypoints will cover these plus
the extra waypoint needed for temporary levels such as portals, Pan, and
the Abyss.

This does add 90 waypoint slots to the save file and to travel memory,
but at a cost of 9 bytes per waypoint (one short for a level ID and two
ints for a coordinate), this doesn't matter. This commit just extends
the allowed number of waypoints without allowing the in-game UI to add
waypoints past the 10th. The additional waypoints can be created via
clua's `travel.set_waypoint()` function and additionally deleted in the
UI along with all other waypoints by using the "*" option.

--------------------------------------------------------------------------------
c1506a1cf0 | gammafunk | 2023-01-27 18:49:19 -0600

feat: Remove an autoexplore trap (Lici, ebonnov)
This vault places two `8`s and two `9`s, and it does so in a way that's
likely to lead to autoexploring somewhat close to these monsters, due to
the corner at the entrance. Add a couple glass tiles to reveal the
innermost monsters (and loot) further before said corners are taken.

I considered other adjustments, but went with ebonnov's suggestion,
since it's as minimal as we're likely to get, and it's good to be very
minimal when adjusting for this sort of thing.

--------------------------------------------------------------------------------
3e6e8c874d | Nicholas Feinberg | 2023-01-26 22:39:30 -0800

Make slippers suppress net warnings (ragingrage)
Since you're immune to em.

Also do some refactoring.

--------------------------------------------------------------------------------
a6a225cb13 | Kate | 2023-01-26 17:03:08 +0000

Redraw evasion when flying over water as Merfolk (#2878)
Closes #2878.

--------------------------------------------------------------------------------
9761204cdd | Kate | 2023-01-26 15:50:04 +0000

Update invisibility status description (#2957)
Invisibility no longer causes contamination over time (just some initial
contamination when activating it via evoking). Closes #2957.

--------------------------------------------------------------------------------
cc4359ea44 | Nicholas Feinberg | 2023-01-25 13:01:40 -0800

Fix Hailstorm animation speed (various)
Don't redraw for every single cell of the explosion.

--------------------------------------------------------------------------------
eaa24f58ff | Kate | 2023-01-24 20:51:53 +0000

Fix Green Draconian breath not piercing enemies (#2832)
Broken by the zap noise changes in d80880ac - using Mephitic Cloud as its
origin spell caused it to be treated like a cloud spell that would always
stop on hitting a target. Closes #2832.

--------------------------------------------------------------------------------
8ad61386b6 | Kate | 2023-01-24 20:06:34 +0000

Refactor messaging on escaping engulf (#2859)
Don't print a message about slipping free from engulf if still adjacent to
the monster engulfing you. Closes #2859.

--------------------------------------------------------------------------------
8ab98d0bbf | Kate | 2023-01-24 17:22:10 +0000

Allow equipping finger amulet rings in batform (#2835)
Closes #2835.

--------------------------------------------------------------------------------
db4ae3ece1 | Kate | 2023-01-22 22:14:19 +0000

Prompt when consumables would reset Victory bonus

--------------------------------------------------------------------------------
8d745af8aa | Kate | 2023-01-22 21:36:45 +0000

Handle wizmode stat changes correctly
Properly checks for stat 0 when changing stats in wizmode.

--------------------------------------------------------------------------------
87fffd12f7 | Kate | 2023-01-22 21:36:45 +0000

Generalise unrand death effects
Let monster death effects work on unrands than just the toga (although the
toga is the only unrand with a death effect, since melee weapons can use
melee_effects).

--------------------------------------------------------------------------------
dc2f814f26 | Implojin | 2023-01-22 21:36:45 +0000

New unrand: toga "Victory"
This is an early unrand with a variable bonus based on kills:

As the player kills threatening monsters, this robe gradually gains AC, Int
and Slay, capping out at +7 each.

Beware -- Quaffing potions or reading scrolls in combat (with monsters
visible) resets these bonuses to zero!

[Committer's note: squashed commits and updated commit message. Fixes some
logic for when to apply the bonuses, and adjusts messages/description.
Closes #2920. -kate]

--------------------------------------------------------------------------------
f4ac18a38d | Neil Moore | 2023-01-21 19:02:53 -0500

And yet another quote.
Fine, I like prog, okay?  Hope you're happy.

[skip ci]

--------------------------------------------------------------------------------
a8c43d9988 | Neil Moore | 2023-01-21 18:49:12 -0500

Add another pop music quote.
I'm incorrigible, so please don't incorrige me.

[skip ci]

--------------------------------------------------------------------------------
cdc1b43e22 | Kate | 2023-01-21 21:59:13 +0000

Give Dispater an extra adjective
To match the similarly-styled descriptions of Asmodeus and Ereshkigal.

--------------------------------------------------------------------------------
bb11188b7b | Kate | 2023-01-21 21:59:13 +0000

Fix a typo in coding_conventions

--------------------------------------------------------------------------------
5c07829312 | Kate | 2023-01-21 21:59:13 +0000

Finish removing Flame Tongue
It was used for Vehumet wrath and nothing else.

--------------------------------------------------------------------------------
e3182b2870 | hellmonk | 2023-01-21 21:59:13 +0000

feat: Rework slime walls
Reworks slime walls to apply 1 level of corrosion each to the player for as
long as they remain adjacent instead of doing damage; they do nothing to
monsters unless oozemancy is active, in which case they deal damage as
before.

[Committer's note: squashed commits and added handling to redraw stats.
Some further Slime changes to go alongside this would also be good - in
particular, more variation in layouts and monster pools, and possibly
adding in some more uniques. Closes #2791. -kate]

--------------------------------------------------------------------------------
34404dee4a | Aliscans | 2023-01-21 21:59:13 +0000

Change the spelling of some words to Australian English.
Change how some words are spelt to reflect the standard spelling on
www.macquariedictionary.com.au.

This only changes things in places where the spellings may be displayed
to the user. I include the documentation in this. I haven't changed the
changelog, or any of the contrib stuff.

These include: armor => armour defense => defence offense => offence

I haven't changed the Longfellow quote, as it appears to use the poet's
original words.

Replace "alternate" with "alternative", as the dictionary describes the
"one possibility out of two" sense in which "alternate" is used as "a
disputed usage".

[Committer's note: squashed commits. Closes #2880. -kate]

--------------------------------------------------------------------------------
595c1f4b75 | Aliscans | 2023-01-21 21:59:13 +0000

Extend the first column of the dump action count to 7 characters long.
Going from 5 to 7 characters means that 'Armour', 'Invoke', 'Ability'
and 'Riposte' are printed in full. It increases the maximum row length
from 106 to 108 characters, but does not affect the point at which 80
characters stops being wide enough.

Move the "pad strings" code from _describe_action() to
_sdump_action_counts().

--------------------------------------------------------------------------------
a1440bf155 | Aliscans | 2023-01-21 21:59:13 +0000

Record Wu Jian's Lunge and Whirlwind as CACT_ABIL, not CACT_INVOKE.
Previously, Lunge, Whirlwind, Serpents Lash and Heavenly Storm were
recorded with CACT_INVOKE, and Wall Jump with CACT_ABIL.

This change means that Wu Jian's powers are now split into martial
attacks (abilities which do not consume piety or fail if you are
silenced) and other powers (invocations which do both).

[Committer's note - fixed save compatability handling. Closes #2944. -kate]

--------------------------------------------------------------------------------
df48620a09 | Nicholas Feinberg | 2023-01-20 13:44:46 -0800

Tweak hell unrand descriptions further (riverfiend)
Worth noting explicitly that they must be wielded to be used. (Why
did we decide on that, again..?)

--------------------------------------------------------------------------------
5e2a1faac7 | Kate | 2023-01-20 21:34:36 +0000

Don't allow placing zigfigs on temp terrain (#2797)
They would be overwritten when the terrain expired, and had various
messy interactions. In general it's safer not to allow changing terrain
that's already temporarily changed. Closes #2797.

--------------------------------------------------------------------------------
08127ecf53 | Nikolai Lavsky | 2023-01-21 00:18:06 +0300

fix: allow Enter to exit the skills menu when drinking !xp
As a followup to 9571b93c, this commit restores the previous behavior,
allowing to exit the skills menu with Esc or Enter when drinking !xp.

--------------------------------------------------------------------------------
0bb7008f9d | Kate | 2023-01-20 21:10:08 +0000

Clarify Octopode Beastly Appendage description (#2919)
Closes #2919.

--------------------------------------------------------------------------------
96b69d01bc | Nicholas Feinberg | 2023-01-20 13:02:29 -0800

Clarify hell lord unrand descriptions (powerbf, #2912)
Don't claim that they can be 'evoked', since they no longer use V.
Instead, describe them as 'granting the ability'.

Resolves #2912.

--------------------------------------------------------------------------------
50ae3c0e08 | advil | 2023-01-20 15:45:23 -0500

fix: restore the unknown items toggle in \ menu

--------------------------------------------------------------------------------
2367cd04db | Nicholas Feinberg | 2023-01-19 21:15:51 -0800

Consecrated labrys tiles (CanOfWorms)

--------------------------------------------------------------------------------
bc80c1ad91 | Neil Moore | 2023-01-19 21:43:20 -0500

Update copyright date.
[skip ci]

--------------------------------------------------------------------------------
3340775977 | Neil Moore | 2023-01-19 16:31:16 -0500

Add a new splash screen (SpinningBird)
A bit large, at my request, but IMO better to have to scale down than up.

--------------------------------------------------------------------------------
5b54d204dd | patrick | 2023-01-19 13:22:24 -0500

Fix a tiles make bug with MSYS git

--------------------------------------------------------------------------------
a6d2a93c4a | robertxgray | 2023-01-19 11:50:44 -0500

Clean obsolete TOUCH_UI code
The latest version of the Android port made the TOUCH_UI build option
obsolete. Somehow some fragments of code survived the merge process and
one of them broke the tile_use_small_layout option.

Fixes #2921

--------------------------------------------------------------------------------
754fce4c43 | advil | 2023-01-18 17:10:45 -0500

fix: prevent a divide by zero in weird cases
This should only be triggerable under debug conditions, but let's handle
the error conditions that lead to this crash elsewhere only.

--------------------------------------------------------------------------------
4c74721511 | advil | 2023-01-18 17:09:18 -0500

refactor: handle spflag::testing and spflag::monster together
This generates an error, rather than a crash, if a non-wizard casts
a testing spell. It also lets wizmode chars memorise debugging ray,
instead of just casting it via &z.

--------------------------------------------------------------------------------
8d191d4e4e | advil | 2023-01-18 16:35:34 -0500

fix: don't check spflag::monster for non-spell casts
Various abilities and items use `your_spells` to cast spells that may be
only castable in the normal way by monsters, don't error on these.

--------------------------------------------------------------------------------
bdb63f398d | advil | 2023-01-18 13:47:20 -0500

fix: remove whitespace in some menus
This is to some degree intentional (see comment), but it isn't needed
for id/enchant/brand.

--------------------------------------------------------------------------------
fa0a19f920 | Nicholas Feinberg | 2023-01-18 09:37:49 -0800

Fix consecrated labrys enum order
Oops! This breaks all unrands that have an enum after the obsidian
axe in saves after 0ad051ed3b7deee9383e0b7a7b666411275f9e51.

--------------------------------------------------------------------------------
08df3a68dd | Nicholas Feinberg | 2023-01-18 09:36:27 -0800

Remove Morg (moreso) (dilly)
Missed some vaults.

--------------------------------------------------------------------------------
031d1225b2 | advil | 2023-01-18 12:18:10 -0500

fix: prevent a miscast crash on wizmode casting
This code would crash when miscasting (via &z etc) a spell in wizmode
with no spell schools. The game will still crash if not in wizmode, but
a wizmode cast just skips the miscast effect.

--------------------------------------------------------------------------------
3ae23987fd | advil | 2023-01-18 12:03:38 -0500

fix: add an explicit spflag::monster check in _do_cast
Before this commit, _do_cast relied on spell-specific code to determine
if spret::none was returned, which unsurprisingly was all over the
place. Previously I suspect that spflag::monster was too unreliable to
use here, but it should be accurate now.

The barn door may be almost closed now...

--------------------------------------------------------------------------------
636a5c3615 | advil | 2023-01-18 11:21:35 -0500

lint: fix a weird indent

--------------------------------------------------------------------------------
9571b93c2c | advil | 2023-01-18 11:17:22 -0500

fix: swap default for ui::key_exits_popup
It's safer not to shadow enter by default.

--------------------------------------------------------------------------------
83e5d64585 | advil | 2023-01-18 11:07:41 -0500

fix: allow enter to join religions

--------------------------------------------------------------------------------
6c2b13695a | advil | 2023-01-18 11:06:51 -0500

Revert "Revert "feat: standardize popup exiting keys""
This reverts commit fcc1e2b2aff5e3f200ff84aef7794a608b68ef71.

--------------------------------------------------------------------------------
ba7862b69d | Nicholas Feinberg | 2023-01-18 08:02:56 -0800

Unbreak wizmode memorization

--------------------------------------------------------------------------------
d14727376c | Nicholas Feinberg | 2023-01-18 07:57:49 -0800

Refactor memorization code (advil)
Per request, repeatedly check that a spell that the player is trying
to memorize is actually available for them to memorize, just in case.

--------------------------------------------------------------------------------
fcc1e2b2af | Nicholas Feinberg | 2023-01-18 07:50:55 -0800

Revert "feat: standardize popup exiting keys"
This broke joining religions, and the code is complex enough that
I don't immediately see how to fix it. (It's because 'enter' is now
configured to close UIs, I think?)

This reverts commit df044eaf4f235edcf790c93cfc1c61d2c97afcfd.

--------------------------------------------------------------------------------
0ad051ed3b | Nicholas Feinberg | 2023-01-18 07:46:22 -0800

New unrand: the consecrated labrys
Players have often asked: we have demon blades, demon tridents and
demon whips, but why no demon axe? Of course, those wise enough to
peruse the source code will know we've always had a demon axe - the
obsidian axe. Now we have the blessed version!

The consecrated labrys is a +5 holy broad axe (with +1 base damage,
like other blessed weapon types) with sInv, Flight, and a gimmick -
it gets bonus enchantment as scarier enemies come into view, working
via the same threat mechanic as Ru's Sacrifice Courage. To discourage
aggressive swapping, it also has Fragile, and for pleasantness, it
caps out at +27 enchant. That might be too high, truthfully, but let's
give it a shot - we can revisit scaling after folks play around with
it a bit.

S/o to bitdizzy for suggesting the ego effect.

--------------------------------------------------------------------------------
f9ce66f82c | Nicholas Feinberg | 2023-01-18 07:46:22 -0800

New unrand

--------------------------------------------------------------------------------
870441aebb | advil | 2023-01-18 10:45:36 -0500

fix: don't crash on &z zaps with no player tohit
We don't necessarily aim to keep &z fully working, but this commit
should remove a whole class of wizmode crashes where the spell uses a
zap, and the zap is lacking a player tohit. (This would also crash the
memorise menu if memorised in wizmode or, uh, via bugs.)

--------------------------------------------------------------------------------
5a0d6e57be | Nikolai Lavsky | 2023-01-18 16:29:15 +0300

feat: add tiles to the mutation description popup
Mutation tiles were already shown on the `A` and `?/u` screens, but
now the players can see these tiles in all their double-size glory
in the description popup.

--------------------------------------------------------------------------------
c3a7216ad8 | Nicholas Feinberg | 2023-01-17 20:59:03 -0800

Probably fix unlimited memorization
Closes #2947.

--------------------------------------------------------------------------------
2f0a8685bb | Nicholas Feinberg | 2023-01-17 19:54:32 -0800

Fix unlimited memorization power (maybe) (Implojin, #2947)
I haven't tested this, so I'm not closing the issue.

--------------------------------------------------------------------------------
5fa2372673 | Nicholas Feinberg | 2023-01-17 19:50:58 -0800

Fix a sign comparison warning

--------------------------------------------------------------------------------
d82a45a22e | Monkooky | 2023-01-17 18:13:29 -0800

Make divine vigour apply multiplicatively
Closes #2935.
Fixes #2910.

--------------------------------------------------------------------------------
c3cde76320 | robertxgray | 2023-01-17 17:39:33 -0800

Fix estimation of the minimum usable window size
We were using the m_fonts array to get the font sizes. This is wrong
because caching leads to unpredictable array contents.

Now we are using proper char width and height. It also has the benefit
of improved precision.

--------------------------------------------------------------------------------
ab5fb16433 | Aliscans | 2023-01-17 17:39:14 -0800

FIX: Stop libPNG shouting into the void.
When run, tilegen.elf produced a large number of copies of two warning
messages. Both are considered harmless here, but may distract people.

This change tells libpng not to report those specific errors.

Closes #2904.

--------------------------------------------------------------------------------
1029e49c50 | Antern | 2023-01-17 17:34:26 -0800

fix: local tiles sidebar height

--------------------------------------------------------------------------------
d3cbc7c866 | Zhang Kai | 2023-01-17 17:29:57 -0800

Update unrand.txt

--------------------------------------------------------------------------------
6f51dd0f84 | Zhang Kai | 2023-01-17 17:29:32 -0800

Update spells.txt

--------------------------------------------------------------------------------
fe5d03000b | Zhang Kai | 2023-01-17 17:28:48 -0800

Update monsters.txt

--------------------------------------------------------------------------------
23e4f76630 | Zhang Kai | 2023-01-17 17:28:26 -0800

Update items.txt

--------------------------------------------------------------------------------
4d610aba3f | Zhang Kai | 2023-01-17 17:27:55 -0800

Update commands.txt

--------------------------------------------------------------------------------
bde2ad023b | Nicholas Feinberg | 2023-01-17 17:27:34 -0800

Re-remove embers

--------------------------------------------------------------------------------
f6d4d4f6a7 | Zhang Kai | 2023-01-17 17:27:13 -0800

Update clouds.txt

--------------------------------------------------------------------------------
32faffd49c | hellmonk | 2023-01-17 17:23:57 -0800

properly monsterify sickly merfolk
Make the 'sickly' merfolk actual monsters instead of vault defines and recolor
them for console (no retile yet).

--------------------------------------------------------------------------------
7904f2a0a2 | hellmonk | 2023-01-17 17:23:16 -0800

nerf randarts
Based on some discord feedback. Try to make high plus weapons and high stat
properties slightly less common. No idea if this will be noticeable.

--------------------------------------------------------------------------------
d1d138d441 | hellmonk | 2023-01-17 19:55:27 -0500

decouple gold aura duration and corpse size
Killing bigger monsters gave you longer gold aura duration, which is
mechanically weird (also not great that you could pseudo-count the duration
by looking at the size of a gold stack that dropped!) Just roll independently
instead, choosing numbers roughly equal to the case for human size. Gold amount
being tied to corpse size is also weird in a post-chunk universe, but the
gameplay implications there are mostly fine and it would be a significant
balance change to decouple it - worth looking at if gozag needs another nerf,
but I've left it alone for now.

--------------------------------------------------------------------------------
df044eaf4f | advil | 2023-01-17 18:21:03 -0500

feat: standardize popup exiting keys
The original goal of this commit was to consistently let right-click
exit popups in local tiles; in some cases this just wasn't implemented,
in some cases it wasn't implemented because right-click cycled mode. I
have removed the latter functionality, following recent menu changes (an
end goal here would be to allow clicking on the mode text itself to
cycle). I may well have missed some cases, but as far as I know, every
popup can now be exited with the mouse by right clicking. In some cases
widgets do override right click, e.g. it does other things in menus, but
right clicking outside of the popup always works. Unfortunately click
handling is not very sophisticated, otherwise I'd also add left clicking
out (like webtiles).

Along the way I realized that this was all extremely inconsistent for
keys as well. This commit makes things as consistent as I can, at the
cost of sometimes removing exit keys, or even removing "any unbound key
to exit" schemes. If people complain I can restore the latter -- but
these were mostly in really odd places so it wasn't very predictable
when it would work.

--------------------------------------------------------------------------------
3e05ae4a99 | Nicholas Feinberg | 2023-01-17 13:59:43 -0800

Don't give DjHW useless spells (Wrentha)
A very dreadful rot indeed.

--------------------------------------------------------------------------------
3bb28391b4 | Nicholas Feinberg | 2023-01-17 13:59:16 -0800

New Heavy brand & Wucad Mu doll tiles (CanOfWorms)

--------------------------------------------------------------------------------
cc886f7154 | Nicholas Feinberg | 2023-01-16 15:21:24 -0800

Add missing mutation resistance icons (CanOfWorms)

--------------------------------------------------------------------------------
0755cc6dcf | advil | 2023-01-16 16:16:34 -0500

fix: correct local tiles evokable tooltips
These were impressively outdated, and also slightly broken.

--------------------------------------------------------------------------------
4dd8b1dda3 | advil | 2023-01-16 16:06:53 -0500

fix: tiles build

--------------------------------------------------------------------------------
e7f8f89663 | advil | 2023-01-16 15:18:31 -0500

fix: improve evokable uselessness handling
* fix some issues in cannot_evoke_item_reasons
* show uselessness reason for evokables in description, generalize some
  describe code
* use correct uselessness checks for describe hotkeys
* dedup code in is_useless_item

--------------------------------------------------------------------------------
755734b53a | advil | 2023-01-16 15:18:31 -0500

feat: move evoke to UseItemMenu
This brings evoke together in a mode cycle with read/quaff, and
automatically adds various features from this menu. Evoking from the
floor is disabled. (In the future, a generic use menu could be produced
from these three item types.)

As part of this, I cleaned up some of the evoke check code and converted
it to use a `cannot_evoke_item_reason` call with the same API as
reading/quaffing. Also, CMD_ZAP (unbound legacy CMD?) still uses a
regular inventory menu prompt.

--------------------------------------------------------------------------------
452ae9f181 | advil | 2023-01-16 15:18:31 -0500

feat: toggle equip vs unequip modes in UseItemMenu
This commit adds a key (bound right now to tab) that, in the equip
menus, toggles to the corresponding unequip menu (or general unequip if
there isn't one) and vice versa. This is a bit overengineered, but the
end goal of this is that a new player only needs to remember one key
to get to all equip menus from the main view (`e`).

Note: the option `equip_unequip` also can accomplish this goal (in
combination with the new equip menus). However, it makes it a bit too
easy to accidentally unequip stuff, and also (wheals) new players mostly
don't want to unequip stuff in modern crawl, so there's not a huge need
to make it so immediately accessible.

Other notes:
* this commit attempts to do smarter hover saving on mode changes; it
  doesn't just preserve position, but item link if possible. This
  applies to all menu mode changes.
* keyhelp code here is kind of involved...
* commit should have no effect outside of equip/unequip menus aside from
  more consistent keyhelps.

--------------------------------------------------------------------------------
753c900711 | advil | 2023-01-16 15:18:30 -0500

fix: bounds check for knockback
Unclear what can trigger this, but a recent crash appears to have.

--------------------------------------------------------------------------------
abd8b8bc87 | Nicholas Feinberg | 2023-01-16 09:15:54 -0800

Add new mutation tiles (CanOfWorms)
Various resistances and stat mutations, mostly.

--------------------------------------------------------------------------------
3898ba8535 | Nicholas Feinberg | 2023-01-16 09:03:22 -0800

New unrand tiles (CanOfWorms)
Force Lance and Slick Slippers.

--------------------------------------------------------------------------------
638baaf3f0 | Nicholas Feinberg | 2023-01-15 12:49:06 -0800

Reduce consistency of Kiku's second gift (acrobat)
Make it a little less predictable exactly which spells you'll get,
so that Kiku runs have more variety. (Reduce gift size from 5 to 4.)

--------------------------------------------------------------------------------
38b2fafcf8 | Nicholas Feinberg | 2023-01-15 12:46:42 -0800

Fix tremorstones in fog (MainiacJoe)
If there were visible tiles within radius 3, e.g. while in Heavenly
Storm or a cloud of fog, tremorstones would quietly break. Unbreak em.

--------------------------------------------------------------------------------
14e8c2fdae | Nicholas Feinberg | 2023-01-15 12:35:13 -0800

Minor tremorstone refactoring
Reorder variables to be declared closer to where they're used.

--------------------------------------------------------------------------------
930af78ca9 | Nicholas Feinberg | 2023-01-15 12:22:40 -0800

Give ?butterflies knockback (acrobat)
To make its effect more comparable in strength to ?summoning, which
it now alternates with, apply a powerful knockback to nearby
creatures. Unlike other forms of knockback, this does no damage,
mostly so that we don't have to worry about prompting the player.
("Really knock back the goblin in sanctuary..?")

--------------------------------------------------------------------------------
3916f1956a | Nicholas Feinberg | 2023-01-14 22:27:26 -0800

Move Lesser Beckoning to L2
From L3. It's just not as powerful effect as I expected it to be when
I designed it back in fcbf9236af95 (2016).

--------------------------------------------------------------------------------
e099caa7e7 | Monkooky | 2023-01-14 22:18:13 -0800

Clean up spell power code
calc_spell_power previously took five parameters, four of which
were unneeded. apply_intel, fail_rate_check, and scale were used
in the call for raw_spell_fail to make calc_spell_power function
as _skill_power * scale / 100. This has been corrected by
replacing the call with _skill_power * scale / 100.

cap_power was used in three calls:
- spell failure, which no longer uses check_spell_power
- target_desc, which now applies the cap twice
- and one of the two calls for spell_range passed uncapped spell power.

The only 'material' change is that the impact of schools on failure
chance no longer depends on spell power cap. However, this does not
have an impact unless you have 75 skill, and probably was not intended
in the first place.

[Committer's note: Did some misc cleanup.]

Closes #2735.

--------------------------------------------------------------------------------
acddeb6d44 | Nicholas Feinberg | 2023-01-14 21:44:25 -0800

Remove Morg
This has always been an extremely unexciting unrand, both from a lore
and a gameplay perspective. Moving it to the early game didn't change
that. We can add it back if we ever find a good gimmick for it, but
we've been trying for years without any success, so I'm skeptical.

--------------------------------------------------------------------------------
200c5c4a83 | Nicholas Feinberg | 2023-01-14 10:14:38 -0800

Actually fix vampiric draining info leak (|amethyst)
0af90f9a207b1d would leak info for non-susceptible monsters who got
mirror-cloned. Oops!

--------------------------------------------------------------------------------
8cb723ed8b | Nicholas Feinberg | 2023-01-14 10:00:51 -0800

Buff Slick Slippers
We must provide a more delicious bait. (+1 -> +2, EV +3 -> +5.)

--------------------------------------------------------------------------------
8abc85282e | Nikolai Lavsky | 2023-01-13 23:13:58 +0300

fix: don't highlight an "unrand" in the FAQ
As a side effect of cf644656b, one of the FAQ entries had a light cyan
color.

Fix this by making the corresponding default `menu_colour` rule more
specific.

--------------------------------------------------------------------------------
3ad151c646 | Kate | 2023-01-13 15:28:08 +0000

Allow looking up hell/pan lord unrands (nesea)
They required special-casing in the lookup code since they're have the
nogen flag. The faerie dragon armour still can't be looked up - allowing it
would probably be more confusing than helpful, since its properties change
whenever it generates.

--------------------------------------------------------------------------------
346586fe48 | Nicholas Feinberg | 2023-01-12 15:58:52 -0800

Add labels to unrand artefact effects
To make special effects 'pop' more, make it more obvious when an
unrand does something unusual, and correlate inscriptions with their
effects, add inscriptions for various unrand effects that didn't have
any and preface unrand effect descriptions with a corresponding
inscription. This is incomplete and a little ugly but I'm tired of
staring at unrands for now, sorry.

--------------------------------------------------------------------------------
f9bf66eb98 | Nicholas Feinberg | 2023-01-12 15:58:52 -0800

Actually adjust dart prices
d54f4be4f7bd5e5b2 claimed to do this but didn't (fully).

--------------------------------------------------------------------------------
881e3bac89 | Nikolai Lavsky | 2023-01-12 17:10:29 +0300

docs: add new equip/unequip menus to ?? screen and changelog
Also, fix unequip menu's key in the manual.

--------------------------------------------------------------------------------
d54f4be4f7 | Nicholas Feinberg | 2023-01-11 17:54:38 -0800

Increase throwing weapon prices (Lici)
They were drastically cheaper than wands, despite being arguably better.
Up the base price for a javelin to $30 (from $8), boomerangs to $20 (from
$5), and large rocks to $15 (from $7). (They're rocks. They can only cost
so much.)

Also make darts a bit more expensive.

--------------------------------------------------------------------------------
3eed219d4b | Nicholas Feinberg | 2023-01-11 17:43:58 -0800

Simplify SPMSL prices
Remove an unnecessary scaling factor.

--------------------------------------------------------------------------------
c11e7ae810 | Nicholas Feinberg | 2023-01-11 11:07:21 -0800

Various changelog fixes

--------------------------------------------------------------------------------
d6a5dd7a1f | scarf | 2023-01-10 08:06:11 -0800

feat: add electricity cloud trail
Add a decorative cloud trail for ball lightning.

Resolves #2925.

--------------------------------------------------------------------------------
57b83c3cc8 | scarf | 2023-01-10 07:59:21 -0800

feat: make ball lightning move away from player
Resolves #2924.

--------------------------------------------------------------------------------
fb9a8591bf | Monkooky | 2023-01-10 07:57:02 -0800

Update description of Pain
Pain still exists as a monster spell, and is inaccurately described as causing 
a minor backlash.

This fixes that.

--------------------------------------------------------------------------------
41e54f568c | Nicholas Feinberg | 2023-01-10 07:56:55 -0800

Cleanup vorpal unrands in changelog (ardl)
Bloodbane didn't exist, and the others didn't need to be described
in such detail.

--------------------------------------------------------------------------------
ddc90eaa04 | advil | 2023-01-09 18:04:04 -0500

fix: signal equip_unequip behavior
Also, disable selecting unarmed in equip menus when already unarmed,
regardless of equip_unequip.

--------------------------------------------------------------------------------
91dd1e5a54 | advil | 2023-01-09 17:46:00 -0500

fix: improve equip/unequip warning behavior
* Use menu now handles warnings only for non-equip items
* Fix a mistake in a4aca974772
* Handle equip/unequip inscriptions better: they are now checked when any
  corresponding specific operation gets checked, and warnings are not
  checked for the general case.
* Fix what seems to be a preexisting bug in amulet removal on swap
* Explicitly check !u on unwield
* Document

--------------------------------------------------------------------------------
0e44632947 | Nicholas Feinberg | 2023-01-09 14:05:54 -0800

docs: changelog through 0.30-a0-619

--------------------------------------------------------------------------------
120588e8e2 | Nicholas Feinberg | 2023-01-09 12:33:37 -0800

Note light's effect on stealth (MainiacJoe)

--------------------------------------------------------------------------------
d6c86c23d0 | Nicholas Feinberg | 2023-01-08 21:40:57 -0800

Remove the species size factor for SH
For kite shields, large species got -0.5 SH and kobolds got +0.5 SH.
For bucklers, kobolds got +1 SH and spriggans got +2 SH. This almost
didn't matter and was very silly. The intent, I believe, was to
simulate that shields covered a smaller or larger part of the wearer's
body, but we don't really need to have a tiny bonus modifier for that.

(It was also, I believe, totally undocumented.)

--------------------------------------------------------------------------------
5a1f34b0d0 | advil | 2023-01-09 00:37:03 -0500

fix: add a missing oper_type name

--------------------------------------------------------------------------------
a4aca97477 | advil | 2023-01-09 00:24:26 -0500

fix: no double prompting for jewellery removal
I didn't replicate this bug for weapons or armour, this commit should
fix the jewellery case.

Resolves #2916 (hopefully)

--------------------------------------------------------------------------------
b49e76e7eb | nicolae-carpathia | 2023-01-08 21:19:38 -0500

Add a selection of various vaults I've been working on (#2601)
* Add two vaults to Dis

* Add some generic-threat float vaults

* Add a large abstract-threat vault to large_abstract

* Add a silly early-game vault to mini_monsters

* Add a hydraferious vault to mini_monsters.des

* Add a small arrival vault

* Add a vault featuring everyone's favorite goblin uniques

* Add some trove layouts

* Add two more decorative float vaults
--------------------------------------------------------------------------------
e5ea1257c2 | Nicholas Feinberg | 2023-01-08 12:31:13 -0800

Make Force Lance always knock targets back 1 space
Better tabfeel when you knock something back one space from melee
and can now reach to keep hitting em, instead of having to use a
throwing weapon or evocable or something. (Ew, gross!)

--------------------------------------------------------------------------------
dd512c7efb | Nicholas Feinberg | 2023-01-07 22:10:05 -0800

New early unrand: Force Lance
The Force Lance is a Heavy lance (same weapon type as Wyrmbane -
a spear with +2 base dam) that has a 1/3 chance of knocking back
enemies it deals damage to, sending them 1-2 spaces back and
potentially causing extra collision. I've marked it as an early
unrand (like Throatcutter, etc) because I'm unsure if its damage
really works out for the late game, but it might be quite strong
for an early unrand. We can play with the numbers.

Yes, this is a pun. I'm not sorry.

--------------------------------------------------------------------------------
150a0467c1 | Nicholas Feinberg | 2023-01-07 21:28:11 -0800

Fix rBlind description (BlurryCent)
0b05bf5e213 (April 2022, PleasingFungus) duplicated functionality
for displaying monsters' rBlind added in 0fd21794c30 (October 2014,
PleasingFungus). Deduplicate.

--------------------------------------------------------------------------------
5309dc90a7 | Nicholas Feinberg | 2023-01-07 15:58:37 -0800

Clarify Deal Four description (Booper)
'Deal' was an ambiguous term.

--------------------------------------------------------------------------------
b513c0a51f | Nicholas Feinberg | 2023-01-07 14:48:41 -0800

Make the slick slippers +1
Just feels nicer. Vibes-based design.

--------------------------------------------------------------------------------
59b6b8e1d4 | Nicholas Feinberg | 2023-01-07 14:41:50 -0800

New unrand: slick slippers
The slick slippers make melee attacks from adjacent enemies trample
the player, moving both the player and the attacker in the direction
of the attack. To help this effect trigger, they provide immunity to
constriction, engulfing, netting and webs. Instead of AC, they give
+3 EV.

They are, like sharks, smooth as heck both ways. They're also very
silly.

--------------------------------------------------------------------------------
0e55d2c15d | Kate | 2023-01-07 16:12:53 +0000

Make Shadow Step and Blinkbolt check constriction
As with other movement-based abilities (Power Leap, Electric Charge,
regular blinks, etc), make using Shadow Step or Blinkbolt count as escape
attempts for constriction and cancel the ability on failure.

Storm Form is immune to constriction so this isn't actually relevant for
Blinkbolt in practice, but add the check anyway in case it becomes possible
to Blinkbolt in some other way.

--------------------------------------------------------------------------------
182fdc4e28 | Kate | 2023-01-07 16:12:53 +0000

Adjust Blinkbolt targeting restrictions
Don't allow targeting allies or blinking out of mesmerisation/fear.

--------------------------------------------------------------------------------
a80edbb7d7 | Nikolai Lavsky | 2023-01-07 15:18:42 +0300

fix: make equip_unequip work again (#2915)
After cd1ce1e3b, it wasn't possible to select an equipped item in the
unified equip menu even if the `equip_unequip` option was set to true.

Closes #2915.

--------------------------------------------------------------------------------
b2882149bf | Roadster Tracker | 2023-01-06 22:20:17 -0800

Tweaking spider text labels to be more consistent
Fixed #2742, changing front legs to front pincers, which we could also call 
Pedipalps if we wanted to follow more closely with real anatomy. Venomous is 
the more commonly used term for things that can poison, and technically is the 
right term here, so let's be consistent.
--------------------------------------------------------------------------------
56536a0467 | bfaires | 2023-01-06 22:04:56 -0800

Fix: Ref to scroll of ID may break in _identify()
Break caused by auto_assign_item_slot() and swap_inv_slots(),
when the ID'd item swaps with the scroll of ID.
Parameter 'link' is already provided to accommodate this.

Mainly, fixing this means scroll of ID will be assigned to its
assigned item_slot if it was previously unknown.

(Committer's note: simplified the check logic.)

Closes #2811.

--------------------------------------------------------------------------------
51a0fb1b98 | Nicholas Feinberg | 2023-01-06 21:50:41 -0800

Tweak demonic crawlers
To avoid stalemates, decrease regen by 50% (9 -> 6 HP/turn) and increase
damage 25% (16 -> 20).

--------------------------------------------------------------------------------
e18489c159 | pdpol | 2023-01-06 21:47:31 -0800

fix: Make a flavor gimmick wand no_pickup

--------------------------------------------------------------------------------
ae655ce167 | Nicholas Feinberg | 2023-01-06 19:31:16 -0800

Fix an abyssal Vhi's crash (erf)
Very weird.

--------------------------------------------------------------------------------
b7c8574cbb | Monkooky | 2023-01-06 14:48:15 -0800

Decouple knockback from beam.cc
Moves knockback from beam.cc to actor, removes the reliance of
knockback code on an origin spell.

(Committer's note: also simplifies messaging for Wind Blast/Nemelex's
Storm card and some associated behaviors, e.g. not trying to find a
ray path that can push a creature past an obstacle and not handling
dispersal trap weirdness.)

Closes #2906.

--------------------------------------------------------------------------------
01405fa21b | Aliscans | 2023-01-06 13:25:57 -0800

Add a few missing options to options_guide.txt
Add explore_item_greed, messaging, suppress_startup_errors, sounds_on
and tc_forbidden to options_guide.txt. Also correct the spelling of
trap_item_highlight.

--------------------------------------------------------------------------------
d5c1ca3ef2 | Nicholas Feinberg | 2023-01-06 12:29:17 -0800

Make Majin-Bo a one-hander
The HP cost (and not having an enhancer staff!) is enough of a tradeoff
for the HP vamp effect on this unrand. Few people were going into melee
with a +6 vamp quarterstaff, so just make it a one-hander to encourage
more use.

--------------------------------------------------------------------------------
dfe09d59a3 | Nicholas Feinberg | 2023-01-06 12:27:58 -0800

Reduce Banish fail%
Following up on b4a478afbafa2c27c14ee0a351f27461f6865492. Now that
Banish is at 2*, make it usable at Invo 4-5 or so, instead of wanting
Invo 7-8.

--------------------------------------------------------------------------------
0af90f9a20 | Nicholas Feinberg | 2023-01-05 23:03:50 -0800

Fix vamp drain mirror info leak (Yermak, 12694)
Targeting a mirror-clone'd non-rN enemy (eg an ettin mirorred by a
rakshasa) with Vampiric Draining would show 'not susceptible'. But
you're not supposed to know that!

--------------------------------------------------------------------------------
91969c0fa5 | Nicholas Feinberg | 2023-01-05 18:47:21 -0800

Fix cloud description spacing (Yermak, 12570)
There was a missing newline between the desription of opacity and
'clouds of this kind an adventurer makes will vanish quickly...'

--------------------------------------------------------------------------------
8d6c2bfbca | Nicholas Feinberg | 2023-01-05 18:44:35 -0800

Make insubstantial forms web immune (Yermak, 12627)
Consistent with monsters, and with 'common sense' (whatever that means).

--------------------------------------------------------------------------------
e6437df491 | Nicholas Feinberg | 2023-01-05 18:42:14 -0800

Don't suggest dropping books (Yermak, 12639)
Fix a dated oversight in the manual.

--------------------------------------------------------------------------------
36a728ae67 | patrick | 2023-01-05 18:45:15 -0500

Fix some randbook names
those damned underscores ;_;

--------------------------------------------------------------------------------
3c58d2bc28 | Nicholas Feinberg | 2023-01-03 16:16:25 -0800

Show spell max damage in descriptions
Give players a better idea of what increased power might get em.

--------------------------------------------------------------------------------
0ab68b0ef8 | Nicholas Feinberg | 2023-01-03 16:16:02 -0800

Fix conjure ball lightning damage display
Don't randomize it!

--------------------------------------------------------------------------------
1249b68b83 | Nicholas Feinberg | 2023-01-03 15:59:44 -0800

Brand weapon description fixes (ragingrage)

--------------------------------------------------------------------------------
21f81f4b3e | Nicholas Feinberg | 2023-01-03 15:53:09 -0800

Rewrite weapon brand descriptions
Move them closer to the damage rating, and provide additional numbers
for many brands. This is an attempt to make damage ratings more useful,
and clarify that brands are not included in the rating.

Remove "+ Flame", etc, from damage rates, since that was more confusing
than helpful.

--------------------------------------------------------------------------------
fd7c166f36 | hellmonk | 2023-01-03 13:55:14 -0500

fix: Display explosion noise for fulminant prism
This is more consistent with other spells and is the most relevant noise value.

--------------------------------------------------------------------------------
23e55c9e0a | Nicholas Feinberg | 2023-01-02 13:06:47 -0800

Cap Will at +++++ (200)
I always assumed it was capped here, but that was just a display
artifact! (Hex power is capped at 200, so I believe this didn't matter
except for WL/2 effects.)

--------------------------------------------------------------------------------
93115170b9 | nicolae-carpathia | 2022-12-31 18:16:51 -0500

Add more entries to randbook.txt (#2896)
Add more nouns, adjectives, and gerunds to randbook.txt. Also,

alphabetize the spell school nouns/adjectives by spell school.

Add new book title formats, new proper names for wizards, etc.
--------------------------------------------------------------------------------
e794ca7099 | Nicholas Feinberg | 2022-12-31 15:09:50 -0800

Make Doom Hounds' Howl Will-resistable
For consistency with other mental effects, and to make Grunn's Doom
Hounds a bit weaker, Doom Hounds' Howl can now be resisted with Will.
It's a max (200) power effect, so it has about a 85% chance of hitting
folks around 1 pip of will, 67% chance of hitting folks around 2 pips,
and 7% at 4 pips. Willpower is halved in Tar, of course, so good luck
with that... :)

--------------------------------------------------------------------------------
19bae12e61 | Nicholas Feinberg | 2022-12-31 14:49:15 -0800

Improve doom hound description
Clarify explicitly that each one can only inflict Howl on you once,
since players may not check the spell description.

--------------------------------------------------------------------------------
cd7af8bf02 | Nicholas Feinberg | 2022-12-31 14:43:16 -0800

Add new splash screen (Micah C)

--------------------------------------------------------------------------------
084b5e0cf6 | Kate | 2022-12-31 16:41:11 +0000

Fix a missing ENDMAP

--------------------------------------------------------------------------------
472bc636d8 | nicolae-carpathia | 2022-12-31 10:13:12 -0500

Svaults sfor sbranches (#2632)
Add some vaults of all kinds for the S-branches: entry, decor, monstriferous. 
Thanks to hellmonk and gammafunk for feedback.
--------------------------------------------------------------------------------
71422dec44 | nicolae-carpathia | 2022-12-31 09:58:01 -0500

Add some nostalgic vaults taken/borrowed from Nethack (#2547)
Even though I don't play it anymore these days, if I hadn't played Nethack I 
would never have gotten into roguelikes in the first place, and I would 
probably have never made even a single vault for DCSS. As tribute to the games 
of my past, I converted a few vaults (so to speak) from Nethack into DCSS.



-Add a Nethack-style shop which has fared poorly in this Dungeon, and an

interpretation of Vlad's Tower.

-Add a shop vault based on the Nethack Oracle level


--------------------------------------------------------------------------------
dee14c521f | Nicholas Feinberg | 2022-12-30 15:48:01 -0800

Remove fast regen from a grab-bag of monsters
No idea why slime creatures, bennu, searing wretches, steelbarb worms,
starcursed masses, hellwings, or cacodemons had fast regen. It mostly
didn't matter, and now it's gone. No compensation.

--------------------------------------------------------------------------------
18c750863f | Nicholas Feinberg | 2022-12-30 15:39:27 -0800

Nerf Demonic Crawler Will (Prakerore)
From 100 to 60, to give more options for players to deal with them
post-df30a72648cc7404845406d854965524b211e338.

--------------------------------------------------------------------------------
89cddaab80 | Nikolai Lavsky | 2022-12-30 02:13:03 +0300

fix: don't crash when wizmode-blinking into the map border
It was possible to move into the map border via the `xm` wizmode
command and crash the game.

--------------------------------------------------------------------------------
6f4a10e2d2 | Nicholas Feinberg | 2022-12-29 09:35:57 -0800

New ?acquirement quote (Ge0ff)
Plus, rename dril.

--------------------------------------------------------------------------------
4a2fe84c73 | Nicholas Feinberg | 2022-12-29 09:30:50 -0800

Incorporate Heavy into monster damage descriptions
xving a monster with a Heavy weapon will now factor the brand into
what it can 'hit for up to'.

--------------------------------------------------------------------------------
0687761a96 | Nicholas Feinberg | 2022-12-29 09:28:47 -0800

Truncate Heavy description
Try to avoid splitting the damage rating over multiple lines.

--------------------------------------------------------------------------------
9cf5a25fce | Nicholas Feinberg | 2022-12-29 09:28:11 -0800

Fix Heavy on ranged weapons (various)
This code was ancient and hacky!

--------------------------------------------------------------------------------
df30a72648 | Nicholas Feinberg | 2022-12-28 21:56:58 -0800

Rework demonic crawlers (Lici, acrobat)
After the last round of reworks, Spider ended up a little tougher than
I'd prefer. One culprit is the screaming demonic crawlers, which call
swarms of enemies from all around. These step on bunyips' toes a bit
(as fellow S enemies), so let's swap out the screaming (and their
omni-resists) for a new gimmick: super fast regen. Like mini-Parghits,
demonic crawlers now regen at 9 HP/turn, meaning that burst damage is
needed to take them down.

Let's try it out and see how it plays.

--------------------------------------------------------------------------------
486de37d69 | patrick | 2022-12-28 14:16:42 -0500

Edit quotes.txt some more
Add two new quotes, move a recently-added quote, and edit punctuation
in an existing quote.

--------------------------------------------------------------------------------
58aec57eca | advil | 2022-12-28 09:54:40 -0500

fix: disable misc from acquirement
Reverts a change in 8e341f0f67. It seems that enabling misc also enables
wands, which was unintentional. ...and weird, it looks like that'd lead
to 1.5 weighting of wands in dungeon acquirement, and 0.5 of misc? see
_find_acquirement_subtype -- I suspect the random_choose there should be
removed. But I don't have time to investigate right now so I'm just
going to revert.

--------------------------------------------------------------------------------
124715a40b | Nicholas Feinberg | 2022-12-27 22:31:28 -0800

Add a few missing quotes

--------------------------------------------------------------------------------
f7fd966b4a | patrick | 2022-12-27 21:25:34 -0500

Make changes to nicolae_shop_unique_rings after the EV ring changes
The One-of-a-King Ring store is getting some inventory changes for
the new year. Making room for the 2023 models and all that.
* Adjust the ranges of evasion rings. They used to be 1-3 for the
  worse ones and 5-7 for the better ones. Now that they're +5 by
  default, and Hare is now +10, the ranges are 1-4 for the worse
  ones and 6-9 for the better ones.
* Tweak the variance on some of the other plus rolls.
* Add comments.

--------------------------------------------------------------------------------
7d635642ba | Nicholas Feinberg | 2022-12-27 17:38:39 -0800

Fix up other evasion rings post-buff (nicolae)

--------------------------------------------------------------------------------
e6aed4c269 | Nicholas Feinberg | 2022-12-27 15:48:52 -0800

Improve Lugonu Abyssal conversions
Make Lucy altars a bit more than 3x as common in the Abyss, and give
those who convert in the Abyss an instant 2*. This is intended to
make conversion more enticing, without making getting Lugonu from a
faded altar stronger.

More general Lugonu buffs are still under consideration.

--------------------------------------------------------------------------------
f5d82afd56 | Nicholas Feinberg | 2022-12-27 15:48:52 -0800

Protect Fedhasites from opp attacks (CarefulOdds)
Moving out of a plant should follow the same logic as swapping with
an ally - either way, adjacent foes can't follow to the same square
you were just in, so they shouldn't get a chance to launch an opportunity
attack on you.

--------------------------------------------------------------------------------
c7247dd3ff | Nicholas Feinberg | 2022-12-27 15:48:52 -0800

Buff rings of evasion slightly
Move 'em from +4 to +5. The former value stacked up poorly compared
to other common rings, like AC and even Dexterity.

--------------------------------------------------------------------------------
4ce571a2c8 | Nicholas Feinberg | 2022-12-27 15:48:52 -0800

Clarify Vhi/MA casting speed

--------------------------------------------------------------------------------
1b0378597e | Nikolai Lavsky | 2022-12-27 21:25:09 +0300

fix: don't let monsters block attacks with an orb (u/kuniqsX)
Due to a missing subtype check, orbs gave monsters an ability to block
attacks.

Big monsters with high HD received an especially large shield bonus
from orbs. A frost giant could get up to 17 SH from a +0 kite shield,
23 SH from a +0 tower shield, and 38 SH from any orb.

Reported in
https://www.reddit.com/r/dcss/comments/zu9xl3/orbs_block_things_for_monsters/

--------------------------------------------------------------------------------
ef2d420e60 | advil | 2022-12-27 12:07:31 -0500

fix: quiet a platform-specific warning
`%llu` is not guaranteed to line up with `uint64_t`, so use the correct
printf specifier. (Seen in CI builds.)

--------------------------------------------------------------------------------
1df383f42f | advil | 2022-12-27 12:07:31 -0500

fix: local tiles glyph mode animations
Noticed by Aliscans in #2904, but this warning was a symptom of a bug,
not a false positive. Without these calls, zap animations don't display
in local tiles glyph mode.

--------------------------------------------------------------------------------
fc1376df4e | Nikolai Lavsky | 2022-12-27 14:23:41 +0300

fix: add a uselessness check for scrolls of brand weapon
Similar to scrolls of enchant armour/weapon, consider scrolls of brand
weapon to be temporarily useless if the player doesn't have a weapon
to brand.

--------------------------------------------------------------------------------
e2afbf3030 | hellmonk | 2022-12-26 19:13:12 -0500

Increase steam breath cooldown
It's arguably the strongest draconian breath. Unclear why it had half the
cooldown of the others.

--------------------------------------------------------------------------------
0a0f5a245f | Antanishin, Ernest | 2022-12-26 17:02:00 -0500

fix: highscore line buffer length  enlarged from 1300 to 1500.

--------------------------------------------------------------------------------
c8b2f71149 | Nicholas Feinberg | 2022-12-26 13:47:40 -0800

Replace Vorpal with Heavy (bitdizzy, hellmonk)
Vorpal is a pretty bland brand. It's just more damage, everywhere,
all the time. It's often fine but never exciting.

So let's swap it out for something else I wanted to add anyway.
Heavy is a new brand that increases weapon delay by 50% (the opposite
of Speed), but increases weapon base damage by 80%. (This then gets
multiplied by stats, skills, etc.) It works differently from Vorpal,
Flaming etc because, if it was a post-AC effect, it would be utterly
terrifying in monsters' hands. It's also much easier to display to
players as a pre-AC effect - it'll show up properly in damage rates.

Various unrands have been adjusted as appropriate. Currently the only
ones that keeping Heavy are Sniper and the Dark Maul (with some tweaking),
but it feels like there should be another good Heavy unrand design out
there somewhere.

The idea is that this should feel fun to use (big impacts per keypress),
but should also be a bit scary (potentially multiple enemy actions per
attack). It's very good against monsters with high AC, but quite bad if
you're depending on auxes or slaying for damage. It's a land of contrasts.

Let's try it out!

--------------------------------------------------------------------------------
e4bbf75661 | advil | 2022-12-26 16:16:42 -0500

fix: quiet some gcc warnings (Aliscans)
In the case of the `aux` parameter here, this now seems to be completely
unused, so I have removed it rather than commented it out.

--------------------------------------------------------------------------------
7fabdf1491 | hellmonk | 2022-12-25 22:23:23 -0500

remove a gimmick entry vault
It was a source of endless new player confusion and only had one exit.

--------------------------------------------------------------------------------
68bb171944 | advil | 2022-12-25 21:34:12 -0500

fix: handle vs and curing uselessness
Followup to 41eeaaa. The problem was not the ailment check, but that the
call to you.can_potion_heal with temp set to false would lead to !curing
being marked as perma-useless to Vs. This commit refactors the logic to
be clearer, since every species that can drink at all should be able to
use curing (as far as I can see).

--------------------------------------------------------------------------------
8e341f0f67 | advil | 2022-12-25 21:25:41 -0500

feat: remove staves/misc from acquirement if fully id'd
All acquirable items from both classes are now pointless to give if
they've been seen before. Previously for misc types, this didn't matter
much, as this was only used in troves (see 148af02efdf0ad). I did decide
to put misc items back in regular acquirement circulation, with this
check: the circumstances have changed quite a bit since 148af02efdf0ad
and it seems to make sense to give previously unseen misc items. I don't
feel strongly about this part of the commit, though.

--------------------------------------------------------------------------------
ea934af5c9 | advil | 2022-12-25 21:17:41 -0500

fix: correct bounds for two checks against get_max_subtype
`get_max_subtype` returns one past the max valid subtype (e.g.
`NUM_WEAPONS`), correct the comparison operator in two ASSERTs.

--------------------------------------------------------------------------------
fb95710a5e | advil | 2022-12-25 21:17:41 -0500

fix: don't try to acquire staves under sac hand (Monkooky)
A non-fo char with a missing hand could still cause SK_STAVES to be
rolled as a weapon acquirement skill, but then all weapon types for the
skill would be useless or acquirement weight 0 (WPN_STAFF), causing the
reservoir sampling line to never run at all, leading to a crash. The
effect would be increased by staves skill, but probably possible on all
sac hand chars.  This code adds a (somewhat elaborate) check for this
case, preventing most sac hand chars from getting staff weapons via
acquirement. (I think it probably prevents staff unrands as well, which
would be usable in principle -- probably fine?)

Also, add an ASSERT specifically for this reservoir sampling failure
case, and add some baseline acquirement testing to the makeitem test.
The new test wouldn't have actually caught this case, but I think it
might have caught a different recent issue, and it's still useful for
hand debugging of acquirement (by modifying the setup code).

--------------------------------------------------------------------------------
74b111d446 | advil | 2022-12-25 21:17:41 -0500

fix: use correct var in an acquirement assert
`type_wanted` here is subtype, not base_type, so this check was wrong
and also mismatches the ASSERT in is_useless_item.

--------------------------------------------------------------------------------
f74bfe16ba | hellmonk | 2022-12-25 20:52:32 -0500

fix: Always stop constriction under paralysis
Fixes issue #2801.

--------------------------------------------------------------------------------
41eeaaa9f6 | hellmonk | 2022-12-25 20:27:11 -0500

fix: remove an erroneous uselessness check
This was preventing vine stalkers from quaffing curing while poisoned
or confused. It also applied to robe of vines, I think.

--------------------------------------------------------------------------------
ee59754557 | hellmonk | 2022-12-25 20:09:03 -0500

Adjust summon mana viper
Scale HP with HD like normal (for simplification) and start it 1 HD higher.
This should be fine now that the summon cap is 1. HP breakeven is at 48 power.

--------------------------------------------------------------------------------
09da2da527 | hellmonk | 2022-12-25 19:54:24 -0500

remove confusing touch to-hit bonus
Intended as a simplification more than a nerf, it used dex rather than power
(weird). Can buff the spell in other ways if this makes a big difference.

--------------------------------------------------------------------------------
c507713703 | hellmonk | 2022-12-25 19:52:47 -0500

reduce discharge self damage

--------------------------------------------------------------------------------
e43150dd35 | Nikolai Lavsky | 2022-12-25 21:04:33 +0000

fix: don't visit item piles with useless glowing or artefact items
On default settings, greedy explore travels to and stops at all piles
of glowing or artefact items even when the items are useless for the
character. This leads to a lot of unnecessary autoexpore interruptions
for species with gear restrictions, especially for octopodes and felids.

After this commit, greedy explore will ignore useless items if
`explore_greedy_visit` is set to `artefacts` and/or `glowing_items`
(the default). If it's set to `stacks`, explore will visit all piles,
as before.

--------------------------------------------------------------------------------
4038c81314 | Nikolai Lavsky | 2022-12-25 21:04:33 +0000

fix: revisit item piles only if their size increases
After df645b4c5, autoexplore visits all piles with glowing items or
artefacts even when the piles don't have anything for autopickup. If
the character encounters an already visited pile that has changed
in size, autoexplore will travel to it again.

If the stack's size has increased, there might be new interesting items.
Otherwise, there is usually no reason to recheck a pile.

Most of unnecessary pile revisits happen due to corpse decay, but they
can also be caused by the player apporting items from piles or by Jiyva
jellies eating items.

After this commit, autoexplore won't revisit item piles after they get
smaller.

--------------------------------------------------------------------------------
0af01429fa | advil | 2022-12-24 18:31:30 -0500

fix: mark a static (Aliscans)

--------------------------------------------------------------------------------
cd1ce1e3ba | advil | 2022-12-24 18:08:58 -0500

feat: add a generalized unequip menu
This moves the take off and remove popups to use UseItemMenu, and
adds a general unequip pane to that menu. This new pane can be accessed
via CMD_UNEQUIP, bound right now to `c` as the only free letter. There
was various refactoring and tweaking in this commit to enable this, and
these actions are now triggerable via use_an_item with the appropriate
operatio value.

Aspirational notes:
* it might be better to connect the equip menus with the unequip menus
  somehow. Maybe allow unequipping from the equip menu? The easiest
  thing here would just be another hotkey that swaps between the two.
* It would be really great if error messages for equip/unequip would
  show in this menu somehow. Unfortunately, they are all directly
  printed all over the place via mpr, so this is a bit involved to get
  going.

Misc notes:
* I moved a lot of the error messaging onto MSGCH_PROMPT. I'm not sure
  if this or the regular channel is really better, but this was very
  inconsistent before. Seems likely to still be inconsistent.
* I marked jewellery as temp useless when in a form that doesn't allow
  it; this is for consistency with weapons/armour, which are already
  marked this way.

--------------------------------------------------------------------------------
7acccb668d | advil | 2022-12-24 18:08:58 -0500

feat: unified equip menu
This adds a pane to the use item menu that shows all equipable items
(weapons, armour, jewellery) and binds the new CMD_EQUIP to `e`.

With this change comes a relatively big refactor of the use item code,
both to clean up some of the messiness in 5a63ccc183, and just generally
have more uniform codepaths. Some of the old api could perhaps be
further removed / cleaned up, e.g. a lot of these functions probably
shouldn't take an `item_def *` any more. Aside from the new command /
menu features, this refactor isn't intended to change equipping.

--------------------------------------------------------------------------------
6c4b56ed3b | advil | 2022-12-24 18:08:58 -0500

refactor: separate weapon swap from regular wield code
This code was smushed into one somewhat confusing function, despite the
inputs and logic being fairly different. I'm pretty sure I've correctly
detached them..

--------------------------------------------------------------------------------
df6ecd2dc0 | advil | 2022-12-24 18:08:58 -0500

refactor: simplify `wield_weapon` signature
This function had a bunch of legacy unused parameters (one was still
used, but only in now dead code). Simplify.

--------------------------------------------------------------------------------
2c0b3469a7 | Nikolai Lavsky | 2022-12-24 19:11:46 +0300

docs: update some links in the new developer docs

--------------------------------------------------------------------------------
dc55766716 | Nicholas Feinberg | 2022-12-23 22:39:42 -0800

Welcome nlavsky to the devteam
Cheers! :)

--------------------------------------------------------------------------------
4794bfbd1c | Nicholas Feinberg | 2022-12-23 13:44:20 -0800

Fix: don't claim the autumn katana is vorpal
Broken since 5f824d10e6f (13+ months ago).

--------------------------------------------------------------------------------
27a1dae89b | Nicholas Feinberg | 2022-12-23 13:35:04 -0800

Rework Mad Mage's Maulers
Make them more exciting for hitting things with by replacing regenMP
(+0.4 MP/turn) with VampMP, which turns damage done in melee into MP.
(Currently 1/8th of damage done, but I'll probably adjust that.) Make
them even more appealing to melee brutes by replacing the Int-3 (which
is potentially dangerous to low-int characters) with -Cast.

--------------------------------------------------------------------------------
b4a2863f8f | Nikolai Lavsky | 2022-12-23 11:42:43 -0800

fix: make autoexplore wait for movement restrictions to expire
If you wear an amulet of magic regeneration, it's possible to cast
Momentum Strike and then restore MP before -Move times out.
Pressing `o` will just print "You cannot move." and you'll have to
use `5` or `.` to rest -Move off.

Fix this by making autoexplore wait for -Move to expire before
attempting to move. Tree form and Stuck status from Translocations
miscasts also prevent autoexplore, so let's fix these cases too.

--------------------------------------------------------------------------------
a9c6de93fa | RypoFalem | 2022-12-23 11:40:40 -0800

fix fsim with ranged weapons Use fake projectiles rather than whatever you're 
quivering

--------------------------------------------------------------------------------
946936b853 | advil | 2022-12-23 10:36:23 -0500

fix: remove butchering and destroying(??)

--------------------------------------------------------------------------------
8c47a4955b | Nicholas Feinberg | 2022-12-22 20:39:11 -0800

Fix Toxic Bog + Step from Time (#2749, Monkooky)
Per the comment, end the toxic bog status when doing Chei's step from
time or temporal distortion. The linked issue suggests also disabling
L's Liquefication, Mark, and Mesm, but I unfortunately disagree. Mark
is a status on the player, like any other duration, and stepping from
time doesn't affect those. Ditto liquefication, which follows the player
around. Mesm is more ambiguous, but if the mesmerizer is still around
when the player returns from their step, they should still be affected.

Fixes #2749.
Closes #2893.

--------------------------------------------------------------------------------
d44aff7e82 | Nicholas Feinberg | 2022-12-22 20:30:21 -0800

Checkwhite

--------------------------------------------------------------------------------
68f495328a | Zhang Kai | 2022-12-22 20:29:57 -0800

Update monsters.txt
To make the words more uniform and the sentences more smooth, and adapt to line 
character limit
--------------------------------------------------------------------------------
10769c07a2 | Zhang Kai | 2022-12-22 20:29:52 -0800

Update spells.txt
Update, make the words more uniform and the sentences more smooth, and adapt to 
line character limit.
--------------------------------------------------------------------------------
807956db86 | Zhang Kai | 2022-12-22 20:29:40 -0800

Update gods.txt
Update, make the words more uniform and the sentences more smooth.
--------------------------------------------------------------------------------
18dac8f90a | Zhang Kai | 2022-12-22 20:29:34 -0800

Update ability.txt

--------------------------------------------------------------------------------
1eefe1720f | Zhang Kai | 2022-12-22 20:29:30 -0800

Create mutations.txt

--------------------------------------------------------------------------------
01a5972819 | Zhang Kai | 2022-12-22 20:29:25 -0800

Update spells.txt
Update, make the words more uniform and the sentences more smooth, and adapt to 
line character limit.
--------------------------------------------------------------------------------
b4612467ca | Zhang Kai | 2022-12-22 20:29:18 -0800

Create FAQ.txt

--------------------------------------------------------------------------------
906f8a8453 | Zhang Kai | 2022-12-22 20:29:09 -0800

Create help.txt

--------------------------------------------------------------------------------
b5a9a196e2 | Zhang Kai | 2022-12-22 20:28:44 -0800

Create monflee.txt

--------------------------------------------------------------------------------
f0747e9c1c | Zhang Kai | 2022-12-22 20:28:06 -0800

Create montitle.txt

--------------------------------------------------------------------------------
18619c1dc1 | hellmonk | 2022-12-22 20:27:10 -0800

remove invisibility from chaos effects
It's a very annoying interface tax without sinv. To replace it, increase the
odds of agility for the beam version and add a chance of resistance for both
beam and attack flavor versions.

--------------------------------------------------------------------------------
c876ba1704 | Nicholas Feinberg | 2022-12-22 20:25:46 -0800

Adjust stash.cc formatting for readability

--------------------------------------------------------------------------------
9bd54e8edc | pdpol | 2022-12-22 20:25:31 -0800

feat: Filter out useless altars from stash search

--------------------------------------------------------------------------------
663962266a | Nicholas Feinberg | 2022-12-22 18:30:18 -0800

Bump Heroism and Finesse ability costs
Having Heroism be extremely cheap meant you basically wanted to use
it for any even slightly threatening fight, which isn't awful, but
isn't the most exciting thing ever, either. Since we want to pull
Okawaru's strength back a bit toward other gods', increase Heroism's
piety cost from 1 to 3-4, making it more suitable for threatening
encounters.

Raise Finesse's cost correspondingly, from 3-4 to 5-7.

--------------------------------------------------------------------------------
913f7af9ec | Nicholas Feinberg | 2022-12-22 18:25:49 -0800

Don't show .s for low stealth
Falsely implies to players that replacing all your . with + means
you've capped out on stealth. (There is no cap on stealth.)

This looks a little weird at very low stealth, but let's try it out
anyway.

--------------------------------------------------------------------------------
0d9051e15b | advil | 2022-12-22 15:06:41 -0500

refactor: consolidate potion uselessness code
Previously, potion uselessness was handled in a superficial way by a
bunch of checks in item-use.cc, and then in a much more fine-grained way
on the actual quaff calls. The latter didn't expose the messaging to be
usable elsewhere (as scrolls now do), and wasn't fully consistent with
the other uselessness code. This commit refactors so that the potion
code overall uses the same strategy as scrolls, except that this is
plumbed directly into the `can_quaff` checks in potion.cc.

* Expand temp uselessness to match almost exactly when potions won't
  work. This does now mark e.g. !heal as temp useless at full hp and so
  on, which could be annoying. (nlavsky was worried about making the
  action panel too flickery with some of these cases.) If so, I'd rather
  have the general case working and then special case what ui needs
  further changes. A few weird cases: brilliance no longer works under
  Trog, before it worked but its effects only matter if you cased.
  !invis still works when temp useless with an override, and I've fixed
  some of these cases. It's possible that effects prevented by armour
  (robe of folly, robe of vines) should be perma-useless? But generally
  that's not how we handle equip.
* Show uselessness reasons in item descriptions.
* Fix some corner cases: invis while wielding eos, !magic with full mp,
  curing with full hp and nothing to cure, brilliance with folly (prev
  marked as useless but drinkable), some flight check issues
* Overall message consistency

--------------------------------------------------------------------------------
799d0685e7 | advil | 2022-12-21 19:55:42 -0500

refactor: adjust scroll uselessness reasons
* Move `cannot_read_item_reason` to the same file as
  `is_useless_item` (not sure I care hugely which file they should be
  in, but they should be together).
* Expand out perma-uselessness reasons. Everything should be covered
  now, and the function has an explicit `temp` param.
* Reason priority should be better, and every scroll should show a
  reason in its description if temp or perma useless.
* Various minor tweaks.

One awkward case: after this commit, amnesia no longer works under Trog.
Before, it worked, despite being marked as perma-useless. This could
probably be overridden if necessary.

--------------------------------------------------------------------------------
d016549fea | advil | 2022-12-21 16:26:10 -0500

Merge branch 'android'
This at long last merges #1892 plus a few tweaks, mainly to CI and
documentation.

Resolves #1892

--------------------------------------------------------------------------------
f32fc37df5 | advil | 2022-12-21 13:43:33 -0500

docs: notes on command line android builds
This is still a bit sketchy, as I never really got this to run all the
way through (due to issues in my android build setup, as far as I can
tell). However, I think there's enough here to get someone going.
Eventually, it would be useful if someone added explicit fully
replicable linux steps here using apt.  (Unfortunately, my experience on
mac was that the package manager based approaches I tried were
horrendously broken, so I gave up on describing that exactly.)

--------------------------------------------------------------------------------
92a8e1e1ec | advil | 2022-12-21 13:43:04 -0500

fix: mac ccache location in CI

--------------------------------------------------------------------------------
89d08c6997 | advil | 2022-12-21 13:07:00 -0500

fix: update CI ccache location
Since ccache 4.0 (2020-10-18), ccache changed the default location for
the cache based on the XDG base directory specification. I'm not sure
when this started appearing on our CI runners, but it appears that as of
right now it has completely broken ccache saving. This commit should
get the correct location.

--------------------------------------------------------------------------------
cea3e4f894 | advil | 2022-12-21 12:16:45 -0500

build: ccache debugging info

--------------------------------------------------------------------------------
7ea5a21d01 | advil | 2022-12-21 11:09:24 -0500

build: another try at ccache
I think this is unlikely to work, but we'll see...

--------------------------------------------------------------------------------
330ca2eb8e | advil | 2022-12-20 09:40:43 -0500

fix: maybe fix console build

--------------------------------------------------------------------------------
03497ec522 | Nicholas Feinberg | 2022-12-19 15:19:12 -0800

Remove MONS_NO_MONSTER from Orc spawn tables
Fixes weird cases where Orc could spawn no monsters.

Total monster count / XP drops by 3-5%, which is within margin of error.
We can tweak a little more later if need be.

--------------------------------------------------------------------------------
5673dd7ce6 | Nicholas Feinberg | 2022-12-19 14:23:14 -0800

Enable Grinch Mode
Allow players to opt out of the new holiday tiles, plus Halloween.

--------------------------------------------------------------------------------
de979b18e0 | Nicholas Feinberg | 2022-12-19 14:23:14 -0800

Add cozy, easy-to-wear holiday hats (Sastreii)
Downside: constant jingling gives -3 stealth.

--------------------------------------------------------------------------------
ecbe3e46b9 | Nicholas Feinberg | 2022-12-19 14:23:14 -0800

Give Sigmund some holiday spirit (CanOfWorms)

--------------------------------------------------------------------------------
c78de03d82 | advil | 2022-12-19 14:25:10 -0500

build: attempt to enable ccache for android
This is a bit of a shot in the dark..

--------------------------------------------------------------------------------
4f163fc199 | advil | 2022-12-19 10:44:05 -0500

build: cut a job from CI
This seems like the most pointless of the current build matrix; I don't
think anything is gained by testing these options in combination that
won't be handled by the individual cases.

--------------------------------------------------------------------------------
6ac2e24f95 | advil | 2022-12-19 10:36:20 -0500

build: remove a duplicate CI job
Seems to have been accidentally duplicated a couple years ago.

--------------------------------------------------------------------------------
367de1291c | advil | 2022-12-19 10:25:39 -0500

build: tweak CI order for android
I'm pretty sure ccache is not working properly for the gradle build,
this is an attempt to get more info.

--------------------------------------------------------------------------------
05911a2283 | advil | 2022-12-19 10:05:47 -0500

docs: add a note about android to INSTALL.md
This could probably stand to have a bit more detail, but I don't
understand this build process enough for that.

--------------------------------------------------------------------------------
a54866c054 | advil | 2022-12-18 19:06:01 -0500

Merge branch 'master' into android

--------------------------------------------------------------------------------
84de5afbc5 | Josh Braendel | 2022-12-18 12:32:03 -0500

fix c++ warning
[committer's note: renamed `copy`, since it doesn't have the semantics
of std::copy. This is structured like the copy and swap paradigm, but
this function isn't really a swap function; it's possible there's a more
idiomatic c++ way of doing this whole thing, but FixedArray is not very
idiomatic c++ in the first place. Resolves #2861]

--------------------------------------------------------------------------------
647bc5cc63 | advil | 2022-12-18 11:32:21 -0500

fix: explicitly cast ghost colours to int
This prevents a warning in gcc. This probably means the related commit
in #2861 is unnecessary, though the sign issue still remains, as
detailed by the comment here. I spent a while trying to figure out how
to disable this warning, but when I looked into the details of this
exact bit of code, I think gcc was right to warn.

--------------------------------------------------------------------------------
47a42acea8 | advil | 2022-12-18 10:40:42 -0500

fix: correctly handle monsterless branches

--------------------------------------------------------------------------------
fa4925f201 | advil | 2022-12-18 10:07:03 -0500

fix: remove a constraint from 4188047c905
This can (in principle) happen in lair as well, no reason to restrict
this check to orc only. (I think I had this in for testing reasons and
forgot to remove it.)

--------------------------------------------------------------------------------
8901f6c8b5 | gammafunk | 2022-12-16 17:15:27 -0600

feat: Some tweaks to three lair vaults
pdpol_lair_cabin_in_the_woods:

Give the human survivor some passable gear. A good_item war axe and
lower tier good_item armour won't grant a lot loot value but will make
this human slightly less trivial to defeat.  Not to the extent that it's
likely to kill a player, but it should make fighting the survivor a
little more thematic.

Replace the lua block with a simple KMONS with a fallback definition.
Simplify some of the SUBST weights, and reglyph to put monsters on the
usual glyphs and terrain on glyphs not reserved for item slots.

pdpol_lair_cavern_descent:

Rebalance monster placement to reduce the overall monster count, since
it was pretty high for such a small and relatively open vault. Reglyph
to put monsters in rough order of difficulty and simplify statements.

For pdpol_lair_neglected_garden, a minor weight simplification.

--------------------------------------------------------------------------------
42e7360d12 | pdpol | 2022-12-16 16:59:44 -0600

Some monsters vaults and a decor vault for Lair
pdpol_lair_neglected_garden: Someone hasn't taken care of their garden,
but occasionally it takes care of itself. A decor garden vault with a
withered theme that sometimes has healthy plants instead.

pdpol_lair_cabin_in_the_woods: A horror-themed runed door vault inspired
by The Evil Dead.

pdpol_lair_cavern_descent: A descent into a watery cavern featuring eels
and a variety of Lair monsters.

Committer's Note: Squashed and rebased from commits in PR #2794. Added
the commit message with a brief summary for each vault. Removed the
pdpol_lair_dawg_pound vault in the original submission, since pdpol may
rework that one or it just won't be merged.

--------------------------------------------------------------------------------
4188047c90 | advil | 2022-12-16 16:41:46 -0500

fix: veto levels where very few monsters are placed
Probably the most important case here is 0, but I went with 3 because
that is a lower bound on `_num_mons_wanted()`.

--------------------------------------------------------------------------------
d5975efbca | Nicholas Feinberg | 2022-12-15 11:08:39 -0800

Fix momentum strike not giving XP (acrobat)
Oops!

--------------------------------------------------------------------------------
5ca811292f | Alex | 2022-12-15 10:53:53 -0500

build: harden ci.yml permissions
Signed-off-by: Alex <aleksandrosansan@gmail.com>

--------------------------------------------------------------------------------
3668837a89 | Nikolai Lavsky | 2022-12-15 10:25:44 -0500

fix: show perma uselessness in shop and shopping list menus
The menus have been showing temp uselessness of items for a long time.
For example, potions of invisibility were greyed out for characters
with enough magic contamination even in previous versions.

As a followup to 43e804b48, use perma-uselessness highlighting for
these menus.

--------------------------------------------------------------------------------
9104f0fc43 | advil | 2022-12-14 14:36:46 -0500

fix: show misc evokables in quiver menu
These appears to have gotten dropped via cut and paste error in
cc732e7c341debec790.

--------------------------------------------------------------------------------
86641cc369 | Nikolai Lavsky | 2022-12-13 08:14:54 -0500

fix: don't leak usefulness of unidentified scrolls (#2877)
After 4b7bca3bf, unidentified perma-useless scrolls are greyed out
in the read menu. This affects ?butterflies and ?summoning for
followers of Okawaru and ?teleport and ?blinking for Formicids.
Also, it's not possible to read-identify permanently useless scrolls.

Fix this by checking perma-uselessness only of identified scrolls.

Closes #2877.

--------------------------------------------------------------------------------
4b7bca3bfa | advil | 2022-12-11 16:13:59 -0500

fix: adjust more cases of perma vs temp uselessness
* Butterflies and summoning should be treated as perma-useless if allies
  are forbidden (either by oka or by ru).
* blinking/tele should be treated as perma-useless for formicid.

This also adjusts some of the scroll reason logic. I think this whole
code path could stand to be refactored so that the temp parameter is
propagated into the reason-generating code, and more perma-uselessness
reasons are provided. But for now, I have done some hacky brute force
checks to get this right, as well as reorded some of the reason
priorities.

--------------------------------------------------------------------------------
2e3cb7ea4d | advil | 2022-12-11 15:36:16 -0500

feat: show usability for scrolls/potions in description
The quality of scroll info here is a lot higher, because of the
existence of `cannot_read_item_reason`. Cancellation already had some
existing special casing, so I have included an informative message for
it, but no other potions will print a reason as of this commit.

To a lesser extent, this kind of info may also be useful for evokables,
and perhaps other items too.

--------------------------------------------------------------------------------
9b11ac4179 | advil | 2022-12-11 14:31:02 -0500

fix: mark !cancellation as temp useless if it won't do anything
The messaging and even item description was already handled for this
case, this just gets coloring in quaff and the action panel.

--------------------------------------------------------------------------------
b9dab8fb20 | advil | 2022-12-11 12:16:36 -0500

fix: further clean up the clumsy throwing check
This shouldn't change behavior as far as I'm aware. The item type check
is already covered (in a rather roundabout way) via the `throwing()`
call, and is_throwable already takes an actor, so there's no need for
player-specific code.

--------------------------------------------------------------------------------
03f49bf3ed | advil | 2022-12-11 11:02:53 -0500

fix: unnerf launching
Bug introduced in 9e567866badc7; silly me for thinking that
`clumsy_throwing` would only be checked for throwing.

Resolves https://crawl.develz.org/mantis/view.php?id=12714

--------------------------------------------------------------------------------
9e567866ba | advil | 2022-12-11 09:11:50 -0500

fix: nerf throwing
This removes a pretty good tech reported in #2874 by acrobat. Via
quiver, and also throw with the "toss anything" submenu, all species
could do damage throws with any throwing ammo. I think this even
probably prevented mulching. The bug originates in a8e9c987b86ad, which
replaced a specific fumble check in ranged-attack.cc with an item type
check.

Resolves #2874

--------------------------------------------------------------------------------
e042605de7 | Nicholas Feinberg | 2022-12-10 17:36:22 -0800

Make ?butterfly weight match ?summoning (Prakerore)
Oops!

--------------------------------------------------------------------------------
cec5606451 | advil | 2022-12-10 20:33:05 -0500

fix: show classy draconians' flight
Really, show flight for black draconian knights (nothing else gets
flight). But, generality!

Resolves #2752
Resolves #2770

--------------------------------------------------------------------------------
b646966af9 | Nicholas Feinberg | 2022-12-10 17:31:49 -0800

Make ?butt alternate with ?summ instead of ?fog
To avoid inventory clutter, when ?butterflies were added, they were
set up to alternate with ?fog - each game would only contain one or the
other. This made sense to me conceptually, as both were 'defensive'
items - you could protect yourself from a d:4 centaur by reading ?fog
or by reading ?butterflies, and both would have advantages and
disadvantages. Each has situations in which it's preferable, which is
good!

However, ?fog's niche is a bit more unique, especially in extended.
So, let's change up the alternation: ?butterflies will now alternate
with ?summoning. We'll see how this plays.

--------------------------------------------------------------------------------
7f7f6b1b85 | Nicholas Feinberg | 2022-12-10 17:31:44 -0800

Replace Cigotuvi's summoning scrolls with poison
They only had summoning scrolls because summoning scrolls used to
be 'scrolls of unholy creation', which created a thematically
appropriate small abomination. Since those were replaced in a6578962e0
(almost a decade ago), summoning scrolls have been out of theme for
Cigo's wizlab. Replace em with poison scrolls, which feel vaguely OK.

--------------------------------------------------------------------------------
9651f06ebd | Samantha Tobias | 2022-12-10 19:46:42 -0500

fix wizlab wizards "come into view" message (Flugkiller)
Wizlab wizards did not have the M_UNIQUE flag, which caused them to
get displayed in "come into view" messsages as "a <name>" instead
of "<name>". this only happened when they came into view along with
other monsters.

This fixes the issue by giving them the M_UNIQUE flag.

Resolves #2738

--------------------------------------------------------------------------------
43e804b486 | advil | 2022-12-10 19:03:21 -0500

feat: tweak when temp uselessness is shown
After this commit, items get temp useless highlighting in:
* use item menus (e.g. quaff, read)
* action panel

Elsewhere, they should receive perma-uselessness highlighting, including:
* inv menu
* pickup/drop
* drop messages
* known item menu
* stash search

I changed `menu_colour_item_name` absolutely in order to get the drop
message case, so this may have some further consequences. It's possible
there's still missed cases.

--------------------------------------------------------------------------------
92f4fb2d71 | Nicholas Feinberg | 2022-12-10 12:08:47 -0800

Don't warn when zappin your spectral (Aoae, acrobat)
You don't take damage when damaging your own spectral weapon, so
don't bother warning about doing so with Arcjolt, Chain Lightning,
Static Discharge, etc.

--------------------------------------------------------------------------------
87402fac92 | Nicholas Feinberg | 2022-12-10 12:01:17 -0800

Fix 'sink to the bottom' messages (elliptic)
Creatures that can swim shouldn't sink to the bottom.

--------------------------------------------------------------------------------
cbdd7f1727 | Nicholas Feinberg | 2022-12-10 11:55:08 -0800

Rewrite monster net immunity code
For consistency with players in tree-form getting netted, let
stationary monsters with melee attacks be netted. (In practice,
I think this just affects... training dummies & the new abyssal
starflowers?)

--------------------------------------------------------------------------------
baa0261540 | Nicholas Feinberg | 2022-12-10 11:55:08 -0800

Don't allow Mighting monsters with no attacks
Seems a bit pointless.

--------------------------------------------------------------------------------
4e368e6683 | Nicholas Feinberg | 2022-12-10 11:55:08 -0800

Allow applying Haste and Might to statues
Probably Might should have a check for only affecting monsters with
attacks.

--------------------------------------------------------------------------------
d6ef553a8b | advil | 2022-12-10 09:46:51 -0500

build: comment and improve util/find_font
This is in response to:
https://github.com/crawl/crawl/pull/1367/commits/53545380446f6c79db6221757b9bb63
b4259b878

That commit is wrong, because fc-match always tries to return something,
and if dejavu isn't installed, it will return something completely wrong
e.g. verdana. Also, it seems to have a false premise that this script
wasn't searching fontconfig directories -- because of the use of
fc-list, it does search whatever fontconfig directories are around (and
I've tested it out with macports' custom directories). However, this
wasn't very apparent on a casual read of the script, so I've added a
bunch of comments to clarify, and improved the fc-list call a bit.

The addition of "-L" here is from:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/crawl/crawl_purify.patch
It seems useful + safe enough to include for everyone.  (That patch also
seems to have the false premise re fontconfig? So I've added comments to
head off the unnecessary change they included there.)

--------------------------------------------------------------------------------
9e77e4d916 | pdpol | 2022-12-09 16:55:51 -0500

fix: adjust monser placement in wad_wood_setup.
An absdepth conditional was placing a harder monster set at shallower
depths. This flips the condition, and also makes the transition point
L:3 instead of L:4, which I think seems in line with the recent
reduction to 5 floors.

--------------------------------------------------------------------------------
37d5509b11 | Perry Fraser | 2022-12-09 16:53:25 -0500

Add asserts for valid weapon subtypes for ?acqs.

--------------------------------------------------------------------------------
bbba3d4eb4 | Perry Fraser | 2022-12-09 16:53:25 -0500

Don't crash when generating slings for ?acqs
There was a rare crash that could occur when reading a scroll of acquirement
where, when choosing a weapon, the now-defunct slings skill would be picked for
the kind of weapon that should be generated. Specifically,
_acquirement_weapon_subtype would attempt to iterate through every weapon trying
desperately to find something that uses SK_SLINGS before eventually dying out of
its main loop and returning 101 (OBJ_RANDOM), which was the initial value of
result. Later on, the value returned from _acquirement_weapon_subtype is blindly
used as the subtype for the object being generated, and /that/ subtype is then
used in an index for testing if the item is able to be wielded, and /that/
causes a segfault.

--------------------------------------------------------------------------------
76bb9edea9 | bfaires | 2022-12-09 16:52:27 -0500

Fix int params to crawl.sendkeys()
Currently crawl.sendkeys(6) sends "6" instead of keycode 6.
Due to lua_isstring() returning true; ints considered valid strings.
Moved number check ahead of lua_isstring() check.
Made number check explicit; lua_isnumber() can return True for strings.

--------------------------------------------------------------------------------
e848bf14ca | Roadster Tracker | 2022-12-09 16:51:10 -0500

Shrinks the size of chequers_temple_sunken
There's a lot of empty water in this vault that really contributes absolutely 
nothing useful. Removing it to have flying and swimming species auto explore 
quicker.
--------------------------------------------------------------------------------
5004eecd7a | Roadster Tracker | 2022-12-09 16:51:10 -0500

Don't care about exploring the edge tiles
The edge tiles aren't really that interesting to explore, nothing can go there. 
This change treats those tiles like translucent tiles, going through isn't 
possible and so don't even bother trying to visit. Fixes #2785
--------------------------------------------------------------------------------
eb60c0892e | Benjamin S Wolf | 2022-12-09 16:24:19 -0500

Remove defunct and completed todo

--------------------------------------------------------------------------------
1e1ebe7c07 | Duong Hoang | 2022-12-09 16:18:05 -0500

fix: a few css issues
fix some syntax errors existing in the style.css

[committer's note: these fixes were in a commit with a css style change
for the "play now" div that I didn't take]

--------------------------------------------------------------------------------
41561af1f8 | Nikolai Lavsky | 2022-12-09 15:52:58 -0500

fix: improve handling of ?poison and ?fog under Still Winds
These scrolls are already marked as useless under -Clouds, but
there are two problems:

* The player still can read and waste scrolls of poison without any
  effect.
* Trying to read a scroll of fog prints "As you read the scroll of fog,
  it crumbles to dust.", even though it doesn't destroy the scroll.

This commit fixes these issues.

--------------------------------------------------------------------------------
77163bc473 | Nikolai Lavsky | 2022-12-09 15:52:58 -0500

fix: add more uselessness checks for consumables
There are several situations when the game doesn't let you use an item,
but the item is not marked as useless. For example, scrolls are not
considered useless in Gehenna or when you are confused or berserk.
Scrolls of teleportation are greyed out in the Gauntlet, but not when
you are under Stuck or -Tele status. Scrolls of enchant weapon/armour
look exactly the same in your inventory when you have something to
enchant and when there are no such items.

This commit adds several uselessness checks for consumables. This
affects not only the action panel, but also the `i`, `r`, `q`, and `v`
menus and the quiver.

--------------------------------------------------------------------------------
6319d2f74e | Nikolai Lavsky | 2022-12-09 15:52:58 -0500

feat: grey out useless items on the action panel
The game has a lot of situations when the player cannot use some
consumables. There are branch-, god-, and status effect-specific
item restrictions, some of which can be discovered only by trial
and error.

To better communicate these restrictions to players, grey out
currently useless items on the action panel.

--------------------------------------------------------------------------------
5d0fae5569 | advil | 2022-12-09 11:41:51 -0500

build: ignore catch2 in unbrace
This file already doesn't check hpp files, so catch2 v2 was fine. For
build purposes I renamed catch_amalgamated.cpp to a .cc file, and so now
unbrace tries to look at it.

--------------------------------------------------------------------------------
f926380dec | advil | 2022-12-09 10:58:26 -0500

build: update checkwhite for catch2 v3

--------------------------------------------------------------------------------
90188ab0ba | advil | 2022-12-09 10:43:36 -0500

build: update catch2
This updates our catch2 infrastructure to the latest version, 3.2.0.
This is a pretty big version change for catch2, though since our catch2
tests are quite simple, it wasn't very impactful for the tests
themselves. We were previously on v2.11.0.

* v3 still supports an "amalgamated" build along the lines of what
  v2 did, but it is not the preferred way of building. However, the
  preferred way of building appears to require cmake. So I have
  therefore used the amalgamated build files. v3 is no longer
  header-only, and as indicated by the docs, is pretty slow to build
  (link especially) in this form. However, I don't think there's a
  viable alternative.
* v3 does not support c++11. I have conditionally enabled c++14 when
  building catch2 tests, since the case where we can't support c++14 is
  production builds which don't need these tests.
* Updating to v3 allows catch2 tests to build on arm mac (not possible
  in any version of v2 without backporting a patch), so this is a nice
  bonus.
* This commit fixes an error and a bunch of warnings that showed up when
  updating the version.

There's some extra catch2 stuff that I don't know what it is and didn't
touch, I suspect it would need some attention though?

--------------------------------------------------------------------------------
523d8b781c | advil | 2022-12-09 10:43:36 -0500

fix: improve c++14 support
We can't support c++14 generally because cao can't use it, but this
commit allows crawl to build if the standard is set to c++14.  Hopefully
this won't be too brittle.

--------------------------------------------------------------------------------
7412bad402 | advil | 2022-12-08 16:08:38 -0500

build: move ci to ubuntu-20.04
This should hopefully be only temporary but there are a couple of issues
that will need attention before we can run CI on ubuntu-22.04 (maybe
more that we don't yet know about):

* py3.6 is past its eol, and no longer usable. But, we shouldn't stop
  testing unless all servers are past this version.
* catch2.hpp needs an update to work for some reason

--------------------------------------------------------------------------------
9a071d2b26 | advil | 2022-12-08 14:46:09 -0500

fix: possibly fix CI
Looks like `ubuntu-latest` just changed, and the dejavu package name is
one thing that broke.

--------------------------------------------------------------------------------
946f4849ff | Nicholas Feinberg | 2022-12-07 21:48:26 -0800

Fix sInv monster spellcasting logic (acrobat)
Tracers didn't have can_see_invisible set, badly breaking targeting
for spells like LRD when the player was invisible. Pretty funny,
admittedly.

--------------------------------------------------------------------------------
7324886222 | Nicholas Feinberg | 2022-12-07 21:37:56 -0800

Add to-hit for Vhi's targeter
I'd meant to do this when I first added it, but I ran out of... charge.

--------------------------------------------------------------------------------
5c55548130 | Nicholas Feinberg | 2022-12-07 21:22:30 -0800

Remove an un-needed 'else'

--------------------------------------------------------------------------------
1e86977b1d | Nikolai Lavsky | 2022-12-07 21:22:21 -0800

feat: display Resonance Strike damage in xv
This should give players a better idea how much damage Zenata and
ragged hierophants can deal at range.

Also, this commit changes how the damage is displayed by the monster
utility: (3d15+) -> ((3-7)d15).

--------------------------------------------------------------------------------
2fc4330e95 | Nicholas Feinberg | 2022-12-07 21:19:26 -0800

Discount Sniper (acrobat)
Its default price doesn't take into account the very high delay
(or the Acc+∞, but that's neither here nor there). Discount it from
a bit under 1400 to a flat 800, matching Damnation.

--------------------------------------------------------------------------------
c76752946b | advil | 2022-12-07 21:29:49 -0500

lint

--------------------------------------------------------------------------------
f932412b2a | advil | 2022-12-07 20:49:07 -0500

feat: restful lobby endpoint
Currently lobby info can be extracted in one of two ways. First, like
beem, one can open a websockets connection and read the lobby json as it
comes in. Second, and lesser known, is the rube goldberg machine that
powers https://crawl.develz.org/. The way this works is that: (i) the
server writes a "dglwhere" file in a specific format, (ii) the webtiles
server admin exposes these via apache or the like[1], (iii) these are
collected and parsed by a python script[2] on cdo and turned into
aggregated json, and (iv) the cdo javascript side of things reads this
json from disk. Historically, this format presumably was used by servers
that were not running webtiles, but only one of those remains.

This commit puts forward something that I hope will eventually replace a
bunch of this, namely an endpoint that just directly generates the json
that scripts like this would need.

As usual, do not run bots on a server without permission, and don't
scrape this frequently enough that a server admin would notice.  This
endpoint is very lightweight, so it has no restrictions or throttling,
but it may need something if badly behaved bots are pointed at it (as
they seem to be for most crawl infrastructure, sooner or later).

[1] This is so lesser known that I think every server owner has
forgotten about this step, and they have faded away over time except for
cao. And it's not that the current cao admins actually remembered it
either.
[2] Script in question: 
https://github.com/crawl/dcss-website/blob/master/build-scripts/dgl-status-colle
ct.py

--------------------------------------------------------------------------------
685d318daa | Nicholas Feinberg | 2022-12-07 14:41:02 -0800

Remove DID_KILL_PLANT Fedhas conduct
It should be almost impossible for the player to hurt a plant under
Fedhas, so no particular need to keep a conduct preventing you from
doing the implausible. (You can still whack em in melee, but that's
covered by the 'did attack friend' conduct.)

--------------------------------------------------------------------------------
cb316572d5 | Zhang Kai | 2022-12-06 22:40:45 -0800

Create status.txt

--------------------------------------------------------------------------------
69fa218f66 | Nikolai Lavsky | 2022-12-06 22:39:47 -0800

fix: don't shelter projectiles from injuries
Sheltering orbs of destruction from injuries does nothing, but
ironbound preservers do it anyway.

Friendly guardian golems are so friendly, they protect even hostile
OoDs. This happens because of how `mons_aligned()` treats all
projectiles.

--------------------------------------------------------------------------------
5902d59ca7 | Nicholas Feinberg | 2022-12-06 22:39:11 -0800

Fix checkwhite

--------------------------------------------------------------------------------
bd94b87d25 | Zhang Kai | 2022-12-06 22:38:54 -0800

Update unrand.txt

--------------------------------------------------------------------------------
c4c10c6247 | Zhang Kai | 2022-12-06 22:31:12 -0800

Update items.txt

--------------------------------------------------------------------------------
e100a291cf | Zhang Kai | 2022-12-06 22:26:06 -0800

Update cards.txt

--------------------------------------------------------------------------------
eb79e001ea | Zhang Kai | 2022-12-06 22:25:44 -0800

Update unident.txt

--------------------------------------------------------------------------------
3bdf3c9e3d | Zhang Kai | 2022-12-06 22:24:13 -0800

Update skills.txt

--------------------------------------------------------------------------------
7447358451 | Nicholas Feinberg | 2022-12-06 22:21:51 -0800

Fix various water issues (dilly)
- Make large species move at normal speed in shallow water, matching
  the monster behaviour. (I agonized over this for years, but honestly
  it's fine. Water does other stuff, and most species aren't large.)
- Don't double-message when entering water while invisible as a
  naga or other large-torso species.
- Various other refactorings.

This introduces at least one unforseen bug.

Closes #2769.

--------------------------------------------------------------------------------
ca3939328b | Nicholas Feinberg | 2022-12-06 21:59:19 -0800

Treat monsters with throwing weapons as ranged (acrobat)
Don't allow rest/autotravel while an enemy with a throwing weapon is
visible across impassable terrain.

RIP Sergey's 38 streak.

Fixes #2833.

--------------------------------------------------------------------------------
0b3c3f4973 | Roadster Tracker | 2022-12-06 21:54:24 -0800

Fixes this to be consistant with current penalties
(Committer's note: reworded somewhat.)

Fixes #2838

--------------------------------------------------------------------------------
46e4cf009a | Zhang Kai | 2022-12-06 21:52:14 -0800

Update species.txt

--------------------------------------------------------------------------------
9f89ac5fbf | Zhang Kai | 2022-12-06 21:50:34 -0800

Update features.txt

--------------------------------------------------------------------------------
2b7a1c9105 | Zhang Kai | 2022-12-06 21:48:44 -0800

Update backgrounds.txt

--------------------------------------------------------------------------------
b083acad24 | Nicholas Feinberg | 2022-12-06 21:44:26 -0800

Make Sniper +27 (hellmonk)
The +0.4 base delay is very cool but very painful - Sniper mostly
did less damage over time than a basic triple crossbow. At +27, it's
still often a little weaker, but it's comparable and *much* cooler.

--------------------------------------------------------------------------------
26384909b7 | Nicholas Feinberg | 2022-12-06 21:37:31 -0800

Simplify partially-resistable attacks (hellmonk)
Instead of ice, lava, and water being 40/55/40% resistable by their
applicable resistance (respectively), make them all 50% resistable.
This is a small nerf to hailstorm/glaciate/polar vortex/iceblast/flash
freeze/etc, and a small buff to fire storm/bolt of magma/lava spit.
(Except against vulnerable creatures.) We can add a little compensation
damage later if it's really needed - this is just intended to simplify.

--------------------------------------------------------------------------------
eff3892269 | Nicholas Feinberg | 2022-12-06 21:34:45 -0800

Add a special message for mindbursting GOBs
They're nothing but minds!

--------------------------------------------------------------------------------
ea827ebd68 | gammafunk | 2022-12-06 21:06:43 -0600

feat: Adjustments to an arrival vault
For `tekkud_arrival_beachfront_property`, reduce the number of fog
machines, since they're overlapping each other. Add yellow color to the
floor for the tiles with sand floor tiles. Reorder DES, reindent, and
checkwhite.

--------------------------------------------------------------------------------
84d97b07b6 | yrdzrfxndfvh | 2022-12-06 21:04:25 -0600

feat: A beachfront arrival vault
The player arrives on D:1 at a large, abandoned beach front, where they
can see misty open sea and abandoned shops. Level item generated in the
vault can only place along the beach, implying that they too washed
ashore.

Committer's Note: Added a descriptive commit message. Part of PR #2796.

--------------------------------------------------------------------------------
fe72c296f8 | Aliscans | 2022-12-06 10:36:01 -0500

fix: initialise you.sacrifice_piety.
Initialise you.sacrifice_piety before Crawl copies it to a new
character's save file. Clear the whole thing (when only the section
between ABIL_FIRST_SACRIFICE and ABIL_FINAL_SACRIFICE is saved) as
that's what FixedVector provides a function for.

On Linux 3.16.0 with Crawl 0.30-a0-394-g3e4acdb0ae, this takes Crawl (on
my system) from a situation where valgrind reports access to an
uninitialised variable when I start a new character to one where it
doesn't.

[Committer's note: reformatted commit msg, added second para from PR
description. Resolves #2863]

--------------------------------------------------------------------------------
3e4acdb0ae | advil | 2022-12-05 17:29:03 -0500

fix: clear monster seen flags for wizmode map wipes
One (even one who wrote this command) might have thought it already did
this, but it didn't.

--------------------------------------------------------------------------------
54b8e3be05 | advil | 2022-12-04 15:22:14 -0500

fix: don't block with many spectators on game end
The `go_lobby` function is individually just a bit below the threshold
of being a problem (though it could use some testing in production), but
with a lot of spectators, this loop can easily be a problem when the
player saves or otherwise ends the game. Even in local testing I'm
seeing 500ms when 10+ spectators disconnect. This commit converts the
loop to one that is called asynchronously (for backwards compatibility,
via old-fashioned IOLoop callbacks).

--------------------------------------------------------------------------------
7679850db9 | advil | 2022-12-04 12:59:23 -0500

fix: improve (with hacks) map sending to spectators
When a new spectator joins, `_send_everything` pushes out a whole bunch
of json data which previously was sent to all sockets connected to a
process. The biggest part of this is usually the map: a fully mapped
level can involve a 100k+ json, and handling this turns out to be
impactful, at least with many spectators. (I haven't profiled most
aspects of this, but what I do know is that the deflate time on cao can
be 3-10ms, which can get into human-noticeable territory with 10 or more
spectators. Even on a very fast local machine I can get this into what
are probably noticeable latencies with 20+ spectators.)

This commit adds some heuristics on the server side so that, after some
spectator(s) join, the next full map is sent only to those spectators.
This should take map handling from linear with the number of spectators,
to constant with the number of spectators. Webservers would need to
restart to get this change.

I also considered various more robust seeming versions of this,
including trying to compress the map message only once. But this turns
out to be extremely hard to do with how the deflate protocol works. And
I expect that there's also json decoding penalties for the map on the
receiver end. I may try to add something more systematic via control
messages, but this change also has the advantage that it should work
with any version of crawl that is currently played online.

--------------------------------------------------------------------------------
f4ee2d632a | advil | 2022-12-04 12:59:23 -0500

refactor: clean up ws_handler send code
This improves the organization of the send code, and adds some comments;
should not change any behavior. (Was originally part of a bigger rewrite
that I abandoned, that would have attempted to not deflate once per
socket.)

--------------------------------------------------------------------------------
80c34de65d | advil | 2022-12-03 10:11:20 -0500

feat: prevent good mutations from causing unfixable stat zero
Following 6a3c3ed53f1b it is possible to get stuck with stat zero via
only base stats + good mutations. For example, a starting feee with two
levels each of clever and agile has base 4 str, and -4 str from the
mutations. Recent example:
  https://crawl.xtahua.com/crawl/morgue/sanka/morgue-sanka-20221201-183043.txt
This char went from str 6 to 0 in one jiyva pass. (Note that the present
commit doesn't actually check mutation loss, but it would have prevented
the case in this morgue because loss happens before gain.)

This is very rare for normal players so I think just hasn't come up, but
on a jiyva char can happen rather easily (and rapidly) especially with
an early jiyva conversion.  This circumstance can effectively make a
char non-viable, with the only counterplays being mutation potion luck,
or preemptively raising stats.  A 4str char possibly *should* consider
the latter, but it doesn't really seem like a large set of "good"
mutations is an amazing way to reinforce this message, and a char like
the one above would have only ~1 opportunity to even do this.

The commit only checks muts flagged with mutflag::good, so
weak/dopey/clumsy could still cause stat 0 (not sure about whether they
should be able to, as they may have the same fixability issues, but the
circumstances are a lot different and would at least typically allow
more time to preemptively raise stats). The commit also doesn't check
items and so on, since if a mut causes stat 0 in combination with items,
there is an immediate counterplay. The mutation is silently rerolled if
it would cause stat 0.

To do this, I refactored how stats + mutations are handled to be a bit
more clearly data-ified. Interaction with the stats code is still
somewhat brute force, though.

--------------------------------------------------------------------------------
8d7d949f56 | Kate | 2022-12-02 18:14:41 +0000

Don't allow Transference to work on projectiles

--------------------------------------------------------------------------------
be348a5456 | advil | 2022-12-02 12:33:53 -0500

refactor: centralize some version-related metadata
The goal of this is to make it straightforward for forks to change this
metadata in one go, especially the bug report line (please send your bug
reports to you, not us). Minorly improve what info is displayed where,
e.g. show the build target with version number, show the bug tracker
link on the version page, a few other things.

--------------------------------------------------------------------------------
cbb7f7dcb2 | advil | 2022-12-02 12:30:16 -0500

fix: update morgue parsing from webtiles crashes
Broken since 81ff5c4599e2d4d4d. A following commit will add a comment to
dbg-asrt.cc that will give specific instructions on how not to break
this in the future.

--------------------------------------------------------------------------------
814673872d | advil | 2022-12-02 09:22:06 -0500

fix: don't break admin panel on watchers

--------------------------------------------------------------------------------
febfb9b408 | Kate | 2022-12-01 15:59:34 +0000

Fix a hints mode lua error (#2845)
Closes #2845.

--------------------------------------------------------------------------------
471f0101a1 | Kate | 2022-12-01 15:59:34 +0000

Fix a hints mode typo (#2846)
And reword slightly. Closes #2846.

--------------------------------------------------------------------------------
f862984e2c | advil | 2022-12-01 09:04:49 -0500

fix: further tweak how player info is sent to spectators
Also, comment some of this weirdness.

--------------------------------------------------------------------------------
a738ffb698 | advil | 2022-12-01 08:54:16 -0500

fix: don't update time display on spectator connection
This is a bit tricky to keep in sync, because the server-side version of
this works differently than the webtiles client version. (I'm inclined
to say the webtiles version is probably better and should be ported over
to the c++ side, but that's a bigger project.) This commit sends the
server-side time delta value on spectator connection, and uses the fact
that this is only sent by `_send_everything` to ignore time updates in
that case for the player. It's still possible for a spectator to be
seeing slightly out of sync values for this on connection, but it now
shouldn't ever be updated for the player on this case.

--------------------------------------------------------------------------------
6ea064c7b4 | advil | 2022-11-30 21:22:34 -0500

fix: remove debug code (ge0ff)

--------------------------------------------------------------------------------
72b080bd28 | advil | 2022-11-30 18:27:33 -0500

fix: add some missing crt checks
These fix a way of getting the exceptions reported in
  https://crawl.develz.org/mantis/view.php?id=11387
namely, if a spectator joins while a crt menu is being displayed. In
2018 there were probably more of these, but now I think this is mainly
the skill menu. (However, in current testing these exceptions do not
cause anything like the symptoms seen in that mantis report..)

--------------------------------------------------------------------------------
06526a8a8b | advil | 2022-11-30 18:26:58 -0500

fix: clean up ui stack handled flag

--------------------------------------------------------------------------------
86d51d8b50 | advil | 2022-11-30 17:31:07 -0500

fix: don't keep processing webtiles ui-stack messages (dilly)
The `ui-stack` message gets sent when a spectator joins, and consists of
a sequence of menu descriptions. When a spectator was already viewing a
submenu, and a new spectator joined, the same menus would be added to
the old spectator's ui stack on top of other already displayed menus.
This commit simply prevents processing of this message more than once,
which is correct for the way it's currently used.

--------------------------------------------------------------------------------
5cb311bc9f | advil | 2022-11-26 16:57:25 -0500

fix: unbreak webtiles server config reload

--------------------------------------------------------------------------------
24c37cb796 | advil | 2022-11-26 10:37:05 -0500

fix: show IP for webtiles token logins
36e498a9c added this for regular logins, but not token logins for some
reason.

--------------------------------------------------------------------------------
eb1d99f871 | advil | 2022-11-26 10:31:37 -0500

feat: allow disabling anonymous spectating

--------------------------------------------------------------------------------
95c0257040 | advil | 2022-11-24 10:15:14 -0500

fix: don't allow treeform over deep water
80ed8d6641f added a check to allow transformations over dangerous
terrain when the player has tempflight, but this missed an interaction
with treeform. Treeform disables all sources of flight immediately, so
if the player had tempflight (e.g. via !flight), this would lead to
sequences like the following:

    You turn into a tree. Your roots penetrate the ground.
    You fall into the water!
    You can't survive in this terrain! You fly above the water, but the process 
is
    draining.
    Splash!
    You fall into the deep water. You sink to the bottom.

For the duration the player is in deep water, they get emergency flight
draining. (Permaflight had a correct version of this check.)  To fix,
move the tempflight check into `_flying_in_new_form` so the interaction
with forms forbidding flight is handled correctly.

Also, remove an obsolete Xom death check that looked at deep water/lava.

--------------------------------------------------------------------------------
d37427bb62 | Neil Moore | 2022-11-22 19:05:13 -0500

Add a missing quote quote
Does no one double-check my commits?  You're playing with fire here.

[skip ci]

--------------------------------------------------------------------------------
0ce2686038 | advil | 2022-11-22 12:34:44 -0500

fix: correct a slime-related bounds check

--------------------------------------------------------------------------------
ad7725a93e | advil | 2022-11-19 09:43:51 -0500

fix: gitignore generated version info

--------------------------------------------------------------------------------
22bf6fb5de | advil | 2022-11-19 09:42:05 -0500

fix: remove generated file
accidentally committed

--------------------------------------------------------------------------------
3872ae82dd | advil | 2022-11-19 09:36:58 -0500

fix: spell menu improvements (elliptic)
(Eventually this menu needs to be refactored so that it's not a
ToggleMenu...)

* Fix a bug with the footer if the regular cast menu
* put the action name in the header, so it's more quickly apparent what
  menu version is being shown.

--------------------------------------------------------------------------------
86fb4627a9 | advil | 2022-11-17 19:28:14 -0500

lint

--------------------------------------------------------------------------------
839099abd5 | advil | 2022-11-17 17:49:18 -0500

feat: show webtiles version to admins
I didn't find a way to do this except via some brute force build stuff.
It possibly would make sense to show this version info (or a much
simplified version of it) somewhere in the lobby as well, but there's no
immediately convenient place.

--------------------------------------------------------------------------------
93dc600154 | patrick | 2022-11-17 13:43:44 -0500

Update the entrance message for the Pan rune shop vault
The other phrasing suggested to some that the pandemonium lord would
leave you alone if you paid up for the rune, which is not the case.
Now the announcement is a little more clear about how to get the rune,
without suggesting how the panlord thinks about the situation, one
way or another.

"nicolae why does the pan lord want to kill its customers"
i don't know buddy i'm not a pan lord

--------------------------------------------------------------------------------
e7f957f1db | Nicholas Feinberg | 2022-11-15 16:38:06 -0800

Fix Devastator effect description (MIC132)
It hits friends *and* foes!

--------------------------------------------------------------------------------
f6b3ef1049 | advil | 2022-11-13 13:32:58 -0500

fix: remove an obsolete log message
Tornado hasn't had blocking logging for a long time, and it seems that
server admins tend to find this message alarming. Remove.

--------------------------------------------------------------------------------
76810e16d9 | advil | 2022-11-13 13:20:02 -0500

fix: use buffered writing mode for ttyrecs
I can't see any good reason for this to be unbuffered, and only bad
potential consequences. This does some flushes for good measure, but I'm
not even sure these are necessary.

Also, fix some misc timing logging stuff.

--------------------------------------------------------------------------------
0b7830ef10 | advil | 2022-11-13 13:20:02 -0500

feat: more manual timing logging
Add a mechanism for explicitly logging slow IO. There's some redundancy
with slow callback logging, but this is a lot more focused, provides
precise information about when IO in particular is blocking, and is on
by default. This is part of my continued quest to reduce lag on cao...

--------------------------------------------------------------------------------
30ec35652d | advil | 2022-11-13 13:20:02 -0500

refactor: clean up TerminalRecorder a bit
In particular, separate object initialization from the calls that
attempt to start the process. (This will eventually be needed for an
async version of this class, anyways.)

--------------------------------------------------------------------------------
447f08457e | Nicholas Feinberg | 2022-11-12 13:51:32 -0800

Fix hurling damage ratings (Undo)

--------------------------------------------------------------------------------
d0147acb1a | advil | 2022-11-10 18:44:08 -0500

fix: improve slow callback logging code
1. Rip out the old manual code, completely obsolete now. (The ony thing
plausibly useful remaining was logging that connected up a username with
blocking, but I don't think this is necessary.)

2. Add some try...except future-proofing, given the level of weird
introspection this code is doing.

3. Improve logging for slow handlers on BaseAsyncIOLoop, which were
logged in a quite useless way (but showing up as blocking on CAO).

--------------------------------------------------------------------------------
0d69a1922f | advil | 2022-11-07 20:16:59 -0500

feat: a webtiles config override specifically for live-debug mode
To test things on production servers in live-debug mode, I'm often
editing config.py in place. This isn't ideal (forgetting and not doing a
dgl publish could lead to these setting tweaks ending up in production).
So, add a way to override only settings for live-debug mode, based on
the config.yml override. Of course, to test a config as close to
possible as production, you probably don't want to heavily modify this.

--------------------------------------------------------------------------------
9a6ad51620 | advil | 2022-11-07 19:50:02 -0500

feat: configurable webtiles milestone tailing interval
This feature is not used for current versions, and 1s strikes me as
potentially quite aggressive for an old server with many seldom-played
versions. Therefore, it seems useful to allow this interval to be
configured. I kept the default at 1s for now, though.

--------------------------------------------------------------------------------
0b6ecbc06f | advil | 2022-11-07 19:45:21 -0500

fix: improve logging for RequestHandler and PeriodicCallback
For both of these, the slow callback logging printed fairly anonymous
info that made it hard to identify the actual source. This commit
improves the situations for both classes. For PeriodicCallback, I was
able to straightforwardly override `__repr__` since the object itself is
used. The method for RequestHandler is more entertaining than good.

--------------------------------------------------------------------------------
4c39ff33d3 | advil | 2022-11-07 10:14:32 -0500

fix: improve repr-based callback logging in webtiles
The default `repr`s for tornado callbacks were not very useful when
trying to debug slow callbacks, which has led me to spend a fair amount
of effort on relatively janky manual logging via the
`@util.note_blocking_fun` decorator etc. This sort of worked, but wasn't
very accurate beyond certain obvious functions (lots of false
positives), and it's not very maintainable.

I have done a dive into asyncio internals, and come up with a much
better set of solutions. First, the `repr`s turn out to have not been
useful simply because asyncio generates them with reprlib, which by
default limits `repr`s for "other" to 20 chars. Since IOLoop callbacks
from the webserver are essentially always wrapped in `functools.partial`
(17 chars), they were pretty much guaranteed to have no useful info in
them - but this is easily tweaked via the reprlib API. There are a bunch
of other possibilities, but still always very long strings where 20
chars is just not enough. Second, a lot of the info here for many
callbacks can be eliminated: to debug webtiles blocking callbacks, we
don't really need calling info, just the name of the callback itself.

This commit writes some custom repr code that fixes the reprlib limit,
and handles some of the IOLoop-specific special cases much more nicely.
It does use asyncio Handle internals a bit, but it looks likely to me
that these internals are fairly stable.

I think this probably fully obsoletes the manual blocker tracking code,
and so if this remains true after some testing, a future code will
likely just remove it entirely.

--------------------------------------------------------------------------------
6b83867211 | advil | 2022-11-06 21:28:52 -0500

fix: add COLLATE NOCASE to the username index
...needs to exactly match the query.

--------------------------------------------------------------------------------
e1e7d3de80 | advil | 2022-11-06 21:00:02 -0500

fix: add a unique index for dglusers.username
Despite being treated like it, username was neither indexed nor
constrainted to be unique. In large user dbs (aka CAO, with around 100k
rows), this was actually impacting performance -- lookup was on the
order of 100ms there. This commit creates new databases with a unique index,
and tries to add an index on upgrade. (Note that just a regular index
doesn't see noticeable performance gains without something else; I was
able to tune the queries in combination with a non-unique index, but I
think it's safe just to enforce uniqueness.)

I know that it's possible for this to fail, because uniqueness was not
previously enforced except by side effect (CAO has some duplicate rows
from 2007 right now), so it's handled relatively carefully. If an admin
encounters the error here on upgrade, they probably should go and
manually fix in their user db (typically you can do this by renaming one
of the duplicates, but you should check carefully).

--------------------------------------------------------------------------------
1e81539c98 | advil | 2022-11-06 14:55:20 -0500

fix: more blocking annotation adjustments
Because the dgl file update runs on a timeout, it was getting false
positives for stuff that happens early in a connection, so explicitly
prevent the timeout version from doing this. Also, in my local testing,
some of these were false positives for MainHandler.get (namely the
initial render of client.html).

--------------------------------------------------------------------------------
17a13138e6 | advil | 2022-11-06 10:15:16 -0500

fix: replace password tokens when generating new ones
The recovery token code doesn't really ever automatically delete
previously created tokens, prior to this commit this only happened on an
actual password change. Because of this, generating a new token when the
previous one(s) were unused would just lead to multiple potentially
active tokens. It seems much less confusing (and perhaps more secure) to
only allow one active recovery token at a time, so this commit deletes
any old tokens on generating a new one. This will also clear out any
expired tokens.

If a token is expired and unused, it will still linger aside from these
two cases (passwd change, passwd reset) -- not sure whether it would be
better to delete these at some point? They probably do slowly build up
over time.

--------------------------------------------------------------------------------
0c61f328b0 | advil | 2022-11-06 10:10:35 -0500

feat: allow customizing recovery token lifetime
Also, default it to a longer value. Previous this was hardcoded to 1
hour, which is definitely a pretty safe option, but in practice was too
short for servers where admins are doing the password resets. Basically
it makes any admin-managed password reset that is not done synchronously
fail. In a quick survey of best practices here (or at least practices),
I found answers ranging from 1 to 24 hours. The previous value of 1 is
still probably practical for servers that have email password resets.

--------------------------------------------------------------------------------
dc488dc59d | advil | 2022-11-05 17:32:08 -0400

refactor: rewrite webtiles db code
Since the very beginning (82b49a24b7ed1), webtiles has accessed its user
databases by opening and then closing a connection on each access. I
haven't been able to figure out any reason why it should do things this
way (sqlite3 can certainly handle concurrency), and there are a bunch of
reasons why this is bad: (a) it increases overhead on each call (an
fopen is necessary each time, probably among other things), and (b) it
leads to a bunch of bad code to minimize the number of db opens per each
function.

This commit rewrites the db access code to have a persistent connection
to both of the sqlite3 databases. Because of this change, I was also
able to majorly refactor most of the db calls so that there is much less
duplicate code. This commit also changes (arguably) a bunch of stylistic
stuff in this code, and improves aspects of the API. Along the way, I
wrote unit tests for the major functions of this module.

I'm not sure how significant the speedup is, but it isn't nothing; on
a SSD in local testing this about halved the time of db calls (though
from ~20ms to ~10ms, so may or may not be impactful). But I suspect on
a server with a spinning disk (aka CAO), this will be quite noticeable.

--------------------------------------------------------------------------------
79de549745 | advil | 2022-11-05 17:30:36 -0400

feat: mark some potentially blocking functions

--------------------------------------------------------------------------------
f58ed5266c | advil | 2022-11-04 19:47:31 -0400

refactor: clean up save info collection
Previously, save info was collected for each game mode. In most
scenarios, this results in many unnecessary calls to crawl binaries,
because a single `-save-info-json USERNAME` call prints all saves for
that binary. Webtiles already had a mechanism for distinguishing
binaries that handles dgamelaunch-config setups correctly, so this
commit takes that and uses it to reduce the number of calls when
collecting save info for the lobby. Now, each binary is called at most
once. This commit also slightly cleans up how the callback chain is
constructing, and better comments this (slightly baffling) bit of code.

--------------------------------------------------------------------------------
e9b783979b | advil | 2022-11-04 19:44:08 -0400

refactor: reorganize webtiles.config
Move most module-level assignments to the top of this file, rather than
scattered all over the place. Also, some tweaks to game info caching.

--------------------------------------------------------------------------------
f0b7877050 | advil | 2022-11-03 09:40:43 -0400

fix: correctly handle game mode with non-mode options
For the game mode encoded by the binary as "" (e.g. normal game mode),
the code that collected modes on startup would fail if there were
non-mode options in the option sequence. This fixes handling of ""
modes. Also, add some comments to clarify what is happening here.

--------------------------------------------------------------------------------
c8fac2a973 | advil | 2022-11-03 09:06:22 -0400

refactor: centralize some webtiles call construction code
This refactors some common code from a few different places into the new
GameConfig object.

--------------------------------------------------------------------------------
faeacb97bc | advil | 2022-11-03 09:03:30 -0400

fix: eliminate some double error logging in webtiles
7915c1070c07 added logging for arbitrary exceptions that happen during
crawl startup. However, sys.exit works by raising an exception, so any
explicit calls to `err_exit` then resulted in multiply logged error
messages (actually triple-logged because of "During handling" messages).
So, only do the outer logging on exceptions other than SystemExit.

--------------------------------------------------------------------------------
04419e6e1e | advil | 2022-11-03 08:01:02 -0400

fix: cache some info across webserver reloads
Previously, `collect_game_modes` was rerun on a HUP. Unfortunately this
is a very heavy function with big game configs, as it runs the crawl
binary for each game and blocks the whole time. This fix caches the
gametype info for each binary across reloads, since in practice I think
this will never change; this function should now only block on initial
load (which is fine).

--------------------------------------------------------------------------------
682706514a | advil | 2022-10-31 10:17:00 -0400

fix: missing module

--------------------------------------------------------------------------------
7915c1070c | advil | 2022-10-31 09:44:41 -0400

fix: better log exceptions during webtiles startup
If an exception happens in this phase on a production server, it seems
to vanish into the ether. This commit adds explicit try blocks and
logging.

--------------------------------------------------------------------------------
89bb51ec76 | advil | 2022-10-30 18:31:32 -0400

fix: adjust some game config validation details
Previously, config.py game configs weren't actually validated, so this
check seems to have some incorrect assumptions that flew under the
radar. `pre_options` was not declared at all, and `client_path` was
incorrectly described as required (if it is not set, the webserver will
pick it up from the crawl binary).

--------------------------------------------------------------------------------
36bb253adc | advil | 2022-10-30 18:09:48 -0400

fix: adjust `send_json_options` behavior when unset
This option was added in 0.14, and when unset was treated as False, I
assume for compatibility with versions that were around at the time.
However, very few servers even host versions this old now, and the code
also handles gracefully if the crawl binary errors when called with the
relevant option. I think it's time to get rid of this from active
webtiles configs, and so this commit accordinatly treats it as True if
it is unset. It can still be explicitly set to False for servers that
are still running relevant versions (this may be a good idea for
io-bound servers at least).

--------------------------------------------------------------------------------
398606ed4f | advil | 2022-10-30 18:09:48 -0400

feat: templating enhancements for webtiles game config
Previously, webtiles allowed some minor string templating via %n and
(recently) %v, but that was it. However, in practice, on production
servers most game settings are repeated across many games, and some way
of editing them all it once is necessary to avoid errors. Most servers
(with only a few exceptions) dealt with this by running the
dgamelaunch-config package, which layered a bunch of string templating
on top of config.py (and other files).

This commit adds some relatively major enhancements to game definitions
in webtiles config that accomplishes the main goals here without needing
an external package. The main new feature here is the ability to specify
a partial game definition via a template, and then use that template to
fill out a full game definition. There's a bunch of ways to use this,
and it's probably somewhat overengineered even for the relatively
complex setups on current production servers, but my hope is that (a)
this will make life a lot easier for those managing large game configs,
and (b) this will make life a lot easier for anyone who wants to make
changes to how game configs are used. To give a flavor for how
simplified this is (see config.py and base.yaml for full examples), the
simplest use case is to define a template `default`, which will then be
used by default on any other templates and game definitions, that has
all the shared settings. The config.py example does this, allowing the
games definition itself to be written as just:

```
games = collections.OrderedDict([
    ("dcss-web-trunk",   dict(version = "trunk", name="Play %v",)),
    ("seeded-web-trunk", dict(version = "trunk", name="Seeded", 
options=["-seed"])),
    ("tut-web-trunk",    dict(version = "trunk", name="Tutorial", 
options=["-tutorial"])),
    ("sprint-web-trunk", dict(version = "trunk", name="Sprint %v", 
options=["-sprint"])),
])
```

This code may overall still need some bugs shaken out as it goes into
production, so server owners may prefer to let me test it out on CAO for
a while before rewriting their configs.

This commit along the way refactors a whole bunch of code.
1. Game loading is completely rewritten. It now supports game removals
on HUP, and treats config module games in exactly the same way that yaml
games are treated for loading purposes.
2. Game config string templating is restructured again: game configs are
now in a custom mapping class, so most code can just get templated
strings from objects of this class directly. (For convenience, I've
still kept the `game_param` function introduced in a recent commit.) A
bunch of older string templating code is cleaned up.
3. Lots of documentation. Though, this code now has a bit of an identity
crisis as to where this documentation should be; it's split between
config.py and base.yaml. Perhaps it should be in a third file.

--------------------------------------------------------------------------------
c890208271 | advil | 2022-10-30 18:09:48 -0400

fix: unbreak webtiles dgl_mode=False
This was freezing because of the ban check. (It appears that also, the
main menu is semi-broken in this mode, but I'm not going to deal with
that right now.)

Also, better document the option.

--------------------------------------------------------------------------------
e5acde7520 | Kate | 2022-10-29 19:30:58 +0100

Allow examining the map border again

--------------------------------------------------------------------------------
02c875d3d0 | Kate | 2022-10-29 19:30:24 +0100

Improve some targeter messaging
For Simulacrum, Inner Flame and Poisonous Vapours - don't print "You can't
see that place." when aiming at a monster that can't be affected.

--------------------------------------------------------------------------------
3f6d011563 | Nikolai Lavsky | 2022-10-29 19:30:24 +0100

fix: make Poisonous Vapours targeter ignore rPois enemies
Otherwise the targeter always starts on the closest monster, even
if the monster is resistant or immune to poison.

Closes #2783.

--------------------------------------------------------------------------------
b34b94214e | advil | 2022-10-29 13:33:41 -0400

fix: missing assignment

--------------------------------------------------------------------------------
8ab09dc110 | advil | 2022-10-28 18:03:50 -0400

fix: fix and generalize some webtiles templating code
This was crashing if `version` wasn't set, so generalize. (Probably a
bit over the top...)

--------------------------------------------------------------------------------
8f2769a82d | advil | 2022-10-28 14:27:49 -0400

feat: make creeping frost damage fully resistable
As discussed in dev chat, this was not intended (a side effect of the
zap type), and has been a surprising damage spike for players. This
commit converts the damage part of this spell into BEAM_COLD so that it
is normally resisted, but otherwise keeps the damage the same. It also
documents flash freeze's resistance bypass (rime drakes etc), and
documents creeping frost's `frozen` status bypassing rC. I considered
whether to change rime drakes as well, but they are balanced in other
ways so it would need more consideration (breath timer, and flash freeze
itself does no damage with the frozen status already applied).

--------------------------------------------------------------------------------
85436e0a43 | hellmonk | 2022-10-27 21:53:43 -0400

randomly round englaciate duration

--------------------------------------------------------------------------------
9f0d5c6853 | hellmonk | 2022-10-27 21:24:56 -0400

Try a new haunt ghost formula
Remove the deprecated stepdown_value call and just use random2avg to set ghost
number. Seemed to give ok results in testing but can be adjusted if this is
too consistent/inconsistent/otherwise "off".

--------------------------------------------------------------------------------
f42c42fe99 | hellmonk | 2022-10-27 21:12:13 -0400

additional spell random rounding fixes

--------------------------------------------------------------------------------
6dfb9d8481 | advil | 2022-10-27 18:21:27 -0400

fix: a couple of mistakes

--------------------------------------------------------------------------------
b515db48ae | advil | 2022-10-27 17:38:52 -0400

feat: enhance templating for webtiles game configs
Previously, these allowed using the template string "%n" in certain
game config fields, which would be replaced by the username. This commit
expands this out a bit, with the target of some common setups on
production servers, in particular to allow specifying a version string
once and using it in a templated way. Some (quite minimal) examples in
the default config, but this can be used in most path fields as well as
pre_options, options, and the game binary name.

--------------------------------------------------------------------------------
6d2431741b | advil | 2022-10-27 10:38:08 -0400

fix: fix and refactor webtiles hidpi implementation
This commit revamps the hidpi implemenation in 3925e268bea408.

To get hidpi to work in a browser canvas object, the internal dimensions
need to be twice that of the external dimensions (essentially). The
normal way of implementing this is to multiply the internal dimensions
by devicePixelRatio, and scale the canvas accordingly. We used to do
this, but 3925e268bea40 changed things so that the external dimensions
were halved. This was, according to the commit message, in order to
prevent scaling artifacts on firefox. (Where the salient fact is that
window.devicePixelRatio on some browsers, these days including
chrome/firefox but not safari, also changes with browser zoom.) However,
a consequence is that tile rendering is halved on hidpi devices, exactly
not what should happen.

This commit changes canvas sizes to be correct, and refactors a big
chunk of hidpi rendering code to be somewhat clearer, and with better
abstraction. Sadly, this change cannot work just by scaling the canvas,
as browser pizel snapping from fractional pixels is quite varied and
inconsistent. So, pixel snapping has to be implemented manually. The new
approach is the same as before, just (maybe) a bit clearer: each tile is
snapped to non-fractional locations and dimensions, and tile rendering
happens in a fashion that scales to these dimensions. There's a lot of
subtle potential bugs here. I suspect that the previous implementation
that 3925e268be replaces wasn't wrong in using a scaled canvas, but
rather had issues in its assumptions about pixel snapping.

Why was this wrong for so long? The half-size tile rendering wasn't
immediately noticeable because the dungeon is auto-scaled, and the
monster list matches its scale to the dungeon. But, icons in menus and
popups instantiate the problem, and scaling them to the dungeon size is
not ideal. The action panel also had some workarounds for this that I
didn't fully understand at the time. (I only noticed this myself after
many years of working on this stuff because I switched from a
regular-density monitor to a 4k monitor of similar size, even though
I've used retina devices for a long time.  Hidpi devices have been
broken for so long that I won't be surprised if we get requests to readd
this behavior as an option or something, menus may look odd now to
people who have only ever played on hidpi.)

I've tested this on a range of browsers, DPIs, map zoom levels, and
browser zoom levels, and it seems to work across all of them at this
point.

--------------------------------------------------------------------------------
f7cf27c79d | advil | 2022-10-27 08:39:02 -0400

fix: maybe fix an arcjolt crash

--------------------------------------------------------------------------------
102857c98e | advil | 2022-10-26 22:16:38 -0400

fix: autotargeting for Vhi's electric charge
This was quite involved because Vhi's has its own special targeting code
(from when it was an ability). This code is involved enough that I don't
immediately know exactly how to merge it with more general spell
targeting code. This commit at least removes some of the special casing,
but not all by a long stretch -- just enough to support non-interactive
targeting (e.g. autofiring via the quiver).

--------------------------------------------------------------------------------
f7783e6616 | advil | 2022-10-26 17:04:59 -0400

fix: numpad keys at cast prompt
This lets numpad ./*/enter work at the (non-menu) cast prompt.

--------------------------------------------------------------------------------
bdac0718f0 | Kate | 2022-10-25 19:25:09 +0100

Update a comment
To clarify what effect_noise is and how it works, and hopefully prevent
future cases of spells having an effect_noise but not using it anywhere!

--------------------------------------------------------------------------------
eaf674384c | Kate | 2022-10-25 19:18:06 +0100

Adjust monster dragon spell noisiness
Dragons were special-cased to be extra noisy on casting their spells, but
it only applied to their breath weapons, and not to the Serpent of Hell's
Summon Dragon and Xtahua's Paralyse (which thematically are also cast by
roaring). Make those get their bonus noise, and don't make Bai Suzhen's
wizardly (pre-dragonform) spellcasting extra noisy.

--------------------------------------------------------------------------------
6ace9fa8eb | Kate | 2022-10-25 19:18:06 +0100

Make Malign Gateway's horrible noise audible
It claims to make a horrible noise and shake the dungeon but then makes no
actual sound - give it 15 noise.

--------------------------------------------------------------------------------
8190f5fdf4 | Kate | 2022-10-25 19:18:06 +0100

Adjust noise for lightning-based spells
Lightning Bolt, Arcjolt and Chain Lightning are all intended to be
especially noisy, but the changes to zap noise now cause them to create
their noise on every target hit, instead of just once at the casting
position. Rather than special-casing them again, keep the new behaviour but
reduce the bonus noise for Lightning Bolt and Arcjolt. Chain Lightning gets
to just be extremely noisy, as is fitting for a level 9 spell.

--------------------------------------------------------------------------------
667f962bc3 | Kate | 2022-10-25 19:18:06 +0100

Let monster zaps make noise on hit
When setting up beams for zap-based monster spells, the loudness value was
discarded, making them silent on hit. There's no obvious reason that they
should work differently, so allow them to work the same way as player zaps,
and make noise happen when the player is hit by a beam.

--------------------------------------------------------------------------------
d80880ac2d | Kate | 2022-10-25 19:18:06 +0100

Refactor zap noise handling
Remove loudness from the zap_info struct, and base the noise made on hit by
zaps on the loudness of the associated spell. Enchantments make no noise on
hit, and explosions still have their noise calculated separately based on
radius, but otherwise all zaps make noise equal to the spell's effect noise
(if present), or the spell level.

In general, zaps that were historically player spells (Bolt of Fire/Cold
etc) already made some noise, but this commit adds noise to many
monster-only zaps that previously made no noise on hit. Probably this is
fine, but there's room for more adjustments if needed by adjusting effect
noise individually (as is currently done for cloud-based spells which have
a low effect noise).

--------------------------------------------------------------------------------
1022a3223f | Kate | 2022-10-25 19:18:06 +0100

Simplify noise on casting a spell
Instead of having a semi-arbitrary noise value assigned to every spell,
have all spells create noise equal to their spell level on cast. "Effect
noise" remains and can be used for spells that should be extra noisy for
some reason (either just when cast, for example with Lightning Bolt, or at
a specific time/location, for example with Passage of Golubria). A few
spells are specifically flagged as silent to allow them to be used for
stabbing sleeping monsters (Ensorcelled Hibernation and Passwall, as well
as Silence since it'll always be silent anyway).

Very few spells end up with noticeable changes as a result - most spells
already had noise approximately equal to their spell level, with some drift
as spell levels changed.

Zap-based spells also have a separate noise value when they hit something,
which will be adjusted separately.

--------------------------------------------------------------------------------
ae38170b09 | advil | 2022-10-25 13:51:15 -0400

feat: full CLI for dgl flag management
Previously, for anything other than bans or holds you needed to use
dgamelaunch-config scripts, or set the flags manually via sqlite itself.
This provides a cli for setting all (in-use) flags. It also updates to
reserve the new flags in use on CDI; these are not currently used by
webtiles at all except via this interface, and there's some cosmetic
options that alert the user about this.

This commit also refactors some of the other CLI subcommands and
improves error messages.

--------------------------------------------------------------------------------
eb1268decc | advil | 2022-10-25 11:09:13 -0400

fix: don't let blocking enemies riposte off fencer's gloves
d843f3a48cabf41 refactored most of the riposte check code into
`maybe_riposte`, but not the player check, and then didn't include the
player check in the call for the shield block case. This commit moves
the player check into this function.

Seen via:
https://www.reddit.com/r/dcss/comments/ycouo3/riposte_blocking_bug/

--------------------------------------------------------------------------------
f115ab0292 | advil | 2022-10-24 17:34:00 -0400

fix: spell menu prompt in non-cast calls to `list_spells`
For casting and describing spells, e6dd553d160feaab tried to put an
informative prompt in the menu footer (previously there was no
indication at all of what this menu was).  Unfortunately, this
conflicted with how quiver/amensia/adjust call list_spells, by changing
the title.  This commit always puts an informative prompt in the footer
and allows only customizing the verb. It also fixes some weirdness with
adjust (though that code probably needs a custom menu...)

Resolves #2792

--------------------------------------------------------------------------------
7d6cbdfea6 | Kate | 2022-10-23 23:31:01 +0100

Capitalise the Lochaber axe (Aliscans)
And fix a missing comma in its inscription.

--------------------------------------------------------------------------------
0f8422e3f7 | Kate | 2022-10-23 23:31:01 +0100

Remove more obsolete missile handling code
This code was also presumably dead since the ranged combat refactor.
Pre-refactor players had an AC-based chance to resist curare, which can
stay gone, and Xom is now amused by the player being caught in nets again.

--------------------------------------------------------------------------------
95ba73633e | Kate | 2022-10-23 23:31:01 +0100

Improve Jiyva's jelly missile mutation
Now that it works at all, give it a more noticeable effect.

--------------------------------------------------------------------------------
1a7143a415 | Kate | 2022-10-23 23:31:01 +0100

Fix Jiyva's jelly missile mutation
It did nothing, and had (possibly?) been broken since 2014's ranged combat
refactor.

Since all monster projectiles except throwing nets now mulch (and it can't
eat nets), it no longer needs to destroy the item - but do allow it to eat
javelins mid-flight so they don't pierce past the player (saving any
precious jellies behind you!)

--------------------------------------------------------------------------------
959d978c02 | Kate | 2022-10-23 23:31:01 +0100

Remove an obsolete reference to Scattershot

--------------------------------------------------------------------------------
026cb31310 | advil | 2022-10-20 08:54:52 -0400

fix: add a final delay to the arcjolt animation
Locally, this timing is a bit better, and this also allows for a final
delay for Options.reduce_animations.

--------------------------------------------------------------------------------
dc4b735fe1 | advil | 2022-10-19 16:40:53 -0400

fix: remove more python2
oops, missed

--------------------------------------------------------------------------------
583829d9f1 | advil | 2022-10-19 16:39:54 -0400

fix: remove python2
Python2 is fully deprecated for webtiles, and keeping around old testing
and requirements sends the wrong message. Remove all this. Also, update
a doc. (To be clear, this doesn't break anything that is still working
on py2.)

--------------------------------------------------------------------------------
96a745ab99 | Nicholas Feinberg | 2022-10-19 12:06:07 -0700

Increase ranged weapon brand variety
The ranged weapon loot game is made a little less exciting by the
smaller pool of brands to work with. Play around with it some.

- Add electrocution and antimagic to the pool for all ranged weapons.
  (Crossbows artefacts could already have elec.)
- Replace venom with draining brand for ranged weapons, since there is
  nothing good or exciting about the ranged venom brand experience, and
  draining is a perfectly fun brand to play with.

--------------------------------------------------------------------------------
b4a478afba | Nicholas Feinberg | 2022-10-19 11:51:06 -0700

Move Lucy's Banish to 2*
Now that Bend Space is gone.

--------------------------------------------------------------------------------
793202b318 | Nicholas Feinberg | 2022-10-19 11:50:44 -0700

Cut Bend Space
Just an incredibly unexciting ability. Lucy has plenty of other fun
effects - we can do better than this.

--------------------------------------------------------------------------------
80b981deb3 | Nicholas Feinberg | 2022-10-19 11:50:44 -0700

Give Lugonu wrath protection
To encourage conversion, make Lugonu banish 2d3 nearby foes whenever
another god's wrath triggers. Should be very good against many wrath
types. (Too good?)

--------------------------------------------------------------------------------
2f725a73e1 | Nicholas Feinberg | 2022-10-19 11:50:44 -0700

Make Banishment cause malmutation on resist
Makes it feel less bad to fail, and gives you a better chance for
next time.

--------------------------------------------------------------------------------
0ec75d9ef4 | advil | 2022-10-17 17:53:28 -0400

fix: rename some old autofight options, document
The documentation was very confusing, and not helped by the fact that
these options have changed out from under their old names and impact
many non-throwing quiver attacks. I've renamed the options to something
better, and kept the old options for backwards compatibility. Also,
hopefully the documentation is a bit clearer now.

--------------------------------------------------------------------------------
7342b43953 | advil | 2022-10-17 13:02:06 -0400

fix: use name overrides in pluralised mlist names
This fixes a meatsprint bug, where if more than one of a custom monster
is in view, the monster's regular type name was shown in the monster
list (e.g. "hell knight" instead of "fleshlord"). Probably this bug
applies elsewhere too. I have not carefully tested whether the plurals
involved all come out right.

--------------------------------------------------------------------------------
db1af66bbf | advil | 2022-10-17 11:43:10 -0400

fix: remove socket state from slow callback logging
I haven't found this info to be particularly revealing for diagnosing
slow callbacks.

--------------------------------------------------------------------------------
70bf11b127 | advil | 2022-10-17 11:14:57 -0400

fix: missing explicit anon user handling in a log message

--------------------------------------------------------------------------------
a49068932a | advil | 2022-10-17 11:04:02 -0400

feat: show webtiles socket info to admin users
On a reload, show current socket stats and username info in the admin
panel.  This does not refresh except manually.  This may or may not turn
out to be useful, but otherwise there's right now no good way of getting
info about usernames in the lobby or spectating. This also lets admin
users more easily see what held accounts are currently doing.

--------------------------------------------------------------------------------
0f741e3f8e | Nicholas Feinberg | 2022-10-16 21:20:16 -0700

Make Fedhas protect trees from harm
For consistency with shooting through other plants. I believe we
should be able to remove the 'hurting plants' conduct in a follow-up
commit.

--------------------------------------------------------------------------------
84690aa778 | Nicholas Feinberg | 2022-10-16 21:11:43 -0700

Add extra messages for Armataur potion/scroll muts
To emphasize what's happening and make it clearer to players when
the muts are taking effect.

--------------------------------------------------------------------------------
72a7dafe43 | Nicholas Feinberg | 2022-10-16 21:11:43 -0700

Allow stabbing distracted batty mons (acrobat)
While they're actually distracted, not just batting about.

--------------------------------------------------------------------------------
93faf69470 | Nicholas Feinberg | 2022-10-16 21:11:38 -0700

Don't display damage ratings for darts (Undo)
They were wrong.

--------------------------------------------------------------------------------
5c880eff19 | Nicholas Feinberg | 2022-10-16 21:11:38 -0700

Don't create wretched spriggan druids (Sergey)
The on-death might is quite a bit silly as an effect from a supposedly
beneficial god ability. (Kiku's Unearth Wretches.)

--------------------------------------------------------------------------------
eff92bb211 | Nicholas Feinberg | 2022-10-16 21:11:38 -0700

Clean up transformations + webs (acrobat)
Treeform should only destroy temporary webs, as with spider form.
Dragon form shouldn't destroy any webs - monster dragons don't!
(Both still destroy nets - trees because stationary creatures can't
be netted, dragons because they're too big to be netted.)

--------------------------------------------------------------------------------
6f7e019470 | Nicholas Feinberg | 2022-10-16 21:11:38 -0700

Make Ashenzari print messages when blocking malevolence
To make it clearer to players that Ashenzari does this - many players
hadn't realized. Should feel good. Hopefully won't be too annoying
that it interrupts runrest.

--------------------------------------------------------------------------------
5eb3a25a7d | Nicholas Feinberg | 2022-10-16 21:11:38 -0700

Make J's jellies immune to player mass hexes (Sergey)
Mass hexes, e.g. ?fear, previously caused friendly jellies to become
hostile (permanently) without penance. Setting up penance seems
painful and annoying, and I'd like to make J give full protection to
jellies later, so let's just start on that now.

--------------------------------------------------------------------------------
8a68597c01 | Nicholas Feinberg | 2022-10-16 21:11:38 -0700

Make Gozag block hostile soul binding
I.e. from necromancers/pharoah ants. For consistency with player
simulacrae. Some argument that these should both be changed to work
under gozag, since they're based on souls now, or something.

--------------------------------------------------------------------------------
f371ce1921 | hellmonk | 2022-10-16 17:10:17 -0400

random round toxic radiance numbers

--------------------------------------------------------------------------------
c09304477a | hellmonk | 2022-10-16 16:56:41 -0400

randomly round lrd damage

--------------------------------------------------------------------------------
74d67f175d | hellmonk | 2022-10-16 16:37:32 -0400

random round some summon durations

--------------------------------------------------------------------------------
0a2392f0f4 | hellmonk | 2022-10-16 16:27:48 -0400

random round collision damage

--------------------------------------------------------------------------------
4b46babb21 | Kate | 2022-10-15 22:41:51 +0100

Apply sacrifice rejection penalties on Ru abandonment
Fixes it being possible to get a quicker reroll of your first set of Ru
sacrifice offers by abandoning and re-worshipping Ru. Abandoning Ru now
applies the same penalties that manually rejecting sacrifices would have
(but those penalties are now a lot lower than previously, due to the
previous commit's bugfix).

--------------------------------------------------------------------------------
9bfbb5f4d0 | Kate | 2022-10-15 22:41:51 +0100

Fix Ru faith penalties always applying to Reject Sacrifices
Since 26bd780f50c, manually rejecting a set of sacrifices via the Ru
ability has applied a bonus penalty, which was intended to apply only when
an amulet of faith was removed. Fixing this is a reasonably large buff to
rejecting sacrifices (especially early ones), but hopefully that's fine
considering that rejecting sacrifices is usually a bad idea anyway. If not
then the base penalties could easily be increased.

--------------------------------------------------------------------------------
60c05b4e74 | advil | 2022-10-15 17:34:09 -0400

fix: maybe fix tremorstones with reduce_animation (Rytisgit)

--------------------------------------------------------------------------------
2d03c1e4d5 | advil | 2022-10-15 16:39:54 -0400

More checkwhite
Lots of accumulated stuff for checkwhite -a

--------------------------------------------------------------------------------
fe74333c6a | Kate | 2022-10-15 20:23:18 +0100

Checkwhite

--------------------------------------------------------------------------------
fa9835406b | Kate | 2022-10-15 19:56:42 +0100

Let wizmode superheal clear barbs
And move exhaustion and sickness from regular heal to superheal, since
they're no longer common status effects.

--------------------------------------------------------------------------------
b7e7e335b1 | advil | 2022-10-15 14:55:43 -0400

feat: better webtiles username ban management
Since 0.28 or so, I have behind the scenes been distributing code to
server admins that bans some slurs in usernames for account creation.
This commit substantially enhances that code and builds it in to the
webtiles server. This does not add any banned usernames to the repo /
default config, but does make them quite a bit easier to add.

Highlights:
1. A config option `banned` that can be used to indicate disallowed
   usernames, including handling some basic leet-speak translation,
   letter repeats, etc. Currently, these are disallowed for account
   creation only, and database bans are a distinct concept (but see 4
   below). See documentation in config.py on how to use the more
   complex possibilities here.
2. The ability to load this list from a yml (or txt) file, similar to
   Alex's config.yml override. The format of the option is designed to
   be easily encoded in yml, and also line up with the (simpler) yml
   banned names format for the scoring db. This also means that admins
   no longer have to see / have visible on their screen slurs that are
   written out in a config file. (To be honest, this problem was the
   main impetus for me starting work on this set of changes.)
3. A distinct bans.py module that is self-contained and can be pulled
   into other crawl projects (e.g. scoring, tourney). I'm hoping that we
   can start to share some bits of infrastructure-wide config like this
   across servers, projects, etc...
4. Options for the command line utility that can check config-based bans
   against the user database, and automatically ban accounts.

As noted in several comments, this code makes it very easy for admins to
run into https://en.wikipedia.org/wiki/Scunthorpe_problem, so exercise
care with the more powerful username matching options.  There's
preliminary allowlist code that can be expanded if this is desireable.

This probably makes it overall easier for an attacker to come up with
ways around username restrictions (by removing some things, such as my
exact leet-speak decoding, from obscurity). But, I do hope that this
commit still overall improves the situation for server admins. In the
worst case scenario this is no different than the the previous state of
affairs: it acts as a preventative for more casual abuse, and account
holds fill the role of dealing with more persistent attackers.

--------------------------------------------------------------------------------
f98c3da03f | advil | 2022-10-14 14:41:18 -0400

feat: default `reduce_animations` to true on webtiles
Crawl's animations have long been a problem for webtiles. They work by
using precisely timed delays (ranging from as short as 25ms up to a few
hundred ms) combined with many redraws at interim stages as e.g. a beam
path unfolds square by square. This works fine locally, but on webtiles
this is all run on the server side, so a redraw is (a) at the mercy of
the network, which can impact this timing substantially, and (b) causes
a spike in map data sent to the server. Ideally, if animations are
desirable on webtiles it would be much, much better to run them in the
client, but this is something noone has ever implemented (and it doesn't
sound very easy to do). The situation is so bad that stronger players
tend to just turn off animations altogether. However, doing so leads to
no visual feedback at all for ranged attacks that use animations.  This
commit threads the needle a bit, and by default shows most animations
with just one delay + one graphic. It's possible this will still be too
underinformative for newer players, and this commit might need to be
reverted.

As more background: A worst case scenario has been that firing or
drawing beam animations became so laggy on webtiles, that in some
conditions it has been slower than the key repeat timing or are slow
enough for lag to impact webtiles server performance, see e.g.
0b5ff556b1e2, 0306a414dbaaa, e645bd13c135ed, etc. These commits involved
hotspots that were improvable, but I think this option potentially
provides a much better default solution.

--------------------------------------------------------------------------------
12470dd2fc | advil | 2022-10-14 14:41:18 -0400

refactor: various adjustments to animation reduction
* Rename to just `reduce_animations` -- make it more general, and don't
  add another case where players can be confused about what a beam is.
  (Probably we'd want to implement this eventually for non-beam
  animations like rune lock, anyways.)
* Refactor so that the combo of a delay + a redraw is abstracted, rather
  than being pasted in many places.
* Small tweaks to how and when the final delays happen
* Implement for disaster area as well as upheaval
* options guide documentation

Resolves #2635

--------------------------------------------------------------------------------
2d2572e83d | Rytis Petronis | 2022-10-14 14:40:48 -0400

feat: add an option to reduce redraws for animations
The reduce_beam_redraw option now decides whether to draw whole beam at
once instead of animating every tile seperately with screen redraws in
between. To achieve this the bolt::draw function is modified to return
after setting the tile to the bolt but before trying to redraw. The
redraw is then done only once outside the loop in which bolt::draw
function is called to draw the whole beam at once.

[committer's note: previously, the only choices for animations were to
have the full animation (at a customized rate), or to show nothing at
all. This provides a useful intermediate option that will be
particularly valuable on webtiles. Note that a following commit will
rename this option to `reduce_animations`.]

--------------------------------------------------------------------------------
f0224bf7b6 | hellmonk | 2022-10-13 21:45:05 -0400

randomly round dispersal confuse duration

--------------------------------------------------------------------------------
c94a717997 | hellmonk | 2022-10-13 21:43:34 -0400

randomly round intoxication chance

--------------------------------------------------------------------------------
9c5b80c1dc | hellmonk | 2022-10-13 21:28:03 -0400

fix: Apply statue form damage bonus after AC
This bonus is intended to compensate for slower attack speed, but applying
before AC meant it did slightly more than that. I don't think this changes
much tbh.

--------------------------------------------------------------------------------
2b27a225a3 | Nicholas Feinberg | 2022-10-13 11:56:08 -0700

Move Anguish into a later Kiku gift (IguanaIguana)
Mostly to make the second spell gift nondeterministic. Worth doing
some further shuffling around here, maybe reducing gift size somewhat.

--------------------------------------------------------------------------------
2b75c2a55d | advil | 2022-10-13 14:43:25 -0400

fix: make InvMenu examining a bit less crash-prone
InvMenu keeps turning out to have been used in various cases for
non-inventory items (e.g. via DescMenu). A more ambitious refactor idea
might be to actually just intentionally turn this into a more general
item menu class, but I won't do that right now. This commit makes
examine_index behave more gracefully if the menu items are not
`InvMenuItem`s, something that would have also headed off crashes for a
use case like that fixed in 475f425cf99f. (And probably other DescMenu
uses.)

--------------------------------------------------------------------------------
475f425cf9 | advil | 2022-10-13 13:00:50 -0400

fix: prevent a help lookup crash
This code uses DescMenu, which for some reason, is a subclass of
InvMenu, which is expecting its items to correspond to inventory items.
We need to override on_examine therefore to prevent crashes. The
following comment in directn.cc unfortunately still remains unresolved:

`// XX this probably shouldn't use InvMenu, why does it?`

--------------------------------------------------------------------------------
e22c4ad894 | hellmonk | 2022-10-12 22:53:24 -0400

fix: Update battlesphere HD when recalling

--------------------------------------------------------------------------------
c2e06944d9 | hellmonk | 2022-10-12 22:28:29 -0400

adjust Shatter damage
Random round and apply AC normally, rather than with a penalty of 1

--------------------------------------------------------------------------------
e375a5e35f | hellmonk | 2022-10-12 22:21:40 -0400

randomly round ddoor power checks

--------------------------------------------------------------------------------
8b876d146b | hellmonk | 2022-10-12 22:19:25 -0400

randomly round disjunction duration

--------------------------------------------------------------------------------
4eb8f405f2 | advil | 2022-10-12 20:33:50 -0400

docs: update server admin comment for config.py
Make this comment a little bit more general, so as not to mislead
someone running a dgamelaunch-config server (which will no doubt break
if someone does try to use config.yml there).

--------------------------------------------------------------------------------
902f57cb4f | advil | 2022-10-12 20:26:52 -0400

refactor: adjust how games are loaded
dgamelaunch-config servers currently can't load from games.d (and
because of the default values, attempting to prevents servers from
starting), but with the previous sequence of commits, the default is
never to put games configuration in the config module at all. This
commit adjusts how the double bind is resolved. By default, if `games`
is defined in the config module, games.d files are not loaded. This can
be overridden by setting the old option `use_game_yaml` to True, if
someone wants this for some reason. I've also fixed up a few issues in
how games are loaded. For backwards compatibility, the old option
`games_config_dir` is treated as a boolean-like that will have the same
effect (previously it was set to None to prevent reading games.d on
some servers). This commit also adjust the config.py documentation
accordingly and puts back in the games dictionary as an example.

(Together with previous commits) resolves #2655

--------------------------------------------------------------------------------
30c107533f | Alex Jurkiewicz | 2022-10-12 20:23:32 -0400

refactor: Keep use_game_yaml setting
Required by dgl-config.

--------------------------------------------------------------------------------
55547e2a59 | Alex Jurkiewicz | 2022-10-12 20:23:32 -0400

refactor: Move all game definitions to games.d/
Manually specifying games in config.py is deprecated. Instead, add them
to a YAML file in games.d/. This reduces the pain of pulling in upstream
changes to config.py.

(Support for config.py-specified game definitions is not going anywhere
while dgamelaunch requires it.)

--------------------------------------------------------------------------------
9dacfef450 | Alex Jurkiewicz | 2022-10-12 20:23:32 -0400

feat: Support webserver config.yml override file
Rather than requiring server operators to modify config.py in-place (and
deal with the pain of merge conflicts when updating webtiles server
code), allow them to specify server-specific configuration in a
.gitignore'd config.yml file.

--------------------------------------------------------------------------------
79d7498bdb | Alex Jurkiewicz | 2022-10-12 20:23:32 -0400

refactor!: Hardcode games_config_dir
There's no need to support customising the 'games.d/' path, and might
just end up confusing in future.

Also, simplify and improve the messaging related to loading game configs
in this directory. The existing messaging was slightly verbose, a
holdover from its original development.

Finally, improve the sanity checking to ensure YAML files are maps (not
eg lists or single values). This was already asserted implicitly, but
now will be handled without instantly crashing.

BREAKING CHANGE: webserver config option games_config_dir removed (now is 
always "games.d").

--------------------------------------------------------------------------------
6b895097cc | advil | 2022-10-12 17:36:52 -0400

fix: remove some missed commented code

--------------------------------------------------------------------------------
d42a0f4da5 | advil | 2022-10-12 17:32:10 -0400

feat: waypoints for all levels (gammafunk)
Two changes: relax the constraints on when waypoints can be set, and
ensure that waypoint housekeeping is correctly done for waypoints on
non-connected levels and especially in the abyss. (Luckily, I think the
conditions under which rune detection needs an update are identical to
those under which waypoints need reset.)

These are marginally useful at best for a human user on some of these
levels, so possibly only the lua API should allow e.g. waypoints in the
abyss.  But, they are useful for a bot that needs to establish reference
points.

UI note: the `G` command does not work on non-connected levels, but
waypoints can still be accessed and traveled to interactively on these
levels in a slightly clunkier way via `X`. I haven't actually checked
the lua API so if it has a restriction like this for waypoint travel,
that may be worth removing. But I have the sense that the use case of
this is really for reference points, not travel.

--------------------------------------------------------------------------------
98ac1a292c | Nicholas Feinberg | 2022-10-12 09:51:20 -0700

Re-fix damage ratings
aa749bd8e47d5e8e434b133971969834f8024a58 was incoherent.

--------------------------------------------------------------------------------
41c1d76940 | hellmonk | 2022-10-11 23:48:44 -0400

correct the firestorm targeter
It is always possible to get a radius 3 firestorm if power is > 0.

--------------------------------------------------------------------------------
4b55263497 | hellmonk | 2022-10-11 23:38:45 -0400

random round arcjolt damage

--------------------------------------------------------------------------------
defe565e8d | hellmonk | 2022-10-11 23:10:30 -0400

cleanup

--------------------------------------------------------------------------------
bdec91c41a | hellmonk | 2022-10-11 23:10:30 -0400

feat: Icy lair entrance

--------------------------------------------------------------------------------
568b07f25b | hellmonk | 2022-10-11 23:10:30 -0400

adjust minmay_lair_entry_lava
Replace the fire dragon with a crab and adjust the vault to prevent vetos.

--------------------------------------------------------------------------------
03e9ba43c7 | hellmonk | 2022-10-11 22:40:12 -0400

randomize confuse/para duration on monsters

--------------------------------------------------------------------------------
be970518db | hellmonk | 2022-10-11 22:38:54 -0400

random round confusing touch duration
Rather than having breakpoints at low power.

--------------------------------------------------------------------------------
aa749bd8e4 | Nicholas Feinberg | 2022-10-11 13:47:54 -0700

Fix UC/Throwing damage rating (#2748)
We incorrectly multiplied damage by weapon skill, but that doesn't
occur in actual combat.

Fixes #2748.

--------------------------------------------------------------------------------
7bf8e6d787 | advil | 2022-10-10 19:49:55 -0400

docs: tweak macos build instructions
Try to clarify various aspects of the build instructions, and make it
even clearer that the Xcode install isnt' because we are using Xcode.

--------------------------------------------------------------------------------
1121274140 | hellmonk | 2022-10-09 20:23:59 -0400

adjust Kiku actives
Reduce the power of wretches and increase its piety cost slightly.
Reduce the piety cost of torment.

--------------------------------------------------------------------------------
3111722afa | hellmonk | 2022-10-09 20:10:15 -0400

checkwhite

--------------------------------------------------------------------------------
ba8dcd3c80 | hellmonk | 2022-10-09 20:09:45 -0400

round mephitic cloud duration

--------------------------------------------------------------------------------
88f5cd7b0b | hellmonk | 2022-10-09 20:04:31 -0400

correctly cap hibernation at 50 power

--------------------------------------------------------------------------------
3abaafb9f6 | hellmonk | 2022-10-09 19:58:12 -0400

randomize slow hex duration

--------------------------------------------------------------------------------
0740ab4923 | hellmonk | 2022-10-09 19:46:51 -0400

remove slow's hex power buff

--------------------------------------------------------------------------------
fbc3a94d58 | hellmonk | 2022-10-09 19:39:09 -0400

remove hidden hibernation power stepdown
As far as I can tell, this wasn't accounted for in the targeter.

--------------------------------------------------------------------------------
97d66968fd | Nicholas Feinberg | 2022-10-09 14:16:02 -0700

And unnerf endoplasms (see last commit)

--------------------------------------------------------------------------------
46bee08b82 | Nicholas Feinberg | 2022-10-09 14:15:39 -0700

Derandomize monster Freeze damage dice
Make the damage display simple to display without being misleading.

--------------------------------------------------------------------------------
7c5df11ecf | hellmonk | 2022-10-09 16:57:59 -0400

random round dragon call duration

--------------------------------------------------------------------------------
6ac44c9753 | hellmonk | 2022-10-09 16:48:00 -0400

random round infest status duration

--------------------------------------------------------------------------------
3c8e1c8089 | hellmonk | 2022-10-09 16:35:21 -0400

randomly round summon hydra heads
Removes yet another power breakpoint; this is a slight buff.

--------------------------------------------------------------------------------
2dd1c91445 | hellmonk | 2022-10-09 16:27:31 -0400

Adjust noxious bog duration
Slightly increase variance and randomly round.

--------------------------------------------------------------------------------
2d71ba6e3a | hellmonk | 2022-10-09 16:19:41 -0400

random round bogcloud duration
... when igniting poison with bog tiles in los.

--------------------------------------------------------------------------------
6c849f5caf | hellmonk | 2022-10-09 16:15:28 -0400

adjust Portal Projectile rounding
Randomly round accuracy bonus with throwables and duration.

--------------------------------------------------------------------------------
e18b8abeca | hellmonk | 2022-10-09 15:44:02 -0400

randomly round freeze max damage.
Also brings damage/turn into line with ramparts.

--------------------------------------------------------------------------------
04c3547f4f | advil | 2022-10-09 14:34:56 -0400

feat: mention pan lord flavor color in description
This started because it seemed like the ETC_RANDOM possibility is
flavorful enough to be worth mentioning explicitly, but I realized it
would be good to always include even regular colors.

--------------------------------------------------------------------------------
e52a3cb02f | Kate | 2022-10-09 18:26:48 +0100

Reduce the chance per floor of ecumenical altars
Redesigned ecumenical altars are generally a much more desirable option
than their original fully-random design. They're also more complex
(requiring manually checking each individual altar to see its god options).
Reduce their chance from 1/2 to 1/4 per floor from D:1-3, so that they'll
still be fairly frequent options (available in over half of games), but
not so overwhelmingly likely to be some of the first altars found in
every game.

--------------------------------------------------------------------------------
cb0039aa0c | Kate | 2022-10-08 23:22:05 +0100

Adjust an ecumenical altar vault
Reduce its weight slightly, and limit it to two ecumenical altars - placing
multiple ecumenical altars now offers a lot more information and a wider
selection of gods before committing.

--------------------------------------------------------------------------------
e547ba4400 | advil | 2022-10-07 11:12:24 -0400

fix: clean up after a few tests
These tests spawn monsters but were not getting rid of them afterwards.
Also, a few comments.

--------------------------------------------------------------------------------
f7f13252f9 | advil | 2022-10-07 10:48:54 -0400

fix: Ds mutations conflicting with beak after 15c3b865de76
Mutations that block the same eq slot are treated as being in
physiological conflict, so after the linked commit beak also blocks
horns/antennae.  (This may not have been intentional with this commit,
it seems not to have been part of the original beak design.) However,
for whatever reason, the conflict marking for deletion needs to be
handled separately, so deletion of beak on conflict was failing. The
main consequence was that beak would block Ds horns but the resolution
code couldn't remove beak, leading to test failures (but maybe silent
failure in a real game?)

This commit adds the conflict marking to match 15c3b865de76 and prevent
crashes. However, it may be desireable to treat beak vs horns
differently, which would require some hardcoding somewhere (or
refactoring). As a side note, there's a comment here that indicates a
similar thing might have come up for antennae, but I cannot find current
code in physiology_mutation_conflict that matches this comment.

It's also possible that affected Ds games would need explicit save
compat for this fix that I haven't added (if so, they'll be missing some
horns they are due.)

--------------------------------------------------------------------------------
8710fb66a6 | advil | 2022-10-07 10:14:12 -0400

fix: don't crash if mut_species test removes flight
Because this would happen at 0,0, this caused a bounds check crash.
Possibly rare for this test, as this doesn't seem like it could be a new
thing.

--------------------------------------------------------------------------------
f2db51d15e | Nicholas Feinberg | 2022-10-05 07:25:59 -0700

Revert "fix: correct webtiles hidpi implementation"
Probably cauing visual artifacts. Rolling back for now.

This reverts commit c90f4eb94e883a330bf49edabe2f271034f0982d.

--------------------------------------------------------------------------------
edb9141078 | Michael Del Monte | 2022-10-04 14:21:34 -0700

Adds `ac`, `ev`, and `sh` functions to the lua `you` object.

--------------------------------------------------------------------------------
09a5e214e2 | Nicholas Feinberg | 2022-10-04 10:41:14 -0700

Mention weakness stinger blocking cloaks (Huan)
In the mutation description.

--------------------------------------------------------------------------------
2cd6803ab7 | Kate | 2022-10-04 17:13:57 +0100

Remove the Palentonga roll mutation (#2766)
It was still randomly obtainable (by any species, but with no actual
effect). Closes #2766.

--------------------------------------------------------------------------------
be4c2caf12 | advil | 2022-10-04 11:17:08 -0400

fix: two typos

--------------------------------------------------------------------------------
4ec62bdb57 | Nicholas Feinberg | 2022-10-04 07:39:56 -0700

Add CipHuK's acrobat icon to UNUSED (#2607)

--------------------------------------------------------------------------------
36afe0b79d | Nicholas Feinberg | 2022-10-04 07:36:35 -0700

Recolour acrobat icon (Sastreii)
To reduce similarity to the the 'magic regeneration' amulet icon.

Closes #2607.

--------------------------------------------------------------------------------
5a3754191e | Marcelo Henrique Cerri | 2022-10-04 07:25:52 -0700

Add show_blood option (default true)
Add a new option show_blood to control if blood splatters and
bloody corpses should be shown, or should be replaced with skeletons
and nothing respectively.

Might be nice to have tile variants for a few monsters as well, eg
flayed ghost.

Closes #2357.

--------------------------------------------------------------------------------
c90f4eb94e | advil | 2022-10-04 07:09:31 -0700

fix: correct webtiles hidpi implementation
This commit reverts 3925e268bea408.

To get hidpi to work in a browser canvas object, the internal dimensions
need to be twice that of the external dimensions (essentially). The
normal way of implementing this is to multiply the internal dimensions
by devicePixelRatio, and scale the canvas accordingly. We used to do
this, but 3925e268bea40 changed things so that the external dimensions
were halved. This was, according to the commit message, in order to
prevent scaling artifacts on firefox. (Where the salient fact is that
window.devicePixelRatio on some browsers, these days including
chrome/firefox but not safari, also changes with browser zoom.) However,
a consequence is that tile rendering is halved on hidpi devices, exactly
not what should happen. This change also made for a lot of messy code
that had to interact directly with devicePixelRatio.

The half-size tile rendering wasn't immediately noticeable because the
dungeon is auto-scaled, and the monster list matches its scale to the
dungeon. But, icons in menus and popups instantiate the problem, and
scaling them to the dungeon size is not ideal. The action panel also had
some workarounds for this that I didn't fully understand at the time. (I
only noticed this myself after many years of working on this stuff
because I switched from a regular-density monitor to a 4k monitor of
similar size, even though I've used retina devices for a long time.
Hidpi devices have been broken for so long that I won't be surprised if
we get requests to readd this behavior as an option or something, menus
may look odd now to people who have only ever played on hidpi.)

In my testing so far, I can't really detect any rendering differences
between the approach after this commit and the approach in
3925e268bea408. However, I'm not exactly sure of what the original
issues were, and this commit should be tested on a non-hidpi device
before merge.

--------------------------------------------------------------------------------
01b79a254e | Nicholas Feinberg | 2022-10-03 22:15:17 -0700

Book rebalance, pt 2
Add a new book, Maxwell's Memoranda, to shift books back toward an
average of 3 per book. (I believe this is about as close as we can
get - we're exactly one spell over at present.)

--------------------------------------------------------------------------------
aa07282108 | Nicholas Feinberg | 2022-10-03 21:51:24 -0700

Note insubstantiality in spell targeters
For Sticky Flame and Fastroot (wand of roots), since it affects both.

--------------------------------------------------------------------------------
8d5dd66c5c | Monkooky | 2022-10-03 21:36:58 -0700

Documents insubstantial in the monster x-V view
As per title.
Also documents Sticky Flame's inability to stick to insubstantial monsters.

--------------------------------------------------------------------------------
6573418d01 | Nicholas Feinberg | 2022-10-03 21:29:59 -0700

Fix: Don't let Spriggans cast Swiftness (Monkooky)
While in water, they were incorrectly counted as being slow, allowing
them to cast Swiftness and then run around outside the water. Nice!

Anyway, now they can't.

Closes #2739.

--------------------------------------------------------------------------------
d8d8a64377 | Zhang Kai | 2022-10-03 21:17:54 -0700

Update gods.txt (Chinese translation)
Closes #2716.

--------------------------------------------------------------------------------
7032f90272 | Zhang Kai | 2022-10-03 21:15:54 -0700

Update ability.txt (Chinese translation)
Closes #2715.

--------------------------------------------------------------------------------
317d1de1b5 | 张凯 | 2022-10-03 21:14:48 -0700

Update clouds.txt (Chinese translation)
Closes #2692.

--------------------------------------------------------------------------------
a836afdb34 | 张凯 | 2022-10-03 21:13:29 -0700

Update branches.txt

--------------------------------------------------------------------------------
0d51db2871 | 张凯 | 2022-10-03 21:07:44 -0700

Update spells.txt (Chinese translation)
Closes #2690.

--------------------------------------------------------------------------------
e521aab31e | 张凯 | 2022-10-03 21:04:06 -0700

Update monsters.txt (Chinese translation)
Closes #2663.

--------------------------------------------------------------------------------
17fea662fc | Nicholas Feinberg | 2022-10-03 20:58:24 -0700

Book rebalance, pt 1
Start moving books back toward an average of 3 spells per book.

--------------------------------------------------------------------------------
1efd971db8 | 张凯 | 2022-10-03 20:56:45 -0700

Update commands.txt

--------------------------------------------------------------------------------
15c3b865de | Monkooky | 2022-10-03 20:49:28 -0700

Update mutation.cc so ashenzari correctly blocks beaks

--------------------------------------------------------------------------------
960f186ce7 | kd7uiy | 2022-10-03 20:45:58 -0700

New nickname for Xom
Added a new option for Xom's nickname, Xom the Chaotic.
--------------------------------------------------------------------------------
22508d058b | Nicholas Feinberg | 2022-10-03 20:44:05 -0700

Fix infusion cost (pisastrish)
Various things that killed the defender could result in infusion not
costing MP, e.g. special unrand effects. Fix this by paying infusion
MP costs earlier.

Closes #2712.

--------------------------------------------------------------------------------
6a831dfdda | Nicholas Feinberg | 2022-10-03 20:25:00 -0700

Simplify Mad Mage's Maulers
Make them use the same damage multipler per MP spent as normal infusion
gloves, instead of 50%.

--------------------------------------------------------------------------------
8c06622978 | Nicholas Feinberg | 2022-10-03 17:26:17 -0700

New Armataur player tile (Sastreii)
Get riiiipped

--------------------------------------------------------------------------------
f89613a6cc | Kate | 2022-10-04 00:02:29 +0100

Fix Momentum Strike not applying -Move on friendly fire

--------------------------------------------------------------------------------
5dbf5516b7 | Kate | 2022-10-03 23:36:12 +0100

Update docs for no_tele_into (advil)
It is, and always has been, very funny to teleport the player into hellion
island.

(In general, no_tele_into should only be used to prevent the player from
getting trapped - big groups of monsters and dangerous vaults are just
tough luck!)

--------------------------------------------------------------------------------
33132b1f91 | Kate | 2022-10-03 23:36:12 +0100

Rebrace

--------------------------------------------------------------------------------
22c9a3c0ff | advil | 2022-10-03 11:54:21 -0400

refactor: don't end ozo's on temporal distortion (hellmonk)
This commit refactors the movement aspect of chei's temporal distortion
and step from time to use a RAII object for common code, and allow a bit
more flexibility for ice movement expiry. After this commit, neither
rampart's nor ozo's expire with temporal distortion, and they both do
with step from time.  The difference between the two abilities could be
easily changed, the difference between the two spells a bit less so. The
internal player implementation is slightly messy because I don't want to
try to change the actor/monster ::moveto signature.

--------------------------------------------------------------------------------
2a4cff5a3b | advil | 2022-10-03 11:01:23 -0400

fix: bog and rampart status descriptions
Both missing `status`, hence weren't properly showing up. I've also
tweaked the wording of the bog status message to indicate the toxic bog
immunity it grants.

--------------------------------------------------------------------------------
c626debdff | Monkooky | 2022-10-03 07:39:50 -0700

Stop momentum strike from using vhi's checks
momentum strike case was missing a break;

--------------------------------------------------------------------------------
d9c2deaf24 | Nicholas Feinberg | 2022-10-02 22:08:15 -0700

Improve low-power Lesser Beckoning
Halve power cap from 100 to 50, and increase min range from 2 to 3.
Should make it more usable for reasonable characters.

--------------------------------------------------------------------------------
105a1d9ad3 | Nicholas Feinberg | 2022-10-02 22:06:13 -0700

Fix Armataur manual abbreviation (elliptic)
AT -> At, matching Merfolk etc.

--------------------------------------------------------------------------------
d62a825edf | Nicholas Feinberg | 2022-10-02 21:10:00 -0700

Rework Armataur aptitudes
Magic and throwing aptitudes were bad to encourage use of the rolling
charge, which no longer exists. Upgrade those and defensive apts (HP,
Armour), plus Stealth as a funny combo with rampage. Then shift other
apts down to compensate for overall buffs. Try to avoid overlap with
Hill Orc and Ogres.

--------------------------------------------------------------------------------
ce2a380349 | Nicholas Feinberg | 2022-10-02 21:10:00 -0700

Cut Armataur Curl
Sort of a complicated effect that's hard for players to do that much
with. Let's spend our complexity budget elsewhere.

--------------------------------------------------------------------------------
f2e57c08ab | Nicholas Feinberg | 2022-10-02 21:09:45 -0700

Add 'tongue' Armataur mutations
The main feature here is that Armataurs get double potion effects.
Double healing! Double status effect duration! Double degeneration,
double mutations, double !xp! It's chaos here.

(Healing/mp restore from cure/!hw/!magic/!ambrosia is doubled, other
durations are doubled.)

Then flip it around a little and make scroll reading 50% slower. This
is not a large penalty, just sort of a cute twist. They're reverse
mummies..? (This will probably get cut eventually.)

The code added in potion.cc is godawful and I'm very sorry.

--------------------------------------------------------------------------------
c40470cdd7 | Nicholas Feinberg | 2022-10-02 20:55:46 -0700

Give Armataurs Rollpage
It's rampaging, but roll-themed. Seems like a cute property for a
species to have, and an armadillo-pangolin species needs to roll up
in some way.

--------------------------------------------------------------------------------
2a6e7f69e1 | Nicholas Feinberg | 2022-10-02 20:55:46 -0700

New spell: Vhi's Electric Charge (L3 Tloc/Air)
As promised, the palentonga rolling charge has become a spell. Some
notable differences:

- The extra damage is electric, rather than physical. That is, enemies
  with rElec take no extra damage from an electric charge.
- Power adds a little more bonus damage, up to 33% at max power. (That is,
  a total of +133% damage at max range.)
- Since some users won't have sInv, the spell now passes through intervening
  enemies, and does its darned best to displace anything on the final space.
  (Blinking, teleporting, banishing, or just murdering as needed.)
- Stationary enemies are invalid landing targets, on the principle that they
  really shouldn't be moved and are rarely invisible. Fingers crossed.

It's in the Warper start book, replacing Gell's Gravitas, as part of an
attempt to make the start more focused on being a 'warrior-mage'. It might
be a little strong at level 3, but we can retune it as needed.

It is probably very buggy. I'm quite scared.

Tile by Sastreii.

--------------------------------------------------------------------------------
eb9d758594 | Nicholas Feinberg | 2022-10-02 20:55:46 -0700

Remove Rolling Charge
This ability still seems quite fun, but it seems like it'll work better
as a spell (where it can combine with many different species in interesting
ways) than as a species (where it only combines with a few backgrounds in
distinctive ways). Let's move it out for now.

Also remove Armataurs' innate sinv, since that only existed for Rolling Charge
UI reasons.

--------------------------------------------------------------------------------
ba81c3259c | Nicholas Feinberg | 2022-10-02 20:55:32 -0700

Rename Palentonga to Armataur
The name 'palentonga' was intended to be a bit more subtle than 'felid',
'octopode' or even 'barachian' - to be an 'animal-person' species name that
merely hinted toward the species (pangolin), rather than shouting it from
the rooftops. But of course, they weren't exactly pangolins - they were giant,
and had four legs plus two arms...

This was too many things at once! If the concept was simple and familiar, we
could have used a more exotic name, and the rest of the flavour would have
put players on the right path. But as it was, players were lost. There was no
resonance.

So, let's rename em. 'Armataur' is a simple 'armadillo' + 'centaur' combination.
(Yes, I know that properly they should be 'cenadillos'...) The abbreviation is 
At,
to avoid ambiguity with the Artificer start. It's exciting, it's hip, it's fun.
Let's try it out.

--------------------------------------------------------------------------------
4db885d750 | advil | 2022-10-02 13:26:35 -0400

fix: don't do excursions during shopping list purchases
Shop menus work with various data structures that are wiped out by a
level excursion (the shop data itself, plus item data for anything in
the shop). Buying an unid'd item could, however, trigger a level
excursion if other items of the same type are on the shopping list on
different levels. This commit refactors so that (a) there's a way of
preventing level excursions (causes a crash by default if enabled), (b)
the shopping list will detect if excursions are disallowed and store
what needs to be done, and (c) there's a way to manually trigger any
postponed excursions. This is possibly still a bit brittle if
no_excursions are used more widely, since the shopping list update will
need to be manually called in other cases. But, it's still better than
allowing arbitrary excursions as a side effect of apparently innocuous
id calls. Historically I would guess this bug was widely possible,
though I suspect it shouldn't be any more.

Resolves #2760

--------------------------------------------------------------------------------
1cb5dbfd7a | gammafunk | 2022-10-01 21:14:00 -0500

feat: Adjust an oklob stair vault (CarefulOdds)
This vault is pretty polarizing among players since it guards all three
downstairs with oklobs and places in Lair. Hence it forces you to fight
through the vault to proceed, and this can involve reseting the fight
until your combat results are favorable enough. Stationary monsters are
always difficult to work with in terms of avoiding trivial resets of
fights, but if we wanted to prevent this, we'd have to remove stationary
monsters. This commit doesn't do that, but it does rebalance things a
bit so that the vault places less often, and when it does place we're
usually not forced to fight through it.

Lower the weight to 2 and have the third staircase place inside only 1/3
the time. It's not as interesting to seal off only one staircase, so
always place at least two. It's fun to torment players once and a while
with mandatory stationary monsters, but with these changes mandatory
clearing of this vault will be much more rare.

Also remove placement in Elf and Depths, since by then oklobs are a bit
less interesting as opponents, and while there's still somewhat
formidible in Elf, the theme isn't really there. Move the placement in
Snake to Swamp, where the thorn hunters this vault uses for post-Lair
make more sense, and remove the acid blobs.

--------------------------------------------------------------------------------
dd20fb75b6 | Nicholas Feinberg | 2022-10-01 11:55:24 -0700

Fix Arcjolt uselessness check

--------------------------------------------------------------------------------
972bcd5032 | Nicholas Feinberg | 2022-10-01 11:48:39 -0700

Fix Arcjolt animation

--------------------------------------------------------------------------------
bc10bd73c2 | Kate | 2022-10-01 11:30:43 +0100

Add message for casting Momentum Strike with no target

--------------------------------------------------------------------------------
3c4d611d4f | Kate | 2022-10-01 11:12:31 +0100

Reword Momentum Strike uselessness message

--------------------------------------------------------------------------------
c5509c9e31 | Nicholas Feinberg | 2022-09-30 20:53:23 -0700

Fix holy unrand fallbacks (elliptic)
Don't place randart vorpal eudaemon blades!

--------------------------------------------------------------------------------
d1b97b9b04 | Nicholas Feinberg | 2022-09-30 20:50:23 -0700

Increase player base regen by 0.2 (elliptic)
To make early game resting less annoying. Someone can revert or comp
this later, if desired.

--------------------------------------------------------------------------------
85af917532 | Nicholas Feinberg | 2022-09-29 21:10:15 -0700

Only trigger Momentum -Move on a hit
Remove a feels-bad. I'm a little concerned about balance here, but
hopefully it's fine.

--------------------------------------------------------------------------------
06f667207d | Monkooky | 2022-09-29 13:28:04 -0400

Fixes power leap, line pass, and shadow step (#2756)

--------------------------------------------------------------------------------
0b976cbdc4 | Nicholas Feinberg | 2022-09-28 20:52:16 -0700

Clean up Momentum Strike's -Move
Make it only prevent voluntary physical movement - walking, flying
around, hopping, etc. Translocations are still unaffected, as are
other sources of movement - so you can be trampled, etc.

Rewrite the descriptions to be a little clearer.

Also rename the old -Move from -Go to Stuck.

--------------------------------------------------------------------------------
62a5988fa7 | Nicholas Feinberg | 2022-09-28 20:24:55 -0700

Don't arcjolt rElec+++ enemies
Fixes a warning when arcjolting next to a summoned lightning spire.

--------------------------------------------------------------------------------
5d06c95188 | Nicholas Feinberg | 2022-09-28 10:16:58 -0700

Continue to ruin ebering's vision (Monkooky)
Remove an overlooked reference to astral vision / xray_vision,
per 1891117ce.

--------------------------------------------------------------------------------
1891117ce2 | Nicholas Feinberg | 2022-09-27 19:03:23 -0700

Remove Ashenzari's Astral Vision (hellmonk)
Very thematic, but quite buggy - breaks monster AI, resting, etc.
Let's axe it for now. Could maybe bring it back someday as an active,
similar to old Ash.

--------------------------------------------------------------------------------
83d47c8028 | Nicholas Feinberg | 2022-09-27 17:47:20 -0700

Rework Volcanic Tap into Momentum Strike
Switch it from Conj/Fire/Earth to Conj/Tloc, to reduce the number of
spells in the starting book and to push more toward hybrid-friendly
schools.

Also frontload the power of the spell a bit more.

Tile is a placeholder.

--------------------------------------------------------------------------------
c060d6dac2 | Nicholas Feinberg | 2022-09-27 17:18:09 -0700

Add new loading art (Gompami)
Kobold with a triple crossbow!

--------------------------------------------------------------------------------
2ba88f6271 | Nicholas Feinberg | 2022-09-27 14:05:35 -0700

Fix Airstrike (nicolae)
Very bad merge in 068b7645628b362d40088dc8c96a52e76a035056.

--------------------------------------------------------------------------------
dd60e06945 | Kate | 2022-09-27 15:58:33 +0100

Fix monster spellcasting test failure

--------------------------------------------------------------------------------
cfceee88d3 | advil | 2022-09-27 07:55:25 -0400

fix: don't crash in hailstorm targeting
068b7645628b seems to have a bad cut and paste that removes the return
value here, leading to crashiness.

--------------------------------------------------------------------------------
068b764562 | Nicholas Feinberg | 2022-09-26 21:57:55 -0700

New spell: Volcanic Tap (L2 Cj/Earth/Fire)
Try three at a level 2 start spell for Reaver. Volcanic Tap is a range
4 smitey (but capable of missing) damage spell, comparable to Stone Arrow.
However, it locks the player in place with -Move for 5-8 turns after a cast,
and can't be recast until that status wears off.

For the first few dungeon floors, it's a 'cast once per fight' spell - a
strong pull toward continuing to cast rather than immediately switching to
armour. Later, it becomes more situational, since getting locked in place in
fights against multiple enemies can be extremely dangerous.

Let's try it out.

--------------------------------------------------------------------------------
895c20ea24 | Nicholas Feinberg | 2022-09-26 21:57:55 -0700

Tweak Hailstorm
To maybe make it more appealing to Reaver, move it to level 3 and
give it a miss chance. This should also serve the cause of making
more spells care about accuracy.

--------------------------------------------------------------------------------
161da3a0d4 | Nicholas Feinberg | 2022-09-26 21:57:43 -0700

New background: Reaver
A new warrior-mage background, Reavers primarily focus on melee combat, but
have a small set of backup spells to use for tough situations. These spells
have limitations (Drain, -Move, or simply positioning) that make them
difficult or impractical to use as a primary offense.

Reavers are intended to be a flexible background - shifting more toward melee,
casting, or neither (remaining a hybrid) as the game goes on.

Tile by Sastreii.

Partially reverts 1cc687962fc2b6 (2011).

--------------------------------------------------------------------------------
f478ae5f9b | Nicholas Feinberg | 2022-09-26 21:53:45 -0700

Switch out Ice Elementalist's Hailstorm for SIB
Players have historically been a bit unhappy with Hailstorm as the
top-end of the Ice Elementalist spellset. It's an interesting spell,
but tricky to use effectively, especially without Summon Ice Beast or
Metabolic Englaciation to help maintain distance between the player
and their enemies.

That trickiness suits Reaver exactly, though, so I'm stealing the spell
from IE. In exchange, Summon Ice Beast returns to the IE start.

1b49dfe8c25f9 (2021) removed Summon Ice Beast because it was 'overly
defining' for the background (and we already have another background
defined by summons!). However, now that there's a 1-beast summon limit
on the spell and now that it's not stealing attention from Hailstorm,
that should be much less of a problem. Let's try it out!

--------------------------------------------------------------------------------
833205f978 | Nicholas Feinberg | 2022-09-26 21:53:37 -0700

New spell: Kiss of Death
L1 Conj/Necro. Does high draining damage to an adjacent foe, starting
at 2d5 and rising to 2d13 at max (25) power. However, also inflicts
heavy drain on the player, equivalent to a use of Ru's Apocalypse. Can
bail you out of a tough spot early on, but be careful about over-using
it!

Intended as a starting spell for the new Reaver background. Kiku can also
grant it.

Tile by Sastreii.

--------------------------------------------------------------------------------
b106f4c828 | Kate | 2022-09-26 21:55:49 +0100

Let Static Discharge affect rElec monsters
As long as they're not completely immune to electricity, they should still
be valid targets. Also fix resistance being applied twice for its damage.

--------------------------------------------------------------------------------
71e3da25a7 | Kate | 2022-09-26 21:55:49 +0100

Fix missing save compat for a removed vault

--------------------------------------------------------------------------------
d541229a0b | hellmonk3 | 2022-09-26 16:50:46 -0400

feat: hermit pendant guarded unrand
Also, adjust pendant capitalization (elliptic)
--------------------------------------------------------------------------------
f412724dd0 | hellmonk3 | 2022-09-26 16:40:49 -0400

feat: new Okawaru overflow
Teaches the player what a real friend looks like.
--------------------------------------------------------------------------------
343ea32564 | advil | 2022-09-26 12:43:43 -0400

fix: save compat for 1eb326923381
Without this, saves where the vault has already placed will crash on
loading the level.

Alternatively one could disable this vault in the save compat, but I
don't have a test save with the vault on hand.

--------------------------------------------------------------------------------
7f746667c4 | Nicholas Feinberg | 2022-09-25 22:19:34 -0700

Fix @ attack delay with haste + finesse (elliptic)
Don't claim that haste stacks nicely with finesse in @.

I'm not sure when this became broken - it looks like maybe we
tried to factor out haste when displaying attack speed in @, and
didn't fix the finesse code after we started including haste?

--------------------------------------------------------------------------------
4d237caa85 | Nicholas Feinberg | 2022-09-25 22:10:59 -0700

Let formicids shaft through Tomb
I believe this was only forbidden by accident; shafts can't generate
as random malevolence effects in Tomb, which incidentally broke Formicid
self-shaft.

--------------------------------------------------------------------------------
30045a6dda | Nicholas Feinberg | 2022-09-25 22:06:32 -0700

Mark delvers pre-shafted (acrobat)
Don't allow delvers to be shafted in D, for lore and kindness reasons.

--------------------------------------------------------------------------------
10421eeba7 | Nicholas Feinberg | 2022-09-25 21:56:41 -0700

Give lochaber axe *Drain (acrobat)
To discourage swapping for higher-damage weapons against single targets.
Lochaber axe is an oldschool weapon - if you just toss it aside for
newfangled 'bardiches' and 'executioner's axes' at the least excuse,
you deserve to get haunted!

acrobat also suggested giving a vorpal brand, but that seems excessive
to me. If you want the spectacular power of a 5x5 cleave, you shouldn't
get mega damage per hit too!

--------------------------------------------------------------------------------
03d90e2e6d | Nicholas Feinberg | 2022-09-25 19:22:19 -0700

Display monster Arcjolt damage (ardl)

--------------------------------------------------------------------------------
748be8cbb9 | Nicholas Feinberg | 2022-09-25 19:18:36 -0700

Remove AK (the background tile)
Missed a spot earlier.

Partially reverts 1d83d27b2f203060e91c6742e3b95ad49ca714ac, in a sense.

--------------------------------------------------------------------------------
fbc108b0ab | Nicholas Feinberg | 2022-09-25 19:15:22 -0700

Fix: banished pharaohs shouldn't bind souls (ardl)
Only killing pharaoh ants should trigger the bind soul effect.

--------------------------------------------------------------------------------
7370640ec8 | Nicholas Feinberg | 2022-09-25 14:10:51 -0700

Remove unused targeter_shotgun
Gone but not forgotten </3

--------------------------------------------------------------------------------
30f27751c5 | Nikolai Lavsky | 2022-09-24 21:47:38 +0100

fix: tweak valid targets for rampaging
* Allow rampaging towards frenzied enemies. Treat them like regular
  hostile monsters.
* Disallow rampaging towards projectiles. The player cannot voluntarily
  move into an orb of destruction when it's right next to them, but
  it's possible to rampage into an orb if it's two tiles away.

--------------------------------------------------------------------------------
d1020e658a | Kate | 2022-09-23 21:39:21 +0100

Don't let Arcjolt arc through projectiles

--------------------------------------------------------------------------------
4bdb1da14e | Nicholas Feinberg | 2022-09-23 13:23:37 -0700

Borgify Zot drain (kate)
Drain's use in the Zot clock is quite odd - it's not quite like anywhere
else that we use Drain. It also interacts poorly with other systems, e.g.
Ely's Purification power, and it's a 'soft' enough penalty that we still
feel the need to have Zot directly kill you eventually. (That is, we're
concerned about you getting whatever boring benefit you wanted and then
healing the Drain off.)

Instead, use the permanent max HP reduction mechanic from Borgnjor's
Revivication to knock out 1/6th of your max HP. There's a +3 to make this
more meaningful at low levels, but it's forgiving in some ways, too -
if you take an early hit and survive, later levels' HP gain will eventually
make the penalty relatively minor.

Let's try it out.

--------------------------------------------------------------------------------
d9661ff249 | Nicholas Feinberg | 2022-09-23 13:02:42 -0700

Tweak Ozo's Refrigeration damage back up a lil
Per player feedback. Partially reverts de8b1eb0999c2ca9b, sort of.

--------------------------------------------------------------------------------
d8773701ce | Nicholas Feinberg | 2022-09-20 16:49:46 -0700

Downgrade Entropy Weaver HD
To make their simulacrae less terrifying.

HD 13 -> 7, add fighter flag to mostly compensate accuracy, add XP
multiplier to mostly compensate XP.

--------------------------------------------------------------------------------
ea98e250e0 | advil | 2022-09-20 17:08:18 -0400

feat: more butterflies
This commit makes two changes:
* Substantially increase the density of range 2 butterflies.
* Approximately double the total amount of butterflies, placing the
  second set further from the player.

Too far? Not enough? I'm not sure...

It might be more sensible to explicitly randomize based on local
density, not number, but this commit works with existing summon
placement tricks. Because it doesn't do this, this commit maybe makes
things too strong in enclosed areas? But it doesn't do anything about
butterflies dying easily.

--------------------------------------------------------------------------------
630cfc4551 | Nicholas Feinberg | 2022-09-19 21:27:31 -0700

Fix delvers + ?fog + ?butterflies (Monkooky, Solitudinal)
Don't show ?butterflies in the unknown items list after you've already
found a ?fog on the floor - item sets make that impossible.

Closes #2711.

--------------------------------------------------------------------------------
b40fab5c76 | Nicholas Feinberg | 2022-09-18 13:37:51 -0700

Make fleeing monsters enter clouds
Someone in #dcss suggested this, but I can't find their post again
now that I'm looking for it. Anyway, it seems fun. If this makes
the Cause Fear spell too powerful, we may simply have to r-word it.

--------------------------------------------------------------------------------
8056f4cfa4 | Nicholas Feinberg | 2022-09-18 13:33:12 -0700

New Cinder Acolyte (Sastreii)

--------------------------------------------------------------------------------
ba5a0857d8 | Nicholas Feinberg | 2022-09-18 13:29:25 -0700

Make friendlies avoid blastsparks (acrobat)
Make it take a little more work to blow up your pals.

--------------------------------------------------------------------------------
3d28bfe2ac | Nicholas Feinberg | 2022-09-18 13:25:17 -0700

Prompt before walking into blastsparks
And don't autoexplore into em, etc.

--------------------------------------------------------------------------------
28931fb96c | Nicholas Feinberg | 2022-09-18 12:58:36 -0700

Make monsters cheat when casting Sandblast (hellmonk)
It's too much of a pain to make them take 1.5x time, so make em take
1x instead of 2x. -LOC!

--------------------------------------------------------------------------------
5188dcd197 | Nicholas Feinberg | 2022-09-18 12:57:47 -0700

Fix Arcjolt noise (acrobat)

--------------------------------------------------------------------------------
aceff491a1 | Nicholas Feinberg | 2022-09-18 12:54:27 -0700

Make the Robe of Misfortune an early unrand (gammafunk)
Seems funny.

--------------------------------------------------------------------------------
cbaa6ad2a4 | robertxgray | 2022-09-18 20:28:10 +0100

Fix missing newline in the options guide
This breaks the corresponding help dialog in small screens.
Bug introduced in f02deff4a79ecda93b89ecfb91e49eea323dc6f2.

--------------------------------------------------------------------------------
78081006d9 | Kate | 2022-09-18 20:25:35 +0100

Fix Golubria timers being stopped by terrain changes (#2728)
If all the existing passages of Golubria on a level were temporarily
removed (for example by casting Noxious Bog, or by an elemental wellspring
creating water), their timers wouldn't resume when the terrain expired and
they'd remain permanently (or until restarted by some other action such as
reloading the game or casting the spell again). Fix by reapplying the
relevant level state whenever any passages are created again.

Closes #2728.

--------------------------------------------------------------------------------
51eefa89be | advil | 2022-09-17 14:08:41 -0400

fix: remove a spurious file (Goratrix)
Thematic name, but no idea where this came from.

--------------------------------------------------------------------------------
90ed53a01c | advil | 2022-09-17 11:05:59 -0400

fix: tweak shapeshifter notes
* indicate known shapeshifters on seen notes in chardumps. (Note: this
  still doesn't apply to shifters that change out of LOS, their known
  flag gets dropped in this case)
* Reorder the "change" note and any following "seen" note, it makes more
  sense this way.

The ordering here seems to be a little bit delicate, so hopefully these
changes (especially the second one) doesn't have any further unexpected
side effects...

--------------------------------------------------------------------------------
91d0c66ccf | hellmonk | 2022-09-16 22:52:57 -0400

reduce static discharge damage
Still a bit too good with lower power cap.

--------------------------------------------------------------------------------
2a1322497e | advil | 2022-09-14 12:58:21 -0400

fix: mostly disable item actions in menu describe popups
The examine changes in 0.29 made it possible to get to describe popups
in basically every item-oriented menu, and by default, item actions were
enabled for these popups.  Aside from the regular inventory menu, these
actions are more weird than useful, and some are quite buggy (e.g.
(d)rop from the drop menu). In a few cases I can imagine these making
sense, but the describe popup action code is not very well suited to
custom item lists, so it is a lot more straightforward to simply blanket
disable for most InvMenus. Still enabled for regular inventory, and
stash menus (but in this case, only ground item actions show up).

Resolves #2713

--------------------------------------------------------------------------------
b27577e5d9 | Kate | 2022-09-13 20:45:13 +0100

Fix Arcjolt crashing on dismissed summons

--------------------------------------------------------------------------------
c8d74c9d4e | Kate | 2022-09-13 19:38:21 +0100

Show when monsters are hurt by Arcjolt

--------------------------------------------------------------------------------
ecb607e51a | Kate | 2022-09-13 19:30:34 +0100

Don't let Arcjolt travel through walls/out of LOS
Letting Arcjolt travel through metal walls is intended to be for theme
reasons but is inconsistent with how metal walls interact with other
lightning spells, and also allows damaging monsters inside vaults from
safety. Also fix the spell being able to continue past the caster's LOS.

--------------------------------------------------------------------------------
a018f8e90f | advil | 2022-09-12 20:46:10 -0400

fix: maybe quiet another gcc warning
A silly warning deserves a silly macro solution.

Resolves #2658, and half of #2673

--------------------------------------------------------------------------------
66a3b8458b | advil | 2022-09-12 20:38:26 -0400

fix: maybe quiet a gcc warning
These conditions on wchars were written in an overly involved way that
was preventing gcc from detecting that `key` was defined or unused for
every condition.

--------------------------------------------------------------------------------
3b1a8e4ee4 | advil | 2022-09-12 17:53:24 -0400

fix: use only annotated tags for version info
The new CI script for building debs uses an action that has a bug
whereby it can create a (lightweight) tag to hang files on in trunk,
independent of the current branch. This, unfortunately, has played havoc
with our versioning. And even more unfortunately, it does not appear
that a regular pull/fetch will ever remove stale local tags, so servers
need some workaround.

To fix this issue and also prevent it from happening again, this commit
changes the version scripts to use only annotated tags -- the release
guide explicitly uses annotated tags, and I think we have been pretty
consistent about it. This also seems more consistent with the intended
distinction here (from the git-tag man page, "Annotated tags are meant
for release while lightweight tags are meant for private or temporary
object labels"). Also, no one currently around can figure out why we are
using `--tags` in the version info in the first place, something which
appears to go back as far as 2f656a0430f3.

--------------------------------------------------------------------------------
95531337e3 | Nicholas Feinberg | 2022-09-12 13:13:32 -0700

Fix blastsparks + hop (Bardcore)

--------------------------------------------------------------------------------
744e84de5b | advil | 2022-09-12 10:04:14 -0400

feat: `tile_display_mode` for local tiles
This implements both hybrid and glyph mode for local tiles, in the
dungeon view only. Visually, the implementation matches webtiles
reasonably closely, including the awful square rendering in hybrid mode.
Glyphs mode is probably more accurately rendered than webtiles as it
uses some weird hacks to get the grid to exactly match the font size.
Unfortunately extending this to show glyphs in other contexts (sidebar,
popups, etc) is a fair amount more work, given the way this is all
implemented. (Overall, this is a much more involved patch than the
webtiles glyph implementation was, because local tiles defined out most
of the necessary info.)

This commit also fixes a bug in background rendering in local tiles
where the rectangle offset shouldn't have used the glyph offset.

--------------------------------------------------------------------------------
5625c4ed77 | advil | 2022-09-12 10:02:13 -0400

Revert "task: add a trunk reminder for the 0.29 tournament"
This reverts commit be8da3892a6db78639d8a0adbdc467c1312d330c.

--------------------------------------------------------------------------------
c3f1650bb9 | Nicholas Feinberg | 2022-09-11 21:16:19 -0700

Fix: don't place zombies without attacks
For example, via Kiku's Unearth Wretches.

--------------------------------------------------------------------------------
c067630892 | advil | 2022-09-11 22:08:08 -0400

fix: more AK tag_upgrade fixes

--------------------------------------------------------------------------------
1eb3269233 | hellmonk3 | 2022-09-11 21:50:38 -0400

remove grunt_zot_stairs_overgrown
This vault was spoilery, weird, and not very good by modern crawl standards.
--------------------------------------------------------------------------------
367992a1e3 | hellmonk3 | 2022-09-11 21:49:33 -0400

 feat: New early unrand, the Hermit's pendant
An amulet of faith that sets your invocations skill to 14 and evocations skill

to 0 while worn. Description by Pleasingungus, tile by Sastreii.
--------------------------------------------------------------------------------
fa959c11ff | hellmonk3 | 2022-09-11 21:31:25 -0400

nerf Simulacrum
The power scaling was a bit too good.
--------------------------------------------------------------------------------
7436db4de4 | hellmonk3 | 2022-09-11 21:30:03 -0400

rework Ignacio spawn rate (#2719)
Rather than scaling with runes just do a flat 10% per pan floor in games where

he spawns. Let people actually see the lad.
--------------------------------------------------------------------------------
2fa46d2e7a | hellmonk3 | 2022-09-11 20:52:19 -0400

feat: Allow branded quickblade generation
seems to be disallowed for legacy reasons; quickblades are already quite rare

so it seems fine to allow eg acquiring a branded one.
--------------------------------------------------------------------------------
0feb890e1c | advil | 2022-09-11 20:49:01 -0400

fix: fully remove AK from job selection
It was still possible to choose AK by doing jobs first, but then you
could only pick species randomly and got converted to a monk on game
start. This commit will also fix a tag_upgrade build failure.

--------------------------------------------------------------------------------
8307c4eb84 | advil | 2022-09-11 20:45:48 -0400

fix: webtiles build?
e63b5e06755426 commented out `TILEP_PART_DRCHEAD` with a note, but doing
this prevents webtiles from building. If this part of e63b5e06 were to
be reverted, this commit should be reverted too.

--------------------------------------------------------------------------------
a6dd27ae95 | advil | 2022-09-11 20:33:53 -0400

feat: show range in scorch targeter
This was implicit, in that out-of-range enemies wouldn't highlight, but
it's still very useful ui feedback to so out-of-range squares grayed
out.

This commit also refactors so that scorch directly uses the targeter
when choosing targets, and there is therefore only one code path for ui
and actual casting.

--------------------------------------------------------------------------------
a887aabcbf | hellmonk3 | 2022-09-11 20:20:31 -0400

feat: Upgrade dk_xom_monty_hall
The iguana wasn't much of a "prize" compared to the jellies. Upgrade it to a

friendly goblin, with the bonus of matching xom's friendship vault lore.
--------------------------------------------------------------------------------
3b22beffe7 | robertxgray | 2022-09-11 20:17:23 -0400

Add the developer name to the metainfo

--------------------------------------------------------------------------------
921e097f49 | robertxgray | 2022-09-11 20:17:23 -0400

Build debian packages using github actions
The script debian_changelog.py checks if the latest version in
debian/changelog is the same as the release. If they are not the same,
then an automatic entry is added:

crawl (2:0.99.0-1) unstable; urgency=low

  * New upstream release.
 -- Crawl bot <bot@crawl.develz.org>  Mon, 01 Jan 2022 12:12:12 +0000

--------------------------------------------------------------------------------
2701b9a906 | robertxgray | 2022-09-11 20:17:23 -0400

New XDG_NAME build variable
This variable configures the XDG resource names.
The default names are:
  - org.develz.Crawl_console (console build)
  - org.develz.Crawl_tiles (tiles build)

--------------------------------------------------------------------------------
6869e69685 | robertxgray | 2022-09-11 20:17:23 -0400

Configure GitHub Actions for AppImage builds

--------------------------------------------------------------------------------
8c09ba367f | robertxgray | 2022-09-11 20:17:23 -0400

Update AppImage and AppStream - AppImage: Fix missing fonts - AppImage: Prepare 
files for GitHub Actions - AppStream: Use reverse domain names as identifiers - 
AppStream: Add content rating

--------------------------------------------------------------------------------
9bf192ea13 | robertxgray | 2022-09-11 20:17:23 -0400

Fix some paths on AppImage builds GAME is used to set the name of the 
executable. Define SAVEDIR because the current path is used otherwise.

--------------------------------------------------------------------------------
b3285335bf | robertxgray | 2022-09-11 20:17:23 -0400

Standardize Linux packages
- New build target: install-xdg-data. Installs some files required by
  Linux packages according to the XDG specifications (freedesktop.org).
  Related resources stored in crawl-ref/source/xdg-data

- New build target: appimage. Builds a Linux AppImage with the help of
  the install-xdg-data target and the linuxdeploy tool.

- Debian build updated to make use of the install-xdg-data target.
  Common files have been removed from the debian folder.
  Fixed missing icon in crawl menu item if crawl-tiles is not installed.
  Use Debian's uses machine-readable format for copyright file.
  Remove menu files based on CTTE #741573.

- Documentation and man page updated.

Closes #464
Closes #1256
Closes #2049

--------------------------------------------------------------------------------
9ddfead1bb | mainiacjoe | 2022-09-11 20:14:43 -0400

Permit a Temple map to actually be placed. (#2688)
I suspect this TAG typo is preventing the level builder from choosing this map.
--------------------------------------------------------------------------------
4cabb3c838 | Nicholas Feinberg | 2022-09-11 16:21:10 -0700

Fix the build..?

--------------------------------------------------------------------------------
82223dbcf9 | Nicholas Feinberg | 2022-09-11 16:00:18 -0700

Add rF- and rC- badmuts to the general pool
These are impactful without being crippling, and change the way that
you evaluate threats. Let people enjoy these without having to get
Qazlal wrath first!

Getting rF- from an OOF is rough, but so are a lot of malmuts. Players
will figure things out. :)

--------------------------------------------------------------------------------
cc36c8f8a0 | Nicholas Feinberg | 2022-09-11 15:11:23 -0700

Remove conjure flame further
MMaybe fix the tag-upgrade build?

--------------------------------------------------------------------------------
26221c613b | Nicholas Feinberg | 2022-09-11 14:02:01 -0700

Readjust Manifold Assault
When I first created Manifold Assault, I intended for it to be an
incentive for 'melee' characters to hybridize. In practice, it's
mostly used by transmuters, since they don't have to balance the
costs of getting a spell castable in armour. It's popular there, and
that's fine, but the original design goal isn't being accomplished.

So, lower Manifold Assault to L4 (from L5), and make it hit half as
many targets when used with UC. (It's hard to send your own limbs
through twisty space without breaking em!) We'll see how this does.

It might be cooler for this to apply contam on cast with UC instead
(per ebering). I may revise this.

--------------------------------------------------------------------------------
ed78777e1f | Nicholas Feinberg | 2022-09-11 13:56:25 -0700

Fix Hexslinger abbrev (elliptic)

--------------------------------------------------------------------------------
bfaf442b86 | Nicholas Feinberg | 2022-09-11 13:55:23 -0700

Actually add Arcjolt tile
Oops...

--------------------------------------------------------------------------------
e63b5e0675 | Nicholas Feinberg | 2022-09-11 13:55:19 -0700

Remove Abyssal Knight
Dungeon Crawl once had many, many zealot backgrounds. The dev team
has been steadily moving away from this, because picking a god is a
big, interesting, exciting moment in each game. A zealot start has to
do something really valuable to justify taking that away.

Historically, abyssal knights' big thing was starting in the abyss. This
was a fun little minigame, a bit like delver - the bold could wander a
bit to try to pick up an extra scroll or potion, the reasonable could
race for the exit, and then you could start a normal game. It was a little
taste of something different, especially for newer players.

However, a series of changes have steadily eroded that experience. Items
no longer generate in the Abyss, and you now start on the exit. The correct
move is almost always to hit > immediately. It's a nothingburger. Sad!

Removing Abyssal Knight from the starting backgrounds allows us to make
Lugonu much stronger. Altars to Lugonu scattered around the Abyss are meant
as an incentive to worship, but the consequences of your old god's wrath
are harsh enough that it's rarely right to do so, and it also feels bad -
if you wanted to play a Lugonu worshipper, you'd just start AK! We can now
(in subsequent commits) fix both problems.

Last and certainly least, this means that adding another background to the
centre column of the background picker doesn't add a new row to the display.
:)

Closes #2689.

--------------------------------------------------------------------------------
06a4886a65 | Nicholas Feinberg | 2022-09-11 13:54:21 -0700

Add Arcjolt tile (Sastreii)

--------------------------------------------------------------------------------
2207dc9a4c | Nicholas Feinberg | 2022-09-11 13:48:29 -0700

Allow Spellforged Servitors to cast Arcjolt

--------------------------------------------------------------------------------
2fb67d7a0d | Nicholas Feinberg | 2022-09-11 13:48:26 -0700

New spell: Arcjolt (L5 Conj/Air)
Fires an electrical blast that hits everything adjacent to you,
adjacent to creatures adjacent to you, etc, etc, up to the spell's
range. It also goes through metal walls, for theme reason. Damage
is exactly Fireball's, but ignoring half AC and higher variance.
(This may be too strong - my feeling is that the targeting is more
restrictive, but I could be wrong.)

No big design goal, it just seems fun.

--------------------------------------------------------------------------------
5a0acc285a | Nicholas Feinberg | 2022-09-11 13:46:45 -0700

Add missing blastsparks art
Oops!

--------------------------------------------------------------------------------
7e3f6f0d8d | Nicholas Feinberg | 2022-09-11 13:44:03 -0700

Rename Arcane Marksman to Hexslinger
Arcane Markspersons have very long and clunky name, which also reads as
weirdly gendered/anthrocentric. For the sake of the octopodes among us,
rename to the sexier name of 'Hexslinger'. It's a pun!

Other names considered:
- Archer-Mage
- Arcane Sniper
- Hexbow

--------------------------------------------------------------------------------
ed66197fdc | Nicholas Feinberg | 2022-09-11 13:40:02 -0700

Reduce salamander base damage
Again, per 71f743befe3 but without the math.

--------------------------------------------------------------------------------
db108d344f | Nicholas Feinberg | 2022-09-11 13:40:02 -0700

Reduce shock serpent retaliation damage by 25%
Try to make them a little less punishing to fight.

--------------------------------------------------------------------------------
f5932fce55 | Nicholas Feinberg | 2022-09-11 13:40:02 -0700

Reduce orc knight and orc warlord damage
Per 71f743befe3, but without the meticulous mathmetical analysis.

--------------------------------------------------------------------------------
97a1fe776a | Nicholas Feinberg | 2022-09-11 13:40:02 -0700

Pull naga warriors back further
Even after 76187f39e07, they remain an overwhelmingly dominant Snake
and indeed midgame killer. Cut off a few hp and points of base damage.

--------------------------------------------------------------------------------
e50850e3d0 | Nicholas Feinberg | 2022-09-11 13:40:02 -0700

Reduce boulder beetle damage somewhat
They're a fast-moving, tough enemy for their depth. Reduce their damage
from 32 to a more aesthetically pleasing 27 to give players a little
more wiggle room when dealing with them.

--------------------------------------------------------------------------------
189654fd88 | Nicholas Feinberg | 2022-09-11 13:40:02 -0700

Reduce orc warrior damage again
In 6e9d80e302b, orc warrior damage was reduced to partially compensate
for the attack speed changes in 581982f5c1d5 and the weapon damage
increase in d9c6a3bf672d99. This was not really a full compensation,
though. Comparison for the three most common orc warrior weapons (by killcount):

0.26:
         Dam/Hit   Delay   Dam/Aut
War Axe  30        12.5    24
Halberd  32        12.5    25
Glaive   34        13.5    26

0.27:
         Dam/Hit   Delay   Dam/Aut
War Axe  26        10      26
Halberd  28        10      28
Glaive   30        10      30

That is, ignoring AC (which we shouldn't), damage over time was higher across
the board in 0.27 onward.

To compensate, knock 3 damage back off orc warrior.

--------------------------------------------------------------------------------
41f77ac28b | Nicholas Feinberg | 2022-09-11 13:40:02 -0700

Reduce two-headed ogre damage somewhat
Their damage was increased along with their attack delay, but they're
getting somewhat too many kills now. Let's pull that back down now, and
add a pleasing symmetry with one-headed ogre attack damage while we're
at it.

--------------------------------------------------------------------------------
b375b1e849 | Nicholas Feinberg | 2022-09-11 13:40:02 -0700

Move hydras a little deeper
In D and Lair: they're iconic, but getting too many kills. Scootch em
a floor or two deeper, to give players more time to gear up and prep.

--------------------------------------------------------------------------------
a70db94c74 | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

New draconian tiles (Sastreii)

--------------------------------------------------------------------------------
7e7a2aba73 | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

Remove the MP cost from evoke blink/invisibility
Redundant with their newer drawbacks (-Blink and Drain respectively),
and felt weird with the Drain-on-failure of Invis particularly. Adds
more of a reason to care about +Blink even if you have the spell castable,
since it now works when you're out of MP.

--------------------------------------------------------------------------------
13bd0ecfb8 | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

Autoshoot when bumping with a ranged weapon
Extremely annoying to play ranged characters and get randomly prompted.

--------------------------------------------------------------------------------
cf644656b2 | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

Give unrands their own colour
Teal (per nicolae/ebering), to help players keep an eye out for really
special unique properties.

--------------------------------------------------------------------------------
e5bca228d6 | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

Give mummies innate Faith (Lici)
Mummies have never had a really fun distinct playstyle, and the loss of
food made that even more obvious. Give them something new and fun to
play with: innate Faith, equivalent to always wearing the corresponding
amulet.

--------------------------------------------------------------------------------
95544447e1 | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

Make walking tomes silenceable
Consider them to be reading their spells. It seems good for
them to have more weaknesses, and makes some sense in terms
of consistency that spells in spellbooks do need to be verbally
read to take effect.

--------------------------------------------------------------------------------
0aaa971b33 | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

Show possibilities for faded altars
Ecumenical (aka faded) altars are intended to increase the
variety of the game, by encouraging players to take a risk
(get an unknown god) in exchange for an upside (earlier god,
small piety or other bonus).

There are a few problems with the design, however. Proper play
requires thinking about all ~25 possible gods you could get,
which is both overwhelming if done seriously, and often bad
enough (in the worst case) to discourage altar use entirely. It's
also discouraging for those who really dislike certain gods.

Instead, let's show a preview of three possible gods you might
get, similar to how /polymorph now works. Players can now see
a description of each god (reducing the barrier to entry for
newer players), and then get one randomly.

--------------------------------------------------------------------------------
b03bc503e8 | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

Make batty monsters their own BEH (acrobat)
So that it's possible to see when batty monsters are unaware of the
player, make 'batty' and 'wandering' separate states. This is probably
buggy.

--------------------------------------------------------------------------------
421d095d5f | Nicholas Feinberg | 2022-09-11 13:39:26 -0700

Reduce short sword base delay (elliptic)
Early-game compensation for the damage reduction in e8845773e3cb.

--------------------------------------------------------------------------------
5f81fb4344 | Nicholas Feinberg | 2022-09-11 13:39:25 -0700

Add UC damage ratings in the @ UI
By overwhelming popular demand.

Would love to plop em somewhere more visible, maybe in a new tab of %.

--------------------------------------------------------------------------------
4715a6a9d8 | Nicholas Feinberg | 2022-09-11 13:39:25 -0700

Add tiles for Kindle Blastsparks (Sastreii)

--------------------------------------------------------------------------------
638e43912b | Nicholas Feinberg | 2022-09-11 13:39:25 -0700

Remove Corpse Rot
Corpse Rot has been a troubled spell for quite a long time. We've
gone through many iterations on it, and few have made players happy.
Let's hope Cigotuvi's Dreadful Rot has a better run at it.

Also rewrite Kiku gift code.

--------------------------------------------------------------------------------
522f029d39 | Nicholas Feinberg | 2022-09-11 13:39:25 -0700

Remove Conjure Flame
As discussed in the preceding commits, Conjure Flame was a cool and
powerful spell, but the 'ember' mechanic (necessary for balance purposes)
was confusing and frustrating for players. Hopefully Kindle Blastsparks
and Cigotuvi's Dreadful Rot will together fill its niche.

--------------------------------------------------------------------------------
08ca5ef3b5 | Nicholas Feinberg | 2022-09-11 13:39:25 -0700

New spell: Cigotuvi's Dreadful Rot (L2 Nec/Air/Pois)
Part B of the plan to replace Conjure Flame and Corpse Rot, Cigotuvi's
Dreadful Rot plops a single-tile cloud of miasma onto the caster and
drains them. (Your flesh rots into miasma!) You get one turn of miasma
immunity, but after that, if you're not undead, you'd better hustle out
of there. Cloud duration scales with power. (The drain is because this is
a very strong effect.)

Any creature which is vulnerable to miasma avoids it for dear life, so
it's a great way to make some space if you're in a jam. If you have some
way to trick monsters into it, though - Gell's Gravitas, Lesser Beckoning,
potions of attraction, orbs of mayhem... well, they're in for a bad time!
It's also hilariously good against Robin specifically.

The hope is that this will be more intuitive than Conjure Flame (with its
delayed 'embers' that monsters stomp on), and won't have the self-buff or
positioning issues of Corpse Rot. Also it hopefully won't be wildly
overpowered. Let's try it!

Replaces Conjure Flame in the Hedge Wizard start. Also available as a Kiku
gift.

--------------------------------------------------------------------------------
debd7cae40 | Nicholas Feinberg | 2022-09-11 13:39:25 -0700

New spell: Kindle Blastsparks (L3 Fire/Air/Tloc)
Conjure Flame is a strong effect, but the current incarnation has
proven confusing and unintuitive for players. Let's try something a
little bit different.

Kindle Blastsparks creates a cloud of blastsparks on the caster's tile.
When any creature moves *into* that cloud (eg a monster chasing the
caster), or when that cloud is hit by fire damage (fireball, wand of
flame, etc), it explodes in a 3x3 blast. The blast does low damage, but
it also knocks back any creature not at its center, pushing them away.
This allows for a whole bunch of cute tricks.

Damage currently scales with power from 2d10 to 2d18ish. If players often
find it undesirable to increase power, because they'd rather blast
themselves as a cheeky movement trick, then we can instead scale cloud dur
or knockback chance on power.

Replaces Conjure Flame in the FE start book. It's a bit unsynergistic
with HW's spells (imp, meph...), so I want to do something else there.

--------------------------------------------------------------------------------
c0703345a7 | Nicholas Feinberg | 2022-09-10 15:34:52 -0700

More simulacrum tiles (Sastreii)
For X-shaped monsters and orb-shaped monsters.

--------------------------------------------------------------------------------
8b159a9891 | Nicholas Feinberg | 2022-09-09 22:22:48 -0700

Fix: don't mark ?poison dangerous under Q (ThMeInTeam)
Or with the robe of clouds.

--------------------------------------------------------------------------------
e6a4009bfd | Nicholas Feinberg | 2022-09-09 20:37:27 -0700

Tweak hand crossbow stats
Increase base delay by 1 point. In general, we have 1-handed weapons
take less skill than 2-handed weapons, since players need some XP to
invest in Shields with, but we also have ranged weapons take a bit
more skill than comparable melee weapons, since melee weapons also
need XP for a ranged option (throwing, evo, invo, etc). A hand crossbow
is along the same lines as a double sword or eveningstar (16 skill to
mindelay), so set its base delay a little higher, requiring 18 skill.

Decrease base damage by 1 point, to 16. This is mostly so people feel
happier that an arbalest does more damage than a hand crossbow. (But
maybe we should rename it to 'hand cannon' anyway.)

--------------------------------------------------------------------------------
90e3122c3a | advil | 2022-09-08 09:01:21 -0400

fix: add a multidrop sanity check

--------------------------------------------------------------------------------
2e61a25929 | advil | 2022-09-06 13:49:45 -0400

fix: sync webtiles hover on UseItemMenu `,`
This completely overrides the superclass code, and so needs to duplicate
the webtiles sync call. (Without this, `,` left the webtiles hover on a
header, even though the crawl binary had the correct position.)

--------------------------------------------------------------------------------
d67112afd3 | advil | 2022-09-06 13:46:10 -0400

fix: suppress initial mouse hover on menu display
If the mouse cursor is over a hoverable menu item when a menu pops up,
even if it isn't currently visible, a mouseenter event is generated.
This can lead to fairly unintuitive initial selections if the mouse is
in the wrong place. This commit suppresses hover entirely on initial
display. It might be nice to do this in a slightly more nuanced way, but
I think this commit is a net improvement.

--------------------------------------------------------------------------------
86a8295270 | Nicholas Feinberg | 2022-09-05 15:21:11 -0700

Maybe fix the famous serpent's lash mimic bug
Check for mimics on entering a space, not at end of turn. Is this right?
Who knows.

--------------------------------------------------------------------------------
784eafce7f | Nicholas Feinberg | 2022-09-04 21:50:15 -0700

Clarify effects of Strength (acrobat)

--------------------------------------------------------------------------------
b2d611f6b1 | advil | 2022-09-02 09:08:51 -0400

fix: remove an unnecessary game links optimization
As a bonus, this change makes it a lot easier to customize game links.

--------------------------------------------------------------------------------
1cef19eb02 | Kate | 2022-09-01 21:33:25 +0100

Fix Natasha respawning as neutral when dying while frenzied

--------------------------------------------------------------------------------
86fc33db47 | Kate | 2022-09-01 21:33:18 +0100

Fix frenzied and non-frenzied slime creatures merging

--------------------------------------------------------------------------------
e5163829ff | advil | 2022-09-01 14:09:59 -0400

fix: relocate an item use check
I thought I was being clever to centralize this check, but without some
more refactoring it needs to be done in operation-specific code.  This
commit prevents crashes when wielding/wearing floor items with a full
inventory (jewellery was already ok).

--------------------------------------------------------------------------------
5a63ccc183 | advil | 2022-09-01 00:29:56 -0400

fix: get equip menu mode toggling to fully work
This was missing the part that actually let this work, sigh. This
implementation is kind of brute force, in order to get something at all
to work.

--------------------------------------------------------------------------------
c6058ea1ff | advil | 2022-08-31 23:42:59 -0400

fix: item type changing for read/drink menu
This was somewhat embarassingly broken as initially implemented. This
commit is a quick pass to get it to work, but this would need some
refining.

--------------------------------------------------------------------------------
ec41be8ddc | advil | 2022-08-31 20:54:24 -0400

fix: some empty menu crashes

--------------------------------------------------------------------------------
bbf338a72c | advil | 2022-08-30 08:38:05 -0400

fix: explicitly handle a webtiles error case
Occasional exceptions like:

2022-08-30 05:12:17,081 WARN: #5978  Error while handling JSON message 
(''{"has_focus":true,"generation_id":null,"widget_id"'...')!
Traceback (most recent call last):
  File "/chroot/crawl-master/webserver/webtiles/ws_handler.py", line 1104, in 
on_message
    self.process.handle_input(message)
  File "/chroot/crawl-master/webserver/webtiles/process_handler.py", line 923, 
in handle_input
    self.conn.send_message(utf8(msg))
  File "/chroot/crawl-master/webserver/webtiles/util.py", line 89, in wrapped
    return f(*args, **kwargs)
  File "/chroot/crawl-master/webserver/webtiles/connection.py", line 113, in 
send_message
    self.socket.sendto(utf8(data), self.crawl_socketpath)
FileNotFoundError: [Errno 2] No such file or directory

I'm not sure I exactly understand what is causing this (it seems to be
the same connection repeatedly), but this commit causes the socket to
explicitly close when it does happen.

--------------------------------------------------------------------------------
f629c1b73e | robertxgray | 2022-08-30 01:37:06 +0200

Fix missing docs in Android build

--------------------------------------------------------------------------------
806c11bf1d | Nicholas Feinberg | 2022-08-29 07:30:52 -0700

Fix Artificer manual description (#2689)
They don't start with a short sword anymore!

--------------------------------------------------------------------------------
b3c18b1f4e | Nicholas Feinberg | 2022-08-29 07:30:52 -0700

Fix: make rC+++ monsters immune to Refrig again
Broken in aed3a0c8d8a132d27718dec265e5da983d5dda97 . I forgot how
monster resists worked.

--------------------------------------------------------------------------------
c6d0f036a7 | Kate | 2022-08-28 23:20:42 +0100

Fix monsters not waking up when resisting mass enchantments
Monsters that are completely immune to any given mass enchantment still
won't necessarily be alerted by them, but any monster that resists Cause
Fear, Anguish or Discord will now properly wake up.

--------------------------------------------------------------------------------
20e1baf61b | robertxgray | 2022-08-28 22:55:36 +0200

Update Android build to 0.29
- Remove ammunition from the small layout.
- Add zot.cc to the native source files list.

--------------------------------------------------------------------------------
0dbf925e60 | robertxgray | 2022-08-28 21:42:59 +0200

Merge branch 'master-upstream'

--------------------------------------------------------------------------------
cf5b79f35d | robertxgray | 2022-08-28 21:31:30 +0200

Minor Android changes
- Fix some graphical errors when rotating and/or resuming the app.
- Move staircase keys in numeric keyboard to match the upper keyboard.
- Update gradle.

--------------------------------------------------------------------------------
42789b21ef | Nicholas Feinberg | 2022-08-27 22:28:52 -0700

Restrict lemuel geyser map depths
To D:11-. Nasty autoexplore trap earlier. Still a little bit later,
so maybe we should do something more with these.

--------------------------------------------------------------------------------
0dc136218d | robertxgray | 2022-08-27 22:57:01 +0200

Toggle tab icons is Android exclusive
This function is unlikely to be useful in other platforms and may
confuse users swapping between layouts.

--------------------------------------------------------------------------------
d07543615f | robertxgray | 2022-08-27 22:56:46 +0200

Rename option: tile_window_minimum => tile_window_limit_size
I think the old name was a bit confusing.

--------------------------------------------------------------------------------
fd59ed72b1 | robertxgray | 2022-08-27 22:56:35 +0200

Responsive layout
The local tiles interface is now able to change between the normal
and small layouts as a response to a resize event.

Android devices continue using the small layout by default. Some
tablets and laptops may be big enough for the normal layout, but
more testing is required.

Other devices use the small layout only when the available size
is too small for the normal layout.

--------------------------------------------------------------------------------
011bda1208 | Kate | 2022-08-27 17:15:36 +0100

Fix some unrand effects not scaling with time taken

--------------------------------------------------------------------------------
28f7cfb6c4 | Kate | 2022-08-27 17:15:36 +0100

Fix Wereblood shout chance not scaling with time taken

--------------------------------------------------------------------------------
372c29fc68 | Kate | 2022-08-27 17:15:36 +0100

Fix spacing

--------------------------------------------------------------------------------
86255a743f | Nicholas Feinberg | 2022-08-27 09:14:35 -0700

Fix shield delay description
They were incorrectly claiming to act like body armour wrt ranged weapon
attack speed.

--------------------------------------------------------------------------------
be8da3892a | gammafunk | 2022-08-26 15:20:46 -0500

task: add a trunk reminder for the 0.29 tournament

--------------------------------------------------------------------------------
695f716631 | advil | 2022-08-26 14:20:30 -0400

fix: one more blocking annotation
It's basically expected that this call will trigger a slow callback
alert; this keeps it from being attributed to something else.

--------------------------------------------------------------------------------
cfff12708b | advil | 2022-08-26 14:06:34 -0400

fix: unbreak slow callback logging
too quick cut & paste...

--------------------------------------------------------------------------------
743cabc681 | advil | 2022-08-26 10:40:00 -0400

fix: prevent massive strings in py27
I know I said that py27 is deprecated, but it's probably better not to
do it by making players lag. What was happening here is that the
annotate function gets called a lot and appends to a string, but without
the context manager in play, the string was never getting cleared,
amounting to a fairly rapid memory leak. At the rate this append
happens, this code was easily producing a string that hit memory limits,
and so I'm pretty sure once this happened each append would trigger a
non-trivial swap (and block). This commit refactors so that this
annotate call is a (nearly) noop in py27, and also adds in a truncation
sanity check (since this error case could still happen if this function
isn't called right).  Unfortunately I haven't figured out a more clever
/ elegant way to get username info into the slow callback messaging.

I've also simply removed the problem call, since it's better not to make
send_message heavy, and I believe the urgency of seeing usernames there
is removed by 5d08c370806fe (on CAO I'm currently never seeing blocking
in this function any more, which is what should be expected from now
on).

--------------------------------------------------------------------------------
cf6e50daae | advil | 2022-08-26 09:59:40 -0400

docs: separate changelog for the webtiles server
I've ended up writing out most of these in github issues at each
release, so it seems useful to reorganize this info into an actual
changelog that is stored in the repository. The main audience for this
changelog is server admins, and devs who don't normally work on the
server, so it is much more technically focused than the game changelog.
This commit goes back through my notes from these issues to fill in a
few past versions (I think basically to when I and aidanh started
actively working on the server, before this it was relatively dormant
except for bugfixes back to the original implementation). I expect I've
missed details for the old versions, though. The 0.29.0 notes are more
guaranteed to be complete.

(Also, I've taken this opportunity to impose some of my own aesthetic
changelog preferences here.)

--------------------------------------------------------------------------------
142975f185 | Nicholas Feinberg | 2022-08-24 22:29:05 -0700

Fix: ozo's fridge targeter + Hep (CarefulOdds)
Don't claim it'll damage Hep ancestors, Fed plants, etc.

--------------------------------------------------------------------------------
557434ed05 | Nicholas Feinberg | 2022-08-24 22:23:32 -0700

Cap Static Discharge power at 50 (hellmonk)
100 power is a lot for a level 2 spell.

--------------------------------------------------------------------------------
09854fe43d | hellmonk | 2022-08-24 22:11:15 -0400

feat: Adjust the silence spell
To make it a bit more attractive to characters with low spellpower, increase
the fixed portion of the duration and decrease the power-dependent portion.
Also, remove the casting noise (this doesn't do anything).

--------------------------------------------------------------------------------
93aa2d5b49 | advil | 2022-08-24 21:49:39 -0400

fix: mark more potential blocking functions in webtiles

--------------------------------------------------------------------------------
acc37e2db0 | advil | 2022-08-24 13:04:03 -0400

fix: don't crash on ' in pickup
sigh

--------------------------------------------------------------------------------
5e824e72be | advil | 2022-08-24 13:04:03 -0400

fix: fix a webtiles log message

--------------------------------------------------------------------------------
e60ba3568b | Nicholas Feinberg | 2022-08-23 20:18:39 -0700

Revert "Switch numpad 5 back to 'wait'"
Reverting and reverting in the widening gyre. The committer cannot hear
the player; the centre (of the numpad) cannot hold... chaos reigns.

This reverts commit 4c767a20b829d4591a964c99a805ecd90d16041d.

--------------------------------------------------------------------------------
64df0e423e | Nicholas Feinberg | 2022-08-23 20:17:40 -0700

Fix: no attacks of opportunity in Sanctuary (#2685)
Closes #2685.

--------------------------------------------------------------------------------
5d08c37080 | advil | 2022-08-23 17:24:19 -0400

fix: make webtiles UDS socket connection fully nonblocking
On linux (or at least CAO), if the socket buffer gets filled, the server
appears to just sleep for the timeout length, and then close the socket.
Since the timeout length is 10s, this badly lags the whole server, often
causing more timeouts. I'm not sure why this is happening -- it is not
the behavior that I would expect (rather, I'd expect it to block until
the crawl binary catches up on its input), but in any case, it is bad.
There is already code that handles just dropping input if the buffer
fills, so setting this to simple non-blocking at least works on CAO in
my testing.

--------------------------------------------------------------------------------
8e1c26396d | advil | 2022-08-23 16:17:40 -0400

fix: more webtiles logging

--------------------------------------------------------------------------------
e059d3dbb2 | advil | 2022-08-23 14:43:17 -0400

fix: mark some more potential blocking funs (webtiles)

--------------------------------------------------------------------------------
f9c0e7fdb7 | advil | 2022-08-23 14:20:41 -0400

fix: reorder CK_NUMPAD_5 binding
canonical binding needs to be last

--------------------------------------------------------------------------------
afde610a49 | Nicholas Feinberg | 2022-08-23 10:52:58 -0700

Fix a CREDIT per request

--------------------------------------------------------------------------------
9c555d0772 | advil | 2022-08-23 13:49:48 -0400

fix: eliminate some unnecessary disk i/o
This extra stat may or may not matter, but this function is definitely a
hotspot on cao.

--------------------------------------------------------------------------------
4cc3fdd212 | advil | 2022-08-23 12:24:20 -0400

feat: logging options for asyncio slow callbacks
The default debug mode for logging these is fairly useless (for our code
at least, it just reports the Tornado code as the problem), and is not
ideal for production either. This commit adapts code from the aiodebug
package to do lightweight logging to help find slow callbacks.
Unfortunately I don't think it is possible to detect hotspots, or at
least doing so requires much more advanced techniques than I know about,
so to look for blocking code you need to explicitly decorate relevant
functions or code. I've done some likely candidates in this commit.

This decorator is extremely lightweight, though it's still possible I
may need to reverse this part of the commit later.

--------------------------------------------------------------------------------
6d867f7e1d | advil | 2022-08-23 12:24:19 -0400

feat: load logging for webtiles
This is mainly for production debugging, and is spammy, so is disabled
by default. It responds to HUP.

--------------------------------------------------------------------------------
dcc30181a8 | Nicholas Feinberg | 2022-08-23 07:09:26 -0700

Consider rPois- enemies affected by ?poison (dilly)
oops

--------------------------------------------------------------------------------
d8047c6341 | Nicholas Feinberg | 2022-08-22 21:09:40 -0700

Fix: bring the eye of draining screen back
Oops!

--------------------------------------------------------------------------------
3885252ca9 | Nicholas Feinberg | 2022-08-22 20:48:13 -0700

New splash screen by PhilosopherOpposite
Licensed under CC0. Source: 
https://www.reddit.com/r/dcss/comments/wu6f2o/comment/ilcg25z/

--------------------------------------------------------------------------------
310bbde435 | Nicholas Feinberg | 2022-08-22 20:36:05 -0700

Fix: don't let lochaber axe go through grates (acrobat)

--------------------------------------------------------------------------------
4c767a20b8 | Nicholas Feinberg | 2022-08-22 20:27:39 -0700

Switch numpad 5 back to 'wait'
This is symmetric with the other numpad keys. Just as they spend one turn
moving in some direction, '5' spends one turn moving in no direction.

Partially reverts 0d6ea506dcc.

--------------------------------------------------------------------------------
cc983562f6 | Nicholas Feinberg | 2022-08-22 20:25:50 -0700

Fix Ozocubu's Refrigeration usefulness check (dilly)
If enemies were weaker than allies, it'd claim there were no targets
in range.

--------------------------------------------------------------------------------
94fe547ab8 | advil | 2022-08-22 11:16:49 -0400

fix: numpad keys at the `G` prompt (wheals)
These keys were working in some of the subprompts, but not the main
prompt.

--------------------------------------------------------------------------------
7c9e10e132 | advil | 2022-08-21 18:57:36 -0400

fix: adjust some numpad key behavior
This should enable NP enter as well as numpad scrolling in a bunch of
cases, including the main menu.

--------------------------------------------------------------------------------
3a90980b9d | Nicholas Feinberg | 2022-08-21 10:16:49 -0700

Fix Oka throwing weapon gift default force_more (Lici)
Broken in 9ffc8e8dbe0b832c.

--------------------------------------------------------------------------------
a7cffc901d | Nicholas Feinberg | 2022-08-19 21:34:51 -0700

Fix: give octopodes storm tentacles (dilly)

--------------------------------------------------------------------------------
c9032a9cac | advil | 2022-08-19 11:36:49 -0400

fix: unbreak change email/pw
This has apparently been broken since 45d3ea808a7ee. Possibly most
webtiles servers haven't been restarted since then? Anyways, I only got
a report about this today.

--------------------------------------------------------------------------------
f48d83f5e2 | advil | 2022-08-18 18:24:55 -0400

fix: add a try...except block in the terminal handler
I'm seeing OSErrors on disconnect on this call on CAO in py3. I'm not
entirely sure why this isn't happening on my test device, but I'm pretty
sure it's simply that a read ends up timed badly with respect to the
crawl process ending. Also looks like CBR2 is doing this, so it's
probably a linux thing. So, treat it like an error flag.

--------------------------------------------------------------------------------
69b7b797bf | Nicholas Feinberg | 2022-08-18 14:43:18 -0700

Fix: changelog but but (Ge0ff)
And remove Lair:6 again.

--------------------------------------------------------------------------------
844d9cd41c | advil | 2022-08-18 16:49:09 -0400

docs: update changelog
* reorder sections alphabetically
* mention a new local tiles option

--------------------------------------------------------------------------------
1d49662b45 | advil | 2022-08-18 12:11:56 -0400

fix: don't show (g)oto for cases where travel will fail
Use a previously static travel check.  I'm really surprised I couldn't
find an already-existing public function along these lines, so maybe I
missed something. (Though, the usual check for a visible monster and
then fedhas passthrough + maybe other stuff is done manually in a really
large number of cases, so maybe not.)

--------------------------------------------------------------------------------
e58dc06b8e | advil | 2022-08-18 12:11:56 -0400

fix: exit conditions for full_describe_square
Mentioned in https://crawl.develz.org/mantis/view.php?id=12687

--------------------------------------------------------------------------------
47a6bb87d6 | Nicholas Feinberg | 2022-08-17 22:04:29 -0700

Fix: remove those those (FizzleBang)

--------------------------------------------------------------------------------
5fe6d566dd | advil | 2022-08-17 22:17:31 -0400

fix: make frog hop targeting exactly match fuzzing
Previously, targeting was affected weirdly by statues (see mantis
12697), because it inherited some incorrect logic from explosions. It
may have been possible to fix this simply, by changing a param in the
beam call, but I have done something a bit more ambitious: this commit
uses the exact same targeter code for both targeting and the fuzzing
itself.  Along the way it adds some more generally useful infrastructure
for doing this kind of thing, in particular, a subclass of
rectangle_iterator designed for iterating over affected squares of a
targeter.

(Also, replace a static that annoyed me in targeting code with an actual
copy constructor on FixedArray.)

--------------------------------------------------------------------------------
509654366e | advil | 2022-08-17 19:37:15 -0400

fix: send signed Xom piety to webtiles
This was maxed against 0 and then cast to an unsigned int on top of that
making it very hard to know if you are Xom's special toy on webtiles.

Followup to a1f3fc70dd8b21 which at least sent the value to webtiles,
but missed the sign issue. Resolves
https://crawl.develz.org/mantis/view.php?id=12565 and probably some
closed stuff, including #2186.

--------------------------------------------------------------------------------
24050441d8 | advil | 2022-08-17 19:21:31 -0400

fix: don't tell players they are already flying
Resolves https://crawl.develz.org/mantis/view.php?id=12700

--------------------------------------------------------------------------------
bc57f8fbdb | advil | 2022-08-17 15:56:06 -0400

fix: let CMD_MENU_EXAMINE on right click work in webtiles
I noticed while updating the changelog that I had missed this. Hopefully
not too much of a feature to be adding this late...

--------------------------------------------------------------------------------
ad17d311a4 | advil | 2022-08-17 15:35:15 -0400

fix: WJC extra spacing
As implemented, webtiles needs the binary to be sending preformatted
text for any extra screens, but getLongDescription unwraps by default.
(The diagrams were saved because indentation also indicates
preformatting.)

Also, adjust spacing of the text w.r.t. the diagrams, and fix some bad
linebreaking.

Resolves #2648

--------------------------------------------------------------------------------
5abcae952a | advil | 2022-08-17 15:01:11 -0400

docs: changelog tweaks
Mostly misc UI things.

--------------------------------------------------------------------------------
6eeae00818 | advil | 2022-08-17 14:28:44 -0400

build: bump CI actions/cache version

--------------------------------------------------------------------------------
31cfa1876a | advil | 2022-08-17 14:28:44 -0400

build: use pkg-config for rltiles cross-compiling on mac
When building a universal binary or cross-compiling, this tool needs to
avoid being linked to a cross-compiled libpng dep for the other
architecture. Following the approach used for windows cross-compiling,
we just force the issue with pkg-config. This adds some extra deps to
the mac release build, but most people doing that will have them already
satisfied or easily be able to add them via homebrew or macports.

--------------------------------------------------------------------------------
1249214d54 | advil | 2022-08-17 14:28:44 -0400

build: fix use of DEPCXX when cross-compiling on mac
This code from old universal binaries was breaking current universal
binaries, by passing the wrong `-target` to rltiles via DEPCXX. This was
masked on my M1 test machine because the x86 `tilegen.elf` just ran
under rosetta.

--------------------------------------------------------------------------------
7a48c89a40 | advil | 2022-08-17 14:28:44 -0400

build: try universal builds again
Runners that support cross-compiling are now available, so let's try
that out in CI. It is fairly excruciatingly slow with an empty cache, so
it may end up being necessary to disable this by default just for the
sake of CI not taking forever. But maybe with caching it'll be ok.

--------------------------------------------------------------------------------
4018c0d16e | Nicholas Feinberg | 2022-08-17 10:14:13 -0700

Clarify TLA mechanics (FizzBang)

--------------------------------------------------------------------------------
e7f5c69dce | Nicholas Feinberg | 2022-08-17 10:07:12 -0700

Make enemies more reluctant to enter poison clouds
They underestimated them pretty badly, which made scrolls of poison
much more lethal than was intended.

--------------------------------------------------------------------------------
6990b1bffc | patrick | 2022-08-16 17:09:53 -0400

Fix a typo in the Condemnation description
It is important to have consistent names for your archangels. One must
be conscientious of the lore.

--------------------------------------------------------------------------------
ee5d04aabb | Nicholas Feinberg | 2022-08-16 12:44:23 -0700

Halve Okawaru throwing gifts
By popular demand. It's been a bit excessive ever since other ammo
was removed.

Doing this via quantity, rather than via gift timer, to avoid messing
with the piety curve. Let's reconsider that later.

--------------------------------------------------------------------------------
9ffc8e8dbe | Nicholas Feinberg | 2022-08-16 12:44:23 -0700

Update Oka gift message (Bamboomancer)
Plus some comments.

--------------------------------------------------------------------------------
47afbbedbb | advil | 2022-08-16 15:15:26 -0400

lint: unbrace

--------------------------------------------------------------------------------
619dfb4ed5 | advil | 2022-08-16 13:40:13 -0400

fix: a very old off-by-one error in `join_the_dots`
I've convinced myself that this is not intentional, good to fix, and
safe to fix. We'll see -- this pathfinding method is heavily used. The
issue appears to originate from 883396a6ffc, and is that
`cur.insert(cur.begin() + random2(cur.size()), *ai);` cannot insert at
the end of `cur`. Since `cur` starts empty in the relevant loop, and at
most three things can be inserted, this insertion or the resulting
behavior is completely deterministic in a number of circumstances and at
least always deterministic in what the third element is if there are
three. The most visible one I am aware of was when pathfinding near a
masked region (a vault), if the path gets pushed N or S by a mask, and
needs to eventually get the other direction, emergent behavior can
(must?) cause the path to continue deterministically N or S until it
hits something (e.g. the map boundary), and then make a loop back, also
moving straight. This often looks quite weird, especially if there is a
long distance to the map boundary.  Example (I was able to replicate
this exact case using the seed and spent some time investigating it):

https://www.reddit.com/r/dcss/comments/wl9yrm/odd_shallow_water_formation_should
_i_be_looking/

This commit also includes some useful debug code that I wouldn't want to
write again, and tries to comment the pathfinding part of this algorithm
to the best of my understanding (it's odd). I've also isolated the rng
here, to try to control the impact of calling jtd and random draws
before and after for any future changes to this algorith (since it had a
very unpredictable effect due to the varying number of draws). This may
or may not be futile.

--------------------------------------------------------------------------------
7c58e119a4 | Alex Jurkiewicz | 2022-08-15 16:25:01 -0700

Remove unused variable
ui.cc:2174:9: warning: variable 'ew' set but not used 
[-Wunused-but-set-variable]
    int ew = 0;
        ^

--------------------------------------------------------------------------------
17b7e71a25 | Nikolai Lavsky | 2022-08-15 16:24:01 -0700

fix: don't offer Meteorae potion petitions with invisibility
Since Meteorae can become invisible only via the shadow form, there is
no point to offer them petitions with the invisibility potion.

--------------------------------------------------------------------------------
fc2ad454c0 | Nicholas Feinberg | 2022-08-15 16:23:21 -0700

Disable opportunity attacks when swapping
Since the enemy can't follow you directly anyway.

Probably this should also apply to moving out of a fedhas plant.

--------------------------------------------------------------------------------
9f74c4bd0f | Nicholas Feinberg | 2022-08-15 16:23:21 -0700

Turn sandblast into speedblast
Player feedback feels very strongly that 2x delay is too high. By
popular demand, let's try it at 1.5x delay instead.

--------------------------------------------------------------------------------
569b05d6ff | Rytis Petronis | 2022-08-14 23:08:34 -0700

Add sentei_temple_godly_chess chessboard temple for 17 gods
[ Committer's note: Closes #2636. Taught the gods a bit more opening
  theory. ]

--------------------------------------------------------------------------------
87b1fcd763 | Nicholas Feinberg | 2022-08-14 18:37:39 -0700

Put meteorans and palentongae in jail
Add them to a silly arrival vault, and remove dwarves again (rip).

--------------------------------------------------------------------------------
c98ce4fa87 | Nicholas Feinberg | 2022-08-14 18:35:08 -0700

New player species tiles (Sastreii)
Octopode, meteoran and palentonga. Vault only.

--------------------------------------------------------------------------------
074fecc49e | Nicholas Feinberg | 2022-08-14 18:25:40 -0700

Add a tiles section to the changelog

--------------------------------------------------------------------------------
fc20370e89 | Nicholas Feinberg | 2022-08-14 13:51:49 -0700

Fix changelog formatting

--------------------------------------------------------------------------------
ce01778f00 | Nicholas Feinberg | 2022-08-14 13:50:11 -0700

Remove Deep Dwarves (from the changelog) (Goratrix)

--------------------------------------------------------------------------------
d913b07440 | Nicholas Feinberg | 2022-08-14 11:24:53 -0700

Assorted changelog fixes and tweaks

--------------------------------------------------------------------------------
b5b6a5fa4f | Nicholas Feinberg | 2022-08-14 11:24:53 -0700

Cut Artificer iceblast starting charges (acrobat)
Nine /iceblast on d:1 was a bit much. Take it down to five.

--------------------------------------------------------------------------------
e50532568f | Edgar A. Bering IV | 2022-08-14 10:50:28 -0700

Revert "Simplify Drain Life logic"
This reverts commit 5bf4a2a1db00f9f780ff1542a8ce14cca4721bce.

The commit message says that players don't cast Drain Life anymore but
Yredelemnul's Drain Life ability still exists and uses SPELL_DRAIN_LIFE
under the hood.

--------------------------------------------------------------------------------
cbed440bb6 | Nicholas Feinberg | 2022-08-14 10:29:54 -0700

Docs: changelog through 0.29-a0-1033

--------------------------------------------------------------------------------
b6c65ffae6 | Nicholas Feinberg | 2022-08-13 18:10:34 -0700

Rephrase -Scroll/-Potion mutation desc (#2629)
Avoid use of the term 'threatened' where it would be ambiguous.

--------------------------------------------------------------------------------
2b1b757b24 | Nicholas Feinberg | 2022-08-13 18:03:08 -0700

Fix: don't "fizzle" on v-v (#2649)
This code is a nightmare.

Fixes #2649.

--------------------------------------------------------------------------------
489732b8f0 | Nicholas Feinberg | 2022-08-13 15:01:49 -0700

Don't consider all items to be in sets (Plaidstone)
oops

--------------------------------------------------------------------------------
f5f8719cae | gammafunk | 2022-08-13 16:10:09 -0500

fix: Correct tagging in an arrival vault (acrobat)
For kb_arrival_jail, this vault was only partially updated for species
removals and additions. It now has cells with no corresponding monster
that are also not appropriately tagged for no_tele_into and no_item_gen.
Fix this by putting in additional species monsters in the empty cells.
Some of the newer species monsters don't have appropriate tiles for use
as decorative monsters, but we'll hopefully be getting those soon.
Instead of resizing the vault only to revert that change later, fill the
empty cells with random species monsters that we can use. Also reglyph
the vault to use glyphs with no default definition.

--------------------------------------------------------------------------------
3196055cea | Nicholas Feinberg | 2022-08-13 13:59:36 -0700

Remove starting item spoilers
Don't allow players to determine which items from a given set will
spawn in a game by checking the 'unknown items' list after picking
an artificer, delver or wanderer.

--------------------------------------------------------------------------------
de8b1eb099 | Nicholas Feinberg | 2022-08-13 12:37:00 -0700

Tweak Ozocubu's Refrigeration damage further
To try to make the positional aspect of the spell's damage more
noticable, make the adjacency penalty for damage 2/3rds / 1/3rd for
1 / 2 adjacent creatures (was 3/4ths / 1/2).

--------------------------------------------------------------------------------
cd8c55af63 | advil | 2022-08-11 17:02:10 -0400

fix: correctly initialize seed info for ancient games
For games prior to `TAG_MINOR_SEEDS`, seed info was not getting set at
all. For games prior to `TAG_MINOR_GAMESEEDS`, they were incorrectly
getting the default value for deterministic_pregen (true).

--------------------------------------------------------------------------------
659819d403 | advil | 2022-08-11 14:26:14 -0400

fix: ancient save compat
The fixup in 83a48905f1 can lead to crashes on very old saves (testing
with a 0.11 save) because these props don't exist. Creating empty
versions seems to make things ok.

--------------------------------------------------------------------------------
cb49e86079 | advil | 2022-08-11 12:23:01 -0400

fix: fix exiting popup version of the yesno prompt
The popup version was exiting too vigorously, because of changes in how
keyhandling work. This commit brings its behavior more in line with the
message prompt version, where incorrect keys (I have restricted this to
just alpha keys) will now show an error message instead of exiting.

--------------------------------------------------------------------------------
ec03ce3624 | advil | 2022-08-11 11:59:32 -0400

fix: add a couple of !d checks
Resolves #985, and one was also missing from the describe popup drop
call. (For Reasons, `drop_item` itself does not perform this check, in
contrast to e.g. the wield call.)

--------------------------------------------------------------------------------
6ae1a4a2c7 | advil | 2022-08-10 14:08:46 -0400

fix: handle color in "Found..." messages correctly
This had two parts. First: the use of a closing tag in message.cc is
simply incorrect, on the current state of things -- colour strings are
valid without closing tags, though closing tags must match if present,
so wrapping an open and a closing tag around an arbitrary colour string
therefore does not guarantee a valid colour string (bug introduced in
ae15d2e64f).  This at long last resolves #1224. Second: using
`formatted_mpr` in the travel.cc for some "Found..." messages is
incompatible with consistent coloring given the current state of things,
because it eliminates any sense of a default color. So even with the
first fix, messages with sub-coloring were not affected correctly by a
`message_colour` rc line (e.g. when an un-id'd scroll was in the same
message as something else).

N.b. if `formatted_string` was refactored to use a more stack-like
representation internally, as in #1249, then the second fix at least
wouldn't be necessary.  However, that PR has been languishing for a long
time, and is a bit overkill for this bug in any case, given that the use
of formatted_mpr is extremely rare (maybe should be eliminated).

--------------------------------------------------------------------------------
3e17be3ea5 | advil | 2022-08-10 11:29:46 -0400

fix: remove an `mpr` overload in favor of `formatted_mpr`
These are redundant, and the `mpr` overload is used exactly once; I
think the `mpr` overload was only added (in dbf363a7764) because it's
easy to miss the existence of `formatted_mpr` (which is in a different
header). I have also prevented the implicit cast that led to the issue
in 6ad10583fd2.

The alternative, removing `formatted_mpr` and leaving only the overload,
is maybe simpler as an API, but `formatted_mpr` has a bunch more params
than regular `mpr`, and also I think it is worth someone knowing this
conversion is happening and handling it explicitly.

This commit reverts dbf363a776.

--------------------------------------------------------------------------------
eaf7ee7e1e | advil | 2022-08-10 11:02:37 -0400

fix: complicate to_colour_string defaults
Yet another adjustment to 29c30a7bfa8. That commit was really tailored
at dealing with passing information to webtiles as flat text. However,
to_colour_string is used internally in all sorts of places in ways that
are subtly affected by this change. Rather than try to rework those, I'm
semi-reverting 29c30a7bfa8 so that the default behavior is the same as
what it was prior to that commit, and mostly only webtiles uses of it
explicitly set a default color.

--------------------------------------------------------------------------------
4f9e239c0e | advil | 2022-08-09 20:47:27 -0400

fix: simplify some duplicated code

--------------------------------------------------------------------------------
84f7d21838 | advil | 2022-08-09 20:28:22 -0400

fix: various skill menu fixes
Mostly for the experience menu (see #2597), which was extremely broken
in autotraining mode.
1. In autotraining mode, use you.training for the !xp defaults (rather
   than every single skill)
2. Let any visible skill be selectable; previously, you could get a skill
   to show up under SKM_SHOW_DEFAULT and when toggled back to -, it
   would become unselectable (conspiring with 3 below) but still
   visible. This was doable in either manual mode or !xp mode.
3. Don't define SKM_HELP to coincide with the default value for
   `MenuItem::m_item_id`: this led by weird side effects to unselectable
   menu items (via 2) entering help mode. (Which to top it off, is
   not otherwise enabled in !xp mode and is somewhat buggy.)
4. Correctly implement selection cycling for numeric hotkeys

--------------------------------------------------------------------------------
6b6670bd90 | advil | 2022-08-09 12:20:35 -0400

fix: click handling in `InvMenu`s (Goratrix)
Yet another case where there are misc keys hardcoded that shouldn't be
(unfortunately this commit does not fix the overall problem). Also,
fixed some downcasting to an unsigned char for no good reason.

--------------------------------------------------------------------------------
091d24779b | advil | 2022-08-09 11:47:21 -0400

fix: clean up UseItemMenu mode code
Make this implementation slightly less brute force.  Also, add keyhelp,
and fix a local tiles visual bug in this menu.

--------------------------------------------------------------------------------
236c7fd91e | Nicholas Feinberg | 2022-08-08 21:26:42 -0700

Tweak weapon brand display (acrobat)
Do show venom brand in the damage rating, don't show dispersal.

--------------------------------------------------------------------------------
1598f19b23 | advil | 2022-08-08 22:42:34 -0400

fix: restore some fire inscription behavior
This code is all a bit messy, but this commit more or less brings
things back to what the manual says should happen. (E.g. you can
inscribe your silver javelins with =f to prevent autoquivering.)

Resolves #2418

--------------------------------------------------------------------------------
a8c0faee3b | advil | 2022-08-08 17:41:17 -0400

fix: maybe fix AltGr in local tiles
See #2623. I'm pretty sure the comment there that cf85d11 was
responsible is right, and this fix targets that issue. But, I don't have
a windows machine on hand to test. Also, alt handling got rewritten
somewhat since then so I don't know if the new code breaks it further.

What I can verify at least is that this all works correctly with mac alt
keys.

--------------------------------------------------------------------------------
0638b6a9f9 | advil | 2022-08-08 16:56:37 -0400

fix: don't generate empty extra religion screens in webtiles
More generally, don't insert a default <lightgray> in colour strings
unless the first op is a text op. This bug is continued fallout from
29c30a7. I think this fix probably subsumes edc2efc2671c but not
f9470816a (since blank colour strings will still get a default tag).

--------------------------------------------------------------------------------
5fcc5c1eac | advil | 2022-08-08 16:02:04 -0400

fix: implement local tiles menu clicking as clicking
Previously, clicking menu items was implemented via a key event using
the menu's hotkey. This implements a proper clicking interface. Because
CK_MOUSE_CLICK is sent by ui code on arbitrary clicks regardless of
location, I used the less common CK_MOUSE_B1 for clicks specifically on
a (selectable) menu item. Along the way I also implemented right click
to examine.

Resolves #2639

--------------------------------------------------------------------------------
8251ee3229 | advil | 2022-08-08 15:12:16 -0400

fix: numpad movement in local tiles
Partial revert of dbb8aaeb5fe9d6. I don't think I can entirely prevent
this from being returned in some circumstances, so I've just given up
and dealt with it in the menu code. What was happening is that two quick
events came in succession, the second suppressing the first, but the
`break` here sent processing back into a loop that needed another key to
break it.

Resolves #2644

--------------------------------------------------------------------------------
73cb963dcd | Nicholas Feinberg | 2022-08-08 10:17:51 -0700

Rework Gong description (Lici)
Avoid implying spirit shield?

--------------------------------------------------------------------------------
60c99734e7 | Nicholas Feinberg | 2022-08-07 13:43:14 -0700

Fix messages for unseen dream sheep (CarefulOdds)
You could be told about dream sheep sparkling even when you couldn't
actually see them. This is incredibly niche!

--------------------------------------------------------------------------------
949cc1d0fb | Nicholas Feinberg | 2022-08-06 13:48:58 -0700

Swap out AM ?vuln for ?poison
Scrolls of vulnerability were intended to provide an early game tool
to help Arcane Markspersons hex effectively, but early game enemies
have such low Will that vulnerability has little effect on them. Swap
it out for the newish Scroll of Poison, which should help them fight
foes at range.

--------------------------------------------------------------------------------
fab9b68f5b | Nicholas Feinberg | 2022-08-06 13:36:37 -0700

A tisket, a tasket, new tiles from (Sastreii)
Finisher, Jorgrun, and Octopode/Felid lichform.

--------------------------------------------------------------------------------
0dd7720b37 | Nicholas Feinberg | 2022-08-05 14:44:41 -0700

Fix a Zenata monspeak typo (ebird)

--------------------------------------------------------------------------------
6e1c3f9eef | Nicholas Feinberg | 2022-08-05 12:11:29 -0700

Update more things for deep abyss

--------------------------------------------------------------------------------
417cb75212 | Nicholas Feinberg | 2022-08-05 12:11:29 -0700

Fix deep abyss spawns
Don't exclude them from XP tracking, oops.

Also simplify and refactor logic generally.

--------------------------------------------------------------------------------
08a8388b2b | Nicholas Feinberg | 2022-08-05 12:11:29 -0700

Don't force alligators to always be patrolling
Added in 7d59d745cd3 (2010). The plan seems to have been to make
alligators 'semi-neutral' - they'd only attack if you came within
four spaces of them. As best I can tell, the latter part of this
plan was never implemented.

--------------------------------------------------------------------------------
3a827bf7a4 | Nicholas Feinberg | 2022-08-05 12:11:29 -0700

Deduplicate some abyss spawn logic

--------------------------------------------------------------------------------
36053be5b9 | Nicholas Feinberg | 2022-08-05 12:11:29 -0700

Decrease deep abyss exit spawn rate (Oneirical)
A bit too easy to dip in and out of Abyss:6-7 as desired.

--------------------------------------------------------------------------------
458353e8b9 | Nicholas Feinberg | 2022-08-05 12:11:29 -0700

Display current attack delay in weapon description
Oops, forgot to commit this after writing it up some days ago.

--------------------------------------------------------------------------------
f35a41adde | Nicholas Feinberg | 2022-08-05 12:11:29 -0700

Shift Frozen Ramparts damage later (acrobat)
Adding +6 damage to it when making it check AC made it quite a bit
too strong at low level. Reduce the base damage to 1 and increase
damage gained from spellpower by 50%.

--------------------------------------------------------------------------------
1987434951 | advil | 2022-08-04 16:29:42 -0400

fix: don't start resting if `can_rest_here` is false
bdabc8c6d3d1 ran afoul of one of the weird pitfalls of this code, that
rest/wait fail messaging is handled in a different place than rest/wait
start messaging. Possibly this can/should be cleaned up, but I don't
immediately know what else it would break, so I've just updated the
relevant check in _start_running to be exactly parallel.  Also commented
the point in the code where this trap can be found.

--------------------------------------------------------------------------------
f6f7e2dfe7 | riverfiend | 2022-08-03 22:44:34 -0400

fix: Changes to god wrath (#2606)
Give Makh 2 more greater servants as suggested in code comments.

Remove unnecessary slow duration checks in Chei, Trog wrath.

Remove jellies from Jiyva wrath spawns.

Fuzz minor minion numbers for Lugonu wrath summons.

Modify Zin mutation removal logic to be more understandable.

Make Zin wrath fall through to other effects if all player mutations are bad.

Update wrath descriptions for Chei, Yred, and Ely.



See original pull request for full explanation of the old wrath behaviors.
--------------------------------------------------------------------------------
82fb55b1ac | nlavsky | 2022-08-03 22:17:43 -0400

fix: no hostile Necrotise skeletons (#2630)
For consistency with other ally-creating spells under Okawaru or

Sacrifice Love, this commit blocks the Animate Skeleton part of

the Necrotise spell.
--------------------------------------------------------------------------------
8a7feb118f | gammafunk | 2022-08-03 15:24:36 -0500

feat: Adjust Ice Cave simulacra
Entropy weaver simulacra are great at killing players, but are far
nastier in melee than their originating monster due to their relatively
high HD and how af_cold works. Players tend to not expect this, given
that entropy weaver melee at its normal placement depth is only
dangerous when the player has poor AC (e.g. when highly corroded). We
can use hydra simulacra with the appropriate numbers of heads to have a
similar effect, but one that somewhat better telegraphs the level of
danger.

This commit uses 3-headed hydra simulacra in the top-end "cruel" set for
easy ice caves, 7-headed hydra simulacra in that same set for hard ice
caves, and removes entropy weaver simulacra from the simulacra lists.
For ice_cave_hellmonk_azure_passage, now that jellies and eyes can be
simulacra, we replace entropy weaver simulacra and other less-in theme
simulacra with slime creature and great orb of eye simulacra. The
non-jelly/eye we still use are shapeshifter and glowing shapeshifter
simulacra. These changes are a nerf to ice caves, but ice caves could
stand a mild nerf, especially for easy ice caves.

--------------------------------------------------------------------------------
c5c9f59d18 | Kate | 2022-08-02 21:58:16 +0100

Fix compiler warnings
And rebrace.

--------------------------------------------------------------------------------
4a18f31a58 | Nicholas Feinberg | 2022-08-01 18:38:10 -0700

Give palentongas +2 strength
Make them a little better at using heavy armour, etc.

--------------------------------------------------------------------------------
3e1970ce6f | Nicholas Feinberg | 2022-08-01 18:38:06 -0700

Slash Palentonga roll attack noise
When I designed Palentongas, I added 12 noise to them so that it wouldn't
always be correct to use roll attacks. Now that we've had a while to play
with them, I suspect this was the wrong call. Roll attacks are Palentonga's
cool thing - players should want to use them very heavily, and we should
design the UI to support that.

Reduce noise to one-third, 4 noise. This is mostly there as a justification
for preventing roll-sleep-stabs, but isn't really noisier than the melee
combat itself.

--------------------------------------------------------------------------------
e9813d02cc | Nicholas Feinberg | 2022-08-01 18:14:16 -0700

Simplify Airstrike (CarefulOdds)
Make it a simple dice roll, rather than the sum of a flat value (based
on empty space nearby) and a random2avg call. This increases average
damage by 0.5 per cast, and increases max damage considerably in open
space. Gastronok now does 2d34 if you're in totally empty space, which
might be a bit much?

--------------------------------------------------------------------------------
68da1b8662 | Nicholas Feinberg | 2022-08-01 17:56:01 -0700

Don't count conjured 'mons' for Fridge (acrobat)
Probably an orb of destruction can't insulate you from freezing...
I guess?

--------------------------------------------------------------------------------
78424f4fe2 | Nicholas Feinberg | 2022-08-01 17:56:01 -0700

Don't spawn ponderous gloves (ebonnov, CarefulOdds)
It's only supposed to be on body armour! Excepting one unrand, ha.
The tradeoff is too awful otherwise.

--------------------------------------------------------------------------------
f828392251 | Nicholas Feinberg | 2022-08-01 17:56:01 -0700

Don't show invisible monsters in the Refrig targeter
Oops!

Also don't leak info about monsters outside LOS but adjacent to
monsters you do see.

--------------------------------------------------------------------------------
9d01ccc615 | Nicholas Feinberg | 2022-08-01 17:56:01 -0700

Don't spam messages in local tiles
When there are invisible monsters nearby.

Broken by bdabc8c6d3d15eae00cd2e427f43c04c37675bc5 .

--------------------------------------------------------------------------------
df0a18e73c | advil | 2022-08-01 15:39:38 -0400

feat: mode cycling for use item menus
This lets you cycle between wield/wear/puton, and read/quaff (depending
on starting mode). It's a pretty rough and ready implementation, but
recent menu changes made it possible to implement this way. The cycle
keys are the usual ones (arrow keys, !), but it's currently not hinted
-- e.g. the feature is secret for now. Ideally, a similar change would
happen for the remove menus before this becomes fully baked, but that's
a bit more work, since those are regular `InvMenu`s.

--------------------------------------------------------------------------------
af557a844c | advil | 2022-08-01 15:37:00 -0400

feat: differentiate passable/impassable water in console
Previously, both of these used the same glyph by default, ≈, and relied
on color to differentiate. This has accessibility issues, and also is
annoying in builder debugging / scripting contexts (where e.g. dump_map
doesn't output color). This commit switches shallow water to use a
regular tilde. Colors stay the same, but it's possible they could use
further tweaking after this change.

--------------------------------------------------------------------------------
8b785cd64e | advil | 2022-08-01 12:59:05 -0400

fix: limit vaults builder tag effects to vaults
This is a followup to c37658a0fea4; the effect here isn't really a false
positive, in that it can impact seed stability on local games when the
binary isn't restarted. The situation is that Vaults layouts, in order
to place vaults used elsewhere, typically need to ensure they are
non-opaque to the builder. The means by which it does this (tags like
transparent and passable), then become part of the vault's state, and
persist to any later reuse. 2170ac5abdc97a already limited the effect of
`passable` to uses when placing a vault in Vaults, but the v_rooms.lua
code (for reasons that are not entirely clear to me) used the
`transparent` tag to a similar effect. Changing this to `passable` has
the same effect and prevents the seed stability issues (at least, in my
testing).

It would be nice if there were a better way of resetting vault tags to
the des cache state without restarting the binary?

This commit also fixes what seems to have been a logic error in the
interaction between passable and opaque, from 2170ac5abdc97a, where the
passable tag would not result in MMT_PASSABLE outside vaults, but would
also prevent MMT_OPAQUE where appropriate. (This was probably creating
a whole bunch of unnecessary vetoes for affected vaults..)

--------------------------------------------------------------------------------
79d4c32e18 | Nicholas Feinberg | 2022-08-01 07:43:13 -0700

Simplify weapon attack descriptions (#2326)
When a monster is wielding a weapon, merge that weapon's damage and
plusses into the damage shown into xv. Still can't quite show brands,
but better something than nothing.

Before: "can hit for up to 16 with its +5 giant club of flaming..."
After: "can hit for up to 45 + Flame with its weapon..."

--------------------------------------------------------------------------------
aed3a0c8d8 | Nicholas Feinberg | 2022-07-31 21:55:21 -0700

Experimental: redesign Ozocubu's Refrigeration
In DCSS, spells are most exciting when they're context sensitive.
You cast Fireball or Freezing Cloud when the terrain and enemy
positions suit it. It's fine to have strong spells, but it's not
very fun to have one spell which is so universally good that you can
repeatedly cast it to clear the great majority of fights. Ozo's Fridge
fell in this category.

Let's experiment with making it a bit more situation-dependent. This
commit increases its damage by ~10% and removes the -Potion gimmick, but
reduces damage against creatures that are adjacent to others (including
the player). The current formula reduces damage by 25% if there's one
creature adjacent and by 50% if there are two or more, but this should
be considered very much a first draft.

Concerns I've seen about this design:
1. It'll cause players to lure enemies so you can fight one-on-one. This
   is generally wise, but I don't think a screen-wide AOE particularly
   pushes players to do this, even if it's worse against clumps of enemies.
2. It'll be hard for players to tell what's happening. I've done some
   work on the targeter to try to show how much enemies are affected, and
   probably some work could be done on printed messages if necessary.

--------------------------------------------------------------------------------
9e354a60c6 | Nicholas Feinberg | 2022-07-31 21:55:21 -0700

Make Refrigeration and Ramparts check AC and do more damage
One of the trickier things to teach new players is that AC works
against elemental attacks. Fireball, bolt of cold, etc - AC will help!
It's a simple, consistent mechanic that has big implications across
play.

This becomes much trickier, and more confusing, when an arbitrary
subset of spells do *not* check AC. What, ultimately, is the difference
between a flash freeze, a freezing cloud, and a Refrigeration? Why should
the latter ignore AC while the former two don't? Can't all that thick
armour insulate you from the cold?

If a spell doesn't have a lot else going on in terms of mechanical
distinctiveness, we can have it ignore AC as its one big Thing. That's how
Freeze works, and that's fine. But adding it into spells that have many
other mechanical distinctions is both unnecessary and confusing. Let's not.

Freezing Ramparts and Ozocubu's Refrigeration both now check AC and do more
damage (+6 for Framparts, +10 for Refrigeration), based on a vague average
of AC in relevant parts of the game.

--------------------------------------------------------------------------------
733a6eaeeb | Nicholas Feinberg | 2022-07-31 21:55:21 -0700

Simplify LOS attack effect logic
Simplify and unify code for damaging players and monsters with Drain
Life, Ozocubu's Refrigeration, and the Singing Sword. Remove the
fairly redundant message announcing everything you hit.

--------------------------------------------------------------------------------
5bf4a2a1db | Nicholas Feinberg | 2022-07-31 21:55:21 -0700

Simplify Drain Life logic
Now that players can no longer cast it, no need to special-case summons.

--------------------------------------------------------------------------------
572474d683 | advil | 2022-07-31 18:56:10 -0400

fix: maybe fix a gcc warning

--------------------------------------------------------------------------------
7483850d73 | advil | 2022-07-31 17:52:02 -0400

feat: generalize `F` to fire any targeted item
This gives a quicker way of accessing e.g. the targeter for scroll of
fear than quivering it. Behavior on launchers and ammo remains the same
as before, and you can still use `*` to toss any item.

There's a lot of special cases to deal with here in terms of
preconditions, so it may be that there are more cases where this menu
should be prevented altogether.

Also, fix a bug where untargeted firing of disabled items would show the
targeter prompt; now it just messages right away. (This is pretty niche,
previously you would have to do something like quiver a potion of magic
to see this.)

--------------------------------------------------------------------------------
2d25de79ac | advil | 2022-07-31 13:38:16 -0400

feat: readable keycodes for some non-ascii keys
This is a fairly inelegant approach that gets the job done for now; it
lets "F1" (etc) for function keys, "NPx" for numpad key x, as well as
"Down", "PgDn", etc for navigation keys, work as keycodes. These can
appear in contexts where a \{} keycode is valid, as well as directly in
the [] brackets in a `bindkey` rc line.

--------------------------------------------------------------------------------
c1b7fc97e0 | advil | 2022-07-31 11:13:23 -0400

fix: a few more CK_NUMPAD_ENTER bindings
Map mode, more, doll editor, text input.

--------------------------------------------------------------------------------
afa891f487 | gammafunk | 2022-07-31 09:24:58 -0500

fix: Correct grammar (Solitudinal)
For the description of the lunar statue from Lehudib's WizLab and the
Zot statue from the Ten Rune Challenge Sprint. Closes #2637.

--------------------------------------------------------------------------------
ac7da5f7f0 | advil | 2022-07-30 18:32:34 -0400

fix: update hover on local tiles click
If you hover with a mouse, then use arrows to move the hover away, then
click without moving the mouse at all, the currently hovered item (not
under the mouse) gets activated. This commit updates the hover on
mousedown, so that when the click is processed (on mouse up), the item
under the mouse is what does get clicked.

--------------------------------------------------------------------------------
43c84944fd | Nicholas Feinberg | 2022-07-30 12:59:58 -0700

Marble at these new tiles (Sastreii)
New Tukima's Wizlab marble wall tiles.

--------------------------------------------------------------------------------
dbb8aaeb5f | advil | 2022-07-30 15:37:00 -0400

fix: suppress more instances of CK_NO_KEY in local tiles
0d6ea506dcc got one way of producing this keycode, but not the only one.
It would be better to fully suppress this in `wait_event`, but I think
that would require more of a refactor.

--------------------------------------------------------------------------------
619506e67d | Nicholas Feinberg | 2022-07-30 11:12:11 -0700

Add icons for Brilliance and Resistance (Sastreii)

--------------------------------------------------------------------------------
8769cd89f2 | Nicholas Feinberg | 2022-07-30 11:12:11 -0700

Scale up some art [pun?] (Sastreii)
New tiles for Faerie Dragon Scales and basilisks.

--------------------------------------------------------------------------------
a52d00042f | advil | 2022-07-30 13:27:47 -0400

fix: accept more keybinds (again) in webtiles
8027019649d8 was too restrictive in its raw key arrow key check; we want
to also accept raw arrow keys in new macro definitions. This approach is
somewhat hacky (possibly the server should explicitly indicate this mode
similar to raw key input mode) but it works.

--------------------------------------------------------------------------------
f9470816a2 | advil | 2022-07-30 13:03:10 -0400

fix: correct formatted_string::trim implementation
The first pass at this function only trimmed whitespace outside of color
tags, which was previously reasonable for the main use cases. However,
29c30a7bfa8 broke that assumption, leading to dead space in some popups.
This commit is a full formatted_string::trim implementation that trims
whitespace regardless of color tags.

--------------------------------------------------------------------------------
edc2efc267 | advil | 2022-07-30 13:03:10 -0400

fix: remove empty spans in newgame buttons
Because these are using a css flex layout with equal sizes, empty spans
generated from a color string have a weird effect on these buttons.
Since 29c30a7bfa80, the strings used for these buttons are guaranteed to
have an empty span. Possibly the approach in that commit should be
revisited, and I'm unclear on why the button spans are formatted this
way, but for now, fix the local problem in the newgame buttons by
removing empty spans.

--------------------------------------------------------------------------------
4c7e25f38b | gammafunk | 2022-07-30 11:43:31 -0500

doc: Update a comment
Despite what some people claim, hammers and maces are not equivalent!

--------------------------------------------------------------------------------
b5fe8ed81c | advil | 2022-07-30 10:42:59 -0400

fix: skill menu alignment issue (Goratrix)

--------------------------------------------------------------------------------
10f4acb857 | advil | 2022-07-30 10:15:17 -0400

fix: fix describe menu issues (xv, ctrl-x)
I had completely missed that this exists and uses InvMenu for some
reason, and so it needs custom examine code. There was also an issue
where (because of inheriting from InvMenu) it needs to override some
overridden key bindings.

Resolves #2638

--------------------------------------------------------------------------------
c8bbfd0a37 | advil | 2022-07-29 18:02:18 -0400

fix: restore targeting CK_NUMPAD_ENTER binding (Nefhilion)
Possibly this should be handled via numpad_to_regular? But right now
this is all manual, and probably got deleted by accident.

--------------------------------------------------------------------------------
fab03dca74 | advil | 2022-07-29 17:51:09 -0400

fix: use correct index when describing memorized spells

--------------------------------------------------------------------------------
5fb1e05c50 | Nicholas Feinberg | 2022-07-29 14:20:38 -0700

Occasionally generate hand crossbows
Oops!

Objstat says this increases hand crossbow drops in a 3-rune game by
30-40% or so, but the baseline is quite low.

--------------------------------------------------------------------------------
d064c1aaf2 | Nicholas Feinberg | 2022-07-29 11:17:27 -0700

Confirm that #2634 is fixed
Closes #2634.

--------------------------------------------------------------------------------
6693796725 | Nicholas Feinberg | 2022-07-29 11:11:52 -0700

Maybe fix a local tiles newgame crash

--------------------------------------------------------------------------------
1ab02bc704 | advil | 2022-07-29 13:50:17 -0400

fix: add some missing `static`s

--------------------------------------------------------------------------------
33dda2a4a5 | advil | 2022-07-29 13:37:46 -0400

feat: scroll by item type hotkeys in InvMenu
Long-requested feature, now finally easy to implement.

This commit also fixes a number of hover syncing bugs with webtiles that
came up while testing it.

--------------------------------------------------------------------------------
29c30a7bfa | advil | 2022-07-29 13:37:46 -0400

fix: explicit default foreground for to_colour_string
When the crawl binary renders colour strings, it uses lightgray as the
default foreground color. However, this is not explicitly part of the
string, so the webtiles color parsing code was not inserting a lightgray
span, leading to artifacts. This commit ensures that this default is
present in all autogenerated colour strings; it may or may not have some
side effects I haven't noticed. (N.b. trying to change this on the
webtiles side breaks a *lot* of formatting, unfortunately.)

--------------------------------------------------------------------------------
e6dd553d16 | advil | 2022-07-29 13:37:46 -0400

fix: improve cast/view spell menu minorly
These still shouldn't be distinct, but for now, this generalizes the
toggle keys to commands, and adds a hint to the more indicating which
type of menu you are in.

--------------------------------------------------------------------------------
70d6ccd9e9 | advil | 2022-07-29 13:37:46 -0400

fix: generalize some ToggleableMenu code to menu commands
This moves `?` to help generally, adds a way to set toggle keys from
commands, and then uses CMD_MENU_HELP for the toggle for relevant menus
on the basis that this is essentially the help mode for these menus
(thanks Kate).

--------------------------------------------------------------------------------
8027019649 | advil | 2022-07-29 13:37:46 -0400

fix: explicit handling for macro raw input mode
This seems to have only been working accidentally, by passing everything
to the server. But this relied on the server sending back hover info,
which seems to be broken by recent changes [I am not sure this was
intentional]. Anyways, it's better to just manually implement this so
that the client knows it is in manual input mode and can act
accordingly, rather than having everything work by side effect.

--------------------------------------------------------------------------------
e1bd305f2e | advil | 2022-07-29 13:37:46 -0400

fix: backtrack on a new binding
I want to reserve tab/shift-tab for a hypothetical future where keyhelps
are widgets, not text.

--------------------------------------------------------------------------------
39874f90f9 | advil | 2022-07-29 13:37:46 -0400

fix: disable examine in KnownMenu
Also, make esc abort reset mode rather than close the menu, and provide
a hint that ctrl-d + * will reset everything.

--------------------------------------------------------------------------------
e010e3413a | advil | 2022-07-29 13:37:46 -0400

fix: don't crash when examining floor items in UseItemMenu
Needed to be implemented. Also, prevent a crash when examining unarmed.

--------------------------------------------------------------------------------
9f78f2f222 | advil | 2022-07-29 13:37:46 -0400

fix: yet more memorize menu tweaks
* reset hover when switching to/from the hidden spell pane
* enable CMD_MENU_EXAMINE bindings (which allows using the examine key
  on the hidden spell pane)
* Remove MF_ANYPRINTABLE, I find that this leads to too many accidental
  menu exits when using the hide/show features

--------------------------------------------------------------------------------
2c367d4636 | advil | 2022-07-29 13:37:46 -0400

fix: remove legacy ' binding in webtiles
This is repurposed to be CMD_MENU_EXAMINE, so pass it to the server.

--------------------------------------------------------------------------------
5930f321ed | advil | 2022-07-29 13:37:46 -0400

fix: don't read keybinds on first rc pass
This lets the webtiles menu command check work correctly (we apparentlly
cannot rely on `tiles.is_controlled_from_web()` during the first rc
pass). Possibly this change should be webtiles-only? But I don't think
it will have negative impacts..

--------------------------------------------------------------------------------
fc0b34fa67 | advil | 2022-07-29 13:37:46 -0400

fix: derive keyhelps from command binding
This is all fairly painful, brittle code, but this commit at least
reduces some hardcoded key assumptions...

--------------------------------------------------------------------------------
d8e63177a4 | advil | 2022-07-29 13:37:46 -0400

fix: memorize menu hover issues
* don't snap to hover on the server side when receiving scroll
  information from the client side; this leads to the two being out of
  sync, and lettering potentially being calculated incorrectly.
* don't hover letter-selected singleselect items - most singleselect
  menus exit (so this doesn't matter), and the memorize menu relied on
  the previous behavior. (Hopefully no impact outside this menu..)

--------------------------------------------------------------------------------
8c06e03c53 | advil | 2022-07-29 13:37:46 -0400

fix: webtiles mouse hover when menu size decreases
Two webtiles bugs:
* the visible item range wasn't correctly recalculated when a menu size
  changed without scrolling
* the hover event handlers were getting wiped out when a menu size
  decreases; particularly noticeable in the spell menu. I'm still not
  100% sure why this was happening, but it seems most likely to be a
  side effect of the `clear()` call on the container?

--------------------------------------------------------------------------------
dca162d7b1 | advil | 2022-07-29 13:37:46 -0400

fix: correctly sanitize mouse hover in memorize menu
With menu_arrow_control=false, hover can still be set by the mouse, but
`set_hover` does not apply the sanitizing `min` check (because it
doesn't change it at all). This commit adds a corresponding check for
this case in `update_menu`, which should be called whenever
`items.size()` may have changed.

--------------------------------------------------------------------------------
83eecf6fab | advil | 2022-07-29 13:37:46 -0400

fix: various issues with the `F` menu
Previous commits broke some of the keybinds for this menu, which needed
attention anyways. The "throw any item" menu was different from the *
menu only if you had a wielded launcher at this point, so it was a
little silly to have both. Also, fix a bunch of the messaging,
generalize some of the validity checks.

--------------------------------------------------------------------------------
b7493b8c6f | advil | 2022-07-29 13:37:46 -0400

feat: add CMD_MENU_EXAMINE and support code
The Menu superclass had some support for the concept of describing a
menu item, via ACT_EXAMINE and all the cycling stuff, and nearly every
Menu subclass uses it somehow, but for whatever reason handling was left
to manual subclass code.  This commit generalizes the standard pattern
into the superclass, hopefully making it more straightforward to write
code that does whatever description popup is needed. Along the way, this
change makes it possible to add a distinct "examine selected menu item"
command, which I have bound to `\\` and `'`. The latter replaces a
rather ancient compatibility binding, we'll see if this bothers people.

Some misc refactoring that happened as part of this:
* clean up acquirement menu a bit
* enable hover in mutation menu, various deck menus
* improve some shop menu behaviors, stash search menu behaviors
* fix a weird casting preselect bug

--------------------------------------------------------------------------------
9571f3400c | advil | 2022-07-29 13:37:46 -0400

docs: comment Menu class hierarchy
I'm tired of trying to keep all this in my head and inevitably
forgetting StackFiveMenu or whatever. No doubt this comment will go
stale at some point, and there are ways of programmatically generating
this, but I think it's still better to have as just a text comment in an
easy place than not.

Also, remove a reference to a nonexistent class.

--------------------------------------------------------------------------------
3c416a43b8 | advil | 2022-07-29 13:37:46 -0400

refactor: improvements to UseItemMenu
This is mostly pulling code into UseItemMenu, though I did not succeed
yet in eliminating the outer loop.

* Restructure API around operation_types, instead of object selectors,
  and use this to set title prompts inside the menu
* Move non-terminating key handling into process_key
* other misc tweaks

--------------------------------------------------------------------------------
5e10d65620 | advil | 2022-07-29 13:37:46 -0400

fix: name some magical menu constants
Also, rewrite the key function that uses these, as it was pretty
confused (I think, not in ways that mattered).

--------------------------------------------------------------------------------
d406f26c7b | advil | 2022-07-29 13:37:46 -0400

refactor: abstract more menu actions to commands
Abstract various selection commands to CMD_MENU_... actions, and
refactor Menu::process_key accordingly. Hopefully won't break subclasses
in ways that my testing has so far missed, as this is a relatively major
change in how input is handled across all menus. This commit should by
itself not result in much behavior change (a few minor bugfixes and one
exception below).

Notes:
* This adds a new keymap context specifically for multiselect menus, as a
  way of having keybinds that target just that case. It's maybe a bit
  heavy handed, but works surprisingly well.
* Behavior change: enter in a multiselect menu with no selection does
  not exit. I will probably adjust this some more.
* Remove multiselect count in menu title, as it was redundant with
  footer.
* Remove MF_PRESELECT, as it wasn't needed for anything (despite a few
  bits of code that say what they're doing is "preselecting").

--------------------------------------------------------------------------------
9e8725f314 | advil | 2022-07-29 13:37:46 -0400

refactor: updates to webtiles keyhandling
This is my latest take on how to do webtiles keyhandling in a way that
points towards a more modern approach, while supporting old game
versions. Followup to 7b1be97da7.

* For versions following this commit, convert numpad and function key
  handling to use modern `code` values rather than keycodes. This has
  widespread browser support in 2022 and should be more robust than the
  previous keycode-based approach.
* Remove keycode overrides from game.js, with a new division of labor
  and clearer handling for legacy keycodes. Now all the client needs to
  do to use updated keyhandling is enable `code` mappings.
* Support for some new internal keycodes: ctrl+shift bindings; modified
  space, del, enter, bksp, esc; numpad =/enter, F keys through F19, fix
  delete handling (this is the only one that works on older versions).

Still to be done: fix alt handling, convert modifier handling to use
`code`.

This commit attempts to support all versions and all possible cache
states for non-versioned code (which on some servers may require a
server restart to refresh). We'll see if that actually works.

--------------------------------------------------------------------------------
e3431fa5fd | advil | 2022-07-29 13:37:46 -0400

feat: a few more mac-oriented console keys
Plus, some comments.

--------------------------------------------------------------------------------
df642b0ec9 | advil | 2022-07-29 13:37:46 -0400

fix: tweaks for ncurses keycode handling
* Add and update various comments
* Fix (I hope) the keycode for numpad / in application mode, this seems
  to have simply been wrong (but only tested on mac...)
* Add a mapping for keypad =
* add rxvt-style handling of function keys for mac Terminal.app
  defaults, working around what seems to be buggy terminal behavior
* add human-readable names for F keys through F24 for ncurses. I didn't
  add keycodes because this is annoying to do for stupid reasons.
  Probably not widely supported, but they work on iTerm2!
* some misc menu fixes that got rolled in

--------------------------------------------------------------------------------
0d6ea506dc | advil | 2022-07-29 13:37:46 -0400

refactor: Revamp SDL keycode handling
Main changes:
* Finally, convert to internal keycodes for SDL keycodes where we have
  internal keycodes. This lets a bunch of keycodes be unconditionally
  defined, and means that all build targets will use the same keycodes
  for these keys/key combos (though they vary in what is available).
  It does mean that SDL keycodes will change, breaking existing macro
  files, but also that the same macro defs will (largely) work across
  all build targets. Also, some combos will no longer work (see below).
* Expand the set of internal keycodes: Support ctrl+shift for arrow
  (etc) keys; explicitly support modifiers for enter, bksp, esc, del;
  a few missing numpad cases.
* Revamp how alt is handled. Well, it uses the original principle
  (just shifting the key space by -3000), but is now applied more
  systematically to all non-ascii keys. For ascii keys, alt is still
  not intercepted because these days this is used to input unicode
  chars on many OSs. I've fixed some mac issues with this.
* Implement option modifier support for macs. This uses the same hacky
  keycode shifting as alt, just with a bigger number (-20000).
* Refactor the SDL keycode translation code so that it makes more sense.
* Fix some macro menu bugs, show naming for basically all keys
  correctly now. (Some UTF issues still maybe?)
* Fix some lingering issues with numpad key suppression (before, it
  was returning a textinput CK_NO_KEY event as well as the key event.)

What is missing or iffy:
* The previous code had incomprehensible, hacky, modifier handling code
  that (sort of) worked on absolutely every key. I've moved away from
  this, where the practical impact is the ctrl works on a lot less
  stuff. In particular, ctrl + fn keys is not implemented. If people
  were using this, I can probably bring it back. Also, ctrl with
  whatever random SDL keycodes you have will not work, because this
  was a really bad idea. Shift is also fairly variable, though I'm not
  sure it's more-so.
* Numpad with ctrl and shift is a bit weird. Previously, on SDL numpad
  keys were just mapped to arrow keys. Since we have numpad numbers, I
  mapped to those and added bindings. But, to get movement commands to
  work, ctrl/shift on the numpad turn the key into its corresponding
  arrow key. Also, in menu code numpad keys act like arrow keys. It's
  all a bit messy.
* Haven't checked if some of the new keycodes can be added to webtiles

Resolves #1228

--------------------------------------------------------------------------------
4075c45985 | advil | 2022-07-29 13:37:46 -0400

fix: handle uppercase prompt menu defaults
(Fix the macro menu "really clear" prompt, maybe others)

--------------------------------------------------------------------------------
2a601844f1 | advil | 2022-07-29 13:37:46 -0400

refactor: generalize some numpad handling
For popups, menus, etc we want numpad special keys to be handled
uniformly with their regular counterpoints basically all the time.
Before there was a lot of ugly special casing for this that often has
had mistakes, missing mappings, etc. This commit generalizes the
mappings so that they are translated behind the scenes on all menus
except the macro menus, as well as scrollers. Keymaps do still allow
changing the numpad keys specifically.

Some waffling on what to do with numbers. Previously, most menus did no
translation at all for them (rendering them inert), and for these menus,
they get translated to numbers now. (Most keyboards with a numlock
should be able to turn this off and get navigation keys still.) The
skill menu had some (incorrectly implemented?) hardcoding to let 2/4/6/8
act as direction keys, and I've left this (/fixed this to be) active.
Possibly this should be done uniformly? Not sure what players will
expect.

(Also, some misc unrelated comments)

--------------------------------------------------------------------------------
2d6fbdf044 | advil | 2022-07-29 13:37:46 -0400

refactor: make menu quantity selection non-default
This was a default possibility, I assume, from back in the days where
Menus were used almost entirely for items, and managing stacks mattered
for more things (e.g. weight). Nowadays I'm aware of only two menus that
even need this (drop and pickup), and even here this is not an option
that users have much of a reason to use. Swap the meaning of the flag
and the corresponding defaults so that menus have to enable this rather
than disable it; in principle this also simplifies using digits for
other things in some Menus.

--------------------------------------------------------------------------------
2ec3508d20 | advil | 2022-07-29 13:37:46 -0400

fix: improve overriding options for Menu subclasses
Avoid hacky pre_process with a cleaner set of things to override (mainly
used for help right now), implement handling for `-`.

Numpad handling is very ad hoc here still, maybe menus should always
collapse numpad equivalents to their regular keys in a systematic way?

--------------------------------------------------------------------------------
0719e5db6c | advil | 2022-07-29 13:37:46 -0400

fix: tweak what bindkeys are allowed
* blanket disallow rebinding esc and mouse commands in popups/menus
* mark CK_MOUSE_MOVE as synthetic
* ignore menu key rebinds in webtiles specifically. Most of these "work"
  but (rightly?) don't send UI state back to the webtiles client, so
  they result in inconsistent client/server UI state, and are basically
  just a recipe for bug reports as-is. I'm not sure how to do this
  without implementing the abstract commands on the client side and
  transmitting keybinds, which seems extremely involved.

--------------------------------------------------------------------------------
2f41a18165 | advil | 2022-07-29 13:37:46 -0400

feat: CMD_MENU_... for menu navigation bindings
This is part of my attempt to somehow get some order out of the
keybindings used across different menus, by putting a layer of
abstraction between individual keys and menu actions. This is only a
partial implementation that focuses on navigation: by design there's
quite a bit of falling back on the old process_key, partly because I'm
undecided about how to handle some of the general cases, and also
because there are many, many, menu-specific bindings that don't seem
like they should obviously be implemented in a general way. Some key
missing things:

* Most aspects of this in webtiles -- I'm completely undecided about how
  or even if to handle this. Many of the keybinds covered in this commit
  have full javascript parallel implementations for snappier UI.
* Many more menu special cases
* select/activate actions
* user rebinding. Right now this is completely disabled, because I think
  there's certain things we would not want to allow at all (e.g.
  bindings for mouse buttons, CMD_MENU_EXIT, stuff like this). Of
  course, this is advanced rc stuff, so it call fall under caveat
  emptor?

--------------------------------------------------------------------------------
0a7a3d12f8 | Nicholas Feinberg | 2022-07-27 21:55:23 -0700

Maybe fix a revival untransform crash (Oneirical)
Very scary to do almost anything while dead.

--------------------------------------------------------------------------------
fe0b616f53 | Nicholas Feinberg | 2022-07-27 17:27:53 -0700

Fix Meteoran manual positioning (FizzleBang)

--------------------------------------------------------------------------------
6e406bff71 | Nicholas Feinberg | 2022-07-26 18:05:04 -0700

Give a +1 to the AM starting sling
It's still slightly weaker than the Hu starting shortbow, but perhaps
a little less sad.

--------------------------------------------------------------------------------
9a622b1e81 | Nicholas Feinberg | 2022-07-26 17:45:31 -0700

More Abyssal tiles (Sastreii)
A tweak to Louise and a rework of the Mad Acolyte of Lugonu.

--------------------------------------------------------------------------------
44044ebd20 | Nicholas Feinberg | 2022-07-26 17:45:31 -0700

Maybe fix a Golubria + floor ID bug
(But I couldn't repro the problem.)

--------------------------------------------------------------------------------
5d2155ec51 | gammafunk | 2022-07-26 10:27:05 -0500

fix: Remove an unecessary subvault (Goratrix)
The vault grunt_ashenzari_visionary_trees is one of two fallback vaults
placed when information about Lair branches isn't available. However we
don't need two distinct vaults for this case, as fallback never happens
in an actual game. Remove the trees vault, leaving
grunt_ashenzari_visionary_lava as the fallback, and add allow_dup to the
latter so it can be used twice.

--------------------------------------------------------------------------------
d064cfad1c | Nicholas Feinberg | 2022-07-25 23:06:30 -0700

Fix: don't double sandblast delay on miscasts
This was not intended, and is (IMO) a bug.

--------------------------------------------------------------------------------
52dc46e822 | Nicholas Feinberg | 2022-07-25 23:03:52 -0700

Buff sandblast accuracy
To make missing with an extra-slow spell less painful. This has a
pretty small effect in the cases I tested, but maybe it helps.

--------------------------------------------------------------------------------
f6505d1e93 | Nicholas Feinberg | 2022-07-25 23:01:35 -0700

Increase sticky flame damage by 25% vs monsters
Sticky Flame has taken some hits in recent versions, not least due to
attacks of opportunities weakening kiting. Now that it's not in the
Fire Elementalist start, it can afford to be a bit stronger.

This doesn't affect the displayed damage, which only shows the initial
impact. TODO: clean up and unify this.

This does not affect sticky flame damage on players.

--------------------------------------------------------------------------------
416d80c6de | Nicholas Feinberg | 2022-07-25 23:01:35 -0700

Increase Flame Wave damage
Continuing the saga of dde70e7af44 and daab1c2f9be.

    Average damage per round (pre-AC):
                  0 power        100 power
    Original      5              25
    Post-nerf     4              14
    Post-buff     4              17
    Current       4              21

We're gonna find the perfect number. It's in there somewhere.

--------------------------------------------------------------------------------
98872c3ec8 | Nicholas Feinberg | 2022-07-25 23:01:35 -0700

Increase Irradiate contamination
Irradiate is widely considered an extremely strong spell, 'trivializing'
many encounters and much stronger than other spells of its level. The
'contamination' limit, intended to balance it by limited access to other
contamination-causing effects, has become less relevant as those other
sources (Haste, Invisibility spell, Controlled Blink...) have left the game.
It's not a bad thing for Crawl to have strong spells, but we want players
to be making exciting strategic choices, and to be excited to upgrade from
lower level spells to higher ones.

We've recently reduced the spell's max damage, but this hasn't really made
any signifcant impact on its power. So, let's dial it back a little, from
3-4 'safe' uses before hitting yellow contamination to 2-3. I expect it will
still be quite powerful, but perhaps somewhat more situational.

This commit also changes the threshold at which contamination goes from dark
grey (trace) to light grey (you're near yellow contamination), such that
being in light grey still warns you that one more Irradiate could put you into
yellow. This affects pretty few other effects now - evokable invisibility was
the only other one that had the same logic, and you really don't want to use
that in grey contam regardless.

Currently:
1000-1500 contam (light grey is 3.5k, yellow is 5k)
Best case: 4 safe casts at 1k contam each (5th puts you at yellow
contam guaranteed, ignoring contam reduction over time).
Worst case: 3 safe casts at 1.5k contam each (5th is guaranteed yellow).

New:
1250-2000 contam (light grey is 3k, yellow is 5k)
Best case: 3 safe casts at 1.25k contam each (4th is yellow guaranteed,
ignoring contam reduction over time)
Worst case: 2 safe casts at 2k ea (3rd is yellow guaranteed).

--------------------------------------------------------------------------------
906f1d757c | Kate | 2022-07-25 21:30:03 +0100

Make unidentified ?butterflies fizzle under Okawaru
As with scrolls of summoning - instead of summoning hostiles have the
scroll just fizzle if read-identified under Okawaru or with Sacrifice Love.

--------------------------------------------------------------------------------
4287b5424a | Kate | 2022-07-25 21:29:59 +0100

Update some halo descriptions
To make it clearer that the accuracy bonus doesn't apply against the owner
of the halo. Also correct an inaccurate comment.

--------------------------------------------------------------------------------
a87ceb1aab | gammafunk | 2022-07-25 15:06:40 -0500

fix: Remove unreachable items from a vault (dilly)
The vault grunt_ashenzari_visionary didn't have tagging to prevent level
items from generating inside its unreachable areas. Its `no_tele_into`
tagging was also a bit suspicious in that it only masked certain
squares. Add no_item_gen and no_tele_into to the subvault tags to
prevent any problems.

Also rework the terrain and monster placement inside these vaults.
Although weights were chosen to make monster closets unlikely, they
didn't fully prevent them, and the simple SUBST used meant that solid
features had to be very sparse. Make a grid of wall location glyphs for
the non-Shoals subvaults, placing walls only on these locations and
thinning out the walls as appropriate to give the sight sense open areas
versus walled areas. This also allows us to use trees in the Swamp
subvault. Adjust monster placement use place: tags so we don't have
hard-coded lists of decorative monsters that easily go stale.

--------------------------------------------------------------------------------
88e6f02907 | Neil Moore | 2022-07-24 23:39:04 -0400

Add a missing word
[skip ci]

--------------------------------------------------------------------------------
35202b1573 | Nicholas Feinberg | 2022-07-24 20:07:42 -0700

Maybe fix ?id uselessness (Lightli)
Broken by the addition of scrolls of butterflies.

--------------------------------------------------------------------------------
30c7767f5c | Nicholas Feinberg | 2022-07-24 11:22:09 -0700

Add Naga recolour tiles (Lyre)

--------------------------------------------------------------------------------
030b2a9e5e | Nicholas Feinberg | 2022-07-24 11:22:09 -0700

Add Djinni recolour tiles (Lyre)

--------------------------------------------------------------------------------
370ae71bdb | Nicholas Feinberg | 2022-07-24 11:22:09 -0700

Revivify Borgnjor's Mausoleum (Sastreii)
New floor & wall tiles for the famous wizlab.

--------------------------------------------------------------------------------
68d77ee5f7 | Nicholas Feinberg | 2022-07-24 11:22:09 -0700

Dance with the stars (Sastreii)
Add animated starflower tile variants.

--------------------------------------------------------------------------------
552816ba1b | Nicholas Feinberg | 2022-07-24 11:22:09 -0700

Don't autoexplore into krakens (ardl, CarefulOdds)
Krakens weren't considered dangerous until they woke up and started
spawning tentacles, since they couldn't path to the player.

Fixes #2556.

--------------------------------------------------------------------------------
46b74f5a98 | Nicholas Feinberg | 2022-07-24 11:22:09 -0700

Remove KRAKEN_TENTACLE_RANGE
Unused since 26b18322453b0e8f90b8bb6dee5690025d588116 (2010).

--------------------------------------------------------------------------------
86a584de0a | Nicholas Feinberg | 2022-07-24 11:22:09 -0700

Add a new ancient tile (Sastreii)
Ancient zyme.

--------------------------------------------------------------------------------
0f71de6fce | Kate | 2022-07-23 13:19:55 +0100

Don't let troves ask for ?butterflies under Okawaru
Since they're useless otherwise, so don't make for a meaningful toll.
Worshippers of Ashenzari that have sacrificed love can still be asked for
scrolls of butterflies, but that's possibly enough of an edge case to allow
them to get away with.

--------------------------------------------------------------------------------
46a8461d6a | riverfiend | 2022-07-22 20:01:36 -0700

Make classed draconians match their base color
Now that each classed drac maps neatly onto a base drac color, it's silly for 
the white draconian stormcaller to be brown, or for the black draconian knight 
to be cyan.



The line-up isn't perfect, classed dracs are kept on light colors to help them 
stick out in vaults that explicitly use different base colors.
--------------------------------------------------------------------------------
1931ea0d09 | Nikolai Lavsky | 2022-07-22 19:48:58 -0700

fix: tweak shield offsets for several elves and spriggans
This commit fixes shield offsets for the following monster tiles:

* deep elf pyromancer, zephyrmancer, and demonologist;
* spriggan berserker and air mage.

--------------------------------------------------------------------------------
cd2578efcb | Nikolai Lavsky | 2022-07-22 19:48:28 -0700

fix: tweak spacing on the dungeon overview screen
As a followup to ed30ed24e, this commit fixes column alignment in
the two-columns mode.

--------------------------------------------------------------------------------
6e3fbd0ac6 | Nicholas Feinberg | 2022-07-22 18:49:08 -0700

Fix op/dr hat use (ebird)
Closes #2625.

--------------------------------------------------------------------------------
d4eca3973b | Nicholas Feinberg | 2022-07-22 18:33:46 -0700

Don't let Ashenzari block innate mutations (Nomi)
Oops!

--------------------------------------------------------------------------------
9542dc02ca | Nicholas Feinberg | 2022-07-22 16:46:43 -0700

Make Ashenzari block curse-shattering mutations
Just a really excessively brutal feel-bad otherwise.

--------------------------------------------------------------------------------
65808cdf32 | Nicholas Feinberg | 2022-07-22 15:56:22 -0700

Add new mutation tiles (Sastreii)
SInv, horns, antennae, and passive mapping (the thing DD got and
Meteorans still get).

--------------------------------------------------------------------------------
1b0b605977 | Nicholas Feinberg | 2022-07-22 15:56:22 -0700

Add Teleporting status & icon (Sastreii)

--------------------------------------------------------------------------------
0687760f0c | Nicholas Feinberg | 2022-07-22 15:56:22 -0700

Add some uniquely abyssal tiles (Sastreii)
New Mlioglotl and Louise tiles.

--------------------------------------------------------------------------------
2c4c91d9db | Kate | 2022-07-21 19:41:55 +0100

Give scrolls of butterflies their own summon type
Since the spell has been removed, treat them the same way as scrolls of
summoning (and re-remove the spell enum at TAG_MAJOR_VERSION 35).

This reverts commit 1595a9cb2e31c54c4631752689330e52b5ae3b26.

--------------------------------------------------------------------------------
85def6a6a5 | Kate | 2022-07-21 19:41:55 +0100

Fix summon scrolls being readable under no-allies conducts
Scrolls of summoning and butterflies are marked as useless under Sacrifice
Love and while worshipping Okawaru, but previously could still be read
(with no effect other than wasting a turn for ?summoning, and with
?butterflies creating friendly monsters that then turned hostile) - prevent
reading them while under a no-allies conduct.

--------------------------------------------------------------------------------
cbf53edc00 | Kate | 2022-07-21 19:41:34 +0100

Fix inverted logic in a butterfly check

--------------------------------------------------------------------------------
cf90b5c518 | Nicholas Feinberg | 2022-07-21 07:55:08 -0700

Maybe fix an obscure Abyss exit bug (CarefulOdds)
meaning that the game considered it to be temporary terrain. A water
nymph was killed in the same action that the exit was spawned. I was
unable to repro the issue, but I believe that the game still considered
the exit to be part of the nymph's temporary terrain. This tries to
clean up that situation.

Closes #2618.

--------------------------------------------------------------------------------
1595a9cb2e | advil | 2022-07-21 10:34:42 -0400

fix: unremove `SPELL_SUMMON_BUTTERFLIES`

--------------------------------------------------------------------------------
cbe080d7e0 | Nicholas Feinberg | 2022-07-20 19:05:23 -0700

Scroll of butterflies icon (Sastreii)

--------------------------------------------------------------------------------
fb1a3fa8b1 | Nicholas Feinberg | 2022-07-20 11:27:01 -0700

Let a thousand starflowers bloom (Sastreii)
New Starflower tile.

--------------------------------------------------------------------------------
b26ba3297d | Nicholas Feinberg | 2022-07-19 22:02:55 -0700

Fix the build?

--------------------------------------------------------------------------------
ff774ecaa7 | Nicholas Feinberg | 2022-07-19 22:01:23 -0700

Brutally nerf butterfly EV
25 -> 15. This is intended to make scrolls of butterflies more
effective against ranged attacks.

Centaurs go from having a 20% chance of hitting a butterfly to a 44%
chance. Deep elf master archers go from 42% to 65%. Dropping to 12 EV
would be even better, but I don't yet have the heart... poor butterflies...

--------------------------------------------------------------------------------
0affbf219e | Nicholas Feinberg | 2022-07-19 21:58:36 -0700

Add a targeter for ?butterflies
And fix the ?summoning targeter.

--------------------------------------------------------------------------------
dfd6e90d5d | Nicholas Feinberg | 2022-07-19 21:53:27 -0700

Begin the Butterfly Bargain (kate)
Make troves not charge ?fog if your game only generates ?butterflies.

--------------------------------------------------------------------------------
4e36813289 | Nicholas Feinberg | 2022-07-19 21:24:37 -0700

Set scroll of fog to alternate with butterflies
Delver is unaffected.

--------------------------------------------------------------------------------
df2fad6ba1 | Nicholas Feinberg | 2022-07-19 21:24:36 -0700

New scroll: scroll of butterflies
For many years, there were suggestions to turn the 'summon butterflies'
effect from random uselessness into its own scroll (c.f. 17b97e55154e).
Before we had 'alternate item' tech, this would have caused inventory
clutter. But now we can have variety without causing UI issues or
option overload, and with the removal of the Summon Butterflies spell,
the only other analogous effect is a Xom action!

A subsequent commit will make this an alternate for scrolls of fog.

--------------------------------------------------------------------------------
230be3ade3 | Nicholas Feinberg | 2022-07-19 21:21:17 -0700

Maybe silence some compilation warnings

--------------------------------------------------------------------------------
7b45a56547 | Kate | 2022-07-19 18:04:56 +0100

Don't list Deep Dwarves on the aptitudes menu (#12704)

--------------------------------------------------------------------------------
ee4989fb63 | Nicholas Feinberg | 2022-07-19 09:54:00 -0700

Fix: don't spawn monsters in portals (CarefulOdds, Goratrix)
Broken in 74bf5736c0002df9636fc6333b837f5770b722dd .

--------------------------------------------------------------------------------
4df2a8d2dc | robertxgray | 2022-07-19 16:46:31 +0200

Build a single ABI in Android build tests

--------------------------------------------------------------------------------
fc89b1a5bd | Edgar A. Bering IV | 2022-07-18 20:57:32 -0700

docs: changelog through 0.29-a0-875

--------------------------------------------------------------------------------
74bf5736c0 | Nicholas Feinberg | 2022-07-18 19:07:50 -0700

Remove env.spawn_random_rate (riverfiend, acrobat)
This field was extremely useless and mostly misleadingly misused.

This might fix a bug with orb spawns not spawning in Temple. At any
rate, they spawn there now.

--------------------------------------------------------------------------------
76f050b3ff | Nicholas Feinberg | 2022-07-18 19:07:50 -0700

Intermediate state

--------------------------------------------------------------------------------
9d4207de54 | Nikolai Lavsky | 2022-07-18 15:10:52 -0700

fix: allow Poisonous Vapours to work under Still Winds
Allow Poisonous Vapours to work under -Clouds, since as of 3f0e5c0cc
there are no clouds involved.

--------------------------------------------------------------------------------
797fff5ad1 | Nicholas Feinberg | 2022-07-17 11:55:30 -0700

Mark elementals and animated weapons/armour M_UNBLINDABLE
They have no eyes.

Possibly tomes should go this way too. Undecided.

--------------------------------------------------------------------------------
9694c85c73 | Nicholas Feinberg | 2022-07-17 11:55:30 -0700

Mark slime creatures M_UNBLINDABLE (graveyardigan)
Looks like an oversight - all other jellies have this.

--------------------------------------------------------------------------------
2c972031a6 | Kate | 2022-07-17 03:34:55 +0100

Fix various Step from Time pathfinding interactions (acrobat)
Don't let monsters path towards the player during Step from Time if marked
or if (0,0) was visible from the location where the ability was used, and
don't let monsters re-target the player while they're at (0,0) if they fail
a stealth check.

It's entirely feasible that this makes Step from Time work completely
differently to how it used to, but since nobody really understood how it
worked in the first place that's probably fine.

--------------------------------------------------------------------------------
4f890cd2dc | Kate | 2022-07-17 01:32:14 +0100

Fix slimified Dowan/Duvessa handling
Slimified monsters shouldn't be able to turn hostile again, as this causes
messy interactions with Jiyva penance prompts. Instead treat slimify
similarly to banishment and anger the other twin (along with some speech
lines for Dowan, but none for Duvessa since her perma-berserk means they'll
never be used).

--------------------------------------------------------------------------------
db86c2195a | Kate | 2022-07-17 01:32:03 +0100

Fix some Dowan/Duvessa speech handling when dueled
If it's even possible to duel one of Dowan/Duvessa, fixes the surviving
twin acting as if the dueled twin had been banished. If the player abandons
Okawaru mid-duel with one of the twins, the other will still act like the
dueled twin is dead on their return, but this is probably impossible to do
in the first place anyway.

--------------------------------------------------------------------------------
b03dc68cea | Kate | 2022-07-16 23:18:58 +0100

Trim a floor from Lair
To continue shortening some of the branches which outstay their welcome, as
discussed in PR #1898 and partially implemented with 0.28's shortening of
Depths. More substantial changes have been discussed for the future (such
as only generating one S branch per game, and only one of Hell or Pan for
the extended endgame), but in the meantime shortening Lair slightly is a
good step in the right direction. Monster spawns and vault depths are
mostly adjusted such that the new Lair:1 is equivalent to the old Lair:2.

--------------------------------------------------------------------------------
0545e20025 | Nicholas Feinberg | 2022-07-16 13:30:26 -0700

Ban useless attack orders against invisible foes
Prevent wasting time. This is sort of weirdly inconsistent (we allow
attack orders when you have no allies at all) and should probably be
rethought.

--------------------------------------------------------------------------------
a8a175f626 | Nicholas Feinberg | 2022-07-16 13:19:34 -0700

Warn when ordering an attack on an invisible foe
If some or all of your allies can't see invisible.

--------------------------------------------------------------------------------
6811fc6c64 | Nicholas Feinberg | 2022-07-16 13:03:59 -0700

Simplify frozen ramparts code (Gammafunk)
The loop was a copy-paste from slime wall code - it's redundant here.

--------------------------------------------------------------------------------
27034753ed | Nicholas Feinberg | 2022-07-16 13:03:42 -0700

Simplify god spell hate code

--------------------------------------------------------------------------------
9cde7d24d7 | Kate | 2022-07-16 19:52:21 +0100

Apply coding conventions

--------------------------------------------------------------------------------
c8ba4cecf6 | Kate | 2022-07-16 19:52:21 +0100

Remove obsolete evocations enhancer handling
Also tied in to Pakellas, this has been unused for years and makes the
code for all evokers unnecessarily more complicated.

--------------------------------------------------------------------------------
1d18206e20 | Kate | 2022-07-16 19:52:21 +0100

Remove obsolete Pakellas code
There's no reason for all this to still exist, since Pakellas doesn't
pretend to be anywhere near functional if a player does somehow transfer a
Pakellas-worshipping save to a modern version, and any future
reimplementation of the god would need to be a redesign from scratch.
Just keep around the minimum amount of code to allow transferring without
crashing or completely breaking the game, and don't punish players for
abandoning Pakellas.

--------------------------------------------------------------------------------
0e1e14f5ec | Kate | 2022-07-16 19:52:21 +0100

Fix some dancing weapon interactions under Gozag (#2530)
Fixes dancing weapon kills not granting wereblood stacks, as well as
possibly some other very niche interactions such as hints mode kill
messages not displaying. Closes #2530.

--------------------------------------------------------------------------------
9f61a2287f | Kate | 2022-07-16 19:52:21 +0100

Let Gozag give gold in the Abyss again
Missed from the rest of the reverts in ba36221789.

--------------------------------------------------------------------------------
9b1aa3ac5b | Nicholas Feinberg | 2022-07-15 22:05:20 -0700

Display weapons for zombie orcs
Fixes #2476.

--------------------------------------------------------------------------------
f0f64f35a9 | Nicholas Feinberg | 2022-07-15 22:00:55 -0700

Update Parghit desc to match art (ShaperMC)
:( goodbye, wiry frame

Closes #2482.

--------------------------------------------------------------------------------
dc776d099f | Nicholas Feinberg | 2022-07-15 21:58:15 -0700

Fix yet another fishtail bug (ardl)
Don't unmeld boots while in statue form after leaving water. Merfolk
fishtail bugs are my Moby Dick. Someone please rescue me.

Fixes #2537.

--------------------------------------------------------------------------------
a3d7043d74 | Nicholas Feinberg | 2022-07-15 21:46:16 -0700

Fix unneeded Devastator attack prompts
Closes #2554.

Also future-proof the sceptre of torment.

--------------------------------------------------------------------------------
1ba91cf0d7 | Nicholas Feinberg | 2022-07-15 21:42:16 -0700

Refactor melee_attack bad attack code

--------------------------------------------------------------------------------
6deee45b7e | Nicholas Feinberg | 2022-07-15 21:18:47 -0700

Shift goblin weapon tile up one pixel
This is an attempt to fix #2557, but I haven't bothered to compile
webtiles to test it.

--------------------------------------------------------------------------------
5add3c4762 | Nicholas Feinberg | 2022-07-15 18:37:58 -0700

Don't show fake frozen ramparts floors
Fixes #2609.

--------------------------------------------------------------------------------
16f3739923 | Nicholas Feinberg | 2022-07-15 18:28:26 -0700

Refactor is_seen_foo_wall functions

--------------------------------------------------------------------------------
777627f9b7 | Nicholas Feinberg | 2022-07-15 18:15:26 -0700

Don't autoexclude friendly statues (CarefulOdds)
Closes #2612.

--------------------------------------------------------------------------------
bdabc8c6d3 | Nicholas Feinberg | 2022-07-15 17:50:12 -0700

Fix: allow autoexplore with inhibited regen (various)
Yet another in a very long series of issues with i_feel_safe(), a876b224025
fixed various issues with resting while inhibited regen prevented the
player from healing. However, it unintentionally broke many other things
that depend on i_feel_safe(), such as autoexplore, running, interlevel
travel, spell memorization, etc etc. It also gave a very confusing message -
it was not at all clear that inhibited regen was at fault.

This refactors the code to split out the relevant check into a new 
can_rest_here()
function. (Maybe that function should also call i_feel_safe()?) It will almost
certainly cause new issues.

This closes #2595.

--------------------------------------------------------------------------------
24c0ca63c9 | gammafunk | 2022-07-15 12:57:06 -0500

fix: Properly tag two transporter vaults
The vaults gammafunk_sealed_arena and gammafunk_sealed_library were not
placing under their usual FLOAT orient. When various transporter vaults
were unified so their Vaults branch variants didn't need to be separate
vaults, these two got that treatment, but without proper tagging with
transparent for the outside and opaque for the inside. The passable tag
they were given meant they always failed to place as FLOAT vaults.

Also add salamander tyrants to gammafunk_sealed_library as alternates
for nagaraja, since that's appropriate for this vault.

--------------------------------------------------------------------------------
2802c0ca9a | Nicholas Feinberg | 2022-07-15 07:18:24 -0700

Clarify Dispersal Will checks (Booper)

--------------------------------------------------------------------------------
6161e89988 | Nicholas Feinberg | 2022-07-14 22:10:12 -0700

Dial back corrosive bolt scaling a bit (Ge0ff)
Accidental side effect from monster wand changes. (0fff342652f313)

Deep elf sorcerer: 3d25 -> 3d20 -> 3d21.
Ancient lich: 3d35 -> 3d42 -> 3d34.

--------------------------------------------------------------------------------
e8845773e3 | Nicholas Feinberg | 2022-07-14 10:00:40 -0700

Nerf short blade damage (acrobat)
When we switched long blades to using dexterity for damage, we made short
blades do likewise purely for player intuition. It felt very odd that the
smaller, more 'dextrous' short blades would use strength if long blades used
dex.

At the time, I noted (in 85b37ae345e8) that short blades might need a
compensatory nerf. This was indeed the case. A pretty middling endgame
character (15 str, 25 dex, 15 fighting & short blades) was getting the
equivalent of an extra ring of slaying compared to the old status quo, which
seemed neither necessary nor helpful - it made short blades less interesting
by helping players just plow through everything with them, rather than needing
to stab, etc.

To compensate, shift base damage on quick blades, short swords and rapiers down
1. Daggers are unaffected - their base damage is already quite low and they're
mostly used early game, where the stat difference is lower. Short swords don't
really need the nerf either, but I worry there's not enough differentiation 
between
them and rapiers otherwise.

I considered removing stat scaling from short blades entirely, but that seemed
like a more complex change (another special case). Let's try this for now.

--------------------------------------------------------------------------------
0fff342652 | Nicholas Feinberg | 2022-07-14 08:48:19 -0700

Brutally nerf Ijyb
In general, DCSS tries to provide some form of tactical counterplay
for threats. If you see a hydra on D:6, it's a normal-speed melee
threat, so you can walk away. A cyclops is slow; a centaur is fast,
but does much less damage and drops its bow in melee.

As the iconic splash screen of Ijyb melting a player with a wand of acid
depicts, Ijyb (and other early game wand-users) went a bit too far - long
ranged, very high damage threats. Let's try dialing them back to more
reasonable numbers for their depth and see how it plays.

Wand		Old		New
/acid           3d12            3d9
/light          3d12            3d9
/qsilver        3d14            3d9
/mindburst      1d22            1d20
/iceblast       3d8             3d8
/flame          3d3             3d5

Also, simplify the logic to remove a bonus special case for wands.

GOOE Mindburst damage increased slightly, purple draconian quicksilver bolt
damage decreased slightly, various corrosive bolt casters' damage decreased
slightly.

--------------------------------------------------------------------------------
e0f87948b3 | Nicholas Feinberg | 2022-07-14 07:43:31 -0700

Give the amulet of vitality a shop price
Somewhat arbitrary.

--------------------------------------------------------------------------------
116ddc6ace | Nicholas Feinberg | 2022-07-13 20:26:33 -0700

More explicitly document Zin hell effect resistance
This was canonically classed as 'protection from Chaos', but I don't
think hell effects are really all that chaotic. No more than half the
other things in Crawl, anyway.

We should probably make poly resistance a little clearer, too.

--------------------------------------------------------------------------------
303e14b210 | Nicholas Feinberg | 2022-07-13 20:20:14 -0700

Don't let Yred derived undead attack out of LOS (ebering)
This was an oversight during the recentish Yred rework. This might
not be the right way to fix this (perhaps we should add an unlimited
duration fake abjuration?), but eh, close enough.

--------------------------------------------------------------------------------
4793fd635e | Nicholas Feinberg | 2022-07-13 11:31:57 -0700

Add another welcome message

--------------------------------------------------------------------------------
385bb11a5b | Nicholas Feinberg | 2022-07-12 17:15:33 -0700

Add studio walls (Sastreii)
For later use in vaults.

--------------------------------------------------------------------------------
174bc33265 | patrick | 2022-07-12 16:25:51 -0400

Fix errors in some recently-added variable-altar temples
I had somehow missed that get_altar_counts returns a string, not
a number. I have fixed the erroneous temples.

--------------------------------------------------------------------------------
139bfe3b0c | Nicholas Feinberg | 2022-07-12 12:37:01 -0700

Fix beams stopping at target (dilly)
Only stop when you'd hit an ally, not when you'd hit an enemy, ha.

--------------------------------------------------------------------------------
a65acad94f | David Damerell | 2022-07-12 18:35:05 +0100

Change acquirement's description to match new acquirement
Another highly important change for ebering. :-)

--------------------------------------------------------------------------------
1e95ca9f62 | gammafunk | 2022-07-11 23:37:41 -0500

fix: Airstrike damage for monster
This no longer has a minimum base damage, but the relevant code wasn't
fully updated.

--------------------------------------------------------------------------------
34b5299d54 | Nicholas Feinberg | 2022-07-11 19:02:01 -0700

Add reflect icon for monsters (Sastreii, acrobat)
To make it a little more obvious when your iron shot is about to come
back hilariously toward you.

--------------------------------------------------------------------------------
72eb547380 | Nicholas Feinberg | 2022-07-11 18:51:26 -0700

Add a skeleton for new Lerny tiles (Sastreii)
Skeletal Lernaean hydra tiles.

--------------------------------------------------------------------------------
412af75db4 | Nicholas Feinberg | 2022-07-11 18:27:59 -0700

Make phantoms avoid teleport closets (leNuup)

--------------------------------------------------------------------------------
cb1280458a | Edgar A. Bering IV | 2022-07-10 23:58:36 -0500

vaults: give thematic (and good) loot to bailey warlords
Warlords get a one chance in three to get a good_item weapon, but an orc
warlord with a good_item greatsword looks out of place in an axe baily,
so let's outfit them particularly and force the good_item since the
warlords are quite early.

--------------------------------------------------------------------------------
bc3a993a49 | hellmonk | 2022-07-10 20:02:53 -0400

feat: Minor artifact price adjustments

--------------------------------------------------------------------------------
9d1704292e | hellmonk | 2022-07-10 19:51:58 -0400

feat: Rework scroll prices.
Bring these more into line with rarity/utility.

--------------------------------------------------------------------------------
a07a83588e | hellmonk | 2022-07-10 19:36:33 -0400

feat: Rework wand shop prices
Scale cost linearly with charges and rearrange the hex effects.

--------------------------------------------------------------------------------
80bc156356 | hellmonk | 2022-07-10 18:47:58 -0400

Reduce irradiate max damage

--------------------------------------------------------------------------------
72347fce65 | Nicholas Feinberg | 2022-07-10 13:42:02 -0700

Auto-stop-at-target when firing toward allies
Instead of prompting ("really shoot toward your goblin?"), use '.'
targeting mode automatically if your shot might otherwise miss an enemy
and hit an ally.

TODO: find remaining cases that this needs to apply to, then remove
the overshoot_prompt boolean.

--------------------------------------------------------------------------------
d827844252 | Nicholas Feinberg | 2022-07-08 11:19:01 -0700

Fix: Allow zapping /roots through ancestors (acrobat)

--------------------------------------------------------------------------------
c37b1572da | patrick | 2022-07-07 20:37:50 -0400

Remove scythes from ghost vaults with Xom altars (ebird)
Looks like the removal of scythes missed one. Rather than replacing
them with reskinned halberds, just remove them from the list.

--------------------------------------------------------------------------------
a620ab95ad | Kate | 2022-07-07 18:56:23 +0100

Fix the mountain boots showing messages on all beams (#2599)
Closes #2599.

--------------------------------------------------------------------------------
66395355a5 | Nicholas Feinberg | 2022-07-06 16:45:08 -0700

Hackily 'fix' a vp webtiles mut menu bug (rhaal)

--------------------------------------------------------------------------------
1caec59328 | Nicholas Feinberg | 2022-07-06 16:41:20 -0700

Don't randomize displayed aux damage (acrobat)
Display the max damage for all auxes, including demonic touch.

--------------------------------------------------------------------------------
94b489e0ae | Nicholas Feinberg | 2022-07-05 07:54:28 -0700

Simplify hex miscasts (acrobat)
Hasting foes is a little too vicious, and also adds extra complexity
in terms of preventing the player from instantly excommunicating themself
by using Spellbinder with Cheibriados.

--------------------------------------------------------------------------------
2d5a0d7a41 | Nicholas Feinberg | 2022-07-05 07:39:38 -0700

Don't call bad miscasts 'potentially lethal' (riverfiend)
That's not limited to top-tier miscasts (the severity is based on
your MHP, not current HP, so lower colored miscasts can also be lethal),
and it's not accurate for eg hex miscasts (which can't directly damage you).

--------------------------------------------------------------------------------
9904bce7a6 | Nicholas Feinberg | 2022-07-04 22:50:25 -0700

Replace hex miscast effect (riverfiend)
Wiping player effects didn't make much sense for modern hexes (since
the school has fairly few durations that would be affected by cancellation),
and was quite abusable. Replace it by hasting nearby enemies.

--------------------------------------------------------------------------------
82769f0e0c | Nicholas Feinberg | 2022-07-04 14:03:47 -0700

New lochaber axe tile (Sastreii)

--------------------------------------------------------------------------------
41c3e4b865 | Edgar A. Bering IV | 2022-07-04 10:42:22 -0500

docs: update CREDITS.txt

--------------------------------------------------------------------------------
0d988dd55d | advil | 2022-07-04 10:44:28 -0400

fix: remove a double exponentiation in a lua call
Seems to be just a misunderstanding in how bitfield iteration works. I
have also added a compile check for this bitfield's range value, which
had gotten out of sync.

--------------------------------------------------------------------------------
4a14ea37d6 | Nicholas Feinberg | 2022-07-03 22:22:39 -0700

No attacks of opportunity for constricted foes (acrobat)
Since they can't follow.

--------------------------------------------------------------------------------
49d5403b4a | advil | 2022-07-03 22:16:27 -0400

fix: add a missing nullptr check in a lua call

--------------------------------------------------------------------------------
8c06add4a9 | Nicholas Feinberg | 2022-07-03 18:30:04 -0700

Don't stop /roots tracers at invisible foes (dilly)
Oops!

--------------------------------------------------------------------------------
3812dd5c9c | hellmonk3 | 2022-07-03 14:34:17 -0500

feat: silent ossuary map
All but the outer edge of the map is silenced. Typical ossuary monster set.
--------------------------------------------------------------------------------
df645b4c5c | Rytis Petronis | 2022-07-03 14:21:06 -0500

feat: option for adjusting explore_greedy non-autopickup item visits
explore_greedy_visit is added as an rc file option to adjust explore_greedy 
behavior. By default greedy explore travels to piles of items on each square in 
addition to items that are eligible for autopickup. This setting allows to 
also/only go to enchanted items or artefacts instead by providing a list option 
explore_greedy_visit, supporting



- stacks: makes explore_greedy visit stacks even if they don't necessarily have 
target auto pickup items

- glowing_items: makes explore_greedy visit glowing_items, even if not in a 
stack

- artefacts: makes explore_greedy visit artefacts, even if not in a stack



The default is updated to `explore_greedy_visit = glowing_items,artefacts`, as 
stack-visiting is a behavior more for console UI smoothness and accessibility 
than any gameplay reasons; visiting glowing_items and artefacts should allow 
the default player to loot efficiently (finding goodies).
--------------------------------------------------------------------------------
a2102b4d9d | patrick | 2022-07-03 12:50:04 -0400

Add a randbook.txt entry (hellmonk)

--------------------------------------------------------------------------------
426022cc84 | patrick | 2022-07-03 12:20:13 -0400

Add some more options to randbook.txt
Add some more options for naming random-generated spellbooks. I kept
all of the existing options, except for (most of) the nouns and
adjectives for Air Magic that were about flight, since that spell is
no longer part of the school.

--------------------------------------------------------------------------------
eadc89832f | damerell | 2022-07-03 10:22:26 -0500

fix: correctly produce strings of the form "one hundred and one"
In Australian English there is an "and" after "hundred" in numbers

of this kind. (Source: I asked all the Aussies I know.)
--------------------------------------------------------------------------------
5b9a7de867 | patrick | 2022-07-03 09:43:12 -0500

vaults: add several new temples, add section for tiny temples
Adds several new temples, including several variable-size temples,
an edit of my old great_sept temple so it has a chance to place
7 altars again, a temple where demons yell at you, and a temple
featuring Lugonu's victory over the temple gods.

[ Committer's note: removed a use of permarock, tweaked some colours. ]

--------------------------------------------------------------------------------
b127be5c9c | Kate | 2022-07-03 15:12:42 +0100

Cancel constriction enchantments on Duel (acrobat)
The actual constriction damage/effect was already cancelled by the duel,
but the roots/zombie hands enchantments weren't ended so were still
displaying visually on monsters.

--------------------------------------------------------------------------------
d130422d61 | Nicholas Feinberg | 2022-07-03 07:00:03 -0700

Fix a refactoring oversight (Aliscans)

--------------------------------------------------------------------------------
34511f41fd | Nicholas Feinberg | 2022-07-02 20:58:20 -0700

Remove the prompt for firing at unhittable enemies
This drives me absolutely nuts, and has for years. There's no point
in this prompt! Just don't fire.

--------------------------------------------------------------------------------
13870d9ccb | Nicholas Feinberg | 2022-07-02 20:42:21 -0700

Don't allow distortion blinking during aoops
This has a reasonable chance of crashing the game, I think. It
certainly spooks me out.

--------------------------------------------------------------------------------
163208c30e | Nicholas Feinberg | 2022-07-02 20:40:45 -0700

Rename Necrotize -> Necrotise (|amethyst)
Follow Australian English.

--------------------------------------------------------------------------------
d32efaa14b | Nicholas Feinberg | 2022-07-02 20:34:07 -0700

Rename: bouda -> gnoll bouda
To clarify to players what species it is, since that's relevant to
its function and otherwise not obvious from the name.

--------------------------------------------------------------------------------
471e52b980 | Nicholas Feinberg | 2022-07-02 20:25:33 -0700

Allow friendly torpor snails to slow foes
Way back in 2014, when I first added torpor snails, I prevented
friendly torpor snails from slowing enemies. In 18cebf10d87e656198,
I wrote:

    Disables the aura entirely, since it'd be hilariously
    abusable otherwise. (As long as the Enslave spell
    remains in the game...)

Enslave has been gone for a long time, as is Shadow Creatures, and
/charm charges are quite limited. Let's simplify, and let players
have fun.

Also double torpor snail Will (40 -> 80), just to make sure there's
not *too* much fun being had.

--------------------------------------------------------------------------------
8cd43ee5b5 | Nicholas Feinberg | 2022-07-02 20:20:47 -0700

New statuesque beauties (Sastreii)
New statue form tiles for all species.

--------------------------------------------------------------------------------
7df905bfc2 | Nicholas Feinberg | 2022-07-02 20:15:28 -0700

Re-add ranged to-hit % display

--------------------------------------------------------------------------------
4cfcd3498a | Nicholas Feinberg | 2022-07-02 20:12:14 -0700

Unify melee & ranged combat noise
For consistency, make both melee & ranged attacks make noise
proportionate to the damage done at the defender's location.

--------------------------------------------------------------------------------
1c776c33a3 | Nicholas Feinberg | 2022-07-02 19:56:25 -0700

Remove unused should_alert_defender var
Unused since the removal of darts of sleeping (9adfa933843a, 2019).

--------------------------------------------------------------------------------
800ede72b0 | Nicholas Feinberg | 2022-07-02 13:03:44 -0700

Simplify ranged weapon noise
There's no particular need for different ranged weapons to make
different amounts of noise.

--------------------------------------------------------------------------------
90d98aa4a7 | Nicholas Feinberg | 2022-07-02 12:57:55 -0700

Readjust Spriggan ranged apt (acrobat)
Going from +2 slings to +2 ranged weapons was expected to be a buff,
but in practice it was a bit much. Spriggans are already quite good
at ranged weapons without a positive aptitude, by virtue of their high
dexterity and fast movement speed - let's move them down to +0 for now.

--------------------------------------------------------------------------------
a0f254aafb | Nicholas Feinberg | 2022-07-02 12:57:35 -0700

Don't let roots go through enemies and walls
Oops!

--------------------------------------------------------------------------------
14d1036c72 | Nicholas Feinberg | 2022-07-02 12:57:35 -0700

Make monsters not zap roots at constricted players
Waste of charges.

--------------------------------------------------------------------------------
7a8fcbc185 | Neil Moore | 2022-07-02 01:26:09 -0400

Add a quote for shambling mangroves, thanks to Prof Neil Peart.

--------------------------------------------------------------------------------
40bbea3e73 | Nicholas Feinberg | 2022-07-01 19:36:50 -0700

Clarify fencer's gloves' effect (4L2A)

--------------------------------------------------------------------------------
9e05a5b3ab | Nicholas Feinberg | 2022-07-01 19:36:50 -0700

Fix a roots vs player crash (HendSelp)

--------------------------------------------------------------------------------
37b1a91500 | gammafunk | 2022-07-01 17:53:59 -0500

fix: Update a clua monster info function
When the `holiness()` monster info method is called with no arguments,
it's supposed return the holiness as a string, but the implementation
was incorrect, so fix this.

--------------------------------------------------------------------------------
e5ab06ae1c | Nicholas Feinberg | 2022-07-01 15:10:04 -0700

Set up wand of roots damage
For players, the goal is for the base damage to be about 1/3rd of
an iceblast use - 2d4 at 0 evo (compared to iceblast's 3d7) and
2d14 at 27 evo (compared to iceblast's 3d27). Roots does multiple
turns of damage (increasing over time) & also has bonus utility
(doesn't hit allies, doesn't check rC, wastes monster turns), so this
seems reasonable as a starting point.

For monsters, this matches Jorgrun's Grasping Roots spell. Ijyb will
deal about 2d4 with it (I believe!), and other monsters will scale.

--------------------------------------------------------------------------------
5507e99a2f | Nicholas Feinberg | 2022-07-01 15:10:04 -0700

Refactor constriction
Try to more clearly split up different ways to be constricted.

--------------------------------------------------------------------------------
a4b73df947 | Nicholas Feinberg | 2022-07-01 15:10:04 -0700

Alternate wand of roots with wand of iceblast

--------------------------------------------------------------------------------
ddcf899e2d | Nicholas Feinberg | 2022-07-01 15:10:04 -0700

New item: wand of roots
Continuing the theme of alt items, wands of roots are a new item that
will alternate with /iceblast. They fire a 3x3 (fireball-sized) effect
which constricts its victims (ala BVC), with a duration that scales
with wand power.

--------------------------------------------------------------------------------
b44b3c5ca4 | Nicholas Feinberg | 2022-07-01 15:10:04 -0700

Refactor Grasping Roots

--------------------------------------------------------------------------------
652cadfb38 | Aliscans | 2022-07-01 15:31:57 -0500

feat: only list gods you can ever worship in the dungeon overview & dump
Different gods forbid worship from different species. This change gives a way 
for the player to check which gods are available, and hides irrelevant 
information about whether an unusable altar has been found.



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
7e300f6e71 | Perry Fraser | 2022-07-01 15:25:30 -0500

refactor: wearing/removing armour
This refactors a good bit of the logic for taking off armour, as well as
a few other things in the inventory wear/unwear section.

I also removed a few TODOs, clarified the semantics of the return values
of the wear/unwear armour functions (they are not used anywhere anyway
[ Committer's note: they are used in clua to indicate success, but
 the inverted return values changed by this commit were not correct ]),
and added a few doc comments for some of the less intuitive functions.

[ Committer's note: Closes #2340. Rebased and fixed up, restored
  overzealously removed inscription checking prompts. ]

--------------------------------------------------------------------------------
8ec7be85a6 | Perry Fraser | 2022-07-01 14:45:37 -0500

fix: prompt once on tiles for wearing risky items
On Tiles, you would be prompted twice if you wanted to wear an item that
was potentially dangerous (e.g., {Contam}). This removes the redundant
check_warning_inscriptions that were happening when handling these
clicks.

--------------------------------------------------------------------------------
24d99152b8 | Edgar A. Bering IV | 2022-07-01 11:31:03 -0500

feat: warn when an orb of energy backfire was guaranteed (Cebolla)
Closes #2449

--------------------------------------------------------------------------------
bb76e39405 | Edgar A. Bering IV | 2022-07-01 09:22:23 -0500

fix: don't print wereblood messages silenced

--------------------------------------------------------------------------------
4d7333d4e2 | ruxi | 2022-06-30 22:35:56 -0500

feat: describe storm form's insubstantialness
Closes #2509

--------------------------------------------------------------------------------
250d9ad825 | RojjaCebolla | 2022-06-30 22:12:23 -0500

feat: set hp_colour to higher defaults
This might subtly hint to newer players that things have

gone awry sooner.
--------------------------------------------------------------------------------
7e9ac4eb86 | Reono | 2022-06-30 22:03:45 -0500

vaults: new vaults by reono
Closes #2516

--------------------------------------------------------------------------------
a24da20820 | Nicholas Feinberg | 2022-06-30 15:08:20 -0700

Break out extra throwing base damage separately
Try to make throwing damage rates clearer.

--------------------------------------------------------------------------------
4d60fd9eac | Nicholas Feinberg | 2022-06-30 15:08:20 -0700

Unhide Damnation's damage rating (CarefulOdds)
I'd forgotten that Damnation did normal arbalest damage in addition
to the Damnation burst.

--------------------------------------------------------------------------------
2e8140cf71 | Kate | 2022-06-30 22:47:27 +0100

Fix spelling

--------------------------------------------------------------------------------
18b9c4ed99 | Kate | 2022-06-30 22:47:27 +0100

Interrupt delays on paralysis/petrification/sleep
Sleep already interrupted some delays, but not all. Make all three of
paralysis, petrification and sleep consistently interrupt delays, including
stair travel, and don't allow resuming delays such as equipping/unequipping
armour when interrupted by one of these effects.

--------------------------------------------------------------------------------
e8933c00c5 | Kate | 2022-06-30 22:47:27 +0100

Update Spriggan's Knife description

--------------------------------------------------------------------------------
967b614d45 | Kate | 2022-06-30 22:47:27 +0100

Remove some unused stab messaging
These stab messages haven't been able to be used since 9c76b8a688. The stab
strengths here should probably also be enum-ified instead of being magic
numbers.

--------------------------------------------------------------------------------
a993524b14 | Kate | 2022-06-30 22:47:27 +0100

Fix tag_upgrade compilation
Remove HINT_SEEN_RANDART yet again, and remove an unused function.

--------------------------------------------------------------------------------
dd995151d0 | Nicholas Feinberg | 2022-06-30 14:21:14 -0700

Fix minor hints mode issues

--------------------------------------------------------------------------------
1c741a5a2c | Brian Power | 2022-06-30 16:05:59 -0500

refactor: externalise hints text
Move hints text to the database, with some lua support.

Closes #2271

--------------------------------------------------------------------------------
e2a13e336d | U-DESKTOP-2MKRQ21\rosst | 2022-06-30 13:51:37 -0500

text: speech, death, and banishment lines for some uniques
Erolcha gets a banishment line, as a notable early banisher.

Louise gets a banishment line, for the Lore.

New speech lines for Grum, Kirke, Lodul, Margery, Sojobo and Snorg.

Polyphemus gets a rare death message, also for the Lore.

[ Closes #2481 ]

--------------------------------------------------------------------------------
3f25a06b81 | Edgar A. Bering IV | 2022-06-30 11:41:19 -0500

feat: make monster airstrike damage match player's, display

--------------------------------------------------------------------------------
4c3e83d15c | hellmonk | 2022-06-30 11:19:58 -0500

feat: Display airstrike and discharge damage

--------------------------------------------------------------------------------
d72e128878 | hellmonk | 2022-06-30 11:19:36 -0500

feat: Rework the static discharge formulas
Primarily so that damage can be displayed in future. Don't rely on division by
power to recur, just caclulate the number of arcs to do upfront and do them at
full power. Additionally, random round all of the formulas to avoid messy power
breakpoints. New numbers give mostly similar damage at low power, I think.
At high power with a lot of targets things can get a bit wilder. If it's a
problem, can cap power at 50 instead of 100.

--------------------------------------------------------------------------------
b575a813fa | Edgar A. Bering IV | 2022-06-30 10:39:00 -0500

feat: rework and rename gnoll shaman -> bouda (nikheizen)
Gnoll shamans are somewhat lackluster as an enemy. They fit the
"support priest" archetype pretty well, but unfortunately this not as
effective early on as its Deep Troll counterpart in Depths/Vaults. Early
game has shorter fights and monsters have to get to business more
quickly as every turn matters.

This commit reworks them into "Bouda," and also creates a monster type
who can more easily bridge the gap between early dungeon Orc Wizards and the
more powerful spellcasters who can show up later on. This is
accomplished by giving them support spells that work more rapidly: a new
"Hunting Call" is like battlecry, but applies swiftness in favor of might
(helping a gnoll pack swarm better without being too strong of a buff
early), and Weakening Gaze, fitting the Evil Eye flavour. As an instant
gaze attack, Weakening Gaze does a better job of debuffing the player in
a noticable way than Corona, particularly in the quicker fights of the
early game.

Bouda are characters from Northeast African folklore who are shapeshifters
that turn into jackals. They have the power of the Evil Eye which curses
others with spectacular misfortune. The term is historically one of
exclusion-othering someone by calling them Bouda is analogous to
the European tradition of naming folks as witches. In crawl they have
all the malevolent energy of their mythological basis, but here it is
directed towards the player-the dungeon's one true outgroup.

Closes #1969. Based on that PR

--------------------------------------------------------------------------------
477250c084 | advil | 2022-06-30 09:13:41 -0400

fix: improve wording in weapon descriptions
I just wanted to fix this wording, but I found a whole bunch of other
issues here that could be better and I don't have time to fix right now.
(Most misleading is that this item desc code ignores shield delay.)

--------------------------------------------------------------------------------
358383bc75 | amcnicky | 2022-06-29 22:27:01 -0500

tiles: hood of the Assassin
hood of the Assassin - made sharper, more like a hood, and shifted
colour palette towards red.

Finishes half of #1387
Closes #1569

--------------------------------------------------------------------------------
20e0cd1ebb | RojjaCebolla | 2022-06-29 18:06:32 -0500

vaults: a few maps featuring starflowers
An abyssal rune vault and four exit vaults.

[ Committer's note: Closes #2466. Squashed and rebased. Tweaked monster
  stats a bit more. Adjusted harpoon shot AI logic. Updated the rune
  vault for runelight usage. ]

--------------------------------------------------------------------------------
122d04a4e0 | RojjaCebolla | 2022-06-29 18:06:32 -0500

feat: new monser "Starflower", an abyssal oklob
A stationary plant/tentacle hybrid monster with harpoon shot, reach 3
distortion melee, reach 2 melee, and an additional melee attack. Meant
as a vault-placed monster for abyssal vaults, guarding an exit or a rune
or what have you, as a threat that's dangerous to be close to, but can
be neutralized if the harpoon shot can be blocked or avoided somehow.

--------------------------------------------------------------------------------
a47bfe3f80 | Edgar A. Bering IV | 2022-06-29 17:32:43 -0500

feat: don't fire harpoon shots if a melee attack is possible
Affects Harold, who now won't try to pull you back unless you're out of
pole arm range. Also affects the monster added in the next commit.

--------------------------------------------------------------------------------
b7bb9d756e | patrick | 2022-06-29 16:31:50 -0500

vaults: some abstract decor vaults to float.des
Some more abstract vaults based on geometric designs, except these ones
are big so they go in float.des.

[ Closes #2559 ]

--------------------------------------------------------------------------------
ff91a8ed75 | patrick | 2022-06-29 16:31:50 -0500

vaults: two new theme shops
Features a shop that sells big spellbooks and one which is much smaller
and sillier.

--------------------------------------------------------------------------------
26dd769911 | patrick | 2022-06-29 16:31:50 -0500

vaults: a simple generic overflow altar
Just a simple altar. Some water, some lava, some altars.

--------------------------------------------------------------------------------
8e6dc78163 | patrick | 2022-06-29 16:31:50 -0500

vaults: various designs for mini_features.des
Add some decor vaults based on geometric patterns and designs.

--------------------------------------------------------------------------------
0912897232 | Edgar A. Bering IV | 2022-06-29 15:48:11 -0500

fix: remove a debug weight (hellmonk)

--------------------------------------------------------------------------------
184eed5aab | Edgar A. Bering IV | 2022-06-29 15:36:47 -0500

feat: rare low-altar count temples
The (higher-weight) cousins of the Temple with every god.

One is a small, colourful, crystalline grotto with exactly one altar.
The other is an abandoned empty temple with no altars at all!

--------------------------------------------------------------------------------
1659c76842 | Edgar A. Bering IV | 2022-06-29 14:07:19 -0500

feat: enable small Temples
With the addition of small Temple maps, lower the minimum Temple size to 6.

The distribution used has a picewise linear probability density
function, starting with a 2.5% chance of a temple of size 6, rising to
its maximum at size 13.5, (roughly 10% each for sizes 13 and 14) and
then decreasing to a 2.5% chance of a temple of size 21. This is a bit
more verbose than using 6 + random2avg(16,2), but the latter makes the
extremes too small.

A distribution that falls off harder in the direction of larger temples
might be interesting but it's a somewhat tricky balancing act.

--------------------------------------------------------------------------------
1f4f75ee32 | Edgar A. Bering IV | 2022-06-29 14:05:40 -0500

feat: add random2min and random2max
For when distributions with various polynomial pdfs are desired.

--------------------------------------------------------------------------------
d6dbc1d939 | hellmonk3 | 2022-06-29 12:07:58 -0500

feat: nine new temples
- hellmonk_temple_micro_hex



6-8-10 altars



-hellmonk_temple_forest_ring



8-9-12-13 altars



- hellmonk_temple_of_storms



7, 8, 11, 15, or 19 altars.



- hellmonk_temple_divided_pantheon



Places any odd number of altars from 7 to 19.



- hellmonk_choose_your_character



Rare temple with every god.



- hellmonk_temple_rainy



6, 8, 9, or 10 gods.



- hellmonk_temple_flakie



6, 8, 10, or 12 gods.



- hellmonk_temple_beads



6-10 gods.



- hellmonk_temple_two_chambers



6-8, 12, or 15 gods.



Co-authored-by: hellmonk <nldehaan91@gmail.com>

Co-authored-by: Edgar A. Bering IV <trizor@gmail.com>
--------------------------------------------------------------------------------
221c65d467 | Perry Fraser | 2022-06-29 11:02:28 -0500

fix: correct desc. grammar for CANT_SEE_YOU status

--------------------------------------------------------------------------------
da9226009b | Alex Jurkiewicz | 2022-06-29 10:39:55 -0500

refactor: tag out some Pakellas-specific code
Closes #2475

--------------------------------------------------------------------------------
fe44c63f7f | Alex Jurkiewicz | 2022-06-29 10:36:26 -0500

refactor: simplify player mp/hp-on-kill implementation
Split a large conditional into smaller blocks for clarity. Also, further
isolate Pakellas logic so it can be more easily removed when
TAG_MAJOR_VERSION increases to 35.

[ Closes #2475 ]

--------------------------------------------------------------------------------
e5bf7c5c39 | RojjaCebolla | 2022-06-29 10:16:37 -0500

feat: reduce the +stab effect on Spriggan's Knife by 50%
Most monsters die in a single hit from the Spriggan's Knife; those that survive 
take massive damage and can be quickly dispatched with a couple more stabs. 
Stabs that result from netted/webbed/petrifying/invisible/confused often leave 
the target open for further stabbing, as the condition still applies. This is 
especially overpowered with irresistible status effects such as that from Line 
Pass.



To make this less of a guaranteed instakill, add a coinflip(). It may take a 
few tries before the target dies.
--------------------------------------------------------------------------------
7d34257905 | 4Hooves2Appendages | 2022-06-29 09:59:06 -0500

text: quotes for charm and Mephetic cloud
Plus some quotation mark fixes.
--------------------------------------------------------------------------------
85b6c24e30 | spicyCebolla | 2022-06-29 09:49:01 -0500

vaults: arrival vaults by SpicyCebolla
- spicycebolla_arrival_risky_transporter

This teaches that using a transporter can be risky:
the 'porter takes you from pretty safe terrain to a wide open space.

[ Committer's note: simplified the substitutions, cleaned up, added
  sightlines. ]

- spicycebolla_arrival_clurvy

a few simple 20% chances of theme variations, giving different
iterations on a forgotten stand of trees (possibly long forgotten)

[ Committer's note: adjusted tree colouration, prevented a small chance
  of a teleport closet ]

- spicycebolla_green_bress_n_ham
- spicycebolla_green_bress_n_ham_2

Simple arrivals.

- spicycebolla_arrival_ecumenical

Places a faded altar with stairs (or a very lucky teleport) required to
reach it.

[ Committer's note: This slightly increases the 87.5% chance of a D:1-3
  faded altar, but not so much that it matters. Closes #2492 ]

--------------------------------------------------------------------------------
91da1267ba | spicyCebolla | 2022-06-29 09:08:56 -0500

fix: entry vault missing some blood
relevant to #704

--------------------------------------------------------------------------------
cd6ae0ea07 | Edgar A. Bering IV | 2022-06-29 08:43:01 -0500

fix: scary damage fraction at tier 2 (Sentei)

--------------------------------------------------------------------------------
9e4779279f | Edgar A. Bering IV | 2022-06-29 07:39:57 -0500

vaults: tweak two arrival vaults

--------------------------------------------------------------------------------
dc9d147ae0 | Edgar A. Bering IV | 2022-06-29 07:33:42 -0500

text: sling changes in zh/items.txt

--------------------------------------------------------------------------------
8f12646833 | Edgar A. Bering IV | 2022-06-29 07:32:55 -0500

lint: checkwhite

--------------------------------------------------------------------------------
4208692735 | 张凯 | 2022-06-29 07:24:08 -0500

text: update zh/items.txt
Updated translations.
--------------------------------------------------------------------------------
3d7fbe0af2 | nicolae-carpathia | 2022-06-28 23:44:41 -0500

vaults: add several small vaults containing transporters to mini_features.des
Add several small vaults which use transporters in ways besides just

setting off an optional murder zone. Some, with "diode" in their names,

allow the player to only move in one direction down one or more hallways.

The others just make weird intersections.
--------------------------------------------------------------------------------
a39a8af6d9 | Nicholas Feinberg | 2022-06-28 21:39:11 -0700

Adjust arbalest and hand crossbow (acrobat)
Make arbalest a bit weaker earlier on, and make hand crossbow more
competitive as a 'high-tier' one-hander.

See this graphic:

https://media.discordapp.net/attachments/205316046230388737/991216806184366130/r
ange.PNG

--------------------------------------------------------------------------------
5686a2c4f1 | Edgar A. Bering IV | 2022-06-28 22:19:44 -0500

text: some quotes citation editing

--------------------------------------------------------------------------------
836e7b5932 | Edgar A. Bering IV | 2022-06-28 21:42:35 -0500

text: a new Orb adjective and welcome message (Rosstin)
Closes #2485

--------------------------------------------------------------------------------
6bb282b620 | Nicholas Feinberg | 2022-06-28 12:33:36 -0700

Simplify jewellery price code
Make stat ring prices match AC/EV ring prices - they don't seem
substantially better or worse.

--------------------------------------------------------------------------------
89c9ce7d72 | Nicholas Feinberg | 2022-06-28 12:32:14 -0700

Remove an unused var

--------------------------------------------------------------------------------
50f2ce223d | Nicholas Feinberg | 2022-06-28 12:00:49 -0700

Don't let large players flounder in toxic bogs
The DNGN_SHALLOW_WATER check here was redundant, and only affected bogs.

--------------------------------------------------------------------------------
a706738f4e | advil | 2022-06-28 12:37:20 -0400

fix: update some throw/launch code
These are a couple of places that relied on get_item() being always ammo,
from the original newquiver implementation. This was still approximately
true for throwing/launching, until ce39da1c22d. However, ce39da1c22d is
supposed to be the correct way to set a tile, etc. This commit makes
ce39da1c22d work correctly, so I have reverted 0fc3c4380c.

--------------------------------------------------------------------------------
0fc3c4380c | Nicholas Feinberg | 2022-06-28 06:52:31 -0700

Revert "Fix quivered launcher tile"
This reverts commit ce39da1c22d85fa8819e7db12783cbae1a8eb494.

--------------------------------------------------------------------------------
ce39da1c22 | Nicholas Feinberg | 2022-06-27 22:27:28 -0700

Fix quivered launcher tile
Farewell, mysterious ❌.

--------------------------------------------------------------------------------
64f5989226 | advil | 2022-06-27 10:27:08 -0700

fix: don't use levelgen checks for TRJ splitting (particleface)
The TRJ splitting code doesn't use normal summon placement code (which
would typically be `find_habitable_spot_near`), but rather repurposes
some levelgen placement code, that has the right adjacenty check for
TRJ.  However, because this code is otherwise used only in levelgen, it
enforced an `MMT_NO_MONS` mask check. A result is that if you can manage
to fight TRJ in the loot vaults, it won't split.

This commit simply conditionalizes the levelgen check, so that the
placement-finding code can be used either way. On a quick glance, this
should bring it in line with regular summon placement; there isn't an
explicit los check but I expect that's approximated by the floodfill.

--------------------------------------------------------------------------------
7f417c9bbb | Nicholas Feinberg | 2022-06-26 18:22:17 -0700

Turn fustibaluses into hand crossbows
Fixes a crash when trying to fire fustibali. Easier than retaining
support for them.

This will result in some funny randart names, since those will include
the old name of the weapon.

Not bothering with a minor tag.

--------------------------------------------------------------------------------
ac13c76575 | gammafunk | 2022-06-26 18:29:46 -0500

feat: New runed door tiles from Sastreii
The old tiles used a light blue color for the runes that didn't contrast
well with the blues used for clear doors. This set of tiles uses an
orange color for runes that has better contrast.

--------------------------------------------------------------------------------
0fec994a2d | advil | 2022-06-26 13:15:32 -0700

fix: remove an unnecessary `fixup_skills` call
This fixup is uniformly called on characters after they've loaded at the
end of _post_init, and it's much safer to call it after loading anyways.
So, remove the early call for the ranged merger fixup -- the _post_init
call does accomplishes the same thing.

--------------------------------------------------------------------------------
365da2f8ac | Nicholas Feinberg | 2022-06-26 12:32:08 -0700

Fixup a gnoll save compat crash?
Boy, this code is scary.

--------------------------------------------------------------------------------
6dac4ea423 | Nicholas Feinberg | 2022-06-25 22:41:36 -0700

Don't give old gnolls huge Ranged Weapons skill (CarefulOdds)
oops

--------------------------------------------------------------------------------
f28ee254f9 | Kate | 2022-06-25 21:48:00 +0100

Scale potion of attraction effect with time taken
Fixes fast actions resulting in monsters being pulled more effectively with
a potion of attraction active.

--------------------------------------------------------------------------------
7753eeab26 | Kate | 2022-06-25 21:48:00 +0100

Compress some bad mutations to 2 levels
As with the other similar chance-based bad mutations (shoutitis and
deterioration, and now also -Scroll and -Potion), reduce teleportitis and
berserkitis to 2 levels, with the first level being equivalent to somewhere
between the old levels 1 and 2, and the second level equivalent to the old
level 3.

--------------------------------------------------------------------------------
769091470e | Nicholas Feinberg | 2022-06-25 13:24:45 -0700

Save ranged quiver actions
Closes #2506.

--------------------------------------------------------------------------------
55bc7a5df9 | Nicholas Feinberg | 2022-06-25 12:34:16 -0700

Nerf walking crystal tomes
HD 20 -> 15, crystal spear damage 3d40 -> 3d34. XP unchanged.

--------------------------------------------------------------------------------
7b5732409f | Nicholas Feinberg | 2022-06-25 12:17:12 -0700

Remove fustibaluses
Fustibaluses were originally created as an upgrade for players using
the Slings weapon skill. Now that all ranged weapons use one skill,
players can easily upgrade from slings into bows or crossbows. There's
nothing particularly resonant about fustibaluses thematically, and
they don't fill any gap in the loot game not filled by other items,
so there's no need to keep 'em around.

If we want more ranged weapon types, it'd make more sense to add more
exciting weapon types like the cho-ko-nu, composite bow or woomera.

--------------------------------------------------------------------------------
e572f60725 | Nicholas Feinberg | 2022-06-25 12:15:51 -0700

Readjust ranged weapons' stats and distribution
Shortbows and slings are more common. Longbows are now rarer and more
common later. Hand crossbows tend to show up in Vaults, as an eveningstar-ish
upgraded one-hander. Arbalests are shifted around. Triple crossbows are 
unchanged.

--------------------------------------------------------------------------------
ef730cc156 | Nicholas Feinberg | 2022-06-25 12:15:50 -0700

Don't give hand crossbows out to kobolds
They're being positioned as a later-game weapon.

--------------------------------------------------------------------------------
941941d4ec | Nicholas Feinberg | 2022-06-25 12:15:50 -0700

Make Punk a custom weapon type
In preparation for fustibalus removal.

--------------------------------------------------------------------------------
1416de1b61 | Nicholas Feinberg | 2022-06-25 12:11:09 -0700

Remove hunting from slings
I renamed 'slings' to 'hunting slings' in b938532f5e to avoid confusion
with the name of the skill. Now that Slings skill is no more, we can go
back to the shorter and punchier name.

--------------------------------------------------------------------------------
33dec36d26 | Nicholas Feinberg | 2022-06-25 12:11:09 -0700

Tweak titles
Most of the old Bows titles work fine for Ranged Weapons, but 'Archer'
isn't quite right for many weapons. Trade it out for Fighting's
'Skirmisher' title, and replace that one with 'Trooper'.

--------------------------------------------------------------------------------
586177b653 | Nicholas Feinberg | 2022-06-25 12:11:09 -0700

Merge ranged skills (ebering)
DCSS's ranged weapon types aren't very well differentiated. Slings,
bows, and crossbow games all tend to play very similarly - much moreso
than different magic schools, and still more than different melee
weapon types, like polearms and axes.

We've spent quite a long time trying to differentiate the ranged weapons
further. The main differences at present are fairly arbitrary differences
in stats - damage, accuracy, speed, brands, generation frequency,
handedness... there's quite a lot of them, but they don't add up to much
interesting. Historically, ammo frequency was another difference along
those lines - it had more impact, but (by encouraging fiddly weapon
swapping) that impact was mostly negative.

There are also quite few ranged weapons per skill. We have about half a
dozen weapons for each melee weapon type, but there are only two or three
per ranged weapon skill. (And that's after the last rework that added
three more!)

So, let's merge em. As one consolidated type, Ranged Weapons will have
a better chance at earning their place in Crawl.

Very few species had different apts for different ranged weapon types.
most of those have been given their best apt for the new skill, or
something reasonably close to it. The skill screen has been reorganized,
which will be quite disorienting for some, but I think it does a better
job of showing that 'Throwing' is quite a different type of skill from
the Ranged Weapon skill.

Other names I considered for the skill:
- Launchers/Launching (unpleasant)
- Missiles (futuristic)
- Bows & Slings (what about xbows?)
- Slings & Arrows (cute, but likewise)

Ranged Weapons has history - Throwing used to be called this, long, long
ago - so that gets some bonus callback points.

A subsequent commit will adjust weapon stats and frequency.

--------------------------------------------------------------------------------
7c5339f103 | Nicholas Feinberg | 2022-06-25 12:11:09 -0700

Remove weapon choice for Hu/AM
In preparation for merging ranged weapon skills.

--------------------------------------------------------------------------------
a8f87797a9 | Nicholas Feinberg | 2022-06-25 12:07:39 -0700

Unify Xom reach cleave with lochaber axe
Simplify the code by making all polearms work the same way under Xom's
Cleave status as the Lochaber Axe does normally.

--------------------------------------------------------------------------------
bdae368155 | Nicholas Feinberg | 2022-06-25 11:53:34 -0700

Two cool new tiles (Sastreii)
Slime simulacrae and lochaber axe.

--------------------------------------------------------------------------------
60cadc97f0 | Goratrix | 2022-06-25 07:43:47 -0700

Stat mutation description adjustment
Add spaces between the stat names and the numbers (to be consistent with
all the other similar mutation descriptions) and change Int/Str to Str/Int
for consistency with the order of the stats in the ui and elsewhere.

--------------------------------------------------------------------------------
5b5c5c9dfb | Kate | 2022-06-25 11:40:13 +0100

Fix conflicting vault-defined monster and item renames
Both using the "name:" tag caused them to be incorrectly parsed, breaking
monster renames.

--------------------------------------------------------------------------------
2f1814c7b2 | Nicholas Feinberg | 2022-06-24 21:54:03 -0700

Checkwhite

--------------------------------------------------------------------------------
1248423c9f | Nicholas Feinberg | 2022-06-24 21:23:22 -0700

Unrig big pig dig (buh)
Don't let formicids dig via the quiver in forms that meld mandibles.

--------------------------------------------------------------------------------
3f287b9546 | Nicholas Feinberg | 2022-06-24 21:06:43 -0700

Remove scythes
Scythes, as it stands, are something of a gag weapon. Their stats are
ludicrously terrible - there are very few cases in which it's right to
use a scythe.

Gags are great! But it's not great to pull jokes on newer players, and
it's not good to discourage new players from using that cool looking
weapon they just got from scary ol' Sigmund.

We could add some funky gimmick to scythes, but honestly, the polearm
weapon progression already works quite well. Instead, let's turn scythes
into a purely cosmetic item - a reskin for halberds. Sigmund and reapers
can still have their iconic weapon, and players can actually use 'em if
they so please. Win-win!

Unrand scythes remain unchanged.

--------------------------------------------------------------------------------
f0ca2457bd | Nicholas Feinberg | 2022-06-24 21:06:43 -0700

Remove scythes from vaults
In preparation for full removal.

--------------------------------------------------------------------------------
ff0870d9f4 | Nicholas Feinberg | 2022-06-24 21:06:43 -0700

Base unrand scythes off halberds
In preparation for scythe removal.

--------------------------------------------------------------------------------
ec28fa79f6 | Nicholas Feinberg | 2022-06-24 21:06:43 -0700

Make reapers & Sigmund wield renamed halberds
In preparation for scythe removal.

--------------------------------------------------------------------------------
3702571b76 | Nicholas Feinberg | 2022-06-24 21:06:43 -0700

Remove support for shared-description item renames
Not currently needed and a bit of a pain to get working fully.

--------------------------------------------------------------------------------
f0e39d631f | Nicholas Feinberg | 2022-06-24 21:06:43 -0700

Give Crazy Yiuf his hammers back
Retheme the maces as hammers. A little theme goes a long way.

I considered re-adding hammers in some of the other places they were
formerly used, eg the 'hammer & chisel' vault in Orc, but didn't feel
excited about it. They can be special for Yiuf.

--------------------------------------------------------------------------------
e866d9a976 | Nicholas Feinberg | 2022-06-24 21:06:43 -0700

Make item tile: and wtile: support variants
For e.g. enchanted/randart weapons/armour. (Only weapons currently
support variants for held tiles.)

--------------------------------------------------------------------------------
99da04ecca | Nicholas Feinberg | 2022-06-24 21:06:43 -0700

Support vault-defined item names/descs
Time to get up to some big time nonsense.

--------------------------------------------------------------------------------
32ab5fea29 | Kate | 2022-06-24 21:55:44 +0100

Fix a Zot clock crash (#2567)
By removing bezotting level 4 - it was supposed to only be reached at Zot
clock zero, but due to how AUTs were rounded to display as turns, it was
possible to reach while less than a full turn (0-9 AUT) remained. As a
Meteoran with a scarf of shadows equipped, this allowed the player to reach
0 LOS and crash. Closes #2567.

--------------------------------------------------------------------------------
e598fa6640 | Kate | 2022-06-24 21:46:54 +0100

Add some Zot clock messages to default force_more
The new messages for being drained at 0 Zot clock, specifically.

--------------------------------------------------------------------------------
7eeb665c8c | Kate | 2022-06-24 14:38:24 +0100

Fix spelling

--------------------------------------------------------------------------------
98ab2a97b9 | Nikolai Lavsky | 2022-06-24 16:12:42 +0300

fix: let pieces from Xom's chessboard affect frenzied monsters
Continuing with the removal of restrictions on attacking frenzied
monsters, let the pieces affect insane enemies.

--------------------------------------------------------------------------------
c3b6d67b95 | Nikolai Lavsky | 2022-06-24 16:12:24 +0300

fix: further fix grammar for artefact bardings with Regen
There are two different attunement messages for items with Regen. The
first one is displayed when a character puts on such item while at full
health. When an injured character puts on an item with Regen and then
reaches full health, the second message is printed.

The first attunement message was fixed in 68df51542, and this commit
fixes the second one.

--------------------------------------------------------------------------------
5f5fd466e5 | Nikolai Lavsky | 2022-06-24 16:11:46 +0300

fix: remove a stray function declaration
The corresponding function definition was removed in 7ca12cd9.

--------------------------------------------------------------------------------
7e06a55bdf | Nikolai Lavsky | 2022-06-24 16:11:46 +0300

fix: don't crash when &s-ing a useless skill
Training an unusable skill, like a magic school on a Dj or Invocations
on a Dg, via the &s command crashes the game.

Training a sacrificed skill doesn't crash the game, but has no effect,
so let's disable it as well.

--------------------------------------------------------------------------------
e04d5b83ea | Nikolai Lavsky | 2022-06-24 16:11:46 +0300

feat: show current skill level in &s
This commit reduces the need to use the `m` menu while experimenting
with the skills in wiz-mode.

Also, it fixes the messaging. For example, when Fighting is changed
10.5 -> 10, the message will be "Lowered Fighting to skill level 10.0."
instead of "Reset Fighting to skill level 10.0."

--------------------------------------------------------------------------------
ba467f2e49 | Edgar A. Bering IV | 2022-06-24 08:09:59 -0500

docs: update CREDITS.txt

--------------------------------------------------------------------------------
0d03ebdc04 | Rytis Petronis | 2022-06-24 08:07:08 -0500

feat: make -Scroll and -Potion regular 2-tier bad mutations
Two tiers are added to both MUT_READ_SAFETY and MUT_DRINK_SAFETY
mutations to make it more in line with the other bad mutations, and the
latter is added to the general bad mutation pool.

To make the 2 tiers work correctly the _is_damage_threatening function
has an added variable to decide on the safety level with which to
evaluate the threat. Ru's sacrifice now sets the mutation at tier 2,
which is the same severity as before this commit. This commit also
adjusts the weight of both mutations to 7 (average) from 10 (most common).

[ Committer's note: Squashed, rebased, checked whitespace. Closes #2573 ]

--------------------------------------------------------------------------------
b80629599b | 4Hooves2Appendages | 2022-06-24 07:21:45 -0500

feat: give arachnids 'skitter' shouts
This commit creates two new shout types:
1) S_SKITTER, for medium and larger many-legged monsters, normal noise.
2) S_FAINT_SKITTER, for little and small many-legged monsters, quiet
   noise level.

For a variety of arachnids and insects, replaces S_HISS with new shouts.

[ Committer's note: Fixed whitespace, made faint skitters quiet, kept
  Pharaoh Ants as S_MOAN: it's louder so it helps bring more spiders for
  their gimmick.

  Closes #2575 ]

--------------------------------------------------------------------------------
626dbc2b52 | Edgar A. Bering IV | 2022-06-24 07:08:05 -0500

feat: restore the nearby altar for AK start flavour

--------------------------------------------------------------------------------
b66ea993e3 | Spencer Baugh | 2022-06-24 15:03:44 +0300

feat: make AK start standing on exit
It's basically a spoiler that an exit always generates near the AK
starting spawn.  If the player doesn't know that, they'll waste a fair
bit of piety using Depart the Abyss.  That could be fine, except that
now that means their starting escape mechanism, Bend Space, will be
offline for the first few levels of the Dungeon, defeating the purpose
of bumping AK piety to make it available.

We could make the exit just generate in LOS, but there's nothing
really tactically interesting about walking a few squares and maybe
getting very unlucky, so just have AK start out standing on the exit.

--------------------------------------------------------------------------------
5c1d49f3b4 | Edgar A. Bering IV | 2022-06-24 07:00:08 -0500

fix: take proper note of banishment depth (Goratrix)

--------------------------------------------------------------------------------
a64570c9d2 | Nikolai Lavsky | 2022-06-24 04:47:12 +0300

fix: tweak teleportitis-related messaging and status display
This commit fixes two issues with teleportitis messaging and status
display:
* although teleportitis is suppressed in the Abyss since db80c5092,
  the ``%`` screen shows ``Rnd*Tele`` there;
* after 6b4f085fc, ``stairs.cc:_gauntlet_effect()`` doesn't print "You
  feel stable on this floor." for players with teleportitis, since
  ``player.cc:player_teleport()`` always returns ``0`` when the player
  is in the Gauntlet.

Currently, ``spl-transloc.cc:_teleport_player()`` has code for
preventing teleportitis while in the Abyss. Adding an extra check
into ``player_teleport()`` allows aborting such teleports a couple
function calls earlier, in ``player-reacts.cc:player_reacts()``.

Also, let's give ``int player_teleport()`` a more descriptive name.

--------------------------------------------------------------------------------
e176fc164b | Nikolai Lavsky | 2022-06-24 04:47:12 +0300

fix: mark teleportitis as suppressed in more cases
Currently, the mutations screen displays this mutation as suppressed
only when the player is in tree form.

This commit marks the mutation as inactive when all teleports are
forbidden or while the player is in the Abyss.

--------------------------------------------------------------------------------
5f01ad7185 | robertxgray | 2022-06-23 20:44:11 -0500

Quote for Gozag's altar
Francisco de Quevedo, _Poderoso caballero es don Dinero_. 1603.
--------------------------------------------------------------------------------
85323850a6 | nlavsky | 2022-06-23 20:42:12 -0500

fix: apply item_slot when seeing monsters use unid'd scrolls or potions
When a monster uses a scroll or potion, it identifies the consumable

and applies autoinscriptions. But unlike other methods of item

identification, it didn't change inventory letters according to the

``item_slot`` option.
--------------------------------------------------------------------------------
859816b266 | Nicholas Feinberg | 2022-06-23 17:24:58 -0700

Fix (?) throwing damage rates (Lici)
This isn't a great display - it'd be really nice to clarify where
the extra base damage is coming from. Oh well!

--------------------------------------------------------------------------------
87332871fa | Nicholas Feinberg | 2022-06-23 17:09:14 -0700

Don't crash when a dead monster cleaves
E.g. if they're killed by minotaur retaliation midway through an axe
swing.

Broken in 437f8d1d3d7ac52eafa3a8e7bdbfce506b4eac7f.

--------------------------------------------------------------------------------
5ff2a30383 | Edgar A. Bering IV | 2022-06-23 06:59:30 -0500

fix: cap all beam wand charges for Wn start (acrobat)

--------------------------------------------------------------------------------
c25378c239 | gammafunk | 2022-06-23 01:38:29 -0500

fix: Correct a mutation description (acrboat)
For Sacrifice Experience, we now only lower XL by one each time, so
reflect this on the mutation screen. Also mention this change in the
changelog.

--------------------------------------------------------------------------------
12ee2bf84d | Nicholas Feinberg | 2022-06-22 21:37:15 -0700

Unbrace

--------------------------------------------------------------------------------
1aa759944b | Nicholas Feinberg | 2022-06-22 19:25:25 -0700

Allow banished monsters to appear after Abyss:1 (acrobat)
Previously, there was an oversight (?) in which banished monsters
would only ever appear on Abyss:1. Make them follow you through the
whole Abyss instead. This is a little silly (are they taking the
stairs down?!), but prevents you from losing the Royal Jelly on a
lower Abyss level, for example.

--------------------------------------------------------------------------------
26d293caef | Nicholas Feinberg | 2022-06-22 11:50:49 -0700

Ramp up deep Abyss spawn rates
Make many more monsters spawn on Abyss:6 and :7, and give em a chance
to spawn near the player. (This is a hacky breakpoint.)

--------------------------------------------------------------------------------
dd63cfa21d | Nicholas Feinberg | 2022-06-22 11:27:04 -0700

Add some truly stellar new tiles (Sastreii)
New runelight tiles, to make it clearer when the player is near the
abyssal rune (or perhaps other ones someday?)

--------------------------------------------------------------------------------
ff9cad4a3d | gammafunk | 2022-06-21 23:37:40 -0500

fix: Place Grunn with his band (dilly)
We need the "band" mon spec designator in the uniq_grunn vault,
otherwise Grunn places without any rare puppers.

--------------------------------------------------------------------------------
be5fe9cee2 | Nicholas Feinberg | 2022-06-21 18:09:47 -0700

New small abomination tiles (Sastreii)
Eww, gross!

These might not be small enough. We'll see.

--------------------------------------------------------------------------------
910882235c | Kate | 2022-06-21 23:37:41 +0100

Increase chances of a Jiyva altar at Slime entry
Previously there were a small fixed number of Slime entry vaults that
always placed a Jiyva altar, with their total weight resulting in roughly a
1/2 chance to see one in any given game. Instead let all Slime entries
place Jiyva altars, with a 2/3 chance.

--------------------------------------------------------------------------------
d0a8d1b88b | Kate | 2022-06-21 23:37:41 +0100

Rebrace

--------------------------------------------------------------------------------
25bf049393 | Kate | 2022-06-21 23:37:41 +0100

Don't let Irradiate affect conjured monsters (CarefulOdds)

--------------------------------------------------------------------------------
28b9d68c38 | wheals | 2022-06-22 00:36:07 +0300

fix: really don't generate rare temples outside the 1% chance

--------------------------------------------------------------------------------
94431d12f0 | Edgar A. Bering IV | 2022-06-21 22:38:04 +0300

feat: don't generate rare temples as a part of normal generation
Only pick them for their tag.

--------------------------------------------------------------------------------
7553cd0caa | Edgar A. Bering IV | 2022-06-21 20:53:51 +0300

feat: select the size of the Temple in C++
Temple size has a major impact on god selection: a big Temple means
getting your choice god-but it might take until D:7. A small temple
scatters the gods over the overflow range. Both experiences are good for
the game, but before this commit the chance of a given temple size was
controlled by the sundry weights of the different temple maps. This
control was brittle, and indeed b444dcf96dcc4 marked a big shift in the
prevalence of larger temples (thanks to acrobat for pointing out how
large this impact was), that was not intended.

This commit changes temple selection to work as follows:

First a 1% roll decides to select a rare temple. Current rare temples
are the Lugonu, Jiyva, and Ignis temples. Rare temples are those that
should create special moments outside of the usual temple system.

Failing the 1% roll, the temple size is rolled. Currently this is 9 +
random2avg(13,2), but this can be adjusted (and will be to accomodate
some smaller temples coming in subsequent commits).

--------------------------------------------------------------------------------
1ace0e5f75 | patrick | 2022-06-21 12:23:09 -0400

Change mountain boots' name back to mountain boots
Painting the bike shed one final time. This reverts the commit
where I changed it.

--------------------------------------------------------------------------------
4e50b17284 | Edgar A. Bering IV | 2022-06-21 13:32:33 +0300

fix: a crash and a check

--------------------------------------------------------------------------------
1c8a42db57 | Edgar A. Bering IV | 2022-06-21 09:56:56 +0300

docs: changelog through 0.29-a0-653-gd47aff6735

--------------------------------------------------------------------------------
d47aff6735 | Nicholas Feinberg | 2022-06-20 22:32:40 -0700

Remove a probably unused function?
As far as I can tell, the "item()" function is *only* used in Volcanoes,
and it is *not* used in the slot-setting mode. Don't believe it was
documented, either.

If this breaks stuff, please revert this.

--------------------------------------------------------------------------------
45357cb20f | Nicholas Feinberg | 2022-06-20 22:25:19 -0700

Fix item exclusion for shops
Shops with excluded items would hold an empty list (treated as 'any
item') instead.

--------------------------------------------------------------------------------
437f8d1d3d | patrick | 2022-06-20 22:00:43 -0700

Add a new unrand: the lochaber axe
Long long ago, bardiches used to be known as lochaber axes, until they
were renamed in commit 8b14a9, on December 13, 2007, presumably so
that players wouldn't think they were some kind of axe.

The lochaber axe was gone... but not forgotten...

It's back, reimplemented as an unrand, and this time, there's no problem
if players think it's some kind of axe. Because it is. The lochaber
axe has both reach and cleaving, and combines them both into a sort of
"super-cleave", aka "reave", which attacks everybody in a radius of 2
with each swing.

Additionally, due to its nature as a combination of polearm and axe,
either skill can be used to wield it -- the higher of your Polearms or
Axes skill will be used to determine its damage and delay.

Currently, it's statted out as a +5 bardiche with -1 to base accuracy
and +1 to base damage and base delay. Currently uses the old tile for
lochaber axes, although it will probably need something more menacing
before it's ready for prime-time.

Much thanks to PleasingFungus for coding assistance, and gammafunk for
discussions, the lochaber axe tile, and not immediately reverting this.

--------------------------------------------------------------------------------
8101c4d66a | patrick | 2022-06-20 22:36:36 -0400

Make some cosmetic changes to the mountain boots
Now they're the boots of the Mountain, and their effect is renamed
from the descriptive-but-not-super-flavorful "rDislodge" to the
somewhat-more-flavorful "steadfast". Also the description of the
effect is clarified somewhat more precisely.

thank you for your time. love, nicolae

--------------------------------------------------------------------------------
45c230d69a | hellmonk3 | 2022-06-20 15:55:43 -0400

feat: New Orc ending (#2454)
Salted Orc, if you will.
--------------------------------------------------------------------------------
6b26cc9f40 | advil | 2022-06-19 12:16:09 -0700

fix: generalize a bit of abyss rune code
I think this change will also fix another case of odd messaging after
getting the rune, on leaving the abyss.

--------------------------------------------------------------------------------
b07f931dc7 | Nicholas Feinberg | 2022-06-19 11:41:38 -0700

Remove the old ct_skills array
Unused since 7c1a5597fd584d (2014).

--------------------------------------------------------------------------------
da25f7726e | Nicholas Feinberg | 2022-06-19 11:33:12 -0700

Fix a misleading rune message

--------------------------------------------------------------------------------
e8efa2268b | Nicholas Feinberg | 2022-06-19 11:27:33 -0700

Don't show item hints for corpses in tiles
It's a bit silly to tell people to mess around with a purely decorative
object - quite confusing.

--------------------------------------------------------------------------------
0428525265 | Nicholas Feinberg | 2022-06-19 11:19:15 -0700

Grunn tile (Sastreii)
Unique's is back baby. It's good again. Awoouu (wolf Howl)

--------------------------------------------------------------------------------
a013cefcf8 | Nicholas Feinberg | 2022-06-18 22:38:41 -0700

Remove obsolete code for throwing hunters

--------------------------------------------------------------------------------
3454511d3d | neo-bop | 2022-06-19 08:35:50 +0300

docs: fixed grammar mistake

--------------------------------------------------------------------------------
b59bef153c | Nicholas Feinberg | 2022-06-19 08:31:14 +0300

text: add Grunn dialogue
Rough pass, a mix of Grum-isms plus some kvetching about being a lil
bit dead. Also, in Hell.

[ Closes #2459 ]

--------------------------------------------------------------------------------
d0c25b80c2 | hellmonk | 2022-06-19 08:31:08 +0300

feat: Grunn the Punished
Alt-timeline version of Grum who has a pack of doom hounds.
Appears in Depths, Crypt, and Zot.

--------------------------------------------------------------------------------
29a8cdef9d | RojjaCebolla | 2022-06-19 08:19:07 +0300

fix: undefined local entry '_ashenzari_heavens_'
It was only missing one % symbol.

[ Closes #2431 ]

--------------------------------------------------------------------------------
e81f215762 | RojjaCebolla | 2022-06-19 08:19:01 +0300

fix: no godspeak entry for 'Xom zero miscast effect'

--------------------------------------------------------------------------------
ff17717bc1 | RojjaCebolla | 2022-06-19 08:18:51 +0300

text: remove quote db entries for deprecated items

--------------------------------------------------------------------------------
de4a49754e | RojjaCebolla | 2022-06-19 08:18:46 +0300

text: add a description for the spriggan hatter

--------------------------------------------------------------------------------
c2a2f2613b | Nicholas Feinberg | 2022-06-18 21:20:36 -0700

Don't cover the entire Abyss with exits
...once you get the rune.

??doh

--------------------------------------------------------------------------------
155753f734 | Nicholas Feinberg | 2022-06-18 21:20:21 -0700

Don't erode runelights
They're important for finding runes!

--------------------------------------------------------------------------------
6e2bebc5d0 | Nicholas Feinberg | 2022-06-18 16:07:40 -0700

Make Abyss seven levels deep
Attempt to make the Abyss sufficiently spooky to make 15-rune players
worried about spending much time at the bottom. Megaziggers will
probably have no issues, but that's fine.

Might want to adjust spawn rates and/or spawn tables further - these
are a big mess.

--------------------------------------------------------------------------------
781b4ac09e | Edgar A. Bering IV | 2022-06-19 00:34:14 +0300

feat: force a minimum entry depth on the Abyss
In lieu of the previous anti-scumming mechanism, which threw the baby
out with the bathwater and created an unpleasant experience with a lot
of special cases, this introduces a minimum depth mechanic for the
abyss.

Upon entry from any source (distortion, banishment, exiting pandemonium
through the abyss, entering an abyss portal) the player is sent to the
highest depth so far achieved.

In combination with the rune-guide improvements, a continued dearth
of items, and the XL scaled depth-increasing-on-teleport mechanic, this
should give a better experience to the recently punished mid-game
banishment victim and the 3rd rune hunter, while still dissuading the
scummer (who will rapidly find themselves on A:5) than the no-xp abyss
did. If A:5 is not harsh enough to be a deterrant we can add greater
depths as needed.

--------------------------------------------------------------------------------
ae2251da70 | advil | 2022-06-19 00:34:14 +0300

fix: messaging for leaving and missing the abyssal rune
This prop needs to be reset so that the messaging when reentering the
abyss is correct, and we might as well indicate that the player missed
out.

[ Closes #2572 ]

--------------------------------------------------------------------------------
8e0c6649c8 | advil | 2022-06-19 00:22:02 +0300

fix: rewrite abyssal rune detection
The first pass implementation relied on being able to store rune memory
purely in map_knowledge, and use this at various points in time to
detect both rune generation and removal. The abyss code makes this
impractical. The rewritten version stores rune memory in a player prop
that gets synced with map_knowledge; this is much more robust in my
testing.

--------------------------------------------------------------------------------
d66da3e29f | advil | 2022-06-19 00:22:02 +0300

feat: abyssal rune detection
In newabyss players want to get in and out of the abyss as quickly as
possible, but there's a lot of variation in how quickly people find the
run, and it can really drag on with no rewards if this doesn't happen
quickly. When you're at a rune depth, there's not a lot you can do to
find the rune beyond just wandering and/or looking for vaults via
giveaway tiles (these could be removed if this current commit goes
forward).  This commit implements an idea where all players detect the
presence and map location of the abyssal rune, and also detect if the
map shifts and it vanishes. This gives players a much more concrete
goal, as long as the rune has generated.

I am still not entirely sure if this is a good idea, but in my testing
it works way better than I expected. The rune typically generates pretty
far from you and then you have a bit of a race towards it, both (a)
simply navigating the abyss between you and it, and (b) figuring out how
to even get into the vault. I'd theorycrafted this as making it too easy
to find the rune, but I'm not sure it (typically) is at all. But, it
probably needs more playtesting.

Also, by the nature of abyss code, I am at best medium sure that I added
this hook in all the places that it needs to be in.

--------------------------------------------------------------------------------
ba36221789 | Edgar A. Bering IV | 2022-06-19 00:22:02 +0300

revert: unrewarding abyss
This reverts most of the "no-XP" abyss changes, specifically:

fcf54068 feat: prevent gaining experience in the Abyss
d764ef0d feat: give an XP reward for the abyssal rune
010f2a22 feat: don't grant piety in the Abyss
0647d936 Refactor piety gain prevention in the Abyss
6c1bee59 feat: reduce wretched star malmutation rate
050a5067 fix: turn down wretched stars corrupting pulse a bit more

The no XP abyss did stop abyss scumming, but at too great a cost. While
some players enjoyed the stealth-emphasis-increase of the XP being
concentrated in the rune, the overall result wasn't good.

So this reverts the changes that revolve around XP, in preparation for
the following commits.

Not reverted are:
- the changes to exit and stair spawn rates. These remain increased, in
  anticipation of the subsequent anti-scum mechanic making them
  desireable.
- the removal of items outside of vaults. Items still have the potential
  to be a grind-trap (more a trap than "optimal" scumming), but the
  abyss isn't supposed to be a place players want to linger so let's not
  give them too many reasons to stay beyond a rune.

--------------------------------------------------------------------------------
39ea5eca17 | Nicholas Feinberg | 2022-06-18 13:14:11 -0700

Despoiler the Abyss rune (mostly)
Replace external uses of the secret 'abyss rune tile' with a new
'runelight' feature, which stops autoexplore and is explicitly described
as indicating the presence of a nearby rune. Possible that some or all
of the internal tiles in these vaults should also be replaced with
runelights, for those with dungeon mapping mutations or similar.

Art is placeholder.

--------------------------------------------------------------------------------
7f7ec87276 | Edgar A. Bering IV | 2022-06-18 22:48:14 +0300

text: clarify battlesphere's description

--------------------------------------------------------------------------------
a996378906 | Edgar A. Bering IV | 2022-06-18 17:28:42 +0300

fix: idiomatic randomness (PleasingFungus)

--------------------------------------------------------------------------------
39d4558d33 | Edgar A. Bering IV | 2022-06-18 16:54:40 +0300

refactor: remove dead quantity code for launcher ammo

--------------------------------------------------------------------------------
14c03f4a0f | Edgar A. Bering IV | 2022-06-18 16:54:14 +0300

feat: reduce stone availability and make them always mulch
Stones are very good on D:1-2, and while they quickly fall off remain
useful for characters for a bit longer, or as a "poke the monster
quietly before walking away to pull a small number of foes" tool.

They're also all over the dungeon in massive numbers, and are re-usable
to boot. Now that they're not used for Sandblast, their primary gameplay
function is early game plinking. To make this plinking a bit more
interesting this commit reduces the supply of stones in each pile, and
makes stones always mulch when used. In the very early game this should
put significant pressure on the use of stones in an interesting way,
with them becoming plentiful closer to the time the player has better
things to do than plink away.

--------------------------------------------------------------------------------
8217bd198b | Edgar A. Bering IV | 2022-06-18 16:29:11 +0300

feat: damage ratings for thrown items

--------------------------------------------------------------------------------
e4689427c4 | Edgar A. Bering IV | 2022-06-18 09:48:43 +0300

fix: remove a stray random altar from overflow range

--------------------------------------------------------------------------------
13ace881f2 | patrick | 2022-06-17 11:09:41 -0400

Let randart bardings generate with rPois
The code prevented randart bardings from generating with properties
that were already innate to barding wearers. At the time, this was
just nagas, and nagas already have rPois and SInv. Now palentongas
can wear bardings, and they lack rPois, so now it makes sense for
randart bardings to be able to generate with rPois. Since nagas
and palentongas both have innate SInv, SInv is still excluded from
the properties randart bardings can have.

--------------------------------------------------------------------------------
d6e8e0e227 | Edgar A. Bering IV | 2022-06-17 16:15:19 +0300

feat: re-vitalize Vitality
Regeneration and 15 hit points aren't much. Vitality has been on the "to
redesign" list for a long time. Some of the possibilities discussed are
very close to what ultimately became the dreamshard amulet. It was also
suggested, and discarded, as a possible early-game unrand.

Let's buff it out of this awkward place. The 15 hp are traded for two
pips of MP regen and an additional hp regen pip. Lore has it the amulet
kept Borgnjor alive in her final days before descending into undeath, so
it's also now evil.

--------------------------------------------------------------------------------
2e310f0204 | Edgar A. Bering IV | 2022-06-17 14:12:33 +0300

text: remove a randart name with an unpleasant connotation

--------------------------------------------------------------------------------
7a6b98fccd | Nicholas Feinberg | 2022-06-16 20:16:32 -0700

Adjust Ru mutations (acrobat)
After the change to make Sacrifice Experience properly affect your
current XL in c127bba4f6dc8, Sacrifice Experience was comparatively
underpriced. It had a considerably more negative effect on the player
across the board than the Frailty sacrifice, but gave only 40 piety
to Frailty's 45!

Rather than set experience to its proper value, which would have to
be very high (perhaps ~60 piety?), instead cut its effect in half
and sacrifice one level per sacrifice. (This has the additional
advantage of simplicity.) Then make the following adjustments:

- Experience: 	40 -> 35 piety
- Frail: 	45 -> 35 piety (compare Sacrifice Love at 40)
- Weak-Willed:  38 -> 35 piety (for neatness)
- Eye:		20 -> 25 piety (think this was undervalued)

I don't think any of these will make a dramatic impact on the Ru
experience, but they should make things very slightly tidier overall.

--------------------------------------------------------------------------------
c53de2f800 | Nicholas Feinberg | 2022-06-16 19:43:03 -0700

Add a rock-solid new artefact tile (Sastreii)
Mountain boots get their own tile. Bye (again), boots of the spider.

Player doll doesn't match, but that's not a big deal.

--------------------------------------------------------------------------------
deedd76f10 | Nicholas Feinberg | 2022-06-16 12:49:37 -0700

Fix ignis wrath + mountain boots (nicolae)

--------------------------------------------------------------------------------
2001307d0b | advil | 2022-06-16 09:27:48 -0400

fix: remove pakellas
's color

--------------------------------------------------------------------------------
f2c431b9b9 | patrick | 2022-06-15 21:42:22 -0700

Add a new unrand, the +3 mountain boots {rDislodge, rC+}
Gives dislodge resistance, keeping the player from being moved
by external non-translocation sources. (Trampling, shafts, tentacles,
etc.) Currently uses the tiles for the spider boots, which weren't
being used anyway, but will probably need actual tiles at some point.

--------------------------------------------------------------------------------
b8e136fc6a | Nicholas Feinberg | 2022-06-15 17:31:43 -0700

Double Airstrike's empty space bonus
To encourage more tactical and positional thinking, make Airstrike
somewhat better against enemies in open areas and worse against
enemies not surrounded by open space. Sometimes it'll be the right
spell to use, sometimes you'll want to reposition or use another
tool from your toolbox.

--------------------------------------------------------------------------------
91acacb2e3 | gammafunk | 2022-06-15 18:07:51 -0500

fix: A teleport closet (riverfiend)
In nicolae_swamp_secret_spriggan_hideout, a wall could sometimes place
and seal off an area.

--------------------------------------------------------------------------------
99610632ab | Kate | 2022-06-15 23:50:13 +0100

Remove Kiku's undead duplication passive
In practice, the changes to necromancy spells making them easier to
make use of (in addition to them interacting more favourably with Unearth
Wretches) make Kiku fairly strong already. Duplicating undead on top of that
resulted in excessively huge hordes being a little too easy to create.

This reverts commit 2fcf5398dde68d34f8f1d11118976734faf3d690.

--------------------------------------------------------------------------------
b56f46d856 | advil | 2022-06-15 15:51:10 -0400

fix: attitude check for poisonous vapours disabling
Previously this would appear to be enabled with susceptible allies in
view. It was oddly hard to see what the exact right way to implement
this is, but wont_attack is what some other spells in this code use, so
it should do for now.

--------------------------------------------------------------------------------
5f3c444be0 | Edgar A. Bering IV | 2022-06-15 21:57:46 +0300

feat: make animated armour fly
For consistency with dancing weapons and the notion of "spirit", as well
as removing a gameplay synergy with Leda's, let's make these buddies fly
about.

--------------------------------------------------------------------------------
ed4851bcc5 | Nicholas Feinberg | 2022-06-15 10:21:38 -0700

Fix stat mut descs (Goratrix)

--------------------------------------------------------------------------------
ddeeb70f77 | Nicholas Feinberg | 2022-06-15 09:39:44 -0700

Pull out zot.cc from timed-effects.cc
More than enough stuff to deserve its own file.

--------------------------------------------------------------------------------
6a3c3ed53f | Nicholas Feinberg | 2022-06-15 09:28:23 -0700

Make positive stat muts more impactful (various)
The "str +2" etc muts are reasonably helpful, but don't meaningfully
impact playstyle or player decisions. Let's make them more impactful
by making each one give +4 to the primary stat and -1 to the other
stats, enough to shift the player towards that stat in a very serious
way. Since each mut only has two levels, it seems like it'll be quite
rare for those -1 stats to cause stat zeroes.

Theming/naming could use another pass.

--------------------------------------------------------------------------------
3118c4fcd2 | Nicholas Feinberg | 2022-06-15 09:28:23 -0700

Apply monster wand damage nerfs more generally
To somewhat reduce the classic "instantly melted by ijyb with a wand of
acid" scenario, instead of special-casing Mindburst specifically, make
all monsters do 2/3rds damage with all wands. This is a brutal nerf to
/flame monsters.

--------------------------------------------------------------------------------
f530d57ad0 | Nicholas Feinberg | 2022-06-15 09:28:23 -0700

Update fo mut desc
For giant clubs.

--------------------------------------------------------------------------------
b1b9a4145c | Nicholas Feinberg | 2022-06-15 09:28:23 -0700

Don't force /para in hellmonk_paralyzer

--------------------------------------------------------------------------------
800f0a2745 | Nicholas Feinberg | 2022-06-15 09:28:23 -0700

Remove Ar wand printing code
No longer relevant, now that ar start wands aren't randomized with
item sets.

--------------------------------------------------------------------------------
c0164372c5 | Edgar A. Bering IV | 2022-06-15 19:26:28 +0300

feat: move timed hell effects to level arrival
Timed hell effects were intended to punish lingering and encourage
taking on the Hells "all in one go". The XP gated, but time-applied
nature of them meant that even traversing a larg end level could be
needlessly punishing. After several attempts at turning tuning knobs,
they're still not in a great place, and push players to stair-dance, do
a hell partially then go to Pan for a bit, etc.

This commit moves the effects to apply on each level descent. Players
doing the hells "all in one go" preferring to dive over fight won't get
hit too badly, (just enough for some seasoning), but stair dancing to
clear a tough encompass part way through will meet stiff penalty.

Branch-wide conducts are unchanged. The numbers will probably need some
further tuning to get them "just right" in the
tension-versus-too-punishing department, but let's start with these.

--------------------------------------------------------------------------------
1680f32a72 | Nicholas Feinberg | 2022-06-15 07:07:10 -0700

Don't overexaggerate hand-pairs (wheals)
Overcorrection.

--------------------------------------------------------------------------------
d8304a5bf4 | Nicholas Feinberg | 2022-06-14 22:34:29 -0700

Let formicids wield giant clubs again
Reverts 9a20582491d1. At the time, giant clubs were thought to be
so strong that formcids would be unmotivated to use their shield
gimmick. Today, that seems less likely.

--------------------------------------------------------------------------------
69c401ce25 | Nicholas Feinberg | 2022-06-14 20:18:34 -0700

Fix the build?

--------------------------------------------------------------------------------
57363d2029 | Nicholas Feinberg | 2022-06-14 19:27:36 -0700

Pull mindburst out of the hex set
I've been persuaded for now that it's sufficiently distinct from
para/charming. We might change this later.

--------------------------------------------------------------------------------
3bc56fe6af | Nicholas Feinberg | 2022-06-14 19:27:34 -0700

New wand tiles (Sastreii)

--------------------------------------------------------------------------------
c4eff49456 | Nicholas Feinberg | 2022-06-14 19:27:34 -0700

Relax the no-excluded-items policy.
To avoid startscumming, have artificer go back to always having a
wand of charming, regardless of which hex wand will spawn for the
rest of the game. Also let hellmonk's paralyzer always spawn a para
wand, as a meme.

--------------------------------------------------------------------------------
5a9699462f | Nicholas Feinberg | 2022-06-14 19:27:32 -0700

New item: wand of quicksilver (ebering)
An alternate for the wand of acid, wands of quicksilver shoot dispelling
bolts. They do slightly more damage than /acid, with a perhaps slightly
less broadly applicable affect. You can also zap yourself, if you like pain!
(I'm hoping self-zapping isn't *too* strong. It doesn't help with contam,
fwiw.)

--------------------------------------------------------------------------------
376ae5a38f | Nicholas Feinberg | 2022-06-14 19:27:31 -0700

Add 'any beam wand' shorthand

--------------------------------------------------------------------------------
4f8b61c030 | Nicholas Feinberg | 2022-06-14 19:27:31 -0700

Make wands of light alternate with acid wands
Half of games will have one, half will have the other.

--------------------------------------------------------------------------------
48b2cc46b9 | Nicholas Feinberg | 2022-06-14 19:26:47 -0700

New item: wand of light
Intended as an alternate for wands of acid, wands of light fire a beam
that blinds targets for a duration dependent on HD. The beam checks AC
and EV normally, but no resists. It's otherwise identical to acid.

If it hits a player, it has a 1/3 chance of confusing them for 2-3 turns.
(Since players can't be blinded.)

The goal is that this has a broadly similar use case to acid (high damage
beam that ignores most resists & applies a debilitating effect), but plays
somewhat differently. It'll be more useful for stabbers, and somewhat helpful
defensively (by reducing enemy accuracy instead of AC).

I'm very undecided on the blinding effect duration.

Buff wand of light

--------------------------------------------------------------------------------
c28e0ee30e | Nicholas Feinberg | 2022-06-14 19:26:14 -0700

New feature: item sets
One of the most exciting things is adding new features: items, monsters,
etc. However, the problem with items is that each distinct item type fills
up an inventory slot. This is both a UI burden and a decision-making issue:
it's possible to give out too many options, leading to analysis paralysis
or most players simply ignoring most of what they have.

So, here's an alternate approach. Pull wands of mindburst, paralysis, and
charming into an 'item' set, and make the game only spawn one of the three
types in any given game. Artificer starts with whatever is chosen. (This
hopefully won't lead to startscumming.) Item specs (i.e. vaults) automatically
exclude the wands which *weren't* chosen from the set, and I did some tweaks
to make sure that all vaults should still work. Wand generation weights are
tweaked slightly - the combined slot is slightly less common than mindburst
plus para plus charm were together.

(NOTE: A later commit will pull mindburst back out of the item set, leaving
only charming + paralysis to alternate.)

I have high hopes for this design technology. We'll see how it plays!

--------------------------------------------------------------------------------
1f97f7987d | Nicholas Feinberg | 2022-06-14 18:28:00 -0700

Let parghit throw ruk (dilly)
What silly code!

--------------------------------------------------------------------------------
3e51bf9b82 | Nicholas Feinberg | 2022-06-14 18:24:28 -0700

Don't injury bond ioods (riverfiend)
And do some code cleanup while I'm here.

--------------------------------------------------------------------------------
53e7fda734 | Edgar A. Bering IV | 2022-06-15 01:13:45 +0300

vaults: new demonic serial vault
Encountering "common demons" at a time when they're a threat and not
summons is a rare occurance in crawl. This serial vault, a shameless
ripoff of serial_undead, places some demonic themed decor on a dungeon
level to give it a "demonic feel". Spooky.

Featuring demonic trees and plants, plus 5, 4, and 3 tier demons.

--------------------------------------------------------------------------------
58cc3432a3 | Edgar A. Bering IV | 2022-06-15 01:13:45 +0300

vaults: adjust serial_undead to modern D spawn tables

--------------------------------------------------------------------------------
b10a8bf730 | advil | 2022-06-14 17:33:08 -0400

feat: indicate zot clock death risk in status light
This might be overkill, since I think the likelihood of a player drained
this much actually dying of the zot clock itself is rather low, but it
seems useful to try out. In the end, rather than fancy punctuation, I
simply added ", death" if the next zot clock 0 would kill.  The color
tweaks here bring this in line with the overview screen, though in
contrast to there, the color is always stepped up if the player is
drained enough to be risking death. (If `always_show_zot` is off though,
for non-meteorae, clocks >=1000 turns are still not shown, though.)

I also tweaked magenta->lightmagenta mainly for the sake of webtiles
where regular magenta looks a bit dull (possibly just my badly
calibrated monitor).

--------------------------------------------------------------------------------
ed30ed24e1 | advil | 2022-06-14 17:32:48 -0400

feat: add zot clock to dungeon overview
This displays in both the dungeon overview popup, and in morgues.
Whether it displays follows the usual rules for showing the zot clock:
it is forced by always_show_zot or meteorae, and otherwise only shows
info if the bezotting level is >0. This also clearly indicates when the
player is in death range as well as which branches they need to watch
out for. Unfortunately, though I tried very hard, I just could not get
this info into a three-column display. (I tried both inline approaches,
and two-row branch displays; the former doesn't have enough space, and
the latter looked quite bad.) Therefore, if any zot clocks are shown, it
flips to a two-column display. Possibly confusing?

I should also note that there are enough special cases here that I
really doubt I got all the spacing to look right in all cases (as much
as I did try to generalize the code for this a bit).

--------------------------------------------------------------------------------
e82337ba6a | Nicholas Feinberg | 2022-06-13 21:38:19 -0700

Fix batty monsters + Mark (dilly)
Don't make Mark turn batty monsters into unstoppable killing machines.

This has been broken since 7f122b9c1a7 (2013), when Vault Sentinels
and hence Mark were first added.

--------------------------------------------------------------------------------
e9a90b782e | advil | 2022-06-13 17:15:01 -0400

fix: reword autofire message with mp 0
When autofiring an mp-using quivered action with mp 0, this still
somewhat confusingly gave the "reckless" message. Just give an out-of-MP
message. Also, reword a use of "mana" to "magic", afaik "mana" is not
canon outside of some function names.

--------------------------------------------------------------------------------
113927532b | advil | 2022-06-13 16:46:26 -0400

feat: explore_wall_bias tweaks
* don't consider just cardinal directions in checking for adjacent
  walls.  (Fair warning, I don't know why it originally did this, so
  this change could be breaking something?)
* let explore_wall_bias be negative, to prioritize open space.

I should add that the use case of this option remains somewhat
theoretical. There seems to be some historical idea that setting this to
positive values would speed up eploration, but in my testing this is
really far from correct: it adds sometimes 100s of turns to exploring a
level, because it can drastically increase the amount of backtracking.
Similar for negative values. It *might* be useful for meteorans as it
possibly deprioritizes things they don't want to explore anyways, but
the total explore time if you do a full explore is definitely still
increased. In my testing for negative values what tends to get
deprioritized are corners and corridors, which is what I was hoping for.
But it's hard to say anything conclusive about whether this would be an
improvement..

--------------------------------------------------------------------------------
1de43cadea | advil | 2022-06-13 09:46:39 -0400

fix: float issue for webtiles pgdn / last menu item calculations
After the new pgdn code from c0181ea820b1, in some cases the last menu
item was not being calculated correctly because of minute (~ 0.1)
overlap of the last menu item with the footer, I assume because of
floating point inaccuracy. This caused pagedown to not consistently move
to the last element in a menu that is larger than one page. This commit
tries to fix this by just adding a bit of heuristic margin; I don't
think this error should ever be more than 1px or so.

--------------------------------------------------------------------------------
b72297ba39 | gammafunk | 2022-06-13 05:40:34 -0500

feat: Rename the Hedge Wizard abbreviation to HW
When Wizard was renamed to Hedge Wizard in 0.26, we avoided changing the
background abbreviation. This was to avoid the hassle of retroactively
renaming combos, but it left us in an awkward situation where the two
class names were different yet the combo names remained unchanged. We're
sure we want to regard the historical Wizard class as equivalent to
current Hedge Wizard, and with release coming soon, now is a good time
to rename the abbreviation and do a retroactive rename in Sequell.

This commit renames the abbreviation Wz to HW and renames all related
enums and image filenames for good measure. I've also updated the lookup
key for background descriptions in all language files that previously
had entries for Wizard, but I've not changed any of the language text.

--------------------------------------------------------------------------------
afbf2c5d25 | Nicholas Feinberg | 2022-06-12 21:09:02 -0700

Make allies not autotarget Kiku wretches
They're harmless, and autotargeting em might prevent the player from
using targeted effects like Simulacrum or Infestation on em - they
can die after the invocation & before the player gets a turn!

--------------------------------------------------------------------------------
3281e725f0 | Nicholas Feinberg | 2022-06-12 21:02:14 -0700

Increase formicid dexterity by +3
Now that dexterity is the only stat that matters for shields, formicids
could use a teensy bit more of it. This increases their SH as follows:

- With bucklers: (3 * 38 * (3*2 + 13) / 26) / 200 = +0.4.
- With kite shields: +0.6.
- With tower shields: +0.85.

--------------------------------------------------------------------------------
0dc89cf053 | Nicholas Feinberg | 2022-06-11 22:54:11 -0700

Rock out, skillfully (Lightli)
New gimmick Meteoran earth magic title. Perhaps too silly.

--------------------------------------------------------------------------------
c323245b08 | Nicholas Feinberg | 2022-06-11 22:10:43 -0700

Tone down Amaemon's loot
An enchanted demon whip of venom pre-lair is just a bit too much reward
to be handing out so often. Turn down the enchantment to the same level
as Grum's, maybe -2 to +1 or so.

--------------------------------------------------------------------------------
1b89ca2c71 | Nicholas Feinberg | 2022-06-11 21:30:13 -0700

Fix petrifying/frozen + aoops (acrobat)
The wrong function was being called to determine whether monsters
were slower than the player (and hence unable to get attacks of
opportunity on them).

Closes #2529.

--------------------------------------------------------------------------------
bc6e321ce9 | Nicholas Feinberg | 2022-06-11 21:13:46 -0700

Fix simulac/dchan + wretches (dilly)
Broken by 2ca5787500ec8efac2b55a44e937fbcb8f280d80.

--------------------------------------------------------------------------------
e9b4822f2a | Nicholas Feinberg | 2022-06-11 20:48:55 -0700

Increase Sandblast's range
Compensate for slowness and make spriggan nonsense a lil less fiddly.

--------------------------------------------------------------------------------
8aee0ca6de | Nicholas Feinberg | 2022-06-11 20:45:58 -0700

Add enums for random beams
Clarify the secret meaning of an enum range.

--------------------------------------------------------------------------------
9aa79d2f82 | Kate | 2022-06-12 00:40:56 +0100

Fix an invisibility uselessness message

--------------------------------------------------------------------------------
a50e9794a5 | Kate | 2022-06-12 00:40:56 +0100

Suppress glow while in shadow form
As mostly-flavour change to Dithmenos shadow form, let it suppress glow
from Corona, as well as innate Meteoran glow and other effects that light
up the player.

--------------------------------------------------------------------------------
8197eedfc6 | Kate | 2022-06-12 00:40:56 +0100

Don't reduce Corona's duration against invisible players
It's unclear why it was extremely short-duration against players that were
invisible - in the very unlikely event that a monster manages to land
Corona on an invisible player, they should get the actual intended benefit
for doing so.

--------------------------------------------------------------------------------
40ec974cc1 | Kate | 2022-06-12 00:40:48 +0100

Improve messaging for Kiku spell gifts
Handle cases where Kiku fails to offer any new spells, or where the player
can only learn a limited subset of the capstone spell gifts.

--------------------------------------------------------------------------------
7a16c6de65 | advil | 2022-06-11 09:48:03 -0400

fix: don't let broodmother spawning crash the arena
The foes for summon spiders were set wrong. This commit generalizes some
code and should perhaps be applied further for the sake of
future-proofing, since any of these summoning spells that just sets the
foe to MHITYOU would crash in the arena if it were ever callable in the
arena.

--------------------------------------------------------------------------------
d29158461a | advil | 2022-06-11 09:48:03 -0400

fix: hide some references to "you" in the arena
I think the conditions that set the UI flags for these are also wrong
for the arena, but it was easier just to hide them. Currently, the mon
info codepath is not used for AI so this is just cosmetic.

--------------------------------------------------------------------------------
64e4043184 | sdynet | 2022-06-10 22:50:37 -0400

Tiny improvement of Oct's ring
It's a bit more useful, and I've adjusted the numbers slightly to fit the theme 
(8)

--------------------------------------------------------------------------------
3e17c549df | Nicholas Feinberg | 2022-06-10 18:33:17 -0700

Turn Sandblast into Slowblast
The idea of a spell that uses up ammunition of some kind is pretty cool.
You can use less powerful spells to conserve ammo, and then use the big
spell for special occasions - if you have other spells available, there's
no inconvenience similar to switching between different weapons.

However, at level 1, you won't *have* other spells available. So the only
way to preserve stones for Sandblast is to switch to melee for chaff...
which isn't very exciting!

Instead, let's play with a new mechanic that I've wanted to try out for
Earth Magic for a while. Sandblast now no longer consumes stones, but
instead takes twice as long to cast as normal spells. In testing, this
gave it a distinctive and spicy character, but still felt quite powerful.
(It's probably a slight nerf to D:1 EE and maybe a buff for D:2-3, which
seems fine.)

I'll keep an eye out for other places to use the ammo mechanic, though it
might not involve stones.

--------------------------------------------------------------------------------
a02bf68b3c | Nicholas Feinberg | 2022-06-10 14:39:34 -0700

Remove water (potion [colour logic])
Obsolete since d34118a48d77f2a9bb4910353feb4662b87d51c0 (2012).

--------------------------------------------------------------------------------
bafdd74861 | advil | 2022-06-10 14:16:22 -0400

fix: give death and suffering their due

--------------------------------------------------------------------------------
359e09b9d1 | advil | 2022-06-08 16:47:42 -0400

fix: minor tweaks to mac console exec script
* add a condition to run this directly from the repo without a
  containing app
* refactor the app name logic
* add an error case
* add a comment explaining how to use a different terminal app
  (real wish: a user-friendly way to do this)

--------------------------------------------------------------------------------
883231c05f | advil | 2022-06-08 10:17:55 -0400

fix: reword middle Ru sac level
As pointed out in:
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=27288
it's a bit hard to figure out whether "significant" or "major" is
bigger. (The answer is "major".) I changed "significant" to "medium",
which to me reads as both bigger than "modest" and less than "major".

--------------------------------------------------------------------------------
43b9904bd1 | Nicholas Feinberg | 2022-06-07 19:10:39 -0700

Fix Chei + rampaging randarts (dilly)
Artefacts with rampage weren't being rejected from acquirement
because they weren't ID'd enough. Ridiculous.

--------------------------------------------------------------------------------
2ca5787500 | Nicholas Feinberg | 2022-06-07 16:05:25 -0700

Don't freeze jelly spawns' souls (ebering)
Casting simulac on the royal jelly's buddlylings didn't even work.

--------------------------------------------------------------------------------
3b24f45cc1 | Nicholas Feinberg | 2022-06-06 20:47:35 -0700

Make concentrated venom decay over time
Looks like an oversight in 6ecf17fd6c (15 months ago).

--------------------------------------------------------------------------------
62b45afb52 | Nicholas Feinberg | 2022-06-06 20:46:07 -0700

Allow raising invisible foes from the dead (ebering)
Also allow raising simulacs from out of LOS.

--------------------------------------------------------------------------------
81b289dbe5 | Neil Moore | 2022-06-05 05:43:12 -0400

Simplify slightly

--------------------------------------------------------------------------------
cc0464ae43 | Edgar A. Bering IV | 2022-06-05 11:00:37 +0300

text: list kiku gift spells in the description

--------------------------------------------------------------------------------
ffc1d7fb78 | Nicholas Feinberg | 2022-06-04 16:47:50 -0700

Fix webtiles monster descriptions
Broken by new status icons.

--------------------------------------------------------------------------------
81e455f4c2 | advil | 2022-06-04 17:59:13 -0400

fix: prioritize non-removed species for species::from_str_loose
The main effect of this is that &rorc in wizmode turns you into a hill
orc, not a lava orc. (You can still use exact strings to get the removed
species.)

--------------------------------------------------------------------------------
e87547aa71 | advil | 2022-06-04 17:59:13 -0400

fix: move a bunch of option defaults out of dat/defaults
I would prefer if only lua options had their defaults set in these
files. We are a ways from there but these two really don't need to be
done in an include; one of them even had its default split between c++
and the include. Everything that is left here is either lua or a
text_pattern (where for reasons I haven't discerned, text_pattern
defaults never seem to be set in c++).

--------------------------------------------------------------------------------
32f4ba3753 | Nicholas Feinberg | 2022-06-04 14:27:25 -0700

Turn off explore_auto_rest for Meteorans
It's usually better to keep moving.

--------------------------------------------------------------------------------
8f12ed8835 | Nicholas Feinberg | 2022-06-04 14:23:59 -0700

Fix the build
oops

--------------------------------------------------------------------------------
3a238a73d9 | Nicholas Feinberg | 2022-06-04 14:21:48 -0700

End the terror of tentacle segment zombies
Too spooky......................

--------------------------------------------------------------------------------
1c0eb391a4 | Nicholas Feinberg | 2022-06-04 14:18:25 -0700

Fix sprint combo bans
Don't display delver in the jobs list if you haven't chosen a species
yet, and don't allow Meteoran at all. (Sprints have no zot clock.)

--------------------------------------------------------------------------------
10a518f58f | Nicholas Feinberg | 2022-06-04 13:56:02 -0700

Add many new status icons (Sastreii)
- Antimagic
- Concentrated Venom
- Dazed
- rF- (fire vuln)
- Partially & fully charged (floating eyes)
- Injury Bond
- Repel Missiles
- Simulacrum
- Still Winds
- Waterlogged (phial)
- Weakened

Whee!

--------------------------------------------------------------------------------
05c506a3cf | Nicholas Feinberg | 2022-06-04 13:56:02 -0700

Store tile icons as a list
We'd run out of space in a 64-bit int to store more
status icons for tiles, and we want a bunch more!
Turn em into a list.

--------------------------------------------------------------------------------
075992c915 | advil | 2022-06-02 15:01:32 -0400

fix: don't wipe out Ru muts with change_species_to
This code was promoted from a wizmode function, where things didn't need
to be absolutely perfect, to being used in fixups. Among other issues,
it overlooked Ru sacs, which are implemented as innate mutations. I'm
not perfectly confident that the following code won't mess with sacs in
some way I don't understand, but this fix works for the straightforward
cases.

--------------------------------------------------------------------------------
af1fc19f1b | advil | 2022-06-01 17:55:51 -0400

fix: tiles umbra/halo interactions
This logic is exactly copied from showsymb.cc (this was working for
console) minus the silence stuff.

Resolves #2561

--------------------------------------------------------------------------------
bfd55560d8 | advil | 2022-06-01 16:58:58 -0400

fix: a tag major upgrade crash
As long as these enum values exist, we apparently need to give them a
color. (I haven't looked very deeply into why.)

--------------------------------------------------------------------------------
da7b1fbfba | advil | 2022-06-01 16:44:43 -0400

fix: misc tag upgrade things
visible locally, but not in CI

--------------------------------------------------------------------------------
cd130a58c2 | advil | 2022-06-01 16:37:08 -0400

fix: remove halfling

--------------------------------------------------------------------------------
223e3869e7 | advil | 2022-06-01 16:14:08 -0400

fix: tag major #ifdefs for aptitudes.h
This was apparently never implemented, but didn't matter. I don't know
why this didn't break before.

--------------------------------------------------------------------------------
a137e16256 | advil | 2022-06-01 15:41:03 -0400

fix: major tag bracketing for removed species
Now that this enum is not fully conditionalized, specific removed
species need to be marked for the tag upgrade CI test to succeed.

--------------------------------------------------------------------------------
5014999b08 | advil | 2022-06-01 14:27:52 -0400

fix: default `create_enum` to false in species gen
As recently discovered, alphabetically generating an enum that is
serialized as a number is a really bad idea if you want to preserve any
sort of save compatibility. Disable by default the enum-generating
option for species_gen.py, and adjust docs and yaml files accordingly. I
considered removing this option entirely but it may be useful for less
experience coders playing with the code, if you're just adding one
species in a private fork (or don't care very much about your players'
save files) it's fine/useful.

This only didn't come up between 2018 and now out of sheer luck; Dj
reused an existing hardcoded enum value, Gn and Pa's alphabetical order
matches the order in which they were added, and My didn't exist for long
enough for the bug to get noticed (or reported, at least). I think
everything else has been a revamp or removal.

--------------------------------------------------------------------------------
26aeb8ffec | advil | 2022-06-01 12:25:49 -0400

fix: avoid a potential divide by 0 error
The calc_hp code can be triggered during fixups, at a point where hp_max
(which is recalculated on load during _post_init) is not yet set,
causing a divide by 0 error. Just skip the rescaling for this case.

Also add an explicit dprf for species changes.

--------------------------------------------------------------------------------
200812b14b | advil | 2022-06-01 11:41:13 -0400

fix: pa/me/my fixup fix (real)
fa20dd96a133 fixed meoteoric Pas correctly, but turned Me into My (with
Me muts at least). This commit fixes the original fixup, and adds a new
fixup for My generated along the way.

--------------------------------------------------------------------------------
dd5a78fe54 | Kate | 2022-06-01 13:01:57 +0100

Don't suppress Meteoran glow in forms
The one form where it would make a big difference either way (shadow form)
already doesn't suppress glow since it's a form that keeps mutations.
Making the glow permanent allows potions/scarves of invisibility to be
properly marked as permanently useless, instead of being left on autopickup
because they were technically only "temporarily" useless previously.

--------------------------------------------------------------------------------
67b01d5277 | Kate | 2022-06-01 12:47:49 +0100

Mark scarves of invisibility useless when perma-backlit

--------------------------------------------------------------------------------
1b1fc82263 | Kate | 2022-06-01 12:14:08 +0100

Allow ice beast zombies again
As natural monsters, they should be zombifiable the same way as other
weird-but-living creatures like sky beasts, unseen horrors and jellies are.

--------------------------------------------------------------------------------
fa20dd96a1 | Nicholas Feinberg | 2022-05-31 21:17:56 -0700

Stop turning palentongas into meteorans?
Try to fix the build. This is very scary code and may be quite wrong.

--------------------------------------------------------------------------------
05f53baf05 | Nicholas Feinberg | 2022-05-31 17:38:00 -0700

Merge deep, mountain and hill dwarves
DD were a very cool experiment. By removing passive regeneration,
they asked: if misplays in any fight have consequences (HP loss)
that extend beyond that fight, does the game become more dynamic
and exciting?

'No regen' over time works great in many games - Spelunky, Cogmind,
Desktop Dungeons, Slay the Spire, Hoplite, etc, etc. If I were
designing a new game today, I'd very likely not have passive regen
over time!

However, Crawl is designed to have very large numbers of fights in
each game, over a time much longer than any of the above games.
Playing 'optimally' throughout every fight for a whole game is
exhausting!

DD largely circumvent their own gimmick by a variety of 'allowed'
healing mechanisms - e.g. vampiric weapons, Vampiric Draining,
Makhleb, Ru, Elyvilon (if one must), and now Jiyva. The final result
is a species that's quite powerful, but enjoyable for only a select
few.

As such, let's call this experiment to a close. Whisper 'Farewell'
when you leave, Dimli...

--------------------------------------------------------------------------------
1352289c90 | Nicholas Feinberg | 2022-05-31 17:37:32 -0700

New species: Meteoran
Time pressure often creates exciting gameplay and interesting
tradeoffs. Baseline Dungeon Crawl uses the Zot Clock to add a
very weak form of time pressure, but there's so much variety
between the playstyles of different species and backgrounds
that a tight clock for some would be almost impossible for
others.

So, let's try limiting that gameplay to just one species!
Meteorae have an exciting variety of bonuses - great attributes
and aptitudes across the board, passive mapping, and exploration
healing, regaining HP and MP when viewing new territory. In
exchange, they have one big downside: instead of getting 6,000
turns of Zot clock for each floor, they get 600!

The big concern here is whether this species can be made fun
without also being made wildly, boringly 'overpowered'. Lots of
levers and knobs to tweak, so let's give it a shot!

Extra notes:
- Meteorae are humanoid beings. (In the night sky, they look
  like dots because they're very far up.) Hat tip to Neil Gaiman's
  Stardust.
- This commit has a silly 'flavour' gimmick where Meteorae's LOS
  radius decreases by 2 when they have less than 50 turns left
  of Zot clock, and again when they have less than 10. Darkness
  is closing in...
- Meteorae glow in the dark. Permanent backlit status (not halo!):
  +enemy to hit, -stealth, disables invis. Suppressed in forms.
  Seems funny.

Credit to hellmonk for the initial version of this species and
pushing to make 'em happen. :)

--------------------------------------------------------------------------------
7c30feaf68 | Nicholas Feinberg | 2022-05-31 17:36:39 -0700

Add a description for short-lived

--------------------------------------------------------------------------------
611cb8dbe1 | Nicholas Feinberg | 2022-05-31 17:36:31 -0700

Soften the Zot clock
Instant death is something DCSS has flirted with from time to time,
and generally ends up steering away from. In a game as long as DCSS,
instantly dying from falling into lava is just a bit too cruel.

So, too, goeth the Zot clock. Soften it by making it apply extremely
heavy drain for the first few hits, roughly 1/3rd of max HP each time.
Only at very low max HP will it now kill the player. (I'd wanted to
remove this too, but I think Xomscumming would still be possible without
it.)

After Zot draining, the player gets another 1k turns on the clock (200
for Meteorae).

Let's try this out and see how it goes.

--------------------------------------------------------------------------------
4d55d654a6 | Nicholas Feinberg | 2022-05-31 17:08:02 -0700

Crumble Animate Dead zombies on leaving the floor
Tragically seemed to only lead to unfun strats. My heart weeps.

--------------------------------------------------------------------------------
81a890a79d | Neil Moore | 2022-05-31 19:11:12 -0400

Update copyright date

--------------------------------------------------------------------------------
a956f109cc | Neil Moore | 2022-05-31 19:11:12 -0400

gather_monster: strip backslash-newline in kmons()
The Head Instructor definition has an unstripped backslash, resulting in
`make monster` giving the error:

  util/monster/vault_monster_data.h:50:1: warning: unknown escape sequence: 
'\040'

--------------------------------------------------------------------------------
59ce8b2d47 | Nicholas Feinberg | 2022-05-31 14:01:06 -0700

X Gonna Zombify Ya (Sastreii)
New zombie tiles for jellies, orbs and Xs.

--------------------------------------------------------------------------------
c852659d43 | advil | 2022-05-30 09:55:12 -0400

fix: handling of animating objects on banishment
This reverts an incidental part of df715e3894bdc; after this commit the
animating object for dancing weapons was getting unconditionally
destroyed on banishment. The ENCH_ABJ check here is necessary to
identify animated objects that are temporary but not summoned. In
addition, I think it is correct to only set UNIQ_LOST_IN_ABYSS on
temporarily animated objects, because otherwise (in principle)
duplicates would be possible.

I'm not 100% sure that KILL_BANISHED will do something sensible on a
temp animated weapon, independent of this codepath though? It may still
go on the transit list...

--------------------------------------------------------------------------------
90894fac46 | Neil Moore | 2022-05-30 02:32:10 -0400

Simplify mephitic movement check.
Now that there is no damage to worry about (0.28-a0-1521-g870370a84aO)

--------------------------------------------------------------------------------
e2af7f97bc | Neil Moore | 2022-05-30 02:14:08 -0400

Finish promoting Sastreeii
The commit 0.28-a0-623-g7f772adbe3 neglected to remove them from the
(implicitly non-dev) contributors list.  Fix that.

[skip ci]

--------------------------------------------------------------------------------
bdf32494f2 | Neil Moore | 2022-05-29 23:41:05 -0400

Move orbs to lightgrey, animal skins to red.
Orbs had the same colour as cloaks and scarves, despite being in a
completely different slot.  Rather than move orbs to cyan with their
slotmates, put them on a mostly-free colour.

This requires, or at least suggests, moving the one other lightgrey
armour, animal skins, to another colour.  Since skins are functionally
identical to robes (this is, as far as I know, the only remaining
instance of functionally-identical items distinguished purely for
flavour reasons), put the two on the same colour.

Also move CPA in the relevant switch, to keep the (now fewer) white
armours together.

--------------------------------------------------------------------------------
906aab00d3 | Nicholas Feinberg | 2022-05-29 17:25:01 -0700

Remove ice beasts' skeletons

--------------------------------------------------------------------------------
7c1fb6cc08 | Nicholas Feinberg | 2022-05-29 11:16:22 -0700

Fix jelly/orb/orb guardian zombie tiles
A bit hacky, but good enough for now.

--------------------------------------------------------------------------------
f985e02bcb | Nicholas Feinberg | 2022-05-29 10:46:17 -0700

Dispel with the illusion of zombies
Don't allow insubstantial zombies, e.g. player illusions. (Arguably
those should be MH_NONLIVING anyway.)

--------------------------------------------------------------------------------
e4dad5d916 | advil | 2022-05-29 13:12:52 -0400

refactor: remove mons_zombifiable
88678701b151 made this equivalent (indirectly) to
mons_class_can_be_zombified, and I'm now pretty sure this is correct.
The only reason that has come up to have them distinct is to allow some
kinds of monsters to place in vaults but not generate randomly, but this
can also be accomplished by setting the M_NO_GEN_DERIVED flag, so the
only function of both of these existing at this point is confusion.

Also removes a bunch of lua stuff that I think is now useless since
corpses are purely cosmetic; if I'm wrong it's easy enough to revert.
Possibly what is needed is now similar functions that act on monsters?

--------------------------------------------------------------------------------
f59ac788ac | Nicholas Feinberg | 2022-05-28 17:25:58 -0700

Fix stab logging with spriggan's knife (Rhaal)

--------------------------------------------------------------------------------
a64e7d0afd | Nicholas Feinberg | 2022-05-28 17:12:25 -0700

More body mutation tiles (Sastreii)
Large bone plates, sharp scales, and thin skeletal structure.

--------------------------------------------------------------------------------
343b47744d | Nicholas Feinberg | 2022-05-28 17:12:25 -0700

Add missing Bearserk description

--------------------------------------------------------------------------------
793eeb5391 | advil | 2022-05-28 14:34:57 -0400

fix: some issues for shops you aren't in
Don't show purchase costs, don't allow marking items for purchase.
Shopping list is still editable, but `$` is disabled.

(You can view shops in this mode via stash search.)

--------------------------------------------------------------------------------
901c68f7c3 | advil | 2022-05-28 12:30:32 -0400

fix: incremental shopping menu improvements
This menu is still incredibly confusing, but here are a few tweaks.
* when in describe mode, enter on a hovered item describes it, keyhint
  changes correspondingly
* the purchase keyhint disappears when nothing is selected
* the cost hint accurately reflects when you are purchasing the shopping
  list items.

Missing:
* the difference between shopping list items being selected and regular
  items being selected is very confusing
* keyhints for `$`, `.`
* hover-based way of interacting with shopping list
* should `.` have mode-sensitive behavior?
* use general menu keyhint code, instead of custom more

--------------------------------------------------------------------------------
711e9a50b0 | Kate | 2022-05-28 17:15:28 +0100

Update some Kiku descriptions (#12703)

--------------------------------------------------------------------------------
a2e7fffb44 | Nicholas Feinberg | 2022-05-27 17:28:32 -0700

Add tiles for ?/U (mutation lookup)

--------------------------------------------------------------------------------
99dc0984f0 | Nicholas Feinberg | 2022-05-27 17:22:06 -0700

Add the ultimate big brain meme (Sastreii)
Average Chei fan vs average !mutation enjoyer..?

--------------------------------------------------------------------------------
ec6baf379c | Nicholas Feinberg | 2022-05-27 14:28:43 -0700

Add mutation lookup

--------------------------------------------------------------------------------
5bb2ffafd0 | Kate | 2022-05-27 19:51:12 +0100

Prevent some unsuitable monster skeletons

--------------------------------------------------------------------------------
6e53cefa51 | Kate | 2022-05-27 19:02:44 +0100

Remove an unnecessary non-flag

--------------------------------------------------------------------------------
50bc209b2e | Kate | 2022-05-27 19:01:19 +0100

Allow shapeshifter zombies
Fixes a build failure, since a vault relies on them working. Historically
shapeshifter zombies have been allowed to be placed by vaults or reanimated
by the player, but didn't generate randomly (which they now will).

--------------------------------------------------------------------------------
88678701b1 | advil | 2022-05-27 13:33:42 -0400

fix: prevent zombifying various undead (Rhaal)
Also shapeshifters. As the comments note, I'm fairly unsure of what the
division of labor is supposed to be for the relevant zombification
functions so I haven't collapsed anything (though I believe it would be
safe to if this commmit is correct).

--------------------------------------------------------------------------------
e94edfd80f | advil | 2022-05-27 12:07:01 -0400

fix: header build tests
Needed to ensure tileidx_t is defined for the new mutation icon
function. Also fixed a few misc warnings I noticed.

--------------------------------------------------------------------------------
e007cd9fbb | advil | 2022-05-27 11:01:12 -0400

fix: typo
Hadn't saved the file

--------------------------------------------------------------------------------
b6e6f924de | advil | 2022-05-27 10:58:46 -0400

fix: prevent another player tile crash (Aliscans)
See #2544

--------------------------------------------------------------------------------
281f2b06d5 | gammafunk | 2022-05-27 03:30:13 -0500

fix: Correct a Makefile variable (Goratrix)
A typo was introduced in 08a933d9 that broke compilation on some
platforms.

--------------------------------------------------------------------------------
17b79114eb | Nicholas Feinberg | 2022-05-26 20:23:57 -0700

Display mutation tiles in-game (Sastreii)
Sweet!

--------------------------------------------------------------------------------
08a933d9be | Nicholas Feinberg | 2022-05-26 20:23:57 -0700

First mutation tiles (Sastreii)
Scales, fangs & clarity. Not yet supported in-game.

--------------------------------------------------------------------------------
10c3c7b3e5 | gammafunk | 2022-05-26 18:07:26 -0500

fix: Prevent teleports into a closet (Sergey)
For evilmike_makhleb_hellhole, the chamber with neutral humans sealed by
an iron grate needs `no_tele_into`, in case one teleports inside and has
no digging.

--------------------------------------------------------------------------------
10b964d8d7 | Kate | 2022-05-26 17:28:12 +0100

Actually allow all natural monsters to be zombified
Without crashing on reading des files this time - non-natural monsters
with corpses (such as pearl dragons and demonic crawlers) can still also
be zombified.

--------------------------------------------------------------------------------
ac2d4088d3 | advil | 2022-05-26 09:42:56 -0400

fix: disallow player tile mons:dancing_weapon
This crashes. For some animated objects you can still set a tile like
`tile_player_tile = tile:mons_spectral_lbl`, but this unfortunately
isn't available for dancing weapons proper. It seems reasonable (at some
level) to implement this but I won't be doing it myself right now.
Probably the simplest thing would be to just add some dancing weapons to
the player tile name pairs? (Implementing a full on dancing weapon tile
mode is much more annoying, because dancing weapons set their tiles
based on a real item that is technically in their inventory.)

resolves #2544

--------------------------------------------------------------------------------
77b3608bb8 | Nicholas Feinberg | 2022-05-25 16:29:21 -0700

Revert "Allow all natural monsters to be zombified"
Broke the build. TODO: unrevert me.

This reverts commit 2245875f922b5f5f3da7fd50e32a253ad6a85885.

--------------------------------------------------------------------------------
7bd733b9cc | Kate | 2022-05-25 23:10:23 +0100

Fix a compiler warning (shadowed params)

--------------------------------------------------------------------------------
2cb01fd4ca | Kate | 2022-05-25 22:52:50 +0100

Don't allow derived undead with no attacks
Require monsters to at least have an attack of some sort to be able to be
zombified, or to have either an attack or some spells to be a Yredelemnul
bound soul.

--------------------------------------------------------------------------------
2245875f92 | Kate | 2022-05-25 21:45:51 +0100

Allow all natural monsters to be zombified
Whether or not a monster leaves an actual corpse item is now purely
cosmetic, so there's no small arbitrary set of otherwise-living monsters
(eg unseen horrors, orb guardians) that Animate Dead doesn't work on.

--------------------------------------------------------------------------------
a88943ba61 | Kate | 2022-05-25 21:15:22 +0100

Fix Simulacrum not working on demons
It could be cast on them, but wouldn't actually do anything. To be fully
consistent with its lore and with Death Channel's behaviour, let it work on
any monster with a soul (all natural, demonic and holy monsters, including
natural monsters with no corpses).

--------------------------------------------------------------------------------
12ac202842 | advil | 2022-05-25 13:00:42 -0400

fix: save after world_reacts on level entry
There's a save call in `floor_transition`, and a new level is saved on
generation. However, these save states are not at a point where the
player can ever have control over the game, because there's always a
following world_reacts cycle. Because of this, if a crash happens after
these saves but before a real save, the game is rolled back to a time
that is impossible to get to in any other way -- time 0 after level
entry. This is the bug discovered by personjerry and mentioned in
f3dacdeeaaba2. To be clear, it's *not* (imo) a bug that you can roll
back time by intentionally force quitting or killing a local game in
this way, that's just a variant of ordinary savescumming -- this commit
doesn't prevent using force quits to roll back time[1]. But what it does
ensure is that a crash rolls back time to a possible game state. The
implementation is very brute force and adds Yet Another Bool to
`crawl_state`. Along the way I fixed what I think is a bug in sprint
save checkpoints -- the level state wouldn't get saved, so a crash in
sprint could at least in principle lead to a save with a very
inconsistent player / level state.

As a side note, the fact that outside of regular save+quit the player
and the level are typically saved independently (something I hadn't
grasped before this fix), could lead to all sorts of other weirdnesses
on crash.

[1] This could be desireable but it's not entirely clear to me how to do
it, and it's also quite platform-specific.

--------------------------------------------------------------------------------
0e957ee05f | advil | 2022-05-25 07:58:56 -0400

Revert "Revert "Make new stairs fast after crashing (advil)""
There's a bug here, which is that the game state is saved before stair
travel time (as well as seen_monsters_react) is applied, but this
happens independently of this flag, and so this revert did not fix it.
So killing the crawl process, forcing a crash, immediately after stair
descent always rolls back whatever stair time there was as well as the
initial hits.  Also possibly a bug that the crash isn't saving? I'm not
sure why it wouldn't.

Also, I kind of want to say that force-quitting a local game is
essentially a form of save-scumming and so I'm slightly mixed on whether
this is really what I'd call a bug.

This reverts commit f3dacdeeaaba24e7937b459bf04e6c4ca36dcd6f.

--------------------------------------------------------------------------------
69413ace17 | Nicholas Feinberg | 2022-05-24 20:56:20 -0700

Make the simulacrum targeter smarter (CarefulOdds)
Only target valid enemies.

--------------------------------------------------------------------------------
771e844529 | Nicholas Feinberg | 2022-05-24 20:42:02 -0700

Remove prompt for inner flaming friendlies
You want to set your friends on fire? Go wild, bud.

--------------------------------------------------------------------------------
34935aedf5 | Nicholas Feinberg | 2022-05-24 20:40:15 -0700

Make the inner flame targeter smarter
No targeting will-immune guys, etc.

--------------------------------------------------------------------------------
f3dacdeeaa | Nicholas Feinberg | 2022-05-24 20:06:42 -0700

Revert "Make new stairs fast after crashing (advil)"
As personjerry notes, this allows quick-moving players to cheat and
get fast stair descents by force-quitting the game. I wouldn't have
believed it if I hadn't seen it!

This reverts commit 653eee55725701cece7eb2daeb7dd585f623eeee.

--------------------------------------------------------------------------------
93865b4adf | Nicholas Feinberg | 2022-05-24 18:04:02 -0700

Allow casting simulacrum on demons (kate, ardl)
Consistent with Death Channel.

--------------------------------------------------------------------------------
6d556a0ce6 | Nicholas Feinberg | 2022-05-24 17:06:14 -0700

Ban very low enchantment randart armour
It's sort of funny to generate a -7 randart barding, but it's never
ever getting worn. Floor it at -2, in the spirit of the hat of the
Alchemist.

--------------------------------------------------------------------------------
62b78b4225 | Nicholas Feinberg | 2022-05-23 21:19:21 -0700

Simplify Death Channel (Monkooky)
Remove the ability to recast while the duration is active, forcing
all specters to expire before you can get a fresh batch. This should
hopefully make gameplay with it a little more dynamic, and also
improve UI a bit - you no longer need to remember to recasting when
the expiration message appears.

It still seemed quite strong in testing, but other adjustments can
always be made if need be.

--------------------------------------------------------------------------------
78b83d787e | Nicholas Feinberg | 2022-05-23 21:07:44 -0700

Let death channel work with enemy necromancy
Simpler to have it work with all corpse-eating effects.

--------------------------------------------------------------------------------
e40278f558 | Nicholas Feinberg | 2022-05-23 21:04:18 -0700

Increase Necrotize skeleton duration
Try to make em a little more relevant.

--------------------------------------------------------------------------------
dfe5cd140f | Nicholas Feinberg | 2022-05-22 20:45:33 -0700

Reorganize necromantic effects
Make Infestation consume corpses. The only Necromancy spells that
stack are now Death Channel + one of (Infestation, Simualcrum, Animate
Dead, Necrotize) + Corpse Rot.

TODO: we should make necromancy spells that consume corpses still give
out monster organs (eg dragon armour) as appropriate.

--------------------------------------------------------------------------------
acb4ef3bc5 | Nicholas Feinberg | 2022-05-22 07:21:09 -0700

Vulnerability, anguish, and decay (Sastreii)
New tiles for the amulet of Elemental Vulnerabilty, Anguish, and
Necrotize.

--------------------------------------------------------------------------------
e5599a681e | Nicholas Feinberg | 2022-05-21 22:19:03 -0700

New early-game fixedart: the amulet of Elemental Vulnerabilty
AC+8, rPois, rC--, rF--. Would you wear it? I would :)

--------------------------------------------------------------------------------
88dec836d1 | Nicholas Feinberg | 2022-05-21 21:56:30 -0700

Remove Pain (Lightli)
Update the Necromancer background description.

--------------------------------------------------------------------------------
9071f44f2d | Nicholas Feinberg | 2022-05-21 21:13:30 -0700

Release the God of Metal (Sastreii)
New Kiku invo tiles.

--------------------------------------------------------------------------------
d254ca66d9 | Kate | 2022-05-21 13:16:41 +0100

Fix some commas in unrand inscriptions
Remove Damnation's comma (it was trimmed out anyway due to not having any
other properties) and give it to Condemnation.

--------------------------------------------------------------------------------
e57f7f99b4 | Nicholas Feinberg | 2022-05-20 17:17:11 -0700

Remove condemnation fallback (advil, gammafunk)
No need to special case this - it's ok to very rarely generate randart
trishulas.

--------------------------------------------------------------------------------
e4d8c67b05 | Nicholas Feinberg | 2022-05-20 17:03:32 -0700

Finish shortening Condemnation's name
oops

--------------------------------------------------------------------------------
ca8cdc03c0 | Nicholas Feinberg | 2022-05-20 17:02:39 -0700

Clarify Condemnation's holiness
Remove skip_ego and remove the 'Barbs of' to make space.

--------------------------------------------------------------------------------
48891804b8 | Nicholas Feinberg | 2022-05-20 17:01:56 -0700

Condemn some placeholder dev tiles (Sastreii)
New tiles for the trishula "Condemnation".

--------------------------------------------------------------------------------
50448035db | Nicholas Feinberg | 2022-05-20 09:10:19 -0700

Tweak Condemnation lore
Clarify in the weapon description why it inflicts anguish (thematically),
and move the noises further in line with the lore.

--------------------------------------------------------------------------------
df083b7a6e | Nicholas Feinberg | 2022-05-20 07:09:34 -0700

Add missing Condemnation doll tile

--------------------------------------------------------------------------------
f74b082263 | advil | 2022-05-20 09:34:20 -0400

fix: correct weapon stats for UNRAND_WOE
The description was showing numeric stats for a regular exec axe.  Also,
fix an unrelated ∞. At this point all ∞s besides those in art-data.txt
are correctly conditionalized.

--------------------------------------------------------------------------------
e4767303ab | advil | 2022-05-20 09:34:20 -0400

fix: conditionalize a few more ∞s

--------------------------------------------------------------------------------
a9ffdc3c7e | Nicholas Feinberg | 2022-05-20 05:57:51 -0700

Remove an accidental addition

--------------------------------------------------------------------------------
97dee8cd24 | Nicholas Feinberg | 2022-05-19 21:58:38 -0700

New unrand: the trishula "Barbs of Condemnation"
The weapon of a long-gone archangel of judgment, this is a +8 trishula
that inflicts 4-8 turns of Anguish on hit. (That is, victims have their
damage mirrored back to them.) It also gives flying, rN+, and makes angel
noises. Fun!

It's a one-hander so that the anguish damage is more relevant (rather than
the weapon damage more quickly & directly murdering everything), a polearm
to synergize with allies, and a trishula for thematic & mechanical variety.
(We already have a perfectly good demon trident unrand.)

For more details, please read the description of Barachi in the Crawl manual.

--------------------------------------------------------------------------------
5c6f5cd5d9 | Nicholas Feinberg | 2022-05-19 21:38:24 -0700

Actually decay anguish over time
??oops

--------------------------------------------------------------------------------
93c1fc3693 | advil | 2022-05-19 20:47:50 -0400

fix: remove wrong comment, use "inf" (PF)

--------------------------------------------------------------------------------
667b474bfb | advil | 2022-05-19 20:41:17 -0400

fix: respect char_set=ascii in hud
We've been using ∞ to indicate immunity for a while now, but this was
shown even if the player tried to force ascii. I chose `!`
semi-arbitrarily as potentially indicating the right thing, maybe
there's better options.

--------------------------------------------------------------------------------
96ad54b138 | advil | 2022-05-19 18:11:32 -0400

feat: use .tsv for objstat outputs instead of .txt
These already are tsv files, and using the extension makes it easier to
auto-open them in a spreadsheet app and so on. This change approved by
gammafunk(tm).

--------------------------------------------------------------------------------
53bdb1016d | advil | 2022-05-19 18:06:05 -0400

fix: tweak precision for NumOOD in objstat
These are reporting rare enough events that with just to digits of
precision, a lot of stuff that is non-0 shows up either as 0.00 or 0.01.
An extra digit on top of the default seems to be enough that most values
can be compared when working in the 1000 iters range.

--------------------------------------------------------------------------------
f113fcf677 | advil | 2022-05-19 16:55:32 -0400

feat: add some monster OOD info to objstat
The relative depth values correlate with this, but it's interesting and
potentially useful to pull out OOD info specifically. At the moment for
large iters, the NumOOD field very rarely exceeds 0.01 for individual
monsters that do place in my testing, so I may need to tweak this
further for it to be useful.

--------------------------------------------------------------------------------
763a1779be | advil | 2022-05-19 11:14:18 -0400

feat: add some basic monster depth info to objstat
Two new fields derived from mon-pick-data.h. These are a bit rough but
still informative in my testing.

RelativeDepth: the current depth minus the average depth based on
regular placement tables. So more negative is more out of depth, more
positive is more under depth. So for example a fire dragon placing on
D:9 gets RelativeDepth -11, because its average placement (rounded) is
20. Out-of-branch monsters get 0 for this, so the following Num stat is
what is used to calculate the average.

NumInBranch: Counts monsters that are generated by the regular branch
placement tables. For individual monsters, this will either be the total
count or 0.  (Maybe NumOutOfBranch would be more useful as a directly
viewable stat?) A few caveats: neither uniques nor derived undead ever
count as in-branch.

I did it like this because there is already an average function, but it
might also or instead be nice to have an explicit OoD number, maybe
something like the closest depth range edge minus current depth. E.g.
the fire dragon in the example above is also over-OoD, because its
minimum placement is D:14 (placed by a vault), and this is a bit hard to
directly reconstruct. Maybe later.

--------------------------------------------------------------------------------
fbfa42419e | Nicholas Feinberg | 2022-05-18 14:35:18 -0700

Fix corpse description (Lightli)

--------------------------------------------------------------------------------
f02deff4a7 | advil | 2022-05-18 16:25:48 -0400

refactor: convert `pregen_dungeon` to enum, clean up parsing
This option was previously implemented with the double bool for three
values strat; this converts it to a 3-valued enum and uses this to clean
up the parsing code as well. Sort of annoying to have yet another tiny
little enum.h around, but I guess that's what we do.

--------------------------------------------------------------------------------
9e3099983f | Nicholas Feinberg | 2022-05-18 12:42:42 -0700

Remove Animate Skeleton's remains
Just a few spare leg and arm bones floating around.

--------------------------------------------------------------------------------
a536a90030 | Nicholas Feinberg | 2022-05-18 12:38:31 -0700

Remove excruciating wounds
The description.

--------------------------------------------------------------------------------
aae9a6c917 | Nicholas Feinberg | 2022-05-18 12:36:35 -0700

Fix OOD fuzzing
Broken in 18a14b5c600 (almost exactly a year ago) to *not* weight
away from the edges. Oops!

--------------------------------------------------------------------------------
3b62d05871 | Kate | 2022-05-18 19:01:44 +0100

Apply coding conventions

--------------------------------------------------------------------------------
e11e1e56b0 | Kate | 2022-05-18 19:01:18 +0100

Fix Corpse Rot's description for !cancellation
And clarify a comment to explain why short_text needs to be in adjective
form.

--------------------------------------------------------------------------------
0f0961c20d | Kate | 2022-05-18 18:48:17 +0100

Give Unearth Wretches an ability targeter

--------------------------------------------------------------------------------
ed0ba456c6 | advil | 2022-05-18 11:41:36 -0400

fix: remove some unused functions (Goratrix)

--------------------------------------------------------------------------------
5dfcd41d59 | Nicholas Feinberg | 2022-05-18 07:07:00 -0700

Ban anime zombies from attacking outside LOS, again

--------------------------------------------------------------------------------
ef7be07a3d | Nicholas Feinberg | 2022-05-18 07:07:00 -0700

Update kiku desc

--------------------------------------------------------------------------------
eecb74a380 | Nicholas Feinberg | 2022-05-18 07:07:00 -0700

New Kiku ability: Unearth Wretches
Replacing corpse drop, this summons a few wretched, near-death souls
for you to practice necromancy on. They're zero XP, paralysed, 1 HP,
0 will, and die in a few turns. Rough!

--------------------------------------------------------------------------------
c36bb38398 | Nicholas Feinberg | 2022-05-18 07:07:00 -0700

Retheme simulac

--------------------------------------------------------------------------------
9dfb08f9a7 | Nicholas Feinberg | 2022-05-18 07:06:57 -0700

Re-rework animate dead
Make the zombies unlimited duration, but have them crumble when the
caster re-casts this spell. This is intended to avoid the boring play
pattern of repeatedly casting the spell at the start of every fight,
and to encourage somewhat more dynamic and fun decision-making.

Also reduce power scaling to make the spell more usable by 'hybrids'.

--------------------------------------------------------------------------------
3a8266931e | Nicholas Feinberg | 2022-05-18 07:06:27 -0700

Fix some animate dead issues
Re-add messages and fix a bug where enemies would create hostile
zombies while animate dead was active.

Also add simulac messages and tweak necrotize skeleton messages.

--------------------------------------------------------------------------------
b89b5c0cdd | Nicholas Feinberg | 2022-05-18 07:06:27 -0700

Ban Gozag from animating gold corpses

--------------------------------------------------------------------------------
20812cadf4 | Nicholas Feinberg | 2022-05-18 07:06:27 -0700

Apply refactoring & fixes to all on-death necromancy effects

--------------------------------------------------------------------------------
ef05d3b997 | Nicholas Feinberg | 2022-05-18 07:06:27 -0700

Update Kiku description

--------------------------------------------------------------------------------
5cd8600749 | Nicholas Feinberg | 2022-05-18 07:06:27 -0700

Move Tukima's Dance from Maledictions to Weapons
Purely vibes-based change.

--------------------------------------------------------------------------------
14519f8a5a | Nicholas Feinberg | 2022-05-18 07:06:27 -0700

Remove the Book of Pain
Gutted.

--------------------------------------------------------------------------------
1025688b39 | hellmonk | 2022-05-18 07:06:27 -0700

Rearrange kiku spell gifts

--------------------------------------------------------------------------------
2fcf5398dd | hellmonk | 2022-05-18 07:06:16 -0700

Kiku duplicate undead passive
To replace corpse drop, give Kiku a piety-dependent chance to grant an extra
ally each time one would be generated from a necromancy spell or the reaping
brand. This applies to all of the derived undead spells and infestation, and
simulacrum rolls independently for each simulacrum generated. Starts off at
about 14% chance at 30 piety and rises linearly to 25% at max piety.

--------------------------------------------------------------------------------
cdf6c57b5d | hellmonk | 2022-05-18 07:06:07 -0700

remove kiku corpse drop

--------------------------------------------------------------------------------
8cd6c6eb39 | hellmonk | 2022-05-18 07:06:07 -0700

Remove excruciating wounds
It outlived warp weapon by more than 5 years, somehow.

--------------------------------------------------------------------------------
613369fe0c | hellmonk | 2022-05-18 07:06:04 -0700

feat: Replace pain/aniskele with Necrotize
New level 1 spell, identical damage/range/etc to pain. No self damage. On
damaging a skeleton-having monster, applies a 10 aut status that animates
its skeleton on death with a summon duration of 2.

This should, I think, be limited enough to work without being overpowered
but may need further adjustment. WL check plus low damage should keep it
from being a good use of a turn past the relatively early part of the game.
Necrotize -> make a skeleton -> can't hit the next guy behind it may not
feel very good, so could try some kind of random targeting with less range.

--------------------------------------------------------------------------------
38ecc28c78 | hellmonk | 2022-05-18 07:02:25 -0700

feat: Rework corpse rot
Apply the effect on kill for a duration, scaling with power.

Tentatively moved to level 4 necro/poison/air. Plenty of room to toggle here.

--------------------------------------------------------------------------------
a05d3bcdc0 | hellmonk | 2022-05-18 07:02:25 -0700

feat: rework simulacrum
Simulacrum is now a smite-targeted spell that places an irresistable status.
A monster that dies with the status will spawn a power-dependent number of
simulacra (no longer depends on monster size). I think this is enough of a
difference to distinguish it from dchan and infestation.

Desperately needs a status icon and better lore.

--------------------------------------------------------------------------------
8cec33880d | hellmonk | 2022-05-18 07:02:25 -0700

feat: Rework Animate Dead
Move this spell toward a dchan-like model. For the duration of the effect,
monsters with corpses have power dependent chance to become zombies. Duration
also scales with power, and the zombies crumble when the effect ends.

Numbers very preliminary.

--------------------------------------------------------------------------------
653eee5572 | Nicholas Feinberg | 2022-05-18 06:29:49 -0700

Make new stairs fast after crashing (advil)
If you crash while descending the stairs into a new level, you should
still have a 'fast' descent rather than a 'slow' one.

--------------------------------------------------------------------------------
afbd6decc1 | Nicholas Feinberg | 2022-05-17 22:15:05 -0700

Make it fast to enter new stairs (catern)
Historically, it's been twice as fast to enter new levels as to
re-enter old ones. Fast entries made players die in surprising ways
less often when entering new floors, and slow re-entries provided
valuable discouragement to "stair-dancing". However, they also
produced some big feel-bad moments when players got clobbered while
taking new stairs to a new level - "I thought I was safe the first
time I took the stairs!"

Align things a bit more with player intuitions by making it faster
to take stairs (or trapdoors, or shafts) that the player does not
know the destination of, instead of basing it on whether the level
is 'new'.

--------------------------------------------------------------------------------
ecc9850ee1 | Nicholas Feinberg | 2022-05-17 22:08:15 -0700

Move an orphaned boolean
Looks like this got split up for no good reason at some point.

--------------------------------------------------------------------------------
57f2fb0196 | Nicholas Feinberg | 2022-05-17 21:13:22 -0700

Make D shafts even nicer
5c17abdc72d04c8214fdcadc9cb7d8cf9756b66e used felid revival logic
to place the player after a shaft, but that logic was not very good
at placing the player out of sight of enemies. Write some new logic.
(Perhaps we should change felid revival instead..?)

--------------------------------------------------------------------------------
77450f2105 | Nikolai Lavsky | 2022-05-17 09:45:49 -0400

fix: restore scroll-swinging and scroll-tossing speed (12701)
After a8e9c987b8, scroll-swinging takes 3 auts instead of 15 auts.
Also, the speed of tossing items depends on the wielded weapon and
can be slowed by armour instead of being 15 auts.

This commit restores the old speeds.

--------------------------------------------------------------------------------
c0181ea820 | advil | 2022-05-16 13:21:45 -0400

fix: rewrite webtiles menu pgup/pgdn
This was previously a bit of a mess; the behavior of the two was almost
never symmetric, and there were all sorts of messy interactions with
headers (because they are rendered in a smaller font). This rewrite
doesn't solve everything but it generally has much better behavior on
both of these points.

* refactor so that these are largely using shared code, making symmetry
  much easier
* redo pgup to use set_bottom_visible rather than do an ad-hoc size
  calculation (that was also wrong). This makes it much closer to how
  pgdn is implemented.
* when recalculating hover after paging, ignore headers. This overall
  leads to much more consistent behavior. (Though it still has some
  weird cases..) N.b. possibly this should be ported to local tiles too,
  but in practic local tiles paging (which uses a different approach) is
  less susceptible to these issues. Alternatively, webtiles paging could
  get the local tiles algorithm, which scrolls by pixels?
* heuristics for hover at the end

Also fix a bug for menu.last_visible calculation with size 1 menus.

--------------------------------------------------------------------------------
a44e0411cd | advil | 2022-05-16 13:07:18 -0400

fix: improve local tiles menu pgup/pgdn
This tweaks local tiles paging in menus to be more consistent in various
ways. Main changes:
* use top of menu items, not bottom, to calculate first visible. (I've
  never understood why it was implemented the other way, so hopefully
  this doesn't break some case I haven't thought of..)
* halve the impact of the shade on scrolling margin, tweak the shade's
  alpha value
* ignore initial visible headers in preserving relative hover for
  pgup/pgdn
* preserve a scroll context that is 1.5x the max line height when
  scrolling via pgup/pgdn (previously there was no context except as a
  side effect of the shade). This resolves #2515

This mostly won't affect console, except for the header change (which
should be an improvement).

--------------------------------------------------------------------------------
83a48905f1 | advil | 2022-05-15 16:13:17 -0400

fix: really old save compat for random draconians
debd2d6947 and f64331b8c2b added new RANDOM_ monster types without save
compat for random draconian placement types used in zigs. A save that
crashed while generating a zig level before these commits would
(following these commits) then crash while trying to generate the zig
level, because the random monster types are no longer valid. This commit
is quite approximate, but handles the crash seen in a save here:
https://crawl.develz.org/mantis/view.php?id=6308

(As of this commit, this save no longer crashes.)

--------------------------------------------------------------------------------
12f7694b2d | advil | 2022-05-15 14:51:06 -0400

fix: repair an ancient fixup
In current dcss, NUM_BOOKS drastically exceeds MAX_SUBTYPES. This
doesn't matter, because nothing (after this commit) assumes that books
are relevant to MAX_SUBTYPES, and this is why (I'm assuming) there was
no prior COMPILE_CHECK for this case. However, this one fixup assumed
that there were enough force_autopickup slots that there was a value for
NUM_BOOKS, leading to a crash on saves from this era. It's possible that
MAX_SUBTYPES should be increased to prevent future confusion, but I
instead just added a COMPILE_CHECK to validate the specific assumptions
current force_autopickup needs, and changed the fixup.

Found via the save in: https://crawl.develz.org/mantis/view.php?id=6308
(though this isn't either of the crashes noted there)

--------------------------------------------------------------------------------
5075937ec3 | Kate | 2022-05-14 12:21:03 +0100

Fix compilation

--------------------------------------------------------------------------------
559d8e5bd9 | Nicholas Feinberg | 2022-05-13 22:12:58 -0700

Fix felid zot death message
You didn't enter a new level

--------------------------------------------------------------------------------
fc8527a98e | Nicholas Feinberg | 2022-05-13 22:12:58 -0700

Warn while resting and bezotted

--------------------------------------------------------------------------------
f845f52a54 | Nicholas Feinberg | 2022-05-13 22:12:58 -0700

Make zot death messages more exciting

--------------------------------------------------------------------------------
9596d59a08 | advil | 2022-05-13 16:55:55 -0400

fix: mark closets as notele in ossuary_zaba_flooded
This is a bit of an overkill / quick fix, in that (as far as I can tell)
closets generated by the flooding algorithm here are guaranteed to be
deep water, and so marking all deep water as notele seems to do the
trick. Probably it would be better if this algorithm didn't generate
closets at all, but someone would have to understand it to fix that.
Relevant mainly to species that can inhabit deep water of course.

Recently trapped a player in:
https://cbro.berotato.org/morgue/pigah/morgue-pigah-20220513-145335.txt

--------------------------------------------------------------------------------
d843f3a48c | Nicholas Feinberg | 2022-05-12 13:42:24 -0700

Trigger riposte on blocks
Historically, one of the issues with riposte was that it interacted
poorly with shields. Shield blocks triggered before dodges, so they
made riposte less effective. We didn't want to make riposte trigger
on blocks, for both power level concerns and worries about diluting
the focus of the mechanic (toward "dex-centric", dodgy characters).

But now riposte is unrand only, so we can go wild! This should avoid
feel-bad shield/riposte interactions going forward.

--------------------------------------------------------------------------------
6c28700d94 | Nicholas Feinberg | 2022-05-12 13:30:57 -0700

Increase 'large' species shield aptitudes
Following 7b68f1b707db and ffcb275ae500, 'large' species ended up
substantially worse at using shields than before. Increase their
Shields aptitude by 1 point (14%) to compensate.

This affects trolls, ogres, nagas, palentongatrices, and formicids.

--------------------------------------------------------------------------------
477518b81c | advil | 2022-05-12 14:50:41 -0400

refactor: more options cleanup
Move several things out of reset_options that don't need to be there.

--------------------------------------------------------------------------------
1debfa714c | advil | 2022-05-12 14:21:33 -0400

refactor: standardize parsing of wiz_mode, explore_mode
This moves these options to be `MultipleChoiceGameOption`s for
standardized parsing, default setting, etc. The implementation in builds
that disable these is slightly different than previously. In DGL builds,
these options cannot be set but do produce an error (previously silent)
indicating that they are disabled for the build. CLO behavior is
unchanged. In !WIZARD builds, the option field is now present in the
Options object, but cannot be set via rc or command line so is basically
inert, aside from erroring (previously this case was also silent).

If the error is annoying for some reason it would be possible to restore
the old silent behavior, but I'm not seeing a lot of reasons why this
error would be bad.

--------------------------------------------------------------------------------
6c54550755 | advil | 2022-05-12 14:21:33 -0400

refactor: clean up handling of -wizard and -explore
Rather than having the CLO parsing code set an option value which then
interacts with the defaults in a complicated way, have fixup code check
the options directly after all option handling is done, and promote
WIZ_NEVER to WIZ_NO as needed. This has the benefit of getting a more
sensible interaction of the CLO and rc options (not that I would imagine
this comes up much); but the main goal is just to simplify the defaults
a bit.

--------------------------------------------------------------------------------
8f4046f52e | advil | 2022-05-12 14:21:33 -0400

refactor: standardize a few more enum-like options
Following 6e02c14617caef94b9e

--------------------------------------------------------------------------------
5c17abdc72 | Nicholas Feinberg | 2022-05-12 09:31:23 -0700

Make D shafts nicer (Sergey)
Shafting is exciting when it means having to find a way back up to
safer levels. Shafting into a position when you're surrounded by
later-game enemies, however, tends to feel very unfair - it's often
surviveable, but doesn't feel like a reasonable or just challenge.

Borrow felid revival logic to make D shafts try to send the player
to somewhere outside LOS of monsters. Shafts in other branches remain
unchanged.

This helpfully differentiates shafts further from teleport traps, which
try to send the player *to* monsters, and alarm traps, which send
monsters to players.

--------------------------------------------------------------------------------
6e02c14617 | advil | 2022-05-12 11:26:03 -0400

refactor: standardize custom enum-like options
This converts various options with custom handling to
MultipleChoiceGameOptions (all that I'm seeing that are obvious
candidates for it). This gets: (i) better default handling, (ii) more
standardized error messages, (iii) less code duplication, (iv) for many
of these, more general bool-like parsing (accepting yes/true/1 and
no/false/0 for all bool-like args). The only downside is that for a few
of these, the else case (usually mapping to the default) didn't impose
any constraints, so it may introduce some spurious errors. I've worked
around this by adding some extra mappings for several of these.

Remaining options with custom handling do something on top of just
putting enum-like values into an Options member variable, so would need
a more involved approach.

--------------------------------------------------------------------------------
12f90c9db4 | Nicholas Feinberg | 2022-05-12 07:56:49 -0700

Double demonic touch damage (hellmonk)
Current demonic touch is generally considered a bit weak. Let's try
making it wildly overpowered and then see where we want it to settle.

--------------------------------------------------------------------------------
3b3f824e1b | Nicholas Feinberg | 2022-05-12 07:49:26 -0700

Remove stoker's M_MAINTAIN_RANGE
We must preserve orb spiders' mechanical uniqueness of
'being incredibly annoying'. Wind blast is quite enough on its own :)

Also, increase their creeping infernos' durations so that they can
do something before expiring.

--------------------------------------------------------------------------------
ccd5019c30 | gammafunk | 2022-05-12 09:36:50 -0500

fix: Adjust a mini vault (Lici)
For dispersion_dpeg, this vault dates from when traps could work out of
LOS, hence monsters inside could easily teleport if they woke up before
the player reached the vault. This wasn't a great gimmick overall, and
the vault's contents would be relatively hard to access without blink,
apport, etc. Rework the vault to feature a guaranteed path out of the
center through either nothing or non-permanent teleport traps. Also use
clear walls to prevent the vault from having spoiler/autoexplore issues.
At least if the monsters don't disperse from the vault before the player
arrives, the player will have enough time plan out their actions before
monsters reach the traps.

Also simplify loot placment and reformat DES.

--------------------------------------------------------------------------------
e13fd1374b | gammafunk | 2022-05-11 18:43:41 -0500

fix: Adjustments to an arrival vault (personjerry)
The vault erik_arrival_cave_to_temple had an area in a subvault that
could place monsters and loot fully encased in stone. Have this area
always place a door, introducing some clear stone so it won't be as much
of a spoiler and autoexplore trap.

The other subvault for this map placed monsters immediately behind a
door followed by nasty monsters and altars behind digable walls. Remove
the door to improve spoilers/autoexplore, and put the nasty area behind
a runed door. Tone down the Abyss monster set to not place demonic
crawlers on D:1, instead placing only the 5 class demon that can
generate in the abyss. Fix `no_item_gen` masking and also add
`no_monster_gen` masking to this section.

--------------------------------------------------------------------------------
846e4a0bbc | advil | 2022-05-10 14:45:14 -0400

fix: use rng::UI for help lookup (gammafunk)
Previously, this would use the gameplay UI. I'm not sure this was
particularly exploitable without crashes or the like, but would allow
the player to tweak this rng in a fairly controlled way.

--------------------------------------------------------------------------------
17b9a4b632 | advil | 2022-05-10 12:34:24 -0400

fix: remove debug code

--------------------------------------------------------------------------------
1b0d357a27 | advil | 2022-05-10 12:34:24 -0400

fix: don't let help mark unrands as existing
e9b396fb1906e62 generates the unrand to show its info in help lookup,
and a side effect of the generation call marks the unrand as existing in
you.unique_items. In consequence, a player can force arbitrary unrands
that haven't yet generated to be (potentially) converted to fallback
randarts by looking them up. I'm not sure if this is good for players to
do or not but it's at least a very good bug.

Resolves: https://crawl.develz.org/mantis/view.php?id=12702

--------------------------------------------------------------------------------
12a17119fa | advil | 2022-05-10 12:34:24 -0400

fix: unbreak UNIQ_LOST_IN_ABYSS
A bit too late, since it's now exceptionally rare for this to come in to
play, but oh well. Since 850bfe61e39c27fcd unique item status would get
(incorrectly, I believe) cast down to bool when setting
UNIQ_LOST_IN_ABYSS, and get converted to UNIQ_EXISTS as a consequence.
This tries to clarify the current statue of the API and restores what's
left of this mechanism.

--------------------------------------------------------------------------------
47a863cc1b | Nicholas Feinberg | 2022-05-08 10:32:00 -0700

New wind drake & acid dragon tiles (Sastreii)

--------------------------------------------------------------------------------
297d3b089c | hellmonk | 2022-05-07 21:14:54 -0700

buff kiku torment
Don't require a corpse.

--------------------------------------------------------------------------------
f1fea46640 | hellmonk | 2022-05-07 21:06:13 -0700

feat: allow ranged pain
Expand Kiku's brand capstone to ranged.

--------------------------------------------------------------------------------
665335d0ad | hellmonk | 2022-05-07 21:04:34 -0700

fix: correct kiku rtorm formula
It was possible for partial torment protection to roll 0 damage reduction, but
give the protection message anyway. Always reducing damage by at least 1 if the
kiku passive triggers seems fine.

--------------------------------------------------------------------------------
d8082fcd2d | Kate | 2022-05-07 22:34:36 +0100

Remove some obsolete default runrest_ignores (gammafunk)

--------------------------------------------------------------------------------
23c34f7495 | Kate | 2022-05-07 21:57:18 +0100

Adjust AM species recommendations
Don't recommend Troll (since throwing is no longer a starting option),
replacing them with Gnoll (since AM benefits from training lots of skills).

--------------------------------------------------------------------------------
9e3a32f71c | Nicholas Feinberg | 2022-05-07 09:33:35 -0700

Don't claim to clatter in silence (Monkooky)

--------------------------------------------------------------------------------
3d288355ac | Nicholas Feinberg | 2022-05-07 09:27:25 -0700

Fix artefact MP prop unequip effects

--------------------------------------------------------------------------------
94e2008b86 | Nicholas Feinberg | 2022-05-07 09:20:37 -0700

Remove MP when un-equipping +MP items (ɯ|s|ı|ʍ|o|ǝ|ɯ)
Encourage making choices ("do I want +MP or wizardry?), rather than
swapping off your =mp halfway through every fight.

--------------------------------------------------------------------------------
6960b1960d | Nicholas Feinberg | 2022-05-05 21:43:30 -0700

Tweak Gauntlet description (jumble)
The last line was intended to describe the path through the Gauntlet
arenas, but came across as saying 'once you enter a Gauntlet, the
only way out may be through the arenas & the minotaur'. You can see
the path through the arenas once you're there, so there's no need for
this text.

--------------------------------------------------------------------------------
8b6f518c11 | Nicholas Feinberg | 2022-05-05 09:37:35 -0700

Deduplicate the 'soothsayer' title (Ge0ff)
Replace Ashenzari's Soothsayer title (duplicates a Nem title) with a riff
on Scottish freemasonry, plus shift some stuff around.

--------------------------------------------------------------------------------
7bf7899b20 | Nicholas Feinberg | 2022-05-05 08:46:13 -0700

Reduce some paralysis durations
As part of the ongoing quest to make DCSS a little nicer and reduce
'feel bad moments', reduce the max paralysis duration for the Paralyse
spell and from various god wraths from 7 to 5. Also remove some dead code
and simplify logic for demonic magic.

This does not affect the player paralysing monsters, only the player
being paralysed.

--------------------------------------------------------------------------------
b2816e9c68 | Nicholas Feinberg | 2022-05-05 07:05:13 -0700

Cap Zenata summons (Ge0ff)

--------------------------------------------------------------------------------
f50f0a9fbc | Nicholas Feinberg | 2022-05-04 16:51:57 -0700

Fix the build

--------------------------------------------------------------------------------
4f0bcfc870 | Nicholas Feinberg | 2022-05-04 16:33:06 -0700

Randomize Gastronok's hair
This is a little silly, but so's Gastronok.

Gastronaut remains a player tile exclusive.

--------------------------------------------------------------------------------
c08b2e8bf8 | nicolae-carpathia | 2022-05-03 17:09:34 -0400

Add the most nicolae demonic rune vault possible (#2260)
* Add the most nicolae demonic rune vault possible



I have reached my apotheosis: I have put a rune in a shop.



Since the demonic rune repeats if you don't pick it up, I figured it

would be the best option for a rune shop. (The abyssal rune also

reappears if you don't pick it up, but the theme is easier to fit into

Pandemonium.) If you already have the rune, the shop instead places

another kind of rarity: a figurine of a ziggurat. (The only other

really rare item I could think of was a quad damage, and I've been

explicitly told multiple times that I'm not allowed to use those

outside of Sprint. Tyranny!)



Out of 25 generated shops, the stats on the price of a demonic rune:

Minimum: 3804

Maximum: 8647

Average: 6640.76

St Dev:  1412.1

I didn't check the price stats on the zigfig because the rune is the

real draw here.



The vault also places fat stacks of cash, three other shops, and

demon-summoning monsters from other branches as visitors. Enjoy!



* Make adjustments to the pan bazaar rune vault



Make some changes based on feedback from the other devs:

1) If you already have the demonic rune, instead of selling a

   zigfig, the central shop now just sells randarts. (I had

   underestimated the importance of zigfigs.)

2) The difficulty has been turned up a bit. The area outside

   the central area places more monsters now.

3) A few of the nonruniferous shops have been tweaked.
--------------------------------------------------------------------------------
277feda236 | gammafunk | 2022-05-03 11:26:53 -0500

fix: Remove an unused variable

--------------------------------------------------------------------------------
d82a6b94f7 | gammafunk | 2022-05-03 11:11:21 -0500

fix: Adjustments to an arrival vault
For `spicycebolla_arrival_teleportal_tutorial`, rename this vault to
`spicycebolla_arrival_transporter_tutorial`, since the feature in
question is called a transporter. Add a missing level connector to the
path leading from the hatch. Remove some SUBST and SHUFFLE, relying in
the default undefined glyph mapping to floor as well as the natural
vault rotations that occur for variation. Reglyph and reorder
transporter statements to straightforward entry/dest order, so the
transporter definitions are easier to read.

--------------------------------------------------------------------------------
5102b3be25 | Nicholas Feinberg | 2022-05-02 18:34:57 -0700

Remove two-headed ogres from Lodul's band
It's a bit mean to toss average 5, max 10 2-headed ogres at a D:9
player, much less accompany them with friends. Let's just make em
basic ogres and see how that goes.

--------------------------------------------------------------------------------
84a40017fa | Nicholas Feinberg | 2022-05-02 18:15:34 -0700

Remove scrolls of holy word
Scrolls of holy word are more or less the least interesting type of
scroll currently in the game. They're irrelevant for the vast majority
of the game, and when they are useful later on, it's not in a particularly
interesting way. They don't create exciting situations or memorable
moments, just inventory clutter. Let's cut em.

TSO's holy word remains in place... for now.

--------------------------------------------------------------------------------
fac262f41b | Nicholas Feinberg | 2022-05-02 18:15:34 -0700

New item: scroll of poison
Inspired by the late and largely unlamented 'sea of fire' Ignis ability,
the scroll of poison fills every unoccupied space on the screen with
poison clouds for 10-20 turns. Early on, it can be a way to escape enemies
or to attack them from range with impunity, especially with a source of
rPois or some !curing. Later, it can damage enemies reckless enough to
advance through,  block more dangerous clouds, reveal invisible enemies,
be ignited with Ignite Poison, trick enemies into walking into other clouds
you've placed... and so on. It also can amuse Xom.

It's closest to the condenser vane in use, but unlike the vane, it doesn't
place clouds directly on enemies, place non-poison clouds, scale with Evo, or
recharge.

--------------------------------------------------------------------------------
06c70da812 | advil | 2022-05-02 18:09:41 -0400

fix: remove =g inscription on autopickup ignore
Otherwise autopickup gets stuck. This is similar to code that removes
this inscription when explicitly dropping something.

There's still a weird UI interaction with [a] and items that are being
targeted for autopickup only because of a =g, but one that seems mostly
harmless..

--------------------------------------------------------------------------------
91724d5b39 | Nicholas Feinberg | 2022-05-01 16:16:31 -0700

Standardize screamitis conditions (ardl)
Maybe don't scream at foxfires.

--------------------------------------------------------------------------------
b5314be063 | advil | 2022-05-01 10:42:12 -0400

docs: document stair delays (catern)
Previously, the stair-dancing penalty on re-entering levels was not
documented except insofar as it was possible to notice it from the time
indicator in-game. There's some discussion in the dev channel about
whether this delay "matters", but if it exists, it should be documented
at least minimally. Add a note to the manual and to the hints mode stair
description.

--------------------------------------------------------------------------------
d956c00756 | gammafunk | 2022-04-30 23:50:47 -0500

fix: Tweak monster placement in an early vault (dilly)
For `dilly_guarded_unrand_morg`, the second-highest tier monster glyph
probably shouldn't be an out-of-depth necrophage on D:2-D:3 when we're
also placing either Natasha or phantom, both of which are pretty strong
monsters at that depth. This vault is small and already places plenty of
additional monsters. Have the second-highest tier monster simply be
another derived undead on D:2-D:4, using it for something stronger only
when the vault is placed at higher depth.

--------------------------------------------------------------------------------
adf2fefa87 | Nicholas Feinberg | 2022-04-30 16:40:44 -0700

Fix natural_leader assignments
The natural_leader field claimed to affect monster behavior, leading
monsters to try to 'follow their leader'. This was a lie. The only
effect that the field had was to credit the band leader for kills -
'killed by a 2-headed ogre (led by Lodul)'.

This commit fixes documentation & adjusts many monsters. Notables
include merfolk aquamancers/impalers/javelineers, Lodul, Josephina,
Ilsuiw (+credit) and skeletal warriors, alligators, spriggan defenders
(-credit).

--------------------------------------------------------------------------------
c2b5878c41 | Nicholas Feinberg | 2022-04-30 14:06:13 -0700

Remove item destruction (Tukima^G)
It's an unecessary gotcha/feelbad for Gozagites to permanently destroy weapons
they've animated with Tukima's Dance. It also invites weird tactics - tukima-ing
bad weapons to turn them into gold. Instead, don't.

--------------------------------------------------------------------------------
a876b22402 | advil | 2022-04-30 09:43:04 -0400

fix: tweak rest/wait with inhibited regen
Background terminology: CMD_REST triggers a "rest delay" if there's
hp/mp/ancestor hp/barbs to rest off (details configurable), or a "wait
delay" (which lasts a fixed amount of time) otherwise.

Before this commit:
* if you do CMD_REST with an inhibiting monster in view that can't reach
  you, a wait delay is started and lasts the full wait time (unless a
  reachable monster shows up of course). For example, a monster across
  deep water with no (direct-ish) path to you.
* if an inhibiting monster that can't reach you enters view during
  either a rest or wait delay, it counts as safe and nothing happens, so
  if the monster stays in view, a rest proceeds infinitely (which gets
  detected and triggers a crash). A wait finishes normally.

After this commit:
* CMD_REST doesn't work at all with an inhibiting monster in view
* both rest and wait delays are interrupted by an inhibiting monster,
  even if it can't reach you.

We'll see whether this is annoying for some reason. A more nuanced
behavior would be possible if there are common use-cases for waiting
with an inhibiting monster that can't reach you in view.

(It may still be possible to force an infinite rest by disabling seen
monster interrupts. One complication here is that there is currently no
particularly good way to detect when the -Regen status actually turns
on, because it all happens indirectly. But possibly the game should also
detect this and send a full_hp interrupt in this case.)

--------------------------------------------------------------------------------
d383c6f625 | gammafunk | 2022-04-30 02:56:29 -0500

fix: Don't consider launcher skills for ammo gifts (elliptic)
Before ammo removal in a8e9c987, Okawaru could gift ammo for launchers
based on skill training. The gifting code wasn't updated for ammo
removal, hence Oka is gifting excessive/unwanted throwing gifts for
players with launcher skills trained. Update the relevant code to only
consider throwing skill.

--------------------------------------------------------------------------------
921d912d32 | gammafunk | 2022-04-29 04:01:54 -0500

feat: Some adjustments to unrand vaults
dilly_guarded_unrand_throatcut: Scale the monsters better with depth.
Adjust the skeleton placement so that it's spread within each of the two
rooms, so that both rooms always get skeletons.

dilly_guarded_unrand_morg: Adjust monster set and placement to better
scale with depth. Use spectral things and simulacra and a wight band for
the single "boss" monster on D:5-7, and use either skeletal warrior or
less commonly a death knight for the boss monster on D:8-D:9. Give the
dead trees their usual custom description, and give them special
coloring for console.

dilly_guarded_unrand_devastator: Rework the monster list to better
connect with the themes of Devastator, and improve scaling with depth.
Use ogres as the basic threat, using normal ones for D:4-6 and
two-headed ogres for D:7-12. Introduce one gargoyles for D:7-D:9, adding
more for D:10-12, also adding a boulder beetle for that same range.
Place the unrand centrally in the vault, and make all statues use the
"orb" tile, since that visually best matches the theme.

Closes #2527.

--------------------------------------------------------------------------------
b676c2808e | dilly | 2022-04-29 04:01:28 -0500

Some guarded unrand vaults
For Morg, Devastator, and Throatcut.

Committer's Note: Squashed commits and reworded commit message.

--------------------------------------------------------------------------------
5854e031c7 | advil | 2022-04-28 15:45:11 -0400

fix: ignore some disabled interrupts in rest checks
Before this commit, disabling rest interrupts could result in infinite
rests (and then a crash on demand in code attempting to detect them).
This commit changes things so that if hp or mp interrupts are disabled,
they are not factored into whether a rest can be started -- so if both
are disabled, resting actually becomes impossible (and a wait will be
started instead). That is, a rest that can't be interrupted is never
started. I think this may still have a weird interaction with
ancestor_hp, which I don't quite understand and haven't changed.

--------------------------------------------------------------------------------
2d807254ef | advil | 2022-04-28 15:36:51 -0400

fix: hardcode an activity interrupt for barb removal
No rc options should be able to trigger an infinite rest, but currently
because of the way resting is implemented, if the regular interrupt
conditions are satisfied before the barb duration is cleared, only a
message interrupt (easily disableable) remains to stop the rest, making
it easy to force an infinite rest. In the past this has typically
happened by accident (e.g. as in 8ed1089bbe3), but it could also be used
to force a crash on demand and reset levels.

This commit takes a slightly hacky approach, and sends a full hp
interrupt explicitly when barbs are removed. It doesn't seem worth
adding a specific barb interrupt. But as long as barbs' interaction with
resting is hardcoded (see player::is_sufficiently_rested), something
hardcoded needs to happen on the end of a barb duration.

--------------------------------------------------------------------------------
8ed1089bbe | advil | 2022-04-27 19:24:32 -0400

fix: don't parse bad channels as no channel in runrest rc lines
This was happening because the crawl code returns nil on the error case
for parsing a channel name, which is then passed to crawl.message_filter
as a channel arg. Since this function supports channel as an optional
arg, nil maps to no channel (-1). So the gammafunk rc line `ignore
+= pray:` actually sets a runrest_ignore for basically any message.
After this change, the code errors and prevents the line from being used
at all, in line with what happens in channel parsing in initfile.cc.

Also fixes a buggy ignore involving Jiyva. (Though probably this should
only look for one word channel names?)

Note that this doesn't fix a larger issue leading to this commit, which
is that it is still possible to write runrest_ignore_message lines that
trip the buggy rest ASSERT under the right circumstances.

--------------------------------------------------------------------------------
541a27f54d | Kate | 2022-04-26 21:19:08 +0100

Destroy melded cursed items on Ash abandonment
They were just falling off instead, leaving the player with cursed items in
their inventory.

--------------------------------------------------------------------------------
ccd5be9afd | advil | 2022-04-26 13:57:08 -0400

fix: improve arena cancel/end behavior
* Remove all delays on cancelling, these are just confusing.
* Show popup if any trials have occurred, even if no explicit t:1 flag
  has been set. I guess it may not be super informative with only one
  trial, but there's no other good way to see the log if you want it.
  This includes even the cancellation case, but only if at least one
  complete trial has occurred.
* Add some more messaging around cancelling.

I wonder if there are interesting stats the final popup could show?

While testing this I noticed all sorts of other flaky behavior.
Sampling: Sometimes cancelling still results in a delay with a blank
screen. In console when I hit space during the first trial, there is a
redraw that wipes out half the banner. Sometimes the cursor shows up in
an ugly way (but sometimes it doesn't).

--------------------------------------------------------------------------------
2679155cab | advil | 2022-04-26 13:57:08 -0400

fix: more consistent right click handling in main menu
As noted in #2528, a bunch of main menu popups or submenus weren't
correctly handling right clicks to exit. This should standardize the
behavior. (Caveats: I still don't really understand why right click is
best detected using `CK_MOUSE_CMD`, and I had do something a bit dodgy
to get good handling of this for the seed/arena text entry boxes. Also,
what would be much better is a click outside to close behavior, similar
to how webtiles mouse handling works, which would probably address the
touchscreen issues in that #2528.)

--------------------------------------------------------------------------------
7bc237e783 | Nicholas Feinberg | 2022-04-24 15:23:45 -0700

Nerf Vv melee again
Post-602b31c20e3eccb, Vv became a lil too lethal. Move melee down to
35/35, from 45/45.

--------------------------------------------------------------------------------
7276a9ff7f | advil | 2022-04-24 13:56:04 -0400

refactor: misc opengl comments / refactoring
This is not a very focused commit, just a bunch of tweaking and some
commenting I added while trying to understand parts of this code a
little bit better.

--------------------------------------------------------------------------------
b366d0e2d1 | advil | 2022-04-24 13:42:24 -0400

fix: tile sheet tweaks for better packing
This is basically an emergency patch to get the player.png tile sheet
size below height 2048, which won't work as a long term solution for the
relevant issues but can be back-ported to 0.28 at least. If the tile
sheet size exceeds 2048, on local tiles, it requires a 1024x4096 size
texture atlas. Any modern hardware will support this, but a non-trivial
amount of older or cheaper hardware won't[1]. Before 0.28, we had been
able to keep most tile sheets to 1024x1024 with the exception of
wall.png and player.png, both at 1024x2048. This is still not ideal
(https://crawl.develz.org/mantis/view.php?id=11378), but this is
something like 1% of graphics cards these days, as opposed to 6% for not
supported 1024x4096. Various additions in 0.28 pushed player.png up
across this threshold.

In the long run, it would be much better if tile sheets were
automatically split up and the implementation weren't tied to the size
of the tile sheet. However, the tech cost for doing this is really
painful, as the local tiles buffer implementation is really deeply tied
to the assumption that each texture atlas is stored in a single 2D
texture. So since I was able to tweak things to get player.png down a
bit, I'm going with that for now.

[1] https://feedback.wildfiregames.com/report/opengl/feature/GL_MAX_TEXTURE_SIZE

--------------------------------------------------------------------------------
370832a12f | advil | 2022-04-24 13:23:57 -0400

fix: remove lava orcs
...from the tile sheet.

--------------------------------------------------------------------------------
0917bc69df | advil | 2022-04-22 15:41:51 -0400

fix: add a missing MF_ARROWS_SELECT check (elliptic)
This was correct in webtiles, missing in local menu code. Practical
impact: with `menu_arrow_control=false` this lets space act as page down
(where before it would be a noop under this setting).

--------------------------------------------------------------------------------
cb44be3569 | advil | 2022-04-22 12:56:40 -0400

fix: force build sqlite from contribs on msys2
This addresses the following issue (in a probably non-ideal way): on
current msys2 `pkg-config sqlite3 --cflags-only-I` returns
`-IC:/msys64/mingw64/include`. For reasons that aren't entirely clear to
me (maybe just to suppress warnings) we sed -I into -isystem. This runs
right up against https://github.com/msys2/MINGW-packages/issues/10761,
breaking the build in a fairly basic way. It would probably be somewhat
better to find a way to allow building of sqlite3 via pkg-config, but
for now I'm just going to disable this, which does fix the msys2 build
in my testing.

Resolves #2440.

--------------------------------------------------------------------------------
7790a0e70a | Nicholas Feinberg | 2022-04-21 21:33:47 -0700

Tweak tile saturation (ardl, others)
Make salamanders slightly easier to see in lava, and wind drakes slightly
easier to see in shallow water.

--------------------------------------------------------------------------------
bb8214d451 | Nicholas Feinberg | 2022-04-21 21:33:47 -0700

Buff Hat of the Bear Spirit (ardl)
:berserk:

--------------------------------------------------------------------------------
d15c067e26 | Nicholas Feinberg | 2022-04-21 21:33:47 -0700

Make allies default to attacking
One of the most confusing and annoying things for players about allies
is that, by default, they will not attack enemies. If you or your ally
is hit by an enemy, or if you attack an enemy or order an attack, or if
you tell your allies to wait/guard, they'll attack; otherwise they'll
follow you uselessly. This feels buggy to players - understandably!

Change allies to default to attacking enemies instead. This is a slight
buff to summoning allies out of sight of enemies & a nerf to trying to
sneak around while hanging out with allies, but hopefully is a net
improvement to the player experience.

--------------------------------------------------------------------------------
46f7bbceaa | Nicholas Feinberg | 2022-04-21 21:33:47 -0700

Move D enemies that encourage retreating later (dilly)
Certain monsters are designed to have 'strong phases' and 'weak phases'.
Sky Beasts go invisible and visible; Death Knights turn their pain mirror
on and off. It's often wise for players to retreat while those monsters
are in their 'strong' state & to fight again later.

With the addition of 'attacks of opportunity', this is sometimes more
dangerous. To compensate, move death knights & sky beasts slightly deeper.

--------------------------------------------------------------------------------
a87a4c8c21 | Nicholas Feinberg | 2022-04-21 21:33:47 -0700

Don't rate Damnation's damage (particleface)
It's off the charts!

--------------------------------------------------------------------------------
1716ac0dbf | Nicholas Feinberg | 2022-04-21 21:33:47 -0700

Simplify damage rating display (ebering, elliptic)
The "damage per time" display was more misleading than helpful, since
it didn't account for enemy AC and also rounded delay aggressively. The
latter is fixable, the former isn't. Since delay is displayed on the line
above, let players do the math & simplify the damage rating down to a
single line.

--------------------------------------------------------------------------------
e2f44be95a | gammafunk | 2022-04-20 13:15:54 -0500

feat: Rebalance the slime special room
Remove the dependency on absdepth, instead using simple monster lists
conditioned by branch. We don't need weight scaling by depth for a vault
placing only on Lair:$ and endgame branches. Remove the endoplasms
completely, since they're total chaff, using more jellies instead in
Lair and more slime creatures in Slime and Depths. Likewise don't use
jellies in Slime and Depths.

Nerf the amount of rockslimes, treating them on par with acid blobs as
the top tier threats, favoring quicksilver oozes and to a lesser extent
azure jellies. This tones down the vault in Lair:6 a good deal, but
you're still getting two top tier slimes on-average, decent numbers of
mid-tier slimes, and the removal of endoplasms. It will remain a quite
nasty (and rare) Lair:6 vault that will cause the player to abandon the
level for a while in many cases. The vault should also now pose a better
threat in Slime and Depths with all the chaff removed; in these places
the top tier slime monsters get higher weighting. We also introduce
golden eyes and shining eyes in these branches.

--------------------------------------------------------------------------------
3af9d588a4 | gammafunk | 2022-04-20 13:15:29 -0500

feat: Simplify chances for special rooms
For the `special_room` vault, currently there's a 0.5% chance to place
this vault in Slime, a 1% chance to place this in Orc, Spider, Crypt,
and Pan, and a 3% chance to place it elsewhere. There's no reason to
have different yet extremely similar chances for this vault among the
non-extended branches. This commit uses a 2% chance for non-extended
branches and 1% for the Hells and Pan. This will reduce the frequency of
special rooms somewhat, but the vault does have `allow_dup` and hence
still has a decent chance of being seen one or more times for each
complete game.

The 1% chance for extended branches isn't quite justified either.
Arguably it might have some impact on balance for the Hells. For Pan we
have potentially infinite levels, so it may be good to reduce its
frequency. I'll keep it at 1% in these branches and leave any adjustment
to people wanting to tweak extended.

--------------------------------------------------------------------------------
5774675eae | gammafunk | 2022-04-20 12:58:52 -0500

fix: Clean up DES syntax

--------------------------------------------------------------------------------
24ffce5b50 | advil | 2022-04-19 10:25:44 -0400

docs: update map mode help with ctrl-c change
Since 4d47a7520311 this no longer forgets item info.

--------------------------------------------------------------------------------
6efceafd81 | Neil Moore | 2022-04-19 01:00:30 -0400

Simplify calls to, and defaults for, clear_map().
Make the clear_items argument default to false, since that is usually
(in fact, now, always) how we call it.

No one currently calls clear_map() with clear_items == true or
clear_mons == false, so this could be simplified even further, but I
didn't want to take that step quite yet.  Specifically, I didn't want
to rename the function to "clear_map_monsters()" or such, since it does
also clear clouds.

--------------------------------------------------------------------------------
4d47a75203 | Neil Moore | 2022-04-19 00:55:45 -0400

Clear monsters but not items, on Ctrl-C and X Ctrl-C.
The idea being that, nowadays (unlike when these commands were
introduced), most items cannot be moved or destroyed once they have
been seen, so there is very rarely a reason to want to forget them.

Arguably these commands should also forget corpses, since they do decay.
But I did not want to add that extra complexity to clear_map's
interface.

--------------------------------------------------------------------------------
1ff7896281 | Nicholas Feinberg | 2022-04-16 20:22:31 -0700

Simplify Lugonu's Bend Space
Remove the damage component (tiny and irrelevant) and the chance of
blinking monsters away from the origin (actively counterproductive).
Make it much more likely to blink monsters away from the destination.
Remove invocations scaling - Lucy's other abilities offer great
incentive for invo training already, so there's no particular need to
complicate this one.

--------------------------------------------------------------------------------
68df138881 | Nicholas Feinberg | 2022-04-15 09:20:30 -0700

Make hell knights into priests
Make them evil without making TSO celebrate the deaths of 6/7 orcs.

--------------------------------------------------------------------------------
af92d4a5d6 | Nicholas Feinberg | 2022-04-15 09:03:32 -0700

Make Hell Knights evil again (catern)
Lost this when they lost Pain.

Slightly hacky.

--------------------------------------------------------------------------------
76187f39e0 | Nicholas Feinberg | 2022-04-15 08:59:26 -0700

Cut naga warrior hp by 20%
They're by far the top killer in Snake since their buff, and players note that
their tankiness to killpower ratio is a bit high. Let's dial them back some.

--------------------------------------------------------------------------------
b41bcbb86e | Nicholas Feinberg | 2022-04-12 15:46:29 -0700

No Usk piety for non-hostiles (Ge0ff)
"how to tele-frag Crazy Yiuf with 0 Invo:
1. summon 100 spammals and slowly build up piety..."

--------------------------------------------------------------------------------
b4c28e87c6 | Nicholas Feinberg | 2022-04-12 09:05:37 -0700

Fix/simplify damage rating + ench/slay
Base damage was incorrectly treated as about twice as good as it is on average.
Damage rates are now about 2x mean damage.

--------------------------------------------------------------------------------
5e1b129e87 | Nicholas Feinberg | 2022-04-12 08:47:45 -0700

Fix Yara's + Petrify (various)
Dispelling the 'petrifying' status should not cause 'petrified'.

--------------------------------------------------------------------------------
4a08ba55a3 | Nicholas Feinberg | 2022-04-12 08:31:40 -0700

Remove brand damage rating
Think it was more misleading than helpful.

--------------------------------------------------------------------------------
52719c12eb | Nicholas Feinberg | 2022-04-11 21:10:59 -0700

Display a 'damage rating' in weapon descriptions
I don't like some parts of this (the brand rating should probably
live with the brand description) but it's better than nothing, maybe.
Let's see!

--------------------------------------------------------------------------------
0b05bf5e21 | Nicholas Feinberg | 2022-04-11 21:07:53 -0700

Describe monster unblindability (Lici)

--------------------------------------------------------------------------------
65376010d4 | Nicholas Feinberg | 2022-04-11 20:59:33 -0700

Fix penetrating launchers + throwing (particleface)
Thrown items would inherit penetration from a wielded weapon (eg, the
Storm Bow), allowing them to pass through enemies and shields. Fix this.

--------------------------------------------------------------------------------
bb24c3b5da | Nicholas Feinberg | 2022-04-11 20:53:47 -0700

Simplify some throwing checks

--------------------------------------------------------------------------------
28c3e03cda | Nicholas Feinberg | 2022-04-11 20:47:21 -0700

Give Usk piety for summons and such
Hopefully this isn't abuseable! It seems nice, though.

--------------------------------------------------------------------------------
72f4aa029e | Nicholas Feinberg | 2022-04-11 20:27:18 -0700

Simplify

--------------------------------------------------------------------------------
7bc3a90fb7 | Nicholas Feinberg | 2022-04-11 20:00:58 -0700

Don't recommend OgHu/TrHu (ardl)
Since they can't throw the game anymore.

--------------------------------------------------------------------------------
050149af67 | Kate | 2022-04-09 18:03:57 +0100

Fix Delatra's Gloves not healing on lignification quaff-id (#2521)
Adds a check for whether the gloves are worn before triggering the potion
effect, so that as long as they're unmelded when the potion is quaffed the
player will still be healed on quaff-id. Closes #2521.

--------------------------------------------------------------------------------
68df515428 | Neil Moore | 2022-04-04 18:38:01 -0400

Fix grammar for artefact bardings with Regen (jillest)
Fixes #2514.

--------------------------------------------------------------------------------
f1c400731a | Aliscans | 2022-04-02 14:55:46 +0100

FIX Remove an erronous "the" from a message.
The player can see invisible monsters which are bribed, charmed or hexed. When 
the status is lost, the monster may suddenly vanish.

This changes the message this generates from "You can no longer detect the 
Sigmund." to "You can no longer detect Sigmund.". The "the" is retained for 
non-unique monsters.

--------------------------------------------------------------------------------
9f8742066b | Nicholas Feinberg | 2022-04-01 20:59:30 -0700

End the day
Fly away, little mayflies. Come again another day.

--------------------------------------------------------------------------------
ad05b8d819 | hellmonk | 2022-04-01 00:19:50 -0400

mayflytaurs

--------------------------------------------------------------------------------
b333ed421b | hellmonk | 2022-03-31 22:39:26 -0400

delete a buggy vault

--------------------------------------------------------------------------------
d16b76e6b1 | Kate | 2022-03-29 20:54:26 +0100

Stop constriction on transforming into an immune form

--------------------------------------------------------------------------------
2ae49fcbb9 | Nicholas Feinberg | 2022-03-29 07:28:01 -0700

Replace Oka's Warrior title (Ge0ff)
Duplicates a Fighting title.

--------------------------------------------------------------------------------
af6dd05e2f | advil | 2022-03-28 20:38:42 -0400

fix: add some 0 checks for %s in quiver code
mod 0 can result in a divide by 0 error (really, it's undefined per the
spec).

--------------------------------------------------------------------------------
b00dd7cb4b | advil | 2022-03-28 17:37:51 -0400

fix: clarify the conditions of a movement message
As illustrated in a discussion on discord this morning, this message
didn't succeed in explaining what the exact problem is. Make it more
specific.

--------------------------------------------------------------------------------
f2db06da9e | Nicholas Feinberg | 2022-03-28 10:32:14 -0700

Allow creeping frost animation to be disabled (Lici)

--------------------------------------------------------------------------------
43bc051769 | Nicholas Feinberg | 2022-03-28 08:04:08 -0700

Correct Weak status description (dilly)

--------------------------------------------------------------------------------
cbd9eb2193 | Nicholas Feinberg | 2022-03-27 14:56:41 -0700

Prevent 'failure to reach' for protected allies
If you can freely shoot through Hep ancestors, Fedhas plants, etc,
you should probably be able to reach through them as well.

--------------------------------------------------------------------------------
d3370f49d2 | Nicholas Feinberg | 2022-03-27 14:56:41 -0700

Narrow Amaemon's range some
Cut D:12, Orc:1, and Lair:4 from the spawn range. Poor fella just
wasn't getting any kills there.

--------------------------------------------------------------------------------
11dafa56b2 | Nicholas Feinberg | 2022-03-27 14:56:41 -0700

Make Parghit's will indomitable
100 -> 140. Make him a lil trickier to hex.

--------------------------------------------------------------------------------
4e025c60ea | Nikolai Lavsky | 2022-03-27 09:58:00 -0700

fix: display Irradiate damage in monster descriptions

--------------------------------------------------------------------------------
ecccbbdb84 | Nicholas Feinberg | 2022-03-26 14:23:15 -0700

Nerf mummies (increase consumable generation)
To further compensate for attacks of opportunity & to adjust difficulty
downward, generate about 18% more potions and about 12% more scrolls.

Might be good to do a second pass at this point and shave down weights
of 'strategic' scrolls (?ew, ?ea, ?bw, ?amnesia, ?id, ?acq) somewhat.

--------------------------------------------------------------------------------
7fa12cc219 | Nicholas Feinberg | 2022-03-26 14:06:36 -0700

Actually simplify Majin-Bo damage
??doh

--------------------------------------------------------------------------------
093c7b3b58 | Nicholas Feinberg | 2022-03-26 13:42:19 -0700

Simplify Majin-Bo vampirism
Majin-Bo has a great deal of variance, both strategic (not affecting
demons/undead, forbidden by good gods) and tactical (heals for 1d<dam>
at a 60% chance). Simplify by upgrading the healing to a 100% chance.

--------------------------------------------------------------------------------
b34f9e133a | sdynet | 2022-03-25 09:45:25 -0700

Update Korean translation (gods.txt)
Closes #2497.

--------------------------------------------------------------------------------
e4682ce883 | Kate | 2022-03-24 19:01:32 +0000

Fix a yellow draconian acid splash check
Don't splash onto battlespheres/spectral weapons/god-protected friendlies.

--------------------------------------------------------------------------------
543d47181c | Kate | 2022-03-24 19:01:32 +0000

Reword some attack prompts

--------------------------------------------------------------------------------
defda700fc | Kate | 2022-03-24 19:00:30 +0000

Don't consider avatars valid targets for Cleansing Flame (surr)
Prevents battlespheres/spectral weapons from giving prompts when activating
Cleansing Flame, since the effect itself already ignores them.

--------------------------------------------------------------------------------
efd9c33606 | Kate | 2022-03-23 15:48:29 +0000

Prevent piety troves from generating under Yredelemnul (hellmonk)

--------------------------------------------------------------------------------
4c793a2ed2 | Nicholas Feinberg | 2022-03-23 07:39:03 -0700

Disable AF_BLINK for AOOPs
Crashes if the blink frog blinks into the player.

--------------------------------------------------------------------------------
3c90f9a769 | Nicholas Feinberg | 2022-03-21 17:24:01 -0700

Increase Hexer attack speed
Compensating for the loss when monster attack went to speed 1.

--------------------------------------------------------------------------------
7659ce593d | Kate | 2022-03-19 11:41:59 +0000

Remove Haste from spell libraries on ancient save transfers
It crashed when cast, since it's now a monster-only spell. Also clean up
some duplicate checks for other spells that have been entirely removed.

--------------------------------------------------------------------------------
da187f2e07 | advil | 2022-03-18 15:28:15 -0400

docs: fix/clarify runrest prepend vs append
The docs are overall not very consistent, but for options where it
matters, there seems to be a preference to teach ^= as the default. I've
switched runrest_stop_message and runrest_ignore_message to this, since
this is what you need to do to override defaults (in fact there was a
non-working snippet here following 80dc71225541). I've also tried to
clarify that ^= matters for the interaction of the two.

--------------------------------------------------------------------------------
497ad06e87 | Nicholas Feinberg | 2022-03-18 08:26:51 -0700

Remove self destructs of opportunity
Fix a crash with creeping infernos and generally reduce surprising
weirdness.

--------------------------------------------------------------------------------
83ea962da3 | Kate | 2022-03-17 17:11:21 +0000

Mark necromancy spellbooks as evil (#2491)
Closes #2491.

--------------------------------------------------------------------------------
48ae54a172 | Kate | 2022-03-17 17:11:21 +0000

Fix messaging for -Potion/Scroll durations in Hell

--------------------------------------------------------------------------------
fed8413159 | Kate | 2022-03-17 17:11:21 +0000

Adjust some mutation descriptions
Clarify that demonic touch grants a new aux attack instead of changing the
standard off-hand punch, and remove some redundant details for claws.

--------------------------------------------------------------------------------
a4d04cda05 | Nikolai Lavsky | 2022-03-17 17:01:25 +0000

fix: add a space for fellow slimes
Fixes a missing space in the monster list.

--------------------------------------------------------------------------------
9d40539af8 | Nicholas Feinberg | 2022-03-17 08:59:58 -0700

Improve creeping frost animation
Display it as appearing on all cells that are adjacent to walls and
don't contain visible allies of the caster. This should hopefully
clarify how it works.

--------------------------------------------------------------------------------
2178c42546 | Nicholas Feinberg | 2022-03-16 12:26:16 -0700

Don't tell ball lightning to rot
Fix a bug in which taking stairs while adjacent to ball lightning
would claim the ball lightning 'stayed behind to rot'.

--------------------------------------------------------------------------------
92b06acc75 | Nicholas Feinberg | 2022-03-16 12:19:52 -0700

Mark Anguish as dispellable (Dinky)
It is magical, after all.

--------------------------------------------------------------------------------
2a1340cf14 | Nicholas Feinberg | 2022-03-16 12:18:11 -0700

Bump up shadow dragon scales AC
From 10 to 11. Puts em a bit higher than storm dragon scales, but
with an arguably worse innate ego, and still a point below gold dragons.

--------------------------------------------------------------------------------
41199d4a87 | Alex Jurkiewicz | 2022-03-15 11:12:25 +0200

Add MUT_DEVOUR_ON_KILL description

--------------------------------------------------------------------------------
0902485e31 | Alex Jurkiewicz | 2022-03-15 11:12:25 +0200

Convert Ghoul devour-on-kill to a mutation
This behaviour was previously hard-coded.

I considered an alternate implementation of creating US_HUNGRY_UNDEAD.
This ended up creating a lot more code and making undead state checks
more complex, so I discarded it.

--------------------------------------------------------------------------------
f9362112df | advil | 2022-03-13 17:01:39 -0400

docs: improve keymap documentation in options guide
The main point of this change was to add K4, which was missing entirely,
but I cleaned up and clarified a bunch of other things here.

--------------------------------------------------------------------------------
a02f740833 | Perry Fraser | 2022-03-12 22:16:33 +0000

fix: remove surprious space in regen description

--------------------------------------------------------------------------------
1fd2556b9a | Nicholas Feinberg | 2022-03-12 08:44:37 -0800

Prevent opportunity attacks from slower monsters
When moving away from monsters that move more slowly than the player,
don't allow those monsters a chance at launching an opportunity attack.
Such attacks are unintuitive and don't serve any design purpose.

This affects the worm vs human and most monsters vs felid/spriggan
dynamic.

--------------------------------------------------------------------------------
0ef121a99b | Kate | 2022-03-12 15:48:41 +0000

Add a (redundant?) orb check
Preventing pickup AI from considering orbs for two-handing/dual-wielding
monsters.

--------------------------------------------------------------------------------
d808a8bb3c | Kate | 2022-03-12 15:45:21 +0000

Allow gifting orbs to Beogh orcs
Giving your allies orbs of mayhem is now possible, if potentially unwise!

--------------------------------------------------------------------------------
7c249980d5 | Kate | 2022-03-12 15:40:29 +0000

Update a hint
To reflect the fact that orbs also take up the offhand slot, for ranged
weapon users.

--------------------------------------------------------------------------------
1c2307e1b3 | Nicholas Feinberg | 2022-03-12 07:05:33 -0800

More early-game monster nerfs
In the interest of adjusting difficulty, tune down base damage and/or
HP slightly on adders, phantoms, scorpions, and Sigmund.

--------------------------------------------------------------------------------
1251d06ae9 | Kate | 2022-03-12 14:51:58 +0000

Don't let monsters wield two weapons and a shield
No more 3-handed blademasters.

--------------------------------------------------------------------------------
e21a839c99 | Nicholas Feinberg | 2022-03-12 06:43:05 -0800

Make hunters more dextrous
Since that's quite important for them now.

--------------------------------------------------------------------------------
389c0b56f3 | Edgar A. Bering IV | 2022-03-08 17:28:25 +0200

docs: fix changelog (gammafunk)

--------------------------------------------------------------------------------
17cd264cf9 | Edgar A. Bering IV | 2022-03-08 17:23:29 +0200

docs: update changelog

--------------------------------------------------------------------------------
8310661d2b | Edgar A. Bering IV | 2022-03-08 16:10:51 +0200

fix: don't give frightened monsters opportunity attacks (iamserjio)

--------------------------------------------------------------------------------
84ccd498e3 | Edgar A. Bering IV | 2022-03-08 08:33:34 +0200

wip changelog

--------------------------------------------------------------------------------
d4eb659eea | advil | 2022-03-07 17:16:21 -0500

fix: allow anon spectating
I guess everyone assumed that this was disabled because of account hold
stuff and that's why no one told me this was broken, but it was just
broken by mistake.

--------------------------------------------------------------------------------
1586fc07ea | Kate | 2022-03-07 02:03:29 +0000

Adjust an ice cave entrance
ice_cave_statue_garden_transporter could place fast simulacra so close to
the player that they couldn't safely leave if they decided to immediately
abandon the vault after entry. Put the exit adjacent to the entrance, and
move some of the monsters further away. Nagas and Chei worshippers are
still out of luck against harpy simulacra, but at least can't get
constricted by anaconda simulacra when trying to leave. Nagas of Chei
simply suffer (and maybe this and similar portal vaults should be reworked
further to make leaving safely always be possible).

--------------------------------------------------------------------------------
2e7ade144c | hellmonk | 2022-03-06 20:15:57 -0500

brutally nerf baileys
Baileys had a very high kill rate and closing attacks probably make it worse.

--------------------------------------------------------------------------------
5627465c62 | Kate | 2022-03-06 17:27:00 +0000

Fix Ignite Poison's targeter leaking information
It displayed the locations of invisible poisoned monsters - don't count them
during the spell tracer.

--------------------------------------------------------------------------------
e8b325be47 | Nicholas Feinberg | 2022-03-06 07:05:14 -0800

New Vv and Zenata tiles (Sastreii)
Oooooh

--------------------------------------------------------------------------------
f56f883ddd | Nicholas Feinberg | 2022-03-05 11:16:01 -0800

GOOE adjustments
- Remove rPois (why is it there? Predates Stone Soup)
- Remove from Depths
- Roughly double Vaults weight, replacing wizards

Try to have em place somewhere they have a chance of working.

--------------------------------------------------------------------------------
b1efcce96a | Nicholas Feinberg | 2022-03-05 11:05:07 -0800

Uncomment a very important line (Yermak)
Oops!

--------------------------------------------------------------------------------
d32acbc352 | Nicholas Feinberg | 2022-03-05 10:57:33 -0800

Show LRD damage in monster desc (ardl)

--------------------------------------------------------------------------------
404d694432 | Nicholas Feinberg | 2022-03-05 10:49:50 -0800

Unrand tweaks
- Glaive of the Guard: ench +8 -> +5. Ludicrously strong.
- Damnation: 3d14 -> 2d14. Compensation for ammo removal.
  (Funny alternative: drain on fire...? Probably better not.)
- Gyre & Gimble: ench +7 -> +12. Make it more competitive with
  non-unrand short blades.

--------------------------------------------------------------------------------
d12d1d25ed | Nicholas Feinberg | 2022-03-05 10:46:01 -0800

Swap radroaches and meliai in spider
Latter seem more threatening in practice.

--------------------------------------------------------------------------------
f2a2391c1e | Nicholas Feinberg | 2022-03-05 10:44:31 -0800

Reduce meliai Spider gen
Too rude.

--------------------------------------------------------------------------------
7e222a1f62 | Nicholas Feinberg | 2022-03-05 10:39:53 -0800

Reduce merfolk net gen (meowsim)
To reduce "chain netting" of the player & general overabundance of
nets in Shoals, drop from a 1/4 to 1/8 chance of any given merfolk
spawning in with a throwing net. Average drops from 8.4 to 4.5 nets
per Shoals.

--------------------------------------------------------------------------------
d469af4107 | Nicholas Feinberg | 2022-03-05 10:06:57 -0800

Implement closing attacks
An experimental way to discourage long-distance luring or so-called
'pillar dancing', which tends to be rather repetitive and not very
fun. Gives monsters a 1/3 chance to get a free attack when the player
moves away from them. This only costs energy for enemies that attack
slowly, like ogres and juggernauts. Wu Jian martial attacks & rampaging
give immunity, and monsters that don't move fast enough to follow you
can't attack.

This should have a minimal impact on most normal fights, and even allow
repositioning across a reasonable distance with adjacent enemies.

--------------------------------------------------------------------------------
7d8c13d22b | Nicholas Feinberg | 2022-03-05 10:06:57 -0800

Revert "Re-randomize energy temporarily"
Obsoleted by closing attacks.

This reverts commit 333b8329f1cbc402d63d599db9b7d6ba7397d29b.

--------------------------------------------------------------------------------
a581b86abd | Nicholas Feinberg | 2022-03-05 10:06:57 -0800

Don't recommend pillar dancing
Fie!

--------------------------------------------------------------------------------
eff9672185 | Nicholas Feinberg | 2022-03-05 10:06:57 -0800

Improve characters' starting kits (Hellmonk)
One of the most interesting and exciting decisions in Dungeon Crawl
is when and where to use your consumable items. In the very early
game, characters may not yet have any consumables, which diminishes
the tactical aspect of the game.

So, let's try to give most characters some options which, if used
wisely, can help them with a tough situation.

- All 'mages' ('pure casters') start with a potion of magic.
- Gladiators get a throwing weapon; javelin, large rock or boomerangs.
- Monks get a potion of ambrosia. (See, it's divine.)
- Hunters get a scroll of immo.
- Brigands get an additional poisoned & curare dart.
- Artificers trade their xom piece for nine charges of iceblast.
- Wanderers get an additional random potion or scroll.
- Delvers get nothing, for now, since I'm already pretty happy with
  how they play. They're a challenge anyway, really. :)
- Berserkers and Cinder Acolytes likewise get nothing. They already
  have perfectly good early game buttons.
- Abyssal Knights start at 60 piety (just over 2*) instead of 38 (just
  over 1*). This should allow them to use Bend Space if needed.
  (I think they're still quite weak.)
- Chaos Knights get Artificer's xom chesspiece.
- Transmuters get a potion of lignification, which should work well
  with their unarmed combat focus. It's also very thematic.
- Warpers get more boomerangs of dispersal.
- Arkane Markspersons get a scroll of vulnerability.
- Enchanters get another potion of invisibility.
- Fighters are unchanged.

This should also be a nice compensation for various recent changes that
increased early game difficulty.

--------------------------------------------------------------------------------
6e15ea0a97 | Nicholas Feinberg | 2022-03-05 10:06:57 -0800

Weaken early spawns somewhat
Take top killers and make em a bit less common. (Ogres, centaurs,
water moccassins, 2hos, and hydras.)

Also move Harold a bit deeper. Lad is a terror.

--------------------------------------------------------------------------------
614883fcd9 | Nicholas Feinberg | 2022-03-05 10:06:57 -0800

Make ogres attack more slowly
To make their gimmick more noticeable and easier to reason about,
make em swing at 1.5 aut/per instead of 1.3. Buff damage slightly,
but not enough to fully compensate (ignoring AC). Change 2HOs,
ogre mages, Erolcha, thunderhulks and Lodul to match.

Considered including ettins too, but it might be a bit much...

--------------------------------------------------------------------------------
68b12284db | Edgar A. Bering IV | 2022-03-05 15:37:22 +0200

docs: update CREDITS.txt

--------------------------------------------------------------------------------
24134d049f | Perry Fraser | 2022-03-05 15:22:12 +0200

fix: make color tags render in MessageRegion
[ Closes #2302. ]

--------------------------------------------------------------------------------
80730f7218 | Kate | 2022-03-04 22:09:13 +0000

Improve wording in ranged weapon descriptions

--------------------------------------------------------------------------------
811e9ec5e5 | Kate | 2022-03-04 22:09:13 +0000

Reduce the amount of wand charges in a shop
The gimmick of the vault is overcharged wands, but guaranteeing the maximum
number of charges is already a significant amount compared to normal
generation, so giving a 66% bonus on top of that was excessive. Reduce it
to 25%, and slightly reduce the prices.

--------------------------------------------------------------------------------
cad78a6a97 | Aliscans | 2022-03-04 22:32:03 +0200

feat: don't highlight Vehumet offers if you also have book learning.
This changes the meaning of "blue spell at the top of the list" from "spell 
Vehumet is offering you" to "spell which is only available because Vehumet is 
offering it to you". Vehumet can withdraw the offer, but you cannot lose the 
book.



This change doesn't affect the religion screen.



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
3d610745aa | Nicholas Feinberg | 2022-03-04 11:33:08 -0800

Add mon-death asserts
Try to hunt down an odd rare crash.

--------------------------------------------------------------------------------
0cb962c1f0 | Antanishin, Ernest | 2022-03-04 19:58:56 +0200

feat: add tile_sidebar_pixels option
The option allows one to resize inventory and spells icons in local tiles.
It works in the same way as tile_cell_pixels for the dungeon tiles.

[ Committer's note: Closes #2147, renamed option. ]

--------------------------------------------------------------------------------
e5966c3f1e | Nicholas Feinberg | 2022-03-04 06:57:57 -0800

Tweak Sheza's Dance cast messages (SpicyCebolla)

--------------------------------------------------------------------------------
1a685ed5de | Edgar A. Bering IV | 2022-03-04 16:56:40 +0200

feat: distinguish drain levels in monster list (Aliscans)
Closes #2411

--------------------------------------------------------------------------------
85c4641d08 | Aliscans | 2022-03-04 16:08:38 +0200

feat: add annotations for distracted monsters
Most of the reasons for a monster_info having MB_DISTRACTED give a description 
when the monster is selected on the level map, but not all.



This creates two flags to fill in the gap.

Monsters which you can see, but which can't see you because of invisibility, 
are described as "can't see you" in the examine surroundings command and 
monster list summary.

Monsters which are distracted (possibly because they are attacking a summoned 
monster rather than you) ar described as "not watching you" or as "distracted".



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
602b31c20e | Nicholas Feinberg | 2022-03-03 20:06:52 -0800

Revise new uniques
I'm quite happy with how Amaemon is doing post-nerf, but the others
don't seem to be all there yet. Let's adjust.

- Lodul: +8 avg mhp (62 -> 70)
- Parghit: +large rocks, +damage (50/40/40; was 40/35/35).
- Josephina: +HD (15 -> 18), +damage (10 -> 27), +HP (130 -> 150),
  +cast frequency (Seracfall 24 -> 36), +flash freeze
- Vv: +damage (27/27 -> 45/45), +HD (21 -> 23), +HP (210 -> 270),
  +Will (120 -> 140), +25% cast frequency
- Zenata: -HD (18 -> 15), -HP (240 -> 180), move from Depths/Zot to
  Elf/Vaults/Crypt, haste dancing weapons on cast.

Also fix the Sheza's Dance casting message.

--------------------------------------------------------------------------------
4b928d7a4c | Nicholas Feinberg | 2022-03-03 19:49:42 -0800

New unique tiles (Sastreii)
Amaemon, Josephina, and Parghit.

Also properly display weapons for the former two - I initially
forgot to have them show held weapons.

--------------------------------------------------------------------------------
20d21d4356 | Edgar A. Bering IV | 2022-03-03 23:35:32 +0200

lint: checkwhite

--------------------------------------------------------------------------------
645c86315e | Edgar A. Bering IV | 2022-03-03 23:15:23 +0200

vaults: fix a typo

--------------------------------------------------------------------------------
dd60b7245b | RojjaCebolla | 2022-03-03 23:01:03 +0200

vaults: two arrivals by spicyCebolla
spicycebolla_arrival_teleporter_tutorial

Teleporters generally only show up in dangerous scenarios; this puts
a pair of teleporters into an arrival vault for people to play with.
These can also be used to juke gnolls and panlords, in times of need.

(Inspired by the "throwing tutorial" key holder vault in Brogue, which
shows up early and often in dungeon generation, helpiing the player
learn that items can be thrown to trigger traps from a distance.)

spicycebolla_arrival_xxxplode

Minmay style.

[ Committer's note: cleaned up some des, moved organization to small,
  fixed a teleport closet. Closes #2458 ]

--------------------------------------------------------------------------------
0f8c3457c7 | DreamDust | 2022-03-03 22:28:46 +0200

vaults: minivaults by DreamDust
dreamdust_wishing_well

Mini vault featuring a wishing well with some gold sprinkled around it.
There's a small chance of a scroll of acquirement generating.  Partially
inspired by Nethack, + some nostalgia for when we used to be able to
quaff from magic fountains in Crawl.

[ Committer's note: simplified the terrain, the effect will be a bit
  more subtle but that's fine. ]

dreamdust_mushroom_princess

Just a simple vault featuring a princess statue surrounded by mushrooms.

dreamdust_princess_bridge

A bridge over a pond and a little courtyard area off to the side.

dreamdust_princess_corridor

A decorative corridor with three variations:  summer, fall, and abyssal.

[ Committer's note: also simplify some feature renames in a previous
  DreamDust vault, don't want to go overboard with these. All vaults edited
  based on review by hellmonk. Closes #2135 ]

--------------------------------------------------------------------------------
12ad11c1a6 | DreamDust | 2022-03-03 22:28:46 +0200

vaults: a DreamDust overflow temple
A fancy temple dedicated to the three good gods.

[ Committer's note: converted to an overflow temple ]

--------------------------------------------------------------------------------
e8bc28a0cf | DreamDust | 2022-03-03 22:27:54 +0200

vaults: float vaults by DreamDust
dreamdust_dug_too_deep

The dwarves dug a little too deep and unearthed... a Balrug! Even a
mighty dwarf hero (with a potentially good weapon to loot!) fell in
battle to the demon. RIP. Maybe this is why we don't see deep dwarves
much anymore. Hmmmm...

The idea behind this vault is to place a single Balrug early enough that
it's a serious (but not unmanageable) threat. I added a downhatch close
by if players need to escape in a hurry. There are also warning signs in
advance (all the dwarf corpses and the suspicious volcanic floor tiles
outside the Balrug room).

[ Committer's note: Added a runed door for the balrug, adjusted
  transparency, traded volcanic floor for blood. ]

dreamdust_wu_jian_sword_trials

A Wu Jian-themed vault. Challenge three increasingly powerful
sword-wielders for their increasingly good swords.

[ Committer's note: Adjusted depth range, added monsters to the earlier
  trial, trimmed arenas, added transperency. ]

dreamdust_merry_men

Inspired by Robin Hood and his band of merry men. Features a forest with
a bunch of archers and a good bow and aides to banditry to loot in the center.

[ Committer's note: Adjusted layout to prevent teleport closets, monster
  counts, loot. ]

dreamdust_tengu_aerie

A large nest of tengus. They keep their shiny loot in the center...
along with their fledglings (wait, are we the baddies??).

[ Committer's note: moved the crystal walls to the middle, put the
  rock wall on the outside (so the reavers can bolt bounce their
  omnibolts), and thinned the monster density. ]

dreamdust_hydra_shepherd

A shepherd is raising a flock (?) of hydras down in the Depths! Some
players might regret abandoning their flaming weapons after finishing
Lair/Swamp, haha.

[ Committer's note: upgraded the cyclops to a stone giant, added a small
  chance for a really high head count. ]

dreamdust_elfheim

The home of Duvessa and Dowan.
The more-practical Duvessa has training dummies in her room, while the
vain Dowan has a large mirror to admire himself with.

[ Committer's note: cut down on custom tiling/colouring a bit. ]

--------------------------------------------------------------------------------
7b655af5e2 | DreamDust | 2022-03-03 20:48:24 +0200

vaults: arrivals by DreamDust
dreamdust_arrival_beginning_and_end

Arrival vault that resembles the central orb chamber in Zot:5. Thought
it would be cute (especially for new players) to realize it at the end
of the orb run.

dreamdust_arrival_sigmund_warning

Beware the dreaded Sigmund, slayer of noobs! (and everyone else tbh, lol)

--------------------------------------------------------------------------------
0dae59b3db | DreamDust | 2022-03-01 21:11:17 +0200

Seven new vaults
[ Committer's note: Edited accounting for gammafunk's feedback, thinned
  monster densities in a few places. Closes #2184. ]

dreamdust_cave_troll

Just a deep troll tucked away in a little cave.  Using orient:northwest
because I like how it looks when the level generator makes a path to the
vault. Feels like a nice, cozy cave deep in the rock.

dreamdust_gnoll_farm

Just some simple gnoll farmers trying to make an honest living.

dreamdust_gnoll_shepherd

A cute little gnoll shepherd and his flock of dream sheep (or herd of
yaks).

dreamdust_wasp_nest

A wasp/hornet nest!

dreamdust_looks_like_rain

A portal to the elemental plane of air briefly opened and spat out some
clouds and monsters!

dreamdust_zin_vs_xom

Zin and Xom are having a skirmish in Zot. I think it's a nice contrast
between Order and Chaos.

dreamdust_under_siege

The general idea is that you have a chance of going down some stairs and
finding yourself in a little fortress under siege (usually by a swarm of
undead).

--------------------------------------------------------------------------------
1125b37a9b | Nicholas Feinberg | 2022-02-28 17:35:56 -0800

Describe eruption damage in xv (ardl)
This is a hack; the correct fix would be to make a zap.

--------------------------------------------------------------------------------
162f3ce599 | Nicholas Feinberg | 2022-02-28 17:21:31 -0800

Fix @ display for launchers with armour
Broken by 9445043ebcbc046d65807a91ab1288053957184b.

Closes #2450.

--------------------------------------------------------------------------------
945431f764 | Implojin | 2022-02-27 21:53:51 +0200

feat: add a new randart name
of @god_name@'s Attic
--------------------------------------------------------------------------------
230a35465e | RojjaCebolla | 2022-02-27 21:52:43 +0200

text: new adjective and verbs for ran dart names, plus usage
* Teach Trog adjectives and verbs



example item names now possible:



the Foo...

(general)

of Hungering Death

of the Rescuing Gods

of the Glowing God

of Uskayaw, Screaming

(trog)

of Glamorous Victory

of the Hopping Regicide

of Barnacled Death

(oka)

of Okawaru, Healing

(xom)

"Xom, Gnashing and Baking"

of Healing Xom
--------------------------------------------------------------------------------
ce1ebfb2c9 | robertxgray | 2022-02-27 14:45:29 -0500

Update typed-ast to 1.4.3 This is required to run the server on Python 3.10+

--------------------------------------------------------------------------------
cf85d113b3 | Diego Essaya | 2022-02-27 14:40:39 -0500

fix: click + key modifier detection in tiles
Fixes #898

--------------------------------------------------------------------------------
9cf36f4b4d | RojjaCebolla | 2022-02-27 20:20:21 +0200

feat: remove identification scrolls from troves
In the past year, identification scrolls have become increasingly less

important as gear now is automatically identified, and never cursed.



By the time players get into a trove, they generally will have no

further use for scrolls of identify, so those should be removed from the

trove.good_scroll table. In their place, we now have immolation scrolls, which

are a fun tool for safely fighting large armies, and torment scrolls,

so that these troves can be just as fun for demons/undead as they are

for other species. These two additions are equally as common as scrolls

of holy word. Finally, a small chance of the very powerful summon scroll.
--------------------------------------------------------------------------------
ba8e22afda | Nicholas Feinberg | 2022-02-27 10:08:25 -0800

Move mu necro enhancers earlier
XL 13/26 is too late to be relevant. Shift to XL 3/13 instead.

--------------------------------------------------------------------------------
54f80b8ed5 | Elliott Bernstein | 2022-02-27 20:08:00 +0200

fix: when felid has 2 lives, show actual died-now xp needed for next life
Co-authored-by: Elliott Bernstein <elliottbernstein@elliotts-mbp.attlocal.net>
--------------------------------------------------------------------------------
b3188875b7 | Nicholas Feinberg | 2022-02-27 08:25:02 -0800

Adjust wight/necrophage XP
They're pretty similar threats. Move necrophage to about 80 XP
(from about 120, higher than a black bear or ogre) and bump wights
to about 75 XP (from 60ish).

--------------------------------------------------------------------------------
7cd8c5c774 | Nicholas Feinberg | 2022-02-27 08:17:44 -0800

Tweak Phial of Floods description
Clarify air breathing requirement.

--------------------------------------------------------------------------------
5b244fca1f | advil | 2022-02-26 09:48:58 -0500

fix: handle undefined item slots with action_panel_glyphs=true
This can specifically cause a crash when dropping an artefact and then
picking up something in the same slot, where it tries to get a glyph on
an undefined item_def and artefact-related properties are in an
inconsistent state. Possibly a pseudo-bug that flags are not reset for
this case, or that get_item_glyph tries to do something for this case?
(I think otherwise, this call was mostly was stable.)

Resolves #2434

--------------------------------------------------------------------------------
ceb61267dd | advil | 2022-02-25 17:02:44 -0500

fix: improve some randart name grammar
seems to need a determiner or noun. (I'm still not sure this is the most
coherent randart name I've ever seen.)

--------------------------------------------------------------------------------
51b9c0fbd8 | gammafunk | 2022-02-25 09:59:46 -0600

fix: Remove a ghost vault restriction
For ebering_ghost_funeral_grove, remove the restriction preventing
Swamp:$ placement, since it no longer uses trees for its outer border.

--------------------------------------------------------------------------------
0a02b1cf4f | Nicholas Feinberg | 2022-02-24 17:15:28 -0800

Don't spawn Amaemon on D:7
Too rude.

--------------------------------------------------------------------------------
f2abdc9806 | Nicholas Feinberg | 2022-02-24 13:48:19 -0800

Tweak frog hop targeter
Don't show known invalid destinations as possible (occupied by
actors, such as the player, or dangerous terrain).

--------------------------------------------------------------------------------
ce79c09f71 | Nicholas Feinberg | 2022-02-24 08:03:50 -0800

Remove D skeletons too
Missed em in the last commit, whoops.

--------------------------------------------------------------------------------
0c351c38d6 | Nicholas Feinberg | 2022-02-24 07:31:53 -0800

Bump down Amaeemon's HP/HD
He was doing a little more direct damage than I wanted. HP from 92.5
to 87.5, HD from 10 to 7 (reducing accuracy and poison damage).

--------------------------------------------------------------------------------
29cdfe4e04 | Nicholas Feinberg | 2022-02-24 07:23:26 -0800

Remove most D zombies (hellmonk)
Zombies aren't very exciting enemies. They're like other, existing
monsters, except they don't have any cool gimmicks or definining
features that those monsters have, and they make a bunch of nice
items (poison darts/spells, ice magic, necro magic) useless.
They're also not great for UI - it's harder to tell at a glance
what you're fighting, or how tough it is.

Let's cut em from normal D spawns. This is an early-game TSO nerf,
but probably an overall buff to players.

--------------------------------------------------------------------------------
17f627cfee | Nicholas Feinberg | 2022-02-23 18:59:54 -0800

Fix missing regen space (ardl)

--------------------------------------------------------------------------------
c45ea81df0 | nicolae-carpathia | 2022-02-23 21:42:27 -0500

Fix an error with a generic overflow vault
that is NOT how the shuffle command works, did i write this at
two in the morning, damn

--------------------------------------------------------------------------------
748a509809 | advil | 2022-02-23 18:55:44 -0500

fix: sanity check item quantity
surely it is safe to add such a simple sanity check to low level item
code, right?

--------------------------------------------------------------------------------
18cb72b20d | advil | 2022-02-23 18:33:38 -0500

fix: more info on invalid item tags.cc crashes
The error for item_def::is_valid() had messaging, but it uses dprfs so
wasn't visible in crashlogs. Since the game is going to crash anyways,
let's actually print out these error messages. I've also reworded a
bunch of them.

--------------------------------------------------------------------------------
9445043ebc | Nicholas Feinberg | 2022-02-23 09:27:28 -0800

Don't slow clumsy bashes with armour
When attacking with launchers.

--------------------------------------------------------------------------------
989f1d9ccb | Nicholas Feinberg | 2022-02-23 08:33:23 -0800

Bring back Summon Scorpions tile
Forgot this when adding Amaemon, whoops!

--------------------------------------------------------------------------------
7b0a884809 | advil | 2022-02-23 09:05:10 -0500

fix: tweak wording in a rampage prompt
Rampaging is in general fine for wielded_weapon_check; it's only if your
rampaging would trigger an attack that this verb is used in messaging.

--------------------------------------------------------------------------------
f982a884d8 | Nicholas Feinberg | 2022-02-22 22:04:18 -0800

Remove anguish on leaving levels
Maybe the cause of the mystery anguish bug..?

Also, I hate this switch quite a lot.

--------------------------------------------------------------------------------
4a66f2e2b5 | Nicholas Feinberg | 2022-02-22 20:59:03 -0800

Allow LRDing Vvurtles (Nomi)
Oversight!

--------------------------------------------------------------------------------
235afadefe | Nicholas Feinberg | 2022-02-22 18:54:55 -0800

Update job recs for og/tr (Lici)
Now that you can't start with large rocks as Hu or AM, don't
recommend them to trolls or ogres.

AE background rec for ogre is semi-arbitrary. Seemed to have a
high recent winrate for not excessively dubious reasons (wasn't a
nem choice, wasn't one player streaking, etc). Seems reasonable for
apts and so on (bouncing less dangerous when you have high HP).

Might add Gl as a rec if a-good-start lands.

--------------------------------------------------------------------------------
8e21839460 | Nicholas Feinberg | 2022-02-22 18:42:21 -0800

Don't mention monster ammo
When cursoring over a monster, and printing something like

    Here: a centaur, wielding a +0 shortbow, quivering arrows

Cut the bit about 'quivering arrows'. Meaningless verbiage :)

--------------------------------------------------------------------------------
7cd6805d08 | Nicholas Feinberg | 2022-02-22 18:35:08 -0800

Fix: Don't slow throws with armour (Yermak, 12688)
Oops!

--------------------------------------------------------------------------------
2e1b08cf00 | advil | 2022-02-22 21:25:47 -0500

feat: readd quivering/firing ranged weapons
It's proven somewhat confusing to many players that the relevant UI
elements no longer worked with launchers after ammo removal. This commit
restores the ability to quiver launchers, allowing them (if quivered) to
be triggered on default keybinds using `f` and `p`, as well as `v` and
tab regardless of what is quivered.

I've restored some corresponding options as well. It's entirely possible
their defaults should be different than they used to be, if these are
better viewed as compatibility options now. But for now, launchers are
in the fire order (this never got removed), and `launcher_autoquiver`
defaults to true.

--------------------------------------------------------------------------------
015645fbfe | advil | 2022-02-22 21:25:47 -0500

feat: add an explicit toss submenu
Tossing is currently in a weird state where as more and more things
become quiverable, they have two types of actions that could apply,
making them harder to figure out how to toss. This is all sort of still
in a mess for other menus, but this (quite basic) submenu is guaranteed
to always use `ammo_to_action` and therefore only throw.

--------------------------------------------------------------------------------
c7997b95f3 | Nicholas Feinberg | 2022-02-22 12:05:53 -0800

Launcher reform: update sling descriptions
RIP rock v sling bullet dynamic

--------------------------------------------------------------------------------
542faf17db | Nicholas Feinberg | 2022-02-22 08:10:15 -0800

Fix a Jiyva jelly crash (?)
If the player is damaged by a monster that's already dead (eg a guardian
golem's inner flame), don't try to point jellies in its direction.

I couldn't repro the crash, so not sure about this fix.

--------------------------------------------------------------------------------
28b64116f0 | Nicholas Feinberg | 2022-02-22 07:29:36 -0800

Roll-back post-AEVP delay launcher buffs
When adding AEVP to launcher delay in af6a381e141a, I'd assumed that
would be a considerable nerf that called for compensation. With the
change to use dex for launcher damage shortly after, however, that
no longer seems called for. Revert to more or less the weapon stats
from a852ce8369264a3a4759b99df0bbba7645a78c97.

--------------------------------------------------------------------------------
e3fb4bd5a4 | Nicholas Feinberg | 2022-02-21 19:05:10 -0800

Re-add launcher to-hit display (pdpol)
This is a bit of a hack.

Closes #2438.

--------------------------------------------------------------------------------
79605ca0cb | advil | 2022-02-21 19:50:11 -0500

fix: hide account hold div on force-logout
Unintentionally still displayed after an account gets force logged out
when an account hold is escalated to a ban.

--------------------------------------------------------------------------------
36e498a9cf | advil | 2022-02-21 19:50:11 -0500

feat: improve account-related logging
This more consistently shows the IP address, and puts a substring that
is very easily matched for scripts that want to pull out account-related
logging from the main log. (This only will reliably log things that
happen while a player is connected, so releasing a hold or removing a
ban still won't show up here.)

--------------------------------------------------------------------------------
6e3aafee17 | Nicholas Feinberg | 2022-02-21 15:00:42 -0800

Fix fix

--------------------------------------------------------------------------------
a21e45360d | Nicholas Feinberg | 2022-02-21 14:58:04 -0800

Fix kaux/ckaux
Broken in 4e44252f3f24252e461ee3764b93ec7b8ad007b5, 9 months ago.

--------------------------------------------------------------------------------
c9553a8f79 | Nicholas Feinberg | 2022-02-21 13:03:01 -0800

Pull back slightly on SpHu (Lightli)
To compensate for dex increasing ranged weapon damage, make fustibali
2-handed and 3xbows unusable for spriggans.

--------------------------------------------------------------------------------
16cad56b0c | Nicholas Feinberg | 2022-02-21 09:47:50 -0800

Maybe fix a tossing crash (ardl)

--------------------------------------------------------------------------------
299514152f | advil | 2022-02-21 12:22:16 -0500

fix: (re)allow launching from `F`
Previously this was implemented via ammo, which is gone. But it seems
very confusing to not have launchers selectable from this menu, which
after this change became limited only to throwing. This commit is a bit
of a quick hack to do this, may need some more work. This means you
can't use `F` any more to toss away a wielded launcher, though this is
still possible via quivering it (with `Q**`). You can still toss a
non-wielded launcher from this menu.

More generally, it might be good to also allow quivering newlaunchers so
that they still work with `f`/`p` (especially the latter, it's confusing
that CMD_AUTOFIRE no longer has a way to fire for this case), but this
will not be as easy so I'm not going to get to it immediately.  The
division of labor for autofight/autofire introduced with quivers may
need some rethinking.

--------------------------------------------------------------------------------
ca6a0d2473 | advil | 2022-02-21 12:06:24 -0500

fix: reenable anonymous spectating

--------------------------------------------------------------------------------
9aa386d172 | advil | 2022-02-21 09:44:16 -0500

fix: show lobby in a stable order with account holds
I only had tested this in a python version where all dicts are ordered.
Also, remove some traces of a pre-py27 compatibility shim for
OrderedDict. (If anyone is still running this on py26, I don't know what
to say. But probably not, because webtiles.load_games already dropped
this.)

--------------------------------------------------------------------------------
a23d9638d5 | Nicholas Feinberg | 2022-02-20 19:04:59 -0800

Give Vv a quote (ebering)
There's probably better quotes from The Fifth Season - this was the
first reasonable one I found.

--------------------------------------------------------------------------------
6546220326 | Nicholas Feinberg | 2022-02-20 19:04:48 -0800

Give Amaemon a signature weapon
Don't drop that whip!

--------------------------------------------------------------------------------
c2a82b186b | Nicholas Feinberg | 2022-02-20 15:47:36 -0800

Re-remove HINT_SEEN_RANDART
Missed a few spots in 4be7dbf86b841721fccbcb6690ed74273671146d .

--------------------------------------------------------------------------------
2ef5e920f0 | Nicholas Feinberg | 2022-02-20 14:32:13 -0800

Remove Amaemon's corpse
Every person is a whole world unto himself... but perhaps not a whole
species.

--------------------------------------------------------------------------------
d601ab35b5 | Nicholas Feinberg | 2022-02-20 13:30:48 -0800

Revert "chore: add a trunk reminder for the 0.28 tournament"
This reverts commit 03a7b78be7a97b61e3ccfaa102cec36b0ca111bc.

--------------------------------------------------------------------------------
599418656c | Nicholas Feinberg | 2022-02-20 13:28:26 -0800

Ru melee redirection refactoring

--------------------------------------------------------------------------------
65f304602f | Nicholas Feinberg | 2022-02-20 12:35:52 -0800

Unbrace files.cc

--------------------------------------------------------------------------------
9fbeeb3dcf | Nicholas Feinberg | 2022-02-20 12:33:39 -0800

More mut description tweaks
Cut more mut descriptions that are (IMO) non-actionable, and add the
overlooked MUT_FANGS to dataified descriptions.

--------------------------------------------------------------------------------
ca93a6e943 | Nicholas Feinberg | 2022-02-20 12:33:39 -0800

Trim Jiyva mut descriptions
I don't think that the details here are helpful to players. You can't
really control these muts, so what do detailed numbers get you? How will
you play differently? It doesn't seem like something that will meaningfully
affect play.

--------------------------------------------------------------------------------
b9ea505e61 | Nicholas Feinberg | 2022-02-20 12:33:39 -0800

Tweak Ru eye desc

--------------------------------------------------------------------------------
507d7b0529 | Nicholas Feinberg | 2022-02-20 12:33:36 -0800

Programmatic aux descriptions

--------------------------------------------------------------------------------
b4860018a3 | Nicholas Feinberg | 2022-02-20 12:33:36 -0800

Dataify aux attack trigger chances

--------------------------------------------------------------------------------
adaf126bc6 | Nicholas Feinberg | 2022-02-20 12:33:36 -0800

Fancy Lua horns description

--------------------------------------------------------------------------------
bb7b57aa70 | Nicholas Feinberg | 2022-02-20 12:33:36 -0800

Beak

--------------------------------------------------------------------------------
0ef5763bac | advil | 2022-02-20 12:33:36 -0800

docs: attempt to despoiler various aux/retaliation muts
I say "attempt" because this stuff is complicated enough that there may
be all sorts of mistakes in here still, or even some random rolls I've
missed entirely. In many cases I have chosen to give slightly round
numbers (e.g. 40% rather than 38%), maybe these should be made exact.
Also, this is a lot of numbers, but I think we have become pro-numbers
enough for this sort of change. This commit began in response to
https://www.reddit.com/r/dcss/comments/svj867/demonic_touch_utterly_useless/
where it became apparent that how this particular mut worked was
completely opaque to players (especially since its behavior is pretty
atypical), but once I started doing this it became clear to me that
basically all of these would be better with more information.

I've tried to get all of the direct combat effects in this change.  Some
of the Ru mutations that are responsive (e.g. no potion heal) could
maybe use similar work.

--------------------------------------------------------------------------------
c3e01e4e4d | Nicholas Feinberg | 2022-02-20 12:29:54 -0800

Fix Josephina vault (geekosaur)
??oops

--------------------------------------------------------------------------------
fffab11c1d | Nicholas Feinberg | 2022-02-20 12:27:44 -0800

Add item descriptions to monster
So no one ever has to maintain the ldb book entries ever again.

This is quite ugly but mostly works?

--------------------------------------------------------------------------------
cd8f6311e7 | Nicholas Feinberg | 2022-02-20 12:27:21 -0800

dgn_place_item refactoring

--------------------------------------------------------------------------------
96d55e26a3 | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Checkwhite hints changes

--------------------------------------------------------------------------------
5e4a951760 | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Add a malevolence (explore trap) hint

--------------------------------------------------------------------------------
4be7dbf86b | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

More hints updates
Remove references to allies stealing XP (now only true for Beogh),
and rewrite HINT_YOU_RESIST to be a bit clearer (maybe!). Remove
HINT_SEEN_RANDART (would generally only show up once a randart was
already IDed) and tweak the description of Spellcasting skill.
Don't bother noting demon tiers, and don't claim that statues are
notable or hide 'special areas'.

--------------------------------------------------------------------------------
0c76a2f6e3 | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Remove HINT_FLEEING_MONSTER
Mostly obsolete since 5cea4aff0001 (2012), 13c00676f0 and f1aa33a6750
(2013), and completely obsolete after b8068419c757 (2015).

--------------------------------------------------------------------------------
fc0c1e2a9a | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Fixup HINT_EXCOMMUNICATE
Don't claim you get wrath for abandoning a good god (or Ru) and not
worshipping a new god. Also, dedent.

--------------------------------------------------------------------------------
491e7b286d | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Update HINT_CONVERT

--------------------------------------------------------------------------------
bc0daef7cc | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Cleanup NEW_ABILITY_GOD

--------------------------------------------------------------------------------
477d20c3ff | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Misc hints cleanup

--------------------------------------------------------------------------------
ca3a83724e | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Simplify wand use advice logic

--------------------------------------------------------------------------------
566ef67269 | Nicholas Feinberg | 2022-02-20 12:26:55 -0800

Remove HINT_SEEN_CARRION
Irrelevant in a post-butchering world.

--------------------------------------------------------------------------------
d8e2eab272 | advil | 2022-02-20 15:24:02 -0500

refactor: clean up `chr` chunk loading
This was sort of impressively convoluted and bad: the tag code read chr
chunk data directly into `you`, and then a `player_save_info` object was
constructed from that. In most cases, this was wrapped in code that made
a copy of `you` and then restored it after getting the info object.
There were also all sorts of inconsistencies in what data was stored in
this object. I'm guessing no one really wanted to mess with this old
code where the cost of breaking things is high, but I'm going to give it
a short here. This commit:

* Cleans up `player_save_info` to exactly match the data in the `chr`
  chunk, aside from version info (and doll info used for tiles main
  menus). Add a few fields, remove one (`experience`) that seems to be
  completely unused.
* Add a constructor to `player_save_info` to handle default values a bit
  more cleanly
* Rewrite the tag code to read directly to a player_save_info object,
  and only copy data into `you` on demand
* more comments, code reordering to match chunk data order, slightly
  better error messages in a few cases

--------------------------------------------------------------------------------
57cb919b73 | advil | 2022-02-20 15:24:02 -0500

fix: simplify and fix setup for save info CLOs
`-save-version` was broken because it didn't correctly reset paths. In
addition, I'm pretty sure that these don't need a full options reset.
(Possibly I'm wrong, we'll see -- if there's mysterious uninitialized
memory crashes, it'll probably just break the webtiles save viewer again
and nothing else.)

--------------------------------------------------------------------------------
8aa3a5f11e | advil | 2022-02-20 15:24:02 -0500

fix: webtiles save info collection
This broke around b939be14790 but I hadn't sat down to figure out what
happened until now. (Amazed that there was never an actual issue about
this that I'm aware of!)

It may have been sort of a blessing in disguise as at least on CAO this
callback chain has become pretty heavy and often times out. We'll see...

--------------------------------------------------------------------------------
e9b396fb19 | Nicholas Feinberg | 2022-02-20 12:22:37 -0800

Allow looking up unrands in ?/I
This was surprisingly annoying!

--------------------------------------------------------------------------------
8338fcb62e | Nicholas Feinberg | 2022-02-20 12:21:12 -0800

Don't let nymphs/elios port to unseen foes (dinky)
That is, if you're invisible, don't let water nymphs waterport or
eleionomae treeport to you.

Also, dedent the water nymph logic.

--------------------------------------------------------------------------------
15338bc10e | Nicholas Feinberg | 2022-02-20 12:20:01 -0800

Tweak Merfolk weapon aptitudes (Hellmonk)
Trade a point of Polearms for a point of Long Blades. At +3 polearms,
Merfolk will still be extremely strong polearms users, but it'd be
nice for them to occasionally have some reason to do something else.
(Especially with impending changes to long blades.)

--------------------------------------------------------------------------------
32946d4e34 | Nicholas Feinberg | 2022-02-20 12:19:30 -0800

Make Jiyva less verbal
Jiyva doesn't seem like much of a talker.

Possible that J penance should be rethought regardless, but for now...

--------------------------------------------------------------------------------
68506e6fbd | Nicholas Feinberg | 2022-02-20 12:19:07 -0800

Disable the MCC targeter by default
It seemed to mostly confuse players by leading them to think that the
spell was targeted, since they could move the cursor around while in
the targeter. It's also not super useful, since whatever monster is
highlighted when you start the spell may not be the eventual victim.

The MCC targeter can still be seen by quivering and (f)iring the spell,
or by adjusting the rcfile.

--------------------------------------------------------------------------------
d9437148fb | Nicholas Feinberg | 2022-02-20 12:18:29 -0800

Slot name: armour -> body armour
To avoid confusion that the Armour skill only applies to the Armour
slot.

--------------------------------------------------------------------------------
67d208b9ac | Nicholas Feinberg | 2022-02-20 12:16:14 -0800

Remove most uniques from Tomb
Tomb has its own thing going, and most of these guys aren't really
scary by the time you get there. (<0.6% recentish killratio.)

Also drop Mara and Parghit from Crypt; former for killratio reasons
(0.2%) and latter for thematic ones. Parghit is a winner! He's
heading for the orb! No reason for him to be in the Crypt.

--------------------------------------------------------------------------------
06d020a549 | Nicholas Feinberg | 2022-02-20 12:16:14 -0800

New unique: Zenata, Seeker of Sheza
Zenata is another late-game unique (appearing in Depths, Zot &c),
borrowing a bit from the Desolation of Salt and putting a twist on it.
She's taken the ragged hierophants' "Resonance Strike", which is like
airstrike that gets bonus damage from adjacent constructs instead of
from open spaces, and uses it in conjuction with a new "Sheza's Dance"
spell, which summons 2-4 dancing weapons. To encourage players to kill
her, she comes with a high-tier weapon with some plusses already on it.

Zenata's theme is intended to expand slightly on the Desolation lore.
She entered the Dungeon to look for secrets of the old Sheza/Sargol cult,
the Divine Twins that ran the Desolation of Salt before it was a
desolation. The bits and pieces she found required her to replace more
and more of her flesh with metal to unlock their power... but hey,
upgrade! :)

--------------------------------------------------------------------------------
226d363e7e | Nicholas Feinberg | 2022-02-20 12:16:14 -0800

New unique: Vv the Exile
Vv is a combination of ironbound frosthearts (Creeping Frost) and
Salamander Tyrants (Eruption/Pyroclastic Surge), appearing in Depths,
Zot, Crypt and Tomb. She's themed as a new species, the Stoneborn,
sentient earth elementals. She also has strong defenses and AF_FIRE
and AF_COLD melee.

I haven't yet added any loot for her, to incentivize players to tussle
with her. The XP and curiosity might be enough for now.

The theme is intended to push in a different direction from uniques
like Parghit and Josephina. The former expand on existing lore. Vv, by
contrast, expands the world of DCSS by suggesting the existence of
something greater outside the game's current bounds.

--------------------------------------------------------------------------------
375cf7ae12 | Nicholas Feinberg | 2022-02-20 12:16:13 -0800

Fix new VISUAL monspeak entries

--------------------------------------------------------------------------------
69db86b63c | Nicholas Feinberg | 2022-02-20 12:16:13 -0800

New unique: Lodul the Thundrous
Lodul is an ironbound thunderhulk who's been sent to patrol outside the
Vaults, in late D. He's got a weaker version of Call Down Lightning (lower HD)
and a big band of ogres and two-headed ogres to help him keep distance from
the player. Defensively, he looks a lot like Erolcha.

His loot is a big pile of gold. Nothing like cash to bribe players into
potentially risky fights :)

--------------------------------------------------------------------------------
9cfbde7411 | Nicholas Feinberg | 2022-02-20 12:16:13 -0800

New unique: Amaemon the Diabolical Poisoner
Amaemon is Crawl's first demonspawn unique, appearing in mid-D,
early Lair and Orc:1. Alongside his orange demon companion, Amaemon
summons scorpions (the classic returns!) and casts Concentrate Venom,
upgrading his allies' poison into curare. To encourage players to
try to kill him, he wields a demon whip of venom, with 1% chance of
the unique Snakebite.

--------------------------------------------------------------------------------
618b504a9a | Nicholas Feinberg | 2022-02-20 12:16:13 -0800

New unique: Josephina the Ice-Lich
As one more 'alt-timeline' unique, Josephina is an upgraded version of
Josephine. She appears in late Vaults, Depths, Crypt, Tomb and Zot, and
borrows Wendigo Seracfall (turning simulacrula into 3d33 bombs) to
add to her classic Ghostly Fireball. She comes with a guaranteed randart
ring of ice.

I suspect a lot of the numbers here will need more fine-tuning. She
might be a bit of a glass cannon at the moment, especially with the rF-,
and I think the placement range is probably a bit off.

--------------------------------------------------------------------------------
141cb85572 | Nicholas Feinberg | 2022-02-20 12:16:13 -0800

New unique: Parghit the Mighty
Following the example of Maggie/Margery, Parghit is an "alt-timeline"
version of Pargi. Parghit appears in late Depths, Zot, Crypt and Tomb,
and sports high-enchantment golden dragon scales (with a 1% chance of
wearing the Dragon King) and an astonishing 27 HP regenerated per turn.
He's definitely killable, but best not underestimated.

I considered also giving him large rocks. It seemed rude, but I might
go back to that if it seems appropriate.

Credit Hellmonk for several parts of this idea.

--------------------------------------------------------------------------------
920eff52f4 | Nicholas Feinberg | 2022-02-20 12:15:54 -0800

Mark dummy species mons as NO_GEN_DERIVED
Don't spawn Palentonga zombies in Crypt. They're not real monsters!

--------------------------------------------------------------------------------
1eaea45740 | Nicholas Feinberg | 2022-02-20 12:12:34 -0800

Change the Woodcutter's Axe into a battleaxe
Pushing back a bit on the original design principle, make skill
matter a bit more (multiplying a higher base damage & augmenting a
lower base accuracy), and add another tradeoff (2-hander status).

I'm not adding save compat, so anyone upgrading from an older version
can have both an off-hand and the woodcutter's axe until they unequip
something. Bonus! :)

--------------------------------------------------------------------------------
e3029af5aa | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Make ranged weapons use dex instead of str for damage
After e08ca24d97b194, strength became extremely valuable for ranged
weapons. It increased damage quadratically: not just multiplying the
base damage of the weapon, but also increasing attack speed while
wearing armour.

This isn't the end of the world, but it does seem more intuitive that
dexterity should be the desirable stat for ranged weapons. So, let's
make ranged weapon damage scale with dex instead of str. Str is still
quite valuable for ranged characters to allow them to use heavier
armour, just a bit less so.

--------------------------------------------------------------------------------
85b37ae345 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Make blades use dex instead of str (hellmonk)
To differentiate long blades further from other weapon classes, make
Dex increase their damage instead of Str, in exactly the same way.
It would feel very weird if lbl used dex but sbl still used str, so
change sbl to match as well.

Possible that some sbl nerfs could be called for after this? Probably
it's fine.

--------------------------------------------------------------------------------
7cd8695230 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Ammo removal: more hints updates

--------------------------------------------------------------------------------
af6a381e14 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Add AEVP to ranged weapon delay
Ranged characters in Crawl generally feel rather similar to melee characters.
Other than dealing with ammo - which tends to be mostly busywork, rather
than a meaningful or interesting set of choices - ranged characters feel
like polearm users with a very very long pole. This is not great for variety,
and it's also not very intuitive. A player could reasonably expect that a
ranged character should look different from a melee character - Robin Hood
and Legolas aren't running around in plate armour!

So, let's fix that. As of this commit, AEVP is now added to missile weapon
attack delay. As usual, this is reduced significantly by Str and slightly by
Armour skill. Some sample numbers:

- Starting human hunter in leather:   +0.042 delay
- Starting human hunter in plate:     +0.864 delay
- 30 str, 16 armour, plate:           +0.253 delay
- 50 str, 27 armour, plate:           +0.097 delay
- 50 str, 27 armour, crystal plate:   +0.159 delay
- 5 str, 0 armour, crystal plate:     +2.645 delay
- 20 str, 10 armour, swamp dragon:    +0.066 delay

(Delays below 0.1 are randomized with every attack. For example, an
added delay of 0.042 has a 42% chance of slowing an attack by 0.1.)

In compensation, ranged weapons' have gotten various buffs; most weapons
have seen their base damage has been increased, and slings have seen their
base delay decreased.

The expectation is that players will be encouraged to choose somewhat
lighter armour than they might otherwise, making ranged characters feel
more different from melee. It also makes ranged weapons somewhat less
attractive as a swap for melee characters.

All numbers subject to change.

--------------------------------------------------------------------------------
34d9ade26b | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Update the quick-start guide for ammo removal

--------------------------------------------------------------------------------
b9b4b4cd67 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Give kobolds +3 xbows
As something they're better at than other races (being mechanically
inclined), it's nice to accentuate that strength a little more than
their former +2. Plus, it's funny to give a race that has a big
obvious disadvantage for ranged combat (reduced LOS) a great apt for
it - creates a different kind of experience!

--------------------------------------------------------------------------------
216ade4d86 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Remove an unused variable (Aliscans)

--------------------------------------------------------------------------------
ed46df0f1f | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Mark launcher ammo as removed (Aliscans)

--------------------------------------------------------------------------------
a852ce8369 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Play with ranged weapon stats more
Following some thinking about ranged weapons, here's a new set of
ammoless stats. Philosophy:

- Slings are high-skill 1-handers. Hunting slings are vaguely like
  war axes, and fustibaluses are no longer ultra-rare but are now
  more like broad axes.
- Bows are high-skill 2-handers.
- Crossbows are lower-skill - it takes fairly little to get the hand
  crossbow or the arbalest to mindelay. The triple crossbow is still
  high-skill, but it's quite rare, so doesn't define the 'feel' of
  the class, much as you can't rely on finding a triple sword as a
  lbl user or an exec axe as an axe user. (Unless a gifting god gets
  involved.)

If we're going to keep all these item classes, it would be great to
have some more obvious and pronounced gimmicks. I suspect we'll end
up merging or removing some of these at some point, but that's a
larger project than I'm ready for right now.

TODO: make fustibali spawn at a higher rate - right now they're about
1/5th as common as I'd like.

--------------------------------------------------------------------------------
9b9ebdfc37 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Remove launcher ammo from the \ menu (Aliscans)

--------------------------------------------------------------------------------
a30ec57329 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Remove throwing weapon hunter start (Aliscans)
Throwing weapons were always an odd fit for the hunter background.
They aren't a primary playstyle or 'killdudes' method like ranged
weapons, but they were presented in the same way. Now that hunter's
lost its short sword, it's an especially odd fit.

Let's cut the throwing start for now. I think in the near future we
might bring back additional throwing ammo as a supplement to another
background, either Gladiator or Brigand (or perhaps both?).

--------------------------------------------------------------------------------
cb38ff9839 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Remove webtiles launcher quiver

--------------------------------------------------------------------------------
d562ef3a11 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Remove the short sword from the hunter start
No longer needed.

--------------------------------------------------------------------------------
39307501d7 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Adjust ranged weapon stats post-ammo
Mostly reduce numbers across the board, since players are no longer
constrained by ammo. Slings are a little sad about the loss of sling
bullets and so don't get hit quite as hard as the others.

I playtested these and kept turning numbers downward until just
mashing o-tab on a HuHu would get me killed somewhere in early-mid D.
(With no numerical tweaks, it was pretty trivial to reach Lair, and
probably to just win.)

--------------------------------------------------------------------------------
3bbc7b7260 | Nicholas Feinberg | 2022-02-20 12:05:40 -0800

Remove ammo from vaults, sprints & the tutorial

--------------------------------------------------------------------------------
13dfb44323 | Nicholas Feinberg | 2022-02-20 12:05:38 -0800

Adjust item gen for ammo removal
Drop non-vault loot proportionate to the weight of old arrows, bolts,
etc. Counting vaults, overall game loot will be slightly higher -
maybe about 2%?

--------------------------------------------------------------------------------
4fc27e4f60 | Nicholas Feinberg | 2022-02-20 12:04:49 -0800

Allow firing with v
Since launchers no longer use ammo, there's no reason for them to
interact with the quiver system. Instead, make them fire using 'v',
like polearms or other melee weapons. Tab also works.

If people request, maybe there could be an option to have 'f' always
fire a held ranged weapon, rather than using the quiver.

--------------------------------------------------------------------------------
a8e9c987b8 | Nicholas Feinberg | 2022-02-20 12:04:47 -0800

Remove launcher ammo
Ranged weapons in Crawl have long contained a painful tension.

On the one hand, their design suggests that the player is
expected to use them as their primary means of killing enemies.
They have dedicated weapon skills, imposing a substantial strategic
cost to reach mindelay with any given type, and there's a tactical
cost to switching between them and melee weapons.

On the other hand, the limited ammo supply suggests the player is
expected to conserve ammo in some way. The only real way to do this
is to use other means (i.e. melee weapons) to kill some enemies.
However, there's still more than enough ammo to kill any really
threatening enemy, and later on there tends to be more than enough
ammo to make its limitations meaningless, especially for followers
of Okawaru.

Thus, ammo currently provides no really interesting tactical or
strategic decisions, just busywork. It seems that ammo should either
be made much more restrictive, so that the player is rewarded for
engaging with it, or removed.

If we made ammo much scarcer, such that players could only kill a
few very dangerous enemies with it, players would generally be forced
to train something else as their primary 'killdudes' skill, and use
ranged combat as a supplement. This would end up looking quite a lot
like Throwing or Evocations, but with a worse UI, since players would
need to switch weapons rather than just pressing 'F' or 'V'. This seems
uncompelling.

As such, let's cut ammo entirely. Monsters *already* had infinite ammo,
and players can follow suit. Subsequent commits will deal with the small
print.

--------------------------------------------------------------------------------
d09b832af6 | Nicholas Feinberg | 2022-02-20 11:48:37 -0800

Remove launcher ammo acquirement
This will be meaningless very soon. (See following commits.)

--------------------------------------------------------------------------------
8efb068a30 | advil | 2022-02-19 14:01:43 -0500

feat: indicate stateful ?tele behavior in ItemUseMenu
The stateful behavior of scrolls of teleportation is kind of easy to
forget about, and also unique (I think) among consumables. Because of
this, it seems helpful to indicate if it will cancel an existing
teleport explicitly. I've done this in the `r` menu, another place this
could be done is in the item description itself.

--------------------------------------------------------------------------------
ba4477c8fd | Nicholas Feinberg | 2022-02-19 07:47:14 -0800

Add Ignis to db_lint (SpicyCebolla)

--------------------------------------------------------------------------------
4040846114 | Nicholas Feinberg | 2022-02-18 21:46:58 -0800

Fix Throatcutter player tile (Gwynnette)

--------------------------------------------------------------------------------
06d03a830b | Nicholas Feinberg | 2022-02-18 12:21:35 -0800

Remove a spurious tracer check
Didn't quite think that one out.

--------------------------------------------------------------------------------
097e55589a | Nicholas Feinberg | 2022-02-18 12:20:20 -0800

Fix quiver/summon warnings (CarefulOdds)
Don't check for interactions with ongoing AOE attacks (OTR, Polar
Vortex, &c) when you're just quivering a summon spell. Only check
on cast.

Closes #2429.

--------------------------------------------------------------------------------
99c160cdfe | Nicholas Feinberg | 2022-02-18 11:01:33 -0800

Fix Shilleiagh noise (frdfg)
When Devastator was added in 9cc3ee3f91d, it was intended to make 7
noise with every hit. However, since it was an explosion, it accidentally
made 15 noise instead, and hence the wiki noted it as making 'fireball-level
noise'. This continued for 10 years until 58ad9d9fa3b, which accidentally
muted it while trying to make Irradiate silent.

This commit restores Devastator to its intended 7 noise per hit.

--------------------------------------------------------------------------------
5b5bac981a | advil | 2022-02-18 10:14:58 -0500

feat: a means of preventing player ghosts from held accounts
This is implemented a bit generally for maximum compatibility, but
because it uses the new `-no-player-bones` option, a held account will
not be able to start games with crawl binaries that do not support this.
This applies both to old versions and forks. I will cherry-pick the
options commit to a few stable versions back. Should have no impact on
servers that aren't using account holds.

--------------------------------------------------------------------------------
abffb2d2b2 | advil | 2022-02-18 09:28:53 -0500

feat: add a CLO to prevent writing player bones
This is not really intended as a player facing feature (it doesn't
prevent ghosts from being generated or anything like that), but as an
option to support community management features on webtiles.
Implementing as a separate commit to make it easier to backport.

--------------------------------------------------------------------------------
078de9bc30 | Nicholas Feinberg | 2022-02-17 19:49:28 -0800

Display irradiate damage in monster (ardl)

--------------------------------------------------------------------------------
501f64c9ef | Edgar A. Bering IV | 2022-02-18 04:39:55 +0200

feat: smooth early super ood cap and document
In des syntax the glyph `8` means depth * 2 + 4. A "super ood". The
glyph `9` means depth + 5, a "moderate ood". Both of these are
constrained in D:1-8 at present, the maximum vault OOD is depth * 2 over
D:1-8. This cap expires after D:5 for `9`, but continues to impact the
meaning of `8` until D:8.

The result is that from D:8 to D:9 there's a large jump in difficulty of
vaults. This commit smooths things, so that the additive term goes up
by 1 for each floor afte D:8 until reaching its full value by D:12 (at
which point `8` means max depth since the cap of D's OOD table is 27).

--------------------------------------------------------------------------------
baf749a769 | CipHuK | 2022-02-16 19:39:45 -0800

Fix: Don't warn on trying to summon rPois allies
This is quite fragile, but maybe it's less annoying than
the alternative.

It'd be good to do the same trick for toxic bog and fliers.

[Committer's note: did various cleanup and fixes.]

Closes #2424.

--------------------------------------------------------------------------------
189f89ecda | advil | 2022-02-16 17:53:56 -0500

fix: check webtiles db flags more consistently and act on them
This improves the handling of using the cli to change the ban/hold state
of players who are currently logged in. The main change to db access is
that the flags are updated when starting a game, and changes (in either
direction) should take effect immediately. To get this to work I had to
improve some of the logout handling (which previously relied on a
reload, and couldn't be triggered from the server). Hopefully the I/O
cost of this extra db check on I/O-bound servers isn't impactful, we'll
see.

This commit also fixes a bug where a held account that tries to spectate
got the error info through the wrong message (well, the right one didn't
exist yet) causing the user/password boxes to reappear.

--------------------------------------------------------------------------------
613497d651 | advil | 2022-02-16 17:01:34 -0500

feat: add a cli command to list only account holds
In a real server in practice, the bans list can get pretty nsfw /
unpleasant to see. So it's useful to have a way to look only at account
holds for normal maintenance.

--------------------------------------------------------------------------------
dac63da4db | advil | 2022-02-16 15:39:14 -0500

fix: allow disabling yaml games definitions
Since these aren't templated on dgl setups, they are a bit of a pain to
deal with even if the goal is just to remove the default one from trunk
or prevent its installation. This commit provides another approach,
where you can set the directory to `None` and skip loading yaml game
definitions altogether.

--------------------------------------------------------------------------------
0523dad39a | gammafunk | 2022-02-16 11:55:29 -0600

fix: Add a missing vault definition and refactor
For bailey_polearm_vampire_castle_hellmonk, one of the vampire weapon
definitions was missing its vampirism ego, which the others all had.
Also reformat the monster definition, simplify NSUBST syntax, and align
indent.

--------------------------------------------------------------------------------
0a07039d5a | Nicholas Feinberg | 2022-02-15 21:23:51 -0800

Tweak branch entrance noise messages (Booper)
"Less far" is very awkward.

Closes #2427.

--------------------------------------------------------------------------------
6e81df9875 | Nicholas Feinberg | 2022-02-15 20:46:08 -0800

Fix an typo (FizzleBang)

--------------------------------------------------------------------------------
4b50743c59 | hellmonk | 2022-02-15 20:13:30 -0500

nerf vampire castle bailey

--------------------------------------------------------------------------------
37f86683bf | advil | 2022-02-14 18:34:46 -0500

feat: webtiles reload on SIGHUP
This is a long requested feature whose implementation is made more
tractable by the separation of config.py and the webtiles.config module.
I'd still definitely put this in the "experimental features" category.
It will probably go badly for at least some options, but I've tested it
on the account disable-type features I added recently, and it works well
for those. Game data reload looks to work fine but I haven't tested it
very carefully (e.g. no idea what would happen if someone is playing a
game that got removed, etc.)

The implementation is tied to an option and disabled by default, both
because I'm not sure how well it will work in practice, and because I
have the impression some dgl setups may have used SIGHUP to stop the
server at some point, and enabling this by default would break init.d
scripts.

--------------------------------------------------------------------------------
45d3ea808a | advil | 2022-02-14 18:11:52 -0500

feat: various account management enhancements
Nick restriction improvements:
* Allow defining a custom name check function in config. Some things are
  a bit easier to do this way than with a regex.

Two restricted registration modes:
* set `new_accounts_disabled` to disable new account creation
  altogether. This is a bit quick and dirty, and users currently don't
  get an error until they hit the submit button.
* set `new_accounts_hold` to allow new account creation, but mark any
  new accounts with an "account hold" flag. This flag:
    - prevents login via ssh, where relevant. (It just sets the ban
      flag, so messaging to players may be confusing..)
    - prevents the account's games from appearing in the lobby or being
      spectated.
    - prevents the account from using chat.
    - prevents the account from spectating altogether. (Of course they
      can log out and spectate as anonymous.)
    - Players with this flag can still play games.
    - This flag is implemented as a new dgamelaunch db flag. Since dgl
      itself hasn't added any flags in like 15 years, hopefully this is
      safe.

The account hold flags can be set and cleared via the wtutil.py command
line tool. I'd like to add an admin panel interface too, but that isn't
done. Ths flag, if set, has an effect even when the new account hold
mode isn't enabled, so it can also be used as a kind of soft ban if
someone is causing trouble in chat but for whatever reason isn't judged
to merit an outright ban.

--------------------------------------------------------------------------------
0f647bec9a | advil | 2022-02-14 09:38:39 -0500

fix: check ban flag for token logins
I think I didn't add this before because it is awkward to check at the
point of login without adding another db call. However, user flags are
collected from the db shortly after the point of checking the token, so
this is a perfectly workable point to check the ban flag again. (Some of
this code could perhaps be consolidated.)

--------------------------------------------------------------------------------
60f898f876 | advil | 2022-02-13 17:12:39 -0500

feat: more verbose new account logging
This information was accessible, but needed digging in the logs by
cross-referencing a socket, or digging in the db. I could see an
argument that the email value is better not reported in a logfile, but
I'm going to include it for now.

--------------------------------------------------------------------------------
80d8537514 | advil | 2022-02-13 17:11:19 -0500

fix: handle nonexistent accounts in ban checks
This was crashing on None values and therefore not displaying the "login
failed" message.

--------------------------------------------------------------------------------
25f29fbe20 | advil | 2022-02-13 15:18:29 -0500

fix: stabilize serpent of hell placement
The previous code was a bit of a pain to understand, and also seems to
have never been updated for pregeneration. This simplifies the
calculation, and restructures it to not rely on player exploration. It
is still entirely possible for hell end vaults to mess this up.

--------------------------------------------------------------------------------
88c9fad16d | hellmonk | 2022-02-12 23:37:05 -0500

Unthin early D loot
This was reduced as part of D:1 item gen changes but seems to have been
unnecessary. Taking this back up to prior levels.

--------------------------------------------------------------------------------
93358da72b | hellmonk | 2022-02-09 21:59:09 -0500

feat: Xom orb gift speech

--------------------------------------------------------------------------------
6187a340c9 | hellmonk | 2022-02-09 21:28:40 -0500

slightly nerf bailey_axe_minmay_hex_keep

--------------------------------------------------------------------------------
258763100d | hellmonk | 2022-02-09 21:26:26 -0500

fix floor tiles in a bailey

--------------------------------------------------------------------------------
1f87ffd4f4 | hellmonk | 2022-02-09 21:24:55 -0500

fix: Nightstalker stealth
Give 50 stealth at mutlevel 3 instead of 48.

--------------------------------------------------------------------------------
ee772dd00f | advil | 2022-02-08 10:38:20 -0500

fix: regularize confused self-attacks (perryprog)
Previously, there was basically one way where a monster could
accidentally hit itself while confused (with a number of other rare
special cases): if it targeted another monster, `mmov` would be reset
after the `fight_melee` call, and then the later there's an additional
1/6 chance for a self-attack. There's code that appears intended to
handle a similar player case in `_monster_move`, as well as a chance on
top of the monster rolling mmov as 0,0, but these were unreachable due to
variously an earlier batch of code that handles attacking the player,
and an early return if `mmov.origin()` is true. This commit regularizes
things to what appears to be intended. Further tweaks may be justified,
and in particular I'm not sure the purely random chance of
self-attacking is needed. After this commit:

2/3 chance of stumbling, with a 1/n chance of rolling 0,0 (n=habitable
spaces), and then a 1/6 chance of a self-attack. So *probably* rare
enough to be not worth kiting to get.

If the monster targets another monster, or (now fixed) the player: a 1/6
chance of a self-attack on top of the swing. Oddly (?), this doesn't
change energy and the monster always gets a swing for this case, so they
attack twice for the usual energy cost. As noted in the comments, I'm
interpreting this as a kind of slapstick effect. But it might be more
consistent if that 1/6 roll attacked themselves *instead* of the
intended target, not sure.

--------------------------------------------------------------------------------
debf4667c2 | advil | 2022-02-06 12:40:32 -0500

fix: don't crash on theft during EquipOnDelay
Hopefully the reference `equip` is ok in this case, but it seems to work
in testing and this is how EquipOffDelay handled it. Relevant crashlog:
https://crawl.project357.org/morgue/cpf86/crash-cpf86-20220206-105923.txt

--------------------------------------------------------------------------------
c37658a0fe | advil | 2022-02-05 15:34:50 -0500

fix: invert some mistaken transparency logic
This seems to be the opposite of what was intended in 7e0d850643. On top
of the wrong transparency logic, the fact that these vaults can get a
transparent tag added if they are used in vaults was generating false
positives in seed testing (where the transparent tag persists to a later
run). I'm not actually sure its great for the vaults layout code to
force-add `transparent` like that (even though I probably added it), but
I'm leaving that alone for now.

--------------------------------------------------------------------------------
01c6783841 | robertxgray | 2022-02-05 18:22:06 +0100

Merge branch 'master-upstream'

--------------------------------------------------------------------------------
f8c823261f | advil | 2022-02-05 10:38:52 -0500

fix: various dancing weapon death message issues
* give the "strangely unrewarding" message in the abyss (and other no-xp
  scenarios). Also applies to simulacra.
* Don't give a goldify message in the abyss (and other no-xp scenarios).
* Handle goldify better for a couple of spell special cases as well.

Also, add an explicit ASSERT in dancing weapon tile code based on a
recent crash report.

--------------------------------------------------------------------------------
03a7b78be7 | advil | 2022-02-04 14:47:43 -0500

chore: add a trunk reminder for the 0.28 tournament

--------------------------------------------------------------------------------
2e6bf50d99 | Nicholas Feinberg | 2022-02-04 08:16:33 -0800

Add Oozemancy ability tile (Sastreii)

--------------------------------------------------------------------------------
95d2506d3f | Nicholas Feinberg | 2022-02-04 08:02:31 -0800

Post-final changelog updates (Ge0ff)

--------------------------------------------------------------------------------
58af29d98f | gammafunk | 2022-02-04 08:48:45 -0600

Update the Debian changelog for 0.28
(cherry picked from commit c65acfa365c381bc93a5adae01e2246700b84dc4)

--------------------------------------------------------------------------------
da9a4e44c3 | gammafunk | 2022-02-04 08:48:32 -0600

Final 0.28.0 changelog
(cherry picked from commit 1f18f1326188bb30cc2e2468d6abd7c50934ed76)

--------------------------------------------------------------------------------
93cd696043 | gammafunk | 2022-02-04 08:48:19 -0600

Checkwhite
(cherry picked from commit 5a74557163c3c3b12ce7de0173ff567a5bd4a380)

--------------------------------------------------------------------------------
837932c90e | Edgar A. Bering IV | 2022-02-03 18:53:05 -0500

docs: update CREDITS.txt

--------------------------------------------------------------------------------
2c38d6c9ec | Kate | 2022-02-03 23:48:24 +0000

Fix a crash on Jiyva jelly spawns
Caused by damage from YOU_FAULTLESS (such as a guardian golem's clouds)
triggering a jelly to try and spawn with a dummy monster set as its foe.

--------------------------------------------------------------------------------
3050e97935 | Edgar A. Bering IV | 2022-02-03 15:03:58 -0600

tiles: jiyva oozemancy tile
Some slime wall in the invocations lozenge. Could use improvement.
Closes #2394

--------------------------------------------------------------------------------
ad4ee0f8b3 | RojjaCebolla | 2022-02-03 14:37:04 -0600

text: add descriptions to mutations.txt
for no-skill-training mutations
for Demonspawn cloud immunity
for Engulf and Noise Suppression
for various Ru sacrifice muts

[ Committer's note: Squashed and rebased, removed removed mutations.
  Closes #2391 ]

--------------------------------------------------------------------------------
66d9a3572a | RojjaCebolla | 2022-02-03 14:37:04 -0600

fix: a typo in the description of repulsion field

--------------------------------------------------------------------------------
d89ecb8dae | Edgar A. Bering IV | 2022-02-03 14:36:22 -0600

fix: tweak staff of Olgreb description
To make it clear it is used via the 'a' menu now. Closes #2400

--------------------------------------------------------------------------------
de281f79f8 | Edgar A. Bering IV | 2022-02-03 14:36:22 -0600

docs: update the manual

--------------------------------------------------------------------------------
c270d1dad5 | Nicholas Feinberg | 2022-02-03 09:05:12 -0800

Changelog tweaks

--------------------------------------------------------------------------------
c5fe22d4ff | Perry Fraser | 2022-02-03 07:45:21 -0800

fix: correct hint for stat increases per 6 levels
Change introduced in 03ef38a.

--------------------------------------------------------------------------------
85bba54663 | gammafunk | 2022-02-03 07:44:43 -0800

Update the changelog
Near final for 0.28.0, but probably more tweaks to this to come.

--------------------------------------------------------------------------------
1732ff48e7 | Edgar A. Bering IV | 2022-02-02 23:19:51 -0600

fix: default runrest ignore transformation ending messages
As reported in #2189 the default options repeatedly interrupt resting
for transmuters, and this is particularly noticable in the early game
when spell power is low. This commit adds a default ignore for all
transformation-expiring-soon messages and for transformation end
messages for all good forms.

Wisp, Bat, Pig, and Tree form still interrupt rest, as these are far
more likely for the player to want to rest off.

This commit does entail a tradeoff: it makes the experience smoother for
newer players in the early game at the expense of requiring a player who
wants to remain in a form while auto-exploring/auto-traveling to edit
their rc.

It's not clear to me that there's a way to easily satisfy both use
cases, someone will need to edit their rc. This change shifts the onus
to do so to what are probably more experienced players.

Closes #2189

--------------------------------------------------------------------------------
e854522c82 | Edgar A. Bering IV | 2022-02-02 23:19:51 -0600

fix: prefer foes for default inner flame target (12676)

--------------------------------------------------------------------------------
0c4cd36759 | Edgar A. Bering IV | 2022-02-02 23:19:51 -0600

fix: allow trog (and other divine allies) to spawn in clouds (12675)
Removes an ancient and undocumented hack to avoid placing divine allies
in particular in clouds (except with Xom). Since summons from other
sources can appear in clouds just fine, let's go with the simpler,
consistent approach here.

--------------------------------------------------------------------------------
81e803b10a | advil | 2022-02-02 23:42:39 -0500

fix: update some mac plist stuff
I have no idea why LSRequiresNativeExecution was previously being
ignored (the 0.27.1 release has this set and runs fine under Rosetta),
but as of the 0.28-b1 release artifacts, it is *not* being ignored and
this prevents it from running under Rosetta. I'm not sure why this was
even set in the first place.

I've also adjusted the minimum version field to what we actually build
for. Probably more values here need a pass, e.g. the bundle id is pretty
outdated.

--------------------------------------------------------------------------------
e7179d36cc | advil | 2022-02-02 21:01:04 -0500

fix: adjust mouse hover suppress timing (ebering)
This was mainly tested in firefox, which takes about 10-20ms to deliver
mouseevents to the menu after a scroll, so 80ms seemed nice and
conservative. However, in Safari, the timing seems to be more on the
order of 100ms. (Maybe it's intentionally delaying them if they result
from rendering rather than actual mouse movement?) I've upped this
timeout to 200ms. Even with a value that might in principle be
noticeable, I wasn't able to generate any intentional physical motion
that revealed the suppression when trying to use a mouse.

Unfortunately this change does make it a lot easier for the timeouts to
overlap, which a simple bool doesn't handle very well, leading to the
more involved approach here.

--------------------------------------------------------------------------------
1d65ae1bb4 | advil | 2022-02-02 16:01:02 -0500

fix: handle webtiles SIGHUP messaging differently
SIGHUP indicates that something killed the process. While this can
happen for various reasons, it mostly happens on some form of
disconnect. If the player is around to see this message (as in Mantis
11595), they probably hit the back button or something, and it's
misleading to describe this as a crash ("Unfortunately your game
terminated due to an error."). In any case, there's no crash report on a
SIGHUP. This commit adds a new message in client.js that'll require
caches to catch up, but until then the default case message is fine, and
prints the exit reason.

More or less resolves https://crawl.develz.org/mantis/view.php?id=11595

--------------------------------------------------------------------------------
b207118a1a | Kate | 2022-02-02 20:31:37 +0000

Reduce Wucad Mu's channeling effectiveness (atomjack)
The new formulae resulted in Wucad Mu scaling much more strongly than
intended, up to approximately a 99% chance to make spellcasting free at 27
Evocations skill. Ideally the formulae will be reworked in the longer term
to also make the effect scale better for regular orbs of energy at lower
skill, but in the meantime reduce the ceiling by counting Wucad Mu as 1.5
sources of channeling instead of 2, and removing the stacking effect of
multiple sources on the backfire rate.

--------------------------------------------------------------------------------
3f3a666523 | advil | 2022-02-02 15:14:16 -0500

fix: further issues with non-casting monster descriptions
df0a5da549d686d didn't get this case right

--------------------------------------------------------------------------------
139f01a7f8 | advil | 2022-02-02 15:14:16 -0500

fix: scroll more sanely in webtiles
Page up/down was overshooting. This commit seems to bring it to a better
place (although the interaction with the shade is messy). I'm not sure
why this code was previously commented, as far as I can tell (aside from
compensating for the shade) it was correct, so hopefully there isn't
some problem I didn't find.

Resolves https://crawl.develz.org/mantis/view.php?id=12193

--------------------------------------------------------------------------------
28f407b12d | Edgar A. Bering IV | 2022-02-02 14:04:40 -0600

fix: inform the player that using yaras on fedhas summons doesn't work (12670)

--------------------------------------------------------------------------------
0a91294c2c | Edgar A. Bering IV | 2022-02-02 14:03:14 -0600

fix: don't double prompt for monsters with Yara's (12669)
Using stop_attack_prompt and firing a tracer is overkill. The former
uses a better verb and works well with modern hitfuncs. The latter
includes a self-damage check. It would be great if the former could be
converted but that's not a small task and is likely to introduce a bunch
of new double prompt bugs. For now I've gone with checking for
self-damage separately.

--------------------------------------------------------------------------------
9d6eb31067 | Edgar A. Bering IV | 2022-02-02 13:47:22 -0600

fix: account for guile in ctouch display (dilly)

--------------------------------------------------------------------------------
2e2478e390 | advil | 2022-02-02 14:18:54 -0500

fix: handle a few more numpad keys in menus
Resolves https://crawl.develz.org/mantis/view.php?id=12641 (and a few
others that I spotted).

--------------------------------------------------------------------------------
df0a5da549 | advil | 2022-02-02 13:59:38 -0500

fix: handle webtiles spellset parsing a bit better
The webtiles code replaces the spellset in a monster description body
with a placeholder. Previously it did this by regenerating the full
spellset string and doing a simple `replace_all`. This obvious relies on
deterministic behavior for `describe_spellset`, something not true of
spells that have some random elemental coloring.

This webtiles code could probably use some major refactoring, and
possible the spellset should be separated out at the level of
monster_info fields, but to fix this for release I've done something a
bit simpler (and hackier). When generating a spellset description for
webtiles, the monster description code inserts some delimiters, and
these delimiters are used to insert the placeholder.

I've also inserted some code to explicitly detect this sort of bug both
when inserting the placeholder, and in the webtiles js code that was
going wrong as a result of this bug. (For the latter, the colour string
markers that remained in the body were getting parsed as tags by the
browser, or maybe jquery, and wiping out the div where the real spellset
was supposed to be inserted.)

--------------------------------------------------------------------------------
a2763057c1 | gammafunk | 2022-02-02 10:45:19 -0600

feat: Updates to octagon-themed float vaults
For minmay's set of octagon vaults, namely `minmay_shoctagon`,
`minmay_roctagon`, `minmay_firetagon`, and, yes of course,
`minmay_coctagon`, updates to placement, monster sets, loot, and syntax.

These vaults all have a lower-tier monster set that places 8 monsters
on-average along with a single out-of-depth "boss" monster, but the
monster sets don't change much with depth. I've updated the maps to have
appropriate monsters for earlier Dungeon (either D:10-D:12 or D:12-D:13,
depending on the map), late Dungeon, Elf, and Depths. For Depths, all
vaults can now place on every level of that branch. I've replaced
`ident:type` with `ident:all` in all cases.

Simplify the loot/monster placement logic to not have a rare chance to
add a lot more of either monsters or loot. Nearly doubling the loot
doesn't work well in a vault where the loot is already generous and
every loot item is thematic. Remove these rare substitutions in the
common setup function. Tweak the NSUBST to place a few more monsters so
we keep the same average.

For the unrand weapon item, follow the lead of `minmay_coctagon` and
have thematic randart weapons of the same weapon class but of subtypes
different from the unrand. This way we're not placing e.g. the Arc Blade
100% of the time, like a guarded unrand vault. Also add to these vaults
some other thematically appropriate unrands with randart alternative to
these vaults in cases when unrands exist.

--------------------------------------------------------------------------------
d243af8c8e | gammafunk | 2022-02-02 10:45:00 -0600

feat: Update a vampire-themed float vault
For `lemuel_vampire_tower`, revamp the vault to have better monsters
that scale with depth of placement.

We remove the down-hatch, since it served little purpose other than
limiting placement. Move the guaranteed altar to where the down hatch
was, and put a superb_item on the altar to go along with the other two
loot items. Allow the vault to place on the final levels of Dungeon,
Depths, and Crypt.

Rework the monster tiers to follow a more logical progression, using
monsters appropriate for placement depth. For the vampire boss, place a
vampire for earlier Dungeon, upgrading to a vampire knight, with a
placement of either Jory or a vampire knight decked out with thematic
equipment of high quality for Crypt and Depths.

--------------------------------------------------------------------------------
292b7dfcfe | gammafunk | 2022-02-02 10:29:20 -0600

feat: Update a Depths float vault
For `gammafunk_depths_water_palace`, update the monster list to be more
current with the Depths roster. Instead of solo water elementals at
certain locations, use merfolk exclusively, but have a chance for two of
these locations near the central chamber entrance to be elemental
wellsprings. Reglyph a bit as necessary.

--------------------------------------------------------------------------------
727057aadf | gammafunk | 2022-02-02 10:29:20 -0600

fix: Wrap a DES line

--------------------------------------------------------------------------------
10b4fd4ada | gammafunk | 2022-02-02 10:29:20 -0600

feat: Update a Depths float vault
For `lightli_eight_chambers`, make the monster sets more appropriate for
Depths, removing the orc and poison themed sets, which don't really have
appropriate monsters, replacing them with earth, tengu, and spriggan
themed ones. Revamp the other sets to be more coherent in terms of
threat level.

--------------------------------------------------------------------------------
c803637380 | gammafunk | 2022-02-02 10:29:20 -0600

feat: Update a Depths float vault
For `hangedman_six_sided_sadism`, update the monster lists to remove
some of the less interesting monsters from outside the branch. Use an
appropriate SUBST to thin out two of the monster sets instead of having
`nothing` in the monster list.

--------------------------------------------------------------------------------
f436032661 | gammafunk | 2022-02-02 10:29:20 -0600

fix: Clean up syntax of a float vault

--------------------------------------------------------------------------------
05b2614ef2 | gammafunk | 2022-02-02 10:29:20 -0600

feat: Update a fire-themed float vault
For `lemuel_flame_loot_2`, replace teleport closet areas with simple
lava. The vault requires flight or translocations to reach, and said
closets didn't add anything to the vault aside from requiring
`no_tele_into` masking.

Add depth scaling, adding more monsters and loot as placement depth
increases. Use two tiers of fiery monsters, with a single boss monster
and a lower tier of support monsters. Allow fire monsters to generate as
level lava spawns, but turn off level monster gen elsewhere in the
vault.

--------------------------------------------------------------------------------
0f297cac12 | gammafunk | 2022-02-02 10:29:20 -0600

feat: Update placement of a float vault
For `onia_ninara_swampy_vault`, don't place this vault in Depths, since
there's not an appropriate set of Swamp-themed monsters that are
appropriate difficulty for Depths. Refactor syntax and glyph usage.

--------------------------------------------------------------------------------
695ac6beb5 | gammafunk | 2022-02-02 10:29:20 -0600

feat: Update a troll-themed float vault
For `lemuel_troll_bridge`, make the monsters scale better with depth.
For later Dungeon, upgrade yaks to death yaks and upgrade trolls. For
Depths, we replace the timid yak genus monsters with wizards, since it
seems like wizards would be scared of being eaten by trolls. Place fewer
monsters at earlier depths, since 10 trolls guaranteed on D:9 is a
little much.

--------------------------------------------------------------------------------
14386d3767 | gammafunk | 2022-02-02 10:29:19 -0600

feat: Update a Depths mummy-themed vault
For `lemuel_minitomb`, update the vault to monsters that are appropriate
challenges for Depths, and revamp the appearance, layout, and loot.
Don't use plain mummies, using spectral things at the low end, along
with guardian mummies and mummy priests to go along with the single
royal mummy. Replace some of the gold in the final chamber with super
and star item loot, which is a more meaningful award. Use tomb-theme
wall and floor tiles, and make the layout more favorable to monsters in
the final two chambers. Allow the vault to place in all of Depths and
Crypt.

--------------------------------------------------------------------------------
6705b9cb7d | gammafunk | 2022-02-02 10:29:19 -0600

feat: Update a Depths float vault
For `minmay_skeletal_surprise`, use a better substitution setup and add
more Depths-appropriate nasties monsters. Namely mix in a small chance
for ancient/dread liches, keeping averages the same. For the nastier
monsters that place in the gold rooms, place a superb or star item
instead of just more gold.

--------------------------------------------------------------------------------
e7567d4e05 | advil | 2022-02-02 11:07:07 -0500

fix: fix a rounding issue in webtiles bars
This fixes the specific issue reported, but I couldn't swear that there
are still no overflow issues. What was happening is that at the exact hp
values reported in the issue, the main bar was 96.88% and the decrease
bar ended up as 3.13%.

Resolves #2384

--------------------------------------------------------------------------------
69f475c709 | advil | 2022-02-02 10:29:52 -0500

docs: changelog updates
Mostly editing/expanding UI/options bullet points

--------------------------------------------------------------------------------
72cdf85f72 | wheals | 2022-02-02 10:51:39 +0200

fix: ASSERT tripped with targeted destruction cards

--------------------------------------------------------------------------------
62a80824bf | Edgar A. Bering IV | 2022-02-01 22:56:19 -0600

fix: always give a message when a net trap fails to trigger
For clarity.

--------------------------------------------------------------------------------
9fc6a9d840 | Nicholas Feinberg | 2022-02-01 15:57:34 -0800

Remove a reference to exploration traps
C.f. 86c161e70f1664227c2cfe580500b2e3d2ef0146.

--------------------------------------------------------------------------------
89e12c0570 | Nicholas Feinberg | 2022-02-01 09:42:45 -0800

Fix toxic bog XP (Oneirical)
It passed you->as_monster() into the temp map marker code (which is null),
instead of the expected MID_PLAYER.

--------------------------------------------------------------------------------
8eb35efe60 | advil | 2022-01-31 22:58:10 -0500

fix: eliminate a bad memory access
When the player had no wieldable inventory items, toggling the show all
mode could lead to the deleted inv_header being modified. Write a custom
clear() function for this class that explicitly sets nullptr. (Some day
it would be nice if Menu classes used shared_ptrs or something...)

--------------------------------------------------------------------------------
581ba40fa7 | advil | 2022-01-31 16:16:31 -0500

docs: more color diagnostics for terminal
These are intended to flag to putty users using certain options that
their terminal is misconfigured. (I have *absolutely no idea* why putty
is misrendering either of these. It's not impossible that at least the
two block one is a low-level bug in our curses code?

--------------------------------------------------------------------------------
a1db9ad13e | advil | 2022-01-31 16:16:31 -0500

fix: color spell letters by utility in more menus
This was already done in the memorize menu. It looks more consistent
overall, and also draws less attention to whatever is going on with
putty's bg color swapping in blink_brightens_background mode.

--------------------------------------------------------------------------------
2ed287c6d8 | advil | 2022-01-31 16:16:31 -0500

fix: indicate compatibility mode for putty in more cases
This was getting suppressed for players using
blink_brightens_background, but the results of this mode are (currently)
kind of odd, so we need to print the info about compatibility mode even
then. Wording tweaked slightly in consequences.

--------------------------------------------------------------------------------
b1d7ae0460 | wheals | 2022-01-31 20:16:04 +0200

fix: Numpad '*' and '+' in newgame menu (#12666)

--------------------------------------------------------------------------------
ccf83627c4 | wheals | 2022-01-31 19:57:20 +0200

feat: allow closing the webtiles chat with F12 (Yermak)

--------------------------------------------------------------------------------
190321e9dd | advil | 2022-01-31 12:21:03 -0500

fix: restore item class hotkeys to id menu (Lici)
No guarantees this behavior will stay forever, but it was
unintentionally remove in fc454544111 so I'm restoring it for now.

--------------------------------------------------------------------------------
0a9fdd57f5 | advil | 2022-01-31 11:43:50 -0500

fix: menu selection for `prompt_invent_menu`s (gressup)
These menus do manual keyhandling (which should eventually be
refactored) and so CK_ENTER needed its own manual handling here. Affects
most noticeably fire menu, but maybe all sorts of other misc ones.

--------------------------------------------------------------------------------
93984085d6 | wheals | 2022-01-31 18:28:56 +0200

fix: select all menu items when pressing a type shortcut
Because the second iteration of the loop did not have the
MF_SINGLESELECT check, using a non-primary hotkey to select things you
had already scrolled past did not reliably select all items.

The best way to reproduce this was to have several weapons in your
inventory, scroll down past them on the (d)rop screen, and then press ).
The topmost weapon would not be selected. (More specifically, I suspect
it was being selected twice, leading to it being deselected.)

--------------------------------------------------------------------------------
238b2ceb19 | wheals | 2022-01-31 18:01:49 +0200

fix: time out drain when returning to a level (#12663)
Wasn't updated when monster drain was made temporary.

--------------------------------------------------------------------------------
0aac2aca22 | wheals | 2022-01-31 17:57:46 +0200

fix: easy_floor_use when your (sub-)inventory is empty (#12667)

--------------------------------------------------------------------------------
171a82f519 | wheals | 2022-01-31 17:49:07 +0200

fix: restore spacebar behaviour in autoexplore autopickup prompt (#12671)

--------------------------------------------------------------------------------
15a0a6fec6 | wheals | 2022-01-31 17:19:41 +0200

fix: standardize penance piety display (#12565)
Webtiles showed the piety rank even under penance, but console/local
tiles did not.

--------------------------------------------------------------------------------
236b832b77 | wheals | 2022-01-31 17:14:28 +0200

fix: scroll of fear success chance (#12665, Yermak)
The targetter did not properly reflect the power cap. The same bug
probably also affected Anguish and Discord.

--------------------------------------------------------------------------------
9887b6b090 | wheals | 2022-01-31 17:04:59 +0200

fix: <enter> on the spellcasting menu casts the last spell again
This was broken for both menu_arrow_control = true and false. The
previous behavior was restored if arrow control is off; if arrow
control is on, the menu automatically defaults to hovering over
the last-cast spell, which means that pressing enter will cast that
spell.

Either way, the last-cast spell is shown with a '+' after the hotkey
instead of a '-'. This does not restore the behavior when the player
knows only one spell; that was mostly for newbies who are presumably
keeping the default of true for arrow control.

--------------------------------------------------------------------------------
7f48f510a0 | Nicholas Feinberg | 2022-01-30 12:30:15 -0800

Fix (?) orb of wrath uselessness check
Match the call to go_berserk() in melee-attack.cc triggered by you.angry()
(which is the effect of an orb of wrath).

--------------------------------------------------------------------------------
e4388f8e44 | advil | 2022-01-30 12:28:15 -0500

fix: correct shopping list menu more lettering
This was doing the wrong thing on letters > 'z', which resulted in
invalid UTF-8 and prevented the menu message from ever getting to the
webtiles client.

Resolves https://crawl.develz.org/mantis/view.php?id=12672

--------------------------------------------------------------------------------
a79f92ac9c | Nicholas Feinberg | 2022-01-29 14:47:47 -0800

Remove explicit fix slot support
Unused since bf516ccc1f22f3449c9dce1c7828d97747f247d2 (2007) and
unlikely to be used in future.

--------------------------------------------------------------------------------
bf593b16ee | Nicholas Feinberg | 2022-01-28 17:25:33 -0800

Fix negative energy mutation description

--------------------------------------------------------------------------------
e65d7fc6d1 | RojjaCebolla | 2022-01-28 19:25:24 -0500

fixup! Add descriptions for a few resistance mutations
continuing to noodle on this.

advil: "add explicitly any relevant abbreviations"

--------------------------------------------------------------------------------
e889dcbc7e | RojjaCebolla | 2022-01-28 19:25:24 -0500

Add descriptions for a few resistance mutations
Filling some holes in mutations.txt
--------------------------------------------------------------------------------
ef7f3e67aa | advil | 2022-01-28 12:46:25 -0500

docs: a few more species mutation descriptions
Also, tweaked hop to have more detail. Some of these touch on related
fakemuts that wouldn't otherwise be currently described.

--------------------------------------------------------------------------------
9e681642b6 | Nicholas Feinberg | 2022-01-28 09:28:44 -0800

Tweak Mlioglotl
Make him demonic holiness to better match player expectations (re
vulnerability to holy word), and make his Lugonu abilities priestly
rather than magical.

--------------------------------------------------------------------------------
b194023da8 | advil | 2022-01-28 11:48:09 -0500

fix: don't list removed muts in describe debug code
Also, put a static inside its only direct consumer.

--------------------------------------------------------------------------------
2e94016dc0 | Implojin | 2022-01-28 11:40:34 -0500

fix: lowercase help lookup on ctrl-o
The keybinds shown on ctrl-o were outdated, this aligns it with how
help lookup currently works.

--------------------------------------------------------------------------------
60158a2511 | Nicholas Feinberg | 2022-01-28 07:50:19 -0800

Add missing dj species mut descs (advil)

--------------------------------------------------------------------------------
13803eac2f | advil | 2022-01-28 10:44:29 -0500

feat: debug code to display muts without a description
This is pretty spammy so not enabled by default. I've also restored the
debug build `validate_mutations` call to the describe mut menu, if this
was intentionally removed (it's a bit spammy too) it could be gated
behind the new DEBUG_MUTATIONS define.

--------------------------------------------------------------------------------
59a240f8a5 | advil | 2022-01-28 10:22:38 -0500

fix: adjust some casing in mut short names
These short names are being used as popup titles for `A` screen popups,
and given this it is better to systematically uppercase relevant
abbreviations. Because this field was designed for the % screen list,
there was mostly a lowercase convention for these fields (with a few
exceptions), but it doesn't seem to matter in any technical way if this
casing is adjusted; db lookup is case insensitive. They look ok in the
short list too, and a few things were already cased there.

(Also because these have been designed for brevity, they often don't
work well as titles, and I think in the long run it may be good to have
an explicit "title" field of some kind in this data that allows writing
a better one. But that's a bit of a project.)

--------------------------------------------------------------------------------
e4976b13b8 | advil | 2022-01-28 10:00:28 -0500

fix: don't show (level 1/1) in mutation descriptions
This seems to me more confusing than useful, I guess one might argue
with this though.

--------------------------------------------------------------------------------
a75d3d97ab | advil | 2022-01-27 20:52:29 -0500

fix: update SECURITY.md
Someone needs to remember to do this again in a few weeks.

Resolves #2107

--------------------------------------------------------------------------------
08fb2288ea | advil | 2022-01-27 20:45:25 -0500

fix: quivering ammo from item description
This call needed to correctly handle the ammo quiver (and the inscribe
check), and to avoid code duplication I pulled similar relevant code out
of ActionSelectMenu into its own call. Overall, this whole setup could
possibly use some simplification at this point, it was written to
support arbitrary numbers of quivers but I am not sure that's ever going
to be realistic.

Resolves #2257

--------------------------------------------------------------------------------
022ca4c890 | advil | 2022-01-27 14:15:01 -0500

fix: suppress mores during describe actions
This prevents graphical glitches in console and a hard-to-spot key input
prompt in webtiles.  Just suppressing the more is not an ideal solution
as it can make you miss force_mores, but I'm not sure there's an
alternative that wouldn't take some major refactoring. (I could imagine
an RAII object that instead of suppressing output, collected it in a
message tee and showed a popup if there was a force_more. But this is
definitely in non-freeze territory.)

Resolves #2232

--------------------------------------------------------------------------------
0446c0dae4 | advil | 2022-01-26 23:07:21 -0500

fix: use menu api instead of deleteAll in a few menus

--------------------------------------------------------------------------------
068bf27d47 | advil | 2022-01-26 23:00:18 -0500

fix: reset scroll on spell search
If the scroller was sufficiently far down, a search could result in no
menu lines visible in console because the scroll didn't get adjusted. I
haven't quite figured out why the Scroller m_scroll sanitization, which
appears to be correctly implemented, doesn't kick in until a manual
scroll. Maybe there's a missing _allocate? In any case, this commit
explicitly manages the scroll for spell search, trying to keep it on the
same spell if possible, but otherwise resetting to the top.

Resolves #2303

--------------------------------------------------------------------------------
a859fcf985 | advil | 2022-01-26 16:57:37 -0500

ci: reset cache for mingw builds
Or rather, change the cache key, which is apparently the way to do this
right now. (The old cache gets erased if not accessed in 7 days.)

--------------------------------------------------------------------------------
b8ed39c57d | Alex Jurkiewicz | 2022-01-26 16:16:26 -0500

Change return signature for set_rc
Return boolean success.



Also add a missing import used in on_message.



Fixes #2382.
--------------------------------------------------------------------------------
b0e57e52b4 | advil | 2022-01-26 12:43:07 -0500

fix: explicitly set UI_NORMAL before load_level in webtiles
Messaging from portals happens during load_level, but on new char
creation, UI_CRT is set by the character selection popups, and wasn't
cleared in webtiles until load_dungeon. Since this state change is what
is required for the initial show() call to the `normal` div in webtiles
for this case, a more triggered during load_level would still wait for
input but with the entire game div invisible. This is what led to the
delver bug when landing on a level with a portal. Arguably it is also a
bug that this messaging happens so early on initial load, but this seems
extremely hard to change (marker init can't be moved later without what
I seem to remember is complete disaster, so it would require deferring
marker init messaging somehow).

Resolves #2318, mantis 12343.

--------------------------------------------------------------------------------
53e83337bc | Alex Jurkiewicz | 2022-01-26 09:37:48 -0500

Use append for lists, not add
Fixes #2380.
--------------------------------------------------------------------------------
12fcac58f8 | Nicholas Feinberg | 2022-01-25 18:03:19 -0800

Fix: clarify Conjure Flame description
Try to explain how a rather complex spell works, without misleading
newer players into thinking that re-casting the spell is the only way
to get the embers to burn.

--------------------------------------------------------------------------------
f2d273c862 | advil | 2022-01-25 15:51:46 -0500

fix: add a missing from future import (TZer0)

--------------------------------------------------------------------------------
94f35f3178 | advil | 2022-01-25 13:28:47 -0500

docs: remove a reference to CRD in the release guide
since we haven't been doing that in as long as I've been a dev.

--------------------------------------------------------------------------------
f1a7530480 | advil | 2022-01-25 13:04:53 -0500

fix: reenable * in UseItemMenu
Probably broken in 673f3e5d658

--------------------------------------------------------------------------------
87a8dc699f | advil | 2022-01-25 12:57:32 -0500

fix: make the unwield menu item usable
Previously, this menu item was basically cosmetic, and didn't have a
hotkey, preventing it from being hovered (in local tiles at least). This
commit turns it into a real menu item that can be selected. While I was
at it I improved some of the visuals of this item -- it uses
form/species custom unarmed attack strings (though a lot of forms simply
prevent this menu altogether), and indicates visually if unarmed is
currently chosen.

To match previous behavior, this menu starts with the first real item
selected. We'll see if this is confusing or not.

--------------------------------------------------------------------------------
6d66802b9f | advil | 2022-01-25 11:22:10 -0500

fix: improve all items known case in KnownItemsMenu
This fixes up the keyhelp to not show the toggle key, and absorbs the
'-' keypress rather than just exiting the menu. This code needs some
work still...

--------------------------------------------------------------------------------
2dc3af7c02 | advil | 2022-01-25 11:12:37 -0500

fix: adjust local tiles mouse hover behavior
* get hover switching section to work in use and quiver menus, bringing
  these in line with webtiles
* with arrow selection on, don't lose hover on MouseLeave
* ignore mouse click keycode except on noselect menus. (Generally, this
  keycode only seems to happen when clicking outside of a window, which
  is extra confusing for anything else.)
* don't draw hover for MF_NOSELECT menus, it makes the user think they
  can click and do something

--------------------------------------------------------------------------------
9123634e07 | advil | 2022-01-24 20:39:05 -0500

feat: quiver menu lettering improvements
A long-time complaint about the newquiver menu is that the hotkeys are
fairly arbitrary. This is challenging to resolve, since things that
appear in this menu come from items, spells, and abilities, and there
are likely to be collisions past the most basic of characters. A lot of
players with this complaint have their preference for which lettering is
the most important (I think that team item is the most vocal, because
the old quiver menu just used item lettering), but these can't be
mutually resolved.

This commit attempts to use some of the fancier technology from
UseItemMenu to resolve this problem. It adds a new mode to the quiver
menu that focuses in on one of the three categories and uses the
lettering from that category; the UI improvements from UseItemMenu
hopefully make it easier to switch between the categories (e.g. arrow
keys move smoothly between them, mouse hover changes categories*, and
there's a toggle key as well. Focus mode on/off is implemented via a
persistent option, so while you can manually set the rc option, it just
remembers whatever mode you last had it in. Within a single play session
it also remembers the section while in focus mode. So a typical use case
for someone who doesn't quiver anything except items would be to hit !
to put the menu in focus mode, and not think about it ever again (until
they upgrade, I suppose).

This commit also involved a bunch of related fixes for stuff in Menu and
UseItemMenu, as well as moving the quiver menu keyhelp to the footer.

[*] n.b. there's been a regression somewhere along the line where this
stopped working on local tiles, I'll deal with that separately.

--------------------------------------------------------------------------------
cc9c2818f3 | advil | 2022-01-24 19:40:21 -0500

fix: guard against potential recursion in UseItemMenu
Discovered while working on the quiver menu. I think this actually
prevents some hover glitching at the moment.

--------------------------------------------------------------------------------
508f987c07 | advil | 2022-01-24 17:31:20 -0500

fix: fix some webtiles color string bugs
This code didn't handle hand-generated nested color strings very well.
More exactly recreate the stack algorithm from the crawl binary (still a
bit different though). Should now work for any amount of foreground
nesting, at least.

--------------------------------------------------------------------------------
c496ab42f3 | advil | 2022-01-24 13:52:44 -0500

fix: correct exit logic for ability quiver submenu (Aliscans)

--------------------------------------------------------------------------------
f64c0c316f | advil | 2022-01-24 13:52:43 -0500

feat: quiver menu section headings
This is an old wishlist item and now that the cycle_header call and
support code exists, becomes a lot more practical.

Some minor other visual improvements to this menu as well.

--------------------------------------------------------------------------------
cc732e7c34 | advil | 2022-01-24 13:01:45 -0500

refactor: clean up some messy quiver menu code
Refactor a bunch of checks into the menu class, improve api for checking
whether there are actions to quiver. Should not change behavior.

--------------------------------------------------------------------------------
283549b12f | advil | 2022-01-24 11:24:54 -0500

fix: fix use item section toggle with arrow control off

--------------------------------------------------------------------------------
673f3e5d65 | advil | 2022-01-24 11:05:06 -0500

fix: clean up some messy use item menu code
This simplifies the use item menu so it doesn't have to entirely rebuild
the menu every time the section changes. Rather, this commit adds an
enable/disable toggle at the MenuEntry level that suppresses all hotkeys
when disabled, and then changes this for relevant entries when switching
sections. It also generalizes the section-switching code using the newer
cycle_headers pattern.

In addition, a minor visual tweak: indent non-hotkeyed items in these
menus so that there horizontal position doesn't change on section
change.

--------------------------------------------------------------------------------
55149d5790 | advil | 2022-01-24 11:05:06 -0500

fix: default `easy_floor_use` to false
This option applies the action (read, wield, etc) to the floor item
immediately on pressing ',' in the relevant menu if there is exactly one
item of the right type on the floor. This behavior is really
inconsistent with how menus work in general, and with what ',' does when
there's more than one item. I'm keeping the option since it's been a
default for a very long time. If people really don't like this new
default I'm open to doing something further; one idea might be that if
there's one item, assign it an actual (non-comma / non-letter) hotkey.

--------------------------------------------------------------------------------
f728b707aa | Perry Fraser | 2022-01-23 13:46:06 -0800

fix: set FTILE in kennysheep_arrival_seaside stair

--------------------------------------------------------------------------------
c66546352e | advil | 2022-01-23 11:10:02 -0500

fix: initialize a bool (Goratrix)
This was resulting (depending on random local circumstances) in the
first viewmap command sometimes being dropped spuriously.

--------------------------------------------------------------------------------
6e7a31e4fc | advil | 2022-01-23 10:58:36 -0500

fix: map touch input backspace to esc
The lack of esc is one of the more immediate issues for using an
on-screen keyboard, and using backspace seems like a workable solution.
Backspace is prominent on these any touch virtual keyboard I've seen and
would otherwise just go (almost) unused on touch input (in fact sending
a fairly useless ctrl-h, which maybe needs a webtiles workaround in
general). This only affects key input events handled via the mobile
input button, so doesn't affect normal play or touch devices with
physical keyboards.

--------------------------------------------------------------------------------
e5bbfea7ee | advil | 2022-01-23 10:19:52 -0500

feat: use DESC_INVENTORY_EQUIP for carried stash search results
Suggestion from u/SvalbardCaretaker

--------------------------------------------------------------------------------
ee65da1d57 | advil | 2022-01-23 10:06:59 -0500

fix: select first travelable item in stash search
Some players use this menu as a quick shortcut while collecting items
that they are sure already exist, and I guess having to hit ','+enter is
too much work. This lets enter immediately travel to the first
travelable item.

I'm undecided as of yet what to do with the lettering: I respect that
many players have some muscle memory for ctrl-f a, but on the other
hand, I don't think the fact that a kind of dodgy UI decision is
enshrined in people's muscle memory is a good reason to keep it. I'm
definitely opposed to making items on the current position fully
unselectable in this UI, as was done (for carried items) in response to
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=20374. This makes
the whole UI less usable and there's a ton of players who don't need or
want the reversion that was (rather unconstructively) advocated for in
that old thread.

--------------------------------------------------------------------------------
820543e53a | advil | 2022-01-22 19:38:17 -0500

fix: enable feature actions in full square describe
Under this one code path (which happens with multiple describable things
on the same square) a bool was not correctly applied.

--------------------------------------------------------------------------------
70179d601d | advil | 2022-01-22 19:22:08 -0500

fix: further fix describe item actions (perryprog)
inventory items can't be expected to have a valid item index relative to
env.items.

--------------------------------------------------------------------------------
c30f734a66 | advil | 2022-01-22 16:14:06 -0500

fix: remove debug code

--------------------------------------------------------------------------------
86ee99c729 | advil | 2022-01-22 15:52:08 -0500

fix: parens

--------------------------------------------------------------------------------
d457d2bfb3 | advil | 2022-01-22 15:42:00 -0500

fix: expand item index check from b35b39474d43
Reading and quaffing shouldn't work for this case either (and will
crash).

--------------------------------------------------------------------------------
b35b39474d | advil | 2022-01-22 15:11:05 -0500

fix: prevent pickup of non-env items via describe actions
If an item_def is otherwise valid but is a copy of a real item in
`env.items`, and the player is in the right position, this code would
allow trying to pick it up and then crash. Add a check for a valid
index. (The logic here is patterned off of `invalid_monster_index`.) The
immediate effect is on descriptions accessed via stash search, and it
would be better to actually allow the (g)et to work in this case, but it
may be somewhat unavoidable that stash search is working with copies, so
getting (g)et to work will be a bit of a project.

--------------------------------------------------------------------------------
a0c2dbb3aa | advil | 2022-01-22 14:54:55 -0500

fix: reentrant calls to show_map via descriptions
When viewing a staircase description, you can now use ]/[ in the
description popup to go right to the map view on the other side. Since
description popups are possible in `X` view, this could lead to weird
stacking of map view UIs that were really not designed to happen. There
was also a (possibly independent, but I'm not entirely sure) set of bugs
where exiting the describe popup wasn't handled right and made the
player travel to the stair location. This commit fixes all of this by
refactoring `show_map` to allow graceful reentry without creating a new
map view layer. Well, the behavior is graceful, the code isn't, but
it'll do for now.

--------------------------------------------------------------------------------
af8930e228 | nlavsky | 2022-01-22 10:52:22 -0600

fix: unmute the horn of Geryon
"A hideous howling noise" was a lie: the horn has never produced

a sound.



This commit gives the horn a proper noise.
--------------------------------------------------------------------------------
050a50673c | Edgar A. Bering IV | 2022-01-21 15:26:51 -0600

fix: turn down wretched stars corrupting pulse a bit more
Temporary mutations were turned down as they don't expire while in the
Abyss. Even with that change, a handful of wretched star encounters
could quickly add up. A handful of temporary mutations is an interesting
challenge to overcome; receiving all of them gets to be a bit much.

This commit reduces the casting frequency again, and also makes the
chance to apply a temporary mutation scale down with the number of
temporary mutations.

--------------------------------------------------------------------------------
3197508d1c | advil | 2022-01-21 15:42:09 -0500

fix: autocreate dgl status file dir (Pinkbeast)
On default settings, this is automatically created on login or account
creation, but until this happens a lot of warnings are generated by the
timeout. I couldn't think of a good reason not to just create it if
needed.

--------------------------------------------------------------------------------
8b1c90781f | advil | 2022-01-21 15:14:35 -0500

docs: update webtiles docs (WSL, other tweaks)
* Incorporate Pinkbeast's discussion from:
http://crawl.montres.org.uk/wsl-webtiles.txt.
* Restructure prerequisites vs actually running the server
* Note about UTF-8
* Other editing

--------------------------------------------------------------------------------
daab1c2f9b | Nicholas Feinberg | 2022-01-20 13:47:34 -0800

Increase flam.wav damage by 20%ish
dde70e7af44 was a well-deserved nerf, but overshot somewhat.
Let's dial it back the other way.

Average damage per round (pre-AC):
              0 power        100 power
Original      5              25
Post-nerf     4              14
Current       4              17

Easy to make further adjustments.

--------------------------------------------------------------------------------
a624279079 | advil | 2022-01-20 16:05:37 -0500

fix: linebreak Y/N popup prompts (ebering)
It is very unclear to me whether adding automatic linebreaking would be
a good idea to MenuEntry items (which are used for many things), so I
added a convenience function that only does this happen on demand, and
used it for `yesno` calls. N.b. it works fine on Menu titles, but
console regular menu entries do not work with multiline text.

I also did a bit of relevant MenuEntry refactoring.

--------------------------------------------------------------------------------
47742a1d20 | advil | 2022-01-20 16:04:46 -0500

fix: tweak console hover rendering on yes/no prompts
There is a difference in how hovers render for formatted vs
non-formatted menus; this basically results in the hover being the width
of the menu for non-formatted ones. Since yes/no menu prompts are pretty
variable, this can sometimes be odd (and it's worse if someone overflows
the terminal width). So, as a quick workaround, just mark this with
MF_ALLOW_FORMATTING.

--------------------------------------------------------------------------------
ae24e75c0c | Edgar A. Bering IV | 2022-01-20 14:14:50 -0600

feat: print what can't be picked up when prompting
Could be verbose on large stacks with very greedy autopickup, but it's
been a big screw for me to not know what is in the cell and have to stop
and examine it before answering the "couldn't pick up" question.

--------------------------------------------------------------------------------
2a4342cb04 | Monkooky | 2022-01-20 14:14:50 -0600

feat: prompt to disable autopickup items of a type during autoexplore
[ Committer's note: Re-wrote the patch to use more crawl codebase
  idioms and the new ask_always parameter to yesno previously implemented.
  Closes #2367. Closes #1873. ]

--------------------------------------------------------------------------------
4ed01045b5 | Edgar A. Bering IV | 2022-01-20 14:14:50 -0600

feat: removed unused yesnoquit
It was partially provided to the lua API in 2008 when implementing toll
zigurats for prompting if the player wanted to pay. Or at the same time,
that ended up using yesno. Subsequently it slowly rotted against the
weight of the FIXME: looking to be a real mess and disuse in the main
codebase. This might be a pain point for some clua users, but yesno is
quite full featured and ternary decisions (yes/no/quit) can be factored
into nested binary decisions by those downstream users.

--------------------------------------------------------------------------------
fa79eddd99 | Edgar A. Bering IV | 2022-01-20 14:14:50 -0600

feat: add "always" prompting to yesno
There's one place in particular where we ask the player a specific
question about a one-time situation that we can generalize both
technically and sensibly for ui: "Could not pick up an item here"
prompts.

There may be others, so I've implemented this as a way to prompt for
either a one-time or global change.

Previously, a general [A]lways prompt was available
via yesnoquit, but that has been unused for 6 years, has a FIXME for
being a mess, and is missing some updates and modernizations of yesno.

--------------------------------------------------------------------------------
4b4a722d26 | advil | 2022-01-20 13:25:02 -0500

fix: further adjust some format specs
`%llu` produces warnings on mac/linux, and the exact definition of
size_t is not guaranteed by anything, so use the `%zu` format spec
instead.

--------------------------------------------------------------------------------
886a180965 | Zarchan | 2022-01-20 11:46:42 -0600

feat: no more accidental lava related item destruction.
Checks if the tile a player is on will destroy items, and if so
prompts the player before continuing.

[ Committer's note: Closes #2353. Tweaked and specialized the prompt. ]

--------------------------------------------------------------------------------
932a3574db | Zarchan | 2022-01-20 10:22:51 -0600

docs: update monster_list_colour documentation

--------------------------------------------------------------------------------
ec4c6a5604 | advil | 2022-01-20 10:45:04 -0500

fix: tweak webtiles mouse hover behavior with multiple popups
Previously, if you open a popup over a menu, and closed the popup, the
mouse position at the time would determine hover, which can be a bit
confusing (especially big menus where the mouse is likely to be
somewhere in the menu, and especially for arrow key selection). This
keeps hover on the previously hovered item (if any) when focus is
returned. We'll see if something even more fine-grained would be better,
e.g. suppress hover if previous item was not selected by mouse. It's
also still TBD under what conditions if any a pure mousemove (with no
leave or enter events) should set the hover, right now it doesn't.

--------------------------------------------------------------------------------
16e8fc0620 | Chris Landry | 2022-01-20 09:26:38 -0600

fix: update wizard armor gen with new egos
[ Committer's note: Checkwhite and made consistent with weapon egos.
  Closes #2373. ]

--------------------------------------------------------------------------------
a69ad8bafb | Aliscans | 2022-01-20 09:26:38 -0600

fix: correct spelling of skilful
Was "skillful", but this is not a valid spelling according to
https://www.australian-dictionary.com.au/wordcheck/.

Closes #2372.

--------------------------------------------------------------------------------
83964af658 | Aliscans | 2022-01-20 09:26:38 -0600

fix: correct spelling of wilful
Was "willful", but this is not a valid spelling according to
https://www.australian-dictionary.com.au/wordcheck/.

--------------------------------------------------------------------------------
d61996a82c | Aliscans | 2022-01-20 09:26:38 -0600

fix: pluralise ghosts with the same name as "2 ghosts called <name>"
The previous version gave "2 <name>'s ghosts", which was poor English.
This form of words makes sense if they are ghosts of the same character
or of different ones.

--------------------------------------------------------------------------------
903a904aa7 | Chris Landry | 2022-01-20 09:26:38 -0600

fix: some numeric compiler warnings
Closes #2369

--------------------------------------------------------------------------------
4a4240be9d | Aliscans | 2022-01-20 09:26:38 -0600

fix: a compiler warning
In _genus_factoring(), mon is set in a loop. This is always set as
"types" and "genera" are set in  _count_monster_types(), which builds
them both from the same list of monsters. This is not apparent to a code
coverage tool, so set it to nullptr.

Closes #2371

--------------------------------------------------------------------------------
d6fec0f1ec | Edgar A. Bering IV | 2022-01-20 09:26:38 -0600

docs: update CREDITS.txt

--------------------------------------------------------------------------------
a72db329a9 | advil | 2022-01-20 09:59:04 -0500

fix: prevent webtiles mouse hover from scrolling
This commit tweaks two related pieces of mouse hover behavior:
* don't snap a mouse-hovered item into view; this was kind of confusing
  when it happened (by hovering a partly visible menu element).
* apply a tiny bit of margin to what counts as partly visible for mouse
  hover purposes. This is very heuristic so it may need some tweaking or
  adjustment for different resolutions. Without this, it's sometimes
  possible to be hovering something you can't even tell is there.

I first consider just making partly visible elements unhoverable by
mouse, but this was also confusing.

--------------------------------------------------------------------------------
a885d4b3d6 | advil | 2022-01-19 22:14:03 -0500

fix: tweak popup window heights
This accomplishes two things:
* prevent overlapping with the chat box in most regular browser
  circumstances, which has bugged me for a while
* provide a workaround for the 100vh issue on iOS Safari, by simply
  leaving more blank space

There might be better workarounds available. We'll see if people find
the extra vertical space too much, or if it needs some more
responsivity.

--------------------------------------------------------------------------------
a88e694cbd | advil | 2022-01-19 22:14:03 -0500

fix: exert more control over iOS virtual keyboards
The behavior is still somewhat flaky (a few bugs noted in comments), but
this commit brings improvements. Basically, it tries to never let
anything else but the mobile input box have focus, while the keyboard is
displayed -- this is apparently what it takes on iOS to keep the
keyboard up. Once it's down, focusing a text input doesn't bring it back
up, and despite trying many recipes, I could not find a way to
programmatically bring it back up.  This prevented several alternative
approaches that I considered, e.g.  using a timeout. The focus control
involved here is quite aggressive and hopefully won't break anything on
Android.

This also does some better styling of the mobile input box, rather than
relying on the browser focus highlight.

--------------------------------------------------------------------------------
d61c85c099 | advil | 2022-01-19 22:14:03 -0500

fix: clicking in multiselect webtiles menus
Because there were previously no multiselect+ arrow menus, the code was
sending enter (which only works for singleselect). For now send space;
this commit is a placeholder for a non-keycode-based solution.

--------------------------------------------------------------------------------
6000d10c1c | advil | 2022-01-19 22:14:03 -0500

fix: make canvases non-selectable
On touchscreens (ios), it is a bit too easy to long tap and select the
canvas, which is then somewhat annoying to undo. This commit isn't a
real solution because it is still possible to long top the canvas, but
it prevents the canvas itself from being selected. (In my testing, some
very thin element to the left of the canvas gets selected?) This means
that if you tap the canvas itself the selection disappears.

--------------------------------------------------------------------------------
0a9ec5b959 | advil | 2022-01-19 22:14:03 -0500

fix: suppress click after touchend clickoutside
At least on iOS, the click was still getting processed after the popup
was closed, leading to spurious things happening.

--------------------------------------------------------------------------------
9c9f7e8d09 | advil | 2022-01-19 22:14:03 -0500

fix: let webtiles mouse dungeon clicks interrupt travel/repeats
Previously, the click was just discarded during interruptible
travel/repeats. This change will let the fake key enter the key handling
queue, and `kbhit()` return true, which is the main check for
interrupting such things. I think it's ok to return a keycode
unconditionally for click handling, and CK_MOUSE_CLICK is innocuous, but
we'll see.

--------------------------------------------------------------------------------
8cf2c06242 | advil | 2022-01-19 22:13:37 -0500

fix: improve mobile input box behavior
This commit should prevent spurious shifting (which I believe was
happening because the first letter of the input box is capitalized), and
hide autocomplete/spelling suggestions at least on iOS. It also attempts
to hide the cursor, and uses a placeholder instead of text. (Since
anything that tries to edit the box is prevented, this should always be
visible, I hope.)

--------------------------------------------------------------------------------
7722353844 | robertxgray | 2022-01-19 22:10:13 -0500

feat: better support for mobile browsers
This is a minimum set of features and fixes to make the WebTiles
interface playable on mobile browsers.

- Added an optional auxiliary input field that can be focused to enable
  virtual keybards.
- Added a new option tile_web_mobile_input_helper to enable or disable
  the input field.
- Fix touch zoom and scroll disabled when a popup is shown.
- Allow popups to be closed with touch events.
- Fix some minor display issues on small screens.

[Committer's note: squashed and edited commit message. Several tweaks
aimed at iOS follow in subsequent commits from me. -advil]

Closes #2221, closes #2332

--------------------------------------------------------------------------------
ee0477cf1a | Edgar A. Bering IV | 2022-01-19 20:40:53 -0600

fix: a typo (ManiacJoe)

--------------------------------------------------------------------------------
623ef8b387 | Crestwave | 2022-01-19 20:26:13 -0600

fix: add support for Haiku
These are patches applied by upstream packagers.
--------------------------------------------------------------------------------
72eb5c4738 | Edgar A. Bering IV | 2022-01-19 19:53:49 -0600

docs: update CREDITS.txt

--------------------------------------------------------------------------------
12e810a91a | Edgar A. Bering IV | 2022-01-19 19:49:35 -0600

fix: update runrest_stop defaults for modern times and old doors
Closes #2346, Closes #2368

--------------------------------------------------------------------------------
e87ddf7535 | Edgar A. Bering IV | 2022-01-19 18:54:23 -0600

feat: give out some fancy shields in Snake
Give Naga Warriors a chance of getting a good_item shield. Overall this
will result in an average of 2-3 good shields per Snake.

With the lootfeel shifts of Spider and Swamp, and Shoals' throwing
items, Snake was already somewhat distinguished by the chance of getting
a kite or tower shield off of a Naga warrior. Adding a small chance for
the shield to be fancy should make this pop a bit more as lootfeel.

--------------------------------------------------------------------------------
477bb3ace5 | hellmonk | 2022-01-19 18:43:26 -0600

feat: two new spider ends
Adds a broodmother end and a themed ending that only places non-spiders.

--------------------------------------------------------------------------------
acdfd95529 | hellmonk | 2022-01-19 18:29:16 -0600

feat: update floodkiller_spider_rune_tomb
Add new monsters and some loot, cut density a bit.

--------------------------------------------------------------------------------
1478b6322d | hellmonk | 2022-01-19 18:29:16 -0600

feat: adjust arachne_lair spider end
Reglyph and add new monsters and loot, fix some substs.

--------------------------------------------------------------------------------
dbc70543e1 | hellmonk | 2022-01-19 18:29:16 -0600

feat: update grunt_spider_rune_island
Add new monsters and loot, reglyph.

--------------------------------------------------------------------------------
9ca27bf259 | hellmonk | 2022-01-19 18:29:16 -0600

feat: adjust grunt_spider_rune_parallel
add new monsters and loot, reduce density slightly.

--------------------------------------------------------------------------------
46fceaadd4 | hellmonk | 2022-01-19 18:29:16 -0600

feat: adjust guppyfry_spider_rune
add new monsters and loot

--------------------------------------------------------------------------------
86b270519b | hellmonk | 2022-01-19 18:29:16 -0600

feat: adjust grunt_spider_rune_circles
Add worms and loot, rewrite some of the monster randomization.

--------------------------------------------------------------------------------
85af5c1198 | hellmonk | 2022-01-19 18:29:15 -0600

feat: update and reglyph spider_rune_water
Add a few of the new monsters, change trash mob randomization, add some loot.

--------------------------------------------------------------------------------
dee6c067ee | hellmonk | 2022-01-19 18:29:15 -0600

feat: loot function for spider ends
Not in use yet, but soon?

--------------------------------------------------------------------------------
c6f6baafec | hellmonk | 2022-01-19 18:29:15 -0600

feat: two spider minivaults
featuring some of the new monsters

--------------------------------------------------------------------------------
aeca334d3e | hellmonk | 2022-01-19 18:20:09 -0600

feat: adjustments to non-end spider vaults

--------------------------------------------------------------------------------
9e22a525d0 | hellmonk | 2022-01-19 18:20:02 -0600

feat: two new spider entry vaults

--------------------------------------------------------------------------------
88295113b6 | hellmonk | 2022-01-19 18:19:57 -0600

feat: update spider entry vaults

--------------------------------------------------------------------------------
77cbbf62ba | Aliscans | 2022-01-19 10:58:41 -0500

fix: Make space toggle the selected item in shop menus.
Pressing either Space or Return had attempted to buy the selected items.
This changes Space to match the effect '.' has, which matches the
behaviour b5dea8a184 added to various other prompts. The effect of the
space bar remains undocumented.

--------------------------------------------------------------------------------
1695149f81 | Kate | 2022-01-19 06:27:41 +0000

Checkwhite

--------------------------------------------------------------------------------
e73e3526bd | Nicholas Feinberg | 2022-01-18 22:03:15 -0800

Cleanup meatsprint des
We no longer need to specify ident:all or no_pickup, since both are
always true.

--------------------------------------------------------------------------------
95a8017c83 | advil | 2022-01-18 21:00:48 -0500

feat: arrow key navigation for the memorize
As a bonus, I made left and right work to move between menu panes, as it
felt fairly natural. At some point I'll experiment with generalizing
this beyond this menu.

--------------------------------------------------------------------------------
7369b063a1 | advil | 2022-01-18 20:50:27 -0500

feat: arrow selection for spell cast/describe menu
Also some minor formatting tweaks. There's still one extremely minor
issue I can't track down, where this menu's with changes on ! in
webtiles.

--------------------------------------------------------------------------------
52c9ff9b3a | advil | 2022-01-18 20:15:09 -0500

feat: enable arrow selection for ability menu
Pretty straightforward, no special tweaks needed that I'm aware of.

--------------------------------------------------------------------------------
2eedf47f95 | advil | 2022-01-18 20:11:35 -0500

fix: improve webtiles menu pageup
In menus with variable height menu items, this was occasionally
overshooting the last visible. This commit fixes the problem, but for
pageup maybe the relative hover position should be handled differently.

--------------------------------------------------------------------------------
99ac4a3411 | advil | 2022-01-18 20:11:35 -0500

feat: stash search menu improvements
The ultimate aim of this is to make this menu workable with arrow key
selection. Previously, carried item results weren't hotkeyed at all
(presumably because travel is pointless), but this didn't quite work for
arrow selection.

* All stash search results are selectable.
* Visually, items at the player's feet and in their inventory are
  grouped together, and the former are now clearly indicated in the
  menu. A hotkey (,) quick-moves the menu between these sections.
* In travel mode, selecting an item at the player's position doesn't do
  anything; previously this was true for carried items (because they
  weren't selectable) but did open for things on the ground. Possibly it
  would be clearer to do something in this case, maybe a message? Or
  open a description? These items are also greyed out in travel mode.
* Subheads are now cyan for better readability
* Various supporting Menu API improvements (including some bits that are
  probably extremely useful in the future but didn't end up fully needed
  here.)

It would be possible, but I found it a bit confusing on first
implementation, to start the menu with the first item not at the
player's position selected. Will revisit this on feedback. I think with
the , hotkey this isn't as important.

Other TBD improvements: the keyhelp could be improved and standardized,
I think it might be good to support right click to describe in this
menu.

--------------------------------------------------------------------------------
060a6a1bfc | Kate | 2022-01-18 17:22:39 +0000

Fix some spell description typos

--------------------------------------------------------------------------------
417bf1fd16 | Edgar A. Bering IV | 2022-01-18 09:03:21 -0600

fix: a teleport closet (12658)

--------------------------------------------------------------------------------
cbc3b0e11f | Edgar A. Bering IV | 2022-01-18 09:00:01 -0600

docs: changelog through 0.28-a0-1557-g548886b

--------------------------------------------------------------------------------
548886b2ed | Edgar A. Bering IV | 2022-01-17 21:53:49 -0600

feat: slightly increase the orb floor drop rate
Since orbs, unlike shields, don't come as monster gear currently.

--------------------------------------------------------------------------------
303e8cf5e6 | Edgar A. Bering IV | 2022-01-17 21:53:49 -0600

fix: tune down guile a lil bit

--------------------------------------------------------------------------------
9ae15a6949 | Nicholas Feinberg | 2022-01-17 18:42:51 -0800

Move Passwall check to a better place
The confusingly similarly named casting_ and _spell uselessness
checks are for different things - casting_ is only for costs, Ru
sacrifices, and a few other broad things, whereas whereas spell_
checks everything else.

--------------------------------------------------------------------------------
6f2a123a96 | Nicholas Feinberg | 2022-01-17 18:42:28 -0800

Make Call Imp fight alongside you
Typo in 877f77fdfb4cba3a06bde7f51e1239edfa655e6c .

--------------------------------------------------------------------------------
6a8d134351 | Edgar A. Bering IV | 2022-01-17 20:38:49 -0600

fix: restrict passwall's constriction restriction to passwall

--------------------------------------------------------------------------------
ad4bc827a9 | Edgar A. Bering IV | 2022-01-17 20:26:09 -0600

text: clarify transmutations spell power effects

--------------------------------------------------------------------------------
877f77fdfb | Edgar A. Bering IV | 2022-01-17 20:00:32 -0600

text: clarify the spellpower dependence of Summonings spells (10906)

--------------------------------------------------------------------------------
eb7d2789bd | Edgar A. Bering IV | 2022-01-17 19:03:05 -0600

feat: stop teleporting passwall obstructing monsters (5107, 12041)
The player has paid the MP and delay cost, if we can't shift the target
abort. The lack of space only occurs in packed vaults and specific
vaults and allows for cheesing more than it adds gameplay.

Closes #2127

--------------------------------------------------------------------------------
753840947a | Edgar A. Bering IV | 2022-01-17 18:21:26 -0600

fix: trigger explore traps on passwall end immediately (12647, 11952)
The "free turn" exempting players from traps was unintuitive and
surprising. Unlike doors and fog, which do bring new tiles into view,
remaining completely in place and triggering a trap in a subsequent
turn breaks the feel and expectation of trap effects.

--------------------------------------------------------------------------------
a3b06d5894 | Edgar A. Bering IV | 2022-01-17 18:04:44 -0600

fix: prevent passwall while constricted
Constriction interrupts passwall, but then you can just start again. Not
that it's a good idea often, but for consistency with stair delays
constriction blocks passwall.

--------------------------------------------------------------------------------
15810a7b44 | Edgar A. Bering IV | 2022-01-17 17:25:48 -0600

fix: treat Passwall like stair and shaft-self delays
Treating Passwall like a usual delay, as opposed to a multi-turn
move commitment like shaft self and stairs, created all sorts of weird
things as documented in Mantis #12239, #11825, and #10961.

Treating it like a stair or shaft self delay makes it behave more like
"movement" and gives it a consistent set of rules.

--------------------------------------------------------------------------------
957fa82e37 | Edgar A. Bering IV | 2022-01-17 17:25:36 -0600

fix: adjust some inapprorpiate uses of force interrupts

--------------------------------------------------------------------------------
945cd3f27e | Nicholas Feinberg | 2022-01-17 13:35:51 -0800

Fix thunderhulk armour (Nomi)

--------------------------------------------------------------------------------
ef8730868c | Edgar A. Bering IV | 2022-01-17 15:15:57 -0600

fix: respect FTILE when destroying terrain
Closes #1628

--------------------------------------------------------------------------------
e92cbb8f83 | Edgar A. Bering IV | 2022-01-17 14:20:18 -0600

fix: enrage elven twins taken to duel
If a player duels one sibling have the other react as if they're already
dead. This is because there are only three ways out of the arena for the
player
- their death (so who cares)
- the death of the elven twin they're dueling (so the twin's gonna be
  mad when they get back)
- renouncing okawaru within the arena to escape (twin's still mad that
  you dared do such a thing, also a ridiculous edge case)

Closes #2325

--------------------------------------------------------------------------------
7dfede7c9b | Edgar A. Bering IV | 2022-01-17 13:52:20 -0600

fix: the build

--------------------------------------------------------------------------------
eb816f4f03 | Edgar A. Bering IV | 2022-01-17 13:34:55 -0600

fix: set pet_target when using a LOS attack spell
Relevant for Hepliaklqana followers in the days of shooting through your
Hep ancestor. Closes #2256.

--------------------------------------------------------------------------------
4c6099d30f | Edgar A. Bering IV | 2022-01-17 13:34:55 -0600

fix: don't offer to throw_item_no_quiver if you're a cat
Closes #2348.

--------------------------------------------------------------------------------
b657c59d09 | Edgar A. Bering IV | 2022-01-17 13:34:55 -0600

fix: keep grey dracs unbreathing in dragon form
Since everyone else keeps their breath weapon and grey dracs don't get
one they should get this!

Closes #2349

--------------------------------------------------------------------------------
933e3b857f | Edgar A. Bering IV | 2022-01-17 13:34:55 -0600

fix: add breaks to a switch statement
467f337aae6 did not intend these fallthroughs. Closes #2350.

--------------------------------------------------------------------------------
9ba09be145 | Edgar A. Bering IV | 2022-01-17 13:34:55 -0600

fix: don't try to die repeatedly if pending revival
Prevent reflection and other misc bound soul related crashes when the
revival is triggered by something on the monster's turn.

Closes #2323.

--------------------------------------------------------------------------------
5967ad2b6c | Edgar A. Bering IV | 2022-01-17 13:34:55 -0600

fix: don't offer unavailable gods in interlevel travel
Closes #2315

--------------------------------------------------------------------------------
a1f3fc70dd | Edgar A. Bering IV | 2022-01-17 13:34:55 -0600

fix: correct the Xom webtiles moodmeter
Closes #2186

--------------------------------------------------------------------------------
811ca023a5 | Edgar A. Bering IV | 2022-01-17 13:34:55 -0600

fix: a teleport closet in an arrival
Closes #2151

--------------------------------------------------------------------------------
ee5c5fb8bb | advil | 2022-01-17 14:04:51 -0500

fix: re-allow `w-`
Originates from fc4545441119, because of the new tag, `-` in this menu
needed a menu-specific check.

Also, generalize this code a bit, and add the macro submenu to the list
as well.

Resolves #2363

--------------------------------------------------------------------------------
570b316de1 | advil | 2022-01-17 13:58:17 -0500

fix: default for menu_arrow_control
intended to be true, oops

--------------------------------------------------------------------------------
866c7d65e6 | advil | 2022-01-17 13:44:10 -0500

docs: remove a spurious plural
I already fixed one mismatch between this heading and ToC but missed the
plural.

--------------------------------------------------------------------------------
7af6551d5a | advil | 2022-01-17 13:35:47 -0500

feat: option to disable arrow key menu control
I admit that 50% of the reason I'm adding this is so that the 1% of the
player base that is enraged by >90s UI features will stop bugging me.
But I suspect it could also be useful for accessibility purposes to be
able to disable hover in console -- for example I doubt it works well
with screen readers without some specific effort that I don't really
know how to do.  As a side effect this option does disable arrow control
for all menus that had it added in the 0.27 cycle.

--------------------------------------------------------------------------------
be3f6fb03a | advil | 2022-01-17 11:25:42 -0500

docs: move auto_hide_spells to a different section
I think this was probably in 3-a because its consequences do happen
during pickup, but I think it's probably more intuitive for it to be in
the "Command Enhancements" section with most other spell options.

--------------------------------------------------------------------------------
8903882b62 | advil | 2022-01-17 11:15:20 -0500

fix: swap order in add_alias calls
oops

--------------------------------------------------------------------------------
6c7bc2a1f9 | advil | 2022-01-17 11:07:18 -0500

refactor: rename `.._brand` options to `.._highlight`
I assume there's some charming retro-roguelike and/or Australian
explanation for the use of "brand" here, but it seems completely
non-standard now and extremely confusing. I chose "highlight" as a much
more intuitive name. I also rewrote a fair amount of the options guide
for these beyond the name, partly with an eye towards including all the
search terms I initially tried when looking for this code the other day.
This is a full internal rename as well.

The actual implementation of these options is very odd and could use
some refactoring, but I'm not going to do that right now.

Needs testing on Windows (CI should be enough).

--------------------------------------------------------------------------------
7e9bcdcf84 | advil | 2022-01-17 10:09:11 -0500

feat: add shift-left/right as line up/down menu shortcuts
This is because in my testing I've found terminals that by default only
define shift left/right and not up/down, and shift left/right weren't
doing anything at all in any menus. For completeness I added this in
webtiles also, though shift up/down already worked there.

--------------------------------------------------------------------------------
066c4f1fa3 | advil | 2022-01-17 10:09:11 -0500

fix: correctly handle console shift arrows if defined
Previously, the crawl binary got ncurses keycodes that were not ignored
by the binary but not interpreted properly. This translates the keycodes
to crawl's internal scheme, so that they are recognized by e.g. the menu
code. If people had macros for these keycodes they will need to remap.

Worth noting that these being correctly produced is pretty variable.
E.g. in my testing, iTerm defines all of them, mac terminal defines only
left and right, and putty defines none of them. Usually (always?) what
happens instead is that the terminal sends the escape codes for regular
arrow keys. It would be possible to configure them in at least some
terminals using the escape codes that I noted in the comments.

--------------------------------------------------------------------------------
e72afd5fc6 | Kate | 2022-01-17 06:53:36 +0000

Don't let monsters try to re-polymorph a polymorphed player
Fixes monsters wasting charges and turns emptying their wands of polymorph
after already having succeeded at polymorphing the player.

--------------------------------------------------------------------------------
5f3ffaac98 | Kate | 2022-01-17 06:53:36 +0000

Let monsters use spell_logic for zapping wands
Doesn't have any effect currently, but makes it possible to add better
logic for deciding whether to zap a wand where needed.

--------------------------------------------------------------------------------
8550a1e9b9 | Kate | 2022-01-17 06:53:36 +0000

Mark confusion beams as harmless to monsters with clarity

--------------------------------------------------------------------------------
870370a84a | Kate | 2022-01-17 06:53:36 +0000

Remove Mephitic Cloud's damage
It did 0-2 damage, which was mostly insignificant but resulted in it not
being consistently marked as useless against targets with clarity (with a
hack for the player to mark it harmless unless below 2HP). Instead remove
the damage and handle clarity properly.

--------------------------------------------------------------------------------
c3277d3759 | hellmonk | 2022-01-16 21:24:36 -0500

tweak some spider monsters
Make some of the new spider enemies a little frailer.

--------------------------------------------------------------------------------
c307741d3e | hellmonk | 2022-01-16 20:49:56 -0500

feat: tweak layout_spider_delve
Adjust parameters to avoid generating big open levels so frequently.

--------------------------------------------------------------------------------
be868bca14 | advil | 2022-01-15 22:20:35 -0500

fix: tone down default `may_stab_brand` (G-flex)
This was set to yellow, which by default on most terminals is extremely
bright as a background color, with poor contrast with many foreground
glyph colors.  Most players were either used to this and didn't notice,
or playing in 8 color putty where this comes out as `brown`, not the
brighter yellow that putty is also capable of displaying (but doesn't on
default settings). I think `brown` (which is typically a sort of mustard
color) has much better contrast on terminals I've tried anyways, and
it's not otherwise used for a monster highlight, so let's go with that.

--------------------------------------------------------------------------------
020f416216 | advil | 2022-01-15 21:55:53 -0500

fix: revert main menu hover changes
Using lightgrey with a manually inverted foreground color seems safer
overall in terms of contrast since this menu doesn't need to ever change
foreground color; unfortunately the implementation (which I've just
restored) is all a bit ad hoc. Possibly this hover scheme could be
better generalized.

--------------------------------------------------------------------------------
37088b3766 | advil | 2022-01-15 21:55:53 -0500

fix: tweak hover color for 8 color consoles
This moves it from lightgray to blue, since the latter has much better
overall contrast with all foreground colors.

--------------------------------------------------------------------------------
81556d0073 | advil | 2022-01-15 21:55:53 -0500

feat: color/display diagnostic popup
The somewhat odd situation has emerged several times recently that
console players don't realize that their terminal is running in some
variant of an 8 color compatibility mode. First, when
allow_extended_colors=true was made the default and people thought 16
color mode was "new", and then more recently, when putty users have been
complaining about the new menu hover being too non-contrasty. (I'll
actually change that, but this isn't that commit.)

This popup provides in-game information that is mostly relevant to
console players about what their terminal and options are actually
doing. It's largely aimed to make it clear to putty users that something
is wrong, but should be more generally useful. For other build targets
most of the information isn't relevant, but it still shows the color
palettes corresponding to the 8/16 ANSI colors.

The popup is slightly hidden, under `?!`. I can imagine a later approach
where it is under an "advanced" submenu of the game menu, especially if
it eventually becomes an interactive popup. But for now this also lets
it be used at the main menu.

Still needs testing on windows.

--------------------------------------------------------------------------------
3e5f17529f | advil | 2022-01-15 21:55:53 -0500

feat: support background colors in formatted_string
This is not something that I think we should start using much, or really
even at all, but it's very useful for diagnostic purposes.

--------------------------------------------------------------------------------
e4f4046303 | Kate | 2022-01-15 22:42:27 +0000

Don't allow attempting to enter Malign Gateway portals
It was very rarely possible to even try since usually the portal would be
blocked by the tentacle, and having it deal a small amount of damage and
blink the player is unnecessarily complicated compared to just treating it
consistently as a solid feature.

--------------------------------------------------------------------------------
142ac7cd73 | Kate | 2022-01-15 22:42:27 +0000

Don't use Malign Gateways as walls for Creeping Frost (#2359)
They're sort of solid for most purposes, but shouldn't be valid targets for
Creeping Frost. Closes #2359.

--------------------------------------------------------------------------------
0647d9364e | Kate | 2022-01-15 21:31:10 +0000

Refactor piety gain prevention in the Abyss
Fixes a number of bugs:

Ru and Ashenzari will no longer offer new sacrifices/curses from exploring
or killing monsters in the Abyss, but if the player enters with one already
available, they can still gain piety from taking it.
Gods in general will no longer give misleading messages about accepting
your kills in the Abyss.
Beogh will no longer gift new followers or upgrade weapons/armour/classes
of existing followers, but will still give existing followers healing.
Hints mode won't give a hint about gaining XP for killing a monster in the
Abyss.
Yredelemnul piety will be properly tracked on gaining zombie followers.
Converting to Lugonu or picking your first god as a monk in the Abyss will
properly give bonus piety.

--------------------------------------------------------------------------------
d0f6b136d3 | hellmonk | 2022-01-13 23:31:53 -0500

feat: shrink some spider bands
Make the monster density a little less overwhelming.

--------------------------------------------------------------------------------
5ff2a343f8 | hellmonk | 2022-01-13 23:19:47 -0500

rework orb of destruction damage formulas
Removes a secret hidden power stepdown and makes the formula linear. The new
formula is roughly equivalent damage to the old at low power, somewhat worse
at about 100 power, and very slightly worse at 200 power. Additionally, to
emphasize the positional aspect of the spell, change the damage dropoff at
low distance to more harshly penalize point-blank iood casts. Distance 1 now
deals a wimpy 30% damage (was 50%) and 60% at range 2 (was 70%). Range 3
and above are unchanged. Can be adjusted further if this is an overnerf.

--------------------------------------------------------------------------------
054e75b119 | Kate | 2022-01-14 01:03:26 +0000

Reword an ushabti cast message

--------------------------------------------------------------------------------
b10ca78fad | Kate | 2022-01-14 01:00:15 +0000

Fix inventory menu colouring not being used in item menus
Possibly the new item selection menus could use a new menu_colour category,
but previously they used the inventory category so keeping that behaviour
seems reasonable.

--------------------------------------------------------------------------------
3893175d92 | Nicholas Feinberg | 2022-01-12 22:10:48 -0800

Add Summon Hell Sentinel description (Nomi)
Oversight in ff29be1aa77.

--------------------------------------------------------------------------------
8c907de6ad | advil | 2022-01-12 19:12:58 -0500

fix: memorise menu ui tweaks
* convert to keyhelp, remove custom set_more calls, make keyhelp more
  consistent with others.
* fix various spacing issues, including interactions of search and
  divine exegesis, search width in local tiles, column alignment
  consistency.
* Indent the more if the title is indented (both tiles targets). I'm not
  actually sure I like how this looks but it leads to a more consistent
  UI behavior with console spacing. It also prevents window size jumping
  in local tiles in various cases. What would be better is if the more
  column width itself could be adjusted, but that seems extremely hard.

The code to generate this menu's keyhelp remains an unholy mess of c and
c++ style string formatting.

--------------------------------------------------------------------------------
839a4452db | Nicholas Feinberg | 2022-01-12 11:25:18 -0800

Turn Spider noise back down (ardl)
It was quieted down back when web sense was removed, but Spider
monsters are a lot more lively now - players don't need as big a
party to have fun.

We can re-revert this if spider feels too lonely with normal noise.

--------------------------------------------------------------------------------
9e29e62679 | Nicholas Feinberg | 2022-01-12 11:24:43 -0800

Revert "REVERTME: increase orb rate for testing"
Initial testing is done.

This reverts commit 8dc402e3264e5ac93cec5fabe3b95c5186369434.

--------------------------------------------------------------------------------
98be2d08f0 | Nicholas Feinberg | 2022-01-12 11:24:32 -0800

Revert "force Spider generation for testing"
Initial testing is done.

This reverts commit be321230710a090a0a22678120c99eebdee71df4.

--------------------------------------------------------------------------------
99b08493b7 | Nicholas Feinberg | 2022-01-12 11:24:19 -0800

Revert "REVERTME: Make infusion gloves very common"
Initial testing is done.

This reverts commit e3c729c0851fa3275ad841092a6c6a803fe431f6.

--------------------------------------------------------------------------------
21c982267c | Nicholas Feinberg | 2022-01-12 11:04:02 -0800

Halve Anguish damage (ebering)
It was a bit much.

--------------------------------------------------------------------------------
f88bddc06d | advil | 2022-01-12 13:41:39 -0500

fix: fix hover colors on 8 color consoles and standardize
On 8 color consoles, a darkgrey background color as hover shows up as
black. This commit uses lightgrey in an 8 color setting instead.
Otherwise, I think darkgrey looks better, though it's possible opinions
may differ. (If they do, we'll find out soon, since I've applied this
standardization to the main menu as well -- it used its own custom hover
color.)

--------------------------------------------------------------------------------
61e5acc4d9 | advil | 2022-01-12 13:41:39 -0500

doc: further clarify some console color logic
Add a contenful comment to the relevant code, and restructure the
options documentation.

--------------------------------------------------------------------------------
ab9d7fee88 | Edgar A. Bering IV | 2022-01-12 10:26:41 -0600

feat: reduce poison dart quantity
At current quantities a character can always have a mega ammount past
the early game, and is incentivsed to use them whenever they lack a
stronger ranged alternative at minimal cost. Let's lower the stack size
to put a bit more strategic pressure on their use.

Poison darts are in a bit of an awkward place relative to their other
thrown siblings, it might make more sense to move the poison brand to
boomers and have darts only be specialty items, but that's for a future
consideration.

--------------------------------------------------------------------------------
3c2d7996e7 | Kiëd Llaentenn | 2022-01-12 09:38:14 -0600

fix: make Trog tantrum if orb of energy is used
An orb of energy is primarily used for enhancing spellcasting, so it

makes sense that it should be considered a wizardly item and thus that

Trog should frown upon its use.
--------------------------------------------------------------------------------
5f9446187d | nlavsky | 2022-01-12 09:37:25 -0600

feat: don't grant explore piety to Jiyva worshippers in the Slime Pits
Granting exploration piety in the Slime Pits encourages Jiyva

worshippers to fully explore this threat-free branch.



A dozen tests show that if the player dives the Slime Pits and joins

Jiyva on the last floor, they'll have 63-105 piety from auto-exploring

the rest of the branch. The average is 86 piety, which is three stars.

Joining Jiyva before entering the branch guarantees that the player will

get to 100+ piety and reach four stars after fully exploring the Pits.
--------------------------------------------------------------------------------
253b278887 | Edgar A. Bering IV | 2022-01-12 09:36:08 -0600

fix: throatcutter doll tile

--------------------------------------------------------------------------------
08698888e4 | Edgar A. Bering IV | 2022-01-11 22:14:14 -0600

feat: an untended Ignis altar temple
12 altars with nice plants and roaring votive fires, plus an Ignis altar
and some ecumenical altars with sputtering smoke and cobwebs. Less
dramatic than pdpol_scorched_temple to tell a more subtued ecumenical
story about abandonment.

--------------------------------------------------------------------------------
7e3bb95383 | paul | 2022-01-11 22:14:14 -0600

feat: a rare Ignis-themed temple
[ Committer's note:  Closes #2219. Tweaked the lava lake room and the
  tile and console colours, used granite statues instead of stone arches
  for the broken pillars for consistency. Added water to the smaller
  rooms and wall contrasts. ]

--------------------------------------------------------------------------------
7d64a5f647 | paul | 2022-01-11 22:14:14 -0600

fix: an off by one error in a temple vault altar count
It looks like minmay_temple_bridge_d expects to place 17 or 18 altars
but there are only markers for 16 or 17.

--------------------------------------------------------------------------------
a01311f068 | paul | 2022-01-11 22:14:14 -0600

fix: a comment on pow_rolls default value

--------------------------------------------------------------------------------
a6001f96d0 | advil | 2022-01-11 19:52:28 -0500

feat: add `bold_brightens_foreground=force`
Recently it came up that it can be helpful for console readability to be
able to use bold weight on bright colors even on modern terminals, not
just as a workaround; people (and by people I mean ebering) had been
doing this just by using 8 color mode. This commit provides an option to
not ignore bold_brightens_foreground in 16 color mode.

--------------------------------------------------------------------------------
24bb901ea4 | advil | 2022-01-11 19:52:28 -0500

fix: more consistent shopping list menu keyhelp
Move the shopping list keyhelp to the more, make it more consistent with
other keyhelps (especially shops).

This also fixes a number of misc base class issues:
* correctly handle default keyhelp more init
* spacing in default keyhelp
* generalize some code for lettering in keyhelps
* update_more timing

--------------------------------------------------------------------------------
0a3215c577 | Edgar A. Bering IV | 2022-01-11 17:40:07 -0600

fix: don't feel guilty for choppin firewood
Don't cause Anguish damage when attacking firewood.

--------------------------------------------------------------------------------
8196b01e9b | Kate | 2022-01-11 07:31:45 +0000

Fix Xom granting ~4 potions of experience at once
Caused by !XP now caring about effect power.

--------------------------------------------------------------------------------
077359a4bf | Perry Fraser | 2022-01-10 20:44:47 -0600

fix: display_bar should clamp negative values
* fix: display_bar should clamp negative values



If a bar was displayed of something with a negative value (like with EV)

then text such as "EV: none (normally )" could be displayed. This

function is only used for values that aren't meaningful when negative,

so let's clamp any negative values to zero.
--------------------------------------------------------------------------------
a4b24466b4 | Edgar A. Bering IV | 2022-01-10 19:31:10 -0600

fix: an anguishing crash

--------------------------------------------------------------------------------
da10c1d967 | Edgar A. Bering IV | 2022-01-10 18:44:32 -0600

tiles: throatcutter and maulers (Sastreii)
Closes #2322

--------------------------------------------------------------------------------
fc45454411 | advil | 2022-01-10 18:51:03 -0500

fix: disable item class hotkeys in UseItemMenu
This adds nothing except surprises, especially the case noticed by
ebering, where an optimistic person might imagine that the `r` menu has
a help dialog and instead read the first scroll.

Implementation is ugly..

--------------------------------------------------------------------------------
7509e2a2af | Perry Fraser | 2022-01-10 17:22:17 -0600

fix: phial should always engulf the center target
Previously, if the phial of floods knocked a target back onto a

non-floor or water feature like a staircase, then no flooding would

generate at that location (fine) and consequently no

waterlogging/engulfing (not fine).



Let's instead make create_feat_splash return a set of coordinates, and

add back the center location before iterating over monsters to waterlog.



Closes #2331.
--------------------------------------------------------------------------------
744777c2d9 | advil | 2022-01-10 18:20:58 -0500

feat: enable arrow keys for shopping list menu
Also, improve the behavior of a subprompt for long item names.

--------------------------------------------------------------------------------
74d9c6da68 | advil | 2022-01-10 18:20:58 -0500

fix: show hover by default for shop menu

--------------------------------------------------------------------------------
486f26dfa3 | Edgar A. Bering IV | 2022-01-10 17:19:12 -0600

fix: an intermittent levelgen crash
An operator precedence bug. The necessary check is covered by
!feat_is_gate in the changed conditional.

--------------------------------------------------------------------------------
273aa18710 | advil | 2022-01-10 17:35:54 -0500

fix: don't check gold for MSG_NOTHING_CARRIED

--------------------------------------------------------------------------------
7cf701f5d5 | advil | 2022-01-10 17:35:54 -0500

fix: don't crash when cycling hover on an empty menu
This is an old one, but I guess it's harder to trigger without item
menus.

--------------------------------------------------------------------------------
6dc9c6bb35 | Perry Fraser | 2022-01-10 16:31:03 -0600

fix: properly describe moving staircases
When you climbed down a staircase while Xom was sliding them around, you
could get the message " slides away from you right [...]". The stair was
being described by feature_description_at which only uses the player map
knowledge, which means the staircase would be DNGN_UNSEEN. This uses
feature_description instead to get around that.

--------------------------------------------------------------------------------
56126dae6c | advil | 2022-01-10 17:24:17 -0500

fix: properly sync non-templated mores to webtiles

--------------------------------------------------------------------------------
62e843ad78 | advil | 2022-01-10 17:07:09 -0500

fix: crash during settings_db initial generation
Reported by @Walther in #2332

--------------------------------------------------------------------------------
442d625886 | advil | 2022-01-10 17:06:53 -0500

fix: don't send crash milestones over webtiles sockets
This appeared in 6ef7baa362 but shouldn't be applied to the case of
crash milestones. (a) this code is super heavy and not safe after a
crash, and (b) it has timing issues with the socket closing, and so was
causing recursive crashes on a dead socket. (This is why no crash
milestones have appeared for the last couple weeks, they've all been
recursive crashes which don't generate milestones.)

To be clear, after this commit crashes will still be written directly to
the milestones file.

--------------------------------------------------------------------------------
981f6e296f | robertxgray | 2022-01-10 15:43:02 -0600

fix: check negative energy resistance when casting vampiric drain
The game doesn't warn the player when casting vampiric drain on natural

monsters with immunity to negative energy (Josephine).
--------------------------------------------------------------------------------
841984c3b6 | Aliscans | 2022-01-10 15:33:48 -0600

fix: stop artefact amulets of faith from flashing on first worshipping Gozag
The game checked ignore_faith_reason() when a non-demigod puts on an amulet of 
faith, and checked is_useless_item() when one committed to a god. These give 
different results for artefacts (which are never considered "useless").



It now checks ignore_faith_reason() in both cases, and there is no special 
message when a character wearing an amulet of faith worships Ashenzari, Gozag 
or Ignis.



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
8b0d500728 | Aliscans | 2022-01-10 15:31:07 -0600

feat: mark identify scrolls as useless once everything is identified.
Create a "have identified all potions and scrolls" prop. Scrolls of
identify are treated as useless if it is set. It's updated on game load
if the version has changed, and also whenever set_ident_type() changes
something.

This also refactors several checks for complete identification to check this
prop.

[ Committer's note: Closes #2244. Added Mu special casing. ]

--------------------------------------------------------------------------------
6790c33dfa | advil | 2022-01-10 15:57:59 -0500

fix: don't divide by 0 in keyhelp rendering
missed because clang doesn't crash, gcc does

--------------------------------------------------------------------------------
1e88248612 | advil | 2022-01-10 15:04:48 -0500

fix: update acquire menu to work with item menu changes
The acquire menu had its own custom keyhandling for some reason; this
commit removes this and uses the `Menu` default keyhandling. It also
updates this menu's keyhelp to use the new API (and fixes some issues in
that API that I had missed).

--------------------------------------------------------------------------------
30118fcd2b | advil | 2022-01-10 15:04:48 -0500

fix: remove old cursor code
This has been semi-broken for some time, completely broken on webtiles,
and was also a fairly bad implementation of the idea to begin with.  It
is superseded by the new hover code, so let's just kill it completely.

--------------------------------------------------------------------------------
b5dea8a184 | advil | 2022-01-10 15:04:48 -0500

feat: arrow key controls for item menus
This ended up being a fairly big change that needed to be mostly done at
once.  This affects every item menu except stash search and shopping
list (which I'll do in a later commit). Because this affects a *lot* of
different UI elements, there may be some more testing needed...

Menu-general changes:
* Arrows controlling hover is fully implemented for multiselect menus
  (previously only for singleselect menus). In webtiles and tiles,
  shift+arrow have the old behavior, but I haven't gotten this to work
  on console.
* MF_ALWAYS_SHOW_MORE is removed; a more is now visible iff it is
  non-empty.
* New flag, MF_INIT_HOVER: if set, show hover on initial display.
  Previously menus have needed to manually call `cycle_hover`. This is
  on for all item menus except the regular inventory.
* New virtual method, get_keyhelp: generate a keyhelp more for both the
  case of a menu with scroll bars, and a menu without. Designed to be
  overridden, see the known item menu for an example.
* scroller keyhelp is shown in more cases and fully implemented in tiles
  targets (before it was only complete for console)
* Many hover issues fixed and tweaked, especially in webtiles
* Old multiselect cursor stuff is disabled, will be removed in a
  separate commit
* In multi-select menus '.' does not change the hover. (If people want a
  key that does this it could be arranged, but it isn't so clear anyone
  has been using the old cursor -- it was broken on webtiles anyways.)

Item menu changes:
* MF_ARROWS_SELECT is on for any item menu unless it is MF_NOSELECT
* Bugs in multiselect category selection fixed, category selection snaps
  category into view

UseItemMenu:
* better indication of `easy_floor_use`. (Though, from a UI perspective,
  I'm not a fan of this being on by default, it's not very
  consistent...)
* hovering can cross that inv/floor boundry and reletters items when it
  does so. (Needs to ping the server on webtiles unfortunately.)

--------------------------------------------------------------------------------
cdc11d4697 | advil | 2022-01-10 15:04:48 -0500

refactor: remove `easy_quit_item_prompts` (wheals)
Since c5434703b61cb9, these prompts have been quite hard to get to, and
are perhaps on the verge of disappearing altogether. I think this option
may have also targeted worry about some potential item-wasting cases
(maybe enchant scrolls and the like), but if so, these cases are long
gone as well. At this point, this micro-option doesn't serve much
purpose, so remove (retaining the current default behavior).

--------------------------------------------------------------------------------
20fba0d420 | advil | 2022-01-10 15:04:47 -0500

refactor: simplify drop ui
Previously, the drop menu would let you drop to a prompt by hitting
enter with nothing selected. This is not very useful, and the code was a
mess; plus I plan to change the behavior of enter somewhat in a later
commit. (I guess there may be players out there who will need to remap
enter+letter to letter+enter at the worst?) If there's really demand for
the prompt mode it may be better to integrate it with prompt_invent_item
and get a working codepath for the toggle. But for now just make this
function much more straightforward -- as of this commit, enter with
nothing selected just exits.

--------------------------------------------------------------------------------
95bfa34988 | advil | 2022-01-10 15:04:47 -0500

feat: clean up and generalize menu keyhelp code
This commit generalizes the keyhelp code and makes most of it less
client-specific:
* show scroll keyhelp on all clients
* refactor the templating code for adding in the percent so that it can
  be used on local tiles and is a bit less ad hoc (it's still weird
  though).
* refactor so that keyhelp can be overridden.

--------------------------------------------------------------------------------
84980b0d82 | advil | 2022-01-10 15:04:47 -0500

fix: adjust shop keyhelp
The right-click hint is only accurate for local tiles; for webtiles any
click outside will work but a right-click inside will not -- too complex
to describe, but also now standardized.

--------------------------------------------------------------------------------
370c3107d9 | advil | 2022-01-10 15:04:47 -0500

fix: modernize some inventory code

--------------------------------------------------------------------------------
dc4cd7eb33 | Edgar A. Bering IV | 2022-01-10 13:53:10 -0600

fix: don't scan for unlinked items midway through abyss vault generation

--------------------------------------------------------------------------------
66ff00425e | Goratrix | 2022-01-10 11:01:11 -0600

fix: small tweaks to crystal spear projectile tiles
Correct size and remove stray pixel in crystal_spear1.png

and clean up the rest of the tiles.
--------------------------------------------------------------------------------
d6a3831c70 | Nikolai Lavsky | 2022-01-10 10:54:02 -0600

feat: display potion/scroll rarity on the item knowledge screen
As a followup to 2f15ad60, this commit makes it easier to compare
potion/scroll rarities by displaying all of them on one screen.

When deciding which unidentified consumables to use in order to survive,
players often check the `\-` screen to see possible outcomes. So it
makes the item knowledge screen a perfect place for this information.

--------------------------------------------------------------------------------
aeb352d00f | Perry Fraser | 2022-01-10 10:35:06 -0600

fix: skip title on tiles integration tests

--------------------------------------------------------------------------------
78a2654a08 | Edgar A. Bering IV | 2022-01-10 10:30:02 -0600

text: update some Yred translation keys

--------------------------------------------------------------------------------
374218e70b | Zhang Kai | 2022-01-10 10:29:21 -0600

text: update Chinese translations of ability.txt
Add translations.
增添翻译。

[ Committer's note: Fixed whitespace, Closes #2203. ]

--------------------------------------------------------------------------------
9084b0ae73 | Aliscans | 2022-01-10 10:11:47 -0600

fix: remove references to Hell from feat_is_branch_exit()
Delete DNGN_ENTER_HELL, as the function returns false whether it's
listed separately or not.

Delete DNGN_EXIT_HELL and feat_is_hell_subbranch_exit(), and adjust the
callers to accommodate this.

This should not affect game behaviour.

Also remove feat_is_hell_subbranch_exit() from is_feature_fudged(), as
is_feature() now returns true for these and CMD_GO_UPSTAIRS.

--------------------------------------------------------------------------------
a2056f7337 | Aliscans | 2022-01-10 10:11:47 -0600

fix: remove references to Hell from feat_is_branch_entrance()
feat_is_hell_subbranch_exit() can simply be deleted, as the function
returns false whether it's listed separately or not. The response to
DNGN_ENTER_HELL changes from false to true, so change the functions
which call it to accommodate this.

The things which should behave differently are:
- Hints mode now treats DNGN_ENTER_HELL as a branch entrance.
- In lua (dlib), is_branch_entrance() now returns true for
  DNGN_ENTER_HELL. This isn't used in the Crawl source at present.

--------------------------------------------------------------------------------
2965a4dc42 | Aliscans | 2022-01-10 10:11:47 -0600

refactor: split DNGN_ENTER_HELL into one feature per destination
Replace DNGN_ENTER_HELL with DNGN_EXIT_COCYTUS, DNGN_EXIT_DIS,
DNGN_EXIT_GEHENNA or DNGN_EXIT_TARTARUS for gates leading out of those
branches.

This means that the descriptions for these are more appropriate, and
makes it easier to change how one of them looks in a console build.

[ Committer's note: Closes #2173. Tweaked descriptions and made these
  PORTAL_EXIT features. ]

--------------------------------------------------------------------------------
b131497017 | Edgar A. Bering IV | 2022-01-10 09:31:43 -0600

fix: ensure Mennas never speaks across attitude changes
Closes #2330

--------------------------------------------------------------------------------
a049f037fa | Edgar A. Bering IV | 2022-01-10 09:27:31 -0600

feat: some bound Donald dialog

--------------------------------------------------------------------------------
c586ae71bd | Edgar A. Bering IV | 2022-01-10 08:29:55 -0600

fix: clarify shallow water's effect on large movement
Closes #2345

--------------------------------------------------------------------------------
a5a8893891 | Edgar A. Bering IV | 2022-01-09 17:46:38 -0600

fix: a teleport closet in Nemelex: the Gamble
Closes #2138. Closes #2126.

--------------------------------------------------------------------------------
47dfaac58e | DreamDust | 2022-01-09 17:23:04 -0600

fix: prevent breaking level connectivity (#2137)
Closes #2039 



Adds extra padding to nicolae_take_the_stairs
--------------------------------------------------------------------------------
108eccecdf | Aliscans | 2022-01-09 17:21:26 -0600

fix: use the standard names for monsters in "comes into view" messages. (#2132)
Change the "comes into view" messages to use the names the game normally uses 
for each monster by preference, rather than a name based on the monster type. 
This particularly affects dancing weapons and ugly things.



The game still uses different names (based on the "genus") when a lot of 
different monsters come into view at once.



This should fix bug #0012649.



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
6c55d0bc0c | Edgar A. Bering IV | 2022-01-09 16:07:00 -0600

feat: display to hit chance for targeted drac breath weapons
Closes #2165. This also resolves some internal todos around zap mappings
for breath abilities.

--------------------------------------------------------------------------------
c9894997ea | Kate | 2022-01-09 21:27:37 +0000

Adjust Kiku book gift logic
Add Anguish as an option to the second book, move Agony from the second
book to the first, and rework the logic for picking spells.

The first book now guarantees Animate Skeleton, and then picks 3 spells at
random from Pain, Corpse Rot, Sublimation of Blood, Vampiric Draining, and
Agony. The second book guarantees Animate Dead, then picks 4 from Anguish,
Dispel Undead, Borgnjor's Vile Clutch, Excruciating Wounds, Death Channel,
and Simulacrum.

This simplifies much of the logic while retaining the guarantee of a
corpse-using spell in each book, and slightly increases the variation in
spell choices for each book.

--------------------------------------------------------------------------------
de96f65983 | Kate | 2022-01-09 21:27:37 +0000

Update options_guide defaults

--------------------------------------------------------------------------------
6bfe6b3ffa | Kate | 2022-01-09 21:27:25 +0000

Apply coding conventions

--------------------------------------------------------------------------------
6a3f3e4ae6 | Nicholas Feinberg | 2022-01-09 12:48:20 -0800

Fix a crash?

--------------------------------------------------------------------------------
7e5176108a | Nicholas Feinberg | 2022-01-09 11:48:21 -0800

Fix a name mispelling
For years, I was very confident I knew how to spell Yred's name.
For years, I was wrong! Oops.

--------------------------------------------------------------------------------
467f337aae | Nicholas Feinberg | 2022-01-09 11:34:41 -0800

New spell: Anguish (L4 Hex/Necro)
With Yred's Injury Mirror ability removed, the design space of 'retalation
damage' that it occupied has become open. Anguish puts a different spin on
that idea, causing affected monsters to take twice the damage they deal for
the duration of the affect.

Assorted notes:
- The theme is 'haunted by the damage you've done'. Horrible, supernatural
  visions of the wounds you've caused appearing on your own body, that kind
  of thing.
- For flavour reasons, it doesn't work on mindless creatures, but it does
  work on intelligent demons and undead.
- It's not a straight port of Injury Mirror as a player-based duration,
  largely because, without the piety cost of Injury Mirror, it'd suffer
  from the 'buff problem' of something you'd want to have online at all
  times. Probably there's some way to deal with that, but in general,
  Crawl spells work better as things you cast on enemies.
- It's taken Corona's spot in the status effect icons, because Corona
  is now a somewhat uncommon effect on monsters (mostly just from Ru
  retaliation?) and not that important. We should strongly consider
  refactoring the status effects to not be packed into a single int,
  either by adding a second int (lol) or by using a list like sane
  people. We don't need to scrounge for a few dozen bytes per monster...
  it's 2022, for heaven's sake.
- It's Hexes because it checks Will and I wanted to make a hex, and
  it's Necromancy for flavour (somewhat difficult to conceptualize as
  pure hexes) and to suggest fun synergy with undead allies. (Enemies
  hitting your zombies triggers anguish too, which is big thematic!)
- I'm very unsure about balance. Lots of levers and knobs to pull,
  so let's try it out!

--------------------------------------------------------------------------------
af83eef3db | Nicholas Feinberg | 2022-01-09 09:55:52 -0800

Remove support for Yred injury mirror
Since it was removed in b4513a33dfc258858182bc1aa8ffa57d82efba1c .

--------------------------------------------------------------------------------
aff854cc17 | Nicholas Feinberg | 2022-01-09 07:39:54 -0800

Give XP for frenzied monsters' deaths
Frenzied monsters (from orbs of mayhem, Discord, or datura darts)
gave no XP due to a detail of their implementation. In general, it's
better for players to get XP for their kills (mostly for reasons of
'fun'), so let's fix that here. Balance issues are best handled through
other mechanisms.

--------------------------------------------------------------------------------
82390b3a13 | Edgar A. Bering IV | 2022-01-08 11:31:44 -0600

fix: don't strip ashenzari abandoners naked (Aliscans)

--------------------------------------------------------------------------------
0490bf50c2 | Nicholas Feinberg | 2022-01-08 09:20:02 -0800

New hats (CanOfWorms)
This code is very bad.

--------------------------------------------------------------------------------
ec1d49878b | Nicholas Feinberg | 2022-01-08 08:34:59 -0800

Woodcutter/dreamshard tiles (Sastreii)
Like a dream... keep trying, skeleton

--------------------------------------------------------------------------------
39c23d704c | Nicholas Feinberg | 2022-01-08 08:30:36 -0800

Update waypoint docs (Slacking)
Don't claim that show_waypoints exists; it hasn't for quite some time.
(Since f2373cbd01457d94902, 2016.)

--------------------------------------------------------------------------------
3e8e36ac5f | Edgar A. Bering IV | 2022-01-08 10:06:31 -0600

fix: nerf seracfall
Reviewing tvs and play data, wendigo had big assists with shard shrikes
(whose prevalence was turned down). Cocytus remained an outlier among
the hells, with wendigo getting the lion's share of hell kills.

So let's tone down seracfall damage a bit.

--------------------------------------------------------------------------------
a82b073101 | Edgar A. Bering IV | 2022-01-08 09:43:47 -0600

fix: use abyss regeneration for wizard level regeneration
Closes #2342

--------------------------------------------------------------------------------
f3d713df7a | Edgar A. Bering IV | 2022-01-07 14:43:57 -0600

refactor: give !xp power scaling

--------------------------------------------------------------------------------
d764ef0d23 | Edgar A. Bering IV | 2022-01-07 14:43:57 -0600

feat: give an XP reward for the abyssal rune
With the abyss now stripped of most rewards, let's give the rune a
stronger incentive. It gives a potionlike effect for potions of XP
equivalent to two potions of XP (due to how its implemented it gives
slightly less skill XP than quaffing two !xp, but it's still a nice blob
of skill XP and two XLs).

--------------------------------------------------------------------------------
d21ca1c0ff | Kate | 2022-01-07 14:43:57 -0600

feat: make Abyss exits and staircases slightly more common
With the changes to prevent scumming for XP or items in the Abyss, make
exits slightly more common to try and make Abyss trips tend to be shorter
(especially for characters that reach/are pulled to greater depths).

--------------------------------------------------------------------------------
6c1bee596d | Kate | 2022-01-07 14:43:57 -0600

feat: reduce wretched star malmutation rate
Since it's no longer possible to work off temporary mutations while in the
Abyss, make wretched stars only ever apply 1 bad mutation at a time with
Corrupting Pulse, and reduce its casting weight so that it's more likely to
be possible to deal with them without racking up a huge amount of bad
mutations for the current Abyss trip.

--------------------------------------------------------------------------------
010f2a2272 | Kate | 2022-01-07 14:43:57 -0600

feat: don't grant piety in the Abyss
Alongside XP gain and item generation, it also shouldn't be possible to
gain piety in the Abyss, or to goldify corpses under Gozag. Uskayaw is an
exception, since the piety isn't persistent, and likewise Yredelemnul still
works normally.

--------------------------------------------------------------------------------
3b305989a8 | Edgar A. Bering IV | 2022-01-07 14:43:57 -0600

feat: increase abyss plunge rate
The chance to fall deeper into the abyss is meant to increase the
challenge, discourage scumming at high levels, and speed strong
characters to the rune encounters. The chance is a bit low, this tunes
it up.

--------------------------------------------------------------------------------
578a0bbfb4 | Edgar A. Bering IV | 2022-01-07 14:43:57 -0600

feat: remove abyss random item generation
The second half of abyss scumming, collecting consumables on Abyss:1 and
departing promptly on the first offered XP gate exit. Again, this has
historically been regarded as not-worth-the-risk, but the shifting
nature of the end game means that balance has changed.

Vaults can still place items, but vaults are scary and sufficiently rare
that this should be low enough percentage to be not a good idea to scum.

--------------------------------------------------------------------------------
fcf540680d | Edgar A. Bering IV | 2022-01-07 14:43:57 -0600

feat: prevent gaining experience in the Abyss
Abyss scumming has been present in the game for a long time, a lingering
design wart where the running thinking is that the risks outweigh the
benefits. With the changes to the Hells and Tomb this wisdom is a bit
lackluster; indeed the strategic damage of the Hells can be countered by
"working off" the stat and HP drain in the abyss.

This commit locks out progress towards all XP-gated effects except the
abyss progress timer. The player gets messaging to show Abyss monsters
grant no rewards.

--------------------------------------------------------------------------------
19973ebb7a | Nicholas Feinberg | 2022-01-07 11:29:03 -0800

Fix some mutation comments

--------------------------------------------------------------------------------
79b0f14e7e | Nicholas Feinberg | 2022-01-07 11:27:09 -0800

Fix a mutation crash?

--------------------------------------------------------------------------------
a4934feff6 | Kate | 2022-01-07 18:27:16 +0000

Remove the strength bonus from bite damage
It was the only attack remaining with a special-cased stat bonus on top of
the regular stat multipliers, and it was mostly an insignificant bonus.
Increase base bite damage by 1 for bite attacks (which does include VS bite
bite although this didn't previously benefit from the strength bonus), and
give Dragon Form an effective extra 2 levels of fangs since this would be
the main case where the strength bonus was actually noticeable.

--------------------------------------------------------------------------------
ed6f2ea202 | Nicholas Feinberg | 2022-01-07 09:45:50 -0800

Remove a misleadingly named function
undead_mutation_rot sounded like it would rot the player for trying
to mutate. But it was just a thin alias over a bool check!

--------------------------------------------------------------------------------
8ce13c4dff | Nicholas Feinberg | 2022-01-07 09:43:38 -0800

Simplify delete_mutation() (gammafunk, Sauken)
Replace a complex and hard-to-reason about loop with some classic
unweighted reservoir sampling.

--------------------------------------------------------------------------------
082bef1587 | Nicholas Feinberg | 2022-01-07 08:02:30 -0800

Remove many diverse spells (dilly)
RIP big spellbooks.

--------------------------------------------------------------------------------
7c84da036a | Nicholas Feinberg | 2022-01-06 18:33:56 -0800

Remove most angel sInv (Yermak)
Largely redundant with haloes.

Seraph keeps it as a 'boss', and profane servitor of course has an
unhalo.

--------------------------------------------------------------------------------
c19253909b | Nicholas Feinberg | 2022-01-06 18:17:08 -0800

Remove sInv from guardian mummies (kate)
Plenty of other Tomb enemies still have it, and it's odd for guardian
mummies to keep sInv while the 'higher threat' mummy priests don't.

--------------------------------------------------------------------------------
493c1fd462 | Nicholas Feinberg | 2022-01-06 18:09:36 -0800

Strip sInv from various enemies
Now that Invisibility isn't a player-castable spell, we can dial back
on monster sinv and prune it off some monsters.

This cuts sInv from:
- shrikes (both)
- orc high priests, deep elf high priests, mummy priests, hierophants
- water nymphs
- ancient zymes, worldbinders, tentacled starspawn
- jiangshi
- shadow imp, chaos spawn, sun demon, ynoxinul
- mlio minderbender, grinder, rupert

Things that still have sInv:
- spriggans, nagas, trolls and jellies
- vault guards
- "wizards" (some)
- high-tier demons & all angels
- some statues and some other stuff

Plausible that more pruning is called for in future.

--------------------------------------------------------------------------------
f95308ed99 | Kate | 2022-01-06 04:12:50 +0000

Add an ability targeter for Hepliaklqana Idealise

--------------------------------------------------------------------------------
a4a8cb2b72 | Nicholas Feinberg | 2022-01-05 19:50:16 -0800

Remove the Tomb of Dorokhle
Enormously complex, very weird (it'd turn into Blink in various cases?),
and rather pointless.

--------------------------------------------------------------------------------
445fb3080f | Nicholas Feinberg | 2022-01-05 19:41:24 -0800

Add Enfeeble tile (Sastreii)

--------------------------------------------------------------------------------
32e282a20f | Kate | 2022-01-06 02:17:53 +0000

Simplify Jiyva tendril disarm chance
To not check strength/dexterity - just use a straight monster HD check, and
don't give "fighter" tagged monsters a bonus to their HD.

--------------------------------------------------------------------------------
0b286ecb3d | Kate | 2022-01-06 02:12:11 +0000

Fix retaliation dealing 0 damage with Confusing Touch active

--------------------------------------------------------------------------------
2894324c5e | Kate | 2022-01-06 02:12:11 +0000

Adjust Minotaur retialiation chance
To be based on XL instead of stats, as with other incidental strength and
dexterity checks. Now grants around a 25% chance to retaliate at XL1, and
around a 50% chance at XL27, which is comparable to the previous chances
for a Minotaur with average stats.

--------------------------------------------------------------------------------
a8dd43b1d0 | Edgar A. Bering IV | 2022-01-05 11:34:09 -0600

tiles: radioactive spikes (Sastreii)

--------------------------------------------------------------------------------
7885d49575 | Edgar A. Bering IV | 2022-01-05 11:17:34 -0600

fix: account for orbs in invis_allowed (#12662)

--------------------------------------------------------------------------------
4df0f3684d | Edgar A. Bering IV | 2022-01-04 22:05:20 -0600

fix: spacing

--------------------------------------------------------------------------------
ffcb275ae5 | Kate | 2022-01-05 02:18:06 +0000

Increase kite shield and tower shield encumbrance
They were tuned a little low with the new formula. Tower shields now have
similar penalties (for normal-sized species) to before the rework, and kite
shields still have lower penalties until around 8 skill.

--------------------------------------------------------------------------------
ee2755802b | Kate | 2022-01-05 01:41:15 +0000

Refactor aux attack accuracy
Factor in some accuracy bonuses/penalties that previously weren't handled
for aux attacks (palentonga roll/transformation/halo bonuses, and
invisibility/umbra penalties), and don't make Confusing Touch affect aux
attack accuracy or damage.

--------------------------------------------------------------------------------
4b82a7ed23 | Kate | 2022-01-05 01:41:15 +0000

Rework offhand punch checks
Simplify the check for offhand punches and make them overall slightly more
likely to trigger - don't make heavy armour reduce the chance of punching,
and get rid of Octopodes' improved chance for offhand punches (they still
the benefit of being able to punch with a shield/two-handed weapon). All
species instead have a 5% chance to trigger an offhand punch that scales
with unarmed combat skill to a 50% chance at max skill (compared to a a 33%
chance previously at 20 UC or higher).

--------------------------------------------------------------------------------
3a1cdb9d31 | Kate | 2022-01-05 01:41:15 +0000

Base aux attack chance on XL instead of str+dex
Aux attacks had a fairly obscure chance to trigger based on str+dex,
followed by various other specific checks depending on the type of attack.
Simplify by making the initial check depend only on XL, scaling from just
over 50% at XL1, up to near 100% at XL27.

--------------------------------------------------------------------------------
7b68f1b707 | Kate | 2022-01-05 01:41:15 +0000

Rework shield penalties
To remove the hard skill thresholds for shield skill training, rework
shields to use a similar formula to armour encumbrance, with the penalties
being fully removed at 27 skill.

The new formula is:

2/5 * shield_penalty^2 / (20 - 3 * racial_factor) * (27 - shield_skill) / 27

where shield_penalty is 5 for bucklers, 9 for kite shields, and 13 for tower
shields, and racial_factor is -2 for large species and formicids, 0 for
medium species, 2 for kobolds, and 4 for spriggans.

--------------------------------------------------------------------------------
d379f8d934 | Nicholas Feinberg | 2022-01-04 17:26:20 -0800

Remove an unused attack field

--------------------------------------------------------------------------------
2cf8304be8 | Kate | 2022-01-05 00:53:55 +0000

Fix halo descriptions on '@'
Broken since 44cf67ff301, oops.

--------------------------------------------------------------------------------
dcb3f3653b | Kate | 2022-01-04 17:59:36 +0000

Update the quickstart guide
It's an ancient relic either way, but still!

--------------------------------------------------------------------------------
4f6bc678fa | Nicholas Feinberg | 2022-01-03 14:44:42 -0800

Remove to-hit penalties from armour & shields
These were so small as to be unnoticeable in almost all plausible
cases. There are already many interesting tradeoffs from wearing
heavy armour & shields; we don't need to complicate things further.

--------------------------------------------------------------------------------
c92c38d8fe | Nicholas Feinberg | 2022-01-03 14:02:34 -0800

Fix to-hit display of armour/shield penalties
What a ridiculous bug! This has been broken for the last 1.5 years,
since I added it in 5b8897f42da . Simply too many randoms...

--------------------------------------------------------------------------------
bd29554cb1 | hellmonk | 2022-01-03 16:34:23 -0500

reduce meliai frequency in spider

--------------------------------------------------------------------------------
b5fd6dc846 | Nicholas Feinberg | 2022-01-03 11:05:40 -0800

Don't allow omnireflecting vampiric draining (Grit)
Your +3 warlock's mirror {reflect} reflects the Vampiric Draining!
INVALID YOU_FAULTLESS draws life force from the deep elf death mage!

Would be nice to fix this instead, though I'm not sure what the correct
behaviour would be. Would need to poke at _vampiric_draining_effect for
a bit.

--------------------------------------------------------------------------------
cbb8a028cc | Nicholas Feinberg | 2022-01-03 11:00:05 -0800

Allow scorch recasts to refresh duration (Snakku)

--------------------------------------------------------------------------------
fede4e8891 | Nicholas Feinberg | 2022-01-03 10:53:02 -0800

Remove old shaft immunity
Obsoleted by the removal of multiple explore traps per branch (in
2ccdadd).

--------------------------------------------------------------------------------
c726bef33b | Kate | 2022-01-02 19:24:15 +0000

Simplify Gozag gold distraction (hellmonk)
Instead of using bernoulli trials and reducing the chance to gain stacks
depending on the number of current stacks, make gold distraction a simple
3% chance per stack to distract, capped at 10 stacks, and with all valid
kills increasing the stack count.

--------------------------------------------------------------------------------
3b246a18e6 | Kate | 2022-01-02 18:46:36 +0000

Reduce Ashenzari's skill boost (again)
It was still very overtuned after the previous reductions (and is probably
still pretty generous even after this change) - 4 boosts are now equivalent
to the old fully bound boost.

--------------------------------------------------------------------------------
3a22ab9bdc | Nicholas Feinberg | 2022-01-01 14:31:22 -0800

Restore 0.26 acquirement frequency (perryprog)
Looks like it got drastically boosted at some point. Not clear how.

--------------------------------------------------------------------------------
95c3d9ec3d | Kate | 2022-01-01 22:12:49 +0000

Let autofight target frenzied monsters (nicolae)

--------------------------------------------------------------------------------
cb2c1687f3 | Nicholas Feinberg | 2022-01-01 13:57:53 -0800

Add some lovely puppies (Sastreii)
New tiles for Pharaoh Ants, Jorogumos, and Broodmothers.

--------------------------------------------------------------------------------
b830f16b3f | advil | 2022-01-01 14:24:28 -0500

feat: improve mouse handling for message pane input
* Don't lose focus when clicking on random stuff. Before you could click
  on e.g. the dungeon and nothing would happen, except that the input
  would lose focus.
* With tile_web_mouse_control, right click exits a prompt by sending
  esc. (This could also accept left click, maybe outside of the message
  pane, but in my testing this seemed too prone to misclicks.)
* Smooth over trading focus with the chat pane

--------------------------------------------------------------------------------
7516f22de0 | advil | 2022-01-01 14:24:28 -0500

fix: add a missing Error instance in webtiles

--------------------------------------------------------------------------------
92835e5c71 | Kate | 2021-12-31 21:11:24 +0000

Add some newlines in ammo descriptions

--------------------------------------------------------------------------------
5f6e48996a | Kate | 2021-12-31 21:10:36 +0000

Make blindness, frenzy, antimagic and daze dispellable
Partially going back on a previous commit (8836bdb7) - frenzy was made
undispellable since various other dart effects were also undispellable, but
this approach doesn't really work consistently, since most monster
enchantments can be applied by multiple different sources (eg frenzy can be
applied by Discord as well as orbs of mayhem and darts of datura) and it's
unclear why effects like this wouldn't be considered dispellable.

--------------------------------------------------------------------------------
dd239049a3 | Kate | 2021-12-31 20:21:56 +0000

Allow attacking frenzied monsters normally
Unlike regular neutral monsters, they don't turn hostile when attacked, so
there's no reason to have any restrictions on attacking them.

--------------------------------------------------------------------------------
bf4c3871c4 | advil | 2021-12-31 14:29:09 -0500

fix: don't ignore game menu exit button
Yet another fix of a fix

--------------------------------------------------------------------------------
9884ec658a | advil | 2021-12-31 14:24:25 -0500

refactor: consolidate help lookup to one UI
This commit entirely removes the message pane UI for help lookup,
replacing it with the menu-based version added in 4c3c5a04a9. Along the
way I did a bunch of tweaking and testing of this menu; main secondary
changes:

* submenus have arrow key navigation enabled
* exit menu is the last item, not the first
* some error popups clarified and improved, fully works on webtiles
* the key to open this popup from the game menu is now `/`, for
  consistency with `?/`.
* use the search icon introduced in 4c3c5a04a9 across the board instead
  of the circled i icon.

Some of these could be adjusted further if desired.

--------------------------------------------------------------------------------
39bde7bcfb | advil | 2021-12-31 12:23:09 -0500

fix: further fix game menu fallthrough behavior
Generalize a75cb3825e and fix the save command. In local games, this was
crashing at the main menu when used, with a segfault in UI code.
(Possibly indicates a bug there? But it's safest just to exit the popup
anyways.)

--------------------------------------------------------------------------------
b870ddcdaf | advil | 2021-12-31 12:23:09 -0500

fix: use correct save and X wording in game menu
That is, don't mention the "main menu" if the game is in a state where
one won't be used.

--------------------------------------------------------------------------------
9cff2364a1 | gammafunk | 2021-12-31 01:47:45 -0600

feat: Nerf ghost moth melee a bit
These currently hit for up to 76 damage. Compare to emperor scorpions, a
top-tier melee-only threat, that do up to max 60 damage with the same
monster speed of 12. The increased ghost moth damage was to allow
af_drain_stat to apply more often, but it had the side effect of turning
them into the HULK (which is hard to program). Nerf their (28, 28, 20)
melee attacks down to (24, 18, 18) for now.

Some play-testing shows them still able to drain stats in honorable
single combat versus a shield-equipped HuFi possessing sInv. The stat
drain I got while testing was fairly minor; typically a few points in a
couple stats after one fight. If we'd like the drain to become more
relevant, it may be best to increase the amount of stat drain applied
per successful hit, since it's clear that the stat drain will still get
applied with these nerfed numbers even against characters with strong
defenses.

--------------------------------------------------------------------------------
a75cb3825e | advil | 2021-12-30 22:04:12 -0500

fix: correct a fallthrough issue with e3a463e

--------------------------------------------------------------------------------
7577a969be | advil | 2021-12-30 21:57:59 -0500

fix: a few issues with the help lookup menu
* Don't show an extra popup when escaping out of the text entry
  sub-popups. (Super ugly code, this stuff could use a refactor to not
  rely on `response` for a non-error condition.)
* Do actually show the above popups in webtiles (before it didn't do
  anything but still needed the key input). This popup is a bit rare now
  it seems but can at least be triggered on a string consisting of
  spaces.
* Remove some (I think) unnecessary UI_CRT things.

--------------------------------------------------------------------------------
e3a463ef05 | advil | 2021-12-30 21:57:59 -0500

fix: submenu behavior for most main menu commands
It was probably a strategic error to not do this initially, but I think
having a submenu open is more what people would expect from a main menu
command. I didn't do this for CMD_QUIT because it uses a message pane
prompt. The lookup menu already did this.

--------------------------------------------------------------------------------
76a60e06d6 | Nicholas Feinberg | 2021-12-30 17:25:01 -0800

New placeholder Jorogumo tile

--------------------------------------------------------------------------------
69a50951d7 | Nicholas Feinberg | 2021-12-30 16:33:36 -0800

Fix tag_upgrade build

--------------------------------------------------------------------------------
0aadbb367f | Nicholas Feinberg | 2021-12-30 16:23:34 -0800

Improve frenzy UX
- Allow targeting frenzied monsters with damage spells, etc normally.
- Don't make good gods punish you for attacking frenzied monsters.

--------------------------------------------------------------------------------
33a2d3f881 | Nicholas Feinberg | 2021-12-30 16:06:16 -0800

Remove one last ray of sunshine
TARG_HOSTILE_SUBMERGED, unused since 1d64b78cf4984becb95c8.

--------------------------------------------------------------------------------
b64ed734f3 | Nicholas Feinberg | 2021-12-30 15:59:07 -0800

Correct a frenzy comment
ENCH_FRENZY does not exist.

--------------------------------------------------------------------------------
d371e1541e | Nicholas Feinberg | 2021-12-30 15:57:23 -0800

Merge strict neutral with good neutral (kate)
They were almost identical. The only difference is that jellies will
now show up with a brown background instead of grey & will be
described as 'fellow slime' instead of 'indifferent', which seems
fine! (Could have made them grey instead of brown, but it'd be misleading.)

--------------------------------------------------------------------------------
7e0445c96d | Nicholas Feinberg | 2021-12-30 10:38:27 -0800

Bring back Xom's dragons (kate)
This partially reverts commit a0dfb7b2014fc097504f6b115edb92e612a79952.

--------------------------------------------------------------------------------
a0dfb7b201 | Nicholas Feinberg | 2021-12-30 10:34:39 -0800

Remove non-player-castable Xom spells (pi-314)

--------------------------------------------------------------------------------
e07096e7bc | Nicholas Feinberg | 2021-12-30 10:25:58 -0800

Fix channeled exegesis from ignorance (Nomi)
Don't end channeled spells immediately when you exegesis them with
no spells memorized.

--------------------------------------------------------------------------------
6040ee8864 | Nicholas Feinberg | 2021-12-30 10:10:57 -0800

Remove the orb
Added accidentally.

--------------------------------------------------------------------------------
b2e798e311 | Nicholas Feinberg | 2021-12-30 09:52:38 -0800

Improve orb of light description (🐙Mike)

--------------------------------------------------------------------------------
0273388e84 | Nicholas Feinberg | 2021-12-30 09:05:12 -0800

Add player orb tiles
Feel the orb within your hand... feel its cold, smooth surface. The
deadly temptation of its power. Who could stand against you if you
bore such a device? Who could withstand the sorcery boiling within,
seeking only a crack to escape and wreak boundless havoc? You would
be a king. No... more. A god.

--------------------------------------------------------------------------------
7b639605f7 | Nicholas Feinberg | 2021-12-30 08:36:54 -0800

Fix Hep powers webtiles display (🐙Mike)

--------------------------------------------------------------------------------
e1d817e1ef | Nicholas Feinberg | 2021-12-30 08:23:04 -0800

Fix allied radroach crash
Instead of consistently crashing when an allied radroach decides
whether or not it should cast irradiate, don't crash instead. Also,
switch to using a tracer for irradiate cast logic instead of weirdly
hand-replicating the same logic.

--------------------------------------------------------------------------------
2ac24fcec8 | Nicholas Feinberg | 2021-12-30 07:30:37 -0800

Remove un-ID'd angel weapon code
I warned it'd never come up, and now it definitely won't!

--------------------------------------------------------------------------------
2ad6d04315 | Neil Moore | 2021-12-29 23:12:07 -0500

Handle correct name of Japanese language.
Ever since the very first commit that introduced Japanese support (viz.
05c31b08e25), the lang option has accepted the ethnonym <nihonjin> but
not the name of the language <nihongo>.  Leave <nihonjin> as an
alternative for compatibility.

--------------------------------------------------------------------------------
cf31067fe6 | Kate | 2021-12-30 02:54:40 +0000

Mark some orbs as useless when appropriate

--------------------------------------------------------------------------------
62fc55f08d | Kate | 2021-12-30 02:29:00 +0000

Fix Summon Spider messaging (nicolae)

--------------------------------------------------------------------------------
c3160e8207 | Nicholas Feinberg | 2021-12-29 16:45:36 -0800

Tweak channel status descriptions
Semicolons are a dangerous vice, not to be overindulged.

Also, it's *waves* of flame, not *a wave* :P

--------------------------------------------------------------------------------
1c5e12ca7f | Kate | 2021-12-30 00:01:36 +0000

Fix some descriptions (Ge0ff)

--------------------------------------------------------------------------------
a5cd5cae6f | Kate | 2021-12-29 23:31:18 +0000

Rename Heavenly Storm's status light (PleasingFungus)
To no longer overlap with Storm Form.

--------------------------------------------------------------------------------
cbcab8c68d | Kate | 2021-12-29 22:55:36 +0000

Don't gender some non-unique enemies
Water nymphs, harpies and jorogumos were always gendered female which was
inconsistent with all other non-unique enemies.

Closes #2317.

--------------------------------------------------------------------------------
9cd67a661c | Kate | 2021-12-29 22:55:36 +0000

Update some status light descriptions
And the related spell descriptions for some forms. Currently Heavenly Storm
and Storm Form overlap, and one of them needs their status light to be
renamed.

Closes #2321.

--------------------------------------------------------------------------------
050f3537b9 | advil | 2021-12-29 17:37:17 -0500

fix: restore rest behavior when > rest_wait_percent
The => was accidentally introduced in 0bdd5ba03093.

Resolves #2304

--------------------------------------------------------------------------------
113dc556a4 | Kate | 2021-12-29 01:50:18 +0000

Remove unequip penalties from the robe of Misfortune
It's no longer intended to be a strictly-bad unrand, with its design being
that it grants substantial AC/EV but with the significant downsides of
*Slow and *Corrode when damage is received, as well as having Harm. To
encourage at least trying it on, remove the Contam and Drain on unequip -
as body armour, it can't be quickly swapped so doesn't need an additional
unequip penalty alongside the Harm.

--------------------------------------------------------------------------------
c8854da52d | Kate | 2021-12-29 01:44:13 +0000

Simplify an orb check

--------------------------------------------------------------------------------
fc495fb4ec | Nicholas Feinberg | 2021-12-28 17:26:06 -0800

Don't talk about orb AC (ShaperMC)
Squash a pointless message in orb descriptions.

--------------------------------------------------------------------------------
6b9ff3a05d | Nicholas Feinberg | 2021-12-28 11:06:26 -0800

Refactor Irradiate, pt 1 (sdynet)
Don't prompt when a monster would irradiate one of your allies, do
pass the caster by reference rather than as a pointer, and various
other fixes.

--------------------------------------------------------------------------------
18cc7973ba | Kate | 2021-12-28 18:11:32 +0000

Improve Makhleb destruction ability descriptions

--------------------------------------------------------------------------------
3d317c14f4 | Kate | 2021-12-28 18:11:32 +0000

Make Chei consider orbs of mayhem hasty

--------------------------------------------------------------------------------
ba9079b354 | Edgar A. Bering IV | 2021-12-28 12:08:03 -0600

docs: changelog through 0.28-a0-1340-g77f64c2

--------------------------------------------------------------------------------
77f64c2f64 | Edgar A. Bering IV | 2021-12-28 08:51:10 -0600

fix: prevent wearing an orb while wielding a 2-hander
The reverse check already worked but this one was missed. Closes #2316

--------------------------------------------------------------------------------
a5422284a4 | Nicholas Feinberg | 2021-12-27 20:28:46 -0800

Fix orbs + SH (Lightli)
Don't make orbs set your SH to 0 when you have other sources.

--------------------------------------------------------------------------------
ce4b496cc8 | Nicholas Feinberg | 2021-12-27 18:44:10 -0800

Revert "Let good gods cause some mayhem (booper)"
Neutral is a mess :(

This reverts commit 83453ab7136c4dc63250dae6215468288a3404e4.
This reverts commit 9a4740a79772870bd10ec86309d9a473f55b9590.

--------------------------------------------------------------------------------
83453ab713 | Nicholas Feinberg | 2021-12-27 18:38:02 -0800

Make neutrals considered less friendly
In a few places. Maybe this is an improvement? Unsure.

--------------------------------------------------------------------------------
9a4740a797 | Nicholas Feinberg | 2021-12-27 18:37:40 -0800

Let good gods cause some mayhem (booper)
Good gods don't like you attacking peaceful creatures, like ely's
friendly neutral or kirke's humans' strict neutral (?), but it should
be fine to attack frenzied 'true neutrals'? Maybe? This is too many
neutrals...

--------------------------------------------------------------------------------
ebfa916d04 | Nicholas Feinberg | 2021-12-27 18:22:21 -0800

Clarify mayhem (booper)

--------------------------------------------------------------------------------
1c9ffb4daf | Nicholas Feinberg | 2021-12-27 13:57:16 -0800

Fix a duration crash (skeral)
Introduced by 95685b5d4a526e94ea562b9df2ea7fce36eb05bc .

--------------------------------------------------------------------------------
95685b5d4a | Nicholas Feinberg | 2021-12-27 12:52:58 -0800

Rename mid_msg -> expire_msg, etc (Pinkbeast)
5c2cb368445 (2015) continued the misleading naming used by
_decrement_a_duration() in which effects for the 'expiration point'
(an arbitrary # of turns before the end of a duration at which the
player is warned that it's nearly done) were claimed to occur at
the 'midpoint' (50% of the way through the duration.) Fix this.

--------------------------------------------------------------------------------
9cdbbaba87 | Nicholas Feinberg | 2021-12-27 12:44:16 -0800

Remove centaurs (Lici)
Centaurs weren't meaningful threats in Shoals. They are a nice match
for the vaguely Greek mythological theme, though, so swap in some
centaur warriors instead.

--------------------------------------------------------------------------------
a7867985be | Kate | 2021-12-27 20:16:58 +0000

Adjust some monster genuses

--------------------------------------------------------------------------------
586501026f | Kate | 2021-12-27 20:16:58 +0000

Remove some speech lines and a randbook name
As with recent changes to Yred's theming, remove a few somewhat tasteless
lines.

--------------------------------------------------------------------------------
e4a90f2674 | Kate | 2021-12-27 20:16:58 +0000

Remove some obsolete book titles

--------------------------------------------------------------------------------
8ca4fe5f7a | Kate | 2021-12-27 20:16:58 +0000

Display drowning resistance in monster descriptions

--------------------------------------------------------------------------------
9e5b8c6e9f | Kate | 2021-12-27 20:16:58 +0000

Remove water vulnerability
Only an extremely small number of monsters were vulnerable to water, it did
very little (affecting only direct BEAM_WATER damage, but not granting any
additional vulnerability to waterlogging or engulfing), and the player has
minimal access to sources of water damage.

--------------------------------------------------------------------------------
8dc402e326 | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

REVERTME: increase orb rate for testing

--------------------------------------------------------------------------------
961f3f1587 | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

fix: remove a placeholder

--------------------------------------------------------------------------------
17eb628754 | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

feat: orbs of energy (bringing back the crystal ball)
This commit adds a new "energy" orb ego that offers passive channeling,
like Wucad Mu. The implementation is set to stack with Wucad Mu and any
other potential source of energy (currently none) in the following ways:

- The trigger chance is multiplied by the number of sources.
- The all sources must backfire for the backfire effect to trigger.

Wucad Mu's channeling was interesting, but compared to an enhancer staff
or other unrands the effect underwhelemed many players. In addition to
offering channeling with a shield, this commit buffs Wucad Mu by making
it count as two sources of channeling for internal calculations.

XXX: Unsure of the best way to communicate this to the player without
turning our inscriptions into a line of dubious code, inscribing it
*channel++ just doesn't sit right.

--------------------------------------------------------------------------------
92c09265f1 | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

feat: orbs of guile
The guile ego is a will-check analog of harm: it reduces the willpower
of any user's target by 3 * WL_PIP, in exchange for reducing the
willpower of the user by 2 * WL_PIP.  This is more interesting than a
straight hex enhancer: the tradeoff is stiffer and it works with all
willpower checks, not just hexes.

--------------------------------------------------------------------------------
ecb9636ef5 | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

feat: orbs of mayhem (nicolae)
The mayhem ego for orbs causes monsters who see the wielder kill
something to go frenzy. It only hits one monster per kill with a
coinflip for now. This could be adjusted up or down based on power, but
we definitely don't want to give out free Discord casts for a single kill.

--------------------------------------------------------------------------------
acce00ee20 | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

feat: orbs of wrath
A *Rage orb, because *Rage is powerful, fun, and dangerous. This one is
in the mix because why should spellcasters get all the orb fun.

--------------------------------------------------------------------------------
973e1c81fd | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

feat: orbs of light
The first of several orb egos, an orb of light gives the player a radius
3 halo. Halo prevents invisibility and backlights the player (an extra
defensive penalty) in exchange for revealing invisible creatures and an
accuracy bonus. Alone the accuracy bonus isn't that big, but an ally
user can get quite a bit of a boon from halo.

This is probably the weakest of the orb egos, but that's ok. In general
orb egos will represent some kind of a tradeoff, as they're egos that
one can use in place of a shield without training.

--------------------------------------------------------------------------------
e3aa5898da | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

feat: chill lofi orbs to ponder/crawl with
A shield-slot analog of scarves, meant to play with the same sort of
defense/interesting ego trade-off. Orbs give no SH and no penalty.

"Caster" and some "battlemage" archetype characters are almost always
steered to shields through a confluence of factors:

- cheap one-handers (demon weapons and shortblades) that can be amplified
  with magic
- one-handed enhancer staves leaving the other hand flapping around
  empty and begging for a shield
- shield penalties are easier for low-strength characters to overcome

Forthcoming commits will introduce orb egos (currently ponderous is a
placeholder but will not be on the final list) aimed at expanding the
options for these characters. Another direction to pursue in this design
space is to create some 2-handers that tempt such characters, this is
not an exclusive direction so both could happen, but for now orbs are
what we've got.

--------------------------------------------------------------------------------
050272b745 | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

refactor: adjust some reflection checks
Make actor.reflection() do what it says on the tin, and use the
shield_reflects(item) method only for messaging, not for determining
which actors are reflective.

--------------------------------------------------------------------------------
9e8018ba61 | Edgar A. Bering IV | 2021-12-27 14:13:17 -0600

fix: remove the limit on weapon and armour egos
These were limited for seen item tracking to (subtly) influence acquire.
Unlike seen basetypes, seen ego tracking makes a lot less sense, since
seeing an ego on an unwanted base type tells us nothing about the
player's preferences.

This seemed cleaner than the save-compatibility needed to expand the
bitfields because they're saved.

--------------------------------------------------------------------------------
e154d51992 | Nicholas Feinberg | 2021-12-27 11:22:27 -0800

Revert "fix: remove a now unused MB check"
This broke the bound soul icon.

This reverts commit 53f92202ff9e202943409b577e6ad06e644bce8b.

--------------------------------------------------------------------------------
f86f92d26c | advil | 2021-12-27 13:58:43 -0500

fix: bounds checks for monster lrd and ghostly sacrifice
This removes the hardcoded checks from 73776a4c32c7 and 4f857bc58ec3.
The reason for these crashes and for their variability was that the fake
monster used for the validity check is at position 0,0. So if the game
was saved on a level where a monster was in the upper left corner, the
iterators used in these two spells would fire a tracer at the monster
during game setup. The presence of a salt entrance in the save in #2308
was a red herring, it's just that this level had some monsters in the
right place.  It's probably still not ideal that the level even exists
at the point where this validity check happens?

Re-resolves #2308, should resolve #2281 (though I couldn't get an abyss
crash to happen on demand). I also added a bit more info to the ASSERT
that may make this easier to track down in the future.

--------------------------------------------------------------------------------
73776a4c32 | advil | 2021-12-27 13:19:26 -0500

fix: don't fire tracers for ghostly sac validity check
This is a followup to 4f857bc58ec3, it seems that this ASSERT triggers
only if a monster with the relevant spell is on the level where a player
saved. (???)

Resolves #2308

--------------------------------------------------------------------------------
bc27143018 | Nicholas Feinberg | 2021-12-27 07:16:34 -0800

Revert "Move the Mace of Variability to the early game"
Various people have pointed out that, while the mace of variability
used to be weak enough to be an early game item, it's now a compelling
one for the later game. Mea culpa!

This reverts commit fdf38ca10bdff2f4954046791e0ea06d90ea673a.

--------------------------------------------------------------------------------
71652a0310 | Nicholas Feinberg | 2021-12-26 19:49:55 -0800

Add a guarded Meek vault

--------------------------------------------------------------------------------
0e9cb7027e | Nicholas Feinberg | 2021-12-26 19:49:55 -0800

New early-game unrand: staff of the Meek
Another early-game unrand, the staff of the Meek is a +7 quarterstaff
of super-protection. When the player is below 55 HP, the staff of the
Meek gives extra AC, scaling up to an additional +7 AC (for a total of
+14) at 27 HP or below. I suspect it might be slightly overtuned.

--------------------------------------------------------------------------------
be34dac4b3 | Nicholas Feinberg | 2021-12-26 19:49:55 -0800

Rename Danyla -> Delatra
To avoid name conflicts with Slavic regions.

--------------------------------------------------------------------------------
dce6b4fef7 | Nicholas Feinberg | 2021-12-26 19:49:55 -0800

Move the Robe of Augmentation to early-game (Lici)
It's just not that strong.

--------------------------------------------------------------------------------
17cdd1422e | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

New early-game unrand: Throatcutter
Throatcutter is a +7 long sword of draining with a 33% chance to
instakill struck foes that are below 21 hp. Monster HP tends to
increase over the course of the game, so this is of course most
relevant early on. It's a bit like extra AC-ignoring damage, but
it only works when enemies are at low HP to begin with.

Terence gets a Maggie-esque 1% chance to spawn with this.

--------------------------------------------------------------------------------
a2d17535fb | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Move the Trident of the Octopus King early
It's too weak to be good later, unless its gimmick goes off, which it
won't. (FR: new/tweaked gimmick!)

Also remove its Will+ as superfluous. (rElec and rPois are both vaguely
thematic.)

--------------------------------------------------------------------------------
fdf38ca10b | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Move the Mace of Variability to the early game
It's often a trap to use the mace of variability later on, and there are
plenty of fun later-game unrands for m&f users to use. Let's switch this
back to a simple mace (from a great mace), buff its ench (mimicking klown
clubs), and put it in the early-game weapon set.

--------------------------------------------------------------------------------
f4a11d3a62 | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Move Lear's to the early-game
Lear's tradeoff - blocking aux slots in exchange for a big flat AC bonus -
makes more sense in the early game, when players have access to few items
to fill those aux slots. Later on, it just means players get to play around
less with the loot game, which isn't that exciting. Its focus on enchantment
over base AC is also stronger early, when players have little Armour skill.

So, move Lear's into the early-game unrand category (making it more likely
to spawn early & less likely later), and cut its enchantment from +27 to +18.

--------------------------------------------------------------------------------
2cb09928ac | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Shift more unrands to be early-game
Morg, Devastator, the Ratskin Cloak, and Kryia's mail.

- Kryia's mail potion healing buff is more relevant earlyish, when
  potion healing is more relevant and competing armour options are
  worse.
- Ratskin cloak's summons don't scale; makes sense for it to show
  up earlier.
- Devastator as a mini-shatter is a fun earlier-game effect.
- Morg is just too weak for later. At some point I do want it to have
  a better gimmick, though - perhaps some way to trigger a 'sublimation
  of blood'-type HP for MP trade? Or, perhaps, a twist on pain brand
  that's works better in the early game.

--------------------------------------------------------------------------------
dd19a0eca0 | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Fix danyla ftiles (nicolae)

--------------------------------------------------------------------------------
4d69e0ec34 | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Refactor early-game unrand weights

--------------------------------------------------------------------------------
2b8dd8ea68 | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Force woodcutter's axe to speed 10 (hellmonk)
Regardless of being slowed, shield delay, etc, etc.

--------------------------------------------------------------------------------
07e9fc738c | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Add a fireplace

--------------------------------------------------------------------------------
88828878fe | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Add a guarded unrand woodcutter's axe vault

--------------------------------------------------------------------------------
fcf6033174 | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

New unrand: woodcutter's axe
Another early-game unrand, the woodcutter's axe swings at a fixed 10 aut,
regardless of skill. As a +8 vorpal war axe that can never hit a
normal war axe's mindelay, it should become obsolete by midgame, but quite
powerful earlier.

--------------------------------------------------------------------------------
a9f048274c | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Add a guarded unrand vault for Danyla's

--------------------------------------------------------------------------------
7890d4bb03 | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Make Danyla's less likely later
Since Danyla's are intended to be interesting in the early game,
give them a 10x weight at early depths (D:6 and earlier, I think)
and 0.1x weight at later depths.

--------------------------------------------------------------------------------
f9a06f655c | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

New unrand: Danyla's gloves
Continuing the 0.28 trend of new unrands, Danyla's gloves play in the
space of 'unrands for the early game'. The wearer is healed by drinking
unknown potions, and their MP is restored by reading unknown scrolls.
Is it wise to intentionally keep consumables unknown so that you can
use them as ersatz !hw and !magic? Maybe??

I considered also giving some bonus for reading ?id or some alternate
way to use up ?id with these gloves, but that seemed to go against the
design premise. Also, to be a bit too complicated.

More related changes to come in subsequent commits.

--------------------------------------------------------------------------------
1f8817ceea | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Allow artefacts to spawn on D:2-3
To increase variety, and to allow early-game unrands to work, lift
the ban on artefact generation in D:2-3. To discourage startscumming,
D:1 artefacts are still banned.

--------------------------------------------------------------------------------
54527cc1f4 | Nicholas Feinberg | 2021-12-26 19:49:52 -0800

Explain no_upgrade

--------------------------------------------------------------------------------
b4563b27b3 | Nicholas Feinberg | 2021-12-26 14:51:13 -0800

Remove zombie deep dwarf damage shaving
Monster deep dwarf zombies had damage shaving, probably left over
from when actual deep dwarf enemies existed. Let's clean that up.

--------------------------------------------------------------------------------
91df5548d3 | Nicholas Feinberg | 2021-12-26 08:17:46 -0800

Pass item_level into make_item_unrand
This is mostly intended for future changes.

--------------------------------------------------------------------------------
77e77742e6 | Nicholas Feinberg | 2021-12-26 08:14:29 -0800

Fix unrands being able to reappear in the Abyss
This was broken in 850bfe61e39, a year and a half ago. Probably no
one noticed because it's almost impossible to encounter this case
to begin with.

--------------------------------------------------------------------------------
8a08cb6da8 | Nicholas Feinberg | 2021-12-26 08:13:51 -0800

Minor artefact refactoring

--------------------------------------------------------------------------------
700d31dd17 | Kate | 2021-12-26 15:35:15 +0000

Add some new wizards as potential spellbook owners

--------------------------------------------------------------------------------
73c4ac0421 | Kate | 2021-12-26 15:35:15 +0000

Give Portal Projectile a static targeter

--------------------------------------------------------------------------------
6bde065e89 | hellmonk | 2021-12-25 21:40:59 -0500

minor revisions to vampire castle

--------------------------------------------------------------------------------
01e59b5888 | hellmonk | 2021-12-25 21:40:59 -0500

delete boomers
Reduce the number of boomerangs generated in bailey maps and entries.

--------------------------------------------------------------------------------
507d92f863 | hellmonk | 2021-12-25 21:40:59 -0500

various bailey fixes

--------------------------------------------------------------------------------
69d4bd79ad | hellmonk | 2021-12-25 21:40:59 -0500

remove bailey_polearm_4
This map was very small and also very bad.

--------------------------------------------------------------------------------
65a5005c76 | hellmonk | 2021-12-25 21:40:59 -0500

adjust bailey_polearm_2
Make the outer area less annoying and shrink the border. Slightly randomize
monster counts and placements. Adjust loot. Also, fix bailey_polearm_1.

--------------------------------------------------------------------------------
514828de85 | hellmonk | 2021-12-25 21:40:59 -0500

Adjust bailey_polearm_1
Make the moat shallow. Give routes for monsters in the center to escape the
lava (makes the vault less annoying and less cheeseable). Adjust the good
item selection slightly.

--------------------------------------------------------------------------------
c62d020828 | hellmonk | 2021-12-25 21:40:59 -0500

enchanted keep bailey
Spriggans and ogres, plus one small dragon.

--------------------------------------------------------------------------------
b6a7f6400c | hellmonk | 2021-12-25 21:40:59 -0500

checkwhite

--------------------------------------------------------------------------------
1f28f93398 | hellmonk | 2021-12-25 21:40:59 -0500

Prince Ribbit bailey
Feat: frogs, vault guards.

--------------------------------------------------------------------------------
eca784f0a1 | hellmonk | 2021-12-25 21:40:59 -0500

checkwhite

--------------------------------------------------------------------------------
1e23faca81 | hellmonk | 2021-12-25 21:40:59 -0500

remove bailey_axe_1
This was the other kobold boomerang behind water map, and it was very bad.

--------------------------------------------------------------------------------
bafb9c2f4c | hellmonk | 2021-12-25 21:40:59 -0500

Rework bailey_axe_3
This was formerly one of two 'boomerang kobolds behind deep water' baileys. Now
it is a kobold brigand bailey; they replace a few of the regular kobolds
(which are no longer behind deep water) and the other weak enemies. Loot has
been updated to include a few stacks of specialty darts.

--------------------------------------------------------------------------------
fb8d33413f | hellmonk | 2021-12-25 21:40:59 -0500

vampire castle bailey
Features 1-3 vampires with big polearms, a gargoyle, and some orcs.

--------------------------------------------------------------------------------
c7d099ddaa | hellmonk | 2021-12-25 21:40:59 -0500

checkwhite

--------------------------------------------------------------------------------
d8f7bb276c | hellmonk | 2021-12-25 21:40:59 -0500

restructure bailey_axe_of_yendor_kennysheep
Rearrange the layout so that the hard monsters appear later in the map. Also,
randomize monster counts.

--------------------------------------------------------------------------------
a913e2b07b | hellmonk | 2021-12-25 21:40:59 -0500

adjust bailey_axe_bossmonster_kennysheep
Randomize monster counts. Remove deep water to prevent kobold annoyance and
trivial drowning strats. Reduce loot slightly (early portal maps should
generally not place multiple stacks of !exp, I do not care how hard killing the
warlord is).

--------------------------------------------------------------------------------
39464d8d1f | hellmonk | 2021-12-25 21:40:59 -0500

adjust bailey_polearm_5
Reduce and randomize monster counts. Add terrain. Tag the summoning scrolls
no_pickup. Reduce loot slightly.

--------------------------------------------------------------------------------
673e66e2bb | hellmonk | 2021-12-25 21:40:59 -0500

new elf bailey
Places a single pyromancer or zephyrmancer, who is held hostage by the typical
bailey polearm orcs. Armour, potion, and gold loot.

--------------------------------------------------------------------------------
0c74f66fb6 | hellmonk | 2021-12-25 21:40:59 -0500

adjust bailey_polearm_gnolls_kennysheep
Randomize monster count slightly. Add wolves and a chance for Grum. Buff loot.

--------------------------------------------------------------------------------
c07eaa88f9 | hellmonk | 2021-12-25 21:40:59 -0500

adjust bailey_polearm_flooded_kennysheep
Push the centaurs out of the entrance's line of sight. Adjust and randomize
monster counts. Slightly adjust loot.

--------------------------------------------------------------------------------
a63312ec20 | hellmonk | 2021-12-25 21:40:59 -0500

adjust bailey_axe_minmay_hex_keep
Place less popcorn. Space out and randomize "hard" monster locations. Reduce
loot from 2 exp/acq to 1. Still places a warlord.

--------------------------------------------------------------------------------
3b12c07c51 | hellmonk | 2021-12-25 21:40:59 -0500

adjust bailey_axe_4
Give the player a path across the moat without flight. Move the flight items
into the vault proper. Randomize monster placement.

--------------------------------------------------------------------------------
bd0c3d1049 | hellmonk | 2021-12-25 21:40:59 -0500

adjust bailey_axe_2
Add draining to formerly mundane halberds, let orc warrior get in on the elec
action, and nerf the loot (this map is too easy to place guaranteed acq/exp).

--------------------------------------------------------------------------------
46454fb2af | hellmonk | 2021-12-25 21:40:59 -0500

Cut bailey spawn depth
Bailey portals spawned between D:7-14 and in Orc:1. While at first glance this
looks like a small portion of the game, players get massively stronger over
those floors. D:7 characters might still be working on their starting kit,
whereas a character on D:14 or in Orc is likely well established and has
probably cleared Lair. The monsters in many existing Bailey vaults are similar
to Orc spawns as well, so they tend to be threatening in the early part of the
Bailey spawn range but mundane in the later part. Thus, Bailey will now spawn
between D:7-10 and the chance per floor is doubled to keep the overall
likelihood of seeing a bailey roughly the same.

--------------------------------------------------------------------------------
fc91cddb57 | Kate | 2021-12-26 02:30:05 +0000

Simplify a zap

--------------------------------------------------------------------------------
ff14099be7 | Kate | 2021-12-26 02:30:00 +0000

Store spellpower on cast for ongoing spells
Make Borgnjor's Vile Clutch, Searing Ray, Olgreb's Toxic Radiance, Flame
Wave, Searing Ray, Frozen Ramparts, and Dragon's Call all check spellpower
only once on cast, instead of continuously throughout the duration. Also
includes some minor cleanup for other spells that unnecessarily rechecked
power.

As noted in 9c71ebef145, this fixes their interactions with Sif's Divine
Exegesis, and for Searing Ray and Flame Wave it has no other meaningful
effect (since it's not possible to swap gear while channeling). For the
other spells, it does become possible to cast them with an enhancer and
switch to another item, but this is no different to the majority of other
spells with an ongoing component (such as transmutations, hexes, and
summons) where all that matters is the power at time of cast.

--------------------------------------------------------------------------------
c629bbe4ae | Edgar A. Bering IV | 2021-12-25 17:14:01 -0600

fix: remove a diacritic
Since we still officially support pure ascii interface, changing the
monster name to "jorōgumo" in mon-data.h is a non-starter. To get the
description to appear the diacritic must also be missing in the
database.

--------------------------------------------------------------------------------
52c95e12a3 | hellmonk | 2021-12-25 16:49:40 -0600

refactor: rename a monster spellbook
Since it's now in use by multiple enemies.

--------------------------------------------------------------------------------
be32123071 | hellmonk | 2021-12-25 16:49:40 -0600

force Spider generation for testing

--------------------------------------------------------------------------------
4f13a64121 | hellmonk | 2021-12-25 16:49:40 -0600

feat: adjust and refactor monster web immunity
Use a monster flag.

--------------------------------------------------------------------------------
b4f9141d82 | hellmonk | 2021-12-25 16:49:35 -0600

feat: update spider bands

--------------------------------------------------------------------------------
4dffdd49c8 | hellmonk | 2021-12-25 16:49:01 -0600

feat: revise spider spawn table
Incorporate the new spider monsters introducded in previous commits,
enable ood usage.

--------------------------------------------------------------------------------
db8c699bc0 | Edgar A. Bering IV | 2021-12-25 16:49:01 -0600

feat: adjust existing spider monster numbers

--------------------------------------------------------------------------------
dabb86c9ba | hellmonk | 2021-12-25 16:49:01 -0600

feat: radroaches
They cast irradiate. Currently contams the player a lot rather than mutating
them outright; not totally opposed to changing it though.

--------------------------------------------------------------------------------
f555730fcc | hellmonk | 2021-12-25 16:49:01 -0600

feat: adjust some spider layouts
Allow another cavelike layout, change a few parameters in delve.

--------------------------------------------------------------------------------
8ac70cea53 | hellmonk | 2021-12-25 16:49:01 -0600

feat: sun moths
Holy moths with a single tile halo, sticky flame, and energy bolt.

--------------------------------------------------------------------------------
43fd8d3cd6 | hellmonk | 2021-12-25 16:49:01 -0600

feat: adjust ghost moths
Take away their poison sting and make them much better at draining stats.

--------------------------------------------------------------------------------
73a05ced62 | hellmonk | 2021-12-25 16:49:01 -0600

feat: adjust emperor scorpions
Reduce their defenses and damage in exchange for speed 12.

--------------------------------------------------------------------------------
b1d9b9a04c | hellmonk | 2021-12-25 16:49:01 -0600

feat: culicivora
Low end spider for packs; heal other + vamp bite

--------------------------------------------------------------------------------
cdf09cc80e | hellmonk | 2021-12-25 16:47:59 -0600

feat: broodmothers
High end spider enemies that summon spiders and bite to summon spiders.

--------------------------------------------------------------------------------
b91c745bbe | hellmonk | 2021-12-25 16:47:59 -0600

feat: Jorogumo
High end spider nasties that cast ensnare and bolt of draining, plus melee for
hornet poison.

--------------------------------------------------------------------------------
5bc7cbe778 | hellmonk | 2021-12-25 16:47:59 -0600

feat: steelbarb worms
They inflict barbs status in melee, have regen and rF, and are fast.

--------------------------------------------------------------------------------
de0d139c19 | hellmonk | 2021-12-25 16:47:59 -0600

feat: buff orb spiders
Increase cast rate, hd, and melee damage

--------------------------------------------------------------------------------
da204c4458 | hellmonk | 2021-12-25 16:47:59 -0600

feat: Pharaoh Ants
A new undead spider monster that hits moderately hard for AF_DRAIN and binds
the souls of all nearby monsters on death.

--------------------------------------------------------------------------------
2a955c5cc2 | hellmonk | 2021-12-25 15:22:40 -0600

feat: rework demonic crawlers
Give them warning cry so they can alert their spider friends.

--------------------------------------------------------------------------------
f280a0fbb2 | Kate | 2021-12-25 17:16:50 +0000

Make Formicid digging drain max health
The ability to dig outside of combat with no limit or meaningful cost has
been known to be a problem ever since Dig existed as a spell, and it
encourages a variety of undesirable behaviours. Formicids have been a
problem in this regard for a while (and even when the ability had a food
cost, this didn't appropriately limit its use).

To make digging have a noticeable cost, make it drain the user for each
tile dug, to make extensive out-of-combat digging hopefully much more
dangerous. To simplify the ability and make it slightly more useful as an
in-combat escape, also remove its movement speed penalty.

--------------------------------------------------------------------------------
32bd0c41fe | Kate | 2021-12-25 17:03:33 +0000

Update some speech lines
Remove various outdated speech lines, adjust a few others, and give Crazy
Yiuf some new words.

--------------------------------------------------------------------------------
986220338f | Nicholas Feinberg | 2021-12-25 15:31:26 +0000

Code tweaks
Constify some variables, switch from a pointer to a reference, and
make some mon-info code shorter (this bit is dubious).

--------------------------------------------------------------------------------
2f14e528d3 | Kate | 2021-12-25 15:31:26 +0000

Make enchantment power use a smooth stepdown
Should result in minimal changes to enchantment power in practice, but
removes a use of the (supposedly) deprecated stepdown_value function, and
also removes the cap of 120 on enchantment power, allowing spells with high
power caps and a power boost (such as Agony and Enfeeble) to continue
improving their success rate at very high skill levels.

--------------------------------------------------------------------------------
0dbd67afb6 | Kate | 2021-12-25 15:31:26 +0000

Add a new L7 Hex: Enfeeble
Intended to give Hexes some more interesting utility to fill the gap
between the powerful early stabbing spells and Discord at level 8, Enfeeble
is a beam-targeted hex which irresistibly applies weakness and antimagic to
a single foe (even against infinite willpower). The target is also dazed
and blinded if they fail a willpower check (with a fairly substantial power
bonus).

--------------------------------------------------------------------------------
b25a51b929 | hellmonk | 2021-12-24 21:43:23 -0500

nerf Tukima's Studio
This wizlab has like 3x the kill rate of the next most dangerous one.

--------------------------------------------------------------------------------
7c8fac35f0 | hellmonk3 | 2021-12-23 21:28:31 -0500

feat: Install some new plumbing
Update old sewer maps to use best vaultmaking practices (randomized monster 

counts and placements, minimal hidden areas/spoilers). Reduce loot quality or

quantity in most maps - this was buffed significantly when potion/scroll types 

got despoilered, so needs to come down somewhat. Additionally, add two exciting 

new sewer maps and re-weight all maps so that formerly rare ones are somewhat 

more common.
--------------------------------------------------------------------------------
826d19b2e0 | hellmonk3 | 2021-12-22 22:41:54 -0500

Add some assorted vaults
feat. 1 (one) funny shop, 1 (one) funny transporter, and a few other things
--------------------------------------------------------------------------------
92def6ad0a | advil | 2021-12-22 17:47:50 -0500

build: add wtutil.py to the flake8 exclude list
This is such a useless linter

--------------------------------------------------------------------------------
a21510a5d8 | advil | 2021-12-22 17:29:43 -0500

feat: CLI interface for the dgl ban flag
This can maybe be done already using the dgamelaunch-config tools, but
it's useful to just have a simple interface built directly into the
wlutil.py script.

Resolves #1034 (together with the ^^ commit)

--------------------------------------------------------------------------------
45a336b667 | advil | 2021-12-22 15:21:08 -0500

feat: split off some webtiles cli stuff to a separate file
This moves the commands for setting and resetting password tokens to a
separate utility. (The underlying code is still part of webtiles.server,
though, since all the setup stuff is there.)

--------------------------------------------------------------------------------
428f677eea | floraline | 2021-12-22 14:56:20 -0500

fix whitespace

--------------------------------------------------------------------------------
82aefee779 | floraline | 2021-12-22 14:56:20 -0500

Disallow user login when account has been banned
DGL already supports banning user accounts via the user flags. Webtiles
will now check this flag when testing password on user login. If the
account is disabled, webtiles will not allow the user to log in. A
message will be returned indicating that the account is disabled.

--------------------------------------------------------------------------------
270c432c18 | advil | 2021-12-22 14:54:57 -0500

fix: Restore #! line for server.py
This got cut in 9b1d5c9715351a9bef3c. I'm not sure this should be an env
call though? For the moment, keeping it unchanged.

--------------------------------------------------------------------------------
a9037bb4c8 | advil | 2021-12-21 10:36:05 -0500

fix: fix some config defaults code
* correctly check the bind options
* fix handling of invalid recursive key checks

--------------------------------------------------------------------------------
59251e613b | advil | 2021-12-21 09:36:32 -0500

docs: update README.md, comments in config.py

--------------------------------------------------------------------------------
47ca6f2f2d | advil | 2021-12-21 09:36:32 -0500

fix: temporarily revert changes to client.html template
This one gets me every time: templates update immediately even if the
server hasn't yet restarted. So a pre-refactor server trying to load
this template generates a 500 error because it doesn't have the new
config API. This commit adds a shim that will work until servers have
all restarted, and then it can be reverted.

--------------------------------------------------------------------------------
473480021d | advil | 2021-12-21 09:36:32 -0500

fix: correct a wrong config name

--------------------------------------------------------------------------------
fb42bd042d | advil | 2021-12-21 09:36:32 -0500

fix: don't double webtiles --live-debug logging
A logging call before `init_logging` results in doubled output, just
push this check later.

--------------------------------------------------------------------------------
9b1d5c9715 | advil | 2021-12-21 09:36:32 -0500

refactor: move main server code into the webtiles package
This was the last remaining chunk of webtiles code that was not inside
the `webtiles` namespace. This commit moves it into a proper module,
leaving the original non-package `server.py` as just a light wrapper on
this module.

--------------------------------------------------------------------------------
65b1a8c667 | advil | 2021-12-21 09:36:32 -0500

refactor: move server.py
This change apparently needs to happen in two steps so that the move is
properly tracked in git history.

--------------------------------------------------------------------------------
e20dd551ba | advil | 2021-12-21 09:36:32 -0500

docs: update placeholder README
I originally put this file here just as a test of how DGL setups would
handle subdirectories, but now that it has served its purpose, why not
do something with it. This overview is pretty brief and high level, but
as far as I know this kind of overview doesn't really exist anywhere
else.

--------------------------------------------------------------------------------
2872ec6120 | advil | 2021-12-21 09:36:32 -0500

fix: acclimitize auth_test to `webtiles`
* use package-anchored module names for mock
* remove an unneeded mock for config

--------------------------------------------------------------------------------
b939be1479 | advil | 2021-12-21 09:36:32 -0500

refactor: regularize the internal config api
This wraps the server config module that is used as the repository for
config info as if it were a dict-like. This would enable eventually just
subbing in a dict (e.g. from yaml). In the short term it also makes the
module have better behavior when no server config is provided.

--------------------------------------------------------------------------------
c07941e8bc | advil | 2021-12-21 09:36:32 -0500

refactor: move webtiles defaults into webtiles.config
Before there were occasional default values scattered around the code in
get/getattr calls, in combination with things that are de facto defaults
because no one has ever changed them. This collects the defaults in one
place. I've aimed to leave uncommented in config.py only things one
should or might want to change.

--------------------------------------------------------------------------------
0364767e1c | advil | 2021-12-21 09:36:32 -0500

fix: fix imports in tests
This won't fully fix CI I think, because one of these tests needs config
info that is now separated from the package; I'll fix that later.

--------------------------------------------------------------------------------
6b151ea7cb | advil | 2021-12-21 09:36:32 -0500

refactor: restructure webtiles into a package
Previously, webtiles was just a loose collection of modules in the same
directory. This restructures things so that everything but server.py and
config.py form a proper python package. This has three main goals:

1. make the webtiles server code more encapsulated, and cleaner to load
   and interact with. This commit (to some degree) regularizes a lot of
   import statements.
2. short term: make it easier to dissociate config logic from config
   content. The `config.py` file in `webserver` is the same as before --
   a python module with config settings for the webserver. The
   webtiles.config module on the other hand provides an api for getting
   config info that is abstracted from the python module that provides
   it. This can help clean up the handling of defaults, and pave the way
   for turning most of the old config.py into something like yaml, while
   retaining backwards compatibility. This could all have been done with
   a distinctly-named module in the same directory, but I think it is
   just a lot conceptually cleaner to do it in combination with 1.
3. long term: make it easier to swap out parts of the server code en
   masse by changing around package loading. This is aiming at a
   compatibility-preserving way of merging the dormant `webtiles-asyncio`
   branch. *Possibly* make it possible to version the webtiles server
   itself.

This is a big change, and I've done only light testing so far, but in a
local setup at least, everything is working. It may be that this commit
will require a dgl change to merge (I'm not sure if subdirectories will
be copied by default).

--------------------------------------------------------------------------------
76c8c3f4a7 | advil | 2021-12-21 09:36:32 -0500

fix: remove remaining import *s

--------------------------------------------------------------------------------
0243856f03 | Kate | 2021-12-21 01:29:26 +0000

Document mons_has_attacks behaviour
Weird monsters with special zero-damage attacks like fire elementals and
drowned souls are considered as having no attacks here which is very weird,
but probably technically correct in the context of considering whether they
should be able to be weakened or go berserk, so add a comment explaining it.

--------------------------------------------------------------------------------
c6b4282bc0 | Edgar A. Bering IV | 2021-12-20 22:53:56 +0200

refactor: move Cantrip messaging to the monspell DB
Instead of hard-coded strings plus some custom speech DB strings that
got strange less-than-fully-featured handling.

--------------------------------------------------------------------------------
6bb796e56f | Edgar A. Bering IV | 2021-12-20 22:05:15 +0200

feat: leave Dissolution's prayers unanswered if Jiyva dies (11741)
Dissolution is an incredibly devout follower of Jiyva, but not so devout
to keep Jiyva alive alone without the Royal Jelly or the player as well.
So, when Jiyva dies, this commit replaces Dissolution's eyeball summon
with a cantrip and adds some custom casting messages for tragic flavour.

[ Closes #2136 ]

--------------------------------------------------------------------------------
a0fd31170c | Edgar A. Bering IV | 2021-12-20 20:39:51 +0200

fix: don't treat tentacles as separate monsters for yred (mdonais)
This fixes both a funny piety bug and a serious crash-on-demand coming
from kraken.

--------------------------------------------------------------------------------
948942c869 | Kate | 2021-12-20 18:15:36 +0000

Disable targeter for the staff of Battle's battlesphere (#2300)
Closes #2300.

--------------------------------------------------------------------------------
2034e2a03a | Kate | 2021-12-20 18:00:33 +0000

Fix a Djinn mutation description

--------------------------------------------------------------------------------
75d13f451a | Kate | 2021-12-20 18:00:33 +0000

Improve wording of nimble swimmer mutation (#2295)
Closes #2295.

--------------------------------------------------------------------------------
193881aaa2 | Nicholas Feinberg | 2021-12-19 17:12:51 -0800

Tweak Bind Soul description (🐙Mike)
Move the important part (gotta kill the target before the mark expires!)
before a bunch of fine print, and make other small tweaks, such as
removing an overlooked 'enslave'.

--------------------------------------------------------------------------------
e70e11bbaa | Nicholas Feinberg | 2021-12-19 16:36:57 -0800

Tweak Yred power description (🐙Mike)
Try to clarify re raising the dead, etc.

--------------------------------------------------------------------------------
c10b29e619 | Kate | 2021-12-19 23:39:51 +0000

Adjust Black Mark to only apply useful effects
Instead of just randomly rolling for weakness, antimagic or draining when
the mutation triggers, only select an effect that the defender is
susceptible to.

--------------------------------------------------------------------------------
bdd4f303c2 | Kate | 2021-12-19 23:39:51 +0000

Show when monsters are affected by antimagic
Instead of having it be a hidden status effect, display it as a regular
enchantment and give a message when it expires.

--------------------------------------------------------------------------------
1e6f1b2279 | advil | 2021-12-19 10:20:57 -0500

lint

--------------------------------------------------------------------------------
ac32c9ce6f | advil | 2021-12-19 10:02:04 -0500

fix: make some prop types explicit
Seems to be breaking the build on some compilers.

--------------------------------------------------------------------------------
d731693074 | advil | 2021-12-19 09:43:41 -0500

feat: (g)o to location in item descriptions
This seems like a fairly natural thing to have in this popup; already
available via many other means of course, but you had to jump through
various hoops to get to it from an item description depending on where
the popup came from.

--------------------------------------------------------------------------------
ef9e1dbd39 | Nicholas Feinberg | 2021-12-18 14:23:50 -0800

Fix Slouch stop attack prompt
Don't ask "Really harm near your goblin?"

--------------------------------------------------------------------------------
a495bdf9d0 | robertxgray | 2021-12-18 22:36:17 +0100

Configure GitHub Actions for Android

--------------------------------------------------------------------------------
582babd7fa | advil | 2021-12-18 12:56:47 -0500

feat: in ctrl-x list, indicate items at player's position
The behavior of the full view menu for this case is somewhat confusing:
by default a left click travels to the item's position, so nothing
happens when a player clicks on an item in the menu at their position.
I think a more major refactor of this menu might be helpful (not sure
exactly what), but this commit tries to very slightly smooth over the
case by marking which items are at the player's position explicitly.

--------------------------------------------------------------------------------
ce354f50cf | advil | 2021-12-18 12:56:47 -0500

fix: enable describe actions for item stacks
d40668a25 worked only on stacks of 1, because that was the only case
where the describe popup got access to the "real" item that was on the
floor. This commit expands things out so that for stacks of items if
they are at the player's feet, the real item is used all the way along
the chain. There was some required const munging that is not so great
(though there's a lot of code that did not seem like it should actually
be using const item_def * -- I started to work through this but the
domino effect made me back up.) This commit also makes describe actions
work for items in the full view describe that are at the player's feet.

--------------------------------------------------------------------------------
6159c76d74 | advil | 2021-12-18 12:56:46 -0500

feat: add (g)et as a describe action

--------------------------------------------------------------------------------
bf359695bc | Nicholas Feinberg | 2021-12-18 09:25:21 -0800

Make the undead unpruneifiable
Since they can't transform, right..?

--------------------------------------------------------------------------------
11349e6732 | Nicholas Feinberg | 2021-12-18 08:50:25 -0800

Rework the glaive of Prune (perryprog)
The glaive of Prune has, for many years, had exactly one unique
mechanical feature: being hated by Zin. Let's add something slightly
more meaningful.

Whenever the glaive's wielder is paralysed, petrified, or KO'd,
they'll be overcome with the curse of the Prune, transforming into
a giant prune. This makes the player so squishy that they're hard to
injure, making them take half damage until the paralysis/etc ends.

N.b.: probably this shouldn't affect the undead?

--------------------------------------------------------------------------------
876f0bc6b4 | Nicholas Feinberg | 2021-12-18 07:51:21 -0800

Manually add a throwaway gag (flappity)

--------------------------------------------------------------------------------
3f01f628eb | Edgar A. Bering IV | 2021-12-18 15:01:56 +0200

docs: add Gopall to credits

--------------------------------------------------------------------------------
ed7a1ca826 | Edgar A. Bering IV | 2021-12-18 15:01:14 +0200

docs: changelog through 0.28-a0-1190-g77e1c55

--------------------------------------------------------------------------------
77e1c55843 | advil | 2021-12-17 11:45:24 -0500

feat: use Goratrix's main menu tile in the action panel

--------------------------------------------------------------------------------
03e5d3d3bf | Nikolai Lavsky | 2021-12-17 11:39:14 -0500

refactor: combine code for drawing item glyphs and panel actions (advil)
Both `draw_action()` and `draw_item_glyph()` have the same code for
drawing quantities and highlighting actions, so it makes sense to
combine them into a single function.

Also, add a few TODO comments for future improvements.

--------------------------------------------------------------------------------
013d6de2c3 | Nikolai Lavsky | 2021-12-17 11:39:14 -0500

feat: don't hide the action panel unless it is explicitly disabled
Since the panel always has at least one action now, it should be
permanently visible unless disabled by configuration.

--------------------------------------------------------------------------------
5f2c673282 | Nikolai Lavsky | 2021-12-17 11:39:14 -0500

feat: add a main menu button to the action panel (PleasingFungus)
With a main menu button on the action panel, it should be easier for
players to discover the macro editor, lookup-help menu, and other
tools and commands.

--------------------------------------------------------------------------------
e4c47cc41c | Nikolai Lavsky | 2021-12-17 11:39:14 -0500

refactor: add helper functions for drawing panel actions
The code for drawing actions and item glyphs is a bit complex, so it's
better to split it up into separate functions.

Also, we drew an item glyph and the cursor for some items twice. This
happened if an item had a base tile and a brand icon.

Fix this and simplify handling of `adjusted_scale`.

--------------------------------------------------------------------------------
4dc111b8cc | Goratrix | 2021-12-17 11:04:33 -0500

Tweak tile for game menu button on local tiles
Commit 6a8ace0 added the game menu button to local tiles using
a placeholder tile, this updates the tile to have the correct button frame.

--------------------------------------------------------------------------------
53156a8862 | Kate | 2021-12-17 02:17:16 +0000

Adjust messaging for monsters dropping wands on death
To make it a little more succinct.

--------------------------------------------------------------------------------
2b4b0b1879 | Kate | 2021-12-16 23:26:30 +0000

Prevent self-healing abilities under DDoor
They had no effect, but could waste max MP (as a Deep Dwarf) or piety (as
an Elyvilon worshipper who abandoned to cast DDoor and then reconverted
with DDoor active and enough saved piety to still activate Heal Self).

--------------------------------------------------------------------------------
381e24db82 | Nicholas Feinberg | 2021-12-15 22:08:27 -0800

Add an 'unaffected by silence' status
A very common error for newer players is to try to silence demons
and then to be confused about how they cast anyway. Adding a status
that describes them as 'unaffected by silence' might help?

--------------------------------------------------------------------------------
ba1fe864d9 | Nicholas Feinberg | 2021-12-15 21:51:18 -0800

Shift fire champion's display ordering

--------------------------------------------------------------------------------
586d44308f | Nicholas Feinberg | 2021-12-15 21:47:24 -0800

Buff infusion
These felt a bit worse to me than I expected. Costing 2 MP per hit
really burns through your pool startlingly fast, and results in a
lot of resting. Let's try it at 1 MP per hit and see if it still
feels like a significant cost.

The Mad Mage's Maulers are unaffected.

--------------------------------------------------------------------------------
e3c729c085 | Nicholas Feinberg | 2021-12-15 21:41:37 -0800

REVERTME: Make infusion gloves very common
So that we can actually test this.

Roll this back before 0.28's release.

--------------------------------------------------------------------------------
3097664d63 | Nicholas Feinberg | 2021-12-15 21:32:05 -0800

Increase the rat rate
Changing the ratskin cloak from +Rats to *Rats may have left it
somewhat undertuned. Increase the rat rate by 50% to compensate.

--------------------------------------------------------------------------------
7ef81e1a51 | Nicholas Feinberg | 2021-12-15 21:30:22 -0800

Add default values for monster spell slots
Rather than requiring a full specification (spells:fireball.200.wizard...),
allow just naming a spell and default to some plausible frequency and
casting type values.

--------------------------------------------------------------------------------
0bdaba56fc | Nicholas Feinberg | 2021-12-15 21:30:22 -0800

Discover traps
Don't claim that &Tzot will "mark it undiscovered".

--------------------------------------------------------------------------------
d6bfa8a262 | Nicholas Feinberg | 2021-12-15 21:30:22 -0800

Zot! (Sastreii)
New Zot trap tile.

--------------------------------------------------------------------------------
766a6a42ef | advil | 2021-12-15 21:23:11 -0500

doc: tweak some comments
The return values here are not very obvious, document and make the
comments consistent.

--------------------------------------------------------------------------------
38569e0721 | Kate | 2021-12-16 02:02:35 +0000

Fix a return value

--------------------------------------------------------------------------------
90128a5531 | Oneirical | 2021-12-16 02:02:14 +0000

Ban Jiyva from Thunderdome, replace Teleport Self with Blink Away
Jiyva now uses exploration piety so doesn't function in arenasprint, and
Teleport Self has been removed.

[Committer's note - updated commit message, and kept Fedhas as enabled.
Closes #2293]

--------------------------------------------------------------------------------
bbd083314f | Kate | 2021-12-16 00:50:52 +0000

Make Yara's Violent Unravelling smite-targeted
Along similar lines to Inner Flame and its recent change, Unravelling is a
fun hex spell with some good utility, but is often quite fiddly to make
effective use of. Change it to also be smite-targeted, allowing more
precise enchantment/summon removal without the chance of a non-enchanted
creature blocking the beam and making it ineffective.

--------------------------------------------------------------------------------
f21496c7a1 | Kate | 2021-12-16 00:24:28 +0000

Shorten some new welcome messages
To fit on a single console line.

--------------------------------------------------------------------------------
e8bcaa7831 | Kate | 2021-12-16 00:02:48 +0000

Remove an unnecessary prompt
The dreamshard necklace as implemented doesn't have any problem interacting
with DDoor - the player will be invincible as expected while the spell is
active, and then once it expires the necklace works as normal to save them
if required.

--------------------------------------------------------------------------------
c1efb617dc | Kate | 2021-12-16 00:02:48 +0000

Remove a duplicate canned message

--------------------------------------------------------------------------------
616b1c6417 | advil | 2021-12-15 14:40:31 -0500

lint

--------------------------------------------------------------------------------
a718ce6c6e | Nicholas Feinberg | 2021-12-15 11:14:23 -0800

Lighten hands (kate)
Continue a policy of strategic ambiguity wrt the purpose & uses of
the Orb of Zot.

--------------------------------------------------------------------------------
d40668a259 | advil | 2021-12-15 13:57:14 -0500

feat: read/quaff floor items from description
Pretty straightforward change except that it was slightly tricky to get
the right item to use.  In the course of this I also refactored some of
the switch statements and generalized the quiver check -- you can quiver
from the description anything that is normally quiverable, rather than
using an item by item check. This required a somewhat ugly hack to keep
(q)uiver and (q)uaff from colliding, point even more towards the need to
overhaul this code in a more structured way.

--------------------------------------------------------------------------------
f8141789e4 | advil | 2021-12-15 13:57:14 -0500

feat: feature description tweaks
* Show "you are here" if the player is at the position being examined.
  For now this is only on feature descriptions, but I have long wanted
  to add something like this for accessibility reasons.
* Simplify some redundant feature decriptions. This was already done on
  the js side (I haven't removed that code, but possibly it is now
  removable if this one remains bug-free).
* Improve door long descriptions. This mentions open/closed state, which
  is redundant, but felt odd not to include. It also explicitly mentions
  the door breaking mechanic.

--------------------------------------------------------------------------------
96c0fc9bb0 | advil | 2021-12-15 13:57:14 -0500

feat: tweak describe item actions order
This is aimed at getting the "main" thing you do with various item types
first, and the stable things across many item types last. (Previously,
the latter were mostly first, and the order of the former was somewhat
variable.)

--------------------------------------------------------------------------------
39b20cf4d7 | Nicholas Feinberg | 2021-12-15 10:24:05 -0800

Ignis flavor tweaks
- Put its message before the 'you have escaped'. The latter is iconic
  and should always be last.
- No messaging for escaping without the orb with Ignis - it won't come
  up often & doesn't really add much.

--------------------------------------------------------------------------------
cb000ee472 | Edgar A. Bering IV | 2021-12-15 20:17:44 +0200

feat: some Ignis lore messaging (Wandering Mushroom)

--------------------------------------------------------------------------------
933dd556d1 | Edgar A. Bering IV | 2021-12-15 20:10:45 +0200

fix: lower the cost of Yred recall
It didn't survive its tweak in the rebase, oops.

--------------------------------------------------------------------------------
27aa881441 | advil | 2021-12-14 17:22:12 -0500

fix: relax the conditions for `X]`/`X[` (elliptic)
These got overly tightened in 5bd2f0ac44.

--------------------------------------------------------------------------------
93145404a5 | Edgar A. Bering IV | 2021-12-14 22:20:41 +0200

fix: silence library messages during newgame creation (kate)

--------------------------------------------------------------------------------
43c36bbe99 | Edgar A. Bering IV | 2021-12-14 22:20:41 +0200

fix: don't announce empty wanderer inventories

--------------------------------------------------------------------------------
805a0a0067 | Edgar A. Bering IV | 2021-12-14 22:20:41 +0200

fix: remove some dead book code from ng-setup

--------------------------------------------------------------------------------
c9877f665c | Edgar A. Bering IV | 2021-12-14 22:20:41 +0200

fix: don't fall back to a kite shield inappropriately at newgame

--------------------------------------------------------------------------------
a95d5098ad | hellmonk | 2021-12-14 22:17:31 +0200

feat: invert the wanderer paradigm
Wn is a really cool "random start" option, but has a couple annoyances.
You can get some truly awful starts due to the way skill points are
assigned, and are basically guaranteed to have awful stats due to the
way stat points are assigned. This commit tries to rectify those problems
and adds some new things that Wn can get at game start.

The new model assigns the equipment first, based entirely on species
apts, then assigns stats and skills afterward depending on what we got.
It tends to lead to more lopsided (ie useful) stat distributions and
higher levels of skill in things that are useful, though these are by no
means guaranteed.

Along with changing the model this commit makes the following
adjustments to Wn starting equipment, offering a wider mix of cool
things:

- "good weapon" can get an upgraded base type or vorpal brand instead of enchant
- "good armour" can roll chain instead of +2 scale, and gives acid scales for
  non-chain users
- "good shield" now rolls an enchanted buckler or prot buckler, instead
  of a kite shield
- "good magic school" rolls a 3-spell randbook instead of a background
  starting book
- "good spellcasting" rolls a 4-spell any-school randbook (capped at
  level 3)
- "good stealth" can give either a +2 dagger and a consumable or a plain
  dagger and a mix of atropa and datura darts
- "decent armour" can role chain or ring, with a plain aux armour for odd
  shapes (all scales and tla are too strong for decent items)
- "decent dodging" and "decent stealth" can give an aux armour if a good
  armour wasn't received
- "decent fighting" can give an extra weapon plus if a weapon is
  available
- it is possible to start with a hunting sling and sling skill
- throwing can start with boomerangs
- it is possible to get aux armour (and likely for oddly shaped species)
- a wider variety of potions and scrolls can be rolled
- a wider variety of evocables can be rolled
- Wn that start with sandblast also start with stones

[ Committer's notes: Thanks to gammafunk, kate, and PleasingFungus for
  input in this overhaul. ]

--------------------------------------------------------------------------------
f74599e7d4 | Edgar A. Bering IV | 2021-12-14 11:22:38 +0200

text: quotes for Chei abilities
This might be gratuitous and I don't care

--------------------------------------------------------------------------------
9c71ebef14 | Nicholas Feinberg | 2021-12-13 20:44:56 -0800

Store polar vortex power on cast
We historically didn't do that to discourage, say, wielding a staff
of ice, casting the spell, and then unwielding the staff to do something
else. But... usually if you're casting a level 9 ice spell, you sort of
want to have ice enhancers for other things (eg ozo's fridge), and the
un-stored power system encourages other silly swaps - eg start with a
ring of wizardry to get vortex castable, then swap to =ice once it was
running.

Anyway, not storing power meant that using exegesis on vortex was a
nasty player trap. Now that's fixed!

--------------------------------------------------------------------------------
59a505c739 | Nicholas Feinberg | 2021-12-13 20:24:43 -0800

Beef up ironbound thunderhulks
Even as mid-tier enemies, thunderhulks were generally considered to
be somewhat underwhelming threats. So, increase their HD by 50% to
increase the accuracy and damage of their Call Down Lightning
(damage from 3d21 to 3d26, accuracy from 19 to 21). Also give them
Blink Range so that they eventually get a chance to re-distance
themselves after getting too close to the player, similar to boulder
beetles.

--------------------------------------------------------------------------------
ef4b3a621b | Nicholas Feinberg | 2021-12-13 20:15:18 -0800

Fix Fire Storm damage display (elliptic)
A weird ancient hack (3a4159644bb83, greensnark, 2008) was causing
displayed damage (in xv, etc) to be twice actual damage. Now fixed.

--------------------------------------------------------------------------------
286b55035a | Nicholas Feinberg | 2021-12-13 20:12:48 -0800

Clarify Fiery Armour desc
Be explicit about the +AC.

--------------------------------------------------------------------------------
ec31e34405 | Nicholas Feinberg | 2021-12-13 20:10:41 -0800

Make two sudden removals
The teleportatis exploration trap message used "suddenly" three times
in a row. It was a bit much.

--------------------------------------------------------------------------------
c7b72d3202 | gammafunk | 2021-12-13 14:58:16 -0600

fix: Update loot potion weights (darkwolf811)
The list dgn.loot_potions is supposed to have weights adding up to 100,
but this was broken f55cbd34. Adjust the entries appropriately so we
total to 100 again.

--------------------------------------------------------------------------------
0f060c364e | advil | 2021-12-13 12:18:53 -0500

feat: no exiting popups via mouse with mouse control disabled
Disabling this for now because of complaints. I'm not sure if this is
really a good idea, this strikes me as the sort of thing where if this
had always existed, no one would be asking me to remove it.

--------------------------------------------------------------------------------
5bd2f0ac44 | advil | 2021-12-13 12:18:53 -0500

feat: add key hints and hotkeys to feature descriptions
Also, add clicking to webtiles, with some other misc description
enhancements. This turned out to be a mess of special cases, many of
which I've probably still missed. The commands that are supported are
up, down, open, close, and some shortcuts that go directly to the map
view for the other side of explored staircases.

Bugfixes: correctly handle unseen tiles with webtiles right click; fix a
subtle ordering issue in description hotkey  handling.

--------------------------------------------------------------------------------
c91ac77a38 | advil | 2021-12-13 12:18:53 -0500

fix: don't crash when right clicking out of bounds
Probably webtiles specific.

--------------------------------------------------------------------------------
cf6077d4cc | Kate | 2021-12-12 21:14:02 +0000

Tweak wording of autumn katana description
For consistency with other DESCRIP lines.

--------------------------------------------------------------------------------
c8569940dd | Edgar A. Bering IV | 2021-12-12 23:08:30 +0200

fix: remove some leftover code

--------------------------------------------------------------------------------
5f824d10e6 | sdynet | 2021-12-12 23:06:02 +0200

Rework the autumn katana
Now, the sword sometimes uses manifold assault when attacking an enemy,
instead of having clarity.

Due to issues of setting time_taken and preventing re-entry the katana
duplicates some of the functionality of cast_manifold_assault instead of
simply re-using the function. However! There are two great upsides to
this implementation: monsters can use the katana (no special flag) and
players can use it with manifold assault to get one layer of recursion
(and a rare message).

[ Committer's note: Rewrote the artefact function, tweaked the
  implementation, revised the commit message. Closes #2234 ]

--------------------------------------------------------------------------------
dee3398930 | advil | 2021-12-12 14:55:11 -0500

fix: add explicit styling for action panel settings
For most players this is just minor color / spacing tweaks. But, it's
come to my attention that CWZ loads bootstrap, and bootstrap's css is
impacting the action panel quite badly. This commit should undo the most
egregious aspects of this, though it's a bit hard to test directly.

(Don't get me wrong, tossing bootstrap on top of webtiles is super
double plus unrecommended, likely to lead to any number of subtle
unpredictable rendering glitches, and by providing a workaround for
these particular fairly major ones I in no way endorse doing
webtiles+bootstrap...)

--------------------------------------------------------------------------------
386a16afc0 | advil | 2021-12-12 10:30:58 -0500

feat: click to close webtiles popups
Previously, there was no way to escape a popup with a mouse(!). This
commit adopts the local tiles approach, where clicking outside of a
popup exits the popup. Unlike local tiles, both left or right clicking
will work; in local tiles it's only right click. Possibly both clients
should be standardized to use one or the other.

--------------------------------------------------------------------------------
ff41af4bb9 | hedk3 | 2021-12-12 10:49:17 +0200

fix: more Storm Form hand naming
[ Committer's note: fixed to compile correctly and unbraced.
  Closes #2290 ]

--------------------------------------------------------------------------------
4ce00ec954 | Edgar A. Bering IV | 2021-12-12 10:35:37 +0200

docs: update the CREDITS

--------------------------------------------------------------------------------
8fc9a925bb | Edgar A. Bering IV | 2021-12-12 10:11:16 +0200

feat: revise the ring of the Mage
The ring of the Mage was a not-super exciting Wiz ring with light
bonuses. In keeping with the "good or interesting" unrand revision
paradigm, this commit revises the ring of the Mage to be a Wiz/Archmagi
ring.

Archmagi on an easty to swap slot might raise some eyebrows, but it is
no worse than enhancer swapping. The hope is that this item might
convince some more hybridization, helping make up for both the penalty
of heavy armour and the lack of intelligence of heavy armour users.

Of course, it'll also be an exciting find for any spellcaster who has
body slot Archmagi, thanks to the stacking change. Boom pow!

XXX: The _resist_composer in output.cc assumes that resists with a max
of < 5 should get spacing, if it becomes possible to get 3 pips of
Archmagi this will cause display issues % on console.

--------------------------------------------------------------------------------
e886f3e13f | Edgar A. Bering IV | 2021-12-12 10:09:28 +0200

feat: archmagi stacking
Currently the only sources of archmagi are body armour and a
save-transferred hat of the high council. However, adding more archmagi
sources has been discussed in a couple of development spitballs and the
expectation in all of these conversations is that archmagi stacks.

This commit alines expectation and reality.

--------------------------------------------------------------------------------
151b4aef40 | Edgar A. Bering IV | 2021-12-12 10:09:17 +0200

fix: archmagi handling in util/art_data.pl

--------------------------------------------------------------------------------
468af4c5fd | Edgar A. Bering IV | 2021-12-12 09:31:54 +0200

fix: remove a Tar teleport closet
Closes #2291

--------------------------------------------------------------------------------
87f88a2ef8 | Edgar A. Bering IV | 2021-12-12 09:24:06 +0200

Revert "fix: don't force picking up of newly IDd equipment"
This reverts commit f5e35ccd160c657ff46174990fc3fe4e97655484.

As implemented it did not have the correct behavior, and was still
incorrect after 99a87601b6. Discussion with players revealed there are
many users who expect autopickup to make its "should pick up decision"
on an item when it comes into view, while others would like their
autopickup options applied with respect to the item
post-floor-identification.

So I'm reverting this to the behavior before f5e35ccd: an item will be
autopickedup if it meets the user's autopickup preferences before it is
floor-identified. The correct solution here is to add a boolean game
option that is checked before setting NEED_AUTOPICKUP_KEY in the
relevant lines (the ones modified by this commit).

--------------------------------------------------------------------------------
8cf3085ebe | Edgar A. Bering IV | 2021-12-12 09:24:06 +0200

fix: don't crash on deathbed conversions
Closes #2289

--------------------------------------------------------------------------------
c51a68064b | Kate | 2021-12-11 21:51:33 +0000

Add a missing canned message to Shaft Self prompt

--------------------------------------------------------------------------------
a6bf8c0b4a | Kate | 2021-12-11 21:51:32 +0000

Let Yara's Unravelling turn summons into explosions (Undo)
Yara's is a fairly situational spell, so to give it some slightly wider
utility, allow it to also be cast on summoned monsters, unravelling the
magic that summoned them and killing them immediately. This allows it to be
used as a form of single-target abjuration that can additionally damage the
summoner with the resulting explosion.

--------------------------------------------------------------------------------
b845255321 | gammafunk | 2021-12-11 14:30:48 -0600

fix: Correctly handle classed objstat averages
For the classed averages of charges and enchantment, use the correct
count when averaging according to classes of "Vault", "Shop", and "Mons"
for items in vaults/shops/held by monsters.

--------------------------------------------------------------------------------
64c176eb70 | advil | 2021-12-11 14:48:53 -0500

feat: expand out webtiles mouse control
Webtiles mouse control has always been a bit of an incomplete feature; I
think edlothiol only barely started on this in 2012 in 52f5b20b692aa,
which was (afaict) his last commit. No one else has tried to fix this up
since.  This commit fills out the feature set a bit. Previously, you
could use left click to move and attack in command mode, and there was a
minimal tooltip for monsters, and that's it. This commit adds:

1. right click to describe in regular view, targeting view, and map mode.
2. left click to fire in targeting mode. (Or other behaviors, e.g. in
`x` this triggers autotravel.)
3. synchronization of a targeting ray with the mouse cursor position.
This is probably the dodgiest feature in that (a) it may run into issues
with latency (it's handled on the server side) and (b) it may make it
too easy to misclick. The implementation follows local tiles but I
wonder if this would be better with something like, click to select
target, click again to fire. (Also, this was rather involved to
implement as it revealed a subtle bug in the direction chooser.)
4. Slightly less minimal tooltips. This only shows tooltips for monsters
still, because it's a bit constrained by what info there is on the
client side, and constantly doing popups with just the click hints was
pretty annoying in my testing.

One departure from local tiles: mousing over a square out of view
doesn't affect the currently set ray. I found this a lot more natural
and it works better with mousing from an object in the action panel to
the targeting range (which almost always involves crossing out-of-los
squares). Possibly this should be ported to local tiles.

As before, all of this stuff is entirely disabled with
`tile_web_mouse_control = false`.

--------------------------------------------------------------------------------
29f2d0b5fe | gammafunk | 2021-12-11 13:26:29 -0600

feat: Update briar patch and bush logic
Currently, both bushes and briar patches allow projectiles and
non-piercing magical beams to pass through, but get hit by enchantments
and piercing or exploding beams. Although these rules are documented,
they aren't intuitive and their complexity doesn't to interesting
decisions. This commit simplifies the rules to allow pass-through to
apply to all kinds of beams, be they enchantment, exploding, piercing,
or non-piercing. Thus if a monster is shooting you behind a bush with
whatever beam, you can shoot back with whatever beam. Bush and briars
can still be targeted directly to prevent pass-through for any type of
beam.

We also remove specific exceptions for ranged and non-ranged sticky
flame pass-through, since again this distinction is vanishingly rare in
practice. Finally, we remove an unused exception for Chain Lightning as
well, since it's not necessary for that spell to function properly.

For briar patches, we improve their logic so pass through beams only if
the actor is aligned with the briar. They intercept beams fired by a
non-aligned actor like a normal monster would. This means that thorn
hunters can fire through their briars, but the player's beams through
these briars will be intercepted. This helps the briar patch to be a
more effective anti-player-ranged barrier. For player-created briar
patches under Fedhas, briars now block all incoming beams from hostile
monsters like the player would expect.

Monster descriptions for bushes and briar patches are updated to
describe the new logic.

--------------------------------------------------------------------------------
f48e6d8fb1 | amcnicky | 2021-12-11 20:06:22 +0200

feat: new unrand artefact: dreamshard necklace
The dreamshard necklace is an amulet of nothing that for the most part
does nothing. However, on a lethal or near-leathal blow the necklace
shatters, absorbing the blow and releasing protective dreams of healing
(a big heal, between half and full HP), friendship (shadow creatures),
and clouds (fog).

That is, the player gets to trade their amulet slot (with its many
powerful effects) for a one-time-get-out-of-death-free card.

[ Committer's note: Simplified the shattering effect significantly,
  re-factored the trigger logic to be simpler, moved the dreamshard
  effect to spl-goditem, reduced the visuals to a single flash (no
  permanent tile changes), implemented Ashenzari and Death's Door
  checks. Thanks to kate and PleasingFungus for input in the PR process.
  Closes #2078. ]

--------------------------------------------------------------------------------
12f55c057d | Edgar A. Bering IV | 2021-12-11 19:23:03 +0200

fix: finish an old todo in player::heal

--------------------------------------------------------------------------------
17253bc447 | robertxgray | 2021-12-11 12:54:53 +0100

Merge branch 'master-upstream'

--------------------------------------------------------------------------------
397d20460d | mgdelmonte | 2021-12-11 11:08:11 +0200

feat: add travel trail functions to clua
Adds `travel.clear_travel_trail` and `travel.set_travel_trail`
functions, allowing clua control over the travel trail. This purely
visual feature can enable some nice generated visualizations, without
affecting gameplay.

[ Committer's note: Closes #2273. ]

--------------------------------------------------------------------------------
376ce86db5 | mgdelmonte | 2021-12-11 10:58:57 +0200

feat: add optional weapon argument to monsterinfo.target_weapon
Adds an optional `weapon` argument to the Lua
`monsterinfo.target_weapon` function. If `weapon` is omitted, it shows
the targeting description accompanying an unarmed attack. If `weapon`
is provided, it shows the targeting description for an attack with that
weapon.

This changes usage of the function slightly (formerly, the function
returned only the description for your current weapon), but the function
is new in this trunk cycle.

[ Committer's note: Tweaked to also resolve a TODO in describe.cc.
  Closes #2275 ]

--------------------------------------------------------------------------------
9993a5020f | mgdelmonte | 2021-12-11 10:51:22 +0200

feat: add you.known_items clua function
This exposes the list of known, identifiable subtypes to Lua.  It's the
same list as given by the `\` "display known objects" command, minus the
unknowns.  Without this, it's impossible to know (within Lua), that one
has already seen a particular kind of potion or scroll.

[ Committer's note: Squashed and clarified docstring. Closes #2286 ]

--------------------------------------------------------------------------------
31a25a4635 | mgdelmonte | 2021-12-11 10:30:17 +0200

fix: don't treat range 1 spells as "ranged" in mons_has_ranged_spell
Range 1 spells like Freeze aren't really ranged spells, for the purpose
of this function.

[ Committer's note: Closes #2279 ]

--------------------------------------------------------------------------------
ea0b6819f9 | mgdelmonte | 2021-12-11 10:14:27 +0200

feat: add can_traverse to clua monsterinfo
Adds `can_traverse(x,y)` function to the clua monsterinfo object.  Returns
true if the monster can traverse (actually, occupy) the cell at x,y
coordinates. Helpful for deciding where monsters might move.

[ Committer's note: Closes #2274 ]

--------------------------------------------------------------------------------
398d93cfb8 | Brian Power | 2021-12-11 10:12:25 +0200

fix: add missing args for lua print_hint()
[ Committer's note: Closes #2247 ]

--------------------------------------------------------------------------------
0bdd5ba030 | advil | 2021-12-10 21:04:28 -0500

fix: don't rest forever when divine vigour ends (ardl)
If divine vigour ends while resting, bringing the player to full health,
the delay would not end on its own, because the delay end condition was
apparently only checked when increasing hp or mp. (I thought the delay
was also supposed to check, but it seems I've been misreading this
could. Possibly this would be a lot more robust than what we're doing
now...) For most players this doesn't matter, because the divine vigour
end message interrupts the delay. But any player who has something like
`runrest_ignore_message += pray:` can trigger the bug. (Thanks to ardl
for his ...involved rc, I got some good bisecting practice to find
the interaction.)

To fix this, this commit adds a check to calc_hp on top of inc_hp, which
should also cover any similar cases that have so far been missed.

Also, some cleanup of resting checks to be more uniform.

--------------------------------------------------------------------------------
2df8497881 | nicolae-carpathia | 2021-12-10 19:33:30 -0500

Make nicolae_danse_macabre slightly less macabre
After comments, toned down a bit in D and Elf, by adding runed
doors and also using less demon weapons in D.

--------------------------------------------------------------------------------
fd376f2b2f | advil | 2021-12-10 18:15:15 -0500

lint: checkwhite
(Odd thing for checkwhite to be enforcing, maybe a bug?)

--------------------------------------------------------------------------------
8eb0198dcf | advil | 2021-12-10 17:54:37 -0500

fix: handle multi-word actions in webtiles item descriptions
Previous implementation made wrong assumptions about what actions there
could be; instead of trying to generalize this commit just brute-forces
the handling of a final "or".

--------------------------------------------------------------------------------
52f9137b40 | advil | 2021-12-10 17:28:42 -0500

fix: make webtiles ui push bugs less disastrous
Two related issues:
* If the menu state gets out of sync with the webtiles ui state, don't
  bring down the whole client (this could happen in `menu_key*_handler`
  if `menu` was set but `ui.top_popup()` returns null or undefined).
* If there is a crash in a ui handler, show a buggy div rather than do
  nothing, to head off one way that the game's menu state and webtiles
  ui can actually get out of sync. This will also make it a bit clearer
  to the user they are seeing a bug that they could report.

--------------------------------------------------------------------------------
2d15a92f8c | robertxgray | 2021-12-10 21:42:51 +0100

Android: Include < and > in numeric keyboard This is a user request for 
searching stairs in map mode. They replace - and + which are available in the 
main keyboard.

--------------------------------------------------------------------------------
5c4f51bb93 | advil | 2021-12-10 15:28:19 -0500

fix: don't crash on `(t)ake off`
This won't render quite right, but this commit should fix the javascript
crash.

--------------------------------------------------------------------------------
1608afb2e1 | Edgar A. Bering IV | 2021-12-10 22:04:00 +0200

fix: don't treat all delays as frozen time

--------------------------------------------------------------------------------
97e41b5463 | Kate | 2021-12-10 19:49:04 +0000

Update some tests
Remove obsolete items/egos from test character setups. This was only from a
very cursory glance over the tests, and they likely could use some further
attention (especially poor qw).

--------------------------------------------------------------------------------
76092dafaf | Edgar A. Bering IV | 2021-12-10 21:28:39 +0200

fix: don't crash when reaping with zonguldruk or chaos
The refactor to work like the rest of corpse exploitation got lost in
rebasing new Yred, oops.

--------------------------------------------------------------------------------
f17af53183 | Edgar A. Bering IV | 2021-12-10 19:23:15 +0200

fix: the build

--------------------------------------------------------------------------------
6ce92f56ac | ArmiesAndCastles | 2021-12-10 19:03:35 +0200

feat: improve wizmode freeze time
This commit keeps time frozen during autoexplore and forbids resting
(since HP will not be recovered).

[ Committer's note: Squashed and rebased, blocked the rest command
  completely. Closes #2206 Closes #2205 ]

--------------------------------------------------------------------------------
a90572a584 | advil | 2021-12-10 11:39:59 -0500

feat: clicking for inventory item actions
One thing the action panel has revealed is how minimally implemented
clicking is in the webtiles UI. I realize that lots of advanced players
are perfectly fine with never using a mouse, but allowing it makes
things easier for newer players who aren't used to huge keybindings.
This commit enables clicking on the actions in an item description popup
(which is one of my first targets for this kind of change because it's
so obviously missing when you right click from the action panel).

The implementation is entirely client-side: it converts any strings like
"e(v)oke" into a span with the `data-hotkey` attribute set to the hotkey
in parens. This might be described as hacky (perhaps sending structured
action data from the server would be better), but it was really easy to
implement and actually seems pretty robust/useful. Part of the trick was
that someone (aidanh I assume) has previously implemented an amazing
thing where if you just set this data attribute, an on click handler
magically springs into existence that sends the hotkey.

--------------------------------------------------------------------------------
39a6f95271 | Aliscans | 2021-12-10 18:39:39 +0200

feat: use modifier prefix keys in the direction chooser
/+direction and shift+direction are valid combinations for the "long walk" 
command. Shift+direction is a valid combination for "fire in a direction", with 
direction+! as an alternative, but having /+direction do the same should make 
it easier to remember.



Ctrl+X and Ctrl+P are both valid inputs to the direction chooser and common 
browser hotkeys, this commit also allows *X and *P as alternatives.



Put ' and ; before * and / in targeting_help_1, as the above change means the 
latter keys are used as modifiers if use_modifier_prefix_keys is set (the 
default).



In unmangle_direction_keys(), only let * modify characters which CONTROL() maps 
to \x00-\x1F. In particular, this means that ** is *, giving a work-around for 
people who use the default settings but are used to * and / cycling through 
objects.



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
0997d3a168 | ArmiesAndCastles | 2021-12-10 18:00:45 +0200

feat: add awoken forest attitude indicator to xv
[ Committer's note: fixed bracing style, Closes #2204 ]

--------------------------------------------------------------------------------
99a87601b6 | Edgar A. Bering IV | 2021-12-10 16:44:21 +0200

fix: use identify_item when deciding autopickup information

--------------------------------------------------------------------------------
f5e35ccd16 | Perry Fraser | 2021-12-10 16:24:55 +0200

fix: don't force picking up of newly IDd equipment
This just re-uses the logic that was being used for wands, which also
avoids the edge-case where if you floor-id something without using
autopickup triggering (like when AP is disabled) then it was possible to
have the item ID'd, marked as don't-pickup in `\`, and still picked up
due to NEEDS_AUTOPICKUP_KEY set in its props.

The old code that led to this logic seems to imply there was an
intentional hack for "previously-unknown items", but in testing, I found
no unexpected behavior with the new version.

--------------------------------------------------------------------------------
c8cd538e2d | Edgar A. Bering IV | 2021-12-10 16:06:36 +0200

lint: checkwhite

--------------------------------------------------------------------------------
6a268ab339 | Gopall | 2021-12-10 16:04:24 +0200

feat: prompt when wearing faith
Trying to remove an amulet of faith (while worshipping a deity that cares about 
it) would trigger a confirmation to confirm your choice.

But there wasn't any confirmation like that for when you tried to put it on.



So I added a bit of code to a function so the game would ask the player if they 
were sure they wanted to wear an amulet of faith.



[ Committer's note: There was some discussion among the devteam as to whether 
or not this prompt is necessary or if auto inscriptions can implement the 
desired functionality (autoinscribing faith with !P to force a prompt). I'm 
merging this for consistency and because this prompt protects new players who 
are exactly the ones who won't have autoinscriptions set up. ]
--------------------------------------------------------------------------------
9766e9d42a | ArmiesAndCastles | 2021-12-10 15:55:55 +0200

fix: forbid temporary form lava exploration
Closes #1975
--------------------------------------------------------------------------------
27af8a720d | EdDewey | 2021-12-10 15:55:05 +0200

fix: only ask barachi for confirmation once when they hop

--------------------------------------------------------------------------------
88f0ff19eb | Nikolai Lavsky | 2021-12-10 15:29:25 +0200

feat: allow checking if there is enough space for Malign Gateway
This commit disables the spell in the quiver and z/Z menu when there
is not enough space to open a gateway.

--------------------------------------------------------------------------------
2bfde531ef | Perry Fraser | 2021-12-10 15:23:54 +0200

fix: correct levdes.vim comment syntax highlighting
Seems to have been introduced as a typo in 763bd81.
--------------------------------------------------------------------------------
9d8ee82f23 | Aliscans | 2021-12-10 15:14:55 +0200

feat: state when a terrain blocks movement, but not reaching or magic
State in the description when a terrain blocks movement, but doesn't restrict 
reaching weapons or LOS_NO_TRANS spells.



At present, the former covers orcish idols, granite statues and malign gateways 
(the last only shows a description before the tentacle appears), and the latter 
also covers grates.



This knowledge could be useful for (e.g.) cheibrodos_spider_deadly_dance.



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
5bfae530bd | Nikolai Lavsky | 2021-12-10 15:11:34 +0200

fix: don't erase travel trail when visiting item piles (#2081)
After 330158af and 1bdd5c97, the travel trail is not drawn at all when
the player visits item piles.

`movement:cc:move_player_action()` adds visited tiles into the trail
as long as there is the running delay in the delay queue. If the player
moves manually (`running == false`), the same function calls
`clear_travel_trail()` to erase the trail.

Before we call `move_player_action()` for the last time,
`travel.cc:travel()` calls `stop_running()`, which removes the running
delay. As the result, `move_player_action()` clears the trail instead
of adding the last step to it.

Fix this by using `stop_running(false)`, which doesn't clear the delay.
This should be safe, since the delay will be cleared by other code
later anyway.

--------------------------------------------------------------------------------
dce3279b65 | Nikolai Lavsky | 2021-12-10 15:11:34 +0200

fix: draw complete travel trail when autoexploring (#2081)
After 14faa605, the travel trail sometimes doesn't have the last step.
It happens when autoexplore is interrupted by a monster coming into
view or by the player noticing a new item pile.

Previously, we removed the running delay from the delay queue only after
adding the last visited tile to the trail.

We stop running and remove the delay earlier now, so we need an extra
check after the code added in 14faa605.

--------------------------------------------------------------------------------
6a9fe35dad | burnish3d | 2021-12-10 15:10:15 +0200

docs: update style of use_animation and monster_list_colour (#2261)

--------------------------------------------------------------------------------
51eb943035 | hedk3 | 2021-12-10 15:08:02 +0200

fix: Storm Form display weapon name depending on species (#2265)
Currently, this form always displays "Storm fists" no matter the active 
species, despite tiles showing that the player character's anatomy is 
maintained in this transformation.



To be consistent with Statue Form and Blade Hands, this minor change uses the 
same logic used in Statue Form to fix this.
--------------------------------------------------------------------------------
f47a79d804 | Jonathan Klabunde Tomer | 2021-12-10 15:05:23 +0200

consider Summonings useless after sacrificing love (#2277)
With Abjurations gone, every spell in the Summonings school is inaccessible to

characters that have sacrificed Love to Ru. The skill is therefore useless to

them; we needn't bother allowing them to train it, and certainly shouldn't

offer manuals of Summonings from acquirement.
--------------------------------------------------------------------------------
6434aa07ad | robertxgray | 2021-12-10 14:00:31 +0100

Android: Fix weird keyboard on Samsung devices Newer Samsung devices use the 
emoji variant of some characters by default. This fix explicits the text 
variant and reduces the font size for better fitting in the smallest devices.

--------------------------------------------------------------------------------
f337918505 | robertxgray | 2021-12-10 14:00:23 +0100

Android: Long press as right click A long press can be used as a right click on 
the Android port.

--------------------------------------------------------------------------------
c0a09d7c55 | robertxgray | 2021-12-10 14:00:11 +0100

Hide tab icons by default in the small layout The icons are shown/hidden when 
clicking on the status area. We can increase the viewport scale as a result.

--------------------------------------------------------------------------------
498bec7977 | Edgar A. Bering IV | 2021-12-10 11:54:41 +0200

tiles: yred iconography (Sastreii)

--------------------------------------------------------------------------------
1eb2483b26 | Edgar A. Bering IV | 2021-12-10 11:47:23 +0200

fix: consistently treat zombie base types
In 1e9075421c5 zombies were de-anonymized. As an unfortunate side
effect, the function mons_zombie_base was changed to return the species
of the base zombie, not the base monster class used to define the
zombie.

As a result, most dramatically noticed for the damage of orcish derived
undead, but also relevant for spriggan defender zombie action eneriges
and any monster with a species much weaker than its type, the zombie was
based on the underlying species.

This commit simplifies some uses of the function and is being made after
verifying every other use will work correctly (or as originally
intended) with mons_zombie_base returning the monster class, and not the
underlying species.

Undead orc warlords should once again be as spooky as they seem from
their name.

--------------------------------------------------------------------------------
f3fc490d9d | Kate | 2021-12-10 03:13:02 +0000

Fix TSO not giving penance for miasma effects
Appears to have been broken since the poison conduct was removed in
c6e9da29e, oops. Fortunately didn't really matter since methods of creating
miasma (like casting Corpse Rot) would already cause penance, but fixes the
very powerful tech of creating a bunch of miasma in advance and then
converting to TSO and letting it kill things.

--------------------------------------------------------------------------------
0f7456fd9b | Kate | 2021-12-10 02:39:54 +0000

Update the manual's mutation section

--------------------------------------------------------------------------------
594c0c42f0 | Kate | 2021-12-10 01:51:32 +0000

Update the manual

--------------------------------------------------------------------------------
a282ea246d | advil | 2021-12-09 15:45:36 -0500

docs: update action panel options

--------------------------------------------------------------------------------
450912fe5d | advil | 2021-12-09 14:30:05 -0500

feat: action panel glyph mode
I'm not sure this is really that useful, so it's currently not tied to
actually being in glyphs mode and has its own option. We'll see if
people actually use it; if not, (and if I don't find a way to improve
it) it may just be better to remove before release.

--------------------------------------------------------------------------------
0cd4c285bc | advil | 2021-12-09 11:30:52 -0500

feat: more control over action panel item order
Previously, item order was determined by enum order. This change uses
the action_panel option itself to determine primary order (this was
already implemented in an ordered way), and item letter for the
suborder. It's possible that the latter will be too confusing by
default, and if so, we can return to subtype as the secondary sort
(which provides a stable ordering across games).

I've also tweaked the default so that it is actually enum order, for
some level of consistency before and after this commit.

--------------------------------------------------------------------------------
a9895729f1 | gammafunk | 2021-12-09 06:32:15 -0600

feat: Slightly tone down a float vault (Lici)
For minmay_chambers_of_sevens, the final chamber of sevens has seven 9
out-of-depth monsters, which is a bit steep for earlier mid dungeon
levels like D:7. Allowable, but verging into runed door territory, which
this vault isn't. Replace 3 9s with 0 spawns and downgrade two of the
loot items, preserving the count of seven monsters and seven loot items
in the final chamber.

--------------------------------------------------------------------------------
05a166d0ed | Kate | 2021-12-09 01:45:16 +0000

Adjust Chain Lightning damage falloff with range
Increase the damage falloff from 2/3 per arc to 3/5 - in practice the
damage falloff wasn't quite significant enough to make it feel distinct
from other level 9 spells that deal massive AoE damage. Making it fall off
faster helps make the positional aspect of the spell more important, while
retaining its huge initial damage.

In addition, rework the initial arc to scale smoothly with range, instead
of having damage breakpoints at range 4 and 7 - this wasn't communicated
clearly, and made those range breakpoints especially important against
Nikola, for example.

--------------------------------------------------------------------------------
a9c9dcfaf8 | Kate | 2021-12-09 01:45:16 +0000

Make wizmode god gifting grant Yredelemnul zombies
Since &^ can't be used to adjust Yred's piety, special-case &- to gift
zombies up to the next piety star.

--------------------------------------------------------------------------------
31ca34fcf2 | Kate | 2021-12-09 01:45:16 +0000

Refactor Bind Soul to use a new ability targeter
And slightly adjust a failure message.

--------------------------------------------------------------------------------
6c0667d426 | Kate | 2021-12-09 01:45:16 +0000

Slightly increase BiA piety cost
By 0.5 on average, to continue toning down the strength of various god
abilities that are extremely strong and relatively low cost.

--------------------------------------------------------------------------------
46f1710d2c | Kate | 2021-12-09 01:37:05 +0000

Adjust some Qazlal ability costs
To help Qazlal out a bit early on, reduce the MP and piety cost of Upheaval
slightly, and also reduce the MP cost of Elemental Force. Also increase the
MP cost of Disaster Area by 1, to make it a tiny bit harder to use multiple
times in a single fight.

--------------------------------------------------------------------------------
c1a47e44fc | Kate | 2021-12-08 23:25:24 +0000

Increase Okawaru Duel cost, reduce grace period on win
It's an intended part of the ability that the player has some time to heal
up after winning a duel, but it should be a little less reliable as a
method of escaping danger.

--------------------------------------------------------------------------------
3cb2360906 | Edgar A. Bering IV | 2021-12-08 23:05:34 +0200

tiles: spectre tiles for bound souls (Sastreii)
Not the full range of zombies like some of the others, but enough types
to capture the different kinds of soul encountered in crawl. Should help
the player keep track of their bound soul better. Definitely look super
cool.

--------------------------------------------------------------------------------
53f92202ff | Edgar A. Bering IV | 2021-12-08 23:05:34 +0200

fix: remove a now unused MB check

--------------------------------------------------------------------------------
26d7df5b1f | Edgar A. Bering IV | 2021-12-08 23:05:34 +0200

feat: add the rest of genus W to Dark Bargain
Since that was intended from the start. As the list is now longer in the
mid range, adjust the quality floor upward.

--------------------------------------------------------------------------------
274bf074c3 | Edgar A. Bering IV | 2021-12-08 23:05:34 +0200

feat: toughen up bound souls
For a capstone that's a bit tricky to earn, bound souls are pretty
flimsy, even with the extra HP they were previously given.

Let's turn them up a bit more so they get a better "bridge moment" feel,
and players feel good about keeping them around/replacing and upgrading
them.

--------------------------------------------------------------------------------
a437c65847 | Edgar A. Bering IV | 2021-12-08 23:05:34 +0200

fix: clean up merge-induced bugs in dark bargain
As well as abort the ability if the servant fails to arrive, instead of
charging the player zombies for nothing.

Unlike other ally abilities, Yred's Dark Bargain is used by players who
have gobs of allies, so many that they might not have any available
space for their servant. Aborting may leak a small amount of
information, but the cases where that happens are either: ones where the
player is getting it any way in virtue of their zombies, or so
vanishingly rare and punishing that its probably ok to leak here.

--------------------------------------------------------------------------------
b2c76ee18a | Edgar A. Bering IV | 2021-12-08 23:05:34 +0200

feat: mark death channel useless for Yredites

--------------------------------------------------------------------------------
d6ebe8a65d | Edgar A. Bering IV | 2021-12-08 23:05:34 +0200

feat: allow bound souls to throw rocks

--------------------------------------------------------------------------------
ea437062f2 | Edgar A. Bering IV | 2021-12-08 23:05:32 +0200

rename: change Yred abilities to not be explicit slavery
Casual use of slavery-as-entertainment in crawl has been on its way out
as poor taste for a while. Yred was one of the last hold outs, this
rework is a good opportunity to make a change. Instead of dipping into
the metaphysics of whether or not "enslaving souls" is the same as
chattel slavery, let's just be a bit more vague in the flavour of Yred.

--------------------------------------------------------------------------------
17048352e6 | Edgar A. Bering IV | 2021-12-08 23:04:45 +0200

refactor: black torch: treat bound souls as their own species
There were a bunch of strange special cases for spectral things intended
to handle edge cases for bound souls but not show up on regular
spectrals because of other checks or luck. This changes the enslaved
soul to be its own monster type, still of species spectral thing, and
simplifies or makes explicit the relevant checks.

This commit also allows bound soul stats to be adjusted independent of
spectral things; the EV modifier could be changed in the future. For
now, to buff the bound soul, it gets full HP so as to be less fragile.

--------------------------------------------------------------------------------
5224dc67e1 | Edgar A. Bering IV | 2021-12-08 23:04:45 +0200

fix: clarify that undead left behind will poof

--------------------------------------------------------------------------------
df1d555f45 | Edgar A. Bering IV | 2021-12-08 23:04:45 +0200

feat: fineff-ify attitude changing revivals
Many different ways of harming a monster don't expect the monster to
change attitude partway through the process. This has been the source of
several mysterious Yred enslaved soul and Beogh deathbed conversion
bugs. To prevent them, move both of these attitude-changing revivals to
a fineff, so that mon->alive() returns false for the convertee until the
fineff fires.

This is a bit hacky so might cause weird behavior, but since fineffs now
fire after each monster turn I don't think it will.

--------------------------------------------------------------------------------
c2baa198af | Edgar A. Bering IV | 2021-12-08 23:04:45 +0200

feat: black torch: spectral mist immunity
Like nightvision, meant to make monsters from Dark Bargain not harmful
to the player. Of course, we could have left revenants off of the dark
bargain list but that is a significantly less cool approach.

--------------------------------------------------------------------------------
8b846c3b94 | Edgar A. Bering IV | 2021-12-08 23:04:45 +0200

fix: reduce message spam under Yred and Usk

--------------------------------------------------------------------------------
8212ce3e68 | Edgar A. Bering IV | 2021-12-08 23:04:45 +0200

feat: black torch: yredelemnul conduct enforcement

--------------------------------------------------------------------------------
772aeeb350 | Edgar A. Bering IV | 2021-12-08 23:04:45 +0200

feat: black torch: handle yred abandonment correctly
Update the abandonment sequence for the new style of yred minion and
tidy up the now unused ALLY_YRED daction.

--------------------------------------------------------------------------------
0a07692a02 | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

feat: black torch: monk and ecumenical altar bonuses
Grant the devout some immediate zombies. Monks get filled all the way up
to **, which will feel a bit sad in the Temple but oh well. Ecumenical
altar grants * worth of zombies, which at D:1-3 is a lot of bodies. Monk
+ Ecu gives ** but a few more zombies than a monk alone.

--------------------------------------------------------------------------------
bf6f545f5c | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

fix: increase bind soul duration
Now that it's a bit more awkward to use, give players a little more time
to make the kill, since the zombies are paid out either way.

--------------------------------------------------------------------------------
3254f7a1f8 | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

feat: ensoul the animals
And other less intelligent creatures. Souls are things that living,
demonic, and holy creatuers have regardless of intelligence!

--------------------------------------------------------------------------------
bf073b50f9 | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

fix: prevent spectral things from taking stairs

--------------------------------------------------------------------------------
556ba5c09b | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

feat: don't drop corpses with Yred
This is to create the illusion that Yred always reaps when a corpse is
dropped. (Yred's reap chance can be improved with faith, so it's a
separate roll, but without faith they're both coinflips.)

For consistency, both the reaping brand effect and this Yred effect now
occur before dropping a hide. You cannot skin a zombie after its been
reanimated!

--------------------------------------------------------------------------------
7da1dd8346 | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

feat: black torch: give full XP for Yred ally kills
Commit db2750068a removed the summon XP penalty for all but Beogh and
Yred allies, hoping a future rework of these two categories would allow
the penalty to remove. The black torch sequence of commits overhauls
Yred into a state where full XP is ok.

--------------------------------------------------------------------------------
39e59bd991 | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

feat: runrest ignore yred messages by default

--------------------------------------------------------------------------------
3d579d9813 | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

feat: black torch: amulet of faith
Amulets of faith increase the chance of reaping a semipermanent follower
while worshipping Yred. On removal some of these followers are
reclaimed. This means that a Yred worshipper without zombies can remove
faith for free, but that's similar to Uskayaw.

--------------------------------------------------------------------------------
98cb3ae26c | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

feat: grant Yred nightvision at all times (kate)

--------------------------------------------------------------------------------
2e4292cc8c | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

text: Update Yred's description to reflect the changes

--------------------------------------------------------------------------------
484e03e0cf | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

text: give more detail in the bound soul desc

--------------------------------------------------------------------------------
b0a17c5a12 | Edgar A. Bering IV | 2021-12-08 23:04:44 +0200

feat: black torch: remove yred gifting
In Yred's redesigned piety system, the gift timer and its mechanics
don't make sense, so the permanent ally gifts are removed. This achieves
one of the goals of the redesign, which is to severely limit the use of
permanent allies (to only the enslaved soul).

--------------------------------------------------------------------------------
3e152b4d76 | Edgar A. Bering IV | 2021-12-08 23:04:43 +0200

feat: black torch: dark bargain
A subsequent commit will remove Yred's passive, permanent gifts. Yred's
more powerful servants are really cool as allies and significantly
better than plain zombies and spectres. This active ability
brings them back as summons, the player trades their zombies for them.

This commit also expands the list of Yred servants to cover almost all
of genus n, z, V, and W. The exceptions are Vampire Mages (kiku
worshippers, or at least too proud to serve), and a couple of monsters
that would be more harmful to the player than good allies.

--------------------------------------------------------------------------------
83783ab100 | Edgar A. Bering IV | 2021-12-08 23:03:47 +0200

feat: black torch: zombie piety
Move Yred to an alternative piety system, where abilities are paid by
offereing up some of the player's reaped souls.

Currently this uses Zombies-recently-in-LOS for piety, the aim being a
medium-time-scale piety system that builds up over a single floor, but
resets on floor transition. Zombies on the floor could also be used, but
there are information leak issues with that, plus it encourages closet
stashing. The goal is to encourage the player to keep their harvest
close at hand!

Reaped monsters live on the floor they were created on and disappear
when the player leaves the floor (by any means, portal vaults and
shafts both count). This gives Yred a medium-scale piety system, lasting
longer than Usk but much shorter than a conventional god.

--------------------------------------------------------------------------------
35b79d20d0 | Edgar A. Bering IV | 2021-12-08 23:03:47 +0200

refactor: move the targeting abflags to the high byte

--------------------------------------------------------------------------------
831c365f3e | Edgar A. Bering IV | 2021-12-08 23:03:46 +0200

feat: black torch: passive reaping
To replace Yredelemnul's active animate dead abilities, this introduces
a passive reaping status, granted at 0*. In this redesign Yred will use
zombies as piety, so this is in essence the new piety gain system.

Yred reaps both body and soul, from monsters that don't have a corpse
(or whose corpse exploded!) the player gets a spectral thing. With the
recent change to allow spectralizing demons, Yred can reap
their twisted souls, too.

The reaped monsters cannot leave the floor they came into being on, and
if the player leaves they are dismissed.

--------------------------------------------------------------------------------
b4513a33df | Edgar A. Bering IV | 2021-12-08 23:02:13 +0200

feat: new yred: remove injury mirror
Injury Mirror was the most awkward of Yred's abilities. It cost a lot of
piety if it activated, but getting a big activation meant taking a lot
of damage. In comparison, Drain Life gains hitpoints and costs a
predictible amount of piety.

It's possible there's an injurry-mirror or damage-sharing ability that
works with the re-designed Yredelemnul "zombies are piety" principle,
beyond just having allies to soak up damage. For now, this gets the axe.

--------------------------------------------------------------------------------
286e7562c3 | Edgar A. Bering IV | 2021-12-08 23:01:25 +0200

feat: black torch: remove yred animation actives
This sequence of commits re-designs Yredelemnul. A key feature of the
re-design is a passive reaping to replace the animation active
abilities, and a necessary first step is to remove them.

--------------------------------------------------------------------------------
aa9a639d33 | Perry Fraser | 2021-12-08 15:22:59 -0500

Have deps.py print output of a command on fail
Note: probably would be better to use subprocess.run instead of
check_output, but that's Python 3.5+ only. I'm not sure what the
intended version this is supposed to run on.

--------------------------------------------------------------------------------
92583b6a8d | advil | 2021-12-08 14:25:50 -0500

fix: don't let Usk steal other gods' powers (G-Flex)
As discovered by G-Flex, if you have a religious ability quivered and
convert to Uskayaw, the quivered ability registers as valid and can be
used via quiver commands if you meet its piety threshold. This commit
changes `god_power_usable` to do an explicit god check. To support this
check I refactored the god_powers static to use a construct-on-first-use
paradigm, and added the god field directly to the struct type.

--------------------------------------------------------------------------------
7a5fce4930 | Edgar A. Bering IV | 2021-12-08 16:05:56 +0200

feat: adjust fiend ratios in Coc and Dis
New Cocytus and Dis have turned out significantly deadlier than new Geh
and Tar. In Cocytus, shard shrikes shine bright, sticking out as an
outlier in kills. In Dis, iron giants aren't as much of an outlier,
until you notice the second kiler is iron golems, who spawn in bands
with an iron giant leader to chuck them at the player.

On the other hand, Ice Fiends have barely notched any kills in coc,
despite being rather nasty; Hell Sentinels have about 1/3rd the kills of
the giant/golem duo, a bit more respectable but not enough to catch up
to an outlier.

Comparatively, tainted leviathans and hellephants spawn singularly. The
former hold their own, racking up kills with a similar rate to
tzitzimimeh (who spawn less often). The latter are weaker, but the rarer
brimstone fiends top the charts.

So this commit reduces the frequency of iron giants and shard shrikes,
swapping them with hell sentinels and ice fiends respectively in the
table, in hopes of making the four hells a bit more level.

--------------------------------------------------------------------------------
9c4cb8273d | advil | 2021-12-07 15:52:52 -0500

fix: handle db source files with mtime 0
These don't occur normally in the wild, but sometimes people doing
reproducible packaging or the like will set all mtimes to 0. When this
happens some old db code that treated 0 as an error condition would
produce a fairly incomprehensible ASSERT. I suspect this is what is
behind:

  https://crawl.develz.org/mantis/view.php?id=11956&nbn=1#bugnotes
  https://github.com/crawl/crawl/issues/2276

and the like, though this is not something I've been able to test. I've
also rewrote the ASSERT to produce something more like a real error
message, though I think it should be much harder to trigger now.

Note to packagers: this commit keeps things from crashing, but
distributing files with mtime 0 is *really not recommended* unless you
are sure to never use a shared db cache directory. If you do, this
commit will severely break having multiple versions installed (and I
don't think the errors will be any less cryptic that this one). It
should meet a typical reproducible build desiderata to use the official
file times for db (and most dat/ files) as these are not generated at
build time -- they are game data files.

--------------------------------------------------------------------------------
9b0f503c9e | advil | 2021-12-07 14:26:38 -0500

fix: hidpi scaling for action panel div

--------------------------------------------------------------------------------
702cd34d14 | advil | 2021-12-07 14:20:06 -0500

fix: scale action panel qty for hidpi also
There must be some better way to do this...

--------------------------------------------------------------------------------
5957592b1c | advil | 2021-12-07 13:40:16 -0500

fix: correct hidpi rendering for the action panel (PleasingFungus)
This code assumed that the `renderer` object was pre-adjusted for the
device to pixel ratio (which is how it's done elsewhere), but this is
not so straightforward to do for the action panel (though it might be
cleaner if it could be done). So, do explicit scaling for the device
ratio, and remove explicit scaling for mouse cursor position. Should
have no impact on non-hidpi/retina devices.

--------------------------------------------------------------------------------
b7f16da270 | advil | 2021-12-07 12:22:38 -0500

fix: improve `.prf` file naming/location on DGL builds
Two changes, should affect DGL builds only:

1. Set the filename correctly. After game start, it turns out that
Options.game.name is the empty string, resulting in the hilarious
behavior of everyone on a DGL_STARTUP_PREFS_BY_NAME build sharing
a single prefs file named `start--ns.prf`.

2. For a DGL_STARTUP_PREFS_BY_NAME build, put prefs in a subdirectory of
the shared directory, rather than the saves directory. The reason for
this is that the saves directory on a DGL setup (and maybe any setup
using this flag) is versioned, and so the .prf file gets wiped
out/ignored on any trunk version change. (An alternative would be having
DGL copy the files, but this would be too painful to implement.)

--------------------------------------------------------------------------------
1a2f33fa85 | Nicholas Feinberg | 2021-12-06 18:37:15 -0800

Remove spurious malevolence (some)
If an explore trap teleportation fails to teleport the player, don't
print a message about malevolence. Still possible to get a spurious
message from getting explore shafted after getting non-explore
shafted, in principle.

--------------------------------------------------------------------------------
a8db75c868 | Nicholas Feinberg | 2021-12-06 18:29:54 -0800

A flaming sword which turned each way... (Sastreii)
New tiles for ironbound thunderhulk, Yredelemnul's altar, and the
Seraph.

--------------------------------------------------------------------------------
8410daf38b | advil | 2021-12-06 21:19:17 -0500

fix: tweak full hide behavior with minimized action panel
The action panel is supposed to hide itself entirely if there's no
relevant inventory items (either by happenstance or by configuration),
but because of the sequencing this would still show the minimized form
-- clicking the + then got rid of the panel. (An easy way to replicate
was to set `action_panel =` and `action_panel_show = no`, but it also
had similar behavior when dropping items.) This adjusts the sequencing
so that the placeholder is handled correctly with no items at all.

--------------------------------------------------------------------------------
8662a715a7 | advil | 2021-12-06 20:00:25 -0500

fix: use longname for explore trap flavor
Adding "the" to `shortname` doesn't always work, and `longname` already
is designed to be used wherever a definite description should work.

Resolves #2270

--------------------------------------------------------------------------------
6b46d0572a | advil | 2021-12-06 18:36:35 -0500

fix: show wands by default in the action panel
Early indications are that it is more confusing than not to leave these
out by default. I guess the concern may have been screen space, but we'll
see how it goes in practice.

--------------------------------------------------------------------------------
3b2567e0bc | advil | 2021-12-06 18:29:49 -0500

fix: use targeters from action panel
This change got lost in the shuffle, I think this is what players will
expect though.

--------------------------------------------------------------------------------
57bb0be0ea | advil | 2021-12-06 17:03:44 -0500

fix: fully remove custom parsing code for action_panel_orientation
This check can be implemented using a different class, so let's do that.
(A previous commit had made the custom parsing code inert by converting
the option to StringGameOption, but this had the result that anything
other than "horizontal" was interpreted as "vertical" rather than
producing an error.)

--------------------------------------------------------------------------------
0724427129 | advil | 2021-12-06 17:03:44 -0500

feat: save action panel scale and font size
This also changes the behavior of action_panel_scale so that it is an
int percentage, rather than a float -- this allows removing custom
parsing code, and makes it so that the ui and settings values are more
consistent. (I had apparently already added the IntGameOption part of
this in a previous commit, so this commit isn't clean.)

--------------------------------------------------------------------------------
691f867587 | advil | 2021-12-06 17:03:44 -0500

fix: hide action panel for spectators
A braver person than me might try to sync the visual state of this with
the player rather than hiding, but I'm not going to do that any time
soon myself.

--------------------------------------------------------------------------------
b232902b95 | advil | 2021-12-06 17:03:44 -0500

fix: hide tooltips when action panel settings is open
These aren't readable anyways, because they are under the popup.

--------------------------------------------------------------------------------
090e49b2c9 | advil | 2021-12-06 17:03:44 -0500

fix: apply an upstream fix from focus-trap
This reverts ac5a30bc78f08b3 and applies the final upstream fix for
https://github.com/focus-trap/focus-trap/issues/103, in particular:
https://github.com/focus-trap/focus-trap/commit/fe2b0ad8d03d3a727d7f0d4d1e0ec2b3
f2887577.

Since my original fix for this focus-trap has gained a new maintainer
and seen a bunch of releases, so possibly we should consider updating,
or at least checking if there are specific bugfixes to apply.

--------------------------------------------------------------------------------
bbe7356047 | advil | 2021-12-06 17:03:44 -0500

feat: use focus-trap for action panel settings popup
This fixes a whole bunch of issues with keypresses going the wrong
place, focus not being returned after this closes and just generally
being weird, etc. There are still various issues with this commit that
are indicated in the comments, where basically (to me at least) browser
focus can be extremely mysterious. But the only user-facing one is that
I couldn't get tabbing to the buttons to work.

Also, rename some html elements.

--------------------------------------------------------------------------------
394b2318f7 | advil | 2021-12-06 17:03:44 -0500

fix: min panel scale to 50%, not 10%
With 0.1, it becomes hard (on my display at least) to get back to the
panel by right clicking. 50% is about the smallest I could imagine it
being usable at, and it makes it possible to get to the settings menu to
reset this value. This may need further tweaking. Note that nothing
prevents you from setting a lower value in rc if this is useful in some
configuration I'm not imagining. (There's a different way to hide it
altogether.)

--------------------------------------------------------------------------------
a1dc6246e2 | advil | 2021-12-06 17:03:44 -0500

fix: don't toggle settings panel on settings change
This fixes a regression introduced when I implemented saving.  Because
the textinput value is processed on key input, they are unusable if the
panel closes immediately.

--------------------------------------------------------------------------------
af3cd226fe | advil | 2021-12-06 17:03:44 -0500

fix: change behavior of x when settings open
Previously, this would still minimize the panel, but I think it's more
intuitive to just hide the settings pane if settings is currently open.

--------------------------------------------------------------------------------
ff10334c96 | advil | 2021-12-06 17:03:44 -0500

docs: update action panel entries

--------------------------------------------------------------------------------
551de97837 | advil | 2021-12-06 17:03:44 -0500

refactor: rename consumables panel => action panel
I anticipate we may eventually want to generalize this beyond just
items. This is an optimistic preemptive rename, since the options names
need to be definitive before merge, though I don't anticipate making it
handle non-consumables before merge. This change also makes the options
names a bit shorter and (maybe) easier to remember.

--------------------------------------------------------------------------------
7743480e9c | advil | 2021-12-06 17:03:44 -0500

feat: save some consumables panel settings in .prf file
This provides a persistent memory of whether the user has the panel
visible, and what orientation they have it in, across games.

--------------------------------------------------------------------------------
d1ef89111a | advil | 2021-12-06 17:03:44 -0500

feat: improvements to webtiles options API
This adds a bit more control over some of the set_options calls on the
webtiles side, and provides a way for webtiles to send options settings
back to the crawl process. It's still all a bit brute force.

--------------------------------------------------------------------------------
c9e27d6a74 | Nikolai Lavsky | 2021-12-06 17:03:44 -0500

fix: iron out a few bugs in the consumables panel enhancements
This commit fixes the following issues:

* The hide button was drawn on top of the first consumable item.
* Interaction options - adjust, read/quaff, drop, inscribe -
  didn't work when called from the describe popup, printing "Unknown
  command" messages instead. I fixed this by replacing
  `describe_item_popup()` with `describe_item()`, which executes
  the selected interaction via `_do_action()`.
* It wasn't possible to use unidentified potions and scrolls by clicking
  them on the panel. I "fixed" this by allowing to quiver unidentified
  potions and scrolls. This was explicitly disabled in
  `consumable_action:is_valid()`, but it looks like such consumables
  work fine from the quiver, so I hope this change is OK. Also, I added
  an extra check into `consumable_action:is_enabled()` to prevent
  information leaks.
* The cursor for the selected item didn't scale with the panel. This
  was caused by calls to `draw_icon()` missing a couple of arguments.
* There were no item tooltips in Chrome (caused by a missing `var`).

Also, there is a new `draw_gui()` helper function for drawing tiles
from the `gui.png` tilesheet.

It wasn't obvious that the panel has a settings menu, so I added
a tooltip for the hide button.

--------------------------------------------------------------------------------
bd7f567b5d | advil | 2021-12-06 17:03:44 -0500

feat: consumables panel enhancements (clicking, information)
(This is not super well-tested, so I'm not really sure if it is safe to
merge just yet.)

This commit adds the following features to nlavsky's original
consumables panel patch:

* click to show/hide; the leftmost icon when visible is always a hide
  icon.
* right click on the hide icon (only) to get the settings popup
* right click closes the settings popup also. (This should maybe close
* if you click out of this ui, but I wasn't quite sure how to do that.)
* tooltip on consumables gives the item name and inventory letter
* right click on consumables (when in mouse command mode) opens the
  describe popup
* left click (in mouse command mode) just directly triggers the item.
  This is implemented via the actions interface, so doesn't need to add
  much code (as it rests on 6e4aca117). Does this make misclicks too
  easy?

I'm undecided whether this should be minimized or shown by default. It
would be really nice if minimization state at least were stored either
as a cookie or in the save between sessions.

Motivation: The patch as it stands is feature-complete relative to the
original goals (including ones I encouraged), but after testing I
unfortunately don't think it will feel very complete to end users. The
UI has the form of something that should be clickable, so players will
expect it to be clickable. (The tiles even look kind of like local tiles
menus.) Also, players not familiar with the icons will have a lot of
trouble with this: even as a long-time console player I don't know the
icons well. Hence the tooltip.

--------------------------------------------------------------------------------
9e6efe1491 | Nikolai Lavsky | 2021-12-06 17:03:44 -0500

Add an in-game configuration menu for the consumables panel
This new menu allows changing the panel's orientation, scale, and font
size in-game. Also, it allows minimizing the panel into a "+",
similar to how the chat window can be minimized.

All the changes are done on the client side and not saved between
sessions.

Also, this commit splits the panel's font option into font_size and
font_family, so it is similar to other existing font options.

--------------------------------------------------------------------------------
8d133420af | Nikolai Lavsky | 2021-12-06 17:03:44 -0500

Add a font option for the consumables panel (nojaa3)
The pixel font used for displaying the quantities of items is quite
small and doesn't scale well. Instead of mimicking the style of
the inventory panel from local tiles, it's better to use a system font
and allow the player to configure it.

This commit adds an option to specify the font for the panel and
increases the default font size.

--------------------------------------------------------------------------------
f446b847d9 | Nikolai Lavsky | 2021-12-06 17:03:44 -0500

Add an option to reposition the consumables panel (Implojin)
To make the panel less intrusive for more screen resolutions and sizes,
add the `consumables_panel_orientation` option.

When set to 'horizontal' (the default), the consumables panel will be
placed along the top edge of the screen. When set to 'vertical',
the panel will be placed along the left edge.

--------------------------------------------------------------------------------
637e5f1bb1 | Nikolai Lavsky | 2021-12-06 17:03:44 -0500

Filter consumables on the crawl binary side (advil)
This allows to use the same regex parser that the crawl binary uses,
which should be faster. Also, it makes the code more portable to
other build targets.

Now `TilesFramework::_send_item()` does the filtering and sends
an extra flag with each item, `qty_field`. If it's either "plus" or
"quantity", the web client(s) will show such items on the panel.

--------------------------------------------------------------------------------
58cd58bcfe | Nikolai Lavsky | 2021-12-06 17:03:44 -0500

Remove a couple of obsolete vendor prefixes
Firefox v.51+ (2017) and Chrome v.30+ (2013) can handle the unprefixed
`imageSmoothingEnabled` canvas property just fine.

--------------------------------------------------------------------------------
972ed031cb | Nikolai Lavsky | 2021-12-06 17:03:44 -0500

Fix web clients not getting updated about the state of XP evokers
Whenever an inventory item's item_def changes, the game sends an update
to the web client(s). Because information about XP evokers is stored
outside of item_defs, there are no updates when XP evokers recharge
or lose charges.

Fix this by caching the number of charges in the item.plus field
(similar to how wand charges are stored) and sending updates when
necessary.

--------------------------------------------------------------------------------
d76b51a1a8 | Nikolai Lavsky | 2021-12-06 17:03:43 -0500

New consumables panel for Web Tiles
The main goal of adding this panel is to give the player a quick and
easy way to see all the items that can help them succeed in a fight.

It would be ideal to have the full inventory panel, similar to Local
Tiles, but there are a couple of problems. The first is a lack of screen
space: unless you have a big monitor, the choice is either the monster
list (Web Tiles) or the inventory panel (Local Tiles). The second
problem is that only about a half of inventory items are useful in
fights. A filtered view of the inventory will take less space and
present only combat-relevant items.

This commit adds a new panel, which can be configured via four options:
  * `consumables_panel`: types of items to show on the panel;
  * `consumables_panel_filter`: a list of regular expressions for
    filtering items out;
  * `show_unidentified_consumables`: whether to show unidentified
    scrolls and potions;
  * `consumables_panel_scale`: allows to change the size of icons on
    the panel.

The panel is displayed in the top left corner, partially covering
the top row of tiles on the map. Non-Barachim chars should always have
at least one out-of-sight row at the top. For Barachim, the game can
show 18 rows of tiles with one out-of-sight row at the top as long
as you have 736 pixels vertically.

--------------------------------------------------------------------------------
4b78bf2b85 | Edgar A. Bering IV | 2021-12-06 21:12:23 +0200

docs: changelog through 0.28-a0-1004-g00e6d53462

--------------------------------------------------------------------------------
00e6d53462 | Edgar A. Bering IV | 2021-12-06 21:00:32 +0200

fix: make mauler's inscription consistent

--------------------------------------------------------------------------------
a36b043db1 | Edgar A. Bering IV | 2021-12-06 20:27:03 +0200

feat: refactor eleionoma and fenstrider wands
2dcde036d21 gave eleionoma and fenstirder witches guaranteed wands.
However, it didn't give them the ability to use the wands. This was on
purpose, the wands were meant as loot for the player, not an extra
threat on already mid and high tier monsters.

Placing the items into monster inventory was a bit confusing, players
expect monsters carrying wands to be capable of using them; especially
with the UI efforts put in to announce monster wands.

Since these are meant as pure loot, this commit refactors them to drop
on death through the same code path that drops dragon hides. This
roughly halves (corpse rng) the rate of wand generation in 2dcde036d21,
so the charges dropped are doubled to compensate.

--------------------------------------------------------------------------------
f00fe891ef | Kate | 2021-12-06 01:09:34 +0000

Don't allow equipping Lear's with Demonic Touch (Lightli)

--------------------------------------------------------------------------------
1d7427ec22 | Kate | 2021-12-06 00:40:18 +0000

Refactor some breath weapon handling
Although it could still use some more streamlining.

--------------------------------------------------------------------------------
1aa8e01074 | Kate | 2021-12-06 00:40:18 +0000

Initialise a variable (geekosaur)

--------------------------------------------------------------------------------
ce17e19b79 | Kate | 2021-12-06 00:40:14 +0000

Adjust umbra accuracy and stealth handling
Grant players (and monsters) immunity to umbra's accuracy reduction if
they're wearing the ring of Shadows, and don't give players a stealth bonus
in umbra unless they're emitting it themselves, so Yredelemnul worshippers
no longer gain bonus stealth from allied profane servitors (while still
avoiding the accuracy reduction).

--------------------------------------------------------------------------------
b9e9c7b67e | Kate | 2021-12-05 04:26:43 +0000

Add missing canned messages for some cancelled abilities

--------------------------------------------------------------------------------
e2d2f24f2d | Kate | 2021-12-05 04:26:43 +0000

Let Divine Exegesis trigger Battlesphere/Demonic Magic
Since it's mostly-but-not-quite a real spell.

--------------------------------------------------------------------------------
b3aea5d014 | Kate | 2021-12-05 04:25:00 +0000

Refactor spell-based ability failure timing
Fixes Demonspawn Damnation, Beogh Smiting, and Sif Muna Divine Exegesis
having fail checks before targeting.

--------------------------------------------------------------------------------
0dbd382bca | Kate | 2021-12-05 04:18:00 +0000

Refactor many ability fail checks
Abilities should always be targeted before their fail check, so that they
can consistently be cancelled before committing to activating the ability.
This commit fixes this issue for a large number of abilities, and removes
unnecessary fail checks for abilities that should never fail. A small
number of abilities still need further refactoring to move the fail check
to take place pre-targeting.

--------------------------------------------------------------------------------
27b72ba42d | Kate | 2021-12-05 04:18:00 +0000

Refactor some abilities to use new targeters
Most breath weapons (except for Breathe Acid, which has a more complex
targeter), as well as a number of simple targeted god abilities (Makhleb
Minor/Major Destruction, Zin Imprison, Okawaru Duel, and Fedhas Grow
Ballistomycete/Oklob) now use new ability targeters.

--------------------------------------------------------------------------------
557f2b6704 | Kate | 2021-12-05 04:17:54 +0000

Add more ability targeter handling
There should now be full support for targeted abilities to share the new
targeting code. Some particularly complex abilities might be difficult to
refactor, but many aimed abilities such as breath weapons can now start
being moved to use the improved targeters.

--------------------------------------------------------------------------------
46d0310cc0 | Kate | 2021-12-04 22:56:01 +0000

Display ability ranges in their descriptions
By adding range to ability_def, in preparation for also using it in ability
targeters.

--------------------------------------------------------------------------------
956f0ee3d5 | Kate | 2021-12-04 01:58:07 +0000

Make Demonspawn stingers conflict with regular stingers

--------------------------------------------------------------------------------
482a24a92f | Kate | 2021-12-04 01:30:09 +0000

Give Pikel a new title
To match his new(-ish) job trading souls of the damned.

--------------------------------------------------------------------------------
d7bf75cbcc | advil | 2021-12-03 18:56:15 -0500

fix: don't use html entities in issue template
This didn't work, I don't know why I thought it might.

--------------------------------------------------------------------------------
17ad3ed552 | advil | 2021-12-03 18:53:24 -0500

docs: adjust issue template
People seem to be surprisingly incapable of reading and following the
"replacing or deleting all italicized text" instructions, so make it
easier on them by putting this text in comments.

--------------------------------------------------------------------------------
8383568036 | Kate | 2021-12-03 21:54:34 +0000

Slightly increase Dragon Form fire breath power
Draconians in dragon form all get to keep their breath weapons and use them
at a power of 2 * XL, but other species (and red draconians) used fire
breath at a power of XL + 12 instead. Change fire breath's power to also be
2 * XL for consistency.

--------------------------------------------------------------------------------
82fdf335c4 | Kate | 2021-12-03 21:39:05 +0000

Remove an unused function

--------------------------------------------------------------------------------
d6bbb3f436 | Nicholas Feinberg | 2021-12-03 10:54:22 -0800

Rename: traumaturge gloves -> Mad Mage's Maulers
The lowercase name felt odd, and also conflicted with a Veh title.
Neither were large problems, but neither is a rename, so why not?

--------------------------------------------------------------------------------
3775c662fe | Nicholas Feinberg | 2021-12-02 15:55:11 -0800

Put on my wizard hat (Sastreii)
New funny hat tile.

--------------------------------------------------------------------------------
1de4e0787c | Kate | 2021-12-02 01:35:24 +0000

Add static targeters for many abilities
Making abilities behave more consistently with regards to targeting is a
pretty substantial project, but this is a start for many of the simpler
abilities. Currently this only supports static targeters - some limited
support for regular targeters has been added, but more work would be
required to fully support regular targeters (such as more ability flags to
indicate how an ability should be targeted).

As with spells, a number of abilities with either full-LOS or limited
radius effects are added to the default force_ability_targeter option.

--------------------------------------------------------------------------------
134dc7ce2c | Kate | 2021-12-02 01:35:24 +0000

Remove some unused handling for wand trove tolls (Ge0ff)

--------------------------------------------------------------------------------
945c40ea80 | CanOfWorms | 2021-12-01 18:01:05 -0500

Reduce the average number of items in a shop
With the pool of permanent items slowly decreasing over the years,

shops have shown a noticeable increase in redundancy with permanent

items, such as jewellery stores selling multiple copies of a particular

amulet type. In addition, shops can generate with up to 16 items,

which creates unnecessary UI clutter. Fix this issue by reducing the

average number of items in a shop from 4 + 3d12/3 to 4 + 3d8/3, reducing

inventory by 2 items on average.



This change also counterbalances a gradual increase in the quantity

of consumables available, possibly due to the removal of food and

gadget shops.
--------------------------------------------------------------------------------
3664467d6e | mgdelmonte | 2021-12-01 11:04:50 -0800

bugfix: lua moninf_get_flags must init flags
Function fails until flags are initialized, which for now only happens if you 
call `is` first, at least once, with a string.
--------------------------------------------------------------------------------
85d866c40e | robertxgray | 2021-12-01 11:01:39 -0800

Exclude hidden spells from the memorisation tab

--------------------------------------------------------------------------------
79cf1ff08c | Brian Power | 2021-12-01 09:32:09 -0800

hint mode: prevent temporary portals being misindentified as downstairs

--------------------------------------------------------------------------------
8735e2aeb5 | Kate | 2021-12-01 16:52:37 +0000

Adjust some deck descriptions
Conveniently also prevents gather_items from claiming that there exists a
"deck of at one's foes (or, if unlucky, at oneself)." Probably the script
should also be reworked somehow to avoid similar things happening again
elsewhere in future.

--------------------------------------------------------------------------------
dd2fe8c8b9 | Kate | 2021-12-01 16:40:22 +0000

Add some missing books to gather_items

--------------------------------------------------------------------------------
86362df473 | Kate | 2021-12-01 16:18:20 +0000

Remove some unused handling for book trove tolls

--------------------------------------------------------------------------------
0325d80940 | Kate | 2021-12-01 15:43:42 +0000

Remove an obsolete trove message

--------------------------------------------------------------------------------
a7f8b01127 | Aliscans | 2021-11-30 18:38:00 -0800

Remove "const" from the parameter to seen_item().
751e42844d described removing the const from a reference within seen_item() as 
a "major hack". 11 years later, fixing this involves removing the const from 
this function and one additional method, with no changes needed for 
stack_iterator.

--------------------------------------------------------------------------------
8d97f0daa7 | paul | 2021-11-30 17:37:22 -0800

A couple small barding cleanups
I was reading some Palentonga code to try to be less bad as them and
came across two things that looked like reasonable cleanups.

* Comment in acquire.cc suggests only nagas have increased chance to
  acquire a barding but I think it applies to palentongas too since it's
based off you.wear_barding().
* wears_barding() checks the SPF_SMALL_TORSO flag instead of SPF_BARDING
which works because they both apply to the same species but I assume is
just coincidental.

Tested out trying to wear bardings and acquire a bunch on
nagas/palentongas and humans as a control and I don't think I broke anything.

--------------------------------------------------------------------------------
880e0f58e3 | Aliscans | 2021-11-30 17:34:00 -0800

Add "flight" to the stash search prefix for armour "of flying".
Searching for "fly" returned any equipment which gives flight, but not potions, 
and searching for "flight" returned potions and artefacts, but not boots of 
flying (as "find" searches artefact descriptions, but not ego item ones).

This change means that a search for "flight" finds everything.

--------------------------------------------------------------------------------
d52952e488 | Martin Kennedy | 2021-11-30 17:29:38 -0800

fix: typo: Correct a typo in the description of the Book of Pain

--------------------------------------------------------------------------------
2dcde036d2 | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Make Swamp a bit more magical
Give out guaranteed wands to swamp-exclusive Eleionomae and Fenstrider
Witches - on average, about 5 wands per Swamp, about 10% of the total
generated over the course of a game. This is intended to be something
of a counterpart to the ammo generation in Shoals, and to complement
the earlier reduction of wand charge generation.

We can increase these numbers farther if need be.

--------------------------------------------------------------------------------
cca59f9bd0 | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Update a hacky comment

--------------------------------------------------------------------------------
34a2937e56 | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Reduce mid/late-game wand charges
Wands can be a fun and exciting tactical tool. Deciding how much to
invest in Evocations to power them up is a cool strategic choice, and
limited charges make for tough usage decisions. In the late game,
though, most characters will have more wand charges than they know
what to do with. This feels bad (picking up essentially valueless wand
charges, since you'll never use them up), and makes the game less
interesting.

To compensate, starting around D:8, halve charge generation for most
wands (excepting the already-scarce /digging). Following the earlier
reduction in throwing ammo generation, this should hopefully keep
wand charge limits more relevant into the late-game.

--------------------------------------------------------------------------------
47ffb9280c | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Erase DROPPER_MID_KEY on pickup
So that if you poly a monster (causing it to drop its weapon), the
monster picks it up, and you then disarm that monster, they won't
pick it up again.

--------------------------------------------------------------------------------
f2ff745afe | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Simplify monster pickup logic
Now that monsters don't normally pick up seen items, most of this
was irrelevant. (And it broke monsters picking up items when poly'd.)

--------------------------------------------------------------------------------
94437a2481 | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Revert "Don't let monsters pick up seen items they've dropped"
Broke monsters picking up items after poly. No longer needed after
bc3f381ebcfc7bc390c3495e054d1fb84b63bb7e.

This reverts commit 2d6b87359491cf4d84fe175b5a7c57c56e3f85ff.

--------------------------------------------------------------------------------
2ccdaddb72 | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Limit explore shafts to 1/branch/game
Being shafted is a fantastic experience - it can be hard to survive,
but can create truly deep, memorable tactical challenges. However, its
charm wears on repeated exposure. Let's limit players to one shafting
per branch per game.

--------------------------------------------------------------------------------
a7c9fdd7d1 | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Allow shafting the player on stairs
Vaguely buggy not to.

--------------------------------------------------------------------------------
86c161e70f | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Retheme explore traps
Exploration effects are themed as 'traps', but work quite differently from
the features. Rather than existing in fixed locations that the player can
stumble into, explore 'traps' have a chance of triggering whenever new terrain
is revealed. This commonly occurs when the player goes down stairs, or even
without any action from the player at all (when a monster opens a door). Players
are frequently (and understandably) confused by this - how did they 'stumble 
into
a teleportation trap' without going anywhere?

Instead, attribute these events to an unspecified 'malevolent force', 
spontaneously
causing bad things to happen to the player. This is also intended to offer 
potential
for expansion, allowing new and exciting bad things to happen to the player. 
(What
if the player could be shafted from Depths straight to Hell?)

--------------------------------------------------------------------------------
7bd870e236 | Nicholas Feinberg | 2021-11-30 13:23:02 -0800

Add wizmode explore trap command

--------------------------------------------------------------------------------
12e872d363 | advil | 2021-11-30 10:35:46 -0500

docs: edits to attributes section of manual
Mostly, better paragraph breaks.

--------------------------------------------------------------------------------
ab84650245 | advil | 2021-11-30 10:07:15 -0500

refactor: wrap Dg species gain in a mutation
This is much cleaner than species checks, and lets the mutation menu
describe the exact statgain behavior.

--------------------------------------------------------------------------------
42eb19b844 | Nicholas Feinberg | 2021-11-29 21:45:58 -0800

Remove get_stat_gain_multiplier (ebering)
Rendered unhelpful by 03ef38a5c2cf. A bolder soul than I can add a
MUT_BIG_STATS for demigods, if they so desire.

--------------------------------------------------------------------------------
03ef38a5c2 | Nicholas Feinberg | 2021-11-29 21:40:07 -0800

Give 2 points per attribute choice
The attribute choices at XL 3, 6, 9 and so on accumulate into interesting
decisions. Being able to shift your character toward a given stat by a total
of 9 points over the course of a character can make a real impact. However,
each individual choice is almost meaningless - 1 point in any attribute has
approximately no impact.

To make players' choices meatier and more impactful, shift the choice to
only occur every 6th level (XL 3, 9, 15, 21, and 27), and to give 2 points
per level-up. This is a minor player buff (attributes are recieved earlier,
and 1 more point is receieved total), but we'll nerf em in some other way
sooner or later. Hopefully this won't be too confusing.

Demigods are unaffected.

--------------------------------------------------------------------------------
f78dbcb89b | Nicholas Feinberg | 2021-11-29 21:25:10 -0800

Nerf merfolk impalers/javelineers
Javelineers are the deadliest enemy in Shoals, and it's a bit odd that
they are. A common nice dynamic in Crawl is that the closer you get to
an enemy, the more dangerous they are (so closing in to melee is a risk).
Occasionally, we toss in a curveball and have enemies that are neutered
in melee, eg centaurs. But javelineers are just consistently deadly at
all ranges. That's not awful, but it seems like in melee, other enemies
should be nastier.

So, drop javelineer damage by 5 (from 27 [with javelin] to 22), and remove
2 EV (14 -> 12) and 5 avg HP (78 -> 73).

Also pull back on impalers slightly, as a belated response to melee enemy
buffs from weapon delay changes. (Damage with trident down from 34 to 31.)

This might make Shoals a bit closer to Snake and Swamp in overall difficulty
(varying with character, of course), which seems good.

--------------------------------------------------------------------------------
0ea205dc43 | Nicholas Feinberg | 2021-11-29 21:25:07 -0800

Initialize a variable

--------------------------------------------------------------------------------
2ad3dba794 | Kate | 2021-11-30 03:09:06 +0000

Adjust summon spell targeters
Summons can be placed on the other side of grates/statues, so update their
targeters to reflect this.

--------------------------------------------------------------------------------
04878082bc | Kate | 2021-11-30 03:04:16 +0000

Don't destroy foxfires/ball lightnings when blocked by grates
They could be summoned on the other side of a grate (as with all summons),
but would then immediately die - let them keep existing as long as they're
not fully out of LOS or on the other side of a wall.

--------------------------------------------------------------------------------
ced782017d | Kate | 2021-11-30 02:26:33 +0000

Fix Wall of Briars leaking invisible monster information
This would be very difficult to actually come across in practice, but sets
the ability up better to use a targeter when that gets implemented in the
(hopefully near) future.

--------------------------------------------------------------------------------
9f272a1a52 | Kate | 2021-11-30 01:36:17 +0000

Remove an obsolete comment

--------------------------------------------------------------------------------
1e39a6ef00 | Kate | 2021-11-30 01:36:16 +0000

Don't allow activating Yred animate dead with no targets

--------------------------------------------------------------------------------
ee6e0bcda6 | Kate | 2021-11-29 22:33:09 +0000

Remove an unused parameter

--------------------------------------------------------------------------------
2f15ad600a | Kate | 2021-11-29 21:04:17 +0000

Display potion/scroll rarity in item descriptions
So that it's easier for newer players to learn their relative generation
weights and make better reasoning about identification.

--------------------------------------------------------------------------------
216afd96f5 | Kate | 2021-11-29 21:04:17 +0000

Refactor and standardise potion/scroll generation weights
To allow unspoiling some information about consumable generation
(particularly in cases where it's relevant to identification), give potions
and scrolls a more discrete set of weights.

--------------------------------------------------------------------------------
3c35fc0fc0 | Edgar A. Bering IV | 2021-11-29 17:35:52 +0200

text: further tweak a charge description

--------------------------------------------------------------------------------
72e5a758c0 | Edgar A. Bering IV | 2021-11-29 16:58:12 +0200

text: descriptions for some status lights

--------------------------------------------------------------------------------
17860c6496 | Edgar A. Bering IV | 2021-11-29 12:36:30 +0200

fix: decapitalize

--------------------------------------------------------------------------------
12477afec8 | Nicholas Feinberg | 2021-11-28 21:56:15 -0800

Scale up some tiles (Sastreii)
New 'mundane' dragon armour tiles.

--------------------------------------------------------------------------------
140ffa10cf | Edgar A. Bering IV | 2021-11-28 20:28:55 +0200

fix: clarify spell danger prompt (lukem1234)
Closes #2230

--------------------------------------------------------------------------------
4f8b84809c | Edgar A. Bering IV | 2021-11-28 20:22:59 +0200

fix: only merge options different from default (ardl)
The feature in 843f935 was implemented by adding merge functionality to
the game_option class. Unfortuantely, this led to defaults being loaded
from init files (instead of included in the binary) being clobbered as
they were not set in the temprorary perf-loaded options.

This changes the implementation of merge to only merge entries that were
loaded in the source game_options object.

The buggy behavior was most notable in how it interacted with the
auto_exclude default.

--------------------------------------------------------------------------------
61a4acea3e | Edgar A. Bering IV | 2021-11-28 20:22:23 +0200

fix: remove a duplicate entry

--------------------------------------------------------------------------------
bc3f381ebc | Nicholas Feinberg | 2021-11-27 10:51:57 -0800

Remove DROPPER_MID from most monster-dropped items
I'm moderately sure this wasn't used for anything.

--------------------------------------------------------------------------------
6175104b25 | robertxgray | 2021-11-27 18:16:04 +0100

Autoconfigure android-project/local.properties

--------------------------------------------------------------------------------
71c9695731 | robertxgray | 2021-11-27 18:15:49 +0100

Improved touch screen and small layout experience - Tooltips disabled by 
default on Android - Keep tabs open when an element is selected - Keep tabs 
open on resize - Adjust tabs to cover only the map area - Increase transparency 
in inventory and monster tabs - Stop the inventory tab from showing when 
another tab is hidden

--------------------------------------------------------------------------------
b588e42d88 | Nicholas Feinberg | 2021-11-27 08:49:40 -0800

Remove an antique ID call
Monster weapons are now just all auto-ID'd on sight.

--------------------------------------------------------------------------------
c5f9a05f81 | Nicholas Feinberg | 2021-11-27 08:49:40 -0800

Flatten monster_drop_things
This function is ridiculous.

--------------------------------------------------------------------------------
6df31dea4b | Kate | 2021-11-27 16:24:48 +0000

Fix MP regen rate not being recalculated on amulet removal
And let the amulet remain attuned while melded.

--------------------------------------------------------------------------------
3387f7d204 | Kate | 2021-11-27 16:24:48 +0000

Fix some amulet equip/unequip handling
Removes some obsolete checks for activating amulets of reflection/acrobat,
and makes them also display messaging consistently when unmelding.

--------------------------------------------------------------------------------
dde70e7af4 | Edgar A. Bering IV | 2021-11-27 10:20:45 +0200

feat: nerf flame wave damage
Flame Wave did calcdice_calculator<3, 10, 2, 5> damage for each blast
(at a total cost of 6mp over 3 turns)
Compare to some other level 4 damage spells:

- Hailstorm calcdice_calculator<3, 10, 1, 2>
  (more awkward targeting, costs 12 mp to fire for 3 turns)

- Mystic Blast calcdice_calculator<2, 6, 1, 3>
  (also has knockback (for possible knockback damage), easier targeting;
   still 12 mp to fire for 3 turns)

- Sticky Flame calcdice_calculator<2, 3, 1, 12>
  (also sets them on fire for a time, doing 2d4 per turn extra damage;
  initial sticky flame damage plus 2 turns of fire damage is the
  calcdice plus 4d4 for 4mp over 3 turns)

At equal training, flame wave can do as much as half the damage of 3
casts of starburst, for 1/3rd the mp. There's targeting awkwardness and
the hazard of being adjacent but this damage is just really really good.
With 3 dice it is also consistent in its damage output.

So let's nerf it to calcdice_calculator<2, 8, 1, 5>.

--------------------------------------------------------------------------------
843f935a50 | advil | 2021-11-26 16:06:07 -0500

feat: save `default_manual_training` in `.prf` files
This is more of a proof of concept commit than a complete implementation
of this idea that can be generalized immediately to tons of options, but
it seems to work well enough and provides a path towards generalized
option serialization in .prf files.

I chose `default_manual_training` because it already has a UI element
that players might reasonably expect to be saved, it involves no custom
parsing (just a simple `BoolGameOption`), and because if something goes
wrong with the .prf files for it, it doesn't seem too disastrous
(because the it's ignored after game start). The .prf files are already
used to store newgame options, and are parsed using game_options reading
code already, so this change was a matter of figuring out how to
coherently write non-newgame options, and pull them in to the Options
static in a sensible way.

Some notes:

* If a player has an option explicitly set in their rc file, it will
  override the .prf version. This part is written in a general way so it
  will extend to new serialized options.
* The general code only works for options implemented using a GameOption
  object. Getting it to work for others will need a more effort,
  including custom handling in the `merge` function and changes to the
  tracking of what was loaded from an rc. Possibly more options should be
  converted to `GameOption`s rather than more custom handling being added.
* Serialization code is extremely not general, this would be easy +
  tedious to generalize so I will leave that for when more options are
  added.
* A bunch of boilerplate code is moved to game-options.h. This stuff
  definitely has the feel of something that ought to be templated, but
  this doesn't work with the polymorphism needed for GameOption in any
  way that I have yet found. This commit also adds a generic function to
  set one GameOption object from another, with a somewhat ugly
  implementation. (Also should be templated, but I haven't come up with
  a way yet.)
* Most other options will need UI added to do something like this.
* It's possible that we should add a game menu command that lets you
  reset the .prf file before adding too much more to this.

--------------------------------------------------------------------------------
629283d8f3 | advil | 2021-11-26 16:05:36 -0500

feat: api to track GameOptions modified by rc settings
This provides a way of checking whether a GameOption subclass was
explicitly modified by a player's rc. The eventual point of this to
ensure that explicit settings can override an autosaved preference.

Obviously, because this is tied to use of GameOption, it does not work
on custom-parsed options handled in read_option_line, nor on options
that are stored on the lua side. It also doesn't track any changes to
member variables of game_options made directly.

--------------------------------------------------------------------------------
a3687e240c | Nicholas Feinberg | 2021-11-26 08:46:49 -0800

Fix webtiles AC light for Ignis (Lici)
I dislike this code a lot :)

--------------------------------------------------------------------------------
eabae20b52 | advil | 2021-11-26 09:18:48 -0500

refactor: unify some seed display code
Centralize this in one function with a single approach to checking for
player death.

--------------------------------------------------------------------------------
eeb059e727 | advil | 2021-11-26 09:18:48 -0500

refactor: lightly generalize newgame prefs code
This is just trying to make this options serialization code better, in
preparation for later more involved changes.

* turn newgame_def-specific code (which is, currently, all of this) into
  a method on newgame_def
* write prefs file on any save
* but don't rewrite unless there are changes

--------------------------------------------------------------------------------
1d79628fcd | advil | 2021-11-26 09:18:48 -0500

fix: remove an old #ifdef for seed preferences
This originates from when online games didn't support seeded play. Now
most servers do in some form and several servers enable the seeded play
popup. Removing this #ifdef lets the seed field in this popup be
prepopulated with the seed of a recent ended game in online play.

--------------------------------------------------------------------------------
0fd3a81354 | advil | 2021-11-26 09:18:47 -0500

refactor: remove an unused build conditional
As far as I can tell this #define and its conditionals have never been
used by anyone. The only use case anyone has come up with is shared
accounts (geekosaur), but if this is an actual use case that someone
wants I'd rather implement it in a different way (e.g. CLO or just a
regular rc option).

--------------------------------------------------------------------------------
d5e1996cdb | Nicholas Feinberg | 2021-11-25 08:28:35 -0800

Totally blork our tiles (Sastreii)

--------------------------------------------------------------------------------
f5b72a5aab | Nicholas Feinberg | 2021-11-25 08:09:51 -0800

Fix Mindburst damage
I believe this was broken since monster /disintegration use was first
added in 65c148fa03d (2007).

--------------------------------------------------------------------------------
a419b9d3f4 | Kate | 2021-11-25 14:09:07 +0000

Adjust gloves of infusion messaging
To make it clear that normal gloves of infusion do work for Djinn.

--------------------------------------------------------------------------------
334d32066b | Kate | 2021-11-25 13:58:22 +0000

Add some unrand equip/unequip messages

--------------------------------------------------------------------------------
4693fef7fb | Kate | 2021-11-25 13:57:22 +0000

Fix Djinn instakilling themselves with traumaturge's gloves
Luckily they would also crash at the same time as killing themselves, but
either way seems less than ideal - prevent the unrand from working for
Djinn instead, and adjust pay_mp to consistently use an ASSERT that would
normally be used when paying HP for things. Also fixes Djinn crashing when
using normal infusion gloves at 2 HP or less.

--------------------------------------------------------------------------------
e90d3d521c | Kate | 2021-11-25 12:52:57 +0000

Fix a typo

--------------------------------------------------------------------------------
0b5b508569 | Nicholas Feinberg | 2021-11-24 22:32:20 -0800

Let Nikola hurl
Reverts 87e75285439, since it seems very goofy and not particularly
pointful.

--------------------------------------------------------------------------------
a42776352a | Nicholas Feinberg | 2021-11-24 22:32:07 -0800

Rework archery ego into hurling
The archery gloves ego has always been an odd outlier. Giving +slaying
to 'ranged combat' (bows, slings, xbows, and throwing) is simultaneously
broad and narrow. Why do only those types of combat get an ego to bolster
them? Why aren't there gloves of slashing for long and short blades, or
gloves of magma for fire and earth magic?

We may go that way some day, but for now, let's refocus. Gloves of hurling
(replacing gloves of archery) give a bonus exclusively to throwing. Recent
reductions to throwing item generation have left throwing weapons in a
distinctive position, as a strong but limited-supply killing method. Giving
a bonus to that *specifically* could potentially change players' tactics,
encouraging them to try hurling a bit more. And that's fun!

--------------------------------------------------------------------------------
d9240322ae | Nicholas Feinberg | 2021-11-24 22:28:53 -0800

New unrand: traumaturge's gloves
The traumaturge's gloves spend your *entire* MP every time you hit any
enemy in melee, giving a proportional bonus to damage. To make them less
obnoxious to use, they get RegenMP, and to make them less interesting
for characters who don't actually want to hit stuff, they have Int-4.

This is in the same vein as rampaging boots and the seven-league boots -
they're super-infusion gloves. In practice, I found them to be very funny.
Possibly they encourage kiting too much and will need to be cut, but I do
want people to get a chance to try them out first.

--------------------------------------------------------------------------------
f4b206033c | Nicholas Feinberg | 2021-11-24 22:28:44 -0800

New gloves ego: "infusion"
A riff on the old Charms spell of the same name, gloves of Infusion
give +0,+4 slaying (that is, +0-4 pre-AC damage per hit) on melee
attacks, in exchange for 2 MP spent per hit. This will be appealing
for many characters, but will you regret being stuck at 0 MP in a
tight spot? Maybe!

Numbers are very preliminary. In testing, my main concern was whether
it'd cause too much resting, but it didn't seem to be worse than
'caster' characters already have it. Excited to hear feedback from
others.

--------------------------------------------------------------------------------
cd63401287 | Nicholas Feinberg | 2021-11-24 17:21:57 -0800

Shift vampire knight weapons left

--------------------------------------------------------------------------------
c41cc7542a | Nicholas Feinberg | 2021-11-24 16:40:38 -0800

Add some new tiles that really suck (Sastreii)
New vampire, vampire knight, and vampire mage tiles.

--------------------------------------------------------------------------------
12fdbb3a91 | Nicholas Feinberg | 2021-11-24 16:33:15 -0800

Buff amulets of magic regeneration
The amulet of magic regeneration is generally considered fairly weak.
0.25 MP/turn is not nothing, but it compares pretty poorly to other
amulet effects, even for characters that should like it.

Adjust it up to 0.4 MP/turn. This is exactly half of the 0.8 HP/turn
that regen effects give, which is nice aesthetically.

--------------------------------------------------------------------------------
dd814f33f1 | Nicholas Feinberg | 2021-11-24 16:27:46 -0800

Re-adjust Regen properties
In c8f691b2cc7, effects that granted Regen (the amulet, artefacts, etc)
went from giving 0.4 HP per turn to 1.0 HP per turn, a 2.5x multiplier.
Having played with the new, stronger version for a few months, it's clear
that high levels of regen are stronger than I anticipated.

As such, this commit reduces regen somewhat back down to 0.8 HP per turn.
This is still double what it was before c8f691b2cc7, so I expect it should
still be an exciting and powerful property, but it should take a little more
work to stack regen to such ludicrous levels that enemies have difficulty
harming the player.

The Robe of Vines goes from 3 HP/turn to 3.2 HP/turn, and loses a point of
enchantment in exchange. Most other sources of regen follow the change,
excepting Trog's Hand and Powered by Death, which go back to their old flat
values (no longer pegged to the regen pip).

--------------------------------------------------------------------------------
caa4c314a1 | Nicholas Feinberg | 2021-11-24 16:23:04 -0800

New Ignis ability: Fiery Armour
Replacing Sea of Fire for the 'cheap ability' slot, Fiery Armour is
a proactive defensive ability, complementing Foxfire Swarm (a reactive
offensive ability) and Rising Flame (a reactive escape). When used,
Fiery Armour gives +7 AC and 2d4 fire damage to melee attackers. It
lasts for somewhere around 120 turns, to help it feel better compared
to Foxfire Swarm - the latter straight up wins a fight, so it's nice
if Fiery Armour can help with a few fights. (It also provides an
incentive not to dawdle, which is fun!)

There's a special message when you use it with Ozo's Armour, Icemail,
or Ice Form, as a bit of a lampshade.

--------------------------------------------------------------------------------
68fc8d02d3 | Nicholas Feinberg | 2021-11-24 16:08:43 -0800

Remove Sea of Fire
Ignis's Sea of Fire was a very visually cool effect, but it had no clear
purpose. It wasn't clear when players should use it - the most common
experience was for players to use it once, get trapped by it, feel extreme
regret, and never use it again.

Let's replace it with something with a greater clarity of purpose.

--------------------------------------------------------------------------------
2f522a9c0a | robertxgray | 2021-11-23 23:15:57 +0100

New virtual keyboard layout - Less redundant and closer to the standard US 
layout. - Function keys added, so they can be used for macros. - New colors to 
highlight important keys. - Keys used for movement have been labeled with 
arrows.

--------------------------------------------------------------------------------
796cbd3a86 | Edgar A. Bering IV | 2021-11-23 23:44:01 +0200

text: two new Donald speech lines

--------------------------------------------------------------------------------
9e5967653d | Edgar A. Bering IV | 2021-11-23 23:32:31 +0200

text: add a slimify quote (Ge0ff, 12661)

--------------------------------------------------------------------------------
59e3c9d8a8 | Kate | 2021-11-23 21:16:12 +0000

Don't crash on alerting dead monsters to acid damage (#2240)
Closes #2240.

--------------------------------------------------------------------------------
0406aca7d3 | Nicholas Feinberg | 2021-11-22 17:05:57 -0800

Update mut math

--------------------------------------------------------------------------------
2a66bcaeff | Kate | 2021-11-23 00:06:24 +0000

Add a Jiyva ability: Oozemancy (acid ramparts)
With Slimify as the only active ability, Jiyva could use something new to
spend piety on, especially since the god is intended to have rapid piety
gain. Oozemancy is granted at 3*, has a relatively high piety cost, and
temporarily turns nearby walls (within radius 4) into slime-covered walls.
It has no movement restriction like Frozen Ramparts, but slime walls don't
deal damage outside line of sight.

--------------------------------------------------------------------------------
5b0ebec07e | Kate | 2021-11-23 00:06:24 +0000

Increase Slimify's MP and piety costs
Jiyva has rapid piety gain, and Slimify is mostly an irresistible instant
kill, so it should be pricy.

--------------------------------------------------------------------------------
738adcbc29 | Kate | 2021-11-23 00:06:24 +0000

Move some Jiyva passives earlier
Move rCorr from 3* to 2* (since it's mainly flavour, and to free up the 3*
slot for a new active ability), and move the jelly-on-hit effect from 6* to
5* (since 6* is generally reserved for one-off capstone effects or gifts.
It was also already displayed as available at 5* despite not yet being in
effect).

--------------------------------------------------------------------------------
12af580f8b | Kate | 2021-11-23 00:06:20 +0000

Change Jiyva's piety gain to be from exploration
Gaining piety from sacrificing items was flavourful but didn't function
well in practice, since it encouraged going back to old floors upon
converting to Jiyva to sacrifice junk items and gain piety quickly. Jellies
eating items becomes strictly a conduct to encourage moving forward
quickly, and Jiyva's piety gain is changed to be from normal exploration,
but at a much faster rate than other gods to compensate for the fact that
the god is generally picked up late.

Since jellies eating items is now a conduct rather than a method of piety
gain, also remove the ability to call a jelly, and don't immediately place a
jelly on conversion.

--------------------------------------------------------------------------------
60ee69b403 | Kate | 2021-11-22 21:08:41 +0000

Make Jiyva's Cure Bad Mutation a passive part of mutation gifts
Being able to remove mutations at will doesn't fit with the god's theme,
overlaps with Zin's specialty, and isn't necessary with the god no longer
gifting bad mutations. Instead increase the chances of Jiyva removing bad
mutations via mutation gifts, to help dealing with mutations from external
sources (since potions will be less effective with big mutation sets).

--------------------------------------------------------------------------------
c8825b9f11 | Kate | 2021-11-22 21:08:41 +0000

Don't let Jiyva gift bad mutations
Since having a bad mutation maxed out by a god gift would be particularly
unpleasant (or act as a large piety tax requiring repeated use of the
ability to remove it again), just grant good/slime mutations.

--------------------------------------------------------------------------------
f2b78a14d2 | Kate | 2021-11-22 21:08:25 +0000

Update some options_guide entries

--------------------------------------------------------------------------------
cca88958be | advil | 2021-11-22 09:31:19 -0500

fix: don't allow spell memorisation in tiles map view
Another extension of 904a573f8967; spell memorisation isn't designed to
happen in this UI mode and so while it *seems* to work, I suspect there
could be unintended consequences. This should be everything that takes
time disabled. This commit also adds an i_feel_safe check for whether
memorise buttons are enabled. (I believe before it would have prompted,
but just outright disabling them gives clearer UI I think.)

--------------------------------------------------------------------------------
2ecf54ff0b | advil | 2021-11-22 09:19:49 -0500

fix: disable tiles item buttons in view map mode
This extends 904a573f8967; don't allow things to happen in map mode that
aren't designed for it and may have buggy behavior. This commit isn't
very subtle, just check map mode directly.

Resolves #2236

--------------------------------------------------------------------------------
f7baa44570 | advil | 2021-11-22 08:50:51 -0500

fix: add a missing negation
Missing since 70de9b6695476e, but I guess no one uses the "cast a spell"
button itself. 904a573f89 made spell-specific buttons enabled or
disabled depending on whether casting is allowed via this check,
revealing the bug.

Resolves #2237

--------------------------------------------------------------------------------
6e5f11bd55 | advil | 2021-11-21 23:12:20 -0500

fix: improve the ASSERT from 4f857bc58ec395c
Don't crash during tests or scripts.

--------------------------------------------------------------------------------
805c5ecd05 | Nicholas Feinberg | 2021-11-21 19:35:07 -0800

Fix bribe branch costs
Broken in 2eadbcdadce4.

--------------------------------------------------------------------------------
5e322aebe8 | Kate | 2021-11-21 21:26:22 +0000

Remove a reference to Zin divine sustenance
When save compat is broken, at least.

--------------------------------------------------------------------------------
4f857bc58e | advil | 2021-11-21 15:38:21 -0500

fix: don't fire tracers on LRD validity check
This is a somewhat nasty bug that triggers when returning to the main
menu after playing; because there is still a map kicking around, when
trying to check if LRD is valid, the LRD setup code fires off some
tracers in that map, leading to bad memory access. I'm 90% sure this is
without manually inserting the ASSERT here. (But llvm is usually
"better" about not crashing on bad memory accesses.) My approach here
was pretty brute force: I didn't see how to make the LRD setup code safe
so I just force-validated it. Even on the clean startup case, it's still
interacting with suspect memory regions, even if it never fires tracers.

Possibly env stuff ought to be cleared up in _reset_game() so that the
global state during startup steps is more predictable.  In general, I
wonder about the rest of the monster spell setup code triggered in this
init step...

Resolves #2168 (probably)

--------------------------------------------------------------------------------
61c88513d0 | advil | 2021-11-21 14:32:11 -0500

fix: set ui_root.needs_paint after a resize
This resolves #2218. The proximate issue seems to have been that
resizing with ctrl-command-f both exits the menu and triggers a resize
event, which is handled immediately when pump_events is next called
during; this is immediately on displaying the game menu. Something about
being the first event was messing up the repaint. I'm not sure what.
Beyond that, I think there is still something weird going in the ui.cc
code for this case: in my testing on a large monitor I see a brief flash
of a very strangely resized window before the new size takes hold.
Unfortunately I don't understand ui.cc well enough to have any sense of
what might be doing this.

--------------------------------------------------------------------------------
88c7259194 | advil | 2021-11-21 13:36:48 -0500

feat: turn the map view button into a toggle
Right now this command uses the same tile as CMD_DISPLAY_MAP; possibly
someone could add an x to it or something to differentiate them.

--------------------------------------------------------------------------------
904a573f89 | advil | 2021-11-21 13:36:48 -0500

fix: disable most tiles buttons in map view
All sorts of stuff was semi-clickable in map view, e.g. you could cast
spells or use abilities via local tiles buttons. This commit tries to be
more consistent about it: anything that works in KMC_LEVELMAP can work,
and anything that doesn't, can't. It's possible that this disables some
useful stuff that can work (even if it isn't designed to) that tiles
players will be used to? We'll see if there are complaints...

--------------------------------------------------------------------------------
820883e265 | advil | 2021-11-21 13:36:27 -0500

fix: handle button commands in map view (local tiles)
There were two interrelated bugs here: command handling was simply
unimplemented (a key was returned by tiles code, but the widgetified
version of the map UI ignored it), and any clicking (including on
buttons) was interpreted as dungeon clicking, moving the cursor to a
clamped map position. I guess this probably just fell through the cracks
when the map view was widgetified.

At least because of the new API, we can now pass the command directly to
the map view, rather than needing to pass a key. I've implemented this
with an unappealing dynamic_cast, someone may want to do something nicer
here.

Resolves #2087

--------------------------------------------------------------------------------
b27f3f0c18 | advil | 2021-11-21 10:12:49 -0500

feat: refactor debug build autowiz with an options default
Previously, when working with a debug build, to get a truly non-wizard
character you had to rebuild entirely (either switch to a different
build, or comment out the wizard mode setting in startup.cc). Suppress
wizmode is still not perfect, and it is useful to be able to start a
regular character from time to time.

This commit reimplements the auto-wiz feature so that instead of a debug
build simply forcing wizmode directly on character creation, a debug
build defaults the `wiz_mode` option to `yes` instead of `no`. (N.b.
this doesn't override the logic in a dgamelaunch build.) This lets a
debug build respect `wiz_mode=no` (or `never`) in an rc file.

--------------------------------------------------------------------------------
b23a865559 | advil | 2021-11-21 10:03:29 -0500

fix: trigger tiles layout on chaging wizmode
Now that wizmode activates some abilities, this needs to relayout each
time status of wizard or suppress_wizard changes.

--------------------------------------------------------------------------------
bdc701c526 | advil | 2021-11-21 09:56:15 -0500

fix: generalize some relayout code from rings
In the past, it seems that evokable abilities were mostly confined to
rings, and so the code that checked for ability changes was only done
when putting on a ring. This commit generalizes the (extremely brute
force) check so that it happens whenever any equip is added or removed
-- so this should handle scarfs of invis, unrands that have abilities,
etc.

Resolves #1754

--------------------------------------------------------------------------------
ab553e919e | advil | 2021-11-21 08:14:08 -0500

fix: bring morgue_dir more in line with save_dir
For some reason morgue_dir is set and initialized in a slightly
different way, so the changes in 381dff06d7c didn't affect morgue_dir
quite right. This unconditionally resets it to its default value if
`reset_paths` is called. For unclear reasons, this one will get
overridden by SysEnv in fixup_options, and I have left this fairly
ancient behavior intact.

Further resolves #2192

--------------------------------------------------------------------------------
c8d7bad45d | Kate | 2021-11-21 00:16:52 +0000

Add messaging for gaining Jiyva's bonus regen
Unfortunately can't be handled via the normal gain/loss messaging since
it also has special handling for display on the ^ screen.

--------------------------------------------------------------------------------
7dab3e9f5c | Kate | 2021-11-21 00:16:52 +0000

Remove a reference to Jiyva stat shuffling

--------------------------------------------------------------------------------
ae16bb6c82 | advil | 2021-11-20 14:42:41 -0500

feat: reveal init.txt in finder on mac
This is a super quick, OS-specific, implementation of this feature, in
part just because I realized that on mac it is a 1-liner. It is
triggered from the game menu.

As noted in the comments:

* someone should implement this at least on windows, maybe linux if
  that's feasible. Probably won't be me though.
* might be handy from the main menu somehow, though not in that menu
  directly (it has no more space). So I'm not sure what the UI is
  exactly.

--------------------------------------------------------------------------------
8add94bf39 | Kate | 2021-11-20 17:46:13 +0000

Give living spells a summon cap of 6
Mainly to prevent them from filling up LOS in cases where they're sticking
around for a few turns without being able to fire for whatever reason.

--------------------------------------------------------------------------------
29138dbd66 | Kate | 2021-11-20 17:46:04 +0000

Allow living iceblast spells to blow themselves up again
With ugly special-casing in beam.cc rather than by marking them as
non-threatening monsters.

--------------------------------------------------------------------------------
c155b14c34 | Kate | 2021-11-20 17:02:34 +0000

Don't mark living spells as non-threatening
Since they are definitely dangerous, and marking them as non-threats
causes targeting issues with some spells.

--------------------------------------------------------------------------------
381dff06d7 | advil | 2021-11-20 11:32:37 -0500

fix: resequence rc directory setting
Previously, when setting `crawl_dir` in an rc, the following sequence of
events would happen:

1. crawl_dir gets set to a default value (e.g. a ~/Library directory on
   mac.)
2. reset_options initializes save_dir based on this crawl_dir.
3. crawl_dir changes (stored in static SysEnv)
4. a. maps are loaded, des cache is built in the save_dir set in 2
   b. game menu is also initialized from this save_dir
5. player starts game, triggering another reset_options. Now the
   save_dir is set based on the crawl_dir in 3, instead of 1. This is
   what we want, but:
6. No des cache in the current save_dir, so the game crashes any time
   levelgen is triggered

The main change in this commit is to do the path resets from step 2 any
time `crawl_dir` is set, so that the save_dir can't get out of sync like
this. There's a bunch of refactoring that I did while working on this,
some of which didn't end up being necessary but I kept because it seemed
cleaner. This commit also explicitly rechecks for a data directory if
crawl_dir changes (since the data directory could be under crawl_dir,
though it's not in most cases I think). The overall directory handling
code is pretty insane but it's covering so many special cases across
multiple platforms that it's a bit hard to refactor safely.

This commit also adjusts the documentation. Partly this is to indicate
this change (since setting save_dir before crawl_dir gets overridden),
but partly this is just to make it more accurate. Unfortunately I
couldn't really even figure out how the defaults are interpreted outside
of mac, so more accurate -> more vague in this case. Someone could try
to make this more specific, especially for the defaults for `crawl_dir`
and `macro_dir` -- it would be best to explicitly list the defaults for
each of win/mac/linxu. I think based on the report in #2192 it might use
the current directory on linux for crawl_dir?

Resolves #2192.

--------------------------------------------------------------------------------
ba3a78600c | Kate | 2021-11-20 15:33:36 +0000

Shorten some mutation descriptions
So that they still fit on one line with the new mutation menu interface.

--------------------------------------------------------------------------------
aee5879d26 | Kate | 2021-11-20 14:58:06 +0000

Fix Manifold Assault targeter leaking invisible monster locations

--------------------------------------------------------------------------------
3304299650 | Kate | 2021-11-20 14:58:06 +0000

Print wounds when monsters collide with each other
Usually via Gell's Gravitas, so that it's easier to see what the spell's
effects are.

--------------------------------------------------------------------------------
241ead5b78 | Edgar A. Bering IV | 2021-11-20 13:39:25 +0200

fix: destaticify mangrove colour
We really don't want a global colour for the mangrove feature picked by
the values _etc_mangrove is called with the first time it gets invoked.

--------------------------------------------------------------------------------
80cf8599ee | Nicholas Feinberg | 2021-11-19 20:38:51 -0800

Fix amnesia/negative levels (CarefulOdds)
When amnesiaing a spell with negative levels remaining (e.g. after
breaking an Ashenzari Spellcasting curse), print the correct number
of spell levels you'll have left afterward.

--------------------------------------------------------------------------------
5db232d3bc | Nicholas Feinberg | 2021-11-19 18:40:05 -0800

Give Jiyva passive HP and MP regen
Following on from 3b57ee21721, give Jiyva passive HP and MP regen.
This is intended to synergize with the item-eating conduct to
encourage the player to rush through levels before all the good stuff
is eaten (using fast regen to minimize resting time), while also being
an overall buff to the god's strength. (As a god that's somewhat harder
to get than normal temple gods, Jiyva should be strong once reached,
especially earlier.)

This currently gives one pip of HP and MP regen (1 hp/turn, 0.25 mp/turn)
at 1* piety, scaling to double that at 6* piety. Numbers can be adjusted
as appropriate.

--------------------------------------------------------------------------------
facf16e111 | Nicholas Feinberg | 2021-11-19 18:40:05 -0800

Make J give mutations in bursts
Jiyva has historically given very frequent mutation changes. Their
frequency made them less impactful: since they vanished so quickly,
their impact on play was generally limited.

Instead, make J give mutations at roughly 1/4th the frequency.
In each gift, all mutations have a 25% per-level chance of losing a
level. Then 4 new mutation levels are given out, proceeding through
one mutation at a time before maxing it out and choosing another.
This will let players explore the top-level effects of muts (normally
unseen) and enjoy them for a while before they fade away.

On average, going from 60 to 200 Jiyva piety caused 3-4 of these gifts.
I expect we'll want to tweak this frequency in response to playtest
feedback.

--------------------------------------------------------------------------------
53b1d5cb3f | Nicholas Feinberg | 2021-11-19 18:40:05 -0800

Remove Jiyva hp/mp from item eating
Jiyva healing from item eating was strong and flavourful, but encouraged
goofy tactics, like carrying around stacks of arrows to drop one-by-one
for healing. We can provide both strength and delicious jelly flavour by
other means, so let's.

--------------------------------------------------------------------------------
05814a4f1e | Nicholas Feinberg | 2021-11-19 18:40:05 -0800

Small cleanups
Fix a typo & remove a duplicated check.

--------------------------------------------------------------------------------
278d75afea | advil | 2021-11-19 20:20:23 -0500

fix: correctly interpret `~` in crawl_dir etc
In most cases, this was just getting used for its string value, leading
to the creation of subdirectories named `~/`, pretty amazing. For some
uses of `SysEnv.crawl_dir`, `_resolve_dir` was getting correctly called
on subdirectories, leading to probably inconsistent directory patterns,
but I'm not sure of the details. The directory handling code here is
very confusing.

--------------------------------------------------------------------------------
754df0dcc8 | advil | 2021-11-19 20:09:53 -0500

fix: correctly handle map_load_exception for temple generation
This can happen if something is wrong with the des cache, or the des
location. Without this fix it triggers uncaught exception behavior,
probably a cryptic abort trap.

--------------------------------------------------------------------------------
61ead9eb7d | Nicholas Feinberg | 2021-11-19 15:05:37 -0800

Remove minotaurs from Depths (again)

--------------------------------------------------------------------------------
8af684f10f | hellmonk | 2021-11-19 15:05:33 -0800

Improve the monsters in some overflow vaults
Overflow vaults with a uniq_altar tag can place in Depths. Some of these vaults
place very easy monsters, like goblins with spears, which are suitable for the
overflow altar range but not suitable later. This commit either adds an
alternative monster set for Depths placement or limits the range of the vault
to dungeon only, depending on which method seemed best.

Closes #2215.

--------------------------------------------------------------------------------
8cecda6153 | Nicholas Feinberg | 2021-11-15 17:35:42 -0800

Give orb guardians a glow up (Sastreii)

--------------------------------------------------------------------------------
58c29a6370 | Nicholas Feinberg | 2021-11-15 14:29:57 -0800

Fix Degeneration & Xom polymorph
These were broken in 6ee961360c27e and functioned identically to /poly.

--------------------------------------------------------------------------------
e64d6db94f | nicolae-carpathia | 2021-11-14 23:02:05 -0500

Add a selection of vaults to various places (#2172)
* Add a diverse assortment of vaults in various places



Add vaults of all kinds. Vaults for ecumenical and overflow altars,

shop vaults, floats, mini_features, mini_monsters, a serial vault,

a trove layout, a Hell entry, and vaults for Crypt, Lair, and Hell.

They're all here and ready for visitors.



Next time I should really break these up into separate pull requests.
--------------------------------------------------------------------------------
41a590f754 | Nicholas Feinberg | 2021-11-14 17:43:17 -0800

X gonna give [a new tile] to ya (Sastreii)
New orb guardian tile. We'll always remember the original, and by the
original I mean the original original one that was literally a floating
fetus.

--------------------------------------------------------------------------------
d8f344a91d | Implojin | 2021-11-15 00:30:19 +0000

fix: really end engulf upon polymorph
At present, the bug described in #1935 still occurs in trunk.
dd09596130 made an attempt to fix this, but clear_far_engulf()
only applies to non-adjacent monsters by default.

This commit forces the engulf removal upon monster polymorph,
hopefully fixing the bug.

--------------------------------------------------------------------------------
8f7a205945 | Kate | 2021-11-15 00:06:13 +0000

Move Cheibriados Bend Time to 1*
In general, gods should require some initial investment before granting
abilities, and this has been changed recently for various other gods.
Cheibriados had Bend Time granted at 0* intentionally since the god is
fairly challenging and does immediately slow the player, however it's also
not very likely to help much on initial worship, with its success rate
depending on piety and invocations skill. Instead swap it with the
poison-slowing passive (which has a decent chance of being helpful early),
and move Bend Time to 1*, at which point it's more likely to be usable.

--------------------------------------------------------------------------------
8c1bd5eb55 | Kate | 2021-11-15 00:06:13 +0000

Give Trog berserk a piety cost
Outside of historical inertia, there wasn't really any good reason for such
a strong ability to have no piety cost at all. Giving Berserk a small piety
cost won't affect the strength of the god or berserker background in a
particularly significant way, but should at least slightly slow down early
piety gain.

--------------------------------------------------------------------------------
81a577e8d6 | Kate | 2021-11-15 00:05:11 +0000

Give Dowan permanent haste on Duvessa's death
Dowan already gained the Haste spell and an immediate haste enchantment, so
this is a much less significant change than Duvessa's permanent berserk,
but upgrading the haste to permanent at least saves him from needing to
recast it.

--------------------------------------------------------------------------------
0e04eb73d5 | Kate | 2021-11-15 00:05:11 +0000

Allow Death Channel to work on demons and holies
To allow necromancy some further application in areas where it's generally
weaker, and for thematic consistency with Yredelemnul's Enslave Soul, allow
it to create spectral demons and holies, and to also work on living
creatures that don't leave a corpse.

--------------------------------------------------------------------------------
f87a654afa | Aliscans | 2021-11-15 00:01:10 +0000

Remove a redundant "your" from a message.
The item_name variable in _equip_weapon_effect() uses DESC_YOUR, so doesn't 
need "your" to be added later.

--------------------------------------------------------------------------------
80664f265d | Nikolai Lavsky | 2021-11-14 23:59:42 +0000

fix: let Beogh's Smite set ally targets
Also, tweak Smite's damage message to include attack strength
punctuation.

--------------------------------------------------------------------------------
bbce81c95b | Nicholas Feinberg | 2021-11-14 12:25:10 -0800

Make a quick tile swap (Sastreii)
New Quicksilver Elemental (not ooze!) tile.

--------------------------------------------------------------------------------
8b9cc49659 | Nicholas Feinberg | 2021-11-13 18:40:21 -0800

Enrage the Bear Spirit
As a follow-up to e692aea80228c, make the Hat of the Bear Spirit's
new *Rage also buff berserk rage. While wearing the hat, berserk
will give +100% HP (normally +50%), and the slow duration afterward
is reduced by 1/3rd. In compensation & to simplify, remove the rN.

Possibly it should only have one of these buffs, but I liked them
both, so in they both go. (Also possible some other hat props should
get tossed.)

--------------------------------------------------------------------------------
09de17f5b5 | hellmonk3 | 2021-11-12 21:43:11 -0500

dezombify saegor_arrival_fortress

--------------------------------------------------------------------------------
aed13ad2c0 | Kate | 2021-11-13 02:30:43 +0000

Slightly randomise Beogh's Smite piety cost
It was fixed at 3, but as a rule piety costs are randomised slightly to
prevent tracking exact piety values, so give it a randomised cost of 3-4
piety.

--------------------------------------------------------------------------------
ac13b58d08 | Kate | 2021-11-13 02:13:27 +0000

Remove charge count display for wands from \ menu
Since showing max charges per wand isn't useful any more.

--------------------------------------------------------------------------------
0713323be1 | Kate | 2021-11-13 02:13:27 +0000

Let Noxious Bog be generated with 1 adjacent solid tile
Instead of requiring zero adjacent solid tiles. The limitation still
prevents the spell from being used in corridors and very enclosed areas,
but allows it to be a little more effective in unevenly-shaped spaces.

--------------------------------------------------------------------------------
9a1a4af6a0 | Nicholas Feinberg | 2021-11-12 16:54:48 -0800

Necrotize putrid mouths (Sastreii, CanOfWorms)

--------------------------------------------------------------------------------
fc338a8e3c | hellmonk | 2021-11-11 22:35:21 -0500

re-remove a description

--------------------------------------------------------------------------------
52b40a1e3f | MainiacJoe | 2021-11-11 22:31:36 -0500

feat: a zoo-themed Lair entry vault (mainiacjoe)
did a little syntax cleanup; this closes pr 2140

--------------------------------------------------------------------------------
b979743d38 | Perry Fraser | 2021-11-11 19:02:29 +0000

fix: typo in mut description for slowness

--------------------------------------------------------------------------------
c3dbe4743c | Kate | 2021-11-11 19:01:52 +0000

Fix Englaciate lasting 10 times too long on players
No monsters actually cast it, but this appears to have been broken since it
was implemented as a monster spell in 8e67a19276.

--------------------------------------------------------------------------------
b106dbac18 | Kate | 2021-11-11 19:01:45 +0000

Give Metabolic Englaciation a minimum duration
The effect's duration was scaled down by monster HD, which could often
result in a monster being affected but only for an extremely short
duration. Let monsters still fully resist the effect in the same way, but
guarantee a minimum duration for monsters that don't resist.

--------------------------------------------------------------------------------
e9a2b5622a | Kate | 2021-11-11 18:08:37 +0000

Consistently redraw EV/SH values when incapacitated

--------------------------------------------------------------------------------
6f72491a82 | Kate | 2021-11-11 15:58:20 +0000

Don't let sleeping monsters try to use shields
Fixes an oversight in merging cannot_move and cannot_act. Closes #2214.

--------------------------------------------------------------------------------
47ca5a425f | Perry Fraser | 2021-11-11 15:58:19 +0000

Refactor actor::cannot_move into actor::cannot_act
With the change in 7190d3f, player::cannot_move and player::cannot_act
became equivalent. This was in addition to the monster versions of those
methods also being equivalent, which meant we can remove the super
versions of them.

This also corrects one instance where the lack of checking for
sleepiness in player::cannot_speak was relied on to enable talking while
sleeping.

--------------------------------------------------------------------------------
0321f2dd10 | Perry Fraser | 2021-11-11 15:58:19 +0000

Fix: consider the player unable to act while asleep
Being asleep wasn't considered a condition in being unable to move,
which led to issues like not having your evasion reduced while asleep.

I investigated this after causative mentioned it in #crawl.

[Committer's note: adjusted commit message.]

--------------------------------------------------------------------------------
2d8be16583 | Kate | 2021-11-11 11:54:11 +0000

Fix Cold Breath description (#2220)
Closes #2220.

--------------------------------------------------------------------------------
bb0bd99bb4 | Kate | 2021-11-11 11:46:05 +0000

Fix Yara's Head Instructor not having a description

--------------------------------------------------------------------------------
1a73be5ee4 | Kate | 2021-11-10 22:19:32 +0000

Let Noxious Bog affect the player's current tile
Since you're now immune to it while active, there's no need to leave the
player's current square unaffected.

--------------------------------------------------------------------------------
84f7f7b7e7 | Kate | 2021-11-10 21:35:48 +0000

Properly cancel Noxious Bog on level transition
The terrain already expired on changing floors, but the duration lingered,
which prevented recasting the spell on a new floor until it timed out.

--------------------------------------------------------------------------------
7b4740d1af | Kate | 2021-11-10 21:35:48 +0000

Don't mark rCorr useless with temporary rCorr active

--------------------------------------------------------------------------------
025dcb77dc | Nicholas Feinberg | 2021-11-10 11:30:18 -0800

Fix tentacle corners (Goratrix, dilly)
Broken by 325244837d3070345b97a7eb4a78b7e1acbdd791. (There's probably
a better fix.)

--------------------------------------------------------------------------------
f98f3959e3 | Nicholas Feinberg | 2021-11-10 10:10:17 -0800

Devour hungry ghosts (Sastreii)
Replace the old Putrid Mouth tile with a new one.

--------------------------------------------------------------------------------
1410851fad | advil | 2021-11-10 09:32:27 -0500

build: add a test placeholder
This is a brute-force way of trying to figure out whether various DGL
setups will copy subdirectories of webserver.

--------------------------------------------------------------------------------
0121872642 | Kate | 2021-11-10 01:03:09 +0000

Remove the Orb's effect on contamination
Contamination is now much less a common status that players need to manage,
and more a rare effect from miscasts and specific abilities/items. As such
it no longer makes as much sense for the Orb to have a special (and fairly
minor) interaction with it. If any special interaction is still desired,
it'd be better to increase contamination received rather than to just
reduce dissipation slightly.

--------------------------------------------------------------------------------
08208c227e | Kate | 2021-11-10 00:50:16 +0000

Adjust invisibility costs and contamination
To simplify the effect and its costs, remove the contamination over time,
and reduce the initial contamination for activating the ego. As with
Irradiate, the darkgrey to lightgrey threshold is now also the threshold at
which activating the ability again might cause yellow contamination.
Increase the drain cost slightly to further penalise using it at lower
success rates, and to make it less likely that the kills during the effect
can quickly counteract the draining.

Also remove the contamination from invisibility beams, since wands of
invisibility are long gone.

--------------------------------------------------------------------------------
1d1595ee42 | Kate | 2021-11-09 13:39:08 +0000

Remove Invisibility as a player spell
Invisibility is a very powerful effect, and has multiple sources (spell,
potion and scarf ego). The spell is by far the most easily repeatable of
these, making it much stronger and less interesting to make effective use
of. The scarf still remains as a non-consumable source of invisibility, but
is better balanced by the additional drain cost.

--------------------------------------------------------------------------------
1135068088 | Kate | 2021-11-09 13:39:08 +0000

Give Beogh orcs more health when surrendering
Previously hostile orcs had a chance to convert when a Beogh-worshipping
player would kill them, but were only given 1-4 health back so were likely
to immediately die to any other nearby hostiles. Increase the healing up to
a larger portion of their max health to make this less likely, especially
when converting higher tier orcs or uniques.

--------------------------------------------------------------------------------
e8106a3eec | Kate | 2021-11-09 13:39:08 +0000

Don't let hostile monsters level up
Restrict levelling up to only divine allies (specifically to Beogh orcs,
since undead can't level up anyway). This behaviour was barely noticeable
otherwise, except in occasional cases of charming a monster and having it
kill something else.

--------------------------------------------------------------------------------
b444dcf96d | MainiacJoe | 2021-11-08 21:35:08 -0800

Add nine large Temple maps with 18-21 gods
Closes #2124.

--------------------------------------------------------------------------------
2a3509429d | MainiacJoe | 2021-11-08 21:34:15 -0800

Expand label for category <<3>> to twenty altars

--------------------------------------------------------------------------------
923ab73998 | Nicholas Feinberg | 2021-11-08 11:54:20 -0800

Make Ignis less mad at non-worshippers (nicolae)

--------------------------------------------------------------------------------
68644deec8 | advil | 2021-11-08 09:30:15 -0500

feat: add some text to the chargen pseudo-milestone
This is not a real milestone (it isn't saved, or written to the
milestones file) -- it's only used in the webtiles lobby. So it should
be fine to add some informative text to it.

--------------------------------------------------------------------------------
6ef7baa362 | advil | 2021-11-08 07:41:47 -0500

feat: transmit milestones/where info over webtiles sockets
In order to update the lobby, the webtiles server needs various bits of
information about ongoing games.  Previously, this information was
transmitted via 0-2 distinct channels: the .where file in the morgue
directory, and the milestone tailing. (The 0 is because on just a plain
`WEBTILES=y` build, where/milestone info was just extremely unreliable,
and milestones weren't sent at all as far as I can tell.)

This commit refactors things so that where info and milestones can just
be sent directly to the webtiles server over the socket connect, rather
than increasing the I/O load. (Probably not impactful on most servers,
but possibly actually matters on CAO.) This change also simplifies
client/server communication quite a bit. For versions with this patch,
the webtiles server does not need to tail the milestones file, and does
not need to read .where files at all, simplifying configuration as well.
We do keep these capabilities around for legacy reasons, as I expect to
backport this a bit but not very far back. Specific notes:

* The crawl process still writes a .where file if DGL_WHEREIS is
  defined. This is necessary for dgl setups, but probably could be
  dispensed with otherwise.
* If a crawl process sends direct where/milestone info, the server will
  stop paying attention to the indirect versions. This should make using
  older versions fairly seamless.
* On the webtiles server side, some light refactoring so that milestones
  and wheres use the same code, moreso than before at least.
* The last milestone is saved in a prop so that it can be shown when
  reloading, and explicitly synced on game start. (Previously it was
  just a static variable that was not saved.)
* An explicit where is sent directly during character generation.

--------------------------------------------------------------------------------
06939e2a5b | advil | 2021-11-08 07:41:47 -0500

refactor: further refactor lobby sync
* Dispense with caching the lobby_entry() result; if this needs to be
  cached it could be cached on ProcessHandler object itself (but I
  suspect it's not very important). The global state is now just a set
  of games with known stale lobby entries.
* separate out lobby updating from the asynchronous loop code; this is
  just to make it easier to understand and refactor in the future.
* Use a queue-then-flush paradigm, rather than send everything at once.
  This should do a better job of batching the message traffic.
* Better avoid race conditions in case of asynchronous calls

--------------------------------------------------------------------------------
592c3b7cb7 | advil | 2021-11-08 07:41:47 -0500

refactor: do lobby updates on a schedule
Previously, every time any game changed state in a way that would affect
the lobby, the lobby update function was called immediately. This, so
far as I can assess this sort of thing, scales quite poorly with the
number of active players and the number of lobby viewers. The amount of
data was still quite small, but the amount of send_message calls, it
seems, was not. This commit refactors lobby updates to be sent all at
once, by default every 2 seconds. The idea is put a configurable bound
on the amount of traffic involved in lobby info, where lower-traffic
servers could set this much lower (e.g. 1 or 0.5), and higher traffic
servers could tweak upwards as needed.

It should be mentioned that truly profiling webtiles in live situations
is basically impossible as it stands, so this commit is based on some
level of guesswork. It's also not tested yet in a real live situation.

--------------------------------------------------------------------------------
b054d885db | Nicholas Feinberg | 2021-11-07 20:14:21 -0800

Remove Jiyva's stat shuffling
It seems to have been meant as a perk, but it was pretty frequently
detrimental to the player - not in the fun way of systems that encourage
one to adapt to circumstances, but just in an overly complex and busted
way.

--------------------------------------------------------------------------------
fb90bdcb57 | Kate | 2021-11-08 02:35:31 +0000

Remove Disjunction's contamination cost
It's not really necessary for balancing the spell - contamination is
supposed to prevent recasting multiple times, but the cost was low enough
that it could already be recast a lot of times before risking yellow glow,
and it's high level enough that the MP cost works fine to prevent
continuous recasting.

--------------------------------------------------------------------------------
f37d360483 | Kate | 2021-11-08 01:03:24 +0000

Update a comment

--------------------------------------------------------------------------------
1b360eb39e | Kate | 2021-11-08 00:22:24 +0000

Add targeters for Silence and Liquefaction

--------------------------------------------------------------------------------
8d5f0ca64a | Kate | 2021-11-08 00:15:08 +0000

Display current/max level on mutation descriptions (Mike)

--------------------------------------------------------------------------------
00180f5fcc | Kate | 2021-11-07 22:02:19 +0000

Remove obsolete identification checks for reflection

--------------------------------------------------------------------------------
ac2d178426 | Kate | 2021-11-07 21:58:13 +0000

Don't let Yred try to reflect reflected splash damage
Fixes a crash when the player reflects a yellow draconian acid breath
attack, it hits a monster, splashes back onto the player, and Yred tries to
mirror that damage back onto a dummy monster that represents the player.

--------------------------------------------------------------------------------
108efc2627 | Kate | 2021-11-07 20:37:14 +0000

Fix misleading indentation

--------------------------------------------------------------------------------
581a213eff | Kate | 2021-11-07 20:21:10 +0000

Let monsters use Rift's bonus reach range
And fix its display in the monster list so that it shows up as a polearm
there.

--------------------------------------------------------------------------------
7e933cf55b | Kate | 2021-11-07 19:50:24 +0000

Let monsters use reaching attacks in any attack slot
Reaching attacks previously only functioned in the first attack slot, but
some mutant beasts could have them in later slots, resulting in the reach
attack not functioning.

--------------------------------------------------------------------------------
19d727b07e | Kate | 2021-11-07 18:17:04 +0000

Remove unused AF_KITE handling
Since this attack flavour has been removed.

--------------------------------------------------------------------------------
de3ffcc593 | Kate | 2021-11-07 17:48:04 +0000

Give Excruciating Wounds a targeter
As with transmutations and other self-enchantments.

--------------------------------------------------------------------------------
60983d4ba9 | Kate | 2021-11-07 00:23:51 +0000

Fix Serpent of Hell attack descriptions
Due to various complicated handling for hydra-style multi-attacks, only
their first bite attack was listed in their descriptions.

--------------------------------------------------------------------------------
74956062c1 | Kate | 2021-11-06 15:41:08 +0000

Adjust some mutation descriptions

--------------------------------------------------------------------------------
09f76e8c00 | Kate | 2021-11-06 01:50:21 +0000

Fix Xom chesspieces claiming to put undead to sleep
And correctly give the "is unaffected" message instead.

--------------------------------------------------------------------------------
4fbe447692 | AdamPG | 2021-11-06 00:55:39 +0000

Readjust Ignis ability costs to 4/3 of original cost
This gives the player 8 uses of Foxfire Swarm, each of which cost
and additional 3 piety, leading to an increase of 24 piety cost -
exactly the former cost of one use of Rising Flame (which is now
free).

--------------------------------------------------------------------------------
c9cd55e000 | AdamPG | 2021-11-06 00:55:39 +0000

Make Ignis' Rising Flame only usable once
Cinder Acolyte has proven to be an incredibly strong start. In
particular, the Rising Flame power changes the game in ways that
make the entire early and mid-game into a foregone conclusion for
any experienced reasonably-high-win-rate player. While strong
starts such as Berserker already exist, these are all still
susceptible to losing if one makes the various mistakes that
players make in an average game of Crawl. Rising Flame, however,
removes all consequences for mistakes.

At starting Ignis Piety, the player gets four uses of Rising
Flame. When they activate it, they are shafted upwards after a
delay of 2+random2(3) turns (an entire turn faster than a
teleport scroll!). This ability is probably the most powerful
escape ability in the entire game and is simply too strong to be
available from the start of the game in such a large quantity. A
"get out of jail free card" for a player's worst mistakes is a
cool idea, but it should only be available one time, similar to
Tso or Kiku's capstone abilities.

As such, this PR turns Rising Flame into a capstone ability, usable
exactly once at any piety level and with no piety cost of its own.

[Committer's note: squashed commits and updated commit message to
reflect the change from an increased piety cost to a capstone ability.
Closes #2209.]

--------------------------------------------------------------------------------
b5f29a7041 | Nikolai Lavsky | 2021-11-06 00:03:45 +0000

fix: disable miscast-created allies when allies are forbidden
As a followup to cf4520f7, this commit blocks one more source of allies
who would immediately turn hostile under Okawaru or Sac Love.

This covers Spellbinder melee and any other potential way of causing
summoning miscasts on monsters.

--------------------------------------------------------------------------------
e7ca7b5467 | Nicholas Feinberg | 2021-11-05 16:24:08 -0700

Reword clarity berserk slightly
"Losing temper" reads very strangely to me; I've always seen it as
"losing [your/my] temper". Perhaps it's a commonwealthism? In any
case, it seems to imply that without this mutation, you could become
enraged for no reason at all; let's try to fix that.

--------------------------------------------------------------------------------
f458de4411 | Nikolai Lavsky | 2021-11-05 23:10:10 +0000

text: fix, reword, and extend a few mutation descriptions
* To make style more consistent, this commit capitalizes stat names,
  adds a missing serial comma, and replaces +Stealth with Stealth+.
* "Stab" has a special meaning for melee attacks, so replace it with
  the spiked tentacle's attack verb, "pierce".
* Clarity blocking Rnd*Rage is a well-hidden mechanic, which is not
  mentioned anywhere in the game, so let's fix this too.

--------------------------------------------------------------------------------
d4f0d3f9b2 | Kate | 2021-11-05 22:46:59 +0000

Remove checks for unidentified equipment
Items equipped by the player and by monsters are always identified, so
remove a lot of code that handled cases where the player didn't know
whether they or a monster had a certain resistance or not.

--------------------------------------------------------------------------------
4e399c39f0 | advil | 2021-11-05 09:48:49 -0400

fix: make an ASSERT more informative
This ASSERT has been triggering sporadic, unreplicatable crashes since
2018 or so. Maybe more information will help. (In particular, if one
of these link values is corrupted somehow, this might give a clue as to
how.)

--------------------------------------------------------------------------------
afe8c5f9e9 | Nicholas Feinberg | 2021-11-04 15:59:56 -0700

Allow players to use anubis guard tiles

--------------------------------------------------------------------------------
31680bbd8b | Nicholas Feinberg | 2021-11-02 19:02:40 -0700

Celebrate true heroism (Sastreii)
New Heroism and Duel invocation icons.

--------------------------------------------------------------------------------
75f770b44e | Edgar A. Bering IV | 2021-11-02 23:32:51 +0200

feat: make Duvessa permanently berserk when Dowan dies
She waits to see you before going crazy. But the game of "kill Dowan
first then escape to wait out the berserk and fight a normal Duvessa"
always seemed a bit sad, considering Dowan's grief gave him permanent
new strength.

So lets let the bond run a bit deeper, and make Duvessa's rage eternal.

--------------------------------------------------------------------------------
d6d7bb098e | Edgar A. Bering IV | 2021-11-02 23:30:27 +0200

fix: prevent petrified monster speech

--------------------------------------------------------------------------------
9f4689a14b | Edgar A. Bering IV | 2021-11-02 23:19:52 +0200

fix: don't time out any permanent enchantments on stair change

--------------------------------------------------------------------------------
03c7b27e48 | Nicholas Feinberg | 2021-11-02 13:36:35 -0700

Reduce crystal tome spell count
Drop to 1-2 spells per cast, from 2-3. They're quite strong regardless,
and can stand to be pulled back just a little bit.

--------------------------------------------------------------------------------
59c5b1f36e | Nicholas Feinberg | 2021-11-02 13:36:35 -0700

Increase living earthen tome HD
Give em a better shot at hexing Depths characters.

--------------------------------------------------------------------------------
2d16a5e2fa | Nicholas Feinberg | 2021-11-02 13:36:35 -0700

Fix living spell HP display

--------------------------------------------------------------------------------
fc378a028c | Nicholas Feinberg | 2021-11-02 13:36:35 -0700

Hopefully clarify living tome descriptions

--------------------------------------------------------------------------------
a3f3a1a0a4 | Nicholas Feinberg | 2021-11-02 13:36:35 -0700

Cut living spell HP
Make it easier to kill them before they cast.

--------------------------------------------------------------------------------
b1e28150d3 | Edgar A. Bering IV | 2021-11-02 22:29:10 +0200

vaults: adjust a zot vault lich placement

--------------------------------------------------------------------------------
b4ddf7de7f | Edgar A. Bering IV | 2021-11-02 22:26:26 +0200

vaults: adjust a zot vault draconian placement

--------------------------------------------------------------------------------
02bda5dcb3 | advil | 2021-11-02 12:36:46 -0400

docs: update placement.lua docs (perryprog)
This replaces some obsolete documentation that referred to
`placement.lua`'s predecessor, as well as updates the script --help
output to include some things that got added but never documented.

--------------------------------------------------------------------------------
6f86257384 | Nicholas Feinberg | 2021-11-02 08:31:42 -0700

Improve armour/sh miss messages
Account for to-hit being randomized after armour & shield penalties
are applied, before they're compared to EV. Also de-indent.

--------------------------------------------------------------------------------
186eaeaa95 | Nicholas Feinberg | 2021-11-02 07:53:31 -0700

Remove the tail tail

--------------------------------------------------------------------------------
3d1f99b579 | Nicholas Feinberg | 2021-11-01 21:19:35 -0700

End All Hallow's Eve
This reverts commit 91a516d0e768b6e4232327f2d9d008fc577132f3.

--------------------------------------------------------------------------------
a603e38af3 | Nicholas Feinberg | 2021-11-01 16:36:08 -0700

Add a mutation menu
To allow players to examine details of mutations. Lots of notes about
good future improvements in get_mutation_desc().

--------------------------------------------------------------------------------
c1b1554a8f | Nicholas Feinberg | 2021-11-01 16:36:08 -0700

Minor mutation description tweaks
Mostly to removed muts.

--------------------------------------------------------------------------------
ddf5a44173 | Nicholas Feinberg | 2021-11-01 16:36:08 -0700

Add mutation DB

--------------------------------------------------------------------------------
90e1efd671 | Nicholas Feinberg | 2021-11-01 16:36:08 -0700

Separate out _get_fakemuts

--------------------------------------------------------------------------------
1fcdd13c02 | Nicholas Feinberg | 2021-11-01 16:36:08 -0700

Refactor form fakemuts
Simplify poison immunity printing & pull out form fakemuts into
their own category.

--------------------------------------------------------------------------------
130ae17fe5 | Kate | 2021-11-01 01:34:27 +0000

Reduce spellpower caps of some low-level spells
Teleport Other, Sublimation of Blood, Spider Form, Inner Flame, Gell's
Gravitas and Vampiric Draining - as level 2-3 spells, they shouldn't scale
all the way up to 200 power.

--------------------------------------------------------------------------------
2d6b873594 | Kate | 2021-11-01 01:34:27 +0000

Don't let monsters pick up seen items they've dropped
This allowed them to pick up their weapon again after being disarmed, for
example.

--------------------------------------------------------------------------------
91a516d0e7 | Edgar A. Bering IV | 2021-10-31 20:36:10 +0200

hack: halloween tonight, be careful
Since we're a bit late and didn't put this on Maurice let's give our
players a spooky costume with a hasty options default. Doing this
(or maurice) automatically using today_is_halloween() will come later.

--------------------------------------------------------------------------------
c05be326da | gammafunk | 2021-10-31 01:11:00 -0500

feat: Tweak a Master Elementalist vault
Remove the final chamber door in `mu_elemental_laboratory`, since it
tends to allow players to sneak up on our secretive wizard too easilly.
Also put a small window into the final chamber about halfway through the
vault. Then players can see what they'll be up against as well as the
potential rewards.

--------------------------------------------------------------------------------
550dbda0cd | advil | 2021-10-30 18:42:21 -0400

fix: tweak &P temple behavior when low on gods (nicolae)
If the seed-chosen temple had fewer altars than an &P placed one,
levelgen would simply place floor. This change repurposes an existing
check for mapstat/objstat that places a Xom altar in this case.

--------------------------------------------------------------------------------
8c92f1e708 | advil | 2021-10-30 17:50:07 -0400

fix: suppress corrupted PlaceInfo error for wizmode commands
This is treating the symptoms, but I think it is safe to ignore this
fixup entirely for things like &P. (A better fix might be to make
wizmode commands not need the fixup.)

--------------------------------------------------------------------------------
84b7309ef8 | advil | 2021-10-30 17:50:06 -0400

fix: make &P work in temple
Previously, the selected map for this command was ignored in temple,
overridden by the temple map chosen at seed start. This commit lets a
FORCE_MAP_KEY prop override TEMPLE_MAP_KEY if both are set. This does
not replace the TEMPLE_MAP_KEY prop, so `&ctrl-r` resets. A map that
requires a layout will crash here; this could maybe be headed off by
requiring the map to be usable in temple to place there in the wizmode
code. I've fixed the crash so that it's an ASSERT at least, and not a
segfault (which is how this initially presented).

This commit also fixes the encompass warning for `&P` to check PLACE
restrictions and not just DEPTH; it was ignoring PLACE before and so
probably printing this warning for a bunch of unnecessary cases.

--------------------------------------------------------------------------------
0164abf027 | Kate | 2021-10-30 20:39:40 +0100

Don't consume corpses on Kiku torment failure

--------------------------------------------------------------------------------
4ac5789cae | advil | 2021-10-30 15:25:49 -0400

fix: remove an essentially unused function
This function has both webtiles and local tiles code, but isn't used in
local tiles. In webtiles it returns 1. Possibly intended for greater
things in 1f9488b117fe8, but that didn't happen.

--------------------------------------------------------------------------------
cc23663199 | advil | 2021-10-30 15:25:49 -0400

fix: explicitly use TargetConditionals.h in platform detection
OS X provides a header that is in some ways quite similar to our
platform.h, up to the macro naming style, but unfortunately uses a value
of 0 rather than undefinedness for false. This has been around for a
very long time (e.g.  I found a version as old as 2000), and it looks
like there have always been some collisions, but these are largely for
for macos 12) added a few new ones that do matter quite a bit, in
particular TARGET_OS_WINDOWS and TARGET_OS_LINUX are now #defined to 0
when building on OS X. This breaks many things.

This commit takes the easy way out and does some selective #undefs. I've
tried to fix a few of the old problems that don't really matter as well,
e.g. the old version had noticed that TARGET_CPU_PPC was defined but
didn't handle that correctly.  I think in the longer run it could be
better to change our prefixes, e.g. to DCSS_TARGET_OS_WINDOWS. But this
is a bit of an annoying task.

Resolves #2208

--------------------------------------------------------------------------------
b5831b966b | Kate | 2021-10-30 20:19:33 +0100

Adjust some Elyvilon abilities
While Elyvilon's basic functionality is relatively strong, the god had a
very large number of activated abilities and is heavily focused on using
them with high invocations training, so was quite fiddly in practice.

To streamline things slightly, make the lifesaving ability entirely passive,
with no requirement to avoid attacking things (since Zin's Sanctuary is a
more interesting version of that design). It now provides the standard good
god lifesaving chance, plus an additional stronger piety-based chance which
becomes guaranteed at 5* but has a piety-gated timeout.

Rather than having two separate self-healing abilities, also remove the
Lesser Healing ability and move the other active abilities earlier -
Purification moves to 1* and is made slightly cheaper, and Greater Healing
is renamed to Heal Self and moves to 3*.

--------------------------------------------------------------------------------
707b13c9aa | Kate | 2021-10-30 19:24:57 +0100

Improve Kikubaaqudgha's invoked torment
Allow it to take corpses from adjacent squares instead of only the player's
location, and guarantee at least partial torment protection.

--------------------------------------------------------------------------------
2b075f26b7 | Kate | 2021-10-30 19:20:35 +0100

Move some TSO active abilities earlier
Moves Divine Shield to 1* and Cleansing Flame to 3*. The Shining One isn't
really a useful god in the early game, and this doesn't really change that,
but should make the god a little more usable if chosen from a faded altar,
for example.

--------------------------------------------------------------------------------
d57beee77b | Kate | 2021-10-30 19:20:35 +0100

Cap Gozag's gold distraction chance
In edge cases (primarily casting level 9 spells in Ziggurats), it was
possible to stack gold distraction so high that monsters could barely act.
Adjust the probability of gaining a stack, so that it's now easier to gain
multiple stacks at low values, but harder once lots of stacks have been
gained, and cap the number of stacks at 20. This is unlikely to be relevant
most of the time but should at least tone it down in extreme situtations.

--------------------------------------------------------------------------------
f0b37e2a93 | Kate | 2021-10-30 19:20:35 +0100

Slightly reduce Ru's chance of passive retaliation
From 1/4 at max piety to 1/5. Ru is very powerful for most characters, and
while the sacrifices are a good tradeoff for this, having that power
focused in the active abilities (with their cooldowns) is more interesting
than having passive retaliation do too much of the work.

--------------------------------------------------------------------------------
5845fe868d | Kate | 2021-10-30 19:12:29 +0100

Highlight some Pan rune messages by default

--------------------------------------------------------------------------------
b643f36830 | Kate | 2021-10-30 19:12:29 +0100

Remove a reference to spell hunger

--------------------------------------------------------------------------------
abee14ce83 | Kate | 2021-10-30 19:12:27 +0100

Randomise the corpse used for Animate Skeleton
Instead of picking the first location visited by radius_iterator.

--------------------------------------------------------------------------------
8f272e2798 | Kate | 2021-10-30 18:59:48 +0100

Remove some handling for multi-headed players

--------------------------------------------------------------------------------
f7c1052996 | Kate | 2021-10-30 18:59:48 +0100

Update description for scrolls of fear

--------------------------------------------------------------------------------
c1929b3ff3 | Edgar A. Bering IV | 2021-10-30 20:49:11 +0300

fix: recolour titans and antaeus in console

--------------------------------------------------------------------------------
0db16c8cc9 | Nicholas Feinberg | 2021-10-30 07:46:08 -0700

Add ArmiesAndCastles to the CREDITS

--------------------------------------------------------------------------------
ef3a642a4e | Nicholas Feinberg | 2021-10-29 07:39:35 -0700

Fix using ?id under Ashenzari (particleface)
Also remove an unused #include.

--------------------------------------------------------------------------------
7c675f85b1 | Nicholas Feinberg | 2021-10-28 21:01:04 -0700

Fix console builds?

--------------------------------------------------------------------------------
ded9c35045 | Gopall | 2021-10-28 19:48:25 -0700

Prompt user when trying to enter ziggurat portal.
Ziggurats are very dangerous. And the portal you enter through is disabled when 
you enter. It would be a good idea to prompt the user to prevent them from 
accidentally entering a ziggurat.
--------------------------------------------------------------------------------
340af05277 | Nikolai Lavsky | 2021-10-28 19:45:31 -0700

tile: add ability icons for the Olgreb, Dispater, and Asmodeus unrands

--------------------------------------------------------------------------------
9e3a184554 | ArmiesAndCastles | 2021-10-28 19:34:31 -0700

Add spell menu option

--------------------------------------------------------------------------------
1ad88e3242 | Aliscans | 2021-10-28 19:27:42 -0700

Only compile 27 functions when USE_TILE (or similar) is set.
There were a number of functions which were only called if TILE, TILE_LOCAL or 
TILE_WEB was defined, but were defined unconditionally. Add #ifdefs to some of 
them to reflect the way they are used.

--------------------------------------------------------------------------------
cf0edb70ba | Aliscans | 2021-10-28 19:27:42 -0700

Delete 43 unused functions. Make 1 DEBUG-only.
Delete these unused functions:

can_spawn_mushrooms() compare_skills() count_allies() count_desc_lines() 
count_monsters() count_neighbours() count_traps() 
downgrade_zombie_to_skeleton() drain_hp() fully_map_level() 
get_armour_repel_missiles() get_desc_quantity() get_random_stair() 
get_recent_messages() gozag_gold_in_los() ignite_poison_affects() inc_max_hp() 
init_abomination() is_helmet() is_real_food() item_from_int() item_int() 
macro_sendkeys_end_add_cmd() max_cloud_damage() mons_can_move_towards_target() 
mons_class_res_polar_vortex() mons_has_flesh() 
mons_has_incapacitating_ranged_attack() mons_has_incapacitating_spell() 
mons_secondary_habitat() multiple_items_at() num_feats_between() 
pack_item_identify_message() playable_job_names() playable_species_names() 
player_can_memorise() rand_round() set_hydra_form_heads() spell_is_form() 
tile_clear_map() tile_reset_feat() update_monster_symbol() 
zin_remove_all_mutations()

Put "#ifdef DEBUG" around keyseq_to_str(). This is not used in the code, but 
this means that it can still be called through a debugger with the right 
compile option.

--------------------------------------------------------------------------------
3554995387 | hellmonk | 2021-10-28 19:20:36 -0700

adjust the slow spell
Move it to level 1, but cap the power at 25. This might make slow more exciting
early on AM without letting it remain too relevant later on. It still has a
success bonus compared to other hex effects; this could be removed, but might
require adjusting other sources of slow.

--------------------------------------------------------------------------------
776b58c23f | ArmiesAndCastles | 2021-10-28 19:17:21 -0700

Forbid invalid ghost spells

--------------------------------------------------------------------------------
6247938026 | ArmiesAndCastles | 2021-10-28 19:11:23 -0700

Solve wizard mode charms crash

--------------------------------------------------------------------------------
1d6e689fef | Santiago Acosta | 2021-10-28 19:07:31 -0700

Simplify mon_to_hit_base
mon_to_hit_base asked if the attack was ranged or not. but this was pointless, 
since it always returned 18 + 2.5 * HD for skilled monsters or, 18 * 1.5 * HD 
for unskilled ones.

Removed this distinction, and simplified the magic numbers.

--------------------------------------------------------------------------------
09e7bd7c26 | Aliscans | 2021-10-28 19:05:39 -0700

Don't say the map boundary can be burnt or dug through.
Prevent get_feature_desc() from stating that terrain on the map boundary can 
burn or be dug through, as it can't. This reflects a restriction in 
destroy_wall().

Fix a typo in a comment.

--------------------------------------------------------------------------------
de44f11507 | Gopall | 2021-10-28 19:03:49 -0700

Fix a Pan teleport closet

--------------------------------------------------------------------------------
1cc4480b13 | dilly | 2021-10-28 19:03:02 -0700

Give master elementalist willlpower
Carry on, master elementalist.

--------------------------------------------------------------------------------
6bb2ce7825 | Perry Fraser | 2021-10-28 19:01:43 -0700

Rename Purgy to Pargi
After an IRC discussion brought up by PleasingFungus/gammafunk/geekosaur, it was
decided to rename Purgy to Pargi to avoid a potential comparison to bulimia.

--------------------------------------------------------------------------------
9ea0df9366 | ArmiesAndCastles | 2021-10-28 18:57:55 -0700

Solve lost soul crash

--------------------------------------------------------------------------------
bb860f9c85 | Nicholas Feinberg | 2021-10-28 18:56:08 -0700

Adjust dpeg_arrival_tiny_a
Be merciful (?)

--------------------------------------------------------------------------------
0f29109cba | Nicholas Feinberg | 2021-10-28 18:38:15 -0700

Add seven new Gastronoks (Sastreii)
Replace Gastronok's tile with a much sillier one, and add six other
tiles for players who want to set a custom tile. These are:
- MONS_GASTRONOK_MUSTACHE
- MONS_GASTRONOK_CLEANSHAVEN
- MONS_GASTRONOK_HANDLEBAR
- MONS_GASTRONOK_FU_MANCHU
- MONS_GASTRONOK_SIDEBURNS
- MONS_GASTRONAUT

They can be set by using this rcfile option:

    tile_player_tile = tile:mons_gastronaut

(Or likewise for other tiles.)

--------------------------------------------------------------------------------
f7145f7991 | Nicholas Feinberg | 2021-10-28 18:15:39 -0700

Show Crypt rocks (Sastreii)
New rock wall tiles for Crypt.

--------------------------------------------------------------------------------
75e6d9beac | Kate | 2021-10-28 16:12:16 +0100

Simplify scrolls of brand weapon
Their list of brands with multiple different weights was fairly spoilery.
Instead split the brands into "common" (vorpal, freezing, flaming, venom,
protection) and "rare" (draining, electrocution, spectral, vampiric, chaos)
categories, with each brand within those categories having the same weight,
and add this information to the item description.

In practice this is a relatively small change to the brand weightings, with
the main exceptions of protection and chaos becoming noticeably more common.

--------------------------------------------------------------------------------
59de83eefb | advil | 2021-10-28 09:53:32 -0400

fix: NOWIZARD build compilation issues
There are still a bunch of warnings that look harmless, but this should
get it to build

--------------------------------------------------------------------------------
892d06dc2c | Kate | 2021-10-28 05:12:11 +0100

Move Ashenzari's item and trap identification to 1*
Ashenzari is extremely strong and generically useful to any character, and
in addition to the substantial skill boosts offered once cursed, granted a
number of abilities up-front without requiring any curses at all. Instead
move the trap protection and item identification to 1*, so that joining
Ashenzari doesn't immediately identify all consumables for free and some
investment is required.

--------------------------------------------------------------------------------
7a50183f53 | Kate | 2021-10-28 05:12:11 +0100

Remove an unused Jiyva god_passive
And fix a typo describing some related functionality.

--------------------------------------------------------------------------------
0181a31188 | Nicholas Feinberg | 2021-10-27 07:25:52 -0700

Make Shoals less washed out (Sastreii)
Tweaks to new stone wall tiles.

--------------------------------------------------------------------------------
ef20177fd5 | advil | 2021-10-27 10:12:41 -0400

fix: remove a spurious #
No idea if this could be causing monterey build problems somehow, but it
doesn't need to be there.

--------------------------------------------------------------------------------
4a9143789a | Nicholas Feinberg | 2021-10-26 18:50:32 -0700

Actually add new Shoals tiles
Oops!

--------------------------------------------------------------------------------
345791154b | Nicholas Feinberg | 2021-10-26 17:39:39 -0700

Add a pillar of the community (Sastreii)
New Shoals stone wall tiles. Simply classic...

--------------------------------------------------------------------------------
66f9036eb4 | Kate | 2021-10-26 02:37:52 +0100

Make boulder beetles stop rolling when incapacitated

--------------------------------------------------------------------------------
095bd1b44f | Nicholas Feinberg | 2021-10-24 15:05:01 -0700

Show brimstone fiends the door (Sastreii)
More brightness and contrast tweaks.

--------------------------------------------------------------------------------
c0678643b6 | Kate | 2021-10-24 22:23:03 +0100

Remove shock as an option for black draconian breath
Black draconian breath being uncontrollable works well to distinguish it
from being another plain elemental-flavoured bolt, but makes it harder to
use effectively and very high-variance. Remove shock as one of the zaps it
can fire, and slightly increase the relative weight of orbs of electricity
(from 33/33/33 shock/lightning/OoE to 60/40 lightning/OoE).

--------------------------------------------------------------------------------
5a7bdb8870 | Kate | 2021-10-24 22:07:26 +0100

Remove duplicate acid breath handling

--------------------------------------------------------------------------------
7be2a051a4 | Kate | 2021-10-24 20:03:31 +0100

Improve yellow draconian breath targeter
So that it properly displays as a beam, instead of looking like it's smite-
targeted.

--------------------------------------------------------------------------------
5dbd38fb6a | Kate | 2021-10-24 20:03:31 +0100

Let yellow draconian breath splash more consistently
It previously couldn't splash if the monster it hit was killed by the
initial damage.

--------------------------------------------------------------------------------
e95497fc47 | Kate | 2021-10-24 20:03:31 +0100

Simplify some Shadow Creatures handling
Since it's now only a scroll and not a player spell.

--------------------------------------------------------------------------------
190f86ba01 | Nicholas Feinberg | 2021-10-24 09:44:50 -0700

New Brimstone Fiend tile (Sastreii)
Decided to take a break from puns for this one. Gotta mix things up :)

--------------------------------------------------------------------------------
73b70caff8 | gammafunk | 2021-10-24 06:19:49 -0500

feat: Remove a Gauntlet exit vault
The map `gauntlet_exit_spiral` is a simple spiral Gauntlet exit map
adapted from an exit vault for the original Labyrinth portal. This map
is significantly harder than the other exits because it provides no
cover over long corridors. It predates the minotaur having access to
javelins, so this difficulty difference is unintentional. Furthermore
it's not an especially interesting exit map on its own. The newly added
`dreamdust_gauntlet_exit_labyrinth` map is more balanced and interesting
than `gauntlet_exit_spiral`, and the former is also a Labyrinth
reference, so I'm removing the latter.  It's possible to rework the
map's layout to give the player some better terrain while retaining a
spiral aspect, but it would make more sense to make a new map at that
point.

--------------------------------------------------------------------------------
7e422d3a0a | gammafunk | 2021-10-24 06:00:19 -0500

feat: Some tweaks for a Gauntlet exit map
For dreamdust_gauntlet_exit_labyrinth, use alternating patterns to place
dead ends not cardinally adjacent to wall openings, which would make the
dead end not function. Tweak the inner-most wall to always a path around
corners that doesn't create a diagonal choke point. Finally, move the
map to the end of the DES section, so that the maps are ordered by when
they were added. Closes #2166.

--------------------------------------------------------------------------------
b7d1d2055b | DreamDust | 2021-10-24 06:00:19 -0500

A Gauntlet exit map
Similar to my other labyrinth vault, dreamdust_labyrinth, but scaled
down and turned into a gauntlet exit vault.

Commiter's Note: Tweaked commit message and squashed a fix commit.

--------------------------------------------------------------------------------
6a1266e7b4 | gammafunk | 2021-10-24 06:00:19 -0500

feat: Some adjustments to two large themed maps
For `dreamdust_labyrinth`, this is a large vault that ultimately places
a single monster. Although the larger maze is visually interesting,
there's a lot of dead space. This commit scales down the maze by
removing one set of stone walls. Additionally it simplifies the
substitutions and introduces an alternating pattern to prevent the dead
end from sometimes placing adjacent to the single opening in the wall in
a way that prevents the dead end from functioning.

For `dreamdust_isle_of_ice`, I've rebalanced the monster lists for each
placement depth and added loot appropriate for the threat. For monsters,
since this vault is evoking the Ice Cave aesthetics and monster themes,
I've made monster lists that combine the "natural" and "undead/demonic"
sets, choosing depth-appropriate monsters from the Ice Cave common
monster lists used in that portal.

The earlier Dungeon and Lair placements use the "easy" Ice Cave
monsters, the later Dungeon uses the "hard" Ice Cave monsters, and for
Depths I've logically extended the sets to include top end "hard"
monsters and a few additional threats form Cocytus. I've added a mix of
the usual loot types as well as one thematic Ice Cave loot item that
borrows some of the loot definitions used in the portal. The monster and
loot item counts are the same for all depths, only the types of monsters
change. Ice statues have a chance to place in Dungeon and Lair, with a
chance for a second ice statue in late Dungeon. For Depths, we use an
orange crystal statue.

I've tweaked the appearance of the vault to be more consistent with the
Ice Cave portal for console, and added vault connectors near the front
of the map, so the vault will be better integrated with the level
layout.

--------------------------------------------------------------------------------
8fcd438c92 | DreamDust | 2021-10-24 06:00:19 -0500

Two large themed vaults
dreamdust_isle_of_ice: An ice-themed vault on the edge of the map.
Original inspiration is how Antarctica looks on a 2D world map, but I'm
a terrible artis. So quickly gave up on replicating it.

dreamdust_labyrinth: An homage to the old labyrinths. I gave it the
lowest WEIGHT since it's a large vault and I think it works best as a
very rare easter egg.

Committer's Note: Combined commits and tweaked commit messages.

--------------------------------------------------------------------------------
10fb06eb29 | DreamDust | 2021-10-24 06:00:19 -0500

A small loot vault
dreamdust_deal_with_the_devil: Some devilish being is trying to tempt
players into using a powerful but dangerous piece of equipment. Original
plan for this vault was to generate a randart armour with Harm, but this
apparently isn't possible. Unfortunate.

--------------------------------------------------------------------------------
ac3eafeb5c | gammafunk | 2021-10-24 06:00:19 -0500

Some fixes and adjustments to some float vaults
For `dreamdust_black_sun_cult`, use the new correct name for demonspawn
black suns. Tweak placement to allow on branch ends, since there's
nothing special about this vault that needs to avoid that.

For `dreamdust_experimentation`, mix in some "experimental" hostile
monsters along with the wizards, to make the vault a bit less mundane.
Scale loot and monster count better with depth of placement.  For the
decorative monsters, use either only human or animal species monsters
depending on the monster set chosen, all with permanent enchants, and
have them generate awake.

For `dreamdust_cat_pyramid`, slightly increase the number of sphinxes,
placing 3 on-average and up to 5 to balance the vault's difficulty
relative to its loot. Use the good loot potion set instead of random
potions, and thin out the loot count a little. This way there's a bit
less loot, but it's higher quality. Spread the loot items out in the
vaults interior, moving external gold to inside the vault. Tweak the
vault layout to prevent statues from blocking the door and to give a
more complete path around the outside of the vault.

--------------------------------------------------------------------------------
3ea58914d7 | DreamDust | 2021-10-24 06:00:19 -0500

Some float vaults
`dreamdust_black_sun_cult`: Vault featuring a fire and necromancy based
cult. In the Dungeon, players will encounter sun demons and a demonspawn
black sun, while in Zot they'll find powerful draconians and a black sun
worshipping an orb of fire. Rewards are a book (either a manual or a
spellbook) and a fire-related item.

`dreamdust_cat_pyramid`: A cat-themed pyramid with a couple guardian
sphinxes and some offerings as loot.

`dreamdust_experimentation`: Some wizards have been performing inhumane
experiments... Kill them, stare in horror at what they've created, and
then feel free to loot their potion stash!  :)

Committer's Note: Merged commits and cleaned up commit message.

--------------------------------------------------------------------------------
79a10526bc | gammafunk | 2021-10-24 06:00:19 -0500

feat: Some tweaks to a Shoals vault
For `dreamdust_from_the_deep`, the custom water and wall tile visuals
taken from the Sewer portal are out of place for the visuals of Shoals.
The vault's themes directly referencing the Abyss, so this commit
removes the custom water tiles and replaces the Sewer wall tiles with
Abyss rock wall tiles.

Also replace the gravestone tile for the statue with the newly added
tentacle statue tile and remove the custom description. Custom statue
descriptions used only in one vault tend to confuse the player as to
whether the statue might some special effect, which this one doesn't.

--------------------------------------------------------------------------------
7e8daab784 | DreamDust | 2021-10-24 06:00:19 -0500

A Shoals vault
dreamdust_from_the_deep: An "eldritch" vault full of tentacle and chaos
monsters. Gives a randart ring and a spellbook with malign gateway &
summon horrible things as rewards.

Commiter's Note: Cleaned up commit message.

--------------------------------------------------------------------------------
f6f64a616a | Kate | 2021-10-24 01:35:50 +0100

Give Blink a power-dependent cooldown
Blink was the final player spell that ignored spellpower completely, and
was also one of the worst offenders for being universally desirable without
requiring any noticeable skill investment. Give it a power cap of 50 and a
short cooldown (which is also applied to evokable blink on randarts, but no
other methods of blinking - scrolls of blinking and forced blinks from
monster spells are unaffected). At full power the cooldown is reduced all
the way to zero.

--------------------------------------------------------------------------------
c1fbb6f34a | Nicholas Feinberg | 2021-10-23 16:22:37 -0700

Do some deep trolling (Sastreii)
New DTEM and deep troll shaman tiles, tweaked for better visibility.

--------------------------------------------------------------------------------
4d584c6bc1 | Kate | 2021-10-23 22:44:42 +0100

Rename a removed mutation
So that it doesn't have the same name as an existing mutation for wizmode
purposes.

--------------------------------------------------------------------------------
b99661e8b9 | Kate | 2021-10-23 22:44:42 +0100

Fix a wispform typo

--------------------------------------------------------------------------------
a01ba6cf96 | Kate | 2021-10-23 22:44:42 +0100

Don't make -Potion duration display as a mutation
Moves the display for lichform's inability to drink potions to the form's
list of innate fake mutations - possibly these should be extended to allow
marking a form mutation as good/bad to determine colour, rather than
special-casing bad mutations with colour tags.

--------------------------------------------------------------------------------
5ef96339b7 | Kate | 2021-10-23 22:44:42 +0100

Make Inner Flame smite targeted (perryprog)
Inner Flame was strong but often a little fiddly to use - making it smite
targeted allows it to still be used with foxfires blocking line of fire,
for example.

Closes #2175 (and implements the change slightly differently, with the
beam/zap still kept so that it can be used elsewhere).

--------------------------------------------------------------------------------
fe11b99a14 | Kate | 2021-10-23 22:44:42 +0100

Let player hexes set ally targets
As with direct damage spells, hexing a monster indicates that you probably
want your allies to attack it. Hibernation is kept as an exception, since
the player is more likely to want to stab themselves than to have their
allies try to do so.

--------------------------------------------------------------------------------
0812ffde7f | Nikolai Lavsky | 2021-10-23 22:44:09 +0100

fix: don't show Rage % when the player can't be affected by *Rage
Don't show the Rage chance on the character overview screen for
lifeless undead and for players with Clarity.

--------------------------------------------------------------------------------
20c1a8e840 | Aliscans | 2021-10-23 22:43:29 +0100

Shrink some overview screen labels to make them fit better
Reduce the width of the first column of labels from 9 to 8. This creates a 1 
character gap between the right edge of the Stlth field and the second column 
of labels.

Set the length of the Stlth, HPRegen and MPRegen labels using cwidth. This 
means that every field in the two label columns has its width set by cwidth.

Remove loops from _stealth_bar().

--------------------------------------------------------------------------------
47f3eba078 | Nicholas Feinberg | 2021-10-22 08:22:14 -0700

Add a spooky new halloween tile (Sastreii)
Not currently used for anything but could be fun for Maurice.

--------------------------------------------------------------------------------
841cac7204 | Nicholas Feinberg | 2021-10-22 08:09:07 -0700

Shatter Morrison's legacy (Sastreii)
New broken door tiles.

--------------------------------------------------------------------------------
ff097466f2 | Kate | 2021-10-21 17:09:34 +0100

Simplify sickness status display
It's a much simpler effect than it was in the distant past, and can just
be displayed straightforwardly instead of changing colour depending on
remaining duration. Also fixes it not being correctly displayed by potions
of cancellation.

--------------------------------------------------------------------------------
e4f7e7e258 | Kate | 2021-10-21 03:57:34 +0100

Adjust a distortion message
So that it doesn't overlap with the messaging for Lugonu's Bend Space or
translocation miscasts, which resulted in misleading message colouring by
default.

--------------------------------------------------------------------------------
1f2755edf2 | Kate | 2021-10-21 03:57:10 +0100

Give Bend Space a chance to blink monsters at the destination
Bend Space's power-dependent chance to blink and damage adjacent monsters
mostly acts as flavour and to slightly distinguish it from regular Blink.
To lean into this and Lugonu's chaotic nature a little more, let it also
blink monsters at the destination. Blinking monsters at the destination
also has the added bonus of making it slightly less likely to end up next
to a hostile creature.

--------------------------------------------------------------------------------
5bcc4f242e | Kate | 2021-10-21 02:25:10 +0100

Remove an obsolete parameter

--------------------------------------------------------------------------------
ad6df49e81 | Kate | 2021-10-20 01:23:27 +0100

Make the player immune to their own Noxious Bog
The spell's utility was previously very heavily dependent on whether the
player had easy access to flight. Make it a little easier to use without
needing access to flight, since it already does have strong restrictions
on where it can be cast in the first place. (This can also technically be
used to gain immunity to monster-cast sludge, which is probably fine.)

--------------------------------------------------------------------------------
e46a2d6e3a | Kate | 2021-10-20 01:23:27 +0100

Fix spacing

--------------------------------------------------------------------------------
a55568f2eb | advil | 2021-10-19 17:51:19 -0400

lint: checkwhite -a

--------------------------------------------------------------------------------
42619f35cc | advil | 2021-10-19 17:50:58 -0400

docs: MSYS2 install tweaks for python issues
The main contentful change here is to be consistent about using the
binary name `python3` instead of `python`. The reason for this is that
apparently these days `base-devel` forces install of the `python`
package as a dep of various things included in it, and we also install
the `mingw-w64-x86_64-python` package as part of that toolchain. Having
the latter installed (which uses the `python3` binary name) seems to
break regular `python` in current MSYS2 versions, because when you load
`python` the python path (as seen in `sys.path`) gets set wrong, to the
mingw toolchain version. Because of this it fails to load any c libs due
to binary incompatibility (`math` being the one that shows up when
trying to import `yaml`).

Anyways, this confusing situation doesn't actually impact building
crawl, because the build steps themselves already use `python3`, it just
means this step that was supposed to check `yaml` was producing an
error. The situation is possibly an outright MSYS2 bug, though I'm not
entirely sure where to report or ask about it. Because the build
actually works fine as-is, I don't think any deeper change is merited on
our part (e.g. uninstalling one or the other python, each of which is a
dep to a corresponding version of gdb).

This commit resolves #2195, which proposed a less direct workaround for
getting an attempt to import `yaml` not to crash.

--------------------------------------------------------------------------------
5d44ed7e61 | robertxgray | 2021-10-19 22:22:58 +0200

Show gold for Gozag worshippers in small layout Also adjust Android permissions

--------------------------------------------------------------------------------
b91baff9cc | Nicholas Feinberg | 2021-10-18 21:06:12 -0700

Maybe fix an engulf bug

--------------------------------------------------------------------------------
66d609a797 | Nicholas Feinberg | 2021-10-18 21:03:36 -0700

Make living spells more reckless (causes bugs)
Allow living iceblast spells to target an adjacent player, removing
their regard for their own existence.

This probably causes some new bugs. I don't know what, but I suspect
there's something.

--------------------------------------------------------------------------------
4011e67c31 | Nicholas Feinberg | 2021-10-18 17:03:51 -0700

Put the last nail in the coffin (Sastreii)
New Crypt door tiles of all shapes and sizes. Dead cool.

--------------------------------------------------------------------------------
30a9fa1a03 | nicolae-carpathia | 2021-10-18 17:15:42 -0400

Add/fix synonyms for statue tiles, vault that uses them
Fixes the synonyms for the two new statue tiles, adds synonyms for
all the statue tiles that didn't have any, and adds the new tile
synonyms to dreamdust_ecumenical_altar_statues, which uses the
synonyms to make sure the two statues placed are identical.

--------------------------------------------------------------------------------
a8797d1ae1 | Nicholas Feinberg | 2021-10-17 21:19:34 -0700

Clear engulf after rising flame (Prakerore)

--------------------------------------------------------------------------------
d288e3ce45 | Kate | 2021-10-18 04:24:54 +0100

Clear engulf status when monsters swap places (Daunt)

--------------------------------------------------------------------------------
1ffa25e84c | Kate | 2021-10-18 04:03:29 +0100

Fix a header-build-tests error

--------------------------------------------------------------------------------
e885453c89 | Kate | 2021-10-18 03:59:30 +0100

Improve Yara's Violent Unravelling targeter
Display a message when aiming at a monster that can't be unravelled.

--------------------------------------------------------------------------------
182c74e625 | Kate | 2021-10-18 03:59:30 +0100

Make monster Injury Mirror dispellable
Monster enchantments are generally dispellable even if they're
divine/priestly in origin and undispellable on the player (see 8836bdb7d9),
but Injury Mirror had been missed from the updated list.

--------------------------------------------------------------------------------
48537fa010 | Kate | 2021-10-18 03:59:30 +0100

Remove an obsolete spell targeter

--------------------------------------------------------------------------------
3278d6a771 | Nicholas Feinberg | 2021-10-17 07:53:47 -0700

Take new Sastreii tiles for granite
Two new statue tiles.

--------------------------------------------------------------------------------
6a1b92adce | Kate | 2021-10-17 14:48:37 +0100

Fix Refrigeration and OTR targeters (Goratrix)

--------------------------------------------------------------------------------
c014c758b5 | Kate | 2021-10-17 14:39:43 +0100

Reduce some code duplication

--------------------------------------------------------------------------------
daf460b524 | Kate | 2021-10-17 02:07:26 +0100

Remove a duplicate #include

--------------------------------------------------------------------------------
47fb96b963 | Kate | 2021-10-17 01:51:07 +0100

Upgrade Corpse Rot and PoG targeters
Correctly handle corridors and adjacent walls for Corpse Rot, to show when
it has a chance of spilling out and when it's guaranteed to affect a cell.
Highlight squares that overlap for both portals in the Passage of Golubria
targeter, to make it visually clearer that they're two distinct target
areas.

--------------------------------------------------------------------------------
0a521eb1f5 | Kate | 2021-10-17 00:35:00 +0100

Adjust targeter_radius behaviour
Change a number of radius spell targeters so that the caster's tile isn't
automatically displayed as affected, unless it's actually a spell that can
affect the caster such as Static Discharge. For Battlesphere, also slightly
adjust the spell's behaviour so that the valid squares for recalling an
existing battlesphere are the same as the squares for summoning a new one.

--------------------------------------------------------------------------------
ee0c6bb3a6 | Kate | 2021-10-17 00:35:00 +0100

Add a spell targeter for Passage of Golubria

--------------------------------------------------------------------------------
50bfc30901 | Kate | 2021-10-17 00:35:00 +0100

Make Passage of Golubria's range scale with power
Passage of Golubria was one of the few remaining spells that ignored
spellpower completely, and was a desirable tool for anyone able to cast it.
To make it less useful with low investment, scale its range with
spellpower, from 2 at 0 power up to full LOS at 100 power. For practical
spellpower values, this results in range 4/5 with minimal skill to cast the
spell, and range 6/7 with more skill investment.

--------------------------------------------------------------------------------
6308e9f754 | Kate | 2021-10-17 00:34:56 +0100

Add a spell targeter for Corpse Rot

--------------------------------------------------------------------------------
db29cd8f73 | Kate | 2021-10-17 00:12:34 +0100

Make Corpse Rot create more clouds with higher power
Corpse Rot was one of the few player-castable spells that ignored spellpower
completely, and was also fairly awkward to make good use of despite the
strength of miasma clouds. Allow it to rot multiple corpses from a single
stack, and give it a power-dependent chance of creating an extra miasma
cloud per corpse in LOS. With high power and/or high numbers of corpses,
also allow it to spread out to radius 2, once all adjacent squares have
been filled with miasma.

--------------------------------------------------------------------------------
162e43154e | Nicholas Feinberg | 2021-10-16 10:17:14 -0700

Add a howler of a new tile (Sastreii)
New Bunyip tile.

--------------------------------------------------------------------------------
0e9bf3705b | Nicholas Feinberg | 2021-10-16 09:18:30 -0700

Clarify explore mode (venx)

--------------------------------------------------------------------------------
4c3c5a04a9 | Nicholas Feinberg | 2021-10-16 08:29:54 -0700

Add ?/ to the main menu
TODO:
 - Somehow show a proper response when regex searches (e.g. ?/M)
   don't find anything, instead of silently failing. (This works in
   local tiles and console, but not in webtiles.)
 - Tiles?

--------------------------------------------------------------------------------
c179e30c89 | Nicholas Feinberg | 2021-10-14 11:12:35 -0700

Let Discord wake sleeping monsters
Instead of leaving them unaffected. Seems simpler to reason about for
players.

--------------------------------------------------------------------------------
df75b09677 | Nicholas Feinberg | 2021-10-14 11:06:11 -0700

Simply divine tile changes (Sastreii)
New tiles:
- Angel
- Daeva
- Profane Servitor
- Pikel
- Goblin

--------------------------------------------------------------------------------
1651b1f1e0 | Kate | 2021-10-14 03:57:15 +0100

Update Pacification description
It was changed in ff9e726d5e to give full XP.

--------------------------------------------------------------------------------
144af121cd | gammafunk | 2021-10-13 13:11:13 -0500

feat: Roomify Vaults branch Desolation entries
Similar to what was done with 1b783e53 for Wizlab entries, move Vaults
branch Desolation entries into rooms. Add floor border to some entries
so they work better as Vaults rooms. This border won't cause any issues
for placement outside of Vaults (i.e. in Elf), so I'm not going to CLEAR
it outside of Vaults branch. One entry is a large diamond shape that
won't work terribly well as a Vaults room, so it has 0 weight only for
Vaults.

--------------------------------------------------------------------------------
df74fcfb57 | gammafunk | 2021-10-13 13:10:30 -0500

feat: Move Vaults branch Wizlab entries to rooms
Currently, Wizlab entries in the Vaults branch place through the normal
CHANCE method as minivaults, but non-room vault placement doesn't work
well in Vaults. These vaults routinely destroy parts of the Vaults
layout, making the room vaults placed by the layout less effective. In
the worst case, ghost vault rooms can be partially broken, releasing the
ghost vault contents into the level without player interaction.

This commit does for Wizlab entries the same thing as was done for ghost
vaults: give them a special tag and Vaults room generator that applies
the desired chance, placing the entries as rooms if the chance is
successful. We use the existing entries by modifying the setup function.
No layout changes were necessary to adapt these vaults into Rooms, but I
did clean up the decorations in mu_enter_wizlab_7 to be more Zot-like
and reglyphed and cleanup up a couple other vaults.
and making some slight changes to Wizlab entry vaults where necessary.

--------------------------------------------------------------------------------
a7a6a45411 | gammafunk | 2021-10-13 11:34:25 -0500

fix: Generalize a vault depth range
Use depth ranges that don't indirectly reference branch length.

--------------------------------------------------------------------------------
faba86c3f8 | gammafunk | 2021-10-13 11:34:25 -0500

feat: Merge door vaults maps
For the variations of door_vault placing in the Vaults branch, we
previously had separate vaults for these. Similar to to the ghost vault
merge done in 17de5e6, this commit merges the Vaults branch variants
into their parent vaults, adjusting the parent to have a ring of floor
tiles and the necessary tags.

--------------------------------------------------------------------------------
71136c5590 | nicolae-carpathia | 2021-10-12 13:07:34 -0400

Slightly improve documentation for vault ORIENT: statement

--------------------------------------------------------------------------------
66cdd625d7 | advil | 2021-10-12 10:05:19 -0400

fix: condense logging on webtiles connection timeout
Based on 7bb4a8268b, one thing I can say is that in Tornado 4+, when a
timeout finally reaches the point of closing out the socket, there can
be a really large number of async write Futures waiting to be failed,
that all get their callbacks triggered within a few ms of each other.
This situation in and of itself indicates some issues in our code, e.g.
one culprit apparently is lobby messages, which look to be really
inefficient and scale badly with the number of players on the server.
However, it seems possible here that the server thrashing conditions are
triggered by just too much logging in response to this sudden burst of
callbacks. I still haven't replicated any of this locally, so this is
all somewhat speculative. However, for exceptions indicating that the
connection is closed, now that I have seen some logging, I don't think
there's a huge need to keep the verbose logging on (it can always be
restored if I need more data).

This commit logs just the first one, and keeps track of the total number
of failed callbacks on connection end, printing that in the final close
message.  Regular exceptions will still be fully logged, if they happen.
This commit also adds correct handling for StreamClosedError in tornado
4.

--------------------------------------------------------------------------------
4eb62b627b | advil | 2021-10-11 22:30:09 -0400

fix: remove debug code
oops

--------------------------------------------------------------------------------
7bb4a8268b | advil | 2021-10-11 22:28:55 -0400

feat: more debugging info for Future exceptions
This is aimed at debugging CAO thrashing on disconnects, which I can't
replicate locally. This leads to extremely spammy debug messages when
this issue happens, so may need to be reverted, but this should be quite
rare in normal circumstances.

--------------------------------------------------------------------------------
7e9dba17c3 | Kate | 2021-10-11 00:04:19 +0100

Shorten some welcome messages
So that they'll fit on a single line in the message area.

--------------------------------------------------------------------------------
885e983cc2 | Kate | 2021-10-10 23:29:32 +0100

Update CREDITS.txt

--------------------------------------------------------------------------------
1c50d1d167 | Perry Fraser | 2021-10-10 23:28:39 +0100

Fix: redraw tiles when breath ability gained (#2142)
Before, until TilesFramework::update_tabs() was called, the tiles

abilities pane would not appear when receiving your first ability by way

of draconian breath. This amends that by calling layout_statcol when

Draconian maturity is reached.
--------------------------------------------------------------------------------
770bde8897 | Perry Fraser | 2021-10-10 23:28:26 +0100

Fix: don't list walljump twice in the ability pane while silenced (#2121)
Closes #2120.
--------------------------------------------------------------------------------
2b6bb2fd11 | Kate | 2021-10-10 21:33:44 +0100

Don't let grunt_zot_stairs_overgrown turn orbs of fire into oklobs
Fixes a Zot stair vault being able to turn any monster into an oklob if
it's standing in one of the spots where a valid plant used to be.

--------------------------------------------------------------------------------
0d26b95db6 | Kate | 2021-10-10 17:24:45 +0100

Let monsters use potions of brilliance

--------------------------------------------------------------------------------
ad9de1bfc8 | Kate | 2021-10-10 17:07:06 +0100

Don't let monsters read scrolls while unable to speak
Scroll-reading was prevented under silence, but not when engulfed or muted
by Zin recite.

--------------------------------------------------------------------------------
c2b38c0785 | Kate | 2021-10-10 17:07:06 +0100

Adjust some monster emergency spells
Remove Minor Healing and Invisibility from a few books that were already
quite full or where they weren't likely to be relevant (orc high priests,
sphinxes, and deep troll shamans lose Minor Healing, and necromancers and
the Enchantress lose Invisibility).

--------------------------------------------------------------------------------
33d3b24fc1 | Kate | 2021-10-10 17:07:06 +0100

Remove some unused handling for monster scroll use
Pacified monsters would in theory try and use scrolls of blinking and
teleportation, but the scroll use check also required them to have a foe
nearby, which would never be the case.

--------------------------------------------------------------------------------
e0297cdf13 | Kate | 2021-10-10 17:07:01 +0100

Remove Teleport Self as a monster spell
The timely follow-up to 9d39c9a61c - only Sonja, Prince Ribbit, and Maurice
were left using it, and for all of them it was still unlikely to be
particularly interesting to deal with.

--------------------------------------------------------------------------------
84cb2ea78e | Kate | 2021-10-10 01:44:07 +0100

Reduce the electrocution brand's chance to trigger
Electrocution highly overperforms as a weapon brand - not only is it rare
for monsters to resist it, its damage was high enough to compete with
multiplicative brands such as vorpal/freezing/flaming even on larger,
slower weapons. Reduce its chance to trigger from 1/3 to 1/4 per hit, to
make it slightly less of an obvious best choice.

--------------------------------------------------------------------------------
587649e3ce | Kate | 2021-10-10 01:44:07 +0100

Let LRD work on permarock walls
Since the main function of permarock is just to be indestructible, and LRD
no longer destroys walls.

--------------------------------------------------------------------------------
a6156daa3a | Kate | 2021-10-10 01:42:58 +0100

Make Demonic Touch's attack chance independent from str/dex
Give it a fixed 2/5 chance to trigger, rather than the standard str/dex
check followed by a 1/2 chance, since its damage is also independent from
stats and other bonuses. The aux attack still has to successfully hit the
target (and uses the normal tohit calculations), but should now be more
effective early, before the main draw of the vulnerability effect shows up.

--------------------------------------------------------------------------------
1f24579cd5 | Kate | 2021-10-10 01:28:55 +0100

Clarify pain brand description for Djinn
As with elemental staves, add to the description to indicate that
spellcasting skill isn't good enough to make use of pain weapons.

--------------------------------------------------------------------------------
d89666f14f | Kate | 2021-10-10 01:28:55 +0100

Allow training currently-useless skills with !XP
And also allow toggling the display of base skills/enhanced skills.

--------------------------------------------------------------------------------
6c90c26265 | Kate | 2021-10-10 01:28:31 +0100

Fix targeting not being reset on phantom mirrored enemies
Targeting was being reset on the caster instead of on the mirrored target.

--------------------------------------------------------------------------------
da0c5dcf31 | Kate | 2021-10-10 01:15:32 +0100

Fix a KMONS line in nzn_ghost_randoct
Looks to have been accidentally broken when the vault was refactored in
388b075d1f.

--------------------------------------------------------------------------------
e759d193ff | Santiago Acosta | 2021-10-09 23:53:25 +0100

Fix some Phantom Mirror bugs
Bug 1 is simple: When a monster casts phantom mirror on another monster,
the casting monster is unentangled/unconstricted. This behaviour is unintended,
as clearly, the monster being copied should be freed instead.

Bug 2 is more subtle: When a monster is copied, its constriction status is
not copied (as intended). However, the enchantment applied by BVC to indicate
direct constriction IS copied. This results (in tiles) in a graphical bug, where
the monster has the BVC icon, but can move around and act as normal.

Closes #2122.

--------------------------------------------------------------------------------
e5425f880d | Nikolai Lavsky | 2021-10-09 23:45:07 +0100

fix: add a usefulness check for Elyvilon's self-healing abilities
Without such check, it's easy to over-heal and waste piety.

Closes #2169.

--------------------------------------------------------------------------------
19d156f19b | Aliscans | 2021-10-09 23:45:07 +0100

Fix: Give useful notes when an ally dies.
Previously, the death of a unique ally would be marked with the note "Your ally 
 died". Insert the name of the deceased.

Closes #2133.

--------------------------------------------------------------------------------
500345e458 | MainiacJoe | 2021-10-09 23:45:07 +0100

Take note when a Ds is revealed as monstrous
[Committer's note: Monstrous status was tracked as a DGL milestone, but
wasn't conveniently visible from in-game. Closes #2125.]

--------------------------------------------------------------------------------
f509bdd586 | MainiacJoe | 2021-10-09 23:45:07 +0100

Take note when player prays at an ecumenical altar
In the morgue, it will be referred to as, "the altar of an unknown
god," since I've discovered that some players think the term,
"ecumenical altar" refers to an altar in the Ecumenical Temple.

--------------------------------------------------------------------------------
0446da8ef9 | nicolae-carpathia | 2021-10-08 20:48:43 -0400

Add some entries to miscname.txt
This includes entry messages for when you first arrive in
the dungeon, along with some new adjectives for the Orb
of Zot and also some new Halloween variants, which I hadn't
realized were even a thing. Also includes some new messages
for Hell effects. Fun times all around!

--------------------------------------------------------------------------------
0357d9c091 | nicolae-carpathia | 2021-10-08 16:48:35 -0400

Fix a Halloween typo, just in time

--------------------------------------------------------------------------------
4a3272bca7 | Nicholas Feinberg | 2021-10-08 11:26:41 -0700

Clarify Discord sleep failure (CarefulOdds)

--------------------------------------------------------------------------------
3c9886e45e | Kate | 2021-10-07 23:21:09 +0100

Add a missing comma (perryprog)
And a related compile check.

--------------------------------------------------------------------------------
4e9751bbfc | advil | 2021-10-07 17:41:34 -0400

docs: remove an obsolete sentence in options documentation
Since e74157ce7a5c and preceding commits, no artefact can be evoked in
the way that the removed sentence was alluding to.

--------------------------------------------------------------------------------
35d0774509 | Kate | 2021-10-07 20:33:17 +0100

Fix an off-by-one error

--------------------------------------------------------------------------------
1ca825e530 | Kate | 2021-10-07 19:37:03 +0100

Add a compile check for some aux attack handling

--------------------------------------------------------------------------------
e23450071b | Kate | 2021-10-07 19:32:26 +0100

Give monster draconians fixed colours per job
While the draconian colour/job system works better than it did on monster
demonspawn (since they're more noticeably differentiated by their breath
weapons), it still allows for a very large set of possible monsters.

Instead give every draconian job a single default colour when randomly
generated: white = stormcaller, green = monk, purple = shifter, yellow =
annihilator, black = knight, and red = scorcher. Pale and grey draconians
already don't randomly generate.

Vaults have been edited to stick to these combos, but in cases where the
vault is self-contained and based on a specific theme they can manually
override them (for example a fire-themed vault could place red draconians
of any job, or a conjurations-themed vault could place annihilators of any
colour, as long as the vault sticks to a single colour or job in each
case).

--------------------------------------------------------------------------------
7f772adbe3 | Nicholas Feinberg | 2021-10-07 11:14:23 -0700

Add Sastreii to the dev team
Welcome! 🎊 🎊 🎊

--------------------------------------------------------------------------------
baef9634d7 | gammafunk | 2021-10-06 11:44:22 -0500

fix: ghost vault logic
The ghost vault logic changes in 17de5e62 were partially incorrect and
messed up ghost vault placement. We need to have ghost vaults placing
outside of the Vaults branch always set a CHANCE, but not set CHANCE for
the Vaults branch. Furthermore ghost vaults exclusive to the Vaults
branch should only exist as so-called Vault rooms in the file
`vaults_rooms_ghost.des`. The vaults in this file have no set DEPTH so
that they never attempt to place as minivaults but are still selectable
by the `vaults_ghost` tag. However 17de5e62 had these vaults also set a
CHANCE, which caused this to be applied to a default depth of *all
levels*, even ones not included in the ghost vault range.  Furthermore
the conditional in `ghost_setup()` incorrectly didn't set CHANCE if the
`vaults_setup` argument was true, even for ghost vaults that placed both
in Vaults and outside of Vaults.

This commit fixes these issues. For Vaults exclusive ghost vaults in
`vaults_rooms_ghost.des`, we have them set a new `set_chance` arg for
`ghost_setup()` to false to prevent setting the CHANCE at all. The
vaults in this file thus only rely on the `vaults_ghost` tag to be used
(and only in the Vaults branch). This argument defaults to true, so
ghost vaults outside of this file will get their CHANCE set properly for
non-Vaults branches. Furthermore we give any such vault a CHANCE weight
of 0 specifically in Vaults. This prevents a ghost vault that places
both outside of Vaults (as a CHANCE vault) and inside of Vaults (as a
ghost vault room) from ever independently placing in Vaults branch as a
minivault via CHANCE.

--------------------------------------------------------------------------------
ad74161d1b | Kate | 2021-10-06 16:46:37 +0100

Don't crash on chardump after making tentacle attacks
Caused by adding a new aux attack type but not handling it in action count
displays, oops.

--------------------------------------------------------------------------------
539b0f7ac7 | Kate | 2021-10-06 02:29:16 +0100

Remove talons as a demonspawn mutation
Unlike the other body slots with multiple options (horns/antennae, and now
claws/demonic touch), there's no noticeable mechanical distinction between
hooves and talons, and hooves are much more demonic.

--------------------------------------------------------------------------------
7b6c64ccd2 | Kate | 2021-10-06 02:12:21 +0100

Add a demonspawn gloves slot mut: demonic touch
The demonic touch mutation grants an offhand touch attack which deals a
small amount of irresistible damage (not increased by skills/stats, and not
reduced by AC). At level 3 it blocks the gloves slot and also applies the
vulnerability status effect for a short duration.

--------------------------------------------------------------------------------
b5b0ca8da5 | Kate | 2021-10-06 02:12:21 +0100

Add a demonspawn cloak slot mut: weakening stinger
The weakening stinger mutation gives demonspawn a tail and a stinger,
granting a tail-slap aux attack. At level 3, it becomes large and sharp
enough to block the cloak slot, and begins to apply the weakness status on
hit (to all except undead and nonliving monsters).

--------------------------------------------------------------------------------
4e51291bfa | Nicholas Feinberg | 2021-10-05 16:44:15 -0700

Make berserk monsters break more doors
This is pure theme, but it feels right, you know?

--------------------------------------------------------------------------------
deb3d7f7b4 | Nicholas Feinberg | 2021-10-05 14:35:25 -0700

Supply Snake stone surfaces (Sastreii)
ssssssss

--------------------------------------------------------------------------------
ff9e726d5e | Nicholas Feinberg | 2021-10-05 12:05:35 -0700

Make Pacify give full XP
As with Banishment, Pacification is already something the player dedicates
significant resources to achieve - piety, mp, Invocations skill, a god...
Getting half XP feels bad, and there's no balance requirement for it, so
toss it.

--------------------------------------------------------------------------------
07eab104ef | Nicholas Feinberg | 2021-10-05 12:05:35 -0700

Remove portal mimics (hellmonk)
A little bit too cruel. Timed portals are a fun minigame; having a
chance of a no-prize isn't great.

I'll add some kind of mimics somewhere else someday, Hep willing...

--------------------------------------------------------------------------------
3e9935cbe5 | gammafunk | 2021-10-05 11:42:59 -0500

fix: Correct a lua syntax error (Sergey)
A bad search and replace, oops.

--------------------------------------------------------------------------------
cfc00ec14d | Nicholas Feinberg | 2021-10-04 22:11:34 -0700

Solve the problem of evil
Refactor away MH_EVIL to simplify the concept of holiness.

--------------------------------------------------------------------------------
6ae9c628c9 | Nicholas Feinberg | 2021-10-04 22:11:12 -0700

Fix monster sustain limit descriptions
'obsidian statue can sustain at most three...'
->
'The obsidian statue can sustain at most three...'

--------------------------------------------------------------------------------
3aaae7bc06 | Nicholas Feinberg | 2021-10-04 21:53:27 -0700

Don't color SH red while Petrifying?
Since, per 7dc2aef8cabe0b31, Petrifying no longer disables SH. (Petrified
does.)

I couldn't make the coloring work while testing, but hopefully it does.

--------------------------------------------------------------------------------
fe5b701de9 | Kate | 2021-10-05 01:08:41 +0100

Update some vault demonspawn
The Pan Orc vault previously used non-monstrous base demonspawn, and Wucad
Mu's monastery used monstrous base demonspawn. Re-stat the dummy demonspawn
monster to have similar stats to old monstrous demonspawn and put them back
in both vaults, reducing the number of other threats (knights, sorcerers
and high priests) in the Orc end vault to compensate for the more dangerous
demonspawn. Also restore these buffed demonspawn to the zombie spawn list.

--------------------------------------------------------------------------------
b65a5730ee | Kate | 2021-10-05 01:08:12 +0100

Give demonspawn corruptors entropic weave
Replacing their temporary malmutation, since there's a decent amount of
permanent malmutation in Pan anyway, and corrosion is a more immediate and
reliable threat.

--------------------------------------------------------------------------------
82a91f0f04 | Kate | 2021-10-05 01:08:12 +0100

Adjust demonspawn weapon sets
Greatly trim down the list of weapons in the weapon sets used by demonspawn
corrupters and black suns (keeping the same odds of them having a demon
weapon).

--------------------------------------------------------------------------------
b058677d0a | Kate | 2021-10-05 01:08:12 +0100

Remove monster icemail
As with Ozocubu's Armour, giving monsters extra AC that sometimes melts
isn't worth the extra complexity compared to just giving them the AC
unconditionally. Demonspawn stats have been adjusted in the previous commit
to be more appropriate per-class without the icemail bonus.

--------------------------------------------------------------------------------
10ef46f4bb | Kate | 2021-10-05 01:08:06 +0100

Simplify monster demonspawn
Monster demonspawn using draconian-style colour/job combinations was
flavourful but ultimately just made them overcomplicated, since base
demonspawn were mostly unremarkable and didn't provide very meaningful
distinctions other than monstrous demonspawn having much more health and
damage than the rest.

Instead remove all base demonspawn, and make each of the classed demonspawn
effectively have a fixed base type: warmongers are monstrous (extra health,
damage and 2 aux attacks); blood saints are infernal (rF+++, +3 AC and
AF_FIRE attacks), black suns are gelid (rC+++, +6 AC and SInv), and
corrupters are torturous (rN+++, +3 EV and 1 aux attack). They also all gain
increased willpower, since previously classed demonspawn were (presumably
unintentionally) inheriting the reduced willpower of their base type.

The old separate base/job tiles have been updated and merged together by
wormsofcan.

Demonspawn bands are adjusted to contain a single greater demon and 1-2
other classed demonspawn.

--------------------------------------------------------------------------------
249bb1af34 | advil | 2021-10-04 17:30:12 -0400

fix: use correct keymap context for level maps (Nasst)
This seems to have gotten lost in translation when this view was
widgetified in 08ff59a6b337511f. I guess that indicates how much people
actually use this feature.

--------------------------------------------------------------------------------
0edeeca3e2 | Kate | 2021-10-04 21:44:41 +0100

Tweak Call of Chaos effects again
Move berserk to the list of rare "backfire" effects, since allied monsters
are often spell-based, and the positive effects can already apply haste and
might separately (but it's fun to have at least some chance of sending
nearby demons berserk).

--------------------------------------------------------------------------------
9b3319b32b | Nicholas Feinberg | 2021-10-04 12:58:16 -0700

Don't let wandering monsters break doors
Reduce ambient noise.

--------------------------------------------------------------------------------
992ecb606c | Nicholas Feinberg | 2021-10-04 12:55:12 -0700

Break doors less often
To reduce incidental noise. 1/5 instead of 1/3 chance.

--------------------------------------------------------------------------------
388b075d1f | gammafunk | 2021-10-04 12:07:40 -0500

feat: Ghost vault adjustments
This commit expands the placement of a number of ghost vaults, allowing
them to place in Vaults as ghost vault rooms, and in some cases allowing
them to place in additional branches. It also adjusts monster and loot
placement for a few vaults. List of changes by vault:

hellmonk_ghost_happy_afterlife: Allow this vault to place in all
branches. It's pretty general, hence good to have in the set of simple
ghost vaults that can place everywhere. Replace the second potion with a
scroll. The former was itself a replacement for the removed ration, and
while two potions works fine thematically, so does the idea of having
good reading material for the afterlife. More loot variety is also nice.

nzn_ghost_randoct: Allow this vault to place in Vaults. Also revamp its
use of monster statues to consistently have a chance to place a relevant
statue everywhere it places. Use orange crystal statues for later depths
and retain its use of ice statue or oklob for Lair and earlier Dungeon.
Make the use of branch-specific "boss" monsters more consistent in terms
of how those are used along with multiple ghosts, so that we always have
the chance to have up to three ghosts, instead of this limit being lower
for some of the later placement depths. Refactor some of its
conditional code.

gammafunk_ghost_necromancy: Tweak its monster placement NSUBST to place
more at minimum, but with the same average and clean up a few monster
lists to pose a better threat for certain branches.

gammafunk_ghost_ooze: Allow it to place also in Elf, Vaults, Depths, and
Zot, choosing an appropriate slime distribution for each branch. Mix in
some of the debuffing eye monsters. This vault began with a specific
"death" theme using nothing worse than death oozes, but those are gone,
so just go with the more general theme of Slime Pits monsters.

gammafunk_ghost_mausoleum: Allow it to place also in Spider and Vaults,
using appropriate undead for those branches. Tweak the Zot derived
undead list to use only a few choice monsters.

biasface_ghost_orc_armoury: Add two good potion or scroll loot items
that places sometimes for D:14-15 and always for Vaults.

gammafunk_ghost_smash: Allow it to place also in Vaults and Depths.
Rework the good weapon equipment of the highest tier monsters to
sometimes include giant (spiked) clubs. Introduce fire giants, frost
giant, ironheart thundehulks, and iron giants, using them appropriately
in the later placement Depths.

gammafunk_ghost_wrathful_warriors: Allow it to place in Vaults. Tweak
the monster equipment so that ranged weapons aren't used, since Trog no
longer gifts launchers/ammo. Tweak monster lists to remove
ranged-specific monsters.

gammafunk_ghost_abyssal_escape: Allow it to place in Vaults. Improve the
equipment given to certain distortion wielding monsters. Remove the Ring
of the Hare as a potential loot item, as it now has no translocations
theme. Remove trees from vault border, so it can't be broken into
trivially. Mark the vault as `transparent` with the inner portions
appropriately masked as `opaque`.

hellmonk_ghost_big_iron: Allow it to place in Vaults and Crypt. Add some
intermediate upgrading of hat quality.

--------------------------------------------------------------------------------
08eb9380c9 | gammafunk | 2021-10-04 12:05:03 -0500

feat: Improve a monster weapon selection function
The function `dgn.monster_weapon` is used to give vault monsters higher
quality weapons appropriate to their function. Add one-handed and
two-handed classes for "warrior" and "knight" to allow vaults using this
function to specify the handedness of the desired weapon.  This is
useful when when the original monster always recieves a weapon of a
specific handedness, e.g. tengu monsters always have a buckler and
ancient champions always use a two-hander. Update a few ghost vaults to
use these new classes where appropriate.

--------------------------------------------------------------------------------
17de5e62ec | gammafunk | 2021-10-04 12:04:45 -0500

feat: Simplify Vaults branch ghost vaults
Currently for ghost vaults in the Vaults branch, we maintain separate
copies of existing vaults. This was done because Vaults branch ghost
vaults must be defined as so-called vault rooms that have special
tagging and, in some cases, changes to layout relative to the original
ghost vault. However in all cases this wasn't actually necessary, since
the original vault could have relatively minor modifications allowing it
to be uses as-is in both branches.

This commit merges the Vaults branch vaults back into the original
vaults, mainly by copying over any Vaults-specific monster and loot
definitions and by generalizing the ghost vault setup code to do any
required Vaults branch tagging and setup. We remove the
`vaults_ghost_setup()` function, and modify `ghost_setup()` to have a
boolean argument that performs any setup related to the Vaults branch
when the argument is true.

We also modify the terrain of these vaults to give more spacing near
areas that could create single square corridors should the vault place
as a Vaults room. In some cases this just adds a row of floor near the
vault entrance, but other vaults need an addition border of floor to
surround the entire vault. Transporter vaults are now marked `passable`
(for Vaults) and `transparent` with relevant sections masked with
`opaque`. The transparent/opaque masking isn't required, but helps the
layout code properly determine the vault's connectivity.

The ghost vault setup function is now documented. The ghost vault
guidelines will be updated in the future.

--------------------------------------------------------------------------------
d048e4c10b | gammafunk | 2021-10-04 06:55:55 -0500

fix: Rework the border of a ghost vault
In ebering_ghost_funeral_grove, the vault border is made of trees with a
destruction veto. This isn't revealed to players except when they
attempt to destroy the tree, which is spoilery. Additionally it has odd
gameplay side effects with respect to certain spell effects. This commit
adds a border of stone to the vault, retaining the use of trees for the
vault's interior, and removes the tree destruction veto. The vault's
theme still very much comes across with this change.

--------------------------------------------------------------------------------
afb812fb24 | gammafunk | 2021-10-04 06:55:55 -0500

feat: Move a Shoals-only ghost vault to shoals.des
Part of a forthcoming reorganization of ghost vaults. Now
dat/des/variable/ghost.des is for ghost vaults that place in multiple
branches. Similarly to how we handle other vaults, any ghost vaults that
place in only one non-Dungeon/Depths branch go in the respective branch
file.

--------------------------------------------------------------------------------
9f6c0e134a | Kate | 2021-10-04 03:12:00 +0100

Simplify Call of Chaos
Greatly reduce the number of effects it can apply, to slightly reduce the
interface burden of having to check lots of monsters for different status
effects.

--------------------------------------------------------------------------------
aa1e17a07e | Kate | 2021-10-04 03:09:31 +0100

Adjust Plane Rend and Forceful Invitation
Tweak both branch-based summoning spells to be more distinct and to summon
better threats. Remove Lair and Orc as options from Forceful Invitation,
remove all the Lair branches from Plane Rend to focus it on the deeper
branches, and adjust a number of the summon sets for both spells.

--------------------------------------------------------------------------------
8e0189d5dd | Kate | 2021-10-03 23:05:21 +0100

Make Zin and TSO more effective at cleaning up blood

--------------------------------------------------------------------------------
6fc52098c6 | Kate | 2021-10-03 22:08:30 +0100

Reword an unequip message

--------------------------------------------------------------------------------
cf4520f741 | Kate | 2021-10-03 22:03:23 +0100

Disable more unrand-created allies when allies are forbidden
So that reaping from Zonguldrok and demons from the obsidian axe are
consistently blocked under both Ru's Sacrifice Love and Okawaru's no-allies
conduct.

--------------------------------------------------------------------------------
20facfdd61 | Nicholas Feinberg | 2021-10-03 09:44:27 -0700

Disable Zonguldrok reaping under Oka (dilly)

--------------------------------------------------------------------------------
333b8329f1 | Nicholas Feinberg | 2021-10-02 20:35:27 -0700

Re-randomize energy temporarily
While we continue discussion. We'll hopefully remove it again in a
little bit.

Reverts c20955654e95f046d01c06ff82ebef2e971ceded.

--------------------------------------------------------------------------------
d698ae2ba6 | Nicholas Feinberg | 2021-10-02 20:00:55 -0700

Clarify Battlesphere description (kab)

--------------------------------------------------------------------------------
c2ca4e2432 | Nicholas Feinberg | 2021-10-02 16:33:20 -0700

Refactoring

--------------------------------------------------------------------------------
bdb9d174a4 | Nicholas Feinberg | 2021-10-02 13:46:38 -0700

Break doors
In certain circumstances, it's possible for players to door-dance,
repeatedly closing doors in the face of an enemy who then opens the
door, etc. This allows the player time to heal and gives a decent
chance the enemy will simply forget about them. There's already a
chance for doors to creak, creating noise, but this has a very
limited impact on the tactic.

To weaken this somewhat (in context of recent changes to random
energy), give a 1/3 chance of doors breaking whenever monsters open
them. This turns them into 'broken doors', which can be re-locked by
vault wardens but are otherwise useless. (If we simply destroyed the
doors, players would be incentivized to repeatedly open doors until
they broke in some circumstances in Vaults, to mitigate vault wardens.)

This should have fairly little impact on most players, but it sure was
a pain in the butt to make crude sprites for.

--------------------------------------------------------------------------------
c20955654e | Nicholas Feinberg | 2021-10-02 13:46:38 -0700

Remove random energy
Random energy has a long and dismal history. It was invented as a
means to discourage repetitive and boring play patterns (pillar-dancing,
door-dancing, break-dancing, etc), but signally failed to do so.
Instead, it obfuscated game mechanics, added situations that felt
'unfair', and generally kludged everything up.

It was a bold experiment, but it's been clear for many years now
that it's failed. Let's move on.

--------------------------------------------------------------------------------
0594cd7a83 | Kate | 2021-10-02 18:17:59 +0100

Prompt when trying to Drain Life with no valid targets
This could probably use a proper targeter, too.

--------------------------------------------------------------------------------
f117bdfcbe | Kate | 2021-10-02 17:54:14 +0100

Fix Drain Life tracer

--------------------------------------------------------------------------------
36912a808a | Kate | 2021-10-02 17:46:23 +0100

Fix Drain Life working on firewood

--------------------------------------------------------------------------------
98e7288b7f | Nicholas Feinberg | 2021-10-02 09:42:27 -0700

Fix piercing allies (dilly)
98ec5579a34455a245d inadvertently disabled piercing for all allies
with beam-type attacks (lightning spires, merfolk javelineers, etc).

--------------------------------------------------------------------------------
a2639ab843 | Nicholas Feinberg | 2021-10-01 17:00:07 -0700

Power up a leggy boy (Sastreii)
New Gloorx Vloq tile. Did you know that Gloorx had spooky shadow
shoulder tendrils this whole time? I didn't!

--------------------------------------------------------------------------------
b15b5f7f7d | Kate | 2021-10-02 00:13:08 +0100

Adjust some demon resistances
Remove rPois from hell hounds, as with all the other demons that are
closely related to living creatures, and give hell hogs fire immunity.

--------------------------------------------------------------------------------
717728bcc0 | Nicholas Feinberg | 2021-10-01 09:17:22 -0700

Restore treeform rTorm
Broken by 662dcd36ddf41f5a366a00f7f19567d347cff114 .

See comment about some issues here.

--------------------------------------------------------------------------------
b193047a1f | Kate | 2021-10-01 01:57:06 +0100

Tweak wording

--------------------------------------------------------------------------------
6b7ffc0d7b | Kate | 2021-10-01 01:46:25 +0100

Fix Pacification working on sleeping undead
Caused by 70bc44f8 changing the pacification check to look specifically
for the "sleeping" status (applied to natural, holy and demonic monsters),
but not the "dormant" status (applied to undead, nonliving and plant
monsters).

--------------------------------------------------------------------------------
738fa26ca9 | Kate | 2021-10-01 01:46:25 +0100

Improve Pacification failure messaging

--------------------------------------------------------------------------------
d1ff7b2e8d | Kate | 2021-10-01 01:46:25 +0100

Make Elyvilon care about plants
Lets Elyvilon lifesaving work on plant allies, and lets Pacification work
on intelligent plants - most plants are mindless so still can't be
affected, but thorn hunters (animal intelligence) and shambling mangroves
(human intelligence) can now be pacified.

--------------------------------------------------------------------------------
399c192ba0 | Kate | 2021-10-01 01:39:43 +0100

Don't consider worshippers of good gods as innately holy beings
Separates out checks that should care about innate holiness (obtainable
only by being a literal angel, daeva etc) from things that should care
about whether something is merely a priest of a good god. Fixes some
theoretical weird edge cases such as nonliving monsters being also
considered holy if they worship a good god and for example, losing their
innate fear immunity as a result.

Ideally mon_holy_type should be further simplified and every monster (and
the player) would innately fall into exactly one holiness category, with
the MH_EVIL flag being separated out and handled elsewhere.

--------------------------------------------------------------------------------
b600878595 | Kate | 2021-10-01 01:39:43 +0100

Remove holiness restrictions from Intoxication and spores
The other existing limits on these abilities still make sense without them
them being usable on natural holiness only, so remove the holiness
restriction and make them a little more flexible.

Alistair's Intoxication now affects any intelligent monster that isn't
poison-immune, so can now affect many demons and holies, and intelligent
plants (which is currently only shambling mangroves), although these mostly
do have poison resistance so are harder to affect.

Spore explosions are now able to affect demons and holies, and still don't
affect unbreathing monsters (undead, nonliving, and plants).

--------------------------------------------------------------------------------
662dcd36dd | Kate | 2021-10-01 01:39:38 +0100

Don't give plant holiness monsters innate rN+++
Since plants are now a set of actual monsters instead of only decoration,
it feels odd that they're living creatures but can't be affected by
draining or negative energy. Remove their innate rN+++, but keep their
torment immunity (since it makes more sense that pain-flavoured effects
wouldn't work).

Other draining-flavoured effects that previously only worked on natural
monsters now work on plants, too - including Scythe of Curses miscasts,
vampiricism, and Ghoul health-on-kills. Withered plants in Crypt/Tomb keep
their rN+++. Firewood in particular remains unaffected by vampiricism, to
prevent decorative plants being available for free healing.

--------------------------------------------------------------------------------
070a2a64fb | Kate | 2021-10-01 01:25:43 +0100

Allow demons and holies to be feared/berserked
As part of an effort to reduce the number of effects that are restricted
to natural monsters only, to increase some of the distinctions between
undead/demonic/nonliving holinesses, and to allow some more flavourful
interactions.

Lore-wise, demons and holies are supposed to be of similar stock aside from
their god alignment, so are grouped together here. They're also established
to be like living creatures in a number of ways - they're generally
intelligent, can be poisoned, and have souls, so it feels appropriate for
them to feel emotions in some way and be able to go berserk and be feared.
(Importantly this also allows the zealot's sword to send divine allies
berserk, for any TSO worshippers who happen to find it.)

--------------------------------------------------------------------------------
2d0446b249 | Kate | 2021-10-01 01:21:04 +0100

Display torment immunity in monster descriptions
Since it's separate from negative energy resistance/immunity.

--------------------------------------------------------------------------------
575fbe42a6 | Kate | 2021-10-01 01:21:04 +0100

Let frenzy apply haste/might to all affected creatures
Previously it could affect creatures of any holiness, but only natural
holiness creatures were hasted/mighted. Instead make it work the same way
on any affected creature.

--------------------------------------------------------------------------------
544b704789 | Kate | 2021-10-01 01:21:04 +0100

Simplify mass enchantment handling
Remove a lot of old code for now-unused mass enchantments, and some old
assumptions about what can be affected. Should also fix messaging around
firewood when using a scroll of fear. This could still use some more
substantial refactoring ideally!

--------------------------------------------------------------------------------
5885fe61e5 | Kate | 2021-10-01 01:21:04 +0100

Rebrace

--------------------------------------------------------------------------------
7719699fd9 | Nicholas Feinberg | 2021-09-30 07:54:26 -0700

Upgrade ghost sewer tiles

--------------------------------------------------------------------------------
d7573fbb20 | Nicholas Feinberg | 2021-09-30 07:50:38 -0700

Fix sewer entry c tiles (12653, Majang)
Broken in 115e938b4e1d6.

--------------------------------------------------------------------------------
f77a47075d | Nicholas Feinberg | 2021-09-28 20:05:50 -0700

A few more minor doc fixes

--------------------------------------------------------------------------------
911e869b65 | Nicholas Feinberg | 2021-09-28 20:03:24 -0700

Update background creation guide

--------------------------------------------------------------------------------
c72452776e | Santiago Agustín Acosta | 2021-09-28 13:29:05 -0400

feat: improve archer description (#2164)
Improves the description given for for monsters bonus damage in 619f226:

the goal is to make it easier for the player to understand what damage

will be gone if they get the monster to stop attacking with ranged

weaponry, and to convey the damage bonus for thrown ammo as well as

launched.



[commiter's note: light commit message edits]
--------------------------------------------------------------------------------
173413878b | Nicholas Feinberg | 2021-09-28 08:29:57 -0700

Clarify *Rage desc (kate)

--------------------------------------------------------------------------------
fb8421d2c4 | Nicholas Feinberg | 2021-09-28 08:04:35 -0700

Revert: "Revert "fix: Clarity once again blocks *Rage""
Now that Chei doesn't give penance for getting mad, but instead only
gets even (see 2dc4ca50970f), we can once again treat berserkitis
and artefact rage as unintentional and let Clarity prevent it properly.
This matches player intuition ('clear thoughts' do seem like they
should prevent gettin real salty). Balance implications should be
minimal.

Reverts 35c06b56.

--------------------------------------------------------------------------------
619f226d55 | Nicholas Feinberg | 2021-09-28 07:42:08 -0700

Describe archer bonus damage
When a monster with the archer flag is wielding a ranged weapon,
show the bonus damage it gets from that in its description.

--------------------------------------------------------------------------------
aa5fe0c46d | Nicholas Feinberg | 2021-09-27 21:42:46 -0700

Make shard shrikes battify after shooting
The design intent was always for these lil guys to wander off
after hitting OR shooting, but I never bothered checking to see if
it actually worked. It didn't! But now it will.

This is probably a minor nerf, since they'll spend a couple turns
wandering around instead of hitting or shooting after they shoot you.
If players think they're too weak now, something can be arranged.

--------------------------------------------------------------------------------
ab23d0e057 | Nicholas Feinberg | 2021-09-27 21:22:20 -0700

Consider *Rage a bad prop
Randomly berserking is very likely to get you killed. It is funny,
though.

--------------------------------------------------------------------------------
4a18f0a723 | Nicholas Feinberg | 2021-09-27 21:21:37 -0700

Actually really remove +Rage
It was 'removed' but was still generating on randarts, resulting in
randarts with few or no props.

--------------------------------------------------------------------------------
4214526f7d | Kate | 2021-09-28 02:17:04 +0100

Rebrace

--------------------------------------------------------------------------------
9c95886402 | Kate | 2021-09-28 02:16:23 +0100

Don't place shafts in the Abyss with Rising Flame

--------------------------------------------------------------------------------
3153ac1ab2 | Kate | 2021-09-28 02:16:02 +0100

Cancel Rising Flame on abandoning Ignis

--------------------------------------------------------------------------------
18fa513841 | Kate | 2021-09-28 02:14:24 +0100

Mark amulets of faith as useless under Ignis
Since they have no effect. Also de-duplicate the code handling this.

--------------------------------------------------------------------------------
5d3631ad8e | Kate | 2021-09-28 00:43:42 +0100

Fix spectators having the wrong species

--------------------------------------------------------------------------------
34f850c0d2 | Kate | 2021-09-28 00:17:16 +0100

Make Okawaru Arena spectators into real monsters
Rather than vault renames of humans. Doing so allows fixing a few edge
cases - they have no attacks and give no XP, and can no longer be recalled
into duels by convokers, they're given higher HD so that they're more
likely to notice that a duel is happening if the player is very stealthy,
and they no longer appear in the monster list.

--------------------------------------------------------------------------------
0384439e04 | Kate | 2021-09-27 22:58:34 +0100

Spread out *Rage's randart weight slightly
With the removal of evokable berserk, *Rage had quite a high weight
compared to other negative properties - instead spread out a bit of its
weight to *Noise and Fragile.

--------------------------------------------------------------------------------
b1a8950f57 | Kate | 2021-09-27 19:13:53 +0100

Reglyph some snakes and eels
Move eels off ; and onto S, since they were the only remaining monster
using ; as the ancient "fish/water monster" glyph (and this frees up ; for
walking tomes). To make room for eels and also to improve visibility of
some other monsters, also shuffle around some colours:

Electric eel: lightblue ; -> lightcyan S
Sea snake: lightcyan S -> lightred S (for better visibility in water)
Lava snake: lightred S -> yellow S (for better visibility in lava)

--------------------------------------------------------------------------------
7ee5da7d44 | Kate | 2021-09-27 19:13:53 +0100

Replace a hardcoded number with its #define

--------------------------------------------------------------------------------
5a15c83aae | Kate | 2021-09-27 19:10:44 +0100

Display some attack flavours in the monster list
Specifically reaching, constriction and trample - chosen because they're
the three attack flavours that carry over to derived undead, and getting
information on which zombie out of a group of zombies has a certain attack
flavour is very awkward. For other attack flavours, players can at least be
sure that a certain tile or glyph represents one specific monster and so
will have one specific set of attack flavours, whereas derived undead are
only distinguished by size in console or body shape/genus in tiles, which
isn't sufficient to communicate what they can actually do.

Other ideas on how to better display this information would be welcome,
since this change on its own isn't enough to properly address the problem.

--------------------------------------------------------------------------------
207b005307 | nicolae-carpathia | 2021-09-27 08:17:00 -0400

Make edits to some vaults based on comments
Made some changes based on ebering's comments:
nicolae_coc_kraken_the_ice: change kraken undead to just simulacra
nicolae_coc_caroushell: set WEIGHT to 2
nicolae_coc_on_the_berg: mark fog machine origins with shallow water
nicolae_coc_wendigon: add {
nicolae_geh_tyrants_menagerie: remove hell hounds and narguns
nicolae_hells_demon_pit: branch conditions for demons
nicolae_hells_seeping_fissure: branch conditions for cloud types
nicolae_hells_slight_mixup: remove mismatched weapons, renamed to
  nicolae_hells_giants_party, made it oriented centre
nicolae_tar_fifth_circle: chance to place toxic bog instead of W

--------------------------------------------------------------------------------
ff8c9aff81 | nicolae-carpathia | 2021-09-27 08:17:00 -0400

Add Gehenna lava maze vault
This vault has enough subvaults that I gave it its own file. I think
this makes three files in /branches/ just for my own vaults.

Also there's a checkwhite in here somewhere.

--------------------------------------------------------------------------------
40b5bdf05a | nicolae-carpathia | 2021-09-27 08:17:00 -0400

Move multi-Hell vaults to their own file
Move vaults that are intended to place in multiple Hells into their
own file in /dat/branches/, called hells.des.

--------------------------------------------------------------------------------
c41377e160 | nicolae-carpathia | 2021-09-27 08:17:00 -0400

Add new vaults to Tartarus
new vaults. decor. encompass. monsteriferous. somehow, my willpower
to write this commit has been halved...

--------------------------------------------------------------------------------
4fe6ac43cf | nicolae-carpathia | 2021-09-27 08:17:00 -0400

Add new vaults to Cocytus
As before: cool new vaults of all kinds for the smaller new Cocytus.

--------------------------------------------------------------------------------
1f62ee5ebf | nicolae-carpathia | 2021-09-27 08:17:00 -0400

Add new vaults to Gehenna
Like the previous commit, a selection of decor, monsteriferous,
and encompass vaults for the new, smaller Gehenna layouts.

--------------------------------------------------------------------------------
5ae6719378 | nicolae-carpathia | 2021-09-27 08:17:00 -0400

Add new vaults to Dis
New vaults for Dis, designed to work with the new monsters and
smaller level layouts. Decor, monsteriferous, and encompass vaults
are all here.

--------------------------------------------------------------------------------
3bccd9ccbf | Neil Moore | 2021-09-26 18:19:18 -0400

Minor changelog fixes
[skip ci]

--------------------------------------------------------------------------------
4f1c8046e5 | David Damerell | 2021-09-26 13:53:42 -0500

Recite to the correct group (12652)
Commit 5f4c38d67a61b9ac2c9eef99dcee94b507b00502 changed
the ordering of items in enum recite_type but did not notice the
choice of sinners, sins, and virtues in zin_recite_text() is
dependent on this to, say, complain about amorphous wretches
in a RECITE_CHAOTIC.

[ Committer's note: thanks to stoat soup for the patch ]

--------------------------------------------------------------------------------
6f645e4c1d | Nicholas Feinberg | 2021-09-25 22:00:09 -0700

Rev up yaktaur tiles (Sastreii)
New Revenant, Yaktaur & Yaktaur Captain tiles. You would not believe
how much discussion there was about the revenant. LRD is a divisive subject...

--------------------------------------------------------------------------------
4b64996d49 | Nicholas Feinberg | 2021-09-25 21:55:30 -0700

Have ice statue, will travel (railbird80)
Don't claim that stationary monsters can travel through anything,
regardless of their habitat.

Arguably I should still display their habitat and use a different
word in place of 'travel', but I have a hard time imaginging when
it would matter.

--------------------------------------------------------------------------------
9f97627e2a | Kate | 2021-09-24 22:12:40 +0100

Move revenants from L to z
Since they're actual real spooky skeletons and can be affected by LRD,
move them to the glyph specifically for skeletons. Also tweak their
description to make this a little clearer.

--------------------------------------------------------------------------------
4d8ae7cab5 | Kate | 2021-09-24 22:12:40 +0100

Update some LRD colours
Match the monster colour directly for a few crystal monsters that had
different explosion colours.

--------------------------------------------------------------------------------
8885160007 | Kate | 2021-09-24 22:12:40 +0100

Give curse toes their own genus
It's funny for them to be technically liches, but not actually good for the
the theoretical case of a curse toe and a ton of liches coming into view,
which would previously have grouped them all together into a single "comes
into view" message.

--------------------------------------------------------------------------------
af8216a34e | Edgar A. Bering IV | 2021-09-24 15:31:23 -0500

fix: correctly display and apply Dis corrosion

--------------------------------------------------------------------------------
3bad584f25 | advil | 2021-09-23 18:06:04 -0400

tile: octagonal wizmode ability tiles from Sastreii

--------------------------------------------------------------------------------
4b98be1b05 | Nicholas Feinberg | 2021-09-23 13:35:56 -0700

Buff walking tome XP
Put em somewhere around lichen and titans, to match their intended
threat level.

--------------------------------------------------------------------------------
c9a36226f5 | advil | 2021-09-23 15:09:03 -0400

fix: tiles for wizmode terrain abilities
Apparently people don't like question marks in their GUI.

These break the octagonal ability tile convention, sorry. If someone has
interest in making these into octagons, feel free.

--------------------------------------------------------------------------------
f8e193620d | Edgar A. Bering IV | 2021-09-23 11:23:08 -0500

doc: update the changelog through 0.28-a0-524-g197395d739

--------------------------------------------------------------------------------
f0617a802e | Nicholas Feinberg | 2021-09-23 09:21:57 -0700

Fix a goofy message

--------------------------------------------------------------------------------
197395d739 | Nicholas Feinberg | 2021-09-23 09:06:12 -0700

Describe quicksilver bolt effects
In the spell description.

--------------------------------------------------------------------------------
0e5110bbff | Nicholas Feinberg | 2021-09-23 08:34:33 -0700

Make Tiamat's tile more visible (Sastreii)
"I'm a god. How can you kill a god? What a grand and intoxicating
 innocence..."

Also change her to SIZE_LARGE to match her new tile.

--------------------------------------------------------------------------------
4794fbc64e | Nicholas Feinberg | 2021-09-23 08:30:00 -0700

Galvanize Sastreii's Monster
Often incorrectly called just 'Sastreii'.

--------------------------------------------------------------------------------
115e938b4e | Nicholas Feinberg | 2021-09-23 08:12:54 -0700

Use new sewer tiles for sewer entrances
This is information asymmetry between tiles and console, but it looks
really cool. (Plus, ossuary entrances already do the same thing.)

--------------------------------------------------------------------------------
fb1784a141 | Nicholas Feinberg | 2021-09-23 08:03:50 -0700

Hack: fix threat values
2eadbcdadce4 made late-game monsters worth much less XP, which made
the game count them as unthreatening. This is unsound. Revert to the
historical threat values.

--------------------------------------------------------------------------------
bfeecf2fc5 | Kate | 2021-09-22 23:17:53 +0100

Give Blinkbolt a fixed LOS casting range
It previously had a variable range based on power (copied directly from
Lightning Bolt), but this was almost never actually relevant in practice -
raiju and spark wasps always cast it at range 7, Storm Form would almost
always have either 6 or 7 range for any character reasonably capable of
casting it, and beasts from the box of beasts would almost always have
range 7 except at extremely low power.

Instead of keeping these barely noticeable range variations, simplify the
ability and allow it to always be cast at full LOS range.

--------------------------------------------------------------------------------
36894cfc38 | Nicholas Feinberg | 2021-09-22 11:08:35 -0700

Nerf divine living tomes
Drop them from 3-5 living spells per cast to 2-3, same as other tomes.

Also fix descriptions for all living tomes being nondeterministic.

--------------------------------------------------------------------------------
4d5786efa1 | Nicholas Feinberg | 2021-09-22 08:59:59 -0700

Reduce javelin/boomerang generation
Throwing weapons are intended to be an auxiliary tool for players
to use tactically, not a primary 'killdudes' mechanism. They have
LOS range and strong damage, so it's very important that there is
a limited supply of these weapons.

Shoals in particular broke this assumption. Javelineer bands provided
huge numbers of javelins and boomerangs. Shoals generated more javelins
than the rest of an average 3-rune game put together (!), and nearly as
many boomerangs.

Now that monsters have unlimited ammo, reduce most monsters' ammo
generation considerably, along with a small tweak downward for random
ammo stacks. This should help keep ammo limitations relevant for a
3-rune game.

Urug and the Minotaur still get big javelin stacks, since that's their
special thing.

--------------------------------------------------------------------------------
5a36c9af25 | Nicholas Feinberg | 2021-09-22 08:36:50 -0700

Brighten up husks' disposition
Increase contrast vs swamp floor tiles.

--------------------------------------------------------------------------------
c05233ca19 | advil | 2021-09-22 09:07:26 -0400

fix: add some numpad bindings for the skill menu
Webtiles/console only (where the latter is extremely variable depending
on TERM settings, as usual).

Resolves #2117

--------------------------------------------------------------------------------
0d7ab7f379 | Nicholas Feinberg | 2021-09-21 16:32:20 -0700

An immobile stone gathers much moss (Sastreii)
New stone wall tiles for Swamp and Sewer.

--------------------------------------------------------------------------------
47465dbb04 | Nicholas Feinberg | 2021-09-21 16:22:53 -0700

Tweak orc weapon offsets again (ardl, gammafunk)

--------------------------------------------------------------------------------
960c72b710 | advil | 2021-09-21 10:27:04 -0400

fix: clean up failed crawl processes correctly in webtiles
I think this should fix the lobby in scenarios we see where something
goes very wrong with the webtiles server and the lobby ends up looking
like there are many duplicate games. What was happening is that if an
exception prevents the crawl process from starting altogether, the
cleanup code was also throwing an exception on this first logging call
because self.process was None. This prevented the inprogress file from
getting removed, and the webserver's ongoing game table from getting
cleaned up.

This will unfortunately make it *harder* to see when a webtiles server
is completely borked, so possibly something should be done about that. I
did add an error message to the player when this happens. (In the
process of adding this, I attempted to alleviate a race condition that
was preventing exit dialogs from being shown when a process never
started. Hopefully I did so correctly. Basically, multiple go_lobby
messages in close timing will wipe out an exit dialog if it's already
been shown.)

--------------------------------------------------------------------------------
cc94558de3 | Nicholas Feinberg | 2021-09-20 21:35:55 -0700

Reduce delay for top-end twohanders
It takes a ludicrous amount of XP to reach extremely high weapon
skill in Dungeon Crawl, which made the rare top-end weapons
(executioner's axes, lochaber axes and triple swords) hard to justify
using. These are intended to be very exciting items, so it's sad that
they ended up being 'traps' even for most characters that are interested
in using their weapon type!

In combination with the earlier XP curve changes, reducing delay by 1 aut
each should hopefully make these weapons more viable for use in 3-rune games.

New skill to mindelay:
- Executioner's axe: 	24 (was 26)
- Bardiche: 		24 (was 26)
- Sword sword sword:    22 (was 24)

--------------------------------------------------------------------------------
2e89a317aa | AdamPG | 2021-09-20 21:35:55 -0700

Reduce the experience cost of high-level skills
The cost of increasing a skill from 20 to 27 was more than the cost of 
increasing a skill from 0 to 20, making
training extremely high level skills (e.g. for level 9 spells or slow 
two-handed weapons) a poor investment for most
of the game. This commit makes the implicit quadratic-with-break-point formula 
explicit, and divides the break point
contributions to skill costs above level 9 by 2. This has the following 
implications:
* Skill costs up to level 9 are unaffected;
* The new cost of skill level 15 is half-way between the old costs of level 14 
and 15;
* The new cost of skill level 20 is approximately the same as the old cost of 
skill level 19;
* The new cost of skill level 27 is approximately the same as the old cost of 
skill level 25;
* The decreases in costs are roughly equivalent to a +1 increase in aptitude by 
skill level 23,
  and the impact is always smaller than a +2 increase in aptitude.

[Committer's note: code refactored.]

Closes #1733.

--------------------------------------------------------------------------------
2eadbcdadc | Nicholas Feinberg | 2021-09-20 21:34:01 -0700

Cut late-game XP
This commit reduces the total XP in a 3-rune game by about 20%,
overwhelmingly concentrated in late-game areas. D and Lair are almost
unchanged, while Zot loses about a third of its XP, for example.

This should help compensate for impending apt changes, and also generally
help with the late-game difficulty slump.

--------------------------------------------------------------------------------
902bb890a6 | Nicholas Feinberg | 2021-09-20 17:31:10 -0700

Flush some good art right down the toilet
Repurpose last commit's Swamp wall tiles for Sewer.

--------------------------------------------------------------------------------
c9b6b5e602 | Nicholas Feinberg | 2021-09-20 16:54:56 -0700

New Sastreii tiles (bloated husk etc)
Also included are some Swamp tiles, but those are currently unused -
I'm not sure what the best place to put them is. Maybe they should
replace the existing rock tiles?

--------------------------------------------------------------------------------
9ecc6377bc | Nicholas Feinberg | 2021-09-20 16:46:12 -0700

Update battlesphere description (ardl)

--------------------------------------------------------------------------------
2d6a64c10f | Nicholas Feinberg | 2021-09-20 16:46:12 -0700

Fix Gozag player ghost speech (Spaninq)
Oops!

--------------------------------------------------------------------------------
f79e20f00e | Nicholas Feinberg | 2021-09-20 16:46:12 -0700

Fix Sting effect tile (spaninq)
Oops!

--------------------------------------------------------------------------------
83f2989fac | Kate | 2021-09-20 02:14:13 +0100

Fix crashes when attempting to leave Zot
For games where Depths was generated in a broken version, fix up the
branch entry location for Zot and hopefully allow leaving the Zot again
without crashing.

--------------------------------------------------------------------------------
6c43a8f463 | Implojin | 2021-09-19 21:46:17 +0100

fix: allow unrand air enhancer stacking (#2134)
e08c5e17fd added an air enhancer to the amulet of the air, but unlike the

rest of the spell enhancers in the game, it didn't permit stacking this

with the elemental staff. This looks to me like an oversight rather than a

balance issue, (especially given that you could still stack the amulet with

a vanilla staff of air), so here's a fix.
--------------------------------------------------------------------------------
eef7685dc3 | Implojin | 2021-09-19 21:45:30 +0100

Fix missing MUT_NOISE_DAMPENING punctuation (#2141)

--------------------------------------------------------------------------------
121bc3e445 | advil | 2021-09-19 12:32:23 -0400

fix: branch entry depths for zot and zigs
This will ensure that zot entry actually generates. (I think it may also
cause a fix up for any games without it on depths 4? Not sure.)

--------------------------------------------------------------------------------
516edc7163 | advil | 2021-09-19 11:35:43 -0400

test: tweak a bunch of CI test output
* Remove the rng test, I think this is no longer needed
* Apply some indents in a few cases
* Remove most of the vault-related output; hopefully the failing seed
  number will be enough if this trips. This level of output was really
  from back when this test often failed.

--------------------------------------------------------------------------------
203a4d6027 | advil | 2021-09-19 11:35:34 -0400

fix: further update unique tests for shallower depths

--------------------------------------------------------------------------------
8b1ebaf2f3 | Nicholas Feinberg | 2021-09-19 08:17:04 -0700

...fix the build?

--------------------------------------------------------------------------------
613524ee8a | Nicholas Feinberg | 2021-09-19 07:56:32 -0700

Shift orc weapons 1px left
Feels better with their new beefy look.

--------------------------------------------------------------------------------
9bb89235eb | advil | 2021-09-19 10:33:11 -0400

fix: update fixup for depths portals to new values
Also, comment on the code duplication.

--------------------------------------------------------------------------------
e2d2658822 | Nicholas Feinberg | 2021-09-18 21:37:11 -0700

Fix the build
Oops

--------------------------------------------------------------------------------
98ec5579a3 | Nicholas Feinberg | 2021-09-18 21:34:48 -0700

Make allies avoid shooting you (Torax)
Use aimed_at_spot to have allies avoid hitting the player when they
miss their actual target. Keep enemy & neutral behavior the same.

It seems polite.

--------------------------------------------------------------------------------
3d4abc6862 | Nicholas Feinberg | 2021-09-18 21:09:52 -0700

Switch Sting back to its old tile
The poison arrow is way too big and fancy for a level 1 spell.

Partially reverts 3cb921fa598.

--------------------------------------------------------------------------------
c732d1d4b8 | Nicholas Feinberg | 2021-09-18 21:06:04 -0700

Make Abyssal Knights a bit dumber
Move 1 int into str and 1 into dex. They're no berserkers, but they're
still not particularly inclined towards spellcasting, and they're weak
enough that we might as will give them some slightly better suited stats.

--------------------------------------------------------------------------------
3788438092 | Nicholas Feinberg | 2021-09-18 21:04:35 -0700

Remove Tukima's Dance's power boost (hellmonk)
Recent changes (removing monster weapon delay, allowing Tukima's
Dance to affect ranged weapons) have made the spell much more
powerful. It no longer needs the power boost it got when I originally
rewrote it, so... let's toss it.

--------------------------------------------------------------------------------
a22a9363c6 | Nicholas Feinberg | 2021-09-18 20:59:18 -0700

Ban channeling when you can't cast (gressup)
Standardize and streamline.

It might be helpful to have extra messaging here when you enter
one of these states while channeling - it might be too easy to miss
right now.

--------------------------------------------------------------------------------
706b79e7bb | Nicholas Feinberg | 2021-09-18 20:41:13 -0700

Remove tarantellas' bite
Tarantellas are a perfectly fine monster and a great name pun, but
their theme is extremely misleading. If a spider bites you, you'd
naturally expect rPois to protect against the effects. But that's
not how tarantellas work!

Instead, make their attack a 'touch'. That should hopefully make their
behaviour a little more intuitive, though I expect some people will
still be surprised by the pure fact of them being spiders...

--------------------------------------------------------------------------------
2322c75162 | Nicholas Feinberg | 2021-09-18 20:36:22 -0700

Fix cloud targeters (CarefulOdds)
They can't actually hit stuff through transparent walls.

Broken since, god, 098d46cfcc740f maybe? Not sure, honestly.

--------------------------------------------------------------------------------
6302f7b1d6 | Nicholas Feinberg | 2021-09-18 20:25:47 -0700

Remove Depths:1 (mostly)
Recent changes to differentiate Depths from Vaults caused it to become
considerably more intense. That's not a bad thing! But 5 straight
levels of powerful intensity are a bit much. Let's draw it down to 4.

Vaults have mostly been adjusted, but I'm sure I missed a few.

--------------------------------------------------------------------------------
c45d5503f1 | Nicholas Feinberg | 2021-09-18 20:04:29 -0700

Clarify Conjure Living Spells desc
Specify which spells a given tome will create in the spell description.

--------------------------------------------------------------------------------
e8cdce0153 | Nicholas Feinberg | 2021-09-18 19:56:12 -0700

Plop walking tomes in Depths
Replacing the high tier deep elves, which still have plenty of other
places to show up (Elf, Vaults:5, many vaults, etc).

On average, looks like you'll see about two tomes per Depths.

--------------------------------------------------------------------------------
a443631078 | Nicholas Feinberg | 2021-09-18 19:42:29 -0700

Make Blink Allies Encircling drain energy (ardl)
Don't let enemies hit you on the same turn they get blinked encircling
around you. It seems excessively cruel to be hit by 5 guys who weren't
on screen the turn before.

--------------------------------------------------------------------------------
f8b08d3f47 | Nicholas Feinberg | 2021-09-18 19:42:23 -0700

Axe ironbound beastmasters
Ironbound beastmasters were a whole pile of cool ideas, none of which quite
panned out.

- They depended very heavily on their bands, which tends to work poorly
  (it's pretty common for monsters to get separated)
- They had some hacks to guarantee they'd only generate with bands, which
  broke monster queries and still didn't prevent them from getting separated.
- The effects of their spell was poorly communicated to players - the energy
  system is a very secret under-the-hood effect, unlike e.g. haste, which has
  a visible effect.
- They weren't tuned to the point of being very strong. (This is the most
  fixable issue.)

There was some discussion of replacing them with a summoner that calls and
berserks harpies and such, and we could still do that. For now, though, let's
roll back this experiment.

Partially reverts 0b001bae985.

--------------------------------------------------------------------------------
ea7fc97e4c | Nicholas Feinberg | 2021-09-18 15:42:34 -0700

Give orcs a workout (Sastreii)
New basic orc and orc warrior tiles.

--------------------------------------------------------------------------------
4d16425fc6 | Nicholas Feinberg | 2021-09-18 15:38:30 -0700

Add a truly thrilling trio (Sastreii)

--------------------------------------------------------------------------------
5baa6b73be | Nicholas Feinberg | 2021-09-16 19:17:31 -0700

Spider stone sprites (Sastreii)
SSSS
SSSS

--------------------------------------------------------------------------------
b47aa1321a | Nicholas Feinberg | 2021-09-16 17:55:39 -0700

Add a truly thrilling trio (Sastreii)
New tiles: zombie human, elf, and ogre.n

--------------------------------------------------------------------------------
0b43c73ce0 | Nicholas Feinberg | 2021-09-16 07:38:35 -0700

Fix Ignis invocation frames (Sastreii)

--------------------------------------------------------------------------------
0f06bd746f | Nicholas Feinberg | 2021-09-15 17:11:03 -0700

New zombie tiles (Sastreii)
Lizard and large and in charge.

--------------------------------------------------------------------------------
7dc2aef8ca | Nicholas Feinberg | 2021-09-15 08:03:36 -0700

Simplify Petrifying (dilly)
Don't consider petrifying creatures to be fully incapacitated. This
fixes a bug in which petrifying monsters couldn't shoot or throw
(though they could still cast spells, attack, etc). It also allows
all petrifying (but not petrified) creatures, monsters and players,
to block attacks with shields, which probably doesn't matter that much.

--------------------------------------------------------------------------------
535839065c | Nicholas Feinberg | 2021-09-14 17:37:22 -0700

Fix slime wall death message
Broken in e619aef00bffaae3f811d3ff97aa9ddea2c37f07. Oops!

--------------------------------------------------------------------------------
079b763570 | Nicholas Feinberg | 2021-09-14 17:24:39 -0700

Electrify cats and calamari (Sastreii)
Two new species-specific Storm Form tiles.

--------------------------------------------------------------------------------
50180c0d78 | Nicholas Feinberg | 2021-09-14 11:39:27 -0700

Storm Form player tile (Sastreii)

--------------------------------------------------------------------------------
27616f31e4 | Kate | 2021-09-14 18:26:12 +0100

Don't crash when failing to pacify nothing
Targeting empty space with pacification is allowed so that invisible
monsters can be pacified, but doing so still costs a turn to avoid leaking
information. However if the attempt to use the ability rolled a failure, it
would instead crash when targeting an empty space due to a missing
fail_check().

--------------------------------------------------------------------------------
5218f81949 | Kate | 2021-09-14 18:26:12 +0100

Adjust some randart names
Remove "of Battle" to avoid overlap with the unrand, and Australianise
some spelling.

--------------------------------------------------------------------------------
5de4b4396b | Edgar A. Bering IV | 2021-09-14 09:17:37 -0500

fix: give seracall its own beam name

--------------------------------------------------------------------------------
e8575c7553 | Edgar A. Bering IV | 2021-09-14 09:08:26 -0500

fix: restore berserk and confusion checks for evocables (12651)
The misc evokers had confusion (but not berserk) checks in their
specific methods, while wands had no checks at all.

--------------------------------------------------------------------------------
103e827438 | Edgar A. Bering IV | 2021-09-14 08:11:21 -0500

feat: replace hell contam with temporary mutations
In the game of one of these things is not like the other, the contam
hell effect produced permanent strategic damage, the other two produced
XP gated strategic damage. Contam hits a few more things other than
mutations (putting a brake on miscasts and preventing invis) but the
interaction with the mutation system is the noticable part in hell. At
the rate we'd like to apply hell effects, however, it gets to be a bit
much in terms of permanent damage. So let's try temp mutations.

--------------------------------------------------------------------------------
5e7bb1d84c | Edgar A. Bering IV | 2021-09-14 08:11:21 -0500

feat: slow down hell effects
Still trying to dial these in to a good place. The larger effects less
frequently make for spikes, which are more exciting (do I gamble and
press on I'm almost there) than smaller more frequent attrition.

--------------------------------------------------------------------------------
e2dae52223 | Nicholas Feinberg | 2021-09-13 21:06:00 -0700

Remove unthings
None of these placeholder monsters exist enough to even be used in
vaults.

--------------------------------------------------------------------------------
0687ed57fd | Nicholas Feinberg | 2021-09-13 12:26:56 -0700

New randart name
Specifically to break formatting.

--------------------------------------------------------------------------------
941f9de75c | Nicholas Feinberg | 2021-09-13 09:14:22 -0700

Reorganize Mlio
Since it no longer appears in Depths.

--------------------------------------------------------------------------------
6aa5aab5a4 | Nicholas Feinberg | 2021-09-13 07:57:04 -0700

Remove an antique "faith special case (hellmonk)
If you were at 15 piety or less when you removed the amulet of faith,
you wouldn't lose any piety. This was introduced in the very first
commit that added "faith, 5871154a2e, and has never really had a good
reason to exist. Simplify.

--------------------------------------------------------------------------------
2dc4ca5097 | Nicholas Feinberg | 2021-09-12 21:19:52 -0700

Make Chei chill out
Instead of being angry at berserk rage, just turn off the haste
(as Chei already did when you quaffed un-id'd !zerk).

In general, there aren't a lot of situations where divine penance
for actions is more fun than your god just shutting things off. This
(esp in light of recent changes to e.g. zerkitis) was no exception.

--------------------------------------------------------------------------------
91930fd77e | Nicholas Feinberg | 2021-09-12 20:11:38 -0700

Walking Tome tiles (Sastreii)
Book it!

--------------------------------------------------------------------------------
aa0f46ea79 | Neil Moore | 2021-09-12 21:33:22 -0400

Two new splash screens by KaoNedong
Licensed under CC0.  Source for the images: https://www.deviantart.com/kaonedong

--------------------------------------------------------------------------------
4afc6ae9f4 | Kate | 2021-09-13 00:20:54 +0100

Fix tag_upgrade compilation

--------------------------------------------------------------------------------
ce0acab4f2 | Kate | 2021-09-12 23:52:33 +0100

Replace Leech's *Rage with Harm
*Rage is a fairly severe downside and means the player should expect to
berserk in every combat, which heavily limits the chances of any items with
it from being actually used. It's very thematic on the Wrath of Trog and
necklace of Bloodlust, and the zealot's sword also has a unique (although
perhaps hard-to-utilise) interaction with berserk, but the other unrands
with *Rage could use different downsides to encourage still using them.

The hat of the Bear Spirit could use a new idea, but for Leech, replace
*Rage with Harm (and drain-on-unequip to prevent it from being freely
swappable). The only other use of Harm on an unrand is the robe of
Misfortune, so Leech's guaranteed vampiricism seems like a fun place to
encourage trying to work around Harm's downsides.

--------------------------------------------------------------------------------
cbfb7e9818 | Kate | 2021-09-12 23:52:23 +0100

Remove the Elemental Staff's Will++
Since it doesn't fit the elemental theme, and it's now a pretty strong
actual weapon on top of giving out a heap of resistances.

--------------------------------------------------------------------------------
b5e7e19f26 | Kate | 2021-09-12 23:25:36 +0100

Give the *Rage inscription its star back
Since the * is inscription-ese for "this thing triggers some random portion
of the time when x condition is met" (as with *Noise, *Slow, *Corrode).

--------------------------------------------------------------------------------
73f125ba1b | Kate | 2021-09-12 23:25:19 +0100

Remove an unused parameter

--------------------------------------------------------------------------------
0f1c06f14f | Kate | 2021-09-12 23:25:12 +0100

Fix compilation

--------------------------------------------------------------------------------
2fb25c9035 | Edgar A. Bering IV | 2021-09-12 17:10:28 -0400

feat: combine berserkitis and item Rage
The separate displays and (slightly) separate semantics for "go berserk
on melee hit" confounded the issue, especially since berserkitis'
chances are so small at low levels. This commit changes berserkitis to
simply grant angry percentage points, identical to other sources of
random berserk.

It does mean that berserkitis now works through clarity and causes
Cheibriados penance. This is consistent with the previous commits:
berserkitis only triggers on melee attacks, which are intentional. If
this is too severe some grace can be hacked in for Chei followers, but
the fraction of characters that will find berserkitis much worse than
they already do is tiny.

--------------------------------------------------------------------------------
e692aea802 | Edgar A. Bering IV | 2021-09-12 17:08:49 -0400

feat: remove evoked berserk, increase *Rage berserk chance
Step-by-step we have been cutting back on items that add active
abilities to the 'a' menu: even with the quiver these abilities are
often forgotten by players for ui reasons since they only come from
artefacts (+Inv is the remaing exception) so aren't frequently
encountered. A player can't forget to use a "passive" ego.

*Rage was meant as a bad property. With a 5% chance to berserk it was
small enough that one could take a swing here and there and not expect
to berserk (making it an unreliable source of zerk), but large enough
that a player trying to use it had to approach fights expecting to go
berserk in every fight.

This commit removes +Rage in favor of giving *Rage a greater chance to
trigger berserk, currently 20%. This leans into the "always be ready to
zerk", while being low enough that it's not a guaranteed immediate
berserk in desparate situations. The insrcription is changed simply to
"Rage".

When it comes to changing unrands:
- Leech and Bear Spirit might want lower (or 0) Angry values, but for
  now they both get the standard 20% for clarity;
- the necklace of bloodlust, which has a swap penalty and extra zerk
  powers, gets a 50% zerk chance
- the wrath of Trog, with its swap penalty, keeps its 50% zerk chance
- the Zealot's sword gets the standard 20% chance;

The chance contribution is shown in the item description, and the total
zerk chance is shown in the character overview if nonzero.

--------------------------------------------------------------------------------
d8b2e6da16 | Nicholas Feinberg | 2021-09-12 12:15:42 -0700

s/inflammable/combustible (FIQ)
Reduce ambiguity about the meaning of FIRE_VULN.

--------------------------------------------------------------------------------
a6d6528d93 | Edgar A. Bering IV | 2021-09-12 13:00:12 +0200

fix: clarify battlesphere description (12644)

--------------------------------------------------------------------------------
35c06b56df | Edgar A. Bering IV | 2021-09-12 12:59:05 +0200

Revert "fix: Clarity once again blocks *Rage berserk (Mantis 12640)"
This reverts commit 51f8dfeb475ed0e39ea3046524384fdaf5c92adb.

Commit 51f8dfe intentionally made *Rage on artefacts an intentional
source of berserk, as equipping the item and attacking in melee
is intentional, and otherwise Chei players could get access to penance
free berserk (the hates item code is only for generating the warning
prompt, penance comes from actually using it).

This revert clarifies the description of *Rage to make it read as
intentional source of berserk (like the potion or +Rage), which clarity
does not block. It also displays the items contribution to the berserk chance,
and makes these contributions linear so the probability is clear to
players.

--------------------------------------------------------------------------------
1f95980246 | Nicholas Feinberg | 2021-09-11 21:32:30 -0700

Clarify Ash wrath (JF)

--------------------------------------------------------------------------------
b986a403c0 | gammafunk | 2021-09-11 22:03:30 -0500

fix: Don't give cloud rings to friendly pan lords
Before this commit, friendly pan lords from the Pentagram card could get
cloud rings that would damage the player and their allies. Prevent this
by passing the necessary attitude information to the ghost demon code we
use to initialize pan lords.

--------------------------------------------------------------------------------
51f8dfeb47 | Seve Monahan | 2021-09-11 14:02:42 -0500

fix: Clarity once again blocks *Rage berserk (Mantis 12640)
516ec7 unintentionally caused *Rage to work on characters with Clarity.
This is because 'intentional' rage bypasses Clarity, and 516ec7 caused
*Rage berserks to be classified as intentional.

Since 911e812, *Rage artifacts have been classified as intentionally
hasty at all times. This has similar implications for Chei worshippers
as 516ec7 was intending (i.e, Chei worshippers can't use *Rage artifacts
without provoking penance). As a result, I do not believe any further
changes to the Chei/*Rage interaction are necessary.

--------------------------------------------------------------------------------
34660d7429 | advil | 2021-09-11 13:03:29 -0400

fix: improve SIGHUP handling in clua code on dgl builds
User lua that involved hand-rolled prompts could interact in a bad way
with SIGHUPs, prevent the game from ever properly handling the HUP.  The
following example based on long-time crash generator `ziggurnaut` is a
case in point:

    {
    function ready()
        force_prompt("asdf")
    end

    function force_prompt(text)
      while true
      do
        crawl.formatted_mpr(text)
        crawl.formatted_mpr("Type p", "prompt")
        res = crawl.getch()
        if string.lower(string.char(res)) == "p" then
          break
        end
      end
    end
    }

If the player disconnects at the prompt, the `while` loop runs in a
tight loop because getch returns immediately without a client, and the
loop never exits on its own, so the HUP isn't handled. The webserver
does detect this 10s or so later, and kills the process with SIGABRT, so
the issue isn't catastrophic, but it still is 100% cpu for that time
period and generates an annoying crash report in #crawl-dev. (For
reference, the best thing to do here on the current API would be to also
accept ESC (27) at any prompt implemented in a loop like this; getch
returns ESC on disconnects. Or just use crawl.yesno instead of trying to
write a custom one.)

This commit piggybacks on the clua throttle code to check for HUPs if
the throttle trips; if a HUP has been seen it immediately errors out of
clua code, which leads to a graceful shutdown of the process. It's
possible this could use its own separate hook (which would let it work
by default on non-DGL builds as well, and possibly be checked more
often), but the main problem here is on webtiles so I'm going with this
more minimal solution for now.

--------------------------------------------------------------------------------
1af55ca459 | advil | 2021-09-11 13:03:29 -0400

fix: don't allow c_message reentry
This hook is already pretty wild, given the arbitrary points where mpr
can be called from, but it's additionally very, very easy to trigger
recursion that would be infinite if it weren't for the lua stack limit.
Depending on what happens this recursion can be quite cpu intense as
well, even with the stack limit. This commit just prevents any recursive
triggering of the hook in a heavy-handed way.

(Overall, I find this hook quite worrying, and I suspect it still needs
substantial auditing.)

--------------------------------------------------------------------------------
8072b577e9 | advil | 2021-09-11 13:03:29 -0400

fix: step up lua throttle aggressiveness
On testing, a tight loop in ready() takes nearly 3 minutes to get killed
by this on a fast cpu, and does still have a noticeable cpu impact until
then -- I expect it'd be much worse on a busy server. This commit makes
the throttle kill scripts much more aggressively, and also, if ready()
in particular is killed by the throttle, keeps it from running again. If
this runs up against legitimate online use we can adjust, but I really
think it won't. I tested this on qw, and qw does trip the throttle but
never more than ~4 times in a row at the absolute max. So 15 is still
extremely conservative. It's possible that this could be tightened even
further: e.g. by starting the throttle time at something like 128ms
instead of 2, or by reducing the number of lua instructions this is
checked between (currently defaults to 50000 I think).

No impact outside of webtiles.

--------------------------------------------------------------------------------
b603f484b2 | Nicholas Feinberg | 2021-09-11 08:15:45 -0700

Scorch and Flame Wave tiles (Sastreii)

--------------------------------------------------------------------------------
e3cd3e9c68 | Nicholas Feinberg | 2021-09-10 20:00:27 -0700

Stoker tile (Sastreii)
I'm stoked. Are you?

--------------------------------------------------------------------------------
4cf4cd4993 | Nicholas Feinberg | 2021-09-10 10:08:01 -0700

Dial down tile_show_threat_level defaults
Only show on nasties by default.

--------------------------------------------------------------------------------
3d58a18ffd | Nicholas Feinberg | 2021-09-10 10:02:08 -0700

Ignis altar tile (Sastreii)

--------------------------------------------------------------------------------
3d5cecec24 | Nicholas Feinberg | 2021-09-10 09:15:51 -0700

Make a BIG removal
Remove SIZE_BIG, switching monsters into either SIZE_LARGE or SIZE_GIANT
as seems appropriate.

Following up on 7bd0902ce6cc84c6, we really don't need two sizes that
are 'bigger than any player race'. Is a yaktaur bigger than a centaur?
How does a spatial maelstrom compare in size to a fire dragon? These are
questions that we don't care about and shouldn't bother with.

This is a small buff to dragon form and maybe a nerf to something else.
Who knows.

--------------------------------------------------------------------------------
07589e2de0 | advil | 2021-09-10 11:58:17 -0400

fix: remove comma

--------------------------------------------------------------------------------
392f49ab0d | Nicholas Feinberg | 2021-09-10 08:40:45 -0700

Remove Okawaru Commander title (Graveyardigan)
Since Okawaru now prevents you from commanding anyone. Toss in
'Myrmidon' instead, shifting "Warmonger" one higher.

--------------------------------------------------------------------------------
579aff930e | Nicholas Feinberg | 2021-09-10 08:23:57 -0700

Refactor Ignis quiver logic (advil)
Allow quivering but don't do so by default.

--------------------------------------------------------------------------------
32eb216c14 | Nicholas Feinberg | 2021-09-10 08:22:35 -0700

Don't autoquiver wizmode abilities
Makes testing default quiver stuff impossible.

--------------------------------------------------------------------------------
e87aa7cc50 | Nicholas Feinberg | 2021-09-10 08:17:05 -0700

Default tile_show_threat_levels
Experimentally set tough and nasty on by default, in an attempt to make it
clearer to players when something spooky is headed their way.

--------------------------------------------------------------------------------
118590704b | Nicholas Feinberg | 2021-09-10 08:12:59 -0700

Ignis ability icons (Sastreii)
Might want to recolor these or Trog's at some point to avoid overlap,
but confusion doesn't seem very likely.

--------------------------------------------------------------------------------
c56ee47f37 | Nicholas Feinberg | 2021-09-10 07:59:22 -0700

Searing Wretch tile (Sastreii)
https://cdn02.plentymarkets.com/qozbgypaugq8/item/images/1625/full/PSTR-DOOM002.
jpg

--------------------------------------------------------------------------------
1448048969 | Nicholas Feinberg | 2021-09-09 11:18:36 -0700

Turn down Hell effects
Per popular demand.

- Contamination down 25% (from 4-8k to 3-6k).
- Stat drain down 33% (from 2-7 to 1-5).

HP drain is unaffected.

These numbers are still fairly arbitrary and remain subject to revision
in either direction.

--------------------------------------------------------------------------------
b8cf3755b2 | Nicholas Feinberg | 2021-09-09 11:13:25 -0700

Don't quiver Ignis abilities (various)
Too pricey, too easy to misfire. Womp womp.

--------------------------------------------------------------------------------
6657d4870c | Nicholas Feinberg | 2021-09-09 11:09:26 -0700

Nargun tile (Sastreii)
https://media.discordapp.net/attachments/747522859361894521/885578302797021234/S
chermata_2021-09-09_alle_19.31.21.png

--------------------------------------------------------------------------------
da42bb4400 | Nicholas Feinberg | 2021-09-09 07:46:38 -0700

Wendigo tile (Sastreii)
when do they call it wendigo when you wendy go the cold food
wendy go hot eat the food?

--------------------------------------------------------------------------------
d0eccab798 | Nicholas Feinberg | 2021-09-08 11:45:25 -0700

Dragon cleanup (Sastreii)

--------------------------------------------------------------------------------
b4fee303d0 | advil | 2021-09-08 14:17:11 -0400

fix: remove a book that required a lvl 1 hex
This book placement is not saved by ffd9c288d6fe because there's nothing
to reroll -- it'll crash unless there is a level 1 hex.

Could be replaced? But for now I'm just removing it to fix crashing
games.

--------------------------------------------------------------------------------
af36da5c11 | Nicholas Feinberg | 2021-09-08 07:38:10 -0700

New Cactus & Manifold tiles (Sastreii)
New tiles for the Manifold Assault and Summon Cactus Giant spells,
along with a new tile for the Cactus Giant itself.

--------------------------------------------------------------------------------
d71735cc25 | Nicholas Feinberg | 2021-09-07 15:54:29 -0700

Add Ignis altar description
Oops!

--------------------------------------------------------------------------------
d1dd6c5fb5 | hellmonk | 2021-09-07 14:04:56 -0400

feat: add an ambush vault to lair
It's called ambush because there am a lot of bush.

--------------------------------------------------------------------------------
0c02eea278 | Nicholas Feinberg | 2021-09-07 09:16:54 -0700

New Kobold tiles (Sastreii)
Goodbye, kobold vest. You will be missed.

--------------------------------------------------------------------------------
3dc288482e | Nicholas Feinberg | 2021-09-07 08:30:18 -0700

New zombie tiles (Sastreii)
Gnoll, orc, wolf, bear, hydras.

--------------------------------------------------------------------------------
01ebcbcbcd | sdynet | 2021-09-07 08:16:38 -0700

Simplify the ranger card
There are too many monsters with similar roles on this card. I want to cut out 
too many branches and leave only those who match the name of this card.
Modified Effect: Now it summon only these three(centaur warrior, naga 
sharpshooter, deep elf master archer).

--------------------------------------------------------------------------------
4da15c877b | John Stahara | 2021-09-07 08:13:11 -0700

Accurately order a comment with the variables it describes

--------------------------------------------------------------------------------
cae3918e47 | Perry Fraser | 2021-09-07 08:12:07 -0700

Improve Ratskin Cloak god interactions
[Committer's note:
- Don't allow the cloak to spawn rats that should hate you
  (hell rats under good gods, any rats under Oka or Sac Love)
- Unmark the cloak as evil.]

Closes #2102

--------------------------------------------------------------------------------
cf6c460519 | Nicholas Feinberg | 2021-09-07 07:59:26 -0700

Tweak Ignis wratch status msg (dilly)

--------------------------------------------------------------------------------
55a29874ef | Nicholas Feinberg | 2021-09-07 07:45:43 -0700

Make Scorch suitable for sauna use
Create steam clouds when it hits someone in water, for
consistency with other fire effects.

--------------------------------------------------------------------------------
de365fb1df | Nicholas Feinberg | 2021-09-06 13:39:49 -0700

Cut Storm Form power scaling 20%
It's a bit stronger than I intended at high power, partially because
I got the math slightly wrong when setting it up. Let's scale it back
somewhat.

--------------------------------------------------------------------------------
9c2f8b1708 | Nicholas Feinberg | 2021-09-06 13:15:01 -0700

Reduce Searing Ray power scaling
Searing Ray is a fun and distinctive early-game spell. However, with
the current damage values, it remains surprisingly effective well
into Lair branches, reducing the need to branch out into new spells.

To increase variety, let's keep the min damage the same while reducing
the max damage about 25%, from 3d7 to 2d8. (Fewer dice should also
increase variance, which is nice.)

--------------------------------------------------------------------------------
ffd9c288d6 | advil | 2021-09-06 14:02:57 -0400

fix: reroll spell schools for crashing hex books
After d4a3b56016 removed corona, there are currently no level 1 hexes.
The vault spec randbook generation code did not handle cases where a
vault spec could not find any spells at all, which happened for some
early randbook placements that tried to include a single level 1 spell,
if they rolled hexes after this change. This commit adds a somewhat
convoluted means of rerolling the book discipline(s) if the first try
fails. It does fix the version of this crash that I have replicated.

--------------------------------------------------------------------------------
bef64dd269 | hellmonk | 2021-09-05 23:53:28 -0400

Rework the flesh golem
This Cigotuvi wizlab monster is a reskinned iron golem, so it got buffed when
they did. While a wizlab-depth player can certainly deal with a slow 300 hp
monster, it feels pretty awful to have to do it. Lower it to ~100 hp and give
it corrupting pulse so it has something to do besides walk slowly at you.

--------------------------------------------------------------------------------
6a72785379 | Nicholas Feinberg | 2021-09-05 10:59:27 -0700

End Ctouch on hitting will∞ (Graveyardigan)
To save players who have made poor life decisions (e.g. casting
Confusing Touch when going up against a fire elemental), make
Confusing Touch end itself when you hit something that has infinite
willpower (and hence can never be affected).

--------------------------------------------------------------------------------
d4a3b56016 | Nicholas Feinberg | 2021-09-05 10:43:13 -0700

Make the hex 'Corona' monster-only
See discussion in cafe5c4f27db83f.

We may offer some compensation to arkane markspersons at a future date.
(Or we may decide they're fine as-is.)

--------------------------------------------------------------------------------
69098e2f6d | Kate | 2021-09-05 00:53:25 +0100

Shorten a vault shop name
It was too long to display the "What would you like to do?" shop prompt in
console.

--------------------------------------------------------------------------------
4bac719ec2 | Nicholas Feinberg | 2021-09-04 12:09:37 -0700

Don't let sp. servitors cast v weak spells
https://www.reddit.com/r/dcss/comments/phpjtn/

Also prune some monster-only spells.

--------------------------------------------------------------------------------
b337144f63 | Kate | 2021-09-04 19:30:26 +0100

Staticify a function

--------------------------------------------------------------------------------
d1960fc7b0 | Nicholas Feinberg | 2021-09-04 10:45:04 -0700

Make nonflammable trees block fire (ardl)
(But really people shouldn't be using nonflammable trees! Booooo)

--------------------------------------------------------------------------------
eb13ee3423 | Nicholas Feinberg | 2021-09-04 10:22:10 -0700

Maybe fix !cancel fly desc (particleface, shummie)
Don't claim that !cancel will remove permanent sources of flight
(e.g. items, species, etc) when you had some other actually dispellable
duration active.

--------------------------------------------------------------------------------
c0c42a9b79 | advil | 2021-09-04 10:57:45 -0400

build: improve messaging if `git describe` fails
This message was pretty cryptic and didn't cover one major case at all
(when `git describe --tags` fails because the repository is a shallow
clone). The new error is extremely verbose but hopefully provides much
better hints as to what went wrong.

This also adds a comment documenting a workround to gen_ver.pl. This
workaround seemed too niche to me to put in INSTALL.md, but maybe it
should be there?

See discussion in #2115

--------------------------------------------------------------------------------
e240ad9e29 | hellmonk3 | 2021-09-04 00:46:55 -0400

Merge pull request #2110 from crawl/delightfullyreddevilish
feat: rework red devils
--------------------------------------------------------------------------------
bc928eaac7 | hellmonk3 | 2021-09-04 00:36:00 -0400

feat: add six wizlab maps
Expand Crawl's wizlab offerings:

-Eringya's Formal Garden (removed in 0.17) returns with a modified layout, 

nastier archers, and the addition of some of the swamp monsters that have

been added between then and now.

-Tukima's Studio (also removed in 0.17) returns with a modified layout and

several brand-new monster types to complement the dancing weapons: 

walking tomes, which cast living spells that cast themselves at the player. 

Thanks to PleasingFungus for the monster concept.

-Yara's Duelist Academy features mana vipers, lots of warrior-mages wielding

antimagic weapons, and a fearsome semi-unique Head Instructor who likes to

dual-wield triple swords.

-Borgnjor's Mausoleum features both corporeal and incorporeal undead. Lost

souls occasionally appear when monsters are killed, making big fights scarier.

A cult of halazid warlocks serve as the final encounter.

-Maxwell's Workshop features an array of golems and big, meaty workers who

wield big, meaty maces. You'll find some of Maxwell's cast-off equipment here,

perhaps including the legendary artifacts themselves.

-Alistair's Party Mansion features an array of wizards and their bizarre

guests. There's some good consumables to be had if you don't mind crashing

the party of the century... and wading through statrotting clouds of 

degeneration.



In addition to the new wizlabs, this commit removes the golem set from the 

Tomb of Doroklohe (because it was mostly taken by Maxwell), so that map will 

exclusively place demons or undead now. The inner chamber of Iskenderun's 

Mystic Tower was also changed slightly; classed purple draconians will show 

up to make the end a bit more dynamic. With luck, we will soon have new 

tiles for the added maps and monsters, but until then you can enjoy some 

truly q u a l i t y art.
--------------------------------------------------------------------------------
0fcadc17a9 | Kate | 2021-09-04 04:14:10 +0100

Capitalise fruit
And remove some duplicate entries from the randart name database.

--------------------------------------------------------------------------------
1a7b1a870f | Kate | 2021-09-03 22:28:38 +0100

Remove the book of stone from vaults
Missed in the previous commit, oops.

--------------------------------------------------------------------------------
db61641bf8 | Kate | 2021-09-03 21:53:38 +0100

Make Bolt of Magma a monster-only spell
With the addition of Flame Wave, fire magic now has a very wide range of
mid-level attack spells (which fits the school's flavour), but Bolt of
Magma sticks out as one of the remaining old-style bolt spells and is much
less interesting than the newer spells around it. Even with it removed,
fire magic still is still more heavily weighted towards direct attack
spells than other elements. Earth magic also now has access to Borgnjor's
Vile Clutch at the same spell level, which fills a similar purpose but
again has a more interesting design. Lightning Bolt remains as a classic
bolt spell which has been more intentionally kept around due to the
bouncing behaviour fitting air magic's theme.

Some spellbook contents are shuffled to accomodate the change, and the book
of Stone is removed to avoid repeating too many spells.

--------------------------------------------------------------------------------
8d994e73c7 | Nicholas Feinberg | 2021-09-03 07:57:29 -0700

Probably fix flame wave crash (spaninq)
Off by one.

--------------------------------------------------------------------------------
4d1e82e741 | advil | 2021-09-03 10:25:05 -0400

fix: don't corrupt place_info on &ctrl-r in the vestibule
As usual, place_info handling is a complete mess and extremely brittle.
This crash could happen because the vestibule is a depth 1 connected
branch, so a fixup corrected levels_seen in files.cc before getting to
the wizmode handling for this field for this command, which assumed that
it was uncorrected. This commit adds a workaround on top of the fixup.
The fixup was originally created for a very specific bug but is *also*
necessary for `&ctrl-r` in the vestibule, because otherwise the
following assert crashes due to the branch depth. Possibly place_info
validity handling should be entirely rethought.

Resolves #2067

--------------------------------------------------------------------------------
142c4e0e00 | advil | 2021-09-03 09:30:39 -0400

fix: improve `auto_switch` behavior with two bad weapons
This makes the check on the current weapon and the target weapon
identical, following a suggestion in #2057. I was initially worried that
this would lead to further special cases but I think it's ok.

This commit also makes an item definedness check explicit, where before
it relied on `is_melee_weapon` to do the right thing.

Resolves #2057

--------------------------------------------------------------------------------
57a78d8006 | advil | 2021-09-03 09:16:10 -0400

docs: better document auto_switch=true
This is a clarification in response to #2057, though I won't immediately
close that issue.

--------------------------------------------------------------------------------
7265e17f22 | advil | 2021-09-03 08:43:40 -0400

fix: remove incorrect key handling for primary fire
Handling for `()Q` was incorrectly inherited from action_cycler.

Resolves #2083

--------------------------------------------------------------------------------
741b2176ff | robertxgray | 2021-09-03 11:22:54 +0200

Fix minor display error on stat loss This bug is specific to the small layout

--------------------------------------------------------------------------------
b254ac4902 | Nicholas Feinberg | 2021-09-02 21:21:18 -0700

Update the manual
For the foxfire -> scorch swap.

--------------------------------------------------------------------------------
4726060ac2 | Kate | 2021-09-03 05:14:22 +0100

Update options_guide

--------------------------------------------------------------------------------
c9e9834ff9 | Kate | 2021-09-03 05:11:55 +0100

Remove an extra character from Flame Wave desc

--------------------------------------------------------------------------------
0a9eca1c1b | Nicholas Feinberg | 2021-09-02 17:43:53 -0700

Update FE spell list
As part of the mission of increasing variety across games and
making backgrounds more of a 'starting kit' than a fully game-defining
role, make Flame Wave the new top end of Fire Elementalists' start
kit. Together with Scorch, Fire Elementalists should have a more fun
and varied early game while still wanting to branch out by the time
they reach Lair.

--------------------------------------------------------------------------------
f3a705cdda | Nicholas Feinberg | 2021-09-02 17:43:53 -0700

New Spell: Flame Wave (L4 Fire/Conj)
Flame Wave is a channeled spell (like Searing Ray) that blasts your
surroundings with ever-wider waves of flame. It's intended to be a
fun (and spectacular!) capper to the Fire Elementalist start.

Fact sheet:
- Max damage 10 + pow * 0.4.
- Channel costs 1 MP per turn.
- Can be channeled twice normally, for a max radius of 3.
  - Veh range extension allows a third channel at radius 4.
  - Noise starts at 12 (shout+) and goes up by 2 per turn.
- Burns trees (very efficiently!)

It would be nice to explain how Veh works in the spell description.

--------------------------------------------------------------------------------
79de503ca0 | Edgar A. Bering IV | 2021-09-02 11:46:17 +0300

fix: adjust hell effect strength
The timing reduction in the final balance got hell effects in about the
right place in terms of frequency, and contam in the right place for
quantity.

Drain was checking rN, which players carry a lot of. Instead
of turning it up to big number, this commit makes hell effect drain
ignore rN.

Stat drain was hitting with reasonable frequency, but the XP
available made it worked off easily. This commit increases the amount of
stat drained.

--------------------------------------------------------------------------------
0ad3c213c0 | hellmonk | 2021-09-01 22:41:33 -0400

feat: rework red devils
Instead of kiting (annoying), let red devils impede the player's movement more
directly by giving them a melee attack flavor that inflicts barbs if any damage
is dealt. They still spawn with polearms, so can use this to their immediate
advantage especially in groups.

--------------------------------------------------------------------------------
9e0c098162 | Nicholas Feinberg | 2021-09-01 15:14:13 -0700

Add Scorch to FE and CA
As discussed in the previous commit. Also push CA back toward spellcasting
stats - you'll have to start with melee for a level or so, but I'd like for
it not too be *too* hard to get Scorch castable.

--------------------------------------------------------------------------------
08d601b168 | Nicholas Feinberg | 2021-09-01 15:14:12 -0700

New spell: Scorch (L2 Fire)
Scorch is a damage spell that strikes a random enemy within 3 tiles, dealing
fire damage to them and (if it beats AC & resists) applying Cerebov's rF-
debuff to them for a few turns. Currently, it does 2d5 damage at 0 power,
scaling to 2d10 at 50 power. Veh extends range as usual.

Scorch is intended to provide additional variety to the Fire Elementalist
early game (reducing reliance on Foxfire) and to make Cinder Acolyte feel
more distinctive from FE by replacing its Foxfire entirely.

--------------------------------------------------------------------------------
33c4956463 | Edgar A. Bering IV | 2021-09-01 17:41:43 +0300

fix: further tweak the Manifold Assault desc

--------------------------------------------------------------------------------
937acc2988 | Edgar A. Bering IV | 2021-09-01 08:37:18 +0300

fix: clarify Manifold Assault description

--------------------------------------------------------------------------------
6a4b6a32f9 | Edgar A. Bering IV | 2021-09-01 08:32:55 +0300

feat: downgrade Fighters to a buckler
The starting kite shield on a Fighter was in a weird place. It had the
kind of very long term value that the recent changes to spellcasting
backgrounds have moved backgrounds further away from. It was completely
reasonable to put some enchant armour scrolls into it and use it
throughout the game. Unlike the aux armour of other backgrounds which
provide 0-1 AC at the start and 2-4 AC at best, the kite shield starts
out around 8SH and without enchants or increased dexterity rises to 13SH
with training; it is a significant portion of the user's defenses.

On the other hand, with the 0.27 change linearizing shield delay
penalty, the shield was a liability for normal sized races. The penalty
was sufficiently high that "remove your shield turn 1" advice
reappeared and was not unreasonable. This is unfortunate, as a starting
kit should ideally be useful at game start.

Given the above, lets replace the kite shield with a buckler. The
buckler will be worth using on turn 1, but any normal-sized heavy melee
fighter will want to find an upgrade... or consider a two-hander or an
alternate character archetype, depending on what drops. Races that
cannot use a buckler get a kite shield.

Currently this leaves the background description and manual intry as
is---both simply mention "shield".

--------------------------------------------------------------------------------
f8c7cfddd9 | gammafunk | 2021-08-31 22:03:27 -0500

feat: Despoiler loot and monsters in a Lair ending
For due_jungle_book, the thematic loot item guarded by the obsidian
statue is at a position where one had to step in view of the statue to
see the item at all. Additionally the statue is easy to autoexplore
into, and the area in which it resides is rather cramped for it to be
able to use its summons.

This commit encloses the loot item in a clear stone room with a clear
door, placing the statue in front. The room is visible from another room
usually encountered before the statue area. Hence the player can always
see basic information about the loot item before deciding to fight the
statue, and the statue itself will likely be seen and autoexcluded
before it's reached.

An additional bonus is that the loot item can't simply be apported
without fighting the statue, since the door must be opened first.
Finally, we clean up the terrain surrounding the statue to open up space
a little, allowing its summons to work better.

--------------------------------------------------------------------------------
84fbe2c6ea | hellmonk | 2021-08-31 22:44:53 -0400

fix: don't spawn an oklob vault as often

--------------------------------------------------------------------------------
46f4d3c346 | Nicolae Carpathia | 2021-08-31 18:53:19 -0400

Change a miniruin subvault for better wand placement

--------------------------------------------------------------------------------
b29a9eb848 | Nicolae Carpathia | 2021-08-31 18:53:19 -0400

checkin the whites

--------------------------------------------------------------------------------
5d38da674a | Nicolae Carpathia | 2021-08-31 18:53:19 -0400

Two new encompass vaults for Desolation
Two new encompass vaults for Desolation:
Pilgrimage, in which the three mini-ruin subvaults are
laid out linearly across the salt flats, and
Temple, which eschews subvaults entirely and scatters
loot around the outlines of an ancient crumbling temple.

--------------------------------------------------------------------------------
8f02261bec | Nicolae Carpathia | 2021-08-31 18:53:19 -0400

Add a handful of Desolation mini-ruin subvaults

--------------------------------------------------------------------------------
c8992b3357 | Nicolae Carpathia | 2021-08-31 18:53:19 -0400

New entry vaults for Desolation
Inspired by the famous report "Expert Judgement on
Markers to Deter Inadvertent Human Intrusion into the
Waste Isolation Pilot Plant", these entry vaults are
designed to suggest that the Desolation is not a place
of honor and no great deed is commemorated there.
Lower weights since they're big.

--------------------------------------------------------------------------------
4e71d33c19 | Nicolae Carpathia | 2021-08-31 18:53:19 -0400

Change the statue tiles used in Desolation
Statues are renamed to "ruined idols" in Desolation,
but the description says they've all had their
features removed, while the statues still use the
regular dungeon tiles, which have plenty of features.
After discussion in the discord, use the crumbling
column tiles for now for statues in Desolation.
At least they're featureless.

--------------------------------------------------------------------------------
963f628cec | Nicolae Carpathia | 2021-08-31 18:53:19 -0400

Rearrange the order of subvaults in Desolation
Put the paired intact/wrecked vaults in a separate
section from the unpaired singleton vaults. The
other arrangement was driving me bonkers.

--------------------------------------------------------------------------------
3674f0abaf | Nicolae Carpathia | 2021-08-31 18:53:19 -0400

Fix some subvault misconceptions in Desolation
The desolation_ruins_setup function called by
all the subvaults in Desolation doesn't need to
subst . = , - the main vault can't replace anything
in a subvault anyway. Also, subvaults don't need
ORIENT statements.

--------------------------------------------------------------------------------
e74157ce7a | advil | 2021-08-31 18:21:55 -0400

refactor: remove CMD_EVOKE_WIELDED
Until recently, there were only 3 holdouts that used this command, all
unrands. Previous commits moved those unrand evocations into abilities
in order to have a cleaner, more standardized, UI for them, leaving
nothing that uses evoke wielded. Based on past discussion, we are
unlikely to add anything that does use it, and item-specific abilities
are generally better. As part of this I've removed all the old stuff for
triggering reaching weapons via evocations; this was partly dismantled
already as part of the introduction of CMD_PRIMARY_ATTACK. For one-key
triggering of Olgreb (a common request), there are two recommended
solutions after this commit: quiver the ability and use `p`, or just
macro the ability like any other.

--------------------------------------------------------------------------------
28a71e5310 | advil | 2021-08-31 18:21:55 -0400

fix: add ability descriptions for dispater/asmodeus
Also, tweak the Olgreb description. This commit intentionally leaves the
artefact descriptions of these abilities in place (which lets them be
obvious while not wielding them).

--------------------------------------------------------------------------------
31e2066950 | advil | 2021-08-31 18:21:55 -0400

refactor: converk staff of olgreb evoke to an ability
As with the previous two commits, this lets a much more straightforward
version of the power be shown to the player. As part of this, I have
simply removed the fail check. This required 5 evo skill to get to 100%,
which is trivial; it originates from earlier versions of the staff that
could also cast venom bolt.

--------------------------------------------------------------------------------
b9327a18ab | advil | 2021-08-31 18:21:54 -0400

refactor: convert staff of dispater evoke to an ability
This allows for better transparency for the costs, more code reuse, etc.
I have provisionally converted the HP cost to a percentage, which
overall should work better for damnation. This is currently set at 10%,
and it may be a nerf to many characters at higher HPs. Further
adjustment might be required.

--------------------------------------------------------------------------------
3858e25e18 | advil | 2021-08-31 18:21:54 -0400

refactor: Convert Sceptre of Asmodeus evoke to an ability
This regularizes the interface to the sceptre, allowing nice things like
showing the fail rate, etc. The existing evocations check didn't fit
well into the more standardized ability.cc checks, so I've adjusted it
(I think this is a buff, but I'm not sure it matters -- anyways, others
can feel free to adjust further).

--------------------------------------------------------------------------------
b16ebcc8e8 | Edgar A. Bering IV | 2021-09-01 00:37:30 +0300

feat: don't place shafts in hell
The small levels and placement of hatches give a fast enough dive,
shafts are an ultra fast forward. We'll permit Fo to shaft in hells and
permit shafts in vaults for the hells, so that they can be used as
vault "loot".

--------------------------------------------------------------------------------
51d9a1de7a | Edgar A. Bering IV | 2021-09-01 00:37:30 +0300

fix: new hell mosnter description tweaks (PleasingFungus)

--------------------------------------------------------------------------------
46c4a727e1 | Edgar A. Bering IV | 2021-09-01 00:37:30 +0300

feat: update doom howl spawns

--------------------------------------------------------------------------------
4b270e8d09 | Edgar A. Bering IV | 2021-09-01 00:37:30 +0300

fix: describe stoker movement (dilly)

--------------------------------------------------------------------------------
5fa11ae2f9 | Edgar A. Bering IV | 2021-09-01 00:37:30 +0300

text: add some newlines (PleasingFungus)

--------------------------------------------------------------------------------
5d3d9a63fa | Edgar A. Bering IV | 2021-09-01 00:37:30 +0300

vaults: adjust Tartarus vaults for new monsters
Add the new Tar cast to the vault des. Some places shadow demons were
replaced with doom hounds, for the summon effect, and others profane
servitors for the "shadowy flavour". Most reapers are gone but a few
stick around as guests.

--------------------------------------------------------------------------------
4c841b28f7 | Edgar A. Bering IV | 2021-09-01 00:37:30 +0300

vaults: adjust monsters in Cocytus vaults
Some care was needed to make sure there's simulacra around for the
wendigo, but placing wendigo bands can take care of that when needed.

Otherwise, blizzard demons were replaced by titans or shard shrikes
depending on context, and several vaults were 098-ified.

--------------------------------------------------------------------------------
3d3c2c6d84 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: adjust Gehenna vault monsters
This adjusts all Gehenna vaults to use the new cast. Fewer changes than
the Dis vaults, mostly replacing sun demons with searing wretches and
sprinkling in some creeping infernos.

--------------------------------------------------------------------------------
2bde554b36 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: Dis end vault monster set adjustments
In line with the Dis changes, remove trash mobs and replace with the new
Dis cast. As with the non-end vaults, a few juggernauts sneak in as a
guest threat, and the cacodemons in the one grunt ending stick around.

Might have been too heavy with caustic shrikes on some of these.

--------------------------------------------------------------------------------
f8756136d3 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: adjust non-end Dis vault monsters and cleanup
Adjust monster sets of Dis vaults. When possible I tried to stick with
or switch to 098. When vault storyline demanded eg. a humanoid or a boss
monster one was chosen from the new Dis cast appropriately.

Occasionally some vaults desired slightly more variety, and juggernauts
get sprinkled in there. I'd considered putting them on the Dis spawn
table, but a few vault cameos seems to be better for them.

--------------------------------------------------------------------------------
3a40abb400 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: make hangedman_mysterious_dungeon_monster_house 098
Essentially. The generic undead are preserved (with some branch
flavoring so Cocytus wendigo have simulacra to collapse), and the
"fodder" placements are replaced with 09. The "boss" is specified to be
a top tier threat for the branch.

--------------------------------------------------------------------------------
8b58bad9cc | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new Cocytus spawn table
The icy hell, ruled by Antaeus, this monster set has a slightly more
cryptonatural feel, keeping with the "newness" of Cocytus in the lore.
The monster mix aims to beset the player with iceblasts, cold, and
status effects (much worse under -Potion)

This places the following monsters in addition to the cross hell threat set.

"basic" branch welcome monsters:
- simulacra
  Using the adjusted simulacra list, these simulacra either hit hard,
  are fast, or mess up player position (often two or more).
- freezing wraiths
  Somewhat on the weak side for hell, a lucky slowing hit goes much
  further when a player cannot obtain potion help.
- frost giants
  Lower tier colossus, following Antaeus' leadership.

"branch flavour" monsters:
- titans
  More of Antaeus' pals. Titans' airstrike is spooky in Coc's mostly
  open layouts, as is their flight over deep water.
- azure jelly
  Rarer, might be a bit too weak for its place, but a good cold monster
  with big ol hits.
- wendigo
  To help slower simulacra really nail the player, the wendigo can turn
  them into 3d43 iceblasts (one time only, destroyingn the simulacrum),
  in addition to having stunning burst and some strong melee. Wendigo
  are fragile and cannot fly, however, so they can be managed with care
  using Cocytus' terrain.
- nagrun
  Earth spirits who were here first and tolerate the new hell that was
  dug out around them. Petrification is much more threatening if it
  can't be cancelled, so these earth spirits come with it, plus AF_VULN
  to help it land.

"signature threat" monsters. Equal chance at max depth, otherwise more
shrikes
- shard shrike
  Basically TIE fighters with blue lasers. A player favorite.
- ice fiend
  The cold tier 1 demon.

--------------------------------------------------------------------------------
58b44f322d | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new Tartarus spawn table
The decaying hell, this monster set is out to bewitch the player and
drown them in foul miasma. Unlike other hells, because of the misma
quantity no living holiness monsters are added.

This places the following monsters in addition to the cross hell threat set.

"basic" branch welcome monsters:
- spectral things
  The generic late population is adjusted so that the spectrals that
  place should be a somewhat serious threat to the player, if they start
  to swarm.
- shadow wraiths
  Not very hard hitting, but AF_DRAIN_SPEED makes these a thematic mix.
- eidola
  Also not very hard hitting (could they gain dispell undead lol?) but
  with Tar's new Will/2 their Cause Fear has a chance at landing and
  constraining player movement.

"branch flavour" monsters
- profane servitors
  A monster from "elsewhere" repurposed to service in Tartarus. Some
  concern about this aura and silence aura being difficult to see in
  combination in console. They're a nice melee threat and combined with
  their aura a nice threat multiplier.
- bone dragons
  Big dumb hits. Thwacks. Tramples.
- putrid mouths
  Somewhat similar to ushabti, putrid mouths are a stronger melee threat
  in addition to the warning cry and miasma breath. They apply poison
  and stat drain fitting in with Tar's theme.
- doom hounds
  Definitely not spirit wolves. Everyone's favorite "summoner" monsnter.
- silent spectres (rarer, flat distribution)
  These are sprinkled in to fit with Tar theme and provide a unique
  tactical challenge. Much rarer than regular monsters.

"signature threats"
- tainted leviathans
  A C genus monster for tar. With mesmerisation to use the Will/2
  branch-wide effect, a miasma ring, silence, and large rocks, these
  giants are an all-around top tier threat.
- tzitzimimeh
  The branch's tier 1 demon.

--------------------------------------------------------------------------------
a5164bd282 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new Dis spawn table
The iron city, this uses a mix of new and classic monsters to beset the
corroded player with big hits (wham pow), metal splinters, and
prevent their escape with fetters and barbs.

This places the following monsters in addition to the cross hell threat set.

"basic" branch welcome monsters that fall off with depth and aren't used
for ood rolls beyond max depth:
- ancient champion
  Iron shot, haste, good hits. Currently they have skeletal warrior
  bands, perhaps that should change.
- war gargoyle
  Metal splinters and fast, but not tough.
- iron dragon
  Metal splinters and stronger melee than a war gargoyle, tougher as
  well. Unfortunately they're slow, so currently less frequent. Might be
  worth making them speed 10.

"branch flavour" monsters to fill out the regular threats:
- iron golem
  Buffed iron golems are hard to kill and hit really hard at normal
  speed, so it is not good to be next to them. That's easy to do because
  they're slow, but it does mean they might block an escape in the kind
  of layouts Dis generates.
- caustic shrike
  The pigeons of Dis. Recontextualize a top-tier depths threat as a
  regular friend in the iron city. Their corrosive attack stacks with
  the present Dis corrosion for maximum fun!
- quicksilver elementals
  At least one Dis castle places quicksilver dragons (good flavor, but
  not really strong enough for a Dis threat). These elementals are a
  cross between a quicksilver ooze, a qsd, and a shard shrike.
  Quicksilver bolt will remove some corrosion, but do you really want to
  keep one as a pet?
- crystal echidna
  Iron golems are slow, many other Dis threats are regular speed. To
  help everyone along these spiny green helpers have throw barbs, along
  with crystal bolt so they're not defenseless on their own. The cramped
  layouts of Dis should give them many bolt bouncing opportunities.

"signature threat" monsters (becoming equal chance at max ood).
- iron giant
  The classic C, with harpoons and iron shots and now hurling buffed
  iron golems (which get a swing on the turn they're thrown).
- hell sentinel
  The tier 1 demon of Dis.

--------------------------------------------------------------------------------
1c5eef2bd2 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new Gehenna spawn table
The firey hell, this uses new monsters along side classic favorites to
beset the player with fire storms, fireballs, and burn away their
resistance.

This places the following monsters in addition to the cross hell threat set.

"basic" branch welcome monsters that fall off with depth and aren't used
for ood rolls:
- hell hog
  The classic fast fireballing demon. Their fireballs hit enough to hurt
  and they swarm, but they aren't so tough.
- fire giant
  Increasing placement of 'C' genus monsters in hell is a lorebuilding
  exercise. Not as fast as hell hogs, stronger melee.
- salamander tyrant
  The highest tier salamander monster, recontextualized here in hell.
  Their lava spells work well in Gehenna's lava pool terrain.

"branch flavour" monsters that fill out the regular spawns in the mid
range and fall off for ood (but not as sharply as the cross-hell set):
- balrug
  Classic demon; subsequent changes to the other hells makes this one of
  the few non-fiend non-common demons appearing.
- searing wretch
  Resistance stripping melee threat.
- stoker (less common)
  Ranged, maintain range threat. In Gehenna's layouts corners are hard
  to comeby, and hiding from creeping infernos is a good deal trickier
  than dodging oods. Setting them off early is a possibility for the
  player, but comes at a cost.
- creeping inferno (less common)
  Like a lurking horror, but with Fire Storm.

"signature threat" monsters that fill out the ood weight. At depth 7
helephants are more common than fiends, and at the depth cap they have
equal chances.
- hellephant
  3d40 bolt of fire (ow!), trample, and blink. Tough but not too tough
  defenses. A good firey monster for the firey hell.
- brimstone fiend
  Every hell needs a thematic 1 and the brimstone fiends are the fiends for
  Gehenna.

--------------------------------------------------------------------------------
1c56b440e8 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: define a cross-hell spawn population
To unify the hell branches, this defines a population subtable that
produces "cross-hell" threats: a flat (falling off in ood range)
sprinkling of tormentors and hellions bringing suffering to the damned,
plus rare lichen making sundry unholy pacts.

Lore note: Lichen, having mastered life and death, are not minions of
hell or bound there. They're simply visiting. So we don't want to put a
ton in any hell, even Tartarus.

--------------------------------------------------------------------------------
cec1ff2907 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: enable a higher ood cap for hells
In order to let 098 pick out true nightmares without making each hell
6/7 roll oops all fiends, let's set an ood cap that we can work with.
Technically we lose a bit of expressivity at the deepest possible 8
depth, but I don't think that's needed.

--------------------------------------------------------------------------------
a084dd16cf | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: revise generic_late_zombie populations (nojaa)
The generic_late_zombie population is used for derived undead base
classes in areas where the player is expected to be quite strong. This
commit adjusts the way depth is handled by the picker so that the
population list has its own depth cap (independent of branch depth
caps). It also changes the monster selection to focus on derived undead
that are either fast or interfere with player movement or both, with a
few hard hitters for good measure.

--------------------------------------------------------------------------------
e6604a7e06 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: adjust derived undead attack flavours
This commit allows spectrals and simulacra to constrict and reach
(losing the flavor brand on that attack) and all derived undead to
trample.

These "physical" attack flavours mess with player positioning in various
ways; not including them on the higher tier derived undead made it
challenging to use those derived undead as serious threats.

--------------------------------------------------------------------------------
5587a7b593 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, nargun
Without cancellation pots, status effects are much more deadly in
Cocytus. Nargun are modelled after the Australian mythic stone
creatures, and are gargoyle-esque: they hit hard, have big AC, and a
threatening spell but weak HP. In this case they bring Petrify to the
mix, along with AF_VULN and a big HD to help it land. They are lrdable
and treated as icy.

--------------------------------------------------------------------------------
a7dcba2b6e | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, wendigo
Wendigo are a new Cocytus monster. They're somewhat flimsy and act as
threat multipliers, with stunning burst and a new spell seracfall.
Seracfall turns a simulacrum in view into a very high power (3d43)
iceblast. Cocytus will have plenty of simulacra around as part of the
overhaul, but many simulacra are slow. The wendigo "help" the simulacra
along in a couple of ways. The targeting also means that a player facing
a wendigo plus simulacra will have to manage LOF from several
directions as the simulacra advance.

--------------------------------------------------------------------------------
5a7b489cf3 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, tainted leviathan
A non-fiend top tier threat for Tartarus. Tainted leviathans come with
mesmerise and a cloud ring to pull players into. Oh! And they're giants
so they thro rük.

--------------------------------------------------------------------------------
0cc904eb20 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, putrid mouth
Putrid mouths are a new Tar monster, meant to be a more substatial (ha)
wraith genus monster to fill out the branch flavour set of threats. They
are based on Chinese mythology around hungry ghosts and re-use the old
hungry ghost tile since it was so cool. As a monster they aren't the
toughest of Tar threat, but the mix of miasma, poison, and warning cry
should combine with the small levels to prevent a player who mismanaged
the encounter from recovering before reenforcements arrive.

--------------------------------------------------------------------------------
6bad965b88 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, crystal echidna
Meant as a "support caster" type monster for Dis, crystal echidnas have
barbs (to confine the player's movement while slow things catch up) and
crystal bolt (to be a bolt-bouncing threat when they're met alone in the
cramped rooms of most Dis layouts). Crystal Echidna are nonliving and
explode like green crystal for LRD.

--------------------------------------------------------------------------------
e42411b9ad | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, quicksilver elemental
I considered simply using quicksilver oozes or quicksilver dragons in
Dis, as both are reasonably strong late-game threats. However both
dragons and oozes are vulnerable to some of the collateral damage done
to allies by hell minions. It seemed like a better idea to make a
monster in a genus that won't fall so easily to tormennts, since the new
Dis list already has its share of living creatures.

This monster is something like a cross between a quicksilver dragon and
a shard shrike, with batty movement and qs breath, though not as fast as
a shrike.

Not 100% happy with repeating the shard shrike gimmick, could instead
just make quicksilver oozes torment immune. (How does one torment a blob
of quicksilver anyway?).

--------------------------------------------------------------------------------
6bbbebb4f9 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: buff iron golems (amcnicky)
Iron Golems are slow, and slow monsters are often sad. Dis has iron
giants, which can throw them into range, which makes them more exciting.
Except they're also not that strong, and attack slowly to boot.

To make them a better Dis monster this gives them a big buff to their AC
and HP, the idea being that they are avoidable but will block a player's
manouverability. To make their obstruction to manouvering even more
pointed, they get buffed attack and a second attack, and attack at
normal speed. The normal speed attack ensures that (depending on monster
list sequencing) they get a good chance to swing at the player after
being thrown. Big big big ruk.

--------------------------------------------------------------------------------
a2eda6f88b | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, stoker
Stokers are a ranged harrassment and positioning threat in Geh. The
player can defeat one solo by setting off its own creeping infernos
against it, but in a fray this back-line threat should keep the player
off balance with wind blasts and inferno-firestorms.

--------------------------------------------------------------------------------
a95eead60a | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, searing wretch
A hard-hitting melee threat for Gehenna, searing wretches are ghoul
genus monsters that stack on fire, sticky flame and strip fire resistance. They 
are complementary to the other Geh threats, which all have some sort of ranged
component, and other than hellephants are a bit flimsy at hell depth.

--------------------------------------------------------------------------------
b7fef34776 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: new monster, creeping inferno
Creeping infernos are a new monster for Gehenna. Operating with lurking
horror move rules, creeping infernos unleash a power 120 fire storm at
their location upon death. The savvy player will be able to use them to
advantage, so we won't place too many, but the player caught off guard
will be exploded.

--------------------------------------------------------------------------------
751aad3b66 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: adjust Tartarus vaults for new hell levelgen
Fewer encompasses here, large vaults again get ORIENT: centre to keep
them from wandering off, stairs adjusted.

--------------------------------------------------------------------------------
8c116a9034 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: adjust Cocytus vaults for new hell levelgen
Similar to Dis, several of these vaults are very large and given ORIENT:
centre, one is turned into an encompass. Stair placement fixed up.

--------------------------------------------------------------------------------
ffef9bb0b2 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: adust Gehenna vaults for new hell levelgen

--------------------------------------------------------------------------------
0cff350621 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: add green crystal to Dis
While Dis is the Iron hell, it is also notionally earth/metal themed.
Moreover elemental iron can crystalize. So let's spice up the wall types
a bit. Currently this is accomplished by repurposing serial_glass to
place green crystal instead of glass. Other Dis specific crystal vaults
welcome.

--------------------------------------------------------------------------------
2e6bbc7fcc | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: adjust Dis vaults for new level generation
Several large Dis vaults disconnected the level and were practically
encompasses in their own right; they get promoted. Other large vaults
are given ORIENT: float or trimmed as need be to get them to play nice
with the new small levels. All stair placing vaults have their
placements adjusted for single stairs.

--------------------------------------------------------------------------------
e5be5493b6 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

vaults: revise miscelaneous vaults appearing in hell
This commit adjusts vaults that are defined in various files other than
the branch specific vault files. Vaults that are too large are removed
from hell spawning and appropriate conditionals for stairs are added.
Vaults that break connectivity (elevators) are also dropped from the
hells spawn lists.

--------------------------------------------------------------------------------
4708905124 | Edgar A. Bering IV | 2021-09-01 00:37:29 +0300

feat: only place one up and down stair in the hells
This changes the level generator to only place one stair in each hell
branch, as a complement to the previous change to level generation size.

This commit will currenlty break crawl due to the number of vaults that
place disconnected stair bubbles in Hell. Follow-up commits will be
adjusting hell vaults to account for all level generator changes.

--------------------------------------------------------------------------------
43dec93354 | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

feat: add error checking for some dungeon builder lua

--------------------------------------------------------------------------------
903cbe717e | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

feat: shrink Hell subbranches on floors 1-6
This commit converts hells layouts to use the new dgn.builder_bounds()
instead of dgn.max_bounds(), adding parameterization on grid size for
some procedural values that were previously hard coded.

The dive portion of the hells can be exciting, but quickly becomes a
slog if the player must make the dive a second or third time, due to how
the stairs work. By shrinking the levels we reduce the time a player
spends with unfun repetition and increase the time spent in "good dive
moments". A subsequent commit will reduce the number of stairs spawned
on each level to 1 guaranteed stone stair.

--------------------------------------------------------------------------------
9424aacb20 | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

feat: separate builder_bounds and max_bounds
This adds two stub functions dgn_builder_x and dgn_builder_y to allow
parameterizing the dungeon buillder's driving dimensions. Subsequent
commits will use these to shrink intermediate hell levels.

The assumption that GXM and GYM are constants is baked in across the
layout code, so layouts will be adapted to use the builder_bounds
gradually. Layouts switched to use builder_bounds will be tested for
support of various builder sizes.

--------------------------------------------------------------------------------
20ce1ca697 | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

fix: resolve a todo in zonify mapping

--------------------------------------------------------------------------------
bc17ff6ebb | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

refactor: move padded_bounds to a layout library
This function is used with the various omnigrid gridding functions to
put a bit of padding to allow the grid to expand into the edge of this
padding. There were two versions of it, one in layout_city the other in
layout_grids; layout_cellular was implicitly using one of them without
an explicit include.

This moves the function to omnigrid so that we have only one copy.

--------------------------------------------------------------------------------
43d0ba7266 | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

feat: shift timed hell effects to do more strategic damage
The effects of the hells serve two purposes. One is to spice up
encounters with tactical shifts: new monsters, noise, damage; the other
is to deal strategic damage. The previous commits added a branch-wide
effect to each hell branch to give them a distinct tactical flavour.
This commit shifts the timed-effects to do strategic damage to those who
would linger: contam, drain, and stat rot.

--------------------------------------------------------------------------------
e744962671 | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

feat: persistent hell effects: rot tartarus (Lici)
The third of four branch-wide hell effects, meant to give each hell a
unique tactical experience. In Tartarus, halve half willpower.

Ereshkigal has paralysis, and the new Tar monster set will have some will
checking monsters. Lets make it harder for the player to simply Will++++
item their way out of these concerns.

--------------------------------------------------------------------------------
6f13a9c4bf | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

feat: persistent hell effects: fill gehenna with acrid smoke
The third of four branch-wide hell effects, meant to give each hell a
unique tactical experience. In Gehenna, prevent the use of scrolls.

--------------------------------------------------------------------------------
3d7a220799 | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

feat: persistent hell effects: freeze cocytus solid
The second of four branch-wide hell effects, meant to give each hell a
unique tactical experience. In Cocytus, prevent the use of potions.

--------------------------------------------------------------------------------
49807740c2 | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

feat: persistent hell effects: rust dis
The first of four branch-wide hell effects, meant to give each hell a
unique tactical experience. In Dis, apply two stacks of corrosion.

--------------------------------------------------------------------------------
79cbbdc86d | Edgar A. Bering IV | 2021-09-01 00:37:28 +0300

refactor: abstract corrosion to a method

--------------------------------------------------------------------------------
21599a725c | Perry Fraser | 2021-08-31 13:00:22 -0700

Have C-glyph altars use temple_god_list()
Previously there was a hardcoded list of gods that couldn't generate for
C glyphs in dungeons. It turns out this was essentially equivalent to
the list already used in temple_god_list(), so this removes that
duplication. This also fixes an issue where an altar to Ignis could
generate on a few Zot dungeon levels which used random altars.

--------------------------------------------------------------------------------
d86dc11844 | Nicholas Feinberg | 2021-08-31 11:53:27 -0700

Bump SCG to L6 (ardl)
Cactus giants were a bit stronger than expected, and with the removal
of Shadow Creatures, there were no other L6 summons left.

--------------------------------------------------------------------------------
98b9f98406 | Nicholas Feinberg | 2021-08-31 11:50:16 -0700

Fix monster cactus giant display

--------------------------------------------------------------------------------
df715e3894 | Perry Fraser | 2021-08-31 08:15:42 -0700

Fix dancing weapon death messages
[Committer's notes:
- Don't claim that summoned dancing weapons turn to gold on death.
- Allow summoned corpseless monsters to create clouds on death,
  just like other summons.
- Fix handling of banished unrand dancing weapons.

Closes #2092.
]

--------------------------------------------------------------------------------
bc0475efdd | Kate | 2021-08-31 02:52:45 +0100

Prevent cactus spines from working outside LOS

--------------------------------------------------------------------------------
bced6e68ee | Nicholas Feinberg | 2021-08-29 19:07:02 -0700

Remove an unused corpse tile
Oops!

Should fix tests.

--------------------------------------------------------------------------------
8ac975c05d | Nicholas Feinberg | 2021-08-29 17:54:53 -0700

New spell: Summon Cactus Giant (L5 Summoning)
Summon Cactus Giant summons a giant cactus warrior.
Enemies that hit it in melee take 5d8 AC-reduced spines damage.
Oof!

The intent is to have another situational/toolbox summoning spell:
it's not particularly great against "casters" or "ranged" enemies,
but fun against melee foes, particularly ones that move fast
rather than hitting hard. To differentiate from Guardian Golem,
which has a vaguely similar role, it's a few levels high (L5 1school
vs L3 2school).

The giants also have giant spiked clubs, mainly for comedy value.
They're intended to not do that much against with their attack
(as opposed to their spines), so their attacks take 3 turns and their
base damage is very low.

Giant stats: 1 AC, 2 EV, roughly (27 + spellpower) HP, though
it's randomized like other monsters'. Standardish summon duration,
like call canine familiar.

The spell appears in the Book of Dryads (renamed to Book of the
Wilderness) and a new Book of Scorching, which also gets Foxfire
and Fireball. (I actually named this book before I came up with the
idea for Scorch, but you better bet that's going in there if it lands.)

--------------------------------------------------------------------------------
620d9153ef | Kate | 2021-08-30 00:07:12 +0100

Remove some broken speech lines
_fruit_name_ is a key in the randart database and can't be used in the
speech database.

--------------------------------------------------------------------------------
f6d37e6e1d | Kate | 2021-08-29 22:31:04 +0100

Disable Okawaru Duel in Sprint
Instead of crashing, disable the ability in Sprint, since it's not supposed
to be possible to leave the single D floor by any means (and the Abyss is
also disabled). While it'd be possible to special-case the Arena and enable
the branch, it seems likely to break Sprint balance even more than usuali
(especially in maps like linesprint and arenasprint, for example).

--------------------------------------------------------------------------------
e87a16407d | Nicholas Feinberg | 2021-08-29 08:49:46 -0700

Blame Ignis for fire champs (gammafunk)
No idea if this works correctly for cikiller, tbh!

--------------------------------------------------------------------------------
28825b98b6 | Edgar A. Bering IV | 2021-08-29 10:25:10 +0300

docs: first changelog update for 0.28-a0

--------------------------------------------------------------------------------
2a6f7409c1 | Edgar A. Bering IV | 2021-08-29 08:40:47 +0300

docs: update credits

--------------------------------------------------------------------------------
9e858e973b | Nicholas Feinberg | 2021-08-28 20:09:21 -0700

De-damn missed bolts (ardl)
oops

--------------------------------------------------------------------------------
7e9a150488 | Nicholas Feinberg | 2021-08-28 19:41:38 -0700

Add missing Cinder Acolyte icon
(Really, swap in the Delver candle, since it fits, and give Delver
a lantern instead.)

--------------------------------------------------------------------------------
80eddfa388 | Kate | 2021-08-29 01:18:52 +0100

Fix interactions between noise, fake noise and silence (#12293)
"Fake" noise (primarily created by alarm traps and the Orb) was intended
to ignore silence and still alert monsters, but didn't actually work since
no noise (including fake noise) was ever allowed to propagate through any
silenced squares. Instead, allow all noise to propagate through silence,
but only allow fake noise to actually originate within silence and to alert
monsters in a silenced area. This also fixes problematic behaviour of the
Demonspawn silence aura mutation, where the aura blocked all noise from the
player from propagating outwards.

--------------------------------------------------------------------------------
bb949333c4 | Kate | 2021-08-28 23:10:01 +0100

Give Haunt a summon cap of 8
As a high-level summon it doesn't need as strong a limitation as most of
the earlier summons, but it previously had no cap at all - give it a high
summon cap to at least make it a little less practical to haunt multiple
different targets at once.

--------------------------------------------------------------------------------
1a59d63638 | Kate | 2021-08-28 23:10:01 +0100

Make Shadow Creatures a monster-only spell
It doesn't work well with the reduced player summon caps, since a big part
of its functionality is being able to create monster bands, and the
interaction between bands and the summon cap was already fairly messy.
Being able to summon rare branch-specific monsters and big monster bands is
a fun effect, but works much better on the already-existent scroll of
summoning, which avoids the problems of summon caps and is balanced by
being a consumable.

--------------------------------------------------------------------------------
db2750068a | Kate | 2021-08-28 23:10:01 +0100

Remove the XP penalty from summon kills
With the caps on most summon spells substantially reduced, it should now be
reasonable to remove the 50% XP penalty on kills made entirely by allies.
Other temporary allies also have the penalty removed, as these show up much
less often (for example, charmed allies and summons from items and god
abilities) so should have a fairly minimal effect. Undead allies also have
the penalty removed, with plans to further adjust corpse-using spells in
the future.

Currently permanent allies from gods (specifically Beogh and Yredelemnul)
are unchanged - these require more substantial reworks to their design,
with the plan being to hopefully then fully remove the XP penalty from them
when their respective redesigns are worked on.

--------------------------------------------------------------------------------
635202c219 | Kate | 2021-08-28 23:10:01 +0100

Give monsters separate summon caps to players
Making summon caps for monsters match the reduced player caps
unintentionally weakens a small set of monster summoners whose spells are
coincidentally also player-castable. Instead let monsters retain the old
caps, and document these in the spell description when examining a monster.

--------------------------------------------------------------------------------
af93940d1b | Kate | 2021-08-28 23:10:01 +0100

Reduce most summon spell caps to 1
Summoning magic has long had the downside of kills by allies granting only
50% XP, which works fine in terms of balance due to how hugely powerful
summoned allies are, but is very inelegant as well as just feeling bad to
many players.

The main problem caused by summon spells is how easy it is to quickly and
repeatably create a very large number of allies, so to try and balance this
better and allow removal of the XP penalty, greatly reduce the summon caps
for player-castable summoning spells. Almost all spells are capped at 1
summon, with a few exceptions for spells that wouldn't function with such a
low cap (such as Summon Small Mammal where the individual allies are very
weak), for a few high-level spells (Summon Hydra and Monstrous Menagerie)
which are instead capped at 2, and for the very highest level spells (such
as Summon Horrible Things and Dragon's Call) where the high level of
investment required can justify their strength.

Being able to create allies on demand is still fundamentally an extremely
powerful ability so this is very unlikely to cause problems for summon-
focused characters - it'll just be required to either hybridise more or to
use a wider variety of summon spells.

--------------------------------------------------------------------------------
99b01970c5 | gammafunk | 2021-08-28 16:46:57 -0500

fix: Make a function static

--------------------------------------------------------------------------------
ae8ea5ec39 | Edgar A. Bering IV | 2021-08-28 23:15:54 +0300

feat: adjust Mlioglotl's spawn range
Mlio's spawn range was picked to cover holes in the distribution of
uniques. Unfortunately, an S-branch threat simply isn't all that spooky
by Vaults or Depths. Additionally, in Abyss Mlio's one weird trick
doesn't do anything.

So let's place Mlio in the S branches, corrupting an otherwise peaceful
runic experience, and very rarely in the abyssal lair end as the source
of the corruption.

--------------------------------------------------------------------------------
832ee520b4 | Edgar A. Bering IV | 2021-08-28 23:11:37 +0300

fix: inscribe the obsidian axe (rayg00n)

--------------------------------------------------------------------------------
47ca004b5c | Nicholas Feinberg | 2021-08-28 12:07:32 -0700

Ban fire championing priests (Lightli)
Another god already took that one!

--------------------------------------------------------------------------------
0e18a103e6 | Nicholas Feinberg | 2021-08-28 12:02:53 -0700

Cleanup beogh_follower_convert

--------------------------------------------------------------------------------
1796491f69 | Nicholas Feinberg | 2021-08-28 12:02:53 -0700

Ban fire champion conversions (Lightli)
Another god already grabbed that orc! You can't have them!

--------------------------------------------------------------------------------
5b1f6a4db3 | Nicholas Feinberg | 2021-08-28 12:02:53 -0700

Fix fire champion wizmode name

--------------------------------------------------------------------------------
6d487c6445 | Kate | 2021-08-28 19:20:20 +0100

Reduce Lesser Beckoning's power cap
As a level 3 spell it's not especially appropriate for it to scale all the
way up to 200 power. Instead cap it at 100, with the range scaling up to 5
instead of 7.

--------------------------------------------------------------------------------
e22f211cc6 | Nicholas Feinberg | 2021-08-28 10:50:13 -0700

Ignis: ability cleanup
Swap Foxfire Swarm and Sea of Fire, since foxfires are more powerful
in practice. Make all abilities significantly cheaper. Add spacing to
the enums.

--------------------------------------------------------------------------------
c0270e7ab8 | Nicholas Feinberg | 2021-08-28 10:50:13 -0700

Ignis: monster dialogue

--------------------------------------------------------------------------------
3a68cb0a86 | Nicholas Feinberg | 2021-08-28 10:50:13 -0700

Ignis: zealot start
Gnoll and human should do well with the flexibility, hill orc likes
the fire, and mummy likes the rF, ha.

--------------------------------------------------------------------------------
7cb2ebde44 | Nicholas Feinberg | 2021-08-28 10:50:13 -0700

Ignis wrath: Fire Champion
Chooses the toughest monster in LOS and gives it increased move speed
and AF_FIRE permanently. Lots of conditions to try to choose only an
interesting monster to fight, not a rat or whatever. Dare you risk the
wrath... of the super fire yak?

--------------------------------------------------------------------------------
d1c9835b8b | Nicholas Feinberg | 2021-08-28 10:50:13 -0700

Ignis wrath: shaft

--------------------------------------------------------------------------------
c171122a48 | Nicholas Feinberg | 2021-08-28 10:50:07 -0700

Ignis wrath: fire elementals

--------------------------------------------------------------------------------
8762c4751e | Nicholas Feinberg | 2021-08-28 10:50:03 -0700

Ignis: add rF=0 to god wrath
And tweak duration and messaging.

--------------------------------------------------------------------------------
b194a03854 | Nicholas Feinberg | 2021-08-28 10:47:29 -0700

Ignis: wrath description

--------------------------------------------------------------------------------
8c10d7e454 | Nicholas Feinberg | 2021-08-28 10:47:29 -0700

Ignis: ignore amulets of faith
And refactor the relevant code in the process.

It might be nice to care about "faith (getting discounts on abilities),
but maybe there are weird incentives..? Not handling it right now,
anyway.

--------------------------------------------------------------------------------
dc0d7ab00c | Nicholas Feinberg | 2021-08-28 10:47:19 -0700

Ignis: die
After abandoment and mollification, Ignis dies. RIP.

--------------------------------------------------------------------------------
24c43e5e87 | Nicholas Feinberg | 2021-08-28 10:46:20 -0700

Ignis: Rising Flame ability

--------------------------------------------------------------------------------
44ce977461 | Nicholas Feinberg | 2021-08-28 10:46:20 -0700

Ignis: Sea of Fire ability

--------------------------------------------------------------------------------
8782af215f | Nicholas Feinberg | 2021-08-28 10:46:20 -0700

Ignis: Foxfire Swarm ability

--------------------------------------------------------------------------------
68b9825e2d | Nicholas Feinberg | 2021-08-28 10:46:14 -0700

Ignis: Add rF passive

--------------------------------------------------------------------------------
61f1a7678b | Nicholas Feinberg | 2021-08-28 10:46:11 -0700

Ignis: initial implementation
A god specifically designed for use as a zealot start. What if your
'starting kit' was a god that got used up, burned out, and pushed you
to risk its (weak) wrath?

--------------------------------------------------------------------------------
f7720a2501 | Nicholas Feinberg | 2021-08-28 09:09:04 -0700

Fix evolution
The last implementation of it required you to be at the next XL to
evolve... which was impossible. When you did reach the next XL, you'd
need to reach the one after that to evolve, and so on.

Instead, require one XL worth of XP for each evolution.

--------------------------------------------------------------------------------
81c34554c2 | Matthew Daley | 2021-08-28 17:43:59 +0300

feat: Show turn counts and real game times in lobby
This lets spectators find potentially interesting games to view, i.e.
from a speedrunning perspective.

webserver/process_handler.py:
* Treat the turn count and duration (real game time) as "interesting
  info" in the wherefile.

webserver/static/scripts/client.js:
* Show the new turn count and duration fields. Keep the columns hidden
  until we see at least one game with the new fields, for nicer
  backwards compatibility.
* While at it, rationalise the units shown for idle times ("min" -> "m",
  and drop the spaces).

webserver/static/style.css, webserver/templates/client.html:
* Add new fields, defaulting to be hidden until changed by client.js.

--------------------------------------------------------------------------------
4b70cb3502 | Edgar A. Bering IV | 2021-08-28 17:36:23 +0300

docs: update debian package name for DejaVu (Cebolla)
Closes #2094

--------------------------------------------------------------------------------
cd7d0065d9 | Aliscans | 2021-08-28 17:30:15 +0300

Change the spelling of some words to Australian English.
Change a few places where words were spelt with -eling at the end and
where this is not a correct spelling according to
https://www.australian-dictionary.com.au/wordcheck/.

This only changes things in places where the spellings may be displayed
to the user. I include the documentation in this. I haven't changed the
changelog, or any of the contrib stuff.

This changes:

channeling -> channelling
dueling -> duelling
groveling -> grovelling
quarreling -> quarrelling
raveling -> ravelling
traveling -> travelling
tunneling -> tunnelling

Closes #2093

--------------------------------------------------------------------------------
0b7dbbd7ef | Edgar A. Bering IV | 2021-08-28 17:20:41 +0300

fix: a crash bug in clua.target_desc (mgdelmonte)
Closes #2090.

--------------------------------------------------------------------------------
f02e23bfe7 | Aliscans | 2021-08-28 17:14:03 +0300

Show gnolls how many levels they need to reach a skill target
Show gnolls how many levels they need to reach min delay / no shield
penalty for an item.

The game already told other species how much experience they needed to
remove the penalty for a shield, or reach the minimum attack delay for a
weapon. This change extends this to gnolls.

It doesn't enable gnolls to set a target as they cannot vary how much
experience they put into a skill.

[ Committer's note: Closes #2085. Refactored lightly in action
  selection to deduplicate a condition. ]

--------------------------------------------------------------------------------
3f656e82c2 | Nicholas Feinberg | 2021-08-27 14:50:10 -0700

Reinforce transparent stone tiles
To make them hopefully look a bit tougher and more distinct from
transparent rock.

--------------------------------------------------------------------------------
1c0f7aac2b | Nicholas Feinberg | 2021-08-27 11:45:54 -0700

Fix Dj spell icons on local tiles
Closes #2091
Closes #2095

--------------------------------------------------------------------------------
36ea832cf1 | John Stahara | 2021-08-27 11:40:58 -0700

Don't ever consider books evil
Unfortunate from a flavour perspective, but in gameplay terms it's never
detrimental to read a book.  This allows autopickup to read books, even
if your current god forbids you from casting the spells contained
within.  It isn't the knowledge that's harmful, after all, but how you
use it!

--------------------------------------------------------------------------------
048bc9fd10 | Kate | 2021-08-27 01:47:48 +0100

Remove unused handling for self-casting Tukima's Dance

--------------------------------------------------------------------------------
1e3a1f7914 | advil | 2021-08-26 20:29:42 -0400

fix: prevent bad array access for describing unid'd staves
Also add a bunch of other checks around this particular crash; the basic
problem here was that SK_NONE is greater than NUM_SKILLS and a lot of
code that has skill-related arrays doesn't check bounds and stops at
NUM_SKILLS. The specific crash was because `staff_skill` returns SK_NONE
in cases where it can't find a matching skill, which happens when a
staff is unid'd.  Because the bug depended on what was in adjacent
memory, the crash was somewhat variable.

--------------------------------------------------------------------------------
17d1ee0984 | advil | 2021-08-26 18:35:18 -0400

fix: transparent tags for some vaults
It's better to mark vaults transparent than not, because that allows the
builder to check for teleport closets itself, and also allows the
placement script to more easily check that the intention indicated by a
tag matches with what happens when the vault places. This commit has a
batch of fixes for vaults that automated testing indicates should be
marked transparent. This stops in a somewhat arbitrary place as I was
working on this several months ago and haven't managed to get back to
it, but eventually this should be checked for all vaults.

This commit also includes a few teleport closet fixes for vaults that
didn't immediately show up as being marked transparent.

--------------------------------------------------------------------------------
6aaddb815b | advil | 2021-08-26 18:35:18 -0400

feat: script options for checking vault opacity
This new set of options to the placement checker script is designed to
find vaults that are not marked as transparent but probably should be.
To use this, make sure to test with enough iterations so that
randomization can play out. It's actually also somewhat useful for
finding vaults that aren't marked as transparent and have a teleport
island, when going through vaults one by one.

--------------------------------------------------------------------------------
c0b50483a2 | wheals | 2021-08-26 21:43:09 +0300

Interrupt explore by default when a shopping target is reached (perryprog)

--------------------------------------------------------------------------------
a0e16d178b | wheals | 2021-08-26 21:43:07 +0300

Fix explore being interrupted by autopickupable items
Caused by 14faa60; check_for_interesting_features uses the stash to
determine whether to stop, but it was being called without actually
updating the stash.

--------------------------------------------------------------------------------
f6564f113a | Nicholas Feinberg | 2021-08-26 07:55:33 -0700

Remove riposte from long blades
It was intended to create strategic variance by encouraging characters
with more EV to use long blades and characters with less EV to use
other weapon types. In practice, it just created more complexity without
corresponding interesting decisions for players. It'd be possible to
simplify into a damage bonus from EV (or Dodging, or Dex), which would
accomplish the original design goal... but it's not obvious that said goal
would produce good gameplay even if it worked.

It's quite difficult to find alternative weapon gimmicks. Wu Jian has
taken up much of the rest of the design space, and other common suggestions,
e.g. adding innate SH to lbl, just add more numbers & problems to the game
without contributing any real decisions.

Correspondingly, long blades are mostly returned to their old stats
from before 4dea7376dac , with some tweaks from ba988d45092 kept.

Fencer's Gloves still have riposte until/unless we decide otherwise.

--------------------------------------------------------------------------------
8de209e91f | Nicholas Feinberg | 2021-08-25 18:59:24 -0700

Fix monster slime wall damage

--------------------------------------------------------------------------------
644a552097 | Nicholas Feinberg | 2021-08-25 18:49:31 -0700

Further spriggan druid desc fixes (dilly)

--------------------------------------------------------------------------------
c0dc8c719c | Nicholas Feinberg | 2021-08-25 18:29:27 -0700

Remove more acid splash damage
To simplify acid damage and make it more visible in monster descriptions,
make acid spells deal all of their damage in the initial attack, rather
than following up with some in a separate 'acid splash'.

Since this acid splash did 2d4 to monsters and 4d5 to players, and I'm
using the latter values for monster acid damage, this is a buff for
allied ally damage. To compensate, I've lowered Fedhas oklob fire speed
by 25%, roughly the complement of the damage increase. Other sources of
allied monster acid damage, such as ?summoned yellow draconians or
non-summoned oklobs under Fedhas, are still somewhat buffed, but that
seems like a small change with few consequences.

--------------------------------------------------------------------------------
f4e2d62f27 | Nicholas Feinberg | 2021-08-25 18:18:45 -0700

Split up acid_splash and corrosion

--------------------------------------------------------------------------------
1c58e7f47f | Nicholas Feinberg | 2021-08-25 18:04:40 -0700

Simplify acid cloud damage

--------------------------------------------------------------------------------
1afa1a9824 | Nicholas Feinberg | 2021-08-25 18:04:20 -0700

Remove unused splash_with_acid params

--------------------------------------------------------------------------------
e619aef00b | Nicholas Feinberg | 2021-08-25 18:00:25 -0700

Simplify acid wall splashes

--------------------------------------------------------------------------------
1ef7cba1b3 | Nicholas Feinberg | 2021-08-25 17:27:54 -0700

Clarify sp druid death effect (dilly)
It wasn't mentioned in the monster description before.

--------------------------------------------------------------------------------
79ebb2a17b | Kate | 2021-08-26 00:39:03 +0100

Add AoE resistible spells to the default force_targeter
These targeters are useful for indicating affected monsters and their
chances to resist AoE spells, but are normally only accessible through the
quiver. Instead add various untargeted AoE resistible spells to the default
list of spells where the targeter is always displayed.

--------------------------------------------------------------------------------
9004c80361 | Nicholas Feinberg | 2021-08-25 12:49:15 -0700

Rename Corrupt Locale -> Corrupt (gammafunk)
Nothing to really disambiguate against and much more flavourful.

--------------------------------------------------------------------------------
46a7db7966 | Kate | 2021-08-25 18:52:34 +0100

Don't let Ghostly Sacrifice target projectiles (causative)
Projectiles are always considered as "aligned" with other actors (since
they never make actual direct attacks?), so orbs of destruction fired by
anyone were considered valid targets for monster Ghostly Sacrifice.

--------------------------------------------------------------------------------
b8bfbab023 | Kate | 2021-08-25 00:13:55 +0100

Shuffle squares for monster Upheaval animation
As with player Upheaval, instead of always displaying them in the same
order.

--------------------------------------------------------------------------------
cf53092a1b | Kate | 2021-08-25 00:01:29 +0100

Remove some dead Upheaval code
Since very shortly after the god was implemented, the code to have Upheaval
occasionally destroy walls hasn't actually functioned. Also simplify
monster Upheaval's implementation - it iterated over radius 2 but then only
ever affected squares in radius 1, so make the code reflect that properly.

--------------------------------------------------------------------------------
639a1a48b9 | Kate | 2021-08-24 04:21:53 +0100

Don't crash when casting an uncapped summon
Oops.

--------------------------------------------------------------------------------
fa261e29c3 | Kate | 2021-08-24 03:42:48 +0100

Don't try to reroll Shadow Creature spell sets
Since no monsters have variable spell sets any more.

--------------------------------------------------------------------------------
01758ec4b5 | Kate | 2021-08-24 03:21:47 +0100

Remove variable timeouts from capped summons
Summon spells all had custom timers on how long a summon would remain
after hitting the summon cap, but they almost all expired after 5-15 aut
(with the only exceptions being Summon Horrible Things, and Summon Dragon,
which expired after 40 aut). Instead of having a near-meaningless
distinction here, make all capped summons expire after 10 aut.

--------------------------------------------------------------------------------
8580c7503b | Kate | 2021-08-24 03:21:34 +0100

Remove some obsolete summon cap handling
Since Monstrous Menagerie no longer creates bands, it doesn't need special
handling around summon caps.

--------------------------------------------------------------------------------
fbb0926a3a | Kate | 2021-08-23 22:41:23 +0100

Use correct pronouns for monster targeting descriptions

--------------------------------------------------------------------------------
8e8b57cc88 | Kate | 2021-08-23 22:37:46 +0100

Improve skill descriptions for god-related skills
Instead of adding some details for Trog only, include information about
Invocations usage for all gods, as well as describing any god-hated skills
(which is still only Trog in that case, but now properly extends the
information to skills other than Spellcasting).

--------------------------------------------------------------------------------
68911e0c57 | advil | 2021-08-22 15:45:15 -0400

refactor: handle self-targeting checks better in beam.cc
Xom's chessboard fakes smite targeting for a variety of effects by just
setting the beam source to a target monster's position. This leads to
some conflation of real self-targeting and fake smite-targeting in a
bunch of subtle corner cases, and also led to 12637. Rather then handle
this on case-by-case basis as in 395adb26f73b for poly and a708605c5b
for teleport, this commit restores the general check from
pre-395adb26f73 but makes it more restrictive. It also sets the agent
for xom's chessboard actions (as the player, tbc) in the course of this.
This commit should also fix some related weirdness with wrath that
hasn't yet come up.

--------------------------------------------------------------------------------
79c9209bdd | Kate | 2021-08-22 20:17:53 +0100

Simplify some rain cloud behaviour
Don't make the chance of rain clouds creating water depend on how much
water or lava is adjacent to them.

--------------------------------------------------------------------------------
9cc4ca73b0 | Kate | 2021-08-22 20:17:39 +0100

Make the robe of Clouds' thunder passive
So as to continue moving away from activated abilities on equipment (as
with other unrands such as the cloak of the Thief and ratskin cloak),
give the robe of Clouds a chance of creating a storm cloud on enemies
within radius 2 each turn. Also mention its cloud immunity in the
description.

--------------------------------------------------------------------------------
5c1c4949f7 | Kate | 2021-08-22 18:12:03 +0100

Fix spacing

--------------------------------------------------------------------------------
5d50cf8172 | Kate | 2021-08-22 18:11:36 +0100

Remove some obsolete ability code
And an outdated comment.

--------------------------------------------------------------------------------
c3c367e0a5 | Edgar A. Bering IV | 2021-08-22 16:38:42 +0300

feat: corrupt trees into demonic trees
For Mliogotl and player corruption, turn (permanently) trees corrupted
into demonic trees. This is technically not a "flavour" effect because
of the difference in how they burn, but it's close enough and ultra
flavourful.

--------------------------------------------------------------------------------
b8ca4b6547 | Kate | 2021-08-22 02:59:18 +0100

Adjust some stat zero effects
Replace 0 strength's regeneration reduction with -Regen in monster LOS (the
same as the mutation), to give it an effect in combat without making
resting take excessive time. Also replace 0 intelligence's 4/5 chance for
scroll-reading to fail with -Scroll (since it no longer needs to be
possible to read remove curse scrolls to unequip cursed -Int gear).

This whole mechanic could probably be simplified further since it's such a
rare occurence.

--------------------------------------------------------------------------------
dd10bd25a4 | Kate | 2021-08-22 02:51:30 +0100

Add a description for the -Regen status light

--------------------------------------------------------------------------------
b1a13b149e | Kate | 2021-08-22 01:15:53 +0100

Rework Sap Magic
It was very overcomplicated for such a rare effect, and its implementation
of applying multiple levels of spell failure penalty required the player to
repeatedly check their spell success rates between each cast. Instead of
the scaling penalty, make casting spells under Sap Magic always apply a
short duration -Cast.

(This also makes its effect on players more similar to its effect on
monsters of applying antimagic - it'd probably be feasible to make the
effects match and implement -Cast for monsters but this doesn't seem worth
the effort.)

Sap Magic also had a confusing 3/10 chance to have no effect when cast,
despite being otherwise irresistible - just remove this failure chance
entirely, since the spell already has a fairly low cast rate.

--------------------------------------------------------------------------------
086cc6695f | Nicholas Feinberg | 2021-08-21 14:58:14 -0700

Update Attr status description.

--------------------------------------------------------------------------------
7ea6ab310f | Nicholas Feinberg | 2021-08-21 14:56:42 -0700

Fix a 7-year-old typo
oops

--------------------------------------------------------------------------------
d9515000ea | Edgar A. Bering IV | 2021-08-21 20:00:48 +0300

fix: silence a compiler warning

--------------------------------------------------------------------------------
237fc358d9 | mgdelmonte | 2021-08-21 19:54:05 +0300

feat: lua access to monster targeting descriptions
This commit adds target_desc, target_weapon, target_spell, and
target_throw functions to the Lua monster_info object. target_desc
returns the targeting description of the monster. The other function
returns the descriptions shown if you target a monster with your weapon,
a spell, or a thrown item.

[ Committer's note: Closes #1922. Rebased and cleaned up commit history.
  Made the spell target_desc pick up all of the possible fancy addl
  descs and be future proof for them, as well as crash robust for spells
  that lack a hitfunc. ]

--------------------------------------------------------------------------------
b260e8e558 | Edgar A. Bering IV | 2021-08-21 17:45:34 +0300

fix: Mlio spell logic fixes
Move all corrupt locale casting to use the spell_logic structures. Clean
up the code to use const refs instead of passing by value. Properly
handle a friendly Mlio.

--------------------------------------------------------------------------------
b12d812e02 | amcnicky | 2021-08-21 16:07:10 +0300

feat: Mlioglotl, an Abyss themed unique
Mlioglotl is a mid game unique with the power to (temporarily) corrupt
levels, spawning in Swamp, Vaults, Depths, and Abyss:2 onward.

Mlio's corruption produces abyssal summons drawn from the full spawn
table; a Swamp-depth character might have to run depending on the roll.
The gameplay feel is to force the player to either avoid or swiftly kill
before the summons and terrain get out of control.

[ Committer's notes: buffed the damage, defenses, and casting
  frequencies so that Mlio hits appropriately hard for his locales,
  expanded the spawn range to include V:$ and U:4-5.

  Gave corruption guaranteed summons (and a roll), and allowed it to
  roll monsters from the full abyss table. Mlio might pull chaff to his
  aid, or he might get a hell sentinel and a bone dragon. There will be
  a lot of variability in the nature of encounters, but this is part of
  the design vision. The summon duration is shorter, to allow escapes.

  Simplified and refactored the monster version of corrupt, it doesn't
  need to be a complete mirror of the player mechanics. Especially don't
  recolour outside of Mlio's immediate locale. The temp terrain is
  placed for a shorter duration, so that a long encounter will get some
  "abyssal churn" feel.

  Fixed whitespace, cleared unneeded XXX comments other code clean-up.

  Moved Mlio to the appropriate place in Mon-data and used brown for the
  console colour so that glyphs don't overlap.

  Closes #2058 ]

--------------------------------------------------------------------------------
76b539d98b | Nicolae Carpathia | 2021-08-20 11:19:33 -0400

Rearrange existing quotes and add new ones
Scroll of tele quote (ADMIN) moved to Swiftness, at PF's
suggestion. Existing scroll of fear quote moved to /dev/null,
it's not even by Plato, and replaced with old eidolon quote.

Add new quotes, featuring T.S. Eliot, Homer, Lovecraft, Pablo
Neruda, Shakespeare, Lord Byron, Nine Inch Nails, and more.

--------------------------------------------------------------------------------
1bb7f9241b | Kate | 2021-08-20 15:35:27 +0100

Tweak duel speech weighting
So that adding new speech lines doesn't affect their chance to speak.

--------------------------------------------------------------------------------
0f8ce75afc | Kate | 2021-08-20 15:35:27 +0100

Fix spelling and some incorrect speech keys

--------------------------------------------------------------------------------
2b4a79830d | Edgar A. Bering IV | 2021-08-20 17:11:55 +0300

feat: recommend brigand over hunter for Ko (dilly)
Recommendations are supposed to be thematic and flavourful as well as
suited to the species. Kobolds have AM as a "ranged" recommend, and
there's literally a Kobold Brigand monster. What could be more thematic
than to be one yourself!

Closes #2038

--------------------------------------------------------------------------------
ad6161974e | RojjaCebolla | 2021-08-20 16:57:14 +0300

Add a few more _anger_possessive_ strings

--------------------------------------------------------------------------------
c0b1434407 | RojjaCebolla | 2021-08-20 16:56:23 +0300

Add pennants for duel spectators (text string)

--------------------------------------------------------------------------------
8eabd40a87 | RojjaCebolla | 2021-08-20 16:56:23 +0300

Add a couple adjective strings

--------------------------------------------------------------------------------
dc40aaacc9 | RojjaCebolla | 2021-08-20 16:56:23 +0300

Add a few more actions for Okawaru Duel spectators

--------------------------------------------------------------------------------
0da4227f7a | RojjaCebolla | 2021-08-20 16:56:23 +0300

Re-add fruit names to the string generators
This brings back some of the fruits of 1eb5282a

--------------------------------------------------------------------------------
8e425c6592 | Edgar A. Bering IV | 2021-08-20 13:44:03 +0300

doc: changelog for 0.27.1
main and debian

--------------------------------------------------------------------------------
cbf37d0371 | robertxgray | 2021-08-20 12:34:40 +0300

Vampires are not (pure) lifeless undead
This cleans up the following undesired effects:
 - Rage and lignification potions are tagged as useless.
 - Wanderers can't receive such potions.
 - Poison ring tagged as useless while bloddless and other poison
   related side effects.
 - Kikubaaqudgha does not grant Sublimation of Blood.

[ Committer's note: Closes #2055. Adjusted commit message. Tweaked a few
  other vampire hacks in spl-util.cc. ]

--------------------------------------------------------------------------------
b7ea06bb7e | Edgar A. Bering IV | 2021-08-20 12:21:03 +0300

Revert "Don't consider rings of rPois useless for bloodless vampires"
This reverts commit e31878e1fe37459b33a9e04917198de829909ca1. A
different solution will be commited subsequently.

--------------------------------------------------------------------------------
a7b0c1cb7f | Edgar A. Bering IV | 2021-08-20 12:19:53 +0300

doc: update CREDITS

--------------------------------------------------------------------------------
50b444eb91 | Zhang Kai | 2021-08-20 12:17:55 +0300

Update branches.txt
Add translation.
增添翻译。

[ Committer's note: Closes #2063. Fixed whitespace, removed incorrectly
  placed credit line. Corresponding with the PR author on appropriate
  CREDITS entry. ]

--------------------------------------------------------------------------------
b0f16cbe65 | John Stahara | 2021-08-20 12:14:55 +0300

indent fix

--------------------------------------------------------------------------------
080cfb6e2c | John Stahara | 2021-08-20 12:14:55 +0300

"Okay, then" on saying 'n' to warn_hatches prompts

--------------------------------------------------------------------------------
14faa605fd | Aliscans | 2021-08-20 12:01:39 +0300

Check for monsters, objects & features as soon as you move. (#2041)
Check for things after the player moves, rather than waiting for the start of 
the next turn.

Improve the accuracy of a comment in check_for_interesting_features().



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
ea8a313d67 | kippig | 2021-08-20 11:51:28 +0300

vaults: edit tgw_trog vault to avoid rat spawns late
Ran into some rats in depths and it felt bad.
This change removes them and makes it a bit more dangerous.

[ Committer's note: Closes #2050. ]

--------------------------------------------------------------------------------
c2c9e32840 | Nicholas Feinberg | 2021-08-19 20:21:31 -0700

Don't recalculate MP when Evo is trained
They're no longer connected!

--------------------------------------------------------------------------------
3091681fa3 | Nicholas Feinberg | 2021-08-19 19:57:26 -0700

Remove Stairs
(The card.)

Partially implemented in 30824b7084af3c2dce35d as a debugging tool
for the Xom stair-moving effect and left around ever since.

--------------------------------------------------------------------------------
655a12affb | Nicholas Feinberg | 2021-08-19 19:34:39 -0700

Always show all cards in ?/
Since there are few enough to show, these days.

--------------------------------------------------------------------------------
f40de95187 | advil | 2021-08-19 16:56:24 -0400

fix: adjust buggy rest delay check
Two changes:
* tweak the base delay up, recalibrated by ogre healing rather than
  troll healing. (Turns out regen matters!)
* account for collapse, which gives a 4x multiplier on time to full
  heal, and so collapsed characters with lots of hp would hit the
  old delay without too much trouble.

--------------------------------------------------------------------------------
2406090169 | advil | 2021-08-19 16:56:24 -0400

fix: accept numpad enter keycode for menu "enter"
I'm not sure how reliably this keycode gets used, but it sometimes can
be, so accept it in menus.

--------------------------------------------------------------------------------
214da3ba67 | Kate | 2021-08-19 20:47:49 +0100

Fix some invalid vault syntax
Just place a fixed amount of a few items that were trying (and failing) to
create a randomised stack size.

--------------------------------------------------------------------------------
d305098ac3 | Kate | 2021-08-19 20:47:06 +0100

Add Okawaru to tgw_lugonu_bribe
Offer Okawaru worshippers some nice summoning items.

--------------------------------------------------------------------------------
298df9dbad | advil | 2021-08-18 20:42:50 -0400

fix: refix something that is *not* an off-by-one-error
da2e87d06967ae turns out not to have been an off-by-one error, but
rather the result of bad initial calculations when the menu is not yet
displayed, resulting in invalid scroll values. In addition,
da2e87d06967ae broke scrolling in menus that don't use a hover. This
wasn't noticed before now partly because webtiles still works, the bug
seems to be a bit erratic, and in the words of one dev, "oh so that key
is actually broke and its not my broken keyboard".

--------------------------------------------------------------------------------
a584919b07 | Nicholas Feinberg | 2021-08-18 15:09:08 -0700

Warn about unsilencable spells
Since players get surprised by these all the time.

--------------------------------------------------------------------------------
74814aa22a | advil | 2021-08-18 14:05:46 -0400

fix: more player shadow vs wrath avatar cleanups
I went through references to MONS_PLAYER_SHADOW as well as
mons_is_player_shadow to double check them vs. the previous commit and
f9c1391b6; these are the resulting changes.

--------------------------------------------------------------------------------
4e69de0771 | advil | 2021-08-18 13:36:06 -0400

fix: don't crash on fedhas wave wrath
Via side effects, this wrath action results in `move_player_to_grid`
which puts the player on the same square as the fake monster casting the
spell. This monster reuses shadow creature code, but as of f9c1391b6 no
longer returns true for mons_is_player_shadow, so an ASSERT got tripped.
This commit just adds another similar function for god wrath so that at
least this special case can be checked without knowing implementation
details, but also this implementation of wrath is not ideal.

--------------------------------------------------------------------------------
7c5eadcf33 | advil | 2021-08-18 10:36:43 -0400

fix: don't use homebrew includes over contribs
Mac clang imposes `-I /usr/local/include` on builds, which takes
precedence over our use of `-isystem` and leads to an unfortunate
interaction with homebrew. Regular mac build tools don't actually use
this location, and nor does macports, but homebrew does. For example if
the user has SDL2 installed via homebrew, those includes will be used
even though the build tries to link with the contrib version of SDL2,
resulting in build failure. (This has been reported for a couple of
years, it seems.)

There may be a number of ways to fix this, and I'm not sure I'm a fan of
using -isystem for contrib libraries that we are providing and
maintaining and that aren't located in a system include path, but this
commit takes a more minimal approach to working around this issue, just
ensuring that checking this directory takes precedence under any
`-isystem` includes introduced in the Makefile. (Of course, it's
arguably a bug that mac clang does this with `-I` instead of `-isystem`,
but good luck getting that changed.)  Possibly in the future `-isystem`
should be switched back to `-I` for contribs so that we have better
control over this (by using `-isystem` we ceded control to any way of
setting `-I` e.g. via environment variables), but doing so would require
a lot of testing.  (See e84909d808a7 for where this originated; from the
dev logs I suspect this may be partly about suppressing warnings from
include headers as well.)

--------------------------------------------------------------------------------
42b4daccc1 | advil | 2021-08-17 16:20:16 -0400

fix: remove accidental debug code

--------------------------------------------------------------------------------
9e3c00f94b | advil | 2021-08-17 15:12:35 -0400

fix: use correct names for non-alpha ctrl keys in SDL
This was handled correctly for key help, but not the macro menu.

I know I wrote this code in 378ef55cfb79986e3 but this is an extremely
magical looking invocation, I wonder if there's a better option?

--------------------------------------------------------------------------------
0687de6023 | advil | 2021-08-17 15:12:35 -0400

fix: local tiles ctrl-key names (perryprog)
This got overly #ifdef'd in 643d97a57c66bc5, but the issue hasn't popped
up yet because that commit wasn't in the 0.27 release.

--------------------------------------------------------------------------------
b5bb297faa | Nicholas Feinberg | 2021-08-17 10:28:51 -0700

Ban devolution as tempmut
Seems very unkind to have our good abyssal starry friends give out
permanent badmuts, even indirectly.

This code is not great.

--------------------------------------------------------------------------------
c707856eba | Nicholas Feinberg | 2021-08-17 10:28:51 -0700

New badmutation: Devolution
Evolution's evil twin. Gives out a couple of bad mutations over time
(currently once every 1/4th of an XL), then goes away. Better cure it
fast, huh?

--------------------------------------------------------------------------------
9383fbc173 | Nicholas Feinberg | 2021-08-17 10:28:51 -0700

Solve Darwin's dilemma
The Evolution mutation worked in a strange, complex, and not very
satisfying way. Once every 500-1500 turns (!), it would check to see
whether the total accumulated XP you'd gotten since your last evolution
mutation, times the mutation level, times 1d10, was greater than the XP
needed for your next XL. (So, it took a long time to do anything.)

Once it triggered, it had a 20% chance of trying to remove a bad mut,
64% of applying a good mut, and 16% of applying a bad mut. Regardless,
it had a 10% chance of removing itself. Surprisingly often, it would
remove itself without doing much of anything at all.

Instead, let's simplify. Each level of evolution is now worth 2 good
muts. Once per XL's worth of experience, you'll get a good mut. After
the second mut, you'll lose a level of evolution. It's a 'delayed gift
box' mutation - very nice in the medium term, does nothing in the short
term. Do you really want to quaff !mut if you still have a level of
evolution pending? Tough choice...

Don't worry - failures die fast.

--------------------------------------------------------------------------------
2552a6465f | advil | 2021-08-17 12:21:36 -0400

fix: correctly set target when firing untargeted abilities
This keeps autofight_check from applying to quivered abilities without a
targeter triggered by `f`, reported by discord user rypofalem. Applies
to things like DD healing, ely abilities, etc.

--------------------------------------------------------------------------------
48023c6eb5 | Edgar A. Bering IV | 2021-08-17 18:12:29 +0300

fix: make confused trees claw the walls (PleasingFungus)

--------------------------------------------------------------------------------
12f296af85 | advil | 2021-08-17 10:38:20 -0400

feat: implement CTRL/SHIFT cues for */ in webtiles
These are if anything more important than in console these days, since
you may need to use them to override browser shortcuts on windows/linux,
but the message window cues were only implemented on console. This just
uses the more div to show custom messages.

--------------------------------------------------------------------------------
b3f9c8a74a | advil | 2021-08-17 10:38:20 -0400

fix: default ctrl/shift behavior for numpad `*`/`/`
This allows rebinding these keys, in contrast to regular * and /.

--------------------------------------------------------------------------------
ed537f1d7e | advil | 2021-08-17 10:38:20 -0400

Revert "fix: temporarily disable new keymappings except 0-9"
This restores full new-numpad handling from the commit sequence
pre-tournament.
* In trunk, people who have macros set to F1-Fn using keycodes in the
  -1000 range will need to adjust those to the correct keycode range
  (-265 etc). There'll probably be complaints about this, but this
  change needs to happen some time or other.
* Distinct keycodes for more number pad keys are enabled; this is a bit
  keyboard dependent. These should already, hopefully, have reasonable
  default bindings.

This reverts commit 662ed650adae8ada8c3a4fa3e5978df99d465dd1.

--------------------------------------------------------------------------------
780c878087 | Edgar A. Bering IV | 2021-08-17 17:16:07 +0300

fix: describe frost creeping from trees

--------------------------------------------------------------------------------
7777c1c129 | Edgar A. Bering IV | 2021-08-17 17:13:45 +0300

fix: a frozen tree form information leak (12624)

--------------------------------------------------------------------------------
638331083e | Edgar A. Bering IV | 2021-08-17 16:07:51 +0300

fix: update item seen status in relevant places (12626)
This also fixes sporadic reports of monsters still picking up items a
player has seen: the SEEN flag was not being set until the _prep_input
stage of the player's turn, so a monster could walk into view and wield
an item just revealed by the player.

--------------------------------------------------------------------------------
911e812f60 | Edgar A. Bering IV | 2021-08-17 10:13:02 +0300

fix: warnings for hasty artefacts (Majang)

--------------------------------------------------------------------------------
5eb9c77d6f | Edgar A. Bering IV | 2021-08-17 09:54:19 +0300

fix: set an appropriate string for a const prop (12629)
Also closes #2070 and #2071. The bug was that both ITEM_TILE_KEY and
WORN_TILE_KEY had the same value; on local tiles this would manifest by
occasionally tripping an assert when a doll tyle would pass through
tile_main_info. On webtiles javascript is more flexible and happily
indexed the strange tiles requested, resulting in player doll tiles
appearing in item stack icons and unseen mosnter tiles appearing on the
floor.

--------------------------------------------------------------------------------
a708605c5b | Nicholas Feinberg | 2021-08-16 19:37:26 -0700

hack: Make monsters not res tele self
Very curious when this bug was introduced. I saw it reported a few
months ago, but I'm not sure it was in 0.26.

--------------------------------------------------------------------------------
d8966da807 | Nicholas Feinberg | 2021-08-16 19:24:00 -0700

Make potions of attraction translocate (kate)
To preserve their utility for stabbing sleeping monsters (fun and
potentially risky!) while keeping them consistent/intuitive with
effects like Lesser Beckoning and Gell's Gravitas, which do wake
monsters, retheme Attraction as translocating its victims rather than
'pulling' them. This is also more consistent with its behaviour wrt
terrain obstacles like deep water and lava.

The tloc clouds might have other weird effects, but even in zigs,
they don't seem to do an awful lot in practice.

This reverts commit 8d3330d46d1c987e9b2bae9433c9aefaa59c07d7.

--------------------------------------------------------------------------------
a704b87b3c | Nicholas Feinberg | 2021-08-16 19:03:33 -0700

Fix Oka/Trog gift message order
Maybe! This probably breaks something else important.

--------------------------------------------------------------------------------
b2089b6bb7 | Edgar A. Bering IV | 2021-08-17 00:21:42 +0300

fix: try to place the entire requested number of maps with place_maps
Since 2010, the dgn.place_maps function would attempt to place the
requested number of maps... until one failed to place for any reason,
then it would give up. Before then it would error, so this was an
improvement. However the commit messages around that time suggest that
the goal was for the function to continue in its attempt, and return the
total number of placed vaults.

This change should hopefully make some of our serial vaults shine a bit
better. If they become too overwrought we might need to retune the
number of serial maps each one places, but in my local testing it seemed
ok.

--------------------------------------------------------------------------------
0eb5c47895 | Kate | 2021-08-16 22:07:03 +0100

Adjust "toggle layers" keybinds
Use 'a' to toggle all visible layers instead of escape, so that escape can
be used for its expected behaviour of cancelling out of the prompt.

--------------------------------------------------------------------------------
6f4fce7e9c | Kate | 2021-08-16 22:04:31 +0100

Dismiss summoned allies on joining Okawaru
Instead of turning them hostile.

--------------------------------------------------------------------------------
787e458d71 | Kate | 2021-08-16 03:27:54 +0100

Revert "chore: add a trunk reminder for the 0.27 tournament"
Tournament over!

This reverts commit 06dbe2521f2f3a55d5c719914c39637abdb66fd0.

--------------------------------------------------------------------------------
f39b64463d | Kate | 2021-08-16 03:09:24 +0100

Remove a duplicate failure check from +Blink
So that (for example) activating it with Ozo's Armour active gives the
prompt to abort before checking whether the ability fails.

--------------------------------------------------------------------------------
745f8db33d | Kate | 2021-08-16 02:54:43 +0100

Add a missing return

--------------------------------------------------------------------------------
5b07bef5ff | Kate | 2021-08-16 02:15:31 +0100

Give Okawaru a no-allies conduct
Okawaru now demands that the player fight alone and prevents all allies,
functioning the same as Ru's Sacrifice Love while worshipped.

Requiring that the player fight alone fits well into Okawaru's theme (and
has already been shown to work well as a conduct under Ru) so should let
the god remain strong and straightforward but with a noticeable downside.

--------------------------------------------------------------------------------
7b975550ec | Kate | 2021-08-16 02:07:47 +0100

New Okawaru ability: Duel
Granted at 5* (with Finesse moving earlier, to 4*), the Duel ability
smite-targets a single non-summoned enemy in LOS (which must be threat
level "tough" or higher), and transports them and the player to an Arena
portal vault. The ability is aimed at giving Okawaru worshippers a more
exciting top-end power, letting them isolate key foes and (alongside the
upcoming conduct) fitting with the god's theme of appreciating the player
proving themselves in combat.

Invocations skill currently only affects success rate, but could possibly
be used to give duels a power-dependent time limit. Water/lava-only
monsters cannot be dueled, and banishment from within the Arena is blocked
for both the player and monster.

Winning the duel opens a gate to return from the portal vault, and the
player will be forcibly teleported back after a short duration (to give
them some time to loot before leaving).

The Arena vault itself has a few cosmetic variations - any future variants
should remain simple, with minimal terrain, and should be small enough for
the whole arena to be in LOS on arrival. Each Arena also includes some
favoured of Okawaru spectating the duel and cheering/jeering, and these
could use some custom tiles and possibly more speech lines.

--------------------------------------------------------------------------------
7eff39e849 | Kate | 2021-08-15 22:21:15 +0100

Remove remaining support for mechanical traps
Cleans up a large amount of dead code, with a few very minor gameplay
implications - monster intelligence no longer has any effect on whether
they try to avoid specific traps, since its only remaining effect was on
friendlies avoiding teleportation traps. Instead of having only intelligent
allies avoid them, let all allies avoid them.

--------------------------------------------------------------------------------
4af1e16f07 | Kate | 2021-08-15 22:21:15 +0100

Remove mechanical traps from Sprints
They were already only a few left, and none of them were likely to have
meaningful effects. Also clean up a couple of other vault definitions with
'~' glyphs that weren't used in the vault itself any more.

--------------------------------------------------------------------------------
e36b712cf9 | Kate | 2021-08-15 22:20:58 +0100

Fix spelling
A pesky 'z' snuck back in.

--------------------------------------------------------------------------------
83978e0af5 | Nicholas Feinberg | 2021-08-15 13:42:48 -0700

De-indent Ignition logic

--------------------------------------------------------------------------------
3afc62176d | Nicholas Feinberg | 2021-08-15 13:38:17 -0700

Nerf Robin's damage
Reduce back to 0.26 levels. (This is in response to a big spike in
Robin kills in 0.27 - Robin was overlooked in those changes.)

--------------------------------------------------------------------------------
bfbcaea002 | Nicholas Feinberg | 2021-08-15 13:34:54 -0700

Give Sigmund his slow scythe back
581982f5c1d5d0416b5a increased Sigmund's attack speed by 33% (from
15 aut/swing to 10), which dramatically increased his lethality. Let's
bring him back to his usual level of cruelty.

--------------------------------------------------------------------------------
e028cf09b9 | Nicholas Feinberg | 2021-08-15 13:34:23 -0700

Cut Jackal spawn rate considerably
This rose by about 75% from 0.26 to 0.27, which wasn't intended and
considerably increased early game caster deaths. There's probably more
cleanup to be done here.

This seems to increase D:1 XP somewhat; that might have other knock-on
effects...

--------------------------------------------------------------------------------
77845bc91e | Nicholas Feinberg | 2021-08-15 13:33:42 -0700

Add a message for dj quaffing magic
When quaff-iding !magic, add a message indicating that it was
useless for you.

--------------------------------------------------------------------------------
10db4a4e68 | Nicholas Feinberg | 2021-08-15 13:33:22 -0700

Remove 8x from starburst damage description
Not really meaningful. Should Fireball be 9x..?

--------------------------------------------------------------------------------
1a3d647539 | Nicholas Feinberg | 2021-08-15 13:32:55 -0700

Tighten up Usk description
Remove some distracting fluff to make it clearer what 'the dance'
is.

--------------------------------------------------------------------------------
5ad2e3275a | Nicholas Feinberg | 2021-08-15 13:32:29 -0700

Fix the build

--------------------------------------------------------------------------------
f2ccef998a | Nicholas Feinberg | 2021-08-15 13:28:01 -0700

Make all shields only use Dex
Instead of kite & large shields using a mix of strength and dex for
bonuses. I doubt this will have a large impact on most characters,
but should make shields a little simpler to reason about, and will
reinforce Dex's role as a defensively focused attribute.

--------------------------------------------------------------------------------
6dc78333b9 | Nicholas Feinberg | 2021-08-15 13:27:45 -0700

Randomize wizmode player ghost names
Seemed funny.

--------------------------------------------------------------------------------
162c5fecbd | Nicholas Feinberg | 2021-08-15 13:27:26 -0700

Customize antimagic wield messages for dj
Since it has no effect on them.

--------------------------------------------------------------------------------
722926ba4e | Nicholas Feinberg | 2021-08-15 13:27:10 -0700

Remove nonexistent prop references
Added in 0d0c82d5f74 but never actually implemented.

--------------------------------------------------------------------------------
184090c6a4 | Nicholas Feinberg | 2021-08-15 13:27:08 -0700

Constify almost all string literal props
To avoid silly issues caused by typos.

The rest should probably be constified too, I just ran out of energy.

--------------------------------------------------------------------------------
3b27209acc | Nicholas Feinberg | 2021-08-15 13:21:57 -0700

Remove separate acc/damage plusses
Funny antique leftover in vaults parsing code.

--------------------------------------------------------------------------------
e0fec98b5a | Nicholas Feinberg | 2021-08-15 13:21:45 -0700

Remove curses
A few last leftovers.

--------------------------------------------------------------------------------
9f22321abd | Nicholas Feinberg | 2021-08-15 13:21:27 -0700

Standardize more monster Blink spells
This should again have very few gameplay effects, but along with fixing
the sap magic interaction, this will also cause blink range, blink away,
and blink close to cause (a tiny amount of) noise. Exciting!

--------------------------------------------------------------------------------
09c23b12f5 | Nicholas Feinberg | 2021-08-15 13:21:12 -0700

Standardize monster Blink spell logic
Remove a weird special code branch. This should have very few gameplay
effects, though does mean that sap magic will interact properly with
Blink.

--------------------------------------------------------------------------------
d229782820 | Nicholas Feinberg | 2021-08-15 13:20:18 -0700

Fix MCC goldification
Looks like it was intended that MCC would still make gold under
Gozag, but one vital check was missed.

--------------------------------------------------------------------------------
f319017eea | Nicholas Feinberg | 2021-08-15 13:16:20 -0700

Simplify find_maxwells_possibles()
Use grid_distance() instead of reimplementing it and de-indent.

--------------------------------------------------------------------------------
0a0d85e590 | Nicholas Feinberg | 2021-08-15 13:16:20 -0700

Give Maxwell's LOS range
Range was limited to 5 to avoid risk-free murder of statues, but,
as a level 8 spell, it's probably fine to murder statues freely.
It's simpler to reason about the spell if it can hit anywhere in
LOS - players already get confused about the delayed targeting, so
we don't need to add more space for ambiguity. (If it did miss due
to being outside range, it'd be quite unclear what had happened.)

--------------------------------------------------------------------------------
71813d69f4 | Nicholas Feinberg | 2021-08-15 13:16:20 -0700

Simplify maxwell's name code
monster::name already handles invisible monsters, and we don't have to
worry about ones around corners.

--------------------------------------------------------------------------------
ff2bc6137f | Nicholas Feinberg | 2021-08-15 13:16:20 -0700

Use constants for Maxwell's props
To avoid simple errors.

--------------------------------------------------------------------------------
fe3a445f75 | Nicholas Feinberg | 2021-08-15 13:10:50 -0700

Improve maxwell's no-target message
Clarify that it failed due to a lack of target. ('Nothing happens' is
very unclear in this context! And many others...)

Also, de-indent.

--------------------------------------------------------------------------------
6365dcfadc | Nicholas Feinberg | 2021-08-15 13:10:50 -0700

Add a message for Maxwell's charge
To clarify that something is actually happening when you hit '.'.
The flashy status effect is cool, but very easy to miss if you aren't
looking for it.

--------------------------------------------------------------------------------
ab93a79d97 | Nicholas Feinberg | 2021-08-15 13:10:49 -0700

Tweak Coupling desc
Clarify that you need to channel. Remove a mention of relec - not a
confusion people seem likely to have.

--------------------------------------------------------------------------------
182d1643c2 | Nicholas Feinberg | 2021-08-15 13:09:04 -0700

Trigger battlesphere on staff of battle hits
It seems cool.

--------------------------------------------------------------------------------
a8238b5478 | Nicholas Feinberg | 2021-08-15 13:08:02 -0700

Move mobile golems onto 9
The '8' glyph was overstuffed, with 22ish monsters, while '9' had
only 3. Shifting all mobile monsters from '8' to '9' creates a much
better balance: 16 '9's and 9 '8's.

If we want to have more golems or statues later, this should give
us more flexibility. It also means that saltling no longer shares a
glyph & colour with pillars of salt & diamond obelisks.

--------------------------------------------------------------------------------
d52c3af447 | Nicholas Feinberg | 2021-08-15 13:05:44 -0700

Simplify airstrike damage
Remove the floor of 3 on bonus damage from surrounding empty spaces.
Now that we display this to players, it's too confusing to try to
explain. This is a small nerf.

--------------------------------------------------------------------------------
176428ccee | Nicholas Feinberg | 2021-08-15 13:05:42 -0700

Display airstrike bonus in the targeter

--------------------------------------------------------------------------------
febfb30b37 | Nicholas Feinberg | 2021-08-15 13:04:56 -0700

Show empty spaces around Airstrike targets
And avoid information leaks.

--------------------------------------------------------------------------------
e8fccdb193 | Nicholas Feinberg | 2021-08-15 13:04:55 -0700

Add an airstrike targeter
Show a brighter or darker target indicator based on the number of
empty spaces around the target.

--------------------------------------------------------------------------------
4aefe609b9 | Nicholas Feinberg | 2021-08-15 13:04:55 -0700

Show shatter damage in the targeter
Highlight susceptible enemies with AFF_MULTIPLE and show enemies
that take reduced damage (eg jellies) with AFF_MAYBE.

--------------------------------------------------------------------------------
63affc0d33 | Nicholas Feinberg | 2021-08-15 13:04:55 -0700

Make the Shatter targeter more precise
Show visible affected monsters & walls, including the chance to
shatter different terrain types (roughly).

--------------------------------------------------------------------------------
99093fa9e1 | Nicholas Feinberg | 2021-08-15 13:02:34 -0700

Remove the rune requirement to enter ziggurats
This was added in 07949ec7b9c0 as a replacement for the old gold-based
ziggurat entry cost, rather than as something with a solid justification
in itself. Later discussions (e.g. 
https://s-z.org/crawl-dev/%23%23crawl-dev-20140929.lg )
suggested that the reason for the 2-rune requirement was as a 'progression'
between Vaults and Zot.

The Zot rune lock exists so that players are forced to battle the difficult
and exciting encounters guarding runes before winning the game, and
the Vaults rune lock likewise exists to encourage players to get at least
one rune earlier, while the earlier S runes are still challenging. The Zig
rune lock, in contrast, has no real justification other than history. So
let's cut it!

--------------------------------------------------------------------------------
cafe5c4f27 | Nicholas Feinberg | 2021-08-15 13:01:55 -0700

Give Enchanters invisibility again
Corona is not a very fun spell to use. The player is being asked to
spend their time flipping a coin, and, unlike Ensorcelled Hibernation
or Petrify or similar spells, they don't get a satisfying reward.
Instead, they get a roughly 20% accuracy increase, which is really
quite hard to notice. Most of the time, players are better off throwing
stones or doing almost anything else.

So, we'll remove Corona from the Enchanter starting book (that is, leaving
them without a level 1 spell) and give them a single potion of invisiblity
instead. This should be a net buff to the background overall. (It's a nerf
to muen, but mummies should be used to suffering by now.)

Arkane markspersons will be addressed in some way once ranged combat is
reworked. They aren't changed in this commit.

Does not revert 64f0e6ef8afa5d38b99351a6346e47b553adcc76 .

--------------------------------------------------------------------------------
027562a8d8 | advil | 2021-08-15 09:41:55 -0400

refactor: improve Menu action api a bit (take 2)
Previously, the general on_single_selection function needed to handle
selection for every MenuEntry, leading to things like conditioning on
hotkeys in an awkward way, code being split up, etc. -- at least for the
Menu use cases I've been introducing in the 0.27 cycle (macro submenus
and the like). This commit lets a MenuEntry be defined directly with an
action in the form of an on_select function, making for more coherent
(though not less verbose) code in macro.cc.

This reverts commit e9cb50d38746ba62bce27ec046d3c630cd5bc1b2.

--------------------------------------------------------------------------------
cbb86046cc | Kate | 2021-08-15 00:38:20 +0100

Rebrace

--------------------------------------------------------------------------------
e31878e1fe | Kate | 2021-08-15 00:37:39 +0100

Don't consider rings of rPois useless for bloodless vampires
The useless item filter shouldn't drop items which will become useful again
on returning to life.

--------------------------------------------------------------------------------
f70498e230 | Kate | 2021-08-14 23:25:11 +0100

Improve vampire transformation messages

--------------------------------------------------------------------------------
8d3330d46d | Kate | 2021-08-14 23:25:11 +0100

Make potions of attraction wake up monsters
Other methods of forced movement (Beckoning, Gravitas, etc) all wake
monsters up, so potions of attraction not doing so is fairly unintuitive.

--------------------------------------------------------------------------------
73ec313a74 | Nicholas Feinberg | 2021-08-13 19:30:46 -0700

Fix yellow drac monster cast messages
Broken since 29bf9f277ad , 2016.

--------------------------------------------------------------------------------
e9cb50d387 | advil | 2021-08-13 19:18:01 -0400

Revert "refactor: improve Menu action api a bit"
This broke some inventory menus, apparently. I don't have time to do a
direct fix right now.

This reverts commit 1b086527081208bf4a99ba5dbfafc23619dfe122.

--------------------------------------------------------------------------------
fd0ec89410 | advil | 2021-08-13 12:01:58 -0400

doc: fix a confused comment

--------------------------------------------------------------------------------
1b08652708 | advil | 2021-08-13 11:52:12 -0400

refactor: improve Menu action api a bit
Previously, the general on_single_selection function needed to handle
selection for every MenuEntry, leading to things like conditioning on
hotkeys in an awkward way, code being split up, etc. -- at least for the
Menu use cases I've been introducing in the 0.27 cycle (macro submenus
and the like). This commit lets a MenuEntry be defined directly with an
action in the form of an on_select function, making for more coherent
(though not less verbose) code in macro.cc.

--------------------------------------------------------------------------------
a53d8862b5 | advil | 2021-08-13 11:52:12 -0400

refactor: unify some slaying calculations
This is a followup to 09634a79b; adopting the assumption there that this
calculation should be the same for monsters and players, just unify the
code so they would be modified together. (Also, add a comment on the
oddity of this calculation.)

--------------------------------------------------------------------------------
a52ba8600a | Nicholas Feinberg | 2021-08-12 10:46:39 -0700

Redewiggle
Closes #1825.

--------------------------------------------------------------------------------
278a0e9555 | Nicholas Feinberg | 2021-08-12 10:34:31 -0700

Rewriggl
This reverts commit 9df8b82d6f4c636b92ce8c650f64e25a7c1e846f.

--------------------------------------------------------------------------------
9df8b82d6f | Nicholas Feinberg | 2021-08-12 10:32:48 -0700

Dewriggl

--------------------------------------------------------------------------------
b8161351ab | advil | 2021-08-12 13:13:46 -0400

fix: rework fungal movement behavior
Previously, fungus movement constraints were checked (at least) once per
square they consider moving to. For deathcaps and wandering mushrooms,
this is fine; their constraint is absolute. For lurking horrors, this
led to some odd behavior: the `random2` call is rerolled for every
possible target square, leading to a chance for movement that is a bit
hard to reason about, and determined largely by the degree of openness
around the monster. Various people have also reported that lurking
horror movement patterns have changed, with them becoming more likely to
charge and having weirder ("wiggly") paths. I *think* that to the extent
this is true it is because of subtle interactions with changes in
monster pathing over time: monsters consider more path options than they
used to (I think), and so the odds of them charging at a distance have
changed, and their paths are drawn from a wider variety of indirect
paths. There may also have been an interaction with the introduction of
squarelos. Though I have tested them with versions going back to 0.12
and the changes are not gigantic.

This commit moves the movement check out of the low-level movement code,
and so does the random check only once. This means that a lurking horror
always has exactly 1 in LOS+1 chances of moving at the edge of LOS, rather
than up to 5 in LOS+1 chances depending on the terrain.

One noticeable side effect of this change is that a wandering mushroom
at the edge of los will follow a foe as they move out of los, rather
than giving the foe a turn out of los. This is because the sequencing is
that the player moves, the fungus is out of los, and then can move. On
the old code, the movement target was also considered, perhaps for this
exact scenario. So if players find this too confusing, it may be
necessary to restore some version of it at least for wandering mushrooms
and deathcaps. I don't think lurking horrors would need it.

--------------------------------------------------------------------------------
169bfb5c5e | advil | 2021-08-12 10:27:47 -0400

fix: indicate SK_THROWING as a skill for stones (mishima)
The only impact that I know of is that the skill will show up by default
in the skill menu, but there could be other side effects.

--------------------------------------------------------------------------------
2bf3c13a2f | advil | 2021-08-12 00:54:00 -0400

fix: clean up redundant warning prompts
This affected bad items when no hostiles were in view, they led to a
double prompt.

--------------------------------------------------------------------------------
53fca2b799 | advil | 2021-08-12 00:54:00 -0400

feat: targeter and range checks for scroll of torment
This also fixes (?) the handling of torment resistance in monster_info,
where it seems to have been mostly ignored. Unless I'm missing
something...

--------------------------------------------------------------------------------
a44e4a4e2b | advil | 2021-08-12 00:54:00 -0400

fix: don't show ranged to-hit for non-missiles in default targeter
This was specifically showing up for scrolls of torment, which don't
have a targeter, but all of the details that this prevents are
applicable only when this targeting behaviour is used for missiles.

--------------------------------------------------------------------------------
7ef01f2898 | hellmonk | 2021-08-11 23:11:07 -0400

feat: New ghost vault with an iron shot theme

--------------------------------------------------------------------------------
8873947cb4 | hellmonk | 2021-08-11 21:46:24 -0400

Improve descriptions of some weapon types (hawthornbunny)

--------------------------------------------------------------------------------
8b7c386d52 | advil | 2021-08-11 18:01:45 -0400

fix: use current los for lurking horror movement checks
This doesn't really fix whatever general problems there may be with
lurking horror movement, but it at least keeps them from getting stuck
at the edge of Barachi vision range. (It shouldn't affect smaller ranges
significantly because of the you.see_cell(targ) check.)

--------------------------------------------------------------------------------
844de0d849 | advil | 2021-08-11 17:07:12 -0400

fix: quiver range check for blinkbolt
When there is no enemy in blinkbolt range, gray the quiver and improve
autofight messaging.

--------------------------------------------------------------------------------
c083491d3f | advil | 2021-08-11 16:59:27 -0400

fix: enforce range in blinkbolt targeting (kate)
Previously, you could use ! or @ to target an enemy out of range, and
blink to the end of range along the bolt path. This imposes the
targeting restriction from power leap and line pass that also requires
the monster target to be in range. (It also renames the relevant enum
value and clarifies the comments in the enum.)

--------------------------------------------------------------------------------
0b5ac8c916 | advil | 2021-08-11 13:32:38 -0400

feat: a better wizmode interface to feature placing
Sometimes for debugging purposes it is helpful to set up specific
dungeon layouts in wizmode, but the interface via `&` for doing this was
really quite painful. This commit adds a much better interface for
placing a bunch of features quickly, via some wizmode-specific abilities
that provide a helpful targeter. It may or may not be a good idea to
have wizard-specific abilities (none exist prior to this), and if it
turns out to be too annoying, I can convert these back to something more
like the old `&` interface and selection. But for now, let's try this --
they are very convenient to access.

Some further features it would be nice to have if there's demand (but
since none of this is user-facing, low priority):
* a way to change the feature being built within the targeting
  interface, right now you need to use the separate ability.
* some way to create feature_property_types, right now you have to use
  the old UI to do this.
* a better feature selection interface, what's there is the old one
  split off into its own function.
* a way of toggling xray vision in the targeter? This is definitely most
  useful with xray vision on.

(Is this the beginning of dcss creative mode???)

--------------------------------------------------------------------------------
49a0850c41 | advil | 2021-08-10 17:00:12 -0400

fix: improve message order for constriction damage
This needs to message before the `hurt` call, otherwise various messages
in `ouch` don't make sense, and messaging is missing entirely on player
death.

--------------------------------------------------------------------------------
1f5599b4a6 | advil | 2021-08-10 16:45:07 -0400

feat: add a killer type for constriction
Dying by constriction was completely undistinguished from melee damage
aside from a status; this is probably ok for a direct constriction
attack but is very confusing for BVC/grasping roots. On par with things
like barbs and collisions, add a ktyp.

--------------------------------------------------------------------------------
4baf66127a | advil | 2021-08-10 10:18:39 -0400

fix: properly handle return on y/n popups with hover
Return was just sending the default answer, not the selected one. (For
legacy reasons, Menu distinguishes between on_single_select and pressing
the hotkey for the item, but this really should be cleaned up so that
Menus don't constantly need the kind of on_single_select I just added
here.)

--------------------------------------------------------------------------------
63c4f9efeb | Kate | 2021-08-10 10:04:11 +0100

Remove mechanical traps from Tomb:1
The Tomb:1 corridor still had some mechanical traps left over.

--------------------------------------------------------------------------------
18048e5a82 | Kate | 2021-08-09 23:31:50 +0100

Add targeters for Blink, Disjunction, and Manifold Assault

--------------------------------------------------------------------------------
47d82705ae | Kate | 2021-08-09 16:10:53 +0100

Fully identify some partially-identified randarts
Partial identification of these items is fairly confusing from a distance,
since outside of specific rare vault placements, almost all items are now
either fully unidentified or fully identified. Instead of partially
identifying vault randarts and displaying the brand or base type but no
other properties, just fully identify any randarts that have a fixed base
type or are unrand fallbacks with a guaranteed brand.

--------------------------------------------------------------------------------
2c61e4fb76 | Kate | 2021-08-09 14:21:20 +0100

Adjust a monster attack brand description
It's a little awkwardly worded either way, but rewording AF_BLINK to say
"blink self" fixes the case where monsters with the brand were referred to
as "it" even for monsters that should use a different pronoun.

--------------------------------------------------------------------------------
cfcbea5bde | Kate | 2021-08-09 14:21:20 +0100

Fix uselessness checks for rCorr
Rings of resist corrosion were incorrectly being considered permanently
useless with temporary rCorr active (from a potion or a form that provides
rCorr, for example).

--------------------------------------------------------------------------------
102d6777a4 | advil | 2021-08-08 14:07:30 -0400

feat: indicate existence of /help in webtiles chat
The existence of commands that this describes, especially /mute, were
not at all apparent to newer players, especially ones not familiar with
something like irc.

This commit also changes:
* don't count interaction with / commands as unread messages
* "back to game" -> "close", as a more accurate description of what this
  actually does. Also, maybe this should say "esc" unless focus is in
  the chat box? But no change here.

These will need a webtiles restart and possibly hard cache reset for
players to pick up.

--------------------------------------------------------------------------------
f9c1391b64 | advil | 2021-08-08 13:30:02 -0400

fix: don't credit the player for wrath kills (Turukano)
Wrath attacks reuse shadow creature code, and because of this, wrath
kills were credited in the same way that shadow kills were credited.

A version of this was supposedly fixed in 9176aad88b6178, but I don't
think it actually was. The relevant check is not to the monster's actual
mindex; in mon-death.cc killer_index is simply reset to the player with
the actual mindex discarded as long as mons_is_player_shadow returns
true. (As noted in the comment there I think this would all work better
if the wrath code didn't reuse the player shadow code in entirety, this
is a recipe for bugs to sneak in.)

--------------------------------------------------------------------------------
65e1ffefe4 | Edgar A. Bering IV | 2021-08-07 21:56:29 +0300

fix: okay then when cancelling Stack 5 (12622)

--------------------------------------------------------------------------------
325244837d | advil | 2021-08-06 16:07:12 -0400

fix: adjust targeter highlight colours
In terms of the practical effect, this ups the alpha values so that the
highlighters are more opaque; I also did a bit of color adjustment and
moved the dimmer highlight a bit towards gray. This makes them more
visible against blue and brown backgrounds, as in shoals. The new colors
are probably uglier, but they are definitely more visible. More tweaking
may be required. In the long run, I do wonder if some other color than
yellow might work better here, or even something more complex like
showing tile borders.

Under the hood, this replaces the targeter highlight tiles with
programmatically generated tiles, and fills out the tile tool with some
commands to make this possible to do.

--------------------------------------------------------------------------------
8149849420 | advil | 2021-08-06 12:12:26 -0400

fix: respect no_tele_into in pan landing selection
There is exactly one vault in pan.des which actually uses the prop, but
that vault definitely places a formicid-dooming tele trap, so let's
check the flag. I suspect it wasn't checked simply because historically
it wasn't used.

--------------------------------------------------------------------------------
934d61de66 | advil | 2021-08-06 12:02:31 -0400

feat: show no_tele in wizmode cell description
This is in order to make it very easy to double check vault props in
console.

--------------------------------------------------------------------------------
9442e6b4c1 | Edgar A. Bering IV | 2021-08-06 17:45:46 +0300

feat: add bolt of draining to tengu reavers

--------------------------------------------------------------------------------
718bdbf3cc | Edgar A. Bering IV | 2021-08-06 17:30:58 +0300

fix: reset ashenzari boosts with fishtail merging

--------------------------------------------------------------------------------
25d27de915 | Edgar A. Bering IV | 2021-08-06 16:35:10 +0300

fix: don't add a redundant spectral
Now that spectral is a brand we don't need to name the monster "a
spectral +4 spectral quarterstaff".

--------------------------------------------------------------------------------
b9de417b3f | Edgar A. Bering IV | 2021-08-06 12:50:55 +0300

fix: don't crash when abandoning ash with the finger necklace (CanOfWorms)

--------------------------------------------------------------------------------
9a7839dea9 | Edgar A. Bering IV | 2021-08-06 00:22:42 +0300

fix: range and chance in dispersal targeter

--------------------------------------------------------------------------------
9604337dc0 | advil | 2021-08-05 17:04:31 -0400

fix: render targeters after other overlays
After a lot of digging, it turns out that these are simply assembled in
the wrong order, so the targeter (ray) tiles are always drawn first. In
local tiles, the way alpha blending works means this doesn't matter (or
at least, I'm pretty sure that's what is going on), but in webtiles the
effect was that the targeter goes under other tiles. In particular, it
layered under wave tiles. This commit just brute-force pulls them out of
the overlay list and draws them last in this list. Possibly these
should be rendered even later.

Also, for future people digging into this: `draw_ray` does not draw
these ray tiles. I don't know what this function does draw.

--------------------------------------------------------------------------------
516ec72166 | Edgar A. Bering IV | 2021-08-05 22:32:34 +0300

feat: treat *Rage as intentionally hasty
Players excpect it, the property is identified, berserk is triggered
when the player makes a choice, and other intentional berserks anger
Chei.

--------------------------------------------------------------------------------
312a84cf96 | Edgar A. Bering IV | 2021-08-05 21:37:18 +0300

fix: keep the lighthouse keepers from the flame

--------------------------------------------------------------------------------
7c29f1f256 | advil | 2021-08-05 12:05:57 -0400

fix: handle multiple SDL key events for numpad `.`
For some reason, SDL is sending both . and Del for numpad . on some
keyboards, even when . isn't delete. This commit handles that case by
suppressing the . when there's a double event, and providing a default
mapping of delete to CMD_WAIT. This should be fine because it's
previously unbound, but I've set this to local tiles only; it seems
buggy that SDL is sending this keycode at all (at least on my keyboard),
so this may be a temporary fix if I can figure out what is going on
here. SDL numpad handling generally needs some attention.

For background on the key handling issues, see af9c1943b0bc.

Reported by discord user Dank Memer.

--------------------------------------------------------------------------------
70931ec564 | Edgar A. Bering IV | 2021-08-05 18:54:53 +0300

fix: update acrobat for quiver-fired wait spells

--------------------------------------------------------------------------------
2d7b7a1a19 | Edgar A. Bering IV | 2021-08-05 18:19:00 +0300

fix: display hit chance in the starburst targeter

--------------------------------------------------------------------------------
9707f7362f | advil | 2021-08-03 12:35:43 -0400

fix: mark ENCH_SHORT_LIVED in monster descriptions
Indicate that briar patches will crumble away.

--------------------------------------------------------------------------------
444c7a33f5 | Nicholas Feinberg | 2021-08-01 21:11:30 -0700

Alphabetize gods.txt
Move Wu Jian into its proper location.

--------------------------------------------------------------------------------
53beef7077 | Nicholas Feinberg | 2021-08-01 16:43:17 -0700

Fix Tukima's description (rockygr)
Forgot to touch this when I allowed Tukima to affect ranged weapons.

--------------------------------------------------------------------------------
616f7b5f32 | Kate | 2021-08-02 00:11:35 +0100

Fix Summon Lightning Spire not having a targeter
As with other summons, it should show potential locations when its targeter
is enabled via the force_targeter option.

--------------------------------------------------------------------------------
1dcfd26496 | Kate | 2021-08-01 23:34:27 +0100

Fix spelling in a description
Missed this one in 70c531d6.

--------------------------------------------------------------------------------
15dc114455 | advil | 2021-08-01 14:16:25 -0400

feat: keycode help for macro mappings
This introduces a detailed help screen for crawl-internal keycodes, and
shows it in a couple of places in the macro menu. Some TODOs:

* map SDL keycodes to this space so things are uniform across build
  targets
* generate this help automatically from keycodes
* fix a bug in webtiles where a popup over a title prompt does not
  receive focus for key input

--------------------------------------------------------------------------------
42140f4989 | Nicholas Feinberg | 2021-08-01 09:31:24 -0700

Fix transform wieldability display bug (sanka)
Weapons that couldn't be wielded due to your current form (e.g. due
to Blade Hands) would claim to be "too large" when examined. This
should no longer occur.

--------------------------------------------------------------------------------
16105a9d8c | gammafunk | 2021-08-01 11:21:45 -0500

fix: Identify a guaranteed vault potion (Yermak)
In wizlab_wucad, there's a guaranteed potion of experience. Pre-identify
this potion in a way consistent with how we identify other guaranteed or
highly probably loot types and properties.

--------------------------------------------------------------------------------
77753f3aa7 | gammafunk | 2021-08-01 11:21:45 -0500

feat: Don't use trees in a Swamp transporter vault
The vault gammafunk_worm_tunnel uses a border of trees to help it blend
in with the surrounding level. It's trivial to burn some of these trees
with an item as common as scroll of immolation and collect the loot in a
way that bypasses all threats in the vault. Also, the vault's size has
been greatly reduced, so it doesn't stand out in a drastically weird
way. This commit restores the stone walls when it places in Swamp, so it
uses the same wall type in all places it generates.

--------------------------------------------------------------------------------
84acfa7270 | advil | 2021-07-31 16:19:07 -0400

fix: speed up explosion calculations (gammafunk)
The check for whether a cell had already been seen with count value <= n
was not properly taking into account the additive factor cadd that is
accumulated on recursion, and so was redoing a lot of calculations to no
extra effect. This led to big slowdowns on e.g. firestorm targeters in
open areas. Or at least, that's what I *think* was happening, this
algorithm is pretty complicated. But this change speeds things up quite
a bit, and doesn't change explosion shapes as far as I can tell.

N.b. this function is still called many times during targeting, but
without noticeable slowdown after this change, in my profiling.

--------------------------------------------------------------------------------
dd8709b231 | Kate | 2021-07-31 20:58:50 +0100

Fix poison-vulnerable monsters displaying as meph immune

--------------------------------------------------------------------------------
91ee094a69 | robertxgray | 2021-07-31 15:11:26 +0200

Move Android related ignores to crawl-ref/.gitignore

--------------------------------------------------------------------------------
11f8450190 | robertxgray | 2021-07-31 00:27:13 +0200

Update Android port to 0.27
- Fix compilation errors with current code.
- Fix small layout. Some errors were introduced with MUT_HP_CASTING.
- Fix #1702. Cache not rebuilding on upgrade.
- Fix title when show_game_time option is set.
- Fix small layout crashing with limited vertical space.
- Restore virtual keyboard on landscape mode.
- Move toggle keyboard button from commands to system.
- Add toggle keyboard button in the new main menu. Shortcut (F12)
  assigned for consistency.

--------------------------------------------------------------------------------
f8cea274af | robertxgray | 2021-07-31 00:26:56 +0200

Update Android build
Tested with DCSS 0.26.1, SDK for Android 11 (API level 30) and NDK
version r22b.

Build changes

- Added a gradle build setup for the android app.
- Removed previous build.xml.
- SAVEDIR static storage path repaced with
  SDL_AndroidGetExternalStoragePath.
- Disable FORTIFY in lua to avoid runtime errors.
- Updated various #ifdefs for __ANDROID__ and TOUCH_UI to handle
  current android builds.
- TOUCH_UI build is no more. Most of the code has been removed because
  it's not working as expected. The rest has been merged in the
  Android build.
- Some __ANDROID__ directives are no longer required for the build.
  They have been removed.

New features

- Show keyboard icon now can also be used to hide the virtual keyboard.
  Renamed to: Toggle keyboard.
- Android's back button no longer hides the keyboard when the Activity
  is focused, now it behaves like an alias for the escape key.
- The volume keys can be used for zooming the dungeon and the map.
- Two finger scroll can be used on menus.
- Custom font configurations to improve readability in small screens.
  The game auto scales in high resolution displays.
- Added summary of Android controls to the help screen.
- New option: tile_window_minimum. When set to false, disables the
  window size restrictions for testing purposes.
- The small layout has been fixed and improved. Now it shows the same
  information as the default layout and the tab menus scale better to
  modern smartphone displays.
- Small layout can be enabled with configuration option:
  tile_use_small_layout. This is now the default on Android.
- Custom keyboard inspired by the ascii port. It is no longer needed
  to install 3rd party apps por better gameplay.
- Support for physical keyboards.

Fixes

- The game is saved when the Activity is paused. It was very easy to
  lose progress (on purpose or by mistake) before.
- If the virtual keyboard is visible when the Activity is paused, it
  will be visible again when the Activity is resumed.
- The main menu no longer hides behind the virtual keyboard on startup.
- Lots of fixes for the small layout. It no longer crashes on
  vertical displays.
- Controls fixed on Android 10 and newer.
- Fix game crash when wielding a launcher while quivering something
  different than the ammo.
- Replace various fopen with fopen_u when opening the bones files and
  some wizard, test and debug functions.
- Set the external storage path as the working directory to fix
  several write permission errors.
- Don't show the keyboard on portrait mode to avoid crashes on some
  devices because of the lack of vertical space.

--------------------------------------------------------------------------------
49dcd67cf8 | gammafunk | 2021-07-30 13:04:52 -0500

doc: Credit ZureaL in the server admin list
I've also reorganized these names using the "last name or nick" ordering
that we use for other credits.

--------------------------------------------------------------------------------
3707ed8130 | advil | 2021-07-30 13:08:41 -0400

fix: handle clicking on non-chr hotkey items correctly
When input is sent via `data`, it is passed through `chr()` in the
python code. But, the value stored here is a keycode and may be negative
for special keys, so this was causing an exception in python. This comes
up specifically when clicking on macro menu entries for some special keys,
and pretty much nowhere else (the main menu uses esc, but this is still
a positive keycode). On the user side, it's relatively harmless, the
symptom is just that clicking doesn't work, so backporting to stable is
not urgent. It just produces log messages.

Two changes around this:
* for arrow-selection menus, don't use the hotkey at all, force calling
  on_singleselect. (Hopefully in the future this distinction is better
  cleaned up.)
* send hotkeys via `keycode` rather than `data`, so that this code is
  more robust for the future. Should have no impact on current menus...

--------------------------------------------------------------------------------
bfdb43030f | advil | 2021-07-30 12:13:31 -0400

fix: extend aa6b198b to keydown handling (Spaniq, wheals)
This will be more impactful once full numpad key handling is back on,
but for now it is also impactful on keyboards that send a
high/numpad-specialized keycode for some numpad operator keys together
with a regular keypress (I can reproduce this on mine).

I think this override (and the one in aa6b198b) could be made better by
checking whether the menu is in key entry mode specifically, it doesn't
need to happen for the entire menu. However, I don't want to mess with
this too much just now.

--------------------------------------------------------------------------------
06dbe2521f | advil | 2021-07-30 10:09:38 -0400

chore: add a trunk reminder for the 0.27 tournament

--------------------------------------------------------------------------------
041002c0f2 | advil | 2021-07-30 10:09:24 -0400

Revert "chore: Add a trunk reminder for the 0.26 tournament"
This reverts commit e6e398f9e6a4651d34eba70066e19c64dbf84b5b.

--------------------------------------------------------------------------------
e6e398f9e6 | advil | 2021-07-30 10:06:28 -0400

chore: Add a trunk reminder for the 0.26 tournament

--------------------------------------------------------------------------------
6846a8eab2 | advil | 2021-07-30 10:06:28 -0400

fix: shorten tournament message to <80 chars
This is not wrapping on current UI for whatever reason, so just shorten
the message a bit so it can be fully shown on console.

--------------------------------------------------------------------------------
662ed650ad | advil | 2021-07-30 10:04:22 -0400

fix: temporarily disable new keymappings except 0-9
Because the previous commit fixes this in code that usually takes a
while to make its way into people's caches, I'm just temporarily
bringing trunk's keypad and fn key behavior in line with 0.27, in hopes
of getting the persistance bug to go away quicker.

This commit partially readds some of the legacy handling for function
keycodes in the -1000 range, so that their names aren't shown
confusingly for anyone actually using trunk while this commit is in
place.

I expect to revert this commit in the near future.

--------------------------------------------------------------------------------
f225e029a1 | advil | 2021-07-30 09:35:00 -0400

fix: actively reset keycode mappings on lobby load
Because these were getting set only on load of the entire app, my
attempts at versioned keycode mapping were getting reset only on a full
reload and therefore persisting across versions -- needless to say this
created a bunch of confusion.

--------------------------------------------------------------------------------
54b5640690 | gammafunk | 2021-07-30 00:13:20 -0500

doc: Final changelog updates for 0.27.0
Main and debian changelogs

(cherry picked from commit a0080399dad664af76b4aa87ab7530497249abb0)

--------------------------------------------------------------------------------
b16ffaf7c1 | Nicholas Feinberg | 2021-07-29 19:30:06 -0700

Djinni changelog rewording (gammafunk)
Mention using Spellcasting instead of spell schools.

--------------------------------------------------------------------------------
8378e6c968 | Kate | 2021-07-30 02:22:47 +0100

Remove mechanical traps from a Tomb entry vault
It was using the ~ random trap glyph, which shouldn't really be used
anywhere.

--------------------------------------------------------------------------------
271197699b | Nicholas Feinberg | 2021-07-29 14:36:36 -0700

Tweak end_maxwells_coupling
Reduce indentation and fix a typo.

--------------------------------------------------------------------------------
f87c99a2d6 | Edgar A. Bering IV | 2021-07-30 00:00:43 +0300

docs: update CREDITS.txt

--------------------------------------------------------------------------------
ed1d120c62 | Kate | 2021-07-29 21:54:54 +0100

End Searing Ray on Felid revival
In the extremely rare case of being revived on the same square that the
player died on, Searing Ray would continue being channeled.

--------------------------------------------------------------------------------
a6d7c33c12 | Kate | 2021-07-29 21:54:41 +0100

Fix compilation

--------------------------------------------------------------------------------
f67c460f1f | Edgar A. Bering IV | 2021-07-29 23:33:00 +0300

fix: expire ramparts and mcc on felid revival

--------------------------------------------------------------------------------
867ca72370 | Elliott Bernstein | 2021-07-29 23:33:00 +0300

fix: empty corrupting presence source messages
Closes #2046

[ Committer's note: also addressed the use of malmutate (currently
  ignored but good future proofing and adjusted the commit message. ]

--------------------------------------------------------------------------------
0740493359 | Edgar A. Bering IV | 2021-07-29 23:33:00 +0300

tile: Word of Chaos ability icon (CanOfWorms)

--------------------------------------------------------------------------------
04a2f65e3b | advil | 2021-07-29 16:23:44 -0400

fix: add some default bindings for distinct numpad extra keys
Some numpad operator keys may now be bindable separately from their
regular versions. This commit assigns as many of them as I could their
regular default bindings in various contexts. This commit is a bit
brute-force, and some eventual unification with local tiles would also
be nice.

It may actually be better in the long run to collapse the multiple
versions of `=/*-+.`? For one thing, I don't think the differentiation
of these across different devices is wholly reliable.

--------------------------------------------------------------------------------
eb8ac83edc | advil | 2021-07-29 11:21:21 -0400

fix: minimize impact of numpad changes on old versions
This commit should restore the exact (sometimes broken, but mostly
semi-working) behavior of the numpad on pre-0.27 versions. I've seen
reports of issues on e.g. 0.26 where it's a bit tricky to identify the
exact cause, and so this is to try to eliminate them. Possibly, some of
this can be later removed, e.g. this restores a browser-specific chrome
tweak that doesn't line up with my testing of current chrome in the wild
(that's why I originally removed it).

--------------------------------------------------------------------------------
fd831c5874 | advil | 2021-07-29 09:28:30 -0400

fix: capture ctrl+0-9 keys (dilly)
It does not look like the crawl binary handles these at all, so I'm not
sure how much this will do, but this may help with ctrl+numpad combos
where the number key is interpreted as an arrow/home/etc and the browser
was capturing it.

--------------------------------------------------------------------------------
fa555f5c9d | advil | 2021-07-29 08:58:00 -0400

fix: only normalize numpad number keycodes
The key conditional in 7b1be97da7 was converting too many cases; for
example it was possible for `code` to be NumpadX with arrows/home/etc.
This also should fix shift handling for a number of cases, depending on
what the keyboard actually sends.

* report 1 (Ham): shift-5 sends clear. This should now be fixed for this
  key configuration, as I think it was being prevented by keycode
  overwriting. It's worth noting that this is a pretty non-standard
  arrangement, and since we have no specific translation for shift-5, it
  probably just sends numeric 5 on many keyboards (as it does on mine).
  I'll await more reports to see if there should be some standardization
  for shift+5. Shift+0 is in a similar state.
* report 2 (dinky): `code` values lined up with number keys, but `key`
  and `keyCode` are arrow/home/etc. keys. Interestingly, no keypress
  event at all. Again, fixed by reining in keycode replacement.

We'll see what other exciting keyboard situations the world provides
next...

--------------------------------------------------------------------------------
7b1be97da7 | advil | 2021-07-28 15:01:48 -0400

fix: improve handling of numpad keycodes on webtiles
Modern browsers can differentiate numpad keycodes from their regular
versions quite straightforwardly, but this information wasn't being
handled well by the javascript interface. This was manageable on devices
that have numlock, because with numlock off, the keycodes for the
secondary keycodes are usually fine for movement, and the number keys
are available for macros. But on devices without numlock (like all macs
for many years), this was pretty annoying if you use the numpad for
movement -- there was no way to use the numrow number keys separately,
and rebinding them rebound the number pad keys. Moreover, these keys
were generally handled better on local console/tiles.

This commit attempts to remedy this situation along with some other
tweaks.
* key handling in the webtiles client now has a versioned component that
  can override unversioned key handling.
* Support for legacy F keycodes (see b0746d5dc15c) is dropped going
  forward. This will break some existing macros that used the (wrong)
  values in the range -1011 to -1014, these should be easy enough to fix
  up but basically the correct values are -265 to -268.
* The client uses w3c `code` values[1] to detect numpad keys in a way that
  works across browsers and maps them to (a version of) the internal
  keycodes that local console was already using for them. This means
  that default movement bindings etc continue to work for them.
* I did some standardization and cleanup of these keys for
  non-local-tiles builds, and their names will show in the macro editor.

[1] https://www.w3.org/TR/uievents-code/#code-value-tables

Caveats:
* The underlying curses code remains quite shaky, and numpad = is
  currently not handled at all.
* The versioned keymapping API is non-existent; and in the future we may
  want to consider modernizing this to check `code`.
* Probably more variation across devices / builds than is accounted for
  here...

--------------------------------------------------------------------------------
da2e87d069 | advil | 2021-07-28 11:35:06 -0400

fix: off-by-one error in menu calculations
This was causing javascript exceptions in webtiles with 1-item menus.
I'm not sure it was otherwise very consequential, maybe visual glitches
when spectating? I'm actually still not sure that this is being
calculated right (based on some output debugging) but it isn't causing
invalid menu jump_to targets any more, that I can find.

--------------------------------------------------------------------------------
f34e66f144 | gammafunk | 2021-07-28 01:40:20 -0500

doc: Mention Storm Form in the changelog

--------------------------------------------------------------------------------
560ac104fe | gammafunk | 2021-07-27 14:00:28 -0500

fix: Don't make redundant explosion calculations
Some targeters use explosion map data calculated by struct bolt for both
the minimum and maximum possible explosion radii. In cases where those
radii are identical, the calculations are still run twice. This commit
copies the minimum radius explosion data when the maximum data would be
identical.

--------------------------------------------------------------------------------
6621cef402 | gammafunk | 2021-07-27 13:58:42 -0500

fix: Correct the LRD targeter display (CanOfWorms)
The fragmentation targeter's display wasn't properly accounting for
intervening walls and statues and indicated additional cells as being
affected that were not in the final explosion. This was because the
targeter was running the explosion map determination code with the
incorrect arguments and beam flavor. The actual LRD explosion was
correct, since that's run later, and in the correct way.

This commit corrects the targeter logic so it agrees with the actual
explosion.

--------------------------------------------------------------------------------
4b2499a8ea | Edgar A. Bering IV | 2021-07-27 18:51:57 +0300

fix: apply item_slot when merging stacks from a shop
Closes #1685

--------------------------------------------------------------------------------
9cfa8ffb95 | Edgar A. Bering IV | 2021-07-27 18:14:39 +0300

fix: don't pick up floor-id'd useless items (12530)

--------------------------------------------------------------------------------
3fd8b35b7f | Edgar A. Bering IV | 2021-07-27 17:36:06 +0300

fix: adjust default autopickup
autopickup exceptions is an ordered option, put the good_item default
last so useless items that would be good for someone else don't get
picked up. Closes #2042

--------------------------------------------------------------------------------
9055cd164d | Edgar A. Bering IV | 2021-07-27 17:34:08 +0300

docs: correct an options guide entry

--------------------------------------------------------------------------------
af9d615c11 | Edgar A. Bering IV | 2021-07-27 17:20:18 +0300

fix: don't consider branded missiles emergency items
6be897d added these, unfortunately the `\` menu doesn't break down
missiles by brand and this has led to autopickup confusion reported in
several places by players, both inexperienced and veterans. So until the
interface issues can be revised let's not do that.

--------------------------------------------------------------------------------
8ae03cc802 | Edgar A. Bering IV | 2021-07-27 17:15:26 +0300

feat: two new quotes (hyperactiveChipmunk)
Move the old very ugly thing quote to fenstrider witches (where it fits
better) and put the muppet show quote on very ugly things. Closes #2043

--------------------------------------------------------------------------------
d9e24bc47f | Edgar A. Bering IV | 2021-07-27 10:26:43 +0300

docs: update the mailmap

--------------------------------------------------------------------------------
10cfe34aa0 | Edgar A. Bering IV | 2021-07-27 10:13:43 +0300

docs: two CREDITS renames

--------------------------------------------------------------------------------
6342605492 | Edgar A. Bering IV | 2021-07-27 09:30:14 +0300

docs: update the credits

--------------------------------------------------------------------------------
8dfe7f97f6 | gammafunk | 2021-07-26 23:38:42 -0500

fix: Have Overgrow fail after targeting (#2018)
Targeted abilities like Fedhas' Overgrow should always allow the
targeter to work before processing any failure chance. This way players
can see what they might affect using the ability targeter as part of
deciding whether the attempted use is worthwhile. Fedhas' other targeted
abilities already work this way, so have Overgrow do the same.

--------------------------------------------------------------------------------
bb1da1a3e9 | gammafunk | 2021-07-26 23:38:42 -0500

fix: Show affected walls for Overgrow (#2018)
Fedhas' Overgrow ability targeter lost its can_affect_walls() override
in the targeter reworks that followed positional magic. Restore this so
that the targeter can display which walls Overgrow will affect.

--------------------------------------------------------------------------------
84e2d79d80 | Kate | 2021-07-27 03:31:19 +0100

Move a volcano entry out of flame cloud range
volcano_tomb could still immediately drop players into a flame cloud on
entry.

--------------------------------------------------------------------------------
0adfcbbeba | gammafunk | 2021-07-26 16:06:34 -0500

fix: monsters targeting of invis players (dilly)
If a player goes invisible, monsters that have the player as a foe and
that are sufficiently close to the player will have their throwing and
launcher tracers "fuzzed" to indicate that the tracer hit. This allows
monsters to sometimes shoot at invisible players and works fine if the
player is reachable. But if the player isn't reachable, the logic leads
to monsters performing pointless actions that can lead to monster
collateral kills. For example, if the player goes invisible in front of
a group of hostile monsters behind glass, monsters that can throw or
fire launchers will attempt to shoot at the player, instead hitting
monsters in front of them.

This commit updates the monster logic in two places to prevent this
behaviour. First we don't allow invisible player "hit fuzzing" to work
for monster tracers if the player is not reachable under LOS_NO_TRANS.
Then we require monster throwing/launcher actions to have the same
"friendly monster or hostile monster with a LOS_NO_TRANS reachable foe"
requirement used for spells, most special abilities, potions, and
scrolls. The second change re-uses the result of a check we've already
performed to prevent the tracer from being fired in the first place.
The first change is still good to have, since it's not ever logical for
a tracer to falsely tell a monster that an unreachable player can be
hit.

The logic that governs under what conditions monster take certain
actions could be simplified more than I've done in this commit. Since we
are close to release I want any change to be as minimal as possible, so
this change will only affect throwing/launchers specifically. The other
types of actions either already have the "friendly or near foe"
condition described above, or do their own LOS_NO_TRANS check. I also
suspect that the "friendly" portion of "friendly or near foe" condition
can be dropped, since there's no reason a friendly monster would want to
bypass reachability conditions.

--------------------------------------------------------------------------------
95c66c932c | Edgar A. Bering IV | 2021-07-26 19:59:57 +0300

tile: blinkbolt ability icon (CanOfWorms)

--------------------------------------------------------------------------------
84096a565d | Edgar A. Bering IV | 2021-07-26 19:45:24 +0300

tile: Shatter the Chains ability icon (CanOfWorms)
Closes #2033

--------------------------------------------------------------------------------
e5760e785a | wheals | 2021-07-26 19:22:04 +0300

Remove CMD_FORCE_EVOKE_WIELDED

--------------------------------------------------------------------------------
17765e0794 | wheals | 2021-07-26 19:22:04 +0300

Change some false claims about staves
They cannot be evoked (except for some few unrands) and they are on | by
default, not \.

--------------------------------------------------------------------------------
643d97a57c | wheals | 2021-07-26 19:21:28 +0300

Standardize conversion of keycodes to text
Only main change is that End and its variants should be properly rendered
in the macro menu.

Just to be safe, though, this should not be cherry-picked.

--------------------------------------------------------------------------------
aa6b198bf9 | wheals | 2021-07-26 18:44:55 +0300

Allow +/- as inputs in the macro menu on Webtiles (Spaninq)

--------------------------------------------------------------------------------
9d592f0669 | CanOfWorms | 2021-07-26 09:40:12 -0400

Differentiate hydra tiles from plant tiles
The shape of hydras (necks that stick out of a body) is similar to some

plant tiles, so make the underbelly yellow to create contrast.
--------------------------------------------------------------------------------
f74fda84f9 | Kate | 2021-07-25 23:49:55 +0100

Don't turn clear doors opaque when sealing them
Closed clear doors were handled correctly, but opened ones were being
turned into regular opaque doors when closing them to activate a vault
warden's seal doors ability. Fixes #2024.

--------------------------------------------------------------------------------
dd470a43dd | Nicholas Feinberg | 2021-07-25 14:22:19 -0700

Block wereblood heals under death's door (dilly)
This check should probably be refactored in some way - I think it's
duplicated in a few places.

--------------------------------------------------------------------------------
269154a5ba | Kate | 2021-07-25 22:16:43 +0100

Don't destroy cursed weapons without prompting when changing forms
With a cursed holy wrath weapon equipped, trying to enter lichform would
prompt the player about unequipping and destroying their weapon, but if
the weapon was melded due to entering a different form first, there was
no prompt when swapping from that form to lichform. Fixes #2027.

--------------------------------------------------------------------------------
3c0819f736 | Edgar A. Bering IV | 2021-07-25 22:50:37 +0300

fix: don't crash checking books for rampage

--------------------------------------------------------------------------------
8ee6c6440a | mainiacjoe | 2021-07-25 22:29:03 +0300

Mephitic Cloud --> Corpse Rot in Book of Vapours
All the spells that appear in only one book and are not available in starting 
libraries are all level 7 or higher, except for Corpse Rot.  At the same time, 
Mephitic Cloud is available from Turn 1 for two backgrounds, and also appears 
in three books.  Thus with Mephtic Cloud being so easily gained, and Corpse Rot 
as hard to find as end-game spells, and both having a theme of noxious fumes, 
put Corpse Rot into the Book of Vapours in place of Mephitic Cloud.
--------------------------------------------------------------------------------
e5b3285e1b | a | 2021-07-25 22:26:39 +0300

Fix typo in the manual's Missiles section
This commit fixes a typo in the manual's Missiles section. The verb

should be "throw" since it's being used as an infinitive.
--------------------------------------------------------------------------------
d5dc72f758 | Edgar A. Bering IV | 2021-07-25 22:25:36 +0300

fix: fire fineffs after monster moves, too
Closes #2036

--------------------------------------------------------------------------------
30eb4d6358 | Edgar A. Bering IV | 2021-07-25 22:25:36 +0300

feat: increase penance for rampaging
Simplify the check, only apply it to a rampaged move (or a step with the
lightning scales) and always trigger the conduct. It should maybe cost
more than one piety per rampaged move, but I leave that for the future.

--------------------------------------------------------------------------------
390debcb5f | Edgar A. Bering IV | 2021-07-25 22:25:36 +0300

fix: give a hasty item warning for non-armour Rampage (u/Delicious-Most5180)

--------------------------------------------------------------------------------
70c531d6f8 | Kate | 2021-07-25 20:02:47 +0100

Fix spelling
A good instance where we used three distinct spellings, none of which were
the apparent standard Australian English spelling.

--------------------------------------------------------------------------------
aa4a0049d6 | Nicholas Feinberg | 2021-07-25 08:37:13 -0700

Embellish the changelog

--------------------------------------------------------------------------------
964c8b829e | Kate | 2021-07-24 21:29:15 +0100

Adjust some tutorial text
Tweak a spellbook name and wrap an overly long line in a summary.

--------------------------------------------------------------------------------
1e78e81bf7 | advil | 2021-07-24 10:56:10 -0400

docs: changelog updates
This is mostly filling in UI/options things; a few clarifications
elsewhere.

--------------------------------------------------------------------------------
6e044cfa68 | Kate | 2021-07-23 05:01:48 +0100

Update hints mode
Fix some typos and broken hint triggers, remove some obsolete hints, and
update some out-of-date information.

--------------------------------------------------------------------------------
84f66890ac | gammafunk | 2021-07-22 22:53:24 -0500

Update the changelog through 0.27-b1-2-g8387495791

--------------------------------------------------------------------------------
334057b17a | advil | 2021-07-22 15:50:32 -0400

fix: exclude autofight paths that can't see the target
This is a solution to:
  https://crawl.develz.org/mantis/view.php?id=11905
  https://crawl.develz.org/mantis/view.php?id=12576

In both of these cases, autofight's pathfinding gets into a trap because
under various conditions it prioritizes a move that doesn't keep sight
of the target along a path visible from the starting point. But, because
the search is greedy, it doesn't go back and try an alternative path
when this first attempt fails. Because (for whatever reason) it
prioritizes diagonal moves, the setup usually involves a diagonal, but I
think that switching the prioritization would lead to similar problems
for straight moves. The sequencing here looks very delicate and for the
most part it does seem to make do with a greedy search, so I didn't want
to try messing with this. Rather, this commit introduces a check that
throws out immediate moves where the current target would not be visible
from. I've convinced myself that in theory this is entirely safe to do:
if there's a path at all for autofight, there's a path that keeps sight
of the target at every point. (And of course, potential paths that
don't.) Hopefully this will hold up in practice.

--------------------------------------------------------------------------------
1ec5790e4f | Nicholas Feinberg | 2021-07-22 12:21:14 -0700

Fix webtiles display of corrosion (ShaperMC)
This is duplicated in three places. TODO: FIXME

--------------------------------------------------------------------------------
eb5a7e5f55 | advil | 2021-07-22 14:57:00 -0400

fix: default bind F1 to CMD_GAME_MENU
The `~` binding is ok-ish for US keyboards and has some resonance with
the previous binding on this key (which is now a submenu), but it's
pretty non-intuitive, and the symbol typically involves a complex chord
on many international keyboards. At the same time, ESC, which is a
typical binding for this in other games is fairly non-viable in crawl,
because it is used to clear mores and get out of menus very quickly,
while being a noop at the main interface. (The qw bot even has a
function where it exploits this to reliably exit menus.)

This commit adds F1 as a binding for the game menu. This still isn't
perfect, but is a much more likely key for such a thing than `~`. A lot
of people (including myself) like to bind F1 for e.g. casting, and this
is still fine; for advanced users the `~` binding still exists (or it
can be otherwise rebound).

Hopefully this all works across platforms, but I've tested on local
tiles, console, and webtiles and mac.

--------------------------------------------------------------------------------
fc94bf0d26 | Nicholas Feinberg | 2021-07-22 10:29:15 -0700

Make dancing launchers prefer ranged (gammafunk)

--------------------------------------------------------------------------------
643f2454ad | advil | 2021-07-21 17:30:13 -0400

fix: typo in comment
We can count this as resolves #1988

--------------------------------------------------------------------------------
835d75f5b3 | advil | 2021-07-21 17:02:12 -0400

fix: quiet a compiler warning (#2031)
Not sure about the other warning in this report, but this one is easily
fixed and the fix is probably better style.

--------------------------------------------------------------------------------
4fb8d4a8fc | gammafunk | 2021-07-21 15:24:46 -0500

feat: Reindent an Elf vault
Shameless commit scumming made to diverge trunk and stable!

--------------------------------------------------------------------------------
fb6a3606f8 | advil | 2021-07-21 13:32:00 -0400

feat: add a status light for inhibited regeneration
If this is too blinky, it can be easily removed. But I think it might be
helpful to see, and it also helps identify some corner cases (e.g.
situations where a monster can't attack but has the player as a foe).

--------------------------------------------------------------------------------
9e7ac92ab0 | advil | 2021-07-21 13:32:00 -0400

fix: don't rest when regeneration is inhibited
The first fruit of 05da648f!

This seems to have come about when 7fb00627a50e removed the vampire
check from player_regenerates_hp, perhaps under the assumption that this
function was not about current regeneration. However, it is used only
for current regeneration state, in order to decide whether resting is
pointless. As of this change, 5 with a monster in sight but out of reach
(e.g. across water) will trigger wait, not rest. Possibly it should also
message, analogous to i_feel_safe's messaging.

--------------------------------------------------------------------------------
e3c52671f8 | Nicholas Feinberg | 2021-07-21 10:20:09 -0700

Revert "Check for monsters, objects & features on move"
Broke autoexplore somewhat - see https://github.com/crawl/crawl/issues/2026 .

This reverts commit 09c7552f22266b3fe47164032a29611aefc84864.

--------------------------------------------------------------------------------
42a3d12a42 | advil | 2021-07-21 10:30:01 -0400

test: possibly fix randbook test
I'm pretty sure this was relying on an uninitialized static before this
commit. Unfortunately catch2 doesn't seem to work on M1 so I can't rerun
locally.

--------------------------------------------------------------------------------
81a68cc532 | advil | 2021-07-21 10:02:45 -0400

fix: improve some spell data statics
This applies the construct-on-first-use (v2) paradigm to a couple of key
spell data statics, so as to avoid static constructor order issues. This
may improve some hard-to-reproduce issues reported after a7dfd5ec23,
since the Options constructor is called on static initialization but
makes use of this constructor. Spell data isn't in place on the first
call so this may or may not really matter, but it can at least now
reliably be determined that spell data isn't set up yet.

--------------------------------------------------------------------------------
56f7456a25 | advil | 2021-07-21 10:02:45 -0400

fix: avoid static initialization of ability list
This is not necessarily an ideal fix, but is aimed at preventing static
initialization order issues resulting from a7dfd5ec23. After that, the
constructor for the static Options object relies on the static
Abilities_List object, and I suspect this is a source of crashes on some
builds reported in bugs like #2010 (this bug went away, but I have no
confidence that it is fixed).

--------------------------------------------------------------------------------
de56a17b89 | gammafunk | 2021-07-21 00:45:20 -0500

feat: Clarify bush and briar behaviour
Bushes and briar patches allow beams to pass through them unaffected,
but block explosions and enchantments, which is behaviour that wouldn't
otherwise be obvious to players. Document this aspect of plant physics
in their monster descriptions.

I don't mention the exceptions of beams from ranged Sticky Flame and
Chain Lightning being blocked, as those are niche.

--------------------------------------------------------------------------------
ff50d6eb01 | gammafunk | 2021-07-20 22:58:09 -0500

doc: Add a tier 1 vault demon to the mailmap

--------------------------------------------------------------------------------
de9417c70f | gammafunk | 2021-07-20 22:54:09 -0500

feat: Remove `allow_dup` from a shop vault (ardl)
This style of "inconvenient shop" is amusing, but less amusing the
second time you get it in the same game. Remove `allow_dup`, so it only
generates once per game.

--------------------------------------------------------------------------------
669cdb294d | gammafunk | 2021-07-20 22:33:34 -0500

feat: Allow spectral ego on certain weapons
Currently the spectral ego is only allowed on two-handed weapons or the
one-handed club base type, even for artefacts and vault-defined weapons
that request the spectral ego. Yet the scroll of brand weapon bypasses
this exception, allowing spectral as a result on any one-handed melee
weapon, to help make that scroll more exciting. We already have the
weapon property data to limit spectral to only club or staves on mundane
generated items. This commit removes the handedness restriction for
spectral, thus allowing it to generate on all artefact melee weapons and
on vault-defined melee weapons that specifically ask for that ego. This
won't increase the amount of spectral too much and makes the ego's logic
consistent. It's now simply a melee-only ego that's allowed on
artefacts, like other such egos, but is limited to clubs and staves for
mundane weapon generation.

--------------------------------------------------------------------------------
60587a63ad | gammafunk | 2021-07-20 22:23:24 -0500

feat: Adjust monster-placing Elf vaults
Most changes are to refactor syntax of recently merged Elf branch
monster vaults by nicolae. We use numeric glyphs for monsters and
simplify statements. A couple vaults have more significant changes, as
described here:

nicolae_elf_defective_weapons_storage:

Instead of having various helpless and inneffective dancing weapons,
rework this vault to place dancing weapons that all have some kind of
permanent debuff (and hence are still "defective"), but have other
aspects allowing them to still be significant threats. Break weapons up
into three tiers by type of ego we'll give as well as type of debuff:
fast acting chaos weapons get blindness, slower acting distortion
weapons get slowness, so they'll be slower than normal speed, and we use
highest quality base types for venom, but make them "damaged" (-1 to -4
enchant) and permanently corroded.

The vault is now a runed door vault since it's fairly dangerous and
having these weird weapons leak out into the level would ruin the theme.
Not to mention that the blind weapons need to stay in a fairly confined
area to be effective. It's layout has gotten a slight trim to completely
reveal the loot inside. Since I worked with nicolae to re-imagine this
vault, we agreed to rename it to
nicolae_gammafunk_elf_defective_weapons_storage.

nicolae_elf_double_double_double_trouble:

This is a runed door vault, but the current layout means a player might
be forced to open the door to reach otherwise disconnected areas in Elf.
We like to avoid forcing players to take runed doors, and although two
blade masters with two double swords is not an especially dangerous
threat that would normally warrant a runed door, it's helpful for the
specific theme of this vault. So mark the doors and sealed areas of the
vault as opaque for connectivity purposes. Add more runed door to keep
the two blademasters separated, increasing the visual theme. Upgrade one
of the blademasters' double swords to either good_item or randart, thus
allowing them to pose a bit more of a threat. Finally, introduce a
star_item and two normal item loot pieces on both sides of the vault,
giving some incentive to open the vault for those who wouldn't benefit
from the weapons.

--------------------------------------------------------------------------------
979284e43a | Nicolae Carpathia | 2021-07-20 22:23:24 -0500

Update elf_deep_mausoleum based on gammafunk comments

--------------------------------------------------------------------------------
ddbec97b21 | gammafunk | 2021-07-20 22:23:24 -0500

feat: Adjust some Elf entry vaults
For nicolae_elf_arrival_dilemma, technically we shouldn't require
passage through a runed door like this to the rest of a level, but I'm
allowing it in this case. The right side of the vault is a perfectly
ordinary encounter with four monsters, hence always a reasonable option
for those with basic preparation for Elf. The runed door for this side
fits the "border check" aspect, which allows inexperienced players to
re-evaluate their decision before it's too later. The two choices feel
one-dimensional, and a single high level elf feels a bit sad alone
behind a runed door. So we up the runed door aspect, adding a second
high level elf to the left section and two high quality loot pieces,
also adding one normal quality loot item to the right section. Give this
entry half weight so that it's not too common.

For nicolae_elf_arrival_no_cutting_in_line, ensure we place at least two
monsters in each of the two thematic groups. The odds of rolling no
monsters in the orc group or no monsters in the elf group are not that
small, and if either happens the vault's theme is ruined. This increases
the size of each group by 1.5 monsters on-average, but the groups are
only 3.5 monsters each, and the monsters used here are common for Orc
and late dungeon.

Some glyph and syntax cleanups for this and two other
entry vaults.

--------------------------------------------------------------------------------
ed5bec7572 | gammafunk | 2021-07-20 22:23:24 -0500

feat: Split up vaults in elf.des
Move decorative and monster-placing vaults into their own distinct
sections.

--------------------------------------------------------------------------------
2d3e3a81d9 | gammafunk | 2021-07-20 22:23:24 -0500

fix: Remove `decor` from Elf vaults
The decor tag does nothing in vaults except on D:14- and in Depths,
hence we don't need that tag for vaults in Elf.

Also update the DES syntax document for decor to refer to the correct
range where the tag applies.

--------------------------------------------------------------------------------
5ea49452ee | gammafunk | 2021-07-20 22:23:24 -0500

fix: Remove `no_dump` from a Hall of Blades vault
Forgot to remove this tag from this vault in a previous commit.

--------------------------------------------------------------------------------
7cc329e542 | Nicolae Carpathia | 2021-07-20 22:23:24 -0500

Add two decor vaults to Elf.

--------------------------------------------------------------------------------
7c62198929 | Nicolae Carpathia | 2021-07-20 22:23:24 -0500

Add some more regular monstriferous vaults to Elf.
Committer's Note: Squashed a commit into this one. Three of the vaults
added in this commit get significant modifications in subsequent commits
as part of PR #2029, namely nicolae_elf_deep_mausoleum,
nicolae_elf_defective_weapons_storage, and
nicolae_elf_double_double_double_trouble.

--------------------------------------------------------------------------------
fba2232dec | Nicolae Carpathia | 2021-07-20 22:23:24 -0500

Add new arrival vaults to Elf.

--------------------------------------------------------------------------------
2e09723bad | Nicholas Feinberg | 2021-07-20 19:46:56 -0700

Adjust changelog
Reorder, reword, fix some inaccuracies, and add highlights.

--------------------------------------------------------------------------------
1368757f42 | Kate | 2021-07-20 23:17:15 +0100

Let Spellforged Servitors cast Shock
As one of their fallback spells, since the rest of the L1 conjurations are
valid.

--------------------------------------------------------------------------------
e58577e147 | Kate | 2021-07-20 21:32:04 +0100

Fix typo in Majin-Bo description (FizzleBang)

--------------------------------------------------------------------------------
05da648ff6 | advil | 2021-07-20 09:49:45 -0400

fix: add a debug tripwire for long delays, v2
There have been some cases of delays going on much longer than they
should lately (#1757, #2037 among others) and while a few bugs have been
fixed, the worst cases have resisted debugging or replication. This
commit is an attempt to get more information, while at the same time
protecting the player a bit better. If a rest delay exceeds 500 turns,
this will trigger a crash, and if an explore delay exceeds 2k turns (1/3
of the per-level zot clock) it will also crash. These are intended to be
numbers that can't be triggered on demand ever, so if I've missed
something that allows this, this code should be further amended. The
rest one at least would have been triggered by the case in #2037.

cd13fe65733ae6d1 was missing some cases where you.running.turns_passed
needs to be reset, and they should be taken care of here.

--------------------------------------------------------------------------------
0b823d0a13 | Nicholas Feinberg | 2021-07-19 13:57:28 -0700

Don't revive decorative cats (tilp)
They aren't meant to be used in the actual game, only in decor vaults,
and reviving them causes weird issues when they get killed (by eg
krakens). Shouldn't have gotten stuck at xl 1, felids!

--------------------------------------------------------------------------------
fd1010017a | Nicholas Feinberg | 2021-07-19 12:47:33 -0700

Revert "fix: add a debug tripwire for long delays"
Triggering way too often. Reverting for now.

This reverts commit cd13fe65733ae6d1ebf66b383617bb497fa25090.

--------------------------------------------------------------------------------
cd13fe6573 | advil | 2021-07-19 13:38:18 -0400

fix: add a debug tripwire for long delays
There have been some cases of delays going on much longer than they
should lately (#1757, #2037 among others) and while a few bugs have been
fixed, the worst cases have resisted debugging or replication. This
commit is an attempt to get more information, while at the same time
protecting the player a bit better. If a rest delay exceeds 500 turns,
this will trigger a crash, and if an explore delay exceeds 2k turns (1/3
of the per-level zot clock) it will also crash. These are intended to be
numbers that can't be triggered on demand ever, so if I've missed
something that allows this, this code should be further amended. The
rest one at least would have been triggered by the case in #2037.

--------------------------------------------------------------------------------
01599e1a9e | advil | 2021-07-19 13:38:18 -0400

Revert "Forbid DEBUG_TRAVEL without DEBUG_DIAGNOSTICS"
Revert reason: this was disabled by default before this commit, and it's
*extremely slow* to enable, so return to the disabled-by-default state.
Instead of an `#ifdef`, add a comment explaining the situation.

This reverts commit d8756d56bca0c83564c4a383b0931343e2ffb2e0.

--------------------------------------------------------------------------------
c56fcc985a | Nicholas Feinberg | 2021-07-18 07:26:55 -0700

Fix touching typo (hardworking goddess, reeces)

--------------------------------------------------------------------------------
15f69828bf | gammafunk | 2021-07-18 00:47:19 -0500

feat: Organize elf.des and refactor functions
Give elf.des section headers like we do for other DES files. Make
sections for entries, normal vaults, blade entries, blade main vaults,
and the elf end maps. Add a function to set standard blade monsters,
since multiple maps where using a common definition. Remove `no_dump`
from main blade maps, since we now have multiple vaults, not all of
which use entry subvaults.

--------------------------------------------------------------------------------
8427feac8f | Nicolae Carpathia | 2021-07-17 23:25:49 -0500

Add new entry subvaults for the Hall of Blades
Committer's Note: I'm not adding nicolae_blade_animated_armoury, since
animated armour monsters designed to be a player ally, not a compelling
hostile monster. Melee-only slow monsters are something we've almost
completely removed at this point. There's not an obvious design for
hostile animated armour monsters that's sufficiently unique, but if that
changes, a vault like this can be reevaluated.

--------------------------------------------------------------------------------
0c1c6157e4 | Nicolae Carpathia | 2021-07-17 23:25:17 -0500

Add two new layouts for the Hall of Blades

--------------------------------------------------------------------------------
5a1362afc6 | gammafunk | 2021-07-17 20:05:18 -0500

fix: Adjust three transporter vaults again (advil)
A recent report I'd seen for the vault emtedronai_trogs_sanctum showed
it generating areas only reachable via its transporters, effectively
sealing off access to its entrance transporter. This report lead me to
make 97d24401, which put borders of floor around this vault and two
others, since it seemed there was no other way to prevent these
problems. However advil informs me that the problem with
emtedronai_trogs_sanctum was due to it not conditionally applying its
`passable` tag only for the Vaults branch. The `passable` tag was added
for the Vaults layout to allow features like transporters place in
Vaults rooms, but when enabled in other branches it leads to the layout
generator to incorrectly think that areas inside the transporter vaults
are connected to the vault entries without using a transporter. Hence
2170ac5a makes `passable` now only apply in the Vaults branch.

advil also informs me that now that we can't misapply `passable`, these
transporter vaults will both never generate such disconnected areas nor
will passage through the transporter ever be required to reach the rest
of the level, specifically because the internals of these vaults are
marked with the `opaque` tag as of 97d24401. Hence this commit restores
the behaviour before that commit which only applied the border of floor
around these vaults in the Vaults branch; it's still necessary in that
branch for them to place properly as rooms. Now the vaults will better
integrate into non-Vaults levels in that they can embed properly in
surrounding walls yet have their two entries properly connected to the
rest of the level.

Additionally, I've changed the wall types of these vaults to rock when
placing in Vaults, so the layout code of that branch can correctly
substitute the wall to the surrounding wall type of the level.
Interestingly, this seems to allow gammafunk_its_a_trap to properly
place in Vaults. In my previous testing, it always failed to place as a
vaults room even though the other two vaults were able to.

Finally, correctly apply the `transparent` tag to
emtedronai_trogs_sanctum and fix its opaque mask to correctly cover all
internal vault squares. The slightly incorrect mask was added 97d24401,
but since the vault wasn't actually given `transparent`, this error
wasn't seen.

This commit partially reverts 97d24401.

--------------------------------------------------------------------------------
d5c625afe7 | advil | 2021-07-17 15:26:21 -0400

fix: reorder currency symbols so that `$` shows in help
Bug introduced in 1715c4e68; the help menu can't handle unicode
keybindings and shows a number, and `$` is probably the best one to show
anyways.

--------------------------------------------------------------------------------
5988178df2 | advil | 2021-07-17 15:25:07 -0400

fix: quick macro keybinding add, take 3
Unfortunately, ctrl-m is equivalent to return, and so this turns one of
the standard noops (that people use to clear mores) into a menu key by
accident. This third attempt moves the travel speed toggle to ctrl-t,
and puts quick add on ctrl-e. I *think* this should be fine in webtiles.
(Unfortunately, it does mean that windows webtiles users will need to
use *t for travel speed toggle, because it seems that most windows
browsers eat ctrl-t in a way that isn't easy to override.)

--------------------------------------------------------------------------------
1b087cb4c1 | Nicholas Feinberg | 2021-07-17 10:03:25 -0700

Improve slime creature messaging (nojaa, jilles)
Be clearer about's going on when they merge. (Not touching
unmerging yet, but that probably wants love too.)

--------------------------------------------------------------------------------
8f6b6f5ddb | advil | 2021-07-17 12:52:40 -0400

fix: simplify macro action entry (Yermak)
After this commit, entering an action while doing a macro binding
returns to the main macro menu (or exits in the case of quick-add),
while esc gets you to the mapping menu. This reduces the keystrokes used
when setting at the slight cost of keystrokes when cancelling.

Two remaining issues: (i) when editing an old macro, it first brings you
to the mapping submenu. This could go right into editing the action, at
the cost of making the submenu c/R options harder to get to. (ii) What
should this UI do on enter with a blank action? Right now this cancels,
but I'm not sure this is very intuitive. Other possibilities include
having this case clear the macro, and disabling enter with an empty
action.

A few other minor tweaks to display stuff.

--------------------------------------------------------------------------------
2170ac5abd | advil | 2021-07-17 11:32:50 -0400

fix: limit `passable` tag masking to Vaults
This tag is a bug magnet outside of Vaults, because it makes it very
easy to trick the builder into generating disconnected zones. In some
vaults these issues had been fixed by explicitly conditionalizing the
tag, but there's not a lot of use-cases outside of Vaults layouts that
can't be better handled by other techniques, so simplify things on the
vault designer here. I've also updated the docs to more clearly warn
designers about the pitfalls.

--------------------------------------------------------------------------------
9c98e07f0c | Nicholas Feinberg | 2021-07-17 08:09:07 -0700

Decay mon breath timeout at EOT (mishima, gressup)
Similarly to netted monsters, which already work this way, have
monsters reduce their breath timeout after their turn instead of
before their next one. That way, if you see a monster 'catching its
breath' on your turn, they won't be able to use a breath weapon on
you before your next turn unless they get a double turn.

It's possible that other enchantments might be changed to work
similarly, but for e.g. paralysis, that would be a big stabber nerf.
I haven't done an audit to look for other candidates.

--------------------------------------------------------------------------------
6eef9f81b9 | advil | 2021-07-17 11:06:56 -0400

fix: move macro quick-add to ctrl-m
This is now working, so I think it must have been a cache issue. ctrl-t
is new tab on windows, so doesn't work so well.

--------------------------------------------------------------------------------
97d2440184 | gammafunk | 2021-07-17 00:02:43 -0500

feat: Adjust aspects of three transporter vaults
For the transporter vaults gammafunk_its_a_trap,
gammafunk_dig_for_victory, and emtedronai_trogs_sanctum, give these
vaults a border of floor. Having connectivity require a path through the
transporter frequently leads to one side of the transporter being left
in a disconnected area, thus either stranding the player who travels
through the vault via transporters or preventing transporter entry
altogether. This is a bug in our layout code, which should ensure that
these disconnected areas won't happen. Even if this were not the case,
these vaults are meant to pose an optional, difficult challenge, so we
shouldn't require passage through their transporters to reach other
portions of the normal level.

We now add no_item_gen throughout these vaults instead of only in
certain sealed or trap-laden sections, since there's no reason to lock
away normal level items. For gammafunk_its_a_trap, remove its placement
from Spider, but allow it to place on D:14. I previously allowed it in
Spider to connect sections of the cave-like layout, but as described
above we're no longer requiring access through these types of vaults for
normal level access. The vault's highly angular stone structure is
out of place in a "natural" place like Spider. For D:14, this is an ok
depth to beging exposing players to Zot traps, since it's very close to
their normal generation and behind a transporter.

For all three vaults, mark them as transparent and mask the vault
insides as opaque. Revise glyph usage so we can distinguish between the
inside and outside of each vault. Simplify and clean up some DES syntax.

--------------------------------------------------------------------------------
7cc0d9ac62 | Nicholas Feinberg | 2021-07-16 19:35:02 -0700

Remove wanderer debug code
BIG oops

(This made all wanderers start with two minor books, I think?)

--------------------------------------------------------------------------------
29e9f9e103 | Nicholas Feinberg | 2021-07-16 19:20:07 -0700

Add storm form tile (alex1729)
And remove the old hydra form tile. RIP.

--------------------------------------------------------------------------------
2387c0671f | Nicholas Feinberg | 2021-07-16 19:19:50 -0700

Clarify spectral ego

--------------------------------------------------------------------------------
d28e588067 | Nicholas Feinberg | 2021-07-16 19:08:20 -0700

Rename the Desolation entrance (Undo, ardl)
To avert confusion for players who assume something ruined is unusable.

I wanted to use 'unsealed gateway', but we already have 'unsealed gates',
which are a bit too similar sounding.

--------------------------------------------------------------------------------
4a8006d288 | Nicholas Feinberg | 2021-07-16 18:53:10 -0700

Avert a riot (dinky) (OK Tukima launchers)
Lots of weird special cases here. This might be a bit strong.

--------------------------------------------------------------------------------
51fae8af72 | gammafunk | 2021-07-16 17:32:31 -0500

fix: Place a Swamp exit in bugged saves (Sergey)
The Swamp exits destroyed by eleionoma due to the issue fixed by 0d5cf04
need to be restored in affected saves, otherwise those games always
crash on Swamp:1. This commit adds a save compat function _ensure_exit()
that's analogous to the _ensure_entry() function used for ensuring
branch entries and calls it for Swamp:1. We find whether Swamp is
missing its exit, and if so, find a floor or shallow water square that's
as close as possible to the first down stairs, thus helping to ensure
that our exit is placed at a connected location.

--------------------------------------------------------------------------------
acd6f1ce93 | advil | 2021-07-16 17:37:18 -0400

docs: update allow_extended_colours in options guide (gammafunk)

--------------------------------------------------------------------------------
52be93032c | advil | 2021-07-16 17:27:37 -0400

fix: default allow_extended_colours to true
This *may* still be a terrible idea, but I'm not sure we'll find out
without trying. Some of the historical reasons for the old defaults are
no longer an issue, like old mac osx terminals. One remaining one is
that this may decrease the default readability of ttyrecs. We'll see...

--------------------------------------------------------------------------------
e1855fdbe6 | advil | 2021-07-16 16:17:54 -0400

feat: command for quick macro adding/editing
This renames previous CMD_MACRO_ADD to CMD_MACRO_MENU, and adds a new
command under CMD_MACRO_ADD that is a bit more true to the name. The new
command jumps straight into macro editing given a specific key, and
skips the macro menu. Basically, it comes full circle and very nearly
replicates the pre-0.26 CMD_MACRO_ADD functionality except with an
updated UI. The one difference is that it is macro only -- no keybinds.
But people shouldn't be using keybinds anyways.

The new command is currently bound to ctrl-t. Ctrl-m is actually free
but I could not get it to work in webtiles. To rebind this, e.g. if you
hate all this menu stuff I've been adding, you can do something in your
options file like: `bindkey = [~] CMD_MACRO_ADD`.

--------------------------------------------------------------------------------
becab4ff2c | advil | 2021-07-16 16:17:54 -0400

fix: streamline new action entry
Treat new actions started by `~` and by key in the same way, jumping
right into editing. To get raw entry, you can use enter to get out
to the menu with a blank mapping; esc still cancels. (I'm not sure if
this behavior is very intuitive and it is currently somewhat hidden, but
raw key entry may also be a fairly niche feature.)

Doing this required adding an on_show callback to Menu, and tweaking the
title_prompt api to provide a way to detect whether text entry was
cancelled or not.

--------------------------------------------------------------------------------
8c6f3a9b5b | advil | 2021-07-16 16:17:54 -0400

fix: various macro menu tweaks
* fix webtiles spacing issues
* fix some cases where the mapping menu wasn't pushed to webtiles
* more consistent behavior after entering an action
* explicit save option in the mapping menu (no behavior change, this
  still uses esc)
* better status msg behavior

--------------------------------------------------------------------------------
3b5a371ceb | advil | 2021-07-16 16:17:54 -0400

feat: macro menu, the final form
4a6b093f0 filled a big need in macro editing, by allowing macros to be
chosen from a menu, and viewed all at once. However, it was pretty
incomplete in a number of ways, keeping the old message-window pseudo-ui
for actual editing. This had a number of problems.  97433f2 exaggerated
some of the problems of this approach -- since the menu is just used to
pick which macro to edit, there's a lot of keystrokes to restart the
process if you want to edit more than one at once, or select the wrong
one, etc.

This commit attempts to finally provide a coherent macro editing UI.
* Editing individual mappings is now done via popus from the main macro
  edit menu. All of the message-window code has been converted to
  Menu-based code. Text entry uses a generalized version of the
  title_prompt input box previously only used for spell search.
  Hopefully most aspects of this will be much more convenient than the
  old approach.
* To make it easier to use this menu with arrow keys, several
  meta-functions have also been Menu-ified.
* Deleting individual mappings is possible from the main list.
* Macros vs the various keymap modes are now handled within the menu;
  getting at keymap editing is a bit hidden to keep people from
  preferring those over macros. (Basically every "this key doesn't work"
  report I've run across was someone using a keymap instead of a macro.)
* key hints throughout these menus have been (I hope) improved from the
  message window version.
* This UI has a proper help screen.

Main TODO that I am aware of: it would be nice to show a cursor when
editing in local tiles / console. (Webtiles is fine.)

Some subsidiary stuff:
* The `Menu::title_prompt` API has been massively improved so that it
  works in webtiles in a general way, and setting a custom prompt always
  works.
* min Menu width now (sort of) works in webtiles
* various minor tweaks / bugfixes to menu code (including some weird
  stuff with spell search)

--------------------------------------------------------------------------------
0d5cf0409e | Nicholas Feinberg | 2021-07-16 10:10:34 -0700

Stop eleios from destroying the world
Very big oversight in 450c7e4133f94db.

--------------------------------------------------------------------------------
ad902ab807 | Nicholas Feinberg | 2021-07-15 21:32:23 -0700

Fix Roxanne books (Yermak)
Roxanne wants her statue form!

--------------------------------------------------------------------------------
38290d930c | Nicholas Feinberg | 2021-07-15 21:32:11 -0700

Tweak book of iron description
Maybe this is a little better? I think there's still room for
improvement.

--------------------------------------------------------------------------------
2c003e96b8 | advil | 2021-07-15 22:49:08 -0400

feat: unhide staff skills in skill menu (PleasingFungus)
This extends 4390dbc5be0fb to make staff spell school skills show up as
trainable by default when carrying a staff that involves such a skill.

--------------------------------------------------------------------------------
b82cc645e0 | advil | 2021-07-15 22:38:43 -0400

fix: clarify dj staff wording
As far as I know, melee damage is the only thing affected, so clarify
the wording so it doesn't confuse the issue with respect to spell school
enhancement.

--------------------------------------------------------------------------------
6b5ea614c1 | advil | 2021-07-15 22:25:06 -0400

feat: explicitly mark dj staff limitations
I'm still not actually sure this is the best solution to this
interaction, but as long as this interaction exists, make it clear.

--------------------------------------------------------------------------------
8cdb131401 | Kate | 2021-07-15 23:38:06 +0100

Don't start Recite's cooldown until ending recitation
And decrease the cooldown duration, to clean up the status light display.

--------------------------------------------------------------------------------
299f9947c5 | Kate | 2021-07-15 22:00:23 +0100

Fix a description typo (Goratrix)

--------------------------------------------------------------------------------
458e30bab1 | Kate | 2021-07-15 21:29:30 +0100

Add Nemelex card ability info to the quiver

--------------------------------------------------------------------------------
57f10a385c | gammafunk | 2021-07-14 20:18:56 -0500

feat: Adjust the due_jungle_book Lair end vault
We don't have a lot of data for the new version of this map, and its
newness means players are more likely to make mistakes, but early
indications are that people die to it in practice a lot. It does feature
a somewhat higher monster count as well as some legitimately nasty
monsters not commonly seen in Lair. This commit reduces the monster
count by about 20% and fixes up portions of the layout.

For monsters, we reduce the bands spawning in the major combat areas
from 6 monster total on-average to 3. That way the focus is on the final
necromancers in the two end chambers. We also reduce the random spawns
throughout the map, concentrating them on the earlier entryway area,
since none of the bands spawn there. That way the map is less likely to
be empty until one of the bands are encountered.

For layout, we remove the many additional entry connectors, since just
one is necessary. The additional ones likely increased the number of
vetoes. This might increase the chance that the vault is located at the
end of a passage, but this is fitting for the "spooky jungle castle"
theme the map now has.

--------------------------------------------------------------------------------
c03b058e8b | gammafunk | 2021-07-14 19:33:27 -0500

feat: Rework parts of a Lair ending
For gammafunk_lair_ancient_temple, rework the way the temple is
"ruined", tweak monster placement and loot, and simplify syntax.

For layout, we greatly simplify the crumbled wall sections. Each of the
three walls now has an independent 50% of being "collapsed". The
collapse wall sections avoid clumping the "broken" wall pieces together
and add dry land to facilitate their usage by players.  We add an inner
chamber with possible door to house the loot and provide more structure.
Introduce very light ruining of the fixed wall portions and chamber to
prove a few small entrances into the temple. Finally, we introduce
random dry land throughout the map to give players better footing while
fighting closer to and inside the temple.

For monsters, we reduce the average monster count by about 33%. The map
was not extreme in terms of monster placement, but it's been the Lair
end with the most kills by a wide margin for a long time, in large part
due to how effective the merfolk avatar is at punishing incautious
players. We now place a couple more of the Shoals themed threats on
average, since those were somewhat underused. Add snapping turtles to
the list of Shoals monsters, which will help prevent an overall increase
in wind drakes; those seem to pose the biggest challenge of the
non-avatar monsters in the Shoals set. For the Lair natives, add blink
frogs and steam dragons, and remove the very trivial water moccasins.

For loot, we replace some of the normal items with thematic items that
include 2-4 good loot potions and a single water/Shoals themed item. The
water/Shoals themed item includes throwing nets, trident weapons, and
phial of floods, and small chances for the three unrands Captain's
Cutlass, Trident of the Octopus King, and a ring of the Octopus King.

--------------------------------------------------------------------------------
0e7b3fb1d2 | gammafunk | 2021-07-13 20:36:17 -0500

feat: tweak the abyssal woods Lair ending
For hellmonk_lair_end_abyssal_woods, slightly adjust the monster set,
introduce chances to have shortcut entrances, tweak the use of demonic
trees, add some use of floor tiles, and clean up DES syntax.

For the monsters, introduce a 5th monster tier below the "boss" tier on
glyph 6. Move the small chance of large abominations formerly on 6 to
this new 5 glyph, which it now shares with ugly things. The latter are
appropriate to the map, and although they are common enemies later, we
don't overuse them here. Then 6 remains dedicated to thrashing horrors,
whose numbers we constrain somewhat. Now only 2-4 of those can now
place, with an average of 3, since we only place these in the final
chamber, and we place a few 5 glyph monsters throughout the map.

For layout, introduce two potential shortcuts, each with an independent
33% chance, one that leads something part the starting area and another
on the far side that leads in close to the final chamber. Instead of a
forest of all demonic trees, use mostly regular trees, gradually
introducing demonic trees at an increasing rate until the final chamber,
which uses all demonic  trees. Also add Abyss-themed floor tiles in this
final chamber. Adjust a few loot locations due to the new shortcuts.
Closes #1967.

--------------------------------------------------------------------------------
214d61ee58 | hellmonk | 2021-07-13 20:36:17 -0500

Abyssal woods Lair end
Adds a new lair end vault based on enchanted_forest, but makes use of demonic
trees and an abyssal monster set. Thrashing horrors are the big threat here,
so adjusting the number of those would be the easiest way to modify difficulty.

Committer's Note: The subsequent commit reworks parts of this map.

--------------------------------------------------------------------------------
57bb12a6e0 | Kate | 2021-07-14 00:27:33 +0100

Remove some food leftovers

--------------------------------------------------------------------------------
bdbb211e1e | Kate | 2021-07-14 00:23:06 +0100

Don't let Folly's brilliance stack with the potion
To make its behaviour slightly clearer, since as originally implemented
the MP reduction didn't stack but the enhancer did. Its permabrilliance
is now technically separate from regular Archmagi, so would stack with it
if a non-body-armour source of Archmagi existed. Potions of brilliance
are marked as temporarily useless with Folly equipped.

--------------------------------------------------------------------------------
622f6405ea | Kate | 2021-07-13 22:25:26 +0100

Rework the robe of Folly (hellmonk)
Make it grant perma-brilliance (archmagi and halved spell costs), increase
its intelligence and enchantment bonuses, but have it set your willpower to
zero.

--------------------------------------------------------------------------------
e1afea27ad | Kate | 2021-07-13 22:23:35 +0100

Update unrand descriptions and inscriptions
Move information on special unrand features to DBRAND and DESCRIP entries
where possible, so that it's all grouped together with standard item
properties. This allows shortening the actual descriptions, and making room
for them to be primarily focused on flavour and more general descriptions
of the item's abilities.

--------------------------------------------------------------------------------
492c89284f | Kate | 2021-07-13 17:57:47 +0100

Adjust weapon brand descriptions
For consistency and brevity - it's not necessary to explicitly spell out
that fire damage deals more damage to things with fire vulnerability in
this single description of one source of fire damage, for example.

--------------------------------------------------------------------------------
f8a67e7463 | Neil Moore | 2021-07-13 00:05:33 -0400

Correct Abyss feature placement check.
Instead of checking whether a potential feature was surrounded by seven
or more solid cells, the old code checked whether the previous feature
was solid and surrounded by seven or more cells.

--------------------------------------------------------------------------------
d3c00ef09d | Neil Moore | 2021-07-12 23:14:56 -0400

Fix quote formatting.

--------------------------------------------------------------------------------
e6b0c8b507 | hellmonk | 2021-07-12 18:42:25 -0400

Adjust snake endvault monsters
Many snake end vaults placed large numbers of monsters (50+ on average, with 90
average monsters in the most extreme case) with low randomization. This commit
reduces snake end vault average monster counts to ~35-40 for most vaults and
randomizes formerly static monster counts. Additionally, two snake rune vaults
that previously placed twice as often now share the standard vault weight.

--------------------------------------------------------------------------------
3eddc1d3d3 | Aliscans | 2021-07-12 23:10:51 +0300

Let the player create both Maggie and Margery in wizard mode.
Wizard mode let you bypass the "has this unique been generated?" check,
but not the "has the other unique been generated?" one.

Instead of the second check, this change has the game mark Maggie and
Margery as having been created whenever either one is.

[ Committer's note: Moved the class to its own header. If more "storyline
  uniques" are generated this should be further datified, but the type
  doesn't belong in player.h regardless. Closes #1884 ]

--------------------------------------------------------------------------------
e3ff63456f | Nikolai Lavsky | 2021-07-12 22:08:17 +0300

Don't allow cancelling hostile Battlespheres

--------------------------------------------------------------------------------
e30191f0e2 | Aliscans | 2021-07-12 20:35:58 +0300

Fix the "stat zero" warnings for rings.
If you say no to a "stat zero" prompt for wearing a ring, don't remove your 
existing ring.

--------------------------------------------------------------------------------
3b8667add3 | Aliscans | 2021-07-12 20:35:58 +0300

Fix the "stat zero" warnings for amulets.
If you put on an amulet, having not previously been wearing one, check for 
stats below 1.

If you say no to a "stat zero" prompt for wearing an amulet, don't remove your 
existing amulet.

--------------------------------------------------------------------------------
b3396a012b | Aliscans | 2021-07-12 20:35:58 +0300

Fix the "stat zero" warnings for armour.
If you say no to a "stat zero" prompt when changing your armour, don't remove 
your existing armour.

Don't give a "stat zero" prompt if wearing your current armour at the same time 
as a new piece in the same slot would give a stat below 1.

Give a "stat zero" prompt if wearing some new armour alone would give a stat 
below 1.

--------------------------------------------------------------------------------
cf74c853f4 | Aliscans | 2021-07-12 20:35:58 +0300

Fix the "stat zero" warnings for weapons.
Remove the second MSG_OK from when you say no to a "stat zero" prompt as you 
wield a weapon.

Don't give a "stat zero" prompt if wielding your current weapon at the same 
time as a new one would give a stat below 1.

Give a "stat zero" prompt if wielding a new weapon alone would give a stat 
below 1.

--------------------------------------------------------------------------------
09c7552f22 | Aliscans | 2021-07-12 20:27:53 +0300

Check for monsters, objects & features as soon as you move. (#1936)
The game previously only reported which monsters had "come into view" when a 
monster shouted or the player was ready to start a turn.



This interacted badly with ABIL_WU_JIAN_WALLJUMP (for one), as you move to a 
new location as part of the turn, and both you and the monster can act before 
the next "start of turn" rolls around.



Calling update_monsters_in_view() from moveto_location_effects() should make 
the "comes into view" message the first one you see for a monster. I also call 
check_for_interesting_features() so that nearby objects and features are 
announced at the same time.



Co-authored-by: Aliscans <crawl@thimk.info>
--------------------------------------------------------------------------------
25c1220f7b | hellmonk3 | 2021-07-12 13:03:15 -0400

place water under goliath frogs in frog pond

--------------------------------------------------------------------------------
b5d4ac33de | hellmonk3 | 2021-07-12 12:56:04 -0400

modify frog_pond
Add a chance to place goliath frogs and reduce the notoriously high monster

density by about 25%.
--------------------------------------------------------------------------------
db44c70a1d | Kate | 2021-07-12 17:33:59 +0100

Fix a vault loot definition

--------------------------------------------------------------------------------
81e557bc32 | Edgar A. Bering IV | 2021-07-12 10:31:44 +0300

vaults: Adjust the despoilered loot in portals
For the most part, change the loot lists to use standard dgn.* constants
instead of identifying everything. The identification in early portals
would eat up a large portion of the remaining item ID game, which would
be a shame. Usingn the dgn.* constants does mean that portal loot has a
different distribution than the floor, but it's not a vault by vault
absurd spoiler.

Closes #1855

--------------------------------------------------------------------------------
f0cfdccd6e | hellmonk | 2021-07-12 10:09:28 +0300

vaults: Identify non-random potion types in many vaults
This was an extremely obtuse, though little-abused, spoiler.

--------------------------------------------------------------------------------
98b9705cb8 | nlavsky | 2021-07-12 09:25:31 +0300

Remove a couple of obsolete descriptions (#2022)

--------------------------------------------------------------------------------
ca18f49f40 | gammafunk | 2021-07-12 01:05:28 -0500

Rework the Elemental Staff guarded unrand vault
For dilly_guarded_unrand_elemental_staff, rework monster placement and
the decorative chambers, and reorganize and simplify DES syntax.

We extend the placement range to include D:8, and have difficulty
scaling conditions cover each of D:8-11,  D:12-13, and D:14-15
separately. The monster sets are adjusted to have more depth-appropriate
threats at each range, with a low-tier elemental set for each element
that doesn't go out of depth and a shared moderate out of depth tier.
Monster counts also scale with depth. The boss is modified to be a
depth-appropriate monster wielding the Elemental Staff. For Dungeon we
increase from deep elf pyromancer, to deep elf zephyrmancer, to tengu
reaver. For Elf and Depths we used the master elementalist vault-defined
monster already used by mu_elemental_laboratory.

The decorate elemental areas have been simplified to just use
appropriate clouds and not use decorative monsters. There aren't
appropriate conjured monsters for each element, and the vault already
nicely communicates the elemental theme with the decor and actual
monsters. Closes #2021.

--------------------------------------------------------------------------------
89162da0c7 | dilly | 2021-07-12 01:04:08 -0500

A guarded unrand vault for the Elemental Staff
Committer's Note: Reword commit message. The subsequent commit revises
many aspect of this vault.

--------------------------------------------------------------------------------
491fb513fc | gammafunk | 2021-07-12 01:01:19 -0500

Rework the master elementalist vault
The vault mu_elemental_laboratory features a vault-defined "master
elementalist" monster that's themed as having mastered the four forms of
elemental magic. However this monster doesn't pose a very good threat,
certainly not one worthy of a having a vault-defined monster. The vault
itself is not especially challenging either. This commit reworks the
monster and the associated vault to pose a greater challenge and give
greater rewards, reworking it into a rare runed door vault.

The master elementalist gets an HD bump to 18 and boasts a formidable
array of spells: Ozocubu's Refrigeration, Lehudib's Crystal Spear, Chain
Lightning, and Fire Storm. It still has Haste, but loses Blink for
Repell Missiles, since the former doesn't work great for its terrain in
this vault. The monster attempts to generate with the Elemental Staff,
thus giving him formidable elemental resistances. If the Elemental Staff
is unavailable, it instead gets a staff of air, and its robe gains the
resistance ego, thus it will always have at least rF, rC, and rElec. The
master elementalist is a formidable spellcaster, but it doesn't have
especially good HP or other defenses, so players with good resistances
who act quickly can take it on.

The rest of the vault monsters have been given a rework to pose a
serious threat for both Elf and Depths, and the elemental-themed terrain
has been enhanced. Loot includes randbook for one of each of the four
elemental schools, as well an artefact jewellery, an enhancer staff, and
a manual, all theme from one of the elemental schools.

The master elementalist monster definition is moved to a function, since
it will be re-used for a forthcoming guarded unrand vault.

--------------------------------------------------------------------------------
1e82c303ef | Kate | 2021-07-11 03:04:27 +0100

Remove mechanical traps from Ossuaries
This was the last place they existed outside of Sprints, and even with
vaults that were originally designed around them they didn't really fulfil
any real purpose. Some of the vaults keep alarm and net traps which might
have more relevant effects, but all of the plain damage traps could almost
always be easily avoided, ignored or rested off.

--------------------------------------------------------------------------------
90fbb72469 | Edgar A. Bering IV | 2021-07-10 21:31:41 +0300

feat: a more electrifying storm fist (ardl)

--------------------------------------------------------------------------------
5d1bdbc639 | wheals | 2021-07-10 21:25:28 +0300

Add a quote for Storm Form

--------------------------------------------------------------------------------
c46b4539cf | Edgar A. Bering IV | 2021-07-10 12:36:07 +0300

fix: a doubled word (FizzleBang)

--------------------------------------------------------------------------------
1038ab4fd7 | gammafunk | 2021-07-09 21:15:56 -0500

Simplify a lua test and reindent
I'm not sure if this test needs to exist as a standalone test given our
existing map connectivity checks, but so long as it does exist, it needs
to properly ignore any shoals encompass maps for the branch end. A
previous fix to the dlua API allows the existing code to work. This
commit just simplifies its logic and reindents.

Closes #2003.

--------------------------------------------------------------------------------
4b6fb3c526 | gammafunk | 2021-07-09 21:15:56 -0500

Fix the return value of a dungeon lua API method
For vault placement lua objects, have orient() return a string with the
name of the orientation instead of returning the relatively useless raw
enum value.

--------------------------------------------------------------------------------
d9be06fd8e | hellmonk | 2021-07-09 21:15:56 -0500

Fix a shoals lua test

--------------------------------------------------------------------------------
1d15788f7f | hellmonk | 2021-07-09 21:15:56 -0500

Two new encompass Shoals rune vaults
shoals_end_hellmonk_lost_city: A ruined city at the bottom of shoals,
feat. sphinxes and minotaurs.

shoals_end_hellmonk_storm_palace: Features wind and water enemies,
merfolk, and a storm dragon or titan.

Committer's Note: Squashed commits and cleaned up and combined commit
messages.

--------------------------------------------------------------------------------
1261f788d9 | nicolae-carpathia | 2021-07-09 22:14:23 -0400

Merge pull request #2011 from crawl/nicolae-quotes-0721
Add new quotes to the Crawl quotes list
--------------------------------------------------------------------------------
7b03791ad5 | Nicolae Carpathia | 2021-07-09 22:05:40 -0400

Add new quotes to the Crawl quotes list
Improve the Crawl quotes list, with a diverse assortment of
choice quotes from such sources as Mary Shelley, Ovid, Hesiod,
T.S. Eliot, John Milton, DMX, and ADMIN.

--------------------------------------------------------------------------------
c8121b24ce | Edgar A. Bering IV | 2021-07-09 20:31:40 +0300

fix: fix the previous fix

--------------------------------------------------------------------------------
f355649ca4 | Edgar A. Bering IV | 2021-07-09 20:20:07 +0300

fix: highlight gozag gold blue in webtiles under distraction aura
Closes #1691

I don't claim to fully understand CSS inheritance, but it seems like
having a separate block for #stats_gozag_gold is unnecessary.

--------------------------------------------------------------------------------
1ef64ffb57 | Edgar A. Bering IV | 2021-07-09 19:39:26 +0300

fix: correct capitalization of Storm fists

--------------------------------------------------------------------------------
b01f110dc7 | Edgar A. Bering IV | 2021-07-09 19:32:17 +0300

fix: correctly sum a geometric series
The probability display for pacify chances was not the correct
probability computation.

--------------------------------------------------------------------------------
8568cbafd6 | gammafunk | 2021-07-09 10:40:57 -0500

Rework a transporter vault
The vault gammafunk_worm_tunnel is a memorable challenge, but it's
conspicuously large for a challenge vault of this type. This commit
drastically reduces its size, slightly changing layout and adjusting
swamp worm placement slightly so it remains a significant challenge.

It also adapts the vault to place in earlier dungeon and Lair, using net
traps instead of Zot traps with an additional miasma cloud generator
before D:14. The net traps are far less lethal than Zot traps, but still
trap players, give the worms more opportunities to slurp. The additional
miasma generator near the exit chamber door is used when when net traps
are used to slow down a player using a blink scroll a bit more than a
net trap at that location would. When Zot traps are used, a player doing
this must run the risk of blinking onto a Zot trap, so a trap there is
appropriate.

Loot and additional worm placement is revised to scale better with
placement depth. We use trees in Swamp so that this vault better fits in
with the surrounding layout. I opted against using trees elsewhere to
minimize the use of fire magic to break into the vault. In Swamp we're a
bit happier to let fire magic take over the place.

--------------------------------------------------------------------------------
5dd8012253 | Nicholas Feinberg | 2021-07-09 07:41:10 -0700

New Holy Roller title (PF (particleface))
Palentonga Invo 27 with any good god.

--------------------------------------------------------------------------------
2aaa0cc67b | Kate | 2021-07-09 02:32:09 +0100

Adjust randomisation in some kennysheep vaults
ks_random_setup is used in a number of vaults to heavily randomise various
features, but the randomisation of water in particular could have some
extremely strange results in certain vaults, with large pools being
replaced with huge numbers of statues. Instead only allow water to be
substituted for floor, lava, or trees (this also has the bonus of making
the behaviour match how the function's comment claims it works).

--------------------------------------------------------------------------------
99fd57bada | advil | 2021-07-08 17:25:22 -0400

fix: avoid a crash on upgrading randbooks after ca9b790695f0
Randbooks don't have artefact props, and ca9b790695f0 added some
explicit checks for this. Most code is careful about this, but there
were a bunch of fairly old save compat checks that were not. It probably
would be fine to loosen up the artefact_property check, but it's also
easy to prevent the call for the save compat cases. I've made the
artefact_property check more explicit as well, so that it might be
easier to guess what's going on here.

--------------------------------------------------------------------------------
29bd1443cf | Edgar A. Bering IV | 2021-07-08 23:11:33 +0300

docs: update credits

--------------------------------------------------------------------------------
8a69ca93ff | Zhang Kai | 2021-07-08 23:09:16 +0300

Update unident.txt
Add translation.
增添翻译。

[ Committer's note: Also removes deck of cards description, as those no
  longer appear as items in game. Closes #1948. ]

--------------------------------------------------------------------------------
bfabb6706f | Zhang Kai | 2021-07-08 23:09:05 +0300

Create clouds.txt
Add translation.
增添翻译。

Closes #1945

--------------------------------------------------------------------------------
d2886d99c2 | Zhang Kai | 2021-07-08 23:09:04 +0300

Update species.txt
Add translation.
增添翻译。

[ Committer's note: Did not include the kobold translation which
  references eating so was based on an old version. Closes #1900. ]

--------------------------------------------------------------------------------
f492b14eaa | Zhang Kai | 2021-07-08 23:08:21 +0300

Update cards.txt
Add translation.
增添翻译。

[ Committer's note: Did not include the Foxfire and Shaft translations,
  the former was based on an outdated description, the latter has been
  removed. Closes #1895 ]

--------------------------------------------------------------------------------
6a8ace0863 | advil | 2021-07-08 14:50:40 -0400

feat: clickable game menu access for local tiles (PleasingFungus)
This also removes the player tile editor from the system toolbar, and
simplifies the save game menu option by using CMD_SAVE_GAME_NOW.

--------------------------------------------------------------------------------
97433f2c34 | advil | 2021-07-08 14:50:40 -0400

feat: add a game menu
This commit introduces a serviceable in-game menu of the sort you might
expect in games that aren't 20 year old open source roguelikes. It's
possible that some people will hate this nod to modernism, but I think
it's actually kind of useful, and helpful to new players. Will take
suggestions on what should or shouldn't be here. This also may be a
useful place to get to a hypothetical future in-games options editor.

Unfortunately, I don't think it's a great idea to put this on ESC on the
default keybinding, since that has for so long been a noop when at the
main game UI. So for now it replaces macro editing on `~` (and hitting
`~~` brings you to the macro editor).

For tiles, this commit reuses existing tiles (partly drawing on ones for the
local tiles system toolbar, which has some functionality overlap with this
menu). Some of these might benefit from artist attention.

--------------------------------------------------------------------------------
1715c4e68f | advil | 2021-07-08 09:50:10 -0400

feat: try to map more currency symbols to CMD_LIST_GOLD
I am not sure whether this will (a) build on every platform, or (b) work
on every build target. When testing on a US keyboard layout on mac, I
can consistently get these to work on console, but not on the other two.
However, I think this is because I need to enter them as complex chorded
keystrokes involving number keys, where local tiles number key
processing interferes. Not sure what's happening in webtiles at all, but
on a US layout these definitely don't work for me. We'll see what, if
anything, happens on other layouts.

--------------------------------------------------------------------------------
3203f140b7 | Edgar Bering | 2021-07-08 03:16:01 -0400

feat: further reduce book spawns
They still feel overabundant. A previous commit had pulled them back some,
and metioned that further triming could be warranted.

--------------------------------------------------------------------------------
47ed6a6988 | dicedlemming | 2021-07-08 08:54:56 +0300

Update mutation-data.h (#2019)
The spell school it improves is Hexes. The Book of Maledictions was the starter

Hex book, but Hex is the spell school that gains power.



"Power" is also the terminology used on items that do similar things like Staff

of Air, ie "increases the power of air spells"
--------------------------------------------------------------------------------
9d6fb14e67 | gammafunk | 2021-07-07 14:39:02 -0500

feat: Rework a monster float vault (again)
This commit finishes aspects of gammafunk_indiana_jones I wasn't able to
do in the last commit. It reworks the final chamber to feature lindwurms
safely protected from fire clouds while still having lava snakes,
putting the fire cloud machines on the lava directly. It also adds a
Tomb theme for D:14- and Spider featuring death scarabs and spectrals in
the final chamber. Loot, monster, and trap  placement progression with
placement depth is now consistent and should pose a nicely scaling
challenge and reward for all levels. Other slight tweaks have been made
to the layout to more consistently apply the visual theme, including
statues and plant "overgrowth" in the starting area, as well as statues
in the final chamber. All doors inside are runed doors, which is the
best balance between UI and preventing spoilers.

--------------------------------------------------------------------------------
450c7e4133 | Nicholas Feinberg | 2021-07-06 20:33:37 -0700

Make eleios live in harmony with nature
Instead of destroying trees, make them move adjacent.

This avoids weird issues caused by terrain destruction, ensures they
have a tree nearby to do woodweal magic with, and also feels nicely
thematic.

--------------------------------------------------------------------------------
f0d5c502f9 | Kate | 2021-07-07 01:43:54 +0100

Let fallback misc acquirement create Xom chesspieces
Since every misc item is equally redundant at that point, there's no reason
for them not to be included.

--------------------------------------------------------------------------------
2ba4aa32ac | Kate | 2021-07-07 01:26:16 +0100

Fix a compiler warning (geekosaur)

--------------------------------------------------------------------------------
f8f22f7954 | Edgar A. Bering IV | 2021-07-07 00:16:14 +0300

fix: correct a typo (#1988)

--------------------------------------------------------------------------------
9ca5906e5d | Edgar A. Bering IV | 2021-07-07 00:12:49 +0300

fix: guarantee all potion petition sets are non-empty
Closes #1996

--------------------------------------------------------------------------------
2c4abef907 | 4Hooves2Appendages | 2021-07-06 23:59:18 +0300

Second Antaeus quote (#1965)
Add second Antaeus quote.
--------------------------------------------------------------------------------
8390803364 | Alexei-Barnes | 2021-07-06 23:57:35 +0300

Removed dead code ranged_attack::calc_to_hit (#2001)
This method calls the base and then returns the result.

This can be achieved by simply not overriding the base method.



I believe this was missed during editing because of the conditional

in the method, however, since this conditional just returns the same

result, it is obsolete.



Co-authored-by: root <root@WINDOWS-AOSDI56.localdomain>
--------------------------------------------------------------------------------
dd09596130 | Edgar A. Bering IV | 2021-07-06 23:48:45 +0300

fix: end engulf upon polymorph
Closes #1935. Polymorph is described as the monster evaporating and
reforming, so the lore solution to this bug of "you are now engulfed by
flesh", while terrifying, doesn't quite fit.

--------------------------------------------------------------------------------
4e304d196c | Edgar A. Bering IV | 2021-07-06 23:24:11 +0300

fix: don't fire fineffs at beam end (12547)
In addition to turning monster explosions into fineffs, 0.26-a0-844-g3dd439832f
added fire_final_effects to bolt::finish_beam. This broke a long-time
assumption in many spells that use the bolt struct creatively and
possibly fire several bolts: that final effects (e.g. death channel
spawns) were fired only after all beams were complete. The bug in the
subject line was one example, similar behaivors could be found with
ignition, starburst, imb and maybe more.

--------------------------------------------------------------------------------
57d10ac81f | Edgar A. Bering IV | 2021-07-06 23:24:11 +0300

text: clarify that dream dust is visual (12529)

--------------------------------------------------------------------------------
61de9534bc | Edgar A. Bering IV | 2021-07-06 23:24:11 +0300

fix: patch a tree burning information leak (12548)
Resolves an XXX, but it might be better if Fedhas just prevented you
from starting forest fires.

--------------------------------------------------------------------------------
763157803f | Kate | 2021-07-06 17:54:59 +0100

Don't allow cancelling hostile Malign Gateways

--------------------------------------------------------------------------------
2674c19aa4 | Edgar A. Bering IV | 2021-07-06 19:47:31 +0300

fix: clear engulf on monster move (12566)

--------------------------------------------------------------------------------
0d460d363a | Edgar A. Bering IV | 2021-07-06 19:37:08 +0300

feat: make autotravel slightly less cautious (12559)
0.27-a0-234-g56efc2da1b made autotravel avoid stepping next to either an
unknown square or a currently unseen known non-wall square if possible.

The unknown behavior is good, the unseen but known is more debatable in
the days of no wandering spawns.

--------------------------------------------------------------------------------
18c06f7514 | Edgar A. Bering IV | 2021-07-06 19:26:11 +0300

fix: guard a teleport closet (12564)

--------------------------------------------------------------------------------
2ff873f930 | Edgar A. Bering IV | 2021-07-06 19:24:39 +0300

fix: don't shatter conjured monsters (12552)

--------------------------------------------------------------------------------
5102b24f49 | Edgar A. Bering IV | 2021-07-06 19:06:50 +0300

fix: adjust spacing in cloud descriptions (12570)

--------------------------------------------------------------------------------
3d396884e3 | Edgar A. Bering IV | 2021-07-06 19:01:00 +0300

fix: prompt for god switching at a faded altar (12580)

--------------------------------------------------------------------------------
0645571d10 | Edgar A. Bering IV | 2021-07-06 18:51:37 +0300

fix: don't trigger the staff of battle in rude situations (kate)

--------------------------------------------------------------------------------
f3ba162646 | Edgar A. Bering IV | 2021-07-06 18:42:49 +0300

fix: prevent extraneous commas in an inscription (12612)

--------------------------------------------------------------------------------
7f483be983 | Edgar A. Bering IV | 2021-07-06 18:40:12 +0300

fix: bolt and arrow uselessness checks (kate-, Yermak)

--------------------------------------------------------------------------------
d41220b2a5 | Edgar A. Bering IV | 2021-07-06 18:29:17 +0300

text: adjust a command description

--------------------------------------------------------------------------------
2081246efe | Edgar A. Bering IV | 2021-07-06 18:03:10 +0300

fix: process ring unequips when sacrificing hand (12587)
This adds a bit of a special case to avoid charging the player a removal
penalty if they keep the ring on because of the sacrifice swap
hand/tentacle. A simpler solution would be to always impose the swap
penalty, but this would come at the cost of adding more prompts to sac
hand for special cases. This is cleaner and bothers the player less.

--------------------------------------------------------------------------------
0bd348349d | Edgar A. Bering IV | 2021-07-06 18:03:10 +0300

fix: abort Yred animate dead when useless (12588)

--------------------------------------------------------------------------------
07712775d2 | Edgar A. Bering IV | 2021-07-06 18:03:10 +0300

fix: don't retaliate against your reflection (12596)

--------------------------------------------------------------------------------
51990a9c54 | Edgar A. Bering IV | 2021-07-06 18:03:10 +0300

fix: sequence holy word application (12600)

--------------------------------------------------------------------------------
b3c598c8fe | Edgar A. Bering IV | 2021-07-06 18:03:10 +0300

fix: prompt when summoning would be a bad plan (12602)
Previously we warned the player about summoning with OTR up, but we
should really check for bog and vortex too. If this results in a
profusion of prompts rude_stop_summoning prompt can be changed to take
an optional pal representative and made a bit smarter, but I expect
that this change won't generate very many more prompts, given the
non-overlap of spell schools.

--------------------------------------------------------------------------------
f13327c4b8 | Edgar A. Bering IV | 2021-07-06 15:17:28 +0300

fix: mark arrows and bolts useless for one-handers (12608)

--------------------------------------------------------------------------------
b642d533b8 | Edgar A. Bering IV | 2021-07-06 15:06:35 +0300

fix: don't clua crash on randbooks (12508)
Throughout the codebase arterfact_property is only called on items
satisfying its opening asserts. With one exception, artprop in the Item
metatable in clua.

The ticket suggested modifying artefact_property. Since tripping those
asserts indicate a possible missuse, this commit makes the clua function
appropriately robust.

--------------------------------------------------------------------------------
d9270de0a6 | Edgar A. Bering IV | 2021-07-06 15:00:23 +0300

fix: respect use_animations for monster upheavals (12582)

--------------------------------------------------------------------------------
88c68e56d1 | Edgar A. Bering IV | 2021-07-06 14:49:42 +0300

fix: autoexplore over bogs while flying (12553)

--------------------------------------------------------------------------------
a6938257b9 | Edgar A. Bering IV | 2021-07-06 14:40:09 +0300

fix: ignore immune allies in cloud tracers (12558)

--------------------------------------------------------------------------------
887aaaf34d | Edgar A. Bering IV | 2021-07-06 14:24:29 +0300

fix: don't consider resisted electricity harmless (12560)
For self-targeting beams this warns the player about self damage. A bug
for over a decade!

--------------------------------------------------------------------------------
0648b932ec | Edgar A. Bering IV | 2021-07-06 14:02:03 +0300

fix: be more accurate when describing melding (12583)
Sorry for leaning harder into the XX advil.

--------------------------------------------------------------------------------
e9f228fa16 | Edgar A. Bering IV | 2021-07-06 12:00:22 +0300

fix: actually check battlesphere spell schools

--------------------------------------------------------------------------------
6df09b6f62 | Edgar A. Bering IV | 2021-07-06 11:36:23 +0300

fix: vaults transparency (12591)

--------------------------------------------------------------------------------
3d13938747 | Edgar A. Bering IV | 2021-07-06 11:04:50 +0300

docs: update credits

--------------------------------------------------------------------------------
157b2762af | Edgar A. Bering IV | 2021-07-06 11:00:46 +0300

fix: battlesphere triggering behavior (12598)

--------------------------------------------------------------------------------
4244d9059e | Edgar A. Bering IV | 2021-07-06 10:44:21 +0300

fix: alphashops typo (12613)

--------------------------------------------------------------------------------
426ee5db0f | Edgar A. Bering IV | 2021-07-06 10:43:29 +0300

vaults: remove unnecessary no_monster_gen in ecu vaults

--------------------------------------------------------------------------------
0b0bf74c28 | Edgar A. Bering IV | 2021-07-06 10:43:29 +0300

fix: spacing tweak in ecumenical.des

--------------------------------------------------------------------------------
47bcd709c3 | DreamDustDCSS | 2021-07-06 10:42:00 +0300

vaults: DreamDust faded altar vaults
Six new ecumenical altar vaults

[ Committer's notes: Overall adjusted tags (allow monsters, rotation).
  Squashed commits and rebased. Specific vault adjustment notes follow.
  Closes #1946.

  hidden_grotto: use delayed decay for the corpse, remove the
  quarterstaff and butterflies, trim size.

  angels_and_demons: console aesthetics, trim size.

  drowned_temple: statuary and console aesthetics, trim size.

  grove: remove butterflies, guarantee connectivity, console aesthetics.

  sealed_demon: console aesthetics. ]

--------------------------------------------------------------------------------
28d7adaeb8 | Shapermc | 2021-07-06 10:40:39 +0300

vaults: ShaperMC ecumenical altar ruins
Adding 7 new ecumenical altar vaults

[ Committer's notes: Adjusted foliage counts and placements (we don't
  want to overly annoy players making them crush plants). Placed some
  controls on the Plato randbook. Fixed up the skeleton placement for
  Pompeii. Cleaned up spacing. Fixed commit history. Closes #1999. ]

--------------------------------------------------------------------------------
2c0bbc4b58 | MainiacJoe | 2021-07-06 10:39:41 +0300

vaults: unaligned overflow altar vaults by ManiacJoe
Each of these vaults has a fixed altar count. Seventeen place one altar,
six place two altars, and one places four altars.

[ Committer's notes: Squashed and rebased. Added transparency tags to
  all vaults. Corrected typos and removed extraneous headers in
  boulavard, catwalk, and surrounded_room. Removed borders from
  large_24_doors, chevrons, and large_starburst. Removed some over-use
  of clear stone.  Made the_wave 2 tiles wide. Tweak alcove_2 and
  catwalk. Closes #1858. ]

--------------------------------------------------------------------------------
f5a116941d | Kate | 2021-07-05 05:05:53 +0100

Reduce the number of bees in wad_woods_minihive
It's probably still excessive, but at least slightly less so.

--------------------------------------------------------------------------------
331ba6fa66 | gammafunk | 2021-07-04 21:37:46 -0500

feat: Adjustments to Ice Cave entry vaults
Many of these vaults haven't been updated for monster changes over the
years. In these vaults, replace ice beasts with simulacra appropriate
for placement depth, placing fewer, since simulacra tend to be nastier.
Remove some arbitrary down-weights on some normal entry vaults, but keep
down-weighting on easy entry vaults that place an out of depth monster.
Organize entry vaults into sections based on whether they place for one
specific type of ice cave difficulty and clean up syntax.

--------------------------------------------------------------------------------
183a74056d | gammafunk | 2021-07-04 21:37:46 -0500

feat: Adjust hard Ice Cave placement
Currently hard ice caves can only place in Elf and Lair branches, but
D:14-D:15 is comparable depth to Lair branches, and an easy ice cave
will generally be very easy by D:14. This commit extends hard ice caves
to the final two levels of Dungeon.

--------------------------------------------------------------------------------
cde07775c6 | gammafunk | 2021-07-04 21:37:46 -0500

feat: Have all Ice Cave maps use the same weight
Maps currently have a weight of either 5 or 6, making them individual
place at nearly the same frequency. The weight of 6 was used for the
five "small cave" maps to make them place twice as often as the three
"sprawling cave" maps that use weight 5. This isn't necessary, however,
since the themes of these maps are strongly overlapping. The two map
sets share similar monsters, have similar difficulty as a whole, and
nearly all of the "small" maps are in fact quite big. This commit has
all maps use the default weight of 10.

--------------------------------------------------------------------------------
cc58b11c1d | gammafunk | 2021-07-04 21:37:43 -0500

feat: Rework many aspects of Ice Cave maps (hellmonk)
Many ice cave maps don't define variants for the hard difficulty version
of the portal that places at later levels, which means less map variety
at these locations. Additionally, terrain in many maps includes freezing
vapour generators that are randomly placed, leading to annoying gameplay
and many out-of-LOS collateral monster kills. Many maps place large deep
water areas that are either completely enclosed with rock or lead to
spoilery dead ends with no gameplay relevance. Finally, some maps share
common functions and data for defining thematic monsters and loot, but
these are a patchwork that's not used consistently among all maps. This
commit addresses these issues.

Partially based on hellmonk's PR #1942, we add hard variant monster and
item sets to all ice caves. To help achieve this, the vault functions
for items and monsters are generalized and shared to some degree among
all maps. As before this commit, there are two thematic sets of
monsters, natural and demons+undead, but instead of using the natural
set only for easy difficulty and undead+demons only for hard, both sets
have definitions for each difficulty. Both sets define eight monster
definitions using the same glyphs 1 through 8, with a designated
function at each glyph like "statue monster", "miniboss", and "boss".
This way any map can use the definitions interchangeably, regardless of
monster set or difficulty. All but four maps use these monster sets, and
the three "sprawling caverns" can use either set at either difficulty,
randomly choosing between the two.

The monster lists have been tweaked to be more coherent with more
well-defined difficulty progression. For statue monsters, we use ice
statue for both sets at easy, orange crystal statue for the natural
natural at hard difficulty, and obsidian statue for undead+demon at
hard. To allow Shadow Creatures to work for orange crystal statues and
the player spell, both monster sets defined appropriate random monster
lists at both difficulties. Additionally the simulacrum lists used by
the undead+demon set have been expanded to have definitions at both
difficulties, rebalanced, and refactored to be more easily reused.

Both sets now define two boss monsters, a stronger, but smaller group
monsters and a weaker, but larger group monster, and most maps randomly
choose one of these two configurations. For the natural monster set at
easy difficulty, the player faces either two ironbound frosthearts or a
single frost giant. At hard difficulty, this is either two or more frost
giants or one to two shard shrikes. For the undead+demons set at easy
difficulty, the player faces either two bog bodies or a single reaper.
At hard difficulty, this is either two or more blizzard demons or one to
two ice fiends.

Trivia: the infamous double ice fiend found on ice_cave_small_demon at
hard difficulty was due to a bug where the original author misapplied a
substitution pattern used in other maps. They meant to give either two
blizzard demons or one ice fiend, and gave instead either one blizzard
demon or two ice fiends. This double fiend is so universally loved that
I made it possible on any map using the undead+necro set at high
difficulty, albeit with reduced chance. I also expanded the idea to the
natural monster set using shard shrikes. Enjoy!

The ice-themed common loot definitions have been improved to have six
common classes of items: three tiers of armour (aux+light, medium, and
heavy), two tiers of weapons (any weapon and upper-tier weapons), and a
magic set (books, enhancers, jewellery, and misc items). Additionally,
necromancy-themed maps share a common ice-themed necromancy loot
definition. These definitions used to some degree by all maps, replacing
the many different and overlapping definitions used previously. Larger
maps that place loot items at early or midpoint locations now always
place one of the armour class items at these locations, so a player
might get access to rC before the map is finished. The tier of armour
item at these locations is randomized, so it won't always be light
armour, for example.

For maps that previously had hidden water caverns, we turns some of
these areas on each map into randomized shortcuts that are each open 50%
of the time. These shortcuts contain either deep water (encouraging use
of flight or amphibiousness) or floor with a freezing vapour generator.
These shortcuts are at fixed locations that provide meaningful skips of
significant fights and in a way where collateral monster deaths to
freezing vapour will be reduced. More randomly placed freezing vapour
machines are gone altogether, with the exception for the ones at the end
of ice_cave_small_demon. All freezing vapour machines now place with the
same power level (cloud duration), but vary by size (number of clouds
placed) as appropriate for their map location.

Many other aspects of monster placement and composition have changed on
a per-map basis. Comments have been updated at the top of each map to
summarize types of monsters and loot, and there are comments for each
group of SUBST/NSUBST/SHUFFLE. On each map, comments above the
conditional check for hard or easy difficulty describe the major
differences between the two difficulties. Some additional notes on
specific maps:

ice_cave_small_demon: Any reaper placed now gets a robe of cold
resistance and either a ring of protection from cold or a ring of ice,
bringing it to rC+++ and freezing vapour immunity. Gone are the days of
the mysterious dead reaper! This map could randomize between reapers and
blizzard fiends since it doesn't have an explicit necromancy theme, but
for now we're going with reapers only for tier 2 demons.

ice_cave_statue_garden_transporter: The final transporter area has been
reworked to be small enough so it can be entirely seen by the player
before taking the transporter.

ice_cave_statue_garden_chambered: The map was created before circlelos
became squarelos, when visual range was 8 squares for all characters.
Hence its ice statues were all in view of each other before squarelos,
but it wasn't updated for the reduction of visual range to 7 squares.
I've reduced the map two squares in its longest dimension to bring them
back within LOS of each other.

Closes #1942.

--------------------------------------------------------------------------------
84e617a3e7 | gammafunk | 2021-07-04 21:32:04 -0500

doc: Update comments in icecave.des
Add vault sections with guidelines and instructions for entry vaults and
the ice cave maps. Clean up descriptions of ice cave themes and
reorganize.

--------------------------------------------------------------------------------
e31baa5f3c | gammafunk | 2021-07-04 21:32:04 -0500

feat: Add a vault utility function
The lua function dgn.random_entry_arg() can be used to add an argument
to each entry in a delimited string. This can be useful when adding
weights or terms to strings defined for monster and item definition
purposes so that said strings can be re-used without repeating their
contents in multiple places. This will be used in a subsequent commit
that updates the Ice Cave maps.

Also improve and reformat comments for other functions in this file.

--------------------------------------------------------------------------------
282632147b | Kate | 2021-07-05 00:57:38 +0100

Let Poisonous Vapours set ally targets

--------------------------------------------------------------------------------
9c78c815f3 | Kate | 2021-07-04 17:50:25 +0100

Don't expire Coupling/Ramparts etc when flight ends

--------------------------------------------------------------------------------
0fd888774e | wheals | 2021-07-04 18:22:59 +0300

Remove unused spl-pick.{cc,h}

--------------------------------------------------------------------------------
0929e78a5e | wheals | 2021-07-04 18:18:19 +0300

Change random-pick to use vector and c++11 list initialization
This removes the need for a terminator entry at the end

--------------------------------------------------------------------------------
4c2704cb36 | wheals | 2021-07-04 16:32:19 +0300

Remove butchering
-related option

--------------------------------------------------------------------------------
aadcdd2144 | wheals | 2021-07-04 16:32:19 +0300

Move travel_open_doors to the travel section of the options guide.

--------------------------------------------------------------------------------
1844267e3d | wheals | 2021-07-04 16:32:19 +0300

Remove the now-unused spflag::emergency.

--------------------------------------------------------------------------------
87b6fcb595 | Nicholas Feinberg | 2021-07-03 18:10:06 -0700

Make storm form insubstantial (gammafunk)
Purely for flavour.

--------------------------------------------------------------------------------
300acc8974 | Nicholas Feinberg | 2021-07-03 16:28:04 -0700

Add a bad storm form tile
PF'd again

--------------------------------------------------------------------------------
96bc1138ba | Nicholas Feinberg | 2021-07-03 16:17:24 -0700

One more book freq tweak
Per objstat, this gets average spells generated in Lair and D back
to the same levels they were at pre-recent-changes.

--------------------------------------------------------------------------------
6853699f2c | Nicholas Feinberg | 2021-07-03 15:15:52 -0700

Remove stab_bypass
Previously, stabbing could randomly bypass some of the defender's AC.
At 5 stealth skill and 5 shortblades, you'd get on average 1.25 bonus
damage out of this, assuming your target had at least 5 AC and they
were sleeping, paralysed, or petrified (otherwise, you'd get on average
~0.3 bonus damage). At 18 stealth and 12 shortblades, you'd get on
average about 3.75 bonus damage, with the same qualifications (target
had at least 15 AC, etc).

This seems unecessarily complex. Why add such a tiny bonus specifically
against enemies with AC? Stabbing is already good against AC; it does
huge damage!

Instead, let's just add this tiny little flat bonus directly into damage,
pre-AC. This is a small player buff. (We may later want to just cut this
flat component entirely and shift other things around if necessary.)

--------------------------------------------------------------------------------
9b7c6745da | Nicholas Feinberg | 2021-07-03 14:38:39 -0700

Pull back on book gen again
Drop it by 25% (not counting vaults), since it looks like we overshot
a bit. May need to drop it farther.

--------------------------------------------------------------------------------
4b3bd47ff3 | mgdelmonte | 2021-07-03 17:29:06 +0300

feat: add monster.flags
Adds a flags function to the Lua monster_info object, which returns the
list of flags set for the monster.

This allows more script future proofing as compared to the flag method.

[ Committer's note: Updated commit message. Closes #1921. ]

--------------------------------------------------------------------------------
66c3ed4545 | mgdelmonte | 2021-07-03 17:17:58 +0300

feat: add travel.is_excluded
The travel module in Lua lets you set and remove exclusions, but not test for 
them. This adds the is_excluded function to that module.

[ Committer's note: Edited commit message. Closes #1928. ]

--------------------------------------------------------------------------------
b48c9e4e3a | mgdelmonte | 2021-07-03 17:14:09 +0300

fix: check for exclusions in view.is_safe_square
Currently view.is_safe_square returns false if a square has clouds or a
trap or something known to be nasty, but not if the square is marked
excluded. However, a marked exclusion, whether by the player or the
game, would seem to be an obvious indicator that the square is unsafe.

With the current implementation of view.is_safe_square, hitting TAB to
autofight when a monster is within an excluded area, such as that
surrounding an ice statue, can result in the question "Are you sure you
want to move into that travel-excluded area?" even if non-excluded
targets are available. With the advent of the travel_one_unsafe_move
option, autofights inconsistent treatment of exclusions is an interface
screw. This commit addresses that issue.

[ Committer's note: Rewrote commit message. ]

--------------------------------------------------------------------------------
6f15984924 | Edgar A. Bering IV | 2021-07-02 10:46:28 +0300

docs: remove starting books from the manual

--------------------------------------------------------------------------------
9e18931815 | Edgar A. Bering IV | 2021-07-02 10:46:15 +0300

feat: Spell background adjustments part I (kate-, hellmonk)
Book backgrounds have for a long time presented friction with the notion
that a background should be a starting kit, and not completely determine
a character's arc. With many books containing L5 spells many could carry
comfortably to the midgame. In part this was necessary to make them fun:
with spell books being large and somewhat rare, finding "the right book"
could take some time and without the level of progression found in
current books they would be sunk cost traps.

The recent changes to book items smooth out spell drops, giving more
opportunity for characters to adapt. This opens up space to make spell
backgrounds more of a starting kit and less of a complete package. Some
of the backgrounds would be awkward with a blunt delete all L5 spells
from spell starts, so this commit starts the process incrementally. This
is also a good opportunity to reduce the number of schools in each start
and the total number of spells even if there are no L5 spells, also in
support of this goal.

Ne, FE, and Wr are untouched, as chopping off their L5 spells leave the
books a bit too thin. They will be visited in future commits (possibly
in 0.28).

AE loses lightning bolt. There's a bit of an aesthetic loss in that
lbolt is quite iconic, but the start still has a strong collection of
spells that can support developing in various directions based on the
dungeon. Indeed, there are many players who already ignore lbolt in the
book.

AM loses Leda's. The AM book had four (4) schools for a background that
notionally also wants to train a weapon. At level 4 dual school Leda's
was the hardest to reach of these spells, so its absence won't be too
felt.

EE loses LRD. People kill OOFs with an acid wand and LRD, come on.
Without it the "jank stabber", "pick up some kind of tmut either form or
otherwise", and "be a blaster" possibilities invited by the book have
more equal appeal.

IE loses Metabolic Englaciation. The loss makes repeated Hailstorm
harder to set-up from the book alone, but it remains very strong.

Su loses Summon Ice Beast. Still very strong but reduces the book to a
three school book.

VM loses Ignite Poison. This reduces the number of schools in the book
to 4 (still high) and returns VM to an era of needing to branch out
sooner, especially to deal with resistant threats. This is much like
VM's past, but with the new opportunities provided by more frequent
spell drops it should be less of a "VM sucks" vibe.

--------------------------------------------------------------------------------
4eff083807 | Edgar A. Bering IV | 2021-07-02 10:01:39 +0300

docs: changelog typos (geekosaur)

--------------------------------------------------------------------------------
cffa5a9b16 | Kate | 2021-07-02 06:58:28 +0100

Fix book names in vaults

--------------------------------------------------------------------------------
28b6d0f915 | Nicholas Feinberg | 2021-07-01 22:13:03 -0700

Depluralize (ardl)
Avoid "an inescapable atlases" (now "...atlas") or "an unrestrained analects"
(now "the unrestrained analects", fairly hackily).

--------------------------------------------------------------------------------
4113b66390 | Nicholas Feinberg | 2021-07-01 22:07:09 -0700

Fix book of stone desc (hellmonk)
oops

--------------------------------------------------------------------------------
2e30c3664c | hellmonk3 | 2021-07-01 23:47:02 -0400

Fix book of the spheres description

--------------------------------------------------------------------------------
c0e7b40ece | Kate | 2021-07-02 01:34:05 +0100

Don't crash on examining ponderous artifacts
Extend the available space in descriptions so that "ponderous" fits, and
add handling so that future egos with long names will just be cut off
rather than crashing.

--------------------------------------------------------------------------------
6348b4e45d | Kate | 2021-07-01 23:11:04 +0100

Cap the number of spells Djinn can start with
Giving Djinn more than 8 spells caused them to hit the cap on known spells
as they levelled up. This could only happen rarely for Wanderers, but
handle it generally for all new characters Just In Case.

--------------------------------------------------------------------------------
2b061281b7 | Kate | 2021-07-01 23:11:04 +0100

Fix a crash when Djinn learn too many spells
In rare cases, Djinn Wanderers could start off with 9 or 10 spells, which
would cause them to hit the cap of known spells at level 25 or 27, and
crash when trying to learn their next spell. To rescue any games trapped in
this situation, make them forget spells from the start of their innate
set to make room for the later ones. A later commit should adjust Wanderer
starts to prevent Djinn from giving out so many spells and causing the
issue in the first place.

--------------------------------------------------------------------------------
2d92212324 | Edgar A. Bering IV | 2021-07-02 01:00:20 +0300

docs: changelog through 0.27-a0-1423-ge5d6b6a

--------------------------------------------------------------------------------
e5d6b6ab6a | Nicholas Feinberg | 2021-07-01 14:19:07 -0700

Fix Book of Weapons desc (Ge0ff)

--------------------------------------------------------------------------------
a6f8dd0138 | Kate | 2021-07-01 18:56:48 +0100

Shuffle around some high-level spells
Since the spells that were previously rarebook-only can now appear in
randart books, adjust book contents so that each L9 spell is only in one
fixed book.

--------------------------------------------------------------------------------
8daf88dee0 | Kate | 2021-07-01 18:56:40 +0100

Remove special handling for "rare" spellbooks
Previously, the book of Annihilations, Grand Grimoire, and the
Necronomicon had special behaviour - they couldn't be gifted by Sif, and
their spells never appeared in randart books (but could appear in Sif
randart gifts). The book reworks moved many of the affected spells out of
the rare books and into normal books, so rather than keeping the special
behaviour around for a very narrow remaining set of spells, just treat them
and their contents the same as any other books.

--------------------------------------------------------------------------------
4d0b0a1ddf | Edgar A. Bering IV | 2021-07-01 19:22:27 +0300

fix: Give capacitive coupling and searing ray identical ending behavior

--------------------------------------------------------------------------------
c69eb68267 | advil | 2021-07-01 11:59:02 -0400

fix: move newchar quiver setup later (dang3rdave)
It turns out that _setup_generic happens before the player's init file
is read for real, and so anything that is waiting on early setup calls
or lua isn't reliable at this point in character creation. This includes
the new fire order options, because there's an overly elaborate spell
name cache thing that isn't in place for the first rc read (and some
maybe-related but not fully identified issues for abilities). To solve
this I have moved new character quiver setup later in the sequence. It
might eventually be better to simplify spell/ability startup so it's
more reliable.

--------------------------------------------------------------------------------
5cd3f1290e | Nicholas Feinberg | 2021-07-01 08:47:52 -0700

Rework monster CBL
Give it actual damage (not the sad 3x3d6 it did before - now 3x3d25
on Lom Lobon) and describe it in xv.

I think spellforged servitor doesn't work properly with it before or
after this change. Not sure why.

--------------------------------------------------------------------------------
4c841f645e | Edgar Bering | 2021-07-01 09:54:26 -0400

fix: Harmonize spell distributions
In the process of preparing branch reading_rainbow for merging, Confusing
Touch and Vampiric Draining ended up in one book each, with Petrify and
Animate Dead appearing in three. This commit balances the book apperances
of these four spells to match the design spreadsheet.

--------------------------------------------------------------------------------
941b2bd30b | Nicholas Feinberg | 2021-06-30 22:51:31 -0700

Fix book weights? (wheals, others)

--------------------------------------------------------------------------------
413ade4df3 | Nicholas Feinberg | 2021-06-30 22:19:26 -0700

Fix chain lightning no-hostiles check
Correctly check to see whether there are any targetable enemies
in range.

--------------------------------------------------------------------------------
2fbb07c8a5 | Nicholas Feinberg | 2021-06-30 22:12:47 -0700

Fix chain lightning + statues (ardl)
Don't attempt to arc through them.

--------------------------------------------------------------------------------
ded080b69b | Nicholas Feinberg | 2021-06-30 22:05:35 -0700

Fix creeping frost death message
No more killed by 'a frost'.

This code is awful and makes me sad :(

--------------------------------------------------------------------------------
b7b94b6bbb | Nicholas Feinberg | 2021-06-30 21:59:04 -0700

Fix chain lightning death message
No more just 'killed from afar'!

--------------------------------------------------------------------------------
987ffbb14b | Nicholas Feinberg | 2021-06-30 21:41:23 -0700

Tweak ar description (dinky)
Like magic, a wand has become a chess piece.

--------------------------------------------------------------------------------
a306adf81e | Nicholas Feinberg | 2021-06-30 21:35:22 -0700

Fix curare death message (7+ year bug)
Don't claim to be killed by "kobold brigand's curare-tipped dart".
Instead, let's just be killed by *a* brigand.

This bug dates to at *least* 51a3c3daa54 and probably farther back.

--------------------------------------------------------------------------------
ea6a400864 | Nicholas Feinberg | 2021-06-30 21:24:14 -0700

Update book background descriptions
Don't claim they start with books. They don't!

--------------------------------------------------------------------------------
a93db79ee8 | Edgar A. Bering IV | 2021-06-30 21:08:18 -0700

vaults: Adjust explicit book placement
floats, shops, and portals
--------------------------

This adjusts explicit books placed by shops, floats, portal vaults, and
mini vaults in light of the new book shuffle. Some book placement
weights are moved upward in portal loot, as new books have fewer spells
this seems ok from a loot point of view.

arena sprint
------------

Add some more books to the arena sprint shop, since each book has fewer
spells. The pricing still probably makes this a tougher deal for heavy
spell users even with the increased selection. Hard cheese.

--------------------------------------------------------------------------------
e29514b5c3 | Nicholas Feinberg | 2021-06-30 21:08:18 -0700

Increase book generation rates
Move them from weight 30 to 100, slightly more than doubling the number
of books generated. This is in preparation for a future change that will
shrink books. All other item generation drops by about 2%, which I'm not
currently compensating.  This keep total spells more in line with what
we saw before.

--------------------------------------------------------------------------------
b47a77b0f7 | Nicholas Feinberg | 2021-06-30 21:08:14 -0700

Adjust book costs

--------------------------------------------------------------------------------
c126db5c3d | Nicholas Feinberg | 2021-06-30 21:07:25 -0700

Split fixed books into smaller sizes
To smooth out the vagaries of randomness and make it more viable
for players to adapt to what books they find, shrink most fixed books
to contain exactly 3 spells and add about 30 new books to compensate.

These books are designed to be relevant to a wide variety of character
levels and types, to increase the chance that they'll have at least
one spell that the finder will be able to use, even if it's less likely
that every spell in there will be useful. They're also supposed to have
fun, evocative themes.

--------------------------------------------------------------------------------
69d6a04d60 | Nicholas Feinberg | 2021-06-30 21:05:58 -0700

Adjust randbook sizes
Roughly halve the sizes of most randbooks. Exempt Sif gifts, but
make her gift timeout scale based on the size of the books gifted.

--------------------------------------------------------------------------------
60a263dd95 | Nicholas Feinberg | 2021-06-30 20:49:26 -0700

Fix artefact description formatting
Format armour ego descriptions in the same way as randart properties
when on a randart (or unrand).

--------------------------------------------------------------------------------
b235c8b66b | Nicholas Feinberg | 2021-06-30 20:49:26 -0700

Remove unused (?) armour desc code
This covered the case in which you knew that a piece of armour was
magic, but it didn't have an ego, but you didn't know what its plus was.
That almost certainly can no longer happen.

--------------------------------------------------------------------------------
8c83a1b76d | hellmonk | 2021-06-30 23:29:40 -0400

Noise dampening good mutation
A rare good mut that halves noise from all sources within the player's los.

--------------------------------------------------------------------------------
fb4300f5bb | Kate | 2021-07-01 03:55:27 +0100

Improve some unrand descriptions
Add DESCRIP lines for the Wrath of Trog, necklace of Bloodlust, ring of
Shadows and amulet of the Air. Unrands generally could probably use a full
pass to put pure mechanics information in DESCRIP lines, free up the
actual unrand description portions to be primarily flavourful, and possibly
to use the new ARTP syntax of showing the inscription alongside the
description (such as "SInv: It lets you see invisible"). Also fixes a typo
in the cloak of the Thief description (via geekosaur, thanks!).

--------------------------------------------------------------------------------
22e92bf66e | Kate | 2021-07-01 03:55:27 +0100

Fix artefact and jewellery desc spacing/linebreaks
Fixes a large number of inconsistencies in linebreaks across randarts,
unrands, and some mundane jewellery. These hopefully all now consistently
have a single empty line in between each of the base item description, any
special unrand-only brands and/or descriptions, any randart properties, and
the remainder of the descriptions. Also fixes a missing space for +Stealth
items.

--------------------------------------------------------------------------------
8a2cd6d854 | Kate | 2021-07-01 03:55:27 +0100

Mention berserk extension in Trog's description
It's probably not a detail that needs a full entry on the overview page,
but should at least be mentioned in the extended description.

--------------------------------------------------------------------------------
85a84b9822 | Kate | 2021-07-01 03:55:27 +0100

Give Trog berserk a small piety-based failure rate
To compensate for the removed chance of paralysis (since although Trog
reliably prevents it later, it could very occasionally happen early on),
and in general just to slightly weaken the ability in the extremely early
game where it's incredibly powerful.

--------------------------------------------------------------------------------
0ac0241410 | Kate | 2021-07-01 03:55:27 +0100

Remove the chance of paralysis when ending berserk
Paralysis was a rare occurence on ending berserk, and under Trog was
particularly unlikely to happen except very early on, due to the
piety-based chance to prevent it. It was slightly more relevant for
non-Trog berserk, but since that's much less reliably repeatable (and
weaker due to not being extended on kill), remove the chance of paralysis
to simplify the effect overall.

--------------------------------------------------------------------------------
c49bf3aad3 | Kate | 2021-07-01 03:55:27 +0100

Fix Trog being unable to burn an altar vault book (Goratrix)
The vault was looking for an unidentified book - instead check for the
book by its vault-defined title.

--------------------------------------------------------------------------------
a6dc6547e3 | Nicholas Feinberg | 2021-06-30 19:19:46 -0700

Revert "Revert "Adjustments to book generation""
With some fixes to shopping.cc and book gen.

--------------------------------------------------------------------------------
6e7fd8c9ca | Nicholas Feinberg | 2021-06-30 19:00:38 -0700

Remove fun (buff felids/blade hands)
RIP one of the greats.

--------------------------------------------------------------------------------
778c2f8729 | Nicholas Feinberg | 2021-06-30 18:56:10 -0700

Wereblood: only heal on adj kills
A duration spell has to be balanced very carefully, to encourage it
to be used situationally, rather than on all the time (since spells
in DCSS do not work well for 'always-on' effects). Adding healing
to Wereblood was intended to make it more useful in the early game,
so that characters would have the 'sustain' needed to keep fighting
multiple enemies and to make use of the slaying, but it seems to
have made it too generally applicable. Let's limit it a bit.

--------------------------------------------------------------------------------
48c30b3128 | advil | 2021-06-30 15:26:09 -0400

fix: adjust early processing of fire order options (Goratrix)
This will hopefully fix a crash on windows, that seems to result from
some ability code being called too early in the initialization process
on the first read of the rc file. Though I'm not sure why `all` works
while `berserk` crashes, but Goratrix has kindly done some bisection to
isolate that particular line. This commit also just prevents user-rc
fire order options from being processed on this initial pass.

--------------------------------------------------------------------------------
8d3c4a4866 | MainiacJoe | 2021-06-30 22:09:57 +0300

Make the Wrath of Trog angrier
This adds two new behaviors intended to make the weapon more appealing
for characters who can go berserk without making it too powerful for
those who can circumvent the *Rage. The first is berserk duration
extension identical to that of the Necklace of Bloodlust. The second is
Rampage: rampaging doesn't incur berserk penalties if it is used to take
a swing.

This is an overlap of effect, but the Wrath of Trog offers no optional
berserk and the ``extras'' are cleaner. Bloodlust might need some design
work, but that's out of scope for this commit.

To prevent using the weapon to go berserk on demand and otherwise not
deal with berserking in every fight, this also adds an on-wield penalty:
the berserk cool down.

[ Committer's note: Closes #1890. Did some commit re-ordering and
  editing. Added the wield penalty. ]

--------------------------------------------------------------------------------
3b62c0300e | MainiacJoe | 2021-06-30 21:47:38 +0300

Enable rampage on unrands
Creates RAMPAGE as a bool in util/art-text.pl

--------------------------------------------------------------------------------
e902cdc63c | advil | 2021-06-30 10:44:13 -0400

feat: enable arrow keys on quiver menu
Would like this feature to get more testing before general use, and the
quiver menu seems like a reasonable place for it to get that.

--------------------------------------------------------------------------------
b8d40accb6 | advil | 2021-06-30 09:55:49 -0400

feat: uselessness check for forest space (dinky)
This disables summon forest in the quiver when there isn't enough space
for it.

--------------------------------------------------------------------------------
365887799b | Edgar A. Bering IV | 2021-06-30 09:24:45 +0300

fix: Tweak Capacitive Coupling's quiver name to fit

--------------------------------------------------------------------------------
c2e3725628 | Edgar A. Bering IV | 2021-06-30 09:18:03 +0300

feat: Animate the status light for Maxwell's
We could use plusses but the number of turns waiting isn't easily
available unless we leak the charge time which is intentionally
randomized and hidden. So instead, a little twirly dash to give some
feedback that something is happening.

--------------------------------------------------------------------------------
1422d76b99 | advil | 2021-06-29 22:23:21 -0400

feat: autofight for wait spells
The need to specifically hit `.` is a bit of an interface screw more
than anything; this commit enables just triggering autofight (`p` etc)
if the wait spell is quivered to continue casting it. This has been on
my list for a while but now that there are two of them it became more
important.

As part of this commit, I also made it clearer in the targeter that
casting it that way would restart the spell. Possibly should be included
in `z` as well for people who have the Maxwell's targeter disabled.

--------------------------------------------------------------------------------
bd6db1e6d9 | Kate | 2021-06-29 23:46:59 +0100

Adjust spacing in spellbook descriptions
So that "Maxwell's Capacitive Coupling" will fit.

--------------------------------------------------------------------------------
a7dfd5ec23 | advil | 2021-06-29 18:10:42 -0400

feat: options for controlling spell/ability quivering
Long-requested quiver features: These options let you control what
appears in the cycle order (and autoquiver on game start) in a much
finer-grained way. Ideally this would have some sort of in-game UI but
that's a much bigger project, so these fairly brute-force options will
do for now. These options do not affect what is shown in the Q menu, if
there is demand for that I could consider a further tweak along those
lines.

Since some people seem convinced that quivers are for attacking only, I
have provided some shortcuts to set your spell/ability fire order lists
that way; probably most useful with autofight_throw=true since the
notion of "attack" this uses is exactly identical to that one. Also by
popular demand, this commit excludes berserk by default from
fire_order_ability, keeping it out of cycle order and autoquiver. I
could still be convinced to revert this part, though I do agree that
berserk is very different from everything else that this option is
relevant to at game start. This can of course be overridden with:
    fire_order_ability += berserk

As part of this commit I also made `fire_items_start` be respected for
all quiverable item types, not just ammo.

--------------------------------------------------------------------------------
81fdcbfb23 | advil | 2021-06-29 14:42:58 -0400

fix: update quiver on item adjustment
This is a long-missing behavior for newquivers. Spells and abilities
already handled adjustment correctly, because they didn't rely on
anything tied to letter position, but inventory items need to manually
have the quiver slot changed.

--------------------------------------------------------------------------------
f508b8f851 | advil | 2021-06-29 13:09:37 -0400

feat: range checks for various scrolls
The main goal of this was to improve the enabled check when a scroll is
quivered (e.g. fear is now disabled with no susceptible enemies), but I
also added a double-check prompt when reading the scroll. If this is too
annoying it can be removed.

It's possible these checks are a bit slow when a scroll is quivered, and
need a cache mechanism like `spell_action`s have. However, I'm not sure
how much consumables will really be quivered in practice, so I'll wait
and see.

--------------------------------------------------------------------------------
e6a161afd2 | advil | 2021-06-29 13:09:37 -0400

refactor: consolidate some reading code
Only scrolls are readable, so this commit removes the distinction
between `read` and `read_scroll` and restructures reading checks
accordingly. The reading checks are reordered and cleaned up in the
process, so this commit should fix
https://crawl.develz.org/mantis/view.php?id=12610.

--------------------------------------------------------------------------------
defffd1ff6 | Kate | 2021-06-29 04:49:37 +0100

Staticify a function

--------------------------------------------------------------------------------
9e2faccc22 | Kate | 2021-06-29 04:49:18 +0100

Don't crash when cancelling a Searing Ray

--------------------------------------------------------------------------------
3820e56076 | Kate | 2021-06-29 01:20:33 +0100

Don't allow activating the Sceptre of Asmodeus with Sac Love
Previously it would spend a turn but do nothing, so just print the failure
reason without costing a turn.

--------------------------------------------------------------------------------
4b199c8bd3 | Edgar A. Bering IV | 2021-06-29 01:01:59 +0300

feat: New Spell: Maxwell's Capacitive Coupling
Commit 64d35965e29 removed Absolute Zero because the memorable,
spectacular instant kill effect didn't have good playfeel. It often felt
cheap, with the monster getting no chance to react. The result was that
boss fights felt like anticlimaxes.

This re-introduces the guaranteed kill effect, but it is no longer
instant.  Instead, the spell has a (random, not revealed) aut charging
time between cast and effect. In this time the player must wait (like
searing ray). At the end of the time a random closest monster is killed.
Any action other than waiting causes the spell to fizzle (with no MP
refund).

The flavour is currently Air: a reference to capacitive
coupling. The effect (especially with the time lag) fits the "bouncy,
pointy, or hard to direct" archetype that we went for with Air in
positional magic much better than Ice (I will admit a bit of contortion
in calling A0 "subtle".) With Chain Lightning moved up to L9 Conj/Air,
Air magic has space for a L7 or 8 attack spell.

This reverts commit 64d35965e295382a687bd14c17aadd49688b771d.

--------------------------------------------------------------------------------
c14e5d3922 | advil | 2021-06-28 17:51:34 -0400

fix: missing header?

--------------------------------------------------------------------------------
ea054b796d | advil | 2021-06-28 17:26:16 -0400

feat: add static targeters for several scrolls
Another niche feature, somewhat more involved than I had hoped. The
trick here is that even where scrolls correspond to spells, the call
that does the effect is always pretty low-level and so it wasn't easy to
reuse all the your_spells scaffolding.

This commit adds targeters for fear, summoning, vulnerability,
immolation, holy word, silence, and reuses the existing blink targeting
code. (In implementing this, I slightly refactored how hop is called
because of needing to change shared code.) Most of these aren't very
exciting unless you aren't used to the effect, but fear seems useful. It
would be nice if there were a nicer interface for getting to these
targeters besides quivering the scroll and using `f`, but I'm not sure
what that would be.

This commit also prevents quivering unid'd spells and scrolls, for the
sake of simplicity.

--------------------------------------------------------------------------------
a08111df00 | advil | 2021-06-28 17:18:34 -0400

refactor: generalize and unify some quiver boilerplate
This combines a bunch of shared / repeated code for actions involving
items. There's some hackiness here to do with hard coding class names
for serialization + equality purposes, but it's still probably better
than repeating this code so many times. (Not aware of a cleaner c++
approach to this, though perhaps there is something.)

--------------------------------------------------------------------------------
6e4aca1174 | advil | 2021-06-28 17:18:34 -0400

feat: quivering spells/potions
This is a pretty niche feature so I haven't included these in the
default `Q` list. However, it was easy to implement, requested, and this
is one step closer to a complete generic trigger api for item effects.
E.g. eventually I'd like to use actions for local tiles buttons so that
the item activation api is not distinct.

One noticeable gap is targeters for scrolls, to be added in a future
commit. Another is that scroll actions don't have a very good enabled
check.

--------------------------------------------------------------------------------
58471f690d | Kate | 2021-06-28 19:18:34 +0100

Remove Pakellas ability tiles and descriptions
Since their functionality has been removed.

--------------------------------------------------------------------------------
1ea419760f | Kate | 2021-06-28 17:49:01 +0100

Remove obsolete code for Pakellas' Device Surge
It had lots of dead code and resulted in a large number of
TAG_MAJOR_VERSION checks in any place that calculated evocations power.
There's no save compatibility requirement to keep it around and any future
re-implementation of Pakellas would need a full redesign, so fully
remove the ability to clean up evoker code around it.

Also fixes some overzealous TAG_MAJOR_VERSION checks which had scheduled
surge_power() and surge_power_wand() for removal - these handle messaging
for normal enhancers and still function without Pakellas.

--------------------------------------------------------------------------------
229a95b9f4 | Kate | 2021-06-28 16:14:18 +0100

Make Archmagi affect randart pricing

--------------------------------------------------------------------------------
c7843cd938 | Kate | 2021-06-28 16:13:20 +0100

Fix spacing

--------------------------------------------------------------------------------
d924e931ac | Kate | 2021-06-28 16:11:05 +0100

Fix Archmagi and +MP randarts never generating

--------------------------------------------------------------------------------
e71e8f7681 | dilly | 2021-06-28 10:31:10 +0300

Add Wr and AM for Ba recommends (#1994)
Four weren't enough. Let players do something else more.



[ Committer's note: Ba make good hybrids, we use recommendations both for 
things that play well and things that build lore. These backgrounds meet both 
criteria. ]
--------------------------------------------------------------------------------
9667eb783e | Skrybe | 2021-06-28 10:29:59 +0300

Update special_room_magic_class (#1961)
Some adjustments to the magic classroom special room I submitted a while back.  
Added necromancers to the monster set, and adjusted weights in general.  
Vampire knights and deep troll earth mages get the biggest drop in weight, and 
deep elf sorcerers and deep elf death mages get the biggest increase.  Depths:5 
draconian annihilators are more common now as well.  This should make the room 
generate a more varied monster set.  Boss monsters are untouched.
--------------------------------------------------------------------------------
e0d888d967 | Alexei-Barnes | 2021-06-28 10:06:43 +0300

Corrects the description of Tin of Tremorstones
The description states that the power scales with your evocations skill.

This is not the case since 6f112fb28d.
--------------------------------------------------------------------------------
e7c6b5271d | Goratrix | 2021-06-28 10:03:55 +0300

Add Archmagi as a randart property
This adds Archmagi as a randart property and enables it to generate on

robes only (for now). Also added are equip/unequip messages, same as for

the Archmagi ego, and an indicator in the character overview screen.
--------------------------------------------------------------------------------
234f4a1dcd | Nikolai Lavsky | 2021-06-28 09:59:29 +0300

Fix Dj's hair on the species selection menu
The newgame doll was missing red hair, which is the default according
to `tilepick-p.cc:tilep_race_default()`.

--------------------------------------------------------------------------------
4cf9878b8b | robertxgray | 2021-06-28 09:49:34 +0300

Allow zoom in via ctrl-'+' The key combination ctrl-'=' doesn't work in some 
European keyboards like Spanish or German.

--------------------------------------------------------------------------------
a2a4dfd6fd | Nicholas Feinberg | 2021-06-27 19:09:28 -0700

Maybe fix a book crash (kate)

--------------------------------------------------------------------------------
a0a28fc8c3 | Nicholas Feinberg | 2021-06-27 14:45:43 -0700

Revert "Maybe fix a book crash"
This reverts commit b88236dc16387cae4b30a5264a106c4c44de900a.

--------------------------------------------------------------------------------
5d287be605 | Nicholas Feinberg | 2021-06-27 14:41:53 -0700

Revert "Adjustments to book generation"
This reverts commit caca448e221395f958a5f12a07e8ffd255cb755f.

--------------------------------------------------------------------------------
b88236dc16 | Nicholas Feinberg | 2021-06-27 14:24:13 -0700

Maybe fix a book crash

--------------------------------------------------------------------------------
1158a0e862 | Nicholas Feinberg | 2021-06-27 13:57:10 -0700

Don't list the books a spell can be found in
This was never particularly useful, and would break when we added
more book types.

--------------------------------------------------------------------------------
caca448e22 | Nicholas Feinberg | 2021-06-27 13:56:54 -0700

Adjustments to book generation
- Support future books beyond the current limit of 60.
- Remove the concepts of 'book rarity' and 'spell rarity'. Instead,
  try to generate books with spells that will be potentially
  interesting to players at the corresponding absdepth.
- Price books by total spell level, not by rarity.

--------------------------------------------------------------------------------
14994ecaaf | Kate | 2021-06-27 20:31:32 +0100

Adjust Slime floor zig scaling
To replace some of the azure jelly weight with rockslimes and quicksilver
oozes. They're unlikely to be especially worrying threats, but they do
probably at least deserve some additional weight as the new top-end Slime
monsters.

--------------------------------------------------------------------------------
bb9dc7d752 | Kate | 2021-06-27 20:21:16 +0100

Remove some obsolete Djinn code
(From their previous implementation.)

--------------------------------------------------------------------------------
47152c58aa | Nicholas Feinberg | 2021-06-27 12:00:44 -0700

Remove book ID
Books being unknown had almost no impact on the game. They were a
little fun in antique shops, but that was fairly rare and not worth
keeping the feature given the limitations it presents (max 60 book
types), let's scrap it.

--------------------------------------------------------------------------------
f014654284 | Nicholas Feinberg | 2021-06-27 12:00:00 -0700

Remove known book tracking
Extremely little point to it now that libraries exist.

--------------------------------------------------------------------------------
4272520434 | Nicholas Feinberg | 2021-06-27 11:59:18 -0700

Make Damnation bolts only mulch on hit
Seems polite.

--------------------------------------------------------------------------------
58f33c6695 | Nicholas Feinberg | 2021-06-27 08:33:55 -0700

Maybe fix dform steam res (advil, 2tousent)

--------------------------------------------------------------------------------
d8886f0a89 | Nicholas Feinberg | 2021-06-26 22:06:02 -0700

Title armour properties
To help clarify for newer players who get lost in the sea that
is our very long item descriptions. (We need more organization,
formatting, sections, etc... but instead I'm doing this.)

Example output:

'Of rampaging': It allows the wearer to take one free step toward
enemies. (Or however that goes...)

--------------------------------------------------------------------------------
60794d8430 | Nicholas Feinberg | 2021-06-26 22:06:02 -0700

Title artefact properties
Explain what inscription each artp corresponds to in item descriptions.
(E.g.: "rPois:   It confers resistance to poison", or something like that.)

Formatting could use some work.

--------------------------------------------------------------------------------
b432ad73d2 | hellmonk | 2021-06-26 20:59:13 -0400

Buff Wucad-Mu
Reworked Wucad-Mu felt a bit underwhelming. Increase the chance of a refund,
and refund the MP on success even if a side effect is rolled. Can be tweaked
further if this ends up being too much.

--------------------------------------------------------------------------------
9fd5ee6ec5 | hellmonk | 2021-06-26 20:37:33 -0400

Add salamander tyrants to snake themed zig floors

--------------------------------------------------------------------------------
643e45de12 | hellmonk | 2021-06-26 20:13:02 -0400

Don't unbribe monsters that haven't been bribed yet
Whatever jank this causes is probably less bad than turning monsters hostile
because the player hit a monster that, unknown to them, would receive a bribe
when it entered their line of sight.

--------------------------------------------------------------------------------
a99462a43c | Nicholas Feinberg | 2021-06-26 11:48:01 -0700

Only explode Damnation on hit
When fired from the unrand Damnation, bolts should only explode if
they actually hit the target. (Thus, firing with '.' is no longer
very silly secret tech.)

--------------------------------------------------------------------------------
dcd0597939 | Nicholas Feinberg | 2021-06-26 10:47:33 -0700

Remove a redundant yesno (advil)

--------------------------------------------------------------------------------
561ffd6492 | Nicholas Feinberg | 2021-06-26 10:43:52 -0700

Allow monsters to wand each other
The prophecy is fulfilled.

--------------------------------------------------------------------------------
81ec99bee2 | Nicholas Feinberg | 2021-06-26 10:40:55 -0700

Break monster AI (greenscarf)
Allow berserk monsters to launch reaching attacks, as with players.
In principle allow monsters to reach, swoop, or use wands while
offscreen. (But wands still don't quite work.)

--------------------------------------------------------------------------------
1e49fe14ad | Nicholas Feinberg | 2021-06-26 10:10:57 -0700

Remove superfluous parens

--------------------------------------------------------------------------------
bddd1c10ba | Nicholas Feinberg | 2021-06-26 09:48:30 -0700

Allow Poisonous Vapours on empty space
To allow people to cast it on invisible enemies (which seems fairly
intuitive). Now that vapours doesn't create clouds, this should be
unproblematic. (Kate, if I've misunderstood your intent, please let
me know.)

This probably needs some way to bypass the yesno prompt but I'm not
sure what.

Partially reverts d1c2c16caae861bf6d9ccddd45d859ddfa191991 .

--------------------------------------------------------------------------------
c13eec7c8e | Aliscans | 2021-06-26 18:57:23 +0300

Add a help option for the wizard mode create monster command.
Entering ? as the monster name causes some help text to appear. This is
derived from the MONS section of docs/develop/levels/syntax.txt, but
with a few changes.

1. Use colour - yellow for headings, white for keywords which can be
entered as part of the command, and cyan for other things such as text
the game produces in response to a command, or file references.

2. Remove quotation marks from around keywords. I haven't done this with
cyan text, as this contains longer phrases which may be harder to
separate.

3. Don't give advice on how the command should be used (such as "use
this sparingly").

4. Rearrange the paragraphs a bit, and add a new opening paragraph.

5. Add lists of valid characteristics for mutant beasts and ugly things.

--------------------------------------------------------------------------------
23b85b8d87 | Edgar A. Bering IV | 2021-06-26 12:04:23 +0300

docs: changelog typo

--------------------------------------------------------------------------------
2746e35aca | Edgar A. Bering IV | 2021-06-25 22:18:29 +0300

docs: changelog through 0.27-a0-1333-gcdc07c3a8f

--------------------------------------------------------------------------------
cdc07c3a8f | Nicholas Feinberg | 2021-06-25 11:18:36 -0700

Unlock dangerous quantities of punny vaults
Add nicolae to the dev team! Well deserved and welcome :)

--------------------------------------------------------------------------------
84bddb5ca7 | advil | 2021-06-24 19:41:31 -0400

fix: proper range check for poisonous vapours
Also, move it into spl-damage.cc since as of 3f0e5c0cca2eb01 there are
no clouds involved. Possibly this can just be zappified to simplify it
further?

This fixes https://crawl.develz.org/mantis/view.php?id=12502

--------------------------------------------------------------------------------
60ef6b6952 | advil | 2021-06-24 17:41:10 -0400

fix: better BVC auto-targeting
This keeps BVC from repeatedly targeting already-clutched enemies.

Resolves #1956

--------------------------------------------------------------------------------
c68dd95e36 | advil | 2021-06-24 17:28:41 -0400

feat: handle @Qn inscriptions directly in quiver menu
Before (after newquivers) these were only usable by going into the item
submenu. This will work even for items that don't show up in this menu
by default, though as of yet there is no way to inscribe non-items.

(This was reported somewhere by someone, but I can't figure out who or
where to credit, sorry.)

--------------------------------------------------------------------------------
14410a1de8 | advil | 2021-06-24 14:02:36 -0400

feat: hide dj MP bar in webtiles

--------------------------------------------------------------------------------
a61f464a61 | advil | 2021-06-24 13:48:10 -0400

feat: hide dj MP bar in console/local tiles
This is kind of ugly because as it stands, y positions for certain hud
elements are calculated in multiple places. (In fact, this calculation
was already buggy.) But doing this "right" involves a lot of high-effort
refactoring and testing, or at least more than I'm going to do right
now. However, I have at least renamed the infamous yhack to something
more interpretable and changed its logic accordingly.

--------------------------------------------------------------------------------
9601c94f4e | advil | 2021-06-24 12:48:51 -0400

feat: arrow key navigation for macros menu
More incremental improvements for the macro menu. The immediate goal of
this is to allow more easily selecting existing macros for editing that
have hotkeys that menu code would otherwise intercept.

Despite the limited application of this change, the commit is a fairly
comprehensive rewrite of hover code that is tested to work on any
single-selection menu. I may activate it more generally in the future as
I think it's a net usability improvement in all sorts of menus (though I
expect a certain amount of grumbling because it is *change*). However,
it needs to be extended to handle multiselection before this is fully
viable.

As part of this change, I needed to rewrite webtiles hover code to use a
regular css class rather than the :hover pseudo-class; unfortunately one
cannot interact programmatically with :hover. There *should* be no
user-visible change resulting from this but this was more complicated
than I had hoped, so we'll see. The webtiles client-server communication
about hover is still somewhat dubious here.

--------------------------------------------------------------------------------
66ddcf376d | advil | 2021-06-24 12:48:51 -0400

fix: set last_visible correctly in webtiles menus
The for-loop here for setting last visible only checks the case where
i-1 is the last visible element, so when the last element is visible, it
didn't do anything, leaving last_visible set to 0. Instead, make the
fallthrough case already the last element in the list. As far as I can
tell this should work even on very strange bounding boxes. As a
practical matter, this will prevent menus from wrapping to the beginning
on pgdn in webtiles, which they apparently have been doing for a while.
We'll see how used to this players are. Other clients have a MF_WRAP
setting for when menus are supposed to have this behavior, but this
doesn't seem to be implemented in webtiles.

This commit also fixes a bunch of js exceptions on corner cases with
empty menus.

--------------------------------------------------------------------------------
58a489ad9e | Nicholas Feinberg | 2021-06-23 08:45:34 -0700

Remove local dj mp display
Webtiles is harder so I'm leaving that to someone else, sorry!

--------------------------------------------------------------------------------
e0d8e047f6 | advil | 2021-06-22 10:08:50 -0400

feat: better integrate the macro menu
Before, there was a pre-menu to select the kind of binding to edit
before entering the edit menu. After this change you are dropped
directly into macro edit mode, and can use `!` to switch to keybind
editing. This is one fewer keystroke for macros, the same number of
keystrokes for regular keybinds, and extra keystrokes for the obscure
keybind modes. I've also slightly hidden the details of keybinds from
the first view, because in almost all circumstances I don't think
players want to edit these in-game, and in almost all circumstances,
macros are a better choice than keybinds for people who don't know what
they are doing.

Still lots of further improvements to be made here. The editing itself
should be moved onto the same screen as the menu, and I think this menu
would also be more convenient if arrows selected (but unfortunately the
Menu class doesn't support this at all, as far as I know).

--------------------------------------------------------------------------------
4214377f51 | gammafunk | 2021-06-22 03:50:54 -0500

Adjust spawns in a vault (dilly)
The vault nicolae_shoals_spring_well_temple places about 7.5 water
nymphs on average, in addition to two well springs, which is pretty
extreme. The upper-limit of what vaults can place given extreme and rare
RNG results is allowed to be ridiculous, sometimes worse than branch
endings and potentially leading the player to abandon a level. However
unless the vault is intended to be an extreme challenge, which often
means down-weighting or runed door/transporter vault, the average case
should be more reasonable.

This commit adjusts the vault to only place 3 water nymphs on-average
and adjust the well spring placement from guaranteed 2 to place 1 to 3
with an average of two.

--------------------------------------------------------------------------------
fdffb62a71 | Nicholas Feinberg | 2021-06-21 22:30:07 -0700

Mostly remove resilience
This basically just confused a lot of people over the years. It's OK,
you can say 'health' when you mean 'health'. We already use it in a
few places! It's more flavourful for stuff like Borg's anyway - very
Raistlin Majere.

Skeletons and zombies are a bit beyond the whole 'health' thing, and
I think resilience is less confusing for them anyway, so they can keep
it. Ditto the reference on the amulet of vitality - that one's very
straightforward.

--------------------------------------------------------------------------------
d358eaa319 | Kate | 2021-06-21 21:18:35 +0100

Prevent repeating Nemelex Stack Five and Triple Draw (#12607)
Repeating abilities with submenus causes weird behaviour.

--------------------------------------------------------------------------------
a591dbc05d | Kate | 2021-06-21 21:16:34 +0100

Fix command repeat handling for some unrepeatable actions
Various actions couldn't be repeated with 0, but could be with `. Prevent
these more consistently, and fix a case where aborting out of an attempt to
repeat rampaging movement would result in a partial move still taking place.

--------------------------------------------------------------------------------
eec4fb4e21 | Kate | 2021-06-21 04:12:14 +0100

Refactor Kiku's Necronomicon gift, re-add Haunt
With Haunt being moved out of the Necronomicon it had become impossible for
Kiku to gift knowledge of it. Instead of gifting a physical Necronomicon,
make Kiku add its spells directly to the library as with the earlier spell
gifts, and add Haunt back to the list of included spells.

--------------------------------------------------------------------------------
0c770c2c28 | Kate | 2021-06-21 04:12:02 +0100

Refactor Kiku book gifts
Instead of gifting randbooks, just gift the spell knowledge directly, since
the spell library now supports this. Saves some weirdness with not being
able to receive spell gifts over water/lava.

--------------------------------------------------------------------------------
d1140b374c | Kate | 2021-06-20 19:58:53 +0100

Fix braces

--------------------------------------------------------------------------------
0783df26cf | Kate | 2021-06-20 19:58:12 +0100

Fix a newly-introduced melee crash
Don't bail out of combat and crash after a fire vortex attacks and destroys
itself.

--------------------------------------------------------------------------------
b2afe90b7e | Kate | 2021-06-20 18:17:23 +0100

Clean up monsters that die due to acid retaliation damage
Fixes an issue with invalid dead spectral weapons when they die to acid
retaliation damage, hopefully fixes a related crash, and probably doesn't
break anything else?

--------------------------------------------------------------------------------
dfdbaa49b7 | Kate | 2021-06-20 18:06:43 +0100

Don't allow GDR below 0%
(For wizmode display purposes.)

--------------------------------------------------------------------------------
2e558cd5dc | Kate | 2021-06-20 17:04:22 +0100

Fix an information leak with LOS attack spells (#12605)
Don't consider invisible creatures as valid affected targets if you can't
see them.

--------------------------------------------------------------------------------
5cdb2b3542 | Kate | 2021-06-18 22:20:48 +0100

Fix tag_upgrade compilation

--------------------------------------------------------------------------------
670f4b6da9 | Kate | 2021-06-18 22:17:03 +0100

Don't try and place djinn corpses in nicolae_arrival_memento_mori
But do place palentonga corpses since those do exist.

--------------------------------------------------------------------------------
4af0e254da | Kate | 2021-06-18 21:38:09 +0100

Update some monsters-behind-glass vaults
To use accurate lists of player species monsters.

--------------------------------------------------------------------------------
830f50283a | Kate | 2021-06-18 21:22:54 +0100

Add dummy monsters for player djinn

--------------------------------------------------------------------------------
c08437e49b | Kate | 2021-06-18 04:25:08 +0100

Replace Animate Skeleton with Call Imp in the tutorial
Since summons should function better than raised undead due to the
relatively quick expiry timer on the skeletons.

--------------------------------------------------------------------------------
1b31d702ef | Kate | 2021-06-18 04:12:36 +0100

Update tutorial some more (CanOfWorms)

--------------------------------------------------------------------------------
fa6c21d646 | Kate | 2021-06-18 01:32:07 +0100

Fix Poisonous Vapours not working on rPois- monsters (Ham)

--------------------------------------------------------------------------------
f33ce2d7c7 | Kate | 2021-06-17 22:54:45 +0100

Fix a tutorial/hints mode crash

--------------------------------------------------------------------------------
0d0f3e58c5 | Kate | 2021-06-17 22:49:50 +0100

Update tutorial
Remove some more unused tutorial pads, replace a redefined monster with a
real one, and replace the ratskin cloak so as not to give the player allies
in an early lesson before allies are deliberately introduced in the later
spellcasting tutorial.

--------------------------------------------------------------------------------
3f0e5c0cca | Kate | 2021-06-17 20:00:08 +0100

Rework Poisonous Vapours not to create clouds
Mechanically, Poisonous Vapours is intended to apply a small amount of
smite-targeted poison, but the fact that it was implemented by using a
cloud ended up making it unnecessarily complicated. Almost all of the time
the cloud would dissipate immediately, but at particularly high power it
would stick around for a brief while, and using a cloud also prevented
using it against targets that were already in clouds.

Instead make it just directly apply poison, with the number of stacks
applied scaling up at high power (to compensate for the fact that the cloud
itself could previously deal some direct damage).

--------------------------------------------------------------------------------
7736ffe575 | Kate | 2021-06-17 17:27:55 +0100

Remove an unused tutorial pad

--------------------------------------------------------------------------------
128193abf8 | advil | 2021-06-16 10:19:54 -0400

fix: don't mark ash-cursed items as useless
In various cases the player can put on items whose base ego is useless
(e.g. faith), and then curse them, in which case they are no longer
useless. The melding logic here relies on the rest of the code being
right, which it probably isn't, but it looked ok in the cases I tested.

--------------------------------------------------------------------------------
08e866c54a | advil | 2021-06-16 10:19:54 -0400

fix: fully inactivate faith for ashenzari (u/Imaginationably)
c9f47ef48ce0 disabled the piety gain effect of faith and marked it
useless, but did not turn of the on-remove effect or messaging.
(Possibly this code would be cleaner if all of these things were tied to
uselessness, but I'm not sure enough how the other gods work to change
that.) It's still possible to wear useless items (and in this case, even
curse them -- in fact this maybe means that ash followers should collect
useless amulets until they have something better to curse? Haven't
played enough newash to know if this is a good idea.)

--------------------------------------------------------------------------------
1ab19c6527 | Nicholas Feinberg | 2021-06-15 22:22:12 -0700

Partially fix chain lightning death messages
Still broken in a couple of ways, but this is all I've got in me
for tonight.

--------------------------------------------------------------------------------
003aadc33b | Nicholas Feinberg | 2021-06-15 22:13:48 -0700

Display chain lightning damage in monster
(again)

--------------------------------------------------------------------------------
5c463d0a3f | Nicholas Feinberg | 2021-06-15 22:09:42 -0700

Fix monster
Oops

--------------------------------------------------------------------------------
8ece459b43 | Nicholas Feinberg | 2021-06-15 14:50:06 -0700

Add a fairly silly splash (ArbitUHHH)
Much debate over this one, but the chicken won out in the end.

--------------------------------------------------------------------------------
0306a414db | advil | 2021-06-15 13:55:18 -0400

fix: remove chain lightning delays with no animations (Yermak)
This extends the refresh option introduced in e645bd13c135 to be usable
as a beam option, for callers who are not separating drawing and damage.
It then applies it to chain lightning, fixing the lag when animations
are off; this commit should also reduce the number of redraws with
animations on (which is a factor in lag online). As one of the TODO
notes says, I am still not entirely sure why there should still by
default be an update per cell when draw_delay == 0, but this is
preserving old behavior from before e645bd13c135, and I would need to do
more investigation before simplifying.

--------------------------------------------------------------------------------
42bb9d4d07 | gammafunk | 2021-06-15 09:30:55 -0500

Fix a shop vault depth (nicolae)

--------------------------------------------------------------------------------
4180522d9c | gammafunk | 2021-06-15 09:19:36 -0500

Some shop vaults from nicolae (12593)
No real changes from the original submission aside from a couple very
minor bug fixes.

--------------------------------------------------------------------------------
165cb48cdd | gammafunk | 2021-06-15 09:14:06 -0500

Refactor and expand objstat statistics
This commit reworks most of the internal data handling of objstat to be
more consistent and to allow tracking of additional data. All item
categories now track additional categories of whether the item was in a
vault, held by a monster, or in a shop. Aspects like enchant/charges and
brands are likewise tracked within these new categories. We also now
track statistics for spells, as described further below. Artefact books
are moved over to the spellbook tracking file, treating level artefact
books and theme artefact books as two distinct book types. Additionally
manuals now track by their associated skill instead of all together.
Finally, objstat no longer produces redundant listings for "All Levels"
when only one branch is tabulated, since that data is already in the
branch summary.

For items, the tracking categories of artefact, vault, shop, and held by
monster are independent of each other. So one can't determine the number
of items both held by a monster and in a vault, for example; tracking
all combinations of these aspects would lead to too many statistics of
marginal interest. Exception to this are the fact that an item can't be
both held by a monster and in a shop and that all shop items are vault
items, since shops place through vaults. Subtracting the values in these
categories from the overall value will always give the count for the
negation of that category. For example, subtracting NumArte from Num
gives the number of non-artefact items. I've removed fields like
"NumOrd" that can be calculated in this way to reduce the number of
output statistics; these calculations can be easily made by a
spreadsheet, once the data is imported.

For spell tracking, we track overall counts by spell and within the new
categories mentioned above, including artefact for spells in artefact
spellbooks. Additionally we have "Chance" fields for spells in all
categories. The Chance field gives the percentage of the time the spell
was seen on a given level. This can be useful for determining the chance
a spell would be seen by some depth, for example.  Calculation of Chance
fields could be extended to other item categories like Misc, Staves, or
even all items, if that's later deemed useful.

Internally it now uses map<> instead of vector<> for indexing
statistics, which simplifies statistical initialization, since we can
rely on default initialization of zero for most statistics. I've made
these maps use enum types keys where that's possible, but in some cases
like item sub_type we still need to use int keys, since item sub_types
don't share a common enum type.

--------------------------------------------------------------------------------
eefcff550b | Nicholas Feinberg | 2021-06-14 17:31:47 -0700

Rewrite new game spell setup
In preparation for future changes, don't give new characters a
spellbook and then immediately destroy it. Instead, give them a
specific list of spells.

--------------------------------------------------------------------------------
15d3ce7508 | advil | 2021-06-14 09:54:04 -0400

fix: guaranteed source of digging in sprint_mu slime (Nivim)
There is no code to remove the walls on TRJ death, and it is not easy to
port the regular game code over. I'm guessing the intent was to break
these walls somehow (they are rock, not stone). The sprint does place a
source of digging, just not in slime, possibly because it would have
been eaten.  However, that is no longer an issue, so I'm just adding a
guaranteed digging wand on the altar. If someone ever implements wall
destruction here, remove this.

--------------------------------------------------------------------------------
e5723c67b8 | advil | 2021-06-14 09:20:01 -0400

fix: prevent closets in `heliophobic_arrival_ceremonial_halls`
Extends the fix in #1984. The biggest thing this vault needed was a
`transparent` tag; I've also added the pathing from #1981 as it will
help it place, and in addition to that added explicit @ tags. It could
be good to randomize the outer pathing a bit, but let's keep it simple
for now.

Resolves #1973
Resolves #1984

--------------------------------------------------------------------------------
0782e7eb64 | DreamDust | 2021-06-14 09:20:01 -0400

Fix: lemuel_upstairs_altar
[Committer's note: ensure that this places where a downstairs can place]

Resolves #1981

--------------------------------------------------------------------------------
ca74d27db6 | hellmonk3 | 2021-06-13 22:16:23 -0400

Merge pull request #1972 from hellmonk3/rollingrocks
New spider minivault
--------------------------------------------------------------------------------
fa2398d640 | hellmonk3 | 2021-06-13 21:39:57 -0400

Merge pull request #1971 from hellmonk3/zotshop
New Zot:5 shop vault
--------------------------------------------------------------------------------
992921d2c4 | hellmonk | 2021-06-13 21:28:55 -0400

Return blade hands to level 5
While it's unlikely to return to the TM start book, blade hands works best at
a lower level, where the option to cast it in heavy armour is more appealing.

--------------------------------------------------------------------------------
6cae3acc97 | Kate | 2021-06-14 00:22:28 +0100

Adjust Wereblood description

--------------------------------------------------------------------------------
e233d83751 | Nicholas Feinberg | 2021-06-12 15:39:18 -0700

Add a Werewolf quote (Ge0ff, 12601)

--------------------------------------------------------------------------------
9d2d252d84 | Kate | 2021-06-12 19:33:39 +0100

Fix pluralisation
Apparently both are valid, but "vortices" is what's currently used
elsewhere.

--------------------------------------------------------------------------------
1a68546ab8 | advil | 2021-06-12 13:59:59 -0400

fix: remove some ancient mac debugging code
This code originates from pre-version-controlled dcss or earlier. I can
only imagine that at some point <2005 things were weird with intentional
crash signals in MacOS to the point where accessing *nullptr seemed like
a good idea, but on a modern mac this has been increasingly unreliable,
and on an M1 / big sur device, it freezes with 100% cpu before timing
out or needing kill -9, at least 2/3 of the time. As far as I can tell,
sending abort works fine and doesn't do this. We'll see if this
generalizes to other devices.

--------------------------------------------------------------------------------
6cbc8dfb29 | Nicholas Feinberg | 2021-06-11 21:26:29 -0700

Send DCSS straight to hell
Welcome to the dev team, hellmonk! :)

--------------------------------------------------------------------------------
3808f8b1c9 | advil | 2021-06-11 15:42:53 -0400

fix: enable autofight for blinkbolt

--------------------------------------------------------------------------------
4e44252f3f | advil | 2021-06-11 14:55:34 -0400

refactor: better organization for animated objects take 2
These are still a bit all over the place, but this at least gives a
slightly more unified API and uses it; small UI cleanups happened as a
consequence, e.g. better labeling in ctrl-x, animated armour gets the
dancing icon (I realize it isn't technically "dancing" but it's still
useful I think). Hopefully haven't missed too much here.

This reverts commit f925c23bd1a27674721db3c623a4d332f2cfaff7.

--------------------------------------------------------------------------------
f925c23bd1 | advil | 2021-06-11 14:17:03 -0400

Revert "refactor: slightly better organization for animated objects"
(fails to build on tiles, oops)

This reverts commit 201ea1cf866eb8e85181b8f30b0fa74a58a99de0.

--------------------------------------------------------------------------------
201ea1cf86 | advil | 2021-06-11 13:55:32 -0400

refactor: slightly better organization for animated objects
These are still a bit all over the place, but this at least gives a
slightly more unified API and uses it; small UI cleanups happened as a
consequence. Hopefully haven't missed too much here.

--------------------------------------------------------------------------------
ec92ba881d | nlavsky | 2021-06-11 01:50:31 +0100

Don't put Refrigeration users under penance for tracer checks (#1978)
After 73eefd5d, Ozocubu's Refrigeration users can get under penance for

opening the z? or Q menus or just for having the spell on the quiver.

It happens if they worship a god who cares about allies and if there

are allies nearby.



Fix this by skipping conducts when doing tracer checks.
--------------------------------------------------------------------------------
7c8ad2e407 | advil | 2021-06-10 17:09:11 -0400

fix: remove accidental debug messaging

--------------------------------------------------------------------------------
5a9c36edca | advil | 2021-06-10 17:05:35 -0400

build: reduce iterations for uniques testing
This is one of the slower tests, and for something testing a basically
unchanging mechanism, doing all of these iterations every time on CI
doesn't seem to accomplish much to me.

--------------------------------------------------------------------------------
10283c2238 | advil | 2021-06-10 15:13:23 -0400

feat: tweak polar vortex glyph colours
It's possible this is overcomplicating things, as it may make it
slightly harder to identify terrain. However, the glyph colours were
inconsistent with the tile colours, and also not very on-theme for how
ice is usually depicted on console. (Of course, if Tornado had never
existed, this might be less of an issue.) I ended up deciding that e.g.
just using glaciate glyph colours didn't really work, it was too ugly,
so this uses a bit more randomness for one of the phases to add some
more subtle console ice colouring in. One phase is always stable, to
prevent complete chaos.

--------------------------------------------------------------------------------
5d3a65c723 | advil | 2021-06-10 14:23:25 -0400

fix: more vortex removal for CI

--------------------------------------------------------------------------------
dcd9d5d9b8 | advil | 2021-06-10 14:12:34 -0400

fix: remove an ENCH_VORTEX reference for CI
Looks like it is safe to just remove this?

--------------------------------------------------------------------------------
90a9cae496 | advil | 2021-06-10 13:54:04 -0400

fix: get rid of "unable to find exits" error in bounce.lua test
Tagging this with no_exits simply skips the placement code that
generates this error.

--------------------------------------------------------------------------------
85dd5f356d | advil | 2021-06-10 13:54:04 -0400

build: shorten mut_species.lua test
This is one of the slowest tests, and it has been a long time since it
actually found anything; I think we can do with fewer iterations.

--------------------------------------------------------------------------------
738ad7bf98 | advil | 2021-06-10 13:54:04 -0400

fix: revert a debugging change
This was for debugging itemspecs, but accidentally got committed in
1d930f0793d61.

--------------------------------------------------------------------------------
e710ad149d | advil | 2021-06-10 13:54:04 -0400

fix: improve crashes for unrecoverable builder lua errors
This isn't intended to be a full solution for lua errors at levelgen time, but
tries to make the crash process smoother, both in terms of messaging,
and efficiency.

The builder for each map tries to run vault lua 25 times, and tries to
build a level 50 times before bailing entirely with a crash. So if a
vault has e.g. a broken itemspec that produces a lua error during
levelgen, this can be repeated at least 25 times, and for wizmode force
generation (&P), 25 * 50 times. The vast majority of errors of this
category (though not all) will be deterministic, so there's no point to
retries. In cases like this, on a debug build the lag for the crash is
also pretty noticeable. So, implement some stuff to immediately bail
(for &P) or veto (for regular levelgen). In addition, percolate the
actual lua error up the messaging chain a bit better, so the it now is
actuall visible directly from the command line. (It's probably a bit
*too* redundantly printed now, though.)

Implementation: this commit adds a state variable to signal that an
error was fatal, and handling for it to improve the messaging and skip
all these retries.  This may be something that would be more naturally
done with exceptions, but it's entirely possible that these exceptions
would need to dance around the lua layer (which can't have exceptions
thrown across it, see 091e5a1), and I don't want to mess with this. For
regular levelgen, this does throw a veto exception, but from a place
where that should be safe to do.

--------------------------------------------------------------------------------
6f2aa7e302 | Nicholas Feinberg | 2021-06-10 10:14:22 -0700

Let Storm Form go mano-e-mano (engine, Reeces)
Oversight!

Also sneakily revert the EV bonus from the last change.

--------------------------------------------------------------------------------
1b1a975c3d | Nicholas Feinberg | 2021-06-10 09:08:21 -0700

Rework Air Elementals
Air elementals' use of Twister (a lesser Tornado/Polar Vortex) was
intended to give them a more interesting gimmick than their old ones
(submerging in air). However, it was quite complex, and tended to
cause quite a lot of collateral damage to their own allies. That could
be fun sometimes, but it could also result in victories that felt unearned.

Instead, let's try a new spell: Stunning Burst, a weak electrical beam
attack that can inflict a very brief (1 turn) paralysis on hit. rElec can
resist it, as can dodging, stasis, or controlling line of fire, but Will has
no effect. Let's see how higher-frequency, lower-impact Para feels.

--------------------------------------------------------------------------------
534494da46 | advil | 2021-06-10 09:30:55 -0400

fix: prevent save corruption on &P crashes
This fixes a couple of ways that a save could become unloadable when it
crashes with &P: (i) the force props didn't get cleared, so the game
would try to regenerate exactly the failing levelgen process all over
again (which might be ok for some crashes, but not e.g. a bad itemspec),
and (ii) placeinfo would get corrupted in a way that doesn't get fixed
up (now it gets corrupted in a way that does).

--------------------------------------------------------------------------------
27faaac778 | gammafunk | 2021-06-10 04:14:35 -0500

Checkwhite

--------------------------------------------------------------------------------
de6c002c37 | gammafunk | 2021-06-10 04:13:51 -0500

Some Shoals vaults from nicolae (12593)
A set of 7 decor vaults and a set of 18 monster vaults. Minor edits have
been made to the original submissions to follow syntax ordering style
and to reglyph monsters to use number glyphs where possible. Remove
patrolling tag for vaults that use in-branch monsters and add it in
other cases where out-of-branch monsters are placed in vaults with
special themes. More substantive edits to a couple vaults described
below:

nicolae_shoals_hidden_pirate_stash: Make the possible rapier weapon loot
be good_item and make the scroll 50/50 for magic mapping or any scroll,
instead of having a weight of 4 for the latter.

nicolae_shoals_pincushion_passage: Thin out the monster a count, turning
a 2/3 chance into a 1/3 chance, since otherwise it's a bit high for
placing so many upper tier monsters. Could go either way on this change,
but a bit fewer monsters felt right.

nicolae_shoals_raging_river: Use elemental wellsprings instead of a
custom vault define, which was a permanently berserk water elemental. A
cute idea, but ultimately not quite interesting enough to warrant a
custom definition, and I think what wellsprings can do is ultimately
more interesting.

--------------------------------------------------------------------------------
a7538b3203 | gammafunk | 2021-06-10 04:13:51 -0500

Some cleanups for Shoals.des
Fix a section header and reindent and reorder a bunch of lines in some
vaults.

--------------------------------------------------------------------------------
c40782c2da | gammafunk | 2021-06-10 04:13:51 -0500

A quote for scrolls of identification (nicolae, 12593)

--------------------------------------------------------------------------------
ced786f65e | Nicholas Feinberg | 2021-06-09 19:24:13 -0700

Don't claim Okawaru cares about your friends (Ge0ff)
Since, as of 08c3841fb2f98d06ca037a69b54f3ed05b193e84, Oka doesn't.

--------------------------------------------------------------------------------
0aef527cbc | Nicholas Feinberg | 2021-06-09 19:20:16 -0700

Storm Form tweaks
Make it nonliving (not having this was an oversight) and double the
EV bonus to improve defenses a bit.

--------------------------------------------------------------------------------
64d35965e2 | Nicholas Feinberg | 2021-06-09 19:20:16 -0700

Remove Absolute Zero
Absolute Zero was a spectacular, memorable effect: instantly turn the
closest enemy into a block of ice! Unfortunately, in play, it ended up
feeling worse than it sounded. The targeting constraints were a bit less
limiting than had been intended, and many otherwise dramatic fights
against powerful foes felt like anticlimaxes. It's still not entirely
clear whether the spell was "too powerful" relative to the investment
required to cast it, but it didn't *feel* good.

There have been many suggestions for improving Absolute Zero - for example,
adding a delay to the effect and making it a L9 Poison (!!) spell. When
we want to experiment with those, we can revert this commit. For now,
though, let's toss it.

(A small part of this change [targeter removal] is in the previous
commit - sorry! Don't miss that if you revert this.)

--------------------------------------------------------------------------------
ff5298d5c3 | Nicholas Feinberg | 2021-06-09 19:20:16 -0700

Move Chain Lightning to level 9
After moving Tornado to Ice as Polar Vortex, Air needed a new level
9 spell. Chain Lightning is a spectacular and fun effect, but the
current version is a bit messy and hard to understand - recursive
arcs result in notoriously mysterious damage numbers ("4-264"). This
seemed like a great opportunity to fix both.

The new, level 9 Chain Lightning is intended to be an extremely powerful,
but situation-dependent, effect. It does massive damage to the nearest
target (partially ignoring both rElec and AC), and then arcs from that
target outward, dealing somewhat reduced damage on subsequent arcs. With
the right setup, it can spread across the entire screen, or it can just
hit a few enemies on one side, depending on how you're positioned. It's
intended to be competitive with Fire Storm (and thus keeps the Conjuration
school), but to play very differently.

Monster Chain Lightning is also changed to match. Nikola now does 3d17 at
max range and 3d45 at point blank (again, partially ignoring AC and rElec),
which should make him a more comprehensible and interesting encounter about
managing distance, rather than just quaffing a resist potion or tricking him
into walking near a plant. We'll see how that works out!

--------------------------------------------------------------------------------
7141f643d0 | Nicholas Feinberg | 2021-06-09 19:20:10 -0700

Shift: Tornado (L9 Air) -> Polar Vortex (L9 Ice)
Ice, as a school, is intended to be 'diffuse' and 'subtle', With a
few exceptions (i.e. Freeze), it tends to be best at dealing damage
gradually to many enemies. That provides it with a distinctive
playstyle, and Tornado fits that playstyle perfectly.

As such, we'll shift Tornado to be the new level 9 Ice spell.
Subsequent commits will discuss the removal of Absolute Zero and the
new level 9 Air spell further.

Functionally, the main change here is that Polar Vortex does 33% more
damage (3 more dice) but is 40% resistable by rC, as with Hailstorm.
Otherwise, it's the same spell.

--------------------------------------------------------------------------------
4220d81b6a | Nicholas Feinberg | 2021-06-09 18:41:10 -0700

Move Freezing Cloud to level 5
Since clouds now dissipate out of LOS and Ozocubu's Refrigeration
now deals heavy damae, it's hard to justify the investment in Freezing
Cloud as a 3-school spell. Move it to level 5 to make it a bit more
viable, and to add symmetry with Bolt of Magma as a L5 Fire/Earth/Cj.

--------------------------------------------------------------------------------
a17f9a2f5c | advil | 2021-06-09 20:43:40 -0400

feat: add basic tele closet detection to placement.lua
This code tries to find spaces that are isolated, contain no stairs or
hatches, and aren't marked with the no_tele_into KPROP. There are some
things where it gets false positives, e.g. spaces completely filled by
monsters, feature mimics, probably more. Reuses existing connectivity
checking code.

--------------------------------------------------------------------------------
1d930f0793 | advil | 2021-06-09 20:42:27 -0400

fix: a batch of tele closet fixes
Many of these are false positives, in the sense that they are tele
closets filled by monsters (skipped by the tele code except for wizard
teleport). But, they quiet the scripts.

--------------------------------------------------------------------------------
57ac2eb73c | advil | 2021-06-09 12:25:28 -0400

feat: options for resuming placement.lua in the middle
This lets you choose where to start by vault name, which is convenient
for running large batches of placement checks. I also added an option to
limit the number of vaults tested.

--------------------------------------------------------------------------------
7e0d850643 | advil | 2021-06-09 12:24:02 -0400

fix: a batch of vault opacity fixes
Detected via the placement.lua script. Not all of these are perfect
fixes, and several of these vaults will still trigger vetos under some
circumstances.

--------------------------------------------------------------------------------
9baf572ecc | advil | 2021-06-09 11:52:01 -0400

fix: some vault opacity fixes from nicolae
This fixes several vaults that could generate isolated regions,
including merging the change in snakefix.des in
https://crawl.develz.org/mantis/view.php?id=12590 .

--------------------------------------------------------------------------------
940ed4fa31 | advil | 2021-06-08 22:18:09 -0400

fix: expand opaque mask skipping for vault exits
Since 080276f, the `@` glyph is never automatically masked as opaque,
leading to some connectivity checks for non-transparent vaults that do
have exits. However, many vaults with only one exit rely on `+`, `=`, or
even ` ` (in the case of floats with no marked exits) being interpreted
as an exit as well. Example: library_closet in
https://crawl.develz.org/mantis/view.php?id=12591. This commit expands
things so that anything that counts as an exit for a vault will not
receive an opaque mask unless that glyph is explicitly masked, which
will expand connectivity checks by quite a bit. This may over-veto,
we'll see, but in my testing seems to work and fixes the issue in 12591
without otherwise disrupting the seed (will need to do some more
automated testing).

--------------------------------------------------------------------------------
cb30e825f4 | advil | 2021-06-08 22:14:22 -0400

fix: avoid vetoing islands in pf_hell_entry_tar_river
Because any `w` tile could turn into `.`, this vault can often generate
islands in the corners, which will veto. This tweak adjusts the corners
to never convert to land; two of the optional spectral shrikes may place
only in the corners.

--------------------------------------------------------------------------------
2a5033c031 | advil | 2021-06-08 21:55:49 -0400

fix: various vault transparency fixes
Mostly for new-ish vaults; I'm a bit surprised if these placed. In most
cases this is just adjusting the masking. For nemelex_altar_shiori the
removal of the transparent tag may be awkward, as it means this will
veto unless *both* doors link up, but masking this one would be a pain.

--------------------------------------------------------------------------------
e70438ac7b | advil | 2021-06-08 17:02:09 -0400

fix: let `sword_in_stone` not choke on dancing singing sword
e7febcc0c011a added singing sword to `sword_in_stone`. However, the
dancing weapon spec parsing couldn't handle providing an unrand here,
and so the 1/50 condition would just produce a lua error (even if the
vault is placing at a depth where the non-dancing one would be used).
This commit implements correct spec parsing for unrands, and so lets
this vault work as intended. If singing sword is already placed, it
places a dancing fallback unrand (which seems to work correctly).

--------------------------------------------------------------------------------
418a8ee560 | Nicholas Feinberg | 2021-06-08 12:36:48 -0700

Make Wereblood heal 1d3 on kill
Wereblood is dangerous to use because it draws in more enemies,
That's a good tradeoff to discourage players from using it all the
time, but to encourage player to use it for some fights, give a
small amount of healing on kills so that the player is more likely
to be at high enough health to face later enemies.

--------------------------------------------------------------------------------
26df433047 | Nicholas Feinberg | 2021-06-08 12:16:40 -0700

Don't put a level 7 spell in a starting book
??oops

--------------------------------------------------------------------------------
59ac6f31e6 | advil | 2021-06-08 15:00:54 -0400

fix: fix fixes

--------------------------------------------------------------------------------
e6c32ae999 | advil | 2021-06-08 14:57:15 -0400

fix: yet more hydraform removal
I'm not sure if a straight replacement with storm form in changes is
what was intended, but hydra form's presence there was causing crashes.
Also removed it from the enum on upgrade.

--------------------------------------------------------------------------------
b079ea8264 | advil | 2021-06-08 14:37:09 -0400

build: more fully remove hydraform
and hopefully fix CI

--------------------------------------------------------------------------------
c590d4a5df | Nicholas Feinberg | 2021-06-08 10:14:49 -0700

Storm Form to level 7
Discourage using it at low spellpower (where it's much less useful)
and communicate that it's meant to be a top-tier tmut, comparable to
Dragon Form. It becomes castable around 60-70 power now, which feels
like a reasonable starting point.

--------------------------------------------------------------------------------
47a774193f | hellmonk | 2021-06-08 09:46:48 -0700

Replace hydra form with storm form
Hydra form was intended to be a heavily power-scaling form that made up for its
bad defenses with cleaving melee and heal on kill. In practice, it was hard to
obtain enough power for hydra form to outdamage to other forms, let alone find
situations in which its benefits made up for poor ac and awful evasion.

Storm form will attempt to fill the same niche as a lategame form that rewards
high spellpower, but hopefully do it a bit better. Storm form melds non-jewelery
slots, provides 2 + power / 2.5 base damage elec branded cleaving melee 
(breakeven
post-brand damage with dragon form at 90ish power), 10 + power / 10 AC, retains
player size and adds a power / 10 ev bonus, provides flight and relec, and has 
an
activatable "blinkbolt" ability that deals elec damage and blinks the player to
the end of its path, but must target a monster and has a cooldown.

The new spell is level 6 transmutation/air, which makes spellpower more 
expensive
in terms of exp but does allow easier enhancement. It is probably still very
niche, but should be better in its niche. Numbers are open to adjustment.
Additionally, it needs cool tiles for the form and ability.

--------------------------------------------------------------------------------
85643e0b18 | hellmonk | 2021-06-08 09:46:48 -0700

Increase ice form's ac power scaling.
Ice form became comparatively unattractive due to blade hands buffs in 0.20 and
was somewhat niche. Combined with the blade hands nerf, buffing ice form ac
somewhat should make it more appealing. AC is unchanged at 0 power and 5 higher
at maximum (100) power.

--------------------------------------------------------------------------------
ec9bb07eb8 | advil | 2021-06-08 10:07:59 -0400

build: update ci irc information

--------------------------------------------------------------------------------
c6a4cbde82 | Nicholas Feinberg | 2021-06-07 20:57:37 -0700

Remove wandering mushroom/toadstool magic
Wandering mushrooms were able to path through toadstools so that it
wouldn't be annoying when you created a wandering mushroom, prayed on
a corpse to get a toadstool, and then got stuck. That logic really
isn't need anymore.

Reverts b5de9b17133aa . (Sorry, Sage.)

--------------------------------------------------------------------------------
6c7882eca4 | Nicholas Feinberg | 2021-06-07 20:38:23 -0700

Allow silencing rolling charge (engine)
Alternative solution would have made 'the rumble of your scales through
the stone' (or whatever) alert victims. If this is the next high-level
stabbing tech then maybe I'll do something about it, who knows.

--------------------------------------------------------------------------------
fc7c993222 | Kate | 2021-06-07 17:02:01 +0100

Adjust elemental wellsprings
Their self-damage on cast caused them to abjure their own summons, as well
as being poorly documented as a special-case on top of a spell that doesn't
normally create summons. Instead give them Summon Water Elementals as a
normal spell and remove their self-damage on cast as well as their fast
regen. Also give them a radius 1 water aura like water nymphs, rather than
just affecting the tile underneath them.

--------------------------------------------------------------------------------
819d820658 | Kate | 2021-06-07 16:11:45 +0100

Shorten Gozag's distraction message
It was a lot wordier than necessary for something that's often displayed
multiple times a turn. The "dreaming of imaginary riches" part was intended
to clarify that it doesn't require actual gold to be present on the floor
or in inventory, but the new "golden aura" wording now covers that anyway.

--------------------------------------------------------------------------------
fd60fd639a | Aliscans | 2021-06-06 18:33:09 -0700

Fix an error message when creating a malformed dancing/spectral weapon.
Previously, if you using the wizard mode create monster command with
"dancing weapon; stone" on a build with asserts compiled in, the game
crashed with "ASSERT(wpn) in 'dungeon.cc' at line 5159 failed.". The
same happens for any non-weapon, or even "nothing", and the same if a
vault was created which included such a monster.

With this change, it prints "Monster 'dancing weapon' requires a
weapon." instead in wizard mode, and the game cannot start if any vault
contains a monster like that.

--------------------------------------------------------------------------------
90fd9eff7f | l33t-d00d | 2021-06-06 18:31:04 -0700

Modify Grammar Sceptre of Torment
Minor grammatical modification to the message when wielding the Sceptre of 
Torment.  "Terribly searing pain" (adverb modifying adjective describing noun) 
becomes "Terrible, searing pain" (compound adjective describing noun).  Both 
are correct, however, the latter flows and sounds better.
--------------------------------------------------------------------------------
a8cc5da48b | Nikolai Lavsky | 2021-06-06 18:29:52 -0700

Tweak Ozocubu's Refrigeration usefulness check
Currently, the UI incorrectly tells the player that the spell has
valid targets when there are only plants, butterflies, or player
allies nearby.

This commit changes Refrigeration's usefulness check, so the spell
is grayed out on the quiver if there are no hostile monsters in LOS.

[Committer's note: I rewrote this to be a bit simpler.]

Closes #1968.

--------------------------------------------------------------------------------
8976fa19b5 | dilly | 2021-06-06 18:16:24 -0700

WJC Sifu names change
Deng Ai, Jiang Wei, Zhang Bao, Sun Luban(especially this one) are not 
appropriate for the masters of martial arts council.

--------------------------------------------------------------------------------
5437b2cd39 | hellmonk | 2021-06-06 18:15:50 -0700

Change the gozag gold distraction message.
The previous messages implied that nearby gold piles or the player's carried
gold caused the effect, which was confusing.

--------------------------------------------------------------------------------
e8f9bb252e | Nicholas Feinberg | 2021-06-06 18:13:04 -0700

Don't let animated armour open doors
They have no hands!

--------------------------------------------------------------------------------
8da17f8a6b | Nicholas Feinberg | 2021-06-06 18:12:31 -0700

Remove unrand animated armour crash
Don't crash when saving if an animated armour drawn from an unrand
is walking around.

--------------------------------------------------------------------------------
ef78505d0f | Nicholas Feinberg | 2021-06-06 17:45:59 -0700

Fix Vampiric Drain messaging (Yermak, 12597)
And do a bit of refactoring while I'm in the area.

--------------------------------------------------------------------------------
54dba09ff7 | Nicholas Feinberg | 2021-06-06 10:23:26 -0700

Remove Invis range listing (Undo)
Misleading since 6385558a29ec6c .

--------------------------------------------------------------------------------
958d993ae5 | gammafunk | 2021-06-05 22:33:28 -0500

Update the history section of the manual
I've rewritten the history section to hopefully better capture the
origins of Linley's Dungeon Crawl and its progression to DCSS. Mention
Moria instead of Angband, as the former is what Linley actually gave as
his inspiration:

"Crawl started out in about 1995 when, having played PCHack and Moria, I
managed to get hold of NetHack 3.1.3. Although I liked the randomness
and the humour of it, there were some things I really wanted to fix -
the targetting system, for example - and I thought parts of it, like
spellcasting, could be made much more interesting (NetHack still has
very few spells which weren't wand/potion/scroll effects in Rogue). So I
dusted off my old Turbo C++ box and set about teaching myself C, with
only a rudimentary knowledge of Commodore 64 BASIC to get me started (I
wasn't connected to the internet in those days)."

(From 
https://web.archive.org/web/20060424060820/http://tvilsom.org/roguelike/50.html)

Mention Hack instead of PCHack as the latter is a direct port of Hack,
and curious readers will have an easier time finding info on the
original game; I certainly did!

The mention of traditional RPGs, specifically Ultima IV, is hopefully
interesting to people who didn't realize that PC RPGs were also an
direct inspiration, particularly the limited LOS/play area of a large
map seen in games like Ultima IV. Moria does already have a similar
play area compared to Crawl, but Linley highlighted the influence of PC
RPGs aesthetics like of Ultima in a couple of interviews. Sadly I'm only
able to find one online reference where he directly mentions them:

httpe://quote-un-quote.tumblr.com/post/2178789666/interview-with-shmup-legend-li
nley-henzell

Hopefully this addition to the narrative won't be seen as unreliable
original research! Internet archaeologists reading this who find
additional sources, please send them my way. I've also moved the bit
about Wizard's Castle and the Orb of Zot into this first paragraph.

For describing the transition from Linley as lead developer to Brent
Ross, to the founding of DCSS, I've cleaned up the timeline and
mentioned the two project founders, Darshan Shaligram (aka greensnark)
and Erik Piper, by name. I feel it's important to highlight their very
important efforts in getting DCSS started and include some basic details
about that from greensnark's excellent writeup, which I've also linked.

Hopefully this new history section gives a clearer picture of how the
project progressed. It's possible that we could describe the subsequent
"eras" of DCSS development in this section, but that's arguably even
more difficult to sort out. We could highlight the addition of major
features like Tiles and WebTiles, perhaps some content milestones and
notable fundamental changes. I'll leave that for a future writer, after
further discussion.

--------------------------------------------------------------------------------
3745823196 | gammafunk | 2021-06-05 22:33:28 -0500

Update IRC and community information
Now that we've completed the move to Libera IRC from Freenode, update
all references to that network and the appropriate channels. I took the
liberty of updating two very minor source comments in cc/DES files to
refer to conversations as being on "IRC" instead of "##crawl", so anyone
reading them without pior knowledge of the old channel won't be
confused.

I've also updated the Overview and section of the manual to refer
primarily to the community resource listing on http://crawl.develz.org
instead of just listing IRC. I've added a "Contact and community
information" heading to the "License, contact, history" section and put
the existing community info under this heading. I've also added the DCSS
subreddit to the list of community resources and adjusted the language
to be applicable to both it and Discord. I've updated the IRC info to
mention #crawl-dev for development. History is moved to its its own
heading and will be updated in a subsequent commit.

For Hints and FAQs, again refer to the website for community resources
instead of just listing IRC, and update IRC listing for hints in other
languages. Ideally these hints would instead refer to the website, but
that would need work by translators. I've also referenced the github
issue tracker over mantis in a couple places where only mantis was
mentioned and referring to both would be awkward. Possibly we need to
consistently mention only the github tracker and only put information
about mantis in somewhere like the contributor's guide.

--------------------------------------------------------------------------------
8a41f320e8 | Nicholas Feinberg | 2021-06-04 20:09:06 -0700

Nerf peacekeeper bands in Vaults
Drop them from 2-3 pals to 1-2. Peacekeepers are supposed to be top-tier
Vaults threats, but not mega-top-tier.

--------------------------------------------------------------------------------
e08c5e17fd | Nicholas Feinberg | 2021-06-04 18:12:16 -0700

Make the Amulet of the Air enhance air (hellmonk)
Why not?

Remove the +5 EV to avoid clutter. (Isn't rMsl enough?)

--------------------------------------------------------------------------------
08c3841fb2 | Nicholas Feinberg | 2021-06-04 18:04:39 -0700

Remove Okawaru's friend conduct
It had little actual impact on gameplay and little flavour - mostly it
was an occasional surprising annoyance. I think there's room here for
a much more interesting, stronger anti-ally conduct, but I don't know
when we'll get to it, and there's no good reason to leave this around
in the meanwhile.

--------------------------------------------------------------------------------
373bd8bca1 | Nicholas Feinberg | 2021-06-04 18:00:23 -0700

Fix more Lear/merfolk/form bugs
Don't unmeld boots when in a form that melds boots if you exit the
water as a merfolk, or if you exit the form while in the water.
Lear's is a kind of large boot.

--------------------------------------------------------------------------------
d0ff78f834 | Nicholas Feinberg | 2021-06-04 17:36:56 -0700

Don't allow wearing items over Lear's
Previously, if Lear's Hauberk was melded, you could wear aux armour
that Lear's normally blocks. Don't allow that.

--------------------------------------------------------------------------------
5b7f72125b | Nicholas Feinberg | 2021-06-04 17:28:20 -0700

Warn for a rare Ash/holy/necromut issue
If casting Necromutation would cause you to shatter a cursed holy wrath
weapon, prompt first.

This is probably buggy in some other way.

--------------------------------------------------------------------------------
8faf1edda1 | Nicholas Feinberg | 2021-06-04 17:14:23 -0700

Add message for manual for maxed skill (Yermak)

--------------------------------------------------------------------------------
c6d2f85da4 | Nicholas Feinberg | 2021-06-04 17:04:34 -0700

Rewrite cause fear code (vt)
Don't let the Cause Fear targeter claim to affect undead. This was a
weird rabbithole and I'm not very happy with the resulting code!

--------------------------------------------------------------------------------
d1902e2d21 | Nicholas Feinberg | 2021-06-04 16:32:16 -0700

Fix missing dancing weapon / gozag death message (split)
There was no message at all for dancing weapons being destroyed if
you followed Gozag.

--------------------------------------------------------------------------------
6385558a29 | Nicholas Feinberg | 2021-06-04 16:21:15 -0700

Simplifiy Invisibility (Yermak)
Make it self-targeted only, to reduce the number of keystrokes while
casting. It was possible to use Invisibility on other targets, e.g.
on allies as a buff or on enemies to trick enemies into shooting them,
but in practice this happened fairly rarely. In future, we might add
some other effect (perhaps an evocable or unrand) that encourages those
fun interactions.

--------------------------------------------------------------------------------
72385e2e4b | Nicholas Feinberg | 2021-06-04 16:10:11 -0700

Fix pet AI / non-beam spells (ardl, dang3rdave)
Airstrike, LRD and Freeze will now all set pet target correctly.

Possibly Irradiate and Chain Lightning should too? I'm unsure.

--------------------------------------------------------------------------------
6342a01c75 | gammafunk | 2021-06-04 09:30:45 -0500

Update some guarded unrand vaults
The guarded unrand vaults are a set of minivaults that place specific
unrandarts. This commit updates many vaults in this set to use a common
weight, to extend placement ranges to cover later Dungeon, where
applicable, and to fix other issues, especially for the recently merged
ones. The common weight of 3 will ensure that these vaults don't place
too frequently, and there's generally no need to have certain vaults
with higher or lower weight. Remove unnecessary transparent tags where a
vault doesn't have multiple exits and a few other tags like no_item_gen
where that's not necessary.

Update the section comments to mention the common weight and that the
motivation for this is balance; we generally don't weight vaults by
subjective interest, as the old comment implied. Keep the suggestion for
out-of-depth monsters that are escapable, but mention that runed doors
or transporters are an option if nastier out-of-depth monsters are used.
Don't mention not using overpowered/useless unrands since we're always
reworking unrands to make sure none are useless, and even the more
overpowered ones deserve a fun vault!

For specific content changes, some details are described below:

minmay_guarded_unrand_tortoise: Allow this vault to actually place in
Vaults as intended by making it a hard room, applying the necessary
substitution to make its walls general.

minmay_guarded_unrand_staff_of_olgreb: Extend placement from D:5-10 to
D:5- and have three sets monsters, scaling up the three
spider/insect/snake monster definitions with placement depth.

minmay_guarded_unrand_finisher: Extend placement from  D:7-13 to D:7-,
using two sets of monsters in two tiers. Have wraiths and a skeletal
warrior before D:13 and skeletal warriors and a reaper afterwards.

minmay_guarded_unrand_resistance: Extend placement from D:9-D:14 to D:9
without modifications, since the monsters it places are fine for D:15.

chequers_guarded_unrand_ignorance: For Dungeon, extend placement from
D:7-12 to D:7- (leaving Orc unchanged). This vault is certainly
dangerous enough for late Dungeon without any changes.

chequers_guarded_unrand_mask_of_the_dragon: Remove the no_tele_into
markers. This is a Zot vault, so players can handle being teleported
inside.

hellmonk_guarded_unrand_starlight: Add placement for D:13- in addition
to the existing Depths placement by using cherubs instead of angels and
daevas.

hellmonk_guarded_unrand_salamander: Add scaling for Dungeon that uses
mystics and no tyrants before D:13 and adds tyrants after.

hellmonk_guarded_unrand_cigotuvi: Extend placement from D:9-D:14 to
D:9-. Make the skeletons/zombies pull monster types from later depths,
and for D:13- use soul eaters instead of hellwings.

hellmonk_guarded_unrand_staff_of_battle: Extend placement from D:8-13,
to D:8-, adding a Tengu Reaver for D:13 onwards.

hellmonk_guarded_unrand_dark_maul: For Dungeon, extend placement from
D:8-12 to D:8-. Revamp the monster set to use less trivial monsters
holding the maul and a better set for the accompanying threats. Scale
monster count with depth of placement.

hellmonk_guarded_unrand_gong: Extend placement to Vaults by adding logic
to place the vault as a vault room. Add 9 spawns after D:13.

hellmonk_guarded_unrand_night: Extend placement from D:7-12 to D:7- by
introducing satyrs along with the dream sheep after from D:13 onwards.

hellmonk_guarded_unrand_gyre_and_gimble: Extend Dungeon placement from
D:6-D:10 to D:7- by making the 2-handed monster be an ettin and the
spriggan be a spriggan berserker with a rapier.

hellmonk_guarded_unrand_vines: Extend placement from D:7-11 and Lair:1-3
to D:7- and all of Lair. Have both a regenerating monsters as well as
plant monsters, using Trolls and a single Hydra before D:13, introducing
oklob plants in Lair and replacing trolls with hydra, scaled with depth
of placement, before replacing oklobs with a single Swamp plant monster,
either a shambling mangrove or a thorn hunter.

hellmonk_guarded_unrand_frostbite: Extend placement from D:7-12 to D:7-,
adding nastier ice demons for D:13 onwards.

hellmonk_guarded_unrand_zhor: Extend placement from D:7-12 and Lair:1-3
to D:7- and all of Lair. Scale monster counts better with depth, adding
an ice dragon for D:13 onward. Use a single runed door instead of clear
doors, since the latter are still pretty confusing to players,
especially in terms of auto explore.

hellmonk_guarded_unrand_vitality_bloodlust: Extend placement from D:7-11
to D:7-, randomizing monster counts more and adding a deep troll shaman
and higher deep troll count for D:13 onwards.

Closes #1937.

--------------------------------------------------------------------------------
8ece3b8c5a | gammafunk | 2021-06-04 09:30:45 -0500

Some tweaks to a few large themed vaults
Several god-themed vaults in large_themed.des had never been properly
updates for the creation of Depths, having absdepth conditions that
never applied or just didn't make sense. Other aspects of these vaults
needed updating, including more appropriate monster selection and some
generalization to let them place in late Dungeon, where they're also a
good fit. Some content changes for four vaults are described below. All
but evilmike_library_of_no_secrets now additionally place on D:13- as
well as Depths:

evilmike_library_of_no_secrets: Placement is unchanged at D:11- and
Depths, but adjust monster lists in both branches. Use both summoning
direct damage spellcasting monsters, but using only normal and
out-of-depth branch monsters. Add and place an additional monster glyph
for the top-end threats rather than using a set of weights with only two
glyphs.

evilmike_makhleb_hellhole: For Dungeon, use common demons, kobold
demonologists, and a milder selection of tier 2 "greater servant"
demons. Thin out monster placement relative to Depths. For Depths,
remove the now-trivial common demons and kobold demonologist, fully
replacing these with hell knights and deep elf demonologists,
respectively. Use a brimstone fiend as the "boss" guarding the altar
instead of another hell knight. Update the "prisoner" area to not not
reveal itself head of time and to contain actual loot with a more
appropriate set of guards. The prisoner loot as a demon weapon and some
nice potions. Make the prisoner area have a grate instead of a runed
door, so as not to clutter ctrl-o. Compassionate players may elect to
free them with a dig charge if they wish!

evilmike_halls_of_destruction: For Dungeon, use appropriate spellcasters
for the two tiers, with the second including deep elf zephyrmancers as
the top end. Make the unique spellcaster boss alternate between Nikola
and Jorgrun, with a deep elf annihilator backup should the chosen unique
be already generated. For Depths, likewise updates the spellcasters,
going up to liches for the second tier, and alternating between
Frederick and Boris with an ancient lich as backup. Replace the harmless
fire vortexes with salamander tyrants. Scale monster placement by
branch, placing fewer iood statues and tyrants in Dungeon compared to
Depths.

evilmike_negative_zone: Update the monster list to be a more appropriate
set of necromancy-themed monsters. Don't use ancient/dread liches, as
those have no actual necromancy spells. Place different loot types in a
nice arrangement instead of using a heavily random SUBST.

This commit also cleans various aspects of syntax for the above vaults
and a couple other vaults in larged_themed.des.

--------------------------------------------------------------------------------
4ce4c228df | gammafunk | 2021-06-04 08:44:03 -0500

Clean up lua depth checks
Use you.in_branch() instead of a comparison to the you.depth() string in
order to check branch location, since the latter is error-prone. This
batch of changes only caught one such error, but the string comparison
is case-sensitive, and you.in_branch() correctly generates an error if
the argument given is an invalid branch name.

Also prefer use of you.depth() to you.absdepth() when only one branch is
involved, as this is clearer. It would probably be best to just always
use a combination of you.in_branch() and you.depth(), since its more
clear and doesn't require DES readers to look up branch absdepth values.
However this requires rewriting a lot of conditionals, and I've mostly
only modified one related to the first part of this patch.

--------------------------------------------------------------------------------
6ab302a81b | hellmonk | 2021-06-03 06:02:40 -0500

New guarded unrand vaults.
Guarded unrand vaults for amulets of vitality and bloodlust, cloak of
starlight, seven league boots, salamander hide, robe of vines, robe of
night, cigotuvi's embrace, skin of zhor, lear's hauberk, shield of the
gong, damnation, staff of battle, dark maul, gyre and gimble, frostbite,
and rift.

Comitter's Note: Merged several commits into one and updated commit
comment with a full list of unrands covered.

--------------------------------------------------------------------------------
bc2d63fdf1 | hellmonk | 2021-06-02 23:10:12 -0400

New spider minivault
Now you, too, can collect a star_item in 0.5 a presses

--------------------------------------------------------------------------------
74d5156d8b | hellmonk | 2021-06-01 13:07:00 -0400

New Zot:5 shop vault
Idea in conjunction with nicolae; a shop that sells great gear for 1 gold,
appearing only on Zot:5.

--------------------------------------------------------------------------------
e72e49191c | Nicholas Feinberg | 2021-06-01 07:55:36 -0700

Fix mindburst/2h ogre lore
(Also ettins and maybe a few others.)

--------------------------------------------------------------------------------
cae1a64fa4 | Nicholas Feinberg | 2021-06-01 07:50:33 -0700

Improve Mindburst lore (dinky)
You are huge! That means you have multiple heads! Burst those minds!

--------------------------------------------------------------------------------
94dc6ad4cf | gammafunk | 2021-05-29 06:01:34 -0500

Some cleanups for a Snake rune vault
Minor DES cleanups and checkwhite. Closes #1963.

--------------------------------------------------------------------------------
6ea3bcaf3c | hellmonk | 2021-05-29 06:01:34 -0500

New snake end: quicksilver temple
This snake end takes its monster theme from snake ziggurat floors, which
eventually place quicksilver dragons. Two of them serve as the boss. Since
those are rather dangerous compared to normal snake spawns, I tried to keep
the total number of monsters relatively low compared to other endings.

--------------------------------------------------------------------------------
427f276c44 | gammafunk | 2021-05-29 06:01:28 -0500

A batch of Snake vaults from nicolae (12590)
A set of decor vaults and a set of monster-placing vaults. Most changes
are minor, with a few substantive changes to the monster-placing vaults
described below:

nicolae_snake_attic_fulla_snakes: Thin out snakes in the attic a bit. It
still has a lot of snakes, just not quite so many.

nicolae_snake_dead_anacondas: Combine the inner derived undead anacondas
into one definition and favor the more interesting/stronger types of
skeletons and zombies. Use a simpler distribution for monster placement.

nicolae_snake_magic_snake_eye: Don't place loot in piles on the same
square, using three loot glyphs for any that need to place multiple
item.

nicolae_snake_naga_rites: Thin out monster placement somewhat. One can
take only so many ritualists.

nicolae_snake_snakewalk: Used fixed loot classes. There are only 4 loot
items here, so we can just put 4 higher quality items. Thin out the
monster placement slightly. I elected to not thin out monsters in a
similar vault using out-of-depth monsters in this batch,
nicolae_snake_storage_room, since it places far richer loot.

--------------------------------------------------------------------------------
423d0e134b | gammafunk | 2021-05-29 00:49:39 -0500

Some DES file cleanups
Move a multi-branch snake-themed vault to mini_monsters.des, move
another vault in this file to the appropriate file section, and update
the file header comments.

--------------------------------------------------------------------------------
3e9cee4cb2 | gammafunk | 2021-05-26 16:08:34 -0500

Reduce monster count in a vault (Ge0ff)
The vault nzn_swamp_stair_ambush places 8 guaranteed monsters near
stairs in a small area. While this is within acceptable bounds, it's on
the hard side of things, and additionally there's no monster count
randomization, which we like to have for monster-placing vaults. Remove
three monsters on-average by adding appropriate chances for shallow
water or floor instead of a monster in some places.

--------------------------------------------------------------------------------
cd1846a45e | advil | 2021-05-26 16:11:58 -0400

fix: use correct quiver for lua items.fired_item()
This was getting the item behind the primary action, which is either the
wielded weapon or ammo used by the wielded weapon, but not in general
what the quivered item is. The doc string was also only correct for an
intermediate implementation of quivering.

--------------------------------------------------------------------------------
35abcb988c | gammafunk | 2021-05-26 02:05:59 -0500

Make a loot vault diggable (Mels)
The vault minivault_21 is an old vault that places loot behind fully
undiggable walls, but with escape hatches should the player land inside.
The loot is inaccessible for a large majority of players, since they'd
have no way to break stone walls. This commit makes the vault rock so
that most players can eventually access the interior eventually (e.g.
with digging). Also remove the allow_dup tag, since it places a good
deal of high quality loot. There's not need to give such nice things
more than once per game!

--------------------------------------------------------------------------------
8631133539 | advil | 2021-05-24 10:39:48 -0400

fix: don't overwrite (jobbed) draconian breath spells
A draconian with a job usually has a spellbook, and this code would
overwrite their breath weapon with that spellbook. This appears to be
unintentional, and is pretty old. The bug was not apparent because the
describe code doesn't actually use the monster spell list to show the
breath weapon; see mon-util.cc `get_unique_spells` and
describe-spells.cc `_monster_spellbooks`. (In general, this code is not
what I expected and is probably ripe for bugs like this...)

--------------------------------------------------------------------------------
20e75d603b | Nicholas Feinberg | 2021-05-24 07:32:41 -0700

Fix quicksilver ooze AF desc (dinky)

--------------------------------------------------------------------------------
601b473118 | Nicholas Feinberg | 2021-05-22 20:03:37 -0700

Merfolk Long Blades title: Swordfish (hellmonk)

--------------------------------------------------------------------------------
813e06a757 | advil | 2021-05-22 18:11:55 -0400

fix: remove a likely unapropos weapon name
Because "banish" has a specific meaning in crawl, "Banisher" as a weapon
name is very likely to be inconsistent with the weapon flavor. (I
spotted this while looking at learndb unapropos names, specifically,
`+1 trident "Banisher" {holy, +Blink rPois MP+9}`.)

--------------------------------------------------------------------------------
b8eb6cee8e | Kate | 2021-05-22 01:12:21 +0100

Simplify flaying
Make it closer to torment-lite, dealing a fixed 25% of current HP instead
of its previous fairly complicated damage calculation.

--------------------------------------------------------------------------------
73eefd5def | gammafunk | 2021-05-19 22:19:46 -0500

More cleanups for Ozocubu's Refrigeration
The check for whether a target was vulnerable used some outdated logic,
and the UI for players casting this spell didn't even perform the check
in the first place. Hence players casting the spell with only rC+++
monsters in LOS would not get the usually prompt about a useless cast,
even though all visible targets are immune. This commit fixes this
logic, adds a tracer check, and refactors the LOS attack spell code
slightly.

--------------------------------------------------------------------------------
e80a49f48c | gammafunk | 2021-05-19 14:26:12 -0500

Fix spell -Potion application (AliasTheSpectator)
If the player had rC+++ and cast Ozocubu's Refrigeration, their immunity
to its damage accidentally prevented application of -Potion. The player
spell doesn't damage the player even without the immunity granted by
rC+++, but this bug emerged as a holdover from when the spell did
self-damage. This commit applies the debuff unconditionally.

--------------------------------------------------------------------------------
8b4daa1eef | Nicholas Feinberg | 2021-05-18 17:18:53 -0700

Dart slug: nerf damage, buff cast rate (hellmonk)
To have mercy on poor felids, decrease damage to 2d3 (from 2d4) and
increase cast rate to 30% (from 20%). Given the existence of AC,
this should more or less balance out.

--------------------------------------------------------------------------------
a233589e6f | advil | 2021-05-18 13:03:34 -0400

refactor: clean up some vaults monspec code, document
No behavior changes, but fix up a 9 year old stylistic choice I'm not a
fan of and make the documentation/comments a bit clearer for people
looking at this for the first time.

--------------------------------------------------------------------------------
e86db4a01e | Nicholas Feinberg | 2021-05-17 20:15:30 -0700

Weaken early D vault OODs
Cap 8s and 9s to only spawning monsters up to (depth * 2) until D:9.
This roughly corresponds to the range for which chaff was removed
in dd57cda9ea3d35 .

--------------------------------------------------------------------------------
18a14b5c60 | Nicholas Feinberg | 2021-05-17 20:15:29 -0700

Weaken early D OODs
Removal of chaff from the D spawn pool made OODs much nastier than
they were in the past. Let's have no more D:2 water mocassins or
steam dragons.

--------------------------------------------------------------------------------
ee19b5822f | Nicholas Feinberg | 2021-05-17 09:08:07 -0700

Revert Sacrifice Hand piety change
Back to 65 piety, from 60. Sacrificing your hand is an iconic and very
cool Ru experience - it's fine for it to be a little stronger than
other sacs, since it's fun!

--------------------------------------------------------------------------------
5f64966fcc | Kate | 2021-05-17 00:31:58 +0100

Fix Yred/Beogh recall cancelling Ozocubu's Armour
Recalling offlevel allies moved the player to 0,0 in order to silence
messages about expiring enchantments on them. However, this movement also
resulted in Ozocubu's Armour and Frozen Ramparts being cancelled. Use
msg::suppress to silence any such messages instead. Cheibriados Time Step
and Temporal Distortion do still move the player to 0,0 so have the same
problem (and would need a different approach to fix it).

--------------------------------------------------------------------------------
7fc4abc71e | Kate | 2021-05-16 20:07:03 +0100

Give Chuck some more exciting rocks
Since the returning brand doesn't do anything special for him with
monsters getting infinite ammo.

--------------------------------------------------------------------------------
d55d32fc2f | Kate | 2021-05-16 20:04:26 +0100

Adjust some monster ammo quantities
Since monsters now have infinite ammo, remove some cases where they were
given additional ammo to make them less likely to run out. Also reduce some
quantities of rarer ammo (such as curare and branded javelins) to reduce
the amounts handed out to the player.

--------------------------------------------------------------------------------
41d2c3503b | Kate | 2021-05-16 18:48:41 +0100

Remove unused cloud immunity mutations
But leave their functionality intact for transferred games, rather than add
more save compatibility hacks for old demonspawn.

--------------------------------------------------------------------------------
245c70e1c0 | Aliscans | 2021-05-15 11:35:43 -0700

Let a Kikubaaqudgha-worshipping wizard create endless gifts.
The wizard mode "get a god gift" command now creates one first level spellbook 
(if you have had no gifts from Kikubaaqudgha yet), followed by any number of 
second level ones.

--------------------------------------------------------------------------------
81437c0335 | Aliscans | 2021-05-15 11:35:43 -0700

Simplify _give_kiku_gift().
Rather than have the game use variables such as "gift" and "success" to track 
whether to return true, return false as soon as something fails.

Make the items() call always create a book of Necromancy. This should have no 
effect as make_book_kiku_gift() overwrites it.

Return immediately if items() fails, rather than calling make_book_kiku_gift() 
on env.item[NON_ITEM] first.

--------------------------------------------------------------------------------
b0971d1698 | Aliscans | 2021-05-15 11:35:43 -0700

Simplify _give_sif_gift().
Rather than have the game use the "success" variable to track whether to return 
true, return false as soon as something fails.

--------------------------------------------------------------------------------
bc5ded6cda | Aliscans | 2021-05-15 11:35:43 -0700

Split _gift_sif_kiku_gift() into a function for each god.
There wasn't much common code, and this makes the flow easier to follow.

--------------------------------------------------------------------------------
7b0c17a4f7 | Aliscans | 2021-05-15 11:27:28 -0700

Fix what happens when you try to read a spellbook.
Make the game give a "You aren't carrying any scrolls." message if you try to 
read() when you have no scrolls in your inventory or on the floor, but there is 
a spellbook on the floor.

The game had given an inventory prompt with no items on it instead.

--------------------------------------------------------------------------------
7c134c3035 | Nikolai Lavsky | 2021-05-15 10:09:15 -0700

Highlight Curl's AC boost on webtiles HUD (12567)
Highlight boosted AC when palentongas curl up.

--------------------------------------------------------------------------------
5e56b55837 | Nicholas Feinberg | 2021-05-15 10:04:01 -0700

Fixup sac validity logic
We already check whether a mutation is at max level; no need to
double-check it. (This logic also turned off a bunch of other validity
checks for skill/xp, probably unintentionally.)

Closes #1916.

--------------------------------------------------------------------------------
3ec4c25e8c | Nicholas Feinberg | 2021-05-15 10:03:28 -0700

Checkwhite

--------------------------------------------------------------------------------
145365d198 | hellmonk | 2021-05-15 10:03:28 -0700

slightly increase ru sacrifice timer

--------------------------------------------------------------------------------
41ace87d0d | hellmonk | 2021-05-15 10:03:28 -0700

Account for spellcasting skill when sacrificing wizardry.
Instead of just looking at int, account for any spellcasting training when
calculating piety, since that's a good indicator the player is casting things.

--------------------------------------------------------------------------------
eccaff0f4d | hellmonk | 2021-05-15 10:03:28 -0700

Allow multiple levels of sacrifice experience.
Much like sacrifice skill, the mutation already allowed this but additional
validity checks forbid it. Sac experience may now be taken up to three times
for a total of -6 xl and the piety gain has been decreased somewhat. It would
be ideal to make sacrifice experience directly reduce the player's level rather
than stepping through xp (so that it's a relevant sacrifice at all stages of
the game rather than only relevant briefly upon taking and very lategame) but
that seems rather complicated to implement.

--------------------------------------------------------------------------------
4e7b9e3c90 | hellmonk | 2021-05-15 10:03:28 -0700

Adjust sacrifice skill.
Allow the player to take it up to three times. The mutation already supported
this, but a check in _sacrifice_is_possible prevented ru from offering it again
once it was taken. I am not sure if this was intentional or not. This commit
also adjusts the piety downward somewhat for the first sacrifice, but more
piety is given if the player elects to take it multiple times.

--------------------------------------------------------------------------------
7f30ced503 | hellmonk | 2021-05-15 10:03:28 -0700

Adjust some sacrifice piety values.
Nerf sacrifice resistance somewhat and sac hand slightly. Buff sacrificing
willpower and love; those are more serious drawbacks than the old values
indicated, especially when comparing sac willpower to sac resistance.

--------------------------------------------------------------------------------
e960553459 | hellmonk | 2021-05-15 10:03:28 -0700

Add a piety bonus for sacrificing words and drink together.
Taking this combination shuts down a lot of options, so award a little piety
bonus. Mummies will also get a bonus for sac words now for the same reason.

--------------------------------------------------------------------------------
834f9addc8 | hellmonk | 2021-05-15 10:03:28 -0700

Don't give piety for evo skill when sacrificing mp.

--------------------------------------------------------------------------------
c5a3f79286 | Nicholas Feinberg | 2021-05-15 09:20:46 -0700

Devilishly good new tiles (Sastreii)
Makhleb altar and the Hellbinder.

--------------------------------------------------------------------------------
56a4fb2168 | Nicholas Feinberg | 2021-05-15 09:03:51 -0700

Deduplicate excommunication XP

--------------------------------------------------------------------------------
c127bba4f6 | Nicholas Feinberg | 2021-05-15 09:00:55 -0700

Make Sac XP pricier
Rather than just costing the player two XLs of XP, actually increase
the cost for all future XLs as if the player was still at their original
XL. This should make it a much more consistently meaningful sacrifice,
rather than one which becomes mostly irrelevant for most of the game
(due to how XP cost scaling works).

No adjustment to piety right now, though I can imagine it going up slightly.
(It was fairly over-valued before.)

--------------------------------------------------------------------------------
fb435604d7 | Nicholas Feinberg | 2021-05-15 08:09:38 -0700

Fix GDR comment typo (nlavsky, goratrix)

--------------------------------------------------------------------------------
aa87e14f67 | Nicholas Feinberg | 2021-05-14 11:19:34 -0700

DRR AC GDR (hellmonk)
Remove weird breakpoints for GDR effectiveness at even-numbered AC
values. This does not matter.

--------------------------------------------------------------------------------
40ce562a0f | Nicholas Feinberg | 2021-05-14 08:44:32 -0700

New wizlab tiles (Sastreii)
Zonguldrok (antique lich + shrine), Moon Base (walls), and also a tweak
to the new Murray tile. That's not a wizlab thing but no one told Murray.

--------------------------------------------------------------------------------
c4ce80cea6 | Nicholas Feinberg | 2021-05-14 08:32:15 -0700

WIP

--------------------------------------------------------------------------------
ff078d554e | Nicholas Feinberg | 2021-05-14 08:16:48 -0700

Simplify GDR
Guaranteed damage reduction is intended to smooth out some of the
nastiness in Crawl combat. It guarantees that your AC will never
roll below some % of its max value when defending against melee attacks
and mundane projectiles (not against spells, etc).

This is a mostly reasonable idea, but it's implemented bafflingly: it
uses your base AC OR a hodge-podge of special cases based on your species
and/or form, meaning that it's both spoilery and weird. Some AC is
effectively worth more than others. Not great!

Instead, simplify it to be based purely on the player's current AC.
(Specifically, AC^(1/4) * 16.)

Previous example values:

Robe:                 0%
Scale mail (ie Fi):  28%
Plate:               39%

New values:

AC 6 (ie Fi):        25%
AC 20:		     34%
AC 50:               43%

This is a buff to some things (anything that didn't have GDR before) and a
nerf to other things (early plate). It's all over the place. Chaos reigns.
(But in practice I suspect the difference will be mostly unnoticable.)

--------------------------------------------------------------------------------
fdeffcb720 | Kate | 2021-05-13 19:27:43 +0100

Fix meph chance display

--------------------------------------------------------------------------------
9a643b30eb | gammafunk | 2021-05-13 05:44:09 -0500

Adjustments to two volcano maps
For hellmonk_zot_springs, thin out the upper-tier monsters in the main
chamber, since it felt a bit too fierce in play-testing. The middle-tier
molten gargoyles are pretty tough at this depth as it is, so multiple
salamander mystics and the other higher tier threats compound the
difficulty of this map with each additional placement. Make the
upper-tier set not include molten gargoyles, so we won't place too many
of those, since the middle-tier placement already places four
on-average.

For syntax, reglyph to use consistent glyphs for monsters and items and
to use a linear glyph progression. Fix the middle-tier monster NSUBST of
3 to not use ':' when placing the next tier on 4, since this would place
either six of such monsters or zero, which seems unintentional (and
undesirable). Clean up water tile placement and reorganize statements.

For hellmonk_pyromancer_palace, reglyph decorative lava so we can mark
it no_tele_into without marking the non-decorative lava.

Closes #1949.

--------------------------------------------------------------------------------
7c0e23aee5 | hellmonk | 2021-05-12 22:53:31 -0500

Fix an incorrect glyph in hellmonk_smoking_crater

--------------------------------------------------------------------------------
5e02258609 | hellmonk | 2021-05-12 22:53:31 -0500

Deep elf pyromancer volcano.
Pyromancers galore; deep elf archer serves as the boss.

--------------------------------------------------------------------------------
58c629d5e2 | hellmonk | 2021-05-12 22:53:31 -0500

New volcano map: zot springs
Based on the legendary zot vault. Places humanoids, steam clouds. No eruptions.

--------------------------------------------------------------------------------
4505690ab0 | Nicholas Feinberg | 2021-05-11 21:41:46 -0700

New monster tiles (Sastreii)
Boulder beetle, black bear, polar bear, zombie dragon, and Mnoleg.

--------------------------------------------------------------------------------
a92136e5f8 | Nicholas Feinberg | 2021-05-11 21:17:10 -0700

Tweak Dj apts (pubby)
Increase XP apt by 1 (0 -> +1) and drop spcast 1 (-2 -> -3).

The goal here is to increase the odds that new spells will require
some investment by the time you get them, rather than being immediately
castable. This could encourage strategic decisionmaking (is this new spell
worth investing in?). It's also intended to make =wiz more useful for Dj.

--------------------------------------------------------------------------------
b3d8e82157 | advil | 2021-05-10 14:54:44 -0400

feat: add a way to reset the !a warning without swapping (Yermak)
This is a very minimal change to allow this, it resets the warning as a
side effect of rewielding. This is not great UI and it's a bit of a
hidden feature, but as Yermak pointed out, there are corner cases where
you really want something like this (e.g. Ash, + accidentally hitting y
or using it one-off for something like rampaging). I've at least
documented the behavior. This flag is used for ranged weapons as well as
!a-inscribed weapons.

--------------------------------------------------------------------------------
e0cfffa631 | Kate | 2021-05-10 14:52:30 +0100

Update manual entry for grey draconians

--------------------------------------------------------------------------------
3f2173a928 | gammafunk | 2021-05-10 03:11:45 -0500

Fix dart descriptions (Goratrix)
0b7d3b79 updated the descriptions, but incorrectly changed the entry to
one for needles.

--------------------------------------------------------------------------------
0b7d3b79db | Kate | 2021-05-10 02:52:05 +0100

Update needle descriptions

--------------------------------------------------------------------------------
e7c6dc9676 | Kate | 2021-05-10 02:28:38 +0100

Let classed monster grey draconians swim
Previously only base grey draconians could travel through water.

--------------------------------------------------------------------------------
a3e552604e | Kate | 2021-05-10 02:21:07 +0100

Remove unbreathing (mostly)
Unbreathing had a number of niche effects but was mostly redundant with
rPois and undead/nonliving/plant holiness. Instead make the things that
checked it just check holiness and rPois directly as appropriate.

Affected mechanics are mephitic cloud confusion and curare damage (both now
only check rPois, since all undead/nonliving/plant holiness creatures have
rPois anyway), and spore confusion and water drowning damage (both now
just check undead/nonliving/plant holiness).

Very few monsters/species behave differently as a result - grey draconians,
iron dragons, slimes, smoke demons and ophans are now fully affected by the
above mechanics (unless their rPois grants them immunity in the cases of
meph and curare).

Grey draconians gain regular amphibiousness instead of the unbreathing
flavour, removing the need for special-casing them in water.

--------------------------------------------------------------------------------
a67198749c | Kate | 2021-05-09 18:45:20 +0100

Don't allow Wu Jian attacks or ripostes with nonweapons

--------------------------------------------------------------------------------
099f9bb0e8 | Nicholas Feinberg | 2021-05-07 15:58:35 -0700

New Sastreii tiles
Mundane boots, Murray, Nergalle and Snorg, in that order.

--------------------------------------------------------------------------------
28e009f8a6 | gammafunk | 2021-05-06 12:36:34 -0500

Unrename a vault
This vault was apparently intentionally renamed in 2394d0fb to change
"ooze" to "endoplasm", but the vault never placed a monster that got
renamed to endoplasm. It did place a death ooze, which got replaced with
a quicksilver ooze, so the original name is still appropriate. In any
case, renames should be avoided unless the old name would somehow
generate confusion or a new naming format is used for a set of related
vaults, neither of which is the case here.

--------------------------------------------------------------------------------
6ee8fce0c9 | gammafunk | 2021-05-06 06:37:52 -0500

Update a digging-themed vault (Lightli)
The vault wad_dig_loot had a hidden diggable area with a nasty monster
spawn and loot. We've moved away from having completely hidden spoilers
like these, prefer our spoilery vaults to at least broadcast their
uniqueness to some degree. This vault didn't do anything special with
its secret area, so instead update the chamber to be visible, but
introduce digging monsters at later depths. Also add Elf to the
placement list, since we have a unique digging monster there, and scale
the monster and loot count with depth. Now it places two 8 spawns from
D:12-15, three 8 spawns in Elf, and four in Depths, with each new
monster also generating another loot item. Also fix its teleport closet
by marking the loot chamber no_tele_into.

--------------------------------------------------------------------------------
3ef0f4ec91 | Kate | 2021-05-05 18:47:26 +0100

Fix Ignite Blood mutation description

--------------------------------------------------------------------------------
0b992a5a9d | advil | 2021-05-03 19:40:49 -0400

fix: remove a duplicate BREATHE_POISON (12579)
This led to cosmetic duplicates of this ability on the `a` screen.

--------------------------------------------------------------------------------
81dfa19a63 | dilly | 2021-05-03 17:12:53 -0400

Minor fix for gnrine
It wasn't green enough.

--------------------------------------------------------------------------------
0b80122b6a | advil | 2021-05-03 15:23:26 -0400

Update sdl2-image for android builds
Per #1892.

--------------------------------------------------------------------------------
0a9fa4a780 | advil | 2021-05-03 15:23:26 -0400

Update sdl2-mixer for android builds
Per #1892.

--------------------------------------------------------------------------------
a4d602e826 | advil | 2021-05-03 15:23:26 -0400

Bump lua contrib for android builds
This updates lua and fixes some issues with android builds, per
PR #1892. I'm merging this slightly differently than in that PR just to
be a little more careful, these changes since other builds depend on
these contribs as well.

--------------------------------------------------------------------------------
2a531a4d09 | Kate | 2021-05-03 15:52:38 +0100

Add some missing cloud descriptions

--------------------------------------------------------------------------------
715e165ca6 | Kate | 2021-05-03 15:52:38 +0100

Fix spelling

--------------------------------------------------------------------------------
a7b940fc0e | Kate | 2021-05-03 15:52:38 +0100

Tweak portal timer wording
They were fairly misleading - "nearby" portals were extremely close, and
"distant" ones were also still quite close. Add an extra level of
distinction, and use multiples of default LOS range for the differences
between ranges.

--------------------------------------------------------------------------------
9b0c66ea95 | Kate | 2021-05-03 15:52:38 +0100

Make poison and miasma clouds affect unbreathing creatures again
This was considered a bug when it was changed previously, however it was
actually intended behaviour (and only mephitic clouds explicitly mention in
their description that unbreathing creatures are immune). Unbreathing is a
fairly complicated mechanic so reducing the number of things it effects is
probably better, and the change also had some strange knock-on effects like
making grey draconians immune to sickness, which doesn't fit flavour-wise.

Revert to the original behaviour, and update some descriptions to hopefully
make it clearer.

This reverts commits e1f20c3b445d4e6f4d869a2e080ec252b498914c and
368d90fffdfadd77c1e5298e59cdf97a51697a67.

--------------------------------------------------------------------------------
564068e7f7 | Kate | 2021-05-03 15:52:11 +0100

Adjust potion of mutation probabilities
It was very easy to reliably remove bad mutations with just a few potions
of mutation due to them removing 2-4 mutations as their first effect, and
to acquire a mostly or entirely positive mutation set due to the guaranteed
good mutation at the end.

While they should still be useful for clearing out bad mutations, the
consistency was a little too high, so reduce the number of mutations
removed to 2-3, and reduce the chance of adding a good mutation at the end
from 100% to 50% (so that the overall number of mutations added/removed on
average also remains the same).

--------------------------------------------------------------------------------
97766e7410 | Kate | 2021-05-03 12:56:04 +0100

Remove wispform's blinkitis and extra speed
Random blinking was an especially annoying feature even for a form that's
intended to be dangerous. The monster that the form was based on also no
longer exists, so instead just make wispform standard speed (distinct from
bat/pig badforms which are fast), keeping the existing downsides of most
other badforms of melding equipment and preventing weapon or spell use.

--------------------------------------------------------------------------------
131cd56ac5 | gammafunk | 2021-05-03 03:40:42 -0500

Some tweaks to an ice cave map
For ice_cave_azure_passage, some tweaks to the monster set and
placement, and some DES syntax cleanups.

For the monster set, remove shapeshifter simulacra, which are far too
weak. Leave in the somewhat stronger glowing shapeshifter simulacra, and
add in demonic crawler simulacra. The latter make decent lower-tier
threats and fit the "aberration" theme. Also add in very ugly thing
simulacra, but at half weight. These are somewhat nasty, but characters
with some rC shouldn't find them too difficult. For the slime creature
placement, the seven bands currently placed is excessive. Reduce this
number by about half, replacing them with 2/3 chance for simulacra and
1/3 chance for quicksilver oozes.

For DES syntax, reorganize to use normal monster slot glyphs where
possible. Use a simpler SHUFFLE+SUBST instead of a more verbose lua
conditional. Reindent statements and reorganize to have a consistent
order. I've also renamed the map to ice_cave_hellmonk_azure_passage.
Keeping the ice_cave prefix is good for consistency with other maps in
this file, but we should include the vault author's name when possible.
Closes #1933.

--------------------------------------------------------------------------------
fa0a1138f8 | hellmonk | 2021-05-03 03:40:42 -0500

Slime themed ice cave.
Places various Jiyva-adjacent simulacra, a few ice statues, slime creatures,
and various high level slimes as the boss monsters (including a guaranteed
azure jelly).

--------------------------------------------------------------------------------
2f9bb313c0 | Nicholas Feinberg | 2021-05-02 20:13:27 -0700

Zappify dispel undead (ardl)
This removes a cap on damage that was added all the way back when
dispel undead was first added in 0c7d47c22ef, but that, afaik, could
never actually be hit except by very high HD panlords or player ghosts.

--------------------------------------------------------------------------------
2a214b436d | advil | 2021-05-02 12:09:58 -0400

fix: blanket no_tele_into for gammafunk_dig_for_victory
We really need a better way to write no_tele_into KPROPs; in this case I
think what probably happened is that the KPROP got out of sync with
later changes to the vault, though I stopped trying to debug the
details. Looking at the vault it seemed simpler to just blanket prevent
teleporting into the whole thing. (Perfectly fine with me if someone
wants to go back and fix the KPROP though.)

I've also applied a similar tweak to passability as that in
3a4c58a182d1; while working on the tele fix I noticed that this vault
would likely lead to similar connectivity issues as seen in #1909,
because of the conditional CLEAR.

Resolves #1812

--------------------------------------------------------------------------------
4d8f0be3d4 | advil | 2021-05-02 11:41:47 -0400

feat: allow setting tiles window width by ratio
On the previous defaults, the tiles window width was screen edge - 90 in
both dimensions. This works fine on many screen ratios, but is kind of
annoying (in my opinion) on an ultrawide screen. This commit provides an
option to override the width setting using a ratio of the height, and
makes it activated by default. When activated, the width setting is
instead used as a maximum value. This has no impact on full screen mode.
This can be disabled by just setting `tile_window_ratio` to 0 or a
negative value, in which case the behavior is the same as before
(including if you had custom values set here).

I've used the golden ratio as the default value, so on a 4:3 screen
you'd typically have the same default results as before, but on a wider
screen the window default width will be capped. This looks (again, IMO)
a lot better on an ultrawide ratio like 2:1 or greater.

It would be ideal, eventually, to actually remember positioning and
size.

--------------------------------------------------------------------------------
673ba79eab | advil | 2021-05-02 10:44:53 -0400

fix: cap Ashenzari scry radius at los
A kobold with a scarf of shadows has a los of 3, but the ash scry radius
would go up to 4 at full piety. This commit fixes at least two bugs for
this case:

* in all build targets, the "comes into view" messages would happen at
  los 4 instead of 3, even though the monster would not be fully visible
  (e.g. shown as a sensed monster)
* in local tiles, radius 4 would be highlighted as if it were in los,
  but only the background tile would be drawn, not even monster memory
  or sensed monster icons. Resolves #1844

--------------------------------------------------------------------------------
bf574a6a6b | Kate | 2021-05-02 00:06:28 +0100

Don't allow cancelling forced blinks with Ozo's Armour (Psymania)

--------------------------------------------------------------------------------
a84896973d | advil | 2021-05-01 17:17:33 -0400

fix: do hepl ancestor setup when receiving ancestor
Before 9dc9f58f1f8, setting up the name prop and generating the ancestor
itself were done together in _join_hepliaklqana, ensuring correct
sequencing. After this commit, they were separated; this becomes an
issue for monks, who get their piety bonus when joining (triggering the
ancestor generation code) before the on_join function is called, leading
to an empty name and crashes.  Instead, ensure that the name and gender
are set up any time the monster is instantiated, including the first,
rather than in an on_join function.

--------------------------------------------------------------------------------
62a2e9f2fb | advil | 2021-05-01 13:04:27 -0400

fix: swap a mutation check for felids
This doesn't really matter, because felids have both mutations and
nothing else does, but it's good to be correct. (Also, a minor unrelated
whitespace fix.)

--------------------------------------------------------------------------------
91b3acb402 | Neil Moore | 2021-05-01 01:19:45 -0400

Don't crash when the first of two ancestors dies
Actually fixing up the second ancestor in tags.cc would be better, but
that is tricky because one or both ancestors might be off-level, and the
daction to handle that case would destroy them both.

Instead, let the extra ancestor die normally, but without triggering
DUR_ANCESTOR_DELAY.

--------------------------------------------------------------------------------
00726eb06d | Nicholas Feinberg | 2021-04-30 16:34:33 -0700

Fix: don't spawn hep ancestor until 1*
Overlooked the code to respawn dead ancestors over time. Oops!

--------------------------------------------------------------------------------
6f521eb9b9 | Nicholas Feinberg | 2021-04-30 15:15:41 -0700

Only trigger spectral on melee (kingbuddyboy)
Don't allow ranged attacks to re-trigger existing spectral weapons.

--------------------------------------------------------------------------------
b2b6fe9c5e | Nicholas Feinberg | 2021-04-30 08:41:47 -0700

Show actual attack delay on @
It's not a secret! We display it in the inventory and every time that
you swing your weapon - no need to add secret mystery adjectives.

--------------------------------------------------------------------------------
e39799b483 | Nicholas Feinberg | 2021-04-30 08:34:29 -0700

Remove sInv from axes
Pretty good targeter bug. I think ardl or dilly or someone reported
this but I couldn't find the message when I looked for it again, sorry!

--------------------------------------------------------------------------------
9dc9f58f1f | Nicholas Feinberg | 2021-04-30 08:24:56 -0700

Move Hep frailty & ancestor to 1*
Hepliaklqana was one of the last gods that provided a benefit at 1*.
In general, the tension of having to worship for a little while before
actually getting an upside from your god (assuming you haven't taken
some other tradeoff, e.g. an ecumenical altar or a Monk start) tends to
produce more interesting gameplay. Along with recent major Hep buffs,
it seemed like it was finally time to make this change.

--------------------------------------------------------------------------------
4f6a661ab4 | Nicholas Feinberg | 2021-04-30 08:24:56 -0700

WIP hep nerf

--------------------------------------------------------------------------------
3e6434628b | advil | 2021-04-30 11:14:09 -0400

fix: reorder messaging for irradiate
No need to give the blasting message for protected allies.

--------------------------------------------------------------------------------
4302cc2033 | advil | 2021-04-30 11:06:54 -0400

lint

--------------------------------------------------------------------------------
276f4da11a | advil | 2021-04-30 10:37:56 -0400

refactor: unify hepl and fedhas ally protection
Historically, these allies were treated quite differently, but
ab74d117c10 put them closer together by allowing some attacks to pass
through ancestors. However, like the original fedhas protection
implementation, this check is sprinkled all over the place leading to
inconsistent behavior between special cases and reports like #1925 (deja
vu for those who did the original fedhas bugfixing).

This commit continues the trend by doing the checks in exactly the same
places, leading to cleaner code and a more consistent set of religious
ally protections. Unlike the previous commit that refactors fedhas, this
commit is an expansion: hepl ally protections now cover a whole bunch of
cases (various spells, clouds, etc) that weren't considered in previous
commits, and hep allies should now be immune to all sorts of area spells
like refrigeration. But it is much cleaner from the player's
perspective, and code perspective, to give these two cases exactly the
same protection, once shoot-through is allowed for ancestors in the
first place.

One awkward case I am still aware of is OoD behavior, where the ancestor
is protected from damage but seems to block the orbs (with or without a
shield).

In the long run it would be nice to continue generalizing this code to
cover demonic guardians, conj projectiles, etc., but the more general it
is, the harder it is to get the messaging right for all cases, so I
aborted trying to do that for now.

Resolves #1925

--------------------------------------------------------------------------------
7b2b3e46e3 | advil | 2021-04-29 18:13:46 -0400

refactor: abstract some common fedhas code
The code to check whether Fedhas protects an ally is repeated in a
number of places in a way that is a bit error-prone (in fact, most cases
seem to not be handling all the attitude possibilities). This commit
abstracts this into a common location with some relatively simple way to
call it. This could be even more abstracted into something that covers
non-god cases that often show up nearby fedhas checks (e.g. demonic
guardian). I actually started to do this and it's trickier than it
seems, though.

--------------------------------------------------------------------------------
946c659c87 | advil | 2021-04-28 11:35:29 -0400

fix: disable cleaving during fsim
I'm not sure if this is new or old (but I'm surprised to see no reports
about it if the latter), but right now, if you fsim with a cleaving
weapon while adjacent to a real monster, the real monster takes damage
(and may die, grant xp, etc). Probably it would be nice to somehow have
a way to factor in cleaving to fsim, but this isn't it. So, simply
disable it for now.

--------------------------------------------------------------------------------
bc3fc7707e | advil | 2021-04-28 11:09:56 -0400

fix: disable decapitation during fsim
910b67f9770a fixed the main case for #1917, but it was still possible to
trigger a crash by fsimming directly against a one-headed hydra. To
handle this, disable decapitation insta-kills for simulated attacks.
(Arguably, it might be better to accurately represent the damage
involved in an insta-kill, but this is a lot simpler.)

--------------------------------------------------------------------------------
910b67f977 | advil | 2021-04-28 10:23:24 -0400

fix: save head count across fsim rounds
This restores the head count after a single fsim round. It's possible
that some people were using the simulation of head growth, but allowing
head growth or cauterization makes the calculation across rounds against
hydras pretty unreliable (and leads to crashes). It's of course possible
to specify head count in the monster spec for people who want to test
particular cases.

Resolves #1917

--------------------------------------------------------------------------------
38810cc1a4 | advil | 2021-04-28 10:12:12 -0400

fix: handle tab at weapon select menu
This was simply missing a `break` in the custom menu code for handling
the case; focus cycling was being correctly overridden. Resolves #1339.

--------------------------------------------------------------------------------
e311f74bc8 | gammafunk | 2021-04-27 20:19:57 -0500

Some cleanups for a volcano map
For hellmonk_smoking_crater, slightly increase the number of upper-tier
monsters, adding one more on average over two locations. This map feels
on the easier side unless you rush in quite recklessly, and it doesn't
have the usual cloud gimmicks to try to "force" players to a particular
area. Increase the chance of cloak of the thief to be something a player
might actually see over the course of many games. Reglyph the vault to
not override pre-defined glyphs, and clean up syntax and spacing.
Closes #1929.

--------------------------------------------------------------------------------
e4e9b07c1e | hellmonk | 2021-04-27 19:42:56 -0500

New volcano map with a smoke/steam theme.
Places a highly variable number of monsters; lots of steam dragons. Loot
includes a couple of fog scrolls or cloak of the thief (rarely). No eruptions.

--------------------------------------------------------------------------------
7f87ac42b0 | Kate | 2021-04-27 21:52:28 +0100

Remove some duplicated artefact checks
Elyvilon being prevented from being named on */+Rage items was redundant
since weapons aren't eligible to be named after Ely, and -Cast conflicting
with rings of fire/ice/wizardry/MP was also redundant since -Cast can only
appear on armour and amulets. Moves a couple of other checks back to
_artp_can_go_on_item rather than _randart_is_conflicting.

--------------------------------------------------------------------------------
f2daf0da32 | Kate | 2021-04-27 21:52:19 +0100

Adjust some more artefact restrictions
Prevents -Cast and +MP on the same artefact, and prevents Trog from
gifting items with +Int. Also adjusts which item types can be named after
which gods - quick blades can now be named after Chei (since they're no
longer a hated item), and non-weapons can't be named after Trog.

--------------------------------------------------------------------------------
71c9e0f10e | Kate | 2021-04-27 21:47:49 +0100

Mark a teleport closet as no_tele_into
In onia_ninara_dug_in_and_dangerous.

--------------------------------------------------------------------------------
7bfb9e8c44 | advil | 2021-04-27 12:27:26 -0400

fix: correctly check antimagic brand conflicts for randarts
The `get_weapon_brand` call here simply doesn't work, returning
SPWPN_NORMAL. I think this is because the brand prop is not yet set up
on `item` (past a point I stopped trying to figure out exactly what the
problem was). Possibly this check should be in
`_is_randart_conflicting` anyways?

I was able to replicate this in 0.25.1 with the seed from @Goratrix in
the issue: resolves #1322.

--------------------------------------------------------------------------------
7ea0e0ed02 | advil | 2021-04-27 12:04:48 -0400

fix: remove "Power" from rand_wpn.txt
This is generally confusing with the unrand sword of Power, and can
actually in rare circumstances generate e.g. "the great sword of Power"
(I just saw this in a test game).

--------------------------------------------------------------------------------
fbe13134a7 | advil | 2021-04-27 10:25:08 -0400

fix: always announce xom chaos branding
The message ordering when Xom granted an item and "upgraded" it to chaos
was confusing, because the item was announced before the brand took
effect. (I suspect this changed at some point.) Rather than try to work
out how to fix the message ordering, this commit leans into this effect
and just announces the change after the item generates (still letting
the player know what they would have gotten). It's still not very
explicit about removing the old brand, but hopefully this will be clear
enough.

Also:
 * Standardize Xom's chaos upgrade using the same message as in regular
   branding. Possibly more boring, but also more predictable.
 * Clean up some code for Xom upgrading ally weapons.

Resolves #1865

--------------------------------------------------------------------------------
3287b30435 | advil | 2021-04-27 10:25:08 -0400

fix: check form in player::could_wield
Other checks (e.g. size, handedness) mostly conspire to cover this case
already, but this fixes some UI issues for giant forms when the player
normally can't wield giant weapons. As a side effect, it does mark all
weapons as useless when in a non-wielding form, but if this is a
problem, the fix would be to adjust the ignore_transform parameter from
the caller. (This might lead to other issues though if any forms narrow
the wield restrictions. But I'm not sure they do.)

Resolves #1889

--------------------------------------------------------------------------------
6e592c6ea3 | advil | 2021-04-27 10:25:08 -0400

fix: annotate staves with {weapon}
These are not technically weapons, which is why this has to be done
manually, but from the player's perspective that distinction is not
particularly helpful -- I think the player will expect anything that can
be wielded, used in attacks, etc to show up when doing a stash search
for "weapon".

Resolves #1907

--------------------------------------------------------------------------------
986d5f5408 | gammafunk | 2021-04-27 04:55:24 -0500

Rework the Jungle Book Lair ending
The map due_jungle_book is memorable, but uses a spoilery lua death
trigger. Killing the sole anaconda found on the map causes random green
elephant statues to "come alive" as dire elephants. We do have lua
spoiler vaults at various places in crawl, but it's best to not feature
these in a common Lair ending. Furthermore this effect doesn't result in
very interesting gameplay relative to how much of a spoiler it is.  One
of the most common tactics is grabbing loot, teleporting out, and
ignoring most of the spawned monsters. This commit reworks the vault to
have a strong undead theme, adding in the relatively underused
necromancer monster and its Bind Soul ability to pull off "on death"
effects with better gameplay and less spoilers.

Necromancers get a band of living beasts, mostly elephants but with
death yaks and cane toads mixed in. We also mix in bands of thematic
skeleton, zombie, and spectral monsters throughout the vault, including
a spectral version of the old "Kaa" anaconda. Monster encounters are now
spread out so that none of the various vault chambers are empty, which
was a problem with the old vault. Overall there are fewer dire
elephants, since the previous vault placed too many, but they still
feature prominently in the largest loot chamber and can appear in their
derived undead forms elsewhere in the map.

The guaranteed piece of loot that previously required burning trees is
now guarded by an obsidian statue. This loot has a necromancy theme,
being one of such items as a high quality pain or draining weapon,
shadow dragon scales, an artefact ring of positive energy, an artefact
amulet of regeneration, or a necromancy themed book. The
necromancy-themed unrands Sceptre of Torment, Morg, Cigotuvi's Embrace,
Sword of Zonguldruk, and Majin-Bo all have a chance to appear as this
loot item, although each with low chance.

--------------------------------------------------------------------------------
b115f176c6 | Nicholas Feinberg | 2021-04-26 17:47:03 -0700

Truly unique new tiles (Sastreii)
Rupert gettin ripped and Frederick gettin mean.

--------------------------------------------------------------------------------
09c2292e34 | advil | 2021-04-26 19:26:14 -0400

fix: prevent -cast and +int (kate)
This also seems like a case where these properties should conflict.
Also, move the conflict check from a8074f5 to a more natural place.

--------------------------------------------------------------------------------
a8074f570f | advil | 2021-04-26 18:02:10 -0400

fix: prevent RegenMP with -cast
Inspired by:
https://www.reddit.com/r/dcss/comments/myz00g/my_candidate_for_the_most_useless_
artifact_ever/

This combo is amusing but also pointless enough that I think it is worth
filtering out, similar to antimagic + MP.

--------------------------------------------------------------------------------
f39c287674 | Kate | 2021-04-26 21:00:15 +0100

Redraw agrid on gaining the silence aura mut (#12577)

--------------------------------------------------------------------------------
3a4c58a182 | advil | 2021-04-26 11:30:35 -0400

fix: adjust connectivity for gammafunk_its_a_trap
This should only be marked `passable` in vaults; because of the
conditional SUBST for - it is potentially one-way outside of vaults and
can generate connectivity traps as well as actual traps. I replicated
this behavior using seed 12239598491091230555 at version 407484c in
Snake:3, from the game shown in #1909.

Resolves #1909.

--------------------------------------------------------------------------------
f0060e8222 | Kate | 2021-04-26 08:47:18 +0100

Make Repel Missiles unablatable
Repel Missiles having a power-dependent chance of ending after repelling
something was an important feature for the player spell, but not relevant
on on the few monsters with rMsl (and would only trigger rarely even for
them). With the player spell gone, remove that extra layer of complication.

--------------------------------------------------------------------------------
78b3836a5f | Kate | 2021-04-26 02:30:25 +0100

Refactor disease to be a standard duration
Disease is no longer a widespread status effect and only shows up in the
Abyss from ancient zymes, so doesn't need so much special handling. Turn it
into a normal duration (with recovery rate no longer affected by the
player's regeneration rate), and make it dispellable instead of being
healable with potions of curing.

--------------------------------------------------------------------------------
cf8293e1eb | Kate | 2021-04-25 22:55:09 +0100

Fix pluralisation of pieces from Xom's chessboard
And any future things from other things.

--------------------------------------------------------------------------------
8197cbaaf9 | advil | 2021-04-25 13:37:03 -0400

fix: correctly handle hand names ending in `e` (celly00)
Prevent "It is a one-tentacleed weapon".

--------------------------------------------------------------------------------
e8a0a9c698 | gammafunk | 2021-04-24 21:31:59 -0500

Fix a typo (Yermak)

--------------------------------------------------------------------------------
99ddfe5caa | gammafunk | 2021-04-24 21:17:56 -0500

Don't have burned demonic trees release demons
This behaviour creates a disincentive problem similar to the one that
orcish idols had when destroying those caused smiting: it would
practically never be worth it to intentionally burn a demonic tree.
Although creating a chaos cloud doesn't do much in terms of gameplay,
having that alone is better than creating destruction disincentives.
This commit removes the demon summoning part, but keeps the chaos cloud
aspect.

There might be room for more monster-activated behaviour, similar to how
Awaken Forest works (and that effect does work normally on demonic
trees). The challenge with monster-activated behaviour will be that
demonic trees have limited distribution, even in the abyss.

--------------------------------------------------------------------------------
a652b1bed6 | gammafunk | 2021-04-24 21:17:56 -0500

Update visuals of an Abyss-themed ghost vault
For gammafunk_ghost_abyssal_escape, incorporate the new demonic trees
into the the vault border. Also randomize the border walls more,
incorporating crystal and metal, similar to how Abyss wall ranomization
happens. Add a "ruined" floor tiling around the vault for some nice
visual effect and to help the glass and demonic trees have floor tiles
that seem a bit more logical. Choose a floor color that blends with the
the branch-specific floor tile color, when that's possible. The effect
is subtle in most branches, but it's especially nice for Shoals, where
the sand tile is somewhat bright, so we'd like to use a more matching
color. Somewhat increase the trees used in walls for Swamp, since
they're still pretty sparse for spriggan druids' purposes even though we
replace some of the interior rock with trees.

--------------------------------------------------------------------------------
0d77da13b5 | Nicholas Feinberg | 2021-04-24 08:26:24 -0700

Salamander tweaks (Sastreii)
- New tiles for base Salamanders, Mystics and Tyrants.
- Remove tyrant weapon use; this wasn't used and wasn't displayed on
  tiles.

--------------------------------------------------------------------------------
246ed28529 | gammafunk | 2021-04-24 03:40:15 -0500

Fix up a Lugonu altar vault
For the altar vault amcnicky_altar_lugonu_corruption, use rock instead
of stone, since we're using Abyss rock tiles and recolouring stone
stends to be more problematic. Don't use console colours that would
confuse the features with other types of walls.

Also, when the vault places in Swamp, use the newly introduced demonic
trees instead of rock, for a more Abyss-themed feel.

--------------------------------------------------------------------------------
ec5411427b | gammafunk | 2021-04-24 03:40:15 -0500

Add demonic trees (Sastreii)
A new type of tree appropriate for the Abyss and Pan. When ignited, it
releases a durably summoned hostile demon and leaves a clouds of chaos.
The demon has a chance to be a greater demon based on the depth of tree
placement. The chaos clouds are single tile chaos clouds with somewhat
long duration, but don't spread like forest fires. We now place these as
the default tree type in both Abyss and Pan. These trees work normally
in terms of being awoken and susceptibility to fire/lightning bolts.
They have a set of very creative tiles, courtesy of Sastreii, a
description, as well as a description of their unique burning behaviour.

--------------------------------------------------------------------------------
6f9b4697ca | gammafunk | 2021-04-24 03:40:15 -0500

Describe burning mechanics in tree descriptions
Put basic details about tree and mangrove burning in their descriptions,
using a common entry for both types.

--------------------------------------------------------------------------------
f074c5909a | gammafunk | 2021-04-24 03:39:39 -0500

Refactor descriptions of terrain modifiers
Currently the awoken status for trees is handled as a pseudo terrain
type in terms of descriptions by adding an "awoken" prefix to the
feature name. This means each possible type of awoken tree needs its own
unique description entry.

This commit handles awoken and summoned (temporary terrain) descriptors
similarly to how we handle icy walls. Now they print as descriptors
after the main feature name, and can pull in a common entry for the
detailed description show under x-v.

--------------------------------------------------------------------------------
76f056063d | gammafunk | 2021-04-24 03:38:09 -0500

Move mangroves back to their own feature type
Mangroves were made normal trees in 7a9dbbb8 when trees were made fully
opaque, instead of requiring two to break LOS. However multiple gameplay
differences remain between trees and mangroves, namely they don't spread
forest fires and they leave shallow water after destruction. Having them
be normal tree features but with the behaviour conditioned on location
complicates documenting these differences for the player. It also
complicates their usage in other areas, since they'll be mangroves in
appearance only, and will not do any of the usual mangrove things.

It's far more straightforward to have features with gameplay differences
be properly distinct feature types, hence this commit restores mangroves
to their own type. The handling for flame clouds and leaving water is
conditioned on the original feature being a mangrove, not its being a
tree in Swamp. I've also added a mangrove feature description that
mentions mangrove differences.

This change does bring some complications. For vaults, we condition the
default meaning of the 't' glyph by branch, so that mangroves are the
default definition for any vault placing in Swamp. Vault authors can
still use a KFEAT to get whichever type of tree they need. For save
compat, we add a minor version that converts all normal trees to
mangroves in Swamp. For vaults, I've gone through and modified the few
vaults using mangrove tree tiles outside of Swamps to use proper
mangrove trees.

--------------------------------------------------------------------------------
c0a873f3f4 | gammafunk | 2021-04-24 02:03:48 -0500

Fix grammar handling of Zot trap descriptions
Zot traps having an upper-case first character broke the description
database lookup and gave inconsistency with other feature descriptions,
showing "Zot trap" instead of "a Zot trap". Update the grammar function
to have an option to ignore case, allowing articles to be added for
upper-case phrases and use this for Zot traps. Also refactor some
feature description code to no longer have special cases for mechanical
traps and abandoned shops that are properly converted to distinct
feature types.

--------------------------------------------------------------------------------
a85bd9520d | advil | 2021-04-23 19:13:31 -0400

docs: Document force_more_message vs runrest_stop_message
These work completely independently, but this was not a very obvious
fact from the documentation. I think in the long run I'd prefer to
change this, but it's non-trivial to do, so for now at least make the
situation clear.

--------------------------------------------------------------------------------
e4650c3cbe | advil | 2021-04-23 19:05:12 -0400

refactor: remove some more hunger references

--------------------------------------------------------------------------------
97754add85 | advil | 2021-04-23 18:28:02 -0400

Add portal alerts to default runrest_ignore
These not being here is almost certainly one reason for reports of
people missing these.

--------------------------------------------------------------------------------
1d5596e97f | advil | 2021-04-23 18:26:05 -0400

Add zot clock alerts to default runrest_ignore
It seems that this is entirely independent of force_more_messages, so
these need to be in both places.

--------------------------------------------------------------------------------
8b38eeb0f3 | advil | 2021-04-23 17:50:05 -0400

Force-interrupt all delays on zot clock messages
One factor in the death in 12569 is that when you have
`explore_auto_rest = true`, and start autotravel, it uses the delay
interrupt options for `interrupt_travel` rather than `interrupt_run`,
which does not include messages. It seems pretty reasonable that the zot
clock alerts should just interrupt anything, regardless of
configuration, which sidesteps this issue.

--------------------------------------------------------------------------------
29160eaed2 | advil | 2021-04-23 16:08:33 -0400

Mark diamond obelisks as not a threat
The only effect of this should be allow ghouls / bloodless vp to heal
with obelisks in sight. Their effect is via clouds, which should still
prevent autotravel etc.

Also, remove some tornado dprf spam. Easy enough for someone adding
tornado to put in temporarily if needed later.

Possibly resolves mantis 12569, but not any hepl bug (such as #1747).
That is, I suspect 12569 was not actually hepl related, but that there
is another similar hep bug.

--------------------------------------------------------------------------------
e809cff456 | Edgar A. Bering IV | 2021-04-21 21:32:36 +0300

update CREDITS.txt

--------------------------------------------------------------------------------
0c245655db | Edgar A. Bering IV | 2021-04-21 20:55:09 +0300

Remove food(.des)
food.des housed the guaranteed food vaults, which after the removal of
food simply became a part of the minivault pool.

This moves most of them to mini_monsters.des.

The spriggan baker becomes the spriggan hatter, placing hats and
occasionally a skinned spriggan corpse (yikes!).

The "fruiting plant" subvaults are removed (they had a TODO asking for
flavour without food). Vaults that use them are adjusted.

One vault that was a notorious and spoilery autoexplore trap is removed.

Another, with jelly flavour, is removed. The flavour wasn't strong
without being able to place royal jellies, and without players eating at
all the side-by-side jellies eating the door and a ration for the player
is also lost.

--------------------------------------------------------------------------------
a35ceff83e | Edgar A. Bering IV | 2021-04-21 19:59:13 +0300

Fixup some Nemelex overflows (Yermak)

--------------------------------------------------------------------------------
9982866e19 | Edgar A. Bering IV | 2021-04-21 17:01:56 +0300

Revert "Prevent bounced bolts from escaping LOS"
This reverts commit 4a294289ab1eb94c2edadeffdf97aeacee0a300f. This
approach to clamping had some weird unintended consequences for the
fire/steam/water interaction. Addressing them correctly and consistently
seems rather challenging from the current way the beam code is written.

For now I'll roll this back, perhaps in the future a better solution to
prevent out of LOS attacks will be found.

--------------------------------------------------------------------------------
781257ad05 | Edgar A. Bering IV | 2021-04-21 16:51:51 +0300

Reword Vampire regeneration (Shummie)

--------------------------------------------------------------------------------
cb85b5eba1 | Edgar A. Bering IV | 2021-04-21 00:06:50 +0300

Don't crash when aimed_at_spot the player can't see

--------------------------------------------------------------------------------
88d13c5596 | Kate | 2021-04-20 21:31:45 +0100

Free Hepliaklqana ancestors from the gender binary
And allow them to start out as GENDER_NEUTRAL in addition to it being
selectable when recalling identity.

--------------------------------------------------------------------------------
079d617196 | Edgar A. Bering IV | 2021-04-20 23:14:54 +0300

Fix a Hepliaklqana message (12568)

--------------------------------------------------------------------------------
151369d6e4 | Nikolai Lavsky | 2021-04-20 22:58:36 +0300

Further fix webtiles display of defense boosts
After fc3203cb, defense boosts provided by the "acrobat and divine
shield are no longer coloured blue.

This is because unlike other boosts, these two are handled separately
in `tileweb.cc:_update_statuses()` and don't use `short_text` strings
from duration-data.h.

Fix this by updating `short_text`s in `_update_statuses()`. Also, fix
colouring of corroded AC and weapons on the HUD.

--------------------------------------------------------------------------------
4a294289ab | Edgar A. Bering IV | 2021-04-20 22:31:56 +0300

Prevent bounced bolts from escaping LOS
The targeter does a good job of guaranteeing player bolts don't have an
initial target out of LOS, but bounced bolts can escape.

Explosions can also explode in order to reach outside of LOS; clamping
down on those would need to be done elsewhere.

--------------------------------------------------------------------------------
3be03a2e56 | AlexanderPosch | 2021-04-20 10:34:38 +0300

Don't reduce the bounce range of spells with items
Resolves #1800. The code checks how long a bounced spell would have been
if los had not been restricted and then increases the range of bounced
the spell. (Kobolds nightstalker mutation does not count as a los
restriction).

[ Committer's note: Closes #1885. Squashed and rebased. Re-wrote some
  checks based on the change to how mutations interact with normal
  vision. Changed the range display to always display the normal-vision
  range (the symbol strings are rather cryptic, and the UI communicates
  things well enough with beam path highlighting). Re-wrote the commit
  message; adjusted style to fit our style guidelines. ]

--------------------------------------------------------------------------------
8b510267b1 | Edgar A. Bering IV | 2021-04-20 10:34:38 +0300

Reduce explicit species checks: barachi
Create a MUT_DAYSTALKER as a + counterpart to MUT_NIGHTSTALKER to
replace Ba's LOS fakemut.

--------------------------------------------------------------------------------
5a55d11bb6 | Edgar A. Bering IV | 2021-04-20 10:34:38 +0300

Make Nightstalker adjust base LOS
This affects halo and umbra scaling only; everywhere else current_vision
is used (which already applied nightstalker).

These have always been species mutations but predate the concept of a
variable base los.

--------------------------------------------------------------------------------
1420032b4b | Kate | 2021-04-20 07:41:44 +0100

Refactor immunity display on %
Adds generalised handling for immunity to replace the current rPois
special-casing, and uses it to also display infinite willpower (in shadow
form) and infinite rampaging (with the seven-league boots).

Closes #1920.

--------------------------------------------------------------------------------
288ea87c7c | Kate | 2021-04-20 06:59:06 +0100

Mark scarves of invisibility as useless with Sac Artifice (#12486)

--------------------------------------------------------------------------------
551b87177e | gammafunk | 2021-04-20 00:57:46 -0500

Have soul bound monsters always create simulacra
The monster Bind Souls spell currently only creates simulacra if the
monster rolled successfully for the chance to leave a corpse. This is an
aspect of how the old version of the spell directly consumed corpses,
which closely mirrored the player Simulacrum spell. However Bind Souls
isn't trying to have symmetry with the player spell; in fact the two
spells don't have same name. The corpse requirement only serves to
weaken the most distinctive ability of the necromancer monster, which
isn't very dangerous at the depths in which it appears.

This commit has a simulacra always be created when a monster dies with
the Bind Souls enchantment active, giving Bind Souls and by extension
necromancers a buff.

--------------------------------------------------------------------------------
450f9b2e0d | gammafunk | 2021-04-19 19:14:50 -0500

Fix an artefact amulet equip crash (Skunz)
Now that Regen+ can appear on amulets as of bf8bb431, the artefact
equipment code needs an update to not assume an artefact with the regen
artp must be armour, which results in a crash.

This code is to prevent double messaging in cases of e.g. moon troll
leather armour that also has a regen property. This currently can only
happen for unrands, since the regen artp doesn't allow multiple levels
for randarts. While there currently is no unrand regen amulet with
regen++, this commit adds the relevant check for amulets in order to
future-proof things.

--------------------------------------------------------------------------------
7ee7857c10 | Edgar A. Bering IV | 2021-04-19 19:09:15 +0300

docs: changelog through 0.27-a0-1047

--------------------------------------------------------------------------------
c940c042cb | advil | 2021-04-19 10:28:14 -0400

fix: check is_stationary in _can_movement_ability (alex1729)
The practical effect is that this commit applies DUR_LOCKED_DOWN to
rolling charge and hop, where before they were exempt despite being
movement-like. I think this was just an oversight, rather than
intentional? Before this duration existed, is_stationary just checked
treeform, which would have disabled these abilities anyways.

--------------------------------------------------------------------------------
98bf31544f | Nicholas Feinberg | 2021-04-18 11:48:46 -0700

Make guardian golem inner flame trigger consistently
Moderate buff to a spell generally considered weak.

--------------------------------------------------------------------------------
1e905a0851 | Nicholas Feinberg | 2021-04-18 11:48:46 -0700

Properly credit guardian golem explosions
They were being attributed to the dead monster, not to the hexer,
which resulted in the player not getting XP for kills from the explosion
damage itself (though they did get credit for any cloud kills, oddly).

--------------------------------------------------------------------------------
2b6ed4f61c | RojjaCebolla | 2021-04-18 21:15:58 +0300

Add Poisonous Vapours to Veh's spell gifts table
This helps ensure Ignite Poison can be put to use, and helps with
the fact that there are extremely few 2nd-level spells for Vehumet
to choose from.

[ Committer's note: Closes #1880. This also gives Veh's wizardry bonus
  to the spell, which is fine because it is destructive! ]

--------------------------------------------------------------------------------
c275e32347 | Edgar A. Bering IV | 2021-04-18 21:15:37 +0300

Nerf Makhleb heal-on-kill (cebolla, kate-)
This passive is runaway strong and outshines Makhs shiny actives.  On
every kill that passes the piety threshold (random2(you.piety) >= 30)
(at high piety more than 80% of the time) give up to 2 * monshd, on
average 3/2 * monshd. In lair, when characters are often around 100 hp a
death yak heals for an average of approximately 20% health(!).

This commit halves the value of each heal
replacing hd + random2(hd) with (1 + hd) / 2 + random2(hd / 2); rounding
up always for the base so that something happens when the effect is
triggered.

[ Resolves #1878 ]

--------------------------------------------------------------------------------
1f2d7d2970 | RojjaCebolla | 2021-04-18 21:15:37 +0300

Improve Makhleb's Major Destruction
Remove the non-bolt targeted zaps: the explosions (orb of electricity
and fireball) could be unfortunate surprises not previewed by the
targeter; the projectiles (sticky flame and iron shot) likewise could be
surprises, though of a more subtle kind.

In their place, in a parallel with minor destruction, add magma bolt and
corrosive bolt zaps. Unlike minor destruction, where acid breath
requires special power scaling, each of these zaps has a reasonably
close damage averages (though the variances are all over the place; fine
for a chaos spell).

Major Destruction's power computation was exactly the same as Minor
Destruction, topping out at a paltry 81 power on a max roll. Comparing
the dice definitions for zaps, this meant Major Destruction was on
average only approximately twice the damage of Minor Destruction. With
the high variance (power randomization, zap randomization, then damage
roll) it didn't feel worthy of the significantly higher cost in
training, hp, and piety. This commit doubles the spell-power for Major
Destruction zaps. With the exception of lightning bolt the Major
Destruction zaps are all lower variance than the Minor Destruction
counterparts, so this should feel much stronger at high Invocations.

[ Committer's note: Re-wrote commit message; tweaked power formula and
  zap list. Closes #1879. ]

--------------------------------------------------------------------------------
8915be9327 | Edgar A. Bering IV | 2021-04-18 21:15:37 +0300

Describe the ancestor's special shoot through properties.

--------------------------------------------------------------------------------
ccdeed5ca2 | Edgar A. Bering IV | 2021-04-18 21:15:37 +0300

Remember friendship (PleasingFungus)
Allow the Hepliaklqana ancestor to shoot through the player, symmetric
with the player's ability.

--------------------------------------------------------------------------------
ab74d117c1 | sdynet | 2021-04-18 21:15:36 +0300

Allow projectiles to pass through ancestors
This change will slightly break Hep's balance, but instead I expect that
the player's management QoL will be much better.

[ Committer's note: tweaked where the check goes. Closes #1835. ]

--------------------------------------------------------------------------------
2e39039ceb | Edgar A. Bering IV | 2021-04-18 21:15:36 +0300

Adjust demonic guardian protections
Allow firing enchantments through them and protect them from chain
lightning. Fedhas plants have (unintentionally) had these protections
for 6 years without trouble, so it's better to extend them to guardians
as well instead of changing the Fedhas behavior.

--------------------------------------------------------------------------------
74cc72d83b | Nicholas Feinberg | 2021-04-18 08:45:31 -0700

Don't give djinni stone/bone legs
New tiles for lichform/statue form, irrespectively.

--------------------------------------------------------------------------------
8e1b44f6bd | Kate | 2021-04-18 04:48:17 +0100

Remove an unused ability description

--------------------------------------------------------------------------------
c9ac73bf2f | Kate | 2021-04-18 04:48:17 +0100

Tweak Palentonga charge ability description
To match wording of other abilities.

--------------------------------------------------------------------------------
b38debd254 | Kate | 2021-04-18 04:48:17 +0100

Refactor Word of Chaos
Fixes word of chaos being usable while silenced (via the quiver), and
improves the timing for ability failure. Also improves behaviour around
invisible monsters and monsters that would always be unaffected.

--------------------------------------------------------------------------------
943f6fbcab | Kate | 2021-04-18 04:48:17 +0100

Adjust descriptions for some DS mutations

--------------------------------------------------------------------------------
21ed115f35 | Kate | 2021-04-18 04:48:11 +0100

Simplify player torment immunity checks

--------------------------------------------------------------------------------
4f73a2ec51 | Kate | 2021-04-18 04:47:31 +0100

Simplify Demonic Will handling

--------------------------------------------------------------------------------
0ecb5ae1e9 | Kate | 2021-04-18 02:27:54 +0100

Fix Pan lord pronouns
Currently the unique Pan lords all use they/them - the rune announcement
messaging will need some extra handling if any of them are changed.

--------------------------------------------------------------------------------
eef1433cc0 | Kate | 2021-04-18 02:27:54 +0100

Announce Pan floors with a guaranteed demonic rune
The guaranteed demonic rune vaults are all easily recognised for spoiled
players, and it's also a lot more fun to encourage getting the rune from
one of them compared to a standard random pan lord, so add a message
announcing their presence similar to the one that already exists for holy
Pan.

--------------------------------------------------------------------------------
0ab3ac089c | advil | 2021-04-17 18:22:59 -0400

fix: extra qualifier for mutation check in 3cb69ffe5362
Shouldn't matter, just adds a bit of safety.

--------------------------------------------------------------------------------
3cb69ffe53 | advil | 2021-04-17 18:18:28 -0400

fix: more general code for species mutation fixup
This will more consistently remove species mutations fixed up this way
if they shouldn't be there, as well as add them if they should. This
code is still not very general (in principle this should be readable off
of the species def, but it's tricky to get that right for all cases),
and doesn't handle ds muts.

--------------------------------------------------------------------------------
bab068f60c | advil | 2021-04-17 17:35:15 -0400

fix: Add generic fixups for four dj innate mutations
These are dj-specific so it should be safe to have these fixups. These
mutations may be affected on a small number of games on cko impacted by
the recent ds mutation bug.

--------------------------------------------------------------------------------
c56cccb18a | advil | 2021-04-17 16:28:18 -0400

fix!: reorder demonspawn mutations added in #1852
Commits in that PR added new mutations to the middle of the enum; this
has save compat consequences because this enum is serialized as an int.
This is a bit of an emergency fix to prevent further breakage; the
commit has already gone live on cko, and save compat will get even worse
for impacted games, but we really need to keep this from impacting other
servers.

--------------------------------------------------------------------------------
5bb4860596 | Neil Moore | 2021-04-17 15:48:53 -0400

Clarify that whitespace fixes should be separate from real changes
[skip ci]

--------------------------------------------------------------------------------
72157e4a48 | Neil Moore | 2021-04-17 15:20:49 -0400

Link to coding conventions from contribution-process.md
[skip ci]

--------------------------------------------------------------------------------
fe178dfb49 | hellmonk | 2021-04-17 19:52:18 +0300

Clean up some facet selection checks.
It would be nice to remove the gotos here. Alas,

[ Committer's note: Closes #1852. Rebased, squashed some things, fixed
  up whitespace and braces. Used MUT_TORMENT_RESISTANCE instead of
  altering the behavior of STOCHASTIC and having a separate mutation.
  Tweaked the verb for word of chaos to not suggest divinity. ]

--------------------------------------------------------------------------------
cd13395478 | hellmonk | 2021-04-17 19:52:15 +0300

New "Demonic Will" mutation for the damnation facet.
This mutation provides Will+ and additionally deals a small amount of
retaliatory damage whenever the player beats a monster's will check. This
replaces rF+ as the first rank of the hurl damnation facet; the facet is now
will/res torment/hurl damnation. The theme is something like becoming a
brimstone fiend.

--------------------------------------------------------------------------------
496972007f | hellmonk | 2021-04-17 19:52:15 +0300

New corruption/chaos themed demonspawn tier 3 facet.
The facet begins with two stages of MUT_CORRUPTING_PRESENCE, which has a small
chance to apply corrosion (at either rank) or malmutate (at rank 2 only) any
monster dealt damage by the player. It does not require the player to use melee
to get the effect, but triggers less frequently than black mark. At rank 3,
grants MUT_WORD_OF_CHAOS, an active ability that forcibly blinks away every
monster in los and additionally may ensnare, slow, or fear them at the cost of
medium draining and a cooldown.

--------------------------------------------------------------------------------
02609334a0 | Edgar A. Bering IV | 2021-04-17 19:52:14 +0300

Give torment resistance at level 2 of the damnation facet

--------------------------------------------------------------------------------
1916af9b50 | Edgar A. Bering IV | 2021-04-17 19:52:14 +0300

Remove the stochastic torment resistance mutation
It's removed from the black mark facet and not slated to be added to any
of the demonspawn facet re-works. hellmonk suggested making this
mutation deterministic and give 50% resistance, to be
used in future demonspawn. This is already done by MUT_TORMENT_RESISTANCE
level 1 so there's no need to re-create the effect.

For save compatibility the old mutation applies the new effect.

--------------------------------------------------------------------------------
7767df9f8c | hellmonk | 2021-04-17 19:04:58 +0300

Rework the black mark facet.
Formerly negative energy themed, this facet was relatively weak. This rework
keeps the most interesting mutation and tries to build something new around it.
The new facet is debuff oriented and provides a hex enhancer, followed by black
mark, then a permanent 1 tile silence "donut" aura, providing a wide variety
of debilitating effects for the player.

--------------------------------------------------------------------------------
aeb4ca5a24 | hellmonk | 2021-04-17 19:04:58 +0300

Rework the hurl damnation ability's power scaling.
Previously, hurl damnation used experience level * 10 to determine power.
Power is capped at 200, which was reached at xl 20 - frequently before the
player had the mutation. The new formula is 40 + experience level * 6, which
reaches 200 power at max level and is otherwise weaker unless received
implausibly early.

--------------------------------------------------------------------------------
fc7557d7ac | hellmonk | 2021-04-17 19:04:58 +0300

Add passive freeze to the generic mutation pool.
Perhaps it would be interesting here, where it's not a facet payoff.
I think it's worth a try, at least.

--------------------------------------------------------------------------------
53199a3a11 | hellmonk | 2021-04-17 19:04:58 +0300

Remove passive freeze facet.
It was notoriously bad and had significant mechanical overlap with spiny.
Not worth saving.

--------------------------------------------------------------------------------
066d056d8b | Goratrix | 2021-04-17 08:00:24 -0700

Add variety to boots tiles
This adds back the boots tiles which were replaced in b2ee965 and
enables variation between the tiles, same as already exists for robes
and helmets.

--------------------------------------------------------------------------------
15b55ab828 | advil | 2021-04-17 10:59:39 -0400

docs: fix a typo

--------------------------------------------------------------------------------
9a371d6b8d | advil | 2021-04-17 10:57:51 -0400

docs: Document some commit conventions
There's a bunch of pitfalls that I see coming up in PRs again and again
to do with commit messages, and this tries to make them explicit. My aim
here is to document conventions that we do have, but that are often
unstated or only stated in chat / PR feedback -- but if anyone feels
that I got things wrong or too prescriptive here I'm happy to be
corrected!

--------------------------------------------------------------------------------
ae19ba6e15 | advil | 2021-04-17 10:35:05 -0400

docs: convert coding conventions to markdown
This is much more readable as markdown because of the many code blocks,
and it also lets the document have a working table of contents. There
were a number of minor formatting changes throughout, with some small
content changes, including (i) adding a brief why/TLDR version towards
the beginning, (ii) mentioning the checkwhite/unbrace scripts explcitly,
(iii) documenting some of the more mechanical spacing rules.

--------------------------------------------------------------------------------
f0a3ee54a8 | advil | 2021-04-17 09:30:34 -0400

fix(tiles): Skip pre-layout message rendering
This is basically a followup to 5a74e75d8f72.  Those crashes in local
tiles revealed that the message window is getting rendered before tiles
has a layout, so the message window is width 0; this is basically
harmless but triggers pathological linebreaking behavior that it's
better to skip (and has the potential to trigger rendering glitches,
though I don't think it will currently). Re the removed comment there: I
have verified that the current wrapcprint behavior should prevent
infinite loops even with width 0, as long as linebreaks are correctly
added; the loop will always abort if it runs out of y space. The bug in
cfdca905f5 involved failing to correctly add a linebreak. So restoring
the wrapcol ASSERT should be unnecessary.

--------------------------------------------------------------------------------
407484c6a7 | gammafunk | 2021-04-17 03:25:12 -0500

Rework monsters in a lemuel castle vault
The vault lemuel_castle_with_subvaults has monster placement that's not
much been updated, and still has logic based on Dungeon having 27
levels. This commit reworks the monster and loot placement, giving it
better scaling with depth, with appropriately themed monsters at each
location. It also cleans up the tagging and supporting lua code,
organizing it similarly to our current DES standards.

For monsters in Dungeon, we use the same scaling as ghost vaults, since
this vault places over the same range. Previously it had a specific
theme for each depth (e.g. gnolls then later orcs), but something so
specific is more difficult to scale. Instead we use a mix of gnolls,
orcs, kobolds, and other Bailey-loving humanoid monsters to give us good
variety of monster classes. We introduce different types "guard dogs" as
the depth changes, using hounds after jackals, and also adding in some
howler monkeys, since those are great at rousing the castle army. In the
late dungeon hell hounds and even raiju make an appearance at the back
of the castle.

For Depths, we keep the "giant" theme, since there are enough such
monsters to choose from, and use mostly dragons as the guardian beasts
instead of hound genus monsters, however one may found a shrike or X at
the back of the castle moat. On Depths:5 it places the Zot entrance and
draconian and dragon monsters as before, but with some tweaks to the
composition of those. Keep the death drakes, but use real dragons
instead of a bunch of low-level drakes. Don't thin out the number of "1"
monsters drastically only for Depths:5, rather removing about 8 of these
from the original lemuel subvault, since that one places so many more
than the other subvaults. It still places the most monsters (and the
most loot), just not so many more compared to the other subvaults.

For loot, scale up the type and quality with depth instead of the
thining out numbers earlier. We don't change the monster count  with
depths, so the overall loot count should likewise remain constant.

--------------------------------------------------------------------------------
be84625216 | Kate | 2021-04-17 08:47:24 +0100

Don't allow Manifold Assault to attack projectiles

--------------------------------------------------------------------------------
1fd4cec11e | Kate | 2021-04-17 02:50:03 +0100

Simplify Cleansing Flame description (Yermak)

--------------------------------------------------------------------------------
b2ee965f6f | Nicholas Feinberg | 2021-04-16 18:48:42 -0700

New Sastreii tiles
Hydras + normal & randart boots.

--------------------------------------------------------------------------------
9da5d22180 | Kate | 2021-04-17 01:57:41 +0100

Update MUT_PAWS description (advil)

--------------------------------------------------------------------------------
eb3bcc3169 | Kate | 2021-04-17 01:44:30 +0100

Adjust some stealth handling
Fixes Merfolk and Octopodes not getting their bonus stealth when flying
over water, makes the Jiyva-only translucent skin mutation always give a
full pip of stealth, and removes the marginal stealth penalty and bonus
from hooves and paws respectively.

--------------------------------------------------------------------------------
57dfabebf2 | Kate | 2021-04-17 01:40:43 +0100

Improve known/unknown staircase descriptions (#1621)
Closes #1621.

--------------------------------------------------------------------------------
b18e172e69 | Kate | 2021-04-17 01:40:25 +0100

Adjust Barachi mutation description

--------------------------------------------------------------------------------
e6159548ff | Kate | 2021-04-16 23:37:54 +0100

Update Cleansing Flame description (#12200)

--------------------------------------------------------------------------------
3ad0f943fe | Kate | 2021-04-16 04:06:41 +0100

Remove the Random Bolt spell
It was used only by Mnoleg, whose spellset is focused around spamming lots
of summons so was unlikely to be notable there.

--------------------------------------------------------------------------------
4cfe56dd59 | Kate | 2021-04-16 01:18:13 +0100

Use ancestor pronouns in a transference message

--------------------------------------------------------------------------------
b18131059d | Kate | 2021-04-16 01:18:10 +0100

Simplify a transference message (#1906)
Since the grammar for correctly specifying different types of terrain would
be very fiddly to handle. Closes #1906.

--------------------------------------------------------------------------------
cdb93c67d5 | Kate | 2021-04-16 00:58:36 +0100

Make Serpent's Lash movement take priority over rampaging
It's intentional that rampaging generally takes priority over Wu Jian
attacks, but with Serpent's Lash active the expected behaviour is for
movement to not take any time, so make the instant movements take priority
over rampaging.

--------------------------------------------------------------------------------
31948d8415 | Kate | 2021-04-15 23:10:00 +0100

Shorten the shopping list header slightly
To handle edge cases with very large and expensive shopping lists (10 or
more items costing a total of 10000 gold or more would have slightly cut
off the header message on an 80x24 terminal).

--------------------------------------------------------------------------------
5030419646 | Neil Moore | 2021-04-15 17:58:27 -0400

Be more clear about shopping-list total cost (Nivim)

--------------------------------------------------------------------------------
818bb6d2ef | Neil Moore | 2021-04-15 16:51:36 -0400

Add tests for uppercase and friends.
Including a check (using the Turkish locale) that they handle ASCII as
though we were in the C locale.

--------------------------------------------------------------------------------
3fb6992e63 | Neil Moore | 2021-04-15 16:20:11 -0400

Expand on comma_separated_* tests
1. Also test arrays of strings and arrays of const strings.

2. Also test comma_separated_fn with a non-trivial stringification
   function.

3. Also test alternative values of comma and andc.

4. Also (in a separate TEST_CASE) test comma_separated_fn with
   stringification functions that take a non-string parameter:
   both an actual function pointer, and a std::function.

--------------------------------------------------------------------------------
bc1d1ccee9 | Aliscans | 2021-04-15 11:53:54 +0300

Let the arena create an ironbound beastmasters on request.
Previously, the game terminated (with game_ended_with_error()) if the user 
attempted to create an arena with a M_REQUIRE_BAND monster which didn't create 
a band in the same dgn_place_monster() call.

This change means that the monster is created as if the M_REQUIRE_BAND flag 
wasn't there.

--------------------------------------------------------------------------------
778c41be60 | Aliscans | 2021-04-15 11:53:54 +0300

Explain why wizard mode create monster fails for ironbound beastmasters.
If the user tries to create a M_REQUIRE_BAND monster without a band, say "That 
monster can only be created with a band." instead of "Unable to place 
monster.". The request is still denied.

--------------------------------------------------------------------------------
dafb6c8885 | RojjaCebolla | 2021-04-15 10:38:30 +0300

Create artefact_creation.md
Basic documentation for artefact creation.  Can be expounded on later if needed.

[skip ci]

--------------------------------------------------------------------------------
25969acef8 | Nicholas Feinberg | 2021-04-14 18:48:11 -0700

Display chance to hit with spells (split)
Not chance to miss. This is simpler and consistent with the behaviour
of ranged attacks.

--------------------------------------------------------------------------------
e9c4887cf0 | Nicholas Feinberg | 2021-04-14 18:43:23 -0700

Many many new tiles (Sastreii)
Naga body tiles, ironbound frostheart & beastmaster, and Kryia's mail coat.

--------------------------------------------------------------------------------
d4db56bea9 | CanOfWorms | 2021-04-14 21:38:33 -0400

Minor death yak tile edit (Sastreii)

--------------------------------------------------------------------------------
3ebc474583 | gammafunk | 2021-04-14 20:19:05 -0500

Adjust an overflow altar and fix syntax
For beargit_hepliaklqana_dungeon_heroes, the spawns at Depth D:7-9 were
a bit too nasty, since, starting at that depth, we both introduced
potential gargoyle and vampire ancestor monsters and placed two ancestor
monsters instead of one. Adjust this vault to only place one ancestor
monster at that depth, placing two spawns on D:10-D:12, and placing all
three starting with D:13. Also mix the spriggan "hexer" ancestor on
D:7-9, as this is easier than the vampire.  Down-weight the molten
gargoyle at the earliest depth it can appear.

Also fix the use of backup monster syntax for KMONS. The backup
separator `,` is split first, meaning my `/` alternates were getting
parsed incorrectly, instead being treated as duplicate alternates.

--------------------------------------------------------------------------------
00e00afbbc | gammafunk | 2021-04-14 14:56:40 -0500

Toke up the bong cloud
Add a checkerboard pattern to the vault floor in console and tiles and
make the xom's chess piece always appear in the spot of the bong cloud
king. Also disallow traps, vault rotations, and vault mirroring.

--------------------------------------------------------------------------------
402bc293fc | hellmonk | 2021-04-14 20:54:44 +0300

Very important vault.

--------------------------------------------------------------------------------
a1f0d90d03 | advil | 2021-04-14 11:14:16 -0400

Fix a missed .ico reference for windows installer builds

--------------------------------------------------------------------------------
64c96e512b | advil | 2021-04-14 10:43:11 -0400

Standardize app icon location/naming
These were a bit scattered, leading to potential confusion for
downstream packagers (and me!). I'm not sure if dat/tiles is really the
best place for this, because that will get copied into installs, but it
is at least a place where the most icons already existed. As a
convenience, this pulls in the (currently unused) 48x48 icon from #464.
The svg in that PR was identical to the one that was in util/ so no need
for an additional copy (possible that the copy in util was simply
missed, it was far from an obvious location). For downstream packagers
in the future: rather than adding duplicate icons to the repo, the
preferred process would be to copy them out of `dat/tiles` similar to
how the mac and windows builds now work, and to add any new icons to
this location -- though I think at this point we might have enough to
cover every base!

(Commit caveat: not tested yet on windows, I'm going to let CI do
that...)

--------------------------------------------------------------------------------
931a06d827 | advil | 2021-04-14 09:57:53 -0400

Allow specifying GAME at the make command line
This is sometimes requested by downstream packagers in one way or
another, e.g. as in #464. That PR hardcodes a change for tiles, which
would be pretty reasonable if one were writing this from scratch. But,
there are many secondary build processes that assume the binary is named
`crawl`, so it's a bit tricky to make that change as requested without a
lot of followup pain. Instead, this allows e.g. packagers to invoke the
build process as: `make TILES=y GAME=crawl-tiles` to have a one-step
build process that produces a differently-named binary without touching
`crawl`.

--------------------------------------------------------------------------------
9df88ad596 | mgdelmonte | 2021-04-14 09:29:28 -0400

Added lua item.description
Similar to the recently added `spells.describe` function, this adds the
string `description` to the Lua item object. The description is the same
text one sees in the UI. Helpful for players using scripts to evaluate
relative item values for damage, noise, etc.

[Committer's note: fixed submodules, imported commit description from
PR. Resolves #1894.]

--------------------------------------------------------------------------------
2aa4ecdaef | CanOfWorms | 2021-04-14 01:42:01 -0400

Improve readability of some new tiles
The new yak and wolf tiles suffer from a lack of contrast, which can make it

difficult to make out against specific floor tiles. They also have an added

problem of looking suspiciously similar to zombies due to their colours.

Similarly, the new death yak, catoblepas and hound tiles have contrast issues.



The following edits attempts to fix this issue by adding some bright areas

to each tile to improve visibility against any floor tiles, as well as

tweaking their colours to look less like derived undead. There are also

some silhouette tweaks to help differentiate similar monsters, e.g. hounds

have a smaller tail compared to wolves,  and death yaks have larger and

spikier fur compared to regular yaks.
--------------------------------------------------------------------------------
ec49774fc9 | Nicholas Feinberg | 2021-04-13 20:24:33 -0700

Swap Static Discharge and Swiftness (hellmonk)
Static Discharge to level 2, Swiftness to level 3. The former should
help AE early game and give Vehumet more options for L2 gifts. The
latter seems fine for an already strong spell.

No tweaks to either spell at present. We can adjust damage and duration
respectively as we see fit, but it felt fine in playtesting.

--------------------------------------------------------------------------------
b56dff0882 | Nicholas Feinberg | 2021-04-13 20:12:31 -0700

Fix Freeze death messages
Instead of being blasted by endoplasms, you're now properly frozen.

This may cause horrible bugs with very old high score files, since
I'm re-using the death type from when you could commit suicide with
Ozo's Fridge. I hope not!

--------------------------------------------------------------------------------
3d650569c9 | Nicholas Feinberg | 2021-04-13 19:59:00 -0700

Increase early D book variety
Reduce the rarity threshold for books to spawn on D:1. This allows
the following set to be chosen (without passing an additional 1% chance)

     BOOK_MINOR_MAGIC
     BOOK_MISFORTUNE
     BOOK_CANTRIPS
     BOOK_CHANGES
     BOOK_MALEDICT
     BOOK_CONJURATIONS
     BOOK_NECROMANCY
     BOOK_CALLINGS

Previously, only minor magic, misfortune, and cantrips could spawn on D:1.
(Previous to that, no books could spawn until D:3.)

--------------------------------------------------------------------------------
750d543db3 | Nicholas Feinberg | 2021-04-13 19:22:59 -0700

New Djinni title: Weightless Champion
They're clearly not middleweights! They hover!

--------------------------------------------------------------------------------
30011c25a7 | Nicholas Feinberg | 2021-04-13 19:19:28 -0700

Don't let fleeing monsters aggress (sahdkjhfkaj)
Check the escape flag, not emergency, and add it to a few more spells
that are appropriate to use in a pinch.

--------------------------------------------------------------------------------
d1521fd518 | Kate | 2021-04-12 19:59:01 +0100

Update a comment

--------------------------------------------------------------------------------
133ce1e8f8 | Kate | 2021-04-12 19:59:01 +0100

Fix handling of ARTP_REGEN on amulets (#12561)

--------------------------------------------------------------------------------
e5e4f5c7a4 | advil | 2021-04-12 13:13:52 -0400

Fix sacrifice validity issues + document
A number of crucial checks for sacrifice validity were being done in
`_random_valid_sacrifice`, which it turns out is not used for all
sacrifices (only for ones that involve multiple possible mutations).
This commit abstracts those checks into a static function and also
applies them to all the other sacrifice possibilities in
_sacrifice_is_possible directly. In addition, I've tried to add a few
commenting hints throughout to help this code be more easily understood.
Probably this could use a more thorough refactor.

I've also added another check to ensure that piety is always 0 for
useless skills; I don't think this should do anything on top of the
other checks but it does seem like a useful sanitizer.

Fixes mantis 12545 as well as a similar bug on felids. This happened
when c3fac4b18bf removed a sac armour-specific check into
_random_valid_sacrifice. I'm not sure if anything else would have been
affected, because some or all of the other checks maybe were only
relevant to health/essence/arcana mutations? But this will future-proof
the code a bit as well.

--------------------------------------------------------------------------------
a1c40ef19e | Nicholas Feinberg | 2021-04-12 08:16:13 -0700

New Lich tile (Sastreii)
It's ready to make friends.

--------------------------------------------------------------------------------
39e2d67666 | advil | 2021-04-12 10:41:55 -0400

Try to fix homebrew for mac CI runner
Homebrew is migrating to github for storage, because their previous
provider is shutting off service May 1. There's a brownout right now "to
warn users about May 1st as sunset date for Bintray" (where the warning
takes the form to downstream users of a completely uninterpretable 502
error, but ok). This has revealed that the default mac runner uses a
version of homebrew that is not updated with the correct download
location.  There's various plausible ways to fix this but in absence of
any official guidance I'm starting with just inserting the official
homebrew setup action in hopes that this fixes things up.

--------------------------------------------------------------------------------
d8b25303e3 | advil | 2021-04-12 09:52:02 -0400

Tweak mac universal build targets
The x86 binary seems to build just fine with an earlier min version even
on an OS 11 arm device, so keep it consistent with our previous build
process.  I've only tested actually opening the resulting app down to
10.13 though.

--------------------------------------------------------------------------------
4a88dd77dc | Kate | 2021-04-12 09:27:13 +0100

Update starting screen and manual species descriptions
The manual entries in particular could probably use a larger rework, but
this should at least correct most of the outdated information for that
section.

--------------------------------------------------------------------------------
bf8bb431c4 | Kate | 2021-04-12 06:30:48 +0100

Tweak randart property availability
Attempts to simplify which properties can appear on which types of
equipment. Some properties which shouldn't appear on quick-swappable items
can now generate on amulets as well as armour (in particular Rampage, Harm,
Regen, -Cast and -Tele). rCorr can now appear on any item that doesn't have
*Corrode. +Invis can now only appear on armour and amulets, to limit
swapping to activate it. Some handling for *Tele is removed since it
doesn't generate randomly.

--------------------------------------------------------------------------------
bca1fa7cf8 | Kate | 2021-04-12 06:30:48 +0100

Don't consider flight an active ability
For the purposes of enabling evocations training.

--------------------------------------------------------------------------------
37fc20d06e | Kate | 2021-04-12 06:30:48 +0100

Don't cancel evoked invisibility on unequip
Since evoked invisibility now has a maxHP cost and is only available on
scarves and artefacts, make it just behave consistently with invisibility
from the potion or spell.

--------------------------------------------------------------------------------
d37565c9fb | Kate | 2021-04-12 06:29:49 +0100

Remove the ability to cancel Portal Projectile
There's not really any reason to allow micromanaging it in this way.

--------------------------------------------------------------------------------
825125a692 | advil | 2021-04-11 22:22:55 -0400

Fix mac tiles packaging
Also, restructure mac crosscompilation to use submake, so that
parallelizing helps without creating a mess. (Otherwise, the previous
scheme parallelized across targets, leading to arch incompatibilities.)

--------------------------------------------------------------------------------
86988a4770 | advil | 2021-04-11 22:22:55 -0400

Disable universal CI builds for now
These will need an 11.0 runner, which should come sooner or later. Until
then, disable.

--------------------------------------------------------------------------------
8de5b75ad1 | advil | 2021-04-11 22:22:55 -0400

Attempt to add mac universal builds to CI
Not sure if this will work at all (tbd if github CI runners support
cross-compilation with an arm64 target). But it would be nice if it
does!

--------------------------------------------------------------------------------
62f9e41276 | advil | 2021-04-11 22:22:55 -0400

Fix mac console releases in 10.15+
The location of Terminal.app changed, meaning that the launcher script
didn't work at all. (Guess the lack of reports says something about how
much this release build is used?)

--------------------------------------------------------------------------------
50225284d2 | advil | 2021-04-11 22:22:55 -0400

Support for mac universal builds targeting apple ARM
It turns out that apple clang supports cross-compiling in an extremely
straightforward way for arm64 vs x86_64; building a universal binary
amounts to cross-compiling and then merging binaries with the `lipo`
utility. This also means that producing a universal build on an
up-to-date x86 device should also be possible (perhaps even in CI?).
However, one caveat is that this forces our back-compatibility hand a
bit -- I'm not exactly sure how much since I don't have the devices to
test, but the choice of 10.12 is based on apple docs. I haven't removed
the non-universal app building scheme so we would have the option of
distributing multiple builds.

Because of the somewhat baroque Makefile setup that exists for mac
builds (possibly in combination with my limited knowledge of what the
best way to accomplish this build might be) this is a relatively ugly
patch. I've also found rebuilds to be a bit flaky for reasons I don't
fully grasp, e.g. sometimes a full clean or clean-contrib is needed when
changing targets.

Some other minor cleanups, removing files that (as far as I can tell)
are no longer used.

--------------------------------------------------------------------------------
e866cc41d3 | Nicholas Feinberg | 2021-04-11 17:20:19 -0700

New dread lich tile (Sastreii)

--------------------------------------------------------------------------------
b57c80000f | Kate | 2021-04-11 22:24:10 +0100

Fix tag_upgrade builds
Also fixes Xom chesspieces not displaying on \.

--------------------------------------------------------------------------------
e33e995840 | Kate | 2021-04-11 21:41:22 +0100

Add tiles for the seven-league boots (CanOfWorms)

--------------------------------------------------------------------------------
496ac5bf5d | CanOfWorms | 2021-04-11 02:20:13 -0400

Fix typo

--------------------------------------------------------------------------------
395adb26f7 | Edgar A. Bering IV | 2021-04-11 09:00:56 +0300

Replace wands of random effects with Xom's chesspieces
This commit moves random effects to an XP evoker, and makes it
non-targeted. This is partly for flavour (in order to re-use the amazing
chesspiece tiles), and partly for mechanical distinction. Random
Effects' effect is not something that would be good to teach monsters
(turning random goblins into possible malmutators/paralysis checks
etc.); and random effects was the only remaining wand that monsters
didn't know how to use.

This gives a clear distinction between misc evockers (monsters don't
know how to use) and wands (monsters do know how to use).

The change is also an experiment in high-charge misc evokers, to get a
broader feel for how they play. This is a warm-up for possibly
converting all wands to xp-charging.

--------------------------------------------------------------------------------
ae3e1deef5 | Edgar A. Bering IV | 2021-04-11 08:43:04 +0300

Movement-adjust Palentonga roll
Apply Chei, swiftness, leda's, ponderousness, water, lightning scales,
and frozen movespeed modifiers to the roll time.

--------------------------------------------------------------------------------
78274972cd | Kate | 2021-04-11 06:13:51 +0100

Consider rampaging attacks to be hasty with Chei
Rampaging movement was already considered hasty, but not if it was a step
that resulted in an attack (which meant that the seven-league boots were
never considered hasty).

--------------------------------------------------------------------------------
d1b44281ea | Kate | 2021-04-11 05:47:04 +0100

New unrand: the seven-league boots
Inspired by discussion on mainiacjoe's Wrath of Trog PR and sdynet's
suggestion of giving it infinite-range rampaging, add a new pair of unrand
boots with the full-LOS rampaging property. To prevent full-LOS stabbing they
also wake monsters up when arriving next to them.

--------------------------------------------------------------------------------
ec3affb84e | gammafunk | 2021-04-10 18:25:23 -0500

Some Snake vault revamps
Remove weak snakes genus monsters from older vaults, bringing in the
relatively newer Snake branch serpents in their place and adjusting
monster counts where appropriate. Below are notes on additional changes
beyond this for specific vaults:

minmay_snake_entry_six_corridors: For this entry we use only mambas and
moccasins, since it places in Lair. Concentrate the density of mambas a
bit more towards the center, but allow them to also place down the
corridors. Simplify the placement substitutions.

minmay_snake_pond: Also add in sea snakes, placing only amphibious
snakes in deep water.

minmay_snake_river: Use only anacondas and sea snakes, so the snakes
aren't trapped. Also add loot, so the reward of exploring this long
water cavern isn't just some snakes and empty space.

nicolae_snake_lava_pool: Also and replace lava snakes with salamanders.

Also add more types of salamander genus monsters to vaults that have a
salamander theme:

nicolae_snake_salamander_stairs: Bring in one monster that can either be
a salamander mystic or a tyrant, with chance of the latter increasing by
depth. Simplify the monster placement to use a more typical if blocks
conditioned on depth instead of calculating based on depth. Balance the
salamander placement so that it scales better with depth; the old setup
was very conservative about number of extra salamanders placed. In
addition to the guaranteed salamander "boss", place 2 extra salamanders
on average on Snake:1, 3 extra on average on Snake:2, and 4 extra on
average on Snake:3.

cheibrodos_snake_lava_hold: Buff monster placement so it better reflects
the amount of loot rewarded, which is substantial. Incorporate a
guaranteed tyrant and mix in a few additional mystics.

--------------------------------------------------------------------------------
57c748b47e | gammafunk | 2021-04-10 18:24:58 -0500

Cleanups for snake.des
Add sectioning like we have for other des files, moving decorative
vaults to their own section, and use default-depth instead of having all
vaults specify depth. Clean up some glyph usage and statement alignment,
as well.

--------------------------------------------------------------------------------
0e2820b0bf | gammafunk | 2021-04-10 18:21:55 -0500

Cleanups for spider.des
Remove decor tags that I added to vaults, since we currently have no
mechanism to place vaults according to this tag. Might be nice to adapt,
improve, and generalize logic in swamp.des to place these in other lair
branches.

--------------------------------------------------------------------------------
5e7b979315 | gammafunk | 2021-04-10 18:21:55 -0500

Reorganize shoals.des
Add sections like we have for other des files, moving decorative vaults
to their own section, and using default-depth, so vaults don't have to
specify Shoals depth. Some light syntax cleanup as well.

--------------------------------------------------------------------------------
f450e38dac | Kate | 2021-04-10 23:46:25 +0100

Update Shadow form status description (Mintice)
To match the updated ability description. Closes #1893 PR.

--------------------------------------------------------------------------------
91442b771c | Kate | 2021-04-10 23:46:25 +0100

Tweak Cigotuvi's embrace description

--------------------------------------------------------------------------------
7a51355724 | Kate | 2021-04-10 23:46:25 +0100

Make Hailstorm affect icy creatures
It mainly had this exception so that player IE could use it alongside
Summon Ice Beast without damaging their allies, but with ice beast no
longer in the starting book it's more consistent to have it just deal its
icicle-flavoured damage across the board.

--------------------------------------------------------------------------------
386ccf399c | Neil Moore | 2021-04-10 17:15:02 -0400

Checkwhite (doh)

--------------------------------------------------------------------------------
8df42ad0ea | Neil Moore | 2021-04-10 16:57:41 -0400

Add basic unit tests for comma_separated_line and join_strings
It would be nice to also test comma_separated_line's optional
parameters, as well as comma_separated_fn, but that can come later.

--------------------------------------------------------------------------------
8328ce2b06 | Neil Moore | 2021-04-10 16:57:41 -0400

Avoid a "no previous declaration" warning when building tests

--------------------------------------------------------------------------------
1b49dfe8c2 | Edgar A. Bering IV | 2021-04-10 23:10:39 +0300

Trade Ice Beast for Metabolic Englaciation in the IE Start (Nomi)
Summons have a way of defining a book, especially the mid-level options
like Summon Ice Beast. Lighting Spire was briefly considered and then
removed from the Air Elementalist start for just this reason.

While the positional-magic changes to the book of Frost have made the
book a bit less "the book of SIB" the background still very much ends
up leaning on the spell.

Metabolic Englaciation is an interesting spell and a good fit for the
starting background. AOE slow interacts well with the other starting
spells, but the price is sufficiently high and there's no direct damage,
so it shouldn't outshine in the way SIB does.

--------------------------------------------------------------------------------
420bc2496c | Nicholas Feinberg | 2021-04-10 10:55:46 -0700

Re-tweak dead tree description
Remove a double period.

--------------------------------------------------------------------------------
a5483dda36 | Edgar A. Bering IV | 2021-04-10 20:48:40 +0300

Some petrified tree ruins for the desolation
When the realm was turned to salt some of the trees became petrified
with sediment instead of dying outright. Heartier plants were also
stoned, while weaker ones were reduced to pillars of salt.

Practically petrified trees are added two ways, first a chance to place
scattered petrified trees among the ruins (just as the statues).

Second a few petrified forest ruins as well as a temple to the twin gods
vaguely suggesting a duality between them using trees. Each places
desolation normal monsters and loot.

--------------------------------------------------------------------------------
97c99b9d80 | Edgar A. Bering IV | 2021-04-10 20:48:40 +0300

A petrified tree ecumenical altar

--------------------------------------------------------------------------------
68d955cad3 | Edgar A. Bering IV | 2021-04-10 20:48:40 +0300

Generalize the dead tree description
They slowly migrated out of crypt since the days of evilmike's Crypt:5
ending.

--------------------------------------------------------------------------------
9aecc562e6 | Edgar A. Bering IV | 2021-04-10 20:48:40 +0300

Implement petrified trees
Instead of a vault recolour, let's make petrified trees a first class
feature. The name implies that they should behave like rock in some ways
(be valid LRD targets, be diggable). Implementing them as vault re-tiles
and re-names of statues does this, at the expense of clarity for console
players. The expense is even higher for screen-reader players, who might
go looking for 't' with a reading cursor only to find '8' instead.

As a first class feature, petrified trees can behave like their woody
bretheren in some ways, be vulnerable to LRD instead of fire, and
interact properly with our feature naming/colouring/glyphing systems.

On the vault decorating side, tree_dead is now the variant tile for the brown
colour of trees, and no living tree is assigned darkgrey in console.

There are also vague future plans that might use such a feature: i-x's
Elven Crypt sketch or expanding Desolation into a (rune?) branch. This
feature is implemented in the spirit of "if you build it they will
come".

--------------------------------------------------------------------------------
94b7631ddb | advil | 2021-04-10 12:33:29 -0400

Fix a Na mutation physiology check
In https://crawl.develz.org/tavern/viewtopic.php?f=17&t=27105 a player
reported a naga getting hooves. I think this could have happened because
MUT_CONSTRICTING_TAIL can be suppressed by forms, and the physiology
code only checked the current status of that mutation. So, change the
foot check to check innate status (i.e. constricting tail = no feet
under any circumstances). The other two mutations here aren't
suppressed, but it is still safer to do the check this way.

--------------------------------------------------------------------------------
5a74e75d8f | Nicholas Feinberg | 2021-04-09 21:07:57 -0700

Remove a hairtrigger assert
Too aggressive and caused consistent crashes in local dev.

--------------------------------------------------------------------------------
f56c19cca7 | Nicholas Feinberg | 2021-04-09 20:44:12 -0700

New dead tree tiles (Sastreii)

--------------------------------------------------------------------------------
3b3f0a9232 | Kate | 2021-04-10 02:30:09 +0100

Update draconian knight description
They haven't specialised in necromancy for a while.

--------------------------------------------------------------------------------
86d13463b7 | Kate | 2021-04-10 02:23:34 +0100

Remove monster Ozocubu's armour
Giving a couple of monsters extra AC that's meltable by fire damage isn't
really worth the extra complexity, especially as it now behaves
significantly differently from the player spell since it persists through
movement. Instead just give the two monsters that had it (Fannar and
draconian knights) a slight boost to their base AC (4 and 6 respectively, a
slight reduction from the meltable 7 and 9 that they had previously).

--------------------------------------------------------------------------------
e2a9cca30b | Kate | 2021-04-09 23:29:57 +0100

Give monster purple draconians an extra point of AC
For some reason they had 1 less than other colours.

--------------------------------------------------------------------------------
0e6d9124c6 | RojjaCebolla | 2021-04-09 10:40:54 +0300

Unmeld statueform merfolk boots when leaving water
Changing the check for temporary forms to "true" when leaving water
keeps the boots from falling off. Closes #1875.

--------------------------------------------------------------------------------
80ed8d6641 | RojjaCebolla | 2021-04-09 10:40:27 +0300

Allow detransforming over water if flying
Even if you're [de]transforming into a non-flyer over dangerous terrain,
that's okay if you're currently in flight form. Closes #1881.

--------------------------------------------------------------------------------
638403bedd | Edgar A. Bering IV | 2021-04-09 10:34:01 +0300

Further tweaks to the IRC doc
Closes #1867

--------------------------------------------------------------------------------
9b11d684df | RojjaCebolla | 2021-04-09 10:30:55 +0300

Remove reference to bugzilla
...which is no longer a thing.

--------------------------------------------------------------------------------
d9e0fce532 | Edgar A. Bering IV | 2021-04-09 10:29:44 +0300

Correct a typo (Yermak)

--------------------------------------------------------------------------------
5a49628fc9 | hellmonk | 2021-04-09 10:19:34 +0300

A couple ecumenical altar vaults with monsters
[ Committer's notes: Closes #1872. Toned down monster and item
  placement. ]

--------------------------------------------------------------------------------
b2bd10914a | gammafunk | 2021-04-08 23:41:12 -0500

Add salamander genus monsters to Snake rune vaults
Now that we have salamander tyrants as top-tier Snake threats and thus a
full set of salamander genus monsters at differing strengths, this
commit incorporate these monster types into all Snake rune vaults. At
the low and middle tiers, salamanders replace some plain naga and
salamander mystics replace some naga mages so there's a 3:1 ratio of
nagas to salamanders of the corresponding types. At the high end,
tyrants replace some nagaraja with a 2:1 ratio. These ratios are similar
to those in the population lists, although we're using more salamander
mystics relative to naga mages than the population list does, which is
more like 6:1. So nagas will still get most of the attention, especially
since there are other types like warriors, sharpshooters, and ritualists
where we make no corresponding replacement, but salamander monsters now
play a more significant part in guarding the rune.

I've done some reglyphing, statement reorganization, and syntax cleanup
for these vaults. Some content notes on specific vaults:

snake_pit_salamanders_mu: I've reversed the ratios to place more of
the salamander monsters than their direct naga counterparts, although
plenty of naga still generate in this vault.

grunt_snake_rune_pools: This is a water-themed vault, so I've added a
fire theme that gets chosen 1/3 of the time. For the original water
theme, no salamander monsters place. For the fire theme, it places
salamander monsters with a ratio like snake_pit_salamanders_mu, places
salamanders instead of sea snakes, and replaces deep water with lava.

johnstein_snake_rune_scales: This had a simple nagaraja as an alternate
of Vashnia or as a backup monster if Vashnia has already placed.  Hence
I made the alternate and replacement have a 1/3 chance to be a tyrant
instead of a nagaraja.

--------------------------------------------------------------------------------
64c4f523a5 | Kate | 2021-04-09 02:45:20 +0100

Fix a missing TAG_MAJOR_VERSION check

--------------------------------------------------------------------------------
cfdca905f5 | advil | 2021-04-08 21:26:16 -0400

Fix line_reader wide char wrapping (dilly)
If the line_reader wrapping code hit a wide character on the wrap
column, the wrapping code would go into an infinite loop, and the
process would need to be killed. This could be triggered in search as
well when the previous search was the exact right length to put the
cursor for a following search (since it repeats the previous search) at
the wrap column, and the first character of the new search was a wide
character, then the bug would trigger. Because webtiles still uses the
line_reader console ui behind the scenes, the bug was triggerable in
webtiles this way by just having strings of the right length. This
probably didn't come up for normal usage, but apparently people use the
search box to chat to spectators. (Even worse, a webtiles game killed by
the server in this state doesn't save, so the bug can be used to roll
back a game on demand.)

This commit fixes the infinite loop bug in a pretty straightforward way
(and also tries to better guard against infinite loops there). It also
fixes some fiddly issues with cursor positioning in the case where the
last character of a line is a wide char.

--------------------------------------------------------------------------------
8836bdb7d9 | Kate | 2021-04-09 01:41:22 +0100

Update dispellable monster enchantments
Makes lots of monster enchantments dispellable that weren't previously.
Some could be dispelled on the player but not on monsters, and some were
monster-only magical effects that didn't have any particular reason to not
be dispellable. Also makes some effects non-dispellable: the frenzy effect
from darts (for consistency with other darts), and silver corona, pain bond
and idealise (for consistency with other player god abilities).

In a rare case of favouring the player over monsters, this also makes
monster priestly buffs generally be dispellable - on the player,
god-granted buffs can't be dispelled, but on monsters this isn't feasible
to do consistently, since spells can be either wizardly or priestly in
origin. The previous implementation was very arbitrary (for example, the
regeneration portion of Trog's Hand could be dispelled but not the
willpower; Donald's priestly might and haste could be dispelled, but deep
elf high priests' brilliance aura couldn't be).

--------------------------------------------------------------------------------
e92a7396d4 | Kate | 2021-04-09 00:56:22 +0100

Adjust monster fear display
So that the "scary" descriptor doesn't fall out of sync with whether a
monster is actually causing the player to be afraid.

--------------------------------------------------------------------------------
23531dd7ba | Kate | 2021-04-09 00:26:09 +0100

Allow activating flight while on liquefied ground
It was already possible to fly out of liquefied ground by equipping
flight equipment, so allow it for potions and batform as well.

--------------------------------------------------------------------------------
ce7b1123cd | Kate | 2021-04-08 22:58:22 +0100

Adjust more !cancellation status descriptions
Fixes mesmerisation not displaying in !cancellation's description when it
would be dispelled, and special-cases transformations (which had buggy
descriptions such as "you will no longer be appendages") and flight (which
incorrectly claimed flight would be cancelled when the player had
permaflight).

--------------------------------------------------------------------------------
c46935d415 | Kate | 2021-04-08 22:58:22 +0100

Adjust dispellability of some durations
Flash freeze and sticky flame are now dispellable, and the hidden
"sickening" duration (applied by ancient zymes) is no longer dispellable.

--------------------------------------------------------------------------------
c738167b05 | Kate | 2021-04-08 22:58:22 +0100

Fix protection brand status light (sim)

--------------------------------------------------------------------------------
facc31910f | Edgar A. Bering IV | 2021-04-08 23:24:43 +0300

Remove some weight from the dummy faded altar vault

--------------------------------------------------------------------------------
b020930490 | hellmonk | 2021-04-08 23:09:51 +0300

Several more ecumenical altar vaults
Includes some very small vaults as well as a couple larger ones.

[ Committer's note: small tweaks to code layout and tagging, trimmed a
  few size-wize and some minor tweaks to randomizations. This is all of
  the non-monster placing submissions from #1872 ]

--------------------------------------------------------------------------------
0721f309d1 | Shapermc | 2021-04-07 23:58:08 +0300

New ecumenical altar vaults
The ruins of Machu Picchu inspired these sites for ecumenical altars. I
am aiming to make them feel attractive on the outside to explore, and
unique and random on the inside.

[ Committer's note: Closes #1868. Tweaked some NSUBST lines and ensured
  connectivity. ]

--------------------------------------------------------------------------------
3444a674c5 | ukdong90 | 2021-04-07 23:58:08 +0300

Just one Gnrine
[ Committer's note: Closes #1874. Tweaked and added some tagging. ]

--------------------------------------------------------------------------------
9722c47da7 | Aliscans | 2021-04-07 21:31:45 +0300

Remove Maud from montitle.txt.
Maud has gone, and her ghost cannot use this title, so it's just clutter.

--------------------------------------------------------------------------------
0a00ce863d | Kate | 2021-04-06 02:36:33 +0100

Update SPWPN_PROTECTION's duration short_name
To be more descriptive and to prevent other statuses (like "protected from
fire") matching the webtiles check for increasing AC.

--------------------------------------------------------------------------------
fc3203cb9b | Kate | 2021-04-06 02:21:55 +0100

Fix webtiles display of defense boosts
Some of them had fallen out of date with duration-data.h changes.
Closes #1832.

--------------------------------------------------------------------------------
6cd11ba223 | Kate | 2021-04-06 02:21:55 +0100

Update and extend some duration descriptions
To make them more consistently use an adjective form for the short_text,
and to add long_text for some durations without it.

--------------------------------------------------------------------------------
c0143cd162 | Kate | 2021-04-06 02:21:55 +0100

Adjust some descriptions

--------------------------------------------------------------------------------
22995d6073 | gammafunk | 2021-04-05 18:36:20 -0500

Hilbert curve vaults for Spider by nicolae (12539)
Moved these to their own file, since it's a large series of vaults and
subvaults. I removed the placement down-weighting, since it's not an
extreme vault in any way, and it has a uniq tag to prevent it from
placing more than once.

These vaults can create large rectilinear areas when the layout embeds
them in large areas of rock. To some extend this might be helped by
adding a "fuzzed" CLEAR border to the map, but that would apparently
introduce potential closet areas, and it wouldn't fully solve the issue.
Seems to be a problem all larger vaults have with the cave-like layouts
especially, and I'm not sure if there's an easy solution to that.

--------------------------------------------------------------------------------
8736458e1e | advil | 2021-04-05 11:32:25 -0400

CI: pin a pip version that will work with py27
Pip support for py27 has been dropped entirely in pip 21, so we can't
unconditionally upgrade. This invocation that I found on the internet
somewhere may help.

--------------------------------------------------------------------------------
263514a223 | Nicholas Feinberg | 2021-04-05 08:02:43 -0700

Revert guardgolem dj restrictions (Yermak)
Per request, let players experience the joy of the walking bomb.

--------------------------------------------------------------------------------
e2d0b17c59 | gammafunk | 2021-04-05 00:59:50 -0500

A watery jumping spider vault by nicolae (12539)
Uses subvaults for randomizing the terrain layout. I put this in its own
file as there are over a dozen subvaults. No significant edits other
using of MONS instead of KMONS and statement rearrangement.

--------------------------------------------------------------------------------
810843a28d | Nicholas Feinberg | 2021-04-04 22:39:50 -0700

Add petrified trees (Sastrei)
And a vault to use em.

--------------------------------------------------------------------------------
5cb13e721e | Nicholas Feinberg | 2021-04-04 22:39:50 -0700

Replace trees (Sastreii)
Spring has sprung!

--------------------------------------------------------------------------------
f01432ee17 | Nicholas Feinberg | 2021-04-04 22:39:50 -0700

Make the Axe of Woe blow stuff up
(Don't leave as many corpses around, mostly since they don't have
tiles matching the living versions.)

--------------------------------------------------------------------------------
f93f10960d | Nicholas Feinberg | 2021-04-04 22:39:50 -0700

Improve useless manual messaging

--------------------------------------------------------------------------------
88e0368d9b | Nicholas Feinberg | 2021-04-04 22:39:50 -0700

Tweak sac XL bonus piety
Give ds a little less and give dj the same bonus, since they tragically
lose their l9 spell. Mu lose their second necro enhancer but their
existence is always suffering, so it's hard to tell the difference.

--------------------------------------------------------------------------------
6585edb262 | Nicholas Feinberg | 2021-04-04 22:39:50 -0700

Ban guardian golem for dj w/o summons
This means guardian golem will very rarely show up in dj spell pools,
since they'd have to get one of the few low-level summons before it.
Seems OK.

--------------------------------------------------------------------------------
d1b0476733 | gammafunk | 2021-04-04 23:28:24 -0500

Some monster vaults for Spider by nicolae (12539)
Changes from the submission were minor. Removing some chaff monsters and
introducing some randomizations. Also some of the usual syntax cleanup
and the removal of DEPTH Spider, since we use a default depth now.
Substantive changes described below:

nicolae_spider_acid_house: Use acid dragons instead of harmless jellies.
Don't place as many of these as the vault had placed jellies, but
randomize placement numbers.

nicolae_spider_baby_got_redback: Use a simple binomial for placement
here, trimming the randomized edge placement glyphs so that the average
is about the same. This allows for greater variation in the number of
spiders placed.

nicolae_spider_bzzzt: Randomize monster counts.

nicolae_spider_not_touching_you: Change the SHUFFLE that sometimes mixes
in orb spiders to a subst roughly giving the same average. The shuffle
has hard to parse in terms of what average monster numbers ended up
being.

nicolae_spider_paper_wasps: Don't place junk scrolls, instead placing
any scroll for all item placement, which is less spoilery. Adjust scroll
placement so that we're not giving too many relative to monsters we
place. Also randomize monster placement counts.

nicolae_spider_scorpion_nest: Don't place ordinary scorpions, as those
are far too weak. Place only emperor scorpions, thinning out numbers of
monsters, and introducing randomization of monster count.

nicolae_spider_swamp_cousins: Randomize monster counts. Mark the vault
patrolling, so the non-branch monsters tend to stay in the vault.

--------------------------------------------------------------------------------
e335657cc0 | gammafunk | 2021-04-04 23:28:05 -0500

Some decorative Spider vaults from nicolae (12539)
No major edits to this set, only removing the Swamp DEPTH, as that's now
covered by a default depth. This commit also updates the existing
nicolae_spider_cling_ruins to use better glyphs and cleans up some
syntax.

--------------------------------------------------------------------------------
ed2907cb04 | Kate | 2021-04-04 22:05:56 +0100

Display when boulder beetles are rolling in the monster list
And on examining them, since the information wasn't displayed very clearly
in console in console.

--------------------------------------------------------------------------------
13725f1865 | Kate | 2021-04-04 21:07:13 +0100

Adjust a canned message for Djinn (#12556)

--------------------------------------------------------------------------------
5e6d803879 | Kate | 2021-04-04 19:40:46 +0100

Refactor handling for convoker recall (#8839)
Fixes convokers being immune to cloud damage while reciting recall, but
should behave the same otherwise.

--------------------------------------------------------------------------------
cab673c142 | sdynet | 2021-04-03 08:45:01 +0300

Simplify and rename the Foxfire card
This card had a complicated function. There are many different types of
monsters that appear on this card, but there was no reason to do so.
And some of the summoned monsters appeared hostile. The name was also
not intuitive, making it difficult for users to understand what the card
was doing. The user had too many considerations to make this card
useful.

So I'm going to simply trim this card. The basic feature of this card
is that it summons many fast monsters. Therefore, I want to emphasize this
characteristic clearly. Now this card summons a very large swarm of
bees. In addition, I will change the name to the Swarm to make it easier to
understand what this card is summoning.

If this change is not enough for cards to be useful, I think we can mix
one or two queen bees.

[ Committer's note: Closes #1864. Squashed, rebased, tweaked commit
  message. ]

Update crawl-ref/source/decks.h

Co-authored-by: Edgar A. Bering IV <trizor@gmail.com>

--------------------------------------------------------------------------------
bd7d8addc9 | Edgar A. Bering IV | 2021-04-03 08:44:35 +0300

Update Yred's description

--------------------------------------------------------------------------------
35c287b088 | Kate | 2021-04-03 02:34:42 +0100

Update a check for whether a monster has a body
Used for miscast messages and seemingly nothing else, but this check had
fallen out of date with death cobs no longer being on '%'. Ideally these
kinds of checks shouldn't be based on monster glyph at all since it makes
them very prone to breaking. Also add animated armours, tentacles, and
Murray to the list of monsters without a body.

--------------------------------------------------------------------------------
2be9358107 | Kate | 2021-04-03 02:34:42 +0100

Rebrace

--------------------------------------------------------------------------------
39567a0c06 | Kate | 2021-04-02 22:47:00 +0100

Give player ghosts the correct hands and feet
Since the hand/foot names were based on glyph, they were buggy for player
ghosts. Also give non-classed draconians hands instead of claws.

--------------------------------------------------------------------------------
955cc887ef | Nicholas Feinberg | 2021-04-02 14:17:36 -0700

Gnerf gweapons (split)
oops

--------------------------------------------------------------------------------
90918d6062 | Kate | 2021-04-02 21:01:39 +0100

Don't make Yredelemnul forbid statue form
Since the nonliving conduct is supposed to be gone.

--------------------------------------------------------------------------------
bac1ddba90 | Kate | 2021-04-02 21:01:39 +0100

Adjust some artefact autoinscriptions
Use Fly instead of +Fly since it's now a passive effect rather than an
evocable one. Also adjust *Contam and *Drain to be just Contam and Drain,
so that * consistently indicates an effect that triggers randomly while
equipped (*Noise, *Corrode, *Slow, *Tele etc).

--------------------------------------------------------------------------------
cbadc6d218 | Edgar A. Bering IV | 2021-04-02 19:56:42 +0300

One more credit

--------------------------------------------------------------------------------
0090c0f15f | Edgar A. Bering IV | 2021-04-02 19:29:45 +0300

Update the changelog through 0.27-a0-877

--------------------------------------------------------------------------------
f2a7138e7e | Edgar A. Bering IV | 2021-04-02 19:28:47 +0300

Another credits update

--------------------------------------------------------------------------------
71947af8c7 | Nicholas Feinberg | 2021-04-02 08:56:29 -0700

Fixup _is_damage_threatening (vt)
Correct some old comments and fix an inverted conditional. The
previous logic made damage more likely to be considered threatening
the *higher* your hp was, which was not intended.

--------------------------------------------------------------------------------
fdfa2cc8df | Edgar A. Bering IV | 2021-04-02 18:39:42 +0300

Update the credits

--------------------------------------------------------------------------------
80d416ef6e | kippig | 2021-04-02 18:24:12 +0300

Remove d:1 adder in vault

--------------------------------------------------------------------------------
64e2b160fe | kippig | 2021-04-02 17:08:30 +0300

Add diablo chruch arrival vault
adds a church based on the tristram cathedral from the first
diablo game. To the sides of the church there is a crypt and
through the windows the player can see the lust forest they leave
behind. There's also a baptism font (usually dry) because why not.

--------------------------------------------------------------------------------
695312e83b | stahara | 2021-04-02 17:03:27 +0300

RST manual: escape the vertical bar key for layer toggle

--------------------------------------------------------------------------------
6d840ccb4b | Edgar A. Bering IV | 2021-04-02 16:40:36 +0300

New ecumenical altar vaults from ShaperMC

--------------------------------------------------------------------------------
c4bfac4c02 | Edgar A. Bering IV | 2021-04-02 10:46:33 +0300

Correct exaggerated poison displays
This is a 7 year old edge case that was being hit significantly more
often and more dramatically by the acceleration of poison.

--------------------------------------------------------------------------------
165b36e3f0 | Kate | 2021-04-02 02:24:03 +0100

Make WJC Heavenly Storm grant bonus EV
For such an expensive active ability, it was fairly difficult to use
effectively, since it tries to encourage staying in combat against multiple
foes for an extended time (while making a lot of noise) to gain its
benefits. Grant it a defensive bonus alongside the offensive one to
encourage that use, and slightly reduce the noise to the level of normal
shouts.

--------------------------------------------------------------------------------
f81f37f261 | Kate | 2021-04-02 01:36:49 +0100

Add a Jiyva mutation to engulf monsters in ooze
Applies the engulf effect to applicable monsters (which is approximately
"living/demonic/holy monsters which are the same size as the player or
smaller") when dealing them damage in melee. As long as they remain
adjacent to the player, engulfed monsters take asphyxiation damage over
time and are silenced.

--------------------------------------------------------------------------------
4f44552337 | Kate | 2021-04-02 01:25:15 +0100

Allow engulfing constricted targets
Engulf uses similar checks to constrict but should be able to be applied
independently. Also allow actors which are already constricting something
to engulf as well (not relevant for any existing monsters, but relevant for
player engulfing in an upcoming commit).

--------------------------------------------------------------------------------
7aa06ce512 | Kate | 2021-04-02 01:25:15 +0100

Don't increase engulf damage against water-vulnerable creatures
Since the damage is from being unable to breathe while engulfed (rather than
than being explicitly water-flavoured damage like a Primal Wave for example),
make it deal the same damage to any target that needs to breathe air. Also
add a message when the damage is dealt.

--------------------------------------------------------------------------------
357e685177 | Kate | 2021-04-02 01:25:15 +0100

Improve some engulf handling
Improve some messaging to apply more generally to both water and slime,
and fix some checks being wrong for water-vulnerable creatures.

--------------------------------------------------------------------------------
801a00d0d6 | Kate | 2021-04-02 01:14:43 +0100

Adjust a potion message

--------------------------------------------------------------------------------
ea5aba7016 | Kate | 2021-04-01 22:32:00 +0100

Add some mutation comments

--------------------------------------------------------------------------------
b963882b24 | Kate | 2021-04-01 22:32:00 +0100

Reduce shoutitis and no potion heal from 3 to 2 levels
Both of these are fairly noticeable bad mutations, but they don't gain much
from having so many distinct levels. Reduce them both to 2 level mutations.
Shoutitis 1 has the frequency of old level 1 (and the volume of old level 2),
and level 2 is equivalent to old level 3. No potion heal now reduces healing
by 50% per level instead of 33%.

--------------------------------------------------------------------------------
9529aa9bf3 | gammafunk | 2021-04-01 01:59:26 -0500

Reorganize and fix up Spider and Swamp DES
Add sections to spider.des for entr/decor/monster/rune vaults, moving
vaults to their appropriate sections. Set a default depth of Spider for
non-entry vaults, removing this before the rune vaults, which use PLACE
instead of depth. Remove DEPTH: Swamp from vaults that now no longer
need this. Reglyph and clean up syntax in a few decorative vaults;
others need this as well, but I've just done these few for now. Fix the
section description for decorative vaults in swamp.des

--------------------------------------------------------------------------------
af99fae3ca | Edgar A. Bering IV | 2021-03-31 21:20:45 +0300

Disable ood fuzzing for 8 and 9 spawns.
8 and 9 are specific requests by vaults for an out-of-depth monster with
a certain depth modification. Fuzzing can, early on, turn a 9 into an 8.
This was previously less noticable in early D because of the non-monster
weight in the spawn table. With that removed a D:4 9 can get fuzzed into
something worse than an 8 on a more frequent basis.

0 is not adjusted since it is supposed to be a "typical" spawn, so
should behave just as if the dungeon builder is placing the monster.

--------------------------------------------------------------------------------
6cdc3c0863 | Edgar A. Bering IV | 2021-03-31 20:01:04 +0300

Check explosions separately from pathing for danger (12477)

--------------------------------------------------------------------------------
7f24984a57 | Edgar A. Bering IV | 2021-03-31 19:51:09 +0300

Trigger location effects after a wind blast (12474)

--------------------------------------------------------------------------------
37602865fa | Edgar A. Bering IV | 2021-03-31 18:50:38 +0300

Interrupt travel when blinked by a dispersal trap (12491)

--------------------------------------------------------------------------------
dfebced566 | Edgar A. Bering IV | 2021-03-31 18:42:20 +0300

Don't prompt with a silenced singing sword (12549)

--------------------------------------------------------------------------------
d46e367e5e | Edgar A. Bering IV | 2021-03-31 17:01:21 +0300

Grant wereblood bonuses in agreement with the description (12546)

--------------------------------------------------------------------------------
62f096ca86 | Edgar A. Bering IV | 2021-03-31 16:52:25 +0300

Add some transparency tags to ice cave entries (12503)

--------------------------------------------------------------------------------
031e6c2d63 | Edgar A. Bering IV | 2021-03-31 16:06:48 +0300

Remove a duplicate entry in zap-data

--------------------------------------------------------------------------------
6be897d7e5 | Implojin | 2021-03-31 13:48:14 +0300

Add some missiles to default autopickup
Curare, atropa, dispersal, and throwing nets are all highly useful items
that can save characters. This commit adds them to autopickup by default.

(9 years ago, curare was removed from autopickup in e11df56, for reasons
that have since been obviated. Everything old is new again!)

Closes #1849

--------------------------------------------------------------------------------
b79eb4bb99 | gammafunk | 2021-03-31 04:04:04 -0500

More Swamp vaults from nicolae (12518)
A set of decor vaults missed from the last round of merging nicolae's
Swamp vaults, and a set of vaults that place monsters.

There are some usual edits to syntax, but nicolae kindly reglyphed and
made various other requested changes already, so these were not
extensive. Below is a description of content changes to the monster
vaults:

nicolae_swamp_necromancer_hut: Remove the trivial zombies, such as swamp
drake and water moccasin.

nicolae_swamp_catching_bugs: For the bugs, replace the hornets with a
small chance for spark wasps.

nicolae_swamp_flooded_prison: Replace the trivial spectres with branch
appropriate spriggan rider and spriggan berserker ones. Remove shadows
and wraiths, opting for freezing wraiths and will-o-the-wisps, but
placing fewer of them.

nicolae_swamp_husk_halls: Randomize the number of husks so that we
guarantee two but might place one in all four hallways, and put
randomized 0 spawns in each hallway, a bit closer than the husk, so we
the player can try to use the husk to their advantage.

nicolae_swamp_necromancy_gone_wrong: Don't mark the hydra chamber as
no_tele, since this is not a teleport closet, just a nasty area. Rework
item placement to use more good_item and mix in better loot
potions/scrolls in the relevant items, but make all but the necromancy
book have a 50% chance to place. Spread any generated items out over the
chamber instead of placing them in a big pile.

nicolae_swamp_standing_stones: Make potions and scrolls loot of better
types and spread out loot items instead of placing in a pile.

nicolae_swamp_super_fun_site: Place miasma clouds over water instead of
using toxic bog features, which players won't have seen outside of the
spell.

nicolae_swamp_spooky_pond: Mix in some spooky bog bodies to go with the
spooky wisps.

--------------------------------------------------------------------------------
91c9f2ae56 | gammafunk | 2021-03-31 04:03:15 -0500

Remove unnecessary DEPTH statements
These swamp vaults can use the default depth, which is Swamp, instead of
setting it on their own.

--------------------------------------------------------------------------------
3f109eccf5 | Aliscans | 2021-03-31 11:55:46 +0300

Make acid walls "melt" icy monsters instead of burning them.
Change the message when slime_wall_damage() affects an icy monster from (e.g.) 
"The wall burns the fire elemental shaped block of ice!" to "The wall melts 
...". Ice doesn't burn.

Remove the message for when acid walls affect the player, as 
you.splash_with_acid() hasn't used custom messages since 91b40731d1.

--------------------------------------------------------------------------------
9fcfa7f03e | Edgar A. Bering IV | 2021-03-31 11:18:58 +0300

Update altar vault guidelines

--------------------------------------------------------------------------------
b608904985 | Edgar A. Bering IV | 2021-03-31 10:52:28 +0300

New ecumenical altar vaults
We still need more of these, but this is a start. A collection of small
vaults placing the faded altar plus a bit of decor, some of which
suggests an old temple (webs, ruins, etc.) or place of worship.

There still aren't enough, so to keep them fresh the weight of the basic
vault is increased. Hopefully by the next release we'll have plenty of
vaults.

--------------------------------------------------------------------------------
9d1eab6076 | Edgar A. Bering IV | 2021-03-31 10:51:54 +0300

Adjust existing ecumenical altar vaults
Add a bit more randomization, fix global header style.

--------------------------------------------------------------------------------
634789ea28 | Edgar A. Bering IV | 2021-03-31 10:51:54 +0300

Move ecumenical altars to their own des file

--------------------------------------------------------------------------------
b7e72e7e12 | Edgar A. Bering IV | 2021-03-31 10:51:54 +0300

Enforce overflow temple depth restrictions in the builder
Overflow temples can place one of two ways: via the overflow temple
placement mechanism and as depth-selected minivaults with the
uniq_altar_FOO tag.

This commit constrains overflow temples to be eligible for minivault
placement only after the end of overflow temple depth.

On the des side this makes vault specification cleaner and future
robust; overflow vaults no longer need to know the specific overflow
temple range. Not all overflow vaults could place as minivaults, and a
minivault placement would override the later overflow placement, which
meant some downweighted special vaults were extra rare (sad!). Now they
work together a bit better

For dungeon geography and gameplay, the combination of this change with
the preceeding sequence adjusting altar placement means that each temple
god gets exactly one guaranteed altar in the overflow range. This should
give a bit more verve to the milestone of finding a god in the early
game as well as equalize the chances of finding a given god by D:10, and
make the chance early altar and early ecumenical altar feel more
stand-out.

--------------------------------------------------------------------------------
594c3d14ea | Edgar A. Bering IV | 2021-03-31 10:51:54 +0300

Shift overflow temples deeper, increase ecumenical altars
Ecumenical altars suffer from the fact that they don't always show up
before identified altars; the choice becomes more about a conduct than
the chance to gamble for a serious advantage. This commit moves all
overflow altars to D:3-. Combined with the previous commits, this means
that the only way for an altar to appear on D:1-2 is via the basic_altar
vault, which is given an explicit chance of 33% on D:2.

Ecumenical altars are given a 50% chance for each of D:1-3. This makes
for an 87.5% chance of seeing one, and a 50% chance of seeing one before
any identified altar.

There is some concern that placing an ecumenical altar on D:1 will
encourage startscumming, but a player who would quit on D:1 because they
didn't like their ecumenical roll would probably also quit on D:2.

--------------------------------------------------------------------------------
6dff9fb094 | Edgar A. Bering IV | 2021-03-31 10:51:54 +0300

Fix some item specs in altar vaults

--------------------------------------------------------------------------------
a37c644b7a | Edgar A. Bering IV | 2021-03-31 10:51:54 +0300

Fade the altars in serial_column_ruins
It fits so well with the theme, and also the strict control over
identified altar placement in D:1-10.

--------------------------------------------------------------------------------
ef54952615 | Edgar A. Bering IV | 2021-03-31 10:51:54 +0300

Remove decorative altars from early D vaults
This either adds conditional placement, simply deletes the altar, moves
the depth range out of D, or turns the vault into a proper overflow
temple depending on the vault tweaked.

This is part of a sequence of commits giving the dungeon builder more
control over the placement of early altars where they have a large strategic
impact.

--------------------------------------------------------------------------------
aef5f389f5 | Edgar A. Bering IV | 2021-03-31 10:51:54 +0300

Move non-overflow altar vaults out of D
To give more fine-grained control over altar placement in D. Some
generic vaults become overflow temples, the rest have their placement
adjusted.

This change is not applied to non-temple gods, who are special and can
do their own thing.

--------------------------------------------------------------------------------
3f101e3ede | Edgar A. Bering IV | 2021-03-31 10:51:53 +0300

Place fancy overflow temples only as overflow temples
Most of these were missing one of the two overflow tags, so could only place as
minivaults (sad!). These are flashy, to keep them from getting over-used
now that their tags are fixed I've made them all overflow-only for the
time being.

If they become depth-eligible again then the overflow_depth function in
overflow.des will need to be moved into an accessible scope.

--------------------------------------------------------------------------------
d615d5975c | Edgar A. Bering IV | 2021-03-31 10:51:53 +0300

Unify and overhaul depth and tags of overflow temples
Some old overflow temples were incorrectly tagged, and weren't treated
as overflows; or had DEPTH specifiers and interest checks as if they
were aimed to place as mini-vaults but lacked the necessary tag to be
eligible for placement.

This commit adds a section to the vault guidelines explaining how to tag
and annotate overflow temples and edits the existing temples to fix up
some old ones and bring everything into compliance.

It also adds some future proofing for overflow temples that include a
DEPTH specifier, by having all of them call `: overflow_depth(_G)`. This
allows for easier global changes to overflow altars (coming soon!).

--------------------------------------------------------------------------------
fc908b8576 | Nicholas Feinberg | 2021-03-30 20:27:24 -0700

Flip turn dragons rightways (gammafunk)
Also brighten up swamps and fires.

--------------------------------------------------------------------------------
365ecc8b8e | Nicholas Feinberg | 2021-03-30 20:13:52 -0700

Many new tiles (Sastrei)
Destroyer, Rockslime, Lom Lobon, most dragons, and Crazy Yiuf.

Plus a tweak to the hound tile, and I removed fire drakes while I
was at it.

I made minor cosmetic edits to some tiles. Sorry, Sastreii!

--------------------------------------------------------------------------------
cb938e01ab | Nicholas Feinberg | 2021-03-30 19:50:08 -0700

Finish the preceding commit
Oops.

--------------------------------------------------------------------------------
0ae26c12d3 | Nicholas Feinberg | 2021-03-30 19:45:59 -0700

Dehydrate quicksilver oozes
Don't claim they engulf the player in water.

--------------------------------------------------------------------------------
d5c7c66f0a | Nicholas Feinberg | 2021-03-30 12:42:53 -0700

Nerf hobgoblin damage a little bit
Pulling back on very early-game lethality again.

--------------------------------------------------------------------------------
39f900b3a3 | Nicholas Feinberg | 2021-03-30 12:42:53 -0700

Remove D:1 halberd gnolls
In line with removing d:1 gnoll bands and gnolls with nets, give players
a little longer before experiencing the true, unadulterated terror of
Gnoll. (Unless they're playing gnollcrawl.)

--------------------------------------------------------------------------------
a1c911b16d | advil | 2021-03-30 10:40:16 -0400

Tweak the fsim test
This test was using a mifi and is therefore impacted by shield skill in
a way that is somewhat orthogonal to the point of the test (e.g. the
results changed with 0b64aa269c0). Switch to a migl.

--------------------------------------------------------------------------------
6b54cd8ccd | advil | 2021-03-30 10:20:12 -0400

Fix a warning

--------------------------------------------------------------------------------
8289197e94 | Aliscans | 2021-03-30 08:16:52 +0300

Disable spellcasting skill gain for new berserkers.
If automatic training was set, and the skills the player actually used all 
reached 27, the game would start to train the other skills, including the magic 
skills. This means that someone could offend Trog by training magic skills 
without casting a spell or visiting the skill management screen.

This change turns magic skills off at the start of the game for a berserker (as 
already happened when you joined Trog at an altar), and avoids that possibility.

--------------------------------------------------------------------------------
bb90f61fe4 | advil | 2021-03-29 19:33:39 -0400

sdl2 contrib: fix the build for ARM macs (12407)
Basicaly just a missing include, seems to run fine with this fix.

--------------------------------------------------------------------------------
08ebd167ff | advil | 2021-03-29 19:02:23 -0400

libpng contrib: Force-disable neon optimizations on ARM (12407)
This is apparently buggy, and preventing M1 builds from succeeding.

--------------------------------------------------------------------------------
dbc16e4eb9 | Kate | 2021-03-29 23:07:23 +0100

Fix randart flight property not granting flight (MarcB)

--------------------------------------------------------------------------------
ca8104f8d5 | Kate | 2021-03-29 21:20:09 +0100

Revert "Prevent draconians from getting armour troves"
This commit didn't actually properly do the thing it claimed to do
(trove_armour_1 could generate for draconians), and it also wasn't really
necessary since draconians would still generally get lots of good aux armour
from these troves.

It also tried to prevent draconians from being asked for enchanted dragon
armour as a trove toll, but this only worked on <XL7 draconians with no colour
yet. The dragon armour toll functions mainly as a tax on enchant armour
scrolls, which are just as useful for draconians as for a number of other
species with reduced armour slots, so is fine to keep enabled.

This reverts commit 62faa89a7ed0f09c553b4d46906d7504b5d1229d.

--------------------------------------------------------------------------------
0efe349d99 | Edgar A. Bering IV | 2021-03-29 11:03:26 +0300

Swap Blade Hands and Hydra Form
Blade Hands is an ``endgame weapon'' that a background starts with.
Level 5 made it rather castable in medium armour by the midgame, and
reasonably castable in plate.

Hydra Form can, at high power, do more damage than BH. However it is
defensively weaker. At lower skill it is outshone both offensively and
defensively by BH. At high skill it still suffers from defensive
weakness, especially when compared to Dragon Form, which isn't much more
expensive than high-power Hydra Form. Considering that both Hydra and
Dragon forms must be found and appear in a common book, this puts Hydra
Form in an unfortunately awkward spot.

Its defensive weaknesses make it less of an ``endagame weapon'' spell,
so let's try it at Level 5 in the starter book, and move Blade Hands to
level 6 and out of the starter book.

--------------------------------------------------------------------------------
61718b20ed | Edgar A. Bering IV | 2021-03-29 10:43:25 +0300

Slow down Sif book gifts
Sif gifting occured very frequently at 5* piety (relative to the gift
timeout). As a consequence, reaching 6* piety for Sif took inordinately
long (especially if the player was also spending piety). For mechanical
purposes, the practical impact was a brake on how many times Exegises
could be used, but if we want to control that we should use piety cost.

From the gamefeel side the consequence was awful. Players like reaching
6* with their god, it feels good.

This halves the chance of getting a gift from Sif when the gift_timeout
is 0, which brings her gifting rate closer to Trog and Oka.

--------------------------------------------------------------------------------
6f01079394 | Edgar A. Bering IV | 2021-03-29 10:31:00 +0300

Speed up scorpions
1b1bd85602a removed ants as indistinct amid the mix of early to mid
poison monsters. The one distinct feature that's sad to go was worker
ants speed 12, which made them exciting in the early parts of their D
range where they appeared alone.

Scorpions are only slightly different from worker ants stat-wise, so
this experience can be kept by making them a little zippier.

--------------------------------------------------------------------------------
1df3e3e19a | Edgar A. Bering IV | 2021-03-29 10:28:42 +0300

Bring back big slow Ogre hits
Attack delay simplification is a good thing, but the implicit mechanic
of slow Ogre swings with big fat weapons was a loss. Let's restore it,
explicitly with attack energy instead of implicitly from weapon delay.

--------------------------------------------------------------------------------
058290f16d | Kate | 2021-03-29 06:18:18 +0100

Remove some obsolete mutation tests
With slow metabolism gone there aren't any mutation pairs with only level 0
compatibility, and scales no longer have a limit of 3. Also update the
simulated potions of mutation in the test.

--------------------------------------------------------------------------------
41e92d2c55 | Edgar A. Bering IV | 2021-03-29 08:07:41 +0300

Restore the gnoll net equip rate
Before the addition of ironbound beastmasters it was 1 in 20;
after, because of fallthrough, it became 1 in 200.

--------------------------------------------------------------------------------
f37df41499 | Kate | 2021-03-29 05:16:19 +0100

Fix tag_upgrade compilation

--------------------------------------------------------------------------------
5cefef2e54 | Kate | 2021-03-29 04:16:46 +0100

Remove the blink mutation
It was the final remaining random mutation that provided an activated ability,
most of which were removed in the distant past due to providing fairly
forgettable effects. The ability to blink is strong but still duplicates both
a spell and randart property, so isn't really distinct enough to be worthwhile
as an exception to the rule of mutations being passive.

--------------------------------------------------------------------------------
9cdcd136b3 | Kate | 2021-03-29 04:16:46 +0100

Allow Ru's -Scroll as a random mutation replacing Blurry Vision
Blurry Vision is a strong negative mutation but is quite messy in how its
effect works. Making an action that isn't normally delayed into a delay has
strange consequences, with the timing of when the world and monsters get to
react compared to when the scroll comes into effect changing in a confusing
way.

Instead allow Ru's existing sacrifice scrolls mutation as a random bad
mutation, since this has a similar strong effect of limiting scroll usage but
is much clearer in its effects.

--------------------------------------------------------------------------------
66c8afceed | Kate | 2021-03-29 03:39:16 +0100

Rework scale mutations
There were a huge number of scale mutations, and characters were limited to a
maximum of 3 levels across all of them. This was intended to prevent
heavily-mutated characters from gaining massive AC bonuses from lots of types
of scales, but as a result it was unlikely to reach the third level of any
individual scale mutation (which is where many of them were differentiated by
providing a resistance).

Instead remove the scale cap of 3 levels, but make most of the scale variations
that provide AC and a resistance unique to Demonspawn - distortion field and
the rF/rC/rPois/rElec/rCorr/+HP scales are now all DS-only.

Iridescent scales (+AC only) are removed from the DS mutation pool and remain
as a random mutation for other species. Bone plates, thin skeletal structure
and sturdy frame also remain available as random mutations, and no longer
conflict with each other.

--------------------------------------------------------------------------------
3ac44f607f | Kate | 2021-03-29 03:17:49 +0100

Fix a description typo

--------------------------------------------------------------------------------
a80ff184b9 | Kate | 2021-03-29 03:17:41 +0100

Remove some obsolete ability descriptions

--------------------------------------------------------------------------------
a052575696 | Kate | 2021-03-28 22:05:32 +0100

Update white draconian ability descriptions

--------------------------------------------------------------------------------
aedb56b00e | Kate | 2021-03-28 21:43:38 +0100

Update and reword some item and ego descriptions
Update outdated descriptions, and amend some others to be more consistent.

--------------------------------------------------------------------------------
f5e90e4038 | advil | 2021-03-28 15:22:26 -0400

Reorganize and namespace most of species.cc
This restructures functions that query a species_type for information
into a namespace with somewhat more consistent function naming. There
are a few small related reorganizations that happened along the way as
well, e.g. several inline functions were made real, some calls to
species checks were replaced with player checks, etc.

There's no deep reason for keeping the non-querying functions out of
this namespace except that I got a bit tired of refactoring.

--------------------------------------------------------------------------------
60bc5d92e6 | advil | 2021-03-27 22:41:19 -0400

Speed back up flying over water (shummie)

--------------------------------------------------------------------------------
786e8a857c | gammafunk | 2021-03-27 21:21:57 -0500

Updates to a Hepliaklqana overflow altar vault
For beargit_hepliaklqana_dungeon_heroes, rework the monster list and
scaling for better variety and thematic consistency. Give early 'hexer'
monsters wand of charming, which is effectively player confusion,
instead of wand of random effects, which has too much 'spell damage' in
its theme.

Use kobold brigands for early hexers, giving them datura darts later on.
Introduce vampires as alternate along with the existing spriggans, since
the former have the confuse spell. Use Edmund in the 'knight' role,
similarly to how we use Sigmund as a hexer. Also use gnoll sergeants in
the knight ancestor role as alternates for the existing orc warriors.
For later dungeon, add skeletal warriors as alternates in the knight
role, and also introduce molten gargoyles as battlemages as alternates
alongside the existing ogre mages. Finally, for Depths battlemage
monsters, use tengu reavers and ancient champions, since these have
reasonable spell sets.

For monster equipment, scale it a bit better, more consistently matching
the weapons uses by actual ancestors where possible. Introduce
appropriate body armour and scale up equipment with good_item as depth
increases, eventually allowing randarts for weapons.

Change the Dungeon depth cutoffs to better match balance of the updated
monsters. Players on D:2-D:6 fight one randomized ancestor, those on
D:7-9 fight two, with the player fighting all three for D:10- and
DEpths. Also simplify the randomization, using simple NSUBST instead of
lua, reindent, and clean up line continuations. Closes #1821.

--------------------------------------------------------------------------------
6173640e58 | kippig | 2021-03-27 20:23:37 -0500

A Hepliaklqana Heroes altar overflow vault
Comitter's Note: This vault is themed as having the player fight
"ancestor" monsters of the three types, Battlemage, Hexer, and Knight,
using branch and depth appropriate monsters with specialized equipment
matching the Hep ancestors. At early depths, players fight only one
randomly chosen ancestor, but eventually they fight all three. The
monster's equipment "upgrades" with depth of placement, matching how Hep
ancestors upgrade with player XL. The "hexer" monsters often rely on
wands early on, since appropriate monster with the relevant spells may
not be available. A subsequent commit reworks many of the monsters'
details.

--------------------------------------------------------------------------------
913bf40136 | advil | 2021-03-27 20:02:11 -0400

Remove more old flying stuff
Perhaps this will fix the tag upgrade build.

--------------------------------------------------------------------------------
3cf08ec375 | advil | 2021-03-27 19:35:03 -0400

Simplify MUT_NIMBLE_SWIMMER
Following suggestions from kate and PleasingFungus, this changes Op and
Mf to get their water bonuses even while flying. Contra the earlier
discussion, I didn't remove the stealth bonus, since the flavor didn't
seem too weird (if anything, a flying Op blending in near water seems
easier to me than Mf moving faster). But, it wouldn't be too hard to
remove this.

--------------------------------------------------------------------------------
cb349572af | advil | 2021-03-27 19:35:03 -0400

Simplify flight
There are now very few reasons for the player to micromanage flying
status. This commit therefore removes the interface for doing it. Like
monsters, if the player *can* fly then they are flying:

* flying items cause you to fly while wearing them, rather than
  requiring an evocation.
* Species and form flight -> always flying, like Djinni.
* Emergency flight and potions should be unchanged.
* the abilities to start and stop flying are removed, as is
  ATTR_FLIGHT_UNCANCELLABLE and ATTR_LAST_FLIGHT_STATUS.

The one remaining special case I know of (pointed out by Kate) is that
Op and Mf have incentives not to fly; I'll deal with that in a separate
commit.

The old flying code had so many weird interactions that there may still
be special cases that don't work right here...

--------------------------------------------------------------------------------
be893936b8 | Edgar A. Bering IV | 2021-03-27 23:35:54 +0300

Another poison correction

--------------------------------------------------------------------------------
029fd2ff89 | Edgar A. Bering IV | 2021-03-27 20:45:29 +0300

Correct some poison magic numbers (12544)

--------------------------------------------------------------------------------
212f9d8316 | Edgar A. Bering IV | 2021-03-27 19:56:08 +0300

Correct static discharge resist message order

--------------------------------------------------------------------------------
e6ed7f9ff8 | Edgar A. Bering IV | 2021-03-27 19:56:08 +0300

Correct Freeze messaging
Correctly display attack punctuation for players and monsters, and
appropriately print resist checking messages when players are hit with
monster Freeze.

--------------------------------------------------------------------------------
0f416b50e7 | advil | 2021-03-27 12:41:04 -0400

Rename and document a #define for downstream use
Downstream packaging targeting reproducible builds may set file mtimes
to a stable value, e.g. 0; see #1702. Unfortunately .des cache
invalidation relies on mtime, so this ends up breaking under these build
conditions. This commit is aimed to refine and simplify the advice I
gave in that issue thread: versioned des cache directories are now our
(or at least my) official recommendation for dealing with this
situation. This change makes it clearer that this option is not tied to
DGL, and provides a hint about the option directly in the Makefile. I've
tested this and it seems to work fine on its own.

Resolves #1702

--------------------------------------------------------------------------------
27d10ad80f | Nicholas Feinberg | 2021-03-26 18:35:05 -0700

New Iron Golem tile (Sastrei)
Plus, de-rim Manticore.

--------------------------------------------------------------------------------
f314fb5061 | Nicholas Feinberg | 2021-03-26 17:32:17 -0700

A bevy of new tiles (Sastrei)
Goliath Frog, Manticore and Quicksilver Ooze. Get your mind out of
the gutter!

--------------------------------------------------------------------------------
e5c3fa52fd | Neil Moore | 2021-03-26 16:45:53 -0400

Use shrunken reencoded molluscs
That is, convert the smaller version of title_anon_octopus_wizard.jpg to
a .png.  Not only does the Makefile assume .png for title screens, but
client.html was already referring to the (missing) .png file.

Also, remove the larger-resolution copy of the .jpg.

--------------------------------------------------------------------------------
38526b5af1 | Kate | 2021-03-26 20:43:44 +0000

Don't allow force-targeting spells when Xom is casting them
Since it'd allow cancelling out of the spell.

--------------------------------------------------------------------------------
d86de039f5 | Nicholas Feinberg | 2021-03-26 13:08:46 -0700

New octopus wizard title screen
Source: 
https://crawl.develz.org/tavern/viewtopic.php?f=17&t=23228&p=308883&sid=73a8cc49
84fe0311df8fb40206007884#p308883

CC0'd by artist. Asked not to be credited.

--------------------------------------------------------------------------------
8e0dbb66be | advil | 2021-03-26 12:51:12 -0400

When force-swapping a ring, skip unequip effects (11879)
Sacrifice hand, then there is a free ring slot, would apply unequip
effects on the move, setting up an odd situation for players wearing
only one ring on the sac hand target; they should have taken steps to
get the ring on their other hand (e.g. by juggling rings, or setting
jewellery_prompt = true). I had previously semi-resolved the most
annoying point for this bug by making the default ring hand distinct
from the default sac hand, but this led to display issues. This commit
resolves the bug in a different way, by basically force-moving a ring in
this situation while not applying penalties. It also doesn't prompt the
player to rewear the ring if there is a bad inscription.

Basically, this is intended to make sac hand have no effect on any
scenario where a player is wearing one ring (though there is still some
messaging).

--------------------------------------------------------------------------------
a16a6a3dab | advil | 2021-03-26 12:51:12 -0400

Refactor some arm order stuff, again
This changes how arm order is handled from efe1b4415. There, I tried to
make things more consistent by providing the arm to be sacrificed as the
last element of a vector. This unfortunately has run up against
inconsistencies with display order, where it is better to show the left
arm first (when there are two). Instead, localize the missing hand
calculation to species.cc. It might be better to change the sac
hand target, but I don't want to deal with the save compat involved.

This commit is a regression for 11879; the default ring target is now
once again the left hand (also the sac target).

--------------------------------------------------------------------------------
8ff0b3a6de | Nicholas Feinberg | 2021-03-26 07:42:44 -0700

Tweak Dj job recs
Don't recommend berserker, do recommend transmuter. Might be fun?

--------------------------------------------------------------------------------
6bb3289e1e | gammafunk | 2021-03-26 00:16:58 -0500

checkwhite player.cc

--------------------------------------------------------------------------------
dcf64ac7a9 | gammafunk | 2021-03-25 22:25:00 -0500

Updates to Hell entry and vestibule vaults
In line with the removal of weaker Depths monsters, update the Hell
entry vaults to place nothing worse than a tier 3 demon-wise and to
update other monsters where appropriate.

Likewise update the vestibule subvaults in a similar fashion, so that
players coming from Depths won't be confronted with e.g. white imps. The
Hells still place plenty of chaff monsters, but those at least have Hell
effects and other much stronger monsters we don't use the in the
vestibule.

--------------------------------------------------------------------------------
cb5310748e | gammafunk | 2021-03-25 22:25:00 -0500

Updates to monsters in Depths encompass vaults
Some changes to three Depths encompass maps in line with updates to
vaults in 9d5772c0. This commit only handles encompass maps; future
commits will address float and minivaults for Depths.

map lemuel_river_lethe

This vault has some idiosyncratic monster placement that's definitely
due for an update. Replace the arrival hell hounds with spectral
monsters, reinforcing the undead theme the map has, and replace weak
spectrals and simulacra with spectrals drawn from the Depths monster
set, which will generally be strong. Remove weaker monsters such as
dancing weapons and skeletal warriors, giving suitable upgrades such is
iron dragons, vampire knights, vampire mages, and deep elf death mages.
Slightly buff loot in a couple places. Remove the guaranteed potion of
brilliance under each orange crystal statue, which is not necessary and
also a relic from when that potion granted Int.

Reglyph certain symbols that override existing definitions and simplify
shuffle/subst/nsubst.

box_level_dp

Update this map to have more coherent monster sets and loot
distribution. For the outside area, instead of four monster themes of
elves, tengu, spriggans, and a mashup of giants and humans, make two
themes of elves+tengu and spriggans+giants. These new sets use only
monsters appropriate for Depths, instead of pulling in lower-HD monsters
from previous branches. Also update the bee area to have only meliai and
a smattering of spark wasps, since killer and queen bees pose no threat.
The meliai run the hive, but some wasps are raiding it! Update the
potion loot in this area to not be only ambrosia, but any kind of
potion, just with less instances.

Also remove the guaranteed reflection amulet and scrolls of
teleportation loot items in the central box. Both are vestiges of
earlier versions of crawl where the teleport traps worked out of LOS to
disperse monsters. I'm not sure that the teleport scrolls ever did
anything meaningful, but the reflection amulet was actually stasis at
one point, presumably to allow a (single) monster to be immune to the
traps. In any case, neither need to be explicitly given as loot; the
vault gives a high amount of loot as it is, including 16 superb_item.

hangedman_crystal_crosses_colossus

Minor updates to monster lists. Replace nagaraja, which didn't meet the
flavor text's described theme of elemental magic, with the new
salamander tyrant. Also replace lower-level elves with deep elf
elementalists. Former can't use their awaken earth gimmick, but they can
hit harder with fireball and likewise have freezing cloud. Replace weak
simulacra with stronger ones, shock serpents with spark wasps, since we
have those for Depths now. Remove mana vipers, since those are
relatively weak and don't match the elemental theme.

hangedman_spin_cycle

Update the Depths and shared Dungeon/Depths monster sets. For the
latter, replace boggarts with glowing orange brains, orc knights with
spriggan berserkers, and naga mage with salamander tyrant. For the
Depths-only sets, replace deep elf knights with deep elf death mages and
orc high priests with spriggan air mages. Also replace death knights
with liches and merfolk aquamancers with tengu reavers. Finally, move a
lua block into braces.

--------------------------------------------------------------------------------
a30e6d9879 | gammafunk | 2021-03-25 22:25:00 -0500

Rework an altar vault
The vault due_chaos_kobolds placed kobolds with distortion or chaos
weapons in late branches for flavor, but we're moving away from chaff
monsters in late game areas. This commit reworks the vault to be a runed
door vault that places in most of Dungeon, using depth-appropriate
Kobolds with ugly thing monsters mixed in for later depths.

--------------------------------------------------------------------------------
bcfb333f5d | gammafunk | 2021-03-25 22:25:00 -0500

Make some monster item functions more available
The function ghost_monster_weapon() had been previously used only for
ghost vaults, but this functionality is useful for any vault that wants
to specify thematic monster weapons. This commit moves the function and
associated table to dgn.monster_weapon() and fix up documentation of
both the table and the function.

Also rename random_item_def() to dgn.random_item_def(), to be consistent
with use of the dgn namespace. Adapt all the vaults currently using
these functions to the new names.

--------------------------------------------------------------------------------
a1918b6f54 | kippig | 2021-03-25 22:25:00 -0500

Revamp Depths vaults to match the monster table
Committer's Note: This commit updates some Depths vaults to replace
relatively trivial monsters with more suitable ones, in line with recent
changes to the Depths monster lists. I've cleaned up this commit's
title, cleaned up a comment for grunt_enter_depths_giant_problem, and
tweaked the monster list in hangedman_depths_entry_civil_slaughter in
addition to what was done in the original commit. Subsequent commits
make further updates to these vaults and other Depths vaults not covered
by this commit. Closes #1791.

--------------------------------------------------------------------------------
b2075fc2c6 | Nicholas Feinberg | 2021-03-25 20:04:18 -0700

Simplify Tutorial 2
Devolve the more complex endoplasm into a simpler ooze.

--------------------------------------------------------------------------------
3740f5f239 | Nicholas Feinberg | 2021-03-25 19:55:18 -0700

Improve dj msg order (rydianmorrison)
Memorize the spell after telling the player about it, so that
associated messages (e.g. rcfile remapping spells to another letter)
print after you learn what the spell in question is.

--------------------------------------------------------------------------------
d11a64c996 | advil | 2021-03-25 22:20:15 -0400

Don't generate .map files in normal circumstances
These don't seem very useful these days; the code predates webtiles and
also probably easy modern screenshotting. The underlying code is still
used in various debug / crash scenarios.

--------------------------------------------------------------------------------
eb8d7bc690 | Kate | 2021-03-25 22:46:58 +0000

Restore Majin-Bo's intended behaviour at low HP (PleasingFungus)
Make it reduce HP to 1 if the full cost can't be paid, instead of
preventing casting at all if HP is too low.

--------------------------------------------------------------------------------
dc96bc62b2 | Kate | 2021-03-25 21:51:14 +0000

Fix compilation
Whoops.

--------------------------------------------------------------------------------
3c0359225a | Kate | 2021-03-25 21:49:26 +0000

Don't allow paying more HP than you have with Majin-Bo equipped

--------------------------------------------------------------------------------
7beb378477 | Kate | 2021-03-25 20:28:52 +0000

Update Shadow Form description

--------------------------------------------------------------------------------
df32bb633b | Nicholas Feinberg | 2021-03-25 12:22:37 -0700

Remove endoplasms' will
Accidentally left in when they were turned into earlier-game monsters.
Now Will:20 -> Will:0, matching other D:1 foes.

--------------------------------------------------------------------------------
37402fc473 | Nicholas Feinberg | 2021-03-25 08:57:23 -0700

Add good dogs (Sastrei)
New tiles for hound, wolf, gnoll sergeant, gnoll shaman, and Grum.

--------------------------------------------------------------------------------
3e622ea735 | advil | 2021-03-25 08:43:02 -0400

Prevent crashes on unknown score species during death
This should fully close the barn door behind the recent Dj score crashes
(i.e. prevent these crashes from happening in the future if the old
species enum ever again doesn't line up with what's on some server).

--------------------------------------------------------------------------------
aaee5cf45b | Nicholas Feinberg | 2021-03-24 20:00:34 -0700

Many meat tiles (Sastrei)
Bag of meat, meatzerker, large bag of meat, meat hydra, scourge, aaand...
The Meatlord.

--------------------------------------------------------------------------------
49a6215e69 | Nicholas Feinberg | 2021-03-24 19:40:17 -0700

Raise Manifold Assault to level 5
It's a very fun spell and people have been putting it to great use, but
it should require a little more investment to cast than it currently does.

--------------------------------------------------------------------------------
dbedfec26c | Nicholas Feinberg | 2021-03-24 19:37:13 -0700

Buff gnolls (Sastrei)
New tile!

--------------------------------------------------------------------------------
74b304f62e | advil | 2021-03-24 21:46:18 -0400

Improve automagic_stop behavior for Dj
This lets this option work for Dj based on hp percentage, allowing
players to set a distinct autofight threshold for autocasting vs general
autofight on this species.

Along the way I did fix automagic for Dj, deprecated though it is. But,
automagic may eventually just get removed.

Resolves #1851

--------------------------------------------------------------------------------
2a0442d20d | advil | 2021-03-24 19:19:57 -0400

Save abyss on AK start
Before this commit, this abyss was in a precarious state: generated, but
not saved to disk. An AK start crash (of the kind that doesn't save the
game) could load to a load that put the character in a featureless void,
crashing immediately (except in wizmode). A previous commit does fixup
for this scenario, but this commit should prevent it from happening for
future games altogether.

--------------------------------------------------------------------------------
f22881d5bd | advil | 2021-03-24 19:19:57 -0400

Fixup for unsaved abyss crashes
If the game crashes without saving before an AK start has saved and
while they are in the abyss, the abyss map is not saved, and they reload
in an empty featureless void (that crashes). This fixup code simply adds
a floor and moves the player to that position, as a very ad-hoc
emergency measure so that the game will load. The results look weird but
should allow the AK start to get out of the abyss (the position is also
one that triggers an abyss shift immediately if they want to stick
around).

--------------------------------------------------------------------------------
00efbec225 | Kate | 2021-03-24 20:53:32 +0000

Remove scrolls of random effects
Replacing them entirely with scrolls of noise. Noise has a much better
ability to do something meaningful when read-identifying, where scrolls of
random uselessness would generally just cost a turn once per game.

--------------------------------------------------------------------------------
1b1bd85602 | Kate | 2021-03-24 20:07:01 +0000

Remove ants
There are a large number of early-to-mid-game poison monsters, between the
many types of snakes, spiders and bees. Ants didn't fill much of a gap and
were barely used outside of anthill vaults (which weren't particularly
distinct from beehives) and early Dungeon worker ants.

Worker ants in D have their weight split between scorpions, hounds and
iguanas, and in vaults are mostly replaced with scorpions. Soldier ants in
vaults are mostly replaced with water moccasins or vampire mosquitos.

--------------------------------------------------------------------------------
e4d627daa3 | Nicholas Feinberg | 2021-03-24 07:26:57 -0700

Unremove removed OLD_SP_DJINNI (kate, Implojin)
It turns out this was still needed to avoid a crash. Oops!

--------------------------------------------------------------------------------
9892240997 | Nicholas Feinberg | 2021-03-24 07:10:00 -0700

Remove an insult to Centaurs
Since they were removed ;)

--------------------------------------------------------------------------------
7101f7346d | Kate | 2021-03-24 11:30:02 +0000

Remove monster Freeze's ministun against other monsters
This effect has long been gone from player freeze.

--------------------------------------------------------------------------------
2da19512c5 | Kate | 2021-03-24 10:21:55 +0000

Adjust some more player species-based vaults
heliophobic_arrival_battle_scene tries to place player species skeletons,
so Palentonga are fine (as they have a dummy monster), but Djinn caused
vault errors.

--------------------------------------------------------------------------------
a145f7f72e | Kate | 2021-03-24 10:19:39 +0000

Remove some more halfling remnants
From a number of player-species-behind-glass vaults (most of which were also
outdated from previous species removals/additions), and other vaults based
on player species.

--------------------------------------------------------------------------------
c38aae387d | Nicholas Feinberg | 2021-03-23 21:25:44 -0700

Remove irrelevant % lines for Dj
Don't show MP or spell levels.

--------------------------------------------------------------------------------
6e9d80e302 | Nicholas Feinberg | 2021-03-23 21:22:30 -0700

Nerf a few more early orcs
Still compensating for monster weapon buffs/simplification. Later
game monsters can hopefully fend for themselves.

--------------------------------------------------------------------------------
dd57cda9ea | Nicholas Feinberg | 2021-03-23 21:03:10 -0700

Make D spawn tables more sane
Don't spawn monsters far beyond any depths they'd be relevant in.
We'll miss you, D:11 quokka, but... not very much.

Overall XP generally pretty close, both level-by-level and overall.
Late D (D:10-15) has about 65-75% as many monsters as before.

A few monsters now show up earlier than before, such as black bears
and jellies. The baby dragons (steam/acid) are a bit more common.
Quasits and soldier ants no longer spawn in D, in preparation for
upcoming changes.

--------------------------------------------------------------------------------
fceadbd91f | Nicholas Feinberg | 2021-03-23 19:11:29 -0700

Clarify !attraction (Pekkekke)

--------------------------------------------------------------------------------
2394d0fbd4 | Nicholas Feinberg | 2021-03-23 18:30:06 -0700

Rename ooze -> endoplasm
To reduce confusion wrt their new freezy ways by giving em a new
name.

Also apply a gentle hint of frosty blue to their tile.

--------------------------------------------------------------------------------
d7be90942d | Nicholas Feinberg | 2021-03-23 18:19:31 -0700

Fix Dj/Pa manual species order (|amethyst)

--------------------------------------------------------------------------------
7c41658a71 | Nicholas Feinberg | 2021-03-23 18:03:59 -0700

Ban Dj from Kiku and Veh
I was undecided about this, but dev consensus seems to largely be
behind the change. The goal is to reduce player confusion and to
make ecumenical altars a bit less of a trap for Dj, since the 'spell
gods' do extremely little for Dj.

--------------------------------------------------------------------------------
5a20dcc000 | Nicholas Feinberg | 2021-03-23 17:43:57 -0700

Fix monster Freeze damage display
It was actually 1d5 but claimed to be 1d7, due to a difference between
the monster casting code and the player casting code.

--------------------------------------------------------------------------------
c3205288ea | Kate | 2021-03-23 22:03:28 +0000

Skip permanently useless potions with Gozag petition
Specifically magic for Djinn, and lignification for Mummies/Ghouls.

--------------------------------------------------------------------------------
82d5626f1f | Aliscans | 2021-03-23 22:53:15 +0200

Sort items in a shop in a more predictable order when using ORDER_DEFAULT.
As it was, ORDER_DEFAULT sorted items according to the order in which they were 
originally created by the game. This seems like an unhelpful default to me, and 
there is no option to control it.

This change means that, when you go into a shop, items are sorted by 
DESC_DBNAME, and by DESC_PLAIN where this doesn't distinguish them.
The exeception is known artefacts, which may not contain their DBNAME in the 
displayed item name (such as the mask of the Dragon, which is sorted with 'h'), 
so they use DESC_QUALNAME (which sorts it into 'm').

Similar items are together (all robes, all +0 robes, all wands, etc.), and most 
things are in alphabetical order. If you switch to "sort by price", this order 
is used for items which cost the same amount.

Delete ORDER_TYPE. Change ORDER_DEFAULT to use its label.

[committer's note: squashed all commits in the PR, and did some
refactoring. Closes #1826.]

--------------------------------------------------------------------------------
10b8fb2fd0 | Goratrix | 2021-03-23 20:32:28 +0200

Supress a compiler warning on Windows

--------------------------------------------------------------------------------
4f19927427 | Nicholas Feinberg | 2021-03-23 08:39:26 -0700

Drop Dj weapon apts by 1 (nikheizen)
Since their Spellcasting speciality means they have fewer things to
skill, they have more XP sloshing around for hybrid builds. Make it
slightly trickier to 'have it all'.

Unarmed combat is untouched for now due to being pretty XP hungry
anyway, but I might revise that later.

--------------------------------------------------------------------------------
dd9af0c1c5 | Nicholas Feinberg | 2021-03-23 08:27:38 -0700

Fix Veh Dj power display bug
Don't claim Veh can give Dj spells.

--------------------------------------------------------------------------------
32f27e8180 | Nicholas Feinberg | 2021-03-23 08:20:49 -0700

Gargoyle Jiyva max Invo title: Rockslime (hellmonk)

--------------------------------------------------------------------------------
1ccb5b4bd3 | Nicholas Feinberg | 2021-03-23 08:19:49 -0700

Dj: guarantee new spells on level up (ardl)
Don't allow overlap between the random level-up spells and the starting
book spells, if any.

--------------------------------------------------------------------------------
fadad42f22 | Nicholas Feinberg | 2021-03-23 08:10:38 -0700

Display ooze freeze damage on xv

--------------------------------------------------------------------------------
2d21d9d4bd | Nicholas Feinberg | 2021-03-23 08:08:24 -0700

HACK: semi-fix Freeze death message
Don't claim oozes "invoke" Freeze.

--------------------------------------------------------------------------------
2db2cc2744 | Kate | 2021-03-23 11:55:32 +0000

Add a message when equipping Wucad Mu as a Djinn

--------------------------------------------------------------------------------
8cfd13017f | Kate | 2021-03-23 11:36:11 +0000

Adjust formatting

--------------------------------------------------------------------------------
9bdce53276 | Kate | 2021-03-23 11:31:25 +0000

Don't let the staff of Wucad Mu activate for Djinn
Since they'd only get the backfire effects and not the benefits.

--------------------------------------------------------------------------------
4d3ab90b7f | Kate | 2021-03-23 11:06:57 +0000

Let wisp/statueform players worship Yred (Yermak)

--------------------------------------------------------------------------------
640f5e82da | Kate | 2021-03-23 11:06:57 +0000

Don't let Djinn mutate poison resistance
Since they're already immune.

--------------------------------------------------------------------------------
6942c2d063 | Edgar A. Bering IV | 2021-03-23 10:41:04 +0200

Changelog through 0.27-a0-737

--------------------------------------------------------------------------------
0a99b990b4 | WhiteShark | 2021-03-23 09:09:18 +0200

Update to Blade Hands description
The old Blade Hands description used the word "hands" regardless of
the manipulator type for the species. In addition, it failed to mention
that it would meld shields and gloves. A function was added to l-you.cc
to get the hand type of the player species, and the Blade Hands
description now checks hand type to determine the noun used for the
player's manipulators. The description was also changed to say that
shields and gloves are also melded.

--------------------------------------------------------------------------------
af063e7127 | Aliscans | 2021-03-23 09:05:03 +0200

Change a comment to show the power of the warlock's mirror correctly.
A comment in bolt::misses_player() states that a displayed SH of 20 gave a 50% 
chance of blocking ench-type effects, but the code gave the chance of blocking 
as SH*2 in SH*2+20; 2/3 for SH=20 and 1/2 for SH=10. Make the comment match.

--------------------------------------------------------------------------------
06f963a177 | Aliscans | 2021-03-23 09:05:03 +0200

Add a relevant debug statement for blocking AUTOMATIC_HIT bolts.
Separate the "automatic hit" calculation from the "no automatic hit" check in 
bolt::misses_player().

Change the debug message for "automatic hit" to one which reflects the 
calculation it actually makes.

--------------------------------------------------------------------------------
3579b8c60d | Aliscans | 2021-03-23 09:03:58 +0200

Make autoexplore/travel wait for barbs to time out.
As things stood, trying to travel with barbs stuck in you would see the game 
ask for confirmation, move a single square (if you accept) and then stop 
because of the HP loss.

This change makes it so that the game waits for the spikes to time out before 
moving. You can't remove barbs if you are confused or asleep, but you can't 
travel then either, and player::is_sufficiently_rested() isn't used for 
anything else.

--------------------------------------------------------------------------------
c3177a88c8 | bstrie | 2021-03-23 08:50:24 +0200

Use https rather than git protocol for submodules
Fixes unexplainable breakage with `git submodule update`.
As discussed with ebering on IRC.

--------------------------------------------------------------------------------
a892ba84f6 | Nicholas Feinberg | 2021-03-22 19:30:46 -0700

Reflavor misleading engulf attacks (dinky)
Starcursed masses and tentacled starspawns don't have the 'engulf' effect
from e.g. water elementals, so they shouldn't claim to engulf.

--------------------------------------------------------------------------------
03f32850a8 | Neil Moore | 2021-03-22 22:26:30 -0400

Correct syntax in docs.
[skip ci] <- supposedly this works now?

--------------------------------------------------------------------------------
9302c29d50 | Kate | 2021-03-23 02:23:50 +0000

Fix tag_upgrade builds

--------------------------------------------------------------------------------
6601e7f8fe | Nicholas Feinberg | 2021-03-22 18:55:04 -0700

Make dj crash less
Accidentally deleted their flat HP mut in the merge.

--------------------------------------------------------------------------------
8f833cc6cc | Kate | 2021-03-23 01:44:24 +0000

Make Rupert's Berserker Rage a natural ability
So it's no longer affected by antimagic, since that doesn't really fit the
flavour.

--------------------------------------------------------------------------------
922fb1cf6a | Kate | 2021-03-23 01:44:24 +0000

Rework spell handling for silencable innate abilities
Removes the MON_SPELL_NO_SILENT flag in favour of a new category of spell,
MON_SPELL_VOCAL, for natural abilities that cannot be used when silenced.
Fixes buggy spellbook display for various monsters (#12516).

A few monsters are changed in functionality:
Vault wardens' Seal Doors is wizardly instead of magical, so counts for Trog
piety.
Xtahua's Paralyse, Rupert's Paralyse and Confuse, and Geryon's Summon Hell
Beast are vocal instead of magical, so are no longer affected by antimagic.

--------------------------------------------------------------------------------
eb20345811 | Kate | 2021-03-23 01:44:24 +0000

Remove an obsolete special-case
Natural spells are already silent unless specified otherwise.

--------------------------------------------------------------------------------
30b8c66569 | Nicholas Feinberg | 2021-03-22 18:31:35 -0700

Lizard vault fixes (r-i)

--------------------------------------------------------------------------------
098d8ac6d2 | Nicholas Feinberg | 2021-03-22 18:15:04 -0700

More Sastrei tiles
Brighten up the yak and the balrug and add a new catoblep.

--------------------------------------------------------------------------------
53cd4ccad6 | Nicholas Feinberg | 2021-03-22 18:03:23 -0700

Remove Yred's nonliving ban
It's neither an interesting gameplay twist nor a fun bit of flavour
that Yredremnul bans nonliving players (i.e. gargoyles and djinn)
from worship. Are you going to tell me that a 'Gargoyle Death Knight'
is not cool? No, you aren't. Let the grdk soar once again!

--------------------------------------------------------------------------------
c3fac4b18b | Nicholas Feinberg | 2021-03-22 17:47:19 -0700

New race: Djinni
Djinn are intended to create a new and distinct
'caster' experience. Floating spirits formed from
smokeless fire, they have no MP, instead casting spells
using their HP. They also cannot learn spells from books;
they instead get spells randomly and naturally, starting on
XL 3 and continuing on every even level.

The former mechanic is inspired by a design from kilobyte,
who created another 'Djinni' species in 0.13. The latter comes
from pubby, who created an 'Oni' race using it in various DCSS
forks. I'm indebted to their ideas, though this implementation is
somewhat different from both.

Let's see if this new race does better than their predecessors!

--------------------------------------------------------------------------------
0520e8ecd4 | Nicholas Feinberg | 2021-03-22 17:47:19 -0700

Remove Halflings
DCSS's philosophy on species is that they should provide meaningful
choices and interesting, distinct play experiences. We originally had
four types of elf, three types of dwarf, and gnomes, among others, but
it really wasn't very interesting to try to win all of them, since they
were fundamentally so similar to each other. Since then, we've moved
towards species with much more distinct features than minor skill apt
differences or dietary preferences, and the game has been better for it.

Halflings had the following distinguishing features:
- Small. (Couldn't use some weapons. Shared with kobolds.)
- rMut. (Mostly irrelevant.)
- Fantastic slings apt. (But slings are usable at 0 skill and take very
  little skill to reach mindelay, so how much did this really matter?)
- Somewhat more 'fight-y' apts than Kobolds. (But other species do that
  better.)

They weren't a *weak* species, they just weren't a very interesting one.
Goodbye, Frodo... may you find happiness, off in that place where Gimli
and Legolas went.

--------------------------------------------------------------------------------
3f424a255b | Edgar A. Bering IV | 2021-03-23 00:07:45 +0200

Give salamander tyrants bands

--------------------------------------------------------------------------------
02918e9f87 | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

New Monster: salamander tyrant (i-x)
Salamander tyrants are meant to complement nagaraja as a top-tier threat
in Snake, so that the latter don't have to do so much heavy lifting in
end vaults etc. They're also meant to help depths lava salamanders have
a bit more relevance.

Snake has lots of melee bruisers, so the tyrant is a damaging
spellcaster: flimsier but with some hard hitting spells it likes to cast
a lot. The Tyrant is also fine with sitting back behind tougher Naga
cousins: its spells don't require line of fire, only line of sight.

Two spells play with terrain:

Eruption fires the magma-themed upheaval flavour, hitting the player
with partially-resistible BOM flavoured damage and creating temporary
lava (constraining the player's movement).

Pyroclastic Surge strikes foes of a tyrant that are above or adjacent to
lava with pure fire damage.

The third is a debuff weakening gaze, inflicting DUR_WEAK on the player.
As a gaze attack it counts as instant and does not require line of fire,
only line of sight.

Combined with the terrain constraining attacks the gaze should make
tyrants tough to fight in melee, but in a different way than the tankier
Naga.

--------------------------------------------------------------------------------
4813a55755 | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Don't give new Naga Magi Haste Other (i-x)
It takes away from the distinctiveness of salamander mystics. With the
player under a hail of curare-spit and slowed that way, haste other was
a bit overboard.

--------------------------------------------------------------------------------
6ecf17fd6c | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Turn Naga Mages into more supportive allies
To give Naga better chances of catching a player, Naga Mages drop some
of their attack spells (and teleport other) in exchange for haste other
and a new spell: concentrate venom. Concentrate Venom enchants a target
allied monster (either N or S type) and turns its poison spit or
AF_POISON melee into curare.

--------------------------------------------------------------------------------
86023d4c85 | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Tweak Nagaraja spells
Remove force lance (which gets the player away from Nagaraja's strong
constrict) and replace teleport other with dimension anchor. Nagaraja
are the top tier threat in snake and should be hard to escape, but being
Naga even hasted most players can get away.

--------------------------------------------------------------------------------
8b94e06931 | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Give Naga Ritualists normal weapons (kate-)

--------------------------------------------------------------------------------
db6eed0942 | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Make Naga Ritualists priests, remove force lance from their spellbook
The priest change is mostly flavour, since they wrangle mana vipers it
doesn't make sense that they'd be vulnerable to antimagic.

Every spellcasting enemy except guardian serpents in snake has force
lance, which works against getting snakes close to the player, so that's
cut from their book.

--------------------------------------------------------------------------------
e81c3644fc | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Give Naga Warriors battlecry
Nagas are slow, so its easier for the player to avoid being hit by them.
Battlecry will increase the consequences of being hit when Warriors are
nearby.

--------------------------------------------------------------------------------
43b6169a3e | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Increase Naga and Naga Warrior damage
Plain Naga are rather flimsy, don't hit that hard in terms of base dam,
and have no fancy things to attack the player with.

Naga Warriors are much tankier, but by the lair branches don't have a
base dam appropriate to their designed threat level and tankiness, and
also lack extra tools.

Nagaraja base damage isn't tweaked, since they have spells and
stronger constrict.

--------------------------------------------------------------------------------
a7b8d12a86 | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Accelerate poison damage
Poison damage afflicts the player with a known "damage debt" to be payed
out over time. However, it ticks so slowly that the player can usually
finish a poison fight and then rest before the poison becomes a serious
tactical consideration. Accelerating poison will make it more relevant
on shorter timescales; though the large number of curing potions spawned
per game might also need to be trimmed.

Specific number changes:

Increase the speed cap to 5hp/aut, the speed minimum to 0.1hp/aut and
the exponential speed from 1/15th of current poison per 10 aut to 1/5th
of current poison per 10 aut.

--------------------------------------------------------------------------------
e1682847c3 | Edgar A. Bering IV | 2021-03-22 23:58:59 +0200

Pull out some magic numbers in the poison formulas
This will make tuning them easier.

--------------------------------------------------------------------------------
48170eeafe | Kate | 2021-03-22 21:44:09 +0000

Fix spelling

--------------------------------------------------------------------------------
265f56af43 | Kate | 2021-03-22 21:44:09 +0000

Remove a duplicated vault check

--------------------------------------------------------------------------------
e0bb579ed7 | Kate | 2021-03-22 21:44:08 +0000

Remove antennae from Desolation of Salt humans

--------------------------------------------------------------------------------
780f848edf | advil | 2021-03-22 16:07:46 -0400

Mark manifold assault as a direct attack for autofight
This allows CMD_AUTOFIGHT with autofight_throw=true to activate it when
quivered, among other cases.

--------------------------------------------------------------------------------
a0013940fb | Nicholas Feinberg | 2021-03-21 20:03:08 -0700

Lighten yaks up a bit (hellmonk)

--------------------------------------------------------------------------------
c0f43fc05a | Nicholas Feinberg | 2021-03-21 19:53:54 -0700

Unleash a yak attack (Sastrei)
New tiles that look less like sheep! Also death yaks.

--------------------------------------------------------------------------------
ec79a4c0d2 | Nicholas Feinberg | 2021-03-21 19:48:31 -0700

Make oozes freeze (hellmonk)
In the quest to make D:1 a bit more interesting without being
enormously deadly or intimidatingly complex, give oozes a new
gimmick: 1d7 Freeze at roughly 1/3rd cast freq. Halve their HP,
reduce their base damage to 3, and place them in the D:1-3 range.

Vaults are unchanged because old oozes didn't do anything anywhere, so
there should be no issues with them being replaced by a monster that
doesn't do anything after D:3.

--------------------------------------------------------------------------------
0b40708614 | Kate | 2021-03-22 01:31:47 +0000

Staticify some functions

--------------------------------------------------------------------------------
c204baa176 | Kate | 2021-03-22 01:28:24 +0000

Fix display of stat rings on known items screen (particleface)

--------------------------------------------------------------------------------
26b8c838cb | Nicholas Feinberg | 2021-03-21 17:33:02 -0700

Unleash the python (hellmonk)
Change ball pythons to only spawn in D:1-3 (instead of up to D:8!),
and make them 4x as common in their range.

Overall XP is unchanged from D:1-4.

--------------------------------------------------------------------------------
fe1b84c61a | Nicholas Feinberg | 2021-03-21 17:26:14 -0700

Remove leopard geckos
They were identical to quokkas, and the latter have a more entertaingly
Australian flavour.

https://www.pacificsciencecenter.org/wp-content/uploads/lydia-gecko-1920x1080.jp
g

--------------------------------------------------------------------------------
a572aaf4d4 | Nicholas Feinberg | 2021-03-21 17:01:04 -0700

Remove hobgoblin weapons, buff base damage (hellmonk)
To differentiate them a little more from other early weapon users and
also decrease the amount of early junk lying around. Beware the hob
that does find a weapon, though!

--------------------------------------------------------------------------------
5910a5bdcb | Nicholas Feinberg | 2021-03-20 22:33:27 -0700

Remove early-game weaponless enemies
Since the difference between enemies with weapons and those without
is now so significant, stop spawning early-game enemies without weapons.
This is a small player buff as well, since there's a greater chance of
finding a venom dagger or such.

--------------------------------------------------------------------------------
a52386242a | Nicholas Feinberg | 2021-03-20 22:32:32 -0700

Nerf early-game weapon user damage
To compensate for the removal of 1d3 weapon damage reduction and also
weapon delay removal, cut about 3 damage off many early game enemies.
Also, split centaur damage into hit and kick, as a thematic way to
nerf their ranged a little bit.

--------------------------------------------------------------------------------
b4952372f7 | Nicholas Feinberg | 2021-03-20 22:13:04 -0700

Avoid a divide by zero

--------------------------------------------------------------------------------
d01e12f17d | Nicholas Feinberg | 2021-03-20 17:49:47 -0700

Remove the rim of the moon (wheals)

--------------------------------------------------------------------------------
fd0ee990f0 | Kate | 2021-03-21 00:45:17 +0000

Make Shatter deal bonus damage to toenails
Toenail golems and rockslimes were on LRD's list of monsters that can be
directly targeted, but not on Shatter's list of monsters that take bonus
damage. Instead use the same list for both spells.

--------------------------------------------------------------------------------
01df23dd3f | Kate | 2021-03-21 00:45:17 +0000

Always consider ring pluses to be known
Since they're always the same. Potentially they should no longer use
item.plus at all to simplify the code, but currently some Sprint maps do
still use redefined rings with different plus values (particularly for
slaying in meatsprint).

--------------------------------------------------------------------------------
5d5f89c6df | Nicholas Feinberg | 2021-03-20 17:43:19 -0700

Update skill descriptions
Many of these referenced mechanics and spells that have been gone for
most of a decade.

--------------------------------------------------------------------------------
f5bc2b81cb | Nicholas Feinberg | 2021-03-20 16:22:41 -0700

Show weapons on new Balrug tile
??oops

--------------------------------------------------------------------------------
830a91cb63 | Nicholas Feinberg | 2021-03-20 16:18:35 -0700

New Chei splash (Sastrei)

--------------------------------------------------------------------------------
0ad5b59bb0 | Nicholas Feinberg | 2021-03-20 16:18:21 -0700

New Balrug & Moon Troll tiles (Sastrei)

--------------------------------------------------------------------------------
a58904a08d | Nicholas Feinberg | 2021-03-20 16:09:33 -0700

Mark Manifold Assault only temp useless
Your currently wielded weapon is a temporary status, not a permanent
condition, so it shouldn't prevent e.g. spell memorization.

--------------------------------------------------------------------------------
aed091b46b | Nicholas Feinberg | 2021-03-19 19:40:43 -0700

Display Freeze damage in monster

--------------------------------------------------------------------------------
d6162235be | Nicholas Feinberg | 2021-03-19 18:30:38 -0700

Remove rocksliem (RoGGa, 12540)

--------------------------------------------------------------------------------
359e429f13 | Edgar A. Bering IV | 2021-03-19 23:28:06 +0200

Describe curse boosts in chardumps (vt)

--------------------------------------------------------------------------------
86f87662fd | Nicholas Feinberg | 2021-03-19 08:32:58 -0700

New Geryon sprite (sastreii)

--------------------------------------------------------------------------------
7530f89582 | Edgar A. Bering IV | 2021-03-19 12:55:13 +0200

Fix ccache clang in CI?

--------------------------------------------------------------------------------
0c81a3c1c3 | Nicholas Feinberg | 2021-03-18 18:49:32 -0700

Swap Dr/Pa in NG (TheMeInTeam)
Draconians are a somewhat fragile species with a wide set of different
active abilities to learn (depending on which colour of draconian you
become.) Palentongas are more durable (even after the nerf) and have a
simpler playstyle to learn. Let's try this way out.

--------------------------------------------------------------------------------
3a15de6056 | Nicholas Feinberg | 2021-03-18 18:43:24 -0700

Pull back on Palentongas
Think they got overtuned a bit during 0.26-a. Reduce their HP apt
to the original +0.

--------------------------------------------------------------------------------
77a6b55cf3 | Kate | 2021-03-17 22:25:07 +0000

Update some item descriptions

--------------------------------------------------------------------------------
d1c2c16caa | Kate | 2021-03-17 22:25:07 +0000

Don't allow targeting empty space with Poisonous Vapours
Instead of letting it be aimed at empty space (but costing a turn and MP
in case there's an invisible monster there), require a visible target for
it to work. Also update some messaging and add a use of BASELINE_DELAY.

--------------------------------------------------------------------------------
8fc010af70 | Kate | 2021-03-17 22:25:07 +0000

Fix indentation

--------------------------------------------------------------------------------
c1da3516c2 | Nicholas Feinberg | 2021-03-17 13:24:35 -0700

Make vampires mad (ShaperMC)

--------------------------------------------------------------------------------
6a6c47eaed | Nicholas Feinberg | 2021-03-17 08:44:07 -0700

Give hafi/kofi bucklers
Since shield penalties are more meaningful now, and small races have
higher penalties.

--------------------------------------------------------------------------------
f18a54e897 | Nicholas Feinberg | 2021-03-17 07:41:07 -0700

Tune Ironbound Thunderhulk spellpower up slightly
Player feedback suggested they weren't scary enough at range. This
moves them from 3d18 to 3d21 damage, plus a lil accuracy bump. The
buffs will continue until killcounts improve.

--------------------------------------------------------------------------------
ea86b47111 | Nicholas Feinberg | 2021-03-17 07:19:13 -0700

New Green Death and Orange Demon tiles (Sastreii)

--------------------------------------------------------------------------------
ac1c3f1d60 | Edgar Bering | 2021-03-17 04:14:57 -0400

Checkwhite

--------------------------------------------------------------------------------
f435b565c8 | Nick Johnstone | 2021-03-17 09:21:24 +0200

Enable full screen PWA for WebTiles on iOS
Currently, adding the webtiles interface to the desktop on iOS or iPadOS 
creates what is effectively a bookmark. It opens in the browser, with the 
domain displaying, and tabs available.



By adding these meta tags, if a user creates a PWA for WebTiles on iOS, it will 
launch in full screen as a separate application to the browser, without the 
standard tabs interface.



This should be a fairly low risk change, as users have to opt in to creating a 
PWA. The biggest issue is that this hides the browser navigation if you’re 
using a PWA, so you might theoretically be able to navigate to part of the site 
that you couldn’t easily return from.



This might seem like an edge case, but it would be awesome to be able to play 
DCSS full screen on an iPad with a keyboard.
--------------------------------------------------------------------------------
0c9945aa31 | Edgar A. Bering IV | 2021-03-17 09:10:29 +0200

Elaborate on some clua documentation

--------------------------------------------------------------------------------
330a3fb6b6 | mgdelmonte | 2021-03-17 09:10:29 +0200

New clua function spells.describe
Add the spells.describe function, which provides the same
description one can find by accessing a particular spell in the
memorised spells list. Useful for evaluating a spell's current damage,
accuracy, and other attributes, within a script context.

[ Committer's note: Rebased, reworded commit message. Closes #1813 ]

--------------------------------------------------------------------------------
b5737ff2c0 | hellmonk | 2021-03-16 20:28:56 -0700

Allow quokkas on D:1.
They're not that much different from leopard geckos. Slightly lowered their
spawn rate overall - I think this is fine but it probably increases early exp
a little bit.

--------------------------------------------------------------------------------
87fe7d4a8f | hellmonk | 2021-03-16 20:28:56 -0700

reduce item generation in early dungeon

--------------------------------------------------------------------------------
9dbe4339e4 | hellmonk | 2021-03-16 20:28:56 -0700

increase ball python melee damage by 1

--------------------------------------------------------------------------------
69cf137300 | hellmonk | 2021-03-16 20:28:56 -0700

Adjust weapon subtype selection.
Allow higher basetype weapons to spawn (with low probability) on early floors.
Adjust their spawn rate downward overall to compensate. Note: I'm very unsure
about the numbers on this, but a quick objstat seemed to indicate that it
would be acceptable for D:1. Further adjustment may be required.

--------------------------------------------------------------------------------
0dccfbd8cf | hellmonk | 2021-03-16 20:28:56 -0700

Allow earlier book, manual, and staff generation.
Removes a couple checks preventing books, staves, and manuals from generating
on early floors. Many of these were replaced with scrolls or potions, so it's
probably a nerf overall.

--------------------------------------------------------------------------------
c2beb70d14 | hellmonk | 2021-03-16 20:28:56 -0700

Legalize early rare scrolls.
This removes the depth_mod check for scrolls of acquirement, summoning, vuln,
silence, brand weapon, torment, and holy word. Scroll weights for those scrolls
were decreased slightly (except for vuln, which was increased) to compensate
and to make the total scroll weight nicer. I could see dropping weight further
if needed, and there is some concern about startscumming with ?acq.
Coincidentally, this despoilers scroll id; there is no longer a reason to track
the floor you found a scroll on.

--------------------------------------------------------------------------------
f8ad8ab245 | hellmonk | 2021-03-16 20:28:56 -0700

Allow shop placement on D:1-3
Let the player see some exciting shop items earlier. This is not as much of a
power buff as it seems, since the player won't have enough gold to buy things
in most cases (though I could see banning consumable shops or raising prices,
perhaps). Shop rate per floor of D is nerfed so that the total number of
dungeon shops is slightly lower overall.

--------------------------------------------------------------------------------
ca034ae587 | Kate | 2021-03-16 19:15:24 +0000

Fix a crash when trying to enslave a Mara clone

--------------------------------------------------------------------------------
90476cec82 | Kate | 2021-03-16 03:45:04 +0000

Give quicksilver oozes acid immunity
As with the majority of high-level slimes. Rockslimes are left without it
since they're primarily made from rock.

--------------------------------------------------------------------------------
31e422a34a | Kate | 2021-03-16 03:45:04 +0000

Fix grammar in horn of Geryon description

--------------------------------------------------------------------------------
0a03284674 | Nicholas Feinberg | 2021-03-15 20:37:38 -0700

Remove chilling breath from monster white draconians
The knockback isn't particularly needed for their design.

The implementation in mons-cast is a bit of a hack, alas...

--------------------------------------------------------------------------------
87aa48b03e | Nicholas Feinberg | 2021-03-15 20:25:06 -0700

s/Leech/Vampire's Tooth/
Too many vamp unrands!

--------------------------------------------------------------------------------
b8a12bb016 | Nicholas Feinberg | 2021-03-15 20:23:36 -0700

Make Vaults wizards a bit uglier
2-4 ugly thing bands, instead of 1-3. A single ugly thing pal was
just sad.

--------------------------------------------------------------------------------
7c350831d9 | Nicholas Feinberg | 2021-03-15 20:23:04 -0700

Gently nerf Leech to +5
Mega-Vamp is an extremely strong property, and with a high enchantment,
Leech isn't just good, it's a bit absurd. Tone down its enchantment by
3 points, from +8 to +5.

--------------------------------------------------------------------------------
5244db0575 | Kate | 2021-03-16 02:05:45 +0000

Adjust some reanimation handling
Fix messaging for animating skeleton-only monsters with the sword of
Zonguldrok, and remove an obsolete autopickup check with Animate Skeleton.

--------------------------------------------------------------------------------
f1ce4671d2 | Kate | 2021-03-16 02:05:45 +0000

Reword a monster description
To be a little shorter, rather than duplicating the spell description.

--------------------------------------------------------------------------------
2d5cf1dcd3 | advil | 2021-03-15 11:06:05 -0400

Update an outdated file extension in Makefile

--------------------------------------------------------------------------------
f7bc8fed1b | Nikolai Lavsky | 2021-03-15 07:25:10 -0700

Fix ?/m entry for rockslimes
Because of a missing delimiter, `?/mrockslime` showed the river rat's
description.

--------------------------------------------------------------------------------
8dd3ea4f36 | Nicholas Feinberg | 2021-03-14 21:43:00 -0700

Reduce convoker & preserver frequency
It's a bit much. Switch out for various other monsters. Lower overall
monster count to compensate for the increased XP.

--------------------------------------------------------------------------------
9c408523ab | Nicholas Feinberg | 2021-03-14 21:31:21 -0700

Give frosthearts sInv
To balance out various new monsters added to Vaults without sInv,
give a wizardy monster a little better vision. Improve their prescription.
You know.

--------------------------------------------------------------------------------
a011b72ad2 | Nicholas Feinberg | 2021-03-14 21:29:21 -0700

Animate creeping frost

--------------------------------------------------------------------------------
7c5cdd226b | Nicholas Feinberg | 2021-03-14 21:06:01 -0700

Ogreify thunderhulk weapons again
Big monsters need big weapons. Rip and tear!

--------------------------------------------------------------------------------
8141940efc | Nicholas Feinberg | 2021-03-14 20:56:31 -0700

Nerf a few other slow weapon-wielding mons
Numbers chosen arbitrarily and unscientifically.

Closes #1827.

--------------------------------------------------------------------------------
b80fe6c15e | hellmonk | 2021-03-14 20:50:04 -0700

Nerf ogre and Sigmund base damage.
This partially compensates for the monster weapon damage changes. I'm hitting
these guys since they are notorious early game monsters that always spawn with
a high base damage, high delay weapon. Other monsters might need to be adjusted
later; in particular, club hobgoblins, goblins, (halberd) gnolls, centaurs, and
early 2h ogres are worth monitoring. Some later monsters like yaktaurs may also
need compensatory damage changes, but with luck this level of player nerf will
be acceptable without too much further adjustment.

--------------------------------------------------------------------------------
d9c6a3bf67 | hellmonk | 2021-03-14 20:50:04 -0700

Don't decrease monster weapon damage by 1 + random2(3).

--------------------------------------------------------------------------------
09634a79bb | hellmonk | 2021-03-14 20:50:04 -0700

Fix a > 10 year old monster weapon damage bug.
Monsters with positively enchanted weapons now roll slaying properly.

--------------------------------------------------------------------------------
581982f5c1 | hellmonk | 2021-03-14 20:50:04 -0700

Rework monster weapon delay.
Previously, monsters had weapon delay equal to the average of their weapon base
delay and 1.0. This was fairly esoteric knowledge; it wasn't displayed in xv,
for example, and also didn't make a whole lot of sense. Even powerful, high hd
monsters attacked much slower with a high delay weapon. Additionally, DCSS has
a parameter (attack_energy) that adjusts monster attack speed and is displayed.

This commit sets monster attack delay to 10 regardless of base weapon type. In
the extreme cases, a monster with a quick blade will attack about 10% slower
than before, and a monster with a scythe will attack 50% faster. Overall it's
a pretty substantial damage buff for monsters with heavy weapons. Particular
outliers can be adjusted later through attack_energy or changes to base damage.

--------------------------------------------------------------------------------
aabfd21ae0 | Kate | 2021-03-15 01:12:19 +0000

Identify guaranteed ambrosia in bee special rooms

--------------------------------------------------------------------------------
2cd41d7273 | Kate | 2021-03-15 00:59:20 +0000

Consider corpses as useless items for Jiyva piety

--------------------------------------------------------------------------------
337aa9fb86 | Kate | 2021-03-15 00:52:45 +0000

Let Chilling Breath knock back non-fliers
And make Wind Blast knockback the same against fliers and non-fliers, so
that flight sources can eventually be made permanent without there being
places that the player would want to keep toggling it off.

--------------------------------------------------------------------------------
70b080b6ed | Kate | 2021-03-14 21:34:01 +0000

Update a comment

--------------------------------------------------------------------------------
3a9f0a9c12 | Nicholas Feinberg | 2021-03-13 12:54:53 -0800

Flip thunderhulk tile lightning (lici)
Try to avoid confusion with Haste status.

--------------------------------------------------------------------------------
56d34f704d | Nicholas Feinberg | 2021-03-13 08:15:08 -0800

Thunderhulks are ogre
I just extremely enjoy the ogrish theme. Expect this to be reverted again soon!

--------------------------------------------------------------------------------
7536a348d8 | Nicholas Feinberg | 2021-03-13 07:13:53 -0800

Preemptively tune quicksilver oozes down
Let's try em at somewhat lower HP and see what they do.

--------------------------------------------------------------------------------
e79d73bdd1 | Nicholas Feinberg | 2021-03-13 07:10:58 -0800

Simplify

--------------------------------------------------------------------------------
c6addc0a40 | Edgar A. Bering IV | 2021-03-13 08:19:38 +0200

Reduce Ash skill boost
This was still a bit overtuned. Getting to 2 curses in a category got to
the same skill boost as "fully bound" under old Ash; early on this could
already get ahead of the power curve. In the long run, since the number
of curses is uncapped, a player could potentially reach double the boost
of old Ash in a particular curse category.

Taking the time to craft focused curses is a strategic tradeoff, and
players are enjoying it so I don't want to put a hard cap on the boost.

--------------------------------------------------------------------------------
6becf1495a | Edgar A. Bering IV | 2021-03-13 08:13:21 +0200

Text tweaks for beastmasters

--------------------------------------------------------------------------------
2d681adce0 | Nicholas Feinberg | 2021-03-12 21:29:03 -0800

Impart the importance of friendship
Make sure beastmasters always come with company. (Ban unbanded
vault beastmasters.)

--------------------------------------------------------------------------------
df28dd9bf2 | Edgar A. Bering IV | 2021-03-12 21:27:57 -0800

New monster class flag: M_REQUIRE_BAND
Some monsters really don't work well without their bands. This flag
prevents vaults from placing a monster with this flag (even via 098 and
friends) unless the placement calls for a band.

--------------------------------------------------------------------------------
cffcca8328 | Nicholas Feinberg | 2021-03-12 21:14:10 -0800

Reduce Vaults spawns
Compensate for the removal of chaff & the new monsters. Total XP
is essentially unchanged.

--------------------------------------------------------------------------------
0b001bae98 | Nicholas Feinberg | 2021-03-12 21:14:05 -0800

Vaults monsters reworks!
Unify ironheart and ironbrands into ironbounds, per request. Hopefully this
won't cause too much confusion.

Ironbound Frostheart:
Spellcasting monsters with a new Creeping Frost spell, which deals cold
damage to and flash-freezes all enemies adjacent to walls. They also have
an AF_COLD touch attack. Overall, they're intended to be a mid-tier threat
which plays with the terrain of Vaults (where there tend to be a lot of
walls around!) and which fills a gap in rC-checking monsters there.

Ironbound Thunderhulks:
Playing around with new targeting constraints, this imposing Vaults
foe tosses smite-targeted lightning at its foes. Just one catch -
it can't hit the player if they get within 1-2 tiles of it! Seems
like a fun way to play with the mobs and spaces of Vaults.

Ironwhip Beastmaster
Instead of having beasts spawn in the vaults on their own, let's add
on a Vaults thematic strength: bigger fights with synergizing bands. The
Ironwhip Beastmasters are the ones who have taken the late, rare Lair
monsters to the Vaults.

Beastmasters come with a "Goad Beasts" natural ability, which gives all
beasts in LOS a bonus to energy equal to one EUT_MOVE. This is less
pronounced than haste other or a torpor snail aura for basic combat;
however they come with bands of trampling dire elephants or fire
breathing lindwurms.

Here the goad helps the monsters in the band manouver around one another
to better get to the player. For trampling monsters this does have a
different mechanical impact than a torpor snail aura: after a successful
trample that moves the player the remaining goaded elephants have a
better chance at getting a hit.

Beastmasters also spawn with nets, because what's a good beast master
without a net.

Move ugly things to wizard bands in Vaults

This is more for Lore than for mechanics. Having plain ugly things
appear either with wizards in small bands or with very ugly things in
larger bands combined with their description is a subtle storyline of
"creation killing creator".

--------------------------------------------------------------------------------
c5cd5cfaf1 | Nicholas Feinberg | 2021-03-12 21:09:31 -0800

Add dire elephant bands to Vaults
Again recontextualizing a late, rare Lair monster and replacing the
trampling dragons that have been removed from Vaults, dire elephants
should hopefully be a fun threat. I'm very uncertain about where to
categorize them in terms of threat tiers.

--------------------------------------------------------------------------------
08f024a8fe | Nicholas Feinberg | 2021-03-12 21:09:31 -0800

Add lindwurm bands to Vaults
Replacing the fire dragons that have soared away from Vaults, lindwurms
are a weaker threat that spawn in bands of 2-4. It'll be fun to see them
in a different context from their rare appearances in Lair, and they
should still be able to do some damage.

--------------------------------------------------------------------------------
29c3982eda | Nicholas Feinberg | 2021-03-12 21:09:31 -0800

Remove chaff orcs from Vaults
Orc warlords deserve better friends :) A loyal circle of orc knights
only!

--------------------------------------------------------------------------------
262705bbc8 | Nicholas Feinberg | 2021-03-12 21:09:31 -0800

Remove basic centaurs from Vaults
Far too weak to be relevant. Centaur warriors only here!

--------------------------------------------------------------------------------
1fe5a257b9 | Nicholas Feinberg | 2021-03-12 21:09:31 -0800

Add peacekeepers to Vaults
Peacekeepers (manticores that buff nearby golems' damage) are a fun
monster that plays well with Vaults' themes. I don't believe sharing
these from Desolation will dilute the latter's uniqueness too much,
and it's neat to have a monster re-used in a somewhat different context.

--------------------------------------------------------------------------------
2c6b4450c0 | Nicholas Feinberg | 2021-03-12 21:09:31 -0800

First pass on new V:1-4 spawn tables
Cut out chaff and monsters that heavily duplicate D/U/E. Focus on
monsters that work well with Vaults' terrain: wide-open spaces with
frequent door chokepoints, few corridors. (Great for big mobs and
ranged enemies.)

--------------------------------------------------------------------------------
48f24ef436 | Nicholas Feinberg | 2021-03-12 21:09:31 -0800

WIP Vaults:5 re-layout
Trying to approximate the status quo pretty closely. XP is slightly
higher now, but less than a 2% increase.

--------------------------------------------------------------------------------
9a45c12a61 | Edgar A. Bering IV | 2021-03-12 21:09:09 -0800

Move desolation humans to 'a'
For "ancients" since they're ancient cultists; this frees up some space
on p for the new vaults monsters.

They're still human genus and species <and that's fine --PF.>

--------------------------------------------------------------------------------
e6a60533fa | Nicholas Feinberg | 2021-03-12 19:10:08 -0800

More Donald lines

--------------------------------------------------------------------------------
52eb5d5579 | Nicholas Feinberg | 2021-03-12 19:10:08 -0800

Remove death oozes
Death oozes are slimes that aren't a great threat almost anywhere they
appeared. They're essentially a midpoint between necrophages and ghouls
that's slightly faster than either, which isn't an extremely exciting or
distinctive monster design. Their best feature, by far, is their sprite.

Undead monsters now just get slimified into normal slimes. It's fine!
Once you liquify something, it shouldn't really matter that much whether
it was alive or dead when you started.

--------------------------------------------------------------------------------
a8652a641c | Nicholas Feinberg | 2021-03-12 19:10:08 -0800

Add new slimes to J wrath

--------------------------------------------------------------------------------
049c24a4b6 | Nicholas Feinberg | 2021-03-12 19:10:08 -0800

Remove Eyes of Draining
It's very hard for monsters that do nothing without friends to
work well in DCSS. Eyes of Draining not only do nothing alone,
they have a pretty hard time doing anything even with friends.
It's rare that they manage to really 'get' a spellcaster. Ghost
moths cover their 'drain magic' gimmick a bit better, and
quicksilver oozes cover 'antimagic ooze' in reasonable fashion,
so let's clean up some cruft.

The Depths ophan added in this commit is pretty weird; possibly
there's a better fit for that slot.

--------------------------------------------------------------------------------
eda80042b2 | Nicholas Feinberg | 2021-03-12 19:09:57 -0800

Remove Death Oozes from Slime
Just not that threatening or interesting there, sadly. Tentatively
not removing them from the game, since they do work well in Gauntlet,
but they might get axed from there a little later.

Also remove them from TRJ's palset.

--------------------------------------------------------------------------------
2cf77163c2 | Nicholas Feinberg | 2021-03-12 19:09:57 -0800

Remove dead weights from Slime gen
Overall monster & xp count is roughly similar.

--------------------------------------------------------------------------------
d1418992ea | Nicholas Feinberg | 2021-03-12 19:09:57 -0800

Remove azure jelly rElec
It has no obvious thematic basis and, with rockslimes' appearance,
it seems unecessarily cruel for multiple Slime monsters to be rElec.
(Trivia: the rElec on azure jelly is pre-Stone Soup.)

--------------------------------------------------------------------------------
433ef79eb3 | Nicholas Feinberg | 2021-03-12 19:09:57 -0800

New Slime monster: quicksilver ooze
Quicksilver oozes are antimagic oozes. They move fast, hit for
AF_ENGULF and AF_ANTIMAGIC, and are totally immune to magic. They're
intended to be lower threat than azure jellies but higher than death
oozes.

--------------------------------------------------------------------------------
b0a88528cb | Nicholas Feinberg | 2021-03-12 19:09:57 -0800

New Slime monster: Rockslime
Rockslimes are slimes that trample you, perhaps into
the nearest slime wall. They have high AC, rF++ and rElec,
since they're made of rock, and wallop for a hefty 50 per
hit. They're intended to be on par with azure jellies and
a bit lower-threat than acid blobs (they have lower HP than
either), and to play with the Slime terrain in a fun way.

--------------------------------------------------------------------------------
81e9af5d04 | advil | 2021-03-12 18:28:15 -0500

unbrace

--------------------------------------------------------------------------------
867ec2bfdb | advil | 2021-03-12 18:14:28 -0500

Show form info on the `A` screen
A lot of information about forms is the same kind of thing that would
already be shown on the `A` screen (I could even imagine reimplementing
a big chunk of this as actual mutations, there's already a fair bit of
overlap). Some form-based / non-permanent (but non-tempmut) info was
already shown here, including Mf/Vp form info, beastly appendage, and a
few random religious properties. This commit generalizes this to always
show key pieces of info for forms. I haven't tried to be exhaustive
here; many things that are already shown in the `%` screen somehow don't
get their own entry.

This is implemented basically by extending the fakemut concept to forms;
there's a mix of programmatically-generated fakemuts and custom ones. As
noted above, for at least some of these properties it might be worth
considering how to generalize the beastly appendage approach.

--------------------------------------------------------------------------------
2d96b4cbf3 | advil | 2021-03-12 18:14:28 -0500

Refactor mutation listing
Previously this was handled in two separate but parallel places: a
function in output.cc used for the `%` screen, and a more developed
version in mutation.cc that produces the long list for `A` (with a more
interpretable order that doesn't just go by the mutation enum). This
commit unifies the two by merging in the short-form listing to the
existing code in mutation.cc, leading to more consistency across the two
displays and less likelihood of them getting out of sync. The order of
display for `A` is now used for `%`.

I have further tweaked the order to consistently show temporary effects
first, and made a few other small changes mainly to terse mutation
description special cases.

--------------------------------------------------------------------------------
1ad3dbde53 | gammafunk | 2021-03-12 12:58:09 -0600

Some tweaks to a vault
Adjust the threats and "elven" equipment to more appropriately scale
with depth of placement. Check for depth in Dungeon, upgrading things
for post D:13. Remove the conditional "the elves died" theme that
previously happen in any branch. I'm afraid the theme won't be well
communicated with just random monsters and some elven skeletons around.
The placement in Crypt covers a similar theme, with the elves becoming
spectral, and the vault poses a substantial threat in that branch. In
the case of Crypt, also add the elven gear as loot underneath the
respective spectral elves and fix up the dead trees.

Also add transparent, no_trap_gen, and no_monster_gen tags to this
vault.

Closes #1811.

--------------------------------------------------------------------------------
0ea1dd9b86 | kippig | 2021-03-12 12:55:28 -0600

Add an elvish explorers vault
This vault adds an elvish couple exploring the dungeon with their mounts
and their pet dog. Sometimes they have starved to death since they can't
find enough rat to skewer. In crypt they have succumbed and been raised.

Commiter's Note: Clean up commit message and squashed commits.

--------------------------------------------------------------------------------
702cc3688f | Nicholas Feinberg | 2021-03-12 08:32:46 -0800

Refactor mon generation die size
Dataify it! (Some argument for making this an enum instead, as with
branch noise?)

--------------------------------------------------------------------------------
29a88b33a7 | Neil Moore | 2021-03-11 15:58:07 -0500

Don't consider shafts untraversable for connectivity
Stepping on shaft traps hasn't been a thing for quite some time.

--------------------------------------------------------------------------------
95abfb2b7d | advil | 2021-03-11 15:04:26 -0500

Refactor mertails as a mutation
Once again I wasn't sure how worth the effort this would end up being
and it turned out to be cleaner to use a mutation: standard form
suppression handling can be used in various cases that were
special-cased. This commit doesn't mess too much with you.fishtail
calculation itself though.

This commit also fixes emergency_untransform, which was broken for
aquatic species.

--------------------------------------------------------------------------------
b7d4903799 | advil | 2021-03-11 11:55:49 -0500

Mark nimble swimmer as inactive for merfolk on land
This is entirely cosmetic, as the mutation doesn't do anything when not
in water, but makes the `A` display more consistent with the merfolk
form change. (Op still show this mutation always.)

--------------------------------------------------------------------------------
73614ed2d8 | advil | 2021-03-11 11:40:36 -0500

A few minor SP_NAGA cleanups

--------------------------------------------------------------------------------
8d3ced5a34 | advil | 2021-03-11 10:02:34 -0500

Remove a food reference

--------------------------------------------------------------------------------
164d68d9e5 | advil | 2021-03-11 09:41:48 -0500

Dataify bonelessness, barding-wearing
These are implemented as species flags. SPF_BARDING is actually
coextensive with SPF_SMALL_TORSO, not sure if that's an accident?

--------------------------------------------------------------------------------
48756fc93d | advil | 2021-03-11 09:22:36 -0500

Remove SPF_ELVEN, SPF_ORCISH
These each uniquely identify a species. Also, convert the species
generation script to take species flags directly; this extra layer of
indirection just makes it harder to do changes like this.

--------------------------------------------------------------------------------
524d869a0f | advil | 2021-03-10 21:47:11 -0500

Refactor vampirism as a mutation
This commit is part of a series that attempts to more cleanly treat
species as bundles of traits/behaviors that have their own well-defined
semantics, and minimize the use of explicit species checks in the code.

This commit refactors vampirism into a two-level mutation; level 1 gives
the base set of vampiric abilities that were previously conditioned on
species checks, and level 2 gives batform as well. I wasn't sure if this
would be worth the effort, but I think in the end it's a much cleaner
design than before.

There's a few small related cleanups here, including to mutation display
and to item annotations. One thing of note is that I marked torment as a
good_item when you are torment immune, which may be initially confusing
to people, because the only thing that previously got this color is
acquirement and they don't exactly form a natural class. (Emergency
items are colored yellow, which preempts good_item.)

--------------------------------------------------------------------------------
70eae99092 | advil | 2021-03-10 21:47:10 -0500

Clean up some vampire checks
* In some cases is_lifeless_uundead is more appropriate than a direct
  vampire check. (Minor change: berserkitis will now be suppressed in
  lichform.)
* Formatting
* Clean up a json field for the vampire info screen
* Comments re the confusing treatment of `temp` for vampires

--------------------------------------------------------------------------------
6a3fe64ed6 | advil | 2021-03-10 21:47:10 -0500

Generalize a ghoul check

--------------------------------------------------------------------------------
2aaa8dbbc2 | kippig | 2021-03-10 17:25:09 +0200

This vault was designed when spiders could cling to walls, updated it so the 
monsters at the back are more than pincushions

--------------------------------------------------------------------------------
27d45072b4 | Skrybe | 2021-03-10 16:33:43 +0200

Update trove.des
Fix a couple of typos on my part.
--------------------------------------------------------------------------------
0306a34022 | Edgar A. Bering IV | 2021-03-10 08:48:01 +0200

Clarify acrobat description
Be explicit that stairs don't count as moving. Closes #1816

--------------------------------------------------------------------------------
b9b556f605 | Edgar A. Bering IV | 2021-03-10 08:44:54 +0200

Add transparency/opacity information to poisonous_passages
Closes #1818

--------------------------------------------------------------------------------
94244163b4 | Nicholas Feinberg | 2021-03-09 20:05:48 -0800

Simplify Airstrike damage
Remove the effects of empty surrounding spaces on variance. The effects
on mean/max damage are unchanged.

--------------------------------------------------------------------------------
a811992cb3 | Nicholas Feinberg | 2021-03-09 17:10:29 -0800

Make stealth ego work on any slot
Also make it work while flying, heh.

Closes #1815.

--------------------------------------------------------------------------------
f99593c837 | advil | 2021-03-09 19:23:17 -0500

Swap L/R ring in % display order
efe1b44 accidentally changed which finger the first ring goes on. This
is actually good, because it resolves 11879 -- the first ring and the
sacrifice hand are drawn from a consistent order where they are always
different. However, now the order in % with only one ring looks odd.
This prints the right ring first. (Sorry lefties..)

--------------------------------------------------------------------------------
3569856083 | advil | 2021-03-09 19:18:52 -0500

Condition a physiology check on bonelessness rather than species
This is a minorly substantive change: it prevents formicid from getting
thin skeletal structure. (Presumably the mut itself could be reflavored
if anyone is bothered by this, it's sort of a weird special case
anyways.)

--------------------------------------------------------------------------------
7488d4e55c | advil | 2021-03-09 19:15:00 -0500

Convert octopode tentacles to a real mutation
These were a mess of special cases and custom form checks, so it's
cleaner to have these as a real mutation. There's a minor loss of info
in the % screen as "constrict 8" is replaced by just "tentacles", but
this custom status could be readded if it's too missed.

This leaves only the Op armour gimmick (restrictions + mantle) as
hard-coded for this species.

--------------------------------------------------------------------------------
945025970d | advil | 2021-03-09 16:47:40 -0500

More hand name cleanup
This cleans up two issues:
* Some @crawlcode-worthy code to get "fist(s)" in some cases for statue
  form. This gets moved back into core hand name code, similar to how
  blade hands are done.
* Going back on an immediately preceding commit, change again how
  plurality is handled for octopodes. It turns out that (per the manual)
  two tentacles are roughly equivalent to one hand, so even "one-handed"
  attacks with blade hands/statue form up still notionally involve
  multiple tentacles.

--------------------------------------------------------------------------------
3bd3a8edd8 | advil | 2021-03-09 16:00:22 -0500

Remove some direct conditioning on missing hand
For cosmetic cases, use arm_count() instead. This has different behavior
for octopodes with sac hand than the direct check, so still don't use it
e.g. for form unarmed weapon labeling. Otherwise, MUT_MISSING_HAND is
mainly now checked directly only for weapon handedness and shield cases.

--------------------------------------------------------------------------------
efe1b44157 | advil | 2021-03-09 15:32:13 -0500

Refactor some eq slot checks
This abstracts hard-coded species-based eq slot checks (that don't
involve a mutation) to species.cc, and generally tries to clean up
various handling of ring/arm counts. There was a lot of special casing
around MUT_MISSING_HAND, custom octopus code, etc., that should at least
be better now.

--------------------------------------------------------------------------------
4fbd9c9eec | Edgar A. Bering IV | 2021-03-09 10:25:43 +0200

Don't skip inventory items with Ashenzari pack-id
Closes #1739

--------------------------------------------------------------------------------
3872a02503 | Edgar A. Bering IV | 2021-03-09 10:25:43 +0200

Remove the holy word effect from Sanctuary
Zin's Sanctuary did two things: 1. blast holy word and 2. create a
sanctuary with strict non-agression conduct (even for evil things).
Which mean that beyond flavour, the player couldn't take advantage of 1,
and in any case this was never mentioned in the description in-game.

Sanctuary is a defensive ability, so instead of also doing damage (that
if non-lethal can't be followed up on sensibly) just create the
sanctuary.

As an added benefit, Closes #1703

--------------------------------------------------------------------------------
a093fd074c | Edgar A. Bering IV | 2021-03-09 10:25:43 +0200

Really don't print a resist message when the player casts fridge
Closes #1814

--------------------------------------------------------------------------------
6b246bc234 | Implojin | 2021-03-09 09:33:12 +0200

Document a clua TODO

--------------------------------------------------------------------------------
ffa14badcf | Implojin | 2021-03-09 09:33:12 +0200

Replace a magic number in spl-cast.cc

--------------------------------------------------------------------------------
e2a43ba0c9 | Edgar A. Bering IV | 2021-03-08 23:36:11 +0200

Adjust some Xom dialog
Xom hasn't produced hostile dancing weapons in a very long time now.

Closes #1731

--------------------------------------------------------------------------------
e9d3877a2d | Edgar A. Bering IV | 2021-03-08 23:23:39 +0200

Don't aim battlespheres at firewood
Closes #1759

--------------------------------------------------------------------------------
55242dfd9f | Edgar A. Bering IV | 2021-03-08 23:23:39 +0200

Don't leak invisible monster locations with Ignition
Closes #1798

--------------------------------------------------------------------------------
ae615a3c3a | Edgar A. Bering IV | 2021-03-08 23:23:39 +0200

Don't prompt for Fedhas protected plants when using IMB
Closes #1801

--------------------------------------------------------------------------------
bcb41fda2d | Kate | 2021-03-08 20:23:51 +0000

Adjust some duration short/wizmode names

--------------------------------------------------------------------------------
911d1a7525 | Kate | 2021-03-08 20:23:51 +0000

Add a debug message

--------------------------------------------------------------------------------
a35e2b3484 | Kate | 2021-03-08 20:23:29 +0000

Further simplify the Elixir
Merge the durations of HP and MP regen so that they expire together.

--------------------------------------------------------------------------------
c41e867b77 | Kate | 2021-03-08 19:03:25 +0000

Give black draconians increased breath power in dragon form
Other draconian breath weapons already get a breath power boost, and the
spell description also claimed that this applied for black draconians too.

--------------------------------------------------------------------------------
328d1db4bd | Implojin | 2021-03-08 19:40:11 +0200

Fix shop purchase potion/scroll stacking
This was broken in 83025b5. It turns out that items_stack() has some fairly
particular conditions that don't necessarily match ISFLAG_IDENT_MASK, due
to a potential lua info leak. For some background on this, see:
crawl-dev-20151123.lg

If this commit somehow breaks identify again, I apologize in advance.

--------------------------------------------------------------------------------
6f54807a0a | sdynet | 2021-03-08 19:25:44 +0200

Simplify the Elixir
Grant both ELIXIR_HEALTH and ELIXIR_MAGIC at each tier, with duration
scaling with power_level; no longer heal allies.

[ Committer's notes: Closes #1751. Tweaked formulas. Updated card
  description. Removed ally heal. Edited commit message. ]

--------------------------------------------------------------------------------
36c66b7062 | Edgar A. Bering IV | 2021-03-08 18:47:51 +0200

Clarify Recite's description
Recite scales with both piety and Invocations skill, so we should say so
in the description.

[ Closes #1711. ]

--------------------------------------------------------------------------------
dab5b5aff9 | Implojin | 2021-03-08 18:48:07 +0200

Fix a wizmode shop placement crash
At present, trying to place a gadget shop or a food shop will cause
the game to crash.

This commit adds a missing TAG_MAJOR_VERSION == 34 for gadget shops,
and adds a guard against placing either gadget or food shops.

--------------------------------------------------------------------------------
089230926e | Nicholas Feinberg | 2021-03-08 08:44:10 -0800

Grant players a bounty of information
Explicitly spell out each of Ash's passives. I tested on 80x24 -
there's loads of space.

Also clear up what exactly a 'cursed item' is and what it does, since
that's an Ash-only thing now.

--------------------------------------------------------------------------------
711278a2bf | Nicholas Feinberg | 2021-03-08 08:44:10 -0800

Mark Lear's Hauberk useless for palentongas (Beargit)
This was only being cheked with !ignore_temporary set, meaning that players
weren't able to wear it (good!) but still showed it marked useful (bad!).

--------------------------------------------------------------------------------
2535176e0c | kippig | 2021-03-08 09:25:36 +0200

New kiku swamp vault
Also correct some comments in swamp.des

[ Committer's note: Closes #1781. Tweaked some glyphs, dropped some
  branch guests from the zombie list. Squashed and rebased. ]

--------------------------------------------------------------------------------
0d39f094a4 | gammafunk | 2021-03-07 22:57:41 -0600

Some Swamp decor vaults by nicolae (12518)
Changes made by me are mainly to remove DEPTH: Swamp, which isn't
necessary due to that being default depth, and to clean up spacing for
multiline SHUFFLE.

--------------------------------------------------------------------------------
16b4af076a | gammafunk | 2021-03-07 22:45:25 -0600

Reindent and reglyph some Swamp vaults
Reglyph to use undefined glyphs instead of T.

--------------------------------------------------------------------------------
6bc07cd232 | gammafunk | 2021-03-07 22:45:25 -0600

Add some sections to swamp.des

--------------------------------------------------------------------------------
7185523a23 | Kate | 2021-03-08 04:42:17 +0000

Fix fail_severity options
The max value was set too low for both, since fail_severity now goes up to
5 for potentially lethal spells.

--------------------------------------------------------------------------------
f249a0bc35 | Kate | 2021-03-08 03:33:41 +0000

Update monster for AF_ACID damage
Since it was changed just recently in 2553e725d5b8.

--------------------------------------------------------------------------------
132d4964b8 | Kate | 2021-03-08 03:17:54 +0000

Update a default option

--------------------------------------------------------------------------------
d03afb0eaa | Kate | 2021-03-08 01:03:00 +0000

Fix typo in a mutation desc

--------------------------------------------------------------------------------
25d98068a6 | Kate | 2021-03-07 23:07:42 +0000

Randomise the duration of scrolls of vulnerability
Instead of fixing it at 400 aut for all targets.

--------------------------------------------------------------------------------
6c39d01e8d | Kate | 2021-03-07 23:05:09 +0000

Improve a Zot trap effect
Don't allow applying 0 turns of -WL, and change the messaging to match other
sources of temporary -WL.

--------------------------------------------------------------------------------
e0ab5a2769 | Kate | 2021-03-07 17:41:31 +0000

Adjust some god conduct wording for consistency

--------------------------------------------------------------------------------
843053f431 | MinticePIU | 2021-03-07 18:44:08 +0200

god-conduct.cc trog line
doesn't appreciate that you’re training magic
--------------------------------------------------------------------------------
98a349ffca | RojjaCebolla | 2021-03-07 18:43:19 +0200

Remove one of your

--------------------------------------------------------------------------------
e92ec0ca06 | Neil Moore | 2021-03-06 22:49:22 -0500

Add a new Jiyva message.
Death to Videodrome!

--------------------------------------------------------------------------------
79e8bcd247 | Nicholas Feinberg | 2021-03-06 18:32:57 -0800

Bump Psyche's Willpower
Give her a better chance of accomplishing something at the depths she
spawns. Her killratio is a piddling 1.3% in recent versions - do better,
Psyche!

--------------------------------------------------------------------------------
ea54bc4844 | Nicholas Feinberg | 2021-03-06 17:52:57 -0800

Ban quaffing known useless !cancel
To save players less familiar with the long and somewhat arbitrary list
of which effects are cancellable / not from completely wasting their time.
(They can still cancel useful effects while not hitting useless ones, but...)

--------------------------------------------------------------------------------
113d0485ee | Nicholas Feinberg | 2021-03-06 17:45:18 -0800

Don't mark cancel useless
Too confusing in the inventory UI.

--------------------------------------------------------------------------------
7bfaeff07b | gammafunk | 2021-03-06 19:26:24 -0600

Some overflow altar vaults by nicolae (12500)
Edits on my part are mostly to reindent, simplify syntax, and to remove
no_monster_gen and no_item_gen tags when possible.

--------------------------------------------------------------------------------
5ccdf786d2 | gammafunk | 2021-03-06 19:25:44 -0600

Reindent some vaults

--------------------------------------------------------------------------------
0983b4dd01 | gammafunk | 2021-03-06 19:25:28 -0600

Adjust ghost vault allow_dup tagging
Previously we marked all ghost vaults as allow_dup, which meant they
could all place multiple times. This was mostly a relic of when there
were fewer ghost vaults and we didn't want games to be stuck without a
ghost vault available. Now we have a wide variety of ghost vaults,
including a reasonable set with both wide placement and generic enough
theme that we can designate with allow_dup to prevent ghost vault
shortages.

This commit removes allow_dup as a default ghost vault tag, explicitly
giving it to a small number of ghost vaults instead.

--------------------------------------------------------------------------------
d81048afd2 | Edgar A. Bering IV | 2021-03-06 19:09:30 +0200

Remove an outdated bribe (dinky)

--------------------------------------------------------------------------------
bbbe490cb5 | Nicholas Feinberg | 2021-03-06 09:12:09 -0800

Fix lucy bribe (dilly)
It's 2021. Quick blades are on the menu!

--------------------------------------------------------------------------------
8b806e2825 | hellmonk | 2021-03-06 11:52:38 +0200

Allow Chei followers to use quickblades.
This was a very silly thematic restriction that eliminated a potentially
interesting character choice. The weapon of speed restriction is pretty silly
too, but those are at least supposed to be magically fast or something;
quickblades are just a weapon type with low attack delay. Chei does not care
about the player reducing their attack delay by gaining weapon skill, nor does
Chei care about the player taking quick actions like removing a ring or
unwielding a weapon, so there is no reason to ban a weapon type merely because
it has low delay.

--------------------------------------------------------------------------------
de416216be | Edgar A. Bering IV | 2021-03-06 10:54:11 +0200

Dereference the correct pointer

--------------------------------------------------------------------------------
1a53e8493b | Edgar A. Bering IV | 2021-03-06 10:43:05 +0200

Don't shatter nonexistant curses (12534)

--------------------------------------------------------------------------------
15ff5c5295 | Nicholas Feinberg | 2021-03-05 18:14:19 -0800

Quiet husks down
Even after raising Swamp ambient noise, they're still very loud. Add
a slightly hacky special case for em.

--------------------------------------------------------------------------------
817a5d48fc | Nicholas Feinberg | 2021-03-05 17:53:59 -0800

Make Swamp loud
The recent compression of Swamp, along with the addition of noisy bunyips
and bloated husks, has meant that fights tend to end up drawing in the
entire level at once. That's fun sometimes, but it probably doesn't need
to happen all the time.

To compensate, increase Swamp's ambient noise. This reduces the distance that
noise travels, meaning noise from melee attacks, spells, and the aforementioned
noisy enemies won't travel as far. Neither bunyips nor bloated husks were
*intended* to call the entire level in on the player. Husks are mostly intended
to be a tricky-to-detonate bomb, and bunyips' cry was intended to dilute their
actions by making them spend less time rushing towards and pummeling you. So, 
this
should move them closer to their original design purpose.

--------------------------------------------------------------------------------
4bdaa1e8ba | Nicholas Feinberg | 2021-03-05 17:52:58 -0800

Remove a shopless bazaar (beargit)
I think that all of these old minmay `? = any shop / T` bazaars should be
using NSUBST instead, but I'm too rusty to do the conversion properly.

--------------------------------------------------------------------------------
7eaf864cf9 | advil | 2021-03-05 13:35:29 -0500

Partially revert "Remove some miasma save compat"
This commit was too aggressive; restore part of the Vs save compat it
removed.

This partially reverts commit 1d33414dbe85f26d31a52569107cbe4ec1205d62.

--------------------------------------------------------------------------------
117a7a4151 | advil | 2021-03-05 13:26:56 -0500

Clean up rTorment muts a bit
This converts MUT_TORMENT_RESISTANCE to a two-level mutation. Level 1 is
50% damage reduction, previously hard-coded to gargoyles. The Gr fakemut
becomes this. Level 2 is previous level 1, and so mummies/ghouls move to
level 2.

MUT_STOCHASTIC_TORMENT_RESISTANCE independently exists as a somewhat
weird and unusual resistance mechanism that on balance seems to me to be
a bit worse than just simple level 1 as it now exists, though it allows
for getting lucky. I'll leave it alone for now though.

--------------------------------------------------------------------------------
1d33414dbe | advil | 2021-03-05 13:26:56 -0500

Remove some miasma save compat
I'm pretty sure all this is unnecessary, and generic removed-mut code
should clean up this mutation where it still exists.

--------------------------------------------------------------------------------
cc1c95e81f | advil | 2021-03-05 13:26:56 -0500

Clean up miasma immunity
* Remove the redundant and now inert (after 7c3aafa790)
  MUT_MIASMA_IMMUNITY from gargoyles and from the game.
* Simplify the way unbreathing interacts with rMiasma, by just moving it
  straight into that code. (This doesn't affect gargoyles, because they
  are also non-living, but may affect grey draconians.)

The fact that gargoyles are non-living isn't really cued anywhere, but
the unbreathing part is shown in `A`, and since this now absolutely
entails rMiasma also, it's probably ok to not directly show that effect
in `A`. The wording of non-breathing could be tweaked if its cloud
immunities aren't clear enough. (It's possible there's not even a need
for non-living as such to prevent miasma now?)

--------------------------------------------------------------------------------
b72ec1a1b6 | Nikolai Lavsky | 2021-03-04 19:24:15 +0200

Add spell damage info to the `I!` menu and morgues
A third of player spells have damage info, but this information is well
hidden.

This commit adds a quick way to compare spells and to see all the
numbers at once.

--------------------------------------------------------------------------------
c2e2f7f19a | Nicholas Feinberg | 2021-03-04 09:03:39 -0800

Remove forxfire

--------------------------------------------------------------------------------
46cce82728 | Edgar A. Bering IV | 2021-03-04 18:57:16 +0200

Abort foxfire if it would obviously have no effect (AdamPG)
Check if there's a visibly open space and abort the spell if there isn't
one. This check happens before spell failure; if foxfire fizzles after
this check it reveals an invisible foe, which the player should be
charged for.

Detected invisible foes currently don't count which is an edge case in a
variety of ways in crawl, but a fix out of scope for this small tweak.

Closes #1790

--------------------------------------------------------------------------------
159f12dd07 | Aliscans | 2021-03-04 18:10:57 +0200

Stop explore from reporting a level as explored if there is an object on an 
excluded square.
_explore_find_target_square() now rejects the first pathfind() call if it 
returns a "hostile" target. check_square_greed() no longer does anything 
similar. The latter change reverses e99fe26798.

This means that an item in/behind an excluded area triggers a "partly explored" 
message.
If an item/space is behind a runed door, explore continues to target it.

--------------------------------------------------------------------------------
da5465ab1e | Aliscans | 2021-03-04 18:10:57 +0200

Allow excluded squares in _is_travelsafe_square() if ignore_hostile is set.
This means that explore reports the search as being incomplete if an excluded 
area blocks off the only access to the explore_horizon.

--------------------------------------------------------------------------------
5993a9cae7 | Aliscans | 2021-03-04 18:10:57 +0200

Make _is_reseedable(c, false) return false for walls and trees which are in an 
exclusion.
This stops the game from incorrectly assessing a level as not being completely 
explored when an excluded area reaches a wall which has an unexplored square 
beyond.

--------------------------------------------------------------------------------
16523e7f5b | hellmonk | 2021-03-04 17:58:29 +0200

Nerf the dex meta
Feedback has made it clear that it's a bit too easy to reach high levels
of ev.  This commit reduces the dodging*dex factor by 20%. High levels
of dex and dodging should remain rewarding, but a little less so, and
will be worse until the player gets there. To compensate the very early
game, the flat portion of dodge_bonus increases slightly.

[ Closes #1784. Committer's note: squashed and rebased. ]

--------------------------------------------------------------------------------
7e0ef7a368 | Skrybe | 2021-03-04 17:12:33 +0200

New Trog-themed weapon trove
New trove: an abandoned arena once used by reveling Trog worshipers.  Loot is 
similar to other weapon troves, but some Trog acquirements (lower chance of 
rare base types, but higher enchantment and increased chance for antimagic) are 
mixed in with the standard acquirements.  The results are distinct from other 
weapon troves while still providing some solid loot.  I took 5 weight from both 
trove_weapon_1 and 2, to keep the overall weight of weapon-only troves the same.



Also noticed that trove_weapons_four_rooms was missing the skill-based veto 
chance other weapon troves have, which I assumed was an oversight, so I added 
that as well.
--------------------------------------------------------------------------------
88e10a6b4d | Skrybe | 2021-03-04 17:12:33 +0200

Edit skrybe_vaults_entry_preservation
Tweak a Vaults entry of mine to use either stone or metal walls, instead of 
always metal.  Also remove an unused monster definition.
--------------------------------------------------------------------------------
46bbb28828 | advil | 2021-03-03 20:16:20 -0500

Refactor some swimming fakemuts
* Standardize printing of an amphibious fakemut based on habitat (each
  of Ba, Op, and Mf took a different strategy for this).
* Add a two-level mutation MUT_NIMBLE_SWIMMER. Level 1 is stealth only
  (Op), and level 2 is stealth + Mf EV/movespeed bonuses. (This packs a
  lot into level 2, but I think this design is a bit cleaner than having
  a distinct mutation for EV/movespeed.)

I've removed some fishtail checks here, in way that I'm *pretty* sure is
safe.

--------------------------------------------------------------------------------
61e7d874a1 | Neil Moore | 2021-03-03 18:30:31 -0500

Don't make the -Potion light always darkgrey (Yermak)
If the inability to drink is temporary, it's because of this duration,
so keep the light red in that case.

--------------------------------------------------------------------------------
b83adbd1c9 | Edgar A. Bering IV | 2021-03-03 19:43:51 +0200

Add a monster info bit for susceptibility to vampirism
Closes #1725

--------------------------------------------------------------------------------
10c448b48d | Ebonnov | 2021-03-03 19:43:51 +0200

Targeter describes if monster is susceptible to Vampiric Draining
Now that susceptibility is determined by rN, the targeter can sanely distinguish
if vampiric draining would do nothing to the target or vampiric draining would
gain no HP from the target.

--------------------------------------------------------------------------------
c0d12b3c5c | Ebonnov | 2021-03-03 19:43:51 +0200

Remove selfench flag from Vampiric Draining
This allows the range display to work automatically. _ms_ranged_spell()
gains a special case, if monsters gain many more range-1 spells this
function will need to check spell range.

[ Committer's note: reworded message. ]

--------------------------------------------------------------------------------
d5a6684c90 | Ebonnov | 2021-03-03 19:38:43 +0200

Make Vampiric Draining a zap and a beam
Creates a zap and an enchantment beam flavor (mimicking Malign Offering
among other damage-dealing enchantment beams) for Vampiric Draining,
replacing existing separate implementation of player version and monster
version.

Coming from the technical conversion are the following gameplay changes:
- monster version can now deal more damage than caster's missing HP
  (i.e. getting player version treatment of 4e331d2).
- damage formula changed from 2d5+1d(pow/7) to 2d(6+pow/14), with
  similar expectation and max, and increased chance to roll close to
  bottom and top ends.

And as an immediate gain:
- monster version shows damage.
- quiver is now enabled only when visible non-susceptible target is
  in range.

One wart:
- casting on non-susceptible target no longer aborts the spell. This
  means that casting with autofight (shift-tab/p) can now fizzle
  (outside living rN+++ monsters). This is consistent with the behavior
  for hexes and pain; a solution to this issue would be a wide-reaching
  improvement to crawl.

[ Committer's note: Reworded commit message. Didn't include all of the
  submitted gameplay changes; the beam only works on vampirism
  susceptible targets. This specific vulnerability gets revealed to
  monster_info in a later commit. ]

--------------------------------------------------------------------------------
4ea69e3b24 | advil | 2021-03-03 10:37:40 -0500

Mark steam resistance as suppressed by forms
This is for consistency with other draconian types; the breath ability
is already suppressed as well.

--------------------------------------------------------------------------------
bac44d21f1 | advil | 2021-03-03 10:37:12 -0500

Reduce explicit species checks: gnoll
All that was needed for this is to convert distributed training from a
fakemut to a real mutation. This was fairly straightforward overall.
`_player_is_gnoll` from e00f04a389b562 becomes a direct mutation check;
it looks like this helper function was added to make the code overall
more readable/systematic (probably to avoid bugs when modifying this
code) so I think checking a mutation in a systematic way accomplishes
this goal as well.

--------------------------------------------------------------------------------
fb3425029c | Edgar A. Bering IV | 2021-03-03 16:05:29 +0200

Mark a vault as transparent

--------------------------------------------------------------------------------
46ec449faf | Aliscans | 2021-03-03 09:17:08 +0200

Don't make a note when the player finds an altar for a god the character can't 
worship.
Add a "temp" parameter to player_can_join_god() and 
player::undead_or_demonic(). If false, the functions ignore temporary effects 
from mutations and spells, and only consider permanent barriers such as the 
player's species and Ru sacrifices.

Use this to stop the game from making a note on finding an altar for a god the 
character will never be able to worship.

--------------------------------------------------------------------------------
57cc695410 | Nicholas Feinberg | 2021-03-02 21:36:03 -0800

Reword Forlorn mut
I couldn't resist, sorry.

--------------------------------------------------------------------------------
c95325c382 | Nicholas Feinberg | 2021-03-02 21:23:51 -0800

Improve manifold/unrand messaging (dilly)
Be clearer about why you can't manifold with singsword right now.

--------------------------------------------------------------------------------
0df57e7cfc | Nicholas Feinberg | 2021-03-02 18:52:03 -0800

Give Wyrmbane a glow up (Wensley)
Print a message when a dragon with high enough HD to give Wyrmbane
an upgrade comes into view. (This is a semi-despoiler of HD mechanics.)

--------------------------------------------------------------------------------
818f26b0ed | advil | 2021-03-02 20:05:27 -0500

Fix behavior of `species_mutation_level`
I had misunderstood how level gains were represented when I first wrote
this; fix it to use the total mutation level at an xl rather than the
change at an xl.

--------------------------------------------------------------------------------
3920f8e293 | advil | 2021-03-02 19:58:40 -0500

Reduce explicit species checks: naga
* MUT_CONSTRICTING_TAIL becomes two level, where the first level is mainly
  cosmetic and prevents boots. The old boot fakemut is no longer needed.
* Some tweaks to how walking verbs are used; Naga is standardized on
  "slither" (this was hard-coded in one place, but the yaml used
  "slid"). This will change some lugonu titles.

This commit also slightly generalizes species fixup code to handle
multiple levels of a mutation. There's some flavor code that I didn't
figure out a good way to generalize.

--------------------------------------------------------------------------------
96d86173be | advil | 2021-03-02 19:58:28 -0500

Remove an extraneous function

--------------------------------------------------------------------------------
2188dfaaa0 | advil | 2021-03-02 16:52:43 -0500

Fully unremove forlorn

--------------------------------------------------------------------------------
84b802d940 | advil | 2021-03-02 15:29:46 -0500

Reduce explicit species checks: demigod
This commit is part of a series that attempts to more cleanly treat
species as bundles of traits/behaviors that have their own well-defined
semantics, and minimize the use of explicit species checks in the code.

* Repurpose old MUT_FORLORN to indicate Dg's atheist conduct. (I'm not
  sure if the short-form "forlorn" flavor quite works?)
* Abstract/generalize the stat gain stuff into species.cc a bit. I'm
  sort of torn about whether it makes sense to even bother doing this
  except for the principle of the thing. I did decide this was good to
  add to the ability screen, but it's implemented as a programmatic
  fakemut based on the stat gain multiplier rather than a realmut.

--------------------------------------------------------------------------------
658772aece | advil | 2021-03-02 12:00:13 -0500

Actually add MUT_MULTILIVED to felid
... tested save compat but not actually making a new character...

--------------------------------------------------------------------------------
39af0f7025 | advil | 2021-03-02 11:56:17 -0500

Reduce explicit species checks: felid part 3
This is the change for felids I'm least sure of (in the sense of, is it
worth being principled to this degree): convert the hard-coded
life-gaining ability to a species mutation. This does get some minor UI
gains in that the ability shows up in the mutation list now.

--------------------------------------------------------------------------------
9f681435c2 | advil | 2021-03-02 11:56:17 -0500

Reduce explicit species checks: felid part 2
This commit covers many things:
* no weapons/ammo is converted from a fakemut to MUT_NO_GRASPING.
* no armour is converted from a fakemut to MUT_NO_ARMOUR (the Ru sac mut
  is renamed).

For these two changes I alternatively considered lumping them into one
mutation, or lumping both of them into MUT_PAWS. However, it seemed
cleanest / most readable to keep them distinct, even though these three
mutations don't ever appear separately.

Also:
* Refactor skin flavor some more, add code to get the noun forms, add
  felid to this. I also tweaked a few flavor messages around this.
* A few more misc paw-related tweaks that I had missed.
* Refactor species scream verbs; these get moved into species.cc with a
  few tweaks. (e.g. add growling to gnoll directed 0-level shouts.)

--------------------------------------------------------------------------------
e23dd17498 | advil | 2021-03-02 09:15:33 -0500

Fix sac drink preconditions
Flipped in 9b28f76f3da3.

--------------------------------------------------------------------------------
fc1ad161a1 | advil | 2021-03-02 09:15:33 -0500

Reduce explicit species checks: felid part 1
Refactor some remaining paw-related issues (60a0ea410 addressed some of
these already). Mainly: Consolidate MUT_PAWS with the stealth fakemut,
and finish conditioning various felid stealth-related checks on this
mutation instead of the species. This lightly reflavors MUT_PAWS to
mention both stealth and pouncing, and leaves the sharp claw stuff to
the co-existing MUT_CLAWS. The fakemut is gone altogether, and some form
interactions are more standardized, so the mutation screen will more
accurately display with the stealth bonus is suppressed.

--------------------------------------------------------------------------------
d4c891490c | Edgar Bering | 2021-03-02 07:40:59 -0500

Changelog through 0.27-a0-498

--------------------------------------------------------------------------------
7ecbb0a48f | hellmonk | 2021-03-01 20:08:35 -0800

Make *slow stack in the same way as *corrode.
Instead of being slightly different for no reason.

Closes #1785.

--------------------------------------------------------------------------------
5f1ef305e6 | Aliscans | 2021-03-01 19:54:17 -0800

Rename local variables in spectral_weapon_fineff::fire().
The following compiler warning was given by gcc 10.2.0. Renaming def removes 
the warning. I also renamed atk, but only for consistency.

fineff.cc: In member function ?virtual void spectral_weapon_fineff::fire()?:
fineff.cc:721:12: warning: declaration of ?def? shadows a member of 
?spectral_weapon_fineff? [-Wshadow]
  721 |     actor *def = defender();
      |            ^~~
In file included from fineff.cc:9:
fineff.h:30:16: note: shadowed declaration is here
   30 |     mid_t att, def;

Closes #1792.

--------------------------------------------------------------------------------
18f1c7c63f | Nicholas Feinberg | 2021-03-01 19:31:16 -0800

Don't make monster refrig affect the caster
Symmetry with the player version.

--------------------------------------------------------------------------------
905266d83c | Nikolai Lavsky | 2021-03-01 18:54:45 -0800

Describe Ozocubu's Refrigeration and Drain Life in monster
The spells weren't handled by ``mons_spell_beam()``, so the monster
utility wasn't showing their damage.

Unlike monster, xv can already show the damage for these spells, since
it gets the numbers in a different way.

(Committer's note: moved this into the nicer struct.)

--------------------------------------------------------------------------------
e178da98d6 | Nicholas Feinberg | 2021-03-01 18:44:21 -0800

Cancellation descr improvements (12531, Yermak)
- Don't print empty statuses
- Don't print (expiring)
- Further clarify when it'll have no effect

--------------------------------------------------------------------------------
85c0b4d56b | Kate | 2021-03-02 02:23:34 +0000

Fix a vault randart
Randart armour isn't supposed to be given egos, and doing so can generate
buggy items (like boots with double rampaging in this case).

--------------------------------------------------------------------------------
a4bb394fd4 | Edgar A. Bering IV | 2021-03-01 22:12:40 +0200

Allow Ash boosts to adjust max hp, mp and spell levels
Ashenzari boosts are long-lived and intended to be functionally
equivalent to having the extra skill levels. Heroism still does not give
a boost to maxhp, partly because it seems like a technical headache
because of how heroism is implemented.

--------------------------------------------------------------------------------
2427743e6d | Edgar A. Bering IV | 2021-03-01 22:12:40 +0200

Don't grant curse skill boosts for melded equipment (PleasingFungus)
Since the curse boost is an equipment property and the rest of those are
suppressed by transmutation, let's be consistent and withdraw
transformed bonuses.

So players can see what has happened this is reflected in the ^ screen.

--------------------------------------------------------------------------------
656fa3bc60 | advil | 2021-03-01 11:43:49 -0500

Reduce explicit species checks: draconian
This commit is part of a series that attempts to more cleanly treat
species as bundles of traits/behaviors that have their own well-defined
semantics, and minimize the use of explicit species checks in the code.

Red draconians: fix up a manual zap conversion.

Pale draconians: convert steam resistance to a real mut (before it
wasn't shown at all, perhaps because it seems not-very-important?)

Grey draconians:
 * There's still a hard-coded ac bonus in player::racial_ac, wasn't
   obvious to me that there is a clean way to abstract this one.
 * Their relationship to water was very confused; I have (maybe) cleaned
   this up a bit. Previously, they had MUT_UNBREATHING, a fakemut about
   walking through water, can_swim=True, and a hard-coded check in
   player::extra_balanced. The latter, I'm pretty sure, is currently
   redundant with swimming (it probably wasn't in the past). I have
   consolidated these by making MUT_UNBREATHING two levels, where the
   second level is flavored like the old fakemut. The fakemut is gone,
   they aren't specified as swimming (though the mut is still checked in
   swimming code), and extra_balanced has been refactored, including
   some unrelated cleanups.

--------------------------------------------------------------------------------
24c7b1a3ef | Edgar A. Bering IV | 2021-03-01 08:05:44 +0200

Nerf new Ashenzari skill boost
Making it easier to get multiple of the same curse and also doubling the
boost formula was effective in making it more powerful. Too powerful.

Two curses of the same type still give a multiplier equal to the "fully
bound" level of old Ashenzari, so hopefully this lands on a good power
level.

--------------------------------------------------------------------------------
88baaf19db | Nicholas Feinberg | 2021-02-28 21:12:16 -0800

Preview !cancel in its description
List the effects that will be removed.

--------------------------------------------------------------------------------
fad94b14d9 | Nicholas Feinberg | 2021-02-28 21:01:22 -0800

Make duration data short text consistent
If my next commit is going to work, all of these have to be in
adjective form, not just some!

--------------------------------------------------------------------------------
ed9a95061b | Nicholas Feinberg | 2021-02-28 20:23:11 -0800

Mark !cancel useless when appropriate
(If neither contaminated nor buffed.)

--------------------------------------------------------------------------------
83795c0764 | Nicholas Feinberg | 2021-02-28 19:40:44 -0800

Deduplicate animals
Now that our favourite +8 unrand rings have been renamed.

--------------------------------------------------------------------------------
5fc3b572a5 | Kate | 2021-03-01 02:41:27 +0000

Prevent entering pre-existing piety troves under Ashenzari
In the weird edge case where you find a piety trove and then convert to
Ashenzari, don't allow entry at all, since reducing piety is tied to
shattering cursed items (and causes buggy behaviour if reduced normally).

--------------------------------------------------------------------------------
7290ec1f24 | Nicholas Feinberg | 2021-02-28 17:31:16 -0800

Reduce Ash join spam
Don't ID things you've already ID'd!

--------------------------------------------------------------------------------
278a1cfa91 | Nicholas Feinberg | 2021-02-28 17:23:13 -0800

Ban piety troves under New Ash
They don't work properly (your piety resets once you reload or curse
another item) and it's not very clear what making them work properly
would even mean.

--------------------------------------------------------------------------------
e66e4f1fd0 | Nicholas Feinberg | 2021-02-28 17:10:44 -0800

Simplify spellforged servitor energy (hellmonk)
De-randomize them: instead of taking 10-25 energy to cast a spell,
take 18 consistently. This appears on their xv, which is nice.

Further context:
- 3595075b7f7
- f37f6fb1095

--------------------------------------------------------------------------------
190982bc61 | advil | 2021-02-28 20:04:06 -0500

Reduce explicit species checks: palentonga
This commit is part of a series that attempts to more cleanly treat
species as bundles of traits/behaviors that have their own well-defined
semantics, and minimize the use of explicit species checks in the code.

Only minor things here:
* condition MUT_ROLL upgrades on having the mutation innately
* refactor/simplify some tail code (no changes to behavior)
* move the barding code to species.cc, perhaps for later dataification

--------------------------------------------------------------------------------
11248dd59e | Nicholas Feinberg | 2021-02-28 16:11:00 -0800

Don't trigger spectral weapon on all attacks (particleface)
(oops)

--------------------------------------------------------------------------------
c496030317 | advil | 2021-02-28 19:00:44 -0500

Reduce explicit species checks: minotaur
This commit is part of a series that attempts to more cleanly treat
species as bundles of traits/behaviors that have their own well-defined
semantics, and minimize the use of explicit species checks in the code.

Minotaurs were in reasonable shape, only two tweaks:
* Convert retaliatory headbutt to a real mutation. This allows removing
  some custom mutation suppression code.
* Tweak some hints mode tips to talk about horns, rather than species.

(Also, one hopefully cosmetic fix for the mutation data structure..)

--------------------------------------------------------------------------------
b294f25f7b | Nicholas Feinberg | 2021-02-28 15:44:08 -0800

Trigger spectral weapon on all attacks
Including misses & blocked attacks. This should bring it closer to
the design goals/tradeoffs described in e6bb7ee78e63.

--------------------------------------------------------------------------------
757c4c4f7f | Nicholas Feinberg | 2021-02-28 15:34:08 -0800

Drop Depths monsters count again
XP down 4% from 0.26, which seems a-ok. Goal is to make overall
difficulty closer to what it was before the removal of chaff.

--------------------------------------------------------------------------------
4587593e40 | Edgar A. Bering IV | 2021-02-28 21:28:33 +0200

Don't allow shattering melded items (12528)

--------------------------------------------------------------------------------
60b1cd0c92 | Edgar A. Bering IV | 2021-02-28 21:28:33 +0200

Don't offer Ash monks the second curse too fast
Give them a chance to apply the first curse, and just set the progress
timer to most of the way to the second curse so it will appear quickly.

Closes #1782

--------------------------------------------------------------------------------
585d864186 | advil | 2021-02-28 14:18:04 -0500

Reduce explicit species checks: vinestalker
Vinstalkers are in good shape, this is the only obvious change I found.

--------------------------------------------------------------------------------
9b28f76f3d | advil | 2021-02-28 14:18:04 -0500

Reduce explicit species checks: mummy
This commit is part of a series that attempts to more cleanly treat
species as bundles of traits/behaviors that have their own well-defined
semantics, and minimize the use of explicit species checks in the code.

For mummies:
 * convert a hardcoded adjustment to rF + fakemut to use
   MUT_HEAT_VULNERABILITY. I can't find any reason this wasn't done in
   the past except that it was very old code. There is a minor flavor
   difference in the wording of the mutation.
 * add a real mutation for non-drinking. I also did a bunch of cleanup
   and refactoring of the drinklessness checks (you_drinklessness ->
   you.can_drink).
 * for some flavor stuff, use the skin adjective string added in a
   previous commit. Not sure if this is ultimately the best way, but it
   seems to me to still be an improvement in that this flavor logic is
   better consolidated.
 * clean up player::can_bleed; should have no behavior changes.
 * Generalize player::can_smell (which is for flavor only): no lifeless
   undead can smell after this commit.

--------------------------------------------------------------------------------
fef436477a | advil | 2021-02-28 14:15:52 -0500

Rename (internally) two Ru mutations
No user-facing changes, but the mut names were somewhat misleading.

--------------------------------------------------------------------------------
07dbac4f64 | advil | 2021-02-28 14:15:52 -0500

Reduce explicit species checks: tengu
This commit is part of a series that attempts to more cleanly treat
species as bundles of traits/behaviors that have their own well-defined
semantics, and minimize the use of explicit species checks in the code.

Tengu are easy. A previous commit cleaned up some superficial code, and
this one uses the tengu flight mutation for a bunch of cases rather than
checking the species directly.

--------------------------------------------------------------------------------
009b781653 | advil | 2021-02-28 14:15:52 -0500

Convert hands to fists for UC forms name
Separating this bit out because it is kind of hacky...

--------------------------------------------------------------------------------
60a0ea410a | advil | 2021-02-28 14:15:52 -0500

Consolidate and clean up some body part name code
This tries to reduce a bunch of code duplication while making some body
part name cases more consistent, and also reduce reliance on
species-specific checks.

Biggest changes to blade hands code, which is/was fairly involved, but
hopefully all changes are improvements. The commit removes the general
blade hands name ("scythe-like blade") that was used in various cases,
awkwardly, and uses a clean version of the regular hand name. For ice
form, we use "Ice paws" (instead of "Ice fists") in the UI -- the form
data already used "paws" as the hand name (for e.g. ring wearing), so
this improves consistency. For statue form, I used the regular hand name
instead of "fists"; maybe this should still be customized for the "hand"
case (but it reduces duplication of similar code).

This stuff was all complex enough that there may well be corner cases
that this commit breaks...

--------------------------------------------------------------------------------
b314f132a3 | advil | 2021-02-28 14:15:52 -0500

Reduce explicit species checks: formicid
This commit is part of a series that attempts to more cleanly treat
species as bundles of traits/behaviors that have their own well-defined
semantics, and minimize the use of explicit species checks in the code.

For formicids:
* use you.stasis() instead of a species check. This might be even better
  converted from a fakemut to a realmut, but since this call already
  existed (for actor even) I repurposed it. If anyone ever adds back in
  non-perma-stasis, that would be a good time to turn this into a mut.
* Lump formicid dig in with monster burrowing (since they have the same
  behavior) and add an actor call. Again, for players this could be
  turned into a realmut eventually, similar to the monster bit. This
  ties player self-shaft in with this check too.
* Convert four-handedness from a fakemut to a real mutation
  (MUT_QUADRUMANOUS).
* Use innate_sinv() instead of species checks; this may change some
  semantics for physiology conflicts (but probably in a good way).
* For cosmetic reasons add a minor species check for bonelessness (Op
  and Fo).

--------------------------------------------------------------------------------
171c57d503 | Edgar A. Bering IV | 2021-02-28 20:47:19 +0200

More Ash randnames (nicolae)

--------------------------------------------------------------------------------
f192cf5699 | Kate | 2021-02-28 18:01:19 +0000

Reword some Ashenzari curse names

--------------------------------------------------------------------------------
f1db142f3a | Kate | 2021-02-28 17:46:43 +0000

Assign Ashenzari abilities to uppercase letters
As with Ru sacrifices. They could also potentially just be assigned to 'a'
and 'b' like other god invocations, but either way shouldn't use the current
assignments of 'f' and 'g' which are for non-invocation abilities.

--------------------------------------------------------------------------------
ec7707c53d | Neil Moore | 2021-02-28 01:27:53 -0500

Staticalise a function

--------------------------------------------------------------------------------
2bdad01aa9 | Neil Moore | 2021-02-28 01:25:53 -0500

Refactor into set_artefact_brand()

--------------------------------------------------------------------------------
2a051d674a | Neil Moore | 2021-02-28 01:09:14 -0500

Preserve brands when Ash-cursing items (#12527)

--------------------------------------------------------------------------------
297a19dbdb | Nicholas Feinberg | 2021-02-27 18:15:50 -0800

New Nemelex skill titles (hellmonk)
Very cute.

--------------------------------------------------------------------------------
0891b3a2b8 | Nicholas Feinberg | 2021-02-27 17:20:54 -0800

Finish removing Depths chaff
As the prelude to Vaults changes, remove some weak monsters present
in both Depths and Vaults. Reduce total Depths spawns by roughly 8%
to compensate. Total XP remains unchanged.

The first part of this commit was inadvertently included in fdd91fc31 .

--------------------------------------------------------------------------------
fdd91fc31c | Nicholas Feinberg | 2021-02-27 17:01:21 -0800

Temporarily tweak Tengu Reaver's spells
Lightning Spire doesn't quite work yet as a monster spell. I like the idea of
it, but don't currently have the time to fix it up.

Instead, give reavers a pile of elemental bolt spells to really simulate the
classic cj experience. Total spell weight equal to the old MST_TENGU_REAVER_III.

--------------------------------------------------------------------------------
ba82baf56e | Edgar A. Bering IV | 2021-02-27 19:39:17 +0200

Fix a crash

--------------------------------------------------------------------------------
8b5a972acc | Edgar A. Bering IV | 2021-02-27 18:42:53 +0200

More Ashenzari artefact names (nicolae)

--------------------------------------------------------------------------------
6169cafb0b | Edgar A. Bering IV | 2021-02-27 18:19:34 +0200

Increase the skill boost contribution of piety
Even after consolidating curses into bins, getting three curses of the
same type is rare (less than 8% of 10-curse rolls will have any triple
at all; less than 1% of 10-curse rolls will have a chosen triple). Over
the longer run, if the player is willing to make gear sacrifices or wait
for more curse re-rolls these odds can be increased, of course, but at a
cost.

New skill boosts scale with the number of curses, so it's hard to get
the multiplier up to the range of old skill boosts without luck. This
commit increases the contribution from piety, which should both make
foregoing curses more noticable and the impact of adding "irrelevant"
curses.

--------------------------------------------------------------------------------
b9714ae4ff | Edgar A. Bering IV | 2021-02-27 17:17:57 +0200

Reforge the Chains VII: Grouped skill bonuses
After initial playtesting feedback, completely random skills had some
interesting upsides (when the stars aligned and a triply-cursed skill
could also be utlized it was a good moment) they were also frustrating
and had bad gamefeel:

- multiple melee skills when a player is probably only using one (maybe
  two)
- hard to roll relevant magic skills
- occasionally taking a "useless" or "not that useful" curse was fun but
  it was happening too often.

This commit changes the skill bonuses to be granted in the following
skill groupings, more fine grained than the old ash skill categories but
not as broad as totally random skilling:

Melee: all melee combat skills
Ranged: all ranged combat skills
Fortitude: Armour and Shields
Cunning: Dodging and Stealth
Elements: Air, Earth, Fire, and Ice Magic
Alchemy: Transmutations and Poison Magic
Beguiling: Conjurations, Hexes, and Translocations
Companions: Necromancy and Summonings
Self: Fighting and Spellcasting
Evocations: Evocations.

Each curse offers two out of these ten categories chosen at random and
without weight. This will hopefully allieviate some of the bad feelings
from totally random skill boosts while retaining the character shaping
aspects of the narrower bonus granting.

In lieu of save compatibility, since this has only been live on trunk
briefly, this commit just switches to a new prop key for the new curses.

--------------------------------------------------------------------------------
f5a408906c | Edgar A. Bering IV | 2021-02-27 16:52:52 +0200

Remove a now-unused enum type

--------------------------------------------------------------------------------
9f69345686 | Edgar A. Bering IV | 2021-02-27 11:46:48 +0200

Change weapon abbreviations to match aptitudes.txt

--------------------------------------------------------------------------------
c9da168cd4 | Edgar A. Bering IV | 2021-02-27 11:11:24 +0200

Always reset curse progress when shattering
Otherwise, the player is incentivized to shatter "just before" the curse
timer times out, which means tracking the timer, to minimize the time
spent at lower piety.

--------------------------------------------------------------------------------
e8ee47db1e | Edgar A. Bering IV | 2021-02-27 11:03:24 +0200

Tweak some Ash god power messaging

--------------------------------------------------------------------------------
68ea36cf6f | Edgar A. Bering IV | 2021-02-27 11:03:07 +0200

Increase curse frequency in various ways
This decreases the curse delay from 50 to 20, making curses more
plentiful. The curse delay was copied from Ru, but Ru sacrifices offer
far more benefit than a single curse. The delay was also re-set upon
accepting a curse, this behavior was somewhat opaque; curses now come at
the same rate regardless of whether they're accepted or ignored.

This commit also arranges for monks to be offered two curses shortly
after joining, instead of one.

--------------------------------------------------------------------------------
ace5c5693b | Edgar A. Bering IV | 2021-02-27 02:01:24 +0200

Don't offer to shatter the chains uncursed (12524)

--------------------------------------------------------------------------------
443c4d33a9 | Edgar A. Bering IV | 2021-02-27 01:51:14 +0200

Tweak Ash curse randart names (nicolae)

--------------------------------------------------------------------------------
889b946b96 | Edgar A. Bering IV | 2021-02-27 01:50:09 +0200

Fix save compatibility props initialization

--------------------------------------------------------------------------------
be96e517c0 | Edgar A. Bering IV | 2021-02-26 23:03:48 +0200

Fix a db lookup regression (PleasingFungus)

--------------------------------------------------------------------------------
40f7080bd1 | Goratrix | 2021-02-26 22:59:20 +0200

Add the AK splash screen to webtiles
File was added with 7ddf969 but needs to be added here to appear in
webtiles.

--------------------------------------------------------------------------------
85b7f54256 | AdamPG | 2021-02-26 22:58:03 +0200

Fix a typo in geoelf_rooms.lua

--------------------------------------------------------------------------------
e386880645 | Nikolai Lavsky | 2021-02-26 22:57:02 +0200

Refactor a conditional in `spell_uselessness_reason`
Also, fix a colour tag in `_player_spell_desc`.

--------------------------------------------------------------------------------
ed6ad04f2f | Nikolai Lavsky | 2021-02-26 22:57:02 +0200

Don't waste time casting Sublimation of Blood when at max MP
After 4502bb1e, the player can cast Sublimation when at max MP. The
description still has the "This spell would have no effect right now"
warning, and the spell is correctly greyed out on the quiver in this
situation, though.

Fix this by moving Sublimation's MP check into a function that is
called before subtracting the MP cost. This adds a spell-specific
check to casting-specific ones, but it's good to have all MP-related
checks in one place. Also, it's clearer than temporarily refunding
the spell cost, as it was before 4502bb1e.

--------------------------------------------------------------------------------
4d387a3930 | Edgar A. Bering IV | 2021-02-26 22:40:52 +0200

Tweak Ashenzari piety gain
Ensure all species get to 1* piety with at most two curses. Save poor
little octopus.

--------------------------------------------------------------------------------
cc4f045668 | Edgar A. Bering IV | 2021-02-26 22:18:31 +0200

Activate Ash skill boost from 0* (mdonais)
The skill boost requires curses to take advantage of; at 0* and only one
curse the skill point multiplier is 4. Compared to 24 for one curse at
6* this isn't that noticable.

In exchange, the play experience is clearer: all of the messages about
curses being tied to skills don't have to have caveats, and a Monk
actually gets something immeidate out of using their first curse.

--------------------------------------------------------------------------------
904f624fcb | Edgar A. Bering IV | 2021-02-26 22:17:41 +0200

Mark ?id useless for ash followers (mdonais)

--------------------------------------------------------------------------------
edbb297545 | Edgar A. Bering IV | 2021-02-26 22:10:09 +0200

Default force_more for curse offering (mdonais)

--------------------------------------------------------------------------------
d758f4ad8f | Edgar A. Bering IV | 2021-02-26 22:01:16 +0200

Describe curse exploration (mdonais)

--------------------------------------------------------------------------------
ba0159d6e4 | Nicholas Feinberg | 2021-02-26 08:24:22 -0800

Fix unused variable warning

--------------------------------------------------------------------------------
1c28abb116 | Edgar A. Bering IV | 2021-02-26 17:30:49 +0200

Canonical skill abbreviations for display
Currently used for Ru and Ashenzari ability menu display, and Ash curse
inscriptions.

--------------------------------------------------------------------------------
fcfbbb0451 | Edgar A. Bering IV | 2021-02-26 17:30:49 +0200

Create a new vision_iterator (PleasingFungus)
A handful of places in the code performed a radius_iterator iteration
over LOS_NONE and then immediately filtered for you.see_cell to respect
scrying and wizard xray vision effects. This iterator encapsulates the
idiom of iterating over an actor's vision (permitting actor::see_cell to
override the considerations of LOS checks).

--------------------------------------------------------------------------------
cf6be6ae82 | Edgar A. Bering IV | 2021-02-26 17:29:57 +0200

Reforge the Chains VI: Randartify cursed items
To make the curses more permanent, cursed items are made into randarts
if possible, locking in their brand and enchantment. No randart props
are granted (other than the skill boosts!). Randart names are generated
from a special Ashenzari keyword in the database for a thematic name.

Thanks to CanOfWorms,hatsuma, Lici_the_Crawler, nicolae, and
PleasingFungus for curse name suggestions.

--------------------------------------------------------------------------------
6c61df32c5 | Edgar A. Bering IV | 2021-02-26 17:25:03 +0200

Code cleanup of old curse code

--------------------------------------------------------------------------------
b19e37cef9 | Edgar A. Bering IV | 2021-02-26 17:25:03 +0200

Save compatibility for new Ashenzari

--------------------------------------------------------------------------------
6fc834afe4 | Edgar A. Bering IV | 2021-02-26 17:25:03 +0200

Reforge the Chains V: Bind skill knowledge to curses
This commit reimagines Ashenzari curses to offer specific knowledge (in
exchange for binding the slot). Currently Ash picks two skills and the
player can either take the curse and the knowledge, or ignore it. Ash
will eventually offer a new curse.

This choice can hit the player in a variety of ways: are the skills
offered too good to pass up, thus ending up on an otherwise not great
item for a long time? Are the skills not ones the player anticipates
using but they're desparate for piety so they'll put a not great curse
on a great item? Both are good, and occasionally the player will delight
in getting the opportunity to put a good curse on a good item they want
to keep!

With the variety of curses, it remains possible for an Ash character to
be a jack of all trades, but also to become highly focused in something
that might otherwise be hard for their species! Exciting possibilities
abound, that will need some further number tuning.

--------------------------------------------------------------------------------
0b9efa778e | Edgar A. Bering IV | 2021-02-26 17:25:02 +0200

Remove an XXX; startup.cc handles the issue in question

--------------------------------------------------------------------------------
da19f9da44 | Edgar A. Bering IV | 2021-02-26 17:24:45 +0200

Reforge the Chains IV: Shatter the Chains
To go with the new curse scheme, uncursing becomes available to any
cursed Ash worshipper.

Uncursing removes and destroys the item (triggering all on remove
effects, no secret disto unwield tech). It also forgoes the currently
offered curse and re-sets the curse timer (to make sure uncursing is
felt).

--------------------------------------------------------------------------------
c9f47ef48c | Edgar A. Bering IV | 2021-02-26 17:22:30 +0200

Reforge the Chains III: Curse piety
Tying Ashenzari's curses to scrolls was always a bit awkward. With the
removal of other curses and the rc scroll this mechanic is untenable.
Since Ash's introduction Crawl gained another god: Ru, who periodically
offers something which grants piety through an alternate mechanism.

As part of an overhaul of Ashenzari, this commit changes Ash piety to
scale directly with bondage level: it takes two curses for a Human to
reach 1*, and they arrive at 6* when all slots are bound. The exact
formula scales with slots, so Felids have a much easier time reaching
6*; the formula is:

    piety = 2 + ( num_cursed * 160 ) / num_slots

This applies to current slots, so if a slot is lost due to mutations the
player isn't penalized.

Coupled with this: Ashenzari no longer applies curses in exchange for
items. Instead, players are occasionally invited to curse an item.
Accepting a curse re-starts the curse timer; ignoring it simly lets it
sit there.

--------------------------------------------------------------------------------
bff98f8d11 | Edgar A. Bering IV | 2021-02-26 17:21:54 +0200

Reforge the Chains II: Adjust Ash passives
Grant Ashenzari's passives earlier, with skill boost arriving at 1*, see
invisible at 2*, and clarity at 3*. Starting at 4*, also grant
perma-scrying with a radius of 2, the radius grows with piety stars
until reaching radius 4 at 6*.

--------------------------------------------------------------------------------
0aebcb437f | Edgar A. Bering IV | 2021-02-26 17:21:53 +0200

Reforge the Chains I: Remove old Ash actives
Remove Scrying and Skill Transfer, the new Ash will only have passive
effects.

--------------------------------------------------------------------------------
f312af23e9 | Nicholas Feinberg | 2021-02-25 22:23:13 -0800

Tweak spell descriptions (ShaperMC)
Increase clarity, decrease poetry.

--------------------------------------------------------------------------------
642ebbb733 | Nicholas Feinberg | 2021-02-25 22:09:54 -0800

Simplify
Make prefer_ranged do something other than 'prefer shooting to attacking
with reach weapons' if it's not on a monster with the 'archer' flag. At
present, it always *is* on monsters with the archer flag, so this commit
does nothing, but it seems like nice future proofing.

--------------------------------------------------------------------------------
7ddf969dea | Nicholas Feinberg | 2021-02-25 17:46:40 -0800

New AK splash screen from E.M. Fields
The artist (https://mobile.twitter.com/EMFields_Art) has agreed to
license the art under CC0. Many thanks to him for the fantastic piece!
The original can be seen here:

https://lexiconmegatherium.tumblr.com/image/126515730356

--------------------------------------------------------------------------------
83025b51d3 | Implojin | 2021-02-25 17:12:23 -0800

Fix equipment identification
bb19ded didn't properly identify items that were already in the player's
inventory. This commit restores equip identify behavior, to fix this
and handle any unforeseen cases of items being placed directly into the
player's inventory.

Closes #1777.

--------------------------------------------------------------------------------
7a85846853 | Nicholas Feinberg | 2021-02-25 09:23:53 -0800

Fix @player_only@ messages (#9201)
When printing monster spell messages, we never checked to see if we
they were valid. As a result, unseen ghost moths casting Draining Gaze
on other monsters would print the literal string "You feel something
watching you. @player_only@".

This bug was introduced in e143a0ad5d2 (October 2014) and first reported
by johlstei a month later. I managed to reproduce it in March 2015 but was
unable to figure out the root cause, because the monster speech code is
absolutely insane. But this is it!

--------------------------------------------------------------------------------
5110eb77c4 | Nicholas Feinberg | 2021-02-25 08:34:55 -0800

Fix ID notes (dinky)
Broken in bb19ded6d30e696c234aeda7060a468f3fc7a340 .

--------------------------------------------------------------------------------
317cea8a3c | Nicholas Feinberg | 2021-02-24 18:28:27 -0800

Fix more cursed item descs (Nomi)
See 52645efa069834ac9ca1066c78a845ef7baba59d .

--------------------------------------------------------------------------------
ca2cecf3c0 | Nicholas Feinberg | 2021-02-23 21:56:14 -0800

Tweak animated armour scaling (gammafunk)
To avoid confusion between the summoned armour's plus and the worn
armour it comes from, buff HD with power instead.

--------------------------------------------------------------------------------
e3bbeeb173 | Nicholas Feinberg | 2021-02-23 21:55:35 -0800

Tweak permasummon desc
Replace an awkward "and" about stairs. It keeps happening.

--------------------------------------------------------------------------------
bb19ded6d3 | Implojin | 2021-02-23 21:43:23 -0800

Turn wear-id into floor-id
Following much the same reasoning as in f6d4cf81.

Especially now that curses are gone (RIP), there's very little incentive not
to wear-ID items. (This was mostly true before too, but it's extra obvious
now.) Instead, just identify equippable items when you step on them. This does
remove certain categories of surprise from randarts (it's *Contam!), but
players will live.

No comp for this in terms of ?id drops, since that item was better spent on
consumables for the period of the game in which ?id is in finite supply.
(So no difference.)

Closes #1770.

--------------------------------------------------------------------------------
4a2567b755 | Nicholas Feinberg | 2021-02-23 21:36:06 -0800

Fix monster quiver desc (vt)

--------------------------------------------------------------------------------
8dd771eca2 | Nicholas Feinberg | 2021-02-22 17:55:06 -0800

Simplify ghostly spectral weapon code
It was only ever being cast at one power. (dungeon.cc doesn't count,
since that code will never be hit.)

--------------------------------------------------------------------------------
e6bb7ee78e | Nicholas Feinberg | 2021-02-22 17:29:49 -0800

Simplify spectral weapons
Simplify the effect. The weapon pops out when you attack, immediately
follows up, and then sticks around until the end of your next turn.
If you hit again, everything repeats. Otherwise, it vanishes.

The design here is of an ego with great damage but that has some
positioning constraints, and that still has the potential drawback of
damage sharing. (If the positioning constraints turn out to be enough to
make it interesting, we can junk the damage sharing.)

I've just removed monster spectral ego for now, but it'd be nice to have
it back eventually.

--------------------------------------------------------------------------------
72e693e10d | Nicholas Feinberg | 2021-02-22 17:16:23 -0800

Make spines trigger on manifold assault attacks
This is 100% impossible to trigger right now, but it's good to future-proof.

--------------------------------------------------------------------------------
d57800a693 | advil | 2021-02-22 17:53:20 -0500

Fix another changelog typo
Turns out there were two!

--------------------------------------------------------------------------------
d488d78fa8 | Neil Moore | 2021-02-22 16:45:18 -0500

Fix a typo in the changelog
skip ci

--------------------------------------------------------------------------------
56c411f157 | Nicholas Feinberg | 2021-02-22 12:04:43 -0800

Manual updates (nicolae)

--------------------------------------------------------------------------------
23f261fbd2 | Nicholas Feinberg | 2021-02-21 16:17:38 -0800

Make zigs grant zot immunity (hellmonk, etc)
If you can clear an entire zig, you're well past the point in the
game where the zot clock (as it currently exists) is relevant. It's
fairly hard to imagine a version of the zot clock that co-exists with
ziggurats, really.

--------------------------------------------------------------------------------
dc27087bfa | Kate | 2021-02-21 23:01:43 +0000

Fix LRD not hitting monsters standing on open doors (#12515)
Caused by reversed logic in e2d8f9cc.

--------------------------------------------------------------------------------
4390dbc5be | Kate | 2021-02-21 19:55:56 +0000

Fix some skill training display interactions (#12514)
Make evocations show up as a trainable skill by default with the staff of
Wucad Mu carried, make necromancy visible with a pain weapon, and fix
evocations being visible with spectral weapons and the salamander hide
armour.

--------------------------------------------------------------------------------
f2f63bf033 | Kate | 2021-02-21 19:54:39 +0000

Prevent unwielding the obsidian axe while mesmerised
To make it more of a real commitment (while still keeping the *Drain penalty
to prevent swapping it freely between combats).

--------------------------------------------------------------------------------
fadf0348f2 | advil | 2021-02-21 11:40:04 -0500

Fix the build for ancient perl versions?
This is breaking CAO (and also PF).

--------------------------------------------------------------------------------
ea03ee85fd | Nicholas Feinberg | 2021-02-20 20:10:21 -0800

Revert "Add one more draconian skill title (hellmonk)"
This reverts commit d82557afd8e216d667967f927f2beb04dc6b3180.

Duplicates a WJC title.

--------------------------------------------------------------------------------
d82557afd8 | Nicholas Feinberg | 2021-02-20 19:56:03 -0800

Add one more draconian skill title (hellmonk)
Other suggestions I haven't added:
- Pearl Dragon (TSO)
- Shadow Dragon (Stealth)
- Bone Dragon (Necromancy)

--------------------------------------------------------------------------------
57bad1e98f | Nicholas Feinberg | 2021-02-20 19:50:47 -0800

Re-rename KILLED_BY_EXPLOSION
It's not just any explosion, it's a death explosion specifically. Fireballs
need not apply.

Closes #1765.

--------------------------------------------------------------------------------
75c20cf7c0 | Hatsuma | 2021-02-20 19:48:52 -0800

Fix inner flame explosion death messages
(Committer's note: Turning death explosions into a fineff broke the
messaging for inner flame explosions. This commit should hopefully fix them.)

--------------------------------------------------------------------------------
a62f12ae83 | Hatsuma | 2021-02-20 19:48:40 -0800

Rename KILLED_BY_SPORE to KILLED_BY_EXPLOSION

--------------------------------------------------------------------------------
03f4e8edb7 | Aliscans | 2021-02-20 12:45:42 +0200

Make the "1 corona" status message grammatically correct, and other bugfixes.
1. Fix the handling of singulars and plurals in _condition_string(). It had 
been saying "(1 reflect damage)", where it should have been "reflects".

2. Fix a typo in a flag name in monster_info_flag_names.

3. Fix a copy/paste error in mons_conditions_string() which prevented 
missile-wielders from being reported correctly in the monster list.

--------------------------------------------------------------------------------
982d447839 | Edgar A. Bering IV | 2021-02-20 12:35:52 +0200

Silence a GCC type warning
Closes #1758

--------------------------------------------------------------------------------
49c82dfaf2 | Kate | 2021-02-20 01:09:42 +0000

Fix monster airstrike messaging (shummie)
Closes #1762.

--------------------------------------------------------------------------------
ba1aca71f1 | Kate | 2021-02-19 22:18:22 +0000

Fix Ozo's Armour allowing cancellation of dispersal traps
Closes #1743.

--------------------------------------------------------------------------------
479c5223a7 | Kate | 2021-02-19 22:18:22 +0000

Rename and staticify a function

--------------------------------------------------------------------------------
8719b9d021 | Kate | 2021-02-19 22:16:16 +0000

Remove Airstrike's bonus damage against fliers
Against monsters, it was just another type of elemental vulnerability, but
against players, it was almost never tactically interesting and heavily
penalised forgetting to toggle permanent sources of flight off. Rather than
make it behave inconsistently against monsters, remove the bonus entirely -
the increased damage against targets in open space is a more interesting
bonus to focus the spell on (although the way it works should probably be
adjusted/simplified).

--------------------------------------------------------------------------------
c01e420030 | Jeffery Stager | 2021-02-19 17:08:23 -0500

fix typo in crawl_manual.rst

--------------------------------------------------------------------------------
622eac400c | advil | 2021-02-19 16:59:43 -0500

Add a scale to one missed describe call
missed in 236002575ef

--------------------------------------------------------------------------------
fbcf811447 | advil | 2021-02-19 16:44:35 -0500

Remove a debug call

--------------------------------------------------------------------------------
236002575e | advil | 2021-02-19 16:43:54 -0500

Double-size main tiles in (webtiles) describe popups
This is for purely aesthetic reasons, but we'll see if others agree. It
gives a nice pixelly look on default settings (though some tiles look
better than others). If the ultimate judgment on this is positive, it
can be ported to local tiles also.

--------------------------------------------------------------------------------
855979065c | Kate | 2021-02-19 18:32:06 +0000

Adjust wall jump interaction with mesmerise (#12205)
Make mesmerise restrict wall jumps based on the landing location instead of
the targeted wall, so that jumping away from mesmerising enemies is
prevented and jumping towards them is allowed, not the other way around.

--------------------------------------------------------------------------------
3208abaabc | Edgar A. Bering IV | 2021-02-17 22:37:41 +0200

Buff Boris on the orb run
Boris has been spawning on the orb run for about a year now and hasn't
bagged a player. That simply will not do, so in this commit we give our
boy a hand. If Boris sees the player with the orb he gains permanent
haste and permanent brilliance aura effect. The former will help him
chase players and sling spells at them; the latter will give him Ancient
Lich spellcasting HD for greater lethality.

--------------------------------------------------------------------------------
6612197ff9 | Edgar A. Bering IV | 2021-02-17 18:20:57 +0200

Further tweak Lich spell sets
By popular demand for more cold threats after the spell overhaul, as
well as for liches with OOD and Petrify, this commit splits the
Lich/Ancient Lich spell sets.

Liches get Bolt of Cold, OOD, Slow, Haste, and Invis.

Ancient Liches keep their new spell set but trade Slow for Petrify.

--------------------------------------------------------------------------------
9b90508cd1 | gammafunk | 2021-02-17 09:17:02 -0600

Clean up trove syntax
Reorganize statements for consistency with the rest of DES, group ITEM
statements, and reindent the veto clause. Closes #1755.

--------------------------------------------------------------------------------
79effa3b09 | Goratrix | 2021-02-17 09:17:02 -0600

Rework evocations-themed trove
Since some of the misc evocables have been removed and the remaining six
were changed to xp-rechargable, this trove has been often disappointing,
placing on average 10 of misc evocables out of the total 14 items, with
multiple useless copies of each.

This changes the trove to guarantee exactly one of each of the 6 misc
evocables, plus 8 wands/staves, weighted as average 6 wands and
2 staves.

--------------------------------------------------------------------------------
d70e203ec9 | advil | 2021-02-17 09:00:36 -0500

Fix an ability description typo

--------------------------------------------------------------------------------
150de4c316 | Nikolai Lavsky | 2021-02-16 20:07:03 -0800

Don't assault firewood
Also, fix an overlap between ``wont_attack()`` and ``neutral()`` in
a condition. The former means ``ATT_FRIENDLY || ATT_GOOD_NEUTRAL
|| ATT_STRICT_NEUTRAL``, the latter means ``ATT_NEUTRAL
|| ATT_GOOD_NEUTRAL || ATT_STRICT_NEUTRAL``.

--------------------------------------------------------------------------------
34d631faf5 | advil | 2021-02-16 16:44:23 -0500

Memoize some terrain functions
This fixes up a bunch of existing small hotspots by using the built in
memoize code; somewhat redundant with the previous commit, which dealt
with a stair direction call in a different way already. Really, the
consequential change here is the feat_is_altar change, but I've also
memoized a few key things that were downstream from this just because
it's easy to do. The suppress blood check is heavily called on a
webtiles build, so seems to merit converting to a more standard terrain
function and memoizing as well (though really it was a hotspot because
of the altar check).

--------------------------------------------------------------------------------
3e7e21a061 | advil | 2021-02-16 16:44:23 -0500

Limit stair exclusions to stairs
Altars and shops also have stair directions, but stair exclusion
semantics doesn't make any sense for them (and regular exclusions should
still work if you want that). Also, because this is called a lot in
rendering, checking the stair direction of altars was a weird little
hotspot because it has to iterate through possible altar features (2% of
weight during an early game qw run with a profiler attached, which is 
comparable to all of console rendering).

Is there a use case for stair exclusion semantics acting on
transporters? I'm not sure if that even worked but this probably
prevents it if it did. If people complain I'll add them back.

--------------------------------------------------------------------------------
184f3a1eb7 | Aliscans | 2021-02-16 21:19:27 +0200

Move some text for some artefacts to art-data.txt.
Create DESCRIP and DBRAND fields in art-data.txt. These fields are used
in the description of an artefact. DBRAND extends the brand description
and should be used for special brands. DESCRIP is used for sundry
properties.

The staff of Olgreb, Storm Bow, Maxwell's Thermic Engine, salamander
hide armour, macabre finger necklace, and the glaive of the Guard are
all adjusted to use these new data fields.

I've put this in the description below the "excrutiating wounds"
description, but this doesn't matter as the spell cannot be used on
artefacts.

I haven't moved the Warlock's Mirror description, as this field only
works if the text to insert is fixed.

Add + as a "start of line" character to show that the contents of a line
in art-data.txt continues the preceding (string) field. Where, with
whitespace, a space is added between the old line and the new one, with
+, a newline is added.

Add a description of the fields to the top of art-data.txt.

[ Committer's note: Squashed and rebased, revised the commit message,
  tweaked some documentation and moved formatting newlines to
  describe.cc only (no extra newlines from art-data.pl). Closes #1717 ]

--------------------------------------------------------------------------------
accac60908 | Aliscans | 2021-02-16 20:00:27 +0200

Make travel_pathfind::points a local variable.
points is only used as the iterator for one loop in 
travel_pathfind::pathfind(), so it doesn't need a wider scope.

--------------------------------------------------------------------------------
b98e92b636 | Aliscans | 2021-02-16 20:00:27 +0200

Delete some unnecessary functions from travel_pathfind.
Delete set_annotate_map() and set_distance_grid(), which were never used.

Replace travel_move() with travel_move in travel_pathfind. It was only called 
by pathfind(), which could access both.

Move _find_explore_status() into travel_pathfind (now called explore_statu()). 
As its purpose is to interrogate a travel_pathfind, it seems like a good fit.

Replace greedy_square(), unexplored_square() and get_unreachables() with the 
underlying variables. _find_explore_status() was the only function which read 
them, and it can now read the variables directly.

--------------------------------------------------------------------------------
5b2ef45498 | Aliscans | 2021-02-16 19:56:53 +0200

Delete the redundant rmode variable from _find_travel_pos().

--------------------------------------------------------------------------------
76aa1ed959 | Aliscans | 2021-02-16 19:56:53 +0200

Remove a pointless travel_pathfind::pathfind() call.
pathfind() always returns (0,0) without a target, so 
fill_travel_point_distance() no longer checks this.

pathfind() clears travel_point_distance as it starts, so 
fill_travel_point_distance() no longer calls it twice if features hasn't been 
provided.

It changes the order of *features, so I still call it twice if it is set.

--------------------------------------------------------------------------------
a84d769ad4 | Aliscans | 2021-02-16 19:56:53 +0200

Split find_travel_pos().
_find_travel_pos() handles the case where move_x and move_y are set.
fill_travel_point_distance() handles the cases without them.

This change just removes the code which isn't run in each case, and puts 
_find_travel_pos() above the function which calls it.

--------------------------------------------------------------------------------
dae97dfda2 | shummie | 2021-02-16 09:04:31 -0800

Replace running with rampaging in wizlabs
Two vaults - Cloud Mages' Chambers and Roulette of Golubria have boots of 
running as possible rewards. With the removal of boots of running, these were 
missed. Replace these with boots of rampaging since they still fit the intended 
theme/reward of the wizlab.
--------------------------------------------------------------------------------
5931744824 | wheals | 2021-02-16 18:36:59 +0200

Fix polearm titles (#12507)

--------------------------------------------------------------------------------
82400c8b53 | advil | 2021-02-16 10:14:12 -0500

Convert traversability memoization to an array
a42c0fa56e7 did get noticeable speedups in world_reacts bad cases, but
it turns out that lookup time for unordered_map on this scale is still
surprisingly bad because (it seems) of weird stdlib implementation
constraints that lead to high layers of abstraction surrounding the
constant lookup. So, just use an array, like most other member functions
for this class.

--------------------------------------------------------------------------------
b5b73b6894 | gammafunk | 2021-02-16 05:41:28 -0600

Some fixes for three Swamp vaults
cheibrodos_swamp_witchery: Remove the unnecessary downweight, as it's a
simple vault that places a single, normal-depth monster. Add some glass
to make this not an autoexplore trap, since fenstriders do have
paralyse. Make the special loot more appropriate to what the monster is
thematically. Also clean up vault syntax.

cheibrodos_swamp_pet_leeches: Make the corpse closet have a door;
there's no reason for this to be accessible only with dig. Also remove
the no_tele_into portions, as it's not necessary.

For all three of these vaults, remove unnecessary range restrictions for
Swamp:4, as they work just fine on that level. Also remove no_item_gen,
as there's no problem with items generating in these. Vault makers tend
to use this when they place their own loot, thinking they don't want the
layout to place more loot on the level. But this tag doesn't affect the
amount of loot generated as level items, just what places are eligible.

Likely we'll need to make another pass through swamp.des to fix up other
issues related to the Swamp changes.

--------------------------------------------------------------------------------
54d06ca096 | AdamPG | 2021-02-16 09:41:00 +0200

Tweak some Swamp witch vaults to better fit their creators' intentions
grunt_witch_cave gets a real witch now that they exist.

cheibrodos_swamp_witchery seemingly wanted to place exactly one
witch in one of the huts randomly, but actually placed zero to
two witches. Replacing SUBST with NSUBST leads to the intended
behaviour.

--------------------------------------------------------------------------------
8badd94918 | Edgar A. Bering IV | 2021-02-16 08:54:07 +0200

Update the changelog through 0.27-a0-365

--------------------------------------------------------------------------------
ed15d12607 | Edgar A. Bering IV | 2021-02-16 08:53:32 +0200

Update the changelog for 0.26.1
(cherry picked from commit d7a4d63c155831395aa76a5b27c080510dfb948e)

--------------------------------------------------------------------------------
31b3477d74 | advil | 2021-02-15 22:54:29 -0500

Calm down pathing for lost batty band leaders (12505)
When a band leader is inaccessible and far away, what's supposed to
happen is that the range check in _band_ok keeps a new path calculation
attempt from happening while band members move between random wander
targets. However, if the band consists of batty monsters, this logic was
being overridden; apparently batty monsters get a new wander target each
turn no matter what (??). This was leading to a pretty massive cpu spike
when scarab beetles lost their band leader in tomb, as seen in the save
in 12505. This commit causes batty band members to use the _band_ok
logic rather than blanket recalculating every call. I'm not sure if
there will be any weird side effects to this, e.g. they might move
around less when wandering. Possibly affects only scarab beetles.

--------------------------------------------------------------------------------
a42c0fa56e | advil | 2021-02-15 22:54:29 -0500

Memoize traversability checks in pathfinding
In extreme cases, pathfinding with a large range on an open level calls
this ~7-8 times per square, so it can be a noticeable speedup to not
recalculate traversability constantly.

--------------------------------------------------------------------------------
8331d791d5 | Nikolai Lavsky | 2021-02-15 22:20:20 +0200

Update the des syntax doc
This commit updates examples and removes mentions of obsolete/deprecated
item types, glyphs, and modifiers.

--------------------------------------------------------------------------------
8f6b0cd894 | advil | 2021-02-15 15:10:51 -0500

Restructure some wizmode help commands
I can never find what I'm looking for in this menu, and this commit is
an attempt to have slightly easier ordering and sections for
level/builder/feature-related commands.

--------------------------------------------------------------------------------
aa8612f87b | advil | 2021-02-15 14:25:01 -0500

Improve some divine exegesis menu issues
* e12f10fa2d7f24c87a used ' ' as the hotkey for uncastable spells in
  divine exegesis as a display hack, following code for unmemorizable
  spells from before that commit. Previously this was the only (maybe
  even standard?) way to mix hotkeyed and non-hotkeyed MenuEntrys in
  a menu with reasonable formatting.  However, space is a valid hotkey
  that the menu code will handle as such, and for unrelated reasons
  dd83002478 changed how this hotkey renders, leading to weird effects
  for DE in particular. (I'm not actually sure under what conditions the
  memorise case here gets triggered..) This commit adds a fairly
  brute-force way of fixing the formatting for actually non-hotkeyed
  entries. Possibly should be the default on everything, but the way
  hotkeys are rendered generally needs a bigger refactor.
* Fix header spacing in the (Cast) version of the menu.
* Show some DE-specific text + current MP in the footer; the fact that
  the player needed MP for the spell seems to have been tripping people
  up in combination with the "Space" bug, so showing it explicitly will
  make clear why some spells are disabled.

There's still an issue with this menu when the player has >52 spells
memorized.

--------------------------------------------------------------------------------
b719701251 | Nicholas Feinberg | 2021-02-15 11:04:24 -0800

Fix tests?

--------------------------------------------------------------------------------
46a10ce11a | Nicholas Feinberg | 2021-02-15 10:51:21 -0800

Let dancing launchers shoot

--------------------------------------------------------------------------------
7e98f454ed | Nicholas Feinberg | 2021-02-15 10:47:17 -0800

Give dancing launchers ammo

--------------------------------------------------------------------------------
bf771cdeb5 | Nicholas Feinberg | 2021-02-15 10:23:27 -0800

Make dancing launchers not crash the game

--------------------------------------------------------------------------------
57b6be6a68 | Nicholas Feinberg | 2021-02-15 10:00:12 -0800

New spell: Manifold Assault (L5 Translocations)
Manifold Assault launches melee attacks with against 2-4 random
enemies in LOS, depending on spellpower. It's themed as warping space
so that one attack can, paradoxically, hit many enemies.

This spell is intended to give melee-focused characters more reason to
consider investing in spellcasting, It's fun to try to skill toward a
'hybrid' build, and a spell that mostly scales off your melee attack,
rather than your spellpower, helps encourage that. This being a L5
spell helps avoid it being a truly free 'gimme', and allows it to hit
many enemies at once.

The lack of targeter should hopefully avoid it being annoying to use,
by making it just a single press to cast. It also gives the player
more reason to keep normally hitting things in melee sometimes,
when it's important to kill a specific target.

Cleaving doesn't work with this spell since it seems overly confusing,
and since reach and riposte don't work with it either. (Thus, it's
'fair'.) All stabs are also currently banned, though I do wonder if
we might want to allow non-sleep stabs.

--------------------------------------------------------------------------------
d46515b8de | Nicholas Feinberg | 2021-02-15 09:45:49 -0800

Display monster to-hit percentages in xv
Accounting for both EV and SH. These calculations are a bit clunky, but
they line up with the underlying rolls and with fsim.

--------------------------------------------------------------------------------
b2377c9954 | advil | 2021-02-15 11:58:35 -0500

Partial refactor of throw_item_no_quiver (12488)
The end goal is to have this better integrated with quiver code, but
this commit only moves a bit towards this. The main target of this
commit, convulated though it may seem, is to prevent `F` from updating
the global quiver history and avoid the issue in mantis 12488
altogether. This commit does it by using a custom action_cycler for
throwing via `F`, which indirectly keeps the history from being updated
and minorly improves the interface for `F` targeting (and then most of
the commit is restructuring so that this can be done more easily).

--------------------------------------------------------------------------------
3253a67a23 | advil | 2021-02-15 11:58:35 -0500

Rein in some autoswitch logic
In particular, don't apply autoswitch logic to ammo gain/loss unless it
is an entire stack of ammo. This partially addresses 12488: what is
happening there is that because firing changes stack size, the
autoswitch code was getting called on any firing event. It's not a
complete fix because `F` should still never affect the fire history for
autoswitch purposes.

--------------------------------------------------------------------------------
775e467c85 | advil | 2021-02-15 11:58:35 -0500

Update qw copy
Possibly this should be removed from the repo, or turned into a
submodule, but until that happens, here's a more up-to-date version.

--------------------------------------------------------------------------------
db36ff0be9 | Implojin | 2021-02-15 17:15:11 +0200

Add another species title
Ashenzari warns you: it is.

--------------------------------------------------------------------------------
77ac2e9d3a | Aliscans | 2021-02-15 09:30:46 +0200

Distinguish between "1 poisoned" and "all poisoned" in the monster list.
Previously, if there were 6 sheep, the monster list would show:
(poisoned) if 1 had been poisoned;
(2 poisoned) if 2 had; and
(poisoned) if all had.

This changes the first case to (1 poisoned). It displays (poisoned), as now, if 
only one sheep is left.

This makes it easier to see when (in this case) a sheep needs more poison.

--------------------------------------------------------------------------------
d820fc0954 | Aliscans | 2021-02-15 09:28:01 +0200

Keep "[Y]es or [N]o only, please" messages out of the log.
Move the "[Y]es or [N]o only, please" message from MSGCH_PLAIN to MSGCH_PROMPT 
in yesno() and yesnoquit(). This has two effects.

1. The message no longer appears in the previous message list. The original 
yes/no question does not appear here, so this message previously appeared in 
the log with no context.

2. The message is blue rather than white by default. This could be changed, but 
it would take more work.

--------------------------------------------------------------------------------
1cc477e9f5 | AdamPG | 2021-02-15 09:25:21 +0200

Make amulets of reflection actually grant monsters SH
Currently the SH returned is negative when a monster has an amulet
of reflection equipped without a shield.

--------------------------------------------------------------------------------
a689d4a613 | Nicholas Feinberg | 2021-02-14 19:41:43 -0800

Restore old Fedhas piety message
Purely for flavor, let's appreciate some contributions to the ecosystem.

--------------------------------------------------------------------------------
7370b58738 | advil | 2021-02-14 14:45:45 -0500

Remove an obsolete autopickup exception (12497)
Books are now marked as useless if they wouldn't add any spells, so
there doesn't need to be a custom autopickup rule for them. In addition,
since b8f8a8f698407 and bd089401bb, this rule broke autopickup for ash,
because books are all fully ID'd.

--------------------------------------------------------------------------------
ae24eb62ac | Kate | 2021-02-14 09:54:31 +0000

Fix some typos
Closes #1719

--------------------------------------------------------------------------------
fcad680f63 | Nicholas Feinberg | 2021-02-13 16:24:56 -0800

Partially compensate VS regen
Remove their second level of MUT_REGEN, now that each level gives
1 HP/dAut instead of 0.4. This still makes them strictly stronger than
before - could perhaps shift the first MUT_REGEN a bit later?

Another interesting idea would be to give them another -1 hp, +10% mp,
and super regen (hellmonk), but don't feel strongly.

--------------------------------------------------------------------------------
5810d18f4b | Nicholas Feinberg | 2021-02-13 16:20:29 -0800

Make trolls more thin-skinned
In compensation for their extra 0.6 hp/turn, turn their tough skin
mut down from level 3 to level 1.

--------------------------------------------------------------------------------
40fdf68bc5 | advil | 2021-02-13 17:08:25 -0500

Continue fixing CI

--------------------------------------------------------------------------------
029c345baf | advil | 2021-02-13 16:48:00 -0500

Actually update requirements files for the CI error

--------------------------------------------------------------------------------
df26f997a6 | advil | 2021-02-13 16:38:16 -0500

Fix more build issues
* one more upgrade issue for the running brand
* disable a flake8 package that seems to have stopped working in py27

--------------------------------------------------------------------------------
9cfa79e74d | advil | 2021-02-13 16:23:24 -0500

Fix an upgrade build issue for running removal

--------------------------------------------------------------------------------
c8f691b2cc | Nicholas Feinberg | 2021-02-13 11:15:15 -0800

Buff regen properties (Lici)
Items that grant regeneration gave 0.4 HP/turn (0.04/aut), which was
not enough to make them a significant tactical factor. Since the vast
majority of the game doesn't have enough strategic time pressure to
make regen speed outside combat very meaningful, this meant that the
regen property was misleadingly weak.

Increasing the regen rate by 2.5x to 1 HP/turn (0.1/aut) should give it
some chance of being a relevant factor for equipment decisions in a
3-rune game. I don't believe this significantly buffs players overall,
since most sources of regeneration still aren't that strong.

--------------------------------------------------------------------------------
e8094add7c | Nicholas Feinberg | 2021-02-13 10:52:21 -0800

Remove boots of running
Boots of running were extremely strong items, which isn't at all a
problem. It's great for the game to have rare and powerful items -
it creates exciting variance.

However, runboots didn't create fun and exciting gameplay. They drained
tension from the game by allowing the wearer to (over ~1-10 turns!) walk
away from any normal speed enemy, which is powerful, but not that fun.

So, farewell. Lightning scales remain as the last holdout, though maybe
they should be restricted for naga only.

Maybe we can finally have that scroll of brand armour now...? (:

--------------------------------------------------------------------------------
dc303548b9 | Nicholas Feinberg | 2021-02-13 10:52:13 -0800

Rewrite lightning scales' description
Be slightly coyer about which species can use them (for aesthetics),
and clarify that they improve movement speed, not action speed.

--------------------------------------------------------------------------------
52645efa06 | Nicholas Feinberg | 2021-02-12 14:55:01 -0800

Fix cursed item descriptions (12492)
Broken sometime around 8bf7259e65b6b6a6ca .

Oops!

--------------------------------------------------------------------------------
fa571bf19a | advil | 2021-02-11 15:27:05 -0500

Fix header build

--------------------------------------------------------------------------------
d6963574d8 | advil | 2021-02-11 13:16:17 -0500

Explicitly show ally foes
This shows ally targeting info: (i) on the ally, (ii) on the target
monsters, and (iii) as a mi flag on the short description (without
specifics). For simple cases this won't show anything surprising at all
to experienced players, but I think it still is useful info to new
players. For complex cases, it may be useful to see e.g. that an ally is
pathing through a monster that's not what you'd hope it to be targeting.

I suspect this hasn't been done before because of information overload
issues. And monster descriptions definitely have been accruing
information overload for the last few versions! However, I think I have
converted to team info, and I do think this specific bit of info is
useful for many cases. It also may have not been done before because
there are cases where what is shown is weird and confusing. However,
this reflects weird and confusing ally *behaviour*, which is still
frustrating to players when it is detected. This commit may make it
easier to detect, which is perhaps the path towards less confusing ally
behavior. I won't be surprised if it turns up some bugs too...

It doesn't seem impossible to me that this could turn out to be a bad
idea to show after all, but we'll see.

--------------------------------------------------------------------------------
70b395f35d | Nicholas Feinberg | 2021-02-11 09:25:27 -0800

Spelling

--------------------------------------------------------------------------------
75073f8639 | Nicholas Feinberg | 2021-02-11 09:23:55 -0800

Two more titles (hellmonk, ebering)

--------------------------------------------------------------------------------
ccc5534d49 | Nicholas Feinberg | 2021-02-11 09:14:21 -0800

Add more per-species titles
Seems fun! All of these are intended to be not too annoying to get
for folks who like to collect titles, but they're not in general
designed as something to steer folks towards a race's strengths -
just fun little acknowledgements of something the player's done.

I desperately wanted the formicid title to be 'transdimensional tunneler',
but it was far too long...

--------------------------------------------------------------------------------
7f782ed93a | Implojin | 2021-02-10 23:31:44 +0200

Update copyright date in LICENSE

--------------------------------------------------------------------------------
433c55acf3 | Nicholas Feinberg | 2021-02-10 12:51:43 -0800

Remove a semicolon

--------------------------------------------------------------------------------
81277dbfc4 | hellmonk | 2021-02-10 12:51:43 -0800

Change demigod stats and exp apt.
Lean into the stat gimmick by reducing starting stats by 2 each and doubling 
stat growth.

--------------------------------------------------------------------------------
da14cb0413 | advil | 2021-02-10 15:45:47 -0500

Fix some uselessness grammar (gammafunk)
The main point of this commmit is to fix the wording, shown in spell
descriptions, "This spell would have no effect right now because you
don't have enough magic to cast that spell." It does this by formatting
more general casting useless reasons separately from spell-specific
uselessness reasons (they are shown in red without any extra text).
Along the way:

* change "that" to "this" in the low MP uselessness reason -- "this" is
  used elsewhere and is less awkward in most cases. (Even if it no
  longer matters here.)
* refactor Ru spell bans to all be handled as casting uselessness
  reasons, not spell-specific uselessness reasons; before they were in
  multiple places. Hopefully the weird previous ordering didn't cause
  any side effects that this eliminates.

--------------------------------------------------------------------------------
75ad407e7c | wheals | 2021-02-10 17:40:21 +0200

Remove some extraneous uses of auto_id_inventory
Unused since 20b3437a0c1

--------------------------------------------------------------------------------
bd089401bb | advil | 2021-02-10 10:21:36 -0500

Further fix ash id (wheals)
cf. b8f8a8f69840

--------------------------------------------------------------------------------
b8f8a8f698 | advil | 2021-02-10 10:01:43 -0500

Quick ash id fix
Accommodate the presupposition in fa4e0b4b0e52 that ash identifies all
items; otherwise, ash players are a bit out of luck right now. Not well
tested for id special cases...

Resolves #1735

--------------------------------------------------------------------------------
42d3f6298c | Edgar A. Bering IV | 2021-02-10 15:58:41 +0200

Weight random effects
So that the "bad for the player" effects happen only 15% of the time.

--------------------------------------------------------------------------------
81d27af2d4 | advil | 2021-02-09 22:22:27 -0500

Pre-identify acquirement manuals (12485)
This comes up for troves, e.g. trove_library as in the linked save.
Regular manual generation has done pre-identification since
2c9a30dacb1b69, but I suspect there was also somewhere a step where an
acquired manual was id'd once it was actually picked up. Now that
manuals never get picked up, unless the manual is id'd in advance there
is an extremely useless message. I've also added (redundant?) id'ing in
the new pickup code. This shouldn't be necessary except for games with
troves that generated before this fix.

--------------------------------------------------------------------------------
b975c0971c | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Remove a mystifying comment from the last millenium

--------------------------------------------------------------------------------
a3e463392d | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Remove the extra bad weapon randarts
Just because.

--------------------------------------------------------------------------------
9fd62742f6 | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Make jewellery generation more sane

--------------------------------------------------------------------------------
8372c9b158 | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Reduce jewellery generation a bit
To compensate for the removal of 3 rings, 1 amulet, and negative
enchantment jewellery.

No adjustment to overall item generation, since we overshot a little
bit with the compensation for ?rc removal.

--------------------------------------------------------------------------------
6b4f085fcf | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Teleport rings of teleportation away
Tragically, in their current form, they have little to offer in a
curseless world. Farewell!

--------------------------------------------------------------------------------
303758149e | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Re-add useless jewellery

--------------------------------------------------------------------------------
d58e3d690f | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Remove more bad things

--------------------------------------------------------------------------------
68f27ed3b0 | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Remove very bad weapons (ebering)
These were uncommon enough that I don't we need to comp generation
further.

--------------------------------------------------------------------------------
0bbf9b5c7d | Nicholas Feinberg | 2021-02-09 16:36:09 -0800

Remove an inaccurate hint

--------------------------------------------------------------------------------
bc12fde1e9 | Nicholas Feinberg | 2021-02-09 16:35:56 -0800

Recolour weapon/armour egos
As before, un-id'd glowing weapons/armour are blue.

Ego weapons/armour: green.

Enchanted but non-ego weapons/armour: green. (Previously used for
known-uncursed items.)

Un-id'd magical staves: blue.

ID'd magical staves: green.

I suspect we'll want to tweak some of this, but it's a start.

--------------------------------------------------------------------------------
d83380fbf1 | Nicholas Feinberg | 2021-02-09 16:35:42 -0800

Update docs for curse removal

--------------------------------------------------------------------------------
3ce31fd4f6 | Nicholas Feinberg | 2021-02-09 16:35:42 -0800

Reduce non-vault item gen by 5%
To compensate for ?rc removal and keep overall item count roughly
the same as it was before.

--------------------------------------------------------------------------------
880a64342f | Nicholas Feinberg | 2021-02-09 16:35:28 -0800

Remove remove curse
Useless now that random curses no longer exist.

--------------------------------------------------------------------------------
f16e07f070 | Nicholas Feinberg | 2021-02-09 16:35:28 -0800

Fix a hint

--------------------------------------------------------------------------------
c026bc2f57 | Nicholas Feinberg | 2021-02-09 16:35:21 -0800

Uncurse all items
Except for those in the inventory of Ash-worshippers.

--------------------------------------------------------------------------------
583d5e20f2 | Nicholas Feinberg | 2021-02-09 16:35:18 -0800

Don't generate items cursed
The future approacheth.

--------------------------------------------------------------------------------
8bf7259e65 | Nicholas Feinberg | 2021-02-09 16:35:18 -0800

Make curse status always known
Since Ash will soon be the only source of curses.

Don't ever describe items as 'uncursed', since that's trivially true
if you're not with Ash.

--------------------------------------------------------------------------------
8bc936e012 | Nicholas Feinberg | 2021-02-09 16:35:18 -0800

Don't glow up cursed items
Irrelevant soon.

--------------------------------------------------------------------------------
e2017fbedb | Nicholas Feinberg | 2021-02-09 16:35:18 -0800

Remove cursed vault items
Begone, gammacurses!

--------------------------------------------------------------------------------
c22e62d8df | Nicholas Feinberg | 2021-02-09 16:35:18 -0800

Remove negative-plus jewellery
Made no sense with curse removal.

This increases the number of real (non-negative) jewellery items by
very roughly 5%. (6/26 jewellery types could be generated with a
negative plus, and those had a 20% chance of being negative.) No
comp is provided.

--------------------------------------------------------------------------------
e57382988b | Nicholas Feinberg | 2021-02-09 16:35:18 -0800

Uncurse everything when leaving Ash
Again, a placeholder.

--------------------------------------------------------------------------------
fa4e0b4b0e | Nicholas Feinberg | 2021-02-09 16:34:57 -0800

Make Ash use ?id instead of ?rc
Placeholder for a broader rework.

It's sort of elegant, IMO - since ID is pretty useless with Ash otherwise
(since the god already IDs everything), it's a reasonable resource.

--------------------------------------------------------------------------------
01f12845e7 | Nicholas Feinberg | 2021-02-09 16:34:54 -0800

Remove amulets of inaccuracy
Part 1 of the Curse Removal Saga.

--------------------------------------------------------------------------------
a3f61025e6 | Nicholas Feinberg | 2021-02-09 16:31:54 -0800

Fix tloc miscast description

--------------------------------------------------------------------------------
e1136d6ca4 | advil | 2021-02-09 16:57:43 -0500

Fix some bitwise operators (geekosaur)

--------------------------------------------------------------------------------
ead3b1d052 | advil | 2021-02-09 16:08:45 -0500

Double default dump_message_count
In more spectacular endings, 20 is often not nearly enough to see what
happened. Let's try a bigger default.

--------------------------------------------------------------------------------
ff613de66b | sdynet | 2021-02-09 22:02:58 +0200

Hexify of wand of random effects
The immediate effect of damaging the enemy is provided by the other
wands. The old effect list was at one point the union of wand effects,
but that is long gone and far from true, which makes it a bit of a
spoiler trap.

The new effect list is entirely buffs and debuffs, and listed in the
wand description.

If the power level isn't right the effects can be weighted and tuned.

[ Committer's note: Closes #1310. Revised the effect list, re-worded the
  commit message. ]

--------------------------------------------------------------------------------
97e392b7e8 | Nikolai Lavsky | 2021-02-09 20:37:17 +0200

Remove some water from mumra_spider_spiderweb
The vault has several spiders trapped behind deep water, as they can
no longer cling to walls.

This commit frees the spiders and reduces the number of water and deep
water tiles in the vault. Also, it removes an escape hatch in the
inner area, since the vault is not a teleport closet anymore.

--------------------------------------------------------------------------------
d9602db6ee | advil | 2021-02-08 15:38:40 -0500

Skip some unique fineff messaging on turn 0 (12346)
This is for the case where a delver lands in los of a pikel/kirke, where
it doesn't make sense to do the messaging related to freeing the
follower band. I haven't tested this case very directly because the seed
in mantis 12346 doesn't place pikel any more (and I haven't tried to go
back to a version where it does), so it's possible there's more tweaking
needed. In principle, the bands should get zapped too (like dowan and
duvessa) but I don't *think* this is happening right now.

--------------------------------------------------------------------------------
b28db10d6f | advil | 2021-02-08 15:38:40 -0500

Skip elven twin stuff on dismissal/reset
On a delver start, if the los zap wipes out one elven twin, the other is
supposed to go too. But, the code in elven_twin_died still ran on the
first to go and caused the second one to be woken and berserked etc;
depending on the timing this could lead to messaging as in mantis 12480.
I'm pretty sure that there's no natural way for these kill types to
apply, so this should affect only the delver start case.

--------------------------------------------------------------------------------
715ed11b31 | advil | 2021-02-08 15:38:40 -0500

Don't allow delver-zapped uniques to regenerate
Doing this will lead to potential seed differences between delver starts
and regular starts on the same seed number. (An alternative option would
be to force los uniques somewhere else in the level, after the level has
fully generated.)

--------------------------------------------------------------------------------
daa8bd6ff3 | Edgar A. Bering IV | 2021-02-08 22:08:00 +0200

Quiet down storm clouds
Storm clouds are loud (lightning bolt loud!) because Grunt made them
that way in February 2014 and there wasn't much other commentary about
it at the time.

They're the only cloud that makes noise, and appear in five places:
- Around Bai in second form in her cloud ring
- Random panlord cloud rings
- Robe of Clouds clouds
- Condenser vane clouds
- Qazlal clouds

For monsters, r-i indicated that the loudness of Bai was mildly desired
but not a primary part of the design; with randlords the cloud rings are
very much a "don't melee me" effect and not for noise.

For the two evoked player sources of clouds, the condenser vane has
skill training and xp gating to balance it. The Robe of Clouds probably
needs another re-work, it does rely on storm cloud noise for balance
somewhat.

Finally, Qazlal stormclouds have made Q much louder than designed, even
very early on, making the noise conduct much harsher than it should be.
Q's rumble is min ( piety / 10, 16 ) noise, lightning bolt is 25. 1* Q
followers weren't supposed to be so loud.

Making all clouds quiet will make it easier to attach appropriate noise
(or other cost or drawback) to their source according to mechanical
niche, instead of this one cloud type being SO LOUD.

--------------------------------------------------------------------------------
d4424db430 | advil | 2021-02-07 19:29:05 -0500

Mark willpower/magical power rings as stackable (12484)
12484 reports this as a recent change, but as far as I can tell
MR/willpower has never been marked as stackable in any way; I also
noticed that magical power is not marked this way. Any other rings
missing here?

--------------------------------------------------------------------------------
37e0bc138e | advil | 2021-02-07 17:31:18 -0500

Fix a bitwise operator used for fire order (12481)
This is supposed to keep classes from being added to the vector multiple
times, but with & it obviously wouldn't do this correctly, leading to
somewhat unpredictable results for custom fire orders. (This whole use
of bitmasks for the fire order is one of the last vestiges of oldquivers
and could use a complete refactor.)

--------------------------------------------------------------------------------
f42357c144 | Kate | 2021-02-07 21:31:54 +0000

Update skill training docs

--------------------------------------------------------------------------------
240d7df7c7 | gammafunk | 2021-02-07 11:09:23 -0600

Some vault adjustments for kobold brigands
For vaults that give kobold brigands custom equipment, also give them
darts in line with their new "underhanded tactics" theme, unless doing
so was counter to the vault's theme somehow. All changes below give
brigands darts with a 2/3 chance for poison and 1/3 chance for curare:

due_exit_kobolds: An Abyss exit vault. Characters exiting the abyss can
handle a dart or two.

blue_anna_alchemist: An alchemist would be good at crafting poison! Also
pre-identify the guaranteed degeneration and ambrosia potions.

cheibrodos_thug_alley: There's only 1-2 brigand "bosses" at the end of
this vault, so it won't be anything too nasty. Also clean up NSUBST
statements.

minmay_goblin_kobold_castle: Perhaps the most significant change, since
this vault is pretty iconic. Remove the brigand's custom equipment
definition, thus allowing it to have darts, but also mix in gnolls to
down-weight brigand placement. This vault describes itself as a castle
of kobolds and goblins, but it's actually a castle of kobolds *or*
goblins, since you either get a kobold set or a goblin set.  The goblin
set has (non-throwing) gnolls mixed in, but the kobold set did not. The
switch from big kobolds to kobold brigands adds dart throwing jerks, so
we upweight ordinary kobolds and add non-throwing gnolls to thin out
dart throwers a bit. We now get 2 brigands on-average per map placement
for the kobold set, which is reasonable for large, challenging vault on
D:3-6.

Closes #1709.

--------------------------------------------------------------------------------
7af2214585 | gammafunk | 2021-02-07 08:51:12 -0600

Kobold fixes for a ghost vault
Adapt the vault gammafunk_ghost_nasty_kobolds for the change of big
kobolds to kobold brigands. Give all brigands darts, simplify weapon
setup, remove a definition no longer necessary, since brigands always
have darts, and reglyph. Composition-wise, don't mix in special
dart-throwing kobolds after we've switch from ordinary kobolds to
brigands (post D:5). This vault presents a lot of darts offensively and
as loot post D:5, but not to any point that's a concern.

--------------------------------------------------------------------------------
50fcd4f5b3 | Nicholas Feinberg | 2021-02-07 06:20:59 -0600

Turn big kobolds into kobold brigands
Big kobolds didn't really have a defined role or any particular threat,
and non-big kobolds spawning with curare created some pretty unecessarily
vicious difficulty spikes. Remove curare darts from normal kobolds and
move them onto big kobolds, which are renamed to 'kobold brigands'. Some
vaults are tweaked somewhat; no other changes.

This increases the average amount of curare generated in D from about 4
to about 5.5 per game.

--------------------------------------------------------------------------------
d22cd1d61d | Edgar A. Bering IV | 2021-02-07 09:48:56 +0200

Apply Gell's gravitas in near-to-far order
To the extent that crawl has a coherent physics, players expect gravity
to pull everything towards the attraction point, without sorting a
further away monster can get pulled first, followed by a closer monster,
which is optically a bit weird.

The unsorted pull did have an order: internal monster array order, which
made the spell hard to reason about and also possibly introduced some
weird biases or information leaks.

--------------------------------------------------------------------------------
e33754e197 | Hatsuma | 2021-02-07 09:48:03 +0200

Sort potion of attraction pulls
[ Committer's note: Closes #1724. Squashed, rebased, tweaked commit
  message and comments. ]

--------------------------------------------------------------------------------
dfb9265905 | advil | 2021-02-06 22:20:13 -0500

Use `catpath` instead of string + for some path combination
This should fix 12489, where the use of string concatenation was leading
to part of the path without an unterminated directory turning into part
of the filename.

--------------------------------------------------------------------------------
7d165411bc | Nicholas Feinberg | 2021-02-06 16:00:09 -0800

Remove a secret accuracy malus (sentei)
Added in 7d9c2931b71, 14 years ago (DCSS 0.3). Was not properly displayed
in targeters and, also, had no real reason to exist. Clouds do plenty without
a secret accuracy penalty!

--------------------------------------------------------------------------------
024f7ef292 | Edgar A. Bering IV | 2021-02-04 23:29:02 +0200

Remove gadget shops
In 0.26, all misc evokers became XP gated, so the player only needs one.
With wand stacking changes, players still amass a great many wand
charges (themselves exacerbated by the reduction in the number of wand
types with scattershot and clouds replaced by misc items!).

An easy to find and remove source of this heaping pile of riches are
gadget shops, which made a lot more sense when gadgets were more
consumable (but even then were quite nice shops).

Currently wands and evokers can still appear in general stores, perhaps
that could also change, there are still a lot of them spawning.
Certainly, misc evokers could stand to see further drop reductions.
This commit sticks to gadget shops for now.

Some specific numbers from a 3-rune 100 iteration objectstat run,
compared to the same run for 0.26.

Wand | Avg-26 | Avg-new | Min-0.26 | Min-new | Max-0.26 | Max-new
---- | ------ | ------- | -------- | ------- | -------- | -------
flam |     10 |     7.8 |        3 |       3 |       17 |      19
para |    7.7 |       6 |        2 |       2 |       18 |      14
dig  |    6.5 |       4 |        1 |       1 |       14 |      13
iceb |   10.5 |     8.3 |        4 |       2 |       22 |      15
poly |    7.8 |     6.1 |        2 |       0 |       15 |      13
char |    4.9 |     3.8 |        1 |       0 |       12 |      10
acid |      8 |     5.9 |        2 |       1 |       18 |      14
rand |    7.8 |     5.9 |        2 |       1 |       20 |      16
mind |    5.7 |     4.6 |        1 |       1 |       13 |      11

Misc | Avg-26 | Avg-new | Min-0.26 | Min-new | Max-0.26 | Max-new
---- | ------ | ------- | -------- | ------- | -------- | -------
box  |    7.4 |     4.9 |        1 |       1 |       19 |      12
rod  |      7 |     4.6 |        2 |       0 |       14 |      12
phia |      8 |     4.5 |        1 |       0 |       18 |      11
mirr |      7 |     4.4 |        1 |       0 |       17 |      12
tin  |      8 |     4.9 |        2 |       0 |       14 |      12
vane |      8 |     4.6 |        1 |       0 |       20 |      11

--------------------------------------------------------------------------------
67906b0434 | Aliscans | 2021-02-04 20:17:31 +0200

Make _ability_quiver_range_check() static.
The following compiler warning was given by gcc 10.2.0. Making 
_ability_quiver_range_check() static removes the warning. The function is only 
used in quiver.cc.

quiver.cc:1231:10: warning: no previous declaration for ‘bool 
quiver::_ability_quiver_range_check(ability_type, bool)’ 
[-Wmissing-declarations]
 1231 |     bool _ability_quiver_range_check(ability_type abil, bool quiet=true)
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~

--------------------------------------------------------------------------------
fa7a5ec6c4 | Aliscans | 2021-02-04 20:17:31 +0200

Rename lua_persist::string as lua_persist::text.
The following compiler warning was given by gcc 10.2.0. Renaming 
lua_persist::string removes the warning. The name used is immaterial, and the 
enum is only used in two functions.

l-file.cc:93:5: warning: declaration of ‘string’ shadows a global 
declaration [-Wshadow]
   93 |     string,
      |     ^~~~~~
In file included from /usr/include/c++/10/iosfwd:39,
                 from /usr/include/c++/10/memory:74,
                 from externs.h:16,
                 from AppHdr.h:315,
                 from l-file.cc:1:
/usr/include/c++/10/bits/stringfwd.h:79:33: note: shadowed declaration is here
   79 |   typedef basic_string<char>    string;
      |

--------------------------------------------------------------------------------
b5755f8d7c | advil | 2021-02-04 12:33:56 -0500

lint

--------------------------------------------------------------------------------
dc19187ef5 | advil | 2021-02-04 12:31:39 -0500

One more ring of stealth (fix CI)

--------------------------------------------------------------------------------
40f84a5caa | advil | 2021-02-04 12:27:38 -0500

Update some 13 year old docs with current build info (12482)
This text was written probably around 0.3 so isn't very applicable to
the way things are currently set up; the implementation of
DEBUG_MONSPEAK has drifted quite a bit. If there's actually demand for a
monspeak-only build (which was possible before bc841a2a9115e3), then
the dprfs in mon-speak.cc should be switched back to mprfs. I made one
small change so that DEBUG_MONSPEAK isn't completely inert if defined on
its own.

Also, remove an obsolete DEBUG def.

--------------------------------------------------------------------------------
03888ab0b0 | wheals | 2021-02-04 19:14:30 +0200

Rule of three fix

--------------------------------------------------------------------------------
a82526b2db | Nicholas Feinberg | 2021-02-04 09:13:37 -0800

Enable stealth hats and gloves
To compensate for the loss of our late, lamented stealthy rings.

--------------------------------------------------------------------------------
ccae488368 | Nicholas Feinberg | 2021-02-04 09:05:25 -0800

Mostly remove rings of stealth (various)
Rings' mechanical niche is as a swappable slot: items that provide
you with tactical decisions to make about gear loadout within a given
combat. Do you want rF or Slaying while fighting the lindwurm? Is it
worth the extra half a turn to swap? There's some argument over how
often ring swapping creates interesting decisions vs busywork, but if
rings should exist, that's why.

There's no combat where you want to be wearing =Stealth, You want to
wear =stealth *outside* of combat, and something else inside. Essentially,
if you care about optimizing, you'd want to swap away from =stealth at
the start of each combat, which is... not very exciting!

So, rings of stealth will no longer generate. They're still around as a
base type for the Ring of Shadows, but should probably be refactored into
a 'ring of nothingness' at some point. Octopus King now gets +flight
instead, for all those pesky lava moments.

--------------------------------------------------------------------------------
fa1d4835b4 | Nicholas Feinberg | 2021-02-04 08:58:18 -0800

Pay more attention to removing rings
??doh

--------------------------------------------------------------------------------
0e4e36e7b5 | Nicholas Feinberg | 2021-02-04 08:37:58 -0800

Remove rings of attention
These were added to replace rings of hunger, but like their predecessors,
they never really had much impact on the game. The potential downside isn't
nearly large enough to discourage players from wear-IDing rings, and if it
were larger, the resulting cautious gameplay wouldn't be especially fun in a
game of Crawl's scale.

--------------------------------------------------------------------------------
e61c0dba20 | Nicholas Feinberg | 2021-02-04 08:11:56 -0800

Remove food and chunks - redux!
(from objstat)

--------------------------------------------------------------------------------
4b4afb4849 | Nicholas Feinberg | 2021-02-04 08:07:18 -0800

Reduce husk bloat
Don't spawn a vast army of bloated husks in swamp_pestilence.

--------------------------------------------------------------------------------
0178f6a2e2 | Nicholas Feinberg | 2021-02-03 23:15:58 -0800

Remove *Curse
Random curses on equip existed on exactly three unrands (and no randarts).
It was on Scythe of Curses purely for theme, on Obsidian Axe to make it
not a complete no-brainer to swap off the weapon when mesmerized, and on
the Necklace of Bloodlust to discourage swaps when you'd rather not be
randomly berserked.

*Curse wasn't an extremely great mechanism for limiting the latter two.
The randomness of how many scrolls of remove curse were generated meant
that the restriction was sometimes tight and sometimes irrelevant, and
there wasn't any real tactical element to the cost.

So, let's remove it. Amulets are now slow to swap, so the Necklace of
Bloodlust no longer has a *Drain downside at all. The Scythe of Curses
is now {drain, *Drain}, which seems very thematic if not mechanically
necessary, and the obsidian axe likewise gets *Drain. (It could be fun
to have a 'Compel' or 'Sticky' property that makes these weapons slow
to swap, compelling the user like the One Ring... but not right now.)
This should hopefully provide a more interesting set of tactical choices.

Curses!

--------------------------------------------------------------------------------
c8dee61f84 | Nicholas Feinberg | 2021-02-03 22:50:47 -0800

Show melee accuracy on v (vt)
Matching the xv EV display. (Is this enough cryptic letters..?)

--------------------------------------------------------------------------------
c50aac273e | Edgar A. Bering IV | 2021-02-03 21:15:41 +0200

Defang bunyips (hatsuma)
Closes #1705; fixing history with binary files made git rebase angry.

--------------------------------------------------------------------------------
b9655bc238 | gammafunk | 2021-02-03 12:41:33 -0600

Rework monster placement in a minivault
The vault called simply "pond" places over D:10- and all of Lair, but
has pretty unambitious monster placement. Except for the fact that its
insubstantial wisps got replaced with will-o-the-wisps!  Aside from this
unfortunate wisp storm, the monster list didn't scale well with
placement. This commit reworks the placement, conditioning it on depth
and refining the two Lair and Swamp themes it has.

Lair and Swamp monster sets are used for D:10-12 and Lair, but only the
Swamp set is used for D:13-, since the amphibious Lair monsters aren't
an interesting enough set by that point. The Lair set starts from D:10
mostly easier Lair spawns, but ramps this up through Lair and throws
torpor snails into the mix by Lair:4. The Swamp set starts as just
vampire mosquitoes with light swamp drakeage on D:10, but as depth
increases adds swamp dragons, hydra, and eventually will-o-the-wisps.

--------------------------------------------------------------------------------
2393aa7757 | Edgar A. Bering IV | 2021-02-03 20:03:27 +0200

Revert "Increase broad axe delay"
This reverts commit 81720017eba9a398c36b19f0d9c4cbe01de8cb61.

In the commit message for 81720017eb, its pointed out that broad axes
are too cheap relative to battle axes for their rarity. Part of the
issue on later analysis of skill points required, is that *shields* were
too cheap to add on in a penalty-free way. Commit 0b64aa26 increased the
shield penalty. To swing a 20 skill broad axe at min-delay with a kite
shield now takes 21,000 skill points on a human; compared to the 13,950
of a battle axe. For an 18 skill broad axe the cost is 17,850; still
more than the battle axe (since the trade is for -2 base damage in
exchange for the defenses of a shield, it should cost more), but not
1.5 times more expensive.

To repeat some of the discussion from 0b64aa26, prior to that commit the
cost to swing an 18 skill borad axe at min-delay was 12,200, cheaper
than the broad axe. Addressing the disparity via broad axe delay was one
solution, but made broad axes a non-use nobrainer for small species (the
same base damage is available 1-handed at 16 skill from a morning star
for them!); broad axes are still pretty expensive for a small species, but
should be more attractive at 18 delay when the shield changes are also
considered.

--------------------------------------------------------------------------------
bbe54867f3 | hellmonk | 2021-02-03 20:03:27 +0200

Gently nerf spriggans
Since they're the most likely to get out of control with stepdown
removals, they lose 1 base dex and 1 dodging apt.

[ Comitter's note: Closes #1715. Reformatted commit messages ]

--------------------------------------------------------------------------------
24d3c0a44a | hellmonk | 2021-02-03 20:03:27 +0200

Remove the EV stepdown
This was an extremely hidden mechanic and I suspect that most players
didn't know about it. No change for "natural" evasion 30 or less, which
is everything except high dodging high dex characters and spriggans in
practice.

--------------------------------------------------------------------------------
6fe205ebb7 | hellmonk | 2021-02-03 20:03:27 +0200

Remove the dex stepdown
This commit removes the hidden stepdown to bonus EV from dodging. No
change for characters with 18 dex or less, but high dex characters will
receive better returns on dodging skill.

--------------------------------------------------------------------------------
cd1b0857f5 | Alex Jurkiewicz | 2021-02-03 20:03:27 +0200

Simplify strength damage modifier
Previously, the strength damage modifier had three forms depending on
your strength, from 0-9, 10, and 11+. The formulas were almost but not
quite the same, damage growth was fastest in the 0-9 range with +7.6%
per str compared to +5.12% per str in the 11+ range.

(Note: these +% figures are the max increase, since the algorithm
includes random2 the average increase is about half the quoted numbers.)

The way this formula changes based on strength isn't great because either:
1) If it should affect attribute increase choices, it's a non-continuous
breakpoint and therefore spoilery.
2) If it's too subtle to change attribute increase choices it's probably
pointless.

Change the damage modifier calculation to use a single continuous
formula for all strength values.

Rather than bothering with randomising the multiplier each attack, use a
non-random formula suggested by advil. Strength modification is 100% at
10 strength, with +2.5% for each additional point of strength (-2.5% for
each point below).

Derandomizing the formula reduces the variance of melee combat slightly
(there are plenty of other factors that keep the rolls high variance),
and reduces the maximum possible damage at high strength values.

The new formula increases damage delt at very low strength slightly in
absolute terms, since at low strength the damage for most typical
weapons is low enough that percentage changes aren't very noticable.

At very high strength the new formula doesn't exactly approximate the
average benefit of the old formula (the extra .06 of a percentage point
of bonus per strength point over 10 becomes noticable in absolute terms
at around 40 strength).

For typical strength values the average damage tracks to within the
measurement error of fsim, and the reduction in maximum damage (used as
a proxy for variance) is small (for example at most 1 point of damage
for a war axe at each of 10, 15, 20, and 25 str).

In exchange for this slight number shift, derandomization should make
the effect of high strength easier to "feel" for players (at least those
using high base damage weapons).

[ Committer's note: Closes #581. Squashed and rebased, added commentary
  from fsim analysis. ]

--------------------------------------------------------------------------------
0525f28e48 | advil | 2021-02-03 13:01:41 -0500

Don't let tabbing throw nets with autofight_throw/nomove
I'm not sure it's the best path to go down to keep adding small
hard-coded exceptions like this, but this change brings nets in line
with other quiver actions affected by 006ef2cfcc4; they won't be
triggered by autofight commands that may fire the quiver. The biggest
case where this matters is on a Gl start with one of the relevant
options set. In a very small poll of players it seems like most people
have been using autoinscriptions for this and don't want these commands
to ever auto-shoot nets anyways. As with that previous commit,
CMD_AUTOFIRE itself will still work.

It's less clear what to do with other ammo starts where players may not
want to tab-fire, e.g. poison darts, dispersal boomerangs.
Autoinscribing `!Q` or `!f` is currently an option but that's very
fiddly and more for advanced rc file users.

--------------------------------------------------------------------------------
7b68f31d6f | Nicholas Feinberg | 2021-02-03 09:25:33 -0800

Spawn OODs in swamp
These were accidentally disabled (by default).

Objstat suggests this will increase Swamp XP on average by about 5%
(82k -> 86k), and will result in weaker monsters being replaced by an
average of:

- 0.6 tmons
- 0.5 ghouls
- 0.5 fenstrider witch
- 0.4 spriggan air mage
- 0.3 thorn hunter
- 0.2 spriggan zerker

This seems OK. If players die too much, we can do something else.

--------------------------------------------------------------------------------
486a53e333 | advil | 2021-02-03 09:25:29 -0500

Fix some locale issues with skill targets
This commit (i) lets players enter numbers using the locale decimal
separator in the skill menu (since atof needs this for parsing unless we
were to override the numeric locale), and (ii) uses this separator
instead of a hardcoded `.` in skill targets -- this is for consistency
with the rest of the menu, which already does this.

--------------------------------------------------------------------------------
2708c90bdf | Nikolai Lavsky | 2021-02-03 13:40:43 +0200

Correct a change log entry
The player is notified about the Zot clock when there are 1000 turns
left. The notification schedule is in `_bezotting_level_in()`.

--------------------------------------------------------------------------------
d447f0f5e7 | Edgar A. Bering IV | 2021-02-03 13:34:37 +0200

Checkwhite

--------------------------------------------------------------------------------
a34dcf4e91 | Aliscans | 2021-02-03 13:09:30 +0200

Stop art-data.pl from rewriting files which haven't changed.
Before writing to an output file, art-data.pl now reads the file, and only 
writes it if the new version is different.

This should reduce the number of files make rebuilds when art-data.txt is 
changed. In particular, many files depend on art-enum.h, but this only stores 
the names and ID numbers of artefacts.

--------------------------------------------------------------------------------
74f53ef629 | advil | 2021-02-02 22:24:48 -0500

Update lightning scale description for Pa (u/tom_yum_soup)
This is not a very flavorful description, but at least it's accurate.

--------------------------------------------------------------------------------
4e57ec5eb2 | Nicholas Feinberg | 2021-02-02 18:58:48 -0800

No treeporting into summoned trees (vt)
This caused crashes, actually!

--------------------------------------------------------------------------------
dc854216a7 | Nicholas Feinberg | 2021-02-02 18:22:45 -0800

Fix eleio tree-a-port (12478, gammafunk, Yermak)
Don't let them go through glass.

--------------------------------------------------------------------------------
41607c7541 | Nicholas Feinberg | 2021-02-02 18:14:40 -0800

Fix manual display bug (12476)
The relevant skill wouldn't be marked visible in your skills list
until you reloaded the game.

--------------------------------------------------------------------------------
075faa5519 | advil | 2021-02-02 15:27:42 -0500

`channel` -> `*channel` on wucad mu
to indicate that it is a passive effect.

--------------------------------------------------------------------------------
b07c51db7e | advil | 2021-02-02 13:03:36 -0500

Reorder checkwhite and unbrace in CI
Also, fix a checkwhite error that was showing up as an unbrace error
in CI because of the order.

--------------------------------------------------------------------------------
0dd03a7ff8 | advil | 2021-02-02 12:41:32 -0500

Refactor targeting to minimize console redraws
38af612a8a cleaned up the direction chooser code-wise quite a bit, but
it had unintended side-effects for console. In particular, after this
commit, the entire window was fully cleared and redrawn on every
keypress. This isn't very noticeable on local builds, but it is
extremely heavy over ssh and can (especially with lower ping) cause bad
flicker when targeting while playing online. (It also is going to have a
non-trivial impact, in aggregate, on ttyrec size.) This commit refactors
the widget wrapping so that most of the time a full screen redraw is not
needed; only the parts of the view that need to be redrawn get redrawn,
the message window is only redrawn if there are messages, and the
sidebar is only redrawn when a full screen redraw is triggered (e.g.
initially, or by opening and closing the help window). This code may or
may not be a bit hacky relative to more normal Widget classes.

This should involve no change for local tiles. However, as far as I can
tell the new OverlayWidget class works fine in local tiles, if doing all
this redrawing were to be a problem there. Should also not impact
webtiles targeting.

--------------------------------------------------------------------------------
e0fc76b88b | Nicholas Feinberg | 2021-02-01 17:37:22 -0800

Don't let phantoms blink away from formicids
You can't dance without a partner.

--------------------------------------------------------------------------------
ee7b36d103 | Nicholas Feinberg | 2021-02-01 17:34:09 -0800

Display meph chance on targeter
Some code duplication here, but whaddya gonna do.

--------------------------------------------------------------------------------
0dbb1cdb06 | Nicholas Feinberg | 2021-02-01 17:18:40 -0800

Refactor targeter desc code

--------------------------------------------------------------------------------
d744f4be51 | Nicholas Feinberg | 2021-02-01 17:10:45 -0800

Rename mr to wl
In a single variable name.

--------------------------------------------------------------------------------
48b565bfe2 | Nicholas Feinberg | 2021-02-01 17:08:50 -0800

Refactor dazzle chance
To avoid drift between the targeter and the effect.

--------------------------------------------------------------------------------
52650a7530 | Edgar A. Bering IV | 2021-02-01 23:51:49 +0200

Correctly describe stair behavior of durable summons
These have always been able to use stairs, but at some point describe.cc
lost the memo.

Closes #1618

--------------------------------------------------------------------------------
54cb51f372 | Edgar A. Bering IV | 2021-02-01 23:51:49 +0200

Mark monster equipment as "SEEN" after we id it
This affects note-taking only, as set_ident_flags doesn't care about
seen for item knwoledge. Closes #1580.

--------------------------------------------------------------------------------
3ba7187429 | Edgar A. Bering IV | 2021-02-01 23:51:49 +0200

Defer a terrain check for rampage
Only check for passable terrain for cells that don't contain our rampage
target, so that monsters in impassible terrain can still be rampaged at
if they're adjacent to a safe square for the player.

Closes #1632

--------------------------------------------------------------------------------
56efc2da1b | Edgar A. Bering IV | 2021-02-01 23:51:49 +0200

Restore a bit of smarts to autoexplore (Aliscans)
Since possibly a long time (I didn't archaeology) autoexplore has had a
non-executing guard against moving adjacent to unknown territory when it
doesn't have to. This commit restores the check.

Closes #1595

--------------------------------------------------------------------------------
b03138de70 | Edgar A. Bering IV | 2021-02-01 23:51:49 +0200

Properly initialize configurable dirs
Options.shared_dir is the storage location for a build-condfigured
SHARED_DIR_PATH option, and otherwise is a synonym for Options.save_dir
(which has sane defaults and is forced to the configured global default
in DGAMELAUNCH builds);

However, it only gets correctly set to Options.save_dir after the call
to Options.reset_options for the second load of the user's rc file after
game start. Consequently, the High Scores display doesn't respect
Options.save_dir, even though the main menu otherwise does.

This commit implements some custom handling for save_dir to behave
correctly on builds without customization.

Closes #1694

--------------------------------------------------------------------------------
9234712022 | Edgar A. Bering IV | 2021-02-01 23:51:49 +0200

Remove ball lightning from arena sprint
Closes #1713

--------------------------------------------------------------------------------
9b2ddefb56 | advil | 2021-02-01 13:57:52 -0500

Restore 0.24 console map scrolling behavior
In 2fe5a39f5e4 code that was only used to initialize the map view, prior
to the commit, was converted to set the region and cursor position on
every render. The result was a change in behavior, where previously
scrolling only moved the viewport when it hit the edges of the map,
after this commit it effectively scrolled the viewpoint on any movement
on big enough maps, keeping the cursor in the center. It's possible this
was even intentional, not sure, because the new behavior resembled what
happens in local tiles and webtiles in the map view (this would at least
make it easy to miss relative to non-console map view). However, this
behavior is not a good fit for the console map view; The map changing on
any movement of the cursor is (IMO) much harder for the user to process
than just changing the cursor position, and the required full-screen
redraw every step is slower over ssh. (To be clear, I actually think
this first point applies to the other two UIs as well, but one step at a
time.)

This commit restores the 0.24 behavior with (what I think is) a small
improvement: scrolling within a few squares of the edge rather than at
the edge will trigger movement of the viewport on the map, always
keeping a 3 tile margin. (0.24 and earlier scrolled at the edge.)

--------------------------------------------------------------------------------
b15c29f0ac | Nicholas Feinberg | 2021-02-01 08:48:23 -0800

Goldify manuals
Move manuals from the inventory to being automatically applied to
skills after pickup, somewhat similarly to spellbooks. (There weren't
any interesting decisions about holding manuals vs consumables.)

This also makes them useful for gnolls again, because the UI hassle
is gone and because getting different skill titles is fun.

--------------------------------------------------------------------------------
6b030e5e4e | Nicholas Feinberg | 2021-02-01 07:55:01 -0800

Don't auto-exclude summoned spires

--------------------------------------------------------------------------------
4d1656c070 | Alex Jurkiewicz | 2021-02-01 10:04:33 +0200

Migrate to actions/cache v2 (was v1)
No breaking changes. Several minor improvements to performance. Will hopefully 
reduce incidence of spurious errors.
--------------------------------------------------------------------------------
3bf7917939 | wheals | 2021-02-01 09:18:47 +0200

Fix the prompts on the Q/Q* menus

--------------------------------------------------------------------------------
47d50fa972 | wheals | 2021-02-01 09:18:47 +0200

Don't print the menu prompt in the message port
This applies to all auto_list menus (i.e., all of them but the second
part of the adjust items prompt). This is more consistent with the q, r,
etc. menus which already didn't print a prompt outside the menu itself.

--------------------------------------------------------------------------------
7d305d30b1 | wheals | 2021-02-01 09:18:47 +0200

Add a missing space

--------------------------------------------------------------------------------
95f23adaf7 | wheals | 2021-02-01 09:18:47 +0200

"throw a tremorstone" -> "release a tremorstone"
"Throw" seems like an odd term both flavor-wise and mechanically. It
made sense when the evokable was targeted, but now is inconsistent with
throwing any other item, which lets you target.

--------------------------------------------------------------------------------
e082b6e869 | advil | 2021-01-31 12:41:52 -0500

Adjust some empty quiver cycle messaging
This gets rid of the vestiges of oldquiver error messages, and rewrites
things to use the newquiver code in a more straightforward way. This
removes some of the hints that the old errors gave about inscriptions
etc, but I think the simplification her targets everything that will be
likely to apply to newer players who need the hints in the first place.

--------------------------------------------------------------------------------
967dceb2f5 | Nicholas Feinberg | 2021-01-31 09:05:59 -0800

Fix monster magic
2ee872d4bda only fixed one of the two cases where the magic resistance
(now willpower) string appears in monster.

--------------------------------------------------------------------------------
39035a7bb1 | Nicholas Feinberg | 2021-01-31 09:03:24 -0800

Rejigger phantoms
Phantoms are well known for being notorious time-wasters. They blink
frequently, which makes it very easy to escape them, but very hard to
kill them. They're not very fun!

This commit removes their Blink spell and replaces their AF_BLINK melee
attack with AF_BLINK_WITH, which transports the target along with the
victim. Since this interacts very badly with Haunt, phantoms have been
removed from that summon set. Along with the recent removal of hungry
ghosts, Haunt's monster set has gotten significantly more consistent -
someone should probably take a look at that and see if any compensating
changes are needed to weaken it.

This commit also drops phantom HP by about 30%, to bring their defenses
more in line with other threats in the same area like iguanas and ogres.

--------------------------------------------------------------------------------
290af4607b | Nicholas Feinberg | 2021-01-31 09:03:24 -0800

Fix attack flavour descriptions
Fix a compiler warning in util/monster and remove support for removed
flavours.

--------------------------------------------------------------------------------
e4214ee863 | advil | 2021-01-31 10:03:10 -0500

Fix =f,=F,!Q inscriptions
The behavior of =f/=F was unintentionally flipped, and also broken for
ammo items in another way I think. !Q hasn't been working for a while;
I think this was broken by moving quiver selection away from an
inventory menu. Here I have slightly changed the behavior, by making !Q
entail =f and =F, and therefore be a quick shortcut for "really don't
ever quiver this thing".

--------------------------------------------------------------------------------
29c5ad5b46 | advil | 2021-01-31 10:03:10 -0500

Don't use fire_order for Q menu inclusion
This affected only ammo, and was more confusing than helpful. A better
candidate for the menu itself (tbd) might be something more like the
spell library hide/show feature.

--------------------------------------------------------------------------------
cee7053d2b | Josh Gelbard | 2021-01-31 11:19:22 +0200

Don't try to spawn spiny frogs in arena sprint

--------------------------------------------------------------------------------
1fbed8a51c | advil | 2021-01-30 22:05:34 -0500

Improve some comments re ability ranges when quivered

--------------------------------------------------------------------------------
68775813e2 | wheals | 2021-01-30 23:56:06 +0200

Remove armour corpses
Fixes the mon-data test

--------------------------------------------------------------------------------
539a43b7bd | advil | 2021-01-30 16:10:01 -0500

Add a better UI range check for minor destruction (12451)
Minor destruction did not have a range check except on activation,
leading to bad behavior with autofight_throw=true when quivered.  This
commit follows the same strategy in 0579ed41f9 for rolling charge. The
background problem is that the ability API is still somewhat
impoverished, and we don't want to fully disable the ability with no
enemy in range (because there is no way to force-activate it equivalent
to casting `Z`). However, for quiver and autofight purposes the quivered
ability needs to be marked as disabled in this scenario. Eventually it
would be nice if spells and abilities had a more uniform interface for
these issues.

--------------------------------------------------------------------------------
610fdbd41d | Nicholas Feinberg | 2021-01-30 12:27:24 -0800

Remove unused params (geekosaur)

--------------------------------------------------------------------------------
7a72b21653 | Nicholas Feinberg | 2021-01-30 12:19:49 -0800

Re-remove hyperactive ballistomycetes (lici)
Removed in 7da3b9efa77 the first time.

--------------------------------------------------------------------------------
989026e53a | Nicholas Feinberg | 2021-01-30 12:15:11 -0800

New spell: Animate Armour
L4 Earth/Summoning. Call forth the spirit of your armour, bringing forth
a slow-moving ally that hits harder the heavier your armour is. Casting
this in robes creates a 40 HP, 4 AC ally that hits twice for 4 damage.
In plate armour, you get a 40 HP, 20 AC ally that hits twice for 60 damage.
Wham, pow! (Summon limit is 1, as with CCF.)

The design goal here is to help provide some incentives for heavier armour
characters to delve into spellcasting. Historically, spells like Haste and
Phase Shift tempted players in this direction. Those spells had their own
problems, but the 'hybrid' skilling they encouraged was fun. This spell
will still be inappropriate for many characters, but if it brings a few
'melee' characters to dabble in spellcasting or 'caster' characters to
put on heavier armour, I think that'll be great.

Numbers are very much a first draft. I can easily imagine that the damage
should scale differently or that HP should vary by armour type, for example.

Many thanks to everyone who helped with this. Special thanks to hellmonk
for balance suggestions, ebering for code and balance suggestions, mesh and
rojja for German advice, and canine for the final name.

--------------------------------------------------------------------------------
22a811f1fd | Edgar A. Bering IV | 2021-01-30 21:02:08 +0200

Adjust a check for hazardous statuary
Closes #1670. The want_move parameter would treat statues as one tile
closer in i_feel_safe for travel purposes, even if there was a wall in
the way. This resulted in an edge-case where the player would feel
unsafe even though no hazard existed, see the related issue for an
example.

--------------------------------------------------------------------------------
1a8b9f50bf | Edgar A. Bering IV | 2021-01-30 16:45:58 +0200

A bit more /charming renaming

--------------------------------------------------------------------------------
7879cab74d | Edgar A. Bering IV | 2021-01-30 16:29:03 +0200

Quote and description database cleanup
Removing old and oudated translations

--------------------------------------------------------------------------------
2f42aecd5e | Edgar A. Bering IV | 2021-01-30 16:17:50 +0200

Further /charming rename (randomMesh)

--------------------------------------------------------------------------------
7ee54fca44 | Nicholas Feinberg | 2021-01-30 10:35:37 +0200

Remove harpies from Monstrous Menagerie
Harpies caused several issues for Menagerie:

- They weakened the mechanical identity of the spell. Menagerie
  stands out among other Summoning spells of a similar level for
  summoning primarily ranged allies, but harpies, of course, are
  melee fighters.
- They confused players. The summon cap applies per-harpy-band, not
  per-harpy, but that's not at all obvious from the description or
  in-game. Plus, the number of harpies per band varies randomly, so
  how close are you to your summon limit at any given time? It takes
  some tracking!
- They exacerbated weird spellpower behaviours. Harpies were generally
  the strongest result you could get from the spell, better than the
  notionally-higher-level sphinxes, so it wasn't really much of a plus
  to increase your spellpower as you'd hope. Not great incentives!

This change should, hopefully, preserve the distinctiveness and power of
this lovely classic spell.

--------------------------------------------------------------------------------
d326f4184a | Edgar A. Bering IV | 2021-01-30 10:30:17 +0200

Silence a warning

--------------------------------------------------------------------------------
0e2341561c | Nicholas Feinberg | 2021-01-30 09:45:27 +0200

Rename wands of enslavement to charming
Now that the charms school is no more, we can re-use that pleasant
and classic name (of D&D fame) for this classic wand.

--------------------------------------------------------------------------------
d48b2df3c9 | Kate | 2021-01-30 00:37:40 +0000

Reword DS magic regen mutation
The old message no longer made sense with it being the first mutation of the
facet.

--------------------------------------------------------------------------------
dcb3803577 | advil | 2021-01-29 16:39:40 -0500

Halve the impact of map scaling on glyph mode
Because the base value (e.g. the text size at 100) is so much smaller
than regular tiles, zooming out from 100 has an outsized impact. An
alternative to this commit would have been to change the default map
mode scale value to something less zoomed out, but doing things this way
also correctly handles the case where a glyph mode player is spectating
a tiles player at the regular zoom levels.

--------------------------------------------------------------------------------
d047dbe480 | Edgar A. Bering IV | 2021-01-29 14:26:02 +0200

Don't crash on randbook Wn start (12470)

--------------------------------------------------------------------------------
8ba017916c | advil | 2021-01-28 19:02:17 -0500

Limit printable keycodes in webtiles to ASCII
This was (I think) impacting non-US keyboards, where keycodes
corresponding to invalid UTF-8 were causing the webserver to choke, and
the macro menu not to get forwarded to the client (keycode 169, which
*may* result from a closing paren on AZERTY, is one example). It
possibly also affects some unusual keys on certain keyboards. There must
be a more elegant solution but for now this will just show the keycode
directly in the macro menu. Better would be to somehow figure what keys
are involved, and print their names, but this seems a bit of a hopeless
task for webtiles.

It's possible that console needs a similar fix as well, but there (at
least in my testing) the result is not that the menu fails altogether --
though it's not very usable. But this would be better tested by someone
with a different locale / keyboard layout. SDL should be handled by SDL
code, so if it fails on this stuff, it's at least not a crawl bug.

--------------------------------------------------------------------------------
dd83002478 | advil | 2021-01-28 19:02:17 -0500

Use a name for ' ' when a name is called for
This is a printable char, but isn't apparent in most circumstances when
it would be printed directly, so ' ' is not useful as the character
description. Therefore, use "Space". Impacts only menu hotkeys, and
probably only in the macro menu.

--------------------------------------------------------------------------------
1307ea1511 | AdamPG | 2021-01-28 23:15:45 +0200

Add prompts to various types of movement
This commit adds a prompt to several forms of movement that previously did not 
end Ozocubu's armour or frozen ramparts. This commit also adds barb damage and 
a prompt to several physically-flavoured forms of movement (such as barachian 
hop) that previously did not trigger barb damage, and removes braces that were 
made unnecessary by a previous commit.

--------------------------------------------------------------------------------
88da7fdab6 | AdamPG | 2021-01-28 23:15:45 +0200

Change the colour of the message displayed when frozen ramparts ends
Currently, Ozocubu's armour uses the MSGCH_DURATION colour (blue) and frozen 
ramparts uses the default colour (white) upon ending. This commit makes these 
messages consistent.

--------------------------------------------------------------------------------
8403051451 | AdamPG | 2021-01-28 23:15:45 +0200

Make icy spells end whenever the player's position changes
Currently, many forms of movement (such as barachian's hop, Uskayaw's line pass 
and all forms of blinking) do not break frozen ramparts or Ozocubu's armour. 
Since the location of frozen ramparts is tied to the player's position at the 
time of casting, any change to the player's position should break the spell. 
Arguably Ozocubu's armour should break only for voluntary movement, as the 
effect is not tied to the player's initial position, but for consistency we 
make it break under the same conditions as frozen ramparts.

--------------------------------------------------------------------------------
f34d913ce3 | Kate | 2021-01-28 20:35:44 +0000

Remove unused code

--------------------------------------------------------------------------------
da3435bf36 | Kate | 2021-01-28 19:59:30 +0000

Upgrade the sceptre of Asmodeus
Considering that it requires killing Asmodeus to get hold of (and the summons
always turn hostile with no easy abjuration), it seems fine to just give it a
straight upgrade to match Asmodeus's new summon list.

--------------------------------------------------------------------------------
ac52ab2824 | Kate | 2021-01-28 19:38:36 +0000

Reword a Wyrmbane message
The joke on-equip message for draconians wasn't a very good one.

--------------------------------------------------------------------------------
cd1702ac4d | Edgar A. Bering IV | 2021-01-28 21:23:15 +0200

Downweight a Lugonu altar vault
This altar vault has a very large place range, and so was appearing
quite frequently (I didn't run mapstat, but it was in 1/3rd of my
tournament games!). Lower the weight so it doesn't get old.

--------------------------------------------------------------------------------
fb5ce4e607 | Edgar A. Bering IV | 2021-01-28 20:02:56 +0200

A tile for dread liches
A recolour of ancient liches to give them spiffy magenta robes instead
of blue.

--------------------------------------------------------------------------------
3b45c41056 | Edgar A. Bering IV | 2021-01-28 20:02:56 +0200

Tiles for Deep Elf Zephyrmancers and Pyromancers
Zephyrmancers just use the mage tile (which already had a blue robe),
and Pyromancers are a red robe recolour.

--------------------------------------------------------------------------------
3d1ca0d2d8 | Edgar A. Bering IV | 2021-01-28 20:02:56 +0200

Simplify monster spellbook description code
Now that monsters only have one spell book, we no longer need to infer
their book from seen spells, which really simplifies a lot of the
display.

--------------------------------------------------------------------------------
97bf95f3a4 | Edgar A. Bering IV | 2021-01-28 20:02:56 +0200

Split Deep Elf Mages into two monsters
Deep Elf magi had 6 (!) spellbooks, intending to represent the four
elemental schools, conjurations, and summonings. The most impactful of
these books were the lightning bolt book and the fire book; the other
elemental schools are represented in various ways by other elf monsters.

This commit creates two new monsters: deep elf pyromancer and deep elf
zephyrmancer, to carry the fire and air books repsectively. Both have
the same stats.

Additionally, this moves the console glyphs around (since 'e') is a bit
crowded; knights move to blue (matching naga warriors and Duvessa),
pyromancers go on red (matching their elemental colour and Dowan), and
zephyrmancers go on cyan (again an elemental colour match). The
Dowan/Duvessa collision is a bit unfortunate, but they occur at
different depths and with this convention they roughly mimic the
behavior of their glyphmates.

As with the lich split, I've split up the usage in various vaults,
mostly balancing the weight. In the spawn tables I did similarly, except
for dungeon, where pyromancers come earlier than zephyrmancers, and for
abyss, where these lower elves are removed (they were very rare
anyhow).

--------------------------------------------------------------------------------
a69ff2a406 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

New Monster: Dread Lich
(Name is TBD) To keep some more iconic Lich spells around in this single
book world, the Dread Lich is the lich of demon summoning, with a book
consisting of Haste, Summon Greater Demon, Paralyze, and Invisibility.

Dread liches have the same stats as ancient liches, and appear in the
same places. In vaults they either increased the total lich weight
(where the vault seemed weak), or split weight with ancient liches,
except in those cases when the vault designer seemd to specifically be
using ancient liches in their summoner or their conjuror role.

--------------------------------------------------------------------------------
4c84cb8321 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

New Lich spellbook
Liches and Ancient Liches have several iconic spells, conjurations,
hexes, and summon greater demon (espeically notable on ancient liches
who are tough enough to keep their demons around!). So many that making
a single book that covers all of the roles leaves a book that steps on
its own toes.

This commit creates a conjurations focused spellbook for Liches and
Ancient Liches consisting of Corrosive Bolt, LCS, Slow, Haste, and
Invisibility; this is basically the old LCS book, but with Slow and
Invis instead of Petrify. A subsequent commit will introduce a new 'L'
monster to take up the summoning Lich role.

--------------------------------------------------------------------------------
ff29be1aa7 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Replace Dispater's Summon Greater Demon
With Summon Hell Sentinel. For the same reasons that Ereshkigal was
changed to summon a specific demon, Dispater's call now goes only to the
Hell Sentinels.

--------------------------------------------------------------------------------
f4ffc1b5e2 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Replace Ereshkigal's Summon Greater Demon
With Summon Tzitzimitl. SGD is a generic spell, and while it's maybe ok
for a Pandemonium lord to call up whichever demons, the Hell lords
should really only be calling flavorful demons, if any, since they're
not lords of all demons!

--------------------------------------------------------------------------------
ae91e92f12 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Change Cerbov's summon
Summon Greater Demon is of course something a lord of Pandemonium should
be able to do, but it seems a bit silly flavour-wise for the firey lord
of Pandemonium to summon a blizzard demon. This replaces Cerebov's SGD
with the buffed Fire Summon spell of Asmodeus, so he now only calls
Balrugs, Hellions, and Brimstone Fiends.

It's not completely clear that Cerebov even needs summons, since he's
the Fire Storm monster, but summons do prevent a player from isolating
the boss monster completely and Cerebov seems to work well with them, so
let's try it.

--------------------------------------------------------------------------------
03f7137ab2 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Buff Asmodeus' Fire Summon
Effreets and Sun demons aren't good threats at his depth, they're
removed from the spawn table for the spell fire summon.

--------------------------------------------------------------------------------
61ce20c919 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Remove some demon summoning
Demon summoning is overused on many monsters. Some could still use a
summon, but a more flavorful specific summon. For neqoxecs and shadow
demons, the summoning spell wasn't that notable. Shadow demons already
mostly appear in places with demonic spawn lists, where shadow creatures
will fetch plenty of demons; neqoxes demon summoning got in the way of
their other line of fire spells and didn't enhance them much.

--------------------------------------------------------------------------------
c6c22aa4fb | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Remove Bolt of Cold from tzitzimitls
While there is a certain ammount of cold/undead theming, as a "fiend"
type monster it'd be better if their spells didn't overlap with Ice
Fiends. They still have plenty of tools to threaten a living rN+++
player character, and dispel undead for undead players.

--------------------------------------------------------------------------------
fd204b979a | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Remove some Level 1 spells from high level monster books
They don't do much other than add to cognitive load. Casting frequencies
are a better way to adjust this sort of thing.

--------------------------------------------------------------------------------
b39fecbb77 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Remove Twisted Resurrection
This spell lived on in a rather meager twilight existence on some high
tier elves. However, like other monster necromancy spells, it was rarely
impactful: even when there were a large number of corpses they rarely
could amalgamate together to make enough large abominations to threaten
the player.

--------------------------------------------------------------------------------
760eeed2df | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Give Khufu Scarabs instead of Undead
In line with the other Royal Mummy changes.

--------------------------------------------------------------------------------
bc7614a589 | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Make most monsters single spellbook
Monster spellbook variation was used for a mix of two reasons: flavour
and threat variance akin to monster item use. Unlike monster items,
which are easy to display in the UI, spell books are potentially long,
so tracking which ogre mage on screen is the one with Paralysis was a
serious UI screw which can't be quickly addressed by adding a HUD
indicator.

This UI screw plus cognitive load is not worth it: for most multi-book
monsters the book variations lack enough focus to build flavour and are
rather balanced in their threat levels. This commit changes every
multi-book monster except deep elf mages and (ancient) liches to have a
single book. Specific monsters and the reasoning behind their new books
follow.

The general guiding principle I've followed when assembling the new
book is to try to follow the "feel" of the old book sets that a player
would get if they weren't checking each monster's book carefully.

Faun
----

The old Faun spellbooks were corona + another hex. There are a mix of
Will checking threats in shoals, but often players arrive with lots of
Will gear stacked up. Fauns show up in packs and their Corona+Hex book
was designed to make them amplify other ambient ranged threats. The new
book gives them Strip Willpower in place, for helping one another and other
ambient monsters hex the player.

New Faun book:

- Corona
- Strip Willpower

Deep Elf Knight
---------------

Deep Elf Knights had one book with Icicle, Haste, and Invisibility,
and a second which had Stone Arrow, Force Lance, and Invisibility.
The positional implications of Force Lance are great to keep around,
so it's added to the rest of the first book.

New Deep Elf Knight book:

- Throw Icicle
- Force Lance
- Haste
- Invisibility

Orc Wizard
----------

Orc Wizards had three(!) distinct books, but their most iconic behavior
was confusing the player and going invisible. This is book II, shared
with Sigmund, and this is made into the single Orc Wizard book.

New Orc Wizard book:

- Magic Dart
- Throw Flame
- Confuse
- Invisibility

Blork
-----

Blork the Orc used Orc Wizard book III, this is basiclly preserved but
emergency invisibility is removed from the book since it was quite long.

New Blork book:

- Cantrip
- Magic Dart
- Throw Flame
- Throw Frost
- Haste

Necromancer
-----------

Necromancers had two books which differed only in the choice of bolt
spell. In a large fight where Bind Souls has produced many simulacra,
the player could hide from either bolt by using the simulacra to block
LOF. The new book gives Necromancers Bolt of Draining, which works
better with their mechanic.

New Necromancer book:

- Bolt of Draining
- Agony Range
- Bind Souls
- Invisibility

Wizard
------

Wizards' book assortment conveyed a mix of magics, to imply a mastery.
Based on the D&D class as far as I can tell. To keep that flavor I
picked a range of spells from their books that produced the same "mixed
magic" feel. They share depth with Ogre Magi but don't come in packs, so
I went with fireball and banishment here to differentiate the two spell
sets.

New Wizard book:

- Fireball
- Banishment
- Blink
- Invisibility

Hell Knight
-----------

Hell Knights are one of a couple of late game monsters that cast Pain,
which at their depth isn't much of a threat even when it can beat the
player's Will. Bolt of Fire is good for them, they can just use that.
Perhaps blink should be made non-emergency, but because Hell Knights
come in packs an injured HK blinking away to let a fresh one attack the
player is a nice touch.

New Hell Knight book:

- Bolt of Fire
- Blink (emergency)
- Haste

Ancient Champion
----------------

Another late game monster with Pain. Since they often come in bands with
undead, retaining Bolt of Draining might be good but for now I went with
short and sweet.

New Ancient Champion book:

- Iron Shot
- Haste

Royal Mummy
-----------

Each of the four Royal Mummy books had Smite and Torment, the remaining
mixed Summon Demon, Summon Undead, Summon Mana Viper, Summon Emperor
Scorpions, and Summon Death Scarabs in some combination. Plain Summon
Demon doesn't do much for RMs, Vipers are also quite fragile at the time
Royal Mummies appear and vulnerable to torment, and Mummy Priests
already summon undead. Scorpions are vulnerable to torment, so they're
not the best here, but the flavour is good. Perhaps we could give
emperor scorps rTorm. This is the old Book IV, which has the strongest
Mummy flavour.

New Royal Mummy book:

- Smite
- Symbol of Torment
- Summon Emperor Scorpions
- Summon Death Scarabs

Ogre Mage
---------

Ogre Mages typically come in packs with other Ogres and are notable for
hasting them. Beyond that they have a sort of wizard flavour to their
book set; this consolodation picks Bolt of Magma and Parlayse to round
out the set to differentiate them from Wizards which appear at
overlapping depth.

New Ogre Mage book:

- Bolt of Magma
- Haste Other
- Paralyse
- Invisibility

Tengu Conjurer
--------------

The different Tengu spellcasters have a hodgepodge of "battlemage"
spells. Flavour wise Tengu are supposed to be good at Conjurations and
Air magic, so I settled on the air book from the four book choices.

New Tengu Conjurer book:

- Lightning Bolt
- Battlesphere
- Blink

Tengu Reaver
------------

In keeping with the air theme (though less so conjurations), the new
Tengu reaver book attempts to give them a pair of spells that force a
player trying to melee them to reposition. The monster AI change when it
comes to blocking ranged allies means that the reaver won't block its
lightning spire if it can step aside, so this should interact well. It
might need spell logic to prevent the reaver from summoning 10000 spires
since monsters don't have summon caps, let's see how it plays.

New Tengu Reaver book:

- Freezing Cloud
- Summon Lightning Spire

--------------------------------------------------------------------------------
e00c81aa3c | Edgar A. Bering IV | 2021-01-28 20:02:55 +0200

Revamp Psyche's spellbook
The Orc Wizard III book isn't that exciting. Psyche's defining
characteristics as a unique are her dagger brand and chaos theme, so
I've leaned into that. The new book is: Cantrip, Polymorph, Chain of
Chaos, Invisibility.

At Psyche's depth Chain of Chaos is rather scary, but can be mitigated
by having other monsters around. Since she arrives at a depth where many
characters won't have a ready source of allies, this puts pressure to
engage Psyche with other hostiles around.

Polymorph is also in the mix, partly to thin out the CoC terror with
something chaotic in the casting weight, and partly because polymorph
aimed at the player is a rather rare effect and a good "signature spell"
for a chaos unique.

--------------------------------------------------------------------------------
de412597e9 | Neil Moore | 2021-01-28 12:57:45 -0500

Slightly improve a citation.
[skip ci]

--------------------------------------------------------------------------------
d2cd6250da | Edgar A. Bering IV | 2021-01-28 11:39:54 +0200

Consistently indent quotes in quotes.txt
Closes #1700

--------------------------------------------------------------------------------
5b54ba61a2 | Edgar A. Bering IV | 2021-01-28 11:05:17 +0200

Fix some KJV citations

--------------------------------------------------------------------------------
8fd39cdef8 | Edgar A. Bering IV | 2021-01-28 10:57:32 +0200

Don't mark unkown books useless for gnolls
Closes #1707

--------------------------------------------------------------------------------
607d9e9d85 | Nicholas Feinberg | 2021-01-27 18:57:25 -0800

Mention diggability on xv (hellmonk)

--------------------------------------------------------------------------------
d3d0dda1a4 | AdamPG | 2021-01-28 00:15:29 +0200

Prevent Ozocubu's Armour from breaking when equipping heavier armour

--------------------------------------------------------------------------------
a1f732d4ef | Goratrix | 2021-01-28 00:11:00 +0200

Replace travis build badge with github badge in README.md

--------------------------------------------------------------------------------
36043c2b5f | Edgar A. Bering IV | 2021-01-27 23:28:57 +0200

Adjust a misleading description (12374)

--------------------------------------------------------------------------------
13c09b7e0e | Edgar A. Bering IV | 2021-01-27 22:38:39 +0200

Remove an extra space (Yermak)

--------------------------------------------------------------------------------
1f8c70d38d | Edgar A. Bering IV | 2021-01-27 22:37:04 +0200

Remove an unused parameter and simplify

--------------------------------------------------------------------------------
f9d094ba99 | Edgar A. Bering IV | 2021-01-27 22:03:50 +0200

Don't leak stash info with Gozag gold detection (12413)
This makes gold detection work more like item detection, in that the
detected gold does not appear in stash search as it did previously. This
is a bit unfortunate, but this is the lone edge-case remaining where a
stash pile is revealed partially. It shows that the detected thing is
gold versus an item for a gnoll on the map, which suffices.

--------------------------------------------------------------------------------
e9b1cf51b5 | Edgar A. Bering IV | 2021-01-27 21:21:54 +0200

Don't hide Bows for one hand-paired ants

--------------------------------------------------------------------------------
78287705fb | Edgar A. Bering IV | 2021-01-27 20:59:54 +0200

Hide Bows when a hand is sacrificed (12398)

--------------------------------------------------------------------------------
bd0f0ea6ff | Edgar A. Bering IV | 2021-01-27 20:22:48 +0200

Make manuals useless for gnolls
Gnolls inability to focus skills makes manuals last an inordinate amount
of time, and also create weird incentives around manipulating
acquirement results versus getting technical advantages.

The lore says they can't focus, so let's extend that to focusing on
whats on the page in a manual and make them useless.

--------------------------------------------------------------------------------
66c4918636 | Edgar A. Bering IV | 2021-01-27 20:03:31 +0200

Remove an inappropriate sanctuary check

--------------------------------------------------------------------------------
0faeb86a01 | Edgar A. Bering IV | 2021-01-27 19:50:05 +0200

Don't look for clouds in the wrong places (12459)

--------------------------------------------------------------------------------
36630e8e57 | Nicholas Feinberg | 2021-01-27 07:42:46 -0800

Partially restore monster ranged AI
Due to a misreading, 4e0205b1fca8 removed the chance for monsters with
ranged weapons to do something with their turn other than shoot their
target. Oops!

The new logic is:

- Master archers (e.g. deep elf master archers, merfolk javelineers)
  have a 90% chance to shoot.
- Non-master-archers with ranged weapons have an 80% chance to shoot.
- Non-master-archers with throwing weapons have a 33% chance to shoot.

This should get us back roughly where we were before, but with less
throwing than after the infinite ammo change.

--------------------------------------------------------------------------------
832131d6ac | Edgar A. Bering IV | 2021-01-27 09:43:04 +0200

Make trove entries transparent

--------------------------------------------------------------------------------
bcd94eb011 | Nicholas Feinberg | 2021-01-26 22:07:12 -0800

Remove banana bunyips (hatsuma)
The end of an era...

--------------------------------------------------------------------------------
177a798329 | Nicholas Feinberg | 2021-01-26 21:52:33 -0800

Make monsters less throw-happy
Similar to wand logic, make monsters with throwing weapons only use
them some of the time. Instead of throwing every single turn while
not in melee, now they'll only throw their held item at you 1/3 turns.
Master archers (e.g. merfolk javelineers) and enemies with actual
launchers (e.g. centaurs) are exempted.

--------------------------------------------------------------------------------
4e0205b1fc | Nicholas Feinberg | 2021-01-26 21:45:30 -0800

Simplify monster throwing/launcher AI
Remove very complex and fairly pointless interactions with Leda's
Liquefication. That spell is not nearly powerful enough to require
making the AI play around it intelligently! The player should be allowed
to feel smart and to take advantage of dumb monsters with their
expensive situational spell!

--------------------------------------------------------------------------------
cb3516073f | Nicholas Feinberg | 2021-01-26 21:37:48 -0800

Don't summon demonic guardians from poison
Placeholder until/unless a cleverer approach is found.

--------------------------------------------------------------------------------
6fc33f2424 | advil | 2021-01-26 20:15:49 -0500

Don't do zone filling in the abyss
Unlike normal builder scenarios, connectivity checks are only rarely
triggered in the abyss, by the placement of a minivault it seems. (I'm
surprised they happen at all, and wonder what they accomplish.) In this
case, it seems wrong to do any fills, as the abyss is supposed to allow
temporarily disconnected zones.

In mantis 12442, 12416, as well as #1680, it was reported that this
scenario could lead to errors, because the fill code assumed that no
items had been placed yet. As far as I know this is mostly true, just
not for the abyss, which does most of its building before minivaults
have the chance to place. I've also added a guard against filling over
items, even though the main fix in this commit prevents the specific
case from coming up. Interfering items just get nuked, to prevent vetos.

Resolves #1680.

--------------------------------------------------------------------------------
9286b66fa0 | Edgar A. Bering IV | 2021-01-26 22:43:02 +0200

Sort the book of Ice

--------------------------------------------------------------------------------
4a2642d2bd | Edgar A. Bering IV | 2021-01-26 22:25:08 +0200

Don't print resist messages when casting Ozocubu's refridgeration
Closes #1693

--------------------------------------------------------------------------------
562fce5957 | Edgar A. Bering IV | 2021-01-26 22:21:24 +0200

Increase the level of Ozo's fridge to 7
The changes to remove self-damage and the damage formula for Ozo's led
to a very strong spell. While nerfing the spell damage is also a
possible route here, Ice magic currently has no level 7 or 8 spells, so
let's try the level bump as a balance knob.

--------------------------------------------------------------------------------
9515ab555c | Nicholas Feinberg | 2021-01-25 22:25:20 -0800

Fix the build?
This code is extremely bad!

--------------------------------------------------------------------------------
da0e56a6ef | Nicholas Feinberg | 2021-01-25 20:39:53 -0800

Bring Hellbinding back
By popular demand, make evil god-following summoners use the old titles.

--------------------------------------------------------------------------------
d3d65450af | Nicholas Feinberg | 2021-01-25 19:15:24 -0800

Integrate palentonga sprites
And add new palentonga lichform and 8form sprites.

Cloaks look sort of awful here, but not sure what can be done!

--------------------------------------------------------------------------------
2a9d61b3d9 | Hatsuma | 2021-01-25 19:15:22 -0800

donger sprites

--------------------------------------------------------------------------------
b7e3dba119 | Nicholas Feinberg | 2021-01-25 17:20:47 -0800

Remove item destruction (minmay)
Don't make fleeing enemies use scrolls of teleportation or blinking.
It doesn't create interesting tactical situations or decisions, and it
does cause annoyances and strange incentives for spoilered players.

--------------------------------------------------------------------------------
7528ca199a | Nicholas Feinberg | 2021-01-25 17:12:58 -0800

Mostly remove stone giants from Orc:2
Way, way, way too nasty compared to literally everything else. Orcs
should be the star of the show in Orc, imo, not some silly giants!

They can still spawn as OODs or in vaults. It looks like empirically
they'll show up about 40% as often as before.

At some point I should go over these spawn tables more thoroughly...

--------------------------------------------------------------------------------
6522fa7714 | Nicholas Feinberg | 2021-01-25 17:07:21 -0800

Revert "Add a trunk reminder for the 0.26 tournament"
This reverts commit 4bfc8a49e17f9a62c58050e8347afbcd08fc21f7.

So long, t0.26!

--------------------------------------------------------------------------------
0b64aa269c | Edgar A. Bering IV | 2021-01-26 00:44:09 +0200

Adjust and derandomize shield delay penalty
The old formula was approximately an extra min(1d adjusted shield penalty, 1d 
adjusted shield penalty) delay. However, this was calculated at a scale of 20 to
allow die with penalty less than 1, since for a human-sized player the
adjusted shield penalty of a buckler at 0 skill is 1. With scaling, the
formula was:

min ( 1 d (20 * penalty), 1 d (20 * penalty) ) / 20

randomly rounded.

As a result, at 0 skill a buckler did not have a delay penalty of 0.1,
but in practice was something that was 0 with a pretty high probability.
To get a very good chance of a delay penalty of 0, 7 skill was
sufficient for a kite shield, and 12 for a tower shield.

7 skill costs a human 1,400 skill points; 12 skill costs a human 4,200
skill points.

2 hand maces (excluding dire flails), pole arms, and
swords, all require 20 skill (or more) for min-delay; at the probability
of penalty achieved for the above shield skill values, this is a better
comparison point than the skill required for min+0.1 delay. 20 weapon
skill costs 13,950 skill points, compared to 9,600 for 16 skill and the
7 shield skill; the difference in base damage is not
sufficient compensation for enough skill points to raise a 0-apt skill to 10!

This commit changes the formula to something less random and stiffer,
namely:

random_round(penalty)

At 0 skill, a buckler has a flat constant delay penalty of 0.1,
eliminated at 4 skill. At 10 skill a kite shield gives a delay penalty
of exactly 0.1, and the old probability is achieved at a skill level
between 14 and 15. To get a delay penalty of 0.1 with a tower shield,
20 skill is required.

With these skill training targets, achieving a delay of min+0.1 for a 16
skill 1-hander while using a kite shield costs 11,000 skill points,
compared to the 10,800 skill points for 18 skill to get the same swing
speed with a 20 skill 2-hander. For min-delay, the 16 skill 1-hander +
kite costs 15,250, compared to 13,950 for a 20 skill 2-hander.

This is a better alignment of strategic costs, which will hopefully
make the "1h vs 2h" a more interesting strategic decision based on game
context.

The increase to broad axe delay in 81720017eb when combined with this
change might make broad axes too expensive; that is easily fixed if it
turns out to be the case.

--------------------------------------------------------------------------------
aa1b0a69e5 | wheals | 2021-01-25 12:16:27 +0200

Fix the build (doh)

--------------------------------------------------------------------------------
8898b9ca26 | wheals | 2021-01-25 11:51:24 +0200

Clarify a parameter name

--------------------------------------------------------------------------------
a59c3b2a1c | wheals | 2021-01-25 11:51:24 +0200

Clarify that malevolent magic applies only to wands (kate-)

--------------------------------------------------------------------------------
ef21787582 | hellmonk | 2021-01-25 11:51:24 +0200

Properly handle elemental and cloud producing facets.
These mutations are meant to exclude each other so that the player gets at most 
one elemental and at most one cloud facet. Formerly, this took advantage of 
mutations with a single mutlevel to handle the check, but that doesn't work 
anymore. This is as quick and dirty a fix as I could manage, since I plan on 
looking at this again for the tier 3 mut pr.

--------------------------------------------------------------------------------
b44e02ef28 | hellmonk | 2021-01-25 11:51:24 +0200

New tier 2 demonspawn facet, malevolent magic.
When a demonspawn with this facet casts a spell, they also try to paralyze 
enemies in a radius equal to the mutation level around them. The effect's power 
increases with spell level and checks magic resistance, and evocables will also 
trigger the effect once the player reaches the final rank of the facet. With 
luck, this should encourage some interesting spell positioning and use (without 
encouraging players to use very low level spells exclusively for the proc 
chance too much).
Rank 3 includes evocables so it isn't a completely worthless facet for 
berserkers. I think it probably feels too bad to lose an entire T2 facet for a 
choice made at game start. Aside from that, there are lots of balance knobs 
that can be tweaked. I'm very unsure of how good the effect ends up being 
across a full game, but it's very simple to adjust the paralysis power or 
duration, or the effect radius, if necessary. The flavor's kind of thin, too, 
so feel free to change that.

--------------------------------------------------------------------------------
afa7a0f0fe | hellmonk | 2021-01-25 11:51:24 +0200

Adjust the icemail facet.
While the icemail itself was very cool and powerful, the previous two ranks of 
the facet were relatively boring, and freezing cloud immunity was an especially 
odd choice given that the facet did not create clouds. This rework splits 
icemail in half across ranks 2 and 3 of the facet and reduces the total AC to 
8. A new mutation, Condensation Shield, is added for the first rank, providing 
4 SH that dissipates under the same conditions as icemail. This should keep the 
facet's role relatively intact without buffing it too much lategame; total 
defenses provided are 4 SH and 8 AC at rank 3.
Because the monster enchantment for icemail also uses ICEMAIL_MAX, I buffed 
gelid demonspawn base AC by 2 to compensate for their reduced icemail AC.

--------------------------------------------------------------------------------
5cca49f90c | hellmonk | 2021-01-25 11:51:24 +0200

Remove convection.
Don't melt icemail or ozocubu's armour when flying over lava. This incredibly 
niche interaction was, as far as I can tell, the only non-damage source that 
melted icy enchantments. There's not really a compelling gameplay reason for it 
to do that.

--------------------------------------------------------------------------------
eb50e5d1e3 | hellmonk | 2021-01-25 11:51:24 +0200

Revisit the spiny damage formula.
It's not worth making the formula that much more complicated. Here is a simpler 
one that should still be acceptable earlygame and is slightly worse at high 
experience levels.

--------------------------------------------------------------------------------
5fc36510a5 | hellmonk | 2021-01-25 11:51:24 +0200

Rework Demonic Guardian.
Previously, this facet used an extremely bad tension formula to determine 
whether or not to summon a guardian. It also had a unique time schedule that 
practically guaranteed the first rank of the mutation very early and usually 
pushed the second and third ranks very late. The result was an easily gamed 
mutation that turbo stomped early dungeon and then kept summoning imps until 
vaults or later.
This rework ignores tension altogether; instead, the mutation has a chance to 
activate whenever the player takes damage (guaranteed if the damage is greater 
than half max hp or if the player's health is critically low) and summons a 
demon whose tier is partially based on experience level. The variety of 
potential guardians is expanded a bit as well. Finally, the time schedule is 
brought into line with every other tier two facet in the game.

--------------------------------------------------------------------------------
9e10844823 | hellmonk | 2021-01-25 11:51:24 +0200

Rework Ignite Blood.
The third rank of the ignite blood facet is very cool, but the first two ranks 
are boring. Split the power of the actual blood igniting part over all three 
ranks of the facet - an increasing chance to ignite blood and longer duration 
flame clouds with each rank. Any rank of ignite blood also confers flame cloud 
immunity, since that's kind of necessary to use the mutation.

--------------------------------------------------------------------------------
93b95dc60d | hellmonk | 2021-01-25 11:51:24 +0200

Rework Spiny.
The previous spiny rework scaled its damage heavily with xl to reduce earlygame 
damage. While that change was well-intentioned, it made spiny 2 and 3 feel 
underwhelming. This commit puts a little power back into the upper mutation 
levels and reduces the level scaling somewhat, at the expense of making the 
formula messier.

--------------------------------------------------------------------------------
7c3aafa790 | hellmonk | 2021-01-25 11:49:40 +0200

Rework the foul stench facet.
This facet had a notoriously useless-on-receipt rank 1 mutation and some very 
strange mechanics under the hood. This commit takes the rrot mutation out of 
the facet. The facet will now provide foul stench at every rank, with 
activation chances rescaled accordingly. Since the player needs to be immune to 
their own clouds, any rank of foul stench confers rot immunity. The facet no 
longer makes attackers sick and can now place miasma on any attack that deals 
damage, not just ones that hit for more than 4 dam.

[committer's note: rrot was removed in the meantime anyway, so
substitute "miasma immunity" for "rot immunity/rrot".]

--------------------------------------------------------------------------------
2d7ca500d8 | hellmonk | 2021-01-25 11:43:15 +0200

Reorder the mana link facet.
Provide boosted mp regeneration first, when it's most likely to matter, then 
give spirit shield second. Mp regen earlier might make it more useful as mp 
regen rather than as pseudo hp-regen, though overall the change should be and 
is intended to be a nerf.

The third rank of this facet still leaves something to be desired and has a bad 
interaction with posion damage (specifically, can kill the player at "safe" 
levels of poison by redirecting their hp regen), but cannot be moved before 
spirit shield for obvious reasons. I hesitate to replace it with either 
additional mp regen or a mana vamp effect because that gives this facet even 
more overlap with other regen boosting facets. Someone should make gspirit work 
on poison damage, but that is out of scope for this rework.

--------------------------------------------------------------------------------
8aa0e2c87f | wheals | 2021-01-25 11:42:59 +0200

The future

--------------------------------------------------------------------------------
405e40da7a | ukdong99 | 2021-01-25 11:09:43 +0200

Mark an assuary enterance as transparet 2
Resolves another vault which has the same issue in #1639

--------------------------------------------------------------------------------
37ff1ca61a | Nicholas Feinberg | 2021-01-25 09:59:57 +0200

Remove Evocation scaling from Spectral
Currently, the spectral brand is the most complex weapon ego in the game.
It has two significant drawbacks:

1. It can significantly increase the damage the wielder takes, since the
spectral weapon shares damage with the player.
2. It requires Evocations training to use.

Both due to the overall complexity and the perceived weakness of this
brand, I'm inclined to simplify by removing one of these effects. Pain
sharing makes the brand a bit harder to evaluate, since most brands have
no downside at all vs an unbranded weapon (chaos being the notable exception).
Evocations scaling has several other problems, though:

- It confuses players on a regular basis. People miss the subtle messages about
  'ineptitude' and fail to understand why the spectral weapon isn't triggering -
  'is it broken?' Some of them ask other players and get the confusion sorted 
out
  but others, presumably, just continue thinking it's bugged!
- It's the only effect where Evocations training gives benefit to a passive 
effect,
  rather than an evocable item or ability. This isn't the end of the world, but 
it
  is an odd exception.
- Evocations skill is currently very useful for most characters even without 
this
  - most games present a large number of powerful, Evocations-scaling items that
  strongly incentivize Evocations training. It's somewhere between unuseful and
  counterproductive to add one more.

It's possible that the damage sharing effect should also go away or be reduced
in magnitude - the downsides of "need to mess with positioning" and "don't have
another brand" might be enough to balance spectral. We'll see!

--------------------------------------------------------------------------------
19cb506db8 | Nicholas Feinberg | 2021-01-24 18:19:12 -0800

Tweak summoning titles
Now that the high-level demon summoning spells are gone, get rid of
the summoning titles that referenced them in favor of the agnostic
alternatives.

--------------------------------------------------------------------------------
eb620a3345 | Nicholas Feinberg | 2021-01-24 18:19:12 -0800

Remove Summon Demon
As with Summon Greater Demon (see previous commit, true believers!),
there are quite a lot of summoning spells around level 5, and this is
the only one that duplicates a Makhleb invocation. For the sake of fun
choices and variety between games, let's send this one straight to Hell.

--------------------------------------------------------------------------------
58b3cc3132 | Nicholas Feinberg | 2021-01-24 14:00:43 -0800

Checkwhite

--------------------------------------------------------------------------------
ed86a5fd00 | Nicholas Feinberg | 2021-01-24 13:54:03 -0800

Make nets finite again
Too brutal to give gnolls infinite nets, probably.

--------------------------------------------------------------------------------
d7dd4bcd53 | Nicholas Feinberg | 2021-01-24 13:53:23 -0800

Give monsters infinite ammo
Don't allow running monsters out of ammo, and make their projectiles
always mulch. Remove extremely spammy 'returning' boomerang animations
from monsters.

This is a buff to cyclopes and stone giants; we can nerf them again in
various ways if it proves to be too much.

--------------------------------------------------------------------------------
68f98bdfd7 | Nicholas Feinberg | 2021-01-24 13:47:09 -0800

Retheme /disintegrate -> /mindburst
Disintegration is a fun effect (everyone loves things blowing up),
but it's always been a weird exception in certain ways. MR (now Will)
was always the stat that resisted debilitating effects "plus Disintegrate",
and there was never any real flavour justification for that. Why could
you resist Disintegrate but not, say, Energy Bolt? It makes it hard for
players to develop intuitions about what affects what.

So let's retheme. Instead of an abstract Disintegration, Mindburst
specifically launches a psychic attack on the target's brain, attempting
to blow them apart from the inside. It should be a bit more intuitive why
this is affected by Willpower (since it's a mental attack), and it still
preserves all the explosive fun of the original.

For the sake of intuition, the new Mindburst does *not* affect mindless
creatures. This mostly shouldn't matter - there aren't that many mindless
creatures that you wouldn't want to disintegrate anyway. (It might be a bit
rough if you're up against an early centaur skeleton, maybe.)

Great Orb of Eyes' Disintegrate spell has been changed to use Mindburst as
well.

--------------------------------------------------------------------------------
b3a650cb6a | Nicholas Feinberg | 2021-01-24 13:44:20 -0800

Increase Stone Arrow damage by 2
Stone Arrow's damage compares very poorly to other spells of the same
level or below. Even compared to Sandblast, Stone Arrow (a level 3 spell)
does similar or less damage against most monsters. Rocks aren't that high
a cost!

--------------------------------------------------------------------------------
ab96107f46 | Nicholas Feinberg | 2021-01-24 13:41:49 -0800

Reduce gnolls attributes to human
The first several attempts at creating a gnoll species ended up
making something that was both weak and unfun. When the modern gnoll
was created (see d2df3b7b5 / 8a4a258fa7 ), they were pushed to be
significantly stronger - and it worked! A bit too well, in fact.
Gnolls are currently powerhouses from D:1 to Z:5.

Let's pull them back a bit, reducing their strength, intelligence and
dexterity to human baseline. I expect they'll still be quite strong,
but perhaps just a notch less ridiculous.

I'm not averse to weakening them further in future, but this seems
like a simple way to start.

--------------------------------------------------------------------------------
19610a9a0c | Nicholas Feinberg | 2021-01-24 13:40:43 -0800

Un-de-enhance Scarf of Shadows spells
Per the original commit (bf280b6766):

    This gives 1 spell de-enhancer, since reduced LOS is very strong
    and allows more spells to be in range at the edge of LOS. If that
    makes this item too weak it can be removed.

The scarf of shadows effect is as strong or stronger for non-casting
characters as for casters, which made it odd that only the latter were
penalized for using it. Overall, after the scarf was changed to only
reduce LOS by 1 instead of 2, the effect was usually not strong enough
to justify both the loss of several AC (vs an enchanted cloak) *and* a
spell de-enhancer. Removing the latter should help make this a more
viable equipment choice.

--------------------------------------------------------------------------------
ee1497a637 | Nicholas Feinberg | 2021-01-24 13:39:10 -0800

Show cloud damage for player spells
This is experimental. It's weird in that it's sort of asymmetric with
the monster versions (e.g. fire crab's flaming cloud), since those
show the impact damage instead. Maybe it's helpful, though?

--------------------------------------------------------------------------------
3644e03777 | Nicholas Feinberg | 2021-01-24 13:38:18 -0800

Display accuracy on ranged targeters
This was an oversight. Oops!

--------------------------------------------------------------------------------
d412354acc | Nicholas Feinberg | 2021-01-24 13:37:37 -0800

Reduce net trap trigger chance
Since making net traps not run out of ammo, they've become more vicious
than was intended. To mitigate this, give them a 2/3 chance of *not*
triggering when a monster enters them.

It'd be interesting to make them require LoF to hit the player, but
that's an experiment for another day.

--------------------------------------------------------------------------------
f16e6d0322 | Nicholas Feinberg | 2021-01-24 13:34:21 -0800

Remove Summon Greater Demon
There are 6 different level 7 Summoning spells: Summon Hydra, Monstrous
Menagerie, Malign Gateway, Haunt, Spellforged Servitor, and Summon
Greater Demon. As one might expect, there's considerable overlap between
those. In the interest of providing players with meaningful, distinct choices,
we generally prefer to limit overlap between spells.

Summon Greater Demon closely duplicates a Makhleb invocation, reducing the
distinctiveness of both effects. That puts it high on the chop list. In
combination with the removal of the old aura of abjuration -> SGD synergy
minigame, SGD seems like the best spell to cut.

To keep book balance, Haunt moves from the Necronomicon to the Grand Grimoire.
Now every high level book has 4 spells, which seems nice.

--------------------------------------------------------------------------------
b6a8d6b5b3 | Nicholas Feinberg | 2021-01-24 13:31:28 -0800

Refactor further

--------------------------------------------------------------------------------
e2d8f9ccf3 | Nicholas Feinberg | 2021-01-24 13:30:51 -0800

Rewrite LRD setup
I believe the only functional change here should be that monsters won't
directly LRD non-player enemies they can't see (which they probably
couldn't anyway?), but there's lots of room for bugs in a change this big.

--------------------------------------------------------------------------------
416527ed24 | Nicholas Feinberg | 2021-01-23 11:51:41 -0800

No Marshlight out-of-sight messages (Yermak)

--------------------------------------------------------------------------------
4d92ddfd83 | Nicholas Feinberg | 2021-01-23 08:57:48 -0800

Display Glaciate damage on xv
And remove support for player-cast Glaciate, since that's long-gone!

--------------------------------------------------------------------------------
2451fdf569 | Nicholas Feinberg | 2021-01-23 08:11:47 -0800

Make fenstriders evil (Snakku)
Oversight - I was used to this being auto-set from spells!

--------------------------------------------------------------------------------
0bfbe0ea93 | Nicholas Feinberg | 2021-01-23 08:10:49 -0800

Add missing roll icon (hatsuma)

--------------------------------------------------------------------------------
96f8838c2c | Nicholas Feinberg | 2021-01-23 08:05:21 -0800

Fix death explosion messages
Broken by 3dd439832fe0f5fe295caad1a2fe3e479a757cda - we'd claim that
players were 'hit from afar by a bloated husk' instead of 'killed by
an exploding bloated husk'. Oops!

From that commit's final line:
> Overall, this code is very bad and probably buggy. I'm sorry.

--------------------------------------------------------------------------------
e71ae6e9b5 | gammafunk | 2021-01-23 07:43:00 -0600

Fix the depth of a ghost vault (Mantis 12464)
In Dungeon it was only ever placing on D:8, instead of on its intended depth of 
D:8-D:$.
--------------------------------------------------------------------------------
6cd7b45605 | advil | 2021-01-21 12:41:38 -0500

Fix some error handling for lobby save info
This info was collected asynchronously, but the code didn't do anything
to handle the case where the socket closed before the save info was
fully collected, leading to uncaught exceptions in the logs.

--------------------------------------------------------------------------------
12357ec85a | advil | 2021-01-21 11:29:45 -0500

Remove item_info
This type was just a typedef to item_def. It was added in 8f49829c0752,
apparently with the idea that item_info would be used for item_defs that
represented id info, and item_def otherwise. However, this convention
wasn't even documented, let alone enforced by an actual type distinction
(and c++ never added a strict typedef), so it has undergone drift and
largely now exists to confuse people. I could imagine redoing this so
that the type checker will do something, but the id system is also much
less important now than it was at the time of the original commit, so it
seems cleaner just to simplify.

--------------------------------------------------------------------------------
3cb999cee2 | Andrew O'Neill | 2021-01-20 23:52:11 -0600

remove CMD_EAT from colemak
This is no longer needed since eating is out.

--------------------------------------------------------------------------------
f312352147 | advil | 2021-01-20 15:40:21 -0500

A bit of 288a49279187 that got lost in editing
oops

--------------------------------------------------------------------------------
a89a457576 | advil | 2021-01-20 15:26:35 -0500

Clean up logging for full socket buffer
When holding down a key in webtiles for something that takes a long
enough time to outpace the key repeat (either because it is
cpu-intensive or just because it imposes a delay), the buffer used to
communicate with the crawl instance can fill up, which triggers an
exception (and drops the key). When this happens, it is quite spammy in
logs on live servers. Ideally this could be prevented from happening in
the first place (e.g. any time this can happen on autofight/autofire is
a case that should be better optimized), but it will inevitably happen
from time to time, and doesn't need to fill up the logs quite so much
when it does; the stack trace is not informative.

For future reference, the full stack trace for a single case of this
will look something like (with minor differences between OSs):

2021-01-20 14:05:25,059 WARN: #0     Error while handling JSON message 
(''{"msg":"key","keycode":9}'')!
Traceback (most recent call last):
  File "/Users/advil/repos/crawl/crawl-ref/source/webserver/ws_handler.py", 
line 869, in on_message
    self.process.handle_input(message)
  File 
"/Users/advil/repos/crawl/crawl-ref/source/webserver/process_handler.py", line 
897, in handle_input
    self.conn.send_message(utf8(msg))
  File "/Users/advil/repos/crawl/crawl-ref/source/webserver/connection.py", 
line 109, in send_message
    self.socket.sendto(utf8(data), self.crawl_socketpath)
OSError: [Errno 55] No buffer space available

--------------------------------------------------------------------------------
288a492791 | advil | 2021-01-20 12:38:37 -0500

Reduce webtiles redraws per key input by 2
The previous behavior stems for a fairly old (729eb1357d24d1d5) decision
to send a redraw on each input mode change. Since every keypress swaps
between MOUSE_MODE_NORMAL and MOUSE_MODE_COMMAND, holding down a key
could trigger a lot of unnecessary redraws, and for example with no ammo
could max out the process's cpu usage (at least on a `make profile`
build).  I'm not actually sure why a webtiles redraw (which mainly send
the map and the player) is needed on any case of changing input mode,
but for now I'll be conservative -- and this is the case that shows up
in profiling.

As it happens, there's still at least one webtiles redraw per key input,
in getch_ck. But, the profiling with just this one doesn't seem like a
problem by itself. It's possible that redraw() itself has some issues
that could be addressed -- sending both the player and the map equally
eat up a lot of cpu with repeated calls.

--------------------------------------------------------------------------------
66375cd4da | advil | 2021-01-19 16:41:12 -0500

Refactor write_dgl_status_file
Just a code cleanup.

--------------------------------------------------------------------------------
b51a1d6fd6 | Nicholas Feinberg | 2021-01-18 09:36:51 -0800

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.

--------------------------------------------------------------------------------
5a9077b8ae | Kate | 2021-01-17 03:39:46 +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.

--------------------------------------------------------------------------------
65cebae1ba | Nicholas Feinberg | 2021-01-16 16:08:25 -0800

Don't show Fridge accuracy (lici)
Since it always hits!

--------------------------------------------------------------------------------
19769c27d7 | Edgar A. Bering IV | 2021-01-15 17:44:33 +0200

Add a missing of (Aliscans)

--------------------------------------------------------------------------------
39ad13b146 | Edgar A. Bering IV | 2021-01-15 07:43:18 +0200

Don't remain curled while delayed (12443)

--------------------------------------------------------------------------------
4f573a835d | Edgar A. Bering IV | 2021-01-14 20:37:32 +0200

Fix a teleport closet (MakMorn)

--------------------------------------------------------------------------------
33242fe616 | Edgar A. Bering IV | 2021-01-14 20:07:06 +0200

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
   easier
 - or the player has allies and is trying to do both things to a target,
   creating an ally-micromanagement encouraging edge case

--------------------------------------------------------------------------------
897d3da516 | Edgar A. Bering IV | 2021-01-14 19:44:25 +0200

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

--------------------------------------------------------------------------------
ea5d59904d | Edgar A. Bering IV | 2021-01-14 19:22:03 +0200

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

--------------------------------------------------------------------------------
0fe236cf81 | Edgar A. Bering IV | 2021-01-14 18:55:36 +0200

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

--------------------------------------------------------------------------------
f40771be7f | Edgar A. Bering IV | 2021-01-14 17:52:12 +0200

Remove an obsolte comment

--------------------------------------------------------------------------------
28f6fc2273 | Edgar A. Bering IV | 2021-01-14 17:26:14 +0200

Anger monsters who block player attacks
Consistent with dodged attacks that the monster is awake to notice.
Closes #1612

--------------------------------------------------------------------------------
b0dbf93ca2 | Edgar A. Bering IV | 2021-01-14 17:12:25 +0200

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
transporter.

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

--------------------------------------------------------------------------------
80642e47cc | Edgar A. Bering IV | 2021-01-14 14:40:54 +0200

Don't offer conjured things god blessings
Closes #1648

--------------------------------------------------------------------------------
0c344bb9d3 | Edgar A. Bering IV | 2021-01-14 14:18:25 +0200

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

Closes #1677

--------------------------------------------------------------------------------
768c70b9d4 | Edgar A. Bering IV | 2021-01-14 13:57:41 +0200

Fix a teleport closet
Closes #1681

--------------------------------------------------------------------------------
58ad9d9fa3 | wheals | 2021-01-14 10:22:07 +0200

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.

--------------------------------------------------------------------------------
caaa221d37 | advil | 2021-01-13 20:36:46 -0500

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.

--------------------------------------------------------------------------------
75406f0b48 | advil | 2021-01-13 14:10:38 -0500

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 ui.cc::clear_text_region 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.

--------------------------------------------------------------------------------
d04b7445b5 | advil | 2021-01-12 20:03:02 -0500

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.

--------------------------------------------------------------------------------
a51d4ba9de | Nicholas Feinberg | 2021-01-12 08:24:42 -0800

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
drops.

--------------------------------------------------------------------------------
9f9dfd16e9 | advil | 2021-01-11 17:25:53 -0500

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.

--------------------------------------------------------------------------------
ebd156f8b4 | Edgar A. Bering IV | 2021-01-11 00:00:49 +0200

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

--------------------------------------------------------------------------------
da163c7f71 | gammafunk | 2021-01-10 10:02:22 -0600

More insubstantial wisp removal
Remove descriptions and quotes in various languages.

--------------------------------------------------------------------------------
3544c24705 | advil | 2021-01-09 22:39:14 -0500

Update keybind.txt for 0.26 changes
...missed this.

--------------------------------------------------------------------------------
838eb4c31e | advil | 2021-01-09 18:35:37 -0500

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
treeform).

--------------------------------------------------------------------------------
58928b186a | Kate | 2021-01-09 22:41:30 +0000

Update monster disintegrate description

--------------------------------------------------------------------------------
f4412e357a | Kate | 2021-01-09 22:41:30 +0000

Fix grammar in miscast descriptions

--------------------------------------------------------------------------------
def486af7f | Nicholas Feinberg | 2021-01-09 12:37:37 -0800

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.

--------------------------------------------------------------------------------
4bfc8a49e1 | Edgar A. Bering IV | 2021-01-08 21:31:42 +0200

Add a trunk reminder for the 0.26 tournament

--------------------------------------------------------------------------------
3fd14906f5 | Edgar A. Bering IV | 2021-01-08 18:44:07 +0200

Final credit roll for 0.26

--------------------------------------------------------------------------------
fb268537a3 | gammafunk | 2021-01-08 10:06:50 -0600

Final changelog update for 0.26.0
Oops! Forgot to do this before tagging.

--------------------------------------------------------------------------------
e07e2c7cd4 | gammafunk | 2021-01-08 09:45:41 -0600

Update the Debian changelog for 0.26

--------------------------------------------------------------------------------
ee53873d45 | advil | 2021-01-08 10:38:27 -0500

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
ssh.

--------------------------------------------------------------------------------
2af701fde4 | Edgar A. Bering IV | 2021-01-08 11:51:34 +0200

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.

--------------------------------------------------------------------------------
21144fbd99 | Nicholas Feinberg | 2021-01-07 22:29:36 -0800

New Fenstrider Witch tile (canofworms)

--------------------------------------------------------------------------------
238fa4abc0 | Nicholas Feinberg | 2021-01-07 22:29:16 -0800

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

--------------------------------------------------------------------------------
fbafd837a3 | advil | 2021-01-07 21:14:45 -0500

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.

--------------------------------------------------------------------------------
0ec5f8ab93 | advil | 2021-01-07 16:59:46 -0500

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.

--------------------------------------------------------------------------------
216b6189a3 | advil | 2021-01-07 16:59:46 -0500

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.

--------------------------------------------------------------------------------
e4986e83c0 | advil | 2021-01-07 16:59:46 -0500

Missed hailstorm animations from 64bdb92e382d

--------------------------------------------------------------------------------
e8fdfcfcf6 | gammafunk | 2021-01-07 11:25:18 -0600

Remove references to Charms magic (split)
In the manual and in the aptitude list templates.

--------------------------------------------------------------------------------
64bdb92e38 | advil | 2021-01-06 17:21:00 -0500

Improve coverage of disabling beam animations (12356)
This gets lightning rod, tremorstones, glaciate, ignition, hailstorm,
and static discharge.

--------------------------------------------------------------------------------
054287de91 | advil | 2021-01-06 16:07:57 -0500

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.

--------------------------------------------------------------------------------
1c918b713c | advil | 2021-01-06 15:28:28 -0500

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.

--------------------------------------------------------------------------------
23abb52f8e | advil | 2021-01-06 14:02:04 -0500

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.

--------------------------------------------------------------------------------
72ac391492 | advil | 2021-01-06 09:47:53 -0500

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.

--------------------------------------------------------------------------------
8be3b22871 | Goratrix | 2021-01-06 09:40:03 -0500

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.

--------------------------------------------------------------------------------
54a7bdf380 | advil | 2021-01-06 09:38:56 -0500

Remove travis

--------------------------------------------------------------------------------
bd5e5ef833 | advil | 2021-01-06 09:35:25 -0500

Tweak autofire description in key help
... to make clear that untargeted actions are activated.

--------------------------------------------------------------------------------
34d46f0a3f | advil | 2021-01-05 14:27:49 -0500

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

--------------------------------------------------------------------------------
1ca9eea3f7 | advil | 2021-01-05 10:53:26 -0500

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.

--------------------------------------------------------------------------------
753e386513 | advil | 2021-01-05 10:28:05 -0500

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.

--------------------------------------------------------------------------------
d6d4955b76 | advil | 2021-01-05 10:23:04 -0500

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.

--------------------------------------------------------------------------------
021c985bc4 | advil | 2021-01-05 09:07:47 -0500

Remove some debug code

--------------------------------------------------------------------------------
bdec46a1ea | nikheizen | 2021-01-05 04:25:14 -0600

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.

--------------------------------------------------------------------------------
5f2be0e231 | advil | 2021-01-04 16:36:37 -0500

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.

--------------------------------------------------------------------------------
bd55b0887b | advil | 2021-01-04 16:26:48 -0500

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.

--------------------------------------------------------------------------------
1d1f4c8ba3 | advil | 2021-01-04 12:04:26 -0500

Add a note about sub-ordering for fire_order

--------------------------------------------------------------------------------
08524f53dc | advil | 2021-01-04 10:44:11 -0500

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

--------------------------------------------------------------------------------
6ed78dee3f | advil | 2021-01-04 10:36:28 -0500

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).

--------------------------------------------------------------------------------
405e3faaac | advil | 2021-01-04 10:21:34 -0500

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".

--------------------------------------------------------------------------------
c18c9092ac | advil | 2021-01-03 20:40:11 -0500

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
outdated?)

Resolves #1662

--------------------------------------------------------------------------------
7ddcfd5ad1 | advil | 2021-01-03 20:18:06 -0500

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

--------------------------------------------------------------------------------
443bf2d2ca | advil | 2021-01-03 15:58:42 -0500

Don't double !f warning for `F`
Resolves #1669

--------------------------------------------------------------------------------
353b9ea00c | advil | 2021-01-03 15:41:42 -0500

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.

--------------------------------------------------------------------------------
2edb794d0a | gammafunk | 2021-01-03 11:14:02 -0600

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
before,

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.

--------------------------------------------------------------------------------
2d0a2396b0 | advil | 2021-01-02 20:43:43 -0500

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.

--------------------------------------------------------------------------------
0579ed41f9 | advil | 2021-01-02 20:43:29 -0500

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.

--------------------------------------------------------------------------------
105bc0f7bc | advil | 2021-01-02 18:26:21 -0500

Revert "Improve tremorstone + summons warning checks (12409)"
This reverts commit 91735a3152ac1321536d30bc7ca0037caf38fc6b.

--------------------------------------------------------------------------------
91735a3152 | advil | 2021-01-02 18:19:29 -0500

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.

--------------------------------------------------------------------------------
087482e4d5 | Edgar A. Bering IV | 2021-01-02 16:26:37 +0200

Don't perform a range check for Noxious Bog

--------------------------------------------------------------------------------
086eb55de8 | Edgar A. Bering IV | 2021-01-02 15:57:39 +0200

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.

--------------------------------------------------------------------------------
63decd6869 | Edgar A. Bering IV | 2021-01-02 15:15:31 +0200

Clarify a prompt message

--------------------------------------------------------------------------------
c91146610e | Edgar A. Bering IV | 2021-01-02 15:15:07 +0200

Describe dazzle chance in the Dazzling Flash targeter

--------------------------------------------------------------------------------
7e5a9cbe55 | Edgar A. Bering IV | 2021-01-02 14:59:06 +0200

Add a static targeter for ignite poison

--------------------------------------------------------------------------------
c93d6a9b7e | Edgar A. Bering IV | 2021-01-02 13:44:33 +0200

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.

--------------------------------------------------------------------------------
3d81cda750 | Edgar A. Bering IV | 2021-01-02 11:05:32 +0200

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.

--------------------------------------------------------------------------------
0242afd26b | Edgar A. Bering IV | 2021-01-02 11:05:31 +0200

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.

--------------------------------------------------------------------------------
cc8eda8a42 | Edgar A. Bering IV | 2021-01-02 11:05:31 +0200

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.

--------------------------------------------------------------------------------
1589ab1335 | Edgar A. Bering IV | 2021-01-02 11:05:31 +0200

Fix a targeting information leak in Absolute Zero (12415)

--------------------------------------------------------------------------------
464169c878 | Edgar A. Bering IV | 2021-01-02 11:05:31 +0200

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.

--------------------------------------------------------------------------------
0db6f627e1 | Edgar A. Bering IV | 2021-01-02 11:05:31 +0200

Rename a function for clarity
desc_success_chance -> desc_wl_success_chance

--------------------------------------------------------------------------------
87abb2d9eb | Neil Moore | 2021-01-02 00:10:24 -0500

Add a quote (that will rarely be seen)
Same as it ever was.

[skip ci]

--------------------------------------------------------------------------------
5dcdf963e0 | Nicholas Feinberg | 2021-01-01 14:52:07 -0800

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.

--------------------------------------------------------------------------------
c4307f12cd | advil | 2021-01-01 16:17:45 -0500

Fix `F`+pproj logic (10804)
This was inverted, and I think it also shouldn't ever set MB_TRUE for
this code path.

--------------------------------------------------------------------------------
fb19f2a25f | advil | 2021-01-01 16:02:23 -0500

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 l-crawl.cc.

--------------------------------------------------------------------------------
92626205c4 | advil | 2021-01-01 15:55:01 -0500

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.

--------------------------------------------------------------------------------
18013ae1f5 | Nicholas Feinberg | 2021-01-01 11:27:32 -0800

Remove unused variable (Mesh)

--------------------------------------------------------------------------------
2922b9e743 | Nicholas Feinberg | 2021-01-01 09:50:02 -0800

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...

--------------------------------------------------------------------------------
e5df516c99 | Nicholas Feinberg | 2021-01-01 09:42:40 -0800

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.

--------------------------------------------------------------------------------
f342683475 | Nicholas Feinberg | 2021-01-01 09:03:58 -0800

Rename a mysterious 15-year-old variable

--------------------------------------------------------------------------------
d0772dbefd | Nicholas Feinberg | 2021-01-01 08:58:02 -0800

Remove an unused parameter

--------------------------------------------------------------------------------
cf006a40f5 | Nicholas Feinberg | 2020-12-31 10:17:33 -0800

Don't make Hurl Sludge also cast Blinkbolt (vt)
Why are C-style switch/case statements so bad.

--------------------------------------------------------------------------------
135aecce3f | gammafunk | 2020-12-31 11:36:06 -0600

Have Vehumet support Eringya's Toxic Bog (Lici)
A direct damage spell, just not one using conjurations, so add it to the
special list.

--------------------------------------------------------------------------------
6edc4d6507 | Alan Malloy | 2020-12-31 03:56:09 -0800

Record origin of clouds that petrify the player (Tungsten)

--------------------------------------------------------------------------------
b6e4b569e3 | wheals | 2020-12-31 12:44:09 +0200

Remove an unused spellbook

--------------------------------------------------------------------------------
930a39183f | Edgar A. Bering IV | 2020-12-31 12:10:59 +0200

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
  will-o-the-wisps,
- 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
  removed.

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

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

--------------------------------------------------------------------------------
14533b3512 | Edgar A. Bering IV | 2020-12-30 20:34:31 +0200

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.

--------------------------------------------------------------------------------
7079f50010 | Goratrix | 2020-12-30 20:10:21 +0200

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.

--------------------------------------------------------------------------------
56d4af09c2 | wheals | 2020-12-30 20:06:53 +0200

Fix the build
With the rename, the flavor connection to the vault is more tenuous than
ever, but I'll allow it.

--------------------------------------------------------------------------------
d7b2425749 | Nicholas Feinberg | 2020-12-30 09:54:36 -0800

Remove Robustness (;

--------------------------------------------------------------------------------
adef21051d | Edgar A. Bering IV | 2020-12-30 19:44:13 +0200

Rename two unrand rings (CanOfWorms, hellmonk, PleasingFungus)
Robustness -> the Tortoise
Phasing    -> the Hare

1. Robustness has the same name as the mutation, but a completely different
   effect.
2. Tortoise / Hare pairing is good Lore that links the two rings.
3. I got to the bikeshed with the paint colour I like before PF did
   (alternate suggestion was Robustness -> Invincibility).

--------------------------------------------------------------------------------
05fc5f520a | Nicholas Feinberg | 2020-12-30 09:05:55 -0800

Fix gargoyle statue form LRD damage
See 25521206441 for reasoning.

--------------------------------------------------------------------------------
f2e91f3db1 | Nicholas Feinberg | 2020-12-30 08:55:48 -0800

Warn before entering a bezotted branch
To help players notice when they're short on time?

--------------------------------------------------------------------------------
35eea5b30a | Nicholas Feinberg | 2020-12-30 08:44:34 -0800

Refactor stair warnings

--------------------------------------------------------------------------------
220361c043 | Goratrix | 2020-12-30 10:24:53 +0200

Small update in options guide
Eringya's Noxious Bog has a default force_targeter now,
so update options guide accordingly. Also fix two stray rows
which were longer than 80 characters.

--------------------------------------------------------------------------------
d52f5182fe | Nicholas Feinberg | 2020-12-29 08:24:35 -0800

Rename art-data MAGIC->WILL
MAGIC was always an extremely confusing property name.

--------------------------------------------------------------------------------
0de2e1c0f6 | gammafunk | 2020-12-29 06:58:43 -0600

Fix a changelog entry (ebering)

--------------------------------------------------------------------------------
66cac9c236 | gammafunk | 2020-12-29 06:14:40 -0600

Update the changelog
Through 0.26-a0-1210-gada54dbd18.

--------------------------------------------------------------------------------
ada54dbd18 | gammafunk | 2020-12-29 06:06:41 -0600

Restore the Glaive of the Guard's enchantment (curatorofearth)
Make it +8 again, since its spectral weapon ego is good, but not good
enough to also have bad enchantment. This was an apparently
unintentional change made when ebering was testing a version with
multiple spectral weapons (!!).

--------------------------------------------------------------------------------
49d2223b27 | gammafunk | 2020-12-29 05:11:49 -0600

Tweak boulder beetle rolling AI
Boulder beetles currently continue rolling even if they don't have a
viable move, which leads to them rolling in-place behind monsters or
damaging clouds. This does confer a benefit to the monster should a
viable path open up before the roll enchantment expires, but is counter
to the player expectation that rolling implies to movement. This commit
has boulder beetles stop rolling if they have no viable move, and
likewise prevents them from attempting to roll if there is no viable
move. Although this is a slight nerf to boulder beetles, they're quite
worthy foes already.

This implementation uses the monster tracking info use by thorn hunters,
specifically tracking what our next viable move is. It would be ideal to
have better fidelity about this move information, since it doesn't
necessarily contain the move a monster would end up choosing. A later
codepath ends up trying a backup move location if current choice proves
unviable, but we don't have access to this data.

--------------------------------------------------------------------------------
978f32097b | wheals | 2020-12-29 13:03:34 +0200

Clarify AF_CONFUSE's confusing flavour
AF_CONFUSE, when combined with AT_SPORE, represents a cloud of confusing
spores that cause confusion when breathed in. Otherwise, it is simply a
magical effect that causes confusion.

Fixes #1385

--------------------------------------------------------------------------------
dd5fdbaec6 | wheals | 2020-12-29 12:58:38 +0200

Remove a confusingly redundant function.

--------------------------------------------------------------------------------
814068fe0c | wheals | 2020-12-29 12:27:21 +0200

Add some periods.

--------------------------------------------------------------------------------
4083c211ab | advil | 2020-12-28 14:38:29 -0500

Mark an ossuary entrance as transparent
Resolves #1639

--------------------------------------------------------------------------------
6fff606423 | advil | 2020-12-28 14:13:37 -0500

Transparency fixes for a kennysheep vault (12426)
It lacks an @, so when marked as opaque could generate with the single
door not connected.

--------------------------------------------------------------------------------
3ff7017067 | paul | 2020-12-28 20:27:40 +0200

Add a flashy Wu Jian overflow altar vault
This vault is a nod to a classic 70's Kung Fu flick called Five Deadly Venoms.
The titular characters of the movie have nicknames and martial arts
styles that are reasonably well-represented by existing monsters and
tiles in DCSS and thought Wu Jian deserves a fancy Lua'd up altar like
some other deities!

[ Committer's note: Closes #1660. Set overflow depth appropriately. ]

--------------------------------------------------------------------------------
4dcb31f9f6 | advil | 2020-12-28 13:12:40 -0500

Re-conditionalize quiver redraw (wheals)
I'm not sure why this `if` got removed, but it might have just been an
accident during testing.

--------------------------------------------------------------------------------
b0746d5dc1 | advil | 2020-12-28 13:01:16 -0500

Fix macro menu handling of unprintable keycodes
This is an attempt at some minimal fixes for this menu; anything more
ambitious will need to happen not during a feature freeze. Keycode
munging under the hood is a complete mess; this commit tries to work
around what's there with only minimal changes, rather than rewriting
everything. Main changes:

* Print readable names of many unprintable keycodes as menu hotkeys and
  in macro editing.
* Fix an issue where some ancient numpad handling code would interfere
  with ncurses handling of F1-F4. This has been wrong for a very long
  time and was hard to address without knock-on effects; for now
  webtiles still uses the wrong keycodes (which mistakenly got reified
  in key-conversion.js) and they are translated internally. There's also
  fixup code which translates wrong keycodes in a macro file into the
  correct ones.
* Add a macro editing mode where you can enter a keycode by number, as a
  last resort for console keycode editing. (This menu should be changed
  to let arrow keys select an item as a better alternative to this.)
  This is triggered by hitting \ at the entry prompt (so to set a macro
  for `\` you now need to do this at the menu or by keycode).
* More consistently print keycodes along with whatever printable symbol
  there might be for a keycode.
* Add a bunch of comments documenting weirdnesses in this underlying
  code.

Some remaining flaws: no handling for alt in SDL. Keycodes for many keys
are inconsistent across build targets and should possibly be normalized.
For weird keycodes, SDL sometimes prints surprising character names. The
windows code here is a shot in the dark (but I will test before
release). The macro menu followup UI is now even more complicated.

--------------------------------------------------------------------------------
da768c6ff3 | amcnicky | 2020-12-28 19:50:47 +0200

New mini vaults
Vaults in this collection:

amcnicky_mini_pool_small
A decorative minivault containing a small randomised pool

amcnicky_mini_rare_corridor_liquid
A rare vault which allows the dungeon generator to, on occasion, produce
a corridor surrounded on either side by liquid, perhaps to be read as
either a bridge over liquid below, or as a passageway between the
liquid's depths.

amcnicky_mini_corridor_feature
A decorative minivault containing a feature lined corridor

amcnicky_mini_pool_medium
A slightly larger version of pool_small that can generate monsters, and
also appear ruined when generated within Depths.

[ Committer's note: Closes #1544. Tweaked and trimmed, dropped the beach
  vault submitted with this patch, adjusted depths and weights. ]

--------------------------------------------------------------------------------
2f95e4c8fc | amcnicky | 2020-12-28 19:50:47 +0200

New simple and small arrival vaults
Vaults in this collection:

amcnicky_arrival_double_pillar
A medium sized arrival vault featuring two highly randomised pillars and
a selection of entrance/exit possibilities

amcnicky_arrival_single_pillar
As above, but on a smaller scale

amcnicky_arrival_feature_with_door
A double-entrance arrival vault with the potential for many different
hints of flavour in the feature tile

amcnicky_arrival_flooded_fountain
The player enters the dungeon through an entry room containing a number
of fountains. The downstairs of an abandonned bath house? A door in the
back of an ancient fountain temple? One of the fountains is broken, and
the player sees a corresponding pool of water

amcnicky_arrival_choice
A vault intended to off the chance for an interesting tactical choice.
Should the player be chased back into this room by an early enemy, there
are no pillars to dance around. Instead, the player must either stand
and fight, or take a risk with the shaft to escape.

amcnicky_arrival_underground_garden
A more decorative vault, the player enters the dungeon by passing
through an underground garden. Was the dungeon entrance hidden within a
forbidden forest?

amcnicky_arrival_blooded_trapdoor
The player is presented with a randomised pillar, two possible
connections to the dungeon, and large smears of blood surrounding a
solitary trapdoor. What became of the last player who tried to use that
trapdoor?

amcnicky_gap_in_the_tavern_cellar
The player enters the dungeon via a secret room behind one of the water
features in an unspecified room. The vault tiles make this connection
through to the dungeon of zot appear almost intentional?

amcnicky_arrival_wind_blow
Which entrance to choose to the great dungeon of Zot? Which way does the
wind blow?

amcnicky_arrival_abandoned_market
The player enters the dungeon of zot through a mysterious back alleyway
amongst an abandonned marketplace.

[ Committer's note: Closes #1542. Small tweaks to shrink some sizes,
  get the "story" of the vault in view on spawn, tactical checks,
  redundant doors. ]

--------------------------------------------------------------------------------
58195e7017 | amcnicky | 2020-12-28 19:50:47 +0200

Two new altar vaults
The vaults added are as follows:

amcnicky_altar_gilded
A simple altar layout with (the potential for) a nice monetary surprise.

amcnicky_altar_lugonu_corruption
Lugonu has entered the dungeon! This vault iterates on the initial
submission idea of 'dungeon corruption' which could generate in many
branches and represents the fist of Lugonu smashing into the terrain.
Current monster spawns use Lurking Horrors to bring their fairly novel
tactical implications beyond just the abyss.

[ Committer's note: Closes #1538. inner_sanctum not taken as altar
  vaults are meant to place altars. It might be ok as a float/mini
  monsters type vault since the altar is more decorative. Tweaked
  lugonu_corruption to tone down the number of lurking horrors, have
  more variability in its 'corruption', and be approachable and
  connected from all sides. ]

--------------------------------------------------------------------------------
d68fa41eda | wheals | 2020-12-28 13:14:11 +0200

Defer redrawing the wield display if travel_delay = -1 (#1626)
Rather than cancelling the redraws entirely. Does the same thing with
the other displays as well, in case similar bugs happen in the future.

Fixes #1626

--------------------------------------------------------------------------------
d8756d56bc | Aliscans | 2020-12-28 13:04:26 +0200

Forbid DEBUG_TRAVEL without DEBUG_DIAGNOSTICS
Put a "#ifdef DEBUG_DIAGNOSTICS" statement around the #define for
DEBUG_TRAVEL, as this only does anything useful when DEBUG_DIAGNOSTICS
is set.

[ Committer's note: Split up code-review revisions and squashed them
  into the relevant commits. Made a few small tweaks also.
  Closes #1608 ]

--------------------------------------------------------------------------------
fec9e0e4c5 | Aliscans | 2020-12-28 13:04:26 +0200

Don't set greedy_place for items in hostile areas
As things stood, if autopickup was off and there was an unexplored space
behind a runed door, _explore_find_target_square() called pathfind()
once to no avail, called it a second time with try_fallback set, and
made that the target.

If autopickup was on, it called pathfind() once, cleared it (because it
had a negative travel_point_distance[] value), and printed a "Partly
explored" message.

This patch prevents greedy_place from being set if
travel_point_distance[x][y] is negative, so the square containing the
item can become the target.

--------------------------------------------------------------------------------
e99fe26798 | Aliscans | 2020-12-28 13:04:26 +0200

Expand the behavior of travel_open_doors
Add a value for the travel_open_doors option which means that
autoexplore & travel plan routes which don't go through closed doors
where possible (in the same way it always does for runed doors).

The "actually stop travelling" code has moved from movement.cc to
travel.cc.

travel-open-doors-type.h lists the values, with "true" and "false"
mapped to more descriptive words for the previous behaavior.

A new template MultipleChoiceGameOption is implemented to support this
behavior, old multiple choice options should consider being ported to
it.

--------------------------------------------------------------------------------
8d272cd76c | wheals | 2020-12-28 12:20:23 +0200

Fix a stray text cursor showing up on local tiles
The root cause of most of these problems is using the same construct
both for text prompts and for highlighting squares on the map. Untangling
the uses, however, is not simple.

--------------------------------------------------------------------------------
224bf8e84e | wheals | 2020-12-28 12:20:23 +0200

Unify the two cursors on local tiles X somewhat.
Clicking on a place on the map will move the map cursor to there.
Clicking on the map cursor will travel to there. It would be nice to
unify them entirely, but the problem is that X automatically centers the
map around the map cursor, so moving the mouse will shake around the
view erratically.

--------------------------------------------------------------------------------
e2a0e31ab3 | Nicholas Feinberg | 2020-12-27 16:51:13 -0800

Show LRD damage

--------------------------------------------------------------------------------
d4ea5fece3 | Nicholas Feinberg | 2020-12-27 16:42:15 -0800

Hackily fix Zot status description (vt)
Don't claim Zot is about to consume you when it's 15k turns away.

--------------------------------------------------------------------------------
2022570bc9 | nikheizen | 2020-12-27 18:05:51 -0600

Slightly increase density of winding_woodlands
Increase the density of 5x5 rooms from averaging slightly less
than one 0 per room, to 1.5.

Increase the density of 5x15 rooms from averaging two 0 per room
to three.

winding_woodlands vaults would often spawn with very few monsters
in the connector rooms, and most of the threat would be spilling out
from the center subvaults. This makes them a little denser, while still
allowing the possibility of empty connector rooms occasionally.

--------------------------------------------------------------------------------
d90998e373 | nikheizen | 2020-12-27 18:05:51 -0600

Fix a couple subvault errors
The 5x15_jagged subvault was 5x14, and thus could create some vaults
where part of the vault was only accessible by stairs, if the whole
vault wouldn't be vetoed.

The 15x15_boxy_spiral subvault had one of its exits misaligned by 1,
causing it to have buggy placement occasionally.

--------------------------------------------------------------------------------
c6dd0926df | gammafunk | 2020-12-27 16:53:23 -0600

Reimagine Eringya's Noxious Bog (hellmonk,ebering)
The combined damage and movement/combat debuff of the bog is
interesting, but the spell's current approach of applying it in the
caster's wake makes the spell ineffective and somewhat difficult to use.
The additional turns spent moving to set up the effect incurs another
cost for a spell that's already damage over time. Obviously we could
increase the strength of the effect, but an alternative was proposed by
hellmonk: have the spell affect many cells, but only those not adjacent
to solid features. Being next to a lot of walls is generally helpful for
the player, so this requirement adds a different kind of cost, which is
that the player has to be near comparatively open areas. This is
positional, giving the spell a natural power scaling based on how open
the player's position is, and doesn't require kiting-like movement.

This commit changes the spell to transform all areas into bog that are
within a range of 4 and not adjacent to solid features, also excluding
the player's position. The transformation happens instantly and reverts
when the duration expires, with recasting not allowed until then. The
requirement that the feature have a solid floor remains (e.g. no deep
water or lava, but shallow water is fine). Additionally, only cells
visible via not-translocation-blocking LOS can be transformed, and
likewise we require that any transformed cell have all its adjacent
cells be visible. The second requirement is to prevent an information
leak by either using the targeter or casting the spell, either of which
would be a tedious exploit.

The duration is unchanged from before, as it seems reasonable for a
damage-over-time spell like this, but both this and the range of effect
of four will be reevaluated after more play-testing. If we want to
incorporate spell-power more, we one possible change is to increase the
range with spell-power, starting from a lower range at low power. We
have to strike a balance between the high level of the spell and its
need to be sufficiently strong and the fact that it can affect so many
more cells as we increase the range.

The spell has a static targeter showing potentially affected cells. I've
updated the casting noise from 2 to 6, which I assume was unintentional,
since we generally always have this noise value be the spell level. The
spell description is also updated. I've moved the spell from
spl-selfench.cc to spl-damage.cc, since this spell is really a damage
spell at its core, is similar to spells like Frozen Ramparts or Summon
Forest that not in spl-selfench.cc.

--------------------------------------------------------------------------------
055914a7a2 | wheals | 2020-12-27 21:16:43 +0200

Make X on local tiles slightly more useful
Make the cursor automatically move around with your mouse. Also, show
descriptions of features that are outside LOS_RADIUS but in your map
knowledge.

--------------------------------------------------------------------------------
98a0ced166 | wheals | 2020-12-27 21:16:43 +0200

Restore the cursor on offline windows tiles targeting (#12424)

--------------------------------------------------------------------------------
95e395e029 | Nicholas Feinberg | 2020-12-26 07:59:20 -0800

Don't blink after death (nee)
God bless Felids.

--------------------------------------------------------------------------------
447262cd64 | gammafunk | 2020-12-26 09:33:48 -0600

Fix a typo (Renan)

--------------------------------------------------------------------------------
197f7f9d65 | Neil Moore | 2020-12-26 09:15:08 -0500

Fix no longer fix grammar (realallion)

--------------------------------------------------------------------------------
d376ed14c5 | advil | 2020-12-24 16:26:56 -0500

Add a bit more control to fire_order
This is a bit of a filler commit; I think fire_order needs to be
restructured in a more general way, but for now at least provide some
coarse control over the order of action types when cycling the quiver.
This commit also lets players remove an entire type from the cycle order
(which has been particularly requested for abilities).

Because game start autoquivering uses `cycle()`, this commit also
affects that, so for the people who find it objectionable that Berserk
autoquivers on a Be start, this gives them a way to prevent that.

Eventually I think this would be *much* better as an in-game interface
along the lines of spellbook hide/show.

--------------------------------------------------------------------------------
510840ca0f | Nicholas Feinberg | 2020-12-24 10:02:05 -0800

Make Irradiate check AC and bump damage
Not checking AC was an oversight in the initial implementation that
slowly transmuted into a feature. Well, let's transmute it back.

I've made the damage a bit higher to compensate. Per a suggestion from
hellmonk, I've also reduced the number of dice that are rolled, which
reduces the predictability of the spell a bit.

--------------------------------------------------------------------------------
5ef3bed4d9 | advil | 2020-12-24 12:45:34 -0500

Add an action inventory selector for Q*
Now, only the the non-tossing actions are shown on Q*, with an extra *
to toggle the full inventory.

This commit also:
* handles a bunch of corner cases with few or no actions better,
  especially for felids
* adds % as a secondary shortcut for items. This is because macroing Q*
  can lead to weird cases when there are no quiverable items, because *
  doubles ctrl; in the worst case if you macro Q to Q* and press QQ you
  get a quit prompt.

--------------------------------------------------------------------------------
ab5e8f747a | advil | 2020-12-24 11:29:29 -0500

More eating remove

--------------------------------------------------------------------------------
1209ec82b9 | nikheizen | 2020-12-24 00:31:24 -0600

Don't guarantee nzn_prometheus_bound
The map was a PLACE: instead of a DEPTH:, fix this, and
move the vault to shoals.des, since it only appears there
anyhow.

--------------------------------------------------------------------------------
060ceda6a5 | wheals | 2020-12-23 17:49:54 +0200

Unify movement checks for barbs/ice spells
Incidentally fixes #1647 by putting them in the same code path as checks
for traps/dangerous terrain/etc.

--------------------------------------------------------------------------------
ad6db7abb9 | wheals | 2020-12-23 16:59:29 +0200

Give centaur enemies their bardings back (#12420)
Now that barding is adaptable enough for two species, why not three?

--------------------------------------------------------------------------------
32fcee6e61 | wheals | 2020-12-23 16:53:53 +0200

Fix Zin wrath
Accidentally broken when the hunger effect was removed.

The situation remains where you get slightly less bad wrath by having
only bad mutations. This seems like its own punishment.

Fixes #1643

--------------------------------------------------------------------------------
09726b21b3 | wheals | 2020-12-23 16:39:38 +0200

Show correct cast messages when a spell is redirected against the caster
The second clause didn't seem to be doing anything, and I tested a bunch
of different monsters and didn't notice issues. Still, it's worth
keeping an eye out to make sure this doesn't cause other monspeak
issues.

Fixes #1652

--------------------------------------------------------------------------------
792193eb12 | wheals | 2020-12-23 16:11:11 +0200

Grammatrise a Frozen Ramparts message
Fixes #1635

--------------------------------------------------------------------------------
895fbd4b88 | Nikolai Lavsky | 2020-12-23 16:07:02 +0200

Display threat levels on the /polymorph targeter
As a followup to 6ee96136, this commit colourizes the names of monsters
on the /polymorph targeter to show their potential threat level.
This gives the player a quick way to see if polymorphing a monster is a
good idea.

--------------------------------------------------------------------------------
ae853a1889 | wheals | 2020-12-23 15:46:08 +0200

Even more food removal (#1654)
Featuring bonus rod removal and carrying corpses removal!

Fixes #1654

--------------------------------------------------------------------------------
311257cc98 | wheals | 2020-12-23 15:39:20 +0200

Checkwhite

--------------------------------------------------------------------------------
1cd98bb67f | wheals | 2020-12-23 15:39:20 +0200

Put the cursor back in the X menu on Windows (#1536)
See the comments on the PR. As aidanh mentions, cursor_control is a
blunt force instrument that needs to be manually turned on and off here,
but my naive attempts to enable the cursor only when the map cursor is
being drawn didn't work -- it seems that it gets redrawn at odd moments,
and that ends up wiping the cursor away.

I didn't bother to make use_fake_cursor work here, because it already
was broken for the direction chooser anyway. If we ever hear about
someone using it on Windows, we can fix it, but it seems like it only
fixes a Unix-specific problem.

I'd wait for a more thorough fix, but this is a game-breaking bug on
Windows console and we have a release coming up.

Fixes #1536

This also incidentally fixes a related problem where the cursor appeared
when opening up sub-menus from the direction chooser.

--------------------------------------------------------------------------------
f5cede1358 | wheals | 2020-12-23 15:39:20 +0200

Fix a warning when compiling for Windows

--------------------------------------------------------------------------------
b26aebe080 | Nikolai Lavsky | 2020-12-23 14:05:50 +0200

Update Drain status description
After 4cbea82f, Drain temporarily reduces max HP instead of skills.

--------------------------------------------------------------------------------
d3bf34ba6f | Quipyowert2 | 2020-12-23 11:00:08 +0200

Pass some parameters by reference
According to Cppcheck, this is "usually faster" than passing by value
and "recommended in C++."

--------------------------------------------------------------------------------
1a551d6a14 | advil | 2020-12-22 19:05:21 -0500

lint

--------------------------------------------------------------------------------
bed68805ea | advil | 2020-12-22 18:45:59 -0500

Refactor quiver redraw state
This fixes some bugs where the launcher quiver wasn't getting properly
redrawn, but also provides some abstraction over the raw booleans stored
on `you`.

--------------------------------------------------------------------------------
4a6b093f05 | advil | 2020-12-22 18:45:59 -0500

Add a basic menu to macro/keybind editing
Especially for online play, it's extremely annoying that there's no way
to view current macro/keymap mappings without going key by key. This
commit solves that by putting a real submenu behind the `~` options,
letting you see all current macros/keybinds (of the same type) at once.
It also does some light refactoring of how some of the options are
chosen, and will involve an extra keypress for new macros (or more for
keys that are used in the menu ui).  This menu is very much at the
minimal viable ui state: I didn't widgetify anything except the
key/macro selection part, and there's a *lot* more one could do with
this to give it a real ui. However, for now it's a net improvement.

--------------------------------------------------------------------------------
0398aca569 | gammafunk | 2020-12-22 11:23:57 -0600

Some fixes and cleanups for winding_woodlands
Fix the glyphing for nzn_winding_woodlands_large and
nzn_winding_woodlands_stair_trap, which had some incorrect subvault
glyphs that would never let the maps successfully place.

Empty the default-depth before the subvaults are defined so they won't
inherit the prior default depth used by the parent vaults. Parent vaults
that tried to place in Swamp weren't able to find viable subvaults,
since the default depth doesn't include the Swamp branch. Having an
empty depth will allow the subvaults to place anywhere the parent map
requires, and the parent map will still be subject to the restrictions
of the previous default depth at the beginning of the file.

Finally, clean up some NSUBST and SUBST syntax. Closes #1610.

--------------------------------------------------------------------------------
0da4609bc0 | gammafunk | 2020-12-22 11:22:51 -0600

Some minivault adjustments
For nzn_sisyphean_effort and nzn_prometheus_bound, have the placed
corpse on a delayed decay instead of never decaying. For the Prometheus
vault, place a Book of Fire instead of a Book of Flames, since the
former is a more appropriate reward in Shoals and just as thematically
appropriate.

For nzn_life_drinkers, simply clean up some SUBST. This vault could
place as an overflow altar with low weight for D:8-9. In Vaults, ideally
it would be tagged as a vaults room so that it could place successfully
more often. It works fine as a standalone altar vault altar and can
successfully place in Vaults per wizmode tests, so I can save both
potential changes for some time before the 0.26 release.

--------------------------------------------------------------------------------
7ffe4a26f1 | gammafunk | 2020-12-22 11:18:06 -0600

Some adjustments to new overflow altars
For nzn_hepliaklqana_mist_gate and nzn_wu_jian_contemplation some minor
simplifications and spacing cleanups.

For nzn_makhleb_speed_demon, replace the executioner with a sixfirhy,
since an executioner is basically worse than any possible 8 spawn for
D:7-D:11. A sixfirhy is quite fast and dangerous for these same depths,
but not so much that no character would reasonably open the vault to get
to the Makhleb altar.

For nzn_overflow_gifts_of_might_and_magic, revamp the Trog-themed weapon
to add enchant at the earliest depth and have Trog-themed brands (so
vorpal, flaming, or antimagic) but no enchant at subsequent depths. This
way the Trog item offering isn't so meagre compared to the Sif item,
which gifts a small number of low-level spells.

--------------------------------------------------------------------------------
03f78f3749 | gammafunk | 2020-12-22 11:18:06 -0600

Some changes to the new Swamp end vault
For nzn_swamp_witches_coven, add deep elf mages to the "wizard" set and
reduce the weighting for spriggan druids, giving their previously double
weight to the mages and to the wizards that previously had half weight.
Druids have a somewhat harder time in this vault since there are so few
trees, so it's best to not place so many of them.

For the inner areas that randomly get shallow water, land, or monsters,
increase the amount of land by 50% and decrease the amount of water.
This vault previously placed an awful lot of water without very much
land. Some tests with the new weight shows that there is still mostly
water with relatively few tiles safe from trees, but it's not going to
be quite so hard to find an area to fight inside the vault. Otherwise
the incentive is to clear nearly all of the vault from outside.

Also, make the inner pentagram walls use special dark stone wall tiles
that more strongly suggest a demonic theme, using magenta for these
walls in console. This is purely a cosmetic change with no affect on
gameplay. Finally, make the central granite statue always use a
demonic-themed tile.

--------------------------------------------------------------------------------
0369a3af90 | gammafunk | 2020-12-22 11:18:06 -0600

Some Swamp vault fixes and cleanups
Make vault statements in a number of vaults have aligned spacing, and
remove no_item_gen where not necessary. Although placing additional
level monsters in a vault can make it harder and dilute its theme in
some cases, no_item_gen doesn't generally affect these aspects. It's
better to allow level item generation to be natural when possible and
have fewer spoilers.

For nzn_swamp_weyward_sisters, expand its placement from Swamp:3- to
Swamp:2 and give it normal weight. Although a few fenstrider witches is
scary, these monsters place with decent weight from Swamp:1 as it is.
Put the peaceful human behind a runed door, since otherwise it will open
the door and probably die while attacking one of the witches. Make the
placed corpses and skeletons all have a delayed decay like we usually do
for these vault corpses. Finally make some slight syntax cleanups.

For nzn_swamp_blast_mining, reglyph to use no predefined glyphs and
simplify the monster placement logic. The previous logic was more
complicated didn't quite agree with the stated averages in the comments.
Use two NSUBST to simplify the logic instead of a SHUFFLE and two SUBST.

For nzn_swamp_dancing_lights, remove the down-weighting, as this is not
a particularly nasty vault, and simplify syntax.

--------------------------------------------------------------------------------
52eb5f666a | gammafunk | 2020-12-22 11:17:59 -0600

Some cleanups to a ghost vault
For nzn_ghosts_randoct, rename it to nzn_ghost_randoct for consistency
with our other vaults and reglyph it to not use any predefined glyphs.
Simplify some shuffles into substs, then combine related statements into
one line.

--------------------------------------------------------------------------------
645eec8e50 | nikheizen | 2020-12-22 11:09:47 -0600

Add one (1) ghost vault
Per request of gammafunk, a nasty ghost/transporter vault which becomes
nastier and deeper depending on branch/depth.

--------------------------------------------------------------------------------
23317d3c2e | nikheizen | 2020-12-22 11:09:47 -0600

Adjust the weight of a couple nzn vaults
speed_demon should be vanishingly rare since most folks won't be opening
it.

the swamp exclusive winding_woodlands center vault has been made
twice as likely to accomodate for how rarely a valid vault for it
to be selected in will even place.

--------------------------------------------------------------------------------
11aabd67dd | nikheizen | 2020-12-22 11:09:47 -0600

Add 4 swamp vaults and one new swamp endvault
weyward_sisters: A trio of witches. One captures the men, one cooks
them, and one gives their bones so that the mushrooms may grow.
stair_ambush: Does what it says on the tin.
blast_mining: Bloated husks have some practical applications.
dancing_lights: A trio of will-o-the-wisps with accompanying fog
machines for that spooky swamp feeling.

All of these aside stair_ambush are weighted 5 either because they
are gimmicky (blast_mining) or are quite deadly.

witches_coven: A standard coven (or baker's dozen) of witches,
congregating around the decaying rune and summoning demons in an
inverted pentagram-shaped facility.

--------------------------------------------------------------------------------
3f1a12a7b5 | nikheizen | 2020-12-22 11:09:47 -0600

Winding Woodlands: forest-themed subvault maps
Winding Woodlands are a set of maps which heavily utilize
subvaults and have a woodland/forest theme (when the subvaults
aren't simple geometric shapes).

As of this commit there are 8 maps with 41 subvaults for said
maps to draw from.

--------------------------------------------------------------------------------
5f9ebbf6ab | nikheizen | 2020-12-22 11:09:47 -0600

Add two vaults based off of Greek Myth (Silurio)
The two myths referenced are Prometheus Bound and Sisyphus.
Even if the intention of the flavour misses, these still have
enough "anonymous" flavour to be somewhat interesting.

--------------------------------------------------------------------------------
d5a4c4202e | nikheizen | 2020-12-22 11:09:47 -0600

Add 7 altar vaults
- hepliaklqana_mist_gate: simple thematic hep vault where the player
must peer into the past
- makhleb_speed_demon: only the quickest warriors deserve makhleb's
favour. bit of a meta reference to speedrunning the game. idea stolen
from hellmonk
- wu_jian_council_hall: simple wjc vault where the likeness of the council
members look down upon their altar
- wu_jian_contemplation: an idyllic shrine whose maintainer is now absent
- overflow_gifts_of_might_and_magic: dual trog/sif overflow lightly themed
on their shared attribute of gifting
- overflow_masters_of_martial_movement: dual WJC/uskayaw mini. prove
your worthiness by dancing around this boulder beetle
- life_drinkers: vampiric philosophers have long pondered on makhleb and
the shining ones penchant for healing devout worshippers when they kill

--------------------------------------------------------------------------------
1e22815bdb | gammafunk | 2020-12-22 11:09:47 -0600

Make a lua vault function more widely available
Move random_item_def() to dungeon.lua, so it can be used by vaults other
than ghost vaults. A subsequent commit will use this function for an
overflow altar vault.

--------------------------------------------------------------------------------
660b328956 | gammafunk | 2020-12-22 11:09:37 -0600

Don't let Gauntlet room monsters pickup loot (Yermak)
Now that all monsters generate awake in Gauntlet, certain intelligent
monsters might pick up the loot they find before the player first sees
it. This was also possible before they generated awake, for example if
noise from combat woke up monsters in other rooms, but now it's
especially common. In any case, it was always intentional that players
would get full information about the loot in rooms for decision-making
purposes and that they'd get access to those rewards without e.g.
monsters using consumables.

This commit marks all room loot as no_pickup. The minotaur's loot pile
does not have this tag, so this monster still has its access to some
choice gear.

It would be ideal if no_pickup could be set vault-wide for items and
possibly also using KMASK. For now, I've modified all item statement to
programmatically add "no_pickup" in a way that should be pretty
resistant to breakage. I had to redefine * and | as "star_item
no_pickup" and "superb_item no_pickup" using KITEM, and have likewise
done this for the % and $ glyphs, even those are not currently used.

--------------------------------------------------------------------------------
3780a7a11b | advil | 2020-12-21 21:45:05 -0500

Remove an island from due_jungle_book (12364)
This island is kind of pointless as far as I can tell, because the
anaconda can travel through water. Is it possible that this vault
precedes b98e291e80b1?

--------------------------------------------------------------------------------
0dbc5c1aff | advil | 2020-12-21 20:39:43 -0500

Don't feel safe on hexers trapped in grates (12371, #1651)
If a monster had only non-damaging ranged spells and was trapped in
grates (or water, etc), this code would register that the monster could
not hurt the player. This is narrowly true, but because this function is
used for i_feel_safe, the monster would not count as a threat for the
player under various broader  conditions, notably, autotravel.

The specific buggy case that has come up in several reports is draining
eyes, which don't damage the player but do of course drain mp; in other
circumstances they register as dangerous by having a foe path to the
player. In 0.25, `explore_auto_rest` became default true, and so if the
player autotraveled into los of a trapped draining eye, they would enter
a perpetual rest + drain cycle because i_feel_safe returned true,
running up the clock until they interrupted it. This is even worse for
players who have a force_more on the drain message (e.g. ones using
HDA's rc as in #1651) because it is hard to interrupt the loop. It's
also compounded by the lack of hunger: in 12371 the player got out of
the autoexplore loop when they became hungry, which can't happen any
more.

The change is to construe "hurt" for this function's purposes more
broadly, to include any dangerous ranged spells regardless of whether
they are attacks; it's used only for autoexplore and as a minor check on
tension.  It's possible this will stop autoexplore incorrectly in some
cases I haven't thought of, but it can be fine-tuned from here.

Resolves #1651

--------------------------------------------------------------------------------
f5f8a83f67 | advil | 2020-12-21 14:46:09 -0500

Change the quiver verb for tremorstones
"Throw" was more consistent with a previous version of tremorstones'
flavor, and also confusing together with actual throwing.

--------------------------------------------------------------------------------
0927c67384 | advil | 2020-12-21 14:46:09 -0500

Allow quivering evokables from inventory

--------------------------------------------------------------------------------
d6649fcddf | advil | 2020-12-21 14:46:09 -0500

Fix some ammo_to_action logic (12414)

--------------------------------------------------------------------------------
fb7421ae72 | wheals | 2020-12-21 21:16:06 +0200

Avoid a crash when using OTR and worshipping Beogh

--------------------------------------------------------------------------------
244d27527d | advil | 2020-12-21 13:31:14 -0500

Remove some broken local tiles clicking stuff
This has been broken in an unusable way since c3daa31c0c (about two
years) because of the incorrect use of testbits, and even fixing that
these features are still pretty unusable in my testing. They are also now
somewhat redundant with the quiver features. I think something like the
previous behavior of ctrl-click and alt-click could be a good thing to
have, but it needs to be rewritten (perhaps using the actions api) and
restructured to be less redundant. One idea in the long run might be to
have these extra click combos access more quivers, or quivers that are
spell and evocable specific (similar to the launcher quiver).

Given how broken this has been, I'm just removing for now, the main
place to notice a difference will be that ctrl-click on the player will
now not lead to broken/confusing behavior with targeted spells. There's
shift-click to cast/evoke from the new quiver, and also still a
click-to-cast interface in the sidebar for local tiles.

--------------------------------------------------------------------------------
5068850a46 | advil | 2020-12-21 13:20:18 -0500

Fix a bunch of local tiles clicking stuff
We got a report that e42c0a684a0 broke click-to-throw. I'm still not
sure what this report was about, but on looking into this, I found any
number of things broken about clicking-related stuff. Some of this is
related to quivers, some is older. This commit fixes at least the
following bugs:

* The tooltip info was a mess and often wrong
* Some of the conditions for whether to report "Travel" tooltips were
  out of sync with the travel code
* open door tooltips were being calculated wrong
* quivers were being triggered, but by passing key commands to the fire
  interface, rather tha by setting a target directly
* On shift-click to cast with too low mana, a bunch of key errors were
  printed
* primary attacks with launchers weren't handled correctly, and only
  triggered movement

--------------------------------------------------------------------------------
7d2dc893a1 | advil | 2020-12-20 19:49:18 -0500

Do basic deduplication when rendering tile overlays
This is very minimal: it just prevents stacking completely adjacent
identical overlays. This is intended to handle cases with large numbers
of bennus (e.g. in a zig) where many, many explosions can get stacked on
top of each other; in these cases, the number of overlays was easily
reaching the cap (20) which causes a crash. Since layering these
overlays does nothing, simply prevent it. If this system is ever used to
layer overlays with alpha values, this may have unexpected effects, but
to my knowledge it isn't.

--------------------------------------------------------------------------------
ef23d1325b | gammafunk | 2020-12-20 13:51:32 -0600

Incredibly, another food removal cleanup
Need a TAG_MAJORed removal of the food glyph for the other character
set.

--------------------------------------------------------------------------------
35d1ec1c0b | gammafunk | 2020-12-20 12:36:32 -0600

More food removal cleanups
The previous commits missed food items in header files needing removal
or TAG_MAJOR. Comments related to chunks cleaned up to avoid implying
that the chunk item still exists, however leave in terminology using
"chunks" for calculations based on monster size for purposes of blood
and gozag gold splatter.

I've updated MSVC, Xcode, and Android project files to remove references
to food-related source files that no longer exist. Hopefully these have
been done correctly, but that will need confirmation from people who use
these files.

--------------------------------------------------------------------------------
b172a1b426 | gammafunk | 2020-12-20 07:44:43 -0600

Add a TAG_MAJOR for a food-related enum value

--------------------------------------------------------------------------------
8e97bb7ff4 | gammafunk | 2020-12-20 07:02:48 -0600

Make a function static

--------------------------------------------------------------------------------
bb79e0bfc8 | gammafunk | 2020-12-20 06:53:18 -0600

Some cleanup related to food removal
Remove food as a choice for the &o command, update comments to remove
references to food, and add TAG_MAJOR to various bits of food code.

--------------------------------------------------------------------------------
e73896bf99 | randomMesh | 2020-12-20 03:52:37 -0800

Fix link to quickstart.md

--------------------------------------------------------------------------------
e9770dfcb6 | Nicholas Feinberg | 2020-12-18 21:46:06 -0800

Show wand damage in item descriptions

--------------------------------------------------------------------------------
5f66e2dd50 | advil | 2020-12-18 13:37:49 -0500

Skip `cancel_ice_move` prompt with no monsters in los
This simplifies one case where this prompt is a bit annoying; I guess
these prompts could alternatively be made configurable.

--------------------------------------------------------------------------------
3ccbe7bdff | Nicholas Feinberg | 2020-12-18 09:51:50 -0800

Fix Chei's Zot slowing (Ge0ff)

--------------------------------------------------------------------------------
c5df7fbe6a | Edgar A. Bering IV | 2020-12-17 11:31:41 +0200

Revise the sword of Power (kate-)
The variable plus of the old SoP encouraged swapping at low health, and
while getting a giant plus (+27!) could be fun with berserk or Ely, the
lack of a brand and declining plus at lower health made it not that
attractive.

Instead, the sword becomes a fixed plus +5 vorpal greatsword that fires
a "sword beam" reminiscient of the old bolt of inaccuracy on a chance
depending on the wielder's current health. While this still falls off at
low HP, ones HP must be very low indeed for this to become a bad weapon.

The numbers could probably use some further tweaking.

--------------------------------------------------------------------------------
ff409d549a | Edgar A. Bering IV | 2020-12-17 11:31:41 +0200

Tweak some use of second person

--------------------------------------------------------------------------------
3270b6ecf3 | Edgar A. Bering IV | 2020-12-17 11:31:41 +0200

End the glaive of the Guard's specter on unwield

--------------------------------------------------------------------------------
3318b609a0 | Goratrix | 2020-12-17 07:19:20 +0200

Small corrections in the manual
Replace Centaurs with Palentongas in size description,
change WL to Will, remove note about ghosts not using stairs,
clarify traps, add max hp to monster description.

--------------------------------------------------------------------------------
8117e51712 | advil | 2020-12-16 22:08:42 -0500

Improve a corner case for `F`
When `F` is pressed with no throwables, the game opens the full
inventory. This seems (maybe) sensible, but it doesn't really cue that
it's done anything out of the ordinary, so this commit removes the
special case from invent.cc and changes the menu prompt to try to
indicate this.

--------------------------------------------------------------------------------
e42c0a684a | advil | 2020-12-16 22:08:42 -0500

Separate launcher from throwing actions
The main reason for this is so to differentiate throwing stones from
launching stones, leading to better behavior on switching between a
sling and melee weapon. It has the slightly odd result that you can
quiver stones for throwing while wielding a launcher, which used to be
impsosible, but this seems mostly harmless?

This commit also removes the ranged side of auto_switch. As far as I can
tell, this only ever worked when the quiver was empty, making it almost
entirely useless even before the quiver improvements to launching. Now,
there's always a way to fire a wielded launcher regardless of quiver
state. If someone can tell me there's a use case I am missing I can try
to restore it. This option still works as before for melee weapons.

--------------------------------------------------------------------------------
46f0d4f399 | Nicholas Feinberg | 2020-12-16 17:32:09 -0800

Tweak a Ru message again (Dug)
Probably someone else will come by in a moment and change this again.

--------------------------------------------------------------------------------
92de7bf30a | Nicholas Feinberg | 2020-12-16 17:21:27 -0800

Remove Ru's will (gressup)
Rephrase a Ru message to avoid confusion with the Will stat.

Missed this one in ebc406137e .

--------------------------------------------------------------------------------
e913e73dd2 | Nicholas Feinberg | 2020-12-16 16:57:50 -0800

Add power_perc to lua table (advil)

--------------------------------------------------------------------------------
a1b6d6fda9 | advil | 2020-12-16 17:29:20 -0500

Handle lack of quiverable actions better
Don't let submenus work if they would be empty, and in the extreme
limiting case, don't let the main Q menu work either.

--------------------------------------------------------------------------------
b8f0b9b9d7 | advil | 2020-12-16 17:29:20 -0500

Allow quivering usk abilities with low piety
This is very special case-y, but otherwise the non-stomp ones might as
well not be quiverable. Possibly most religious abilities should work
like this?

--------------------------------------------------------------------------------
624b3b4e76 | Edgar A. Bering IV | 2020-12-16 22:55:23 +0200

Give the cloak of Starlight a dazzling effect (amcnicky)
This is a different take on the submission in #1572 to make the cloak
of Starlight more interesting than a cloak with a few artefact properties and
a nice tile.

This commit removes the resist stack, but keeps the stealth malus and
EV.

In exchange it now grants a passive "Dazzle" effect: on one out of 5
dodges it attempts to blind the attacker, using the same code path and
roll as dazzling flash at power 100. This puts it in contrast to the
other unrand cloaks which grant their passive effect on hit.

Closes #1572

--------------------------------------------------------------------------------
f92616641d | sdynet | 2020-12-16 22:55:23 +0200

Add spectral to the glaive of the Guard and adjust
There are already two dual-brand unrands, but spectral is a mechanically
distinct enough brand that a spectral+brand weapon doesn't crowd the
space too much. Additionally, it's a nice throwback to old spectral
weapon which worked on just about everything.

This commit also strips the extra properties (other than AC) from the
Glaive and lowers its plus.

[ Committer's note: Closes #1598. Revised the patch to do the dual-brand
  and re-wrote the commit message. ]

--------------------------------------------------------------------------------
d46cc9e92b | advil | 2020-12-16 14:07:03 -0500

Refactor your_talents somewhat
Previously, to check if the player had an ability, you needed to
construct the entire talents list and see if the ability is there. This
separates out code that checks whether a player has an ability from
your_talents so that it can be directly called in a less overkill
fashion. There's further refactoring along these lines that would be
possible, for god abilities in particular.

This commit also tweaks some flight logic in a way that hopefully
doesn't break it, but it seemed to be subtly wrong before.

--------------------------------------------------------------------------------
c8f2f48a6c | advil | 2020-12-16 14:07:03 -0500

Add a hint about `f` for untargeted direction choosers
I think it's otherwise not entirely obvious that you trigger these in
the same way as targeted direction choosers. (Especially unclear for
abilities that don't have a targeter yet.)

--------------------------------------------------------------------------------
80e58933c0 | Nicholas Feinberg | 2020-12-16 09:45:53 -0800

Display Frozen Ramparts damage
Since this doesn't check AC, I think the delay scaling doesn't matter
much. The displayed number being low hopefully won't mislead people
too much...

--------------------------------------------------------------------------------
faeb9f6368 | Nicholas Feinberg | 2020-12-16 09:45:44 -0800

Remove an unused function

--------------------------------------------------------------------------------
1040278a39 | Nicholas Feinberg | 2020-12-16 09:21:05 -0800

Replace spellpower bars with %s
Spellpower bars are notoriously complex and unintuitive. They follow
a hand-calibrated, strongly nonlinear scale (0, 10, 15, 25...?),
which isn't particularly helpful to players. Why should anyone expect
that going from .... ..... to  #### ###.. would have the same effect
on a spell's, well, power as going from #### ###.. to #### #####?

One big reason for the nonlinear scale is to allow players to see
progress at low spellpower without blowing up to a huge number of bars
at high power, but there's a much simpler way to represent that. Let's
just show the % of max spellpower instead.

--------------------------------------------------------------------------------
be8bfa9c7c | Nicholas Feinberg | 2020-12-16 09:21:05 -0800

Remove rotten meat
Farewell, obsolete message channels!

--------------------------------------------------------------------------------
e48705eb17 | Edgar A. Bering IV | 2020-12-16 11:38:44 +0200

Make frozen ramparts end on movement
Frozen Ramparts' combination of damage over time and area of effect made
it one of the most powerful single school L3 spells. On its own, this
isn't necessarily a bad thing as it is not overpowered as a L3 spell.
However, FR encourages motion, which is an anti-synergy with another low
level Ice spell: Ozocubu's Armour.

This tension combined with FR's high power-level and the average overall
high power-level of Ice spells motivates changing FR to end on movement
(the exact rules are the same as Ozocubu's armour: blinking and getting
trampled don't end it).

--------------------------------------------------------------------------------
01e01ebfeb | Edgar A. Bering IV | 2020-12-16 11:22:37 +0200

Make shaft self consistent with '>' on a shaft
Formicids could shaft themselves with the ability and not apply barbs or
break Ozocubu's armour, even though the ability description states they
should be equivalent.

This commit also re-orders barbs application and ice armour breaking for
any floor_transition that triggers them, so that messaging is consistent
with the message order when moving.

--------------------------------------------------------------------------------
b90401cf1a | Edgar A. Bering IV | 2020-12-16 10:48:22 +0200

Prompt before ending Ozocubu's Armour (gammafunk)
From conversations with gammafunk and also other players and my own
experience, my cancellation of Ozo's armour by movement is more often
inadvertent than an intentional decision. Add some ui ergonomics for
this.

I didn't add an rc option for whether or not to prompt: we already have
the answer prompt lua callback, and from that players who want the
prompt auto-answered one way or the other (or in a context-sensitive
way) can configure the behavior to their hearts delight.

--------------------------------------------------------------------------------
6118521029 | advil | 2020-12-15 19:24:26 -0500

Cache quiver spell colors
This is fixing the same issue as 64875d052978.  Like enabled status,
quiver color indirectly calls spell_uselessness_reason, which for beam
spells, can have weird side effects if triggered at the wrong time. In
the particular crashes I was looking at it appears that there was a
fairly complex sequence of side effects roughly like, explosion ->
redraw -> quiver description -> quiver color -> tracer -> messaging (??)
-> more -> quiver description -> tracer -> crash on an invalid monster.
(https://crawl.kelbi.org/crawl/morgue/AlmondAAA/crash-AlmondAAA-20201215-234651.
txt)

--------------------------------------------------------------------------------
6dfc622489 | advil | 2020-12-15 15:28:34 -0500

Fix LO/Djinn upgrade prompt
Broken since 2ba9a4ce9b5bfb, I think. `yes_or_no` no longer will work
before game start, so reimplemented as a yesno popup.

--------------------------------------------------------------------------------
4387980181 | advil | 2020-12-15 15:05:20 -0500

Fix a bunch of static targeter + invis issues
This also fixes an earlier bug where absolute zero could be used to
reveal whether there were invisible monsters, just not their location.

Resolves #1641

--------------------------------------------------------------------------------
f3604ea6ed | advil | 2020-12-15 09:57:06 -0500

Fix launcher ammo starts (12405)
Something about the ng-setup order is causing this that I still don't
quite understand, but explicitly setting the launcher quiver works.

--------------------------------------------------------------------------------
6f3817b27c | advil | 2020-12-15 09:57:06 -0500

Make some zot messages less flavorful but more direct

--------------------------------------------------------------------------------
347fe5baa7 | Edgar A. Bering IV | 2020-12-15 08:32:48 +0200

Update the credits

--------------------------------------------------------------------------------
8f9f7f7418 | advil | 2020-12-14 11:55:28 -0500

Fix webtiles tooltips for statuses with counts
Statuses like "Flay (-7)" and "Zot (999)" had their tooltips broken,
because the lookup was using this full string. Instead, split at the
space. This commit also adds some text when there is no description so
that it is more apparent that there should be a tooltip (before, a tiny
empty box was displayed).

--------------------------------------------------------------------------------
5cc43298a2 | Nicholas Feinberg | 2020-12-14 08:23:46 -0800

More WL -> Will (Goratrix)
Consistent terminology for player-facing messaging.

I'm intentionally leaving the player -> monster hex targeter with a
different message ('chance to affect') than the monster -> hex messaging
('chance to defeat your Will'). The latter feels quite awkward in the
targeter, and I think it's maybe OK to be a little less specific on what's
going on under the hood. We'll see!

--------------------------------------------------------------------------------
76350e28a0 | gammafunk | 2020-12-14 09:00:01 -0600

Some ghoul updates for the manual

--------------------------------------------------------------------------------
aeb50157f9 | Edgar A. Bering IV | 2020-12-14 16:59:46 +0200

Update credits

--------------------------------------------------------------------------------
2a23cb0dbd | AdamPG | 2020-12-14 16:57:03 +0200

Update species creation documentation to remove hungry undead
[ Committer's note: Closes #1642. Remainder of the PR was handled
  in earlier commits. ]

--------------------------------------------------------------------------------
3b44033db3 | gammafunk | 2020-12-14 08:46:18 -0600

Fix some outdated references to hungry ghouls
In source comments, our species code generation script, and in objstat.

--------------------------------------------------------------------------------
0998834371 | gammafunk | 2020-12-14 08:35:00 -0600

Fix ghouls not being able to use potions (PR 1642)
The removal of the notion of "hungry undead" didn't update the logic
that assumed all "pure" undead can't use potions. Such undead were
previously only mummies or temporary lich form, but now it includes
ghouls. This commit fixes the logic in the obvious way for now, but the
undead-state-type likely enum needs a refactor, as its not doing a great
job of giving proper undead knowledge at present.

I'm not working with the referenced PR given the source, but will leave
it open should anyone else wish to.

--------------------------------------------------------------------------------
db0aba6efe | gammafunk | 2020-12-14 07:41:52 -0600

Hopefully fix an HP display bug (elliptic)
A bug in the HUD display of HP can occur when restoring maximum HP from
drain by gaining XP. I couldn't recreate this bug, but it can be seen at
frame 2125 of this ttyrec:

https://crawl.kelbi.org/crawl/ttyrec/elliptic/2020-12-13.23:29:18.ttyrec.bz2

It likely happens because the code to handle restoring drained MHP from
XP gain first calls calc_hp() to recalculate max HP but then only zeros
the max HP adjustment after this recalculation. Hence max hit points
will have an incorrect value until it is recalculated again. This commit
moves the recalculation after any change to the drain mhp adjustment,
which should fix the bug.

--------------------------------------------------------------------------------
8436896e56 | Peter Gerlagh | 2020-12-14 14:41:16 +0200

Allow any floor to be annotated with !
Improve the Annotate interface such that any dungeon floor can be
annotated from anywhere. From the main view and the dungeon-overview,
pressing ! will bring up a menu allowing you to choose which floor to
annotate. From the control-X view, ! will cause you to annotate the
level you are currently looking at. ! has a functional help menu. The
shortcuts are . and Enter for the current level, < and > for the level
above and below respectively, and control-P in annalogy with inter-level
travel. The list of dungeon branches (with abreviations) is only shown
when the player presses ! a second time.

You can only annotate dungeon branches of which you
have found the entrance, to prevent information leaking.

do_annotate(level_id) has been renamed annotate_level, and
annotate_level() has been renamed do_annotate.

[ Committer's note: Closes #1369. Squashed and rebased, tweaked some
  assert logic. ]

--------------------------------------------------------------------------------
f5ace97b37 | paul | 2020-12-14 12:49:57 +0200

A new overflow vault for Gozag and Zin
This vault is an idea inspired by zin_treasury that I thought
could be an amusing play on the contrast between Zin and Gozag.
Gozag tempts the player with a single-charged wand of digging
to steal a negligible amount of gold from Zin's treasury just for
the sake of it.

[ Committer's note: Closes #1627. Tweaked commit message. ]

--------------------------------------------------------------------------------
195573c5ca | Marcelo Henrique Cerri | 2020-12-14 10:15:58 +0200

Add options to control display of the message window overlay
Add two new options, tile_overlay_col and tile_overlay_alpha_percent,
to control the background of the message window overlay.

The default color follows the same hard coded value used before while
alpha was rounded to the closest round percentage number. The previous
alpha value was 100 (in the 0-255 range), while the 40% new default
should be equivalent to 102.

[ Committer's note: Closes #1557 ]

--------------------------------------------------------------------------------
b926618e39 | mgdelmonte | 2020-12-14 10:06:03 +0200

Add c_message lua hook
This hook is called for each message sent to the message window, as an
alternative to  fetching the last n messages (where n is a guess) with
`crawl.message`.

[ Committer's note: Closes #1563. Tweaked commit message and elaborated
  documentation. ]

--------------------------------------------------------------------------------
9a8e32e9ec | Nikolai Lavsky | 2020-12-14 09:41:38 +0200

Correct some typos

--------------------------------------------------------------------------------
7ac5835353 | Nikolai Lavsky | 2020-12-14 09:41:38 +0200

Remove obsolete ability and status descriptions

--------------------------------------------------------------------------------
129ca1ddcb | Nikolai Lavsky | 2020-12-14 09:41:05 +0200

Remove obsolete stash search prefixes

--------------------------------------------------------------------------------
9010512d90 | Nikolai Lavsky | 2020-12-14 09:08:44 +0200

Fix Shaft Self description
Shaft Self has an equal chance of taking the player 1, 2, or 3 levels
down.

--------------------------------------------------------------------------------
18a83ce318 | Nikolai Lavsky | 2020-12-14 09:06:22 +0200

Fix autofight not prioritizing petrified enemies
After 9c76b8a6, there are only two stabbing tiers. Also, the player
gets a top-tier stab bonus when attacking petrified enemies.

This commit updates autofight rules so petrified enemies get the same
priority as sleeping or paralysed ones.

--------------------------------------------------------------------------------
fb05d25666 | Heinrich Ody | 2020-12-14 09:02:36 +0200

Add details for playing sounds via regular expressions
Clarify sound documentation.

[ Closes #1630 ]

--------------------------------------------------------------------------------
ce247c04e0 | Nikolai Lavsky | 2020-12-14 08:59:30 +0200

Actually stop the Zot clock when it should be paused or stopped
The Zot clock ticks even when in the Abyss, during the orb run, and in
Sprint mode. It cannot kill the player, but `turns_until_zot()`
showing a negative number of turns left in `E` looks like a bug.

Also, this commits tweaks the messaging about the Zot clock in `E`.

[ Committer's note: Closes #1634. Tweaked some style. ]

--------------------------------------------------------------------------------
0a719521bf | Nikolai Lavsky | 2020-12-14 08:59:02 +0200

Add a wizard command to set the Zot clock
Even though it is already possible to get more Zot time using
the `&H` command, a wizard command to set the number of remaining
turns still might be useful.

--------------------------------------------------------------------------------
a2fc0b5f9f | Edgar A. Bering IV | 2020-12-14 08:44:16 +0200

Use references in some ranged fors
This silences a clang warning and also prevents unneccessary copying of
coord_defs in ranged for constructions.

--------------------------------------------------------------------------------
4c0aae810e | Nicholas Feinberg | 2020-12-13 18:26:57 -0800

Fix Irradiate damage (Midn8)
Broken in 4140fda2ff28.

--------------------------------------------------------------------------------
3a4175ecf3 | gammafunk | 2020-12-13 15:09:05 -0600

Some more changelog updates

--------------------------------------------------------------------------------
d9a99272a7 | gammafunk | 2020-12-13 15:02:17 -0600

Remove unused hint code instead of using TAG MAJOR
The enums aren't marshalled and these hints can't be triggered (and
hints mode would ignore them even if they could be triggered).

--------------------------------------------------------------------------------
4cbea82fa3 | gammafunk | 2020-12-13 15:02:02 -0600

Rework player drain to temporary max HP reduction
The UI cost of player drain is high, since not only might you need to
check your skills after each drain and restoration of drain, you might
also have to check spellcasting and ability fail rates. It's also
relatively complex for the player to reason about the impact of draining
all skills some fixed amount of skill levels, since the effects of level
changes vary widely by skill and there are so many skills. This isn't a
great design for a player debuff that's frequently applied and restored
over fairly short numbers of turns.

Max HP reduction has a natural spot on the HUD, requires no menu checks,
is much easier for the player to reason about, and is a universally
effective cost. Hence this commit reworks player drain to temporarily
reduce max HP instead of skills. The drained max HP is restored as the
player gains experience, just as before with the old system. Drain
applied to monsters is unchanged, with that effect remaining as a
stackable HD reduction applied in the same fixed amount regardless of
damage.

For player drain from melee or beams, I've made the formula more
directly use damage done, but still applying at least one point of MHP
drain for any non-zero drain power. These attacks always apply a drain
power of one even if no damage is dealt. Other drain costs use the same
cost values as before (e.g. Ru Apocalypse is still 100), since the
formulas scale such values appropriately.

The formula for converting drain power to max hp reduction divides the
power by six (using random rounding), then splits the resulting power
into into two equal parts (up to rounding), one of which is used for a
fuzzed component and the other for a component based on the player's
current max HP. This is a balance between having a cost that doesn't
consider MHP, which would be relatively stronger versus low MHP players
and one that only uses MHP, which would be relatively stronger versus
high MHP players. In my tests of melee, beam, and fixed costs abilities,
the MHP reduction rates seem reasonable, but further play-testing might
lead us to tweak the relevant formulas or ability drain costs.

The new drain effect replaces the old rotting mechanic, and that
mechanic is removed. Curing and heal wounds potions no longer have a
secondary rot restoration effect. Miasma clouds lose the rotting portion
of their effect, with the poison and slowing remaining unchanged.
Monsters and players that permanently or temporarily had rot resistance
now have miasma resistance instead. One exception to this is
vinestalkers, which simply lose the rot resistance with no replacement,
since they were only given it due their potion limitations.

Monsters that had rotting melee attacks now have draining attacks
instead. The cases of this are not notable aside from necrophages, which
might need a rethink since they are not very effective monsters and we
have so many monsters with af_drain. Zin Recite can no longer rot
monsters, with the weight for that effect appropriately spread to other
effects.

I've updated all descriptions, references, and source comments to no
longer reference rot, but as usual some may have been missed.

--------------------------------------------------------------------------------
1fec4fe3f8 | gammafunk | 2020-12-13 14:51:37 -0600

Remove the hungry dead undead type
This was previously used for player ghouls when those rotted over time
and required chunks to cure this. Now ghouls no longer rot, nor do they
eat to restore HP, gaining XP from kills instead. Hence we reclassify
ghouls as normal undead and remove their special undead subtype.

--------------------------------------------------------------------------------
7ab0d7dac8 | gammafunk | 2020-12-13 14:51:37 -0600

Remove an unused actor method argument

--------------------------------------------------------------------------------
89b3258002 | advil | 2020-12-13 11:36:45 -0500

Mention seeds in the issue template

--------------------------------------------------------------------------------
61de54256c | advil | 2020-12-13 10:56:56 -0500

Provide a way to use pkg-config on mac
This commit adds a build setting `FORCE_PKGCONFIG` that if defined,
overrides the default `NO_PKGCONFIG` setting for mac builds.
Previously, doing something like this required editing the Makefile.
This setting should be useful for things like homebrew that repackage
crawl and patch the Makefile (see #1367). It may also be helpful for
people trying to build on new apple ARM devices where our contrib
version can't be updated far enough to provide direct support (though
this is a bit speculative).

A commit in #1367 suggests just always using pkg-config if available,
but I don't think this is yet a good idea on mac. Because Apple doesn't
itself provide it, there are at least 4 distinct ways that I know of to
(often accidentally) get pkg-config installed, none of them are very
standard or compatible, it is possible to get more than one version
which interact badly (e.g. if you have both macports and anaconda, or
homebrew and anaconda), and in my past testing they are just quite
unreliable overall, probably exactly because they aren't widely used. In
testing this current commit, I do seem to have succeeded in getting a
succesful pkg-config build, but this is the first time.  The contribs
for mac builds, on the other hand, are extremely well-tested and
reliable, and not at all sensitive to the various package managers that
a mac user could have installed. So I think until this situation becomes
a bit more stable (if ever), it is better to default to NO_PKGCONFIG and
require the user to be aware that they are taking action to override
using contribs.

--------------------------------------------------------------------------------
cd3bf97d0b | Edgar A. Bering IV | 2020-12-13 17:27:06 +0200

Remove no_submerge from docs and des syntax highlighting

--------------------------------------------------------------------------------
c6392dc34d | Edgar A. Bering IV | 2020-12-13 17:06:32 +0200

Remove the anti-cannibalism conduct (12368)
With eating gone it looks weird and out of place. It still had an effect
in what one could devour with hydra form while worshipping a good god. A
lot of code for a small effect.

Beoghites still don't eat fellow orcs, on accounnt of the corpse
violation conduct and also the practical desire of preserving an orc
corpse to resurrect them.

--------------------------------------------------------------------------------
320aac65f4 | Edgar A. Bering IV | 2020-12-13 16:52:39 +0200

Remove a reference to food (12368)

--------------------------------------------------------------------------------
0e109d3507 | Edgar A. Bering IV | 2020-12-13 16:30:25 +0200

Fix the organization of dc-mon.txt (12306)

--------------------------------------------------------------------------------
6b7d0433bc | Edgar A. Bering IV | 2020-12-13 16:30:25 +0200

Preserve Erica's custom scimitar (12199)
Erica's tile has a custom firey scimitar, keep it even if she's managed
to get an artefact.

--------------------------------------------------------------------------------
7c2e7382c0 | Edgar A. Bering IV | 2020-12-13 16:30:25 +0200

Source code cleanup (bcadren)
Addresses mantis tickets:

12280
12281
12301
12358
12400
12404

removing dead or redundant code, simplifying execution, and correcting
comments.

--------------------------------------------------------------------------------
2c94d5e1d5 | Edgar A. Bering IV | 2020-12-13 16:30:15 +0200

Vault cleanup (bcadren)
Closes mantis tickets:

12251
12252
12253
12263
12271
12272
12369

These vaults had conditions on depth that no longer made sense, missing
tags, or in one case the syntax suggested an altar placement that was
missing.

--------------------------------------------------------------------------------
58b0234282 | Edgar A. Bering IV | 2020-12-13 16:25:46 +0200

Use feat_eliminates_items appropriately (12258, 12402)

--------------------------------------------------------------------------------
b609fa9e76 | Edgar A. Bering IV | 2020-12-13 16:20:03 +0200

Remove the no_submerge fprop (12309)
The only remaining submerging monster is the Kraken tentacle segment.
This could also be removed but this batch of commits is collecting only
small source cleanups.

--------------------------------------------------------------------------------
ed47246d56 | Edgar A. Bering IV | 2020-12-13 16:20:03 +0200

Ground out retaliatory shocks (10990)

--------------------------------------------------------------------------------
00aba192f2 | Edgar A. Bering IV | 2020-12-13 13:20:34 +0200

Update the credits

--------------------------------------------------------------------------------
d2882a9c4f | Edgar A. Bering IV | 2020-12-13 13:20:08 +0200

Update the changelog

--------------------------------------------------------------------------------
086102a3f0 | Nicholas Feinberg | 2020-12-12 18:38:56 -0800

Remove a redundant QSDA line
Don't note that it can be enchanted to +0, because that's not very
useful.

--------------------------------------------------------------------------------
78becf55bb | advil | 2020-12-12 18:34:09 -0500

Various tweaks to monster and spell descriptions
This fixes a few apparent mistakes, and more cleanly aligns fields in
both of these description popups. (The unifying factor is the internal
use of `_print_bar`.)

This commit involves a rather alarming nbsp replace on the javascript
side to get these tweaks to render in webtiles, but on the other hand it
does seem very plausible to me that any leading spaces in one of these
popups will be intentional.

--------------------------------------------------------------------------------
8dc6ce00ff | advil | 2020-12-12 16:21:14 -0500

Implement -= for force_targeter (elliptic), consolidate options
-= simply wasn't implemented before (and I didn't realize that unless
you explicitly check for it it calls the += code). This commit also
removes the `always_use_static_targeters` and replaces it with the
possibility of passing `all` to `force_targeter`. For reasons of
simplification I didn't for now implement -= working to whittle down
spells after `all`.

--------------------------------------------------------------------------------
5b34608550 | advil | 2020-12-12 14:06:21 -0500

Try to fix the renounce to `X` mapping (10637)
This can happen because `your_talents` is extremely side-effect-y, and
if it can get called before `set_god_ability_slots`, it will actually
set lettering for whatever god abilities appear to be available at 0
piety. There are various ways that this might happen, centering around
the messaging on join. I suspect the original version of 10637 involved
local tiles (where the ability buttons are constructed by calling
`your_talents`), but the modern version of this is triggered by having
an ability quivered when joining the god; a redraw on the messaging also
calls `your_talents` when checking quiver enabled status. The best fix
would be a more sane refactoring of how to check if the player has an
ability, but this quick fix should prevent this particular problem.

I won't be too shocked if this leads to crashes, because of weird join
religion ordering effects; this is not unrelated to the crash fixed by
ca8e9911413a.

--------------------------------------------------------------------------------
60470c10af | advil | 2020-12-12 13:26:52 -0500

Fix/improve programmatic spell memorisation
Spell memorisation from lua has been semi-broken since the spell
library, because it didn't correctly handle hidden spells or libraries
greater than 52 elements. In addition, you previously needed to use
sendkeys to memorise spells going by letter. This commit fixes
you.mem_spells to just return a list of memorisable spells, no letters
involved, and adds a lua function to memorise spells by name. Not sure
whether this should be under `spells` or `you`, but I chose the latter.

Resolves #1360
Resolves #1602

--------------------------------------------------------------------------------
2c461ccb5f | Nicholas Feinberg | 2020-12-12 09:00:57 -0800

Clarify damage dice
I'm not sure how helpful this is to people who aren't familiar with summing
dice for damage, but maybe it's better than nothing...? Might be better to
show mean/max, but we'd need a new format for that.

--------------------------------------------------------------------------------
95e0c7ddb8 | Nicholas Feinberg | 2020-12-12 08:25:08 -0800

New Swamp tiles, pt 1 (CanOfWorms)

--------------------------------------------------------------------------------
aff5f71418 | Nicholas Feinberg | 2020-12-11 20:32:52 -0800

Display Mara's weapon in tiles (lici)
This will probably cause some graphical glitches, but it seems better
than nothing.

--------------------------------------------------------------------------------
4140fda2ff | Nicholas Feinberg | 2020-12-11 20:22:15 -0800

Make described spell damage deterministic (Midn8)
For player and monster spells.

--------------------------------------------------------------------------------
e0427eb064 | Nicholas Feinberg | 2020-12-11 19:57:07 -0800

Don't claim invis scarf makes you hungry (ParallaxScroll)

--------------------------------------------------------------------------------
fd6a22a7ff | Nicholas Feinberg | 2020-12-11 15:17:28 -0800

Partially uncap displayed stealth (hellmonk, etc)
Previously, displayed stealth was capped at 500, regardless of the player's
actual stealth. It now displays much higher values, using this insanely and
senselessly cryptic system:

+......... = 1-50
++........ = 51-100
...
++++++++++ = 451-500
*+++++++++ = 501-550
**++++++++ = 551-600
...
********** = 951-1000
...
...
!!!!!!!!!! = 1951+

With 27 armour + stealth, 120 SID, shadow dragon armour, full Dithmenos
piety, and Shadow Form, I was able to hit the full !!!!!!!!!! stealth.
Can you?

--------------------------------------------------------------------------------
242049e08c | Nicholas Feinberg | 2020-12-11 14:52:37 -0800

Add Woodweal synergy (canofworms)
It seems very funny for them to be able to heal while adjacent to any
tree, including shambling mangroves. Not *useful*, not particularly
exciting game design, but funny!

--------------------------------------------------------------------------------
e81342393e | Nicholas Feinberg | 2020-12-11 14:43:02 -0800

Add back-compat for MR search

--------------------------------------------------------------------------------
00712748bd | advil | 2020-12-11 17:06:58 -0500

Use bigger long brackets for lua rc parsing
After parsing lua, it seems that this code just wraps non-lua code in
long brackets. This causes problems when someone tries to use a keybind
with `]` following some rc lua code, which involves writing `[]]`, which
will close any long brackets in play. Using `[==[` should make it less
likely that the closing bracket accidentally shows up.

Resolves #971

--------------------------------------------------------------------------------
368d90fffd | advil | 2020-12-11 15:50:47 -0500

Also protect unbreathing creatures from miasma
(following e1f20c3b445d4e)

--------------------------------------------------------------------------------
e1f20c3b44 | Heinrich Ody | 2020-12-11 15:48:13 -0500

Fix unbreathing bug
Now, when it is checked whether an actor is immune to a cloud, for
poison cloud we check for unbreathing.

[Committer's note: resolves #1564]

--------------------------------------------------------------------------------
361d76ed6f | advil | 2020-12-11 15:32:15 -0500

Remove jiyva_slurp_result::food
This was entirely cosmetic at this point. passive_t::slime_feed remains
also for cosmetic reasons, it is used to color the powers display once
the player's piety increases a bit. But this could perhaps be
simplified...

Resolves #1555

--------------------------------------------------------------------------------
5006177544 | advil | 2020-12-11 13:18:34 -0500

Never mulch tossed items
This specifically comes up for launcher ammo, which has a mulch rate, so
it could previously get destroyed even when being tossed. I do think
this could go either way per discussion in #1505, but i ended up
deciding to change it because I think it's overwhelmingly likely that
(barring weird speedrun things I haven't though of) the only reason
anyone would ever toss launcher-only ammo is by accident, in which case
it's pretty annoying to see it mulch.

Resolves #1505

--------------------------------------------------------------------------------
613af4b37b | advil | 2020-12-11 12:22:55 -0500

Explicitly set window opacity
May or may not help with #1562

--------------------------------------------------------------------------------
775ca3dcd3 | advil | 2020-12-11 10:14:49 -0500

Improve error messaging for int options
* handle color tag escaping correctly
* make the error message slightly more interpretable

Resolves #1623

--------------------------------------------------------------------------------
be3abf3417 | advil | 2020-12-10 20:58:12 -0500

Don't do a weapon check on autofight movement for launchers
When an enemy was visible but fire was blocked, a wielded launcher would
trigger a "really attack while wielding" message before allowing
movement towards the enemy. This old behavior was strictly in keeping
with the documentation for autofight_prompt_range, but I think still
unexpected, and with confusing messaging (referencing attacking) on top
of that. So just skip the wielded weapon check altogether if wielding a
launcher. This does obscure corner cases where a launcher has an
inscription, but since all launchers have full range, it's pretty
restricted.

Resolves #1614

--------------------------------------------------------------------------------
5722f2f28d | advil | 2020-12-10 19:45:25 -0500

Copy .md files on install
I think that before bf3a5c7, this is what was causing various crashes in
circumstances that aren't what we usually test. This commit isn't
strictly necessary after bf3a5c7, but it paves the way for converting
other docs to md, and also heads off this gotcha for the future.

Resolves #1609

--------------------------------------------------------------------------------
fb849e850a | advil | 2020-12-10 17:05:16 -0500

Fix a thunderbolt crash
Thunderbolt was not correctly handling the case where a player moved
instantaneously or during the firing turn into the position that they
had just targeted, resulting in a ray crash on a length 0 ray. This
could happen easily in wizmode but also in a few ways during a game,
including mesmerise, serpent's lash, and probably knockback. This commit
guards against the specific case, though not for non-crashing cases of
the player moving in one of these ways (which might lead to bizarre
thunderbolt shapes). For fully correct behavior, it should probably
check not just the turncount of the previous firing, but the position
the actor was at at the previous time of firing.

--------------------------------------------------------------------------------
6118fa9711 | advil | 2020-12-10 15:03:07 -0500

Add some sanity checks to IMB
The effect of this spell when one of the actors was knocked into a
dispersal trap was fairly odd, and these changes make it slightly less
odd. (They may or may not interact with crashes we've been seeing.) It's
possible that for knockback specifically, dispersal should act as a
fineff, but this isn't a good approach for dispersal in general.

--------------------------------------------------------------------------------
bf79f71511 | advil | 2020-12-10 12:30:41 -0500

Add another test monster
and generalize some references to MONS_TEST_STATUE.

--------------------------------------------------------------------------------
76280ab330 | advil | 2020-12-10 11:38:52 -0500

Fix grammar error for misc evokables

--------------------------------------------------------------------------------
34db2bcb1b | advil | 2020-12-10 11:36:11 -0500

De-futurize various descriptions
I realize this is in principle a ridiculous solution to searches for
"will" over-accepting, but when I went through these cases I realized a
lot of them are clearer as non-future anyways, and nothing I changed
reads worse to me.

--------------------------------------------------------------------------------
d598b01645 | Nicholas Feinberg | 2020-12-09 08:34:38 -0800

Add a note of poignancy (12401)
To avoid players being trapped in a side area in lost_world, add an
exit... just behind a plant... so close for the poor skeleton there,
but so far...!

--------------------------------------------------------------------------------
581f5be5db | advil | 2020-12-09 09:08:58 -0500

Improve tossing non-evokable unrands (vt)
Also, better handling messaging for trying to quiver equipped items for
tossing.

--------------------------------------------------------------------------------
4787bd3075 | wheals | 2020-12-09 14:18:31 +0200

Fix infinite gold exploit (#12395)

--------------------------------------------------------------------------------
f6fec0c0d4 | wheals | 2020-12-09 14:18:31 +0200

Don't let Maurice steal stuff being worn
See
https://crawl.kelbi.org/crawl/morgue/Prakerore/crash-Prakerore-20201124-060246.t
xt
for a crash caused by this.

--------------------------------------------------------------------------------
83fea8793d | wheals | 2020-12-09 14:18:30 +0200

Fix _actor_apply_cloud_side_effects return value for miasma (#12399)
May cause the clouds to (correctly) anger monsters that they hurt.

--------------------------------------------------------------------------------
26f530f025 | wheals | 2020-12-09 14:18:30 +0200

Refactor Hailstorm's range handling a bit

--------------------------------------------------------------------------------
d1b18c6681 | wheals | 2020-12-09 14:18:30 +0200

Fix typo

--------------------------------------------------------------------------------
544776af23 | advil | 2020-12-08 19:44:11 -0500

Mark minmay_two_paths as transparent (u/yigaxab397)
It's possible that other vaults lacking @ will have similar issues.

--------------------------------------------------------------------------------
006ef2cfcc | advil | 2020-12-08 14:17:17 -0500

Improve autofight_throw and CMD_AUTOFIGHT_NOMOVE
The main content of this change is to allow autofight commands (as
opposed to CMD_AUTOFIRE) to only trigger actions that do direct damage
of some kind. Several people have pointed out to me that their behavior
with something like Berserk quivered, vs. how players used them before
quivers, was not very coherent. Now, any autofight command will act as
if the quiver is empty when an action that doesn't do direct damage is
quivered. This will also hopefully make the quiver more usable when
CMD_AUTOFIGHT_NOMOVE is used as the Tab binding.

As a bonus, autofight_throw=true now correctly handles the case where a
spell is out of range, moving towards the nearest target or falling back
to melee depending on range. This is fairly useful for many spells, but
especially for something like hailstorm.

There was no existing code to make this distinction, so I mostly ended
up hardcoding it. Unfortunately this may mean that there are missed
cases.

--------------------------------------------------------------------------------
72e26ac4d7 | advil | 2020-12-08 14:17:17 -0500

More manual updates for quivers
* Add a section on combat, which was missing entirely
* Refactor the key commands to group attacking and firing together, as
  well as move a few other things around

--------------------------------------------------------------------------------
48550f608a | Nicholas Feinberg | 2020-12-08 07:47:51 -0800

De-invert the hex success targeter
Probably nicer to show success chance when possible, not failure chance.

--------------------------------------------------------------------------------
0dd55e01dc | gammafunk | 2020-12-08 06:21:37 -0600

Mark a function as static

--------------------------------------------------------------------------------
da264ca44c | Nicholas Feinberg | 2020-12-07 17:17:11 -0800

Rephrase Shadow Form description
Use a consistent tense and tweak the phrasing around willpower.

--------------------------------------------------------------------------------
e47f559bc5 | Nikolai Lavsky | 2020-12-07 17:16:40 -0500

Don't show a bigger targeter for Hailstorm when worshipping Vehumet
`spell_range()` can return 4 instead of 3 for Hailstorm, because
Vehumet supports the use of this spell. But Hailstorm's range never
changes, since it's hardcoded as 3 in `cast_hailstorm()`.

--------------------------------------------------------------------------------
d92d85930f | Nicholas Feinberg | 2020-12-07 12:31:47 -0800

Fix conjured friends' damage (bhauth)
maybe_random_div and div_rand_round are very different.

Fixes displayed and dealt damage by Fulminant Prism, Battlesphere
and Conjure Ball Lightning, all broken in recent commits.

--------------------------------------------------------------------------------
185e2d3a23 | advil | 2020-12-07 12:43:29 -0500

Fix the header build

--------------------------------------------------------------------------------
c50dc45249 | advil | 2020-12-07 11:16:28 -0500

Add icons to the revamped quiver menu

--------------------------------------------------------------------------------
29ed428ae2 | advil | 2020-12-07 11:16:28 -0500

Improve marking of quivered items in a few menus

--------------------------------------------------------------------------------
c70d32b774 | advil | 2020-12-07 11:16:28 -0500

Fix inventory marking of invalid quiver items

--------------------------------------------------------------------------------
6dfd076335 | Nicholas Feinberg | 2020-12-07 07:42:27 -0800

Yet another WL -> Will

--------------------------------------------------------------------------------
f6ffb0d6bd | Nicholas Feinberg | 2020-12-06 17:39:53 -0800

Remove William
To disambiguate and shorten the hex targeter, refer to the resist
chance rather than the "chance to beat".

--------------------------------------------------------------------------------
edcf9b2963 | Nicholas Feinberg | 2020-12-06 14:22:02 -0800

More willpower wording tweaks
Describe MR-immune enemies as having infinite will, matching the
display on xv (not 'invulnerable'), and replace a few more WL
references.

--------------------------------------------------------------------------------
390cb15686 | Nicholas Feinberg | 2020-12-06 14:10:26 -0800

Update more missed MR -> WL conversions

--------------------------------------------------------------------------------
ffdf6f7e0c | Nicholas Feinberg | 2020-12-06 14:10:26 -0800

WL -> Will (dinky, advil)
Reads a bit more clearly.

--------------------------------------------------------------------------------
0a7728c5f8 | advil | 2020-12-06 15:54:18 -0500

Improve weapons check wording for roll/rampage
Helps with the scenario where a hypothetical player (*cough*) cannot
figure out why there might be attacking going on and spends time trying
to diagnose quiver bugs instead.

--------------------------------------------------------------------------------
2e65f7e828 | advil | 2020-12-06 15:34:51 -0500

Fix some ways of skipping the autofight hp check (dinky)
This check was being skipped in some cases because at the time of
calling, it was possible for the dist object to not be fully set up for
automatic targeting.

--------------------------------------------------------------------------------
803384b024 | advil | 2020-12-06 15:19:59 -0500

Fix autofight_fire_stop
Broken because the lua code was using the wrong variable name. This
commit restores the previous default behavior of shift-tab/p acting like
`ff` instead of `f.`, lets this be configured again in the rc via
`autofight_fire_stop = true`, and also has all quiver actions
consistently respect this option.  I've gotten some feedback from
players suggesting that this might actually be better with a default of
false (from players interpreting the bug as a new default), but for now
I'll leave it as it was before the quiver rewrite.

--------------------------------------------------------------------------------
e62661cac4 | advil | 2020-12-06 14:41:03 -0500

Improve handling of some weapons checks
* on `v`, do weapons checks before targeting instead of after
* fix a bug with out-of-ammo launchers and `V` pointed our here:
  
https://www.reddit.com/r/dcss/comments/k7qypb/cannot_open_evoke_menu_if_i_have_a
_ranged_weapon/
* don't allow melee attacks via `v` with out-of-ammo launchers. This
  isn't because it is disallowed, you can still do it with bump attacks,
  but in testing allowing this seemed more confusing than not.
* standardize some checks of whether the player is wielding a launcher

--------------------------------------------------------------------------------
7af7f965e9 | Nicholas Feinberg | 2020-12-06 08:09:39 -0800

Display battlesphere damage
For some reason I thought this wasn't still a player spell?

--------------------------------------------------------------------------------
d31957873b | Nicholas Feinberg | 2020-12-06 08:06:39 -0800

Rephrase Ru stunned message again (Lici)
Punch it up a bit. Thanks to all who voted in the poll!

--------------------------------------------------------------------------------
165cf102c4 | advil | 2020-12-06 10:39:38 -0500

Darken out of range tile
The range distinction was extremely subtle on many dungeon backgrounds,
because tiles shows both range and los in the targeter. This makes the
range distinction much sharper, at the cost of making the oor vs oos
distinction fairly subtle. However, this isn't very important in the
targeter, so I think this is probably an improvement.

True confessions: I couldn't find a good free sprite editor that could
correctly handle the alpha channel in this file, so this is actually
just the old out_of_sight.png from before 010c0ec4c0e. I kept the
lighter version around in thee repo in case someone wants to play around
with this in more detail. However, we really should be doing this kind
of darkening programmatically.

--------------------------------------------------------------------------------
7355149c4d | Nicholas Feinberg | 2020-12-05 21:29:09 -0800

Fix the build
Oops!

--------------------------------------------------------------------------------
55990c9dca | Nicholas Feinberg | 2020-12-05 21:09:15 -0800

Make Hailstorm always hit
It effectively did anyway - its accuracy was accidentally made very
very high. The accuracy could be nerfed, but it seemed better to
simplify the spell.

--------------------------------------------------------------------------------
ebc406137e | Nicholas Feinberg | 2020-12-05 21:05:59 -0800

Rephrase Ru's 'stunned by your will'
To avoid confusion with the new willpower stat, use 'power' instead.
(Per "You now exude an aura of power that intimidates your foes".)
I'm not entirely happy with this - perhaps "by your aura" would be
better, or something else?

--------------------------------------------------------------------------------
2ee872d4bd | Nicholas Feinberg | 2020-12-05 21:03:58 -0800

Rename magic resistance to willpower
Magic resistance is a stat that covers a very wide
gamut of effects, from hexes (Slow, Confuse) to
vaguely hex-like things (Teleport Other, Siren Song)
to things that very clearly aren't hexes at all
(Disintegrate). Of course, it doesn't cover other
hexes, like Metabolic Englaciation and Dazzling Flash,
and it definitely doesn't cover all 'magic' - it
provides no resistance to a magical fireball or a
magic sword.

In short, it's a name that's both unspecific and
*too* specific. It actively misleads players. It has
negative value!

It's impractical and undesireable to change the game's
systems to match the literal meaning of 'magic resistance',
and there's no more precise term that matches the actual
function. You could say something like 'hex resistance',
but again, you run into the issue of hexes that aren't
resisted by hex resistance and non-hexes that are resisted
by hex resistance.

So, instead, let's rename magic resistance to 'willpower'.
This is a vaguer term, which means that it shouldn't
mislead players in the same way, but it's entertainingly
flavourful - it's fun to talk about Trog's influence
making you strong-willed or Ru's sacrifices making you
weak-willed. (Credit to Midn8 for "force of will"
inspiring this.)

One weird note about this name is that Disintegrate will
be willpower-resisted. I've added a cute little bit of
flavour to the item description as justification, and
that wand might not be long for this world in any case,
so it seems fine.

There's no save compat code here, so this is easy to
revert or tweak further as needed.

--------------------------------------------------------------------------------
1f2658d0d0 | Nicholas Feinberg | 2020-12-05 16:16:56 -0800

Reduce !attraction duration (dinky)
Formerly: 35-75 turns. Now: 20-40 turns.

--------------------------------------------------------------------------------
71edfde6b2 | Nicholas Feinberg | 2020-12-05 16:02:13 -0800

Attract monsters later
While under the effects of a potion of attraction, pull monsters toward
the player after their turn and before the player's next turn, rather than
the other way around. This should make the potion more powerful in various
circumstances.

--------------------------------------------------------------------------------
6b303dbc09 | Nicholas Feinberg | 2020-12-05 12:05:34 -0800

Display Mystic Blast damage
The spell still had 'accuracy' but never checked it.

--------------------------------------------------------------------------------
e22e22b3db | Nicholas Feinberg | 2020-12-05 12:04:15 -0800

Refactor zap_to_hit

--------------------------------------------------------------------------------
bc0167d404 | Nicholas Feinberg | 2020-12-05 11:39:01 -0800

Remove redundant origin spells
They should be initialized in zappy now.

--------------------------------------------------------------------------------
65c7e3695e | Nicholas Feinberg | 2020-12-05 11:26:38 -0800

DIsplay Vampiric Draining damage
Boy, what a weird formula.

--------------------------------------------------------------------------------
5781f4c211 | Nicholas Feinberg | 2020-12-05 11:18:48 -0800

Display Hailstorm damage and accuracy
Boy, this is very accurate...

--------------------------------------------------------------------------------
72e8e842c1 | Nicholas Feinberg | 2020-12-05 10:44:32 -0800

Show ball lightning damage

--------------------------------------------------------------------------------
a60655dfc3 | Nicholas Feinberg | 2020-12-05 10:39:02 -0800

Show Fulminant Prism damage

--------------------------------------------------------------------------------
ebe0143811 | Nicholas Feinberg | 2020-12-05 10:20:09 -0800

Show Searing Ray damage & unbrace

--------------------------------------------------------------------------------
789247db7f | Nicholas Feinberg | 2020-12-05 09:39:13 -0800

Show Freeze and Absolute Zero damage

--------------------------------------------------------------------------------
5d12d2fb9f | Nicholas Feinberg | 2020-12-05 09:33:07 -0800

Show Shatter and Fire Storm damage

--------------------------------------------------------------------------------
026c722f6f | Nicholas Feinberg | 2020-12-05 09:10:04 -0800

Display Yara's Unravelling damage
Very unsure whether this will cause bugs or not. Life is exciting!

--------------------------------------------------------------------------------
7deb57bc63 | Nicholas Feinberg | 2020-12-05 09:04:34 -0800

Display Irradiate damage

--------------------------------------------------------------------------------
c9bf407737 | Nicholas Feinberg | 2020-12-05 08:54:34 -0800

Describe Ignition damage

--------------------------------------------------------------------------------
82ca2f83e3 | Nicholas Feinberg | 2020-12-05 08:40:00 -0800

Describe Starburst damage & accuracy

--------------------------------------------------------------------------------
8c6fb62fe6 | Nicholas Feinberg | 2020-12-05 08:34:48 -0800

Tweak Lightning Bolt description
RIP "other similar bolts".

--------------------------------------------------------------------------------
488e41826d | Nicholas Feinberg | 2020-12-05 08:30:42 -0800

Show player spell accuracy
As + pips, since a raw accuracy number means very little. Ranges
from about 2 pips for some 0-power spells to 7 pips for max-power LCS.
Should be a nice complement to the damage numbers.

--------------------------------------------------------------------------------
0fe3eaa9ac | Nicholas Feinberg | 2020-12-04 22:35:34 -0800

Remove an accidental newline
Classic copy-paste error.

--------------------------------------------------------------------------------
392c82fb87 | Nicholas Feinberg | 2020-12-04 21:27:19 -0800

Show player spell damage
In spell descriptions, similar to monster spell damage, weapon damage,
etc.

--------------------------------------------------------------------------------
f74a8dc463 | advil | 2020-12-04 21:31:13 -0500

Don't recalculate quiver on autotravel, again

--------------------------------------------------------------------------------
1a1fd2e980 | advil | 2020-12-04 18:14:31 -0500

Initialize sockaddr_un before initial recvfrom
This is a weird one. Under some circumstances that I cannot fully
determine, the socket address in srcaddr after the recvfrom call is not
getting 0-terminated, leading to an invalid pathname (with garbage
characters after the end of the actual file name) and ENOENT on the
first sendto immediately after the attach message. This leaves the crawl
process with no listening clients; the way this appears from the user's
end is that webtiles just hangs on the loading screen. Memsetting the
structure before recvfrom fixes it, and is good practice anyways.

*However*, this seems to be Tornado version specific: I get this issue
almost deterministically on Tornado 6.1.0, often on Tornado 6.0.4, and
sporadically on 6.0.3 (but I have seen it happen). This makes me suspect
that there is some kind of race condition where the socket may not be
set up on the client end quite in time for the recvfrom call, and this
weird behavior is just a symptom of the race condition. However, it
isn't at all obvious why this could happen on the python side, and
there's no async code I can detect that would be interfering. So I'm not
really sure what is going on here.

It's also possible this issue, or at least the particular symptom I'm
fixing here, is mac specific, since I think we would have heard about
this if one of the tornado 6 servers were having this problem.

--------------------------------------------------------------------------------
d3b5134375 | advil | 2020-12-04 11:43:55 -0500

Forward compatibility for tornado 6.1.0
This gets it to run. (There are still some issues that I haven't fully
tracked down.)

--------------------------------------------------------------------------------
f0e3ce9185 | advil | 2020-12-04 11:03:32 -0500

Simplify some direction targeter messaging
As far as I can tell, this extra messaging as a side-effect of `select`
is currently redundant, just leading to extra duplicates of whatever
error message is also printed in `print_target_description`. Possibly
this wasn't true in the past before the direction chooser was
widgetified?

--------------------------------------------------------------------------------
f98bc5018b | advil | 2020-12-04 10:21:44 -0500

Improve tracer behavior for melee targeting (dinky)
Two fixes:
* don't show tracers for regular melee weapons
* for reaching, don't show the tracer when the attack point is beyond
  range. I'm not sure if this was intentional but right now to me it
  seems more confusing than not.

--------------------------------------------------------------------------------
5dabc5fedb | advil | 2020-12-04 10:21:44 -0500

Let `launcher_autoquiver` affect evokable artefacts
And make them autoquiver their effect like launchers.  This is a
slightly different case since they can't be evoked via `v` (any more)
but this behavior makes them more consistent and predictable at least.
These items, when wielded, can still always be evoked with `V` even if
autoquivering is off.

--------------------------------------------------------------------------------
e3d1176a8d | advil | 2020-12-04 10:21:44 -0500

Make some messaging more consistent (dinky)

--------------------------------------------------------------------------------
1d9d62bb61 | Nicholas Feinberg | 2020-12-03 17:11:26 -0800

Remove entropy weavers' arms
The weapons, that is. It's not important to their design and the tiles
didn't support them.

--------------------------------------------------------------------------------
9442c5bf0f | Nicholas Feinberg | 2020-12-03 17:09:47 -0800

Don't drain with "invisibility
Fix sprint 4, sort of.

--------------------------------------------------------------------------------
2c58977ddd | advil | 2020-12-03 17:27:04 -0500

Re-simplify quivering effect of wielding a launcher
b220303a8 tried to improve autoquivering on wield but instead (for most
people) just made it more confusing.  After this commit, by default
wielding a launcher will always change the main quiver as well,
regardless of what is quivered. This works reasonably well with the
other change in b220303a8 that switches to the last used quiver on
quiver invalidation, so switching away from the launcher (except for
slings+stones) usually does something intuitive. This behavior (in
contrast to the behavior before b220303a8) can now be disabled entirely;
if you set `launcher_autoquiver = false` wielding a launcher will never
set the quiver. This will be useful at least for characters that are
using both launchers and spells.

--------------------------------------------------------------------------------
d330659c95 | advil | 2020-12-03 13:58:36 -0500

Add a quiver swap command
This new command swaps between the current quiver action and the most
recent valid quiver action. Default bound to `]`.

Since quiver actions don't have stable lettering, it's a bit hard to see
exactly how to do this, but I wonder if something more controllable
along the lines of `'` for weapons might eventually be in order?

--------------------------------------------------------------------------------
64875d0529 | advil | 2020-12-03 09:55:25 -0500

Do some caching for spell quiver enabled checks
For beams (and especially explosions) this is a pretty heavy call,
because it checks if there are enemies in range, and it isn't ideal that
it gets called every time the quiver gets redrawn; I've already fixed
some cases where this call was leading to noticeable slowdowns.
Moreover, this call has been revealing a lot of cases where a redraw (or
webtiles _send_player) happens as a side effect at a time where there is
some invalid state for calculating nearby enemies, causing crashes. I've
been able to fix up some of these on a case by case basis, but others I
haven't even been able to replicate (e.g.
https://webzook.net/soup/morgue/trunk/eld/crash-eld-20201128-170107.txt,
which seems to involve a more() triggered in the middle of monster_die
on vehumet MP gain, where there is a partially dead monster at that
point in the call, triggered by some kind of complex fireball+inner
flame scenario).

So, for both of these reasons, this commit changes things so that the
spell quivered enabled status is only updated once per input cycle. This
could be extended to other quiver actions needed but right now as far as
I know (beam) spells are the ones that are causing issues.

--------------------------------------------------------------------------------
d078a86f14 | advil | 2020-12-02 10:51:20 -0500

Better handle invalid lockfiles
After CBR2 lost power the other day, it left a bunch of empty lockfiles,
which aren't being handled very well. This will simply clear a lockfile
if it is empty or otherwise contains something not convertable to an
int. (The case where it contains a stale process number is already
handled.)

--------------------------------------------------------------------------------
4c2be1ac84 | advil | 2020-12-02 10:15:08 -0500

CLI for setting password reset tokens
I had qualms about enabling the admin panel version of this on a server
with a very long admin list, so in lieu of adding a second DGL
permissions tier (for now) I'm adding a CLI version of this to simplify
password resets a little bit. Not yet tested in a chroot setting.

This change enables servers accepting reset tokens unconditionally; but
unless one of the other two options is enabled they can still only be
set via the command line.

--------------------------------------------------------------------------------
69f9a3b9e2 | advil | 2020-12-01 20:48:56 -0500

Set you.on_current_level to false during load
This has the effect of suppressing certain UI things, and keeping
quivers from crashing in case UI updates during load force webtiles to
call send_player early. This was in particular happening for skill menu
on load cases.

I've also adjusted where the skill menu is called from in these early
game cases; this didn't prevent the crash or anything but it seemed
wildly odd to open the skill menu when the game is in the middle of
restoring.

--------------------------------------------------------------------------------
701b36d813 | advil | 2020-12-01 18:23:03 -0500

Add an admin panel tool for password resets
For servers that can't set up password resets by email, this allows
admins to manually generate reset tokens. I implemented it because
handling manual password resets on CAO is extremely annoying, but
setting up the email mode is unlikely to happen.

This feature is very much off by default because it's a drastic increase
in privileges for the way admin users are set up on many servers --
right now, the admin flag is mainly for identifying who can do rebuilds
/ use wizmode, i.e. almost nothing that can affect other users. So I
don't think server owners will obviously want to enable a way of
changing arbitrary passwords (if you have the reset link, you can change
the password) for anyone who can rebuild. Really this calls for multiple
tiers of permissions, but that's pretty involved to figure out how to
do. TBD.

--------------------------------------------------------------------------------
9b92081034 | advil | 2020-12-01 16:13:55 -0500

Prevent unnecessary redraws during autotravel (Goratrix)
This gets quivers and a few other things that shouldn't be updated in
fast autotravel modes. (In testing this I noticed that console, but not
tiles, still prints messages with these modes, should maybe be fixed
too.)

--------------------------------------------------------------------------------
f5feefdc77 | advil | 2020-12-01 15:47:11 -0500

Exclude userdb.py from lint

--------------------------------------------------------------------------------
fcd0102f59 | advil | 2020-12-01 15:38:56 -0500

Better document a tiles option (u/Social_Knight)
This tab names are set in a slightly odd way so it's possible I missed a
few here.

--------------------------------------------------------------------------------
1ef1181187 | advil | 2020-12-01 15:32:07 -0500

Add webtiles password change
I'm not sure if there's some good reason that I'm missing why this was
never implemented, but here it is. Previously the player needed to log
in to ssh to do this on most servers, and it may even have required an
admin on others.

--------------------------------------------------------------------------------
f3041fb45f | advil | 2020-11-29 15:05:57 -0500

Show quiver for felids in webtiles

--------------------------------------------------------------------------------
201e65fd49 | advil | 2020-11-29 13:27:30 -0500

Improve flavor of explosions after death

--------------------------------------------------------------------------------
f9a3951816 | Nicholas Feinberg | 2020-11-29 08:57:11 -0800

Shift nrook's guardian serpents deeper
D:9 is a bit earlier for guardian serpents. So is d:11, really, but
what's life without a *little* excitement?

nrook_guardian_serpent_double might be too spoilery to exist (unrelatedly)
but I don't have the heart to change it. (And as spoilery vaults go,
the trick in this one is pretty obvious.)

--------------------------------------------------------------------------------
f919d8e910 | Nicholas Feinberg | 2020-11-29 08:57:11 -0800

Adjust worldbinder Swamp set (12391)
Since insubstantial wasps no longer spawn in Swamp, replace them
with bog bodies. (We don't want any of the really nasty creatures in
this set!)

Planerend set still seems fine.

--------------------------------------------------------------------------------
1642dc5553 | Nicholas Feinberg | 2020-11-29 08:57:11 -0800

Make evokable invisibility drain skills
Evocable invisibility is a very powerful and potentially quite fun
effect. It has a correspondingly high Evocations skill requirement
to remove its failure chance.

However, that failure chance rarely mattered in practice. There was
no real cost to repeatedly evoking invisibility at 70% failure while
around the corner from enemies. That was strong, but not particularly
fun.

Evoking invisibility now applies moderate skill drain to the player,
regardless of whether the evocation succeeds. This both discourages
high-failure-rate evocation and makes the ability *slightly* weaker in
general. (Of course, as Ru shows, one mustn't overestimate the impact
of drain!)

The current drain value is a first pass - it should be adjusted as
appropriate per player experience.

--------------------------------------------------------------------------------
f18ecd8a5b | advil | 2020-11-29 11:54:56 -0500

Support backslash notation in rc keybinds
This is handled correctly in macros.txt, but there was no way to do this
that I can identify in rc files, making it impossible to bind keys like
tab or shift-tab. Now you can type things like:

    bindkey = [\{9}] CMD_AUTOFIGHT_NOMOVE

directly into an rc file.

--------------------------------------------------------------------------------
76694b35de | advil | 2020-11-28 19:35:02 -0500

Prevent most quiver autofilling
This commit effectively restores oldquiver behavior: running out of ammo
will autoquiver other ammo using the settings in fire_order, but nothing
else. The only other action type that can run out is wands, and these
result in an empty quiver. Dropping items will also lead to an empty
quiver, which I'm less sure of.

This commit is likely not the last word on quiver autofilling, but it
does solve one of the more annoying sets of interactions, which is when
running out of ammo and hitting autofire triggers something extremely
different, such as invoking berserk.

Because wands can no longer be accidentally triggered by running out of
ammo (see f7e0b5f77) I've added them back in to the cycle order.

--------------------------------------------------------------------------------
b220303a8a | advil | 2020-11-28 17:52:46 -0500

Tweak quiver on wield behavior
* If the player wields a launcher, and the current quivered action
  involves ammo, the main quiver will switch to the appropriate ammo for
  the launcher (the last used of the relevant type). This is an exact
  match for 0.25 behavior. I'm not sure whether it's really the best in
  the end, but it's at least consistent.
* If the player wields a launcher, and the current quivered action is
  valid and non-ammo, no autoswitch will be triggered. The player can
  still fire the launcher via tab/`v`. This smooths out a lot of
  switching cases that were annoying (e.g. spell+launcher+melee combos).
* If the player wields a non-launcher that results in an invalid quiver
  action, instead of emptying the quiver, the game will try to find a valid
  recently used action. This should cover at least some use cases I've
  discussed with players, but needs some testing in practice.

All this is slightly more complicated that what was happening before, so
it may need more tweaking. In principle I could add options for some of
this as well, but I need to have a better sense of the use cases.

--------------------------------------------------------------------------------
52035dc9a5 | advil | 2020-11-28 11:20:35 -0500

Guard against crashes in god_hates_killing
Also, standardize some indentation.

--------------------------------------------------------------------------------
a0cc1ef5f6 | Kate | 2020-11-28 04:26:34 +0000

Improve stairs documentation

--------------------------------------------------------------------------------
5126ae9156 | Kate | 2020-11-28 04:19:17 +0000

Remove some semicolons

--------------------------------------------------------------------------------
687c0233df | Midn8 | 2020-11-28 04:19:08 +0000

Fix "The Exile" Description (#1617)
The card is no longer capable of banishing the user (and hasn't been for quite 
some time).
--------------------------------------------------------------------------------
9485abf61d | advil | 2020-11-27 17:04:27 -0500

Fix autofire targeted abilities with no enemies (yesno)
This change prevents the yesno (ha) dialogue from happening when the
direction chooser is opened non-interactively, simply failing silently.
This is immediately targeting some abilities that were targeted but use
spell_direction (e.g. naga spit), we'll see if it has bigger side
effects. Most spells should handle this before getting to the direction
chooser.

--------------------------------------------------------------------------------
36fc42b6d5 | advil | 2020-11-27 17:04:09 -0500

Standard indentation in ability.cc

--------------------------------------------------------------------------------
2bc0b21477 | advil | 2020-11-27 15:02:40 -0500

Add fine-grained rc control over static targeters
I've gotten a variety of feedback on this now; some people find them
extremely useful, some people find them confusing or unnecessary, and
some people find them useful only for certain spells. This new option
lets you force a targeter on named spells when casting, allowing full
customization. The default list is relatively short and includes only
a few of the more unique targeters; there are some others that could be
useful here (e.g. raise dead spells that show corpses, etc), but I'll
wait on more feedback to see how this goes. This supports the usual "+="
and "=" syntax for list options.

--------------------------------------------------------------------------------
49005422be | advil | 2020-11-27 13:10:25 -0500

Don't show static targeters for `Z`
People seemed confused by this, so I'm removing them for now. I can't
tell whether this confusion is because of change or intrinsic confusion.
It's true that many static targeters are extremely boring (e.g.
self-targeted ones and summon ones that just show range 2). I'm leaving
them for the fire interface, because even though I've also seen this
described as "weird" it's pretty important for consistency, and if you
want to skip the targeter you can just use `p` or shift-tab in this
mode. (Also, I do really think these targeters are extremely useful for
new players.)

What might be best is if z/Z both had a toggle that let you choose to
see the static targeter if you want to check range.

--------------------------------------------------------------------------------
ccb988d4e7 | Nicholas Feinberg | 2020-11-27 07:57:31 -0800

Give meliai a weapon offset

--------------------------------------------------------------------------------
d41f7fe8a7 | Goratrix | 2020-11-27 07:57:31 -0800

Give atropa and datura darts distinct color tiles
Currently both atropa and datura are using default branded dart tile,
which is dark blue. This gives them distinct colors, orange for datura
and lighter blue for atropa. The default branded tile (not used) is
changed to grey/silver instead of blue.

--------------------------------------------------------------------------------
f7e0b5f775 | advil | 2020-11-26 21:58:41 -0500

Don't include wands in quiver autofill/cycling
This seems like it should eventually be configurable, but remove this
for now: it seems like it makes it too easy to waste wand charges.
(Possibly applies to misc evokers, abilities, as well?)

--------------------------------------------------------------------------------
1c1f9fb145 | advil | 2020-11-26 20:07:56 -0500

Let throwing ammo be quivered with a launcher

--------------------------------------------------------------------------------
3f418897a6 | advil | 2020-11-26 20:03:24 -0500

Fix a build issue for cao
`set::emplace` is not available on this compiler, apparently.

--------------------------------------------------------------------------------
67df3f2acb | Nikolai Lavsky | 2020-11-26 12:33:30 -0800

Colourize beam damage descriptions in WebTiles
As a followup to 930a2b7a, this commit colourizes beam damage
descriptions on the xv screen.

--------------------------------------------------------------------------------
5c0f344105 | advil | 2020-11-26 13:19:17 -0500

Show inert evokers in `V` menu (Lici)
This restores previous behavior, and marks inert evokers as dark grey in
inventory menus in general (basically so that they'll show up that way
in `V`).  Not sure if there are other things that could be marked dark
grey following this, or if there's a convenient way to do that. But this
makes the appearance of `V` match the quiver menu.

--------------------------------------------------------------------------------
3624241d3c | advil | 2020-11-26 12:57:01 -0500

Remove a debug message

--------------------------------------------------------------------------------
35fe432003 | advil | 2020-11-26 12:54:23 -0500

Fix a bunch of inscription logic errors
These were keeping every ammo not inscribed with =F from getting
quivered

--------------------------------------------------------------------------------
9503ff51b6 | advil | 2020-11-26 12:45:51 -0500

Fix cleave+reaching
I had assumed this wasn't possible, but it is via Xom. This fix
prioritizes the reaching targeter over the cleave targeter.

--------------------------------------------------------------------------------
bf3a5c7d0a | advil | 2020-11-26 11:04:28 -0500

Generate a quickstart.txt
23cac7494c converted the quickstart guide to markdown, but at the time
of merge I don't think anyone fully realized that this was loaded
in-game. This fact has caused a bunch of havoc.

This commit generates a .txt by simply copying the md file, which should
eventually be substituted for better rendering. Two reasons for doing
this: (i) for in-game use, a .txt version would be better since we don't
have any markdown rendering in-game, and (ii) on some servers (perhaps
just CWZ) the .md file is not getting copied into the game data
directory, which is causing a ton of crashes. This could be fixed on the
server, but given (i) it also seems reasonable to fix it on our end.

--------------------------------------------------------------------------------
326f72de0d | advil | 2020-11-25 22:48:50 -0500

Fix an autofight / throw interaction (vt)
This simplifies this code path to only use the targeting in throw_it,
rather than adding an extra layer of targeting around
CMD_THROW_ITEM_NO_QUIVER. This layer was here for historical reasons and
everything seems to work fine without it. The specific bug this is
targeting is that because the action treated this as a case of
non-interactive targeting it would apply the autofight threshold.

This commit also fixes a bug where you could use `f` to fire ammo into
walls with portal projectile, probably causing a crash.

--------------------------------------------------------------------------------
a1d07f6d9d | advil | 2020-11-25 22:48:50 -0500

Improve handling of =f inscriptions
This commit allows =f to work beyond ammo, and still shows =f items in
the `Q`uiver menu (following previous behavior). Some cases of +f still
don't work.

--------------------------------------------------------------------------------
c4484e65ce | Nicholas Feinberg | 2020-11-25 19:04:36 -0800

Ban missed net farming (Misc)
I'd forgotten about the case where nets miss you. Oops!

--------------------------------------------------------------------------------
ca8e991141 | advil | 2020-11-25 20:30:28 -0500

Fix a potential crash while joining ru
This is a quick fix that I'm not sure is ideal, but what seems to be
happening is that your_talents can be triggered as a side effect of
messaging while joining a god, which then trips a Ru ASSERT before the
god is fully set up. Changing the order of calls in join_religion might
be better, but that sequence looks very delicate.

--------------------------------------------------------------------------------
1b567f25a9 | advil | 2020-11-25 18:54:22 -0500

Don't mark newgame spells as useless
The player is not yet placed when they receive their initial spells, so
spell_uselessness_reason needs to be able to work in that case.

--------------------------------------------------------------------------------
43279f1ce9 | advil | 2020-11-25 16:16:20 -0500

Fix !f inscription checks (vt)
This moves inscription checks to triggering; the earlier implementation
was only tested on a much older version of newquivers. This commit also
lets !f inscriptions work on any item that can be fired from quivers.

--------------------------------------------------------------------------------
62de122f19 | advil | 2020-11-25 13:59:00 -0500

More spell quivering fixes, this time for excursions
81e999faa9 was specifically triggered by checking spell uselessness of a
quivered spell while doing levelgen. Crashes can also happen if this is
checked during an excursion. Before, none of this code would have a way
of being called, but when a spell is quivered on newquivers, this code
is used to figure out whether to gray out the spell, so it is triggered
by ui redraws as well as sending player info in webtiles. I've added
another sanity check to `spell_no_hostile_in_range`, but also just
headed this off at the outset in `spell_uselessness_reason`.

--------------------------------------------------------------------------------
81e999faa9 | advil | 2020-11-25 12:53:58 -0500

Don't crash on a spell uselessness check when entering zigs
I'm still not sure of why exactly this is called when the player is out
of bounds while entering zigs, but it is, so handle this case a bit more
gracefully in general.

--------------------------------------------------------------------------------
0a1e5404e9 | advil | 2020-11-25 09:11:01 -0500

Handle randomization correctly in absolute zero targeter
Before, I had assumed that this wasn't randomized. However, it is,
inside distance_iterator. So, this commit changes the targeter to show
AFF_MAYBE on the closest targets when there is more than one at the same
distance. The visual difference is a bit subtle, so it may be that this
will be confusing, but this still seems the best way to handle it.

--------------------------------------------------------------------------------
a5061f1e94 | advil | 2020-11-25 09:11:01 -0500

Lua api for targeted fire of spells, items, abilities
Before, these needed to be triggered by sending keys; this change uses
the actions API to directly trigger actions and supply a target where
necessary.

This code is not extremely well tested...

--------------------------------------------------------------------------------
c7d50104ff | advil | 2020-11-25 09:11:01 -0500

Simplify and document the actions/quiver API somewhat
Mixing shared_ptr and references was too confusing, with some awkward
pitfalls. Given that the whole point of action_cycler is to ensure
non-null, this commit just switches things over to use only shared_ptrs,
and makes explicit this (and cases where nullptr may be returned) in the
doc comments.

Also, a few other tweaks/fixes that I noticed along the way.

--------------------------------------------------------------------------------
568033eebc | advil | 2020-11-25 09:11:01 -0500

Name some special numbers in autofight (PleasingFungus)

--------------------------------------------------------------------------------
6b3f3ad2d2 | advil | 2020-11-25 09:11:01 -0500

Refactor and consolidate melee attacks
This commit refactors melee attacks, including CMD_ATTACK_... and
reaching attacks, into a single action type. This action supports
targeting not just for reaching attacks but for regular melee attacks,
leading to a more uniform behavior (as well as allowing you to examine
enemies directly from an attack interface for all attack types). This
class supports all the bells and whistles of other action commands, e.g.
it will do noninteractive attacking if a target is pre-chosen. It's
currently not used in a quiver at all, but created on the fly as part of
an attack.

For backwards compatibility I have left the behavior of
CMD_EVOKE_WIELDED intact, but `v` is now bound to a new
CMD_PRIMARY_ATTACK that activates targeting for any wielded weapon, be
it regular, reaching, or ranged. Historically, there were various types
of things triggered with this key while wielded, but more recently `v`
is used almost entirely for reaching except for some special cases: two
artefacts (staff of olgreb and staff of dispater) as well as unusual
techniques like wielding a wand. Since all of these special cases now
can be accomplished via the quiver, it doesn't seem so necessary to keep
to the old scheme as a default. There's still unfortunately a bit of
scaffolding in the evoke code because of this compatibility issue, but
it's at least less intrusive.

Additional notes:
* targeter_cleave is upgraded to support changing aim, and used for
  `v` on axes.
* Rift targeting is simplified and now correctly shows range.
* Bump attacking is unchanged, i.e. doesn't use this code path.
* If someone's really bothered by having to quiver staff of olgreb's
  OTR ability to trigger it, they can rebind `v` back to
  CMD_EVOKE_WIELDED. `V` will also continue to work.
* It is still possible to use `V` to evoke a reaching weapon.

--------------------------------------------------------------------------------
ab14b95593 | advil | 2020-11-25 09:11:01 -0500

Change/improve some default quiver filling cases
A bunch of issues that showed up in testing

* use invalid, rather than just empty, quivers for initialization cases.
  This autofills early game quivers more appropriately.
* on memorising a spell, fill an invalid quiver.
* when wielding a launcher, if that launcher has ammo fill the main
  quiver unconditionally. Previously I had only done this on an invalid
  quiver, but on testing I'm not sure that this would be the best
  general behavior. (And in tutorial 2, it definitely complicates things
  in a case that would be confusing for newer players.) The main case
  where this could be annoying is if a player wants to swap between
  ranged and melee weapons, but keep a spell or ability quivered.

--------------------------------------------------------------------------------
1040668b95 | advil | 2020-11-25 09:11:01 -0500

Documentation, tutorial updates

--------------------------------------------------------------------------------
69e7df3edd | advil | 2020-11-25 09:11:01 -0500

Refactor and improve some autofight checks
This commit slightly restructures how autofight is called, cleaning up
the code in main.cc and moving the hp/mp checks at least partly into
quiver::action (though still using clua bindings to perform the checks).
The main substantive change here is that the `automagic_stop` option now
works for quivered actions that consume mp similarly to how it worked on
old automagic.

--------------------------------------------------------------------------------
1112c698d6 | advil | 2020-11-25 09:11:01 -0500

Change the behavior of the CLUA_BINDINGS #define
This commit changes things so that what gets compiled out by removing
this define is only the ability to run clua from the rc file and macros.
Default clua bindings in dat/clua are called, as are all hooks etc.
(Most will be unable to do anything, but this would allow someone to set
a default value for any hooks in dat/clua code.)

*Motivation.* The main use case for this that I can think of is
security: a security-conscious server admin may prefer their users to
not be able to run clua in their rc file. However, this use case has
been severely broken for some time, because the following were also
disabled by undefining this variable: autofight, stash tracker
annotation, delay interruption, kill annotation, and a few other minor
things.  Realistically no one is going to want to play modern crawl
without at least the first two of these.  Because of the (potential)
security application, I don't want to remove it entirely, but if it is
going to be usable for that, it needed some work.

In addition, the existence of this #define required anyone implementing
a clua binding to get the preprocessor setup right, and if they really
wanted to do that, to test on two builds (one of which required editing
the Makefile). Nearly every dev comment I can find about CLUA_BINDINGS
going back to 2011 is basically asking why it exists. So this commit
is an attempt to provide some value.

One awkwardness: there is a bunch of lua code in
dat/defaults/autopickup_exceptions.txt. Because this is treated as an rc
file, it will error (and not work) on a non-user-clua build. This is all
a bit hypothetical now but possibly it would be better for this code to
be implemented in a dat/clua file rather than a default rc include.

--------------------------------------------------------------------------------
4c303a47fc | advil | 2020-11-25 09:11:01 -0500

Don't show item letters for actions in quiver
I had these in as an extension of previous behavior for ammo, but in
practice I've found the letters more confusing than helpful. If people
do want these, it could go back in.

--------------------------------------------------------------------------------
aeda7b1d4a | advil | 2020-11-25 09:11:01 -0500

add CMD_AUTOFIRE to `p`
I'm not sure `p` is the best choice, and it really doesn't stand for
anything relevant, but there was some consensus that people wanted a
thing besides shift-tab. So try this for now.

--------------------------------------------------------------------------------
562f6ed73d | advil | 2020-11-25 09:11:01 -0500

Fix a tag upgrade issue

--------------------------------------------------------------------------------
281963b6d2 | advil | 2020-11-25 09:11:01 -0500

Let staff of olgreb use the static targeter when needed

--------------------------------------------------------------------------------
bb0a9072ea | advil | 2020-11-25 09:11:01 -0500

First-pass implementation for quivering abilities
There's a lot of idiosyncracy in the ability list, but this commit gets
the main points and works for everything I've tested directly. Probably
further tweaking is required for some special cases, and this may
require some iteration with actual player testing to really shake out
the use cases. (And the ability code is a mess, a lot more stuff could
be dataified...)

Main TODO: non-targeted abilities use the "untargeted cast" interface
when [f]iring from the quiver, but several of these would benefit from a
static targeter. (For the ones that affect the player, which is most of
them, there's not much difference, but these could still use the
self-targeted static targeter when firing.)

--------------------------------------------------------------------------------
f0f3f8f090 | advil | 2020-11-25 09:11:01 -0500

Update some options text for quivering-related changes

--------------------------------------------------------------------------------
351bd4327b | advil | 2020-11-25 09:11:01 -0500

Allow quivering evokable unrands
There are only three of these, and two are not common at all, but it's
actually pretty useful for olgreb. Because of the unrand API, this
implementation is a bit hacky, but with only a few items I'm not
currently excited about writing a more general API for some of this
stuff.

--------------------------------------------------------------------------------
1bb892847f | advil | 2020-11-25 09:11:01 -0500

Implement target preselection for artefacts
There is only one artefact that currently needs this, the staff of
dispater. This finishes out the API for allowing target preselection for
everything that can be triggered via `evoke_item`.

--------------------------------------------------------------------------------
1f324f914e | advil | 2020-11-25 09:11:01 -0500

Implement quivering/firing misc evocables
I'm not entirely sure how useful this will be, because you usually want
to intersperse firing these with doing other things that also might be
in the quiver. But, it is straightforward to implement, and the targeted
ones needed to handle target selection anyways.

--------------------------------------------------------------------------------
bee9178c8b | advil | 2020-11-25 09:11:01 -0500

Some tweaks around quiver mp usage
This is mostly scaffolding; to get this to work well needs another
refactor I think.

--------------------------------------------------------------------------------
44f2c8cc77 | advil | 2020-11-25 09:11:01 -0500

Fix a bunch of shadow warnings

--------------------------------------------------------------------------------
dfb12c3783 | advil | 2020-11-25 09:11:01 -0500

Fix some lingering grd instances, other issues
(following a rebase against master)

--------------------------------------------------------------------------------
bde5eff12d | advil | 2020-11-25 09:11:01 -0500

Tweak autofight_throw behavior and clarify comments
This is an incremental improvement that more closely matches previous
behavior for this option; it lets hit_closest move the player with a
disabled quiver. However, I do think that many autofight options need a
rethink for generalized quivering that I haven't yet done, so there may
be further changes. (One obvious issue: autofight_throw=true and
hit_closest_nomove have pretty weird behavior if what is quivered is not
an attack.)

Holding off on full documentation updates until the fate of these
options is more settled.

--------------------------------------------------------------------------------
361857bee0 | advil | 2020-11-25 09:11:01 -0500

Improve target selection for explosions/clouds
For spells like fireball, this lets shift-tab use indirect targeting at
the edge of range. (Similar to how automagic behaved.)

--------------------------------------------------------------------------------
71d5f92254 | advil | 2020-11-25 09:11:00 -0500

Improve messaging for confused ammo firing
This prints an error message, similar to spell uselessness reasons.

--------------------------------------------------------------------------------
4502bb1e84 | advil | 2020-11-25 09:11:00 -0500

Refactor a few casting checks
Because MP is decremented before your_spells is called for regular
casting, the error messaging in the targeter was showing low MP messages
in wrong cases. This handles some casting-general checks differently
than other uselessness checks so that they can be consistently performed
in cast_a_spell, and therefore ignored within your_spells. It also
removes one existing messy unwind case that worked around this. The
situation is still a bit of a mess though.

--------------------------------------------------------------------------------
aae50c702f | advil | 2020-11-25 09:11:00 -0500

Fix temp on several uselessness checks
Also switch capitalization so it conforms to everything else.

--------------------------------------------------------------------------------
19a61ae6e1 | advil | 2020-11-25 09:11:00 -0500

Add a simplified uselessness check for passwall
Doing the real thing is not practical, but we can at least check if the
player is adjacent to something that could be passed.

--------------------------------------------------------------------------------
6056049701 | advil | 2020-11-25 09:11:00 -0500

Improve uselessness checks for corpse rot
Success was previously only checked after the fact; this refactors
things so that the spell is correctly marked as currently useless if
there are no nearby corpses. (It might be nice to also mark corpses that
would be affected in the targeter, but I won't get to that right now.)

--------------------------------------------------------------------------------
798577c133 | advil | 2020-11-25 09:11:00 -0500

Clean up some necromancy preconditions
This adds actual uselessness checks for animate skeleton, animate dead,
and simulacrum, as well as improves code reuse for their static
targeters.

This commit also changes the behavior of static targeters so that they
always start on the player. Not sure this is generally right...

--------------------------------------------------------------------------------
75ba72c780 | advil | 2020-11-25 09:11:00 -0500

Remove some debug code

--------------------------------------------------------------------------------
b1a65e9133 | advil | 2020-11-25 09:11:00 -0500

Simplify launching?
This gives launchers their own quiver that stably retains the last
quivered ammo for that launcher, so that the main quiver slot can hold
something else.

tldr: tab(/v) always attacks with the main weapon if possible (/aims
with the main weapon for non-melee). Shift-tab(/f) always fires the
quivered action (/aims the quivered action). You still use the main
quiver to change the launcher ammo where relevant. (Which is pretty much
only for slings.)

Associated changes in detail:

* tab always fires a wielded launcher (as long as its quiver is not
  empty). After this change, tab is much closer to a "primary attack"
  button triggering whatever is wielded, and you have to work at it to
  get tab (as opposed to shift-tab) to fire the main quiver. (This can
  still happen if you wield a non-weapon, probably, or by messing with
  autofight settings.)
* launchers can be fired using v even if the main quiver has something
  else, similar to reaching weapons. This is kind of odd, but doing
  this as another case of CMD_EVOKE_WIELDED allowed me to reuse a
  bunch of code and also allowed me not to complicate the lua interface
  beyond what was already there for reaching.
* quivering relevant ammo in the main quiver sets it for the launcher.
  This currently the only way to change the launcher quiver. Quivering
  nothing also force-clears the launcher quiver.
* wielding a launcher autoswitches only the launcher quiver to the
  correct ammo. (Vestiges of old quiver code still track what was last
  used and select that, but this matters only for slings. More of the
  old quiver code has been removed.)
* if the quivers are different, the launcher ammo is displayed to the
  right of the wielded weapon name (potentially overwriting some of it).
  If they are the same, only the main quiver version is shown. (In this
  case, tab and shift-tab have identical results -- but shift-tab will
  only fire a launcher if that launcher's ammo is showing in the main
  quiver.)

This is, perhaps, a step to having a full "primary action" slot
(associated by default with whatever is wielded, but where anything
could be quivered) and a secondary action slot corresponding to the
current regular quiver.

--------------------------------------------------------------------------------
f6c6f4e90c | advil | 2020-11-25 09:11:00 -0500

Fix various issues with firing disabled spells
This fixes an initialization bug that affected quiver cycling with
disabled spells, and smooths out a number of UI issues:

* For spells that can trigger the targeter while disabled, it generally
  prints the spell_uselessness_reason error message in the initial
  targeting prompt, which makes the situation much clearer. (There are
  still many spells that can't trigger the targeter while disabled under
  at least some circumstances, e.g. sandblast with 0 stones.)
* Currently useless spells are shown in dark grey in the targeter.
* Currently useless spells never try to find a default target if they
  can get to the targeter. (Instead the cursor starts positioned on the
  player.)
* When autofiring disabled spells, it now prints the disabling reason
  rather than the default autofight error (which is sometimes fairly
  underinformative).

--------------------------------------------------------------------------------
7216dc4718 | advil | 2020-11-25 09:11:00 -0500

Don't wipe out top_prompt in UIDirectionChooserView
This looks like it would have handled fire_target_behaviour correctly,
but it always cleared the prompt for the stock behaviour object that is
used in places besides throwing.

--------------------------------------------------------------------------------
c796653dd0 | advil | 2020-11-25 09:11:00 -0500

Tweak static targeting for a bunch of self-targeted spells
This could possibly be simplified by adding a spflag for these? I
decided against reusing selfench for all these cases because its meaning
is a bit overloaded. Though I am not entirely sure why transmutation
spells that are self-targeted are never marked as selfench.

--------------------------------------------------------------------------------
955d01e223 | advil | 2020-11-25 09:11:00 -0500

Add a (static) targeter for frozen ramparts
This was the main missing complex positional targeter, unless I've
missed something. A little tricky to get exactly right.

--------------------------------------------------------------------------------
8aebc96f93 | advil | 2020-11-25 09:11:00 -0500

Improved confused throwing from quiver
This treats confused throwing as untargeted in the UI, so you get a
chance to abort from `f`, and it works with quiver cycling. Also,
explicitly indicate that it is different in the quiver description.

--------------------------------------------------------------------------------
0fdd853446 | advil | 2020-11-25 09:11:00 -0500

Add static targeters for most untargeted spells
Targeters serve two roles: aiming, and telling the player what will
happen once they trigger the action. This is especially brought out with
the revamped fire interface, which shows a targeter for any action, with
a default empty looking-around targeter as a fallback -- this UI works a
lot better if it's actually showing what to do. For many spells this is
exceedingly boring, but for some of the more exotic positional spells I
think it's actually a huge improvement for new players to be able to see
these. In some cases these targeters provide information that was
previously hard to calculate despite being deterministic, with two
standouts being the absolute zero target, and the animate skeleton
target. (If this is bad, then these spells should be randomized when
there are multiple enemies/corpses at the same distance, not
deterministic.)

By default static targeters are not shown for `z`, but there's an option
that lets you force them even there.  No doubt they'd be kind of
annoying to long-time players but this is pretty useful information for
someone who doesn't have every spell memorized.  They are always used
for `Z` casting, and in the fire interface.

Still some cases missing.

--------------------------------------------------------------------------------
fe2187900e | advil | 2020-11-25 09:11:00 -0500

Improve handling of disabled actions when cycling fire
In some cases, depending on the details of the action, disabled actions
can't get to a direction chooser at all (case: sandblast with 0 stones),
and so cycling to them in the fire prompt would exit the prompt.  This
just skips them for UI consistency. You can still force quiver them, and
they may still exit the prompt when doing so (depends on the action).

--------------------------------------------------------------------------------
631ad8ecb3 | advil | 2020-11-25 09:11:00 -0500

Re-implement tossing
Tossing was temporarily impossible after throwing get refactored
entirely into the fire system. This adds an action type for tossing that
is not used unless items are force-quivered. It is currently not
possible to toss items that can be otherwise quivered, including wands.

This allows quivering items for tossing. There was some discussion
in ##crawl-dev on whether this was a good idea, and I'm not sure it is;
but as long as there is tossing at all, there is no reason to make it
impossible to do via the quiver (and in fact with the current API, that
would be more work rather than less). I don't particularly want to take
a stand on whether tossing is a good idea in the first place as part of
this commit series, so I leave things as they were.

--------------------------------------------------------------------------------
3b221d4c60 | advil | 2020-11-25 09:11:00 -0500

Revamp fire interface to fully handle fire actions
This commit wraps the various ways of triggering a direction chooser in
yet another layer of api that handles cycling between and selection of
arbitrary actions. The challenge here is that there are many ways to
trigger a direction chooser, which may involve extremely idiosyncratic
setup that is not controlled internal to the direction chooser. So, to
switch from e.g. a firestorm targeter to an iceblast wand targer is
something that simply can't be done inside the direction chooser UI
without some kind of extremely major rewrite. Instead, what this does is
rebuild the custom targeter for each action while cycling in a way that
looks like a seamless UI to the player.

In the long run, there may be ways of gradually refactoring bits and
pieces of code to make this less painful. For example, if every action
were only called via the quiver::action api, then the intervening could
could be slimmed down quite a bit, with most messaging etc refactored
into actions. But, this is not practical to do all at once.  I have
however done this for throwing as a kind of prototype, since this was
basically the simplest case. (But, there's still more
refactoring/simplification to do even there.)

For untargeted spells, right now in the fire interface you basically
just get a variant of the "just looking" targeter. However, I think
there are better things to do for many of these spells that will come in
a future commit.

--------------------------------------------------------------------------------
01ffde2ee0 | advil | 2020-11-25 09:11:00 -0500

Quiet beam messages by default
I should have done this years ago.

--------------------------------------------------------------------------------
c499aaac4f | advil | 2020-11-25 09:11:00 -0500

Remove "quiver unavailable"
Now, just show the quivered element grayed out.

--------------------------------------------------------------------------------
39fea7d47b | advil | 2020-11-25 09:11:00 -0500

Adjust newquiver save compat behavior
Now loads the previously quivered ammo.

--------------------------------------------------------------------------------
cd8006399c | advil | 2020-11-25 09:11:00 -0500

Add a custom quiver display for sandblast
Also, generalize some sandblast code, and only show item count in the
message window if the spell is not quivered.

--------------------------------------------------------------------------------
98f1491d44 | advil | 2020-11-25 09:11:00 -0500

First-pass menu for generalized quivering
This is probably still missing all sorts of bells and whistles, but it
provides a quiver selection menu that covers the basics for the `Q`
menu, as well as selecting items from the fire interface.

--------------------------------------------------------------------------------
f2fa652baf | advil | 2020-11-25 09:11:00 -0500

Clean up evoke checks a bit
Move more checks into evoke_check, and use it more widely (including for
quivering wands).

This handles zigfigs and reaching slightly differently than in the past;
while berserk (etc) V is now possible if either of these are in play,
but will only show the currently enabled items in the menu.

--------------------------------------------------------------------------------
2d68e64195 | advil | 2020-11-25 09:11:00 -0500

Improvements to fire order and display
Refactored the initial implementation of find_next to be more general
and clean, and improved a bunch of is_enabled checks and messaging.

--------------------------------------------------------------------------------
413aeb54f4 | advil | 2020-11-25 09:11:00 -0500

Improve autotargeting for various quivered spells
This is the direction chooser's smart autotargeting for most spells on
top of (or in some cases instead of) autofight target selection. There
are a few cases where it is necessary to drop to manual targeting, but
for the most part this allows sensible shift-tab behavior for various
complicated spells like LRD, cloud spells, etc. The simple_targeting
option applies if set.

There's still a somewhat involved division of labor between autofight
target selection and the direction chooser, where afaict the main
difference is that the former prioritizes closer targets, and the latter
prioritizes previous targets if there any, and then closest targets.
Possibly this could all be simplified into one thing? But for now
autofight handles messaging in a useful way for all sorts of error
cases.

--------------------------------------------------------------------------------
4bf0199a49 | advil | 2020-11-25 09:11:00 -0500

Skip digging for quiver
There's no use for this that I can think of, and it has a bad
interaction with default autotargeting.

--------------------------------------------------------------------------------
48ffb1d3d0 | advil | 2020-11-25 09:11:00 -0500

Trigger untargeted actions directly on autofire
That is, bypass all the convoluted lua stuff when a target is not
needed.

Some of these may do better with an error if there is no foe, but this
new blanket behavior behavior matches the regular cast behavior so it's
a bit closer to what you would expect. Some interesting cases to think
about: blink, berserk (not yet implemented), foxfire, conjure flame,
irradiate. More fine-grained logic needed..

--------------------------------------------------------------------------------
604836d2a6 | advil | 2020-11-25 09:11:00 -0500

Simplify default shift-tab behavior
The previous behavior was to use the quiver only when not in melee range
(and not wielding a launcher). This new behavior seems more appropriate
for the wider range of quiver options now available, including actions
that are untargeted: it simply always triggers the action on shift-tab.
The previous behavior is still present and bindable.  It might be nice
to have better in-game customization of this because I'm not sure
there's one default that really does make sense across all action types.

This is bolted on in a somewhat hacky way to existing autotarget code. A
better refactor might be to extract only the targeting code from
autofight, and have actions use that directly to find a target only when
needed.

--------------------------------------------------------------------------------
5840989f9b | advil | 2020-11-25 09:11:00 -0500

Allow quivering wands
This was relatively straightforward to implement, given all the previous
infrastructure. However, it is once again ui-incomplete; you can quiver
wands from the Q menu but only using *.

Another obvious issue (that will apply to some spells as well) is that
the fire targeter doesn't handle custom hitfuncs, e.g. for iceblast.

--------------------------------------------------------------------------------
c08bbfc749 | advil | 2020-11-25 09:11:00 -0500

Update docs for quiver miscast severity option

--------------------------------------------------------------------------------
efa02f9678 | advil | 2020-11-25 09:11:00 -0500

Don't quiver dangerous spells by default
This adds an option to let you control the miscast severity threshold
for this check, defaulting to no dangerous spells. (I'm not sure if any
book starts might have their starting spell excluded with this default,
so it may need some tweaking.)

Also, removes an annoying dprf.

--------------------------------------------------------------------------------
640fc51a6f | advil | 2020-11-25 09:11:00 -0500

Implement quivering spells
This provides a much better interface to spell firing than automagic.
This commit is *not* ui-complete: while quivering spells via cycle and
cycle under `f` should be fully implemented, I have not yet worked on
the `Q` menu or the menus from `f`, which both still only let you quiver
items.

Some notes
* book starts will autoquiver a spell if that's first in the fire order.
* there's still a lot of legacy code that I don't understand well enough
  to have fully removed. TBD.
* I've left in the legacy serialization code for the ammo history, which
  definitely needs some revisiting. Actions are now serialized as a prop
  though, in a much simpler way.
* some polishing TODOs remain, and this is a complicated enough change
  that this commit may still lead to unexpected behavior. (E.g. I'm 80%
  certain there's no tricky way for felids to fire ammo with this new
  API...)
* no options yet affect this, it may be desirable to tweak fire_order.

--------------------------------------------------------------------------------
ca729177e3 | advil | 2020-11-25 09:11:00 -0500

Let beam spells target test statues without Z

--------------------------------------------------------------------------------
e642e6e074 | advil | 2020-11-25 09:11:00 -0500

Don't let browser eat shift-tab in webtiles

--------------------------------------------------------------------------------
e6153d18e9 | advil | 2020-11-25 09:11:00 -0500

Refactor and generalize quivering
This commit rewrites the quiver to be both more usable and more general,
cleaning up a lot of ncient and hard-to-understand logic.
The basic idea is that what gets quivered is a quiver::action, and this
is stored directly. This class abstracts over many of the details of
what kind of action it is, paving the way for some interesting future
commits. Right now, though, the system just reimplements the old quiver
functionality involving ammo.

I was not able to fully eliminate the old player_quiver, but the
descendent class (quiver::history) is much simpler and used basically
for tracking what was last quivered of any ammo type. Right now, it
still handles serialization as well, and inventory changes. Most of the
weirdest stuff is cleaned up, hopefully.

There may be some logic changes (because old quiver logic was quite
convoluted and I don't necessarily understand everything it did). One
that I do know of is that throwing ammo won't auto-quiver when you run
out of launcher ammo.

--------------------------------------------------------------------------------
99b756640e | advil | 2020-11-25 09:10:59 -0500

Rename a quiver enum

--------------------------------------------------------------------------------
31eddc3830 | advil | 2020-11-25 09:10:59 -0500

Rudimentary API for programmatic targeting
Many commands implicitly take a target as an argument, and collect that
argument only via the interactive direction chooser. Because of this,
the only way to script these commands (e.g. in autofight.lua) is to send
commands to the interactive direction chooser interface. As the
direction chooser has become more widgetified, this has become heavier
and heavier to do, leading to noticeable lag in autofire. At the same
time, interacting with this UI programmatically has long been a source
of hard-to-solve bugs and brittleness. For these reasons, this commit
adds a first pass implementation of supplying a target directly to such
commands, and uses it for autofire and autoreach. On the c++ side, there
is now a non-interactive way of calling the direction chooser that still
uses all the error checking and messaging. On the lua side, there is a
way of supplying (so far, just a few) commands directly with a
player-relative coordinate. This commit leaves automagic untouched (and
regular melee combat doesn't use the direction chooser).

--------------------------------------------------------------------------------
3bff4b215c | Nicholas Feinberg | 2020-11-24 18:44:03 -0800

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.

--------------------------------------------------------------------------------
8d2f3042de | Nicholas Feinberg | 2020-11-24 18:44:03 -0800

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
rMsl!

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.

--------------------------------------------------------------------------------
513ac319d2 | Nicholas Feinberg | 2020-11-24 18:44:03 -0800

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.

--------------------------------------------------------------------------------
261a1d5db6 | Nicholas Feinberg | 2020-11-24 18:44:03 -0800

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.

--------------------------------------------------------------------------------
f57989e088 | advil | 2020-11-24 13:04:59 -0500

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.

https://crawl.develz.org/mantis/view.php?id=11756

--------------------------------------------------------------------------------
bf766624f9 | Nicholas Feinberg | 2020-11-23 17:14:34 -0800

Add a killer klown kast message (zipskins)

--------------------------------------------------------------------------------
47dfa6ee30 | Nicholas Feinberg | 2020-11-23 17:10:55 -0800

Describe marshlight in monster (vt)

--------------------------------------------------------------------------------
4463a752a4 | Nicholas Feinberg | 2020-11-23 17:06:58 -0800

Don't claim fireballs can miss (lici)

--------------------------------------------------------------------------------
a9d2d7650c | Nicholas Feinberg | 2020-11-23 17:04:51 -0800

Remove an unused function

--------------------------------------------------------------------------------
dc81c2f471 | Nicholas Feinberg | 2020-11-21 13:46:25 -0800

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!

--------------------------------------------------------------------------------
e5b14bf77e | Nicholas Feinberg | 2020-11-21 13:37:28 -0800

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.

--------------------------------------------------------------------------------
6321bf7485 | Nicholas Feinberg | 2020-11-20 17:17:27 -0800

Halve distortion banish weight (hellmonk)
From 14964f1db53dd4 :

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

--------------------------------------------------------------------------------
735459dd53 | advil | 2020-11-20 16:22:17 -0500

Remove invocation removal
on switching gods. Also remove some vestigial code.

--------------------------------------------------------------------------------
97a50ab700 | Nicholas Feinberg | 2020-11-19 21:40:35 -0800

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
gameplay.

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.

--------------------------------------------------------------------------------
f1512cd430 | Nicholas Feinberg | 2020-11-19 08:13:57 -0800

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.

--------------------------------------------------------------------------------
902a77ae82 | Nicholas Feinberg | 2020-11-19 08:12:21 -0800

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.

--------------------------------------------------------------------------------
d8113324d5 | gammafunk | 2020-11-19 06:14:42 -0600

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.

--------------------------------------------------------------------------------
cc8f1ee719 | advil | 2020-11-18 20:20:25 -0500

Reword the demigod description (monkeytor)
wow, yeah.

--------------------------------------------------------------------------------
facbca91cf | gammafunk | 2020-11-18 11:18:10 -0600

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
walls.

--------------------------------------------------------------------------------
3dd439832f | Nicholas Feinberg | 2020-11-17 22:35:09 -0800

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 fight.cc - but hopefully that's ok.

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

--------------------------------------------------------------------------------
e40b904635 | Nicholas Feinberg | 2020-11-17 21:25:41 -0800

Constify torment_player agent

--------------------------------------------------------------------------------
c41a8854c2 | Nicholas Feinberg | 2020-11-17 21:25:40 -0800

Constify petrify agent

--------------------------------------------------------------------------------
b6d1a298b2 | Nicholas Feinberg | 2020-11-17 21:25:40 -0800

Constify banish agent

--------------------------------------------------------------------------------
1d16244ef9 | Nicholas Feinberg | 2020-11-17 21:25:40 -0800

Constify paralyse agent

--------------------------------------------------------------------------------
ea2d263aa7 | Nicholas Feinberg | 2020-11-17 21:25:40 -0800

Remove unused params

--------------------------------------------------------------------------------
cb17a628a6 | Nicholas Feinberg | 2020-11-17 20:58:17 -0800

Constify drain_exp agent

--------------------------------------------------------------------------------
5a8a614f01 | Nicholas Feinberg | 2020-11-17 08:34:27 -0800

Add rolling charge ability icon

--------------------------------------------------------------------------------
aa9f5d3e14 | Nicholas Feinberg | 2020-11-17 08:06:38 -0800

Make boulder beetles jumpier (yesno)
Better messaging and cloud sfx, matching the intended flavour.

--------------------------------------------------------------------------------
8259106e14 | Nicholas Feinberg | 2020-11-16 08:25:12 -0800

Partially fix skill menu (dinky)
Still a little strange when useless skills are de-focused, but OK.

--------------------------------------------------------------------------------
69557b85cc | Nicholas Feinberg | 2020-11-15 22:00:17 -0800

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!

--------------------------------------------------------------------------------
7262b39652 | Kyle Rawlins | 2020-11-15 12:09:00 -0500

Tweaks to quickstart.md
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.
--------------------------------------------------------------------------------
78611b2a4a | advil | 2020-11-15 09:43:47 -0500

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.

--------------------------------------------------------------------------------
7192265339 | advil | 2020-11-14 21:18:31 -0500

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.)

--------------------------------------------------------------------------------
2a559e7be2 | advil | 2020-11-14 15:33:47 -0500

lint

--------------------------------------------------------------------------------
581e7e17b6 | advil | 2020-11-14 15:20:56 -0500

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

--------------------------------------------------------------------------------
e73a099111 | advil | 2020-11-14 15:16:02 -0500

Mark des_cache_test as unrand
It already can't place in at least two ways, but this further cements
things.

--------------------------------------------------------------------------------
940fe7d004 | advil | 2020-11-14 15:07:47 -0500

Fix a typo in chequers_temple_overflow_minitemple

--------------------------------------------------------------------------------
ddd851d81b | advil | 2020-11-14 14:39:58 -0500

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

--------------------------------------------------------------------------------
110d042ebb | advil | 2020-11-14 13:18:19 -0500

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.

--------------------------------------------------------------------------------
73b9a89994 | advil | 2020-11-14 11:03:34 -0500

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.)

--------------------------------------------------------------------------------
6f5aefb819 | advil | 2020-11-14 11:03:34 -0500

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
closets.

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.)

--------------------------------------------------------------------------------
06017ff571 | advil | 2020-11-14 11:03:34 -0500

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
itself:

```
```

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.)

--------------------------------------------------------------------------------
e7e87f2ff1 | advil | 2020-11-14 11:03:34 -0500

Update explorer.lua for temple pregen change

--------------------------------------------------------------------------------
6a63ac1ee2 | advil | 2020-11-14 11:03:34 -0500

Skip input on tiles loading screen in test mode
Possibly should be skipped for other cases too.

--------------------------------------------------------------------------------
6cf8f86288 | Nicholas Feinberg | 2020-11-14 07:49:09 -0800

Split out mon-explode
It makes sense to me, and also it's a very funny name.

--------------------------------------------------------------------------------
75db068ed4 | Nicholas Feinberg | 2020-11-13 21:06:17 -0800

Let palentonga mutate to roll farther (dinky)
Seems fun. Damage is still capped at 2x, since getting even more
damage seems excessive.

--------------------------------------------------------------------------------
dbf270a2a2 | Nicholas Feinberg | 2020-11-13 20:16:33 -0800

Remove dead code

--------------------------------------------------------------------------------
42129fe79a | Nicholas Feinberg | 2020-11-13 19:13:41 -0800

Revert "Revert "Don't crash in the skills menu (advil)""
This reverts commit 3d2bcdb4e9ce18204ec63b67a5d23613e6c4f2db.

--------------------------------------------------------------------------------
3d2bcdb4e9 | Nicholas Feinberg | 2020-11-13 18:31:19 -0800

Revert "Don't crash in the skills menu (advil)"
Caused a different crash that I don't understand.

This reverts commit e0c665c49dfa321371ae9ab94611a89d5c067a8e.

--------------------------------------------------------------------------------
e366a860e6 | Nicholas Feinberg | 2020-11-13 17:59:00 -0800

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.

--------------------------------------------------------------------------------
e0c665c49d | Nicholas Feinberg | 2020-11-13 17:53:17 -0800

Don't crash in the skills menu (advil)
I'm not confident in this use of save_game, but maybe it's OK?

--------------------------------------------------------------------------------
31a745ddcd | Nicholas Feinberg | 2020-11-12 07:54:14 -0800

Describe chain lightning damage in xv

--------------------------------------------------------------------------------
ec22e641d3 | Nicholas Feinberg | 2020-11-12 07:53:37 -0800

Fix monster

--------------------------------------------------------------------------------
e1a9524b62 | Nicholas Feinberg | 2020-11-11 18:26:14 -0800

Show IOOD damage in xv

--------------------------------------------------------------------------------
70ddbb00c7 | Nicholas Feinberg | 2020-11-11 18:25:56 -0800

Don't print hex %s in black on black

--------------------------------------------------------------------------------
930a2b7adc | Nicholas Feinberg | 2020-11-11 13:50:26 -0800

Colourize beam damage descriptions
This is fairly useless but looks cool.

--------------------------------------------------------------------------------
6cde5fae71 | Nicholas Feinberg | 2020-11-11 13:08:12 -0800

Display marshlight damage in xv

--------------------------------------------------------------------------------
1df0a6b31e | Nicholas Feinberg | 2020-11-11 12:44:53 -0800

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.

--------------------------------------------------------------------------------
17de90a3c3 | Nicholas Feinberg | 2020-11-11 10:16:58 -0800

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

--------------------------------------------------------------------------------
f75564ed3b | Nicholas Feinberg | 2020-11-11 08:59:56 -0800

Zappify more monster beams

--------------------------------------------------------------------------------
70055ddf73 | Nicholas Feinberg | 2020-11-11 08:24:52 -0800

Display waterstrike damage on xv

--------------------------------------------------------------------------------
7b6e01e074 | Nicholas Feinberg | 2020-11-11 08:15:15 -0800

Deduplicate monster explosion methods

--------------------------------------------------------------------------------
84887b7506 | Nicholas Feinberg | 2020-11-11 08:15:15 -0800

Refactor monster explosions a bit

--------------------------------------------------------------------------------
517d6fe721 | CrawlCycle | 2020-11-10 19:44:21 +0200

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.

--------------------------------------------------------------------------------
433cdae047 | CrawlCycle | 2020-11-10 19:44:05 +0200

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 <66185335+CrawlCycle@users.noreply.github.com>
--------------------------------------------------------------------------------
743b41319e | Kieron Dunbar | 2020-11-10 19:16:24 +0200

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".

read_init_file():
game_options::read_options():
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.

--------------------------------------------------------------------------------
a5bd08485e | Kieron Dunbar | 2020-11-10 19:16:16 +0200

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 (arena.cc)
center -> centre (arena.txt options_guide.txt)
centered -> centred (options_guide.txt)
centers -> centres (options_guide.txt)
Cudgeler -> Cudgeller (skills.cc)
labeled -> labelled (english.cc item-name.cc)
reveler -> reveller (god-abil.cc)
Reveler -> Reveller (features.txt, godname.txt, gods.txt)
traveled -> travelled (shout.cc)

--------------------------------------------------------------------------------
a991c35b56 | Nicholas Feinberg | 2020-11-10 09:10:40 -0800

Mention zot clock in E (nikheizen)

--------------------------------------------------------------------------------
cbe7412673 | Nicholas Feinberg | 2020-11-10 09:10:40 -0800

Partially unify mons explosion logic
This should really be unified with mons-death::_explode_monster
as well.

--------------------------------------------------------------------------------
2f2a4d8ed9 | Nicholas Feinberg | 2020-11-10 09:10:40 -0800

Turn more monster spells into zaps
So that they show up in xv. (Still many left to do...)

--------------------------------------------------------------------------------
00c8f0b8f8 | wheals | 2020-11-10 19:04:18 +0200

Fix the path for quickstart.md
[closes #1599]

--------------------------------------------------------------------------------
42995fd38d | wheals | 2020-11-10 19:03:56 +0200

Re-wrap quickstart.md to 80 columns

--------------------------------------------------------------------------------
310f398bab | Sebastian Łużyński | 2020-11-10 18:56:06 +0200

Update quickstart.md

--------------------------------------------------------------------------------
cdce9d9c90 | Sebastian Łużyński | 2020-11-10 18:56:06 +0200

Update quickstart.md

--------------------------------------------------------------------------------
23cac7494c | Sebastian Łużyński | 2020-11-10 18:56:06 +0200

Update and rename quickstart.txt to quickstart.md
Just because this doc has been made long time ago, doesn't mean it has to be 
rudimentary :D
--------------------------------------------------------------------------------
897f35e60b | Midn8 | 2020-11-10 18:31:05 +0200

Properly Punctuate small damage distortion
I don't even know how long this was broken, attack.cc 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]

--------------------------------------------------------------------------------
f67cdfb8ac | Nicholas Feinberg | 2020-11-09 20:42:22 -0800

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.

--------------------------------------------------------------------------------
888258f25a | Nicholas Feinberg | 2020-11-09 17:26:40 -0800

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
harmfully.

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

--------------------------------------------------------------------------------
1f3e2359fb | Nicholas Feinberg | 2020-11-09 17:19:51 -0800

Accept that Swamp and Shoals can coexist (#1606)
For now, at least!

--------------------------------------------------------------------------------
51bffae0b1 | Nicholas Feinberg | 2020-11-09 09:48:42 -0800

Make witches less prehensile (RandomCharacter)

--------------------------------------------------------------------------------
ba241ef417 | Aidan Holm | 2020-11-09 20:08:51 +0800

IWYU part 3

--------------------------------------------------------------------------------
bcc0732031 | Aidan Holm | 2020-11-09 20:08:51 +0800

Even more IWYU

--------------------------------------------------------------------------------
32d1081ec2 | Aidan Holm | 2020-11-09 20:08:51 +0800

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.

--------------------------------------------------------------------------------
8c909bcb30 | Aidan Holm | 2020-11-09 19:54:22 +0800

Remove dead code (#12379)

--------------------------------------------------------------------------------
b8432710ee | wheals | 2020-11-09 12:15:57 +0200

Zap Duvessa if Dowan gets zapped and vice-versa (Lightli)
Plus let them generate again later.

--------------------------------------------------------------------------------
3fe0686644 | gammafunk | 2020-11-09 00:26:48 -0600

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.

--------------------------------------------------------------------------------
671c95df35 | gammafunk | 2020-11-08 23:54:36 -0600

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.

--------------------------------------------------------------------------------
8b94a72193 | Nicholas Feinberg | 2020-11-08 20:19:00 -0800

Checkwhite

--------------------------------------------------------------------------------
3b90a50a07 | Nikolai Lavsky | 2020-11-08 20:05:02 -0800

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.

--------------------------------------------------------------------------------
1415c89e12 | advil | 2020-11-08 17:20:27 -0500

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

--------------------------------------------------------------------------------
80fa9cfeba | advil | 2020-11-08 16:10:42 -0500

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

--------------------------------------------------------------------------------
3149ed9209 | Nicholas Feinberg | 2020-11-08 07:58:44 -0800

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.

--------------------------------------------------------------------------------
060e6a62af | Nicholas Feinberg | 2020-11-07 09:51:39 -0800

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.

--------------------------------------------------------------------------------
7bd0395729 | Nicholas Feinberg | 2020-11-07 08:35:38 -0800

Reorder the Necronomicon (Lightli)
Fix spell level order.

--------------------------------------------------------------------------------
44ed55eb59 | advil | 2020-11-07 11:04:09 -0500

Isolate poly set rng
This should keep the randomization here from having any impact on the
builder.

--------------------------------------------------------------------------------
c1cdef59ac | advil | 2020-11-07 10:52:55 -0500

lint

--------------------------------------------------------------------------------
1beca9d668 | advil | 2020-11-07 10:49:26 -0500

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
seeds.

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

--------------------------------------------------------------------------------
000a8cebd8 | Nicholas Feinberg | 2020-11-07 07:43:46 -0800

Fix a dumb and pointless joke (advil)

--------------------------------------------------------------------------------
3ce79ab3db | Nicholas Feinberg | 2020-11-07 07:42:05 -0800

Fix polymorphing band members (advil)
Ringo, look out!

--------------------------------------------------------------------------------
7121cf9b01 | Nicholas Feinberg | 2020-11-07 07:38:21 -0800

Add poly save compat for removed mons (advil)
Very unsure about this code tbh...

--------------------------------------------------------------------------------
a131f226cc | Nicholas Feinberg | 2020-11-07 07:38:21 -0800

Remove boomers
What is it, 1963 in here?

--------------------------------------------------------------------------------
27f3346928 | Nikolai Lavsky | 2020-11-07 07:17:17 -0800

Fix display of hex chances on the xv screen
After 424c9a47, xv displays hex chances only for spells of friendly
monsters.

--------------------------------------------------------------------------------
3d92047569 | advil | 2020-11-07 09:54:24 -0500

Reorder, fix checks in _valid_type_morph
Fix some old issues exposed by recent poly changes. It's possible that
one of the many things in this disjunction would have checked for
MONS_NO_MONSTER, but there was no direct check for it. In addition,
checking holiness first is generally a recipe for crashes because it is
a complicated check that presupposes valid monster data. In this case,
this call guaranteed to crash on MONS_NO_MONSTER, so firing newpoly on
such a monster would crash instead of show the "momentary change"
message.

--------------------------------------------------------------------------------
5c39ac4411 | advil | 2020-11-07 09:37:52 -0500

More transparency fixes
Mostly uninteresting, except for the aquarium fix, where I attempted to
provide the correct explicit masking. This serial probably still needs
some work in terms of decreasing veto likelihood.

--------------------------------------------------------------------------------
9cc10c1154 | advil | 2020-11-07 09:37:52 -0500

Skip portals for incomplete levels in veto debug mode
Otherwise, pregen would lead to immediate generation of the portal
level, out of sync with the order that it should actually be generated
in in the seed.

--------------------------------------------------------------------------------
956f22bcb3 | advil | 2020-11-07 09:37:52 -0500

Let post-place fill heuristics remove doors
This does occasionally come up in practice, usually for a layout that
uses lots of doors; for the cases I've seen there's nothing close to
worth vetoing about when a door is trapped in a small isolated area.

--------------------------------------------------------------------------------
626ac9e51a | Nicholas Feinberg | 2020-11-06 19:37:02 -0800

Update the changelog
Reorganize sections by maximum interest, trim out many items that
are not important enough to include in the changelog, fix style,
and add new entries.

--------------------------------------------------------------------------------
10fd84bd02 | Nicholas Feinberg | 2020-11-06 18:19:58 -0800

Remove a dubious assert

--------------------------------------------------------------------------------
9e3f510199 | Nicholas Feinberg | 2020-11-06 17:18:10 -0800

Remove devouring swarms (again)
Oops.

--------------------------------------------------------------------------------
6ee961360c | Nicholas Feinberg | 2020-11-06 17:14:52 -0800

Despoiler /poly (gammafunk)
Pre-choose a set of 3 monsters that any given monster can turn into
(filtering by holiness & habitat and weighting by HD and demon tier),
and display them on the /polymorph targeter. This should make it much
more possible to make tactical choices about the use of /polymorph.

This does not affect other sources of polymorphing, such as Xom or Nem.

--------------------------------------------------------------------------------
4680b4fa2e | Nicholas Feinberg | 2020-11-06 07:36:07 -0800

util/monster brand fixes
Mention goliath froges' acid and fix an unhandled case warning.

--------------------------------------------------------------------------------
cff87cac9a | advil | 2020-11-05 16:57:42 -0500

Fix args for map_by_tag (12370)
Nothing ever uses this argument for the non-default value, not sure why
it exists.

--------------------------------------------------------------------------------
e9cb82248d | advil | 2020-11-05 15:49:35 -0500

Fill disconnected zones more aggressively
But, only fill floor tiles (in contrast to the initial implementation).

--------------------------------------------------------------------------------
16e837b731 | advil | 2020-11-05 15:49:35 -0500

A few more transparent tags
where opacity seems more likely to lead to vetoes.

--------------------------------------------------------------------------------
f8554c3447 | advil | 2020-11-05 15:49:35 -0500

Improve layout_gridlike's handling of water/lava (Skrybe)
This fixes a couple of bugs at once:
 * layout_gridlike was forcing vetos if it generated shallow water
   closed rooms, because they registered as disconnected areas.
 * closed rooms acted as tele closets for species that could inhabit the
   terrain.

It might be better to do this on a bit more of a case-by-case basis to
avoid placing no_tele_into in some corner cases (outer material plants,
inner material shallow water). However, I think that overkill is better
than underkill, and a comment by @Skrybe in the issue thread provided a
ready-made solution.

Resolves #1234. Also mantis 7563.

--------------------------------------------------------------------------------
080276ff0c | advil | 2020-11-05 15:49:35 -0500

Don't by default mask vault exits as opaque
The problem this commit is solving is that opaque vaults rely on their
exits being connected to some non-vault squares in order to properly
test for connectivity, and I want to apply post-placement heuristics
that do things like fill small disconnected areas (as in preceding
commit). This change allows an opaque vault to veto correctly if its
exit ends up leading to a wall because of such heuristics. It would be
possible to explicitly mask exits as opaque in order to add optional
exits; this commit effectively forces all exits to participate in
connectivity by default.

For a completely internally-connected vault with multiple exits, this
commit may make placement harder. However, the solution for such vaults
is simply to mark that vault as transparent. (Possibly, all vaults
should be transparent by default.)

--------------------------------------------------------------------------------
f05d8d7428 | advil | 2020-11-05 15:49:35 -0500

Fill small boring disconnected areas in the builder
Often, when vault placement doesn't happen to align well with the level
layout, small bits of the level might get cut off and isolated. This
will trigger a veto, making hard-to-place vaults even rarer. This is a
reasonably common source of vetoes in depths, in particular, in my
testing. This commit adds a post-place heuristic that attempts to fill
in small disconnected regions with no stairs.

This is effective in many cases, but while vaults default to
non-transparent, it is risky: the builder relies on an opaque vault's
exit being connected to something that is not masked as opaque, and uses
that something as a proxy for level connectivity in general. So if an
opaque vault is connected to a small space that this change would fill
in, that vault gets disconnected from the rest of the world. A future
commit will deal with this issue by making exits transparent even on
opaque vaults.

--------------------------------------------------------------------------------
6599e89576 | Nicholas Feinberg | 2020-11-05 11:32:18 -0800

Tweak new swamp monsters
Turn goliath frogs down a bit across the board; they've been killing
more than expected. (This might need further adjustments; we'll see
how this first pass goes.)

Tune up fenstrider witches very slightly, partially because I thought
of a funny number joke.

--------------------------------------------------------------------------------
ca8acebb32 | Nicholas Feinberg | 2020-11-05 11:29:11 -0800

Adjust XP evocable prices
Since they recharge now, they should be significantly more valuable
than when they only had one use.

Condenser Vane never had a price set at all, and was using default
pricing, which seems like an error.

Lightning Rod is currently a bit weaker than the others; until/unless
we want to change that, price it accordingly.

--------------------------------------------------------------------------------
e31f27f013 | Nicholas Feinberg | 2020-11-05 11:26:19 -0800

Adjust XP evoker charges
Some of the new XP evokers were substantially stronger than anticipated,
and were available too often, making it hard for players to end up in
truly dangerous situations. Turn down the maximum charges and up the XP
required to recharge.

--------------------------------------------------------------------------------
dd1942f9f2 | Nicholas Feinberg | 2020-11-05 10:53:27 -0800

Fix compilation

--------------------------------------------------------------------------------
46561c67a8 | Nicholas Feinberg | 2020-11-05 10:42:51 -0800

Remove the Cool S
Hand-truncate LCS.

--------------------------------------------------------------------------------
9d7e6eefc7 | Nicholas Feinberg | 2020-11-05 10:29:25 -0800

Show monster spell damage on xv
It seems quite easy for the player to interpret, since they know their
own HP and AC - we show monster melee damage with the same reasoning -
and it's nice to have ready to hand. Doesn't support some weird spells
(yet!).

Accuracy would also be good to have but I'd need to think about
formatting.

--------------------------------------------------------------------------------
424c9a4717 | Nicholas Feinberg | 2020-11-05 10:08:16 -0800

Refactor some beam/spell code

--------------------------------------------------------------------------------
f55cbd344a | Nicholas Feinberg | 2020-11-04 21:28:14 -0800

Replace potions of stabbing with attraction
Potions of stabbing didn't quite hit the mark as a design. They weren't
particularly popular with players, perhaps because their niche wasn't
just narrow but *extremely* narrow.

So, let's try another idea. Potions of attraction cause the player to
magically pull nearby monsters toward them while the duration lasts, a
bit like Mass Lesser Beckoning. (Greater Beckoning?). It currently pulls
3 tiles per turn, though I could see 2 tiles or full LOS also being
reasonable. The idea here is for melee characters to have something to
help them with ranged enemies, though quite situationally!

I also considered making this pull items, as a sort of very silly
apportation variant. Maybe it should?

Right now this doesn't wake up sleeping enemies, since it seemed fun
to have it help with stabs, too. If that's too strong, we can make it
more annoying (to enemies, waking them).

--------------------------------------------------------------------------------
91b530ce93 | Nicholas Feinberg | 2020-11-04 08:18:02 -0800

Make !brilliance halve mp costs
Make it a bit more impactful for more spells while still encouraging
players to plan their consumable use in advance, rather than using
them as last-second emergency buttons.

--------------------------------------------------------------------------------
4e9f4955e2 | Nicholas Feinberg | 2020-11-03 08:49:10 -0800

Add Curl status
Maybe should be Uncurl?

--------------------------------------------------------------------------------
81720017eb | Nicholas Feinberg | 2020-11-03 08:10:00 -0800

Increase broad axe delay
It's a little too easy to get this rather strong weapon online.
Comparing to, for example, a battleaxe, the broad axe gave the ability
to use a shield for only -2 base damage and *less* skill required to
reach mindelay!

That sort of dynamic is fine when we're comparing rare weapons to
common ones (e.g. double sword vs great sword, eveningstar vs great
mace), but broad axes are quite common. Per objstat, there are about
13 broad axes in the average 3 rune game, with perhaps 1 appearing in
D, 1 in Lair, etc. That's over 13 times as common as the rare 1h weapon
types, and appearing much earlier.

It's possible that there should be a comparable split for axes, with a
'common' and 'rare' 1h axe in the same way that we have scimitars and
double swords or morningstars and eveningstars. For now, though,
increasing the skill requirement for broad axes seems like the best way
to keep them a viable endgame weapon while making other weapons a bit
more competitive.

--------------------------------------------------------------------------------
747a3e5df7 | Nicholas Feinberg | 2020-11-03 07:56:24 -0800

Remove devouring swarms
The insect egg gimmick was quite complex and was surprisingly hard
to trigger in practice. We might bring these back at some point, maybe
with tweaks (let them egg uninjured monsters too? Do a starcursed-style
splitting thing?), but they aren't needed for now.

--------------------------------------------------------------------------------
c4ff5c6fff | Nicholas Feinberg | 2020-11-03 07:56:24 -0800

Add unused Kitsune art (amcnicky)

--------------------------------------------------------------------------------
a43efd798e | Nicholas Feinberg | 2020-11-03 07:56:24 -0800

Force Swamp generation for testing

--------------------------------------------------------------------------------
4a85d98726 | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

Adjust swamp level generation
- Don't generate deep water, for gameplay & to differentiate further
from Shoals.
- Reduce monster count by about 20% to keep XP balanced after
  removing chaff from spawn tables.
- Shrink the playable area by about 20% to compensate and encourage
  wandering monster fights.

Enlargen the old swamp layout (though still smaller than it was before
the changes) and shrink the falls layout. Total number of open floor
tiles is similar to the old one, though with fewer floor tiles and more
shallow water.

--------------------------------------------------------------------------------
fbaea20957 | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

Rework Swamp vault spawns
Remove unused or overly weak monsters and add in a few of the new
ones. (Another pass could easily be done.)

--------------------------------------------------------------------------------
c718ee2908 | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

Rework Swamp spawns
Remove excessively weak and/or over-used enemies, add new enemy types
to replace them. See https://bit.ly/37EnXHw for details on the original
plan.

--------------------------------------------------------------------------------
16a901b091 | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

Adjust Swamp monster XP multipliers
Get their XP a bit closer in line with their threat.

--------------------------------------------------------------------------------
4e600ef69d | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

Buff bog bodies
- Merge the 4-damage AF_COLD touch attack (which did essentially
  nothing against any player with nonzero AC) into the main attack.
  (Drop damage to 20, for parity with lich touch attack.)
- Increase HD so that the Slow has a better chance of affecting the
  player.

No change to HP, AC, etc.

Bolt of Cold goes from 3d14 to 3d18, which should be a fun time for
players.

I checked through vaults and didn't see anything obviously in need
of adjustment.

--------------------------------------------------------------------------------
e66032fabe | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

New monster: bunyip
Bunyips are an Australian cryptid of unclear description. This
implementation of them treats them as a sort of lesser juggernaut,
hitting for 40 three times. (Their defenses are substantially
weaker than the real juggernaut.) They also have howler monkeys'
warning cry, which they can waste some time with to give players
more of a chance to kill them or flee.

--------------------------------------------------------------------------------
c768f44cc1 | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

New monster: bloated husk
Intended for use as an early Swamp enemy, bloated husks charge at
the player at 14 speed and explode, dealing 8d8 physical damage to
everything in radius 2. They're a bit similar to lurking horrors (but
much simpler and easier to deal with) or to ballistomycetes (but with
actual HP  and without the very complex spore mechanics).

--------------------------------------------------------------------------------
fe851a36d1 | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

New monster: will-o-the-wisp
A mid-tier swamp threat, will-o-the-wisps blink around and toss very
high power Foxfires at the player. Formerly known as kitsune.

--------------------------------------------------------------------------------
311c5d996d | Nicholas Feinberg | 2020-11-03 07:56:21 -0800

New monster: fenstrider witch
Like Baba Yaga, but instead of putting chicken legs on her hut, she
just wears em straight up. Wanders around tossing paralyse and
melee agony and Toxic Bog attacks at the player. Intended as a
top-tier Swamp threat.

--------------------------------------------------------------------------------
1c73956973 | Nicholas Feinberg | 2020-11-03 07:56:09 -0800

New monster: devouring swarm
Intended as a top-tier threat for Swamp, devouring swarms are fast
batty melee attackers that spawn with friends. Any monster unfortunate
enough to be wounded while near a swarm will find its wounds filled
with insect eggs, which, if the monster dies before getting a chance
to pick the eggs out, will burst out into a new durably summoned
swarm.

--------------------------------------------------------------------------------
575ee1b540 | Nicholas Feinberg | 2020-11-03 07:55:40 -0800

New monster: eleionoma
Like water nymphs, but for swamp trees. Can teleport into trees near
their target, toss out a nasty 'wooden splinters' BEAM_FRAG 3-range
spell (shorter-range, weaker metal splinters), and heal themselves
if adjacent to trees. Incentivizes the player to move away from trees
and into the shallow water, which usually has its own downsides!

--------------------------------------------------------------------------------
bc92e201c8 | Nicholas Feinberg | 2020-11-03 07:55:40 -0800

New monster: goliath frog
A low-tier Swamp threat with a reaching acid tongue attack.
Real-life monster!

--------------------------------------------------------------------------------
2a1d101370 | advil | 2020-11-01 16:14:25 -0500

Add vault info to local tiles wizmode dungeon tooltips
Same formatting as vault info in `x`.

--------------------------------------------------------------------------------
873d9191df | advil | 2020-11-01 16:13:22 -0500

Disable dungeon scan in veto debug mode
This is so that save/reload is possible while on vetoed levels,
otherwise they may break all sorts of checks.

--------------------------------------------------------------------------------
e0bddc962e | advil | 2020-11-01 15:31:43 -0500

Fix some veto-triggering issues
This is mostly a matter of adding `transparent` to more vaults, but in
some cases I found issues with the vaults themselves that led to
disconnected areas needing a tweak to some cells or some explicit opaque
masking. Hopefully the additional `transparent` tags don't lead to
further issues, but as long as the vault genuinely lacks disconnected
regions, as far as I can tell it is always better to have it be tagged
transparent, even for vaults with a small number of exits.

--------------------------------------------------------------------------------
38e0a6d103 | advil | 2020-11-01 15:26:18 -0500

Add a rudimentary veto debugging mode
This mode modifies the builder so that, after a wizmode travel command
or &ctrl-r (reload level), instead of retrying on a veto, it exits
immediately. The effect is that you can look at the partially completed
level, and together with the builder log (&ctrl-l on a fulldebug build),
get a sense for why the veto happened. This is implemented with stable
seeding, so that level reload should resume exactly where the builder
left off.

This is implemented via an #ifdef because the game isn't good for much
else in this mode and anyone who is using this is running a fulldebug
build and so can rebuild anyways, but it could in principle be
implemented with a more user-friendly interface as an option or
something like that.

--------------------------------------------------------------------------------
525c905980 | advil | 2020-11-01 13:23:00 -0500

Fix a bad hex multiplication in a bitfield
This was probably a decimal multiplication by accident. This bug should
have led to all passable squares being counted as past door mimics (at
least inside the relevant door check, maybe most squares would have been
filtered before that), and all no_mimic squares being passable, but
these interactions don't seem to have mattered much.

I'm pretty sure this change is innocuous for save compat...

--------------------------------------------------------------------------------
33af53a816 | advil | 2020-11-01 12:37:26 -0500

Fix another slowdown in wrapping large strings
The problem here seems to be that formatted_string::operator[] does not
scale well with string length. This may be relatively unavoidable, but
for strings that are already mostly wrapped in a reasonable way, we can
avoid the penalty by only inserting linebreaks when they aren't already
there.

--------------------------------------------------------------------------------
10d74db38b | advil | 2020-11-01 12:18:55 -0500

Lower a polynomial for linewrapping in local tiles
When looking for lines that exceeded the wrap width, this code, for each
line, unnecessarily scanned through the entire remaining string, doing
glyph width calculations the whole way. Needless to say this made
linewrapping (and therefore Text rendering) quite a bit slower for very
large text boxes in tiles. This change only checks for this case on the
current line.

(Even with this change, Text rendering speed is not acceptably fast for
large textboxes in tiles, e.g. from builder output in a debug build, so
something else is still going on.)

--------------------------------------------------------------------------------
a1a73b7a55 | advil | 2020-11-01 11:19:54 -0500

Improve Text wrap recalculation checks
This function is *extremely* slow for large text boxes on local tiles,
and this check eliminates some level of re-calling when doing initial
widget sizing. I think there's still something wrong with this call
somewhere deeper in that I haven't figured out, but this helps somewhat
at a global level.

--------------------------------------------------------------------------------
a5a9c9c9d0 | advil | 2020-10-30 18:04:53 -0400

Fix catch2 mock player setup
The code that needs this check seems ... not ideal?

--------------------------------------------------------------------------------
daff8a7cd0 | advil | 2020-10-30 14:54:52 -0400

Generate temple before dungeon
This moves Temple before D in the pregen order, and pregens it during
setup for normal games. The level is fully decided at this point, and it
shouldn't interact with the rng for any other level, so order
effectively doesn't matter anyways. This is a long-requested feature to
avoid the popup where entering temple forced pregeneration of the rest
of the dungeon.

--------------------------------------------------------------------------------
95a0c6c400 | advil | 2020-10-29 14:47:48 -0400

Attempt to fix contrib zlib on mac gha builds
This adds a missing header file that is now triggering errors instead of
warnings on this build. The crawl-zlib repository is in a somewhat
confusing state, so while it might be nice to update the zlib version, I
was not able to figure out how to do that.

--------------------------------------------------------------------------------
fed77ec54f | advil | 2020-10-29 12:30:40 -0400

Improve handling of builder failures with pregen
Before pregen, a builder failure would lead to a force save, and a new
attempt to generate the failed level on load. After pregen, something
similar would have most likely happened, but on load the player would (I
think) be teleported to the failed level and pregen would break. At some
point I added an ASSERT to the save code for other reasons that would
trigger on this case, so most recently the builder would crash without
saving, leading to a broken save (but that could be played up to a
point).

This commit restores a version of the original behavior. If the builder
fails, the game will force-save and then crash. The save step discards
the builder's attempts, but keeps the effect on the rng, so that the
level seed will be different on the next attempt, and most likely
succeed. The end result is still deterministic overall given a starting
seed. When the player loads the save, the builder picks up where it died.
I have been testing this in trunk with seed 17783394655777042589, which
triggers a builder failure (50 vetoes in a row) on depths 3.

This commit also contains a small improvement to the messages API which
didn't end up being needed for the final implementation, but is still a
useful addition.

--------------------------------------------------------------------------------
17f3b190f9 | Nicholas Feinberg | 2020-10-26 17:20:20 -0700

Bring back the Black Knight's barding
It doesn't really do anything particularly thematic, but it does let
you get extremely slow nagas, which is pretty funny.

This commit also fixes a CRITICAL bug with nagas and any source of
ponderousness.

--------------------------------------------------------------------------------
31817bcca1 | Aidan Holm | 2020-10-26 00:15:59 +0800

Add GitHub Actions CI check for header-build-tests
This should prevent accidental backsliding as we work towards fixing our
header file mess.

--------------------------------------------------------------------------------
fd3871438b | Aidan Holm | 2020-10-26 00:11:56 +0800

Add build test for headers with fixed includes
This helps verify that headers are including everything they use (IWYU),
since if they are not, compilation will fail. We don't actually do
anything with the compiled objects.

This complements implicit checks for cc files, which must include their
dependencies because they could not successfully compile otherwise.

This commit only includes a subset of all header files. Header files can
be appended to this list as they are fixed.

--------------------------------------------------------------------------------
37461d386a | Aidan Holm | 2020-10-26 00:11:56 +0800

Split debug defines out of AppHdr.h
These defines sync DEBUG and NDEBUG. Normally, I'd do this in the
Makefile, which would ensure that all compilations have only one of
these defined, but unfortunately different compilers provide different
options.

Instead, we can move this to its own header file. This allows it to be
included from debug.h, which depends on these rules to verify that they
are not out of sync. Really, all .h and .cc files should include this,
as header files may define static functions which contain asserts, which
would otherwise invoke the assert macro before possibly defining NDEBUG.

Probably the ideal solution in the general case is to have a single
header file that all other headers must include. This should be
extremely minimal, containing only definitions that are vital for
correctness, such as this DEBUG/NDEBUG syncing. Specifically,
convenience definitions should not be included: AppHdr.h is already a
mess in this regard.

--------------------------------------------------------------------------------
35ab6135f1 | Aidan Holm | 2020-10-26 00:11:56 +0800

Fix includes for some commonly used header files

--------------------------------------------------------------------------------
5745fe7e1e | Aidan Holm | 2020-10-26 00:11:56 +0800

Add includes, using statements for std::vector

--------------------------------------------------------------------------------
e1b933468a | Aidan Holm | 2020-10-26 00:11:56 +0800

Fix includes for all foo-type.h headers

--------------------------------------------------------------------------------
d4e364d7e7 | Aidan Holm | 2020-10-26 00:11:56 +0800

Split kill_method_type enum into its own header file
Going full IWYU is difficult doe to tangled dependencies between
different files. Breaking this enum into its own file will break one of
these cycles.

--------------------------------------------------------------------------------
a620742f1a | Aidan Holm | 2020-10-26 00:11:56 +0800

Make some mon-ench methods private

--------------------------------------------------------------------------------
1d075126af | Aidan Holm | 2020-10-26 00:11:17 +0800

Add BUILD_ALL=1 build tests to GHA CI
These are only run for TILES builds for clang/gcc, since they have the
widest set of dependencies and will therefore likely catch issues with
webtiles/console builds.

--------------------------------------------------------------------------------
a618de3f7c | Nicholas Feinberg | 2020-10-25 08:44:30 -0700

Appreciate the great tradition of curling
To make palentongas a bit more interesting, and to synergize with their
'roll into a bunch of enemies' power, give palentongas a passive
'defensive curl' mutation at XL 7. This gives them +7 AC after they've
been hit, lasting until the *start* of their next turn. In short, it
makes them tougher against multiple enemies or against multi-hit enemies
like hydras, somewhat like the inverse of how shields work.

The main issue here is communication. I'm not sure how best to demonstrate
to the player that this is happening on subsequent hits without spamming
'you curl/you uncurl' messages after every hit. The behaviour in this PR
has no spam but is also super easy to miss entirely. Suggestions welcomed!

--------------------------------------------------------------------------------
110436ef5a | Aidan Holm | 2020-10-25 21:18:14 +0800

Fix ccache not working on GitHub Actions CI
ccache was not working for a number of reasons. First, the compiler was
not being invoked through ccache: this requires invoking the compiler
via a symlink named after the compiler binary that points to the
ccache binary.. An alternative method is to add a directory containing
preprepared symlinks to the PATH. alexjurkiewicz/setup-ccache does this,
but it seems the path it prepends is incorrect.

Next, GHA will not actually *update* the cache contents if the cache
was restored with a direct key match! In order to fool GHA into doing
so, we append the SHA1 of the commit being tested, ensuring that each
cache save is saved with a unique key (jobs with the same SHA are
disambiguated by matrix parameters). Cache restoring therefore relies
on partial matches, and will restore the most recently saved cache
snapshot.

However, GHA cache restore prefix matching apparently requires a dash
at the end of each pattern in order to match. This isn't documented
explicitly (of course), but all their examples use this format, and
adjusting this caused GHA to correctly restore the most recent cache.

This commit also zeroes the ccache stats before running, so that the
stats printed at the end reflect only the current compilation job. If
ccache breaks in the future, this will ensure that we aren't fooled by
the cache being restored, but never used, and showing old stats.

With high hit rates, this roughly halves runtime, from ~15 minutes to ~6
minutes. Major remaining sources of latency:
 - ~3 min: collecting coverage with lcov.
 - Install requirements/dependencies: ~1.5min for gcc, 2min for clang.
 - actions/checkout: ~40sec.
Of these, installing requirements/dependencies can probably be optimized
by caching the package manager cache directories.

--------------------------------------------------------------------------------
f6cc0c2728 | gammafunk | 2020-10-25 02:28:12 -0500

Add a missing wall (n1000)
A bottom-right corner square was missing, thus making the vault
accessible from outside without use of transporter (if you could get
past the statue).

--------------------------------------------------------------------------------
987792ac36 | wheals | 2020-10-24 20:09:20 -0400

Don't crash when a monster kills itself with Primal Wave.
Could happen with Ru retargeting.

--------------------------------------------------------------------------------
74916bafe0 | Aidan Holm | 2020-10-24 23:29:10 +0800

Add missing std:: in enum.h
Since this is a header file (and the most widely used one at that), I'd
like to avoid adding 'use namespace std;' here.

--------------------------------------------------------------------------------
8259087177 | Aidan Holm | 2020-10-24 23:29:10 +0800

Add missing '#pragma once' lines to headers

--------------------------------------------------------------------------------
3815df7bac | Aidan Holm | 2020-10-24 23:29:10 +0800

Move a bunch of preprocessor macros out of AppHdr.h
Currently, most headers are not self-contained; they often refer to
symbols that they do not themselves import. This is pretty awful and
tends to flummox code analysis tools, as well as making automated
refactoring quite challenging (since you cannot simply include a
header).

This commit splits a bunch of widely used macros out of AppHdr.h, which
is the pre-compiled header for DCSS. Unfortunately it's accumulated a
bunch of other cruft which really doesn't belong there; these macros are
commonly used in headers as well, but it's unwise for headers to import
AppHdr.h, since it has many dependencies by design.

We're keeping the 'using namespace std' for now, but it'd really be
better if we can slowly remove this... it's especially bad to include in
headers, since it extends to anything that includes them.

--------------------------------------------------------------------------------
3f4b01202a | Aidan Holm | 2020-10-24 23:28:31 +0800

Add tag-version.h includes
These files all use TAG_MAJOR_VERSION, and so should all include the
header which defines that: tag-version.h

--------------------------------------------------------------------------------
cb57259078 | Nicholas Feinberg | 2020-10-22 19:51:38 -0700

Fix always_show_zot (vt)
Don't claim you're always bezotted while the option is on.

--------------------------------------------------------------------------------
c93c913f66 | Nicholas Feinberg | 2020-10-22 14:53:20 -0700

Don't let rolling boulder beetles push (ardl)
It's bad boulderfeel.

--------------------------------------------------------------------------------
3ec5dac9c6 | Nicholas Feinberg | 2020-10-22 14:53:20 -0700

Randomize roll duration more precisely
Don't round to integer player turns. (This mostly doesn't matter,
but it's nice.)

--------------------------------------------------------------------------------
c79dab02b1 | Nicholas Feinberg | 2020-10-22 14:53:20 -0700

Decay rolling over time
It would (essentially) never expire before, despite having a duration.

--------------------------------------------------------------------------------
cdb31674f6 | Nicholas Feinberg | 2020-10-22 14:53:20 -0700

Make boulder beetles slower than speed 100
The original commit claims they roll at speed 20. Let's do that.

--------------------------------------------------------------------------------
974c44d4c8 | Aidan Holm | 2020-10-22 20:12:51 +0800

Split env.tile_* fields into a separate global
Currently a lot of widely used objects are grouped together into the
env global. While env thankfully doesn't have any behaviour itself,
this has the unpleasant effect of obscuring the actual dependencies
between objects: everything depends on env because everything is in env,
and since it's already widely used, it can easily accrete more stuff,
causing a snowballing effect.

This commit breaks a subset of tile drawing related fields into their
own separate global "tile env" object. The presence of this global isn't
great, but it's much better than lumping everything together: env.h is
included 119 times, while the newly-added tile-env.h is now included
only 23 times: around a sixth of the users. This not only clarifies the
dependencies involved, but will also aid compilation time: if this file
needs to be changed, recompilation will be six times faster.

Of course, ideally none of the functions involved need to pass around
data in global mutable state. With smaller globals with a smaller number
of users, analyzing the structure of data transfer is now tractable,
and hopefully this "tile env" global can be pulled apart and refactored
further.

--------------------------------------------------------------------------------
cf72488783 | Aidan Holm | 2020-10-22 20:12:12 +0800

Add some test cases for coordit.cc

--------------------------------------------------------------------------------
5206c1d7ac | Nicholas Feinberg | 2020-10-21 12:10:56 -0700

Note aux armour in stash search

--------------------------------------------------------------------------------
294304f6e8 | Aidan Holm | 2020-10-19 23:44:45 +0800

Remove igrd() helper macro

--------------------------------------------------------------------------------
f84b0316f6 | Aidan Holm | 2020-10-19 23:44:45 +0800

Remove mgrd() helper macro

--------------------------------------------------------------------------------
e1d8dbde34 | Aidan Holm | 2020-10-19 23:44:45 +0800

Remove grd() helper macro

--------------------------------------------------------------------------------
4c0a3a5005 | Aidan Holm | 2020-10-19 23:44:45 +0800

Remove mitm() helper macro

--------------------------------------------------------------------------------
4ee14324bd | Aidan Holm | 2020-10-19 23:44:45 +0800

Remove menv() helper macro
Rationale: these helper macros allow slightly briefer references to the
same object, but are more obscure: they hide the fact that a single
global object is being referenced, and have inconsistent spelling. They
also make it somewhat harder to use IDE/text editor tools to jump to
definitions and find references. Simply referring to these objects via
the env global is much clearer and more user-friendly.

--------------------------------------------------------------------------------
3c51cfd513 | amcnicky | 2020-10-19 22:41:23 +0800

Give Edmund a weaponless tile, fixing #1453

--------------------------------------------------------------------------------
62c44f1a97 | gammafunk | 2020-10-19 07:37:47 -0500

Adjust doors in a runed door vault
Make the entire entrance to gammafunk_indiana_jones runed to avoid
autoexploring into a Zot trap, and to generally improve the structure of
the vault. Keep the "trap" gate as a (non-runed) clear door, but the
final door normal, since the glass around it takes care of visibility.
Also make the glass stone instead of rock.

--------------------------------------------------------------------------------
30791e7224 | gammafunk | 2020-10-19 07:37:45 -0500

Some transporter vault adjustments
Some placement adjustment for various transporter vaults to make their
placement more appropriate.

gammafunk_its_a_trap: Remove placement from Shoals, where the vault is
generally too large for the islands generated by the layout, and Swamp,
where a large stone structure doesn't fit in as well thematically. I've
left them in Snake, which has a more dungeony layout that fits and
spider, where the stone structure meshes well with the cave-like layout
enveloping it. There is a theme issue that's similar to Swamp, but it's
nice to have transporter vaults in half of our Lair branches. For later
branches with relatively shallow or just absent out-of-depth monster
sets, supplement the 8-tier monsters with some specially selected ones,
using the same choices as gammafunk_dig_for_victory.

emtedronai_trogs_sanctum: Add placement to Orc, since this is certainly
a suitable place for this vault, but using more of the "ogreish'
monsters over too many orc knights.

gammafunk_sealed_arena: Add to all four non-Slime S branches, taking a
bit of care to use the right statue Shoals and wall types for Swamp and
Spider. Also add to Orc and Pan.

--------------------------------------------------------------------------------
18554e4600 | gammafunk | 2020-10-19 07:32:14 -0500

Add transporter vaults to Vaults
With c7717499, we can now place transporter vaults in Vaults. This
commit adds such vaults to this branch as "hard" vault rooms. The
structure of Vaults branch room vaults is such that vaults often need
substantial internal changes in order to be suitable. That usually
requires a separate vault definition, but these transporter vaults work
directly as vault rooms, so I've just given them the necessary tags.

For some vaults, I've added a border of floor around the vault that is
removed when not placing in Vaults branch. I experimented with simply
not having this, which would have allowed the vaults to connect two
otherwise disconnected areas, as they can do when placing outside
Vaults, but the vaults sometimes placed in rooms so that one side was
disconnected from the rest of the map. The necessary "passable" tag
disables checks against this that would otherwise normally generate a
veto, so I'm forced to add this path border. Ideally the zone validation
would know how to path through transporters so we wouldn't need
"passable" at all, but mumra's approach works for now.

For vaults with thematic monsters, I made appropriate choices that are
usually a mix between late Dungeon and Depths, since Vaults shares a lot
in common with both areas. Generally all monsters used can already place
in Vaults, since this is a stipulation these vaults already use for each
branch.

--------------------------------------------------------------------------------
44785f12d5 | Peter Hurst | 2020-10-19 03:34:53 -0500

Add a tag to set vaults as passable
In Vaults layouts, rooms are tagged 'transparent' by default in order to
check the whole level connects up properly. Some vaults may contain
enclosed areas, e.g. transporter vaults, so an escape hatch is needed to
prevent the builder from seeing these as disconnected zones.

Commiter's Note: Removed a linebreak from dungeon.cc and rewrapped
commit message body.

--------------------------------------------------------------------------------
1df16c3386 | Nicholas Feinberg | 2020-10-18 22:08:24 -0700

Rephrase lifesaving desc
"Watches over you" is poetic but very vague. "Guards your life" might
be at least a little clearer as to what it does. Probably there's a
better phrasing yet...

--------------------------------------------------------------------------------
ab205098cb | Umer Shaikh | 2020-10-18 22:08:24 -0700

Check right god for life-saving in god description
Currently describing a god checks your passives when deciding whether to
print something for the protect_from_harm passive. This leads to errors
in both directions: the passive is spuriously indicated when describing
gods that don't give it if you happen to be worshipping a god that gives
it, and is not printed for gods that do give it if you're not
worshipping them.

After this commit the god description checks whether the god being
described gives that passive.

(Committer's note: did a bit of refactoring.)

--------------------------------------------------------------------------------
578ab304f5 | Aidan Holm | 2020-10-19 00:15:38 +0800

Fix out-of-bounds access (wheals)
This bug was introduced in b5bd653, which changed some code to use an
adjacent_iterator in passing, but neglected to adjust the expression
used to derive the adjacent coord_def.

--------------------------------------------------------------------------------
b5bd6537f4 | Aidan Holm | 2020-10-18 16:37:39 +0800

Remove references to globals across files
I found three separate instances of functions reusing a global variable
exposed by travel.cc for their own scratch space, all for mild
variations on the same BFS algorithm. This commit replaces that with a
local variable, and one of a more sensible type as well; only a boolean
visited / not visited state needs to be tracked.

I don't quite have the energy to properly extract these right now, but
these would possibly be a good candidate for unit testing.

--------------------------------------------------------------------------------
d58323b419 | Nicholas Feinberg | 2020-10-17 22:21:32 -0700

Make bats less anthrosolipsistic
Batty monsters' behaviour depended on player turns, not monster turns,
which created strange and counterintuitive incentives. If you wanted
batty monsters (e.g. summoned harpies from Monstrous Menagerie) to
attack more often, attack the air with a short blade. If you wanted
them to attack less often, use a slower weapon.

This commit changes batty monsters to move randomly for exactly 3
turns after attacking (for most monsters - harpies and thrashing horrors
a little less, spatial maelstroms a little less yet).  It ends up looking
pretty similar, in my limited testing.

--------------------------------------------------------------------------------
92642533e4 | Nicholas Feinberg | 2020-10-15 08:04:34 -0700

Make pacified monsters visible (hellmonk)
To avoid accidental penance with Ely and to make it a bit more
consistent with friendly monsters. This mostly, but not exclusively,
affects Ely worshippers.

--------------------------------------------------------------------------------
ee0ae89446 | Nicholas Feinberg | 2020-10-15 07:27:42 -0700

Mark ratskin as evil (12373)
Since its hell rats will trigger ely wrath, apparently?

--------------------------------------------------------------------------------
efeb406119 | gammafunk | 2020-10-12 18:12:00 -0500

A boulder beetle transporter vault
In gammafunk_boulding_lane, the player transports into the far side of
the vault with one to three boulder beetles at the far side. If you can
manage to get in before the boulder beetles all see you, you might avoid
their rolling down the lanes as they look to mark a strike. The loot
always contains a pre-identified pair of boots of rampaging (which can
be barding). The number of beetles and loot quality and quantity scales
with depth, with up to 3 beetles appearing along with an eventual torpor
snail. The loot scales up to artefact quality boots and another
star_item.

--------------------------------------------------------------------------------
c8b27b8fc1 | gammafunk | 2020-10-12 06:57:06 -0500

A themed vault with boulder beetles
In gammafunk_indiana_jones, you find the corpse of adventurer in a
narrow, spider-filled corridor leading to a "trap" room with a boulder
beetle (or two or three), that further leads to a trapped treasure room.
In earlier depths, this is flame clouds in front of lava snakes
(snakes...why did it have to be snakes...), and later on this becomes a
room with fast moving spiders and Zot traps. If the player fights the
beetle(s) in the long corridor, they're fairly likely to get flattened
by a rolling bug.

The loot consists of the characteristic whip and hat near the corpse,
which scales in quality and with the whip eventually becoming a demon
whip, along with jewellery plus possible gold in the treasure room. The
monsters and traps likewise scale in number and dangerousness with
depth, increasing the number and dangerousness of spiders as well as the
number of boulder beetles.

It'd be nice to better decorate this vault in Tiles with a more forest
temple theme, but there aren't very appropriate stone wall tiles for
this purpose.

--------------------------------------------------------------------------------
36e8fdb655 | Nicholas Feinberg | 2020-10-09 12:02:22 -0700

Shrink hell sentinels back down
I'd misunderstood the context of a request.

--------------------------------------------------------------------------------
8b9c6dab81 | Nicholas Feinberg | 2020-10-08 19:27:10 -0700

Make demons truly spineless
Remove M_SPINY from Hell Sentinels and torturous demonspawn. This
mechanic had approximately no impact on the game - 4d5 AC-resisted
damage is just not meaningful against extended-capable characters.
We could increase the damage or not make it AC-resisted, but the
effect isn't very interesting here. There's no particular reason we'd
want melee characters to be somewhat worse at fighting these enemies,
and if we did want that, we could just strengthen their melee attack.

Hell Sentinels are now giant so as to be net immune. This will also
let them waltz through deep water, which probably doesn't matter?

--------------------------------------------------------------------------------
406de6ba63 | wheals | 2020-10-07 21:17:52 -0400

Don't splash yellow draconian spit onto the spitter.

--------------------------------------------------------------------------------
c07710193c | Nicholas Feinberg | 2020-10-04 16:56:05 -0700

Streamline the Zot Clock
(Alternate commit title: Zot Around The Clock)

The Zot clock has been working OK as a time limit, but
it has a major shortcoming: it's not explained to players
at all. The reasoning there was that we didn't want to
stress players out or to make it easier to sneak around
the clock, but the very loose time limits on the current
clock make it easy to sneak around regardless for a spoiled
player, and unexplained mystery deaths are more stressful
than occasional messages.

(Also, if players don't know that the clock exists, it
doesn't serve its intended role of discouraging very slow
play!)

So, derandomize the Zot Clock, remove the drain penalty,
display remaining turns when there are <1k left, and add
an option (off by default) to display remaining turns at
all time. Also, take another pass on the messaging. That
should hopefully leave the whole thing in good enough
shape for release.

--------------------------------------------------------------------------------
d791e6c4ce | Nicholas Feinberg | 2020-10-04 15:28:56 -0700

Remove an antique and redundant status list
Sage, really?

--------------------------------------------------------------------------------
bdda728c12 | gammafunk | 2020-10-04 07:51:47 -0500

Fix the TAG MAJOR upgrade script
The pakellas experiments des file has already been removed.

--------------------------------------------------------------------------------
645a0caaaf | gammafunk | 2020-10-04 07:16:51 -0500

Remove unused Pakellas vaults
These vaults where sitting in a des file with 0 weight mostly due to
accompanying lua triggers that need to be defined for save compatibilty.
I've moved the required functions to a designated save compat lua file
with the function definitions emptied out to the extent possible. This
should cover save compatibilty, but even if there is a problem, the odds
of there being an affected save out there with the vaults actually
generated are quite small at this point.

--------------------------------------------------------------------------------
fc2450931f | gammafunk | 2020-10-04 07:16:48 -0500

Remove some boring beasts
With the re-introduction of boulder beetles to Lair and Dungeon, it's a
good time to remove some of the redundant beasts we have in these
branches. This commit removes hippogriffs, crocodiles, and porcupines.
The first two are simple speed 10 beasts that have little to
differentiate themselves from other melee-only monsters of similar
difficultly at mid-Dungeon and Lair depths.

Porcupines are fast and have a spine mechanic, so they're arguably the
most interesting of the three removed monsters. However their spines are
an "anti-melee" trait that works poorly in terms of influencing the
player's decision to melee or not. Culling the monster list down to a
set that all work well design-wise is a good long-term goal, and neither
branch lacks for good fast melee monsters.

Level spawn weights of each of the three removed monsters has been
giving to respective similar monsters in both branches, with adjustments
so that the impact of removal is minimal. The new weights and changes in
level spawn chance are described in this google spreadsheet:

https://docs.google.com/spreadsheets/d/16lBJeSFqxFsy8MPFUBcjV0ZnvU172e2G-8WWO1ly
xpU/edit?usp=sharing

See the "Chance (Modified)" and "Increase in chance" sections of each
sheet.

Dungeon has such a large monster set that the largest increase in any
affected monster placement on any level is a fraction of 1%. For Lair,
the largest increase is less than 3%. I increased placement range of the
few more interesting beasts such as polar bears, hell rats, stream
dragons. Additionally, a few weights for rarer Lair beasts are now
doubled, but these monsters are already quite rare and have a placement
chance of 1% or less throughout their range.

--------------------------------------------------------------------------------
3d26443778 | gammafunk | 2020-10-04 07:09:05 -0500

Re-implement boulder beetles
Boulder beetles return as a speed 10, 12 HD monster with good AC, melee
slightly better than a death yak, and a rolling attack that doubles
their movement speed and melee damage (1d32->1d64).

They will only self-enchant with the rolling debuff when not already
adjacent to their foe, hence either killing them at range or getting
them into melee range is a priority to avoid their 1d64 rolling damage.
After performing a melee attack in the rolling state, the beetle always
debuffs, returning to its unrolled state. One of the advantages of
having the roll attack be normal melee is that it uses normal melee
mechanics, checking SH and EV, and their modified attack damage is shown
under x-v when in the rolling state.

Boulder beetles also have a blink ability in order to eventually reset
their positioning and allow a subsequent roll, although they cast this
with low frequency. While rolling, they never use either of their
abilities.

Possible TODO items:

1) "Missing" the player. In my original proposal, I wanted a missed roll
to allow them to "roll past" the player, giving the player a chance for
additional punishment but also allowing the beetle to set up another
roll. Currently this is not implemented, since this aspect was mostly to
the old trivially avoidable (but comedic) roll attack. They already can
reset their position using blink, and with the profile of this monster,
giving the player additional opportunities to damage it would likely
just make it too easy. Still, it remains an option if `??meme rule` is
being ignored.

2) Rolling duration. Right now it's 10 to 15 turns, giving faster
players a fighting small chance at outrunning a rolling beetle that
starts rolling many tiles away, but for normal speed players, even being
7 tiles away means they will not outrun the roll.

3) AI changes while rolling. Should beetles ignore damaging terrain like
traps and clouds while rolling? Currently they don't change their damage
consideration compared to their normal state. This would lead to them
"hover-rolling" before damaging clouds in some cases.

4) Theme of "blink". This is done as the usual translocations effect,
although I had originally planned for this to be themed as a "flip" to
make more thematic sense as a natural ability. Jumping spiders likewise
have no special translocations theme and do the same kind of blink, so
maybe leaving the normal blink is best.

5) Placement and vaults. I mostly re-added them to the spawn lists with
sensible weights and to vaults and Sprint in the appropriate places.
I'll likely make some special boulder beetle transporter or runed door
vaults that get at the theme of the old boulder beetle trap vaults, just
without the spoilers.

--------------------------------------------------------------------------------
0cdd606a97 | gammafunk | 2020-10-04 04:23:58 -0500

Insect glyph reorganization
Insects were using 'a' (ants), 's' (mostly arachnids), and 'y' (flying
insects. With the re-introduction of boulder beetles in a forthcoming
commit, I'm re-introducing the 'B' glyph and moving all ants, beetles,
and other non-flying insects here. Now 's' is reserved for arachnids,
and we won't have a new mostly unused insect glyph on 'B'.

Alternatively we could have beetles and non-flying insects on 'a', thus
not moving ants from their ideal home, but kate- was more in favor of
the 'B' glyph. There are only two prominent monsters that are bona fide
ants and that actually appear in level spawn lists: worker and soldier
ants. There are perhaps more prominent non-ant insects that likewise
appear in spawn lists: giant cockroaches, boulder beetles, and death
scarabs. Entropy weavers aren't truly insects, although legends say they
are truly formicids, hence ant-like. In any case, it's possible to move
non-flying insects all from 'B' to 'a' if the 5% of the player-base that
uses console raises an ant army in revolt.

--------------------------------------------------------------------------------
6669bab64c | Nicholas Feinberg | 2020-10-03 20:45:04 -0700

Update the manual

--------------------------------------------------------------------------------
afc20e3620 | Nicholas Feinberg | 2020-09-30 10:06:31 -0700

Extremely vane tiles (canofworms)
TO
DO

--------------------------------------------------------------------------------
b41185065b | Nikolai Lavsky | 2020-09-27 11:42:01 -0700

Cancel Heroism and Finesse on angering or abandoning Okawaru
Currently, only Heroism, Finesse, and Elyvilon's Divine Protection
don't expire immediately when the player is placed under penance. It
seems thematically appropriate for Divine Protection, but even Elyvilon
removes all divine effects on abandonment.

This commit puts Okawaru in line with other gods.

--------------------------------------------------------------------------------
1bad37f382 | Petri Salminen | 2020-09-27 11:41:28 -0700

Update INSTALL.md
Instructions for Void Linux were removed in f485615. The table of contents 
should not have dead links.
--------------------------------------------------------------------------------
f8c6c3aab7 | Nicholas Feinberg | 2020-09-25 13:41:36 -0700

Remove qw support for dragon hides

--------------------------------------------------------------------------------
87339cca5e | advil | 2020-09-24 12:29:16 -0400

Update an advanced_optioneering example
I'm not sure how useful this really is in and of itself, but it's useful
as an example userfunc macro at least.

--------------------------------------------------------------------------------
31898f1a13 | advil | 2020-09-24 12:29:16 -0400

Set an error on invalid fn argument to c_macro
Entirely possible that this will start popping up errors all over the
place for something I'm not expecting...

--------------------------------------------------------------------------------
5d7718319a | Nicholas Feinberg | 2020-09-22 19:27:05 -0700

Adjust gold acquirement
Now that the player can see all acquirement options before choosing one,
gold became too often a very easy choice. The massive swings of the old
gold acquirement formula made sense when the player was gambling on an
unseen outcome, but now that the player can see the result before choosing,
all it does is produce random windfalls and unsatisfyingly simple acqs.

Simplify the formula to range nonlinearly between 200 (a disappointing but
nonzero consolation prize) and 1400 (a solid chunk of change, enough to
buy many small things or one very big important thing). Mean of 800, which
is only a bit lower than the old mean and is reasonably competitive with
many items, but generally less exciting than anything really good. (Which
it should be, because getting items from acq is fun!)

I considered removing the guaranteed gold acq, but I think it is good to
have a decent fallback case to acquirement. It just shouldn't be the pick
quite so often.

--------------------------------------------------------------------------------
fe262e0a26 | Nicholas Feinberg | 2020-09-22 18:58:01 -0700

Remove guaranteed early Nemelex deck
As with Gozag, Nemelex granting a guaranteed early deck (before the
player even reached 1* of piety!) was part of what made them remarkably
strong. Shift that early guaranteed deck and all other deck gifting to
after the player reaches 1* of piety, to require a little work by the
player before they get their reward. (This decreases deck gifting somewhat
in general, though less so at higher piety.)

--------------------------------------------------------------------------------
27c59cc0ac | Nicholas Feinberg | 2020-09-22 18:39:06 -0700

Remove free gozag potion petition
Few gods give anything to their followers on initial worship. One of
Gozag's strongest traits is the instant on-worship get-out-of-jail
card that the free intro potion petition grants. Let's dial that back.

--------------------------------------------------------------------------------
de13210b43 | Nicholas Feinberg | 2020-09-22 18:34:50 -0700

Remove hat (hellmonk)
From the name of the Ashenzari altar, to avoid false name matches.

--------------------------------------------------------------------------------
67e99244d3 | Nicholas Feinberg | 2020-09-20 08:06:55 -0700

Merge Hell zot clocks
Avoid some corner case issues involving the Vestibule, maybe.

--------------------------------------------------------------------------------
ca5d07dbe9 | Nicholas Feinberg | 2020-09-20 08:05:31 -0700

Simplify some hellishly buggy travel code
Obviously, don't fix the bug.

--------------------------------------------------------------------------------
7269bf8ee0 | Nicholas Feinberg | 2020-09-20 07:57:38 -0700

Raise Zot Clock bank cap 15k -> 27k
The goal of the zot clock bank cap is to prevent players from having
truly tremendous amounts of time to spend to do tedious things on
specific floors. In practice, I haven't seen reports of anyone really
doing anything unpleasant with the current limit, and the 15k cap caused
issues with shaft traps on rare occasions.

Let's raise it to 27k (meaning it approximately doesn't exist outside D)
and see what happens. It might vanish entirely in future, or it might drop
again, depending on the results of this experiment.

--------------------------------------------------------------------------------
72c4674329 | wheals | 2020-09-14 13:03:46 +0300

Fix a crash on describing an unid'd wand.

--------------------------------------------------------------------------------
cca6ad1b57 | Nicholas Feinberg | 2020-09-13 13:34:13 -0700

Remove Traps and Doors
This comment was added along with the vault 10 years ago (in c2102b4)
and referred to a long NSUBST sequence that has long ceased to be.

--------------------------------------------------------------------------------
383da0171f | Nicholas Feinberg | 2020-09-13 13:34:11 -0700

Refactor monster self-destruct code

--------------------------------------------------------------------------------
fd52b7e0f3 | Nicholas Feinberg | 2020-09-13 13:34:11 -0700

Remove unused M_HYBRID flag
Obsolete since f67d6e41dd8a7dce658198c42247ac2f8df114a4 , back in
2015, hah!

--------------------------------------------------------------------------------
9520f50b25 | Nicholas Feinberg | 2020-09-13 13:34:11 -0700

Refactor monster death effects

--------------------------------------------------------------------------------
b8a88fe62b | wheals | 2020-09-13 16:58:05 +0300

Update the Place: on the sidebar when leaving X.
There was a bug that left it showing the last place you had looked at,
rather than your current location.

--------------------------------------------------------------------------------
b3e73fbb7a | wheals | 2020-09-13 14:29:51 +0300

Always abort charge targeter with no valid targets (#12355).

--------------------------------------------------------------------------------
926a82b99e | wjchen | 2020-09-12 21:35:11 -0400

Handle dynamic DPI in webtiles glyphs mode
This commit fixes handling of dynamic DPI situations in webtiles glyphs
mode that was accidentlly broken in 4531bab.

--------------------------------------------------------------------------------
ed93497179 | Umer Shaikh | 2020-09-11 17:58:24 -0400

Give x-v a selection menu when there are many describable things
This commit creates a selection menu when you x-v a tile with multiple
monsters, items, or notable features (following the ^x screen's notion
of notability), whether or not they are of the same type.

As of 2a96157, when there is an item stack on a tile you can x-v the
stash to describe any item in the stash by selecting the desired item
from a menu. However, if a monster is on that stash, then x-v describes
the monster and ignores the items. Similiarly, a monster or items stop
you from seeing the description of an interesting feature. After this
commit a selection menu will pop up in any of those cases, so you won't
be stopped from examining underlying things of a different type.

This commit adapts the menu in _full_describe_menu, which is already
designed for displaying a selection menu with these three types of
things. Therefore I've removed the function describe_items, added
recently by 2a96157 to allow selection from a stack of items.

--------------------------------------------------------------------------------
60e059b9e0 | Skrybe | 2020-09-11 17:42:45 -0400

Distort layout_cave_pods when in Snake
Give a wavy structure to the corridors and walls of layout_cave_pods
when generated in Snake.  This is the same effect that is already used
for onion and onion_interference in Snake.

[ Committer's note: checkwhite. Closes #1561 ]

--------------------------------------------------------------------------------
f2846fb106 | Skrybe | 2020-09-11 17:42:29 -0400

Update layout_loops.des
Along the same thinking as chaotic_city, remove an uncommon chance to create a 
layout entirely of stone or metal in Lair.  This function is used in all of the 
loops layouts, but only layout_loops_ring is currently used in Lair.
--------------------------------------------------------------------------------
3778a07750 | Skrybe | 2020-09-11 17:42:21 -0400

Edit layout_chaotic_city
The layout now only places rock walls when generated in Lair, per a TODO note.  
The result does look far better, IMO.

--------------------------------------------------------------------------------
bc31f999d5 | mgdelmonte | 2020-09-11 17:32:21 -0400

Fix item.subtype() in CLua
[ Committer's note: reworded. Closes #1451. Closes #1551 ]

--------------------------------------------------------------------------------
c8f5442073 | Nikolai Lavsky | 2020-09-11 17:32:21 -0400

Actually let randarts generate with the spectral brand
As a followup to 65aa84ea, this commit adds the spectral ego
to the list of possible artefact brands for melee weapons.

[ Closes #1541 ]

--------------------------------------------------------------------------------
25d4643a78 | Naruni | 2020-09-11 17:32:21 -0400

Describe wand noise levels
Inspecting a wand will tell the player how much noise is generated when
evoking the wand.

[ Committer's note: squash + reword. Closes #1539 ]

--------------------------------------------------------------------------------
b68aede52e | Implojin | 2020-09-11 17:30:49 -0400

Fix Hailstorm ally warning prompt (12362)
This commit silences the hailstorm ally warning prompt for battlesphere,
spectral weapon, orb of destruction, and demonic guardians.

Monsters with M_PROJECTILE, (allied) M_AVATAR, or MF_DEMONIC_GUARDIAN flags
are bypassed in bolt targeting by bolt::ignores_monster, and hailstorm cannot
actually deal damage to them.

--------------------------------------------------------------------------------
6fb13256a3 | Edgar A. Bering IV | 2020-09-11 17:27:20 -0400

Merge pull request #1558 from nlavsky/add-rampage-to-overview
Display Rampage on the % screen
--------------------------------------------------------------------------------
3497ee646f | Marcelo Henrique Cerri | 2020-09-11 17:23:02 -0400

Fix the divider position when tile_force_overlay is set
When tile_force_overlay is set the divider should always be set to the
end of the of the screen. Move the code that sets that to later in the
code so it doesn't get overwritten.

Without this fix, the space reserved for the message window is still
left unused at the bottom of the screen while the message overlay is
moved to the top of the screen.

--------------------------------------------------------------------------------
fda0128422 | Alex Jurkiewicz | 2020-09-11 17:16:35 -0400

Expand macOS install instructions further (erf)

--------------------------------------------------------------------------------
b025daac67 | Alex Jurkiewicz | 2020-09-11 17:16:35 -0400

Improve docs for running DCSS after compilation

--------------------------------------------------------------------------------
e606b53fed | Umer Shaikh | 2020-09-11 17:12:04 -0400

Remove bad position clamp for peeking through stairs
Using X and [ or ] to peek through stairs at different floors is
supposed to deposit the cursor on the other end of the staircase. Lately
the cursor has been frequently deposited in incorrect locations.

It appears that 08ff59a6b inadvertently clamped the destination position
according to the known map bounds of the floor being peeked from, which
tends to move the cursor to an incorrect spot on the floor being peeked
into.

I have simply removed the clamping: if mstate's position was on the same
level then the clamping after the conditional call to goto_level will
serve the same purpose, and if not then clamping before that call is an
error.

--------------------------------------------------------------------------------
0cdeefecac | Umer Shaikh | 2020-09-11 17:08:56 -0400

Stop acquirement of +4 stat rings
These rings aren't supposed to exist anymore as of 2607d5cfa1. However
acquirement was making them by producing -4 bad stat rings and then
setting the rings' plus value to abs(the old plus).

This commit has acquirement directly set the plus for acquired rings to
the "good" value for that base type. This does not affect unrandarts but
may modify randarts.

--------------------------------------------------------------------------------
6fa6d65a89 | Roderick Schertler | 2020-09-11 17:04:29 -0400

Add missing "info" command to --edit-save help

--------------------------------------------------------------------------------
0e99e02c7f | Implojin | 2020-09-11 16:49:24 -0400

Fix a rampaging bug (12353, Flugkiller)
This fixes a rampage interaction with deep water / lava.

Previously, the rampaging tracer wasn't properly failing on dangerous
terrain. This was causing the rampage to abort at its moveto check instead,
which erroneously blocked the second half of the move.

--------------------------------------------------------------------------------
457a34ca9c | Nicholas Feinberg | 2020-09-10 19:28:38 -0700

Update an antique comment
Obsoleted in 87348de860b6d4e (2016).

--------------------------------------------------------------------------------
4f23886233 | advil | 2020-09-09 21:18:21 -0400

Don't crash when putting on non-jewellery
You can try to do this via the * menu, as long as you have jewellery at
all. This looks like it was broken when the call order was rearranged in
b2248e6a10f6; the problem is that jewellery_is_amulet will crash if it
is handed non-jewellery (because it is a subtype check, and is only
meaningful in that case), whereas this code assumes it would return
false. Just adding in the item type check is inelegant, but I don't want
to mess with the ASSERT.

--------------------------------------------------------------------------------
f7241eeb75 | Nikolai Lavsky | 2020-09-08 21:49:38 +0300

Display Rampage on the % screen
It's often hard to see all properties of equipped artefacts on
the overview screen, especially when the artefacts have long names.
The Rampage ego, which can appear on any randart armour, dramatically
changes the player's movement. So it's worth having a quick way
to see if equipped items have this ego.

--------------------------------------------------------------------------------
d4d190f45e | Nicholas Feinberg | 2020-09-07 13:45:07 -0700

Squash extra SAC_LOVE messages (wheals)
2951c229262b0cf5f incorrectly removed the !mons.wont_attack() check,
resulting in a lot of extra messaging for monsters that already hated
the player.

--------------------------------------------------------------------------------
354ed81502 | Kate | 2020-09-03 15:57:12 +0100

Rebrace

--------------------------------------------------------------------------------
3e9335bbc7 | Nicholas Feinberg | 2020-09-01 20:33:33 -0700

Re-remove the black knight's barding
Vaults are my passion

--------------------------------------------------------------------------------
2bb1e3ea85 | Nicholas Feinberg | 2020-09-01 17:41:38 -0700

Withered plant fixes
Display 'withering' in the name line, don't call withered plants
'withering' (crumble them instead), and don't show the withering icon
on other slowly dying things.

--------------------------------------------------------------------------------
b552214b31 | Nicholas Feinberg | 2020-09-01 17:25:10 -0700

Don't show withering on non-plants

--------------------------------------------------------------------------------
4e331d26ce | Nicholas Feinberg | 2020-09-01 17:21:19 -0700

Simplify Vampiric Draining
Don't limit damage done by the healing the player can receive. Allow
the player to heal more than half the difference between their max HP
and their current HP.

--------------------------------------------------------------------------------
3c8f2f65f7 | Neil Moore | 2020-08-30 20:31:05 -0400

Un-downgrade sdl2 submodule (doh)

--------------------------------------------------------------------------------
8898e5d847 | Neil Moore | 2020-08-30 19:42:48 -0400

Avoid ODR violations in mon-ai-action.h
With -Wmissing-declarations, gcc warns "no previous declaration for"
each of these functions.  Even worse, it violates the one definition
rule to define an extern non-inline function in more than one
translation unit, as would happen if we were to include this header
from anywhere other than mon-cast.cc.

Practically, it would work with most compilers, since they are not
required to flag ODR violations across compilation units, but it would
still be undefined behaviour, and the warnings are annoying anyway.

--------------------------------------------------------------------------------
9cd6e92bd5 | Neil Moore | 2020-08-30 19:30:39 -0400

Allow wizardry to stack again (Yermak)
Introduced in 0.26-a0-593-g36fcd6fac6.  The ternary operator has very
low precedence (tied with assignment), so should almost always be
parenthesized when used in a larger expression.

--------------------------------------------------------------------------------
2e982bf181 | Neil Moore | 2020-08-30 19:27:22 -0400

Allow offensive drowning of giants (Yermak)
Though they're big enough to walk through water, and therefore fake-
amphibious, they are, unlike truly amphibious creatures, still not happy
having their heads submerged.  This affects primal wave, AF_DROWN, and
AF_ENGULF.

It may appear that this change would affect grey draconian monsters too,
but they're unbreathing independently of their fake amphibiousness.

--------------------------------------------------------------------------------
d42a14c23b | Kate | 2020-08-29 19:41:42 +0100

Remove some unnecessary breaks

--------------------------------------------------------------------------------
4a4847f518 | Kate | 2020-08-29 19:41:00 +0100

Don't crash when trying to enslave soul on empty space (wheals)

--------------------------------------------------------------------------------
0e591452db | Kate | 2020-08-29 19:40:39 +0100

Fix spacing in some mutation descriptions

--------------------------------------------------------------------------------
c8f6553d2c | ukdong99 | 2020-08-27 22:38:46 -0700

Unmute Donald for WJC followers (#1540)
Donald has accidentally been saying nothing to followers of the Wu Jian Council.
--------------------------------------------------------------------------------
61e6210cf4 | Implojin | 2020-08-26 22:17:31 -0400

Prevent slimy shafting (/u/zeunysos)
In some circumstances, it was possible to be shafted adjacent to a
slime wall, and take damage before having a chance to act.

This commit adds a slime wall adjacency check to shaft destinations.

--------------------------------------------------------------------------------
b535b0901c | Edgar A. Bering IV | 2020-08-24 09:28:12 -0400

Clarify Serpent's Lash description to exclude fancy movement
Helps with #1531

--------------------------------------------------------------------------------
00aaa63842 | Edgar A. Bering IV | 2020-08-24 09:27:37 -0400

Don't allow Searing Ray to track invis monsters (12350, Naruni)

--------------------------------------------------------------------------------
366c5f69ff | Edgar A. Bering IV | 2020-08-24 09:07:05 -0400

Lint

--------------------------------------------------------------------------------
44661e4d24 | hellmonk | 2020-08-24 08:45:04 -0400

New scales facet, sharp scales.
Provides 1/2/3 AC and slaying. Slightly pushed but slayscales are cool.

[ Committer's note: squashed and rebased. Closes #1499 ]

--------------------------------------------------------------------------------
36fcd6fac6 | hellmonk | 2020-08-24 08:44:55 -0400

New "scales" facet, Big Brain.
Expanding brain demonspawn get +2/4/6 int, plus wizardry at mutation
level 3, in lieu of scales. Relative to other scales facets, this is
weak at ranks 1 and 2 but pretty good at rank 3. Could change the int
gain to 4/5/6, perhaps.

--------------------------------------------------------------------------------
fa8599eb46 | hellmonk | 2020-08-24 08:43:12 -0400

Double the stealth bonus of thin skeletal structure

--------------------------------------------------------------------------------
04f19ec95a | wheals | 2020-08-24 00:26:11 +0300

Improvements to the charge targeter.
Cancel immediately if there are no nearby monsters, show the landing
site differently, and clarify the messages.

--------------------------------------------------------------------------------
0a1b7681ed | wheals | 2020-08-23 22:57:26 +0300

Don't pop up a menu for self-targetting.
It looks bad on webtiles and terrible on console.

--------------------------------------------------------------------------------
25b58072bd | wheals | 2020-08-23 22:36:25 +0300

Fix bennu blazing into flame when they get banished.
This sets MF_BANISHED on all monsters that get banished, even if they
aren't being moved to the Abyss. This seems right to me, since
specifying which ones you can encounter later is done by the transit
list, but there may be edge cases I've missed.

--------------------------------------------------------------------------------
7d0f55a901 | Naruni | 2020-08-23 10:51:59 -0400

Tweak enslave soul when used on clones (12340)
Using enslave soul on a clone results in an info leak at no cost to the
player.  Change the behavior to provide a message that the target is a
clone and player loses MP, piety, and a turn.

[ Committer's note: reword and squash. Closes #1530 ]

--------------------------------------------------------------------------------
905d6fb3df | Roderick Schertler | 2020-08-23 10:22:33 -0400

Try to break a net holding you when moving up/down stairs
When you are trapped in a net and try to move you instead try to break
the net.  Currently trying to use stairs while you are netted gives "You
can't do that while held in a net."; change this to behave like a
lateral move.

Rationale:  I was netted while on the stairs and I definitely did not
want to step off of them.  I expected "<" to try to break it.  I
actually could have used a lateral move because when you break the net
you don't also do the move, but that isn't obvious.

--------------------------------------------------------------------------------
790e954c4a | wheals | 2020-08-23 11:29:52 +0300

Don't reset the unarmed prompt after weapon-wielding forms expire (FIQ).

--------------------------------------------------------------------------------
58d91cd255 | wheals | 2020-08-23 11:29:52 +0300

Remove an unused function.

--------------------------------------------------------------------------------
b771c2ac19 | wheals | 2020-08-23 11:29:52 +0300

Update Beastly Appendage description for the changes in 34f0fc0.

--------------------------------------------------------------------------------
0021074b2a | wheals | 2020-08-23 11:29:52 +0300

Don't allow upgrading (or downgrading!) muts with Beastly Appendage.
This also fixes a crash when looking at the mutation screen after
downgrading a mutation.

--------------------------------------------------------------------------------
ec200485ca | wheals | 2020-08-23 11:29:52 +0300

Let Palentongas get poisonous tails.

--------------------------------------------------------------------------------
afce7a58c0 | wheals | 2020-08-23 11:29:52 +0300

Hide Charms aptitude on ?%.

--------------------------------------------------------------------------------
4860111d27 | Nicholas Feinberg | 2020-08-22 16:34:01 -0700

Don't show removed branches in &~
It made it impossible to see the lair branches in local tiles, and
also wasn't very useful.

I still can't see Lair, Dungeon, Temple, or one other branch, but
I'm not sure what else to do to improve it...

--------------------------------------------------------------------------------
3afe4966bf | Nicholas Feinberg | 2020-08-22 14:48:50 -0700

Fix objstat

--------------------------------------------------------------------------------
c4b6802de3 | Edgar A. Bering IV | 2020-08-22 07:59:27 -0400

Update the changelog

--------------------------------------------------------------------------------
ba4b82f8d2 | Implojin | 2020-08-22 07:50:06 -0400

Fix plant wither duration
This commit fixes a bug with plant withering:

Previously, the duration of ENCH_SLOWLY_DYING was being incremented each
time a plant took damage, which led to plants dying very slowly indeed if
the player attacked them repeatedly.

--------------------------------------------------------------------------------
cfaa98f945 | advil | 2020-08-21 12:02:55 -0400

Better handle db descriptions for removed item types
Now, this will only print an error for removed item types if the item
doesn't correctly have its identity in item_type_removed.

--------------------------------------------------------------------------------
594f5502de | advil | 2020-08-21 11:57:59 -0400

Handle removed staff names correctly (twelwe)

--------------------------------------------------------------------------------
f2b0f13339 | Nicholas Feinberg | 2020-08-20 18:46:52 -0700

Tweak Maggie description
The old version was a bit plodding. It also didn't even try to
explain how Maggie was apprenticing with the Hell Knights (which
are clearly in the Dungeon) *before* she entered. This version is
playing with hellmonk's parallel-timelines idea by hinting that
Maggie comes from 'a distant time', though I think that's still
probably too subtle...

--------------------------------------------------------------------------------
c8662c180d | Alex Jurkiewicz | 2020-08-20 20:26:55 -0400

Update a Github action source

--------------------------------------------------------------------------------
753d7e3450 | wheals | 2020-08-20 18:42:44 +0300

Update displayed level immediately in ctrl-f (#12349).

--------------------------------------------------------------------------------
03ef8e7d85 | wheals | 2020-08-20 18:42:44 +0300

Describe status lights in a tooltip on webtiles.

--------------------------------------------------------------------------------
227e388fe2 | wheals | 2020-08-20 18:42:44 +0300

C++11-ify aptitudes.h.

--------------------------------------------------------------------------------
805dbbf8dc | wheals | 2020-08-20 18:42:44 +0300

Barding/centaur removal refactoring.

--------------------------------------------------------------------------------
17e6ae78ce | wheals | 2020-08-20 18:42:44 +0300

Remove Centaurs from ?% (#12348).

--------------------------------------------------------------------------------
63576e9172 | Goratrix | 2020-08-20 09:37:03 -0400

Correct phantom mirror message
Phantom mirror no longer shatters after use with 1d127b8.

--------------------------------------------------------------------------------
bc9326e332 | Nicholas Feinberg | 2020-08-19 18:33:15 -0700

Remove unused Death's Door icon
Nergalle is travelling a different channel now.

--------------------------------------------------------------------------------
0f5d254872 | Nicholas Feinberg | 2020-08-19 18:33:15 -0700

Make plants wither away
Plants can create fun tactical situations. When they form
single-tile spaces in an otherwise-wider corridor, the player can
exploit that for a short-term advantage. That's fun. What's not fun
is getting a javelin stuck underneath a plant and feeling obliged to
slowly batter it to death with the cheapest means at your disposal.

So, refocus plants (and withered plants, demonic plants, fungi... but
not bushes) on this goal. When hit, they now get ENCH_SLOWLY_DYING,
killing them in 3-5 turns. Much cleaner

--------------------------------------------------------------------------------
24140f3627 | advil | 2020-08-19 21:21:28 -0400

Revert "Revert "Disable travis notifications""
This reverts commit 2efb32689600fe5ae5b07696f704697b4c948d8d.

--------------------------------------------------------------------------------
cef94a71c8 | Kate | 2020-08-20 01:48:32 +0100

Fix CBlink failing a removedness test

--------------------------------------------------------------------------------
a34f0b0a04 | Kate | 2020-08-20 01:15:58 +0100

Fix TAG_MAJOR_VERSION 35 compilation for real

--------------------------------------------------------------------------------
a6120bd145 | Kate | 2020-08-20 00:56:02 +0100

Fix compilation on TAG_MAJOR_VERSION 35

--------------------------------------------------------------------------------
3d35ca6c31 | Kate | 2020-08-20 00:11:04 +0100

Adjust Passage of Golubria expiration
Base it on time spent instead of actions taken, so that making multiple
quicker or slower actions doesn't affect how long it takes for a passage
to expire.

--------------------------------------------------------------------------------
d03d243d0e | Kate | 2020-08-20 00:11:04 +0100

Rework the Orb's translocation interference
The translocation restrictions in Zot are very spoilery, and with
controlled blink no longer existing as a spell it should be fine to allow
using scrolls of blinking to work as normal instead of degrading them to
uncontrolled. They're supposed to be a powerful limited resource, so
making them suddenly near-useless at the end of the game doesn't feel
great, and they're also more valuable used early to prevent death when
the character is weak. If hoarding them until Zot turns out to be a
problem, the generation rate could be adjusted.

In addition, don't disable Passage of Golubria, but instead increase the
fuzzing of the portal placement substantially and make it time out more
quickly.

--------------------------------------------------------------------------------
48d619f095 | Emily | 2020-08-20 00:11:04 +0100

Don't contaminate the player on controlled blink
It desn't seem necessary to have another limiting cost when it's only
available on a scroll, and the amount of contamination is basically
irrelevant (e.g. invisibility gives ~5000 contamination, unwielding
*Contam gives 7000). Contamination is also generally the domain of
spells, clouds, and traps rather than items, so it fits less well with
controlled blink now that it's a scroll-only effect.

If scrolls of blinking end up need nerfing (e.g. because of Orb status
removal), then a value like 1000 + random2(750) would be reasonable.

--------------------------------------------------------------------------------
380b3ec697 | Emily | 2020-08-20 00:11:04 +0100

Refactor controlled blinking code
cast_controlled_blink is now only called for scrolls of blinking, so
fold it into controlled_blink and remove some redundant logic.

--------------------------------------------------------------------------------
84ee57af90 | Emily | 2020-08-20 00:11:04 +0100

Remove the Controlled Blink spell
It was already bumped to level 8 in 75a41fec5b260e3405678e92336f8d186af7b559
for balance reasons; while it's not much of a balance concern at that
level, it's still perhaps the most boring and predictable of the
high-level escape option spells, allowing easy escape from many
situations without the tactical or strategic concerns of spells like
Death's Door and Borgnjor's Revivification, as well as wholly
duplicating a consumable, unlike similar spells like Passage of Golubria
and Disjunction that have their own unique mechanics.

In addition, its relative spammability and complete lack of permanent
costs compared to the scroll also encourages the existence of arbitrary
and undiscoverable mechanics like the Zot/Orb translocation
restrictions. (Passage of Golubria is probably still too good on the orb
run to just remove those outright even after this change, but hopefully
future adjustments to that spell could make it possible.)

[Committer's note: adjusted to leave the book of the Warp as a 4-spell
book instead of adding Passage of Golubria to it. Closes #1366.]

--------------------------------------------------------------------------------
b647427698 | Emily | 2020-08-20 00:11:04 +0100

Remove unused monster Controlled Blink code
ghost_demon::translate_spell explicitly replaces this with SPELL_BLINK
and no monsters have it, so as far as I can tell there's no way for
these code paths to ever be reached.

--------------------------------------------------------------------------------
4286e081e0 | Emily | 2020-08-20 00:11:04 +0100

Remove redundant -Tele logic from tiles
This is already handled by spell_is_useless.

--------------------------------------------------------------------------------
6adcc438ac | Kate | 2020-08-19 23:23:19 +0100

Adjust and update a hints mode check
This was wildly out of date due to its enum range checks, and also fairly
vague in its definition. The hints mode text specifies that it's for items
that provide "protection from certain sources", so make the list match
that more closely and not return true for other effects that can't really
be described as "resistances" (Faith, Harm etc).

--------------------------------------------------------------------------------
6c97de2657 | Kate | 2020-08-19 23:20:04 +0100

Remove an unused function

--------------------------------------------------------------------------------
deff538b99 | Kate | 2020-08-19 23:20:03 +0100

Rework staff acquirement
Instead of only checking the highest spell school, take weights from any
applicable trained skills, with a chance of falling back to a random staff.

--------------------------------------------------------------------------------
0e794bb6f8 | Kate | 2020-08-19 23:20:03 +0100

Remove staves of wizardry
As with the staff of power, it just duplicated a ring effect, and was also
the last remaining staff with no melee effect.

--------------------------------------------------------------------------------
447559da06 | Kate | 2020-08-19 23:20:03 +0100

Remove staves of summoning
To narrow down the number of types of staves and allow them to all have a
relevant effect in melee as well as their spell school enhancer.

--------------------------------------------------------------------------------
3579fdeafc | Kate | 2020-08-19 23:20:03 +0100

Give staves of conjuration and earth new melee effects
Staves of conjuration gain the effect that staves of earth used to have,
of irresistible damage that's reduced by AC. Staves of earth are changed
to deal higher base damage, but with the shrapnel effect of being affected
3 times by AC.

--------------------------------------------------------------------------------
695e311587 | Nicholas Feinberg | 2020-08-18 19:28:18 -0700

Give Palentonga +1 HP (apt)
Two major reasons:

- Palentonga were a little more fragile than was intended, which
  made it harder to justify having fun with their roll attack.
- 117% HP is clearly much more aesthetic than a piddly 107% HP.

I'm still interested in the idea of adding something more complex,
perhaps along the style of a 'curl' defensive mechanism, but I
haven't yet found anything that I'm confident in.

--------------------------------------------------------------------------------
3c2127501a | Edgar A. Bering IV | 2020-08-18 17:17:53 -0400

Unbutcher wjchen's patch

--------------------------------------------------------------------------------
4531babe98 | wjchen | 2020-08-18 16:35:42 -0400

Add glyph mode customization options for webtiles
This commit adds two options `glyph_mode_font` and
`glyph_mode_font_size` that allow customization of the font and its size
used to render the dungeon view in the webtiles glyph mode. If set to
monospace (default) or the font is not available, the browser's default
monospaced font will be used.

While implementing these options, this commit also follows the glyph
metrics exactly as prescribed by the font. With the change, the dungeon
view of the console version and the webtiles glyph mode should be more
similar and the box-drawing characters will no longer appears to be
unconnected, provided that the monospaced font used by the browser is
properly authored in the first place.

[ Committer's note: Tweaked, squashed, and rebased. Closes #1512 ]

--------------------------------------------------------------------------------
9bfc6bcd2e | wjchen | 2020-08-18 16:34:30 -0400

Adjust the display of the monster list in webtiles glyphs mode
This change vertically center aligns the health status (colour box) in
the monster list in webtiles glyphs mode and makes it looks more similar
to that of the console version.

The glyphs rendered in the monster list in webtiles glyphs/hybrid modes
were not scaled accordingly to the crawl-internal zooming (rc options or
{} in X), which looks pretty weird and is not consistent with how this
is handled in normal tile mode (i.e., icons rendered in the monster list
are correctly scaled). This change improves the aesthetics and the
consistency between normal tiles mode and glyphs/hybrid mode in
webtiles.

--------------------------------------------------------------------------------
e420d36534 | Nicholas Feinberg | 2020-08-17 17:53:24 -0700

Remove Ru penance (FIQ)
Since Ru has no wrath, this penance had no effect *except* to mark
Ru magenta in the ^o dungeon overview, as if Ru was a good god that
you'd thoughtlessly abandoned. This was false - Ru is a GREAT god.

--------------------------------------------------------------------------------
baa144ba5c | Aidan Holm | 2020-08-16 17:49:26 +0800

Improve viewwindow performance when rendering animations (advil)
Profiling viewwindow while spamming Disaster Area at 200 piety indicated
that 65% of time spent inside viewwindow was spent packing cell overlays
from the tile_overlays array into each vbuf cell's overlays array. I
didn't test console, but I suspect it exhibits similar behaviour.

This is due to the fact that the tile_overlays array was scanned once
for each cell in the view buffer. Time spent on this step therefore
scaled linearly with the total number of cells on the screen, and with
the number of overlays added from animations such as Disaster Area: i.e.
O(n * m), where n is the number of visible cells, and m is the number of
overlay tiles from animations.

This commit pre-sorts the overlay cells in O(m log m) with the same
sort order as the cell draw order; this allows cell drawing to step
through the tile_overlays array once only. After this change, around 4%
of time within viewwindow is spent sorting and packing, down from 65%: a
significant improvement.

Note that this API is only a stop-gap measure; ideally, the remaining
uses (mostly beam animations) would instead use a view_renderer, for
more precise control over animations. In particular, this API will
clear all overlays at the next full redraw (show_updates = true).

--------------------------------------------------------------------------------
3b3d21e777 | advil | 2020-08-15 10:07:58 -0400

Prevent sac love from affecting no-xp monsters
Tentacles of all types were triggering the sac love "feels only hate"
message as they are generated, including out of LoS. (Reported in
love from applying to any no xp monster, which covers tentacles, but
heads off a whole set of potential bugs involving other fake monsters,
and other things that will be pointless for sac love to affect. I don't
*think* that this changes any actual gameplay, and I've gone through the
monster list pretty carefully, but we will see.

Resolves #1501.

--------------------------------------------------------------------------------
8a0c9464d7 | advil | 2020-08-14 15:38:20 -0400

Fix a seed explorer bug involving portals in branch ends
If a portal is in a branch end, and that branch end immediately precedes
a branch that does not generate, then the seed explorer would repeatedly
regenerate the portal for each following level of a non-generating
branch. This could lead to crashes if the builder ran out of usable
layouts, for example if it tried to build 9 ice caves in a row. It
probably also messed up the seeding for following levels.

--------------------------------------------------------------------------------
d391190cd6 | Edgar A. Bering IV | 2020-08-14 11:43:56 -0400

Add condenser vane checks and messaging (12344)
Provide an MSG_OK and add a confusion check. The evoke code needs a bit
of a refactor, this commit only provides the bugfix.

--------------------------------------------------------------------------------
e4b5d95287 | Kate | 2020-08-13 23:17:13 +0100

Rebrace

--------------------------------------------------------------------------------
96b2eae49b | Edgar A. Bering IV | 2020-08-13 17:38:36 -0400

Update the credits

--------------------------------------------------------------------------------
c04d6aab65 | RojjaCebolla | 2020-08-13 17:34:40 -0400

Update the changelog

--------------------------------------------------------------------------------
b1a4fe45b9 | Edgar A. Bering IV | 2020-08-13 15:14:31 -0400

Resequence spell vampirism to prevent crashes (kate-)

--------------------------------------------------------------------------------
ab5551255e | Edgar A. Bering IV | 2020-08-13 14:32:56 -0400

Update the changelog

--------------------------------------------------------------------------------
f6d3885723 | amcnicky | 2020-08-13 14:08:58 -0400

Add new panlord text and art
This commit adds new sprites: 2 heads and 1 body, and some new
descriptions.

[ Committer's note: Squashed + rebased + reworded. Closes #1520 ]

--------------------------------------------------------------------------------
5d1283fb80 | Implojin | 2020-08-13 14:03:34 -0400

Allow Rampaging on randart armour
Rampaging is currently pretty rare in practice:

* Ego boots are extremely rare spawns at itemgen.
* Many species cannot equip boots.
* Some characters end up with melded boots due to build choices.
* The positioning choices and skilling choices offered by rampaging
  are more impactful when presented earlier in the game.

This commit aims to make rampaging available to a wider range of
characters, by adding it as a potential randart armour property.

ARTP_RAMPAGING generates as 'potentially_good', similar to Harm.

This commit also updates the rampage descriptions slightly,
to remove a minor spoiler for players.

--------------------------------------------------------------------------------
98b154e084 | Edgar A. Bering IV | 2020-08-13 13:58:06 -0400

Buff the shield of Resistance
With one pip each of rF, rC, and MR and a fixed enchant of +2 the Shield
of Resistance wasn't that exciting, since SPARM_RESISTANCE can (rarely)
spawn on shields, and a plain ego plus a pip of MR doesn't compete well
with a +5 protection shield.

The extra pips of rF and rC are more style than substance in practice,
but receiving them along with two pips of MR makes the shield stand out
a bit more.

--------------------------------------------------------------------------------
9982ef6611 | Edgar A. Bering IV | 2020-08-13 13:19:37 -0400

Give the Majin-Bo spell vampirism instead of Archmagi
Archmagi for HP was kind of neat, but in practice it was very much a
"get archmagi in not the body slot in exchange for a shield"; it was
rare that you'd be so desparate for the enhancer that the Majin Bo was
your best shot.

Much cooler is to have the Majin Bo make your spells vampiric. All of
the damaging spells. (Note that since Absolute Zero directly kills the
monser bypassing the usual damage code this doesn't interact). The
effect is very powerful, and can be nerfed by reducing the
healing chance or increasing the HP cost if needed.

--------------------------------------------------------------------------------
c1cf53ab4c | Edgar A. Bering IV | 2020-08-13 12:52:19 -0400

Fix up setting beam.origin_spell in several places

--------------------------------------------------------------------------------
c37208646a | Edgar A. Bering IV | 2020-08-13 11:42:19 -0400

Remove the concept of a channeling item
This only really mattered for Pakellas conduct interacting with Wucad
Mu, which after its revision is borderline a channeling item.

--------------------------------------------------------------------------------
604fddcf5d | Edgar A. Bering IV | 2020-08-13 11:41:41 -0400

Remove some unused parameters

--------------------------------------------------------------------------------
a375d073a1 | Edgar A. Bering IV | 2020-08-13 11:40:14 -0400

Remove the Evoke Fog Icon

--------------------------------------------------------------------------------
baf80d05f7 | Edgar A. Bering IV | 2020-08-13 11:10:51 -0400

Turn +Fog into *Fog
The cloak of the Thief, like the ratskin cloak, is an overpowered item
to use optimally, providing an effect otherwise locked behind a god
passive or a finite consumable in unlimited quantities for a minimal
tradeoff.

This commit gives the cloak a fixed chance (currently a coinflip) to
generate fog on hit a sufficiently hard hit (> 10% mhp). This is to give
it a different feel from Dithmenos' passive which scales with the hit
magnitude and piety. The sufficiently hard threshold is to prevent
keeping a trivial monster around for free fog on 0 damage hits.

--------------------------------------------------------------------------------
073066f631 | Nicholas Feinberg | 2020-08-11 21:52:57 -0700

Don't call sleeping monsters frenzy immune
Datura darts will wake em right up.

--------------------------------------------------------------------------------
137458415d | Nicholas Feinberg | 2020-08-11 21:42:09 -0700

Generate Gauntlet monsters awake
Let players explore around and see all the options without feeling
bad about waking monsters up. (You'll still make monsters notice
you, but there's less downside to that.)

--------------------------------------------------------------------------------
642869fea1 | Edgar A. Bering IV | 2020-08-11 18:11:10 -0400

Revise Wucad Mu
Wucad Mu's channeling is the last vestige of evoked channeling. This
commit changes the staff of Wucad Mu to be a passive effect, occasionaly
refunding the MP cost of a spell (chance depending on evocations) and
occasionally backfiring when this happens (backfiring less often at
higher evo and more often for higher cost spells). While the stat drain
did put somewhat of a brake on Wucad Mu's channeling, unlimited out of
combat MP restoration leads to tedious optimality incentives to use the
staff while resting. A passive effect plays similarly but without the
unfortunate incentives.

--------------------------------------------------------------------------------
694ee37b36 | Edgar A. Bering IV | 2020-08-11 17:54:36 -0400

Remove staves of energy
Without a hunger mechanic to interact with, staves of energy became a
trade-actions-for-mp-regen item. This is not particularly interesting in
combat as it removes the impact of MP management on a battle and allows
the MP mechanic to be subverted for almost no cost, and full of tedious
incentives out of combat.

If rapid sources of MP are desired, the regen rate of MPRegen amulets
can be increased.

--------------------------------------------------------------------------------
952f204493 | Edgar A. Bering IV | 2020-08-11 10:12:39 -0400

Don't repeat the item name in the item describe popup (12341)
Doing so could cause a spillover of greater than 80 characters in the
item actions line for little benefit.

--------------------------------------------------------------------------------
b2f46efeda | gammafunk | 2020-08-09 12:02:26 -0500

Don't give pan lords rings of fog
These clouds are more likely to help the player block harmful effects
from a pan lord or its friends than they are to help the pan lord trap
the player.

There are some problems with the other cloud types: specifically
fire/ice clouds are too weak with any level of rF/rC, and acid and
negative energy are completely negated by one level of the appropriate
resistance. It would be good to consider making rCorr/rN only grant
limited resistance to the relevant cloud types. Perhaps fire/ice clouds
could see some kind of "enhanced" version of these clouds types deployed
for pan lords where damage values were not so low, making higher levels
of the resistance relevant. I'm leaving these clouds in for now, but
future commits can address these aspects.

--------------------------------------------------------------------------------
acb219a522 | Edgar A. Bering IV | 2020-08-09 12:48:08 -0400

Remove Ring of Thunder from player save compat code

--------------------------------------------------------------------------------
7a7cdb68e6 | Edgar A. Bering IV | 2020-08-09 12:48:08 -0400

Adjust cloud ring mon_info descriptions
Add a HUD display term (just the simple "clouds") and shorten the targeting 
"long name".
--------------------------------------------------------------------------------
fc961c28a4 | Alex Jurkiewicz | 2020-08-09 12:48:08 -0400

Fix some typos

--------------------------------------------------------------------------------
26a69325be | Alex Jurkiewicz | 2020-08-09 12:48:08 -0400

Re-add cloud rings for Asmodeus and Bai Suzhen
Monster flags for the other ring types can be added as required.

--------------------------------------------------------------------------------
4e85e5fcb6 | Alex Jurkiewicz | 2020-08-09 12:48:08 -0400

Add cloud rings to (some) random Pandemonium Lords
This effect already exists in the game, but only for Asmodeus and Bai
Suzhen (in dragon form). Let random pan lords have a chance at getting
one too.

The chance of a pan lord generating with a cloud ring is about 1 in 12,
which might have to be adjusted upwards or downwards in future. The
chance for each cloud type is a little more complex to calculate given
the dependency on pan lord brand / attack flavour, but the rarest brands
roll about 1 in 12 times.

Depending on the cloud type, these cloud rings can be terrifying or
ignorable. For example, chaotic clouds can instantly paralyse the player
and negative energy clouds can heavily drain them within a few turns. On
the other hand, clouds of fog and mutation do no direct damage.

Pan lords with cloud rings should feel qualitatively different to fight
than those without. Mostly this comes from increased danger being in
melee range, but also from the impact on battlefield terrain that
dropping clouds everywhere provides. In some cases, this can even work
to the benefit of the player.

One aspect of pandemonium lords I hope this change emphasises is that
they should be considered the "apex predator" of DCSS. They should
always be a scary fight, no matter how prepared you are. This is
especially true since they spawn only in either the optional branch of
Pandemonium (where it's even possible to collect the demonic rune
without fighting one) and on the orb run (where running is already
encouraged). This change should increase the number of cases where
players run (in careful ways!) from pan lords.

--------------------------------------------------------------------------------
e3ac2ca022 | Alex Jurkiewicz | 2020-08-09 12:48:08 -0400

Add Ring of X monster enchantments
* Ring of Flames
* Ring of Thunder
* Ring of Chaos
* Ring of Mutation
* Ring of Fog
* Ring of Ice
* Ring of Draining
* Ring of Acid
* Ring of Miasma

These enchantments, when added to a monster, surround them with the
appropriate cloud ring.

--------------------------------------------------------------------------------
836a950c60 | Alex Jurkiewicz | 2020-08-09 12:48:08 -0400

Remove Ring of Thunder/Flames spells

--------------------------------------------------------------------------------
8b4922b904 | Alex Jurkiewicz | 2020-08-09 12:48:08 -0400

Add surround_actor_with_cloud

--------------------------------------------------------------------------------
79d515981d | Edgar A. Bering IV | 2020-08-09 11:51:41 -0400

Nerf condenser vane charges
Player feedback is that the vane recharges too fast and holds too many
charges, so this commit reduces the charges to two and increases the XP
cost of a charge. I went with two charges instead of one because while a
single cloud blast is typically enough in a fight, sometimes a player
might like to reroll their clouds after repositioning, and I want that
option to remain available for the item's use.

--------------------------------------------------------------------------------
b65249eddd | Edgar A. Bering IV | 2020-08-09 11:49:19 -0400

Thaw orbs of destruction
Prevent Absolute Zero from targeting conjured "monsters" which are not
really monsters but monster-type actors behaving as spell proxies.

--------------------------------------------------------------------------------
bdb2cd30f2 | Goratrix | 2020-08-09 11:41:15 -0400

Don't repeat acquirement identification message (dinky)
Currently the message sequence when reading un-id acquirement is:

 This is a scroll of acquirement!
_Something appears at your feet! It was a scroll of acquirement.

The second message is not necessary as it only applies to scrolls
which produce an immediate effect without a prompt/menu.

--------------------------------------------------------------------------------
0ae597662a | gammafunk | 2020-08-08 18:14:49 -0500

Actually fix lair.des (steves)
The fix in 0cf64709 didn't change the glyph on the map to match the new
one in the SHUFFLE. Fix this, and tidy up some other syntax in this
vault, as well.

--------------------------------------------------------------------------------
7d7832473c | Nicholas Feinberg | 2020-08-08 16:06:07 -0700

End the endless hopping (Goratrix)

--------------------------------------------------------------------------------
732bf3b8d2 | Goratrix | 2020-08-08 08:59:53 -0400

Don't crumble acquirement scrolls (12336)
Unidentified acquirements scrolls are now cancellable after they are
read, so they should not crumble to dust.

--------------------------------------------------------------------------------
0cf647090d | Alan Malloy | 2020-08-07 13:41:47 -0700

Unbreak lair des from 22768bd
Apparently you can't use / as a glyph that's involved in a shuffle

--------------------------------------------------------------------------------
9192ace2d8 | Goratrix | 2020-08-07 13:23:06 -0700

Move book of Hexes from E to H alphashop (#1514)
Book was renamed from Enchantments to Hexes in d415a3f.
--------------------------------------------------------------------------------
22768bdd36 | Alan Malloy | 2020-08-07 13:20:43 -0700

Don't generate two Lair entrances (/u/ezmonkey, /u/zeunysos)
0550c0020cea914692a accidentally broke this vault while removing rations.

--------------------------------------------------------------------------------
57170428f2 | Naruni | 2020-08-06 16:12:27 -0400

Door reachability fine tuning
Tornado was going through runed translucent doors, and could pull a mob through
the door. In terrain.cc the function feat_is_reachable_past was not looking for
these doors. Add a check referencing the existing feat_is_closed_door which
includes doors.

Bug report: https://crawl.develz.org/mantis/view.php?id=12330

Committer's note: resolves #1511

--------------------------------------------------------------------------------
60e829e2c0 | Edgar A. Bering IV | 2020-08-06 10:23:37 -0400

Fix an unmarshalling bug (12337)

--------------------------------------------------------------------------------
c405a18ee9 | Edgar A. Bering IV | 2020-08-06 09:15:22 -0400

Move the ai_action namespace to its own header
For now this is to silence compiler warnings, but also to provide some
future-proofing refactor to make it easy to use the ai_action::goodness
type in other parts of monster AI.

--------------------------------------------------------------------------------
0fdccc9209 | Implojin | 2020-08-05 20:56:27 -0400

Update monster creation documentation
monster_creation.txt had previously contained several references to enum.h,
which was split into several files in 895272c. This commit updates the
documentation accordingly.

--------------------------------------------------------------------------------
0187308201 | advil | 2020-08-05 14:09:43 -0400

Fix seed explorer handling of multiple portals
Because the origin level wasn't restored after cataloguing a portal,
only the first portal would be found (and probably the rest of the seed
would be messed up). Thanks to Lici_the_Crawler for the test seed for
fixing this bug.

--------------------------------------------------------------------------------
d769fb5ce2 | Edgar A. Bering IV | 2020-08-05 08:59:37 -0400

Update the changelog

--------------------------------------------------------------------------------
20a46bdb45 | Edgar A. Bering IV | 2020-08-04 18:00:25 -0400

Give the full buffet of misc evokers to Wanderers
Previously this list had been pared down to only box of beasts or phial
of floods, only because those were the only evokers remaining from when
this wanderer possibility was added.

--------------------------------------------------------------------------------
60031c9986 | Edgar A. Bering IV | 2020-08-04 16:24:14 -0400

Remove Wand of Clouds
As discussed in the previous commit, the cloud-evoker-effect is better
as a misc evoker without cone targeting. This removes the old wand.

--------------------------------------------------------------------------------
a1987e683f | Edgar A. Bering IV | 2020-08-04 16:24:14 -0400

New Misc Item: Condenser Vane
The condenser vane is inteded as a misc-evocable replacement for the
wand of clouds. Wand of clouds used a cone targeter, and targeting cones
really don't fit well with crawl's grid geometry. The new misc evoker
places clouds in a 3x3 arrangement centered on each monster in LOS,
using a similar random pick table to the old wand of clouds, but
permitting high tier clouds all the way from 0 power, just with low
chance, to avoid breakpoints.

This is put on a misc item instead of a wand as a part of larger changes
to evocations with the goal of dividing wands/misc items by
monster-usability. Monsters using wand of clouds tended to only hurt
themselves and not get the player well, and this effect would have
similar issues.

--------------------------------------------------------------------------------
1d127b8e98 | Edgar A. Bering IV | 2020-08-04 16:24:14 -0400

Make Phantom Mirrors and Boxes of Beasts XP Charged
Stacking consumables that scale with skill to very high power create a
power spiral issue. Strong characters can hoard these items and then
either spam their masses, or simply finish the game with a giant stack.
Weak characters who lean on them early fall behind and never establish a
hoard, remaining hobbled.

Offering unlimited stacks also encourages hoarding psychologically,
which is an unfun behavior: the effects of these items are cool and we'd
like players to use and enjoy them.

For these two reasons, I'd like to move away from the consumable model
of evocables. Wands have separate complications before they can move to
this model, but Mirrors and Boxes are easy.

--------------------------------------------------------------------------------
70697cc071 | Ryan McNeive | 2020-08-04 15:16:31 -0400

Add Grinder taunt "Make like a tree!"
0.01% of players will quaff !lig right after they get this, and
they'll think they made the joke up.

Devilry revelry—
Grinder the shadow imp
came 'round the corner with
"Make like a tree!"

Who would have known that my
lignificational
beverage wasn't quite
his cup of tea?

--------------------------------------------------------------------------------
f8362a0c98 | wheals | 2020-08-03 03:34:51 -0400

Fix draconian acid breath.
It only ever splashed onto monsters that were adjacent to both the spitter
and the target. I believe this was a holdover from when the code was
used for mottled draconian breath, which had a range of 1 anyway. The
targeter always claimed that the splash would hit every monster adjacent
to the target, so let's make that true.

Also stop the breath from splashing the target twice, which doesn't look
intentional either.

--------------------------------------------------------------------------------
112e8ad46e | advil | 2020-08-02 15:24:32 -0400

Add github issue tracker links in a few key places
It doesn't seem like mantis is going to be generally usable any time
soon, so this makes sure that github issue tracker is linked both in the
manual and in crash messages. I didn't go through all the mentions of
mantis in the dev-oriented docs. This isn't intended to deprecate
mantis, because we do use it and accept bug reports there for anyone who
has an account (and there's a *ton* of history as well).

Resolves #1506.

--------------------------------------------------------------------------------
5c46762673 | advil | 2020-08-02 15:09:54 -0400

Item menu improvements (fixes 12331)
12331 is that (since cc164c81d) a double esc is required to exit from
various item menu prompts, because of a bad continue. When fixing this,
I made several other improvements, namely letting `*` and `?` act as
toggles rather than absolute mode switches. That is, `*` turns on and
off the full inventory display, and `?` turns on and off the menu
altogether, letting you see the map.  This is a behavior change, but I
think it works much better for the menus I tested.  Also, esc for
non-autolist menus does still return you to the prompt, which I think
was previous behavior.  (What will this domino to break that I haven't
tested? tbd. This code is used in a lot of cases.)

--------------------------------------------------------------------------------
bff1e92059 | Nicholas Feinberg | 2020-08-01 13:20:37 -0700

Disable the zot clock in sprints (hayenne)

--------------------------------------------------------------------------------
1138013c83 | Nicholas Feinberg | 2020-08-01 12:55:55 -0700

Make Zot messages more explicit

--------------------------------------------------------------------------------
8fb9d0a81a | advil | 2020-08-01 15:37:24 -0400

Speed up autofire somewhat
Recent UI improvements have made direction chooser code more robust and
clean, but led to regressions in the behavior of
crawl_state.invisible_targeting, used during autofight calls to hide the
targeting ui. The result is that autofiring has become extremely slow,
resulting in visible ui lag and timeouts when holding tab with a ranged
weapon online. This commit fixes the easiest hot spots to fix, and adds
a comment at the one remaining hot spot in this code where I'm not sure
what the right way is to suppress redraws.

One other remaining part of what makes autofire slow is simply the
animation drawing, which by default at least triggers a lot of
full-screen or at least full-map redraws.

--------------------------------------------------------------------------------
3521204769 | Nicholas Feinberg | 2020-08-01 11:35:35 -0700

Don't trigger *Rage on riposte
Similarly to minotaur headbutt and hydra head-chopping, effects that
aren't under the player's control shouldn't trigger nasty consequences
for them.

--------------------------------------------------------------------------------
5ca82d7491 | Nicholas Feinberg | 2020-08-01 11:29:14 -0700

Simplify the Scarf of Shadows
Give -1 LOS instead of the Robe of Night-style 75% LOS.

--------------------------------------------------------------------------------
0de94a4e4a | Nicholas Feinberg | 2020-08-01 11:29:14 -0700

Remove a rat dprf
Left in accidentally.

--------------------------------------------------------------------------------
77715f0e7d | advil | 2020-08-01 11:50:16 -0400

Fix a smallterm crash and refactor slightly
The crash happens because there are code paths that can directly redraw
the hud. The refactor is to prevent some messy recursion that doesn't
cause any problems now but is going to be bug-prone sooner or later.

--------------------------------------------------------------------------------
f0b7f4657e | Nicholas Feinberg | 2020-07-31 22:55:40 -0700

Turn +Rats into *Rats
The Ratskin Cloak is yet another of Crawl's many, many very powerful
items that demands considerable micromanagement to unlock its power.
Some items offer a lot of fun when micromanaged, but this big bag o'
rats doesn't quite get there.

Change it from an activated ability to instead spawn rats when the
player is hit. Goal is to have bonus rats as a 'sometimes thing'.
Current odds are somewhat arbitrary but seem to play OK.

--------------------------------------------------------------------------------
81d34b63e8 | Nicholas Feinberg | 2020-07-31 22:15:06 -0700

Triple contamination decay
Decay contamination three times as quickly (from -25/turn to -75),
and apply negative contamination effects correspondingly three times
as often.

It's quite easy to spend huge numbers of turns resting off
contamination, which is neither exciting nor meaningful. Now that the
zot clock exists, it makes sense to rationalize the amounts of time
involved. If invisiblity-based strategies are powerful, we have better
knobs to tweak them with.

Some notable effects:
- +Inv took between 50 to 150 turns to rest off at ~17 Evocations;
  now it takes 16-50 turns.
- Spell Invisibility took between 50 to 120 turns to rest off at 50
  power; now it takes 16-40 turns.
- One cast of Irradiate took 40-60 turns to rest off; now it takes
  13-20 turns.
- It took 200 turns to go from the edge yellow contam to no contam;
  now it takes 70ish.

--------------------------------------------------------------------------------
6c97825307 | advil | 2020-07-31 13:04:52 -0400

Don't repeat dump_order fields
I can't think of a good use case for repeating dump_order fields, and
allowing it seems to cause more annoyance than anything whenever we
change the defaults, or have an alpha-only default (as is currently the
case with turns_by_level). This version uses the first instance in an
order, so if you want to reorder the defaults it will require removing
and then re-adding.

There's no elegant implementation of arbitrary order + unique elements
in c++ that I know of, and simply keeping two data structures seemed
like the least unaesthetic to me.

--------------------------------------------------------------------------------
38aef042b1 | Edgar A. Bering IV | 2020-07-31 09:04:42 -0400

Actually increase the Zot bank to 15k
faca0e1d claimed to do so but tried to be fancy with fractions and ended
up reducing it to 10k. This makes the Zot bank an explicit integer
instead of tying it to the per-floor contribution.

--------------------------------------------------------------------------------
6dfca0d9ad | Nicholas Feinberg | 2020-07-30 17:23:10 -0700

Fix multizots
Players would never get the extra penalties for hanging around
after the first zot and before death, because of a math error. (I
tested the feature with a very low MAX_ZOT_CLOCK, so the error
cancelled out!)

--------------------------------------------------------------------------------
cf37096eec | advil | 2020-07-30 18:49:02 -0400

Ensure valid cursor position after drawing hp/mp bar
After 94fddd9 gave the equip_bar somewhat smarter redraws, it became
possible for this function to skip everything after one of the bar
redraws, which when it happens would lead to a crash -- these bars
guaranteed an invalid cursor position at the end of `draw`. `vdraw`
would probably have a similar problem but cursor position validity isn't
handle the same way for tiles (and equip bar doesn't exist either).

--------------------------------------------------------------------------------
faca0e1de5 | Nicholas Feinberg | 2020-07-30 08:36:28 -0700

Bump the clock bank back to 15k
There wasn't any particular reason to drop it to 12k other than
round numbers.

--------------------------------------------------------------------------------
7adeca9acf | Nicholas Feinberg | 2020-07-30 08:29:35 -0700

Invoke the malevolent chronology of Zot
The natural tendency for roguelikes is to encourage cautious behavior.
It's over once you die once, after all, so you should take your time.
That's not a bad thing, but to balance things out and discourage
extremely time-consuming tactics (which tend not to be very fun!),
it's good to have a counterpressure encouraging players to move quickly.

Food was intended to be such a clock, but for a variety of reasons, it
never worked as a clock for anything but the most egregious abuses.
(And not even for that for foodless races, of course.) Scores is a
compelling motivation for some players, but not many - most are just
playing to win. How can we make the most viable way to win also the
most fun?

This commit adds a new 'Zot Clock'. It ticks up over time, and jumps
down whenever you enter a new level - roughly 6000 turns of clock per
level. Once you hit turn 11,500 or so on the clock, the malevolent and
unexplained entity Zot strikes, draining you immediately and then again
once every 100 turns or so. At turn 12,000, you die. Each branch tracks
the 'clock' separately.

6000 turns per level allows for a 300,000 turn 3-rune game, which
seems very generous. The effective cap of 12,000 turns 'stored' at any
given time means that there's somewhat less slack than that implies,
but a slow character can usually do levels in under 2500 turns and
inter-level travel in under 500, so I'm hopeful that normal characters
will rarely if ever see any of this system. The very slowest game we saw
(an extreme outlier) averaged slightly over 5k turns per level in one
branch and hit 7.5k turns in one level, which this clock would cover.

We use 'levels seen' here as a proxy for progress because that's
simple to conceptualize and relatively difficult to abuse - it's hard
to "stash" entire levels as a clock reserve in the same way you could
stash "unexplored map tiles" or "weak monsters". The separate clock
per branch allows players to dip into branches and then bail without
being penalized - the per-branch clock is paused while they're away.

The clock is paused while you're in Abyss, since that doesn't fit the
exploration model well and isn't usually that wise to linger in, and
turned off entirely when you get the ORB, since (a) there's a new
clock then and (b) it'd feel awful to die of time-out on the orb run.
It's possible to scum Pan for time, but I mean, if you're scumming
Pan, just win already!

Chei gives you some extra time, in keeping with the theme of the
god. It's possible that races need different clocks based on their
movement speeds, but I'm hopeful that the difference there is fairly
small relative to the slack in the clock.

--------------------------------------------------------------------------------
2f6e3b4e38 | Nicholas Feinberg | 2020-07-30 08:29:35 -0700

Remove unused statuses

--------------------------------------------------------------------------------
8fb39a49d2 | Edgar A. Bering IV | 2020-07-29 21:46:53 -0400

Update the changelog

--------------------------------------------------------------------------------
4b749affef | advil | 2020-07-29 19:54:14 -0400

Re-quiet turn 0 book reading (joshgelbard)
This was accidentally made non-quiet again in b274e4624. This new
version uses the power of RAII to avoid adding back a bool or
conditioning on turn.

Resolves #1503

--------------------------------------------------------------------------------
c98181cb6c | advil | 2020-07-29 19:50:03 -0400

Don't let force mores trigger during char setup
This is sort of a placeholder fix in absence of a better understanding
of why messsages aren't showing yet but a more can, but so be it.

Bug reported in #1503

--------------------------------------------------------------------------------
94fddd9a36 | advil | 2020-07-29 19:40:47 -0400

Don't unconditionally draw noise/equip bar
This is mainly aimed at the fact that this bar, unlike everything else
on the hud, unconditionally rendered, so when starting up the game it
would show up on its own at odd times. This commit changes the noise bar
so that it doesn't render during startup, but renders unconditionally
the rest of the time -- smarter logic is no doubt possible, but I was
somewhat defeated by silence. The equip bar only redraws as needed by
gear or weapon changes.

This also removes an unused return value in output.cc and some support
code.

--------------------------------------------------------------------------------
7cf0f577d3 | advil | 2020-07-29 09:52:29 -0400

Don't crash on quiver drawing during game setup
This is not very easy to trigger, but as reported in #1503 an accidental
change in spell starts allowed it to be possible to trigger this bug
with an appropriate force_more_message. Basically, if the hud rendering
code is called before the inventory is fully setup, there will be a quivered
item that is not yet linked, and this call would crash. Instead, just
silently return -- it's probably not going to be what is intended to
draw the hud in this state, but it's always happening by side effect so
shouldn't crash.

--------------------------------------------------------------------------------
989023bd0d | advil | 2020-07-28 15:11:51 -0400

Prevent eternal Heaven, again (u/Anno474)
This bug was present in an early version of WJC, fixed in 9dd3d4ce55,
added to the epic bugs list, and then recurred in c9e437d3e5.

Like the original fix, I have added a bunch of future-proofing in case
of this specific bug coming back again, as well as fixup code (instead
of a silent fixup, we will now see a crash triggered in player-reacts,
with fixup on reload). The basic issue is that heavenly storm is
implemented as a dual duration + prop, and keeping those in sync is not
robust. It seems like a better fix, which would take more work, would be
to make the end function a duration end effect, and call all duration
end effects on revival. But I suspect there are non-obvious
complications that explain why revival isn't already handled that way,
so I'm just doing a quick fix for now.

--------------------------------------------------------------------------------
0d2872ff50 | advil | 2020-07-28 10:43:36 -0400

Comment the spl-util.cc catch2 test a bit better
Also remove some debug code.

--------------------------------------------------------------------------------
c03f2b59e5 | advil | 2020-07-28 10:33:26 -0400

Logic fixes for _ms_waste_of_time, function renames for consistency
The logic fixes are mostly things done incorrectly in the original
refactor. The renames are to improve consistency and code readability,
and include the eponymous function.

--------------------------------------------------------------------------------
eecf6e74b9 | advil | 2020-07-28 10:33:25 -0400

Add some documentation for ai_action::goodness

--------------------------------------------------------------------------------
fbca040e39 | advil | 2020-07-28 10:33:25 -0400

More systematically check `foe` in monster casting
I'd actually removed some of these checks, because as long as the
targeting flag is set properly they are not needed. However, as long as
this API is using a monster * here I decided it is still better coding
practice to have them than not, and it is not as if this API isn't
error-prone. (Really, this code needs a larger refactor where spell
implementation type determines whether there is a `foe` parameter at
all.)

--------------------------------------------------------------------------------
a0e1fba1b5 | advil | 2020-07-28 10:33:25 -0400

Replace summon swarm with shadow creatures in fedhas sprint
The implementation for summon swarm was removed in d48e5fa4009, but
fedhas sprint places sentient oklobs that can cast spells, including
this one. Since summon swarm was not actually marked as removed, this
didn't show up as an error until one of my previous commits improving
validation of removed spells etc. This commit uses shadow creatures
instead, and thanks to a tip from kate-, sets the monster list for the
sprint to match that of the old summon swarm spell.

--------------------------------------------------------------------------------
b84026900b | advil | 2020-07-28 10:33:25 -0400

Improve validation of spflag::monster
This was very inconsistently set, because preivously an error would be
generated only for player spells with a monster flag, but not for
non-player spells without a monster flag. To do this required a tiny bit
of extra work to check wand spells and a few idiosyncratic cases
(resulting in yet another static const unordered_set unfortunately), but
found a whole raft of cases where the flag was missing.

This might be better as a catch2 test (along with some of the other
things validated when initializing spell data), but I don't yet
understand how to deal with cases like this which involve multiple .cc
files in catch2 tests.

--------------------------------------------------------------------------------
2a2180136b | advil | 2020-07-28 10:33:25 -0400

Add a lua test that exercises monster spells
This attempts to cast every monster spell, both with and without a foe.
The idea is to at least suss out mistakes in conditioning on a foe
without a targeting flag, and other basic issues. There is no guarantee
that all the spells actually get cast -- since they may still be a waste
of time relative to the artificial scenario. Still, most do get cast so
this is a useful exercise. I implemented this as a lua test rather than
a catch2 test because it requires a setup with actual monsters placed
somewhere in order to work.

The commit also fixes a number of issues found while constructing the
test.

--------------------------------------------------------------------------------
5af8f3b136 | advil | 2020-07-28 10:33:25 -0400

Add a catch2 test to cross-check removed spells

--------------------------------------------------------------------------------
afbf42396c | advil | 2020-07-28 10:33:25 -0400

Refactor _ms_waste_of_time
There are many things that have long bugged me about this function,
including: (i) inconsistencies about how cases that would crash are
handled, such as lack of a foe, (ii) conflation of what is just an
actual waste of time vs what is impossible (would lead to a crash
without special handling), (iii) the flipped logic of this function vs
nearly everything else in this file (true here = is a waste of time,
true in most other places = can or should cast), and (iv) least
importantly the use of a 2-valued logic. This refactor addresses all of
these, while providing future room for more complex ai decisions (e.g.
choices among alternative actions) if they should ever be desireable.
The refactor is also aimed at making testing spells more doable, and
more minor things like more consistent wizmode casting.

Now, _ms_waste_of_time returns a "goodness" value that is an integer if
the spell is possible to cast, which will be >= 0 for cases where
previously _ms_waste_of_time returned false. There should not be any
actual changes in behavior with this commit. Foe validation is handled
entirely conditioned on the spell's targeting flags, rather than on a
spell-by-spell basis. (A future commit will test this systematically.)
In the long run, this commit leads towards an api where monsters can
choose from a ranked list of actions, rather than the much more ad hoc
action selection criteria they have now.

--------------------------------------------------------------------------------
34f0fc0abf | Edgar A. Bering IV | 2020-07-28 09:37:07 -0400

Reduce the slots melded by beastly appendage (mdonais)
The new melding requirements were picked to disincentivise using BA for
optimal marginal gains long past the point of fun; they are a bit
extreme to the point of disincentivising using BA for anything other
than a starting transmuter who hasn't found aux armour. Reducing the
melding to boot and helmet slots keeps the disincentive for using it on
all characters but makes the spell more flexible and allows it to appeal
to other character types while maintaining a tradeoff of defence for
offence.

--------------------------------------------------------------------------------
0958c023ba | advil | 2020-07-27 23:48:20 -0400

Don't place clouds for in-transit lemures
They will be at the lemure's last position on a different level, and so
potentially in a wall.

--------------------------------------------------------------------------------
50c865f36f | Nicholas Feinberg | 2020-07-27 17:49:47 -0700

Clarify Rampage description
"Rampaging toward enemies" was not very clear.

--------------------------------------------------------------------------------
fabd1c6aea | Nicholas Feinberg | 2020-07-27 17:49:00 -0700

Ban Lear's Palentonga (Midn8)

--------------------------------------------------------------------------------
b274e4624c | advil | 2020-07-27 20:00:26 -0400

Simplify vehumet + library interaction (11636 etc)
In the days of books, if you memorised a veh offering and then forgot
it, you would be out of luck without that book on hand. This behavior
was more or less preserved into the new world of libraries. However, now
vehumet offerings are the only way in the game to have memorised a spell
that is not in your library, and therefore, a regular source of
confusion. This change adds a veh gift to your library if you choose to
memorise it, removing this (currently) odd exception entirely.

I've also removed a bunch of bools that were only used for the save
compat case, from back when upgrading from games with inventory books
would have been common. The upgrade will still work, just be a bit more
spammy than it used to be.

--------------------------------------------------------------------------------
acbe401039 | gammafunk | 2020-07-27 04:52:23 -0500

De-closet the central area of an encompass vault
It's possible for a formicid to get stuck in the central safe area in
hangedman_spin_cycle, since this vault can place on branch ends, which
wouldn't allow shafting out. The area can't have no_tele_into otherwise
it's totally inaccessible outside of wall breaking. The only
alternatives to fix it are to fill it with wall or to make the area
universally accessible. I went with the latter approach, since it's more
fun and flavorful.

This commit adds stone glass so that most of the area can be seen into
and randomly places two transporters to provide entry and exit. Anyone
shafting into the central area can use the exit transporter, and players
from outside can enter the safe area knowing what they'll encounter, for
the most part. Note that it's still possible for uniques like the
Enchantress to place in the central area or for monsters to just
teleport or shaft in, so it's not always fully safe!

I left in the 'exit' teleport traps since that possibly provides a
better exit method compared to the exit transporter, which could have
monsters around it. The very center and some outer edges of the central
area can't be seen through the glass, something which could be cleaned
up in the future.

The original vault author can feel free to try another approach to this
fix so long as shaft closet issue is fixed somehow.

--------------------------------------------------------------------------------
e645bd13c1 | advil | 2020-07-26 14:46:58 -0400

Retune qazlal animations
a. Disaster area no longer redraws for every single explosion tile.
b. Disaster area only delays after each upheaval call, rather than each
   individual tile explosion, with consistent behavior across build
   targets. (Before 855e26d6cb it was supposed to do this, but because of
   bugs combining together, only did it for webtiles.)
c. Tweak delay times, if this slows things down too much on a live
   webtiles server (it was ok on local webtiles) the upheaval delays may
   need lowering again.
d. Randomize order of explosion for upheaval.
e. Adjust `bolt` API so that caller has more control over delays and
   redraws. Probably other things could use this besides qazlal.

--------------------------------------------------------------------------------
08c0c8f6c1 | S. Mark | 2020-07-26 20:50:05 +0300

Tweak Gozag powers description.
To make it grammatical again, and make it more clear all monsters are turned to 
gold, not just fleshy ones (see #1498)
--------------------------------------------------------------------------------
bef3e4aff3 | advil | 2020-07-26 11:36:15 -0400

Revert "Revert "Fix Qazlal Upheaval rendering to every tile twice.""
This restores aidanh's fix in 855e26d for the upheaval double-draw bug,
but instead of not firing at all, it just suppresses the animation.

This (partially) reverts commit cae7f7452bcd83c8c1466d6a9b18208844c611b6.

--------------------------------------------------------------------------------
cae7f7452b | Aidan Holm | 2020-07-26 23:28:14 +0800

Revert "Fix Qazlal Upheaval rendering to every tile twice."
Reverted because the fire() call was required for Upheaval to do damage.

Oops!

This reverts commit 855e26d6cb451adaf0a72453e0a0ec997f0ee9b2.

--------------------------------------------------------------------------------
8cff2afadc | Aidan Holm | 2020-07-26 22:10:50 +0800

Fix wide UI popups on webtiles after push/pop (#12194)
This was caused by jQuery's fadeIn() setting the 'display' property to
'block', which interferes with the flexbox CSS on UI popups.

See also: stackoverflow.com/questions/1091322/#comment32697946_10322651

--------------------------------------------------------------------------------
c6a733cb5c | Aidan Holm | 2020-07-26 21:49:38 +0800

Fix double comma in monster speak (#12297)

--------------------------------------------------------------------------------
6ea9c3c371 | Edgar A. Bering IV | 2020-07-26 08:59:18 -0400

Tie the tracer range for rampaging to current vision
For Barachi rampaging at a range 8 enemy, the tracer code prevents
information leaks already since you can't rampage at things you can't
see.

--------------------------------------------------------------------------------
ab1a5ca55a | Edgar A. Bering IV | 2020-07-26 08:58:26 -0400

Fix an assert in the rampage code

--------------------------------------------------------------------------------
8637d40d38 | gammafunk | 2020-07-26 06:31:47 -0500

Make the Cloud Mage fly (CanOfWorms)
Otherwise it could cast Tornado and potentially drown itself in the deep
water outside of its own vault. Other fixes include replacing deep water
with e.g. clouds or shallow water or making monster AI smarter, but both
of these are more work for no improvement in gameplay.

--------------------------------------------------------------------------------
08ff59a6b3 | Aidan Holm | 2020-07-26 15:20:22 +0800

Reimplement the map view as a widget
As with the direction chooser, wrapping the map view in a widget is an
important step towards widgifying all of crawl's UI; see 38af612a8 for
more details.

--------------------------------------------------------------------------------
cc164c81d2 | Aidan Holm | 2020-07-26 15:10:19 +0800

Fix excessive redraw in prompt_invent_item

--------------------------------------------------------------------------------
855e26d6cb | Aidan Holm | 2020-07-26 14:30:54 +0800

Fix Qazlal Upheaval rendering to every tile twice.
Upheaval first renders each affected cell in order, with a scaled delay
between each cell, producing the expanding explosion effect. After this
is done, environmental effects to the affected locations. In this second
pass, it also re-rendered each cell, but without a scaled delay between
cells. This second rendering caused duplicate overlay tiles to be drawn,
causing occasional crashes when casting Disaster Area (which invokes
Upheaval multiple times) caused the overlays per cell to exceed 20, a
hardcoded limit.

I'm not sure why, but the original implementation of Disaster Area
decided to not call scaled_delay in the first pass, resulting in its
explosions appearing instantaneously, rather than animating out from the
centre. That may be preferable, since otherwise Disaster Area takes a
long time to animate (on Webtiles only), especially at high piety.

My fix here removes the second render, and makes the scaled delay
unconditional. If it's desirable to render Disaster Area explosions
without animations, it'd be best to do them in a way that appears the
same across platforms.

--------------------------------------------------------------------------------
4b1dca4f87 | advil | 2020-07-25 16:14:28 -0400

Fix the build

--------------------------------------------------------------------------------
ad4b653831 | advil | 2020-07-25 16:04:43 -0400

Don't put D:1 plants to sleep (purplemustard)
Recent fixes to D:1 monstergen that again generate all monsters with
BEH_SLEEP, combined with the butterfly fix in 6c26fa703df9 led to any
D:1 plants appearing to be asleep. Since BEH_SLEEP is meaningless on
firewood, simply skip setting sleep-related properties when building
monster-info for firewood, and consequently don't show it to the player.
(So technically, they do still count as asleep() but there's no reason
to make that visible.)

--------------------------------------------------------------------------------
5d66c9a495 | Kate | 2020-07-25 20:35:35 +0100

Fix grunt_forest_large_clearings being filled with traps (#12315)
It still manually placed some traps (which it shouldn't have done), and
then an error editing it when rations were removed in 0550c0020c resulted
in those traps having a chance of being shuffled to replace floor.

--------------------------------------------------------------------------------
1de36163dd | Kate | 2020-07-25 19:53:42 +0100

Don't try to place rations as Zig loot
Replace them mostly with potions of mutation, and also add potions of
magic to the super_loot table.

--------------------------------------------------------------------------------
acd2c82977 | Kate | 2020-07-25 19:53:42 +0100

Remove some references to rations and butchery

--------------------------------------------------------------------------------
4c9af893ca | Kate | 2020-07-25 19:53:42 +0100

Update some help files

--------------------------------------------------------------------------------
802b6cfe68 | Edgar A. Bering IV | 2020-07-25 13:08:20 -0400

Tweak some lua documentation
To match the existing api; this is inconsistent between the private
function names but these two functions seem like they're used by enough
existing lua that breaking compatibility isn't worth it.

Closes #1459

--------------------------------------------------------------------------------
c049b6daf6 | Edgar A. Bering IV | 2020-07-25 12:59:52 -0400

Don't visit stashes of size 1 (Ge0ff)

--------------------------------------------------------------------------------
e2a07e3cac | Edgar A. Bering IV | 2020-07-25 12:56:32 -0400

Move some autopick logic to the correct place
8013e45feb moved a check that happened after the state change, which
resulted in #1494. This moves the state change to before the check,
closes #1494

--------------------------------------------------------------------------------
97719ae224 | Edgar A. Bering IV | 2020-07-25 11:13:08 -0400

Tweak Palentonga charge confirmation prompts
For all user prompts, cancel targeting on cancel for consistency with
our other targeters. Change the moveto checks to a single call to
check_moveto that checks all reasons a user might not want to charge.

Closes #1496

--------------------------------------------------------------------------------
4b0bbb2c2d | RJ Cunningham | 2020-07-25 10:55:27 -0400

Reduce nightstalker 3 to a single pip of stealth

--------------------------------------------------------------------------------
a1cbe5f5d2 | RJ Cunningham | 2020-07-25 10:55:27 -0400

Remove Nightstalker from Demonspawn

--------------------------------------------------------------------------------
b0b9125a3b | RJ Cunningham | 2020-07-25 10:55:27 -0400

Remove non-english Kobold descript

--------------------------------------------------------------------------------
df08edfada | RJ Cunningham | 2020-07-25 10:55:27 -0400

Add nightstalker to kobolds.
* Nightstalker gained immediately at level 1.
* Presumably this is a huge buff for the race, but they are considered weak
	so this might not be a major issue.

--------------------------------------------------------------------------------
8bb0483f98 | Edgar A. Bering IV | 2020-07-25 10:21:06 -0400

Prevent Wu Jian martial attacks while rampaging or digging
"Fancy" moves have strange interactions with Wu Jian martial moves; when
it was just Dig (works) and Hop (doesn't) the inconsistency wasn't that
noticable. With the addition of Palentonga charge and boots of
rampaging, neither of which work well mechanically with Wu Jian, the
consistency issue becomes more strained.

This commit cleans up the rampaging interaction with Wu to avoid a host
of complications, and tweaks martial moves to only be compatible with
"normal movement" - disabling Wu processing while digging. Wu Jian's
description is accordingly updated.

--------------------------------------------------------------------------------
a0b39eb048 | Edgar A. Bering IV | 2020-07-25 10:21:06 -0400

Don't permit cancelling a rampage half-way through (mostly)
Allowing user-based checks (wield weapon and exclusion prompts) to
interrupt a rampage creates all sorts of weird opportunities to do
strange things with the UI to manimpulate a rampage. So the rampage
targeter now gives these prompts for the entire path before committing to
the rampage.

The stop_attack_prompts for certain unrands depend on LOS, in order to
avoid an information leak these aren't issued until arriving at the
monster—if a player is using one of these around allies they're probably
already well aware of their interactions but we don't want to punish them
too badly. Since you can't lunge at friendlies, there's no issue with
penance checks coming after the move has been committed to.

--------------------------------------------------------------------------------
4f1a264f5e | Edgar A. Bering IV | 2020-07-25 10:21:06 -0400

Add a few more cancellation checks for rampages
To prevent tricky 0 movement situations, as well as comment the
remaining cases explaining why the check is not necessary.

--------------------------------------------------------------------------------
60e8377e26 | Edgar A. Bering IV | 2020-07-25 10:21:06 -0400

Rename lunging to rampaging
This flavour is a better fit (adds a hint of recklessness instead of
elegance) and avoids conflicting with Wu Jian's ability in name, since
it is rather different. For the sake of future developers the internal
names have been changed as well.

--------------------------------------------------------------------------------
a75b93279c | Implojin | 2020-07-25 10:20:36 -0400

Adjust SPARM_LUNGING tracer logic.
Based on ebering's suggestions in PR 1409 review: This commit adds Fedhas
passthrough for lunging, uses you.can_pass_through for most of the logic,
and makes some minor style adjustments.

[ Committer's note: Squashed and rebased. Closes #1409 ]

--------------------------------------------------------------------------------
9ee0e9ea7b | Implojin | 2020-07-24 19:03:00 -0400

Mark SPARM_LUNGING as dangerous.
This ego is going to lead to players running into groups of hostiles. It
seems appropriate to warn them.

--------------------------------------------------------------------------------
bb997399f7 | Implojin | 2020-07-24 19:03:00 -0400

Disable SPARM_LUNGING on Bardings.
The Naga species conduct is built around limiting repositioning: It's not
really appropriate for SPARM_LUNGING to be available for Na.

The Barding item generation code has also been changed in Trunk since this
ego was written: At present, the code does not distinguish between Naga and
Palentonga bardings.

As there are also some remaining compatibility questions re: how Lunging
should interact with Palentonga movement, this commit disables SPARM_LUNGING
on bardings entirely for now.

If it's decided later that SPARM_LUNGING should work with Palentonga, such
compatibility can be fixed at that time.

--------------------------------------------------------------------------------
d33f4bd691 | Implojin | 2020-07-24 19:03:00 -0400

Add a new SPARM_LUNGING tile.
This is very WIP stuff, but it's better than copying the old Jumping tile.
I couldn't find any Crawl doc guidelines on effect palette theming, but I
tried to make it predominantly purple-ish to indicate 'repositioning effect'
to players.

--------------------------------------------------------------------------------
a5349f925a | Implojin | 2020-07-24 19:01:22 -0400

New ego: Boots of lunging.
This commit adds SPARM_LUNGING and all the plumbing to go with it.
When equipped, this ego passively grants the player one "free" move action --
but only when moving directly towards a hostile monster.

Have fun!

Lunging handles manticore barbs, engulf, outgoing player constriction,
ozocubu's armour, eringya's noxious bog, cloud trails, ozocubu's armour,
and travel trails.

Additionally, this commit adds handling to ensure that Lunging will
still take time and trigger post-move effects, in the event that
check_stop_running() or check_moveto() cancel the second square of the move.

Lunging is hasty for Chei, and only the time-consuming move triggers
Wu Jian actions.

--------------------------------------------------------------------------------
2a9615731a | Edgar A. Bering IV | 2020-07-24 12:13:38 -0400

Describe item stacks with xv
This extends the functionality of the describe key v in explore mode
when a pile of items is targeted to give a menu asking which item the
user would like described.

--------------------------------------------------------------------------------
e9dc0e8d5b | Edgar A. Bering IV | 2020-07-24 12:13:38 -0400

Clean up some old book reading code

--------------------------------------------------------------------------------
d94cb669be | Edgar A. Bering IV | 2020-07-24 12:13:38 -0400

Split const and non-const parts of describe_item
describe_item gets called in two contexts: describing an item that can't
be interacted with at present (in view, in a shop, an acquirement offer)
and describing an item in inventory (which offers interaction commands).

The former use case is completely const, the latter is necessarily
non-const because the available actions might modify the item in some
way.

The combination of these use-cases led to several unnecessary
const_casts in the codebase. This commit splits the two use cases into
two separate functions and updates all call sites that only want the
former behavior. It also explains a const_cast used in shopping and
acquirement, and removes an unneeded unwind_var in those settings.

--------------------------------------------------------------------------------
a3d1f51b80 | advil | 2020-07-23 16:48:15 -0400

Add missing `static`s

--------------------------------------------------------------------------------
1bdd5c9711 | Edgar A. Bering IV | 2020-07-23 14:16:50 -0400

Visit all stashes with greedy_explore (kate-)
While piles are now revealed, visiting each stash is still a valuable
interface property for a streamlined play experience with
greedy_explore. This commit restores that behavior.

--------------------------------------------------------------------------------
330158afa5 | Edgar A. Bering IV | 2020-07-23 13:41:46 -0400

Reveal pile contents in los
Requiring players to walk to multi-item piles is a simulationist relic
that is mostly an interface screw; with monster items identified and
necromancy "corpse sense" for corpse using spells, the player can tell
what is in a pile (more or less) in advance, but must navigate their
character to the cell to confirm that information.

This requirement prevented 'x' from describing piles effectively, since
describing a stash has (mostly vestigal) requirements for communicating
the conditional nature of the knowledge.

With this commit piles are no longer obscure things you can only see the
top of. If an item is in LOS, it can be viewed with all of the usual
view commands.

--------------------------------------------------------------------------------
030cb20a18 | Edgar A. Bering IV | 2020-07-23 13:02:37 -0400

Make ^x consistent when accessed via x instead of directly

--------------------------------------------------------------------------------
89fe4bc6bc | Edgar A. Bering IV | 2020-07-23 10:12:37 -0400

New regex list option monster_item_view_features
Add an ability to customize the features listed in ^x. This is intended
as an accessibility feature to allow visually impaired players to
request a customizably more verbose ^x listing describing the dungeon
around them.

--------------------------------------------------------------------------------
e0a2d2f65e | Edgar A. Bering IV | 2020-07-23 10:12:37 -0400

Make ^x in the targeter context sensitive
Using ^x from within a targeting prompt will only display eligible
targets (monsters, items, features). This includes LRD-eligible
features. Selecting them will move the targeter appropriately.

--------------------------------------------------------------------------------
59fe67cabc | Edgar A. Bering IV | 2020-07-23 10:12:37 -0400

Allow ^x in the targeter and use it to select a target
This is a long-requested feature, primarily for visually impaired
crawlers but also as a shortcut automation for many players who want to
quickly aim at the gnoll with the distortion weapon or whatever.

--------------------------------------------------------------------------------
9bf6f1401d | Edgar A. Bering IV | 2020-07-23 09:16:54 -0400

Remove some vestigal eating options

--------------------------------------------------------------------------------
7c001a520f | Edgar A. Bering IV | 2020-07-23 09:07:47 -0400

New option: travel_one_unsafe_move
Setting this option to true causes auto-travel/auto-move to skip safety
checks for the first move. This is intended as an accessibility option,
allowing easier expression of things like "take one step to the nearest
stair" via the user interface for users who would like to or need to
rely more on automated pathfinding.

--------------------------------------------------------------------------------
5864c69260 | Edgar A. Bering IV | 2020-07-22 23:27:56 -0400

Fix some volitile state in direction_chooser

--------------------------------------------------------------------------------
649b3d1337 | Kate | 2020-07-23 01:35:23 +0100

Further clarify Chei passive

--------------------------------------------------------------------------------
3f6f88936d | Kate | 2020-07-23 01:34:33 +0100

Update Artificer description (ebering)

--------------------------------------------------------------------------------
239875ab86 | Kate | 2020-07-23 01:30:47 +0100

Don't leak information about invisible summoners (#12326)

--------------------------------------------------------------------------------
6c26fa703d | Kate | 2020-07-23 00:44:44 +0100

Clarify sleeping butterfly movement
Most monsters are indicated as "sleepwalking" to explain why they move
while asleep and confused, but permaconfused monsters like butterflies
didn't have any such description - describe them (and fire vortices) as
"drifting".

--------------------------------------------------------------------------------
ee3a7d6640 | Kate | 2020-07-22 20:45:36 +0100

Adjust wording of Chei passives (#12321)
Since it no longer affects metabolism outside of slowing down poison.

--------------------------------------------------------------------------------
d09758e20d | Kate | 2020-07-22 20:41:20 +0100

Use form-specific shout verbs during wereblood (#12325)
You whoosh as the wereblood boils in your veins!

--------------------------------------------------------------------------------
fc2ff0c6b6 | Kate | 2020-07-22 20:37:31 +0100

Don't give Artificers branded starting weapons
Giving them a weapon with a brand that scales with evocations suggests
that they're supposed to continue to focus on that skill primarily (even
though it's on a very weak base type of weapon), but other recent changes
have been intended to make it clearer that the starting weapon is
something that's supposed to be abandoned and they should adapt to their
finds - the starting wands help survival but there's no real support for
a pure evocations playstyle.

If starting with a spectral weapon is really desired, they should most
likely be somehow rebalanced to get a standard weapon choice and some
starting weapon skill.

--------------------------------------------------------------------------------
feb5eb7db6 | Kate | 2020-07-22 19:57:48 +0100

Rebrace

--------------------------------------------------------------------------------
0b5ff556b1 | Aidan Holm | 2020-07-22 23:51:03 +0800

Fix excessive redraw when autofiring ranged weapons
This issue seems to have been caused purely by excessive redrawing
of the screen, even though the content being drawn was exactly the
same; terminals naturally lack a way to express any sort of framing or
do atomic updates. This was caused by autofight.lua's implementation
opening the targeter, issuing several commands to move the cursor, and
then firing; each command caused a re-render.

This wasn't an issue on local tiles or non-web console, because they
won't re-render while there's still input. Unfortunately that's not yet
possible on webtiles; I believe there are still one or two UIs that
require a render call in order to get their text painted and sent to
webtiles.

The way around this I've used here is to split buffer swapping /
updating out of rendering, and call it independently. Webtiles updates
are managed separately, so calling render() but not swap_buffers() will
still result in correct display on webtiles. The practical upshot is
that rendering is now skipped on webtiles console if there are pending
key events, which fixes the excessive redraw issue with autofight.lua

Fixes #1492.

--------------------------------------------------------------------------------
67388ea477 | Edgar A. Bering IV | 2020-07-21 15:03:15 -0400

Don't place dispersal traps in opaque vaults
This was causing the occasional connectivity failure by messing up
opaque vaults and interfering with their connectivity guarantees, so
let's not.

--------------------------------------------------------------------------------
41ea3d6674 | Alan Malloy | 2020-07-21 11:06:59 -0700

Mark charms as removed (/u/gottasay)
In particular, this means you can no longer find manuals of Charms.

--------------------------------------------------------------------------------
5367098bfc | Alan Malloy | 2020-07-21 11:05:52 -0700

Remove some unnecessary initialisers

--------------------------------------------------------------------------------
d2d4e505ad | advil | 2020-07-21 12:22:31 -0400

Skip pan when reporting per-level time
This code didn't work right because it aggregated pan time, giving the
same info that PlaceInfo already collected. It would be possible to fake
up numbers for distinct pan levels but that doesn't really seem like
useful data right now, so just don't report it at all.

--------------------------------------------------------------------------------
5bc9781010 | advil | 2020-07-20 21:29:17 -0400

Tweak time per level formatting

--------------------------------------------------------------------------------
f3277c4969 | advil | 2020-07-20 15:50:42 -0400

Track time taken per level
This will only apply to new games after this commit unfortunately, since
it's not info we were tracking already. This implementation is pretty
quick/hacky, but it would be easy to simply drop the prop + code
altogether once we no longer need this data (said everyone who
introduced a new player prop, ever).

--------------------------------------------------------------------------------
3d505ba2c6 | Edgar A. Bering IV | 2020-07-20 10:17:33 -0400

Update the changelog

--------------------------------------------------------------------------------
8013e45feb | Peter Gerlagh | 2020-07-20 09:55:18 -0400

Force autopickup with ;;
; usually displays the items in the stack the player is standing
of if the player is 'unsafe', and forces autopickup otherwise.
As of this commit autopickup can be forced even if the player
feels unsafe by pressing ; twice.

[ Committer's note: Closes #1421. Squashed & rebased, resolved merge
  conflict and updated to use the new `prev_cmd` parameter to
  process_command. ]

--------------------------------------------------------------------------------
1c8c1436e2 | syranez | 2020-07-20 09:27:17 -0400

Webserver: Enhance lobby_remove message
The lobby_remove message contains now additionaly this three attributes:

* reason: the players cause for exiting the game ("saved", "bailed out", "dead")
* message: exit message if the reason is not "saved". Otherwise it is
null.
* dump: contains an url to the final morgue file or player morgue
directory if game is not finished yet.

--------------------------------------------------------------------------------
b778e2ae01 | Edgar A. Bering IV | 2020-07-20 08:58:08 -0400

Adjust Alistair's Intoxication
This commit adds a prompt if there are no affectable monsters in view;
it also updates the description of the spell to reflect what the
possibilities are (the "humanoid" restriction is long gone; the
restriction is intelligent and MH_NATURAL (aka living in the Lore)).

For a dual school level 5 spell with awkward schools, obtaining high
power is reasonably hard. This commit tweaks the spell a bit: the power
cap is raised to 150 and vertigo is applied unconditionally, with
duration scaling on the number of affected monsters. This cap keeps the
spell below the "guaranteed confuse non-resistant monster" threshold,
but makes the spell more attractive to investment later into the game.

--------------------------------------------------------------------------------
9fd5911e23 | Nicholas Feinberg | 2020-07-19 22:45:53 -0700

Fix another compiler warning

--------------------------------------------------------------------------------
9031aedee8 | Nicholas Feinberg | 2020-07-19 22:43:50 -0700

Don't claim Cheibriados slows metabolisms
What's a metabolism? Sounds like something from Nethack.

--------------------------------------------------------------------------------
96c8680b48 | Nicholas Feinberg | 2020-07-19 22:39:15 -0700

Give Palentonga charge a to-hit bonus
It feels bad to miss on a big exciting charge that you put work
into setting up, so we can make charges miss less often while still
making player accuracy somewhat meaningful.

--------------------------------------------------------------------------------
95eb4fa919 | Nicholas Feinberg | 2020-07-19 22:39:12 -0700

Fix a compiler warning

--------------------------------------------------------------------------------
5b8897f42d | Nicholas Feinberg | 2020-07-19 22:34:48 -0700

Display to-hit in monster xv
When examining monsters, display approximate to-hit chances for
your current attack (melee or ranged) next to their EV. Make some
adjustments to to-hit calculation needed to display this EV in an
almost non-duplicated way. Experiments with fsim and matlab suggest
these changes should have minimal impact on play; fingers crossed.

Minor other changes:
- Flatten all UC hit modifiers from slight variance (between +4.5 to
  +6) to +5 for all applicable forms, for simplicity. This may
  have some balance impacts.
- Don't amuse Xom with non-random attacks (which aren't real).

Thanks to elliptic for the advice and WiseOldWolf/SanHolo for the
extensive help and code contributions with this!

--------------------------------------------------------------------------------
7e20f673c0 | Nicholas Feinberg | 2020-07-19 20:25:45 -0700

Don't make allies hostile when joining a god
The only permanent allies you can get that gods would hate are lost
when you leave the old god anyway, so there's no need for the extra
crufty complexity of making temporary allies go hostile.

--------------------------------------------------------------------------------
2951c22926 | Nicholas Feinberg | 2020-07-19 18:06:34 -0700

Never anger allies
One of the most obscure parts of Crawl's divine conducts is that many
gods forbid the player from using certain allies. Above and beyond
giving penance for casting summoning spells, using items, etc, the gods
will anger any monsters of a disapproved type that somehow become allied
to the player, immediately making them un-allied. This is weird lore and
bad gameplay - it doesn't add tactical complexity or interesting
scenarios, it's just an annoying gotcha in rare corner cases.

This commit removes those behaviors. This has the following effects:
- Using spells and items that create undead or demons will still cause
  penance under good gods but won't make the created monsters hostile.
- Phantom Mirror can be used on god-hated enemies without consequence.
- An ally that becomes polymorphed into something your god hates won't
  become hostile.
- The Horn of Geryon and Sceptre of Asmodeus will still give the player
  penance under good gods but aren't guaranteed to summon hostile demons
  afterward.
- If a monster gains XP and transforms into a different type that your
  god hates, don't anger it. (This probably couldn't happen anyway.)
- Don't automatically anger allied monsters placed for any other reason,
  e.g. summons of summons.

Also, remove the unused monster_simulacrum function.

--------------------------------------------------------------------------------
13fbb91ece | Aidan Holm | 2020-07-20 01:56:40 +0800

Remove redundant redraws in direction chooser
Now that the direction chooser is implemented as a widget, it doesn't
need to call update_screen() itself; the ui framework will do that once
everything in the widget tree has drawn to the screen.

The range_view_annotator object does not need to call viewwindow, since
the direction chooser widget will immediately do an initial render; so
it can be reduced to just flipping some state.

We also don't need to clear the screen after describing tiles, since the
render handler will just redraw everything.

--------------------------------------------------------------------------------
f9beda28d2 | Aidan Holm | 2020-07-20 01:56:40 +0800

Don't update screen when exiting last UI layout
The point of this redraw_screen call was to restore the contents of the
screen to a known state before returning control to the main game loop
and its associated rendering code. Since it's going to update the screen
anyway, there's no point in us doing it as well, and it's better not to,
as it will reduce flicker.

--------------------------------------------------------------------------------
5a0d02cfae | Aidan Holm | 2020-07-20 01:56:33 +0800

Don't force screen update in redraw_screen
See 3ebe85eda6 for rationale.

--------------------------------------------------------------------------------
72aac4d990 | Aidan Holm | 2020-07-20 01:56:33 +0800

Remove redraw_console_sidebar() hack
Now that the direction chooser is drawn by a widget that redraws the
entire screen, this hack is no longer needed, and instead actually adds
latency and glitches due to an extra screen update.

--------------------------------------------------------------------------------
c6476c8bcd | Aidan Holm | 2020-07-20 01:56:20 +0800

Don't force screen update in viewwindow
See 3ebe85eda6 for rationale.

--------------------------------------------------------------------------------
3ebe85eda6 | Aidan Holm | 2020-07-20 01:55:44 +0800

Don't force screen update in print_stats
This commit splits screen updating out of stat printing, requiring the
caller to update the screen explicitly. This is analogous to viewwindow
for local tiles, where viewwindow does not render to the screen, but
instead loads a dungeon viewbuffer into the dungeon widget, which then
renders it on the next redraw.

Printing to the screen and actually showing those changes ('swapping the
buffers') are completely different actions that should not be entangled.
Printing will be done by widgets, but updating should be done only by
the ui framework. Even for legacy bits of crawl code that do a lot of
manual view updating, and the hacks that join the new code and the
legacy code, it's much better to be explicit since this allows doing
multiple paints and then updating the entire screen in one fell swoop;
this is critical for eliminating rendering issues and ttyrec bloat.

Next: viewwindow, redraw_screen

--------------------------------------------------------------------------------
38af612a8a | Aidan Holm | 2020-07-20 01:55:44 +0800

Reimplement direction chooser UI as a widget
Now that the direction_chooser uses a view_renderer to inject its custom
rendering code into viewwindow, wrapping this stuff with a widget is
more or less straightforward.

Some complications: the UI framework itself will first draw all current
tilesdl regions before drawing any widgets, since this is the first
widget that is not a popup to be drawn over these regions. The direction
chooser must render these itself, however, as it calls viewwindow with
custom rendering commands. To prevent them being called twice, we add
the ugly ui::should_render_current_regions hack. This can be removed
once the code drawing the current regions is extracted to a 'main view'
widget; this requires extensive modifications to a lot of code in order
to pull all game input through the UI framework's event loop, since
otherwise the main view widget wouldn't be drawn, and *that* can't be
done until directn (and viewmap) are wrapped in widgets. The long and
short of it is that this hack is required to break the catch-22 cycle.

Only part of this needs to be conditional; the maybe_redraw_screen() is
always needed, in case of resizes.

Another less major complication is that we must pump at least the
handle_mouse part of the tilesdl main loop, in order to update the mouse
cursor position on the map region, which requires making handle_mouse
public.

--------------------------------------------------------------------------------
8d3701215b | Aidan Holm | 2020-07-20 01:55:44 +0800

Extract ui::MouseEvent -> wm_mouse_event conversion

--------------------------------------------------------------------------------
9df63ee947 | Aidan Holm | 2020-07-20 01:55:44 +0800

Fix widgets having a size of 0x0 by default
This commit changes the default widget sizing behaviour to "grow as much
as possible, and be able to shrink down to nothing", which is a much
better default than "just be 0x0 and confuse the poor dev trying to get
their new widget to work".

--------------------------------------------------------------------------------
aa1b24a277 | advil | 2020-07-19 12:14:11 -0400

Don't log initfile errors on webtiles (+refactoring)
The options file is read in two passes: one before the whole io system
is initialized, one after. For offline purposes, any errors before the
io system are initialized are echoed to stderr, in case the game never
succeeds at io initialization. In addition, a bunch of specific errors
for certain options were explicitly sent to stderr for reasons that
aren't clear to me (these fprintf lines go back to linley as far as I
can tell). Anything sent to stderr gets logged by webtiles and so these
options errors both clutter up the log and unnecessarily alarm server
admins, where the only meaningful signal in them should be to the player
("your rc file needs updating"). This has particular been an issue
because non-updated but widely-used HDA rcs set a color for the pray
channel (removed a while ago) and the food channel (removed recently).
The contentful part of this commit is to (a) standardize these initfile
errors to use the same reporting mechanism as everything else (and so
get rcfile line #s), and (b) suppress all echoing to stderr for anything
that happens on the first initfile pass for webtiles builds, which
should lead to no options errors getting logged. Players will still see
the errors when starting up their game.

In addition, I did a bunch of refactoring and moved a tiny bit more
messaging-related code into the existing, but barely-used, `msg`
namespace. The most public-facing api change here is that `no_messages`
is renamed to `msg::suppress`.

--------------------------------------------------------------------------------
d6aadd2fae | Aidan Holm | 2020-07-19 14:19:20 +0800

Fix clouds being drawn under monsters/items (Yermak)
This should have been part of 5ef36ef8; oops!

--------------------------------------------------------------------------------
11c2b627af | advil | 2020-07-18 12:56:18 -0400

Change turns_by_place to use auts (PleasingFungus)
Misnamed, but such is life in crawlcode.

--------------------------------------------------------------------------------
e71225c77c | advil | 2020-07-18 12:26:16 -0400

Modify turns_by_level, enable for alpha games
This is for data collection for clock tuning purposes. This doesn't
quite do what we'd wanted in that it doesn't have full level-by-level
detail but it's still extremely informative. This means that the window
into slow places like vaults 5 / zot 5 is only indirect.

Modifications: show raw turn counts instead of percentages, directly
show the number of levels per place.

I just replaced xp_by_level, which isn't needed any more, so morgues
don't really change size.

--------------------------------------------------------------------------------
f1efd62670 | Edgar A. Bering IV | 2020-07-17 23:12:35 -0400

Make Zin hate Wereblood (jfcaron)

--------------------------------------------------------------------------------
1d9a9cd4fa | Edgar A. Bering IV | 2020-07-17 17:12:02 -0400

Allow training evocations with a spectrat weapon

--------------------------------------------------------------------------------
f11124cc91 | Edgar A. Bering IV | 2020-07-17 17:10:52 -0400

Trigger the spectral brand on hit (hellmonk)
This is to avoid tedious "swap for an on demand blocker" issues as well
as "keep out for a renewing blocker" issues.

--------------------------------------------------------------------------------
20a70addb1 | advil | 2020-07-17 16:07:12 -0400

Lower the spell fail polynomial cap
This was introduced in cef5c758032e to deal with potential overflows in
low strength / heavy armour scenarios. However, this commit didn't take
into account the fact that `chance2` is signed, so while I'm not sure if
an overflow was possible in practical scenarios, it was possible in
principle. (CanOfWorms and I discussed this at the time but it looks
like neither of us ever made the commit.) This commit lowers this cap
substantially so that this polynomial is always dealing with pretty sane
values.

Resolves #1420

--------------------------------------------------------------------------------
601c79e3d9 | advil | 2020-07-17 10:05:38 -0400

Don't load removed spells on ghosts
This handles only full-removed spells, but there is fixup code that
should handle other cases.

--------------------------------------------------------------------------------
dfc9a0e579 | Kyle Rawlins | 2020-07-17 09:26:39 -0400

Adjust debian build instructions
Switch to using `oldstable` for examples, fix a copy + paste error.
--------------------------------------------------------------------------------
d2331e51f2 | Edgar A. Bering IV | 2020-07-17 00:58:34 -0400

Don't generate manuals of removed skills

--------------------------------------------------------------------------------
fe224cc0de | Nicholas Feinberg | 2020-07-16 20:30:57 -0700

Fix player background icons (ardl)
It'd be great if we had an assert that the length of recommended
and non-recommended background icons were both equal to the number
of backgrounds.

--------------------------------------------------------------------------------
a24b09dfbc | Kate | 2020-07-17 03:58:45 +0100

Adjust Gozag potion lists
Don't offer potions of flight since they're uninteresting in combat,
and add lignification as an occasional possibility.

--------------------------------------------------------------------------------
12be3fcb38 | Kate | 2020-07-17 03:58:45 +0100

Don't give Formicids useless starting items
They could be given potions of haste and scrolls of blinking, since
uselessness was checked with the item unidentified.

--------------------------------------------------------------------------------
d03b2cc482 | advil | 2020-07-16 20:58:00 -0400

Updated removed_spells

--------------------------------------------------------------------------------
b0d7edea47 | advil | 2020-07-16 20:32:20 -0400

Disable cursor validity checks on windows
This obviously isn't ideal, but I can't figure this out with the limited
tools / speed I have in my VM. Probably what is going on is that one of
the lower-level windows-specific drawing calls is leaving the cursor in
an odd state before a viewwindow call.

This change should be basically safe in that the problem isn't in the
higher level code, which at this point is quite heavily exercised on
linux/mac.

--------------------------------------------------------------------------------
19ad421082 | advil | 2020-07-16 20:32:19 -0400

Fix actions retries (alexjurkiewicz)

--------------------------------------------------------------------------------
b49d02c8f5 | Edgar A. Bering IV | 2020-07-16 19:59:41 -0400

Don't autopickup arrows for Transmuters any more

--------------------------------------------------------------------------------
9a97dfeeb7 | Edgar A. Bering IV | 2020-07-16 19:24:51 -0400

Allow charge to bypass terrain effects on intermediate squares
Processing the moveto effects for intermediate spaces creates a lot of
technical complexity as well as a lot of special cases that are
difficult to communicate to the player unless we go with all (which is a
prompt/check/code headache) or only the destination (clear, single
prompt for target location, opens up new tactics): will noxious bog or
clouds in the interim effect me? What about traps? Which ones, why and
how?

This commit goes with the second option: only apply the destination
terrain effects. The safety from danger is mentioned explicitly in the
ability description, and flavoured as rolling fast enough to avoid the
dangerous effects of terrain. The destination effects may include
getting webbed or netted; in this case the attack is aborted (so roll
into webs or net traps at your own risk).

--------------------------------------------------------------------------------
37a9400bf0 | Edgar A. Bering IV | 2020-07-16 19:04:17 -0400

Forbid Hob and Charge while netted or webbed
These abilities (unlike others) are supposed to be movement-esque, not
magical. Movement is forbidden while netted or webbed, so block these
too.

--------------------------------------------------------------------------------
f31ff04d85 | Edgar A. Bering IV | 2020-07-16 18:32:16 -0400

Don't let Ru try to sacrifice removed Charms
They're already gone, buddy.

--------------------------------------------------------------------------------
33516b1736 | Edgar A. Bering IV | 2020-07-16 15:56:43 -0400

Don't remove fixup spells from the library (Shummie)
c881fc3179 introduced compatibility code to fixup removed spells
regardless of tag-minor status; unfortunately this resulted in spells
with a replacement being removed from newer saves.

--------------------------------------------------------------------------------
a50eacd245 | advil | 2020-07-16 15:32:55 -0400

Tweak windows console code
Includes a refactor of clrscr into a _sys version and a generic version.

--------------------------------------------------------------------------------
a598ecdb3d | Edgar A. Bering IV | 2020-07-16 14:18:35 -0400

Fix a crash in battlesphere targeting

--------------------------------------------------------------------------------
4c0e6339b2 | Edgar A. Bering IV | 2020-07-16 14:15:56 -0400

Handle Engulf, Bog, and cloud trail for Rolling Charge
Engulf breaks on move, and should definitely break on charge.

Rolling charge is flavoured as a move, not a blink, so it should leave
appropriate trails.

--------------------------------------------------------------------------------
2b0ca819d0 | Edgar A. Bering IV | 2020-07-16 14:00:24 -0400

Refactor some sequencing in move_player_action
This commit extracts some movement effects (escaping Engulf, Noxious
bog, and Xom cloud trails) to their own functions from
move_player_action, and re-sequences their calls to apply them
correctly: on moves that actually move, regardless of whether you've
swapped with a monster.

--------------------------------------------------------------------------------
3a799e3adc | Edgar A. Bering IV | 2020-07-16 12:04:22 -0400

Correct order of barbs/ozos removal in charge

--------------------------------------------------------------------------------
8c663eea8a | Kate | 2020-07-16 03:42:18 +0100

Staticify some more functions

--------------------------------------------------------------------------------
25a19abd72 | Kate | 2020-07-16 03:16:39 +0100

Staticify a function

--------------------------------------------------------------------------------
ee15e7bf93 | Edgar A. Bering IV | 2020-07-15 20:30:37 -0400

Rename MainiacJoe in the CREDITS

--------------------------------------------------------------------------------
0fd6188fbd | Edgar A. Bering IV | 2020-07-15 20:15:38 -0400

Apply barbs to Palentonga charge (Yermak)

--------------------------------------------------------------------------------
07f4068f90 | Goratrix | 2020-07-15 20:09:06 -0400

Fix fleeing Harold speech
Bug reported by Mintice in Discord, the speech shows yells with
at signs around it. I suppose the intention here was to have the
verb randomized as per the _yells_ list.

--------------------------------------------------------------------------------
0fb1eaa16f | Edgar A. Bering IV | 2020-07-15 19:49:34 -0400

Revise Beastly Appendange
Beastly Appendage has two issues at present.

The first is a charms-like "always cast this low level spell for
marginal benefit", the condition isn't quite always, but any melee
character without boots or a helmet who isn't using other forms should
use this (as should any Op).

The second is that the possibilities of Horns and Talons are not
balanced against eachother, so the player is incentivized to re-cast
until the better aux is granted.

This commit addresses both of those, while buffing the spell slightly to
address concerns that Tm is too weak without Sticks to Snakes as a
crutch. Beastly appendage now melds aux armour slots, weapons, and
shields and gives Horns 2 and Talons 2 (Op keep tentacle spike 3). Two
level 2 aux attacks was selected over a single level 3 so that the spell
synergizes better with Wereblood.

--------------------------------------------------------------------------------
5743907206 | Edgar A. Bering IV | 2020-07-15 19:49:34 -0400

Start Artificers with a spectral club
The spectral ego uses evocations, which keeps with the theme of an
"evocable" start. Without weapon skill the club is still hard to use,
and the boost from the brand is limited. Even with evocations and weapon
training a spectral club quickly falls off.

From a gameplay point of view, this should give Ar some skill-based
survivability tools that aren't permanent consumables.

From a flavour stance this is really cool.

From a new-player experience I worry that it will mislead new players
into sticking with Maces & Flails; the hope is the starting description
and skill training will be sufficient to steer past the flashiness.

--------------------------------------------------------------------------------
65aa84ea10 | Edgar A. Bering IV | 2020-07-15 19:49:34 -0400

Charming item 🔔: Spectral ego
Re-introduce spectral weapons as a weapon ego. The ego is flavoured as
drawing out the ancient tree spirit from the wood the weapon is made out
of, and the strength of the spectral weapon scales with evocations
skill.

The brand spawns on staves, clubs, giant clubs, and giant spiked clubs
as these are "woody enough" flavour wise. Mechanically, staves are
2handers with good base damage, the spectral ego offers a tradeoff of
brand for having a spectral weapon; a similar statement can be made
about giant (spiked) clubs, with the additional remark that in both
cases the shield slot is restricted. Clubs getting the rare spectral
brand is partly flavour and partly fun, even at 27 evo a spectral club
doesn't hit that hard (7 base dam). Randarts of any weapon type can roll
the brand, but it is limited to two-handers. Brand scrolls never give
the brand, which should keep it relatively rare.

Monsters wielding a spectral ego weapon get a spectral weapon (thanks
gammafunk for not deleting the supporting code when Asterion lost the
spell). Spectral weapon doesn't work great on monsters because of
monster AI, but the limited weapon family should keep it to monsters
that are better at catching the player out in the open (Spriggans and
staves).

Spectral ego icon by CanOfWorms.

--------------------------------------------------------------------------------
d6f7365598 | Edgar A. Bering IV | 2020-07-15 19:49:34 -0400

Generalize weapon brand adjective usage

--------------------------------------------------------------------------------
ddd54418cc | Edgar A. Bering IV | 2020-07-15 19:49:34 -0400

Charming item 🔔: Salamander Hide Armour
The Salamander hide has been on the "unrands to revise" list for a
while. Ring of Flames is too flashy for a mundane item, this commit
moves the effect to the Salamander hide, giving it rF++, rC--, a fire
enhancer, and a ring of clouds and losing +Rage.

Trog doesn't currently hate this but they probably should.

--------------------------------------------------------------------------------
bf280b6766 | Edgar A. Bering IV | 2020-07-15 19:49:34 -0400

Charming item 🔔: Scarf of Shadows
Re-implement the Darkness effect as a scarf ego. This ego also currently
gives 1 spell de-enhancer, since reduced LOS is very strong and allows
more spells to be in range at the edge of LOS. If that makes this item
too weak it can be removed.

The scarf slot was chosen for this effect because it seems like a better
fit compared to the amulet slot, mostly flavor wise. The effect could
work equally well as an amulet, but it seems like a better tradeoff with
the other cloak alternatives than the other amulet alternatives.

Shadow ego icon by CanOfWorms.

--------------------------------------------------------------------------------
3813eac32f | Edgar A. Bering IV | 2020-07-15 19:49:34 -0400

Charm dispersal 🔕: Remove the Charms school, skill, and Skalds
With the remaining charms spells moved out of the school, there isn't
anything for the skill to be useful for. In designing the forthcoming
charm-effect-items it became clear that for the most part they will not
scale with skill; for those that do, we already have a
magic-item-interaction skill: Evocations. In addition to removing the
skill, the school is removed (it was still used for monster spells to
tag them as buffs, but all true buffs are also flagged with selfench)
from spschool type and miscasts. (Some of the miscast flavour lines are
preserved in Hexes miscasts.) This also means removing the Book of
Battle (now mostly empty) and Charm randbooks.

Removing Charms as a school of magic leaves the Skald start without its
core identity: using Charms magic to enhance melee. From a fundamental
design perspective, there are already several backgrounds that much
better embody the use-magic-to-melee better: Warper (positioning),
Transmuter (forms), Enchanter (debuffs), Hedge Wizard (magic grab bag).
Without a separate magic school for their identity, Skalds don't have
much in the way of a background concept. It is possible that the
resulting charm items might make for an interesting adventurer starting
kit of some kind, but that is probably better done by adding them to a
chance in a wanderer start.

--------------------------------------------------------------------------------
1eb17cf853 | Edgar A. Bering IV | 2020-07-15 19:49:33 -0400

Charm dispersal 🔕: Spell removals
This commit removes the remaining spells in the charms school: Infusion,
Shroud of Golubria, Spectral Weapon, and Ring of Flames, as well as
Darkness.

They are all removed for similar reasons: in general if one was using
them it was a "cast once then start fighting" or "always keep this up
it's for the best" situation. Neither option fits well with how crawls
MP system works tactically.

Some of these effects (Spectral Weapon, Ring of Flames, and Darkness)
are cool and we don't want to lose them, so subsequent commits will
reintroduce them as items. For this reason, their supporting code is
left intact by this commit.

Infusion offered a "trade MP for a bit of bonus melee damage"; this
could maybe be restored as an amulet, but its hard to see if such an
amulet would be competitive against the other options in the slot. For
now, it gets the axe.

Shroud of Golubria offered "trade 2 MP for effectively +10 HP"; we
already have an item that uses MP to increase effective HP: guardian
spirit! So shroud gets the axe. The name is freed up and could make a
cool unrand armour name with some kind of translocations flavour.

--------------------------------------------------------------------------------
80901a9d07 | Edgar A. Bering IV | 2020-07-15 19:49:33 -0400

Remove Sticks to Snakes
This spell was overpowered and broken beyond redemption. Its continued
existence was the result of flavour nostalgia and a lack of initiative,
but uncapped unlimited non-abjurable allies for 2mp that swarm and
constrict really does not fit in modern crawl. It's time to say farewell.

The previous commit reflavoured Song of Slaying as a transmutation, so
Wereblood replaces S2S in the transmuter starting book, giving the book
a complete focus on melee enhancing spells.

--------------------------------------------------------------------------------
4d17e5cfac | Edgar A. Bering IV | 2020-07-15 19:49:33 -0400

Charm dispersal 🔕: Move Song of Slaying to Tmut and adjust
Song of Slaying's effect is nice: you make noise but you punch harder,
the noise draws more dudes, you get a nice spiral, but press your luck
too long and the effect ends.

This commit moves the spell to Transmutations and reflavours it
"Wereblood": transforms some of the caster's blood into that of a
were-beast, giving them a slay bonus on kills. The noise is reduced to
only trigger on a chance based on the bonus, instead of continuously
throughout the duration (still loud casting noise as well).

Wereblood spell icon by CanOfWorms.

--------------------------------------------------------------------------------
8bcf005466 | Edgar A. Bering IV | 2020-07-15 19:48:23 -0400

Simplify Battlesphere targeting and spell schools
This commit simplifies the targeting & triggering of Battlesphere to
make it work better with positional magic. The battlesphere is still
synced to the player's conjurations, but now picks a random target that
the caster can see to fire at and is triggered only by conjurations
school spells (except Battlesphere and Servitor).

--------------------------------------------------------------------------------
b15d068683 | Edgar A. Bering IV | 2020-07-15 19:47:57 -0400

Charm dispersal 🔕: Move Battlesphere to Conjurations only
Battlesphere is in a bit of an awkward place with the positional magic
changes. Unlike other charms the MP cost of battlesphere is
relevant, as its use depends on subsequent casts and it could end up in
a less than useful position.

--------------------------------------------------------------------------------
ce404f1eac | Edgar A. Bering IV | 2020-07-15 18:24:56 -0400

Charm dispersal 🔕: Move Excruciating Wounds to Necromancy only
Excruciating Wounds was on the borderline. The noise made it a bit
impractical to cast before every fight, but with sufficient spellpower
stairs and retreating to cleared areas could tediously be used to get
the effect for minimal cost.

This changes EW to be single-school, as well as reduces the casting
noise. In exchange, EW prevents unwielding the weapon for the duration
and applies a wizardry penalty (currently the same as spider form). The
reduced noise reduces the incentive for retreat-casting and the
inability to voluntarily cancel the wizardry penalty makes the cost for
use ongoing instead of one-time, which is a more interesting decision.

--------------------------------------------------------------------------------
8d63b166cd | Edgar A. Bering IV | 2020-07-15 18:24:34 -0400

Charm dispersal 🔕: Move Death's Door to Necromancy only
Death's door is very much not an "always on" charm, it's very powerful
but with major downsides. It works as a continued effect in the
Necromancy school, raised to level 9.

--------------------------------------------------------------------------------
e3db891996 | Edgar A. Bering IV | 2020-07-15 18:24:34 -0400

Charm dispersal 🔕: Move Swiftness to Air only
Swiftness as a charm has tradeoffs, so works well as a spell effect with
tactical limitations. If it is too strong as an Air only spell it can
pick up a level or a new second school.

--------------------------------------------------------------------------------
b20c95032b | Edgar A. Bering IV | 2020-07-15 18:24:34 -0400

Charm dispersal 🔕: Move Ozocubu's armour to ice only
Ozo's Armour has a good tradeoff: you get the bonus as long as you don't
move. This is fine as an ice only spell, like ramparts.

This commit also changes Ozo's to work in all armour with an ER based
penalty to its bonus. Currently the penalty is ER/2, meaning that in
crystal plate max power Ozo's grants only 2 AC.
Training Ozo's to maximum power in CPA is sub-optimal outside of
megazigs where everything is available; even then 2 AC that can be kept
only when not moving is sufficiently marginal that the spell shouldn't
be a no-brainer. If this is wrong the ER restriction can be restored.

If Ozo's armour is too powerful at L3 single school the level can be
bumped.

--------------------------------------------------------------------------------
a73497bf3f | Kate | 2020-07-15 20:34:00 +0100

Merge terrain destruction veto tags in vaults
Having multiple veto tags for different types of terrain destruction was
redundant, since for any feature where one would be used, they were all
applied.

--------------------------------------------------------------------------------
1a376705da | Kate | 2020-07-15 20:33:24 +0100

Adjust Palentonga glyph and genus
From 'r' to 'H', and give them their own genus.

--------------------------------------------------------------------------------
e2f3d4a7ca | advil | 2020-07-15 14:25:14 -0400

Exclude load_games.py from lint
Sort of too bad because this is one of the few files that was passing,
but something weird is happening with flake8-isort -- it seems to be
producing an error for a missing blank line, but when I add the blank
line running `isort` removes that line. Some day someone should do a
real lint pass sorting out this stuff but it is not me, today. (In this
case the solution may be not to use flake8-isort?)

--------------------------------------------------------------------------------
2e24376507 | Alan Malloy | 2020-07-15 11:06:20 -0700

Don't leak information about lig potions (#12317, andrew)

--------------------------------------------------------------------------------
c881fc3179 | advil | 2020-07-15 12:23:14 -0400

Fixup library spells unconditionally (hitemv+hard)
This code was originally added specifically for the positional magic
changes, but 61946d8 used it as a more general removed spell fixup to
handle confuse. However, the library calls in particular were
conditioned on an earlier minor tag (from 688896fa), whereas the
memorized spell calls were not -- and so the fixup never got called for
games started after the original minor tag, and confuse could still
exist in someone's spell library.

There's minimal cost to not conditioning on the minor tag, so move this
more towards generic removed spell code than positional-specific code.

--------------------------------------------------------------------------------
9343652e2b | Nicholas Feinberg | 2020-07-15 08:39:07 -0700

Break ozo's armour on charge (hellmonk)

--------------------------------------------------------------------------------
6a4b283d67 | advil | 2020-07-15 10:57:23 -0400

Fix a bad vector index in apportion (Nasst / 12316)
The actual fix is moving the final terrain check inside the while loop,
but I added a whole bunch of comments and some minor restructuring to
this code in the process. (This fix is somewhat different than the patch
in 12316, because I do in the end think using the pop_back step better
reflects apportion logic -- I have changed some comments based on this.)

--------------------------------------------------------------------------------
187c3b9b96 | Nicholas Feinberg | 2020-07-14 20:39:08 -0700

Remove debug code

--------------------------------------------------------------------------------
273fa06577 | Nicholas Feinberg | 2020-07-14 20:36:02 -0700

Stop drowning palentongas (Shummie)
If we hit something en route to the intended target, our movement
would be along a ray directly to the new target, which wouldn't
necessarily take the same path as the ray that we did sanity checking
on.

--------------------------------------------------------------------------------
a6d9778b44 | Nicholas Feinberg | 2020-07-14 19:16:14 -0700

Tweak barding description

--------------------------------------------------------------------------------
fa14c3a25b | advil | 2020-07-14 19:22:23 -0400

Revert "Give in to a compiler issue on CDO (maybe)"
This didn't work, and in a way that means I'll need to rethink this
more.

This reverts commit be9b07e65a8d7cb6b9ee379de3f568df01f9a6d1.

--------------------------------------------------------------------------------
be9b07e65a | advil | 2020-07-14 19:05:29 -0400

Give in to a compiler issue on CDO (maybe)
Making the class constexpr triggers the following error on CDO trunk
builds:

sorry, unimplemented: calling a member function of the object being
constructed in a constant expression

So, just make the constructor not constexpr.

--------------------------------------------------------------------------------
4e7fcc93f0 | advil | 2020-07-14 17:32:15 -0400

Remove old death by lava/water code
This code is mostly preempted by other checks elsewhere (e.g.
untransforming over dangerous terrain is handled directly), but in very
rare occasions, usually because of a bug, something allows this code to
run and then there's an instadeath. Just replace it with an emergency
flight activation.

--------------------------------------------------------------------------------
6162d163db | Nicholas Feinberg | 2020-07-14 08:41:41 -0700

Make charge sometimes trigger SW
It still seems to work poorly at longer ranges, but I'm not sure
why exactly.

--------------------------------------------------------------------------------
7149c5b0fb | Nicholas Feinberg | 2020-07-14 08:11:45 -0700

Fix charge targeter messaging (Silurio)
It's actually still slightly wrong (some double messages are
printed if you really want), but not as wrong.

--------------------------------------------------------------------------------
b37399546a | Nicholas Feinberg | 2020-07-14 07:57:54 -0700

Re-describe bardings (gammafunk)

--------------------------------------------------------------------------------
aa853452ce | Nicholas Feinberg | 2020-07-14 07:44:38 -0700

Don't make hooves knock bardings off (Lightli)

--------------------------------------------------------------------------------
f84a588162 | advil | 2020-07-14 09:21:53 -0400

Update Makefile for cmd-name.h
Unchanged since enum dispersal, looks like.

--------------------------------------------------------------------------------
59b798a730 | mainiacjoe | 2020-07-14 01:26:47 -0400

Replace Artificer starting Short Blade skill with Armour
Artificers have neither an in-game reason to start with a particualr
weapon (UC for Tm, dagger for En) nor a  thematic reason (dagger for
Assassin). Starting with Short Blades skill presents an opportunity cost
for an artificer looking to use what the dungeon has given, and steers a
newer player away from this all important practice.

This commit moves the starting shortblades skill to defenses. Artificers
now start with Armour 2/Dodging 1 or Armour 1/Dodging 2 based on
aptitudes, like AK and CK.

Everything old is new again, so this returns Ar to starting with a club
(a weapon notable mostly because one wants to switch away from it)
and changes the short description to better communicate to the player
that Ar is "starting with wands" not "set-up for a wand game".

[ Committer's note: Closes #1484. Squashed, rebased, reworded the commit
  message, and fixed whitespace. ]

--------------------------------------------------------------------------------
addc565eac | advil | 2020-07-13 23:38:31 -0400

Fix a tag_upgrade issue

--------------------------------------------------------------------------------
5d5748465d | advil | 2020-07-13 23:33:16 -0400

Fix another off-by-one error with depth
...this one a consequence of fixing the first.

--------------------------------------------------------------------------------
56c0efdb29 | advil | 2020-07-13 23:33:10 -0400

Do something with centaur barding in makeitem test
Not sure if there's a mor general way to handle this...

--------------------------------------------------------------------------------
966fc6e4c8 | advil | 2020-07-13 23:32:09 -0400

Revert "Fix delver"
This reverts commit b4063fc362ffa7302d3482877cd671f3131acbbd.

--------------------------------------------------------------------------------
3b374d4560 | Edgar A. Bering IV | 2020-07-13 22:29:26 -0400

Update the changelog

--------------------------------------------------------------------------------
b4063fc362 | Nicholas Feinberg | 2020-07-13 18:43:54 -0700

Fix delver
Classic off-by-1.

--------------------------------------------------------------------------------
565c65d36c | Nicholas Feinberg | 2020-07-13 18:12:53 -0700

Upgrade DE's Bow apt (hellmonk)
Gives another (largely orthogonal) playstyle option and give bows
fans a new option now that centaurs have ridden away.

--------------------------------------------------------------------------------
0eac133917 | Nicholas Feinberg | 2020-07-13 18:10:24 -0700

Rework Centaurs into Palentongas
Centaurs are a classic, flavorful race, but their implementation was
one-dimensional and didn't encourage the fun tactical gameplay that
Crawl specializes in. If players really want to kite monsters using
innate movespeed, there are other species that offer more interesting
tradeoffs.

But: still, it seems like there's fun design space in the idea of a
'fast-moving large race'. How about this?

Palentongas are a two-armed, four-legged, scaled mammal species the
size of a horse. Their special power is the ability to curl into a
ball and launch a rolling charge at enemies, dealing extra damage
proportionate to the distance traveled. This is a dynamic way to
start fights (as long as you don't mind some extra noise!), and in
larger engagements can let the player ping-pong between enemies for
huge damage. It's also extremely fun against phantoms.

Palentongas have flat melee apts, slightly weak spell apts (with
some preference given to schools that seem more interesting), and
fairly weak ranged apts. (Players with good throwing or slings skill
would be forced to ask themselves "do I do more damage with 2-4
ranged attacks than I do by charging?", which doesn't sound very fun.)

Like centaurs, they have +3 base AC and extra HP, along with an aux
attack - an upgraded tail slap instead of hooves. The tail slap does
the same damage as hooves 3 (10), but has a coinflip chance instead of
being guaranteed, since I didn't want to emphasize melee *too* much.
They also have sInv, to avoid bad moments when you know where an
invisible enemy is but aren't allowed to charge at them.

Like centaurs, they wear bardings (which have been merged into a
single item type, shared with nagas). The Black Knight's barding
is no more.

Stats skew towards strength and away from dex, to give the 'large
race' feeling. As with centaurs, Palentonga have deformed body and
bad armour/dodging apts.

In the Lore, Palentonga are an up-and-coming power, displacing the
orcs, trolls, and ogres of the eastern wastes. Their generals ride
elephants into battle, goading them forward with spiked ankuses.

Art is pending.

--------------------------------------------------------------------------------
b5e148f2df | Nicholas Feinberg | 2020-07-13 17:59:30 -0700

New background: Delver
Shaft traps are fun. What if you had a background that started shafted
all the way to D:5, and needed to find their way back up to survive?

To make it fair, you start with a nice set of consumables: a wand of
digging, ?mapping, ?fear, ?fog, and !haste. In practice, I found that
this was usually enough to avoid sudden centaur- or bee-based death and
to make it back to the top, and that it was a pretty fun and distinctive
start.

--------------------------------------------------------------------------------
3d11bbfad5 | Kate | 2020-07-13 04:01:15 +0100

Remove the book of Beasts
There weren't enough summoning spells to support all three of the books
of Callings, Beasts and Summonings being sufficiently distinct, so
remove the book of Beasts and add Summon Hydra to the book of Summonings.

--------------------------------------------------------------------------------
1fcefbe3cb | Kate | 2020-07-13 04:01:15 +0100

Remove Summon Butterflies
It's never really been a good spell design to allow easily filling LOS
with junk to block enemies - move it to just be a cosmetic Xom effect.

--------------------------------------------------------------------------------
a89f556fec | Kate | 2020-07-13 04:01:15 +0100

Adjust Summon Greater Demon hostility
Since this was a rare use-case for abjuration which is now gone. Greater
demons now always start out friendly, and tier-1 demons aren't guaranteed
to turn hostile, but the check to make demons fully friendly instead of
temporarily charmed is slightly more difficult.

--------------------------------------------------------------------------------
602cf09890 | Kate | 2020-07-13 04:01:15 +0100

Don't offer sacrifice summoning after sacrificing love

--------------------------------------------------------------------------------
2ad3f57c50 | Kate | 2020-07-13 04:01:15 +0100

Prevent training summoning under Sacrifice Love
Also lets it give extra piety in cases where summoning skill had already
been trained.

--------------------------------------------------------------------------------
2f081d995b | Kate | 2020-07-13 04:01:15 +0100

Remove the Aura of Abjuration and Recall spells
These are the only summoning spells that don't actually summon something,
and neither is especially useful. Killing the summoner (or teleporting
away) has been the best way of abjuring things for some time, and recall
is already built in to the gods that make it relevant with
long-duration/permanent allies.

--------------------------------------------------------------------------------
aeb647976c | Kate | 2020-07-13 03:59:33 +0100

Remove unused trap code

--------------------------------------------------------------------------------
73c0fb6129 | advil | 2020-07-11 20:46:08 -0400

Add some tag version #ifdefs to mutation.cc

--------------------------------------------------------------------------------
aa2aba8d75 | advil | 2020-07-11 20:33:08 -0400

One missed carnivorous case

--------------------------------------------------------------------------------
eb112998cb | advil | 2020-07-11 20:25:23 -0400

Really remove fast/slow metabolism
plus a whole bunch of yak shaving in tags.cc, and some hints cleanups.

(Sorry for the messy git history, v.1 was an accidental push.)

--------------------------------------------------------------------------------
a06e7940fc | advil | 2020-07-11 20:07:57 -0400

Revert "Remove fast/slow metabolism"
This reverts commit 7e3f34eca08d2c5ca19d0023e59b142e9b6108aa.

--------------------------------------------------------------------------------
7e3f34eca0 | advil | 2020-07-11 20:05:31 -0400

Remove fast/slow metabolism
plus a whole lot of tags.cc yak shaving

--------------------------------------------------------------------------------
db952e5dbc | advil | 2020-07-11 19:25:10 -0400

Don't let Xom add to weight 0 innate mutations (Lightli)
Other code paths check weight differently than this but Xom uses the
weight calculations in _accept_mutation, and they provide a small chance
of adding on to any innate mutations that are weight 0. One could
imagine that this might have once been intended (because Xom) but it's
not written in such a way that makes me think this is likely; I'm also
pretty sure Xom can't remove such mutations.

--------------------------------------------------------------------------------
3b0d5afba5 | advil | 2020-07-11 16:10:16 -0400

Don't write .prf files for tests
It's super annoying to have this overwrite whatever you last actually
did with "test the Mummy" or whatever.

--------------------------------------------------------------------------------
db804b0e95 | advil | 2020-07-11 16:10:16 -0400

Don't recursively crash during tests
This does actually get called even with Options.no_save set, something I
would not have imagined.

--------------------------------------------------------------------------------
21ffff0279 | Kate | 2020-07-11 20:51:13 +0100

Improve descriptions of Ash's passive abilities (#12245)

--------------------------------------------------------------------------------
3af348c12c | gammafunk | 2020-07-11 09:41:30 -0500

Fix a monster equipment DES error

--------------------------------------------------------------------------------
7ed2249cc2 | advil | 2020-07-10 20:48:54 -0400

Don't crash when dropping removed foods
they were incorrectly set to not be stackable. Also, fix a warning.

--------------------------------------------------------------------------------
5f58d07027 | Edgar A. Bering IV | 2020-07-10 16:20:02 -0400

Remove an unused parameter

--------------------------------------------------------------------------------
ddc8f22af0 | Edgar A. Bering IV | 2020-07-10 16:20:02 -0400

Consolidate corpse handling files

--------------------------------------------------------------------------------
0d1b266048 | Edgar A. Bering IV | 2020-07-10 16:20:02 -0400

Remove chunks and all OBJ_FOOD
With Ghouls transitioned away from chunk eating to heal on kills, the
last food item type can be removed. A few vaults lose a bit of flavour,
but for the most part are preserved with corpses or KPROP: bloody. One,
the food pyramid, just didn't make sense anymore.

There may still be some code clean-up to do after this commit.

Chunks live on in max_monster_chunks, used for computing knockback
effects, simulacra, and Hydra form vore heal. Perhaps in the fullness of
time this can be cleaned up, but as its internal and not player facing
it is less urgent.

--------------------------------------------------------------------------------
346c96a0f3 | Edgar A. Bering IV | 2020-07-10 16:20:01 -0400

Convert Ghouls to heal-on-kill
Ghouls' chunk healing gimmick was very powerful and very flavourful.
This commit attempts to preserve that flavour while paving the way for
removing all OBJ_FOOD class objects.

Ghouls now heal from killing the living. The exact numbers are a reduced
version of the old healing from eating a single chunk, provided on a
coinflip when the monster is killed.

In discussion with elliptic there was some concern that passive heal on
kills (without the turn penalty) could be too strong. These numbers are
by no means final, and further tuning to Ghouls may be needed (apts &c.).

There was a further concern that these new Ghouls would feel too much
like Vine Stalkers; since the relationship to regeneration, potion
healing, and MP are significantly different I don't think that will be
the case in practice.

--------------------------------------------------------------------------------
979bc231ae | Edgar A. Bering IV | 2020-07-10 16:20:01 -0400

Remove butchering and eating
This commit removes basically all food related commands. It leaves
Ghouls in an incomplete state, neither rotting nor eating flesh, pending
a revision to Ghouls in subsequent commits.

Since the previous commits remove rations and eating for all characters
except Ghouls, keeping two command keys reserved for a single species is
not good. Keeping the eating system around for Ghouls also keeps a lot
of old code around for little gain, the effect and special play can be
achieved through simpler less technically intensive means.

This commit also does a lot of cleanup around food related references in
the codebase and handles the save compatibility removal of hunger state.

--------------------------------------------------------------------------------
256e0e0cc6 | advil | 2020-07-10 16:20:01 -0400

Remove a stray reference to nutrition (gammafunk)
I guess this might now be confusing to ghouls, but it's probably ok.

--------------------------------------------------------------------------------
962a159bab | advil | 2020-07-10 16:20:01 -0400

Fix a bunch of hints mode stuff for food

--------------------------------------------------------------------------------
4edd9946b7 | advil | 2020-07-10 16:20:01 -0400

Update Jiyva text for no rations
The nutrition effect was already handled by a foodless check, but a
bunch of the text needed updating.

--------------------------------------------------------------------------------
0550c0020c | advil | 2020-07-10 16:20:00 -0400

Remove rations
Motivations: see many, many years of discussion, experiments in forks,
etc. A discussion in ##crawl-dev on 7/7/20 revealed that nearly all
active devs were on board with something like this step as a followup to
de-chunking (plus a surprising amount of agreement on other long-term
clocks we might try, though this commit does not address any alternative
clocks)

This is a proof of concept commit at this point, and there are probably
a bunch of things that could use further tweaking (especially the vault
modifications, where my des skills are not always up to the task). For
non-carnivorous species (which is to say, non-ghouls), they are marked
as foodless. Ghouls stay as-is, though of course no longer get access to
rations. This may need some tuning as well, since on a few ghouls I
checked they did eat rations from time to time as a backup -- since now
only ghouls eat chunks, the obvious knob is nutrition per chunk. I only
deleted a few vaults altogether, and there could be ways of restoring
some of these.

In the future it may be worth considering how ghouls could be cleaned up
-- most of the rather substantial food infrastructure remains in support
of them.

--------------------------------------------------------------------------------
3a471323bd | advil | 2020-07-10 14:37:53 -0400

Increase size of zig permastore the easy way
With zig ghost floors, the game often needs to pull a lot of ghosts at
once. This commit increases the backup permastore size to the max (127)
by simply copying existing permastore ghosts from pan, tomb, and depths.
This is in lieu of a more involved ghost update which will take longer.

I chose to include some depths bones (about 15) to give a tiny bit more
level spread. It's still very high but this gives a small chance to have
an xl 15-25 ghost from time to time, if the floor is built drawing on
the permastore. (The average death xl for recent is 26.64 so it's
possible I've lowered this too much, but the average will still be quite
high.)

--------------------------------------------------------------------------------
a5a89cf34b | advil | 2020-07-10 14:37:03 -0400

Let `--bones merge` respect MAX_GHOSTS
The file size unfortunately uses a short, so this is meaningful when
trying to generate relatively large bones files.

--------------------------------------------------------------------------------
8d1dacec00 | advil | 2020-07-10 12:10:06 -0400

Don't let level excursions affect env.old_player_pos
Independent of the related bug fixed in 012bc58e2 (which had the same
practical impact), this let you use a level excursion to force a monster
to forget you, because it saved the wrong position after the level
excursion. A bit hard to use effectively, but would have an effect on
any out-of-los monsters when stairdancing on a single stairs, for
example.

--------------------------------------------------------------------------------
012bc58e2d | advil | 2020-07-10 11:56:12 -0400

Don't detect gozag gold on level excursions
This commit is targeting a bug where a level excursion to an unvisited
level can trigger gold detection, which can happen via abyss excursions.
While fixing this I noticed a similar potential issue with the
shake_off_monsters call.  I still think collapsing all of these modes
into this call is more trouble than gain, needs some larger refactoring
(again).

Resolves #1461

--------------------------------------------------------------------------------
5525a24d89 | advil | 2020-07-10 11:56:12 -0400

Add a gozag ASSERT for level excursions
This may or may not lead to more crashes than I know of, so doing this
as a separate commit.

--------------------------------------------------------------------------------
1effd001a9 | Nicholas Feinberg | 2020-07-09 20:34:35 -0700

Make offlevel monsters less forgetful
Completely distinct from monsters forgetting about the player
normally (i.e. when chasing them around a level), we had special
code to make monsters forget about the player after a very long time
offlevel. This came up in exactly two cases:

1. The player had wandered off and done another branch.
2. The player was doing something scummy.

Neither of these things was helpful, so this logic has been deleted.
Monsters still forget about you normally when you're on the level.

--------------------------------------------------------------------------------
f3d04de8c1 | Nicholas Feinberg | 2020-07-09 16:29:53 -0700

Fix comment typo

--------------------------------------------------------------------------------
47e9e61525 | advil | 2020-07-09 13:27:33 -0400

Update credits

--------------------------------------------------------------------------------
6423518015 | Eugene Abramchuk | 2020-07-09 10:31:48 -0400

Adjust Sprint III cloud generators
Fixes issue 12302. Existing cloud generators kill sleeping monsters in several 
places across the map within the first few hundred turns. This tones down 
aggressive cloud spawn, while keeping the danger in the affected rooms.

--------------------------------------------------------------------------------
d5f3108e62 | Nicholas Feinberg | 2020-07-08 18:11:16 -0700

minislime_mu tweaks
- Replace the ration with gold. It was originally a royal jelly,
which was a pretty good joke, but the ration isn't a good joke and
we don't have a royal jelly ration tile. Gold is at least a good ref
to TRJ's description.
- Despoiler the vault's walls. They've been spoilery since they were
added (766f9b2f52f45f, over 10 years ago) about 3/4ths of the time and
there's really no reason for them to be!

--------------------------------------------------------------------------------
daab700853 | Nicholas Feinberg | 2020-07-08 18:03:41 -0700

Make Storm card electric (WiseOldWolf)
Broken in 86364c1113e.

--------------------------------------------------------------------------------
cd7d158533 | Nicholas Feinberg | 2020-07-08 18:00:48 -0700

Give Hedge Wizard a starting dagger
Further emphasizing their more hybrid role and making them a bit
stronger after the stat changes.

--------------------------------------------------------------------------------
b32a1a6195 | Edgar A. Bering IV | 2020-07-08 16:25:42 -0400

Make lemures true demons
They didn't have demonic holiness previously!

--------------------------------------------------------------------------------
b87c5ff4f8 | advil | 2020-07-08 11:14:40 -0400

Fix a couple of minor formatting issues in INSTALL.md

--------------------------------------------------------------------------------
75e6479846 | Edgar A. Bering IV | 2020-07-08 09:21:11 -0400

Double food generation
The recent food changes have resulted in a tighter hunger clock than
desired. There is ongoing work in progress to remove rations and eating
outright, but it is significantly involved. This commit is a stopgap to
ensure trunk remains playable.

--------------------------------------------------------------------------------
7253cd193c | Edgar A. Bering IV | 2020-07-07 22:41:23 -0400

Give Necromancers "corpse sense"
LOS-wide corpse using necromancy spells aren't allowed to peak in stacks
and instead spend MP. They do this even absent any visible items, which
can be frustrating. Since monster inventories are displayed now,
concealing stacks seems like a relic that should be addressed. Separate
from that, it's plenty flavourful that skill with the dark arts allows
the user to sense fresh death, so this commit aborts casting these
spells if no appropriate corpses are available.

--------------------------------------------------------------------------------
efd35565e4 | Edgar A. Bering IV | 2020-07-07 22:41:23 -0400

Reduce the duration of Infestation scarabs
Long-lived unncapped allies are very strong, even at Level 8. This
commit reduces the lifetime of scarabs slightly as a part of an overall
nerf to necromancy summons. This one is less severe because Infestation
is L8.

--------------------------------------------------------------------------------
26e00d9157 | Edgar A. Bering IV | 2020-07-07 22:41:23 -0400

Adjust Death Channel
Another long-lived-uncapped-ally generating spell and part of
Necromancy's overpowered nature. This commit reduces the summon duration
to 5 (from 6), it could possibly go lower or pick up HD power scaling.

This commit also times out spectrals on expiration of the effect,
requiring continued MP investment for momentum play longer than a single
cast.

--------------------------------------------------------------------------------
ef8ed0b0f2 | Edgar A. Bering IV | 2020-07-07 22:40:12 -0400

Nerf Animate Skeleton and Animate Dead
Animate Skeleton (and to a slightly lesser extent Animate Dead) are
absurdly powerful: low level spells that grant depth-scaling long lived
allies with a summon cap determined only by the quantity of corpses
found. This power was granted independent of spellpower, so minimal
training was required to get full advantage of the spells. Miscasts put
a bit of a brake on AD, but because AS is level 1 this wasn't a serious
obstacle.

This commit addresses both the long-lived and power scaling issues.

Both spells now create minions with a summon duration of 4 (like
simulacrum) instead of 6, allowing them tactically and some amounts of
momentum but not the complete snowball of yore. Because of this duration
reduction, AS is freed from its location constraints, and raises a
single skeleton in LOS to make it more usable mid-fight.

Both spells now care about spell power and create their minions with hd
scaled by power, specifically minion_hd = mons_hd * (100 + pow) / 300. Animate
skeleton is capped at power 50, meaning an hd cap of 1/2 monster hd at
max power. In practice this means some early skeletons are HD 1 which might be
too severe, a lighter scaling could be applied, but AS is level 1 and
the skeletons retain the attack of their base monster. Animate Dead has
a power cap of 200, so with a training investment can reach a place
similar to its old power level; if this is too strong, a power cap of
150 can be applied.

--------------------------------------------------------------------------------
86c4727016 | Edgar A. Bering IV | 2020-07-07 17:52:42 -0400

Timeout FAKE_ABJURATION allies on level change
Stairdancing with conventional summons was removed many moons ago. It's
time that snakes and undead meet the same fate, for the same reasons.

--------------------------------------------------------------------------------
083ca260ac | Edgar A. Bering IV | 2020-07-07 17:44:43 -0400

Add two new lua hooks for abilities and spellcasting
chk_ability_choice and chk_spell_choice are used to provide
ability/spell letters in advance to answer the spellcasting/ability
activation prompts. This provides for more robust lua to cast spells and
use abilities automatically, handling targeting either with the
targeting callbacks or CMD_TARGET_* commands, for a keymap-independent
automation experience avoiding the headaches of sendkeys.

--------------------------------------------------------------------------------
6f375c6936 | Edgar A. Bering IV | 2020-07-07 17:44:43 -0400

Fix some ldoc formatting

--------------------------------------------------------------------------------
b77f264828 | Nicholas Feinberg | 2020-07-07 13:24:51 -0700

Fix amulet of the acrobat
Broken in a7dbce93e49.

--------------------------------------------------------------------------------
d0a5a5182f | advil | 2020-07-07 13:32:07 -0400

Remove one more unused abil flag

--------------------------------------------------------------------------------
b5465dcac6 | advil | 2020-07-07 13:32:07 -0400

Further clean up abil flags, light rewording
As far as I can tell there is no reason to keep old flags around as this
bitfield is never serialized.

--------------------------------------------------------------------------------
2ea7b29654 | advil | 2020-07-07 13:32:07 -0400

Reword DD heal cost for no hungering
"This ability costs: nothing" is somewhat incoherent with the next line,
so custom-handle this case.

--------------------------------------------------------------------------------
4ff2f76d10 | advil | 2020-07-07 13:32:07 -0400

Remove ability/evoke+hunger interactions
Reasons: (i) hunger is mainly used as a secondary cost for things that
already have some cost or other gating that is actually impactful on a
tactical level (MP, cooldowns, piety) (ii) the costs assigned to
abilities were really all over the place (so consider this balancing
them to 0), and (iii) given the absence of spell cost the relatively
idiosyncratic choices here are not very intuitive at all and quite hard
to keep track of.

I guess the most controversial change here would be berserk, which
doesn't have an initial cost at all now.  On the other hand, it already
has a cooldown, passing out effects, etc. that already provide gating
and a *lot* of tactical balancing tools if tweaking is needed. If it
needs strategic balancing, I would recommend piety (perhaps
heroism-level or lower), but it's not clear to me if it really needs
this.

The one remaining food cost I have left is for staff channeling (energy
/ wucad mu). I'm not sure it's ideal that this stay either, but I don't
have enough of a sense for how channeling is currently balanced (if it
is) in order to adjust. Sif channeling is consistent with other god
abilities.

--------------------------------------------------------------------------------
f040af64e7 | Aidan Holm | 2020-07-07 23:18:45 +0800

Remove needless use of viewwindow

--------------------------------------------------------------------------------
26cf38f501 | Aidan Holm | 2020-07-07 23:15:22 +0800

Inject custom rendering into viewwindow()
A longstanding source of rendering bugs in crawl is the accretion of
various bits of global state used to draw various parts of the main
UI view, all interacted with in various ways both from viewwindow
itself and from the parts of crawl that alter rendering (e.g. rendering
zaps, highlighting summoners, drawing beams, etc.). Good examples of
this are anything that uses view_add_tile_overlay in conjunction with
viewwindow().

The result is that each part of crawl that does any rendering at all is
extremely brittle, since it must depend on this complex global state,
and has to know what the current state of that global state is. This
makes each piece of rendering code work fine most of the time, but
inevitably break when used from a different context which violates these
assumptions. It also makes some things difficult to implement or very
inefficient because multiple viewwindow calls are required.

One of the worst offenders: directn. The direction chooser's drawing
code draws beams and highlights summoners. It used to do this via a
complicated series of calls to viewwindow() that was required in order
to add tile overlays, then writing directly to the screen to overwrite
the console output with the required alterations.

The new code works by allowing the injection of custom render behaviour
into the viewwindow() call. This allows any kind of custom rendering,
instead of limited functions hard-coded directly into viewwindow(),
while at the same time limiting the scope of these modifications; there
is no global scope. You also don't need to understand the viewport
rendering system; simply implement a type and provide an instance, and
viewwindow() will call its callbacks when needed. You don't need to add
tiles to a global buffer or blit directly to the screen; just modify the
provided crawl_view_buffer.

A nice side effect of this is the near eradication of the tiles_only
parameter to viewwindow(). The only remaining use is in tileweb.cc,
where it is required to prevent scribbling over the console map display
while panning the tiles vbuf. One possible approach I am considering is
to inject the rendering behaviour of the base map itself, but that's a
change for another commit.

--------------------------------------------------------------------------------
3bab7db1b1 | advil | 2020-07-07 09:43:39 -0400

Remove troll extra extra hunger
Trolls already have fast metabolism, and we think this little extra
boost is probably a remnant of regen having a hunger cost. 5/16
chunkless trolls so far have starved, so even relative to these small
numbers it seems like this is maybe a bit punitive.

--------------------------------------------------------------------------------
f801a56046 | Nikolai Lavsky | 2020-07-07 09:13:58 -0400

Fix a leftover scarf of cloud immunity (Yermak)
As a followup to f75c35ca, this commit replaces a scarf of cloud
immunity with a scarf of repulsion in the Cloud Mage wizlab.

--------------------------------------------------------------------------------
3ccbfcd516 | wheals | 2020-07-07 09:01:40 -0400

Fix warning on console builds.
And add an underscore for code style.

--------------------------------------------------------------------------------
ac5b586cd3 | wheals | 2020-07-07 08:47:01 -0400

Remove corpse/chunk types.
RIP corpse_thingy

--------------------------------------------------------------------------------
172849303e | wheals | 2020-07-07 08:29:48 -0400

Improve ranged weapon warnings on the sidebar.
Only show "launcher" if the monster has ammo for the launcher, and show
"missile" if the monster has a thrown weapon but no launcher.

--------------------------------------------------------------------------------
9ecf74a097 | wheals | 2020-07-07 07:18:48 -0400

Remove MSLOT_ALT_MISSILE on the next version bump.
Was added 86528534 just in case, and then never used.

--------------------------------------------------------------------------------
1848e9ed2a | wheals | 2020-07-07 07:06:57 -0400

Add a note when acquiring items.
Now that the items are pre-identified, it's some nice information to put
in the chardump.

--------------------------------------------------------------------------------
29f007ebfe | Alan Malloy | 2020-07-06 18:10:28 -0700

Don't crash when putting amulets on from the floor (Flugkiller, #12307)

--------------------------------------------------------------------------------
1af32d979d | Byrel Mitchell | 2020-07-06 14:54:25 -0400

Previously, phial of floods did three things:
a) It fired a Primal Wave at the target
b) It created a pool around the target
c) It waterlogged monsters in the pool

Primal Wave deals damage, potentially knocks back a tile, and creates its own 
pool. This led to phial of floods creating two different overlapping temporary 
pools, one waterlogged and the other not.

This commit consolidates everything into Primal Wave. Phial no longer manually 
creates its own pool; instead player-created Primal Waves now scale with power 
like the Phial pool did, and apply waterlogged appropriately.

This commit also reworks Primal Wave's pool generation. Previously, it created 
the center tile manually, and then randomly added tiles on a 2-radius circleLOS 
ring to it. I switched it to use the Phial pool generation method which uses a 
fair distance_iterator to fill the pool from the center. The results are fairly 
similar without the weird spoilery effects of circle-LoS math.

This commit also incidentally solves the issue where the actual target of the 
phial could be pushed out of the pool by the primal wave and miss getting 
waterlogged. Now that we silence based on the Primal Wave pool (which was 
always centered on the pushed-back monster) you're guaranteed to at least 
waterlog your target (if it's vulnerable.)

--------------------------------------------------------------------------------
ccf7159315 | Aidan Holm | 2020-07-06 22:31:55 +0800

Render direction chooser rays onto vbuf
This commit replaces direct blitting to the screen via putwch on
console, and the use of an additional tiles buffer on tiles, with the
new console and tile APIs for adding overlay tiles to the dungeon view.

This isn't as good a semantic fit as it was for zaps; those are clearly
a part of the game simulation state, whereas this is reusing the same
overlay buffer just to simplify rendering. And now with that in mind,
perhaps zaps should be rendered by having a list of explosions and other
environmental effects in env?

Anyway, the result of this commit is that almost all rendering of the
dungeon view now goes through the vbuf, and that uses of the ugly
is_tiles hack for viewwindow is now almost entirely removed; slowly but
surely, the entangling of tiles and console rendering is being undone.

--------------------------------------------------------------------------------
64743ecae6 | Edgar A. Bering IV | 2020-07-06 10:17:55 -0400

Remove melee hunger
This is paired with the removal of spell hunger and chunk eating.
Abilities still have hunger, which makes their strategic costs more
relevant. If this is too relevant, they can lose hunger costs as well,
and the prevalence of rations adjusted to keep an ok food clock.

There have been reports that D:1-7 are a bit tight hunger wise even for
non-degenerate play; if melee hunger removal doesn't fully address this
an additional starting ration can be handed out.

--------------------------------------------------------------------------------
2964c8cf50 | advil | 2020-07-05 22:34:09 -0400

Conditionalize you.on_current_level in load_level
Previous commit will mess up excursions

--------------------------------------------------------------------------------
a02c8d4030 | advil | 2020-07-05 22:31:13 -0400

Fix full pregeneration (alexjurkiewicz)
This was actually broken in 1937b064fbca (in more subtle ways than a
crash), and the ASSERT in 93d59993c00 revealed that it was broken.

--------------------------------------------------------------------------------
790f60d850 | Nicholas Feinberg | 2020-07-05 16:33:35 -0700

Remove unused AF_HUNGER (vt)

--------------------------------------------------------------------------------
f798f81529 | Nicholas Feinberg | 2020-07-05 16:22:51 -0700

Remove hungry ghosts
They were never a good monster, just sort of a funny joke. (See
some of the vaults that I'm removing and tweaking here.) Now that
hunger is startlingly real, hungry ghosts are just a vicious, unfun
trick for anyone dumb enough to melee them, in the same category as
the jellies and pulsating lumps of old. There's no redeemable core
to them, so let's bid them adieu.

--------------------------------------------------------------------------------
523353da42 | Nicholas Feinberg | 2020-07-05 15:58:56 -0700

Lint

--------------------------------------------------------------------------------
a7dbce93e4 | Nicholas Feinberg | 2020-07-05 15:56:08 -0700

Remove some amulet attunement
"acrobat and "reflect no longer need 'attunement' logic, since they
take 5+5 turns to swap. "gspirit doesn't need to drain mp, either
(except for deep dwarves).

"regen and "mpreg probably don't need the attunement logic either,
but I'm unsure - is there some hypothetically optimal play that
involves swapping them while resting...?

--------------------------------------------------------------------------------
5e5ef3fa74 | Nicholas Feinberg | 2020-07-05 15:56:08 -0700

Make amulets armour-slow

--------------------------------------------------------------------------------
bad5f93c06 | Nicholas Feinberg | 2020-07-05 15:56:08 -0700

Add delay on amulet removal

--------------------------------------------------------------------------------
b2248e6a10 | Nicholas Feinberg | 2020-07-05 15:56:08 -0700

Split up some ring equip code

--------------------------------------------------------------------------------
1b87330c0f | Edgar A. Bering IV | 2020-07-05 17:02:31 -0400

Don't grant nutrition for hydra form devours (kate-)
This prevents some possible hypothetical optimal incentives to cast it
if you're low on rations to eat up popcorn monsters stashed for later.

--------------------------------------------------------------------------------
7084942c32 | Edgar A. Bering IV | 2020-07-05 17:02:31 -0400

Remove eating related options
auto_butcher_max_chunks was added for non-Ghouls; since Ghouls want as
many chunks as possible maintaining the option only for Ghouls is
unreasonable.

easy_eat_chunks simply does not make sense: species that eat only eat
one kind of food now.

--------------------------------------------------------------------------------
8c33d26e57 | Edgar A. Bering IV | 2020-07-05 17:02:31 -0400

Uncouple Ghoul rotting from hunger state
And prevent Ghouls from eating rations. A further food simplification;
Ghouls have their own "clock", the rot clock, controlled by chunks.
Coupling the opaque hunger state clock to the speed of the rot clock
was an extra layer of complication and mostly not noticable for ghouls:
by the time a Ghoul was in a low corpse area they could have a fat stack
of rations and remain above the threshold. If the clock on Ghouls is too
loose, the rot clock can be accelerated.

--------------------------------------------------------------------------------
a69f94b37a | Edgar A. Bering IV | 2020-07-05 17:02:31 -0400

Simplify eating related code and interface
Now that only ghouls eat chunks, a lot of internal complicated code
regarding chunks and deciding when and why to eat them can be deleted.
Good god food conducts also don't make sense, so they're removed.

The restriction on cannibalism remains for hydra form for flavour
reasons, but could be removed for further simplification as it isn't a
significant mechanical impact (there's no way to violate it now and
incur penance).

This commit also makes the "eat" menu a thing of the past, press e to
eat if food is available, no prompt or consideration, a ration on the
floor will be eaten first. Ghouls still have rations available, but a
subsequent commit will pin their rotting rate (instead of making it
hunger dependent) and prevent them from eating rations.

The option `auto_eat_chunks` is replaced with `auto_eat` which does what
it promises: automatically eating if it makes sense to do so (Hungry (or
rotted), not in danger, food available).

Some butchery and eating options remain, a subsequent commit will clean
these up.

--------------------------------------------------------------------------------
5ea7c316c7 | Edgar A. Bering IV | 2020-07-05 15:42:13 -0400

Remove chunk eating for most species
Ghouls retain the ability because that's their thing. With spell hunger
removed food conducts become a vestigal part of crawl that can be used
to tweak the food clock for different species. Spriggans, with their
move speed, seem to be the only ones that require this adjustment,
accounted for by MUT_HERBIVORIOUS' nutrition penalty on rations.

Trolls lose their flavorful fast metabolism gourmand combo, which is a
shame and perhaps could be restored, but in practice it didn't confine
gameplay much for non-Gozag trolls. They retain fast metabolism 1 to
account for their regeneration.

Hydra form now allows devouring up to Engorged for all species that can
transmute.

--------------------------------------------------------------------------------
5530ec33b9 | Edgar A. Bering IV | 2020-07-05 15:42:13 -0400

Remove spell hunger
Spell hunger was meant to serve as a backstop limitation to medium term
use of magic and the use of magic in conjunction with certain god
abilities. However, except for very high level spells cast with low
intelligence it was rarely relevant in the tactical scale. The spell
hunger mechanic comes with a design cost: it necessitates a wide
difference in food clock costs between magic and non-magic combat
skills, leading to chunk eating and the attendantly loose food clock.

Removing spell hunger paves the way for removing chunk eating, coming in
the next commit.

--------------------------------------------------------------------------------
af96a1410f | gammafunk | 2020-07-05 14:32:01 -0500

Refactor DES
For vaults that were recently changed due to trap changes, reglyph to
use non-predefined glyphs, simplify NSUBST, and fix statement alignment.

--------------------------------------------------------------------------------
06cef45bd2 | gammafunk | 2020-07-05 14:32:01 -0500

Remove the 'known' trap designation
Traps are always known to the player, and the 'known' term was supported
as a no-op since so many vaults still used it. This commit removes
parsing of it and removes all occurrences of it DES/lua and the
documentation. Additionally clean up some trap code that referred to
traps being known.

--------------------------------------------------------------------------------
4630968f27 | gammafunk | 2020-07-05 14:32:01 -0500

Rework vaults with trap effects through glass
The following vaults have been adjusted to work better now that traps no
longer fire out of los nor behind transparent walls that block
translocations:

bailey_polearm_2: Add shallow water so that players and monsters alike
can get on and off the 4 turrets surrounded by water.

box_level_dp: Remove the teleport traps, since these will no longer
cause the central box monsters to disperse. Instead, the player will
have to fight the large mass of monsters inside. I considered adding
some new Zot trap placement but the layout of this vault makes it just
too easy to lure monsters away from any central trap placement. Perhaps
adding randomized traps in the central area would work a bit better, but
for now it can do without the traps. Also replace the runed door with a
normal one, since without teleport dispersal, it doesn't make sense to
contain monsters inside.

grunt_tough_drop: Replace transparent stone with iron grates, allowing
the teleport/dispersal "drop" effect to work for this vault.

ziggurat_pillar_centre_drop: Make this have diggable grates. Players and
monsters can affect each other using smite targeted things through
these, and grates also allow the teleport trap to work if a monster uses
it in LOS of the player.

--------------------------------------------------------------------------------
826ad36590 | gammafunk | 2020-07-05 14:32:01 -0500

Have traps require LOS_NO_TRANS
A number of vaults put monsters and traps behind glass, but the vast
majority of these only intend the traps to be relevent when the player
enters the vault. Traps triggered by monsters in these vaults when the
player is safe on the other side of glass generate a lot of message
spam. Hence this commit makes monster trap activation require
LOS_NO_TRANS to reduce this spam.

A couple of vaults do depend on monster trap usage behind glass, and
these will be reworked in a subsequent commit.

--------------------------------------------------------------------------------
55556182f2 | advil | 2020-07-05 13:57:54 -0400

Remove a dubious string::reserve call in websockets
In my profiling this is doing *way* more harm than good in the context
of _send_map and _send_everything, and a very large map send drops from
4-500ms to under 100ms when I remove it. This is obviously very
dependent on stdlib implementation but my guess is that trying to
micromanage memory allocation in fairly small increments like this is
always going to be a bad idea. It's possible that a larger reserve call
would do some good before sending the whole map, or before
_send_everything.

Also, a minor simplification for appending a single character.

--------------------------------------------------------------------------------
c3c9feb471 | Nicholas Feinberg | 2020-07-05 08:37:23 -0700

Fix a copy-paste error

--------------------------------------------------------------------------------
0bf9a7b534 | Nicholas Feinberg | 2020-07-05 08:33:21 -0700

Remove an archaic variable

--------------------------------------------------------------------------------
6a0ef731d2 | Nicholas Feinberg | 2020-07-05 07:48:26 -0700

Simplify

--------------------------------------------------------------------------------
b271ac0e06 | Kate | 2020-07-05 03:10:57 +0100

Let Absolute Zero under Gozag still create gold
Instead of the ice statue, since everything is supposed to turn to gold.
Fixes #1438.

--------------------------------------------------------------------------------
62faa89a7e | RojjaCebolla | 2020-07-04 15:36:42 -0400

Prevent draconians from getting armour troves
Mostly useless unless there's gauntlets of war, boots of running, etc in the 
trove.

--------------------------------------------------------------------------------
cce8fa8613 | Edgar A. Bering IV | 2020-07-04 15:08:57 -0400

Future save compatibility guards

--------------------------------------------------------------------------------
2b0a3cef20 | Umer Shaikh | 2020-07-04 14:55:27 -0400

Make Spider ambiently quiet
With the aim of encouraging monsters swarming the player, as web sense
tried to do.

--------------------------------------------------------------------------------
405e0b396a | Umer Shaikh | 2020-07-04 14:55:27 -0400

Correct an outdated comment

--------------------------------------------------------------------------------
4b951ffc51 | Umer Shaikh | 2020-07-04 14:55:27 -0400

Remove web sense
Many of the remarks in the previous commit removing blood sense apply
here. Web sense is in a somewhat better place (it's attached to a
clearly mechanically relevant feature, and it's at least revealed in the
in-game description for webs). But its gameplay effect is mostly to
incentivize something that doesn't need further incentive, namely, not
stepping into webs when monsters might be nearby. And it is still a
spoilery mechanic with a minor gameplay effect that dubiously justfies
its added complexity.

This commit removes the web sense flag and the logic handling the
property.

--------------------------------------------------------------------------------
19b40d30b1 | Umer Shaikh | 2020-07-04 14:55:27 -0400

Remove blood scent
Blood scent was a very obscure mechanic. As far as I can tell, it is not
revealed explicitly in game at all. Since it primarily affects how
certain out-of-los monsters might notice and track you, it is very hard
for an unspoiled player to notice the mechanic by playing. It is
attached to a feature, blood spatter, which is easily assumed to be
purely cosmetic. It is flavourful, but that's not much good if no one
knows about it; and even if it were revealed (say, in monster
descriptions), it is so minor that likely most players would ignore it
anyway. Mechanically, the gameplay it produces overlaps considerably
with noise.

This commit removes the blood scent flag and the logic handling the
property.

--------------------------------------------------------------------------------
cddaf0775b | Umer Shaikh | 2020-07-04 14:55:27 -0400

Simplify some pathfinding code
Commit d63ab3c5 ("Simplify monster intelligence") made it impossible for
mons_tracking_range to return a value of 0 (signifying no range
restriction, for highly intelligent monsters). Therefore there is no
need for conditionals checking to see if that value is greater than 0,
and this commit removes some of the special handling for that
case. (Probably a more thorough pass can find more of this.)

--------------------------------------------------------------------------------
395417ec19 | sdynet | 2020-07-04 14:39:09 -0400

Rework the Exile card
Remove the function of self banishing. This effect is too powerful and
dangerous. The risk of self banishing is gone, so the chance of this
card appearing is made a little higher.

[ Committer's note: Added save compatibility for Shaft removal, tweaked
  code formatting. Exile's self-banishment was a double edged sword that
  was challenging to wield, situations where either outcome (a lot of
  banishes or self banishment) are good enough to make Exile a worthy
  gamble are exceedingly rare---and the unworthy gamble isn't that fun.
  Closes #1235 ]

--------------------------------------------------------------------------------
ccd700ba56 | sdynet | 2020-07-04 14:39:08 -0400

Remove the Shaft card
This card has a similar effect as an exile card. They both send their enemies 
to other places. I don't think it's necessary to have two cards with roles like 
similar.
Also, In the last floor(and Tomb with Ziggurat), which is the most dangerous 
section for the player, this card has no effect and instead becomes a deadly 
trap card that wastes one turn. Of course, you can't use exile cards in Abyss, 
but there are far fewer places that are ineffective and there is a very low 
probability that you can get this card.

--------------------------------------------------------------------------------
4694d0fe3b | Aidan Holm | 2020-07-04 13:59:28 +0800

Fix crash when playing hints mode on local tiles
This was crashing because the tutorial cursor tile is not in the main
tilesheet. The call to pack_cursor() above already handles both checks,
and adds the tile to the correct buffer, so this code can just be
removed.

I suspect the reason this didn't crash before was because previously the
tile ranges overlapped, and so a completely different tile was getting
added to the main buffer.

--------------------------------------------------------------------------------
75a3d40d47 | Kate | 2020-07-04 01:48:52 +0100

Fix some messaging for enchantments applied out of LOS (#12288)

--------------------------------------------------------------------------------
d5f9112cba | RojjaCebolla | 2020-07-03 20:39:18 -0400

Make necro a major sac, and charm a moderate sac
In its present state, charm is not a major sacrifice.  Its most powerful spells 
are dual-school with Hexes or Necromancy, but being barred from those schools 
has a larger impact because those schools have further powerful spells, some of 
which are single-school. It could make sense for charms to be a major sacrifice 
if/when the school has some heft to it once again.



Necromancy, on the other hand, like conjurations or summoning, can be your 
school of choice for the whole 3 rune game.  Unlike charms, it does not require 
a weapon, nor significant investment in other schools.
--------------------------------------------------------------------------------
a22346179c | advil | 2020-07-03 11:33:19 -0400

Explicitly set the cursor region to GOTO_CRT for map view
I think this is a better general fix than 899df634c; it's just that
right now only webtiles (that I know of) happens to trigger a
`viewwindow` call during map view while the map is up. But since it
happens as a side effect often, it may be best to be prepared.

--------------------------------------------------------------------------------
5bf1febfd2 | advil | 2020-07-03 11:32:26 -0400

Save cursor position before clrscr
This is yet another thing that can potentially leave the cursor
somewhere very odd

--------------------------------------------------------------------------------
a75df8a29b | advil | 2020-07-03 10:58:33 -0400

Run tests for webtiles in gh actions

--------------------------------------------------------------------------------
899df634c5 | advil | 2020-07-03 10:51:33 -0400

Quick fix for crashing map view in webtiles
This may not be exactly right, but it stops the crashing for now.

--------------------------------------------------------------------------------
5c87645ba0 | advil | 2020-07-03 09:35:47 -0400

Use a smarter cprintf in output.cc
cprintf is not region aware, and so can easily leave the cursor outside
of the region it is writing to. One way it can do this is because if it
prints right up to the edge of the screen, it will wrap to the very
beginning of the next line. If the starting region is the mlist, this is
guaranteed to happen and leave the cursor in an invalid position. This
commit switches out cprintf for a region-aware version that will wrap
relative to the current region. (This existed but wasn't widely used and
needed some sprucing up.)

This commit also adds a bunch more ASSERTs, and minorly fixes up some of
the monster pane logic.

--------------------------------------------------------------------------------
6b68d4d4d6 | advil | 2020-07-03 09:35:47 -0400

Set cursor region on fakecursorxy
This was apparently a major factor in "invalid" cursor positions.
Basically, as far as I can tell, write_char_at leads to changes in
wherex() and wherey(), even without a cgotoxy call, and so all the other
checks will flag the results as invalid unless the region is updated.
This also makes the region value consistent after cursorxy regardless of
options.

--------------------------------------------------------------------------------
9d1cb7d701 | advil | 2020-07-03 09:35:47 -0400

Try to fix flash + input interactions once and for all (12292)
I've tried previously to do some variant of this (RAII cursor state
restoring) in the past and it's always led to inexplicable crashes, but
this time maybe I've gotten it right. Basically, what was happening in
various ways is that redraw calls would lead to moving the cursor out
from under the input code when it goes to draw the current input string,
and it would try to draw at coordinates that are invalid for the current
region. One way this could happen is by setting a flash on the strong
`warning` which always appears in the annotate prompt (found in
Sentinel's rc file, see discussion in
https://crawl.develz.org/mantis/view.php?id=12292&nbn=3#bugnotes).
Flashing calls viewwindow, which tends to leave the cursor in the mlist.
This commit ensures that viewwindow, flash, and a few other things will
always restore the cursor, and it also slightly improves the cursor
position sanity checking. It addresses several past related crashes,
such as d21a89c53800 (where now I've concluded that setting the cursor
region without moving the cursor is a bad idea, and probably led to
different out of bounds errors down the line).

Also, prevent flashing at the main menu.

--------------------------------------------------------------------------------
2520fe3e76 | Nicholas Feinberg | 2020-07-02 23:05:20 -0700

Unbrace

--------------------------------------------------------------------------------
e96aa7da28 | Alex Jurkiewicz | 2020-07-02 22:36:41 -0700

Make the Crypt monster list tougher
Remove shadows and wights entirely, they are complete popcorn by this
point.

Push the placement weights earlier for flying skulls, necromancers and
wraiths. These are all very on-brand but still quite easy.

--------------------------------------------------------------------------------
16eed42cc8 | Umer Shaikh | 2020-07-02 22:31:53 -0700

Plug an information leak in summoner highlighting
During the do_look_around loop, placing the cursor over an invisible or out of
los monster highlighted the summoner. This commit makes the highlighting code
call can_see to make sure the character should know about the summon.

(A leak with respect to invisible monsters in los remains if you scan with the
cursor while scrying without sinv. This is leaked anyway in that case by the
monster description in the message log area, and there are other leaks with
respect to invisibility while scrying. I've left this alone here on the grounds
that it is part of a bigger, separate problem with scrying and invisibility, and
deserves a more general fix.)

--------------------------------------------------------------------------------
76ffd63272 | Nicholas Feinberg | 2020-07-02 22:20:46 -0700

Remove panned pan spells

--------------------------------------------------------------------------------
ef67e44054 | Anders Papitto | 2020-07-02 22:18:13 -0700

Reword hailstorm description to be less hand-wavy

--------------------------------------------------------------------------------
a486cdfe0b | Nicholas Feinberg | 2020-07-02 22:16:49 -0700

Fix vampires' drinking problem (blerg)
Fix various bugs introduced by vampires becoming permanently
hungerless:
- Allow Killer Klown pies to give Vampires -Potion.
- Let vampires quaff from the (i) menu. (blerg)
- Don't make the -Potion status light darkgrey for vampires.
- Make AXED_GOD_PAKELLAS work correctly for vampires.

--------------------------------------------------------------------------------
19e2f27c09 | Aaron Golden | 2020-07-02 21:56:28 -0700

Get rid of MSG_NO_ENERGY canned message.
This canned message was used both for when the player is too hungry
to cast a specific spell and for when the player is too hungry to
cast *any* spells. It was confusing in the "any spell" case, because
"You don't have enough energy to cast that spell." suggests that some
specific spell was attempted. When it happened to me I was convinced
that I had some macro attached to 'z' by mistake.

The patch removes MSG_NO_ENERGY and replaces both uses of it with
more specific messages: "You don't have enough energy to cast that
spell." for the case where a specific spell was tried (same as
before) and "You don't have enough energy to cast any spells." for
the case where no specific spell was selected.

--------------------------------------------------------------------------------
0ad9533087 | Nikolai Lavsky | 2020-07-02 21:54:11 -0700

Update `restart_after_save` default in the options guide
The default value was changed to `true` in 750a858e.

[skip ci]

--------------------------------------------------------------------------------
af96914860 | Byrel Mitchell | 2020-07-02 21:53:12 -0700

Fix foxfire attacking out of LoS
Currently a foxfire will attack a monster it's aggroed to that is just outside 
LoS (while the foxfire is in LoS.) Since a foxfire attacks 5 times per turn for 
1 damage, this is actually somewhat usefully abusable in the early game vs 0 AC 
monsters (you can get 3-4 extra damage out of a foxfire by manipulating this.)

This change makes it follow the rules of normal summons and refuse to attack 
monsters out of player LoS.

--------------------------------------------------------------------------------
bb1397d0b4 | Alex Jurkiewicz | 2020-07-02 21:51:13 -0700

Tweak pan lord summoning spell allocation
Previously, all caster pan lords had a 50% chance to get summon
(greater) demon. Change this so only caster pan lords without an AoE
spell get to summon demons, and furthermore make demon summoning
exclusive with summoning other types of monster.

This shrinks the spell set of pandemonium lords (help to differentiate
one pan lord from another) and reduces instances of pan lords glaciating
their own allies.

--------------------------------------------------------------------------------
0a47d3a03e | Alex Jurkiewicz | 2020-07-02 21:51:13 -0700

Adjust pandemonium lord spells
Previously, 75% of pan lords were given spells, and the other 25% had
their base stats buffed.

Add the chance for a single spell to the 25% case, using a new spell
list. This list of unique spells is based on movement: either closing
the gap to the player or messing with their positioning.

--------------------------------------------------------------------------------
f39bf5dfa7 | Alex Jurkiewicz | 2020-07-02 21:51:13 -0700

Add more melee attack types for pandemonium lords
Previously they could select one of a number of brands. This change
allows them to make use of attack flavours, for additional effects like
trample, engulf, drain stats, etc.

Also adds some (uncommon) customisation of pandemonium lord attack
types. This changes the description of the pan lord's attack (from "hit"
to "punch", "trunk-slap", etc), which is a cosmetic tweak only.

--------------------------------------------------------------------------------
96db1bde8c | Alex Jurkiewicz | 2020-07-02 21:51:13 -0700

Add more spells for pandemonium lords
* Conjure Ball Lightning (re-added after its removal in 2014 -- I think
  it plays alright as a very rare conjuration)
* Blink Range
* Sentinel Mark
* Dimension Anchor
* Teleport Other

Also remove shadow creatures. It was a waste of spell slot for players
escaping on the orb run. Perhaps pan lords could use a "summon
pandemonium residents" shadow-creatures-esque spell...?

--------------------------------------------------------------------------------
738cd00d82 | Nicholas Feinberg | 2020-07-02 21:07:51 -0700

Add a new altar vault
Our code specifically bans shallow and deep water mimics in vaults,
but not lava mimics. Someone could take advantage of that...

--------------------------------------------------------------------------------
a111339ca7 | Byrel Mitchell | 2020-07-02 21:07:01 -0700

Fixed TSO stabbing comment
TSO blocks all stabs, not just on intelligent monsters.

--------------------------------------------------------------------------------
fb6fbf8b4e | Nikolai Lavsky | 2020-07-02 21:01:39 -0700

Fix description of amulets of reflection
After 324b7566, amulets of reflection lost their plusses, and as
a result no longer have a part of their description that mentions
the shielding bonus.

--------------------------------------------------------------------------------
f02c06f108 | Byrel Mitchell | 2020-07-02 20:57:35 -0700

Rename Spiny Frogs to Cane Toads
There's a handful of reasons why these amphibians make more sense as cane toads 
than 'spiny frogs'.

1.) Spiny is an actual mechanic in the game, and spiny frogs don't have it.

2.) Spiny frogs have way more AC and less EV than other frog-genus monsters, 
which is one major difference between toads and frogs.

3.) The spiny frog tile is the typical color for toad camouflage, rather than 
frog, and has what appears to be warts on its side.

4.) This is an Australian game, and it makes sense for their 'bullfrog' 
equivalent to be the ultimate mundane frog-genus monster.

These are in order of descending importance; 1 has the potential to mislead 
players, and 2 is more accessibly indicating AC/EV. 3 and 4 are more aesthetic 
and so not very important (or objective.)

--------------------------------------------------------------------------------
da07880ab8 | Kate | 2020-07-03 02:05:05 +0100

Fix demon pronouns
(And other description tweaks.)

--------------------------------------------------------------------------------
6c8a0bf695 | gammafunk | 2020-07-02 11:40:40 -0500

Fix a broken vault
Replace the slaves in the Grated Community vault with lemures, and
remove the slave theme from the one novelty store. The store can be
rethemed to something more creative later.

--------------------------------------------------------------------------------
02840eae70 | Aidan Holm | 2020-07-02 23:56:33 +0800

Fix zaps being rendered under items/clouds on local tiles (Goratrix)
This issue was caused by zaps being added to the main tile buffer before
the tiles for the foreground (items and clouds). The fix is to pack the
overlay tiles in two stages; although the tiles are in the same buffer,
the order of the tiles within the main buffer is reversed, and the
display order is now correct.

This didn't happen on webtiles because it already used the same two-pass
strategy out of neccessity: see cdd0e279bb for more.

--------------------------------------------------------------------------------
80609ef61d | Nicholas Feinberg | 2020-07-02 08:54:56 -0700

Enact the 13th Amendment
The intended Pikel gameplay is pretty cool. You fight a tough guy
with some tough pals, but if you kill the boss, his pals become
your pals. Neat!

Unfortunately, this didn't quite work as intended. Pikel's former
slaves would wander around the level killing enemies without giving
you any XP, meaning that players would often kill the slaves to avoid
their unwanted 'help'. (Yikes!) Or they'd just kill the slaves to eat
their chunks and animate their corpses, which, very flavorful, but
also double yikes.

So, let's send slaver Pikel straight to hell. His pals are mostly
unchanged mechanically but have been renamed, rethemed, and resprited
to minor demons, 'lemures'. (They're back!) Instead of trading in
humans, Pikel is now cutting deals with the forces of Hell. Very
thematic, very lore-friendly, and no more worries about encouraging
annoying and unfun gameplay, since these lemures poof straight out
of this world as soon as Pikel eats it.

--------------------------------------------------------------------------------
246d2780dc | Nicholas Feinberg | 2020-07-02 07:33:53 -0700

Fix Death Knight description (ShyWoof)
They haven't been able to summon the dead since 0464229dc3bf,
five years back.

--------------------------------------------------------------------------------
f7aefb7b05 | advil | 2020-07-02 10:19:50 -0400

Fix ignition rendering
Pretty simple in the end -- ignition bypasses a bunch of drawing code in
beam.cc and goes its own way, and so needed a corresponding swap of
update_screen to viewwindow for those found in cdd0e279bb9e.

--------------------------------------------------------------------------------
66bac3cce0 | Nicholas Feinberg | 2020-07-01 21:30:27 -0700

Rename Assassin -> Brigand
If you see that you're playing an 'assassin' with a dagger, your
playstyle is very obvious: you sneak around and stab unsuspecting
enemies. But that's not what Crawl's Assassin is!

If you want to stab monsters after the first few floors, you want
to be playing an Enchanter, Earth Elementalist, or someone else with
the ability to incapacitate foes. Crawl's stealth mechanic isn't
meant to support 'purely mundane' stabbing, but the Assassin's very
powerful theming is extremely effective at convincing new players
otherwise, and then frustrating them when it doesn't work.

A Brigand ia more brutish figure, an outlaw who leaps from the woods
with an axe and chops you up. They're not sneaky in the same way that
an Assassin is, and so, I hope, won't encourage the same confusion.

Other considered names: 'ruffian', 'thug', 'skirmisher', 'brigand'.

--------------------------------------------------------------------------------
35b0e8a925 | Nicholas Feinberg | 2020-07-01 17:54:39 -0700

Give Cj Wz's old stat spread
Conjurers are as close to anything in this game is to a 'pure caster'
start. As long as backgrounds have different starting stats, they
might as well have the max-int start.

--------------------------------------------------------------------------------
e3f92733ed | Nicholas Feinberg | 2020-07-01 17:44:14 -0700

Rename Wizards to Hedge Wizards
Wizards are a weird background. Their name and starting stats both
point towards a 'pure magic' playstyle, but their starting book
is quite poorly suited to such an approach - they aren't
well-equipped to 'blast' foes, and are much better advised taking
advantage of their imps and mephitic clouds to do a little
backstabbing.

This playstyle seems fine and distinctive, so let's make it
clearer to players. Renaming them to 'hedge wizards' shows that
they aren't expected to be masters of 'high magic' (pure blasting),
as does tweaking their stat spread closer to skalds'. (If we want
the extremely high-int spread to be on some background, Cj would
be a reasonable choice.)

--------------------------------------------------------------------------------
60f854e704 | Nicholas Feinberg | 2020-07-01 17:36:48 -0700

Tweak D imps (hellmonk)
- Shift shadow imp weight down slightly, and don't spawn them after
  D:10 or so. (Crawl has plenty of popcorn.)
- Remove Crimson Imp spawns entirely. They're an awful enemy - not
  dangerous, just tedious.
- Replace them with a mix of white imps (dangerous but beatable)
  and ufetubi, which are basically hounds. Seems fun to experiment
  with them in a context where they have at least a tiny chance of
  accomplishing anything.

--------------------------------------------------------------------------------
3d63440f56 | advil | 2020-06-29 21:39:34 -0400

Don't let hints global state persist across restarts
If you end a game in hints mode with a restart option in place, and then
load a game that would trigger certain unseen events (first item is a
good one), then the global state in `Hints` would lead to the hint
message being shown in the loaded game regardless of game type.

(While doing this fix I also notice that `Hints` has a bunch of
uninitialized state outside of hints mode...seems to be benign but this
could use some future cleanup.)

--------------------------------------------------------------------------------
dbaac098b9 | advil | 2020-06-29 21:39:34 -0400

Use last game type for startup menu, cleanup
This is aimed at fixing a specific bug: with `restart_after_save`, if
you start a new game and then save, the name is (unexpectedly) cleared.
This is because of the static variable used here. However, this change
generally does a better job of selecting the default main menu for a
number of restart cases. The one thing I'm not sure about is that if a
sprint or tutorial game ends, it returns you to the submenu instead of
the main menu.

This commit also refactors a lingering static variable as a member
variable.

--------------------------------------------------------------------------------
b10996a73c | advil | 2020-06-29 21:39:34 -0400

Fix a format specifier

--------------------------------------------------------------------------------
4a859bdc29 | advil | 2020-06-29 21:39:34 -0400

Fix epilogue reloading
I still don't fully understand this bug, but under some circumstances,
despite the changes to caching in 50bb873abc7, vdefs contained mapdefs
that did not have the epilogue. (The easiest way to reproduce was to
save after a level with an epilogue is generated but before entiring,
fully quit crawl, reload the game, and enter the level. Restarting to
the main menu after saving wasn't enough.) This fixes the issue by fully
loading the vault to fill in the epilogue, which seems non-ideal, but I
infer that it may be expected from other cases where load() is called.
It may be worth revisiting just serializing the epilogue...

This was leading to a lack of milestones/entry announcements for wizlabs
when the epilogue reload failed.

--------------------------------------------------------------------------------
420014ea04 | Kate | 2020-06-29 21:20:46 +0100

Revert "Add a trunk reminder for the 0.25 tournament"
This reverts commit 31f1466007b369fdd3d8e59a93af978609af72b8.

--------------------------------------------------------------------------------
49b1be5409 | gammafunk | 2020-06-29 13:49:29 -0500

Fix loot in nicolae_gauntlet_exit_dead_adventurers
These DES item definition errors were introduced when I reworked this
map's loot after it was adapted for the Gauntlet. They unfortunately
didn't cause fatal loading errors, otherwise they'd have been caught
sooner. The map has been working, but only when none of the dead
adventurer sets containing errors were chosen.

--------------------------------------------------------------------------------
5ef36ef8a8 | Aidan Holm | 2020-06-30 00:11:50 +0800

Fix clouds being invisible
This was broken at cebdf1d4ef. The check removed in this commit doesn't
make much sense; before, all cloud tiles were on the [main, player]
sequence, but the check is for the [floor, wall, feat, dngn] sequence.

--------------------------------------------------------------------------------
644bcb522d | advil | 2020-06-29 10:05:52 -0400

Seed stability fixes for heliophobic_arrival_battle_scene
This vault had two issues: (i) in the vault code, the number of rng
calls depended on player species (so could affect the seed differently
depending on whether the player is a corpse species). This is easily
fixed. (ii) the corpse generation code actually generates, places, and
kills a monster, which does all sorts of stuff; but the main impact is
that it will along the way generate weapons depending on species, which
leads to substantial differences in rng rolls per species. This is a
kind of weird and deep gotcha for corpse placers (though it mostly
shouldn't matter in terms of seed stability, unless a vault designer is
trying to place a player-based corpse), so I've just isolated the rng
for corpse generation in a subgenerator.

(As a side note, `; nothing` in a monspec is not helpful here, because
that turns out to generate the monster with gear and then take it
away.)

--------------------------------------------------------------------------------
24f6d3962c | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Give full XP from banishment
Balancing effects by XP reductions is not a fun way to balance.
Lucy's Banishment ability and distortion weapons already have
several tradeoffs and balance knobs to tweak - they don't need to
use XP reduction.

--------------------------------------------------------------------------------
a5a6b74a87 | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Don't reduce beam range on hit
Most beam spells (except zap/lbolt) had their range decreased by 1
for each target they hit. This made their targeters misleading and
added extra complexity, in exchange for... reducing the best-case
effects of the spells?

The only player spells this affects are Bolt of Magma and Starburst.
Starburst already has plenty of tactical complexity involved in good
positioning, and Bolt of Magma doesn't need the nerf. On monster spells,
it's even more irrelevant.

Remove the range-reduction mechanic entirely.

--------------------------------------------------------------------------------
c55fa27978 | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Adjust CBL (hellmonk, minmay)
Conjure Ball Lightning had a number of very drastic breakpoints.
Going from 99 to 100 power increased damage by roughly 60% (!!),
and smaller breakpoints appeared at 50, 150, and 200 power.

Simplify the whole thing by conjuring a fixed number of balls (3)
and only varying their HD. Damage should be very similar at 75
and 125 power (about 60 and 114 -> 105 damage respectively, across
all balls). At 0 power (somewhat unrealistic), damage goes
from about 36 to about 40. At 200 power, damage was about 170 and
is now around 175.

CBL no longer scales at all between 0 and 36 power, but that seems
OK, since characters would very rarely cast at power that low.

This does not affect monster CBL.

--------------------------------------------------------------------------------
e5b478ad6b | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Remove Evocations contribution to MP (hellmonk)
It has been quite a long time since MP was meaningfully relevant
to evocables. Training up Evo to enhance your mp-linked wands or
your +Blink effects is literally possible, but seems like an
corner case that's not worth the extra complexity.

--------------------------------------------------------------------------------
df61995f76 | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Let statues regen
1d0f57cbceb778139 removed statues' ability to regen without
explanation, and it does nothing to make them more interesting or
enjoyable enemies. All that non-regenerating enemies do in Crawl is
encourage the player ot use unfun, scummy behavior like repeatedly
tossing stones and running away until the statue has been chipped
to death.

If gargoyles, lightning spires and oklobs can regen, there's no
reason that statues shouldn't.

--------------------------------------------------------------------------------
8c06f40e08 | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Code cleanup

--------------------------------------------------------------------------------
6c731b1208 | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Remove elf bailey
Baileys have a few fun gimmicks. There's a focus on orcs, with a few
related pals (goblins, hobgoblins, gnolls), and some tactical terrain
- letting monsters use polearms and ranged weapons to cause trouble.

Elf Bailey has none of that. Instead, it has a pile of very out-of-depth
enemies in a series of featureless circles. The theme is fun, and you
can imagine a bailey that used elves as 'bosses' (orc-elf alliance!),
but that vault would need to be designed essentially from scratch.

(This may return if Deep Baileys become extant.)

--------------------------------------------------------------------------------
01bf09ea82 | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Mark !stab useless under TSO (Yermak)

--------------------------------------------------------------------------------
65f4f23bcf | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Remove an unused tile

--------------------------------------------------------------------------------
a43b032afb | Nicholas Feinberg | 2020-06-28 09:38:07 -0700

Mark Gnoll as simple
Gnoll removes the manual skilling system, something so complex that
we normally automate it. It's also quite versatile and powerful. It's
a great way for beginners to experience the game's content.

This reverts commit 09a6a6ccbd1c6e3428c88a5b07a1a6b2d67f9368.

--------------------------------------------------------------------------------
099a46c217 | advil | 2020-06-28 12:00:28 -0400

Optimizations for drawing many gold piles
These optimizations hit points that are the heaviest special cases (as
revealed by profiling) for gozag characters in situations with lots of
enemies, e.g. megazigging.  They lead to measurable improvements but
things are still not exactly fast.

This commit is treating the symptoms, not the problem; the problem is
that viewwindow is called many, many times and each time it is called
rebuilds just about everything that is displayed, leading to some kind
of fairly bad polynomial penalty. For example, on a test gozag char that
is on a megazig 13, with ~130 items in view and only about 10 cells
stepped on, `stash_annotate_item` alone gets called 145000 times via
several different code paths when doing a full autoexplore to pick up
items; when just standing still and hitting esc there are still hundreds
to thousands of viewwindow calls. (So the reason special casing gold in
that function helps is because a big proportion of these items are gold
piles.) The real solution therefore should be to figure out how to not
rebuild this information on every single viewwindow call, and/or to call
viewwindow less. One starting point might be moving the show_init call
elsewhere (this entirely tears down and rebuilds map knowledge every
time). However, getting such a change right across all build targets is
not easy.

This commit may look like yak shaving, since gozag megazigging is not
extremely common, but the reason I'm focusing on it is that when someone
is megazigging on a server, the resulting cpu impact is quite noticeable
across everyone else currently playing to the point of causing mass
timeouts occasionally on a busy server. In my testing, which is not
representative of server scenarios, there is a 20% absolute speedup with
this commit (on a debug build) but cpu usage also suggests that the
resulting rendering code paths become more io-bound, so hopefully this
will lead to better sharing.

--------------------------------------------------------------------------------
2360561ed3 | Aidan Holm | 2020-06-28 23:03:58 +0800

Don't block mesmerise shading for non-firewood monsters
The intended behaviour of allow_mon_recolour is to prevent recolouring
on console output only, but this was then used in the expression for
mesmerise_excluded, which is used for tiles rendering as well.

--------------------------------------------------------------------------------
a3df7015a9 | Aidan Holm | 2020-06-28 23:03:58 +0800

Make screen cell's colour non-tiles-only
In one of those happy coincidences so rarely encountered in crawlcode,
it turns out that the cell->colour property is never used for rendering
tiles, only for console output. Conditionally adding that property
requires adding a lot of conditional compilation to view.cc's methods;
while I agree that this appears ugly, it has the nice side effect of
revealing that these functions would probably be a lot cleaner if they
were entirely split in two.

--------------------------------------------------------------------------------
2d21376a7d | Aidan Holm | 2020-06-28 23:03:58 +0800

Make screen cell's flash_colour property tiles-only
flash_colour is not used for console output at all; instead,
cell->colour is set to the flash colour directly. This commit makes
that clear by conditionally compiling the flash_colour property. The
resulting behavour is the same as before, but the conditionally-compiled
logic in draw_cell is also much more straight-forward.

--------------------------------------------------------------------------------
e806f45234 | Aidan Holm | 2020-06-28 18:32:37 +0800

Remove TOUCH_UI minimap zoom functionality
This is mostly dead; we don't support TOUCH_UI builds at the moment,
since we don't support the Android version.

--------------------------------------------------------------------------------
cdd0e279bb | Aidan Holm | 2020-06-28 18:24:08 +0800

Render dungeon zaps onto vbuf
This commit merges the rendering of zaps into the vbuf. Previously,
these were rendered separately via add_overlay() and clear_overlays() on
tiles, and blitted directly to the output buffer on console.

That approach had a number of issues. First, resizing the local tiles
window when zaps were shown caused them to vanish; this was easy to
reproduce when resizing the window while unlocking the entrance to Zot.
It involved global state that had to be kept in sync with vbuf updates.

It was also a poor fit for the game semantics; zaps are caused by
in-game elements that are part of the game simulation, so they should be
rendered in the vbuf, unlike objects like cursors that are part of the
UI.

This commit has a number of parts. First, the calls to draw zaps were
replaced with new interfaces that are implemented in view.cc. There is
still some static state here, unfortunately, but this allows zaps to at
least be rendered to the vbuf. Next, zaps are rendered into the vbuf, at
the bottom of draw_cell().

Actually drawing this vbuf requires minor modifications to rendering
code: on local tiles, overlays (and all other tiles for each cell) are
sorted by virtue of the fact that the local tiles renderer must pack
each overlay tile into separate per-texture buffers. Webtiles has no
such restriction, and so we must render overlays from different textures
in two steps to get the desired effect (zaps on top of everything).

--------------------------------------------------------------------------------
9d760929e6 | Aidan Holm | 2020-06-28 18:24:08 +0800

Remove texture property from tile_def struct
This commit was somewhat tricky. Simply removing the texture property
from the tile_def struct definition alone led to almost all code
compiling cleanly, since most use sites did not provide a ymax value,
and so the texture ID provided was then inserted into the ymax field!

This led to bugs in the inventory (and elsewhere) where only the top few
pixels of each tile was shown. The most reliable way to weed out all
instances where this happens was to temporarily delete the ymax field as
well, and then add it back after converting all tile_def construction
sites.

--------------------------------------------------------------------------------
cebdf1d4ef | Aidan Holm | 2020-06-28 18:24:08 +0800

Unify tile indices into one sequence
Previously, tile indices were arranged into multiple sequences, so
a dungeon tile and a gui tile might have the same integral value.
This potentially saved some tile index space, but we can have a maximum
of 65,536 tiles before we run into size limits, and we're not currently
close. On the other hand, this overlap required specifying tile IDs and
textures in pairs for almost all GUI code, which was redundant.

This commit upgrades the get_dngn_tex function into get_tile_texture. A
lot of code unfortunately still works by checking which range of tiles
(i.e. which texture) a tile id falls into; I have converted these to use
get_tile_texture where reasonable.

--------------------------------------------------------------------------------
afd660ec27 | Aidan Holm | 2020-06-28 18:24:08 +0800

Move pack_cell_overlays() call to vbuf load time
Previously, overlays were cleared and recalculated every time the
buffers were repacked; needlessly, since things like waves and wall
shadows do not change unless the vbuf changes.

This means that we can now avoid clearing any overlays already added
by the code producing the vbuf. While none are currently set, this
should be useful later for eliminating the tiles.add_overlay() hack.

--------------------------------------------------------------------------------
e9f284f29a | Aidan Holm | 2020-06-28 18:24:08 +0800

Remove dead code

--------------------------------------------------------------------------------
f7f0333ad6 | Alex Jurkiewicz | 2020-06-28 18:23:40 +0800

Enable console E2E/stress/lua tests ('make test') on GHA
We only enable console builds for major 34, since they fail on major 35
(TODO?). We also only enable them for console builds, since the current
test harness relies on that.

--------------------------------------------------------------------------------
f0f09c352e | Alex Jurkiewicz | 2020-06-28 18:12:07 +0800

Pull out ccache setup to an external action

--------------------------------------------------------------------------------
9c6a28c82c | Alex Jurkiewicz | 2020-06-28 18:12:07 +0800

Print compiler version

--------------------------------------------------------------------------------
6e0b0f9901 | Alex Jurkiewicz | 2020-06-28 18:12:07 +0800

Simplify failure reporting.
IRC colour is hard. You can't embed the raw ASCII sequences into YAML,
so we have to generate them dynamically.

--------------------------------------------------------------------------------
ea2bf45e0a | Alex Jurkiewicz | 2020-06-28 18:12:07 +0800

Install GDB for FULLDEBUG runs
Lua tests can crash.

--------------------------------------------------------------------------------
b94faee717 | Elliot Dronebarger | 2020-06-28 17:53:38 +0800

Fix segfaults when casting spells from wizmode (11889)
In wizmode, attempting to cast summon mushrooms (a monster-only spell)
causes a segfault. This is because it's targeted on a foe, which is a
nullptr for wizmode monster casts.

--------------------------------------------------------------------------------
33945c58c8 | Gittourarmy | 2020-06-28 17:36:48 +0800

Show full name for orc resurrection prompt
Previously, the players don't know the role of the dead orc if the one
is blessed, when they use resurrect.

For example, if you tried to resurrect Borug the orc warlord, then you
will see only Borug. The point is, if there is another orc corpse that
you don't know the role (possibly, just orc) and has its own name, then
player can make mistakes.

This fix may help Beogh players to use their ability in intended way.

--------------------------------------------------------------------------------
ea8168b82c | Goratrix | 2020-06-28 17:34:33 +0800

Fix scarf of harm not working
Commit 19c8d55 added harm to scarves, but used the 'wearing' function,
which is only valid for getting jewellery subtypes. Need to use
'wearing_ego' to get the scarf ego instead.

--------------------------------------------------------------------------------
49ad78631c | advil | 2020-06-27 18:48:43 -0400

Optimize some default autopickup lua code
Currently these functions are called a *lot* if there are many items on
the screen (potentially multiple times per item on the screen every
step), and so some of the heavier calls here (mutation check, item name)
ended up being hotspots in profiling.

--------------------------------------------------------------------------------
2bcdb00447 | advil | 2020-06-27 14:15:38 -0400

Fixup in case a bug leaves a player in a wall
Obviously this shouldn't happen in the first place, but when it does,
the game is pretty much stuck without manual save file repair (needing
both admin and dev work) because of an ASSERT in movement.cc. This
commit fixes up such games on load, by moving them preferentially to
seen stairs. (The reasoning is that when this happens, the crash is
likely to have put the player at an arbitrary position).  By doing this
on load, we should still get crashes that lead to this.

This is specifically aimed at this game:
    
https://crawl.xtahua.com/crawl/morgue/sentinel/crash-sentinel-20200627-151113.tx
t
where a crash during a level excursion stuck the player kind of randomly
(based on actual pos) on the level being viewed. The crash and setup for
this are addressed in other commits. I'm doing this generally because I
have manually fixed several games that get into this state somehow or
other in the past.

--------------------------------------------------------------------------------
4fa7a6a692 | advil | 2020-06-27 14:15:38 -0400

Add some sanity checks for flashes/more
Right now, if a flash happens during a level excursion, it can trigger a
screen write out of bounds error. This is a low-level check to prevent
this from ever happening, though I think the bug is probably in how
viewwindow is called during map view excursions. (To replicate, set a
message flash color for `warning` and write an annotation with `!` while
off-level in map view.)

--------------------------------------------------------------------------------
c8bb81158d | advil | 2020-06-27 14:15:38 -0400

Fix a case where certain crashes could save during an excursion
"should be safe" eh

--------------------------------------------------------------------------------
93d59993c0 | advil | 2020-06-27 14:15:38 -0400

Crash when trying to save the game during a level excursion
Doing this is really, really bad because you.pos is affected by the
excursion (among other things). However, this is a standalone commit in
case it needs to be quickly reverted for some reason I hadn't
anticipated. (An alternative would be to just returnin this case.)

--------------------------------------------------------------------------------
d8a95b691d | Nicholas Feinberg | 2020-06-24 08:12:00 -0700

Remove an unused var
Unused since 486a359f .

--------------------------------------------------------------------------------
824cf5ae89 | Kate | 2020-06-23 23:12:15 +0100

Don't allow Sif channeling to be dispelled
Since it's a divine ability.

--------------------------------------------------------------------------------
8f6dc4e0a5 | advil | 2020-06-23 15:32:35 -0400

Don't allow stacking from empty decks
This leads to negative deck sizes and easily triggerable crashes, aside
from stacking in ways that should be impossible.

--------------------------------------------------------------------------------
95b6527cb0 | Alan Malloy | 2020-06-22 12:54:05 -0700

Don't count plants when deciding whether to hailstorm (rchandra)
Fixes Mantis issue 12290.

--------------------------------------------------------------------------------
9ce4ed413a | Kate | 2020-06-22 19:41:17 +0100

Reword some amulet messages for consistency

--------------------------------------------------------------------------------
55676f130a | Kate | 2020-06-22 19:41:17 +0100

Don't display gourmand on the % screen
Since it's now Troll-only, and shows in their mutation list.

--------------------------------------------------------------------------------
2d08d87adb | gammafunk | 2020-06-22 10:11:19 -0500

Checkwhite

--------------------------------------------------------------------------------
758bcdf570 | advil | 2020-06-22 11:06:48 -0400

Git ignore sublime text metadata

--------------------------------------------------------------------------------
a21c3c7a71 | advil | 2020-06-22 10:49:50 -0400

Make a few macro calls more ctags friendly
Some versions of ctags struggle with `<` comparisons in a macro like
this, apparently parsing them as template-related rather than operators.
Adding parens fixes the issue on my ctags version.

--------------------------------------------------------------------------------
ef3e9dd61f | advil | 2020-06-21 14:55:08 -0400

Remove an ASSERT for unlinked temporary items
This was added in 0de8e755f4 as a diagnostic for hep abyss issues. It
didn't get immediate results, but a crash for this case has finally
shown up:

https://crawl.kelbi.org/crawl/morgue/poncheis/crash-poncheis-20200621-183042.txt

What seems to be happening is that that the player got pulled into the
abyss away from their ancestor, and the ancestor died ("Matia has
departed this plane of existence.") Somehow, at this point, cleanup
didn't happen.

I'm removing the ASSERT for now because apparently once a game gets into
this state it keeps crashing. I *think* that without this check, the
game will work but print unlinked temp item errors.

--------------------------------------------------------------------------------
486a359f8a | Aidan Holm | 2020-06-21 23:56:07 +0800

Remove unnecessary tiles.update_tabs() call
As far as I'm aware, the purpose of this call is to switch to the map
commands tab when the map is opened. viewwindow() already calls this,
however, so it can be safely removed.

Admittedly, if/when viewwindow is refactored to not unnecessarily update
tabs, this feature might break, but that's a small price to pay for
cutting away at the mess that show_map() has turned into.

--------------------------------------------------------------------------------
a1c194d6e7 | Aidan Holm | 2020-06-21 20:04:04 +0800

Remove tautological comparison

--------------------------------------------------------------------------------
ebf84c8062 | Aidan Holm | 2020-06-21 20:01:04 +0800

Fix inadvertent copies in loops

--------------------------------------------------------------------------------
fd584523ee | Alex Jurkiewicz | 2020-06-21 17:45:01 +0800

Remove some vestigial blade branch logic

--------------------------------------------------------------------------------
8d2668ac79 | Alex Jurkiewicz | 2020-06-21 17:45:01 +0800

Delete mottled draconian on TAG_MAJOR_VERSION upgrade

--------------------------------------------------------------------------------
56b65ceb29 | Alex Jurkiewicz | 2020-06-21 17:45:01 +0800

Remove two obsolete mutations from TAG 35

--------------------------------------------------------------------------------
65d16368d8 | Alex Jurkiewicz | 2020-06-21 17:45:01 +0800

Fix Pan entry placement in TAG_MAJOR_VERSION 35

--------------------------------------------------------------------------------
3dc428ba9b | Alex Jurkiewicz | 2020-06-21 17:45:01 +0800

Remove references to Forest and other removed things
These could be put in TAG_MAJOR_VERSION sections, but it seems easier to
simply remove them.

--------------------------------------------------------------------------------
294706da8a | Aidan Holm | 2020-06-21 16:51:51 +0800

Fix cells out of LOS darkened for mesmerise on local tiles
This webtiles-only behaviour was added in e8b24553 for unclear reasons.
However, it's best to apply it unconditionally. At this point,
mesmerise_excluded can be true for cells outside the LOS region because
MAP_WITHHELD is apparently not cleared between redraws.

--------------------------------------------------------------------------------
980489766d | Aidan Holm | 2020-06-21 14:32:56 +0800

Remove global crawl_view buffer
There's no need to keep it between frames, except as an optimization,
and I'm not convinced that malloc can't handle an allocation every
viewwindow() call (we're not running at 60fps...). Even if that were
somehow an issue, the correct solution is to pass in a view buffer to
fill out, so that the caller controls the lifetime and visibility,
and then keep that passed-in instance static and private to the file.

The puttext() call in redraw_console_sidebar() can be safely removed,
since that function only needs to redraw the sidebar, not the dungeon
view.

--------------------------------------------------------------------------------
8a085aef40 | Aidan Holm | 2020-06-21 14:32:56 +0800

Extract _viewwindow_should_render() helper function

--------------------------------------------------------------------------------
49e1a6fa64 | Aidan Holm | 2020-06-21 14:20:59 +0800

Extract map tile updating from show_update_at()
Previously, show_update_at() would update map knowledge at a given
location, and then update the tiles for that cell (stored in env),
or mark it for an update on Webtiles.

Now, it only updates the map knowledge. This should allow updating the
tiles into a separate buffer, which should then allow separating layered
rendering (the | command) from show_update_at().

--------------------------------------------------------------------------------
5a2483679f | Aidan Holm | 2020-06-21 14:20:58 +0800

Remove unused checkerboard animation

--------------------------------------------------------------------------------
7a3809fd8f | Aidan Holm | 2020-06-21 14:20:53 +0800

Remove unused slideout animation

--------------------------------------------------------------------------------
09c6a6c846 | Aidan Holm | 2020-06-21 14:15:20 +0800

Extract view_dungeon() function
This commit splits viewwindow() roughly in half, extracting the
rendering logic that determines visual output to a new view_dungeon()
function, which produces a newly allocated crawl_view_buffer.

The remainder in viewwindow() is mostly concerned with updating
global state, e.g. updating map knowledge and then pre-rendering the
in-view tiles (env.tile_fg etc), as well as rendering the resulting
crawl_view_buffer produced by view_dungeon() to either the console (via
puttext()) or to the display / web.

--------------------------------------------------------------------------------
5ee47661b9 | Elliot Dronebarger | 2020-06-21 14:08:07 +0800

Add habitat information to monster description popup (#11224)
This allows players to see whether monsters can move through water or
lava.

--------------------------------------------------------------------------------
31e9aea6bc | Alex Jurkiewicz | 2020-06-21 13:58:15 +0800

Trolls and Kobold want unlimited chunks too

--------------------------------------------------------------------------------
d5eb6995ac | Elliot Dronebarger | 2020-06-21 13:44:55 +0800

Added SDL_image to dependency requirements in INSTALL.md
Most distros package SDL2 separately from its child libraries (SDL2_image, 
SDL2_ttf, etc).
Adding this to the dependencies for other OS distributions to reduce confusion.

--------------------------------------------------------------------------------
4d60c92aeb | Alex Jurkiewicz | 2020-06-21 13:44:13 +0800

Document python-is-python3 for Ubuntu
We are stuck in a limbo of supporting ancient webtiles servers with
Python 2 installed only as 'python', and also newer OSes where Python 3
is only available as 'python3'.

Ideally the Makefile can try all three names for Python automatically
and use the first it finds. But until someone adds this behaviour we
should document the correct approach.

--------------------------------------------------------------------------------
8c18429211 | gammafunk | 2020-06-16 01:11:56 -0500

Update the Debian dependency list
Python 2 is no longer installed by default on Debian systems, so we
either need to require the python package (and hence Python 2) or
install the Python 3 yaml package. Seems more prudent to do the latter
as Python 2 has reach EOL. Add python3-yaml to the dependencies for the
crawl package.

--------------------------------------------------------------------------------
7ccd015ce0 | Aidan Holm | 2020-06-15 23:36:21 +0800

Remove broken flash_monster_colour() function
This didn't work on any platforms, and only ever supported non-webtiles
console. It also used a copy-pasted chunk of viewwindow and its callees
that I'm trying to remove in order to refactor viewwindow().

--------------------------------------------------------------------------------
b3e1a4005a | Aidan Holm | 2020-06-15 23:35:19 +0800

Remove declarations for deleted functions

--------------------------------------------------------------------------------
012c83cef6 | advil | 2020-06-15 10:35:03 -0400

Don't call show_init from viewwindow off-level
The easiest way to trigger this was fixed in 726680df4ae, but
`viewwindow` is still needed to handle local tiles resizing in map mode.
This is a quick fix to just prevent `show_init` altogether while on a
level excursion, but the real fix probably involves better refactoring
as described in the comment.

--------------------------------------------------------------------------------
07d1592867 | advil | 2020-06-15 09:28:40 -0400

Fix a crash for elemental staff fallbacks
This is the flip-side of 64415b183b0; if items roles an enhancer staff,
and upgrades to the elemental staff, it then tried to generate a
lajatang as a fallback. This is the simplest patch for this code path;
it just overrides this and generates an enhancer staff. (Via other code
paths, a lajatang would still place.) These staff/weapon issues suggest
a bigger refactor but I will leave that for later.

--------------------------------------------------------------------------------
47e9afce7f | advil | 2020-06-14 23:43:42 -0400

Adjust some catch2 tests
After be553b73, process_map_command no longer clamps the coordinates,
because this function uses a return of -1,-1 to indicate that the
coordinates need to be recalculated. The clamping now happens as part of
the map logic itself. This commit does the clamping explicitly, which is
a bit more trivial but at least exercises known_map_bounds.

--------------------------------------------------------------------------------
d6c187ff35 | advil | 2020-06-14 23:14:24 -0400

Crash if show_init is called off-level
This may be too aggressive, hence putting it in a separate commit. It's
possible that the call to `show_init` from viewwindow should be
conditional on you.on_current_level? Or ideally, called from somewhere
else rather than as a side-effect of viewwindow...

--------------------------------------------------------------------------------
726680df4a | advil | 2020-06-14 23:13:06 -0400

Don't call redraw_screen while off-level
This call was happening any time the level map was exited, and it is
triggering viewwindow, which triggers show_init, which updates map
knowledge at the player position. A dedicated player could use this to
fully map any visited level by exiting map view on the level to be
mapped while moving around a fully mapped level. This bug was introduced
in e98a5be7b87 which removed the scope protecting the level excursion
object; the immediate fix here is to restore the scope. I'm not sure
that this fix eliminates all ways of causing this...

Resolves #1433

--------------------------------------------------------------------------------
be553b73f1 | advil | 2020-06-14 19:20:59 -0400

Fix timing for map view cursor clamping
Because `process_map_command` uses -1,-1 to signal that the cursor
position should be calculated from map bounds, it is wrong to clamp the
cursor to map bounds at the end of this call. (Even worse, when the
command is a level change, it uses the bounds for the current level.)
This fixes the issue with stair destinations not working right with []
in map view.

Resolves #1452

--------------------------------------------------------------------------------
a645b5fb18 | advil | 2020-06-14 16:48:19 -0400

Minor tweaks to levelgen item debug msgs

--------------------------------------------------------------------------------
64415b183b | advil | 2020-06-14 16:47:53 -0400

Fix some crashes with fallback randarts for staff of battle
A weapon can be upgraded to an unrand enhancer staff (e.g. staff of
battle), changing object type. In the case where this unrand had already
generated, the code for finding a fallback randart wasn't handling this
case correctly (setting OBJ_STAVES as the base type, but a weapon sub
type), and crashing. This commit fixes a few other issues with fallback
randarts for enhancer staves as well, and does a bit of code cleanup.

Example crash: 
https://crawl.xtahua.com/crawl/morgue/ventricule/crash-ventricule-20200614-18273
4.txt

--------------------------------------------------------------------------------
abc7bfb7dc | Nicholas Feinberg | 2020-06-14 12:37:02 -0700

Fix cloud generators triggering on load
Cloud generators are set to trigger when entering a level (so we
can start with some initial fog), but the same event was also fired
when we loaded a save. Disable that.

--------------------------------------------------------------------------------
09a6a6ccbd | Nicholas Feinberg | 2020-06-13 19:56:00 -0700

Revert "Pasty desc"
Oops, wrong repo.

This reverts commit 6d82f5e594e19892eecbf24d037a23944c5f14b4.

--------------------------------------------------------------------------------
6d82f5e594 | Nicholas Feinberg | 2020-06-13 19:53:38 -0700

Pasty desc

--------------------------------------------------------------------------------
31f1466007 | gammafunk | 2020-06-12 15:10:27 -0500

Add a trunk reminder for the 0.25 tournament

--------------------------------------------------------------------------------
0742823d39 | Edgar A. Bering IV | 2020-06-12 12:41:29 -0400

More credits for 0.25 (oops)

--------------------------------------------------------------------------------
35acc811ca | gammafunk | 2020-06-12 02:43:07 -0500

Changelog updates for 0.25 release
First attempt at finalizing release highlights and update the debian
changelog.

--------------------------------------------------------------------------------
850bfe61e3 | advil | 2020-06-11 15:03:48 -0400

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.

--------------------------------------------------------------------------------
eefc223169 | gammafunk | 2020-06-11 08:12:42 -0500

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.

--------------------------------------------------------------------------------
2f47209187 | gammafunk | 2020-06-11 07:44:47 -0500

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.

--------------------------------------------------------------------------------
059e62fbdb | advil | 2020-06-09 16:44:55 -0400

Don't crash on level excursion in the abyss

--------------------------------------------------------------------------------
18c3a0dd01 | advil | 2020-06-09 15:19:21 -0400

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.)

--------------------------------------------------------------------------------
1937b064fb | advil | 2020-06-09 14:55:14 -0400

Sanity check for pregen: is the generated level what was requested?
Currently, if a save from before some branch shortening is upgraded to a
version with pregeneration, and the player enters a level that no longer
exists, the pregenerator will generate the complete sequence and save
the last map (zig:27) as the no-longer-existent level. This commit
prevents the possibility of saving the incorrect map for pregeneration.
An upcoming commit will handle save compat for the specific bug.

--------------------------------------------------------------------------------
6c07f0ee8d | shummie | 2020-06-08 15:58:22 -0400

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.
--------------------------------------------------------------------------------
00fb324cd0 | advil | 2020-06-08 13:57:00 -0400

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.

--------------------------------------------------------------------------------
d69c119aaa | advil | 2020-06-08 13:46:28 -0400

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.

--------------------------------------------------------------------------------
79b31b8662 | advil | 2020-06-07 13:22:15 -0400

Fix viewmap catch2 even more

--------------------------------------------------------------------------------
eb7e7872c2 | advil | 2020-06-07 12:52:56 -0400

Fix catch2 tests for map panning / clamping

--------------------------------------------------------------------------------
5c1c449dd3 | advil | 2020-06-07 10:40:24 -0400

semicolon

--------------------------------------------------------------------------------
b07082dc69 | advil | 2020-06-07 10:33:32 -0400

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.

(cherry picked from commit 1ad37275098a3c43d7ffebdb0209a1e8a00158e0)

--------------------------------------------------------------------------------
15ccc7ae60 | gammafunk | 2020-06-06 23:44:54 -0500

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.

--------------------------------------------------------------------------------
45f243fec8 | advil | 2020-06-06 12:23:29 -0400

Changelog tweaks

--------------------------------------------------------------------------------
d53d4cd058 | advil | 2020-06-04 12:26:18 -0400

Allow excursions from the abyss
Abyss does excursions on purpose; they are used to place features from
other levels that have generated.

--------------------------------------------------------------------------------
379118c2f8 | Nicholas Feinberg | 2020-06-04 07:47:40 -0700

Remove the manual ID system
We call set_ident_type whenever a skill manual is generated. This
accomplishes the following:

- Culls identical items from your shopping list (except manuals
  don't get culled by this).
- Allows you to start training the relevant skill. This is a bug,
  since this occurs during item generation, not pickup or even
  when you see the item or enter the level!
- Potentially takes a note about identifying the manual (again, a
  bug if it ever occurred).
- Requests autoinscribe (except that inscribes everything in the
  current level later, not the level the manual is being
  generated in, so it doesn't work).
- Potentially identifies other pack items of the same type (but
  manuals can never do that).
- Checks to see if any other items in your shopping list have
  had their price changed by being ID'd, like a potion going from
  'blue fizzy' to '!XP'. This can't happen, but it *can* cause
  the game to try to visit a new level midway through generating a
  different one, causing uninitialized item interactions and
  crashes.

Absolutely none of these are useful, so remove them.

At some point, someone else could take a look at manual
autoinscription, but if it hasn't worked properly in years, it's
probably not a high priority...

--------------------------------------------------------------------------------
c4d14cd842 | advil | 2020-06-04 01:16:39 -0400

Crash rather than do excursion during levelgen
I'm pretty sure this will almost always crash anyways, because it will
try to save the level in an incomplete state, but we really don't want
it to even try.

--------------------------------------------------------------------------------
0e6732e0a6 | Nikolai Lavsky | 2020-06-03 15:32:08 -0400

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.

--------------------------------------------------------------------------------
98f9fe671c | advil | 2020-06-03 15:27:26 -0400

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

--------------------------------------------------------------------------------
55d99e38fc | advil | 2020-06-03 15:27:26 -0400

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
initialized.

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

--------------------------------------------------------------------------------
edd8c26f91 | advil | 2020-06-03 15:27:26 -0400

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
mipmapped.)

This makes high scale values lead to pixellated graphics.

--------------------------------------------------------------------------------
a07a990f65 | advil | 2020-06-03 15:27:26 -0400

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.

--------------------------------------------------------------------------------
c699729d39 | advil | 2020-06-03 15:27:25 -0400

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
support.

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.

--------------------------------------------------------------------------------
20b394cb32 | Aidan Holm | 2020-06-01 23:45:23 +0800

Fix anti-reckless-fighting command
Previously, this commit used crawl_state.prev_cmd to determine the
previous command. This was incorrect; the deceptively-named prev_cmd is
actually always set to the current command before process_command even
runs.

This commit adds a prev_cmd argument, which is set to the right value
when called in main.cc. Unfortunately, process_command is also called
from many other places for increasingly dubious reasons. I've added
a default value of CMD_NO_CMD for that case, since it's clearly not
appropriate to have all these functions accessing crawl_state.prev_cmd.

If it actually does become important for these process_command calls
to pass a correct value for prev_cmd, there should be a single wrapper
function that takes one command_type and calls real_process_command with
both current and previous commands, maintaining the state locally.

--------------------------------------------------------------------------------
4f279345d9 | advil | 2020-05-31 20:32:27 -0400

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
expected.

--------------------------------------------------------------------------------
b98801ac91 | advil | 2020-05-31 19:28:41 -0400

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.

--------------------------------------------------------------------------------
fe7b5d5a6f | Aidan Holm | 2020-05-30 18:06:00 +0800

Remove strange FLYING flag compat code
Removing this seems to work fine; tileidx_cloud() was only ever stored
in env.tile_cloud and env.tile_bk_cloud, and all the places where
that's used seem relatively non-suspicious. TILE_FLAG_FLYING was
presumably added so that clouds were not displayed half-immersed in
water (as a monster tile would be displayed), since apparently they used
to be rendered on the same 'layer' (i.e. on tile_fg, rather than on
tile_cloud).

--------------------------------------------------------------------------------
ae4997d50b | Aidan Holm | 2020-05-30 18:05:59 +0800

Refactor feature extra tiles handling
This commit groups data for feature descriptions together. Preivously,
titles and descriptions were separated from tiles.

This commit also fixes the display of the disjunction tile; it was never
a cloud, so the previous code never worked properly. Unfortunately, since
this code cannot access the packed_cell, we are limited to showing a
fixed tile for disjunctions, not the tile that is present at the
described map cell.

--------------------------------------------------------------------------------
682f2c3f2f | Aidan Holm | 2020-05-30 18:05:57 +0800

Make some tile picking code unconditional

--------------------------------------------------------------------------------
50178cf780 | Nicholas Feinberg | 2020-05-29 15:15:05 -0700

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!

--------------------------------------------------------------------------------
11e0b32562 | aaronegolden | 2020-05-29 14:39:16 +0100

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 <aegolden@gmail.com>
--------------------------------------------------------------------------------
58eb27aeba | advil | 2020-05-29 08:50:07 -0400

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:
https://www.reddit.com/r/dcss/comments/gspvkg/i_made_a_review_of_dcss_let_me_kno
w_what_you_think/).

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.

--------------------------------------------------------------------------------
9e0bf03589 | advil | 2020-05-28 17:48:56 -0400

Fix an unused param warning

--------------------------------------------------------------------------------
ae26e8c9cb | advil | 2020-05-28 17:34:18 -0400

Temporary check to bridge a change in client.js
client.js is served in a way where its browser cache isn't invalidated
by changes, and so the lack of an updated version was causing many
problems with this line.  Kind of ugly, but having this around for a
while is simpler than dealing with a lot of people having trouble with
browser caches.

(client.js should probably have some kind of versioning so that changing
it doesn't go so poorly?)

--------------------------------------------------------------------------------
c8e6c4a415 | advil | 2020-05-28 15:26:58 -0400

Fix a signed/unsigned warning

--------------------------------------------------------------------------------
c29e872307 | Aidan Holm | 2020-05-29 00:10:28 +0800

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.

--------------------------------------------------------------------------------
56b8cd3df0 | gammafunk | 2020-05-28 02:15:38 -0500

Update the changelog

--------------------------------------------------------------------------------
b080af96c6 | gammafunk | 2020-05-27 22:09:18 -0500

A tile for tin of tremorstones (CanOfWorms)

--------------------------------------------------------------------------------
c929df5585 | gammafunk | 2020-05-27 01:13:21 -0500

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.

--------------------------------------------------------------------------------
1f0226971c | advil | 2020-05-26 20:24:16 -0400

Add an ugly exception for ui_state_sync

--------------------------------------------------------------------------------
e22fd8933b | advil | 2020-05-26 14:34:52 -0400

Don't send ui_state_sync when not in game
This fixes repeated logged warnings that were alarming to admins. This
commit also tweaks some of the logic for what counts as "in game" for
the javascript client, which looks to me like it was buggy.

--------------------------------------------------------------------------------
5c64649191 | advil | 2020-05-26 12:48:08 -0400

Fix a bytes/str issue in error message

--------------------------------------------------------------------------------
700258a8a8 | advil | 2020-05-26 12:37:36 -0400

Enhance an error message

--------------------------------------------------------------------------------
3ae7099c47 | advil | 2020-05-26 11:05:28 -0400

Fix accidental no-daemonize by default (johnstein)
It turns out that store_true and store_false set a default.

--------------------------------------------------------------------------------
2a348b289f | Elliot Dronebarger | 2020-05-26 10:12:01 -0400

Fixed a typo in god-passive.cc
Found a missing word, and added it back in.

--------------------------------------------------------------------------------
f97e55dc39 | advil | 2020-05-25 16:53:42 -0400

Fix a randart name class (12270 / Flugkiller)

--------------------------------------------------------------------------------
5f92b90fa0 | gammafunk | 2020-05-24 21:09:21 -0500

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

--------------------------------------------------------------------------------
5d2c98bf94 | Edgar A. Bering IV | 2020-05-24 21:34:26 -0400

Update CREDITS.txt

--------------------------------------------------------------------------------
135ff06667 | Byrel Mitchell | 2020-05-24 17:26:24 -0400

Fixed terrain change duration not decrementing while off-floor
This was most noticeable for Summon Forest, whose trees wouldn't tick down 
while off level.

--------------------------------------------------------------------------------
e6218251f0 | Edgar A. Bering IV | 2020-05-24 16:54:55 -0400

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.

--------------------------------------------------------------------------------
3fdfaa9094 | Nikolai Lavsky | 2020-05-24 16:29:06 -0400

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.

--------------------------------------------------------------------------------
366e9434ed | RojjaCebolla | 2020-05-24 16:25:06 -0400

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 ]

--------------------------------------------------------------------------------
7b3c7a5917 | RojjaCebolla | 2020-05-24 16:24:25 -0400

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. ]

--------------------------------------------------------------------------------
b168a4ef39 | Edgar A. Bering IV | 2020-05-24 16:24:25 -0400

New randart apperance adjectives (cebolla)

--------------------------------------------------------------------------------
4aaa7df55c | Edgar A. Bering IV | 2020-05-24 16:24:25 -0400

More randart nouns (cebolla)

--------------------------------------------------------------------------------
9c5a184348 | Edgar A. Bering IV | 2020-05-24 15:48:41 -0400

Typo fix (Goratrix)

--------------------------------------------------------------------------------
709782ff74 | Edgar A. Bering IV | 2020-05-24 15:23:01 -0400

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
decontamination.

--------------------------------------------------------------------------------
750a858e70 | advil | 2020-05-24 15:08:17 -0400

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
behavior.

--------------------------------------------------------------------------------
c4d20be10f | advil | 2020-05-23 21:46:51 -0400

Comment an ASSERT (PleasingFungus)

--------------------------------------------------------------------------------
32a1ce3a9d | advil | 2020-05-23 19:55:58 -0400

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

--------------------------------------------------------------------------------
448add79b7 | advil | 2020-05-23 15:56:04 -0400

Fix some unused function warnings for non-tiles builds

--------------------------------------------------------------------------------
bc5e7ad058 | advil | 2020-05-23 15:52:45 -0400

Fix the tiles build

--------------------------------------------------------------------------------
9b8842f3ab | advil | 2020-05-23 15:22:44 -0400

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
mess.)

--------------------------------------------------------------------------------
d8d43ee9da | advil | 2020-05-23 14:44:04 -0400

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:
https://crawl.develz.org/mantis/view.php?id=12260&nbn=3#bugnotes

(though not all crashes on resizing.)

--------------------------------------------------------------------------------
cb1fb42660 | advil | 2020-05-23 12:08:19 -0400

Add 0.24.1 to master changelog
was only in a branch before.

--------------------------------------------------------------------------------
d791c6801d | Edgar A. Bering IV | 2020-05-23 12:02:48 -0400

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.

--------------------------------------------------------------------------------
95c47da368 | advil | 2020-05-23 11:19:43 -0400

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.

--------------------------------------------------------------------------------
7f6bfe439b | Nicholas Feinberg | 2020-05-22 21:11:17 -0700

Remove +11 GDA (vt)

--------------------------------------------------------------------------------
c1285e62ab | CanOfWorms | 2020-05-22 12:57:18 -0400

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.
--------------------------------------------------------------------------------
7103978af7 | gammafunk | 2020-05-22 05:50:20 -0500

checkwhite

--------------------------------------------------------------------------------
cef5c75803 | CanOfWorms | 2020-05-22 06:16:18 -0400

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.
--------------------------------------------------------------------------------
93ebf739aa | Alex Jurkiewicz | 2020-05-19 21:35:04 -0400

Require upper-case Y to forget Vehumet gifts
Resolves #1418

--------------------------------------------------------------------------------
9d38388ac0 | Kate | 2020-05-19 08:15:47 +0100

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.)

--------------------------------------------------------------------------------
3921152533 | Kate | 2020-05-19 07:29:25 +0100

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.

--------------------------------------------------------------------------------
3926558f3a | Kate | 2020-05-19 04:51:05 +0100

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
scarves).

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.

--------------------------------------------------------------------------------
a7b400a135 | advil | 2020-05-18 19:56:15 -0400

Even more save info fixes / tweaks

--------------------------------------------------------------------------------
fd937d7183 | advil | 2020-05-18 19:08:20 -0400

Obvious bugfix

--------------------------------------------------------------------------------
b10990eb69 | advil | 2020-05-18 18:59:01 -0400

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).

--------------------------------------------------------------------------------
5fd7b56c60 | advil | 2020-05-18 16:30:49 -0400

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.)

--------------------------------------------------------------------------------
c1627330ba | advil | 2020-05-18 15:28:16 -0400

Add a debug mode for live-testing server updates
This may or may not be entirely safe to use in reality...

--------------------------------------------------------------------------------
8f32faedd0 | advil | 2020-05-18 14:51:07 -0400

Fix a typo

--------------------------------------------------------------------------------
c510c915c7 | advil | 2020-05-18 13:32:56 -0400

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.

--------------------------------------------------------------------------------
d323cdc54f | advil | 2020-05-18 12:28:49 -0400

Let --port disable config.py 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.

--------------------------------------------------------------------------------
0f0e9d80d6 | advil | 2020-05-18 12:20:19 -0400

Add some server.py 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.

--------------------------------------------------------------------------------
d744090882 | Aidan Holm | 2020-05-18 20:22:20 +0800

Remove unused member

--------------------------------------------------------------------------------
28b6fd0c3b | Nathan Mills | 2020-05-17 03:26:19 +0100

Fix a couple typos in options_guide.txt (#1412)

--------------------------------------------------------------------------------
1a081956a1 | advil | 2020-05-16 14:12:01 -0400

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
tile...

--------------------------------------------------------------------------------
a7e42e2d2c | advil | 2020-05-16 13:10:59 -0400

Hood of the assassin tiles (RojjaCebolla)
This replaces some TODO tiles, see #1387.

--------------------------------------------------------------------------------
ac6a689de3 | advil | 2020-05-16 10:57:48 -0400

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
practice.

--------------------------------------------------------------------------------
002c8cfdce | advil | 2020-05-16 10:57:48 -0400

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.

--------------------------------------------------------------------------------
48d22fdfea | Kate | 2020-05-16 06:36:33 +0100

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.

--------------------------------------------------------------------------------
0499d652a8 | David Damerell | 2020-05-16 00:34:33 -0400

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.

--------------------------------------------------------------------------------
a0b20f4966 | RojjaCebolla | 2020-05-16 00:34:33 -0400

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.

--------------------------------------------------------------------------------
f6331bbc0c | advil | 2020-05-15 20:15:09 -0400

checkwhite (again??)

--------------------------------------------------------------------------------
22b210b1cc | advil | 2020-05-15 19:56:04 -0400

Another linting fix

--------------------------------------------------------------------------------
7d3621fadc | advil | 2020-05-15 18:54:57 -0400

checkwhite

--------------------------------------------------------------------------------
7bb5287bac | advil | 2020-05-15 18:54:29 -0400

Don't disallow % formatting

--------------------------------------------------------------------------------
ac44191423 | advil | 2020-05-15 18:45:18 -0400

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

--------------------------------------------------------------------------------
ec9769f98a | Edgar A. Bering IV | 2020-05-15 18:35:29 -0400

Update the changelog

--------------------------------------------------------------------------------
a8d24287ef | advil | 2020-05-15 18:15:24 -0400

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.

--------------------------------------------------------------------------------
1bb6b8da34 | Edgar A. Bering IV | 2020-05-15 17:28:14 -0400

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.

--------------------------------------------------------------------------------
21c11e76e5 | Edgar A. Bering IV | 2020-05-15 16:20:28 -0400

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.

--------------------------------------------------------------------------------
a51e346381 | Edgar A. Bering IV | 2020-05-15 15:05:13 -0400

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.

--------------------------------------------------------------------------------
715d37cef9 | advil | 2020-05-15 12:55:35 -0400

Fix some pep 8 stuff

--------------------------------------------------------------------------------
b8ef3eaf7f | advil | 2020-05-15 12:09:58 -0400

Add a comment about JSON decoding errors

--------------------------------------------------------------------------------
a6940e9590 | advil | 2020-05-15 12:03:47 -0400

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:

https://github.com/crawl/dgamelaunch-config/commit/6ad788ceb5614b3c83d65b61bf26a
122e592b98d

--------------------------------------------------------------------------------
03feba3292 | advil | 2020-05-15 11:05:28 -0400

Fix flake8 error

--------------------------------------------------------------------------------
e4e6ab6fc0 | advil | 2020-05-15 11:02:14 -0400

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.

--------------------------------------------------------------------------------
b1a17ef1ac | advil | 2020-05-15 11:00:56 -0400

CLO to give game types in json
Aimed at alternative save browsers.

--------------------------------------------------------------------------------
bac526da19 | advil | 2020-05-15 11:00:56 -0400

Add a CLO that prints save info as json
For use with file browsers outside the game proper.

--------------------------------------------------------------------------------
bec1141c92 | advil | 2020-05-15 10:51:41 -0400

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.

--------------------------------------------------------------------------------
cd5d38940c | advil | 2020-05-15 10:41:34 -0400

Python 2.7 compatibility

--------------------------------------------------------------------------------
1993010d66 | Edgar A. Bering IV | 2020-05-15 10:36:02 -0400

Add a recommended options section for blind players (#1407)
Closes #1407

[skip ci]

--------------------------------------------------------------------------------
e9962a393c | advil | 2020-05-15 10:17:30 -0400

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.

--------------------------------------------------------------------------------
90e1a17ddc | Alex Jurkiewicz | 2020-05-15 10:17:30 -0400

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

--------------------------------------------------------------------------------
26357f45c0 | Alex Jurkiewicz | 2020-05-15 10:17:30 -0400

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.

--------------------------------------------------------------------------------
2a3374b39a | Alex Jurkiewicz | 2020-05-15 10:17:30 -0400

Add some missing type information

--------------------------------------------------------------------------------
9ecdaae92f | Alex Jurkiewicz | 2020-05-15 10:17:30 -0400

Improve some webtiles log messages

--------------------------------------------------------------------------------
f4f6b11931 | Alex Jurkiewicz | 2020-05-15 10:17:30 -0400

Remove version pin from Tornado dependency (advil)
All Tornado versions >=3 are supported now.

--------------------------------------------------------------------------------
8dcfb2fc82 | Alex Jurkiewicz | 2020-05-15 10:17:30 -0400

Convert README to markdown and update

--------------------------------------------------------------------------------
ec0d3a76dc | Alex Jurkiewicz | 2020-05-15 10:17:30 -0400

Reduce log spam

--------------------------------------------------------------------------------
fc79a73469 | Alex Jurkiewicz | 2020-05-15 10:17:30 -0400

Enhancements to webtiles game definitions
Add support for:

1. Dynamic loading of games from games.d/*.yml files
2. Adding/modifying environment variables
3. -dir arg
4. Custom CWD

--------------------------------------------------------------------------------
38b645b55d | Edgar A. Bering IV | 2020-05-15 10:05:13 -0400

Document the auto_butcher_max_chunks default in options_guide.txt
[skip ci]

--------------------------------------------------------------------------------
dddbc3d8f2 | Edgar A. Bering IV | 2020-05-15 09:52:38 -0400

Restore the default auto_butcher_max_chunks = 10
But keep an exception for ghouls

--------------------------------------------------------------------------------
72af00c55a | gammafunk | 2020-05-15 06:37:27 -0500

Simplify targeter classes
The shadow step targeter landing site method doesn't need to be a
virtual method in the targeter base class. For uses in
direction_chooser, we can do a static cast of this pointer to one of
targeter_shadow_step, since we always know when our hit function was
initialized with a targeter_shadow_step instance.

--------------------------------------------------------------------------------
858b6a6ff6 | advil | 2020-05-15 00:14:11 -0400

Add a placeholder fix for trap+corruption+nymphs
What seems to be happening is that a trap gets temporarily removed by a
nymph's flooding, then the terrain change marker gets moved by
corruption without moving the corresponding env.trap entry, then the
game crashes when restoring. This fix, which is not intended to be
final, will instead print an error and place floor on the trap reversion.

I think a real fix should either check and move the trap_def when the
terrain change marker moves, or remove and recreate env.trap entries in
sync with any terrain changes. The latter seems better, but I'm not sure
why it wasn't implemented that way in the beginning, so there may be
some issue I'm not anticipating.

--------------------------------------------------------------------------------
ea6e5d949a | Aidan Holm | 2020-05-14 20:26:25 +0800

Move PrecisionMenu to its own file
PrecisionMenu doesn't handle resizes well at all, and should be replaced
with the new UI stuff. The only remaining user is the skills menu, but
it's a complicated one...

This commit just isolates it from menu.h, which is widely used (even
if it's a complete mess as well...).

--------------------------------------------------------------------------------
1965fc2f32 | Aidan Holm | 2020-05-14 20:25:34 +0800

Remove ifdefs around menu tiles
Less preprocessor gunk is always better, and efficiency is not really a
concern (until proven otherwise). This change alone removes 1.6% of all
ifdef lines!

--------------------------------------------------------------------------------
dec1a2a129 | gammafunk | 2020-05-14 04:26:06 -0500

Fix log note generation for acquirement scrolls
Generate log notes about finding items only if and when they are
actually chosen. Previously artefacts and other notable items would
falsely generate notes just by being a choice offered by the scroll.

--------------------------------------------------------------------------------
2ef1b3b3bb | gammafunk | 2020-05-14 04:23:39 -0500

Allow acquirement scrolls to be canceled
We'd like to be able to back out of acquirement scrolls so that players
can inspect inventory, stash, resists, etc. in order to make an informed
decision. With the acquirement rework, these scrolls were uncancelable
due to concerns about seed stability for any unrand items generated. If
scrolls are cancelable, they must reuse the generated set of items,
otherwise the player could reread the scroll to re-roll their results. If
we do properly save items for a canceled scroll and any unrand artefacts
are generated, we must "reserve" these unrands to prevent their
generation on subsequent levels so as to avoid the scroll having to give
the player a different item. My concern was that this unrand reservation
would affect seed stability, but advil's recent improvements to unrand
generation allows level generation to give fallback artefacts without
affecting the seed results.

Hence this commit allows the scroll to be canceled when read, including
when it's first identified. Any unrands generated in the saved results
are reserved to be out of item generation until a final selection is
made. If an unrand isn't the final acquirement choice, it's properly
unreserved and is allowed to generate in subsequent levels. I removed
the keys for shopping list and identification items, since the player
can just cancel the scroll and look at these menus normally.

--------------------------------------------------------------------------------
94ba3d2fff | gammafunk | 2020-05-14 04:21:06 -0500

Remove redundant comments and simplify
The comment here is a redundant copy from the shop code. Also remove an
unnecessary scope creation.

--------------------------------------------------------------------------------
f4359a17dd | Edgar A. Bering IV | 2020-05-13 21:54:36 -0400

Mark !brill useless for Troglodytes
Since they don't cast spells and can't use it usefully anymore.

--------------------------------------------------------------------------------
65f7fbe4a0 | Edgar A. Bering IV | 2020-05-13 21:02:49 -0400

Revert "Set auto_butcher_max_chunks default to 10"
This reverts commit 9f5dfa981578c118dee96c7d59e09244e8ee7eb3.

Setting defaults happens before species selection and this is a bad
default for Ghouls, which makes this default a new player
trap—especially considering ghouls are listed under simple.

--------------------------------------------------------------------------------
2607d5cfa1 | RojjaCebolla | 2020-05-13 15:24:28 -0400

Simplify ring plusses
Put +6 on stat rings, +4 on the stronger rings, and curses are only -4,
instead of somewhere between 2 to 6.

Currently, 50% of rings are -2, 33% of rings are -3, and 17% of rings are
-4 or more. The average cursed ring is -2.83. Making it -4 always will mildly
increase the impact of wearing cursed items from the floor.

--------------------------------------------------------------------------------
0aa0c4bb02 | Edgar A. Bering IV | 2020-05-13 11:11:44 -0400

Add a TAG_MAJOR guard lost in rereflect

--------------------------------------------------------------------------------
2d2d24c1c4 | Edgar A. Bering IV | 2020-05-13 11:08:49 -0400

Add preservation and harm to shopping and debug (Implojin)

--------------------------------------------------------------------------------
112c7583a5 | Edgar A. Bering IV | 2020-05-13 07:54:34 -0700

Reflection artefact tweaks
Correctly display the SH+5 for randart reflection amulets.

Change the Brooch of Shielding to be an SH+8 guardian spirit amulet; it
did not interact well with the new fixed plus reflection property, and
having a guardian spirit + shielding amulet is more unique than a reflect
amulet with 3 more SH

--------------------------------------------------------------------------------
0781489d4c | Nicholas Feinberg | 2020-05-13 07:54:25 -0700

Attune reflection amulets on HP
Instead of a timed ramp up, attune them on HP like acrobat and
regeneration for consistency's sake.

--------------------------------------------------------------------------------
9db49107ce | Nicholas Feinberg | 2020-05-13 07:54:01 -0700

Give piety for reflected Banishments

--------------------------------------------------------------------------------
76d6e0e762 | Nicholas Feinberg | 2020-05-13 07:54:01 -0700

Give piety for reflected poison

--------------------------------------------------------------------------------
1a06e6f6b7 | Nicholas Feinberg | 2020-05-13 07:54:01 -0700

Give piety for reflected missiles

--------------------------------------------------------------------------------
324b75660a | Nicholas Feinberg | 2020-05-13 07:53:46 -0700

Remove plusses from reflect amulets
And don't autopickup "reflect.

--------------------------------------------------------------------------------
7b11d65f32 | Nicholas Feinberg | 2020-05-13 07:53:34 -0700

Revert "Remove amulets of reflection"
This reverts commit ba0266bf1e409d5e43bea0c429847e88466dc8e7.
This reverts commit 1529702659a5f61bd169c12671a9b1601423b43d.
This reverts commit c3b2b15ad0812eb4e36560da048408bb64a9e613.

--------------------------------------------------------------------------------
aaade9b9bd | Aidan Holm | 2020-05-13 20:40:30 +0800

Deduplicate weird monster type compatibility stuff

--------------------------------------------------------------------------------
97b10b9113 | Aidan Holm | 2020-05-13 20:40:28 +0800

Marshall all monster_type enums as uints
This commit adds marshallMonType() for clarity. Everything else is
fairly straight-forward.

--------------------------------------------------------------------------------
d8ecb352c1 | Aidan Holm | 2020-05-13 20:40:27 +0800

Remove future code for marshalling monster types as shorts
It's better to keep it as wide as possible, and rely on compression to
reduce space usage. There's still inconsistency in how these are
marshalled, but that's fixable with a minor tag bump.

--------------------------------------------------------------------------------
0139687f70 | Aidan Holm | 2020-05-13 20:40:25 +0800

Reorganize code
This mostly separates the unmarshalling and the conditional genus stuff.

--------------------------------------------------------------------------------
cb8d101f20 | gammafunk | 2020-05-13 01:41:21 -0500

Don't recolor statues next to damaging walls
Granite statues near slimy and icy walls currently get recolored, but
this doesn't make much sense, as the player can't move onto a statue.
It also might mislead the player into thinking that standing next to
these statues could damage them. Remove this recoloring, and also remove
redundant tests for water and lava that's covered by earlier code.

--------------------------------------------------------------------------------
2efb326896 | advil | 2020-05-13 00:19:43 -0400

Revert "Disable travis notifications"
This reverts commit 7f99b00658a4a79e6f92efb2b346077bf0ed5dbd.

--------------------------------------------------------------------------------
54a0b94bec | advil | 2020-05-13 00:18:50 -0400

Temporarily disable make test test pending further ... testing

--------------------------------------------------------------------------------
3431438f80 | advil | 2020-05-13 00:04:04 -0400

Run test in correct directory

--------------------------------------------------------------------------------
e6544eeaff | advil | 2020-05-12 23:47:11 -0400

...

--------------------------------------------------------------------------------
5e67357dd7 | advil | 2020-05-12 23:43:23 -0400

Try to make actions run `make test`
no idea if this is the right syntax

--------------------------------------------------------------------------------
cc65eb46a3 | Edgar A. Bering IV | 2020-05-12 22:42:46 -0400

Remove another too clever fallthrough in makeitem.cc
This is to fix an immediate crash; refactoring this function should be
high on the code cleanup todo.

--------------------------------------------------------------------------------
88e6ef3a42 | advil | 2020-05-12 21:02:56 -0400

Update makeitem.cc
Stealth is the main issue that I see; there may be other things going on
here though (I think this function has gotten a bit too clever with the
fallthroughs...)

--------------------------------------------------------------------------------
c3b2b15ad0 | Edgar A. Bering IV | 2020-05-12 19:42:04 -0400

And a few more

--------------------------------------------------------------------------------
1529702659 | Edgar A. Bering IV | 2020-05-12 19:40:31 -0400

Fix a leftover amulet of reflection

--------------------------------------------------------------------------------
ac2cbc2f56 | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Remove outdated amulet descriptions from translations
These files could use further pruning for removed items.

--------------------------------------------------------------------------------
459fc583a1 | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Remove amulets of Rage
The remaining evocable active amulet, they no longer fit with the
remainder of the amulet slot. Lacking a swap penalty, an amulet of rage
can be swapped to by a character using a different amulet's effect when
it's not needed if berserk can finish an encounter, since most current
amulets swap penalties come on activation, not removal.

Berserk is a powerful effect, unlimited berserk more powerful still, so
I don't see a desparate need to move +Rage to a scarf. In doing so,
+Berserk artefacts and Trog become a bit more special.

--------------------------------------------------------------------------------
ba0266bf1e | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Remove amulets of reflection
A small plus to SH and the reflection property was a minor boost in most
cases and easily outshone. Newer players enjoy the satisfaction
of the reflection ego but to a point where it becomes a newbie trap:
they'll take reflection over much stronger (though more subtle) amulets.

They also suffer from a tedious-optimality: it's technically always good
to carry one when possible while using an amulet of guardian spirit, and
swap to it should your MP pool empty; or when using an amulet of rage.
The previous amulet reform aimed to make the amulet slot one that the
player commits to well in advance of a given fight, but the presence of
a slew of older amulets hampered that goal.

--------------------------------------------------------------------------------
ca3883d1df | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Remove amulets of the gourmand
With the food simplification over the years, lax food clock in general,
and much stronger amulets its time to put this one to rest.

--------------------------------------------------------------------------------
8a86455914 | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Allow Harm on randart armour
Harm works as an armour property because armour swapping delay requires
that a player commit to the harm effect tactically. Previously support
for Harm as an artefact property was added, but set not to generate at
the time and had *Drain as a corequisite.

--------------------------------------------------------------------------------
0691371e69 | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Remove amulets of harm
The previous commit added scarves of harm and explained why Harm wasn't
working in the amulet slot. This removes amulets of harm as a follow-up.

--------------------------------------------------------------------------------
19c8d5534f | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Add Harm to scarves
This adds Harm as an armour ego, without the drain penalty on removal.
The Drain penalty was to prevent swapping in urgent situations, but in
practice players just ate the skill drain to get out of Harm when
escaping. Putting it on an armour slot makes using Harm a much stronger
commitment.

--------------------------------------------------------------------------------
6a14d1d4ee | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Remove scarves of spirit shield
Offering guardian spirit on a different slot in non-unrandart form
offered such power combos as spirit+faith and spirit+acrobat at the
price of making the scarf ego list overlap with the amulet ego list.
With invisibility moved to scarf egos, there are enough scarf egos that
this sort of padding isn't needed.

--------------------------------------------------------------------------------
8388af883b | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Add preservation (rCorr) and stealth to cloaks
The previous commit made the cloak ego list a bit thin. This commit adds
preservation and stealth as possible cloak egos.

"preservation" is reintroduced as an armour ego ego, but now it is just
a name for rCorr (the player-facing name could change, but "cloak of
resist corrosion" just doesn't have the same ring).

--------------------------------------------------------------------------------
97dead9f74 | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Move invisibility from cloaks to scarves
Evocable invisibility is extremely powerful, providing access to a level
6 spell without the associated spellcasting complications. It might
still be op on a scarf, but on a scarf it doesn't provide AC as well!

--------------------------------------------------------------------------------
f75c35ca80 | Edgar A. Bering IV | 2020-05-12 18:55:35 -0400

Remove scarves of cloud immunity
Scarves of cloud immunity were a very niche effect, but the niche was
occasionally useful in passing through particular vaults, which led to either
stashing or an incentive to carry an otherwise unwanted item "just in
case". This did not make for a good armour ego.

--------------------------------------------------------------------------------
6f112fb28d | Edgar A. Bering IV | 2020-05-12 15:25:58 -0400

Further tune down tremorstones
Use a smaller step size for the stepdown, return ZAP_TREMORSTONE to
being power independent so that damage scaling only comes from the
number of stones thrown, and increase the XP recharge timer slightly.

--------------------------------------------------------------------------------
7f99b00658 | advil | 2020-05-12 14:42:37 -0400

Disable travis notifications
I think at this point these are fully superseded by gh actions?

--------------------------------------------------------------------------------
61715709bc | Edgar A. Bering IV | 2020-05-12 13:52:33 -0400

Adjust the price of tremorstones
They're permanent now, so the cost should reflect that.

--------------------------------------------------------------------------------
b4f6ace0b6 | advil | 2020-05-12 13:02:55 -0400

Endless warnings

--------------------------------------------------------------------------------
d75fab455a | advil | 2020-05-12 12:49:35 -0400

Fix more warnings for tag_upgrade=true

--------------------------------------------------------------------------------
05ec187f37 | advil | 2020-05-12 12:19:23 -0400

Fix a local tiles error + a few more warnings

--------------------------------------------------------------------------------
21ee38bd74 | advil | 2020-05-12 11:29:48 -0400

Fix some warnings on diverse compilers

--------------------------------------------------------------------------------
a90a8e02b8 | advil | 2020-05-12 10:19:15 -0400

One more attempt to get UINT8_MAX from a header on cao/cbro...
This reverts commit bfbf38f2cb72dd8d279634e992344898f6fd7b77.

--------------------------------------------------------------------------------
f27dea0dad | Aidan Holm | 2020-05-12 21:17:52 +0800

Extract ScissorStack to its own class

--------------------------------------------------------------------------------
4c3fe21bcb | Aidan Holm | 2020-05-12 19:36:22 +0800

Move union/intersect methods to ui::Region class
This commit also adds some tests.

--------------------------------------------------------------------------------
e6b3a59081 | gammafunk | 2020-05-12 04:56:44 -0500

Update floor for features next to damaging walls (12233)
When casting Frozen Ramparts, the floor tiles for features adjacent to
icy walls were not updated. This is a problem for habitable features
like fountains and open doors, since this indicates to the player that
these tiles wouldn't harm a monster. This also applied to slimy walls,
although it's less common for the player to see this. Update the packed
cell code to properly modify floor tiles.

Shallow and deep water are instances where updating floor tiles wouldn't
help, since the water tile isn't transparent. We may need to make
special "icy water" tile variants to handle this case.

--------------------------------------------------------------------------------
0c75a98c51 | gammafunk | 2020-05-12 04:56:43 -0500

Don't partly override cell cache with global data
In d8832a91e, global state was more fully cached in the packed cells
later used for Tiles rendering. This included the tile flavor data used
to describe floor tiles of features. However the WebTiles code that
handles tile flavor was not updated, and it was subsequently overriding
the packed cell cache.

--------------------------------------------------------------------------------
bfbf38f2cb | advil | 2020-05-12 00:25:02 -0400

Revert "Try 3b to fix compilation on CAO/CBRO"
This reverts commit b6211d5327e150baf5cb89c5d09156141fa4ef52.

--------------------------------------------------------------------------------
2f40044526 | advil | 2020-05-12 00:23:27 -0400

Fix another c++11ism that is not working on CAO/CBRO

--------------------------------------------------------------------------------
b6211d5327 | advil | 2020-05-12 00:14:20 -0400

Try 3b to fix compilation on CAO/CBRO
This reverts commit 227e4c2ee8d22008d1552fa4821231495437bbef.

(Try 4 worked, but is awful)

--------------------------------------------------------------------------------
227e4c2ee8 | advil | 2020-05-12 00:00:42 -0400

Fourth(!) try to fix the build on CAO/CBRO
not an ideal solution...

--------------------------------------------------------------------------------
a314768f3c | advil | 2020-05-11 23:56:55 -0400

Third try to fix the build on CAO/CBRO

--------------------------------------------------------------------------------
7cce4bb545 | advil | 2020-05-11 23:40:27 -0400

Second try to fix the build on CAO/CBRO

--------------------------------------------------------------------------------
5cf8ac06c5 | advil | 2020-05-11 23:35:05 -0400

Try to fix the build on CBRO/CAO

--------------------------------------------------------------------------------
8a05a4ca56 | Alex Jurkiewicz | 2020-05-11 21:07:37 -0400

Simplify 8c1d20324

--------------------------------------------------------------------------------
8c1d203243 | advil | 2020-05-11 20:35:06 -0400

Make species group order stable across python versions
This code would have worked in py3.6 (where dict creation order
determines iteration order), but no guarantees in earlier versions. This
may fix the species selection hotkey bug.

--------------------------------------------------------------------------------
4819203062 | Byrel Mitchell | 2020-05-11 17:00:58 -0400

Change the comment on max_miscast_damage to match the new miscast damage 
calculation.
The actual math in this function was updated to calculate the max miscast 
damage properly, but the comment was incorrect.

--------------------------------------------------------------------------------
ac5a30bc78 | advil | 2020-05-11 16:48:33 -0400

Allow clicking outside chat window to defocus
focus-trap has a setting that is supposed to do this, but getting it to
work ran up against what I think is a bug in focus-trap, where the
returnFocusOnDeactivate setting isn't respected when the new target
isn't clickable
(https://github.com/davidtheclark/focus-trap/issues/103). The boolean
expression here is a bit ugly, but I did it that way as a minimal change
from the original logic. I have only a somewhat vague understanding
overall of what is going on with focus in this library, so I hope that
this doesn't have further side-effects.

This library seems to be unmaintained now, I wonder if there are any
alternatives to consider instead?

Hopefully resolves #1243

--------------------------------------------------------------------------------
3a3e078c59 | advil | 2020-05-11 12:58:32 -0400

Apply location effects *after* temp changing a feature
ea32a606ab reordered things so that location effects were applied to
monsters as a side effect before the temporary feature change took
effect, i.e. using the about-to-be-replaced feature value. Aside from
not applying any effects of the new feature type to a monster on the
position, this caused weird things like a water nymph standing on a trap
and temporarily flooding it to trigger that trap on the temporary
terrain change. Some example crashes:

http://crawl.berotato.org/crawl/morgue/ardl/crash-ardl-20191231-234514.txt
http://crawl.akrasiac.org/rawdata/elzilcho/crash-elzilcho-20190927-225210.txt

(The crash is when the terrain change reverts, and the shaft's trap info
is gone.)

This commit partially reverts ea32a606ab (sorry) but keeps the wall
check in a more direct way.

--------------------------------------------------------------------------------
6ca9d89ac5 | advil | 2020-05-11 11:01:33 -0400

Fix a usk grand finale crash (12248)
The flying chunks do damage, which can cause the original target to be
dead by the time the monster_die call comes around.

--------------------------------------------------------------------------------
31286d223f | Aidan Holm | 2020-05-11 19:20:17 +0800

Fix unordered_map<> on Mac OS

--------------------------------------------------------------------------------
27f2bdb7b0 | Aidan Holm | 2020-05-11 18:41:57 +0800

Replace map<> with unordered_map<>
If there's no ordering requirement, unordered_map is a better choice;
it's more efficient (hash table instead of tree structure) and better
documents the nature of the data.

--------------------------------------------------------------------------------
ac5e0fa705 | Alex Jurkiewicz | 2020-05-11 01:55:09 -0400

Clean up notification logic
After 4617b1041b and c6157ca552.

--------------------------------------------------------------------------------
f0b061a3c0 | Alex Jurkiewicz | 2020-05-11 01:55:09 -0400

Remove BUILD_ALL CI config
macOS and MingW builds already build submodules, so this job was
redundant (and didn't work anyway).

--------------------------------------------------------------------------------
10a8c3caa8 | advil | 2020-05-10 21:41:15 -0400

Normalize @pronoun_possessive@ to @possessive@
to match do_mon_str_replacements

--------------------------------------------------------------------------------
d106ae698d | advil | 2020-05-10 21:41:15 -0400

Fix spelling of @pronoun_possessive@ (u/bobloblawblogger)
This was ... spelled wrong in every instance.

--------------------------------------------------------------------------------
edaaef979a | Quipyowert2 | 2020-05-10 21:32:49 -0400

Fix signed/unsigned int format mismatch (%d vs %u)
Fixes the following Cppcheck errors:
[crawl-ref/source/rltiles/tool/tile_list_processor.cc:1006] (warning) %d in 
format string (no. 3) requires 'int' but the argument type is 'unsigned int'. 
[invalidPrintfArgType_sint]
[crawl-ref/source/rltiles/tool/tile_list_processor.cc:1166] (warning) %d in 
format string (no. 1) requires 'int' but the argument type is 'unsigned int'. 
[invalidPrintfArgType_sint]
[crawl-ref/source/rltiles/tool/tile_list_processor.cc:1180] (warning) %d in 
format string (no. 1) requires 'int' but the argument type is 'unsigned int'. 
[invalidPrintfArgType_sint]
[crawl-ref/source/rltiles/tool/tile_list_processor.cc:1201] (warning) %d in 
format string (no. 2) requires 'int' but the argument type is 'unsigned int'. 
[invalidPrintfArgType_sint]
[crawl-ref/source/rltiles/tool/tile_list_processor.cc:1260] (warning) %u in 
format string (no. 1) requires 'unsigned int' but the argument type is 'signed 
int'. [invalidPrintfArgType_uint]
[crawl-ref/source/rltiles/tool/tile_list_processor.cc:1338] (warning) %d in 
format string (no. 1) requires 'int' but the argument type is 'unsigned int'. 
[invalidPrintfArgType_sint]
[crawl-ref/source/rltiles/tool/tile_list_processor.cc:1624] (warning) %d in 
format string (no. 2) requires 'int' but the argument type is 'unsigned int'. 
[invalidPrintfArgType_sint]

--------------------------------------------------------------------------------
47ef49afec | Edgar A. Bering IV | 2020-05-10 19:12:40 -0400

Further revise tremorstones
Tone down the damage. Using the old scattershot formula directly for the
number of explosions was way too good.

Further, convert them to an xp evoker with three charges and an xp debt
between that of the lightning rod and the one-charge evokers.

--------------------------------------------------------------------------------
6a45855626 | Edgar A. Bering IV | 2020-05-10 19:00:42 -0400

Extract XP Evoker properties to data
This commit is not strictly necessary at present, but will ease the
conversion of other evokers and wands to an XP-charge model in the
future.

--------------------------------------------------------------------------------
bcf8c60d55 | Edgar A. Bering IV | 2020-05-10 17:46:03 -0400

Find a lost unary minus (#1395)
Closes #1395

--------------------------------------------------------------------------------
3a27ba4f8a | advil | 2020-05-10 15:18:06 -0400

More lugonu corrupt flavor tweaks
* add recoloring for stone walls, metal walls. Still subject to the
  "resistance" check for these types. Added a few more metal wall
  colors, which are relatively subtle. Use existing stone tiles. This
  won't work with some variants, e.g. the vaults stone tiles.
* add recoloring for trees; don't add new tree colors, just use dead
  trees as a fallback.
* chance to get flavor-only corruption for tiles within los that didn't
  get real corruption.
* add a 20% chance for floor tiles to be magenta no matter what. This
  isn't abyss-themed per se but I chose it because it matches the color
  of the corruption flash.

It remains possible that some of this will need to be toned down again?

--------------------------------------------------------------------------------
7e5784328a | advil | 2020-05-10 15:18:06 -0400

Remove an old debug dprf

--------------------------------------------------------------------------------
64580d555a | advil | 2020-05-10 15:18:06 -0400

Fix a local tiles crash with removed wands
Would crash on monster tooltip with a wand that had a removed spell.

--------------------------------------------------------------------------------
abcb65df2b | advil | 2020-05-10 15:18:06 -0400

Adjust lugonu corrupt flavor
In 2f88dcd080dc11, lugonu corrupt was changed to be localized with
100%-30% chance to corrupt inside los.  Perhaps accidentally (not sure),
there was a flat 1% chance to corrupt any square outside LOS. This was
very slightly flavorful.  This commit makes two adjustments: (i) it adds
a linear chance to corrupt tile flavor only outside the immediate
radius, making it much easier to see across the level that corruption
has happened, and (ii) it uses fixed point math to have smoother
percentage values in general.  It's possible that I've gone too far and
the outside-los chance could use some toning down?

--------------------------------------------------------------------------------
211953ec74 | advil | 2020-05-10 15:18:06 -0400

Fix a theoretical terrain change crash
I can't replicate this, but the previous implementation should be able
to crash in the following way: if there are two terrain changes of the
same type on a single position (something that is possible in
principle), then reverting the terrain changes at that position would
delete all markers associated with that position at once. Then, the
iterator over markers will have a deleted marker in its future. Instead,
save up all positions with markers to be reverted, and do them last by
position, outside of the marker iteration.

I *think* this might be able to happen in complicated circumstances
involving water nymphs over stairways and lugonu corrupt. But, that is
just a theory.

--------------------------------------------------------------------------------
bd17af9716 | Aidan Holm | 2020-05-11 00:16:07 +0800

Add test for map view cursor clamping

--------------------------------------------------------------------------------
5a1f09014c | Aidan Holm | 2020-05-11 00:04:46 +0800

Fix ugly code
Makes it easier to read.

--------------------------------------------------------------------------------
baf2e0d10d | Aidan Holm | 2020-05-11 00:04:46 +0800

Remove duplication

--------------------------------------------------------------------------------
26bcaaf216 | Alex Jurkiewicz | 2020-05-10 22:29:06 +0800

Fix CI ccache caching
Current runs are giving the following error during the "post cache
compilation" step:

Post job cleanup.
/bin/tar -cz -f 
/home/runner/work/_temp/17c1f8fd-a821-43cb-a606-fc036b1b78dc/cache.tgz -C 
/home/runner/work/crawl/crawl/$HOME/.ccache .
/bin/tar: /home/runner/work/crawl/crawl/$HOME/.ccache: Cannot open: No such 
file or directory
/bin/tar: Error is not recoverable: exiting now
[warning]Tar failed with error: The process '/bin/tar' failed with exit code 2

It seems like environment variables are not supported. However, examples
in the actions/cache repo show use of `~`, so we can use that instead:
https://github.com/actions/cache/blob/master/examples.md#python---pip

--------------------------------------------------------------------------------
ca090100c3 | advil | 2020-05-09 22:10:13 -0400

Fix map view console cursor clamping
Missing negation in ca36f614e.  For various reasons, this issue only
came up for extremely wide/tall maps in console, so was a hard bug to
spot, but it was instantiated by sprint_mu. On this map, when fully
explored (e.g.  via `&{`) the effect was to let the cursor move off
screen in map/`X` view.

--------------------------------------------------------------------------------
01c183ff00 | advil | 2020-05-09 21:09:59 -0400

Fix an iterator validity issue in sprint_mu (12192)
When the door property called its veto check and removed the marker,
that invalidated the iterator used in map_markers::property_at, leading
to a crash. I think this code has been broken for ~ 6 years? (The
previous version used a const iterator that I think would be resilient
to this.)

--------------------------------------------------------------------------------
0adbbaad2a | advil | 2020-05-09 16:38:49 -0400

Fully sync player on webtiles load (12117)
To determine what values to sync, all the `_update_blah` calls require
that the initial values it is provided with are already in sync with the
webtiles server (they only sync changes unless forced). However, the
player_info class does not initialize most of its values, and the first
instance of _send_player would typically be triggered on a redraw, which
does not force sync. So when the on-load player_info value of some
setting matched its initial value (which is undefined / up to the mercy
of the compiler), that value would not get synced until it changed, or a
spectator connected. This commit ensures that the first instance of
_send_player is always a force sync, i.e. sends every value. There are
other ways of fixing this but this one seemed like it would be
reasonably safe.

This was manifesting in a very specific way in 12117, where a quiver
item on the `a` slot translated to a value 0, which in several build
settings turns out to be what an uninitialized uint8 gets set to --
leading to the quiver value not getting synced in this one specific
case. However, I wouldn't be surprised if there were other small
effects.

This issue might conceivably arise for other initial sync things; it
makes me wonder why we call _send_everything for spectators but not ever
for the player?

--------------------------------------------------------------------------------
c08aec66eb | Edgar A. Bering IV | 2020-05-09 14:45:14 -0400

Unstack tremorstones and make them indestructible
Is this another circle on the merry-go-round of "damaging purple
evocable that also does self damage" a la tome of destruction and disc
of storms? Time will tell. Tremorstones' effect is much simpler than the
two mentioned items: randomized but possible to reason about without
consulting a spoiler for the chart of switch statement cases.

Now that tremorstones don't have a targeter and scale with evocations,
its important to give the player an opportunity to get a feel for the
self damage. The self-damage also tactically limits the effect without
contributing to power spiral in the same way as a consumable. Because
the effect scales with evocations, there is a strategic cost in getting
greater benefit from tremorstones. For all of these reasons, making them
consumable no longer fits.

If the self-damage is not enough of a brake against spamming, XP-based
charges can be added. (Indeed, moving all evocables to XP-charging would
be a good idea to help with power-spiral, but it's too close to 0.25 to
do that now.)

--------------------------------------------------------------------------------
4617b1041b | advil | 2020-05-09 08:44:48 -0400

Probably actually don't message on every push

--------------------------------------------------------------------------------
c6157ca552 | advil | 2020-05-09 08:39:55 -0400

I'm gonna veto this one, sorry

--------------------------------------------------------------------------------
94ad2f9d5a | Aidan Holm | 2020-05-09 20:17:17 +0800

Split compass choosing out of directn.cc
This commit splits compass choosing out of the main direction choosing
class. This leaves direction_chooser with only one UI loop, making it
more amenable to converting to a widget-based approach.

This new function also contains a UI loop, but it's much smaller. It's
also possible I will temporarily remove the mouse features during
conversion, since it's fairly low-impact.

--------------------------------------------------------------------------------
f7bcf9115c | Alex Jurkiewicz | 2020-05-09 20:01:44 +0800

Notify IRC for every build result

--------------------------------------------------------------------------------
2fbec62c1c | Aidan Holm | 2020-05-09 18:55:49 +0800

Consolidate directn shadow-step check
I don't entirely understand this code, but the way the 'main loop'
is set up, the target is always changed through set_target() before
any key input will be processed; so there should be no change to
valid_shadow_step between when it is set and when it is checked. This
means that this shadow step code can be moved together.

This makes the set_target() method very simple (and ready for removal),
and it gets rid of a bit of state on direction_chooser.

--------------------------------------------------------------------------------
fd92ea8195 | Aidan Holm | 2020-05-09 18:29:46 +0800

Split directn command handling into separate method

--------------------------------------------------------------------------------
49e72149f4 | Aidan Holm | 2020-05-09 17:01:31 +0800

Remove direction chooser show_items_once feature
This didn't seem to be making any difference in how the direction
chooser was being displayed.

--------------------------------------------------------------------------------
07f64c5e97 | Aidan Holm | 2020-05-09 17:01:31 +0800

Remove switch fallthroughs

--------------------------------------------------------------------------------
8ea86301a3 | Aidan Holm | 2020-05-09 17:01:31 +0800

Decouple key input from targeting_behaviour
targeting_behaviour has absolutely no business getting user input
directly; it should only encapsulate behaviour for a given targeter. How
a given targeter responds to a given key event (i.e. the mapping of a
key to a command) is fair game, but how that key event is received is
not. This was never used in practice, thankfully.

This will allow refactoring the direction chooser view with widgets,
and also permit testing individual targeting behaviours, since they're
no longer so tightly coupled to the input system.

--------------------------------------------------------------------------------
d28c3ca9de | Alex Jurkiewicz | 2020-05-09 16:58:33 +0800

Include coverage of catch2 files in coverage tracking
Filtering these files out is very slow (takes nearly 20mins), and it's
arguably the wrong thing to do anyway.

--------------------------------------------------------------------------------
bc0df25834 | Alex Jurkiewicz | 2020-05-09 16:58:31 +0800

Add build failure notification

--------------------------------------------------------------------------------
d920e8e91e | Alex Jurkiewicz | 2020-05-09 16:56:46 +0800

Add a CI job for BUILD_ALL=1

--------------------------------------------------------------------------------
ebd775692e | Aidan Holm | 2020-05-09 14:47:02 +0800

Add key_recorder_raii helper class

--------------------------------------------------------------------------------
cae8493d64 | Aidan Holm | 2020-05-09 13:14:17 +0800

Extract function and add tests
Noticed this one while checking set_max_size().

--------------------------------------------------------------------------------
80a8f0c930 | Edgar A. Bering IV | 2020-05-08 21:35:26 -0400

Add optional player-relative coordinates to the Monster/Item view
This was requested as an accessibility feature for players using screen
readers, as the ^x screen is much easier for them to use.

This treats the up direction as positive y, even though crawl's grid
uses screen coordinates. However, a standard right-handed cartesian
coordinate system is more familiar to most users who are not graphics
programmers, so the minus sign is worth it.

--------------------------------------------------------------------------------
522354d0d9 | Edgar A. Bering IV | 2020-05-08 18:55:00 -0400

Make "Leech" a sloppy eater (tylertfb)
A cosmetic addition: strong hits with Leech occasionally turn monsters
into large blood explosions.

--------------------------------------------------------------------------------
74ed164fb1 | Edgar A. Bering IV | 2020-05-08 17:49:59 -0400

Remove wands of scattershot
The revised tremorstone provides a simillar level of access to evocable
BEAM_FRAG damage with a more interesting targeter (one more cone targeter
removed!) and mechanic compared to "yet another damaging wand".

--------------------------------------------------------------------------------
39b54811f6 | Edgar A. Bering IV | 2020-05-08 17:49:59 -0400

Revise tremorstones
Tremorstones were in an awkward place; the lack of scaling meant that
tremorstones didn't remain relevant. The rarity and AC requirement meant
that few players would find them at a time when they were relevant and
could use them. Additionaly, tremorstones introduced yet another
targeter to crawl at a time when we're trying to move away from
targeting.

This commit resolves the issues above by:

1. Scaling tremorstones with evocations. This is done by scaling the
   number of explosions according to the same formula as scattershot
   beams, and scaling the damage of each explosion (lightly) with power.
2. Manual targeting is removed and replaced by centering the
   tremorstones at a point distance 3 from the player closest to the
   center-of-mass of monsters in LOS (including invisible monsters, with
   ties broken randomly). This is flavored as magnetic attraction. The
   specific explosions are then fuzzed according to the existing
   tremorstone fuzzing, so the player retains a chance of getting hit.

--------------------------------------------------------------------------------
acf03c893f | Edgar A. Bering IV | 2020-05-08 17:47:22 -0400

Display monster statuses in ^x
This provides greater accessibility to screen-reader players and an
overview elaboration for players who see "…)" in an entry on the console
monster list. This display is also added to webtiles; while the icons do
duplicate this information, the purpose of ^x is to be clarifying, so
the information is spelled out.

--------------------------------------------------------------------------------
201186dcf8 | Edgar A. Bering IV | 2020-05-08 17:47:03 -0400

Truncate monster status info cleanly in the console HUD
Instead of just chopping the string to length, chop a little short and
write "…)" so the player knows there's more going on and they should
consult ^x.

--------------------------------------------------------------------------------
bfd0dbb5ba | Edgar A. Bering IV | 2020-05-08 17:46:56 -0400

Display wands in the monster info pane (damerell)
Inspired by Stoat Soup 063ee9f9 "Add "wand" status (ebering)".

--------------------------------------------------------------------------------
dc7eba7276 | Edgar A. Bering IV | 2020-05-08 17:46:56 -0400

Refactor monster_info::attributes
Move monster info flag names to their own data header, convert them to a
vector of player priorities for display, and re-factor the attributes
method and its clients to take advantage of these new names.

--------------------------------------------------------------------------------
8d0d4bad7c | Edgar A. Bering IV | 2020-05-08 17:46:56 -0400

Refactor mons_condition_string
The previous commit introduced some new architecture, but had extra
logic woven in that isn't needed (the newcondition/listall boolean
parameter was only false when writing a description of the scene in the
chardump, but it's fine to be verbose there). This commit simplifies the
"vector of structs with boolean test functions" to a map from
monster_info_flags to their singular and plural display names. A
subsequent commit will refactor monster_info::atributes() to use the new
structure to unify the two description lines.

--------------------------------------------------------------------------------
ee693632f7 | David Damerell | 2020-05-08 17:44:56 -0400

Add additional functionality to console monster list
The monster list now provides information even if more than one monster
of a given type is visible, can tell you more than one thing about
monsters, and indicates many more statuses, most importantly whether
monsters are wielding polearms or missile launchers.

The additional statuses have been added in an ordering that tries to
follow the original; buffs like berserk first, then incapaciting
conditions like paralysis, then maluses, then largely informational
material like that a monster is invisible when you have SInv.

Providing this information in the console HUD brings console closer to
informational parity with tiles, where this information is communicated
by monster sprites and status icons.

[ Committer's note: Closes #979. Subsequent commits refactor and further
  extend this functionality. ]

--------------------------------------------------------------------------------
8218859876 | advil | 2020-05-08 15:49:50 -0400

missed one

--------------------------------------------------------------------------------
9b6a17f00c | advil | 2020-05-08 15:09:57 -0400

Don't let abyss xp stairs overwrite exits
For some reason, DNGN_EXIT_ABYSS is not a stair, and not even a branch
exit technically. I suspect another past source of UI confusion with xp
exits was that a player could overwrite an xp-generated exit with down
stairs by fighting more, and then never get another exit. (Whereas an
exit could not overwrite a stairway, though that wouldn't have come up.)
This also prevents xp exits from overwriting a few other things, such as
transporters. It could be worth giving a message past the xp threshold
in order to cue the player that they need to move if they want something
to generate?

--------------------------------------------------------------------------------
e06654808c | advil | 2020-05-08 14:55:46 -0400

Try to fix cross-compiling

--------------------------------------------------------------------------------
eaa01bc6cc | advil | 2020-05-08 14:26:37 -0400

Give a chance for more than one abyss xp exit to spawn
The fact that the first one is an exit, and everything after that is
guaranteed to be a downstair, is very confusing to players / spoilery.
(At an extreme, I've seen multiple reports over time of players thinking
each time the stairs generated that they simply got unlucky, and
continuing to fight to generate more, sometimes over and over again.
Worst for qazlal players.) This commit changes things so that after the
initial exit, there's a 50% chance for downstairs vs exit. The xp ramp
continues until you exit the abyss. I considered other possibilities
that were less of a change like resetting the bool on level change, but
they were somewhat spoilery too.

I don't think there's a balancing issue here, but if anyone else does,
to get closer to the previous behavior you could adjust the
probabilities as the XP threshold for spawning increases.

--------------------------------------------------------------------------------
1b96fe49b6 | advil | 2020-05-08 13:33:45 -0400

Standardize conditions for including unistd.h
The immediate target of this is a report of compilation failure on
freebsd, but I noticed that we are all over the place in how this is
conditioned. Because several of these were non-windows defines, it's
possible that this could break compilation on obscure/non-supported
build targets like hurd(!). Probably this should be some kind of actual
posix check...

--------------------------------------------------------------------------------
ab8558aff4 | advil | 2020-05-08 11:42:06 -0400

Generalize b977e01cb5bc to other penetration crashes
This guarantees that a ranged attack will be attempted for penetration
weapons regardless of the state of the agent. In b977e01cb5bc I used
YOU_FAULTLESS as the agent for cases where reflection kills the agent,
and this commit generalizes this to use YOU_FAULTLESS for all cases
where the agent is gone. This is conceptually odd, but better than
crashing; and I think it is more consistent behavior than alternatives
like causing the penetration attack to stop at that point, or letting it
continue without damaging anything.

--------------------------------------------------------------------------------
ccb83ce0d9 | Benoit Giannangeli | 2020-05-08 11:31:10 -0400

New morgue section `screenshots`
Notes can have an associated screenshot. For now only user notes take
screenshots. They are printed out in the `screenshots` section of the
morgue. A one-screenshot per turn limit is enforced.

[ Committer's note: tweaked for smooth forward upgrade compatibility.
  Squashed an rebased. Closes #1119 ]

--------------------------------------------------------------------------------
12724d6e4b | Aidan Holm | 2020-05-08 23:20:45 +0800

Make CrawlVector::pop_back() return void (#12220)
It's returning a reference to a value that was just removed. This
doesn't appear to be used anywhere, so let's just remove it entirely.

--------------------------------------------------------------------------------
0d6008aee3 | Aidan Holm | 2020-05-08 23:20:45 +0800

Fix warnings
These functions aren't used at all on local tiles.

--------------------------------------------------------------------------------
7446190586 | Goratrix | 2020-05-08 11:00:08 -0400

Fix gitignore for windows packages
Change to wildcard matching, also add the exe, which is already excluded
elsewhere with *.exe, but should be also here for consistency.

--------------------------------------------------------------------------------
94bac08340 | Aidan Holm | 2020-05-08 21:39:53 +0800

Remove DEBUG_PANE_BOUNDS
Removing because (1) we're trying to eliminate all ad-hoc scribbling on
the screen, (2) it should be the render system's job to provide this
sort of layout debugging feature (and it does provide it, for local
tiles at least), (3) this probably hasn't been used in a long time, and
(4) if using this was necessary, use of a debugger would probably be
necessary to, so just using the debugger itself is probably easier.

--------------------------------------------------------------------------------
5a86851f4e | Aidan Holm | 2020-05-08 21:36:23 +0800

Show names of removed monsters

--------------------------------------------------------------------------------
2c54f16f28 | Aidan Holm | 2020-05-08 21:36:22 +0800

Remove dead monster code

--------------------------------------------------------------------------------
b124a90d0f | Aidan Holm | 2020-05-08 21:36:20 +0800

Add some basic tests

--------------------------------------------------------------------------------
ba654730c8 | Aidan Holm | 2020-05-08 21:36:19 +0800

Re-sync axed / removed monsters

--------------------------------------------------------------------------------
dd2af9e06e | advil | 2020-05-07 10:29:07 -0400

Fix a bunch of basic errors with TOUCH_UI builds
No guarantees that this actually, y'know, works, but it now compiles and
lets me resolve #1371.

We should probably figure out some way of either supporting this code a
bit better or dropping it? Are there still any downstream consumers of
TOUCH_UI=y builds?

--------------------------------------------------------------------------------
643b649470 | gammafunk | 2020-05-07 06:25:57 -0500

Correct a unit test function call
doh!

--------------------------------------------------------------------------------
c7cb02f774 | gammafunk | 2020-05-07 06:06:30 -0500

Make a map function non-static
This one is needed for unit tests.

--------------------------------------------------------------------------------
6709f3f1ee | gammafunk | 2020-05-07 05:25:26 -0500

Properly declare some map functions as static

--------------------------------------------------------------------------------
ec7a518341 | gammafunk | 2020-05-07 05:24:59 -0500

Declare some tags functions in tags.h
These functions are now integrated into unit tests, hence must be
non-static. Before this commit, they lacked declarations in tags.cc
itself and had declarations in a unit test file, but this generated
compilation warnings for tags.cc. Per discussion with aidanh, it's
probably a good thing if the unit tests are forcing things that need to
be tested to have header declarations, since it helps clarify program
structure. So we move the required functions' declarations to tags.h and
remove the duplicate declaration from the unit test files.

--------------------------------------------------------------------------------
8d059310dc | gammafunk | 2020-05-07 05:02:06 -0500

Rename some static tag helper functions
These static functions are renamed to follow the leading underscore
convention we use in the rest of the codebase.

--------------------------------------------------------------------------------
2f7e29601a | gammafunk | 2020-05-07 04:55:13 -0500

Remove a spurious semicolon

--------------------------------------------------------------------------------
87a53962fc | advil | 2020-05-05 17:44:07 -0400

Add a hacky way of counting monster spells to removedness script
(gammafunk)

--------------------------------------------------------------------------------
40c2d6565b | advil | 2020-05-05 17:21:27 -0400

Script to assess removedness
I became interested in the question of how much, quantitatively, gets
removed and added from each vesrion. This script is able to provide
counts for various kinds of things (species, branches, spells, item
types) in crawl and will work on versions going back to 0.3 (with a few
caveats before around 0.10).

--------------------------------------------------------------------------------
c6eaff51cc | Nikolai Lavsky | 2020-05-05 00:53:25 -0400

Update the options guide
This commit updates examples, removes mentions of obsolete items
and spells, and fixes some typos.

Also, it adds missing entries into TOC and reorders options in TOC
so they match the order of the descriptions.

--------------------------------------------------------------------------------
1e880d33e3 | Aidan Holm | 2020-05-04 23:19:39 +0800

Fix show_map() sometimes falsely choosing target (#12250)
This was caused by an uninitialized variable.

--------------------------------------------------------------------------------
ad7ffe8aff | Quipyowert2 | 2020-05-04 21:37:01 +0800

Fix resource leak if allocating PNG structs fails.
Cppcheck complains "Resource leak: fp" at lines 254 and 260 where the
function write_png returns on error without closing the file opened
at the beginning of the function. After write_png returns, the file
would still be open, but the pointer to it has been lost.

Cppcheck errors:
[crawl-ref/source/rltiles/tool/tile_colour.cc:254] (error) Resource leak: fp 
[resourceLeak]
[crawl-ref/source/rltiles/tool/tile_colour.cc:260] (error) Resource leak: fp 
[resourceLeak]

--------------------------------------------------------------------------------
cfae464cf3 | gammafunk | 2020-05-03 21:35:43 -0500

Remove special flag from the Sceptre of Torment
This flag prevents monsters from using the weapon and additionally
prevents its use with spectral weapon. There's no particular reason to
disallow monster usage, since although it would harm other hostile
monsters nearby, it's also very effective at tormenting and damaging the
player! Additionally this flag prevented use of this weapon with
spectral weapon even for undead species who would actually want to use
it, due to their torment immunity.

--------------------------------------------------------------------------------
cfa9253478 | advil | 2020-05-03 22:19:15 -0400

Fix a pronoun case
This got moved around in editing and the case didn't follow.

--------------------------------------------------------------------------------
a522a9f31c | advil | 2020-05-03 22:02:33 -0400

Fix description of what happens when attacking summons
Since 3db639d1 it has been, from the user's perspective, impossible to
kill most friendly summons -- they are simply dismissed on an any damage
or other annoyance.  This is particularly important for something like
lightning spire where dismissing the summon may be tactically useful.
So, improve the description in an attempt to make it clearer what will
happen if you anger such a summon.

--------------------------------------------------------------------------------
041635d5d1 | Edgar A. Bering IV | 2020-05-03 17:14:05 -0400

Reduce the delay before an eldritch tentacle enters
The previous delay was set after the old out-of-los attacking
behavior had been accepted and chosen with the old behavior in mind. Now
that the player must stick around for the tentable to work, bringing it
out in 1-2 turns instead of 2-4 is appropriate. This also increases the
threat of Zot-trap opened gateways.

--------------------------------------------------------------------------------
f879fa1a08 | Edgar A. Bering IV | 2020-05-03 17:06:59 -0400

Improve foxfire and ball lightning target acquisition (Lici the Crawler)
Create foxfires and ball lightnings with autofoes, so they come into
existence targeting something the player can see; this is partly for
better player interface and partly to prevent an information leak.

Also prevent them from using their ability if the only target is out of
player los. Again, both for preventing out-of-los attacks (foxfire
already didn't do damage out of los) and information leaks.

--------------------------------------------------------------------------------
27cb841e23 | Edgar A. Bering IV | 2020-05-03 14:49:49 -0400

Prevent Eldritch Tentacles from attacking out of LOS
The summon-los-restriction dates to a9662255 in 2012. The commit message
seems like this is intended to apply to all summons; however, eldritch
tentacles are created with an abjuration duration of 0, so the code
introduced at that time did not apply the restriction to them. Four
years later, in 2016, the restriction was added to FAKE_ABJRATION
allies. This too did not contrain the tentacle, which is timed out with
ENCH_PORTAL_PACIFIED.

In the 8 years since a9662255 this oversight or bug has become an
accepted quirk of the spell and not treated like a bug. It is also a
source of out-of-los attacks of the kind we intentionally prevent. So,
in a long overdue commit this finally constrains malign gateways to not
attacking out of LOS.

--------------------------------------------------------------------------------
5a33db65c3 | Edgar A. Bering IV | 2020-05-03 14:49:49 -0400

Remove targeting from Summon Lightning Spire
SLS creates a tough, immobile ally that the player can manouver around
to gain maximum benefit from. However, the initial placement was
targeted, which provided a way to gain maximum benefit with no cost
other than the invested MP.

Removing the targeted construction is a nerf. It is also in-line with
the guiding ideas behind positional magic: that tactical benefits from
spells should be gained by movement rather than targeting. The strength
of an optimally positioned spire remains the same, but the cost of
obtaining that position now includes some amount of movement instead of
only MP and targeting time.

--------------------------------------------------------------------------------
9f5dfa9815 | Alex Jurkiewicz | 2020-05-03 10:23:06 +0800

Set auto_butcher_max_chunks default to 10

--------------------------------------------------------------------------------
d22f3de0d2 | Alex Jurkiewicz | 2020-05-03 10:23:06 +0800

Change auto_butcher default to always
Previously the default was to only butcher when very hungry. Since
butchering is so low cost, it doesn't really make sense to limit how
much butchering is done by default.

Expert players who use animate dead and auto explore might prefer
another value for this setting, as would players using auto explore but
optimising for turncount(?!) and some other use-cases. But those players
should be able to change this setting in their RC file easily enough.

--------------------------------------------------------------------------------
2618fe8269 | Alex Jurkiewicz | 2020-05-03 10:23:06 +0800

Change explore_auto_rest default to true
For new players, it's a much better experience for this option to be
enabled, to prevent accidentally auto-exploring at low HP into an orc
priest or similar.

Players aiming to maximise score will want to disable this, and
potentially also Ghoul/Troll characters (although it's not a major
issue past the first couple of floors). But on the whole, enabling by
default seems to improve more games.

--------------------------------------------------------------------------------
39f137c8b7 | Edgar A. Bering IV | 2020-05-02 17:56:55 -0400

Prevent inadvertent opening of ebering_ghost_funeral_grove (#1077)
In Swamp this vault blends in and a player might fireball it open not
realizing it's a ghost vault. Monster tornado is highly unlikely to
interact with this vault (but might as a rare Zot trap effect or if
somehow an air elemental comes in), but again preventing inadvertent
opening is important for the depth of this ghost vault.

[ Closes #1077 ]

--------------------------------------------------------------------------------
3419481e97 | Edgar A. Bering IV | 2020-05-02 17:56:55 -0400

Don't pain bond friendly and neutral monsters (#1204)
Pain bond is flavored as an "emotional response to pain", but monsters
with different alignments have no positive feelings for one another.

The edge case is surprising and puts a strange disincentive on fighting
certain uniques which lead to neutral mosnters existing.

[ Close #1204 ]

--------------------------------------------------------------------------------
f7cfe1fbb0 | Edgar A. Bering IV | 2020-05-02 17:56:55 -0400

Allow monsters to place on traps (#1283)
Traps are triggered by moving into them. Forbidding monster placement on
traps dates back to a simulationist restriction on monsters placing on
teleport traps. The restriction that traps only fire in sight of the
player means we've given up on that illusion.

The code comment indicates the restriction was to be limited to teleport
traps, but in actuality applied to all traps, leading to frustrations
with animate dead in spider and unexpected limitations on summoning.

Restricting to a special case just for translocational traps seemed
unnecessarily complicated, so this commit permits placement on all
traps.

[ Closes #1283 ]

--------------------------------------------------------------------------------
31946683ed | sdynet | 2020-05-02 17:56:55 -0400

Improve the Cloud card
The old cloud card produces clouds that damage the enemy. This effect is
more suitable for deck of destruction. The new effect creates black
smoke that blocks vision instead of damaging enemy.

This effect differs from fog scrolls and the tomb card by placing the
clouds at the monsters, not surrounding the player in protection.

[ Committer's note: revised the commit message, and included the
  monster's cell for cloud placement. Closes #1237 ]

--------------------------------------------------------------------------------
d0b4d5de99 | sdynet | 2020-05-02 17:56:55 -0400

Remove summons from the Pain card
Level 2 Pain card's old effect (summon flayed ghost) was an unsuitable
effect on the deck of destruction. Also, the flay effect is just another
torment. New effect: cast torment that does not damage the caster.

[ Committer's note: added messaging, tweaked commit message.
  Closes #1232 ]

--------------------------------------------------------------------------------
9fd4d98c16 | Alex Jurkiewicz | 2020-05-02 17:56:04 -0400

Add recommended jobs and species to -playable-json
More information made available to the outside world.

[ Closes #978 ]

--------------------------------------------------------------------------------
73108e5cc2 | Alex Jurkiewicz | 2020-05-02 17:56:04 -0400

Use the new json_mkstring(string s) function

--------------------------------------------------------------------------------
0acc9a3179 | Alex Jurkiewicz | 2020-05-02 17:56:04 -0400

Add a version of json_mkstring that accepts string
Cut down on some verboseness in calling code.

--------------------------------------------------------------------------------
6329fa547d | Alex Jurkiewicz | 2020-05-02 17:56:04 -0400

Add -branch-json
Dump basic branch information as JSON.

The key use of this is knowing how to refer to branches when talking
about morgues. Depending on the branch, you might describe a place in
the following ways:

* the Temple
* a Sewer
* an Ice Cave
* Pandemonium
* level 1 of the Dungeon
* level 1 of the Depths

Without this data being accessible, figuring out the above
programatically required a hardcoded lookup table, which is duplicated
work and bitrots over time as the Dungeon's layout changes.

--------------------------------------------------------------------------------
7c84a75a33 | Thom Chiovoloni | 2020-05-02 17:56:04 -0400

Add auto_butcher_max_chunks option
If auto_butcher is set, and this option is greater than zero, it
prevents auto-butchering from happening when you have more than
this many chunks in your inventory. Defaults to zero, which is the
current behavior.

[ Committer's note: tweaked and polished, added documentation.
  Closes #628 ]

--------------------------------------------------------------------------------
fd9b2de1c4 | advil | 2020-05-02 17:41:54 -0400

Explicitly install python for catch2 tests

--------------------------------------------------------------------------------
adb52c904e | advil | 2020-05-02 16:58:38 -0400

Fix a directory name

--------------------------------------------------------------------------------
5fcb2d6f64 | advil | 2020-05-02 16:54:51 -0400

Attempt to install python more carefully for actions

--------------------------------------------------------------------------------
17231afb6c | advil | 2020-05-02 16:20:52 -0400

Try a different yaml package name for actions

--------------------------------------------------------------------------------
f370ab6804 | Kyle Rawlins | 2020-05-02 15:53:15 -0400

Issue template tweaks
This issue template already strongly guides away from requesting 

features, and we probably don't really want to blanket discourage 

feature comments anyways, e.g. UI feature requests are actually welcome 

IMO. I think this prohibition came from a time when the issue template

was more freeform (and was copied from similar wording in mantis). If 

people start using github issues to request new gods or the return of

mountain dwarves or whatever, we can add it back in.
--------------------------------------------------------------------------------
4d83e081dd | advil | 2020-05-02 15:25:04 -0400

Let `easy_confirm=all` allow lowercase stat selection (#1349)
This is somewhat more consistent behavior, where I think someone who
hadn't read the (previous) options guide wording carefully would expect
this option to affect any force capitalization prompts in the game, not
just y/n.

I say "somewhat" because it's not entirely clear to me that stat
increases form a natural class with "dangerous" y/n prompts and if I
were introducing this behavior from scratch, I'd probably be inclined to
have it require caps for stat increases only under `easy_confirm=none`.
But, for now keep the status quo since 68cc883211 as the default
behavior.

Resolves #1349.

--------------------------------------------------------------------------------
237ada30ef | advil | 2020-05-02 14:52:00 -0400

Add explicit header for iswalnum (#1372)
I'm not sure under what exact build conditions this is needed, but it
seems to be needed for Fedora and it should be pretty safe to add.
Thanks to @sagitter for diagnosing this.

Resolves #1372

--------------------------------------------------------------------------------
ca36f614e4 | Aidan Holm | 2020-05-03 02:41:21 +0800

Extract coord_def clamp helper function()

--------------------------------------------------------------------------------
f80317f37c | Aidan Holm | 2020-05-03 02:41:21 +0800

Don't exit map view on invalid commands

--------------------------------------------------------------------------------
0b7a428101 | Aidan Holm | 2020-05-03 02:41:21 +0800

Remove now-unused redundant map scrolling state

--------------------------------------------------------------------------------
2fe5a39f5e | Aidan Holm | 2020-05-03 02:41:21 +0800

Split viewport calculation out of show_map()

--------------------------------------------------------------------------------
235c7b5e93 | Aidan Holm | 2020-05-03 02:41:21 +0800

Extract recentre_map_target() function

--------------------------------------------------------------------------------
a6a3aeff32 | Aidan Holm | 2020-05-03 02:41:21 +0800

Simplify arithmetic expressions
No chance of overflow here.

--------------------------------------------------------------------------------
e98a5be7b8 | Aidan Holm | 2020-05-03 02:41:21 +0800

Split command processing out of show_map()
This splits a ~700 line nightmare function roughly in half. The
resulting process_map_command() function is functional and pretty easy
to test, although I haven't added anything too fancy yet. This should
also make the remaining code in show_map more amenable to further
refactoring.

Exposing the relevant stuff to tests required moving quite a bit of
stuff to viewmap.h.

Not all of the state inside show_map() is encapsulated in the
map_view_state; so far I've only included the stuff used by
process_map_command().

--------------------------------------------------------------------------------
529d17c013 | Nikolai Lavsky | 2020-05-02 14:25:37 -0400

Remove a couple of obsolete menu_colour rules

--------------------------------------------------------------------------------
f09614b0b8 | Nikolai Lavsky | 2020-05-02 14:25:37 -0400

Clean up some preferred food-related code
These are leftovers from when potions of blood and more types of
food for carnivores/herbivores existed.

--------------------------------------------------------------------------------
968d922a6d | Aidan Holm | 2020-05-03 01:44:09 +0800

Fix targeters sometimes being too short for Barachi (#11833)
in_bounds() takes an absolute pair of coordinates, but the view code
was passing in player-relative coordinates. This caused ray cells to
be hidden along the top and left edges, where ep.y and ep.x were zero
respectively, and thus fell out of the range of valid map cells when
interpreted as a grid location.

--------------------------------------------------------------------------------
364e023d31 | Aidan Holm | 2020-05-03 00:37:45 +0800

Fix high CPU usage on Windows builds (Goratrix, advil)
The timer callback should return an interval for the next call, but was
erroneously returning 1 (from the SDL_PushEvent call), where instead
it should have just been returning zero, as the callback did prior
to a840853. The return value of 1 caused the callback to be called
repeatedly every 1 millisecond, causing crashes and high CPU usage.

--------------------------------------------------------------------------------
1f02ff80f2 | Aidan Holm | 2020-05-02 23:26:40 +0800

Improve save version mismatch reporting
There's no reason to only show 'major version mismatch' on dev builds,
even though the additional technical information is useful. This commit
merges the two descriptive forms, and additionally adds a
minimum_version() helper function.

--------------------------------------------------------------------------------
4357695705 | Aidan Holm | 2020-05-02 23:26:39 +0800

Add support for minor tags > 255
Previous versions of crawl serialize the minor version as a single byte,
which prevents storing minor versions greater than 255. This commit adds
support for eventually moving to such minor versions: values greater
than 255 are stored as a byte equal to 255, and then the real minor
version as a four-byte big-endian integer.

This commit also consolidates some of the chunk tag reading and writing.
Most of the code for reading/writing various chunks directly accessed
bytes; this commit adds two helper functions for reading and writing
respectively.

This change is being added now because directly adding a four-byte
value, while possible, breaks the save browser, causing new games to not
be displayed at all in older crawl binaries. This change adds immediate
support for the save browser to read files with four-byte integer
minors, even though saves will continue to use a single byte. By the
time we reach minor 256 (perhaps around ~3 years at the current pace),
most binaries in the wild should be newer than this binary.

--------------------------------------------------------------------------------
f770d9629a | Aidan Holm | 2020-05-02 23:26:39 +0800

Remove raise_custom_event()

--------------------------------------------------------------------------------
a8408532f3 | Aidan Holm | 2020-05-02 23:26:39 +0800

Run timer callbacks in main thread
Previously, they were run in a separate thread spawned by SDL, which
makes interacting with other code difficult, since most other code
assumes single-threaded access.

Note that this change queues an SDL event, but only the input loop in
ui.cc actually handles this event by calling the callback. This is fine,
because currently the only use of this API is to show tooltips after
a delay, and the callback function for that worked by queueing an SDL
event, so the callback now does nothing and the actual function is
performed as a side effect.

This may seem like a step backwards for code clarity, but it's a
necessary step to removing the input loop in tilesdl.

This was previously reverted at 431bb856fd. I'm adding it now after
manual testing with both a crosscompile in Wine and in a Windows VM
with MSYS2, both with mingw-w64-1686. Neither showed any lag or crashes.

--------------------------------------------------------------------------------
c1fa99a940 | Aidan Holm | 2020-05-02 23:26:39 +0800

Clean up describe_item() code
It's no longer possible to memorize anything from the describe item UI.

--------------------------------------------------------------------------------
48f1b6f60f | Aidan Holm | 2020-05-02 23:26:39 +0800

Further break externs.h apart

--------------------------------------------------------------------------------
30cafcbba1 | Aidan Holm | 2020-05-02 23:26:39 +0800

Move map_markers struct to mapmark.h

--------------------------------------------------------------------------------
d6d150f7a2 | Aidan Holm | 2020-05-02 23:26:39 +0800

Move shop_struct to shopping.h

--------------------------------------------------------------------------------
4c921ade24 | Goratrix | 2020-05-02 21:47:31 +0800

Tweak phial of floods description (Flugkiller)
Change description to better indicate that only monsters hit by the
initial wave will be affected by silence, not monsters that walk into
the water later.

Also I noticed the acrobat amulet description having a line too long,
so fixing that too.

--------------------------------------------------------------------------------
62861fb195 | Edgar A. Bering IV | 2020-05-01 21:32:49 -0400

Expose "can_go_frenzy" to clua

--------------------------------------------------------------------------------
237153e625 | Edgar A. Bering IV | 2020-05-01 21:27:03 -0400

Reveal frenzy immunity in the datura targeter (12197)

--------------------------------------------------------------------------------
084fcd9360 | Edgar A. Bering IV | 2020-05-01 21:10:58 -0400

Remove a testing comment (gammafunk)

--------------------------------------------------------------------------------
568ea92cc3 | Edgar A. Bering IV | 2020-05-01 21:08:32 -0400

Display !lignification AC in the description (12224)
Tree form gives a fixed AC bonus per XL, using the functions implemented
to display armour changes in armour descriptions this commit displays
the player's base AC after quaffing the potion.

--------------------------------------------------------------------------------
d7461d2276 | Edgar A. Bering IV | 2020-05-01 13:28:06 -0400

Fix typos in changelog (pblur, Goratrix, Flugkiller)

--------------------------------------------------------------------------------
ac0430677b | Edgar A. Bering IV | 2020-05-01 10:10:27 -0400

Update the changelog

--------------------------------------------------------------------------------
76b13fe646 | Aidan Holm | 2020-05-01 22:01:45 +0800

Add coord_def ostream operator
This allows coord_def instances to be converted to a string, which is
handy in catch2 test assert messages.

--------------------------------------------------------------------------------
ff86aee0ce | Aidan Holm | 2020-05-01 22:01:45 +0800

Extract search path generation from map code
Probably a good candidate for a radius_iterator or one of those things.

--------------------------------------------------------------------------------
e549c88646 | Aidan Holm | 2020-05-01 22:01:45 +0800

Remove unused show_map() allow_esc parameter

--------------------------------------------------------------------------------
9575aa3b0e | Aidan Holm | 2020-05-01 22:01:45 +0800

Revert "Fix map not panning with cursor"
Reverted due to this introducing a crash when adjusting the map zoom.

This reverts commit 3f1e787b38e5a3a4a3bc7aab67866ffdce85acfd.

--------------------------------------------------------------------------------
497542d149 | Goratrix | 2020-05-01 20:39:44 +0800

Enable deep elf elementalist tile animation
When the new tiles from roctavian were added in 16654a8,
the elementalist cycle animation wasn't added, due to wielded weapon
not displaying correctly.

Aidanh found the reason, it's that all the variant tiles need to be
listed in get_weapon_offset in tilemcache.cc.

This commit enables the animation, and also reuploads the tiles,
because only 3 out of the 4 originally submitted tiles were uploaded
in the previous commit, and they need to be in the correct sequence.

I tested it in a local windows tiles build only, working fine here.

--------------------------------------------------------------------------------
6bf7129739 | Aidan Holm | 2020-05-01 19:36:21 +0800

Fix Leda's showing muddy lava (#11115)
Should this be feat_is_solid()?

--------------------------------------------------------------------------------
fe5977ef6f | Aidan Holm | 2020-05-01 18:54:38 +0800

Fix map cell corruption on unmarshalling (#12218)
When marshalling flags, the unsigned flags are implicitly cast to a
signed integer of the size being marshalled, but during unmarshalling no
cast was performed, leading to values with the high bit set undergoing
sign extension. This resulted in visual artefacts.

I've added casts to the marshalling code, not because they are
necessary, but because I don't like the implicit behaviour and want to
make it clear to the reader that this is deliberate.

--------------------------------------------------------------------------------
3f1e787b38 | Aidan Holm | 2020-05-01 16:49:46 +0800

Fix map not panning with cursor

--------------------------------------------------------------------------------
adf69d5009 | Edgar A. Bering IV | 2020-05-01 02:28:52 -0400

Update the credits

--------------------------------------------------------------------------------
eaba134f46 | Edgar A. Bering IV | 2020-05-01 01:23:50 -0400

Prevent attitude change for ancestors and demonic guardians
Both of these allies come from unique mechanics and interact poorly with
attitude changes. The remaining two possible sources of attitude changes
for these monsters are: enslavement (from a hostile monster wand) and
frenzy (player discord or monster datura dart). This commit prevents
them from changing attitude alltogether.

Incorporates and closes #1374.

--------------------------------------------------------------------------------
6492fb5f8e | Edgar A. Bering IV | 2020-04-30 23:48:59 -0400

Permit inner flame on summons
Commit 3fe85ef3 allowed immolation scrolls to affect summons; the
previous commit removed a degenerate interaction with teleport other.

So that the two effects are consistent, this allows casting inner flame
on summons. If "ready" access to suicide bombers becomes an issue, inner
flame can be made to annoy allies instead. However, this was already
possible with skeletons and sticks to snakes and outside of "snakebombs"
created with immolation scrolls players are not going around casting
inner flame on allies in place of using fireball.

--------------------------------------------------------------------------------
799ed1240d | Edgar A. Bering IV | 2020-04-30 23:01:49 -0400

Make allies annoyed by translocations other than Recall
Lesser beckoning working on allies offers opportunities for tedious ally
micromanagement of a kind we'd rather not allow; the targeter already
doesn't think the spell applies to allies, but if it was used on them it
would work without angering them. This change is partly to remove this
micromanagement, and partly for consistency with the change to teleport
other.

Teleport other on allies could be used as a tedious combination with
zombies or summons and inner flame to seed a level with bombs from the
safety of the stairs. Awake hostile monsters would engage the summon or
ally and suffer explosion damage, possibly resulting in a kill.

--------------------------------------------------------------------------------
3fe85ef339 | Alex Jurkiewicz | 2020-04-30 22:11:17 -0400

Let scroll of immolation affect summons
Since this scroll was added in 388d670c250b25dcf88b5f54042bb083f48a9a51,
the effect has been limited to non-summoned creatures. It's hard to be
exactly sure why.

This limitation is a little non-intuitive, and for a limited resource
like scrolls, probably unnecessary. The scrolls are situational enough
as-is.

--------------------------------------------------------------------------------
e280b876b2 | Implojin | 2020-04-30 22:03:26 -0400

Expose player::get_noise_perception() through clua.
This commit adds a clua bind for you.noise_perception().

This information has been available to players visually through the noise bar,
but it wasn't exposed through clua. Noise information can be helpful for
scripted decisions re: resting and retreating, so here's a bind for it.

--------------------------------------------------------------------------------
fe7ed1d377 | Edgar A. Bering IV | 2020-04-30 21:32:22 -0400

Further miscast simplifications
Scaling miscast damage by how badly the roll missed made the damage
distribution complicated, and as a result difficult to communicate. The
long tail of damage meant that in rare cases miscasts could be
significanlty more damaging than the status light indicated.

This commit makes miscast damage a function of the raw_spell_fail:
additional miscast effects scale with the chance of failure alone. The
contamination still scales with the severity of the roll, as does the
threshold before additional miscast effects kick in. It also tweaks the
miscast damage numbers so that the additional effect does reasonable
damage at "max fail", essentially cutting off the old long tail.
Finally, the description exchanges expected miscast damage for maximum
miscast damage.

--------------------------------------------------------------------------------
05d4e06a41 | Edgar A. Bering IV | 2020-04-29 18:38:25 -0400

Revert "Mark Leda's as no_ghost"
This reverts commit d392131cc75f18731ec8fa803f37bb1b39863f0e.

Now that it can be used while flying again ghosts can keep it.

--------------------------------------------------------------------------------
437a441e8f | Edgar A. Bering IV | 2020-04-29 18:35:04 -0400

Apply Leda's movement penalty regardless of flight status (kate-)
The previous string of double-reverts restores permitting flight to
continue while using Leda's. This commit permits flight by the caster
and applies the movement penalty to the caster regardless of flight
status.

This removes the edge cases around Leda's interaction with Dragon Form
and Tornado, without also allowing the player to immediately cancel
Leda's to escape the movement penalty using abundant sources of flight.

--------------------------------------------------------------------------------
873053edc4 | Edgar A. Bering IV | 2020-04-29 18:13:31 -0400

Revert "Revert "Allow monsters to cast Leda's while flying and remove dead 
code""
This reverts commit f1e2f1be51d246bff6514627603ff4b84b6e4bf8.

--------------------------------------------------------------------------------
f3960b09ed | Edgar A. Bering IV | 2020-04-29 18:09:27 -0400

Revert "Revert "Allow Leda's to persist while flying""
This reverts commit e14c9e38dd7b67ed3a840f6e197e669a17d814f8.

--------------------------------------------------------------------------------
d392131cc7 | Edgar A. Bering IV | 2020-04-29 17:26:04 -0400

Mark Leda's as no_ghost
Ghosts are always flying, so can't use the spell.

--------------------------------------------------------------------------------
f1e2f1be51 | Edgar A. Bering IV | 2020-04-29 16:57:22 -0400

Revert "Allow monsters to cast Leda's while flying and remove dead code"
This reverts commit fa5a36fad76091dd4c68280d61ed62f6e8007004.

The dead code is resurrected because it is again relevant to enforce the
flight restrictions on Leda's.

--------------------------------------------------------------------------------
e14c9e38dd | Edgar A. Bering IV | 2020-04-29 16:53:58 -0400

Revert "Allow Leda's to persist while flying"
This reverts commit 9cef9ebf1155240c094acc5bb7e38d1910827b7c.

Flying cancels penalties from Leda's; now that the movement penalty is
restored providing an easy out when there are ample sources of flight
(some permanent) is not good.

--------------------------------------------------------------------------------
b679d6390d | Edgar A. Bering IV | 2020-04-29 16:24:51 -0400

Partially revert "Buff Leda's Liquefication" (elliptic)
This partially reverts commit bb9abfce8d09fc878997f2ce95cdf4c4463e56a6.

Removing the movement penalty as well as the melee penalty moved Leda's
into the category of "obvious always cast buff spells". As mentioned in
the reverted commit message, if the buff went to far the movement
penalty could be restored. This partial revert restores the movement
penalty (without the melee attack penalty).

--------------------------------------------------------------------------------
340c9e8194 | Edgar A. Bering IV | 2020-04-28 18:15:07 -0400

Adjust monster behavior for working with ranged allies
Commit 6f887751 (in 2008 by jpeg) added behavior to have monsters of
animal intelligence or higher spill
out of corridors when attacking the player if followed by other
monsters; additionally it made intelligent monsters (at the time normal
or higher, now just human) check for an aligned monster with a ranged
attack further back and move out of the way. The example from the commit
message:

    ####.
    .rgo@
    ####.

    will within two turns change to

    ####g
    ...r@
    ####o

In that logic this movement only triggered if walls were in the way,
even though opening up lines of fire for ranged attackers is a good
thing to do in the absence of a corridor.

This commit changes the behavior to only check the adjacent following
monnster in the corridor situation, and check for ranged allies
regardless of the presence of walls in the two spaces marked with ?

    ###?.
    c..o@
    ###?.

    has a chance of changing to

    ###?.
    c...@
    ###?o

if the orc moves before the centaur, regardless of the features at the
?. The decision to spill out was given a coinflip later in the
development history (hard to git blame because it moved from monstuff.cc
to mon-act.cc), and the choice of up or down is also randomized.

In the monster intelligence simplification of d63ab3c5 (in 2015 by
PleasingFungus) the intelligence component of the ranged ally check was
removed, but not mentioned in the commit message as an intended effect.
This is restored, so that animal intelligence monsters can be used for
"cover" of sorts.

Finally, this commit has monsters treat the player as a "ranged
attacking ally" for the purposes of this check. It's not a sophisticated
"stay out of my line of fire" behavior requested by some players and
might negatively effect players who use their Hepliaklquana ancestor to
block while polearming. A more sophisticated behavior could be added,
but without adding an ally command (ugh) or some complicated guessing
about player behavior (also ugh) it's not clear what the right move is.

--------------------------------------------------------------------------------
f695395b5c | advil | 2020-04-26 12:49:02 -0400

Pointer checks for lua userdata objects
This systematically adds checks to ensure that when userdata wraps a c++
object in some way via pointer, the pointer is not nullptr. On the dlua
side I'm just doing this for the sake of consistency and good practice,
but on the clua side this aims to prevent an attacker from using calls
to the `__gc` metamethod to get crashes on demand.

I kind of hate all these macros, it could probably use a refactoring to
make it less brittle.

--------------------------------------------------------------------------------
39757dd64f | advil | 2020-04-26 12:49:02 -0400

Handle another potential multiple delete case
The setup is slightly different but the basic problem is the same: the
function `_delete_wrapped_item` is bound to the metamethod __gc on
wrapped items that are available in clua, and __gc can be freely called
from lua-land.

--------------------------------------------------------------------------------
7f8d8a8652 | advil | 2020-04-26 12:49:02 -0400

Guard against repeated calls to lua_object_gc (ruderubik)
This call is bound to the metamethod __gc, which can be called
arbitrarily from lua code (though it is always automatically called as a
finalizer before lua collects the memory allocated by lua_newuserdata).
This is a minimal change so that `delete` can't be called multiple times
on the same pointer. (All of this code is a bit of a mess.)

--------------------------------------------------------------------------------
60a0bcd8b5 | Kyle Rawlins | 2020-04-25 22:17:38 -0400

Update SECURITY.md

--------------------------------------------------------------------------------
25f8dcc119 | Kyle Rawlins | 2020-04-25 20:32:46 -0400

Create SECURITY.md
I clicked on github buttons until it suggested I add this file.
--------------------------------------------------------------------------------
681bda5bb4 | Aidan Holm | 2020-04-26 01:05:22 +0800

Add stub entries for removed spells
This change lets spell_name() work again, which is important because
it's used to show character action counts. Since games can span
different versions, action counts for spells can still show removed
spells' names.

--------------------------------------------------------------------------------
c06b4bd658 | advil | 2020-04-25 11:16:38 -0400

Refactor frenzy to use a temporary attitude change
The immediate target of this is interactions between discord and divine
companions. `monster::is_divine_companion` checks permanent attitude for
ATT_FRIENDLY, so under the previous implementation, while a divine
companion was frenzied this function returned false. This could lead to
all sorts of weird behavior, for example frenzied hepl ancestors that
died would not be properly removed from the companions list and so would
never be restored. Moreover, the ancestor cloning bug reported in
https://crawl.develz.org/mantis/view.php?id=10753 was still present in
trunk; this was supposed to be fixed in 0e8e6b5e25fb but this fix
appears to assume that frenzy does not use a permanent attitude change,
so I'm not sure how it could have worked. I've also seen unlinked item
errors on a frenzied ancestor dying (though this has proven difficult to
replicate) that may also be caused by this. I expect this will also
remove some potential issues for beogh companions (and maybe yred
companions if any of them can be frenzied).

This fix doesn't explicitly repair a save file with a broken ancestor,
because I'm not sure if there are any out there right now. (One was
reported in 
https://www.reddit.com/r/dcss/comments/g6zfhu/lost_my_hep_ancestor_to_the_lvl_he
x_spell_discord/
but that game is now complete.) It's possible the basic compat fixup
might handle this case though? Untested.

--------------------------------------------------------------------------------
1f535e2ddc | Aidan Holm | 2020-04-25 23:12:42 +0800

Reindent code

--------------------------------------------------------------------------------
97ffa46023 | Aidan Holm | 2020-04-25 23:12:42 +0800

Add test cases for unmarshallSpells()

--------------------------------------------------------------------------------
4838036f53 | Aidan Holm | 2020-04-25 23:12:42 +0800

Remove dead spell code
All of this code is no longer needed now that removed spells are removed
from saves when the game is loaded.

--------------------------------------------------------------------------------
3557bf33da | Aidan Holm | 2020-04-25 23:12:42 +0800

Remove player's removed spells on load
This commit filters the player's spells on load, from both their
memorized spells and from the spell library. This should make it easier
to remove dead code for these spells entirely.

--------------------------------------------------------------------------------
9d4679374f | Aidan Holm | 2020-04-25 23:12:42 +0800

Extract unmarshall_player_spells() function

--------------------------------------------------------------------------------
5c9e5b7a16 | Aidan Holm | 2020-04-25 23:12:42 +0800

Remove removed spells from monster spellsets
This also allowed improving the fixup code for pre-flags spells, which
had a bunch of code related to checking for SPELL_NO_SPELL. Since we
filter these out first, this checking code can be removed.

--------------------------------------------------------------------------------
aa01332a36 | Aidan Holm | 2020-04-25 23:12:42 +0800

Remove removed spells from Vehumet's gifts on load
This is ugly, but of course sets don't support remove_if()...

--------------------------------------------------------------------------------
3e2dadc450 | Aidan Holm | 2020-04-25 23:12:42 +0800

Add removed spells to removed_spells() list.
Huge numbers of spells were missing. Not sure how badly this will
break...

--------------------------------------------------------------------------------
970948ccd0 | Aidan Holm | 2020-04-25 23:12:42 +0800

Extract unmarshall_vehumet_spells() function
This CL also adds some rudimentary tests.

--------------------------------------------------------------------------------
e9745dcf7e | Aidan Holm | 2020-04-25 23:12:42 +0800

Move SUMMON_SWARM out of removed spells
It's still in use in the Fedhas sprint.

--------------------------------------------------------------------------------
6944ee31a2 | gammafunk | 2020-04-24 19:02:18 -0500

Fix two arrival vaults (Juliwen)
The change in 3ae22969 sometimes erroneously places three additional
random altars near the starting area instead of stone walls, since a
shuffle is applied to the stone wall glyph. Remove this shuffle, since
it only made the vault less interesting by having it place no random
altar in the island area.

Additionally remove a shuffle that inexplicably sometimes removed the
arrival staircase, making the player arrive outside of the vault
entirely at an entrance point randomly chosen by the level generator.

--------------------------------------------------------------------------------
81a31cfd23 | Aidan Holm | 2020-04-24 03:05:43 +0800

Fix crash on opening known-items menu
Previous refactorings added code that aborted when invalid potion values
were used, including POT_NUM_POTIONS. Unfortunately, this is used by the
known-items menu to encode 'unknown potions', causing a crash.

--------------------------------------------------------------------------------
fee0bf60c5 | Aidan Holm | 2020-04-24 01:52:33 +0800

Remove an unused parameter

--------------------------------------------------------------------------------
9ecea16cc4 | Aidan Holm | 2020-04-24 01:52:33 +0800

Remove more old potion code

--------------------------------------------------------------------------------
2ddb0c8792 | Aidan Holm | 2020-04-24 01:52:33 +0800

Remove is_blood_potion()

--------------------------------------------------------------------------------
ffd75422ce | Aidan Holm | 2020-04-24 01:52:33 +0800

Remove code for old potion types
This commit adds an CASE_REMOVED_POTIONS macro, intended to be used in
switch statements, that will die() with an error for any removed potion
type. It then improves the tags.cc conversion of old potions; now, *all*
removed potions are converted, with a runtime crash on load guarding
against forgetting to update this.

This means that no saves can have these potions in the game. We follow
up by removing reams of remaining cruft that's no longer necessary as a
result.

--------------------------------------------------------------------------------
13a0117a0c | Aidan Holm | 2020-04-24 01:10:04 +0800

Add all_item_subtypes()
This commit replaces explicit iteration over an enumeration with the
use of a new helper function that encapsulates the intended behaviour,
making call sites more readable and less likely to break. The function
implementation is in a header file, which should allow the vector return
value to be optimized away.

This change permits refactorings removing old items from the game that
additionally add runtime checks for old items.

--------------------------------------------------------------------------------
827379bd5b | Aidan Holm | 2020-04-24 01:10:04 +0800

Don't mark elven and mossy runes as removed
They're *not* removed; sprints can (and do) still spawn them.

--------------------------------------------------------------------------------
b37b1c29c3 | gammafunk | 2020-04-23 01:47:09 -0500

Fix Trog weapon gifting (elliptic)
Trog weapon gifting was partially broken by 6d7e32a81, which
accidentally removed the two successful random rolls needed if piety was
at the 5* threshold required. This lead to excessive Trog gifts as well
as it being impossible to actually reach 6*, since the gift timeout
would consume most piety. This bug did not affect Okawaru weapon gifts,
since the rolls were correctly applied.

This code block was structured in a confusing way to begin with, so I've
both fixed and refactored it to make the logic clearer.

--------------------------------------------------------------------------------
55863b0b92 | Kate | 2020-04-21 19:57:14 +0100

Don't crash when trying to describe potions
Broken in 00990ba764544.

--------------------------------------------------------------------------------
e42328e28c | Alex Jurkiewicz | 2020-04-22 00:22:37 +0800

Add CI jobs to test TAG_MAJOR_VERSION 35
Test with FULLDEBUG in console, tiles, and webtiles compilation modes.

--------------------------------------------------------------------------------
00990ba764 | Alex Jurkiewicz | 2020-04-22 00:22:37 +0800

Fix compilation with TAG_MAJOR_VERSION 35
Several latent issues have crept into the codebase over time, this
commit fixes all of them in C++ files.

There are additional changes that have to be made to text files, see
util/tag-35-upgrade.py for a solution for those.

--------------------------------------------------------------------------------
239cf252b2 | Alex Jurkiewicz | 2020-04-22 00:22:37 +0800

Add util/tag-35-upgrade.py
This script automates the changes required to non-C++ files for a
TAG_MAJOR_VERSION 35 bump. It's the first step in automatically testing
this upgrade process in CI, which is required to stop errors creeping in
over time.

--------------------------------------------------------------------------------
b28a33faff | Alex Jurkiewicz | 2020-04-21 19:24:05 +1000

Standardise text file TAG_MAJOR_VERSION comments
This will allow us to upgrade these files with a script, rather than by
hand.

--------------------------------------------------------------------------------
4e6a552925 | Aidan Holm | 2020-04-21 00:01:17 +0800

Fix missing tile in popup description

--------------------------------------------------------------------------------
a6db7940a5 | Goratrix | 2020-04-20 23:45:14 +0800

Add unused unidentified mechanical trap tile (#12170)
This tile is the current Pressure Plate tile overlaid with the
questionmark taken from the unknown portal tile.

--------------------------------------------------------------------------------
dbf7afbd95 | Emily | 2020-04-20 22:00:31 +0800

Drop support for ANCIENT_SQLITE
sqlite3_open_v2 was added in 2007 (https://www.sqlite.org/34to35.html);
anyone trying to build Crawl with libraries that ancient probably has
other problems, and should just use BUILD_SQLITE with the submodule.

--------------------------------------------------------------------------------
c0736c7dca | Emily | 2020-04-20 22:00:31 +0800

Use pkg-config for SQLite
SQLite ships an upstream sqlite3.pc file these days, and Linux
distributions have included one for a long time now. This allows us to
remove the hardcoded FreeBSD logic and build on more systems out of the box.

Systems that don't have pkg-config, or that don't ship sqlite3.pc, will
cleanly fall back to building the bundled SQLite submodule as usual.

--------------------------------------------------------------------------------
30a70f5460 | Aidan Holm | 2020-04-20 20:05:52 +0800

Split teleport trap feature in two (#12170)
This allows looking up permanent teleport traps in lookup-help, and
also fixes permanent teleport traps being shown as regular teleport
traps after magic-mapping.

--------------------------------------------------------------------------------
c5703f2676 | Aidan Holm | 2020-04-20 20:05:31 +0800

Add individual feature types for mechanical traps (#12170)
This commit creates individual feature types for each mechanical trap
type. This fixes incorrect tiles being shown after magic-mapping, and
also enables showing descriptions in lookup-help for each trap type.
This is pretty important because the various mechanical trap types are
pretty different, e.g. net traps can trap you for several turns.

There's currently still a shared feature for teleport and permanent
teleport traps. I'll address that in a separate commit.

--------------------------------------------------------------------------------
e86166c523 | Aidan Holm | 2020-04-20 20:05:31 +0800

Rename trap category -> trap feature

--------------------------------------------------------------------------------
6581751b11 | riverfiend | 2020-04-20 00:38:20 -0400

Add the possibility of one more Xom demon
At low XL, it's difficult for Xom to effectively kill a waitscumming mummy or 
vampire. This change is largely washed out at larger XLs, but should 
effectively create more nasty monsters to drop on low-level waitscummers.
--------------------------------------------------------------------------------
e3a6afd762 | Peter Gerlagh | 2020-04-20 00:27:01 -0400

Remove autotravel water disincentive for merfolk
Formerly, merfolk pathfinding would count a tile of water as having
taking 2 turns to cross so that merfolk would avoid traveling through
water because 'their boots would meld'. This behavior interrupted
travel, but that travel interrupt was fixed in 771548fc26.

This commit makes merfolk pathfinding count a tile of water as 1 turn.

[ Committer's note: Closes #1343, reworded commit message to refer to
  the autotravel fix. ]

--------------------------------------------------------------------------------
0199dc3540 | Skrybe | 2020-04-19 23:59:56 -0400

Update layout_cellular.des

--------------------------------------------------------------------------------
c0ddf3c23e | Edgar A. Bering IV | 2020-04-19 21:55:32 -0400

Don't crash when skill target set to 27

--------------------------------------------------------------------------------
2ff8117762 | Alex Jurkiewicz | 2020-04-19 18:46:52 -0400

ci: Install PyYAML for Python 3 on macOS
The CI runner environment comes with Python 3 and pip3 installed by
default:
https://github.com/actions/virtual-environments/blob/master/images/macos/macos-1
0.15-Readme.md

--------------------------------------------------------------------------------
eca56f19ef | Alex Jurkiewicz | 2020-04-19 18:46:52 -0400

Make species-gen.py work with Python 2 & 3
Rather than requiring Python 2 installed as 'python' (which is no longer
the case on some systems, like MSYS and Alpine Linux).

The Makefile will auto-detect python3 and preferentially use it, falling
back to python otherwise. (Thanks ebering for this suggestion.)

The docs have been updated to specify Python 3 is required -- it seems
simpler than explaining all this and it should be the default version
assumed for "Python" going forward.

--------------------------------------------------------------------------------
270f1c643a | nirrattner | 2020-04-19 18:39:17 -0400

Prevent overtraining skill targets
Currently, skill targets are not always respected when a single
experience gain is large enough to push the the skill level to and
beyond a skill target. This is fairly easy to reproduce when starting a
new game and training only one skill with a skill target of 0.1 -- after
the first experience gain, the skill will likely jump beyond 0.1
(perhaps 0.2, 0.3, etc. depending on the gain) before turning off.

This change will better ensure that skill targets are respected and not
overtrained. It's a minor change with an arguably negligible impact on
gameplay, but some players, like myself, prefer to train to "round"
numbers ending in .0 or .5 and are put off when the skills are trained
beyond the set targets.

Potions of Experience will ignore skill targets as in the current
behavior. The interaction with the Experience skill menu and training is
very cross-loaded code wise: training is called by the skill menu in
this case, with very strange results if the skill menu prompt is
re-invoked. Correctly handling training targets with !exp in this exact
fashion will require a more extensive set of changes that don't seem
worth it.

[ Committer's note: Closes #1198, Squashed and rebased, tweaked
  interaction with potions of experience ]

--------------------------------------------------------------------------------
ab441bd002 | Alex Jurkiewicz | 2020-04-20 00:51:10 +0800

Always save macros
We don't need to ask the player this. It's a simpler mental model for
macro changes to be always saved, rather than sometimes asking the
player (during normal session end, but not eg webtiles tab close /
dgamelaunch hangup).

--------------------------------------------------------------------------------
5fea3be289 | Umer Shaikh | 2020-04-19 11:39:37 -0400

Save compatibility for changes to regen items
[ Committer's note: Closes #1291, squashed and reworded some messages ]

--------------------------------------------------------------------------------
4828e68a6e | Umer Shaikh | 2020-04-19 11:37:56 -0400

Make TLA and regen artefacts activate after maxing hp
Currently it makes sense to swap to troll leather armour or armour with
the regen+ artefact property when resting, provided one is going to rest
long enough and can do so in a safe enough position. This is because the
regen allows one to rest faster, helping the player deal with the clocks
in the game (piety decay, nutrition, portal timers, score). Although in
practice this seems to mostly be the province of speed-runners, it's
often also a tedious-but-optimal tactic for normal play.

This commit makes that tactic unavailable by extending the current
disincentive for swapping amulets of regeneration to regen armour.
Regeneration items now only affect regen rate after the player has
healed to max hp with the item on. Thus benefiting from regen requires a
long-term equipment choice.

Deactivating a regen item on unequip is moved to an unequip_effect
instead of handling it in player_reacts, on the principle that status
changes that happen due to unequiping an item should probably happen
there.

This commit makes it so melding a regen item stops the regen bonus, but
does not deactivate the item, i.e., you don't have to rest up to full to
get the effect back after untransforming.

[ Committer's note: added artefact names to messaging, refactored a
  switch statement to use comma_separated_line from stringutil instead ]

--------------------------------------------------------------------------------
0ddb669d6f | Umer Shaikh | 2020-04-19 10:36:55 -0400

Refactor some regen code
Factor out the logic for activating a prop if some condition is met,
which was repeated several times for activating regeneration, mana
regeneration, and acrobat amulets when hp or mp maxes out.

This function isn't used anywhere else, and that seems unlikely to
change soon, so it's now a static function in player-reacts.cc.

--------------------------------------------------------------------------------
2d4e2cfd7f | advil | 2020-04-19 09:59:23 -0400

Simplify mac zip naming
I can't think of a good reason to have a different naming scheme
depending on whether it is a release or not.

--------------------------------------------------------------------------------
d808e8321f | advil | 2020-04-19 09:59:23 -0400

A few more windows build cleanups (Goratrix)
Also, clean up the use of `rm` a bit, add back in the overall zips
target (n.b. I haven't tested this, but it doesn't appear that make
clean will delete these.)

The windows build process here looks like it is in need of a thorough
overhaul, I have to say. For example, why are these targets invoking
`make clean` instead of taking `clean` as preconditions? Why isn't the
cross-compiling check a precondition? etc.

--------------------------------------------------------------------------------
363036d654 | Goratrix | 2020-04-19 09:59:23 -0400

WIndows installer package build cleanup
1. The installer package build (unlike the zip build) currently
doesn't delete the build-win folder after it finishes
and the folder needs to be deleted manually.
There may be reason that I'm missing, but I can't think of any,
as the zip build deletes the folder, only the installer build doesn't.

2. The final win packages are actually named 'stone_soup...',
so update gitignore accordingly.

--------------------------------------------------------------------------------
03277fe0e5 | Alex Jurkiewicz | 2020-04-19 09:59:23 -0400

Remove unnecessary continuation

--------------------------------------------------------------------------------
449611fb78 | Alex Jurkiewicz | 2020-04-19 09:59:23 -0400

Simplify CI version detection
actions/checkout only gets the most recent commit by default, which
means DCSS's version detection system (based on most recent tag) doesn't
work. We were faking the release version for non-release builds and
loading the version from a special variable for release builds, which
was a little complex. It's simpler to get the repo's full history and
rely on our existing version detection logic.

--------------------------------------------------------------------------------
520075d945 | Alex Jurkiewicz | 2020-04-19 09:59:23 -0400

Update release process
Re-organise the process from:

1. Tag locally
2. Build and test locally
3. Push the tag
4. Upload builds

To:

1. Tag and release on GitHub
2. Builds are created automatically

--------------------------------------------------------------------------------
d17ee4b226 | Alex Jurkiewicz | 2020-04-19 09:59:23 -0400

Upload release builds to GitHub releases
Whenever a GitHub release is created, GitHub Actions will add the
following builds:

* Windows (32-bit) console & tiles zips, plus combined install
* macOS console & tiles apps

Also make the following changes:

* Disable some unnecessary Clang builds
* Rename windows package Makefile targets
* Use advzip on macOS packages

--------------------------------------------------------------------------------
50c693f418 | riverfiend | 2020-04-18 19:14:10 -0500

New Hep+Dith shared overflow altar
Committer's Note: Cleaned up glyph usage, simplified some statements,
and tweaked wall tile placement to be a bit more symmetrical.

Closes #1352.

--------------------------------------------------------------------------------
58bd18402a | Edgar A. Bering IV | 2020-04-18 17:28:10 -0400

Prevent allies from blinking near traps (Pekkekke)
Since most traps target the player and the remaining remove the ally
from the player's presence, make allied monsters avoid blink activities
when traps are in sight. This includes blinking other monsters; making a
blanket exception is easier than conditioning on trap type.

--------------------------------------------------------------------------------
0be837aa77 | Kate | 2020-04-18 20:23:08 +0100

Don't allow casting Tukima's Dance under Sac Love

--------------------------------------------------------------------------------
ab8e1e778f | Nikolai Lavsky | 2020-04-18 13:05:14 -0400

Tweak lava pools in nicolae_crawler_farm
Currently, this vault has a few demonic crawlers trapped behind lava,
because they can no longer cling to walls.

--------------------------------------------------------------------------------
c6e39c492d | Goratrix | 2020-04-18 12:54:38 -0400

Adjust Vehumet gift range
Based on discussion in Mantis ticket 12221, this tweaks the range
of Vehumet spell gifts to try to avoid repeated offers at gifts
number 10, 11 and 12.

Extending the range from 6-7 to 5-7 is a small nerf, however
level 5 contains desirable spells (Fireball, LRD). To compensate,
range of gift 12 (the last one before the final) is extended
from 6-7 to 6-8.

--------------------------------------------------------------------------------
3ae22969f6 | Byrel Mitchell | 2020-04-18 12:47:43 -0400

Add room for tactics to arrival vaults in small.des
evilmike_arrival_hilbert_curve: Pretty much regardless of which entrance
you have, you're stuck with a single exit. There's no handy way of
adding pillars or additional exits without messing with the hilbert
curve theme, so I just added some escape hatches.

evilmike_arrival_rings: Each ring has a single exit, and the internal
path is split so you can't use it as an pillars. I added a second door
to the outside.

minmay_arrival_stair_chambers: This vault already placed statues in
place of the unused entrances, which served as pillars. However, this
was pretty spoilery since they're in enclosed rooms. I added windows to
the rooms so a player unfamiliar with the vault can know they have that
option.

minmay_arrival_stone_box: This vault has a stone box with a pillar
inside, so if the surrounding dungeon gen is particularly hostile you
can retreat into there. However, it was not no-monster-gen (so you could
get trapped in there) and there was no way for an unspoiled player to
know there was useful terrain in there. I added windows and
no_monster_gen to the corridor in the box.

minmay_arrival_statue_studded: This vault was a single exit box. I added
two side-exits.

erik_arrival_orb_chamber: This vault had three problems: it was spoilery
(placing a big horde of rats inside), had potentially uninteractive
starting terrain depending on dungeon layout, and deviated from the
layout it's supposed to evoke in order to keep the rats from being
zapped on dungeon entrance. I reworked it so that you start in the orb
chamber, and the rats are replaced with orb guardian statues (which your
neophyte adventurer only knows as 'hideous four-limbed creatures'.) I
also modified the terrain to more exactly match the hall of zot orb
chamber. Selecting orb guardian statues required adding a synonym in
dc-feat.txt

dpeg_arrival_lava/water_altar: These vaults potentially placed an altar
over a deep water/lava pool from the player, with a dice roll deciding
whether the player could see it without flight. I guaranteed that it's
in sight of an accessible tile to avoid rewarding spoiled players, and
added a small pillar around the start to allow for tactics.

dpeg_arrival_chase: This vault places 5 kobolds around some stones
across deep water from the player, and some other monster across deep
water on the other side of the player. The gimmick here doesn't work any
more; all the placed monsters are zapped because they're in LoS. It also
wouldn't work because they wouldn't pick up the stones, and I'm not sure
it's a really good arrival vault concept in the first place (can 4
kobolds with stones kill a NaWr before it gets out of the vault? Or a
bad NaWn roll? etc.) So I removed it.

dpeg_arrival_rooms_c: This vault has a 4-tile deep water pillar which
will probably be entirely replaced by shallow water due to pool fixup.
So I added no_pool_fixup.

dpeg_arrival_shrine: This vault was single-exit. Instead of randomizing
the location of the single exit, I made it always place both.

dpeg_arrival_stone_temple_mockup: This vault is single-exit. I added
no_pool_fixup to ensure the 4 pools can serve as pillars.

dpeg_arrival_lava_temple_mockup: This vault is single-exit. Adding
pillars or additional exits might disrupt the homage (I'm not familiar
with the source) so I added an escape hatch.

dpeg_arrival_leaves_temple_mockup: This vault is single-exit. Adding
pillars or additional exits might disrupt the homage (I'm not familiar
with the source) so I added an escape hatch.

zelgadis_glass_arrival_large: This vault is a single exit spiral. I cut
the spiral at the center to provide a small pillar.

dpeg_arrival_stonehenge_12_columns: This vault is essentially an open
plane near the center; with no_monster_gen off it's possible for you to
not be able to get to any of the distant pillars. I added an escape
hatch near the center in case you get such a bad roll.

dpeg_arrival_simpleton_b: This vault could be a single-exit room, if you
spawned in the north-east room, and it's possible for none of the
features in the large room to be statues. I added a couple doors to the
rest of the vault from the north east room, which provides a pillar and
a second exit no matter where you spawn.

dpeg_arrival_prison: This vault is a single-exit room. I added a pillar.

dpeg_arrival_ratfight: This vault could be a single-exit room. I made
the other exit guaranteed.

dpeg_arrival_houses_and_road: This vault had a single exit staring room.
I added a guaranteed second exit.

zaba_arrival_water: This vault had the potential that you could be
spotted by a monster outside the vault which could block you into the
shallow water (and if it was a gnoll with polearm or a swimmer,
potentially keep you from going back and looping to another path.) I
changed the exits to doors to prevent you triggering stealth checks till
you're to the final room.

lemuel_arrival_tunnels: This vault was single exit. I added a couple of
guaranteed pillars

lemuel_arrival_broad_hall: This vault's internal pillars had a 1:6
chance of not existing. Removed that chance.

lemuel_arrival_behind_the_door_large/small: This vault was effectively
single exit. I added a couple pillars.

dpeg_arrival_pond: This vault is an open alcove with one exit. I added a
small shallow water path to loop around.

dpeg_arrival_rhombi: This vault has a single exit. I added some internal
doors to guarantee an internal island.

dpeg_arrival_arbitrary_a: This vault could be single exit. I made it
guaranteed that you can access both exits, and added a small pillar.

dpeg_arrival_subterranean_lakeside_camping: This vault could be single
exit. I made it guaranteed that you can access both exits.

dpeg_arrival_more_subterranean_lakeside_camping: It was possible for
this vault to generate without a path to the exit for one of the
starting locations, invalidating its placement. I fixed it so there's
always a path to the exit.

dpeg_arrival_erosion: With monsters generating, your starting room was
single exit. I turned on no_monster_gen so you have access to the good
terrain in the vault.

dpeg_arrival_round_a/b: Cleaned up a meaningless shuffle line.

dpeg_arrival_short_road: The starting room could be single exit into the
monster-generating vault. I added another exit and a pillar to the NW
starting room.

dpeg_arrival_court: The starting rooms were single exit into the monster
generating vault (with lots of good terrain.) I marked part of the vault
near the start doors as no_monster_gen.

dpeg_arrival_signposts: Added a pillar to this single exit room.

onia_arrival_mini_maze/_b: It was possible to get stuck in the starting
corridor. I added a corridor break which provides a pillar and ensures
you can get out regardless of where a single monster spawns.

onia_arrival_handbag: This vault had some cruft in it, including an
escape hatch UP specified. I cleaned that up and added a small pillar
and 'back door' to your nearby escape hatch to each starting location.

eino_arrival_cavern_e: This vault is single-exit. I added a pillar.

onia_arrival_zoo_common: It was possible to get trapped in your starting
corridor by a monster just outside your LoS. I added no_monster_gen to
the tiles where this would be possible.

minmay_arrival_arboretum_small: Depending on what the dungeon generated,
this could be a pretty nasty start. I added a couple of glass pillars.

co_arrival_random_square_maze: This was a single exit vault. I made it
generate three exits to the vault.

sevenhm_arrival_forest_fort_small_2/4/5: These vaults were single exit
and I added a second one.

sevenhm_arrival_forest_fort_small_3: This vault was single-exit so I
added a tree as a pillar.

saegor_arrival_miasma: This vault was single exit so I added a second one.

lightli_arrival_statuegarden: This vault was single exit so I added a
second one.

lightli_arrival_windingriver: This vault was single exit so I added a
tree to serve as a small pillar.

nicolae_arrival_washed_ashore: This vault is single-exit, but one of my
favorite-flavors. I added some ruined pillars randomly placed on the
beach to allow for tactics.

minmay_arrival_shattered_statue: The first part of theis vault is
single-exit, but the second room has a stuatue to walk around and two
exits. I marked the vault as no_monster_gen.

wander_arrival_fairy_ring: It was theoretically possible that no trees
or fungus placed in this vault; I added a guaranteed tree in sight of
the start.

[ Committer's note: Formatted commit message to 80 cols and
  resolved conflicts with #1304, Closes #1327 ]

--------------------------------------------------------------------------------
4798a01ea9 | theJollySin | 2020-04-18 12:20:43 -0400

Add room for tactics in small arrival vaults
Add another exit to:

* evilmike_arrival_fibonacci_small
* minmay_arrival_stair_chambers
* minmay_arrival_widening_spiral_wide
* dpeg_arrival_lava_temple_mockup

Add a pillar to:

* evilmike_arrival_grusome_pit
* minmay_arrival_widening_spiral_narrow
* minmay_arrival_loop
* evilmike_arrival_sounds_zot

Remove:

* evilmike_arrival_sounds_zot
* onia_arrival_larder

[ Committer's note: Closes #1304 ]

--------------------------------------------------------------------------------
0023389d77 | gammafunk | 2020-04-18 01:30:19 -0500

A new curse skull tile (kormed)

--------------------------------------------------------------------------------
d415a3ffb0 | Emily | 2020-04-18 01:50:08 -0400

Rename the book of Enchantments to Hexes
It no longer contains any Charms, so the historical name doesn't make
sense any more.

--------------------------------------------------------------------------------
8b45d1b2b9 | Emily | 2020-04-18 01:50:08 -0400

Rename deflection to repulsion in code and dumps
Now that DMsl is gone, this function corresponds exactly to whether RMsl
is active, and /deflect(ion)?/ barely appears in the codebase or output,
so standardize on the simpler terminology.

--------------------------------------------------------------------------------
5ff3ae7edd | Emily | 2020-04-18 01:50:08 -0400

Remove logic for multi-level missile deflection
With the DMsl spell gone, missile_deflection() can only ever be 0 or 1;
change the return type to a bool and remove obsolete DMsl-handling code.

--------------------------------------------------------------------------------
2ea948a12f | Emily | 2020-04-18 01:50:08 -0400

Give monsters that had Deflect Missiles +2 EV
To compensate for the nerf.

--------------------------------------------------------------------------------
c449921327 | Emily | 2020-04-18 01:50:08 -0400

Remove the Deflect Missiles spell
The RMsl spell was removed in 6993651381ec54b41ad219c4c6380028b2801db6,
and most of the arguments for its renewal also apply to DMsl. It's true
that it requires much more investment, but that also makes it much more
marginal: we carry around the code and design complexity of multiple
missile repulsion levels, and the notion of non-expiring "permabuff"
spells, for a spell that essentially duplicates an item property but
stronger, without it even being something that most characters will
have any opportunity or reason to learn.

After this commit, the design is crisper and easier to learn: there's
one level of missile repulsion and you get it from armour, gods, or
intrinsically; spells don't come into it.

--------------------------------------------------------------------------------
53a3069714 | Emily | 2020-04-18 01:50:08 -0400

Remove obsolete temporary RMsl status logic
Players haven't been able to access temporary RMsl for some time now.

--------------------------------------------------------------------------------
7dfdf1ca8f | Edgar A. Bering IV | 2020-04-18 01:42:55 -0400

Add miscast effects to spell descriptions
Now that miscasts are simplified the effect can fit in a sentence and be
displayed to the player.

TODO: Decide how to reveal average slow/poly/dimension anchor and
nameless horror strength.

--------------------------------------------------------------------------------
6fc3743e77 | Edgar A. Bering IV | 2020-04-18 01:15:19 -0400

Tone down miscast effects and retool severity colors
New miscast effects were... a bit too severe. This commit refactors the
tuning parameters to the spl-miscast header and turns them up (larger
means less severe).

Severity colors are also revised, so that "safe" is only displayed only if
no secondary miscast effect can happen.

--------------------------------------------------------------------------------
88dfbedd84 | Edgar A. Bering IV | 2020-04-18 01:06:53 -0400

Tone down hell effect miscasts
A level 5, fail 50 miscast does 125 damage on average with the new
miscast formulas, and fail was being called with random2avg(97,3) for
hell effects.

This reduces hell effects to level 5, random2avg(40, 3) miscasts, which
do a maximum miscast damage of 100, and an average of 50. This will be
further reduced by a subsequent commit toning down miscasts over all.

--------------------------------------------------------------------------------
19abc6cbe4 | advil | 2020-04-17 19:48:20 -0400

Put D:1 monsters back to sleep (#1357)
955fa49 tweaked spawn behavior on D:1 to avoid the dungeon
entrance, but accidentally (based on comments at least) made them
unconditionally awake at the same time, by preventing the `else` branch
that put them to sleep from running.

Resolves #1357, patch from @c-andy-martin in that issue.

--------------------------------------------------------------------------------
5b70d41e48 | Goratrix | 2020-04-17 11:27:29 -0400

Clarify windows package build instructions
Currently INSTALL.md refers to the release guide for building packages
under MSYS2, which is not very clear and also doesn't mention the zip
and nsis dependencies. While users can figure this out, I think it would
be good to have it explained directly in the INSTALL file.

Additionally, the 'mingw64/' prefix in row 222 is not needed.

--------------------------------------------------------------------------------
b22c70e859 | advil | 2020-04-16 17:26:44 -0400

Fix a typo
[skip ci]

--------------------------------------------------------------------------------
de7f6e42b9 | advil | 2020-04-16 17:21:10 -0400

Update credits
A bunch of the server stuff was very out of date.

--------------------------------------------------------------------------------
0e9e85fc21 | Nikolai Lavsky | 2020-04-17 01:02:29 +0800

Fix the x-mode description of walls covered in ice and blood
Currently, if icy walls made by Frozen Ramparts are covered in blood,
then they have only the second part of a covering description:
for example, "A rock wall, and spattered with blood."

--------------------------------------------------------------------------------
655279ceaa | gammafunk | 2020-04-15 19:52:09 -0500

A spell tile for Frozen Ramparts (CanOfWorms)

--------------------------------------------------------------------------------
c44aebf4fe | gammafunk | 2020-04-14 12:15:15 -0500

Update Wu Jian's Whirlwind description (gressup)
The pinning effect of Whirlwind was removed in 59c31d1a9, so update the
descriptions of the ability in Wu's religion screen appropriately.
Replace the text about pinning in the "Extra" table with a line
mentioning that Whirlwind can attack multiple monsters at once.

--------------------------------------------------------------------------------
622e69b31f | Alex Jurkiewicz | 2020-04-13 21:28:31 -0400

Send DCSS processes SIGABRT rather than SIGTERM
Both signals do the same thing now (controlled crash), but this is
hopefully the first step in changing SIGTERM to handle the same way as
SIGHUP (cleanly shut down).

It was a bit off a toss-up between using SIGQUIT and SIGABRT. QUIT means
"quit program" while ABRT means "abort program", so both are probably
suitable. But dgamelaunch-config uses ABRT already:
https://github.com/crawl/dgamelaunch-config/blob/master/utils/webtiles
so we'll follow convention.

--------------------------------------------------------------------------------
398c232eb9 | Alex Jurkiewicz | 2020-04-13 21:06:43 -0400

Example webtiles systemd unit file

--------------------------------------------------------------------------------
357ffb74ea | Alex Jurkiewicz | 2020-04-13 20:45:48 -0400

Correct a step name

--------------------------------------------------------------------------------
713ffed48a | Alex Jurkiewicz | 2020-04-13 20:45:48 -0400

Fix CPU detection on macOS

--------------------------------------------------------------------------------
bf642f89ba | advil | 2020-04-13 18:51:32 -0400

Fix a miscast crash
If a miscast with BEAM_NEG flavour is triggered, then
mons_adjust_flavoured can kill the monster and do monster_die (by way of
calling drain->exp). The logic here is overall odd but we can at least
fix the crash by assuming that the monster isn't necessarily alive after
mons_adjust_flavoured; this could matter for other flavours too.

Before this commit, replicable with arena:
    miscasts 5 pandemonium lord v 20 20-headed hydra delay:0 t:10

--------------------------------------------------------------------------------
d9a95f1d30 | gammafunk | 2020-04-13 17:18:57 -0500

Remove a no longer relevant Donald line

--------------------------------------------------------------------------------
40ae2d4f90 | Kate | 2020-04-13 21:24:33 +0100

Add details to the "Beogh" status light description
On the off-chance that somebody forgets how it works but knows to look up the
status description.

--------------------------------------------------------------------------------
43196ba697 | Kate | 2020-04-13 21:07:36 +0100

Don't print auto item slot adjustments on turn 0
As with spells being automatically assigned by the RC option, print new slots
when they're assigned during play, but not on game start.

--------------------------------------------------------------------------------
f7929f599a | Kate | 2020-04-13 20:39:19 +0100

Give the plutonium sword a chance to polymorph monsters again
Since it was tragically lost in the rework of miscast effects.

--------------------------------------------------------------------------------
a3f3f81586 | Kate | 2020-04-13 18:22:40 +0100

Use BASELINE_DELAY for some enchantment durations

--------------------------------------------------------------------------------
53dc3366b1 | Aidan Holm | 2020-04-13 23:50:13 +0800

Fix bugged acquirement menu (#12234)
It looks like select() can do a number of things, including toggling,
but was in this instance a no-op. I've switched it to deselect_all() for
the sake of readability.

--------------------------------------------------------------------------------
34829ab59b | Aidan Holm | 2020-04-13 22:21:43 +0800

Fix another arena crash (#11894, #12238)
This was another crash caused by the tiles rendering code.

--------------------------------------------------------------------------------
6f2fc6eb8c | Edgar A. Bering IV | 2020-04-13 08:56:45 -0400

Nameless horror tile (CanOfWorms)

--------------------------------------------------------------------------------
a8ac3e9bb0 | Edgar A. Bering IV | 2020-04-13 07:25:55 -0400

Fix an arena crash

--------------------------------------------------------------------------------
0ecfff5982 | Kate | 2020-04-13 02:43:26 +0100

Tweak wording and fix a typo

--------------------------------------------------------------------------------
8a17258929 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Update spell failure coloring
Now that miscasts roll a consistent damage number (for non-damaging
schools this is an abstraction but reflects the degree of the miscast)
we can compare the expected value of this abstract damage roll to the
player's max hp. The tiers of spell danger are:

tier                  | expected damge | colour
"safe"                | <= 5% max hp   | LIGHTGREY
"slightly dangerous"  | 5-15% max hp   | YELLOW
"quite dangerous"     | 15-25% max hp  | LIGHTRED
"extremely dangerous" | 25-50% max hp  | RED
"potentially lethal"  | >50% max hp    | MAGENTA

While the schools with nondamaging miscasts aren't ever directly lethal,
having a very long duration slow, dimension anchor, polymorph, or a very
strong namelesss horror show up are probably not going to go well for
the player. If this stretches the definition of potentially lethal too
far, very dangerous can be brought back for RED tier miscasts.

--------------------------------------------------------------------------------
9c6f73562d | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Implement summoning miscasts
A summoning miscast now summons a nameless horror with hd = 2 * dam / 3,
where dam is the usual damage roll for a miscast, capped at hd 27. These
are durably summoned from spell miscasts, and have an abj_deg of 4 from
other sources (spellbinder).

--------------------------------------------------------------------------------
22dff59d80 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

New Monster: nameless horror
This monster is designed to be an hd-scaled summoning miscast. The name
is an Earthsea reference, reinforced by the quote. Practically the
monster is giant, tanky (120 hp at 15 hd reference point, 10 AC, 2 EV),
antimagic swinging (dam = hd * 2 AF_ANTIMAGIC), and has abjuration as a
natural ability.

--------------------------------------------------------------------------------
8a08d0b149 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Refactor monster abjuration to be a true spell
Monster abjuration is automatically added to monsters with certain
summon spells, but the implementation was a bit of a hack. This refactors
the code to use a modern spell_logic struct for abjuration. It keeps the
check to abjure instead of using certain summon spells, in lieu of
adding SPELL_ABJURATION to a bunch of monster spell books, but the
codepath is now similar to legendary destruction instead of a different
form of special casing.

--------------------------------------------------------------------------------
3e08ee0495 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Refactor and revise miscasts
Miscast code was notoriously opaque, the array of miscast effects
dizzying, and the whole soup not particularly effective at making
casting dangerous spells dangerous.

This commit re-writes spl-miscast.cc to simplify things significantly.

Spell success chances are unchanged, the value of fail is the margin the
player misses the casting roll by.

Miscasting a spell now has the following effects as a function of spell
level and fail:

2 * (level * level * fail + 250) contam

and a roll_dice(level, level * fail) / 10 "damage" school effect.

The school effects are:

- charms: debuff and damage turns of slow
- hexes: debuff and damage turns of slow
- summoning: TODO in this commit
- translocation: damage turns of dimension anchor
- transmutation: damage power polymorph (malmutate on monsters)
- conjurations, fire, ice, air, earth, and poison all do appropriate
  flavored damage (with flavor effects).

Miscasts from other sources (Kiku and Veh wrath, Hell effects,
Spellbinder, and the plutonium sword) skip the contam and just do a
school effect.

--------------------------------------------------------------------------------
c46e80e7f0 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Decouple Zot trap effects from miscasts and revise
The Zot trap effect code was very old, wedged into the miscast system
for convenient access to certain things the old miscast class handled.

The effect list was long and had a highly variable impact and threat
level.

This commit re-implements zot trap effects directly in traps.cc with a
much pruned list. The new table of effects is below, with 2/3rds of the
weight spent on "evil magic" and 1/3rd on "hostile summoning" as loose
categories.

Evil magic (total weight 16):
- lose 1 + r2a(5,2) stats (weight 4)
- 7000 + r2a(13000,2) contam (weight 4)
- 2 - 5 turn paralysis (weight 1)
- mp drain to 0 wt (weight 2)
- petrification wt (weight 1)
- random2(20) turns of magic vulnerability (weight 4)

Summoning (total weight 8):
- word of recall 2 - 4 foes (weight 3)
- durably summoned greater demon (weight 3)
- malign gateway (weight 1)
- twister (weight 1)

These effects will need further tuning (and possible re-weighting).

--------------------------------------------------------------------------------
dc3872be64 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Refactor malign gateway creation code
Separate out creating the gateway and player spell casting setup, so
that gateways can be used without a caster.

--------------------------------------------------------------------------------
1285b1578e | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Remove miscasts from Xom effects
Now that miscasts effects are focused and meant to punish spell misuse
they are less useful as "random wacky junk" in the Xom effect roster.
Removing the lethality margin also significantly simplifies things.

Xom effects probably need a more thorough looking-at, but that is beyond
the scope of this change.

--------------------------------------------------------------------------------
03a4b90f3d | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Remove miscasts from Kiku wrath
Replace them with death curses of a severity equal to the player's XL.
In subsequent commits miscasts will be overhauled and simplified. While a
necromancy miscast would still be thematic for Kiku, the more varied
effects of mummy death curses are a better fit for the god of death.

--------------------------------------------------------------------------------
fb0a38e7c0 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Adjust the scythe of Curses
Remove the dependence on necromancy miscasts, replacing them with death
curses. On wield the scythe delivers a severity 0 curse, and on hit a
severity min(damage done, 27) curse to monsters of natural holiness.

Also remove the item cursing. That was a flavourful annoyance more than
a serious limitation considering the quantity of ?rc available to
players.

--------------------------------------------------------------------------------
336ef83941 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Refactor and revise Mummy death curses
Death curses were previously necromancy miscasts at varying power. This
commit implements death curses as their own effect, separated from the
miscast system. The effect list is pruned. The remaining effects scale
with severity, and the weights among the effects shift with severity.

Mummies use their hd for severity; for reference the hds are
- guardian mummy 7
- mummy priest 10
- greater mummy 15
- khufu 18

Kiku's partial curse protection divides severity by two. If this isn't
good enough, increasing the divisor to 3 should work.

New curse effects:

"message"
- message only, shown only when the player is hit to avoid message spam

"pain"
- 5 + r2a(2*severity, 2) damage if not rTorm

"slow"
- severity turns of slow

"drain"
- x_chance_in_y(severity, 27) chance of 1 + r2a( severity / 3, 2) stat
  drain (player only)
- else (severity / 27) * 100 drain

"torment"
- torment

Effect weights are determined by linearly interpolationg between these
two weight sets, with the weight of "message" not permitted to be
negative. As a result, Khufu has a slightly lower chance to cause a
"pain" curse, and a slightly higher chance to do slow, drain, or
torment, compared to a standard greater mummy.

| severity | message | pain | slow | drain | torment |
| -------- | ------- | ---- | ---- | ----- | ------- |
| 0        | 80      | 20   | 0    | 0     | 0       |
| 15       | 0       | 40   | 20   | 20    | 20      |

--------------------------------------------------------------------------------
86a13c9327 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Remove dead code from chaos melee miscasts
Now that chaos melee does not use miscasts and the randarts access them
through their own codepath this code can be removed.

--------------------------------------------------------------------------------
47bc34da0a | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Remove miscasts from Yred wrath
Replace the single necromancy miscast with a bolt of draining. Yred's
theme is unlife, not necromancy (that's Kiku). A bolt of draining is a
more thematic tool for Yred to use in anger, drain life style.

This also has the technical improvement of decoupling wrath from
miscasts.

--------------------------------------------------------------------------------
2736e7e68b | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Decouple distortion unwields from miscasts
Distortion unwielding penalty is now: 50% teleport to monsters, 25%
banishment, 25% severe contam.

--------------------------------------------------------------------------------
7d7414004a | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Adjust Fedhas wrath
Remove random elemental miscasts from Fedhas wrath to remove dependence
on spell miscast and make wrath more flavourful.

The elemental miscasts are replaced with a random choice of
Corrosive Bolt, Primal Wave (rain throwback), or Thorn Volley.

--------------------------------------------------------------------------------
f8edb28dd6 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Adjust Cheibriados wrath
Replace miscasts in Cheibriados' wrath in two places. Miscasts are used
a as a source of "random bad stuff" and its better to have "thematic bad
stuff".

For "very high tension" retribution, add a lot of noise and then
fallthrough to the sleep and slow effects (to bring monsters to the
debilitated player).  For "low/no tension" retribution, deal some stat
damage.

The noise is given a clock flavour (Cheibriados strikes the hour.), and
the stats are in line with Cheibriados' gifts.

--------------------------------------------------------------------------------
571808c64f | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Adjust Lugonu wrath
Replace the (50% translocation miscast/50% random translocation) part of
the wrath with: (50% teleport to monsters / 25% banishment / 25% just
summons).

This is to decouple wraths from spell miscasts while keeping the most
impactful translocations of Lugonu's wrath.

--------------------------------------------------------------------------------
a40a96fbb7 | Edgar A. Bering IV | 2020-04-12 19:58:39 -0400

Adjust Trog wrath
Remove the chance for rotting; while it was intended as "physical
damage" (judging from the comments) rotting is necromantic.

Replace the fire miscasts with a pure fireball, to remove the dependence
of Trog wrath on miscast code. A fireball scaled with player XL is a
fine "firey rage" to fit with the theme of Trog.

--------------------------------------------------------------------------------
59c31d1a9f | Kate | 2020-04-13 00:07:44 +0100

Remove the pinning effect from WJC whirlwind attacks
The pinning effect allowed for near-free escapes from any enemy, without even
requiring a successful martial attack. Remove the pin so that whirlwind attacks
are just focused on their main function of allowing attacks against multiple
targets while moving.

--------------------------------------------------------------------------------
c9e437d3e5 | Kate | 2020-04-13 00:07:44 +0100

Refactor and simplify Heavenly Storm
Re-implement the scaling bonus from Heavenly Storm in a similar way to Powered
by Death, using a prop and cleaner way of decaying the bonus. The slaying bonus
now starts at 5, is capped at 15, increases by 1 per martial attack, and decays
by 1 every 20-30 aut, with the storm expiring once it reaches 0.

--------------------------------------------------------------------------------
ac708d3437 | Kate | 2020-04-13 00:07:44 +0100

Clear water elemental engulfing when walljumping

--------------------------------------------------------------------------------
404d5d30d4 | Kate | 2020-04-13 00:07:44 +0100

Make WJC wall jumps only activatable via the ability
Activating it by moving into a wall was extremely complicated on the code side,
and on the player side it resulted in a lot of interface inconsistency for
little benefit compared to just consistently treating it as a regular ability.

--------------------------------------------------------------------------------
84dc20635f | Aidan Holm | 2020-04-12 20:50:03 +0800

Revert "Shut down cleanly on SIGTERM"
Reverted because the stale process handler uses SIGTERM to terminate
hung processes (process_handler.py:487). Unfortunately this is not
something that's easy to change, since webtiles servers generally do
not restart automatically.

This reverts commit 4d5fadd62c62fa2ab1704ed8f00dd03fea444a06.

--------------------------------------------------------------------------------
be65d2b916 | Aidan Holm | 2020-04-12 19:17:31 +0800

Work around crash caused by early-game messaging
This works around a crash caused by a Gnoll skills check during game
resumption. If a gnoll had all skills at 27, a message was printed
before the game had been fully restored. The check changed in this
commit blocks layout changes until the game has been fully restored;
this also prevented the message window from being given a size. To work
around this, we explicitly give the message region an arbitrary size.

Unfortunately I can't remember which parts of the tilesdl code were
crashing or how to reproduce that issue. The underlying issue is that
the message handling code does its own screen output. But, as with all
things crawlcode, this is extremely non-trivial to fix.

Fixes #1346.

--------------------------------------------------------------------------------
01bdca394d | Aidan Holm | 2020-04-12 19:11:43 +0800

Fix lint errors in util.py, and add type hints
This is made somewhat more complicated by Tornado hinting some functions
as accepting a str with a default of None; necessitating several type
ignore comments. Some more were added to quickly deal with the forced
addition of an attribute to instances of one of Tornado's classes (not
a great idea...).

This also removes a race condition from the FileTailer class.

--------------------------------------------------------------------------------
2f0c327db6 | Aidan Holm | 2020-04-12 17:49:21 +0800

Remove needless conditional compilation for MSVC
This code removed the PURE annotation for MSVC, but there were already
other instances of unguarded PUREs throughout the codebase, so these are
likely safe to remove. Easy enough to conditionally undefine PURE if
needed.

--------------------------------------------------------------------------------
5222f23389 | Alex Jurkiewicz | 2020-04-12 17:09:29 +0800

Fix humanise_bytes unit

--------------------------------------------------------------------------------
4d5fadd62c | Alex Jurkiewicz | 2020-04-12 15:56:57 +0800

Shut down cleanly on SIGTERM
Treat SIGTERM the same as SIGHUP -- eg gracefully save and quit.

When a SSH client disconnects from a remote session (eg, with
dgamelaunch), the session processes receive SIGHUP. But if a local user
runs eg `killall crawl`, the processes are sent SIGTERM which crashes
the game. Most job control systems (eg systemd, docker) send SIGTERM, so
it makes sense to handle this with the logic that already exists for
SIGHUP.

Don't rename any of the functions or variables relating to this, eg
handle_hangup or seen_hups. That can be done in a future commit, if
desired.

--------------------------------------------------------------------------------
26c3a87c45 | gammafunk | 2020-04-11 00:02:29 -0500

Adjust wall selection for Frozen Ramparts (#1330)
This spell used a distance iterator to select walls in range, but that
iterator requires locations to be in bounds for player movement, meaning
at least two squares from the map border. This meant that the spell
couldn't affect otherwise normal walls adjacent to the map boundary, as
seen in #1330.

This commit switches to a LOS_NO_TRANS radius iterator, letting the
player affect these walls with Frozen Ramparts. The use of LOS_NO_TRANS
is a new restriction, but is appropriate since we don't generally allow
damaging monsters behind glass.

Additionally, this commit allows the spell to work on permarock walls,
since there's no reason why these should be excluded. Closes #1330.

--------------------------------------------------------------------------------
23b457fb4a | gammafunk | 2020-04-10 20:04:04 -0500

Fix icy wall descriptions
The icy walls made by Frozen Ramparts have a covering description for
the 'x' and 'x-v' commands that wasn't updated when the spell was
changed in c9638ee9a. Update the descriptions to refer to ice instead of
icicles, and expand the wall covering description to give the effect
details we provide for the spell.

--------------------------------------------------------------------------------
4f93b0e1ec | gammafunk | 2020-04-10 17:18:34 -0500

A Gauntlet map with a choke point
The map gammafunk_gauntlet_mixed_choke_point features mostly 7x7 arenas,
but with all 9 paths leading through a central 9x9 arena. The paths
start with a choice of 3 7x7 arenas that are tier 1 difficulty, leading
to the central arena that has a 50% chance to be tier 2, followed by a
choice of 3 7x7 arenas that are tier 2.

--------------------------------------------------------------------------------
73332aeda9 | gammafunk | 2020-04-09 01:48:48 -0500

A gauntlet map featuring an early escape option
The map gammafunk_gauntlet_77_escape_option features a linear path
through 5 7x7 arenas where the player may take a transporter to the
minotaur after each of the first four arenas instead of proceeding.
Arenas upgrade to tier 2 difficulty as early as the 3rd arena, with the
loot count likewise increasing. The average total loot from all arenas
is 8.75 items, which is a bit higher than the average of 7.5 for other
maps, but getting all items requires completing all 5 arenas. It's
fairly likely that the player will encounter a difficult arena and want
to exit to the minotaur instead, but the extra loot in the later arenas
might compel them to take a risk.

--------------------------------------------------------------------------------
f7d8cd8a05 | advil | 2020-04-08 21:44:19 -0400

Fix some demonic rune messaging issues (12232)
The main problem here was that these mpr calls weren't run from the
vault epilogue. Of course, epilogues were somewhat broken until recently
so fixing those was a precondition for this commit. The logic fo holy
pan is still a bit odd but I think it shouldn't cause any major problems
unless pan ever gets pregenerated in bulk.

The rest of 12232 was already fixed in ea548f19b60.

--------------------------------------------------------------------------------
50bb873abc | advil | 2020-04-08 21:17:03 -0400

Make vault epilogues work again
This mostly affects messaging when entering wizlabs, and in cases where
a special panlord level generated as the first Pan level and this level
got generated out of order. (Could happen on full pregen, or if a player
entegered a zig before pan.)

Epilogues have been semi-broken since pregeneration. They are intended
to run after the player has entered the level, but before pregeneration
this always happened immediately after level generation with a guarantee
of full generation information kicking around. The bug is that if a
level is generated and not immediately entered, its vaults get saved to
disk and the epilogue is not serialized. On load, an incomplete map_def
is used for the vault information that is missing most things you'd need
for generation (rightly so), including the epilogue. So the epilogue
code tried to run, but was always empty in this case.

Rather than serialize the epilogue (which may be possible, but seems
like a bit of a minefield as I don't think we serialize any lua code
right now), the fix here is to run the epilogue from the current .des
cache's copy of the map. Obviously this could lead to save compat
issues, but this is exactly how lua code for markers is handled and the
issues are the same.

--------------------------------------------------------------------------------
0472a16d6a | advil | 2020-04-07 12:23:58 -0400

Suppress builder dprf spam from main message window by default
These logs are saved with the level via a message_tee and are accessible
via &ctrl-l in wizmode. This is basically because incremental pregen in
a fulldebug build produces a huge amount of log spam whenever any
non-trivial level change happens.  Hopefully this doesn't step on some
workflow I'm not thinking of, but it's configurable (and could be made
more configurable).

--------------------------------------------------------------------------------
633e9c3c14 | advil | 2020-04-07 00:02:33 -0400

Work around a seed stability issue in regret_index_temple_of_mockery
This places different monsters depending on player species. The choices
it makes can affect rng differently depending mainly on the items that
come with some of these monsters (but potentially other factors as
well). This commit works around the problem by placing the mocking
monster when the player enters los, rather than immediately.

An alternative would be to use a subgenerator (perhaps for all vaults,
or for some with a specified tag), but there's not a great way to do
that that doesn't have a huge effect on many seeds that I came up wuth.
It still might be worth doing in trunk.

(cherry picked from commit d1d2a07e1b2fd3e404ac047ccad46cef83ad69a9)

--------------------------------------------------------------------------------
14964f1db5 | Edgar A. Bering IV | 2020-04-06 12:02:15 -0400

Make distortion tacticool
The teleportation effect was a "light instakill" for distortion, with a
variable impact from "a bit more than blink" to "that was a tough
monster I don't want ambushing me so now I've got to hunt it down".
Banishment works better as a true instakill, and the remaining weights
have been moved to the other distortion effects.

For comparison the old weights table:

33, SMALL_DMG
22, BIG_DMG
5, BANISH
15, BLINK
10, TELEPORT
10, TELEPORT_INSTANT
5, NONE

And the new weights table:

35, SMALL_DMG
25, BIG_DMG
10, BANISH
20, BLINK
10, NONE

This was not a proportional distribution of weight, and if the new
distortion becomes too strong with a 10% banish these numbers can be
further adjusted.

--------------------------------------------------------------------------------
9dbc7a090b | Alex Jurkiewicz | 2020-04-06 23:58:22 +0800

Add a basic gitignore

--------------------------------------------------------------------------------
3c463ed35c | Alex Jurkiewicz | 2020-04-06 23:58:22 +0800

Allow editing non-existent RC files
Servers no longer need to create a blank RC file for every player in
every game 🙌.

--------------------------------------------------------------------------------
2cfbf905ed | Alex Jurkiewicz | 2020-04-06 23:58:22 +0800

Fix to numeric game IDs

--------------------------------------------------------------------------------
763baa6c66 | Alex Jurkiewicz | 2020-04-06 23:58:22 +0800

Improve test coverage of auth.py

--------------------------------------------------------------------------------
1f78941bf9 | Alex Jurkiewicz | 2020-04-06 23:58:18 +0800

Add humanise_bytes() helper method
Pypi's humanize cannot be used, as it is 3.5+ only.

--------------------------------------------------------------------------------
e1c5cbf416 | Alex Jurkiewicz | 2020-04-06 23:39:22 +0800

Remove useless ValueError catch
_parse_login_cookie() handles internal ValueErrors, and the remaining
code shouldn't raise one.

--------------------------------------------------------------------------------
e1ddf72ad1 | Alex Jurkiewicz | 2020-04-06 23:38:53 +0800

Fix returning user auto-login
Not sure what caused this change in behaviour -- possibly related to
Python 3 and/or Tornado upgrade?

--------------------------------------------------------------------------------
57989bdc17 | gammafunk | 2020-04-06 02:21:30 -0500

Fix Royal Jelly spawns for Absolute Zero
Just as we do for Uskayaw's Grand Finale and other means of killing the
Royal Jelly, run the usual fineff to create spawns when the monster is
killed by Absolute Zero.

--------------------------------------------------------------------------------
31aab680a6 | gammafunk | 2020-04-06 02:05:22 -0500

Rework Absolute Zero range and spell noise
Although this spell has some fundamental limitations compared to the
other level 9 direct damage spells given its single monster effect and
target randomization, it does feel kind of "cheap" at the highest
ranges. Deleting a monster that comes into view in a single turn
may be a valid effect for such a high cost spell, but doing this
repeatedly can be a bit dull.

This commit limits the range of Absolute Zero to 5 and restores the
original behaviour of having noise scale with spellpower. The spell
makes noise 40 effect at 0 spellpower, scaling down to 0 effect noise at
spellpower 200. The casting noise of 9 at the player's position will always
be present. Additionally we fix the spell noise display to properly
consider spellpower in the noise description.

This change doesn't prevent combinations of Vehumet, Darkness spell,
Robe of Night, and the Nightstalker mutation from achieving LOS range
for the spell, but getting those things in the right combination is at
least somewhat rare.

--------------------------------------------------------------------------------
de951dce62 | Aidan Holm | 2020-04-06 00:43:26 +0800

Don't use ncurses CFLAGS on tiles builds

--------------------------------------------------------------------------------
143fc31978 | Aidan Holm | 2020-04-06 00:43:26 +0800

Refactor LUA_PACKAGE/BUILD_LUA handling
Again, the high-level goal (build lua if there's no suitable system
version) was obscured by the huge if-else structure.

--------------------------------------------------------------------------------
79a37018c4 | Aidan Holm | 2020-04-06 00:43:26 +0800

Detect -rdynamic support automatically
The platform-specific lines obscure the high-level concept: we want
-rdynamic if it's available.

--------------------------------------------------------------------------------
31213489bf | Aidan Holm | 2020-04-06 00:43:26 +0800

Remove unused platform detection code
The less of this gunk, the better.

--------------------------------------------------------------------------------
cbee7f0cb1 | Aidan Holm | 2020-04-06 00:43:25 +0800

Use includes relative to source directory
This makes the locations of files more obvious, allows improved file
navigation in Vim, and eliminates the possibility of files being
shadowed from the wrong directory.

--------------------------------------------------------------------------------
0fc42ec244 | Nikolai Lavsky | 2020-04-06 00:27:08 +0800

Allow autotravel to shafts (12196)
Also, fix autotravel trying to path around shafts and ignoring
shorter routes.

--------------------------------------------------------------------------------
4845790874 | Nikolai Lavsky | 2020-04-05 02:11:30 +0800

Fix stash search menu not showing tiles for some dungeon features
Commit 4e0c6439 introduced a couple of bugs:
* the stash search menu no longer displays tiles for some dungeon
  features, e.g. altars;
* the ?/F lookup-help finds nothing for queries like `trap`,
  and `.*` displays a hard-coded description of a dry fountain
  instead of showing a list of all features.

This happens because feat_by_desc() can no longer find a feature's
dungeon_feature_type in the feature description cache.

Previously, all feature names stored in the cache ended in a full stop.
After 4e0c6439, strings returned by feature_description() no longer end
in a full stop. As a result, the cache has no feature names that end in
a full stop too, so feat_by_desc() should be changed accordingly.

--------------------------------------------------------------------------------
6fb8d1b6dd | Goratrix | 2020-04-05 02:07:10 +0800

Correct meliai and hornet spectral and simulacrum
To properly derive the bee spectral and simulacrum tiles
from the new meliai and hornet zombies.

--------------------------------------------------------------------------------
2667425ccc | Alex Jurkiewicz | 2020-04-05 01:56:15 +0800

Fix import sorting

--------------------------------------------------------------------------------
19a9338ac1 | Alex Jurkiewicz | 2020-04-05 01:56:15 +0800

Fix isort arguments

--------------------------------------------------------------------------------
ccf301f2a3 | Alex Jurkiewicz | 2020-04-05 01:56:15 +0800

Add CI for webserver

--------------------------------------------------------------------------------
32492954b1 | Aidan Holm | 2020-04-05 01:55:05 +0800

Fix spurious lint failure

--------------------------------------------------------------------------------
603da076d2 | gammafunk | 2020-04-04 00:26:41 -0500

Fix some issues in a vault
The vault gammafunk_dig_for_victory used light blue coloring for
transparent stone, but this is the same color used for grates. Remove
most of the wall recoloring, using it only inside the vault for
transparent stone that's surrounded by transparent rock. This recoloring
helps to draw attention to which tiles are diggable without looking odd
from the outside.

Supplement the wands charges in the supplied wand of digging so that it
will have enough to dig a reasonable number of times if the player is
going through the vault carefully. Also supplement the loot with more
good potions and scrolls, so that we're more likely to tempt people in.

Finally, remove no_item_gen, since it's not necessary, fix up the
no_tele_into KPROP, and realign the DES statement.

--------------------------------------------------------------------------------
a8a4922b4f | gammafunk | 2020-04-04 00:26:41 -0500

Update loot in a vault
Supplement gammafunk_its_a_trap with more good potions and scrolls, so
that we better cover the variety of things that might tempt a player.
Also properly align DES statements.

--------------------------------------------------------------------------------
e9988fc0fb | Edgar A. Bering IV | 2020-04-03 11:23:51 -0400

Allow autotravel to snuff foxfires (12188)
Now that there is no self damage for walking into a foxfire autoexplore
should walk through them.

--------------------------------------------------------------------------------
54349f4560 | Edgar A. Bering IV | 2020-04-03 11:19:46 -0400

Add attack strength punctuation to Vamp Drain (12183)

--------------------------------------------------------------------------------
3851f72b99 | Edgar A. Bering IV | 2020-04-03 10:45:29 -0400

Refactor and revise monster target acquisition
set_nearest_mosnter_foe is very old, it has its own duplication of a
distance_iterator. This commit refactors the function to use a
distance_iterator and adds a LOS restriction to cells considered.

As a consequence, ball lightning and foxfire no longer attempt to get at
monsters on the other side of clear rock.

--------------------------------------------------------------------------------
2b5350a25b | Edgar A. Bering IV | 2020-04-03 10:45:28 -0400

Prevent torpor snails from slowing conjurations (12190)
Foxfires and ball lightnings are spell intermediaries, not true
monsters, and should not be slowed by torpor snails.

--------------------------------------------------------------------------------
b30f108f01 | Kate | 2020-04-02 20:29:13 +0100

Add a missing TAG_MAJOR_VERSION check

--------------------------------------------------------------------------------
7f8a7979f0 | Nikolai Lavsky | 2020-04-01 22:47:36 -0500

Fix stray commas in chardump notes for dungeon features
After c225cfcd, notes for dungeon features end in a comma instead
of a full stop.

For example, "60174 | Depths:2 | Found a sacrificial altar of Ru,"

--------------------------------------------------------------------------------
25a338df49 | Andrew York | 2020-04-01 15:33:21 -0500

Update god-abil.cc
Add "Absolute Zero" to the list of spells Vehumet supports (and therefore, can 
gift, right?)
--------------------------------------------------------------------------------
bc3157b2f0 | nlavsky | 2020-04-01 20:34:05 +0100

Tweak staff of Olgreb description (#1334)
As a followup to 234afa57, this commit replaces an outdated reference

to multiple evocable spells with a reference to OTR.
--------------------------------------------------------------------------------
890751e744 | gammafunk | 2020-03-30 19:46:51 -0500

Update the changelog
Through 0.25-a0-696-g42a9e46d90.

--------------------------------------------------------------------------------
42a9e46d90 | gammafunk | 2020-03-30 15:20:50 -0500

Fix grammar in a spell description (Goratrix)
For Frozen Ramparts, fix a sentence and rephrase the description of how
only one wall affects a monster at a time.

--------------------------------------------------------------------------------
ec580293c3 | gammafunk | 2020-03-30 14:06:41 -0500

Update the Frozen Ramparts description
Give some more basic details about how the damage works.

--------------------------------------------------------------------------------
c26c3c957c | gammafunk | 2020-03-30 14:06:41 -0500

Reduce the range and damage of Frozen Ramparts
This spell's current radius of 3 can create a quite large number of
squares in typical use cases: 9 in corridors and potentially much more
than this when used at junctions of multiple paths. Reduce the radius of
effect to 2, which still gives plenty of affected squares.

Also reduce the portion of the damage affected by spellpower by 20%. At
a max spellpower of 50, it will slightly exceed the damage of Freeze.
These changes will bring the damage per cast a bit more in line for a
single school, level 3 spell.

--------------------------------------------------------------------------------
b2edecfc75 | gammafunk | 2020-03-30 14:06:41 -0500

Use a spell range lookup instead of a constant
All of the relevant code already has access to the spell range lookup
function, so use this instead of an additional constant that could get
out of sync with the spell data.

--------------------------------------------------------------------------------
52d85a3de6 | Kate | 2020-03-30 19:14:22 +0100

Make Frozen Ramparts damage awaken monsters

--------------------------------------------------------------------------------
382ef09bc6 | Umer Shaikh | 2020-03-31 00:50:09 +0800

Check holiness before casting dispel undead
Commit 3b7ae84e64 removed SPELL_DISPEL_UNDEAD from monsters and replaced
it with SPELL_DISPEL_UNDEAD_RANGE, but forgot to update the case in
_ms_waste_of_time accordingly. This resulted in monsters attempting to
cast dispel undead on non-undead creatures; before they never thought
that was worth trying. This commit restores the check.

--------------------------------------------------------------------------------
234afa57d4 | Kate | 2020-03-30 02:20:06 +0100

Adjust the staff of Olgreb
Give it a chance to deal poison arrow-flavoured damage on hit (similar to
regular enhancer staves but only checking evocations skill), and remove its
chance of casting Venom Bolt on top of OTR when manually evoked.

--------------------------------------------------------------------------------
75bb5f1c00 | Kate | 2020-03-30 01:55:52 +0100

Rework staves of poison
Give them the same type of resistible damage-on-hit effect as other evoker
staves, instead of just a weak skill-based chance to inflict poisoning.

--------------------------------------------------------------------------------
f17ce215b2 | Kate | 2020-03-30 01:55:42 +0100

Consider magical staves and pain weapons to be wizardly for Trog conducts
Pain-branded weapons and evoker staves were technically permitted under Trog,
but very unlikely to be useful unless converting with the relevant skills
already trained, which resulted in awkward edge-cases for some types of
acquirement or chances of offering nearly-useless items.

Instead add a stricter conduct preventing their use, resulting in piety loss or
penance for making attacks with magical staves (including the various unrand
staves) or pain weapons, or for evoking their abilities.

--------------------------------------------------------------------------------
efd68434e6 | Kate | 2020-03-30 01:55:07 +0100

Rework the phial of floods
The combination of high direct damage and summoned water elementals made it
substantially more powerful than a lot of other evokers. Remove its very
powerful summons, but keep their effect of applying temporary silence by
applying a "waterlogged" enchantment to enemies within the flooding area.

--------------------------------------------------------------------------------
a947b41d75 | Kate | 2020-03-30 01:39:14 +0100

Remove staves of power
Their effect was already provided by a ring type, and is a lot less desirable
on a weapon-slot item - staves of wizardry could likewise potentially also be
removed or reworked.

--------------------------------------------------------------------------------
218c6e4ed0 | Kate | 2020-03-30 01:39:09 +0100

Remove crystal balls of energy
Their design was very messy and they were ultimately mostly a trap for
unspoiled players. Their complicated but potentially powerful effect is much
more appropriate to an unrand than to a regular evoker, and so still exists in
a similar form on the staff of Wucad Mu.

--------------------------------------------------------------------------------
9d5f834e75 | Kate | 2020-03-30 01:25:55 +0100

Remove lamps of fire
Of the multiple types of direct-damage-based evokers (lamp of fire, lightning
rod, and now tremorstones), their effect was the most underwhelming - the
complicated targeter made them difficult to use reliably and the wand of clouds
also has a similar but simpler effect.

--------------------------------------------------------------------------------
a6edddd4f1 | Kate | 2020-03-30 01:16:29 +0100

Remove sacks of spiders
Between boxes of beasts, sacks of spiders and phantom mirrors there were a
large number of consumable summon-based evokers, resulting in increased
inventory load for most characters. Although the sack does have the web effect,
overall it's a much less interesting set of summoned creatures than the others.

--------------------------------------------------------------------------------
2a2dd087f9 | Kate | 2020-03-30 00:33:33 +0100

Remove fans of gales
Miscellaneous evocable items are currently a very overloaded item type, with
many items that are worth every character carrying once found, as well as a
lot of duplicated effects. This results in lots of inventory slots being
dedicated to evokers, a worse interface when picking items, and a lot of
uninteresting choices between similar items. Narrowing down the list of evokers
substantially will allow them to have a smaller number of distinct effects,
without taking up so much inventory load.

The fan of gales AoE knockback is a very niche escape effect, and isn't really
interesting enough to dedicate an item to - it falls into the category of
evokers that end up always being carried around even though in practice it's
only quite rarely useful.

--------------------------------------------------------------------------------
df4e720381 | Aidan Holm | 2020-03-29 22:55:33 +0800

Remove force_article parameter from thing_do_grammar()
The only cases where this was non-false was when using feat_is_trap();
when this evaluates to true, the description passed to thing_do_grammar()
started with a lower-case letter, so the feat_is_trap() check was
redundant.

--------------------------------------------------------------------------------
38bdf733c1 | Aidan Holm | 2020-03-29 22:55:33 +0800

Remove add_stop parameter from thing_do_grammar()

--------------------------------------------------------------------------------
4e0c6439a7 | Aidan Holm | 2020-03-29 22:55:33 +0800

Remove add_stop parameter from feature_description()

--------------------------------------------------------------------------------
c225cfcdae | Aidan Holm | 2020-03-29 22:55:33 +0800

Remove add_stop parameter from feature_description_at()

--------------------------------------------------------------------------------
76631587b9 | Aidan Holm | 2020-03-29 22:55:33 +0800

Extract god_speaker() function
The name of the god will need to be substituted in via the i18n system,
so that different languages can change the word order.

--------------------------------------------------------------------------------
857d98e98d | gammafunk | 2020-03-29 04:30:07 -0500

Add an effect flash for Absolute Zero
Flash the screen light cyan upon successful cast. It would be neat to
have a more custom animation that centered on the target, but this flash
will do for now.

--------------------------------------------------------------------------------
38ce9ef878 | gammafunk | 2020-03-29 04:30:00 -0500

Allow Absolute Zero to target tentacles
Otherwise it can't affect things like eldritch tentacles, which seems
odd. This will leave blocks of ice where the tentacle or tentacle
segment died, but this seems fine. Firewood and allied and neutral
monsters are still excluded, as before.

--------------------------------------------------------------------------------
f3ad0b3c7c | gammafunk | 2020-03-29 04:28:02 -0500

Add range scaling for Absolute Zero
Replace the spellpower-scaled noise reduction with a spell range that
scales with spellpower. The range scales from 1 at power 0 to 7 with max
power, with the range typically being 5 when the spell is first
castable. This is a more natural way to scale the strength of the effect
with spellpower, and gives some reasonable incentive to train more Ice or
use spellpower enhancers.

Instead of scaling the noise, give the spell a casting noise of 9 and an
effect noise of 25, which is still quite loud.

--------------------------------------------------------------------------------
b3b5f875f8 | gammafunk | 2020-03-29 04:26:28 -0500

Fix two bugs for Absolute Zero
Don't crash when using 'Z' with no monster in LOS. Also properly
consider monster invisibility for messaging and attack prompts when such
a monster is targeted by the spell.

--------------------------------------------------------------------------------
0b37f7bc48 | hellmonk | 2020-03-29 04:25:45 -0500

Absolute Zero, a replacement spell for Glaciate.
This level 9 ice spell targets the enemy nearest the player (breaking
ties randomly and skipping firewood and tentacles) and instantly kills
it, turning it into an ice block. Because it always targets and kills
the closest monster, range and damage scaling with spellpower don't
work. Instead, noise decreases as spellpower increases, from an
ear-shattering 40 at zero power to 0 at maximum power (the spell also
always makes 4 noise at the player's location).

This is one of the glaciate replacement proposals that's been kicked
around on discord etc. Motivation for the change is that all four of the
level 9 direct damage spells are large aoe spells, and of the four,
glaciate seems to be the worst from both power level and interface
perspectives. Also, ice is supposed to be the least blasty school I
think? This spell is effectively single target damage, so there's some
overlap with lcs and friends, but it's somewhat different in function.

Some concerns with this spell: it's very feast-or-famine in terms of
effect. Really good against Cerebov, horrible against packs of any
significant size. If it's too good in the good situations, it could be
nerfed by lowering the range or by adding a second school (probably
hexes?); given the other effects available at levels 8 and 9 I don't
anticipate absolute zero being op. It's much harder to buff the spell if
it's too weak, and imo it's important that the new spell be at least as
good as glaciate, preferably a bit better. It's also possible that this
type of instant death effect will just lead to fundamentally bad
gameplay, but that's to be decided by playtesting. Finally, replacing
glaciate with absolute zero will nerf megazig characters. I don't
consider megazigs a 'real' part of the game but that's probably worth
noting.

Commiter's Note: A subsequent commit will adjust this spell to replace
the spellpower-scaled noise reduction with a scaling spell range from 1
to 7, with the spell typically having range 5 when it's first castable.
Depending on how this feels in practice, we may later change the spell
to have a fixed but smaller range of 5, possibly restoring the noise
reduction so that spellpower is still relevant.

I wrapped commit comment lines and ran checkwhite within this commit.

--------------------------------------------------------------------------------
d2fb8c69fd | Aidan Holm | 2020-03-29 02:42:46 +0800

Extract known items menu to known-items.cc

--------------------------------------------------------------------------------
50981ef59b | Aidan Holm | 2020-03-28 21:10:53 +0800

Add server chroot migration scripts
This adds some scripts for migrating aging server chroots to newer
ubuntu images.

Checkwhite change is needed since some inline patches require tabs.

--------------------------------------------------------------------------------
c8f5b8b992 | Aidan Holm | 2020-03-28 21:08:11 +0800

Add missing mypy.ini (alexjurkiewicz)

--------------------------------------------------------------------------------
ea548f19b6 | advil | 2020-03-27 17:50:48 -0400

Don't make splash noises during level generation
This fixes one part of https://crawl.develz.org/mantis/view.php?id=12232.
The other part is trickier.

It's possible that everything to MSGCH_SOUND should be suppressed during
level generation?

--------------------------------------------------------------------------------
b977e01cb5 | advil | 2020-03-26 15:16:49 -0400

Fix a piercing + omnireflection crash
If a piercing ranged attack is reflected by warlocks mirror, kills the
thrower, and then hits a monster after that, the game would crash,
because the attacker is invalid. This fix lets the piercing ammo
continue without crashing by using YOU_FAULTLESS as the attacker in
this case.

It isn't quite right, since the to-hit is now calculated based on a fake
YOU_FAULTLESS rather than a monster that the beam/ranged_attack objects
no longer has access to. I can see a couple of possibilities; we could
just make a copy of the monster (extremely heavy), we could somehow only
clean up the monster with a fineff (tricky to implement), or rewrite
this code to defer dead monster cleanup until the end of monster
handling (also tricky to implement, but probably how I would do this if
writing all of this code from scratch -- this would have avoided many,
many bugs over the years). I can't see any simpler options than these
right now.

Another change might be to have the ammo vanish when the monster dies,
on the premise that piercing is a magic effect that requires the thrower
to be focusing.

--------------------------------------------------------------------------------
ccc90369ac | advil | 2020-03-26 15:13:48 -0400

Don't let a reaching weapon override M_PREFER_RANGED
This mainly affects merfolk javelineers. Because the reaching check
unconditionally succeeded as long as the monster is at reaching
distance, javelineers with a reaching weapon would prefer that weapon,
never using their ammo. This is in contrast to how regular melee weapons
work.

--------------------------------------------------------------------------------
a69d64035b | gammafunk | 2020-03-25 14:46:07 -0500

Prevent felid revival in isolated Gauntlet areas
Courtesy of a reddit report forwarded to me by amalloy,
gammafunk_gauntlet_branching had an isolated area felids can revive
into, since it's not flagged no_tele_into:

https://i.redd.it/d16o9wqnavo41.png

I've added some of the usual lava and statue decorations to this area.
Additionally I've flagged this and some similar areas in
gammafunk_gauntlet_one_two_three as no_tele_into. Although felids now
can't revive into these areas due to the lava, might as well be extra
careful in case we add weird new lava-swimming species or forms. I've
checked the other Gauntlet maps, and they have no isolated areas, hence
don't need updating.

--------------------------------------------------------------------------------
ff0ac36fb1 | gammafunk | 2020-03-25 01:45:31 -0500

Properly apply effect noise for Frozen Ramparts
Before we made the effect noise only at the player's position in
addition to the casting noise at this same position. Instead apply the 8
effect noise at each affected wall position, which is where the effects
take place.

Also tweak the casting message to simply refer to ice instead of
icicles, since the spell no longer has the latter theme.

--------------------------------------------------------------------------------
ace7076f2c | Kate | 2020-03-23 20:39:50 +0000

Make indestructible vault trees unaffected by tornado (#12141)

--------------------------------------------------------------------------------
955fa49e81 | gammafunk | 2020-03-23 14:48:56 -0500

Adjust spawn locations of D:1 monsters
Some vaults are small and place transparent rock, which means level
generation monsters can spawn in LOS of players. Although a very large
majority of these situations can be survived, it's not great to have such
a monster onslaught from turn 1. The function _zap_los_monsters() deals
with this by removing monsters that spawn with line of fire, but this
both reduces monster count and doesn't handle monsters that have
line-of-sight. Extending said function to line-of-sight would further
remove monsters, so a better approach is to prune D:1 monster spawn
locations without pruning the monsters themselves.

This commit introduces PROX_AWAY_FROM_DUNGEON_ENTRANCE and applies it to
level monster spawn locations on D:1. Any D:1 level monsters will not
choose a spawn location within LOS distance of the player, choosing
another location instead. This is just a strict distance check, not
considering actual line-of-site to the player, to avoid situations where
a monsters are very close to the starting position of the player, but
just around a corner or door in the starting vault. This change doesn't
handle monsters from any vaults that happen to generate too close. That
would very rarely be an issue, and we leave _zap_los_monsters() in place
to handle this reasonably. Objstat runs before and after this change
confirm that D:1 monster counts and XP are not affected by this change.

Now players who get the infamously small
scummos_arrival_simple_fountains, recreated here for your viewing
pleasure, can be glad they'll no longer be potentially surrounded by a
swarm of instantly awakened monsters:

.......
.T...T.
..mmm..
..m{+..
..mmm..
.T...T.
.......

If there are concerns about D:1 being easier, we might look into
providing some more interesting difficulty by adding some spicy rare
spawns to the D:1 monster table.

--------------------------------------------------------------------------------
55ea3d2053 | gammafunk | 2020-03-22 13:31:19 -0500

Rework trap placement in a Volcano map (SFR)
The map volcano_village placed an alarm trap in a mandatory passage near
the start of the map. Move this to an area before the guaranteed loot
room so that the player has more of a decision for triggering the traps.
Also reglyph the map and rework monster placement a little; it was
attempting to place a monster glyph that isn't defined, since the
"villager" set for the fiery_guardians() function only makes two monster
types.

--------------------------------------------------------------------------------
7a61802294 | Goratrix | 2020-03-23 00:47:40 +0800

Add zombie hornet tile

--------------------------------------------------------------------------------
db1d69e2aa | Aidan Holm | 2020-03-22 14:37:46 +0800

Use single-line style for Python imports

--------------------------------------------------------------------------------
728da59b6a | Aidan Holm | 2020-03-22 14:37:30 +0800

Fix lint / type errors for userdb.py

--------------------------------------------------------------------------------
e95d391c20 | Aidan Holm | 2020-03-22 11:53:55 +0800

Add some test cases for cookie authentication

--------------------------------------------------------------------------------
ecb0247d05 | Aidan Holm | 2020-03-22 11:53:55 +0800

Extract cookie authentication logic to its own file

--------------------------------------------------------------------------------
74e85d6d08 | Aidan Holm | 2020-03-22 11:53:55 +0800

Refactor userdb.py with a context manager

--------------------------------------------------------------------------------
6255c8be16 | Aidan Holm | 2020-03-22 11:53:55 +0800

Fix lint errors

--------------------------------------------------------------------------------
6245e20cc0 | Aidan Holm | 2020-03-22 11:53:55 +0800

Add requirements.txt tools, formatting, and linting
This commit adds a simplified build setup for the webserver project.
User and developer dependencies are specified in requirements.in/ and
compiled to version-pinned dependency lists in requirements/.

This commit also adds some basic linting and formatting tools. All
formatting warnings are disabled, and should be enabled one by one as
the code is organized. I've also thrown in pytest and coverage, although
I haven't set them up yet.

--------------------------------------------------------------------------------
c9638ee9a8 | gammafunk | 2020-03-21 21:48:05 -0500

Simplify and rebalance Frozen Ramparts
This spell nicely fills the gap left by the removal of Throw Frost, but
it suffers from being a mashup of two ideas: mine was a wall-oriented
positional spell and ebering's was a spell to slow monsters in some
interesting way. The former idea is relatively straightforward for a
damage spell, but slowing monsters has the potential pitfall of
introducing too much kiting. There's room for a spell that does both,
but this is harder to balance for the low-level spell we're going for.
Right now the slowing aspect of Ramparts isn't interesting, and the
spell is very strong while being in the strongest starting book in the
game.

This commit simplifies and rebalances the spell by removing the slow
movement monster debuff and making the damage pure BEAM_COLD. Hence
Ramparts is no longer partly resistable, but it will slow cold-blooded
things like hydras. I think a mass-freeze spell that uses walls is
interesting and reasonably balanced at level 3.

I've also tweaked the damage message to include damage punctuation and
to always use singular "wall" in the message. Many players aren't aware
that only one wall can ever effect a monster regardless of how many icy
walls are adjacent. Incidentally, this is also true of slimy walls
burning monsters, but the player *can* be affected by multiple such
walls. Monsters, they're dirty cheaters!

--------------------------------------------------------------------------------
8c222c7a2b | Aidan Holm | 2020-03-21 21:02:23 +0800

Remove open() call with both read and write modes
Doesn't work on Python 3.

--------------------------------------------------------------------------------
d8b0990838 | Aidan Holm | 2020-03-21 20:57:23 +0800

Fix str/bytes issues

--------------------------------------------------------------------------------
c3cff19e7c | Aidan Holm | 2020-03-21 20:57:23 +0800

Add type hints

--------------------------------------------------------------------------------
e9e63544fe | Aidan Holm | 2020-03-21 19:03:19 +0800

Convert exception indexing to py3-compatible code

--------------------------------------------------------------------------------
d602d06ee1 | Kate | 2020-03-21 01:49:20 +0000

Mark scarves of rMsl useless with innate rMsl (#11157)

--------------------------------------------------------------------------------
db18ab75e8 | gammafunk | 2020-03-20 18:09:45 -0500

Fix recasting after Divine Exegesis (AliasTheSpectator)
It's possible to cast a spell under Sif's Divine Exegesis and then use
the spellcasting interface to recast the spell using the '.' key even
when the spell isn't memorized. Spells cast this way don't get the
benefits of Divine Exegesis, so this bug only lets you save spell levels
by casting unmemorized spells you'd otherwise already be able to cast.

This commit fixes the spellcasting UI to properly unset the value of the
last cast spell if it isn't memorized before the spell prompt is made,
preventing the exploit.

--------------------------------------------------------------------------------
b4487340cb | Goratrix | 2020-03-20 15:43:17 -0400

Fix randart weapon names (12228)
Missing end of line, probably caused by the recent commits
that reorganized the lookup files.

--------------------------------------------------------------------------------
7f95dfe86c | Byrel Mitchell | 2020-03-20 12:02:46 -0400

Added room for tactics to vaults in simple.des
This file is also intended as a tutorial of sorts for reading vaults, so I 
attempted to keep changes I made as syntactically simple as possible. This was 
most impactful in some of the large vaults (eg erik_arrival_triangle_huge) 
which needed the first few rooms marked no_monster_gen; I made the entire vault 
no_monster_gen rather than introduce a KMASK in such cases to retain their 
syntactic simplicity.

Vault list:
minmay_arrival_wavy_path: Single path, single exit vault. I moved the entrance 
to the center of the wavy path and added second exit symmetrical to the first.

matt_arrival_spirals: Two of the three starting locations could have you 
trapped by a randomly generated monster. Adding no_monster_gen allows the 
player to get to the main corridor, with multiple exits, prior to finding 
monsters.

lemuel_arrival_funnel: The island in the center of this vault had a 1:8 chance 
of being removed. In that case, this vauls was single-path, single-exit. I 
removed that possibility from the SUBST list.

minmay_arrival_pointy: Single path, single exit. I added a corridor between the 
points, which should allow you some tactical flexibility.

dpeg_arrival_radiant: This had a change to generate a single exit; I changed it 
to guaranteeing two. I also fixed what appeared to be a typo making the 
top-right path have two chances to be closed off, instead of one like the rest 
of the paths.

dpeg_arrival_tiny_i/j/k: These have the potential (or guaranteed for k) for the 
left end of the path to be blocked off by mapgen (making it single exit.) I 
added an escape hatch in case that happened.

dpeg_arrival_windows_large_door: Single-exit room. I added a door to the back 
side of the room as well.

erik_arrival_triangle_small/medium/large/huge: All of these have the potential 
for a monster to be generated in one of the first 3 rooms, before you have any 
interconnectivity or options. I marked these vaults as no_monster_gen; possibly 
they should be moved out of this file and a KMASK applied to just the first 3 
rooms.

minmay_arrival_plants_in_alcoves: Single path, single exit. I added an island 
made of plants/fungus/bushes/trees to the center.

noname_arrival_rooms_in_the_neighbourhood: This one was single-exit rooms, and 
was missing the SHUFFLE statement to make it possible to spawn in each room. I 
added a second exit to each room and the SHUFFLE statement, and moved it to 
small.des since the header was too long for simple.des.

onia_arrival_mini_spirals: This one had 4 paths with no interconnection and a 
single exit. I added a door connecting two of the paths and marked it as 
no_monster_gen to avoid a monster spawning in one of the initial spirals.

zelgadis_glass_arrival_small: This has guaranteed islands outside of the 
spiral. I added no_monster_gen to avoid monsters spawning and blocking the 
initial spiral.

dpeg_arrival_snail: Single path, single exit. I added a door to allow the 
player to generate a pillar in the center of the spiral while maintaining the 
current auto-explore spiral path.

ncdulo_halloftheorcs: Single exit room into the rest of the vault with 
monster_gen on. I added a second exit to the room (facing the same direction to 
give the player a similar first time experience.)

tarquinn_simple_flora_water_a: Single path, single exit. I removed the tree 
that kept you from walking around it.

tarquinn_simple_flora_water_c: Each side is single path, single exit unless 
pool_fixup creates a shallow water path across. I added a second exit to each 
side (and eliminated a meaningless A in the second subst.)

tarquinn_simple_flora_water_e: Single exit room. I added two more exits.

saegor_arrival_simple_d: Single exit room, and no handy way to add an exit 
without changing the aesthetics. I added an escape hatch instead.

scummos_arrival_gate: Single path into a single exit room. I added pillars of 
shallow water and lava to the sides of the path.

lightli_molten_gateway: Single exit room, and no handy way to add an exit 
without changing the aesthetics. I added an escape hatch instead.

mrwooster_arrival_statue_1/2/3: Open alcove design. I added a couple statues to 
the center to give the player something to work with tactically.

wheals_arrival_linesprint: Single path, single exit. I added a door connecting 
two parts of the 'line-sprint'.

wheals_arrival_shading: Room with a single exit. I added a couple islands.

lightli_arrival_flooded_house: Single path, single exit. I added a second exit.

giann_wishing_wells: This vault had a single exit with a plain antechamber; not 
much you could do aside from retreat to one of the sides. I added a couple more 
entrances to the antechamber.

psy_arrival_conway: This vault actually had two shallow water exits (one toward 
the top and one toward the bottom) which could be used for pretty interesting 
tactics. However, it's not clear without fully exploring which of the 4 alcoves 
are dead ends and which have a path, which makes this spoilery. I added a third 
path across which ensures that no matter which way you run, you'll find a path 
before you have to commit to an alcove.

psy_arrival_dodecagon: This vault had a 50% chance to be a single exit room. I 
added a second guaranteed exit.

psy_arrival_heroes: This was a single exit room. I added a couple more hero 
statues which could be used as pillars or chokepoints as needed.

wander_arrival_desolate: This vault is essentially just empty space. Odds are 
that this will be fine, since D:1 mapgen will probably put multiple entrances 
to it, but that's dependent on the current choice of map generator for D:1. 
Just in case, I added an escape hatch. I also applied the 'desolate' floor 
tiling to the features (arch, fountains, dungeon-exit, and escape hatch.)

wander_arrival_chamber: Single exit room. I added two more exits.

--------------------------------------------------------------------------------
3cd4bd21d0 | RojjaCebolla | 2020-03-20 09:11:31 -0400

Add more kinds of divine favor
tired of seeing Foo's Supremacy on items!
--------------------------------------------------------------------------------
391622d9d0 | klorpa | 2020-03-20 09:08:28 -0400

British Spelling corrections
Most important are the corrections to the manual and options guide, the
monster shouts, and the database descriptions. This commit also corrects
a variety of comments in the codebase.

[ Committer's note: Closes #1321 ]

--------------------------------------------------------------------------------
189b929d56 | gammafunk | 2020-03-20 03:01:20 -0500

Add a player ghost door_vault variant
This door vault places multiple player ghosts, 7.5 on-average and up to
10. This will make an extra challenging yet rare door vault variant
that's sure to delight fans of gammafunk_ghost_cemetary. Accompanying
the ghost are 8 and 9 spawns, similarly to what is done for the original
door vault.

It uses the same common setup function as other door vaults, hence
places multiple loot items, but additionally places two more specialized
loot items that more aggressively upgrade in quality with depth, as it
done for other challenging ghost vaults. There is a ghost room variant
for Vaults to go along with variants for this branch added in prior
commits.

The weight of these variants is 2 both because they're extra challenging
and to keep placement less than the main door vaults.

--------------------------------------------------------------------------------
6e2ea9a1e6 | gammafunk | 2020-03-20 02:02:42 -0500

Some tweaks to reverse_door_vault
This variant of door_vault is unique in that it places a single upstairs
in an enclosed area, with the doors revealing this area fully. I've
modified it to use the common door vault setup function, so now it
places appropriate loot. I don't change the levels of placement, since
this one isn't interchangeable with the other variants.

The monster set and count are fine, since it only uses 8 and 9 spawns in
the same numbers as door_vault. Due to presence of a staircase, this
vault in its current form will always be less prone to killing people.
Hence I'll probably revamp it to add traps and/or specialized monster
placement.

--------------------------------------------------------------------------------
edb9745848 | gammafunk | 2020-03-20 02:02:42 -0500

Revamp not_door_vault_due
This "elephant" door vault variant placed normal and dire elephants, but
notably placed a single hellephant. Unfortunately, non-demonic elephants
are not challenging through the range of this vault's placement, and a
single hellephant does make up for this. So rather than leaving this as
an easier door vault variant, I've revamped the monster set to focus on
its hellish and demonic themes. I've also brought its level placement in
line with the other door vault variants to reduce spoilers.

The new monster set includes hell hogs and hell hounds for Dungeon, a
chaotic theme for Elf and Zot, and a mix of hell knights, hellions and
balrugs for other branches. At least one hellephant is always present,
and additional ones are added, scaling with depth of placement, up to 4
guaranteed hellephants in Geh and Dis.

As I've done for the other door vault variants, the common setup
function is used, which adds appropriate loot. There is also now a
version of this vault for the Vaults branch.

--------------------------------------------------------------------------------
0b42b9124f | gammafunk | 2020-03-20 01:53:36 -0500

Some tweaks to not_door_vault_mu
Make this whimsical version of door_vault place over the same range as
the actual door_vault. This way there aren't spoilers as to which
branches can give you an easy door vault. Use the shared setup function,
which also means we place loot. These vaults place late in the game and
this variant is weight 1, so some free loot in exchange for the bravery
of opening a door vault is fine. Finally, add a variant for Vaults
branch as an "empty" room.

--------------------------------------------------------------------------------
88be836da1 | gammafunk | 2020-03-20 01:53:23 -0500

Revamp door_vault
This is one of the great spoiler vaults that we allow to remain in the
game, but the vault could use some improvements. Expand its placement a
little to include D:13-14 instead of just D:$. Subsequent commits will
reduce the number of spoilers it does have by giving it and its
look-alike variants the same placement, for the most part. That way, no
matter where you open door vault, you may discover an 8 and 9 spawn zoo,
a hellephant zoo, or just a room full of lovely butterflies!

Tweak the monster sets to have uniformly difficult branch-specific
monsters together with end-level branch spawns at somewhat higher
weight. Before this change, the monster lists had individual weaker
monsters in addition to a high-weight normal branch spawn entry, which
is redundant. I've also made the nasty spawns more memorable, with
attention given to the top-tier branch-unique monsters.

Finally, this commit adds a common setup function for all door vault
variants to set loot and door markers and glyphs. Door vault was
notorious for not placing loot, making it purely an exercise in XP gain.
The addition of on-average 8 good items makes the decision to open a
door vault feel less silly.

--------------------------------------------------------------------------------
9331b4e32b | gammafunk | 2020-03-20 01:50:38 -0500

Tweak placement of a ghost vault
The vault gammafunk_ghost_crypt places ordinary liches in Dungeon, which
are scary but comparable to other out-of-depth spawns for the branch,
hence it doesn't need down-weighting there. Also allow it to place from
D:13-D:15 instead of just D:15.

--------------------------------------------------------------------------------
0c6c292ef3 | Goratrix | 2020-03-19 19:05:01 -0400

Add the new octopode loading image to webtiles
Commit ee0576305db0a1a64f1e85ae863a749289b8fd71
added the new image to local tiles, but not to webtiles.
I used commit da47cbf8c3a56b00bc71d06f4eb5fa7dc4a1203e
as a template for this.

--------------------------------------------------------------------------------
d1561dc703 | klorpa | 2020-03-20 01:10:13 +0800

TypoFixes

--------------------------------------------------------------------------------
3dcfff35b7 | Goratrix | 2020-03-19 23:51:12 +0800

Fix spelling in god descriptions
Correct spelling of 'worshiper' -> 'worshipper' in Sif Muna
and Fedhas descriptions, consistent elsewhere in the game.

--------------------------------------------------------------------------------
7713895373 | advil | 2020-03-18 15:43:24 -0400

Refactor init_user to be asynchronous
This code calls a script via a subprocess. On CAO, this script takes
about 600ms to run on average for new users, and so was triggering
timeouts on nearly every new user (potentially on logins as well),
presumably blocking the server as well. This refactors things so that
the exit condition is checked and handled in a callback rather than in
the same function after the subprocess returns. (This code be cleaner in
pure python 3, but I couldn't get any of those solutions to fully work
with the needed backwards compatibility.)

--------------------------------------------------------------------------------
c915619fb7 | advil | 2020-03-17 21:38:03 -0400

Fix a bytes/str issue (I think)
I think this will pop up with any wrapper scripts, like save upgrades. I
haven't been able to test this hypothesis because I don't have a local
dgamelaunch-config setup to test it in, and the scripts are fairly
complicated.

--------------------------------------------------------------------------------
764d637734 | Alex Jurkiewicz | 2020-03-17 18:48:41 -0600

Don't print to stderr
This just messes up ordering of output, eg
https://github.com/crawl/crawl/pull/1309/checks?check_run_id=486144227

--------------------------------------------------------------------------------
df4ec1e6d9 | Alex Jurkiewicz | 2020-03-17 18:48:41 -0600

Refactor deps.py
* Simplify main program flow
* Type functions

--------------------------------------------------------------------------------
0d1dd5979a | Alex Jurkiewicz | 2020-03-17 18:48:41 -0600

Add retry support to deps.py

--------------------------------------------------------------------------------
ce76ff1ea0 | Goratrix | 2020-03-17 20:46:30 -0400

Small spelling and grammar fixes
1. Rattle-Snake -> Rattlesnake
2. rembered -> remembered
3. make capitalization consistent to the rest of the text and correct singular:
'A Ballistomycete release spores' -> 'A ballistomycete releases spores'

--------------------------------------------------------------------------------
6753bc3f19 | Goratrix | 2020-03-17 18:43:39 -0600

Correct transparency in shortened scarf tiles
Deleted transparent pixels had RGB values white instead of black,
causing slightly larger files.

--------------------------------------------------------------------------------
303c1a17cd | Goratrix | 2020-03-17 18:43:39 -0600

Shortened versions of scarf tiles (#12210)
Some of the current scarf tiles are too long and obstruct the body armor
underneath. This commit makes all of them the same length, which is
2 pixels shorter than the current shortest ones.

--------------------------------------------------------------------------------
55f492496c | Edgar A. Bering IV | 2020-03-17 20:39:48 -0400

Correct spelling (ByrelMitchell)

--------------------------------------------------------------------------------
16f5e22943 | theJollySin | 2020-03-17 20:34:30 -0400

Added a few more strings for random item name generation

--------------------------------------------------------------------------------
fdc68c5d1e | theJollySin | 2020-03-17 20:34:30 -0400

Alphabetizing some random item word lists

--------------------------------------------------------------------------------
2400ba0dc2 | advil | 2020-03-17 20:28:36 -0400

Add a workaround for the LoggerAdapter py35 bug
It seems that many typical server configurations at the time of commit
are likely to have python 3.5 (thanks to alexjurkiewicz for
investigating), so an actual workaround is probably a good idea.

--------------------------------------------------------------------------------
40a04f2576 | Byrel Mitchell | 2020-03-17 17:52:01 -0600

Fixes comment about Trog paralysis protection.
passive_t::extend_berserk is available at 0 stars of piety, so there's no 
minimum protection level.

--------------------------------------------------------------------------------
63583cfaac | advil | 2020-03-17 19:12:18 -0400

Add a comment about the LoggerAdapter chaining issue

--------------------------------------------------------------------------------
ba6b7f88fc | advil | 2020-03-17 19:12:18 -0400

Override a mypy error for backwards-compat code

--------------------------------------------------------------------------------
20d90ebb82 | Kate | 2020-03-17 20:02:09 +0000

Update some webtiles stat colouring
It appears that the AC boost from the Demonspawn icemail mutation doesn't have
support for being highlighted in webtiles, but otherwise this should now be
back in sync with console colouring.

--------------------------------------------------------------------------------
382eb01629 | advil | 2020-03-17 11:19:27 -0400

Do admin check with a decorator
Will make it less likely that the check ever gets broken, also now
handles logging again.

--------------------------------------------------------------------------------
cb3c808f77 | Aidan Holm | 2020-03-17 22:39:44 +0800

Simplify admin announce code
Apart from the fact that this is less code, it's also more obviously
correct, with less state to manage.

--------------------------------------------------------------------------------
73ad250637 | gammafunk | 2020-03-17 00:02:21 -0500

A player ghost level for Ziggurats
This commit adds a player ghost monster set for Zigs that places ghosts
of players who've died in a Zig. The rest of the monsters have suitable
undead theme:

* soul eaters for LOS-wide HP drain and spectral warriors to remove MR
  (moderate weight decreasing with depth).
* deep elf death mages and ghost crabs to heal their fellow undead
  (flat, low weight).
* shadow dragons for ranged and melee draining as well as trampling
  (flat, low weight).
* eidolons for af_slow and revenants for dispel undead (increasing up to
  a moderate weight).
* black suns for more dispel undead and slowing as well as antimagic
  (flat, low weight).
* curse skulls and curse toes for torment and bogging players down with
  summons (flat, low weight).

This gives a nice mix that's light on ghosts in early depths but ramps
up to 5 or more by halfway through the Zig. The player ghost set
replaces the "draining" monster set, since draining monsters are well
represented by this new one along with the Tartarus and Crypt sets. This
set remains at weight 2 to keep the frequency of "undead" floors from
being too high.

TODO: The Zig permastore bones file we ship has 45 ghosts, which is
already over the max of 20 we allow for adding new ghosts. Since a
server's permastore can thus only replace ghosts and won't grow past 45,
and since the non-permastore bones file is even smaller, player ghost
Zig levels are likely to see repeated ghosts. This is especially true of
mega Zigs, where monster counts of 650+ mean that a given ghost will be
repeated 12 times on-average. It might be good to have a higher limit
for the Zig bones files specifically, and to perhaps save XL27
characters that die in extended branches in the Zig file. This is
especially the case since we aren't currently using these extended
ghosts, although that's a separate issue to address.

--------------------------------------------------------------------------------
f4b266557c | advil | 2020-03-16 11:26:59 -0400

Tweak the logging fix
getLogger always succeeds, so a try...except block wasn't the way to go.

--------------------------------------------------------------------------------
9bc587e015 | advil | 2020-03-16 11:19:44 -0400

Suppress most access logging for tornado >= 3
There was code to do this that worked for Tornado 2.4, but it needed to
updated for later versions which have a more sophisticated logging
setup. This hides the flood of `200 GET` messages that are involved in a
normal connection.

--------------------------------------------------------------------------------
6918904177 | gammafunk | 2020-03-16 01:43:10 -0500

Properly set the admin flag in the WebTiles client
Some testing code was leftover from debugging the client-side portion of
the new admin panel such that all users saw this panel regardless of
actual admin status. The user admin check was properly handled in the
WebTiles server, so no non-admins could successfully use the message
facility. This bug just affected the visibility of the panel in the
client lobby.

--------------------------------------------------------------------------------
d0df705f03 | advil | 2020-03-16 00:33:55 -0400

Fix the ancient tornado compat code
I'm not clear on why this is necessary. Also, remove some debug code.

--------------------------------------------------------------------------------
7ee555d2e0 | advil | 2020-03-16 00:03:46 -0400

Fix an import
Avoid unneeded lazy implicit loading

--------------------------------------------------------------------------------
e46d086124 | advil | 2020-03-15 22:54:51 -0400

Move admin panel fully into client.html
It turns out this may need to be manually copied, incorporate it back
into client.html.

--------------------------------------------------------------------------------
eab1ddba54 | advil | 2020-03-15 21:27:22 -0400

Remove some debug code

--------------------------------------------------------------------------------
85570c75f3 | advil | 2020-03-15 21:23:57 -0400

checkwhite new file

--------------------------------------------------------------------------------
7c741bda01 | advil | 2020-03-15 21:18:43 -0400

Add a rudimentary serverwide announce facility to webtiles
This lets DGL admin users make server-wide announcements, e.g. if the
server is going to shut down. The announcement appears both in game logs
and in the chat window. The facility is pretty basic, but functional,
and is designed with the intent that it would be *extremely* rarely
used.

Some questions:

* should the admin panel remain part of client.html?
* Is DGL admin the right permissions level?
* what else should be added to the new admin panel?
* is announcing to both the game and chat too much?
* will this work with ssh games? (I think so?)

--------------------------------------------------------------------------------
75b0bbc335 | advil | 2020-03-15 21:07:51 -0400

Fix another bytes/string issue in a callback

--------------------------------------------------------------------------------
0321be95db | advil | 2020-03-15 12:58:32 -0400

A few cleanups to tornado compatibility code (aidanh)

--------------------------------------------------------------------------------
631d16749a | advil | 2020-03-15 12:36:23 -0400

checkwhite

--------------------------------------------------------------------------------
734848013d | advil | 2020-03-15 12:33:27 -0400

Tornado 2.4 compatibility hacks
It seems that many or all servers may be running the patched version of
Tornado 2.4 found in edlothiel's git repository. To ease transition to
modern versions, this commit implements several compatibility patches
needed to not completely break these servers. Everything in this commit
is ugly and not supposed to be permanent. (We know how that always
goes...)

--------------------------------------------------------------------------------
918647650c | advil | 2020-03-15 11:31:27 -0400

Log an error on `idle_connection_timeout` for old Tornado versions
Previously, this just prevented the server from starting and users of
old Tornado versions were instructed to install a patched version of
Tornado. This takes an alternative strategy of just ignoring the timeout
parameter, which is implemented on Tornado 4 and later. Hopefully this
won't cause problems for any active servers...

--------------------------------------------------------------------------------
2bf96b3bd9 | Aidan Holm | 2020-03-15 23:03:52 +0800

Fix broken static files base path
The existing setting is broken on newer versions of Tornado (>=3.1),
and apparently ignored on older versions. This is not a significant
security regression, as webtiles executes within a chroot anyway.

--------------------------------------------------------------------------------
c9c9e4cfe1 | Aidan Holm | 2020-03-15 11:16:58 +0800

Add missing IOLoop import

--------------------------------------------------------------------------------
b30770a0c0 | advil | 2020-03-14 11:24:37 -0400

A few small tweaks + one more byte/str fix
* fix a regex (aidanh)
* add an instance of `from __future__ import absolute_import` (aidanh)
* fix a missed byte/str confusion: the function is correctly typed but
  it's only used as a callback, so the type checker missed it.

--------------------------------------------------------------------------------
f09cd5ce19 | advil | 2020-03-14 11:24:37 -0400

Webtiles: static type annotations for low-level messaging
This didn't find any further bytes/str problems, but it did find some
messy Tornado inheritence stuff involving coroutines.

--------------------------------------------------------------------------------
9a49a99f9a | advil | 2020-03-14 11:24:37 -0400

Webtiles: minimal type annotations to pass static type checking
This is done in a way for maximal python 2.7 compatibility, using
comment annotations and very careful importing; not all versions of py27
will have `typing` even available without installing a package. (Though
the most recent ones should.) However, to actually do the type checking,
mypy should be run on the webserver directory in python 3.7 or so with
Tornado 6, which has full type annotations.

The fact that this passes is a good sign, but this commit only deals
with a bunch of global variables that mypy complained about; everything
else is implicit or inherited from Tornado.

--------------------------------------------------------------------------------
58c0c3d08e | advil | 2020-03-14 11:24:37 -0400

Updates for python 3 compatibility
The most challenging part of this was, not unexpectedly, the bytes/str
difference; I don't feel sure I've gotten every instance correctly. But,
in my testing this does work for everything. After this commit, the
webserver runs without change (as far as I have been able to tell) on
both python 2.7 and python 3, as well as Tornado version 3.2.1, 5.1, and
6.0.3.

The one thing I know I haven't carefully tested is ttyrec writing.

--------------------------------------------------------------------------------
6dcb09c756 | advil | 2020-03-14 11:24:37 -0400

Preliminary support for Tornado 5+
This involved 3 main changes:
1. restructuring how the ioloop is handled for Tornado 4.1+ standards.
Previously, ioloop instances were manually managed, but this was
deprecated in 4.1 and removed somewhere around 5. What I am not sure of
is whether the previous code, when run on Tornado 3ish, entailed many
ioloops in one process (something not actually supported by Tornado).

2. Rewriting GameDataHandler so that it doesn't override `get`.
Apparently this is a challenging thing to do right; the new version
parses the version number out of the url on request.

3. Restructuring shutdown/stop for better signal handling. The old code
looks slightly broken to me, and I suspect that issues here may be the
source of some issues where cleanup doesn't happen properly.

There are also a bunch of other miscellaneous fixes, some pulled from
webtiles-changes. In my testing, this actually seems to all be backwards
compatible to Tornado 3.2.1?? Which is a bit too good to be true...

--------------------------------------------------------------------------------
443c2f7d93 | Aidan Holm | 2020-03-14 15:20:31 +0800

Remove remember-me checkbox
It's pretty unintuitive to reload the page and be immediately logged
out.

--------------------------------------------------------------------------------
2ad0d861f1 | gammafunk | 2020-03-13 00:02:02 -0500

Complete the documentation of c_choose_acquirement
The previous commit's documentation was incomplete.

--------------------------------------------------------------------------------
a39ba6bebb | gammafunk | 2020-03-12 23:54:57 -0500

A clua interface for scrolls of acquirement
With the despoilering of acquirement in 0.25, a lua interface to the
acquirement menu is necessary so that clua users can inspect the results
and determine which item to choose. This commit adds a hook
c_choose_acquirement() that is called if it's defined in clua. It's
expected to return a valid index from the set of choices, using 1 for
the first item as is customary for lua. If no c_choose_acquirement
function is found, or if the call generates an error, or if the returned
index is invalid, the acquirement proceeds normally to the acquirement
menu. A valid call and return index will cause the indicated item to be
acquired, bypassing the menu.

This commit also adds items.acquirement_items() to the items library,
which returns a lua array of items.Item representations of the generated
items. All item details are provided, since acquirement gives fully
identified items. If acquirement is not in progress, this function
returns nil. Any c_choose_acquirement() function should call
items.acquirement_items() and inspect the results to make a
determination. I'll later add a commit to elliptic/qw#30 to add support
for 0.25 acquirement to qw using this interface.

Ideally we'd not have to have items.acquirement_items as its own
function and could just pass the item table as an argument to
c_choose_acquirement. I'm not sure if lua's "light userdata" facility
can accommodate this, and we have limited support passing arguments from
C++ to lua. If it turns out to be possible, we can refactor the
interface in a later commit.

--------------------------------------------------------------------------------
1e14c549ee | gammafunk | 2020-03-08 17:19:33 -0500

Update the mailmap for one of kate's addresses

--------------------------------------------------------------------------------
a6ea776cab | gammafunk | 2020-03-08 17:19:33 -0500

Update some vaults (minmay)
The vaults minmay_tri_stars and minmay_expanding_circles have diggable
loot areas or subsections. For tri_stars, these don't add anything aside
from wasting wand charges or luring deep troll earth mages. In that
vault, replace a back set of clear rock walls with floor for each loot
location. Also adjust the depth check to specifically check for Depths
branch instead of using an absdepth cutoff.

For expanding_circles, the vault partitioning can better be done with
clear runed doors, so add one for each inner section. Also tone down the
loot placement, since this vault was placing one loot item per monster.
Finally, remove some extra glyph usage that is no longer needed.

--------------------------------------------------------------------------------
b4d47b2760 | Aidan Holm | 2020-03-08 21:11:21 +0800

Bump copyright year to 2020

--------------------------------------------------------------------------------
4257648271 | Aidan Holm | 2020-03-08 19:52:28 +0800

Add zombie meliai tile

--------------------------------------------------------------------------------
c85e6996e4 | Aidan Holm | 2020-03-08 19:52:28 +0800

Add development_mode webserver setting

--------------------------------------------------------------------------------
3e75c3e6b8 | Aidan Holm | 2020-03-08 19:52:28 +0800

Fix Loading... webtiles text not vertically centred

--------------------------------------------------------------------------------
696c2ac64d | Kate | 2020-03-07 14:55:13 +0000

Remove an extra newline

--------------------------------------------------------------------------------
e45d3a369c | Kate | 2020-03-07 14:49:30 +0000

Don't list AC changes in descriptions when the player doesn't exist
For example when looking up items from the main menu.

--------------------------------------------------------------------------------
d0a4aac95e | Kate | 2020-03-07 14:46:52 +0000

Remove some duplicated AC info from descriptions
The information on how much AC mundane armour would provide is mostly obsoleted
by armour now displaying accurate details on AC changes later in the
description.

--------------------------------------------------------------------------------
1597fd302c | Kate | 2020-03-07 14:41:32 +0000

Unbrace

--------------------------------------------------------------------------------
550ad5aafd | Kate | 2020-03-07 14:06:38 +0000

Don't display AC changes for unusable armour (Yermak)

--------------------------------------------------------------------------------
c91f01c39c | Alan Malloy | 2020-03-02 14:02:15 -0800

Remove unused parameters (geekosaur)

--------------------------------------------------------------------------------
a4619f409e | Kate | 2020-03-01 19:14:17 +0000

Update dragonskin cloak's resistances (Bcadren)
To give rCorr instead of rSticky.

--------------------------------------------------------------------------------
50b708a4c4 | Kate | 2020-02-29 20:48:09 +0000

Prevent using tremorstones while confused
As with other targeted evokers.

--------------------------------------------------------------------------------
05681f805d | Kate | 2020-02-29 20:48:09 +0000

Don't allow invoking decks when silenced
Treat Nemelex's card draw abilities like normal invocations, since there's no
special justification for them to be treated otherwise outside of their
historical existence as items.

--------------------------------------------------------------------------------
e92a065291 | Kate | 2020-02-29 20:48:09 +0000

Re-brace

--------------------------------------------------------------------------------
45c6412621 | advil | 2020-02-29 11:59:16 -0500

Disallow evoking lamp/phial while confused
These two are almost the last remaining holdover of evocables that could
be used while confused. (I notice that tremorstones also work.) These
silently applied target fuzzing (see 657136525ae) in this case; if these
were to be usable while confused in modern crawl, I think they would
need to indicate to the player somehow what might happen. I ran across
this in a crash where an extremely desparate player was constricted and
chain-confused by golden eyes tried to target the constricting naga with
the phial, and fuzzing cause the wave to go the other direction and hit
a friendly demon. Luckily for this player, the game crashed during
knockback on the demon.

See cccf84277269a for wands, and 6178f7666a6f for rods. Unlike these
cases, I do think it's possible that lamp/phial might not be completely
useless with fuzzed targeting, so I wouldn't be opposed to bringing this
back if someone can solve the UI problem.

--------------------------------------------------------------------------------
79084b9aa6 | advil | 2020-02-29 11:39:33 -0500

Add a pointer check to actor::collide
This is to address a crash triggered by primal wave. It is in principle
a bug that the agent would be unset when a collision is triggered by
primal wave via phial, but I can't actually replicate the exact
circumstances that cause it to be unset. I think it may be able to
happen, somehow, when the player is confused?

In any case, this code can't assume that a pointer argument will not be
null like this.

--------------------------------------------------------------------------------
b5e01bddfa | Edgar A. Bering IV | 2020-02-28 09:25:36 -0600

Remove evilmike_run_for_it
We probably should have done this long ago, this arrival vault is a big
spoiler and places a monster so doesn't pass older criteria for arrival
vaults. With the hatch it does slightly better on the "permit tactics"
score, but not well enough to be worth keeping.

--------------------------------------------------------------------------------
7c1f9fe3b3 | Byrel Mitchell | 2020-02-28 09:25:36 -0600

Add room for tactics to vaults in twisted.des
I also simplified a few of the vault definitions by removing meaningless
statements, etc.

Vault list:

- shiori_arrival_whats_in_store_for_you

This vault has a single path and half of the time a single exit, which
makes it possible for the player to get trapped by a bad monster spawn
outside the vault. I made it always have 2 exits.

- dpeg_arrival_solitude

This vault has one of three single-exit paths. I added a second exit to
each. I also simplified a shuffle/subst sequence that had meaningless
features.

- dpeg_arrival_connections

This vault could potentially spawn you in a corner with no paths behind
you; depending on what the randomly generated terrain and monsters are,
that could be pretty bad. I added an escape hatch in whichever quadrant
the player arrives in.

- shiori_arrival_maze

It's possible for this vault to only give you exits from the starting
chamber to a single corner, and then only be able to leave that room to
the outside through a singe exit. I added a second exit to each corner
room. I also removed a meaningless SHUFFLE command.

- erik_arrival_cave_to_civilisation

The only guaranteed paths away from each starting location are
single-tile-wide single-path corridors for quite a ways. I added a
second internal path near each starting location to give some tactical
space.

- shiori_arrival_elements

Another single exit vault. There's not really a way to add a second exit
without screwing with the theme of this vault, so I added an escape
hatch to the starting room.

- nagdon_arrival_double_spiral

Another single-exit, single-path vault. I removed a couple of walls in
the center to provide some tactical depth while preserving the in/out
spiral symmetry. I also removed a KFEAT statement with no corresponding
glyphs.

- nagdon_arrival_zigzag_paths

There are two versions of this vault which were single-path,
single-exit. I added a second exit to each.

[ Committer's note: wrapped message to 80 cols. Closes #1299 ]

--------------------------------------------------------------------------------
5969469250 | Byrel Mitchell | 2020-02-28 09:25:36 -0600

Modify five vaults in large.des to add tactics
The current arrival vault standard is for arrival vaults to have
multiple exits, a hatch, or a large enough internal space for relevant
tactics. I went through large.des picking out clear offenders (using the
simplified rubric that anywhere a single gnoll could spawn should still
leave you with more options than 'tab and hope you win.')

elethiomel_arrival_infinity_welcomes_careful_drivers: This vault has an
issue if a gnoll spawns in the closet just outside the starting room. I
marked the contents of the infinity-symbol as no_monster_gen.

erik_arrival_gehennom: This vault explictly places a goblin and kobold
(with standard weapon generation) right outside the starting room. Many
starts are incapable of fighting a goblin and kobold with a bad weapon
spawn in this layout. This vault is also spoilery and doesn't even match
any vaults in Nethack (which it's supposed to be an homage to.) I
removed it.

kilobyte_arrival_exit_the_forest: This vault is effectively a single
long corridor with monster-gen on; if a gnoll spawns and you can't fight
him, you're screwed. I added a path through the woods in the northwest
so you have a large pillar to work with, and a second exit past the
water to the south-east.

arrival_zaba_pyramid: Each of the possible starting rooms are
single-exit, and monster-gen is on. So it's possible for a gnoll to
spawn right in front of the door to your room, and completely block you
in. I marked the small intermediary rooms as no_monster_gen.

minmay_arrival_shoal_huts: This vault is another case with single-exit
entry rooms which can be blocked by an unlucky gnoll spawn. I added a
hatch to each entry room as an additional option.

[ Committer's note: wrapped message to 80 cols. Closes #1290 ]

--------------------------------------------------------------------------------
e51c5052c3 | theJollySin | 2020-02-28 08:31:44 -0500

Improve the tactics of some overly-simple arrival vaults
There were three vaults in particular without decent tactical options:
* lightli_arrival_noodles
* minmay_arrival_checkered_box
* minmay_arrival_solitary_statue

Two more arrival vaults were borderline and so got slightly tweaked:
* dpeg_arrival_water_temple_mockup
* evilmike_arrival_run_for_it

[ Closes #1284 ]

--------------------------------------------------------------------------------
33daf1f691 | Alex Jurkiewicz | 2020-02-28 08:24:13 -0500

Don't fail CI if Codecov upload fails
Pull requests from forked repositories don't have access to secrets in
the master branch (because attackers could trivially retrieve them).
This means we can't upload Codecov reports from cross-repo pull
requests.

Luckily, the Codecov action has an option for this.

(In future, it would be better if this value was `true` for in-repo
builds and false for cross-repo builds, but the implementation of that
is awkward and probably not worth it. (For the record: write a previous
step which uses a shell script to determine the parent repo and set
`true` or `false` as an output, which you can reference to set the value
of fail_ci_if_error.)

--------------------------------------------------------------------------------
062765be81 | ufshaikh | 2020-02-26 16:54:11 +0000

Put runes back on default autopickup (Lici the Crawler) (#1298)
Fixes a syntax error in 458a23e4a.
--------------------------------------------------------------------------------
8875c97ebb | Kate | 2020-02-25 20:14:11 +0000

Remove Maxwell's etheric cage
The upside of faster MP regeneration now exists in a fairly common form on
amulets, and even if it were a more notable upside, the downside of doubled
contamination also isn't very relevant with the removal of Haste spell.

--------------------------------------------------------------------------------
e09e1d40ed | Kate | 2020-02-25 19:02:16 +0000

Update lightning rod description

--------------------------------------------------------------------------------
458a23e4a9 | Kate | 2020-02-25 19:01:24 +0000

Don't list zigfigs on the autopickup menu
They're a unique(ish) item like the horn of Geryon, and not something that the
player would want to toggle autopickup for in the course of normal play. Add
them to default autopickup instead like runes, to make sure they don't get
missed.

--------------------------------------------------------------------------------
93f73f95a8 | Umer Shaikh | 2020-02-25 19:01:09 +0000

Disallow -tele on artefact weapons and jewellery
-tele is usually not a meaningful bad artefact property on weapons and
jewellery, since swapping away from those items is so quick.
Furthermore, putting -tele on quick-swapping items allows the player to
explore with a -tele item equipped and swap to their "real" equipment
for fights, thereby avoiding teleport traps and teleportitis at marginal
cost. This is frustratingly uninteresting gameplay. And it allows the
player to neutralize the gameplay benefits of teleport traps with little
risk and no real investment or decision-making regarding their
character's loadout.

A simple solution is to prevent -tele from spawning on any weapons or
jewellery. We could also try to make sure that on jewellery and weapons
-tele always pairs with other properties that make swapping less
trivial (*contam, fragile, harm, etc.), but I am skeptical that the
complexity is worth the trouble.

I also considered changing the behaviour of -tele to stop translocations
only from an internal source. Then wearing -tele would not affect
teleporting unless the player could already choose whether or not to
teleport, so there is no reason to swap to -tele to explore. However
this is additional "player-facing" complexity, in that there is another
somewhat fiddly rule for the player to learn; even very careful players
don't need to know about rules governing placement of artefact
properties. Furthermore it does not address the first issue mentioned,
that weapon and jewellery -tele is rarely an interesting drawback.
Finally this approach takes away an arguably interesting strategic
choice that players are making, to wear -tele on armour to prevent
teleport traps in particular places (esp. Zot).

[ Committer's note: simplified and added a comment. Closes #1292 ]

--------------------------------------------------------------------------------
0977b4d109 | Nicholas Feinberg | 2020-02-24 21:28:59 -0800

Rename a variable (alexj)

--------------------------------------------------------------------------------
3013cc3748 | Nicholas Feinberg | 2020-02-24 21:28:56 -0800

Remove Call Imp type scaling (Wise Wolf)
The type of imp you could get would vary subtly with spellpower,
but only after a baffling secret 46-power breakpoint. (Introduced
in 854173f2e9b9 / 48f4e9825740 almost 10 years ago, at a time when
the maximum power for the spell "seemed to be 71"?)

I don't think there's any particular need to make a level 2 spell
marginally more useful in the mid-game, and this change should have
almost no effect on how the spell is used in practice. Just
simplifying it so we don't need fun graphs like
https://i.ibb.co/qBvQt9d/unknown.png .

--------------------------------------------------------------------------------
be304fddcf | Nicholas Feinberg | 2020-02-24 21:07:38 -0800

Improve new Brilliance (bhauth, kate)
Restore the duration to its old length, to match might and stabbing
- the new effect and the old one were closer in power than I'd
realized at plausible mid-game stat + skill values. Also remove the
hunger cost entirely, to make the effect more dramatic.

--------------------------------------------------------------------------------
78a2afb0af | Kate | 2020-02-23 21:54:57 +0000

Remove Berserk's strength bonus as well
For consistency with might.

--------------------------------------------------------------------------------
38680ca743 | Kate | 2020-02-23 21:49:31 +0000

Don't recolour Dex on the HUD with agility active

--------------------------------------------------------------------------------
e1aed2b2b9 | Nicholas Feinberg | 2020-02-23 13:48:47 -0800

Cleanup might potion str

--------------------------------------------------------------------------------
c801180b7c | Nicholas Feinberg | 2020-02-23 13:11:38 -0800

Remove the str bonus from !might
!might is a potion that makes you much better at melee combat. It
also, incidentally, gives you 5 str, which adds a little more melee
damage, improves your accuracy and spellcasting chances in armour,
and so on.

Simplify and focus on the core idea of the potion by removing the
bonus strength. The bonus damage remains very beefy and noticable,
and there are plenty of other ways to play with HUGE STRENGTH.

--------------------------------------------------------------------------------
a2a17f8f3d | Kate | 2020-02-23 20:55:54 +0000

Update brilliance status description

--------------------------------------------------------------------------------
6c87d81395 | Kate | 2020-02-23 20:42:20 +0000

Improve potion of stabbing description

--------------------------------------------------------------------------------
72f5e5e9d2 | Kate | 2020-02-23 20:42:20 +0000

Update status documentation

--------------------------------------------------------------------------------
797ef2793a | Kate | 2020-02-23 20:42:16 +0000

Simplify agility to only apply bonus evasion
Remove the +5 dex and bonus to stealth, both of which were far less relevant
than the fixed bonus to evasion.

--------------------------------------------------------------------------------
26026c6c98 | Nicholas Feinberg | 2020-02-23 07:57:34 -0800

Rework the potion of brilliance
At present, the potion of brilliance is an odd bird. It decreases
spell failure cost dramatically and increases spell power slightly,
essentially acting as a 'potion of cast high fail chance spells'.
This encourages players to memorize spells that they can't normally
cast just for the few times during a game they'll use !brill. The
UI for this isn't great (how do you tell what your fail chance will
be after you drink it?), and it's relevant to almost all characters,
meaning that everyone's inventories and tactical options are
cluttered with it.

This changes !brilliance to instead do two specific things: act as
a universal spell enhancer (like archmagi) and reduce spell hunger
costs by half. The former is a buff for 'casters', but probably
not something most 'melee-focused' characters care about (and thus
need to have in their inventory). The latter is intended to act as
moral encouragement to blast away with your most powerful spells
while the potion is running.

The new brilliance looks more powerful than the old one, so its
duration is roughly halved.

--------------------------------------------------------------------------------
6e6e6501ad | Kate | 2020-02-22 17:03:09 +0000

Mark a slime entry vault as no_tele_into (#12206)

--------------------------------------------------------------------------------
19b58906dc | Kate | 2020-02-22 17:03:09 +0000

Re-brace

--------------------------------------------------------------------------------
27a0b5d1ef | Nicholas Feinberg | 2020-02-20 20:08:31 -0800

Fix tremorstone vaults

--------------------------------------------------------------------------------
0bd1ac1125 | Nicholas Feinberg | 2020-02-20 19:11:51 -0800

Make tremorstones multi-use
As with boxes of beasts and sacks of spiders, each tremorstone
item can be used repeatedly until it (1/3 chance) collapses. The
goal is to make them a bit stronger and worth carrying, since a
single shot of a rare item wasn't quite worth it in practice.

--------------------------------------------------------------------------------
e4db218afc | gammafunk | 2020-02-20 00:01:59 -0600

Update the changelog (PleasingFungus, Ge0ff)
Through 0.25-a0-544-gee0576305d. Remove the entry for the staff of
Battle, since that was already released in 0.24! oops.

--------------------------------------------------------------------------------
ee0576305d | gammafunk | 2020-02-19 15:07:35 -0600

A new octopode splash screen from Nibiki
Nibiki has agreed to license this image under CC0. Many thanks to him
for this great artwork.

--------------------------------------------------------------------------------
450b2806fe | Alex Jurkiewicz | 2020-02-19 15:33:28 -0500

Create ~/.ccache if needed

--------------------------------------------------------------------------------
5e20511321 | Byrel Mitchell | 2020-02-19 10:06:18 -0500

Change chance of triggering paralysis/pain bond to be turn-length invariant
Previously, this formula gave you a significant higher chance of triggering a 
paralysis or painbond event per aut if you were taking shorter actions:

0 auts remaining on TIMER:
10 aut turn => 0.01 events/aut
5 aut turn => 0.02 events/aut

200 auts remaining on TIMER:
10 aut turn => 0.0033 events/aut
5 aut turn => 0.004 events/aut

This incentivizes doing fast actions whenever you have to wait at higher piety 
instead of simply resting. It's even optimal when enemies are out of sight, 
since a paralysis/pain bond event triggering when no enemies are in sight 
resets the relevant TIMER to 0.

The new formula makes the expected value of events proportional to the duration 
of the turn, and so eliminates all turn-length dependence except for rounding 
errors. Event rates are all set to the same as with 10 aut actions previously, 
regardless of action length. This is probably a slight nerf in general, but a 
significant nerf to quickblade Uskers.

--------------------------------------------------------------------------------
a829c891c6 | Alex Jurkiewicz | 2020-02-19 09:39:17 -0500

Improve macOS Makefile support
BSD sed (used on macOS) lacks -r and has different semantics for -i,
which causes some incompatibilities. Allow the user to override the sed
command for these sed calls, eg "make SED=gsed"

macOS also has BSD find which lacks -o as an alias for -or. Change the
Makefile to use -or as GNU find also supports this.

--------------------------------------------------------------------------------
8ea5abb603 | Alex Jurkiewicz | 2020-02-19 09:38:35 -0500

Add size limits to ccache

--------------------------------------------------------------------------------
c37ea4fa11 | Alex Jurkiewicz | 2020-02-19 09:38:35 -0500

Display ccache config per-build

--------------------------------------------------------------------------------
0a83c12206 | Alex Jurkiewicz | 2020-02-19 09:38:35 -0500

s/coveralls/codecov/

--------------------------------------------------------------------------------
bfe250d9be | Alex Jurkiewicz | 2020-02-19 09:38:35 -0500

Exclude catch2-tests/ from coverage data

--------------------------------------------------------------------------------
360c081f3e | Alex Jurkiewicz | 2020-02-19 09:38:35 -0500

Disable Codecov pull request comments

--------------------------------------------------------------------------------
9273b557bc | Edgar A. Bering IV | 2020-02-19 08:47:09 -0500

Update new dev guidelines
As the newest dev I suppose this falls to me. This update restores the
information about the process for adding a member to the team that got
lost in the dev-doc-shuffle of 2017, wraps things to 80 columns,
and updates some links and process information to point to github.

--------------------------------------------------------------------------------
8cb9f22522 | Edgar A. Bering IV | 2020-02-19 07:54:11 -0500

Wrap to 80 columns
Closes #1275

--------------------------------------------------------------------------------
f48561505f | Alex Jurkiewicz | 2020-02-19 07:54:11 -0500

Remove install instructions for Void Linux
They were added several years ago by a now deleted user in #460. The
package names are all unsurprising and no special steps are required, so
it seems unnecessary to include.

--------------------------------------------------------------------------------
9592c2e932 | Alex Jurkiewicz | 2020-02-19 07:54:11 -0500

INSTALL.md improvements
* Install pngcrush & advancecomp
* Add a section on using DCSS's packaged dependencies

--------------------------------------------------------------------------------
fa7a6018de | Nikolai Lavsky | 2020-02-19 07:02:08 -0500

Don't mention player-only mechanics in monster spells descriptions
Several monster spells use descriptions of similar god abilities,
which reference the Invocations skill or player-only mechanics.

Fix this and, as a followup to 9231cdcb, adjust description for the
Drain Life spell.

--------------------------------------------------------------------------------
60722c7f10 | Nikolai Lavsky | 2020-02-19 07:02:08 -0500

Extend alias functionality for database lookups
Currently, descriptions for abilities, spells, and dungeon features can
be reused via aliases, d52d0508. But it's not possible to use an alias
and then add details to it.

This commit adds support for a new type of marker for database entries,
[[foo]]. Any [[foo]] marker in a database entry will be replaced with a
corresponding entry's text before being displayed to the player.

--------------------------------------------------------------------------------
88f1615ccf | Nikolai Lavsky | 2020-02-19 06:57:56 -0500

Update Summon Drakes description
Dragons were cut from the spell and replaced with lindwurms in 9b5a2163.

--------------------------------------------------------------------------------
6b7c99946c | advil | 2020-02-18 16:35:06 -0500

Convert dummy agility to stabbing, not degen

--------------------------------------------------------------------------------
3d8dea327d | advil | 2020-02-18 16:31:09 -0500

Assimilate handling of dummy agility to other removed potion types
This is unfortunately ugly, but it does not crash. Basically, treat this
very temporary potion like any other potion that's been removed -- even
though it's last in the enum, keep it around until a major version tag,
and do save compat unconditionally.

This is a semi-revert of 08029b5080ff (sorry).

--------------------------------------------------------------------------------
11ec75b3b8 | Kate | 2020-02-18 20:21:48 +0000

Fix a flight message not displaying
Appears to have been broken by 4dc341646031.

--------------------------------------------------------------------------------
55f47c2aea | Kate | 2020-02-18 20:21:48 +0000

Reword a hint

--------------------------------------------------------------------------------
c048b62713 | Kate | 2020-02-18 20:21:48 +0000

Fix a monspeak entry (#12201)

--------------------------------------------------------------------------------
9afb2ee040 | Nicholas Feinberg | 2020-02-17 18:41:16 -0800

Remove a funny message
Jokes are like fish: they begin to smell after three days.

--------------------------------------------------------------------------------
2462c7bb1f | Nicholas Feinberg | 2020-02-17 15:55:10 -0800

Fix garbage potions

--------------------------------------------------------------------------------
b5d5f98535 | Nicholas Feinberg | 2020-02-17 09:15:12 -0800

Cleanup !agi cleanup

--------------------------------------------------------------------------------
08029b5080 | Nicholas Feinberg | 2020-02-17 09:08:39 -0800

Cleanup !agi
Remove the dummy potion hack.

--------------------------------------------------------------------------------
16a9eb376c | gammafunk | 2020-02-17 02:49:30 -0600

Mark potions of agility as removed (Yermak)
It's necessary to add these potions to the removed_items set so that we
don't get a "potion of bugginess" entry in the unknown item listing of
the identification menu. This entry might also be necessary to disable
things like generation, but I haven't checked this.

A subsequent commit should TAG_MAJOR various portions of agility potion
code, the related agility duration code, and remove the effect from the
list of Xom effects.

--------------------------------------------------------------------------------
766966629d | Nicholas Feinberg | 2020-02-16 22:10:34 -0800

Potion of agility -> stabbing
Potions of agility were not an interesting item. You plopped them
on when you were going to get in a big fight and they made you take
slightly less damage. It wasn't something that you used differently
from !might or !brill or arguably !haste, just another buff to stack
on the pile and clog up your inventory.

Instead, replace !agility with !stabbing, which gives a 50% chance
to upgrade weak stabs (distraction, etc) to strong stabs (sleep,
etc). This is most useful for 'stabbers', but any character that
can generate distractions (from allies, evocables, gods etc) and
stab people can use it, in a reasonably meaty and distinctive way.

Minor note: it's not marked useless for Ru chars who sacrificed
stealth because they could, in principle, still stab. (I think?)

--------------------------------------------------------------------------------
f8b3a32422 | gammafunk | 2020-02-16 17:50:41 -0600

Adjust floor and overlay tiles for Frozen Ramparts
With CanOfWorms' wall overlay tiles, the tiles for floors adjacent to
icy walls and for icy floor overlays look too bright and cyan. This
commit lightens and adjusts hue for both sets to work better with the
wall overlays. Now the icy floor tiles aren't such a contrast compared
to the final overlayed icy walls for wall types with darker tiles.

The wall overlays currently have clear boundaries between tiles. If
these overlays were reworked to fit together more continuously like our
wall and floor tiles do, it would improve the appearance. The floor
overlays are not necessary now that we have wall overlays, but the floor
overlays do fit together nicely and help break up the wall boundaries,
so I'm keeping them for now.

--------------------------------------------------------------------------------
7d600cd9ad | gammafunk | 2020-02-16 00:13:57 -0600

Have Fedhas protect plants from clouds (sdynet, 12195)
Fedhas now protects plants from a wide variety of player effects,
including explosions and LOS damage spells, but clouds aren't currently
included. Since we now track god conducts for cloud placement, it's best
to have the prevent placement of harmful clouds made by Fedhas'
worshipers at the locations of plant allies. This prevents e.g. scrolls
of immolation having Fedhas ally protection from the explosions but not
ally protection from the flame cloud placement.

--------------------------------------------------------------------------------
2e551bc22a | gammafunk | 2020-02-16 00:13:57 -0600

Remove an unused function argument

--------------------------------------------------------------------------------
fc522ff6eb | Aidan Holm | 2020-02-16 13:34:42 +0800

Disable lua load(), loadstring() bytcode loading

--------------------------------------------------------------------------------
e77a69270c | gammafunk | 2020-02-15 01:25:06 -0600

Clean up icy walls upon level load
Frozen Ramparts creates "icy walls" with the FPROP_ICY property. It
expires the props when the Ramparts duration expires, but early versions
of the spell didn't do this properly. In this commit we unset the prop
for all squares with the property that don't that aren't properly in LOS
of the last position of any active cast of Frozen Ramparts. This will
fix walls changed by buggy versions of the spell upon level load. This
cleanup is tag-majored, since it shouldn't be necessary for versions
where the spell logic is fixed.

Additionally, the icy wall presence level state is now updated properly
upon level load when any valid icy walls are found for a current cast of
Frozen Ramparts. Previously this wasn't done, so casts active at time of
save didn't have working icy walls when the save was reloaded.

--------------------------------------------------------------------------------
a8e59b5b3b | gammafunk | 2020-02-15 00:54:50 -0600

Properly handle recasting of Frozen Ramparts (shummie)
This spell should only be castable when the Ramparts duration isn't
already active, but I never added this restriction. By recasting the
spell before the duration expires, we allow too many icy walls at once.
This also creates a bug allowing semi-permanent icy walls. The previous
set of walls never had the icy wall property cleared, so when later
casting the spell, the old walls would become active if in LOS of the
player.

With this commit, Frozen Ramparts can't be cast until its duration
expires. A subsequent commit will fix walls with stale property flags by
cleaning those up upon level load.

--------------------------------------------------------------------------------
fc656d3889 | gammafunk | 2020-02-15 00:52:01 -0600

Improve UI for attempting to recast Dragon's Call
Move the check to deny casting the spell when either the Dragoncall or
-Dragoncall durations are active to spell_uselessness_reason(). Now
Dragon's Call is properly marked as useless while these durations are
active.

--------------------------------------------------------------------------------
e065f6de7d | Kate | 2020-02-14 14:06:15 +0000

Turn the boots of the Assassin into a hat
The flavour of detecting monsters and spotting vulnerabilities didn't really
fit on a pair of boots, and is much more appropriate for a piece of headgear.

--------------------------------------------------------------------------------
1cd534d472 | Kate | 2020-02-14 14:03:06 +0000

Remove Bloodbane and merge its properties into Leech
Leech loses its tacked-on AC-3 and EV-3 and gains Bloodbane's main
distinguishing feature of */+Rage, with Leech's reliable vampiric effect to
help compensate for *Rage as a downside.

--------------------------------------------------------------------------------
3095992e70 | Kate | 2020-02-14 12:43:57 +0000

Fix the skin of Zhor's inscription
Since it was claiming to cast the wrong spell.

--------------------------------------------------------------------------------
f66f01b915 | gammafunk | 2020-02-14 01:47:29 -0600

Fix unrand uniqueness for acquirement (AliasTheSpectator)
Scrolls of acquirement copy item definitions for the generated items and
remove the created items, only re-making the selected item when the
player makes a choice. For unrands, the item def has to have its
uniqueness status cleared, but this wasn't properly reinstated if the
unrand ended up being chosen by the player. Hence it was possible to
generate a specific unrand again after acquiring it, either through
another acquirement or as random loot.

With this commit, we properly set the unrand's uniqueness status when
making the final item in acquirement, making it actually unique.

--------------------------------------------------------------------------------
344202577d | gammafunk | 2020-02-14 01:47:29 -0600

Fix acquirement for rare cases (amalloy)
If you worship Trog and have all 27 skills, the current acquirement code
will always generate a menu with one less item than usual when the book
class is randomly chosen. This is because Trog hates all spellbooks and
all manuals are useless, so no valid acquirement book item can be made.
This is an obscure case, but in general we'd like the acquirement code
to be more robust for handling classes where we can't generate an item
for whatever reason.

This commit refactors the code to generate each item as it iterates over
all possible classes in a random order, only adding to the final set if
an item could be generated for a given class. This will stop when we've
reached the desired number of items or when we've exhausted all valid
item classes. Hence the acquirement choices will be as close to the
desired number of items as we can make it.

--------------------------------------------------------------------------------
ae4569222e | Nicholas Feinberg | 2020-02-13 21:01:39 -0800

Split tremorstone explosions in half (Wise Wolf)
This makes them effectively 6x resisted by AC, which means they're
*actually* relatively safe to use as a moderately armoured
character.

--------------------------------------------------------------------------------
768f60da87 | Aidan Holm | 2020-02-13 21:31:55 +0800

Disable lua bytecode loading

--------------------------------------------------------------------------------
e281fa673e | Nicholas Feinberg | 2020-02-12 07:35:54 -0800

Value Tremorstones lower
Since they're single-use now, make them worth a bit less in shops
and acquire them in pairs.

--------------------------------------------------------------------------------
6516661a7a | Nicholas Feinberg | 2020-02-11 19:40:18 -0800

Re-alphabetize items.txt

--------------------------------------------------------------------------------
299d110614 | Nicholas Feinberg | 2020-02-11 19:17:37 -0800

New single-use item: Tremorstone
Tremorstones are single-use evocables that cause a radius 2 explosion at
range 3. Their explosion is skewed by 1 tile from the target, so they always
have at least a 1/3 chance of hitting the player. However, since they do
6d12 BEAM_FRAG damage, players with 20-25 AC will usually take little to
no damage. (BEAM_FRAG checks 3x AC.) As such, this is intended to be a fun
toy for well-armoured characters and a desperation option for others.

A design space that I've wanted to explore for many years is the
'3x AC' damage type (ala LRD and the late, lamented Orb of Fragmentation).
I initially tried to make it into a spell, but it's very much the opposite
of the modern Earth school philosophy and in general makes more sense as a
tool for armoured, less-spell-focused characters.

This will always warn about self-targeting, which is a bit clunky. Since
it's not especially common and it's nice to warn players who might not have
read the description before they blow themselves up, though, that seems OK.

--------------------------------------------------------------------------------
e26b6a5e7f | gammafunk | 2020-02-11 18:40:23 -0600

Some changelog trimming (PleasingFungus)
Remove a couple things that are basically minor bugfixes. Don't mention
the two float vaults, since that's better HYPED in the Trunk Updates.
Despite the request of our beetle overlords, I'm keeping the cloud god
conduct changes entry, since that impacts some fairly commonly scenarios
like use scrolls of immolation.

--------------------------------------------------------------------------------
34b160fbb8 | Kate | 2020-02-11 23:54:41 +0000

Adjust some unrand descriptions

--------------------------------------------------------------------------------
fae6501f5f | Kate | 2020-02-11 23:54:37 +0000

Remove incorrect Xom pronouns

--------------------------------------------------------------------------------
cd06b9e333 | Kate | 2020-02-11 23:33:46 +0000

Improve handling of skills for manual acquirement
De-duplicate a list - WJC wasn't correctly handled in the check for skill
uselessness.

--------------------------------------------------------------------------------
8c4878dea3 | Kate | 2020-02-11 15:54:59 +0000

Fix some changelog typos

--------------------------------------------------------------------------------
8e6394d6b4 | theJollySin | 2020-02-11 08:12:40 -0500

Fix an outdated file reference in a comment
[ Committer's Note: Small wording and colour tweaks, elaborated on
  commit messages and adjusted tense. Closes #1254 ]

--------------------------------------------------------------------------------
de76ec36f1 | theJollySin | 2020-02-11 08:12:40 -0500

Document an arrival vault guideline (ebering)

--------------------------------------------------------------------------------
147f899702 | theJollySin | 2020-02-11 08:12:32 -0500

New arrival vaults
- dark_side_of_the_moon a large pillar with a dark motif
- battle_scene a bloody room with many corpses
- enchanted_forest a circle of stone arches in a wood full of magic
- ceremonial_halls a marble tomb
- henge a less enchanted ring of arches in a wood
- glass_houses for those who do not throw stones

--------------------------------------------------------------------------------
44cc58d149 | gammafunk | 2020-02-10 22:18:39 -0600

Update the changelog through 0.25-a0-491-gd071885120
[skip ci]

--------------------------------------------------------------------------------
d071885120 | Nicholas Feinberg | 2020-02-10 19:10:47 -0800

Pavise -> tower shield (various)
I wildly underestimated how obscure a term 'pavise' was. Let's be a
bit more clear.

--------------------------------------------------------------------------------
7f6d498c3f | Alex Jurkiewicz | 2020-02-10 20:21:37 -0600

Add Github Actions CI
I initially implemented this for code coverage support, which is
included. But using GA for all CI tasks has several advantages over
Travis:

* Native support for building on macOS.
* Simpler configuration language.
* Easier composability of steps from third parties. The steps can be
  published as Docker images or Node modules and are fully versioned.
* Better integration with GitHub (one status check per build job, rather
  than one for the whole CI system).

Requires `CODECOV_TOKEN` set up as a GitHub repo secret (from
codecov.io).

--------------------------------------------------------------------------------
9ae84a01e3 | Alan Malloy | 2020-02-10 11:26:17 -0800

Describe item you plan to acquire

--------------------------------------------------------------------------------
03579ab4a3 | Nicholas Feinberg | 2020-02-09 17:58:13 -0800

Fix unrand pavise player tiles
And remove support for caps.

--------------------------------------------------------------------------------
c70b7ad80a | Nicholas Feinberg | 2020-02-09 17:51:38 -0800

Fix some unrand shield player tiles

--------------------------------------------------------------------------------
9aada8127a | Nicholas Feinberg | 2020-02-09 16:36:21 -0800

Rename shield -> kite shield
As explained in ca9fc5ac96d, we'd like to be able to refer to an
item without confusing it with a category. A kite shield was a
large, teardrop-shaped shield. It would be more accurate to use
the term 'heater shield' for the shields in game, but that name
is even more anachronistic and silly.

Other alternatives considered were:
- targe (too close to a buckler in both size and meaning)
- hoplon (a shield used by a hoplite - too obscure)
- aspis (the 'proper' name for a hoplon, but come on)
- dhal (again, too close to a buckler)
- umbumbuluzo (cool but way too long)
- ihawu (cool but it's three syllables)

I think the closest alternative contender was 'targe', fwiw.

The shield of resistance and of the gong were intentionally not
renamed, which I don't believe should cause confusion, but we can
rename them later if it does.

--------------------------------------------------------------------------------
9ae4f581c4 | Nicholas Feinberg | 2020-02-09 16:36:21 -0800

Rename large shield -> pavise
Having the name of a category (shields) also be the name of an item in
that category (shields, large shields) has always been annoying and
confusing. ("Oh, I'm using a long sword and a shield." "What kind of shield?")
Use a more specific word instead. (A pavise is a roughly body-sized shield.
Often they were placed in frames and used in a stationary fashion, but the same
is true of triple crossbows. A little hyperbole is good for adventurers.)

This is part 1 of a 2-part change. The following commit will rename shields.

--------------------------------------------------------------------------------
b7f6864ba1 | gammafunk | 2020-02-09 18:00:17 -0600

Refactor some vault loot statements
The commit a45ed2c2 fixed some previous errors in these two vaults, but
we have item lists in dungeon.lua specifically to help with this kind of
loot, so let's use those instead. The original vault for
biasface_vaults_ghost_orc_armoury for non-Vaults branches already does
this.

--------------------------------------------------------------------------------
6f036f9bbc | gammafunk | 2020-02-09 17:24:01 -0600

Fix Dith's Shadow Mimic for Teleport Other (joemaro)
Dithmenos currently shadow mimics Teleport Other unconditionally, like
it does for other hexes. This creates a problem where a player trying to
teleport (or remove teleport from) a monster has their work potentially
undone by the shadow mimic if their initial cast was successful.

This commit has Dith not shadow mimic if Teleport Other hits its
intended target and successfully changes its teleportation state on the
first cast. If the Teleport Other was unsuccessful, Dith still has the
usual chance to shadow mimic the spell. Closes #1273.

--------------------------------------------------------------------------------
9b3b753f3f | Kate | 2020-02-09 20:53:20 +0000

Improve armour AC change descriptions
Don't display a pointless line for shields (although it might be good to extend
this functionality to handle changes in EV and SH).

--------------------------------------------------------------------------------
37d6d75d0a | Kate | 2020-02-09 19:50:31 +0000

Fix Warlock's Mirror not reflecting piercing ranged weapons (#12142)

--------------------------------------------------------------------------------
a45ed2c2fa | Kate | 2020-02-09 19:50:31 +0000

Fix some vault item definitions (#12191)

--------------------------------------------------------------------------------
8579842fd4 | Nicholas Feinberg | 2020-02-08 09:39:08 -0800

Small Cigotuvi's tweaks and fixes
- Use the actual base AC property as defined in art-data.txt rather
  than hardcoding a second constant.
- Don't clobber the AC on load.
- *Drain rather than *Curse (Jimmahdean) - generally a similar effect,
  but one that we do less often and that might provide a more
  consistently interesting tradeoff re: taking the armour off.
- Make armour decay faster at high corpse counts to make megakills a bit
  less persistently silly, but upgrade the armour-per-corpse scaling 50%.

--------------------------------------------------------------------------------
33c61bdccf | gammafunk | 2020-02-07 23:50:55 -0600

Have Vehumet support Frozen Ramparts
This is not a Conjurations spell, but like Freeze it directly damages
monsters and should be supported by the god.

--------------------------------------------------------------------------------
6e9f9c6944 | gammafunk | 2020-02-07 18:17:10 -0600

Give Cigotuvi's Embrace *Curse (hellmonk)
We don't want to give the player a reason to frequently swap off armor
in order to animate remains or eat corpses. Adding *Curse will still let
this be done to some degree, but now that will be limited by
availability of scrolls of remove curse.

--------------------------------------------------------------------------------
910574c326 | gammafunk | 2020-02-07 18:17:10 -0600

Tweak god conducts for Cigotuvi's Embrace (PleasingFungus)
Originally the unrand tracked conducts based on the corpse (desecrating
the remains of holy/souled beings) with the "did evil" conduct applying
only if a corpse conduct didn't apply. This is an evil item and that
conduct should always apply. This commit applies the conduct when any
corpse harvesting happens, applying any specific corpse conducts in
addition to "did evil".

--------------------------------------------------------------------------------
aca3a16f85 | Nicholas Feinberg | 2020-02-07 18:15:57 -0600

Cigotuvi's Embrace, unrand body armour
Cigotuvi's Embrace is a unique body armour (currently based on ring
mail) that automatically sucks up corpses within LOS and turns them
into temporary AC. This is primarily intended to provide a fun
press-your-luck mechanic - how long can you keep fighting and keep
your corpse armour on before you have to rest? It also comes as
something of a 'hunger' conduct (since you can't eat those corpses)
and effectively turns off most forms of necromancy, which can be a
plus or a minus, depending on whether you're a necromancer or your
enemies are.

At present, the Embrace starts as +4 rN+ rRot armour (the rRot is for
flavour). It goes to +8 with one corpse harvested, which takes about
100 turns to fully slough off. Four corpses give you about +12 and
take 200 turns to fully go away, sixteen corpses give about +20 and
take 400 turns to fully rot away, etc. All numbers are very much open
to discussion.

The original Embrace was removed because it couldn't compete with
necromancy as a spell; as an unrand it might be more feasible to
balance and make fun.

Comitter's Note: Merged with a couple tweaks in the subsequent two
commits. Closes #1272.

--------------------------------------------------------------------------------
a8a2ee3166 | Alex Jurkiewicz | 2020-02-05 21:46:13 -0600

Change the messaging for abandoned shops
So there's no ambiguity about "will they open again"?

Inspired by watching a player on CPO.

--------------------------------------------------------------------------------
90c0af583b | gammafunk | 2020-02-05 20:43:09 -0600

Fix monster AI for damaging walls (howmanybefore)
The monster movement code makes calculations to deciding whether to move
near damaging slimy or icicle covered walls. If the count of adjacent
damaging walls at a potential destination square is higher than that of
their current square, they'd not move unless their HP is high.  However
monsters only ever take damage from one wall at a time, regardless of
how many are adjacent. Hence this calculation can lead them to
incorrectly refuse to move when both source and target had damaging
walls, but the number of such walls at the target was higher. In these
situations, monsters with low HP would stand in place, taking damage.
This bug also applies to slimy walls, but those are rare outside of
Slime Pits. In that branch, all monster spawns have immunity to the
slimy wall effect, so the bug was hard to see in practice.

This commit fixes the AI by only considering whether the number of
damaging walls is above zero at source and target for these
calculations.

--------------------------------------------------------------------------------
9f28dab4e5 | gammafunk | 2020-02-05 18:26:31 -0600

End Frozen Ramparts upon level change (Lightli)
The implementation for level cleanup when the Ramparts status expires
wrongly assumed that the player is still on the current level. They
could, of course, leave the level and have the status expire on the new
level, returning to the old level later. This meant that walls could
become permanently be flagged as icicle covered, even though they would
only operate as such if the player was in LOS and had the spell active.

This commit has the Ramparts status expire and trigger the usual feature
property cleanup whenever a level change happens.

--------------------------------------------------------------------------------
78e40d7af6 | gammafunk | 2020-02-05 14:15:09 -0600

Wall overlays for Frozen Ramparts (CanOfWorms)
A set of wall overlays by CanOfWorms for the icicle covered walls
created by the Frozen Ramparts spell. Add code support for making the
wall overlay as well as choosing an overlay variant based on the wall's
location.

These look relatively subtle compared to the extremely cyan 'programmer
art' floor tiles and floor overlays I made, which were simply color
changes of the ones from slimy walls. Hence I'll probably need to
modify said tiles to be more inline with these new wall overlays.

--------------------------------------------------------------------------------
d6c695c3ee | gammafunk | 2020-02-05 12:03:12 -0600

Remove an unused variable (geekosaur)

--------------------------------------------------------------------------------
d9b0b5b0f1 | gammafunk | 2020-02-05 01:13:16 -0600

Tweak Frozen Ramparts spell description
Don't imply that it only works on rock walls and clean up some of the
text.

--------------------------------------------------------------------------------
215f0e6760 | gammafunk | 2020-02-05 00:27:28 -0600

Frozen Ramparts, a level 3 Ice spell
This spell is available to Ice Elementalists in their starting Book of
Frost. Frozen Ramparts temporarily changes all non-permarock walls in
radius 3 of the player into icicle covered walls that damage and debuff
monsters that walk adjacent to them. The damage per 10 aut is a bit less
than Freeze, although this spell has a higher spellpower cap of 50. The
debuff is the Frozen status that slows monster movement (but not other
actions).

The player and allies are not affected by these walls and can move
safely adjacent to them. Player LOS of the monster is required for the
walls to have an effect, and walls revert to normal when the Ramparts
status expires. Spellpower increases the duration of the walls as well
as their damage. The damage uses BEAM_ICE, hence is only 40% resistible,
yet it does apply AC, unlike Freeze. The wall effect is themed as a
release of a blast of icicles that encases the victim in ice.

--------------------------------------------------------------------------------
a1f3808ed8 | gammafunk | 2020-02-05 00:12:55 -0600

Icicle covered walls
This wall feature property will be used in an upcoming spell which
temporarily changes surrounding walls to damage and debuff monsters that
wonder nearby. The effect works similarly to the acid damage slimy rock
walls used in the Slime Pits.

This commit adds support for the feature property itself, the level
state tracking, the description of the property seen in-game, as well as
Tiles and console rendering of the walls. Monster AI is updated to
consider the walls in the same way they currently do for slimy walls,
although the actual damage effect will be added in a subsequent commit
that implements the spell.

Give description support for both highlight and full description (i.e.
x-v and X-v), with the full description giving details about the effect
the walls have on monsters. Add "icy" floor and overlay tiles that are
rendered in the same way as slimy walls. For console, we animate the
icicle walls with ETC_ICE and recolour adjacent floors to light cyan.

As a technical note, use of a property instead of a dedicated feature
type for the icicle covered walls works better here. We'd like the spell
to affect all kinds of non-permarock walls and wouldn't want to make
unique "icicle covered" features for each wall material.

--------------------------------------------------------------------------------
78e9c91b01 | gammafunk | 2020-02-04 23:44:46 -0600

Make checks for slimy walls more accurate
Some Tiles code tries to infer whether to try for slimy wall overlays
based on the player's branch location. Whether a slimy wall exists is
more accurately stored in the level state, which is updated every time
stairs are taken. Use this data instead.

--------------------------------------------------------------------------------
8e44f26cd4 | gammafunk | 2020-02-04 23:44:46 -0600

Correct and refactor monster enchant durations
The monster enchants Aura of Brilliance (used by deep elf high priests),
Empowered Spells (conferred by Aura of Brilliance), and Frozen (debuff
from Flash Freeze) monster enchants have have default durations that
incorrectly use AUT scale for a count of turns. This meant that Aura of
Brilliance and Frozen enchants were added with 10 times the intended
number of turns. This doesn't have much gameplay significance in
practice, since deep elf high priests can just recast the buff when it
expires and Frozen is generally not applied to monsters. The default
duration for Empowered Spells was unused, as this duration was applied
elsewhere in a way that was almost correct. None of these enchants
factor in the monster's intrinsic speed like they are supposed to.

This commit corrects the default durations to the right scale and
incorporates monster intrinsic speed. The duration application of
Empowered Spells now uses the default duration instead of having an
independent calculation.

--------------------------------------------------------------------------------
3004169c2b | Nicholas Feinberg | 2020-02-02 21:30:17 -0800

Staticify rot resistance
Oops!

--------------------------------------------------------------------------------
ed13d95810 | Nicholas Feinberg | 2020-02-02 20:59:51 -0800

Refactor rot resistance
I devoutly pray the silly Zin exception will be removed, but this
is a cleaner take on the current situation.

--------------------------------------------------------------------------------
68aa37aee3 | theJollySin | 2020-02-02 18:46:29 -0600

Clarified scroll only summons allied creatures

--------------------------------------------------------------------------------
ecf17560b0 | gammafunk | 2020-02-02 17:18:51 -0600

Don't apply god conducts for ignite blood (vt, 12189)
We now apply god conducts for damaging cloud placement that harms
allies, which can happen via Demonspawns' ignite blood mutation. Ignite
blood is a non-targeted, passive placement, so we don't want to apply
god conducts in this case. This commit exempts passive blood from god
conducts.

--------------------------------------------------------------------------------
4f2eb97ec1 | Nicholas Feinberg | 2020-02-02 12:25:53 -0800

Improve unrand documentation
Clarify what exactly "REGEN: 1" means (even when the spell existed,
it wasn't a very useful reference). Also remove references to the
randapp property, which has been unused since 103bc38328, over a
year ago.

--------------------------------------------------------------------------------
2d526bc93e | Nicholas Feinberg | 2020-02-02 11:01:58 -0800

Make the staff of Battle less tubular
Make the description more concise (esp. the second sentence, which
was a bit of a run-on), and don't imply that Iskendrun had hands.

--------------------------------------------------------------------------------
6fc7858b95 | Edgar A. Bering IV | 2020-01-31 09:37:43 -0500

Punctuation and wording tweaks (aidanh)

--------------------------------------------------------------------------------
fd0a09164b | Edgar A. Bering IV | 2020-01-31 08:55:28 -0500

Consistently use DCSS in documentation
[ Closes #1250 ]

--------------------------------------------------------------------------------
fe06877dbd | Edgar A. Bering IV | 2020-01-31 08:54:58 -0500

Further INSTALL.md revisions
- Wrap to 80 characters
- Add missing backticks
- Reorder and deduplicate some instructions

--------------------------------------------------------------------------------
7f9a73cb9d | Alex Jurkiewicz | 2020-01-31 08:54:58 -0500

Update msys2 Python instructions (Goratrix)
Python 2 was removed and Python 3 packages have been renamed.

--------------------------------------------------------------------------------
a84b7e589d | Alex Jurkiewicz | 2020-01-31 08:54:58 -0500

typo (amalloy)

--------------------------------------------------------------------------------
e2881a364e | Alex Jurkiewicz | 2020-01-31 08:54:58 -0500

Simplify language

--------------------------------------------------------------------------------
50f8ac8374 | Alex Jurkiewicz | 2020-01-31 08:54:58 -0500

INSTALL improvements (gammafunk)
Improve the "running DCSS" section header, and provide help forum links
both in this section and globally at the bottom.

--------------------------------------------------------------------------------
fe4ac87022 | Alex Jurkiewicz | 2020-01-31 08:54:58 -0500

Update community links
Add the /r/dcss subreddit and /r/roguelikes Discord chat, both of which
are very active.

--------------------------------------------------------------------------------
3c00d48056 | Alex Jurkiewicz | 2020-01-31 08:54:58 -0500

Update license information
Fix the link to the global license file, and simplify the history
description.

--------------------------------------------------------------------------------
20d0cbd702 | Alex Jurkiewicz | 2020-01-31 08:54:58 -0500

Rewrite INSTALL
Convert to Markdown and perform a large restructure.

Assumptions & goals:

1. Majority of users want to compile tiles from a Git repository
2. These users want two pieces of information:
    1. What dependencies are required and how to install them
    2. What commands to run to compile
3. Reduce branching / decisions in the basic instructions, to help new
   users.
4. Put the key compilation process as close to the top of the file as
   possible, so advanced users don't have to hunt for it.

--------------------------------------------------------------------------------
1f46b9f714 | advil | 2020-01-30 22:23:52 -0500

Maybe fix a -tele crash on levels with tele traps
This was passing a pointer to a copy via the vector.

--------------------------------------------------------------------------------
ff83419037 | wheals | 2020-01-30 11:54:14 -0500

Avoid unnecessary copying of item_defs.
The struct isn't that small, and if it has any props it can get pretty
big (orc corpses, for example, may contain an entire monster struct).

--------------------------------------------------------------------------------
92cdcce9cb | Aidan Holm | 2020-01-30 20:08:17 +0800

Revert "Allow non-local ui::pop_layout()"
Reverted due to redraw issue when exiting map view and returning to
search results; this is due to the fact that the UI stack is temporarily
empty, so the UI framework redraws the screen.

This reverts commit 07d6442d42d038d322de7b1b93851c6ddede88c4.
This reverts commit 302732ab6c032dcc3182d82d315fe9636195a08b.

--------------------------------------------------------------------------------
07d6442d42 | Aidan Holm | 2020-01-30 18:47:23 +0800

Fix freeze after stash search map view (GH #1270)
This issue was caused by the showmap code popping off all UI layers
widgets, due to 302732ab6c. Unfortunately after closing the map view,
the menu was still open, even though its widget had been popped.

This change makes the menu (and for completion, everything using
run_layout()) re-push the widget layout if the menu (layout) is still
running.

Alternate solutions include: 1) stack-of-stacks for UI layouts; this
would permit pushing an empty UI stack for the showmap code, and then
popping back to the unaltered UI stack for the menus, and 2) a showmap
widget that fully obscures all layers below it and renders the map view.

The previous solution was the UI cutoff mechanism, which temporarily
prevented rendering of layers. Unfortunately that interacts badly if
there is an underlying "main game" widget responsible for drawing the
main view.

--------------------------------------------------------------------------------
a4d2f0cd0c | Aidan Holm | 2020-01-30 18:27:11 +0800

Rename get_event_count() -> next_event_is()
It only ever returned 0 or 1; this makes the actual semantics clearer.

--------------------------------------------------------------------------------
ece2dee8bd | Aidan Holm | 2020-01-29 18:22:37 +0800

Make macro code slightly clearer
This change makes the difference between getchm() and
getch_with_command_macros() slightly clearer.

--------------------------------------------------------------------------------
dcbd824e23 | Aidan Holm | 2020-01-29 18:22:37 +0800

Remove getchm rgetch parameter
getch_ck is always used at this point.

--------------------------------------------------------------------------------
431bb856fd | Aidan Holm | 2020-01-29 18:20:25 +0800

Revert "Run timer callbacks in main thread"
Reverted due to freezing and lag on windows tiles, compiled with msys.

This reverts commit 67f526bef1c047e5179196a77422487f15c23cc7.

--------------------------------------------------------------------------------
67f526bef1 | Aidan Holm | 2020-01-29 16:41:09 +0800

Run timer callbacks in main thread
Previously, they were run in a separate thread spawned by SDL, which
makes interacting with other code difficult, since most other code
assumes single-threaded access.

Note that this change queues an SDL event, but only the input loop in
ui.cc actually handles this event by calling the callback. This is fine,
because currently the only use of this API is to show tooltips after
a delay, and the callback function for that worked by queueing an SDL
event, so the callback now does nothing and the actual function is
performed as a side effect.

This may seem like a step backwards for code clarity, but it's a
necessary step to removing the input loop in tilesdl.

--------------------------------------------------------------------------------
302732ab6c | Aidan Holm | 2020-01-29 16:41:08 +0800

Allow non-local ui::pop_layout()
There are some UI transitions which pop multiple popups, e.g. evoking an
item from its description. Previously this required nasty hacks, such as
having the inventory window still open, but hidden by a cutoff_point.

This commit fixes this mess by permitting non-local popping of layouts.
Now the evoke UI (well, direction chooser UI really) can simply pop off
UI layouts until there are none left.

This means that UI layouts that permit the display of arbitrary
sub-widgets must check whether their layout is still active when
appropriate.

--------------------------------------------------------------------------------
8c9d837f8b | Aidan Holm | 2020-01-29 16:41:08 +0800

Add widget->on_layout_pop() hook
This commit adds a hook that is called when a layout is popped; it is
fired only on a layout's root widget.

--------------------------------------------------------------------------------
3b8d5a1ed6 | Aidan Holm | 2020-01-29 16:41:08 +0800

Add const

--------------------------------------------------------------------------------
7dc260b4ef | Aidan Holm | 2020-01-25 17:03:49 +0800

Fix more() being called while swapping monsters
monster::moveto() immediately broke any constrictions, which could cause
a more() prompt. Since monster::swap_with() moved one monster after the
other with moveto(), this could result in a prompt with both monsters in
the same position. more() redraws the screen, and this caused an
assertion failure, until more() was changed to avoid redrawing any
changes to the dungeon area.

This commit changes swap_with() to be more robust, preventing the
possibility of a more prompt being called while monsters' positions are
invalid.

--------------------------------------------------------------------------------
4b9beb1024 | Aidan Holm | 2020-01-25 16:59:21 +0800

Remove getchk()
It's now a no-op.

--------------------------------------------------------------------------------
92db936f3c | Aidan Holm | 2020-01-25 16:59:21 +0800

Merge libunix getch_ck into getchk
These key remappings seem pretty important and I can't think of a
situation where you wouldn't want them. Also, since this behaviour is
unix specific, it's likely buggy for win32 in various places.

--------------------------------------------------------------------------------
d412b83276 | Aidan Holm | 2020-01-25 16:59:21 +0800

Remove win32 console key_to_command() remapping
I'm not entirely sure what this was supposed to do, but it doesn't make
much sense; it's converting CKs to other CKs, and like the unix-specific
key conversion events, would only apply on windows for the subset of
get_key calls that happened to use this API.

--------------------------------------------------------------------------------
55608276e7 | Aidan Holm | 2020-01-25 16:59:21 +0800

Remove m_getch()
On all platforms, m_getch just called getchk.

--------------------------------------------------------------------------------
8fc31a4ec6 | Aidan Holm | 2020-01-25 16:59:21 +0800

Merge libunix m_getchk down into getchk
On unix, to get a key, getch_ck calls m_getch, which calls getchk, which
finally pulls the key from ncurses with get_wch. m_getch gets mouse
events from ncurses when a KEY_MOUSE is delivered, and also optionally
filters resize events; both of these are probably things that should be
done all the time.

--------------------------------------------------------------------------------
cf7b942d6d | Aidan Holm | 2020-01-25 16:59:21 +0800

Simplify unix m_getch() control flow
proc_mouse_event() only ever returned the two values tested for, so only
mouse_enabled needed to be checked.

--------------------------------------------------------------------------------
4e4398398a | Seve Monahan | 2020-01-24 21:29:21 -0600

Tweak Maggie's spawn range slightly (hellmonk)
This should make Maggie a bit more of a threat without making her
excessively difficult to kill or avoid.

--------------------------------------------------------------------------------
9048b99c0d | Seve Monahan | 2020-01-24 20:54:55 -0600

Comment some player.cc methods

--------------------------------------------------------------------------------
22a91f9759 | Seve Monahan | 2020-01-24 20:54:54 -0600

Make armour descriptions show how AC will change when worn.
I apologize for including various miscellaneous testing and refactoring
in this commit, but I think trying to divide it would just risk causing
weird between-commit problems.

--------------------------------------------------------------------------------
7d9e569eea | gammafunk | 2020-01-23 20:53:26 -0600

Fix a vault NSUBST (riverfiend)
The Zot definition for the 2 glyphs was missing a comma, which made it
place unwanted features and messed up the loot placement there. Also
reformat a couple other NSUBST in this vault to have a consistent style.

--------------------------------------------------------------------------------
0e000e855e | Alan Malloy | 2020-01-23 11:19:39 -0800

Fix a custom meatsprint monster's spell list (p0a)

--------------------------------------------------------------------------------
80bd347ae0 | gammafunk | 2020-01-19 02:23:42 -0600

Add an aliveness check for LRDing a monster
Don't let LRD attempt to fragment using a dead monster as the source.
This probably could not arise in practice, as currently nothing can
trigger an LRD on a monster that has already died. Still, if the monster
at the target is dead, we should ensure that any appropriate terrain at
the location is used as the LRD source instead. Also ensure that no god
conducts are applied for LRD happening at a dead monster's location.

--------------------------------------------------------------------------------
c46a48dfac | gammafunk | 2020-01-19 02:23:10 -0600

Remove a redundant application of god conducts
Airstrike applied god conducts twice, once in cast_airstrike() and once
in _player_hurt_monster(); let the latter handle any conducts.

--------------------------------------------------------------------------------
1567df3305 | gammafunk | 2020-01-19 02:22:10 -0600

Refactor a player spell damage function
It's easier to understand if we let monster::hurt() do death cleanup and
only do cleanup in _player_hurt_monster() for the exceptional case where
no damage was done.  Also document our requirement that a monster be
alive if we're handling god conducts in this function.

--------------------------------------------------------------------------------
1657e5263c | gammafunk | 2020-01-19 01:20:16 -0600

Restore cloud/conduct changes and fix a crash
The application of conducts for cloud placement in d5a9e69a didn't
include a check that the target monster is alive. Effects like
immolation can place a cloud when a monster dies, triggering an assert.
Add an aliveness check before applying any conducts. A cloud can't harm
a monster if it's already dead (in the HP sense), after all.

This restores commits d5a9e69a through 7650d0de.

--------------------------------------------------------------------------------
1cc7eeb0d1 | Alan Malloy | 2020-01-17 11:10:42 -0800

Revert cloud/conduct changes
They were causing crashes with inner fire

This reverts commits d5a9e69a through 7650d0de.

--------------------------------------------------------------------------------
7650d0de75 | gammafunk | 2020-01-16 23:21:27 -0600

Add attack prompts for Ring of Flames and Tornado
With da09f83f, these spells respects god conducts when placing clouds
that harm allies or attack from a sanctuary. Ring of Flames had no
attack warning at all, and Tornado had one that warned about harming
allies, but made no mention of penance.

This commit gives both spells attack warnings that includes any relevant
mention of penance.

--------------------------------------------------------------------------------
9db6740682 | gammafunk | 2020-01-16 23:21:16 -0600

Remove an unnecessary scope

--------------------------------------------------------------------------------
4be4e3ae42 | gammafunk | 2020-01-16 23:16:00 -0600

Document some cloud functions

--------------------------------------------------------------------------------
d5a9e69a94 | gammafunk | 2020-01-16 23:16:00 -0600

Apply god conducts when placing clouds
Currently most damaging cloud spells don't apply god conducts for
attacking allies (Okawaru and the good gods) or attacking while in Zin's
sanctuary. The UI does warn the player about penance in some cases
(Freezing Cloud, Poisonous Vapours) but not all (Ring of Flames,
Tornado), and in nearly all cases the conduct is not actually applied
after any attack.

This commit puts conduct tracking in the place_cloud() function, which
is used by all spells to place clouds. This properly considers whether
the target is actually affected by a damaging cloud. Ice beasts are
immune to freezing clouds, for example, so placing one on an ice beast
gives no warning and causes no penance. The existing conduct warning and
application code already correctly ignores conjured or "object" monsters
made by player conjuration spells.

--------------------------------------------------------------------------------
da09f83f66 | gammafunk | 2020-01-16 23:15:47 -0600

Refactor conducts for Zin's sanctuary
Before this commit, any code that applied god conducts had to make its
own additional checks for sanctuary violations and potentially call
remove_sanctuary(). This commit moves this handling into
set_attack_conduct() and the god_conduct_trigger class so that separate
sanctuary checks aren't necessary.

Technical note about Toxic Radiance and #999: A comment noted that the
god conduct had to be applied before any toxic radiance damage in order
to properly apply conducts for monsters killed the turn the spell is
cast, but this was not true as of the current code. A unique_ptr in the
trigger holds a monster object that has the properties of the original
monster copied by value before any damage is made; any victim data
necessary to apply the conduct is hence still available.

--------------------------------------------------------------------------------
719d9921ed | Emily | 2020-01-17 03:42:34 +0000

Remove the per-weapon-type vorpal brand adjectives
These mostly served to confuse players and hide the relation between
the vorpal brands.

--------------------------------------------------------------------------------
3b4b6a4ccc | Alan Malloy | 2020-01-13 10:59:40 -0800

Bah, humbug! Christmas is over (Goratrix)
Revert "Changing 'slaying song' to 'sleighing song'"

This reverts commit 5f8687bca5ed173a039bdfd0014589c418b5cf6d.

--------------------------------------------------------------------------------
1430e7d239 | gammafunk | 2020-01-13 10:28:01 -0600

Improve the cone of clouds targeter
Previously this targeter didn't indicate when a square would be
unaffected by the wand due to presence of an existing cloud or due to
Zin's Sanctuary. Now only squares that would actually receive a cloud
are highlighted.

Ideally this targeter would prevent accepting a target when no squares
would be affected, but this will take a bit of rewriting to do properly.
This wand probably should not use the shotgun targeter at all, since it
doesn't actually use the concept of multiple beams firing like the wand
of scattershot does.

--------------------------------------------------------------------------------
cdfab47c19 | gammafunk | 2020-01-13 10:28:01 -0600

Disallow targeting a cloud spell to a sanctuary
Zin sanctuaries prevent clouds from placing at all, but currently the
game lets you waste a turn casting e.g. Freezing Cloud even when you
target a sanctuary square that would create no clouds at all. Although
we could let the targeter choose a sanctuary square if it would create
at least one cloud out of the sanctuary, it's more consistent with the
spell's current behaviour to disallow this. Freezing cloud refuses to
target a square with an existing cloud regardless of whether empty
squares are adjacent to it, for example.

This commit prevents the player from targeting sanctuary squares and
gives a message to that effect in the targeter.

--------------------------------------------------------------------------------
53dbb631d1 | Seve Monahan | 2020-01-12 16:08:06 -0600

Don't create random 0 byte files when running catch2-tests

--------------------------------------------------------------------------------
96e9fc7a18 | Seve Monahan | 2020-01-12 15:09:27 -0600

Checkwhite

--------------------------------------------------------------------------------
e97b98a362 | Seve Monahan | 2020-01-12 13:57:44 -0600

Remove some support rough black scales mutation.
This mutation was removed around four years ago, I am OK with somebody
trying to use a save from that long ago losing some AC for their
trouble.

--------------------------------------------------------------------------------
508b930957 | Seve Monahan | 2020-01-12 13:52:44 -0600

Refactor player::base_ac some

--------------------------------------------------------------------------------
4db4e4fac0 | Seve Monahan | 2020-01-12 13:51:30 -0600

Create a test fixture which creates a mock player you.
Ignore the odd discussion of refactoring base_ac in the comments, it's
coming in the next commit.

--------------------------------------------------------------------------------
e02885a60e | Edgar A. Bering IV | 2020-01-12 10:35:05 -0700

Tone down the new swamp ending
Specifically, remove spectral and simulacrum Learnean variants and
ghouls. Reduce monster density at high-rolls and reduce monster
variance.

--------------------------------------------------------------------------------
c1b5a34292 | Alan Malloy | 2020-01-09 13:24:14 -0800

Don't crash when failing to acquire an item
At least one way this could happen is when trying to create a
manual while all your skills are at 27.

--------------------------------------------------------------------------------
49d089a364 | Edgar A. Bering IV | 2020-01-08 11:01:57 -0700

Re-enter acquirement selection after a HUP
a0cd47f incorrectly included the code that made this change. This commit
is to point that fact out for posterity.

[skip-ci]

--------------------------------------------------------------------------------
a0cd47fd9c | Edgar A. Bering IV | 2020-01-08 11:00:11 -0700

Display appropriate capitals for easy_confirm = none
In shopping and acquirement confirmation prompts, which use yesno and so
respect easy_confirm but write their own prompts, the easy_confirm =
none user was not reminded to use capitals.

--------------------------------------------------------------------------------
35c6a73c01 | Edgar A. Bering IV | 2020-01-08 10:04:20 -0700

Re-enter Stack Five ordering after a HUP

--------------------------------------------------------------------------------
d3051d076b | Edgar A. Bering IV | 2020-01-08 09:31:37 -0700

Display drawn cards immediately when re-entering Stack Five
When returning to the uncancelable Stack Five after a HUP the previously
drawn cards were not immediately displayed, only after another draw.

--------------------------------------------------------------------------------
cf1075a8b3 | gammafunk | 2020-01-07 22:00:50 -0600

Remove an unused Lab timer effect
Labs no longer exist. Set up removal upon update to next major version
tag.

--------------------------------------------------------------------------------
1920f1ac21 | gammafunk | 2020-01-07 16:23:03 -0600

Remove an unused private field (geekosaur)

--------------------------------------------------------------------------------
fa5a36fad7 | Edgar A. Bering IV | 2020-01-07 14:49:55 -0700

Allow monsters to cast Leda's while flying and remove dead code
Currently only player ghosts have Leda's; this is more about removing
an otherwise unused function.

--------------------------------------------------------------------------------
9cef9ebf11 | Kate | 2020-01-07 21:26:40 +0000

Allow Leda's to persist while flying
When cast by the player - being stuck in hostile Leda's will still prevent
flight.

--------------------------------------------------------------------------------
3fbb973fcc | Kate | 2020-01-07 20:59:45 +0000

Rename a function for clarity
Since it's not just used for silence.

--------------------------------------------------------------------------------
97f579c7b8 | Kate | 2020-01-07 20:36:16 +0000

Make a local function static

--------------------------------------------------------------------------------
28aa74ec57 | Edgar A. Bering IV | 2020-01-07 12:29:09 -0700

Have Confusing Touch check MR instead of HD
As a Hex this spell should be checking the magic resistance mechanic.
Dazzling Flash keeps its HD check with its dual school nature.

This also increases the power cap to be more in line with being a level
3 spell.

--------------------------------------------------------------------------------
61946d84f9 | Edgar A. Bering IV | 2020-01-07 12:29:09 -0700

Raise Confusing Touch to level 3, Remove Confuse
Confusing Touch was absurdly powerful at Level 1; Confuse also is quite
strong at Level 3. Of the two ways of applying confusion, confusing
touch is the more interesting one, so that effect stays at level 3
(replacing Confuse in all relevant books). Corona replaces confusing
touch in the book of Cantrips.

--------------------------------------------------------------------------------
c98b7b2d62 | Edgar A. Bering IV | 2020-01-07 12:29:09 -0700

Return Dispel Undead to level 4
Unlike Agony, which deals damage scaling with the target's HP, Dispel
Undead is a normal dice roll. With its melee range restriction, Level 5
is no longer appropriate.

--------------------------------------------------------------------------------
67d9bde936 | Edgar A. Bering IV | 2020-01-07 12:29:09 -0700

Remove the range-dependence from Dazzling Flash
The range dependence made the spell harder to reason about for little
payoff, and the spell is too weak with it.

--------------------------------------------------------------------------------
bb9abfce8d | Edgar A. Bering IV | 2020-01-07 09:51:31 -0700

Buff Leda's Liquefication
Make the caster immune to the maluses imposed by liquefied ground. This
goes all the way back to the introduction of the spell in 2010, and the
justification given then was simulationist.

Hexes are intended to support other combat styles, but the attack
fumbling and slow movement penalties meant that Leda's made little sense
for any archetype and as a result the spell was little-used.

The shrinking radius and re-cast delay imposed by the radius 0 period
should provide sufficient buffer against aggressive kiting strategies
with the spell; if this proves incorrect the movement penalty can be
restored (without the fumble penalty).

--------------------------------------------------------------------------------
41a7e554cb | gammafunk | 2020-01-06 22:22:31 -0600

Fix felid acquirement (alexjurkiewicz)
We were assuming there would be 3 classes that aren't food or gold to
draw from, but felids now only have two of those.

--------------------------------------------------------------------------------
3ac56c63e1 | Edgar A. Bering IV | 2020-01-06 20:24:16 -0700

Add the join god screen revisions to webtiles
fd4a3aefb759 implemented these UI changes but did not include the
changes in webtiles.

--------------------------------------------------------------------------------
90aa2f6c38 | gammafunk | 2020-01-06 20:29:52 -0600

Remove the miscellaneous acquirement category
This category gifts evocable items, most of which are consumable. These
gifts are harder to balance relative to equipment and spells, since each
type of consumable accumulates without limit for each type. Gold
acquirement already covers "consumable acquirement" through shops, which
are limited by dungeon generation (nerf Gozag imo). Although players
should have acquired misc often due to how reliably the category gives a
useful item, it remained relatively unpopular, making it an easy target
for removal.

--------------------------------------------------------------------------------
148af02efd | gammafunk | 2020-01-06 20:29:52 -0600

Rework the scroll of acquirement
Scrolls of acquirement are spoilery items. It benefits the player know
internal game logic in order to make a decision on which choice is the
most likely to give a desirable acquirement. This logic isn't something
we'd like to display in-game. While some acquirement logic could be
simplified to reduce the amount of spoilers, it's probably not feasible
to fully do this as long as acquirement uses the player character's data
to affect item generation.

This commit mostly removes acquirement spoilers by having the scroll
present a set of fully generated items as choices instead of asking for
a choice of item categories.

Reading an acquirement scroll opens a popup menu presenting 5 generated
items:

* It always generates food and gold acquirement item.
* For the remaining three items, it chooses three categories without
  replacement from the six available.
* Each randomly chosen category has an equal chance of being chosen.
* The menu has a toggle between selection and inspection, to allow
  showing the detailed view of generated items.
* Because of the toggle, it confirms any selection in selection mode.
* The menu is uncancellable to prevent problems with unrand item
  generation.

More detailed wiki writeup

https://github.com/crawl/crawl/wiki/Acquirement-Reform

Technical notes:

The old acquirement() function that handled both interactive and
non-interactive requirement is gone, with non-interactive instances
having been moved to use acquirement_create_item() in a previous commit.
The new acquirement_menu() function uses an AcquireMenu class to build a
menu based on a modified shop menu.

The scroll generates the items and stores them in a player prop. These
remain and repopulate the menu until the player actually selects an
item, so it works properly across HUPs.

--------------------------------------------------------------------------------
4094881d89 | gammafunk | 2020-01-06 20:29:52 -0600

Refactor some calls to acquirement
Since the acquirement scroll interface will be rewritten in a subsequent
commit, we don't want to use the same function for interactive and
non-interactive acquirement. Have various instances of god acquirement
gifts call acquirement_create_item() directly, as this function does all
the callers need with a simple interface.

--------------------------------------------------------------------------------
bb2a68f3fc | gammafunk | 2020-01-06 20:29:52 -0600

Fully use a function parameter

--------------------------------------------------------------------------------
f734a50c3c | Byrel Mitchell | 2020-01-06 19:21:49 -0700

Enchant Wyrmbane for Maggie/Margery
Since, in young form, she's killed a dragon; and in older form killed at
least two.

[ Committer's note: reworded commit message, set force_item. Closes #1255 ]

--------------------------------------------------------------------------------
9ac4296c3e | Seve Monahan | 2020-01-06 19:18:55 -0600

Add a comment to branch-data.h

--------------------------------------------------------------------------------
91ddc7e73e | Seve Monahan | 2020-01-06 19:18:41 -0600

Refactor some code related to disabled (swap) branches.
Creates a new file (ng-init-branches.cc) and a couple new test files.
Some of the new tests are characterization tests which should probably
be removed when somebody wants to actually change the behavior, but I'm
leaving them in for now.

--------------------------------------------------------------------------------
fd4a3aefb7 | Edgar A. Bering IV | 2020-01-06 17:47:21 -0700

Refactor and streamline the join god screen (12160)
First, this commit refactors the code to remove some gotos. Next, this
enables one-key joining from the pray-at-altar screen by pressing J or
Enter. (There is still a [Y]es/[N]o prompt for abandoning.)

There's some concern that this behavior might lead to inadvertent
conversion when using the G_ feature. However, G_ does not initiate
prayer, the player must press > before seeing this screen.

--------------------------------------------------------------------------------
d2ca0b7745 | Edgar A. Bering IV | 2020-01-06 13:55:13 -0700

Allow casting BVC with shift+dir (12164)
Now that BVC is bolt-like.

--------------------------------------------------------------------------------
5f064afb62 | Edgar A. Bering IV | 2020-01-06 13:09:53 -0700

Respect quiet for flight checks (12171)

--------------------------------------------------------------------------------
9cab249bb1 | Edgar A. Bering IV | 2020-01-06 11:58:23 -0700

Fix a crash in monster collisions (12156)

--------------------------------------------------------------------------------
04aae9b36d | Edgar A. Bering IV | 2020-01-06 11:24:32 -0700

Add attack strength punctuation to unrand effects

--------------------------------------------------------------------------------
1537728274 | Edgar A. Bering IV | 2020-01-06 11:14:45 -0700

Add attack strength punctuation for staff damage

--------------------------------------------------------------------------------
45ab75433c | Edgar A. Bering IV | 2020-01-06 11:05:49 -0700

Refactor staff damage application (12149)
This ensures staff damage messaging occurs, fixing a bug. It also
deduplicates code for actually inflicting staff special damage, and
despaghetties the printing of the message.

--------------------------------------------------------------------------------
a0877dfadb | Seve Monahan | 2020-01-06 10:00:57 -0600

Give Maggie and Margery a 1% chance of carrying Wyrmbane
This is another cute flavour nod to Margery being a dragonslayer.

--------------------------------------------------------------------------------
6c1ce5ffb1 | Seve Monahan | 2020-01-06 10:00:56 -0600

Tweak Maggie description to explain her dragon armour

--------------------------------------------------------------------------------
28ae719854 | Seve Monahan | 2020-01-06 10:00:56 -0600

Adjust the armour Maggie and Margery spawn with. (hellmonk)
Maggie now has a steam/acid/swamp dragon armour (which should be
interesting in the games she spawns) while Margery has a
shadow/storm/fire dragon armour (to distinguish her from Maggie).

It might be worth reducing Maggie's weight some if this ends up warping
the amount of dragon armour available to players.

--------------------------------------------------------------------------------
0b69049c8a | Seve Monahan | 2020-01-06 10:00:56 -0600

Adjust Maggie's range (hellmonk)

--------------------------------------------------------------------------------
c4e65cee02 | Seve Monahan | 2020-01-06 10:00:56 -0600

Change Margery's weights
This is intended to make Margery spawn approximately the same percentage
of games as she did before Maggie was added.

--------------------------------------------------------------------------------
56651bb4db | Seve Monahan | 2020-01-06 10:00:55 -0600

New unique: "Maggie"
This a test at a new story-telling technique for dcss: having multiple
uniques which represent the same character. See here for the proposal:
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=26482

Flavorfully, this unique is a younger version of Margery. Mechanically,
this unique is meant to be an early introduction to the Mesmerise spell.

Maggie and Margery will not appear in the same game.

The Maggie tile is just a Jessica palette swap. Hopefully it will be
replaced with a superior tile later. The Maggie tile's palette is based
on normal Margery.

--------------------------------------------------------------------------------
516bc45ae0 | Aidan Holm | 2020-01-05 22:24:48 +0800

Fix crash on startup with map-generated messages
This is a variation of the previously-fixed crash; turns out startup
messages can be generated even earlier than I previously anticipated.

--------------------------------------------------------------------------------
7600c65aa0 | Kate | 2020-01-04 15:31:03 +0000

Remove an unused parameter (geekosaur)

--------------------------------------------------------------------------------
e76b031baf | Edgar A. Bering IV | 2020-01-03 15:58:57 -0600

Don't trigger ball lightning and foxfire on firewood (pblur, 12154)

--------------------------------------------------------------------------------
bb0aff56fe | Edgar A. Bering IV | 2020-01-03 15:58:57 -0600

Prevent allies from swapping with foxfire (12153)

--------------------------------------------------------------------------------
90ccd6aac3 | Nikolai Lavsky | 2020-01-03 15:26:12 -0600

Fix an information leak about Mara and rakshasa clones
The player could use a scroll of immolation to find the real Mara,
because the scroll doesn't affect summons. The Inner Flame spell has
a similar problem. Also, when the original is behind a clone or
another monster, the spell's targeter will happily inform the player
that "You can't see any susceptible monsters within range!"

This commit fixes that by making Mara and rakshasa clones
inner-flameable. As a side effect, all other illusions - illusions
created via a card, evocable, or monster spells - become
inner-flameable too.

--------------------------------------------------------------------------------
519431ee42 | Edgar A. Bering IV | 2020-01-03 11:41:38 -0600

Fedhas protects plants from Ignite Poison (12161)

--------------------------------------------------------------------------------
05e59b54bc | Edgar A. Bering IV | 2020-01-03 11:15:56 -0600

Reveal floor traps when magic mapping (12167)
The cause of 12167 is magic mapping stores extra info about the terrain
type allowing it do distinguish tc_forbidden and tc_dangerous; alone
this is not a bug, but it becomes a bug because traps share glyphs with
floor, causing an information leak.

There are three possible solutions:

1. Add a special case in _get_travel_colour() to not report that magic
   mapped trap cells are dangerous.
2. Add a new magic mapping feature/glyph pair for unidentified trap and
   report that.
3. Reveal floor traps when magic mapping.

This commit takes soultion number 3; since traps are revealed it makes
sense to treat them like other features (more like statues and doors
than shops/altars). Approach 2, adding a feature DNGN_UNKNOWN_TRAP seems
like it will also require a new trap type and some complications; the
simplicity of approach 3 is why I favored it.

--------------------------------------------------------------------------------
9f54f116a7 | Kate | 2020-01-03 16:44:28 +0000

Fix spacing
[skip ci]

--------------------------------------------------------------------------------
9e2f79d0c6 | Kate | 2020-01-03 16:44:28 +0000

Don't make Trog's Hand increase passive hunger rate
It caused hunger while active in the same way that the regeneration spell did,
but as an activated ability it makes more sense for the hunger to be an
up-front cost (as with berserk), so just slightly increase its food cost
instead.

--------------------------------------------------------------------------------
7e26dd5d75 | Emily | 2020-01-03 16:44:20 +0000

Remove the Regeneration spell
This spell is one of the few that offers a pure buff without any
meaningful downside at a relatively low level, and that is so
universally useful as to be worth learning on any character that can
cast it. It also duplicates a god ability (Trog's Hand). In light of
these factors, it has been chosen as a sacrifice to the God of Removal.

Agony takes its place in the Book of Necromancy (making the book
single-school), while the Book of Battle receives Ozocubu's Armour as a
replacement defensive buff.

--------------------------------------------------------------------------------
7c9d860b3b | Kate | 2020-01-02 18:41:53 +0000

Add a cast message for harpoon shot (#11454)

--------------------------------------------------------------------------------
1045be4518 | Kate | 2020-01-02 18:20:30 +0000

Add descriptions for ranged Agony/Dispel Undead (#12148)

--------------------------------------------------------------------------------
148cd443ae | Kate | 2020-01-02 16:00:55 +0000

Fix inner flame messages displaying out of LOS (#12168)

--------------------------------------------------------------------------------
ed6d54792d | Alex Jurkiewicz | 2019-12-31 19:45:45 -0600

Improve gcovr arguments
Don't try and re-use gcov data between runs, the way gcov files
automatically get merged could lead to some very confusing results. This
approach is slow, but more reliable.

Also ignore a bunch of machine-generated source files which otherwise
generate errors.

--------------------------------------------------------------------------------
386efcfdeb | Alex Jurkiewicz | 2019-12-31 19:45:45 -0600

Don't clean gcno files with make clean-coverage
These coverage-related files are generating during debug compilation, so
treat them like .o files and only delete with `make clean`.

--------------------------------------------------------------------------------
340c3955ff | Alex Jurkiewicz | 2019-12-31 19:45:45 -0600

Improve coverage documentation

--------------------------------------------------------------------------------
ca889fb587 | Alex Jurkiewicz | 2019-12-31 19:45:45 -0600

Use gcovr preferentially over genhtml

--------------------------------------------------------------------------------
10fadfea08 | Alex Jurkiewicz | 2019-12-31 19:45:45 -0600

Improve catch2 test compilation
Don't relink the binary if it's not strictly necessary.

--------------------------------------------------------------------------------
f682754af2 | Alex Jurkiewicz | 2019-12-31 19:45:45 -0600

Remove trailing whitespace

--------------------------------------------------------------------------------
81cf26a3d9 | Alex Jurkiewicz | 2019-12-31 19:45:45 -0600

Add code coverage tracking
Supports both GCC and LLVM toolchains.

Bluffer's guide:
1. make catch2-tests
2. util/coverage

More explanation has been added to testing.md (which reworks
testing.txt) and `util/coverage --help`.

--------------------------------------------------------------------------------
140ab784a8 | Kate | 2019-12-30 15:33:25 +0000

Fix Trog being unable to gift artefacts (#12159)
But restrict them to the same brand set as non-artefacts. Also prevent gifting
the staff of Olgreb (since other unrand enhancer staves are disallowed), and
unrand weapons of pain such as Morg. Other unrands can currently still be
gifted regardless of brand.

--------------------------------------------------------------------------------
a29699c70a | Aidan Holm | 2019-12-30 22:55:27 +0800

Prevent entering excluded area from stair exclusion

--------------------------------------------------------------------------------
2677940bf2 | Aidan Holm | 2019-12-30 22:46:00 +0800

Update tiles every turn, not every refresh (12144)
The main change here is the conditional increment of you.frame_no,
but there's also an additional `mon_id` parameter to
tileids_monster_base, which is only used as an additional input to
randomize the tile; it should be something that identifies the monster
across frames, but not necessarily across turns; a coord_def is fine.
The purpose of this is to vary the chosen tile if there are multiple
monsters of the same type on the screen.

--------------------------------------------------------------------------------
44e4e8591a | Aidan Holm | 2019-12-30 21:44:42 +0800

Fix crash on load if level had exclusions
d626285191 introduced a crash for saves with exclusions on the current
level; messages were processed before the message window was given a
size, due to do_layout exiting early.

The root issue is that the message window requires the window size to be
ready when printing with mpr(). This adds unnecessary coupling between
messaging and with screen rendering. The message code should just store
messages into a ring buffer, and the message window should display that
ring buffer.

--------------------------------------------------------------------------------
d85ed3479c | Aidan Holm | 2019-12-30 20:51:47 +0800

Fix excluded stairs not being cycled through (12166)
This happened because excluded stairs do not exclude their tile, but
instead prevent traversal, so travel_point_distance was not set to
PD_EXCLUDED.

--------------------------------------------------------------------------------
6f074c887a | Aidan Holm | 2019-12-29 15:59:25 +0800

Fix draconians always being mottled at xl 7

--------------------------------------------------------------------------------
a1faa1601d | Seve Monahan | 2019-12-28 23:47:37 -0600

Suppress a compiler warning (libw32c.cc)

--------------------------------------------------------------------------------
b37b713d4c | advil | 2019-12-27 18:52:22 -0500

Revert "Remove Yak player species"
This reverts commit e4dd1522aaec2eab40eb9aec1633f407cf286207.

--------------------------------------------------------------------------------
e4dd1522aa | Aidan Holm | 2019-12-27 20:26:08 +0800

Remove Yak player species
Hopefully all of the crashes are out, but in any case not having this
unsightly fallback species data should make unsound code easier to find
(aka much crashier).

--------------------------------------------------------------------------------
d626285191 | Aidan Holm | 2019-12-27 20:26:08 +0800

Don't do_layout if player isn't loaded
The local tiles UI (at least) accesses the player species during
layout. This commit simply stops all layout until the player species is
loaded, so layout will happen on the main menu after the player loads
and saves a game. Layout will also happen in the arena, since the arena
sets the player species to human.

--------------------------------------------------------------------------------
bc038bb554 | Aidan Holm | 2019-12-27 20:26:08 +0800

Remove unnecessary make_hungry() call
As far as I can see, this call does absolutely nothing. It makes no
change to the hunger state and doesn't trigger a message, nor does it
initialize a "previous hunger state" variable.

Removing because it references the player (you_foodless()) during
startup.

--------------------------------------------------------------------------------
168f80a5ff | Aidan Holm | 2019-12-27 20:26:08 +0800

Avoid checking player species during startup
mons_genus() will check the player species if given a player illusion,
to see if the player is a draconian. Since we only care about statues,
we can just look at the monster data genus directly.

--------------------------------------------------------------------------------
0fa9f1078f | Aidan Holm | 2019-12-27 20:26:08 +0800

Skip checking threat level for MILEV_NAME
As best as I can tell, this MILEV thing is an optimization, where parts
of the monster_info will not be filled out if not required. Monster names
are calculated during game initialization, and at this point the player
struct (you) is invalid; currently this points to the Yak entry, but
we're trying to remove that.

In general, this is kind of weird. I think it'd be preferable if
the monster class did name calculation (since I don't see how that can
possibly vary depending on player knowledge), with monster_info
deferring to monster. There's some similar things like color() with
MILEV_NAME that should also really be moved.

--------------------------------------------------------------------------------
3eb5a028ed | Aidan Holm | 2019-12-27 20:26:08 +0800

Split Clua::init_lua()
This commit allows Clua instances to not load most of the stuff that
clua and dlua load.

This commit also inlines load_cmacro() and load_chooks(), since these
functions were not descriptive of what the code actually did.

--------------------------------------------------------------------------------
14707fcbb5 | Aidan Holm | 2019-12-27 20:25:48 +0800

Refactor species JSON dumping
This commit changes the output data slightly; the base draconian entry
is moved after the derived types' entries, due to the underlying enum
ordering.

--------------------------------------------------------------------------------
41b2ec9121 | Aidan Holm | 2019-12-27 20:24:37 +0800

Factor out NUM_SPECIES, NUM_JOBS
This commit removes coupling with the underlying enums by using the
playable/all species/job functions instead.

--------------------------------------------------------------------------------
5dae2b7853 | Aidan Holm | 2019-12-27 20:24:37 +0800

Add job_is_removed()

--------------------------------------------------------------------------------
e160d0f489 | Aidan Holm | 2019-12-27 20:24:37 +0800

Add all_species()
There is no corresponding all_jobs() function, since it would return the
same results as playable_jobs(); that is, all jobs are playable.

--------------------------------------------------------------------------------
ab48cecf9d | Aidan Holm | 2019-12-27 20:24:37 +0800

Refactor out is_good_combination()
This helper function just wasn't really doing much. The new code also
uses playable_species() directly instead of iterating over the
underlying enum, which is much better for encapsulation.

Todo: CC_UNRESTRICTED should probably be called CC_RECOMMENDED.

--------------------------------------------------------------------------------
e792f88662 | Aidan Holm | 2019-12-27 20:24:37 +0800

Add species_type_valid(), job_type_valid()
Fairly straightforward; the idea here is to encapsulate the process of
checking species_type/job_type validity.

We lose reporting of the exact invalid value in tags.cc, but it's not
as if that's terribly useful information in the first place.

--------------------------------------------------------------------------------
b09b68f387 | Aidan Holm | 2019-12-27 20:24:37 +0800

Refactor _resolve_species() and _resolve_job()
This code is still pretty wonky, but hopefully this change makes it
somewhat more readable.

--------------------------------------------------------------------------------
235a6da892 | Aidan Holm | 2019-12-27 20:24:37 +0800

Fix CLua::execfile() showing the wrong error message
Previously it would always show the error message for a hard-coded
global CLua instance, not the current instance.

--------------------------------------------------------------------------------
00b82eacc2 | Aidan Holm | 2019-12-27 20:24:37 +0800

Replace CL_RESETSTACK_RETURN with lua_stack_cleaner
lua_stack_cleaner is a much better idiom for doing this; less typing,
less reasoning about macro substitution, and much harder to get wrong.

--------------------------------------------------------------------------------
03d1ba0c0f | Aidan Holm | 2019-12-27 20:23:33 +0800

Fix space not showing god join prompt on webtiles (Yermak)

--------------------------------------------------------------------------------
3677130cb1 | gammafunk | 2019-12-26 21:29:51 -0600

An Abyss-themed transporter ghost vault
The ghost of a poor adventurer who got banished and managed to escape
from the abyss, only to die to some horrors they brought through the
gate. Monsters are a variety of abyss spawns that include abyss-only
natives as well as monsters that also spawn in connected branches. The
nastiest spawns are equivalent to an 8 spawn, but scale up in placement
slowly and are appropriate 8-level difficulty for the branch of
vault placement. As the source of the ghost's banishment, the vault
places a monster wielding a distortion weapon, or in the case of Spider,
a Zot trap or two.

There is a guaranteed loot item with translocations or Lugonu theme, and
the monster and loot counts scale up with placement depth. Places in
all ghost-viable branches save Vaults, until we can fix transporter
placement in that branch.

--------------------------------------------------------------------------------
b629ede6a3 | gammafunk | 2019-12-26 21:25:12 -0600

Generalize some ghost vault monster weapon lua
Use lua tables of monster weapons and weights instead of a series of
conditionals. Make a function that can be used by any ghost vault
wanting to set up weapons using these weapon sets.

--------------------------------------------------------------------------------
60aa035f14 | Kate | 2019-12-26 23:30:21 +0000

Make friendly foxfire dissipate when swapped into by the player
Instead of giving frequent warning prompts.

--------------------------------------------------------------------------------
207b656796 | Kate | 2019-12-26 23:30:21 +0000

Fix messaging inconsistencies when reflecting projectiles
For consistency with beam reflection messages, and to use the pronouns of the
monster doing the reflecting, rather than the pronouns of the projectile.

--------------------------------------------------------------------------------
446fb84131 | Kate | 2019-12-26 23:30:21 +0000

Fix some crawlcode

--------------------------------------------------------------------------------
5f8687bca5 | Brendan Hickey | 2019-12-24 20:15:22 -0500

Changing 'slaying song' to 'sleighing song'

--------------------------------------------------------------------------------
d28d56f9c5 | Seve Monahan | 2019-12-23 23:43:50 -0600

Mention catch2 macro problems in platform.h comment

--------------------------------------------------------------------------------
1d5616665a | Alex Jurkiewicz | 2019-12-23 23:07:37 -0600

Fix macOS OS detection with catch2
Catch2 erroneously defines TARGET_CPU_ARM on macOS, which causes
platform.h to mis-detect the target OS as Nintendo DS.

Fix this by changing the order of OS detection.

There are a couple of alternate approaches for this fix:
* Fix Catch2 so that TARGET_CPU_ARM (and possibly other TARGET_CPU_*
  defines) is not erroneously defined on macOS
* Remove Nintendo DS support from the project

--------------------------------------------------------------------------------
e4868ce5c1 | Seve Monahan | 2019-12-23 11:17:13 -0600

Revert "Test whether travis-ci can detect failing catch2 tests"
Test was successful, travis-ci reported the error.

This reverts commit 9aa3435fcc3cbed86b065d4cce91ea0505110db5.

--------------------------------------------------------------------------------
9aa3435fcc | Seve Monahan | 2019-12-23 00:24:57 -0600

Test whether travis-ci can detect failing catch2 tests

--------------------------------------------------------------------------------
5769b184a2 | Seve Monahan | 2019-12-22 23:17:05 -0600

Add automatic catch2 tests to travis-ci builds

--------------------------------------------------------------------------------
a901c2c2c7 | Seve Monahan | 2019-12-22 22:45:04 -0600

Integrate catch2 testing framework into crawl.
In order to compile and run the catch2 tests, use the "make
catch2-tests" command.

If you want to see an example test file, look at
catch2-tests/test_english.cc. It should be possible to test any leaf
functions in crawl just by copying that file and making minor changes.

Future work:

For some reason whenever I try to change the names of the test files
from using underscores to using dashes, I get a "No such file or
directory" error for pty.h (util/fake_pty.c:5:12, which #includes
<pty.h>).  Note I am using the current way of compiling on Windows
suggested in INSTALL.txt. It would be good to fix whatever is causing
this so the test files can use dashes to separate words like most crawl
files.

Travis ci should be configured to verify the catch2 tests are working at
the same time it compiles. This should be pretty easy - it just needs to
run the "make catch2-tests" command and verify that command exits
without an error.

It would be good to eventually create a way of faking some globals to
enable easier testing - player you is a big offender.

--------------------------------------------------------------------------------
60f0ac2d9a | Seve Monahan | 2019-12-22 11:20:55 -0600

New function in includes.sh: checkcc

--------------------------------------------------------------------------------
e4380fb850 | Aidan Holm | 2019-12-22 19:30:39 +0800

Also clear main menu name on space (#12157)

--------------------------------------------------------------------------------
eac79542e2 | Byrel Mitchell | 2019-12-20 18:28:28 -0700

Change player tile to use multiple levels of poison
Follows the same breakpoints as the color of the 'Pois' status indicator.

--------------------------------------------------------------------------------
ae7c9bc87e | Umer Shaikh | 2019-12-20 19:57:39 -0500

Fix dancing weapon headsup messages (hittemvvvhard)
Commit 7046ed1b expanded the conditions under which headsup messages
happen and how much information they give, but broke the special case of
dancing weapons. The result was that when multiple enemies came into
view the game tried to warn the player about an interesting dancing
weapon with the unhelpful message 'There is .' This commit fixes that.

--------------------------------------------------------------------------------
3faca94807 | Seve Monahan | 2019-12-20 01:44:35 -0600

Remove a few more redundant #includes
Does contain some massaging to reduce the net number of includes, such
as accessing the same program constructs with different #includes

--------------------------------------------------------------------------------
0164aa517b | Seve Monahan | 2019-12-19 23:12:24 -0600

Remove redundant #includes from player-reacts.cc
Split off from previous commit due to a slight bit of complexity:
player-reacts.cc needed access to artefact.h, which was being included
transitively through melee-attack.h (melee-attack.h #includes attack.h,
which in turn #includes artefact.h). So we now #include artefact.h
instead of melee-attack.h in player-reacts.cc.

--------------------------------------------------------------------------------
e0ea79d902 | Seve Monahan | 2019-12-19 23:12:15 -0600

Remove more redundant #includes

--------------------------------------------------------------------------------
1f6dc261b7 | Seve Monahan | 2019-12-19 23:11:08 -0600

Add a new function to util/includes.sh
The new function, checkafter, allows you to effectively "restart" a
cancelled or frozen run of the checkall function.

--------------------------------------------------------------------------------
9f758675c1 | Seve Monahan | 2019-12-19 12:16:27 -0600

Remove unused variable (libw32c.cc)

--------------------------------------------------------------------------------
8baffb9bfa | Seve Monahan | 2019-12-19 10:55:59 -0600

Move some #includes from artefact.cc -> art-func.h (Fixed version)
These #includes were used only in art-func.h and therefore should be
included from art-func.h

Found with util/includes.sh

This commit has an identical diff to commit ba943c654d. ba943c654d was
reverted out of caution when the build started failing, but the fault
was in a different commit pushed at the same time.

--------------------------------------------------------------------------------
6aab8bdaf8 | Seve Monahan | 2019-12-19 10:52:40 -0600

Remove a bunch of redundant #includes (Fixed version)
These were found with util/includes.sh. I didn't finish checking all
headers for redundant inclusion due to the huge amount of time it takes
util/includes.sh to run, so expect another similar commit in the near
future.

If you're planning to use util/includes.sh to find the remaining
redundant includes: the next header I was about to check for unnecessary
inclusion was initfile.h. I finished checking all header files which
appear before initfile.h in alphabetical order.

This is a revised version of b2f3ebf68f2 which has been tested against
the tiles builds.

--------------------------------------------------------------------------------
ced51cce45 | Seve Monahan | 2019-12-19 00:55:43 -0600

Revert commits which broke the tile builds
Accidentally broken in ba943c6 or b2f3ebf. Attempted to revert both, but
messed up again and just polluted the history.

--------------------------------------------------------------------------------
6bd3a3edb7 | Seve Monahan | 2019-12-19 00:42:40 -0600

Revert "Revert "Remove a bunch of redundant #includes""
This reverts commit 18b4d129d3da0dd7cf5b1d3f398c359d72baef40.

Somehow slipped my mind to check the tiles builds. Reverting both my
most recent commits after travis-ci revealed the failure.

--------------------------------------------------------------------------------
18b4d129d3 | Seve Monahan | 2019-12-19 00:42:25 -0600

Revert "Remove a bunch of redundant #includes"
This reverts commit b2f3ebf68f21b493f31f90f8d5e94d820562c764.

--------------------------------------------------------------------------------
ba943c654d | Seve Monahan | 2019-12-19 00:12:08 -0600

Move some #includes from artefact.cc -> art-func.h
These #includes were used only in art-func.h and therefore should be
included from art-func.h

Found with util/includes.sh

--------------------------------------------------------------------------------
b2f3ebf68f | Seve Monahan | 2019-12-19 00:11:34 -0600

Remove a bunch of redundant #includes
These were found with util/includes.sh. I didn't finish checking all
headers for redundant inclusion due to the huge amount of time it takes
util/includes.sh to run, so expect another similar commit in the near
future.

If you're planning to use util/includes.sh to find the remaining
redundant includes: the next header I was about to check for unnecessary
inclusion was initfile.h. I finished checking all header files which
appear before initfile.h in alphabetical order.

--------------------------------------------------------------------------------
ea9b1ad378 | advil | 2019-12-15 15:12:20 -0500

Fix ally warning prompt for irradiate
This prompt should trigger for monsters that are not protected by
fedhas, rather than players that are not protected by fedhas.

--------------------------------------------------------------------------------
e69d3d4235 | advil | 2019-12-15 14:45:59 -0500

Focus arena text input widget automatically

--------------------------------------------------------------------------------
aa31f046c4 | advil | 2019-12-14 17:33:00 -0500

Make fedhas_protects less likely to crash if player is in the mix
This function was routinely called with *act->as_monster(), which is a
fairly bad paradigm since player::as_monster() returns nullptr, and so a
segfault was guaranteed of a protecting monster check is missed. As long
as this is so, it is better for this function to take a monster pointer
instead of reference.

--------------------------------------------------------------------------------
84510d0c19 | advil | 2019-12-14 17:09:31 -0500

Fix a missing !

--------------------------------------------------------------------------------
4a1327ee3a | Alan Malloy | 2019-12-12 18:38:33 -0800

Solidify grunt_spider_rune_circles
There was a crack in the stone wall surrounding it

--------------------------------------------------------------------------------
406d6369f5 | advil | 2019-12-12 17:26:08 -0500

Various improvements to seed selection
This started just as an attempt to get the seed input dialog to be
focused on game start, but that led to various other issues:
* [enter] only begins the game when seed selection or the begin game
  button are selected.
* ctrl-v now works for pasting.
* the [enter] button is disabled when there is no valid seed (rather
  than acting like esc in that case)
* full pregen button is reenabled offline, there is still demand.
* hotkeys -, p, and d now work when the seed input box is focused.
* hotkeys -, p, d now cause the seed input box to become focused.
* a bug (I think) where hotkeys always preempt other events, even if
  their handler returns false, is fixed. (I could be misunderstanding
  the intent here, as this looked semi-purposeful -- but this doesn't
  seem like the behavior that would be intended.)
* other formatting / wording tweaks.

Main remaining issues that I know of:
* clicking enter while - or d buttons are selected (via tab) in
  webtiles still starts the game if it can; in local tiles it does
  nothing. This seems to be because clicking on a button in webtiles
  doesn't change the focus.
* in all platforms, hitting [esc] while anything is focused defocuses
  it. This is most weird in the seed input box, on tiles/webtiles, where
  players won't have been as likely to navigate the ui with keys, and so
  will be expecting [esc] to cancel.
* webtiles could use some visual tweaking
* if you hit esc from the species menus after seed selection, it returns
  to the main menu instead of seed selection.
* It's posible this ui should give some clearer indication that entering
  0 will actually start a different game type than anything else.

--------------------------------------------------------------------------------
b77388520f | advil | 2019-12-12 17:18:27 -0500

Fix (?) a race condition with ui state syncing
When starting up the game and opening the seed selection dialog, the
game fills in a seed and attempts to sync that to the js client. If the
js client doesn't receive and process that message fast enough, it will
send a sync message to the game with a blank text field; in my local
setup these actually cross paths and things end up in an inconsistent
state: the game thinks the field is empty, but there is still a number
showing on the client side. (If the player does more things in the UI
that number will be resynced, so it is only on immediately pressing
enter that there is buggy behavior.)

This fix is very brute-force, and I'm not sure it'll really get all the
cases. I'm generally worried that this syncing mechanism can have
race-cases like this beyond just the game start, and also it seems like
the possibility of messages crossing paths might need to be dealt with
more consistently.

--------------------------------------------------------------------------------
56a5b49892 | advil | 2019-12-11 14:40:21 -0500

Don't crash when checking if fedhas protects player from igniting
act->as_monster() returns nullptr for the player, so some check like
this needs to happen. Not immediately sure if clouds under the player
should return 0 or a negative value, this goes with negative.

--------------------------------------------------------------------------------
8ac039397e | Byrel Mitchell | 2019-12-11 10:43:14 -0800

Add new swamp ending vault with Fedhas and Yred theming.
Includes an undead lerny (which should generally be weaker than a
living lerny; the only one that does more damage is simulacrum which
is 8 speed and low MR).

Equal chance of the rune being in each lobe. Yred lobe has 2 vampire
knights, assorted yred gifts and some undead hydrae/drakes. Fedhas
lobe has several thorn hunters/shambling mangroves, 2 spriggan druids,
and a handful of oklobs. The antechamber is watery, and populated by a
bunch of swamp drakes/dragons and an undead Lerny.

--------------------------------------------------------------------------------
cba6f664f8 | gammafunk | 2019-12-10 23:20:11 -0600

A swamp worm tunnel vault (mikee)
Prepare to get slurped! Swamp worms line a narrow corridor of Zot traps
with briar patches on either side. The worms are contained by lava and
try to collide the player with lava, the briar patches, or the Zot
traps, depending on the player's position and whether they are flying.
Either flying over the lava or destroying the briar patches offer paths
to the loot. Loot consists of good jewellery and aux armour along with
some star items. Number of worms and loot items scale with depth, which
is D:12-$ and Swamp. Original notion suggested by mikee, but you can
definitely blame me for everything about this vault.

--------------------------------------------------------------------------------
26646b4e49 | gammafunk | 2019-12-10 23:18:42 -0600

Clean up some DES syntax for a vault
Use the predefined aux armour list in dungeon.lua instead of making our
own list, use better syntax for NSUBST, and clean up statement
alignment.

--------------------------------------------------------------------------------
e7e91ba8d0 | Kate | 2019-12-10 22:20:39 +0000

Allow staff of Olgreb to grant poison immunity to monsters
And improve its descriptions.

--------------------------------------------------------------------------------
8a0eb6d9bd | Alex Jurkiewicz | 2019-12-10 15:19:01 -0500

Ignore VS Code editor config

--------------------------------------------------------------------------------
8d3aca7c4b | Alex Jurkiewicz | 2019-12-10 15:18:45 -0500

Update my mailmap entries

--------------------------------------------------------------------------------
fa4545f159 | advil | 2019-12-09 23:21:01 -0500

Fix message replay at main menu
This is sort of a quick fix. e48d713e changed the behavior of
split_string so that it parsed '' into a single segment '', where before
it would turn '' into an empty segments list. The old behavior
implicitly prevented the log replay from filling the buffer with many
empty lines. This commit fixes the issue by restoring the old behavior
just for log replays, and doesn't address the question of why these
empty log messages are there in the first place.

--------------------------------------------------------------------------------
53730b6a6f | Kate | 2019-12-09 22:04:43 +0000

Account for variable range in Dazzling Flash range checks (sdynet)
The range check always considered it to be cast with power -1 so would falsely
claim that no enemies were in range when the flash reached radius 3.

--------------------------------------------------------------------------------
06d23272f8 | gammafunk | 2019-12-09 04:35:21 -0600

Update the changelog
Through 0.25-a0-277-g7046ed1b37.

--------------------------------------------------------------------------------
7046ed1b37 | Umer Shaikh | 2019-12-08 17:24:18 -0500

Make headsup function less strict about warnings (11875)
When multiple monsters come into view at the same time, the game warned
you if a monster was using a dangerous weapon but ignored other
equipment, even if that equipment was interesting enough that it would
be flagged if the monster were alone. This commit liberalizes what the
game is willing to note.

It also changes the function to check equipment through the monster info
instead of directly, on the grounds that warnings should be based on
revealed information only.

As a side-effect this liberalization also fixes a small bug with alerts
for dual-wielding monsters.

This commit increases message spam, which is unfortunate. But warnings
about what items monsters have are relatively important messages,
especially since many players use force_mores to warn about dangerous
monsters.

[ Committer's note: Squashed and rebased. Reworded one commit message
  since the change had been implemented in trunk but the commit
  contained helpful comment clarifications. Closes #1215 ]

--------------------------------------------------------------------------------
cebdc9ce17 | Umer Shaikh | 2019-12-08 17:23:19 -0500

Adjust warnings about monster gear on coming into view
Update conditions for including information about monster gear in the
"comes into view" message in several ways:

- monster gear is all identified, so no need to check that

- now warn for all artefacts as well as for branded equipment (an orc
  warrior with Maxwell's Patent Armour is often at least as interesting as
  an orc with branded plate, but its armour wasn't noted)

- the old rules were not warning for wands in the alt weapon slot (I'm
  not clear on whether this can even happen?) if they were not offensive
  wands. The rules for warning about wands shouldn't depend on what slot
  the wand is in. Also one often wants to be warned or force-mored for
  monsters with wands of digging, despite their being non-offensive. That
  leaves wands of random effects as the only non-offensive wand; rather
  than special casing the single wand type, we warn for all wand types.

  [ Committer's note: Monsters may learn to use random effects in the
    future, this is good future proofing. ]

--------------------------------------------------------------------------------
3be302651b | Umer Shaikh | 2019-12-08 17:22:18 -0500

Clarify comments in is_offensive_wand

--------------------------------------------------------------------------------
84948a95e6 | Umer Shaikh | 2019-12-08 17:21:05 -0500

Expose missiles in monster inventory to x and ^x
The function get_monster_equipment_desc already tried to get a
description including what is quivered, but this part of the inventory
wasn't copied from the monster to its corresponding monster info. This
commit makes that copying happen.

This allows players to rely less on animations to tell which monsters
are doing what.

--------------------------------------------------------------------------------
5ba6e9ada1 | Edgar A. Bering IV | 2019-12-08 13:35:00 -0500

Prevent an information leak with Mara Illusions (11946)

--------------------------------------------------------------------------------
87e124ad65 | Edgar A. Bering IV | 2019-12-08 13:14:58 -0500

Correct Flay status light colour (12147)
The cause was an unintentional fallthrough.

--------------------------------------------------------------------------------
0af21f4d7a | Edgar A. Bering IV | 2019-12-08 12:28:54 -0500

Clarify Heal Other description (12128)

--------------------------------------------------------------------------------
a1f8d6e4d9 | Edgar A. Bering IV | 2019-12-08 12:20:05 -0500

Fix summoner highligting for console in webtiles builds

--------------------------------------------------------------------------------
ec1133e99d | Alex Jurkiewicz | 2019-12-08 10:54:51 -0500

Let the player renounce religion while silenced
Divine abilities are blocked by silence, but renouncing your religion
isn't really a divine ability.

--------------------------------------------------------------------------------
d25cbf0ff0 | James Buck | 2019-12-08 10:53:54 -0500

Fix initial god ability slot assignment in local tiles
Ability slots need to be claimed before setting initial piety. This
is because if a player's starting piety is at least 1*, the local
tiles version will trigger a redraw of the ability tab, a side
effect of which is to fix any available but unassigned abilities
using the default logic (starting at f) rather than the god ability
rules (a-e + X).

--------------------------------------------------------------------------------
c224260491 | marksg07 | 2019-12-08 10:41:50 -0500

Refactor common functionality between look_around functions
[ Committer's note: Squashed and rebased. Closes #1109 ]

--------------------------------------------------------------------------------
5fe89d543c | Gabriel Marks | 2019-12-08 10:41:20 -0500

Add crawl.get_target
This clua function opens the targeting dialog in the same way it is
opened when you press x to examine. The user is allowed to move the
cursor around (same as examine). If the user makes a selection and
presses enter, this function returns the player-relative coordinates of
the selection. Note that the target is valid even if it is past the
bounds of the map, so there is no leak of world borders. If the user
cancels the selection, this function returns nil.

--------------------------------------------------------------------------------
7af84ae0ac | Edgar A. Bering IV | 2019-12-06 22:12:15 -0500

Keep allies out of Conjure Flame embers (advil)
Allies smothering a player's conjured flame is frustrating and doesn't
lead to interesting gameplay. Allies are smart enough to not step in
traps; they can also not put out player conjured flames.

This is implemented as a change to monster behavior; if a player casts
Conjure Flame then swaps with an ally the fire will still be put out
when the ally is moved into the embers cloud.

--------------------------------------------------------------------------------
17cbeb888d | Edgar A. Bering IV | 2019-12-06 17:13:52 -0600

Scale Conjure Flame embers by current player speed
Using BASELINE_DELAY + 1 auts for the duration of the Embers cloud initially
created by conjure flame meant that a slowed player could not use the
spell at all. The movement requirement already puts slow players at a
disadvantage when using Conjure Flame, there is no need to prevent them
from using the spell outright. This commit sets the cloud's lifespan to
player_speed() + 1 to allow slow players to use the spell; it also
prevents hasted players from taking an action in the embers cloud before
moving out of it.

--------------------------------------------------------------------------------
9d16a9d099 | Edgar A. Bering IV | 2019-12-06 16:11:33 -0600

Remove some debugging lines (amalloy)

--------------------------------------------------------------------------------
aca421d890 | Edgar A. Bering IV | 2019-12-06 15:50:46 -0600

Fix a crash in apply_toxic_bog

--------------------------------------------------------------------------------
6783385f1d | advil | 2019-12-06 09:18:31 -0500

Add frontmatter to issue template
[skip ci]

--------------------------------------------------------------------------------
9a32677d9a | advil | 2019-12-06 09:13:26 -0500

Relocate issue template to modern location

--------------------------------------------------------------------------------
7a49f6cbb4 | advil | 2019-12-06 09:11:03 -0500

Tweak issue template slightly
[skip ci]

--------------------------------------------------------------------------------
6d7e32a812 | Alex Jurkiewicz | 2019-12-05 01:09:09 -0600

Adjust Trog weapon gifting (ebering)
Only gift melee weapons with a restricted set of brands (plain, vorpal,
flaming, antimagic). This is to differentiate Trog gifts from Okawaru's
further, and in line Trog's theme of crude anger, fire, and hatred of magic.
Gifting only melee weapons also makes Trog slightly simpler, which is a
bonus for new players.

This also slightly modifies the minimum enchantment of gifts from Trog
and Okawaru. Previously the minimum was 0 or 1 (random per-item), now it
is always 0.

[ Committer's note: Significantly revised the approach in the change to
  acquirement. The acquirement system did not previously distinguish
  ranged and melee weapons, doing so required a rather deep dive.
  Closes #1208 ]

--------------------------------------------------------------------------------
105ea27cc8 | kitchen-ace | 2019-12-05 01:09:09 -0600

Fix edge cases for destroying Summon Forest's trees
Tornado and forest fires were not checking whether a tree was created
by Summon Forest.

--------------------------------------------------------------------------------
c5e4228de7 | sdynet | 2019-12-05 01:09:09 -0600

Ely's Divine Protection always protects at *****
At present, the always protection of this power begins at 131 piety.
This figure is slightly different from when the player's faith becomes
***** (120). This subtle difference is confusing for a player who
doesn't read a spoiler because nothing in-game alerts the player to the
moment when the odds of protection are 100%, though the guarantee is
described in the ^ screen. This confusion can be resolved by aligning
the point at which the protection probability is 100% to the moment at
which the number of stars changes.

As a result players will be able to clearly see when this sentence means
without a spoiler: Especially pious individuals may be certain of this
help.

[ Committer's note: revised the commit message. Closes #1212 ]

--------------------------------------------------------------------------------
32a057a6c3 | sdynet | 2019-12-05 01:09:09 -0600

Make the Elemental Staff an enhancer for all elemental schools
The melee gimmick and resists alone did not make the elemental staff a
particularly attractive unrand, most staff users would strongly prefer
an enhancer. This enhancer counts for each school separately, so gives
two enhancers to the handful of multi-element spells.

[ Committer's note: revised description and commit message. Closes #1211 ]

--------------------------------------------------------------------------------
b31bfc5473 | kitchen-ace | 2019-12-05 01:09:09 -0600

Make fire spells better at burning trees
Fireball could previously burn trees with all squares of its explosion,
not just the centre, but this was inadvertently changed in be81960.
This commit restores that behaviour.

Also make the new spell Starburst burn trees properly.

It also allows the spells Fire Storm and Ignition to burn trees,
because it seemed strange to me that the most powerful fire spells
did nothing on trees. This allows a player to easily clear out large
amounts of trees at once, but by the time a player can cast these
spells, this is not usually all that relevant.

[ Committer's note: corrected Ignition Fedhas logic. Closes #1189 ]

--------------------------------------------------------------------------------
6f1b5d974a | James Buck | 2019-12-04 12:40:28 -0600

Add missing SUBST to gammafunk_ghost_icy
Fixes an ugly green tile when placed in Lair.

--------------------------------------------------------------------------------
c8cd6a5d6a | advil | 2019-12-04 10:50:20 -0500

Fixup recently placed ghosts correctly
d0e028f13a handled fixup for placement of new ghosts, but any ghosts
placed between TAG_MINOR_POSITIONAL_MAGIC and TAG_MINOR_GHOST_MAGIC
didn't get updated, because the spells are copied from the ghost_demon
list into the monster list on placement.

Resolves #1222 fully (I hope).

--------------------------------------------------------------------------------
572059c536 | Edgar A. Bering IV | 2019-12-04 00:33:15 -0500

Prevent Foxfire from using stairs

--------------------------------------------------------------------------------
53a6a0d877 | Edgar A. Bering IV | 2019-12-04 00:06:36 -0500

Update credits

--------------------------------------------------------------------------------
542a2242a2 | Edgar A. Bering IV | 2019-12-03 22:49:40 -0500

Fixup Sting and the description (advil, kitchen_ace)
The effect of Sting on resistant monsters that got merged was not the exact
intended behaviour in the experimental branch; the changes got lost in a
rebase shuffle. Sting does Poison Arrow flavored damage, but with a
reduced number of poison stacks; specifically adding 1 stack to a
monster, or 0.5 if the monster is resistant (implemented with
div_rand_round).

--------------------------------------------------------------------------------
18654cfe15 | advil | 2019-12-03 11:45:29 -0500

stringer -> stinger (ebering)

--------------------------------------------------------------------------------
3ee35aba1e | advil | 2019-12-03 11:43:09 -0500

Clarify Sting description (12145 / kitchen_ace)
The flavor is actually still the same as poison arrow, but the
description implied that it would poison even immune things.

--------------------------------------------------------------------------------
58704a1ebd | advil | 2019-12-02 14:36:03 -0500

Fix some shadow warnings for older compilers
Happened quite a bit on rebuilds.

--------------------------------------------------------------------------------
d0e028f13a | Edgar Bering | 2019-12-02 14:04:46 -0500

Correctly fixup ghost spells

--------------------------------------------------------------------------------
618c0ec234 | advil | 2019-12-02 12:51:14 -0500

Mark dazzling flash as unusable for saved ghosts
This spell is set with spflag::no_ghost, so all that is needed is to
keep ghosts that saved with dazzling spray from using it.

--------------------------------------------------------------------------------
ce69c89b74 | advil | 2019-12-02 11:02:53 -0500

Improve beforeunload future compatibility
I noticed while trying to figure out how to detect the back button
during gameplay that this code could be a bit more general. I don't
think this will change behavior on any particular browsers right now,
because the return value is the method that is supported by the most
browsers, but this approach is deprecated. The only non-deprecated
method for doing this is event.preventDefault, so I added this, as well
as another deprecated approach. (Of course, the one you're supposed to
use *isn't* supported by most browsers.) See
https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
for the full compatibility table.

--------------------------------------------------------------------------------
28950d1e32 | advil | 2019-12-02 10:42:55 -0500

Handle HUPs better in lua interpreter
Previously, this code ran in a tight loop if a hup was received, because
the input function always returned immediately. This led to stuck
high-cpu processes and crashes when a webtiles client disconnected, or
when an ssh connection was lost, while the lua interpreter was running.
This commit should simply break the loop on this case. It's possible it
would be even safer to not do a repl loop at all on empty input for
online games...

--------------------------------------------------------------------------------
5bc340afbf | Edgar A. Bering IV | 2019-12-02 07:48:24 -0500

Replace Flame Tongue with Foxfire in the FE description

--------------------------------------------------------------------------------
216da55150 | Edgar A. Bering IV | 2019-12-02 07:48:05 -0500

Remove a vestigal line

--------------------------------------------------------------------------------
e0175898a2 | Edgar A. Bering IV | 2019-12-02 07:47:33 -0500

Actually use the foxfire monster tile

--------------------------------------------------------------------------------
716fc43bfc | Edgar A. Bering IV | 2019-12-02 07:41:48 -0500

Actually use the new foxfire tile

--------------------------------------------------------------------------------
0889b22a1b | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Monster save compatibility for positional magic
This commit uses the same TAG_MINOR as the previous commit.

--------------------------------------------------------------------------------
688896fa5c | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Player save compatibility for positional magic

--------------------------------------------------------------------------------
592f7d0648 | gammafunk | 2019-12-02 00:54:18 -0500

Positional magic ⛰️  💀: Rework BVC targeting
This commit brings Borgnjor's Vile Clutch targeting in line with most
other earth magic spells, making it use a directed beam instead of a
smite-targeted 3x3 square. The BVC beam always penetrates and never
misses, to affect up to 6 squares.

This is a nerf to a spell that was already sitting at a good power
level. However another aim of the 0.25 magic changes is to reduce the
overall strength of the Necromancy school given how many strong spells
it has. BVC is routinely overrated and not actually in the overpowered
set, so we don't want to make the spell bad just because of perception.
The reasons given for rating BVC so highly include synergy with allies,
lowering monster evasion, damage per cast, smite targeting, and being in
such a strong school. Allies are vastly stronger than BVC and capable of
clearing entire floors quite on their own, and the spell doesn't improve
accuracy enough versus a majority of monsters to warrant spend a turn
using BVC instead of a better Earth magic damage spell. Its damage per
cast is good, but at reasonable spellpower levels and in the most
important use cases, it's a lot better to spend MP each turn on a spell
that kills monsters sooner.

Removing the smite targeting combined with changes to other spells that
reduce the power of the Necromancy school will help with player
perception without making the spell too weak. I do also want to take a
look at the spell's damage per turn with the highest spellpower levels.

Part of the perception problem the spell has comes from constriction
having a lot of small effects that are hard for the player to evaluate.
If Necromancy settles on a kind of "melee support" role in 0.25, it
might be good to simplify the spell's effects somewhat toward this aim.

--------------------------------------------------------------------------------
d51b216b00 | gammafunk | 2019-12-02 00:54:18 -0500

Simplify and document some beam logic conditions

--------------------------------------------------------------------------------
165abee8e4 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 💀: Revise Corpse Rot (CanOfWorms)
Unlike the other attack spells, where position was not relevant enough,
Corpse Rot was too positional: it relied on the combined relative
position of (player, monster, immovable floor object). This revision
changes Corpse Rot to place clouds in a ring around the caster, with the
number of clouds equal to the number of corpses rotted. The cloud
duration is reduced

This should keep in a less-constrained way the relative-to-corpse
positioning, while making the player's position relative to terrain and
monsters more relevant.

--------------------------------------------------------------------------------
3b7ae84e64 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 💀: Reduce the range of Agony and Dispel Undead
Reduce player Agony and Dispel Undead to range 1. Necromancy is a very
strong school, with a lot of spells in it. Direct damage spells that are
ranged and can't miss (Agony checks MR but with a large power boost) are
very strong. Reducing these spells to range 1 is a way to add positional
considerations to the spells, makes them thematically fit with
Vampiric Draining, and nerfs them to boot. Necro needs the nerf.

--------------------------------------------------------------------------------
0ea3b1b79e | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 💀: Remove Bolt of Draining as a player spell
The "bolt spell but black", one of many removed in this overhaul.
Necromancy has plenty of direct-damage spells, this one will not be
missed.

--------------------------------------------------------------------------------
c910babebc | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic tiles: Noxious Bog icon (CanOfWorms)

--------------------------------------------------------------------------------
949bf585d4 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic tiles: Toxic bog feature

--------------------------------------------------------------------------------
e4a03fbc05 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🐍: New spell: Eringya's Noxious Bog
New spell Eringya's Noxious Bog, L6 Posion/Transmutation. Gives a player
the "Bog" status for 4 + random2( power / 10 ) turns. While this status
is active, as the player leaves behind a trail of temporary "toxic bog"
cells. Each toxic bog cell remains that way for 10 + random2avg(
power/ 20, 2) turns.

Ignite poison places flame clouds over bog cells, but at present does
not remove them.

The spell replaces Leda's Liquefication in the Fen Folio (though perhaps
a different spell could be removed from the Fen Folio instead) and is
added to the Book of Alchemy.

--------------------------------------------------------------------------------
f462223248 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🐍: New dungeon feature type toxic bog
Create a new dungeon feature type, toxic bog, which does Poison Arrow
flavor damage to creatures in it and imposes shallow water penalties.

--------------------------------------------------------------------------------
b3f3dca9e8 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🐍: Adjust Venom Mage start
With Poison Magic being revised to emphasize transmutations and alchemy,
and Venom Bolt removed, this moves VM's starting Conjurations skill to
Transmutations and adds Ignite Poison to the Young Poisoner's Handbook.
This is especially relevant since Sting has become
Poison/Transmutations.

The manual and background descriptions are terse enough to not require a
change, but it might be nice for flavor reasons to add some reference to
alchemy.

--------------------------------------------------------------------------------
3cb921fa59 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🐍: Revise Sting
In the overarching design writing for this overhaul I wrote that some
space for single-target ranged spells must remain. Sting is one of
those.

However, LOS range poison damage that sometimes poisons is dangerously
close to darts. Further, Sting is immediately outshone by Poison
Vapours.

This commit changes Sting to be a range 3 Poison/Transmutation spell,
with the same beam flavour as Poison Arrow (still Sting damage and
to-hit). Since Poison Arrow is removed as a player spell, this beam-type
re-use doesn't steal from Poisons L6 niche.

--------------------------------------------------------------------------------
b75774f94e | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🐍: Poison removals
Remove Venom Bolt and Poison Arrow, as single target conjurations that
do not fit in with this magic overhaul.

--------------------------------------------------------------------------------
4a65e1fc46 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ⭐️: Revise Spellforged Servitor
Servitor now takes the highest-level servitor spell available for player
users. The spell description indicates the spell the servitor will use.

This behavior could already be accomplished by a player by removing most
of their damaging spells and was a good idea. However the process of
modifying one's spell list introduced a variety of tedious incentives in
its interaction with amnesia.

Now that servitor takes only one spell, the spell list is adjusted
for players (for monsters, since the monster servitor takes every spell
this has no effect). The servitor prioritizes ranged targeted damage spells of
level 4 and higher, followed by clouds, followed by low level and short
range spells.

[Thanks to hellmonk for suggesting the servitor description display the
 spell to use and that the spell list be revised.]

--------------------------------------------------------------------------------
60c6236f93 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ⭐️: New Iskenderun's Mystic Blast
Re-introduce IMB as a player spell that detonates on the player with
range 2. The spell attempts to hit each non-conjured monster within this
range with MMISSILE flavor damage, and then knocks the target back. The
damage is currently half that of old IMB: 2 dice with a max damage of 6
+ pow / 6.

This change also flattens the knockback curve of Force Lance for
monsters. For both spells the knockback distance starts at 2 and scales
with power.

--------------------------------------------------------------------------------
9ec2bd9bd2 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ⭐️: Rename and revise Dazzling Spray
Rename Dazzling Spray to Dazzling Flash. The effect is now a radius 2-3
flash, centered on the player, that has a power dependent chance of
dazzling living monsters. The chance decreases with distance. The spell
is silent.

[Thanks to cwz testers for feedback on this spell.]

--------------------------------------------------------------------------------
1d4a33eb31 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ⭐️: Remove Force Lance as a player spell
Continuing with the magic overhaul, Force Lance is made a monster only
spell. The new Iskenderun's Mystic Blast will take the knockback effect,
to be added in a subsequent commit.

--------------------------------------------------------------------------------
c6818cb5b8 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ⭐️: Remove Dazzling Spray as a zap type
In preparation for a new version of dazzling spray. The spell was
already unusable by monsters but some old code for supporting dazzle
ghosts was still around. That gets removed.

--------------------------------------------------------------------------------
45c4a977d6 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ⭐️: Remove IMB as a zap type and from monster spells
A subsequent commit will introduce a new version of Iskenderun's Mystic
Blast as a player spell. IMB gets lost amidst the sea of similar direct
damage conjurations; as a monster spell the explosions did not add much.
It is replaced by force lance in various monster books that used IMB, or
just removed from monsters.

--------------------------------------------------------------------------------
4305f63ada | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ⭐️: Simplify Searing Ray (minmay)
Searing ray is a rather complicated spell because of beam aliasing, and
yet Cj is a hints mode background. This changes searing ray to always
fire at max range at the player's selected target (even if the target
moves), or in the player's selected direction. If the target dies the
ray continues firing at the target's last position. If there was no
monster, the spell proceedes like old searing ray (but fires for the
full distance).

In addition to the targeting change, the three beams are given the same
damage and to-hit, chosen so the damage distribution matches that of old
Searing Ray, and are all penetrating.

--------------------------------------------------------------------------------
bd1a5c2d44 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ❄️: Adjust Ice Elementalist start
Now that the book of Frost contains a single conjuration, starting IE
with some conjurations skill does not make sense. This commit
concentrates their skill in ice magic, leaving the player to chose how
to branch out through the remainder of the book.

--------------------------------------------------------------------------------
c46f9d66a9 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ❄️: Buff Refrigeration
Not strictly a positional change; Ozocubu's Refrigeration was the
second lowest-damage level 6 damage spell (doing only slightly more than a 
freezing cloud), and comes with significant draw-backs (self damage and loss of 
potions).

This commit adds a damage die to the spell, making it do 4d(5 + power /
10) up from 3d(5 + power / 10) and removes the self damage. The spell
retains its -Potion effect. This is still on the weaker side of level 6
spells in terms of raw damage, but it hits full LOS, is single-school,
and is quiet.

--------------------------------------------------------------------------------
2846b0adcb | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic tiles: Hailstorm icon (ontoclasm)

--------------------------------------------------------------------------------
0364848250 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ❄️: New Ice spell: Hailstorm
Hailstorm is a Level 4 Conjuration/Ice spell. It replaces Throw Icicle
in the IE starting book. When cast it fires a ring of inner radius 2 and
outer radius 3 of BEAM_ICE (like throw icicle) flavoured beams. Icy monsters
are immune, so this spell gets along with ice beasts and simulacra but
not other minions. Having it skip allies all together is something to
consider. Currently, Veh does not add a fourth ring, that would almost
double the number of affected squares.

The damage is that of throw icicle but the accuracy is higher.

[Thanks to cwz testers and Bacchus for early feedback on this spell.]

--------------------------------------------------------------------------------
290c60e7f6 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic ❄️: Ice removals
Remove Throw Frost, Throw Icicle, and Bolt of Cold. These targeted,
"damage but blue" spells did little to distinguish the school from
others (despite their slightly different ranges) or from ranged weapons.

The current result is that the IE book is a bit thin. New ice spells
will be added in subsequent commits.

--------------------------------------------------------------------------------
daefaf095a | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic tiles: Foxfire monster, icon, and trails (ontoclasm)

--------------------------------------------------------------------------------
48bd468c4c | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🔥: New spell Foxfire
Foxfire is a L1 Conjurations/Fire spell that replaces Flame Tongue.
Foxfire conjures two foxfires adjacent to the caster which seek the
nearest target and burn the target, or dissapate if they fail to reach
the target after making 8 moves. Monsters and the player can swap with
foxfire, but doing so triggers the foxfire attack.

Each foxfire burn does slightly more than half the damage of Flame
Tongue, but does not miss. This makes the spell better than FT when
fighting in the open (discounting the delay), but much worse in
corridors.

Foxfires have see invisible; with their high move speed this allows them
to attack first, dissipating and allowing the monster to then move
towards the player.

[Thanks to hellmonk, tealizard, Doesnt, EN0N, and cwz testers for
 feedback in development of this spell.]

--------------------------------------------------------------------------------
e44d55d700 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🔥: Modify inner flame
Inner flame is a very positional spell; unfortunately it's somewhat
impractical to use, explosions come only when the monster dies. To open
up new possibilities, this commit adds an on-damage effect to the
enchantment. Inner Flamed monsters have a chance of creating a
short-lived flame cloud on their own cell when they take damage.

--------------------------------------------------------------------------------
0d78dbbffe | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic tiles: Starburst icon (ontoclasm)

--------------------------------------------------------------------------------
e3d4451385 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🔥: New Fire spell: Starburst
Starburst provides a L6 damage spell fitting into a similar place as the
old Bolt of Fire spell. Where Bolt of Fire was targeted, Starburst is
un-targeted.

Instead, Starburst fires eight range 5 (six under Vehumet) bolts of fire
in the principal directions.

[Thanks for early feedback from cwz players in the design of this spell.]

--------------------------------------------------------------------------------
7758758a4e | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🔥: Nerf conjure flame (minmay, tealizard)
Smite targeted, renewable flame clouds are extremely strong.

This changes Conjure flame to create the cloud on the player. The player
initially creates a cloud of smoldering embers. These ignite the turn
after if nothing is in the cell.

Conjure flame is still very strong and permits many of its old uses.
This increases the time cost of those uses and prevents degenerate
things like refereshing a blocking flame indefinitely.

It also did not work well as a monster spell; the only monsters that
still cast it were player ghosts, so it's been removed from them and is
now player only.

--------------------------------------------------------------------------------
f302f3d7ce | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🔥: Fire removals
Remove Throw Flame and Bolt of Fire as player spells. They live on on
monsters and in wands. Both of these are "damage but red" single target
spells, on the chopping block in this magic overhaul.

--------------------------------------------------------------------------------
1b0f4d352a | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Positional magic 🌪: Airstrike
The air school is already quite positional: targeted spells require bolt
bouncing to use with maximum effectiveness, the remaining spells require
different positional considerations to use well.

Airstrike is smite-targeted, which makes it more interesting than most
single-target spells. However, it is just ``smite but air''. This commit
scales airstrike damage with the number of adjacent empty cells to the
target. Specifically, when there are more than three empty cells
adjacent to the target, each empty cell contributes a linear amount to the
affine base damage and reduces the variance by addinng another roll to
average the damage over.

At 100 spellpower this results in the following damage statistics,
depending on the number of empty adjacent spells.

|     | 0-3  |  4   |  5   |  6   |  7   |  8  |
| --- | ---- | ---- | ---- | ---- | ---- | --- |
| avg | 15.5 | 16.3 | 17.2 | 18.1 | 19.1 | 20  |
| std | 4.61 | 3.27 | 2.68 | 2.32 | 2.08 | 1.9 |

[ TODO: Refactor mons-cast airstrike damage to be in the same place as
  player damage. Take another swipe at the spell description. ]

--------------------------------------------------------------------------------
abb5cbb05e | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Use targeter_radius hitfuncs for friendly fire checks
This replaces the helper function _irradiate_is_safe

--------------------------------------------------------------------------------
8bd92b5b85 | Edgar A. Bering IV | 2019-12-02 00:54:18 -0500

Generalize and rename targeter_los
Rename it to the more accurately descriptive targeter_radius, and
include a constructor parameter for specifying a range minimum to
exclude an inner radius.

--------------------------------------------------------------------------------
0bb11aece9 | Edgar A. Bering IV | 2019-12-02 00:43:05 -0500

Don't crash in the ignite poison cloud tracer
Only check Fedhas protection from clouds for players; monster Fedhas
worshippers clouds will hurt plants. Only relevant for player ghosts.

--------------------------------------------------------------------------------
5ba96148f3 | gammafunk | 2019-11-30 22:57:29 -0600

Remove an outdated comment

--------------------------------------------------------------------------------
8d00908bc7 | gammafunk | 2019-11-30 22:57:29 -0600

Fix monster ranged attack logic for some wands
Monsters learned how to use wands of clouds, iceblast, and scattershot
in 0.24, but the logic to determine whether monsters have ranged attacks
was not updated. This logic is used for player sensing nearby danger and
some aspects of monster movement; monsters were able to use these wands
before this commit.

--------------------------------------------------------------------------------
17f9c9cab5 | Aidan Holm | 2019-12-01 10:35:28 +0800

Fix chat keeping focus trapped after hiding (#12140)
When spectating with chat activated, the player quitting/dying/exiting
caused the chat input to be hidden, which did not deactivate the focus
trap. This fix uses a MutationObserver, which does require IE10; AFAIK,
the previously supported minimum was IE9, but we shall see if anyone
complains first..

--------------------------------------------------------------------------------
c6a9f38f4b | Aidan Holm | 2019-12-01 10:35:28 +0800

Fix minimized chat not being expandable via click
Caused by over-eager click event filtering; turns out the minimized chat window
is a totally separate element (#chat_hidden).

--------------------------------------------------------------------------------
b8371ea956 | Aidan Holm | 2019-12-01 10:35:28 +0800

Fix webtiles chat stuck focus issue
When clicking the chat input, document.activeElement has already been updated 
by the time the focusin event is received, so the focus trap
stores the chat input as the previously focused element; when it is
deactivated, it will then refocus the chat input.

The focus-trap docs refer to a setReturnFocus option, but this doesn't
seem to work as intended. Disabling return focus fixes this for now.
Unfortunately this means that entering and exiting chat from a UI with
focusable elements (e.g. seed selection) will lose the currently focused
element, until a workaround is implemented.

--------------------------------------------------------------------------------
61c9e09f56 | Brendan Hickey | 2019-11-30 20:45:15 -0500

Rewrite Barachi +LOS fakemut description.
Before: "Shadows flee at your approach. (+LOS)"
After: "You can be seen from farther away. (+LOS)"

The issue is that 'Shadows' are always monsters. Unless we want to cause
Shadows to run from Barachi let's use text with less potential to
mislead the player. The rewrite is based on the species description. I
think the players in general understand reciprocal LOS, so this
formulation (rather than saying "You can see things farther away.") will
be convey that their LOS radius is bigger and Tomb is going to be
harder.

--------------------------------------------------------------------------------
ece12570e2 | gammafunk | 2019-11-29 21:04:25 -0600

Remove unused Fedhas corpse rotting code
This is no longer used, since the god no longer gains piety through
rotting corpses.

--------------------------------------------------------------------------------
0f3e877b0e | gammafunk | 2019-11-29 21:04:16 -0600

Fix outdated food logic when worshiping Fedhas
These were relevant when the god accepted rations as a cost for some
abilities, but this is no longer the case.

Don't always have a food acquirement option when worshiping Fedhas.
Also don't consider food always useful and always an interesting
autoexplore target under Fedhas.

--------------------------------------------------------------------------------
b5a0cb1028 | gammafunk | 2019-11-29 20:53:10 -0600

Remove an outdated acquirement rule under Fedhas
The acquirement code prevented acquiring weapons with the reaping brand
under Fedhas, specifically the Sword of Zonguldrok. The god no longer
has a no-corpse-necromancy conduct, so remove acquirement restriction.

--------------------------------------------------------------------------------
a656ec442d | gammafunk | 2019-11-29 19:52:38 -0600

Update the Fedhas flavor of a Lugonu vault (minmay)
Give a randbook with Recall as the "useless" insult item for Fedhas
worshipers, since nearly all allies Fedhas grants are stationary ones
that can't be recalled. The exception would be wandering mushrooms
granted from Fedhas' Overgrowth ability, but who could take a mushroom
seriously anyways?

--------------------------------------------------------------------------------
27fffb8c76 | Aidan Holm | 2019-11-29 13:57:10 +0800

Don't show monster threat levels by default
It'd be nice to show these on the monster lists only, but that's
technically challenging, and on webtiles the monster list already
displays the threat level.

--------------------------------------------------------------------------------
f71692caf1 | Aidan Holm | 2019-11-28 20:32:06 +0800

Add documentation for tile_show_threat_levels

--------------------------------------------------------------------------------
c5e1d6b9e0 | Byrel Mitchell | 2019-11-28 20:32:06 +0800

Add webtiles support for threat level indicators

--------------------------------------------------------------------------------
61c6e967c8 | Psymania | 2019-11-28 20:32:06 +0800

Add monster threat level indicators
Webtiles and console both have a monster list at the bottom-right of
the screen which lists all monsters in view color-coded by rough
threat level. Many players have expressed a desire for something
similar in offline tiles, to provide always-visible indicators of the
threat levels of all enemies in view. This commit adds translucent
colored backgrounds -- dark grey, light grey, yellow, and red --
to indicate trivial, easy, tough, and nasty monsters respectively.

Additionally, these indicators are configurable with a new option in
the options file, "tile_show_threat_levels". Each type of indicator
can be independently enabled or disabled by including or omitting it
in the option file line. For example, the following...

"tile_show_threat_levels = tough nasty"

...will show only yellow (tough) and red (nasty) threat indicators.

I have experimented with various styles of indicators, as shown in the
following thread:

https://crawl.develz.org/tavern/viewtopic.php?f=8&t=26439

I am open to changing back to a different style, or even making
multiple styles available and letting the player choose which style to
use, if any. This style is the best in my opinion, as it is very
noticeable while being subtle enough not to interfere with any other
monster or monster-associated graphics. I have playtested this feature
through a 6-rune run with no problems, technical nor cosmetic.

--------------------------------------------------------------------------------
280d70d74f | Nikolai Lavsky | 2019-11-28 20:31:26 +0800

Remove an inventory hotkey for corpses and skeletons
Although the player cannot pickup carrion anymore, the pickup menu
still displays a hotkey for it. The hotkey already does nothing
because corpses and skeletons are stationary objects (62bc8482).

--------------------------------------------------------------------------------
6cfeca75b2 | advil | 2019-11-26 18:44:59 -0500

Remove some obsolete batform code (alexjurkiewicz)
This is a relic from the times when you ended a transformation by
setting its duration to 2, something that hasn't been in play since
0970d1a616d41. For reasons unclear to me at this remove (something to do
with food maybe) the exact threshold for ending batform was increased to
5 from 2 in 19d229916a4423.

--------------------------------------------------------------------------------
cd15a05269 | advil | 2019-11-26 15:16:56 -0500

Update the github issue template
Mostly just wanted to provide instructions on how to upload a save file
directly to github, but I ended up revamping the whole thing.

[skip ci]

--------------------------------------------------------------------------------
d5e5576b6f | advil | 2019-11-26 12:29:39 -0500

Clarify "master archer" code
This shouldn't change any behavior for monsters that actually place.
This cleans up some ranged code to be more consistent with the
(apparent) intent of the flags, and renames a flag to be more consistent
with what it does (since what was called `M_DONT_MELEE` has no impact on
melee outside of monsters with missile-based ranged attacks, and also
doesn't actually prevent melee -- you would do this by giving the
monster no melee attacks I think).

I'm not 100% sure why MONS_STATUE (which doesn't place) was M_ARCHER
| M_DONT_MELEE, but I have kept its status. This may be for things like
the statue in minmay_dual_archer_statues?

--------------------------------------------------------------------------------
090528c340 | Byrel Mitchell | 2019-11-26 22:10:22 +0800

Added webtiles support for Possessable icon (Yred enslave soul status)

--------------------------------------------------------------------------------
e5692877c6 | Byrel Mitchell | 2019-11-26 22:00:32 +0800

Show monster poison level as a debuff icon
Currently has 3 tiles for 1, 2 or 3, 4 stacks of poison.

--------------------------------------------------------------------------------
dbf363a776 | Aidan Holm | 2019-11-26 20:28:26 +0800

Fix "Found item" messages not being coloued correctly (gammafunk)
This was caused by mpr() not supporting formatted_strings, which were
being silently converted to plain std::strings, discarding all colour
information.

--------------------------------------------------------------------------------
4c60e79141 | gammafunk | 2019-11-26 01:49:09 -0600

Don't trap monsters in Zig pillars (AliasTheSpectator)
The Ziggurat pillar vault ziggurat_pillar_centre_drop places monsters
behind fully opaque walls, providing a teleport trap to release them.
This no longer works with LOS requirements for trap triggering, so make
the vault always have transparent rock or stone windows. I've also
modified the vault substitutions so that the windows will always be
diggable when the rest of the vault is.

--------------------------------------------------------------------------------
c9f82b1288 | gammafunk | 2019-11-25 17:32:57 -0600

Allow Divine Exegesis without a memorized spell (12129)
The check for the ability to cast spells includes one for having at
least one spell memorized. Don't require this condition for Exegesis, as
this ability casts directly from the spell library.

--------------------------------------------------------------------------------
d145f35b4e | gammafunk | 2019-11-25 15:32:46 -0600

Fix spell colors for Divine Exegesis
No longer show spells listed by Divine Exegesis as dark grey if they
couldn't be memorized due to spell level restrictions, since the ability
doesn't care about spell levels.

--------------------------------------------------------------------------------
379fad0a35 | Edgar A. Bering IV | 2019-11-25 14:41:19 -0500

Extend Fedhas protection to collisions (12082)
There is no messaging or indication to the player that Fedhas doesn't
protect plants from player-induced collision damage. For consistency's
sake the best solution here is to extend the protection.

--------------------------------------------------------------------------------
3835771c07 | Edgar A. Bering IV | 2019-11-25 13:43:22 -0500

Checkwhite

--------------------------------------------------------------------------------
bad95dda2c | Edgar A. Bering IV | 2019-11-25 13:42:13 -0500

Convert summon damage dismissal into a fineff (12082)
The solution in 0.25-a0-106-g3db639d13e led to crashes; use contexts of
behavior_event do not expect that the behavior event might kill the
monster. Converting the dismissal to a fineff prevents these problems.

--------------------------------------------------------------------------------
1a393a3f05 | Aidan Holm | 2019-11-26 01:37:41 +0800

Tidy up tilesdl.cc a bit

--------------------------------------------------------------------------------
4f669b765a | Aidan Holm | 2019-11-26 01:37:41 +0800

Simplify some local tiles code

--------------------------------------------------------------------------------
9513415ccb | advil | 2019-11-25 10:19:51 -0500

Detect an empty des cache
This is designed to preempt cryptic error messages that can happen if
you run tests directly without previously building the des cache; it's
maybe a bit of an overly clever method to do so but also very easy to
write.

Resolves #1121

--------------------------------------------------------------------------------
0adb1bad81 | Aidan Holm | 2019-11-25 22:49:33 +0800

Add webtiles dev option note to readme
[skip ci]

--------------------------------------------------------------------------------
529652008a | Aidan Holm | 2019-11-25 22:39:54 +0800

Show sprint help for sprint menu help button (GH #1203)
This handler is only called for the tutorial and sprint menus, and the
tutorial lacks a help button, hence the assertion.
'6' is the hotkey for the sprint section. Blegh.

--------------------------------------------------------------------------------
f1674c6136 | Aidan Holm | 2019-11-25 21:21:33 +0800

Fix webtiles chat not responding to mouseclicks (12136)
Predictably, the focus-trap library was responsible here, along with
some over-eager trapping of events. Thankfully the focus-trap has a very
useful allowOutsideClick hook which does exactly what we want; pass
through click events to attached handlers under certain conditions.

Separately, we also need to not capture all events if the focus is
outside the popup; this allows exiting the chat window with the escape
key when a popup is open. Regrettably, the focus-trap library does not
provide onPause/onUnpause hooks to facilitate this, but we can make do.

--------------------------------------------------------------------------------
836c352ace | gammafunk | 2019-11-24 14:42:35 -0600

Declare a global function
This was apparently omitted in the artefact code perfomance improvements
made in ca9b7906.

--------------------------------------------------------------------------------
16436c4407 | advil | 2019-11-22 17:21:55 -0500

Don't crash when right clicking in local tiles
I don't understand the circumstances under which this event is getting
sent, but just ignoring it seems to work.

Resolves #1210

--------------------------------------------------------------------------------
8b14890379 | advil | 2019-11-22 16:49:57 -0500

Don't crash if tornado dismisses a friendly summon

--------------------------------------------------------------------------------
b55e97dba5 | Istvan Marko | 2019-11-22 00:07:37 -0500

Use yaml.safe_load instead of load
PyYAML'S yaml.load is insecure and it is deprecated in 5.1. Some
distributions even disable it, making it difficult to build DCSS on
them. Use the recommended safe_load instead.

--------------------------------------------------------------------------------
00f8f0cddd | Edgar A. Bering IV | 2019-11-21 12:18:32 -0500

Fix a typo in the previous commit

--------------------------------------------------------------------------------
f5240d96fa | Edgar A. Bering IV | 2019-11-21 12:14:00 -0500

Add Boris to the Orb Run
Give Boris a chance to come back on the Orb run if he spawned in the
game. Boris has the same chance as a named lord whose rune you've taken.
While Boris isn't the most threatening Orb run spawn, he definitely
poses a threat and having him spawn is great flavour.

--------------------------------------------------------------------------------
b7fd73da8f | Aidan Holm | 2019-11-21 08:38:11 +0800

Fix mouse click not working in skill menu (12133)
The event handler was being called with a CK_MOUSE_CLICK dummy key sent
from UISkillMenu::on_event(), delivered directly to the skill menu via
Widget::on_event(). This meant that the event did not bubble, and would
not be caught by a handler attached to the skill menu parent.

--------------------------------------------------------------------------------
d1d2e81aba | advil | 2019-11-20 12:08:20 -0500

Simplify some holiness checks for monster swapping
One of these checks changes behavior. Requiring the same holiness for
swapping around intelligence in general seems really spoilery and weird.
If this doesn't work out (e.g. there's too much swapping as a result, or
some noticeable effect on balance) I'm open to reverting or modifying
this. However, I think if something like this needs to be in place, then
we should first try a more obvious rule, e.g. nothing can swap past
undead.  (Which I think is the main use case anyways.)

The demonic change is just an optimization and shouldn't affect
behavior. (Full holiness checks are costly if done a lot, because they
check damage types -- but this is irrelevant for the demonic check.)

--------------------------------------------------------------------------------
282e4f8531 | advil | 2019-11-20 11:30:19 -0500

A few more monster movement optimizations
These eliminate/reduce a few more hotspots. The bounds check in
_handle_movement shouldn't lead to any behavior change, since if the
player is out of bounds they can never see any other cell; but it cuts a
biggish case to do the check preemptively, as opposed to inside various
loops.

--------------------------------------------------------------------------------
59b909255d | Aidan Holm | 2019-11-20 14:33:21 +0800

Fix various small alignment issues
Switchers with scrollers inside them generally need to have align_x set
to stretch, so that the scrollbar will be flush against the right-hand
side of the screen on local tiles.

--------------------------------------------------------------------------------
260bac964e | Aidan Holm | 2019-11-20 14:32:07 +0800

Use consistent desc/quote switch text
This code is pretty heavily duplicated from describe_monsters().

For reasons unknown, show_description() does not show quotes at all on
webtiles...

--------------------------------------------------------------------------------
0c4bda3fdf | Aidan Holm | 2019-11-20 12:12:11 +0800

Fix input_dialog key binds on webtiles (kitchen_ace)

--------------------------------------------------------------------------------
11d28fe0fd | Aidan Holm | 2019-11-20 10:58:05 +0800

Grammar fixup

--------------------------------------------------------------------------------
7faa4cee5b | Aidan Holm | 2019-11-20 10:48:32 +0800

Use textbox widget for msgwin_get_line() popup

--------------------------------------------------------------------------------
0541610ab6 | Aidan Holm | 2019-11-20 10:48:32 +0800

Fix hotkey binding encoding on webtiles client
On the crawl server, all key events are encoded as integers; HTML/JS
does not provide a way to map a keydown event to an ascii keycode (while
crawl does a whole lot of rather strange mapping, the keys we care about
and wish to bind as hotkeys are almost all within a-zA-Z0-9). This
makes complete sense because a key and a character are separate
things, but it does mean some extra conversion is required.

This commit adds ui.utf8_from_key_value() and ui.key_value_from_utf8();
these convert a key value name string, such as "D" or "Enter" to/from an
integer that the crawl server recognizes.

--------------------------------------------------------------------------------
b6c28e0f30 | Aidan Holm | 2019-11-20 10:48:32 +0800

Remove unneeded focus

--------------------------------------------------------------------------------
ce263d24b7 | Aidan Holm | 2019-11-20 10:48:32 +0800

Add textbox paste from clipboard function

--------------------------------------------------------------------------------
f2554d85d0 | Aidan Holm | 2019-11-20 10:48:32 +0800

Fix focus traps breaking webtiles chat
Focus traps on the top-level popup prevent the chat box from being
focused. To fix this, when showing the chat, we enter a new focus trap,
and leave it when returning to the game. This is complicated by the fact
that the chat JS is effectively non-modifiable (not in game_data), so we
attach to the focusin event. You can tab around within the chat popup;
the focus-trap class prevents nested traps when doing so.

--------------------------------------------------------------------------------
afe43dc842 | Aidan Holm | 2019-11-20 10:48:32 +0800

Improve focus rendering for webtiles watchers
On watching clients, don't use focus traps, and disable all focusable
input elements. Since we can no longer rely on the input focus, we add a
style-focused class to take its place on watching clients. This produces
a much better experience when spectating.

--------------------------------------------------------------------------------
1c8e11a960 | Aidan Holm | 2019-11-20 10:48:32 +0800

Remove unnecessary set_focused_widget() calls

--------------------------------------------------------------------------------
f460fa4231 | Aidan Holm | 2019-11-20 10:48:32 +0800

Remove unused headers

--------------------------------------------------------------------------------
40106efd0c | Aidan Holm | 2019-11-20 10:48:32 +0800

Make webtiles seed selection dialog scrollable

--------------------------------------------------------------------------------
1855e6e8d2 | Aidan Holm | 2019-11-20 10:48:32 +0800

Small refactor of event handlers

--------------------------------------------------------------------------------
cd842479fa | Aidan Holm | 2019-11-20 10:48:32 +0800

Extract MenuButton focus-on-hover behaviour
Previously, buttons would take input focus when hovered. Now, this only
happens for buttons within OuterMenus, and it is the OuterMenu which
adds the event handlers for this. This makes MenuButtons much nicer to
use outside of OuterMenus, and they will probably be moved into ui.cc

Since they can be hovered without being focused, some additional
rendering code is needed.

--------------------------------------------------------------------------------
da5b7fe257 | Aidan Holm | 2019-11-20 10:48:32 +0800

Use textbox for arena UI

--------------------------------------------------------------------------------
0ead14ac95 | Aidan Holm | 2019-11-20 10:48:32 +0800

Refactor menu button activation handling
This adds an ActivateEvent and a corresponding on_activate_event()
helper. Activate events are emitted when a button (and, in the
future, other widgets?) is activated by clicking, pressing its hotkey,
or pressing space/enter while it has input focus. Activate events
bubble, so you can add a handler to the button itself, or to a
higher-level container containing many buttons within it.

--------------------------------------------------------------------------------
b87a47e8d2 | Aidan Holm | 2019-11-20 10:48:32 +0800

Refactor event delivery
This commit attempts to make event delivery more centralized, by moving
most calls to widget->on_event() to a single function responsible for
event delivery up and down the widget layout. This should make event
propagation easier to understand.

--------------------------------------------------------------------------------
2c8c973532 | Aidan Holm | 2019-11-20 10:48:32 +0800

Add ui-specific event class
Mostly necessitated by the need to add an event target member.

Different event types are now implemented as subclasses. Unfortunately
this means downcasting via static_cast<> in some cases, although the new
on_foo_event() handlers remove that need by passing a derived event.

I'm not too sure about the Event::Type::Foo verbosity... otherwise, it's
mostly a net improvement. In C++20 you can do `using enum Event::Type;`
which might help, when we get C++20.

--------------------------------------------------------------------------------
65a9246054 | Aidan Holm | 2019-11-20 10:48:32 +0800

Add event handler helper functions
This commit hides the ugly event handler slots mechanism, adding clearly
named event handler helpers that, in the case of on_keydown_event,
removes the need to check the event type.

--------------------------------------------------------------------------------
52f71b681c | Aidan Holm | 2019-11-20 10:48:32 +0800

Sync all widget state on layout push
Initial widget state is often set before pushing the new layout, causing
sync messages that are discarded by the webtiles client (since the
corresponding layout HTML has not been created). In order for these
widgets to have the correct state on webtiles clients, the state must be
resent on push.

--------------------------------------------------------------------------------
78f1d665fd | Aidan Holm | 2019-11-20 10:48:32 +0800

Add focus sync
Mostly straightforward. One caveat is that widgets require a sync-id to
have their focus state synced correctly, even if they have no other data
that can be synced. A console warning will be issued if you tab to such
an element, so manual testing during development should catch any
missing ids.

--------------------------------------------------------------------------------
69b4fc02ef | Aidan Holm | 2019-11-20 10:48:32 +0800

Protect against network races with popup generation IDs
This commit adds a simple mechanism intended to ensure that widget sync
messages are always delivered to the correct widget. Widget layouts /
popups have a generation id, which is an increasing integer that never
repeats. Sync messages include the current client/server generation ID,
which is used to discard invalid messages on the other end.

Sync messages for widgets / elements not on the top layout / popup are
discarded. One reason for discarding these is that 1) on the server,
while getting the generation ID of the top layout is easy, getting the
generation ID of an arbitrary layer would require more API changes; and
2) it's unlikely for these to be generated on the webtiles client. While
it's quite easy to change the state of any widget given a pointer on the
server, discarding these messages should not cause any issues, as the
entire set of syncable widgets are resynced on layout push/pop.

An example of how a sync message could be sent to the wrong widget
without a mechanism like this in place:
1) Client changes widget state, e.g. textbox contents
2) Simultaneously, server pops layout
3) Server receives widget state from client for previous layout

--------------------------------------------------------------------------------
465f1a91d0 | Aidan Holm | 2019-11-20 10:48:32 +0800

Add generic webtiles UI state syncing
This commit adds an improved widget state synchronization system.
Widgets now have a sync_id property. If set to a non-empty string,
widgets' state will be synchronized automatically in both directions,
which should allow phasing out the clunky ui_state_change() sync
mechanism.

Note: the currently focused widget is not yet synchronized.

--------------------------------------------------------------------------------
0499068236 | Aidan Holm | 2019-11-20 10:48:32 +0800

Improve seed generation UI
This commit improves the seed generation UI, using the new text entry
and checkbox widgets, as well as the new focus system. UI state is not
yet synchronized between webtiles and server.

This commit also adds a HTML implementation; previously, the CRT
emulation system was being used.

--------------------------------------------------------------------------------
74bebdfac3 | Aidan Holm | 2019-11-20 10:48:32 +0800

Add widget focus cycling
This implements a more versatile input focus layer for local tiles and
console. Widgets can now be focusable or not, depending on derived
type. On UI hierarchy change, a DFS is performed of all widgets and all
focusable widgets are collected into an array, which is then used for
cycling between focusable elements.

This commit adjusts keyboard event delivery. The keyboard event (key up
or down) is delivered first to the focused widget, which has a chance to
handle the event and stop propagation. Next, tab, shift+tab, and esc are
handled; if one of these keys is pressed, propagation stops. Otherwise,
propagation continues upwards.

Input focus on webtiles is decoupled from input focus on the server.
The current plan is that the webtiles implementation for a given UI
layout will have corresponding focusable HTML elements, and that UI
state, including focus, will be synchronized in both directions.

--------------------------------------------------------------------------------
b7d4c039f0 | Aidan Holm | 2019-11-20 10:48:32 +0800

Make shift-tab work on unix console

--------------------------------------------------------------------------------
c9420b3d73 | Aidan Holm | 2019-11-20 10:48:31 +0800

Move controller event handlers to popup widgets

--------------------------------------------------------------------------------
37c931e5a9 | Aidan Holm | 2019-11-20 10:48:31 +0800

Add widget internal child tracking
It's not uncommon for non-container widgets to have internal children as
an implementation detail, invisible to the code using the non-container
widget. This new API requires such internal children to be explicitly
marked as such, allowing the UI system to enumerate them.

for_each_internal_child() iterates over internal children, and the
somewhat verbose for_each_child_including_internal() iterates first over
internal widgets, and then over all children. These new APIs are added
because widget users will not expect to see internal non-child widgets
they did not add when iterating over a widget.

--------------------------------------------------------------------------------
383bcb0925 | Aidan Holm | 2019-11-20 10:48:31 +0800

Improve Widget::for_each_child() helper
Previously, it only worked on containers, so if you only had a Widget*
you had to use a dynamic_pointer_cast and an if statement: ugly. Now
regular non-container widgets just do nothing by default. It's also been
given a clearer name.

--------------------------------------------------------------------------------
c74a01a412 | Aidan Holm | 2019-11-20 10:48:31 +0800

Remove Layout::add_event_filter() API

--------------------------------------------------------------------------------
74dbbd1b81 | Aidan Holm | 2019-11-20 10:48:31 +0800

Use new hotkey API

--------------------------------------------------------------------------------
50eff3ad4f | Aidan Holm | 2019-11-20 10:48:31 +0800

Add hotkey event handling support
The purpose of this hotkey handling API is to be more explicit about the
purpose of individual event handlers, replacing the add_event_filter()
API. Hotkey handlers are only called for keydown events, before all
other handlers get a chance to run.

Note: hotkey handlers get called for *all* keydown events, due to the
large number of handlers that have switch statements.

--------------------------------------------------------------------------------
5d773dd3d0 | Aidan Holm | 2019-11-20 10:48:31 +0800

Add text entry widget
This commit adds a rudimentary textbox widget. It is single-line only,
and does not support text selection or, indeed, most of the niceties of
regular OS/toolkit-provided textboxes. That can come later.

This widget has an inner LineReader class, which is a gutted version of
the line_reader class, permitting independent modification. line_reader,
meanwhile, will hopefully eventually be removed as more and more UI
layouts are widgified.

--------------------------------------------------------------------------------
ab78da221f | Aidan Holm | 2019-11-20 10:48:31 +0800

Add checkbox widget
This adds a rudimentary checkbox widget. Currently, hovered checkboxes
and checkboxes with input focus are visually indistinguishable.

--------------------------------------------------------------------------------
fe7bffbe7c | Aidan Holm | 2019-11-20 10:48:31 +0800

Add improved console cursor positioning API
Widgets may wish to show the console cursor at a particular position,
e.g. a focused text entry widget should indicate the current cursor
position. However, the cursor position is also changed while rendering
widgets in general, and widgets have no control over the order in which
they are rendered, by design.

This API allows a widget to explicitly request, for one render cycle,
that the on-screen cursor be positioned in a given position. The UI
framework will then move the cursor to that position after rendering,
just before the screen is updated.

--------------------------------------------------------------------------------
66650a8186 | Aidan Holm | 2019-11-20 10:48:31 +0800

Rename MouseEvent -> wm_mouse_event
Partially for consistency with the other wm_event types, but also
because I want to use MouseEvent as a derived type of a new ui-layer
specific Event class, without having to worry about changing all the
cruft left over in tilereg-*

--------------------------------------------------------------------------------
f485fd5ed0 | Aidan Holm | 2019-11-20 10:48:31 +0800

Refactor widget hover path handling
This commit moves the hover path inside the UIRoot struct, which avoids
the undefined destruction order of statically-allocated instances. I'm
not sure that this was ever an issue in practice, but UB is UB, and in
any case the code is cleaner now.

This also fixes an issue when setting a widget's parent did not update
the hover path. Now, the hover path is truncated if the widget has no
parent, and recalculated afresh (delivering mousein/out events) if it is
part of the top layout.

Finally, this commit renames prev_hover_path to hover_path, which makes
much of the code using it easier to read.

--------------------------------------------------------------------------------
87cb31babd | Aidan Holm | 2019-11-20 10:48:31 +0800

Extract UI debug drawing code
This is purely a method extraction and shouldn't have any functionality
changes.

--------------------------------------------------------------------------------
8dd6822314 | Aidan Holm | 2019-11-20 10:48:31 +0800

Make box alignment members protected
This is necessary since changing box alignment should force a
recalculation of the box's size. This was never an issue because noone
was changing box alignments after showing the box, but it's better to
have proper encapsulation.

--------------------------------------------------------------------------------
eeaa2dc683 | Aidan Holm | 2019-11-20 10:48:31 +0800

Clean up ui.cc and ui.h

--------------------------------------------------------------------------------
166592d65c | advil | 2019-11-19 21:47:49 -0500

Various refactoring to make expensive calls less likely
This is all in code paths that are involved in monster movement, so code
that is called very frequently. Calls that check enchantments in
particular seem to be disproportionately bad.

--------------------------------------------------------------------------------
a07cd79442 | advil | 2019-11-19 21:47:49 -0500

Disable some debugging code even in FULLDEBUG
This might be useful if this cache ever stops working, but right now
it's just slowing down FULLDEBUG builds for no good reason.

--------------------------------------------------------------------------------
b95ba5eb33 | Aidan Holm | 2019-11-20 10:46:33 +0800

Unbrace
[skip ci]

--------------------------------------------------------------------------------
53d2a09ee0 | advil | 2019-11-19 20:31:48 -0500

Remove clinging
This is a long-time spoilery corner of dcss monster behavior, and has
been under consideration for removal for years (more or less since
player clinging went). Clinging monsters had weird/unique pathfinding
behavior with a bunch of hidden special cases that weren't ever
well-communicated (or communicatable) to the player, for example a +4
search radius for players out of los.  The special cases were also kind
of error-prone, as in the 0.23 bug with clinging monsters behind glass
walls. This commit removes clinging without replacement.

If this is somehow a nerf to spiders, I would just make them able to
unconditionally cross water. (But I sort of doubt it'll make a
difference.)

--------------------------------------------------------------------------------
514c71c9f1 | advil | 2019-11-19 20:31:48 -0500

Fix a wizmode / test crash on randbooks

--------------------------------------------------------------------------------
94313f71df | advil | 2019-11-19 20:31:48 -0500

Refactor habitability checks around monster flight
The airborne() call is quite heavy, given how many varied things it must
check. This commit refactors habitability checks to only ever check
airborne() if all other tests have failed, and if the terrain is
actually one that would be saved by flight.

--------------------------------------------------------------------------------
ca9b790695 | advil | 2019-11-19 20:31:48 -0500

Clean up some heavy-handed artefact code
Any time you checked an artefact property, the old code made an entire
copy of the CrawlHashTables for both the artefact props and its known
state. Because artefact properties are checked frequently when monsters
are carrying them (mostly in case they have flight), this could lead to
heavy world_reacts on some levels, e.g. Vaults 5. This was particularly
noticeable with step from time on a debug build.

--------------------------------------------------------------------------------
e29c8f2358 | Aidan Holm | 2019-11-18 22:08:36 +0800

Check makefile deps in parallel
When running make, the dependency files are first checked to see whether
they are stale, which can take several seconds. This commit parallelizes
that by forking for each dependency (currently around 350 in total).
There are no race conditions because the output is merged linewise and
there are no ordering constraints on the generated dependencies.

This takes a NOP rebuild from ~3.6 seconds down to ~1.2 seconds on my
machine.

--------------------------------------------------------------------------------
e9c0e85935 | advil | 2019-11-17 19:09:22 -0500

Improve some webtiles logging messages
in order to make cross-checking things a bit easier. (Added IP to login
messages, and name to start/stop watching messages.)

--------------------------------------------------------------------------------
da8bd6cf83 | AdamPG | 2019-11-16 17:01:40 -0500

Make the Warlock's Mirror's reflection chance scale as intended
Commentary about the omnireflection property granted by the Warlock's Mirror 
(see line 3099 of beam.cc) indicates that it is intended to reflect 50% of 
ench-type effects at 20 displayed SH; however, the the actual chance is 33% due 
to a mathematical error. This commit changes the chance to the intended 50% at 
20 SH.

--------------------------------------------------------------------------------
8addd88b59 | Edgar A. Bering IV | 2019-11-16 15:12:44 -0500

Clarify and correct Vampire status info (12121, 12035)
Also, Closes #1202.

--------------------------------------------------------------------------------
3db639d13e | Edgar A. Bering IV | 2019-11-16 13:44:35 -0500

Dismiss most summons on attitude change (12082)
For the most part, creating hostile summons is a bad thing for a player;
however, there are some exceptions that led to degenerate behavior.
Guardian Golem which has no attack and any of the stationary summons
(SLS and Fedhas' summons) could be made hostile in order to block
monsters indefinitely.

This commit changes the behavior in the following way:

- True summons are dismissed on attack. The exception is demons from
  Summon Greater Demon, which turn hostile.
- "Summons" that are M_CONJURED (fulminant prisms, ball lightning, fire
  fire vortices, other spell proxies) take damage but retain
  ATT_FRIENDLY
- Fake summons (snakes, undead, malign gateway tentatcle) become hostile
  on hit. This will need to be re-evaluated if stationary or attackless
  undead get added.

--------------------------------------------------------------------------------
2289b3b9f1 | Aidan Holm | 2019-11-15 16:27:11 +0800

Fix run_layout() clearing default focus
By default, the child widget of the popup widget is focused;
run_layout's initial_focus parameter broke this default.

--------------------------------------------------------------------------------
e48d713e8b | Aidan Holm | 2019-11-15 16:00:17 +0800

Fix string_wrap removing trailing empty segments
This was causing a trailing newline in text widgets to not be rendered
properly on console.

--------------------------------------------------------------------------------
264caf7d7f | Aidan Holm | 2019-11-15 16:00:16 +0800

Set initially focused widget from run_layout()

--------------------------------------------------------------------------------
bfa96ce22d | Aidan Holm | 2019-11-14 22:10:58 +0800

Add support for formatted_string + string

--------------------------------------------------------------------------------
e1e9d9662a | Aidan Holm | 2019-11-14 20:59:31 +0800

Add support for formatted_string += string

--------------------------------------------------------------------------------
33052ceff8 | advil | 2019-11-13 11:56:26 -0500

Remove old flavor messaging from fedhas_altar_decomposition (12106)
This vault seems ok without it, at least if one is fine with trapped
monsters. Could just be removed entirely, perhaps?

--------------------------------------------------------------------------------
fcdb843264 | gammafunk | 2019-11-13 00:19:17 -0600

Correctly cap duration for Fedhas summons
The enchantment degree for the abjuration enchant is supposed to range
from 1 to 6, but the checks on this for monster placement code aren't
applied when non-spells set up the monster data. Code implementing
non-spell abilities that create summons must itself enforce the degree
cap, otherwise it can create permanent allies.

This commit adds this degree cap to the Fedhas abilities. It took invocations
of over 15 to achieve abjuration degrees above 6. Hence it wasn't
'free' to get permanent allies before this commit, but we want the
allies to be temporary ones all the same.

This change means that duration is maxed out at 15 invocations to 190
turns on-average, however the abilities continue to scale with past 15
invocations through increases to the allies' HD.

--------------------------------------------------------------------------------
0cf78c2f83 | Alex Jurkiewicz | 2019-11-12 09:23:21 -0500

Add !cancellation to Zig loot table (EugeneJudo)
"Do cancellation potions not spawn in zigs? They're very useful for
surviving -wiz on pan floors when things get out of hand (brilliance
doesn't help, or at least it still leaves things unreliable to cast.) My
supply is running low, while it's pretty rare that I ever use them."

[Committer's note: Closes #1100]

--------------------------------------------------------------------------------
19cdb01801 | Alex Jurkiewicz | 2019-11-11 23:32:41 -0500

Rework some chaos brand effects
* Common effects added: might, agility
* Cloning can sometimes make neutral/friendly copies of monsters
* Miscasts entirely removed. Too unpredictable for a weapon brand, and
  steps on Spellbinder's toes.

--------------------------------------------------------------------------------
4073cf80fb | Alex Jurkiewicz | 2019-11-10 19:59:50 -0500

Run GDB from /usr/local/bin on OSX
[Committer's note: Closes #987]

--------------------------------------------------------------------------------
3c6720d1ae | Alex Jurkiewicz | 2019-11-10 19:27:16 -0500

Run gdb at lower priority
Will help manage load for online servers

--------------------------------------------------------------------------------
9e23508adf | Umer Shaikh | 2019-11-10 17:13:59 -0500

Make the game check the floor when emergency eating
Currently if the player is about to starve to death, they will
automatically eat from their inventory if they have food available.
Since the player can now eat directly from the floor, this commit
extends that check to seeing if there is anything available to eat on
the floor.

This is an edge case and not likely to matter often, but it's good to
have consistent and unsurprising behaviour. I take it the intention of
commit 2474f45a (which added forced eating when starving) was just about
eating rather than starving, if it's possible, and that nothing special
about the location of the food in inventory was intended; if that's
right, this commit updates behaviour to be in line with that intention.
As a player I wouldn't expect location of the food to matter, only that
the game is kindly not letting me starve from inattention to my hunger
state; if that's the general player expectation, then this commit also
makes the behaviour less surprising.

--------------------------------------------------------------------------------
1bb46122f9 | Edgar A. Bering IV | 2019-11-10 15:11:05 -0500

Revert "Add a trunk reminder for the 0.24 tournament"
This reverts commit 9dd530fc128f9e15ccd22fabec984bd9d586efbc.

--------------------------------------------------------------------------------
20dcb12bf1 | Edgar A. Bering IV | 2019-11-10 14:16:00 -0500

Remove edge cases from Fedhas protection
This commit extends Fedhas protection to piercing attacks done by all
allies. Fedhas summons also worship Fedhas, so can shoot through plants.
Other summons do not, but will shoot through briars because they "can be
shot through". The result is players killing their own briars with a
lightning spire or similar.

The narrowest fix is to have Fedhas only protect briars from non-Fedhas
allies, but the result of that approach is a thicket of special cases.

This commit also extends Fedhas protection to ballistomycete spores
(which had previously been excepted for reasons involving the old spore
network system) and snaplasher vines (the remaining exception, which
wasn't described anywhere).

--------------------------------------------------------------------------------
23bb404d27 | Aidan Holm | 2019-11-10 23:45:40 +0800

Fix overenthusiastic nullptr find-replace

--------------------------------------------------------------------------------
0e808ab1dd | Aidan Holm | 2019-11-10 20:09:08 +0800

Fix backspace-clears-name behaviour
Previous commit did not stop treating backspace as 'clear' if any other
key was pressed. Backspace will now keep clearing until you press a key
that changes the name input (or backspace).

--------------------------------------------------------------------------------
355392fac7 | Aidan Holm | 2019-11-10 19:57:04 +0800

Partially restore backspace-clears-name behaviour (advil, 12119)
Fully restoring the old behaviour is non-trivial, but this change should
make clearing the initial name easy, which is the primary use-case.
Backspace will now clear if it's the first key pressed, and delete one
character at a time otherwise.

--------------------------------------------------------------------------------
1777079349 | Aidan Holm | 2019-11-10 19:46:53 +0800

Fix redraw issue when game ends (Goratrix, 12124)
Fully redrawing the screen is only necessary when running, since a
more() may be issued while running and the map should be updated to
show the correct location. Otherwise, fully redrawing currently causes
redraw issues and crashes if more() forces a redraw during monster
moves; use the old draw code in this case for now.

--------------------------------------------------------------------------------
a3d287bc14 | advil | 2019-11-09 12:51:50 -0500

Don't crash if there aren't enough spells for an acquired randbook
This can happen, for example, if sif grants a mummy a pure
transmutations randbook, and rolls a size of 8 -- there aren't enough
spells in the school currently that a mummy can cast.

--------------------------------------------------------------------------------
a6f17ae7d4 | advil | 2019-11-08 16:24:36 -0500

Don't update travel cache on excursion to unvisited levels (odiv)
An excursion to unvisited levels can happen, since 0.23, for
pregenerated levels when creating abyss terrain. The level excursion was
putting an entry into the travel cache, leading to the level visited
values in ctrl-o potentially being wrong.

--------------------------------------------------------------------------------
7617fd2bc2 | advil | 2019-11-07 14:50:15 -0500

Improve behavior of `remember_name = false`
There were several cases where this option wasn't working as expected.
Two main ones:

* If a name was present in the sticky prefs, but this option was false,
  the saved name would still be loaded.
* It was ignored on restart after a game end.

This commit also lets `*` work to pick a random name at the main menu,
not just at the name prompt. It's a bit of a hidden feature for now, not
sure how best to document it to users.

--------------------------------------------------------------------------------
11f2770c52 | Aidan Holm | 2019-11-07 10:04:34 +0800

Link with the LLVM linker if available
On my system, linking with lld is around 9 times faster than GNU gold,
with link times of around 0.5 seconds.

--------------------------------------------------------------------------------
fb64b48880 | Aidan Holm | 2019-11-07 10:04:34 +0800

Add const

--------------------------------------------------------------------------------
a3fec9ad93 | Aidan Holm | 2019-11-07 10:04:34 +0800

Remove broken back-compat keybindings for hints menu
This broke a while ago, once event delivery was changed to bubble up
instead of down. No-one's complained, so let's quickly removed it; easy
enough to add it in later, but currently it's in the way of further
refactorings.

--------------------------------------------------------------------------------
e945405b5e | Aidan Holm | 2019-11-07 10:04:34 +0800

Remove weird shift-X binding

--------------------------------------------------------------------------------
9b55229ae5 | advil | 2019-11-06 14:18:47 -0500

Don't crash on a few cases of invalid skill names in lua
Handling of bad skill names is extremely mixed in l-you; a few other
cases do actual error checking, but most just return fighting on errors,
which seems maybe non-ideal. There are two dlua cases that will still
crash on bad skill names that I didn't bother to fix.

--------------------------------------------------------------------------------
1d1f32e58f | Aidan Holm | 2019-11-06 10:05:54 +0800

Fix more compiler warnings
This adds most of -Wextra, except for a few exceptions.

--------------------------------------------------------------------------------
5069e0ce05 | Aidan Holm | 2019-11-06 10:04:39 +0800

Fix enum + non-enum mixing in ?: expressions

--------------------------------------------------------------------------------
0d431de418 | Aidan Holm | 2019-11-06 10:04:39 +0800

Remove hacky function pointer casts

--------------------------------------------------------------------------------
2bcd1f60b1 | Aidan Holm | 2019-11-06 10:04:39 +0800

Remove/mark unused parameters
This commit transitively removes unused parameter from all over crawl.
If the unused parameters look like they're part of an interface, I've
left them as is, but commented out the parameter name. In general, if
I'm less confident that a parameter is intentionally ignored, i've
marked it with UNUSED().

One pain point is that crawl has a lot of conditional compilation, and
variables are sometimes only used by one ifdef branch. I've still used
UNUSED in these cases, but it's less than ideal.

--------------------------------------------------------------------------------
359a7de824 | Aidan Holm | 2019-11-06 10:04:39 +0800

Add UNUSED(...) macro
This allows use with parameter packs, and also allows specifying
multiple arguments, e.g: UNUSED(arg1, arg2);

--------------------------------------------------------------------------------
d92d1f55eb | Edgar A. Bering IV | 2019-11-05 20:00:37 -0500

Check appropriate tracers in monster wand usage (ManMan)
Scattershot and Cloud cone were incorrectly using a fake_beam tracer to
determine when to be used as wand spells, instead of the relevant tracer
functions from mon-cast.cc

--------------------------------------------------------------------------------
9796ba8d15 | Aidan Holm | 2019-11-05 00:30:59 +0800

Fix incomplete draws while running (advil)
The UI layer calls viewwindow() via redraw_screen() to ensure that
the base layout (view, hud, and messages) is fully rendered before
rendering any popups (if there are any). viewwindow() does not render
the main view if the player is currently running, however, so if
autoexplore is paused during a prompt (e.g. the inventory full during
pickup prompt or rune pickup force-more), the view is not fully rendered
on either tiles or console.

This commit fixes this issue by only skipping rendering while running if
the current mouse_control mode is MOUSE_MODE_NORMAL. Prompts via more()
and yesno() change the mouse mode, forcing full rendering.

This commit also fixes the turn counter not being updated while
running, and partially fixes the more prompt while running. Currently,
at least on local tiles, resizing the window causes the --more-- line to
disappear, due to the way the message code is structured.

--------------------------------------------------------------------------------
6cdc7bcc1e | theJollySin | 2019-11-04 20:37:15 +0800

Remove haste potion from FoWn start (12115)

--------------------------------------------------------------------------------
e910a4a285 | Edgar A. Bering IV | 2019-11-02 12:29:51 -0400

Don't feel safe near exploding monsters
Change i_feel_safe to alert the player instead of waiting near friendly
fulminant prisms, ball lightning, or ballistomyete spores. Currently
this is slightly overzealous and will refuse to wait in sight of a
fulminant prism regardless of distance, but this minor edge case is
preferable to players waiting after a fight with Fedhas or CBL and dying
after pressing 5.

--------------------------------------------------------------------------------
f553b7a2c8 | Aidan Holm | 2019-11-02 22:00:48 +0800

Fix menu filtering from crashing (damerell, 12120)
cursorto() moves the on-screen cursor to the correct position, given the
cursor offset in the input text. However, resumable_line_reader never
renders to the screen directly, so it's safe to NOP this function
entirely.

The crash itself seems to have something to do with the line reader
start position, but I'm less interested in fixing this hacky mess
because a replacement (textentry widget) is almost finished.

--------------------------------------------------------------------------------
7ce66cc934 | Aidan Holm | 2019-11-02 21:59:27 +0800

Remove unnecessary capitalization
[skip ci]

--------------------------------------------------------------------------------
e58f8a54b6 | gammafunk | 2019-11-01 23:53:32 -0500

Rework a worm vault (again)
This commit reworks worms_lemuel to place more reasonable numbers of
monsters in the earliest depths and to scale monsters and loot up with
depth. For example, in D:7-10 it places only two on-average and 3 at
maximum. The moths of wrath and/or torpor snails are also scaled more
reasonably, only beginning to appear in Lair. Previously the vault used
absolute depth for monster placement, but now it looks at branch and
branch level. The vault's layout is slightly changed to accommodate the
potential max number of spawns.

I've also made the vault place within-branch monsters in Swamp/Spider,
since placing swamp worms in Spider is not too interesting. Now it uses
demonic crawlers in Spider and only torpor snails as the "assistant"
monster there, since crawlers can't be berserked by moth of wrath.

--------------------------------------------------------------------------------
7dccc1bee0 | Aidan Holm | 2019-11-01 12:41:30 +0800

Fix description UIs not scrolling via keyboard
Keyboard events now have to be explicitly passed to scroller widgets, as
they cannot (currently) be focused. A better implementation is in the
works.

--------------------------------------------------------------------------------
fe832476f1 | Aidan Holm | 2019-11-01 11:22:00 +0800

Prevent pinned monsters from using trample (Yermak, 12062)

--------------------------------------------------------------------------------
7ed4e613ac | Aidan Holm | 2019-11-01 10:52:09 +0800

Fix some screens wider than minimum width (12008)
The spell info and memorise menus were slightly wider than the
minimum width. When viewing a description from one of these menus on a
console screen with minimum width (79 chars), the UI layout engine takes
the width of the lower layout into account, and makes the description
view wider than the viewport. Any text outside the viewport is
then truncated, leading to seemingly incorrect wordwrapping.

Menu minimum widths are primarily determined by the width of the title
string. Trimming off empty spaces at the end is enough to fix the issue.

--------------------------------------------------------------------------------
fbcdf995c9 | Aidan Holm | 2019-11-01 10:52:09 +0800

Fix menu title/more margin size
It's generally assumed that titles and entries of the same number of
characters will have the same width. This was not the case because menu
entry text has a right-padding of 10px. This commit adds a right-margin
of 10px to both the title and the more, which fixes ellipsizing of menu
entries when the window width is reduced.

--------------------------------------------------------------------------------
befff83b7c | Aidan Holm | 2019-11-01 02:29:11 +0800

Fix win32 console branded colours
Console crawl has a concept of 'branding' colours, which involves
setting one of several high bits each corresponding to a given brand.
This brand is then looked up in the options, allowing customization of
e.g. how summons are displayed.

On win32 console, branded colours were converted into actual colour
pairs (fg and bg) much earlier than on unix console, (inside the
real_colour() function), with the background colour being stored in bits
0xF0. This worked fine because win32 textcolour() actually updated both
foreground and background colours simultaneously, until db4295c90eb,
which corrected this API inconsistency, inadvertently breaking branded
colours.

This commit moves win32 console branding into libw32c.cc, and applies
branding in the same way it is applied for unix console, fixing this
issue.

I'm not sure why the win32 branding was also enabled for all local tiles
builds, since tiles never draws anything via the console...

--------------------------------------------------------------------------------
88673ef095 | advil | 2019-10-28 21:04:26 -0400

Remove an accidental swastika (Snack, minmay)
Unfortunately it's not a good idea to cherry-pick this to 0.24 during
the tournament (or maybe during 0.24) as this change will potentially
affect any seed that uses minmay_the_grid.

--------------------------------------------------------------------------------
63109bb16d | advil | 2019-10-28 15:51:31 -0400

Fix some odd permastore update conditions (aidanh)
This fixes weird behavior in two cases: (i) it keeps the permastore from
being updated when ghosts are used during level load but the level is
vetoed, and (ii) it keeps the permastore from being updated
unintentionally using wizmode commands.

--------------------------------------------------------------------------------
7a5f90e2b2 | Aidan Holm | 2019-10-28 20:04:46 +0800

Revert "Add rudimentary win32 console colour adjustment" (advil)
Win32 colour adjustment was added so that the new menu implementation
was legible on windows console, but the legibility issue was fixed at
6844edd79dc0, which added explicit menu colouring. Meanwhile, colour
adjustment is breaking the foreground text colour on the species/job
menu on Windows. I'm not sure why unix is not affected.

This reverts commit 40b4c6130089b08bb32c9d453dad5093658186d3.

--------------------------------------------------------------------------------
f342c8b036 | advil | 2019-10-27 11:33:48 -0400

Several updates to the debian release guide, convert to md
This introduces a bunch of extra detail and modifies some of the
recommendations based on our experience packaging debs over the last few
releases. Main changes:
* explicit discussion of how to check dependencies of the built debs,
  hopefully avoiding ubuntu incompatibilities.
* recommend always fully specifying OS/DIST/ARCH for creating and
  updating cows; this would head off some mistakes I've made at least.
* convert doc to md, some cosmetic overhauls

--------------------------------------------------------------------------------
9dd530fc12 | gammafunk | 2019-10-25 15:21:12 -0500

Add a trunk reminder for the 0.24 tournament

--------------------------------------------------------------------------------
a0c9b72eff | advil | 2019-10-25 10:04:50 -0400

Fix comma (Goratrix)

--------------------------------------------------------------------------------
68f861856e | advil | 2019-10-24 20:16:21 -0400

Add some missing credits
I found some names (apparently) not in here while writing the release
post. Also, apparently CXC was missing from here??

--------------------------------------------------------------------------------
0753fd1ad2 | advil | 2019-10-24 14:28:07 -0400

Update debian changelog for release
(cherry picked from commit a7d21def0a8b0b39c6825b643a3b51f371b73583)

--------------------------------------------------------------------------------
45a4e74662 | advil | 2019-10-24 14:27:59 -0400

Finalize changelog for 0.24 release
(cherry picked from commit 54606e7572d31cb9608e76dcbdf8097f60c0c247)

--------------------------------------------------------------------------------
72b0ba0336 | advil | 2019-10-24 10:59:31 -0400

Fix a gcc warning

--------------------------------------------------------------------------------
9c56bcba70 | advil | 2019-10-24 09:13:43 -0400

Add vaults to stable version morgues
We'll see if players think this is too spammy or too obscure, but for
0.24.0 at least this will be helpful for testing any seed issues that
come up.

--------------------------------------------------------------------------------
c466198565 | advil | 2019-10-23 20:42:08 -0400

Fix mummy death curses from ally kills (12104)
This has been broken for a while; it was a mid/mindex confusion. I've
also refactored the call so that it will better handle the case where
your summon does before the fineff fires.

--------------------------------------------------------------------------------
f0389da217 | gammafunk | 2019-10-23 14:53:17 -0500

Rework a wizard vault
The vault cheibrodos_wizard_tower placed on-average 3 8-tier monsters at
Lair depth, which is fairly nasty. This commit reworks the monster and
loot placement to better scale with depth, starting with 1.25 monsters
at D:7-9. The monster set now includes a possible deep elf annihilator
in Dungeon, but only at depths where those are possible 8 spawns, and
with a small chance. The monster count in Elf has been increased as
well.

The vault range is now increased to include D:13-D:$. The loot now has
some thematic aux armor, randbooks, and staves mixed in, and the loot
scales in count with depth.

--------------------------------------------------------------------------------
75acf02343 | advil | 2019-10-23 12:42:40 -0400

Changelog tweaks

--------------------------------------------------------------------------------
6843c08e71 | kitchen-ace | 2019-10-24 00:31:13 +0800

Warn when exploding portal projectiles would hit you
853fe2e fixed this for harming allies, but not yourself.

--------------------------------------------------------------------------------
2ac932518a | Edgar Bering | 2019-10-23 12:13:51 -0400

Correct a changelog entry (pblur)

--------------------------------------------------------------------------------
6afad29e87 | theJollySin | 2019-10-23 16:57:03 +0800

Fixed typo in wands mutation (12103)

--------------------------------------------------------------------------------
47823c4fae | Aidan Holm | 2019-10-23 16:23:21 +0800

Fix loading screen click activating main menu
This fix drops mouseup events if the UI layout has been changed since
the corresponding (well, previous) mousedown event. This fixes a bug
where the loading screen would transition to the main menu on mousedown,
and the mouseup event would then activate the button underneath the
cursor.

I'm not sure this is the best way to fix this. Some alternatives:
- have the loading screen transition on mouseup
- have the loading screen "swallow" the mouseup event explicitly via
  some new API
- have menu buttons only activate on mouseup if they also received a
  corresponding mousedown

--------------------------------------------------------------------------------
29a1220a87 | gammafunk | 2019-10-23 00:29:05 -0500

Some updated invocations tiles from CanOfWorms
Updated tiles for Sif Muna's Divine Exegesis and Fedhas' Wall of Briars,
Overgrow, and Grow Oklob abilities.

--------------------------------------------------------------------------------
3121d2daec | gammafunk | 2019-10-22 23:31:56 -0500

More updates to the 0.24 changelog

--------------------------------------------------------------------------------
6c54e25894 | advil | 2019-10-21 11:17:42 -0400

Add seed as a logfile/score entry
This is necessary if scoring (or perhaps sequell) is to do anything
interesting with seeded games. This commit adds the seed for all game
types, since even for normal games the seed is revealed on game end.
Milestones do not have this field for any game type.

--------------------------------------------------------------------------------
6cf4ce537d | Aidan Holm | 2019-10-21 01:50:38 +0800

Fix formatted_scroller more text alignment
A better fix would be to use the just-removed align_self, but I'd rather
not revert that removal, and adding a better implementation would be too
disruptive at this point (feature freeze).

--------------------------------------------------------------------------------
883716c04b | theJollySin | 2019-10-20 22:33:37 +0800

Adjust barehanded attack prompt wording (11907)

--------------------------------------------------------------------------------
710a5d0249 | theJollySin | 2019-10-20 22:33:37 +0800

Fix Sceptre of Torment inconsistency (12093)

--------------------------------------------------------------------------------
099c3e10fa | kitchen-ace | 2019-10-20 14:24:51 +0800

Draw shields on deep elf knights

--------------------------------------------------------------------------------
8155909c3e | kitchen-ace | 2019-10-20 14:24:05 +0800

Prevent torment from killing spriggan riders
Torment shouldn't be able to kill spriggan riders or their mounts.

--------------------------------------------------------------------------------
303dd5b1f4 | Aidan Holm | 2019-10-19 16:55:46 +0800

Fix text bug (Goratrix)
The Enter key does not close the popup.

--------------------------------------------------------------------------------
747a2b3c0c | Aidan Holm | 2019-10-18 05:51:48 +0800

Add icon to the high scores screen (advil)
This also fixes the high score description text being centered in
console.

--------------------------------------------------------------------------------
1393849f60 | Aidan Holm | 2019-10-18 04:09:29 +0800

Specify max menu width relative to font size (Siegurt, 12097)

--------------------------------------------------------------------------------
3d4e485b54 | Aidan Holm | 2019-10-18 03:46:46 +0800

Fix tile_menu_icons = false on local tiles ability menu

--------------------------------------------------------------------------------
14bc4967e4 | Aidan Holm | 2019-10-18 02:45:30 +0800

Show whether spells are in library in book description

--------------------------------------------------------------------------------
f7f5d9a50a | Aidan Holm | 2019-10-18 01:14:01 +0800

Remove stray pixels from spell tiles

--------------------------------------------------------------------------------
99cdaf76fe | Aidan Holm | 2019-10-18 01:14:01 +0800

Add tiles for a few monster spells
63 to go... as measured by `grep -B7 GENERIC spl-data.h | grep ' SPELL'`

--------------------------------------------------------------------------------
a86127ea33 | Aidan Holm | 2019-10-17 23:38:36 +0800

Tidy dc-spells.txt
Sorts monster spells. The note for future removal referred to an entry
for 'Rearrange the Pieces' that is already gone.

--------------------------------------------------------------------------------
65d077c5f1 | Aidan Holm | 2019-10-17 19:39:22 +0800

Disallow focusing widgets not in top layout (advil, 12098)
On webtiles, focus events for the species menu buttons were being
received after the attributes scroller had opened. On the server side, a
callback would then focus the button, even though the menu had already
been opened.

This fix prevents widgets not in the top layer from being focused.

--------------------------------------------------------------------------------
6ac5fb96fa | Aidan Holm | 2019-10-17 19:29:42 +0800

Add ui::Widget::is_ancestor_of()

--------------------------------------------------------------------------------
c393037b80 | Aidan Holm | 2019-10-17 18:46:37 +0800

Update the changelog

--------------------------------------------------------------------------------
f18fdeb47f | Umer Shaikh | 2019-10-17 00:00:59 -0400

Show flay damage in status light
It is tactically useful to know how much damage is due to flay. For
example, it matters in deciding whether to quaff cancellation or who to
attack.

This information is already revealed to the player, but not in a
convenient way. At the moment the careful player must pay attention to
what the sources of damage are as the fight proceeds in order to know
this; and, if this is neglected, it is difficult to recover the
information from the message log later in the fight.

This commit reveals that information more straightforwardly by adding it
to the flay status light. I show a number instead of a more
coarse-grained indicator. Note that otherwise the conscientious player
will still want to keep track manually of damage since they can get
better information that way.

The damage is displayed as a negative number for consistency with the
similar corrosion status light.

--------------------------------------------------------------------------------
72dcfe0359 | advil | 2019-10-16 09:55:41 -0400

Revert "Remove support for multi-key macro binds" + associated commits
It turns out that multi-key macros were used for keybinds for
multi-character sequences sent by some terminals corresponding to
special keys. For example, under the VT100 standard, \{27}Ov is sent by
numpad 6. Another example: on OS X, option+arrow keys send
multi-character escape sequences as well (maybe even outside of
terminal). This sequence of commits broke such old macro files, and even
worse, tended to break ESC, since nearly all of these sequences are ESC
sequences. We'll need to rethink how to simplify this.

Some of these simplifications might be independent of the current revert
project and could be restored...

This reverts commit 049a78546b28e77ec9647cdfd40840a8451f18ad.
    (Note: also a partial revert of d158fba7, 0b1efcb, 0e779d2)

This reverts commit 678ee33c32bb4efb2fda34a8b44ce857352add0c.

This reverts commit 5a8975c3e2236cd5aa0d3cf1738ccfdd360a4ab3.

This reverts commit 3ea5ddb52caf3a66e4f92f90f056132a344c65e3.

--------------------------------------------------------------------------------
dc1bd944b9 | advil | 2019-10-15 21:38:37 -0400

Fix Ru sacrifice delay with faith (12096 / @Wise Wolf)
Specific problem and solution found by @Wise Wolf on discord yesterday.

--------------------------------------------------------------------------------
c5ee894079 | Edgar A. Bering IV | 2019-10-15 21:10:06 -0400

Further update the changelog
Add in descriptions of the Vampire and Throwing changes

--------------------------------------------------------------------------------
a5a8db46c7 | gammafunk | 2019-10-15 15:36:15 -0500

Update the changelog
A quick pass that likely contains errors. I've left out Vampire and
Throwing changes so that those can be written up by others.

--------------------------------------------------------------------------------
83157970ee | advil | 2019-10-15 16:14:35 -0400

Fix a js error in go_lobby
Not sure what the conditions are that trigger this, but probably at
least game_exit::abort.

--------------------------------------------------------------------------------
74baf033cd | advil | 2019-10-15 16:14:35 -0400

Add a webtiles seed selection popup
At first glance, this may appear to be a feature, but it is in fact a
bug: the bug is that paste doesn't work for crt-emulated input.
Implementing this as an actual textbox is the only way I've found to get
this to work in webtiles.

This doesn't materially change the implementation of the seed selection
ui for console/local tiles; it is just as bad as ever.

--------------------------------------------------------------------------------
f4602a88a1 | Aidan Holm | 2019-10-15 23:14:54 +0800

Factor out Region::contains_point()
This commit also fixes a few off-by-one bugs in widget hit testing.

--------------------------------------------------------------------------------
b94451d52d | Aidan Holm | 2019-10-15 23:14:54 +0800

Don't allow showing messages on arena team choice UI
It's always empty.

--------------------------------------------------------------------------------
2533fd6716 | Aidan Holm | 2019-10-15 23:14:54 +0800

Fix segfault when delivering mousebutton events
The previous code used a reverse iterator that could be invalidated by
the hover path changing during event handling, causing a segmentation
fault.

It may be better to first copy the hover path and then iterate over
that; this would matter if an event handler changed something in the
hover path. But the semantics of event emission aren't strongly defined
at this point; better to wait for a use-case and revisit this then.

--------------------------------------------------------------------------------
c27d5b89ad | Aidan Holm | 2019-10-15 23:14:54 +0800

Fix some event forwarding bugs
Previously, the UI framework would propagate events from the topmost
root widget down to child widgets. The framework has since been changed
to propagate events up from a focused widget, inadvertently breaking
these event handlers' custom event propagation.

--------------------------------------------------------------------------------
bc5b4a9081 | Aidan Holm | 2019-10-15 23:14:54 +0800

Add ui::Switcher::current_widget()

--------------------------------------------------------------------------------
8ab17b4d2b | Aidan Holm | 2019-10-15 23:14:54 +0800

Fix off-by-one error

--------------------------------------------------------------------------------
1381ef2bc4 | Edgar Bering | 2019-10-15 07:47:17 -0400

Update CREDITS

--------------------------------------------------------------------------------
b8d28a4aeb | theJollySin | 2019-10-15 07:37:24 -0400

Misleading text when renouncing religion (8887)

--------------------------------------------------------------------------------
2fe12d4386 | advil | 2019-10-14 16:25:26 -0400

Fix the build on non-webtiles (aidanh)

--------------------------------------------------------------------------------
a8c9d54b12 | advil | 2019-10-14 16:09:42 -0400

Fix seed selection on webtiles
Eventually this needs to be rewritten to use a browser text input box.

--------------------------------------------------------------------------------
b6de7aaf3c | mwvdev | 2019-10-14 14:15:16 -0400

Fix manual typos

--------------------------------------------------------------------------------
771548fc26 | kitchen-ace | 2019-10-15 01:00:46 +0800

Don't stop travel for changes from (un)melding
If you are auto-travelling, and you lose stats from armour
melding or unmelding, don't stop auto-travel for that reason
alone. This is really only relevant for merfolk with artefact
boots, but the fix should apply to the general case.

--------------------------------------------------------------------------------
653463b16e | Nikolai Lavsky | 2019-10-15 00:45:52 +0800

Add details to the newgame dolls
This commit adds hair, claws, and horns to player dolls on the
species selection menu.

These extra bits are selected according to the default values from
`tilep_race_default()` and `fill_doll_equipment()`.

--------------------------------------------------------------------------------
8ac2ca0a91 | Nikolai Lavsky | 2019-10-15 00:45:52 +0800

Refactor the processing of species/job tiles
This commit fixes a couple of enum names, removes unnecessary file
extensions, and replaces repeating file paths with `%sdir`.

--------------------------------------------------------------------------------
8166f019b9 | Aidan Holm | 2019-10-15 00:45:52 +0800

rltiles: Allow referencing generated images by enum
Wherever image filenames are used, you can now also refer to an
already-generated tile by its enum name. The first such matching tile is
chosen; there is no support (yet?) for selecting a variation.

The motivation for this feature is to reduce duplication and ensure that
changes between tiles are synchronized.

--------------------------------------------------------------------------------
e7af4de912 | Aidan Holm | 2019-10-14 23:26:55 +0800

Fix abyss-gen level excursion milestones (kitchen_ace, 12078)
Abyss generation can include parts of other levels, through a level
excursion. When including part of a level that the player had never
visited, a milestone was erroneously added.

--------------------------------------------------------------------------------
6559c6c67a | kitchen-ace | 2019-10-13 14:59:21 -0400

Show that bloodless vampires' bite can heal
It's not obvious that vampires can heal themselves when they bite
something, and that this works only when they're bloodless. Add some
messages to the abilities screens.

--------------------------------------------------------------------------------
14d03b10f2 | kitchen-ace | 2019-10-13 14:58:48 -0400

Fix showing regen amulets as useless for Vampires
Vampires now heal when bloodless as long as no monsters are in LOS.

--------------------------------------------------------------------------------
ac51ba0f9b | gammafunk | 2019-10-12 20:40:28 -0500

Update ballistomycete descriptions (kitchen-ace)
Updates the descriptions for ballistomycete and ballistomycete spores to
remove an outdated reference to ballistomycetes growing and to describe
the effect of the spore's explosion. Also add a description for the
Sporulate ability using the same language. Closes #1183.

[skip ci]

--------------------------------------------------------------------------------
0f74319286 | advil | 2019-10-11 12:18:19 -0400

Don't crash with equip_unequip
I think this case just got missed in b57a41d.

--------------------------------------------------------------------------------
a050431806 | Umer Shaikh | 2019-10-10 18:28:50 -0400

Allow putting on jewellery from the floor
This commit extends previous functionality to work with
puton_ring (which also handles amulets). Amount of time to perform the
action is the same as putting on jewellery from the inventory.

[ Closes #1136 ]

--------------------------------------------------------------------------------
b57a41df76 | Umer Shaikh | 2019-10-10 18:23:04 -0400

Allow wielding and wearing from the floor
This commit changes wield_weapon and wear_armour to use use_an_item so
the player can wield and wear from the floor. It also changes
use_an_item so * and - options are allowed to, respectively, view and
choose from all items and (if selecting weapons) swap to bare hands.
This means * is now available for quaffing and reading as well.

The wield weapon menu can now be brought up even if there are no weapons
around---indeed, even if there is nothing at all around. The first is
because you can wield non-weapons with *. The second is because you
always have your bare hands, and I am anticipating a menu where basic
stats for weapons are displayed alongside the options (a long-standing
feature request).

This commit implements * to show all items. This preserves the current
ability to wield non-weapons and fulfills a TODO marked in the existing
use_an_item code, so that * can be used for reading scrolls and quaffing
as well. However, my own feeling is that this is not a usefull bit of UI
complexity from the player's side. You cannot quaff non-potions, read
non-scrolls, or wear non-wearables anyway. And as far as I know the only
practical use for wielding non-weapons is breadswinging, a niche
speedrunning tactic. I suggest cutting this and cutting the ability to
wield non-weapons.

This commit makes wielding or wearing from the floor take the same
amount of time as wielding or wearing from your inventory. I think this
is the least surprising UI and is consistent with the current behaviour
for quaffing and reading from the floor (10 aut). I anticipate this
means speedrunners and the hyper-optimal will want to sometimes pick
items up by wielding them from the floor (e.g., wielding arrows to pick
them up).

[ Committer's note: Wielding arrows from the floor to pick them up then
  switching back to the previously wielded item costs 15 aut and 2 turns.
  Just picking up the arrows costs 10. Whether turns or aut are used for
  scoring, just picking up arrows is faster. ]

--------------------------------------------------------------------------------
b7a8766ae5 | Byrel Mitchell | 2019-10-10 18:06:47 -0400

Fixed bug in OTR variance reduction commit
This makes it impossible to gain extra OTR duration by breadswinging during
the final turn of duration.

[Closes #1177]

--------------------------------------------------------------------------------
71cb82dfb8 | Aidan Holm | 2019-10-11 02:44:24 +0800

Fix crash when repeating menu evocations (gammafunk)
When repeating the previous command via the ` key, the UI is not fully
laid out. The current implementation depends on having the menu more
text default to not being visible for the UI to layout correctly.

On local tiles this isn't an issue, since scrollers render their own
scrollbars, but on console the scroll position is rendered to the more,
and the layout error was causing a division by zero in the position
calculation.

--------------------------------------------------------------------------------
ddf7d93d98 | Byrel Mitchell | 2019-10-10 14:29:33 -0400

Adjust OTR to be more turn length invariant.
Changed direct damage to use turn length in auts (instead of 10s of auts) for 
direct damage, and to scale odds of adding a poison stack linearly between 1 
and 20 aut turn lengths (instead of 50% odds regardless of turn length.) This 
has the same results as previous calculation at 10 aut turns, but eliminates 
the incentive to 'quick-blade-swing' to add poison stacks rapidly.

--------------------------------------------------------------------------------
36a6468e2f | Aidan Holm | 2019-10-11 01:41:06 +0800

Don't scale when rendering lines (Goratrix, 12085)
This bug was caused by line buffer rendering correctness depending on
the GL scale being the same when buffer packing and when rendering,
which was only required due to the way the local tiles minimap worked.

The local tiles minimap has been changed to render the boundary box with
no scaling, fixing this weird quirk.

--------------------------------------------------------------------------------
5730307ebe | Nikolai Lavsky | 2019-10-10 13:36:11 -0400

Indicate damage done by Ignite Poison
This commit brings Ignite Poison in line with other damaging spells
that use exclamation marks to show the amount of damage done.

It is a followup for PR #952 and commits 4a3ee908 and 1f260a4b.

--------------------------------------------------------------------------------
410b6b9510 | Aidan Holm | 2019-10-11 00:53:02 +0800

Revert "Remove UI_CRT and other UI gunk"
Reverted due to https://crawl.develz.org/mantis/view.php?id=12090

This reverts commit ad5c9ccc1d3bb7aae20c7d970926c877ea0f62fe.

--------------------------------------------------------------------------------
bc6939d5a1 | Aidan Holm | 2019-10-11 00:02:05 +0800

Fix minimap stretching on local tiles

--------------------------------------------------------------------------------
fe114aac19 | Aidan Holm | 2019-10-10 22:45:34 +0800

Remove ui_ prefix from namespaced functions

--------------------------------------------------------------------------------
ad5c9ccc1d | Aidan Holm | 2019-10-10 22:45:34 +0800

Remove UI_CRT and other UI gunk
tiles_crt_popup() shouldn't be necessary, since these UIs don't use any
cgotoxy/cprintf calls themselves. I'm not exactly sure of the purpose of
the set_ui_state() calls here, but they shouldn't be required either for
those UIs to work correctly.

In general, we're trying to remove tiles_crt_popup() entirely, as it was
an temporary hack used to wrap old-style UIs. As of this commit, the
last remaining such UI is the skill menu UI.

--------------------------------------------------------------------------------
6733c4489b | Aidan Holm | 2019-10-10 22:45:34 +0800

Make text widget members private
We also add size request invalidation, just in case someone is doing
something interesting...

--------------------------------------------------------------------------------
6c541cf830 | Aidan Holm | 2019-10-10 22:45:34 +0800

Remove ui::Widget align_self property
This only did anything inside a box widget, and was confusingly named
(does it refer to main- or cross-axis alignment?). It seems to be
unnecessary, although relying on the parent stretch property is probably
slightly brittle.

IIRC Flutter allows the parent to store a small amount of data on child
widgets; perhaps adding a Box::set_child_cross_alignment() that utilizes
this method will work well.

--------------------------------------------------------------------------------
83d332edcd | Aidan Holm | 2019-10-10 22:45:34 +0800

Make ui::Box member private

--------------------------------------------------------------------------------
c303d00229 | Aidan Holm | 2019-10-10 22:44:26 +0800

Improve Box widget alignment property names
"main" means alignment along the main axis, while "cross" means alignment
along the cross axis. E.g. for a horizontal box, the main axis is
horizontal and the cross axis is vertical.

--------------------------------------------------------------------------------
d9e12f686b | Aidan Holm | 2019-10-10 22:42:55 +0800

Make RestartAllocation private to ui.cc

--------------------------------------------------------------------------------
1ec443c8e5 | Aidan Holm | 2019-10-10 22:42:55 +0800

Remove ui::vec utility array

--------------------------------------------------------------------------------
cb6844083c | Aidan Holm | 2019-10-10 22:42:55 +0800

Remove use of ui::i2

--------------------------------------------------------------------------------
9d7ac8f862 | Aidan Holm | 2019-10-10 22:42:55 +0800

Clean up headers

--------------------------------------------------------------------------------
87254cb62d | Aidan Holm | 2019-10-10 22:42:55 +0800

Add ui::Region helper class

--------------------------------------------------------------------------------
aeaa904cbb | Aidan Holm | 2019-10-10 22:42:55 +0800

Add ui::Margin helper class
This makes margin member accesses clearer, by allowing/forcing the use
of symbolic names (top/left/etc) rather than array<int> indices.

Also adds several Margin() constructors, based on CSS notation;
parameters are now forwarded by the set_margin_for_* helpers. Those
helpers also now invalidate their size request, so updating margins live
should also work.

--------------------------------------------------------------------------------
5029d81fa4 | Aidan Holm | 2019-10-10 22:42:55 +0800

Add ui::Size helper class

--------------------------------------------------------------------------------
2df86a587e | Aidan Holm | 2019-10-10 22:42:55 +0800

Add widget visibility
Non-visible widgets don't get rendered or allocated and have a size
request of zero.

--------------------------------------------------------------------------------
35933f4585 | advil | 2019-10-09 10:58:42 -0400

Don't let overgrow target out of bounds
This directly provides bounds information, but that is the same as the
dig and passwall targeters. The alternative (to avoid a crash) would be
letting the targeter work, but the spell fail, which seems worse.

--------------------------------------------------------------------------------
2b6660483a | gammafunk | 2019-10-09 01:31:40 -0500

Fix use of Slimify on derived undead (CanOfWorms)
The monster polymorph code had a special consideration (i.e. a hack) for
derived undead that have the shapeshifter enchantment. This hack
involved having the polymorph target check look at the monster type of
the original type the undead monster derived from instead of the current
type. A byproduct of this hack was that derived undead that got
Slimified wouldn't polymorph into a death ooze yet would be converted to
a neutral monster.

Derived undead with the shapeshifter enchant shouldn't exist since
undead are not normally able to polymorph. Hence this commit removes the
hack to allow Slimify to work properly. Any derived undead that attempts
to shift simply generate the "...looks momentarily different" message.

--------------------------------------------------------------------------------
06d714f949 | Edgar A. Bering IV | 2019-10-08 22:53:13 -0400

Add new airstrike formula to monster (minmay)

--------------------------------------------------------------------------------
aa6b62e8fb | Edgar A. Bering IV | 2019-10-08 22:27:54 -0400

Add attack strength punctuation to waterstrike and airstrike
These (and everything else in mon-cast.cc that does damage in
mon-cast.cc instead of via beam.cc) were missed when attack strength
punctuation was added to spells.

--------------------------------------------------------------------------------
4d0d9f2136 | Edgar A. Bering IV | 2019-10-08 22:25:17 -0400

Give monsters the player airstrike damage formula
Commit a0cb8612 simplified airstrike damage for players; monster
airstrike damage was previously a hack that gave a simplified
damage formula and also reduced variance to work around the old
formula's long tail.

The new airstrike damage formula does not have the high-variance long
tail and is appropriate for monsters to use.

--------------------------------------------------------------------------------
601f8f6d22 | kitchen-ace | 2019-10-08 20:52:30 +0800

Use felid blade hands tile with mons:natasha
If the player has tile_player_tile = mons:natasha, show the felid
version of blade hands. It's still not perfect (and doesn't match
with many of the other felid tiles) but looks much better than the
human blade hands tile.

--------------------------------------------------------------------------------
e5367748bb | Aidan Holm | 2019-10-08 15:25:49 +0800

Fix grow oklob tile colour space reduction
Unfortunately the previous iteration of the grow oklob ability tile had
been saved with an unintentionally reduced colour set, due to the PNG
being in indexed mode.

--------------------------------------------------------------------------------
92173c342a | Aidan Holm | 2019-10-08 15:24:53 +0800

Add tile for sprint monster spell

--------------------------------------------------------------------------------
048a31fd0b | John Stilley | 2019-10-07 18:15:48 -0700

Put an oklob in the tile for Fedhas's oklob ability (#1173)

--------------------------------------------------------------------------------
3fb7a4b9a4 | John Stilley | 2019-10-07 18:12:56 -0700

Improving redundant working on flight dangers (#1174)

--------------------------------------------------------------------------------
36f0aeb843 | theJollySin | 2019-10-07 16:23:12 +0800

Remove ill-fitting confusion text (1583)
This visual doesn't work for monsters with 0 or 1 eyes

[skip ci]

--------------------------------------------------------------------------------
74da537585 | S. Mark | 2019-10-06 17:51:03 -0400

Update mailmap.
[skip ci]
--------------------------------------------------------------------------------
30414c0b45 | S. Mark | 2019-10-06 17:49:23 -0400

Fix typo.

--------------------------------------------------------------------------------
8ac54030cd | advil | 2019-10-06 17:37:31 -0400

Add an explicit bounds check to crawl_view_buffer ()
This is what was crashing in #1166 / mantis 12069, but because it was
triggered by an invalid memory access, whether there was a crash was
very system/build-specific. This makes a similar out of bounds error
explicit in the future.

--------------------------------------------------------------------------------
b0425b2895 | advil | 2019-10-06 17:37:31 -0400

Remove an ifdef related to seed selection
This never really worked right anyways, and gave errors on CPO

--------------------------------------------------------------------------------
f26d6114a7 | Aidan Holm | 2019-10-07 05:05:29 +0800

Fix dungeon feature quotes not visible (Vaamat, 12032)

--------------------------------------------------------------------------------
3be9bf80fb | Aidan Holm | 2019-10-07 03:52:55 +0800

Add keybind to clear player name (kitchen_ace, 12084)
Using backspace to clear is not the best choice because a) it's kind of
weird for backspace to delete everything, and b) difficult to determine
when to delete everything and when to delete just one letter.

--------------------------------------------------------------------------------
bb1ff42f1e | Aidan Holm | 2019-10-07 03:37:01 +0800

Fix invalid read causing map-view crash (jackofblades, 12069)

--------------------------------------------------------------------------------
643f6c6e1a | Aidan Holm | 2019-10-07 02:24:03 +0800

Fix main menus not handling app quit (Goratrix, 12080)

--------------------------------------------------------------------------------
ad1f87bc89 | Aidan Holm | 2019-10-07 02:15:58 +0800

Fix empty high scores menu (Goratrix, 12080)
The reported bug was caused by there being no focused UI widget, so the
escape key was never handled. I really need to revisit that whole focus
system...

I also added in a placeholder text label for when there are no
highscores, explicitly stating the fact.

--------------------------------------------------------------------------------
368c1644f8 | Umer Shaikh | 2019-10-03 15:47:11 -0400

Clean up a function
Change the function is_habitable_feat to an equivalent formulation which is
simpler and idiomatic.

--------------------------------------------------------------------------------
dea222dd76 | Aidan Holm | 2019-10-04 00:31:51 +0800

Refactor and improve UI widget iterators
This removes the honestly quite hacky container iterator implementation
which deferred at runtime to a heap-allocated implementation class.
Instead, each container type gets their own iterator. If you have a base
class pointer and you want to iterate over it, the new foreach() helper
function does that. It's a little ugly, but much better than before,
especially since iterating over a derived type is the common case.

--------------------------------------------------------------------------------
98f196556d | Aidan Holm | 2019-10-03 22:45:37 +0800

Don't include debug drawing in release builds

--------------------------------------------------------------------------------
fb0ce180c5 | Aidan Holm | 2019-10-03 19:53:41 +0800

Add widget margin debug drawing

--------------------------------------------------------------------------------
0be37ba3bd | Aidan Holm | 2019-10-03 19:53:25 +0800

Fix off-by-one error in mouse hover handling

--------------------------------------------------------------------------------
f64bd74572 | Aidan Holm | 2019-10-03 19:29:35 +0800

Simplify code

--------------------------------------------------------------------------------
f1eb651baa | Aidan Holm | 2019-10-03 19:26:33 +0800

Fix startup menu spacing issues
This fixes a bug where there was no margin between the header text and
the name entry row. This also replaces some conditional minimum heights
with proper margins.

--------------------------------------------------------------------------------
ca426f56c8 | gammafunk | 2019-10-02 15:27:12 -0500

Update descriptions for Fedhas (Snack ⑨)
Update descriptions for the god and the general description of its
powers, and update the descriptions for all ability to mention the
affects of Invocations training.

[skip ci]

--------------------------------------------------------------------------------
f4813fd24d | gammafunk | 2019-10-02 14:56:40 -0500

Update the descriptions for Sif Muna (Goratrix)
The god and god power descriptions were still based on the previous
iteration of Sif.

[skip ci]

--------------------------------------------------------------------------------
74cc3aede5 | Nikolai Lavsky | 2019-10-01 22:44:20 -0400

Fix display of detected gold on the minimap (11950)
Currently, there are several Gold Sense-related bugs:
* on webtiles, detected gold is not displayed on the minimap;
* on local tiles, it disappears from the minimap after reloading the
  game and after reentering a floor;
* on console, it's not possible to scroll the map in the X mode to see
  all detected piles of gold on a new level.

This happens because now update_item_at() runs more than once for each
pile of gold.

Prior to 063869c, the gold detection code from files.cc:_count_gold(),
which contains update_item_at(), run only once for each new level.
After that commit and after 4488db6, the gold detection code, which is
now in god-passive.cc:gozag_detect_level_gold(), runs twice when the
player enters a new floor. First, it runs as a delayed action, then it
runs for counting the generated gold (both calls come from
files.cc:load_level()).

When it's called the first time, gozag_detect_level_gold() sets the
MAP_DETECTED_ITEM flag for each pile of gold, so they would appear on
the minimap. When gozag_detect_level_gold() called after that,
clear_item() removes this flag from the piles, and, since
env.map_knowledge() already knows about those piles,
gozag_detect_level_gold() won't set the flag again.

The code path is god-passive.cc:gozag_detect_level_gold() ->
show.cc:update_item_at() -> map-cell.h:set_item() ->
map-cell.h:clear_item().

Unlike webtiles, local tiles update the minimap only after the first
call, so detected gold appears on the minimap, but only until a current
level is reloaded.

This commit makes it safe to call gozag_detect_level_gold() multiple
times: update_item_at() will be called only for undetected piles of
gold.

Also, force update of the minimap so piles of gold generated in new
Abyss regions are displayed too.

--------------------------------------------------------------------------------
bfa02ace7b | EC2 Default User | 2019-10-01 21:59:27 -0400

Fix wizdump loading when rotted or Gozag follower.
Recognize "HP:" and "MP:" as mourge line starts.
Recognize Gozag which doesn't have a piety meter, causing the God line
to only have 8 fields.

--------------------------------------------------------------------------------
bab67b8a05 | gammafunk | 2019-10-01 20:57:53 -0500

Remove an unused function for Dithmenos conducts
Since Dith no longer cares about sources of fire, this function is
unused. A similar function that tests for fiery monsters by monster
class is still necessary for resistance checks.

--------------------------------------------------------------------------------
a1bddc09a4 | gammafunk | 2019-10-01 20:57:53 -0500

Rework damage of ballistomycete spores
Currently the spore damage is fixed at 3d15, which is pretty high when
the 3* Grow Ballistomycete becomes available. This commit incorporates
Invocations skill into the spore explosion damage and decreases the
initial damage.

The new explosion damage is 3d(5 + spore HD), with spore HD ranging from
1 at 0 Invocations to 28 at Invocations 27. Hence the max damage at 27
Invocations is 3d33, which is very similar to max spell-power Fireball.

--------------------------------------------------------------------------------
27a75b7c53 | gammafunk | 2019-10-01 20:57:53 -0500

Fedhas rework part 11: simplify conducts
Fedhas used to care about corpse-violating spells or items, a minor
conduct thematically connected to how piety was gained for this god. Now
that Fedhas appreciates kills, this conduct doesn't make thematic sense.
It was also too minor a conduct, so the two best options are removing it
or expanding it to a more significant set of conducts thematically
connected to the current god.

One option is making Fedhas hate all of necromancy. This is similar to
the removed no-fire-magic conduct for Dith, but it affects a much larger
number of spells in a school that's one of the strongest.
Unfortunately, the reasons for current Fedhas hating necromancy are a
bit tough to justify. Something about necromancy disrupting the natural
cycle of life and death in nature is a bit sketchy when so many other
things could do this.

Another option is to make Fedhas a good god, which introduces some
gameplay changes as well as an even more pervasive set of conducts.
Unfortunately, Fedhas is a god that's significantly stronger early on
relative to how strong they are later in the game. Since being a good
god would remove any wrath effects at all for most god swaps and even
allow retaining piety for switches to the good gods that are stronger
than Fedhas later on, this opens up a lot of no-brainer god switches.

In the end, I wasn't satisfied with either option, so for now I'm simply
removing Fedhas' conducts related to undead worhsipers and corpse
violation without replacement. This means that ghouls, mummies, vampires
and those unblessed with the mighty lich form can now worship Fedhas.
I'm open to re-adding something like the no-necromancy/undead conduct or
another interesting conduct if details can be properly hashed out.

Fedhas also had a minor conduct related to letting a permanent ally die
which I've also removed. Fedhas no longer makes permanent allies, so
this conduct no longer makes sense. Fedhas still gives penance if you
kill an actual plant or a summoned ally, of course.

--------------------------------------------------------------------------------
dacd3b15af | gammafunk | 2019-10-01 20:57:44 -0500

Fedhas rework part 10: Grow Oklob ability
A 5* ability to summon an oklob plant at a smite-targeted location
within radius 2 for a cost of 6 piety. The HD of the oklob is increased
by 1 for each level of Invocations skill, which increases its summon
duration, its HP, the damage from its Spit Acid ability, as well as the
frequency with which it uses Spit Acid. These aspects are all done in
the same way as Fedhas' previous Evolution ability had Invocations
influence oklobs.

This is not an especially creative ability, but it's fun to play with
strong stationary allies. At a cost of 6 piety, a player at 6* could
make quite a few oklobs, so it's still possible to make a large group
for a single fight on e.g. Zot:5.

--------------------------------------------------------------------------------
286ebac72d | gammafunk | 2019-10-01 20:47:15 -0500

Fedhas rework part 9: Overgrow ability
A 4* ability that transforms any (non-permarock) walls, trees, doors, or
diggable solid features in a 3x3 smite-targeted area into plant allies
at a cost of 12 piety. The created monster is a summon, but the wall is
permanently destroyed.

This commit implements a targeter UI that only shows cells as affected
if they contain a wall that's a valid target for Overgrow. To be
affected, a wall must be in LOS and not blocked by a feature that blocks
translocations (e.g. clear walls). Open doors won't be affect if they
contain a monster, and if it turns out there was an invisible monster in
the open door, the ability will fail but still use piety.

Currently the set of possible plant allies is weighted towards oklob
saplings, wandering mushrooms, and burning bushes, with lower chances
for ballistomycetes and oklob plants. The plant HD is increased by 1
with each level of Invocations, which for oklob saplings, burning
bushes, and oklob plants will give more damage per use of their
abilities, and oklob plants will get an increase in their "spit" rate.
All monsters will get increased HP and summon duration with Invocations.

--------------------------------------------------------------------------------
8f1ea3d74c | gammafunk | 2019-10-01 20:47:15 -0500

Fedhas rework part 8: remove Rain
Part of what Rain does is allow creation of plants, but this is no
longer relevant, since the other Fedhas ally creation abilities don't
need plant intermediaries. The other prominent aspect of Rain is
permanent creation of deep water, but this leads to a lot of luring. The
new Wall of Briars ability provides some instantaneous limitation of
monster movement, but in a way that doesn't make permanent terrain
changes and hence less encourages luring.

--------------------------------------------------------------------------------
7ac76a7cd5 | gammafunk | 2019-10-01 20:47:15 -0500

Fedhas rework part 7: rework Reproduction
This commit replaces Fedhas' Reproduction with Grow Ballistomycete, an
ability that creates a summoned ballistomycete at any smite-targeted
location within radius 2 at a cost of 5 piety. Ballistomycetes have been
simplified in the previous commit and now use their Sporulate ability to
create spores that try to reach their target in order to explode.

The explosion radius has been reduced to 1, so this combined with more
flexibility in positioning will make it easier for players to avoid the
explosion. If explosion avoidance ends up still being too big an issue,
we could have a Fedhas passively protect players from the explosion to
some degree.

Ballistomycetes get increased HD and duration with Invocations, gaining
1 HD per level of the skill. The only effect of this HD increase at
present is more HP. We probably don't want to increase the usage rate of
Sporulat like we do for Oklob Plant's spit acid, since rapidly creating
too many spores will create...a lot of explosions.

Fedhas wrath places spores around corpses using some of the same
functions that were previously used for Reproduction. Hence these have
been moved to god-wrath.cc. It would probably be best to simplify this
wrath by creating durably summoned ballistomycetes instead, but I'm not
doing that for now.

--------------------------------------------------------------------------------
7da3b9efa7 | gammafunk | 2019-10-01 20:47:15 -0500

Fedhas rework part 6: simplify ballistomycetes
Ballistomycetes (ballistos) are complicated monsters that grow based on 
interactions
with the spore monsters. Spores leave mold as they move, which can give
rise to the production of new ballistos. This set of behaviors
fell into the realm of "complexity for the sake of complexity". One had
to wait a while for this "reproduction" to play out, only to get a few
more ballisto spores. Now that we're putting stronger limits on
ally usage through use of summons, it's a good time to simplify the way
ballistos and their spores work.

This commit removes the reproduction aspect of ballistos, removes mold
itself, and simplifies ballistos down to one type of monster.
Additionally, ballistos now have a Sporulate natural ability they
occasionally use to create a single spore as a short-lived summon. The
spore will seek after the ballisto's target and explode upon hit, still
producing the damaging explosion that applies confusion to living
targets.

A subsequent commit will make a Fedhas active ability to let the player
to create a ballisto summon, and this will replace Fedhas' Reproduction.

--------------------------------------------------------------------------------
dd8df34df5 | gammafunk | 2019-10-01 20:47:15 -0500

Fedhas rework part 5: remove Evolution
As per the Fungal Bloom and Growth ability removals, we don't use plants
as intermediaries for creating allies. New abilities to create some of
these monsters as summons directly will be added in future commits.

--------------------------------------------------------------------------------
6ba74d5838 | gammafunk | 2019-10-01 20:47:15 -0500

Fedhas rework part 4: remove Growth
Fedhas will use summons to create all allies instead of creating
permanent ones using actual plant monsters as intermediaries. Hence
Growth, also referred to as using the descriptor `RING_OF_PLANTS` in the
source, is no longer necessary.

--------------------------------------------------------------------------------
1d64b78cf4 | gammafunk | 2019-10-01 20:47:15 -0500

Fedhas rework part 3: remove Sunlight
Sunlight is a pretty tedious to use ability that strongly overlaps with
TSO. Removing shallow and deep water when flight is extensively
available is also not especially interesting.

This adds a minor version tag to handle save compatibility, since we're
removing a member of the global env that maps sunlight-affected squares.

--------------------------------------------------------------------------------
9563602592 | gammafunk | 2019-10-01 20:47:14 -0500

Fedhas rework part 2: Wall of Briars ability
A 2* ability that encircles the player with summoned briar patches. The
player can fire through these plants, and the briars damage monsters
that attack them. Monster AI is changed so that hostile monsters always
try to attack briars that are friendly to the player.

Only floor or shallow water tiles that have no monsters are viable
summon locations. The briar patches' HP scale with Invocations by adding
1 HD with each level of this skill.

--------------------------------------------------------------------------------
0b10f196a5 | gammafunk | 2019-10-01 20:47:14 -0500

Fedhas rework part 1: piety gain
Fedhas is a plant-themed god originally intended to support range
combat. The god gives you plant allies that you can move and fire
through allows you to create water to impede monster movement.
Unfortunately the current design gives access to too many allies that
are strong enough to carry the player through much of the game. These
are either permanent or long-lived yet are stationary or have movement
limitations, things that together encourage the player to lure monsters
to specific locations. As a result, Fedhas has a tedious play-style, and
this is reflected in the god's usage rate among players.

This commit is the first in a set that rework the god but in a way that
retains some of idea of supporting ranged combat. New Fedhas will use
only summoned allies and will allow less unfettered use of allies in
general. A github wiki page describing remaining and potential issues
with the rework is available here:

https://github.com/crawl/crawl/wiki/Fedhas-Rework

Part 1 removes Fedhas' appreciation of corpse decay as well as the
Fungal Bloom ability. I haven't touched the corpse violation, necromancy
conducts, and species restrictions for now, although those all need
addressing.

--------------------------------------------------------------------------------
3348362083 | Richard Wardin | 2019-10-01 21:41:39 -0400

Fix being able to pick out barbs while incapacitated (12065)
Carefully pulling out barbs now requires that
you can move (not paralyzed or petrified), aren't confused,
and aren't asleep.

[Committer's note: Closes #1162. Tweaked berserk message.]

--------------------------------------------------------------------------------
42da65fd27 | Edgar A. Bering IV | 2019-10-01 21:20:38 -0400

De-randomize Golden Eye confusion spellpower
This random power is a legacy dating back to their creation. The commit
log doesn't describe why Confusion Gaze should work this way instead of
with a normal confuse spellpower and a normal MR check. Now that
monster spell success chance is displayed, this randomization had the
side effect of making the success chance display wrong.

Confusion Gaze was the last monster spell with monster spellpower
randomization; this commit cleans up some of the code, but there is a
larger refactor possible that is left undone.

Closes #1160

--------------------------------------------------------------------------------
f6d4cf8133 | NormalPerson7 | 2019-10-01 20:48:38 -0400

Remove troves asking for scrolls of identify
Beyond the early game, once almost all the potions and scrolls in the
game are identified, scrolls of identify become a convenience tool more
than anything else; it is simply easier and faster for the player to
identify this unknown ring on the floor using a scroll than to find
something to drop, pick the ring up, put it on, decide it's useless,
drop it, and pick up the other thing. This especially applies when the
player has 5+ spare identify scrolls in their inventory, which is fairly
common around the time of Vaults and Depths.

Troves asking for identify scrolls encourages players to employ the
tedious second behaviour, and to some extent take risks with
wear-identifying artefacts, in order to horde the scrolls and eventually
enter the trove. Additionally, being reduced to 0 identify scrolls by a
trove hardly makes a significant difference to the strength of a
character - rather it simply means once again that the tedious
wear-identification process is required.

Note that the wear-identification of artefacts that is encouraged by
this isn't particularly dangerous beyond the early game anyway. The only
bad effects are *Drain and *Contam, where *Drain is unlikely to have a
significant impact, and *Contam may cause 1 malmutate before wearing
off that the player can probably eliminate by using a mutation potion.

Hence, remove troves asking for scrolls of identify, because they
encouraged tedious behaviour instead of meaningful decision making.

--------------------------------------------------------------------------------
8abc067276 | theJollySin | 2019-10-01 20:36:48 -0400

Add more flavour to the Halloween welcome spam

--------------------------------------------------------------------------------
7e681d2d23 | theJollySin | 2019-10-01 20:36:48 -0400

Vary orb descriptors in the welcome text

--------------------------------------------------------------------------------
ebba34edf6 | theJollySin | 2019-10-01 20:36:48 -0400

Add more random uselessness messages
[Committer's note: Closes #1161. Removed messages that suggested some in-game
 happening or portal vault. Random uselessness is for flavor, we don't
 want it to intentionally confuse. Squashed and re-organized the PR into
 this and the next two commits.]

--------------------------------------------------------------------------------
463e120319 | theJollySin | 2019-10-01 20:36:48 -0400

Clean up Paradise Lost quote citations

--------------------------------------------------------------------------------
26e8666362 | theJollySin | 2019-10-01 20:36:48 -0400

An assortment of item and location quotations
[Committer's note: Closes #1153. Squashed and revised the PR.]

--------------------------------------------------------------------------------
6aba9404ae | srvanmeter87 | 2019-10-01 19:43:01 -0400

Rephrase MP-powered wands player alert (#984)
[Committer's note: Closes #984, #1133, #1143]

--------------------------------------------------------------------------------
4e6fe308c7 | Aidan Holm | 2019-10-02 04:13:04 +0800

Fix sealed-off sensed monsters stopping travel (gammafunk)
Sensed monsters were handled with a separate check that did not take
into account whether they were reachable. The new way uses the list of
monsters returned by get_nearby_monsters, which does test reachability.

--------------------------------------------------------------------------------
323ad4e9fb | Aidan Holm | 2019-10-02 03:02:37 +0800

Fix clinging monsters breaking autoexplore (shalmezad, 11924)
Clinging monsters in vaults could pathfind their way through the runed
door, and were therefore marked as not safe, preventing autoexplore.
This was caused by mons_traversable() sidestepping checks for runed
cells and uninhabitable cells in mons_can_traverse() if the monster can
cling. I've just hoisted them out here.

In addition, cell_can_cling_to() only checks physical location,
and so couldn't check whether a feature is passable by a given monster.

Last but not least, the call to cell_is_clingable() previously passed
the wrong parameter.

--------------------------------------------------------------------------------
ca5e8cfc3f | Aidan Holm | 2019-10-01 16:41:10 +0800

Use quads for line drawing (advil)
Line drawing with GL_LINES seems to be subject to a number of rendering
bugs and limitations that vary by OS and driver. This commit renders all
lines with a single quad. This removes support for arbitrary lines that
are not horizontal or vertical, but we don't currently draw any such
lines.

--------------------------------------------------------------------------------
940da44966 | Aidan Holm | 2019-10-01 16:34:05 +0800

Tidy up some duplication and incorrect naming

--------------------------------------------------------------------------------
6844edd79d | Aidan Holm | 2019-10-01 16:34:05 +0800

Fix difficult-to-read main menu labels on console (advil)
Menu labels previously relied on libunix.cc's adjustment of identical
foreground and background colours, which didn't work properly with
allow_extended_colours = true, since white and lightgrey are not
identical.

This commit manually adjusts all button label colours on focus change,
both foreground and background. This fixes a bug on the weapon selection
menu on console where the background did not extend under the listed
aptitudes, due to them being in a separate text widget. It also cleans
up the hacky code that was previously used to recolour the buttons.

You can specify the foreground colour to use when focused; the default
is black. This code assumes that all text widgets have a single colour,
and will not correctly restore multi-coloured text on unfocus.

--------------------------------------------------------------------------------
3ed16d2262 | Aidan Holm | 2019-10-01 16:34:05 +0800

Refactor curses colour and attr munging

--------------------------------------------------------------------------------
011b83adde | NormalPerson7 | 2019-10-01 00:59:26 -0400

Let Trog and Okawaru gift regular boomerangs and javelins
Previously, when tomahawks and javelins had no innate special
properties and each had about 5 different brands, it made sense that
Trog and Okawaru should always gift branded tomahawks and javelins.

However, there are now only two different types of javelin: plain and
silver; and three different types of boomerang: plain, silver and
dispersal. This behaviour led to all such ammo gifts being silver
javelins, or silver or dispersal boomerangs, which seems a little
unbalanced. Additionally, new javelins are equivalent to branded
penetration javelins previously, and likewise with boomerangs and
tomahawks of returning, so this behaviour no longer makes sense.

As such, Trog and Okawaru now gift regular boomerangs and javelins, with
these having weight 120. This means the chance of a javelin gift giving
silver javelins is reduced from 100% to 43%, and the chance of a
boomerang gift being branded is reduced from 100% to 33%.

This commit preserves Trog and Okawaru only gifting
curare/datura/atropa-tipped darts and not poisoned darts, and also
preserves the behaviour of ISPEC_GOOD_ITEM always producing branded
missiles, so as to not affect dungeon generation in any way.

[Closes #1131]

--------------------------------------------------------------------------------
ac2e79e1c7 | Nikolai Lavsky | 2019-10-01 00:44:13 -0400

Add descriptions for awoken autumnal and dead trees
Use the same description as for regular awoken trees.

--------------------------------------------------------------------------------
f61156fd2a | Nikolai Lavsky | 2019-10-01 00:44:13 -0400

Distinguish flammable and non-flammable trees
Even though Summon Forest's trees cannot be burned since 0a4d0e94, their
description still mentioned that mechanic. Fix this and add a way to
distinguish summoned trees from regular ones in the x-mode.

Also, update a comment: trees cannot be disintegrated since 85f13f00.

--------------------------------------------------------------------------------
0e0b6798f1 | Edgar A. Bering IV | 2019-10-01 00:35:02 -0400

Tiles for the staff of Battle (CanOfWorms)

--------------------------------------------------------------------------------
2f2aade273 | olowin | 2019-10-01 00:35:02 -0400

The unrand staff of Battle
A staff of conjuration with. It will automatically spawn a battlesphere
when monsters are in sight and automatically dismisses the battlesphere
on unwield. Trog hates it; using it to spawn a battlesphere is as bad as
casting a spell in Trog's eyes. Unlike an evokable this is real magic.

[Committer's note: Squashed and rebased; made the staff battlesphere
 have the same spellpower as the player's (to avoid weird re-casting
 incentives); removed +4 SH, it is one-handed on normal species.

 Closes #1040]

--------------------------------------------------------------------------------
f1a930fc54 | advil | 2019-09-30 15:38:58 -0400

Don't pull abyss terrain from the vestibule
The issue is that if the player hasn't visited the vestibule, a level
excursion there will trigger asserts regarding the up stairs, which
haven't been set up yet. This could be made conditional on having
visited the vestibule, but even for the abyss I'd rather avoid
dependencies on level traversal order.

--------------------------------------------------------------------------------
be6272a890 | gammafunk | 2019-09-30 14:26:34 -0500

Use no_tele_into in a Bazaar map (wizard44)
The water (or lava) areas outside of the central area with shops needs
`no_tele_into` in order to prevent teleports from stranding players who
are amphibious or flying.

--------------------------------------------------------------------------------
3c9d5f24f3 | advil | 2019-09-30 12:59:04 -0400

Remove full_name logic from main menu
These features were supposed to make typing the player name easier, but
they're very hard to predict from standard text box behavior, and also
buggy with names that are a partial match to another name. In addition,
the behavior pre-0.24 that this logic is based on seems to have been
fairly broken; at least I can't figure out the pattern from the UI in
older versions for when `full_name` is set to true.

Should replace this with some more of the standard text editing
shortcuts, e.g. ctrl-u.

--------------------------------------------------------------------------------
261a0b2417 | advil | 2019-09-30 12:32:32 -0400

Main menu improvements and streamlining
* move info about rc file off main screen -- without linewrapping this
  doesn't work well on either console or tiles.
* don't explain arrow keys and enter
* use some of the reclaimed space to improve description of [tab], add
  description of [ctrl-p]. This latter is mainly just so players know
  where to find the rc file info.

Eventually the canonical place to find the rc file should be an about
screen, not the startup log.

--------------------------------------------------------------------------------
5fed5919c2 | Aidan Holm | 2019-09-30 21:49:45 +0800

Reduce popup padding on small screens (alexjurkiewicz)

--------------------------------------------------------------------------------
bbc45b03fd | Aidan Holm | 2019-09-30 14:23:31 +0800

Fix newgame menu highlight width on remote console
On TILEWEB=y console games, the text widget was not expanding to take
the full width of the box it was contained in. When its background
colour was changed, only the section of the menu button with letters
changed colour.

This isn't a problem in pure console builds because in that case the
text widget is the direct child of the MenuButton widget and so takes
its full size.

--------------------------------------------------------------------------------
2d00395b2e | Aidan Holm | 2019-09-30 14:23:31 +0800

Fix memorise menu entry letter colour
Previously, the entry letter was always lightgrey; now it is darkgrey if
the spell is not castable, etc.

--------------------------------------------------------------------------------
828224901c | Aidan Holm | 2019-09-30 14:23:30 +0800

Refactor memorise menu entry colour code

--------------------------------------------------------------------------------
5a4ac4e04d | Aidan Holm | 2019-09-30 13:10:21 +0800

Remove debug logging

--------------------------------------------------------------------------------
2d0fce64a1 | advil | 2019-09-29 19:48:04 -0400

Don't generate unknown weapons for weapon selection
I'm not sure if this is causing the windows crash (which is happening
somewhere in give_items_skills), but it is definitely an odd thing that
this code is doing when used before weapon selection.

--------------------------------------------------------------------------------
0b739ee41d | advil | 2019-09-29 17:47:54 -0400

One more batch of debug code
see 40886de7c.

--------------------------------------------------------------------------------
40886de7c5 | advil | 2019-09-29 17:09:38 -0400

More public bisection
(The reason that I'm doing this bisection in trunk like this is that we
are chasing a crash that only replicates on the windows tile builds done
by CDO.)

--------------------------------------------------------------------------------
bfea814871 | advil | 2019-09-29 16:46:00 -0400

Apply some brute-force output debugging to the problem

--------------------------------------------------------------------------------
f68d918292 | advil | 2019-09-29 15:36:51 -0400

checkwhite
[skip ci]

--------------------------------------------------------------------------------
964def8651 | advil | 2019-09-29 15:36:00 -0400

Fix a compiler warning (shadowed variable)

--------------------------------------------------------------------------------
5bd470a277 | advil | 2019-09-29 14:21:12 -0400

Don't clear player name when selecting arena (12075)
I agree that this behavior is unintuitive given the menu structure
(especially when navigating with keyboard), even though arena doesn't
use player name.

--------------------------------------------------------------------------------
2bac2fb150 | advil | 2019-09-29 14:21:12 -0400

Restore centering for the progress popup in console

--------------------------------------------------------------------------------
aa951a354a | Aidan Holm | 2019-09-30 01:34:06 +0800

Fix hiscores not showing in webtiles (12077, Ge0ff)
Console viewers will still get a view that adjusts to their screen size;
webtiles viewers get a hardcoded size of eleven lines, which IIRC was
the typical size before.

--------------------------------------------------------------------------------
b6411803c1 | advil | 2019-09-29 10:41:47 -0400

Fix a crash with full pregen
This was introduced in 80d7c3d5c

--------------------------------------------------------------------------------
cb3158e78b | Kyle Rawlins | 2019-09-29 10:08:39 -0400

just one more windows install instructions tweak
This incorporates both solutions from #1134. Thanks to amcmullan and 

Goratrix for figuring this out; as of Feb or so, msys2 makes python 3 

the default python version for everything.



Resolves #1134

[skip ci]
--------------------------------------------------------------------------------
0f4390f660 | advil | 2019-09-29 09:53:45 -0400

Replace some symbolic links with copies
In order to fix windows builds.

--------------------------------------------------------------------------------
6ba659e1ad | Kyle Rawlins | 2019-09-29 09:36:27 -0400

Tweak windows install instructions again
[skip ci]
--------------------------------------------------------------------------------
d2de06d31d | Kyle Rawlins | 2019-09-29 09:20:59 -0400

tweak windows install instructions

--------------------------------------------------------------------------------
aeb99fb3f2 | advil | 2019-09-28 18:41:54 -0400

Fix another webtiles console menu glitch
These values were being interpreted as characters when rendering
console, and are apparently unused for webtiles browser. So, just set
them to 0.

--------------------------------------------------------------------------------
6234c29d7a | advil | 2019-09-28 18:27:05 -0400

Address an uninitialized variable
This *might* be the windows crash, not sure. In any case, tileidx_t is
uint64_t and so needs to be initialized to something.

--------------------------------------------------------------------------------
7b85b32444 | advil | 2019-09-28 18:07:42 -0400

Slightly improve console MenuButton highlighting code
This now handles another bug by generalizing slightly from 5a66b1aa3b36:
the weapon selection menu wasn't highlighting correctly in local console
because those buttons on console consist of a bin with two Texts. The
new version finds the first Text child (if any) and does the
highlighting on it, and because of this also does away with the #ifdefs.

--------------------------------------------------------------------------------
5a66b1aa3b | advil | 2019-09-28 17:09:28 -0400

Fix(ish) for menu highlighting issues in webtiles console
The problem was that webtiles console, because it can be showing complex
menu items via a browser client, has a different menu structure than
regular console, so the assumption that it contained a single Text child
was incorrect. This fairly hacky solution also tries setting the
background color of any label in position 1 in case the button is a
container. There should probably be something more general here, perhaps
highlighting every Text contained in the button widget (Which would get
both of the currently-used cases as special cases), but I'll leave that
for aidanh.

--------------------------------------------------------------------------------
60d090ba07 | advil | 2019-09-28 13:10:22 -0400

Fix a shadowed variable warning in webtiles

--------------------------------------------------------------------------------
8e49684493 | advil | 2019-09-28 12:13:11 -0400

Use MenuButton highlight color in local console
This does not fix 12076; I think the dynamic_cast is not working at all
for webtiles console.

--------------------------------------------------------------------------------
d18775d16a | Aidan Holm | 2019-09-28 14:05:05 +0800

Reduce webtiles newgame menu height (12074, kitchen_ace)
This attempts to fit the entire menu in without needing to scroll; it
only takes effect on windows less than 780px high though.

--------------------------------------------------------------------------------
53c33f0441 | Aidan Holm | 2019-09-28 14:04:42 +0800

Fix webtiles newgame menu background colour

--------------------------------------------------------------------------------
bbc8897137 | Aidan Holm | 2019-09-28 03:16:22 +0800

More dead code removal

--------------------------------------------------------------------------------
39a19ac0f1 | Aidan Holm | 2019-09-27 23:33:44 +0800

Remove unused smart cursor interface
This also fixes a bug on win32 console where the mouse cursor was
visible on the main menu.

--------------------------------------------------------------------------------
40b4c61300 | Aidan Holm | 2019-09-27 23:33:44 +0800

Add rudimentary win32 console colour adjustment
libunix.cc will adjust the foreground colour when both foreground and
background are indistinguishable. This commit ports a much-reduced
version of that functionality to win32 console, primarily so that the
main menu will be readable.

--------------------------------------------------------------------------------
db4295c90e | Aidan Holm | 2019-09-27 23:33:44 +0800

Fix broken win32 console text colouring API
Crawl code assumes that the terminal text and background colours can be
updated independently; the win32 console backend, however, was setting
the background colour from the high bits of the provided text colour.
This resulted in a textcolour() call followed by a textbackground() call
to function normally, but the reverse would not.

--------------------------------------------------------------------------------
17bb1006d4 | Aidan Holm | 2019-09-27 23:33:44 +0800

Refactor identical colourpair remapping code

--------------------------------------------------------------------------------
1fcc531f06 | Aidan Holm | 2019-09-27 23:33:44 +0800

Refactor MenuFreeform methods with find_if()

--------------------------------------------------------------------------------
3e190a46ec | Aidan Holm | 2019-09-27 23:33:44 +0800

Remove unused menu code

--------------------------------------------------------------------------------
cd35390ea8 | Aidan Holm | 2019-09-27 23:33:44 +0800

Improve end-game hiscore list appearance

--------------------------------------------------------------------------------
bb89a6cd1e | Aidan Holm | 2019-09-27 23:33:44 +0800

Improve newgame name choice prompt

--------------------------------------------------------------------------------
5dd181b815 | Aidan Holm | 2019-09-27 23:33:44 +0800

Add alignment options to Switcher widget

--------------------------------------------------------------------------------
6919a330b2 | Aidan Holm | 2019-09-27 23:33:44 +0800

Add enable_shared_from_this to Widget

--------------------------------------------------------------------------------
ba565db48d | Aidan Holm | 2019-09-27 23:33:44 +0800

Fix Switcher widget handling mouse events incorrectly

--------------------------------------------------------------------------------
94b374d741 | Aidan Holm | 2019-09-27 23:33:44 +0800

Add tile to game-over screen

--------------------------------------------------------------------------------
a0fde063d1 | Aidan Holm | 2019-09-27 23:33:44 +0800

Add pgup/pgdn/home/end support to OuterMenu

--------------------------------------------------------------------------------
41769e37c5 | Aidan Holm | 2019-09-27 23:33:44 +0800

Add HTML newgame menus, more tiles

--------------------------------------------------------------------------------
bbc46fc816 | Aidan Holm | 2019-09-27 23:33:44 +0800

Make send_doll() public

--------------------------------------------------------------------------------
e13cadf35d | Aidan Holm | 2019-09-27 23:33:44 +0800

Add operator[] accessor for container widgets

--------------------------------------------------------------------------------
77bbe519b1 | Aidan Holm | 2019-09-27 23:33:44 +0800

Respect popup child widget's preferred size

--------------------------------------------------------------------------------
94e85a77e3 | Aidan Holm | 2019-09-27 23:33:44 +0800

Add species attributes to starting weapon menu (VeryAngryFelid)

--------------------------------------------------------------------------------
efe2a7dc0d | Aidan Holm | 2019-09-27 21:07:02 +0800

Let Box widgets stretch children on main axis

--------------------------------------------------------------------------------
23a3942107 | Aidan Holm | 2019-09-27 21:07:02 +0800

Add species/job tiles (CanOfWorms)

--------------------------------------------------------------------------------
b661a63e8a | Aidan Holm | 2019-09-27 21:07:02 +0800

Convert newgame menus to new UI framework

--------------------------------------------------------------------------------
9f778ef799 | Aidan Holm | 2019-09-27 21:07:02 +0800

Fix ui::Image widget using uninitialized data

--------------------------------------------------------------------------------
ded90f589a | Aidan Holm | 2019-09-27 21:07:01 +0800

Convert hiscores menu to new UI framework

--------------------------------------------------------------------------------
20abbd21e0 | Aidan Holm | 2019-09-27 21:07:01 +0800

convert hints menu to new UI framework

--------------------------------------------------------------------------------
3169f2527e | Aidan Holm | 2019-09-27 21:07:01 +0800

Convert startup menu to new UI framework

--------------------------------------------------------------------------------
87535eea1a | Aidan Holm | 2019-09-27 21:07:01 +0800

Add species/background newgame doll generator
This adds a helper function to generate dolls for character combos.
This is done in a rather ugly fashion by (partially) generating
the new game character. A small segment of the character setup
code in _setup_generic() that's relevant to initial equipment is
duplicated, with some minor changes; this code modifies the global `you`
variable, and fill_doll_equipment() is then called to generate the doll
corresponding to the character in `you`.

Regarding the modified character generation code, everything after
give_items_skills() is removed, since that's what determines a player's
starting equipment, and thus the doll appearance. An exception is
the item colour randomization. Separately, _unfocus_stats() was not
included, since I'm reasonably sure that this has no effect on initial
item generation, and I didn't want to make it non-static.

--------------------------------------------------------------------------------
1274d92874 | Aidan Holm | 2019-09-27 21:07:01 +0800

Add PlayerDoll widget

--------------------------------------------------------------------------------
99709490d1 | Aidan Holm | 2019-09-27 21:07:01 +0800

Add descriptions to outer menu buttons

--------------------------------------------------------------------------------
7134dd49da | Aidan Holm | 2019-09-27 21:07:01 +0800

Add OuterMenu, MenuButton widgets

--------------------------------------------------------------------------------
72f1adce67 | Aidan Holm | 2019-09-27 21:07:01 +0800

Add debug drawing

--------------------------------------------------------------------------------
f253313b81 | Aidan Holm | 2019-09-27 21:07:01 +0800

Add per-layer focus

--------------------------------------------------------------------------------
b86fa12273 | Aidan Holm | 2019-09-27 21:07:01 +0800

Add add_event_filter()

--------------------------------------------------------------------------------
0428708d7b | Aidan Holm | 2019-09-27 21:07:01 +0800

Add UI widget input focus

--------------------------------------------------------------------------------
50bd2e0d7e | Aidan Holm | 2019-09-27 21:07:01 +0800

Add text widget background colour (console-only)

--------------------------------------------------------------------------------
4d30056526 | Aidan Holm | 2019-09-27 21:07:01 +0800

Remove black background from high scores tile
This tile is still in need of work; apart from anything else, it fills
its entire 32x32 region, which makes it visually inconsistent with the
other main menu entry tiles.

--------------------------------------------------------------------------------
01783e0825 | Aidan Holm | 2019-09-27 21:07:01 +0800

Add UIGrid stretch_h, stretch_v

--------------------------------------------------------------------------------
2a432842a1 | Aidan Holm | 2019-09-27 21:07:01 +0800

Fix invalid read during program shutdown
Invalid memory accesses were caused by the Slot destructor freeing
slots, which freed shared_ptr<Widget>s, which caused remove_by_target()
to access handlers, which was already partially destroyed.

--------------------------------------------------------------------------------
406b842e22 | Aidan Holm | 2019-09-27 21:06:55 +0800

Add ui_render()

--------------------------------------------------------------------------------
ff19f33cdb | Alex Jurkiewicz | 2019-09-27 15:36:43 +0800

Mark trove portals as single-use
Fixes #1126.

--------------------------------------------------------------------------------
80d7c3d5c1 | advil | 2019-09-26 18:27:52 -0400

Fix ungenerated branches in wizmode + pregen (12071)
These were falling through the cracks of _branch_pregenerates, but not
generating as part of the generation order. This commit just moves you
directly to them without any pregeneration (which needless to say will
break the seed, but if you're doing this you probably don't care).

--------------------------------------------------------------------------------
3936067ed8 | kitchen-ace | 2019-09-26 00:14:35 -0700

A meagre spelling correction for AUS english (#1157)

--------------------------------------------------------------------------------
46ecf6da75 | Aidan Holm | 2019-09-26 01:40:04 +0800

Remove unused function chop_tagged_string()

--------------------------------------------------------------------------------
4b16227417 | Aidan Holm | 2019-09-26 01:40:02 +0800

More refactoring of formatted_string code

--------------------------------------------------------------------------------
d158fba778 | Aidan Holm | 2019-09-25 23:57:46 +0800

Fix some compile warnings (geekosaur)
Returning std::move() here is fine because the parameter is an rvalue
reference, so RVO is not relevant, and a move() call is required to
prevent a copy.

--------------------------------------------------------------------------------
0b1efcbfd7 | Aidan Holm | 2019-09-25 23:52:45 +0800

Revert "Fix some compile warnings (geekosaur)"
This reverts commit 0e779d289c517aeb1bab0ed4e172b85274d776cf.

--------------------------------------------------------------------------------
eb4d282544 | Aidan Holm | 2019-09-25 23:49:37 +0800

Reduce unnecessary text widget allocations

--------------------------------------------------------------------------------
6ad10583fd | Aidan Holm | 2019-09-25 23:49:37 +0800

Remove some formatted_string functions
Spell range strings don't use colour codes any more. As for explore
discoveries, it's simpler to parse the tagged string and then use the
dedicated width() method.

--------------------------------------------------------------------------------
0627d6e13b | Aidan Holm | 2019-09-25 23:49:37 +0800

Remove unused and rename used fs_op members

--------------------------------------------------------------------------------
0e779d289c | Aidan Holm | 2019-09-25 23:43:23 +0800

Fix some compile warnings (geekosaur)
Returning std::move() here is fine because the parameter is an rvalue
reference, so RVO is not relevant, and a move() call is required to
prevent a copy.

--------------------------------------------------------------------------------
049a78546b | Aidan Holm | 2019-09-25 14:23:27 +0800

Simplify macro_buf_add_with_keymap
We only ever add a single key at a time to the macro buffer; better to
enforce that.

This also asserts in remap_key() that the macro buffer is empty before
remapping a key; this must be the case because ui::pump_events() first
tries to get a key from the macro buf, and only remaps a new key if
there is no macro key available.

--------------------------------------------------------------------------------
678ee33c32 | Aidan Holm | 2019-09-25 14:23:27 +0800

Refactor _getch_mul() -> _getch_single()
While you could theoretically have multiple keys returned from
_getch_mul, in practice I never managed to make it happen, and it's
preferable for the code paths through the macro system to be as simple
as possible.

--------------------------------------------------------------------------------
5a8975c3e2 | Aidan Holm | 2019-09-25 14:23:27 +0800

Simplify macro code
This makes the difference between getchm and getch_with_command_macros slightly
clearer.

--------------------------------------------------------------------------------
3ea5ddb52c | Aidan Holm | 2019-09-25 14:23:27 +0800

Remove support for multi-key macro binds
Apparently it was previously possible, for some definitions of the
word 'possible', to have multi-key macro binds; e.g. 'ab' -> foo. I
couldn't actually get any of these to trigger, however, even when using
xdotool to quickly deliver keypress events. This commit simplifies the
complicated macro expansion code that resulted. Saved macros that have
multi-key binds are silently truncated to the first character.

This commit also slightly refactors filtering of empty macros.

--------------------------------------------------------------------------------
e7cd8ce796 | Nikolai Lavsky | 2019-09-23 11:37:32 +0800

Fix a crash when cloning an almost dead monster (geekosaur)
A copy created via rakshasa's Phantom Mirror has only 35% of
the target's hp and max hp. If the original monster is almost dead
(1-2 HP), its copy will have 0 hp, which crashes the game.

Fix this by giving cloned monsters at least 1 hp. Also, it allows
rakshasas to clone lurking horrors, who always spawn with only 1 hp.

--------------------------------------------------------------------------------
b70a11d811 | Aidan Holm | 2019-09-20 22:30:25 +0800

Fix monster list position when re-running arena
The call to expand_mlist() assumes that the monster list has its initial
position and size; this is not the case if you run arena mode more than
once without quitting the game in between.

After this fix, the UI is still broken if you run arena then a regular
game. I tried using an unwind_var, but that caused crashes, and a better
fix is in the works anyway (using the widget toolkit).

--------------------------------------------------------------------------------
cb9520c128 | Aidan Holm | 2019-09-20 22:30:24 +0800

Remove cprintf calls that do nothing

--------------------------------------------------------------------------------
7c97eb6acf | Aidan Holm | 2019-09-20 22:30:24 +0800

Remove explicit cursor positioning

--------------------------------------------------------------------------------
79b4920dd9 | Aidan Holm | 2019-09-20 22:30:24 +0800

Remove support for yesno outside the messge window

--------------------------------------------------------------------------------
2190daeb1e | Aidan Holm | 2019-09-20 22:30:24 +0800

Remove unused player name error messages

--------------------------------------------------------------------------------
0d320154d2 | Aidan Holm | 2019-09-20 22:30:24 +0800

Remove useless textcolour calls

--------------------------------------------------------------------------------
c6fd4e6165 | Alex Jurkiewicz | 2019-09-20 20:44:35 +0800

Default show_more to false in debug builds
Debug builds unsurprisingly spew large numbers of messages, so
repeatedly showing a more prompt is very inconvenient.

--------------------------------------------------------------------------------
5ea6cb6c5a | Nikolai Lavsky | 2019-09-20 20:30:27 +0800

Fix HP of summons created via the Phantom Mirror spell
Because of an incorrect formula added in a559921a, Mara and rakshasa
clones had 200% hp of their original instead of 50%.

Regular monsters copied via `cast_phantom_mirror()` had 286% hp
and max hp instead of 35%.

--------------------------------------------------------------------------------
346d576932 | advil | 2019-09-19 20:06:03 -0400

Fix some issues with singing sword revealed in arena (p0a)
The `get_tension` check is not well-defined without a player, and also
isn't used for monster attackers. Also, the singing sword was shouting
at the player's location, not the attacker (which caused another crash
in arena).

--------------------------------------------------------------------------------
0d56a851f4 | Aidan Holm | 2019-09-19 01:51:59 +0800

Don't prewrap level builder logs
Pre-wrapping to a given screen-width should be avoided in general
because the screen can be resized. In addition, the GOTO_CRT region size
is not a well-defined concept on local tiles.

--------------------------------------------------------------------------------
290c21e5aa | Aidan Holm | 2019-09-19 01:51:59 +0800

Replace line_reader use with cancellable_get_line

--------------------------------------------------------------------------------
5f7070a834 | Aidan Holm | 2019-09-19 01:51:59 +0800

Add per-text-widget fonts

--------------------------------------------------------------------------------
f0453101f8 | Aidan Holm | 2019-09-19 01:51:59 +0800

Remove probably-no-longer-needed kludge
The handle_terminal_resize() call in startup.cc (added in e03bc23d4eded)
seems to no longer be required, since the code to determine the HUD size
based on species (added in the same commit) is no longer present, and
thus the HUD should not need to be resized any more. This permits some
minor simplification of handle_terminal_resize().

--------------------------------------------------------------------------------
d29bdeb3b0 | Aidan Holm | 2019-09-19 01:51:59 +0800

Fix layout error for empty ellipsizable text widget
m_wrapped_lines being empty caused the size request calculation to yield
a natural size (0 lines) smaller than the minimum size (1 line), causing
assertion failures.

--------------------------------------------------------------------------------
3da5d4e088 | Aidan Holm | 2019-09-19 01:51:59 +0800

Allow querying current scissor without UI layout
Widgets may query the current scissor region to reduce render calls,
e.g. by not rendering children or other elements that are not visible.
During a regular layout and render cycle, the UI framework pushes a
scissor region of the entire screen, so this works fine. When doing
ad-hoc rendering (while we transition to full use of the UI framework),
this is not the case, which caused crashes.

--------------------------------------------------------------------------------
e6ffb7a55f | Aidan Holm | 2019-09-19 01:51:59 +0800

Fix menu items being unnecessarily ellipsized
The menu already ellipsizes menu items as needed based on screen size.

--------------------------------------------------------------------------------
3dea98854c | Aidan Holm | 2019-09-19 01:51:59 +0800

Fix tooltips freezing local tiles window
The previous implementation added a tooltip timer before blocking for
the next SDL event, and removed it before returning. If resize or move
events were received, however, the function would return early, and the
timer would never be removed and would instead timeout periodically.
Subsequent move events would add additional timers, leading to a flood
of timeouts clogging up the event loop.

This new implementation only ever adds a timer when the mouse is moved,
and timers only fire once. remove_timer() is also changed to take an
int& for convenience.

--------------------------------------------------------------------------------
94eeae6f7e | Aidan Holm | 2019-09-19 01:51:59 +0800

Add remaining tilesdl font getters

--------------------------------------------------------------------------------
f19a5e4d30 | Aidan Holm | 2019-09-19 01:51:59 +0800

Tidy up tilesdl font members

--------------------------------------------------------------------------------
15dcb325b9 | Aidan Holm | 2019-09-18 21:25:34 +0800

Fix UI cutoffs not being cleared properly (vt, 12061)
UI cutoffs prevent any any UI layers with index <= the cutoff index from
being displayed. If there's no cutoff, the cutoff index should be -1;
the old value of 0 was causing the lowest UI layer to not be unhidden.

--------------------------------------------------------------------------------
b7544fd237 | Nikolai Lavsky | 2019-09-16 00:54:56 -0500

Upgrade Wyrmbane's tile according to its enchantment
As a followup to 1cd5daa3, this commit adds code to upgrade Wyrmbane's
tile as the lance grows more powerful.

--------------------------------------------------------------------------------
e4662a2d14 | theJollySin | 2019-09-14 21:14:06 +0800

#1125 spellbooks are no longer 'r'ead

--------------------------------------------------------------------------------
92e081b058 | Umer Shaikh | 2019-09-14 21:12:59 +0800

Change gauntlet teleportation message (bugfix)
On entering the gauntlet the current message misleadingly suggests no
one can teleport, but the restriction is on the player only.

--------------------------------------------------------------------------------
e2a249a6fd | advil | 2019-09-12 22:25:45 -0400

Remove throttling notification
It's crashing for ., not sure why. Remove for now.

--------------------------------------------------------------------------------
751f86b5a9 | Aidan Holm | 2019-09-13 01:40:25 +0800

Fix webtiles rendering using outdated map_knowledge (Artagas, 12064)

--------------------------------------------------------------------------------
eaf2f25370 | advil | 2019-09-11 20:06:02 -0400

Limit repeats via 0 somewhat for online play
This implements two changes for DGAMELAUNCH builds:
 * it disallows using CMD_REST at all with 0. (If someone comes up with
   an actual use-case for this I can reconsider.)
 * After 100 repeats, it throttles repeats by sleeping for 0.5 seconds.
   This (at least on my local device) brings cpu use back to what
   normal play would be like. An alternative would be to disable this
   altogether, but I prefer the throttling approach as it keeps the
   features more similar between online and offline.

--------------------------------------------------------------------------------
1ff6aac338 | Aidan Holm | 2019-09-09 23:18:24 +0800

Fix bad comma

--------------------------------------------------------------------------------
e11a5d91ad | Aidan Holm | 2019-09-09 23:10:28 +0800

Fix headsup crashloop with >4 monster types (nikopol, 12059)
Headsups needed access to the number of monsters of each type to
determine the appropriate grammar, but used a map of pre-condensed
monster types.

--------------------------------------------------------------------------------
fb3efd073d | Aidan Holm | 2019-09-09 12:34:07 +0800

Add all autoexcludes simultaneously
This fixes two bugs; autoexclude spam when encountering multiple
monsters that require autoexcludes, and autoexplore not showing the
correct region of the map before forcing a more prompt.

Monsters now no longer force a more prompt if they awaken immediately.

This commit also slightly improves maybe_remove_autoexclusion(): the
ballistomycete case is already handled in _need_auto_exclude().

--------------------------------------------------------------------------------
9501b9e7a0 | Aidan Holm | 2019-09-09 12:34:07 +0800

Factor out describe_monsters_condensed() helper function

--------------------------------------------------------------------------------
de3ff83e2e | Aidan Holm | 2019-09-09 12:34:07 +0800

Remove unused headers

--------------------------------------------------------------------------------
ff1bdec7c2 | Aidan Holm | 2019-09-09 12:34:07 +0800

Fix magic mapping water colour in sewer

--------------------------------------------------------------------------------
a4a55ebecd | Aidan Holm | 2019-09-09 12:34:07 +0800

Fix border between mapped and unmapped water tiles
The idea here is that wave borders against the edge of LOS should not be
added if the adjacent out-of-LOS terrain type is unknown. This is
relevant when using magic mapping, which does not reveal the depth of
water, showing all water as shallow. This caused deep water on the edge
of LOS to incorrectly have wave borders on that edge.

--------------------------------------------------------------------------------
ef970caa61 | Aidan Holm | 2019-09-09 12:34:07 +0800

Always clear tile flavour when destroying walls (kitchen_ace, 12053)
It's not clear to me why the tile flavour was only cleared if the
terrain had been transformed; in any case, this function is only ever
called from destroy_wall(), so this should be safe.

--------------------------------------------------------------------------------
f216e90430 | Aidan Holm | 2019-09-09 12:34:07 +0800

Fix rest_delay = -1 option

--------------------------------------------------------------------------------
4db8f8041d | Aidan Holm | 2019-09-09 12:34:07 +0800

Simplify wave overlay packing code

--------------------------------------------------------------------------------
2324e3a9ae | Aidan Holm | 2019-09-09 12:34:07 +0800

Cache map knowledge for later rendering
Rendering cell overlays needs access to the state of adjacent cells, in
order to properly render waves. Previous code was directly accessing the
current simulation state in env.map_knowledge, which caused glitches
when viewwindow was exiting early (due to run_dont_draw) and not copying
the current tile fg/bg. In general, render code should never access the
global game state.

This commit copies the current env.map_knowledge for each cell into
packed_cell; this structure notably includes cloud_info, item_info, and
monster_info structs copied from their corresponding global instances
(so they're safely accessible).

There are still a few locations where global state is accessed, such as
player_in_branch() calls. These are relatively benign, but they should
be removed as well.

--------------------------------------------------------------------------------
d8832a91eb | Aidan Holm | 2019-09-09 12:34:07 +0800

Properly cache global state for later rendering
Local tiles rendering code should use only the state stored in the
view buffer passed to load_dungeon; in particular, it should *not*
access env.* whenever a redraw is needed, since this state may have been
updated. Tile flavours are unlikely to change, but you never know...

--------------------------------------------------------------------------------
bdd17524c8 | Aidan Holm | 2019-09-09 12:33:37 +0800

Remove dead inscription hints code

--------------------------------------------------------------------------------
12c97a3ad0 | Aidan Holm | 2019-09-09 12:33:37 +0800

Fix bad FAQ menu entry wrapping

--------------------------------------------------------------------------------
b99ddf99ac | Aidan Holm | 2019-09-09 12:33:37 +0800

Make menu colours more consistent

--------------------------------------------------------------------------------
a2d57835b7 | Aidan Holm | 2019-09-09 12:33:37 +0800

Fix deck menu being easily closable

--------------------------------------------------------------------------------
ac8ac2ac75 | Aidan Holm | 2019-09-09 12:33:37 +0800

Fix extra newlines in local tiles tooltip

--------------------------------------------------------------------------------
65986e55db | Aidan Holm | 2019-09-09 12:33:37 +0800

More font rendering refactoring
This commit splits render_string() into render_hover_string(), used for
rendering labels over dungeon tiles, and render_tooltip().

--------------------------------------------------------------------------------
56e724e302 | Aidan Holm | 2019-09-09 12:33:37 +0800

Improve local tiles tooltip appearance
This commit removes the ability to specify a background colour with
render_string(), and switches on the tooltip parameter instead.

--------------------------------------------------------------------------------
e7559507c6 | Aidan Holm | 2019-09-09 12:33:37 +0800

Fix trailing empty lines on help screens

--------------------------------------------------------------------------------
2f91b30d3a | Aidan Holm | 2019-09-09 12:33:37 +0800

Fix player being off-centre on local tiles

--------------------------------------------------------------------------------
9a1d66b0e3 | kitchen-ace | 2019-09-09 01:29:13 +0800

Don't show draconian head with full helms
Only really relevant for wearing the mask of the dragon.

--------------------------------------------------------------------------------
4bb3bc1208 | kitchen-ace | 2019-09-09 01:29:13 +0800

Give draconians their own horns tile

--------------------------------------------------------------------------------
a6a8d0c736 | Alex Jurkiewicz | 2019-09-08 22:37:08 +0800

Document timed_effects / timed_effect_type link

--------------------------------------------------------------------------------
611b3b1973 | wjchen | 2019-09-08 22:36:08 +0800

Ensure stash update on being shafted (minqmay)
Currently, if a player discovers an altar and get shafted by a
trap at the same time, the altar will appear in dungeon overview
but not in stash tracker.

This change ensures items, shops, and altars discovered at the
moment the player gets shafted are correctly registered.

--------------------------------------------------------------------------------
8e11da7cb5 | dplusplus | 2019-09-08 22:34:47 +0800

fix mutations/vamp-attrs toggle

--------------------------------------------------------------------------------
aff5e891e6 | kitchen-ace | 2019-09-08 22:21:59 +0800

Show scarves on player in tiles (11977)
Scarves weren't being shown at all unless the player chose one through
the doll editor. And even then they were practically invisible, since
they were drawn behind the body (like cloaks) instead of in front
where I think they were meant to be.

The green scarf tile looks quite strange to me, but that's a separate
problem.

--------------------------------------------------------------------------------
8e0e932a4c | Kate | 2019-09-06 23:44:15 +0100

Update mailmap
[skip ci]

--------------------------------------------------------------------------------
5c5dc1b5cb | Kate | 2019-09-06 22:25:44 +0100

Update CREDITS.txt
[skip ci]

--------------------------------------------------------------------------------
9d6b971ae4 | Nikolai Lavsky | 2019-08-28 22:15:16 +0800

Add missing feature tiles to the stash search menu
PR #1051 allowed searching for traps, but several trap tiles are absent
from the stash search menu.

As mentioned in 276b1762, the current method of picking feature tiles by
the search result description has some limitations. It works correctly
for features that have a separate dungeon_feature_type, for example,
regular teleport traps or altars. But there are dungeon features
that have the same dungeon_feature_type, but different description:

 * Net traps, pressure plates, and all other mechanical traps are all
   DNGN_TRAP_MECHANICAL.
 * Permanent teleport traps share DNGN_TRAP_TELEPORT type with regular
   teleport traps.
 * Doors can have different descriptions too: 2-3 adjacent runed doors
   become "large runed doors", 4+ doors become "huge runed gates."

If there is no matching description, feat_by_desc() returns
DNGN_UNSEEN, which is why the search menu doesn't show tiles for these
dungeon features.

This commit fixes that by handling tile picking for traps and runed
doors separately.

--------------------------------------------------------------------------------
87330a484a | advil | 2019-08-27 13:38:39 -0400

Enable incremental pregen as a default for new games, track in save
Finally flipping the switch.

Reason for adding to the save: This turns out to make more sense if the
option sets a flag in the save, rather than the option determining the
behavior of the current crawl session. Something like this should
probably have been in the beginning, but the option of using "classic"
levelgen was added quite late in the process. All of this could be
simplified from the user's perspective by making the existence of
classic levelgen less obvious, or debug-only, and I may do this in a
future commit.

--------------------------------------------------------------------------------
4d4af813a0 | Alan Malloy | 2019-08-25 12:40:14 -0700

Revert "Add attack-no-move bindings for Colemak" (#1140)
This reverts commit c0fa6600bf77c549186ab8d4e74820f4ac84c170.
--------------------------------------------------------------------------------
c0fa6600bf | runrin | 2019-08-21 16:15:06 -0700

Add attack-no-move bindings for Colemak

--------------------------------------------------------------------------------
6a6c3f83c1 | advil | 2019-08-20 15:26:51 -0400

Fix another misc compiler warning
Also, unbrace.

--------------------------------------------------------------------------------
962dd19927 | advil | 2019-08-20 15:23:09 -0400

Fix a gcc warning
Noticed while rebuilding cbro

--------------------------------------------------------------------------------
f1077d3298 | advil | 2019-08-20 15:06:32 -0400

Don't update brentry for portal mimics
Also, change the ASSERT to an mprf for now, in lieu of real save compat
(which doesn't seem worth the effort). I will likely change this back at
some point, because annoying as it is, this ASSERT has found a ton of
bugs and edge cases.

--------------------------------------------------------------------------------
dfe76135ef | advil | 2019-08-20 14:46:18 -0400

Put seed in crashlogs
This is risky in that it has some cheating potential, we may even want
to disable this for tournaments or in general, but it's incredibly
frustrating to not have this information in trunk crashes right now.

--------------------------------------------------------------------------------
91963d7417 | advil | 2019-08-20 13:41:25 -0400

Remove a debugging check that is tripping for dith chars
Will return once I figure out why this is triggering.

--------------------------------------------------------------------------------
d66451a9e9 | advil | 2019-08-20 11:41:47 -0400

Handle portals differently in dungeon overview (12048)
44eecae1 changed how portals are handled in the branch structure, and in
so doing caused a change in behavior where they got added to
`stair_level` if entered (via enter_branch, which didn't used to get
called on them), and therefore showed up in the overview and G menu even
though after exiting the portal branch. The entry in that structure is
just an empty set, which previously wasn't possible, and caused them to
render in a confusing way in the overview. This commit embraces the bug
and shows previously entered portals in the overview as e.g. `IceCv
(visited)`. A portal you are currently in will show as `IceCv (1/1)`.
The empty set case is also now handled for `G`.

An empty entry to stair_level, previously not possible, now has the
semantics of a branch that no longer has stairs; it is worth noting that
I didn't implement any way for portal stair sources to actually appear
in this structure, so this semantics as described is not fully
implemented (in that a portal branch will still have no source stairs
even while the player is in it or have seen but not traversed the portal
entry). There are some complexities with fully implementing this part
that made it not seem worthwhile, including handling seen portals
vanishing while not in los, and the fact that multiple bazaar entries
could in principle exist at once (I think).

Any game played between 44eecae1 and now may have missing portal
branches if they were entered with `<` instead of `>` -- not going to
worry about this.

--------------------------------------------------------------------------------
7d3d5a44bd | advil | 2019-08-19 19:50:43 -0400

Simplify pregen options
and update documentation.

--------------------------------------------------------------------------------
b1ee012021 | advil | 2019-08-19 19:50:43 -0400

Further domino call refactoring
If a level does not use dominoes, there is no need to pass a value at
all to the domino parameter as far as I can tell. Random tile variants
are selected via other means.

--------------------------------------------------------------------------------
58b1be019b | advil | 2019-08-19 19:50:43 -0400

Default disable incremental pregen for testing
This is for the merge of the incremental_pregen branch: the branch
includes a wide range of rng improvements etc that are independent of
the generation method, so it will be simpler to test the branch online
without incremental pregen being enabled by default. If players are
interested, they can still enable it in their rc file
(`incremental_pregen=true`). Later, I'll default this to true.

--------------------------------------------------------------------------------
bd264f5708 | advil | 2019-08-19 19:50:43 -0400

Separate unique vault tracking for abyss from everything else
This commit doesn't affect vaults that place only in one or the other,
but for vaults that place in both and are supposed to be unique (e.g.
hangedman_summoners_spam, lemuel_flamethrower_hall), these vaults can
now in principle independently place twice, once in the abyss and once
outside. (The behavior of unseen vaults in the abyss isn't changed, so
if they aren't seen in the abyss, they can keep re-placing there.) This
is consistent with abyss's flavor as a shadowy mirror of the outside
world.

Something like this is necessary for seed stability, as long as regular
levelgen can be interleaved with the abyss: maps that can place in both
abyss and elsewhere and are unique in some way can interfere with
incremental pregeneration if they place in the abyss and are seen there,
and then would try to place in an as-yet-ungenerated level. There aren't
a lot of vaults that this affects, but there are a few, mostly placing
in depths and elf.

Abyss should be the only branch that this problem applies to. Pan is
handled differently, by forcing everything else to pregenerate, and zigs
+ bazaars have non-overlapping vault lists (plus zigs will force
complete pregeneration as well). The implementation is therefore a bit
ad hoc in terms of serializing, though I have generalized how unique
vault lists are accessed.

Semi-related debugging changes: This commit also affects how vaults are
shown in morgues, and might be kind of spammy for abyss / pan (it shows
every vault that ever places), so this part may need further tweaking.
There's also a bit of useful debugging infrastructure.

--------------------------------------------------------------------------------
b9928c7577 | advil | 2019-08-19 19:50:43 -0400

Remove some mutation validation ASSERTs (11807)
If the player gets a lot of xp, the temporary mutation xp value may well
be negative and stay negative. A negative value means that the player
will get more temp mutations removed the next time they got any xp.
There are various alternatives (e.g. maxing this value at 1, running
temp_mutation_wanes in a loop until it is non-negative), but I've
convinced myself that the current behavior is more or less what's
intended.

--------------------------------------------------------------------------------
93dbe2d410 | advil | 2019-08-19 19:50:43 -0400

Isolate trove portal generation from levelgen rng
The toll is calculated while generating the trove, and the number of rng
draws that make up this calculation depends on the player (skills,
species, etc). So, isolate it as a subgenerator calculation so that it
always makes the same number of draws from the main rng.

--------------------------------------------------------------------------------
452b1d95ea | advil | 2019-08-19 19:50:43 -0400

Handle certain random attack specs differently
Four monsters (chaos spawn, cherubs, eidolons, and ghost moths) have
a random attack type or flavor that is randomized as part of
`mons_attack_spec`. This led to two bugs. First, the monster description
changed each time you look at it; this is cosmetic for chaos
spawn/cherub as the damage wasn't affected, but for eidolons and ghost
moths a newer player would not realize that the stat affected by
AF_DRAIN_STAT is randomized per hit.

Second, and more involved, this led to a seed bug, depending on the
state of the area grid when the builder was called. When placing an
item, the builder checks if the player can hear the position where the
item is, in order to decide whether to make a splash noise. As part of
this check, it looks to see if the position is silenced. This involves
checking the area grid, and if the area grid is invalid, rebuilds it.
Part of rebuilding the area grid involves running holiness checks on
potentially every monster in the level. Running a holiness check
involves checking attack flavors, to look for evil attacks etc. This
would therefore then do some random calls, on the levelgen rng. The
result: the rng state was different depending on whether the area grid
is valid. (Probably every stage of this calculation could be simplified
out of existence for the levelgen case, but no matter.) I *think* that
the area grid should always be valid except on turn 0, so this mainly
led to a difference between the seed explorer and actual games; because
these monsters are not super common it wouldn't manifest until lair
branches or depths usually.

This commit fixes these bugs in two ways. First, it makes
`mons_attack_spec` non-random unless that is explicitly called for,
which it only should be when actually doing the attack. This leads to
better descriptions of these four monsters. Second, as a sanity check it
also isolates the area grid rng, in case there's other code that could
be triggered by it that is random.

There's also a bit of debugging code / builder spam adjustment in this
commit.

--------------------------------------------------------------------------------
5121451e89 | advil | 2019-08-19 19:50:43 -0400

Don't pregenerate bazaars (for now at least)
The problem is that multiple bazaars can generate, which I hadn't
realized. It would be possible to pregenerate the first one without too
much trouble, but this leads to some oddness with the current
incremental pregen setup. Ideally, we would pregenerate all bazaars, but
this would require some tricky changes to how portal vaults are
currently handled.

--------------------------------------------------------------------------------
ad2a101408 | advil | 2019-08-19 19:50:43 -0400

Fix a sequence point issue in rng::subgenerator

--------------------------------------------------------------------------------
aa2f355350 | advil | 2019-08-19 19:50:43 -0400

Isolate shoals tide from levelgen rng
The builder calls some tide code when finishing up a shoals level,
roughly to initialize things. However, tide code is dependent on global
state, for things like shoals tide direction, and it is also randomized,
so it would have a different impact on the rng depending on this state.
This means that for incremental pregen (or just regular games before
incremental pregen) the outcome of later levelgen would be impacted by
the global tide state when entering a level. This commit ensures that
tide state only ever impacts the gameplay rng.

--------------------------------------------------------------------------------
215db2b007 | advil | 2019-08-19 19:50:43 -0400

Reset brentry for portals correctly in tests/wizmode
Now that portal information is stored here, we need to deal with tests
that clear uniq_map data, allowing portals to be generated multiple
times.

--------------------------------------------------------------------------------
da9c0b029a | advil | 2019-08-19 19:50:43 -0400

Update seed explorer for incremental pregeneration
This mostly consists of handling portals correctly.

Also, smaller changes:
* Add Gehenna to the seed explorer. Somehow this was missing?
* Change the seed explorer default depth to exclude hells; the
hells are too spammy, and not what most use cases are interested in.

--------------------------------------------------------------------------------
44eecae16b | advil | 2019-08-19 19:50:43 -0400

Generate portal levels at the same time as their source
Whenever a regular level has a portal, this will generate the portal
levels immediately after the regular level's generation is triggered.
This imposes a deterministic generation order on portal levels for
incremental pregen, as well as a deterministic order between portals
when there are multiple ones from the same level (which is missing from
even full pregen before this commit).

This commit also puts ziggurats in the generation order, though they are
handled a bit differently; this is so everything else generates before
they do, to try to minimize the impacts of item placement in zigs.

--------------------------------------------------------------------------------
66c84cb112 | advil | 2019-08-19 19:50:43 -0400

Add pan to level generation order
This forces everything before pan to be generated before entering pan;
since there is occasional overlap of vaults and uniques, entering pan
can therefore interfere in any later levelgen.

--------------------------------------------------------------------------------
38a37b7ff7 | advil | 2019-08-19 19:50:43 -0400

Isolate shop rolls from levelgen
This will make it not a complete disaster to try to place specific
unrands in shops, though I would still want to discourage this. I
believe there is currently one shop that does this, minmay_shop_mayhem,
which doesn't have a simple fix. (One option might be to let some lua
post-place script cull shop items, rather than try to filter the list
beforehand, but I think this would be pretty involved.)

--------------------------------------------------------------------------------
7e99aecb7e | advil | 2019-08-19 19:50:43 -0400

Use fallback randarts for minmay_shop_chei
This works fine, you get randart bardings/hats with ponder.

--------------------------------------------------------------------------------
cbae52a9c1 | advil | 2019-08-19 19:50:43 -0400

Make ds, wn, and dswn starts more deterministic by seed
This should make the rng for setting up each of these start categories
fully determined by the game seed, and independent from each other (as
well as all other start choices). Before, these were somewhat
accidentally dependent on seed, but dswn led to an interaction between
the two (and potentially with any other randomness that might happen
during character initialization, if there is any). Even if we decide
that this is a bad idea at some point, these are still the right code
changes to make these rolls independent of the rng as well -- would just
need to initialize the subgenerator differently.

Thanks to discord user Blue for pointing out the dswn interaction.

--------------------------------------------------------------------------------
82437c2fa6 | advil | 2019-08-19 19:50:43 -0400

Update seed menu for incremental pregen
Removes the toggle except on debug builds. It is still possible to
enable full pregen in the rc file for offline games.

--------------------------------------------------------------------------------
a46ea00baf | advil | 2019-08-19 19:50:43 -0400

Remove almost all instances of you.unrands
This technique for controlling unrand placement has a bad interaction
with incremental pregen. Basically, any change to item placement in a
vault description can impact rng state, and it's a bit hard to keep
these effects limited. (Though possibly, uses of this technique that
replace exactly one unrand with exactly one other thing might be more or
less ok.) With full pregen, this is not an issue, because dungeon unrand
selection is done before the player can do anything. With incremental
pregen, because unrands can be generated by acquirement, any such
generation can the effect levels that are in the future.

Crawl already did some automatic fallback placement for unrands that
were not wrapped in you.unrands checks: if unrand placement fails, it
placed an unrand with the same base type and subtype. However, in
various cases vault designers wanted something more specific.

To solve this problem, this commit makes the following changes:

1. Item generation all happens on a sub-generator, so all single items
make exactly the same number of draws from the level's rng (4). This
means that fallback placement as described above doesn't affect the rng
over and above regular unrand placement.

2. The vast majority of uses of you.unrands in vault design just tweaked
what would happen without a lua check slightly, by adding a brand or
changing the subtype.  I've enhanced the syntax of art-data.txt to allow
explicit specification of fallback type and subtype (e.g. so things like
Glaive of the Guard can place as a bardiche), as well as allowing
specification of a brand for the fallback. Before, item generation
didn't try to mimic the unrand's brand, but now it does. Nearly
everything that was previously done with you.unrands in lua can now be
done with the new syntax in art-data.txt, in a more generalized way.
Most of the time I took the fallback details from specific vaults.

In a few cases, the logic that this replaces was complicated enough that
I didn't try to reproduce it exactly, but I really don't think that most
of these extra complicated cases added much.

So, here's an example of what should happen. Suppose the old item spec
looked like this:

```
: if you.unrands("frostbite") then
KITEM:  2 = executioner's axe ego:freezing randart ident:type / \
            battleaxe ego:freezing randart ident:type / \
            broad axe ego:freezing randart ident:type
: else
KITEM:  2 = frostbite / \
             battleaxe ego:freezing randart ident:type / \
             broad axe ego:freezing randart ident:type
: end
```

This has been replaced by the following, which now accomplishes exactly
the same thing:

KITEM:  2 = frostbite / \
             battleaxe ego:freezing randart ident:type / \
             broad axe ego:freezing randart ident:type

If frostbite has already generated, and the vault rolls the first item
in this list, then it will generate a fallback randart of the same type
and subtype (exec axe). In fact this would have already happened with
this item spec before this commit. Because frostbite specifies a brand
(SPWPN_FREEZING), the randart will pick this up as well (this part is
new). Because all this is partitioned off from the levelgen rng, nothing
else about a level should change beyond the substitution of an unrand
with a similar randart.

There's still some details not in this commit; in particular there're a
few shops that still use you.unrands that I'll address in a separate
commit.

--------------------------------------------------------------------------------
9ece634645 | advil | 2019-08-19 19:50:43 -0400

Improve the rng subgenerator API
This makes it easier to spin up a temporary rng based on current rng
state (or not). Subgenerators are designed for one-off calculations
where it is desirable to keep the main rng state fairly stable.  A
couple pieces of code already use this technique, and they are now a lot
better, both converted to use unbiased bounded random calls (though the
domino code is complicated enough that I didn't want to convert it over
fully).

This commit changes make_name to be use randomness better relative to
its 32 bit seed parameter; I'm not sure if it will be qualitatively
noticeable but the old behavior is recoverable if necessary.

--------------------------------------------------------------------------------
bc886685f7 | advil | 2019-08-19 19:50:43 -0400

Update the bounded random implementation
This moves to an implementation of unbiased bounded random number
generation based on a recent algorithm by Daniel Lemire with an
implementation by Melissa O'Neill. This change has two advantages: (i)
the big one, this is off-the-shelf code written by an rng expert,
implementing an algorithm designed by someone who specializes in this
kind of optimization. Ours was *probably* fine, but didn't exactly match
any standard way of doing this that I was able to find.  (ii) It gets a
10% speedup for typical range values compared to our old implementation,
because it avoids using /,% where possible. This is probably not a big
deal in the scale of things that are slow in crawlcode, but we do call
the rng a *lot*, mostly with range values that this function is
optimized for. See:

    http://www.pcg-random.org/posts/bounded-rands.html
    
https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/
    https://arxiv.org/abs/1805.10941

This also updates the API for this call, moving it the implementation
into the pcg class, as well as updates some comments in pcg.cc to be
more detailed and correct.

--------------------------------------------------------------------------------
8fead6faaf | advil | 2019-08-19 19:50:43 -0400

Change PCG initialization to something more standard
Perhaps because of the age of our PCG implementation (it comes from
before the official implementations were well-developed/documented), our
initialization process was fairly ad-hoc, which is not usually a good
idea in RNG design. This commit converts the initialization behavior to
match what the official implementations do, for example:

    https://github.com/imneme/pcg-c-basic/blob/master/pcg_basic.c

Possibly it would be best even to just use the official c++ PCG
implementation, but this commit doesn't go that far.

Needless to say, this change affects all seeds.

--------------------------------------------------------------------------------
159d84b62b | advil | 2019-08-19 19:50:43 -0400

Cosmetic refactoring of the rng interface
Move the more internal parts into their own namespace, and rename some
functions accordingly. This still leaves the external interface (random2
etc) outside the `rng` namespace, because I'm not up for the consequent
mass edit right now.

--------------------------------------------------------------------------------
62a95a1fbf | advil | 2019-08-19 19:50:43 -0400

Add an option to disable incremental pregen, use it for fireworks
This option isn't a very direct solution to the immediate problem, but
it's something players might want anyway. The immediate problem is that
after the incremental pregen commit, wizmode `&~` is not safe to use in
a long sendkeys sequence, because if it triggers pregen, the pregen
progress window will absorb any following keystrokes until it is done.
For fireworks, the script just goes to temple because it's a
straightforward area clear of monsters that it's safe to use for
testing, so disabling pregen makes sense. No other official scripts
really use this.

If it turns out that a more complete solution is needed for some reason,
I could imagine either (i) letting wizmode `&~` trigger a fancier menu
that has an option to toggle pregen, or (ii) adding some kind of bot
mode that suppresses the progress popup. Most bots trigger on ready()
though, so won't get tripped up by this popup as far as I can see.

--------------------------------------------------------------------------------
11bec38995 | advil | 2019-08-19 19:50:43 -0400

Initial implementation for incremental pregeneration
This accomplishes the main mechanics, but doesn't solve most of the hard
seeding problems. After this commit, the dungeon always generates in a
stable order for non-pregen games; if you skip levels relative to the
defined order it will catch up.

--------------------------------------------------------------------------------
45f0056d81 | Aidan Holm | 2019-08-19 00:30:35 +0800

Speed up level traversal by 33%
The Wang tile generator in domino.h is unfortunately pretty slow.
It's also not necessary on levels outside the crypt, which don't use
wang tiles, so defaulting to random tile indices in this case is a
simple fix. Improves (not-into-crypt) level traversal speed by around a
third.

--------------------------------------------------------------------------------
0c8b59c118 | Aidan Holm | 2019-08-19 00:26:00 +0800

Revert "Speed up level traversal by 33%"
This reverts commit 070f72b007c478799c7b6210fd4ce8416dc5f516.

--------------------------------------------------------------------------------
070f72b007 | Aidan Holm | 2019-08-18 23:12:10 +0800

Speed up level traversal by 33%
The Wang tile generator in domino.h is unfortunately pretty slow.
It's also not necessary on levels outside the crypt, which don't use
wang tiles, so defaulting to random tile indices in this case is a
simple fix. Improves (not-into-crypt) level traversal speed by around a
third.

--------------------------------------------------------------------------------
61eb7a8b75 | Aidan Holm | 2019-08-18 23:07:43 +0800

Fix newline at end of message log

--------------------------------------------------------------------------------
d1b266bae6 | Aidan Holm | 2019-08-17 21:50:59 +0800

Fix excess padding on webtiles book spell list

--------------------------------------------------------------------------------
8077b2f243 | wjchen | 2019-08-17 21:22:26 +0800

Allow traveling and annotating current level from ^O
G, _, $, and ! in dungeon overview are made shortcuts to G, G_, Ctrl+F
"shop", and level annotation respectively allowing selection of target
for travel and annotating current level from dungeon overview.

--------------------------------------------------------------------------------
f04b0cdf28 | wjchen | 2019-08-17 21:22:26 +0800

Allow using G_ to select altar for travel
Pressing _ in G now lists discovered altars, user can then select the
altar for travel by entering the initial of a god (except for TSO, which
is replaced by 1). Once a god is selected, travelling to the nearest
altar is started.

Help file is also modified to reflect this change.

--------------------------------------------------------------------------------
b950e110d4 | wjchen | 2019-08-17 21:22:26 +0800

Add _god_from_initial() to travel.cc
_god_from_initial(const char god_initial) returns a god_type enum
when the initial of a god (i.e., god_initial, case-insensitive) is given.
(except for TSO, which is replaced by '1'). If the given letter does not
match any god's initial, GOD_NO_GOD will be returned instead.

For example: _god_from_initial('a') or _god_from_initial('A')
will return GOD_ASHENZARI.

This function is later used for allowing players to select an altar
for travel by the initial of a god.

--------------------------------------------------------------------------------
4167bdcbf3 | wjchen | 2019-08-17 21:22:26 +0800

Allow predefined keyword for search_stashes()
Modify StashTracker::search_stashes() to accept an optional predefined
keyword. It now directly return search results without asking what to
search for when the keyword is specified.

--------------------------------------------------------------------------------
fe73009c60 | Aidan Holm | 2019-08-17 20:29:10 +0800

Check bounds for Grid widget row/col growths
It's very easy to cause memory corruption if you unconditionally set the
growth amount for a column / row, but conditionally add widgets to that
column / row.

--------------------------------------------------------------------------------
6aae15eeb0 | Aidan Holm | 2019-08-16 17:36:42 +0800

Fix mouse cursor on unselectable items

--------------------------------------------------------------------------------
3b46b88f1c | Aidan Holm | 2019-08-16 17:32:04 +0800

Prevent widget parent clobbering (12046)
If a widget's parent was recreated and reassigned to a shared pointer
variable, it was possible for the old instance's destructor to clear the
child's parent pointer after the new instance had initialized it:

auto parent = make_shared<Parent>(child);
// child->m_parent == parent.get();
parent = make_shared<Parent>(child);
// child->m_parent == parent.nullptr

When the second line runs, the first Parent instance is destructed after
the second instance is constructed, clobbering the child's m_parent.

--------------------------------------------------------------------------------
2d01d4ab0a | advil | 2019-08-11 11:28:14 -0400

Fix some non-working code in `your_talents`
I'm still not sure under what natural circumstances this code can get
triggered, but it seems to be happening in this megazig character:

    http://crawl.akrasiac.org/rawdata/malcoda/crash-malcoda-20190811-143529.txt

This bit of code for doing backup hotkey assignment for abilities has
apparently never worked, but it also is hard to get to, so no one has
noticed before.

--------------------------------------------------------------------------------
dd4cf15266 | Nikolai Lavsky | 2019-08-10 13:01:29 -0400

Fix red draconian Tiamat tile (12043)
In mon-data.h, the colour of red draconians is LIGHTRED, not RED,
since 54374eb4.

Because tilepick.cc:tileidx_monster_base() had no matching colour for
red draconian Tiamat, it returned a tile with offset 0, the black
draconian Tiamat tile, instead.

--------------------------------------------------------------------------------
bb0d440638 | gammafunk | 2019-08-08 21:46:59 -0500

Update Sif Muna's altar (CanOfWorms)
This adds new animated altar tiles courtesy of CanOfWorms. The tile
concept is a sort of shimmering orb of magic atop a deep blue pedestal
inscribed in powerful LORE. The description is updated accordingly, and
Sif's altar now has ETC_SHIMMERING_BLUE as its color instead of simply
blue.

--------------------------------------------------------------------------------
42aaa33449 | gammafunk | 2019-08-08 20:48:00 -0500

Remove an unused description

--------------------------------------------------------------------------------
939521aa74 | Seve Monahan | 2019-08-08 19:10:12 -0400

Add rmcneive to CREDITS.txt

--------------------------------------------------------------------------------
c9afb8a149 | Seve Monahan | 2019-08-08 19:05:20 -0400

Merge branch 'rmcneive-Vaamat_quotes_1'
Some of these quotes are not currently visible in game due to mantis bug
12032

--------------------------------------------------------------------------------
18ba70b503 | advil | 2019-08-06 07:37:22 -0400

Don't let dgn_move_entities_at move statues onto clouds
This resulted in a crash in world_reacts; it could be reliably
replicated by running lugonu corrupt near the vault
statue_in_the_mist_lemuel.

--------------------------------------------------------------------------------
0b98641fa2 | Seve Monahan | 2019-08-06 00:43:41 -0400

Remove extraneous Nikoli Lavsky credit

--------------------------------------------------------------------------------
98e85ec62a | Seve Monahan | 2019-08-04 11:18:03 -0400

Add Nikolai Lavsky to CREDITS.txt

--------------------------------------------------------------------------------
c3251c534c | reaverb-Crawl | 2019-08-04 11:09:40 -0400

Merge pull request #1124 from nlavsky/zigfig-warning
Warn the player about leaving a ziggurat figurine behind (u/Quatzecoatl)
--------------------------------------------------------------------------------
cb87913eb9 | Nikolai Lavsky | 2019-08-01 14:17:47 +0300

Warn the player about leaving a ziggurat figurine behind (u/Quatzecoatl)
Ziggurat figurines are usually buried below other loot and could be
easy to miss. This commit adds a confirmation prompt when exiting
Zig:27 without the figurine.

This change was suggested here:
    https://www.reddit.com/r/dcss/comments/al6bxh/

--------------------------------------------------------------------------------
9231cdcba1 | Seve Monahan | 2019-07-31 00:18:52 -0400

Don't mention Invocations skill in Drain Life spell description (#11947)

--------------------------------------------------------------------------------
f43b32f898 | Seve Monahan | 2019-07-29 23:22:00 -0400

Ensure Zigsprint never fails to place guaranteed items (#12033)

--------------------------------------------------------------------------------
e2f623c2b9 | Seve Monahan | 2019-07-29 23:00:39 -0400

Have fsim test magical staffs with different Staves skill values (#12034)
It would probably better to give the fsim user control over  which
skill(s) to vary, but if somebody needs that functionality it should be
relatively simple to implement.

--------------------------------------------------------------------------------
04f7f4e3a9 | Seve Monahan | 2019-07-29 20:16:11 -0400

Use "spell power" over "magical power" in !brill description (Yermak)
"Magical power" is often used to refer to magic points, such as in the
ring of magical power.

There should probably be more consistent names for magical points and spell
power, which should ideally both avoid using the word "power".

--------------------------------------------------------------------------------
bf7f94f634 | rmcneive | 2019-07-27 11:05:17 -0400

Update quotes.txt

--------------------------------------------------------------------------------
122614bf49 | Aidan Holm | 2019-07-27 17:21:15 +0800

Fix typo (runrin)

--------------------------------------------------------------------------------
8fd06ad0bc | Seve Monahan | 2019-07-22 22:53:24 -0400

Rename a column of crash dumps from "can_train" to "can_currently_train"
Split this off from 7ac07d978e2f31 so that this commit can be easily
reverted. Reverting this commit would be useful if some outside system
is fragile to the crash format changing.

It might be better to split the skills table header into two lines for
readability's sake. This would allow each column header to wrap once.

--------------------------------------------------------------------------------
7ac07d978e | Seve Monahan | 2019-07-22 22:49:23 -0400

Rename you.can_train to you.can_currently_train
Logic errors such as the one fixed by 284f782df56 are much less likely
to occur with this more precise name.

Lua functions are unchanged to conserve compatibility with old scripts.

Crash dumps will be changed in the next commit.

--------------------------------------------------------------------------------
9d8d8d5b78 | Seve Monahan | 2019-07-22 17:25:49 -0400

Ensure the Faerie Dragon scales are always id-ed (Mantis 12031)
Now if you managed to kill the Enchantress before seeing her, the Faerie
Dragon scales will be identified.

This also ensures that if the Faerie Dragon scales are placed in a
vault, they will be identified.

--------------------------------------------------------------------------------
d52e2fb918 | Seve Monahan | 2019-07-21 18:35:10 -0400

Revert "Another try at "Don't crash if redrawing a prompt triggers a flash""
This reverts commit 9de272bb65679e0acb2c0d648a7bf934a2dbe1e2.

This commit appears to cause crashes similar to a379d5e2002d17

Example:
https://crawl.xtahua.com/crawl/morgue/hittemvvvvvvvhard/crash-hittemvvvvvvvhard-
20190721-214938.txt

It's possible this is coincidence, if so this commit can  be reverted.

--------------------------------------------------------------------------------
9de272bb65 | advil | 2019-07-20 19:01:55 -0400

Another try at "Don't crash if redrawing a prompt triggers a flash"
Not exactly a revert of be7f5e2e8dd2d2250346b0928555b9967f520fba. This
tries under fewer circumstances to restore cursor position after a
flash, doing it only while printing to the message window; it is
apparently possible for a flash to be called in situations where the
cursor position is incoherent with the region. However, things should be
coherent within _mpr.

This also disables flashing entirely in the arena, as the arena reliably
instantiates one of these cases, and I couldn't figure out why.

--------------------------------------------------------------------------------
be7f5e2e8d | advil | 2019-07-20 15:17:44 -0400

Revert "Don't crash if redrawing a prompt triggers a flash"
This reverts commit a379d5e2002d1753cc2fdd47a06dc70336d03bd7.

--------------------------------------------------------------------------------
a379d5e200 | advil | 2019-07-20 14:10:22 -0400

Don't crash if redrawing a prompt triggers a flash
This is probably a webtiles-specific bug: if a prompt triggered a flash
(on just webtiles builds, I think), and there were monsters in view,
then the redraw involved in the flash would lose the cursor position and
leave the region in the mlist.

This is a kind of minimalistic fix in that it only addresses flash calls
specifically -- viewwindow on relevant builds (as well as
update_monster_pane) can change the region as a side effect, leaving it
in the monster list. However, I'm not yet certain whether it would have
other consequences to adjust this more generally. But probably a more
general fix is needed, and all the occasional cursor out of bounds
issues we see with GOTO_MLIST do result from this side effect of
viewwindow.

--------------------------------------------------------------------------------
284f782df5 | Seve Monahan | 2019-07-19 22:50:02 -0400

Show XL to reach relevant skill level on more items (Mantis #12018)
Before, if you could not *currently* train a particular skill, you would
not see the "At X% training you would reach Y in about Z XLs" line. For
example, if you did not have any short blades in your inventory but were
looking at a rapier in a shop, the line would be missing. This fixes the
description code to only exclude the line if a skill is *permanently*
untrainable.

--------------------------------------------------------------------------------
2b48af375b | advil | 2019-07-19 09:08:24 -0400

Fix a potential cursor rendering issue in glyph mode
What was happening here was if w or h were non-integer, then the scale
value ended up slightly different than the cell sizes. In glyph mode,
this was happening to the width parameter depending on font details
(applying at least to firefox/mac on default settings). When rendering
the mouse cursor, this scale value is used, so it would be a bit larger
horizontally than a single cell, by 1-2 pixels. On firefox this meant
that the cursor didn't get cleanly cleared when it moved, leaving
vertical lines when moving the mouse cursor across the dungeon view.

In testing, I have seen no consequences of using a scale based on the
floored versions of w and h, even though in principle this might mean
that the width of glyphs is slightly larger than the cell size is
expecting.

--------------------------------------------------------------------------------
71c5d99ebc | advil | 2019-07-19 09:08:24 -0400

Handle hidpi screens in webtiles glyph mode
This was not factoring in the device pixel ratio correctly, and so ended
up too small on hidpi screens. This commit also adds support for
crawl-internal zooming (via rc options, or {} in X) of the dungeon.
Browser zoom affecting glyph mode is a different story, I'm not sure how
possible this is going to be.

--------------------------------------------------------------------------------
9253d746ad | Alex Jurkiewicz | 2019-07-19 16:45:50 +0800

Compress title PNGs a little bit better
Using:
advpng -z4 -i 1000
Then:
zopflipng --iterations=1000 --filters=01234mepb --lossy_transparent

--------------------------------------------------------------------------------
a1643a6788 | Seve Monahan | 2019-07-18 22:52:16 -0400

Ensure artefact jewellery is always auto-picked-up (Mantis #12029)
This was caused by commit 32ec7cac8f0e. 32ec7cac8f0e did not correctly
handle artefact jewellery when it changed some jewellery autopickup from
using simple autopickup exclusions to a lua function which checks the
player's inventory.

--------------------------------------------------------------------------------
af07aaf802 | Alex Jurkiewicz | 2019-07-18 18:47:22 -0700

Add guidelines for no_tele_into usage (#1118)
Discourage overuse and explicitly reject the idea all runed door / transporter 
vaults require it.
--------------------------------------------------------------------------------
3e8b242632 | Seve Monahan | 2019-07-17 21:04:30 -0400

Clarify Beastly Appendage Octopode mutation conflict. (Mantis #12028)
This makes it explicit in the description for Beastly Appendage it is
ineffective for Octopodes which already have levels of the tentacle
spike mutation.

--------------------------------------------------------------------------------
958ff8eaa0 | Seve Monahan | 2019-07-17 17:33:07 -0400

Make Qazlal's noise conduct more clear (Mantis #12025)
Specifically, clarify that Qazlal followers generate noise even if there
are no clouds around them.

--------------------------------------------------------------------------------
bda620ff8e | Seve Monahan | 2019-07-17 17:32:47 -0400

Fix misspelling in describe.cc comment

--------------------------------------------------------------------------------
cfb02b9d07 | nlavsky | 2019-07-15 12:46:23 -0700

Update scroll of brand weapon description (#1114)
As blowguns are no more.
--------------------------------------------------------------------------------
b815cdf0ff | Aidan Holm | 2019-07-15 15:19:12 +0800

Fix spurious key events when adjusting map zoom

--------------------------------------------------------------------------------
e6e1909c86 | Aidan Holm | 2019-07-15 15:15:54 +0800

Fix visual jump when toggling floor / inv items
For unselectable items, the hotkey is a space character, which produced
an extra (presumably unintentional) indentation. I tried indenting to
align the item titles, but this looked even more out of place, so flush
left it is.

--------------------------------------------------------------------------------
c560d0b20c | Alex Jurkiewicz | 2019-07-15 13:26:20 +0800

Mark two unrand vaults no_tele_into
As both are protected by runed doors / transporters, it shouldn't be possible 
to teleport randomly inside.
--------------------------------------------------------------------------------
46574c2197 | Seve Monahan | 2019-07-14 01:06:22 -0400

Add escape hatch to mumra_spider_spiderweb (Mantis #12013)
It was possible for the inner area of this vault to generate cut off
from the rest of the level (by deep water).

--------------------------------------------------------------------------------
1074bba3cf | Seve Monahan | 2019-07-13 22:42:20 -0400

Ensure Bat Form warns about Stat Zero (Mantis #12006)
I have changed the bat form drain formula to drain 2 from each stat.
The old formula was very high variance (For example, there was a 1
in 70,000 chance of causing any particular stat to drop by 7). This made
it difficult to communicate to the player the chance of causing stat
zero, which I think is important.

The old formula drained an average of 4.5 points, while the new formula
drains 6 points. I do not believe this is a significant change.

--------------------------------------------------------------------------------
e00f04a389 | Seve Monahan | 2019-07-12 23:56:26 -0400

Extract new helper function "_player_is_gnoll()" in skills.cc

--------------------------------------------------------------------------------
5a03d68f59 | Seve Monahan | 2019-07-12 21:33:12 -0400

Ensure train targets turn off once reached with !experience (#11993)
This bug was caused by commit ece4408. I have tested the bug fixed by
ece4408 (#11943) to ensure this commit did not cause a regression.

--------------------------------------------------------------------------------
be733cd003 | marksg07 | 2019-07-12 13:43:31 -0700

Revert "Allow running clua from map viewing mode (#1103)" (#1107)
This reverts commit 1c7b743a30f0ffe3337a8d576059ebbbcae2e84a.
--------------------------------------------------------------------------------
d30f2f123c | olowin | 2019-07-12 12:03:45 -0400

Remove blood from Gozag shop description
Now that vampires are hungerless.

--------------------------------------------------------------------------------
17ce2c7205 | Seve Monahan | 2019-07-12 00:37:23 -0400

Correct alphabetization in Makefile.obj

--------------------------------------------------------------------------------
7e4ddcd485 | advil | 2019-07-11 17:25:51 -0400

Fix a pronoun (12011)
Ideally this should reflect player choice, but given that we aren't
using the `it` form at all any more, this is at least more consistent.

--------------------------------------------------------------------------------
df4b510d7a | advil | 2019-07-11 16:57:06 -0400

Trigger fineffs after blurrily reading a scroll (12016)
Otherwise, they need to wait until the next turn. Two cases that I have
tested: torment vs TRJ, and torment vs shock serpents.

This is not a very general fix, and in principle might need to be
generalized to any delay that queues a fineff.

--------------------------------------------------------------------------------
29c01f8b84 | advil | 2019-07-11 15:40:11 -0400

Fix arena logging (10060)
For some time, arena logging has been writing the entire message history
on each turn. This commit redoes arena logging using the message_tee
paradigm instead of trying to read from the log history directly; doing
it this way better handles continuous updates and the possibility of the
message log filling up.

--------------------------------------------------------------------------------
534e725bec | marksg07 | 2019-07-11 10:44:49 -0700

Check for known map bounds in the clua travel library (#1102)
The set_exclude, del_exclude, and set_waypoint functions all previously ignored 
the bounds normally set on your cursor in map mode, i.e. you can only move your 
cursors to points within the bounding box of the screen. This being ignored 
meant both that clua could do something that couldn't be done manually, and 
that your absolute coordinates could be leaked by careful use of the above 
functions. This fix will prevent both from happening.
--------------------------------------------------------------------------------
1c7b743a30 | marksg07 | 2019-07-10 17:33:25 -0700

Allow running clua from map viewing mode (#1103)
This is made possible by adding user function recognition to key inputs while 
viewing map. A clua function can be run by adding a levelmap key map from a 
given key to ===functionName. When the clua function finishes, we will still be 
in map mode unless the function took us out of it.



Additionally add clua functions for asking about map mode: crawl.in_map_mode, 
crawl.cursor_pos, and crawl.cursor_level



cursor_pos and cursor_level return nil outside of map mode. cursor_pos also 
returns nil if the level of the cursor is not the same as the level of the 
player, because giving the relative position to the player in that case would 
leak information about the level map.
--------------------------------------------------------------------------------
33f6f7b652 | advil | 2019-07-10 18:11:47 -0400

Arena error improvements
* keep arena from causing a full game exit if you mistype a monster. (In
  fact, just restart arena, at least if it was run from the main menu.)
* Print multiple rounds messaging into a popup, it wasn't showing at all
  in interactive arena before.

There's still a bunch of improvements that could be made to arena
messaging, it doesn't say anything for 1-round fights, and is generally
kind of lacking in local tiles (because of the lack of monster list).

--------------------------------------------------------------------------------
57318f2ed0 | Alex Jurkiewicz | 2019-07-08 21:46:12 -0700

Unify two loot lines (#1101)
Based on absolutely nothing, I think the average stack size of mutation potions 
is a touch over 1, adjust the new weight accordingly.
--------------------------------------------------------------------------------
ed8816983f | Alan Malloy | 2019-07-08 15:43:25 -0700

Add gmarks to CREDITS and mailmap after e77e6fb

--------------------------------------------------------------------------------
e77e6fb256 | marksg07 | 2019-07-08 15:35:48 -0700

Add clua function to set waypoint (#1098)

--------------------------------------------------------------------------------
962a3eeff7 | Nikolai Lavsky | 2019-07-08 15:27:22 -0400

Remove dump_book_spells option
Obsolete since the introduction of the spell library.

--------------------------------------------------------------------------------
98ea13e501 | Alex Jurkiewicz | 2019-07-08 15:26:04 -0400

Simplify logic

--------------------------------------------------------------------------------
e98fbd9498 | advil | 2019-07-08 14:47:54 -0400

Adjust desolation fog machines
It turns out that the desolation fog machines achieved their effect by
running 200 times per turn (by being set with delay 0). After my
previous commit causing delay to be max'd at 1, the amount of fog
produced by these machines with the same settings is approximately
halved. This commit tweaks the fog machines to try to get something more
like the originally intended effect. They may need further tweaking from
anyone who has a better sense how desolation fog should "feel". It's
possible that the portal fog should be toned down more, as well.

Needless to say, with a delay of 5 (2x per turn) these machines are a
lot easier on the cpu than they used to be. This probably makes
something like #948 not needed.

--------------------------------------------------------------------------------
a9b13e7d51 | advil | 2019-07-08 14:47:54 -0400

Handle delay 0 values correctly in lm_trig.lua
I think this code was infected by a classic lua gotcha: 0 does not
evaluate to false, so the "or 1" here did not ever apply (since at least
one of delay and delay_min/mix were guaranteed to not be nil). So if you
set up a turn triggerer with delay 0, in `DgnTriggerer:turn` the
countdown counter never got incremented and the loop there only exited
because of the countdown_limit check. This means it ran 200 times, where
the intended max appears to have been 10 for a single turn. (The 200
limit looks like it's something to do with apocalypserobin issues in the
distant past, but I haven't figured out exactly under what conditions it
was intended to apply.)

Consequently, each fog machine in desolation ran 200 times per turn.
This does a great job at getting lots of fog, but is really slow. From
reading the logs it looks like no one realized this is how it was
operating. I'll address desolation fog machines in a separate commit
(since with this commit they will run only 10x a turn, and this turns
out to mean putting out about half the fog.) Running 10x a turn is still
heavy in the scale of things but in my testing it's negligible compared
to the old 200x cap, so these changes may effectively fix the server cpu
issues for salt even without further tweaking delay (which my next
commit will also do).

--------------------------------------------------------------------------------
7da6c1453b | Alex Jurkiewicz | 2019-07-08 09:44:34 -0400

align braces

--------------------------------------------------------------------------------
9a978d2894 | Kyle Rawlins | 2019-07-05 12:22:18 -0400

Travis modernization (#1095)
* Travis modernization



* Enable ccache: travis can now save caches between builds (for every

  cell in the build matrix even!) so in the best case this massively

  speeds things up. Required some footwork for clang.

* Move all apt stuff into .travis.yml, using a more complex build matrix

  and yaml references to cut down on repitition. This isn't quite as

  clean as the perl code it replaces, but doing this directly allows

  travis the option to do whatever caches / retries / etc it wants for

  apt.

* Don't mess with compiler versions; xenial has modern enough compilers

  for c++11.

* Switch the build matrix to use include rather than exclude, and prune

  it down so that clang isn't fully crossed with every env option. The

  choice of which builds to do with clang is a bit arbitrary and could

  be further tweaked if anyone has preferences.

* Don't build non-needed contribs on BUILD_ALL for webtiles; this is

  covered by regular tiles builds and simplifies the dependencies.


--------------------------------------------------------------------------------
e3eab0557c | advil | 2019-07-05 10:29:53 -0400

Fix join_strings args (amalloy)

--------------------------------------------------------------------------------
132cf697da | Stephen | 2019-07-05 09:48:27 -0400

Fedora build deps rename SDL* to SDL2* (#1076)
The SDL build dependencies on Fedora are provided by the SDL2-devel and 

SDL2_image-devel packages. The current, non-"2", versions will cause the

build to fail.



[committer's note: copied PR message into commit]
--------------------------------------------------------------------------------
f6c7d2a2e8 | Alex Jurkiewicz | 2019-07-05 09:44:36 -0400

Old Vampire cleanup (#1096)
[committer's note: these braces are left over from b5eab8406da.]
--------------------------------------------------------------------------------
5b41c6f198 | gammafunk | 2019-07-04 16:44:40 -0500

Fix Death's Door HP at time of cast (Wise Wolf)
Certain spells such as Death's Door, Tornado, and Dragon's Call do
calculations of spell-power each turn for the purposes of spell effects.
In the case of Death's Door, HP sanity checking code would immediately
set hp to a value that didn't consider any spell-power bonuses that
might be no longer active. This meant that HP would be lowered when
using Sif's Divine Exegesis (due to loss of the Invocations bonus) or
when swapping off e.g. a staff of death. This commit records the
spell-power-derived HP at the time of casting and uses this for all
subsequent turns of the current Death's Door duration. Changing the HP
on subsequent turns is a result of the technical issue of implementing
the sanity check for Death's Door and not part of the spell's intended
design.

This is a more general issue of how to handle spell-power for any spell
with effects over multiple turns. Most duration-based spells, all summon
spells, all conjurations that create a summon-like conjuration, and all
cloud spells don't reconsider spell-power with every turn, which is
inconsistent with how we do for Dragon's Call, Tornado, Borg's Vile
Clutch, Searing Ray, and Olgreb's Toxic Radiance. If discouraging swaps
is so important, we should not limit that restriction to a narrow subset
of spells mainly for technical reasons. Clarity is the most important
reason; most players probably don't expect that the former list of
spells become worse over subsequent turns if they swap off enhancers. If
we agree that encouraging swaps is bad, we should likely make *all*
spells that have effects over time reconsider spell-power on each turn.

--------------------------------------------------------------------------------
47c397e050 | advil | 2019-07-04 11:26:09 -0400

Travis: Update mingw package names for xenial

--------------------------------------------------------------------------------
7d615089e7 | advil | 2019-07-04 09:52:29 -0400

Another travis dep...

--------------------------------------------------------------------------------
7b9cff83cf | advil | 2019-07-04 08:54:58 -0400

More travis dependency updates, this time for BUILD_ALL

--------------------------------------------------------------------------------
3302cd442e | advil | 2019-07-03 22:52:46 -0400

Try xenial (travis)
This apparently could happen any day now anyways.

--------------------------------------------------------------------------------
c1e67f237a | advil | 2019-07-03 22:13:21 -0400

More travis tweaking for local tiles

--------------------------------------------------------------------------------
4a4e93562d | advil | 2019-07-03 21:55:50 -0400

Remove old 3rd party sdl build from travis

--------------------------------------------------------------------------------
378ef55cfb | advil | 2019-07-03 18:06:12 -0400

Add local tiles zoom to key reference

--------------------------------------------------------------------------------
a9e2c0f7d0 | advil | 2019-07-03 17:36:04 -0400

Let X be zoomed differently from main map, default to 60%
In console, the `X` view is really useful in terms of getting a quick
overview of the level map. However, it's always struck me as a bit
useless / vestigial on tiles, because the amount of map displayed wasn't
much different from what `x` displays, just with a different set of keys
and behavior. The situation is slightly better on webtiles, where at
least the message pane is hidden, but on local tiles it literally was
not different.

This commit allows the `X` view to be zoomed differently from the main
map, and defaults it to 60% zoom (as opposed to default 100% zoom). You
can also now change the zoom in game using {,}. On local tiles, ctrl-'-'
and ctrl-'=' also work (as with the main view). To return this behavior
to its previous state, set the (new) rc option `tile_map_scale` to 1.0.

There are a few awkward issues remaining. In webtiles, some status
messages printed using `mpr` are no longer visible in `X` mode, though
prompts will work (see 65f37df). I'm not yet sure what the best solution
for these is. Also, unlike local tiles, webtiles lets you zoom beyond
what will actually display, because I couldn't figure out a simple way
of getting this information back from the client (though there are
certainly complex ways of doing this).

--------------------------------------------------------------------------------
f8f69c1b1c | advil | 2019-07-03 11:32:00 -0400

Start local tiles on the current display
Previously, it just started on display 0 regardless of where the focus
was, which is pretty annoying if you have a laptop+monitor setup. This
uses mouse location to find the current display, and opens the window
there. (N.b. this may differ from OS-specific means of finding the
"current" display, for example, Cocoa uses keyboard focus, not mouse
focus. But SDL doesn't seem to provide an interface to any of these
checks.)

This is tested and works on os x, but it would be useful to know before
a release if this works on windows/linux...

--------------------------------------------------------------------------------
4402b9e188 | advil | 2019-07-03 10:26:26 -0400

Improve zooming behavior (mainly for local tiles)
This commit makes two changes: it adds an option that lets you zoom the
dungeon view via a multiplier, rather than a number of pixels, and it
lets this zoom be adjusted in-game via CMD_ZOOM_IN and CMD_ZOOM_OUT
(previously only available for the small screen ui). The first change is
just because using pixel values is not the most intuitive thing for most
players (I've noticed), and is basically cosmetic if you already know
how to change the tile size.

In local tiles, these commands are bound to ctrl-'-' and ctrl-'='. I was
unable to find a good binding for these commands in webtiles, so they
are unbound (though they should work), but that's probably ok because
browser zoom already works ok in accomplishing a similar thing.

The zoom level is reset to its rc value on start and currently not
saved.

--------------------------------------------------------------------------------
6b2be6b8c7 | advil | 2019-07-02 10:44:07 -0400

Don't let `X.` show completely inaccessible travel targets
This fixes some aspects of 11771, though not the main issue reported
there (which is more of a UI issue than a bug per se). This commit, for
example, will prevent an off-level travel target from being shown in
abyss, because off-level travel doesn't work at all there.

--------------------------------------------------------------------------------
3510def36b | Seve Monahan | 2019-07-01 19:36:37 -0400

Fix a text bug. (#11665)
This fixes a text bug which occurred when a feared monster was hit by an
explosion from a wild magic card.

--------------------------------------------------------------------------------
e24419a6ad | advil | 2019-06-30 15:56:59 -0400

Use int32_t for a size check for string marshalling

--------------------------------------------------------------------------------
720adc72dc | advil | 2019-06-30 15:25:05 -0400

Save builder logs in save file for debug builds
This specifically requires DEBUG_DIAGNOSTICS, since it only makes sense
to enable if `dprf` is going to work. What this does is just store any
logging that happens during levelgen into a hashtable in you.props. For
a fully pregenerated build, this can increase the size of a save file by
about 300k, so it may be non-trivial, but it's only going to be enabled
in dev settings I think. If that bugs anyone it would certainly be
possible to make it more conditional.

This change is because scrutinizing these logs is stop 1 of fixing any
seed divergence, and this commit will make it a lot easier to get at
them, as well as deal with cases where the build logs are bigger than
the default log line limit.

--------------------------------------------------------------------------------
36f2fa8efd | advil | 2019-06-30 15:22:07 -0400

Let store classes save strings >32k
This is a bit of a hacky way to do this, in order to avoid any save
compat issues; it adds a save-only type, SV_STR_LONG that is normalized
to SV_STR once the store is loaded.

--------------------------------------------------------------------------------
225fefd530 | Alex Jurkiewicz | 2019-06-27 10:41:36 -0700

Mark some runed door vaults as no_tele_into (#1092)
Replace an empty square in one with $ to simplify the KPROP logic.
--------------------------------------------------------------------------------
fcb5e6da0e | advil | 2019-06-25 21:04:25 -0400

More specific documentation about des stability and tags
[skip ci]

--------------------------------------------------------------------------------
aec789570c | gammafunk | 2019-06-25 19:48:37 -0500

Clean up a condition

--------------------------------------------------------------------------------
09db7996fa | gammafunk | 2019-06-25 19:48:37 -0500

Sif Rework Part 5: Remove miscast protection
As a passive, the protection was hard for players to reason about, since
they had to know both a chance of successful protection based on
their piety as well as the kind of miscast effect they might face should
the protection fail. 100% protection was granted at 6*, but even then
there tended to be a quite narrow set of relevant spells where the
player might have some appreciable chance of successfully casting the
spell. Repeatedly casting a high fail rate spell until successful is
also tedious in terms of UI.

The new Divine Exegesis active is basically an active ability version
of miscast protection and provides access to more spells. Hence Sif no
longer needs the passive.

--------------------------------------------------------------------------------
e12f10fa2d | gammafunk | 2019-06-25 19:48:37 -0500

Sif Rework Part 4: Add a Divine Exegesis ability
Sif currently has one active that uses piety, Channel Energy, an ability
that becomes more about convenience than power as the game progresses
since players get access to a large MP pool. This commit adds a powerful
new active to help Sif be relevant at the middle and late portions of
the game and to help cement her role as the more active magical god
counterpart to the more passive Vehumet.

The Divine Exegesis ability allows casting any spell in the player's
library with 100% success and with a spell power bonus of 1.5 x
Invocations skill in addition to any spell-power coming from Int,
Spellcasting, and any training in the spell schools of the spell. Thus
players can cast a spell that normally has a 100% fail rate due to no or
little training in the relevant skills. Divine Exegesis is granted at 4*
and has a high piety cost of 12, meaning several uses of the ability is
likely to bring a player under 4*. The ability will be useful to a wide
variety of spell using characters, granting limited access to high level
spells that normally remain totally inaccessible behind high skill
requirements.

--------------------------------------------------------------------------------
0c6bcda037 | gammafunk | 2019-06-25 19:48:09 -0500

Sif Rework Part 3: Remove Divine Energy
As discussed in 3db0654b, Sif doesn't need two MP restoration abilities,
and Channel Energy, which is now granted at 1*, is the better design.

--------------------------------------------------------------------------------
3db0654b3e | gammafunk | 2019-06-25 19:36:34 -0500

Sif Rework Part 2: Grant some abilities earlier
Sif currently has two MP restoration abilities, Divine Energy granted at
1* and Channel Energy granted at 3*. Sif doesn't need two MP restoration
abilities, and Channel Energy works better in practice than Divine
Energy in terms of UI and in terms of effectiveness throughout the game.
Hence we'll remove Divine Energy in a subsequent commit and move Channel
Energy to 1*. Its piety cost remains the same.

This commit also moves Forget Spell to 3* piety, since we'll be adding
a new ability at 4*.

--------------------------------------------------------------------------------
26b8ecb3bf | gammafunk | 2019-06-25 19:27:57 -0500

Sif Rework Part 1: Piety on kills
Sif Muna has some major design issues that weren't resolved the last
time she was changed in version 0.19. This commit is the first in a
series to change Sif's piety gain, her MP-related abilities, and to add
a new high piety cost spell casting active ability.

Sif's biggest issue is piety gain. She receives some piety from kills
but also piety from training schools related to casting spells. The
latter system has never worked well in practice. Players starting with
spells want to train spell skills in order to get spells castable but
generally want to switch to defensive skills or other suitably
lower-cost skills afterwards. Sif currently tries to encourage training
spell skills past this point to get gifts, but players trying to survive
ignore this incentive for some time. The decision of whether to train
spell schools for gifts is thus not an interesting one, since the answer
is generally just to wait for them to happen naturally.

This commit gives Sif normal piety on kills. We lose a distinct piety
gain system, but her skill training system never worked well in either
the full or partial versions.

--------------------------------------------------------------------------------
263dff2034 | advil | 2019-06-25 17:29:32 -0400

Tweak the beast_lair_carwin fix
For vaults that call the `large` monster function unconditionally, let
the tags in the des cache be adjusted. This will keep the behavior of
randomization more like before the first fix.

--------------------------------------------------------------------------------
1dd085888c | advil | 2019-06-25 10:28:55 -0400

More des cache stability fixes
Aiming for completely reproducible des caches, at least relative to a
particular system.

--------------------------------------------------------------------------------
c0fab7842f | advil | 2019-06-25 10:03:50 -0400

Fix a des cache random tag issue
See f57072b2d696. I suspect this has been responsible for a whole bunch
of issues where beast_lair_carwin maps have been showing up.

--------------------------------------------------------------------------------
8f2d45b691 | advil | 2019-06-25 09:54:37 -0400

Sort tags_string() again
This is a regression from 80c1907ebbf6.

--------------------------------------------------------------------------------
e8da9206dc | advil | 2019-06-24 14:10:52 -0400

Fix lua sorting in f98416c20
...and demonstrate basic programming competence. (Though partial blame
goes to lua scoping.)

--------------------------------------------------------------------------------
87df7205b4 | Alex Jurkiewicz | 2019-06-22 22:58:16 +0100

Don't ignore torment damage for Jiyva jelly spawns (#1088)
And also Xom butterfly spawns.



This exception dates back to when Jiyva was first introduced (in

0.6.0-a0-258-g6d7627cb65).



It's an exception which isn't mentioned anywhere to the player and

probably unnecessary in terms of balance for both gods.
--------------------------------------------------------------------------------
d5110b030a | dplusplus | 2019-06-21 10:11:32 -0400

Add stop for Merfolk fake-mutation description

--------------------------------------------------------------------------------
f09efd6d0b | Alex Jurkiewicz | 2019-06-21 10:11:03 -0400

Guard against out of bounds array access

--------------------------------------------------------------------------------
80245de385 | advil | 2019-06-20 12:20:11 -0400

Better handling for single-char case swaps
This restores any locale-specific casing behavior for non-ascii
characters that might have been removed by bf76ec3.

--------------------------------------------------------------------------------
bf76ec32ab | advil | 2019-06-20 11:39:39 -0400

Don't let locale-specific casing affect ascii characters
If a locale changes the upper/lower case correspondents of an ascii
character, this would break many things. For example, as in #846, in
Turkish (tr_TR.utf8), the lowercase version of I is a dotless i (ı).
Since these case functions are used for all sorts of internal purposes
(e.g. producing filenames from capitalized tile names), crawl would
fail to even start. Though this issue only illustrated the first error,
this is the tip of the iceberg and nearly every use of lowercasing was
broken in this locale.

I think, ideally, we'd be using two different case swapping functions:
one for internal data (which is always ASCII) and one for UI-facing
strings (which may be in arbitrary UTF-8 encodings). However, when I
tried to adjust the API along these lines to fix Turkish, it turned out
that there is not a clean distinction in crawlcode between these two
uses and even stuff like the name functions which might be expected to
be UI-facing are used for internal purposes as well. Based on my
attempts, if this does come up for what little localization we have, it
would be better/safer to let the ASCII behavior be the default for ascii
characters and add in localized casing piecemeal.

This commit also adjusts various hotkeys, and I'm not sure what impact
this will have (it might be going too far); it could cause problems to
e.g. users on a Turkish keyboard.

--------------------------------------------------------------------------------
27f0392e16 | advil | 2019-06-18 11:18:45 -0400

Fix some obscure sequence points that can be builder-triggered
Noticed while auditing code, I don't know if this affects any actual
seeds.

--------------------------------------------------------------------------------
f98416c20e | advil | 2019-06-18 11:18:45 -0400

Don't use locale-sensitive string comparison for table.sort
This is leading to seed divergence on different systems depending on
locale, most immediately because some locales collate capital letters
with their lowercase versions, and some don't. Lua uses locale-sensitive
string comparisons unless you override it at build time, and it's not
practical to set the locale in a way that avoids this (or at least I
haven't managed). Capitalization isn't the only issue that could come up
here, either, and it isn't appropriate for internal data to be affected
by locale in this way (wtf lua), so this commit just exports c++ string
comparison and uses that instead, which should use lexicographic byte
ordering.

--------------------------------------------------------------------------------
6dd8730de2 | Chris Campbell | 2019-06-17 03:12:29 +0100

Update CREDITS.txt

--------------------------------------------------------------------------------
ec079b9e98 | Chris Campbell | 2019-06-17 03:12:29 +0100

Change some uniques to use they/them pronouns
Nessos, Xtahua, Fannar, Robin, Dissolution and Saint Roka now use "they", as
do the demon/pan lords that previously used "it". Some random Gozag shopkeepers
and the wizlab Cloud Mage/Hellbinder also use "they" instead of "it".

--------------------------------------------------------------------------------
f4a770e8ca | Chris Campbell | 2019-06-17 03:12:29 +0100

Add handling for non-ancestor monsters with they/them pronouns

--------------------------------------------------------------------------------
dba641b739 | Chris Campbell | 2019-06-17 03:12:29 +0100

Refactor Hepliaklqana ancester gender choice

--------------------------------------------------------------------------------
1ba1822a90 | Quinten Konyn | 2019-06-17 03:12:29 +0100

Add singular they pronouns for Hepliaklqana ancestors
Updates Hepliaklqana ancestors to use "they" instead of "it" when selecting
"neither" as their gender - implements handling for they/them pronouns and
correctly conjugates applicable messages.

[Squashed PR, added spacing fixes and rewrote commit message, closes #1080
- MarvinPA]

--------------------------------------------------------------------------------
d57e52fea8 | ufshaikh | 2019-06-14 19:50:42 +0100

Remove possible placement of blowgun from vault (#1087)
Should fix a bug where this vault places an item marked as removed.
--------------------------------------------------------------------------------
be6fa4f6cc | advil | 2019-06-13 16:36:15 -0400

Faster starts_with implementation
The previous implementation was really inefficient; this change is minor
in the scale of things (about 1% of a pregen run, or 200-300ms total)
but it's also a very easy fix.

--------------------------------------------------------------------------------
90a0943219 | advil | 2019-06-13 16:36:14 -0400

Cache the top three vault tags as bools
These tags account for >50% of the `has_tag` calls, which over the
course of a full pregeneration run really adds up -- this is nearly
5000000 calls for `has_tag`. This change shaves about 0.5s off a full
(non-optimized) pregen run.

This commit also adds some (disabled) profiling stuff for tags. For
reference here's the call count for the top 7 tags, everything lower
than this is <1%:

  208774 ( 2%): vaults_empty
  208774 ( 2%): vaults_room
  439758 ( 5%): layout
  550983 ( 6%): place_unique
 1150916 (14%): overwritable
 1243580 (15%): extra
 2554449 (31%): minivault
Total: 8144269

--------------------------------------------------------------------------------
80c1907ebb | advil | 2019-06-13 11:40:59 -0400

Use unordered_set for tags, instead of set
f1fd2d0243764f converted the tags API and internal representation from
pure strings (that got split every access) into set<string>s, to deal
with order issues that were leading to seed divergence. However, it
turns out that `has_tag` is called many, many more times than a sorted
tag list is ever needed, and since `set` usually uses something like a binary
tree internally, the costs of a search were substantially outweighing
any gains from storing the tags in a sorted form.

This commit converts to using unordered_set for better lookup time,
which cuts about 50% of the time spent checking for tags. On a fulldebug
build, this shaves at least 1s off a typical total pregen time. There is
probably more to be gained as even with this change, the `count` call in
has_tag is *still* about 1s total over a full pregen run. I've also
slightly clarified some function names in this API.

The cost of `get_tags` is negligable, about 1ms total.

--------------------------------------------------------------------------------
69c6a51588 | advil | 2019-06-13 09:45:21 -0400

Fix signed/unsigned comparison (gammafunk)

--------------------------------------------------------------------------------
4608c8fa30 | gammafunk | 2019-06-12 21:46:21 -0500

Use an existing item list for a vault
Use the existing lists we have for aux armour in the dgn lua lib, since
manually specifying these in vaults is error-prone.

--------------------------------------------------------------------------------
83a80d79a6 | gammafunk | 2019-06-12 21:45:19 -0500

Fix missing item result delimiters in some vaults

--------------------------------------------------------------------------------
19b5fbe486 | advil | 2019-06-12 19:09:11 -0400

Remove a redundant call
Or at least I think it's redundant; it's called by load_level already,
and I didn't spot any ill effects from removing it.

--------------------------------------------------------------------------------
cdd7612e18 | advil | 2019-06-12 18:27:12 -0400

Disable pattern matching against levelgen output
On a debug build, this was the heaviest single code path after
luaV_execute itself, and this output consists entirely of debug output
that should be hidden anyways. If someone had a use case for leaving
these enabled I can try to come up with other solutions, but right now
I'm not seeing anything crucial.

--------------------------------------------------------------------------------
d84787c25e | advil | 2019-06-12 17:52:37 -0400

Simplify has_tag somewhat
The vast majority of calls to this involved just a single tag. This gets
called a *lot* during levelgen, so it was slowing down a full pregen run
noticeably (as much as 10%). Even this change makes a big difference,
though it is still not extremely optimized. `has_tag` itself is still
not very fast because of the use of `set`.

--------------------------------------------------------------------------------
8bd77c7716 | advil | 2019-06-12 17:51:18 -0400

Remove debug code

--------------------------------------------------------------------------------
6870c0f642 | advil | 2019-06-12 14:08:02 -0400

Rewrite overflow vault selection code
The old version brute-force searched through every 2-3 god combination
among the gods selected for overflow vaults, with a somewhat indirect
and complicated stopping criteria (with a goto, even) and a call to
`find_maps_for_tag` for every combination it reached before the stopping
condition. This is a huge search space and even with the stopping
criteria it would still consider hundreds to thousands of combinations.
On the other hand there are less than 20 vaults *total* that this code
could even find.

This rewrite flips things, and searches through the temple_overflow_n
vaults themselves for compatible vaults rather than the space of god
combinations. It's *much* faster.

I expect this will change some seeds, since the order of rolls before
was determined by bitvector order, and this will be determined by vault
list order; also, where there are multiple vaults with the same god tags
the weight calculation is different in this implementation. However, in
my testing the results have been basically the same for most seeds. This
code probably is biased towards 2-altar vaults over 3-altar vaults as
is.

--------------------------------------------------------------------------------
9eff3895ba | advil | 2019-06-11 16:52:08 -0400

Optimize find_maps_for_tag somewhat
This gets about 10x speedup on overflow temple selection (on a
non-optimized build). It's still not great (since the overflow selection
code is pretty insane, could be as many as 300 calls to
find_maps_for_tag in my testing), but now according to my profiling the
bottleneck isn't the use of set<vector>, but rather the construction of
an iterator for each has_tag.

It's worth noting that 99% of the calls to map_def::has_tag in the
codebase have a single tag, and don't need this complexity. However, for
typical uses I didn't see any obvious gain from optimizing them.

--------------------------------------------------------------------------------
6863ae89ae | Chris Campbell | 2019-06-11 19:31:13 +0100

Don't allow Vehumet to extend lightning rod range (#12007)

--------------------------------------------------------------------------------
24607be9ce | dplusplus | 2019-06-10 19:45:48 -0400

Fix hint for item description
Commit 2b1cce4 introduced negated logic.

[Closes #1082]

--------------------------------------------------------------------------------
f7c4f17b88 | NormalPerson7 | 2019-06-10 19:41:34 -0400

Fix incorrect information in Aura of Brilliance description

--------------------------------------------------------------------------------
9fa23b7c36 | Ashley Raine | 2019-06-10 19:39:23 -0400

Removed barehanded attack prompt while in treeform

--------------------------------------------------------------------------------
1cce26a4d2 | Aidan Holm | 2019-06-09 15:27:51 +0800

Fix dispersal trap not appearing in help/search
The lookup-help system searches by feature name, and the stash tracker
menu builder adds feature tiles by matching against the feature
name. This misspelling caused dispersal traps to be absent from the
lookup-help system, and a black tile to be shown instead of the correct
tile in stash search. Other menus, such as the ctrl-x menu, weren't
affected.

--------------------------------------------------------------------------------
56ce5178b7 | Edgar Bering | 2019-06-07 20:14:29 -0400

Update default runrest stops for tweaked shaft messaging (vt)

--------------------------------------------------------------------------------
6d73c25c48 | advil | 2019-06-06 16:47:30 -0400

parens

--------------------------------------------------------------------------------
39a2186462 | Edgar Bering | 2019-06-06 15:55:20 -0400

Make the lajatang of Order's silver consistent
This is a buff to Order, giving it the same max(vorpal, silver)
as silver throwables. Order is rare, it's nice for its brand to
not be so niche in its targets.

--------------------------------------------------------------------------------
536fa38985 | Edgar Bering | 2019-06-06 15:51:58 -0400

Nerf silver throwables
Increasing the base damage by 30%, with throwing damage scaling,
and combined with penetration and silver bonus damage made silver
throwables overpowered (as feared in the initial commit).

This commit tones them down; silver throwables now get
max(vorpal bonus, silver bonus) bonus damage after the standard
base damage, making them more consistent with other brands.

--------------------------------------------------------------------------------
e138f7edaf | Edgar A. Bering IV | 2019-06-05 19:12:10 -0400

Update CREDITS

--------------------------------------------------------------------------------
4df2b1290f | advil | 2019-06-05 14:48:18 -0400

Fix the build

--------------------------------------------------------------------------------
b853c62f84 | advil | 2019-06-05 12:23:21 -0400

Seed explorer: more flexible depth args (ebering)
This doesn't accept a full depth spec, but does accept level or branch
names in short form. There's also now a parameter `-show` that allows
only showing some levels (you provide a list), though of course it still
has to generate everything before the shown levels. For example:

    util/fake_pty ./crawl -script seed_explorer.lua -seed random -count
10 -show Temple -cats features

--------------------------------------------------------------------------------
da47cbf8c3 | Ashley Raine | 2019-06-05 08:33:30 -0400

Add missing loading images to webtiles.

--------------------------------------------------------------------------------
cc1054c7ca | Chris Campbell | 2019-06-04 22:48:38 +0100

Checkwhite

--------------------------------------------------------------------------------
86e7e0583b | Chris Campbell | 2019-06-04 21:16:19 +0100

Update easy_eat_chunks documentation (#12004)

--------------------------------------------------------------------------------
1d664f1849 | Chris Campbell | 2019-06-04 21:16:19 +0100

Mention noise in wand of iceblast description (#11902)

--------------------------------------------------------------------------------
6016cb4fb2 | Chris Campbell | 2019-06-04 21:16:19 +0100

Remove a misleading god message (#11220)
Barachi being told "x welcomes you back!" when converting to a good god for the
first time was supposed to be a reference to the species having originally been
servants of the good gods, but is mostly more confusing than flavourful.

--------------------------------------------------------------------------------
d14802f61f | Chris Campbell | 2019-06-04 21:16:19 +0100

Cap Shroud of Golubria power at 50 (#12000)
Since it's only a level 2 spell and power just affects its duration rather than
effectiveness.

--------------------------------------------------------------------------------
f268315891 | advil | 2019-06-04 16:05:03 -0400

Clean up some outdated comments
and a few other misc fixes.

--------------------------------------------------------------------------------
581a069569 | advil | 2019-06-04 15:27:39 -0400

Don't let monster digging allow out-of-los casting (11945, 11969)
Since 5b187de83c, monsters that cast dig do so on a movement action (the
burrowing mechanism), not usually as a regular spell. In fact, I
couldn't get a monster to ever cast dig normally. Therefore, no monsters
ever need to cast dig out-of-los via the normal spell code, and they
definitely don't need to be able to cast arbitrary spells out-of-los if
they have dig.

I *think* that this is a pretty old bug, and only used to trigger under
fairly rare conditions; a cacodemon still couldn't cast energy beam
through a wall (though it would try). However, it would work through fog
as reported in 11945. What changed recently is that LRD no longer
destroys walls but is still area targeted, so that in some
configurations a caster could attack out of los:

>   #
>  @#2
> #

A LRD caster (e.g. a cacodemon) in this position could succesfully cast
LRD on the wall in the lower left, damaging the player, instead of
moving. In my testing a direct LRD cast, e.g. at the wall between the
player, would still cast but have no effect or messaging, so even this
case would still involve some monster wasted turns. Before the LRD
change I think the caster could cast LRD succesfully on this square,
destroying it in the process, so the setup conditions for the bug were
much less common.  Hence the recent reports of this bug.

--------------------------------------------------------------------------------
4219c681b9 | advil | 2019-06-04 14:39:11 -0400

Don't place needle traps for TRAP_RANDOM (11991 / Yermak)
Possibly the result of an over-eager search & replace.

--------------------------------------------------------------------------------
86696efbda | advil | 2019-06-04 12:52:56 -0400

Add a bit more about how to run the seed explorer in comments

--------------------------------------------------------------------------------
0a26ff3fdf | advil | 2019-06-04 10:40:10 -0400

Add shop items to seed explorer
This commit also changes &y and &Y to fully (un)identify items in shops;
before they only dealt with items that are identified by type.

--------------------------------------------------------------------------------
4edc0ab2af | Edgar A. Bering IV | 2019-06-04 09:02:12 -0400

Revise Exsanguinate's description (Yermak)

--------------------------------------------------------------------------------
73b976d855 | Edgar A. Bering IV | 2019-06-03 22:22:31 -0400

New Vampire ability icons (CanOfWorms)
[Closes #1043]

--------------------------------------------------------------------------------
2bae87b6a2 | Edgar A. Bering IV | 2019-06-03 22:22:18 -0400

Update the manual for Vampires
Remove references to blood bottling and blood consumption.

--------------------------------------------------------------------------------
301a641611 | Edgar A. Bering IV | 2019-06-03 22:22:18 -0400

Increase costs for Vampire abilities
Bat Form is really strong, in part because of its spamability and low MP
cost. To rein it in, this commit adds a random stat drain of
2+binomial(5, 1/2) to the form.  The choice of stat drain over skill
drain is largely borne of a desire to avoid more uses of Drain. A
secondary reason for the choice is that mutating the undead causes stat
damage, so this is a flavourful choice.

To make the choice of Vampire form strategic, instead of costly in
tactical situations but otherwise trivial, revivification gives one
level of temporary frail. This dovetails nicely with bloodless being
frail---the frailty of undeath lingers.

Exsanguination keeps its delay cost, but doesn't gain any other costs.
The cost is paid only to reverse the process.

--------------------------------------------------------------------------------
7fb00627a5 | Edgar A. Bering IV | 2019-06-03 22:22:18 -0400

Give bloodless vampires the ability to regenerate, and frail
Having Bloodless vampires not regenerate at all created either a tedium
headache for the player or a technical headache automating the switch.
After some testing and discussion it's clear that a better approach will
be to inhibit regen for bloodless vampires when monsters are in LOS,
coupled with some strategic costs for switching form.

Bloodless is significantly stronger than Alive, outside of a few niches
it is almost always advantageous to be bloodless. To balance out the two
states, this commit makes bloodless Vampires frail, adding a -20% HP
that stacks with mutations.

A Vampire now must trade between a weaker form with lower regen but
undead resists and bat form access, and a stronger form with fast regen
and alive transmutations.

The choice of frail over other possible downsides for bloodless was
informed by a desire to not further overlap Vp with other undead.

--------------------------------------------------------------------------------
8336dd52f4 | Edgar A. Bering IV | 2019-06-03 22:22:18 -0400

Boolean vampire undead state
Part 3 of a vampire revision.

Add a new player variable to track whether a vampire is alive or
bloodless. Use this in place of the non-functional hunger checks.

Vampires now transition between Alive and Bloodless via abilities,
Exsanguinate and Revivify. These are interruptable delays of length 5,
with no MP cost, to make them tactically difficult to use.

The abilities are implemented separately so that Exsanguinate can
splatter some blood; it might also be desirable to allow Revivify to be
done without a delay if a corpse is available.

Changing blood state ends the active transformation. There is a check
for exsanguinate and revivify to prevent their use in places where the
resulting untransform would be lethal to the player.

There are several places where undead holiness is checked because this
is provided for all actors, but for players the effect takes into
account vampire undead state; Vampires are always MH_EVIL.

--------------------------------------------------------------------------------
3edcaf6869 | Edgar A. Bering IV | 2019-06-03 22:22:18 -0400

Remove potions of blood
These are no longer needed, as vampires do not drink blood in bottles
anymore.

--------------------------------------------------------------------------------
b5eab8406d | Edgar A. Bering IV | 2019-06-03 22:22:18 -0400

Remove blood bottling and blood drinking
Part 2 of a vampire revision. This commit makes vampires foodless (but
not drinkless) which has the appropriate effect on Gozag.
Blood bottling and blood specific code are removed, as is the
nutrition gain from melee attacks. This decouples vampires from the
food system.

[Committer's note: includes a fixup from gammafunk]

--------------------------------------------------------------------------------
54394cd99f | Edgar A. Bering IV | 2019-06-03 22:22:18 -0400

Reduce vampires to two blood states
Part 1 of a vampire revision. Vampire's mix of "togglable undead" with
"food micromanagement" left a fun concept in an obnoxious place. The
presence/absence of blood allowed the player to (tediously) remain in
the hunger state of their choice almost all of the time. Since the extremes of
the spectrum provided the most impact on playstyle, players tended to
focus on one or the other.

This commit simplifies vampires to the two extreme states: Alive and
Bloodless. The next commits will decouple vampire state from the food
clock, replacing state change with a delay, and removing blood drinking
and blood potions.

--------------------------------------------------------------------------------
65887bbefe | advil | 2019-06-03 22:12:35 -0400

More seed explorer command line options
* add some shortcuts for looking at multiple seeds
* let categories be specified from the command line
* a few special subcases for items and monsters

For example, to look at all artefacts on the ground or held by monsters in seed 
1, you can now do:
    util/fake_pty ./crawl -script seed_explorer.lua -seed 1 -cats monsters 
items -mon-items -artefacts

(caveat, shops are still not implemented)

--------------------------------------------------------------------------------
b57f36d6e0 | advil | 2019-06-03 15:12:46 -0400

Actually commit the new seed explorer script...
Partial repeat of the commit message from d7d9f274c4ec:

Pretty basic right now, but you can run it with e.g.:

    util/fake_pty ./crawl -script seed_explorer.lua -seed 1

Supports multiple seeds, which can be random, and lets you pick the
depth. In the future I will add more customization to what exactly is
shown.

--------------------------------------------------------------------------------
d7d9f274c4 | advil | 2019-06-03 15:08:39 -0400

Add a script interface to the seed explorer
Pretty basic right now, but you can run it with e.g.:

    util/fake_pty ./crawl -script seed_explorer.lua -seed 1

Supports multiple seeds, which can be random, and lets you pick the
depth. In the future I will add more customization to what exactly is
shown.

This commit also fixes a bug where scripts got doubled command line
arguments, and changes script behavior so that crawl only outputs what
the script does. (Also a few small cosmetic things.)

--------------------------------------------------------------------------------
6ad002bb79 | advil | 2019-06-03 13:34:30 -0400

Refactor the vault catalog test to use seed explorer code
The comparison part is still specialized (and maybe could be generalized
too) but otherwise the code for building the vault catalog is
essentially the same as seed explorer code.

--------------------------------------------------------------------------------
8afd68e611 | advil | 2019-06-03 13:34:30 -0400

Refactor the seed explorer to do only one dungeon pass
instead of iterating through the dungeon for each category. This turns
out to only get a negligable speedup (about 2s for a pass through the
entire generation depth) but the code is still probably cleaner this
way.

--------------------------------------------------------------------------------
4b3246705c | advil | 2019-06-03 13:34:30 -0400

Refactor the seed explorer code into a module in dat/dlua
Some minor cosmetic changes to the output while doing this, as well as
some code cleanup, but the behavior shouldn't be majorly changed.

--------------------------------------------------------------------------------
2b49f6db23 | Edgar Bering | 2019-06-03 13:26:07 -0400

Fix another arena crash
Closely related to the crash fixed in 39439d866, check for arena state before
dispatching a behavior event.

--------------------------------------------------------------------------------
8e8615713e | Edgar Bering | 2019-06-03 11:49:24 -0400

Don't target chain spell arcs through actors (12003)
In the target selection loop in cast_chain_spell, no check was made to ensure
that the arc from source to target was not obstructed by an actor. As a result,
the special-cased treatment of the caster was ignored occasionally. By tracing
the ray for each potential target and checking for obstructions this problem is
avoided.

--------------------------------------------------------------------------------
637bb3806f | advil | 2019-06-02 18:48:05 -0400

Add dungeon features to the seed explorer

--------------------------------------------------------------------------------
7ade4d1b3c | Edgar Bering | 2019-06-02 16:36:15 -0400

Add a penance prompt for potion quaffing (12001)
Prompt when a player attempts to quaff a known god-hated potion.

--------------------------------------------------------------------------------
c0b1d33993 | Edgar Bering | 2019-06-02 16:13:52 -0400

Add more teleport traps to grunt_tough_drop (11997)
Now that teleport traps don't trigger out of LOS, this vault was not working
properly. By adding teleport traps that give monsters room to move in the two
hallways, a player passing through the hall will still cause the monsters to
step on a permanent teleport trap.

--------------------------------------------------------------------------------
94936e539c | Chris Campbell | 2019-05-31 19:10:01 +0100

Fix ?amnesia reversed logic (#11998)

--------------------------------------------------------------------------------
ee2287cf43 | Chris Campbell | 2019-05-30 20:45:54 +0100

Update WJC powers description (#11994)

--------------------------------------------------------------------------------
c54ef59892 | Chris Campbell | 2019-05-30 20:45:54 +0100

Remove an obsolete Donald line (#11994)

--------------------------------------------------------------------------------
4de66ed42b | advil | 2019-05-30 09:00:24 -0400

Properly reset tags on vaults rooms
The initial tag change here was persisting on vault definitions until
the next time crawl restarted, leading to seed instability in some
cases. In the seed this came up in, serial_ice_m placed in D and
mirrored horizontally. This vault is tagged with vaults_empty, and on
vaults 4 was getting the no_hmirror tag (among others) even though it
didn't ultimately place, and this was sticking around to any future
games in the same crawl session that tried to place serial_ice_m,
leading to the seed diverging after that point.  (The more obvious
divergence from the failure to hmirror in this seed came much later in
_prepare_water, because the deep water positions in the map were
affected by whether this vault mirrored or not.)

--------------------------------------------------------------------------------
3ea9d24d98 | advil | 2019-05-30 08:57:35 -0400

Fix some missed random call sequencing
resolve_range is just a wrapper on a random call, and so these calls
need sequence points to be stable across compilers. (See cdddf7c89e9)

--------------------------------------------------------------------------------
39439d866b | Edgar A. Bering IV | 2019-05-29 22:00:19 -0400

Fix an arena crash
behavior_event only makes sense in non-arena mode, but was being called
whenever an eldritch tentacle timed out

--------------------------------------------------------------------------------
9fa3ae0aaa | NormalPerson7 | 2019-05-29 21:37:44 -0400

Mention draining gaze's healing effect
Draining gaze heals ghost moths and eyes of draining for the amount of
MP drained by the gaze. This commit adds a note to this effect to the
draining gaze spell description.

Note: orange crystal statues also cast this spell, but they don't get
healed from it because they cannot regenerate HP.

--------------------------------------------------------------------------------
4cc88bcadc | NormalPerson7 | 2019-05-29 21:37:19 -0400

Update vine stalker description (11979)

--------------------------------------------------------------------------------
78e9d4e317 | Alan Malloy | 2019-05-29 10:24:37 -0700

Make Tomb stop printing warnings when in debug mode
It was placing 3 exit stairs on purpose and relying on the dungeon builder
to trim them down to 1 branch exit. Instead, it now places just one.

--------------------------------------------------------------------------------
78adf7823c | Alan Malloy | 2019-05-29 09:57:10 -0700

Remove unused variables in random_picker::probability_at

--------------------------------------------------------------------------------
0e0cebd0f3 | advil | 2019-05-27 19:18:38 -0400

Have fake_pty respond better to SIGINT and SIGTERM
...by killing the subprocess. The point of this is to allow ctrl-c at
the command line to work. This is pretty hacky but it's better than
nothing. If someone has any idea why SIGHUP won't work, let me know.

--------------------------------------------------------------------------------
1748d93fb5 | advil | 2019-05-27 18:48:55 -0400

Support random seeds only in seed explorer (alexjurkiewicz)

--------------------------------------------------------------------------------
c1c896e988 | advil | 2019-05-27 13:24:17 -0400

Seed explorer improvements
* Estimate OODness based on probability of generation at the relevant
  depth. There's also currently disabled code for indicating builder OOD
  rolls, which I found to be less useful. The supporting lua calls are
  available for player use in moninfo objects.
* Highlight "non-native" monsters, basically things placed by a vault
  that don't usually show up in the branch.
* Handle dancing weapons better.

--------------------------------------------------------------------------------
a4d96b6e6e | Brendan Hickey | 2019-05-26 12:35:04 -0400

Checkwhite fix

--------------------------------------------------------------------------------
b5a06e84e3 | Brendan Hickey | 2019-05-26 10:42:38 -0400

Fixup vampiric brand messages to remove hunger references.

--------------------------------------------------------------------------------
c4ac1b27a8 | Brendan Hickey | 2019-05-26 10:37:12 -0400

Don't prompt when unwielding vampiric weapons.

--------------------------------------------------------------------------------
0f23e7d634 | Brendan Hickey | 2019-05-26 08:55:53 -0400

Remove vampiric brand hunger cost.
About ten years ago the vampiric brand increased your hunger clock. This
led to tedious weapon swapping. We replaced it with an onwield hunger
cost to relieve this obnoxious chore while maintaining a thematically
appropriate cost for using a powerful brand. With crawl moving away from
hunger as a forward progress clock there isn't a good reason to leave
this in place.

--------------------------------------------------------------------------------
57161393b2 | advil | 2019-05-25 16:18:03 -0400

Some cosmetic fixes for the seed explorer

--------------------------------------------------------------------------------
0dde086dc9 | advil | 2019-05-25 15:37:32 -0400

Add a basic lua seed explorer
This prints out information about vaults, monsters, and items so far; it
is packaged as a test that prints these for the first 5 seeds (replacing
a less interesting test), but is fairly configurable if you're willing
to edit the lua. To run it directly, you'll need to use util/fake_pty
(which may need to be built), e.g.:

    util/fake_pty ./crawl -test seed_explorer.lua

This also introduces a few lua support things that were missing that
might be of general interest, especially monster inventory (which is
easy now that all monster items are id'd).

--------------------------------------------------------------------------------
bc69b92bc9 | NormalPerson7 | 2019-05-25 20:23:40 +0100

Don't allow players to stop monster monstrous menagerie with OTR (11990) (#1073)
The code for monsters casting monstrous menagerie uses the same code

path as for players, which means an extra check that the caster is the

player is required before asking the player whether they want to cancel

the spell.
--------------------------------------------------------------------------------
53aee78b01 | Edgar A. Bering IV | 2019-05-24 14:13:09 -0400

Remove vestigal references to needles (11986)

--------------------------------------------------------------------------------
793c10c1f6 | advil | 2019-05-24 11:30:38 -0400

Better messaging when hep ancestor gets lost in abyss (11973)
Addresses something mentioned in 11973: On abyss teleport (and some
other cases that I don't fully understand; this happens sometimes but
not often on abyss area shifts as well) the ancestor gets banished for a
short period of time, but there was no messaging for this. In other
cases the ancestor gets put into transit and there's also no messaging
for this case; the only difference was that for the former recall isn't
available.  This commit ensures messaging if the banish case happens,
and no messaging otherwise. This does the messaging at a relatively
low-level point, so it could be that there will be cases of double
messaging (but I have not found them in my testing).

N.b. I'm not actually sure it makes gameplay sense to banish the
ancestor on abyss teleport or even sure if this is intentional, so it
might be worth trying to put the ancestor in transit for that case too.
But it does fit with the randomness flavor of the abyss, I guess. But
even with that change this lower-level code might still be triggered in
complicated circumstances, and the ancestor really shouldn't ever be
banished without messaging.

--------------------------------------------------------------------------------
0de8e755f4 | advil | 2019-05-24 11:22:44 -0400

Test a theory about hep abyss crashes
This is a conceivable way for hep ancestor items to get copied to the
grid, if somehow the ancestor becomes invalid before this call but
cleanup of the ancestor hasn't happened yet (since held_by_monster will
return false if the monster that was holding the item isn't valid). If
it trips, this ASSERT will give a more direct line on what the setup
conditions for this situation might be, which I still don't understand.

--------------------------------------------------------------------------------
be4061de67 | advil | 2019-05-23 17:17:56 -0400

Fix another abyss gozag gold detection case

--------------------------------------------------------------------------------
4488db6de0 | advil | 2019-05-23 16:27:19 -0400

Clean up and improve gozag gold detection
This consolidates a bunch of gozag code and removes an ASSERT that I
think was over-eager, firing when update_item_at doesn't lead to a gold
pile in the stash tracker. There had previously been two versions of
this code, and only one had the check, but it doesn't seem so obvious to
me that update_item_at should really be expected to make any arbitrary
gold pile visible in the stash.

This commit also makes gold detection work in the abyss beyond the
initial levelgen.

--------------------------------------------------------------------------------
ff863c23c4 | advil | 2019-05-23 10:39:30 -0400

Don't crash on gozag + gold in grunt_nemelex_the_gamble
Unobtainable items don't appear in the stash tracker, and calls that try
to add them to it silently fail.  The only remaining "unobtainable"
items are in grunt_nemelex_the_gamble; these are marked unobtainable so
that if the player rolls the peril room they don't show up in the stash
tracker. However, Gozag's gold detection code didn't take this flag into
account, triggering an ASSERT on the expectation that any gold generated
at all would be trackable.

This isn't the most elegant solution, but it fixes the crash. I think
what would be better is for (i) "unobtainable" to be removed, since it
appears to have been deprecated for everything except this vault some
time ago, and (ii) for this vault to do something like destroy the items
if the player lands in the peril room.

--------------------------------------------------------------------------------
1cdb867ce8 | cut1less | 2019-05-23 10:18:09 -0400

Don't fully describe unthrowable missiles

--------------------------------------------------------------------------------
4011b8c8ab | cut1less | 2019-05-23 10:18:09 -0400

Simplify missile description cases
Previously, descriptions for projectiles were based largely around
whether they had a damage value associated with them, under the logic
that "inherent missile damage => throwable missile". This made life easy
in dealing with the old needles and with regular launcher missiles.

However, it led to:
* the sling bullet description having lots of throwing information
  (despite sling bullets not being throwable) and
* the throwing net description lacking the fact that a net's delay is
  lowered with Throwing skill

With the changes to throwing missiles, we can now just focus on
throwable-ness to fix these issues and more.

--------------------------------------------------------------------------------
5b3daab8ba | Edgar A. Bering IV | 2019-05-22 21:45:50 -0400

Don't place traps under vault placed items and monsters (11983)
Randomly placed monsters and items do not place on traps, however the
dungeon builder was placing random traps under vault placed items and
monsters occasionally. This led to runes on dispersal traps as the worst
outcome, but the asymmetry was occasionally noticed for other trap types
too. Vaults that wish to have monsters or items start on a trapped grid
will need to request this explicitly.

--------------------------------------------------------------------------------
b8b2abe488 | Alan Malloy | 2019-05-22 17:10:14 -0700

Make it harder to accidentally waste ?amnesia (Jarrodb, #11985)

--------------------------------------------------------------------------------
4006481e62 | Alan Malloy | 2019-05-22 17:10:14 -0700

Simplify item weights

--------------------------------------------------------------------------------
1a3e1d35ff | Alex Jurkiewicz | 2019-05-21 18:21:40 -0400

Remove vestigial duplicate wrath timer

--------------------------------------------------------------------------------
e062c78e24 | Edgar A. Bering IV | 2019-05-21 16:31:06 -0400

Remove mentions to obsolete items from options_guide.txt

--------------------------------------------------------------------------------
4452427412 | Chris Campbell | 2019-05-21 21:28:34 +0100

Allow holy wrath weapons to be cursed
It was an almost invisible piece of flavour, since no external sources of
cursing still exist other than initial generation, and it resulted in them
being unable to be cursed under Ashenzari without any feedback as to why.

--------------------------------------------------------------------------------
13fca185ac | NormalPerson7 | 2019-05-21 16:11:41 -0400

Fix a default note_messages

--------------------------------------------------------------------------------
48f6bceb67 | NormalPerson7 | 2019-05-21 16:11:41 -0400

Fix a default force_more_message
This was broken by the shaft message change in 52ca42d.
--------------------------------------------------------------------------------
ad4687c37d | Edgar A. Bering IV | 2019-05-20 09:54:54 -0400

Replace a missing word

--------------------------------------------------------------------------------
52ca42d3ec | Alex Jurkiewicz | 2019-05-19 22:59:41 -0400

Improve shaft messaging
Always print the number of floors, so the message is consistent between falling 
one or multiple levels.
--------------------------------------------------------------------------------
6f6d0e6ea3 | Doesnt | 2019-05-19 22:42:58 -0400

Fix Avatar Song displayed success rate

--------------------------------------------------------------------------------
442a7a25c4 | Joshua Gelbard | 2019-05-19 20:40:20 -0400

Add misc. evocables section to known items menu
Steal the space on the '\' menu formerly taken up by known spellbooks
and give it to misc. evocables (previously grouped under "Other").

Now that the spell library exists, a list of your already-recognized
books is pretty useless. Individual switches for evocables like lamps
of fire will make much better use of that space.

"Unknown items mode" is untouched -- evocables still won't appear
there, and unknown spellbooks will still get their own category.

Issues: check_item_knowledge() has received patchwork additions over
the years and is creaking with duplicated code. This commit doesn't
help, but it doesn't make it that much worse -- there were already four
seprately-treated vectors of item_def pointers; now there are five. (My
first attempt at making this change started with a refactor, but the
result wasn't enough of an improvement to justify the diff, so I've gone
with the polar opposite and followed the existing pattern exactly.)

[Closes #1025]

--------------------------------------------------------------------------------
faf41a374d | Joshua Gelbard | 2019-05-19 20:23:57 -0400

Let players disable autopickup from the drop menu
Add a new "drop-and-disable-autopickup" mode for the drop menu, toggled
with '\'. Items selected in this mode are marked with a '*' instead of a
'+' and have their autopickup disabled when the menu is exited.

This turns "drop unwanted item; disable autopickup for unwanted item"
from a two-menu operation into a one-menu operation and makes the
most vital bit of the '\' menu available in a more convenient
location.

InvEntry and SelItem each get a new field to record whether they're
selected "normally" or in this new special way, and InvMenu gets a
field recording which selection mode it's in.  InvMenu now overrides
::pre_process() and ::select_item_index() to handle the new mode.

Also, assorted cleanup/bugfixes:
* Fix '_' on the drop prompt not actually bringing up the help menu.
* _invent_select can't return PROMPT_GOT_SPECIAL, so don't check for it.
* Replace anonymous you.force_autopickup ints with an enum
* Add helper functions for easier access to you.force_autopickup
* Demystify magic -1 to OSEL_ANY in a few places
* Remove unused define PROMPT_INAPPROPRIATE

--------------------------------------------------------------------------------
97e3104241 | Joshua Gelbard | 2019-05-19 20:12:24 -0400

Fix '+' and '-' not being PGDN and PGUP as claimed
Previously, menus using the default more prompt all claimed that
'+' was pagedown and '-' was pageup, which was mostly false. This commit
changes that to be mostly true and alters the prompt where it's not.

On the drop, pickup, quiver, item knowledge, and wield menus, '-' has
some other meaning, so those are the ones where '-' isn't listed as a
usable pageup. '+' as pagedown should work everywhere.

[Closes #1013]

--------------------------------------------------------------------------------
fcedfb35f7 | Joshua Gelbard | 2019-05-19 19:37:41 -0400

Add a menu shortcut to select last unequipped item
In equipment-related menus and prompts, make ';' (semicolon) an alias
for the letter of the player's most recently unequipped item. The goal
of this change is to reduce the amount of time the player spends
scanning through menus to remember which item is where. Examples:

* Wear-IDing a good cloak ('f') and dropping your old one: Wfd;<Enter>
* Wear-IDing a bad cloak ('f') and re-equipping the old: WfW;d;<Enter>
* Swapping to a utility ring ('g') for a certain enemy, then going back
to your usual ring: Pg<P;<

In those examples, we saved a little mental effort by not having to keep
track of the location in inventory of the old cloak and ring.

Notes/possible issues:

The semicolon key is losing existing, though undocumented, behavior as
one of several ways send a page-up key (besides '<', PGUP itself, and
inconsistently '-').

The fact that this alias is usable on the (d)rop menu is documented both
in crawl_manual.txt and on the d_ help screen, but for i, w, W, and P
it's manual-only. (Those other help screens don't yet exist.)

--------------------------------------------------------------------------------
06ca16af6c | Chris Campbell | 2019-05-17 20:51:56 +0100

Fix spacing in a quote

--------------------------------------------------------------------------------
5a7c77285f | Chris Campbell | 2019-05-17 16:44:15 +0100

Don't generate randart rings with rCorr and *Corrode
Also fixes their descriptions missing information on the rCorr base type.

--------------------------------------------------------------------------------
864f2b5d03 | Josh Braden | 2019-05-16 16:17:55 -0400

Stop constriction when Bai Suzhen transforms into a dragon (11954)

--------------------------------------------------------------------------------
49c61e0142 | Josh Braden | 2019-05-16 16:17:55 -0400

Check and clear emergency flight if transforming into something that can fly 
(11965)

--------------------------------------------------------------------------------
ea32a606ab | Josh Braden | 2019-05-16 16:17:55 -0400

Don't place a wall if a monster is in the way (11967)
Noticed in bug 11967, monsters are able to exist in walls if a floor is turned 
into a wall via dungeon_terrain_changed()
Done in two parts:
1. Make _dgn_check_terrain_monsters return bool if a monster is present
2. Don't continue with wall placement if a monster is present

--------------------------------------------------------------------------------
6e2f17f9f6 | NormalPerson7 | 2019-05-16 15:21:57 -0400

Trigger ally conducts on casting Olgreb's Toxic Radiance
Firstly, reduce the duration of the Toxic status by 1 turn and have OTR
poison monsters on the turn it is cast, rather than starting the turn
after it is cast. This means calling toxic_radiance_effect in the
cast_toxic_radiance function. This keeps the damage from Olgreb's the
same, and reduces the delay in dealing the damage by 1 turn.

Secondly, with the help of this new call to toxic_radiance_effect,
trigger ally conducts on casting Olgreb's Toxic Radiance when there are
allies without rPois in line of sight, but don't trigger conducts when
allies are hurt by the Toxic status on subsequent turns.

This fixes the previously inaccurate penance warning on casting OTR with
allies around (this penance warning is now correct), and prevents OTR
being used to turn allies hostile on demand without penance with gods
that give ally penance. This also prevents the player being placed under
penance inadvertently through no/little fault of their own when allies
walk into line of sight at the wrong time.

For consistency's sake, this also means that, should the player summon
non-rPois allies during OTR, the player won't receive penance. I don't
think this is a problem, because the ally will still turn hostile and
there is now a warning about summoning non-rPois monsters, so doing so
would be ill-advised anyway.

[Closes #999]

--------------------------------------------------------------------------------
0b8c503fbf | NormalPerson7 | 2019-05-16 15:21:56 -0400

Add a warning for summoning/enslaving monsters under OTR (11181, 11913)
Add a prompt when casting a summoning spell that can create monsters
that do not resist poison while under the Toxic status, and use this
prompt for all summoning spells with the potential to create non-rPois
monsters, as well as when enslaving non-rPois monsters. Note that this
is never a penance prompt; a subsequent commit will make it so that
Olgreb's Toxic Radiance triggers ally conducts when cast but not on
subsequent turns (to avoid inadvertent penance).

This commit also prevents Beogh from gifting orcs while OTR is active,
which would cause the orcs to become hostile immediately (but not cause
penance).

--------------------------------------------------------------------------------
55afeb9187 | Umer Shaikh | 2019-05-16 14:47:28 -0400

Minor cleanup in stash search help screen
Adjust some long lines, remove reference to an obsolete feature, change
the example trap to a more currently relevant type of trap.

[Closes #1051]

--------------------------------------------------------------------------------
c6a89e5090 | Umer Shaikh | 2019-05-16 14:47:28 -0400

Allow stash search deduplication to do its magic for features
This commit allows trap features to be collapsed in the stash search
results screen, as is the case for items. The commit should make it easy
to extend that capability to other feature types, if it's decided that
more features should be exposed to stash search.

--------------------------------------------------------------------------------
319a8a02d9 | Umer Shaikh | 2019-05-16 14:47:28 -0400

Make stash searching for a place abbreviation pull up features
Prior to this change, searching stashes with the search term '.' while
on D:2 and searching for 'D:2' while on D:2 had different results. This
was because the search term was matched against a location prefix for
items but not for features.

According to the search help screen the search term '.' should list
everything on the current level, so I conclude the difference here is
unintentional.

--------------------------------------------------------------------------------
8f53b652b2 | Umer Shaikh | 2019-05-16 14:47:28 -0400

Add data about object matched to stash search result

--------------------------------------------------------------------------------
7b9fd84576 | Umer Shaikh | 2019-05-16 14:47:28 -0400

Detach matching features in stash search from items on feature
Prior to this change, this line meant that if you had a findable
feature (e.g., a portal entrance) you would only see it in a stash
search if you weren't also matching any of the items on top of it. I
don't see why the player would reasonably expect this behaviour.

--------------------------------------------------------------------------------
98db4a99af | Umer Shaikh | 2019-05-16 14:47:28 -0400

Make StashTrack pay attention to traps
When updating stashes in LOS, take traps seriously enough as a feature
to add a stash for them.

Something like this may have been already intended, since stashes have a
trap field that is supposed to be set to a non-trivial value in
Stash::update. This part of the code wasn't reached since
is_boring_feature(feat) is false when feat is a trap. (See also commits
23c5277317de657f8376d1b5f33144948a811a42 and
cbc0dd1c0e73770878e9a6df1b455e57995ef921.)

This change has traps added to the stash tracker as the player comes
upon them. Unfortunately players of ongoing games will not be able to
search for traps they have encountered that are no longer in LOS.

--------------------------------------------------------------------------------
c2ce88318c | Umer Shaikh | 2019-05-16 14:47:28 -0400

Minor style cleanup
Fix some typos, break some long lines, and adjust some indentation.

--------------------------------------------------------------------------------
3e705edc11 | Edgar A. Bering IV | 2019-05-16 14:45:57 -0400

Fix the build

--------------------------------------------------------------------------------
b207fdf2b9 | Edgar A. Bering IV | 2019-05-16 14:11:06 -0400

Always trigger net traps when a player steps on them
Previously nets triggered on a one-chance-in-three like webs, but not
symmetric with monsters interaction with net traps. The chance annoyed
players attempting to disarm net traps and didn't otherwise contribute
much.  Making them always trigger is more consistent, less frustrating
behavior.

--------------------------------------------------------------------------------
827b87abe5 | advil | 2019-05-16 10:56:57 -0400

Better handle webtiles messaging on game_exit::abort
Some messaging on certain rare abort cases wasn't showing up in
webtiles; most of these in practice only happen in offline settings.

--------------------------------------------------------------------------------
99e5aa4d39 | advil | 2019-05-16 10:38:24 -0400

Clean up some exit reason handling (alexjurkiewicz)
Always send a tiles "cancel" message on game_exit::abort -- before, this
was done manually on each game_ended call, and the seed menu was missing
it.

--------------------------------------------------------------------------------
5cb8de4b22 | advil | 2019-05-15 16:41:33 -0400

Don't send invalid json to spectators when a popup is open (#1065)
This prevents a trailing comma for the ui stack, which is not valid json
(though it is valid javascript). Not sure if this had a practical impact
on the main browsers in use, but there are definitely parsers that care,
so this might matter for bots.

Resolves #1065

--------------------------------------------------------------------------------
cf8e976b8c | Chris Campbell | 2019-05-15 20:10:48 +0100

Fix more capitalisation (NP7)

--------------------------------------------------------------------------------
49f49b0b75 | Chris Campbell | 2019-05-15 19:07:03 +0100

Re-brace

--------------------------------------------------------------------------------
9a7f692d68 | Chris Campbell | 2019-05-15 19:07:03 +0100

Use consistent capitalisation for DDoor messages

--------------------------------------------------------------------------------
4517bf713c | Chris Campbell | 2019-05-15 19:07:02 +0100

Don't change max HP during DDoor (#11933, #11976)
Changed in 1406302de, which broke DDoor's interaction with Revivification and
HP-costing abilities.

--------------------------------------------------------------------------------
16217b4a02 | Edgar Bering | 2019-05-14 13:08:17 -0400

Display dart delay and base damage (Yermak)

--------------------------------------------------------------------------------
6b9ea3dd3d | Doesnt | 2019-05-14 13:07:06 -0400

Let draconian scorchers and Azrael call down damnation when not at low hp

--------------------------------------------------------------------------------
89f717de53 | Edgar Bering | 2019-05-14 11:48:39 -0400

Update javelin description (Yermak)

--------------------------------------------------------------------------------
1095bcad4c | advil | 2019-05-13 13:11:12 -0400

Clear mon_acting on _reset_game (11971)
If the player is killed at the same time as other monsters under certain
conditions (I replicated it with inner flame), mon_acting would not get
cleaned up. This could lead to a crash when starting a new game without
exiting the program, as long as a monster would spawn in los.

--------------------------------------------------------------------------------
e86a0cf1eb | advil | 2019-05-13 10:28:00 -0400

Prevent deep water teleport closets in swamp (9880)
This was recently reported here:
   
https://www.reddit.com/r/dcss/comments/bn20bv/ive_never_seen_this_before_is_it_n
ormal_to_have/

and thanks to seeding I was able to reliably replicate this bug from the
morgue posted in that thread. I'll upload a save file to 9880 for
posterity. (I'm assuming that 9880/11519 is the same bug and that
players will tend not to notice/report these cases unless there's a
monster in the closet.)

Basically, what happens is this: there were two connectivity passes for
swamp. The first was via zonify, and it finds and successfully fills in
any teleport closets existing at the time with trees -- but does not
check for overall level connectivity involving deep water. Then there's
a c++ pass in dungeon.cc:_build_vault_impl that is swamp-specific. This
pass handles connectivity issues involving deep water. Unfortunately,
because it treats deep water as impassable, it does not fill in deep
water squares, creating teleport closets of the kind that the zonify
pass fixes. (Also, I've verified that these are teleport closets for
flying/swimming chars.)

To fix this I have inelegantly added a *third* pass on the c++ side,
that finds and fills in any resulting deep water tele closets. It might
be possible to do without the zonify pass now, since this (now) third
pass would handle these cases, but I'm worried about kicking the tower
of cards. Ideally, this would all be handled by zonify, but right now I
don't understand zonify well enough to get this to happen.

--------------------------------------------------------------------------------
f989941d98 | Edgar A. Bering IV | 2019-05-11 17:26:22 -0400

Add darts to item knowledge screen (gressup)

--------------------------------------------------------------------------------
42b690ea6c | advil | 2019-05-11 17:05:28 -0400

Add a few missing TAG_MAJOR checks

--------------------------------------------------------------------------------
9898fdd0ed | advil | 2019-05-11 16:50:47 -0400

Remove an obsolete ASSERT

--------------------------------------------------------------------------------
41c1c16e53 | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Add sdynet to CREDITS.txt

--------------------------------------------------------------------------------
57add1ab2c | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Boomerang item tiles (CanOfWorms)
Thrown boomerangs are animated on the beam path.

--------------------------------------------------------------------------------
bae0703f23 | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Throwing Overhaul VI: Adjust brand weights
Based on objstat runs, the initial weights for the new silver brand was
too high, as was the relative frequency of datura darts.

--------------------------------------------------------------------------------
46bf1127ba | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Throwing Overhaul V: Save Compatibility
Old needles are converted to darts. Old brands are stripped or converted
according to the following table.

|  old brand  | new brand |
| ----------- | --------- |
| penetration | none      |
| returning   | none      |
| exploding   | none      |
| poison*     | none      |
| steel       | silver    |
| sleep       | atropa    |
| paralysis   | atropa    |
| confusion   | atropa    |

* poison is removed from boomerangs and javelins, darts retain it

--------------------------------------------------------------------------------
48e52ebf6e | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Rename Tomahawks Boomerangs
Now that they always return. And besides, the new name is significantly
more Australian.

--------------------------------------------------------------------------------
ba011c803f | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Throwing Overhaul IV: Returning and Penetration
To differentiate the different types of throwables, javelins now always
penetrate. This overlaps some with crossbows, which provide a
penetrating brand, but a crossbow user can choose from many brands and
has access to weapon enchantment.

Tomahawks always return. This is more a QoL change than anything, and a
step towards a broader ranged reform. In terms of ammo availability, the
mulch rate remains the same, so throws per tomahawk at on strategic
timescales are static. On tactical timescales, a player relying on
tomahawks for damage will for the most part not be limited by ammo; a
player 0-skill throwing tomahawks will get a few extra throws in the
early game, but the damage from these extra throws isn't that much.
Since this effect applies to monsters also, giving them a comparative
buff, it should be a wash.

--------------------------------------------------------------------------------
6ea07b34f0 | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Remove some unneeded TAG_MAJORs

--------------------------------------------------------------------------------
1701b1f0fe | sdynet | 2019-05-11 14:06:22 -0400

Throwing Overhaul III: Remove most tomahawk and javelin brands
Now that blowguns are removed, throwing users do not need three ways to
poison a monster.

Steel is removed; silver now gets both bonuses, to be a "rare extra
damage throwable" that fits a niche not available with other weapon
types. This might be too good, which can be addressed in a couple of
ways.

Exploding, while "neat" was rarely different from yet another bonus
damage throwable.

Returning and penetration are removed, these effects will return in a
different way in subsequent commits.

[Committer's note: Closes #1048. Significant expansion of the original
 patch]

--------------------------------------------------------------------------------
193025e5b2 | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Rename frenzy and blinding darts
This commit is separate as renames tend to be controversial. All changes
are cosmetic.

Darts of frenzy become "datura-tipped darts" after the genus of toxic
plant that can cause psychosis and darts of blinding become
"atropa-tipped darts" after the genus of toxic plant that can cause
visual distortion and confusion.

Players aren't likely to know this (unless they're a botanist), but they
probably also don't know that curare is (in addition to being a generic
name for blowgun poisons) a genus of toxic plant. So it fits the
"exotic" dart poisons into a nice family.

--------------------------------------------------------------------------------
a4302a11a9 | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

New dart tiles (CanOfWorms)

--------------------------------------------------------------------------------
9adfa93384 | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Throwing Overhaul II: Darts brand consolidation
The hex darts (paralysis, confuse, and sleep) are redundant in several
ways: mutually as a way for needles to generate stabs, with hexes, and
with wands. The result is a clutter of darts.

This commit removes these brands, replacing them with a single new
brand: blinding. In addition to blinding the target for a long duration
(depending on throwing skill) this brand also confuses the target for a
shorter duration. The effect was chosen to be distinct from hexes
(compared to dazzling spray's 4-8 turn blindness and invisibility) and
hex wands.

--------------------------------------------------------------------------------
25935dc316 | Edgar A. Bering IV | 2019-05-11 14:06:22 -0400

Throwing Overhaul I: Remove blowguns, needles become darts
The presence of a *launcher* modified by throwing skill is a wart left
over from the 0.6 ranged reform. The rarity of blowguns limited the use
of needles early on to some extent, the balance impact of this will be
addressed in a subsequent needle-brand-consolidation commit. In exchange
for this limit, the interaction of blowgun enchantment with success
chance made finding an enchanted blowgun a 0-skill no brainer: it was
always better to use it.

This commit removes blowguns. Needles are replaced with darts which are
thrown. Darts have the same brands as needles. To replace blowgun
enchantment, hex dart succes scales as (2/3) * (throwing + stealth),
preserving the ability to land hex darts against high HD targets, but
requiring a strategic cost to do so.

As a bonus, no more stories about bladders or bellows for mummies are
required.

--------------------------------------------------------------------------------
5c6fb1cd70 | Chris Campbell | 2019-05-09 18:30:35 +0100

Update CREDITS.txt

--------------------------------------------------------------------------------
79c1ce788c | ByrelMitchell | 2019-05-08 10:34:34 -0700

Remove reference to Akashic Record in wizlab.des (Mintice) (#1058)

--------------------------------------------------------------------------------
bb66a672fa | Chris Campbell | 2019-05-07 19:18:25 +0100

Update manual for wand and spell library changes

--------------------------------------------------------------------------------
80dedec6f2 | Michael Nowack | 2019-05-07 18:42:50 +0100

Update wand information in manual (#1050)
* Wands have an other behavior since the wand merge



I have used texts from https://crawl.develz.org/trunk/changes.txt



* Integrated feedback



1. Lines should not be longer than 80 characters.

2. grammar mistake fixed.

3. use Australian English spelling.


--------------------------------------------------------------------------------
2392399e09 | Chris Campbell | 2019-05-07 18:33:38 +0100

Remove an unused monster flag
M_ALWAYS_CORPSE was obsoleted with the removal of putrid demonspawn.

--------------------------------------------------------------------------------
312109b4cc | Chris Campbell | 2019-05-07 18:33:38 +0100

Don't let Pikel slaves drop corpses or items
Remove their animal skins and increase their base AC instead, and prevent them
from dropping corpses.

--------------------------------------------------------------------------------
9f7f2584eb | nlavsky | 2019-05-07 18:28:49 +0100

Remove some traces of the tome of Destruction (#1053)

--------------------------------------------------------------------------------
3c078ff0d0 | advil | 2019-05-06 22:20:20 -0400

Fix sprint inheriting seed from persistent options
After regular game end, sprints were accidentally picking up the seed
from the previous game. This commit still allows their seed to be set
explicitly from an rc file, but otherwise causes them to ignore the seed
UI. Also affects hints mode and tutorial, and will show an rc-set seed
in the menus for sprint ant tutorial.

--------------------------------------------------------------------------------
9fb9971df1 | Edgar Bering | 2019-05-03 16:27:16 -0400

Add a security warning to the comments (CanOfWorms)

--------------------------------------------------------------------------------
7ba0370b94 | floraline | 2019-05-03 16:01:03 -0400

Log IPs correctly when behind a reverse proxy
This change allows webtiles to accurately log IP addresses when it is
running behind a reverse proxy.

Webtiles logs IP addresses when users connect to the server. This is
done by looking at the value of 'request.remote_ip', provided by
Tornado. When webtiles is running behind a reverse proxy, the value
returned by Tornado is the IP address of the proxy itself. This does not
uniquely identify users and results in a mostly useless log file.

This commit looks for the new setting 'http_xheaders' in config.py and,
if it is found, passes it along to Tornado.HTTPServer. When HTTPServer
is initialized with this setting, request.remote_ip will instead return
the value of header X-Real-IP if it is present. This header can be set
by a reverse proxy to indicate the actual IP of the real client.

Be warned that enabling this option when webtiles is NOT protected
behind a reverse proxy introduces a security risk. An attacker could
inject a false address into the X-Real-IP header. Do not enable this
option if the webtiles server is directly exposed to users.

--------------------------------------------------------------------------------
1a68c911f0 | Eino Keskitalo | 2019-05-01 17:44:45 +0300

Merge pull request #1049 from syranez/patch-1
There are two tournaments per year.
--------------------------------------------------------------------------------
7cec4da7ba | Alex Jurkiewicz | 2019-04-30 21:16:18 -0700

Improve create_enum docs (#1052)

--------------------------------------------------------------------------------
a7546fe674 | advil | 2019-04-30 08:38:07 -0400

Replace some lingering instances of piercer
Piercer was merged into storm bow in 3ca0c319c68e.

--------------------------------------------------------------------------------
efa197325e | NormalPerson7 | 2019-04-28 09:44:11 -0600

Add bolt range behaviour to bolt spell descriptions
Add a one-line description of how bolt spells' range is reduced by one
for each monster the bolt strikes, to all relevant bolt and bolt-like
spells and abilities. Until now, this information wasn't documented
anywhere. The description is:

"The range of the [bolt/blast/jet/ball] is decreased by one for every
creature it strikes."

The spells whose descriptions are changed by this commit are:
  Breathe Dispelling Energy
  Breathe Frost
  Breathe Steam
  Breathe Noxious Fumes
  Bolt of Cold
  Bolt of Draining
  Bolt of Fire
  Bolt of Magma
  Chilling Breath
  Cold Breath
  Corrosive Bolt
  Crystal Bolt
  Energy Bolt
  Fire Breath
  Metal Splinters
  Quicksilver Bolt
  Steam Ball
  Venom Bolt.

The bolt-like spells and abilities whose descriptions are not affected
by this commit are:
  Breathe Fire (I'm not actually sure what uses this ability, apart from
                red draconian players, for whom the ability is
		different anyway.)
  Random Bolt
  Shadow Bolt (used for Dithmenos worshippers).

The five lightning-type bolt spells' ranges are not affected in this way
and hence not changed. They are:
  Breathe Lightnng
  Blinkbolt
  Electrical Bolt
  Lightning Bolt
  Shock.

--------------------------------------------------------------------------------
81e821ac9a | Michael Nowack | 2019-04-28 10:19:15 +0200

There are two tournaments per year.
Actually, after each release a tournament will be held, but I do not think, it 
is relevant at this point.
--------------------------------------------------------------------------------
67e63018d5 | CanOfWorms | 2019-04-28 02:19:05 -0400

Actually remove evilmike_surprise_oklob

--------------------------------------------------------------------------------
8fb62dade4 | CanOfWorms | 2019-04-28 02:17:55 -0400

Remove a vault with an obsolete gimmick
The design of this vault forces players to dig through walls to obtain loot,

revealing an oklob hidden behind an opaque diggable wall. On top of

encouraging spoilers, the change to wand targeting allows players to safely

dig the walls without revealing the oklob, neutering the gimmick. The idea

still exists in other vaults, e.g. minmay_lair_oklob_items, so there's no need

to keep it around.
--------------------------------------------------------------------------------
6f7e2cb4ba | advil | 2019-04-26 17:50:56 -0400

Fix signed casts causing build-specific behavior in random names
Random letter choices in make_name were casting a pseudo-random unsigned
32bit integer to int and then modding it with something of type size_t,
which will usually implicitly cast it back to size_t (which is unsigned
and may vary across platforms; the cast is triggered because it
typically is bigger than the int type so has a higher rank). If the int
value ended up as negative in the first cast, the implicit cast to
size_t was coming out differently on different platforms, leading to
different random names (basically depending on whether it was a 32bit or
64bit build).  This change maintains unsignedness throughout for more
stable behavior.

Because random naming uses its own rng objects, the effect of this was
partitioned off from anything else in levelgen, leading to identical
properties on randarts with different names across platforms in gotm 2
(since windows is a 32bit build).

--------------------------------------------------------------------------------
b3763e6d51 | advil | 2019-04-25 10:52:18 -0400

Revert "Revert "Better separate level generation from level loading/entry" 
(NP7)"
This reverts commit 14115134c206528439226e57c192850df5666347.

--------------------------------------------------------------------------------
1911a96622 | advil | 2019-04-25 10:52:18 -0400

Properly delete visited marker when a level is deleted
and also clarify the semantics of level_visited. This fixes weird
behavior when revisiting pan levels (it will also affect zigs, and
revisiting portal vaults in wizmode) where state was not correctly
initialized when entering a newly generated level, because the player
had visited a level with that level_id before.

If there's any games still saved in pan with the broken state, after
upgrading to this they can fix with a save and reload.

--------------------------------------------------------------------------------
14115134c2 | Alan Malloy | 2019-04-24 09:47:09 -0700

Revert "Better separate level generation from level loading/entry" (NP7)
This reverts commit a0fc33f7246dc8e3f7e9bd647f78399882ea6478.

It was causing serious graphical issues in Pandemonium for
local tiles and webtiles builds.

--------------------------------------------------------------------------------
a0fc33f724 | advil | 2019-04-22 16:31:50 -0400

Better separate level generation from level loading/entry
These were previously completely intertwined. Before 0.23, level
generation was only ever done on an attempt to enter a new level. For
0.23, level generation was a special case load mode for the call to
load_level, with complicated shared setup code for the generation call.
This commit pulls the relevant setup and cleanup out of load_level so
that a level can be generated without needing to call load_level at all.
There is a small cost in code duplication, but the comprehension cost
for doing this together with level loading was much higher.

--------------------------------------------------------------------------------
bc55a458f4 | advil | 2019-04-22 16:31:50 -0400

Eliminate some spurious messaging on wizmode level change
If you enter a monster's los, and then exit it off level (e.g. via &d)
instantaneously, and the monster's slot is taken up by a new monster on
the new level, you would be told that this new monster had moved out of
view. This change causes the queue of just seen monsters to be cleared
on a level change, otherwise it required a world_reacts cycle. It's hard
to get this bug to happen without wizmode, but it might have been
possible with serpent's lash and very specific stair placement.

There's still some cases where this messaging interacts badly with
0-turn actions, e.g. serpent's lash on the same level, but there at
least it prints a message about the correct monster.

--------------------------------------------------------------------------------
32ec7cac8f | Joshua Gelbard | 2019-04-20 23:01:43 -0400

Don't assume some identified jewellery is boring
Make some autopickup-related lua code less eager to forget about
potentially-useful jewellery.

Old defaults for autopickup_exceptions would remove some items (e.g.
ring of poison resistance) from autopickup as soon as the subtype was
known, since you only ever need one. Now that it's possible to learn
what an rPois ring looks like by seeing a monster wear it, that behavior
occasionally leads to useful rings and amulets being left unnoticed on
the ground. To prevent that, don't assume such only-need-one items are
safe to ignore unless the player is actively carrying one around.

--------------------------------------------------------------------------------
2aa1166087 | Chris Rendle-Short | 2019-04-20 22:54:27 -0400

Use high-res app icon on all platforms
Previously the 512x512 app icon was only used on MacOS, and all other
platforms used the 32x32 icon. This change is to use the 512x512 icon on
all platforms.

--------------------------------------------------------------------------------
3a7c41be2b | mgdelmonte | 2019-04-20 22:53:29 -0400

Add more monster info to Lua
Expose AC, EV, MR, and MaxHP in the CLua monster.info class.

Provide an optional "full description" string from desc().

Add a function defeat_mr(spell, evoked) that returns the chance for the
provided spell (from the spells module) to defeat the monster's MR. The
parameter evoked indicates if the spell is fired from a wand.

All of this information is provided to the player, so there are no
information leaks.

[Committer's note: Elaborated in the commit message, Closes #970]

--------------------------------------------------------------------------------
1edb078f7a | gammafunk | 2019-04-20 14:40:14 -0500

Add the polymoth tile as a player tile (laurel)
This fanciful monster never made it to the 0.13 release, but it had an
especially nice tile:

http://crawl.chaosforge.org/Polymoth

Re-add the tile as a player tile option, which you can use by adding
something like the following to your RC:

```
tile_player_tile = tile:mons_polymoth
```

--------------------------------------------------------------------------------
528a52db4b | Edgar A. Bering IV | 2019-04-20 10:55:16 -0400

Update CREDITS.txt

--------------------------------------------------------------------------------
f46a388040 | Edgar A. Bering IV | 2019-04-19 07:52:03 -0400

Don't crash when a monster attempts to use Random Effects
The spell is not implemented as a monster spell at present, which led to
crashes. This is the quick fix to prevent those crashes. The XXX: teach
monsters to use random effects remains outstanding.

--------------------------------------------------------------------------------
bee43f90e2 | olowin | 2019-04-18 23:25:19 -0400

Update Gyre and Gimble
Remove the -3 Dex and add the protection brand which is not currently
used by any unrand and compensates somewhat for locking out a shield.
The enchantment is bumped to make the effective damage roughly the same
as with the piercing brand. According to fsim, +7 gives slightly more
and +6 gives slightly less than the orginal.

[Closes #1026]

--------------------------------------------------------------------------------
6d359e791a | kitchen-ace | 2019-04-18 23:12:54 -0400

Add second brand to description for Thermic Engine and Storm Bow

--------------------------------------------------------------------------------
13415af0d4 | Joshua Gelbard | 2019-04-18 23:07:34 -0400

Fix a couple Engulf-related bugs
Fix a bug where Engulf status wouldn't update on time if the player
escaped via an instant action like Serpent's Lash movement or a
retaliatory headbutt. (Instead of setting the remaining duration to
one aut and waiting for the enchantment decrement step to finish it
off, just clear it on the spot.)

Also remove buggy immunity to engulf. Escaping from being engulfed was
supposed to have been conferring one turn of immunity, but the amount
given has always been effectively zero. Since no one seems to have
noticed, it's probably fine to just remove it.

--------------------------------------------------------------------------------
7384745ea9 | Edgar A. Bering IV | 2019-04-18 22:36:04 -0400

Teach monsters to use scattershot, cloud, and iceblast wands
This refactors monster wand usage to deduplicate some of the beam and
tracer codepaths for wands and other beams.

Specifically monster wand evocations now go through the mons_cast
codepath. This has the unfortunate need of adding a spell flag to
indicate an evoked spell; however the benefit is that monster wands now
pass through the more sophisticated monster casting code that previously
handled the rod versions of scattershot and cloud. As a result monsters
now know how to use scattershot, cloud, and iceblast wands.

The monsters use the new wands with a power of 30 + hd, identical to the
power used for existing wands. This is a flatter power curve than the
old rod spells, making them more dangerous on low HD monsters. However,
some playtesting indicates that these are not worse than an early acid
wand in damage level.

--------------------------------------------------------------------------------
c7211da411 | Chris Campbell | 2019-04-18 23:30:51 +0100

Remove some dead Cigotuvi's Embrace code

--------------------------------------------------------------------------------
b86c0f735e | Chris Campbell | 2019-04-18 21:59:59 +0100

Clean up more default force_more_messages

--------------------------------------------------------------------------------
927fd9e6cb | kitchen-ace | 2019-04-18 21:53:18 +0100

Minor changes to default force_more_messages (#1037)
"Careful!" was being triggered by allies that sometimes said

"Be careful!".
--------------------------------------------------------------------------------
86c19343c9 | Chris Campbell | 2019-04-18 21:38:42 +0100

Fix a message colour entry

--------------------------------------------------------------------------------
1d4c5a47d1 | nlavsky | 2019-04-18 20:59:34 +0100

Fix local tiles monster panel showing summoner halo for all enemies (#1038)
This was happening because the packed_cell constructor was not

initializing `is_highlighted_summoner`.
--------------------------------------------------------------------------------
f493760c10 | advil | 2019-04-17 17:18:38 -0400

Prevent messages from impacting non-UI generators
This may be overkill, but a lot of things can happen during messaging in
crawlcode, so this will ensure that none of those things will ever
affect the levelgen (or gameplay) rng.

--------------------------------------------------------------------------------
26cb7716be | advil | 2019-04-17 17:03:11 -0400

Don't use div_rand_round for noise values
In wizmode, this could have the following effect: in a non-pregen game,
when a noise happened before descending to a new level, as long as
levelgen triggers a more, drawing the wizmode noise bar could cycle the
levelgen rng while rerendering the hud during that more. (I hope there
aren't more things like this, but there might be, as quite a lot of code
gets called on a more. So it may be worth just forcing the ui rng for
doing mores.) Luckily, non-wizmode noise rendering doesn't call this
code path.

--------------------------------------------------------------------------------
50762623a0 | advil | 2019-04-16 22:39:55 -0400

Remove some unused arguments
These were used in placing stair mimics, but those haven't placed since
434df5b33ac1.

--------------------------------------------------------------------------------
44e327ef01 | ufshaikh | 2019-04-15 10:38:40 -0700

Show traps in ctrl-x screen (#1035)
This commit exposes traps along with features in the ^X display of

what is in LOS. This should cut down on manual movement of the cursor

with xv to discover what type a trap is, and allow the player to

quickly distinguish which types are currently in LOS in areas with many

traps.
--------------------------------------------------------------------------------
6074511092 | advil | 2019-04-13 09:58:29 -0400

Initialize `you.trapped` to false
Previously, this was uninitialized, so on some builds the first
time-taking action after loading the game could roll random trap
effects, regardless of whether a new square was revealed. The exact
behavior would be implementation/compiler-dependent, but on OS X it was
getting a random-ish value presumably determined by whatever was in
memory before, and I suspect this would be the typical behavior.

--------------------------------------------------------------------------------
2af7e837d0 | advil | 2019-04-12 12:25:42 -0400

Prevent wand of enslavement from being used under sac love
Before this commit, despite being grayed out, this wand worked just
fine. The implementation, in order not to waste turns, just makes it
completely unevokable with sac love. For the sake of consistency I
applied this change to all evokers that are useless in this case. An
alternative for enslavement might be to prevent it in targeting, which
is how phantom mirror previously worked, but the present approach seemed
cleaner and wastes the players time less. It might also be good to make
a note in the item descriptions that they can't be used so this isn't
indicated only by inventory color.

In general, enslavement still works under other god conducts that
otherwise prevent some but not all summons. This probably could use some
thinking, because as NP7 pointed out in chat, it leads to confusing and
variable behavior e.g. for spellcasters enslaved under Trog. However, to
implement this without taking turns in the general case is a bit tricky.
See also 706f6395352a.

--------------------------------------------------------------------------------
e44751f506 | advil | 2019-04-12 12:25:42 -0400

Better messaging for when phantom mirror fails (Yermak)
This now prints a specific message for every case, not just sac love.

--------------------------------------------------------------------------------
369f6e7680 | Chris Campbell | 2019-04-12 16:38:15 +0100

Improve description of protection brand

--------------------------------------------------------------------------------
b963c9a634 | Nikolai Lavsky | 2019-04-11 23:06:12 -0400

Always display the duration of the last action on the HUD (Yermak)
Because of how the score is calculated, it might be more useful to have
player turns instead of elapsed time on the HUD.
`show_game_time = false` replaces time with player turns, but also
hides the duration of the last action. The HUD is the only place that
shows this duration, so players who care about their score have to use
the default value for show_game_time and have to regularly check their
turns via the E or % commands.

After this commit, the HUD will display the duration regardless of the
show_game_time's value.

--------------------------------------------------------------------------------
b50751227d | Chris Campbell | 2019-04-11 20:17:44 +0100

Fix typo

--------------------------------------------------------------------------------
a6a6ab7d13 | gammafunk | 2019-04-09 16:15:05 -0500

Use the correct LOS for Sacrifice Courage (Reeces)
Before this commit, monsters behind glass would cause the Horror debuff
from Ru's Sacrifice Courage to apply. This is annoying due to the
interruption and messaging it causes, and these monsters aren't actually
dangerous. This commit has Sacrifice Courage consider monsters behind
transparent walls as safe and uses an appropriate monster iterator
instead of a distance-based one.

--------------------------------------------------------------------------------
8f5f5cde13 | gammafunk | 2019-04-08 19:15:26 -0500

Don't use a more() for LOS spells (kitchen_ace)
Currently LOS attack spells use a more() prompt every time they fire.
This may be so that the flash animation they use can actually have time
to display. The more() prompt is not removable by the player and is
especially annoying for frequent LOS spells under e.g. the Singing
Sword. This commit removes the more() and instead uses a delayed flash
animation of 300ms, like we do for many other LOS-based spells.

--------------------------------------------------------------------------------
9885673005 | gammafunk | 2019-04-08 19:15:26 -0500

Fix a comment typo

--------------------------------------------------------------------------------
870ddcc6b6 | Higor Eurípedes | 2019-04-08 18:27:28 -0400

Let the player know that the gauntlet effect isn't permanent
Let the player know that the gauntlet effect isn't permanent

--------------------------------------------------------------------------------
6e284d23e0 | Higor Eurípedes | 2019-04-08 18:27:28 -0400

Show NoTele warning every time the player enters gauntlet
Now the message will be displayed when the player returns from the
abyss.

--------------------------------------------------------------------------------
aa57d617ac | Higor Eurípedes | 2019-04-08 18:27:28 -0400

Warn the player that teleportation doesn't work in gauntlet
Gauntlet prevents long distance translocations from happening (NoTele),
but the user won't know about this until they check the % screen,
read a scroll of teleportation or notice that teleportitis hasn't
triggered since they entered the branch.

--------------------------------------------------------------------------------
ece4408007 | NormalPerson7 | 2019-04-08 18:24:29 -0400

Turn off skill targets when aptitudes change from level up (11943)
Add a call to check_training_targets() into the function
check_skill_level_change(). Also, update an inaccurate comment about
this function.

--------------------------------------------------------------------------------
81a6c4fb23 | Alan Malloy | 2019-04-08 15:20:50 -0700

Remove an old die() that's been replaced by an ASSERT

--------------------------------------------------------------------------------
38e41d7738 | Alan Malloy | 2019-04-08 15:20:49 -0700

Don't message about tormented monsters outside LOS (Yermak)

--------------------------------------------------------------------------------
3f03afcf10 | advil | 2019-04-04 13:34:27 -0400

Don't let unarmed skill when unarmed determine delay of fumble-throwing
Probably fixes 11942.

--------------------------------------------------------------------------------
4d52153663 | advil | 2019-04-04 09:57:04 -0400

Remove __DATE__ and __TIME__ from compilation info
See https://reproducible-builds.org/docs/timestamps/

While looking at various downstream packaging setups, I noticed that
they all have to patch this out anyways for reasons in the above link.
If anyone has ever actually used this information for debugging (over
and above the version info) I'm happy to rethink, but including this
seems unnecessary to me.

--------------------------------------------------------------------------------
aef371a0c2 | advil | 2019-04-04 09:29:12 -0400

Fix a Makefile typo
I noticed this reported in the following debian bug, it may be fixed
downstream already:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871419

--------------------------------------------------------------------------------
49d9ff80d8 | advil | 2019-04-02 20:00:26 -0400

Force SSE2 (again) for win32 builds
This is a much more restrained version of 3d66cf40a65a. As discussed in
with windows being the exception: we (apparently) need to keep building
windows as i386, which does not imply sse, but as of 2018 all windows
versions >=7 require CPUs with SSE2 support. Since the revert in
6492a9889c, floating point issues on windows builds have continued to
crop up, where x87 calculations return different values (because of
intermediate 80 bit precision) than regular SSE-based calculations in
some cases. It also turns out that x87 issues are exacerbated by
building with -O2, which debug builds don't use (so I'd missed a bunch
of cases until discovering this).

It's possible that there are more specific / other compiler flags that
could help mitigate these issues, but none of them seem very reliable or
guaranteed. -ffloat-store reportedly works sometimes. If we were using
C, then -fexcess-precision=standard might be an option, but as far as I
can tell this still doesn't work for c++. Better to just avoid x87
entirely.

(The real solution is to remove all floating point calculations...)

For backstory, see:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=323
  
https://stackoverflow.com/questions/7517588/different-floating-point-result-with
-optimization-enabled-compiler-bug
  
https://yosefk.com/blog/consistency-how-to-defeat-the-purpose-of-ieee-floating-p
oint.html

--------------------------------------------------------------------------------
9da92b9584 | advil | 2019-04-02 19:33:11 -0400

Add a warning to the seed dialog for x87
x87 calculations in gcc, at least with -O2, lead to known differences
from sse-based floating point calculations, and this will continue to be
true until we get rid of floating point altogether. (This has mostly
been rearing its head in dealing with the windows builds, for which I'm
going to take a different approach, but can also come up for 32bit linux
builds.) So, indicate that we don't fully support seeding on builds that
use x87 math. (Where x87 math is assumed to happen on an x86 build that
does not use SSE of some kind.) This *might* be solvable by messing with
more fine-grained options on gcc, but if so I haven't figured it out.

(This commit isn't meant to imply that x87 is the *only* thing like this
that could lead to floating point instability, but it is the one that
I've tested the most carefully.)

--------------------------------------------------------------------------------
536ed4e33c | advil | 2019-04-01 15:43:25 -0400

Don't remain in % menu after dropping, etc.
This menu lets you view items, and from there you drop them, take them
off, etc. Before this commit, the player could trigger these arbitrary
numbers of times from the % menu, lining up multiple armor-off delays
for when they exit the menu, which would then crash. This change simply
respects the return value for describe_item.

--------------------------------------------------------------------------------
3ce5c5b359 | advil | 2019-04-01 10:10:39 -0400

Fix rng independence issues with setup_xom_dancing_weapon
Because these variables were not set up as `locals` (so were part of the
global state), and not every case in the if sequence initialized every
call, subsequent calls to this could be affected by earlier calls in a
non-intended way. As long as the calls were done in the same order this
won't affect seed stability per se, but it shows up as a stability error
in the test, and it's better not to do this with global state.  This
code *is* still dependent on global state in that it's affected by
whether the mace of variability has spawned, but otherwise it should act
independently on repeated calls.  I've also pulled out the roll for
variability so that it happens regardless of whether the mace has
previously generated; this way the number of rng draws is independent of
this global state.

Ironically, the biggest problem here on the seed where this came up
(185349672) was the mace of variability variable being global.

--------------------------------------------------------------------------------
05560da471 | advil | 2019-03-31 17:04:39 -0400

Update credits
Noticed in a wordpress comment: 
http://crawl.develz.org/wordpress/crawl-0-23-nemelex-needs-traps-badly/comment-p
age-1#comment-3015

The comment didn't express a preference as to use, so I went with real
name.

--------------------------------------------------------------------------------
1a43be2006 | NormalPerson7 | 2019-03-31 10:46:02 -0400

Fix spurious message on moving into door with wall_jump_move (11940)
When attempting to move into a closed door with the wall_jump_move
option set to true, the function wu_jian_can_wall_jump was being called,
which meant spurious messages describing why wall jumping was impossible
in the current situation were being printed to the message log.

To fix this, move the check for moving into a closed door (a situation
where it is not possible to wall jump by moving) to inside the
definition of bool can_wall_jump, before the function
wu_jian_can_wall_jump() is called.

Also remove an unnecessary variable (targ_grid) and replace it with
grd(targ) everywhere.

--------------------------------------------------------------------------------
ca05e9d32b | advil | 2019-03-30 20:42:24 -0400

Update changelogs from 0.23 branch

--------------------------------------------------------------------------------
710923106e | advil | 2019-03-30 20:34:12 -0400

Sync changelog with 0.22 branch

--------------------------------------------------------------------------------
df4562371c | advil | 2019-03-30 20:32:08 -0400

Update debian changelog for 0.22.2
(cherry picked from commit e965b3aba33ea031970dc6c595116b0a96a5b81e)

--------------------------------------------------------------------------------
ca93661758 | advil | 2019-03-30 19:11:10 -0400

Update sdl2 contrib with mac resize fix (11895)
See the SDL2 commit message for details:
  
https://github.com/crawl/crawl-sdl2/commit/07f787c0da7df6e37bd71a71b6e833fd9b88a
dea

--------------------------------------------------------------------------------
1ac5efaa63 | Edgar A. Bering IV | 2019-03-30 14:19:28 -0400

Update CREDITS.txt

--------------------------------------------------------------------------------
0b285d475d | Koen De Groote | 2019-03-30 12:12:42 -0400

Update religion.cc
Typo
--------------------------------------------------------------------------------
0142750c7a | advil | 2019-03-30 09:54:48 -0400

Linebreak level annotations in chardumps (11904)
This isn't really a complete solution: in general, the chardump doesn't
fully respect 80 chars, this was just the most egregious example. ?# on
tiles is fine with everything else I tested, in that it typically
doesn't expand past the end of the screen, but ?# on console truncates
on the right rather than centering, so still has a bunch of issues. I
think a complete solution needs: (i) on tiles, prevent
formatted_scroller from being wider than the displayable area, (ii)
implement left-right scrolling in formatted_scroller, and (iii) take
another pass to see what can be truncated at 80 characters. (For
some things, like the action table, this probably isn't possible, but
long equipment names for example could be better managed.) I did
consider truncating the entire main chardump at 80 characters but this
tends to look kind of bad in a lot of cases.

This commit also tweaks some wizmode formatting for vault lits so it's
readable in console in ?#.

--------------------------------------------------------------------------------
9656df7c86 | Nikolai Lavsky | 2019-03-30 02:00:11 -0500

Don't try to generate any removed branches in mapstat
As a followup to 17bec22d, this commit prevents mapstat from generating
the other removed branches: the Dwarven Hall and Hall of Blades.

It affects only the latter though, because the Dwarven Hall doesn't have
any maps and cannot be generated anyway.

--------------------------------------------------------------------------------
a595e75330 | advil | 2019-03-29 20:11:03 -0400

Place transporters consistently in abyss
Before, they were placing correctly when first entering an abyss level,
because that code used the builder; they were also shifting correctly.
But when a transporter vault placed as part of tele/movement-based
generation, transporters were not being placed on the markers correctly
because this code path *doesn't* use the builder. So, call the
transporter conversion function directly after placing new vaults.

--------------------------------------------------------------------------------
1152973720 | Umer Shaikh | 2019-03-28 23:09:35 -0400

Check trap effects' validity before choosing effect
The current flow is to decide whether the player is trapped when
revealing a tile (player_view_update_at calls roll_trap_effects); if so,
you.trapped is set to true. The next time the world reacts,
do_trap_effects is called and then you.trapped is cleared back to false.
Currently do_trap_effects rolls for which trap effect will happen and
then checks to see if it is allowed to happen in that place; if not,
nothing happens. This has the result that, all else equal, the player is
less likely to suffer any trap effect on floors where one of the effect
types is ruled out, e.g., the player is less likely to get trapped on
Snake:3 than Snake:2.

This commit changes do_trap_effects to first find the valid trap effects
for the location and then choose among them. So, all else equal, the
player will be just as likely to get trapped on a floor where shafts
cannot be placed---the other trap effect types will pick up the slack.
(In general all else is not equal, since trap effect rate depends on
depth; see trap_rate_for_place. But probably this means that code
affecting rate of triggering trap effect should be there, and not rolled
in with code choosing the effect in do_trap_effects.)

[Committer's note: simplified using a random_iterator, Closes #1009]

--------------------------------------------------------------------------------
b3ba8b5ca5 | Umer Shaikh | 2019-03-28 23:09:35 -0400

Refer to function by name, not position, in comment
This makes the comment a little less likely to go out of date if someone
starts moving things around in the future.

--------------------------------------------------------------------------------
494fbaca61 | Umer Shaikh | 2019-03-28 23:09:35 -0400

Use a function instead of duplicating logic
The function do_trap_effects duplicates logic from
is_valid_shaft_effect_level. The latter function is apparently never
called. I suspect the intention was for do_trap_effects to call
is_valid_shaft_effect_level and the author forgot to make the change. In
any case, this commit removes the logic from do_trap_effects and inserts
a call to is_valid_shaft_effect_level.

--------------------------------------------------------------------------------
cd7e529e91 | Umer Shaikh | 2019-03-28 23:09:35 -0400

Remove use of testbits in is_valid_shaft_effect_level
Testbits isn't necessary here; it's sufficient to use & to see whether
the branch has the dangerous_end flag. This is at least as easy to read
and removes an unnecessary equality test. Note that this is what
do_trap_effects already does in its version of this logic.

--------------------------------------------------------------------------------
3ca0c319c6 | kitchen-ace | 2019-03-28 22:51:08 -0400

Merge Piercer into the storm bow
The storm bow is functionally the same as a +8 elec longbow; fairly
strong, but unremarkable. Piercer is a little better since it's a bow
user's only way to get a penetration weapon, but that's still not too
special.

Adding a penetration effect to the storm bow makes it much more
exciting, fits the electric/lightning theme, and puts it almost on par
with the other unrand bow Zephyr. This also makes Piercer obsolete.

--------------------------------------------------------------------------------
90687ab01a | Joshua Gelbard | 2019-03-28 22:27:33 -0400

Add new message for re-corroding a corroded foe
When reapplying ENCH_CORROSION on a monster, make it clearer in the
printed message that it's just a duration increase and not a stacking
effect.

Old: zap wand of acid -> The acid corrodes the death yak! -> zap -> The
acid corrodes the death yak!

New: zap wand of acid -> The acid corrodes the death yak! -> zap -> The
death yak seems to be corroded for longer.

--------------------------------------------------------------------------------
51c60a924a | Joshua Gelbard | 2019-03-28 22:27:01 -0400

Don't ignore autopickup settings after autobutcher
Food generated by autobutchery was being allowed to re-use the
item_needs_autopickup result from back when it was a corpse. Force it
to be re-checked after creation instead.

--------------------------------------------------------------------------------
bac502f846 | Andrew O'Neill | 2019-03-28 22:26:24 -0400

Fix CMD_MAP_UNFORGET in colemak keybindings
CMD_MAP_UNFORGET is overwritten in colemak_command_keys.txt

I propose setting it to F since it is similar to CMD_MAP_FORGET [^F]
--------------------------------------------------------------------------------
0fa666e6e4 | NormalPerson7 | 2019-03-28 22:21:38 -0400

Let formicids dig statues (Yermak)
Previously, the types of walls that formicids could dig was hardcoded in
move_player_action. This commit changes the check to use the function
feat_is_diggable, the same check that is used for digging wands, to make
formicid digging exactly equivalent to the wand form.

--------------------------------------------------------------------------------
17bec22d17 | gammafunk | 2019-03-28 16:20:51 -0500

Don't try to generate Labyrinths in mapstat (vt)
When running mapstat without any level specification, which implicitly
means "all dungeon levels", don't include Labs. Labs no longer have a
layout, so trying to generate the branch will crash.

--------------------------------------------------------------------------------
c779bbd14b | advil | 2019-03-28 14:29:12 -0400

Don't let overwrite_floor_cell place on transporter markers (11936)
This crash was happening because the abyss entry portal for depths 4
placed on top of a transporter map marker, and those markers get turned
into transporters fairly late in levelgen in a way that unconditionally
overwrites whatever features are there. Then the game crashed on the map
debug scan because a portal is supposed to be guaranteed on this level.

This fix explicitly checks for this kind of marker when placing vaults
that have overwrite_floor_cell; this tag is used for all the fallback
entry vaults for depth, as well as uniq vaults (where this issue doesn't
matter). This solution fixes this exact problem but does point towards
other potential levelgen issues, in that transporters are treated as
floor terrain until the very last minute. I wonder if it might work
better to place transporter features with the markers, and then only do
the connection part at the end of levelgen? But it's also possible that
this won't come up too much, since aside from this case I don't think
there's a way to overwrite any transporter vaults.

--------------------------------------------------------------------------------
696e1f2bf7 | NormalPerson7 | 2019-03-28 12:58:29 -0400

Don't place shafts in ebering_ghost_disaster_area (11926)
This commit prevents the vaults ebering_ghost_disaster_area and
ebering_vaults_ghost_disaster_area from placing shaft traps, instead
placing only water and lava tiles, implementing option 2 in 11926.
This change is to prevent ghosts in these vaults from being shafted
immediately when they enter line of sight of the player, before the
player can do anything to stop this.

These vaults were introduced by commits bb431e2 and a6a7277
respectively, and appear to have been introduced with the idea that
ghosts cannot be shafted. Ghosts can now be shafted, as of 8c2e593, and
this means that these vaults in particular could cause ghosts to be
shafted to lower floors, leaving behind an empty (or mostly empty) ghost
vault for the player to raid, and allowing the ghost to be encountered
outside of its vault on a lower floor, with the player then unable to
choose whether to fight the ghost.

--------------------------------------------------------------------------------
1d96822bd8 | gammafunk | 2019-03-27 22:54:49 -0500

Remove a digging Trove
The map trove_dig had the player individually dig out 20 items with dig
wands, but this is very tedious. The items in this trove are just
typical trove items, so the map isn't otherwise bringing anything
interesting to the portal.

--------------------------------------------------------------------------------
6c8b4ebd3a | Kyle Rawlins | 2019-03-27 22:06:54 -0400

Small tweaks to the .deb guide
[skip ci]
--------------------------------------------------------------------------------
f0bc1e94ae | CanOfWorms | 2019-03-25 15:28:06 -0400

More tweaks to tgw_lugonu_bribe
More adjustments to bribes:



* Remove Pakellas from the bribe list.

* Beogh's "bribe" is changed to an orc corpse.

* Remove the book from Kiku's bribe, since the library makes it

  unlikely that the player will see the contents.
--------------------------------------------------------------------------------
19c84a8c18 | CanOfWorms | 2019-03-25 04:03:40 -0400

Update tgw_lugonu_bribe
Fix some bribes that are no longer relevant due to changes in

god conduct, and adjust some to match flavour better.



* Dithmenos bribes are useless items that may be unsuitable

  for high stealth characters.

* Jiyva bribes are removed now that jellies can eat stones.

* The Shining One bribes are weapons with evil brands instead

  of a Poison book.

* Zin bribes are changed to focus on the dislike for chaos and

  transmutations. Lignification potions replace evil weapons,

  which have been moved to the Shining One.
--------------------------------------------------------------------------------
f2055891f0 | advil | 2019-03-18 18:30:55 -0400

Better newgame messaging when a game already exists
Before, if a game already existed under the name, any menu option that
would start a game with that name prefilled (from prefs) would just load
the existing game, regardless of game type. Before seeded games, this
only affected tutorial vs. regular games, but it's now even more
confusing with seeded games. These menus are still a bit of a mess, so
this could use some more work (it might be better to prompt for a
different name from the seed menu, or do the check before opening that
menu).

--------------------------------------------------------------------------------
aac6ce03dc | advil | 2019-03-18 18:30:55 -0400

Add version number to seed selection menu
To try to more clearly cue that this is version-specific.

--------------------------------------------------------------------------------
c186064d31 | Chris Campbell | 2019-03-18 20:22:52 +0000

Don't highlight summoners that are out of LOS
Fixes a crash when the summoner is entirely off-screen.

--------------------------------------------------------------------------------
76deb67c05 | Chris Campbell | 2019-03-18 16:38:45 +0000

Don't highlight the summoner of rakshasa illusions
And additionally don't highlight the source for perma-summons (such as Twisted
Resurrection abominations), since they're not abjured by killing the summoner.

--------------------------------------------------------------------------------
62cde1d77f | advil | 2019-03-18 12:00:39 -0400

Fix meatsprint (11834)
Meatsprint distributed monsters by placing them in a secret room, and
then letting them walk into permanent teleport traps. The trap changes
in 0.23 broke I think several of the assumptions this strategy made,
most importantly that tele traps work out of player los (66906bf02876).
This commit uses fundamentally the same approach, but instead of
teleport traps, uses a dlua call to teleport monsters immediately on
placement. It might be even simpler to do some kind of random placement
off the bat, but using the teleport code has various nice consequences
in terms of finding free spaces, etc. I also didn't put much effort into
seeing if there's a simple way to do this without the secret room.

It turns out that the previous implementation was letting some degree of
rate-limiting via monster random movement happen (I believe placement
could fail in cases where a monster didn't move off the spawn point). I
have done a rough rebalancing accordingly. With two spawn points instead
of 4, the overall spawn numbers are very closely matched; I would guess
that there's a slight increase in some of the higher-xp categories on
average, but there's plenty of variance so I'm not sure. This may need
more rebalancing based on feedback from people who have more experience
playing this sprint.

Here are some representative spawn numbers at turn 150:

0.23 with 2 spawn points:
Monsters: The Meatlord, 25 meat beasts, The Captor, The Defiler, The
Servant, 20 eight-headed meat hydras, 23 observers, 13 tyrants, 16
accurseds, 67 meat berserkers, 17 large bags of meat, 16 scourges, 33
destroyers, 13 wretched souls, 20 dreads, 161 bags of meat, 36
fleshlords, and 16 sculptors of flesh.
480 monsters, 35685031 total exp value (33124737 non-uniq)

(with 4 spawn points in 0.23 you hit the monster limit so it's more
annoying to compile the numbers, but they are unsurprisingly about
double this.)

0.22, with 4 spawn points:
Monsters: The Meatlord, 21 meat beasts, The Captor, The Defiler, The
Servant, 21 eight-headed meat hydras, 14 observers, 18 tyrants, 17
accurseds, 70 meat berserkers, 14 large bags of meat, 18 scourges, 37
destroyers, 21 wretched souls, 16 dreads, 170 bags of meat, 31
fleshlords, and 15 sculptors of flesh.
487 monsters, 32820392 total exp value (30260098 non-uniq)

--------------------------------------------------------------------------------
3dc15b6034 | advil | 2019-03-18 10:05:10 -0400

Don't save seed pref for sprint, tutorial

--------------------------------------------------------------------------------
6c5f6a5ba4 | advil | 2019-03-18 09:16:11 -0400

Disable seed .pref saving for DGL builds (11928 / kitchen_ace)
I didn't do this before because it doesn't actually affect anything
about starting a game, but I forgot that .pref reading uses regular
options reading, which will trigger an error for dgl builds if game_seed
is set. (There may be some harmless instances of this error remaining
that will only be visible to server admins until .pref files get
rewritten.)

--------------------------------------------------------------------------------
9bee6ebae3 | advil | 2019-03-17 21:13:22 -0400

Save seed number in startup prefs on game end
The effect of this change is to autofill the seed selection box with the
seed from the last ended game. This saves only the seed in a kind of ad
hoc way. However, the alternate behavior, which would be to repopulate
the entire prefs file from the ended game, isn't trivial -- since it
doesn't seem that all startup prefs are actually recoverable from a game
save. (That ultimately still may be the most sensible behavior though.)

--------------------------------------------------------------------------------
dbdffe56c5 | Edgar A. Bering IV | 2019-03-17 19:25:57 -0400

Tiles for summoner highlighting
I went with cyan to match console.

Closes #801

--------------------------------------------------------------------------------
6afd290f2f | Edgar A. Bering IV | 2019-03-17 16:52:49 -0400

Simplify and rename a variable (aidanh)

--------------------------------------------------------------------------------
f5976a5f5f | Martin Aigner | 2019-03-17 13:54:31 -0400

Highlight summoners when the cursor is over a summon in targeting mode
As suggested by Antares on tavern.

--------------------------------------------------------------------------------
063869c372 | advil | 2019-03-17 13:52:06 -0400

Run dactions on entering any level, fixing gozag+pregen (Goratrix)
Previously, dactions run only on re-entering a level, and not on
entering a generated level. For bribe branch, this was dealt with by
having the builder set the relevant monster flags when generating a new
level. For pregen, this needs to be done on entering the level, and the
simplest way was to just run dactions when entering any level; this
seems like a cleaner approach they way dactions are thought of anyways.
There might actually be a few wrath-related actions that weren't being
run as well. I don't *think* there will be unexpected consequences of
this, and most dactions won't do anything on a new level. But, it's not
impossible that this won't have some strange side effect I missed.

--------------------------------------------------------------------------------
5d897e9104 | Nikolai Lavsky | 2019-03-15 09:19:11 -0400

Prevent allied Shambling Mangroves from constricting themselves (11877)

--------------------------------------------------------------------------------
395302c1d3 | Umer Shaikh | 2019-03-15 09:03:23 -0400

Correct a comment
Lua function you.contaminated returns a number, not a boolean.

--------------------------------------------------------------------------------
2784ca5e57 | Umer Shaikh | 2019-03-15 09:03:23 -0400

Correct a comment
The comment misdescribes when the parameter auto_wield is true or false;
this commit brings it in line with the code.

--------------------------------------------------------------------------------
40992d5efd | Joshua Gelbard | 2019-03-15 09:02:12 -0400

Fix splash noises when dropping item into water
Added a missing `!`. Behavior was reverse of intended: instead of
swimming characters being the only ones exempt from item splash sounds,
they were the only ones making them.

--------------------------------------------------------------------------------
c02bd79eda | NormalPerson7 | 2019-03-15 08:38:53 -0400

Fix cut-off ability cost description (11893)
When the Sacrifice Purity ability is granted to the player with the
inhibited regeneration mutation, the ability's cost description is
  Purity (inhibited regeneration)
which is 31 characters, however the cost string was only allocated 30
characters, so the last parenthesis was being cut off.

Hence, extend the string length for the ability cost description to 32
characters, and adjust the ability screen's title line accordingly.

--------------------------------------------------------------------------------
cb5ae2cd75 | Josh Gelbard | 2019-03-15 00:05:15 -0700

Start new wanderers with weapon in slot 'a' (#1006)
All new characters who start with a weapon wielded will now

find that weapon in slot 'a'. This was already true for all

backgrounds except wanderer.
--------------------------------------------------------------------------------
890246250b | Josh Braden | 2019-03-14 19:24:02 -0700

Use & instead of equal for holiness check (11909) (#1001)

--------------------------------------------------------------------------------
c7eaa07895 | advil | 2019-03-14 15:20:27 -0400

Improvements to the seed selection ui
* make game_seed a sticky preference. This won't override rc preferences
  or CLI seed selection, but makes it a lot more convenient to dispense
  with ever setting it in an rc. The main effect is that this autofills
  the text box in the seed selection sub-menu; it doesn't affect
  the regular game start button (in contrast to selecting a seed in the
  regular rc).
* Fix a bug where a non-seeded game type could be started with a custom
  seed, if the game restarted after ending a seeded game started in the
  same session.
* add - as a shortcut to clear the seed input

--------------------------------------------------------------------------------
d121a6d4c0 | advil | 2019-03-13 14:27:20 -0400

Make search_astar more stable across platforms
This function is used by slime levelgen in order to ensure level
connectivity that doesn't require touching slime walls, and because of
this use matters for seeding in slime (both because its behavior impacts
what wall squares get removed, and because this astar implementation
draws heavily on the rng. The implementation was behaving differently
across platforms.  Because slime is pretty independent of other
branches, the instability was localized to that branch, but usually
affected the entire thing.

The basic problem is that the search fringe was sorted only by distance
in the priority queue, so if two coordinates were the same distance,
their ordering in the queue was implementation-dependent (and was
differing on mac vs linux builds at least). This fix makes the sort
stable in such cases by comparing coordinates as well. This won't
necessarily do anything for the speed of the search (perhaps LIFO
behavior would be better)...

I wonder if this overall approach is really the best way to ensure
connectivity in slime? And why does this algorithm need randomization
(classic a-star doesn't)? But this code is complicated enough that I'm
not going to mess with it further right now.

--------------------------------------------------------------------------------
654ca03102 | gammafunk | 2019-03-12 23:40:16 -0500

New transporter and Golubria tiles (CanOfWorms)
Transporters, transporter landing sites, and Golubria passages get tiles
that better communicate how they are portals that take you to another
location.

--------------------------------------------------------------------------------
7a2c91a3c8 | advil | 2019-03-12 21:12:50 -0400

Add a debugging rng call
Lets you look one step ahead.

--------------------------------------------------------------------------------
5963e8c6b7 | advil | 2019-03-12 19:11:27 -0400

Convert some floating point math to better fixed point math
This math was leading to instability across seeds depending on the
particular way in which floating point math was done on a build and
system.

This uses a suggestion from |amethyst - since callers always use
`percent` values that are divisible by 10, can just do the math with a
single decimal point rather than two, which takes up a lot less space.
This makes the calculation more accurate than what it replaces (though
it still truncates, rather than rounds).  For that reason, I have put in
a temporary stopgap with the quirks of the previous implementation when
run using the SSE version of the old floating point calculation. I will
remove this at some point after 0.23.2 is tagged.  (But for now, this
keeps the gotm stable.)

--------------------------------------------------------------------------------
4d90231847 | advil | 2019-03-12 09:17:31 -0400

Fix build try 2

--------------------------------------------------------------------------------
c3651c4c44 | advil | 2019-03-11 21:32:55 -0400

maybe fix the build

--------------------------------------------------------------------------------
e201941ac7 | advil | 2019-03-11 21:11:48 -0400

Un-revert a Makefile fix
This was lumped in with the sse change, doesn't need to be reverted.

--------------------------------------------------------------------------------
1e706217e8 | Alan Malloy | 2019-03-11 16:02:37 -0700

Don't return NaN from prompt_for_float

--------------------------------------------------------------------------------
c15b636e9c | advil | 2019-03-11 16:32:50 -0400

Revert "Build for SSE2 on all systems, including 32bit targets"
No longer necessary. Results #996 (and #992 in a different way).

This reverts commit 3d66cf40a65a3843061e5a6d1106f9fa5d2b0bdb.

--------------------------------------------------------------------------------
c07d39d5f4 | advil | 2019-03-11 16:32:23 -0400

Revert "Add a build option to not use SSE"
No longer necessary.

This reverts commit fc1eed5d34c6ec5942309776f806e12eb0ccc867.

--------------------------------------------------------------------------------
9dfec57598 | advil | 2019-03-11 16:17:44 -0400

Fix cross-platform lua number->int conversion the hard way
Lua 5.1 doesn't distinguish integers from numbers generally, and stores
numbers as doubles, but on the c++ side we very often want ints. In
3d66cf40a65a384 I discovered that, depending on where the lua library is
compiled, it may use different conversion methods in its conversion
calls, which have different truncation behavior, leading to seed
instability across systems (where it uses a specific hack on 32bit
non-sse builds, a different one in msvc, and a regular cast otherwise).
This behavior is determined at compile-time in luaconf.h, and the first
attempt at a fix tried to prevent contrib lua from being built with the
alternate behavior, always using a cast. This didn't generalize for at
least two reasons: it creates problems trying to compile on other archs
(see #992, #996), and it doesn't even cover all the problem situations:
linux will typically build with system lua, and then we are at the mercy
of whatever arch the system lua was built on anyways. (I have replicated
the problem in a 32 bit ubuntu container, for example, even with the
compilation fix.)

This commit moves away from using lua's default calls for converting to
ints, to conversion functions that we control in crawlcode. It's overkill
to convert everything, only the dungeon and related calls are really
needed, but converting everything was the most robust way to do it. Note
that this *doesn't* address any instances of this call in the lua lib,
with the hope that they won't matter.

The only alternative that I can think of to a change like this would be
to require building with contrib lua, and then fix the problem there,
but this would seem to go against the spirit of our current build
system.

--------------------------------------------------------------------------------
d8427f5388 | advil | 2019-03-07 09:26:25 -0500

Add a warning for setting `game_seed` online
Before, this failed silently, which in at least one case seems to have
confused a player into thinking that they succesfully set the seed.

--------------------------------------------------------------------------------
71aafec670 | advil | 2019-03-06 22:59:38 -0500

unbrace

--------------------------------------------------------------------------------
8aad8c4919 | gammafunk | 2019-03-06 19:15:38 -0600

Updates to the debian package guide
Reorganize and rewrite sections to get the order of steps right and make
the individual steps clearer. Also fix some typos and errors.

--------------------------------------------------------------------------------
029c7ce0ac | advil | 2019-03-06 16:32:48 -0500

Don't change game chapter on a level excursion from abyss (11922)
Level excursions can be used in the abyss to pull in ruined versions of
terrain from regular connected levels. This bug didn't come up before,
because if no levels have been explored (as is the case for an AK
start), there is no level excursion. But with pregen, the builder can
use terrain from levels the player hasn't seen yet, and if it chose to
do this, the level excursion was resetting the chapter for an AK start
to CHAPTER_ORB_HUNTING (for some seeds on turn 0). This generates an
error message when leaving the abyss for wizards, a crash for
non-wizards, and also would impact item/monster generation, because an
AK character is no longer in the pocket abyss, for seeds that are
affected. (But since AK starts that trigger this bug are just broken,
that last part is not too big a deal.)

This commit doesn't include save compat, because as far as I know this
is rare, but save compat could be added if I'm wrong about this.

--------------------------------------------------------------------------------
8c2e593055 | Doesnty | 2019-03-06 13:05:44 -0800

Let player ghosts be shafted (#1003)
This was an artifact from when player ghosts were totally unable to leave the 
floor they started on by any means. Now that they don't have this trait, and 
don't broadcast it in their descriptions, there isn't any reason for them to be 
special-case immune to shafts, or for them to destroy shafts uselessly on 
moving over them.
--------------------------------------------------------------------------------
1b465fed6c | advil | 2019-03-06 00:12:07 -0500

Don't crash when there are game types from the future
The save browser was crashing immediately on starting up in this case,
which is triggered by the presence of seeded games from 0.23. This
future-proofs a bunch of calls used by the save browser so that these
games behave just like any other incompatible future-versioned save game
in the main menu.

(if you want to cherry-pick this to a past version, it is probably
easier to use b7382820b72 from 0.22.)

(cherry picked from commit b7382820b7259ae5d2ffec6fa48112b66c2509ab)

--------------------------------------------------------------------------------
56e1b8fd0e | advil | 2019-03-05 21:53:08 -0500

Don't let explore options impact connectivity checks
This was impacting seed stability: this code is called in various
contexts, including stair checks / vault exit checks, plus from some lua
code. The returned coordinate could be different depending on these
options. The options that could potentially matter are
`explore_wall_bias` and `explore_item_greed`, though I suspect the
latter won't. The former I have verified to matter on seed
18127138284784505733 (UV4's game of the month seed right now), where
setting it to 1 prior to this commit produces a different dungeon than
the default value of 0.  Thanks to u/kitchen_ace for noticing that
deleting their rc file changed the dungeon, otherwise I'm not sure I
would have ever found this bug.

--------------------------------------------------------------------------------
64c5a76fe2 | Alan Malloy | 2019-03-05 14:26:30 -0800

Don't feel safe while emergency-flying (/u/StairDancer)

--------------------------------------------------------------------------------
b74a2b4756 | Alex Jurkiewicz | 2019-03-05 10:10:31 -0800

TAG_MAJOR_VERSION improvements (#955)
The program now almost compiles with TAG_MAJOR_VERSION=35.



"Almost" because there are some changes that cannot be made compatible

to both the current and the upcoming version.
--------------------------------------------------------------------------------
3f7990ae4d | advil | 2019-03-05 00:14:06 -0500

Save game seed properly
This was broken in 372e6d594387f, which caused the seed to save as 0
because of the timing of the call to the `player` constructor.  After
initial rng setup this value isn't used for anything meaningful (since
what matters is the rng state itself), so its disappearance was entirely
cosmetic -- but also very confusing to players.

--------------------------------------------------------------------------------
fa3a8d60db | advil | 2019-03-04 23:30:10 -0500

Add a paste option to the seed ui for local tiles
This is very ad-hoc and specific to the seed menu, but it'll do for now.
Needs testing on windows/linux, but it's relying on SDL code so should
work if that does.

Also restrict text input for the seed text box to digits.

--------------------------------------------------------------------------------
f1ee1cdb4e | advil | 2019-03-04 17:24:35 -0500

Allow debug.reset_rng to take a string for 128 bit seeds
This isn't very elegant, but it gets around lua big number handling
issues that I was otherwise having.

--------------------------------------------------------------------------------
7c82874332 | advil | 2019-03-04 09:29:46 -0500

Add an extra digit to the seed choice input box (Siegurt)
Until this is in stable, use the rc option `game_seed` or the command
line option `-seed` to select a seed that needs the extra digit.

--------------------------------------------------------------------------------
36218c0b75 | NormalPerson7 | 2019-03-04 00:49:27 -0500

Convert `enum confirm_butcher_type` to an enum class
The enum class retains the same name. It would be preferable to use
something shorter, such as confirm_butcher, but this is already used as
a member of Options, and changing this seems unnecessary.

This change includes changing CONFIRM_AUTO to
confirm_butcher_type::normal, because `auto` is a type and shouldn't be
used for enum class members.

[Committer's note: Closes #951]

--------------------------------------------------------------------------------
b23cc65123 | NormalPerson7 | 2019-03-04 00:49:06 -0500

Change `enum activity_interrupt_payload_type` to `enum class ai_payload`
Significantly shorten the enum class name in the process to make
identifier names a reasonable length. AIP_INT and AIP_STRING are
converted to ai_payload::int_payload and ai_payload::string_payload to
avoid conflicting with type names.

--------------------------------------------------------------------------------
bbb2dcfae6 | NormalPerson7 | 2019-03-04 00:49:06 -0500

Convert `enum confirm_level_type` to `enum class easy_confirm_type`

--------------------------------------------------------------------------------
5908fbaaba | NormalPerson7 | 2019-03-04 00:49:06 -0500

Rename confirm-level-type.h to easy-confirm-type.h
The following commit changes the enum to an enum class and its name to
easy_confirm_type. These are done in separate commits because otherwise
git pretends confirm-level-type.h and easy-confirm-type.h were deleted
and created, respectively, rather than it simply being a rename.

--------------------------------------------------------------------------------
24134c8637 | NormalPerson7 | 2019-03-04 00:49:06 -0500

Convert `enum tide_direction` to `enum class tide_dir`

--------------------------------------------------------------------------------
c5fff3c665 | NormalPerson7 | 2019-03-04 00:49:06 -0500

Convert `enum confirm_prompt_type` to an enum class
The enum class retains the same name, in line with confirm_butcher_type.

--------------------------------------------------------------------------------
176abe67a9 | NormalPerson7 | 2019-03-04 00:48:57 -0500

Convert `enum cleansing_flame_source_type` to an enum class
Turn this enum into the enum class cleansing_flame_source.

Also convert the functions cleansing_flame and
setup_cleansing_flame_beam to use type cleansing_flame_source instead of
type int, as this is now mandatory.

--------------------------------------------------------------------------------
6e6263181c | NormalPerson7 | 2019-03-04 00:48:57 -0500

Convert `enum branch_flag_type` to `enum class brflag`
The name of the enum class changes to be significantly shorter, so that
references to members of the enum class are of a similar length to
before. Additionally, add a new bitfield type to use for the member
variable Branch::branch_flags - this type is called branch_flags_t.

Convert some uses of bitwise and to use testbits, where the raw bitwise
and will now fail to compile (in return statements and variable
definitions).

--------------------------------------------------------------------------------
5d75ef2713 | NormalPerson7 | 2019-03-04 00:48:57 -0500

Convert `enum area_centre_type` to an enum class
The enum class retains this same long name. Ideally we would shorten the
name of this enum class: area_centre is already taken by a struct though.

--------------------------------------------------------------------------------
1735f9d359 | NormalPerson7 | 2019-03-04 00:48:56 -0500

Convert `enum ac_type` to an enum class
The enum class retains the same name, because anything shorter (such as
`ac`) risks being used somewhere else.

--------------------------------------------------------------------------------
b51ee145e8 | NormalPerson7 | 2019-03-04 00:48:56 -0500

Convert `enum ev_ignore_bit` to `enum class ev_ignore`
...and change a couple of bitwise ands to use the testbits method, where
required.

--------------------------------------------------------------------------------
9ae989b715 | NormalPerson7 | 2019-03-04 00:48:41 -0500

Change `enum activity_interrupt_type` to `enum class activity_interrupt`
Convert the activity_interrupt_type enum to an enum class and rename the
enum class to activity_interrupt to shorten identifier names somewhat.
Also define NUM_ACTIVITY_INTERRUPTS as a `constexpr int` rather than it
being inside the enum class definition and thereby taking the
activity_interrupt type.

--------------------------------------------------------------------------------
c27245e1b5 | NormalPerson7 | 2019-03-03 19:39:15 -0500

Convert `enum menu_type` to an enum class

--------------------------------------------------------------------------------
0e0ca4a038 | NormalPerson7 | 2019-03-03 19:39:15 -0500

Convert `enum branch_iterator_type` to an enum class
The enum class retains the same name.

--------------------------------------------------------------------------------
dcab4b91bc | NormalPerson7 | 2019-03-03 19:39:15 -0500

Convert `enum branch_noise_level` to `enum class branch_noise`

--------------------------------------------------------------------------------
e9c4e45a53 | NormalPerson7 | 2019-03-03 19:39:15 -0500

Convert `enum passage_type` to an enum class
The enum class has the same name as the original enum. Also split lines
in the enum class definition so that each identifier gets its own line.

--------------------------------------------------------------------------------
9a4444a37b | NormalPerson7 | 2019-03-03 19:39:15 -0500

Convert `enum shadow_step_block_reason` to an enum class
The name of this new enum class is shadow_step_blocked.

--------------------------------------------------------------------------------
caa6c10b7c | NormalPerson7 | 2019-03-03 17:51:45 -0500

Let barachim use grand finale at range 8 (11917)
The range of grand finale was hardcoded as 7 rather than using
LOS_RADIUS, so when barachim were added, this wasn't updated.
This commit changes the grand finale targeter to use targeter_smite's
default parameters, which include range = LOS_RADIUS.

--------------------------------------------------------------------------------
eb6712d24a | advil | 2019-02-28 22:22:17 -0500

Quiet some gcc warnings

--------------------------------------------------------------------------------
b31aada270 | gammafunk | 2019-02-28 17:49:03 -0600

Update changelogs for 0.23.1
(cherry picked from commits eed6394480af98da628bc1a7c7918dbbe1e38c16 and
d6e21ad81dcba7f7f8c15336e0e985f070ce85fb)

--------------------------------------------------------------------------------
d96d3d62bd | NormalPerson7 | 2019-02-28 13:29:47 -0500

Fix dancing weapon description on hover (11887)
Previously the dancing weapon's name was being duplicated because there
weren't proper checks for dancing weapons in the second half of
get_monster_equipment_desc. This was broken in f44d0c5.

--------------------------------------------------------------------------------
ad582e563c | gammafunk | 2019-02-27 19:41:00 -0600

Add Debian changelog entries for past releases
Entries for bugfix releases from 0.22, 0.21, and 0.20 that are missing
from the current Debian changelog.

--------------------------------------------------------------------------------
ff85673007 | gammafunk | 2019-02-27 19:35:56 -0600

Add the changelog for 0.22.1

--------------------------------------------------------------------------------
d0b080c8eb | gammafunk | 2019-02-27 01:56:30 -0600

Correct a comment

--------------------------------------------------------------------------------
8d2b5ac6c9 | gammafunk | 2019-02-27 01:56:30 -0600

Lower the chance for Boris to respawn
Boris has a flat 1/3 chance to respawn in relevant branches as of
4636eb8. This has effectively doubled the total rate at which Boris
spawns when comparing boris kills between the 0.23 and 0.22 tournaments.
This commit lowers the chance to 1/6 to bring the respawning rate closer
to the previous one.

--------------------------------------------------------------------------------
e4b1dceb6d | advil | 2019-02-26 23:00:27 -0500

Change error reporting for post-place hook failures
When a post-place hook tries to place a map, the main reason to set
die_on_failure is just to trigger a veto in a sensible way. However, the
way this was implemented inevitably printed an error message about the
placement failure to the user, causing bug reports and confusion. This
situation was expanded by 56b24058a9 and 091e5a18fee, after which the
proper way for a post-place hook to trigger a veto when placing a map is
exactly to set die_on_failure. This commit makes any lua error during a
hook with a specific string indicating that it is a failure to place a
subvault silent, but still vetoing.

Conveniently, this will clean up the infamous "Failed to place map
'shoals_ilsuiw_ice'" errors too (10080, 10262), as this is one of the
cases where previously a post-place hook correctly set die_on_failure. I
should note that I don't know why it is specifically this map of the
`shoal_guardian`-tagged maps that tends to fail to place, but from the
debug build output when this failure happens I think it is just normal
subvault placement failure; there must be *something* about it that is
more likely to accrue placement failures than the others with this tag.

--------------------------------------------------------------------------------
11e5bb6019 | Josh Braden | 2019-02-26 16:53:08 -0500

Remove incorrect fake_mutations from vampire (11870)

--------------------------------------------------------------------------------
a3c21ffb5e | advil | 2019-02-25 19:52:16 -0500

Improve behavior of local tiles Text, especially on hidpi displays
This commit ends up doing a number of things:

1. (most important) fix a bug on retina (and other hidpi) displays where
the height of Text widget contents was not calculated correctly, because
the code didn't handle fractional y advances. This resulted in ctrl-p
dropping several lines at the end, among other things.
2. Fix handling of fractional y advances when drawing highlights, again
a potential issue in long Texts (though less important, as highlighting
is almost never used right now).

In the course of this, I needed to understand how the highlight code
worked and this forced me to add a lot of comments and do some code
formatting, as well as address the following bugs:

3. Don't highlight lines more than once in hl_line mode, this results
in unreadable text.
4. Handle the case where the end of a string coincides exactly with the
end of the window and is highlighted, which was leading to glitches in
my testing.
5. Better handling for cases where a highlight spans multiple slices of
the formatted string. I'm not 100% sure if this was really broken before
my fix of 4, but it works now.

I'm still not entirely sure about all this highlighting code, and it's
pretty complicated and monolithic, so it could probably use some more
work and refactoring.

--------------------------------------------------------------------------------
db70d5e40e | Alex Jurkiewicz | 2019-02-25 13:29:50 -0800

Expose MR and Stealth to Lua
Two new functions return the number of pips for each of these
resistances.

--------------------------------------------------------------------------------
1e4b560c4d | Umer Shaikh | 2019-02-25 09:51:29 -0800

Clean up god gifts' interaction with delays (11825)
Getting a Nemelex gift at the end of a successful passwall that revealed
new cells caused the message "Your meditation is interrupted." to be
printed. This is because do_god_gift interrupted running and resting in
a way that interrupted and removed the passwall delay. We now call
stop_running with the clear_delays parameter set to false in order to no
longer clear delays. We also call stop_running instead of directly
reaching down to you.running.stop.

--------------------------------------------------------------------------------
fc1eed5d34 | advil | 2019-02-24 21:10:36 -0500

Add a build option to not use SSE
This is in response to #992. To use this, do e.g.

    make TILES=y NOSSE=y

--------------------------------------------------------------------------------
3f76249d50 | gammafunk | 2019-02-24 17:12:08 -0600

Remove the trunk reminder for the 0.23 tournament
This reverts commit 7d8ec5708864d2872871cd49295b12a5b291238d.

--------------------------------------------------------------------------------
df024910ca | Chris Campbell | 2019-02-22 19:26:12 +0000

Fix character creation highlighting in console
Darkgrey doesn't function in some terminals, so instead use the same colouring
as webtiles builds.

--------------------------------------------------------------------------------
2bff182ff0 | Chris Campbell | 2019-02-22 17:06:56 +0000

Update a file path in git docs

--------------------------------------------------------------------------------
a2403f3307 | advil | 2019-02-19 17:35:45 -0500

Quiet a gcc warning
(signed vs unsigned comparison)

--------------------------------------------------------------------------------
e09df0593c | advil | 2019-02-19 17:24:26 -0500

Fix PlaceInfo fixup more (11890)
...

--------------------------------------------------------------------------------
ab847a317b | NormalPerson7 | 2019-02-19 14:08:39 -0800

Fix Ozocubu's Refrigeration (11885)
Since fb95405, the damage of both the player and monster versions of
Ozocubu's Refrigeration has been one third of what it should be,
specifically 3d((5 + power/10)/3), leading to a very underwhelming
level 6 spell.

This was because fb95405 converted the original dice_def that was used
to calculate the damage from this spell into a calcdice_calculator,
without adjusting for the fact that the calc_dice function divides the
number of sides on each die by the number of dice.

One way to fix this would be to use a dicedef_calculator instead;
however a calcdice_calculator is preferred for the fact that it randomly
rounds power/N instead of always using integer division (which creates
minor breakpoints). Therefore this commit instead fixes the damage by
tripling the inside of the dice roll bracket, leading to a
3d((15 + 3*power/10)/3) dice roll which is equivalent to the old
3d(5 + power/10).

--------------------------------------------------------------------------------
429d40e2d6 | advil | 2019-02-18 22:36:17 -0500

Set the branch depth correctly in 107517c6e49a
...

--------------------------------------------------------------------------------
107517c6e4 | advil | 2019-02-18 22:26:53 -0500

Prevent a PlaceInfo miscalculation and fix the resulting crash
The level entry code (for purposes of pregeneration) assumed that 0
turns on level = the level hasn't been entered. There are in fact at
least three ways to break this assumption: wizmode movement (e.g.
&u,&d), taking an escape hatch and being shafted immediately, and being
banished by something fast enough to move when you first enter the level
(at least, ebering says this is possible). When this happened, the
PlaceInfo accounting would be run twice, and so the level would get
double-counted, leading to a crash deeper in the branch. Luckily I added
the level_entered code towards the end of the project, and this does
what this code needs.

This commit also includes some save compat since there may be ongoing
games during tournament that have this crash.

--------------------------------------------------------------------------------
3d66cf40a6 | advil | 2019-02-18 00:09:46 -0500

Build for SSE2 on all systems, including 32bit targets
Believe it or not, this is a seed stability fix. On 32 bit targets where
SSE2 is not defined, Lua uses a different method for converting from
numbers (doubles) to ints (see `lua_number2int` in `luaconf.h`), than
what happens on other targets (which is just a regular cast). The two
methods have different rounding behavior, which is leading seeds that
involve layout that passes non-integer values to c++ code into trouble;
for example, layout_rooms does this during its join_the_dots calls (see
11884, seed 5313719195296785585). In practice, the non-standard rounding
was happening only for cross-compiled windows builds that I know of, but
perhaps some linux builds are also 32bit; there's also a code path that
might affect msvc. Using -msse2 should prevent lua from ever using the
non-standard conversion code.

This fix should have the added benefit of preventing x87 from ever being
used. We'll see though if this will bring people out of the woodwork who
are building on very old devices...

This commit also includes an unrelated tweak to some ordering in the
Makefile so that AUTO_OPT can be used.

--------------------------------------------------------------------------------
53b51606c3 | gammafunk | 2019-02-16 23:36:54 -0600

Tidy up a monster class method
In monster::is_summoned(), remove checks for derived undead spells that
no longer apply, since those use fake abjuration now, and clean up
comments.

--------------------------------------------------------------------------------
d3e027da15 | gammafunk | 2019-02-16 23:36:54 -0600

Don't let vampirism drain temporary monsters (blorx1)
Temporary monsters created with a "fake abjuration" timer are considered
non-summons, since they're created from some object, e.g. Sticks to
Snakes, Animate Dead, and Tukima's Dance. Natural holiness monsters
created this way are currently susceptible to vampirism from Vampiric
Drain and vampiric melee attacks. This is a problem since these
temporary monsters can be created by the player cheaply and killed with
vampiric effects to restore HP and satiation (in the case of player
vampires).

Vampirism of temporary summoned monsters is already prevented, so this
commit prevents it for these other temporary monsters as well. The main
things effected are Sticks to Snakes and the Ratskin Cloak. Other
differences between these temporary allies and normal summoned allies
(e.g. the former allow Inner Flame) are unchanged. Durably summoned
monsters are likewise unchanged, since these are not player-created.

--------------------------------------------------------------------------------
d155597332 | advil | 2019-02-15 10:09:00 -0500

Don't try to describe off-level orc gifts (11881)
Instead just say that the orc is off-level. Better would be to describe
both the item and where they are, but the the way off-level followers
are implemented means that it's basically impossible to get the item
information without either a level excursion or a major rewrite.

One option might be to save the item string as a prop?

--------------------------------------------------------------------------------
5d539f04da | advil | 2019-02-14 23:14:02 -0500

shorten test again

--------------------------------------------------------------------------------
597dbe2dff | advil | 2019-02-14 21:41:12 -0500

Fix a math error in a test

--------------------------------------------------------------------------------
3372e67c91 | advil | 2019-02-14 14:46:16 -0500

Uncomment an accidentally commented vault call

--------------------------------------------------------------------------------
fd6172a737 | advil | 2019-02-14 14:16:31 -0500

Fix Beogh crash for polymorphed followers (11880 / reaverb)
If an orc gets turned into something that cannot hold items (e.g. via a
chaos cloud shapeshifter effect) it will drop its gift, but the gift
prop does not get cleared, something the new ^ extra screen was not
checking for. This commit fixes things at the point of the crash; it's
possible that the prop should get cleared when the item is dropped in
the first place.

--------------------------------------------------------------------------------
f57072b2d6 | advil | 2019-02-14 11:49:56 -0500

Fix a couple of des cache random tag bugs
Because lua code is run during des cache validation, any random
decisions made during validation may be incorporated into the cache. I
*think* this is mostly harmless but there are at least two problems that
arise when it applies to vaults tags. First, random choices when
selecting maps can be impacted by the number of tags *in the cache*, so
seeds will potentially behave differently depending on choices made when
first building the cache. Second, because tags are strictly additive, a
tag choice made during cache building will never get removed; for
example in `lemuel_altar_in_water` before this commit, if the cache
rolled no_pool_fixup, this would be present in all instances of this
vault regardless of rolls when actually placing the vault.

It's possible that tags should be cleared when rerunning vault lua for
placement, but that seems like a change that could potentially impact a
lot of things and will require some testing, so I'm going to postpone
it.

In general it would probably be best to eliminate *all* randomization
from the cache, but I'm not yet sure what the best technical solution to
that is (there are quite a few vaults that use random calls like this to
set SUBST or monster values, it doesn't seem ideal to impose
is_validating checks on all of them).

--------------------------------------------------------------------------------
9a59f91d9a | advil | 2019-02-14 09:19:22 -0500

Improve a very old fixup

--------------------------------------------------------------------------------
011bc4bd61 | NormalPerson7 | 2019-02-13 15:35:58 -0800

Fix yellow draconians' rAcid mutation not being applied (malacante)

--------------------------------------------------------------------------------
431b8d2fe3 | advil | 2019-02-13 16:21:50 -0500

Change behavior of multiple DEPTH: lines, fixing some uniques (ebering)
Previously, multiple DEPTH: lines would be interpreted as the last
overriding any previous ones. This changes them to be additive, similar
to how TAGS: lines work. It also removes an apparently vestigial
function intended to do something with default depths that relied on the
previous behavior; in fact, the `default-depth:` .des syntax is
implemented in a different way using the `dgn.set_default_depth` call,
not affected by this commit.

This change fixes the placement of uniques touched in 402804a59a51,
which accidentally have a fairly restricted placement in 0.23.0. (This
fix will be in trunk and in a future point release of 0.23, but not
during the tournament -- so anyone looking for Aizul etc may need to
look in unexpected places!)

This commit will likely affect many seeds.

--------------------------------------------------------------------------------
cea5463b43 | Alan Malloy | 2019-02-12 09:35:40 -0800

Handle temporarily-changed terrain when asserting level validity (#11876)

--------------------------------------------------------------------------------
3d167c7f2c | advil | 2019-02-12 10:39:38 -0500

semicolon + checkwhite

--------------------------------------------------------------------------------
e20b4fce83 | advil | 2019-02-12 09:38:31 -0500

Restructure PlaceInfo fixup to handle gauntlet upgrades
Saves upgraded to 0.23 on windows are crashing, because you.branch_info
was not correctly initialized on mingw builds (see e13aadb210) and
gauntlet was saved with a global PlaceInfo. This commit handles save
compat for these files.

This change makes the fixup slightly more generic and removes a save
version check, which I don't think is really necessary here (the
desolation fixup was one of the first things I did, before even being on
the devteam, so I think I was being ultra-cautious with save compat).
I've left the branch check though, so this will cause crashes if a new
variant of this bug appears in the future, or if something else goes
wrong with PlaceInfo.

--------------------------------------------------------------------------------
372e6d5943 | advil | 2019-02-12 09:11:30 -0500

Revert "Revert "Eliminate some more dependencies on globals from 
player::player""
On further inspection, this should be ok: I was concerned about save
compat, but the save order for place_infos is entirely independent of
the storage order.

This reverts commit 7635c99b35658e33562b239784f4f9876285a6a8.

--------------------------------------------------------------------------------
7635c99b35 | advil | 2019-02-11 23:13:46 -0500

Revert "Eliminate some more dependencies on globals from player::player"
bad branch order assumptions

This reverts commit e13aadb210ac7751cfb85537baaca10534c22d3b.

--------------------------------------------------------------------------------
e13aadb210 | advil | 2019-02-11 22:29:34 -0500

Eliminate some more dependencies on globals from player::player
On mingw builds, branch_info was not getting initialized correctly here
because branch_iterator depends on a global, `branches`, which was not
initialized before the constructor is called for the global `you`. Use
the enum order instead of anything fancier to initialize `branch_info`.

Also don't set the seed here, it isn't need and leads to another
potential order issue.

--------------------------------------------------------------------------------
33396473a1 | advil | 2019-02-11 21:50:13 -0500

Simplify levels_visited
This was overly complicated because I didn't understand how
CrawlStoreValue works; the necessary hash table is automatically created
on the get_value() call. This also has the bonus of removing a
dependency on a global from player::player().

--------------------------------------------------------------------------------
e52b27f005 | advil | 2019-02-11 11:13:18 -0500

Place AK start in abyss with pregeneration on (11871)
The chapter check was basically in the wrong place; moved it up to
outside the builder call. Also, just in case, unwind the chapter
variable while doing pregeneration so that nothing can condition on it
incorrectly.

--------------------------------------------------------------------------------
1c07cc13e6 | advil | 2019-02-11 10:50:30 -0500

Small tweak to vault_catalog.lua
Really, really clear everything before regenerating.

--------------------------------------------------------------------------------
60e86920eb | advil | 2019-02-11 10:37:54 -0500

Deprecate acquire item specs for regular dungeon generation
Conditioning level generation on the player is generally now deprecated
(I think there's consensus that this is bad for various reasons, but the
reason I care about is that it interferes with seeding). This is the
latest case of this that I have run across. These item specs directly
call the acquirement code, which has a bunch of conditioning on the
player to try to make the generated item more usable or appropriate. For
non-pregenerated games this can affect randomization afterwards, and for
pregenerated games it simply doesn't make much sense given that the
player is mostly a blank slate when the acquirement is run. If you
really want the player to have an item generated by this code, just drop
a scroll of acquirement. In very special cases, it is possible in
principle to generate an item on the fly with this item spec (several
sprint maps do this).

I've done somewhat arbitrary choices of replacements depending on my
mood and what the vault appeared to intend, trying to get equivalently
good and appropriate items, but these might need further refinement.
Vault designers can consider `superb_item`, `any good_item`, and
`star_item` when their intent is, place something potentially great but
fairly random.

There are some rarely used special cases of this syntax that are still
in the code, e.g. the god syntax: there was all of one non-trove
instance of this syntax left, and it was using a god (TSO) that has
barely any acquirement special casing; I changed this one to something a
bit more specific. Possibly this syntax should just be removed.

This commit leaves only a few instances of this item spec, mainly in
troves (where it is not deprecated). There are a couple calls in abyss
that seemed ok, but possibly should be changed, as well as some uses in
sprints as mentioned above.

--------------------------------------------------------------------------------
88f18ea6ed | advil | 2019-02-11 10:26:51 -0500

constify a bunch of instances of PlaceInfo
This didn't actually fix anything, but made me feel better.

--------------------------------------------------------------------------------
4f8aab8ed9 | advil | 2019-02-11 10:23:25 -0500

Add a debugging hook
This is kind of dumb but I can tell I'm going to need this again. This
is aimed at debugging generation that may be happening deep in some test
sequence: toggle this on to echo all dprfs to stderr for some window of
time. (E.g. in a recent episode I used it to print all DNGN_DIAG
messages while the builder was generating Lair:6 for a particular seed
in vault_catalog.lua.)

--------------------------------------------------------------------------------
13aa1b5c4e | advil | 2019-02-11 10:19:02 -0500

Clear even more state for tests
As long as `acquire` is a possible item spec, then the builder can have
some dependency on what items the player has seen before, and so this
needs to be cleared. In a future commit I will limit the use of
`acquire` to portals, but we still want to clear this for better control
in tests. Also, reorganize this function a bit, and add yet more
DIAG_DNGN spam (sry).

--------------------------------------------------------------------------------
e1bfdf8443 | advil | 2019-02-09 15:20:53 -0500

Fix a shopping list crash
This commit actually initializes the member variables for ShoppingList,
most importantly `list`, and resets the global shopping_list object in
_reset_game(). When a game had a shopping list and reset_after_save was
true, then saving that game and opening a new one would lead to a stale
pointer to the first game's deallocated shopping list prop.

Having this object work by a live pointer to a member of you.props is
probably not a great idea, all around...

--------------------------------------------------------------------------------
7d8ec57088 | gammafunk | 2019-02-08 14:06:34 -0600

Add a trunk reminder for the 0.23 tournament
[skip ci]

--------------------------------------------------------------------------------
4e4936a574 | advil | 2019-02-07 20:26:43 -0500

fix the fix

--------------------------------------------------------------------------------
a7c82940b4 | advil | 2019-02-07 20:24:26 -0500

Improve save compat for visited level tracking
What I had written before wouldn't work for a turn 0 save, and it
appears that the default constructor isn't necessarily getting called so
the fixup needs to initialize the prop.

--------------------------------------------------------------------------------
ce0dbf48b2 | advil | 2019-02-07 12:32:31 -0500

Fix vault printing in morgues after game end (NP7)
It turns out that the save is already deleted at this point, so some of
the checks I was using for level existence weren't working right.

--------------------------------------------------------------------------------
b3eb09ec81 | gammafunk | 2019-02-07 11:07:09 -0600

Final changelog for 0.23
Some wording tweaks and typo corrections.

[skip ci]

--------------------------------------------------------------------------------
f756fb0b9a | gammafunk | 2019-02-07 10:17:59 -0600

Update the Debian changelog for 0.23
(cherry picked from commit 195ea7e421b6cb7e468f0b6391be23ac66777778)

--------------------------------------------------------------------------------
56b24058a9 | advil | 2019-02-07 10:40:41 -0500

Adjust one post_place hook
After auditing the post_place calls, I see some potential issues, but
not many that are made worse by 091e5a18feeb (mostly cases where
persistent dungeon state is probably not handled correctly if map
placement fails). This is the only vault I found that really doesn't
make sense unless the map placement works, and wasn't already set up to
abort on failure. I didn't adjust any serial vaults, so it's conceivable
that these could now place without any post_place placements working in
rare cases, so they may need tweaking if this comes up a lot.

The awkward thing about die_on_failure is that it (probably) prints a
lua error to the player. However, the only reason why the old code
didn't print a (more cryptic) error on a veto was because the error
handling code was buggy in the face of an exception. It may be that we'd
want a way of having a silent die_on_failure though.

--------------------------------------------------------------------------------
091e5a18fe | advil | 2019-02-07 09:29:45 -0500

Catch dgn_veto_exception when placing maps from lua
When an exception is thrown across lua code, it severely messes with the
lua stack and lua's use of setjmp/longjmp, at least for the way we have
it configured. This was causing pretty bad crashes on post-place hooks
when run from tests: the exception was thrown in c++ called from lua
called from c++ called from lua called from c++, and caught in the
intermediate c++ black, and basically treated as a lua error (I think),
but just clobbered the lua stack, so the outer calling lua was left in
an indeterminate state and any error there (which would happen
immediately, as variables were shuffled) would cause a longjmp failure.
This didn't go quite so badly in practice when there wasn't the outer
test lua layer, but I still think it's pretty risky to allow throwing
this, unless we shift lua to itself use try/catch.

This commit *changes the behavior* of post-place hooks. Previously, they
would implicitly veto the entire map if a post-place hook map placement
call failed. Now, they will only veto if the post-place hook sets
die_on_error (which none do). In practice, this probably comes up for
serial vaults (e.g. serial_forest) which can place many subvaults, where
some of the later tries fail on a crowded level. I have left a note in
However, it may have bigger implications. The quick fix for any maps
that really need the old behavior would be to call lua `error()`, though
this will print an error message to the player.

(cherry picked from commit 72689e85ba0b1ffd4eac588e90b4b83a4ce88d4b)

--------------------------------------------------------------------------------
25a2d9f3b9 | Edgar A. Bering IV | 2019-02-06 22:11:47 -0500

Update CREDITS.txt
[skip ci]

--------------------------------------------------------------------------------
f005ca4cc3 | gammafunk | 2019-02-06 20:19:37 -0600

Decorations for 9x9 Gauntlet maps
Use a consistent statue display wall motif for all four 9x9 Gauntlets.
Also add various statues and lava tiles throughout the maps. This helps
give these 9x9 maps a common feel, similar to how the 7x7 and mixed
7x7/9x9 map sets each have their own decorative themes.

--------------------------------------------------------------------------------
cb1519bca2 | advil | 2019-02-06 18:12:29 -0500

checkwhite

--------------------------------------------------------------------------------
d227540562 | advil | 2019-02-06 17:44:09 -0500

Fix progress bar webtiles behavior
Not sure what happened here.

--------------------------------------------------------------------------------
e8a6cd6aab | advil | 2019-02-06 17:44:09 -0500

Improve webtiles support for seeding/pregen
This adds a new command line option `-pregen`, as well as an
argument-less version of "-seed" that triggers the seed choice menu and
sets the right game type. Bothing seeding and pregen are usable from
the command line in DGL builds, though rc file options that set these
are still disabled in DGL builds so that server owners have some
control. So calling "./crawl -name asdf -seed" will pop up the seed
choice menu before starting the game, and (if a user picks a non-0 seed)
will start a game of type "Seeded", and "./crawl -name asdf -seed 1
-pregen" will force pregeneration of seed 1 after character selection.

This is pretty simple to set up in vanilla webtiles, I've included an
example in config.py (which of course no one merges). One awkwardness
(also for tutorial) is that these options will load a non-seeded game if
there is one under the right name, which is logical but not very
intuitive as a UI thing (you'd probably want to give an error).

caveat emptor: nothing else in the crawl infrastructure (especially
sequell) has been set up to handle the new game type, and I have no idea
what would happen if you try to publish milestones using it. So if you
are thinking about using this in a live server, test it out carefully...

--------------------------------------------------------------------------------
c81a885222 | advil | 2019-02-06 17:44:09 -0500

Pregenerate the vestibule
I'm beginning to think that this is_valid() check isn't very good...

--------------------------------------------------------------------------------
6670cd2b35 | advil | 2019-02-06 17:44:09 -0500

Explicitly track visited levels
My previous pregen-related commits tried to avoid this, but I don't
think it can be avoided. The basic problem is that this information is
also present in the turncount on a level, but that information is saved
with the level chunk, and it turns out to be kind of useful to have in
many cases where the player isn't on the level in question. Previously,
whether a level was generated (which is tracked in a simple way in the
save package) was synonymous with whether the level had been visited, so
most code just used that. The new implementation uses a CrawlHashTable
as a prop on the player.

This commit specifically fixes three pregen bugs: (i) rune locks were
broken (would always open), (ii) jiyva would eat items on all levels,
not just levels you'd visited, and (iii) one of the perennial problems
with pregen implementations, X] shows a blank screen. It also further
cleans up the morgue vault listing code, and provides more information
for a wizmode morgue. If there are any pregen games in the wild yet,
this fix won't do save compat for them and they'll still have these
bugs, but it will do save compat for regular games.

--------------------------------------------------------------------------------
9ff413599d | gammafunk | 2019-02-06 11:57:52 -0600

Fix some Gauntlet decorations
I ended up not using flame cloud decorations on this map, but didn't
replace the glyphs. Use lava to surround the statues instead.

--------------------------------------------------------------------------------
748db23bec | Edgar A. Bering IV | 2019-02-06 11:42:57 -0500

Only check for adjacent friendlies with exploding ammo (11857)
Commit 853fe2ed08 added a friendly fire check for portal projectile
fired exploding ammo; however it did not restrict this check to
exploding bolt types.

--------------------------------------------------------------------------------
dd71560323 | advil | 2019-02-06 09:33:30 -0500

Initialize int member variables of formatted_scroller (11838)
For many scrollers, the initial position was being determined by the
uninitialized m_scroll, leading to fairly random behavior (probably
compiler-dependent, too). For good measure, I initialized all three.
This also fixes a bug in the way FS_START_AT_END was handled for this
class, where in some cases (maybe most cases) a scroller position would
be set but then overrided by the uninitialized value of m_scroll. Since
this value would usually be a large number, the scroller very often did
start at the end.

Did not track down why this behavior appears to have changed recently,
since this bug is months old, but it could be to do with something about
how uninitialized values are handled that we don't directly control.

--------------------------------------------------------------------------------
cfe09e8e04 | achuah | 2019-02-06 08:36:21 -0500

Update crawl_manual.rst

--------------------------------------------------------------------------------
81bb1ad7dc | gammafunk | 2019-02-05 23:20:50 -0600

Shorten the path of a Gauntlet exit area
In gammafunk_gauntlet_one_two_three, move the landing sites leading to
the minotaur's vault closer together. This way there's less walking when
taking transporters in the paths on the outer edges of the map.

--------------------------------------------------------------------------------
e688737648 | gammafunk | 2019-02-05 23:20:50 -0600

Add more exits and statues to some Gauntlets
Add a second exit to the other end of the 9x9 gauntlet maps so it's more
convenient to exit as well as symmetric on the map. Also add a few
statues. I'll be revamping the wall decorations in a subsequent commit
to use a common motif for these 9x9 maps. That change might not be ready
for release, so these changes will do for now.

--------------------------------------------------------------------------------
ac12a55908 | gammafunk | 2019-02-05 23:20:50 -0600

Fix loot in a Gauntlet exit vault
The FeTm adventurer loot pile was missing a potential item.

--------------------------------------------------------------------------------
f44d0c5ad2 | NormalPerson7 | 2019-02-05 23:32:29 -0500

Fix dancing weapon description when multiple monsters enter LOS (11843)
When multiple enemies entered line of sight at once including at least
one dancing weapon, the message "There is." was being printed. This is
because there was an unnecessary check for enemies not being dancing
weapons in get_monster_equipment_desc. Remove this check, and add a
special case to the helper function _describe_monster_weapon to prevent
these messages being printed as "There is wielding a +4 trident."

These messages should now properly print as e.g.
"There is a +4 executioner's axe of electrocution."

--------------------------------------------------------------------------------
55f835606b | advil | 2019-02-05 16:49:14 -0500

Invalidate LOS properly for level pregeneration
It turns out that monster band placement checks LOS when placing the
followers, and so if LOS is not properly invalidated, the builder will
use the cache for the wrong level, leading to seed divergence. This
moves a few other cleanups up that I think will matter a bit less.

--------------------------------------------------------------------------------
d6fbd69efe | advil | 2019-02-05 12:58:11 -0500

For pregen morgues, only show visited levels (alexjurkiewicz)
I did this by moving the code that saves vault names a bit later in the
process, so that they only get entered into you.vault_list when the
player actually enters the level, rather than during the level builder.
This also unifies code for collecting vault names. For now I've also
changed this to show layout names, which are useful for debugging.

(cherry picked from commit 643a44d428fe4e8a720b83b0394e1465a4e5bddb)

--------------------------------------------------------------------------------
a78bd38d5a | gammafunk | 2019-02-04 16:52:03 -0600

Merge pull request #976 from Floodkiller/gn_jiyva_fix
Re-enable stat shifting for Gnolls worshipping Jiyva
--------------------------------------------------------------------------------
508cf822a6 | Floodkiller | 2019-02-04 17:12:22 -0500

Re-enable stat shifting for Gnolls worshipping Jiyva
Re-enables the stat shifting passive for Gnolls who are worshipping
Jiyva. This is a leftover fragment from the static attribute iteration
of Gnolls.

--------------------------------------------------------------------------------
0956303969 | Umer Shaikh | 2019-02-04 16:39:09 -0500

Make unassigned keys exit macro reassignment menu
This makes the menu's behaviour more consistent with other crawl menus.

[Commiter's note: Closes #974]

--------------------------------------------------------------------------------
f9871eb369 | Umer Shaikh | 2019-02-04 16:39:02 -0500

Escape angle brackets in macro assignment
Closes #687

--------------------------------------------------------------------------------
50940dbbcd | NormalPerson7 | 2019-02-04 16:26:44 -0500

Fix message order when a player resists damage from an elemental bolt
Previously, the "You resist" message (and other messages such as "You
feel a terrible chill" that are to do with resistances) were being
printed before the message to say the bolt had hit.

Hence, fix this with a second call to check_your_resists specifically
for printing these messages, and change the first call to be called with
doEffects = false. In order to do this, it's necessary to save the
pre-resist damage as a separate identifier. In doing so, a debug message
is simplified.

--------------------------------------------------------------------------------
a006759ab7 | gammafunk | 2019-02-04 15:25:08 -0600

Fix the area grid for klown pie silence
When applying silence from a Klown pie, we weren't invalidating the area
grid. This meant that silence wouldn't actually apply until something
else updated the area grid, which might not be until the end of the next
turn.

--------------------------------------------------------------------------------
27fda53bb8 | Edgar Bering | 2019-02-04 15:47:42 -0500

Don't target net traps through glass (NormalPerson7)

--------------------------------------------------------------------------------
cf4bcd280a | advil | 2019-02-04 11:35:14 -0500

Add a hacky but functional newgame menu for seed / pregen
The way I implemented this is fairly wince-inducing, but also fairly
consistent with the current state of how these menus are done.

This commit also adds a new game type for when a custom seed has been
chosen; this game type should (I think) be basically inaccessible in DGL
for now and require no save compat. Hopefully it can be used to include
seeded games in sequell (similar to how sprint games are treated).

--------------------------------------------------------------------------------
c4a3eeb678 | advil | 2019-02-04 01:31:38 -0500

Move seeded rng initialization later
Previously, I was doing this at the game start. This means that setting
a seed in an rc file impacts random choices at the newgame menu, and
also that the gameplay rng is advanced by any randomness that happens
here. Now, only initialize the rng from a chosen seed, or choose a seed,
during newgame setup.

--------------------------------------------------------------------------------
c8b47a3f3e | gammafunk | 2019-02-03 23:15:22 -0600

Tiles for the Rift unrand (CanOfWorms)
Both item and doll tiles for the unrand demon trident "Rift".

--------------------------------------------------------------------------------
ac335f2421 | Edgar A. Bering IV | 2019-02-03 23:15:03 -0500

Display bazaar items at the top of the shopping list (11649)
A player in a Bazaar might wish to comparison shop, but it is helpful
for the immediately relevant information to be displayed first. This
changes the comparison function used to always sort items in a Bazaar
before those not in a Bazaar.

--------------------------------------------------------------------------------
8f19387950 | gammafunk | 2019-02-03 18:29:01 -0600

Updates to the changelog
Add release highlights, simplify wording to decrease length,
reorganizing listings in each section roughly in order of importance,
and give the seeded play details its own indented list. This should
bring the changelog close to a state that's ready for the release.

--------------------------------------------------------------------------------
853fe2ed08 | Edgar A. Bering IV | 2019-02-03 18:28:56 -0500

Give a friendly fire warning for exploding portal projectiles (11315)

--------------------------------------------------------------------------------
776a2178cb | Edgar A. Bering IV | 2019-02-03 16:33:18 -0500

Display the SEEN_RANDART hint only for randarts

--------------------------------------------------------------------------------
687177df52 | Edgar A. Bering IV | 2019-02-03 16:33:12 -0500

Add cost and training targets info to hints mode

--------------------------------------------------------------------------------
b1230d1836 | NormalPerson7 | 2019-02-03 13:40:30 -0500

Update tutorial, fix tutorial/hints mode skill menu text (11851)
Update a traps message that stated traps aren't always revealed, and a
berserk hunger message that stated you can't berserk while very hungry;
this restriction is now limited to near starving or worse.

Shorten the "Read skill descriptions" button description to "Skill
descriptions" to avoid this overlapping the text on the following line.

--------------------------------------------------------------------------------
a7f21a457d | advil | 2019-02-03 11:23:01 -0500

Update copyright date

--------------------------------------------------------------------------------
fe1993f7db | advil | 2019-02-03 10:47:01 -0500

Update seeding notes on changelog

--------------------------------------------------------------------------------
542e47cbc9 | advil | 2019-02-03 10:45:19 -0500

Update the "seeded play" section of the manual

--------------------------------------------------------------------------------
0ecae65ed9 | Edgar A. Bering IV | 2019-02-02 23:34:34 -0500

Convert mummy death curses to a fineff (11758)
This ensures that when a monster is killed by Grand Finale the death
curse effects all land on the killer.

--------------------------------------------------------------------------------
8d21aed9ee | advil | 2019-02-02 22:55:59 -0500

Remove accidental debug message

--------------------------------------------------------------------------------
a65fc5ffcd | advil | 2019-02-02 22:54:09 -0500

Avoid a few cases of random tags in the .des cache
These tags are set at builddb time, and saved in the cache, which
probably isn't what anyone wants. They also impacts seed stability:
these pan entry maps were either tagged with
`luniq_hellpanabyss_threat_entry` in the cache or not depending on a
random choice when the .des cache was first built, which then causes
seed divergence between systems depending on what decision was initially
made.

This is far from the only kind of case where random decisions appear to
be made during validation that might be getting saved in the cache, but
it's the only one I've seen so far that's actually leading to
divergence. Another kind of case is exemplified by
`lemuel_altar_in_water`, where the tags are chosen randomly; but what
seems to be happening for the cache is that the vault is parsed without
running the lua and the initial tag set is drawn from this. I don't have
a lot of confidence that what would happen with this map is correct, but
at least it wouldn't lead to seed divergence.

--------------------------------------------------------------------------------
a05850b26e | gammafunk | 2019-02-02 17:51:14 -0600

Add monsters to a Gauntlet arena
Oops, forgot the monsters!

--------------------------------------------------------------------------------
0b2a0bf06a | gammafunk | 2019-02-02 17:23:27 -0600

Don't allow multiple placements of Gauntlet arenas
The commit removes the allow_dup tag from arena subvaults so that no
subvault will be used more than once in a Gauntlet. Both 7x7 and 9x9
sets have over twice the number of vaults needed for all arenas in any
Gauntlet map, so it's not necessary to allow reuse. Use of allow_dup
dates from earlier in development of the portal when there weren't as
many vaults available.

--------------------------------------------------------------------------------
483b6fb38e | gammafunk | 2019-02-02 17:16:30 -0600

Incorporate net traps into Gauntlets
When an arena rolls the chance to place traps, make each trap placed
have a 50/50 chance between dispersal and net trap instead of 100%
dispersal.

--------------------------------------------------------------------------------
330989f378 | gammafunk | 2019-02-02 17:15:52 -0600

Two 9x9 Gauntlet arenas
One with plants arranged in an arrow pattern, and another with a double
spiral having the loot at one end and the exit transporter at the other
end. This brings the number of 9x9 arenas to 20, giving us a sizeable
set in terms of variety.

--------------------------------------------------------------------------------
f098211c9e | advil | 2019-02-02 22:04:18 +0000

Fix a pre-c++17 compilation issue
This would be ok in c++17, but technically isn't before that. See:
https://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-d
efault-constructor-to-default-construct-a
http://open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#253

I guess our usual compilers aren't picky, but clang 6 on linux is.

--------------------------------------------------------------------------------
d71c066116 | advil | 2019-02-02 16:17:16 -0500

Shorten vault_catalog.lua test
To try not to have to raise the timeout limit further.

--------------------------------------------------------------------------------
72233a740f | advil | 2019-02-02 15:42:37 -0500

Better handle player position for debug/test levelgen
This is another case of a bug in the tests, but not one that impacts
actual levelgen.

--------------------------------------------------------------------------------
c4805aa249 | advil | 2019-02-02 13:37:30 -0500

Don't count gold as part of the level builder (joemaro)
This was artificially inflating the prices of gozag for level
pregeneration. It now runs when entering a level, if that level counts
as just created (either by pregeneration or not).

Resolves #972

--------------------------------------------------------------------------------
23bff18b8c | advil | 2019-02-02 13:09:46 -0500

More documentation and notes on seeding
Some of this might be fodder for a blog post too; writing this all down
because eventually someone else might want to do some seed debugging,
and there are a *lot* of blind alleys I've found while doing this.

[skip ci]

--------------------------------------------------------------------------------
f1fd2d0243 | advil | 2019-02-02 01:27:40 -0500

Update the tags API to use sets
This previously just used raw strings in rather hacky ways. The main
reasons I'm updating this now are because (i) tag ordering was affecting
randomness in some cases, and (ii) the lack of any uniqueness checking
was causing weird effects where some lua code would just keep on adding
duplicates of the same tag (which again, interacted with the random
number generation because it changed the size of what was being drawn
from in some cases). But, it also was a pretty creaky API with a lot of
things that were strange and ad-hoc. This new version is definitely a
bit heavier, but I'm not sure that will impact anything in a major way.

--------------------------------------------------------------------------------
e6a56636f9 | advil | 2019-02-02 01:27:40 -0500

Simplify test slightly
Also, increase the timeout for `make test`; possibly this means that
some of these tests could be pared back a bit, but for now I'll keep
them slow.

--------------------------------------------------------------------------------
59e0e63b9a | advil | 2019-02-02 01:27:40 -0500

Further isolate ghost generation from levelgen rng
The properties of a ghost can lead to variation in the number of random
draws needed when placing it; for example, if a ghost knows certain
enchantments, these will be applied immediately with a random duration,
leading to an extra random draw relative to ghosts without an
enchantment. This can lead to seeds diverging depending on what ghosts
are in the local bones file. Isolate the entire placement process from
the levelgen RNG so it won't impact seeds.

--------------------------------------------------------------------------------
2941439957 | advil | 2019-02-02 01:27:40 -0500

Further updates to rng development docs
[skip ci]

--------------------------------------------------------------------------------
b2a911eaf4 | advil | 2019-02-02 01:27:40 -0500

Print test names to stderr as they run
This lets there be visible progress during `make test`. It might be
slightly annoying when some tests are not running headless, but then the
user can just redirect stderr somewhere.

--------------------------------------------------------------------------------
4264f9c312 | Edgar A. Bering IV | 2019-02-02 01:15:33 -0500

Simplify a reaching check, actually fix 11704 (gammafunk)
Commit 0f9db6f4df modified the function mons_has_ranged_attack; however,
this was not checked by i_feel_safe, which instead checked
mons_has_known_ranged_attack. The latter function is a relic from when
monster equipment was not identified on sight and has been removed.

--------------------------------------------------------------------------------
0f9db6f4df | Edgar A. Bering IV | 2019-02-02 00:05:22 -0500

Check for monster polearms and wands in i_feel_safe (11704, 11782)

--------------------------------------------------------------------------------
43a6aff242 | Edgar A. Bering IV | 2019-02-01 22:49:42 -0500

Disable mores during targeting (11717)

--------------------------------------------------------------------------------
788b6e3827 | Edgar A. Bering IV | 2019-02-01 21:01:51 -0500

Extend Fedhas' protection to non-beam spells (11310)
Fedhas now protects plants from LOS damaging spells that don't use
beams, as well as static discharge and irradiate. Additionally, attack
prompts have been adjusted to account for Fedhas' plant protection.

Finally, Fedhas prevents shatter from destroying trees.

"Fire-through" is not a completely coherent notion for player spells,
these inconsistencies were not always accompanied by a prompt, or had an
erroneous prompt. Hopefully this change will clarify the situation.

--------------------------------------------------------------------------------
ca774cb5d5 | Edgar A. Bering IV | 2019-02-01 14:08:45 -0500

Give a more helpful message for 'G>' at branch end (3734)

--------------------------------------------------------------------------------
4429137cf8 | advil | 2019-02-01 09:53:28 -0500

Fix potential iteration order issue for autofight
This is unrelated to my current randomization woes, but something I
noticed while auditing lua/crawl interactions for iter order issues. The
iteration order for lua_next is *not* in general guaranteed, even if the
table is an array, and what I have noticed is that eventually, in a long
execution session, it will start diverging. So this may have been the
source of some of our more obscure reported autofight bugs.

I'm not sure if this solution using `map` is absolutely the best way to
deal with it; lua 5.3 has much better support for doing ipairs-style
iteration in C than lua 5.1, and this was the easiest fix without me
actually figuring out how that's supposed to work in lua 5.1 (which is a
bit tricky from everything I've read).

--------------------------------------------------------------------------------
8489be958e | advil | 2019-02-01 00:36:03 -0500

Add a new lua test for seed stability
May need some adjusting so it doesn't add too much time to the travis
build by default. It isn't impossible that this test will fail...

--------------------------------------------------------------------------------
12d111dd0d | advil | 2019-02-01 00:32:47 -0500

Fix some typos and lua mistakes

--------------------------------------------------------------------------------
193e08148b | advil | 2019-02-01 00:20:54 -0500

Randomness fix for swamp / pools

--------------------------------------------------------------------------------
2a401c07d1 | advil | 2019-01-31 23:40:22 -0500

Clear more global state for tests

--------------------------------------------------------------------------------
e4bce670a7 | advil | 2019-01-31 23:01:03 -0500

Allow shafts in tests
I'm not sure why these were disallowed, but it was 8 years ago and
didn't break anything for me. Plus, disallowing this messes up seed
testing.

--------------------------------------------------------------------------------
05a21ba7ac | advil | 2019-01-31 21:49:18 -0500

Various fixes for more stable lua iteration order
I ended up auditing every instance of `pairs`; these are the ones that
potentially interact with dungeon generation / randomness. Basically,
the use of `pairs` is now dispreferred for anything like the code being
touched here. I added a few utility functions for dealing with weight
tables in various ways (would have made my life easier to add these
before...)

--------------------------------------------------------------------------------
0b81bb8f68 | advil | 2019-01-31 17:46:53 -0500

Reset temple vault tags when doing temple setup
This load() call was just adding in new tags to the previously loaded
list each time a game was started, leading to seed instability both in
tests and when a new game was started without exiting the program for
temple vaults with variable numbers of altars. (Because the length of
the list of tags changed, which leads to different behavior of the
random draw as the list gets longer even for the same seed.)

Possibly tags should be treated as a `set` or something, rather than
just a raw string that is split on demand?

--------------------------------------------------------------------------------
cd3d6b93d0 | gammafunk | 2019-01-31 15:07:39 -0600

Update documentation of a function

--------------------------------------------------------------------------------
2c779b6b6d | gammafunk | 2019-01-31 15:07:39 -0600

Prevent use of Passage of Golubria in Gauntlets (Yermak)
Like use of teleport, Golubria passages can bypass the Gauntlet's usual
one-way structure. Players can create a passage in the starting area,
enter and quickly loot a chamber, then return back to start to gain
access to other areas. This commit prevents casting the spell in
Gauntlets entirely.

--------------------------------------------------------------------------------
0a484b665a | gammafunk | 2019-01-31 10:20:55 -0600

Tweak the no-teleport message for Gauntlets
Add a little bit more flavor in the message. The old one was mostly
copied from Dungeon Sprint, which disables teleports as part of the game
mode itself.

--------------------------------------------------------------------------------
e63ed06014 | advil | 2019-01-31 08:26:10 -0500

More RNG initialization improvements
Better reset for tests, initialize item descriptions with levelgen rng.
Also add a bit more fulldebug spam.

--------------------------------------------------------------------------------
542fcb7d11 | advil | 2019-01-31 08:26:10 -0500

Don't use ui_random for bones file choice

--------------------------------------------------------------------------------
18b6515475 | advil | 2019-01-31 08:26:10 -0500

Remove crawl.random_element and replace with something more stable
Because lua iteration order, including at the C level, is not stable,
this was leading to seed variation in parts of the dungeon that heavily
use layout code. I've replaced it with a pure lua implementation of
random_choose_weighted (that parallels the C++ version); in principle
one could call into the C++ version, but it wasn't clear that there was
much of a point to that amount of effort. This version is stable because
it uses an array of pairs for the weight table; `ipairs` gives a stable
iteration order. Notationally it's not any more effortful.

--------------------------------------------------------------------------------
a9077f9e91 | advil | 2019-01-31 08:26:10 -0500

More improvements to randomization
* don't use math.random for bazaar tiles
* clean up rng and early D vault tests

--------------------------------------------------------------------------------
46ee55fc94 | Edgar A. Bering IV | 2019-01-31 00:36:45 -0500

Don't use player spell colours for monster spellbooks

--------------------------------------------------------------------------------
b84795dc94 | Edgar A. Bering IV | 2019-01-30 23:24:57 -0500

Describe tree form in potion of lignification (damerell)

--------------------------------------------------------------------------------
b30acc4287 | Edgar A. Bering IV | 2019-01-30 22:59:10 -0500

Prompt before using bad or dangerous consumables (11836)
This covers immolation, vulnerability, noise, mutation, lignification,
and degeneration, as well as torment and holy word when applicable.

The new behavior can be disabled by setting an option `bad_item_prompt`
to false.

--------------------------------------------------------------------------------
bed441b55a | Edgar A. Bering IV | 2019-01-30 18:59:35 -0500

Dissapate Guardian Golem clouds out of LOS (11701)
Change guardian golem's inner flame actor to MID_YOU_FAULTLESS (from
nullptr), and disappate clouds owned by MID_YOU_FAULTLESSS when out of
LOS.

--------------------------------------------------------------------------------
1bb0902669 | advil | 2019-01-29 23:39:09 -0500

Clear unrand state for relevant tests
This was impacting generation and causing a false positive for seed
inconsisticies.

--------------------------------------------------------------------------------
964d818aa4 | advil | 2019-01-29 22:18:59 -0500

Use a separate rng for ghosts
The most recent set of seed instabilities I've been seeing are because
the ghost loading code makes a different number of random number draws
depending on whether it loads from the permastore or not, and in a clean
setup it was guaranteed to draw from the permastore on the first run,
but not thereafter, for some seeds. (Because even a permastore ghost
gets resaved as an ephemeral ghost if a level is vetoed - something that
is perhaps a bug itself.) In general, it seems risky to use levelgen rng
for something that may depend on what's on a particular file system, so
separate this off into its own rng for cases like this, distinct also
from the gameplay rng.

Also, fixed a bug in loading of ephemeral ghost files where if there was
more than one ghost in the file, the wrong one would be removed after a
ghost was selected for use.

--------------------------------------------------------------------------------
797c3c0885 | advil | 2019-01-29 19:53:42 -0500

Fix accidental cursed slaying nerf (gammafunk)

--------------------------------------------------------------------------------
4a9ad93521 | advil | 2019-01-29 19:32:52 -0500

Another batch of randomization sequence fixes
mostly to do with items this time.

--------------------------------------------------------------------------------
5a199981cb | advil | 2019-01-29 15:34:46 -0500

checkwhite

--------------------------------------------------------------------------------
cdddf7c89e | advil | 2019-01-29 15:14:31 -0500

Sequence many, many random calls whose order was undefined
Also add some documentation about these issues for other developers.
Basically, the call order for functions that are present in an
arithmetic expression or a constructor is undefined and can vary
(leading to different effects of seed).  It would be foolish to think
that this got everything, but I hope that this did get everything for
dungeon generation per se; given the complexity of this problem getting
real seeding for the gameplay UI may be a bit far off.

Two areas of concern:
* random_var is clever and fun, but also inherently not a good fit for
  wanting well-sequenced rng calls, because operators inherit this
  undefinedness.
* I didn't really try to address div_rand_round in this commit, which is
  all over the place and potentially hidden in many return calls.

--------------------------------------------------------------------------------
14c3f58609 | advil | 2019-01-29 15:14:31 -0500

Expand out the seed vs generation test for a few more levels

--------------------------------------------------------------------------------
1e5379801f | GenericPseudonym | 2019-01-29 00:49:11 -0500

Quiet confirm_action in the ability menu (11738)
The confirm prompt was still being generated when
_check_ability_possible was called in "quiet" mode, though it shouldn't
have been.

[Committer's note: Closes #969]

--------------------------------------------------------------------------------
a39c87378c | Edgar A. Bering IV | 2019-01-29 00:18:18 -0500

Changelog through 0.23-a0-899-gbbae0a335a

--------------------------------------------------------------------------------
bbae0a335a | Martin Staffa | 2019-01-28 21:37:41 -0500

Further distinguish light skill drain
This should make it easier for the player to judge how heavily he
is drained in the early game, and when using Ru's powers.

For monsters, the drain of a wraith is 25, and a hit from a draining
wand is a minimum of 75, but currently both give you the same status.

The same is true for Ru's Draw out power and Apocalypse: 30 vs 100,
but both give you the same status (and have the same "skill drain"
description in the god ability menu). For Ru it is quite important to
manage your skill drain, and introducing a new threshold should help
with that.

[Committer's note: Adjusted the colour scale; Closes #963]

--------------------------------------------------------------------------------
0a62fede96 | NormalPerson7 | 2019-01-28 21:11:21 -0500

Use keys for paralysed_by and petrified_by player props (ebering)

--------------------------------------------------------------------------------
779a845ef7 | NormalPerson7 | 2019-01-28 21:11:21 -0500

Include petrification information in death messages (11374)
Display "Slain by X ... while petrified [by X]" on the death screen when
the player was killed while petrified, in the same way as paralysis.

This applies only when fully petrified, not when petrifying, and the
monster that first applied the petrifying status is used in the death
message, even if the player is hit again with the petrify spell by a
different source on the following turn and this accelerated the
petrification process.

--------------------------------------------------------------------------------
250879e675 | gammafunk | 2019-01-28 04:02:16 -0600

Adjustments to a runed door vault
In mikee_hates_you, the runed door has a special warning text, but this
isn't necessary. The vault shows what monsters you'll be facing, and the
avatar's mesmerize ability can be seen through x-v. Since the runed
doors are transparent now, move the loot item behind the final door
instead of putting it under the merfolk with no_pickup. Adjust the
windows to allow seeing the monsters as well as the loot item.

The vault places an escape hatch for exit, but allows placement on D:$
where this hatch can't place. Disallow placement on D:$, allowing the
vault to place one level earlier. D:12 is fine for a vault of this kind.
Finally, use the default glyph for runed clear doors instead of a custom
one.

--------------------------------------------------------------------------------
27a1b2c1d8 | gammafunk | 2019-01-28 03:57:26 -0600

Adjustments to a Lair end vault
In cheibrodos_lair_end_hotspot, use default symbols for the runed door
and simplify NSUBST statements.

--------------------------------------------------------------------------------
c028996d07 | gammafunk | 2019-01-28 03:57:26 -0600

Adjustments to a Lair vault
The vault gammafunk_lair_enchanted_lake currently has an opaque runed
door with spoilery encounters behind it. Make this vault use a runed
clear door and provide a couple carefully placed windows into the
interior of the vault. Now that it better reveals its contents, allow it
to place on Lair:1. Finally, slightly adjust the monster set to use
better flying monsters and simplify some NSUBST statements.

--------------------------------------------------------------------------------
5d1f0fd2dd | gammafunk | 2019-01-28 03:48:24 -0600

Remove a placement limitation on a Lair vault
This vault is fine as a float vault for Lair:$.

--------------------------------------------------------------------------------
479ecb9a15 | gammafunk | 2019-01-28 03:48:24 -0600

Adjust an Okawaru altar vault
In the vault okawaru_arena_lexackson, use clear runed doors instead of
opaque ones. Don't use non-standard colors on lava, doors, and down
hatches. Also don't use a special quality level on loot where good_item
would suffice. This vault might predate the availability of that tag,
but the issues described in the now-removed comments are no longer
relevant.

This vault in general should see a rework. It has a spoilery mechanism
to release monsters and block your exit as you move into the vault. It
also has a special "loot choice" mechanism that isn't necessary given
the number of monsters. A transporter vault would be a good fit for the
basic concept, but it would be a little plain if converted to a simple
room with 4 "warrior" monsters. I'll look to rework the vault in a
future commit once I have a good idea.

--------------------------------------------------------------------------------
16004d8ef0 | NormalPerson7 | 2019-01-28 01:14:13 -0500

Make yellow draconians' rAcid a true mutation (11381)
Previously, yellow draconians' rAcid was hardcoded into the game and
they were given a fake mutation description in the species yaml file.
This had the problem that when transforming into statue or lich form,
the fake mutation description was greyed out on the A screen despite
continuing to function.

Therefore, add a new acid resistance mutation, MUT_ACID_RESISTANCE, and
give it to yellow draconians. Remove the special-casing for yellow
draconians' rAcid at the same time, and add a new minor version to
manually give yellow draconians in progress their rAcid mutation.

Additionally, add back "(rCorr)" to the mutation description on the A
screen. This was lost when species definitions were converted to yaml
files.

[Committer's note: Closes #965]

--------------------------------------------------------------------------------
c1834021d8 | advil | 2019-01-27 23:49:51 -0500

swap true and false (vt)
[skip ci]

--------------------------------------------------------------------------------
6b46e92f49 | advil | 2019-01-27 23:13:21 -0500

Actually use a function added earlier
Was added to consolidate debug code with real setup code, but then only
used for debug code.

--------------------------------------------------------------------------------
72c98355c2 | advil | 2019-01-27 23:13:21 -0500

Finish sentence (switch__)

--------------------------------------------------------------------------------
4f7982ca75 | advil | 2019-01-27 23:13:21 -0500

Webtiles implementation for the progress bar
Pregen is still disabled in DGL builds, but with this commit it now
works exactly the same as tiles/console.

--------------------------------------------------------------------------------
5e79892fce | advil | 2019-01-27 23:13:21 -0500

checkwhite

--------------------------------------------------------------------------------
6caef08bea | advil | 2019-01-27 23:13:21 -0500

Two sanity-check fixes
Both of these, I think, were leading to memory corruption. In the case
of the tileweb.cc change, if you were to set the number of ui state
channels to 0, and then try to push a ui update to channel 0, this could
lead to memory corruption if your stdlib let it happen. In the case of
the formatted_string change, what's being pushed back is really an
fs_op, and so the constructor needs to be called, in which case it is
really better as an emplace_back; I'm not 100% sure that this would be
bad on all (or any) stdlib implementations (since it might rely on an
implicit copy constructor or something), but I definitely got an lldb
backtrace with a crash inside this call.

--------------------------------------------------------------------------------
568795b110 | advil | 2019-01-27 23:13:21 -0500

More documentation for seeding

--------------------------------------------------------------------------------
4636eb8d82 | advil | 2019-01-27 23:13:21 -0500

Make Boris compatible with pregeneration
This (in a kind of ad-hoc way) simple regenerates Boris with a fixed
probability on appropriate levels, as long as he is dead and has been
killed at least once.

--------------------------------------------------------------------------------
62981b35a7 | advil | 2019-01-27 23:13:21 -0500

Fix some state bugs with pregeneration

--------------------------------------------------------------------------------
c02791a15b | advil | 2019-01-27 23:13:21 -0500

Fix some mod math in the progress bar display

--------------------------------------------------------------------------------
641d409e0c | advil | 2019-01-27 23:13:21 -0500

Use a stable order for loading vault files
It turns out that all the deterministic RNG in the world doesn't help if
you are choosing among things whose initial order is at the mercy of the
file system.

This commit isn't necessarily a full and complete solution to this
issue, more of a minimal first step; it would be nice to have an even
more stable way of getting vault indices.

--------------------------------------------------------------------------------
4066ec48f8 | advil | 2019-01-27 23:13:21 -0500

More rng diagnostics for travis
Show exact internal rng state, temple vault choice

--------------------------------------------------------------------------------
30f140dda6 | advil | 2019-01-27 23:13:21 -0500

Print some random numbers in the rng test for diagnostic purposes
Kind of stretching for anything here...

--------------------------------------------------------------------------------
31e2f47f2f | advil | 2019-01-27 23:13:21 -0500

Explicitly cast rng constants to uint64_t
I have no idea if this will matter at all, since `unsigned long long` is
apparently >64bit on some systems, this might(?) contribute to more stable 
behavior
across builds.

--------------------------------------------------------------------------------
6050340e72 | advil | 2019-01-27 23:13:21 -0500

checkwhite

--------------------------------------------------------------------------------
f44c62332d | advil | 2019-01-27 23:13:21 -0500

Add a test that prints D:1 vaults for various seeds
This is not a test that is necessarily likely to crash, but more of a
way of detecting changes. (Also, this is the beginnings of one way of
implementing a seed catalog a la brogue.)

--------------------------------------------------------------------------------
087f7eb399 | advil | 2019-01-27 23:13:21 -0500

Show seeds for dead online chars

--------------------------------------------------------------------------------
3e876b1994 | advil | 2019-01-27 23:13:21 -0500

Don't do pregeneration for sprints, etc.
They are all one level and the pregen code doesn't handle them anyways.

--------------------------------------------------------------------------------
424b21a561 | advil | 2019-01-27 23:13:21 -0500

Use correct cross-platform format specs for uint64_t
since 64bits can be `long long int` or just `long int` depending on
platform.

Also, fix a bunch of warnings.

--------------------------------------------------------------------------------
b90a470cf9 | advil | 2019-01-27 23:13:21 -0500

Add a rudimentary progress popup to run during pregeneration
Since this can take up to a minute, it's nice to show the user that
something is happening. This replaces the "hit <space> to ..." interface
from bel's patch. It does not yet have a webtiles implementation, which
is ok because pregeneration is disabled on webtiles.

--------------------------------------------------------------------------------
8f561c41ad | advil | 2019-01-27 23:13:21 -0500

Fix a build error

--------------------------------------------------------------------------------
40d72c257c | advil | 2019-01-27 23:13:21 -0500

Add some spare RNGs before the branch ones
Given the save compat implications, it would be a lot less annoying to
allocate these now than later.

--------------------------------------------------------------------------------
de1184c647 | advil | 2019-01-27 23:13:21 -0500

Document seeding options better, allow rc file seeds
This change also lets offline players view their game seed, and shows it
in the chardump. Yes, this can be used to "cheat" but no more so than
savescumming (in fact, less-so), and based on experience with brogue and
seeded games, this feature will work best if players can view it. It is
impossible to access seeds in online games, and I didn't even put it in
the crash dump on the grounds that this would be a pretty big
information leak - to see a seed for an online game, one would need to
get a save backup and load it offline.

--------------------------------------------------------------------------------
443bbbdced | advil | 2019-01-27 23:13:21 -0500

Allow saving ghosts when a seed is set
This check was intended to prevent test code (e.g. qw runs) from
generating ghosts, but it doesn't make sense any more in the context of
seeded crawl.

--------------------------------------------------------------------------------
d59c169ec4 | advil | 2019-01-27 23:13:21 -0500

Implement dungeon pregeneration (bel)
In order to improve deterministic dungeons (given a seed), allow
pregenerating the entire dungeon in a stable order. This is originally
based on an implementation by bel, that can be found at:
    https://github.com/belrogue/crawl/compare/master...belrogue:seeded_crawl

That approach relied on the player actually entering each level, which
had a number of weird side-effects, and relied on wizmode code (not
available in all builds). This commit attempts to separate out
generation and entering of a level, where a non-visited level will have
0 turns spent on it. It also simplifies the generation order from bel's
version. To enable this, set the option `pregen_dungeon` to true.
Pregeneration is disabled for DGL builds, for two reasons: I'm assuming
seeded runs won't be a thing any time soon for server play, and
pregeneration is a heavy initial CPU hit that might impact server
performance in any case.

There are still a bunch of UI issues after this commit, and it's not
super well tested.

Other side effects:
 * Added an initialization phase for map markers that can run when a
   level is generated - activation happens when a player enters the
   level.

--------------------------------------------------------------------------------
2dd0f10ffb | advil | 2019-01-27 23:13:21 -0500

Use dungeon RNG for initial dungeon setup
Missed this in a previous commit.

--------------------------------------------------------------------------------
236e7cc7cb | advil | 2019-01-27 23:13:21 -0500

Move seed / version history out of ?V title
This works less well as this string gets longer.

--------------------------------------------------------------------------------
7a919973b4 | advil | 2019-01-27 23:13:21 -0500

Up the seed size to uint64_t
These is probably overkill, but it's easier to do this now than later.

--------------------------------------------------------------------------------
cb93d8aa06 | advil | 2019-01-27 23:13:21 -0500

Improve behavior of seeding
Two main changes in this commit:
1. add additional per-branch RNGs with separate state, so that level gen
randomization doesn't interact with gameplay RNG, and levels interact
less with each other.
2. save RNG state with the player, and restore it on reload, so that the
choice of seed is not just per game session.

This is not a fully seeded crawl in the sense that most people would
want: level generation out-of-order within a branch will still advance
that branch's RNG, and dependencies on order (e.g. uniques, vaults) are
still present. However, it is much closer, in that if levels are loaded
in the same order, the same game seed *should* guarantee the same
dungeon with a few minor caveats (things like Boris, pan lords). For
some discussion of the issues, see:
https://crawl.develz.org/tavern/viewtopic.php?p=306334

Right now seeds are 32 bits, and the seed initializes gameplay rng too,
which may or may not be desireable. Every game is seeded (which is
rather different than the old behavior - games not explicitly seeded
used a pseudorandom 128 bit seed to initialize the rng states.)

Per-branch RNG is perhaps overkill, but relatively simple.

--------------------------------------------------------------------------------
0c83f0cefa | NormalPerson7 | 2019-01-27 17:45:43 -0500

Fix AC calculation in item description with deformed body (Monsterracer)
Previously, the AC granted by armour when the player has deformed body
was sometimes lower than that indicated in the item description's
"Wearing mundane armour of this type will grant the following:" line.

This was because:
  - player::base_ac_from calculates the AC reduction from
    deformed body as `AC - baseAC / 2`;
  - the description called the player::base_ac_from method with scale
    parameter 1, resulting in the AC being rounded up;
  - the actual AC calculation called the method with scale parameter 100
    and then performed integer division on the final result, resulting
    in the overall AC being rounded down.

Fix this by calling base_ac_from with scale parameter 100 and then
dividing by 100, so that the maths here is equivalent to that in the
real AC calculation.

--------------------------------------------------------------------------------
8ff03fb2f7 | gammafunk | 2019-01-26 17:44:11 -0600

Update vaults to not overwrite a default glyph
These vaults all set '=', which is a runed door by default, to some
other definition. In all cases they had plenty of symbols available.
Although it's fine to override default glyph meanings when more symbols
are needed, it's best not to do so for commonly used symbols like '='.
This commit updates many such vaults to not use '=', using 'a' or
another symbol where appropriate. The remaining vaults that do this can
be changed in subsequent commits.

This commit also simplifies various NSUBST statements in these vaults.

--------------------------------------------------------------------------------
d608b8078a | gammafunk | 2019-01-26 17:44:11 -0600

Rework glyph usage in some door vaults
These vaults put doors on different glyphs from '+', presumably because
they apply a marker. It's not necessary to use a custom glyph, so use
'+' instead.

We want these vaults to be a surprise, so they should still use the
classic runed opaque door for now. Use a different glyph from '=', since
that is now used specifically for runed clear doors.

--------------------------------------------------------------------------------
fa4f36b71e | gammafunk | 2019-01-26 17:44:11 -0600

Rework a loot item in a vault
Replace the "acquire any" items in evilmike_wizard_prison with nice
randart artefact jewelry, randart aux armour, or acquirement scrolls.
The scroll is a better way to give player loot that's based on their
character, since the choice aspect makes it more likely to be useful.

Also fix the wrong usage of a substitution operator and simplify terms
in some NSUBST.

--------------------------------------------------------------------------------
a8f1c900a9 | gammafunk | 2019-01-26 17:37:52 -0600

Remove unneeded KFEAT from some vaults
These vaults define runed doors as a KFEAT on '=' despite that glyph
already having this meaning. Also simplify NSUBST syntax in one of these
vaults.

--------------------------------------------------------------------------------
041552f40e | gammafunk | 2019-01-26 17:37:52 -0600

Rework and simplify some aspects of a vault
The vault hangedman_eye_storm had a normally accessible area flagged as
no_tele_into. This area has only one access out and a few eye monsters,
but has no teleport closets, so the flag is not needed here. It also
sometimes used runed doors in the Abyss, but is not an especially nasty
vault, especially not for that branch. Use normal doors instead.

--------------------------------------------------------------------------------
b3145dc118 | gammafunk | 2019-01-26 17:37:52 -0600

Make runed clear doors the default runed door type
Rune door vaults generally work best without major spoilers. To some
extent players will always have some encouragement to read vault
spoilers even for vaults that are not sealed with runed doors or
transporters. For unspoiled players taking on challenge vaults, however,
it generally works best if they can reason about whether the risk is
worth the reward. At a minimum it's good for players to know what
they'll find when they first open the door. If this basic information
isn't available, players need to assume the worst and will visit the
vault long after they first find it.

This commit makes the recently introduced runed clear door the default
type of runed door used in vaults. It does this by changing the default
DES mapping of the '=' glyph to runed_clear_door. Vaults that defined a
special symbol for runed_clear_door have been updated to remove that
definition and simply use '=' instead.

Spoilery vaults that hide surprises behind opaque runed doors still have
a place, provided that what they do is memorable enough. These vaults
work best if they appear later in the game, so that the player has
enough resources to survive or escape arbitrary threats.

--------------------------------------------------------------------------------
dd7946d620 | Edgar A. Bering IV | 2019-01-26 17:49:32 -0500

Fix ball lightning stair behavior (11812)
First, prevent ball lightnings from taking stairs. Second, disappate
player ball lightnings left behind. While technically monsters, these
should behave like conjurations from a gameplay point of view.

--------------------------------------------------------------------------------
fe5b60be0d | Edgar A. Bering IV | 2019-01-26 17:13:47 -0500

Make Jiyva slime neutralising like Fedhas' (11792)
Changing god conversions to run exactly once, and on first sight
resulted in unkillable slimes for a Jiyva player. This moves slime
conversion to run in the same place as Fedhas' plant neutralising,
making it global and independent of player LOS.

This has the effect of waking up slimes on a level so they start eating
items sooner; however awake slimes that hadn't been converted would
start eating already, so the net effect isn't that large.

--------------------------------------------------------------------------------
83ee88da44 | Edgar A. Bering IV | 2019-01-26 16:37:48 -0500

Use env.map_knowledge to check moveto prompts (11806)
Prevent information leaks when far movement effects (shadow step, hop,
etc.) have the possiblity of landing in the explore horizon.

--------------------------------------------------------------------------------
1f260a4b94 | Edgar A. Bering IV | 2019-01-26 16:17:29 -0500

Consistent interpunctuation for damaging spells
Freeze, Airstrike, Irradiate, Static Discharge, Awoken Forest attacks,
and some LRD and Shatter damage do not occur via a `struct bolt`, and
need their interpunctuation set separately to consistently reflect
damage done.

--------------------------------------------------------------------------------
4a3ee90895 | Edgar A. Bering IV | 2019-01-26 15:31:01 -0500

Make damaging enchantments obvious effects, punctuate (11814)
Pain, Dispel Undead, Agony, and Disintigration all do damage to a
monster, even though they are MR checking enchantments. Every other
single target damaging spell gives feedback when something is hit. The
lack of feedback is especially noticable for the three of these spells
that can kill: "Nothing appears to happen." is followed by "You feel a
bit more experienced!" which is an oddity.

This commit changes these spells to always give a message if damage is
done.

While adjusting the visibility of the messages, this commit also adds
consistent interpunctuation to Pain, Dispel Undead, and Disintigration;
bringing these spells in line with other damaging spells.

--------------------------------------------------------------------------------
0551b70d95 | Edgar A. Bering IV | 2019-01-26 13:58:25 -0500

Respect monster special monster polymorph rules (11840)
Several polymorph effects used monster_polymorph directly, but ended up
calling it on ugly things, which should instead have their colour
change. These have been replaced with mons.polymorph(), which has a new
signature that accepts a polymorph power type. This also ensures that
these effects respect slime creature's split-then-poly mechanic.

This affects Xom polymorph and Nemelex degeneration.

--------------------------------------------------------------------------------
c8dc5750a0 | Edgar A. Bering IV | 2019-01-26 12:59:53 -0500

Give Tengu permanent flight at XL 5
This was suggested on Mantis as 10707 and a patch was included,
unfortunately the patch had aged poorly and couldn't cleanly apply, so
this is a re-implementation.

Tengu racial flight starts at XL 5, as an activated ability. The
activation gives flight (with its Tengu bonuses) for 25 + random2(xl*4)
+ random2(xl*4) turns. In practice, this meant that a low XL Tengu
effectively had permanent flight, provided they remembered to activate
it. The MP cost takes at most 38 turns to recover (regen to full with 3
MP). The duration of Tengu flight averaging 45 turns when first
acquired, rising to 77 at XL 13. The Tengu player with more than 3
total MP that was willing to do a lot of tedious waiting and re-casting
could enter any encounter flying and with full MP.

Removing the interface screw shouldn't affect optimal balance, but it
might turn out to be a practical buff. If that haappens to be the case a
nerf that is not an interface screw can be applied.

--------------------------------------------------------------------------------
3ad9d5ab6f | NormalPerson7 | 2019-01-26 12:22:35 -0500

Make the polymorph targeter more informative (11706)
This commit changes the polymorph targeter to display "not susceptible"
for undead and nonliving monsters that cannot be polymorphed. It also
now displays "will change shape" and "will change colour" instead of the
chance to hex, when targeting known shapeshifters and (very) ugly
things, respectively, to make this special effect somewhat better
described.

--------------------------------------------------------------------------------
ec06c1aae4 | NormalPerson7 | 2019-01-26 11:32:38 -0500

Don't scale EV bonuses when a flying Te/swimming Mf/petrifying (11463)
Previously, the effects of flat evasion bonuses such as rings of
evasion, the amulet of the acrobat, mutations, and potions of agility,
were scaled up by the effects of flying as a tengu, and swimming as a
merfolk, and halved by the petrifying and held statuses.

This led to weird behaviour where flying as a tengu meant acrobat
actually gave 18 EV, and other oddities, which are inconsistent with how
flat bonuses generally function.

Therefore, this commit makes it so that the evasion bonuses are added to
the post-scale evasion, rather than the pre-scale evasion.

There is a remaining inconsistency in paralysis, full petrification,
tree form, and most notably, dexterity stat zero, where these evasion
bonuses are not accounted for at all. In the case of paralysis and full
petrification this probably makes sense, whereas for clumsy and tree
form, where you can still act, this behaviour is somewhat arguable,
because it is not obvious here that rings of evasion etc are rendered
useless.

--------------------------------------------------------------------------------
372ee70e5d | Nikolai Lavsky | 2019-01-26 11:20:15 -0500

Don't add unique annotations for an illusory unique (u/kitchen_ace)
After commit eddfa9bf, if an illusionary unique created by phantom
mirror outlives the original, the corresponding unique annotation
won't be removed.
Fix this by not adding annotations for illusions.

--------------------------------------------------------------------------------
dc03e01af6 | gammafunk | 2019-01-25 18:45:35 -0600

Don't give brown as an XL7 draconian colour (blorx1, ebering)
The random_draconian_colour() function merged as part of the datafiles
branch didn't properly exclude base draconians as a colour to award at
XL7. Rewrite this function in a way that uses random_range() for the
non-base colours, but so that it can also exclude removed/unviable
colours.

--------------------------------------------------------------------------------
547f200e45 | stenella | 2019-01-25 11:48:28 -0800

Move a MSVC property to a property file
Rather than defining __STDC_LIMIT_MACROS for every single build type, move it 
to common.props.

At the moment it's only defined in one build type, which is due to lack of 
completeness (on my part) in the past.

--------------------------------------------------------------------------------
739d08034e | Edgar A. Bering IV | 2019-01-25 11:17:28 -0500

Update CREDITS.txt, fix an alphabetization

--------------------------------------------------------------------------------
41928f00c8 | dcandido | 2019-01-25 01:44:09 -0500

Add petrify to the enchantment susceptibility check (10659)
[Committer's note: in addition to the mantis patch, bolt.is_harmless
 had a separate case for petrify, which wasn't being reached because
 petrify is an enchantment.]

--------------------------------------------------------------------------------
df0a61e306 | Edgar A. Bering IV | 2019-01-25 00:22:05 -0500

Adjust spacing in x-v spell descriptions
Spells that had both a hex chance and a range had an extra space between
the two indicators.

--------------------------------------------------------------------------------
6d2b9173c9 | advil | 2019-01-24 21:02:58 -0500

Don't build for checkwhite/unbrace travis tests
Also, don't try both compilers, since there's no compilation needed.

--------------------------------------------------------------------------------
307367515f | stenella | 2019-01-24 11:40:54 -0800

Update gen-all.cmd
Mirroring changes made earlier to generation of species-type.h

--------------------------------------------------------------------------------
a3e64809f3 | Edgar A. Bering IV | 2019-01-23 22:33:26 -0500

Correct a typo in Sif's description (damerell)

--------------------------------------------------------------------------------
152313e22e | Edgar A. Bering IV | 2019-01-23 20:23:47 -0500

Two quotations (Can-ned Food)
Quotes for ring of intelligence and scroll of silence.

--------------------------------------------------------------------------------
ae04d928a3 | Edgar A. Bering IV | 2019-01-23 19:08:31 -0500

Scale net trap to-hit with absdepth
Legacy net traps had a fixed to-hit chance; with the change to make them
always player targeted it is readily apparent that their ability to hit
falls off in the late game, making them more a free source of nets than
a relevant tactical threat. They now scale with approximately the
throwing abilities of a non-archer see-invisible monster with HD absdepth/3.

--------------------------------------------------------------------------------
16358f6e3a | Alan Malloy | 2019-01-23 15:15:38 -0800

Fix undefined behaviour when applying elec brand (Laret, #11837)

--------------------------------------------------------------------------------
31c0f47e04 | gammafunk | 2019-01-23 07:06:54 -0600

Prompt when entering excluded transporters
Currently when entering an excluded transporter, the transporter is
entered with no prompt is given. This commit adds a yes-or-no prompt
similar to the one used when taking excluded stairs.

--------------------------------------------------------------------------------
2dcc7d9861 | gammafunk | 2019-01-23 07:06:54 -0600

Don't travel through excluded transporters (EN0N)
Currently exclusions made on transporters do nothing to limit travel.
Travel handles transporters like stairs in terms of allowing the player
to move onto the excluded transporter if the entire exclusion is a
single square. This is good, since just as we do for single-square
exclusions on stairs, we want to prevent travel from taking the
transporter but allow standing on it. However travel didn't actually
prevent taking the transporter, and with this commit it now does.

--------------------------------------------------------------------------------
5da158aa5d | Umer Shaikh | 2019-01-22 22:29:07 -0500

Unify exit paths from show_terrain view
We make pressing any unassigned key in the show_terrain view behave the
same way as pressing |.

Pressing | restores all layers and exits the layers menu; pressing an
unassigned key exits the menu without restoring layers, and layers are
restored on the next action. However this latter is undesirable.
Currently the menu primarily acts like a way to interactively and
temporarily change the view, so it is surprising that dismissing the
menu should not dismiss the effect. The player is about to act, so they
usually want all layers back anyway. It is a pretty baroque behaviour in
an already baroque menu.

(If it is desirable to allow players to act without all layers visible,
then there should be some way to set a semi-permanent option to do
so---the player shouldn't be required to use CMD_SHOW_TERRAIN each
turn.)

--------------------------------------------------------------------------------
2495da70ca | Umer Shaikh | 2019-01-22 22:29:07 -0500

Let ESC clear/toggle layers in show_terrain view (amalloy)
We make it slightly more convenient to manipulate layers in show_terrain
view. Escape clears all layers if any layers are active, and activates
them all if none are active.

--------------------------------------------------------------------------------
e13c4b7b41 | Alan Malloy | 2019-01-22 11:11:18 -0800

Remove comment about creating homogenous hash tables
This feature was removed in 75921593c, and the remaining comment is
just confusing.

--------------------------------------------------------------------------------
036b721050 | gammafunk | 2019-01-22 08:28:14 -0600

Fix a debug warning message
This debug message wasn't properly updated in a6713cf8 and causes a
compilation warning due to implicit conversion of an enum class to
unsigned int. Use a static cast and have the message attempt to also
display the spell school's long name. It might be better to just use an
ASSERT here, but I haven't looked at what all the callers are doing with
this function.

--------------------------------------------------------------------------------
53669af72b | gammafunk | 2019-01-22 07:28:58 -0600

Fixes for player doll tiles
Add the placeholder tiles for Rift and group together tiles for removed
unrands with a comment to remove their entries upon major version
change.

--------------------------------------------------------------------------------
52100fa3dc | gammafunk | 2019-01-22 07:10:11 -0600

Generalize a check for reach attacks
For the range limit, don't specifically check for the Rift unrand, but
rather check the reach type directly.

--------------------------------------------------------------------------------
8c0a028ee0 | gammafunk | 2019-01-22 06:36:43 -0600

Update the description of the Rift unrand
Make it clear that Rift doesn't have the usual limitations of reach
attacks.

--------------------------------------------------------------------------------
5f40c2e70b | gammafunk | 2019-01-22 06:32:45 -0600

Fix autofight for reach attacks
Properly apply checks for the capability to use a reach attack when
using a normal polearm. The implementation in #949 applied los_no_trans
to every kind of reach attack, when that's only appropriate for the Rift
unrand.

--------------------------------------------------------------------------------
efd6b3f74f | gammafunk | 2019-01-22 06:32:45 -0600

Implement reach support for the Rift unrand
The commit in #949 originally used the targeter_reach class with
additional range and generalized the logic in _reach_weapon_attack().
These aspects were part of an earlier design of Rift and are no longer
necessary. This commit implement's Rift's reach attack using
targeter_smite instead.

--------------------------------------------------------------------------------
7c2441aab4 | olowin | 2019-01-22 06:17:08 -0600

The unrand demon trident "Rift" with distortion and extended reach
There are no existing distortion-based unrands and distortion is an
interesting and powerful brand but the blinking effect makes it somewhat
annoying to use. By extending the reach of a polearm the annoyance
factor is reduced since it's unlikely the player will need to reposition
just to hit their target.

The extended range is defined in reach-type.h. autofight.lua changes
allow extended reach tabbing, without which combat becomes quite
tedious.

Committer's Note: Rift is a +8 demon trident of distortion with a range 3
reach that's smite targeted. Any monsters or translocation-allowing
features between the attacker and the target have no affect on the
weapon's accuracy or ability to hit. In the original commit in #949,
Rift had a reach range of 4, +4 enchant, and +Blink. The range reduction
to 3 balances the weapon a bit and the enchant increase make it less
likely that Lugonu worshipers will want to swap weapons when their
target becomes adjacent.

Additionally, changes to evoke.cc that were part of the original commit
are not included. Those changes implemented support for extended reach
that will be implemented in a simpler way in a subsequent commit. I've
also added some quick placeholder art for Rift. We'll hopefully have
proper tiles before the 0.23 release. Closes #949.

--------------------------------------------------------------------------------
ecd3555ea1 | Edgar A. Bering IV | 2019-01-22 00:43:36 -0500

Don't allocate extra space for a vector

--------------------------------------------------------------------------------
86364c1113 | Alex Jurkiewicz | 2019-01-22 00:28:15 -0500

Revise storm card (minmay, ebering)
Storm's old effect (wind blast + storm cloud ring + air elemental)
didn't fit in well with the rest of the deck of desctruction, and wasn't
that great anyway. Revise to be more purely about AoE electrical damage.

New effects are: wind blast plus up to nine electrical explosions
(depending on power).

The explosion targets are chosen randomly at a distance so that they
don't damage the player, firing only one explosion per cell. As a
result, using this card in a corridor or near a corner will likely not
hit the intended target---particularly at low power.

In terms of balance, the explosions do slightly less damage than power
zero conjure ball lightnings at low power, scaling to be comprable to
high power CBL at high power. This isn't too out of line with the other
destruction cards, considering the terrain limitations and noise; but
will need some playtesting feedback to be certain.

[Committer's notes: re-wrote the patch to use random sampling of targets
 based on a radius iterator; adjusted damage formulas; added flavour
 messaging. Closes #942]

--------------------------------------------------------------------------------
6debee6d2d | Edgar A. Bering IV | 2019-01-21 01:30:25 -0500

Really remove High Elves
Their retention of starting jobs was causing them to incorrectly appear in
-playable-json.

--------------------------------------------------------------------------------
00444ac475 | Edgar A. Bering IV | 2019-01-21 00:13:53 -0500

Tormenting allies turns them hostile
Previously, allies would gladly accept player torment, though only in
the form of torment and not the form of agony. It's unclear why a player
would want to torment their allies, but but they're done putting up with
it in any case.

--------------------------------------------------------------------------------
40270af019 | Edgar A. Bering IV | 2019-01-21 00:13:37 -0500

Better grammar for LOS spell attack prompts
Print a sensible message instead of "Really harm near your..." when
handling LOS spell prompts. Now get a more meaningful "Really
refrigerate near your..." or other verb as appropriate.

--------------------------------------------------------------------------------
81dc5fd5f0 | Edgar A. Bering IV | 2019-01-21 00:13:31 -0500

Refactor scroll and sceptre of torment prompts
Refactor the prompts (torment and holy word) to use the
general `stop_attack_prompt` function with a los targeter. Closes #953.

--------------------------------------------------------------------------------
48644e56ec | 1Hyena | 2019-01-21 00:08:29 -0500

Check and set conducts for holy word and torment (11821)
Create a general purpose `_scroll_will_harm` function that can
be used to determine if a particular monster would be harmed as
a result of reading a certain scroll.

In the `read` function for scrolls, check `god_hates_item`.  Also, add
warnings about regular friendly fire, and if hurting the victim of our
scroll could put us under penance. The warning about penance uses
"could" instead of "would" because by the time we finish reading the
scroll it may not be dangerous any more (can happen with blurry vision).

The friendly fire checks for torment are also extended to the sceptre
of torment, using similar logic to the singing sword.

God conducts are now checked when delivering a holy word or a
torment effect to monsters. Previously, the good gods would give penance
for using a scroll of torment, but gods with ally conducts were
indifferent to torment and holy word, contrary to the conduct.

[Committer's note: formatting cleanup, squashed, reworded commit message,
 closes #941]

--------------------------------------------------------------------------------
91b40731d1 | Edgar A. Bering IV | 2019-01-20 21:13:29 -0500

Remove an extra acid message, braces, and some logic
Closes #952.

--------------------------------------------------------------------------------
440a6e3df3 | NormalPerson7 | 2019-01-20 20:59:50 -0500

Use exclamation marks to indicate damage for all brands
Exclamation marks were previously only used to indicate the damage
dealt by freezing, flaming and holy brands. This commit converts all
brands that deal additional damage to use exclamation marks calculated
by attack_strength_punctuation, with the exception of chaos, which uses
beams and was therefore dealt with by the previous commit.

This affects the electrocution, pain, distortion, draining and acid
brands, and as a consequence of the latter, also acid splash damage from
other sources.

--------------------------------------------------------------------------------
8471db9e1a | NormalPerson7 | 2019-01-20 20:59:50 -0500

Indicate spell damage with exclamation marks and "...but does no damage"
Use varying numbers of exclamation marks to indicate the amount of
damage done by direct-damage spells that pass through zapping(), in the
same way as is done for melee and ranged attacks, and print
   "<beam> hits <actor> but does no damage."
to the message log when a beam does no damage, in the same way as is
done for melee attacks.

This behaviour was previously inconsistent: some beam types printed
"%s appears unharmed" for monsters when they were hit for no damage,
others simply printed nothing, and this message was never printed
when the player was hit by a beam for no damage. These inconsistent
"%s appears unharmed" messages are removed in this commit.

This largely eliminates a long-running inconsistency in the output of
spells vs melee attacks.

There are various other instances of spell damage messages scattered
throughout the code that should also be converted in the future.
These include torment effects, damage-over-time effects, and clouds.

Also remove the "Helpless, you fail to dodge..." message for when you're
paralysed, because there is no clean way to include this in the new
system, it doesn't say anything especially meaningful (the player knows
they're paralysed), and it also awkwardly triggered when in tree form.

Finally, remove an unnecessary variable and replace it with explicit
return true; / return false; statements where it was used.

--------------------------------------------------------------------------------
f4b81dcea0 | floraline | 2019-01-20 15:55:40 -0500

Add webtiles form to change user email
This commit adds a form to the webtiles lobby for logged in users
to change the email address associated with their account.

[Committer's note: closes #791, closes #800, closes #910]

--------------------------------------------------------------------------------
b20feef7cd | floraline | 2019-01-20 15:35:29 -0500

Add option to disable gzip in webtiles

--------------------------------------------------------------------------------
59048849b2 | floraline | 2019-01-20 15:33:35 -0500

Use X-Forwarded-Proto header for websocket protocol
If the webtiles server is running behind a proxy server
which terminates SSL connections, and http is used between
the proxy and webtiles, the X-Forwarded-Proto header can be
set by the proxy to indicate to the webtiles server that the
client is using a secure connection. This allows webtiles to
generate the correct protocol wss:// even it sees http.

--------------------------------------------------------------------------------
d21de941a6 | Edgar A. Bering IV | 2019-01-19 23:18:53 -0500

Correct yaml aptitudes and stat gains
More errors than I expected. I merged datafiles without looking closely,
thinking that previous reviewers had done a more thorough check. This
time I didn't leave it to chance, and diffed the aptitude table as
reported by crawl from 0.22 to post merge. The aptitudes are now
reported faithfully. I did a hand double check on the stat-ups, flags,
and mutations; I'm confident in them but not as certain. Additional eyes
would be appreciated.

--------------------------------------------------------------------------------
d38242e607 | Edgar A. Bering IV | 2019-01-19 20:00:25 -0500

Correctly choose draconian colour
The initial datafiles implementation was searching for a starting
species that was not base draconian and was a draconian; there are no
such species, which caused an infinite loop on level up. Instead of
ad-hoc methods, species.cc now includes a specific draconian colour
chooser.

--------------------------------------------------------------------------------
2e5916de82 | Edgar A. Bering IV | 2019-01-19 19:00:00 -0500

Fix an ASSERT when generating playable-json

--------------------------------------------------------------------------------
c1268f8c82 | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Update control
python dependency is implicit
--------------------------------------------------------------------------------
30cc324387 | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Add python deps to debian build dependencies

--------------------------------------------------------------------------------
5dd6e8cacc | advil | 2019-01-19 16:49:04 -0500

Fix up an error message I missed

--------------------------------------------------------------------------------
0781eb48a8 | advil | 2019-01-19 16:49:04 -0500

Relax python version requirements
This runs safely on anything that can handle the from __future__ call,
so no need to be picky.

--------------------------------------------------------------------------------
a3ee95e970 | advil | 2019-01-19 16:49:04 -0500

Handle levelup stats in a cleaner way
Now, the empty list gives you the empty list, and the default value is a
string (`default`), not a list. This also changes the species levelup
code to check that the iterator is safe to use.

--------------------------------------------------------------------------------
822cbb912d | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Simplify MSYS2 pyyaml instructions (gammafunk)
[skip ci]

--------------------------------------------------------------------------------
eec6720087 | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Add PyYAML install instructions for MSYS2

--------------------------------------------------------------------------------
3e18421f5e | Kyle Rawlins | 2019-01-19 16:49:04 -0500

Doc updates

--------------------------------------------------------------------------------
10df5404ef | advil | 2019-01-19 16:49:04 -0500

Warn on unknown fields in the main list of species properties
This would have partially caught the undead thing, since mummy was using
the wrong field name relative to the python code. This implementation is
not very elegant, but it works for now.

--------------------------------------------------------------------------------
24c7ebce55 | advil | 2019-01-19 16:49:04 -0500

Handle demigod stats properly
Also, I changed the formatting for lists to match what species-data.h
currently does. I actually think the indented version looks a bit
better, but keeping it this way for now makes debugging a lot easier.

--------------------------------------------------------------------------------
cb8200b614 | advil | 2019-01-19 16:49:04 -0500

Add walk/pray verbs to SP_UNKNOWN and deprecated species
A little surprised this compiled without these, but given that it did
this change may be cosmetic.

--------------------------------------------------------------------------------
f84f2144cf | advil | 2019-01-19 16:49:04 -0500

Fix undead type
This was broken/incomplete for all three undead species

--------------------------------------------------------------------------------
cbc76c48e9 | advil | 2019-01-19 16:49:04 -0500

Don't set recommended weapons for non-starting species
Matches current practice in non-generate species-data.h

--------------------------------------------------------------------------------
e614946a61 | advil | 2019-01-19 16:49:04 -0500

Add entry format description to header for species-data.h
Still want this to be there for debuggin purposes

--------------------------------------------------------------------------------
c13e1a1640 | advil | 2019-01-19 16:49:04 -0500

Handle empty mutation lists a bit better

--------------------------------------------------------------------------------
e5a3aee3e1 | advil | 2019-01-19 16:49:04 -0500

Make build dependencies more specific

--------------------------------------------------------------------------------
09c36adccb | advil | 2019-01-19 16:49:04 -0500

Don't inherit from dict, use constructor instead of factory function
There's various reasons why inheriting from dict can be a bad idea, but
the basic issue is that you get a ton of weird internal stuff in your
subclass, leading to long-term maintainability issues. Here's a useful
summary: 
http://www.kr41.net/2016/03-23-dont_inherit_python_builtin_dict_type.html

Also, especially with this change I couldn't see any reason to prefer a
factory function over a constructor, and it's more pythonic to use the
latter when possible.

--------------------------------------------------------------------------------
8f328656ec | advil | 2019-01-19 16:49:04 -0500

Format/refactor for 80 columns
Also prefer @classmethod to @staticmethod, a few other misc changes.

--------------------------------------------------------------------------------
9c501a89bc | advil | 2019-01-19 16:49:04 -0500

Change species generation to python 2.7
Seems to work unchanged. May or may not force pyyaml dependency to be
explicit.

--------------------------------------------------------------------------------
0008194017 | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

more fixes
* move filter_enum to its own file
* random_species -> random_starting species (and ditto for job)
* Don't pick non-starting species/jobs for random/viable selection

--------------------------------------------------------------------------------
9f4de6a54a | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

various bug fixes to newgame species/job selection

--------------------------------------------------------------------------------
c914ae42bd | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

De-duplicate VIABLE/RANDOM newgame species/job logic

--------------------------------------------------------------------------------
5865f6ae5e | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Use filter_enum instead of do-while loops.

--------------------------------------------------------------------------------
65b99ee7dd | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

species: Make difficulty mandatory

--------------------------------------------------------------------------------
57a5c5284a | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Document species/jobs missing recommendations
No recommendations = not available on the starting screen.

--------------------------------------------------------------------------------
3f387069a1 | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Clean up random/viable character selection
Simplify the selection logic and make it consistent between species and
background.

--------------------------------------------------------------------------------
bb98c16e91 | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Generate species data from YAML files
This converts the following files from hand-written to auto-generated:

* aptitudes.h
* species-data.h
* species-groups.h (was previously hardcoded in newgame.cc)
* species-type.h

Species definitions are found in `source/dat/species/*.yaml`.
Documentation is in the (rewritten) `docs/develop/species_creation.md`.

--------------------------------------------------------------------------------
1e5a400394 | Alex Jurkiewicz | 2019-01-19 16:49:04 -0500

Simplify XL7 draconian randomisation
Removes SP_FIRST/LAST_NONBASE_DRACONIAN. These are only used in two
places, when a draconian species flag can serve the same purpose.

--------------------------------------------------------------------------------
30113ee23b | Edgar A. Bering IV | 2019-01-19 12:56:48 -0500

Nothing is not permitted in kfeat

--------------------------------------------------------------------------------
9eba094869 | Edgar A. Bering IV | 2019-01-19 12:37:44 -0500

A circus upstair vault
A grouping of three circular arenas, each placing a stair in the center
surrounded by themed choices from the Zot monster set to suggest a
circus. The theme sets are:

- Firebreathers: red draconians and red draconian scorchers
- Strongman and contortionists: one juggernaut and tentacled
monstrosities
- Magic act: an ancient lich and electric golems
- Acrobats: grey draconians, grey draconian monks, and nets
- Beasts: moths and dragons
- Freakshow: death cobs and possibly a curse toe
- Jugglers: draconian shifters and draconians (being juggled!)
- Killer Klowns, what would be a circus without them

--------------------------------------------------------------------------------
b55f120c3d | Edgar A. Bering IV | 2019-01-19 12:37:44 -0500

A klown carousel stair vault
A circular vault featuring klowns, dispersal traps, and Skrybe's
coloured glass. A carousel of madness, the entry is so that a
mistake pulling monsters out could get the player blinked in. Inside
there are places to take cover from the onslaught of pies, but the
dispersal traps remain an issue for the player. The vault can place as
either a downstair vault or an upstair vault. As an upstair vault the
player starts in the place of one of the carousel seats.

--------------------------------------------------------------------------------
1815e753c9 | Edgar A. Bering IV | 2019-01-19 12:37:44 -0500

Rename a lua function

--------------------------------------------------------------------------------
e8b0c57b15 | gammafunk | 2019-01-19 09:48:09 -0600

Rework trap placement on Tomb:3
In the large central Tomb:3 vaults, place about 12 traps on-average.
This is enough to add some hindrance for the player as they move and fight
through the central area without being overwhelming.

Mechanical traps were removed from the treasure rooms on Tomb:3, but
numbers of traps as a whole weren't changed, so alarm/dispersal/zot
traps became 2.5 times as common. This commit reduces numbers of traps
in the treasure rooms overall, still leaving a higher trap density
compared to the central rune areas. This trap placement can now also
occur in the initial hallway where the player arrives on Tomb:3.

Also use normal '.' glyphs for the treasure room and refactor DES of the
main map.

--------------------------------------------------------------------------------
9c7b33dc0b | gammafunk | 2019-01-19 09:48:09 -0600

Reduce trap placement on Tomb:2
Tomb:2 currently places about 40 traps randomly in the first section of
rooms that lead back to Tomb:1 and about 47 in the smaller section of
rooms that lead to Tomb:3. When mechanical traps were mostly removed
from Tomb:2, these numbers weren't adjusted, so the more impactful
alarm/dispersal/zot trap types went from being 30% of traps to being 75%
of traps. This made Tomb:2 very chaotic.

This commit halves the trap placement rate in the first section, getting
us down to about 20 traps on-average, and reduces it by about 55% in the
second section, getting us down to about 21 on-average. These numbers
give a few traps in each room and won't overwhelm all other tactical
considerations.

Additionally we now handle trap placement in the central ambush vault
directly, placing about 8 traps on-average in these areas. These vaults
are large, but have lots of monsters with exits and good cover not being
close by, so relatively few traps is appropriate here. Finally, disable
level trap generation on Tomb:2, since we control trap placement in all
areas of the map.

--------------------------------------------------------------------------------
abe354ae0b | gammafunk | 2019-01-19 09:43:56 -0600

Add trap placement to Tomb:1 hallway end vaults
The Tomb:1 hallway end vaults contain the arrival hatch into the Tomb:1
hall from Tomb:2 at one end and the exit hatch into the second section
of Tomb:2 on the other end. In these vaults add small numbers of traps
as appropriate for their smaller size, about 6 on average. Also reglyph
the vaults to use the usual '.' for floor, as there's no need to use a
special glyph.

--------------------------------------------------------------------------------
cd6f52c603 | gammafunk | 2019-01-19 09:35:46 -0600

Rework trap placement in Tomb:1 central vaults
For the center vaults on the Tomb:1 map that contain the hatches to the
Tomb:2 ambush, add some limited trap placement. We add about 12 traps
on-average, which is a reasonable number for the large size of these
vaults. Alarm traps get lower weight, since having a lot of these traps
makes it easier to empty monsters out of the vault into safer areas of
the level.

In tomb_1_centre_old, don't have an extra chance to block single-tile
passages with traps, but put some traps in corners where they can be
walked past. Also rework the placement of monsters in this vault to not
use many scattered fixed locations. Randomize placement of all but the
highest tier guardians, keeping the monster counts the same.

--------------------------------------------------------------------------------
a5e88f8e8d | gammafunk | 2019-01-19 06:56:08 -0600

Add traps to the Tomb:1 hallway and reorganize
This commit adds small numbers of traps to the Tomb:1 "gauntlet" reached
from Tomb:2 after the ambush, about 6 on-average. Also reorganize
sections and update comments for the main Tomb:1 map.

--------------------------------------------------------------------------------
adbfc09fd4 | gammafunk | 2019-01-19 06:42:30 -0600

Add organizational headers to tomb.des

--------------------------------------------------------------------------------
dc19b93d68 | advil | 2019-01-18 15:45:42 -0500

Fix two problems in unrest.pl
1. The script didn't support non-numbered links.
2. The regex for numbered links, because it has an s flag, matched a
non-numbered link that is at the end of a sentence. Very ad-hoc
solution: prevent a match on _ as the first character of a link.

This script goes back a long ways but really we shouldn't have our own
rst "parser" in 2019...

--------------------------------------------------------------------------------
6cd010e738 | Alan Malloy | 2019-01-18 12:29:42 -0800

Fix typo (NormalPerson7)

--------------------------------------------------------------------------------
73c39a4887 | Alan Malloy | 2019-01-18 12:14:59 -0800

Copy edit background section of the manual

--------------------------------------------------------------------------------
46380d4bfa | Alan Malloy | 2019-01-18 12:06:51 -0800

Copy-edit changes to species description section

--------------------------------------------------------------------------------
1fcf643b8e | advil | 2019-01-18 14:49:08 -0500

Editing/reorganizing pass through backgrounds
This brings the background appendix to the manual in line with the order
and categories in the newgame menu (in this case, the previous version
was actively inconsistent with it). I also tried to ensure some minimal
standard level of completeness in terms of describing starting equipment
for each background. (Remaining inconsistency: starting spell isn't
always made explicit, though the book is.)

--------------------------------------------------------------------------------
3cc139955b | advil | 2019-01-18 14:20:23 -0500

Editing/reordering pass for the species appendix of the manual
I'm not sure what previously determined the order of species in this
section, but it was kind of idiosyncratic. I have reordered the species
to match the order on the newgame menu, and explicitly included the
categories used in selecting a new character. I also took an editing
pass over the text and made a few tweaks that hopefully will address
common questions about species selection, including the misconception
that order on that menu is about difficulty of winning.

(An alternative would have been to simply alphabetize this section, but
probably the most likely case where players will look at it, at least
after the fix in 146c4415506c6f, is when hitting ? from this menu.)

--------------------------------------------------------------------------------
7db0834d69 | advil | 2019-01-18 13:10:25 -0500

Show sprint manual section in sprint newgame menu

--------------------------------------------------------------------------------
aaf14ca391 | advil | 2019-01-18 12:42:43 -0500

Show version history in `?v` if a save has been upgraded
Otherwise, to see this you previously needed to either crash the game,
or piece together the upgrade steps from milestones.

--------------------------------------------------------------------------------
a1c2b65f23 | advil | 2019-01-18 12:42:43 -0500

Fix a help bug that isn't triggered
`show_help` takes a section argument that is supposed to basically do
what hitting a key from the main help menu would accomplish. There was
untested code for the special case section keys that didn't actually
work, leading to a blank screen. This lets `show_help` handle these
section arguments (e.g. `v`) correctly, in case someone ever wants to do
this.

--------------------------------------------------------------------------------
4cc9efd76a | advil | 2019-01-18 12:42:43 -0500

Show item help in newgame weapon menu
instead of the key quick reference? This would be better if it scrolled
directly to the weapons subsection but there's no quick way to do that
yet.

--------------------------------------------------------------------------------
146c441550 | advil | 2019-01-18 12:42:43 -0500

Handle pre-scrolled help screens correctly
This fixes the bug where help in character selection is not going to the
correct help subsections (for species/background info).

--------------------------------------------------------------------------------
517b43256b | mgdelmonte | 2019-01-17 22:00:02 -0500

Create a CLua function for spell targeter access
This commit adds a clua function spells.path to report the path taken by
a spell. Crawl's spell targeting mechanics are very complex, and
without a function like this, proper Lua spell-casting assistance is
hampered by the fact that it's impossible to know whether you can
actually hit any given target, or what monsters will be hit by a spell.

Given a spell name and target x,y in player-centered coordinates, this
function returns the actual path that the spell would take, in a table
of pairs { {x1, y1}, {x2, y2}, {x3, y3} } (also in player-centered
coordinates). This makes it possible to know whether the spell will hit
its target, and (for bolt spells) what monsters it might hit along the
way.

The function also takes an optional source coordinate, to assist in
automating reasoning about monster spells.

[Committer's note: Closes #939]

--------------------------------------------------------------------------------
db21e031a1 | Edgar A. Bering IV | 2019-01-17 20:28:49 -0500

Reduce silence radius from Klown pies
Monster silence is replaced with mute, as monster silence is full radius
(5) for all but the last 3 turns of its duration. Player silence is
reduced to 4+random2(7) turns, with a cap of 10. This means the player
will have at most four turns with a silence radius of 1, followed by 6
turns of radius 0.

The silence effect is strong, and primarily aimed at disabling the
player. The monster silence effect meant that instead of being able to
use a consumable or be stuck a player could be left in an awkward
situation of wanting to kill an ally to break the silence. On the flip
side, silence is strong against ancient liches and the draconian
spellcasters in the zot monster set. The anti-synergy between klowns and
these monsters hass the potential for if not abuse, at least strange
incentives.

Reducing the silence duration is also a nerf to the new klown pie
effect; maintaining the old duration without having a large silence
radius would require a new status effect.

--------------------------------------------------------------------------------
f2270e3573 | Edgar A. Bering IV | 2019-01-17 19:39:01 -0500

Enable god Extra in describe_god_with_join
The describe_god_with_join pane has a distinct implementation from the
standard describe_god ui, which assumed that there were always only 3
god panes. This is generalized to support displaying the Extra pane when
kneeling at an altar if relevant.

--------------------------------------------------------------------------------
809c0887e5 | Edgar A. Bering IV | 2019-01-17 19:39:01 -0500

Hide some god Extra panes from non-worshippers
Every god Extra pane except Wu Jian's currently provides worshippers
with information about their religious practice that is not helpful to a
potential follower.

--------------------------------------------------------------------------------
2dd2dce7ad | Edgar A. Bering IV | 2019-01-17 19:39:00 -0500

Only list seen branches in Gozag's Extra pane (advil)
This matches the display of branches in the Overview screen. The
previous behavior, of only hiding the Lair branches until they've been
discovered, was a bit awkward.

--------------------------------------------------------------------------------
c05403bdbf | advil | 2019-01-17 19:39:00 -0500

Code formatting
Missed some unbracing.

--------------------------------------------------------------------------------
87320180ed | advil | 2019-01-17 19:39:00 -0500

Remove commented code
Missed this on the earlier commit.

--------------------------------------------------------------------------------
6f75a6ce2c | advil | 2019-01-17 19:39:00 -0500

Code formatting, wording

--------------------------------------------------------------------------------
5b2007cb45 | advil | 2019-01-17 19:39:00 -0500

Add god extra pane to webtiles
Would be nice someday to not have to hardcode every pane.

--------------------------------------------------------------------------------
f2a872a286 | Edgar A. Bering IV | 2019-01-17 19:39:00 -0500

Add a god Extra pane for Wu Jian
Move the description of martial attacks to the Extra pane.

--------------------------------------------------------------------------------
710303dcff | Edgar A. Bering IV | 2019-01-17 19:39:00 -0500

Add a god Extra pane for Nemelex
Lists the quantity of cards in each deck plus the stack contents.

--------------------------------------------------------------------------------
550063bd70 | Edgar A. Bering IV | 2019-01-17 19:39:00 -0500

God Extra panes for Ash, Gozag, and Hep
Move information about skill boosts, bribeability, and ancestor
information; previously in _get_god_specific_table and included on the
Powers pane to the newly created Extra pane in the god description menu.

--------------------------------------------------------------------------------
bfe4a4df63 | bjobae | 2019-01-17 19:39:00 -0500

Future proof Beogh gift monster props

--------------------------------------------------------------------------------
509b01f02e | bjobae | 2019-01-17 19:39:00 -0500

List named followers for Beogh worshippers
The 'Extra' pane of Beogh's god info screen lists all named
followers and those items which were gifted to them by the player.

--------------------------------------------------------------------------------
1a98732428 | bjobae | 2019-01-17 19:39:00 -0500

Add support for an 'Extra' pane in religion screen
For those gods for which '_god_extra_description(god_type)'
returns a nonempty string, a pane called 'Extra' is made
available in the religion screen, displaying the content of
that string.

--------------------------------------------------------------------------------
38971ea054 | gammafunk | 2019-01-17 16:06:33 -0600

Change the Singing Sword's power for monsters (ebering)
Don't base it on tension, since that's information about the player, and
the player may not even be in LOS. Just use the first power tier
instead.

--------------------------------------------------------------------------------
2dde14e387 | NormalPerson7 | 2019-01-17 17:05:34 -0500

Add a note to docs/obsolete/cut_spells.txt
This commit adds a note to the top of the file to outline the changes
made to spell definitions since the spells in this file were cut from
the code - the most recent of which occurred in 2012 when
TAG_MAJOR_VERSION was last incremented.

--------------------------------------------------------------------------------
c3062a41d6 | NormalPerson7 | 2019-01-17 17:05:34 -0500

Convert `enum recall_t` to an enum class

--------------------------------------------------------------------------------
76aa57be10 | NormalPerson7 | 2019-01-17 17:05:34 -0500

Convert `enum miscast_source` to an enum class
Convert the enum `miscast_source` to an enum class. The name of the enum
is unchanged. Wrap all lines made too long, as always.

--------------------------------------------------------------------------------
c88e511002 | NormalPerson7 | 2019-01-17 17:05:34 -0500

Add a struct to use for MiscastEffect::special_source
Create a new struct miscast_source_info to use for passing a miscast's
source and if the source was miscast_source::god, the god that caused
it, instead of the previous system of using one int member variable for
two meanings. Update all calls to MiscastEffect, all uses of the
special_source variable inside the MiscastEffect methods, and the
MiscastEffect::MiscastEffect initialisation function and class
declaration, to use this new struct.

This should be no less obvious than in the previous implementation while
ensuring type security; intentionally adding enum values of two
different types as in the previous implementation is poor.

This is necessary in order to convert the miscast_source enum to an enum
class, since adding an int (god_type) to an enum class type causes
compilation errors. This conversion takes place in the following commit.

--------------------------------------------------------------------------------
b067b0da31 | NormalPerson7 | 2019-01-17 17:05:34 -0500

Convert `enum nothing_happens_when_type` to `enum class nothing_happens`
Convert the nothing_happens_when_type enum to an enum class and shorten
its name to nothing_happens. This continues the conversion of several
spell-related enums to enum classes.

This enum is quite small and the effect of changing it is similarly
small. No change in logic was required in this commit; only a couple of
line breaks were made where lines were made longer.

The enum class' member names remain capitalised for this enum class
because if made lowercase I am worried about `default`, a keyword in
C++, being redefined.

--------------------------------------------------------------------------------
a6713cf8af | NormalPerson7 | 2019-01-17 17:05:34 -0500

Convert `enum spschool_flag_type` to `enum class spschool`
Convert spschool_flag_type to an enum class and rename it to a much
shorter name `spschool`, which adequately describes the enum's contents.

Note that the LAST_SCHOOL value in this enum class is capitalised as it
is designed to be a constant value and so we capitalise it in accordance
with other constants.

Fix all errors caused by attempting to implicitly cast spschools to
integers: either use static_cast or an explicit C-cast in these cases.

Wrap all lines that were made too long by this commit and the
lengthening of enum values from e.g. SPTYP_NONE to spschool::none by 4
characters. Realign variable definitions spanning multiple lines whose
alignment was interfered with by the changing of the enum class name,
and de-wrap some of these that will now fit on one line.

This commit does not update SPTYP_s in
crawl-ref/docs/obsolete/cut_spells.txt. In a future commit, I will add a
note referring to these outdated enum values to the header of this file.

--------------------------------------------------------------------------------
c3daa31c0c | NormalPerson7 | 2019-01-17 17:05:34 -0500

Convert `enum spflag_type` to `enum class spflag`
Change spflag_type to an enum class and rename it to spflag in
accordance with other such enum -> enum class changes (for example
abflag_type -> abflag, spret_type -> spret).

Add a new bitfield type called `spell_flags`, which is to be used for
bitfields composed of the various spflags in place of the previous
system which was using unsigned integers. This is a significant
improvement to Crawl's type safety.

Fix all issues related to implicit casting of (spell_flags & spflag)
to a bool in a return statement or variable definitions, by either
explicitly casting to a boolean or, more preferably, using the testbits
function - these would otherwise cause compilation errors now.

Wrap all spell_flags lines in spl-data.h that now exceed the line limit
of 80 characters due to the additional character (caused by changing _
to :: in enum value names) per enum value.

This commit does not change SPFLAG_... to spflag::... in comments
referring to removed enum values in the spflag enum class definition,
nor does it change SPFLAG_s in crawl-ref/docs/obsolete/cut-spells.txt.

--------------------------------------------------------------------------------
e7febcc0c0 | gammafunk | 2019-01-17 06:42:07 -0600

Sometimes place the Singing Sword in a vault
The classic sword_in_stone vault places a sword "sealed" in stone
(actually diggable rock), with the sword being a dancing one in later
levels. Have a 1/50 chance of this sword being the Singing Sword, making
it dance when appropriate.

--------------------------------------------------------------------------------
5913316130 | gammafunk | 2019-01-17 06:42:07 -0600

Allow monsters to use the Singing Sword
It's not necessary to prevent them from using this weapon now that the
spell code has been refactored. Although they'll damage other monsters
in LOS with the sword's spell damage, this damages the player as well.
This is still a weapon the player wouldn't want to use with Spectral
Weapon, since the spectral sword's Sonic Wave will damage the player.

--------------------------------------------------------------------------------
cf8a540e26 | gammafunk | 2019-01-17 06:42:07 -0600

Revamp the Singing Sword again
The current sword has tiers derived from tension to determine the chance
to cast its Sonic Wave spell. There are four tiers, with the sword's
spell only being cast starting at tier 3, which corresponds to at least
40 tension. It's less common to be at tier 3 during combat, since this
needs many difficult monsters to be in view. Since the sword's spell
isn't cast below tier 3, its damage is equivalent to a +7 vorpal double
sword in most fights. While doing the rework in 2a92f5cd, fsim lead me
to overestimate the sword's damage below tier three, since it was
setting high tension regardless of what was in LOS at the time.  This
commit changes how the tiers are calculated, how frequently Sonic Wave
is cast, and increases Sonic Wave's damage.

The tiers are now calculated as max(1, min(4, 1 + tension / 20)),
meaning that they increase every 20 tension with tier 1 being tension
less than 20 and tier 4 being tension 60 or higher. This makes tiers
above 1 easier to reach in typical combat situations. Previously tier 4
could only be reach if tension was at least 40 and a random roll
succeeded. Most importantly, the sword will now cast its spell below
tier 3, doing so with 1/4 chance at tier 1 and 3/8 chance at tier 2. It
casts 50% of the time at tiers 3 and 4, just as it was before.

The damage die for Sonic Wave are increased and small bonuses are given
for the sword's spell-power at each tier, instead of only at tier 4.
Tier 4 receives a large additional bonus, as it did before. Collectively
these changes make the sword do about -10%, +0%, +10%, and +20% damage
at tiers 1 through 4, respectively, compared to a +9 double sword of
speed. The noise levels at each tier are unchanged, with tier 4 being as
loud as the shield of gong.

--------------------------------------------------------------------------------
0b759201fd | Edgar A. Bering IV | 2019-01-16 23:09:16 -0500

checkwhite (Stenella)

--------------------------------------------------------------------------------
94ec0301e6 | NormalPerson7 | 2019-01-16 16:14:31 -0500

Fix monsters not being woken when hit by animated trees (11819)
This commit adds a call to behaviour_event to, among other things, wake
sleeping monsters, when they are attacked by an animated tree from
summon forest and the attack hits (regardless of any damage dealt).

--------------------------------------------------------------------------------
06a100ffd6 | NormalPerson7 | 2019-01-16 13:49:33 -0500

Don't let battlespheres be blinded (11827)
Battlespheres are insubstantial magical constructs, and thus do not see
with eyes. It therefore makes no sense for them to be able to be
blinded. Therefore, add the M_UNBLINDABLE monster flag to their
mon-data.h entry.

--------------------------------------------------------------------------------
19699f695d | NormalPerson7 | 2019-01-16 13:40:19 -0500

Fix death channel duration leak when cast at max duration (11828)
Simply remove the check in cast_death_channel for returning spret::abort
when at max duration. The information that the player has maxed out
their duration is not given to the player for other spells, and so
should not be given for death channel.

--------------------------------------------------------------------------------
9fa157057a | advil | 2019-01-15 18:30:54 -0500

Fix a bug in util.formatted_string_to_html
This would appear to be a >5 year-old bug that appends an extra </span>
any time a color is correctly terminated. (Luckily it seemed to mostly
be getting fixed up on append calls? I found it because the fixup will
eat whitespace, potentially messing with preformatted text.)

--------------------------------------------------------------------------------
0a1bb4fe8a | advil | 2019-01-15 18:30:54 -0500

Handle ?/ better, generalize range "key" to webtiles
From previous commit messages for this change, I gather that the
assumption was that if mon_owner is null, there is not an actual
corresponding monster. This doesn't seem to be correct -- mon_owner is
null if this codepath is called on an item (does this ever happen?). The
best check for whether this mons_info corresponds to a real monster is
whether the position is in bounds (and crawl_state.need_save for whether
the player is in a game).

I moved the text explaining the hex percent and range out of
describe_spellset, so that it is visible on webtiles. I *think* that
this is the only way this code path is called when showing monster
spells; otherwise, describe_spellset is (or maybe isn't any more?)
called on items.

--------------------------------------------------------------------------------
0b8caf7e58 | advil | 2019-01-15 18:30:54 -0500

Generalize range string logic for webtiles
This computation got complicated enough that it should only be done in
one place.

--------------------------------------------------------------------------------
4d4c92e218 | advil | 2019-01-15 18:30:54 -0500

Various small tweaks
* explain red coloring in the key
* don't show range for spells with SPFLAG_SELFENCH, which are
  basically not treated as ranged on monsters. In practice, this may
  exclude only invisibility. (N.b. all monster spells that have this
  flag and could in principle be cast on allies have an _OTHER
  counterpart anyways. SPELL_INVISIBILITY_OTHER doesn't seem to be
  used.)
* code formatting

--------------------------------------------------------------------------------
99592df15c | Edgar A. Bering IV | 2019-01-15 18:30:54 -0500

Remove ranges from Haste and Might
Monster AI always uses these spells as self enchants, with Haste Other
and Might Other existing for monsters to affect allies. The ranges are
vestigal from when these were player spells, and cause bogus displays of
spell range for monsters with these spells.

--------------------------------------------------------------------------------
8ac9f62d1d | Edgar A. Bering IV | 2019-01-15 18:30:54 -0500

Add spell ranges to monster info in webtiles

--------------------------------------------------------------------------------
32e13164b6 | Edgar A. Bering IV | 2019-01-15 18:29:16 -0500

Only display ranges in monster descriptions
They're not needed in book descriptions, a player who is unfamiliar with
a given spell and considering a book item will want to know all about
it, not just its range.

--------------------------------------------------------------------------------
e15ba6666c | Edgar A. Bering IV | 2019-01-15 18:29:16 -0500

Improve colour handling for spell ranges
The first implementation did not parse the colours into the formatted
string at the moment of adding (a gotcha with
formatted_string::cprintf). Here we replace the formatted_string::cprintf call
with an operator += concatenation. This makes spell displays render in
webtiles again.

--------------------------------------------------------------------------------
c9aa113a4f | Aidan Holm | 2019-01-15 18:29:16 -0500

Right-align hex-chance in monster spell list

--------------------------------------------------------------------------------
d70207d22c | Aidan Holm | 2019-01-15 18:29:16 -0500

Use colour to differentiate in/out-of-range

--------------------------------------------------------------------------------
6d93017843 | Aidan Holm | 2019-01-15 18:29:16 -0500

Add hex-chance and spell-range explanatory text

--------------------------------------------------------------------------------
ab26df7839 | Sandman25DCSS | 2019-01-15 18:29:16 -0500

Display range for spells in monster description (aidanh)
Please see
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=23901
No colors yet, I am not sure how to do it properly.

--------------------------------------------------------------------------------
00c90a0c22 | Edgar Bering | 2019-01-15 13:01:39 -0500

Save compat for c89a89d9 (11829)

--------------------------------------------------------------------------------
e59bbb1e92 | Edgar A. Bering IV | 2019-01-15 00:29:11 -0500

Display (immune) in monster hex chance in webtiles
Commit b5b85be8 added this functionality to console and local tiles.

--------------------------------------------------------------------------------
3a644c02d4 | Edgar Bering | 2019-01-14 18:30:48 -0500

Remove grate traps
Now that traps are revealed grate traps do less than what they previously
did, in that a spoiled player knows to simply take another stair. Spoilers or
not, once the grate is down a player can use the grate and a smite targeted
spell to kill monsters at no risk to themselves.

--------------------------------------------------------------------------------
c89a89d96d | Edgar Bering | 2019-01-14 18:27:38 -0500

A Klonw Kar trap for Zot
Generalize the basket of spiders trap to be a monster-drop trap.
Then add the trap to Zot but have it drop Killer Klowns. Also change the
snake version to drop a mix of mambas and mana vipers.

The basket traps work ok as tactical terrain even with traps revealed,
since a monster triggering the trap will still release a player-targeting
effect (more monsters).

--------------------------------------------------------------------------------
aad00d04af | gammafunk | 2019-01-14 15:54:16 -0600

Changelog through 0.23-a0-709-gaefc81b7b9

--------------------------------------------------------------------------------
aefc81b7b9 | gammafunk | 2019-01-14 02:30:37 -0600

Update loot in a Gauntlet exit vault
The vault nicolae_gauntlet_exit_dead_adventurers is themed as having the
corpses and loot of four dead adventurers that failed to defeat the
minotaur. The loot items are appropriate for the archetypes character
represented by the given corpse. For example, a spriggan stabber
with a short blade weapon and a hexes randbook. Unfortunately the
current version of this vault doesn't place very good loot, despite
placing more items on-average compared to the other Gauntlet exit
vaults. It uses mostly normal quality, common items with only a few
choices to represent weapons and armour, and with few consumables
on-average.

This commit revamps the loot to place better quality items with much
more variety, but still keeping the theme of each adventurer to the best
extent possible. Item quantities are randomized so that the min, max,
and average numbers of items placed are very similar to the other
Gauntlet exits. More consumables, jewellery, evokables, and aux armour
items are also introduced. The Dwarf Earth Elementalist in heavy armour
corpse became a Felid Transmuter corpse with items appropriate for
Transmutations and unarmed combat, since heavy armour was already very
well represented in the loot.

--------------------------------------------------------------------------------
b957daca86 | gammafunk | 2019-01-14 02:30:37 -0600

Use runed clear doors in Gauntlets
For arenas that use rune doors, make these transparent. They especially
make sense in the Gauntlet, where the rune doors are meant to be used by
the player to control monster movement.

--------------------------------------------------------------------------------
4e6f924471 | gammafunk | 2019-01-14 02:30:37 -0600

Four 9x9 arena vaults for Gauntlets
These are subvaults used as 9x9 arenas. I'm hoping to have at least 20
of these before release, and this puts us at 18.

One vault with a narrowish two-way passage that has lots of corners to
maneuver around, one with three porous chambers, and two mazey arenas
with randomized pathways.

--------------------------------------------------------------------------------
c92f3ec585 | gammafunk | 2019-01-14 02:02:01 -0600

Decouple chances for Gauntlet loot upgrades
Make two independent chances for upgrading the aux armour and jewellery
loot item slots instead of one chance used for both. Add some comments
to the loot setup function.

--------------------------------------------------------------------------------
0e654d264d | Edgar A. Bering IV | 2019-01-14 02:23:19 -0500

Really remove Labyrinths (11820)
Mark labyrinths as "unfinished" in the branch_is_unfinished function,
joining Dwarf, Blade, and Forest on the list of removed branches. This
prevents a crash when lookup-help attempts to display an entry for the
removed branch.

--------------------------------------------------------------------------------
7fdf9c5c27 | Edgar A. Bering IV | 2019-01-13 21:36:35 -0500

Add clear doors to some Elf layouts.
A longtime TODO of infiniplex's, now implemented.

This commit adds them on the '~' glyph with a KFEAT; it is hoped that in
the near future the KFEAT line can be deleted and '~' made to default to
closed_clear_door.

--------------------------------------------------------------------------------
df2d5e0dd9 | NormalPerson7 | 2019-01-12 12:29:28 -0500

Improve text when gaining/losing god abilities and on ^ screen
Improve the text printed to the message log when gaining or losing a
piety level and the text displayed on the god overview screen (^) such
that:
 - all text printed when the player gains a piety level contains the
   word "now", and is written either with "can", "will" or similar,
   or in the continuous present tense,
   e.g. "Kiku is now protecting you from torment";
 - all text printed when the player loses a piety level contains the
   words "no longer", and is written with either "can" or "will" or
   something similar,
   e.g. "Kiku will no longer protect you from torment"
 - all text on the ^ screen uses either "can" or the present tense,
   e.g. "Kiku protects you from torment".

This removes all poor constructions involving the use of the
continuous present on the ^ screen, and the continuous present without
the word "now" on gaining abilities - an example of this was
  "Vehumet is aiding your destructive magics", which becomes
  "Vehumet is now aiding ..." on gaining 2* of piety, and
  "Vehumet aids ..." on the ^ screen.

This is done by adding a new variable "general" to the god_power struct,
to differentiate between the text on the ^ screen and the text on
gaining the ability, which were previously the same unless the
"You can " construction was being used.

Also add messages for when Trog begins granting ammunition gifts and
when Jiyva begins granting corrosion resistance.

Also break several lines in the definition of the god_powers vector that
went beyond 80 characters because multiple parameters were placed on a
single line, or that did or did not go beyond 80 characters and had more
than two parameters split over two lines. This aims to improve
readability.

Finally, add a description of the "You can [now /no longer ]"
construction used for some god abilities, that is implemented in a
different way, to religion.h.

--------------------------------------------------------------------------------
d214142378 | gammafunk | 2019-01-11 23:31:35 -0600

Stop dragon cruelty in a vault (howmanybefore)
Dragons were sealed behind clear stone walls in orc_legates. Items could
generate there and it was a teleport closet. We could mask this area
with no_tele_into and no_item_gen, but it's more interesting to add
clear runed doors and spruce up the dragon collection a bit, so do that
instead.

--------------------------------------------------------------------------------
d76f34b972 | Edgar A. Bering IV | 2019-01-11 22:24:16 -0500

Remove an extraneous article
Zap names are not expected to contain an article, so duplicate articles
were appearing.

--------------------------------------------------------------------------------
01d8f91dd3 | gammafunk | 2019-01-11 20:18:42 -0600

Increase killer klowns' club enchantment
Setting the plusses of a mon_weapon_spec disables further property
settings for the given weapon, so these were getting fewer enchantment
than intended. Even with the usual chance for extra enchantment, it
would have been a low average with a high max. Instead set the enchant
range from 8 to 12 using one roll.

--------------------------------------------------------------------------------
ba807d007e | gammafunk | 2019-01-11 20:18:35 -0600

Slightly more klown pies
Increase the chance of a klown throwing a pie on one of its normal
actions from 8% to 12%. Play-testing has shown them to be pretty stingy
with pies, which, honestly...they should be more willing to share.

--------------------------------------------------------------------------------
260fa776c4 | gammafunk | 2019-01-11 19:21:18 -0600

Use the right spell flags for Throw Klown Pie
This previously used flags appropriate for a smite targeted spell, which
would have Klowns throw pies without the knowledge gained from using a
tracer.

--------------------------------------------------------------------------------
39acc7ac85 | gammafunk | 2019-01-11 18:01:36 -0600

Rework trap and monster placement on Zot:5
This commit changes the hall_of_Zot vault on Zot:5 to rework some
placement distributions and logic. The monster count is unchanged and
the monster distribution is very similar to before, but a lot of the
placement logic is refactored. The changes to trap placement are more
substantial, as described below. In general, glyph usage and DES
statements have been refactored and comments have been updated.

Previously, the vault placed about 36 mechanical traps on-average,
additionally placing around 7 each for alarm, dispersal, teleport, and
Zot traps, for an average of 64 traps in total. After this commit, the
newly reworked net traps are the only mechanical traps to place in the
vault, and their numbers are brought inline with the non-mechanical
traps. We increase the number of traps for the remaining types to about
9 on-average for dispersal, net, teleport, and Zot, reducing the number
of alarms traps to about 5.5 on-average. Alarm traps have a big effect
on the vault as a whole when activated, so it's good to keep numbers of
these relatively small. The total average number of traps is now about
41.5.

The trap and monster placement logic has been changed to not rely on
fixed locations. In the old system, traps were scattered over many fixed
locations throughout the lower wings. In the upper wings, monsters sets
and traps were likewise scattered over fixed locations, but these were
fewer and more central. The new placement works similarly for placing
monsters, just without relying on fixed locations, and traps are allowed
to place in more locations in general. For the upper wing, we use a
large central square over which we place the guaranteed monsters and
monster sets. In each upper and lower section of both wings and in the
orb chamber, we now guarantee a minimum number of traps.

Previously, there was about a 33% chance to have a difficult trap
(alarm, dispersal, teleport, Zot) in both single tile passages leading
to the two lower wings. With the new trap placement, this chance of
having both entrances blocked by such traps is reduced to about 21%.

There was previously a 19% chance to get one or more orange crystal or
obsidian statues on the two outermost tiles of the line of floor
connecting a lower wing to its upper wing. This could only happen in one
wing and was based on another random roll used to determine the trap
chances for the lower wing entrances. This logic has been simplified, so
there's now a lower but independent chance for generating statue
monsters each wing. This makes the overall chance of seeing at least one
statue monster at any of these locations be 29%. Additionally traps can
now place at these locations as alternates to the statue monsters, using
the same low chance. Finally, since we carefully control trap placement,
I've disabled level trap generation inside the vault that would place
additional traps.

For the monster sets, the set for killer klowns has been updated to give
them all of the extra weight, as is already done for the ancient lich
and orb of fire sets. Previously some of that extra weight was given to
0 (normal level) spawns. Hence the number of klowns placed on-average in
the vault is up by a bit more than one, but the overall monster count is
the same.

--------------------------------------------------------------------------------
f95311e5ea | Edgar Bering | 2019-01-11 16:48:26 -0500

Remove a possible teleport closet (11823)

--------------------------------------------------------------------------------
7bcdfeb6a4 | Edgar Bering | 2019-01-11 11:58:49 -0500

Correct a typo in monster pie effects

--------------------------------------------------------------------------------
178e5287f3 | Edgar A. Bering IV | 2019-01-11 00:35:40 -0500

Remove mechanical traps from Tomb
Tomb used the '~' des glyph, one of the last places it is used
regularly. All uses have been replaced with kfeats, chosing
player-targeting traps (alarm, net, zot, and dispersal)
exclusively. The corridor blocking traps in Tomb:1 do not include
dispersal traps in their list for sanity's sake.

--------------------------------------------------------------------------------
2124650b06 | Edgar A. Bering IV | 2019-01-11 00:35:08 -0500

Adjust ossuary_the_hunt_dpeg
This ossuary has not worked for some time: zombies can't open doors. The
revelation of traps has made it even worse, as the "nasty" trap mode can
just be avoided by stepping around them.

The doors are removed and trap selection is revised, removing most of
the mechanicals. Net traps are now player-targeting, so are the lone
mechanical trap that is kept.

--------------------------------------------------------------------------------
0aaec43e4e | Edgar A. Bering IV | 2019-01-11 00:35:08 -0500

Adjust trap usage in some ossuaries
Now that traps are known, decorative traps can be removed. Corridor
mechanical traps are kept, since at the depths ossuaries generate they
provide obstacles to retreat.

--------------------------------------------------------------------------------
b05804236e | Edgar A. Bering IV | 2019-01-11 00:31:32 -0500

Zot-ify net traps
Part of an incremental push to fully phase out mechanical traps. The
other mechanical trap effects don't make much sense to convert to
tactical terrain (flavoured damage), but nets do.

This commit does not return nets to dungeon generation, so these are
currently limited to the vaults that place traps.

--------------------------------------------------------------------------------
0a1fc62c7c | advil | 2019-01-10 17:10:46 -0500

Prevent recursion for `viewwindow`
Because this function resets a lot of display state, any recursion is
potentially bad news since the lower code on the stack than the
recursive call may have references that become invalid. However, it is
hard to call it a bug that this function can occasionally be called
recursively, since there are many ways to trigger it and they tend to be
necessary for some corner case or other. (It perhaps suggests some kind
of radically different approach to redraws, though.)

This change was specifically provoked by a series of crashes like:
https://underhound.eu/crawl/morgue/Skull/crash-Skull-20190109-202350.txt

More precisely, what was happening here is the following:
Preconditions: (a) the player had a custom autopickup function in their
rc that had a bug (and so caused a lua error, related to trying to check
if trunks were rotten in 0.22) when hungry. (b) they trigger a runrest
delay, e.g. by 5. (c) there is some pickup-able item in los. (d) tiles.

1. `viewwindow` is called normally during an `_input` cycle.
2. In order to render the tile with an item during this call, the game
needs to know if the object should trigger autopickup.
(`_tile_place_item` calls `item_needs_autopickup`.) It gets this
`item_def` from the global map (env.map_knowledge), and starts passing
it around by reference.
3. The autopickup hook errors, and crawl prints the error with mprf.
4. The printing of an error (immediately) interrupts the delay, which
eventually calls `runrest::stop`, which calls `viewwindow` again.
5. During this second call to `viewwindow`, `show_init` is called, which
clears out the (global) map. Somewhere along the line, on the tile with
the item on it, `update_tile_at` causes `map_call::clear` to be called
on that tile, which deletes any cloud/monster/item info stored in that
tile.
6. When flow gets back to the autopickup code, there is now an item_def
reference that is invalid (because it is a reference to something that
has been deleted). If this memory has been re-used, at this point, a
check on the item type will fail, leading to the crash seen in the log
above. (This in practice happens maybe 1 in 10 calls, and is quite
random.)

Morals? Side-effects are bad, and side-effects involving global state
are especially bad, but this sequence of events is so complicated and
involves so many core bits of crawlcode that I couldn't come up with a
reasonably-scoped, principled solution. Since some version of this has
potential to happen any time there is this recursion, I just prevented
the recursion altogether.

--------------------------------------------------------------------------------
3016822696 | advil | 2019-01-10 17:10:46 -0500

Don't chop messages at 80 chars for chardumps/crashes
This probably comes up mainly for things like lua error messages. (An
alternative would be to not bother with 80 chars, which would make sense
for crashlogs, but not necessarily chardumps.)

--------------------------------------------------------------------------------
e64fb2763e | Edgar Bering | 2019-01-10 15:42:45 -0500

unbrace and checkwhite

--------------------------------------------------------------------------------
b50ad93e3a | Jacob Meigs | 2019-01-10 13:37:28 -0500

Decouple hi-score logic from ouch (11431)
Update to print logic to pull from the hi-scores already in memory.
All entries are added to memory from the read when attempting
to add the entry.

[Committer's note: Closes #742]

--------------------------------------------------------------------------------
0964cf1819 | Umer Shaikh | 2019-01-10 13:15:22 -0500

Fix information leak for invisible monsters (11815)
If the player wielded certain unrands that do damage to nearby actors on
attack, and had allies nearby, then they got a prompt for confirmation
when attacking. This prompt happened even if the player could not see
the enemy. So the location of the enemy was revealed, in no time, by the
player's trying to move into the cell. This commit changes that: the
player trying to move into a cell with an unseen monster will attack
without a prompt.

NB: now characters walking around with one of these weapons equipped and
without SInv may inadvertently anger their allies or their god.

--------------------------------------------------------------------------------
fe0cbb1ec1 | Edgar A. Bering IV | 2019-01-10 08:46:44 -0500

Add Ge0ff to CREDITS

--------------------------------------------------------------------------------
b3bac08b97 | Edgar A. Bering IV | 2019-01-10 08:45:52 -0500

More permanent MP display (Ge0ff)
Adds the real max MP on the Abilities screen. This way the Cost column
will have, for example, "Permanent MP (10 left)" instead of just
"Permanent MP."

--------------------------------------------------------------------------------
80e34f145d | Edgar A. Bering IV | 2019-01-10 08:45:32 -0500

Fix coloring for current MP in Webtiles (Ge0ff)
The mp_colour .rc option has no effect in Webtiles due to a bug in the
percentage_color() function. The function wrongly assumes that the
player object has the real_mp_max property and tries to calculate MP
percentage using its undefined value.

--------------------------------------------------------------------------------
68c7d63de0 | Edgar A. Bering IV | 2019-01-10 08:44:50 -0500

Display real MP for Deep Dwarves when necessary (Ge0ff)
Deep Dwarves' Heal Wounds ability is the only one that requires real MP.
Even if the maximum MP is 0 because of an antimagic weapon or -MP items,
the player can still use the ability. Similarly, if the player has no
real magic points, but has +MP items, the ability cannot be used.

Currently it is not possible to check the real MP without taking
actions. Taking off items with +MP and -MP or switching weapons takes
time, and unequpping some items, e.g. Maxwell's etheric cage, has side
effects.

This patch adds real MP to the %-screen/morgue and to the HUD (only for
Deep Dwarves and only when real MP != max MP).

--------------------------------------------------------------------------------
26ad783131 | Alex Jurkiewicz | 2019-01-09 20:08:09 -0500

Add unbrace and checkwhite to Travis
Also improves the output of `checkwhite -n`, using `unbrace -n` as a
guide. This should make it more informative for new contributors reading
Travis CI failed build logs.

[Closes #754]

[skip ci]

--------------------------------------------------------------------------------
356c24d696 | Edgar A. Bering IV | 2019-01-09 18:39:57 -0500

List johnstein under contributors also
Already in credits for running CBRO, give credit also for development
contributions.

--------------------------------------------------------------------------------
1a62673517 | John Boyle | 2019-01-09 18:28:52 -0500

Remove an unused parameter from a function.
Based on some minor code archaeology, looks like there was a
big refactoring of the stairs logic in commit:

09e009602f11412cbc18de77043e78e84103c371

It appears that's when 'whence' appeared, basically a rename of the
'old_feat' variable.  Also appears that the closely related variable,
how, also made its appearance here (renamed from 'stair_find').

Here's a helpful docstring on the diff between the two variables:
 * @param how The type of stair/portal tile the player is being conveyed through
 * @param whence The tile the player was on at the beginning of the transition
 *               (likely the same as how, unless forced is true)

Looks like when the old code was broken up into several functions,
'whence' got superflously added and didn't actually belong in
_travel_destination().

[Committer's note: Closes #615]

--------------------------------------------------------------------------------
34ce6ba02a | John Boyle | 2019-01-09 18:27:52 -0500

Don't let confused players win by tripping
Previously, confused players who tripped up the stairs could actually win,
despite getting a message saying they tripped back down.

This update modifies the returned travel destination after tripping if
the player is standing on the dungeon exit. Before, the destination
returned was the default branch with a depth of -1, which would be an
invalid destination. This was ok since this invalid destination would be
interpreted later to prevent going up-stairs after tripping.
However, there was special casing for standing on the dungeon
exit to skip being blocked from transitioning to the destination. This
logic was also updated.

--------------------------------------------------------------------------------
07611c5723 | gammafunk | 2019-01-08 20:37:54 -0600

Allow Vertigo status to show up in status displays
This allows it to show in the '@:' listing on the status screen as well
as in logfile and milestone entries.

--------------------------------------------------------------------------------
03697e9997 | Edgar A. Bering IV | 2019-01-08 20:12:26 -0500

Correct a feature description to match a tile

--------------------------------------------------------------------------------
184aec986f | Edgar A. Bering IV | 2019-01-08 20:11:05 -0500

Adjust the shape of a Bailey entry

--------------------------------------------------------------------------------
e8b2c155c3 | Edgar A. Bering IV | 2019-01-08 20:05:33 -0500

New axe and polearm statue tiles (CanOfWorms)
Replacing the unobtainable axes used as decoration in Bailey entrances.

--------------------------------------------------------------------------------
3803c42f16 | NormalPerson7 | 2019-01-08 14:45:54 -0500

Rename spret_type to spret
This shortens the name to reduce the number of lines that were made too
long by the previous commit, and so that the previous enum values
(e.g. SPRET_ABORT) now easily correspond to their new class values
(e.g. spret::abort).

--------------------------------------------------------------------------------
fb802740aa | NormalPerson7 | 2019-01-08 14:45:54 -0500

Convert spret_type to an enum class
This commit converts spret_type to an enum class and replaces all
instances of SPRET_ABORT, SPRET_FAIL, SPRET_SUCCESS and SPRET_NONE to
spret_type::abort, spret_type::fail, spret_type::success and
spret_type::none, respectively, to improve the type security of spell
return values.

This commit also fixes some intentional but nevertheless unnecessary
casting of SPRET_ABORT return values to booleans in _do_ability
(ability.cc), and a clear mistake of returning SPRET_ABORT in the
boolean function uskayaw_line_pass (god-abil.cc), which would now cause
compile errors.

--------------------------------------------------------------------------------
42e81859b2 | advil | 2019-01-08 12:48:11 -0500

Use window hidden API properly
This probably disabled delays altogether on servers that updated since
a036e810d7e9c886.

--------------------------------------------------------------------------------
edc204144c | advil | 2019-01-08 12:48:11 -0500

Don't create a new TextDecoder for each message
This may have been contributing to perception of choppiness, as it
seemed to be triggering periodic gc that I'm not otherwise seeing. (I
wouldn't have expected the old method to have any different effect, but
who knows.)

--------------------------------------------------------------------------------
eb4e2cb51d | Edgar A. Bering IV | 2019-01-08 12:14:33 -0500

Adjust Deal Four
Clearing the deck made the cost practically too high. During playtesting
there was a period where the deck was not cleared (a bug at the time)
but the playtesters did not report that it was too overpowered.

A piety cost of zero would be too low, so deal four gains a piety cost
again.

--------------------------------------------------------------------------------
079dcdc05b | Edgar A. Bering IV | 2019-01-08 11:48:18 -0500

Adjust deck size and card dealing
Increase the size of destruction decks to 26 and change the deal
frequency to favor destruction more.

Compared to the effects in summoning and escape, destruction effects
tend to be a single turn conjuration (Storm and top tier Pain need
adjustment here) which makes them comparatively weaker; giving the
player more to work with should help equalize the decks in power.

Compare this to old Nemelex's higher weighting of destruction decks.

--------------------------------------------------------------------------------
c184e932ed | gammafunk | 2019-01-07 19:11:02 -0600

Properly handle LOS for closed clear doors
The LOS test for things that block translocations previously only
considered features as blocking if they were opaque or walls. Close
clear doors are neither but should block these effects. All forms of
closed doors should prevent both effects and actors from passing through
as long as the door remains closed.

Add a feat_is_closed_door() check to the relevent "no_trans" LOS testing
function.

--------------------------------------------------------------------------------
28d4f2f0af | Edgar A. Bering IV | 2019-01-07 15:35:03 -0500

New Nemelex Draw icons (ontoclasm)

--------------------------------------------------------------------------------
376580ae66 | Edgar A. Bering IV | 2019-01-07 15:32:24 -0500

New dispersal trap tile (CanOfWorms)

--------------------------------------------------------------------------------
a036e810d7 | advil | 2019-01-07 09:43:23 -0500

Don't run delays for webtiles windows that are hidden (11657)
at least, according to the page visibility API, which is at proposed
recommendation level and widely supported. (For older browsers, this
should just fall back on the older behavior.)

The problem in 11657 is that most browsers throttle setTimeout to use a
minimum timeout of 1000ms for non-visible windowsr.  So, long travel
sequences that are supposed to have a 1ms delay in between each step
instead have a 1s delay in between each step, and so run extremely
slowly while the window is backgrounded and pick up speed to the regular
timeout length once the window gets refocused.

--------------------------------------------------------------------------------
304f35bdc5 | gammafunk | 2019-01-07 02:01:20 -0600

Rework some areas of a ghost vault
For gammafunk_ghost_gnarly_gnolls, always add the pair of doors closest
to the landing area, using the newly introduced clear doors. Use clear
doors elsewhere in the vault, and simplify the DES glyph usage.

--------------------------------------------------------------------------------
7e67e019d3 | gammafunk | 2019-01-07 02:01:20 -0600

Add clear doors to some vaults (minmay)
These vaults have a more pressing need for clear runed doors due to
their layout or being especially spoilery. We will probably have the `=`
DES glyph default to runed clear door in the future, but that will
require that we go over vaults a bit more systematically. After that,
some of this commit can be reverted.

--------------------------------------------------------------------------------
7832a39847 | gammafunk | 2019-01-07 02:01:20 -0600

Update list of past and present server admins
in CREDITS.txt

--------------------------------------------------------------------------------
5cfbae526d | gammafunk | 2019-01-07 02:01:20 -0600

Add Matthew Ludivico to CREDITS.txt
Move his name properly into the credits instead of having it in various
comments for vault files. His name is also credited in the names of the
vaults themselves.

His name was listed in comments at the top of several vaults in addition
to his handle being in the names of said vaults.

--------------------------------------------------------------------------------
1cc19cd42d | gammafunk | 2019-01-07 02:01:20 -0600

A 9x9 Gauntlet arena using runed doors
This arena can be used now that clear runed doors exist.

--------------------------------------------------------------------------------
22e01ae7f9 | gammafunk | 2019-01-07 02:01:20 -0600

Tiles and tile logic for translucent doors (minmay)
This commit adds clear door tiles made by minmay and updates tile
handling logic to properly show these tiles.

We have tiles for single closed, open, runed, and sealed clear doors as
well as gated tiles. No Crypt-specific variants for these like the
opaque doors have, but those shouldn't be necessary. Crypt has no
special clear wall tiles that we're trying to blend with.

--------------------------------------------------------------------------------
9cb7e9484a | gammafunk | 2019-01-07 02:01:20 -0600

Door handling logic for translucent doors
Update the functions that test for close, runed, and sealed doors to
included the clear door types. Add feat_is_open_door() and
feat_is_runed() as general functions to test for open and runed doors
now that there are two kinds of each. Also add dgn_close_door() and
dgn_open_door() functions to close or open a door to the right type that
retains opacity. In other words, when closing a door we turn a clear
open one into a clear closed one. Update door handling logic to use
these new functions.

--------------------------------------------------------------------------------
546a3085bf | gammafunk | 2019-01-07 02:01:20 -0600

Translucent door feature types and data
Translucent doors are a new door type that allows LOS visibility through
the door itself. These can be referred to simply as "clear" doors, but the
word "translucent" is used in the in-game descriptions.

One of the main uses of clear doors will be for vaults with runed doors.
Clear runed doors allow revealing vault contents without as much use of
adjacent translucent walls. This is especially useful for vaults with
multiple-tile doors, which is something non-runed vaults can take
advantage of as well using ordinary clear doors. Having clear doors
types in addition to the usual opaque ones will generally allow for more
creative terrain in vaults and layouts.

This commit adds the four necessary dungeon feature types for
translucent doors: closed, open, runed, and sealed. Subsequent commits
will add the logic to properly handle retaining the right feature types
as doors are open, closed, sealed, etc. This logic will be analogous to
the behaviour of current opaque doors. Runed clear doors will turn into
ordinary clear doors when opened. Sealed clear doors will remain clear,
allowing visibility through them, but can't be opened until they're
unsealed.

Translucent door console colors are: cyan for ordinary, lightcyan for
runed, and white for sealed. Tiles and tile handling logic will be added
in a subsequent commit.

It would be good to use clear runed doors for rune door vaults whenever
possible to help minimize spoilers in these vaults. It may be possible
to rework all runed door vaults to use clear runed doors. For now, we
keep the opaque runed doors for the occasional more spoilery vault that
needs them. Closes #934.

--------------------------------------------------------------------------------
3751e1c4cc | advil | 2019-01-06 21:32:39 -0500

Don't use `let`
Not necessary here and isn't otherwise used in our codebase.

--------------------------------------------------------------------------------
63bca24c07 | advil | 2019-01-06 21:15:16 -0500

Fix out-of-order messages (maybe 11780)
For compressed websockets, the decoding process used a FileReader to
convert the output of decompression to UTF-8. However, FileReader comes
with no guarantees about the order in which callbacks get attended to
when there are multiple instances, and in chrome especially they could
get quite out of order for messages sent at roughly the same time. This
lead to the message queue being out-of-order, which various aspects of
the webtiles client are not robust to.

This commit uses (suggested by jilles) a TextDecoder instance instead.
Because this may not be supported by some browser versions still in use,
I have kept the old approach as a fallback. (An alternative would be
simply to use uncompressed websockets if TextDecoder is not supported.)

--------------------------------------------------------------------------------
ca735f5602 | gammafunk | 2019-01-06 17:44:52 -0600

A Throw Klown Pie ability for Killer Klowns
This LOS-range ability throws a damaging projectile (a pie!) that
inflicts a non-resistable and temporary debilitating effect on the
victim whenever it does damage. The effects are: inability to drink
potions (player-only), Vertigo (player-only), stat drain (player-only),
silence, fire vulnerability, and polymorph. The player version of
polymorph is restricted to forms that can always move: bat, hog, and
wisp. The effects are weighted evenly except for fire vulnerability,
which has 12% chance, and polymorph, which has 8% chance.

These effects are ones not already represented by existing Zot monsters
and mostly things that are significant in combat, especially with
multiple monsters involved, but don't always necessitate immediate
retreat. Polymorph is the exception to this; it's a rare but scary
effect where the player has to use the form to escape or use things like
potions of cancellation, allies, god powers, powerful spells, etc. for
safety.

The pie does damage that's the same as quicksilver dragon breath, 3d20.
This is enough to give it a good chance to have an effect even on
characters with good AC. Additionally Klowns have a low weight for using
their new ability, about 1/4 as much as Quicksilver dragon use their
breath.

The pie projectile tiles are taken from the April Fool's implementation
of Jesters. Now all that's left is to make Killer Klowns worship Nemelex
and have Xom wrath...

--------------------------------------------------------------------------------
bb96f5f248 | gammafunk | 2019-01-06 17:44:52 -0600

Code support for restricted player polymorph
Add a `allow_immobile` argument that defaults to true for
actor::polymorph(). If this is false, the player won't polymorph into a
form that can become immobile, like Tree or Fungus form.

This will be used in an upcoming Killer Klown spell.

--------------------------------------------------------------------------------
e027d9b72c | gammafunk | 2019-01-06 17:44:52 -0600

Initial rework of Killer Klowns
Killer Klowns are fairly boring and ineffective Zot monsters right now.
Their defining characteristics are their speed, their af_klown melee,
and their blinking. The af_klown melee effects are mostly already
represented by existing Zot monsters and are necessarily conservative
to avoid a "never melee this" situation. Overall, Klowns feel like
nothing more than blinking meatbags that don't really live up to their
relative rarity and special use in the Hall of Zot.

This commit is part of a reworks Klowns to give them a more interesting
ranged attack in place of their custom melee type. The ranged attack
will be a "Throw Klown Pie" ability that does damage and inflicts one of
a set of temporary effects. It will be introduced in a subsequent
commit.

In this commit, the af_klown melee type is removed, and Klowns now get
well-enchanted, usually branded clubs as melee weapons. A clubs is a
poor weapon on its own, but high enchantment and use of brands combined
with a Klown's decent melee damage serve a purpose similar to af_klown
without needing a custom attack flavor. A club is also a funny weapon;
you can't help but laugh when getting hit with a +12 club! The club
brands include flaming, freezing, vorpal, elec, venom, vamp, antimagic,
pain, holy wrath, and at very low weights, distortion and chaos. The
last two create a "don't melee this" situation, but with a combined
chance of only 3%, seeing a Klown with one of these brands will be a
rare and delightful treat.

This commit also removes Klowns' extra regen, something I'm sure many
players (and some developers) didn't know they had! Klowns have lots of
HP and like to blink around, so there's no need to help them overstay
their welcome with fast regen.

Klown tiles now have weapon offsets so that their clubs can be properly
displayed for each tile variant. The tiles weren't designed to display a
weapon, but the locations I've chosen work well enough for now. In the
future, it might be good for an artist to adjust the tiles to allow
better weapon display.

--------------------------------------------------------------------------------
a4d50d4d25 | gammafunk | 2019-01-01 18:06:09 -0600

A Trog-themed ghost vault with wrathtful warriors
A transporter ghost vault for D:7-15, Lair, Orc, Shoals, Snake, Swamp,
Elf, Depths, and Zot. In gammafunk_ghost_wrathful_warriors, some
warriors pay tribute with offerings at Trog altar. An unfortunate player
tried to take the loot, but neglected to notice the moths of wrath
provided by Trog to aid his champions.

The only terrain are three rocky pillars arranged in a primitive henge
with some randomized wall placement. Some of the warriors are armed with
weapons themed as Trog gifts. In certain branches like Elf or Shoals, a
couple monsters are primarily ranged attackers that pose the most threat
before they berserk. All monsters are capable of being berserked and
none are spell-casters. Numbers of monsters and loot scale with depth of
placement, similar to other ghost vaults. The number of Trog-themed
weapons gradually increases, as does their quality.

--------------------------------------------------------------------------------
5ee8fed462 | gammafunk | 2019-01-01 17:52:56 -0600

Update DES and monster data for a ghost vault
Tweak the monster weapon definitions used by the ghost_orc_armoury
vaults to make them a bit more general. Include some reasonably low
weights for higher-end types for the knight set. Make the monster weapon
sets available as variables for other ghost vaults. These will be used
by a vault introduced in a subsequent commit.

For the ghost_orc_armour vaults themselves, reindent the kmons()
statements to be more readable. Also tweak NSUBST statements to put the
fancier orcs earlier in the statements for clarity.

--------------------------------------------------------------------------------
2b9f6a0aa0 | gammafunk | 2019-01-01 17:52:56 -0600

Fix loot generation in a vault
In gammafunk_ghost_berserking_beasts, the loot wasn't placed properly in
the Spider branch due to missing SUBST statements.

--------------------------------------------------------------------------------
3f50ca7087 | gammafunk | 2019-01-01 17:52:56 -0600

Remove some ammo quantities from DES monster specs
When giving ammo to a monster as part of its monster spec, the monster
will be given a reasonable quantity for that ammo type if quantity isn't
specified. The monster gear code doesn't correctly apply
monster-specific quantity bonuses when doing this, which is something
that should be fixed. However those aren't relevant for the instances
changed by this commit.

--------------------------------------------------------------------------------
4b96247385 | gammafunk | 2019-01-01 17:52:56 -0600

Update and comment a ghost vault loot function
Have ghost_good_loot() use the lists of auxiliary armour in
dat/dlua/dungeon.lua instead of having its own lists. Add comments
describing how this function sets up its loot glyphs.

--------------------------------------------------------------------------------
8ec7dd4a3d | gammafunk | 2019-01-01 17:52:56 -0600

Fix a weapon specification function
The random_item_def() function used by ghost vaults didn't properly
exclude quick blades from receiving the speed ego. Also remove a check
for randarts with no ego specification used by an earlier version of
this function, since that's no longer needed.

--------------------------------------------------------------------------------
b60d84b635 | NormalPerson7 | 2018-12-31 17:24:24 -0500

Improve spell description of memorised uncastable spells (11808)
"You cannot memorise this spell because ..." was unsuitable when the
player had already memorised an unusable spell before it was made
unusable.

Therefore, change this message to "You cannot cast this spell because ..."
when the player had previously memorised the spell.

Also convert `description` in this function from a string to an
ostringstream to prevent casting to a string that would be caused by
neither of the first two additions to `description` being of type
string.

--------------------------------------------------------------------------------
9ccc95a320 | Edgar A. Bering IV | 2018-12-30 23:04:45 -0500

Changelog through 0.23-a0-642-g3120c2f5

--------------------------------------------------------------------------------
3120c2f5a9 | gammafunk | 2018-12-29 22:44:08 -0600

A ghost vault with berserking beasts
A transporter vault for D:7-15, Lair, Orc, non-Slime Lair branches, Elf,
Depths, and Zot. In gammafunk_ghost_berserking_beasts, you encounter the
ghost of a player who stumbled into a cave of beasts with moths of wrath
lurking about. The monsters are animal-intelligence things from the
branch of placement that can be berserked. Monster count and loot are
progressive in the usual ghost vault fashion. An extra piece of
auxiliary armor or jewellery that upgrades in quality by depth is placed
under the ghost.

The layout is the same used in another ghost vault for now. I'll rework
it to be something more uniquely cave-like in a future commit.

--------------------------------------------------------------------------------
0a7f1ce553 | Edgar A. Bering IV | 2018-12-29 11:35:48 -0500

Update CREDITS

--------------------------------------------------------------------------------
5944deb15c | Ryan | 2018-12-29 11:33:10 -0500

Grant Qazlal cloud immunity to divine allies
This fixes the non-combo circumstance where your own clouds kill your
Qazlal Elementals. Qazlal still hampers other sources of allies.

[Committer's note: Closees #773, restricted immunity only to Q allies]

--------------------------------------------------------------------------------
a9a3373214 | Umer Shaikh | 2018-12-28 14:59:07 -0600

Remove useless function declaration
This function is never defined or called.

--------------------------------------------------------------------------------
c52245bda8 | bjobae | 2018-12-28 08:51:28 -0600

Adjust Amulet of the Acrobat
The acrobat effect no longer works while held or constricted.

Display of the EV-boost during the previous turn is improved by
extending the duration of the acrobat effect for one AUT. There are no
one AUT player actions, so if the player takes a non-acrobat action they
will lose the status before the world_reacts().

The result is that the EV-boost received during the previous turn after
doing non-actions (entering an unknown command, viewing inventory etc).

[Committer's note: Closes #922, tweaked some comments and wording]

--------------------------------------------------------------------------------
a828402fb8 | Umer Shaikh | 2018-12-28 07:46:46 -0600

Make cloud duration more apparent to console players
Tiles players can see when certain clouds (e.g., fire from conjure
flame) are about to expire. We reveal similar information to console
players by adding separate characters for (some) decaying clouds. These
are distinguised by default in CSET_DEFAULT (but not CSET_ASCII) and can
be set by the player by modifying the option display_char.

--------------------------------------------------------------------------------
0ff605794f | NormalPerson7 | 2018-12-27 10:15:30 -0600

Add three tile colour options to the options guide (11802)
Add the options:
    tile_transporter_col,
    tile_transporter_landing_col, and
    tile_explore_horizon_col
to options_guide.txt.
Adjust whitespace to retain alignment of the other tile colour options.

--------------------------------------------------------------------------------
88ca12a7de | advil | 2018-12-26 16:49:16 -0500

Rename some more `require` calls
These were added after the initial branch.

--------------------------------------------------------------------------------
1d9819160e | advil | 2018-12-26 16:32:13 -0500

Rename `require` in tests

--------------------------------------------------------------------------------
8735bf6294 | advil | 2018-12-26 16:32:13 -0500

Rename crawl's custom `require`
We don't (normally) load the lua `package` lib, but this function
shadows a lua `require` that would be loaded by this lib. Rename our
`require` both to make it clear that this *isn't* the real lua require,
and to allow the real thing to work (especially when libraries try to
use it) for builds where `package` is loaded.

--------------------------------------------------------------------------------
b80182b6c8 | advil | 2018-12-26 13:54:30 -0500

Improve behavior of drain life in wizmode (11801)
Drain life, as a spell, is monster-only, and was crashing in wizmode
because calling it as a player zap doesn't set the range correctly. This
commit sets it explicitly to be monster-only; the Yred ability does use
this spell type, but isn't impeded by this change because it is called
there via `fire_los_attack_spell` which doesn't worry about this flag.
Together with the added exception to prevent the zap from being called,
this causes casting it in wizmode to use the monster cast code (i.e.
create a dummy monster and cast it).

This commit also adds a message when memorizing a monster-only spell via
&!, not just when casting.

--------------------------------------------------------------------------------
55861494d7 | advil | 2018-12-26 13:03:08 -0500

Mark test statues as non-firewood
43d87f4 caused them to be firewood, which prevents tab from working (and
maybe there are other side-effects no one has noticed). This commit lets
them still be harmless, but also tabbable.

--------------------------------------------------------------------------------
9e4c4e90a0 | Edgar A. Bering IV | 2018-12-26 09:26:54 -0600

Correct a manual typo (11804)

--------------------------------------------------------------------------------
ae4348f6cf | gammafunk | 2018-12-24 14:12:57 -0600

Fix a typo in the gauntlet portal message (vt)

--------------------------------------------------------------------------------
7e7a9de784 | NormalPerson7 | 2018-12-24 12:20:21 -0600

Fix surge of power message order when evoking enhanced wands (11753)
This commit adds functionality to deal with the "surge of power" message
when zapping wands under MP-powered wands in your_spells directly, so
that this message is displayed before any of the wand's effects and any
world_reacts effects caused by zapping the wand are displayed.

To effect the change this commit also moves the check for the player
having enough MP to use the full power bonus from MP-powered wands into
wand_mp_cost.

[Committer's note: Closes #926, squashed and kept some Pakellas code in
place since Pak is disabled but not removed]

--------------------------------------------------------------------------------
f6ffe88bf0 | gammafunk | 2018-12-24 10:23:42 -0600

Fix a typo in the INSTALL instructions (enop)

--------------------------------------------------------------------------------
6760373aa6 | NormalPerson7 | 2018-12-24 10:22:16 -0600

Fix a typo

--------------------------------------------------------------------------------
1d2cd9b1ef | gammafunk | 2018-12-23 18:24:49 -0600

Four Gauntlet maps using 7x7 arenas by minmay
These maps use the 7x7 arena subvaults introduced in the previous
commit. They have layouts ideas similar to the existing four 9x9 arena
maps, introducing a couple variations and also sometimes mixing in 9x9
arenas in the same map.

minmay_gauntlet_77_indecision: Six arenas total arranged in vertical
pairs. The player chooses a path through two first tier pairs and one
second tier pair.

minmay_gauntlet_77_tree: A tree like arrangement of 7 arenas where all
paths go through two tier one arenas and then a tier two arena. The
first vault is mandatory, with two choices at each of the two points
afterwards.

minmay_gauntlet_mixed_big_or_small: Mixes 9x9 and 7x7 arenas, giving a
choice of two paths, one using 9x9 and one using 7x7. Each path has two
tier one arena followed by a tier two.

minmay_gauntlet_mixed_oops_all_seconds: The player has three choices of
paths with two arenas each, all of which are tier 2. Each path has one
9x9 and one 7x7 arena.

I've tested all of these maps to make sure that they place all their
subvaults properly and that all of their transporters work.

--------------------------------------------------------------------------------
52e5ff9589 | gammafunk | 2018-12-23 17:57:47 -0600

Some 7x7 Gauntlet arena vaults by minmay
These smaller arenas will be used in minmay's Gauntlet maps, which will
be merged in an upcoming commit. The setup and glyph usage of these
arenas is the same as 9x9 vaults, aside from using a different set of
selection tags. The only change I've made is to simplify an NSUBST
statement, but I've also verified that all vaults place the necessary
numbers of glyphs, have the right tags, and call the setup function.

The 7x7 arena vaults leave a lot less space for terrain given the
requirement of 23 glyphs. It might be good to look at lowering the
number of 3 glyphs required. The current sets use no more than six 3
glyphs, for example. Alternately we could have the monster placement
code be aware of vault size limitations, allowing us to require
different numbers of glyphs for different arenas. For instance, smaller
arenas would never roll more than six monsters for the '3' glyph and if
a set required more than six monsters as its minimum, a new set would be
chosen. For now we're just requiring the same set and number of glyphs
for both arena sizes.

--------------------------------------------------------------------------------
e3a65f00e4 | gammafunk | 2018-12-23 14:02:37 -0600

Clean up some Gauntlet DES
Rewrap comments and remove a stray wall glyph.

--------------------------------------------------------------------------------
59b4ea9c50 | gammafunk | 2018-12-22 18:18:04 -0600

A Kiku-themed ghost vault
In gammafunk_ghost_crypt, the player finds a crypt housing some liches
and from one to three player ghosts, with decreasing chances for each
additional ghost past the first. Any ghosts that don't place are
replaced with a lich, and the liches upgrade to ancient liches as
appropriate for depth of placement. The vault is Kiku-themed, always
placing a book that is a necro randbook, the Necronomicon, or a manual
of necromancy. The other guaranteed loot are a piece of artefact
auxiliary armor and a piece of randart jewellery. The remaining loot is
randomized in typical ghost vault fashion.

Places on D:15, and in Elf, Crypt, Vaults, Depths, and Zot.

--------------------------------------------------------------------------------
65ce32ea93 | gammafunk | 2018-12-22 18:15:39 -0600

A trap-themed ghost vault
The vault gammafunk_ghost_tricky_traps features Zot, dispersal, and
alarm traps on the inside and outside. In addition to a player ghost,
the vault has some in-branch monsters that can blink along with a
depth-scaled number of normal level monsters. Loot also scales with
depth, but always includes a piece of randart auxiliary armor.

Places on D:15 and in Shoals, Spider, Elf, Vaults, Depths, and Zot.

--------------------------------------------------------------------------------
4f9fac93c6 | gammafunk | 2018-12-22 17:23:23 -0600

Rename a ghost vault
Rename the vault ploomutoo_gammafunk_ghost_potion_laboratory to
ploomutoo_gammafunk_vaults_ghost_potion_laboratory so its name is
consistent with other ghost vaults. This makes vault searches and
queries easier.

--------------------------------------------------------------------------------
281719c6f9 | Edgar A. Bering IV | 2018-12-21 16:35:28 -0600

Spice up the skin of Zhor
Riffing on the cold theme, give it a passive Metabolic Englaciation
effect. To cut down on message spam, have it only trigger when monsters
are around, and give it SInv to avoid weirdness with detection.

--------------------------------------------------------------------------------
2e9d38c61e | advil | 2018-12-21 16:20:07 -0500

Fix some issues with build-rltiles and webtiles
Ensure that libpng gets built if there is no pkg-config, so that the
submake has access to it. Also a misnamed variable that crept in in
a53296f351.

--------------------------------------------------------------------------------
9ead64f384 | gammafunk | 2018-12-21 13:53:36 -0600

A ghost vault full of gnarly gnolls
A transporter ghost vault for D:3-8 that's inspired by Lemuel's infamous
castle vault. In gammafunk_ghost_gnarly_gnolls, the player encounters a
ghost who tried and failed to raid a well-guarded gnoll castle. Gnarly
gnolls include those with branded reach weapons and possible nets, as
well as gnoll artificers (just ordinary gnolls with wands). As depth
increases, so does the amount of monsters and loot, with gnoll sergeants
replacing some of the ordinary gnolls. On D:7-8, there's a chance for
Grum and his band of wolves to replace one of these sergeants.

The castle's treasure vault always places a manual (gnolls love raising
skill levels!), a piece of jewelry, and some gold. The vault has mostly
narrow passageways, but one or two doors may place near the entrance to
give both players and monsters additional movement options.

--------------------------------------------------------------------------------
092a5d6148 | gammafunk | 2018-12-21 13:37:16 -0600

Use local variables in some vault Lua
Not using local in Lua functions can make certain bugs harder to find.
For instance, bugs can happen when a variable is referenced by the wrong
name and the incorrect name has already been defined globally, often by
another function or block that should have declared the variable as
local. The incorrect variable then gets used, which may lead to
incorrect results without generating an error.

This commits makes a bunch of ghost vault Lua variables local to their
function or block.

--------------------------------------------------------------------------------
63707c92e3 | gammafunk | 2018-12-21 13:30:31 -0600

Fix a weapon ego designation in a vault
It's 'vampirism', not 'vampiric'. This typo caused the vault to not
place due to a parsing error whenever this ego was selected.

--------------------------------------------------------------------------------
67888616f5 | gammafunk | 2018-12-21 13:30:31 -0600

Fix a monster item definition in a vault
The randomized weapon quality wasn't being correctly used, leading the
quality to never upgrade from 'good_item' to 'randart'.

--------------------------------------------------------------------------------
343d861593 | gammafunk | 2018-12-21 13:30:30 -0600

Fix a decoration and a comment in a ghost vault
The SUBST was on the wrong glyph, never allowing withered trees to place
as an alternate to withered plants.

--------------------------------------------------------------------------------
cb482e9659 | Edgar A. Bering IV | 2018-12-20 21:52:46 -0500

Display deck counts upon receiving a Nemelex gift

--------------------------------------------------------------------------------
cf5c981ec5 | Edgar A. Bering IV | 2018-12-20 19:23:35 -0500

Exempt Ashenzari followers from explore traps
The explore trap system interacts poorly with scrying: a player walking
over an explored area to scry a wall rolls traps upon the scry reveal
(though only for those tiles that would grant xp), which means that the
player can be trapped despite only stepping on what they believe to be
safe tiles. This is an unintuitive interaction.

Tracking whether a tile was revealed by scrying or by an honest look is
in principle possible, but would need to be revealed in the UI and
communicated to the player. Even before the trap change, piety was
granted for scried tiles as if they were explored. Though it's not
mentioned in the commit log the behaviour appears to be intentional, and
it certainly prevents a UI headache. For this reason, and since Ash
previously boosted trap searching this patch grants Ash followers
immunity to explore based trap effects.

--------------------------------------------------------------------------------
21ca0c9895 | Edgar A. Bering IV | 2018-12-20 19:21:19 -0500

Correct a conditional (Ge0ff)
Commit 7a20e1 used the negation of the correct logic.

--------------------------------------------------------------------------------
13ba85c617 | Edgar A. Bering IV | 2018-12-20 19:20:05 -0500

Simplify monster trap pathing and knowledge

--------------------------------------------------------------------------------
7a20e1320a | Edgar A. Bering IV | 2018-12-20 13:01:13 -0500

Don't trigger alarms through glass
Breaking LOF reciprocity for this trap and not Zot and Dispersal traps
led to bad interactions with scrying for little benefit.

--------------------------------------------------------------------------------
760965b753 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Generalize uncancellable menus
Add a flag MF_UNCANCEL that indicates to a Menu that it is
uncancellable. Menus run with this flag should be run from within a
run_uncancel to behave correctly under HUPs.

--------------------------------------------------------------------------------
be15bf4649 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Streamline the Stack Five UI
Instead of repeatedly calling the deck chooser menu in a clunky fashion,
implement a fancier deck chooser that displays the cards crawn so far on
the bottom line.

--------------------------------------------------------------------------------
2fa7c9c2c9 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Prompt before canceling damaging cards
The player has already seen the card, so we can't put it back, but if
they want to waste it that's their prerogative. If we see a hup we also
cancel the card.

--------------------------------------------------------------------------------
67175e32ae | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Display the top of the stack in the ability menu
Currently 'the Pentagram' is 13 characters, so there isn't space in the
Cost column of the ability menu for the string
'A Card (the Pentagram, n more)' using a shorter string than this makes
it even harder to parse. Since a player concerned about how many cards
remain in their stack is probably also interested in which cards those
are it doesn't seem too bad to not have the count in the ability
display.

--------------------------------------------------------------------------------
80e52c9aa2 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Default force_more for Nemelex gift messages
This gives a force_more for every gift. As the gift timeout hasn't
changed this is hopefully not too obtrusive. If it really is, a separate
message for when a deck goes from zero to non-zero card count should be
added and made the default along with the deck is full message.

--------------------------------------------------------------------------------
399e8c3419 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Make the Velocity card less harmful at low power
At power level zero Velocity was far more likely to be actively harmful
to the player than to help. With the changes to Nemelex, this particular
blind-draw downside is too harsh.

The new card no longer removes haste at power zero, and has the
following effects based on card level.

- level chance in 2 to remove slow from the player
- for each enemy in sight there is a (level + 1) chance in 3 to slow
- for each ally in sight there is a level chance in 2 to haste

--------------------------------------------------------------------------------
7060c5926a | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Adjust Triple Draw and Deal Four
The piety cost of deal four was a relic from old Nemelex, was too high
(according to some) for even old Nemelex, and definitely too high for
new Nemelex. The loss of cards means that deal four is piety gated in
the new scheme already, so the piety cost for dealing four is now zero.

Additionally, with card counts known, the punishment mechanic doesn't
make sense (too flavour).

Triple Draw is very good, and knowing deck counts means it can always be
used on 3 cards, so its piety cost is increased.

--------------------------------------------------------------------------------
264638ff1b | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Disable empty decks in the ability menu

--------------------------------------------------------------------------------
8f7bd25791 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Display cards available in the ability menu

--------------------------------------------------------------------------------
465c976133 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Descriptions for Nemelex Draw abilities
These are automatically built to reflect the current state of the deck
being described.

--------------------------------------------------------------------------------
96e2e8d459 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Iconography and gui elements for decks
Move old deck icons to UNUSED. Recolour and relocate the remaining ones
to fit the colour scheme of Nemelex's other abilities.

--------------------------------------------------------------------------------
1e257c81de | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Icons for the different draw abilities

--------------------------------------------------------------------------------
69d4283a7f | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Split "Draw One" into individual draw abilities
This removes an extra keypress that will add up over time. For user
consistency, the deck hotkeys in the deck chooser are now the same as
the ability hotkeys for drawing from them. If this behavior is
undesirable for some users, an options toggle can be added.

--------------------------------------------------------------------------------
5f4ef5656c | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

New Nemelex Stack five
The player draws five cards, one at a time, and then organizes them into
a stack, which can be subsequently drawn from in draw one. Re-using this
ability discards the current stack.

This commit refactors an internal function to simplify displaying card
descriptions.

--------------------------------------------------------------------------------
5ca2704122 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

New Nemelex Triple Draw ability
Reimplementation of the old ability, which is otherwise totally
unchanged.

--------------------------------------------------------------------------------
b66aaafc7a | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

New Nemelex Deal Four ability
Deals four from one of the player's abstract decks, emptying the
remaining cards. The player is still permitted to deal four without
sufficient cards (with a prompt), if they do they get a deal from
Punishment.

--------------------------------------------------------------------------------
d6dedd38c1 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

New Nemelex Draw One ability
Draws from one of the abstract decks the player has, and is the only
interface to decks.

--------------------------------------------------------------------------------
453e4f2e67 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

A deck choosing menu
Add a menu for all Nemelex abilities to select the deck to use. Toggles
to describe the decks, listing their cards.

--------------------------------------------------------------------------------
e45b02a626 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Abstract decks to a player property
Nemelex deals cards into the player's decks on the gift timeout and
empties them on wrath.

--------------------------------------------------------------------------------
7ca12cd971 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Remove decks as items
Subsequent commits will return decks to Nemelex worshippers without
going through the legacy of having them be actual items.

This commit removes the deck item type, confiscates any remaining decks on
load in save-compatibility, and removes as much of the item handling
code for decks as possible.

Any pre-change Nemelex worshippers transferring their save get a raw
deal, but that's been done once before for the evocations to invocations
change.

--------------------------------------------------------------------------------
5bbfdfcaa2 | Edgar A. Bering IV | 2018-12-19 11:55:14 -0500

Remove deck rarity types
Step one of abilifying decks is to remove the different rarities. All
decks are now roughly ornate in power, but the exact distribution of
card_level has changed somewhat, and is now

card_level = x_chance_in_y(power, 900) + x_chance_in_y(power, 2700)

with power a function of piety and invocations:

power = (invocations * 9) + (piety * (invocations + 25)) / 27 + piety * (3/2)

Further attempts at balance are not considered at this stage, since
subsequent commits will further modify Nemelex significantly.

--------------------------------------------------------------------------------
acb4b3f4ce | advil | 2018-12-17 16:18:18 -0500

Don't show ghost debug messages as errors
...so that they don't force a more when doing level reloads. These will
still appear on non-debug builds after wizmode commands, as long as the
diagnostcis channel isn't disabled.

--------------------------------------------------------------------------------
ec6e9a1b29 | Nikolai Lavsky | 2018-12-17 09:46:10 -0500

Fix display of rotted HP on WebTiles (11759)
Commit 1406302deb reversed the meaning of the get_real_hp()'s second
parameter and updated all instances of this function, except for one
in tileweb.cc.

--------------------------------------------------------------------------------
44dd78f40d | Edgar A. Bering IV | 2018-12-16 13:15:13 -0500

Add jrmartel to CREDITS.txt

--------------------------------------------------------------------------------
50760eb0ed | jmart | 2018-12-16 11:17:38 -0500

Fix Sif Muna dud gift bug (11791)
If the player has every spell in their library, Sif Muna will still
send the "Sif Muna grants you a gift!" message and trigger gift timeout.
This commit corrects the bug. When the player has all spells in their
library, Sif's gift timeout will no longer be triggered.

The cause of the error was an incorrect check in Sif's gift logic.
The return value of the acquirement(...) method was used to check
success, but that method returns true even if no item was created.

[Committer's note: Formatting tweaks, Closes #923]

--------------------------------------------------------------------------------
1b4a0ca2fb | Edgar A. Bering IV | 2018-12-15 13:25:39 -0500

Elaborate in a comment (|amethyst)

--------------------------------------------------------------------------------
66906bf028 | Edgar A. Bering IV | 2018-12-15 12:13:01 -0500

Only trigger traps in player sight
This uses LOS_SEE, so that monsters on the other side of glass trigger
traps. Monsters triggering traps out of LOS is a simulationist relic of
player-monster symmetry, which was for the most part not noticable other
than: "distant Zot" messages, occasionally losing track of a unique down
a shaft, and in hall_of_zot where a spoliled player could wait for a
long time outside the vault to thin the monsters within using the
permanent teleport traps.

--------------------------------------------------------------------------------
f63cd86e0c | Edgar A. Bering IV | 2018-12-15 12:06:13 -0500

Don't place monsters on traps
For dispersal traps this creates the lingering question "how did they
get there"; for alarm traps and Zot traps it prevents an interface screw
in console. (It can still happen that a player enters LOS and a
wandering awake monster is standing on certain kinds of traps.)

--------------------------------------------------------------------------------
6f776099ac | Edgar A. Bering IV | 2018-12-15 11:24:20 -0500

Adjust dispersal sequencing
Always blink the triggerer last to prevent chain dispersal from a single
trap. This doesn't prevent dispersal chains from two or more nearby
traps, but those are rare.

--------------------------------------------------------------------------------
fddc42b1e8 | Edgar A. Bering IV | 2018-12-15 11:15:04 -0500

Consider dispersal traps impassible in levelgen
While this isn't technically true, dispersal traps can be passed, it is
painfully annoying.

--------------------------------------------------------------------------------
2b1de944cd | advil | 2018-12-13 15:11:51 -0500

Respect BFLAG_NO_SHAFTS for explore-triggered shafts (u/Hamsteri)
This affects only tomb 1=>2; 2=>3 was already prevented by
BFLAG_DANGEROUS_END, and no other branch has BFLAG_NO_SHAFTS set. I'm
not sure what the original intent of only checking this on levelgen was,
but it long precedes explore traps. I did a quick audit of code that
calls this and it all seems fine; though it may have been possible for
formicids to self-shaft on tomb 1 before this commit (and probably won't
be now).

--------------------------------------------------------------------------------
c793968550 | advil | 2018-12-13 12:27:44 -0500

Clean up some oldghosts code
Now that saving of ghosts is disentangled from loading of ghosts,
there's no pressing reason to prevent saving of ghosts in portals, and
some vault designer might come up with a clever way to design ghost maps
for some portals. (That said, I'm not sure I can see a good way to make
a ghost map for some of the early portals, e.g. sewer.) I've still left
branches disabled where I can't envision any good way of making use of
ghosts.

Also, remove an old function that is now used only for wizmode testing,
and adjust some documentation/naming to better represent how this code
is used for newghosts.

--------------------------------------------------------------------------------
442c57a089 | gammafunk | 2018-12-13 09:14:05 -0600

Correctly handle LOS for dispersal traps
Dispersal traps are supposed to affect actors that can see the cell of
the trap without any translocation-blocking wall in the way (e.g.
transparent rock or stone). This condition was correctly applied to
monsters, but not to players if the trap was triggered by a monster.
This commit applies the condition to player, preventing monsters on the
side of transparent rock/stone walls from blinking the player with
dispersal traps.

--------------------------------------------------------------------------------
a53296f351 | advil | 2018-12-13 09:56:36 -0500

Fix cross-compiling + libpng
When cross-compiling, the contrib libraries are not useful for the
tilegen tool, which needs to be run as part of the build process. This
prevents it from trying to use contribs; cross-compiling will therefore
fail if it can't find libpng via pkg-config (this was the status quo for
all builds before 409694ba0a8762, so it doesn't introduce any new
requirements).

--------------------------------------------------------------------------------
25f447933f | gammafunk | 2018-12-12 23:40:13 -0600

Rework gammafunk_gauntlet_shortcut
Make the longer path have four arenas instead of three so that the
shortcut aspect is more emphasized. Make all four of the longer path
arenas have easier difficulty instead of having the last one in the path
sometimes be harder. Adjust the average amount of loot per arena so that
both paths have 7 items on average, which is in line with what the other
Gauntlet maps give.

--------------------------------------------------------------------------------
6ca8497937 | gammafunk | 2018-12-12 23:40:13 -0600

Allow Gauntlet maps to customize extra loot
This commit adds Lua support allowing Gauntlet maps to change what loot
their arenas place. This customization only applies to the three extra
item locations within each arena, with the arena's first item remaining
guaranteed. This functionality will be used in a subsequent commit to
have a Gauntlet map place a set of four arenas with the same average
amount of loot as a set of two arenas in another path.

--------------------------------------------------------------------------------
1612a95892 | gammafunk | 2018-12-12 23:22:01 -0600

Sometimes place traps in Gauntlet arenas
This gives each arena vault a small chance to place traps using the '^'
glyph, with the chance being 1/6 for tier 1 arenas and 1/4 for tier 2.
If traps don't get enabled, any '^' glyphs become floor.

Currently only dispersal traps are placed, since Zot traps are too
dangerous for most depths where Gauntlets place, and would be especially
dangerous for some vaults. It may be possible to use a limited number of
Zot traps in specific vaults for Gauntlets that place late enough, but
for now dispersal traps will do.

--------------------------------------------------------------------------------
53ffe6b153 | gammafunk | 2018-12-12 23:21:17 -0600

Add support for custom Gauntlet arena terrain
This commit adds support for arena monster sets to define thematically
appropriate types of liquid and plants. For instance, necromancy-themed
sets might want withered plants, and demonic-themed ones might want
demonic plants. Likewise a simulacra set wouldn't want deep water
replaced with lava and a fire themed set would want lava instead of deep
water.

These preferences are defined via keys described in the comments of
tier1_arena_monsters in gauntlet.lua. The monster sets have been updated
to give these preferences where appropriate.

Also realign the arena variables to consistent spacing.

--------------------------------------------------------------------------------
fcd52a4e4c | gammafunk | 2018-12-12 23:16:42 -0600

Gauntlet monster set additions and updates
Add entries for a necromancer with wolves for tier 1, and swamp worms
for both tiers. Update the entropy weaver set to place no more than one
wolf spider. Slightly increase the number of slime creatures for tier 1
(still only placing 60% of a band). Have the tier 1 sixfirhy set always
place only one sixfirhy, supplementing it with ufetubus instead, since
those are also fast. Fix the spectral thing entries to use the correct
syntax.

--------------------------------------------------------------------------------
13ad8d5483 | gammafunk | 2018-12-12 23:15:35 -0600

Remove low weighting on a Gauntlet exit vault
This vault had low weight during development of the Gauntlet portal due
to its small size at the time. It was changed to make it occupy the full
subvault area, but the weight was never updated.

--------------------------------------------------------------------------------
d6d2466685 | gammafunk | 2018-12-12 23:15:35 -0600

Rename some setup functions and a variable
The new function names make it clearer whether the function applies to
Gauntlet arena vaults or to the overall map.

--------------------------------------------------------------------------------
f2ea3f3a38 | gammafunk | 2018-12-12 23:15:04 -0600

A new Gauntlet entry portal tile (CanOfWorms)

--------------------------------------------------------------------------------
3e74e4c2af | advil | 2018-12-12 20:16:11 -0500

Remove a default argument, and convert to reference
Previously, the default argument of `0` was taken to indicate the
player. Now that all traps are revealed to the player, there's not much
point to this.

--------------------------------------------------------------------------------
066e7cad99 | advil | 2018-12-12 19:53:20 -0500

Remove trap revelation from sanctuary

--------------------------------------------------------------------------------
409694ba0a | advil | 2018-12-12 17:34:52 -0500

Use contribs if appropriate when building rltiles/ via sub-make
This passes along the NO_PKGCONFIG value determined by the main Makefile
to rltiles/Makefile. Previously, the sub-make process would use
pkg-config libpng regardless of what the main Makefile is doing. This
isn't necessarily a big deal, because the utility built with this isn't
distributed, but it is breaking the build for hypothetical someone who
is having pkg-config problems and wants to rely just on contribs (me),
or someone who might try to build crawl in a restricted environment
without pkg-config (which apparently is uncommon).

--------------------------------------------------------------------------------
f2ebeb9087 | Edgar A. Bering IV | 2018-12-12 09:10:32 -0500

Update credits

--------------------------------------------------------------------------------
7e78d40599 | bjobae | 2018-12-12 09:08:17 -0500

Prevent a crash in god descriptions (11492)
Fixed a typo which caused a crash on Lugonu's description screen if
terminal size was too small.

--------------------------------------------------------------------------------
bfc773d60b | Edgar A. Bering IV | 2018-12-12 08:54:54 -0500

Add ufshaikh to CREDITS.txt

--------------------------------------------------------------------------------
cc558d21c3 | Umer Shaikh | 2018-12-12 08:52:44 -0500

Make giant creatures no longer tear through webs
Web traps were made permanent to prevent the player from tediously
stepping in and out of them to remove them. But it is still possible to
remove them by luring a giant enemy (e.g., an emperor scorpion) through
a web. (Less realistically, the player may also transform into a giant
form, e.g., using dragon form, and then tear through them.)

Since webs frequently block choke points in retreat paths, this can
easily be worth doing, but is not rewarding gameplay after the first
time the interaction is noticed. In the absence of compelling positive
effect on gameplay from the interaction between size and web traps, the
problem is solved by removing the special case.

--------------------------------------------------------------------------------
30802b1d75 | gammafunk | 2018-12-10 03:01:12 -0600

Message highlighting for the Gauntlet portal
Add highlighting for all Gauntlet portal timer messages to default
settings.

--------------------------------------------------------------------------------
8ba4ea47b7 | gammafunk | 2018-12-10 02:55:15 -0600

Better timer messages for the Gauntlet (mikee)
Since Baileys already use the notion of the gate, use a beating drum to
describe the timer of the Gauntlet. The idea being that an instrument
being played calls spectators to watch the combat proceedings or perhaps
calls combatants to enter the arena.

--------------------------------------------------------------------------------
351818ab63 | Edgar A. Bering IV | 2018-12-10 00:42:41 -0500

Add a TAG_MAJOR around a conditional (gammafunk)

--------------------------------------------------------------------------------
873c05abb0 | NormalPerson7 | 2018-12-10 00:23:12 -0500

Add dispersal traps to Zot:5
This commit creates a new function is_regular_trap in traps.cc, which
returns whether a particular trap can spawn from a vault which places
"any trap" (that is, a trap that can be spawned from TRAP_RANDOM).

The primary purpose of this is to add dispersal traps to the
hall_of_Zot, in the hope that it will create interesting and dangerous
situations in Zot:5 with the player having to deal with themself and
their enemies being thrown around everywhere. Regarding the forced trap
locations in Zot:5, dispersal traps should be less punishing than
teleport or Zot traps, since the player can get over the other side
simply by repeatedly entering the trap.

[Committer's note: Edited a comment. Closes #920]

--------------------------------------------------------------------------------
d3cbc8420a | Edgar A. Bering IV | 2018-12-09 14:49:46 -0500

Still more change log edits

--------------------------------------------------------------------------------
7a9182eec1 | Edgar A. Bering IV | 2018-12-09 14:41:56 -0500

Further changelog edits

--------------------------------------------------------------------------------
889f499fb3 | gammafunk | 2018-12-09 12:04:47 -0600

Some changelog tweaks

--------------------------------------------------------------------------------
35ae8912eb | Edgar A. Bering IV | 2018-12-09 12:36:14 -0500

Changelog through 0.23-a0-550-g7de1f8ee9f

--------------------------------------------------------------------------------
7de1f8ee9f | gammafunk | 2018-12-07 15:43:37 -0600

Remove some SUBST for unused subvault glyphs
We use exact matches for all Gauntlet subvaults, since we need to use a
specific shape to guarantee proper alignment. Any glyphs that didn't get
replaced by the subvault would be due to an error, and replacing these
with walls increases the likelihood of said error trapping the player.
So allow these glyphs to simply become floor instead.

--------------------------------------------------------------------------------
e004423b78 | gammafunk | 2018-12-07 15:42:52 -0600

Extend and rework gammafunk_gauntlet_branching
Add a final arena to both paths for this map. This brings the number of
its arenas more in line with the other maps and makes it not feel like
an abridged version of gammafunk_gauntlet_one_two_three.

Also rework the layout to better use space and allow it to be symmetric
with its new bottom half.

--------------------------------------------------------------------------------
c58ec83862 | gammafunk | 2018-12-07 15:15:27 -0600

A new Gauntlet map with progressively more choices
In gammafunk_gauntlet_one_two_three, the first arena is mandatory and
leads to two choices, after either of which the player has three arena
choices. The middle set of arenas are higher difficulty 50% of the time.

--------------------------------------------------------------------------------
1e3a7e1e51 | gammafunk | 2018-12-07 15:12:04 -0600

Some fixes for a Gauntlet map
Some of the transporter glyphs given in the setup for this map weren't
actually used. Also increase area inside the shortcut path's access to
the second arena. The previous area had only 4 tiles total, possibly
preventing some monsters adjacent to the player from following through
the transporter.

--------------------------------------------------------------------------------
807884b9e0 | gammafunk | 2018-12-07 15:12:04 -0600

A couple new Gauntlet monster sets
In one set, a necromancer with death yaks that are potential bind soul
targets, and in another a band of meliai. Both for higher tier
difficulty.

--------------------------------------------------------------------------------
05cfe7af05 | gammafunk | 2018-12-07 15:12:09 -0600

Balance changes for some Gauntlet monster sets
Use monster bands where the counts we want are close to the natural band
size. Make the hornet set just have hornets, since bees don't do
anything hornets don't already do. Add the possibility for a single,
more middle-tier guardian to some sets. Less use of filler imps, more
hell hounds in their place, but with fewer numbers. Break out a couple
entries specified as two alternates into separate entries so we can have
slightly higher counts for lowest tier monsters.

--------------------------------------------------------------------------------
9cf61d6ab0 | gammafunk | 2018-12-07 15:12:04 -0600

Fix a Gauntlet monster set entry
Will make a function that checks this data on startup in the future.

--------------------------------------------------------------------------------
2dd13d1d2c | Edgar Bering | 2018-12-07 15:50:05 -0500

Remove a secret dig square (Rawrakai)

--------------------------------------------------------------------------------
e99ae73ce8 | NormalPerson7 | 2018-12-07 11:59:51 -0800

Show blowgun chance on firing with F (11777)
This commit makes it so that both the f and F methods of firing
ammunition end up calling the _fire_choose_item_and_target function,
which sets up the direction chooser with the behaviour required to get
blowgun chances, net immunity descriptions and chaotic descriptions (for
silver ammo) to display.

Previously this function was only called when targeting through f, which
meant that all three of these extra pieces of information were not
provided when firing through F.

--------------------------------------------------------------------------------
48eebcd87f | advil | 2018-12-07 14:30:47 -0500

Create br.exit milestones for more branches
The initial implementation (49588e8b9b1c) only tracked milestones for
exiting branches that are of size >1 level (and the vestibule), in order
to cut down on milestone spam. This commit expands this to include all
branches that have enemies, because this information is useful for
debugging sometimes, and it won't be that much more data. (I suspect
that the concern came from a time when bots announced a lot more
milestones than they do now.)

If any portal vaults can ever be re-entered, this will only generate
milestones for the first exit. As far as I can tell, all branches
covered by this commit can generate only once outside of wizmode.

--------------------------------------------------------------------------------
b4a79150e3 | advil | 2018-12-07 11:09:12 -0500

Save compat for 04293e54a7a0
This places an exit under the player (overwriting any features that are
there, so it could overwrite a portal). It is possible for the player to
ignore the exit under some circumstances and get trapped again by taking
a portal, but at that point it's on them. Since the bug wasn't
guaranteed to trigger in this map, this may also provide an early exit
for some players.

--------------------------------------------------------------------------------
3f6f39fb57 | Edgar Bering | 2018-12-06 23:31:27 -0500

Disable met targets after quaffing a potion of experience (11352)
The potion of experience skill menu backed up the player's current skill
training state to allow potion-specific skill selection. Upon restore, the
backup would ignore any met targets and resume training a skill even if the
skill target had been met.

The skill_state object now checks to see if its cached target has been met
on restore, and does not alter the current state if its training information
appears to be out of date.

Finally, a check is added to the potion of experience effect to prompt for
new skilling if targets are met after quaffing the potion.

Closes #886, using a different approach.

--------------------------------------------------------------------------------
7b100e3eab | gammafunk | 2018-12-06 20:32:13 -0600

Fix a portal message typo (larvi)

--------------------------------------------------------------------------------
04293e54a7 | Alan Malloy | 2018-12-06 14:36:21 -0800

Don't trap player in gammafunk_gauntlet_branching (Kierst, NormalPerson7)
The gauntlet_exit subvault was offset by one so all the exits were
being placed upside down.

--------------------------------------------------------------------------------
5e0f5a2404 | gammafunk | 2018-12-06 04:08:51 -0600

Remove additional exits from a Gauntlet map
Remove the intermediate exits from gammafunk_gauntlet_branching. It's
better to have maps be more consistent about the use of exits in terms
of not providing many of them. A future map will require the player to
exit through the minotaur if they don't wish to continue through the
arenas.

We might end up going the route of offering the minotaur vault exit as
the only one for all maps, or we might go the route of this map and have
all maps present an initial exit. This could depend on how we decide to
vary the final fight. If there is no initial exit, it's important that
the player know what strong monster they'll be forced to fight before
entering the portal.

--------------------------------------------------------------------------------
1da068c805 | gammafunk | 2018-12-06 04:08:51 -0600

Add ice statue and oklob plant Gauntlet monster sets
For the lower difficulty tier. These place with a couple appropriate
mobile monsters.

--------------------------------------------------------------------------------
65d9dff436 | gammafunk | 2018-12-06 04:08:51 -0600

Some balance adjustments to Gauntlet arena monsters
Give some light accompaniment with wizards. Make lower-difficulty eye
sets feature either a shining eye (with mutation potion loot) or an eye
of devastation and having 1-2 floating/golden eyes. Balance the entries
for abominations, death scarabs, shapeshifter, and slimes. Reduce the
number of ugly things that accompany the great orb of eyes so much stuff
with high HP. Give the glowing orange brain a couple ugly friends, since
brains are pretty flimsy.

--------------------------------------------------------------------------------
f0242e9408 | gammafunk | 2018-12-06 04:08:51 -0600

Some adjustments for Gauntlet subvaults
Tweaks for most of the arenas to make them not have such a direct path
to the transporter and loot in so many cases. Previously many potential
locations for solid walls weren't added since the would obstruct view of
the landing site or generally lead to too many squares not being visible
from outside the arena. Use transparent stone to ensure visibility and
move the landing site to locations on the other side of these new walls.
Some vaults now have multiple potential landing sites that will be
randomly chosen from during setup.

Introduce some randomized use of iron grates in
nicolae_gauntlet_arena_grate_2. Break up the walls in
gammafunk_gauntlet_arena_hedges, placing more plants-as-walls and using
guaranteed plants to block the path shortest path to the transporter.

--------------------------------------------------------------------------------
f3a0c6f3bb | gammafunk | 2018-12-06 04:08:51 -0600

A Gauntlet map with a long way and a short way
In gammafunk_gauntlet_shortcut the player has a choice between a longer
but easier path and a shorter but harder one. The first path has two
easier arenas followed by a third with a 50% chance to be harder. The
second path has two harder arenas.

--------------------------------------------------------------------------------
6ff5c8965d | gammafunk | 2018-12-06 04:08:51 -0600

A Gauntlet map with two long paths
In gammafunk_gauntlet_hard_choice, the player has a choice between two
paths through three arenas. The second arena in each path has a 50%
chance to be harder difficulty, and the third arena in each path is
always harder difficulty.

--------------------------------------------------------------------------------
6525e13329 | gammafunk | 2018-12-06 04:08:51 -0600

A Gauntlet main map
This a map for the new portal with more maps to follow in subsequent
commits. gammafunk_gauntlet_arena_branching gives the player a choice of
two branching paths. Each possible path take the player through two
arenas, the second harder than the first.

--------------------------------------------------------------------------------
c8f743dc13 | gammafunk | 2018-12-06 04:08:49 -0600

Setup Lua for Gauntlet main maps
Functions to initialize global variables used by arena subvaults to
match transporters to the main map as well as to determine what
difficulty the main map wants them to use. The setup function also sets
up all transporter features that reside on the main map.

--------------------------------------------------------------------------------
72492bce80 | gammafunk | 2018-12-06 04:07:55 -0600

Gauntlet exit subvaults
These vaults place a final portal exit, the minotaur, and the loot pile.
All are adaptations of the old lab portal exit vaults to work with the
current layout. The changes I've made are to rotate all vaults to the
same north-to-south orientation, make them subvaults, and to give the
smaller vaults surrounding area to help isolate the minotaur's lair.
This prevents noise from drawing out the minotaur to "camp" the player
near the final transporter landing site.

--------------------------------------------------------------------------------
8f24ca6612 | gammafunk | 2018-12-06 04:07:55 -0600

A loot function for Gauntlet exit subvaults
This function places a loot pile on the minotaur's exit with an item
number and composition similar to the old portal. The item count range
is the same the old portal (7 to 16 items with an average of 11.5). The
loot items are 1/3 on-average star_item, which is close to the original
portal's 1/3 chance to have each item be normal class with quality 3 *
depth (star_item is 2 * depth + 5).

The other 2/3 items are a mix of superb_item together with some extra
armour, and some weight for wands and scrolls, since superb_item doesn't
place the latter two. The weights are chosen so that the loot items will
be similar to the custom list used in the old Lab portal. Gone is the
chance for ammo, and the chance for non-wand misc items and staves are
higher, but in general the differences in chances for each kind of item
are not drastic.

The loot definitions for the old portal were likely not chosen with any
particular aim in mind. Also the gauntlet arenas will give the player
4-8 items on the path to the minotaur, depending on the map. This does
require defeating nasty monsters, and the old Lab portal gave vault loot
along the way as well. Still, we may want to reconsider this loot
composition in the future.

--------------------------------------------------------------------------------
2a91107ab0 | gammafunk | 2018-12-06 04:07:55 -0600

Gauntlet arena subvaults
These vaults give a 9x9 area for specifying an interesting feature
layout as well as potential locations for monsters, loot, entry
transporter landing site, and the exit transporter. DES comments
describe what glyphs these vaults must have and what tags and setup
functions they must use.

Many of these are adapted from float vaults in the old Lab portal, and
I've added a few new basic ones as well. We need more of these,
including some creative variants that use special terrain with specific
monsters, but this is a good initial set for play-testing.

--------------------------------------------------------------------------------
136b5b3fec | gammafunk | 2018-12-06 04:07:53 -0600

Gauntlet arena subvault Lua
Define functions to set up arena subvault transporters, monsters, and
items. The transporter setup relies on global state variable to give
each transporter a key based on the subvault number. This state variable
is initialized by the main encompass map. A state variable set by the
main map also sets the arena difficulty, which determines the available
arena sets. The setup is broken out into functions so that vaults
wanting to define special monsters and loots can call what setup they
instead of calling the main setup function.

--------------------------------------------------------------------------------
c6bef765e2 | gammafunk | 2018-12-06 03:26:04 -0600

Gauntlet arena monster sets
This commit defines arena monster sets for two tiers of difficulty. The
sets define one to three related monster sets and define min/max placed
for each. Each set has thematically related monsters that are generally
significantly weaker than the minotaur monster boss. There's an emphasis
on using monsters that might make for an interesting fight for a
character at depths from Lair to D:14, especially for monsters that are
not encountered much in general. Some sets in the same tier are stronger
than others for specific player characters, and some arenas may be too
risky to take on, but this is part of the choice aspect this portal
emphasizes.

--------------------------------------------------------------------------------
9a27e60fa5 | gammafunk | 2018-12-06 03:26:04 -0600

Disable player teleportation in Gauntlets
This portal's layouts have the player choose a one-way path through
arenas with monsters and loot. Teleportation allows the player access to
arenas not along the chosen path, largely defeating the purpose of there
being a choice in the first place. Although teleport scrolls are
limited, they are plentiful and even a single teleport has a high chance
of granting the player access to several new arenas. Unlimited sources
of teleport like the ring of teleportation and the teleportitis mutation
will always let a player loot all areas.

This commit disallows teleports in Gauntlets in the same way as is done
for Sprint. Teleportation scrolls are marked as useless while in the
portal, and attempting to use one aborts with a message. Any passive
form of teleport such as that from the ring, teleportitis, or distortion
is prevented.

--------------------------------------------------------------------------------
58dc622acb | gammafunk | 2018-12-06 03:26:04 -0600

Gauntlet: A new portal that replaces Labyrinths
Labyrinths disable autoexplore and force the player to manually solve a
maze, something not related to the kind of gameplay crawl tries to
provide.  There are spoilery aspects to navigating the maze efficiently
and to using teleport in the portal. Once these aspects are known to an
experienced player, they solve the maze with very little thought and
often with great annoyance at having to play this mini-game unrelated to
either tactical combat or strategy. The most interesting aspect of
current Labs is the fight with a single powerful monster, the minotaur.

This commit is the first in a series to implement a new Gauntlet portal
where the player chooses a path through several combat arenas. The
player can see what monsters they'll face and what rewards they'll get
before entering each arena. The portal is similar to Ziggurats in terms
of having progressive rooms with thematic monster sets, but adds a
distinct choice aspect.

Each of the possible paths takes the player through a series of
randomized arena subvaults that have one of two difficulty tiers. Each
arena subvault will having a small group of thematic monsters and a
small amount of loot. All possible paths that could be taken will lead
to the same exit subvault that has boss fight with the minotaur and a
loot pile on the exit stairs. At least one early exit will be provided
at the beginning of the portal before any path is taken, with the only
other exit being guarded by the minotaur.

The number of arena subvaults the player completes in each path will be
small, usually two but it could be three or four on some maps. The
vaults will be accessed via transporters that prevent backtracking by
simply walking out of the vault, and the arenas will not have diggable
walls. All forms of teleportation will be disabled in this portal in a
subsequent commit, but other translocations will work normally.

This portal isn't designed as a maze and doesn't fit the traditional
idea of a Labyrinth, so the new portal will be called a Gauntlet
instead. This commit adds basic data for the new portal and renames any
files being repurposed from the old Labyrinth portal.

This commit also removes the C++/lua code and vaults that won't be
directly used by the new portal. Some of the Lab float and exit vaults
will show up in the new portal with modifications, but we remove these
for now.

For any games saved with an active Lab entrance, that feature is
replaced with an entrance to a Gauntlet. Games saved inside a Labyrinth
will load and the Lab will function normally, except that Lab shifting
won't occur. Since the player is always guaranteed a viable path to
the exit after the shift, the Lab will still be solvable.

--------------------------------------------------------------------------------
1d907f148e | gammafunk | 2018-12-06 02:59:43 -0600

Better documentation and ordering of population lists
These population lists are in order of the branch-type enum. Update to
follow the same order of branch-type when major version changes.

Mention this order dependency in the comments above each list. For the
zombie, water, and lava population lists, add a comment indicating which
branch the entry corresponds to if the entry is otherwise ambiguous.

--------------------------------------------------------------------------------
def993ac82 | gammafunk | 2018-12-06 02:59:44 -0600

Improve branch enum and data ordering for major version change
Branch data and population lists currently depend on the ordering of the
branch-type enum. As long as that's the case, we should maintain a
consistent ordering between this enum and those data when major version
increases.

--------------------------------------------------------------------------------
a799fc4e3c | Edgar A. Bering IV | 2018-12-05 21:29:27 -0500

checkwhite

--------------------------------------------------------------------------------
3133bb34ec | Edgar A. Bering IV | 2018-12-05 21:25:51 -0500

Fix a negative chance in a targeter (hellmonk)
The formula for pacification chance is correct on its domain, but had an
off-by-one in bounds checking.

--------------------------------------------------------------------------------
b7c078159a | Edgar Bering | 2018-12-05 16:32:16 -0500

Improve teleportitis/teleport trap effect messaging
Print a "reason" string before translocating, so the player can tell
whether the teleport was a trap or from teleportitis.

--------------------------------------------------------------------------------
0f8c2457b6 | Edgar Bering | 2018-12-04 13:55:15 -0500

Do not include explore traps in sprint and tutorial
The individual trap effects had appropriate checks, but this adds an
explicit check to make the decision intensional, should future trap effects
not check for sprint/tutorial.

--------------------------------------------------------------------------------
898447a553 | Edgar Bering | 2018-12-04 11:38:52 -0500

Better trap-effect sequencing
Trap effects (shaft and teleport) can reveal new tiles, leading to the
you.trapped variable being re-set to true. Subsequently the player can get
trapped on their next turn even if they don't move and LOS doesn't change,
which is unintuitive.

This gives players a bit of a break post-trap. If chain-trapping in a single
turn is desired, it should be implemented in a loop in _check_traps().

--------------------------------------------------------------------------------
dd405ac4cc | Edgar A. Bering IV | 2018-12-04 10:05:32 -0500

Don't roll traps on turn 0
That was just a little much. Turn 1 is still fair game though!

--------------------------------------------------------------------------------
0b42d886e6 | gammafunk | 2018-12-04 05:54:57 -0600

Update trap descriptions
Add a description for dispersal traps and mention in the descriptions
this trap, alarm traps, and zot traps how your allies will avoid
stepping on them.

--------------------------------------------------------------------------------
50a81782d9 | CanOfWorms | 2018-12-03 23:14:20 -0500

Fix a connectivity issue in the_grid
The center of this vault could be disconnected depending on

the subvault generation. This change should fix the issue.
--------------------------------------------------------------------------------
809d6d0afd | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Add teleports as an explore trap effect (gammafunk)
Instead of a random teleport, they are a teleportitis-type teleport.

--------------------------------------------------------------------------------
c2dc926ba0 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Flip the dispersal trap tile (CanOfWorms)
Accessiblity change for colourblind players.

--------------------------------------------------------------------------------
34af30c767 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Add dispersal traps to some vaults
Add dispersal traps to vaults that use teleport traps if it seems
appropriate. Mostly Xom vaults. Also adds a mini_feature vault with the
traps and some ziggurat furniture with them.

--------------------------------------------------------------------------------
10964a4d65 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Add a tile for dispersal traps

--------------------------------------------------------------------------------
f51f6a307e | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Reduce the trap rate further
Based on play-testing.

--------------------------------------------------------------------------------
e646171e05 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Re-order some player cleanup in floor_transition
The previous order could lead to invalid constriction data if the player
revealed a tile and got trapped while constricting a monster (due to a
cloud effect, for example). Currently clear_beholders and
clear_fearmongers don't reference the monster grid, but they are
properties of the level that we're leaving (and touch a vector that
references the monster grid), so the call belongs before
we save the old level and load the new one.

--------------------------------------------------------------------------------
53fc6d5dac | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Tone down the explore trap rate
It was too aggressive. Additionally, don't default to alarming if shafts
are impossible.

--------------------------------------------------------------------------------
ba9ec10dad | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Refactor to prevent a crash
Separate the calculation of trap-effect chance from firing the effect,
similar to banishment. Otherwise, we might shaft the player in the
middle of some other state update, leading to invalid dereferences.

--------------------------------------------------------------------------------
d1cacb9f1e | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Derandomise num_traps_for_place
Replace num_traps_for_place with trap_rate_for_place, so that it can be
used appropriately in both trap-generation and explore-trap-effect
formulas.

--------------------------------------------------------------------------------
f44f1ef74f | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Lowercase a trap name in a des

--------------------------------------------------------------------------------
723c74fb6f | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Don't make alarm traps permanent (MarvinPA)
If a player found a permanent alarm trap in favorable terrain they could
repeatedly become marked to clear the level.

--------------------------------------------------------------------------------
e407b66e8f | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Keep friendlies out of traps that affect the player
Previously this behavior was limited to Zot traps. It is now abstracted
to is_bad_for_player, and alarm and dispersal traps are included in the
list.

--------------------------------------------------------------------------------
17e7bed968 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Add dispersal traps
Dispersal traps are permanent, and when triggered cause everything in
sight of the trap to blink, including the triggerer.

The purpose of dispersal traps is to provide an alternative for known
teleport traps that is more interesting tactical terrain. The effect
destroys a player's positioning, so if it is good the player will want
to prevent monsters from stepping on the trap. On the flip side, it can
provide a positional rearrangement in a bad situation, though preserving
a good result may be challenging since the trap is permanent.

--------------------------------------------------------------------------------
db6bce5ac5 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Zot-ify alarm traps
Alarm traps now only trigger when the player can see them. When they do,
whether it was a monster or a player, the player gets marked. They are
now permanent and considered passable terrain by the dungeon builder.

--------------------------------------------------------------------------------
0f39d50430 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Exploration based trap effects.
Each tile revealed has a small chance (the chance of generating a shaft
trap on that tile for that particular level) of shafting or alarm
trapping (thanks gammafunk) the player.

With all traps known the 'interesting situation' aspect of shaft (and
other) traps was lost. This random explore effect recovers that aspect.

It does mean that a player wishing to avoid traps should avoid revealing
tiles. This is a better trade-off than the previous behavior.  While the
'optimal' play is to not reveal more tiles than necessary, the act of
revealing (instead of stepping on) has the potential benefit of giving
an item or XP from an easy monster. Further, unlike tracking stepped on
tiles, the UI makes it possible to reason about what moves will reveal
tiles; and waypoints provide a method of charting particular routes
through partially explored areas.

However, as minmay has pointed out, Gnolls, Xom, and Ash all give item
detection which allow a player to avoid revealing tiles that they know
will give no benefit. While minmay presents this as a problem, I see it
as a benefit of item detection.

--------------------------------------------------------------------------------
450027eca3 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Remove trap detection from wizmode
Now obsolete.

--------------------------------------------------------------------------------
ed226419d2 | Edgar A. Bering IV | 2018-12-03 22:25:24 -0500

Reveal all traps
Reveal all traps, so that they can be tactically relevant terrain. This
removes the "generate tension" aspect of traps, which will return in a
later commit.

Having all traps be known requires some shaft tweaks. Specifically:

Taking a known shaft now has an equal chance of taking you 1/2/3
levels deeper. Shafts now generate on the penultimate level of a branch
with a dangerous end.

--------------------------------------------------------------------------------
91793a9df2 | NormalPerson7 | 2018-12-02 16:24:24 -0500

Display the chance for needles to work in blowgun targeter (ebering)
When targeting a blowgun with sleeping/paralysis/confusion/frenzy
needles, display the chance for the needle to affect the targeted
monster in the targeter, or "immune to needles" if the monster is undead
or nonliving.

--------------------------------------------------------------------------------
70bc44f8a0 | Edgar A. Bering IV | 2018-12-02 16:01:16 -0500

Improve the pacification chance display (11775)
Correctly report when targeting an unpacifiable monster.

--------------------------------------------------------------------------------
0f366d8406 | Edgar A. Bering IV | 2018-12-02 13:37:16 -0500

Describe the restrictions on exploration piety
Mention it in the Temple description. After some discussion, the current
description "explore the world" is good enough, since many players
already bring preconcieved notions of terrain. It would be nice to
explain the specific mechanic somewhere but this is ok.

--------------------------------------------------------------------------------
3d1613b9fa | Edgar A. Bering IV | 2018-12-02 13:37:16 -0500

Don't grant explore piety for certain terrain
Granting exploration piety for deep water, lava, and "endless" features
encouraged players with flight or deep water swimmers to wander around
the non-threatening boundaries of shoals and certain lava vaults.

Granting exploration piety in the Temple encouraged a player to
autoexplore the threat-free temple.

--------------------------------------------------------------------------------
e7ea69ae4f | Alan Malloy | 2018-12-01 22:43:55 -0800

Make cheibrodos_fertilizer no_tele_into
It's a pretty nasty enclosed space to get shafted into on D:2, as pointed out 
by /u/DeadKateAlley.
--------------------------------------------------------------------------------
205b0b61ae | gammafunk | 2018-12-01 06:07:48 -0600

Fix a potion loot definition
This definition had a leading '/'.

--------------------------------------------------------------------------------
5fd82c5b89 | Edgar A. Bering IV | 2018-11-30 19:27:16 -0500

unbrace and don't unbrace deleted files

--------------------------------------------------------------------------------
c6253629db | Nikolai Lavsky | 2018-11-30 17:25:47 -0500

Fix messaging when Maurice steals a weapon (Salmon, Stenella)
When Maurice steals a weapon, the games says
  Maurice steals <weapon>...
  Maurice wields <weapon>...
  It bursts into flame!/Its appearance distorts for a moment./etc.
even though the weapon always goes into his alternative weapon
slot (unless Maurice's disarmed).

The same happens if you give an "alt"-inscribed weapon to a
monster via the xo wizard command.

Fix this, and also simplify some monster equip code.

Instead of passing "bool msg" into monster::equip() and, subsequently
into equip_weapon(), equip_armour(), or equip_jewellery(), just don't
call equip() if this value is false. Previously, all these functions
did nothing unless msg was true. These functions are also renamed to be
more descriptive; they do not equip the item, only print the message.

[Committer's note: Closes #911]

--------------------------------------------------------------------------------
b50937ea47 | gammafunk | 2018-11-30 05:01:23 -0600

Some loot definitions for auxiliary armour
It's a common to define all possible aux armour as a loot item in vaults
and error-prone to type all the names each time. Make item definitions
available as dgn.aux_armour, dgn.good_aux_armour, and
dgn.randart_aux_armour for normal, good_item, and randart quality items
of this kind.

I'll modify various vaults to use these definitions in subsequent
commits.

--------------------------------------------------------------------------------
f9e11c5b9d | gammafunk | 2018-11-30 05:00:26 -0600

Fix and update a scroll loot item definition
In the dgn.loot_scrolls item definition variable used by some vaults,
the entry for scroll of enchant weapon was copied three times. Make this
one entry with a reasonable weight. Flatten the weights somewhat to make
scrolls of enchant weapon, enchant armour, and brand weapon all a bit
more common. Update the comments to better describe the intent of these
definitions.

--------------------------------------------------------------------------------
29ba69c53a | Edgar Bering | 2018-11-29 18:11:56 -0500

Further adjustments to confused monster actions
Simplify some boolean checks and add confusion to one. Re-name an internal
function. Re-impair confused monsters judgements so they resume stumbling
into harmful clouds, deep water, lava, and other bad situations.

--------------------------------------------------------------------------------
32a748b514 | Alan Malloy | 2018-11-29 09:33:31 -0800

Mark some local functions as static to fix compiler warnings

--------------------------------------------------------------------------------
dce9051567 | Alan Malloy | 2018-11-29 09:00:09 -0800

Change inscription on Fencer's Gloves (Yermak)
Previously, +Riposte was the only +Foo inscription that didn't give you an
active ability (e.g., +Blink for evocable blinking).

--------------------------------------------------------------------------------
60b89c194b | Edgar A. Bering IV | 2018-11-28 23:04:20 -0500

Link the contribution guide from README
Make the updated contribution guide more discoverable via github. The
README also has some contribution information, these two documents could
be harmonized more.

--------------------------------------------------------------------------------
1869896531 | Edgar A. Bering IV | 2018-11-27 22:09:08 -0500

Don't unconfuse intrisically confused monsters
Restore important lines to mon-behv to ensure that confused species
wander randomly.

--------------------------------------------------------------------------------
35efe2662d | Edgar A. Bering IV | 2018-11-27 21:30:28 -0500

Nerf player-to-monster confusion
Confused monsters now always try to set a target. One chance in three a
monster is able to move toward or attack its target; though spells, most
abilities, evokables, etc. are still forbidden. Confused monsters are
still stabbable. If this proves too subtle a nerf this can be upped to a
coinflip.

The reasons for doing this are twofold. One, Confusion as an effect is
available to players at level 1 or 3 in spells, the latter in a starting
book. Confusion was effectively a temporary instant kill, which is an
extreme effect to provide at such a low level, even with checks. Two,
the temporary instant kill was annoying to make permanent because the
monster would wander away while the player attacked it.

This commit also cleans up some of the mon-act code, specifically
removing some dead confusion handling code from the movement handler
that was not executing before this patch.

--------------------------------------------------------------------------------
22ffb116fb | Edgar A. Bering IV | 2018-11-27 18:33:17 -0500

Convert Death Channel/Bind Soul to fineffs
This resolves the long standing occasional "fireball/iceblast/etc." hit
your newly formed spectral friend and make it hostile.

--------------------------------------------------------------------------------
da178e91be | Edgar A. Bering IV | 2018-11-27 18:31:22 -0500

Remove the storm bow's rain clouds
Placing occasional temporary shallow (or deep) water at random was
usually flavour and occasionally very annoying.

--------------------------------------------------------------------------------
6e8b230bb5 | Edgar A. Bering IV | 2018-11-27 18:31:22 -0500

Revise the robe of Clouds
The old robe of clouds was basically a +3 {rElec +Fly} robe; it's
gimmick of spawning mist and rain was almost always flavour.

The new robe is now +3 {+Thunder rCloud rElec}, losing the mist gimmick
in favor of evokable radius 2 storm clouds. The evocation costs 5 MP and
has the same difficulty rating as evokable invis.

--------------------------------------------------------------------------------
d9f91f9301 | Edgar A. Bering IV | 2018-11-27 18:29:02 -0500

checkwhite

--------------------------------------------------------------------------------
ee2f500f82 | stenella | 2018-11-27 15:00:30 -0800

MSVC support cont.
Update gen-all.cmd to be up to date with the current makefile,
namely adding aptitudes and crawl_manual.txt, which stops
MSVC builds from crashing when they can't find the files.

Add some more MSVC build outputs to gitignore
Copy CREDITS.txt from the root directory to docs/CREDITS.txt
to match the makefile/release versions; add it to gitignore.

Change MSVC/stdint.h to match MSVC/include/stdint.h , which
we changed earlier in the first MSVC compatability commits.

--------------------------------------------------------------------------------
c8aadda88e | gammafunk | 2018-11-26 20:37:39 -0600

Update comments describing the Branch struct

--------------------------------------------------------------------------------
db311f7933 | gammafunk | 2018-11-26 20:37:38 -0600

Update marker info in the DES syntax guide
Markers are no longer used for several of the cases mentioned.

--------------------------------------------------------------------------------
87d5157cd8 | gammafunk | 2018-11-26 20:37:36 -0600

Fix some lua loot definitions
I don't think this caused any errors, but these trailing slashes are not
needed.

--------------------------------------------------------------------------------
6f7cfd9739 | Edgar A. Bering IV | 2018-11-25 20:18:00 -0500

Unrelocate some on-sight logic (gammafunk)

--------------------------------------------------------------------------------
b5b494a93f | Edgar A. Bering IV | 2018-11-25 20:00:36 -0500

Make player ghosts and pan lords immune to pacification
Both player ghosts and pandemonium lords have wildly varying HP. While
these numbers are revealed in the former case, player ghosts are a
somewhat special monster. In the latter case the revealed HP based on
monster class is a lie, and the variance in max hps is larger due to how
pandemonium lord max hp is calculated. To avoid edge cases with these
two monster types this commit makes both types immune.

--------------------------------------------------------------------------------
28a179404a | Edgar A. Bering IV | 2018-11-25 20:00:36 -0500

Display pacification chance in Heal Other targeter
With the changes to pacification to depend only on numbers visible to
the player, it is now not an information link to display pacification
chance in the pacification targeter.

This also changes pacification to abort when used on monsters which are
truly impossible to pacify (as opposed to those whose pacification
chance rounds to 0% in the display).

--------------------------------------------------------------------------------
cf71bd98f6 | Edgar A. Bering IV | 2018-11-25 20:00:36 -0500

Simplify Heal Other formula
Previously, pacification checked if

    1d( int_mod * (invo + 1) * healing / holi_mod ) >= avmhp

Healing depended on power by a random roll, which depended on a random
division of invocation skill.

The new formula checks if

biased_random2( int_mod * (invo + 1) * (30 + invo) / holi_mod, 2) >= avmhp

30 + invo passes through the function as the power value, and is also
used to determine how much to heal the target, which is left unchanged.
biased_random2(sides, 2) does a good job of matching the old success
distribution and is easier to reason about and write a chance success
display for (see next commit).

--------------------------------------------------------------------------------
b59e870bec | Edgar A. Bering IV | 2018-11-25 20:00:36 -0500

Change pacification to depend only on monster type
Pacification depending on a monster's max hp made it harder to reason
about (why should one jackal be harder to pacify than another). Average
HP for the monster type is displayed in monster info.

--------------------------------------------------------------------------------
8f93ed435f | Edgar A. Bering IV | 2018-11-25 20:00:00 -0500

Prevent invalid_monster messages when converting
036aa52 dismisses summoner's summons on attitude change. One place where
attitude changes is on bribe or Beogh follower acquisition. If this
happens on the turn the summoner comes into view and their summons are
already visible those now expired summons need to be filtered out after
the summoner's conversion occurs.

--------------------------------------------------------------------------------
7bc77c830a | Edgar A. Bering IV | 2018-11-25 20:00:00 -0500

Relocate some on-sight logic to the correct place

--------------------------------------------------------------------------------
abef753f24 | gammafunk | 2018-11-25 18:14:40 -0600

Some changelog updates (now through 0.23-a0-462-g7c42f869)
Mention a few items missed in the last update, reword a few items, and
fix a couple typos.

--------------------------------------------------------------------------------
7c42f86923 | Edgar A. Bering IV | 2018-11-25 18:06:49 -0500

Nerf the acid effect of minor destruction
The formula for power / 2 (versus power for the rest) goes back to the
svn initial revision. Acid was buffed in 8761da415 which intended only
to buff player dracs, but also buffed Makhleb's minor destruction.

This increases the power divisor significantly, to make the damage curve
for acid closer to (but still to the right of) flame. The effect is
still very strong (rarely resisted, chance to corrode).

--------------------------------------------------------------------------------
ff60f6859b | Edgar A. Bering IV | 2018-11-25 16:47:09 -0500

checkwhite INSTALL.txt

--------------------------------------------------------------------------------
9be7e05e39 | Edgar A. Bering IV | 2018-11-25 16:46:46 -0500

changelog through 0.23-a0-459-ge787970

--------------------------------------------------------------------------------
e787970c06 | stenella | 2018-11-25 10:03:44 -0600

Rest the Ancestor
Add a delay interrupt that executes when the ancestor heals to full HP.
This is facilitated by a new check for ancestor HP being full; this is
always true if the ancestor doesn't exist or is out of sight (to avoid
information leaks).

Introduce a new boolean option rest_wait_ancestor to toggle whether resting
should always wait until the ancestor is healed. This interacts with
rest_wait_both according to the following table:

| rest_wait_both | rest_wait_ancestor | expected behavior              |
| -------------- | ------------------ | ------------------------------ |
| True           | True               | Rest until (HP full and
                                        MP full and Ancestor full)     |
| False          | True               | Rest until (HP full or MP full)
                                        and (Ancestor full)            |
| True           | False              | Rest until (HP full and
                                        MP full) or (Ancestor full)    |
| False          | False              | Rest until (HP full or MP full
                                        or Ancestor full)              |

[ Committer's notes: Closes #900. Tweaked some conditionals, adding some
  missing conditions or simplifying. Added some comments. Tweaked the
  wording of the option. Adjusted the interrupt to not leak information
  about the ancestor when it is out of LOS. ]

--------------------------------------------------------------------------------
93a6ea9522 | stenella | 2018-11-25 11:26:50 +0800

MSVC gitignore
Exclude MSVC outputs
Modify vcproj exclude to include vcxproj files

--------------------------------------------------------------------------------
6f6daefbf7 | gammafunk | 2018-11-24 18:41:10 -0600

Add more checks for invalid constrictions
Usually monster death handles the necessary constriction cleanup, but
there are cases involving e.g. summons where a summoner's death can lead
the constriction code to attempt to constrict a summoned monster that's
been reset.

This commit adds aliveness checks to the methods that check for invalid
constrictors and constrictees to unconstrict and also requires aliveness
before attempting to apply damage.

--------------------------------------------------------------------------------
c514d67198 | NormalPerson7 | 2018-11-24 11:28:03 -0500

Don't let Ru offer mummies the no potion heal mutation (11750)
No potion heal has no real effect on mummies since they can't quaff
potions anyway, so this sacrifice didn't really give up anything.

--------------------------------------------------------------------------------
e12115f95e | NormalPerson7 | 2018-11-23 21:07:20 -0500

Don't halve the MR of magic immune creatures from AF_VULN (11754)
Previously phantasmal warriors were able to halve the MR of magic immune
creatures, which was announced and appeared to have an effect even
though it really had no effect whatsoever.

Hence, add a check to exit the case for AF_VULN early if the defender is
immune to hostile enchantments.

--------------------------------------------------------------------------------
ae4fabde77 | Edgar A. Bering IV | 2018-11-23 15:06:03 -0500

Disallow Twisted Resurrection for Enslaved Souls (Doesnty)
This worked exactly like the old player spell, allowing access to
permanent allies that used stairs and bypassed Yred limits.

Closes #889

--------------------------------------------------------------------------------
e0e9ef7961 | NormalPerson7 | 2018-11-23 12:35:20 -0500

Let the sturdy frame mutation reduce stealth/dodging penalties
Previously, the sturdy frame mutation was taken into consideration only
for the adjusted_armour_evasion_penalty method, not the
unadjusted_armour_evasion_penalty. The latter of the two methods is used
for stealth penalties, Jiyva stat shuffling, autotraining and some parts
of the dodging penalty calculations, which means these things were not
affected by the sturdy frame mutation. This meant the claimed ER-2 of
the sturdy frame mutation did not have the full effect of reducing the
ER by 2.

Hence, move the sturdy frame mutation's effect to
unadjusted_armour_evasion_penalty.

--------------------------------------------------------------------------------
453ed5a3af | Edgar A. Bering IV | 2018-11-23 12:20:01 -0500

Don't extend Ru's aura through glass (0011769)
Monsters can't make attacks through glass, so they should not have their
attacks redirected.

--------------------------------------------------------------------------------
1044d4cbad | NormalPerson7 | 2018-11-21 16:49:30 -0500

Fix a hints mode memorise menu message from extending horizontally
The text from hints_target_mode was not properly broken up.

--------------------------------------------------------------------------------
b6f590f0af | Edgar A. Bering IV | 2018-11-21 13:33:27 -0500

Buff the scythe "Finisher"
Another entry in the unrand revision project. Finisher, as a speed
scythe, was still not good. This commit removes Str+3 (random stat
sticking) in favor of giving it an instant kill mechanic.

The scythe now has a (50 - hd) / 200 chance of exploding a monster into
chunks on any hit where damage is done. This translates to slightly
worse than 1/4 chance against popcorn, decreasing to a 1/10 chance
against an orb of fire. Compare to distortion's 3/20 odds of either
banishing or instant teleporting a monster.

--------------------------------------------------------------------------------
8e4cbf7b70 | gammafunk | 2018-11-20 16:46:47 -0600

Disallow Sticks to Snakes under sacrifice love (Reeces)
This is an ally creation spell that would only create hostile allies
under sac love. Disallow use of this spell with sac love as we do for
all ally-creating summon and derived undead spells.

--------------------------------------------------------------------------------
1c01f63178 | gammafunk | 2018-11-18 22:40:00 -0600

Fix exclusions for stationary monsters behind solid features (paterick)
Commit 57debff0 had exclusions not continue past solid features for
stationary monsters, but this doesn't create a proper exclusion in all
cases. In particular, such monsters can act behind solid features like
grates and statues that block line of effect but not line of sight, and
we want exclusions to continue past such features. The vault
minmay_statue_bubble is an example of placing a statue monster behind
granite statues where the current logic makes an incorrect exclusion.

The opacity class we want is mostly opacity_no_trans ("no
translocations"), but that rule considers half-opaque features like
clouds that change quickly over time. Hence this commit makes an
opacity_fully_no_trans class that ignores half-opaque features and has
exclusions for stationary monsters use this class.

--------------------------------------------------------------------------------
7b583b2f2c | Alan Malloy | 2018-11-18 13:27:19 -0800

Update robe of vines text (Angani, #11765)

--------------------------------------------------------------------------------
036aa52d93 | gammafunk | 2018-11-17 13:31:44 -0600

Expire a monster's summons upon attitude change (7730)
Currently, if a monster's attitude changes due to being
charmed/uncharmed, pacified, or slimified, any of its active summons
keep the summoner's old attitude. This is awkward in the case of slimify
and pacify, since the player can't then kill the slimified/pacified
monster to remove its hostile summons without incurring penance.
Additionally, for neutral monsters as well as for charmed monsters (e.g.
wand of enslavement), their own summons will begin to attack them upon
attitude change. The player might expect summons to convert to the new
attitude of their summoner. However with either that approach or the
current one of no conversion, the player is encouraged to game the
timing and AI of monster summon spells to either avoid danger or get
easy damage on the summoner.

This commit has any monster's summons abjure when its attitude changes
for any reason. This includes whenever a monster is slimified, pacified,
bribed with gozag, or becomes charmed/uncharmed via enslavement.
Non-spell summons like the Royal Jelly Spawns and monster-created
derived undead like the necromancer monster's simulacra are not affected
by this change.

This commit also removes code to convert a battlesphere's attitude upon
attitude change of its summoner, since that's no longer needed.

--------------------------------------------------------------------------------
768d57b80b | gammafunk | 2018-11-16 02:03:22 -0600

Add TAG MAJOR for a shadow trap summon enum value
This won't be needed after we bump the major version.

--------------------------------------------------------------------------------
76343caf27 | gammafunk | 2018-11-16 01:45:04 -0600

Remove an unusaged function argument

--------------------------------------------------------------------------------
a32dbc5195 | gammafunk | 2018-11-16 00:53:54 -0600

Some monster and loot vaults from minmay
All save one early dungeon vault are 098 vaults that place monsters and
loot in abstract or geometric arrangements. They are float vaults or
minivaults depending on size and use of exits. One large vault has
bottom orientation since it spans the entire bottom of the level.

Nearly all changes from the original submission are to fix small DES
errors or to reformat lua code. I did add lower weight to one vault that
places a high item count.

--------------------------------------------------------------------------------
db6ba403a5 | gammafunk | 2018-11-16 00:52:37 -0600

Some shop vaults from minmay
A pre-Lair shop with 'used' weapons: good base types that have no ego
and -1 to -4 enchantment.

A shop that's takin' it easy with Cheibriados. It sells plate armour,
crystal plate armour, or unrands that all have ponderous ego.

A jewelry shop featuring enchantable jewelry types.

A shop of 'mayhem' featuring weapons and spells that have AOE.

Finally, a 'Mass Market' featuring weapons, armor, and ammo that could
be considered heavy (rip player burden).

--------------------------------------------------------------------------------
ce47f42902 | gammafunk | 2018-11-16 00:48:07 -0600

Clean up tags on some shop vaults
Add transparent tag for vaults missing this, using a KMASK for one vault
with a disconnected decorative area. Remove no_trap_gen for vaults which
don't need this. Add the extra tag for vaults that don't place any
monsters or loot.

--------------------------------------------------------------------------------
b1ff92dab2 | gammafunk | 2018-11-16 00:48:08 -0600

Derandomize use of the 'transparent' tag
The randomized setup function used in many of Kennysheep's vaults gives
a vault the transparent tag based on a random roll. This tag should be
used whenever a vault has multiple entrances running through the vault
and where the vault either has no disconnected areas or these areas
properly have a KMASK with the opaque tag applied. This is to help
levels generate fewer vetoes, since otherwise the validator assumes a
vault is impassible for connectivity purposes. Hence its use shouldn't
be randomized. Have the setup function used for these vaults
unconditionally place this tag.

--------------------------------------------------------------------------------
b8f687ff51 | gammafunk | 2018-11-16 00:45:50 -0600

Some Temple entry vaults from minmay
Temple branch entry vaults, most of which have abstract or geometric
themes. The exceptions to this are a vault that generates items (themed
as an 'offering') and another with a single orc priest guarding the
entrance.

--------------------------------------------------------------------------------
d959f4f892 | gammafunk | 2018-11-16 00:14:27 -0600

Add some section markers to temple.des

--------------------------------------------------------------------------------
ef876f6df9 | Edgar A. Bering IV | 2018-11-16 00:06:33 -0500

checkwhite and delete MSVC build byproducts

--------------------------------------------------------------------------------
57debff0a5 | stenella | 2018-11-15 23:33:19 -0500

Don't autoexclude past glass sometimes (11658)
When placing an exclusion on a stationary monster don't extend the
exclusion past glass.

[Committer's note: Closes #892, checkedwhite and reworded]

--------------------------------------------------------------------------------
79ed067e35 | NormalPerson7 | 2018-11-14 22:55:50 -0500

Mention Ijyb and Maurice's wand-carrying
[Committer's note: Closes #899. Tweaked some wording.]

fixup! Mention Ijyb and Maurice's wand-carrying in their descriptions

--------------------------------------------------------------------------------
50e03f52b4 | Edgar A. Bering IV | 2018-11-14 22:13:29 -0500

Tweak a new arrival vault (gammafunk)
Consistent stone usage and a no_item_gen KMASK.

--------------------------------------------------------------------------------
bb43e8436e | Edgar A. Bering IV | 2018-11-14 21:48:07 -0500

An early lizard minivault (WanderingBlade)

--------------------------------------------------------------------------------
7259ab32d2 | Edgar A. Bering IV | 2018-11-14 21:48:07 -0500

Update CREDITS

--------------------------------------------------------------------------------
b76f445567 | Edgar A. Bering IV | 2018-11-14 21:48:07 -0500

Some variable vaults (WanderingBlade, 11140)
A decor river bridge.

A guarded_unrand vault for the ratskin cloak featuring hell rats at a
very early depth.

An evil kobold church, from the same sect as those kennysheep sewer
kobolds.

--------------------------------------------------------------------------------
ed1f8b9630 | Edgar A. Bering IV | 2018-11-14 21:48:07 -0500

A shower themed Vaults entry (ximxim, 10658)

--------------------------------------------------------------------------------
68ef482e38 | palyth | 2018-11-14 21:48:07 -0500

A winding forest swamp entry vault (11061)

--------------------------------------------------------------------------------
4de353cee3 | Edgar A. Bering IV | 2018-11-14 21:48:07 -0500

KennySheep inspired adjustments to a sewer (10035)

--------------------------------------------------------------------------------
79c5e3b8a9 | Edgar A. Bering IV | 2018-11-14 21:48:07 -0500

Branch entry vaults (skrybe, 11232)

--------------------------------------------------------------------------------
0b3e9c96a6 | Edgar A. Bering IV | 2018-11-14 21:48:06 -0500

Multi-coloured glass columns for Zot (Skrybe, 11232)

--------------------------------------------------------------------------------
44191be8d8 | Edgar A. Bering IV | 2018-11-14 21:48:06 -0500

A decorative Xom vault for Snake (Skrybe, 11133)

--------------------------------------------------------------------------------
ee0713f4a2 | Edgar A. Bering IV | 2018-11-14 21:48:06 -0500

New arrival vaults (WanderingBlade, 11132)

--------------------------------------------------------------------------------
796c40deb2 | Edgar A. Bering IV | 2018-11-14 21:48:06 -0500

An arrival vault (Beargit, 11400)

--------------------------------------------------------------------------------
30b1108d6a | gammafunk | 2018-11-13 21:38:18 -0600

Describe the enchantment of dancing weapons
This commit includes the enchantment in any dancing weapon description.
Curse state is not included to keep the description shorter, just as we
do when describing wielded weapons for other monsters. Curse info will
still be revealed for the weapon when the dancing weapon is destroyed.

--------------------------------------------------------------------------------
923571cada | gammafunk | 2018-11-13 21:38:18 -0600

Remove a redundant message about dancing weapons
Currently when a dancing weapon comes into view, it generates a
"...comes into view" message with a followup "It is a..." containing the
exact same information. The second message used to be part of Ash's
passive monster equipment identification, where the first message had
less information and the second contained more information ("Ashenzari
warns you: ..."). Now that monster equipment is always identified when
the monster is first seen, we don't need the second message.

--------------------------------------------------------------------------------
8c0b414915 | gammafunk | 2018-11-13 21:38:18 -0600

Reveal equipment for monsters behind glass
Before this commit, monster equipment was only revealed when the monster
actually generated an interrupt. Monsters behind glass don't generate
interrupts, so their equipment wasn't getting identified. We now
identify equipment unconditionally when a monster is seen.

The equipment identification call for interrupts currently has to remain
due to message ordering, since travel messages happen before seen
monsters are processed. It may be good to refactor travel code so that
this doesn't happen. Another possibility is to set all relevant monster
equipment as identified when the monster is created, preventing the need
for any equipment identification pass.

--------------------------------------------------------------------------------
0174fd80c1 | Aidan Holm | 2018-11-11 11:17:33 +0800

Fix menu item rendering bug
The row height calculated for the last menu item did not include
padding, which caused it to appear vertically cramped.

--------------------------------------------------------------------------------
8871014cbb | stenella | 2018-11-11 10:56:53 +0800

Fix typo/color layering bug in tutorial
Due to the way strings are formatted after
being read from this function, this
</magenta> tag was being treated as extra
text. It's not needed, so remove it.

Fix a grammar oopsie.

--------------------------------------------------------------------------------
f02c810438 | advil | 2018-11-09 08:44:38 -0500

Validate file pointer when loading help parts
This might be better to handle without a crash at all, but right now
there is a possible segfault in fgets if something is wrong with this
file, so check it explicitly. Possibly these files should be explicitly
validated on game load in addition (I think only their containing folder
is right now).

--------------------------------------------------------------------------------
33f1def9c6 | gammafunk | 2018-11-08 18:48:30 -0600

Remove a vault that breaks autoexplore (minmay)
Removed by request of the vault author. The vault
minmay_item_behind_shaft generates a corridor with a shaft at the end in
front of an item. If you recognize this vault you'll dig into it,
apport, use allies to trigger the hidden shaft, or just return when the
level below is cleared. If you don't recognize it, you'll autoexplore
into it, always triggering the shaft. To some extent all vaults that
place hidden traps are spoilery, but this is an egregious case. Consider
this elf flogged.

--------------------------------------------------------------------------------
4fac899665 | advil | 2018-11-08 19:37:47 -0500

Potential fix for Mojave black screen issues
Workaround based on:
https://discourse.libsdl.org/t/macos-10-14-mojave-issues/25060
This may be fied in SDL2 master, in which case we should revert this
workaround and update the submodule, when it gets released.

--------------------------------------------------------------------------------
0aa8dd0f38 | Aidan Holm | 2018-11-08 21:56:56 +0800

Limit extra Ru ability info to followers (amalloy)
The Ru sacrifice ability description contains code for showing sacrifice
significance and piety gain, which crashed if the player was not
following Ru for some abilities. This commit simply hides that line
of text, as well as mutation-specific text for sacrifices that add
mutations, and re-enables using the ability description view for
?/A, which is currently the only way for non-followers to view the
description.

--------------------------------------------------------------------------------
57a811004e | gammafunk | 2018-11-08 00:49:00 -0600

Refactor LOS attack spell code
Use _player_hurt_monster() to apply damage and handle sanctuary checks
and wound messages. Also use refs instead of pointers where possible.

--------------------------------------------------------------------------------
15b4f39479 | gammafunk | 2018-11-08 00:49:00 -0600

Centralize conducts for some player damage spells
For player spells that don't use a struct bolt to apply damage, have
them use the now-generalized _player_hurt_monster() function. This
centralizes the handling of aspects like Zin's sanctuary, god conducts
(for most instances), and printing wound messages. Previously this logic
was repeated throughout spl-damage.cc, with some spells not properly
applying sanctuary rules or having god conducts applied in all cases.

--------------------------------------------------------------------------------
0eb21a9ae9 | gammafunk | 2018-11-08 00:20:42 -0600

Fix and simplify god conduct code
The god_conduct_trigger class currently has separate functions to enable
and disable the conducts to go along with set_attack_conduct(). This is
so that conducts could be conditionally enabled at a time when the
relevant monster might have died, but this functionality isn't actually
necessary for any current god conducts. In all cases we've ensured that
the monster is alive before effects or damage happen, and in all cases
we want to apply these conducts if the effect kills the monster.

This commit enables the conduct at the time set_attack_conduct() is
called and removes the enable/disable functions. Additionally
set_attack_conduct() is refactored to take a ref instead of a pointer.

This commit also fixes god conducts being applied too late for melee and
ranged combat, and cleans up the god conduct code for some spells.
Before this commit, melee and ranged attacks against allies would not
actually apply the conduct if the attack killed the ally.

It might be best to replace the use of a scoped god_conduct_trigger
variable and destructor with a simple function call. Message ordering is
the only thing that might complicate this.

--------------------------------------------------------------------------------
15caca4c09 | gammafunk | 2018-11-08 00:11:18 -0600

Don't prompt for the Arc Blade spell effect
If the player triggers static discharge from this unrand when friendlies
are around, they are prompted whether to cancel this effect. 3a6879684
introduced this when it reworked the unrand to cast static discharge
directly. This commit prevents the prompt when the spell is triggered
via the unrand, letting the prompt happen once, before the attack is
made.

--------------------------------------------------------------------------------
236c2702d2 | gammafunk | 2018-11-08 00:11:18 -0600

Better sanctuary removal for melee/ranged attacks
Zin's sanctuary could sometimes fail to get removed for melee and ranged
attacks when an attack doesn't continue past the hit phase. For example,
if the attack killed the monster, no sanctuary removal would occur. This
commit puts the sanctuary removal at an earlier location in the attack
phase to prevent this.

--------------------------------------------------------------------------------
9d4b7edeb2 | Alan Malloy | 2018-11-07 13:35:24 -0800

Don't crash when looking up Ru sacrifices (JumpingArm)
This is a temporary fix, making the ?/A menu display less useful
information about Ru sacrifices. This commit should be reverted once a
proper solution is in place.

This is in relation to https://crawl.develz.org/mantis/view.php?id=11752

--------------------------------------------------------------------------------
92528d7c89 | NormalPerson7 | 2018-11-06 13:15:15 -0800

Add a prompt for attacking living things while under divine protection
Killing natural monsters while under Elyvilon's divine protection causes
penance. However, there is no prompt for this, and it seems natural
for the player to invoke divine protection when low on HP so they don't
die, then heal up, and once they've healed, try to fight the enemy
causing them trouble. It was easy for players to accidentally cause
penance by killing enemies while under divine protection in this way.

Hence, add a prompt for attacking natural monsters while divine
protection is active. Penance will not actually trigger until the
monster is killed, but it's better to be safe than sorry.

--------------------------------------------------------------------------------
86cf76cffc | Alan Malloy | 2018-11-06 13:13:51 -0800

Remove unused code for jump attacking into a sanctuary

--------------------------------------------------------------------------------
368ce007a8 | NormalPerson7 | 2018-11-05 17:18:52 +0000

Don't corrode or appear to damage rAcid+++ enemies with Punk (11746) (#894)
Acidic attacks, from the acidic bite mutation and Punk, previously

displayed the "[Enemy] is splashed with acid" line against all targets,

which suggested to the player that acid immune targets still took extra

damage from these attacks even though any damage was in fact resisted.

Additionally, this was able to corrode acid immune enemies, which does

not seem thematically correct.



Therefore, in monster::splash_with_acid, add a check at the start of the

method for acid immunity, which if true, return early from without any

opportunity to damage or corrode the monster.



Acid resistant enemies correctly take half-damage from acid splash and

resist corrosion half of the time both before and after this change.
--------------------------------------------------------------------------------
0063841da3 | NormalPerson7 | 2018-11-04 08:52:19 -0500

Improve spacing in a return statement
This makes it so that all the code is nicely aligned, so that the logic
can easily be followed by examining the indentation. Also remove all
unnecessary parentheses.

--------------------------------------------------------------------------------
025b0751b0 | NormalPerson7 | 2018-11-04 08:52:19 -0500

Give trolls the correct gourmand message, cleanup code
Commit 394fb522 incorrectly
assumed troll players are carnivorous, which they are not. Hence,
include trolls' gourmand mutation in the logic for the carnivorous
message for gourmand amulets being useless.

Additionally, fix a couple of message lines too long, improve the
whitespace around the ifs, and make sure everything is aligned
correctly.

--------------------------------------------------------------------------------
64599a10a2 | stenella | 2018-11-03 12:36:09 -0400

Leave Dual-Wielders Alone
Fixes #858

If a dual-wielder's primary weapon was removed by Tukima's
(determined by a coin-flip in monster::weapon()) , their mcache
entry would be invalided by this check, which didn't consider the
valid option of an alt-hand-wielded weapon.

--------------------------------------------------------------------------------
9fa8be9dae | stenella | 2018-11-03 12:34:45 -0400

Change LRD flavour text for doors
https://crawl.develz.org/mantis/view.php?id=11695

LRD works on door tiles, which seem to be mostly wood.

Explain to the player that the door frame itself is what is shattering,
not the door.

Also, make fall-through's consistent.

--------------------------------------------------------------------------------
394fb52218 | Stenella | 2018-11-03 12:33:11 -0400

Properly notify non-users of Gourmand (11692)
Previously, the wear message for gourmand was the same regardless of

whether it would work; change it to reflect the various reasons why it

might not work. Carnivorous/herbivorous mutations cover most species.

`foodless` covers mummies and the extra case of lich transformations,

for added lore. Vampires don't seem to fit into either of these cases,

so they are checked explicitly.
--------------------------------------------------------------------------------
2bcd0a2a9b | stenella | 2018-11-03 12:23:31 -0400

Check for stat_zero slow before telling player they're good to go
https://crawl.develz.org/mantis/view.php?id=11476

If a player is slowed in some way, then stat zero'd, when the slow runs
out, they'll be told they've been sped up, despite still being slow.

Check to make sure players aren't being slowed by stat zero before
telling them they're fast again.

--------------------------------------------------------------------------------
8eab93fbe2 | wheals | 2018-11-02 11:11:38 +0200

Don't print god warnings about a spell you can't memorise anyway.

--------------------------------------------------------------------------------
98fffd3787 | wheals | 2018-11-02 11:10:07 +0200

Allow seeing the memorise menu while confused (#11517).
Checks later in the code still prevent memorisation.

--------------------------------------------------------------------------------
5214e5fee5 | gammafunk | 2018-11-01 23:03:18 -0500

A new Ijyb splash screen from ploomutoo

--------------------------------------------------------------------------------
cf17ac6c65 | advil | 2018-10-31 14:42:38 -0400

Add aliveness checks to some monster equipment functions
Various bits of the subsequent code in these functions may rest on
getting a living, valid monster. This is possibly what was causing
crashes when Fennar refrigerates himself with other enemies on screen.
(gammafunk/amalloy)

--------------------------------------------------------------------------------
6ce9549c54 | gammafunk | 2018-10-31 01:11:03 -0500

Some decorative tweaks to a Bazaar vault
Don't recolor features like doors and the exit hatch, and use yellow for
the transparent stone instead of white. The surrounding stone is also
white, so having transparent stone be the same color is confusing in
console.

--------------------------------------------------------------------------------
6e9e0f2070 | stenella | 2018-10-30 13:58:41 -0700

Console support
Allow the building of console DCSS in MSVC.

Change a unicode character to its equivalent code

Wrap tilecell and tiledgnbuf.cc in the same ifdef that their header files are 
wrapped in.

--------------------------------------------------------------------------------
e82cdd144a | stenella | 2018-10-30 13:58:41 -0700

MSVC2017 Compatability and relocation of project files
Updating submodule projects without changing the submodules themselves seems 
cumbersome, so move vcxproj files to a separate directory within the main 
repository.

Fix project files so they support x64 and Debug configurations.

Update INSTALL.txt to reflect current reality

--------------------------------------------------------------------------------
8c51ad5a29 | gammafunk | 2018-10-29 20:11:51 -0500

Don't apply negative energy effects to monsters for Drain Life
This spell is only supposed to do damage and give the drained HP to the
caster. The negative energy draining effects accidentally began to be
applied to monsters due to fb95405b.

--------------------------------------------------------------------------------
27fa94fbb5 | gammafunk | 2018-10-29 20:11:51 -0500

Fix a crash for LOS attack spells (MeekVeins, amalloy)
It's possible for a monster to die after applying damage flavour effects
but before the direct damage is applied. This invalidates the monster
pointer needed for god conducts, and was causing crashes with e.g. Drain
Life. This commit adds a necessary check for the monster being alive
before trying to apply conducts.

Additionally Drain Life shouldn't actually the flavour effect of
negative energy, and this will be fixed in a subsequent commit.

--------------------------------------------------------------------------------
4a5eb334b0 | Skrybe | 2018-10-28 22:57:25 -0400

Address a TODO in layout_concentric_octagons
Adds the Snake variant of the layout to Lair.  The notes didn't say that 
anything needed to be addressed before adding to Lair, so the layout code isn't 
changed.
--------------------------------------------------------------------------------
786a77dc79 | Skrybe | 2018-10-28 22:57:25 -0400

Address a TODO in layout_cave_pools
Adds the layout to D, makes decreasing amounts of rock clumps at deeper depths.
--------------------------------------------------------------------------------
141017ece0 | gammafunk | 2018-10-28 16:43:56 -0500

Lower the average number of charges for some wand types
Wand charges were lowered by the removal of scrolls of recharging, yet
the average number of charges for many powerful wands is still quite
high. Over 70 charges generate in a 3-rune game for paralysis and
polymorph, over 50 for wands of digging, and over 40 for enslavement.
For the weaker wands, wands of flame and random effects generate over
150 charges each per game. We'd like the charges for each wand type to
be meaningfully limited, especially for the more powerful ones.

This commit lowers the average number of charges per wand for the
following wand types:

| Wand           | Before | After |
| -------------- | ------ | ----- |
| digging        |   12.5 |     5 |
| enslavement    |   12.5 |     8 |
| paralysis      |   12.5 |     8 |
| polymorph      |   12.5 |     8 |
| flame          |   24.5 |  16.5 |
| random effects |   24.5 |  16.5 |

Digging takes the biggest relative reduction because of how powerful
this wand is at enabling escape, controlling monster movement, and
breaking into vaults.

Wands of flame and random effect charges are still too high, but they
remain as the more spammable wands until their other design issues can
be addressed. Flame duplicates a spell and is something you want to
carry all game due to how good steam clouds are, despite being
low-level. More design work could be done with some problematic wands
like polymorph, flame, and random effects, possibly combining parts of
them with other evocables.

--------------------------------------------------------------------------------
9c9d49f623 | Edgar A. Bering IV | 2018-10-27 21:39:50 -0400

Prevent unwielding by transforming
After re-introducing this bug, squash it again by further refactoring.
Both this and the bug fixed by 1406302 were caused by transform()
calling functions whose behavior depended on the player's transformation
while a player was in a partially transformed state. This lead to
fragile and unpredictable behavior. Some of it is unavoidable, which
comments point out. There may be other bugs lurking with a similar
cause.

--------------------------------------------------------------------------------
b2d581486a | Edgar A. Bering IV | 2018-10-27 14:24:46 -0400

Update ploomutoo in CREDITS.txt

--------------------------------------------------------------------------------
3a68796849 | gammafunk | 2018-10-26 22:45:34 -0500

Rework the Arc Blade (minmay)
Currently this unrand effectively casts static discharge many times, but
with the melee defender as the target instead of the usual random one.
The multiple casting led it to have extremely high damage of over 50%
more than a demon blade of speed. Doing high secondary effect damage to
the primary target is already well-covered by existing unrands. A weapon
that can do good damage to nearby monsters is a more interesting unrand
concept.

This commit reworks the arc blade melee effect to cast static discharge
once with increased spell-power of 100 + random2avg(100, 2), well past
the usual 100 spell-power cap. This effect still triggers with the same
1/3 chance as before. The weapon enchantment is also increased from +4
to +8, making it not so awful versus resistant monsters. Using a normal
cast of static discharge allows it to arc better to monsters adjacent to
the player, and the high spell-power makes this damage effective. Its
damage versus a single target is still excellent, similar to a demon
blades of electrocution/speed, but not as overpowered as it was prior to
this commit.

Finally, it now has a proper melee attack prompt for harming allies.

--------------------------------------------------------------------------------
752426dcc1 | gammafunk | 2018-10-26 22:45:34 -0500

Fixes, refactoring, and message cleanups for static discharge
The safe_discharge() function for the attack prompt warnings of static
discharge didn't properly consider the player as an arc location. This
meant that casting it didn't give a warning in some cases where an ally
could be damaged.

Also refactor the main cast_discharge() spellcasting function to allow
non-players to call it, then have monsters use this when casting the
spell. Previously the monster casting code partially duplicated this
function.

Finally, simplify the messaging a bit to remove a separate message about
lightning arcs, adding that to the main damage message instead. The
message spam from this spell is pretty high and could probably be
improved to only print wound messages after all arcing is completed.

--------------------------------------------------------------------------------
dc5cae9113 | gammafunk | 2018-10-26 22:45:34 -0500

Remove an unnecessary scope block

--------------------------------------------------------------------------------
8079fb2f1c | gammafunk | 2018-10-26 22:45:34 -0500

Refactor melee attack prompts for some unrands

--------------------------------------------------------------------------------
7ed3b4cd49 | gammafunk | 2018-10-26 22:45:34 -0500

Apply god ally conducts for Static Discharge, Irradiate, and Shatter
Previously these didn't apply god conducts when harming allies, despite
their warning the player about penance for this.

--------------------------------------------------------------------------------
1903759892 | gammafunk | 2018-10-26 22:45:34 -0500

Properly apply god ally conducts for LOS damage spells
Previous to this commit, Ozo's Refrigeration and the Singing Sword's spell
didn't apply god conducts when damaging allies, despite them warning the
player about penance. Now these conducts are applied properly.

--------------------------------------------------------------------------------
d7a6ca6280 | Edgar A. Bering IV | 2018-10-26 21:30:35 -0400

Add Stenella to CREDITS

--------------------------------------------------------------------------------
1406302deb | stenella | 2018-10-26 21:17:13 -0400

Simplify HP calculations (11728)
Combine calc_hp() and recalc_and_scale_hp() into a single function.

Remove the default for the rotting parameter to get_real_hp() and
require it be explicit in each usage.

Add a check to get_real_hp() for the presence of hp changing
transmutations, and handle those through calc_hp instead of some special
cases. Sequence equipment melding and HP calculation appropraitely.
(This fixes 11728.)

[Committer's note: Closes #875, #877. Checked whitespace, revised the
 commit message to reflect the final state of the patch. Simplified a
 check.]

--------------------------------------------------------------------------------
e56fa010db | Stenella | 2018-10-26 15:55:52 -0700

MSVC 2017 Compatibility (#878)

--------------------------------------------------------------------------------
66a18ee0fb | NormalPerson7 | 2018-10-25 18:53:14 +0100

Start Wn with a spell memorised if they have only one level 1 spell
If wanderers have more than one level 1 spell, they may not have enough
spell levels to memorise all of them, and so the player should get to
choose which spell to memorise.

If, however, wanderers have only 1 level 1 spell in their library, and
they have a spell level available, it makes sense for the player to have
that spell automatically memorised. Hence, in this case, memorise the
player's only level 1 spell.

--------------------------------------------------------------------------------
7e0f0f3944 | NormalPerson7 | 2018-10-25 18:53:14 +0100

Announce the starting items and spells for wanderers (11725)
Previously, players that did not look at their M screen would not be
aware of if they had spells in their spell library.

Therefore, print the player's inventory and spell library to the message
log at the start of the game. Also, take a note of the spell library to
include in the dump. This is done by expanding the note_wanderer_items
function and renaming it to note_wanderer_equipment (to be more
accurate).

This commit also adds support to print any spells the player begins with
memorised at the start, although this currently never happens.

--------------------------------------------------------------------------------
305c090e76 | Alan Malloy | 2018-10-24 18:24:23 -0700

Revert "Fix transformation HP scaling with HP+ artefacts (11728)"
It was allowing you to unwield cursed weapons by transforming,
and triggering unwield effects without warning.

Credit to Malacanter for noticing/reporting.

This reverts commit 82e90586b2dc5d95895fca894a4503104906bce7.

--------------------------------------------------------------------------------
5ce4c07210 | advil | 2018-10-24 15:15:34 -0400

Try again to avoid recursive crashes when loading level/save data
bf5fdde8f9eef4 put the unwinds in the saving functions, not the loading
functions...

--------------------------------------------------------------------------------
3bc7ea6fc1 | Doesnt | 2018-10-24 11:36:49 -0400

Spelling

--------------------------------------------------------------------------------
f497b7cc99 | advil | 2018-10-23 23:27:42 -0400

Improve (?) filtered_vector_select
This now takes the `filter` argument in a format that should be
guaranteed to cast to bool (for purposes of #871), guaranteed to handle
a nullptr argument, and is also just more explicit about its type.
Unfortunately this prevents at least my compiler from deducing M
correctly, but such is life.

--------------------------------------------------------------------------------
357f654629 | Edgar A. Bering IV | 2018-10-23 20:29:16 -0400

Update CREDITS.txt

--------------------------------------------------------------------------------
82e90586b2 | NormalPerson7 | 2018-10-23 12:04:18 -0700

Fix transformation HP scaling with HP+ artefacts (11728)
When wearing faerie dragon scales with the HP artefact property and
entering or leaving a transformation that modifies HP, HP would be
scaled incorrectly. This was because:
 - On entering a transformation, equipment was melded after the
   transformation took effect, which meant the new max HP was used as
   the finishing value for the HP change from melding the scales
   (resulting in a much higher than expected final value).
 - On exiting a transformation, equipment was unmelded before the max HP
   was downscaled, which meant the old max HP was used as the starting
   value for the HP change from unmelding the scales (resulting in a
   much lower than expected final HP).

Hence, in transform(), meld equipment before changing the value of
you.form, and in untransform(), downscale HP from the transformation
ending before unmelding equipment.

--------------------------------------------------------------------------------
f2e588f4e5 | Alan Malloy | 2018-10-23 11:25:39 -0700

Remove some now-unneeded sarcophagus labelling from a Tomb vault

--------------------------------------------------------------------------------
f86452d001 | Alan Malloy | 2018-10-23 11:13:25 -0700

Turn some pointers into refs, resolving a TODO

--------------------------------------------------------------------------------
d27e9dc1ee | Alan Malloy | 2018-10-23 11:12:59 -0700

Fix a Tomb vault that was impassable (NormalPerson7, #11733)

--------------------------------------------------------------------------------
bf5fdde8f9 | advil | 2018-10-23 11:28:34 -0400

Try to avoid recursive crashes when loading level/save data
If the game crashes while loading items/monsters
(`tag_construct_level_items` and `tag_construct_level_monsters`), it
creates a situation where it is highly likely to crash debug_item_scan
or debug_mons_scan respectively. Since these are called for most builds
during the crash handler (basically for the detailed debug output in
case of things like unlinked items, I think), this leads to recursive
crashes (see e.g. 11734) and complicates diagnosing whatever the
underlying problem is. This change adds yet another state variable to
suppress these scans in the crash handler.

It's possible that I'm missing a case where calling the scans in the
face of such a crash does provide useful information; we'll see.

--------------------------------------------------------------------------------
ceb43e64b4 | advil | 2018-10-23 11:28:34 -0400

unbrace

--------------------------------------------------------------------------------
084b3f85fe | NormalPerson7 | 2018-10-23 10:15:46 -0400

Make the immune_to_hex function available to clua
Add a new function to l-you.cc's clua library, called you_immune_to_hex,
which takes a spell as a parameter and returns whether the player is
immune to that spell.

[Committer's note: added @tparam to the ldoc. Closes #868]

--------------------------------------------------------------------------------
d59976b5a0 | NormalPerson7 | 2018-10-23 10:14:21 -0400

Include info about intrinsic immunity in monster spell description
This commit adds the line "You cannot be affected by this spell right
now" to descriptions of monster spells accessed through the monster
description, in place of the "chance to beat your MR" line.

--------------------------------------------------------------------------------
b5b85be88d | NormalPerson7 | 2018-10-23 10:13:41 -0400

Display (immune) in monster description when a player is immune to a hex
When a player is intrinsically immune to a particular hex, through
innate abilities, equipment, god abilities or transformations, make the
chance to defeat MR indicator next to the spell on the monster
description screen read "(immune)" instead. It is misleading to imply
that these abilities can succeed on the player through printing the
chance to defeat MR, as was the case previously.

This applies to:
 - Paralysis and slowing as a formicid,
 - Confusion with clarity or under Zin's vitalisation,
 - Petrification as a gargoyle, in statue form or under Zin's
   vitalisation,
 - Sleep and fear as undead or nonliving, with clarity or while berserk,
 - Virulence when immune to poison,
 - Porkalator when unable to transform,
 - Teleport and blink as a formicid or with -Tele equipment, and
 - Mesmerisation with clarity or while berserk.

This commit creates a new member function in the player class,
immune_to_hex. This method also returns true for hex-like spells that do
not have an MR check, such as paralysis gaze and blink other, however
these spells do not have the MR indicator and as such also do not have
the immunity indicator.

(If the only reason the player cannot be affected by a hex is because
they have sufficient MR to resist it always, the MR indicator will still
read "(0%)", to maintain the distinction between MR and intrinsic
immunity.)

[Committer's note: lowercased "immune"]

--------------------------------------------------------------------------------
9beedcea5e | gammafunk | 2018-10-22 17:48:21 -0500

Refactor and update comments.
Use max() instead of assignment testing.

Mnoleg no longer has chain of chaos, but has call of chaos instead, and
chaos champions no longer exist.

--------------------------------------------------------------------------------
98c7a59ffc | gammafunk | 2018-10-21 20:02:35 -0500

Some edits and cleanups for a Bazaar vault
Refactor and simplify glyph usage to use more consistent lettering and
avoid overriding default glyphs. Add a full ring of edging between land
and shallow water with small chance to place water on each tile to make
this effect more randomized. Fix the transparent stone colored tiles by
setting the TILE statements to the color variants manually. I'm not sure
why setting the color alone isn't changing the tile like it does
normally; some aspect of the Bazaar layout seems to be preventing this.
Make the use of transparent stone in the lighthouse walls contiguous,
more how a lighthouse would be. Finally, generate the ophan awake.

Closes #867.

--------------------------------------------------------------------------------
9dc3cf4471 | kenranunderscore | 2018-10-21 18:12:31 -0500

Add a lighthouse-themed bazaar vault
Adds the vault bazaar_kenran_lighthouse. It features a circular hut
built on a small island, make to resemble a lighthouse in the ocean.

The shoreline, as well as the transitions from shallow to deep water,
and from deep water to open sea, respectively, vary slightly in each
generated map.

At the moment, the centre of the lighthouse contains a trapped
ophan (as to provide a source of light). Of course this is rather
gimmicky, but I found it fun. It can easily be replaced by another
shop or decorative interior though, should monster generation in
this case be frowned upon.

--------------------------------------------------------------------------------
1757c6e039 | Manderson | 2018-10-20 22:50:43 -0400

Dispater Resprite
Now looks spookier and more made out of metal

[Committer's note: Closes #863]

--------------------------------------------------------------------------------
acb38b584f | Manderson | 2018-10-20 22:50:11 -0400

Replace Tiles: H. Ghost, S. Wraith, Cob, Eid
Replacing several ugly and unflavorful tiles. Hungry ghost should look
hungry, rather than obese. Shadow wraith and Eidolon are all but
unshaded. Death cob is a little too bright and has no discernible light
source.

--------------------------------------------------------------------------------
4c2fb128da | kenranunderscore | 2018-10-20 20:04:18 -0400

Fix some old bazaar vaults
Some older bazaar vaults did not work/look as originally intended due
to tile randomisation. The problems were mostly due to vaults using
LFLOORCOL in some way, which was then overwritten by the colour
randomisation in bazaar_setup. Some of this was only noticeable in
console mode, since the randomisation also sets LFLOORTILE.

To fix this and thus restore the intended looks of these vaults, several
steps were taken:
- Extend bazaar_setup in way that makes it possible to control whether
  colour randomisation takes place or not.
- In vaults that used RNG to set a floor colour and then checked for it,
  the checks now use dgn.get_floor_colour() to get the correct colour
  (example vault: bazaar_lake). This has to take place after the call to
  bazaar_setup.
- In vaults that set a fixed floor colour, use the version of
  bazaar_setup that does not randomise the colours (example vault:
  bazaar_minmay_generic_d).

Note: The generation of shop halos is the only thing that needs to be
done in the branch epilogue; everything else can be done before that.
The code now reflects this, and vaults that do not want halos
"delete" the epilogue (pass a nil to set_branch_epilogue).
Otherwise, if the player had entered another bazaar before, the epilogue
could have been set already.

[Committer's note: Closes #562. checkwhite and use luaL_optstring for
 set_branch_epilogue]

--------------------------------------------------------------------------------
376f016b28 | kenranunderscore | 2018-10-20 18:43:29 -0400

Small Lua refactoring for bazaars
The colour randomisation in bazaar.des used a Lua table to pick
a random colour from, then checked whether this colour was contained
as a key in another Lua table. If it was, the corresponding value was
picked as a tileset for the bazaar vault, otherwise there was a default
tileset as a fallback. This check could only fail if - for some reason -
the two Lua tables were not synchronized.

This refactoring removes the need for the check and the default tileset
by combining the two Lua tables into one containing all the
information necessary to randomise the looks of the vaults. This
shortens the code a tiny bit and makes adding new tilesets less
error-prone.

--------------------------------------------------------------------------------
eaabbf348b | Alex Jurkiewicz | 2018-10-20 13:31:18 -0400

Improve bear berserk
Bears mostly die before they can berserk, or they berserk and then die a
turn or two later. Let them cast it when in an emergency (like
orc battlecry) and double the cast frequency.

[Committer's note: Removed the instant from this patch. Closes 591]

--------------------------------------------------------------------------------
6ff198fc0b | jmbjr | 2018-10-20 11:15:31 -0400

Allow setting attitude of cloned monsters (damerell, #11171) (#608)
Matches the attitude of a cloned monster to the cloner. This also

removes the (currently never-used) option of setting the position of the 

cloned monster on call.



For _mons_summon_monster_illusion:

By passing the cloned monster's attitude to clone_mons, we don't have to

do all of the gymnastics that previously had to be done to properly set

the cloned monster attitude and not adversely affect arena bookkeeping.



for _phantom_mirror, we can now simply set ATT_FRIENDLY in the

clone_mons call directly.
--------------------------------------------------------------------------------
6fd5563dc5 | gammafunk | 2018-10-19 20:48:20 -0500

Some pre-Lair vaults that place manuals from minmay
Minmay's comments regarding this submission:

> Pre-Lair vaults with monsters guarding a manual Manuals are most
> interesting early in the game when your character may not yet be
> committed to a specific strategy. However, randomly generated manuals
> are extremely rare and biased towards deeper levels, and existing
> vaults that explicitly place manuals are all quite deep as well. So
> here are some shallow vaults that place manuals!
>
> These all have a mean of five monsters and a minimum of two, with the
> exception of minmay_manual_mares which simply has 2 centaurs. There
> are currently 10 vaults, with a total weight of 50.

Put these vaults in mini_monsters.des with their own section and
description in the relevant areas.

Only changes I made to the vaults themselves were syntax simplifications
for NSUBST, like removing `1:` for single replacements or `*=` for the
final replacement. Also replaced use of `:` with `=` for single
replacements, since I find use of that to be less error-prone when
NSUBST terms get changed around.

--------------------------------------------------------------------------------
aeb629af13 | advil | 2018-10-19 21:02:43 -0400

Various code cleanups for ghost_demon brands
Also, switch over a bunch of `int`s to `brand_type`.

--------------------------------------------------------------------------------
33639ab90a | advil | 2018-10-19 21:02:43 -0400

Show pan lord brand information
As with spells, showing the player the randomness immediately helps
smooth out some of the spikiness of just how random pan lords can be.
Doing this is also more consistent with recent changes to monster
equipment id.

This was surprisingly hard to get right, and the wording may still be
slightly odd for some brands and cases. This also improves the display
of ghost brands in xv (where it wasn't previously shown at all).

This commit changes SPECIAL_WEAPON_KEY to store a brand_type, not a
string.

--------------------------------------------------------------------------------
6656e4476a | advil | 2018-10-19 21:02:43 -0400

Show pan lord spells in xv unconditionally
While random behavior can be exciting, the particular randomness
involved in panlord spells is extremely spiky, and I think it's better
to reveal to the player the randomness on encountering a pan lord rather
than as they cast their spells. This is especially relevant on the orb
run for newer players who may not have much experience with pan lords,
and given that 792c6d12af should make pan lords slightly more frequent
on the orb run.

With this change, the only kind of hidden spell information remaining is
for monsters with multiple spellbooks.

--------------------------------------------------------------------------------
4538c0ed7a | advil | 2018-10-19 19:58:55 -0400

Make major-tag-history.md -x
Not sure why it was +x. Resolves #832.

--------------------------------------------------------------------------------
28c3e8efcb | Kyle Rawlins | 2018-10-19 17:57:26 -0400

Update MSVC instructions to reflect current reality
These directions are really too obsolete to keep up, and if someone were 

to get this working, I suspect they'd have to entirely rewrite anyways.
--------------------------------------------------------------------------------
e122d05652 | gammafunk | 2018-10-18 10:33:37 -0500

Remove an unused variable
It's possible that this is related to a crash on CBRO potentially caused
by the use of a function template, although that really shouldn't be the
case.

--------------------------------------------------------------------------------
69db12baef | Aaron Golden | 2018-10-18 09:39:30 -0500

Correctly tag branch ends in Hell vaults
Having these hard coded for branch ends at level seven causes
problems if branch-data.h is ever changed to make one of these
branches not exactly 7 levels deep.

[Closes #865]

--------------------------------------------------------------------------------
2b29b687b6 | Edgar A. Bering IV | 2018-10-18 09:39:30 -0500

Tweak nagdon_arrival_double_spiral
The lava and deep water variations spelled death if a ranged monster
spawned awake and near the vault, or wandered by as the player was
departing. The transparent stone could force the player to wake up a lot
of monsters while navigating out of the vault leading to death.

[Closes #864]

--------------------------------------------------------------------------------
9f293ae83a | Edgar A. Bering IV | 2018-10-18 09:39:30 -0500

Return disablers to disabler_island
This vault wasn't actually placing one of its intended monsters.

--------------------------------------------------------------------------------
fd02fb7a9a | Andrew Minton | 2018-10-18 09:39:30 -0500

Add the "transparent" tag to more vaults, eliminate some islands
This commit adds the "transparent" tag to most minivaults that have more than
one possible exit. For most minivaults, this eliminates their chance of causing
a veto entirely, and for the rest, it at least reduces it.
Also adds the "transparent" tag to a few non-minivaults.
Vaults with internally disconnected regions have either had the appropriate
opaque KMASKs applied, or said disconnected regions eliminated (only in the
cases where the regions contained nothing...these were mostly my vaults...).
Also fixes many cases where players could become trapped in a disconnected
region (again, mostly my fault), and a couple other fixes to my own vaults and
misspelled tags.

Large minivaults with few possible exits still have a lot of trouble generating.

disabler_island is clearly not functioning as intended (it can never actually
have an orange crystal statue or floating eye) but I'll leave that to its
author; for now I've just made it unable to trap the player.

--------------------------------------------------------------------------------
bd7f2c837c | gammafunk | 2018-10-18 00:22:13 -0500

New tiles for the Sceptre of Torment (CanOfWorms)
The old tiles didn't quite match the idea of "eveningstar". These new
tiles definitely look like something that you wouldn't want to be hit
with. In fact I'm not sure I'd want to touch this thing at all...

--------------------------------------------------------------------------------
8ff0b24cde | gammafunk | 2018-10-17 22:28:42 -0500

Fix crashes for melee attacks without a weapon
This was broken in the previous commit.

--------------------------------------------------------------------------------
606f0fe861 | gammafunk | 2018-10-17 20:22:20 -0500

Fix attack prompts for some unrand weapons
The unrand weapons the Singing Sword, the Mace of Variability, and
Spellbinder can all damage allies in LOS with their secondary effects,
potentially turning allies hostile and causing god penance. This commit
adds an attack prompt for using these with allies nearby so that the
player can have a proper warning.

There is a bug where Singing Sword's spell doesn't cause Okawaru penance
when it harms allies, despite it turning them hostile. This is because
the necessary conduct code is missing from the LOS attack spell code and
the bug likely includes Ozo's Refridge as well. This can be fixed in a
subsequent commit, but for now I'll leave the warning as is.

The warning also uses somewhat misleading language, since it says that
the attack will cause penance. In reality, penance will only be caused
if the secondary effect actually triggers and the effect hits an ally
(in the case of Variability, it may not). I'm leaving the current
language for now, but if there's player confusion we can tweak it.

There are still two unrands that damage allies which need fixing: the
Arc Blade and the Sceptre of Torment. A simple LOS hit function wouldn't
correctly capture the Arc Blade's arcs, since they only travel between
adjacent monsters. This unrand is probably going to get reworked to
simply use a chain spell, in which case a LOS hit function would work.
I'm leaving it without a prompt for now.

For the Sceptre, allies don't currently care if you torment them, nor
does Okawaru give penance when this happens. We need to look into fixing
this logic and probably should move torment over to the LOS damage spell
code. Until this situation changes, there's probably no need for a
prompt, since there are no major consequences other than allies losing
HP.

--------------------------------------------------------------------------------
43d87f4c55 | gammafunk | 2018-10-17 14:13:25 -0500

Mark test statues as harmless monsters and clean up spacing

--------------------------------------------------------------------------------
ba3dfdfc94 | gammafunk | 2018-10-17 12:56:58 -0500

Don't give a prompt for the Singing Sword's spell effect
When casting its Sonic Wave spell, the player's melee attack will
generate a cancellable prompt if the spell would harm an ally, which we
don't want here. Prevent this prompt; a subsequent commit will add the
necessary check so that this happens before the melee attack begins.

--------------------------------------------------------------------------------
0f038ff52e | gammafunk | 2018-10-17 12:56:58 -0500

Fix a crash when death curses torment (geekosaur)
The attacker can be nullptr for some sources of torment, so properly
check for that case before dereferencing the attacker.

--------------------------------------------------------------------------------
006994fd10 | gammafunk | 2018-10-16 21:47:58 -0500

Rework the Sceptre of Torment
This torment effect of this weapon makes it something only undead
players want to use, and even then it's not a very good weapon due to
having such low direct damage. This commit makes the torment effect not
apply to the wielder, applying it on 20% of successful hits instead of
50%, changes the base type to be an eveningstar, and gives it the pain
brand. It was previously an unrand one-handed staff, but we already have
one of these, the Elemental Staff, and had no unrand eveningstar with
the removal of the Mace of Brilliance. Now the sceptre will be a usable
weapon that outclasses most branded and highly enchanted weapons for its
type.

It might be nice to update the tile to have spikes, so it more resembles
something one could conceivably call an eveningstar.

--------------------------------------------------------------------------------
9fe5f1002e | Edgar A. Bering IV | 2018-10-16 00:25:51 -0400

Remove Misfortune from some vaults
The new version doesn't make sense in certain vaults.

--------------------------------------------------------------------------------
103bc38328 | Edgar A. Bering IV | 2018-10-16 00:25:51 -0400

Revise the robe of Misfortune (gammafunk)
The robe of "particularly bad identification trap" was not an
interesting thing. This keeps the theme of an unlucky robe which
frequently leads to unfortunate confluences of events, but now lets some
of that bad luck fall on monsters too. Specifically, the random
appearance is dropped and the robe becomes: +5 with {*Corrode *Contam
*Drain Harm *Slow EV+5}.

--------------------------------------------------------------------------------
6e662b0731 | Edgar A. Bering IV | 2018-10-16 00:24:58 -0400

Add Harm as an artefact property
Does not generate randomly at present. Requires *Drain. Multiple sources
of Harm do not stack.

--------------------------------------------------------------------------------
6f3f904881 | Edgar A. Bering IV | 2018-10-15 21:58:52 -0400

A farewell to arms (Yermak)
Remove some permarock and unobtainable items used decoratively in
baileys. They're replaced with granite statues given flavourful
descriptions. CanOfWorms is working on some custom statue tiles to use
here.

--------------------------------------------------------------------------------
a838e03fa7 | advil | 2018-10-15 20:22:05 -0400

One too many validity checks

--------------------------------------------------------------------------------
28b8a265e5 | advil | 2018-10-15 18:14:26 -0400

Add some finiteness checks to rays
...in hopes that this would help pin down when things go wrong.

--------------------------------------------------------------------------------
b49dddc804 | advil | 2018-10-15 14:16:50 -0400

Default `wall_jump_move` to false
This change has been a long time coming.  In hindsight, the movement
based implementation of this causes a lot of problems by turning what is
normally an interface noop (moving into a solid thing) into something
that can have annoying or bad tactical consequences.

The option is (for now) still there, for those who find the movement
version fun.

--------------------------------------------------------------------------------
792c6d12af | Alex Jurkiewicz | 2018-10-15 19:12:17 +0100

Upgrade orb run spawns
The orb run is relatively safe for players, but the difficulty is wildly
variable across multiple games.

Part of the reason for this is that the spawn list is so varied. An orb
run spawn might be a Pandemonium lord or a crimson imp. This change aims
to make the spawn list more consistent, and more dangerous.

Mid-tier demons used to make up over a third of orb run spawns. Cut that
down to 10% and give the excess spawn chance to orb guardians and
greater demons. Other numbers are slightly shuffled to rounder figures.

Also, the orb run can spawn monsters randomly, rather than near the
player. Stop spawning these monsters, and slightly increase the rate of
spawning near the player (presumably some of the randomly-spawned
monsters found the player).

[Adjusted the spawnrate slightly to only increase it a small amount over the
previous rate, to focus more on reducing the heavy variability of the orbrun
over increasing the difficulty - MarvinPA].

Spawn rate changes:

Monster          Old   New
---------------+-----+----
Pan lord       |  9% | 10%
Tier 1/2 Demon | 12% | 25%
Tier 3/4 Demon | 34% | 10%
Tier 5 Demon   |  4% |  0%
Orb Guardian   | 13% | 15%
Pan spawn      | 27% | 40%

--------------------------------------------------------------------------------
669764e514 | advil | 2018-10-15 10:01:17 -0400

Fix monster equipment wand id (Yermak)
Need to ID wands at the type level, not just their plusses. This also
fixes an unused variable warning.

--------------------------------------------------------------------------------
c8a74814ff | advil | 2018-10-15 09:39:08 -0400

Don't use popup for end() errors in mapstat/objstat
This change sends them just to stderr, probably restoring older
behavior. This for stuff like level description parse errors or bad
command line arguments in general. (I don't think there's really a use
case for being able to view the full log on such errors? Actual crashes
will still just generate a crashlog.)

--------------------------------------------------------------------------------
02c3efac06 | gammafunk | 2018-10-15 00:16:52 -0500

Don't break player constriction through certain abilities (Vajrapani)
Abilities that move the player to origin to prevent messages like Yred's
Recall Servants previously had the player stop all forms of
constriction. This commit fixes this to relax the player-centric
conditions when the player is at origin, with the exception of Chei's
two time step abilities, where it makes sense to stop constriction.

--------------------------------------------------------------------------------
6bcb69f058 | Edgar A. Bering IV | 2018-10-14 10:50:41 -0400

Identify monster equipment on sight
Partial mosnter item identification has been increased over time to
de-spoil item generation tables in favor of revealing tactical threats.
Before this patch, the issue of item generation versus tacitcal threat
continued to apply to wands.

Further, players were encouraged to carefully observe damage
exclamation points to watch out for plusses on either monster weapons or
armour.

Finally, mantis bugs 10903 and 10301 involve information leaks regarding
armour ego.

All of these issues ultimately trace to identification of monster
equipment. This commit resolves them by fully identifying monster
equipment. Doing so comes at the cost of further diluting Ash's ID
passive and making Ash's item warning passive no longer exist, as well
as simplifying the ID game slightly more.

--------------------------------------------------------------------------------
e48c14ca4c | Nikolai Lavsky | 2018-10-14 10:36:51 -0400

Remove references to loud noises breaking mesmerisation and fear
Since this mechanic was removed in 74fa8348.

--------------------------------------------------------------------------------
b40ba49374 | gammafunk | 2018-10-13 19:56:58 -0500

Merge content from the old contrib guide and remove the old file
Bring over the section on what happens after contributor content is
merged, since that's still relevant. Now that the new markdown guide is
mostly complete, we can remove the old text file.

--------------------------------------------------------------------------------
b6e31bc53c | Kyle Rawlins | 2018-10-13 19:56:58 -0500

Various wording tweaks, typo fixes
Seems like it's in pretty good shape for merging to me.
--------------------------------------------------------------------------------
5ecafbc26d | gammafunk | 2018-10-13 19:56:58 -0500

Rewrite the contributor's guide and convert to markdown (advil)
WIP based on advil's rewrite with my own updates. Putting this in a
branch for future edits from myself and other devs.

--------------------------------------------------------------------------------
6773f7a52e | Aidan Holm | 2018-10-13 23:26:57 +0800

Add new title artwork (cws)

--------------------------------------------------------------------------------
a85b81cc4b | gammafunk | 2018-10-12 21:31:42 -0500

Add dungeon feature statistics to objstat
Objstat now writes statistics about dungeon features to the file
objstat_Features.txt. This has counts of features by type, both in and
outside of vaults, along with standard deviation, min, and max. This
allows us to get answers to questions like "How often does a Jiyva altar
generate in Lair?" and gives a way to compare e.g. trap generation
between levels and branches.

--------------------------------------------------------------------------------
f0a6af8564 | gammafunk | 2018-10-12 20:48:04 -0500

Clean up spacing in objstat functions for readability

--------------------------------------------------------------------------------
f30bb39dab | gammafunk | 2018-10-11 23:49:44 -0500

Some fixes and tweaks to decor vaults
Prevent teleport closets in chequers_garden and chequers_arboretum using
a checkerboard pattern to guarantee a safe path. Remove unnecessary
no_monster_gen and no_item gen tags from the latter vault. Simplify
glyph and color usage in these two vaults as well as in
chequers_mini_garden. Closes #569.

--------------------------------------------------------------------------------
693b09ebcb | gammafunk | 2018-10-11 22:12:10 -0500

Some fixes and cleanups to the river serial vaults
Fix various potential stranded tiles that could generate in a few of
these vaults by using a checkerboard of squares guaranteed to not be
deep water. For one vault, move no_tele_into from water features to the
entire vault, since the player could strand themselves. Move the
no_monster_gen from the entire vault to water features only for all of
these vaults. This allows their floor tiles to be valid generation sites
for level monsters without introducing more water monsters. Finally,
remove redundant no_pool_fixup tags.

--------------------------------------------------------------------------------
ab66580c84 | Alex Jurkiewicz | 2018-10-11 16:20:42 -0500

Add new vaults and a serial
* Four new serial corridors vaults
* A new serial layout, "rivers". This is a river-focused serial, similar
  to "bayou" (and the old, removed "ponds"), but without any plants and
  with more river-like (rather than pond-like) water design, along with
  a few waterlogged rooms. Includes thirteen vaults.
* Six new minivaults.

--------------------------------------------------------------------------------
dcc7a326bf | gammafunk | 2018-10-11 13:45:19 -0500

A hive-themed ghost transporter vault for Dungeon and Lair
Bees and, in later depths, a queen bee, hornets, and eventually meliai
accompany the ghost of a player who tried to loot the treasures of a
formidable hive. All internal areas of the hive are revealed through
carefully placed windows. A very small number of squares may not be
visible, depending on the generation of a small number of wall tiles.
This won't affect ghost or loot visibility, and the player can easily
ensure they've seen everything in the vault before they enter.

It upgrades monsters and loot with depth, placing on average two food
rations throughout the vault. The other loot is general but with the
usual good loot upgrades that start from D:9.

--------------------------------------------------------------------------------
e7838e6b1f | advil | 2018-10-10 09:41:02 -0400

Improve gozag distraction flavor vs. mechanics
This is to try to more clearly cue that the distriction will last beyond
the presence of the initial trigger.

--------------------------------------------------------------------------------
f318fe8c0c | psywombats | 2018-10-10 00:10:50 -0400

A variety of new arrival vaults (psywombats)
Committer's note: This merges some of the vaults from #803. I tweaked a
few things (console colours, whitespace, simplify some SUBST lines, and
remove clear rock in a few places).

--------------------------------------------------------------------------------
c3b755d021 | Alex Jurkiewicz | 2018-10-09 01:17:51 -0400

Wake up the player if paralysed/petrified
Chaining disables on the player isn't particularly fun. Also prevent
paralysed and petrified players from being put to sleep. Flavour wise
it's not a stretch that these effects interfere with sleep.

[Committer's note: included the sleep immunity, closes #848]

--------------------------------------------------------------------------------
c0b0c76f0a | gammafunk | 2018-10-08 23:56:27 -0400

Move move actions out of main.cc
This resolves a longstanding TODO in main.cc.

[Committer's note: fixed whitespace, edited commit message. Closes #856]

--------------------------------------------------------------------------------
7ffd15e767 | gammafunk | 2018-10-08 21:31:35 -0500

Replace permanent teleport traps with zot traps in a maze (Engine)
The teleport trap could place immediately before the final door to the
rune in this Tartarus ending. If a silent spectre generated in this
room, -Tele or random teleport attempts or other more obscure techniques
would be required to enter, since monsters in the room couldn't wake up
and open the door. Since we don't like hard requirements for specific
equipment to access rune areas, use zot traps instead of teleport.
Stepping on a zot trap poses some risk, but requires no special
equipment.

--------------------------------------------------------------------------------
26e74f2614 | gammafunk | 2018-10-08 14:33:24 -0500

Make the gold in a loot vault more accessible (biasface)
This vault used to place only fungi as a barrier around the gold, which
meant it could take some players a long time to break into.  Replace a
few of the fungi with toadstools. These decay over time and are easy to
kill even if they haven't decayed. Closes #859.

--------------------------------------------------------------------------------
fcac5dec12 | Edgar A. Bering IV | 2018-10-07 11:29:11 -0400

Allow confusing touch with a weapon
The dexterity to-hit bonus made the unarmed requirement for confusing
touch more an interface obstacle than a real balance effect. If the
spell is too strong we should nerf the mechanic, not annoy a player
trying to use it.

--------------------------------------------------------------------------------
45ed4168a9 | Edgar A. Bering IV | 2018-10-07 10:10:27 -0400

Reactivate autopickup when using stairs (mdonais)
New players sometimes miss the message about ^A to reactivate
autopickup and escape an invisible monster without killing it. They
subsequently get confused when they are no longer eating and grabbing
items. Even more experienced players can forget to turn autopickup on.

If a player does get followed up the stairs by an invisible monster
there will be a double message of Reactivate/Deactivate but handling
this otherwise would leak information.

--------------------------------------------------------------------------------
9da9e51a24 | gammafunk | 2018-10-06 20:08:01 -0500

Fix altar placement in a ghost vault (Pekkekke)

--------------------------------------------------------------------------------
6719eeacba | Chris Campbell | 2018-10-06 14:56:18 +0100

Remove an obsolete Wanderer message
Even if it were somehow possible for a Wanderer to start with such low skill
levels, skills < 1 are visible now anyway.

--------------------------------------------------------------------------------
9a66eeb0ea | biasface | 2018-10-05 15:59:59 -0700

Change Donald's line about rPois ring to rN

--------------------------------------------------------------------------------
1df1716405 | gammafunk | 2018-10-05 13:11:16 -0500

Revamp gammafunk_the_bubble
Per the reasons in 24521301, add windows into this vault to reveal all
monsters and loot. Also more thoroughly randomize monster placement,
since placements in specific locations are rarely going to be preserved
as monsters wake up and move around. Not only are there windows now, but
the walls are thinner, allowing more noise to reach the vault.

We also rebalance this vault to scale up monsters/loot from earlier
depths. Two of the guaranteed gold piles are gone, but we introduce good
quality consumables together with either jewellery or aux armor instead
of using only | and * loot. This vault will present a bit less risk in
earlier dungeon so it will be more often completed soon after its
discovered; players encountering it in later depths are much more
capable of dealing with the higher numbers of monsters the vault uses in
these places.

Allow this vault to place in Lair 'S' branches as well as Pan, since
these places generally don't have many transporter vaults that can place
there. This is a 098 monster vault, so it will work well in these
branches. In the later branches that don't have well-defined
out-of-depth monsters, we add some specific monsters from the branch as
necessary.

Finally, for the "roulette" variant, rework the portals to not use a
arrival landing site and exit transporter distinct from the roulette
pairs. Integrate these into the pairs, using randomization approach
which ensures that the no transporter takes you to the landing site in
the same pair.

--------------------------------------------------------------------------------
9f0c0e73af | gammafunk | 2018-10-05 12:27:10 -0500

Fix vault designations for boots and gloves
Incorrect designations for these items was causing vaults to fail to
place when boots or gloves were randomly selected. I was only able to
notice this when it happened via a subvault in a debug build. Also
adjust a couple item listings to include gloves as a possibility, since
boots are already included.

--------------------------------------------------------------------------------
a3b1b28ecf | Chris Campbell | 2018-10-04 18:47:02 +0100

Typo fix (JoelMarler)

--------------------------------------------------------------------------------
2e428d4c7a | gammafunk | 2018-10-03 18:06:29 -0500

Rework gammafunk_corrupted_shrine
Per the reasons in 24521301, add windows into this vault to reveal all
monsters and loot.

This commit also rebalances monster and loot counts to scale more
consistently and give a more reasonable ratio of monsters to loot. Add
good consumable and good/artefact jewellery to replace some of the more
variable | and * loot items. Adjust the monster lists to give more
balanced threats at the various tiers of monsters.

--------------------------------------------------------------------------------
a3f5176a78 | gammafunk | 2018-10-03 18:06:29 -0500

Some transporter vault balance and syntax tweaks.
The monsters scaled a bit too aggressively in gammafunk_jiyva_shrine, so
that the monster count got very high by Depths. Start with slightly more
monsters at earliest depths and scale them up half as slowly. Replace
one | or * item with either good consumable or more specific good
equipment at the earliest depth in both this vault and
gammafunk_beogh_shrine. This increases the chance of something usable
generating when we have a lower item count. Also clean up syntax in
gammafunk_beogh_shrine.

--------------------------------------------------------------------------------
65bf2d139f | advil | 2018-10-03 18:13:49 -0400

Use a real join for missing directory errors (amalloy)
This also should fix the problem on CBRO: the chroot c++ lib is old
enough that it apparently doesn't have a final implementation of
string::pop_back. The reason that `bool found = false` triggered an
issue is apparently that gcc was optimizing out the relevant code paths
when `found` was uninitialized.

--------------------------------------------------------------------------------
6cc01a3c85 | advil | 2018-10-03 17:00:36 -0400

Revert "Fix an uninitialized variable"
This reverts commit fe727ee8d20f9ef5416e00a83b350a3055196f1e.

This reversion is objectively wrong, but somehow this commit appears to
be causing CBRO builds to require a version of libstdc++ that isn't
present in the chroot. I haven't been able to isolate why, so I'm
reverting for now. (n.b. it isn't the exact details of this commit -- I
tried reimplementing the check without using a bool or an assignment,
and it still had issues.)

--------------------------------------------------------------------------------
e5a990390b | advil | 2018-10-03 10:09:18 -0400

Fix two weapon select bugs
* Dispreferred weapons were not readable while highlighted on webtiles.
* The welcome text was selectable (cf. d6d8abe and a814211745).

--------------------------------------------------------------------------------
290e36dc6f | advil | 2018-10-02 22:10:12 -0400

Various beam.cc cleanups
All minor. Via #854.

--------------------------------------------------------------------------------
0b44af716b | advil | 2018-10-02 21:35:58 -0400

Comment a few weird things
via #854

--------------------------------------------------------------------------------
c497677b45 | advil | 2018-10-02 21:22:38 -0400

Fix several minor pointer issues
via #854

--------------------------------------------------------------------------------
55accd554f | advil | 2018-10-02 21:11:58 -0400

Fix a redundant feature on Sonja
via #854

--------------------------------------------------------------------------------
cae3914892 | advil | 2018-10-02 16:50:00 -0400

Add a pointer check
This one was strictly speaking ok as-is, because the conditions always
target the player (MHITYOU), which guarantees that afoe is a pointer to
the player. But this is the kind of thing that shouldn't be taken for
granted in such an indirect way.

via #854

--------------------------------------------------------------------------------
51c88b6968 | advil | 2018-10-02 16:45:12 -0400

Some extra pointer checks
I'm not sure these are necessary, but the static checker is right that
they certainly aren't verified as necessary from surrounding code, and
everything else here is pretty careful about `defender`.

Via #854

--------------------------------------------------------------------------------
dacbca0855 | advil | 2018-10-02 16:39:09 -0400

Change a + to a +=
via #854

--------------------------------------------------------------------------------
9a040af8fa | advil | 2018-10-02 16:11:32 -0400

Remove some vacuous ASSERTs
Vacuous because these are unsigned types.

via #854

--------------------------------------------------------------------------------
643b770f28 | advil | 2018-10-02 15:58:14 -0400

Ensure fsim file always gets closed
It would remain open when fsim was aborted at the a/d prompt.

via #854

--------------------------------------------------------------------------------
fe727ee8d2 | advil | 2018-10-02 15:47:46 -0400

Fix an uninitialized variable
Via #854

--------------------------------------------------------------------------------
91074bd149 | advil | 2018-10-02 15:42:26 -0400

Fix two iterators becoming invalidated during iteration
Both of these loops, used in constructing shoals levels, can add
something to the back of the supporting vector during iteration, which
(per the spec, though who knows in practice) will immediately invalidate
an iterator for a vector. This change is a partial revert of
a7d9996df05.

Found via #854.

--------------------------------------------------------------------------------
95cc57954e | advil | 2018-10-02 13:32:53 -0400

Fix a bad bitwise calculation for ban_glyph in arena
This incorrectly used logical negation, not bitwise negation, which
would prevent the bounds check it was implementing from ever working.
Found via #854.

I've also cleaned up a couple of less-important stylistic things that
came up.

--------------------------------------------------------------------------------
5ee874de49 | ICC | 2018-10-02 13:08:27 -0400

Change some dead links to relative links in new_dev_guidelines.md
[Committer's note: changed commit message. Closes #855]

--------------------------------------------------------------------------------
a4718cdc7d | advil | 2018-10-02 12:18:26 -0400

Exclude bones from checkwhite and run it
Also unbrace.

--------------------------------------------------------------------------------
b44a8d19cf | advil | 2018-10-02 11:42:31 -0400

Fix disaster area adjacency check
311b6308dd0e64a was supposed to add a constraint to disaster area that
avoided adjacent spaces, but this never worked, because `victims` was
never populated. I'm guessing the idea was to push used targets into
`victims` during this loop, and then not use such targets if they are
encountered later in the loop. (I discovered this while looking through
the errors in #854.)

This commit implements the idea in a somewhat different way. Rather than
just failing on a new target that is adjacent to a previous target, it
downweights all adjacents spaces each time it chooses a target, but
never removes them. This ensures that `count` targets still get used,
following the longstanding current behavior, and imposes a probabilistic
bias against adjacency (with tight clusters >2 especially dispreferred).
In testing this appears to result in better spread at middling invoc
levels.

--------------------------------------------------------------------------------
0cf4261408 | Edgar A. Bering IV | 2018-10-01 23:31:49 -0400

Revert "Check bounds for player_can_hear (#689)"
This reverts commit 44fbede512ef246a858dd77d60c7d0e2e745d440.

This is causing initial portal vault messages to not be displayed at
all. I don't have time to investigate further so I'm reverting for now.

--------------------------------------------------------------------------------
77505739ee | gammafunk | 2018-10-01 16:15:33 -0500

Don't place a ghost vault with tree walls on Swamp:$ (Pekkekke, 11700)
since Lerny can knock down the trees that form the walls of this vault,
thereby releasing the ghost.

--------------------------------------------------------------------------------
61290751a1 | gammafunk | 2018-10-01 15:26:22 -0500

Add windows to gammafunk_beogh_shrine and rebalance
Per the reasons in 24521301, add windows into this vault to reveal all
monsters and loot.

Rebalance the loot to incorporate a couple good aux armor and
consumables instead of using only highly variable | and * items. Also
tweak the loot and monster distributions to scale quantities more
consistently, tweaking the monster types for better balance.

--------------------------------------------------------------------------------
82784c59a1 | gammafunk | 2018-10-01 15:26:22 -0500

Add windows to gammafunk_jiyva_shrine and rebalance
Per the reasons in 24521301, add windows into this vault to reveal all
monsters and loot.

Rebalance the loot to incorporate a couple good jewellery and
consumables instead of using only highly variable | and * items. Also
tweak the monster list to make more judicious use of eye monsters and
high level jellies.

--------------------------------------------------------------------------------
24521301fc | gammafunk | 2018-10-01 15:05:34 -0500

Add windows to gammafunk_sealed_library and reformat
This commit modifies this vault to allow players to see what's in the
vault in terms of monsters and loot. Spoilery vaults still have a place
in crawl, at least for the time being, but sealed vaults generally work
better when the player can reason about the risk vs reward. It's better
to discourage reading vault spoilers, which is what the player would
want to do for the vault before this commit. Even if the player doesn't
read spoilers, it's almost never wise to attempt a transporter vault
blind until long after the vault is first encountered. We'd like these
vaults to relevant much of the time when they place, so allowing the
player to see what they'll face is a good way to help ensure that.

Add windows on all four sides, and move the landing site to the other
side of the vault, where we add another level connector. Also reformat
the DES statement spacing.

--------------------------------------------------------------------------------
ab6feb3dfb | Edgar A. Bering IV | 2018-09-29 23:53:47 -0400

Give Barachi full LOS halo and umbra (11650)
you.normal_vision was perpetually LOS_DEFAULT_RANGE. This changes
you.normal_vision to correctly be the species LOS and then apply further
mutations, spells, and effects to it.

The halo and umbra calculations were using LOS_DEFAULT_RANGE. There may
be other locations where LOS_DEFAULT_RANGE is used instead of
you.normal_vision that give Barachi weird edge cases.

--------------------------------------------------------------------------------
65e0026170 | Edgar A. Bering IV | 2018-09-29 21:14:47 -0400

Have wall jump ability respect constriction (11690)
When wall jump is triggered by moving, the player first makes an escape
attempt, and loses a turn if they fail to escape.

This changes wall jump activated via the ability menu to behave in the
same fashion.

--------------------------------------------------------------------------------
ac4dfef62a | NormalPerson7 | 2018-09-29 19:48:43 -0400

Disallow wall jumping while stuck in a net/web (11690)
When stuck in nets or webs, wall jumping via moving into a wall does not
work, because attempting any movement will break out of the net first.
However, the ability bypassed this check and so the player could wall
jump to immediately free themselves from any net or web via the ability.

Therefore, explicitly disallow wall jumping while held and give a
message for when the player attempts to wall jump out of a net.

Additionally, add a case to _check_ability_possible for the wall jump
ability, which returns false if the player is held, in fungus form and
in view of an enemy, or is not adjacent to any eligible wall. This will
mean the ability is appropriately greyed out for the most general cases
of when this ability is impossible.

--------------------------------------------------------------------------------
c1433dcc0a | NormalPerson7 | 2018-09-29 19:48:43 -0400

Fix the wall jump ability not being available when berserk (11687)
When berserk, like all martial attacks, wall jumping can be done via
moving into a wall. However, the ability screen was previously
unavailable when berserk and the function _check_ability_possible
unconditionally returned false early when berserk, meaning the wall jump
ability could not be used.

The previous commit made the ability screen open even when berserk.
In this commit, add a new abflag, berserk_ok, for abilities which can be
used even while berserk, and add a check for this flag at the start of
the _check_ability_possible function. This means both methods for wall
jump, moving into a wall and using the ability, will now work while
berserk.

--------------------------------------------------------------------------------
d3700a3872 | NormalPerson7 | 2018-09-29 19:48:43 -0400

Don't prevent the ability menu from opening when berserk or confused
Previously, three things happened depending on the player's statuses:
  - if the player was berserk, the ability menu would never open;
  - if the player was confused, the ability menu would only open if the
    player had one of the two conf_ok abilities (Ely's Purification and
    Ru's Draw Out Power), and if it did open, only conf_ok abilities
    would be shown.
  - if the player had any other restrictive statuses, the ability menu
    would open, and, in most cases, abilities affected by the
    restrictive statuses would be greyed out.

It was decided that having berserk or confusion act differently to other
statuses, for example silence, was inconsistent and unnecessary. Hence,
we allow the ability menu to be opened even when berserk or confused,
where unusable abilities will be greyed out.

--------------------------------------------------------------------------------
9c2c487a97 | Edgar A. Bering IV | 2018-09-29 16:19:08 -0400

Don't accept elemental colours by default (11468)
The majority of uses of str_to_colour expect a terminal colour, and can
crash if an elemental colour is returned. Lua and mapdef are the
exceptions.

900b867fb7dce previously added an option to disallow elemental colours
to fix some crashes. The option was set to default to allow elemental
colours but the commit message mentions there are potentially other
places where allowing elemental colours can be bad. This patch chases
those down.

Closes #781

--------------------------------------------------------------------------------
7053962d5f | Edgar A. Bering IV | 2018-09-29 15:45:55 -0400

Fix a des syntax error

--------------------------------------------------------------------------------
4e7f3e49f7 | Edgar A. Bering IV | 2018-09-29 12:00:53 -0400

Revise the Spriggan's Knife description (MarvinPA)

--------------------------------------------------------------------------------
a8fa5feffd | Edgar A. Bering IV | 2018-09-29 10:25:11 -0400

Fix lua documentation of Item.artprops

--------------------------------------------------------------------------------
133332c554 | Edgar A. Bering IV | 2018-09-28 22:35:57 -0400

Revise the Spriggan's Knife (mikee)
The knife now always stabs at Tier 1; specifically any stab is converted
to a sleep stab, this is flavoured as cutting into the realm of dreams.
Remove the Dex+4 and MR+ to de-stat-stick it a little. The Dex+4 in
addition to the EV and Stealth plusses was overkill, and since the knife
now always stabs at tier 1 the extra Dex seemed like too much.

A separate idea discussed for the knife was to make it a Hex enhancer.
There's probably room for a Hex enhancer unrand dagger also.

--------------------------------------------------------------------------------
bb6edffda0 | Edgar A. Bering IV | 2018-09-28 22:31:09 -0400

Allow tweaking more artps in wizmode
&t only used 0-Z, there are now more artefact properties than that. This
expands it to use a-z, then A-Z then 0-@.

--------------------------------------------------------------------------------
b1a03105ca | Edgar A. Bering IV | 2018-09-28 22:30:39 -0400

Allow SH specification for unrands.
685a3a753ca introduced the ARTP_SHIELDING, but did not add processing in
util/art-data.pl for a keyword. This allows unrands to specify the
shielding property with SH: plus.

--------------------------------------------------------------------------------
8581c8f5cb | gammafunk | 2018-09-28 20:52:56 -0500

Fix a crash for tracers of LOS attack spells
Introduced in fb95405 where an average damage value was removed. This is
still needed for tracer calculations to get a scaling factor for friend
info based on what proportion of damage the target would resist.

This commit also refactors some of this code to remove redundant
variables and better use an input argument pointer to hold the total
damage.

--------------------------------------------------------------------------------
ba00d9bbf4 | gammafunk | 2018-09-28 18:12:51 -0500

Use better damage dice for Drain Life
The formula was changed in 2a92f5c in a way that introduced invocations
breakpoints, so that damage increases were only seen on even invocation
skill levels. This commit removes the spellpower divisor of two and uses
one die instead of two, adjusting the adder value accordingly. We
actually get the same average as before 2a92f5c, albeit with a slightly
lower min and slightly higher max.

--------------------------------------------------------------------------------
2a92f5cd5c | gammafunk | 2018-09-28 16:56:36 -0500

Revamp the Singing Sword
Currently this unrand is worse than a +7 vorpal double sword, since it
has no brand and its "sonic damage" effect is weak. This sonic damage is
also linked to having the sword wielded instead being linked to
successful attacks. This commit rebalances the sword to be more
comparable to an enchanted double sword of speed at high tension. It
also makes the sonic damage effect to trigger only on successful melee
attacks (including ripostes). The sword now casts a "Sonic Wave" spell
that uses existing LOS attack spell code, instead of duplicating some of
that logic, and has a visual flash when the effect triggers.
Additionally the sword has a vorpal brand, instead of being brandless,
and has an inscription and updated description indicating its spell
effect.

The sonic wave damage is simplified from the previous multiplicative die
to use a 2d(5 + pow / 10) roll with the chance for the effect lowered to
50%. When the effect triggers at high tension, the sword has a 1/10
chance to "scream", as it did before this commit, but this now gives 50%
more spellpower instead of double damage, since the sonic damage is much
higher now.

Finally, the sword's noise has been set so that it's the same chance and
20 noise value as the *Noise property at low tension, with that noise
increasing by 10 at high tension and by 10 again if the sword "screams".

--------------------------------------------------------------------------------
fb95405bed | gammafunk | 2018-09-28 16:56:36 -0500

Refactor LOS attack spell code
This code previously had a lot of duplicated logic between functions
used for the two spells that cast it, Ozo's Refrigeration and Drain
Life. Instead of using function pointers to different functions doing
similar things, use common functions where possible.

Make zap entries for Ozo's and Drain Life to store details like the
damage and color (used for flash effect). This way these details can be
stored in the beam already used to store attack details.

This commit changes the damage formula of Drain Life, which was
previously:

3 + random2(7) + random2(pow)

to be:

2d(4 + pow/2)

which has a similar average as well as min/max damage compared to the
old formula.

--------------------------------------------------------------------------------
d8354db201 | gammafunk | 2018-09-28 16:55:18 -0500

Remove an unused dlua library
This dlua code to have the dungeon cast LOS-acting spells is no longer
used and partially non-working, so remove it.

--------------------------------------------------------------------------------
44a7aab0de | gammafunk | 2018-09-28 16:35:09 -0500

Make a function pointer argument into a function template

--------------------------------------------------------------------------------
069075cd5b | Edgar Bering | 2018-09-28 17:33:26 -0400

Update ebering in the mailmap

--------------------------------------------------------------------------------
6cf3e009b5 | NormalPerson7 | 2018-09-28 14:14:53 -0400

Add reference to * direction as alternative to ctrl+direction (#11401)
There is no way to attack down-right (south-east) using ctrl in some
browsers, since ctrl-N creates a new window and ctrl-3 switches to the
third tab. This commit adds a reference to * direction as an
alternative, to remind players of this option when they try to use
ctrl-N to attack and their browser takes over.

[Committer's note: Closes #738]

--------------------------------------------------------------------------------
44fbede512 | Matthew Boeh | 2018-09-28 09:38:24 -0400

Check bounds for player_can_hear (#689)
This PR addresses something that aidanh fixed in a different way in 

e27d229730f9, but the change still looks correct to me even if there's

no current bug that it fixes (and bounds for p maybe also should be

checked).



Original commit message:

Fixes https://crawl.develz.org/mantis/view.php?id=11279



You can reproduce the bug consistently by entering a floor with a

portal, leaving the floor, waiting for a while, and returning to that

floor. While catching the floor up to the current time, the portal

message is triggered while the player is not yet on the floor.
--------------------------------------------------------------------------------
31763e950f | Doesnty | 2018-09-28 09:24:52 -0400

Fix box_level_dp loot (#851)
This vault was originally supposed to put one ring of teleportation in the 
metal room, a random quantity of scrolls of teleportation around the perimeter 
of the giant box, and a single amulet of reflection. Commit cefc067 removed the 
rings of teleportation from this vault without updating the letters used for 
the other two, causing the vault to place one scroll of teleportation nowhere, 
a random quantity of amulets of reflection, and a single nothing. This PR 
restores the old and less bizarre behavior.
--------------------------------------------------------------------------------
ab8d2b54f3 | gammafunk | 2018-09-28 08:01:50 -0500

Add ebering to the list of crawl devs
gammafunk gestures. A swirling arc of seething chaos appears! The arc of
chaos hits ebering!!! ebering evaporates and reforms as a dev! Welcome
to the team!

--------------------------------------------------------------------------------
ab8a48c658 | Edgar A. Bering IV | 2018-09-28 08:26:06 -0400

Simplify Beogh conversion rules
The previous commit mentions that these lead to a minigame of 'don't
attack this orc until you're certain its met the simulationist criteria
for a conversion attempt'. This commit makes orc conversion attempts
happen on sight, like Gozag and Jiyva (even if the orc is asleep,
confused, paralyzed, can't see you, or has not yet selected you as their
foe), removing the minigame.

--------------------------------------------------------------------------------
fbe1177272 | Edgar A. Bering IV | 2018-09-28 08:26:06 -0400

Attempt God conversions on sight.
Currently three gods change monster attitudes on sight: Beogh, Gozag
(under bribe), and Jiyva.

When a player sees a monster, Gozag and Jiyva have already decided
whether they will convert the monster, but prior to this patch the
conversion did not happen until the player took an action with the
monster in LOS. This led to an unfortunate bug in the following
situation: if a bribed monster walked into LOS of a player bribing a
branch with Gozag no messaging would be displayed and the player could
attack the monster. This would have the effect of betraying the bribe
and turn any bribed monsters in LOS hostile for what appeared to be no
reason to the player. (The problem is less severe under Jiyva since not
attacking slimes is part of the conduct, but it does cause the
occasional 'hostile' slime to appear.)

Beogh's conversion behavior is different, and requires the monster be
awake, clear-headed, and targeting the player. As a result this check
needs to happen every turn the orc is reacting to the player (Beogh sets
a flag to make only one conversion attempt per-orc).

This patch makes conversion attempts happen in both relevant code-paths
using a do_conversions() function. While this causes some minor
execution duplication, each conversion function handles being called
multiple times on the same monster correctly, and abstracting the
conversion attempts to attitude-change make it easier to keep track of
them for the future (however unlikely more ally religions are).

I'm fixing the bug this way and not by changing how gozag_break_bribe
operates to avoid the mini-game of "I won't attack this monster that
just walked into my LOS in case I'm about to bribe it". The Beogh
conversion rules should probably be re-thought as their current state
has a bit of this mini-game.

--------------------------------------------------------------------------------
8829680f9d | Edgar A. Bering IV | 2018-09-28 08:06:26 -0400

Add elemental colour support to the equip bar
This commit modifies the equip bar to process elemental colours (coming
from unrands) for equipment glyphs in the equip bar.

By default, the colours are not animated, since a goal of the equip bar
was to lower visual noise. The option "animate_equip_bar" is added to
toggle this behavior, as the other goal is to show of your cool stuff.

--------------------------------------------------------------------------------
1bcb263a54 | Edgar A. Bering IV | 2018-09-28 07:52:29 -0400

Have butchering always leave a skeleton.
Currently, if you cast animate skeleton, you get a skeleton and chunks.

However, if you forget that you have animate skeleton (or have
auto-butcher on or whatever), you have a one_chance_in(3) chance of
being left with a skeleton to animate.

This behavior gives Animate Dead an extra hidden nutritional trade-off,
in exchange for an interface screw.

This commit changes the behavior of butchering to always leave a
skeleton, so that butchering and casting animate skeleton commute.

A consequence is that Animate Dead becomes *slightly* stronger, as a
player could now butcher every corpse for nutrition and then animate the
skeleton, at the expense of a few HD for the undead minions. This isn't
actually a buff, though, because said hypothetical player could walk to
each corpse and cast animate skeleton for an almost identical effect
(slightly different MP cost).

--------------------------------------------------------------------------------
1bc9708f6f | Edgar A. Bering IV | 2018-09-28 07:52:29 -0400

Remove an unused include

--------------------------------------------------------------------------------
2b5ca64aae | NormalPerson7 | 2018-09-27 21:09:31 -0400

Add functionality to search items by handedness. (#850)
When a player has a good shield and has trained a lot of shield skill,

it would be nice to filter out two-handed weapons. Likewise, later in

the game once a player is committed to two-handed weapons, it can would

be nice to filter out one-handed weapons. However, no stash search

prefix has previously existed so it was impossible to search for a

particular handedness.



Hence, add a stash search prefix for handedness. There is no check in

the hands function defined in l-item.cc that the item searched for is

actually a weapon, so we check that the item is a weapon first.

Additionally, filter out throwing weapons because they don't occupy the

weapon slot, therefore their handedness is not useful to search for and

will instead clutter up the search results list.


--------------------------------------------------------------------------------
3b46b076a4 | CanOfWorms | 2018-09-25 23:23:48 -0400

Remove a runed door subvault from the_grid
This specific subvault could be placed in a way that let the out of depth 
monsters inside escape despite having a runed door (and could also rarely be 
placed without any walls around it at all), which mostly confused players into 
thinking there was a problem with the vault generation.
--------------------------------------------------------------------------------
563e2a7406 | CanOfWorms | 2018-09-25 23:14:41 -0400

Update Dithmenos's power description (Angani)
Remove a leftover reference to old Shadow Step requirements.
--------------------------------------------------------------------------------
84a5ed292d | advil | 2018-09-25 15:12:45 -0400

Replace hacky allow_password_reset() with getattr calls
I also added a comment in config.py documenting some of these
complexities and recommending `getattr`.

--------------------------------------------------------------------------------
34886a9881 | advil | 2018-09-25 15:01:40 -0400

Fix client.html
Just needed a way to safely access module parameters that might not
exist.

--------------------------------------------------------------------------------
8cfa994ab4 | advil | 2018-09-25 14:47:39 -0400

Revert "Temporarily revert html side of forget password commits"
This reverts commit f47f43309fcf60f96e15812b4b351e50b99c0873.

--------------------------------------------------------------------------------
5abb54889c | advil | 2018-09-25 14:45:36 -0400

Handle config.pys that lack lobby_url
I missed that this was a new variable also.

--------------------------------------------------------------------------------
f47f43309f | advil | 2018-09-25 13:47:14 -0400

Temporarily revert html side of forget password commits
I think these are crashing servers that have updated but not restarted,
temporarily pulling them until I figure out a better approach.

--------------------------------------------------------------------------------
db1f849363 | advil | 2018-09-25 11:18:52 -0400

Merge branch 'floraline-webtiles-password-reset'

--------------------------------------------------------------------------------
33f0de1038 | advil | 2018-09-25 11:14:35 -0400

Handle the case where config.py lacks allow_password_reset
Most servers don't keep their config.py in version control, or even
merge with the git copy of config.py, so when adding new parameters to
config.py one can't assume that they'll be there. (Yes, this is kind of
a problem with how configuration is done in webtiles, that could use
some more work.)

--------------------------------------------------------------------------------
68a31cccb1 | advil | 2018-09-25 10:20:06 -0400

Various small tweaks
 * improve code style (at least relative to our guidelines), comments
 * handle no auth smtp configurations
 * small tweaks to wording, logging

--------------------------------------------------------------------------------
12a1dd4888 | advil | 2018-09-25 09:01:34 -0400

Merge branch 'webtiles-password-reset' of https://github.com/floraline/crawl 
into floraline-webtiles-password-reset

--------------------------------------------------------------------------------
b6b040f31c | gammafunk | 2018-09-24 00:01:08 -0500

Remove a spiral vault (11554)
This vault is one of many single-tile-corridor spiral vaults. It places
a set of out-of-branch air-themed monsters that aren't particularly
challenging given the narrow layout. Since we already have a lot of
spiral vaults that are more effective, remove this one.

Closes #827.

--------------------------------------------------------------------------------
93a313ee0c | NormalPerson7 | 2018-09-23 18:13:40 -0400

Fix teleport closets in Cigotuvi's Fleshworks (11570)
This wizlab previously had eight teleport closets, designed to be
terrariums of various shapeshifted monsters placed on display. They are
completely disconnected from the rest of the map and visible only
through their transparent walls.

This commit adds the no_tele_into flag to all tiles inside these eight
areas, to avoid the player teleporting/being teleported into these areas
and then having no way to get out of them. We use nine new symbols to
ensure that the content of the wizlab isn't changed at all.

--------------------------------------------------------------------------------
7d5962a1ba | NormalPerson7 | 2018-09-23 18:12:22 -0400

Unify range checks between the targeter and fatal_attraction for Gell's
This commit:
 (a) re-implements a gravitas_range function to be used by both the
     fatal_attraction function and the targeter for Gell's Gravitas;
 (b) makes this function return a value (2 or 3) solely dependent on
     whether the spellpower is greater than the breakpoint of 80 rather
     than using an overcomplicated and inaccurate formula to do this;
 (c) makes the fatal_attraction function check the range of an actor
     near to the centre of the "gravitational reorientation" using the
     gravitas_range function instead of checking if the calculated
     strength was greater than 0; and
 (d) calculates the strength as before in fatal_attraction, but removes
     the restriction that it must always be less than LOS_RADIUS - this
     sanity check was unnecessary and limited the damage slightly at
     high power for targets colliding when they are range 1 from the
     centre.

--------------------------------------------------------------------------------
77c8c957c9 | NormalPerson7 | 2018-09-23 18:12:22 -0400

Fix the spell targeter for Gell's Gravitas
Previously, the formula used to calculate the targeted area was
completely different to that which the spell itself used, resulting in
the targeter blatantly lying to the player about the tiles which could
and could not be affected.

The current behaviour of Gell's Gravitas is entirely predictable based
on spell power, with no randomness involved, therefore the new targeter
is entirely in the darker yellow colour to indicate the certainty. The
power breakpoints are:
>0 power: at radius 1 from the centre, the monster is pulled 1 tile;
>0 power: at radius 2, the monster is pulled 1 tile;
>60 power: at radius 2, the monster is pulled 2 tiles; and
>80 power: at radius 3, the monster is pulled 1 tile.

The previous spell targeter suggested that, at low power levels,
monsters at radius 2 could never be affected, and that at exceptionally
high power levels, targets at radius 4 could be affected, both of which
are incorrect. Hence, this commit changes the targeter to reflect the
fact that monsters at radius 2 are always affected and monsters at
radius 3 are always affected when, and only when, above 80 power.

An argument could be made for having the targeted tile (the centre of
the "gravitational reorientation") not appear coloured, given that this
tile is not affected, however this would require significantly more
work.

This commit removes the gravitas_range function, which was previously
only used for making the targeter, because it is no longer required.
Additionally, this commit removes the player's tile being highlighted,
given the player is never affected.

--------------------------------------------------------------------------------
3eb00d1601 | Aidan Holm | 2018-09-24 01:14:01 +0800

Fix dry fountain tile not showing in ?/F

--------------------------------------------------------------------------------
14233b2029 | Aidan Holm | 2018-09-24 00:56:45 +0800

Add list of embedded packages to simplebar.js (advil)

--------------------------------------------------------------------------------
4d241d03a5 | Aidan Holm | 2018-09-24 00:30:53 +0800

Add background to webtiles scrollbars

--------------------------------------------------------------------------------
b82a549ae1 | Aidan Holm | 2018-09-24 00:30:49 +0800

Fix some webtiles scrollbar update lag

--------------------------------------------------------------------------------
45387a99ae | Aidan Holm | 2018-09-24 00:28:49 +0800

Fix webtiles scrollbar visibility and zoom issues
The purpose of these modifications is to make the scrollbar 'stick out'
from the side of the scroller window, so that it is flush with the edge
of the popup. Unfortunately, using a transform is not possible here due
to clipping.

This commit resolves some issues reported by users where the scrollbar
would not be immediately visible, and where the browser scrollbar would
reappear if the zoom level was changed.

--------------------------------------------------------------------------------
1502417413 | Aidan Holm | 2018-09-24 00:28:05 +0800

Update simplebar.js to 3.0.0-beta5
This commit also changes to a human-readable and more easily editable
version of the simplebar.js file.

--------------------------------------------------------------------------------
aba95fd1df | Edgar A. Bering IV | 2018-09-23 09:18:14 -0400

Clean up internal comments (aidanh)
Remove '////' and '----' instances being used as dividers or in internal
comments that are not intended for ldoc.

--------------------------------------------------------------------------------
039bf959b9 | Edgar A. Bering IV | 2018-09-23 09:18:14 -0400

Sort lua api table of contents.

--------------------------------------------------------------------------------
7bc873d401 | Edgar A. Bering IV | 2018-09-23 09:18:14 -0400

Document the rest of clua in ldoc
Modules food, item, spells, travel, and view, you. Globals from l-global.cc.
The lua option metatable, internal macro hook, and clua modules iter and
util; and globals provided from loaded lua.

Documents module monster and the  monster.info clua class based on the
source diving and pastebin by Leszczynek.

Documents globals defined in clua.cc inline using ldoc syntax; clua.cc
does not have any Doxygen comments in it. If they get added in the
future that could casue trouble.

Documents the various entry hooks into lua used throughout the codebase
in dat/dlua/userbase.lua, instead of in-line, as that is the file that
initializes hook tables, just to keep things in one place.

--------------------------------------------------------------------------------
a34892ab54 | Edgar A. Bering IV | 2018-09-23 09:18:14 -0400

Stubs for dlua only modules.
Remove spurrious comments triggering ldoc, put in comment stubs in for
modules provided only in dlua. Fixup some punctuation.

--------------------------------------------------------------------------------
49b57b546c | Edgar A. Bering IV | 2018-09-23 09:18:14 -0400

Document dlua additions to the crawl module
Also fix some typos in the previous commit.

--------------------------------------------------------------------------------
96814a83a9 | Edgar A. Bering IV | 2018-09-23 09:18:14 -0400

Switch over and expand old luadoc
This documents the dlua module colour and the clua parts of crawl, based
on the old LuaDoc comments that were already present.

--------------------------------------------------------------------------------
a2dadd3380 | Edgar A. Bering IV | 2018-09-23 09:18:14 -0400

De-Doxygen-ify
These C++ files provide the Lua api, which is documented with ldoc. The
corresponding parts of the internal C++ structure should be documented
at their definitions. Unfortunately ldoc and doxygen almost but
not-quite get along so they are exclusive.

--------------------------------------------------------------------------------
c5a959909e | Edgar A. Bering IV | 2018-09-23 09:18:14 -0400

Switch from LuaDoc to LDoc
LuaDoc never had C++ support, and is now listed as obsolete, directing
users to switch to LDoc, which has C++ support (if a few quirks of its
own).

Adds a make target api-dev to generate a developer's api documentation.
This includes internal functions and hooks that the user should not
touch directly.

--------------------------------------------------------------------------------
dcd3064b91 | Aidan Holm | 2018-09-23 15:58:45 +0800

Don't include hidden spectators in count (#11691, collin38)

--------------------------------------------------------------------------------
c87c613cd2 | Aidan Holm | 2018-09-23 12:40:52 +0800

Improve monster description quote display
This adds support for showing monster description quotes on webtiles,
and uses a switcher widget to prevent the local tiles popup size from
changing when switching between quote and description.

--------------------------------------------------------------------------------
e70c5d8508 | Aidan Holm | 2018-09-23 12:21:10 +0800

Const-ify some member functions

--------------------------------------------------------------------------------
904d0f54cc | Aidan Holm | 2018-09-23 12:15:28 +0800

Unparent container widgets' children before destruction

--------------------------------------------------------------------------------
3217af623f | Aidan Holm | 2018-09-23 12:03:28 +0800

Fix rare text widget rendering glitch
If a text widget with a maximum height has its size queried without
being reallocated, its prewrapped text could be expanded beyond what
would normally be shown. This fix ensures that text is wrapped to the
correct size before rendering takes place, even if the widget was not
reallocated (e.g. if it didn't move and wasn't resized).

--------------------------------------------------------------------------------
2f00525d27 | Aidan Holm | 2018-09-23 12:03:28 +0800

Fix crash when reducing popup width

--------------------------------------------------------------------------------
0ca621acee | Aidan Holm | 2018-09-23 12:03:28 +0800

Add background to scrollbars

--------------------------------------------------------------------------------
f37f6fb109 | advil | 2018-09-20 10:32:57 -0400

Add messaging when servitors skip a turn
Servitors sometimes sit twiddling their thumbs even with a target, and
I've long wondered why, and even if this could be a bug (since this is
something very few monsters do). I've also noticed there's a bunch of
lore around this e.g. you need to constantly do ta to get a servitor to
do something.  It turns out it is intentional, and that for balance
reasons servitors have a randomized interval between casts, that is
implemented by random energy loss. There's no AI problem that I can find
and so there's no need to do ta, but the interface isn't very
transparent about what's going on.

This change simply prints a message on every turn that a servitor loses
to random energy as long as it has a target, so that this random delay
is flavored with "something happening". The situation might also be
helped by being clearer in the UI somehow about when allies have a
target.

As a side note, I'm not really happy about this effect being implemented
using random energy, it'd probably be better to add an extra noop action
to the servitor's action set and balance the weights directly, but
that's a more complicated change to get right

--------------------------------------------------------------------------------
58cdd98f8d | gammafunk | 2018-09-19 00:17:35 -0500

Fix a message for wand pickup (minmay)

--------------------------------------------------------------------------------
24f899ac9f | advil | 2018-09-18 15:08:00 -0400

Revert complex bones install stuff, add dist_bones to repo
As annoying as it is to have binary files in the repository, the bones
installation code that this commit removes was ending up no less
annoying, and considerably more complicated. This change will also make
it easier for servers that reset the bones folder on incremental updates
to make use of dist_bones.

--------------------------------------------------------------------------------
a5275e7ff7 | advil | 2018-09-17 16:44:49 -0400

Fix the build

--------------------------------------------------------------------------------
cb8baf84df | advil | 2018-09-17 15:27:21 -0400

Don't crash when doing describe-all with a buggy net in los
This also removes net_holdee, instead of relaxing the non-null
assumption; it's just a wrapper on actor_at with some assertions. This
is the first step towards just removing the whole implementation of
net status being stored as an item on the ground.

--------------------------------------------------------------------------------
440b721736 | advil | 2018-09-17 10:42:00 -0400

Add bones downloading to the `make source` step
This is intended to simplify packaging on linux; since this step must be
run from a repository, the downloader is more likely to succeed here
than in later packaging steps. The result will be a source distribution
that has the bones tarbell in place so that any build process on that
source distribution defaults to using the local bones file, rather than
downloading. (This could be overridden by deleting the local bones file
in that source directory.)

--------------------------------------------------------------------------------
dbc91a4fd4 | advil | 2018-09-17 10:02:30 -0400

Add a way of using a local bones distribution for make install
To use this, put a file named dist_bones.tar.gz containing bones files
in the appropriate directory structure (in `dat/dist_bones/` in the
tarbell) in `source`. You can also use a custom location by changing
LOCAL_BONES_LOC.  If this file exists, it will override the steps that
try to download the bones file from github. This may be useful for doing
things like building crawl in a chroot that doesn't have wget/curl.

Also updates .gitignore.

--------------------------------------------------------------------------------
3888083293 | advil | 2018-09-17 10:01:16 -0400

Clear trapping nets when a monster moves via gell's (minmay)
This appears to have been intentional, but this code is inherited from
singularity, so the history is a bit complicated and I'm not really sure
why it was this way. This was resulting in the net being marked as
trapped, but with no actor trapped in it, so it couldn't be picked up.

Also do some other cleanup that seems to have been missing.

--------------------------------------------------------------------------------
97aacdb306 | Aidan Holm | 2018-09-15 21:49:22 +0800

Fix inventory menu obscuring some message prompts (#11645, Yermak)

--------------------------------------------------------------------------------
50e13424c7 | Aidan Holm | 2018-09-15 21:46:19 +0800

Hide shopping list key if shopping list is empty

--------------------------------------------------------------------------------
d05d27e280 | Aidan Holm | 2018-09-15 20:33:38 +0800

Show correct MP after aborting spell (#11598, Siegurt)
MP is deducted before casting begins, and the deducted amount is
returned if casting is aborted, but the screen was not refreshed
afterward, leading to player confusion.

--------------------------------------------------------------------------------
8f6560338e | gammafunk | 2018-09-15 01:51:00 -0500

Properly disable Scrying when abandoning Ashenzari (guyde, salmon)

--------------------------------------------------------------------------------
5ae17c6e89 | CanOfWorms | 2018-09-11 23:35:06 -0400

More description updates
Mention a (sometimes important) uncommon interaction

of teleportation scrolls. This is already in the status

description section (?/T), but there's no harm in making

it more visible.
--------------------------------------------------------------------------------
07fecf47cd | CanOfWorms | 2018-09-11 20:07:57 -0400

Update some scroll descriptions
Clarify exactly what can (or more specifically, can't) be affected by fear.

Unfortunately, this is not a perfect solution as holiness is hidden to the

player, but the holiness of most monsters (especially in the early

dungeon) is usually clear so it should help newer players.



The Cause Fear spell should also have an updated description,

but it currently uses the monster spell description, so that needs

to be adjusted first.



Also remove a very outdated reference to hides in the enchant

armour scroll description.
--------------------------------------------------------------------------------
b21e69520c | gammafunk | 2018-09-10 18:34:05 -0500

Adjustments for the Lehudib's Moon Base WizLab
Update the loot in this map to introduce some good loot potions and
scrolls among the loot piles. Also replace the "acquire any" item with
artefact jewellery or good_item aux armour and replace one superb item
in the main loot pile with this. We want to save use of "acquire any"
for things like troves, and there was no need for this particular item
to depend on the player. Next, give the moon troll a couple randomized
monster friends so that he's not stuck all by himself. Finally, slightly
tweak the monster set to remove rust demons and have the random monster
list (used for Shadow Creatures) more in line with the monsters on the
map.

For level adjustments, make some transparent stone areas to see into the
moon troll's lair area. This lets the player see the loot they're after
as well as where they will land when they take the transporter. It also
helps reveal the artefact book in the lair area, which is something
players have tended to miss. Finally, reglyph the vault DES to not use
pre-defined glyphs in our custom glyph definitions.

--------------------------------------------------------------------------------
0d986b7597 | gammafunk | 2018-09-10 18:24:08 -0500

Move scroll and potion loot definitions to a better location
The lists formerly in ghost_loot_scrolls and ghost_loot_potions are now
in dgn.loot_scrolls and dgn.loot_potions, respectively, defined in
dungeon.lua. This allows them to be used outside of ghost vaults.

--------------------------------------------------------------------------------
f92cf62f8f | advil | 2018-09-10 17:31:32 -0400

Remove glob from tar call in Makefile
Gnu tar handles globs differently and they would need to be manually
activated just for those versions; this change should work the same on
all versions of tar (I hope).

--------------------------------------------------------------------------------
6564cf386f | advil | 2018-09-10 17:29:37 -0400

Fix some warnings (gammafunk)

--------------------------------------------------------------------------------
826d253260 | advil | 2018-09-10 15:48:18 -0400

Add bones downloading to package/install targets
This is not very elegant in that it will try to redownload the bones
package each time these targets are called, but I did it this way so as
to not make build success contingent on actually downloading this thing
for these targets. Better Makefileing welcome.

I believe this covers all of our packaging targets; I've tested it on
mac tiles only so far.

--------------------------------------------------------------------------------
7711e572f3 | advil | 2018-09-08 20:25:11 -0400

Attempt to fix newgame colors on remote console (11671)
I can't get this to happen locally, but it looks like an issue with only
8 colors being used in the newgame menus over ssh, even with the right
options set. (Maybe unsurprising, since the options aren't read yet).
This resets the highlight colors for webtiles specifically to what they
were before 44136481aa11. Looks ok in webtiles, could be better.

As a side note, using blue for dispreferred combos (as a fallback for
darkgrey) in console looks really bad.

--------------------------------------------------------------------------------
800ba1ec23 | advil | 2018-09-08 15:15:46 -0400

Add a build target for installing bones distributions
The way this works is that it looks for a file named `dist_bones.tar.gz`
as an asset attached to the most recent tag on github, and downloads any
files in that tarbell that will unpack into `dat/dist_bones`. It will
try either curl or wget, and fail with an error message if neither are
available (or if the relevant link is 404). The tarbell needs to be
manually uploaded to the tag. For now, no other build rule calls this so
it will need to be done manually.

--------------------------------------------------------------------------------
d0dd13620d | advil | 2018-09-08 15:15:46 -0400

Add a basic deduplication command for bones files
There might be a bug somewhere that is resulting in multiple copies of
the same ghost?

--------------------------------------------------------------------------------
70f5b0061b | advil | 2018-09-08 15:15:46 -0400

Tweak permastore sizes
Branches where the store doesn't include individual levels (e.g. depths)
could be a bit bigger.

--------------------------------------------------------------------------------
daa33e9031 | advil | 2018-09-08 15:15:46 -0400

Further tweaks to --bones commands
A few formatting fixes; also, don't require case matching for rm, and
show count for ls.

--------------------------------------------------------------------------------
b54bf1b0da | advil | 2018-09-08 15:15:46 -0400

Clarify semantics of player_in_hell
I would've expected that this includes the vestibule (and did, leading
to a bones naming bug), but it didn't, so this change provides both
options.

--------------------------------------------------------------------------------
3cb3a19595 | advil | 2018-09-08 15:15:46 -0400

Command line tools for manipulating bones files
These are aimed at preparing a bones collection for offline builds.

--------------------------------------------------------------------------------
ee4e6b7238 | advil | 2018-09-08 15:15:46 -0400

Increase MAX_GHOSTS
This used to place a (very coarse) limit on how many ghosts could in
principle spawn on the same level. This limit is meaningless now,
because ghosts spawn only via vaults, and it was acting as an artificial
constraint on how many ghosts could be in a bones file. Increase this so
that permastore files can be bigger.

--------------------------------------------------------------------------------
28ba102798 | advil | 2018-09-08 15:15:46 -0400

Don't use the full minor tag versioning for bones files
Only use the subset that is relevant to reading and writing
ghost_demons. The issue here is that upgrading a bones file on a server
leads to it not being loadable by older saves, and it gets upgraded any
time a new minor tag is introduced. A previous commit introduced a
somewhat complicated backup system to deal with this, but that still had
some corner cases, and leads to unnecessarily many bones backups on
servers. The fact is that most save compat doesn't have much to do with
bones files, and out of the current 199 minor tags, only 4 actually
impacted bones. So, only use relevant minor tags for bones versions
(which do need to be manually set). I'll leave the backup thing in
place, but this change means that it only rarely will come into play.

This doesn't impact ghost_demons in player saves, which inherit the
versioning from the save.

--------------------------------------------------------------------------------
2c6674ca8f | advil | 2018-09-08 15:15:46 -0400

Support for distributing bones permastore files in dat/
This doesn't yet actually finish the mechanics of distributing them, but
if permastore files are put in the right subfolder of dat/, they will be
copied to the player's bones folder when needed. This should even work
on a server, though it's less necessary there.

--------------------------------------------------------------------------------
ee7bbb8033 | advil | 2018-09-08 15:15:46 -0400

Improve the new save version api a bit and use it more
Encapsulates more version logic in just tag-version.h, with a cleaner
interface.

--------------------------------------------------------------------------------
2e7624f900 | advil | 2018-09-08 15:15:46 -0400

Remove a debugging change

--------------------------------------------------------------------------------
add243beea | advil | 2018-09-08 15:15:46 -0400

Improve handling of upgrading bones files for online games
Plus several other fixes + a bunch of streamlining. Now, when a bones
file is loaded that is an old save version, a numbered backup of it will
be made before upgrading so that previous versions of the game can still
use the backup, rather than failing to load the updated versions.

Despite all this fancy footwork, the situation still isn't all that
great. For example, suppose that a player triggers a bones update for
some file from 34.199 to 34.201, and then another player comes along
with save version 34.200. Possibly a solution is to look for older
versions at that point, but I haven't yet come up with a good
implementation of that. Another possible solution is to move to a
seperate versioning system for bones files (probably a subset of the
minor tags); most of this is a pseudo-problem in that there is very
little save compat in bones files at all.

--------------------------------------------------------------------------------
f6d1ed2717 | advil | 2018-09-06 22:06:40 -0400

Add cross-compiling to travis
Would be nice to consistently test if the windows build is broken.  This
actually builds the packages, so we could consider replacing the CAO
unstable builds with something like this.

--------------------------------------------------------------------------------
7664ed78f7 | Aidan Holm | 2018-09-06 22:09:52 +0800

Remove debugging console.log() calls

--------------------------------------------------------------------------------
21b9829214 | Aidan Holm | 2018-09-06 22:09:36 +0800

Fix misaligned aptitude table highlighting (#11662, falconhit)

--------------------------------------------------------------------------------
2abc2a7c72 | Aidan Holm | 2018-09-06 21:56:31 +0800

Add tile for grasping roots monster spell

--------------------------------------------------------------------------------
7935be99ec | gammafunk | 2018-09-06 01:05:32 -0500

Give Jorgrun the Grasping Roots spell
This will give Jorgrun a way to get in damage from anywhere and
hopefully give him more chances to get in range for iron shot.

This commit also re-adds Jorgrun to Swamp. He now has a full-range
source of damage that doesn't depend on walls, which Swamp lacks.

--------------------------------------------------------------------------------
b865740ec8 | gammafunk | 2018-09-06 01:05:32 -0500

Rework the Grasping Roots ability of Shambling Mangroves
This monster ability currently applies a Roots status that lowers player
EV, slows movement, and removes any flight. This is similar to a number
of existing monster effects and is a mild effect overall. This commit
reworks Grasping Roots to be a smite-targeted version of monster
constriction, similar to the effect used by the player Borg's Vile
Clutch spell.

Grasping Roots now applies a non-resistable constriction effect to the
player (or target monster) when cast, with similar for escape for the
normal constriction used by e.g. naga monsters. The constriction damage
for Grasping Roots is higher than direct constriction, using two dice
instead of one. This is 2d9 for shambling mangroves at 13 HD, which is
high enough to be significant when applied over several turns.

Constriction impedes movement and lowers EV similarly to how the Roots
status did, but adds additional escape restrictions as well as
significant damage. These help Grasping Roots be a more meaningful
ability without requiring players to learn the effects of yet another
player debuff.

--------------------------------------------------------------------------------
12c6407db4 | gammafunk | 2018-09-06 01:04:34 -0500

Make a function non-static and reorder its arguments
The monster spell-power calculation will be needed outside of
mon-cast.cc in the future. Also use a more logical argument order that's
consistent with the other global mons_ functions.

--------------------------------------------------------------------------------
e4bf05c952 | gammafunk | 2018-09-06 01:01:22 -0500

Fix monster spell ranges for certain spells and refactor
For monster spells with range varying based on spell-power, properly use
monster HD as an argument for the range lookup instead of using the
monster's spell-power. This was effectively giving monsters a range
boost for these spells.

Also refactor a range function to have a clearer name and more logical
order of arguments.

--------------------------------------------------------------------------------
1adec7bb76 | gammafunk | 2018-08-31 00:07:13 -0500

An updated tile for the Robe of Vines (ploom, ontoclasm)

--------------------------------------------------------------------------------
8eac906cd0 | gammafunk | 2018-08-31 00:07:13 -0500

Update a Depths vault (minmay)
The door for this vault was meant to contain the jellies, which can't
open doors. However, after the player first comes into view of the
jellies, a subsequent autoexplore will see that the jellies are sealed
and proceed normally, opening the door.

This commit makes the vault have a proper runed door to prevent
autoexplore from opening it. We also update the threats in the vault,
removing early Dungeon slimes and replacing those with slime creatures
and higher level jellies.

Additionally remove unnecessary no_tele_into and no_item_gen flags.
There's nothing in particular about this vault that should require
preventing teleports (or not generating items) compared to other runed
door vaults.

--------------------------------------------------------------------------------
456867d837 | advil | 2018-08-30 23:23:54 -0400

Fix incorrect .. in some text popups on hidpi displays
The problem was that the window preferred height was calculated
including subpixel advances, but the code to actually split the string
and trim it before rendering it was not. When deciding if text would
fit, it was sometimes (depending on the exact math) predicting that the
text was one line longer than it actual was (with subpixel advances),
and it therefore would chop the last line and put `..` in place of the
last two characters of the prior line.

--------------------------------------------------------------------------------
7f38390aa5 | advil | 2018-08-30 22:10:46 -0400

Fix ?/ at the main menu
This isn't very elegant, it just uses two sequential popups. It's
still better than what was happening before, where the prompt text
wasn't begin displaying at all.

--------------------------------------------------------------------------------
a22e90c45f | Alan Malloy | 2018-08-29 11:08:36 -0700

Fix announcements for collecting runes in Sprints (hayenne, #11655)

--------------------------------------------------------------------------------
286b84bf81 | advil | 2018-08-29 09:30:38 -0400

Tone down some blue/purple fog machines (hayenne)
These were written assuming a spread rate of 0, I think, but this was
changed in 646ff71b4c43. (Though the size parameter in sprint_mu.des
just seems wrong, and maybe calibrated for gloom before
a0ae0798b3ff7928?)

--------------------------------------------------------------------------------
ef0ad6d46f | AndSDev | 2018-08-28 12:28:08 -0700

Highlighting exploring horizon behind the doors

--------------------------------------------------------------------------------
722f094350 | advil | 2018-08-27 16:43:06 -0400

Tweak newgame highlighting further for console/webtiles
It turns out that console has some fancy thing that automatically
inverts the foreground colors when needed, but this was resulting in
lightgray on lightgray highlighting in webtiles. These tweaks fix that,
and also remove the darkgray on blue combo for non-preferred options
that was also not so readable, replacing it with simple darkgray on
lightgray, which is readable on both targets.

--------------------------------------------------------------------------------
e225a8b5e9 | advil | 2018-08-27 11:23:52 -0400

Add explicit description of jelly spawning mechanic to TRJ
This is one of those things that everyone knows, except when they
don't yet, and it's actually fairly spoilery. This change will also
hopefully make the three main corner cases a bit clearer: stabbing,
poly, and (recently) grand finale.

--------------------------------------------------------------------------------
23b030f935 | advil | 2018-08-27 11:03:12 -0400

Fix a grammar issue with flying corrosive monster bits

--------------------------------------------------------------------------------
2ef98b0e17 | Aidan Holm | 2018-08-27 21:49:45 +0800

Convert some malloc/free code to std::array

--------------------------------------------------------------------------------
fd4a40fe29 | Aidan Holm | 2018-08-27 21:07:50 +0800

Fix incorrect minimap resizing (RoGGa, #11642)
Placing the minimap uses the difference between m_statcol_top and
m_statcol_bottom to calculate how much available space there is to show
the minimap. m_statcol_bottom was being wrongly calculated because some
inventory size calculations hadn't been completed. This is fixed by
completing those first, if they haven't already been done.

--------------------------------------------------------------------------------
2622018599 | Aidan Holm | 2018-08-27 21:07:05 +0800

Allow minimap to shrink when tile_map_pixels set (RoGGa, #11642)

--------------------------------------------------------------------------------
0e7800ee05 | advil | 2018-08-26 18:55:25 -0400

checkwhite

--------------------------------------------------------------------------------
3b8b0789e7 | advil | 2018-08-26 18:55:19 -0400

Spawn jellies when TRJ dies to grand finale (Doesnt)
I'm pretty sure this was just an oversight, the regular jelly spawn code
path is in react_to_damage but grand finale just calls monster_die. This
change brings this TRJ tech in line with poly and stabbing.

--------------------------------------------------------------------------------
2d122ddfbf | gammafunk | 2018-08-26 15:35:48 -0500

Remove the trunk reminder for the 0.22 tournament
This reverts commit aa8cc03057152a697db27c544c24ec6098168342.

--------------------------------------------------------------------------------
a8cb661cfc | advil | 2018-08-26 09:06:26 -0400

Notify player before forgetting a non-library spell (RoGGa)
Applies to Vehumet gifts. With a large spell library, it's very easy to
lose trick of where spells came from and not be aware that some spell
has only been encountered via vehumet and won't be re-memorizable. Since
the only UI doesn't display this information anywhere in the spell menus
(you'd have to track it down with ?:), include this information in the
new confirmation prompt.

--------------------------------------------------------------------------------
19e28b46dc | Aidan Holm | 2018-08-26 02:09:27 +0800

Wrap chardump notes, overview, and messages (NormalPerson7, #11583)
Notes and messages are the major contributors to overly long lines, but
the chardump still contains a few tables that can reach up to 105
columns; these are more difficult to adapt to smaller screen widths.

--------------------------------------------------------------------------------
9417b5cadc | Aidan Holm | 2018-08-26 01:47:25 +0800

Ask for confirmation when forgetting spells (RoGGa, #11581)

--------------------------------------------------------------------------------
ecc7f9df0b | Aidan Holm | 2018-08-26 01:34:39 +0800

Fix double-space in Ash dancing weapon warning (Pekkekke, #11603)
Not sure why Ash feels the need to warn about these..

--------------------------------------------------------------------------------
b1aafca977 | Aidan Holm | 2018-08-26 01:08:12 +0800

Fix X> leaking location of portals (silenth. #11629)
As far as I can see, is_feature() checks against the known feature in a
location; this commit changes that function to return true for portal
entrances and exits, allowing them to still function with > and < if
they are known to be entrances/exits. _is_feature_fudged() calls
is_feature(), and then checks some extra special cases; we remove checks
for portal entrances/exits here, since these are checks against the
actual feature, rather than the player-known feature.

--------------------------------------------------------------------------------
f5ddf05aac | Aidan Holm | 2018-08-25 22:23:57 +0800

Fix compilation error with TOUCH_UI=yes (sagitter, GH #833)
This fixes support for clicking the menu title/more in order to switch
panes. It seems quite a few menus don't specify a cycling action,
howver, and there are some menus with multiple toggleable options (e.g.
stash tracker menu); perhaps these should be made into explicitly
clickable buttons?

--------------------------------------------------------------------------------
44136481aa | advil | 2018-08-24 19:59:30 -0400

Make newgame menu highlighting less toned down in tiles
Depending on the highlight color, things were pretty invisible at these
alpha values, partly because tiles and console colors *really* don't
match up (even though code assumes they do). This maybe goes too far in
the other direction, so could use some further tweaking.

I also toned down the amount of colors used in the newgame menus on
local tiles, where I don't think they look good. (I have my doubts about
console as well, especially the blue, but I left that as-is.)

The change from WHITE to LIGHTGREY in startup.cc is mainly for local
tiles to balance out the alpha change, it doesn't have an impact on
console.

--------------------------------------------------------------------------------
0f769d1648 | advil | 2018-08-24 19:59:30 -0400

Fix swapped blue/green in BoxMenuHighlighter highlight color

--------------------------------------------------------------------------------
a86c9e7f02 | gammafunk | 2018-08-23 22:30:04 -0500

Updated Azrael tile (ploom, CanOfWorms)

--------------------------------------------------------------------------------
70321190f2 | Aidan Holm | 2018-08-23 20:09:58 +0800

Fix item description formatting, take two (NormalPerson7, #11632)
Using 'pre-wrap' here instead of 'pre', which was causing some
descriptions to be clipped, since their description text was unwrapped.

--------------------------------------------------------------------------------
ebca68c5b3 | gammafunk | 2018-08-23 00:15:23 -0500

Updated mana viper tile (ontoclasm)

--------------------------------------------------------------------------------
4173aa6431 | gammafunk | 2018-08-22 23:50:16 -0500

Updated dream sheep tile (CanOfWorms)

--------------------------------------------------------------------------------
8d3be6a088 | gammafunk | 2018-08-22 21:48:57 -0500

Updated shock serpent tile (ontoclasm)

--------------------------------------------------------------------------------
55e0228dad | advil | 2018-08-22 15:02:08 -0400

Provide a (disabled-by-default) way to use lua require
Add #define CLUA_UNRESTRICTED_LIBS to load all libs (or do it from the
command line); if this is set, the original global value for "require"
loaded by package will be bound to `lua_require`. (Crawl has its own
`require` that shadows this.)

--------------------------------------------------------------------------------
b59193a44f | Aidan Holm | 2018-08-23 02:27:43 +0800

Revert item description fix (silenth, #11633)

--------------------------------------------------------------------------------
497f4a5a2c | Aidan Holm | 2018-08-23 02:15:57 +0800

Fix require() only failing the first time (pibborn)
Filenames were added to a list of already-loaded files before loading
was actually attempted, which meant that only the first load failure
returned an error, with subsequent require() calls returning true.

--------------------------------------------------------------------------------
6bf7575dfd | Aidan Holm | 2018-08-23 00:05:23 +0800

Fix god screen powers colours on webtiles (btonasse)
Not proud of this...

fg* are used instead of the colour_* classes because unsurprisingly, the
colours are not actually the same. Separately, the match for the colour
tag is optional because on Gozag everything is yellow all the time, so
only the first line has a colour tag.

--------------------------------------------------------------------------------
d4e5561ac0 | Aidan Holm | 2018-08-23 00:02:39 +0800

Fix webtiles whitespace formatting (NormalPerson7, #11632)
Apart from the issues described in the mantis report, this also fixes a
bug where ash bondage info was not displayed on the ^ screen.

--------------------------------------------------------------------------------
5e4b187028 | Floodkiller | 2018-08-21 23:26:09 +0800

Add another set of Gnoll playerdoll tiles
Adds another set of Gnoll playerdoll tiles, by Metoron.

--------------------------------------------------------------------------------
f7ee2ed0be | advil | 2018-08-20 20:50:41 -0400

Continue to work around old firefox bugs
This time firefox 47 -- it appears that max-height was never inherited
properly from a calc'd max-height in this version, fixed before firefox
49. This makes it explicit everywhere that it's needed (unless I missed
some popup type), which fixes the issue.

n.b. I can still see some broken things in firefox 47, which we may be
less likely to fix. For example, the god screen panes don't work right,
even though this commit makes that popup not completely unusable.

--------------------------------------------------------------------------------
46bba9cb96 | advil | 2018-08-20 20:18:44 -0400

Avoid dith "unlinked items" for clumsy bashes (RoGGa, 11413)
RoGGa noticed in 11630 that this seems to happen when your shadow mimics
a clumsy bash with a ranged weapon. What is happening is that your
shadow unwields the range weapon and then attacks unarmed -- I'm not
even sure if clumsy attacks with a ranged weapon are implemented for
monsters. This was moving the mimicked weapon into the alt slot, and it
wasn't getting cleaned up.

--------------------------------------------------------------------------------
63f3d0bd30 | advil | 2018-08-19 15:04:15 -0400

Load the lua libs correctly for Lua 5.1
It turns out that these setup functions aren't supposed to be called
directly from C as of lua 5.1, but rather called like a lua function.
This is documented (very briefly) in:
http://www.lua.org/manual/5.1/manual.html#5
http://www.lua.org/manual/5.1/manual.html#7.3

This doesn't appear to have mattered for the libraries we were using
(though who knows), but it does matter for other libraries: e.g. package
will panic if not loaded the right way.

A recommendation that I found on stackexchange was to see how it is done
in linit.cc for the specific version of Lua one is using, and follow the
practices there, so that's more or less what I've done.  If we upgrade
Lua to some later version, it sounds like this might change again, so
this code may need to be updated.

(cherry picked from commit ce2052a233ead033e2f61c92c51e49403427babb)

--------------------------------------------------------------------------------
9f8b2530fb | gammafunk | 2018-08-19 14:02:41 -0500

Make the Temple entrance always visible for two entry vaults (hayenne)
These vaults require access from the floor below and have glass showing
the Temple entrance on the current level. However the entrance is only
visible from a square adjacent to the glass, and it's currently possible
for that square to be a solid feature from the rest of the level. This
commit includes the relevant square as normal floor in these maps.

--------------------------------------------------------------------------------
3bb90113a8 | advil | 2018-08-19 12:37:02 -0400

Tweak texture loading error message
Make the consequences of the error more transparent to users who
haven't encountered this before.

--------------------------------------------------------------------------------
e8f86619e0 | Aidan Holm | 2018-08-18 17:00:15 +0800

Show now-monster-only spells on ?/S
Spells that the player used to be able to cast, but that are now
munster-only, are marked as removed by spell_removed(); but since
monsters can still cast them, and the player may reach their description
by other means (such as via a monster description), it's useful to show
them directly in ?/S.

This does not show other spells that have actually been removed (e.g.
delayed fireball), presumably because lookup-help uses the descriptions
database to find all candidate spells, and fully removed spells have had
their descriptions removed.

--------------------------------------------------------------------------------
1b1c69945b | Aidan Holm | 2018-08-18 16:57:32 +0800

Restore mass confusion tile
Mass Confusion can still be cast by pan lords and ancestors.

--------------------------------------------------------------------------------
5e01147d08 | Aidan Holm | 2018-08-18 16:31:09 +0800

Add twisted resurrection tile (NormalPerson7, #11622)

--------------------------------------------------------------------------------
33897af1d2 | advil | 2018-08-17 21:59:30 -0400

Fix at least some Beogh unlinked item bugs (8187)
The problem was with named followers who had been gifted items.  What
was happening was that both drop_item and take_item could fail, but
beogh_gift_item() didn't check for these fail conditions and forced the
gift on the follower regardless. If the follower had an old item in the
relevant slot, this left the old item still associated with the follower
but unlinked, and errors started showing up when the follower died and
the item didn't get properly converted to a floor item. The main case
where this came up was if you gifted a follower an item and the item
they already had in that slot was cursed, causing drop_item to fail. The
key symptom (which is rather hard to notice) is that the follower
wouldn't generate a drop message for the old item. I have changed things
so that Beogh removes the curse in these cases, so that the follower can
drop their cursed item.  Alternatively, the gift could just fail, but
this harsher behavior didn't seem to me to contribute anything
interesting to gameplay.

I've also ensured that take_item respects drop_item's fail conditions,
and that beogh_gift_item respects take_item's fail conditions with an
error message.

There are many variants of this out there so I can't promise this fixes
all of them, but I think this will probably fix the Beogh version; all
the saves I have access to are consistent with the case I have
replicated and fixed here, though for many of them the only real
evidence is that a named follower previously died on the level in
question.

To figure this out, it was crucial to get access to a tv that included
the whole sequence of events; thanks to Defined for having a fairly
precise description of their instance of the bug that allowed me to
do this (the tv: `!lg
defined game_key=Defined:cxc:20180717045212S -tv:<T52500:channel=debug`).

--------------------------------------------------------------------------------
417c70ba38 | advil | 2018-08-17 12:00:25 -0400

Sort spell library in morgue files
This previously went by spell enum order, which was a bit confusing.
This commit also unifies the chardump code a bit more with the library
code, and lists completely unmemorizable spells in a chardump as well.
(Currently in-game there seems to be no way to see these.)

--------------------------------------------------------------------------------
3e8b815e1c | advil | 2018-08-17 11:12:14 -0400

Record the first command of a lua do_commands sequence
The first command was directly processed via process_command, which
didn't send it to the key recorders, but any later commands in the
sequence were recorded. This was causing errors when ` was hit after an
autofight command, because the first command was needed to set the
context properly. Probably a further consequence of various autofight
changes in 0.22.

N.b. repeating autofight leads to (maybe?) an odd result: it doesn't
repeat tab, but rather the key sequence calculated by the first instance
of tab. I'm not sure this really comes up much, but I think you'd expect
TAB+` to be the same as TAB+TAB. It's a bit tricky to get this other
behavior, though, and I think autofight has always worked like this, so
I'm leaving it as-is for now.

--------------------------------------------------------------------------------
66d73a17cb | gammafunk | 2018-08-16 19:46:40 -0500

Resize a ghost vault
This makes all potential loot contents visible from outside the vault.

--------------------------------------------------------------------------------
48a0e4aa71 | gammafunk | 2018-08-16 18:05:15 -0500

Remove an unused variable

--------------------------------------------------------------------------------
c4a20573db | gammafunk | 2018-08-16 15:23:01 -0500

Remove an unused legend item from a char dump table

--------------------------------------------------------------------------------
44dc95ea49 | advil | 2018-08-15 15:25:59 -0400

Don't let shop name matching override item matching (Xenobreeder)
Previously, a match against the shop name was just or'd with a match
against the item description, so for example "armour && !!body" would
return everything in an armour shop, because the shop name would usually
also match !!body. This rolls the shop name matching into the item name
matching, so the query is executed against a string containing both.

The remaining disjunction here looks potentially dubious for similar
reasons, I suspect you'd get the same effect with randart descriptions
in shops.

--------------------------------------------------------------------------------
f89bb87e3f | gammafunk | 2018-08-15 14:12:30 -0500

New tiles for the Mace of Variability (ontoclasm)

--------------------------------------------------------------------------------
9a2f62deab | gammafunk | 2018-08-15 14:12:30 -0500

Adjust a Lair entry vault (minmay)
This vault was designed around the guardian being able to fly, but when
fire drakes were removed, the hellhounds that replaced it tends to just
get stuck. This commit substitutes the hell hounds with a fire dragon
and gives this entry the lowest possible weight. A fire dragon is not
too bad an OOD for D:8-11, being equivalent to a 8 or 9 depending on the
Lair entrance depth. This will be a rare, nasty guardian, and of course
players wanting to enter Lair but who are unable to kill the dragon can
employ various means to lure it away from the entrance.

--------------------------------------------------------------------------------
0b27b35b31 | Free Potion | 2018-08-15 11:37:12 -0700

Update Russian amulet translations
- Removed translation for removed amulets
- Add translation for "reflection

--------------------------------------------------------------------------------
9c62ab6c40 | advil | 2018-08-15 12:33:05 -0400

Work around a height bug with nested divs in older firefox
This bug (https://crawl.develz.org/tavern/viewtopic.php?f=9&t=25649)
affected firefox versions before 52 and prevented popups from being
sized correctly in the new UI system; they extended off the window to
their max potential height. The firefox bug is
https://bugzilla.mozilla.org/show_bug.cgi?id=1000957.

I'm not going to make a habit of supporting random browser versions like
this, but this particular fix is relatively easy and benign as far as I
can tell.

--------------------------------------------------------------------------------
4a03f4cb6f | advil | 2018-08-15 12:33:05 -0400

Avoid some NaNs if a menu is too tall
This isn't really ever supposed to happen, but it may be possible with
weird zoom values (I encountered it on an older buggy firefox version).
This commit keeps the javascript from breaking, though it *doesn't* make
scroll work right in these circumstances.

--------------------------------------------------------------------------------
c901079228 | advil | 2018-08-15 12:33:05 -0400

Don't treat "Another game is already in progress..." as a fatal error
Just another holdover from the days when you re-executed the game to get
back to the main menu.

--------------------------------------------------------------------------------
5f73bc1610 | Aidan Holm | 2018-08-13 21:37:13 +0800

Improve webtiles menu scrolling behavior (RoGGa, #11609)
This commit tweaks how visible items are calculated; the bottom item
must now be fully visible. We also now scroll differently when using
pgup: pgup/pgdn/up/down now all line up the first visible menu item with
the top edge of the viewport.

--------------------------------------------------------------------------------
b167e66349 | advil | 2018-08-13 09:27:49 -0400

Allow exiting spell descriptions with more keys
We should probably standardize these keys across description screens to
some degree.

--------------------------------------------------------------------------------
22930c1b1d | advil | 2018-08-12 22:13:53 -0400

Actually disable memorizing from books in shops via descriptions
e17c9578eba4 disabled the message telling you you could, but didn't
actually prevent M at the spell description from working for a book in a
shop.

--------------------------------------------------------------------------------
29e5e51a2b | gammafunk | 2018-08-12 20:02:37 -0500

Merge pull request #837 from nonfreeblob/some-changes
Small fix
--------------------------------------------------------------------------------
829b39912e | nonfreeblob | 2018-08-13 02:04:58 +0300

Small fix

--------------------------------------------------------------------------------
df0b57c211 | Aidan Holm | 2018-08-12 15:57:23 +0800

Add missing status descriptions (joemaro, github #836)

--------------------------------------------------------------------------------
012e35b96f | gammafunk | 2018-08-12 00:39:57 -0500

Adjust the Vampire's Tooth guarded unrand vault
This vault was based on the +4 dagger version of the unrand. Now that
this is a significantly stronger weapon, move the vault deeper and
adjust monsters accordingly. For Dungeon, use vampire mosquitoes and a
smattering of tyrant leeches on the outside, with vampires and vampire
knights (in the latest depths) guarding the inside. This vault also now
places in Crypt and Depths, where only vampire knights and vampire mages
are used.

Finally, use a quick blade as the base type for the artefact weapon when
the vampire's tooth has already generated.

--------------------------------------------------------------------------------
c95c2c784e | advil | 2018-08-11 22:28:12 -0400

Fix two packaging issues for source tarbells
(i) the LICENSE file was missing due to its change in location (#834)

(ii) we plausibly shouldn't redistribute a minified / webpacked version
of simplebar.js (#835). This commit simply removes it from the nodeps
source tarbell, but this needs to be examined a bit further. (I first
tried to put it in a contrib directory under game_data and exclude that,
but something about how the tornado python class for serving game_data
is configured wasn't letting this happen very easily.) This library is
MIT licensed and has four small dependencies, all themselve MIT licensed
with no more dependencies, and isn't very big itself, so there's not a
deep reason that this has to be minified as far as I can see. This file
isn't used or present in any of the regular distributions of crawl, but
it (as well as several other js files) are present in minified form in
the deps tarbells still.

--------------------------------------------------------------------------------
aa8cc03057 | gammafunk | 2018-08-10 12:10:57 -0500

Add a trunk reminder for the 0.22 tournament

--------------------------------------------------------------------------------
c252fe1198 | gammafunk | 2018-08-09 17:45:06 -0500

Remove old hints code about Sif Muna refusing worship (RoGGa, 11578)
Sif no longer requires potential worshipers to have a spell before
accepting worship.

--------------------------------------------------------------------------------
5c563b88cc | gammafunk | 2018-08-09 17:41:33 -0500

Rewrap the FAQ.txt file (RoGGa, 11512)

--------------------------------------------------------------------------------
67ddc3d886 | gammafunk | 2018-08-09 17:36:09 -0500

Update the quickstart.txt for wand identification (RoGGa, 11562)
Wands now ID upon pickup, so have this section only talk about scrolls
and potions.

--------------------------------------------------------------------------------
7fb8b5cac0 | gammafunk | 2018-08-09 17:18:22 -0500

Finalize the Debian changelog for the 0.22 release

--------------------------------------------------------------------------------
b446a2b074 | gammafunk | 2018-08-09 17:18:06 -0500

Finalize the changelog for the 0.22 release

--------------------------------------------------------------------------------
64c3ba73d4 | advil | 2018-08-09 12:51:59 -0400

Make menu wrapping at the end not the default
The previous behavior (in local tiles and console, but not webtiles) was
that when you reach the end of a menu, and scrolled down (e.g. with
pgdn), the menu wrapped back to the beginning. This was fairly confusing
for things like inventory, and just bad UI design for longer scrolling
menus like ctrl-f results.  This change makes wrapping opt-in rather
than opt-out, and then doesn't add it to any menus. I did it this way
rather than removing it entirely in case we get begged to add this back
for some menus, but I can't really think of an existing menu in crawl
where it would be better to wrap than just to stop. Home and End should
nowadays work consistently in any scrolling menus in any case.

No impact on webtiles.

--------------------------------------------------------------------------------
35ef63949d | Aidan Holm | 2018-08-09 12:21:20 -0400

Add tile_single_column_menus option (KurzedMetal)
Some users complained that reading some menus was now more difficult,
since items in individual categories are displayed in two columns.
One example is when scanning a particular category of items in the
inventory; the player will need to scan left-right as well as up-down.

This new option allows users to force menus to use a single column. It
isn't a perfect solution, but webtiles and console already only support
single column menus, and there aren't too many complaints about that...

--------------------------------------------------------------------------------
dab52ba086 | advil | 2018-08-09 12:17:15 -0400

Prevent hidden menus from intercepting some keys in webtiles
Seems to have mostly impacted direction keys. This will hopefully fix
all of 11579, 11584, 11592.

(cherry picked from commit 4d0fc0409815ddadc32dc814b008b1fe2e47040b)

--------------------------------------------------------------------------------
8b663042e7 | Aidan Holm | 2018-08-10 00:01:41 +0800

Add ui-overhaul highlights to changelog

--------------------------------------------------------------------------------
b7c0dbdbbe | Aidan Holm | 2018-08-09 23:16:19 +0800

Fix unused variable

--------------------------------------------------------------------------------
65f37dfae7 | Aidan Holm | 2018-08-09 23:08:36 +0800

Fix webtiles level map message hiding (sort of) (Yermak, #11602)
This fixes some recent issues with the level map not showing message
prompts as part of e.g. X! and XG. 1e3a2e4e2f deleted some code that I
previously believed was no longer needed. It's unlikely GOTO_STAT is
strictly necessary though, since these bugs only happened with messages.

This fix only papers over the underlying design flaw, however. viewmap
uses an RAII object (tiles_ui_control) to push a UI state onto a stack,
but the state switching in cgotoxy() does not preserve the previous UI
state. This causes X to lose its fullscreen state on webtiles after ! or
G is used.

--------------------------------------------------------------------------------
995a8c5b8e | Aidan Holm | 2018-08-09 23:08:36 +0800

Refactor menu code out of menu widget
This commit moves some of the more menu-UI-centric code out of the menu
widget and into wrapper widgets, with the eventual goal of making the
inner menu list widget embeddable in other UI layouts.

This also fixes a local tiles issue where menus would not rewrap from
two columns to one column when the window was expanded vertically, due
to the menu widget not being repositioned. THis bug was caused by menu
widgets being aligned to the top.

--------------------------------------------------------------------------------
18126d374a | Aidan Holm | 2018-08-09 23:08:36 +0800

Fix console scroll indicator formatting
Only show "top" when right against the top (show 0% for "very close to
the top"), and show " 0%" instead of "  %".

--------------------------------------------------------------------------------
c9748532e1 | advil | 2018-08-09 09:31:31 -0400

Fix license for win installer
(cherry picked from commit 1cde9558587f09c0e81b3dbc6590d43036449fb7)

--------------------------------------------------------------------------------
5c1dd30fd6 | advil | 2018-08-09 09:28:28 -0400

Try to fix build stuff with license (gammafunk)

--------------------------------------------------------------------------------
ceb0d1a988 | Aidan Holm | 2018-08-09 20:57:37 +0800

Fix ^, A screens not switching panes correctly (advil)
Pane-switching was being triggered twice, once for the keydown event and
a second time for the subsequent keypress event.

--------------------------------------------------------------------------------
0539d7493d | Aidan Holm | 2018-08-09 19:58:09 +0800

Fix XG not showing prompt on webtiles (NormalPerson7, #11599)

--------------------------------------------------------------------------------
4bf3f6cb21 | advil | 2018-08-08 21:32:42 -0400

Wrap power descriptions in ^ screen
(cherry picked from commit 0aedee734a0a934f6e24a4c4167c25ceaa0d0c19)

--------------------------------------------------------------------------------
33782329a5 | gammafunk | 2018-08-08 19:43:52 -0500

Simplify a Xom teleport function
This is only ever called for Xom's teleport effect now.

--------------------------------------------------------------------------------
4edfe68a0e | gammafunk | 2018-08-08 19:43:52 -0500

Rework the xp_by_level table to track vault origin instead of spawns
This table currently tracks proportions of monster XP and counts that
come from spawns vs normal level generation. This was useful when we
were determining how much XP spawns were generating in preparation for
removing spawns. Now that spawns have been removed from most branches,
this information isn't useful to track.

This commit revises the table to track monster XP/count from vaults vs
non-vaults. Orb spawns are excluded from that tallying, just as before.
This information will be useful for balance purposes, especially in
trunk if we make substantial changes involving vault placement.

There is save compat that tallies any existing monster XP/counts into
the non-vault category for transferred games, which is the best we can
do.

--------------------------------------------------------------------------------
69a49ca70a | gammafunk | 2018-08-08 19:43:52 -0500

Use a define for a prop key

--------------------------------------------------------------------------------
d13e5294dc | advil | 2018-08-08 16:26:21 -0400

Limit a redraw to the special case it is fixing (gammafunk)
The redraw in 2f468e5a and 2f468e5 is only needed for the case where an
item is evoked from inventory; limit it to that case. It's causing
display problems in targeting, and flickering in ttyrecs.

(I think the original commit probably did it in this order because it
was also redrawing the message window at the time.)

--------------------------------------------------------------------------------
30ddca75ac | advil | 2018-08-08 16:25:30 -0400

Remove some "now"s
These descriptions are used for the ^ screen, so "now" doesn't make
sense here.

--------------------------------------------------------------------------------
fa3a264274 | Aidan Holm | 2018-08-08 20:02:06 +0800

Prevent shop menu from using two columns (RoGGa, #11597)

--------------------------------------------------------------------------------
ae6112e33f | advil | 2018-08-07 12:47:12 -0400

Improve dig targeter for fulldebug builds
valid_aim is really supposed to be a lightweight call (and is treated
that way by callers); the initial implementation fired a beam for each
call via set_aim, which is not lightweight at all. On fulldebug builds,
this was also completely filling the log with beam spam. This commit
adds caching of the beam firings so that set_aim only needs to be called
once for each square in los.

--------------------------------------------------------------------------------
4ff6b1725d | advil | 2018-08-07 12:47:12 -0400

Make some webtiles _send... calls inert to reentry
This prevents certain ways of getting malformed json out of the webtiles
code. The main offender: if a _send... function can trigger an _mpr that
causes a more, then the original _send...'s json may be interleaved with
message json. This was happening with _send_map in extreme cases on the
dig targeter (which generates a very large amount of beam objects, each
of which is a dprf on fulldebug builds): generating beams would
eventually trigger a more, which would trigger a call to
TilesFramework::redraw, which would then trigger _send_map, which when
drawing cells in direction chooser mode would call valid_aim on the
direction chooser object, which would then generate a beam, which could
generate a more, etc. There are other issues here specific to the
particular buggy case which should be fixed directly, but even with this
sort of complicated interaction we don't want to ever send malformed
json, as the client can get in stuck states.

The _send... calls I have changed here should be basically fine if they
don't happen immediately as needed. I didn't change other _send...
calls, but one option there would be to add an ASSERT rather than make
them inert.

--------------------------------------------------------------------------------
bb52cfba15 | advil | 2018-08-07 12:47:12 -0400

Don't do extra map redraws in direction chooser
This replaces 2f468e5a82e4 with a hackier workaround but one that avoids
redrawing the map -- direction chooser has its own redraw code and using
the general redraw code here has awkward interactions with the direction
chooser (even setting aside the recursion bug that this will fix).

--------------------------------------------------------------------------------
dc02b5f656 | Aidan Holm | 2018-08-07 23:18:17 +0800

Fix monster abjuration description UI (NormalPerson7, #11589)
SPELL_ABJURATION, despite being present in the list of removed spells,
is still used by monsters, where it is automaticaly added to their
spellsets. This commit uses the Aura of Abjuration tile for this spell,
and makes it visible from ?/ as well.

--------------------------------------------------------------------------------
799c399c38 | advil | 2018-08-07 09:08:43 -0400

Fix Ru sacrifice health (joy1999 / 11549)
Missing break means extra int/MP-related bonuses.

--------------------------------------------------------------------------------
d9f7a49668 | advil | 2018-08-05 14:57:00 -0400

Update changelog for 0.21.2

--------------------------------------------------------------------------------
1b84a70579 | advil | 2018-08-05 14:46:06 -0400

Revert "Fix autotravel out of hell"
The search for target stairs needs to be done on a level excursion. I
think the best solution is to refactor the branch entry storing so that
it stores a particular stairs, not just a level, but I'm not going to
mess with this further until 0.23.

This reverts commit 1388f29e5435320083fdb751e8622ee18bf11a4e.

--------------------------------------------------------------------------------
c138b1c08c | advil | 2018-08-05 14:06:26 -0400

Move tiles initialization later
18642516775 attempted to move tiles initialization earlier, so that more
error conditions could be shown in the UI. However, this seems to result
in at least some init file options that are relevant for (web)tiles not
applying, such as font settings (Leszczynek).

--------------------------------------------------------------------------------
8441a8ab0d | Aidan Holm | 2018-08-05 18:21:00 +0800

Tidy up menu.h

--------------------------------------------------------------------------------
0e480394a1 | Aidan Holm | 2018-08-05 18:20:56 +0800

Fix some menus' wrapping behaviour
Using spaces for padding here; yuck.

--------------------------------------------------------------------------------
987bf7f4cc | Aidan Holm | 2018-08-05 18:20:56 +0800

Fix menu titles being off by 2px

--------------------------------------------------------------------------------
b66208cf4c | Aidan Holm | 2018-08-05 16:31:43 +0800

Add MF_NO_WRAP_ROWS menu option for tables
This menu option causes menu rows to be ellipsized instead of wrapped
when the menu width is too narrow to show the full content. This is
necessary to prevent the ability menu from breaking when showing
Makhleb's abilities with "hostile" suffixes.

A better fix for this and other menus would be to move column sizing
into the menu class, perhaps with the help of the ui::grid widget.

--------------------------------------------------------------------------------
e9112c395b | Aidan Holm | 2018-08-05 15:41:46 +0800

Trim ability menu entries

--------------------------------------------------------------------------------
8b50da72e5 | Aidan Holm | 2018-08-05 14:29:47 +0800

Fix OpenGL error on startup
A value of 1 should be used for GL_UNPACK_ALIGNMENT, since raw pixel
data is densely packed.

--------------------------------------------------------------------------------
73ad57d97a | Aidan Holm | 2018-08-05 14:29:47 +0800

Fix shop menu text when placing items outside (ShadedKnight, #11582)

--------------------------------------------------------------------------------
5b15854726 | Aidan Holm | 2018-08-05 14:29:47 +0800

Fix dancing weapons tile missing in xv (RoGGa, #11571)
With any luck, this won't horribly break other tiles...

--------------------------------------------------------------------------------
6d804a8b30 | advil | 2018-08-04 21:38:36 -0400

Unbrace

--------------------------------------------------------------------------------
07dd351015 | advil | 2018-08-04 21:30:49 -0400

Tweak conditions under which error ui is used
It is now not used on -builddb, and not necessarily used for tests or
scripts. This commit also prints errors to stderr on tests a bit more
aggressively, which reveals a ton of .des issues that might be worth
fixing (mostly shafts in a branch end; the fix for this might not be
printing that as an error).

--------------------------------------------------------------------------------
b0c4752f96 | advil | 2018-08-04 20:56:09 -0400

Update prebuilt
Hopefully there's nothing OS X-specific about this.

--------------------------------------------------------------------------------
1864251677 | advil | 2018-08-04 20:26:35 -0400

Various changes to smooth out / improve error messaging
Previously, except on windows console builds, error reporting on end(1,
...) calls was done mainly via stderr output. On windows console builds,
since there is no reliable way to view stderr output, there was an
ad-hoc error message screen that was used very inconsistently. I assume
that nothing comparable was done on tiles builds because it would have
been technically a bit tricky, especially for errors early on. There was
also a slightly more ad hoc thing with a similar effect that was used as
a backup on windows console, and also on DGL builds that have
DGL_PAUSE_AFTER_ERROR set (which I think is basically all of them).

The intent of this change is to make error reporting, especially for
errors on startup, more consistent across builds and more usable in
general. On all builds, if possible, an end(1, ...) call results in a
popup that shows the error message, and gives the user a chance to view
the entire current log. This change also ensures that the error message
gets logged, and is echoed to stderr if necessary. This now easy on
windows tiles builds because of the new UI system.

Unfortunately very early errors on tiles builds still can't be
displayed, because they happen too early for the tiles UI to be in
place. One specific problem is that there's no provision for trying to
use system fonts as a backup, so these changes won't yet deal with the
case where the data directory is missing on tiles builds. It will show
sensible errors for this case on console builds.  It will as print
sensible errors on all build targets if there's a failure during des
parsing, or database parsing in general.

This commit also includes specific improvements to handling of early
startup fail cases, including trying to validate the data directory a
bit more sensibly.

For now, none of this is used on a crash, because it wasn't clear to me
that it would be generally safe to use ui code; I think it might be
reasonable to try on intentional ASSERTs, but I'll leave that for later.

--------------------------------------------------------------------------------
6c27897552 | advil | 2018-08-04 19:27:53 -0400

Fix USE_DGAMELAUNCH builds (OS X-specific?)
One of these fixes is definitely OS X-specific, the include file change
might apply more broadly.

--------------------------------------------------------------------------------
1e3a2e4e2f | Aidan Holm | 2018-08-04 14:21:41 +0800

Remove most remaining CRT control code, take two (NormalPerson7)
This commit removes most of the CRT layer control code, since it is no
longer used. The few remaining user interfaces which use an emulated CRT
on webtiles now use the single function tiles_crt_popup RAII class,
which renders CRT output to a webtiles popup.

This also fixes an issue where the Xv screen was misbehaving on
webtiles.

--------------------------------------------------------------------------------
1388f29e54 | advil | 2018-08-03 12:42:09 -0400

Fix autotravel out of hell
Before, autotraveling out of hell while you are in it would incorrectly
use the stair destinations. What will actually happen if you take those
stairs is that it will use the value in brentry (set when you enter the
branch) to find a hell portal on the stored location, and put you there.
This change replicates this logic in the cross-level autotravel code.

Note that this change by itself wouldn't fix the bug addressed in the
previous commit (autotraveling into hell), because it is contingent on
the brentry stored value being updated -- that only happens when you
actually enter hell.

--------------------------------------------------------------------------------
cb77f54b9c | advil | 2018-08-03 12:42:09 -0400

Don't try shortcuts through hell when autotraveling
When you actually enter the vestibule, the branch entry point is set to
the portal you entered from, and exiting from any portal uses that entry
point rather than the actual destination of the portal in the vestibule.
However, each portal does have a particular destination scattered
throughout depths (and perhaps orc end), and autotravel was looking at
these destinations when trying to find cross-level routes. This
workaround simply doesn't consider routes through hell unless there is
explicitly a target in hell, or you are already in hell.

I also added some (disabled-by-default) debugging code that will
probably be useful in the future.

--------------------------------------------------------------------------------
40385e11ea | Aidan Holm | 2018-08-04 00:19:07 +0800

Add some monster spell tiles (NormalPerson7, RoGGa, #11580)
As well as adding some new tiles, this commit also makes all removed
spells use the error tile, uses the blink tile for some of the blink
variants, and removes the mass confusion tile.

--------------------------------------------------------------------------------
1be82e524d | advil | 2018-08-02 22:38:34 -0400

Missing #ifdef

--------------------------------------------------------------------------------
2ba9a4ce9b | advil | 2018-08-02 21:49:40 -0400

Don't send messages to webtiles until game has started
They were accidentally being sent too early. The new state variable is
because need_save (annoyingly doesn't have exactly the semantics I
needed for end-of-game messaging (it gets cleared on death or quitting).

--------------------------------------------------------------------------------
b4ac13e7e2 | advil | 2018-08-02 19:00:38 -0400

Replace the shadow startup logger with actual logging
This logger only registered rc file/options errors and one misc other
item-related error, and had a completely separate API. It also showed
errors at so odd of a time that I didn't even know this error dialogue
existed (during the new character chooser).

This commit replaces this semi-hidden logger with the regular logger,
and shows the error dialog at a much more useful time. As before, the
dialog will respect Options.suppress_startup_errors.

This commit shouldn't affect DGL-based webtiles builds, which report
options errors to the player after they start the game.

--------------------------------------------------------------------------------
9187234747 | advil | 2018-08-02 13:01:28 -0400

Move license to a more standard location in the repo
(and drop the australian spelling, sorry)

--------------------------------------------------------------------------------
71d24adf63 | advil | 2018-08-02 12:30:33 -0400

Generate Akashic Record in Golubria (gammafunk)
Replaces "plane papyrus" in  54af7f11.

--------------------------------------------------------------------------------
54af7f118b | advil | 2018-08-02 12:25:53 -0400

A laundry list of .des fixes
Mostly parsing errors for items that don't actually prevent game load
and didn't use to be visible anywhere.  All of these were revealed by
the recent changes to early-game logging.

--------------------------------------------------------------------------------
99b7a448db | advil | 2018-08-02 12:25:53 -0400

Fix an orphan in tutorial 1
This was causing a linebreak at 80x24 that put a more in the middle of
the keys diagram.

--------------------------------------------------------------------------------
9ab8a3764c | advil | 2018-08-02 12:25:53 -0400

Don't output in tutorial on des validation

--------------------------------------------------------------------------------
8546c30692 | advil | 2018-08-02 12:25:53 -0400

Add more early game logging
for diagnostic purposes. This won't be visible to the user unless they
look at ctrl-p in the main menu.

--------------------------------------------------------------------------------
ccba53861f | gammafunk | 2018-08-02 11:09:33 -0500

Reduce early numbers of two-headed ogres (minmay)
For most characters before Lair, two-headed ogres are difficult monsters
to kill and dangerous to engage in melee. This monster was substantially
buffed in 4a298068, yet its weighting was unadjusted except for
absorbing weight of hill giants when those were removed.

This commit switches the distribution shape of two-headed ogres to SEMI,
which gives them half weight on D:8-11, and also reduces their weight by
10%. These changes mean that about 1.5 two-headed ogres are seen
on-average before D:12, which is about half as many as generate on those
levels presently.

--------------------------------------------------------------------------------
f95e932aeb | gammafunk | 2018-08-02 11:09:33 -0500

Remove fire crabs from the Cloud Mage wizlab (qwqw)
Fire crabs aren't threatening in general by this depth, but a cloud type
has to have have fairly good impact in few turns on this map, since air
elementals can override them quickly. Miasma from death drakes and chaos
from apocalypse crabs are pretty good in this regard, and ghostly create
some nasty summons. Flame clouds, on the other hand, won't do too much
in a turn or two. This commit removes fire crabs from the map.

--------------------------------------------------------------------------------
6c29bc1420 | Aidan Holm | 2018-08-02 22:55:46 +0800

Improve acquirement UI (RoGGa, #11573)
Adds support for cancelling acquirement if the scroll type is already
known. Also adds the ability to show the shopping list, in a read-only
mode.

--------------------------------------------------------------------------------
b74a1d2a08 | Aidan Holm | 2018-08-02 22:55:46 +0800

Fix invalid read on crawl shutdown
UIRoot's destructor accesses the path of hovered widgets, so destruction
order (and thus declaration order) matters.

--------------------------------------------------------------------------------
1626fb9771 | Aidan Holm | 2018-08-02 20:44:55 +0800

Show gold when reading ?acq (RoGGa, #11573)

--------------------------------------------------------------------------------
346603ebdb | Aidan Holm | 2018-08-02 20:27:34 +0800

Fix webtiles scroller handling keypresses as keydowns (Xenobreeder)

--------------------------------------------------------------------------------
8c9a20f50e | advil | 2018-08-01 17:59:16 -0400

Do messaging for aux attacks that kill (G-Flex)
I think this call should be safe, but if it starts generating
DEAD_MONSTER messages, the string probably needs to be built before
inflict_damage.

--------------------------------------------------------------------------------
b09bef45d9 | Aidan Holm | 2018-08-01 23:22:02 +0800

Fix webtiles ability menu heading alignment

--------------------------------------------------------------------------------
91aedc13d6 | Aidan Holm | 2018-08-01 23:05:28 +0800

Fix webtiles not handling some scroll keys (thmsdrew, #11576)
Keypress events, such as are generated for text input, were not being
correctly delivered to scroller_handle_key(). This caused >, <, etc.
to be passed through directly to the underlying console UI, and caused
scrolling to happen on the server side. The space key was slightly
different; it seems to have been handled on both the client side
(causing an immediate scroll of one page), and then again on the server
side (causing a one-page scroll one RTT later).

--------------------------------------------------------------------------------
b05fda6edb | Aidan Holm | 2018-08-01 22:35:02 +0800

Add missing code
...oops

--------------------------------------------------------------------------------
4fad9abeb4 | Aidan Holm | 2018-08-01 22:13:40 +0800

Always scroll console menus down by a full page (Xenobreeder, #11507)
The issue was caused by the scroller widget automatically scrolling the
menu widget up again, so as to show as much content as possible.

This is fixed by adjusting the size requested by the menu widget,
according to how we scroll; this works because the scroller widget only
scrolls content fully into view when it is reallocated, which occurs
after the menu's size request changes.

One defect with this approach is that the size request is not adjusted
when the window (and thus the menu) is resized. This is pretty minor,
however, since console users rarely resize their terminals.

--------------------------------------------------------------------------------
a39355079e | Aidan Holm | 2018-08-01 22:13:40 +0800

Fix console menu footer not sticking to screen bottom
Unfortunately, rounding errors prevent flex_grow from being very useful;
the last pixel of a parent is never filled. This caused the menu footer
to stick to the line above the screen bottom.

--------------------------------------------------------------------------------
b809bb70e4 | advil | 2018-07-31 17:06:07 -0400

Update changelog for 0.21.2

--------------------------------------------------------------------------------
557ef7ec2e | gammafunk | 2018-07-31 10:30:38 -0500

Fix sdl2 contrib compilation for Linux cross-compiling to Windows.
Set execute permissions on an SDL2 build check script.

--------------------------------------------------------------------------------
5b5cf6b3f3 | Aidan Holm | 2018-07-31 23:24:13 +0800

Improve default menu more text (fakechuck, #11563)
Showing and hiding the menu "more" text based on whether there's more
content to scroll to isn't very useful on (web)tiles; that's what the
scrollbar indicates. It's still useful on console; this commit cleans up
the default text, and shows the current scroll position as a percentage.

Currently the more text is often hijacked to display a text-based UI;
it'd be nice if these uses were separated, but that's likely somewhat
tedious.

--------------------------------------------------------------------------------
bf19839e8a | Aidan Holm | 2018-07-31 23:24:13 +0800

Add wall jump tile

--------------------------------------------------------------------------------
8f018a2917 | advil | 2018-07-30 22:16:41 -0400

Wrap Gyre & Gimble code in a player check
I'm not sure why this is necessary, but the weapon() call appears to be
causing crashes, e.g.:
http://crawl.akrasiac.org/rawdata/ventolin/crash-ventolin-20180731-000054.txt

--------------------------------------------------------------------------------
94b1d5a922 | Kyle Rawlins | 2018-07-30 21:19:37 -0400

Add caveat to changelog entry for webtiles commands

--------------------------------------------------------------------------------
af6b6eebfc | advil | 2018-07-30 20:36:16 -0400

Add autofight commands to keybind.txt (11569)

--------------------------------------------------------------------------------
9a9f1d333b | advil | 2018-07-30 20:16:25 -0400

Remove unused book burning code (11562)

--------------------------------------------------------------------------------
030cbd369d | advil | 2018-07-30 20:16:25 -0400

Remove obsolete discussion of ghosts (11562)

--------------------------------------------------------------------------------
b94f922fbb | gammafunk | 2018-07-30 19:07:35 -0500

Update the changelog through 0.22-a0-900-g8945bfbd8a
[skip ci]

--------------------------------------------------------------------------------
8945bfbd8a | gammafunk | 2018-07-30 17:44:54 -0500

Adjust placement of Sonja and Urug
Sonja and Urug have placements that are inconsistent, like Sonja's
placing only in earlier Lair yet placing on D:13-15, and her placing on
Orc:$ yet not on Orc:1. This commit makes these uniques' placement more
consistent and also trims their placement in late Dungeon levels,
allowing them to place more in Lair and Orc instead.

--------------------------------------------------------------------------------
402804a59a | gammafunk | 2018-07-30 17:34:48 -0500

Cleanups for uniques.des (amalloy)
Clean up syntax to not refer to branch end levels by specific number,
using the `Branch:$` syntax instead, and wrap lines by using multiple
DEPTH statements.

--------------------------------------------------------------------------------
013a482ea1 | Alan Malloy | 2018-07-30 15:16:30 -0700

Add some more diagnostic info about markers to crashlogs

--------------------------------------------------------------------------------
1b7a381375 | gammafunk | 2018-07-30 13:56:42 -0500

Clean up the uniques DES file
Move Jorgrun to the section for uniques placing in Dungeon, since he no
longer places in Depths.

--------------------------------------------------------------------------------
68665ccbd9 | gammafunk | 2018-07-30 13:46:25 -0500

Fix a type in an integer comparison

--------------------------------------------------------------------------------
32a3b1c26b | gammafunk | 2018-07-30 13:46:26 -0500

Remove or reduce most down-weighting for ghost vaults
Many ghost vaults were down-weighted relative to other ghost vaults in a
way that was somewhat arbitrary. The down-weighted vaults didn't pose
threats that were particularly extreme, and some of the
normally-weighted vaults have proven quite capable of killing players
even if you factor in the difference in placement between vaults.

This commit makes most ghost vaults have normal weight, using
down-weighting only in pre-Lair dungeon where vaults place 8-tier
monsters. ebering_ghost_inner_flame and ebering_ghost_gozag get half
weight in these levels, since they place 8 spawns. ebering_ghost_xom
gets 0 weight on D:3-5, where a dancing weapon is worse than an even an
8 spawn, and half weight for D:6-7 where a dancing weapon is roughly a
high-rolling 8 spawn.

--------------------------------------------------------------------------------
501d55ff33 | gammafunk | 2018-07-30 13:39:45 -0500

Reduce Harold's casting frequency
He casts his spells a bit too frequently with his current spell weights,
so this commit lowers them by a third.

--------------------------------------------------------------------------------
833fe4c87f | gammafunk | 2018-07-30 13:39:45 -0500

Adjust Jorgrun's spells and move him earlier
Shatter is not a good monster spell, since it can often one-shot
Gargoyle players or players who happen to move into LOS in statue form.
There are enough LOS-wide unavoidable damage monster spells, and we
don't need another one just because it's based on a player spell or
because it can be resisted with flight. This commit removes Jorgrun's
Shatter spell, replacing it with Iron Shot. Iron shot is not the most
interesting spell for a unique to have, but it does give him an
always-usable source of ranged damage. I have a local branch testing out
monster Borg's Vile Clutch, but this is probably a silly idea. Monsters
with ranged constriction could be fun, so I'll test it and possibly try
replacing his Iron Shot with that spell in 0.23. Should this unlikely
event happen, any blame will deftly be redirected to mikee.

This commit also adjusts Jorgrun's placement to have him show up earlier
and on fewer levels. Previously he showed up on 30 levels, second only
to Donald. His new placement range is:

D:12-15, Orc, Elf:1-2, Snake:1-3, Shoals:1-3, Spider:1-3

His Petrify spell is more effective when players are less likely to have
high MR, so using these earlier levels will help his Petrify/LRD combo
be more relevant. Swamp is omitted since his Dig and LRD are not
effective there.

--------------------------------------------------------------------------------
e275911903 | advil | 2018-07-30 14:32:48 -0400

Rework xp_to_level_diff further
This better handles a few cases:
 * cases where there is less than one level to go
 * cases where the player is >xl 27

It is also much cleaner and more obvious about what it is doing.

Resolves #786

--------------------------------------------------------------------------------
5786b86ef4 | shieldal | 2018-07-30 14:32:48 -0400

Make the estimate of XLs to mindelay more accurate (11490)
When a player is not at a whole number xp level, the previous code
didn't properly handle the fractional level already attained.

--------------------------------------------------------------------------------
962055f98e | Alan Malloy | 2018-07-30 10:55:31 -0700

Explain why 120 is the default randomness range for colours

--------------------------------------------------------------------------------
725e01084e | Edgar A. Bering IV | 2018-07-30 10:53:10 -0700

Recolour awoken forests in console.
Make awoken forests an animated RED/LIGHTRED (angry trees) so that the
effect stands out to the player.

Old behavior is awoken forests are an animated GREEN/LIGHTGREEN
alternation. This sticks out a bit in swamp, where trees are
GREEN/BROWN, but is still not as dramatic as the berserk faces now in
tiles. It is also much less noticable outside of the swamp (some lair
ends in particular) where trees are GREEN/LIGHTGREEN to begin with.

--------------------------------------------------------------------------------
1f7d957a39 | Edgar A. Bering IV | 2018-07-30 10:53:10 -0700

Turn a magic number into a class member
element_colour_calc and random_element_colour_calc were using a magic
number of 120 for the random max, requiring the total weight for random
colours to add up to 120. This moves the weight to a member, which is
default initialized to 120 to work with the existing code, and is
initialized to the total weight by random_element_colour_calc's
constructor so that elemental colours are more robust in the future.

As a consequence, Wu Jian's console colours no longer have an extraneous
and un-indended GREEN, which was the previous default for unused weight.

--------------------------------------------------------------------------------
3327843f9c | Edgar A. Bering IV | 2018-07-30 09:27:04 -0700

Kung Fu with swordchucks (11402)
Allow Gyre and Gimble to double-attack in Wu Jian martial attacks.

(Implementation introduces the behavior that a player who gets the
Cleave status from Xom wrath while worshipping Wu and using G&G will be
able to cleave their Wu attacks. Handling this edge case correctly would
be a huge pain.)

--------------------------------------------------------------------------------
33a98d2e14 | advil | 2018-07-30 12:15:47 -0400

Fix messaging with cloud of scarf and qazlal (11500)
This incorporates elements of both #799 and #804. Though apparently both
MarvinPA and amalloy were against it for reasons I don't fully
understand (see note in #804), I think it is preferable to show a
message when you wear this scarf when it is completely useless. It's not
exactly a lot of message spam, since this is an uncommon item, and this
kind of information is useful to new players.

Resolves #799, resolves #804

--------------------------------------------------------------------------------
6a91a3161e | pubby | 2018-07-30 11:00:25 -0400

Remove hair/beard layer from Ba, Gn, VS, Gr
Displaying hair on these tiles was unintentional.

Ba for example is drawn to have 4 eyes, but the default hair covers up
the top two. That, and considering the fact that frogs aren't hairy IRL
makes it pretty clear that displaying hair was an accident, not a
deliberate artistic decision.

Resolves #813

--------------------------------------------------------------------------------
42de1885ff | dplusplus | 2018-07-30 10:19:26 -0400

Several fixes for hints mode
 * add newlines for hints_describe_item()
 * remove redundant periods / fix typos
 * fix hint_throw_stuff (when you don't have it)
 * add untag call to the healing reminder

Resolves #766

--------------------------------------------------------------------------------
fafb374d8d | Pekkekke | 2018-07-30 07:11:25 -0700

Remove reference to 'p'raying
Replace 'p'raying on altar with "praying with '>' "
--------------------------------------------------------------------------------
aa5e837280 | Pekkekke | 2018-07-30 07:11:25 -0700

Remove references to 'p'raying at altars
Replace 'p'raying instances with "praying with >"
--------------------------------------------------------------------------------
05864157b1 | Nikolai Lavsky | 2018-07-30 07:10:39 -0700

Update descriptions of forms
This commit updates descriptions of all forms that can use wands since
7d43e34acb. It also fixes Fungus form's description: players in that
form can't wear hats or helmets (commit 7346924bb0).

--------------------------------------------------------------------------------
b7b0c8bd75 | advil | 2018-07-29 22:50:09 -0400

Update ?? screen and hints mode for spell library (11561)
This is just a quick pass, and probably needs some more work; in
particular the hints mode text for spellcasting is now kind of buried in
the spell library help screen and needs to be brought out a bit more.

It doesn't seem like ?? really got updated for floor actions either, so
I took that into account on my rearrangement.

--------------------------------------------------------------------------------
615c57abe7 | Aidan Holm | 2018-07-29 23:44:02 +0800

Fix weapon/map choice menus becoming unresponsive
Failing to clear the menus' selected items after retrieving them caused
the help menu item to still be selected after the help popup was
dismissed; this prevented further menu item activations, since the code
explicitly does nothing in such a situation. startup.cc was not buggy,
but the change makes this code more consistent.

--------------------------------------------------------------------------------
80e71c4765 | Aidan Holm | 2018-07-29 13:44:05 +0800

Fix ui:scroller mousewheel direction (advil)

--------------------------------------------------------------------------------
5c4e1afb51 | Aidan Holm | 2018-07-28 23:19:57 +0800

Disable PgUp/PgDn on startup menu

--------------------------------------------------------------------------------
997158aaab | Aidan Holm | 2018-07-28 20:44:06 +0800

Indent nested popups on local tiles

--------------------------------------------------------------------------------
ebc8d6144c | Aidan Holm | 2018-07-28 20:26:38 +0800

Remove colours from webtiles monster spell lists
In future it'd be nice to colour code these, but the current colour
coding for monster descriptions is just wrong. The main bug this fixes
is showing monster spells in red if you worship Trog.

--------------------------------------------------------------------------------
9cf2c4cdec | Aidan Holm | 2018-07-28 17:46:06 +0800

Update webtiles UI scrollbar skin and positioning
Moves the scrollbar outside the scrolled content and against the right
popup margin, similar to the local tiles positioning. This is done by
adding a -20px margin on the outer scroller container, which matches the
20px padding of the popup boxes. This negative margin is offset by a
padding set in scroller.js; necessary, because simplebar.js changes the
padding set based on the current browser.

In addition to the positioning changes, we also style the scrollbar
handle with the new skin. We also give it wide-but-invisible borders, so
that it's easier to click on and drag, and a nice cursor icon.

This is unfortunately fairly brittle, and there's some browser
differences which make this code more complicated than it should be.
Webkit-based browsers do not seem to force inline-grid children to
shrink to fit a smaller container. To hack around this, we set the
height of all paneset children with every browser resize event. This is
mostly an issue only on the ^ UI.

There are a few minor bugs. The first is that vertical scrollbars do not
appear immediately when a scrollable popup opens, even when content can
be scrolled. This seems to be due to building the scroller UI with
simplebar.js before the popup is added to the main DOM hierarchy.
There are also some minor glitches when changing the zoom level while the
^ UI is opened.

--------------------------------------------------------------------------------
5fbd67152c | Aidan Holm | 2018-07-28 14:39:03 +0800

Update popup UI skin
This commit removes the image-based background for UI popups, and
replaces it with a border using solid colours. This simplifies the
implementation on webtiles significantly. The border colour is changed
to match the scrollbar colour.

This commit also unifies how popups are aligned within the screen for
webtiles and local tiles, with some changes for both. When a game
has started, popups on local tiles are now aligned top-centre and
offset vertically according to their nesting depth, matching the popup
alignment on webtiles. When a game is not in progress, however, popups
on both platforms are aligned to the centre, and there is no vertical
offset to indicate nesting level.

In future, it'd be nice to a) deduplicate all the different places where
the centredness of the popup is sent to webtiles, and b) query whether
the popup is centred from the popup widget itself, allowing for finer
control.

--------------------------------------------------------------------------------
6a232ddc29 | Aidan Holm | 2018-07-28 14:32:34 +0800

Fix help UI's custom home-key on webtiles

--------------------------------------------------------------------------------
51b3339b59 | Aidan Holm | 2018-07-28 14:17:18 +0800

Fix webtiles input dialog expanding on chrome

--------------------------------------------------------------------------------
d4c7e9b47c | Aidan Holm | 2018-07-28 13:59:48 +0800

Fix FS_EASY_EXIT preventing scrolling (ebering)

--------------------------------------------------------------------------------
4d0222ce3e | Aidan Holm | 2018-07-28 13:58:36 +0800

Don't indent menu title if tile_display_mode != tiles

--------------------------------------------------------------------------------
6f80fdb51e | Aidan Holm | 2018-07-28 13:47:04 +0800

Set webtiles popup backgrounds to fg7 (Ge0ff)

--------------------------------------------------------------------------------
78736fa2c8 | Aidan Holm | 2018-07-28 13:29:07 +0800

Fix popup tiles not showing in tile_display_mode=tiles (Ge0ff)
Turns out jQuery's data() does not set the HTML data attribute.

--------------------------------------------------------------------------------
eee50340df | advil | 2018-07-27 17:27:24 -0400

Further memorization layout tweaks
692e0977ac3 left room for a sorting toggle that I haven't finished
implementing yet, but I don't think I'll finish it before feature
freeze, so this commit readjusts things to be a bit more even-spaced.

--------------------------------------------------------------------------------
16ba858c1f | advil | 2018-07-27 17:00:53 -0400

Ensure that clearing a menu triggers a layout
In local tiles, a pack_buffers call is necessary to relayout a menu, but
simply calling deleteAll(items) doesn't set m_needs_layout (which
triggers the sequence of events that leads to pack_buffers). Console
works differently for reasons I haven't examined closely (this bug
didn't affect it).  This commit calls _queue_allocation on clear() in
order to have a way of clearing the menu and triggering a layout. This
may pop up in other menus since the deleteAll paradigm is used in a
bunch of places.

This was manifesting for the memorize menu for the case where the menu
was cleared during update_entries but no items were added to it.

--------------------------------------------------------------------------------
692e0977ac | advil | 2018-07-27 14:11:03 -0400

Rework memorize menu layout
Slightly more organized, uses the same style of formatting as the skill
menu. And fix a few other details.

--------------------------------------------------------------------------------
005b4bd228 | advil | 2018-07-27 12:30:10 -0400

Make _sort_mem_spells arugments const
Also quiet a warning.

--------------------------------------------------------------------------------
98e63d6bbd | advil | 2018-07-27 12:17:40 -0400

Set expand_v on memorize menu
This is a quick change to keep the status lines in the same place when
searching, rather than dynamically resizing the menu. Possibly the max
sizes could use more tweaking (it might make sense to set the max size
based on the initial spell list, since it can never grow). Also, this
doesn't work on webtiles; resizing on search looked the worst on console
so that's probably ok.

--------------------------------------------------------------------------------
3db09340a7 | advil | 2018-07-27 11:46:18 -0400

Add MF_NOWRAP to spell menu
Wrapping behavior doesn't seem desireable here. N.b. the behavior
without this set was to wrap on pgdn but not on pgup, which actually
seems like it could have been a bug?

--------------------------------------------------------------------------------
a17920cad9 | advil | 2018-07-27 11:46:18 -0400

Optimize memorize menu a bit
I was getting noticeable lag on opening the spell menu, and profiling
revealed that sorting was having a huge impact, because the sort
function collected all sorts of spell information each time it was
called. The main change of this commit is to precalculate spell
information for each spell in the menu, since they won't change while
memorizing.  This speeds things up quite a bit for me (bringing things
down from ~200ms to ~50ms for a big memorize list). The biggest offender
was repeated calls of failure_rate_to_int(raw_spell_fell(...)). This may
be exaggerated in debug mode since part of the hit was that each call of
that does a dprf, but that wasn't the whole story in the profiling data,
so I expect this will help in non-debug builds as well.

I also hit a few minor slower points including the status line
construction from 985ef60fe1445, and did a bunch of minor modernization
of the c++ style in the memorize menu code in general.

--------------------------------------------------------------------------------
47ae1cb344 | gammafunk | 2018-07-27 08:54:32 -0500

Prevent ordering allies while confused (RoGGa, ebering, 11505)
While confused, don't allow issuing any 't' commands other than shout.
Also use a more appropriate cancellation message instead of one about
being too berserked/confused. The prompt indicates that any key other
than the one for shout will cancel the menu. Closes #826.

--------------------------------------------------------------------------------
985ef60fe1 | advil | 2018-07-26 22:14:46 -0400

Add a second status line + more information to spell menu
Now this shows the current search text, if any. I also added explicit
mention of ctrl-f to the status lines. (Multiple "more" lines is really
easy to do now!)

--------------------------------------------------------------------------------
92302f4650 | advil | 2018-07-26 18:50:11 -0400

Have hidden count in memorize menu respect search

--------------------------------------------------------------------------------
0a7940b993 | advil | 2018-07-26 18:28:24 -0400

Have esc with spell search clear search
Not sure if I'll get pushback on this, since I haven't seen any explicit
complaints aside from my own, but my expectation from search boxes in
other programs is that esc will clear the search, not immediately exit
the menu.

--------------------------------------------------------------------------------
415d086bb8 | advil | 2018-07-26 14:04:23 -0400

Notify user if there were errors during initialization
This will help with things like the white tile issue: now there should
be opengl errors on startup and this will tell the user about them, so
that they user will have some better idea of who or what to blame.

Possibly it would be better to force a popup with the errors, but this
is a bit more work and the replay_messages ui would need some tweaking
for that use case (I first implemented it this way, but it was too
cryptic), so I'm saving that for a later version.

--------------------------------------------------------------------------------
f11f912377 | advil | 2018-07-26 12:27:18 -0400

Error message for bad tile_display_mode
I get this wrong 90% of the time.

--------------------------------------------------------------------------------
cc99ad95ac | advil | 2018-07-26 12:27:18 -0400

Log OpenGL errors during texture load/initialization
Now that there's a way of viewing these errors, this can be used to help
troubleshoot graphics problems.

--------------------------------------------------------------------------------
4bbc76fb7f | Aidan Holm | 2018-07-26 21:32:36 +0800

Fix incorrect item description HTML (rigrig)

--------------------------------------------------------------------------------
1aa6ef2e59 | Aidan Holm | 2018-07-26 21:32:36 +0800

Move num_children() to ui::Container

--------------------------------------------------------------------------------
aabaeaee60 | Aidan Holm | 2018-07-26 21:32:36 +0800

Fix tiles in popups with tile_display_mode=glyph (rigrig, #11564)

--------------------------------------------------------------------------------
b5684aae0e | gammafunk | 2018-07-26 04:57:44 -0500

Swap Fedhas' 1* and 2* abilities (hellmonk)
Fedhas current 1* ability, Evolution, is one of the strongest god
abilities in the game. While Fedhas isn't the only god that provides
very strong abilities early on, it's one of the gods most in need of a
rework. The most dominant Fedhas abilities create permanent allies that
require a great deal of luring to use most effectively. Until we can
rework the god, it's nice to make some balance tweaks so that players
don't feel so strongly compelled to worship Fedhas in order to win.

This commit makes Sunlight the 1* ability and Evolution the 2* ability.
Sunlight is a useful early accuracy boost that doesn't cost piety, hence
is reasonable for that piety slot. Evolution remains just as good as it
was before and will be an outstanding 2* ability.

--------------------------------------------------------------------------------
e9e22a0bd7 | advil | 2018-07-25 21:08:58 -0400

Revert "Pad textures to powers of two (aidanh)"
This reverts commit 996691b0ab01f384f410aae753aa415f2e413e66.

Textures are padded on load in SDLWrapper::load_texture.

--------------------------------------------------------------------------------
f979ea2f5f | advil | 2018-07-25 20:21:52 -0400

Add some error messages if the device texture size is too small
This will at least be a placeholder for a better solution. It's probably
extremely rare for this to come up, and virtualbox might be the only
case we'll see any time soon.

--------------------------------------------------------------------------------
1d8e3a060f | advil | 2018-07-25 19:39:41 -0400

Allow _mpr to work much earlier during initialization
There was no real technical reason that logging needed to wait to at
least be recorded to the buffer; it still can't be displayed until
io_inited is true.  These calls should work anywhere, now, since the
buffer is static.

--------------------------------------------------------------------------------
8bfc27d406 | advil | 2018-07-25 16:48:28 -0400

Fix some autoexplore logic (RoGGa / elliptic)

--------------------------------------------------------------------------------
76c094e6ee | advil | 2018-07-25 16:29:57 -0400

More more suppression
Possibly, more prompts should just be entirely suppressed except when
in a game?

--------------------------------------------------------------------------------
5c56a3ff98 | advil | 2018-07-25 16:09:47 -0400

Make that "Last save" dprf at the main menu more useful
Not even sure this was intended to happen at the main menu, but it's
kind of useless if you have a lot of saves without the names.

--------------------------------------------------------------------------------
7d4b68bcec | advil | 2018-07-25 15:58:54 -0400

Allow replay_messages from main menu with ctrl-p
This addresses a long-standing complaint of mine: it's a pain to see
debug messages that happen before game start. With the new UI system,
this is the kind of thing that's trivial to add. For regular players,
this will mainly be in case some error messages show up, so it's not
documented in the menu interface.

This commit also tries to more aggressively avoid more prompts during
game startup; for those of us with 50 save games running debug builds,
this makes startup a bit smoother -- what information you could get out
of this can now be seen in ctrl-p.

--------------------------------------------------------------------------------
2bb02dfb1e | advil | 2018-07-25 15:41:43 -0400

Remove debug code

--------------------------------------------------------------------------------
c7f5460c27 | advil | 2018-07-25 15:31:13 -0400

Don't drop the last 1-2 lines in replay_messages
This fixes two bugs in replay_messages:
* introduced in a02aae867cf82, the last line of the message log wasn't
  terminated with a `\n`, and so didn't show. (Should this also be fixed
  in formatted_scroller?)
* a more long-standing issue was that replay_messages didn't guarantee
  that the last message was flushed, so short recent messages wouldn't
  get shown.

I'm not sure how long this second bug was around, but between the two of
them up to 2 lines could be dropped, which made the issue more
noticeable.

--------------------------------------------------------------------------------
996691b0ab | advil | 2018-07-25 11:16:41 -0400

Pad textures to powers of two (aidanh)
This ensures that the texture height is always a power of two, leaving
the width still fixed at 1024. This may address issues on some older
hardware/drivers (and potentially VMs) where textures don't load
properly.

If *square* power-of-two textures are needed that will be a bit more
effort, since the 1024 width seems to be a bit hard-coded into things.

--------------------------------------------------------------------------------
a3c446c602 | gammafunk | 2018-07-25 09:54:13 -0500

Merge pull request #822 from nlavsky/diths-fiery-randarts
Allow naming randart fiery weapons after Dithmenos
--------------------------------------------------------------------------------
ec0ffd4cd7 | Kyle Rawlins | 2018-07-25 10:27:42 -0400

clarify what is recommended for windows builds (gammafunk)
[skip ci]
--------------------------------------------------------------------------------
8a29c8c6af | Kyle Rawlins | 2018-07-25 09:33:37 -0400

Further tweaks to MSYS2 instructions in INSTALL.txt
[skip ci]
--------------------------------------------------------------------------------
05cf915bf0 | gammafunk | 2018-07-24 23:07:45 -0500

checkwhite INSTALL.txt

--------------------------------------------------------------------------------
8522bf8125 | advil | 2018-07-24 15:30:05 -0400

Update submodules to improve windows compilation
This has another stab at the xinput issue, to deal with further changes
(apparently) in MSYS2.

--------------------------------------------------------------------------------
4a1e0138fc | Kyle Rawlins | 2018-07-24 13:00:03 -0400

Improve MSYS2 installation instructions
Previously, this made the reader skip around to various other parts of

this document and other web pages; this commit tries to lay everything

out in steps.



[skip ci]
--------------------------------------------------------------------------------
6c6de77f21 | gammafunk | 2018-07-24 03:05:54 -0500

Remove rC- and rF- from Maxwell's Thermic Engine
This weapon has damage roughly similar to a +9 Freezing or Flaming
double sword, considering how much its enchantment fluctuates during a
fight. Assuming you can sustain its highest enchantment and the target
has neither rC nor rF, it's the same damage as +14 speed double sword.
This is outstanding, but not to the point where the item needs something
like negative resistances or other drawbacks to balance it. The negative
resistances also aren't an interesting trade-off on a swappable weapon.

--------------------------------------------------------------------------------
f552829d87 | gammafunk | 2018-07-24 01:29:45 -0500

Fix quick blade weapon definitions in ghost vault lua

--------------------------------------------------------------------------------
1e17ac6247 | gammafunk | 2018-07-24 01:15:17 -0500

Remove an unused method

--------------------------------------------------------------------------------
dfd0697590 | gammafunk | 2018-07-24 01:15:17 -0500

Update the Vampire's Tooth description
Closes #825.

--------------------------------------------------------------------------------
b41cb9a525 | Edgar A. Bering IV | 2018-07-24 00:43:22 -0500

Buff Vampire's tooth (gammafunk)
The gimmick (100% of damage comes as vampiric heal) only works on a
weapon that's able to do some damage. This patch changes it from a +4
dagger to a +12 quickblade. The quick attack and slaying give it an
average damage less than a +4 electric brand quick blade, but enough
healing to be similar to a spellpower 100 vampiric draining cast against
targets that aren't too heavily armoured.

--------------------------------------------------------------------------------
9b9925d0b1 | Edgar A. Bering IV | 2018-07-24 00:43:22 -0500

Constify attack::using_weapon()
Guarantee that using_weapon() is a const boolean check for a given
attack.

--------------------------------------------------------------------------------
a28c36faad | Aidan Holm | 2018-07-24 09:14:22 +0800

Fix keyhelp menus not responding to listed bindings (#11559)

--------------------------------------------------------------------------------
1ca9aab89c | Alan Malloy | 2018-07-23 12:48:40 -0700

Clarify linespint doesn't require 15 runes (advil)

--------------------------------------------------------------------------------
569b9d775d | Alan Malloy | 2018-07-23 11:19:22 -0700

Improve manual's description of sprint modes
Mostly just some copy-editing, and a couple points of added flavour since we're 
making up lore here anyway.
--------------------------------------------------------------------------------
6252f73197 | advil | 2018-07-23 13:43:19 -0400

Draft of a manual appendix describing sprint modes
Some of these are pretty under-documented / under-described, so
this may be missing some details.

--------------------------------------------------------------------------------
ebb9c88383 | Aidan Holm | 2018-07-23 23:46:21 +0800

Fix hints mode UI printing formatting tags (RoGGa, #11539)

--------------------------------------------------------------------------------
ee55829920 | Aidan Holm | 2018-07-23 23:35:00 +0800

Remove useless get_number_of_cols()
The stealth bar is in the first column, which is 20 characters wide.

--------------------------------------------------------------------------------
978c4e9634 | Aidan Holm | 2018-07-23 23:34:12 +0800

Fix long artefact text wrapping on %-screen (kitchen_ace, #11533)

--------------------------------------------------------------------------------
731016a342 | Aidan Holm | 2018-07-23 22:05:42 +0800

Fix truncated spell descriptions (Pekkekke, #11556)

--------------------------------------------------------------------------------
6c6d8f1cef | advil | 2018-07-23 09:45:35 -0400

Actually check for ghosts taking stairs when updating annotations
Addendum to b939540, fixes 11558. This still leads to a case where the
annotations get collapsed if one ghost follows you to a level where
another ghost of the same name already exists, but I'm not sure that is
fixable without giving ghosts unique names.

--------------------------------------------------------------------------------
4ee7205ff0 | Aidan Holm | 2018-07-23 21:40:08 +0800

Fix webtiles popup background glitch with non-100% zoom
Turns out modern browsers suffer from rounding errors when using CSS
sprites. Data URIs help, but aren't a complete fix.

The complete fix: popup.png is 69x69px, but instead of directly
slicing it into 23x23px parts, each part is 25px by 25px, and the
side and centre pieces overlap the corners, due to their HTML order.
This overlap neatly covers a slew of nasty rendering glitches on Chrome.

--------------------------------------------------------------------------------
b582571b5a | Edgar A. Bering IV | 2018-07-23 10:06:16 +0800

Don't re-check forgotten map squares (10461)
Prevents annotations for runed doors and transporters from stacking up.

--------------------------------------------------------------------------------
8125a50190 | Aidan Holm | 2018-07-23 09:25:46 +0800

Fix segfault after viewing help from menu (josh, #11553)
These extra lines were holdovers from the previous menu implementations,
which needed to explicitly re-render after showing the help screen and
used reentrancy to do so. This caused an additional UI layer to be
pushed for every time the help was opened; these were not popped when
end() was called, because the UI framework does not handle exceptions
(yet?).

--------------------------------------------------------------------------------
f2cf4e3eae | Aidan Holm | 2018-07-23 09:15:55 +0800

Fix use of uninitialized memory in help (josh)

--------------------------------------------------------------------------------
4c1e2d5471 | advil | 2018-07-22 12:31:00 -0400

Fix further issues with extra init/exits in SkillMenu (Gorice)
Bugs 11527, 11549. This class really needs to be rewritten with a proper
constructor etc. Thanks to Gorice for the diagnosis of the bug in
https://crawl.develz.org/mantis/view.php?id=11527&nbn=1#bugnotes.

--------------------------------------------------------------------------------
bf238096ae | gammafunk | 2018-07-22 04:58:07 -0500

Adjust Harold's attack, armour, spells, and depth (mikee)
Harold doesn't post much of a threat in his current incarnation. In
later dungeon and lair levels he has a difficult time doing appreciable
damage. Additionally his spell set of bolt of fire and emergency blink
don't particularly match well with this bounty hunter theme.

This commit increases Harold's base attack damage by 75%, and gives him
better armour on-average. Additionally he loses Bolt of Fire and
Emergency Blink, gaining Harpoon Shot (currently only seen on swamp
worms and iron giants) and Sentinel's Mark. Sentinel's Mark should make
Harold more of a complicating factor where he appears. Harpoon Shot
prevents player escape, allowing him to put that improved melee to more
use, and restores a bit of ranged damage from losing Bolt of Fire.
Harpoon loses Emergency Blink since it plays poorly with Harpoon Shot,
and since Blink isn't an especially effective spell now that Harold
mostly does melee damage.

Finally, Harold's placement has been moved up so that he places on
D:7-11, Lair:1-2, and Orc:1 (formerly on D:10-12, Orc:1-2, Lair:1-4). He
should be more effective in those earlier Dungeon levels, and D:7-9
happen to have some of the lowest unique placement already.

--------------------------------------------------------------------------------
93d14410fa | gammafunk | 2018-07-22 04:39:37 -0500

Hopefully fix menu scrolling in WebTiles (aidanh, robotcentaur, 11551)
If I were to guess why this change fixes things, I'd say the event
callback for scrolling synchronization needs to not try to handle events
for UI objects like menus that send their own sychronization messages.
I could be totally wrong...I'm trying to stay ignorant of most of
Javascript for as long as I can...

--------------------------------------------------------------------------------
cdea45354b | Aidan Holm | 2018-07-22 14:07:01 +0800

Revert "Remove most remaining CRT control code"
This commit caused the main game UI to be displayed on webtiles before
starting a game, and also caused the end-game hiscores list to be
invisible. Don't have time to debug properly, so a quick revert is in
order.

This reverts commit 91fb4304bbf47b9154f8e27076c55e3f2d47abdd.

--------------------------------------------------------------------------------
7fc7157da6 | Aidan Holm | 2018-07-22 13:04:19 +0800

Add webtiles client-side scrolling
This commit adds client-side scrolling to all HTML UI layouts, including
formatted scrollers.

--------------------------------------------------------------------------------
6ffe099ff9 | Aidan Holm | 2018-07-22 13:04:19 +0800

Add server -> client scroller synchronization
This commit sends all client-side scrollers' scroll events to webtiles
clients. The webtiles client responds by scrolling the scroller found
within the top popup, if there is only one such scroller.

With this change, formatted scrollers now send two scroll update
messages: the pre-existing scroll update from UIHookedScroller, and this
newly-added update. The former currently provides client -> server
synchronization (currently lacking for other scrollers), and so webtiles
clients will ignore new scroll messages if the top popup is a formatted
scroller.

There are race conditions here, since scroll update messages do not
identify their target widget.

--------------------------------------------------------------------------------
fba9adeb19 | Aidan Holm | 2018-07-22 13:04:19 +0800

Improve webtiles scroller line-height detection
The previous method of prepending a hidden span had a number of issues,
chief of which was that it recreated all scroller contents by converting
them to HTML and reparsing. This erased all canvas element contents.

--------------------------------------------------------------------------------
a2e7eb6d91 | Aidan Holm | 2018-07-22 13:04:19 +0800

Fix incorrect JS event propagation handling

--------------------------------------------------------------------------------
e82d12a2c2 | Aidan Holm | 2018-07-22 13:04:19 +0800

Fix webtiles menu always handling scroll keys

--------------------------------------------------------------------------------
d6d8abeff0 | advil | 2018-07-21 17:49:56 -0400

Also don't let species welcome text be selected (11547)

--------------------------------------------------------------------------------
a814211745 | advil | 2018-07-21 17:34:21 -0400

Don't let gamemode menu welcome text be selectable (11547)

--------------------------------------------------------------------------------
01cda4c5be | advil | 2018-07-21 17:34:21 -0400

Remove accidental extra line, formatting, unbrace

--------------------------------------------------------------------------------
058c00fc3b | Aidan Holm | 2018-07-21 13:01:37 +0800

Don't render UI layers under direction chooser (stoneychips, #11525)
This fixes a webtiles bug where evoking items from their inventory item
description would lead to the inventory menu obscuring the direction
chooser. This also fixes a secondary bug on local tiles where evoking
items from their inventory item description and then pressing v to
describe a cell would cause the inventory menu to appear under the
description popup.

Briefly, there are two main render loops for local tiles: the directn
loop (which does not render UI popups), and the new UI loop (which does
render the background direction chooser view). Effectively, either all
popups or no popups are rendered, depending on which render loop is
running on the top of the stack (they can be nested). For xv, that's the
UI loop on top of the directn loop; for inv -> item -> evoke, that's the
directn loop on top of the UI loop.

This approach doesn't work on webtiles because it uses HTML to render
the UI, and so the render loops are effectively "running in parallel".
It was buggy on local tiles when describing cells after evoking an item
from the inventory. The fix is to add "cutoff points" which prevent the
rendering of any UI layers already pushed. Local UI and tileweb have
separate UI stacks, and so have their own cutoff point API, in case
non-UI code modifies the tileweb UI stack in the future.

The addition of the cutoff point to show_map() is currently unnecessary,
since there is currently no way to show the map from a popup view, but
this might change in the future.

--------------------------------------------------------------------------------
88f5e907b7 | advil | 2018-07-20 17:59:43 -0400

Add net size check to Bai Suzhen (Rast)

--------------------------------------------------------------------------------
a501810d5a | Aidan Holm | 2018-07-21 02:26:42 +0800

Revert "Fix webtiles popups obscuring direction chooser (stoneychips, #11525)"
This broke xv.

This reverts commit f1e831c450af8d9018c9b25eaee77c473c3c0471.

--------------------------------------------------------------------------------
b0d9f32888 | Aidan Holm | 2018-07-20 23:13:11 +0800

Improve scroll shade appearance (pedant, #11520)
The items obscured by scroll shade gradients were too easily
misinterpreted as being greyed-out. This commit fixes that by using a
much narrower gradient band. This effect was compounded on webtiles
where the gradient was darker: the webtiles CSS has been changed to
match the local tiles colours.

The gradient band was originally taller to indicate the presence of
additional content beyond the edge of the scroller viewport, but with
the addition of scrollbars to (web)tiles, this is less important.

--------------------------------------------------------------------------------
3b2440b24d | Aidan Holm | 2018-07-20 23:13:08 +0800

Fix 'hostile' text truncated on ability screen (pedant, #11520)
Unfortunately this introduces a separate minor bug where ability menu
items can wrap (incorrectly), due to their length.

--------------------------------------------------------------------------------
2f468e5a82 | Aidan Holm | 2018-07-20 22:33:00 +0800

Work around direction-chooser console rendering bug
This rendering bug occurs when viewing an item's description via the
inventory, and then evoking it: the stats sidebar of the main dungeon
view UI is not re-rendered, and instead shows a portion of the item
description text.

I don't feel comfortable calling this a fix, because it's rather
ham-fisted. It's positioned after the clear_messages() call to avoid
causing flicker in the messages panel.

--------------------------------------------------------------------------------
5521402004 | advil | 2018-07-20 10:22:10 -0400

Rename ring of loudness to ring of attention
This resolves a long-standing flavor vs. gameplay mismatch, since the
ring of loudness doesn't actually make any noise.

--------------------------------------------------------------------------------
04153b2426 | Aidan Holm | 2018-07-20 22:08:28 +0800

Fix webtiles compilation
See commit 91fb4304bb.

--------------------------------------------------------------------------------
6a45e17bfc | Aidan Holm | 2018-07-20 21:40:27 +0800

Revert "Hack out small-screen-size panic"
A panic is preferable to crashes caused by writing outside of the
terminal viewport, at least until existing code is fully converted to
use the new UI framework (which clips all output and so doesn't have
this problem).

This reverts commit 67b9c875503ac7559665f8a7605d06c5d3259c1d.

--------------------------------------------------------------------------------
54f211381c | Aidan Holm | 2018-07-20 21:34:36 +0800

Fix tutorial finish UI printing formatting tags (RoGGa, #11539)

--------------------------------------------------------------------------------
6887535748 | Aidan Holm | 2018-07-20 21:34:36 +0800

Fix local tiles crash when ` opens menus (kitchen_ace, #11534)
update_items() being short-circuited lead to command repetition crashing
on local tiles. I believe these early exits were holdovers from the
previous (wildly different) implementation of menus.

--------------------------------------------------------------------------------
f1e831c450 | Aidan Holm | 2018-07-20 21:34:36 +0800

Fix webtiles popups obscuring direction chooser (stoneychips, #11525)
This issue was visible when evoking items from their item description,
opened via the inventory. It wasn't a problem on console or local tiles
because the direction chooser code runs its own render loop. The fix
here is analagous to the UI_VIEW_MAP UI state used for viewing the map.

--------------------------------------------------------------------------------
91fb4304bb | Aidan Holm | 2018-07-20 21:34:36 +0800

Remove most remaining CRT control code
This commit removes most of the CRT layer control code, since it is no
longer used. The few remaining user interfaces which use an emulated CRT
on webtiles now use the single function tiles_crt_popup RAII class,
which renders CRT output to a webtiles popup.

--------------------------------------------------------------------------------
63a12d5a5d | Aidan Holm | 2018-07-20 21:32:10 +0800

Fix webtiles font settings being ignored (Leszczynek, #11538)
We continue to use the CRT font, even though webtiles barely uses the
CRT emulation layer any more.

--------------------------------------------------------------------------------
5e6ed2a6a9 | advil | 2018-07-20 09:04:01 -0400

Have vaults flavor text imply quieter noise (11541)
There's no gameplay reason for actual noise here.

--------------------------------------------------------------------------------
6253c82ace | advil | 2018-07-19 14:31:10 -0400

Clean up elven twins + slimify interaction (Alaric_Silvertongue)
Try to make it more consistent. Behavior after this commit:
 * slimifying one will not berserk (or slimify) the other. This is
   different from ely pacification, where pacifying one pacifies the
   other.
 * attacking one will anger the other even if slimified. This is the
   same as ely pacification, and the behavior is unchanged.
    - I added messaging so it's slightly more obvious this is happening.
      Message also covers the pacified case.
    - jiyva abilities can repacify, sometimes even on the same turn.
 * a slimified neutral twin dying will now berserk the other.
   Previously, it accidentally pacified the other (bug related to ely
   pacification). This brings it in line with ely pacification.
 * a regular twin dying will no longer try to berserk a slimified
   neutral twin. Previously, it tried and didn't work. Possibly it
   should make hostile and berserk the the slimified twin instead, but
   I chose this behavior so that it is the same as ely pacification, so
   if one changes, the other should be changed.
 * If both twins are slimified and hostile, killing one gives a berserk
   message (but I don't think there's any effect). This is dubious but
   more annoying to fix.

Pacification behavior should be unchanged.

--------------------------------------------------------------------------------
679915a741 | advil | 2018-07-19 10:01:53 -0400

Handle an obscure webtiles exit case better
Prevents webtiles from showing an error dialog when exiting from the
main menu via ESC.

--------------------------------------------------------------------------------
4eb39157c0 | advil | 2018-07-19 09:26:56 -0400

Let sprint, tutorial, main menu work in webtiles
Main menu only works under certain circumstances of course (e.g. non-dgl
build, name_bypasses_menu = true).  Also arena, but it still crashes for
other reasons.

--------------------------------------------------------------------------------
038298e604 | gammafunk | 2018-07-18 22:09:21 -0500

A kobold themed ghost vault for Dungeon
In gammafunk_ghost_nasty_kobolds, the kobolds pull out all the nasty
tricks: blowguns, wands, daggers with distortion or other nasty brands,
and demon summoning. Places a fancy kobold with a kobold-appropriate 1h
weapon that's branded and good_item or randart. You'll also find at
least one of the aforementioned distortion weapon kobolds. Additionally
there's at least one kobold with either a blowgun with poison or curare
needles or one with a monster-usable wand. Numbers of these increase
with depth, with big kobolds replacing ordinary kobolds and with kobold
demonologists gradually being introduced. Who knows, maybe the lone
ghost you'll find inside is the result of someone failing to appreciate
just how tricky and nasty dungeon kobolds can be.

--------------------------------------------------------------------------------
7ef8c7bd50 | gammafunk | 2018-07-18 21:48:09 -0500

Resize a ghost vault
Currently, any monsters and loot at the back of the vault
gammafunk_ghost_cemetery are one tile out of LOS even when viewed from
outside. This commit decreases the size of the vault so that all floor
tiles can be seen.

--------------------------------------------------------------------------------
52fbc5fa17 | gammafunk | 2018-07-18 21:26:19 -0500

Rename a ghost vault
Rename ploomutoo_gammafunk_potion_laboratory to
ploomutoo_gammafunk_ghost_potion_laboratory so that it has 'ghost' in
the name of the vault like the other ghost vaults do.

--------------------------------------------------------------------------------
6f83d72c62 | advil | 2018-07-18 12:18:20 -0400

Avoid "mid cache bogosity" for unhandled divine clone bugs
Companion clone bugs lead to "mid cache bogosity" under the following
circumstances:

1. there is a level saved with a copy of the companion that gets false
for is_divine_companion() (e.g. it lost its god, as in e6d7efa92cb0).
2. that level also has a properly saved copy of the companion; they
both share the same mid.
3. the mindex of the corrupted copy is lower than the correct copy.

If all three conditions are met, the elsewhere companion code would
clear the mid cache for the corrupted copy, but the corrupted copy would
still be alive and kicking in the monster list. This would lead to a
crash when entering the level, resulting in an unplayable save.

This commit avoids this situation by fixing up the mid cache after
deleting the elsewhere companion. This fix will still result in errors
under various circumstances, but hopefully not unplayable saves. An
alternative might be to always delete both copies, but doing so will
hide whatever the underlying bug is that is leading to a clone so IMO
it's better to print lots of errors when these things happen, and delete
only corrupted copies where we know what the bug was.

As a side note, if there are multiple copies but they satisfy
is_divine_companion, they'll still be silently deleted -- this is the
status quo from before this commit. If condition 3 above isn't met,
there will also be no error, on load at least.

--------------------------------------------------------------------------------
eb4a410db3 | advil | 2018-07-18 12:07:20 -0400

Save compat for the Beogh/priest polymorph bug
See e6d7efa92cb0cd for the bug itself.

This cleans up duplicate mid monsters for various cases that match the
conditions of this bug. Possibly this should have a minor version tag
bump, but as of right now that will mess up the ghost permastores and I
don't want to do that this close to a release.

--------------------------------------------------------------------------------
337e1da021 | advil | 2018-07-18 09:28:01 -0400

Preserve insanity on polymorph (11504)
Because insanity involves an attitude change, polymorph was removing the
enchantment and not returning the attitude to normal. This changes
leaves the monster insane after a polymorph, and the enchantment goes
away as normal, returning the attitude to its correct state at that
point.

--------------------------------------------------------------------------------
b6d156f1c6 | Nikolai Lavsky | 2018-07-18 15:35:42 +0300

Allow naming randart fiery weapons after Dithmenos
Because Dithmenos doesn't have an anti-fire conduct any more, it is
no longer necessary to veto names like "...of Dithmenos's Generosity"
for randart flaming weapons.

--------------------------------------------------------------------------------
e6d7efa92c | advil | 2018-07-17 22:14:49 -0400

Don't overwrite god with GOD_NAMELESS on poly to a priest (11536)
This was creating duplicate monsters under the same mid in the following
way for beogh worshippers: 1. an orc follower gets turned into a
shapeshifter via chaos effects (e.g. an apocalypse crab). 2. the monster
shapeshifts into a priest monster, such as a meliai, setting the
monster's god to GOD_NAMELESS. 3. The player exits the level, and
recalls allies on a new level. A copy of the follower is generated at
this point. 4. They reenter the level of step 2. Because the monster
copy on that level no longer worships Beogh, is_divine_companion returns
false, and the follower copy is not appropriately cleaned up when
re-entering that level (see `tag_read_level_monsters`). Now there are
two. (Probably other variants of this procedure could work.)

This state doesn't crash, but the situation can eventually lead to the
infamous "mid cache bogosity" message in various ways, such as if one of
the copies dies while both are on the level, removing it from the mid
cache.

The fix might give priest monsters some weird gods at times, but it
doesn't mess up orc followers.

--------------------------------------------------------------------------------
a7d80019b5 | Aidan Holm | 2018-07-18 00:46:40 +0800

Revert "Remove BlackWhiteHighlighter" (NormalPerson7)
Turns out it is different from BoxMenuHighlighter after all, on windows
console.

This reverts commit e1e3f6e481f064d311ea5d7cd77a46fd550104a3.

--------------------------------------------------------------------------------
12c0d5b0f5 | Aidan Holm | 2018-07-18 00:44:15 +0800

Fix crash when scrolling+switching in webtiles menus
A webtiles client may send a scroll event before it is informed of
updates to menu content. If the number of menu items is then changed,
such scroll events may reference an out-of-bounds item index by the time
they arrive at the server.

Note that any such scroll events are 'stale' in the sense that they
refer to scrolling to an item/offset that is no longer shown, so there
is no way for servers to handle these events. A more robust solution
would involve webtiles clients acknowledging all updates to menu
content, and the server side using the ordering of acknowledgement and
scroll update messages to detect stale scrolls.

--------------------------------------------------------------------------------
9746042cce | Aidan Holm | 2018-07-17 22:22:47 +0800

Disable resize detection on windows console (NormalPerson7, #11532)
For reasons unknown, resize detection was causing an infinite resizing
glitch, which prevented all gameplay.

--------------------------------------------------------------------------------
ac08f70f71 | advil | 2018-07-16 23:53:26 -0400

Fix xp potions for real this time
Now correctly handling can_train state

--------------------------------------------------------------------------------
52540cafeb | advil | 2018-07-16 23:53:26 -0400

Don't crash if a manual would be used up by an xp potion
The manual was getting deleted from inventory during the simulations
that the skill menu does as you change your training settings, leading
to a crash when it attempted to restore the manual's charges.

--------------------------------------------------------------------------------
06a55de886 | advil | 2018-07-16 23:53:26 -0400

Fix behavior of multiple xp potions in the same session
In f02a5016e20a I foolishly did not consider the possibility that the
skill menu might be implemented as a single global value variable whose
state needs to be manually reset. Ideally this commit should be done
with constructors and the like, but my first implementation in a better
c++ style interacted in an awkward way with PrecisionMenu memory
management.

I also missed the fact that exit() being called multiple times leads
too similar problems as f02a5016e20a.

--------------------------------------------------------------------------------
178e55541d | Alan Malloy | 2018-07-16 14:20:30 -0700

Make sure Jiyva opens Slime:$ for you if you reach ****** while there (Pekkekke)
It was never updated when we shortened Slime from 6 to 5.

Fixes #819.

--------------------------------------------------------------------------------
eab220982e | advil | 2018-07-16 14:33:08 -0400

Rename `hash_rand`
This function is completely deterministic, so give it a name that's not
so misleading.

--------------------------------------------------------------------------------
ac240df97d | advil | 2018-07-16 14:19:45 -0400

Fix pumpkin heads in a different way (11524 / Gorice)
As Gorice noticed, hash_rand is not actually random, and so the loop
introduced in 0f663418af6b didn't terminate. Instead, just replace
any pumpkins with boring helms.

--------------------------------------------------------------------------------
08e7145bed | advil | 2018-07-16 14:01:09 -0400

Clean up some messy but harmless code (amalloy)
at least I think it's harmless?

--------------------------------------------------------------------------------
5224685f51 | Aidan Holm | 2018-07-17 00:11:37 +0800

Adjust webtiles mutations UI popup

--------------------------------------------------------------------------------
8b9a6d00eb | Aidan Holm | 2018-07-17 00:11:37 +0800

Align webtiles UI popups to centre-top
Nested popups are vertically offset somewhat. Note that local tiles is
not yet changed; further changes are likely and it'd be good to get some
feedback on this design iteration before making wider modifications.

--------------------------------------------------------------------------------
783f74d721 | advil | 2018-07-16 10:00:53 -0400

Add back in .hidden to static style.css
Most immediately, this hides the text input div in the lobby.

--------------------------------------------------------------------------------
f02a5016e2 | advil | 2018-07-16 09:46:23 -0400

Fix potions of experience
The problem was that SkillMenu::init couldn't handle being called
multiple times in SKMF_EXPERIENCE mode. The player's actual skill state
would be properly saved the first time, and replaced with a temporary
state representing the initial experience allocation (using currently
training skills), but then the second time it would overwrite the actual
skill state backup with this temporary state, effectively replacing the
actual skill state at that point (including the already allocated xp in
the temporary state).

--------------------------------------------------------------------------------
6240e6a4ab | Aidan Holm | 2018-07-16 21:06:43 +0800

Make altar UI more user-friendly (TAS2012, #11530)
This commit makes space and enter always activate the join-religion
prompt (previously, they were swallowed silently by the scroller
widget). In addition, it adds some help text to indicate that the join
action is available (and what key one should press to join).

--------------------------------------------------------------------------------
7e4a32469d | Aidan Holm | 2018-07-16 21:06:43 +0800

Fix version UI printing formatting tags (TAS2012, #11529)

--------------------------------------------------------------------------------
ca69a669c7 | Aidan Holm | 2018-07-16 21:06:42 +0800

Revert "Add item/spell/ability menu adjust mode"
These commits added the ability to adjust entry letters directly from
the inventory, spell, and ability menus, but unfortunately introduced a
regression where adjustments weren't printed, which lead to user
confusion.

This reverts commit f843350036b891c3f998be9d8a21cd141643f795.
This reverts commit bec60ccf0d73caf4a76c060404e86a1defd63097.

--------------------------------------------------------------------------------
2141c5b775 | Aidan Holm | 2018-07-16 21:06:42 +0800

Redraw screen when closing last popup
There's a slight possibility this change will cause rendering issues:
this functionality was previously in ui-overhaul at some point before it
was merged, but I can't recall if it was removed because it turned out
to have subtle edge-cases, or if it just got accidentally dropped during
a rebase.

--------------------------------------------------------------------------------
dba82d8663 | gammafunk | 2018-07-15 17:45:42 -0500

Some flavor adjustments to gammafunk_ghost_fury_of_okawaru (hellmonk)
Add hunting sling to the list of possible bad items and have a small
chance for the bad item to be either robe of misfortune or a -8 artefact
robe if the former is unavailable.

--------------------------------------------------------------------------------
c33bbe721d | advil | 2018-07-15 13:27:46 -0400

Remove some tautological comparisons
...assuming size_t is unsigned.

--------------------------------------------------------------------------------
5fb6194146 | Aidan Holm | 2018-07-16 00:04:12 +0800

Actually fix compilation

--------------------------------------------------------------------------------
498ab0880e | Aidan Holm | 2018-07-15 23:39:50 +0800

Fix compilation when size_t != long_unsigned (NormalPerson7)

--------------------------------------------------------------------------------
c8d1eea014 | Aidan Holm | 2018-07-15 22:17:36 +0800

Fix end/hiscore UIs printing formatting tags

--------------------------------------------------------------------------------
205440e737 | Aidan Holm | 2018-07-15 22:06:55 +0800

Fix screen not redrawing after leaving %-screen (|amethyst)

--------------------------------------------------------------------------------
288e0bf175 | gammafunk | 2018-07-15 05:13:43 -0500

Updates to gammafunk_ghost_fury_of_okawaru
Place Okawaru gift inspired weapon and armour items for the first two
loot pieces in this vault instead of the usual superb or star items. The
weapon item uses the good weapon base types, with lower weight on the
rarer types, and is always good_item. The armour is more general armour
but can either be good_item or randart. The weapon item always places,
but the armour item only replaces a superb/star item 1/3 of the time
initially, with that chance increasing to 100% as depth increases.

Also place a bad weapon or armour item (negatively enchanted, non-ego,
cursed) under the ghost, since we all know this is what Oka gifts
usually look like.  This bad item is always pre-identified.

--------------------------------------------------------------------------------
a7dcef737d | Aidan Holm | 2018-07-15 11:29:28 +0800

Fix mutation UI printing formatting tags (kitchen_ace)

--------------------------------------------------------------------------------
ffb0f715b8 | Aidan Holm | 2018-07-15 11:17:22 +0800

Fix god, item UIs printing formatting tags (|amethyst)
This was caused by Text(string) no longer parsing its input by default;
there might be a few other unconverted uses.

This commit also adds a hacky formatted_string::trim() implementation.

--------------------------------------------------------------------------------
283c1ef38e | advil | 2018-07-14 17:08:57 -0400

Quiet another warning on DGAMELAUNCH builds

--------------------------------------------------------------------------------
ee04ee8c13 | advil | 2018-07-14 16:42:52 -0400

Quick fix for webtiles menu bug
The problem seems to be that this global variable was getting out of
date at some point, and so referenced a div that is no longer in the
DOM.  I haven't tracked down why but at least on old UI code this sort
of thing would happen when resizing, since the DOM would get completely
rebuilt. In any case, in my testing this fixes the bug.

--------------------------------------------------------------------------------
1dba295f4b | advil | 2018-07-14 16:24:49 -0400

Quiet a warning on some build configurations

--------------------------------------------------------------------------------
5410c3bd1a | advil | 2018-07-14 16:06:00 -0400

tabs to spaces

--------------------------------------------------------------------------------
420b899bb1 | advil | 2018-07-14 16:03:01 -0400

Fix os x compilation
The replaced `auto` was getting `long long`, which led to an error on
the min call. Hopefully this won't break other OSs.

--------------------------------------------------------------------------------
77325051fa | Aidan Holm | 2018-07-15 01:48:22 +0800

Revert "Clip tall monster tiles in webtiles monster list"
This commit caused tall monsters to 'smear' as they moved across the
webtiles viewport, for reasons I don't entirely understand yet.

This reverts commit c0cf510be224db181515dde563bebf1eb9e22036.

--------------------------------------------------------------------------------
6546e2e220 | Aidan Holm | 2018-07-15 01:17:52 +0800

Fix FS_START_AT_END being ignored
Caused by UINT_MAX overflowing to -1 when converted to a signed int.

--------------------------------------------------------------------------------
e3c7468141 | Aidan Holm | 2018-07-15 00:59:38 +0800

Fix some new UI CSS bugs
Scroller shades should be the same colour as the background
(currently #040204), and text rendered within UI popups should never have
a black background,

--------------------------------------------------------------------------------
eec28cc15b | Aidan Holm | 2018-07-14 17:00:26 +0800

Fix HTML formatted scroller line height detection

--------------------------------------------------------------------------------
a1f343fd09 | Aidan Holm | 2018-07-14 15:42:46 +0800

Show ghost species tiles

--------------------------------------------------------------------------------
0f663418af | Aidan Holm | 2018-07-14 15:42:42 +0800

Only give ghosts pumpkin heads on Halloween

--------------------------------------------------------------------------------
367063695c | Aidan Holm | 2018-07-14 14:17:01 +0800

Fix compiler warnings

--------------------------------------------------------------------------------
c0cf510be2 | Aidan Holm | 2018-07-14 13:28:04 +0800

Clip tall monster tiles in webtiles monster list

--------------------------------------------------------------------------------
a083f4b47f | Aidan Holm | 2018-07-14 13:28:04 +0800

Fix cramped spell description text (NormalPerson7)

--------------------------------------------------------------------------------
0d7519012e | Aidan Holm | 2018-07-14 13:28:04 +0800

Fix string formatting not being rendered

--------------------------------------------------------------------------------
8f108777fc | Aidan Holm | 2018-07-14 13:28:03 +0800

Fix incorrect lookup-help menu flags
This resulted in ?/B0 (labyrinth) not working correctly, as its hotkey
was interpreted as the beginning of a selection count.

--------------------------------------------------------------------------------
6c7ed9e6a7 | Aidan Holm | 2018-07-14 13:28:03 +0800

Fix webtiles menu scrolling with non-100% zoom (NormalPerson7)
NormalPerson7 noticed that menus got stuck when scrolling while using
certain zoom levels. This was caused by update_visible_indices() not
correctly accounting for the page zoom level, and thus always reporting
the same (incorrect) supposedly-visible region.

Since this function had a lot of handling for the previous
implementation, which supported partially loaded menus, I've replaced it
with a simpler version that is a reasonably straight-forward conversion
of the code in menu.cc.

--------------------------------------------------------------------------------
b17f3145a1 | Aidan Holm | 2018-07-14 13:28:03 +0800

Show ring swap menu when wearing from inventory
When putting on a ring from the inventory item description, the prompt
in the messages region was obscured by the UI shade. When putting on
rings in this way, just always show the menu; it's a simple fix and
more intuitive than hiding the popup menus.

It's still a little weird that (p)utting on the ring immediately
dismisses the description popup.

--------------------------------------------------------------------------------
52e19c0059 | Aidan Holm | 2018-07-14 13:28:03 +0800

Always set mouse event .held and .mod

--------------------------------------------------------------------------------
36a25f2afc | Aidan Holm | 2018-07-14 13:28:03 +0800

Use new hover style for BoxMenuHighlighter

--------------------------------------------------------------------------------
e1e3f6e481 | Aidan Holm | 2018-07-14 13:28:03 +0800

Remove BlackWhiteHighlighter
BoxMenuHighlighter seems to do exactly the same thing on console.

--------------------------------------------------------------------------------
129b045feb | Aidan Holm | 2018-07-14 13:28:03 +0800

Show msgwin_get_line as a popup when necessary
i.e. when there is no game currently playing, or when one or more UI
layouts are already being shown (and the message region is obscured).

This includes a new HTML input UI, as the problem of the message region
being obscured also existed on webtiles. Currently, this is very
simplistic, and doesn't use a text box; instead, keystrokes are
forwarded to the server, which then updates the HTML API; so every
keypress requires a round trip to render.

There's quite a few call sites that use cancellable_get_line directly;
it's unclear whether there's any special reason for doing so, but
they'll need to be converted to use msgwin_get_line() (if possible) to
reap the benefits of this commit.

--------------------------------------------------------------------------------
6bfa959969 | Aidan Holm | 2018-07-14 13:28:03 +0800

Show popup yesno when not in main UI

--------------------------------------------------------------------------------
cb9e76d559 | Aidan Holm | 2018-07-14 13:28:03 +0800

Fix stale input state on local tiles (Currency)

--------------------------------------------------------------------------------
78a66fff3d | Aidan Holm | 2018-07-14 13:28:03 +0800

Tweak spacing on ability, spell menus
Spell menu: stops the menu from changing width when toggling between
views with !
Ability menu: this makes them the same width as the heading, which
prevents the item text from wrapping when the menu width is reduced.

--------------------------------------------------------------------------------
954b27418f | Aidan Holm | 2018-07-14 13:28:03 +0800

Refactor and improve Menu UI implementation
This commit breaks up the functionality previously implemented by the
UIMenu widget. Scrolling is now implemented with the UIScroller widget,
which provides a more consistent interface, and menu title and more
text are rendered with UIText widgets. In addition, the visual style of
menu items has been updated and improved, with some rendering fixes and
better margins; we now also have mouse cursor effects!

It's not all good news, though; unfortunately, the restart-allocation
issue is back with a vengeance. This is necessitated by the desire to
use one column when there's available space. While this was previously
manageable due to UIMenu rendering the entire menu (including title and
more), it's now complicated by rendering being split among multiple
widgets.

This complexity is partly caused by a mismatch between the constraints
of the widget layout system and by the desired behaviour of the menu UI.
A layout algorithm like Flutter's might be a better match, as it allows
widget children to decide their size, rather than the parent choosing
the size of its children. It's unclear whether there might be other
areas of crawl UI that are a poor fit for the Flutter model, however,
and at this point, with the complex bit written (and hopefully bug
free), I'd prefer to stick with what's already implemented and working.

--------------------------------------------------------------------------------
1d1201938d | Aidan Holm | 2018-07-14 13:28:03 +0800

Add informational scrollbars to scroller widget
These cannot (yet) be dragged with the mouse; they only indicate the
current scroll position and, to a lesser degree, the amount of
scrollable content.

--------------------------------------------------------------------------------
ec331d11aa | Aidan Holm | 2018-07-14 13:28:03 +0800

Add UI mouse enter/leave events

--------------------------------------------------------------------------------
4af17abe36 | Aidan Holm | 2018-07-14 13:28:02 +0800

Linebreak save-update prompt text
yesno() now uses a menu to show this text, which doesn't wordwrap its
prompt text automatically.

--------------------------------------------------------------------------------
82b979e1ae | Aidan Holm | 2018-07-14 13:28:02 +0800

Replace prompt yes/no icons
I'm no artist, but these fit the current visual design a little better.

--------------------------------------------------------------------------------
13706d6fbc | Aidan Holm | 2018-07-14 13:28:02 +0800

Use menu for yesno prompt outside game (Currency)
This fixes an issue where the yesno prompt text was not being shown
because redraw_screen() was not being called to show updates to the
message buffer. Rather than work out what's actually going on there,
I've opted to use the TOUCH_UI popup code when outside of a game, as
showing the messages panel without a game loaded looks very buggy.

mprf() is still used when calling yesno() inside a game, unless TOUCH_UI
is defined.

--------------------------------------------------------------------------------
f062400dc7 | Aidan Holm | 2018-07-14 13:28:02 +0800

Add more event handling to ui_pump_events (Currency)

--------------------------------------------------------------------------------
f843350036 | Aidan Holm | 2018-07-14 13:28:02 +0800

Add MF_SWAP_MODE menu mode

--------------------------------------------------------------------------------
bec60ccf0d | Aidan Holm | 2018-07-14 13:28:02 +0800

Add item/spell/ability menu adjust mode
Functionality is implemented in menu.cc, and is enabled whenever a menu
has an `on_entry_swap` callback, which does the actual swapping. An
additional `swap_mode_prompt_noun` member is used to generate the swap
prompt text. The on_entry_swap callback receives the first item to swap,
and either a pointer to the second or a key to swap it to.

Swap mode is entered by pressing = on a menu that supports it. An
already-existing item is then selected, followed by a letter that may or
may not refer to an existing item. Swapping an item to its own letter
cancels the swap, but stays in swap mode. At any time, = or ESC cancels
the swap and leaves swap mode.

--------------------------------------------------------------------------------
bdb2496d11 | Aidan Holm | 2018-07-14 13:28:02 +0800

Add menu title indentation automatically

--------------------------------------------------------------------------------
cdcb5b2abd | Aidan Holm | 2018-07-14 13:28:02 +0800

Remove easy_exit_menu option

--------------------------------------------------------------------------------
e6dabca4b5 | Aidan Holm | 2018-07-14 13:28:02 +0800

Fix SDL tiles arena UI bugs
Fixes the arena crashing and otherwise failing to handle window resizing
correctly.

A mostly straight-forward conversion. ui_delay() is a replacement for
delay() that still responds to UI events, although the delay currently
cannot be interrupted (which is sub-optimal).

In tilereg-map.cc, add_square() checks the current transform to ensure
that the square is pixel perfect regardless of the transform, so we need
to match the transforms used at buffer-packing- and at render-time.

--------------------------------------------------------------------------------
8af06f9f2d | Aidan Holm | 2018-07-14 13:28:02 +0800

Prevent webtiles game body from scrolling
This prevents webtiles menu scrolling affecting the game window in the
background, which looks odd.

--------------------------------------------------------------------------------
8ffa595151 | Aidan Holm | 2018-07-14 13:28:02 +0800

Add menu.set_title() indent option
The bit where titles are still passed in as a MenuEntry is still weird
and hacky, and I'm not happy about the boolean blindness this
introduces. But it does fix some bugs.

--------------------------------------------------------------------------------
cf2c24169f | Aidan Holm | 2018-07-14 13:28:02 +0800

Improve loading splash screen UI
Uses the new UI framework, as usual. Now handles resizes correctly,
and renders the splash screen with filtering enabled.

Todo: separate the DCSS logo from the splash image, so that it can be
rendered independently of the scaled splash image.

Visual design could do with some polish; some of the splash screens
have hard edges that look a little out of place, for example.

--------------------------------------------------------------------------------
e1d3802083 | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap end-game hiscore list in popup widget

--------------------------------------------------------------------------------
5bc55b2501 | Aidan Holm | 2018-07-14 13:28:01 +0800

Remove unnecessary more() and clrscr()
A more is already forced by the code below, and the clrscr call messes
up the local tiles display.

--------------------------------------------------------------------------------
929062c292 | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap _print_error_screen() in popup widget

--------------------------------------------------------------------------------
161852b4e7 | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap arena startup prompt in popup widget
We also add simplistic colour highlighting for the entry; the two teams
are highlighted in white, and the ' v ' is lightgrey.

--------------------------------------------------------------------------------
5379f3efb6 | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap tutorial end messages in popup widgets

--------------------------------------------------------------------------------
f9c367dce0 | Aidan Holm | 2018-07-14 13:28:01 +0800

Remove CRT menu attaching functionality

--------------------------------------------------------------------------------
327346732f | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap the hiscores menu in a popup widget

--------------------------------------------------------------------------------
7e740b3d50 | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap the new game menus in popup widgets

--------------------------------------------------------------------------------
6f189af7ca | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap the main menu in a popup widget
Like the skill menu, this is for visual consistency.

--------------------------------------------------------------------------------
12418baf23 | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap doll editor in a popup widget

--------------------------------------------------------------------------------
2e76a7d6bb | Aidan Holm | 2018-07-14 13:28:01 +0800

Wrap skill menu in a popup widget
Still the same old PrecisionMenu implementation underneath, but wrapped
up in a UIPopup; this is mostly for visual consistency on local tiles.

--------------------------------------------------------------------------------
a582a2ab31 | Aidan Holm | 2018-07-14 13:28:01 +0800

Add SDL wrapper API to set mouse cursor
We use a switch statement here to explicitly guarantee that our cursor
enum values are contiguous and start at zero, since we don't yet wrap
all the cursor types that SDL supports.

--------------------------------------------------------------------------------
c96d248493 | Aidan Holm | 2018-07-14 13:28:01 +0800

Add webtiles formatted scroller highlighting

--------------------------------------------------------------------------------
1039b03f83 | Aidan Holm | 2018-07-14 13:28:00 +0800

Add HTML spell menus on webtiles

--------------------------------------------------------------------------------
43034bf330 | Aidan Holm | 2018-07-14 13:28:00 +0800

Add tiles to HTML monster description UI

--------------------------------------------------------------------------------
b4c22b735a | Aidan Holm | 2018-07-14 13:28:00 +0800

Add text widget highlighting support

--------------------------------------------------------------------------------
9c721c8b54 | Aidan Holm | 2018-07-14 13:28:00 +0800

Add formatted_string::substr_bytes()

--------------------------------------------------------------------------------
7e28d6f35d | Aidan Holm | 2018-07-14 13:28:00 +0800

Prevent some menu resizes when (de)selecting items
Specifically, in the pickup and drop menus and in the shop UI, selection
change changes the menu title/more text, which can cause the menu width
to change.

It's hacky, but to work around this for now we just pad the relevant
strings.

--------------------------------------------------------------------------------
6fbea354a5 | Aidan Holm | 2018-07-14 13:28:00 +0800

Add menu title and more padding

--------------------------------------------------------------------------------
cb03d4b02e | Aidan Holm | 2018-07-14 13:28:00 +0800

Show trailing partially visible menu items

--------------------------------------------------------------------------------
b1c2063f2e | Aidan Holm | 2018-07-14 13:28:00 +0800

Add menu overflow gradients

--------------------------------------------------------------------------------
3fb71aec8e | Aidan Holm | 2018-07-14 13:28:00 +0800

Use a formatted scroller for the help UI

--------------------------------------------------------------------------------
364e786f98 | Aidan Holm | 2018-07-14 13:28:00 +0800

Add improved deck description UI

--------------------------------------------------------------------------------
1f9488b117 | Aidan Holm | 2018-07-14 13:28:00 +0800

Synchronize formatted scrollers between clients
We always recalculate the line height every time we scroll: it's
possible the line height has changed if the page zoom level has changed.

When calculating the current scroller position (line number) it's
necessary to round to the nearest integer; with non-100% zooms there's
some rounding errors that sneak in and produce line numbers that are
ever so slightly less than a whole number, and rounding this to a whole
number is the most robust solution.

--------------------------------------------------------------------------------
bdc67e0bbb | Aidan Holm | 2018-07-14 13:28:00 +0800

Add scroller widget overflow gradients

--------------------------------------------------------------------------------
60de621df5 | Aidan Holm | 2018-07-14 13:27:59 +0800

Add HTML formatted scroller UI

--------------------------------------------------------------------------------
b0f107ba2b | Aidan Holm | 2018-07-14 13:27:59 +0800

Add HTML version description UI

--------------------------------------------------------------------------------
1c60cbd96b | Aidan Holm | 2018-07-14 13:27:59 +0800

Add HTML monster description UI

--------------------------------------------------------------------------------
8a2288e6a1 | Aidan Holm | 2018-07-14 13:27:59 +0800

Add HTML describe-god UI

--------------------------------------------------------------------------------
cd832e5b3b | Aidan Holm | 2018-07-14 13:27:59 +0800

Add HTML mutations/vamp-attrs UI

--------------------------------------------------------------------------------
e6589a7bc7 | Aidan Holm | 2018-07-14 13:27:59 +0800

Add getter for top UI popup

--------------------------------------------------------------------------------
f7378a7a18 | Aidan Holm | 2018-07-14 13:27:59 +0800

Add HTML paneset construct
This is the HTML equivalent of the UISwitcher widget: a set of widgets
(divs) in the same position, only one of which is visible at any one
time, that all maintain the same size.

It's implemented as a 1x1 grid, but that might need to be changed for
browser compatibility reasons.

--------------------------------------------------------------------------------
35ee80c3e8 | Aidan Holm | 2018-07-14 13:27:59 +0800

Implement some webtiles UIs in HTML

--------------------------------------------------------------------------------
f2165d81fb | Aidan Holm | 2018-07-14 13:27:59 +0800

Add branch tile to ?/B descriptions

--------------------------------------------------------------------------------
1ce9c33d72 | Aidan Holm | 2018-07-14 13:27:59 +0800

Add webtiles UI stack APIs
This commit repurposes the existing C stack of menus into a general
stack of UI layers (parallel to the UI widget stack), adding the ability
to store one or more JSON data blobs used to construct a HTML UI.
Each non-menu, non-CRT stack frame contains a vector of JSON strings;
the first is the data used to construct the initial UI, and any extra
JSON strings are used to cache state mutation messages separately.
When the initial state is large (e.g. crawl manual help page), this
permits sending only a short message to all spectators for each mutation
(e.g. page scroll), instead of always resending the full state, while
also making it possible for newly-joined spectators to become fully
up-to-date.

--------------------------------------------------------------------------------
8ed8a8799e | Aidan Holm | 2018-07-14 13:27:59 +0800

Implement stack-five UI as a menu

--------------------------------------------------------------------------------
8e67019d57 | Aidan Holm | 2018-07-14 13:27:59 +0800

Refactor spectator menu tracking

--------------------------------------------------------------------------------
5e79477df8 | Aidan Holm | 2018-07-14 13:27:59 +0800

Always send full menu data

--------------------------------------------------------------------------------
234bcd4a3d | Aidan Holm | 2018-07-14 13:27:58 +0800

Fix excessive webtiles traffic from menu deselect_all
This is a quick fix: avoid sending one webtiles message per menu item
that wasn't originally selected.

Also, the "sq" (selected quantity) JSON property has been removed:
menu.js wasn't using it. Note that items still need to be sent after a
selection change, as the item text may be changed automatically.

--------------------------------------------------------------------------------
f6ec9103a4 | Aidan Holm | 2018-07-14 13:27:58 +0800

Shrink webtiles CRT popup in some places
This is something of a hack; ideally, the server would send a JSON
message containing the data required for the webtiles client to render
its own view of popups.

--------------------------------------------------------------------------------
2724650dca | Aidan Holm | 2018-07-14 13:27:58 +0800

Make webtiles menu mouse-scrollable

--------------------------------------------------------------------------------
3696671b70 | Aidan Holm | 2018-07-14 13:27:58 +0800

Add HTML scroller
This adds a function that wraps the contents of a div into a scrollable
container.

 - default scrollbars are replaced (they look seriously out of place)
 - semitransparent overflow 'shades' are added at the top and bottom of
   the scroll container.

In addition, we place the scroll container on its own render layer.
Effectively this means that the menu contents are rendered to a texture,
rather than rendered directly; this means that scrolling is much faster,
as painting now consists of translating and rendering that texture,
as opposed to doing a layout pass over the menu items. With large menus
(the largest I know of is ?/m .*) this takes menu two-finger scrolling
from very janky to perfectly smooth.

--------------------------------------------------------------------------------
fc52b2cc33 | Aidan Holm | 2018-07-14 13:27:58 +0800

Improve webtiles menu appearance

--------------------------------------------------------------------------------
582254c294 | Aidan Holm | 2018-07-14 13:27:58 +0800

Add popup background to webtiles
I'm not entirely happy with how this is done, but there doesn't seem to
be a better alternative, short of using a canvas. In particular, CSS
sprites with multiple backgrounds doesn't work.

--------------------------------------------------------------------------------
22cf74fb55 | Aidan Holm | 2018-07-14 13:27:58 +0800

Add webtiles popup UI stack
This commit adds an additional webtiles game API to show popups.
Unlike the existing show_dialog() and hide_dialog() functions, the new
API supports a stack of popups.

This API is not available from the client. This avoids adding a
permanent back-compatibility requirement, and also means that no manual
merges are necessary on servers.

--------------------------------------------------------------------------------
b56509fae6 | Aidan Holm | 2018-07-14 13:27:58 +0800

Render menus with new UI framework
This commit replaces most of the menu rendering code with a newer
implementation.

- MenuDisplay abstraction replaced with a single UIMenu class. This
class implements the menu widget used by the UI framework, for both
tiles and console builds.
- tilereg-menu has been merged into UIMenu.
- Misc. other code improvements and bug fixes.

Most of the UIMenu implementation is fairly straightforward; the only
complication is its width-for-height nature. The menu UI will use one
column if there is enough vertical space to display all items, falling
back to a two-column layout otherwise, and so the menu's provisional
height must be known to calculate its corresponding width. This is
incompatible with the UI framework, which can only accomodate widgets
whose height varies based on their width. To work around this, the menu
widget sets itself to expand vertically to determine the available
height; it then disables vertical expansion and requests re-layout,
using the determined height in the second layout pass.

--------------------------------------------------------------------------------
e4b3838690 | Aidan Holm | 2018-07-14 13:27:58 +0800

Add resumable_line_reader
This is intended for use as an interim measure, until I get around to
adding a text input widget. The base line_reader cannot be used in new
UI code, since the UI framework needs to provide the keys that arrive at
the widget. The resumable_line_reader works around that by being driven
externally with putkey().

--------------------------------------------------------------------------------
dda5ca5291 | Aidan Holm | 2018-07-14 13:27:58 +0800

Add ui::getch()
This commit adds a ui-layout-aware equivalent to getch(), and allows UI
code to associate a layout with a specific keymap context.

Currently, UI layouts and their keymap contexts are stored separately;
this might change once the distinction between layouts and widgets is
clarified.

--------------------------------------------------------------------------------
481745bcfe | Aidan Holm | 2018-07-14 13:27:58 +0800

Make menu columns as narrow as possible

--------------------------------------------------------------------------------
ef52903947 | Aidan Holm | 2018-07-14 13:27:58 +0800

Replace PopupRegion with menus
Pretty straightforward. MenuRegion is next...

--------------------------------------------------------------------------------
50fa2d4396 | Aidan Holm | 2018-07-14 13:27:58 +0800

Remove unneeded mouse_control
yesno() has its own MOUSE_MODE_YESNO

--------------------------------------------------------------------------------
915e4858f7 | Aidan Holm | 2018-07-14 13:27:57 +0800

Send mouse button pseudo-keys for compatibility

--------------------------------------------------------------------------------
2e207e432d | Aidan Holm | 2018-07-14 13:27:57 +0800

Spruce up the god UI
On local tiles:

- Expand the UI enough so that switching between panes does not force
the height to change. But, if the window is too small, shrink the UI and
allow scrolling.

- Add the altar tile to the UI. The vertical centring of the god name
is sometimes visualy a little iffy when the altar tile is visually
unbalanced (e.g. Trog's altar).

On all platforms:

- Don't adjust the prompt height when switching between god join
prompts. Currently, this is only relevant for Gozag, who has some
additional fee text.

- Don't scroll the top line with the god name or the more text; only
scroll the description.

- Always scroll / switch pages when the relevant key is pressed, even if
a god join prompt is being displayed.

--------------------------------------------------------------------------------
d0573e7a6e | Aidan Holm | 2018-07-14 13:27:57 +0800

Show tiles for more descriptions
Skills, abilities, cards (just the generic card tile), and clouds

--------------------------------------------------------------------------------
d62d3970bd | Aidan Holm | 2018-07-14 13:27:57 +0800

Don't resize mutation UI when showing vamp attrs

--------------------------------------------------------------------------------
0867f0562a | Aidan Holm | 2018-07-14 13:27:57 +0800

Use new description UIs for ?/I, ?/A, ?/K, ?/F

--------------------------------------------------------------------------------
d0d35ae41a | Aidan Holm | 2018-07-14 13:27:57 +0800

Add tile option to show_description()

--------------------------------------------------------------------------------
2fc808d2ea | Aidan Holm | 2018-07-14 13:27:57 +0800

Add Switcher widget
This widget only shows one of its children at a given time, but keeps
the same size regardless of the child it is showing. Its size is
determined by the size requirements of its children.

--------------------------------------------------------------------------------
36a14b339e | Aidan Holm | 2018-07-14 13:27:57 +0800

Show tiles for all described dungeon features

--------------------------------------------------------------------------------
fa58e6d1cc | Aidan Holm | 2018-07-14 13:27:57 +0800

Don't include title twice in show_description() UI

--------------------------------------------------------------------------------
bad7c4ef4e | Aidan Holm | 2018-07-14 13:27:57 +0800

Refactor spell-letter to item pairings
This commit reimplements the storage for spell-letter pairings as
a single structure. The previous implementation had two different
structures, and couldn't handle missing letters.

--------------------------------------------------------------------------------
b5f169543f | Aidan Holm | 2018-07-14 13:27:57 +0800

Add { -> i alias in item description UI

--------------------------------------------------------------------------------
8bf25d96dd | Aidan Holm | 2018-07-14 13:27:57 +0800

Use improved spell description UI for ?/S

--------------------------------------------------------------------------------
6446de9cb6 | Aidan Holm | 2018-07-14 13:27:57 +0800

Add UI widget min/max sizes
This is used to limit the size of description popup boxes so that
paragraphs don't become fully unwrapped into a single very wide line.

--------------------------------------------------------------------------------
a02aae867c | Aidan Holm | 2018-07-14 13:27:56 +0800

Reimplement formatted scroller
This is the uber commit that 1) moves the formatted_scroller
implementation out of menu.cc and reimplements it with the new UI code,
and 2) adjusts everything that used formatted_scroller to account for
slight API differences.

There's also a few places where this commit reimplements the UI, using
the new UI framework instead of a formatted_scroller, for two reasons:
1) we want to show tiles as part of the UI, and 2) we plan to further
extend each individual UI (item description, spell description, etc) in
ways that require access to the UI widgets (and prevent the use of a
description-with-icon UI abstraction).

--------------------------------------------------------------------------------
6b7a2ddc87 | Aidan Holm | 2018-07-14 13:27:56 +0800

Add helper for running UI layers (Currency)

--------------------------------------------------------------------------------
daa132ac84 | Aidan Holm | 2018-07-14 13:27:56 +0800

Remove lookup-help spellbook specialization

--------------------------------------------------------------------------------
95e8667c19 | Aidan Holm | 2018-07-14 13:27:56 +0800

Add DungeonCellBuffer::add_monster()
The DungeonCellBuffer renders monsters correctly (full demon parts for
example): this function adds a way to render a monster and its status
icons to a DungeonCellBuffer, without including the floor, etc: to be
used in monster descriptions.

--------------------------------------------------------------------------------
05992621b8 | Aidan Holm | 2018-07-14 13:27:56 +0800

Add UIDungeon wrapper for DungeonCellBuffer

--------------------------------------------------------------------------------
8742d9a70c | Aidan Holm | 2018-07-14 13:27:56 +0800

Add UIPopup widget

--------------------------------------------------------------------------------
8ddcb42b05 | Aidan Holm | 2018-07-14 13:27:56 +0800

Render new UI layouts on top of old UI
This change renders the pre-existing tiles UI before rendering the UI
hierarchy. Since most of the UI using the new system are popup windows,
this works nicely.

--------------------------------------------------------------------------------
0d1085f331 | Aidan Holm | 2018-07-14 13:27:56 +0800

On console, only redraw dirty part of screen

--------------------------------------------------------------------------------
124b843b6c | Aidan Holm | 2018-07-14 13:27:56 +0800

Only redraw when screen contents have changed

--------------------------------------------------------------------------------
98b620f700 | Aidan Holm | 2018-07-14 13:27:56 +0800

Only reallocate widgets with new regions

--------------------------------------------------------------------------------
67b9c87550 | Aidan Holm | 2018-07-14 13:27:56 +0800

Hack out small-screen-size panic
For testing purposes.

--------------------------------------------------------------------------------
7558cdac29 | Aidan Holm | 2018-07-14 13:27:56 +0800

Add UI layout invalidation

--------------------------------------------------------------------------------
2505a391c0 | Aidan Holm | 2018-07-14 13:27:56 +0800

Don't expand grid tracks beyond their natural size

--------------------------------------------------------------------------------
5abded6c26 | Aidan Holm | 2018-07-14 13:27:56 +0800

Add scroller widget
This has a single child widget and can be scrolled vertically.

--------------------------------------------------------------------------------
ef29da6680 | Aidan Holm | 2018-07-14 13:27:56 +0800

Add UI widget event observer API
This commit adds a way to register callbacks for UI-related events.
This mechanism is intended to facilitate coordination between widgets
(as opposed to sub-classing, which customizes behavior within a given
widget).

Listeners are type-safe, and can be anything convertible to a
std::function. Most widgets won't have any listeners attached, so
callbacks are stored in structs associated with the widget type,
rather than within the target widget itself.

--------------------------------------------------------------------------------
aeecdb105d | Aidan Holm | 2018-07-14 13:27:56 +0800

Only render visible grid rows

--------------------------------------------------------------------------------
141eec360f | Aidan Holm | 2018-07-14 13:27:56 +0800

Add text widget
Fairly straightforward. Text is set with a formatted_string, and can be
ellipsized or wrapped independently.

--------------------------------------------------------------------------------
f562428ca2 | Aidan Holm | 2018-07-14 13:27:55 +0800

Add UI scissor stack
A stack of scissor regions is needed because scissoring may occur
at multiple levels of the hierarchy. Without a stack, a pair of
set_scissor() and reset_scissor() will change the scissor region.

--------------------------------------------------------------------------------
bc3b7a3285 | Aidan Holm | 2018-07-14 13:27:55 +0800

Add rowspan, colspan, and flex_grow to grid

--------------------------------------------------------------------------------
4a7592ad01 | Aidan Holm | 2018-07-14 13:27:55 +0800

Add crt/sdl-specific widget margin helpers

--------------------------------------------------------------------------------
dcabc23490 | Aidan Holm | 2018-07-14 13:27:55 +0800

Add widget preferred size caching
This commit caches the result of a widget's calculations for its
preferred width, as well as its preferred height for a given width.

The cache for a given widget must be invalidated if it or any of its
descendants change any properties that affect their layout.

--------------------------------------------------------------------------------
793673642d | Aidan Holm | 2018-07-14 13:27:55 +0800

Add hierarchical UI system
= Introduction =

This commit implements the beginnings of a UI widget system. The basic
idea is that the UI code should be abstracted somewhat from the rest of
crawl. This new code provides a small framework for two main components
of the UI: layout and rendering.

This has a number of advantages:

 - Resize support for free.
 - UI code is aware of the entire UI that needs to be drawn: this meansd
   no weird edge cases because the event handling loop in one function
   isn't (and can't) repaint something its caller needs repainted... etc.
 - No (fewer?) hacks: no peppering redraw() calls all over the place
   with wild abandon, no CK_REDRAW.

In addition, the same UI layout code is used for both SDL tiles and
console builds: the only difference is that tiles uses pixel coords,
and console uses terminal char coords. Rendering and layout for both
platforms is fully abstracted.

= Layout / Rendering =

get_preferred_size() retrieves a widget's minimum and "natural" size on
a given dimension (a "size request"). If retrieving the vertical size
request, a prospective width must be given, and the returned minimum and
natural size will be calculated according to that width: this allows a
text widget to adjust its required height depending on its width, by
rewrapping text to fit the width. Container widgets (those that contain
other widgets) will generally call this method on their children in
order to calculate their own size requirements.

When the UI hierarchy needs to be laid out, the horizontal minimum
and natural sizes are computed by calling get_preferred_size() on
the toplevel widget: this is a recursive process. The viewport
(screen/terminal) width is clamped to the minimum and natural widths,
and the result is used to compute the vertical size request, again using
get_preferred_size(). Likewise, the viewport height is clamped to the
result. The resulting viewport width and height are passed to
allocate_region().

Each container widget is responsible for laying out its children within
its allocated region, and then calling allocate_region() on each of them
in turn. Leaf widgets (text/image/etc.) usually pack buffers at this
point.

Rendering is relatively straight-forward: widgets render their contents
to their allocated regions, and then call render() on their children.

= API =

The main API is designed to be used with existing crawl code.
ui_pump_events() is a replacement for the ad-hoc while-getch loops seen
throughout the crawl codebase; as it has full knowledge of the UI
layout, it can render the full UI, including UI from code completely
unrelated to the call site.

This function is meant to be used in conjunction with event handlers
(implemented in a later commit).

--------------------------------------------------------------------------------
49ce1fb936 | Aidan Holm | 2018-07-14 13:27:55 +0800

Add tile_def_info() helper
This helper works like tile_gui_info(), tile_player_info() et al,
except that it takes a tile_def structure, calling whichever
texture-specific function is appropriate to retrieve the tile texture info.

It's a little strange that this is a method of the ImageManager; ideally
the ImageManager would query this function rather than maintain a map of
texture to texture-info-getters (which is how this function is currently
implemented).

--------------------------------------------------------------------------------
3f26980e4e | Aidan Holm | 2018-07-14 13:27:55 +0800

Add CK_RESIZE to console input handling
This commit adds an interface to specify that getch_ck() should return
CK_RESIZE when the terminal is resized. This is necessary for the new
UI system to redraw the UI immediately on resize, without repeatedly
polling ncurses.

Unix requires using ncurses' builtin SIGWINCH handler to interrupt
get_wch(), but variants without support for KEY_RESIZE will continue to
use the old signal handler, and therefore won't return CK_RESIZE.

Whether CK_RESIZE is returned is controlled by set_getch_returns_resizes()
This interface isn't ideal, but it's simpler than modifying all existing
call sites to handle CK_RESIZE.

--------------------------------------------------------------------------------
1015d742cc | Aidan Holm | 2018-07-14 13:27:55 +0800

Revert "Add static files for CBRO ui-overhaul experimental"
This reverts commit 101988f953aa354d7553a1fbf43b5dbbc4932be4.

--------------------------------------------------------------------------------
a0c6fd2ff5 | gammafunk | 2018-07-13 15:06:51 -0500

A mace-themed ghost transporter vault for Dungeon and Orc
Various ogre and giant monsters wait inside a transporter area to remind
you to respect things that can hit with a giant stick, lest you end up
like the ghost in this vault. Places ogres initially, progressing to
two-headed ogres, with a chance to place an ettin, frost giant, or fire
giant in the latest depths. One monster of the most dangerous type will
have a fancy good_item or randart mace that is either a dire flail or
great mace. If this monster is a fire or frost giant, its mace will be
flaming or freezing, respectively.

--------------------------------------------------------------------------------
d6a3efe1fc | gammafunk | 2018-07-12 02:32:07 -0500

Add a missed changelog item (Ge0ff)

--------------------------------------------------------------------------------
6d95e9e505 | advil | 2018-07-11 14:27:37 -0400

Enforce minimum buffer sizes for domain sockets
On linux these have reasonable defaults, but on OS X (and probably other
unixes) the receive buffer default for unix datagram sockets is
unreasonably small for crawl's purposes, 4096. This mins the receive
buffer at linux's default (which is enough that a crawl map can transfer
without errors). For sanity's sake I added a min for the send buffer,
but I think this value is much more standard.

--------------------------------------------------------------------------------
d5849c758a | advil | 2018-07-11 13:38:02 -0400

Make socket write retries more aggressive
Under some circumstances, these writes may block while the webtiles
server processes data -- something that happens very quickly, but not as
quickly as the send loop in this code. For example, if the socket buffer
size is <=4096 (the default on OS X, but not linux), trying to send
larger batches of data (such as a map on load or level change) will
cause ENOBUFS until the server has had a chance to receive the previous
fragment. The previous sleep timing was effectively causing a 500ms
sleep per 2048 byte fragment[1], and so since a map can take on the
order of 200kb, this was imposing substantial slowdowns on OS X
webtiles.

This fix first tries some 2ms sleeps, and then backs off to 500ms. 2ms
is still more than enough for the webtiles server to do its thing in my
testing; we'll see if it causes in problems on live servers (I have no
idea how often this case is triggered outside of OS X). I may still
accompany this with a change to the default socket size.

1 I'm not sure why it's not every two fragments, but there might have
been a few initial bytes in the buffer in real-world scenarios, or some
overhead not directly accounted for.

--------------------------------------------------------------------------------
b59be558ac | advil | 2018-07-11 13:33:42 -0400

Add debug messages for webtiles socket writes
These seem like they could probably be useful in the future, too.

--------------------------------------------------------------------------------
34fbaa02a0 | gammafunk | 2018-07-10 23:40:44 -0500

Add Patashu to the mailmap

--------------------------------------------------------------------------------
4a2a387fbb | Timothy Stiles | 2018-07-10 23:33:43 -0500

Gnoll tiles (Giik)
Made by Giik ( http://the-giik.tumblr.com/ )

Committer's Note: Closes #811.

--------------------------------------------------------------------------------
d2f0174a10 | Alan Malloy | 2018-07-10 16:37:55 -0700

Clarify description of =rCorr and ARTP_RCORR (/u/cstieg1)
Hopefully saying 'all sources' of acid and corrosion will reduce
player confusion about whether this applies to *Corr.

--------------------------------------------------------------------------------
46e8f3c735 | gammafunk | 2018-07-10 15:37:36 -0500

A stat drain themed ghost vault for Dungeon and Orc (mikee)
Players who don't watch out for those pesky sources of stat drain might
end up haunting the transporter vault gammafunk_ghost_stat_death.
Dex-draining Quasits are the only threat accompanying the ghost early
on, with the quasits being supplemented by int-draining neqoxecs by D:9.
There's the usual pile of progressive loot, and the ghost generates over
a ring of dexterity or intelligence that has progressively higher
chances for being good_item or randart.

Based on an initial suggestion from mikee for a ghost vault with a bunch
of quasits and a ring of DEX.

--------------------------------------------------------------------------------
65f81ef340 | gammafunk | 2018-07-10 15:37:20 -0500

Updates to gammafunk_ghost_icy
Tweak the numbers of monsters and loot items to have a more consistent
progression and fix floor tiles surrounding the vault.

--------------------------------------------------------------------------------
fedc9ff77b | advil | 2018-07-09 10:43:58 -0400

Handle sealed runed doors properly (11508)
Monsters could open runed doors while they were sealed, leading to
escaping player ghosts. This checks the original terrain for the seal. I
lightly refactored some closed door checks in monster AI to be clearer
and a bit more general.

--------------------------------------------------------------------------------
8a62e23f9f | gammafunk | 2018-07-08 16:39:02 -0500

Remove code for using decks when worshiping gods other than Nemelex
Back when decks could appear as random items and were retained upon
abandonment of Nemelex, cards could potentially be used by players
worshiping other gods. Hence there is code in place to prevent
generating cloud types that specific gods disapprove of and to track use
of Degeneration under Zin.

This commit removes this code, since decks no longer generate randomly
and are destroyed upon abandonment of Nemelex. It could have a
TAG_MAJOR, but the gameplay ramifications of this change are very small.

--------------------------------------------------------------------------------
d782b18ce7 | gammafunk | 2018-07-08 16:39:02 -0500

Don't warn Dithmenos worshipers about burning trees (kitchen_ace, 11509)
Dith no longer has an anti-fire conduct.

--------------------------------------------------------------------------------
acb6733a44 | advil | 2018-07-08 09:49:36 -0400

Don't dissipate clouds when testing door sealing for tension (11506)
As |amethyst suggested, this is happening because clouds will be
instantly deleted on terrain changes that leave them out of los (as of
7e89378e288a). The door sealing code tests various door closing options
to see which maximizes tension, and these would delete the clouds even
if none of them for used, because their los effect is still calculated.
This solution simply backs up a copy of env.cloud, since in principle
the cloud changes might impact tension.

--------------------------------------------------------------------------------
9281fa2407 | gammafunk | 2018-07-06 23:48:07 -0500

Update the changelog through 0.22-a0-604-gc538b7411b

--------------------------------------------------------------------------------
c538b7411b | gammafunk | 2018-07-06 23:22:08 -0500

Update the changelog for some previous releases
The changelog was missing some changelog entries for previous point
releases going back to 0.17.1. Add these so that the changelog isn't
confusingly missing release information.

--------------------------------------------------------------------------------
fc1114df04 | gammafunk | 2018-07-06 16:58:02 -0500

Make Dithmenos an evil god (mikee)
Now that Shadow Step has an HP cost, this reinforces the notion that
Dithmenos is an evil god. It wants the entire world to be shrouded in
eternal darkness; doesn't that sound just mean and awful? The gameplay
consequences of this are few, mostly related to conversion wrath from
the good gods, the god-themed artefacts not getting the holy wrath
brand, and the inability to summon or phantom mirror holy monsters. It
will give Dith a bit more flavor to replace that which was lost when the
fire conduct was removed.

The new god description text, which is surprisingly non-transifex-like,
comes courtesy of mikee.

--------------------------------------------------------------------------------
6d45252c93 | gammafunk | 2018-07-06 16:57:05 -0500

Rework Dithmenos' Shadow Step restrictions and costs (mikee)
Shadow Step currently requires that any target monster be "still" in
order for it to be a valid target, which means the monster has to be
asleep, paralyzed, or otherwise immobile. This generally requires using
the ability near unexplored areas, which is risky even if the player can
one-shot the target monster with a stab. Players without good stabbing
ability found little use for Shadow Step despite the ability being the
only relatively low cost invocable offered.

This commit removes the stillness restriction for Shadow Step, instead
giving the ability an HP cost of about 8% of max HP. This will give
incentive for non-stabbers to use the ability while still being useful
for setting up stabs for high-priority targets. Shadow Step still
requires the target to be within the Umbra, but no longer requires any
notion of monster stillness.

Balance-wise, allowing the player to make long chains of shadow step is
a concern, but a significant HP cost paired with the current fairly high
piety cost prevent this from getting out of hand. As the player loses
piety, their access to Shadow Form can be lost and the size of the Umbra
decreases, reducing the range of the next shadow step. We can adjust the
HP and piety costs accordingly if the current costs aren't sufficient.

The ability description has been updated to remove references to
stillness and to clarify that the adjacent landing site is randomly
chosen.

--------------------------------------------------------------------------------
b0ed703ee0 | gammafunk | 2018-07-05 16:10:20 -0500

Give non-menu abilities default flags, document, and reformat
Give Wu Jian's Lunge and Whirlwind abilities default flags so people
don't think that these actually show up in the menu. It might be nice if
the ability enums/entries didn't have to exist just because of action
counting, but that would take some reworking of the action counting
system. Closes #775.

--------------------------------------------------------------------------------
a441c7e642 | Edgar A. Bering IV | 2018-07-05 16:10:20 -0500

Allow Call Merchant while Starving
When porridge was removed from Potion Petition a careless and hungry
Gozagite could end up Starving without rations by not paying attention.
The only escape was then to abandon Gozag, kill something to eat, and then
either re-join or live out the wrath, and hope that you have enough gold
to do this successfully.

Previous nutrition-granting abilities have been allowed while Starving
(Vitalization and Potion Petition) since the
"abandon->eat->rejoin/mollify" flow is a cruel screw, so Call Merchant
should be allowed (with its guaranteed food shop).

--------------------------------------------------------------------------------
ccc8333d46 | Edgar A. Bering IV | 2018-07-05 16:10:20 -0500

Datify ability hunger checks
Add a new flag abflag::starve_ok and add it to abilities that can be
used while starving, instead of using a switch/case.

--------------------------------------------------------------------------------
06ccb6e5e9 | advil | 2018-07-05 10:28:27 -0400

Fix webtiles chat player urls (Cody Cutler)
Broken in caf04dffec4948451bd, because I didn't understand how these
were supposed to work.

--------------------------------------------------------------------------------
bd89b2e156 | gammafunk | 2018-07-05 02:22:10 -0500

Adjust the placement of Ilsuiw (alexjurkiewicz)
Currently Ilsuiw has a 100% chance of placing on Shoals:4 if she didn't
place on Shoals:3. Fighting her will be a more memorable (some would say
'unique') experience if doesn't happen every time on a specific level.
This commit introduces a 1/5 chance that her Shoals:4 guardian vault
places. It also sets the range of her normal unique vault to Shoals:2-3,
both so that she can place on Shoals:2 and so that this vault does not
give an additional chance of placing her on Shoals:4. Finally, we give
her normal unique vault the typical weight of 50 we use for
branch-specific uniques. Now her chances of placement on Shoals:2-3 are
more similar to that of placing on Shoals:4.

After this commit, mapstat shows her chance of placing overall in shoals
is between 40 and 50% (more objstat iterations needed to be sure), with
a slightly higher 20-25% chance of placing on Shoals:4 compared to about
10-15% chance for both Shoals:2 and Shoals:3. This is similar to
placement of other branch-specific uniques like Polyphemus, Arachne, and
Vashnia. Closes #774.

--------------------------------------------------------------------------------
fbd32a6812 | gammafunk | 2018-07-04 20:49:11 -0500

Simplify out a function
This is no longer needed, as longer half-opaque solid features no longer
exist.

--------------------------------------------------------------------------------
47e2213cb9 | gammafunk | 2018-07-04 20:45:41 -0500

Clean up a condition and document a possible simplification
As the comment mentions, trees should probably be treated as walls by
`feat_is_wall()`.

--------------------------------------------------------------------------------
be8196071a | gammafunk | 2018-07-04 20:36:09 -0500

Merge pull request #796 from ebering/lrd-tree-bug-pr
Have trees properly block explosions
--------------------------------------------------------------------------------
bea20c6c9a | gammafunk | 2018-07-04 20:12:54 -0500

Merge pull request #807 from NormalPerson7/fix-cloak-generation-rate
Make items for the cloak slot be equally common as other auxiliary armour slots 
again
--------------------------------------------------------------------------------
c01a7f0fb5 | gammafunk | 2018-07-04 18:50:36 -0500

Revise the chance for pulling players deeper into the Abyss
The new formula removes the XL15 cutoff for the chance to pull the
player deeper into the Abyss upon shift/teleport. The chance formula is
now:

  (XL + 4 - Depth)^2 / (27^2 * (Depth + 5))

Some of the new chances:
* Characters at XL 1 have about a 0.1% chance of getting pulled from
  A:1.
* Characters at XL 13 have chances of 5.9%/4.4%/3.3%/2.6% for getting
  pulled from A:1/A:2/A:3/A:4.
* Characters at XL 27 have chances of 20.6%/16.5%/13.4%/11.1% over the
  same levels.

It's relatively easy to escape from the abyss at XL13, and a small
chance of getting pulled a level deeper where exits are more common
won't have much impact on players at these XLs.

This commit also updates comments and spacing and properly declares a
function as static. Closes #757.

--------------------------------------------------------------------------------
ae4dde8560 | Edgar A. Bering IV | 2018-07-04 18:37:40 -0500

Draw higher XL players deeper into the abyss
Currently, outside of the abyss, as dungeon threat level goes up, the
average banishment depth goes up also. However, if a high XL player
enters the abyss voluntarily, they can hang out on A:1 forever.

This patch gives a chance that an abyss teleport drives the player
deeper into the abyss. The chance scales up with XL and down with depth,
and doesn't kick in until XL > depth +13. This has two effects: it
increases the lethaltiy of the abyss for higher XL players, and speeds
their progress through it.

Committer's Note: The chance formula is modified in the next commit to
scale the chance without using an XL cutoff.

--------------------------------------------------------------------------------
7d32d7c7ae | gammafunk | 2018-07-02 23:56:40 -0500

Update the description of the mace of variability
Don't refer to the chain of chaos spell, which isn't directly castable.
Instead refer to the effects right in the description. Also change the
flavor text to be more inline with the current weapon behavior.

Closes #802.

--------------------------------------------------------------------------------
e3ae32fd07 | gammafunk | 2018-07-02 23:49:05 -0500

Remove unused monster casting for chain of chaos
This spell used to be castable on a demonspawn monster, but that monster
no longer exists. Chain of chaos isn't very good as a monster spell
since it applies multiple chaos effects to the player per turn and at
range. Chaos breath is ranged but only applies on effect per turn due to
its use of clouds, so this is at least a better style of spell or breath
to give monsters.

This commit removes code used to let monsters cast chain of chaos
directly. Monsters can still use the chain of chaos effect from wielding
the mace of variability, since that triggers from a melee effect and
doesn't need the usual monster spell setup functions.

--------------------------------------------------------------------------------
f4876293f9 | gammafunk | 2018-07-02 23:49:05 -0500

Adjust the effects of chaos beams
The chaos beam type is only used for the chain of chaos spell cast by
the mace of variability and for the impact (non-cloud) effect of
apocalypse crab breath. Currently chaos beams select from a set of beams
analogous to effects used by the chaos brand, but using mostly flat
selection weights. The flat weights effectively give chaos beams much
higher weighting relative to the chaos brand for strong effects like
banishment, polymorph, hexing or buffing the monster, or miscast
effects. This difference isn't very apparent for chaos breath, since the
beam is only applied once for impact damage, but for the mace of
variability, a chaos arc can hit a monster multiple times in a turn.

This commit re-weights the chaos beam effect table to be closer in
behaviour to the chaos brand. Beams directly analogous to other brands
like flaming, freezing, electrocution, etc now have comparatively higher
weight, and rarer effects that only happen when the chaos brand
reselects itself have lower weight.

Note that this commit has no effect on the behaviour of the chaos brand,
monster af_chaos, or chaos clouds; it's only relevant for the mace of
variability and impact (non-cloud) effects from chaos breath. It would
be ideal to somehow merge the selection of these beam effects with the
effect selection used for SPWPN_CHAOS, especially since the latter is
already used for all chaos melee and launcher egos as well as chaos
clouds.

--------------------------------------------------------------------------------
0c8d57cfc9 | gammafunk | 2018-07-02 23:37:48 -0500

Adjust effect damage and enchantment of the mace of variability
The mace of variability casts chain of chaos with spell-power ranging
from 75 to 149 with an average of 112. Ignoring any damage from the
chaos beam effect, the current arc damage formula of 3d(5 + pow / 2)
gives the mace's spell damage die of 3d61 per arc on average. This is
very high, especially since the monster gets zapped 4 times on average
(albeit with spell-power that decreases by 14 on average with each arc).

To balance the damage from the mace, reduce the damage formula of chain
of chaos to 3d(5 + pow / 6). Now an arc from the spell will do 3d23
damage on average, which is still significant damage even when cast only
1 in 5 melee hits. And of course, in addition to damage, each arc
applies random effect from the chaos beam.

This commit also lowers the enchantment of the mace to +7 from a
previous commit's value of +10. A +7 great mace will be quite strong
enough with 1 in 5 attacks casting chain of chaos in addition to the
normal chaos ego. Also 7 is a lucky number, which Xom appreciates, and a
value lower than the typical +9 max is a **secret reference** to the
original unrand behaviour.

--------------------------------------------------------------------------------
91488470ee | Edgar A. Bering IV | 2018-07-02 23:36:58 -0500

Add the mace of Variability to ebering_ghost_xom
The item is terrifying now that it has chain of chaos, so it can't
appear early. But also thematic and good temptation.

--------------------------------------------------------------------------------
8c3e449617 | Edgar A. Bering IV | 2018-07-02 23:35:09 -0500

Revise the mace of Variability
Having a weapon that was occasionally useless didn't make for a good
item. In the tradition of other unrands that are "this brand but more"
(Arc Blade, Firestarter, Frostbite, Leech), this changes the mace to
have a chance of casting chain of chaos on hit and have a fixed plus. As
flavourful as the plus swing is the player is encouraged to wait for the
random walk to go up before fighting.

Committer's Note: The chain of chaos damage and set of effects as well
as the enchantment for this weapon are modified in a subsequent commit.

--------------------------------------------------------------------------------
8c174e564c | Edgar A. Bering IV | 2018-07-01 22:48:40 -0500

Remove self-harm from chain of chaos (gammafunk)
The effects (even with a special case preventing banishment and
polymorph) didn't make for a good monster spell because of self-harm. This
adds a special case to prevent chain of chaos from harming the caster,
replacing the beam's flavour with BEAM_VISUAL to keep the arcs going and
waste an arc so that the spell has about the same offensive power as
before. Banishment and polymorph are now added to the effect list.

--------------------------------------------------------------------------------
d5db89c09a | Chris Campbell | 2018-07-01 17:47:36 +0100

Add Alexandra Shields to credits

--------------------------------------------------------------------------------
b62a27e402 | gammafunk | 2018-07-01 01:33:49 -0500

Port some ghost vaults to the Vaults branch
Adapt ebering_ghost_xom, biasface_ghost_orc_armoury, and
ploomutoo_gammafunk_potion_laboratory as ghost rooms for Vaults.
Ebering's vault is copied basically unchanged, just with some extra
space to not make the room too tiny. For Biasface's vault, I've removed
the wargs, orc priests, and some of the plain orcs, replacing them with
orc high priests, some more orc knights, stone giants, and orc warlords.
The armour/weapon/jewellery loot has one piece of good potion or scroll,
and the additional warlords that sometimes place have a chance to get
fancy gear. Ploomutoo's vault is ported mostly unchanged, using the same
monster and loot set that the original vault uses in Depths, but with
slightly fewer top-tier monsters and one less loot piece in each
chamber.

--------------------------------------------------------------------------------
afc7989ea5 | gammafunk | 2018-07-01 01:24:11 -0500

Some ghost vault DES and code cleanups and refactoring
Use the general loot functions for lone ghost vaults in the Vaults ghost
rooms, adding it to ghost.lua so it's available to those vaults. Trim
extra outer spacing or wall in some of these same ghost rooms and remove
any special floor tile settings. These tiles look out of place in Vaults
rather than conveying a ruined look. Don't try to use sandstone wall
tiles in the Gozag ghost vaults since it conveys more of a weathered
natural look than it does "gold". Likewise remove the yellow stone wall
coloring for console.

Move several ghost vaults that have thematic monsters into the "Themed"
section of ghost.des, add a missing float ORIENT, and fix a comment.

--------------------------------------------------------------------------------
5148d607e1 | gammafunk | 2018-07-01 00:49:14 -0500

Updates to ebering_ghost_davey_jones
Allow this vault to place on Shoals:$, since it will work fine on this
level. Instead of either a kraken or a kraken simulacrum, place either a
single kraken or a mix of two kraken simulacrum or spectres, as either
of the latter have vastly less HP than a kraken. Add a bit more deep
water to give the pair more room to move about.

Refactor glyph usage to not use the % glyph for corpses and hence fix a
loot item.

--------------------------------------------------------------------------------
a1729497a0 | gammafunk | 2018-07-01 00:49:14 -0500

Updates to ebering_ghost_gozag
Scale the threats more carefully so that it doesn't feature so many 9
and 8 monsters in earliest depths and so that difficulty increases more
smoothly with depth. Always place 2 normal random spawns on average,
slowly increasing the monster count by adding 9 and 8 monsters. Tweak
the placement of the obsidian statue to increase in chance gradually,
making it 100% by Lair branches. To supplement the loot as depth
increases, add a mix of either a good loot potion or an antique shop,
starting with a 50% chance of one of these on D:9, making up to two of
them by the later depths.

Simplify the logic of the gold pile function to mostly use absdepth,
increasing the value used a bit for Orc. Also add a variant of this
vault as a ghost room for Vaults.

--------------------------------------------------------------------------------
a6a7277fff | Edgar A. Bering IV | 2018-07-01 00:49:14 -0500

Port several ghost vaults to the Vaults branch
Committer's Note: Squashed commit that ports the lone ghost vaults
ebering_ghost_inner_flame, ebering_ghost_reflecting_pool, and
ebering_ghost_disaster_area to vault rooms for Vaults.

--------------------------------------------------------------------------------
028915408b | Edgar A. Bering IV | 2018-07-01 00:49:14 -0500

Davey Jones' / Kraken themed ghost vault for Shoals
Guarantees a randart ring, chance of an octopus king ring

--------------------------------------------------------------------------------
bb431e278f | Edgar A. Bering IV | 2018-07-01 00:49:14 -0500

Disaster themed lone ghost vault

--------------------------------------------------------------------------------
2af43bd064 | Edgar A. Bering IV | 2018-07-01 00:49:14 -0500

Gozag themed ghost vault
No items, only gold and a Gozag altar. Gold loot is scattered in piles
and scales as follows: From 3-9 piles at D:3 to 12-18 at D:15 and below.
Further scaling comes from the natural scaling of gold pile size. The
monster set has two 998 monster placements and adds some 0's deeper.
There is a chance for the central statue to be an oklob in lair or an
obsidian statue elsewhere.

Committer's Note: Squashed two other subsequent commits by ebering and
updated the final commit message based on his notes in the squashed
commits. This vault's placement depth, loot, and monster composition
will be modified in a subsequent commit.

--------------------------------------------------------------------------------
0116f15b0b | NormalPerson7 | 2018-06-30 14:22:29 +0100

Make items for the cloak slot be equally common as other aux slots again
In commit 651d724, scarves were increased from being 1/6 to 1/4 of items
generated for the cloak slot, however the actual increase in spawn rate
for scarves was minimal, from 1/30 to 1/28 of all auxiliary slot armours
generated, because what this commit actually did was reduce the spawn
rate of cloaks from 5/30 to 3/28 by reducing the weight of cloaks.

It seems like an accident that this meant the total weight for this
random_choose_weighted was not the 30 that a comment implied, and that
the cloak slot items (cloaks and scarves combined) were made 2/3 as
common as other auxiliary slot armours.

As a result, this commit buffs the spawn rate of cloaks and scarves to
bring the overall spawn rate in line with that of other auxiliary
armours, whilst maintaining the same 3:1 ratio of cloaks:scarves.

--------------------------------------------------------------------------------
4a923d4b9e | Aidan Holm | 2018-06-30 19:18:02 +0800

Fix Ru sacrifices not giving full piety (Xenobreeder, #11503)
For skill sacrifices specifically, the amount of piety gained was
recalculated after the sacrifice was performed, i.e. after the skill in
question had been dropped to level zero. In testing, sacrificing 27
stealth promised full piety, but granted none.

--------------------------------------------------------------------------------
58866f5d57 | Chris Campbell | 2018-06-29 18:21:25 +0100

Merge pull request #806 from shieldal/fix-zot-trap-malign-gateway
Fix zot traps casting friendly malign gateways (0011042)
--------------------------------------------------------------------------------
e1900bcf9a | shieldal | 2018-06-28 22:47:11 -0700

Fix zot traps casting friendly malign gateways

--------------------------------------------------------------------------------
270d1aeab6 | gammafunk | 2018-06-28 22:54:26 -0500

A happy afterlife ghost vault for Dungeon and Lair from hellmonk
In hellmonk_ghost_happy_afterlife, a ghost decides to not dwell on the
failures they made in life, preferring to just relax next to a nice tree
with a nice meal (a ration) and some nice drinks (1-2 potions). Of
course, if you disturb its meal it will not hesitate to kill you, since
ghosts like killing players more than they like meals they can no longer
eat. The potions upgrade in quality and number as depth increases.

--------------------------------------------------------------------------------
ff9aefc16b | gammafunk | 2018-06-28 17:19:05 -0500

A potion ghost vault for Dungeon, Elf, and Depths (Ploomutoo)
In ploomutoo_gammafunk_potion_laboratory, an alchemist with a collection
of nice potions conducted a fatal experiment resulting in an explosion
of mutagenic horrors. Now their ghost haunts a two-chambered lab,
guarding loot that contains a number of potions of mutation, high
quality random potions, and a piece of aux armour or a robe. Monsters in
the first chamber are melee-oriented: ugly things, very ugly things,
large abominations, and tentacled monstrosities are all used depending
on the depth and branch, supplemented with the occasional glowing orange
brain. In the second chamber is the ghost along with shape-shifters and
malmutators (neqoxecs and later cacodemons).

This vault was originally submitted by ploomutoo with the main layout
and a basic set of monsters and loot for dungeon. I modified the monster
sets to make the themes of the chambers distinct and to allow placement
in other branches. I also scaled the number and composition of loot and
monsters as depth increases. Finally, the layout was updated to better
allow placement of mutagenic fog machines.

--------------------------------------------------------------------------------
b275bf370e | gammafunk | 2018-06-28 15:44:43 -0500

Some ghost vault fixes and refactoring.
Make the good loot potion/scroll item lists available as variables for
other vaults to use when they're handling their own loot placement. Fix
a potion specification error ('cancellation', not 'cancelation') and
clean up DES spacing.

--------------------------------------------------------------------------------
fc6459a524 | gammafunk | 2018-06-27 02:14:37 -0500

Updates to gammafunk_ghost_spectres
Use monster/loot depth breakpoints consistent with the other vaults and
update the wraith composition for later depths. This was placing a high
proportion of ordinary wraiths at D:12-, where the player is likely to
have have completed both Lair and Orc. Reduce numbers of these and add
more freezing wraiths in their place, also slightly increasing the
highest tier wraiths in the very latest placement depths.

--------------------------------------------------------------------------------
3e71e8a377 | gammafunk | 2018-06-27 02:14:37 -0500

Updates to gammafunk_ghost_split
For later depths, update the monsters this vault places to use a bit
less 0 monsters and a little more of 9 and 8 out-of-depth ones. Early on
it's ok if this vault feels less like a 098 vault and more like a vault
with in-depth monsters only, but by Lair branches it should really have
a significant number of more threatening monsters in addition to the
ghost. Also update the wall glyph usage so that the outer or inner walls
would use wall types that would seem out of place in certain branches.

--------------------------------------------------------------------------------
1b94d8d769 | gammafunk | 2018-06-27 02:14:37 -0500

A labyrinth themed ghost vault for Dungeon, Lair, and Orc from Maelrawn
In maelrawn_ghost_labyrinth_escape, a player tried to escape from a lab
with loot in tow. Sadly, the minotaur was right behind them, and then
they ran right back into all the monsters they ditched to reach the lab
entrance.

This vault places on any level that could normally place a labyrinth
(D:10-, Lair, Orc:2), but of course only places through the usual ghost
vault chance and additionally has half the usual vault weight. It should
be a pretty nasty one, since the minotaur is quite the threat on its
own. The vault supplements the minotaur with a few branch monsters that
eventually include out-of-depth 9 monsters at later placement depths. It
doesn't recreate the more generous loot of an actual Labyrinth portal,
but it does place up to 5 items and supplements this with the good loot
replacement used by other ghost vaults.

--------------------------------------------------------------------------------
d813392cae | gammafunk | 2018-06-27 02:14:37 -0500

Add good consumables or equipment to the loot in many ghost vaults
Currently, ghost vaults that place monsters in addition to the ghost
also place items that upgrade in quality, with the count increasing from
3 to as high as 7 as depth increases. These items are of higher quality
than usual floor items, with each item eventually reaching 50% each of
superb_item and star_item, but those item classes are highly variable.
In later Dungeon levels and beyond, it's common to see no item that's
reasonably worth the risk of fighting a ghost along with additional
monsters. To provide additional incentive for players to attempt these
vaults, this commit adds a `good_ghost_loot()` function that can replace
one or two pieces of the "superb_item / star_item" loot with items that
have a narrower range of useful possibilities.

The first replacement consists of scrolls and potions with weights only
for those that are broadly useful, along with aux armour, jewellery, and
a small chance for a manual. The aux armour and jewellery have lower
weight relative to the scrolls and potions, but upgrade to have
good_item and later randart modifiers as depth increases. The first item
replacement only has a chance to happen starting from D:9-11, with the
chance increasing to 100% by Lair. The second item is a potion or scroll
using the same weights as the first item. It has a chance to appear
starting in Lair, becoming 100% by the Lair branches.

Most ghost vaults that place additional monsters have been updated to
call this function and have any necessary change to their loot placement
statements. The function defines the items on the 'd' and 'e' glyphs and
leaves the calling vault to perform any necessary substitutions if they
wish to override this definition or handle multiple instances of those
glyphs. A couple vaults that already place specialized loot remain
unchanged.

--------------------------------------------------------------------------------
06062c564f | gammafunk | 2018-06-27 02:14:14 -0500

Remove upweighting for gammafunk_ghost_grave
This vault was originally the only simple vault that placed a single
ghost. We now have a number of others like this that have normal weight,
so there's no need to upweight this one in particular.

--------------------------------------------------------------------------------
921cf92176 | gammafunk | 2018-06-27 00:16:25 -0500

Consistently use depth breakpoints for ghost vault loot
Use the same depth partitions for the Dungeon branch across these
vaults.

--------------------------------------------------------------------------------
6e350e3e02 | gammafunk | 2018-06-27 00:15:07 -0500

Some small ghost vault fixes
Add a missing float ORIENT to a ghost vault, remove an erroneous loot
substitution and a floor tile statement, don't use wall types inside a
vault that would seem out of place in some branches, and clean up a
comment and a variable name.

--------------------------------------------------------------------------------
c2241811a9 | Chris Campbell | 2018-06-25 22:39:14 +0100

Don't make ancient zymes sicken friendlies (#10769)
Neutral zymes (from Corruption for example) will still sicken the player, but
friendly ones won't sicken the player and hostile ones won't sicken other
hostiles.

--------------------------------------------------------------------------------
b306ea240a | Edgar A. Bering IV | 2018-06-25 22:09:14 +0100

Fix bug 11478: Movement-key actions and Wu Jian
In _move_player, the easy-open door let control flow continue through
the function to behaviors that should only trigger upon moving. The most
noticable is the Wu Jian processing, leading to the bug.

The function could use some further simplifications, it's a bit
spaghetti.

Closes #778.

--------------------------------------------------------------------------------
59e8874910 | Chris Campbell | 2018-06-25 22:09:14 +0100

Fix bracing

--------------------------------------------------------------------------------
334a0db03a | Chris Campbell | 2018-06-25 22:09:14 +0100

Don't break Ozo's or cause barb damage on forced level transitions
Such as being banished or falling down an unknown shaft. Also re-order some
checks.

--------------------------------------------------------------------------------
2b3c548192 | Jacob Meigs | 2018-06-25 22:09:00 +0100

Trigger barbs and break Ozo's Armour when taking stairs/walljumping
[Cleaned up some code and whitespace, and updated commit message - MarvinPA]

Closes #747.

--------------------------------------------------------------------------------
9358b0b07b | gammafunk | 2018-06-24 18:49:35 -0500

Add a missing ghost setup function to another vault (ebering)
Incredibly, I also missed this one that ebering also missed!

--------------------------------------------------------------------------------
28ad1da241 | gammafunk | 2018-06-24 18:37:47 -0500

Add a missing ghost setup function to a vault (ebering)
ebering_ghost_reflecting_pool was missing this.

--------------------------------------------------------------------------------
3b2bdd4ba6 | gammafunk | 2018-06-24 16:51:00 -0500

Ghost vault DES cleanups
In gammafunk_ghost_necromancy, specify the Depth in a better way by
using 0 weight for Elf. Fix variable initialization for the hydra head
code and reformat DES alignment in various vaults.

--------------------------------------------------------------------------------
b51906ae90 | gammafunk | 2018-06-24 16:51:00 -0500

Updates to two ghost sewer vaults
For ebering_ghost_sewer_d, a single adder guard doesn't scale very wall
through D:6. The original sewer entry was just trying to slow the player
down a bit to make the portal timer relevant, but monsters in ghost
vaults are trying to pose a legitimate threat. Supplement the vault with
additional adders in earlier depths and a chance for a bullfrog, adding
a guaranteed bullfrog by D:6. Adjust the loot to upwards a little, since
this vault places multiple monsters in addition to the ghost.

For ebering_ghost_sewer_f, make some similar adjustments. Introduce more
monster variety and add some higher tiers of sewer guardians. Lower the
average number of monsters placed, since they're a bit nastier, but
randomize those numbers.

Finally, in both of these vaults, reorganize and reformat some DES
statements.

--------------------------------------------------------------------------------
7bfabb581c | gammafunk | 2018-06-24 16:50:59 -0500

Updates for ebering_ghost_xom
Instead of placing a dancing dagger with a random ego, place a dancing
weapon with a base type that scales with depth and always has the chaos
ego. Initially use lower base-damage weapons more commonly found early
on, slowly increasing the weapon quality. On each level, define up to
three sets of potential dancing weapons: a common class with default
weight, a somewhat higher damage/quality set of weapons with lower
weight, and at later depths introduce a set of rare weapons with lowest
weight. This should make fighting the weapon still potentially scary in
later depths as well as a loot item that's more rewarding. Finally, add
a "guarded" loot item under the ghost itself, since this ghost vault
only ever places one additional monster.

--------------------------------------------------------------------------------
30f0393f9e | gammafunk | 2018-06-24 16:50:13 -0500

Move a function to the ghost vault lua file and refactor
The random_item_def() function will likely be of use to vaults e.g. in
Vaults, so move this to ghost.lua and add documentation. Generalize the
"artefact" argument to just be an argument string, allowing callers to
set whatever additional item properties they want instead of just
good_item or randart.

--------------------------------------------------------------------------------
577b210c28 | Edgar A. Bering IV | 2018-06-23 23:33:14 -0500

Two sewer themed ghost vaults
Based on sewer entry vaults d and f, only place in D:3-6 where sewer
entries can spawn.

--------------------------------------------------------------------------------
9374e73d2f | Edgar A. Bering IV | 2018-06-23 23:33:14 -0500

Xom themed ghost vault
Has the player ghost, a Xom altar, and a dancing nice dagger which was
animated by Xom. A dancing dagger is only a bit tougher than a killer
bee, so shouldn't be too excessive, and it is good loot if defeated!

--------------------------------------------------------------------------------
6fc7002ca8 | Edgar A. Bering IV | 2018-06-23 23:31:17 -0500

Reflecting pool ghost vault
Lone ghost with different decoration from the gravestone.

--------------------------------------------------------------------------------
617fbbe7da | Edgar A. Bering IV | 2018-06-23 23:31:13 -0500

Haunted rock garden ghost vault
This vault follows roughly the loot scaling of
gammafunk_ghost_gravestone with the large rock stack counting for one of
the "good items". This will make it appeal more to large rock throwers
and less to others, but that's fine.

--------------------------------------------------------------------------------
d3eb0d86df | Edgar A. Bering IV | 2018-06-23 23:12:42 -0500

Abstract loot scaling for single ghosts
Creates two lua functions for placing the "guarded" and "extra" loot in
a ghost vault that places a single ghost, for consistent scaling and to
make writing single-ghost vaults easier.

--------------------------------------------------------------------------------
ce4f92807d | Chris Campbell | 2018-06-24 04:30:50 +0100

Fix a coding convention typo

--------------------------------------------------------------------------------
2d8cebbff3 | Alan Malloy | 2018-06-23 15:05:06 -0700

Add Alcon to mailmap

--------------------------------------------------------------------------------
876ca31dcf | Alan Malloy | 2018-06-23 15:02:54 -0700

Add Alcon to CREDITS

--------------------------------------------------------------------------------
fbd9004e3f | jnooner | 2018-06-23 14:57:00 -0700

Fix a crash when blinking away a cleaving attacker (amalloy, #718)
When working through the list of enemies to cleave, we now check that each

enemy is still adjacent.
--------------------------------------------------------------------------------
a1b62967d2 | Edgar A. Bering IV | 2018-06-22 21:57:16 -0400

Have trees to block explosions (Reeces)
Trees are not walls, but often should be treated like them. In this
particular case they should block the explosion like all other
no_transparent opacity features. In particular this prevents LRD from
sneaking into places it shouldn't in certain edge-cases.

--------------------------------------------------------------------------------
c63589d8fd | Edgar A. Bering IV | 2018-06-22 21:04:52 -0400

Don't treat trees as half-opaque for exclusions
Remove a vestige of the old behavior

--------------------------------------------------------------------------------
76cc10456c | gammafunk | 2018-06-22 19:30:22 -0500

And icy themed ghost vault for Dungeon, Lair, and Depths (Biasface)
An icy cave filled with monsters with cold melee and ranged attacks. The
ghost spawns over a pre-type-identified ring of fire; sadly the fallen
player did not remember to remove their source of rF- in time. The ring
of fire eventually has a chance to be an artifact, with that chance
reaching 100% in the latest depths. The other loot is typical for other
ghost vaults, a progressive mix of superb_item and star_item. The
composition and number of icy monsters increases in difficulty with
depth.

Based on a vault idea submitted by Biasface.

--------------------------------------------------------------------------------
e9e9f76342 | Chris Campbell | 2018-06-22 22:49:38 +0100

Remove veto_fragmentation, replace veto_disintegrate with veto_dig
Since LRD and disintegration no longer destroy walls.

--------------------------------------------------------------------------------
9b9f9d0a2d | Chris Campbell | 2018-06-22 22:49:38 +0100

Remove an unused param
Monsters no longer spawn from stairs, so stair_type was unused.

--------------------------------------------------------------------------------
bbb2ed93a3 | gammafunk | 2018-06-22 16:28:56 -0500

Merge pull request #795 from ebering/tweak-inner-flame-vault-pr
Remove flame clouds from inner flame vault (jboons)
--------------------------------------------------------------------------------
bbc7872094 | Edgar A. Bering IV | 2018-06-22 17:09:53 -0400

Remove flame clouds from inner flame vault (jboons)
Ghosts and monsters were dying to them. Replaced with black smoke, which
gives similar flavor but without the monster deaths.

--------------------------------------------------------------------------------
4d20840e7c | gammafunk | 2018-06-21 16:49:15 -0500

An orcish armoury ghost vault for Dungeon and Orc (Biasface)
In biasface_ghost_orc_armoury, a player tried to raid an orcish armoury
and was overwhelmed by the defenses. Hopefully you can succeed where
they failed...just keep in mind that the player's ghost has joined
forces with the orcs in guarding the base.

The vault places melee orcs in substantial numbers, introducing a
smattering of orc priests after D:3. The ordinary orcs are reinforced
with warriors, knights, and a possible warlord in the latest depths. For
the top tier orc class used, one such monster will always have a fancy
weapon and armour (each either good_item or randart), and the additional
loot items are aux armour, general armour, weapon, and jewellery that
get progressively introduced and upgraded with good_item.

Biasface made the original vault submission. I made some slight layout
changes and added many of the item and monster progression details as
well as code support for setting equipment on the higher-level orcs.

--------------------------------------------------------------------------------
cd2a3d9171 | gammafunk | 2018-06-21 16:49:12 -0500

Bug fixes and code generalizations for gammafunk_ghost_hdyra_chop
Generalize the random item definition code so that it can be used for a
forthcoming vault. Move the general parts to a new `random_item_def()`
function that allows specifying the item/ego weights as tables, with the
ego optional, as well as the separator to use in the definition. The
latter will allow is to use this in items in MONS statements. Simplify
the weighting used in this function when both items and egos are given
to simply multiply the weights together. A scaling factor is not
necessary if we compute the weights this way.

In the vault itself, fix the erroneous specification for long swords and
rename the function to use 'setup', since it's not initializing
anything.

--------------------------------------------------------------------------------
bf3ec1f414 | Chris Campbell | 2018-06-21 20:38:09 +0100

Add nlavsky to CREDITS.txt

--------------------------------------------------------------------------------
d75db7994b | Chris Campbell | 2018-06-21 20:28:40 +0100

Merge pull request #777 from nlavsky/throw-ally-fix
Make Iron Giants and other Throw Ally users obey Sanctuary
--------------------------------------------------------------------------------
b6040ebe65 | Chris Campbell | 2018-06-21 20:17:38 +0100

Merge pull request #776 from nlavsky/injury-bond-description
Fix Injury Bond description
--------------------------------------------------------------------------------
6e5688e9ae | Muffindrake | 2018-06-21 11:13:13 -0700

Remove duplicate code for attack punctuation (#771)
Put the punctuation code into a function and remove exact duplicate used in a

different part of the code base.
--------------------------------------------------------------------------------
f69a0803ab | gammafunk | 2018-06-19 21:58:19 -0500

Updates to ebering_funeral_grove
Some significant modifications to the monster set for this this vault.
Spriggan druids don't work as well in Dungeon and Lair, since Awaken
Forest requires it to be hard to get away from trees (i.e. be in Swamp)
and Druid's Call needs most level monsters to be beasts (not the case in
Dungeon). Rework the monster list, retaining the spriggans that always
have polearms, but adding in some wolves/bears and eventually a boggart
to replace the spiritual role of the druid. Additionally always give one
spriggan an artefact spear or trident both as part of the loot and to
highlight the troubles of an unfortunate player stuck in tree form
versus a monster with a nasty reach attack. Initially use only ordinary
spriggans but later introduce spriggan riders. In Swamp we can use the
spriggan druid again and use 098 Swamp monsters instead of wolves/bears.
The final average amounts of loots and monsters are similar to the
numbers before these changes.

Also add better windows into this vault so that any wandering ghost can
always be seen, and generally simplify glyph usage and SUBST/NSUBST.
Move the decoration statements towards the end of the vault definition
where we customarily put these.

--------------------------------------------------------------------------------
c87f014911 | gammafunk | 2018-06-19 21:53:51 -0500

Updates to ebering_ghost_inner_flame
Down-weight the vault in the earlier levels since it places 9 or 8, and
spruce up its loot a little in line with the potential threats it can
have. Also make it place at least one of either a chunk or a flame cloud
to avoid it placing none of either, which would make the theme less
clear. Finally, call the current ghost setup function instead of an old
one used in PR #700.

--------------------------------------------------------------------------------
52696f896f | Edgar A. Bering IV | 2018-06-19 21:17:27 -0500

Two item themed ghost vaults
ebering_ghost_inner_flame is a small 098 room that is blood splattered,
has flame clouds, and a guaranteed scroll of immolation.

ebering_ghost_funeral_grove is slightly larger, forest-themed guarded by some
spriggans plus the ghost. The vault always places a druid and a potion
of lignification, the druid watching over the poor dead treeformed
player.

Committer's Note: The vault ebering_ghost_funeral_grove is modified in a
subsequent commit to place a different set of monsters. Notably the
druid is only seen in the Swamp branch; see the comments in that
follow-up commit for details.

--------------------------------------------------------------------------------
01493d7835 | gammafunk | 2018-06-19 16:57:11 -0500

A demon polymorph themed Depths ghost vault from Biasface
In this vault, the unfortunate player ghost hovers over a
(pre-identified) wand of polymorph, their final act having been an
attempt to polymorph a demon into something less threatening. Was it a
hellion? A tormentor?  Perhaps the player polymorphed a mere neqoxec to
avoid getting a **game-ending mutation**? Whatever their choice, the
untimely result was a tier 1 demon and, ultimately, a player ghost. The
vault also contains a few tier 2 demons (although no
tormentors/hellions) and a group of other common demons (tiers 3 and 4).

Changes from the original vault include a little vault surgery to make
the lava pool larger, more randomization to the composition of demons,
and randomization of the numbers and placement of demons. Loot is
adjusted to be roughly similar to what other ghost vaults give in
Depths. Also make the statue tiles a random assortment of demon-themed
ones.

--------------------------------------------------------------------------------
b1378044ac | advil | 2018-06-19 15:16:16 -0400

Add a targeter for wands of digging
This now shows you the exact range and path that will be affected by
digging, up to map knowledge. Two behavioral changes: 1. If you know
that it won't affect anything, it won't let you fire. 2. you can target
at any angle (previously, you could only move the targeting cursor on
squares that you could see).

As with recent passwall changes, this targeter can give you information
about the map bounds.

--------------------------------------------------------------------------------
9de53972e0 | advil | 2018-06-19 15:16:16 -0400

Add a wizmode command to completely wipe out the level map
For debugging info leaks; just forgetting isn't usually enough.

--------------------------------------------------------------------------------
0da5cb03f1 | gammafunk | 2018-06-19 12:06:41 -0500

Adjust the vault muffindrake_ghost_dead_mans_drink
Rename this vault to muffindrake_ghost_dead_mans_drink to keep vault
naming consistent. Add "portholes" (transparent stone) to some sides of
the vault so that the ghost can be seen from outside even if it wanders
into the back of the vault.

Add randomization to the kinds of derived undead used
in this vault and randomize the placement and numbers of monsters,
keeping the same average. Increase the loot a little to keep numbers
more in line with other Depths ghost vaults.

--------------------------------------------------------------------------------
2547c9b189 | gammafunk | 2018-06-19 12:06:41 -0500

Adjust the vault muffindrake_ghost_three_little_ghosts
Rename this vault to muffindrake_ghost_three_little_ghosts to be in line
with other vault name formatting. Don't use diggable rock in the walls
in the vault to prevent monsters digging out/in. Instead use
stone/crystal/iron progression to make the theme consistent, and since
crystal has a nice interaction with the room 2 monsters. Remove outer
glass, since vault already reveals each rooms contents as the player
progresses.

Use a shaman band in the first room instead of just a single
non-threatening deep troll. Add randomization to the types and numbers
of monsters in the remaining two rooms. Increase loot to be more in line
with what we place for other Depths ghost vaults.

--------------------------------------------------------------------------------
95e1b32bc9 | gammafunk | 2018-06-19 12:06:41 -0500

Adjust the vault muffindrake_ghost_dual_entry
Rename this vault to muffindrake_ghost_dual_entry to be in line with our
other vault names. Add windows for the back of the vault and a dungeon
connector so that the player will always be able to inspect it and find
any ghost, if they so wish. Also down-weight the vault in its earlier
depths of D:10-11. Among ghost vaults it should be a less commonly seen
challenge, since it places two 8, a 9, and a lich, which is (almost)
guaranteed to overshadow the ghost itself.

Randomize the placement of the 1, 2, and 3 monsters, also randomizing
their placement numbers slightly but with the same average numbers.
Slightly increase loot quality by giving another superb_item instead of
gold.

--------------------------------------------------------------------------------
6ea8e7e0cb | Muffindrake | 2018-06-19 12:06:41 -0500

Add four ghost vaults for mainly Depths
Committer's Note: Removed a vault from this commit that's not quite ready
for merging.

--------------------------------------------------------------------------------
bce20acb8e | floraline | 2018-06-19 12:37:34 -0400

Merge branch 'master' into webtiles-password-reset

--------------------------------------------------------------------------------
75794bf1b0 | advil | 2018-06-18 20:57:21 -0400

Make player ghosts non-recallable (Malacante)
Ideally they could be recalled if their vault is open, but there's no
way to do that that I know of.

--------------------------------------------------------------------------------
96ba041d05 | advil | 2018-06-18 16:43:22 -0400

Don't have ghosts teleport with health <50% on stairs
This is ancient behavior that is obsolete now that ghosts take stairs
normally.

--------------------------------------------------------------------------------
b939540d7f | advil | 2018-06-18 16:37:05 -0400

Update ghost annotations if you can see the ghost transiting
I missed this when removing the assumption that ghosts can't change
levels.

--------------------------------------------------------------------------------
0943f25562 | gammafunk | 2018-06-17 16:03:24 -0500

Use the correct integer variable type
With advil's branch implementation (many thanks for that!), the
extension of the Vaults layout, and the previous set of vaults, we're
ready to merge the spooky_vaults branch. Closes #700.

--------------------------------------------------------------------------------
7f357de198 | gammafunk | 2018-06-17 15:48:43 -0500

Remove an unused error tracking variable

--------------------------------------------------------------------------------
1d9e83a9b2 | gammafunk | 2018-06-17 15:48:43 -0500

TAG MAJOR comment for Forest/Blade branch entries
These vault rooms were used to place Forest/Blade entries, but won't be
necessary with the next major version increase, since those branches no
longer exist.

--------------------------------------------------------------------------------
84fad1d58d | gammafunk | 2018-06-17 15:48:42 -0500

A ghost vault themed after Okawaru's wrath (hellmonk)
In gammafunk_ghost_fury_of_okawaru, the player finds a ghost on the
altar of Okawaru along with a bunch of representative Oka wrath monsters
and some loot. Although the generated ghost likely wasn't the result of
dying to "the Fury of Okawaru", hopefully this vault evokes the common
occurrence of players trying and failing to switch from Oka to another
god. It places in Dungeon, Orc, Vaults, Elf, and Crypt, and uses
warrior, archer, and giant monsters from Oka's wrath set. The Vaults
variant place through a separate vault room.

Original idea courtesy of hellmonk. Add new and exciting food costs.

--------------------------------------------------------------------------------
c41e3e368a | gammafunk | 2018-06-17 15:48:42 -0500

A hydra-themed ghost vault (mikee)
In gammafunk_ghost_hydra_chop, a fallen player made the mistake of using
a non-flaming edged weapon vs a hydra, leaving their ghost, the weapon,
and of course a hydra with more heads than usual. The weapon was not the
fallen player's actual weapon, but we can allow a little creative
fiction here, especially if the player was a felid!. We place only
weapon types usable by all non-felid species and always use a
non-flaming ego. There is a 1/3 chance for the weapon to be artefact.

The vault can also place a limited amount of additional loot and extra
hydras, scaling with depth, with the max possible hydra heads going as
high as 16 in late Swamp. Also places in D:8- and Lair.

--------------------------------------------------------------------------------
28d1087f11 | gammafunk | 2018-06-17 15:48:42 -0500

A ghost vault that places multiple ghosts
gammafunk_ghost_cemetery places 2-5 ghosts, with a 50% chance to place
only two and decreasing chances for each additional ghost, placing about
2.8 on average. Loot is 1.5 items per ghost with loot quality increasing
with depth. This vault places in all ghost vault branches, with half
weight in the very early dungeon levels and normal weight elsewhere. It
has a separate vault room for the Vaults branch as well.

--------------------------------------------------------------------------------
8f30707abe | gammafunk | 2018-06-17 15:48:42 -0500

Some thematic ghost vaults
These vaults feature a few different specific themes and hence go in the
second section of ghost.des:

gammafunk_ghost_necromancy: Part one of a three part spooky ghost vault
sequence. Places derived undead from slightly later depth along with a
player ghost. Initially places skeletons and zombies, later replaces
skeletons with spectral monsters and simulacra, and finally only
spectrals and simulacra. In Crypt, Depths, and Zot we possibly throw in
lich and curse skulls/curse toes. Places in all branches that place
ghosts, using a separate vault room for Vaults.

gammafunk_ghost_spectres: Similar to the former vault, but using 'W'
monsters: the various types of ghosts, wraiths, and other spectres. This
one starts placement later, where wraiths would be not too out-of-depth,
since I didn't want to make an early variant featuring only phantoms and
hungry ghosts. Like the ghost_necromancy vault, places nasty undead
spellcasters in later branches. Places in D:8-, Vaults (through a
separate vault room), and Crypt.

gammafunk_ghost_ooze: A vault for D:8-, Lair, and Depths that always has
a Jiyva altar. From D:8 places slime creatures and jellies initially,
introducing death oozes from lair onwards.

gammafunk_ghost_mausoleum: A transporter vault that's nastier than the
previous two, placing general undead monsters from the relevant branch
with chances for some out-of-depth ones. Places in D:3-, Swamp, Crypt,
Depths, and Zot.

--------------------------------------------------------------------------------
6d380fd48f | gammafunk | 2018-06-17 15:48:41 -0500

A set of general ghost vaults
These vaults all have progressive loots and monsters, with the number of
monsters and number/quality of loot both increasing with depth.

gammafunk_ghost_grave: A runed door vault with a ghost near a grave and
a small number of loot items, scaling up to three.

gammafunk_ghost_split: A runed door vault with a ghost and 0, 9, and 8
monsters. In earliest depths there is only a chance for a single 9, and
later the proportion of 8 and 9 compared to normal spawn 0 monsters
increases.

gammafunk_ghost_arena: A transporter vault with a ghost and 0, 9, and 8
monsters. Similar concept to the ghost_split vault above, but somewhat
harder due to being in a transporter. It scales up to higher numbers of
monsters an loot, so it will be fairly dangerous, yet more rewarding.

The first two vaults have vault room variants adapted for the Vaults
branch.

--------------------------------------------------------------------------------
c69a6cf3e1 | gammafunk | 2018-06-17 15:48:41 -0500

Some ghost vaults for the Vaults branch
Update the quick ghost vaults advil made as vault rooms. I've made them
place a bigger variety of the Vaults-specific monsters and standardized
the loot to be more in line with the other (forthcoming) ghost vaults.
Their names have been update to include advil's name and to follow a
standard naming convention.

--------------------------------------------------------------------------------
a2df02cfc3 | gammafunk | 2018-06-17 15:48:26 -0500

Update ghost vault guidelines
Mention the necessary ghost vault setup functions and update the
guidelines with more specific advice about ghost visibly, wall type
usage, and loot.

--------------------------------------------------------------------------------
99b25f011d | gammafunk | 2018-06-17 15:37:08 -0500

Extend the Vaults layout to place ghost vault rooms
Vault rooms placing ghosts should now set a `vaults_ghost` tag to be
selected as part of the chance for each level to have a ghost vault. The
Vaults layout rolls based on the chance value in dat/dlua/ghost.lua and
selects from rooms with the vaults_ghost tag. Vault rooms that place
ghosts should call the function vaults_ghost_setup() to set this and
other tags we want all ghost vaults to have.

--------------------------------------------------------------------------------
30c74a2e6c | gammafunk | 2018-06-17 15:37:08 -0500

Ghost vault functions and ghost DES file cleanup
Add some lua vault setup functions to set tags we'll always need for
ghost vaults and set the common ghost vault CHANCE value. For branches
other than Vaults, a ghost vault makes a call like:

``` : ghost_setup(G_) ```

Ghost vault rooms in the Vaults branch instead call
`vaults_ghost_setup(G_)`, which sets a `vaults_ghost` tag recognized by
the Vaults layout. Support for this will be added in a subsequent
commit.

This commit also organizes ghost.des into sections for future vaults and
removes the initial set of test vaults made by advil; those will
reappear in a subsequent commit, where they'll be revamped.

--------------------------------------------------------------------------------
9e38d4b15b | gammafunk | 2018-06-16 23:26:18 -0500

Reformat vault guidelines
Use proper subheaders instead of just bold text, and use code blocks for
DES examples.

--------------------------------------------------------------------------------
b611b69d05 | advil | 2018-06-16 23:26:18 -0500

Make bones file resolution coarser (first pass)
On the old ghost system, there was one bones file per level. Players die
at very different rates across the dungeon, but this worked fine,
because that just led to lower likelihood of ghosts in some places. In
the new system, since we're trying to have ghost generation rates
entirely determined by vault placement, this becomes problematic; for
example so far in the entire 0.21 cycle there is been exactly one death
in Geh:5, so it makes absolutely no sense for this level to have its own
bones file and permastore.

This commit tries to solve this problem by (i) mostly not having
per-level permastores (as of this change, only dungeon and lair do),
(ii) in some cases not having per-level bones files (though most of
these don't generate ghosts right now), and (iii) grouping all hells
together for both bones files and permastores, since even
per-hell-branch the death rate is extremely low (just 43 in 0.21 in Geh,
for example, only 11 of which even occurred in the first two weeks of
release -- barely enough to fill a permastore at current rates).

This may need a bunch more tweaking, and it may be worth considering
whether dungeon region is the right way to organize bones files at all
(alternative: xl, with some kind of subdivision for xl27).

(n.b. I wish bones data was in an sqlite db, not a bunch of files, but I
think this is unfortunately not practical to consider right now.)

--------------------------------------------------------------------------------
e1a807f9f3 | advil | 2018-06-16 23:26:18 -0500

Don't allow undead mirrored ghosts
This just converts them to human.

--------------------------------------------------------------------------------
3ff1096807 | advil | 2018-06-16 23:26:18 -0500

Clean up bones file debugging messaging
This centralizes all the complicated #define conditioning in one place,
so it's a lot easier to figure out what's going on, and hopefully this
will minimize accidental compiler warnings. This relies on a fairly
hacky unwind in one place, though.

This is all a bit complicated because one wants these messages to show
in wizmode on a server, which won't ever have a debug build.

--------------------------------------------------------------------------------
f8868589bc | advil | 2018-06-16 23:26:18 -0500

Don't crash on mprf while loading ghosts
Somehow this is a distant side effect of mprf. (prepare_message =>
silenced => _update_agrid => _actor_areas => monster::halo_radius =>
monster::holiness => monster::has_attack_flavour)

--------------------------------------------------------------------------------
45f54b8dd9 | advil | 2018-06-16 23:26:18 -0500

Lower ghost chances even more
In practice, the old 33% chance provides just an upper bound on
placement probability, because bones files can be empty. It's hard to
estimate, but I suspect from inspecting bones files from a live server,
that the probability of generating a ghost is (on average) usually quite
a bit lower, subject to a lot of variability due to server conditions.
Since the chances of ghost vault generation now are much closer to an
exact probability, they need to be lowered. For now, something like 10%
seems reasonable to me; in a 3 rune game this means maybe 4 ghost vaults
on average.

--------------------------------------------------------------------------------
0683b26712 | advil | 2018-06-16 23:26:17 -0500

Draft some design guidelines for ghost vaults
[skip ci]

--------------------------------------------------------------------------------
72bd9074f4 | advil | 2018-06-16 23:26:17 -0500

Improve (old) variable names

--------------------------------------------------------------------------------
7b7af9e8e6 | advil | 2018-06-16 23:26:17 -0500

Various vault adjustments based on feedback
Possibly these still drop too much loot.

--------------------------------------------------------------------------------
397a45317d | advil | 2018-06-16 23:26:17 -0500

Use CHANCE rather than WEIGHT for non-Vaults ghost vaults
This is more accurate. Also reduce the chance somewhat.

--------------------------------------------------------------------------------
d5aaa04207 | advil | 2018-06-16 23:26:17 -0500

Let ghosts use stairs
If they are all generated in sealed vaults that a player can chose to
open, letting them be able to use stairs seems much more reasonable.
(That behavior restriction is a very blunt instrument for balancing, in
any case.)

--------------------------------------------------------------------------------
46a0957fe4 | advil | 2018-06-16 23:26:17 -0500

Don't spawn randomly-placed ghosts on level generation
With this change, all ghost placement is done by vaults.

--------------------------------------------------------------------------------
30d8ac5547 | advil | 2018-06-16 23:26:17 -0500

Tweak ghost vault generation rates
This is aiming for a 1/3 chance of generation, following the old ghost
placement rates.

--------------------------------------------------------------------------------
0f524d8972 | advil | 2018-06-16 23:26:17 -0500

Don't use permastore when rewriting on level veto

--------------------------------------------------------------------------------
9478639006 | advil | 2018-06-16 23:26:17 -0500

Add a permanent store for some fallback ghosts
This addition is to deal with the question of how to place a ghost vault
if there are no bones files: basically, always try to keep around some
ghosts to use, rather than deleting all of them all the time. If this
idea works out, we may want to pre-seed download versions with some
sanitized ghosts.  This randomizes names saved in the permastore for
online play, but doesn't for offline play.

--------------------------------------------------------------------------------
a8b80c12d1 | advil | 2018-06-16 23:26:17 -0500

Add a description line for mirrored player ghosts
These won't be the norm, but I anticipate keeping them around as an
emergency fallback. (They could be fun to very occasionally generate on
purpose.)

--------------------------------------------------------------------------------
a3c4442c55 | advil | 2018-06-16 23:26:17 -0500

Add some ghost mini-vaults that will place in Vaults
Still pretty basic, I don't know much about vault design. The weights
might need rethinking, still.

--------------------------------------------------------------------------------
ce72dfe3e0 | advil | 2018-06-16 23:26:17 -0500

Allow ghosts built from bones files to be placed in vaults
This commit is the first proof-of-concept for a potential overhaul of
the player ghost system that places ghosts only in sealed
(runed/transporter) vaults. Specifically, vaults will accept "player
ghost" as a monster name, and on getting this description will
try to load a ghost from a bones file for the level being generated. If
there is no bones file, it falls back on making a ghost based on the
player; this is a placeholder for something better.

This idea tries to balance the flavor value of ghosts with the many ways
in which they are problematic; ghosts in vaults like those in this
commit are entirely optional.  (This commit doesn't disable normal ghost
generation.)

One glaring issue: how to control the distribution of these vaults? Both
of the vaults in this commit place a minimum good item, so having them
as frequently as current ghosts might be too much (possibly the items
should be toned down). With the current (absurd) weight they still don't
generate all that often; possibly a WEIGHT setting isn't the right way
to do this for these particular vaults.

--------------------------------------------------------------------------------
76e0a5f51a | Aidan Holm | 2018-06-17 00:51:53 +0800

Only show uncursed worn rings on ring swap menu
Previously, this menu would show all jewellery the user was carrying,
whether worn or not, including amulets.

--------------------------------------------------------------------------------
5591a09bbd | Aidan Holm | 2018-06-17 00:12:31 +0800

Remove quotes from tutorial lesson descriptions

--------------------------------------------------------------------------------
991dd4b2b4 | Aidan Holm | 2018-06-14 13:58:34 +0800

Fix webtiles lobby flash-of-unstyled-content
This prevents the popup box template from briefly being visible while
the CSS file (that includes a rule to hide .templates) is loading.

--------------------------------------------------------------------------------
c6e99f3da9 | gammafunk | 2018-06-13 17:00:57 -0500

Merge pull request #788 from NormalPerson7/fix-temple-vault
Fix some floor tiles in pf_slime_end_temple
--------------------------------------------------------------------------------
516f575acc | gammafunk | 2018-06-13 17:00:20 -0500

Merge pull request #787 from ebering/des-syntax-pr
Document glyph default behavior in .des
--------------------------------------------------------------------------------
2526e472d5 | NormalPerson7 | 2018-06-13 20:47:51 +0100

Fix pf_slime_end_temple
Previously this would place erroneous floor tiles on some altars,

because it was missing B in the FTILE assignment.
--------------------------------------------------------------------------------
ce5a547006 | Edgar A. Bering IV | 2018-06-13 14:57:25 -0400

Document glyph default behavior in .des

--------------------------------------------------------------------------------
c1e5224750 | floraline | 2018-06-13 13:44:58 -0400

Merge branch 'master' into webtiles-password-reset

--------------------------------------------------------------------------------
101988f953 | Aidan Holm | 2018-06-14 01:30:35 +0800

Add static files for CBRO ui-overhaul experimental
These changes are cherry-picked off the ui-overhaul branch (and modified
slightly to avoid affecting the lobby page). They shouldn't have any
effect on games outside of an ui-overhaul experimental, and will
eventually be superseded when ui-overhaul is merged.

--------------------------------------------------------------------------------
19b682e618 | advil | 2018-06-13 09:50:06 -0600

Replace remaining uses of `*map_find` with explicit ASSERTs
`*map_find` is highly dubious, because it assumes that the relevant map
is complete with respect to some enum (usually under some specific
assumptions), and none of the uses were plausibly cases where this is
just going to automatically be fine in the long run.  This change
converts the checking of that assumption to an explicit ASSERT, rather
than a segfault.

--------------------------------------------------------------------------------
bd48a76f0c | advil | 2018-06-13 09:29:38 -0600

Set player as summoner for elemental force
I'm not sure why this wasn't done in the first place, and there may be
some reason I'm not thinking about. But the immediate impact of this
commit is to prevent elemental force from placing tloc clouds when used
in abyss, since this is the wrong flavor.

--------------------------------------------------------------------------------
632a1ea631 | advil | 2018-06-13 09:27:52 -0600

Don't overwrite opaque clouds with non-opaque clouds
This will come up mostly for tloc clouds, I think.

--------------------------------------------------------------------------------
e4f624a966 | advil | 2018-06-13 09:27:52 -0600

Don't assume elemental force placement doesn't change clouds
This code assumed that the values returned by `cloud_at` were unchanged
from the first pass to all points of the second pass. However, in the
abyss, placement of elementals was also adding tloc clouds, which are
not in the map, and therefore `*map_find` was not safe. This could cause
crashes, which were relatively reliably triggered by reading summoning,
fog, and triggering elemental force in succession. (I think the impact
of summoning was just to get a crowd of already placed monsters around,
though I didn't test carefully why this mattered.)

--------------------------------------------------------------------------------
522be1ca40 | advil | 2018-06-13 08:35:55 -0600

Let `user_settings` be determined automatically
So that a manual config.py change isn't required. This will by default
use the same location as password_db.

--------------------------------------------------------------------------------
ecf68fcc41 | floraline | 2018-06-11 17:52:08 -0400

Report invalid recovery token before showing form
This way the user won't be prompted to enter a password
before finding out that their token is invalid.

--------------------------------------------------------------------------------
bff803d413 | floraline | 2018-06-11 16:11:37 -0400

Extract function for recovery token lookup

--------------------------------------------------------------------------------
3de9d90beb | floraline | 2018-06-11 16:06:09 -0400

Disallow password reset if feature is disabled

--------------------------------------------------------------------------------
3951a75b67 | floraline | 2018-06-10 14:58:25 -0400

Merge branch 'master' into webtiles-password-reset

--------------------------------------------------------------------------------
de97b25bfa | floraline | 2018-06-10 14:50:23 -0400

Move recovery tokens into separate table
This allows us to create multiple tokens for each
user, so recovery links won't become invalid if the
user gets impatient and makes multiple requests.

We also check to see if the token is expired
in order to return a more useful error message.

--------------------------------------------------------------------------------
f26638a71f | Aidan Holm | 2018-06-11 02:25:50 +0800

Reorder M&F and Axes on skill menu (Arrhythmia)
Tavern post: https://crawl.develz.org/tavern/viewtopic.php?f=8&t=25476

This makes the menu order consistent with the crosstraining cycle, as
well as with the aptitudes table columns.

--------------------------------------------------------------------------------
e4a679f7a1 | Edgar A. Bering IV | 2018-06-10 15:27:03 +0800

Clean up uses of unique_ptrs
operator bool and operator* allow a lot of superflous .get() calls to be
removed, as well as a few ASSERTs that will never trigger and some
braces.

--------------------------------------------------------------------------------
2c2b5428af | floraline | 2018-06-10 02:58:09 -0400

Remove debug sql script

--------------------------------------------------------------------------------
22b321efdb | floraline | 2018-06-10 02:19:04 -0400

Add email address regex validation
This is a very simple regex validation used by the
registration and forgot password forms. It only checks
for basic mistakes when inputting an email address.
The proper way to validate email addresses would be to
send a validation email.

Also adds a warning to the registration screen
indicating that an email is required in order to
perform a password recovery.

--------------------------------------------------------------------------------
d74e810b6f | floraline | 2018-06-10 01:47:21 -0400

Remove debug text

--------------------------------------------------------------------------------
58cd727ae7 | floraline | 2018-06-10 01:41:21 -0400

Automatically upgrade db where columns are missing
When the server is started, we will automatically upgrade
the database in the event that one already exists but is
missing necessary fields.

This function is intended only to add things like new columns
and tables, which can be added to an existing database without
re-creating it.

--------------------------------------------------------------------------------
cc00237d00 | floraline | 2018-06-10 01:02:50 -0400

Merge branch 'master' into webtiles-password-reset

--------------------------------------------------------------------------------
06be723832 | floraline | 2018-06-10 00:57:50 -0400

Automatically upgrade user db on startup
I am giving meaning to sqlite's user_version here.
It is assumed that existing databases will have a
value of zero, and a value of one will indicate that
the database is ready for the password recovery
feature.

Future changes to the database could take advantage
of this function to further upgrade existing
databases. And a database that is very out of date
could potentially go through multiple upgrades
at once!

--------------------------------------------------------------------------------
d338dc9835 | floraline | 2018-06-09 18:54:46 -0400

Hide recovery dialog if recovery is not enabled
This prevents a user from following a recovery link
in their email and attempting to reset their password
if password recovery has been disabled.

--------------------------------------------------------------------------------
df0964f77a | floraline | 2018-06-09 18:20:26 -0400

Move boilerplate SMTP code into helper function
By extracting the SMTP function calls into a separate function,
we simplify the business logic and make it easier to maintain.
This also enables us to easily change the way emails are sent,
such as queuing them for sending by another application.

--------------------------------------------------------------------------------
fe6c23a32d | floraline | 2018-06-09 17:42:22 -0400

Enhance emails sent for password recovery
By sending a multipart mime message, we can include an HTML version
of the message that allows the user to click on the links directly.
This has an added benefit of helping the email appear more legitimate
to other email servers.

This commit also adds a subject line and proper cleanup of the
email server object.

--------------------------------------------------------------------------------
cd0a9817aa | floraline | 2018-06-09 16:40:18 -0400

Use CSPRNG urandom to generate the password reset token

--------------------------------------------------------------------------------
5c5de1cb09 | advil | 2018-06-09 16:28:21 -0400

Let ArmourOffDelay be invalidated for undefined items (11494)
This can apparently happen (rarely) in local tiles if mouse clicks pile
up extremely fast, leading to an ArmourOffDely -> DropItemDelay ->
ArmourOffDelay -> DropItemDelay sequence for the same item. Since the
item starts off as an inventory item, they all use the same reference
for the item, but dropping invalidates the item (see
`items.cc:dec_inv_item_quantity`), it is no longer a reference to a
valid item after the first drop, leading to a crash.  DropItemDelay
already handled invalid items.

It might also be good to have drop_item just abort if there's already a
DropItemDelay scheduled for the item in question, but that's somewhat
tricky to do technically, since both item drop delays actually call
drop_item. This safety check for ArmourOffDelay still seems reasonable
anyways.

--------------------------------------------------------------------------------
b7c2d6f068 | floraline | 2018-06-09 16:18:46 -0400

Merged master into working branch

--------------------------------------------------------------------------------
caf04dffec | advil | 2018-06-09 14:17:00 -0400

Show mute status in spectator list

--------------------------------------------------------------------------------
2dae380ea3 | advil | 2018-06-09 14:17:00 -0400

Add a way of minimizing and hiding the chat window
This adds a third mode to the chat window: it can be minimized into a
small box with just a `+` that does not visually change with chat state,
in case (for any number of reasons) a player doesn't want to be
distracted by chat. The window can be restored by clicking the +, or by
hitting F12.

There's also a slightly hidden mode that really gets rid of chat, aimed
at streamers who are currently just doing this with browser dev tools.
To get this, type `/hide forever` in the chat window. To get it back,
you will need to reload, or log out and in.  When a user types "/hide
forever" this will also hide their name from the spectator view in the
chat window (basically the same behavior as a console spectator or
viewer).  Should this instead do something like "n hidden"?

None of this state is saved, although it could be if there's demand for
that.

--------------------------------------------------------------------------------
56e49a4ffc | advil | 2018-06-09 14:17:00 -0400

Add an `/unmute *` command, /help, misc cleanups
Intentionally making it easier to clear than to add to mute lists.

--------------------------------------------------------------------------------
94a6f44633 | advil | 2018-06-09 14:17:00 -0400

Implement mutelist saving with a server-side sqlite db
This implements per-user saving of mutelists across sessions.  Because
I'm paranoid, I used a separate database from the password database;
perhaps this is overkill. Part of my concern is that the password
database is shared with dgl, and I just didn't want to have to worry
about what dgl might do.

--------------------------------------------------------------------------------
186421b65b | advil | 2018-06-09 14:17:00 -0400

Proof of concept implementation of server-side tileschat mute
This implements per-process muting for tileschat in the webserver. There
are three commands, "/mute", "/unmute", and "/mutelist"; only the player
can use any of these commands. Right now this doesn't save at all, so
would need to be reconstructed on every save/reload. It's just a first
pass / thought experiment in how better tileschat controls could be
implemented, so more work would be needed before merging. There's no
indication to anyone except the player who is muted, which might be good
to have.

I'm not sure this is the best way to do it, especially for a quick fix
for spamming. In ##crawl-dev gammafunk and I discussed an alternative
that would be client-side, per-user (instead of for the whole channel),
and saved in a cookie, which could be better, and wouldn't require any
server updates. (It might be possible to adapt the cookie saving idea to
the current commit.)

--------------------------------------------------------------------------------
bd68aaf879 | shieldal | 2018-06-09 14:02:06 -0400

Fix grammar in Zin's laws description (0011491)

--------------------------------------------------------------------------------
c2a7574752 | floraline | 2018-06-09 02:19:05 -0400

Adds DB changes required for password reset feature

--------------------------------------------------------------------------------
98963a99e5 | floraline | 2018-06-09 01:39:54 -0400

Adds password reset token which allows a user to enter a new password for their 
account. The password reset email will now include this token. This commit adds 
another required config item for the password reset feature.

--------------------------------------------------------------------------------
552bd0d42d | floraline | 2018-06-08 21:34:49 -0400

Adds config values for password reset feature. Admin can turn this feature on 
or off, SMTP config is required for this to be used.

--------------------------------------------------------------------------------
4c2974a1c6 | floraline | 2018-06-08 21:08:59 -0400

Added Forgot Password link to allow users to request an email to reset their 
password. This is the first half of this implementation, still needs email 
config and reset link.

--------------------------------------------------------------------------------
49b1da7e92 | advil | 2018-06-08 16:07:07 -0400

Add command sequences to the front of the buffer for crawl.do_commands
I think this will finally fix 11489 and related bugs. The basic problem
here is that in all attempts at dealing with this before,
crawl.do_commands has potentially separated the first element of the
sequence from the remainder by pushing the remainder of the sequence to
the back of the macro buffer (either the sendkeys buffer in the original
version and 3f858e37d316, or the regular buffer in d5c8bedc332) and
triggering the first command immediately. If multiple input keys happen
very fast, there could be intervening keys at the front of the buffer
when the first command is triggered. For autofight, the primary (only?)
use of crawl.do_commands, this sometimes resulted in targeting commands
in the wrong context, depending on the key.

This behavior could happen in online play with lag or network
randomness, and I recently discovered it could also be triggered in
offline play by e.g. binding the macro sequence `\{9}\{27}` to a key.

This change pushes the remainder of the sequence to the front of the
regular macro buffer, which guarantees that they won't be separated. The
problem that was causing in crashes in d5c8bedc332 won't apply, since it
was an ASSERT that only triggers on pushing to the back of the regular
macro buffer.  This fixes some other weird behavior introduced in
461d14e83c155adf, such as making it impossible to put tab in a macro
with other keys; that commit in general probably produced errors in more
places than the previous versions.

I did not yet change crawl.process_keys similarly, but this maybe should
be done.

--------------------------------------------------------------------------------
fc9006d011 | Alex Jurkiewicz | 2018-06-09 00:35:26 +0800

Add error output to unbrace
Changes the output of `util/unbrace -n` so it's informative for new
contributors.

--------------------------------------------------------------------------------
c254099d7c | Nikolai Lavsky | 2018-06-08 13:45:48 +0300

Make Iron Giants and other Throw Ally users obey Sanctuary
Iron Giants can throw monsters at the player protected by Sanctuary.
They can do up to 35 damage (random2(HD*2)) per throw without angering
Zin. Originally Throw Ally was a Robin-exclusive ability, so this was
not a problem.

Normally monsters don't use abilities that can harm the player, if the
player is in sanctuary. These checks are done in
mon-cast.cc:_ms_waste_of_time(). But for spell_harms_target()
Throw Ally is not a harmful ability. This is because the ability
doesn't have a SPFLAG_TARGETING_MASK flag (either SPFLAG_DIR_OR_TARGET
or SPFLAG_TARGET). Since Throw Ally is a smite-targeted ability, the
appropriate flag for it is SPFLAG_TARGET.

--------------------------------------------------------------------------------
b446440d2e | advil | 2018-06-07 17:49:45 -0400

Fix (un)woken_rest.rc
This entomb function didn't work right because it changed the player's
location to a metal wall, which teleported them away.

--------------------------------------------------------------------------------
461d14e83c | advil | 2018-06-07 16:05:34 -0400

Don't allow crawl.process_keys or crawl.do_commands with pending input
Each of these lua calls pushes a sequence into the sendkeys buffer, and
immediately triggers the first member of the sequence. If there's
anything else in either pending input buffer, (a) it should presumably
have priority over new commands, and (b) the remainder of the sequence
(if there is one) will get separated from the initial one.

For sequences of keys that don't obey this constraint, then
crawl.sendkeys is the correct call, it will add things to the back of
the buffer only. There is apparently no equivalent call for commands,
but it could be added if necessary.

--------------------------------------------------------------------------------
49d386fb44 | Nikolai Lavsky | 2018-06-07 22:01:03 +0300

Fix Injury Bond description
Injury Bond affects all allies in LOS, not just one.

--------------------------------------------------------------------------------
11ed031617 | gammafunk | 2018-06-05 08:08:25 -0500

Fix glyph usage in two temple entrances (Reeces)
Due to a missing substitution, temple_doors_ab would sometimes place a
large number of random altars instead of placing stone or rock wall as
intended. Fix this, and also add a connecter on the right side of this
vault and temple_doors_cd for the cases when these vault sections are
not trimmed. This will prevent the resulting passage from simply running
into a wall.

--------------------------------------------------------------------------------
a0624bf62c | Chris Campbell | 2018-06-04 16:43:11 +0100

Update some more glyphs in the manual

--------------------------------------------------------------------------------
14ec769025 | NormalPerson7 | 2018-06-04 16:27:55 +0100

Remove some obsolete references to rods

--------------------------------------------------------------------------------
7d3bdaba1d | NormalPerson7 | 2018-06-04 16:27:55 +0100

Escape the | character in crawl-manual.rst to fix some formatting

--------------------------------------------------------------------------------
bef45da242 | Chris Campbell | 2018-06-04 16:21:06 +0100

Merge pull request #722 from dplusplus/fix_help
fix help; "stick" tag is not available in current version
--------------------------------------------------------------------------------
8c5347a44d | Chris Campbell | 2018-06-04 16:07:22 +0100

Merge pull request #767 from ebering/vd-full-health-prompt
Abort Vampiric Draining at full health
--------------------------------------------------------------------------------
1fb7470005 | advil | 2018-06-03 10:13:20 -0400

Quiet some gcc-specific shadow warnings on tiles builds
gcc (but not clang) warns if a local variable shadows a member function.
This is probably a bit overenthusiastic of gcc, but it doesn't hurt to
get back to warning-free compilation.

--------------------------------------------------------------------------------
ee5f7238b3 | advil | 2018-06-02 17:00:16 -0400

Use positive -W flags to check for compiler compatibility
This is because gcc will only emit a warning for unknown negative
(`-Wno-foo`) warning flags if there are other warnings/errors that show
up. However, both gcc and clang guarantee a positive and a negative form
for all warning flags, so it should be safe to test the positive form
(-Wfoo), which will trigger a message from gcc if unknown.

--------------------------------------------------------------------------------
37d83eae1e | gammafunk | 2018-06-02 11:32:07 -0500

Make Lee's Rapid Deconstruction never break walls
This commit removes the ability of LRD to break any type of wall. No
changes are made to the types of walls or monsters that LRD can target
nor to how damaging the LRD fragments are.

LRD provided access to infinite digging and wall destruction without
requiring much training, especially if enhancers were used. We'd like to
make access to digging relatively limited since infinite digging
encourages the player to carefully and tediously dig out paths that are
ideal for luring and killing monsters. LRD's destruction of
stone/metal/crystal walls also made it too easy for the player to bypass
the intended entry of many vaults. The Shatter spell allows some of
these things, but it requires far more investment to be castable.

The wand of digging, Shatter spell, and other species/god abilities
collectively do a good job of providing the player with forms of wall
destruction or movement. LRD without wall destruction is still a very
strong spell and remains a fairly complicated one due to all of its wall
type and monster type interactions.

--------------------------------------------------------------------------------
8c8ef71062 | advil | 2018-06-01 12:06:05 -0400

Fix webtiles status artifacts due to custom status light code (11488)
When a duration was immediately followed in duration_type by a duration
that has some custom webtiles code in tileweb.cc:_update_statuses, the
status_info wouldn't be fully reset for the custom status; I'm not sure
if this had any noticeable effects beyond the acrobat case, but this
would've bitten someone eventually (it's more or less by accident that
divine shield follows divine stamina, so one couldn't have both at the
same time).  For acrobat in particular, 8519d868e99a introduced a check
that was missing a continue, meaning that recite cooldown (the next
duration in the enum) would show up twice if acrobat was not active.

This also replaces a janky static reset function for status_info with a
proper constructor that actually guarantees the int is initialized, and
switches unnecessary pointer uses of status_info to references.

--------------------------------------------------------------------------------
9e76084390 | Edgar A. Bering IV | 2018-06-01 05:47:39 -0500

Make splash_gauntlet patrolling, add bog bodies
The splash_gauntlet loses its 'run the gauntlet' theme if the monsters
wander off and it's just a lone electric eel. Added bog bodies to the
monster mix and the patrolling flag to the vault.

The weight preserves the expected number of monsters at 4 + maybe the
eel, which might be too heavy with patrolling.

Committer's Note: Squashed a previous commit that was reverted and
updated commit message accordingly. Closes #763.

--------------------------------------------------------------------------------
17c3723931 | gammafunk | 2018-05-30 07:15:45 -0500

Merge pull request #762 from ebering/arrival-vault-pr
A knot of arrival vaults.
--------------------------------------------------------------------------------
cf5b0c64b7 | gammafunk | 2018-05-29 07:24:02 -0500

Merge pull request #769 from ebering/uskayaw-stomp-descript
Correct Usk stomp description
--------------------------------------------------------------------------------
20ad6ec901 | Edgar A. Bering IV | 2018-05-28 18:12:24 -0400

Correct Usk stomp description

--------------------------------------------------------------------------------
ac93bacefe | gammafunk | 2018-05-28 16:58:50 -0500

Update an ice cave transporter vault
Rename this vault to ice_cave_statue_garden_transporter. The teleporter
feature is no more, so having this in the vault name is confusing.

Also remove no_tele_into from the second chamber. This wasn't ever
necessary, since both chambers have exits. It's also spoilery that
reading teleport in the second chamber always took the player to the
first chamber.

To allow the player to return to the first chamber should they have
forgotten something there, make a return transporter in the second
chamber that's only reachable from the loot area. Simplify glyph usage
now that distinct glyphs aren't needed for no_tele_into purposes.

--------------------------------------------------------------------------------
90f0736f4d | gammafunk | 2018-05-28 16:58:50 -0500

Mark an unused feature tile for removal after major version change

--------------------------------------------------------------------------------
7c5a50ce01 | gammafunk | 2018-05-28 16:58:44 -0500

Reindent a lua function

--------------------------------------------------------------------------------
04e6133e90 | gammafunk | 2018-05-28 16:55:36 -0500

Move some unused lua code to the save compat DES file
When these functions were deprecated, I kept them in their original
files with a TAG_MAJOR comment. Some save compat testing I did seemed to
show that they would only properly be seen when found in the original
DES file. However it's awkward having these functions lie around in
their original files, and it's been about 1.5 releases since the
functions were deprecated. The vast majority of games that might have
needed the save compat functions are finished by now, and any errors
will not be game-breaking. If we do see any live save compat errors due
to the functions being moved to compat.des, we can possibly get a copy
of the save and do some troubleshooting to look into why the functions
aren't loading.

--------------------------------------------------------------------------------
04dac39c41 | Edgar A. Bering IV | 2018-05-28 03:14:09 -0500

Update old glyph sets for teleporter->transporter
DEC/IBM now re-glyph transporters to use the teleporter glyph.
old_unicode already used © for teleporters, so the line is deleted.

Committer's Note: Closes #765.

--------------------------------------------------------------------------------
b72857b65b | Edgar A. Bering IV | 2018-05-26 18:12:55 -0500

Update options_guide.txt for teleporter->transporter
The option display_char no longer cares about teleporter and now takes
transporter and transporter_landing.

--------------------------------------------------------------------------------
d2a9cce0b5 | advil | 2018-05-26 16:41:10 -0400

Explicitly store version history in the save file as a prop
This can usually be reconstructed from the morgue, if the morgue is
available, but sometimes it's not, and it can be really annoying not to
have this info.

--------------------------------------------------------------------------------
10d5862e6f | advil | 2018-05-26 10:16:39 -0400

Fix shopping list crashes from multiple items with the same name
Mainly happening when trying to remove spellbooks from the shopping
list.  It was possible to get multiple items with the same name on the
shopping list, which would then (depending on iterator order) lead to
crashes if they were removed. All of the find/delete code behaved
unreliably in this case, because it worked by getting the first index by
name, which may not actually match up to the `thing` that was passed in,
and so the removal order didn't match up with the iterator order.  This
change generalizes these bits of the shopping list code to not assume
that there will be single items associated with any name-level pair.
This fix is more of a patch than a complete fix, because:

1. The level_pos checks in this code seem to be still unreliable in ways
   I haven't fully tracked down yet.
2. Reading the code, it was supposed to be impossible to have multiple
   items with the same name, but the checks for this are hopelessly
   broken (as far as I can tell), and probably undesireable anyways.
3. It seems to me that associating shopping list items with level ids,
   rather than particular shops, is just a fundamental design flaw that
   makes it impossible to uniquely associate shopping list entries with
   actual particular items in the game. This will need more of a rewrite
   to fix, though.

--------------------------------------------------------------------------------
925dece084 | advil | 2018-05-26 10:16:24 -0400

unbrace

--------------------------------------------------------------------------------
74ca774d89 | Edgar A. Bering IV | 2018-05-25 16:53:53 -0400

Abort Vampiric Draining at full health
The spell will have no effect so don't waste a turn and mp casting it.

--------------------------------------------------------------------------------
6609fc65db | advil | 2018-05-25 14:24:28 -0400

Quiet some gcc warnings (NP7)

--------------------------------------------------------------------------------
97ce8ef721 | advil | 2018-05-24 16:33:16 -0400

Tweak wall jump messaging

--------------------------------------------------------------------------------
e766b1ce6f | advil | 2018-05-24 16:31:03 -0400

Automatically retract mandibles if wall jump is triggered as an ability

--------------------------------------------------------------------------------
154e428b3a | advil | 2018-05-24 15:36:58 -0400

Tweak passwall range/power
Because spell range is always capped by your current vision range in
`spell_range`, and passwall range was set to 9, passwall spellpower had
a weird interaction where range capped out way before spellpower (at 140
spellpower; would be higher on a Ba I guess). It was also one of those
spells where max spellpower was impossible anyways (e.g. 27/27/27 int 50
still didn't do it).  This change makes it so that max spellpower = max
range (now 7, the practical range for most non-Ba before), with max
spellpower adjusted down slightly (120) from where the previous actual
cap was, though it's still extremely implausible to get.

This commit more or less maintains the status quo with more meaningful
spellpower; I'm not really opposed gameplay-wise to longer passwalls
being possible, but this would present some problems with the
introduction of the targeter in the preceding commit. If someone wants
to do this you'd need to start by special-casing it in
spl-util.cc:spell_range.

--------------------------------------------------------------------------------
cae90e3dce | advil | 2018-05-24 15:36:58 -0400

Refactor passwall and add a targeter
This commit rewrites the passwall logic to hopefully be much cleaner,
and more consistent about revealing map information (following up on
4197694d79069). It adds a targeter that shows the exact possible range
of a passwall, covering any possible landing sites, as well as the
infrastructure necessary for targeting rays to display out of sight.

The commit also fixes a number of other longstanding passwall issues,
6571 and 11229. Now when you abort a passwall with full knowledge of the
possible landing sites, it should not waste a turn.

One potential issue with this change is that the passwall targeter can
reveal map bounds, because the ray won't render. I'm not sure there's
anything to be done about this, though, and this is far from the only
thing that does (e.g. setting exclusions on out of bounds positions).

--------------------------------------------------------------------------------
89d60a11d8 | gammafunk | 2018-05-22 23:00:02 -0500

Merge pull request #758 from ebering/banished-cleanup
Code cleanup
--------------------------------------------------------------------------------
4197694d79 | advil | 2018-05-22 18:36:00 -0400

Don't leak information about passwall landing site via exclusions
Discovered by u/top_koala,
https://www.reddit.com/r/dcss/comments/8l5qhx/passwall_bugexploit_to_help_you_st
ab_things/

Basically, exclusions on unseen spaces could be used to avoid stopping
earlier than desired if the earlier space is floor. This change will
prompt on intermediate exclusions on unseen tiles that would undershoot
the actual destination. There is probably still a similar overshoot
leak, but I'm less clear on what exactly the check is or whether such a
leak is as useful in practice.

--------------------------------------------------------------------------------
c9969fe373 | Edgar A. Bering IV | 2018-05-21 13:09:57 -0400

A knot of arrival vaults.

--------------------------------------------------------------------------------
9628fc87f1 | Alan Malloy | 2018-05-15 13:00:12 -0700

Document a surprising (to me) pointer alias

--------------------------------------------------------------------------------
2950eec11b | Alan Malloy | 2018-05-15 13:00:12 -0700

Fix a comparator to be permissible (hexaflexagon, #11472)

--------------------------------------------------------------------------------
bed293b087 | advil | 2018-05-15 09:44:14 -0400

Revert "Revert "Handle just seen monsters better, especially fast ones (791)""
This reverts commit 492bfec932320e40cd2473a1590838919e5ca699.

--------------------------------------------------------------------------------
492bfec932 | advil | 2018-05-14 20:10:20 -0400

Revert "Handle just seen monsters better, especially fast ones (791)"
Getting random crashes in arena test, not sure what's up and I won't be
able to look until later.

This reverts commit ae1bc95d447d08b7691663c52d789b5344f7abc1.

--------------------------------------------------------------------------------
ae1bc95d44 | advil | 2018-05-14 18:10:29 -0400

Handle just seen monsters better, especially fast ones (791)
This improves the handling of several cases of fast monsters that are
newly seen. First, it was possible for them to move multiple times in
world_reacts with the following buggy pattern: they move into the
players los, get announced, shout, and leave los -- this last step is
supposed to be announced, but isn't unless it happens on the first move.
Second, it was possible for fast monsters to move into and out of los
without being announced at all, as long as they were wandering, and now
they will be announced in such cases.

However, there is an odd consequence of this, which comes from the fact
that observing a wandering monster for the first time temporarily
changes its behavior.  As long as the observation happens in the middle
of world_reacts (not on the player's movement), and the monster has more
energy, the monster subconsciously tries to stay in the player's los for
at least one turn, so the player can get a real glimpse. Consequently,
in cases where previously a fast monster would flicker in and out of the
player's los with no one being the wiser, the monster will now be marked
as SC_JUST_SEEN and most likely stay there for a turn. This probably
adds an extra stealth check to such cases. I'm not sure how often this
happens in practice, I had to jigger the wander behavior to get it to
easily replicate.

I thought that when I fixed the core bug, I could simplify things, but
this was wrong -- I don't dare remove any code to do with previously
unseen monsters.  This whole system is completely insane.

--------------------------------------------------------------------------------
1387785b41 | advil | 2018-05-13 22:07:58 -0400

Clear seen flags when wizmode moving a monster out of view
For testing messaging on newly seen monsters, as it is otherwise
extremely hard to set up repeatable scenarios. I don't think it should
be a problem to have this always happen.

--------------------------------------------------------------------------------
b7b63b23af | advil | 2018-05-13 21:26:19 -0400

Relax restrictions on wizmode monster moving
This now allows you to move monsters past transparent walls, and even to
positions out of los. (It also allows moving into solid features, and
into the player's position, but both of these were already possible. The
behavior when you move a monster onto another monster is also the same
as before - they swap.)

--------------------------------------------------------------------------------
e82b8a919a | advil | 2018-05-13 20:23:06 -0400

Properly handle previous offlevel travel targets in map view (11466)
Before, this would go to the coordinates of the previous travel target,
but without changing levels.

--------------------------------------------------------------------------------
acd343e8ff | NormalPerson7 | 2018-05-12 17:05:42 +0800

Dont tell player of dragon scales creation when to be destroyed (#11464)
Previously, the message saying scales had been dropped appeared after
the message saying they had been destroyed (#11464, Leszczynek), which
is erroneous.

This commit removes the message for scales being dropped entirely when
over water/lava, because the scales were hardly "intact", leaving just
the "You hear a splash" message.

--------------------------------------------------------------------------------
e8614c91a3 | Aidan Holm | 2018-05-12 14:37:34 +0800

Edit swastika-shaped arrival vault
It's now less of a spiral, and more of a wavy pattern. Perhaps a rename
is in order? I also fixed up the slanted corners of the vault, which
were not symmetrical.

--------------------------------------------------------------------------------
2b68d144a4 | Aidan Holm | 2018-05-11 22:05:05 +0800

Add spell library contents to dump
Excludes spells you already have memorised, to avoid duplication.

--------------------------------------------------------------------------------
beac91de7a | advil | 2018-05-11 08:46:25 -0400

Add gnolls to mutation test (Sergeek)

--------------------------------------------------------------------------------
97be04f903 | advil | 2018-05-10 21:55:22 -0400

Fix messaging for oods that have just been created (11469)
OODs are created at (0,0) and then get a placement somewhere in the
first call of iood_act. If they were to hit a wall immediately (for
example if fired point blank into the wall with Z), a check for ood
visibility that determined whether to print the crash message was
failing, because the player can't see (0,0). This change uses the IOOD's
actual starting position after fuzzing for the visibility check and
cloud placement. N.b. I think that this position might sometimes be the
caster's position or a solid feature in tight quarters, which is
presumably why the ood isn't placed immediately; the cloud still doesn't
usually show up in these cases for this reason.

--------------------------------------------------------------------------------
ad653724b0 | Edgar A. Bering IV | 2018-05-10 10:40:28 -0400

Code cleanup
Remove an unnecessary call to push_features_to_abyss from banished()

--------------------------------------------------------------------------------
b855193d78 | gammafunk | 2018-05-09 17:08:40 -0500

Prevent shafts/teleports into an early cloud vault (MainiacJoe, #11449)
That vault places large numbers of cloud generators in a long corridor.
Players shafted or teleported into it from early dungeon levels are very
likely to have no means of escape depending on where they land. Mark the
vault with no_tele_into and clean up DES syntax.

--------------------------------------------------------------------------------
0c774a7e83 | advil | 2018-05-09 09:46:03 -0400

Add a necessary emptiness check (11467?)
Possibly was causing crashes with -D_GLIBCXX_ASSERTIONS on gcc.

--------------------------------------------------------------------------------
b098539405 | advil | 2018-05-08 10:30:31 -0400

Use "recommended" in the character menu instead of "viable"
The intent of this change is to weaken the implication (technically a
scalar implicature) that non-highlighted combos are really bad.
Right new the inference is that that non-highlighted combos are not
viable (because if they were viable they would be highlighted). It's
hard to avoid some inference of this kind, but "not recommended" seems
much weaker than "not viable".

I didn't change the use of "viable" in rc files, or in the underlying
code.

--------------------------------------------------------------------------------
9ff8d774c1 | Poroing | 2018-05-07 21:30:15 -0500

Fix obsolete function name.
Committer's Note: automagic.lua is still defining and using a
delta_to_vi() lua function. Automagic should be rewritten to use this
delta_to_cmd() for the same reason autofight was rewritten in 7aac3cfd.
The delta_to_cmd() definition could then be moved to
dat/dlua/userbase.lua, which is loaded for clua as well as dlua.

--------------------------------------------------------------------------------
6463fda370 | advil | 2018-05-07 19:57:09 -0400

Handle startup preferences (esp. name) better when restarting
Startup preferences weren't really working properly for new games
without completely exiting the program, only restoring handled the
various restart cases.

Also remove some no-longer-relevant code from 2006.

--------------------------------------------------------------------------------
35e51767bf | Alan Malloy | 2018-05-07 13:54:16 -0700

Fix a crash in game startup
It was possible (but not guaranteed) to cause a crash by starting a
new game after quitting to the menu from a previous game, because we
didn't clean up the existing shopping_list, leaving us in an inconsistent
state.

--------------------------------------------------------------------------------
c217a56188 | Aidan Holm | 2018-05-07 23:26:49 +0800

Fix loading of paletted images on SDL tiles
Previous code was assuming that all pixel data was contiguous, which was
not the case: pixels in a row are contiguous, but rows may be separated.

--------------------------------------------------------------------------------
a933591907 | Neil Moore | 2018-05-05 12:17:51 -0400

Remove some parentheses to satisfy unbrace.
I'm not entirely convinced that prohibiting parentheses around return
expressions is a great policy, particularly for multi-line expressions
like this one, but whatever.

--------------------------------------------------------------------------------
27b4f7b972 | Neil Moore | 2018-05-05 12:15:28 -0400

Remove references to obsolete mutation sources (dds1)
[skip ci]

--------------------------------------------------------------------------------
a245024437 | pikaro | 2018-05-05 10:37:43 -0400

Expose current LOS in CLua, adjust autofight and automagic to use it

--------------------------------------------------------------------------------
c4eb3cb44a | gammafunk | 2018-05-05 03:43:31 -0500

A "magic classroom" special room for Depths (Skrybe, #11384)
A Depths special room that places spell-casting monsters with small
chances to place one of a few spell-using uniques that normally appear
in Depths.

This only non-formatting changes from the original submission are to add
Boris to the unique list and to tweak the least dangerous case that can
happen on Depths:1-2 based on the result of a random roll. For that
case, place a tengu reaver as the alternate for a lich instead of having
small chances for said uniques. These uniques normally spawn through
their vaults on Depths:3-5 and are certainly more comparable to fighting
an ancient lich that places in the worst case in this special room.
Therefore give them weight only in that worst case monster list.

--------------------------------------------------------------------------------
8bb545f033 | advil | 2018-05-03 22:20:20 -0400

Remove a dubious nullptr-terminated vararg
and replace with initializer lists.

--------------------------------------------------------------------------------
d0aace3bf0 | advil | 2018-05-03 22:19:08 -0400

Use the sendkeys buffer for local tiles clicking
Since this seems to be safer for CMD_... sequences that might be mixed
in with other keystrokes.

--------------------------------------------------------------------------------
3f858e37d3 | advil | 2018-05-03 08:25:09 -0400

Go back to adding autofight commands to the secondary buffer
Adding them to the main buffer is causing some occasional crashes that I
can't replicate, probably about the interaction of tab with other keys;
going back to doing this should avoid triggering the relevant ASSERT.

--------------------------------------------------------------------------------
fed312b5ef | advil | 2018-05-02 22:19:27 -0400

Add the ultimate enemy
I got tired of wizmode test monsters inconveniently moving around and
dying. (How did we not have one of these before?)

--------------------------------------------------------------------------------
d5c8bedc33 | advil | 2018-05-02 20:50:19 -0400

Don't convert lua do_commands to keys and back (11095)
An actual command_type should be handled ok by anything on the other end
of this, so converting to keys immediately is overkill. This was causing
problems with keybindings in targeting mode that remapped numbers to the
direction commands in unusual ways: the first call converted the
commands to keys, and the keys got converted (incorrectly) to vikeys by
`unmangle_direction_keys`; they then got converted back to commands,
preserving the incorrect mapping. So the exact bug in 11095 is really
that unmangle shouldn't be called on the output of command_to_key, since
it isn't aware of keybindings.

The bug required a somewhat unusual key mapping to surface; in this
particular report 6 and 8 were (maybe by accident) swapped relative to
their normal position on a keypad, and this is why unmangling went
wrong.

Only autofight even uses this lua call, so hopefully there are no
other consequences to this simplification, but if tab starts acting
weirdly, this commit was probably why.

--------------------------------------------------------------------------------
7f50228948 | advil | 2018-05-02 00:47:30 -0400

Don't print errors when mouse targeting a ranged weapon
Consequence of 991379fdf84c: mouse targeting uses CMD_... sequences
directly, and for targeting it uses ones that are targeting context
commands. The call in `fire_target_behaviour::get_command` to
`key_to_command` uses the default key context, since the four commands
it's checking aren't actually targeting keys, but any input was passed
through this, and since `key_to_command` validates the context for any
commands you give it, the mouse targeting command sequence caused a
bunch of errors each time it was called (the errors were basically just
cosmetic).

If we make a habit of using some `command_type`s in multiple contexts,
the context system should probably be refactored to handle that a little
bit better.

--------------------------------------------------------------------------------
5dc3fd9af9 | gammafunk | 2018-04-30 12:14:08 -0500

Replace encased rock with stone in an Elf vault (NormalPerson7)
This rock can be turned into earth elementals by deep elf elementalists
so that the elementals just remain trapped yet still detectable by
antennae. There's no reason to use rock in these inaccessible areas, so
replace it with stone. Closes #750.

--------------------------------------------------------------------------------
927ce74a54 | Chris Campbell | 2018-04-30 16:18:34 +0100

Don't give monsters a movement penalty when escaping engulf

--------------------------------------------------------------------------------
8baa81b392 | NormalPerson7 | 2018-04-30 16:17:50 +0100

Remove Engulf's movement penalty and make it block all god abilities
This commit removes the undocumented 50% movement penalty from Engulf
(mentioned by #11458) and makes Engulf block all god abilities.

This makes being unbreathing and being able to swim identical for the
purposes of Engulf, and removes a special case in Zin's recite.

Adds a new lua option you.res_drowning to avoid having to
list all of the races and forms which are immune to drowning in the
Engulf status description.

[Squashed and cleaned up some formatting. Merges #748 PR - MarvinPA]

--------------------------------------------------------------------------------
8519d868e9 | advil | 2018-04-29 23:44:30 -0400

Have display of the acrobat ev boost in tiles match console
Neither the number, nor the color, were showing properly in webtiles,
where by properly I mean showing with the timing that they do in
console. (As discussed in the dev channel in the past, it isn't entirely
clear what the best way to show this is, but I went with the existing
behavior.) To get the number to show, the LAST_MOVE_... property needed
to be reset slightly later in main.cc, because it was getting cleared
before the webtiles redraw (and probably regular tiles too, though I
didn't test it); this led to it only appearing under strange
circumstances such as resting with 5. To get the color to render, it
just needed some explicit casing to get the timing right. As of this
commit, the behavior should be the same in tiles/console.

I also slightly generalized / unified some of the logic for checking
whether to show the acrobat boost.

--------------------------------------------------------------------------------
09e6169d0a | Aidan Holm | 2018-04-29 02:10:50 +0800

Revert "Allow auto-travel to/from all locations"
This reverts commit cd58e32bf33d8759b4cd63677a1ee1a00a8f276d.

--------------------------------------------------------------------------------
b94d8b5e9f | Nikolai Lavsky | 2018-04-29 00:52:57 +0800

Improve Ashenzari's warnings for wands
Two fixes:
* Ash was giving warning messages for wands of clouds and iceblast
  even though monsters don't use them.
* Ash wasn't warning the player about monsters carrying a wand of
  enslavement, which can be used to confuse the player.

--------------------------------------------------------------------------------
6184afb72e | advil | 2018-04-28 10:47:01 -0400

checkwhite / unbrace

--------------------------------------------------------------------------------
24998eaec9 | advil | 2018-04-28 10:20:55 -0400

Encrypt the channel name in .travis.yml so forks can't use it
See https://github.com/travis-ci/travis-ci/issues/1094
and 
https://github.com/mozilla/build-tools/commit/c13a2978e0869219295013eeb52cf52227
ab45ec

Hopefully I did the encryption correctly...

--------------------------------------------------------------------------------
f65d00e5d6 | Jacob Meigs | 2018-04-28 21:58:27 +0800

Remove get_item_info() deck filtering
Fixes mantis issue #11435

Small comment change to note decks used_count can be negative.

--------------------------------------------------------------------------------
32d7058990 | NormalPerson7 | 2018-04-28 21:00:02 +0800

Allow brand weapon scrolls to give venom under TSO
TSO no longer hates venom, and hasn't for almost two years.
This was inspired by gammafunk's commit ab1296c.

--------------------------------------------------------------------------------
4f8b0bdfde | Aidan Holm | 2018-04-28 20:26:00 +0800

Clear useless books from $-list after finding spells
Filtered to items that were made useless by the act of finding spells;
i.e. if you add an already-useless item to the shopping list and then
find some other spells, that item won't be removed, since it wasn't just
made useless.

--------------------------------------------------------------------------------
cd58e32bf3 | Aidan Holm | 2018-04-28 20:24:37 +0800

Allow auto-travel to/from all locations
Auto-travel now supports travelling to and from all locations, including
the abyss, pandemonium, hell sub-branches, and timed portals. For abyss
and pan, < refers to a branch exit, while > means abyssal stairs and pan
transits respectively.

Handling pandemonium unfortunately requires a fair bit of
special-casing, as it is the only branch with a depth of 1.

In future, it might be nice to immediately reply with "I don't know how
to get there" when the player is in abyss/pan with no reachable exits,
rather than prompting for a destination. An improved prompt could also
show "(>) Deeper into the abyss / Another region of pan" when that is
the only available destination.

--------------------------------------------------------------------------------
6e0a438587 | Aidan Holm | 2018-04-28 20:24:37 +0800

Fix some abyss features having wrong destination
Abyssal stairs and exit-via-abyss didn't set their destinations
correctly, which broke autotravel.

--------------------------------------------------------------------------------
a9d99d62ad | Alan Malloy | 2018-04-27 12:42:39 -0700

Simplify a boolean expression

--------------------------------------------------------------------------------
2a24f123e0 | Alan Malloy | 2018-04-27 12:42:39 -0700

Fix teleport/hatch closets in erik_orc_3 (Leszczynek, #11460)
Rather than marking the closets as no-tele, I've simply made sure each
tile is reachable by removing some of the maybe-wall tiles.

--------------------------------------------------------------------------------
846bec1a06 | advil | 2018-04-26 15:01:28 -0400

Add a way of detecting sendkeys problems for stress tests
This adds a way to have the stress tests (which heavily use
crawl.sendkeys) crash if the keybuffer is flushed before all the queued
keys are processed. The intent is to catch situations like
15e00174aab247bba1, where a sendkeys sequence to do with flight became
obsolete, and led to the test no longer working (for at least 2 years)
because the buffer was flushed after those keys failed, but the rest of
the test kept running as normal.

Crashes only happen in wizmode with the relevant crawl_state parameter
set; non-wizmode still prints an error if this parameter is set.  (Maybe
this error should always be printed? But there might be all sorts of
ways to cause the buffer to flush. Crashing in this circumstance is
definitely a very special case thing.)

--------------------------------------------------------------------------------
15e00174aa | advil | 2018-04-26 12:58:27 -0400

Fix abyss_short_run.rc (aidanh)
This is doubly-broken: Since 1f733d267d2fff9e920c items of flying start
flight when worn, and at some point (not sure when) the default key for
starting flight seesm to have become `g` anyways. So this test got a
silent error on sendkeys('ah'), and failed to ever enter the abyss.

--------------------------------------------------------------------------------
2895223118 | NormalPerson7 | 2018-04-26 21:58:50 +0800

Fix the message order when unwielding randart weapons (damerell, #11427)
When a randart weapon had Fragile, the weapon would stop
flaming/glowing/its visual brand after the weapon had "crumbled to
dust", which is erroneous. This was caused by unequip_artefact_effect,
containing the check for fragility, being called before the weapon
brand's visual effect was dealt with.

This commit fixes that by (a) creating a separate helper function
unequip_fragile_artefact for dealing with Fragile artefacts, (b) calling
this function from unequip_weapon_effect after the brand's visual effect
is handled, and (c) calling this function from unequip_artefact_effect
only when the artefact is not a weapon.

--------------------------------------------------------------------------------
5dfd9e3911 | Yer mivvaggah | 2018-04-25 12:56:12 -0600

don't recommend LTO
according to geekosaur, it doesn't do much even when it works.



and according to me, cross compiling from Arch to Windows with LTO=y causes 
teleport scroll crashes!
--------------------------------------------------------------------------------
ab1296cafb | gammafunk | 2018-04-24 19:54:11 -0500

Allow brand weapon scrolls to give flaming and chaos brands under Dith
Dith no longer has a fire-hating conduct.

--------------------------------------------------------------------------------
01d5f99b34 | gammafunk | 2018-04-24 19:54:10 -0500

Allow fire facet mutant beasts under Dith and remove unused code
Dith's fire conduct was the only use of this mutant beast facet
exclusion code. Now that the conduct no longer exists, this code can be
removed. If a new god conduct gets made where mutant beast facets need
to be excluded, this commit can be partially reverted.

--------------------------------------------------------------------------------
609ae0a0b1 | gammafunk | 2018-04-24 19:20:20 -0500

Allow the ignite blood demonspawn mutation under Dith (gameguard)
Dith no longer hates fire, so this mutation should be allowed to work.
Fixes bug 11455.

--------------------------------------------------------------------------------
6ec6d7893a | gammafunk | 2018-04-24 19:19:28 -0500

Mark some Pakellas code for removal when the major version changes

--------------------------------------------------------------------------------
c73351f94e | Kyle Rawlins | 2018-04-23 17:07:28 -0400

Fix a typo
[skip ci]
--------------------------------------------------------------------------------
870eee8612 | advil | 2018-04-22 21:43:38 -0400

Ensure that close_all_menus syncs with webtiles clients
This is one possible explanation for 11387, that somehow the javascript
menu_stack gets out of sync with m_menu_stack on the client side. I
haven't managed to reproduce this bug at all, but the two stacks getting
out of sync via an extra open_menu immediately following init_menus
would lead to the observed behavior, and explain why further menus act
as submenus. This change ensures that the javascript stack is entirely
empty when client-side close_all_menus is called, which is triggered on
redraw. If this fix doesn't work, back to the drawing board.

--------------------------------------------------------------------------------
b72a975701 | advil | 2018-04-21 13:23:46 -0400

Merge branch 'dokempf_skill_callback'

--------------------------------------------------------------------------------
ae935ca1a0 | advil | 2018-04-21 13:22:27 -0400

Check the results of the skill_training_needed callback
Also some light refactoring to consolidate some related skill checks,
and a bug fix: lua code could enable training on a maxed skill (and
skill targets could probably be set for this case too).  The refactoring
shouldn't otherwise change any behavior but who knows with this code,
some of the ways that these checks were done were subtly different.

Resolves #729, doing the check non-recursively.

--------------------------------------------------------------------------------
b03524a337 | Dominic Kempf | 2018-04-21 13:22:06 -0400

Add player LUA callback skill_training_needed
The new skill target mechanism and its lua bindings
are a very nice way of implementing automated skill
advancement logic. However, when the last skill target is met
while gaining experience the skill menu is opened
and needs user interaction. The patch introduces a
callback `skill_training_needed` in this case. If it
returns true, the skill menu is not opened.

--------------------------------------------------------------------------------
646ff71b4c | advil | 2018-04-21 09:55:09 -0400

Fog spread rate simplification
Previously, fog-producing effects had a 50% chance of producing a smoke
type with 0 default spread rate, conditioned on smoke color (purple/blue
didn't spread, grey/black did). This difference between smoke types
predates the introduction of scroll of fog in 7ef7c926, and comes from
the days when fog was only produced by miscast effects / xom; it may
even predate dcss. It's quite spoilery, and I think it's not very well
or easily understood by players, given that it's happening on top of a
bunch of other randomness in cloud behavior. It's also, I believe, a
contributing factor to newer players not figuring out how to use scrolls
of fog. I'm not really even sure if it's intentional, since (especially
in early code) you had to read between the lines to know that it was
happening.  Of course, the first version of fog was intentionally a bit
more random (even had a 10% chance of producing miasma), so it might be.
This commit makes the default spread rate the same for all four smoke
types (and in fact all player-producable los-blockers); as far as I
know, the differences between the four smoke types are now just
cosmetic. (Spread rate can still be overridden on placing the cloud, but
this is used extremely rarely, and not at all for los-blocking clouds
that I have found.)

This is a buff to scrolls of fog, since blue/purple smoke were likely to
be useless for los blocking, and if this needs to be balanced I'd rather
do it by decreasing the drop rate (though I tend to think the drop rate
is ok at the moment, and definitely shouldn't be halved). It's also a
buff for cloak of the thief, which maybe something should be done about.
A possible balancing tweak would be to apply some randomness to spread
rate independent of smoke color; I'm not currently very in favor of this
because I think there's already enough randomness to the initial cloud.
Other impacts: miscast effects, xom. Note that this doesn't affect tloc
clouds even though they use the same tile/color as purple smoke. It also
doesn't change steam, which already spread.

--------------------------------------------------------------------------------
29407c6de4 | CanOfWorms | 2018-04-21 01:39:22 -0400

Fix some manual acquirement logic
Mark invocations skill as useful for Nemelex worshippers and useless for Ru 
worshippers.
--------------------------------------------------------------------------------
535178c5c5 | advil | 2018-04-18 20:04:42 -0400

Fix the octopode + P interaction when wearing many rings (aubilenon)
When an octopode is wearing all the rings, and that number is more lines
than there are lines in the message window, using P and selecting a ring
forced an extremely awkward prompt that required a more, and then a ? if
you want to see all the rings at once. This change just has the prompt
use the menu from the beginning if there are too many rings to fit in
the message window at its current height (the normal situation for
webtiles).

Annoyingly, there is no easy way to prompt only for rings, so this
change shows all jewellery (for now).

--------------------------------------------------------------------------------
68eecb799f | advil | 2018-04-18 17:36:11 -0400

Refactor fsim for retaliatory damage, and to just be a little better
It's been a long-standing annoyance that there's no way to check
retaliation damage with fsim. This refactor tries to generally clean up
how fsim works a bit (providing better abstraction) and use the
improvements to handle retaliation damage (long blades, porcupines,
etc).

Because I unified setup for attack and defense, and tried to make it a
bit more robust (using more unwinds, etc) this commit will also improve
some special cases (e.g. retaliation damage from porcupines wasn't
properly cleared).  But, there are no doubt more special cases, and
there may be unintended consequences.

This commit doesn't change double scale fsim.

--------------------------------------------------------------------------------
76f67b38c3 | advil | 2018-04-18 17:36:11 -0400

Disable the poison effect in fsim
This doesn't impact damage calculations (I think).

--------------------------------------------------------------------------------
5e80d7e212 | Nikolai Lavsky | 2018-04-18 14:37:33 +0800

Remove books from shopping list on pickup (Kipster)
Usually items are removed from the shopping list when they are put into
inventory. But after the introduction of spell library books no longer
take up inventory space, so the usual code path,
    _put_item_in_inv() -> _got_item() -> cull_identical_items(),
no longer works for them.

--------------------------------------------------------------------------------
7563fe7e7f | CanOfWorms | 2018-04-18 00:15:01 -0400

Scale skills correctly when checking fail rate
Oops...
--------------------------------------------------------------------------------
a98e25f713 | CanOfWorms | 2018-04-17 23:21:45 -0400

Fix ordering in spellpower calculations

--------------------------------------------------------------------------------
802c45d089 | CanOfWorms | 2018-04-17 22:50:02 -0400

Remove a stepdown in spell success calculations
Spell success calculations currently use spellpower calculations to

partially determine failure rates, but the stepdown doesn't apply

until the player has trained magic skills to a high degree;

Specifically, the stepdown applies whenever



Spellcasting/2 + Spell School Average*2 > 50



This commit removes the stepdown from spell success (but still

leaving it in spellpower calculations) and cleans up the code.

To compensate for the buff at high skill levels, level 9 spell

difficulty is adjusted. The net effect for level 9 spells is a

reduction of about 0.5 to 2.5 in spell schools required

to achieve the same failure rate in the 20-27 skill range.



By removing the stepdown, spell success penalties due to armour

and shields are simpler to quantify in terms of skill levels, e.g.



"Wearing this armour penalizes spell success by an amount equal to

5.5 skill levels in all spell schools."



Adding this type of information to the item information screen can

be done in the future.
--------------------------------------------------------------------------------
201945fe43 | advil | 2018-04-16 19:56:06 -0400

Let webtiles message height be set via `msg_webtiles_height` (aubilenon)
Before this commit, the height of the webtiles message pane is inherited
from console, but since webtiles is running over a console backend with
a fixed size (80x24), it just isn't customizable using the existing
options and I couldn't figure out a sensible way of adding better
behavior using only the existing options. The only case where the
previous behavior had an impact was in spectating (via webtiles) a
console player with a customized message pane size. This option just
sets the webtiles message pane independent of console, with the
console's current size as a min. (N.b. the documentation simplifies this
slightly, because the actual situation only makes sense if you have a
good grasp on the fact that there is a secret console client.)

Caveats: now a console player spectating a webtiles player with this
setting will not see a matching messages pane, and a console player with
this set will silently affect webtiles spectators.

--------------------------------------------------------------------------------
30dfbe6fde | NormalPerson7 | 2018-04-15 23:39:28 +0800

Fix a double prompt on putting on rings with *Drain/*Contam/!P (#11309)
Previously, if the player already had two rings on and needed to choose
which ring to swap off, check_warning_inscriptions would be called
twice, once before choosing which ring to swap off, and once after,
causing a double prompt if the ring the player was putting on had *Drain
or *Contam.

Specifically, this behaviour was bad because the player could cancel
putting on the ring by inadvertently pressing Esc/N on the second prompt,
after having removed a ring already, resulting in a waste of 5 auts.

This commit adds an extra argument to puton_ring which allows the
function to be called from JewelleryOnDelay::finish() without checking
check_warning_inscriptions, which results in just one check for
inscriptions and *Drain/*Contam, occuring the first time the player
tries to put the ring on. Hence, after selecting which ring to remove,
the ring in question will be put on without prompt.

Note that the static function _puton_item is called only by puton_ring.

--------------------------------------------------------------------------------
2d6336e718 | NormalPerson7 | 2018-04-14 15:20:18 +0800

Fix an extra "the" in "It would be a sin to butcher..." (Reeces)
There was a "the" in the mprf description as well as from the
name(DESC_THE).c_str().

--------------------------------------------------------------------------------
c608dd7fdd | NormalPerson7 | 2018-04-13 17:26:04 +0800

Make statue descriptions accurate about no-regen (#11448)
This commit gives statues the M_NO_REGEN flag, which will show up in
their description as "It cannot regenerate".

This wasn't there before because statues cannot regenerate by any means,
as seen in the check in monster::heal, whereas other monsters with this
flag will still regenerate if given the regeneration status. The check
in monster::heal is still checked with this flag on, however, so there
is no reason this should change any behaviour.

--------------------------------------------------------------------------------
29664b41f0 | advil | 2018-04-11 21:40:47 -0400

Make the behavior of DEBUG_ITEM_SCAN more consistent
In particular, this will fix up unlinked temporary items on level load
consistently on all builds, not just FULLDEBUG builds. What was
happening is that DEBUG_ITEM_SCAN is #defined on all builds, but for
everything except FULLDEBUG builds, it got #defined in item-scan.cc,
which of course interacts with compilation order; the result being that
it was *not* defined at the time where tags.cc was built, and the fixup
code wouldn't get called. This moves the #define to AppHdr.h (sorry) and
does a bunch of other cleanup. It also prints an explicit error when
loading the level, though now this will only get printed once; before
these errors would get silently fixed up on FULLDEBUG builds only,
leading to confusion.

It may be that we *don't* want the fixup, since we'll get more saves
that way that actually instantiate bugs that trigger this error, but for
the moment I am just restoring the intended behavior from
dc59d2025591002a2. Players seem to find it disconcerting when this
message keeps repeating (e.g.
https://crawl.develz.org/mantis/view.php?id=11413&nbn=1#bugnotes) so
this makes it a bit easier on them.

There's some worry in the comments about DEBUG_ITEM_SCAN being slow, but
I think we do want it on always and it's been on for all builds for like
10 years, so I think it's fine.

This doesn't interact with unlinked items held by dead monsters, which
don't get fixed up by this code (though they could if we want that).

--------------------------------------------------------------------------------
910c0f972a | advil | 2018-04-11 18:46:10 -0400

Remove a swastika-ish arrival vault (11428)
There's been some past discussion about whether this really looks like a
swastika vs. some kind of spiral, but on console with the rest of the
map not revealed
(https://crawl.develz.org/mantis/file_download.php?file_id=7665&type=bug
), I agree with the judgment. The past discussion was using a tiles
screenshot, which I agree looks different (because the ground doesn't
stand out as much I think).

--------------------------------------------------------------------------------
873ca8c3a9 | advil | 2018-04-11 18:22:13 -0400

Fix a possible disconnected region in minmay_the_grid_ultimate (11444)
If all three of these "s go to x (plus a few others), this region
becomes cut off. By symmetry around the diagonal (noticed by aidanh) it
seems that the fix is to change these particular "s to `.`. Minmay let
us know if we're wrong...

--------------------------------------------------------------------------------
d16d1391c7 | Aidan Holm | 2018-04-06 23:01:07 +0800

Remove a bunch of unused variables

--------------------------------------------------------------------------------
b46e3d778b | Aidan Holm | 2018-04-06 23:01:07 +0800

Remove some unneeded drawing function calls
Fixes github issue #684

--------------------------------------------------------------------------------
a7143740d5 | wheals | 2018-04-05 10:27:17 -0400

Remove process-desc.h.

--------------------------------------------------------------------------------
051d7abec8 | wheals | 2018-04-05 10:17:43 -0400

Explain how to clear the spell library filter.

--------------------------------------------------------------------------------
915a0fd5a1 | Aidan Holm | 2018-04-05 20:17:40 +0800

Add tiles for new game weapon options

--------------------------------------------------------------------------------
83320f9db4 | Aidan Holm | 2018-04-05 19:16:24 +0800

Add braces

--------------------------------------------------------------------------------
00f67d9c76 | Aidan Holm | 2018-04-05 19:16:24 +0800

Remove unused show_quote argument

--------------------------------------------------------------------------------
eb62f64819 | Aidan Holm | 2018-04-05 19:16:24 +0800

Tweak spell library UI and add help page
Most of the changes here are removing the slight UI differences on local
tiles. Cramming the "press ? for help" text into an already somewhat
cluttered bottom line turns out to be a bit of a challenge, but it'll do
for now.

--------------------------------------------------------------------------------
7fd3adaaf6 | Aidan Holm | 2018-04-05 19:16:24 +0800

Tweak menu select count string spacing

--------------------------------------------------------------------------------
c95b66fe8f | Aidan Holm | 2018-04-05 19:16:24 +0800

Remove process_description template monstrosity
The given template converted a describe_info into a description string,
using an additional parameter that provided a ncurses like interface to
drop parts of the description if not everything could fit. This was only
ever used for hover descriptions in local tiles (elsewhere, we're making
long descriptions scrollable), and was only used to add a droppable
prefix about clouds. This prefix is now always shown.

Wrapping the text to fit the message region has been moved to
MessageRegion::render(), which uses FontWrapper's split(). There's an
extra bit to change the ellipsization style.

--------------------------------------------------------------------------------
3e50427bab | Aidan Holm | 2018-04-05 19:16:24 +0800

Remove unneeded tiles_crt_control instances
All of these instances are followed by code that uses
show_description(), which already pushes and pops a menu on webtiles
with code internal to Menu. The second string parameter is used to
add a class to the menu HTML element to permit per-menu customization,
but none of these were in use. (class: "menu_" + tag)

--------------------------------------------------------------------------------
2a239edac9 | Aidan Holm | 2018-04-05 19:16:23 +0800

Remove no-longer-needed helper function

--------------------------------------------------------------------------------
4ddc6ac30a | Aidan Holm | 2018-04-05 19:16:23 +0800

Replace all uses of print_description()
Replaced with show_description(), which now automatically shows a UI for
the description quote. The monster description UI still does its own
thing at the moment though.

--------------------------------------------------------------------------------
761eef7c59 | Aidan Holm | 2018-04-05 19:16:23 +0800

Fix wordwrap on FAQ menu, and support long Q/As

--------------------------------------------------------------------------------
94544a2a99 | Aidan Holm | 2018-04-05 19:16:23 +0800

Move monster description quote toggle text to bottom

--------------------------------------------------------------------------------
dbd6ce8ae9 | Aidan Holm | 2018-04-05 19:16:23 +0800

Add better alternative to print_description()
... better in that show_description() supports scrolling, instead of
just ellipsizing the content if it's too long to fit.

--------------------------------------------------------------------------------
5755430eca | Aidan Holm | 2018-04-05 19:16:23 +0800

Append newline to ?/m titles (for consistency)

--------------------------------------------------------------------------------
dd0f9c70d1 | Aidan Holm | 2018-04-05 19:16:23 +0800

Make spell memorise text consistent with item actions

--------------------------------------------------------------------------------
acbdab5677 | Aidan Holm | 2018-04-05 19:16:23 +0800

Remake god description UI with formatted_scroller
This commit moves the describe-god UI to a formatted_scroller, and
reimplements the religion join yesno prompts as a small state machine.
This helps get rid of cgotoxy/the CRT abstraction: the god description
functions now build formatted_strings.

The god joining prompts are stuffed into the more string of the
formatted_scroller, which is... not ideal, but should work until I get a
replacement for formatted_scroller up and running.

Fixes:
 - on webtiles, ^ will now show the religion UI in a popup box,
   instead of clearing the full screen: this matches ?/G behaviour.
 - religion join prompts can no longer fill up the screen.
 - the page indicator is now hidden when asking the player to join.

Changes:
 - Message about yes/no only no longer changes based on the key that's
   pressed. To compensate, adjusted the string slightly to indicate that
   uppercase Y is required, while N and n are acceptable.
 - Pressing escape now always leaves the join-religion prompt loop and
   closes the menu.

Regressions:
 - on webtiles, switching between religion pages now closes the popup
   before reopening it to the new page.
 - religion prompts now appear at the bottom of the screen, with the
   page indicator: not a problem on console, but is sub-optimal on local
   tiles (until I make local tiles menus boxed, like webtiles menus).

--------------------------------------------------------------------------------
7ef6792211 | Aidan Holm | 2018-04-05 19:16:23 +0800

Remove unused webtiles client HTML

--------------------------------------------------------------------------------
0b74486f9b | Aidan Holm | 2018-04-05 19:16:23 +0800

Fix webtiles console hiding last empty line

--------------------------------------------------------------------------------
7cd8b7786a | Aidan Holm | 2018-04-05 19:16:23 +0800

Force webtiles CRT popup to 80-char width
This prevents the popup from resizing when scrolling through text of
varying width.

--------------------------------------------------------------------------------
993470f600 | Aidan Holm | 2018-04-05 19:16:23 +0800

Remove unused webtiles menu tags

--------------------------------------------------------------------------------
41d47925bb | Aidan Holm | 2018-04-05 19:16:23 +0800

Render menu icons at full size
.. as opposed to rendering at the same size as the dungeon view. The
dungeon view shrinks tiles to try to fit in the full LOS, but there's no
need to do that for menu tiles. Resizing was also not properly handled:
scrolling after a resize could cause new menu entries to be initialized,
creating a menu with some tiles reduced in size.

--------------------------------------------------------------------------------
391584fa97 | gammafunk | 2018-04-05 05:03:38 -0500

Remove an extra blank line

--------------------------------------------------------------------------------
8a7c85174f | gammafunk | 2018-04-05 05:03:38 -0500

Remove the Dithmenos fire conduct
Dithmenos' hatred of fiery spells and items isn't an interesting
gameplay limitation, since restricting access to one kind of elemental
damage has little effect on strategy. Damage from other elemental and
non-resistable sources are widely available and can do the same thing
that fire elemental damage does. A previous version of the Dith conduct
was larger and tried encompass "sources of light", but this didn't work
well, since "light" isn't a well-defined notion in crawl. Since the
no-fire conduct prevents use of a rather specific set of items without
introducing much decision making, it's better to simply not have the
conduct.

This commit removes Dith's hatred of fire-based items, spells, weapon
brands, and summons. For consistency we also remove the god's
appreciation of killing fiery monsters. Now Dith doesn't care about
fiery things in general, and the shadow mimic works normally with
fire-themed attacks.

--------------------------------------------------------------------------------
60b3cfd402 | Aidan Holm | 2018-04-01 21:44:20 +0800

Deduplicate card types in card description

--------------------------------------------------------------------------------
f89cf90e93 | Aidan Holm | 2018-04-01 21:44:20 +0800

Improve local tiles hover info for clouds

--------------------------------------------------------------------------------
5f88266b9d | Aidan Holm | 2018-04-01 21:44:20 +0800

Merge WME_KEYPRESS into WME_KEYDOWN
There's no actual differentiation between how these events are handled,
for now. In future, once we have proper widgets, text entry widgets will
need to differentiate between them, but unifying them simplifies UI
screen implementation for the time being.

--------------------------------------------------------------------------------
99f37664c5 | Aidan Holm | 2018-04-01 21:43:59 +0800

Don't randomize ?/F tiles
... so they match the tile in the description popup, which will be added
in a future commit.

--------------------------------------------------------------------------------
66d6621272 | Aidan Holm | 2018-04-01 21:37:10 +0800

Fix compilation error

--------------------------------------------------------------------------------
276b1762fb | Aidan Holm | 2018-04-01 21:00:53 +0800

Spruce up the stash search and shopping menus (NormalPerson7, #11376)
Add tiles for both of them, and also show feature descriptions for
stash search results. This needs to use level_excursion to show
instance-specific descriptions (such as trove costs).

Picking feature tiles by the search result description is a horrible
hack, and is currently buggy for a very small number of features, but it
avoids a level_excursion for every menu entry.

--------------------------------------------------------------------------------
285f75aafb | Aidan Holm | 2018-04-01 21:00:53 +0800

Refactor some code into get_tiles_for_item()
The code that adds the background tile assumes that the item is on the
same level, which is not always the case, and generally makes this
pretty buggy. But a level_excursion would likely be too heavyweight.
Blegh.

--------------------------------------------------------------------------------
e0921bbc0a | gammafunk | 2018-04-01 05:43:01 -0500

Revamp a lemuel worm vault
This vault got nerfed as various worm monsters were removed over the
years, with many of the worms formerly in the vault being replaced with
ordinary worms of the kind that stop generating by D:6. It was an
autoexplore trap due to placing submerging swamp worms earlier than they
usually generate. It was later also added to Spider, but not with
terribly depth-appropriate monsters. Now swamp worms no longer submerge,
hence not causing the same autoexplore problem, and pose a more credible
threat at later depths, but the monster set still needs variety and
adjustment.

This commit reworks the monster set to remove the low-level worms and
make the threat level appropriate for all depths and includes Swamp as
an eligible placement branch. At pre-D:12 depths it's swamp worms only
and in much more limited numbers, with tyrant leeches and a torpor snail
showing up at later depths. By Spider and Swamp, a moths of wrath is
thrown in with a chance for a couple additional moths of wrath and/or
torpors, and most of the worms are tyrant leeches (since these play
better with berserk than swamp worms).

--------------------------------------------------------------------------------
e799247c01 | gammafunk | 2018-04-01 05:43:01 -0500

Some vault formatting cleanups

--------------------------------------------------------------------------------
300c91b96d | gammafunk | 2018-04-01 05:43:01 -0500

Fix and update a Swamp worm vault
This vault got a bit broken due to some improper merging in e.g.
d131b1cb, something that seems to have happened before and gotten
reverted, only to get added again. It was placing normal level spawns
where it tried to place specific monsters on a monsters list. It also
placed ordinary worms since some of the original worm monsters it used
got removed.

This commit updates the vault to use the correct glyphs and to use
appropriate numbers of swamp worms and tyrant leeches, also varying the
number and type of monsters placed a bit.

--------------------------------------------------------------------------------
77ec1f300b | gammafunk | 2018-04-01 05:43:00 -0500

Clean up a swamp entry vault
Simplify some glyph usage and thin out the worm population a little,
since swamp worms are nastier now.

--------------------------------------------------------------------------------
83361d32ab | gammafunk | 2018-04-01 05:43:00 -0500

Give swamp worms Harpoon Shot and further adjustments
This commit gives swamp worms Harpoon shot, described in the previous
commit and removes their submerging behaviour. Submerging gave swamp
worms a trap-like effect that occurred only in water. However the
frequency of swamp worms made water navigation more tedious to do in a
way that minimizes risk, since many squares could harbor the unseen
monster. The Harpoon Shot spell will let swamp worms sometimes move the
player into unfavorable shallow water or collide them with deep water,
but the player will now always see swamp worms ahead of time.

This commit also reduces swamp worm frequency by 33%, giving that weight
equally to tyrant leeches and alligators.

--------------------------------------------------------------------------------
f80497bfa5 | gammafunk | 2018-04-01 05:43:00 -0500

Implement a Harpoon Shot monster spell and give it to iron giants
From the spell description:

"Fires a long and flexible barbed mass. The ensnared victim will either
be pulled adjacent to the caster or collide with anything blocking the
way."

Harpoon Shot is a range 6 spell that fires a blockable shot which pulls
the victim adjacent to the caster when it hits and does damage. It lets
monsters reposition the player in range of melee and other spells and
possibly deposits them in less favorable terrain like shallow water.
Similar to the idea of the old throwing attack previously used by iron
giants (and octopode crushers before that), but without repeatedly
putting players attempting melee out of melee range.

Casters won't use this spell on adjacent targets, nor will they pull
victims through or to inhabitable squares or intermediate actors.
Instead said squares cause a collision in the same way Force Lance and
Draconian Ice breath do (e.g. "You violently stop moving!"), where the
victim takes collision damage and further movement ceases.

Iron giants now have this spell and have their overall casting frequency
reduced so they don't cast more than 50% of the time, putting them more
in line with other monsters that have strong melee as well as spells.
The spell does relatively light damage (2d17 on iron giants) and does
require damage to perform the pull effect, but has relatively good
accuracy.

--------------------------------------------------------------------------------
efa7288cd5 | gammafunk | 2018-04-01 05:43:00 -0500

Remove copy-and-pasted comments
The comments weren't needed, since the beams in question would have had
these console colors regardless of the monsters casting.

--------------------------------------------------------------------------------
7905ed6092 | gammafunk | 2018-04-01 05:43:00 -0500

Refactor methods related to actor knock-back
Move the is_stationary() actor check done in the knockback_actor()
method to the can_knockback() method, and have the latter take a ref
instead of a pointer. Also update comments accordingly.

--------------------------------------------------------------------------------
2b15929f4d | Aidan Holm | 2018-03-30 21:36:49 +0800

Fix mousewheel scrolling being reversed vertically
SDL 2.0 has the origin in the bottom-left.

--------------------------------------------------------------------------------
7e9e52a67a | Aidan Holm | 2018-03-30 21:36:47 +0800

Remove unused shopping list code

--------------------------------------------------------------------------------
d21a89c538 | advil | 2018-03-27 22:34:16 -0400

Don't crash after stash search help with messages_at_top=true
This probably fixes some other obscure crash possibilities; basically,
redraw_screen would leave the cursor region as GOTO_MLIST if
`messages_on_top` was set to true, but GOTO_MSG if false (the default).
Code that relied on the default behavior would likely crash on a screen
write out of bounds, because GOTO_MLIST isn't very big. Exiting out of
help screens to a prompt is a likely candidate in general.

Probably redraw_screen shouldn't even be able to change region, because
side-effects are bad (and probably region shouldn't be bad global state,
for that matter), but I have no doubt that there is code that implicitly
relies on this.

--------------------------------------------------------------------------------
c4e68a00b7 | Chris Campbell | 2018-03-27 19:44:51 +0100

Let equip_unequip work on weapons (xbon)
And fix the options_guide description for it being inaccurate.

--------------------------------------------------------------------------------
4a852b32ea | Alex Jurkiewicz | 2018-03-26 10:05:12 -0400

Update chequers_ecumenical_altar_grove
* Remove all potentially disconnected areas (every - is adjacent to a .,
  which should guarantee connectivity).
* For double safety, mark potentially disconnected areas as no_tele_into
* Reduce the frequency of dead trees
* Remove replacement of trees with crystal/rock

--------------------------------------------------------------------------------
4c9dbd0d6b | advil | 2018-03-26 10:01:35 -0400

Fix prefix behavior for FONTDIR (11430 / sterilizedmilk)

--------------------------------------------------------------------------------
f0fe05caec | Chris Campbell | 2018-03-25 18:50:02 +0100

Recolour floors in skrybe_limestone_x
Since yellow floor looks the same as a monster halo in console unless manually
examined.

--------------------------------------------------------------------------------
82e80c5873 | gammafunk | 2018-03-24 23:53:44 -0500

A decor vault from Skyrbe (#11384)
For Dungeon and Depths. Only changes from the original submission are a
more appropriate vault name and slightly cleaned up syntax.

--------------------------------------------------------------------------------
43f9854a4f | Aidan Holm | 2018-03-25 10:50:25 +0800

Fix door exclusion info leak (Etesian, #10966)

--------------------------------------------------------------------------------
92d99f377c | Chris Campbell | 2018-03-24 17:59:25 +0000

Allow MP-powered wands to fire with 0 MP, don't consider it a bad mut
With less than 3 MP, the power bonus is reduced accordingly while still using
any available MP. Since wands of healing/hasting/teleportation no longer exist,
wands of digging are the only wand that gains no benefit from it so it's much
closer to a wild magic-style double-edged mutation.

--------------------------------------------------------------------------------
7d43e34acb | Chris Campbell | 2018-03-24 17:58:44 +0000

Allow all forms to use wands
All forms could already use most other evoked items - simplify the wide range
of form-by-form restrictions by letting them all use wands too.

--------------------------------------------------------------------------------
822b61bbc7 | advil | 2018-03-24 12:59:16 -0400

Fix the ash autotravel/autoexplore bug (6503 etc)
The problem was that sensed monsters would be immediately marked as
MTRAV_KNOWN_UNREACHABLE, but in _mons_has_path_to_player this value was
effectively used as a cache to decide whether to recalculate the path to
the player. If set, the path would never be recalculated for a sleeping
monster, and this function would always return false. There were a bunch
of special cases that avoided this issue making it harder to diagnose
(there's a hard check for a 1 tile distance that skips pathfinding
altogether, if the monster wakes the path gets recalculated, and
monsters with known ranged attacks that are visible ignore the
pathfinding result, maybe others). This bug also impacted boots of the
assassin (e.g. 11322).

--------------------------------------------------------------------------------
6c1b826fe7 | gammafunk | 2018-03-24 03:21:29 -0500

Tweak the layout of a transporter vault
Add some doors to the arrival area of gammafunk_sealed_library so that
the player will be more likely to need to move out of this room.

--------------------------------------------------------------------------------
e3b93530a7 | gammafunk | 2018-03-24 02:00:43 -0500

Nerf the Hellbinder wizard lab some
Recent changes made the wave of demons too strong, mostly due to there
being too many tier-2:

<elliptic> hellbinder wizlab is ridiculous now, basically hellion
           island...

Reduce the monster count, mostly by removing tier-2 from the chambers
near the entrance, and reducing them a bit in the other chambers as
well. This is still a tough wizlab that can generates about one hellion
and one tormentor per level and can generate more of those, but it's not
insane now.

--------------------------------------------------------------------------------
c9362ec4a2 | Aidan Holm | 2018-03-23 22:37:02 +0800

Fix crash when updating minimap for out-of-map tiles

--------------------------------------------------------------------------------
0df9d5f48d | Chris Campbell | 2018-03-22 22:14:46 +0000

Don't Gozag bribe summons (#11149)

--------------------------------------------------------------------------------
1df535d14c | Chris Campbell | 2018-03-22 22:08:09 +0000

Fix messaging for unmelding guardian spirit (#11408)
With permanent mutation-based guardian spirit (either as a VS or a Demonspawn)
there's no need to print any message when unmelding gear grants a level of
guardian spirit.

--------------------------------------------------------------------------------
de484de8fe | Chris Campbell | 2018-03-22 21:56:55 +0000

Don't pick up duplicate amulets of the acrobat (#11383)

--------------------------------------------------------------------------------
09c32aa9e5 | Chris Campbell | 2018-03-22 20:30:17 +0000

Fix Sap Magic not properly expiring on Felid death (#11354)
Along with a couple of WJC attributes that shouldn't persist through death.

--------------------------------------------------------------------------------
3d944cd7a1 | Chris Campbell | 2018-03-22 20:02:03 +0000

Allow training evocations with the ratskin cloak
Since it has an active ability like the cloak of the Thief.

--------------------------------------------------------------------------------
9b9f04da38 | Chris Campbell | 2018-03-22 19:36:42 +0000

Add no_tele_into to some closets in grated_community_mu (#11423)

--------------------------------------------------------------------------------
f559e6e12c | Chris Campbell | 2018-03-21 20:53:06 +0000

Make Ozocubu's Armour expire immediately on movement
Granting a level of ponderous wasn't a very effective downside and the spell
remained extremely widely desirable. Having it break immediately when moving
lets it remain strong when cast directly in combat, but completely prevents
it from being useful to have active when out of combat.

--------------------------------------------------------------------------------
647f2b0882 | Chris Campbell | 2018-03-21 19:38:26 +0000

Fix high-power Dispersal working through walls
Other uses of apply_monsters_around_square are all radius 1, so this was only
broken for Dispersal once it gained an increased range with spellpower.

--------------------------------------------------------------------------------
99d1f7439c | Chris Campbell | 2018-03-19 16:20:43 +0000

Update orb of destruction description (#11419)

--------------------------------------------------------------------------------
1871b151c7 | advil | 2018-03-17 21:24:05 -0400

Try updating sdl2 contrib again for xinput errors
This should have happened in 17e5181afb10e1dfc8 but it apparently didn't
take.

--------------------------------------------------------------------------------
9a6c51ae3a | dplusplus | 2018-03-18 00:26:48 +0900

fix help; "stick" tag is not available in current version

--------------------------------------------------------------------------------
dd34a7dfb5 | Aidan Holm | 2018-03-17 07:21:33 +0800

Fix missing derived undead tile cases
The only remaining one is for octopodes, but the spectral tile looks
decent and there's no good alternative simulacrum tile, so I've left it
at the default for now.

--------------------------------------------------------------------------------
2e20325899 | Aidan Holm | 2018-03-17 04:33:36 +0800

Add undead kraken tentacle tiles (Midn8, #11410)
To track which tentacles are undead tentacles, we set base_type to the
undead type, instead of type; this is *inverted* compared to all other
monsters (not great), but requires only minimal changes to the tentacle
handling code in tilepick.cc; using the reverse (correct) order
requires more extensive refactorings.

Adding multiple first/last-tentacle-tile delimiters isn't great, but is
necessary for the easy conversion from normal- to undead-tentacle tiles.

All of these tiles were automatically generated from the normal kraken
tentacle tiles and could definitely be improved.

--------------------------------------------------------------------------------
69bf1f34de | Aidan Holm | 2018-03-16 04:24:09 +0800

Fix minimap being clipped (Malevolent, #11414)
update_minimap() in turn expands a clip rectangle in tilereg-map.cc to
include the coord. This was not previously being expanded to include the
map border, causing the reported issue.

--------------------------------------------------------------------------------
fa10ee1108 | Nikolai Lavsky | 2018-03-15 21:47:09 +0800

Update dream sheep description
Since dream sheep fires are no longer a thing.

--------------------------------------------------------------------------------
8f801747b2 | Aidan Holm | 2018-03-15 05:14:56 +0800

Fix some weird magic-mapping tile choices
The boundary feature checks make the border tiles blend in with the
floor/wall. The vaults walls special-case applies to all DCHAR_WALL
features, instead of just DNGN_STONE_WALL, because some areas within the
vaults have rock walls, which should be shown with the same tile.

--------------------------------------------------------------------------------
d774a3ca97 | Aidan Holm | 2018-03-15 04:08:56 +0800

Handle shaft-self and hop in _check_ability_possible()
This causes the corresponding menu entries and sidebar tiles to
be correctly greyed out when these abilities are not possible.

--------------------------------------------------------------------------------
660f3e5b3d | Aidan Holm | 2018-03-15 02:52:51 +0800

Use quadruped skeleton for bears and yaks

--------------------------------------------------------------------------------
b8b0824bdf | advil | 2018-03-14 10:59:29 -0400

Don't flush messages (potentially switching regions) on spell search
Mostly a problem in wizmode, I think, but basically,
cancellable_get_line isn't designed to be used outside of the messages
pane. This commit does involve a bit of code duplication, and when I
have more time I'd like to convert Menu::title_prompt to use an
EditableTextItem, which would involve better abstraction.

--------------------------------------------------------------------------------
f8199ec82f | Chris Campbell | 2018-03-12 23:47:47 +0000

Fix shopping lists always displaying "0 thing" (#11409)

--------------------------------------------------------------------------------
3d7ae589ec | gammafunk | 2018-03-12 03:55:16 -0500

Prevent monsters from picking up a loot item in a vault
The merfolk impaler would sometimes pick up a weapon loot item and thus
lose its ability to reach attack the player across the lava square. Make
the item into a superb_item so we can mark the item as no_pickup to
prevent this. Previously it used an "acquire any" item, which currently
can't take the "no_pickup" tag, and we'd like to avoid using these loot
items outside of troves in the first place.

--------------------------------------------------------------------------------
8181caef6f | gammafunk | 2018-03-12 03:41:39 -0500

Tweak monsters and placement for a float vault (mikee)
Allow gammafunk_mikee_crab_dinner to place on D:10- instead of just
D:13-, since the vault uses the same threats as it does in Lair, which
are not so bad compared to what 8 and 9 glyph vault monsters often
generate around D:10.

In Depths, use Flayed Ghosts instead of Titans, since although the
former are a lot flimsier than what they replace, the Flay effect lowers
player HP quickly enough that players might end up actually dying in the
vault. In Zot, replace Klowns and Draconians in the vault with Curse
Toes for similar reasons.

--------------------------------------------------------------------------------
c000056a37 | Chris Campbell | 2018-03-09 19:30:54 +0000

Reformat some lines
For better coding convention-ness and ease of reading.

--------------------------------------------------------------------------------
ef6b427191 | Alan Malloy | 2018-03-09 11:28:03 -0800

Remove erroneous error message in ability menu
Just looking at a menu with Evoke Berserk Rage as an option doesn't
always mean you want to go berserk, so you shouldn't get a message
telling you you can't.

--------------------------------------------------------------------------------
a231a930de | Chris Campbell | 2018-03-09 18:58:30 +0000

Adjust some weapon randart names
Remove a couple of overly silly and/or ungrammatical potential names.

--------------------------------------------------------------------------------
1cc83efe17 | advil | 2018-03-08 09:17:00 -0500

Simplify

--------------------------------------------------------------------------------
10657f7840 | advil | 2018-03-08 08:54:42 -0500

Only send tiles exit reason in game_ended on crash (wheals)

--------------------------------------------------------------------------------
5fdf0d7d63 | Doesnt | 2018-03-07 22:30:27 +0800

Add auto_hide_spells option

--------------------------------------------------------------------------------
0d8bc9073c | Alan Malloy | 2018-03-05 17:04:22 -0800

Clarify explanatory text for Tomb card (Yermak)

--------------------------------------------------------------------------------
f70c721afd | Alan Malloy | 2018-03-05 16:59:19 -0800

Simplify code for changing pluses on mace of Variability. (#716)

--------------------------------------------------------------------------------
ab157eebec | Alan Malloy | 2018-03-05 13:03:21 -0800

Add NormalPerson7 to CREDITS.txt

--------------------------------------------------------------------------------
9649ee7cfe | NormalPerson7 | 2018-03-05 12:48:17 -0800

Randomise the placement of the rune in dis_grunt (#715)
Randomise the placement of the rune in dis_grunt



Previously, the rune would be guaranteed to spawn in one of the two corners 
nearest to the entrance, making it a trivial exercise to steal the rune with 
LRD. It functioned as a hoax for new players, because it looks like the rune 
would place in the central structure.



Now, the rune will place in this central structure as expected 20% of the time, 
to make stealing the rune through LRD on the outer walls not guaranteed. The 
other 80% of the time it places in one of the four corners, retaining the hoax 
but also making stealing slightly less trivial.



Also add one additional Hell Sentinel to the end vault, location randomised 
just like the other monsters. It only had 1 Hell Sentinel previously, which was 
lackluster compared to the boss rooms of other Dis:$ vaults.
--------------------------------------------------------------------------------
f0767a526f | Aidan Holm | 2018-03-06 04:03:28 +0800

Revert "Fix wind-blast not applying location effects (advil, Beargit, 
rangerofthewest, #11253)"
This reverts commit 66e28abd87814127e8ae3a727caeabbe4bf002e6.

--------------------------------------------------------------------------------
66e28abd87 | Aidan Holm | 2018-03-06 03:55:11 +0800

Fix wind-blast not applying location effects (advil, Beargit, rangerofthewest, 
#11253)
Moving actors is postponed in order to print messages in the right
order. apply_location_effects() takes care of monsters being blown onto
traps (the original issue) and should handle other conditions that
weren't previously handled, such as merfolk transformation.

--------------------------------------------------------------------------------
dd11e718c0 | advil | 2018-03-04 21:01:06 -0500

Make phrasing less awkward
I didn't proofread this one enough..

--------------------------------------------------------------------------------
34c0b7be20 | advil | 2018-03-04 15:21:54 -0500

Cleanups to game restarting and the main menu
The main point of this change is to remove a few more die/fail/end calls
that boot the player from the main menu regardless of their settings (on
exiting from an upgrade prompt, or on an incompatible save), making it
act more like a real menu. In order to get this to work right, I needed
to do a bunch of other things:

 * regularize how error/info messages are shown in the main
   menu (always in the bottom line, where tooltip-type information is
   shown). It's a bit hacky, but less so than before.
 * cleaned up an ad hoc message for bad names in the main menu.
 * support passing a message to be shown in this spot on game_ended. The
   main use case is game_exit::abort.
 * improve messages for upgrade prompts
 * make clearer a previously surreptitious static variable in
   _show_startup_menu
 * do a better job returning to the main menu position on restart, to
   preserve the illusion that nothing has changed. (I couldn't figure
   out a great way to do this without adding even more global state,
   unfortunately.)

Overall, the fact that we return to the main menu by more or less
*restarting the entire program* remains just as insane as it was before.

--------------------------------------------------------------------------------
e769cdc3c4 | advil | 2018-03-04 15:21:53 -0500

Tell player if monster can never be recited to (m-aigner / 10416)
This adapts m-aigner's code from https://github.com/crawl/crawl/pull/379

The previous messaging seemed to have been actively wrong (the HD
calculation is different than what seems to happen in god-abil.cc), so I
decided it was time to finally merge a version of this, fixing the crash
discussed in the PR thread. The new version still only checks particular
monsters, so as discussed in the PR thread, something that looks at a
monster_info might be desireable. In principle this more accurate info
can leak information about a monster's spellset, but for that to happen,
I think there would have to be something like a monster with multiple
spellsets and subhuman intelligence, which as far as I can tell doesn't
exist right now.  Calculating over monster_info might deal with that
case as well, if it were to ever come about.

Resolves #379

--------------------------------------------------------------------------------
52845101ef | Aidan Holm | 2018-03-05 00:50:09 +0800

Add note about tomb walls' early collapse (advil)

--------------------------------------------------------------------------------
2e530e8550 | Aidan Holm | 2018-03-05 00:41:21 +0800

Make entombment more consistent (NormalPerson7, #11405)
This commit simplifies the set of features that the tomb card effect
will convert to a wall. The feat_is_door() check allows closed doors
to be filled; before this commit, they were left untouched and could
be opened.

--------------------------------------------------------------------------------
af95ca0ccb | Andy Roche | 2018-03-03 13:02:48 -0500

Fix grammar of MUT_SLOW_METABOLISM.

--------------------------------------------------------------------------------
f9d0ce56dd | Aidan Holm | 2018-03-02 13:46:58 +0800

Fix ctrl-x refresh issue (gammafunk)

--------------------------------------------------------------------------------
cace5d2d35 | wheals | 2018-02-28 11:52:09 -0500

Clarify Lugonu disto protection (Fingolfin).

--------------------------------------------------------------------------------
072727ec5a | wheals | 2018-02-28 11:41:08 -0500

Identify the starting book (Dynast).

--------------------------------------------------------------------------------
848dc5cce0 | advil | 2018-02-28 11:11:19 -0500

Don't allow repeating shop actions with `
Now that this doesn't crash, the only use case we can find for this is
expensive miskeys (I suspect the crashes were miskeys themselves). This
also prevents repeats on altars, which I'm not sure matters.

--------------------------------------------------------------------------------
c6edcda9ae | advil | 2018-02-28 11:00:53 -0500

More consistently check for repeats in menu code
This was causing a crash in shop code, which calls draw_more directly,
because certain variables are only initialized if the menu has been
drawn.  For example, the following key sequence triggered it on any
shop, ignoring spaces: > ! a ESC ESC `

--------------------------------------------------------------------------------
c8378ba3fb | Aidan Holm | 2018-02-28 04:58:54 +0800

Fix oversized infestation tile (NormalPerson7, #11404)
[skip ci]

--------------------------------------------------------------------------------
bddf880757 | Aidan Holm | 2018-02-22 23:21:27 +0800

Don't do client-side direction key wrangling
The on-numpad keys (pgup/down, etc) were converted to arrow keys before
they were sent to the server. This is unnecessary, since crawl maps
these keys to the correct movement commands, and broke page up/down.

This should not introduce any incompatibility with older versions of
crawl: crawl began mapping these keys at e75f4e49b8d8, which is included
in 0.5 and newer, which is before crawl supported webtiles.

--------------------------------------------------------------------------------
dc04c06d56 | Alan Malloy | 2018-02-21 12:35:47 -0800

Prevent generating some grammatically incorrect randart names
Notably, stuff like [GOD]'s [thing that's not a noun].

--------------------------------------------------------------------------------
6acd07ab37 | Alan Malloy | 2018-02-21 12:35:26 -0800

Fix up a number of comments in randart naming code
Mostly this meant removing them, because they didn't say anything useful,
but a couple just needed tidying up.

--------------------------------------------------------------------------------
58d4f8e534 | Alan Malloy | 2018-02-21 12:35:26 -0800

Move one particularly silly weapon name to the jokes section

--------------------------------------------------------------------------------
66ef5e3ed0 | Alan Malloy | 2018-02-21 12:35:26 -0800

We should at least spell our silly words correctly

--------------------------------------------------------------------------------
4884353f31 | Aidan Holm | 2018-02-22 02:18:15 +0800

Fix memorise menu heading glitch
A menu's items are only indented if at least one item has a tile. When
switching between memorise-menu pages with zero and >1 spells listed (or
vice-versa), the item indentation would change. This caused the subtitle
to shift around. To fix this, we just ensure that tile indents are
always used by giving this entry an invisible tile.

--------------------------------------------------------------------------------
1f6c355cf7 | Aidan Holm | 2018-02-22 02:17:34 +0800

De-dup memorise menu paging text for local tiles

--------------------------------------------------------------------------------
539252a0a6 | advil | 2018-02-20 22:58:05 -0500

Unbrace / checkwhite

--------------------------------------------------------------------------------
54792a9cdb | advil | 2018-02-20 22:57:13 -0500

Don't let an undocumented texture setting affect fonts
This is one of those commits where I'm not really sure what's going on,
but it seems that we probably don't want to apply this gl texture filter
setting (GL_LINEAR) to glyph textures.  Specifically, this was (no idea
why) causing local tiles colour_bars to not render properly, as reported
by dolemite99 in:
https://crawl.develz.org/tavern/viewtopic.php?f=9&t=25131

--------------------------------------------------------------------------------
d711f9382e | Chris Campbell | 2018-02-20 15:58:44 +0000

Fix formatting on a help menu

--------------------------------------------------------------------------------
4386d7c103 | Chris Campbell | 2018-02-20 15:40:57 +0000

Mark PoG only temporarily useless when in Zot but without the orb (|amethyst)
Since you could still leave and go elsewhere, so it should still be possible
to memorise the spell.

--------------------------------------------------------------------------------
be7b7cd180 | Chris Campbell | 2018-02-20 15:33:12 +0000

Improve spell library display and messaging
Mark permanently useless spells as hidden by default, and show a count of
hidden spells on the memorisation screen (the formatting here could be better,
though). Also improve the messages when adding spells to the library to be less
spammy.

--------------------------------------------------------------------------------
6ad8dc3c0f | Chris Campbell | 2018-02-20 15:30:37 +0000

Don't mark cloud spells as permanently useless under Still Winds

--------------------------------------------------------------------------------
97f78eae9a | Ian Caltabiano | 2018-02-20 14:05:09 +0000

Mark axes as a preferred weapon type for Ogres (#11391)

--------------------------------------------------------------------------------
d1b754485a | Neil Moore | 2018-02-20 09:00:22 -0500

Remove Trog spellbook autopickup special-case.

--------------------------------------------------------------------------------
362d6f4712 | Chris Campbell | 2018-02-20 13:55:10 +0000

Note the effect of Invo skill in Nemelex description (#11393)

--------------------------------------------------------------------------------
1b571eadbd | advil | 2018-02-19 19:38:53 -0500

Remove useless butchering, and improve butchery code
With doors pushing items out of the way, there's basically[1] no reason to
chop corpses that are entirely inedible for your species. This removes
that possibility and accordingly simplifies the butchery interface.
Because I tried to improve the messaging, things didn't get much
shorter, but hopefully the situation is overall clearer. I also removed
a goto. The interface could be even simpler, as there's very little
practical reason to use 'n'.

1 There are rare corner cases where a corpse may still jam a door. I
think these are rare enough to ignore entirely, but if someone
disagrees, the best way to handle it with something like the behavior
before this commit I think would be to add a * command to the butchery
menu that allows chopping them, similar to many inventory commands,
rather than have them show up in the basic butchery list. Alternatively,
one could just destroy the corpses. I've coded up a version that does
this if anyone wants, but it has weird interactions with god conducts so
I paused.

--------------------------------------------------------------------------------
17e5181afb | advil | 2018-02-19 19:25:55 -0500

Update sdl2 contrib (maybe fixing XINPUT errors on msys2)

--------------------------------------------------------------------------------
59181c3eb7 | wheals | 2018-02-19 18:56:16 -0500

Don't request books for troves (#11395).

--------------------------------------------------------------------------------
3692b995fa | Aidan Holm | 2018-02-19 16:27:47 +0800

Fix ability descriptions not visible on webtiles (droogie, #11390)

--------------------------------------------------------------------------------
ae599e4267 | Aidan Holm | 2018-02-19 16:27:47 +0800

Colourise the ability menu

--------------------------------------------------------------------------------
c2f0fb85b5 | Aidan Holm | 2018-02-19 16:27:47 +0800

Add _check_ability_dangerous()

--------------------------------------------------------------------------------
c850c1e328 | Aidan Holm | 2018-02-19 16:27:47 +0800

Move ability checks to _check_ability_possible()
Among other things this fixes a bug where the SDL tiles ability menu was
not correctly indicating that abilities weren't possible.

--------------------------------------------------------------------------------
8cf3520474 | Muffindrake | 2018-02-18 03:31:59 -0800

Iron out typo in Zephyr's description

--------------------------------------------------------------------------------
0f5d7738b4 | wheals | 2018-02-17 21:04:51 -0500

Fix Tiles compile/warnings.

--------------------------------------------------------------------------------
f4362f2f86 | wheals | 2018-02-17 21:04:51 -0500

Fix typo/reword.

--------------------------------------------------------------------------------
87fe8730ba | wheals | 2018-02-17 21:04:51 -0500

Allow searching for spells in the memorise menu.
The search matches either on spell names or spell types (so you can see
all the translocation spells at a glance, for instance).

The extra newline was removed from menu.js since it seems the browser
adds its own newline (tested this with the \ menu and it works the same
as before).

--------------------------------------------------------------------------------
2cf55e6b3d | wheals | 2018-02-17 21:04:51 -0500

Remove references to starting books from background descriptions.
Better writing very welcome.

--------------------------------------------------------------------------------
692369fde7 | wheals | 2018-02-17 21:04:51 -0500

Show unmemorisable spells in the memorise menu.
I wasn't convinced at first this was a good idea, but people pointed out
that there ought to be some feedback about what happens to spells that
you pick up that you can't memorise, and why you can't memorise them.

--------------------------------------------------------------------------------
b0bc94e94b | wheals | 2018-02-17 21:04:51 -0500

Remove memorising spells from a book by clicking on it.
With goldified books, I'm not sure this is ever useful. If you've
identified a book, its contents are in your spell library. The one
exception might be a book from a store that couldn't fit into your
inventory but that's a really small edge case.

--------------------------------------------------------------------------------
b0e1f0f66e | wheals | 2018-02-17 21:04:51 -0500

Prevent some harmless(?) JS errors.

--------------------------------------------------------------------------------
b74d8c871d | wheals | 2018-02-17 21:04:51 -0500

Remove some other vestiges.

--------------------------------------------------------------------------------
f475dab1b2 | wheals | 2018-02-17 21:04:51 -0500

Fix a webtiles bug with using the mouse on menu entries.
This would stop working after the first time the entry list was refreshed;
previously this affected only the shopping menu but it also affected the
memorisation menu as well.

--------------------------------------------------------------------------------
b1bc8ad51e | wheals | 2018-02-17 21:04:51 -0500

Allow hiding spells from the main screen of the memorisation menu.
In every game the player runs into tons of spells they have no
interest in memorising. Combined with the new spell library, this would
tend to lead to tons of clutter.

--------------------------------------------------------------------------------
fee09f91ca | wheals | 2018-02-17 21:04:51 -0500

Exterminate you.had_book too.

--------------------------------------------------------------------------------
e3f13c291c | Doesnt | 2018-02-17 21:04:51 -0500

Don't let Vehumet offer spells that are already in your library

--------------------------------------------------------------------------------
751bf6f531 | Doesnt | 2018-02-17 21:04:51 -0500

Exterminate seen_spells.
Now redundant unless a mechanism is added to make spells leave the library
(unlikely).

--------------------------------------------------------------------------------
a98daa05b6 | Doesnt | 2018-02-17 21:04:51 -0500

Replace failed book acquirements with manual acquirements.
Except for Xom and Sif gifts.

--------------------------------------------------------------------------------
3921d5a7fc | Doesnt | 2018-02-17 21:04:51 -0500

Mark books with only unlearnable spells as useless

--------------------------------------------------------------------------------
f64ed86620 | Doesnt | 2018-02-17 21:04:51 -0500

Remove book burning from the tutorial

--------------------------------------------------------------------------------
4c6852c4bb | Doesnt | 2018-02-17 21:04:51 -0500

Remove Trog's Burn Spellbooks ability.
Spellbooks are not marked as useless so as to keep autopickup on, since the
player may switch gods still.

--------------------------------------------------------------------------------
8827bed6ad | Doesnt | 2018-02-17 21:04:51 -0500

Mark books with no new spells as useless

--------------------------------------------------------------------------------
5f84044e9c | Doesnt | 2018-02-17 21:04:51 -0500

Implement spell library

--------------------------------------------------------------------------------
464ede7bef | Corin Buchanan-Howland | 2018-02-17 15:28:59 -0500

Give monster minotaurs armor and javelins
This toughens them up a bit and makes them harder to kite. This is intended
primarily as a labyrinth challenge buff, since minotaurs are otherwise only
spawned by a few vaults or shape-shifted into.

--------------------------------------------------------------------------------
879740d4a4 | Chris Campbell | 2018-02-17 16:29:22 +0000

Make some accuracy penalties consistent for aux unarmed
There are still a bunch of weird inconsistencies and it'd be good to properly
de-duplicate this code with the regular to_hit calculations.

--------------------------------------------------------------------------------
430cd93c90 | Chris Campbell | 2018-02-17 16:29:22 +0000

Generalise starvation penalty checks
De-duplicates a lot of checks for starving players that don't apply to vampires
or ghouls (such as inability to use abilities/spells). Has a couple of minor
gameplay effects, with starving ghouls no longer having a penalty to accuracy
or damage.

--------------------------------------------------------------------------------
5403bb0386 | Chris Campbell | 2018-02-17 16:29:22 +0000

Fix bloodless Vampires having their accuracy penalised

--------------------------------------------------------------------------------
f9081d144a | Chris Campbell | 2018-02-17 16:29:22 +0000

Turn res_wind into res_tornado
Wind doesn't make much sense as a general resistance, since its main effect is
just making a tiny selection of enemies be unexpectedly immune to airstrike and
Qazlal wind attacks. It's more reasonable as just tornado immunity, since
almost everything that has it casts tornado innately (with Sojobo still being a
weird exception due to her air elemental band).

--------------------------------------------------------------------------------
c748515e95 | Chris Campbell | 2018-02-17 16:29:22 +0000

Fix dream sheep genus using a removed monster
To avoid problems on save compat break.

--------------------------------------------------------------------------------
1d1b1003d6 | Chris Campbell | 2018-02-17 16:29:22 +0000

Remove dream sheep fires
The special-cased sticky flame mechanic isn't really justifiable with sheep now
being a real enemy that's intended to be threatening instead of mostly just a
joke.

--------------------------------------------------------------------------------
4ac3794a45 | Aidan Holm | 2018-02-17 22:42:13 +0800

Fix stash menu redraw issues
... and clean up some other odds and ends.

--------------------------------------------------------------------------------
ee22f2738c | Aidan Holm | 2018-02-17 02:50:44 +0800

Fix some local tiles menu bugs (Etesian, #11389)

--------------------------------------------------------------------------------
9299d87a69 | Aidan Holm | 2018-02-16 21:44:15 +0800

Fix sending webtiles messages in wrong order

--------------------------------------------------------------------------------
4828832699 | Aidan Holm | 2018-02-16 20:04:50 +0800

Add on_single_selection() hook

--------------------------------------------------------------------------------
6a830569a1 | Aidan Holm | 2018-02-16 20:04:50 +0800

Fix titles persisting between menus

--------------------------------------------------------------------------------
6ffc940c34 | Chris Campbell | 2018-02-15 19:23:17 +0000

Revert monster minotaur speed and adjust other stats
Monster versions of player species are a case where the symmetry should be at
least reasonably close, so breaking it substantially by having the monster
version be fast isn't a good way of buffing monster minotaurs. Instead increase
their health, defenses and HD slightly.

--------------------------------------------------------------------------------
8d23802ece | Aidan Holm | 2018-02-15 16:11:28 +0800

Fix use of incorrect tile variants

--------------------------------------------------------------------------------
9b7402fcb8 | Aidan Holm | 2018-02-15 15:47:09 +0800

Allow lowercase letters from choose_stat_gain hook

--------------------------------------------------------------------------------
981819dc31 | Aidan Holm | 2018-02-15 15:31:59 +0800

Fix pixel-perfect rect drawing

--------------------------------------------------------------------------------
d6867324b3 | Aidan Holm | 2018-02-15 15:01:06 +0800

Seed domino generation with branch:depth
Domino generation was randomized for every level load, which caused
floor tiles using dominos (only crypt afaik) to vary when reloading the
level: going up and down stairs, or saving and reloading the game.

Now, the rng is seeded with the current branch and depth as well as the
game seed, which is marshalled in saves.

Side note: that dominoes.Generate() call takes up most of level load
time, even though most levels don't use domino tiles..

--------------------------------------------------------------------------------
55dd94265c | Aidan Holm | 2018-02-15 15:00:00 +0800

Replace you.game_seeds[] with you.game_seed
This seed is currently only used for generating tile difficulties for
passive mapping, so there's only one seed in the array anyway.

More importantly, there's no logical reason for different parts of crawl
to use different seeds; this is used to seed domain-specific RNGs, and
there's no risk of these RNGs interfering with each other.

--------------------------------------------------------------------------------
3d3d9be361 | Aidan Holm | 2018-02-15 13:30:15 +0800

Remove useless use of std::map

--------------------------------------------------------------------------------
e330310d3a | Alan Malloy | 2018-02-14 12:33:15 -0800

Add a wizard command to list keys with no assigned command
As of the time of this commit, the list of free keys in the main area
of a US-English keyboard is pretty short:

] - ^M p ^T ^V

--------------------------------------------------------------------------------
7362139639 | Aidan Holm | 2018-02-14 16:30:35 +0800

Fix broken colour_bar rendering on local tiles

--------------------------------------------------------------------------------
9e71ff9f38 | Aidan Holm | 2018-02-14 13:33:57 +0800

Simplify font atlas lookup LRU management
The main purpose of this commit is to improve code clarity. The previous
map container implementation and the replacement vector-based
implementation perform roughly the same.

Should it become necessary (for when offline crawl gets serious about
i18n), this new version is also much easier to optimize:
 - could store index into atlas in glyph table, to remove iteration
 - could remove LRU vector and add atlas entry hit counters, moving
   expensive path to atlas eviction.

--------------------------------------------------------------------------------
11d8d7a091 | Aidan Holm | 2018-02-14 13:33:57 +0800

Don't call map_unicode() for non-renderable glyphs
A recent test showed that around 85% of glyphs that hit map_unicode()
are spaces. These spaces are coming from the message region and other
text regions; they appear to send the entire line to the renderer, not
just the text portion.

--------------------------------------------------------------------------------
b22368a056 | wheals | 2018-02-13 15:39:43 -0500

Remove an unnecessary member from ShopMenu.

--------------------------------------------------------------------------------
ef5cdb2bc0 | wheals | 2018-02-13 15:25:13 -0500

Move some shop menu code into Menu.
This will allow using something similar for the upcoming new memorise
menu without code duplication.

--------------------------------------------------------------------------------
b5258fda6c | Aidan Holm | 2018-02-13 15:03:10 +0800

Remove list_commands() redraw parameter

--------------------------------------------------------------------------------
e53cf38d4d | Aidan Holm | 2018-02-13 15:03:10 +0800

Use single column for menus if there's enough space (advil)

--------------------------------------------------------------------------------
11ddb1a7b3 | Aidan Holm | 2018-02-13 15:03:10 +0800

Add section dividing line (advil)

--------------------------------------------------------------------------------
368cd01ef9 | Aidan Holm | 2018-02-13 15:03:10 +0800

Move menu title rendering to mdisplay
This refactor moves all menu title rendering from the CRT layer to the
mdisplay backend, and simplifies a number of interfaces.

- Title suffixes have been removed. Instead, code that wishes to update
the title dynamically can override calc_title(), which is called
whenever the title is about to be changed.

- On local tiles only, filtering menus now uses a custom line reader
that overrides the displayed title, since the CRT line reader can no
longer be used. Using the existing line reader on console and webtiles
is fine, and has been left alone. The title is overloaded in this way
because it ensures that the filter UI correctly handles resize events:
having multiple UI layers try to handle redraw is almost impossible to
make work.

- update_title() and write_title() have been merged with draw_title()

--------------------------------------------------------------------------------
6e0fa9b881 | Aidan Holm | 2018-02-13 15:03:10 +0800

Remove Menu text-only option
This commit removes the text_only constructor option, and always uses
MenuDisplayTile on local tiles, and MenuDisplayText on everything else.
(Except for formatted_scrollers).

MenuRegion already supports rendering menus without tile icons
(when tile_menu_icons = false), so this commit simply adds an additional
check that the menu entries have tiles. This removes a whole host of
conditional checks, and will allow removal of CRT code on local tiles.

--------------------------------------------------------------------------------
61877e1b40 | Aidan Holm | 2018-02-13 15:03:10 +0800

2-col tile menus: wrap horizontally and support line scrolling
This commit re-adds support for scrolling MenuDisplayTile menus by line,
and does a fair amount of general MenuRegion refactoring as well:

 - Menus now limit the height of each page to ensure that <= 52 items
 can be shown on a page: this greatly simplifies pagination. In
 practice, this is slightly shorter than a full 1080p screen.
 - MenuRegion::place_buffers() has been split into two functions that do
 layout and pack buffers respectively, rather than having one function
 that does both.

Non-ideal bits:

 - Scrolling state for tile menus is now mostly located in
 tilereg-menu.cc, instead of menu.cc: scrolling requires knowledge of
 the menu item sizes and screen positions, so the MenuDisplayTile
 scrolling methods mostly proxy MenuRegion methods.
 - set_menu_display() is used to detect switching between menus.
 - this predates this commit, but the need to check entry.valid all
 over the place makes this code pretty bug-prone.

--------------------------------------------------------------------------------
c7e3d39956 | Aidan Holm | 2018-02-13 15:03:10 +0800

Remove limit on lookup-help results length
Menus now automatically handle duplicated hotkeys, so we don't need to
limit the length ourselves. Also made the menu use two columns on local
tiles.

--------------------------------------------------------------------------------
136611bcb0 | Aidan Holm | 2018-02-13 15:03:10 +0800

Refactor Menu scrolling into MenuDisplay
This commit moves the scrolling handling for Menus into the MenuDisplay
class. This is necessary because the menu itself does not have the
layout information necessary to scroll or render the current page of
items, only the renderer (MenuDisplay) does.

Below, "Tile menu" means a menu using a MenuDisplayTile instance;
likewise "Text menu" means a menu using a MenuDisplayText instance.

There are a number of other changes+improvements this commit makes:

 - the two MenuDisplay derived classes have been moved into menu.cc
 - an MF_USE_TWO_COLUMNS flag has been added for TILES_LOCAL builds
 - Tile menus force a page break before a duplicate hotkey
 - Text menus limit their pagesize to 52 rows if duplicate hotkeys are
   detected. This approach keeps the Text menu scrolling/layout code simple.
 - showing the --more-- line now works correctly with menus with
   multiple parts delimited by MEL_END_OF_SECTION
 - scrolling formatted_scrollers with home/end keys now stays within the
   current section. This breaks the ? help menu, but I've added a small
   hack for that. It's still broken on webtiles, but it was like that
   alrady.

Removal of functionality:

 - Tiles menus can no longer be scrolled by line, as the notion of
   scrolling by line does not work well when combined with two-column
   layouts. Scrolling to an item scrolls to the page containing that item.

--------------------------------------------------------------------------------
6a01d7391f | Aidan Holm | 2018-02-13 15:03:10 +0800

Remove column_compoer set_pagesize()
This was used to add separator newlines to composed text, except at page
boundaries. This doesn't work any more because the page size can change
on resize, so we just show separator newlines either way.

--------------------------------------------------------------------------------
d84e81ada2 | Aidan Holm | 2018-02-13 15:03:10 +0800

Remove unused menu.f_drawitem hook

--------------------------------------------------------------------------------
717c7b64c1 | Aidan Holm | 2018-02-13 15:03:10 +0800

Explicitly set MF_SINGLESELECT on describe menu

--------------------------------------------------------------------------------
6b2ca4f3f9 | Aidan Holm | 2018-02-13 15:03:10 +0800

Assert that menus have a valid selection flag

--------------------------------------------------------------------------------
e39abd213a | Aidan Holm | 2018-02-13 15:03:10 +0800

Remove menu.set_maxpagesize interface
This was used to prevent hotkeys from being reused on a single page.
This changes the behaviour to automatically limit the number of items
shown on a single page if any of them are selectable.

--------------------------------------------------------------------------------
535122322d | Alan Malloy | 2018-02-12 16:50:55 -0800

Fix Dowan's reaction to Duvessa dying far away (minmay)
Dowan is really more of a moper than a rager.

(I accidentally made too broad a change in bf6022e)

--------------------------------------------------------------------------------
89cf10f13c | advil | 2018-02-12 14:16:27 -0500

Workaround for travis erroring related to ppa.launchpad.net
These errors lead to an out-of-date package list being used, which then
causes the build to error relating to the libsdl2-dev package.  The
timeout may need further tweaking, and hopefully there'll be a point
where travis will fix this, but this basically works for me in my fork,
so I'm going to try adding it to master. See ongoing discussion in the
following issue:

https://github.com/travis-ci/travis-ci/issues/9112#issuecomment-364629682

--------------------------------------------------------------------------------
55045edfef | Aidan Holm | 2018-02-12 22:58:30 +0800

Fix alignment for ability & spell menu headings

--------------------------------------------------------------------------------
4451672fb7 | Aidan Holm | 2018-02-12 20:49:48 +0800

Check floor items for digit inscriptions
The main use-case is reading known scrolls and quaffing known potions
from the ground without switching menu sections with ,

--------------------------------------------------------------------------------
33bf1272b0 | advil | 2018-02-11 14:25:15 -0500

Have shock serpent retaliation check rElec
rElec for the retaliation fineff has apparently not been checked, at
all, either for monster or player attackers, since 494c5fece274. For
player attackers, this change is a major nerf to shock serpents if you
have rElec, so given that they have always been this way, they may need
some further balance adjustments to make them not completely trivialized
by rElec.  This change also prevents shock serpent recursion (pointed
out as a bug by u/eazyirl,
https://www.reddit.com/r/dcss/comments/7wtmkr/shock_serpent_recursion_has_dungeo
n_science_gone/,
since shock serpents have rElec+++.)

I also added an expose_to_element call to ensure that retaliation
triggers qazlal elemental adaptation (also wasn't happening).

--------------------------------------------------------------------------------
198051cff3 | Aidan Holm | 2018-02-10 13:08:49 +0800

Add WME_MOUSEWHEEL
The main benefit this brings (apart from code tidiness) is the ability
to check whether the next event is a mousewheel event, which will allow
processing multiple mousewheel events without redrawing the screen.

--------------------------------------------------------------------------------
cc81d7a59f | Aidan Holm | 2018-02-10 12:39:31 +0800

Use travel keys for ?/B menu entries

--------------------------------------------------------------------------------
7ce444fdad | Tomas Krag Hansen | 2018-02-08 12:28:21 -0500

Putting the honeycombs back in the bee hives.

--------------------------------------------------------------------------------
f028f7a83d | advil | 2018-02-08 11:10:36 -0500

Show >0 skill message (if needed) when entering skill menu (dds1)
Before this would only show when you try to exit the menu without any
skills enabled; this will also show it if you enter the menu with 0
skills enabled (e.g. after reaching a skill target with just that skill
training).

It might make sense to remove the more() before entering the skill menu
with 0 skills trained, with this change.

--------------------------------------------------------------------------------
169b76a0d8 | Aidan Holm | 2018-02-08 10:18:06 +0800

Fix kbhit() for multi-char textinput events (advil)

--------------------------------------------------------------------------------
ba4b0f4d6b | Corin Buchanan-Howland | 2018-02-07 20:07:34 -0500

Let regeneration amulets work again for players that can heal.
I'm on fire!

--------------------------------------------------------------------------------
4ef6cfaf00 | Corin Buchanan-Howland | 2018-02-07 20:06:41 -0500

Fully disable acrobat while using Wu Jian attacks.

--------------------------------------------------------------------------------
da3306adca | advil | 2018-02-07 09:53:38 -0500

If there's no assert message on crash, put signal into the noun
This includes the signal information in the crash milestone if there's
no assert message; before, the milestone would just be empty (which I
guess translates to "?"). It also will give the signal info on the first
line of the crash dump in these circumstances so that any non-windows
crash dump always has a cause on the first line.

--------------------------------------------------------------------------------
548d40651e | Neil Moore | 2018-02-07 08:44:37 -0500

Make waiting work again.
Broken in bc573f345, which made waiting take neither time nor a turn.

--------------------------------------------------------------------------------
65f3478148 | Neil Moore | 2018-02-07 08:44:35 -0500

Brace.
[skip ci]

--------------------------------------------------------------------------------
bc573f3456 | Corin Buchanan-Howland | 2018-02-07 08:32:55 -0500

Let amulet of the acrobat work while waiting (Hellmonk)
Since otherwise people will be incentivized to move and forth while waiting.

Also, some light clean-up on the initial Acrobat commit and actually
enable the amulet to spawn.

--------------------------------------------------------------------------------
005426d5a6 | Aidan Holm | 2018-02-07 14:56:49 +0800

Handle multiple keys in SDL textinput

--------------------------------------------------------------------------------
870e420b14 | Corin Buchanan-Howland | 2018-02-06 22:11:05 -0500

Create new amulet: amulet of the acrobat
This amulet boosts the EV of the wearer by 15 only during move actions.
The boost only applies during the execution of the move action, though the
enhanced EV is visible until the player takes another action.

The amulet must be worn at full hp before it begins to operate.

The thought process here is that there's interesting design space around
adding effects to basic actions. The boost size is intentionally quite large
to attempt to balance out the amulet doing nothing during turns spent
fighting.

--------------------------------------------------------------------------------
f2798f9f4d | Aidan Holm | 2018-02-06 17:36:29 +0800

Make rectangle rendering pixel-perfect
Offsetting two of the borders renders all of the corners (previously,
the top-left pixel was left out) and ensures that semitransparent pixels
are not double-rendered.

Pixel-perfection still depends on drivers not stuffing up line
rendering; 0.5px should probably be added to all coordinates at some
point.

--------------------------------------------------------------------------------
fdd7f25fa8 | Corin Buchanan-Howland | 2018-02-05 21:28:36 -0500

Change labyrinth risk-reward: reduce loot
This trims 1-3 items from the loot pool the minotaur guards. It's a small
adjustment, but I'm not certain it needs too much more.

This and the prior commit are short-term adjustments, but I know there are
plans for a larger fix in the longer term.

--------------------------------------------------------------------------------
1a6449310e | Corin Buchanan-Howland | 2018-02-05 21:24:34 -0500

Change labyrinth risk-reward: buff minotaurs
Improve minotaur speed from 10 to 12 and MR from 60 to 100. This should
make them quite nasty for the depth labs appear at, though still killable.

--------------------------------------------------------------------------------
dab028fd99 | Corin Buchanan-Howland | 2018-02-05 20:58:15 -0500

Improve some god welcome messages (Dingbat)
I didn't use any of Dingbat's suggestions, but I was inspired to do this
by them.

--------------------------------------------------------------------------------
e17c9578eb | Chris Campbell | 2018-02-05 20:21:44 +0000

Don't allow memorising from books in shops without buying them (drazt1k)

--------------------------------------------------------------------------------
83aada62b4 | Alan Malloy | 2018-02-05 06:46:40 +0000

Fix a compiler warning: uints are never less than 0

--------------------------------------------------------------------------------
91cc6d715c | advil | 2018-02-04 13:05:25 -0500

Don't crash if Duvessa dies when Dowan is polymorphed
If the new form is non-casting, mons->spells would be empty, leading to
a segfault. This commit simply prevents him from getting spells in these
cases (which are usually something like a worm). There are also rare
cases where this code probably would've worked, overwriting some spells,
but these are things like a boggart where we probably want him to keep
the poly'd spells.

--------------------------------------------------------------------------------
8de81770e6 | wheals | 2018-02-04 12:45:05 -0500

Give the actual correct color.
Dark blue was too easily confusable with mapping, not much uses brown.

--------------------------------------------------------------------------------
db5935f809 | wheals | 2018-02-04 12:43:46 -0500

Clear the minimap on Abyss shift.

--------------------------------------------------------------------------------
22cbc13cf8 | wheals | 2018-02-04 12:35:12 -0500

Don't show explore horizon around magic mapped locations.
Reduces the clutter for Deep Dwarves.

--------------------------------------------------------------------------------
7f09d74b5c | wheals | 2018-02-04 12:34:39 -0500

Don't show explore horizon in Labyrinth and Abyss.
It only contributed to visual clutter.

--------------------------------------------------------------------------------
f571278d6a | wheals | 2018-02-04 12:34:04 -0500

Darken the default explore horizon color.
Still open for suggestions on a better one.

--------------------------------------------------------------------------------
83a10e5898 | Neil Moore | 2018-02-01 11:37:04 -0500

Fix grammar in Gnoll manual entry (Ge0ff)
[skip ci]

--------------------------------------------------------------------------------
6f012ad52b | Doesnty | 2018-01-30 20:45:14 -0500

Allow Fulminant Prism and Lightning Spire to be cast on traps. (#536)

--------------------------------------------------------------------------------
8af8940e32 | wheals | 2018-01-30 20:44:46 -0500

Fix a crash when targetting near a friendly monster.
Also, unbrace.

--------------------------------------------------------------------------------
090d9d40b6 | jmbjr | 2018-01-30 20:36:38 -0500

Discourage summoned creatures from Bolting their summoners (jwoodward48ss) 
(#613)

--------------------------------------------------------------------------------
21b75971b6 | wheals | 2018-01-30 20:05:21 -0500

Refactor god_hates_item_handling.
Removes some duplication of conducts.

--------------------------------------------------------------------------------
47a4871b1b | wheals | 2018-01-30 18:32:48 -0500

Refactor testing whether items are forbidden.

--------------------------------------------------------------------------------
78804fe2cf | wheals | 2018-01-30 17:16:00 -0500

Remove some leftover purple chunk handling code.

--------------------------------------------------------------------------------
68cc883211 | wheals | 2018-01-30 11:03:15 -0500

Require uppercase letters for SID prompt (Sprucery, minmay).

--------------------------------------------------------------------------------
fbf05e55df | wheals | 2018-01-30 10:39:49 -0500

Correctly mark partially-ided weapons evil or useless (#9545, #10724).
Closes #691 PR.

--------------------------------------------------------------------------------
50b93cfed0 | wheals | 2018-01-30 08:37:12 -0500

Refactor lambdas in l_item_do_stacks (|amethyst).

--------------------------------------------------------------------------------
307c7c3803 | Matthew Boeh | 2018-01-29 23:47:03 -0500

Allow lich form to set gargoyle holiness to undead (#688)
This was broken in 63fd1ff.
--------------------------------------------------------------------------------
0de994a75c | wheals | 2018-01-29 23:28:45 -0500

Give jobbed monsters a random base type in ?/M.
None of the options here seem ideal:

* Showing all possible combinations would make the list way too big, and
  it would be annoying if ?/M on "red draconian" or on "draconian knight"
  gave a menu, instead of just showing the specific monster type
  searched for.
* The previous code showed a Platonic ideal of a monster, one that you
  would never actually find in the wild. Not very useful.
* If this randomness is too weird, we could take the approach derived
  undead do and only show the monster description, but that would be
  pretty unhelpful.
* The solution I went with here might confuse someone who wonders why
  the description keeps changing. Plus, it still doesn't allow searching
  for "red draconian monk" directly, for example, so the only way to see
  a particular combination is to refresh the entry a few times. (This
  isn't a regression, though, since before it was impossible to see a
  particular combination.)

Fixes #695 issue.

--------------------------------------------------------------------------------
991379fdf8 | wheals | 2018-01-29 22:53:28 -0500

Make i, (, and ) in the targetting UI obey keymapping.
This is still a bit of a hack; arguably it would be better code-wise to
add separate commands for doing these things on the firing screen, but
this would add mostly needless work for people remapping their keys.

Removes the (totally undocumented that as far as I can see) aliases of
^P for ( and ^N for ).

Fixes #706 issue.

--------------------------------------------------------------------------------
ea6f5a2d64 | wheals | 2018-01-29 22:17:14 -0500

Treat wands like other stackables for autopickup (#11305).
The alternative implementation would be to make is_stackable_item return
true for wands, but that has more far-reaching consequences.

--------------------------------------------------------------------------------
c8a8a66f23 | wheals | 2018-01-29 21:51:43 -0500

Fix local tiles minimap not properly showing transporters.

--------------------------------------------------------------------------------
6540597bf1 | wheals | 2018-01-29 21:51:12 -0500

Fix the order of tile color options to match the enum.
Or in one case, to be alphabetical.

--------------------------------------------------------------------------------
13168bc251 | wheals | 2018-01-29 21:37:44 -0500

Show the explore horizon on the Tiles minimap (AndSDev).
Tested on both Webtiles and local.

Fixes #389 issue.
Closes #392 PR.
Closes #394 PR.

--------------------------------------------------------------------------------
89fc7b81db | wheals | 2018-01-29 20:34:52 -0500

Rename feature_def::{d,}map_colour to unseen_colour.
To clarify that it is used specifically when the feature has not yet
been seen.

--------------------------------------------------------------------------------
82d722aea9 | cut1less | 2018-01-29 19:23:05 -0500

(Console) Use magic mapping colors
map_colour() exists but is not called anywhere. This adds a
magic-mapping section to where out-of-LOS elements get their color.

--------------------------------------------------------------------------------
314b90714a | wheals | 2018-01-28 15:18:53 -0500

Fix an uninitialized variable warning.

--------------------------------------------------------------------------------
8341686a52 | wheals | 2018-01-28 15:10:21 -0500

Restrict the "treat monster under you as the source" code to Dith shadows.

--------------------------------------------------------------------------------
1c85753056 | Corin Buchanan-Howland | 2018-01-28 14:54:24 -0500

Make Dith Shadow Mimic launchers normal (Valarioth, ebering, advil, Snack)
Dith now correctly sets shadow mimic launchers to be unbranded and +0 as
intended. Thanks to ebering for determining the root cause and advil for
writing this code.

--------------------------------------------------------------------------------
70bfd0b602 | Elan Morin Tedronai | 2018-01-28 11:16:20 -0500

Do not force more prompts for (most) of desolation of salt messages. (#707)
Timed portals have a default force more prompt for their initial

announcement message. The following messages do not cause additional

more prompts by default.



This commit makes the Desolation of Salt messages also behave like that.

Before this commit, the force_more was defined just as "distant wind".

Since "distant" is also used in many of the followup messages to

describe how far away the player is from the portal, this caused a lot

of additional "more" prompts for the player.
--------------------------------------------------------------------------------
dd6f4a9394 | Aidan Holm | 2018-01-28 04:13:31 +0800

Add icon for possessable status (Ultraviolent4, #11239)

--------------------------------------------------------------------------------
871f50cfef | Aidan Holm | 2018-01-28 03:51:09 +0800

Fix typo (Poroing, #11291)

--------------------------------------------------------------------------------
bb09730ba0 | Aidan Holm | 2018-01-28 03:46:07 +0800

Fix crash when resizing window while targeting (#11356)

--------------------------------------------------------------------------------
5b255cfda4 | Aidan Holm | 2018-01-27 05:25:19 +0800

Fix spurious spell failure warning for wands (Le_Nerd, #11370)
Also removes the unused fail_chance variable, spotted by wheals.

--------------------------------------------------------------------------------
beb72400cb | advil | 2018-01-25 20:21:15 -0500

Make sudo: required for travis explicit
We were grandfathered in to this being the default because the project
was created before Feb 15, 2015.  It's no longer the default, so any
forks after that will get travis errors from running on the
container-based enviornment, which doesn't support sudo.

--------------------------------------------------------------------------------
89a73045dd | Aidan Holm | 2018-01-26 03:00:20 +0800

Add verbal spell failure description (amalloy)
This provides spell safety information to players who are unable to
see the colour of the failure rate. The text colour of this prompt has
also been changed to lightgrey, in order to make the spell name more
distinct.

--------------------------------------------------------------------------------
3ad276d848 | Aidan Holm | 2018-01-26 03:00:20 +0800

Omit very-dangerous message on 100% spell failure

--------------------------------------------------------------------------------
bcde4f2d88 | John Boyle | 2018-01-26 03:00:20 +0800

Colourize risk of spell failure for last casted spell (aidanh)

--------------------------------------------------------------------------------
505e61d45a | John Boyle | 2018-01-26 03:00:20 +0800

Prevent casting a spell with 100% failure chance (aidanh)
If there's never an advantage for a player to try to cast a spell with
100% failure, why do we even allow it as an option?

If there's really some edge case advantage for a player to try to cast a
spell with 100% failure, why would we continue to encourage that?

Seems like a win/win to just prevent it from being cast in the first
place.

--------------------------------------------------------------------------------
dc44e7b158 | John Boyle | 2018-01-26 03:00:20 +0800

Display spell fail % for "dangerous to cast" warning (aidanh, tedric, Zenthirum)
These are Zenthirum's changes from the mantis bug report.

--------------------------------------------------------------------------------
ee1c82b777 | Aidan Holm | 2018-01-26 03:00:20 +0800

Add spell_failure_rate_string()

--------------------------------------------------------------------------------
37984e87f8 | Aidan Holm | 2018-01-26 02:32:34 +0800

Fix ?/I showing descriptions for wrong items
There were several problems with the old implementation.
get_item_by_name() did fuzzy matching, instead of exact matching, and
only a handful of item types were checked in _describe_item(). In
addition, a partial match against item types checked first would be used
immediately, without checking for a better match of a different type.

To fix this, get_item_by_exact_name() is added. The name given to it is
compared against the dbname of all possible items, and only an exact
match is considered a success.

--------------------------------------------------------------------------------
ff2d48bc87 | wheals | 2018-01-25 11:09:24 -0500

List the includable rcfiles in options_guide.txt (Yermak).
They were already in the default init.txt, but that tends to get overwritten.

--------------------------------------------------------------------------------
366d4ef438 | panicbit | 2018-01-25 11:06:25 -0500

Add neo command keys (#566)
Probably not going to be more unused than Dvorak or Colemak...
--------------------------------------------------------------------------------
1ac4c55b9e | wheals | 2018-01-24 21:04:08 -0500

Fix crash when describing memorised spells.

--------------------------------------------------------------------------------
b4b8e1fa1e | Aidan Holm | 2018-01-25 07:32:45 +0800

Make Serpent of Hell name wrangling slightly less brittle

--------------------------------------------------------------------------------
2fe0497d07 | Aidan Holm | 2018-01-25 07:32:45 +0800

Show Serpent of Hell flavour in ?/M list

--------------------------------------------------------------------------------
7cd46d36cf | Aidan Holm | 2018-01-25 06:25:49 +0800

Allow memorising from description of book on ground (Yermak, #10799)

--------------------------------------------------------------------------------
a32820bc89 | cut1less | 2018-01-25 03:29:34 +0800

Display zombie hands icon for offline tiles users

--------------------------------------------------------------------------------
7da2295646 | Aidan Holm | 2018-01-24 22:44:10 +0800

Don't list removed books in ?/s spell descriptions (rchandra, #11287)

--------------------------------------------------------------------------------
6b88ebb18f | advil | 2018-01-22 16:07:15 -0500

checkwhite
[skip ci]

--------------------------------------------------------------------------------
33745146cc | advil | 2018-01-22 16:05:46 -0500

Centralize some vault-type-specific guidelines to be easier to find
+ a bunch of editing and formatting.

--------------------------------------------------------------------------------
23542c2a9c | Aidan Holm | 2018-01-22 04:58:05 +0800

tiles: show dungeon cursor on mouse-move in X view

--------------------------------------------------------------------------------
bd61d0d286 | wheals | 2018-01-21 15:51:17 -0500

Revert "0.21 tournament reminder."
This reverts commit eb883ae61ce99abd1f1afd7a535320dd6b9a2829.

--------------------------------------------------------------------------------
de60138291 | elliptic | 2018-01-21 15:33:47 -0500

Fix zombie hands math.
Damage wasn't exactly multiplied by 0.75 in 55908e5a (because 2dN has
expected value N+1, not N).

--------------------------------------------------------------------------------
7adf481f94 | wheals | 2018-01-21 15:19:44 -0500

Add instructions for compiling local tiles on Windows 10 WSL.

--------------------------------------------------------------------------------
b094c4c936 | wheals | 2018-01-21 15:11:11 -0500

Mark cloud immunity scarves as useless under Qaz.
This is in line with scrolls of amnesia under Trog.

--------------------------------------------------------------------------------
94e0ad481e | gammafunk | 2018-01-19 17:42:17 -0600

Remove Borgnjor's Vile Clutch from the Book of Necromancy
This is a strong spell that works against most things in the dungeon.
The Necromancer start is already very strong without BVC, having animate
skeleton/dead for non-resistable damage and vampiric drain for good
damage and healing. This commit removes BVC from the Necromancer
starting book, leaving it in the Book of Unlife and the Book of Dreams.
It's also available through Kiku/Sif gifts, of course.

--------------------------------------------------------------------------------
55908e5af2 | gammafunk | 2018-01-19 17:42:17 -0600

Reduce the constriction damage from Borgnjor's Vile Clutch
This is a level 5 spell that does high damage per cast with good spell
power, is applicable to a large majority of monsters, and only checks
half AC.  Although the damage per turn is not high compared to other
level 5 spells, the cumulative damage is high, and the spell has lots of
additional utility for restricting monster movement on top of this
damage. To help keep the overall usefulness more in line with other
level 5 spells, this commit reduces the constriction damage by 25%.

--------------------------------------------------------------------------------
3fd002ec18 | advil | 2018-01-19 17:53:57 -0500

Add transporter landings to sanitize_feature
I'm still not really sure how this is happening (and it may be a bug),
but somehow abyss terrain can get reused on abyss shifts, including
terrain that used to be MMT_VAULT. This seems to occur when the abyss
level layout generater is reset, something that happens at least on the
first abyss morph after loading a game in the abyss.  When it does
happen, sanitize_feature is called on the remnant terrain to clean up
various things before reusing it.  Transporters were already on the list
(turning to arches) but not landing sites; I just made landing sites
turn to arches as well.

This led to a (rare) way that the abyss could break transporter pairs,
if ex-vault-terrain is part of what gets reused. I don't know the exact
conditions, but I *think* it is some combination of saving/loading at
the right distance from the vault, and then having the abyss shift. This
probably could use some more investigation.

--------------------------------------------------------------------------------
218e7ffaa8 | advil | 2018-01-18 19:23:26 -0500

Don't let lugonu corrupt overwrite transporter landing sites
Since it can't overwrite transporters. This is not the bug we were
looking for, but it is still *a* bug.

(cherry picked from commit 2553a3340b4d1c90901eebb07941a6ff69edc3fc)

--------------------------------------------------------------------------------
246a1cd83c | advil | 2018-01-18 16:00:29 -0500

Don't infinitely loop with crawl_state.seen_hups on tiles (11353)
This could happen if multiple key events were in the SDL queue when
SDL_QUIT was received, a situation apparently triggered by windows
alt+f4 after the recent SDL2 update. I'm not entirely sure why it's not
swallowing the key events any more, but some aspects of modifier key
behavior did change, and event order may have changed. This fix
ignores all key events after the SDL_QUIT event (or other HUP).

This is exactly the possible infinite loop referred to in 2dbd2a41df8c.

--------------------------------------------------------------------------------
7478db5620 | advil | 2018-01-17 12:33:40 -0500

Ensure that _getch_mul returns a non-empty keyseq (aidanh)
The getch concept seems to imply this, but if somehow you get the SDL
event loop to produce only CK_NO_KEY, this assumption would be violated.
(Though, crawl didn't obviously have problems when the deque size was 0;
it's possible the assumption is still made somewhere in the macro code
that I didn't check.)

--------------------------------------------------------------------------------
af9c1943b0 | advil | 2018-01-17 12:33:40 -0500

Rewrite text input suppression to use different hacks
On most(?) windows and linux setups, numpad keys with numlock on send
both a keydown event and a textinput event with the corresponding
number; with numlock off only the keydown event is sent. On OS X there
is no numlock, but this dual behavior happens always. Crawl is supposed
to treat the numpad uniformly regardless of numlock state, so it needs
to ignore the double press. For legacy reasons (I think) it also needs
to correctly handle just the number input. In the numlock on case (and
on OS X), therefore, one or the other has to be suppressed.

The previous approach relied on starting and stopping the text input
system clearing any upcoming SDL_TEXTINPUT events. On Windows, updating
SDL to 2.0.7 has broken this assumption, and this toggle only sometimes
works as intended. I couldn't figure out a reasonable way to restore the
behavior of this toggle, so here is a new approach.

This commit tries to do things without relying on any particular SDL
code; if a textinput event immediately follows a matching keydown event,
the textinput event is ignored. This of course assumes that these events
are adjacent, but in my testing on OS X and windows this has always been
true so far. This patch will need some more testing.

(I suspect the relevant SDL commit is this one:
https://github.com/spurious/SDL-mirror/commit/ff8a1efc51a6ad7de6379cde7047d135ff
d7e15e
because it changes the timing of textinput events, which were previously
guaranteed to be near the keydown; but I haven't tested this
hypothesis.)

--------------------------------------------------------------------------------
605b837862 | advil | 2018-01-16 20:16:13 -0500

Clear m_glyphs when (re-)configuring fonts
Not clearing this breaks changing DPIs (e.g. by dragging across screens,
22212c17e2ada4c5306) because the advances (probably among other things)
are apparently still cached here from the previous DPI.

--------------------------------------------------------------------------------
0f8607c5c5 | advil | 2018-01-14 15:11:58 -0500

Make ability wall jump work under silence
...like the movement based version.

--------------------------------------------------------------------------------
0fd0111e49 | Aidan Holm | 2018-01-14 04:01:05 +0800

Fix uninitialized read when handling god speech

--------------------------------------------------------------------------------
d698a02385 | Aidan Holm | 2018-01-13 06:29:24 +0800

Add some new title artwork (froggy)

--------------------------------------------------------------------------------
1fede220a4 | advil | 2018-01-11 20:52:08 -0800

Update submodule

--------------------------------------------------------------------------------
7512b04431 | advil | 2018-01-11 20:37:56 -0800

Improve support for MSYS2
This check was relying on a uname that MSYS2 doesn't always set,
depending on how it is run.

SDL2 submodule also needs a related fix.

--------------------------------------------------------------------------------
db02301618 | advil | 2018-01-11 18:37:05 -0500

Revert 399e2f71cb99 and do it a different way
v.1 was a terrible, terrible idea.

--------------------------------------------------------------------------------
2b194f0b2f | Gregory Chereshnev | 2018-01-11 13:56:55 -0800

Update species.txt
A small translation.
--------------------------------------------------------------------------------
399e2f71cb | advil | 2018-01-11 15:01:59 -0500

Fix a DEAD MONSTER (u/cervance)
Even with clean=false, if inflict_damage recursively triggers the
disappearance of a defender that is a summon via the death of the
summoner (via usk pain bond), you can get a cleaned up dead defender
after the call.

This fix addresses only aux attacks, other calls to inflict_damage may
still lead to DEAD MONSTER messages. I don't think it is plausible to
change things so that the summon isn't cleaned up yet, which would be a
better fix in principle (cf. f70bbbcf307f), but I could be wrong.

--------------------------------------------------------------------------------
92e58f9d9e | Alan Malloy | 2018-01-11 11:26:44 -0800

Simplify printf specifiers for !agi and !brill

--------------------------------------------------------------------------------
116c2a8f25 | advil | 2018-01-10 12:51:39 -0500

One more -- add a caveat about the font
[skip ci]

--------------------------------------------------------------------------------
9254d951ae | advil | 2018-01-10 12:48:40 -0500

List recognized language codes in options_guide.txt

--------------------------------------------------------------------------------
0944b2b1ad | Alan Malloy | 2018-01-10 09:44:59 -0800

Mention the 'language' option in options_guide.txt

--------------------------------------------------------------------------------
7da74aacb5 | Alan Malloy | 2018-01-10 09:41:21 -0800

Improve error message when rcfile specifies unknown language

--------------------------------------------------------------------------------
4406e2fe30 | Aidan Holm | 2018-01-11 00:55:49 +0800

fontwrapper-ft: cache glyph metrics outside the atlas
This fixes huge lag when trying to calculate the rendered size of huge
strings of text (string_width(), string_height()). Previously, glyph
metrics were stored with the font atlas metadata, so every glyph lookup
required shuffling the LRU metadata: 95% of string_width() runtime was
spent inside map_unicode(), and 95% of its runtime was spent updating
the LRU metadata. This is pointless, because the glyphs aren't
getting rendered (and what happens when a buffer has >256 distinct
glyphs in it, anyway...)

New solution: store glyph metrics in a big vector keyed by codepoint,
for fast access, and auto-expand it as necessary. If memory usage
becomes a concern, there are several low hanging fruit: the GlyphInfo
struct could be compacted significantly, and the codepoints used in
game content (in dat/) fall into distinct bands with about 50% empty
space.

After this change, string_width() runtime is dominated by next_glyph().

--------------------------------------------------------------------------------
f756b68322 | Kyle Rawlins | 2018-01-10 10:06:50 -0500

Tweak build instructions for msys2
Apparently installing the toolchain doesn't set the path automatically.



[skip ci]
--------------------------------------------------------------------------------
eddfa9bfd9 | Alan Malloy | 2018-01-09 17:41:07 -0800

Don't clear unique annotations when you defeat an illusory unique

--------------------------------------------------------------------------------
f34168a859 | Aidan Holm | 2018-01-10 07:36:22 +0800

Fix some unused func/var warnings on console

--------------------------------------------------------------------------------
bf6022e027 | Alan Malloy | 2018-01-09 13:11:22 -0800

Make Duvessa and Dowan react the same to killing each other

--------------------------------------------------------------------------------
6b3d46cdb4 | Aidan Holm | 2018-01-09 22:53:21 +0800

Remove redundant spell tiles

--------------------------------------------------------------------------------
b6df83e181 | Aidan Holm | 2018-01-09 22:53:21 +0800

Add generic monster spell tile
As distinct from the Error tile.

--------------------------------------------------------------------------------
03c2c45193 | Aidan Holm | 2018-01-09 22:53:21 +0800

Add consistent background to monster spell tiles

--------------------------------------------------------------------------------
8ce38db433 | Aidan Holm | 2018-01-09 22:53:21 +0800

Don't show removed spells in ?/s menu (rchandra, #11287)

--------------------------------------------------------------------------------
25970fcdeb | Aidan Holm | 2018-01-09 22:51:33 +0800

Fix floor features getting a black tile in ?/F
A DNGN_UNSEEN tile was being added by FeatureMenuEntry, since the
uninitialized position (the origin) was unseen. Normally this didn't
matter as menu entry tiles are rendered in a sorted order, with the
unseen tile underneath the feature tile, but for floor tiles this
sorting placed the floor tile underneath the UNSEEN tile.

--------------------------------------------------------------------------------
3eaed1801d | Chris Campbell | 2018-01-09 13:47:07 +0000

Clean up some comment spacing

--------------------------------------------------------------------------------
0a53ea1f8c | Chris Campbell | 2018-01-09 13:47:07 +0000

Don't place air elemental bands with spriggan air mages
Since their tornadoes tend to just kill the spriggans.

--------------------------------------------------------------------------------
e097ebc588 | Chris Campbell | 2018-01-09 13:47:07 +0000

Don't require the rest command to make barbs expire
Have them expire when not moving (as with Hop cooldown), rather than having the
"wait" command specifically do something special for them. Also slightly
increase their base duration, since this does allow for them to expire while
doing other things in combat.

--------------------------------------------------------------------------------
299d06e3d2 | Chris Campbell | 2018-01-09 13:47:06 +0000

Allow manually cancelling Formicid digging
Normally there's no need to manually cancel it (since it's always free and
instant to activate, and taking any action other than digging cancels it), but
having the digging status active prevents WJC walljumping so there needs to be
a way to cancel it without taking an action (other than saving and reloading).

--------------------------------------------------------------------------------
1bb26a1297 | Aidan Holm | 2018-01-09 05:47:28 +0800

Fix local tiles resize during yesno and stat gain prompt

--------------------------------------------------------------------------------
76f3efaaf5 | Aidan Holm | 2018-01-09 00:33:26 +0800

Shorten Trog ability description to fit in one line

--------------------------------------------------------------------------------
614aadd271 | gammafunk | 2018-01-07 16:05:44 -0600

Fix a crash when attempting to print constriction status (dweomer)
Broken in 5bb8f479, we have an ASSERT when the player is constricted,
but we're unable to look up the corresponding monster. This commit uses
the proper check for a valid constrictor, returning false in the
relevant function if the constrictor is invalid for any reason, which
will prevent constriction being printed as a status.

--------------------------------------------------------------------------------
87706774e6 | Aidan Holm | 2018-01-07 04:00:30 +0800

Choose correct tile for headless vines/starspawn tentacles

--------------------------------------------------------------------------------
7216f87f54 | Aidan Holm | 2018-01-07 04:00:30 +0800

Don't vary tiles for fake monsters
This fixes monsters' tiles varying on the ?/M screen.

--------------------------------------------------------------------------------
b9bda1df8b | Aidan Holm | 2018-01-07 01:26:49 +0800

Fix glyph metric lookup for multibyte utf-8 chars

--------------------------------------------------------------------------------
5d95dd4b74 | Aidan Holm | 2018-01-07 01:26:42 +0800

Fix some iterations over multibyte utf-8

--------------------------------------------------------------------------------
eb883ae61c | wheals | 2018-01-05 16:17:53 -0500

0.21 tournament reminder.

--------------------------------------------------------------------------------
c6c46c7272 | gammafunk | 2018-01-05 12:39:40 -0600

Finalize the changelog for 0.21

--------------------------------------------------------------------------------
002c4683ae | gammafunk | 2018-01-04 18:35:51 -0600

Fix the smite targeting of Borgnjor's Vile Clutch (mibe, 11334)
Currently the function to determine if susceptible monsters are in LOS
considers this spell as a beam exploding spell. This means any monsters
or other obstructions along the path to a valid target has the UI's
tracer beam explode on the obstruction, causing the beam to not count
the valid target as affected. The UI then incorrectly tells the player
that no valid target is in view.

This commit changes spell_no_hostile_in_range to handle the relevant
tracer for smite-targeted spells directly through an explosion at the
target. Now the UI correctly ignores obstructions for determining if
hostiles are in range for Vile Clutch.

TODO:

1) I leave a comment noting how some solid and non-reachable targets
should probably be bypassed for the hostile-in-range check.

2) I leave another comment noting how explosion radii data for spells
are not stored in any central place, and it would be good to do that.

3) Make the necessary zap_data entries so smite-targeted spells can use
the zap tracer loop in spell_no_hostile_in_range to properly determine
when a susceptible monster is in view. Currently the UI will only
consider range for smite-targeted spells without zap data. This means it
will consider e.g. an rWind monster to be a valid hostile in range for
Airstrike initially, only preventing the targeting later when the player
finally accepts that target in the UI.

4) I'm not actually sure that having to make zap entries for spells only
so they can properly consider targets in range is a good idea. Might
need to look at what the main intent of zap_data actually is.

--------------------------------------------------------------------------------
8c2458a2db | gammafunk | 2018-01-04 17:03:26 -0600

Slightly refactor some spell targeting code and update comments

--------------------------------------------------------------------------------
3d2f077def | gammafunk | 2018-01-03 21:21:33 -0600

Enable Wu Jian in stable versions
Although this god probably still has significant work to be done (e.g.
with Wall Jump), it's stable enough for release.

Any server admins with 0.21 need to be sure to pull this commit,
otherwise Wu Jian won't be available in that version.

This reverts commit bb42413abe9137b984ae9489003580cc3c1e1fdd.

--------------------------------------------------------------------------------
670f5c0235 | gammafunk | 2018-01-03 20:55:35 -0600

Enable Gnolls in stable versions
This species is ready for release. Any server admins with 0.21 need to
make sure to pull this commit, otherwise their 0.21 won't have Gnolls.

--------------------------------------------------------------------------------
c6ec8ce517 | gammafunk | 2018-01-03 14:54:08 -0600

Have all forms of monster movement break indirect constriction (mibe)
Previously monsters would continue to be indirectly constricted under
Borgnjor's Vile Clutch if they were trampled, yanked with Lesser
Beckoning, did a swoop attack, etc, since the move only caused
direct constriction to be checked for validity.

This commit unifies the checks for all forms of constrictions and
simplifies the code to have the validity checks for both happen through
a single method. Now any form of movement will cause the monster's
zombie hands constriction to end.

--------------------------------------------------------------------------------
c5a42386fb | gammafunk | 2018-01-03 14:42:36 -0600

Give a static function a clearer name

--------------------------------------------------------------------------------
ae4c1f7783 | Chris Campbell | 2018-01-03 14:16:34 +0000

Remove duplicate info from a description
The fact that it's instant is already automatically displayed.

--------------------------------------------------------------------------------
33df27158c | Chris Campbell | 2018-01-03 14:16:34 +0000

Improve some WJC messaging/descriptions

--------------------------------------------------------------------------------
d3d06db458 | Chris Campbell | 2018-01-03 14:16:34 +0000

Coding convention fixes

--------------------------------------------------------------------------------
5354c77413 | Chris Campbell | 2018-01-03 14:03:57 +0000

Allow (a)bility-walljump to be used when starving
Since the movement-based version can be - although if the ability is changed to
be ability-only, it'd probably be fine to revert this again.

--------------------------------------------------------------------------------
a749362bc3 | advil | 2018-01-02 17:39:58 -0500

Do post-move things for ability walljump (MarvinPA)
I forgot to deal with all this stuff.

--------------------------------------------------------------------------------
00266d7000 | Chris Campbell | 2018-01-02 20:43:48 +0000

More completely remove Delayed Fireball
Just leave the minimum required compatibility code and treat it like a regular
removed spell instead of leaving it as fully functional if it was still
memorised.

--------------------------------------------------------------------------------
37babaa309 | Chris Campbell | 2018-01-02 20:43:47 +0000

Make Yredelemnul's Enslave Soul smite-targeted
To make it slightly simpler and easier to use.

--------------------------------------------------------------------------------
aaa5eb42c7 | Chris Campbell | 2018-01-02 20:43:47 +0000

Remove another ability use of LOS_RADIUS
Doesn't have any actual effect in this case since the ability is smite-targeted.

--------------------------------------------------------------------------------
083de83b39 | Chris Campbell | 2018-01-02 20:43:47 +0000

Swap the ranges of Makhleb's Minor/Major destruction (edgefigaro)
Since Minor Destruction is very cheap and spammable, limit it slightly with
lower range, while increasing Major Destruction's range as it costs piety and
includes potential big explosions.

Also fix the abilities being able to be cast out of LOS when under an LOS
reduction effect.

--------------------------------------------------------------------------------
392ec66432 | Chris Campbell | 2018-01-02 20:43:47 +0000

Don't allow firing Draconian breaths out of LOS
When wearing the robe of Night, for example. Also allows the full-range breaths
to reach range 8 when playing as a Purple Draconian-Barachi hybrid (or if some
other method of increasing LOS comes into existence).

--------------------------------------------------------------------------------
eb5ee877fd | Chris Campbell | 2018-01-02 20:43:47 +0000

Fix Lugonu Banish working on out-of-LOS enemies
Had been broken with the addition of Barachi.

--------------------------------------------------------------------------------
9c1766aa31 | Chris Campbell | 2018-01-02 20:43:47 +0000

Remove Shatter from pan lord spell lists
It doesn't function very well as a monster spell in general (and should
possibly also be removed from Jorgrun) - much more so than other high-level
conjurations, it's likely to kill lots of the caster's allies, and especially
on very high-HD monsters is able to deal extremely high damage to players
without the kinds of restrictions that other scary spells have.

--------------------------------------------------------------------------------
8389209ce0 | Chris Campbell | 2018-01-02 20:43:47 +0000

Adjust messaging for emergency flight
So that it makes slightly more sense when swimming forms expire (without really
trying to give an explanation as to how the emergency flight works).

--------------------------------------------------------------------------------
ce77710a1f | gammafunk | 2018-01-02 12:12:29 -0600

Correct weapon offsets for the wight monster tile (gorglomux)

--------------------------------------------------------------------------------
34d3fd3267 | gammafunk | 2018-01-02 07:32:17 -0600

Updated entropy weaver and tormentor tiles (roctavian, #11340)
Entropy weavers don't have a multi-turn spell any more, so we don't need
3 tiles, but it was agreed that the second state is the best rendition
for the main tile.

The new tormentor is purple, which matches the console color better, but
it is *very* purple. Some would claim it is too purple, and I would have
no defense against this argument. Roctavian has said he'll redo the tile
entirely, but until then we'll use this one. The new tile helps make
tormentors distinct from, say, cacodemons, and telling demons apart is
the key to dominating the late-game, the end-game, extended, the
post-game, and the metagame.

--------------------------------------------------------------------------------
9421e3f383 | gammafunk | 2018-01-01 17:21:09 -0600

A batch of updated monster tiles (roctavian, #11340)
From insects, to orcs, to demons and many things in-between. Also new
tiles for many uniques, and Erica now has a version of her tile used
when she's not wielding a flaming scimitar, which allows that weapon's
tile to display.

--------------------------------------------------------------------------------
90586b74be | gammafunk | 2018-01-01 17:21:09 -0600

A new Shining One altar tile (roctavian, #11340)
The iconography is less a reference to Christianity and it's a fun
little inside joke for people familiar with the commonly used
abbreviation for this god.

--------------------------------------------------------------------------------
1cd5daa341 | gammafunk | 2018-01-01 17:21:09 -0600

A batch of updated artefact weapon tiles (roctavian, #11340)
For random artefacts and the unrands Majin-Bo, Wucad Mu, Leech, and
Wyrmbane. The latter is suppose to have its tile upgraded every couple
of enchantment, but I haven't yet made the code modifications for that.
For now, I've added the later variants and let the first variant be the
only one used.

Slings and fustibali have their ordinary and ego tiles updated in
addition to the artefact ones.

--------------------------------------------------------------------------------
9b14fc1fdf | gammafunk | 2018-01-01 17:21:09 -0600

A batch of updated elven monster tiles (roctavian, #11340)
Updates for all the elven monsters, including the uniques Dowan,
Duvessa, and Fannar.

Deep elf elementalists are supposed to have one of three tiles that
cycles with each UI action as nice way to make them distinct and
visualize their elemental nature, but this needs some additional code
changes. Right now, using these in a cycle wouldn't display their
wielded weapon for any tile except the first variant. I'm adding the
variants, but only enabling use of the first one until said code changes
can happen.

--------------------------------------------------------------------------------
898fae9ad6 | gammafunk | 2018-01-01 17:21:09 -0600

Some tweaks to plant tiles (roctavian, #11340)

--------------------------------------------------------------------------------
20fe0ecb12 | gammafunk | 2018-01-01 17:21:09 -0600

New and updated zombie and skeleton monster tiles (roctavian, #11340)
Improvements to various zombified and skeletal beasts. Now yak zombies,
bear zombies, and draconian skeletons have their own distinct tiles.

--------------------------------------------------------------------------------
4f60a598d5 | advil | 2018-01-01 14:45:26 -0500

Update wall jump info in changelog, options guide, and help
To add something about the ability, and try to make very obvious that
you can disable the movement-activated mode. (This mode is pretty
divisive, between players who find it fun, and players who it drives
crazy because it's so easy to trigger accidental wall jumps.)

--------------------------------------------------------------------------------
e27d229730 | Aidan Holm | 2018-01-02 00:45:03 +0800

Postpone timed portal messages bofore level load (Yermak, #11279)
TimedMessaging now ignores all turn events that occur before an
ENTERED_LEVEL event, and the ENTERED_LEVEL event now also causes
an elapsed time check.

--------------------------------------------------------------------------------
35895e124b | Aidan Holm | 2018-01-01 22:39:09 +0800

Fix spell list column heading alignments

--------------------------------------------------------------------------------
6182cf9dee | Aidan Holm | 2018-01-01 19:51:03 +0800

Improve rendering of menu entries with tall tiles
This makes the ?/M menu much nicer when big uniques (e.g. hell lords)
are shown. On webtiles, the centre of the tall tile was shown, while on
local tiles the full tile was shown, with the excess sticking out the top.

--------------------------------------------------------------------------------
3182a47cec | Aidan Holm | 2018-01-01 19:51:03 +0800

Add centre parameter to renderer.draw_from_texture()

--------------------------------------------------------------------------------
8a0fcf7ccf | Aidan Holm | 2018-01-01 19:51:03 +0800

Fix renderer.draw_from_texture() ignoring y_max

--------------------------------------------------------------------------------
01001fb107 | Aidan Holm | 2018-01-01 19:46:15 +0800

Fix alignment of spellsets with hex-chances

--------------------------------------------------------------------------------
dc0ec3ba9d | dplusplus | 2018-01-01 19:18:47 +0800

fix explore_discoveries::cleaned_feature_description()

--------------------------------------------------------------------------------
887ef9c48e | Aidan Holm | 2018-01-01 18:19:30 +0800

Correctly ellipsize multibyte strings

--------------------------------------------------------------------------------
122557b6f6 | Aidan Holm | 2018-01-01 18:19:30 +0800

Fix word-wrapping pt 2: short strings
This fixes the case when a newline occurs in the input string before the
width limit is reached.

We also use the new chop_bytes() to handle newlines correctly.

--------------------------------------------------------------------------------
1fac53a2cf | Aidan Holm | 2018-01-01 18:19:30 +0800

Fix word-wrapping of text with embedded newlines
This function is intended to find the point at which a string exceeds a
given horizontal width, but neglected to reset the accumulated width
after newlines. This caused text wrapped to fit within a rectangular
region to be prematurely wrapped.

--------------------------------------------------------------------------------
4e99ca046f | Aidan Holm | 2018-01-01 18:19:30 +0800

Add formatted_string::chop_bytes()
chop() uses wcwidth() -- this leads to subtle bugs if you're chopping
strings based on indices.

--------------------------------------------------------------------------------
4fa69d9a97 | Chris Campbell | 2017-12-31 20:05:56 +0000

Mark some Ely abilities as unusable when confused
Makes Ely's Purification and Ru's Draw Out Power the only abilities that can be
used while confused (since one of their main purposes is to cure it).

--------------------------------------------------------------------------------
ec8b4a958d | Chris Campbell | 2017-12-31 20:05:47 +0000

Fix unidentified scarves being targetable by ?enchant armour

--------------------------------------------------------------------------------
d89ddbe6f8 | Aidan Holm | 2017-12-31 17:48:34 +0800

Fix crash in player doll editor (GuideCritic, #11333)
Crash was caused by a collision between this enum and a player doll part
tripping up an assertion.

No save incompatibility: player doll data is serialized in a manner
independently of this enum's value, and mcache_ghost entries have their
dolls reconstructed from species and equipment on creation.

--------------------------------------------------------------------------------
fd72fac9da | gammafunk | 2017-12-30 19:28:37 -0600

Preliminary debian changelog entries for 0.21 and 0.22
[skip ci]

--------------------------------------------------------------------------------
e7d2b727e5 | gammafunk | 2017-12-30 19:05:14 -0600

More changelog updates

--------------------------------------------------------------------------------
786e97dd36 | gammafunk | 2017-12-30 18:15:33 -0600

Update the changelog through 0.21-a0-642-g5d013b21

--------------------------------------------------------------------------------
5d013b2151 | Aidan Holm | 2017-12-30 21:22:16 +0800

Fix ghost doll cycling through parts
The acting_part member was entirely unused. The i_ghost struct it is
part of is hashed to determine ghost appearances. While it is cleared
in the (monster_type, monster_type) constructor, it isn't cleared in
the (monster*, int) constructor, which seems to be used when monsters
move between cells.

--------------------------------------------------------------------------------
eef9d7f0d2 | Chris Campbell | 2017-12-30 02:26:27 +0000

Tweak Shatter some more
Add icy creatures back to the increased damage level (so they now take 2*
damage, compared to previously taking 1.5*), make the chances of wall
destruction all fixed instead of power-based, and update description.

--------------------------------------------------------------------------------
849abb4ab8 | hellmonk | 2017-12-30 02:00:18 +0000

Simplify shatter damage formula.
Will always do either 1, 3, or 6 dice depending on the monster. Notably,
shatter will now damage insubstantial monsters (for 1 die of damage), will do
normal damage instead of 1/3 to water elementals, and no longer does
additional damage to icy monsters. TBH this should be simplified further.

[Made some minor further adjustments, adjusting the order of operations for
checks on material/flight/insubstantiality for better consistency - MarvinPA]

--------------------------------------------------------------------------------
8afaa31302 | Chris Campbell | 2017-12-30 01:20:52 +0000

Simplify LRD explosion damage and size
Make each material type have a fixed damage and size, and don't increase
damage or size on a cast that destroys a monster or wall. Adjust metal walls
to have a fixed chance of destruction once above the power threshold, as alli
other wall types already had (instead of a power-based chance - simplifying
these further across the board would probably be good).

--------------------------------------------------------------------------------
11b2e07010 | advil | 2017-12-29 15:44:44 -0500

Allow wall jump against closed doors via the ability
Since the ability is always possible, there's no reason not to allow
this now. When moving, moving against a closed door still has the
regular behavior for the door type.

--------------------------------------------------------------------------------
f6577c8f77 | advil | 2017-12-29 15:44:44 -0500

Add a targeter/ability for WJC wall jump
This adds a way to trigger wall jump via an ability that has you target
a wall position; the targeter highlights the landing square and any
affected monsters. The behavior of wall jump activated this way should
be identical to that of move-triggered wall jump, but this is safer and
easier to understand.

This ability is always available if the player has wall jump, but
doesn't replace move-triggered wall jump.  For safer movement,
move-triggered wall jump can be disabled in rc by setting
`wall_jump_move = false` (default: true) leaving only the ability.  The
`wall_jump_prompt` option remains, but by default is false.

--------------------------------------------------------------------------------
589fbc3efc | Neil Moore | 2017-12-29 07:22:59 -0500

Update new-member instructions slightly.
With the move of the private list, the set of people who can edit
it is different.

[skip ci]

--------------------------------------------------------------------------------
1790b8220f | Neil Moore | 2017-12-29 07:22:59 -0500

Champagne and caviar for aidanh.
Welcome to the team!

[skip ci]

--------------------------------------------------------------------------------
af8bc5dced | advil | 2017-12-28 22:21:32 -0500

Use random food tiles for rations
This is based on a bunch of ideas that came up in ##crawl-dev last week
(|amethyst, wheals, maybe others).  It may or may not be a good idea
UI-wise with this exact tile set (since all the tiles are very focused
on one food concept, and might give the wrong impression) but it does
make the food tiles, and especially food shops, less monotonous.

This approach normalizes to the basic tile (currently the old bread
ration tile) in inventory. I've also brought back some old tiles, though
I left out the ones I found hardest to identify as food.  Handles save
compat for the inventory tile name.

--------------------------------------------------------------------------------
4c047d5f35 | Alan Malloy | 2017-12-27 14:02:52 -0800

Update copyright from 2016 to 2018
It may look a little early to you, but I got a time machine for Christmas.

--------------------------------------------------------------------------------
1e37ce5188 | gammafunk | 2017-12-26 07:12:43 -0600

Fix messaging when the Borg's Vile Clutch enchantment expires
Previously it would say "You lose your grip on ..." when Vile Clutch
expired, since the message was handled in the constriction code after
the enchant expired. Move this message into the enchantment expiration
code, so it can say "The zombie hands release their grip on..." instead.

--------------------------------------------------------------------------------
b5dc200ffb | gammafunk | 2017-12-26 07:12:43 -0600

Lower the enchantment duration of Borgnjor's Vile Clutch
Currently the enchantment lasts a long time relative to how many failed
escape attempts a monster is likely to have before it breaks free. This
means that monsters that can't or won't move can take especially large
amounts of damage from a single cast of Vile Clutch. At starting
spell-power levels of around 35 spell-power, the enchantment duration is
currently 5 + 0-16 turns for an average of 14 turns.

This commit changes the formula from:

5 + random2avg(spellpower / 2)

to:

4 + random2avg(spellpower / 10)

and using randomized rounding for the division. So at 35 spell-power,
the duration will be 4-7 turns for an average of 5.5 turns, and at 100
spell-power this gives 4-13 turns for an average of 8.5

A monster is very likely to escape before these average turns values at
those respective spell-powers, so the new duration formula will
effectively put a limit on damaging monsters that don't attempt escape
without frequently expiring before a monster breaks free.

--------------------------------------------------------------------------------
344d3514eb | Chris Campbell | 2017-12-24 19:16:26 +0000

Further ghost adjustments
Re-allow distortion, since it doesn't have any particular reason to be disabled 
compared to other threatening early brands, and fix movement speed at 10 rather 
than allowing slow but not fast ghosts.
--------------------------------------------------------------------------------
a19c9dc5aa | advil | 2017-12-24 13:06:03 -0500

Tweak min ghost speed to 10 after further discussion

--------------------------------------------------------------------------------
72aa5ef99f | advil | 2017-12-24 12:54:02 -0500

Normalize ghost min speed and prevent more ghost brands
The particular value of 12 was a suggestion of Lasty's; this may need
some more tweaking but I'd like to do something since newghosts won't
get merged for 0.21. 10 might be ok, it's probably the modal value right
now anyways. N.b. for anyone reading this who isn't familiar with
monster speed, 12 is slower than the player.  (These changes are likely
to get reverted or at least modified for newghosts.)

Resolves #570

--------------------------------------------------------------------------------
87fa41b98f | advil | 2017-12-24 12:54:02 -0500

Don't generate ghosts in portal branches
Also clean up / unify the code that decides where ghosts can place. We
probably won't merge any major ghost reform in 0.21, so this is a
stopgap to minimize griefing and avoid the balance issues that come from
the fact that many of these portals can generate at a wide range of
depths. Not sure if disabling wizlabs/desolation is necessary, but I did
it for consistency. At the very least, the design of portal branches can
make ghosts extremely annoying even for high level players (if you get
the ac/hp bag variety).

--------------------------------------------------------------------------------
79970e1199 | gammafunk | 2017-12-24 10:23:06 -0600

Show constriction and held statuses show properly (Pekkekke)
The logic was inverted, making damaging constriction show up as a "Held"
status light instead of "Constr" like it should. Fix this and a similar
inversion for monster info.

--------------------------------------------------------------------------------
1119ec1544 | advil | 2017-12-23 21:04:11 -0500

Add constriction information to xv in wizmode
Also a debug message for zombie hands constriction.

--------------------------------------------------------------------------------
16f8e2cdda | advil | 2017-12-23 15:06:36 -0500

Fix fontbuf_line_reader in insert mode (aidanh)
Remove some vestigial direct writing to crt.

--------------------------------------------------------------------------------
80d1a5309b | advil | 2017-12-23 14:46:38 -0500

A couple instances of 0 -> nullptr

--------------------------------------------------------------------------------
55ff828305 | advil | 2017-12-23 14:43:21 -0500

Attempt to fix the BVC constriction bug
I still haven't replicated this, but as near as I can tell the problem
is that in some special cases involving summons,
`constriction_damage_defender` can lead to the iterator for constricting
becoming invalid. (One symptom is that the crashes happen at a point
where defender is nullptr.) This attempts to head off the problem by
operating on a copy of constricting when calculating constriction
damage. There may still be an underlying problem that this commit
doesn't fix.

--------------------------------------------------------------------------------
c60411f265 | gammafunk | 2017-12-23 05:33:01 -0600

Fix monster constriction data not getting marshalled
Broken in 5bb8f4791 as part of removing actor.held, we forgot to replace
a check with one of ::is_constricted().

A monster saved when it was constricted but not constricting something
itself wouldn't have its constriction data marshalled. So it would lose
all constriction state upon reload, causing a crash if the actor
constricting the monster attempted to constrict it again. In this case,
::is_constricted() would return false for the monster, yet it would
already be in its constrictor's constricting map.

This commit re-adds the constrictor check and uses the appropriate
methods to check constriction state instead of duplicating them.

--------------------------------------------------------------------------------
2783f2761f | gammafunk | 2017-12-23 05:33:01 -0600

A status tile for zombie hands constriction (Ultraviolent4)
Don't ask.

--------------------------------------------------------------------------------
ed4c157c36 | gammafunk | 2017-12-23 05:33:01 -0600

Shorten some enum names
Remove the BORGNJORS_ prefix from the enchantment, beam, zap, and
mon-info enums, which makes them significantly shorter and is consistent
how we name these enums for other spells.

--------------------------------------------------------------------------------
6cbd37fffe | Neil Moore | 2017-12-22 21:48:28 -0500

Don't guarantee Corpse Rot in Kiku's first book (hellmonk)
Make Corpse Rot alternate with Animate Skeleton instead of Pain, so that
Pain is the guaranteed spell.  Bloodless characters are still guaranteed
all three of those spells, while bloodful characters are guaranteed
Sublimation of Blood, so everyone gets at least one spell that isn't in
the Book of Necromancy.

Also, simplify the logic for doing this a bit.

--------------------------------------------------------------------------------
0010f08733 | Neil Moore | 2017-12-22 21:48:16 -0500

Guarantee a corpse-using spell in Kiku's second book.
And add a comment about it.  We have tried to enforce this guarantee in
the past, but never actually wrote it down.

--------------------------------------------------------------------------------
6d9b277d69 | advil | 2017-12-22 09:26:20 -0500

Fix a comment (wheals)

--------------------------------------------------------------------------------
8e08f28d93 | gammafunk | 2017-12-22 02:22:13 -0600

Don't have Borgnjor's Vile Clutch constrict friendlies (mibe)
I didn't intend for the spell to harm allies, but forgot to add the
alignment check initially. With this commit, any allies in the effect
area will be unaffected by the spell, and it will work normally on any
hostiles in the same area.

It's fair question as to whether an enchantment spell should have such
favorable selective targeting like this, but it makes using other
necromancy ally spells with this spell a lot less annoying. If this
selectivity gets removed, the spell will need a proper warning prompt
when friendlies would be affected.

--------------------------------------------------------------------------------
760ccf5bcb | gammafunk | 2017-12-22 02:03:38 -0600

Show the constriction icon monsters under Borg's Vile Clutch (mibe)
We could have a spell-specific version of this icon to help
disambiguation rare cases when it's not clear what the source of the
constriction is, but this will do for now.

--------------------------------------------------------------------------------
5d64845bf7 | gammafunk | 2017-12-21 22:50:25 -0600

More fully remove Cigotuvi's Embrace
Descriptions removed and Lugonu's bribe vault uses animate dead in its
place.

--------------------------------------------------------------------------------
88d601c096 | gammafunk | 2017-12-21 22:50:24 -0600

More fully remove Control Undead
We missed spell descriptions as well as monster casting code, which
wasn't actually used by any monster. In Lugonu's bribe vault, only use
Dispel Undead for the randbook Kiku "taunt".

--------------------------------------------------------------------------------
d3d47d3693 | gammafunk | 2017-12-21 22:50:23 -0600

A spell tile for Borgnjor's Vile Clutch (CanOfWorms)

--------------------------------------------------------------------------------
b17dc049f4 | gammafunk | 2017-12-21 22:50:23 -0600

Fix a method comment (amalloy, PR#678)
Thanks for all the feedback in the pull request, amalloy! Closes #678.

--------------------------------------------------------------------------------
eccb35337b | gammafunk | 2017-12-21 22:50:22 -0600

Tweak a spell description (amalloy, PR#678)
Hopefully clarify that the corpses supplying our zombie hands for Vile
Clutch were already there and that it's not a corpse-using spell.

--------------------------------------------------------------------------------
f540f807bb | gammafunk | 2017-12-21 22:50:22 -0600

Correctly use a variable for spell noise (amalloy, PR#678)

--------------------------------------------------------------------------------
5c814b5a3e | gammafunk | 2017-12-21 22:50:21 -0600

Correct a comment (amalloy, PR#678)

--------------------------------------------------------------------------------
d8688e63f4 | gammafunk | 2017-12-21 22:50:21 -0600

Use nullptr for a null pointer value (amalloy, PR#678)

--------------------------------------------------------------------------------
6bb3b7aa4d | gammafunk | 2017-12-21 22:50:21 -0600

Allow Vile Clutch to work under Sacrifice Love (amalloy, PR#678)
This spell isn't actually creating an controllable ally, and Sacrifice
Love is otherwise consistent about blocking use of ally monsters.

--------------------------------------------------------------------------------
cb6d0b3925 | gammafunk | 2017-12-21 22:50:20 -0600

Tweak Kiku's book gifts and remove a double entry (amalloy, PR#678)
When removing Control Undead, I simply had Kiku's second gift book
always contain Animate dead since there was no other level 4 Necromancy
spell. This isn't necessary, since we can choose between Animate Dead
and Agony for the first spell, then Vile Clutch and Excruciating Wounds
in the second. It's better to have more variety in Kiku's gifts.

Also don't mistakenly double the weight of gifting Vile Clutch.

--------------------------------------------------------------------------------
8dea739971 | gammafunk | 2017-12-21 22:50:20 -0600

Fix logic in a constriction damage check (amalloy, PR#678)
Technically this case should never arise, but don't count not having a
constriction attack as having a damaging constriction attack.

--------------------------------------------------------------------------------
417cd8a63a | gammafunk | 2017-12-21 22:50:19 -0600

Satisfy grammarians (amalloy, PR#678)
"I know you didn't write this, but RIP grammar. It's a participle, not a
gerund." --amalloy

--------------------------------------------------------------------------------
d0a639de37 | gammafunk | 2017-12-21 22:50:19 -0600

Shorten a spell noise check (amalloy, PR#678)

--------------------------------------------------------------------------------
4099806cc6 | gammafunk | 2017-12-21 22:50:19 -0600

Fix spacing (amalloy, PR#678)

--------------------------------------------------------------------------------
d48fd3af11 | gammafunk | 2017-12-21 22:50:19 -0600

Require solid ground for Borgnjor's Vile Clutch (amalloy, PR#678)
It's reasonable to not allow this spell to work when a monster is in
deep water or lava given the theme of hands reaching up from the earth.
Shallow water is still allowed.

--------------------------------------------------------------------------------
62db60ecda | gammafunk | 2017-12-21 22:50:18 -0600

Refactor constriction code (amalloy, PR#678)
Don't have so many methods handle both direct and indirect constriction,
and move repeatedly used logic into methods and functions.

Be more consistent about stopping only direct constriction when the
reason is based on physical changes, as opposed to level or LOS changes
that would affect both forms.

--------------------------------------------------------------------------------
e8387de32b | gammafunk | 2017-12-21 22:50:18 -0600

Remove an old comment
Only applicable for save compat, and it will be confusingly left around
when TAG MAJOR is increased if not removed.

--------------------------------------------------------------------------------
7a04ea126d | gammafunk | 2017-12-21 22:50:18 -0600

Remove the Twisted Resurrection icon
since this is no longer a player spell.

--------------------------------------------------------------------------------
b102ffe9e4 | gammafunk | 2017-12-21 22:50:18 -0600

Remove Cigotuvi's Embrace
This spell had a terrible time competing with the other corpse-using
spells and almost never saw actual use by players. It had to compete
with corpse-using spells that already effectively increase your defense
by making allies in addition to dealing damage through those allies. The
time-degeneration aspect needed to limit degenerate tactics made
deciding to use this spell over those spells even less likely.

It may be possible to re-imagine this spell as a death-channel-like
charm that gives defenses when a monster dies. This commit removes this
spell until any such rework can be done.

--------------------------------------------------------------------------------
e53b2adb7b | gammafunk | 2017-12-21 22:50:17 -0600

Remove Control Undead
This spell was a cheap source of allies in the Necromancy school, a
school that already gives hordes of cheap allies. It did this by turning
nearly any monster with the undead holiness either directly into a
source of out-of-LOS damage or indirectly into a source of damage
through any summons the monster made. Due to the out-of-LOS and
greater-than-usual ally management aspects of temporarily charmed
monsters, enslavement is better kept on the wand of enslavement, which
has limited uses due to charges.

For dealing with summons via a spell we have aura of abjuration, which
at least doesn't both shut down high-level undead summoners and deal
loads of damage at the same time. Necromancy has a new damage spell,
Borgnjor's Vile Clutch, so that addition and removing Control Undead
help shift Necromancy away from feeling like Summonings Redux.

--------------------------------------------------------------------------------
3088ccc52b | gammafunk | 2017-12-21 22:49:22 -0600

A Level 5 Necromancy/Earth Spell: Borgnjor's Vile Clutch (mikee)
A spell used to simultaneously damage a monster and hinder their
movement. The in-game spell description:

    Calls forth hands from corpses interred beneath the dungeon floor
    long ago. Enemies caught in the area will be held in place and
    constricted until they break free.

This spell helps move the focus of Necromancy a bit away from
summoning-like effects and gives the school some synergy with the Earth
school.  This is a powerful spell likely to remain useful for damage and
escape purposes the entire game, but it does require significant
investment in two schools that otherwise don't have overlap in spells.

For testing purposes it's currently in the Necromancer starting book
(the Book of Necromancy), as well as the Book of Unlife and the Book of
Dreams. Haven't you ever had a nightmare like that?

It may not remain in the Book of Necromancy. Even with the future
removal of Control Undead, this book will have 5 spells culminating with
Vampiric Drain and Animate Dead, which are very strong. That said, this
spell might have a place in that book, possibly depending on other
adjustments to its spell list.

Kiku's book gifts have been adjusted to include this spell where
appropriate.

Spell Details:

Borgnjor's Vile Clutch is smite-targeted with range 5 and a 3x3 area of
effect for applying its enchantment, allowing you to affect monsters up
to 6 squares away. To be susceptible, a monster must be visible, on or
over ground with a solid floor, meaning normal floor or shallow water,
and not resistant to constriction (Note: the solid floor restriction was
actually implemented in a subsequent commit). The latter means it must
be substantial, not a slime, and not have spines. If a cast is
successful, the monster gets a "zombie hands" enchantment and is
constricted (and damaged from this constriction) immediately. The
overall duration is based on spell-power and is generous enough that a
monster is more likely to either escape or die from constriction damage
before the enchantment expires.

A monster going invisible doesn't stop the enchantment after it's been
successfully applied, but the monster's square becoming no longer
visible to the player does. Hence you can't constrict monsters out of
LOS with this spell.

During the enchantment, the monster is indirectly constricted, with the
player free to move independently. A player could decide to cast this
spell and move away in order to prevent the monster attacking them, but
this will give the monster escape attempts as it tries to move.

Damage is done over time according constriction rules, but with the
constriction base damage calculated by spell-power:

2d(5 + spellpower / 15)

Per usual constriction, damage increases over turns of constriction,
with a 5 turn step-down that adds half as much additional damage
on-average as was added in the previous 5 turns.

The chance for a monster to break free depends on spell-power and the
number of escape attempts they've made thus far (including the current
one):

(3 * attempts - 1) / (10 + spellpower / 5)

For 40 spell-power, which is typical for when the spell is first able to
be cast, this gives a 1/9 chance of the monster breaking free
immediately, a 5/18 chance on the next turn, and an 8/18 chance on the
third turn. If a monster does break free, it loses the enchantment and
the spell can be re-cast.

This spell is based on mikee's original tavern proposal at

https://crawl.develz.org/tavern/viewtopic.php?p=321376&sid=e6c1c6bba9bbf5ad71299
a95682c8452#p321376

and on discussions had with him (and *not* elliptic) in ##crawl. Zombie
Hands is a silly name for a spell, and that's not the name of this
spell, except possibly in informal speech. There are no orcs on the
moon, and there never will be.

--------------------------------------------------------------------------------
5bb8f47916 | gammafunk | 2017-12-21 22:29:53 -0600

Refactor out an enum and actor property
The held_type enum was vestigial, since the previous uses are now
handled elsewhere. It's only used related to checks whether a monster's
constriction does damage and doesn't need to be marshalled. Remove this
property and add the necessary save compat to handle transferred games.
The constriction damage check is now handled via an actor method.

--------------------------------------------------------------------------------
2314aa112c | Yermak | 2017-12-21 11:43:00 -0500

Require a single keypress to abort ?amnesia
This commit puts ?amnesia in line with other scrolls that bring up a
menu.

There are still inconsistencies left though: any letter keypress that
isn't legal exits ?amnesia's menu but not other scrolls' menus; any
digit keypress does the opposite: doesn't exit ?amnesia's menu but exits
other scrolls' menus; the first string of ?amnesia's menu is coloured in
blue (Forget which spell?), the first string of other menus is in white
(Identify which item?), the formatting is different too.

Resolves #661

--------------------------------------------------------------------------------
e1710fce0b | Aidan Holm | 2017-12-21 09:56:48 -0500

Add uncollected rune/orb tiles for } menu
The uncollected rune/orb tiles were made with the following imagemagick
command:

  convert in.png -normalize +level 12%,18% -fx intensity out.png

Brightness normalization isn't perfect, and perhaps the parts of each
tile included in the greyed-out version should be restricted; e.g.
mnoleg's rune is a little spotty.

--------------------------------------------------------------------------------
eac747fae7 | advil | 2017-12-21 09:43:03 -0500

Allow partial loading of bones files, and enforce level limits on load
This is a bit hacky: it loads the bones file and then resaves a new one
with any remaining ghosts. I'm not sure there's a good alternative
without significantly rewriting the bones file format (which I don't
really want to do).

Previously, level ghost limits were enforced when saving a bones file;
this switches to enforcing on load I expect this will make D:3-D:10
bones files fill up with ghosts quicker, not sure if this matters; it
also may reduce the average number of ghosts on levels deeper than 10
(though probably not by a lot). If I'm understanding things right, it
also preserves early-game ghosts that kill (non-undead) players, which
were previously guaranteed to be used only once -- this may matter more
than the first two effects (I'm not committed to this aspect of the
change).

The real end goal of this commit is to allow ghost loading one by one,
In preparation for more substantial changes to player ghosts.

--------------------------------------------------------------------------------
79d79c4c6a | advil | 2017-12-21 09:43:03 -0500

Allow saving arbitrary vectors of ghosts
This still uses the player's current level, so it's not independent of
global state, but this change allows some more flexibility.

--------------------------------------------------------------------------------
49f8b85919 | advil | 2017-12-21 09:43:03 -0500

Move some initialization inside ghost_init

--------------------------------------------------------------------------------
907874f493 | advil | 2017-12-21 09:43:03 -0500

Refactor ghost load/save to avoid global state
This shouldn't have any impact on current behavior, but will be helpful
for just about any changes that might happen to ghosts.

--------------------------------------------------------------------------------
8bd9a9d9c5 | advil | 2017-12-21 09:43:03 -0500

Don't create buggy ghosts in wizmode
If they don't have hp, they lead to problems on save/load.

--------------------------------------------------------------------------------
185da8e1cd | Alan Malloy | 2017-12-19 17:32:53 -0800

Clarify display of Fedhas food-based invocation powers (Stonar, #11330)

--------------------------------------------------------------------------------
2c32b0fbb7 | Neil Moore | 2017-12-18 23:58:50 -0500

Pull out likes_chunks ? HS_* : HS_* into a function.

--------------------------------------------------------------------------------
1b93aeea53 | advil | 2017-12-18 23:38:41 -0500

Let carnivores get nutrition out of chunks above full (ranchugoldfish)
Missed in the conversion to 1-level mutations, I think.  Because of a
somewhat odd fallthrough-ish setup in _chunk_nutrition, this was giving
gourmand ("extremely unsatisfying") messaging and 4% nutrition to
carnivorous players who ate chunks at HS_FULL or above, unless they were
actually wearing gourmand.

--------------------------------------------------------------------------------
b7d493ddfc | Aidan Holm | 2017-12-18 14:00:07 -0800

Fix extra pixel in demonic rune tile

--------------------------------------------------------------------------------
5a59f1690d | Filip Michałowski | 2017-12-18 12:05:24 -0800

Fixed no ability description on R-click (mantis #11231)

--------------------------------------------------------------------------------
50ea28b629 | Aidan Holm | 2017-12-18 10:58:05 -0500

Fix tiles not properly processing mouse move events
The old continue statement never worked at all: its while loop had
(!key) as a condition, so it was equivalent to a break. I've moved
the check to the start of the MOUSEMOTION handling: there's no point
partially processing the event if there's another mouse motion event
right behind it. Also updated the comment text a little to clarify.

This fix makes targeting mode gloriously smooth when rapidly moving the
mouse; probably fixes lag in other places as well.

--------------------------------------------------------------------------------
c6e9d756e6 | wheals | 2017-12-17 20:31:22 -0500

Move some relevant information upwards.

--------------------------------------------------------------------------------
eea428d597 | wheals | 2017-12-17 20:27:53 -0500

Add information about building Crawl on Windows with the WSL.

--------------------------------------------------------------------------------
e8bd8812df | Isaac Sloat | 2017-12-17 16:06:43 -0600

Retire, belatedly.
I don't have the time anymore to work on Crawl (and haven't had time for quite 
a while now), and I don't foresee myself revisiting this project in the future. 
I enjoyed contributing to this game, and deeply appreciate the devteam helping 
me learn the ropes a year ago. I'm looking forward to seeing what Crawl becomes 
in 2018 and onwards!



"I wonder... What does this button do?"



[skip ci]
--------------------------------------------------------------------------------
651f7c323c | gammafunk | 2017-12-17 12:31:22 -0500

Remove mutagenic chunks from db_lint
[skip ci]

--------------------------------------------------------------------------------
1e3b11601d | gammafunk | 2017-12-17 12:31:22 -0500

Remove some mutagenic chunks from a shop

--------------------------------------------------------------------------------
02dccac10e | Neil Moore | 2017-12-17 12:31:22 -0500

Remove mutagenic chunks from util/monster.
Double doh.

--------------------------------------------------------------------------------
643a220a5b | Neil Moore | 2017-12-17 12:31:22 -0500

Fix broken logic, and remove some vestiges.
Doh.

The broken logic was in food.cc, where the relative precedences of >=
and ?: were not respected.

--------------------------------------------------------------------------------
b0796c245c | Neil Moore | 2017-12-17 12:31:22 -0500

Move mutagenic food brand tile to UNUSED.

--------------------------------------------------------------------------------
26a0572df9 | Neil Moore | 2017-12-17 12:31:22 -0500

Remove mutagenic chunks.
Now that potion of mutation has a reasonable change of increasing the
number of mutations, this secondary means of gaining single mutations is
unnecessary.  I for one will miss eating sky beast and ugly thing
corpses, but it is for the best.

--------------------------------------------------------------------------------
b40dbd6f64 | Neil Moore | 2017-12-17 12:31:22 -0500

Replace references to fruit in Fedhas ability descriptions.

--------------------------------------------------------------------------------
1eb5282ad3 | Neil Moore | 2017-12-17 12:31:22 -0500

Remove unused fruit-eating messages.

--------------------------------------------------------------------------------
135f6fc81c | Neil Moore | 2017-12-17 12:31:22 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
99be76f954 | Neil Moore | 2017-12-17 12:31:22 -0500

Rename Fruit acquirement back to Food.
The only special effect of Fedhas is that foodless races can still acquire
food, which doesn't matter for any extant race.

--------------------------------------------------------------------------------
4123852244 | Neil Moore | 2017-12-17 12:31:22 -0500

Remove food_is_veggie.
Since there is no longer any food prohibited to carnivores. Keep the
lua function for compatibility, having it always return false.

Also adjust preferred (yellow) food: return true only for Vp blood
potions and Gh chunks.

--------------------------------------------------------------------------------
fcb2e5dd27 | Neil Moore | 2017-12-17 12:31:22 -0500

Correct objstat nutrition counts for food piles.
It was counting only one item per pile towards TotalFooNutr.

--------------------------------------------------------------------------------
420a138005 | Neil Moore | 2017-12-17 12:31:22 -0500

Reduce ration nutrition by about 37%.
To make up for the increase in permafood from merging the food types.
Perhaps it would be better (fewer keypresses) to instead keep the total
nutrition and decrease the spawn rate, but that (1) is harder to do, (2)
increases variance, and (3) makes it harder to tune food vaults, since
the quantum of permafood would be coarser.

--------------------------------------------------------------------------------
5b9873a847 | Neil Moore | 2017-12-17 12:31:22 -0500

Decrease herb/carn ration nutrition.
Preliminary objstat runs show a 36% increase in nutrition for normal
characters, a 55% increase for herbivores, and a 72% increase for
carnivores.  Changing the herbivore/carnivore ration nutrition evens
this out, resulting in a 36-37% increase for everyone.

--------------------------------------------------------------------------------
4bc9aefee3 | Neil Moore | 2017-12-17 12:31:22 -0500

Remove obsolete commends in food.des.

--------------------------------------------------------------------------------
204c329947 | Neil Moore | 2017-12-17 12:31:22 -0500

Fix swapped herb/carn food values.
Doh.

--------------------------------------------------------------------------------
b85e219ba5 | Neil Moore | 2017-12-17 12:31:22 -0500

Merge fruit into rations.
Existing fruit are converted to rations at a ratio of approximately 5:1,
and Fedhas abilities are made to take two rations rather than one fruit.
Adjust item weights and quantities in maps to approximate the original
amount of nutrition (ish).

--------------------------------------------------------------------------------
b1bc957055 | Neil Moore | 2017-12-17 12:31:22 -0500

Remove royal jellies.
The food, not the monster. RIP puns.

--------------------------------------------------------------------------------
a0548612d0 | Neil Moore | 2017-12-17 12:31:22 -0500

Merge bread and meat rations.
Taking the average of the two for normal, herbivorous, and carnivorous
nutrition.

Move the old meat ration tile to UNUSED. The remaining tile should be
updated to represent a balanced meal rather than simply bread.

Remove some out-of-date nutrition totals from food.des.

The new description needs translation, unless we're giving up on that.

--------------------------------------------------------------------------------
067828315a | Neil Moore | 2017-12-17 12:31:22 -0500

Simplify food_def.
By listing the nutrition value for each type of vory, rather than a base
nutrition value and modifiers.

--------------------------------------------------------------------------------
00fd8db5d2 | Neil Moore | 2017-12-17 12:31:22 -0500

Make food restriction mutations single-level.

--------------------------------------------------------------------------------
d2a8542f43 | Neil Moore | 2017-12-17 12:18:28 -0500

Avoid some clang 6.0 warnings.
The first change is serious:

  * Add a virtual destructor to Delay, to avoid undefined behaviour
    when shared_ptr<Delay>s are freed.

The other two are mostly cosmetic:

  * Remove an unused 'this' capture from a couple of lambdas.

  * Disable -Wtautological-unsigned-enum-zero-compare, which warns about
    construct such as:

        branch_type b = ...;
        if (b < 0 || b > NUM_BRANCHES) return false;

    However, another compiler might give branch_type a signed underlying
    type, in which case we would still want this check (since the "..."
    might have a bad casted or unmarshalled value).  So, rather than
    remove the checks, we disable the warnings (but not similar warnings
    about non-enums).

--------------------------------------------------------------------------------
0e175319c1 | Neil Moore | 2017-12-17 12:01:15 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
593960dda5 | Chris Campbell | 2017-12-16 16:53:56 +0000

Fix messaging for Zin mutation potion cleansing

--------------------------------------------------------------------------------
3327e8e9b0 | advil | 2017-12-16 11:01:19 -0500

Let !mutation for Zin at ****** (160) just delete mutations
First: this isn't intended to be a big major capstone ability even
though it happens at high piety, but rather a logical extension of what
Zin already does.  This sequence of changes leaves zin without a
"capstone" ability, which I think is fine. It does leave zin as a god
you can join to keep your mutations stable, which seems to bother some
people, so this could require more thought. After discussion in
idea of using the gift timeout to delete mutations (the original premise
of #522).

The penalty for drinking !mut was already fairly trivial (10 piety, no
penance), and at full piety one could drink these fairly safely --
except that this was communication extremely poorly. This change
clarifies the situation, having Zin always cleanse potions of mutation
at ******, with no piety hit. After some discussion in the dev channel
(with elliptic and |amethyst) this seemed like a reasonable replacement
for the capstone ability that lets zin players actually cure mutations
that get stuck with. Below 160 piety, Zin still doesn't like drinking
!mut (though it's not completely terrible to do); I bumped the piety
penalty slightly to 15. At high but not full piety a !mut is still
unlikely to add much in the way of new mutations, but will clear them,
just at a piety cost.

I considered having cleansing just happen unconditionally, but that
seems to trivialize zin's mutation protection (as well as making god
swapping to cure mutations, if indeed people do that, trivial).

Resolves #522

--------------------------------------------------------------------------------
e0a6212a90 | advil | 2017-12-16 11:01:19 -0500

Change Zin's mutation protection to be 100% at ****** (160) piety.
Previously this was 100% at 200 piety and 5% at 160 piety. There was
some consensus in ##crawl-dev that having an uncommunicated max point
like this was not great.

--------------------------------------------------------------------------------
fd779ed5cd | Alex Jurkiewicz | 2017-12-16 11:01:19 -0500

Rework gift messaging
s/$GOD will $GIFT as your piety grows./$GOD will $GIFT as you gain
piety./

This removes ambiguity around what happens when the player is at maximum
piety.

--------------------------------------------------------------------------------
7e319298a1 | Alex Jurkiewicz | 2017-12-16 11:01:19 -0500

Move all god gifting logic into separate functions
This cleans up the gifting logic a bit; despite the ugly diff this
commit involves very little code change. Some gods didn't previously set
success properly, and so it is conceivable that there will be effects of
this happening now.

(This is a partial commit of edb395ada69680e9c4055dfea4f325bd6acb3b27
from PR 522 by alexjurkiewicz.)

--------------------------------------------------------------------------------
aa2292de1b | Alex Jurkiewicz | 2017-12-16 11:01:19 -0500

Remove Zin's capstone ability
This capstone ability is a bit vestigial, and the following changes to
!mutation will fill the needs of zinnites who want to get rid of
mutations.

(This is a partial commit of 8f7e939df157f7d82f08b4330cb204143006d066 in
PR 522 by alexjurkiewicz)

--------------------------------------------------------------------------------
09e18692a9 | advil | 2017-12-16 10:51:53 -0500

Unbrace

--------------------------------------------------------------------------------
6746751bbc | advil | 2017-12-16 10:50:39 -0500

Remove an apport special case by using visible_igrd
Now, apport will work on items in deep water iff the player can see
those items; before it always failed on items deep water with a special
message, regardless of whether the player could see items there. Should
still always fail on lava.  (Partial commit of c5b1387f630209d4807b.)

--------------------------------------------------------------------------------
a7bb1477d2 | advil | 2017-12-16 10:50:39 -0500

Fix a fallthrough

--------------------------------------------------------------------------------
cc02c76d49 | advil | 2017-12-16 10:50:39 -0500

Docstrings, commenting, formatting

--------------------------------------------------------------------------------
50984c1eeb | advil | 2017-12-16 10:50:39 -0500

Use refactored push code for door sealing
This should have exactly the same behavior, but this code is a bit
complicated.

--------------------------------------------------------------------------------
7555bd92a4 | advil | 2017-12-16 10:50:38 -0500

Use new push code for abyss generation

--------------------------------------------------------------------------------
a3e6914929 | advil | 2017-12-16 10:50:38 -0500

Refactor imprison to use new push code
This code is hopefully cleaner / better than the old version which is
still entangled messily with sealing.

--------------------------------------------------------------------------------
fc69bf2b6f | advil | 2017-12-16 10:50:38 -0500

Push items out of the way when a door is closed, if possible
By popular demand, this version pushes items out of the way when closing
a door, but refuses to close a door if there are items that can't be
moved anywhere. (This can come up with deep water, lava, but also when
something like door_vault with a gateway places against a wall.) It
should be impossible to get items under doors on this version.

--------------------------------------------------------------------------------
d16b88afdd | Alan Malloy | 2017-12-14 16:32:57 -0800

Don't leak information about unid scarves (Brathek, #11325)

--------------------------------------------------------------------------------
d2fb950b4b | advil | 2017-12-14 12:24:03 -0500

Count WJC passive abilities in morgue files
Also refactored walljump into its own function.

--------------------------------------------------------------------------------
dbbf329e9e | Alan Malloy | 2017-12-13 11:30:34 -0800

Fix spelling (|amethyst)

--------------------------------------------------------------------------------
549b18d382 | advil | 2017-12-13 12:16:16 -0500

Add major tag version history to main repository
I wrote this a while ago as a gist, but it seems like a useful
supplementary document to the save compat documentation to be able to
easily point new contributors to.

--------------------------------------------------------------------------------
08ce2bd975 | advil | 2017-12-13 11:25:04 -0500

Add malmutate to random effects (|amethyst)
This is partly in response to the idea of using random effects lategame
as a source of haste/invis on cleared levels, which apparently happens.
This change provides a bit of potential long term cost for that beyond
draining. As far as I'm aware monsters never use this wand, so this
change doesn't add another source of malmutation aside from the
self-targeting case.

--------------------------------------------------------------------------------
b64b8ae579 | PabloMansanet | 2017-12-13 10:59:05 -0500

Normalize Number of Attacks under Serpent's Lash
As it stands right now, fast races are unfairly punished and slow races
rewarded when using Serpent's Lash.

There is an aspect of SL that is unavoidable and makes it valuable for
slow characters; a free move is worth more for them. However, since
number of attacks scales proportionally to the character's move delay,
they also enjoyed the additional advantage of hitting more often when
lashing.

This fix makes it so all characters calculate their number of attacks
based on a normalized 10 aut move delay when using Serpent's Lash,
regardless of their movement speed. Keep in mind that the formula still
factors in attack delay as usual, so it won't allow a character to
perform multiple hits with a long attack delay weapon.

Resolves #663

--------------------------------------------------------------------------------
adff09b632 | Aidan Holm | 2017-12-13 00:17:37 -0800

Fix some outdated info in options guide (mibe420)
This fixes mantis issue #11323
--------------------------------------------------------------------------------
acddea6133 | Kyle Rawlins | 2017-12-11 16:28:34 -0500

Tweak INSTALL.txt wording more (amalloy)
[skip ci]
--------------------------------------------------------------------------------
832612bea9 | Kyle Rawlins | 2017-12-11 14:56:45 -0500

Update INSTALL.txt to be less optimistic about MSVC
Previously, it made it sound like building with MSVC was supported and

could actually work.



[skip ci]
--------------------------------------------------------------------------------
8c7b3f5d53 | advil | 2017-12-08 11:21:02 -0500

Don't crash when a spell_slot rule checks a used letter (11250)
Two changes really: first rename vars in add_spell_to_memory to reflect
the implicit typing going on in this function, and then fix the
now-obvious mistake (bad cast of a spell slot # to a spell_type).

--------------------------------------------------------------------------------
f531e82c92 | Alan Malloy | 2017-12-07 13:39:52 -0800

Don't let liches keep holy-wrath weapons wielded (/u/hexaflexagon)

--------------------------------------------------------------------------------
a86a5923f3 | advil | 2017-12-07 10:25:45 -0500

Tweak walljump messaging
This changes some of the messaging about failed walljump targeting from
walljump v2 to walljump v3. This may result in more message spam, but it
doesn't make sense to only complain if there's a monster in los any
more. It also tweaks the cancellation behavior in some special cases.

--------------------------------------------------------------------------------
8a80c14264 | PabloMansanet | 2017-12-07 10:25:45 -0500

Add prompt for wall jump
Adds a GUI prompt before performing a wall jump. It is now necessary to
walk against a wall twice to actually jump (although it does not need to
be the same segment of wall, in case you change your opinion halfway).

There is a RC file option (wall_jump_prompt) to disable this for players
who are used to the old behaviour.

Hopefully this will significantly reduce accidental wall jumps without
forcing the user to detour through the ability menu, and since wall jump
spam is not a thing anymore, the extra keypress is not an issue.

Resolves #658

--------------------------------------------------------------------------------
a34b322b0b | Nikolai Lavsky | 2017-12-06 14:07:49 -0800

Add Cling flag to monster info
This commit adds Cling to the list of flags displayed by the monster
utility.

--------------------------------------------------------------------------------
614d7e5ffc | gammafunk | 2017-12-06 03:35:07 -0600

Don't allow scarves to generate as random artefacts
Scarves are supposed to be distinguished from cloaks by having a special
ego that's more powerful than what you could normally find on a cloak.
Currently artefact scarves are essentially artefact cloaks guaranteed to
have +0 AC. We could try to guarantee a scarf ego for these, but the
egos are meant to be strong and standalone. The existing egos could do a
better job of this, but that's something that can be worked on.

This commit only allows scarves to generate as mundane items, at least
until an unrand scarf gets designed. In the meantime we'll still have
cloaks for random artefacts on this slot.

--------------------------------------------------------------------------------
22d298a206 | gammafunk | 2017-12-06 03:35:07 -0600

Slightly refactor some item artefact generation code
Don't try (and fail) to repeatedly generate artefact weapons for types
that don't allow it. Instead downgrade them to a good_item ahead of
time.

--------------------------------------------------------------------------------
a8338f09a8 | Alan Malloy | 2017-12-05 13:46:38 -0800

Mark scarf of spirit shield useless if you have it innately (/u/ClefAria)

--------------------------------------------------------------------------------
1cd18d1148 | advil | 2017-12-04 16:20:56 -0500

Don't let Gn change their training settings in tiles (aagocs)
This would still get fixed up on save/load, but within a play session on
local tiles you could turn on/off training for individual skills in the
mouse button panel.

--------------------------------------------------------------------------------
34ea15e375 | advil | 2017-12-04 16:20:56 -0500

Add some ASSERTs in case gnolls somehow get skills disabled (aagocs)
This is a bug, but the previous behavior would be to trap the player in
the skill menu until the force-quit the program.

--------------------------------------------------------------------------------
b765982689 | advil | 2017-12-04 00:29:36 -0500

Update sdl2 submodule with Makefile fix
Did I do this right?

--------------------------------------------------------------------------------
43a1781948 | advil | 2017-12-03 17:17:53 -0500

Fix a cut and paste error in b82119a2b70b

--------------------------------------------------------------------------------
d76cfe0910 | CanOfWorms | 2017-12-03 00:36:07 -0500

Updated Thermic Engine doll tile
This changes the Thermic Engine's doll tile so that the fire portion looks less 
like the sticky flame status effect, which is placed in the same area.
--------------------------------------------------------------------------------
aaff437386 | Neil Moore | 2017-12-02 20:42:45 -0500

Fix an obsolete options example (minmay)
[skip ci]

--------------------------------------------------------------------------------
8d4ebbe138 | gammafunk | 2017-12-02 02:26:34 -0600

Further improvements to the Hellbinder WizLab
Use a simple list of common demons (tiers 3 and 4) vs tier 2 demons
instead of hand-selecting from each tier and up-weight the tier 2 demons
somewhat. Most of the tier 4 and even some tier 3 are weak for this
depth, but they'll have a better chance to be relevant if the player is
dealing with more of the tier 2. Also increase the size of the
Hellbinder's entourage somewhat.

For the map layout, open up the area between the bottom two chambers so
that there'll be less separation between the map's monsters. In the
Hellbinder's chamber, make the Makhleb's altar area have a wall on the
other side to give cover to those poor demons from nasty player ranged
attacks.

--------------------------------------------------------------------------------
cd93bbdc93 | gammafunk | 2017-12-02 02:26:28 -0600

Small adjustments to Cloud Mage WizLab
Add doors to the starting area and down-weight fire crabs, since those
are pretty weak at this depth. Also improve the Cloud Mage's melee
weapon by removing freezing egos on shorblades and adding a possible
staff of air.

--------------------------------------------------------------------------------
dcb3f5eb25 | advil | 2017-11-30 22:10:09 -0500

Remove old outline font code
This code (which was intended for doing a simple form of anti-aliasing
on mono glyphs) predates the use of freetype, and in particular the use
of a freetype with high-quality modern anti-aliasing. It was
accidentally being used on non-mono fonts with bad results. In principle
this code could be made to work again by having freetype generate a mono
bitmap (FT_RENDER_MODE_MONO), but in practice this seems a bit
pointless.

--------------------------------------------------------------------------------
0ee8fc4e44 | advil | 2017-11-30 22:10:09 -0500

Don't load any fonts as "outline" fonts
Freetype antialiases by default, and so the glyph-loading code was
applying a simple pseudo-antialiasing algorithm to an already
anti-aliased bitmap. The result is a lot of dark pixels with incorrect
alpha values, which don't blend properly. I'm not really sure why these
specific cases where loaded as outline fonts, but as far as I can tell,
nothing should be.

--------------------------------------------------------------------------------
5c865af688 | Alan Malloy | 2017-11-30 18:20:34 -0800

Improve level 2 MUT_HOP description (longer than what?)

--------------------------------------------------------------------------------
5070ee8bc0 | advil | 2017-11-30 11:11:46 -0500

Prevent a bad linebreak in the skill menu

--------------------------------------------------------------------------------
ecc5317402 | advil | 2017-11-28 08:47:50 -0500

Do a better job setting cursor size in fontbuf_line_reader (aidanh)
The previous version was basically just choosing a random number that
accidentally worked out on retina.

--------------------------------------------------------------------------------
f08a75f26b | Neil Moore | 2017-11-27 16:48:02 -0500

Correct grammar for AT_POUNCE and AT_SPORE in x-v (#11300)

--------------------------------------------------------------------------------
a8f6b7a132 | advil | 2017-11-26 18:06:53 -0500

Indicate retina support in mac app bundles
I have no idea what the implications of setting NSPrincipalClass are,
but apparently you're supposed to do it for retina apps, and it doesn't
seem to break anything.

--------------------------------------------------------------------------------
a0ee87aef2 | advil | 2017-11-26 16:09:16 -0600

Update Makefile for SDL-2.0.7 on OS X
Apparently some more frameworks are needed to link SDL.

--------------------------------------------------------------------------------
0135c5ab0e | gammafunk | 2017-11-26 16:09:16 -0600

Update SDL2 contrib to 2.0.7
This contribe includes an upstream fix that allows MSYS2/mingw
compilation to work again.

--------------------------------------------------------------------------------
2eda33064f | advil | 2017-11-24 15:21:54 -0500

Remove debugging dprf

--------------------------------------------------------------------------------
52e40857c1 | advil | 2017-11-24 15:19:32 -0500

Make stabbable tile statuses compatible with attitude statuses
Allow ?? icons to show for neutral monsters.  This still won't show the
?? icons with friendly monsters (11295) because these icons don't mean
confused/sleeping/etc right now -- they mean stabbable. (Friendly
monsters are never stabbable.) This probably isn't very intuitive to
players (I had no idea myself)...

--------------------------------------------------------------------------------
5dcb9f8ceb | advil | 2017-11-24 15:19:32 -0500

Reprint monster info after wizmode xF

--------------------------------------------------------------------------------
d7c8661223 | gammafunk | 2017-11-24 13:51:12 -0600

Prevent getting stranded in Baileys (EMTedronai)
Several baileys have areas behind deep water or lava where you can fly
to pick up loot or where you might get teleported to. Give these areas
exit portals in case players get access to these areas through temporary
means, since forcing players to quit if they make a miscalculation about
their flight duration isn't something we want.

--------------------------------------------------------------------------------
ca0307c58c | advil | 2017-11-24 10:55:20 -0500

Reword whirlwind descriptions to cue reduced damage (ultraviolent4)
"Lightly" might be too weak for 80% but it's an improvement.

--------------------------------------------------------------------------------
ab55e39081 | PabloMansanet | 2017-11-24 10:17:45 -0500

Fix Whirlwind pin
Used to only be cleared after a movement turn, instead of after any time
consuming action, which made it able to kite enemies for longer.

--------------------------------------------------------------------------------
1b604293c5 | gammafunk | 2017-11-23 22:15:06 -0600

WebTiles support for the monster pinned status icon
This is for the monster status afflicted by Wu Jian Council's Whirlwind
attack.

--------------------------------------------------------------------------------
2afff410de | gammafunk | 2017-11-23 22:06:30 -0600

Add a Tiles monster icon for the pinned status (Ultraviolent4, #11293)
This is for the monster status afflicted by Wu Jian Council's Whirlwind
attack.

--------------------------------------------------------------------------------
696f58f537 | gammafunk | 2017-11-22 14:34:37 -0600

Clean up transporter landing sites in a vault (amalloy)
In grunt_nemelex_the_gamble, remove the transporter landing site in the
area opposite where the player reached, so they won't mistakenly think
it has a corresponding transporter they could use to reach that area.

--------------------------------------------------------------------------------
7c12b189b4 | gammafunk | 2017-11-22 14:34:37 -0600

Clean up item placement and generation in a vault (|amethyst)
Don't allow grunt_nemelex_the_gamble to generate items in potentially
unreachable areas, and spread its loot items out more decoratively.

--------------------------------------------------------------------------------
4b1fdcfa0c | gammafunk | 2017-11-22 14:34:37 -0600

Move some vault save compat code to compat.des

--------------------------------------------------------------------------------
22212c17e2 | advil | 2017-11-22 15:33:23 -0500

Correctly handle dragging between displays with different DPI
Yes, I realize I'm insane.

--------------------------------------------------------------------------------
ef8ecb5459 | advil | 2017-11-22 15:33:23 -0500

Refactor high-DPI code
This was all over the place (with fonts, wm, and glmanager storing it
separately), and fairly confusing on top of that. This change
centralizes the density information and code for converting between
device / logical pixels. Should have no impact on behavior.

--------------------------------------------------------------------------------
a0408e1856 | Neil Moore | 2017-11-22 14:13:39 -0500

Make Nemelex's gamble a gamble again.
With the addition of transporter landing sites, the player can tell in
advance whether the main transporter leads to prize or peril.  Prevent
that by putting an unused transporter landing in the other possible
destination.

amalloy pointed out that this could lead to confusion, because the
player might think that somewhere on the level there is a transporter
that lands in the correct place.  Ideally we'd clear out both landing
sites (or at least the unused one) after taking the main transporter.
I'll leave that for someone who knows markers better than I do.

--------------------------------------------------------------------------------
87dc6a9e9d | Aidan Holm | 2017-11-22 13:15:18 -0500

Don't (auto)travel via stairs into exclusions
[Committer's note: This time without crashing when taking unvisited stairs.
 -nfm]

--------------------------------------------------------------------------------
4f54bde788 | Neil Moore | 2017-11-22 13:04:23 -0500

Remove another varargs function.
_create_random_element_colour_calc was just a varargs wrapper around
the random_element_colour_calc constructor (plus a new).

--------------------------------------------------------------------------------
c317228d68 | gammafunk | 2017-11-22 11:57:54 -0600

Fix monster wand assessment (saltwaterterrapin)
Monsters use a formula to decide whether they want to use a given wand
based on the monster's HD and the wand's charge value. This formula was
broken when the wand charge value was changed to mean the max charge a
wand could generate with. Fix this, so that Ijyb, Maurice, and others
can happily zap players again.

--------------------------------------------------------------------------------
a335af4bc1 | Alan Malloy | 2017-11-22 09:37:22 -0800

Revert "Don't (auto)travel via stairs into exclusions"
This reverts commit e9ed347cad6fc9e730c97155aa8f1c449e08c3b4.

It caused a segfault on trunk. Reverting for now so it stops breaking,
while we have time to fix it.

--------------------------------------------------------------------------------
0e05f1cc88 | Neil Moore | 2017-11-22 12:00:57 -0500

Remove a varargs function and simplify (advil)
It was used as a wrapper for a non-varargs function that takes a
vector, but with C++11 and initializer lists, we can more easily
call the base version directly.

While we're at it, remove a few parameters, since the function
is only ever called from one place. I didn't go so far as removing
the list of {distance, replacement} pairs and making that a static
array inside the function, but maybe I should have.

--------------------------------------------------------------------------------
2875ce172d | Neil Moore | 2017-11-22 12:00:57 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
cd3191265f | advil | 2017-11-22 10:42:29 -0500

Remove a few references to wasting charges

--------------------------------------------------------------------------------
d70176a092 | advil | 2017-11-22 10:38:31 -0500

Remove pakellas device charge id (everyone gets this now)

--------------------------------------------------------------------------------
31fed6faf0 | advil | 2017-11-22 10:23:52 -0500

Clean up a case of charge id conditioning on pakellas (Yermak, 11289)
When picking up an un-id'd paralysis wand, this caused a "will waste
charges" message.  Possibly passive_t::identify_devices can be removed
altogether? Also, is there any way to waste charges any more?

--------------------------------------------------------------------------------
e9ed347cad | Aidan Holm | 2017-11-22 07:06:29 -0800

Don't (auto)travel via stairs into exclusions
This prevents auto-travel via staircases that lead to excluded areas,
and asks when traversing staircases into an excluded area. This works
only when the staircase's destination is known, and single-tile
exclusions on the destination staircase (indicating excluded travel in
the reverse direction) are ignored.

--------------------------------------------------------------------------------
5da0f0de55 | Alan Malloy | 2017-11-21 22:17:42 -0800

Mild copy-editing of changelog.txt

--------------------------------------------------------------------------------
139aec4fbc | gammafunk | 2017-11-22 00:07:44 -0600

Changelog through 0.21-a0-478-g6b4cb3753b

--------------------------------------------------------------------------------
6b4cb3753b | Yermak | 2017-11-21 22:02:20 -0800

Remove Haste reference

--------------------------------------------------------------------------------
afc4b183e5 | Yermak | 2017-11-21 22:01:30 -0800

Add size to % screen

--------------------------------------------------------------------------------
d103f4b23a | advil | 2017-11-21 18:13:31 -0500

Make the anomolous due_jungle_book statue grey (|amethyst)
Turns out there was a grey elephant statue tile ready and waiting.

--------------------------------------------------------------------------------
cc397bb6e0 | advil | 2017-11-21 18:01:26 -0500

Make that one statue in due_jungle_book diggable
This is a bit confusing now because none of the other statues in this
vault are diggable, but at least as a quick fix this removes one (and
possibly the only) case where setting trees on fire was important. (As a
player, I think that *this* statue is diggable is cued reasonably well,
but this change implies that the other statues are, and might make
someone waste a wand charge.)

--------------------------------------------------------------------------------
05767a10c8 | Neil Moore | 2017-11-21 13:28:47 -0500

Fix brand weapon tile (#11288).
Recharging removal changed the order of tiles, but that has to match the
enum.

Also, add a comment to item-prop-enum.h warning about changing the order.

--------------------------------------------------------------------------------
129e634afd | Neil Moore | 2017-11-21 13:28:46 -0500

Checkwhite
[skip ci]

--------------------------------------------------------------------------------
223bcb9e32 | gammafunk | 2017-11-21 00:47:38 -0600

Properly handle autopickup of unknown wands (Zibokwe, |amethyst)
Empty wands could previously generate normally, so there were calls to a
function that checks for a known empty wand for purposes of hints mode,
usefulness, and the Tiles UI. Recent wand charge merging commits had
this check look only at charges and not identification, since empty
wands no longer normally exist. But this broke the autopickup of
unidentified wands due to how the usefulness check is performed, based
on what knowledge the player has of such items.

This commit restores the empty check to only return true when the wand
is both empty and identified, and it either removes the check or tags it
for removal with the next major version increase. Empty wands will be
properly handled in transferred games and unided wands will have
autopickup work normally.  After a major version increase, the checks
aren't necessary since the items could only be created in wizmode, and
even then they won't cause problems when evoked due to a empty charge
check in the evocation code.

--------------------------------------------------------------------------------
d587bd5976 | Chris Campbell | 2017-11-21 00:20:34 +0000

Even more completely remove recharging

--------------------------------------------------------------------------------
eeb374903f | Alan Malloy | 2017-11-20 15:55:11 -0800

Put trees on the inside of layout_gridlike, not outside
They used to be semitransparent so it made sense for them to form a
decorative border around something, but they've been opaque for quite
a while now.

--------------------------------------------------------------------------------
268bfee6f0 | Alan Malloy | 2017-11-20 15:55:11 -0800

Allow dungeon builder to bulldoze trees for reachability
Thanks to /u/azrac_ for reminding us about this bug.

--------------------------------------------------------------------------------
2b5f0e8089 | Alan Malloy | 2017-11-20 15:55:11 -0800

Add diagnostic for dungeon connectivity failures

--------------------------------------------------------------------------------
4c202ba362 | Chris Campbell | 2017-11-20 23:17:53 +0000

More completely remove recharging
Remove the scroll from some vaults, and remove support for the actual effect
itself too (since it already didn't function properly on merged wand stacks).

--------------------------------------------------------------------------------
a1252f7773 | Chris Campbell | 2017-11-20 23:15:32 +0000

Add a missing TAG_MAJOR_VERSION check

--------------------------------------------------------------------------------
8120a92d9c | Chris Campbell | 2017-11-20 22:30:10 +0000

De-pluralise an acquirement prompt entry

--------------------------------------------------------------------------------
0a5f80b8e1 | Chris Campbell | 2017-11-20 22:22:53 +0000

Remove wands of lightning
To further reduce the very large number of distinct types of direct damage
wands/evocables. With its removal, wand of flame is also the only remaining
wand that directly duplicates a player spell.

--------------------------------------------------------------------------------
c071dca879 | gammafunk | 2017-11-20 13:25:03 -0600

Don't show scrolls of recharging on the recognized item menu (Yermak)

--------------------------------------------------------------------------------
102393a382 | gammafunk | 2017-11-20 13:07:52 -0600

Don't show identified wands in the identification scroll menu (reddit)

--------------------------------------------------------------------------------
2470eb21e1 | Chris Campbell | 2017-11-20 12:42:21 +0000

Make some move-slowing effects more consistent
Don't randomise monster speed in shallow water (as with players, just apply a
fixed penalty).
Don't give monsters a bonus to movespeed under their own Leda's effect (no
monsters cast it anyway).
Make Root and Frozen apply the same level of slow movement, instead of very
slightly different amounts (they do still apply different amounts to players
and monsters).

--------------------------------------------------------------------------------
737a9158cb | gammafunk | 2017-11-19 21:37:41 -0600

Remove wands of confusion
This wand is differentiated from the other hex wands ostensibly by being
low-level yet having many charges generated. Unfortunately confusion is
basically as effective as paralysis at disabling monsters, so in
practice a wand of confusion was much more powerful than a wand of
paralysis. It's also a wand that duplicates a low-level spell that's
easily castable for most characters that find it. Lowering its charges
wouldn't make it more interesting as a wand compared to the other four
existing hex wands, so this commit removes it.

Its weight in wand generation and acquirement is given to paralysis and
enslavement with some distributed evenly to the other types in the case
of basic item generation. Wanderers receive wands of paralysis when they
previously would have received wands of confusion.

--------------------------------------------------------------------------------
b644aa4db6 | gammafunk | 2017-11-19 11:38:01 -0600

Wand Charge Merging V: Remove scrolls of recharging
Scrolls of recharging exist to generate more wand charges, yet those are
not scarce. Recently wands were changed to no longer lose charges
through being partially identified and to have charges merged upon
pickup, both of which give access to more wand charges in inventory.
Even before those changes, it was common to have many wand charges
available in a game and yet have extra scrolls of recharging in
inventory. It would be possible to try to extend the effect of this
scroll to other evokables, but this can't be done in a universal way for
all types, and balance-wise it's better to not generate so many extra
evocable charges.

This commit removes the scroll of recharging from generation, leaving
the scrolls in-game where it's already generated. Its weight for scroll
generation is evenly distributed amongst the other scroll types. For the
evocations trove, the three recharging scroll items are replaced with
two more of the standard evocable or stave items and one guaranteed
manual of evocations.

Recharging code remains for any games that still have the scroll or
Pakellas (which has a wand recharge ability), but is marked for removal
after the next save major version increase.

--------------------------------------------------------------------------------
d6801f7aff | gammafunk | 2017-11-19 11:37:44 -0600

Wand Charge Merging IV: Wands of the same type merge charges upon pickup
When the player picks up a wand of a type they already have in
inventory, the charges from the new wand are merged into the existing
one, and the new wand no longer exists.

--------------------------------------------------------------------------------
6cf28c18f6 | gammafunk | 2017-11-19 11:35:39 -0600

Remove the wand draining effect from Zot traps
This was essentially a form of item destruction and wasn't a very
interesting effect. It encouraged the player to drop wands before
intentionally stepping on Zot traps (e.g. in Zot:5) or just in general
when Zot traps were around and specific types of wands aren't likely to
be useful in the near-term. Thankfully Zot traps have plenty of
interesting and dangerous effects as it is.

--------------------------------------------------------------------------------
0e0890e255 | gammafunk | 2017-11-19 11:32:06 -0600

Wand Charge Merging III: Wands are destroyed when out of charges
When a player or monster uses the last charge of a wand, the wand is
destroyed. In subsequent commits, wands will merge charges upon pickup
and recharging scrolls will be removed, so there's no need to have empty
wands exist as items.

Existing empty wands in current games will continue to exist, but empty
wands are no longer generated in special vaults and shops and shouldn't
appear in normal games. We still have code to check for empty charges
before evoking a wand, and empty wands can still be created in wizmode
by setting charges to 0. It might be good to refactor code to make a
wand item's existence more directly connected to its charges in some
way.

--------------------------------------------------------------------------------
d67915053d | gammafunk | 2017-11-19 11:31:35 -0600

Remove Pakellas Supercharge
Wands no longer have a cap on charges, so this ability is of no use even
in trunk games where players worship Pakellas.

--------------------------------------------------------------------------------
e566d146f7 | gammafunk | 2017-11-19 11:28:52 -0600

Wand Charge Merging II: Remove the cap on wand charges
A subsequent commit will have wand charges merge between those of the
same type, so it's necessary to remove the cap on wand charges.

--------------------------------------------------------------------------------
f61038a99b | gammafunk | 2017-11-19 11:18:46 -0600

Wand Charge Merging I: Remove wand charge identification
This is is the first commit in a series to simplify wand management,
removing details that are not interesting but that the player has to
deal with frequently. The major changes from the player perspective are:

1) Wand charges merge upon pickup when the player already has a wand of
   that type.

2) Wands no longer have a cap on the number of charges.

3) Remove wand charge identification; now a wand's charges are seen when
   picked up.

4) Remove scrolls of recharging, since wand charges are already readily
   available, and the aforementioned changes make them even more so.

5) Wands are destroyed when their last charge is used.

This first commit removes wand charge identification, making the current
charges of a wand visible when the wand type is identified (which still
happens upon pickup).

There were a couple proposals to allow the charge wasting/identification
system to work with wand charge merging, but they involved complicated
presentation of charge information. The player would want to know
identified charges, the range of the unidentified charges, and the
average number of unidentified charges (based on how many wands of that
type they had picked up). Displaying all this information isn't worth it
just to make scrolls of identification a bit more useful, so for now we
simply identify charge information whenever the wand type is identified.

--------------------------------------------------------------------------------
74feaabb9a | gammafunk | 2017-11-18 14:34:17 -0600

Remove some unused enum values
Some inventory selectors were no longer in use, yet the enum values
weren't changed to reflect this.

--------------------------------------------------------------------------------
9a9e23e64e | gammafunk | 2017-11-18 14:34:17 -0600

Mark Pakellas code for removal with major version change

--------------------------------------------------------------------------------
d87a9b27c2 | advil | 2017-11-17 09:59:32 -0500

Add labeling for pinned monsters
This needs to be signaled somehow.

Resolves #652.  See https://github.com/crawl/crawl/pull/652
for detailed discussion of these WJC changes.

--------------------------------------------------------------------------------
c17f1d935a | PabloMansanet | 2017-11-17 09:59:32 -0500

Refactor and fix Whirlwind Pin
-Moved the Whirlwind Pin effect to a more appropriate location
-Took bloat out of main and into god-passive along with other WJC
functions
-Gave Whirlwind Pin a longer default duration just in case, but kept
clearing it at the beginning of the player's turn.

--------------------------------------------------------------------------------
972c5ad6ff | PabloMansanet | 2017-11-17 09:59:32 -0500

Fix order of ability unlocks
Ensure casting Serpent's Lash can never cause martial attacks to become
unavailable.

--------------------------------------------------------------------------------
8a73434415 | PabloMansanet | 2017-11-17 09:59:32 -0500

Add WJC Whirlwind pin effect
- Whirlwind now pins enemies in place. Indefinite enchantment that
prevents the first monster move (only motion, not actions) and
disappears.

--------------------------------------------------------------------------------
a30aec3dbd | PabloMansanet | 2017-11-17 09:59:32 -0500

Rework WJC Serpent's Lash
- Halve the piety cost and reduce exhaustion time
- Make it first ability to unlock (followed by Lunge, Whirlwind, Wall
Jump and HoE)
- Slightly reduce the bonus damage (50% - 40%)
- Martial attacks made under Serpent's Lash cannot miss
- (cosmetic) Since Distraction is no more, made Serpent's Lash blow up
targets on death instead, as people have reported really liking the
martial gore.

--------------------------------------------------------------------------------
4bd3c4a35f | PabloMansanet | 2017-11-17 09:59:32 -0500

Rework WJC Wall Jump
 - Remove distraction mechanic
 - Remove target limitation
 - Double time spent in Wall Jump (normalize with walk speed)
 - Double number of outgoing attacks to compensate
 - Adapt Serpent's Lash so it works with two-turn Wall Jump

--------------------------------------------------------------------------------
29a2fec1a1 | gammafunk | 2017-11-16 20:05:36 -0600

Remove the secret Crawl ASDF project added by the Shadow Dev Team
You were never supposed to know of its existence!

(It was actually just a normal crawl binary mistakenly added to the repo
in the previous commit)

--------------------------------------------------------------------------------
aba41f5a6f | advil | 2017-11-16 18:20:06 -0500

Check for slime walls in i_feel_safe
The main issue this commit aims to fix is that lua `feel_safe` uses
this function, and really shouldn't return true if the player is in a
position where they can be damaged by waiting or taking an unrelated
action to the damage source. It could have weird consequences that I
haven't spotted, but I did a quick check through i_feel_safe calls and
there doesn't seem to be anything too bad.  This is a followup of sorts
to 56314776da1, and moves one of the checks there into `i_feel_safe`.

The particular issue was brought up by the lua butchering script
described here:
https://crawl.develz.org/tavern/viewtopic.php?p=322979#p322979
Previously, it endlessly loops if there is a corpse next to a slime wall
until the corpse goes away (usually the player dies first).  For the
record that's not a great way to do auto butchering, I wouldn't be
shocked if there are other endless loop corner cases it triggers. But, I
do think it was making a reasonable assumption about `feel_safe` that
was violated.

There's also a little bit of rewording I did while checking i_feel_safe
calls.

--------------------------------------------------------------------------------
848f44b3bc | advil | 2017-11-11 20:33:49 -0500

Try a little harder to fit the whole tab region in a row
This may or may not look great on other computers/fonts than the three
that I've tested this on, feel free to change or propose changes if you
notice problems. This is basically to make things look better on a
retina mac (because of interactions with high-DPI font rendering), but I
tested it on two non-retina displays including one that's very small.

--------------------------------------------------------------------------------
6e1775c002 | advil | 2017-11-11 19:58:37 -0500

Better handle fractional advances in font glyphs in tiles
On a high-DPI display, fonts can (and do) use advances that are
fractional relative to logical pixels. These were rendering properly,
but not being incorporated into layout calculations.  Previously, crawl
used the truncated logical glyph width to calculate layout (dropping the
fractional part), which was leading to all sorts of problems at the
edges of the screen.  E.g. the stat region with the default font and
size had an extra device pixel per glyph relative to what layout
calculated its size as, so it extended off the edge of the window.  This
also impacted the height and width of the message display.

This commit properly uses device pixels when calculating text region
widths for layout.  It also now rounds when converting glyph widths to
logical pixels, which will lead to excess whitespace rather than cut off
text. There's still a bunch of code that uses multiplication by
character widths (mostly in menus) and so isn't properly handling
fractional advances yet.  (Multiplication by character widths is
deprecated!)

--------------------------------------------------------------------------------
28109cbd92 | Alan Malloy | 2017-11-09 15:21:18 -0800

Simplify magic_mapping() by naming some intermediate locals

--------------------------------------------------------------------------------
abf74bbfa6 | advil | 2017-11-09 12:18:24 -0500

Let mmapping work on saves where forgetting marked everything mapped
4af208bdd212 fixes the forget command, this commit lets mmapping work on
saves where forget was used before the fix.

--------------------------------------------------------------------------------
4af208bdd2 | Alan Malloy | 2017-11-09 08:51:52 -0800

Make ?mapping work even after forgetting level map (Beargit, EMTedronai)

--------------------------------------------------------------------------------
e5bf024252 | advil | 2017-11-08 18:22:14 -0500

Add an option for people who really like to restart (Zibokwe)
This option allows fully restoring the quick restart behavior I changed
in cbc62810bc49e and 34efee411a0df0. I made this a distinct option, with
default false, because I don't think it will be the expected behavior
for new players, and because lumping it in with existing options would
easily lead to a situation where if you set a combo in an rc file, the
only way to quit the game is to save or crash. That situation still is
possible, but you have to want it to happen.

There's now a lot of options around restarting, but at the moment I
don't see a way of simplifying it and keeping both old and new behavior
(where the new behavior is arguably much more like what new players
would expect).

--------------------------------------------------------------------------------
f55f1f58b1 | advil | 2017-11-08 10:21:06 -0500

Don't show training target button when describing non-inv items
This applies to item lookup, and when examining floor items. Training
target numeric info is still shown as long as you are in a game. It
could maybe be convenient to have this button around in some cases, but
it doesn't work at all from the lookup screen (which doesn't even render
formatted text), so it's better for now to just disable it.

--------------------------------------------------------------------------------
51649693db | advil | 2017-11-08 09:54:51 -0500

Retain skill focusing when setting a target from inv (Shaded Knight)

--------------------------------------------------------------------------------
806c6c2d46 | advil | 2017-11-07 21:11:52 -0500

Checkwhite / unbrace

--------------------------------------------------------------------------------
e7131c6066 | advil | 2017-11-07 21:11:52 -0500

Several fixes for repeat/again
This commit:
 * handles empty key sequences gracefully (no crashing on 0`` in a new
   game).
 * cleans up state after a repeat cancellation or again failure more
   carefully. Before, it was possible to get odd/inconsistent states
   where the previous command didn't match the key sequence.
 * clears repeat/again state in _reset_game.

I wouldn't say this will fix every weirdness in these commands, but this
fixes everything I was able to replicate.

--------------------------------------------------------------------------------
6a4a694a3e | gammafunk | 2017-11-07 14:44:29 -0600

Update descriptions of the Ogre species (Pereza0)
In the selection screen description, describe ogres as being competent
at magic instead of excellent, and mention their potential use of armour
in the manual. Clean up some wording in both places. Closes #646.

[skip ci]

--------------------------------------------------------------------------------
01fcc59446 | Yermak | 2017-11-07 09:36:54 -0500

Fix identification of floor items in edge cases
Items (wands and books) under player will be identified after using
Shadow Step, transport, stairs or passage of Golubria.

Also Merfolk will now properly change its form after shadowstepping into
water. moveto_location_effects() uses 'stepped = true' here because it
prevents splash upon landing on water, which fits current behaviour. The
only side effect here is that Tonado will run for its full duration
while usual blink shortens it severely.

Resolves #644

--------------------------------------------------------------------------------
517d9b7200 | Aidan Holm | 2017-11-07 09:08:21 -0500

Add new card tile to lookup-help menu
Makes this menu a bit more consistent with the others. I've placed the
new tile image in the items/misc with the decks, but really it's more of
a GUI icon.

--------------------------------------------------------------------------------
f361398006 | Aidan Holm | 2017-11-07 09:08:21 -0500

Add item tiles to lookup-help menu

--------------------------------------------------------------------------------
08060ca9ca | Aidan Holm | 2017-11-07 09:08:21 -0500

Show branch tiles in lookup-help menu

--------------------------------------------------------------------------------
c5fe4b4647 | Aidan Holm | 2017-11-07 08:56:51 -0500

Fix sidebar for large tile_font_stat_size
Earlier changes hardcoded the sidebar pixel width. This change now bases
the sidebar width mostly on the width of the stat HUD (dependent on its
font size), but with a minimum width in tiles as well.

There's also a bunch of dead code removal, and the way the stat HUD is
fitted into the sidebar is improved slightly as well.

--------------------------------------------------------------------------------
98080a9b70 | gammafunk | 2017-11-04 09:33:54 -0500

Add EMTedronai to the mailmap

--------------------------------------------------------------------------------
d837b2dc15 | gammafunk | 2017-11-04 09:15:28 -0500

Add Yermak to the mailmap

--------------------------------------------------------------------------------
639b47efb0 | Aidan Holm | 2017-11-04 09:41:25 -0400

Fix webtiles section boundaries not being updated

--------------------------------------------------------------------------------
05a646007a | Aidan Holm | 2017-11-04 09:40:05 -0400

Fix health minibars being drawn outside viewport
This can happen when viewing the map with X and then panning.

--------------------------------------------------------------------------------
5b1b836176 | Yermak | 2017-11-04 09:35:24 -0400

Improve Maurice's message and fix #11241

--------------------------------------------------------------------------------
fc1ce30da2 | Aidan Holm | 2017-11-03 10:43:47 -0400

Fix title screen lingering when tile_skip_title = true
Fixes the tile screen showing on other LAYER_TILE_CONTROL layouts
(scenes?) when tile_skip_title = true, such as the doll edit screen.

Not sure if the redraw should be conditional, but it works fine like
this.

Resolves #633.

--------------------------------------------------------------------------------
54598c23b2 | Yermak | 2017-11-03 10:29:16 -0400

Remove reference to cleared levels from 'Out of the depths' paragraph.

--------------------------------------------------------------------------------
d80284d3e5 | Aidan Holm | 2017-11-03 09:51:23 -0400

Make dream sheep tile face left
Also optimized the tile while I'm at it, why not...

--------------------------------------------------------------------------------
dc3326c9ce | Aidan Holm | 2017-11-03 09:13:56 -0400

Fix issue orders prompt when not berserk
The previous message should be flushed regardless of whether the player
is berserk. The if-condition is causing the "Anything else - Cancel"
text to not appear.

--------------------------------------------------------------------------------
0adc95ba8e | Mindcrafter | 2017-11-02 16:03:17 -0700

Improve WJC messaging (sokol815) (#648)

--------------------------------------------------------------------------------
79d0e6c155 | Mindcrafter | 2017-11-02 13:56:17 -0700

Improve messaging for passage of Golubria (#645)

--------------------------------------------------------------------------------
9d6f0e4082 | gammafunk | 2017-11-02 10:57:20 -0500

Give the Vortex monster spell a description

--------------------------------------------------------------------------------
ba8bdf1b2e | Neil Moore | 2017-11-01 19:02:45 -0400

Fix teleport closets in water_boxes_lemuel.

--------------------------------------------------------------------------------
4a39e9cdf1 | gammafunk | 2017-11-01 15:18:57 -0500

Rework of the Hall of the Hellbinder
This map wasn't very threatening for its depth and had layout problems
as well as fixed placement of monsters. The old layout had two far apart
sections that could be used to avoid half of the monsters, either
skipping to the final area or just clear the map while facing few
monsters at a time. Overall the changes in this commit will make the map
more threatening but with more generally useful reward items.

The new layout has the two chamber sections much closer together,
allowing monsters from both sides to more easily travel between.
Additionally the kobold and deep elf demonologists have been replaced
with a demonspawn blood saint or black sun, and the demons now have
randomization as to their location and numbers, placing more monsters
overall. Finally, the Hellbinder, who has a better spellset from a
previous commit, gets some demonic accompaniment in his chamber and now
wields the majin-bo instead of stashing it with his other loot.

For said loot, I've scattered 8 consumable items in the chambers that
still have some extra weight on thematic items useful in the wizlab,
like scrolls of summoning and holy word, or a summoning book containing
the aura of abjuration spell. The main loot pile of 12 items has
somewhat increased weighting for demon weapons, small weighting for
artefact jewellery or a good_item cloak, and uses star_item as the most
highly weighted class. One item from this will be a summoning school
randbook, as before.

--------------------------------------------------------------------------------
a58e5a46b3 | gammafunk | 2017-11-01 15:17:57 -0500

Adjust the Hellbinder's spell spell set.
It previously had only the lower-level demon summoning spells together
with its hurl damnation, haste, and blink Away spells. This made it sort
of just the old version of deep elf sorcerer. In the soon-to-be revamped
wizlab map where the Hellbinder places, this monster always has demon
monsters generated nearby, which could prevent it from using damnation
effectively.

This commit replaces summon minor demon with summon greater demon and
give that somewhat higher weight. We could try harder to make this
monster something more creative than a cross between a deep elf sorcerer
and a demonologist, but this change will at least upgrade its threat
level for now.

--------------------------------------------------------------------------------
dc66bd4d46 | gammafunk | 2017-11-01 15:15:08 -0500

Give the Cerebov statue tile a DES name
This allows us to choose this specific tile for granite statues.

--------------------------------------------------------------------------------
2694e31eb0 | gammafunk | 2017-11-01 15:15:07 -0500

Revamp of the Cloud Mage WizLab
This vault places a very limited set of air-themed monsters, some of
which like wind drakes and (especially) insubstantial wisps are too easy
for WizLab depth. Much of the loot had a strong focus on flavor (e.g.
potions of flight) over being a reasonable reward.

This commit revamps the monster list, removing insubstantial wisps and
adding shock serpents and spark wasps, two fast electricity themed
monsters, as well as the three crab monsters, death drakes, and blizzard
demons for more cloud effects. Cloud monsters make the fog machines more
relevant, since the player can fight near these to minimize placement of
harmful clouds. The biggest weight is on air elementals, but the weights
are so that none of these new monsters appear too frequently on-average,
especially the nastier ones.

The loot has been updated to feature more general consumables
potions/scrolls in the two early loot piles that were formerly
potion-only, with some extra weight on haste, and a much smaller amount
on !resistance, ?silence, and ?fog. One of these will contain an
thematic non-consumable item (arguably) helpful for the map.

The main loot pile behind the Cloud Mage is updated to feature some
higher quality item classes (superb_item and star_item) in addition to
the ordinary items. The chance for plain rings of flight are replaced by
artefact rings of flight and good_item boots of flying and running.

--------------------------------------------------------------------------------
7d0f330acb | gammafunk | 2017-11-01 15:15:07 -0500

Give Sojobo wind immunity
Now that her air elementals can use Vortex, rWind will prevent her from
taking a large amount of damage every time she summons them.

--------------------------------------------------------------------------------
bd1091303c | gammafunk | 2017-11-01 15:15:07 -0500

Show wind immunity in monster info
This was a hidden resistance that a few monsters have, and it effects
player spells like Airstrike and Tornado, as well as the fan of gales,
so it's better to show when a monster is immune to such things.

--------------------------------------------------------------------------------
c23e79788a | gammafunk | 2017-11-01 15:15:07 -0500

Give air elementals Vortex, a weakened form of Tornado
Air elementals currently appear primarily in Elf, but they're not
effective monsters there.  They are extremely fast at speed 25, but have
low HP and a weak attack, so when they appear individually they do
little damage.

This commit gives air elementals a Vortex ability that is a 3-radius
tornado with half the normal duration (3 turns instead of 6). Air
elementals can close distance very quickly in order to use this
effectively, but the limited radius still gives players an opportunity
to kill the monster at range if avoiding any damage is necessary. The
limited duration prevents the damage levels from being too high,
especially since the player can often avoid damage for at least one of
the turns when the spell is active.

Air elementals have low HD, which gives them low spell-power, so Vortex
has a spell-power boost relative to Tornado to make the damage
reasonable. A future commit will adjust placement of air elementals in
any early vaults or vaults where they otherwise would not be
appropriate.

--------------------------------------------------------------------------------
c134197123 | gammafunk | 2017-11-01 12:39:04 -0500

Add a -force-map option for objstat and mapstat
Using this forces those statistics modes to always place the given map
on every level generated. This is useful when getting e.g. objstat data
for a map on a given level without having to edit the DES file to force
the map to place.

The map is tested for existence and minivaults are properly handled, but
the validity of the map for the given level isn't checked.

--------------------------------------------------------------------------------
f2af9a17fc | Mindcrafter | 2017-10-31 14:00:03 -0700

Add 'Size' section to game manual (#643)

--------------------------------------------------------------------------------
291f19a919 | Alan Malloy | 2017-10-25 16:03:24 -0700

Add Yermak to CREDITS

--------------------------------------------------------------------------------
4337635647 | Yermak | 2017-10-25 15:57:09 -0700

Fix LARGE_BONE_PLATES colouring in Statue Form

--------------------------------------------------------------------------------
cbae7d1ba2 | Alan Malloy | 2017-10-25 14:42:38 -0700

Clarify command-line instructions (Yermak)

--------------------------------------------------------------------------------
0b6bec4d0b | Aidan Holm | 2017-10-20 17:30:01 -0400

Fix formatted_scroller::line_down() returning wrong boolean
'true' indicates the menu position has changed.

--------------------------------------------------------------------------------
417d9d2c4b | Aidan Holm | 2017-10-19 18:59:34 -0400

Move MEL_TITLE sectioning to MEL_END_OF_SECTION
Commit e7c3f7c9a3ced171f522a22d201bda9d37fed8f0 prevented some in-game
menus from being displayed, such as the eating menu when there was a
choice of items from both inventory and floor. This fixes that by
moving some overloaded functionality into its own MenuEntryLevel.

--------------------------------------------------------------------------------
de6fda0fe4 | Aidan Holm | 2017-10-19 18:59:34 -0400

Fix tiles message region resize behaviour
This fixes a bug where the message region would add and remove lines
repeatedly as the window was slowly made less tall.

--------------------------------------------------------------------------------
2ec2765759 | advil | 2017-10-19 15:55:09 -0400

Update mailmap and credits
[skip ci]

--------------------------------------------------------------------------------
4a2d380523 | Jean Martel | 2017-10-19 10:58:43 -0400

Fix wizmode mutation resistance bug (#623)
Remove an unnecessary unwind; force=true for the call to mutate already does 
this.
--------------------------------------------------------------------------------
a924934980 | Aidan Holm | 2017-10-18 09:02:41 -0400

Fix tiles UI not being redrawn on expose
I use the awesomewm window manager, and when switching to a workspace
(tag) with a running instance of crawl-tiles, the tiles window takes
several seconds to redraw. Before it redraws, the window contains
whatever was in that section of the screen on the previous workspace.
This bug does not appear when minimizing and then restoring tiles.

--------------------------------------------------------------------------------
39bf9ee3b3 | nlavsky | 2017-10-18 07:21:01 -0400

Fix message displayed when Gh tries to quaff potion of mutation (#622)
After f20264c8 ghouls get the "You cannot mutate at present." message when they 
try to quaff an identified potion of mutation. The "at present" part is not 
correct, since it's a permanent restriction.



This commit fixes that and clarifies the function's description.
--------------------------------------------------------------------------------
dc75ea7c39 | advil | 2017-10-17 19:32:44 -0400

Use device pixels for clipping, not logical pixels
glScissor requires device pixels, so without this transformation,
clipping wasn't working well on high-DPI devices (e.g. retina).

--------------------------------------------------------------------------------
fa7d736bad | Aidan Holm | 2017-10-17 22:16:45 +0800

Fix resize+keypress crash on local tiles
Sometimes a crash was being caused while rendering the dungeon view tile
region, after enlarging the window. This was caused by the tile region
having been expanded to fill the new available space, but its backing
crawl_view_buffer still having the old size, because the redraw began
before the resize operation was complete:

 1) TilesFramework::getch_ck() gets WME_RESIZE, does layout, queues a
    redraw, amd returns CK_REDRAW.
 2) This return value bubbles up to _getch_mul() on the way to the for
    loop in _get_next_keycode(), which has an if-test that should pass
    for the returned value CK_REDRAW. If it passed, it would resize the
    crawl_view_buffer to the new size.
 3) But execution never gets there, because getch_mul() will check for
    more key events, calling TilesFramework::getch_ck() again if there
    are any. getch_ck() will see the queued redraw, and trigger the crash.

The fix is to pass the CK_REDRAW sentinel back immediately. Also added
assertions to verify that the sizes match.

--------------------------------------------------------------------------------
f28a9d0bee | Aidan Holm | 2017-10-17 22:16:45 +0800

Fix leaking a freetype context per loaded font
The old fontwrapper didn't free its FT_Library handles after use, and
used a new one for each call to load_font(). Now, there's a single
static FT_Library instance. This code also used to leak memory
buffers containing the ttf file contents; that's been fixed as well.

--------------------------------------------------------------------------------
8b534f6230 | Aidan Holm | 2017-10-17 22:16:45 +0800

Remove dead code, update docs for tile_layout_priority
The functionality corresponding to the gold_turn item in the
tile_layout_priority has been removed; this removes some leftover code
and removes all mention of the gold_turn item. The item is now ignored
to preserve compatibility with existing config files.

--------------------------------------------------------------------------------
eff00c1cb6 | Aidan Holm | 2017-10-17 22:16:45 +0800

Ensure TabbedRegion is given enough height to render tab icons

--------------------------------------------------------------------------------
c8658d2150 | Aidan Holm | 2017-10-17 22:16:45 +0800

Remove useless visual separator
The \n======\n separator is not needed, as the file added to the
scroller is bracketed by MEL_TITLEs, which prevents scrolling or viewing
multiple sections at once.

Additionally, the separator has its width specified at menu construction
time; this width will not remain appropriate after a resize event.

--------------------------------------------------------------------------------
e7c3f7c9a3 | Aidan Holm | 2017-10-17 22:16:45 +0800

Stop drawing current menu page after a MEL_TITLE entry
This fixes multi-part menus with sections separated by MEL_TITLE entries
not working correctly after a resize. Specifically, the scrolling code
used to scroll down until any MEL_TITLE entries in the next page were
just about to be scrolled into view, but ignored any in the currently
visible page. This necessitated padding overly-short sections with empty
lines (see code removed from command.cc).

Now, menu rendering stops at the first MEL_TITLE within the page region,
and the downward-scrolling code handles this correctly.

--------------------------------------------------------------------------------
dfbc2d2c7a | Aidan Holm | 2017-10-17 22:16:45 +0800

Fix menu rendering when window size is reduced
This fixes an issue where text rendered by the menu would extend beyond
the bounds of the text buffer on tiles, causing memory corruption and a
crash. This issue was caused by the maximum number of lines to write
being pre-determined, during menu construction.

This fix recalculates pagesize based on the maximum page size given by
the MenuDisplay instance (which varies on resize), and the menu
instance-specific max_pagesize, which is used by some menus to limit the
menu size. The smaller of the two is chosen for (re)rendering the menu.

--------------------------------------------------------------------------------
53b8672ebd | Aidan Holm | 2017-10-17 22:16:45 +0800

Clean unused code, add assertion
This code didn't seem to do anything, so I removed it.

The assertion guards against memory corruption that occurs when you try
to write text after a cgotoxy() with y out of bounds. Note that a
similar assert for x is inappropriate, as the for loop truncates any
horizontally-out-of-bounds text, and parts of the UI rely on this.

--------------------------------------------------------------------------------
14d58c319f | Aidan Holm | 2017-10-17 22:16:45 +0800

Fix a few tiles rendering glitches
- Fixes cursors still being shown on the dungeon viewport even when the
  cursor has left the dungeon region.
- Fixes updated alt text not always being redrawn.

--------------------------------------------------------------------------------
8ed9be3fd5 | Aidan Holm | 2017-10-17 22:16:45 +0800

Improve layout+spacing of tiles main dungeon view
This fix does the following:

- The sidebar now has fixed width, and is always flush against the
  right side of the window.
- The messages box sticks to the bottom of the screen.
- The main dungeon view expands to fill all remaining space, showing
  parts of partially visible tiles.

--------------------------------------------------------------------------------
740c0491ba | Aidan Holm | 2017-10-17 22:16:44 +0800

Fix tiles minimap viewport indicator leaving the sidebar
Fixed: on wide windows where the character is on the left of the map,
the rectangle outline over the minimap indicating the current viewport
could overlap the dungeon viewport, leaving the sidebar.

--------------------------------------------------------------------------------
a801f1643f | Aidan Holm | 2017-10-17 22:16:44 +0800

Fix sidebar monster/inv background flicker on resize
On every resize event m_flavour is resized and re-randomized. This
caused the individual tiles of the monster and inventory sidebar panels
to change between tile variants randomly.

This fix uses the panel tile's index to choose the tile instead of
m_flavour, so the individual tiles vary in appearance, but not randomly.

--------------------------------------------------------------------------------
43d289b507 | Aidan Holm | 2017-10-17 22:16:44 +0800

Add GL render clipping support for local tiles

--------------------------------------------------------------------------------
d65dc97583 | Neil Moore | 2017-10-16 23:04:19 -0400

Staticalise a few functions.
Also extract a common subexpression into a variable, and constify
another variable.

I was tempted to make _exit_type_to_string return a const char *,
but since TilesFramework::send_exit_reason needs a string, it wouldn't
have actually saved any allocations.  It will be nice when we can use
string_view.

--------------------------------------------------------------------------------
df9fdda5c3 | Neil Moore | 2017-10-16 22:48:24 -0400

Avoid a warning from gcc.
Depending on optimisation level, it didn't know that we actually
covered all the cases here. And theoretically someone could have
passed in a casted int and caused us to return who knows what.

--------------------------------------------------------------------------------
022a3cd6c2 | Neil Moore | 2017-10-16 22:31:38 -0400

Fix an _add_insert_commands varargs overrun (aidanh, advil)
It was impossible to pass a list of zero commands, because the first
command argument was *not* considered as a possible terminator.
Instead, one needed to pass  (..., "desc", 0, 0) or something along
those lines.

A few callers *didn't* do this, instead passing just a single 0 under
the incorrect assumption that it would terminate the varargs list.  By
sheer luck (because there was typically a zero left somewhere on the
stack, from the previous call), that didn't usually crash.

Fix the problem by ripping out the varargs altogether, instead taking
just a vector of commands that can then be passed on directly to
insert_commands.

For the version of _add_insert_commands with an "int space_to_colon"
argument, the first command actually was treated differently, because
it went before the colon instead of replacing a percent sign.  Keep
it as a separate argument (of the correct type) for that overload,
and move it before the description, to match _add_command.

FIXME: Those two overloads work differently enough that they should
probably not have the same name...

--------------------------------------------------------------------------------
5e037d904f | Neil Moore | 2017-10-16 22:31:36 -0400

Take an argument by const reference.
There was no reason to require a copy/move here.

--------------------------------------------------------------------------------
ab89da687e | Neil Moore | 2017-10-16 22:31:36 -0400

Don't have a member with the same name as its type.

--------------------------------------------------------------------------------
7cd14ec428 | advil | 2017-10-16 20:40:53 -0400

Various cleanups, including enum classing the game exit type (|amethyst)
Also changed it so leaving the dungeon acts like winning/dying in terms
of whether the startup menu can be bypassed.

--------------------------------------------------------------------------------
af2b63a138 | advil | 2017-10-16 19:43:55 -0400

Delete an obsolete comment that I missed
[skip ci]

--------------------------------------------------------------------------------
cbc62810bc | advil | 2017-10-16 19:21:25 -0400

Further tweak restart behavior and options (Zibokwe)
This started as an attempt to restore some behavior I'd broken on the
previous restart commit where in local tiles (e.g. if restart_after_game
was true) if you had the name and combo set in your rc, death dropped
you right into a new game. This quick restart mode will now work again
(and will work in consoles with `restart_after_game = true`). I didn't
quite conform to the old behavior in that quitting will exit to the menu
-- this is so there is a way to quit crawl besides saving. We'll see if
this bugs tiles players who like to quit a lot, if there are any.

In the process of this I re-overengineered the startup/restart process
and fixed a few things that have always annoyed me. Most importantly,
aborting game setup menus that use game_ended will now never exit the
game and always restart (except for dgl/webtiles with the right
settings). Now, setting `name_bypasses_menu=false` on webtiles will more
cleanly use the menu in webtiles (though it's still somewhat flaky, and
arena doesn't work).  As before this *shouldn't* have an impact on DGL,
hopefully I did that right.

--------------------------------------------------------------------------------
d0ff781956 | gammafunk | 2017-10-15 19:47:04 -0500

Fix usage of a prompt function that expects a format string

--------------------------------------------------------------------------------
d56c60cc9b | advil | 2017-10-15 16:19:54 -0400

Add an option to allow having a name set to not bypass the menu
This is primarily to get easy access to the menu on a non-DGL webtiles
build. It's ignored on DGL builds. I didn't do anything to avoid having
to log in still, and I noticed that this is slightly flaky on some saves
for webtiles == you may need to move or something to force a reload.

Reminder: dcss uses a login specific rc file for regular webtiles
builds, so that's where you'd need to set this.

--------------------------------------------------------------------------------
34efee411a | advil | 2017-10-15 15:36:53 -0400

Over-elaborately enable restart_after_game by default
Having this off by default (for console builds) is very confusing,
especially to new players, especially for the tutorials. However, as
usual, change is hard. This commit tries to balance a bunch of things:
what the previous default behavior was, what expectations users might
have based on existing rc settings, the behavior on webtiles builds, and
the goal of having this option enabled.

I did this by making the option ternary (idea due to |amethyst). If set
to `false`, quitting/dying will always exit. If set to `true`,
quitting/dying will always return to the menu. If set to `maybe`,
quitting/dying will return to the menu just in case the startup options
(i.e. name) don't bypass the startup menu, otherwise it will exit.  As
before, the behavior on saving for the maybe/yes cases is configurable
with a separate option.  The new default for console/webtiles builds is
maybe.  Local tiles keep their previous default of true.

For the vast majority of users who (I'm assuming) don't have a name set
in their rc, this will amount to setting the default to true.

--------------------------------------------------------------------------------
397cdb2507 | advil | 2017-10-14 23:22:20 -0400

Make the manual bonus match the help (11139) and simplify
This was complicated because once upon a time manuals and crosstraining
were shown in the same slot as a sum. Things are simpler now.

--------------------------------------------------------------------------------
45f8505ef0 | elliptic | 2017-10-14 17:44:04 -0400

Prevent random switching of gnoll titles when their top skills are tied.
For example, previously a GnBe would randomly switch back and forth between
titles for Fighting and for its chosen weapon skill (before Invocations
surpassed both of them at XL 22ish, that is). This should no longer happen.
The reason for replacing shuffle_array() by reverse() instead of just
removing that line for gnolls is that this way is consistent with the
initial title selection (via init_skill_order()).

--------------------------------------------------------------------------------
feb02eb078 | elliptic | 2017-10-14 17:44:04 -0400

Fix title weirdnesses when two skills are tied.
Previously it was occasionally possible to lose a title for a skill while
training it and nothing else. Now this shouldn't happen.

--------------------------------------------------------------------------------
917015170d | advil | 2017-10-14 12:59:19 -0400

Prevent cursor from disappearing on right arrow in skill menu (10760)
The problem was that the aptitude text item wasn't properly set as
unhighlightable, and when the links explicitly provided by the skill
menu code give a nullptr, the default menu arrow code takes over. This
picks the aptitude item as the next highlightable item to the right
(skipping over the intervening box, which happens to not be
highlightable, even before EditableTextItem). I think it wasn't changing
appearance visually because the default highlight colour is just the
default colour for a FormattedTextItem (though I didn't test this
carefully).

--------------------------------------------------------------------------------
814e05216a | advil | 2017-10-14 08:32:59 -0400

Wipe out text input prefill more thoroughly (11258)
Can't assume that the cursor starts at the end, given the other changes
I made to text input.

--------------------------------------------------------------------------------
bd1fde41ea | Corin Buchanan-Howland | 2017-10-13 17:48:02 -0400

Fix a typo (amalloy)

--------------------------------------------------------------------------------
3c89746c4e | Corin Buchanan-Howland | 2017-10-13 17:33:40 -0400

Try to improve a clumsy Ru message.

--------------------------------------------------------------------------------
b6c469d0e8 | Corin Buchanan-Howland | 2017-10-13 17:16:48 -0400

Spell out that all Ru's powers scale with piety in Ru god text

--------------------------------------------------------------------------------
4efd3f9865 | elliptic | 2017-10-12 20:14:52 -0400

Adjust Gnoll apts: spell schools to +6, Invocations to +9.
This helps somewhat with early-game gnoll casters being sort of silly, and
also later on it was a little too easy to get high-level spells usable.

Having a high Invocations apt helps to open up more god choices and also
ensures that a gnoll without a manual will end up with a cool title.

--------------------------------------------------------------------------------
65c131be34 | advil | 2017-10-12 12:04:26 -0400

Fix boosted HP/Str coloring for berserk cooldown in webtiles (11257)
The problem was that "berserk" matched both "berserking" and "berserk
cooldown". This fixes that problem but might be nice to be less ad-hoc
about statuses with cooldown & naming conventions.  (The cooldown part
is pretty consistent but the active versions aren't.)

--------------------------------------------------------------------------------
b7bfbb70b2 | advil | 2017-10-12 11:31:50 -0400

Clarify berserk messaging (0011256)
In practice, the subside message happens the turn before berserk ends,
but this is kind of confusing and also inconsistent with how crawl uses
"subside" elsewhere (as the end of the duration).

--------------------------------------------------------------------------------
8928369ccc | advil | 2017-10-12 00:19:18 -0400

More constraints on partial species name in options (|amethyst)
This now only matches the initial part of the species name, and requires
a match of >=2 characters. Combo abbreviations always take priority over
initial matches. There's still occasional weirdness due to the species
enum order, but that won't matter for most people.  (E.g. "hi" fails
because it matches high elf before hill orc.)

--------------------------------------------------------------------------------
1680097d85 | gammafunk | 2017-10-11 22:59:01 -0500

Reduce average number of levels needed for unique Pan lords (hellmonk)
Currently it takes about 27 Pandemonium levels on-average to see all 4
unique pan lord levels. This is a lot of levels to slog through when any
character that can survive a dozen pan levels or so is highly likely to
be able to survive another dozen.

This commit increases the chance of generating unique Pan lord levels so
that it will take about 14 levels to see all 4 on-average. The starting
chance of seeing unique Pan lord is 1/20, increasing to a little better
than 1/3 after 9 floors, and it takes about 5 floors on-average to see
the first one.

--------------------------------------------------------------------------------
45b0a09d66 | Alan Malloy | 2017-10-11 11:26:03 -0700

Make Pan=>Abyss portals random again (Siegurt)
They were accidentally made guaranteed back in 2014 and nobody noticed.

--------------------------------------------------------------------------------
b8428744f2 | advil | 2017-10-11 10:09:57 -0400

Use case-insensitive comparison for species selection in options
This case was broken, because the species field gets lowercased and
str_to_species requires an uppercase first character. This function will
also allow partial matches, which is comparable to how job choice
already behaves.

--------------------------------------------------------------------------------
1b014415bf | advil | 2017-10-11 09:58:02 -0400

Revert an accidental change in 3b2a47dc5e4a (wheals)
Will probably do this eventually, but I didn't intend to commit it here.

--------------------------------------------------------------------------------
3b2a47dc5e | advil | 2017-10-11 09:27:04 -0400

Improve error messaging for incompatible combos on new game
This is re 11252, which I can't replicate locally.

--------------------------------------------------------------------------------
5b8f55302a | advil | 2017-10-09 17:42:01 -0400

Fix a (presumed) precision mistake in ad-hoc fixed point code
Caused by grouping multiplication by scale after a division. This change
is a very slight buff for gargoyle AC under some conditions (and is much
less steppy), but nerfing them by doing low-precision truncating
division is kind of silly, so I'm going to assume it's a mistake.

--------------------------------------------------------------------------------
38363bb78e | advil | 2017-10-08 19:34:32 -0400

Better handle mindelay skills > 27
This fixes the obvious parts of the item description, but there may
still be a bug here; there was a crash apparently from looking at sniper
at crossbows 27 that I couldn't replicate.

--------------------------------------------------------------------------------
2362ee1475 | advil | 2017-10-08 12:02:33 -0400

Make cigotuvi's and ozocobu's act symmetrically
Before, casting ozo's would remove cigotuvi's, but not vice versa, so
casting it in the right order would get you both.

--------------------------------------------------------------------------------
0c35859775 | advil | 2017-10-06 12:17:32 -0400

Make some output.cc code very slightly less brittle
This probably only comes up in fulldebug situations, but it's better to
group colour/print/goto statements together in case of side-effects.
Thanks to |amethyst for help with this one.

--------------------------------------------------------------------------------
a060c752d7 | advil | 2017-10-05 15:19:28 -0400

Fix gnoll / trog interaction (gammafunk)
Trog will no longer disable magic skills on join for Trog characters,
and fixup will properly repair those. I think the disabling was always
happening, but recent commits change the commit logic.  (Also remove an
unneeded dprf.)

--------------------------------------------------------------------------------
d570db1d0b | Neil Moore | 2017-10-05 06:56:05 -0400

Changelog for 0.21 trunk.
Including Wu Jian Council, which was dropped from the changelog before
0.20 release.

[skip ci]

--------------------------------------------------------------------------------
330ab2c361 | Neil Moore | 2017-10-04 09:39:30 -0400

Describe entry layout in species-data.h
As in mon-data.h.

[skip ci]

--------------------------------------------------------------------------------
e0b234a320 | Neil Moore | 2017-10-04 09:25:48 -0400

Unbrace
[skip ci]

--------------------------------------------------------------------------------
214415253d | advil | 2017-10-03 23:51:39 -0400

Actually save a header file
It's amazing what bs my compiler will let through.

--------------------------------------------------------------------------------
b326f1e70d | advil | 2017-10-03 23:39:18 -0400

Disable traps & stabbing in a slightly different way
This once again ensures that the training percentages are calculated
correctly for gnoll training with sacrificed skills (previous commit got
this part wrong), and though I think they are used only in the UI, the
you.training values are calculated correctly as well.

--------------------------------------------------------------------------------
97c3cd8f43 | advil | 2017-10-03 23:39:04 -0400

checkwhite
[skip ci]

--------------------------------------------------------------------------------
5efb6f4854 | advil | 2017-10-03 21:55:13 -0400

Actually disable traps+stabbing for gnolls
I think it didn't actually impact training due to fc3775ba1767, but
gnolls had you.train set to TRAINING_ENABLED for all skills on game
start, and this was making useless skills (including traps,stabbing)
show up in morgues.  This commit also enforces TRAINING_DISABLED for
useless skills on fixup, which should correct games in progress.

--------------------------------------------------------------------------------
325bad4d08 | advil | 2017-10-03 20:59:24 -0400

Fix prompt_for_quantity on webtiles
The use of macro_buf_add was causing weird behavior on this prompt in
webtiles (and is a bad idea anyways); this version just uses a prefill.

I also tweaked some of the webtiles prefill logic to work better for
this case, and let prompt_for_int/float handle esc properly (before if
you type a number and then hit esc, it returns that number). Most places
that call this function should already be able to handle canceling,
because you could do this by hitting enter in an empty text box.

--------------------------------------------------------------------------------
e64e265beb | advil | 2017-10-03 18:08:21 -0400

Return kill-to-begin to its previous state
The version before this commit has a silly mistake in how to calculate
what to overwrite.  This fix, like the previous version, will not
gracefully handle killing double-wide characters. Also cleaned up this
function slightly.

--------------------------------------------------------------------------------
36cf2fce97 | John Olender | 2017-10-02 18:45:02 -0400

initfile.cc: Make sure unistd.h is included for Cygwin targets.
Also, update other target checks in the #ifdef chain to check against
 an appropriate TARGET_OS macro.

--------------------------------------------------------------------------------
90186ba4ba | Velros | 2017-10-02 18:39:18 -0400

Ghoul HP regeneration near submerged enemies
While waiting in an area if there are submerged enemies nearby ghoul hp does 
not regenerate. Occurs very often in swamp with swamp worms.

Mutation text in game states: You do not regenerate when monsters are visible.



Changed the mutation to ignore submerged enemies.



(Issue's: 0011199, 0011197 on Mantis.)
--------------------------------------------------------------------------------
e1c23e80e0 | Rolf K | 2017-10-02 18:34:15 -0400

Fixes for coding style.

--------------------------------------------------------------------------------
0866e71340 | Rolf K | 2017-10-02 18:34:15 -0400

Change scarf message to something more funny.

--------------------------------------------------------------------------------
37e4d12de7 | Rolf K | 2017-10-02 18:34:15 -0400

Fix indentation some more.

--------------------------------------------------------------------------------
50a1d56bdb | Rolf K | 2017-10-02 18:34:15 -0400

Fix indentation.

--------------------------------------------------------------------------------
4eece15fb7 | Rolf K | 2017-10-02 18:34:15 -0400

Make Xom do different things to cloaks and scarves (in pseudo_miscast).

--------------------------------------------------------------------------------
fb491b441f | advil | 2017-10-01 10:07:33 -0400

Clean up some fulldebug spam for gnolls
Previously this would, on training, swamp the message log with,
    for every skill:
        for every increase of 1 skill point:
            print a (locally) unique debug message

--------------------------------------------------------------------------------
461fa0c58c | gammafunk | 2017-10-01 02:38:13 -0500

Re-allow Trog worship for Gnolls
Forbidding Gnolls from Trog worship was only strictly necessary because
of one extremely minor aspect of Trog's conduct, which is penance for
training magical schools, something that is involuntary for Gnolls.  The
conduct itself likely wouldn't need to exist if we e.g. forbade melee
with magical staves instead. Although Trog is not the most interesting
god choice for Gnolls, no one likes worship restrictions for very
technical reasons, and flavor-wise there's no justification either.

This commit has Trog ignore penance for Gnolls due to training spells,
but still give the usual penance for memorizing or casting spells.
Berserker is also re-enabled as a background choice. The god penance map
code needs some generalization to better handle cases like these, which
is noted in code comments.

--------------------------------------------------------------------------------
12f17e1c3b | elliptic | 2017-10-01 01:25:47 -0400

Fix transferred non-gnolls being told that they quaffed a potion of experience.
This was harmless and only affected transferred saves, but might as well fix
it I guess before more people report it.

--------------------------------------------------------------------------------
6a5e2f31a8 | elliptic | 2017-09-30 23:38:41 -0400

Allow gnolls to sacrifice arcana, but don't give them extra piety for 
sacrificing a skill.
This is fine now that it doesn't speed up training their other skills.

--------------------------------------------------------------------------------
e65fa8f47b | elliptic | 2017-09-30 21:31:14 -0400

Scale you.total_experience and you.exp_available by 10.
This simplifies some of the skill cost code and makes gnoll skill training
smoother. Note that these two variables are only used inside the skill
training code, and you.experience is still unscaled.

--------------------------------------------------------------------------------
4d9243b9c4 | elliptic | 2017-09-30 21:29:36 -0400

Don't claim to have quaffed !exp after saving and reloading a gnoll.

--------------------------------------------------------------------------------
246b9df9e0 | elliptic | 2017-09-30 18:31:03 -0400

More gnoll skill code tweaks.
This commit does two things to gnoll skill training, and does not affect
non-gnolls at all.

1. Gnoll skill training is finer now - previously it used increments of
   10 skill points only, now it goes 1 skill point at a time.
2. Gnolls no longer train other skills faster if they sacrifice skills with
   Ru (e.g. Sacrifice Stealth or Sacrifice Hand).

There are two possible issues with this new approach. First, the code is not
very efficient. Using &k on a gnoll to go to XL 27 takes about 10 seconds
on my machine now. I don't think this will be noticeable outside of wizmode,
and there are probably some easy optimizations that can be made - for now,
I just went for code transparency.

Second, gnoll skill training costs are slightly randomized now (mainly in
early game). You can observe this by doing &k5 to go to XL 5 many times in
a row (on different characters). I don't think this is necessarily a problem,
and it is somewhat unavoidable when using 1 skill point precision at the
moment (since the cost of raising a skill by 1 skill point at start is 1/10
of an xp point). It is probably not too hard to fix this by scaling
you.total_experience and you.exp_available by a factor of 10 if we want.

--------------------------------------------------------------------------------
fc3775ba17 | elliptic | 2017-09-30 16:06:12 -0400

Don't train Stabbing and Traps on gnolls.
Also should stop training Ru-sacrificed skills.

--------------------------------------------------------------------------------
c36d0dd284 | advil | 2017-09-30 15:34:49 -0400

Really for real disable all training target UI for gnolls

--------------------------------------------------------------------------------
a284228875 | elliptic | 2017-09-30 10:35:34 -0400

Make gnoll skills rise evenly.
Skills that start higher (because of background) or have a manual will remain
higher. Other skills should remain exactly equal though. If we decide to make
gnoll apts non-flat, this should handle that fine as well.

One side effect is that skills don't rise at all until sometime in XL 3 - the
reason is that you don't have enough exp to raise every skill by one skill
point until then. I think this is okay, but if we wanted to address this then
we could make skill points finer. With a +8 apt, a single skill point takes
a skill from 0.0 to 0.8.

The implementation is a little ugly, but not too bad. One note: The lines I
removed from player.cc could theoretically have affected non-gnolls. I don't
think they did in any reasonable circumstances (the only situation I can
think of is if all currently trainable skills were at 27) and I don't see how
these lines could ever have been a good idea anyway, but it is something to
remember.

--------------------------------------------------------------------------------
91e33734f4 | Neil Moore | 2017-09-29 20:47:07 -0400

Avoid a gcc warning.
About shadowing a member variable.

--------------------------------------------------------------------------------
efad53eb57 | advil | 2017-09-29 15:30:11 -0400

In skill menu, let = always work, fix crosstrain skills (rchandra x2)
This also fixes the gnoll skill help not working.

--------------------------------------------------------------------------------
17ab366a46 | advil | 2017-09-29 11:31:27 -0400

Remove some doubles, and fix a wrong assumption about shields
Weapon mindelay is generally in integers, so in parts of the description
code I was discarding fractional parts. However, shields can have
non-integer training targets, e.g. bucklers for a formicid have the
penalty removed at 2.4. In an earlier commit to try to streamline the
description code, I switched part of the shield calculation to integers
incorrectly.  This version now uses 10-scaled ints for everything and
does not assume that any item-based target will be integer.

--------------------------------------------------------------------------------
40bfade874 | advil | 2017-09-29 11:06:55 -0400

Handle ash boosts better in item desc (|amethyst), + cleanups
This also tries to further streamline the description code, which has a
bunch of duplicated logic for weapons+missiles+shields.

--------------------------------------------------------------------------------
d0d0d88cf0 | advil | 2017-09-29 01:42:11 -0400

Fix skill target behavior for heroism (11240)
Yes, three bools is too many, sorry.

--------------------------------------------------------------------------------
7453ecba3e | advil | 2017-09-29 00:41:54 -0400

For real disable training target UI for gnolls

--------------------------------------------------------------------------------
9255a1437d | advil | 2017-09-29 00:36:18 -0400

Only calculate ash bonus for ash characters
Luckily this didn't affect anything substantive, just training target
estimates.

--------------------------------------------------------------------------------
b3271ec2de | gammafunk | 2017-09-28 22:45:36 -0500

Improve shield offsets for the minotaur monster tile

--------------------------------------------------------------------------------
8d4826aef3 | gammafunk | 2017-09-28 22:28:39 -0500

Fix training restrictions in skill menus and messages for Gnolls (eb)
If Gnolls changed their inventory, spells, or abilities in a way that
modify the usual training restrictions, their skill menu would show the
skill without the '+' indicated it was being trained and they would get
a message to that effect, although they would actually continue training
the skill normally. This commit prevents those messages and skill menu
changes.

It may need to be done in a better way elsewhere in the skill code, but
this fix will work for now.

--------------------------------------------------------------------------------
bc67419b0d | gammafunk | 2017-09-28 22:27:04 -0500

Don't enable all trainable skills for non-Gnolls in transfered saves

--------------------------------------------------------------------------------
9ae21755b4 | gammafunk | 2017-09-28 16:28:51 -0500

Unbrace

--------------------------------------------------------------------------------
9a49fba305 | gammafunk | 2017-09-28 16:28:42 -0500

Declare a function as static

--------------------------------------------------------------------------------
57ddf66bb2 | advil | 2017-09-28 15:57:44 -0400

Don't crash when describing staves
The problem was that I wasn't handling SK_NONE properly, but also I
didn't handle staves properly for getting mindelay, so both of these are
fixed.

--------------------------------------------------------------------------------
f4f4644830 | advil | 2017-09-28 15:42:42 -0400

Attempt to quiet some gcc warnings
I can't replicate these with clang, so I'm not sure if this will do it.

--------------------------------------------------------------------------------
27874c795c | advil | 2017-09-28 11:35:22 -0400

Don't show 100% training rate info in describe for gnolls
since they can't change their training rate.

--------------------------------------------------------------------------------
c847d3a2b1 | advil | 2017-09-28 11:35:22 -0400

Update help file for training targets
Also some other reformatting of this help screen.

--------------------------------------------------------------------------------
5029fa9ab8 | advil | 2017-09-28 11:35:22 -0400

Disable training targets for new^3gnolls
This just hides them altogether.

--------------------------------------------------------------------------------
d461b0ec43 | advil | 2017-09-28 11:35:22 -0400

Add a command to set skill targets from an item description
For items that have a particular goal: weapons, missiles, and shields.
This also does a bunch of other miscelaneous cleanup of item
descriptions.

--------------------------------------------------------------------------------
8c2e61a1a0 | advil | 2017-09-28 11:35:22 -0400

Generalize webtiles text input code and use it for skill targets
This extracts the webtiles text input code from being specific to the
messages window into its own module, adds a new mode where you can get
input as a (not very stylish) dialog, and uses this mode to get skill
targets in the skill menu.  Crucially, this new input mode can work on
top of an existing menu-style dialog (though other dialogs will not
stack on top of an input dialog).

I might eventually get an inline textbox to work in the skill menu, to
be more parallel to how console/local tiles work, but this was taking to
long and I wanted to just get something that functions.  The abstraction
of text input into its own require.js module is the first step for this,
anyways.

--------------------------------------------------------------------------------
f3702fd99c | advil | 2017-09-28 11:35:22 -0400

Fix a fairly nasty bug leading to blank webtiles sometimes
If you use cgotoxy without a region argument at the wrong time, it will
use the CRT region, which can change the webtiles UI state. In some
circumstances, I think if a menu is still waiting on a timer to close,
this will simply blank out the webtiles display. This was manifesting
here when you do C-f ? ESC.

--------------------------------------------------------------------------------
ea5fd92a9c | advil | 2017-09-28 11:35:22 -0400

Add UI for skill target editing for console/local tiles
This bolts together TextItems and line_readers to make a (very) basic
text editing widget (which previously only existed in the form of
line_reader in the message pane), and uses it to implement editing for
skill targets in the m screen. When viewing skill targets, you can
select a target to edit, and the editing happens in place in that part
of the skill menu.

As part of this process, I attempted to make line_reader very slightly
more sane in a number of ways; this commit also includes a local tiles
subclass that uses a FontBuffer (for arbitrary positioning of the
editing widget, rather than grid positioning).

This commit doesn't cover webtiles, and editing only sort of works there
(it works basically like on console, but the cursor doesn't show).  The
next step is to generalize the input box technique currently limited
only to the message pane.

--------------------------------------------------------------------------------
42f6fbce78 | advil | 2017-09-28 11:35:22 -0400

Change skill screen foreground color in help mode to light gray
Previously used dark gray, which is kind of confusing, as this color
otherwise signals disabled.  Also fix a range issue.

--------------------------------------------------------------------------------
a7893f84d5 | advil | 2017-09-28 11:35:22 -0400

Implement training target backend
This commit implements the basic backend machinery for skill training
targets, as well as a UI for viewing them in the m screen as another
mode. Beyond the lua bindings, there is no UI for editing them in this
commit, that will come in a future commit.

Each skill can be associated with a unique training target, implemented
as a 10-scaled skill level value.  When the target is reached or passed,
the training target is reset to 0 (which means 'off'), and training for
that skill is turned off.  Targets are checked while training, while
setting skill levels, and on load/skill fixup.  Because of the way skill
training works, targets aren't checked exactly, so a large burst of
experience (e.g.  killing cerebov, drinking a potion of xp) can
overshoot targets, but in practice it gets pretty close.  Targets are
checked against skill factoring in cross-training and ash bonuses, but
not draining. With this commit, training targets can be set and accessed
via a pair of lua bindings, you.get_training_target and
you.set_training_target.

--------------------------------------------------------------------------------
255219b5b3 | advil | 2017-09-28 11:35:22 -0400

Add messaging about skill level targets to weapon information
This adds information in the following format to weapon/shield info
about when the player will reach mindelay/no penalty (where the first
two lines were already there):

    This weapon's minimum attack delay (0.7) is reached at skill level 26.
         (Your skill: 20.8)
    At max training you would reach 26.0 in about 1.0 XLs.
    At current training (50%) you will reach 26.0 in about 2.3 XLs.

The basic idea is that this information allows more informed training
allocations at any given point.  I decided to use XLs as a measure
because I think players generally seem to have sense of XL progression,
and for most of the game it's something they're very attuned to.  Past
XL 27 it will say "the equivalent of N XLs", similar to how felid life
gain works.  Also, I couldn't think of any other way to quantify this.
Using XLs does to some degree reveal the amount of deep weirdness and
non-linearity in skill point / XL gain, but so be it.

In most cases this is an exact calculation, but there are a few things I
wasn't able to perfectly account for.  Crosstraining works, but it won't
take into account training multiple cross-training skills at the same time.
Ash bonuses are approximate, because they give a skill point bonus that is
dependent on skill level (level, not points), and this is somewhat hard to
calculate.  It also uses only current ash piety.  Manuals use only the rate
modifier, not the exact skill point value in the manual.  It ignores
draining, ash penance, heroism, and any other skill effects I forgot about.

This commit comes with a bunch of refactoring of skill / skill point
calculations in order to avoid code duplication and make some calculations
slightly clearer.  This commit is the first step in a bunch of changes to
the skill UI, including skill targets, and the refactoring here sets the
stage.  For example, the code that produces the weapon info is set up to
support arbitrary queries for skill targets.

This (post-rebase) version incorporates feedback from various people,
especially amalloy.

--------------------------------------------------------------------------------
a3d34c202e | gammafunk | 2017-09-28 02:54:35 -0500

Update the manual and the description for Gnolls
[skip ci]

--------------------------------------------------------------------------------
f4b7489fcf | gammafunk | 2017-09-28 01:30:43 -0500

Gnolls Redux Part VIII: Save compatibility for stat lock removal
When transferring stat-locked Gnoll saves, set their base stats to 10,
then randomly give them Str/Int/Dex for each point of the XL/3 stat
choices they missed as well as for each point of missed XL/4 SID. Also
enable mandatory training of all schools regardless of any previous
training selection.

--------------------------------------------------------------------------------
f0bd51c723 | gammafunk | 2017-09-28 01:30:43 -0500

Add a function to get a species definition

--------------------------------------------------------------------------------
db0367d174 | gammafunk | 2017-09-28 01:30:42 -0500

Move species_def to its own definition header

--------------------------------------------------------------------------------
42af060f5c | gammafunk | 2017-09-28 01:30:41 -0500

Gnolls Redux Part VII: Prevent Ru from offering Sacrifice Arcana
This sacrifice would let Gnolls get an additional perk in the form of
extra XP not directed into a now-unused school. This is already a low
piety sacrifice, so it's better to not offer it to Gnolls instead of
trying to adjust the piety awarded.

--------------------------------------------------------------------------------
1447a82f01 | gammafunk | 2017-09-28 01:30:41 -0500

Gnolls Redux Part VI: Disable Ashenzari skill transfer
Gnolls would want to use this ability on a large number of skills to get
around their main limitation. Allowing such a substantial bypass of
their main species limitation isn't desirable, so we disallow it.

--------------------------------------------------------------------------------
6782bc902f | gammafunk | 2017-09-28 01:30:40 -0500

Gnolls Redux Part V: Disallow worshiping Trog
Disallow Gnolls from choosing Berserker at game start and prevent Trog
worship from altars. Trog does not appreciate worshipers training magic,
and Gnolls are especially bad at not training magic, since they train
all schools always. Gnolls of Trogs aren't very interesting given the
design of the species, so trying to twist the rules a bit doesn't seem
worth it. Go for the GnBe high score while you still can!

--------------------------------------------------------------------------------
b8a99bc144 | gammafunk | 2017-09-28 01:30:40 -0500

Gnolls Redux Part IV: Disable cross-training
Cross-training would just be an always-available boost to some schools
for Gnolls, since they always train all skills now. With this commit, no
cross-training occurs between the usual melee and ranged skills for this
species.

--------------------------------------------------------------------------------
0c25114547 | gammafunk | 2017-09-28 01:30:36 -0500

Gnolls Redux Part III: Remove stat lock
since the stat-lock is no longer part of their design. Gnolls now have
stat gain choice normally every three levels and their SID/4 works as
well.

--------------------------------------------------------------------------------
8a4a258fa7 | gammafunk | 2017-09-28 01:30:09 -0500

Gnolls Redux Part II: Increase apts and stats (elliptic)
Give Gnolls all +8 apts, 10/10/10 starting Str/Int/Dex, and SID/4. The
+8 apts will get the player to a bit above skill level 7 in all skills
by XL 13 and a bit above skill level 16 by XL 27. We may want to adjust
some aptitudes (e.g. melee) to be a bit higher so melee is not so
painful, although the extra stat points will help with this to some
degree. Likewise we can adjust some aptitudes to be a little lower to
help encourage Gnolls not to always use certain schools that work better
at lower skill levels. For now we can test these baseline flat apts in
trunk and then see what needs adjusting.

--------------------------------------------------------------------------------
d2df3b7b55 | gammafunk | 2017-09-28 01:29:51 -0500

Gnolls Redux Part I: Every skill is always trained (##crawl/not mikee)
The current "stat-locked" version of Gnolls tries harder to push the
player to not specialize in any one thing without relying on the
aptitude change breakpoints used by the initial version of the species.
But heavy armor, shields, ranged weapons, and evocations all work well
enough with low stats, and melee works well enough when paired with
these. On the magic side of things, necromancy and summoning spells work
far better with low Int compared to direct damage spell schools. So
Gnolls were still able to specialize in certain schools but additionally
had a low-stat conduct that players didn't enjoy.

The rework started in this commit will have Gnolls become a
"reverse-skillrobin" species with very high apts and high stats, but
with a drawback where they always train every type of skill at the same
time with no ability to disable or focus specific skills. All skills are
enabled for training at the same XP percentage at game start, ignoring
any training requirements of equipment or spells normally applied to
other species. Backgrounds still apply their starting XP into the
specific relevant schools, but all further XP gained after the game
begins applies to every school.

A subsequent commit will adjust Gnoll aptitudes to much higher than the
current +3, raise their stats, and remove stat-lock. Even with this
aptitude increase, skill levels will raise slowly, but all schools will
be available to use in terms of training. It's closer in spirit to the
original Gnoll design, but even more explicitly rules out skill
specialization and does this without needing aptitude breakpoints.

This commit disables all menu actions and lua functions to select or
focus skills as a Gnoll and has them always train all skills.
Experience potions apply the experience to all skills and no longer
present a special skill menu to the player.

Future commits will disable cross-training, handle god-related
limitations, and implement save compatibility.

--------------------------------------------------------------------------------
6fcecc0696 | Neil Moore | 2017-09-24 22:44:14 -0400

Checkwhite (doh)
[skip ci]

--------------------------------------------------------------------------------
9d37868a8d | Neil Moore | 2017-09-24 22:42:31 -0400

Correct and expand a comment.
[skip CI]

--------------------------------------------------------------------------------
14ddf8d8ec | Neil Moore | 2017-09-24 21:12:19 -0400

Show MP regen from Etheric Cage on % screen (enarc13)
Count its average regen rate of 0.5/turn, and add an asterisk to
indicate that there is something different (the regen is not smooth).

--------------------------------------------------------------------------------
622b90602d | Neil Moore | 2017-09-23 23:29:49 -0400

Avoid combining MG_FORCE_PLACE + PROX_CLOSE_TO_PLAYER
In phial of floods.  Most likely this would never actually come up,
since the elementals should be in LOS range anyway, but if it did
happen, this commit would restore the 0.20 behaviour (placing the
elemental out-of-range, rather than squelching them).

--------------------------------------------------------------------------------
377afad367 | Neil Moore | 2017-09-23 23:29:34 -0400

Don't disconnect out-of-LOS tentacles (#11213)
In 0.21-a0-253-g6b34986 we began enforcing PROX_CLOSE_TO_PLAYER even
when the monster was placed with MG_FORCE_PLACE.  But the tentacle code
used that combination, resulting in a failure to place and a can't-
happen message once the tentacled monster left LOS radius.

Use PROX_ANYWHERE instead.

--------------------------------------------------------------------------------
b6be1c8b1b | Chris Campbell | 2017-09-24 00:10:44 +0100

Improve messaging for stolen gold
Especially since current gold is no longer shown on the HUD.

--------------------------------------------------------------------------------
1d62a0f9ae | Chris Campbell | 2017-09-24 00:10:41 +0100

Don't tithe gold stolen by Maurice (Vanguardan)
Since tithing on pickup is more piety-efficient than donating gold manually,
don't allow players to let Maurice steal gold in order to tithe it again.

--------------------------------------------------------------------------------
6037ffb4b7 | gammafunk | 2017-09-22 18:59:05 -0500

Tweak monsters in a crab-themed vault (mikee)
The crabs themselves are relatively fragile and don't do much damage, so
give them some support from 2-4 monsters that can hit from behind other
monsters and have good melee or ranged damage.  Entropy weavers in Lair
and Dungeon, spriggan druids in Swamp (with some wall squares replaced
with trees), Titans in Depths, and Killer Klowns and Draconian
Stormcallers/Scorchers on Zot.

This commit also fixes some monster substitution errors and simplifies
the DES.

--------------------------------------------------------------------------------
a722497ad3 | advil | 2017-09-19 22:15:25 -0400

Don't use the entire string when iterating over the result of a split
This was resulting in duplicated lines in webtiles in the C-x menu.
Unfortunately this fix still doesn't put the selection box on the whole
menu item, because of the use of a dummy menu item, but it's hard to get
a good fix that does this while taking into account the appearance of
console on a webtiles build.

Resolves #616, sort of.  (That PR gets the selection box right, but
doesn't fix the c++ bug, and I'm not very confident it won't affect
other menus.)

--------------------------------------------------------------------------------
eaec95604f | gammafunk | 2017-09-19 12:41:00 -0500

Fix Draconian hat tiles to display properly in WebTiles and in menus
Based on the fix in the previous commit, applied to the relevant (and
duplicated) code (which we need to de-duplicate).

--------------------------------------------------------------------------------
ff8b496fd2 | efredericks | 2017-09-19 12:38:53 -0500

Fixed issue where draconian hat was not shown when equipped
[Closes #617 with related fixes in preceding and following commits.
--gammafunk]

--------------------------------------------------------------------------------
1afbe6ae7a | gammafunk | 2017-09-19 12:25:50 -0500

Fix player doll order in menus and better document code duplication
Have the menus showing player dolls use the same doll tile ordering as
the main doll used for the view area.

--------------------------------------------------------------------------------
c1afaeb04c | advil | 2017-09-17 09:09:50 -0400

Fix line pass to not be cblink (11228)
This was broken in 44a4606457c614cd71b1c56c259aa7a0d801755e, by
replacing ZAP_EXPLOSIVE_BOLT with ZAP_DEBUGGING_RAY for
targeter_monster_sequence.  Z_D_R does not have can_beam set, and so
therefore leads to beam paths not being calculated in the way that
targeter_monster_sequence needs for its aiming functions.

--------------------------------------------------------------------------------
07853665ee | John Boyle | 2017-09-15 19:37:30 +0100

Disperse clouds under player when evoking wind blasts
[Closes #612 PR. Removed the extra message for it, as it was placed in a weird
order and doesn't seem entirely necessary. - MarvinPA]

--------------------------------------------------------------------------------
984ae92373 | John Boyle | 2017-09-14 18:13:18 -0400

Prevent split slimes from inheriting HELD enchantments (heteroy)
After slimes were prevented from eating nets, they seem to have begun
inheriting the HELD enchantment if the parent slime was in a net.

This manifested as a 'webbed' slime, which was kinda weird.

Now, when a slime in a net splits, the new slime has no HELD ench, which
actually looks like the slime is oozing through the net.

--------------------------------------------------------------------------------
e7f0487f30 | advil | 2017-09-14 12:25:06 -0400

Remove a secret breakpoint in monster response to noise
Previous to this commit, if the perceived noise location was within 3
spaces grid-distance of the player's location, a monster was alerted;
otherwise it was disturbed.  The difference in behavior for these two is
substantial, especially for sleeping monsters: alerting awakens, sets
foe to MHITYOU and has the monster shout, thus awakening others.
Disturbing awakens, sets them to wander, and has them briefly consider
the noise source as a potential movement target but with no foe; in my
testing this often does very little (though I'm not sure of the exact
details of how wandering monsters with a target do behave or are
supposed to behave).  Because of this there was secretly a substantial
incentive when using things like fireball to target >3 spaces away in
how much attention you draw from far away.

With this change, there is still incentive to make noises further away
from the player's actual location, but this incentive (i.e.  the chance
of alerting vs.  disturbing) scales linearly with grid distance from the
player with a 10% chance at LOS_RADIUS. The equation could be further
tweaked if needed. This may be an overall nerf as it stands, because now
there is some chance of alerting monsters for anywhere you e.g. shoot a
fireball (at max range).  However, the penalty for shooting fireballs
near you is softened.

This is sort of a quick fix: ideally the choice of alert vs disturb
would make no reference to the player's location at all. The other
constraint is of course avoiding chain shouting -- this is why monsters
can't just alert on every noise.

This commit also fixes a few bugs in DEBUG_NOISE_PROPAGATION.

--------------------------------------------------------------------------------
820405986f | gammafunk | 2017-09-12 17:44:28 -0500

A cloud-themed transporter vault for Dungeon and Lair branches
A pre-identified potion of resistance will let the player walk through
the clouds either unharmed or with enough damage resisted to make it to
the other side, but only if they can kill the monsters in time. Said
monsters have damage that's of the same type as the cloud, so it can be
partly resisted. Loot is generic, but upgrades gradually with depth and
eventually includes a piece of 'good item' auxiliary armor.

A mutagenic cloud variant appearing in the latest depths has a couple of
cancellation pots instead of the resistance pot and has the player
fighting ugly things and very ugly things that shift rapidly in the
clouds.

All monsters and loot are visible from outside the vault, so the player
knows exactly what they're getting into.

--------------------------------------------------------------------------------
8ea824e9bf | gammafunk | 2017-09-12 17:44:28 -0500

Add no_tele_into on some early depth transporter vaults
Don't let the player be teleported into transporter vaults appearing
before D:7. These vaults are significantly harder on-average compared to
other vaults, and in the very earliest levels the player is a lot more
likely to have no means of escape.

It would be nice to standardize this behaviour for early transporter and
runed door vaults so that it was not spoilery for the player as to
whether they had to worry about landing in a potentially dangerous area.
We would need to come up with consistent rules for applying no_tele_into
to such early vaults and also have a way to indicate this behaviour,
possibly in the descriptions of the runed doors and transporters
features themselves.

--------------------------------------------------------------------------------
df84809bb2 | gammafunk | 2017-09-12 17:44:28 -0500

Fix an item definition in a vault

--------------------------------------------------------------------------------
a5fc3509d7 | advil | 2017-09-12 00:06:28 -0400

Add an assert
This may be too strong.

--------------------------------------------------------------------------------
32e1f36990 | advil | 2017-09-12 00:06:28 -0400

Remove a no-longer-necessary loop + an unused condition
Previous to this commit, when presented with MONS_ZOMBIE and the like,
pick_random_monster would call pick_local_zombifiable_monster to
generate a valid (living) monster type for the zombie. As far as I can
tell this isn't ever used. Removing this leads to pick_random_monster
having the following property: it isn't sensitive to any value for
`kind` that it itself can produce as a return value, making it more safe
to call iteratively if needed. (For most `kind` values it just picks a
random monster.) Anything that needs a zombie type should call
pick_local_zombifiable_monster directly.

It wasn't needed any more in this case: iteration was creating living
monsters out of zombies in tomb and tartarus (11216).

--------------------------------------------------------------------------------
b353147457 | elliptic | 2017-09-09 22:26:08 -0400

Ogres: improve more non-mace weapon apts.
This seems to make sense if the idea of reducing their maces apt was to
encourage more weapon diversity.

--------------------------------------------------------------------------------
3e31e410cd | advil | 2017-09-07 20:25:15 -0400

Take sacrifice experience into account when validating Ds mutations
This is kind of hacky in how it tries to work around wizmode xl changes,
and you can still get it to crash in wizmode, but it's better than
before.

I'm sort of inclined to think that Ds should just lose the mutation(s)
while they wait to gain back the levels, but maybe that's too harsh.
It's also trickier to implement (though a wizmode version of the code is
already there.)

--------------------------------------------------------------------------------
f26e180203 | Bernhard M. Wiedemann | 2017-09-07 10:32:27 -0700

Sort input file list (#609)
so that loadmaps.lua builds in a reproducible way

in spite of indeterministic filesystem readdir order



See https://reproducible-builds.org/ for why this is good.
--------------------------------------------------------------------------------
12b8181cba | advil | 2017-09-07 10:54:25 -0400

Fix a fallthrough that seems harmless but unintentional
Harmless (I think?) since you can't already have MUT_INEXPERIENCED if
the sac xp ability can trigger, but this could bite changes to sac
courage later.

--------------------------------------------------------------------------------
bd1db8bb76 | advil | 2017-09-07 10:37:15 -0400

Give Ds extra piety for sacrificing experience
In my testing Ds are highly likely to miss out on one mutation,
sometimes two; the average was 1.05 in a run of 20 rerolls. This doesn't
explicitly describe the extra piety for this case, which seems
consistent with the other bonuses in get_sacrifice_piety, but maybe
should be told to the player somehow.

The exact number could be tweaked, I gave it a huge bonus, but the
psychological impact of losing a (high-end) mutation might be worse than
the practice.

--------------------------------------------------------------------------------
9b2435ef7d | Alan Malloy | 2017-09-06 13:35:44 -0700

Minor cleanup after #604
- Restrict a variable's scope to where it's needed
- Remove its bogus initializer value that is never read

--------------------------------------------------------------------------------
9a62636c07 | jmbjr | 2017-09-06 13:25:40 -0700

Clarify failure message for quaffing !invis while haloed (Yermak, #11104) (#604)
Currently, self-haloing prevents !invis.



The issue is, the msg to the player is vague and doesn't clarify that

the reason the player can't go invisible at all is due to their weapon

(EOS) or their Divine Halo (TSO or Wu Jian).
--------------------------------------------------------------------------------
4c0eb85f49 | gammafunk | 2017-09-05 22:33:29 -0500

Fix a SUBST that put too many apocalypse crabs in a vault

--------------------------------------------------------------------------------
bb444f2580 | gammafunk | 2017-09-05 15:15:21 -0500

Generate some monsters awake at level creation time on most levels
Each level generation monster (i.e. any monster not generated from a
vault) now has a 1/8 chance of being generated awake. These monsters can
present the same kind of challenge to players negotiating seemingly
cleared areas that spawns used to present. D:1 is excluded from
generating these awake monsters, since the player doesn't have the
ability to escape upwards and is particularly vulnerable in general.

Portals, Abyss, and Pan are unaffected by this change as they either
place all monsters through vaults (portals), or have their own monster
generation rules: Abyss spawns monsters very frequently and Pan already
generates all monsters awake.

--------------------------------------------------------------------------------
b9be33d255 | gammafunk | 2017-09-05 15:15:21 -0500

Add a monster placement proximity type for generating away from stairs
Monster with generation proximity PROX_AWAY_FROM_STAIRS will not be
placed within LOS_RADIUS squares (i.e. 8 squares) of a stone staircase.
Placement positions near hatches, portals, branch entrances etc are
still allowed by this proximity type. This will be used in a subsequent
commit for making a small portion of level monsters be already awake at
generation time.

--------------------------------------------------------------------------------
5a3d65ea25 | gammafunk | 2017-09-05 15:05:24 -0500

Increase numbers of level generation monsters in most branches
Monster spawns over time were removed from connected branches in the
previous commit, which reduces the XP earned by the player. Results from
the xp_by_level table from the morgues of games won in trunk show that
anywhere from 8-13% of total XP comes from spawns after level
generation, excluding Orb run spawns.

To keep XP gained through normal level progression relatively the same,
this commit slightly increases the number of monsters generated by the
level itself (i.e. not from vaults):

Crypt: From 3d8 to 3d10, 3 more on-average.

Hell subbranches: From 3d10 + 3d8 to simply 3d23, 6 more on-average.

All other connected branches: From 3d10 to 3d12, 3 more on-average.

Pandemonium: The die used was changed from 0-27 averaged over 3 rolls to
simply 3d8 for consistency, but no change to level generation monsters,
since Pan still has spawns.

Numbers are unchanged in other branches, since these don't have level
generation monsters and either place no monsters or only place monsters
through vaults.

Some results courtesy of elliptic comparing 2000 GrBe qw games before
the change and 2000 after the change show that XL is not changing
drastically by branch. In these listings, "current" means trunk
including this commit plus the earlier ones to remove spawns and
generate some monsters awake, and "previous" means trunk before any of
these commits, with spawns still in place and the previous lower numbers
of level monsters.

XL upon branch entry (previous):
Sewer: 6.66, Ossuary: 7.87, Lair: 10.89, Orc: 15.45, Vaults: 17.5,
Spider: 17.74, Snake: 17.85, Swamp: 17.87, Shoals: 18.07, Bazaar: 18.87,
Depths: 21.38, Zot: 25.69

XL upon branch entry (current)
Sewer: 6.7, Ossuary: 7.98, Lair: 10.88, Orc: 15.37, Vaults: 17.32,
Swamp: 17.48, Spider: 17.6, Shoals: 17.7, Snake: 17.81, Bazaar: 18.52,
Depths: 21.09, Zot: 25.18

XL upon reaching branch end (previous):
Lair: 13.06, D: 15.04, Orc: 15.5, Swamp: 18.47, Spider: 18.5, Snake:
18.74, Shoals: 18.87, Depths: 23.7, Vaults: 24.39, Abyss: 26.44, Zot:
26.91

XL upon reaching branch end (current):
Lair: 13.04, D: 14.98, Orc: 15.45, Swamp: 18, Spider: 18.37, Shoals:
18.49, Snake: 18.67, Depths: 23.33, Vaults: 23.9, Abyss: 25.95, Zot:
26.71

--------------------------------------------------------------------------------
1d58f9a54f | gammafunk | 2017-09-05 01:09:52 -0500

Remove monster spawns over time in most branches
Monsters spawns over time are used to provide some complications to
retreating and luring as the player has cleared out portions of a level.
Additionally these spawns have an out-of-depth (OOD) timer that punishes
players who spend significant amounts of time on a level by generating
much stronger than usual monsters.

Punishing players with OOD monsters isn't necessary if they're clearing
a level normally, and if they are spending inordinate amounts of time on
the level, generating high XP threats they may well be able to kill
leads to players intentionally scumming the spawns. The OOD monster
listings in branches like Dungeon and Vaults are generally good at
generating worse-than-usual threats for level generation, but generally
had the opposite of the intended anti-scumming effect, since it's very
hard to guarantee that a single monster can't be killed by a lower-level
player.

This commit removes monster spawns in most branches as well as the
turn-based OOD timer. The Abyss and Pandemonium still generate spawns
according to those branches rules. All other connected branches that
previously spawned monsters over time no longer do so except during the
Orb run, where the usual Orb spawns generate.

For monsters that complicate luring, retreating, and general movement
through cleared areas, generating some monsters initially awake can have
the same effect, and that will be addressed in a subsequent commit.
Since spawn removal effectively reduces the number of monsters killed
and hence the amount of XP earned, another subsequent commit will
slightly increase level monster generation.

--------------------------------------------------------------------------------
6b349860cb | gammafunk | 2017-09-05 01:08:45 -0500

Don't try to spawn monsters from stairs
Previously level spawns had to chance to generate near stairs on the
level, with the monster chosen from the list of the destination level.
This would needlessly generate weaker than usual monsters if the
destination level was an earlier one and generate dangerous ones e.g. on
a Lair level with the Slime Pits entrance. Placing out-of-branch and
out-of-depth monsters can more effectively be done at level generation
time through branch entry vaults or other vaults where we can keep the
frequency and types of these non-branch monsters more under control.

The placement of these spawns is also buggy, having been broken for many
years by 033b2f59, which resulted in all PROXIMITY_NEAR_STAIRS spawn
locations not directly on stairs being rejected. Even if this was fixed,
the only behaviour where it would be arguably good is during the Orb
run, since the player is trying to reach these to escape the dungeon.
But these stairs spawns have been mostly non-working for years, and the
current Orb run generates threatening monster placements frequently.

This commit removes the PROXIMITY_NEAR_STAIRS proximity type so that all
spawns generate at random locations, save for Orb spawns which still
have their usual chance to be created near the player.

--------------------------------------------------------------------------------
eb74d0312e | gammafunk | 2017-09-05 01:08:44 -0500

Replace some 0 pointers with nullptr and simplify

--------------------------------------------------------------------------------
5e8393f939 | Neil Moore | 2017-09-04 22:30:23 -0400

Fix one more tiles memory leak.
The only ones remaining, according to a short valgrind run, are
related to SDL_CreateWindow or FT_Load_Glyph (plus a couple buried
inside GL, where I doubt we can get to them).  I don't know SDL
or FreeType well enough to fix those.

--------------------------------------------------------------------------------
788435b1a3 | Neil Moore | 2017-09-04 22:14:16 -0400

Avoid leaking a few regions in TilesFramework::shutdown().
It would be better of course to use unique_ptrs so we can let the
destructor handle it.

--------------------------------------------------------------------------------
0593ebf185 | Neil Moore | 2017-09-04 21:58:40 -0400

Avoid a compile-time warning in TOUCH_UI mode.
We don't goto done in the TOUCH_UI code here, so don't include the
label in that case.

--------------------------------------------------------------------------------
a68f6dfccf | Neil Moore | 2017-09-04 21:58:39 -0400

Make sure options.option_behaviour contents are freed.
We were careful to avoid leaking the GameOptions on every call to
reset_options, but technically we were leaking them once per game.

--------------------------------------------------------------------------------
1d7a8097ce | Neil Moore | 2017-09-04 21:58:39 -0400

Remove an uninitialised memory access in init_mons_spells.
setup_mons_casts calls monster::name indirectory, which eventually looks
at the monster's MID in _mon_special_name.  So make sure to set it.

--------------------------------------------------------------------------------
f6eb2b2725 | Neil Moore | 2017-09-04 21:58:39 -0400

Avoid another useless new in popup-related code.
This one at least had a matching delete.

--------------------------------------------------------------------------------
a5e3c5ff66 | Neil Moore | 2017-09-04 21:58:39 -0400

Fix memory leak in TOUCH_UI popup code.
We were never freeing our MenuEntries.  Do so.

We should really use unique_ptrs in those parts of the menu code that do
need pointers (for run-time polymorphism for example).

--------------------------------------------------------------------------------
d4adca8268 | advil | 2017-09-04 13:27:38 -0400

Don't assume agent is still alive for monster sticky flame
The agent can be killed by sticky flame hitting an intermediate monster
on reaction-type effects, with Usk's pain bond being the obvious one;
the sticky flame then keeps going. An alternative solution might be to
have the sticky flame fade away when the caster dies.

--------------------------------------------------------------------------------
597973d370 | Neil Moore | 2017-09-03 17:01:48 -0400

Better handle Qazlal, scarf, and Cloud Mage cloud immunity.
The version of actor_cloud_immune that took a cloud_type did not check
for those cases.  This affects the self-harm prompt from ignite poison
and the "would do no harm" abort from poisonous vapours: All the other
callers used the cloud_struct version of the function.

Those two callers still don't handle conditional cloud immunity,
like that of Fedhas allies and demonic guardians.

--------------------------------------------------------------------------------
28e858233e | Neil Moore | 2017-09-03 16:45:28 -0400

Improve Ignite Poison prompting (syraine)
It was not checking for Firestarter, and was checking MUT_IGNITE_BLOOD
rather than MUT_FLAME_CLOUD_IMMUNITY.  Fix both of those by deferring to
actor_cloud_immune rather than trying to reimplement a small part of it.

Also, if the player was immune, they would not be prompted about allies.

Also, the player would not be prompted about allies (despite the
existence of code to do the check): The tracers in _ignite_poison_clouds
and _ignite_poison_monsters never reported a negative "value" when the
agent was the player, caring only about ignitability of the square and
the presence of enemies!  Furthermore, a separate bug also prevented
ally prompts when the player was cloud-immune.

Fix both of those issues as well.

--------------------------------------------------------------------------------
2cbab0914e | gammafunk | 2017-09-02 16:56:54 -0500

Fix the overall monster counts in objstat being doubled

--------------------------------------------------------------------------------
c4b6860f38 | gammafunk | 2017-09-02 14:25:12 -0500

Add objstat fields for tracking whether monster are from vaults
Add NumNonVault, NumVault, TotalNonVaultXP, and TotalVaultXP, tracking
those respective numbers for monsters generated by vaults and those
generated directly by the level.

--------------------------------------------------------------------------------
7b8ad69b8d | advil | 2017-09-02 09:45:40 -0400

Add a test that exercises ghost crabs and therefore random summoning
This should head off issues like the one in eb0acef0604d.

--------------------------------------------------------------------------------
eb0acef060 | advil | 2017-09-02 09:15:11 -0400

Don't crash on random monsters
For at least some random monsters, .base_type is left as RANDOM_MONSTER
and the like, which will fail asserts in mons_genus.  I'm not sure of
the subtle differences between cls and base_type, but everything else
that calls mons_genus here uses cls, so maybe it's right.

--------------------------------------------------------------------------------
87df72b646 | Alan Malloy | 2017-09-01 16:50:44 -0700

Check an assumption at compile time
Before we check an array's `[1]` element, we assert that its type says it has 
at least that many elements.
--------------------------------------------------------------------------------
9acaae10f6 | Alan Malloy | 2017-09-01 15:54:27 -0700

util/unbrace

--------------------------------------------------------------------------------
c116c1461b | Alan Malloy | 2017-09-01 15:54:18 -0700

Actually explain code instead of just saying it's a hack

--------------------------------------------------------------------------------
9d9b8e484c | Alan Malloy | 2017-09-01 15:49:10 -0700

Don't crash when looking at a hydra-shaped block of ice (zelig81)

--------------------------------------------------------------------------------
0929f2e806 | Neil Moore | 2017-09-01 16:37:41 -0400

Handle more tiles in tiledef_lint
TILEP_MONS_OLD_*, TILEG_INVOCATIONS_1_*, TILEG_INACTIVE_*, axed
monsters, monsters using dbname: rather than tiles:, and tiles
referenced only in tilemcache.cc.

[skip ci]

--------------------------------------------------------------------------------
d81925bcc5 | Neil Moore | 2017-09-01 16:12:17 -0400

Handle spells and monsters in tiledef_lint.
Now that most of them are specified in {spl,mon}-data.h rather than
tilepick.cc.

[skip ci]

--------------------------------------------------------------------------------
6dad0ceb4a | Neil Moore | 2017-09-01 15:51:14 -0400

Try harder to fix travis BUILD_ALL builds.
SDL *also* requires Xinerama.h.  Use xorg-dev to pull in all the X dev
libraries.

--------------------------------------------------------------------------------
8444625b1e | Neil Moore | 2017-09-01 14:53:59 -0400

Try to fix travis BUILD_ALL builds.
SDL requires Xcursor.h, which was not being pulled in.

--------------------------------------------------------------------------------
358753507c | Chris Campbell | 2017-08-31 20:05:33 +0100

Fix spelling in a trove message

--------------------------------------------------------------------------------
14ccbf3499 | Alan Malloy | 2017-08-30 16:16:07 -0700

Don't let tiles players use god abilities under penance (UsaSatsui)
Fixes https://crawl.develz.org/mantis/view.php?id=11203
--------------------------------------------------------------------------------
58a7c62a01 | Nicholas Feinberg | 2017-08-29 15:45:47 -0700

Brace.

--------------------------------------------------------------------------------
b48fd38146 | Floodkiller | 2017-08-29 15:45:47 -0700

Don't list Chei attribute support for Gnolls (#11183)
Don't list Chei supporting attributes for Gnolls in the god description
screen.

--------------------------------------------------------------------------------
207ae171e1 | gammafunk | 2017-08-27 09:59:34 -0500

Tweak stair placement in a float vault
Center the staircase instead of randomly picking one of four off-center
locations, since this gives more spawn locations for the Shoals merfolk
avatar (which we add in this commit) and looks better as well.

--------------------------------------------------------------------------------
c774ea6cbb | gammafunk | 2017-08-27 09:59:34 -0500

A crab-themed vault in collaboration with mikee
A runed door float vault that features a deadly spiral progression of
crabs, starting with fire crabs, then ghost crabs, and finally an
apocalypse crab guarding a pile of loot. Earliest placement is in
mid-Lair, but also places in late Dungeon, Depths, Swamp, and Zot, with
crab types upgraded as appropriate and with upgraded numbers of crabs
and loot in Zot.

--------------------------------------------------------------------------------
812f45e532 | Alan Malloy | 2017-08-26 23:11:26 -0700

Fix incorrect docstring on update_monster

--------------------------------------------------------------------------------
bd5500b1d6 | jmbjr | 2017-08-26 23:09:33 -0700

Properly update shafted and banished monster timed-effects (PleasingFungus, 
#10971) (#601)
We now simulate time passing for monsters who were shafted or banished away 
from the player's floor.
--------------------------------------------------------------------------------
fe971b92f4 | Alan Malloy | 2017-08-23 14:30:40 -0700

Fix order of field initializers (-Wreorder)

--------------------------------------------------------------------------------
b89990dbf1 | Alan Malloy | 2017-08-23 14:13:16 -0700

Make follower::place return the placed monster
This avoids having to do silly stuff like look the monster up in
the monster list after placing it.

--------------------------------------------------------------------------------
7a3ad04248 | gammafunk | 2017-08-23 12:53:58 -0500

Actually add the xp-tracking-type.h header (doh)

--------------------------------------------------------------------------------
8aba26b1e2 | gammafunk | 2017-08-23 12:16:53 -0500

Don't track Orb spawns as generated monsters in xp_by_level (elliptic)
The previous logic tried to use a boolean to track whether a monster was
a spawn or not, but this didn't allow us to omit Orb spawns from the
counting. We now use an enum to describe xp tracking and have Orb spawns
use and "untracked" state.

This adds some more save compat to handle proper monster marshalling.
Monsters from saves before the earlier TAG_MINOR_LEVEL_XP_INFO tag now
will simply be untracked instead of simply counted as generated
monsters, since we have no way of telling spawn vs generated vs orb
spawn.

--------------------------------------------------------------------------------
3eb6d3667b | gammafunk | 2017-08-23 11:51:08 -0500

Add an xp_tracking_type enum
Add a source header and necessary includes. This will allow proper
tacking logic for the xp_by_level dump table.

--------------------------------------------------------------------------------
6d3fd91c97 | Alan Malloy | 2017-08-22 12:41:43 -0700

Remove a bunch of #if 0 clauses
Mostly these were many-years-old TODOs that never got done,
or some debugging code meant to be toggled by editing the source.
The former are never going to get done, and the latter are doing
things the wrong way: they should use some debug variable, if they
are important toggles to keep. But I think they're not important, and
the authors of these debug options have moved on, so away goes the
dead code. If you miss any of these badly, feel free to add them back
in controlled by a flag.

I left in two #if 0 clauses that looked like they might be valuable
someday:

- One in dbg-asrt.cc representing partial work towards a solution of
  a difficult problem (better ASSERTs on Windows tiles) that someone
  with more expertise in the right area could pick up someday.
- One in fontwrapper-ft.cc that enabled some detailed debug logging
  for font rendering in tiles. This one looks better than most for
  being converted into a proper flag-toggled log macro.

--------------------------------------------------------------------------------
0631661761 | Alan Malloy | 2017-08-21 17:07:09 -0700

Update a hints-mode message

--------------------------------------------------------------------------------
0862e88f16 | Neil Moore | 2017-08-21 19:23:10 -0400

Fix NaN-stripping in chardump tables.
We converted the word "nan" to "N/A", but also needed to handle "-nan",
which is important since x86 floating point sets the sign bit on
indefinite NaNs.

Also handle the MSVC string representations of indefinite NaN, "1#IND"
and "-1#IND". I wasn't able to test whether we might also see "1#QNAN":
See https://blogs.msdn.microsoft.com/oldnewthing/20130221-00/?p=5183 .

--------------------------------------------------------------------------------
ae198adf04 | Alan Malloy | 2017-08-21 14:27:39 -0700

Simplify code for making mimics cackle
A huge chunk of it is defending against _laughs_ not being in monspeak.txt,
which is not a very likely scenario. Even if that did happen, the only
consequence of removing this extra logic is displaying a worse string
to the user (not a segfault or a machanics change).

I think it's better to have the simpler code than to defend against
a scenario that won't happen (it's under our control) and wouldn't be a
big deal if it did.

--------------------------------------------------------------------------------
1ea99b4300 | Neil Moore | 2017-08-21 16:52:37 -0400

Don't break when wrapping indented too-long first words.
If the line began with indentation, and the indentation plus first word
were longer than the wrapping length, we would put the indentation into
the result string.  This had two problems:

  1. (minor) We ended up with a blank or empty line containing only the
     indentation.

  2. (major) If indent == true, we added the indentation back into the
     input (remaining) string, meaning the input string was unchanged.
     But in the usual use case of calling wordwrap_line in a loop until
     the string is empty, that causes an infinite loop.  This could be
     seen in the xp_by_level table prior to 0.21-a0-211-gdd1ebd0.

Fix this by refusing to backtrack into space that precedes the first
non-space character.  Also add an assert that the remaining string is
shorter than the original input, and another assert that we aren't
asking to break at column 0.

If the indentation itself is too wide, we still end up with a blank
line.  Don't even bother re-adding the indentation in that case, also to
avoid an infinite loop.

--------------------------------------------------------------------------------
dd1ebd0fd3 | gammafunk | 2017-08-21 15:04:59 -0500

Decrease the width of the xp_by_level morgue table
This table is over 80 characters long, and due to a bug in the morgue
display code, trying to display this in-game causes a crash. The table
doesn't need as much padding as it currently has, so decrease this. The
relevant display code will be fixed in a subsequent commit.

--------------------------------------------------------------------------------
bfa5647dee | gammafunk | 2017-08-20 12:47:28 -0500

Fix turn tracking for turns_by_place and xp_by_level dump tables
The turns were being tracked at the end of the input loop, but this lead
wildly innacurate turn reporting due to the complicated relationship
between the input cycle and world reaction. Move this accounting to
where the game's turncount is actually incremented, as this is
guaranteed to be when the turn actually changes.

--------------------------------------------------------------------------------
b77565a160 | gammafunk | 2017-08-20 12:47:28 -0500

Save compat for LevelXPInfo tracking

--------------------------------------------------------------------------------
9cb1729a33 | gammafunk | 2017-08-20 12:47:27 -0500

An xp_by_level XP tracking table for morgues
This commit adds a dump table called "xp_by_level" which shows, for each
level,  the XP gained by the player from generated monsters and level
spawns, the percentage of total XP that comes from spawns, counts of
monsters killed of these categories, the proportion of these counts that
were spawns, and finally the turns spent on the level. Here "generated"
refers to monsters that were created upon level creation, as opposed to
spawns which get created over time as the player is on the level. This
table does not include spawns generated by the Orb, but spawns generated
in the Abyss or in other disconnected branches without the Orb are
counted.

This information will be useful as we look into overhauling the monster
spawn system, since we currently don't have a good way to see what
proportion of XP comes from generated vs spawned monsters. I am enabling
this table by default in morgues for the time being so that we can get
some statistics from online games.

--------------------------------------------------------------------------------
4a9efaf006 | Neil Moore | 2017-08-19 18:46:21 -0400

Remove unused descriptions.
Cutlass, Turn Visible ability, and short-range portal.

[skip ci]

--------------------------------------------------------------------------------
7d95abb50f | Neil Moore | 2017-08-19 18:46:21 -0400

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
e9f4a5387f | Chris Campbell | 2017-08-19 21:07:42 +0100

Improve some berserk checks

--------------------------------------------------------------------------------
e2129aebca | Alex Jurkiewicz | 2017-08-19 20:23:13 +0100

Gozag: don't offer useless haste/berserk in petition
This change was inspired by the request here:
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=23992

Since even gods cannot override racial restrictions against berserk
(undead, formicid) or haste (formicid), don't let Gozag offer these
potions to ineligible species. Previously, the effects would be added to
offered potions but have no effect (except increasing the potion cost).

This makes offered potions slightly better on average for affected
species.

[MarvinPA: amended slightly from the PR to only block berserk rage for species
where it's always useless, instead of checking temporary statuses that can
prevent berserk. Should really have a cleaner check rather than partially
duplicating the is_useless_item handling, though. Closes #575.]

--------------------------------------------------------------------------------
b066a6e362 | Chris Campbell | 2017-08-18 17:28:18 +0100

Fix Passwall uselessness message (#11185)

--------------------------------------------------------------------------------
adde2336ac | Chris Campbell | 2017-08-18 17:28:18 +0100

Mark !degeneration as useless for gnolls (#11186)

--------------------------------------------------------------------------------
8501b10109 | Benoit Giannangeli | 2017-08-16 10:50:00 -0700

Several arrival vaults

--------------------------------------------------------------------------------
b89f83b065 | Alan Malloy | 2017-08-15 13:30:25 -0700

Globally replace s == "" with s.empty()
It's the standard C++ style.

--------------------------------------------------------------------------------
94b3988db2 | Alan Malloy | 2017-08-15 13:30:25 -0700

Factor out some repeated map-building logic

--------------------------------------------------------------------------------
e013ddc241 | Alan Malloy | 2017-08-15 13:30:25 -0700

Use an rvalue reference to avoid some pointless copies

--------------------------------------------------------------------------------
68382d67e9 | Alan Malloy | 2017-08-15 13:30:25 -0700

Fix a misplaced semicolon

--------------------------------------------------------------------------------
6a663c0584 | Jared Miller | 2017-08-14 15:58:01 -0700

Toggle setting for modifier prefix keys / and *
A new setting is introduced called `use_modifier_prefix_keys` that
enables and disables '/' behaving as SHIFT and '*' as CTRL.

It's set to true by default.

--------------------------------------------------------------------------------
c079aeec10 | John Boyle | 2017-08-14 10:05:18 -0700

Fix some spell highlighting

--------------------------------------------------------------------------------
8a2c2cdf88 | John Boyle | 2017-08-14 09:58:10 -0700

Make Dith hate ALL fire spells (bepbepimjep, #10969)

--------------------------------------------------------------------------------
085b6a0353 | Neil Moore | 2017-08-13 11:11:16 -0400

Remove several decor vaults.
We aren't going to "take back" these symbols. They symbolise real hurt for
real people, and have no place in Crawl.

--------------------------------------------------------------------------------
19e426f142 | gammafunk | 2017-08-13 09:16:08 -0500

Adjustments to a float vault
Some changes nzn_random_ring. These are largely small changes but should
help make the vault a more effective (and rewarding) challenge:

* Remove no_item_gen tag.

* Randomize numbers of monsters, keeping the average number in line with
  the previous numbers.

* Don't thin out either loot or trap placement so much, since we're not
  placing many of either and the monster count doesn't change much with
  depth increases.

* Don't place loot/traps on specific "routes" through the vault, instead
  randomizing by area.

* Don't block half of the vault with deep water or lava, since this tend
  to simply make the vault easier by stranding non-flying monsters.

* Rework statue placement so that any statue monsters are placed in more
  effective positions and any stone statues don't create choke points.

* Make wall randomization use contiguous walls, randomizing each "shell"
  instead of putting a smattering of different wall types in every shell.

* Refactor glyph usage and simplify some syntax.

--------------------------------------------------------------------------------
913a6fd6f8 | gammafunk | 2017-08-13 09:16:08 -0500

Clean up water placement in a float vault
When placing nzn_motion_control in shoals, don't ever place the merfolk
avatar directly next to the upstairs. Also some minor cleanups to SUBST.

--------------------------------------------------------------------------------
e734bafa13 | nikheizen | 2017-08-13 08:56:07 -0500

Two float vaults
nzn_motion_control
Plays off of two strong monsters (manticore and catoblepas) which
restrict movement: one with a cost for not moving, one with a cost
for moving. Sometimes spawns in Shoals with an avatar for extra fun.

nzn_random_ring
A highly randomized vault with an altar and a stairs(or shaft) at the
center. It contains several traps, and likely some tough enemies. May
also contain some decent loot!

--------------------------------------------------------------------------------
42dbe81ae6 | gammafunk | 2017-08-13 08:56:07 -0500

Adjust tags and syntax in some arrival vaults
A bunch of arrival vaults had no_trap_gen for no particular reason. Add
no_monster_gen to one vault and simplify syntax in another.

TODO: Most of these tags should probably be handled in a common setup
function so that vaults don't tend to randomly not have e.g.
no_monster_gen. That tag in particular may not actually be necessary for
arrival vaults, since monsters already don't generate in starting LOS.

--------------------------------------------------------------------------------
b1c986f1f6 | gammafunk | 2017-08-13 08:56:07 -0500

Touch up a vault and simplify its glyph usage

--------------------------------------------------------------------------------
cb95bf96b2 | nikheizen | 2017-08-13 07:57:30 -0500

Four simple arrival vaults

--------------------------------------------------------------------------------
02e8684283 | Alan Malloy | 2017-08-12 19:06:19 +0000

Bring INSTALL instuctions in sync with themselves

--------------------------------------------------------------------------------
3a6ed1e45e | Alan Malloy | 2017-08-11 10:23:04 -0700

Improve notes for finding unrand items (aolowin)
Add a new note type for unrands, and use it for all unrands.

--------------------------------------------------------------------------------
9126a742cc | Alan Malloy | 2017-08-10 11:45:51 -0700

Fix whitespace

--------------------------------------------------------------------------------
4333fbb468 | Alan Malloy | 2017-08-10 11:45:50 -0700

Use hex literals for octorings, since we use it as a mask

--------------------------------------------------------------------------------
1756668458 | John Boyle | 2017-08-10 10:18:36 -0700

Adjust spell memorisation warn priority (damerell, #11169)
This update always makes hated or loathed spells show up red in the
memorisation menu and always provides a warning message if the user
tries to memorise these spells.

Add a special message for Trog and adjust relative message priority.

Previously, the memorisation screen would prioritise "not enough spell
levels" over "divinely forbidden or hated". So if you worshiped Yred and
didn't have enough spell levels for Statue Form, it would show up as
gray, until you finally had enough levels, at which point it would
finally show up as red.

Similarly, after selecting the spell for memorisation, there were no
additional warning messages reminding the user that their god didn't
like the spell. Now there's a red warning message.

--------------------------------------------------------------------------------
586d7bbd24 | Neil Moore | 2017-08-10 10:25:56 -0400

Fix a comment (doh)
[skip ci]

--------------------------------------------------------------------------------
8038219572 | Neil Moore | 2017-08-10 10:14:18 -0400

Don't merge shop and non-shop ammo in stash search (shmup)
As a side effect, this changes the behaviour of sort-by-name, making
shop items follow non-shop items that have the same qualname.

--------------------------------------------------------------------------------
d2bfb5fa0b | Alan Malloy | 2017-08-09 16:02:25 -0700

Simplify some expressions in skills.cc

--------------------------------------------------------------------------------
0b87683b65 | gammafunk | 2017-08-08 11:46:17 -0500

Document and reindent a shallow water travel condition
Explain why travel through shallow water is not penalized for some
aquatic/amphibious species.

--------------------------------------------------------------------------------
5fa6cc7f67 | cut1less | 2017-08-08 11:45:27 -0500

Let shallow water be like floors for water species
...for autoexplore/autotravel purposes. Merfolk are excluded, since they
likely won't want to go through leg transformations except for when the
travel formula deems optimal.

Committer's Note: Closes #556.

--------------------------------------------------------------------------------
b3d4b37311 | Neil Moore | 2017-08-07 22:55:03 -0400

Update monster swift and corroded icons (Ultraviolent4, #11177, #11178)

--------------------------------------------------------------------------------
25c56e7de9 | Neil Moore | 2017-08-07 22:45:47 -0400

Improve that mailmap entry by rewriting the email address as well.
[skip ci]

--------------------------------------------------------------------------------
0273943fec | Neil Moore | 2017-08-07 22:41:39 -0400

Add an old email address for alexjurkiewicz.
[skip ci]

--------------------------------------------------------------------------------
99db44becc | Neil Moore | 2017-08-07 01:38:24 -0400

Ignore the Mac terminal profile in checkwhite.
Since it contains tabs and isn't usually edited by hand.

(skip ci)

--------------------------------------------------------------------------------
bca40f30b4 | Neil Moore | 2017-08-07 01:34:22 -0400

Don't infinite-loop when exploring hits a runed door (#11174).
Hitting a runed door results in find_travel_pos returning (0, 0), just
like greedily exploring into an item. But that caused us to go into a
loop doing CMD_INSPECT_FLOOR and continuing the exploration. Instead,
detect in _get_non_move_command() when this happens and return
CMD_NO_CMD instead of CMD_INSPECT_FLOOR, stopping exploration.

--------------------------------------------------------------------------------
0f4a3b61c6 | gammafunk | 2017-08-06 04:18:14 -0500

Move a vault from Depths to late Dungeon (mikee)
Mikee still hates you, and wants you to actually have a remote chance to
die in his vault. This vault was moved to Depths from mid dungeon when
Depths was created, but characters capable of surviving in Depths will
find this vault very trivial. D:13-15 is a good home for it, since it's
a runed door vault that's easy to survive even after opening the door
and is only dangerous when you decide to go for the loot.

--------------------------------------------------------------------------------
0398fc98ae | Chris Campbell | 2017-08-05 23:26:15 +0100

Merge pull request #584 from shmup/master
Use consistent wording on cards
--------------------------------------------------------------------------------
9838b1ca09 | Chris Campbell | 2017-08-05 23:23:01 +0100

Adjust potions of mutation
Make them rarer, and reduce the number of mutations removed from 2-6 to 2-4.

Closes #579 PR (and see also the discussion on #563).

--------------------------------------------------------------------------------
b3930bd4f9 | Chris Campbell | 2017-08-05 23:21:20 +0100

Fix Vehumet enhancing the range of evoked spells (#11168)

--------------------------------------------------------------------------------
9610e65fbf | Chris Campbell | 2017-08-05 23:07:20 +0100

Adjust a wrath message

--------------------------------------------------------------------------------
58e633fd07 | Chris Campbell | 2017-08-05 23:07:20 +0100

Adjust Revivification spell description

--------------------------------------------------------------------------------
4aaa757894 | advil | 2017-08-05 11:28:31 -0400

Add a command to temporarily suppress wiz/debug mode for UI testing
Does not save.  This doesn't get all aspects of debug output,
particularly where they are triggered with just an #ifdef, but it
suppresses wizmode hud changes, dprfs, and some key description stuff
relevant for a wip.

--------------------------------------------------------------------------------
1f5fe709b9 | Jared Miller | 2017-08-05 10:59:38 -0400

Use consistent wording on cards

--------------------------------------------------------------------------------
3aa3f5dc57 | gammafunk | 2017-08-04 01:48:30 -0500

Fix glyph usage in a vault (alexjurkiewicz, minmay)
This was using an undefined monster list glyph instead of the glyph for
a plant, which effectively placed additional normal level monsters (many
adjacent to the stairs) that were not intended.

Closes #577.

--------------------------------------------------------------------------------
12d3df0a6a | gammafunk | 2017-08-04 00:55:32 -0500

Remove an unused variable

--------------------------------------------------------------------------------
ad606a6df3 | gammafunk | 2017-08-04 00:06:19 -0500

WebTiles support for monster corrosion and swiftness icons

--------------------------------------------------------------------------------
521290c9a4 | Alex Jurkiewicz | 2017-08-04 00:05:56 -0500

Improve tile_flags alignment
Committer's Note: Closes #580.

--------------------------------------------------------------------------------
286e31c582 | Alex Jurkiewicz | 2017-08-03 22:27:18 -0500

Add a tiles icon for monster swift status
Committer's Note: Displayed when monsters have swift status for fast
movement e.g. when alligators use their sprint ability.

--------------------------------------------------------------------------------
2b035f28a4 | Alex Jurkiewicz | 2017-08-03 22:27:17 -0500

Add a tiles icon for monster corrosion
Committer's Note: Displayed when monsters become corroded.

--------------------------------------------------------------------------------
b89e0e2f94 | Corin Buchanan-Howland | 2017-08-03 21:17:52 -0400

Remove a mistaken copy-paste (|amethyst)

--------------------------------------------------------------------------------
77413b7de0 | gammafunk | 2017-08-03 10:18:11 -0500

Fix autoexplore not starting properly under some conditions (#11159)
Broken in dd972a7a, autoexplore would automatically stop running in some
cases where it should be sending the command to inspect the floor.

Fix the function that determines non-move actions so that it properly
handles autoexplore. Refactor run mode and other state changes out of
this function, allowing them to happen in the caller, so the logic is
cleaner.

--------------------------------------------------------------------------------
b8a8bae610 | gammafunk | 2017-08-02 04:29:05 -0500

Tweak the layout of a abyssal rune vault
This vault previously had each chamber leading to a distinct section at
the end of the vault, one containing the rune and one containing the
exit transporter and a powerful monster. This tended to be a bit
confusing to the player if they reached the transporter first, since
they might think the transporter will take them over to the rune area,
which was visible from the transporter. Additionally even if the player
randomly chose the chamber leading to the rune, they could avoid the
transporter guardian by possibly using an exit that appeared in the
vault if they killed enough monsters, by resting until the abyss shifted
them, or by simply reading a teleport scroll, thus avoiding monsters in
the other chamber and the transporter guardian.

This commit reworks the vault to have both chambers lead to the
rune/exit area, making it harder to avoid monsters in either chamber or
the transporter guardian, but still allowing the transporter to be used
for escape. It also adds a apport-blocking wall to the room holding the
rune that works even if doors are opened by monsters.

--------------------------------------------------------------------------------
b5400c98a7 | gammafunk | 2017-08-01 17:41:01 -0500

Fix transporter placement in an abyssal rune vault (advil)

--------------------------------------------------------------------------------
78480dfa2a | advil | 2017-07-30 14:15:42 +0200

Fix conditions under which shop contents are included in search (bel)
Shop contents will now always be shown unless `shop` appears in the
search, and the relevant items don't otherwise match. This commit in
particular fixes `.` and `..`, which (because when interpreted as
regexes match `shop`) were not showing shop items.

--------------------------------------------------------------------------------
1393dd0660 | advil | 2017-07-30 13:48:32 +0200

checkwhite / unbrace

--------------------------------------------------------------------------------
a4fe5636bb | gammafunk | 2017-07-29 17:44:29 -0500

Improve visibility into a Trog-themed transporter vault (EMTedronai)
Previously the vault emtedronai_trogs_sanctum only revealed one side of
the vault, which didn't include the transporter destination. This
version adds another level-connected side to the vault with transparent
stone to reveal that destination and moves the transporter to this side.

--------------------------------------------------------------------------------
c243083e73 | gammafunk | 2017-07-25 22:27:09 -0500

Update the lightning rod description

--------------------------------------------------------------------------------
cbbc58b84a | gammafunk | 2017-07-25 22:19:46 -0500

Don't reset lightning rod power charge as long as uses are consecutive
Previously when the power charge reached 4 (after 4 turns of consecutive
usage), the charge reset to 0 on the next lightning rod usage even if it
was consecutive. This commit simply caps the charge increase at 4, only
resetting it when a turn is spent not using the lightning rod. This is
only relevant when killing enough monsters with the rod to regain a
usage charge and hence allow more than 4 consecutive uses, but this is
possible when killing monsters  worth a lot of XP.

TODO: Implement UI like for Searing ray depicting the lightning charge
state with a + for each charge level that is reset when a turn is spent
not evoking the lightning rod.

--------------------------------------------------------------------------------
dcd0815322 | gammafunk | 2017-07-25 21:32:54 -0500

Don't reset lightning rod charge power when recharging in wizard mode
This variable no longer tracks usage charges, just charge power, so
don't reset it.

--------------------------------------------------------------------------------
aca784626a | gammafunk | 2017-07-25 21:31:55 -0500

Use key variables to look up lightnind rod properties

--------------------------------------------------------------------------------
612aa8a032 | gammafunk | 2017-07-25 03:55:20 -0500

Save compat for the lightning rod recharging change
When loading old saves that have lightning rod charges used but with
some charges remaining, set XP debt based on the number of charges used
so players don't get free charges.

--------------------------------------------------------------------------------
fc1d82216b | gammafunk | 2017-07-25 03:53:19 -0500

Give lightning rods a power bonus only for continuous fire
Having used charges now only confers an increasing power bonus when the
previous turn was also spent using a lightning rod. Before this commit,
the power bonus was conferred regardless of what had been done on the
previous turn, since usage charges and charge power were tracked in the
same player property.

--------------------------------------------------------------------------------
7fa0e82798 | gammafunk | 2017-07-25 03:46:00 -0500

Allow lightning rods to get XP recharge when partially used
Previously the lightning rod couldn't recharge unless it was fully used,
which is awkward gameplay-wise, since it might encourage players to
waste a shot so they could begin recharging and receive many more
charges. This commit reworks the charging mechanic so that lightning
rods are always recharging when they have charges used.

This commit refactors XP evoker charging to allow for different evoker
types to have different XP "debt" with each use and for then tracking
the available number of charges based on how much XP debt there is. All
XP evokers except lightning rod still have a max charge of 1 and set
their old XP debt value when used, but now the lightning rod sets a
smaller value for each use, increasing XP debt to a maximum of four
times this value.

--------------------------------------------------------------------------------
1ab7d47c52 | gammafunk | 2017-07-23 21:54:53 -0500

Add a travel color option to reduce console map ambiguity (8471)
Previously, squares that were safely traversable but forbidden from
travel received the same console map color as dangerous squares. This
meant that when shallow water was added to the travel_avoid_terrain
option, shallow water was rendered the same as deep water (and lava) in
the map. This made the map much less useful in branches like Swamp and
Shoals.

This commit adds a tc_forbidden option defaulting to a color value of
light cyan and uses this for all squares that are forbidden by travel
but otherwise safely traversable, leaving dangerous squares as cyan.
Hence shallow water will always be distinguishable from deep water in
the console map by default.

--------------------------------------------------------------------------------
dd972a7a06 | gammafunk | 2017-07-20 23:44:17 -0500

Allow travel to work through explored transporters
With this commit, players can target squares on the other side of
explored transporters and travel will enter transporters as necessary to
reach the given squares without interruption. Previously travel had to
be done by targeting the transporter itself and entering manually.

TODO:
It would be nice to extend the emphasis functionality to allow showing
transporters whose destinations were known but which had never been
visited. This would let us to automatically add the transporter
destination knowledge to the travel cache when a transporter's landing
site first came into LOS, allowing a player to verify exactly where a
transporter takes them if they wish.

We could additionally allow travel to a square behind a transporter that
had never been taken (but for which the destination was known) to take
the player all the way to the transporter itself but not enter. This is
the way runed doors behave, but currently transporters only have two
states in the travel cache, known and unknown. Additionally the map
emphasis code only allows for emphasised and unemphasised, and "known
destination, but never visited" would need to be an intermediate state
between "transporter with unseen landing site" and "transporter that has
been entered at least once".

--------------------------------------------------------------------------------
31ae3e2c49 | gammafunk | 2017-07-20 22:53:55 -0500

Add a transporter destination retrieval function

--------------------------------------------------------------------------------
479285b4ad | Chloe Kudryavtsev | 2017-07-19 03:41:08 +0200

Fix various typos in jewellery hints (fixes #571)
Fixes:
- Repeated "a"
- Missing `</w`, which broke coloring.

--------------------------------------------------------------------------------
5c9a5ea8dc | gammafunk | 2017-07-18 20:38:18 -0500

Merge pull request #578 from Floodkiller/gnoll_remove_warnings
Squelch Chei 'lowering attributes' after piety loss for Gnolls (mibe)
--------------------------------------------------------------------------------
2ae54cb451 | Floodkiller | 2017-07-18 20:29:21 -0500

Squelch Chei 'lowering attributes' after piety loss for Gnolls (mibe)
The messages for gaining attributes from initially joining Chei or gaining
piety were already squelched, but the message for losing attributes from
losing piety was not.

--------------------------------------------------------------------------------
951aa027d3 | gammafunk | 2017-07-17 18:57:53 -0500

Merge pull request #574 from Floodkiller/gnoll_remove_warnings
Don't warn for stat zero from changing items on Gnolls (11151)
--------------------------------------------------------------------------------
2b0f7a46a2 | Floodkiller | 2017-07-17 18:32:21 -0500

Don't warn for stat zero from changing items on Gnolls (11151)
Gnolls can't have their stats modified by items, so it makes no sense to
warn them about reaching stat zero if they equip/unequip items that change
their stats.

--------------------------------------------------------------------------------
8dc100cd34 | Corin Buchanan-Howland | 2017-07-17 06:31:00 -0400

Fix broken check for removing +Invis items while invis.
My initial verison of this would warn the user when using any item while under
evokable invisibility. Oops.

--------------------------------------------------------------------------------
bd4fc7f54e | gammafunk | 2017-07-17 05:28:46 -0500

Don't crash by attempting to heal stat loss on Gnolls
Gnolls that had stat loss and transferred their games in trunk would
crash due to attempted stat loss recovery when gaining sufficient XP.
This commit zeros the attribute and prevents any recovery attempt when
XP is gained.

--------------------------------------------------------------------------------
f55ed5b6a1 | gammafunk | 2017-07-17 00:41:24 -0500

Properly set Gnoll stats and remove stat drain when loading saves
Previously gnolls started before the stat lock was added would retain
their stats and stat loss after the game transfered. This commit sets
all stats to 7/7/7 and all stat drain to 0 for affected saves.

--------------------------------------------------------------------------------
076efafe94 | gammafunk | 2017-07-16 18:51:53 -0500

Remove indent from stat gain notification code

--------------------------------------------------------------------------------
289f66d320 | gammafunk | 2017-07-16 18:51:52 -0500

Slightly refactor a stat gain function (|amethyst)

--------------------------------------------------------------------------------
f0fb5d998b | Floodkiller | 2017-07-16 16:36:35 -0500

Raise Gnoll statline from 5/5/5 to 7/7/7
After further playtesting, 5 int was too harsh of a start for backgrounds
that rely on damage spells for killing enemies at game start. Even though
they had enough skill to have a low spell failure rate, their starting
spellpower was worse than every other species with the same background
(even if they may have more MP). Fighters were also encouraged to
downgrade their scale mail as fast as possible in order to be able to hit
things in melee.

--------------------------------------------------------------------------------
0124229c83 | Floodkiller | 2017-07-16 16:36:35 -0500

Replace Gnoll aptitude mechanic with locked stats
This commit removes the Gnoll aptitude system in order to replace it with
a different main feature: locked, low stats.

This version of Gnoll has +3 in every aptitude at all skill levels, unlike
the previous system which reduced the effective aptitude as more skill
levels were gained.  In order to compensate, Gnolls have a base stat line
of 5 Str/5 Int/5 Dex. Additionally, these stats cannot be changed by any
source, temporary or permanent. For example, Gnolls cannot gain stats
from backgrounds, potions of might/brilliance/agility, Cheibriados, or
changing forms. Likewise, they cannot lose stats from stat drain or have
their stats shifted by Jiyva. This is an alternative approach to
encouraging adaptability and flexibility through being a generalist over a
specialist.

Balancing mechanics from previous iterations of Gnoll (like lower MR
growth) have been temporarily reverted to start balance testing from a
clean slate. They may be re-introduced at a later time if necessary or
interesting.

--------------------------------------------------------------------------------
f2b353c23d | Corin Buchanan-Howland | 2017-07-15 18:10:45 -0400

Make removing a cloak of invis instantly de-invis you (minmay)
Instead of a 1-turn lag on the actual removal of the status.

--------------------------------------------------------------------------------
329daca0a1 | Corin Buchanan-Howland | 2017-07-15 17:12:45 -0400

Increase contam from unequipping an item that's granting you invis (Siegurt)
Technically it was still optimal to unequip invis items and then reequip them
to limit the time spent resting off contam. This change makes it always a bad
idea. It also adds a warning message when you try to take this action.

--------------------------------------------------------------------------------
1d32bfb9b6 | Corin Buchanan-Howland | 2017-07-15 12:47:25 -0400

Allow poisonous vapours to target spaces that might have monsters (Siegurt)
You can now cast this spell on any space, but if there is no monster there
it will fizzle, much as Airstrike does.

--------------------------------------------------------------------------------
b00622442c | advil | 2017-07-13 11:49:54 -0400

Make a constant bool explicit (and change its value)
As far as I can tell these never get used (either in c++ or in lua), so
this change doesn't matter a lot, but this quiets a mingw warning.
`false` seemed to make more sense to me than the previously implicit
`true`, but for exporting to lua purposes, if these functions & values
were to ever get used, I think it could make more sense to set this case
somehow to nil, perhaps switching to maybe_bool in the c++ code.

--------------------------------------------------------------------------------
af085ce007 | advil | 2017-07-13 11:46:10 -0400

Don't crash on --builddb for tiles builds
Because the validation code calls all vault epilogues and preambles,
this was triggering tutorial_msg for the tutorial vaults which
eventually triggers runrest::stop, which assumes that `tiles` exists.
This commit is a quick fix that prevents this from happening, there may
be more sensible refactorings.

--------------------------------------------------------------------------------
7964f6f82f | advil | 2017-07-13 10:09:10 -0400

Rename a local tiles enum to something more specific
In hopes of fixing the msys build (but also, these names were quite
misleading without a build target qualifier anyways).  I started to do
this as an enum class but c++ makes enum class bitfields fairly insane.

Also a few other formatting cleanups here.

--------------------------------------------------------------------------------
43b3ea631c | advil | 2017-07-11 18:20:48 -0400

An attempt to update the MSVC project
[skip ci]

--------------------------------------------------------------------------------
4dad3554f6 | advil | 2017-07-11 18:20:47 -0400

Use a different strategy for `flash_monster_colour`
This just makes it do nothing in local tiles; previously it was ifdef'd
to not exist.

--------------------------------------------------------------------------------
7f6a83f035 | advil | 2017-07-11 18:20:47 -0400

Another batch of removing/relocating ifdefs from .h files
These are more minor ones than previous commits.

--------------------------------------------------------------------------------
868a11d9fd | advil | 2017-07-11 18:20:47 -0400

Remove an old function definition

--------------------------------------------------------------------------------
66b5d33842 | advil | 2017-07-11 18:20:47 -0400

Relocate an ifdef'd function from view.h to tiles-build-specific.h
Also add a few TODO comments for commonly-included files with ifdefs
that are less simple to resolve.

--------------------------------------------------------------------------------
9766c24e72 | advil | 2017-07-11 18:20:47 -0400

Remove an ifdef in message.h

--------------------------------------------------------------------------------
d2ad50005d | advil | 2017-07-11 18:20:47 -0400

Remove some tiles-related ifdefs from state.h
No reason to conditionalize these.

--------------------------------------------------------------------------------
8779768f02 | advil | 2017-07-11 18:20:47 -0400

Factor tile-related #ifdefs out of AppHdr.h
Tiles-related headers are factored into `tiles.h`, which is loaded for
everything, and is still in AppHdr.h, and `tiles-build-specific.h` which
is supposed to contain everything that is #ifdef'd.  This removes some
unnecessary ifdefs, and cleans up the is_tiles function a bit.  It also
entirely removes libgui.h (fulfilling an ancient todo note from enne).
At this point libunix.h and libw32c.h are also rather vestigial, but
I've left them for now.

This change improves my ccache hit rate from 0 to 13% for console to tiles
building, and 17% for webtiles, which is something (though not a lot).

--------------------------------------------------------------------------------
8b8554994a | advil | 2017-07-11 18:20:47 -0400

Pull a tiles dependency out of player.h
The end goal is eliminating unnecessary #ifdefs in header files very
commonly included.  This commit is a quick fix: better long-run
solutions include refactoring player_save_info so that the doll
information simply isn't part of it, or changing things so that the doll
information is loaded in non-tiles builds.

--------------------------------------------------------------------------------
6841d05e47 | advil | 2017-07-11 13:28:12 -0400

Single-threaded db init (5354)
On examination, I think there's no real reason for this to be
multithreaded in the first place.  Relative to des regeneration (which
isn't threaded), db regeneration/loading is quite fast, and I didn't see
a major time savings either way even for just db initialization.

For the record, I'm 80% sure that the sporadic db init bugs that led to
2e1702711870 and d00fd6f4884f were caused by the following: crawl would
spawn multiple threads even if sqlite was configured or if databases
were opened in single threading mode, in which case there was of course
no thread safety.  The code that opened the database was also entirely
implicit about which threading mode to use.  By forcing single-threading
mode in sqlite I could replicate the exact reported behavior (random
failures to build the db about 20% of the time) on my OS X build, so I
suspect that the problem may have been caused by people accidentally
linking against a sqlite version that had single threading by default.

If anyone ever wants to resurrect a multi-threaded version of this, I
recommend explicitly doing something like:
`sqlite3_config(SQLITE_CONFIG_SERIALIZED);` before spawning any threads.
There's an equivalent parameter you can pass when opening a database, as
well.

--------------------------------------------------------------------------------
d00fd6f488 | advil | 2017-07-11 09:13:12 -0400

Disable multithreaded db init for linux (5354, elliptic, nofelis)
This is a bit silly and possibly the whole multithreading thing should
be removed, but it *does* work on os x, and I don't know enough about
how database.cc works to do that cleanly right now.

--------------------------------------------------------------------------------
52d281702d | advil | 2017-07-10 15:49:20 -0400

Don't allow non-inventory items to be auto-assigned item slots
This was leading to unpredictable results on newly identified floor
items (mainly reading scrolls) because item.link is used for other
things when an item is not in your inventory; with an empty pile aside
from the read item it's a guaranteed crash.

(Remaining issue: if you read-id a floor item that has instances in your
inventory, they won't get moved. Before they would occasionally get
moved by accident.)

--------------------------------------------------------------------------------
8e1637b81c | kenranunderscore | 2017-07-06 16:20:06 +0200

Stop diagonal running when encountering doors
Consider the following scenario:

  ######+##
   @

When running (Shift-moving) east, the player will stop before the door
in the wall. When moving through Vaults, I noticed the following
behaviour:

  @
  #
   #
   +#
     #
      #

When running SE, the player will just pass the door without stopping.
This happens for any of the 4 diagonal directions.

This is due to the methods checking only the tiles to the left and the
right relative to the movement direction. When moving horizontally or
vertically, this suffices.
In the above example (and analogously for other diagonal movement)
however, "left" means the directional vector (1,0), and "right" is (0,1).
So when trying to find out whether the movement should stop, only the
wall tiles are actually checked and the door isn't, even though it's
passed by the player.

To fix this (in case it needs fixing), I've added another check that
runs after the usual "left" and "right" ones and that is only executed
if the player is moving diagonally.
This check is only handling the exact case of "passing a door"; that is,
no other features are included. It can easily be extended to include
other features the player should stop at though.

The reason why I didn't incorporate those "far-left" and "far-right" tiles
into the run_check array is because then the diagonal movement would
stop way more often and it could be considered annoying. So I've tried
to restrict the actual change in behaviour to this one case only.

--------------------------------------------------------------------------------
7e8db508bd | gammafunk | 2017-07-06 00:48:07 -0500

Add some tags to guarded unrand vaults
Make the runed door vaults have no_trap_gen so the monsters trapped
inside don't escape, and add no_monster_gen to one of these that places
large numbers of monsters.

--------------------------------------------------------------------------------
6bb111b638 | gammafunk | 2017-07-06 00:48:07 -0500

Some tweaks to a guarded unrand vault
Add a few pieces of additional loot, since this vault is both quite
intense and appears only in Zot, where a character is less likely to be
tempted by only a middle-tier unrand.

Also replace the no_item_gen tag with no_trap_gen, so things don't
teleport out of the vault; generating level items in the vault normally
is fine, on the other hand. Finally, clean up and simplify some syntax.

--------------------------------------------------------------------------------
add5d48554 | Alex Jurkiewicz | 2017-07-06 00:45:09 -0500

Upgrade mask of the dragon guarded vault
This vault isn't very lethal currently. It's essentially just a slightly
higher density section of Zot, and the lack of speed>10 monsters means
the open layout isn't a huge problem. So, make two changes:

1) Tweak the monster sets.
Old:
6 draconian, 6 dragon, 6(!) ghost moth
New:
9-13 dragons, 3 ghost moth, 3 moth of wrath

2) Replace the runed doors with transporters. Now, the player has to
step in, walk around the central stone feature, pick up the mask, then
get to the exit transporter. There is some randomness built in to which
direction the transporters operate in and where they are placed
internally.

Comitter's Note: Squashed two commits from the PR that fixed some errors
and improved the vault layout and loot placement. Closes #567.

--------------------------------------------------------------------------------
ea7d1d1804 | gammafunk | 2017-07-05 22:55:50 -0500

Rework a digging themed transporter vault
Previously gammafunk_dig_for_victory had an escape hatch very near the
vault entrance to prevent accidental stranding of characters who can't
use evocable dig and had problems with monster positioning. The digging
monsters needed careful positioning to ensure groups of monsters were
released, and even then the released monsters often had difficulty
moving around undiggable transparent stone.

This commit reworks the vault to have a less complicated arrangement
with less transparent stone and with the escape hatched moved to a
central area with monsters, making it less accessible as an escape
option. Now two digging monsters are awakened upon entrance to the vault
but won't dig until the player has moved significantly into the vault
and into the view of a third digging monster near the escape hatch. This
third monster is always able to be reachable through player LOS and will
dig to allow access to the hatch even for players who can't use evocable
dig.

The vault has three groups of monsters, but by taking a route through
the North or South sides of the vault, the player can to dig out only
one of the three groups of monsters and fight only these in a favorable
path they've dug before taking on the central group. From there they can
get to the loot area potentially before the third group is even
released. Generally it's easier to get ambush by multiple groups of
monsters in the updated vault, but some tactics (including use of dig)
can make the fighting much easier.

The vault now can place on Crypt:1-2, has better monster sets in
non-Depths/Dungeon branches, and correctly uses a gate to another level
in Pan instead of a branch exit.

--------------------------------------------------------------------------------
fc5ccf7e2d | gammafunk | 2017-07-05 22:42:02 -0500

Use a better monster selector in some vaults
Use "nonbase draconian" instead of hardcoded lists.

--------------------------------------------------------------------------------
7b5814560a | gammafunk | 2017-07-04 20:01:45 -0500

Don't leak information about unseen transporters (#11066)
When gathering a list of transporters the player has seen, properly test
that the player has actually seen the transporter. Before this commit it
was possible to have autoexplore warning about unvisited transporters
when the player had not encountered them yet.

--------------------------------------------------------------------------------
f2cc7025bf | gammafunk | 2017-07-04 20:01:44 -0500

Remove a redundant condition
Transporters already return true for feat_has_solid_floor().

--------------------------------------------------------------------------------
9333ff408e | gammafunk | 2017-07-04 20:01:44 -0500

Use an accurate parameter name in a method declaration

--------------------------------------------------------------------------------
2e6bd0f107 | gammafunk | 2017-07-04 20:01:43 -0500

Improve message when both a runed door and a transporter are unexplored
Previously, if both a runed door and a transporter were unexplored, the
autoexplore message only indicated the presence of runed door. With this
commit, both will be indicated.

--------------------------------------------------------------------------------
6b14a1c2ba | gammafunk | 2017-07-04 20:01:42 -0500

Tweak the transporter minimap color to blue
Orange on a single tile was difficult to distinguish from the yellow
color used by portals and the color used for branch entrances, whereas
100% blue is well distinguished from other minimap colors in use.

--------------------------------------------------------------------------------
36601da887 | gammafunk | 2017-07-04 20:01:42 -0500

Reformat the character lists for console glyphs
Move comments above the relevant line so the lines don't have to wrap so
early, and rewrap spacing to consistently allow unicode char designations and
escape symbols.

--------------------------------------------------------------------------------
97cf70aae6 | gammafunk | 2017-07-04 20:01:41 -0500

Save compat to add landing sites for existing transporters
When loading a level marshalled by a version before this commit, create
transporter landing sites at the destinations of all transporters on the
level.

There is only one existing subvault that chained transporters together,
the_bubble_gammafunk_roulette, and while this will effectively remove
two transporters in that vault for levels that placed the old version of
the vault, this will not leave the player stranded, since the exit
transporter takes the player outside the vault to an otherwise empty
square. Other vaults had transporter destinations that were already
normal floor tiles, so old placements of these vaults will continue to
function after save compat converts the destination tile to a landing
site.

--------------------------------------------------------------------------------
3d14fa4ee8 | gammafunk | 2017-07-04 20:01:41 -0500

Rework the transporters in a vault
Now transporters have landing sites, don't chain the transporters in
the_bubble_gammafunk_roulette, but group them in pairs so that after
taking a transporter the player find another nearby. Move the exit
transporter off to a location towards the extreme corners of the map
instead of mixing it in with the "roulette" transporters.

--------------------------------------------------------------------------------
1597e25b5d | gammafunk | 2017-07-04 20:01:41 -0500

Make transporters have a designated landing site terrain feature
Previously it was not easy to show the player where a transporter would
take them even in vaults that tried to make this clear, since a
transporter could land the player on any habitable feature. Additionally
it would be difficult to implement a UI to allow the player to remind
themselves of the destination of a visited transporter.

This commit adds a "transporter landing site" terrain feature that is
essentially a normal floor tile placed at a transporter's destination
for reminder/indication purposes.  Eventually the map UI will be
modified to allow the player to see a visited transporter's landing site
in the travel cache through a designated key.

The landing site feature uses the same glyph/tile as a transporter, but
is darkgrey in console and greyscale in Tiles with a darker magenta
color on the minimap. The feature description makes it clear that it
can't be used to return back to the transporter entrance.

--------------------------------------------------------------------------------
06f091eb74 | suomenusko | 2017-07-03 09:52:29 -0400

Change oka and trog acquirement texts to be more informative
I think this should be pretty self explanatory. I have always found it
mildly annoying when you get a gift in the middle of being shot at by a
pack of yaktaurs, only to wonder where it went afterwards since it was
just bolts.

This changes the gift message text for Oka and Trog to be more specific
as to what it gave, specifically ammo, weapon, or armour.

--------------------------------------------------------------------------------
dd6ab6a78e | gammafunk | 2017-06-30 22:53:18 -0500

Move vaults to the proper section in a des file

--------------------------------------------------------------------------------
41815f116d | Mark Donahue | 2017-06-30 22:51:38 -0500

A stone intersection mini vault.
Committer's Note: Added transparent tag to the vault and cleaned up
commit message.

--------------------------------------------------------------------------------
7bf63f6c59 | advil | 2017-06-30 17:47:40 +0200

Convert a segfault into an ASSERT failure
This is targeting a crash that can happen if a monster-thrown
penetration missile causes the attacker to die (e.g. via inner flame)
before other monsters are hit.  The bug is hard to fix (would need to
save the attacker, or rewrite penetration) but this change is easy
enough.

See e.g.
http://crawl.berotato.org/crawl/morgue/Ofeo/crash-Ofeo-20170630-001453.txt

--------------------------------------------------------------------------------
a5031da894 | Chris Campbell | 2017-06-27 21:08:51 +0100

Merge pull request #557 from ufshaikh/doc-change-(ogre-description)
Remove manual's reference to Ogres' especially good maces aptitude
--------------------------------------------------------------------------------
54e4307ab3 | gammafunk | 2017-06-27 02:00:57 -0500

Fix ORIENT and DEPTH tags on some float vaults
A few transporter vaults in float.des were missing their float orient,
hence were placing as minivaults. Fix this, and and for these and a
couple other vaults, put the ORIENT line after the DEPTH line to style
consistency.

For gammafunk_sealed_arena, don't try to place this vault in the Vaults
branch.  Float vaults don't work in this branch due to how the layout
works. This vault would place successfully using `P' in wizard mode when
the vault was (accidentally) a minivault, but minivaults are never
actually placed in this branch. It may be adaptable to a room vault, but
that would require making a separate vault altogether.

--------------------------------------------------------------------------------
13b96418aa | Nikhil Addleman | 2017-06-25 11:31:16 -0700

Fix alignment of Items table in crawl_manual.rst

--------------------------------------------------------------------------------
268a196dd2 | advil | 2017-06-25 19:08:56 +0200

Fix behavior of tile_full_screen with some associated refactoring
This value defaulted to something it couldn't be set to in the rc file,
and the behavior on reading this field was also weird (including a
somewhat iffy cast from screen_mode to bool and back that breaks the
default setting on an bad value).  This lets it be explicitly set to a
third value and fixes the documentation.

--------------------------------------------------------------------------------
b3e98cc556 | advil | 2017-06-25 11:06:13 +0200

Ignore negative (relative) window sizes in fullscreen mode
This change still lets you set the resolution exactly, but the default
of -90,-90 (which is really for windowed mode, I believe) was causing
weird behavior.  It also isn't clear when you'd want to set the screen
resolution in this way, since it is hard to get a good value (some, but
apparently not all platforms will just ignore non-standard resolutions
anyways).

--------------------------------------------------------------------------------
a0cb861226 | Corin Buchanan-Howland | 2017-06-24 09:12:31 -0400

Simplify Airstrike damage formula (Hellmonk)
The old formula involved multiple layers of nested randomization for no clear
benefit. In the words of HellMonk, 'It's easy to replace this damage formula
with something much simpler that retains roughly the same mean damage. You
want a formula that looks like A + random2(B + div_rand_round(pow,C)). A
gives you some constant damage. B > 1 gives you some amount of variability
in the damage even at 0 power, and B needs to be at least 1 or the first C
points of power won't do anything. C divides spellpower and controls how well
the damage scales. Div_rand_round is in there to avoid integer division, which
would give really ugly power breakpoints. From there it is just a matter of
finding good constants to fit airstrike's mean damage well across all power
levels.

Duvessa suggested 8 + random2(2 + div_rand_round(pow,7)) on irc. This is
slightly stronger at low power and slightly worse at high power. You could just
as easily use 8 + random2(1 + div_rand_round(pow,6)) if you wanted it to scale
a little better (the average damage is a couple points higher at 200 power).
Or, if you really want to get fancy about it, you can find some fraction that
gets even closer to the current behavior and multiply power accordingly. The
effect of spellpower on damage becomes much clearer with a formula of this
type, and it's easy to understand what to tweak if you decide that the balance
needs to be adjusted later.

You do not preserve some other properties of airstrike's damage formula,
including:

    The first 6 points of power not doing anything (You can preserve this by
      making B = 0, but this behavior seems bad anyway)
    The big max damage and the long tail of the distribution
    The median damage being a few points lower than the mean damage
    The mode always being 8'

--------------------------------------------------------------------------------
85d6d27d4c | kenranunderscore | 2017-06-23 15:24:22 -0700

Print a better message when an attempted blink is not possible

--------------------------------------------------------------------------------
1e75fd560e | kenranunderscore | 2017-06-23 15:24:22 -0700

Tree form now fully suppresses the blink and teleportitis mutations

--------------------------------------------------------------------------------
db84782402 | cut1less | 2017-06-23 14:51:15 -0700

Remove Mottled Draconians from table of aptitudes (#558)

--------------------------------------------------------------------------------
0a4ebe0c6d | Umer Shaikh | 2017-06-23 14:09:59 -0400

Remove manual's reference to Ogres' especially good maces aptitude
Ogres no longer have a particularly good aptitude with maces and
flails, as mentioned in the manual. This commit replaces that line
with a more up-to-date take on what melee options they find natural.

--------------------------------------------------------------------------------
c5150db817 | Johannes M | 2017-06-22 09:54:35 -0700

Add an autumn forest themed bazaar vault (#551)
Add an autumn forest-themed bazaar vault
--------------------------------------------------------------------------------
1f6c8c026d | advil | 2017-06-22 09:01:42 -0400

Restore base value of 5 max kick damage (minmay)
Accidentally(?) removed in 6d440e639429.

--------------------------------------------------------------------------------
04744e27a9 | gammafunk | 2017-06-21 19:52:40 -0500

Allow bazaar vaults to not set floor tile "halos" (Kenran)
Previously all shops place in bazaars would always get a circle of floor
tiles set around the shop itself. This was done through the main bazaar
setup function, so it would be difficult for vault authors to use a
different kind of shop decoration. This commit adds default-true
argument to the setup function to allow disabling of these floor tile
halos on a per-vault basis.

--------------------------------------------------------------------------------
82a99e05be | gammafunk | 2017-06-19 23:29:29 -0500

Make a transporter vault transparent and adjust
The vault gammafunk_wand_slinger places a fairly specific types and
numbers of monsters, especially early on. This commit makes it
transparent to reduce spoilers and adjusts the threat to be a little
more forbidable and the reward a little better.

Slightly increase the either monster count or difficulty at some depths,
making early placements have at least one orc priest, and restrict its
max depth to D:13. For non-wand loot we add two gold piles, and add up
to two items as the depth increases, but still only giving a single
star_item in earlier levels, since at that time a wand is more powerful.

--------------------------------------------------------------------------------
5014f931b3 | gammafunk | 2017-06-19 23:26:44 -0500

Fix up a transporter vault and move it deeper in the dungeon
This vault gammafunk_sealed_library places more monsters on-average
compared to the other transporter vaults, nearly all of which have nasty
spells. Move it to place on D:12- for Dungeon placements. Fix some
errors in the monster definitions and rework the monster loot placement
to better balance the types of monsters.

Also give the vault extra walling to help keep the library quiet, making
it less likely for all monsters to wake up. Finally, replace item
defined by a list of magical equipement with a simple jewellery
good_item, since that will better appeal to players that don't use
spells, and add a couple missing aux armour in the armour item
definition.

--------------------------------------------------------------------------------
3dfdc92ec1 | gammafunk | 2017-06-19 23:25:52 -0500

Tweak placement of a trog-themed transporter vault
Allow it to place on the final three dungeon levels, since the monsters
it places are not significantly more out-of-depth for D:13-14 than they
are for D:15.

--------------------------------------------------------------------------------
0c55a54dd4 | gammafunk | 2017-06-19 23:25:51 -0500

Remove a runed door from a vault
Tentacled monstrosities are normal level spawns, and this vault is not
overly dangerous, since the monstrosity is reavealed before the player
can reach it. Also renaming the vault to not indicate that the monster
is behind a runed door.

--------------------------------------------------------------------------------
2fc178d24c | gammafunk | 2017-06-19 23:25:51 -0500

Some tweaks to a transporter vault.
In the gammafunk_sealed_arena vault, 8 and 9 roll nothing fairly often
in Dungeon , resulting in a lot of missing enemies in that branch, so
add two more 9s. Only thin out the 9s in earlier Dungeon, since this
vault is not especially dangerous later on and doesn't have a high
monster count.  Also replace one gold pile with a good_item jewellery
and replace another with good_item aux armour in later depths/branches,
since the average result of two star_item + 3 superb_item can be quite
bad motivation. This rolls mundane jewellery/equip pretty frequently and
based on player identification knowledge, so early on it will often be
just a jewellery drop, and later on it will have a decent chance of
making artefact jewellery.

--------------------------------------------------------------------------------
62f518fac0 | gammafunk | 2017-06-19 23:25:35 -0500

Tweak wall borders in some transporter vaults
The vaults changed in this commit prefer to have the monsters inside not
wake until they come into view of the player from inside the vault, but
had only single tile walls previously, so monsters frequently would wake
before the player entered. The vault gammafunk_its_a_trap in particular
works best when monsters don't wake, but some very loud things like
alarm traps have woken monsters up in this vault. These vaults also all
are fully surrounded by floor perimeter that isn't necessary except
before any transparent stone, where something is intentionally exposed
to the player outside the vault.

This commit replaces the floor perimeter with another layer of stone,
helping to further insulate the monsters from noise. This also will tend
to explose less of the vault to noise, since the vault can now place
adjacent to any rock on the level. Industrious players can still make
enough noise to wake the monsters in most of these vaults if they wish
to (e.g.  scrolls of noise and some of the loudest spells).

--------------------------------------------------------------------------------
bbb65ab2d7 | advil | 2017-06-19 10:38:58 -0400

Warn on placing encompass vaults in the wrong place with &P (kenran)
This usually fails / crashes if the vault isn't designed for the place.
Then since `wizard_recreate_level` saves (several times!) during its
process, this typically leads to a corrupted save.  For example, placing
a bazaar or other portal vault in the dungeon, and in some cases mixing
portal vault types. Even placing depths encompass vaults in D isn't safe
in general in my testing.  &L is generally ok, because it has far fewer
checks.

In a few cases this warning is a little over-enthusiastic, e.g. it warns
on placing lemuel_river_lethe on depths 1 even though that is
technically ok. But anyone using wizmode should be able to handle that.

--------------------------------------------------------------------------------
5e5ddd2154 | advil | 2017-06-18 11:36:22 -0400

Prevent crashes when a spiny monster kills itself under Usk pain bond
Fix suggested by |amethyst.

--------------------------------------------------------------------------------
32e1473728 | advil | 2017-06-17 14:24:01 -0400

Add a bounds check
oops

--------------------------------------------------------------------------------
3fa40af13f | Kyle Rawlins | 2017-06-17 13:08:15 -0400

checkwhite + unbrace

--------------------------------------------------------------------------------
37f92568e5 | Kyle Rawlins | 2017-06-17 13:01:42 -0400

Fix behavior of translevel autotravel when called on walls (10802)
Previously this would do really weird things when called on walls or
other non-traversable positions, depending on various factors like
whether you were standing on stairs; typically it would try to send you
off-level (see Yermak's bug report for the exact conditions).  This is
triggered when traveling from the `X` display, which always calls
translevel travel (even if you're looking at the curent level).  The
problem was that some of the translevel pathfinding code doesn't
differentiate between inaccessible without translevel travel vs plain
inaccessible.  I left this code as is & added a note about this
assumption, and added a check earlier, so X. into a non-traversable
feature on the current level fails immediately.

If you try to autotravel to a solid (or non-traversable) feature on a
different level, this will still send you to that level, but stop when
you get there.  I'm not sure if this is the ideal behavior.

--------------------------------------------------------------------------------
3f13d09f4c | Corin Buchanan-Howland | 2017-06-16 19:48:36 -0400

Lessen the odds of corrosion stacking
Changed the formula for blocking corrosion from prev_corr in prev_corr+9 to
prev_corr in prev_corr+7. The aim is to make spammy corrosion a little less
absurd.

--------------------------------------------------------------------------------
b9da00d39c | Corin Buchanan-Howland | 2017-06-16 19:38:23 -0400

Decrease entropy weaver cast rate
From 1/5 to 1/8. Hopefully this will make them likely to be machine-gun
corrosion machines and also make them more actually threatening. This is
not meant to rule out further changes, like giving them staggered casting ala
giant eyeballs.

--------------------------------------------------------------------------------
20745e5424 | Corin Buchanan-Howland | 2017-06-16 19:23:03 -0400

Make caustic shrikes a normal spawn on Depths:5 again
Caustic shrike density was a bit low in the average game.

--------------------------------------------------------------------------------
1c0f2e30f7 | gammafunk | 2017-06-16 06:13:50 -0500

Add missing branches to Vim DES syntax file and clean up formatting
Mostly try to wrap lists of keywords at the 80 line length.

--------------------------------------------------------------------------------
e63d07cab7 | gammafunk | 2017-06-16 03:58:57 -0500

Support lua markers in the DES Vim syntax file
Parse the lua after the marker definition as lua, allowing multiple
lines using backslashes at the end of line.

--------------------------------------------------------------------------------
11b2297611 | EMTedronai | 2017-06-16 03:45:06 -0500

Do not hard-code colors in levdes.vim.
The hard-coded color definitions in the .des syntax file did not play well
together with a lot of vim colorschemes. This commit removes the
hard-coded colors and links instead to predefined syntax elements which
should be recognized by every Vim colorscheme.

Of course this means that it is no longer guaranteed that water is
displayed in a blueish color in every colorscheme. But I think being
readable in every colorscheme is much more important. If someone is not
happy with how the map is displayed in their favorite colorscheme, they
still can use an autocmd to change the colorscheme just for the des
filetype.

The only thing I am not completely happy with is stone (c) and metal (v)
walls using the same color definitions. I would link metal walls to
something else, but if you use Vim in 8 color mode the fallbacks will
usually result in 'v' having either the same color as 'w' or 'W'. And I
definitely want to avoid that since it can get quite hard to distinguish
in that case. I think 'c' and 'v' are distinct enough to share the same
color (and usually they are not used right next to each other).

This commit should also resolve the issue of the syntax coloring breaking
when changing the colorscheme with an open des file. The issue here was
that vim syntax files are not reevaluated when changing colorschemes. This
resulted in the hard-coded definitions of the syntax file being overridden
by the colorscheme change and not being reapplied afterwards.

Committer's Note: Closes #543.

--------------------------------------------------------------------------------
23bf2620de | gammafunk | 2017-06-16 03:08:34 -0500

Some adjustements to a transporter vault
In emtedronai_trogs_sanctum, make the loot more even between gold and
star_item to give the vault more appeal to adventurous players. Also
move the exit transporter destination off the entrance transporter, make
there be less blood for the blood god, and reformat some of the glyph
usage to make it consistent with lower-case for solid terrain,
upper-case or symbols for habitable terrain.

This closes #548.

--------------------------------------------------------------------------------
a9a1f1cf38 | Elan Morin Tedronai | 2017-06-16 03:08:34 -0500

Transporter vault: Trog's Sanctum.
Trog's most devout followers finally succeeded in creating a secret haven
devoid of all influences of forbidden magic. Will the hero dare to
desecrate this sacred place of silent rage?

The vault makes sure that the player is aware of the silence by placing
the entry transporter inside the silence field. Because of the silence it
is very easy to pull all monsters individually and fight them one by one.
In the end it comes to the player being able to fight the (potentially
berserking) boss monster while being silenced. Mainly magic focussed
characters should probably refrain from entering ;-)

Unfortunately for the player, the imprisoned magic users are not very
grateful for their rescue once the field of silence is being lifted :-/

--------------------------------------------------------------------------------
7b0e1919fa | Nicholas Feinberg | 2017-06-15 16:23:48 -0700

Ungroup same-name mons in webtiles list (11110)
Probably two orcs named 'Boldo' should get separate entries.

Note that mon-info::less_than will also have to change if we want
the same behavior for the local tiles monster list, but I'm not
sure if it's actually a problem there?

--------------------------------------------------------------------------------
625dad4402 | cut1less | 2017-06-15 13:53:53 -0400

Fix viable species/background option

--------------------------------------------------------------------------------
dbfcba73eb | Kyle Rawlins | 2017-06-15 13:19:37 -0400

Prevent random xom crashes on felid revival
If xom_tick got to the point of calling `xom_choose_action`, this would
crash on an old assert. This commit lets xom act immediately after
revival, which may or may not be desirable (before it was impossible,
because the game would crash instead).

I've also prevented xom from taking credit for a felid revival (I'm not
sure when this triggered before, but it would always trigger in the case
that previously crashed. This change is just cosmetic.

--------------------------------------------------------------------------------
828620c730 | Alan Malloy | 2017-06-14 23:10:59 -0700

Fix a teleport closet in dpeg_arrival_solitude (Slave-to-Armok)

--------------------------------------------------------------------------------
b612c2353f | advil | 2017-06-13 22:51:06 -0400

Make Hep mutation wording more Hep-specific
Based on the second report I've seen about someone new to Hep being
confused about this vs regular frail. (The first was me, I even tried to
cure it a few times before realizing.)

--------------------------------------------------------------------------------
4ad91a05bb | Corin Buchanan-Howland | 2017-06-13 22:26:46 -0400

Make amulet of magic regeneration give a fixed bonus
The amulet now gives 1/4th of an mp each turn instead of +50% of current mp
regen each turn. Since mana regen is 7/100ths of a mana + 1/100th per 2 maxmp,
this amulet now gives regeneration equal to 50 additional mp. This breaks even
with the previous version at 36 mp. At less mp, it is better, and at higher mp
it is worse.

I made this change both for better parallel with the amulet of regen and
because the amulet had very little effect in the part of the game where
additional mp regeneration would make the most difference. I am hoping
that this change will make the amulet a little more competitive with other
strong amulets. I'm not particularly worried that having access to faster
mp regeneration as an amulet will push magic-heavy builds over the top.

--------------------------------------------------------------------------------
44a88e32f7 | Corin Buchanan-Howland | 2017-06-13 22:26:45 -0400

Make HP/MP regen display more granular.

--------------------------------------------------------------------------------
bf49515331 | Corin Buchanan-Howland | 2017-06-12 21:15:17 -0400

Make Fedhas Sunlight targeter accurate
Now it shows the radius correctly.

--------------------------------------------------------------------------------
ea492e930d | elliptic | 2017-06-11 16:11:24 -0400

Revert "0.20 tournament reminder."
This reverts commit 8b44e269dd4b56ba3d8c41eddb8065157e2e9f4f.

--------------------------------------------------------------------------------
941c86297e | advil | 2017-06-10 13:12:43 -0400

Add a `-` to the new cooldown status lights
Though the wording in % is clear, the "you can't do this" nature of
these status displays was only indicated by color (yellow), which was
somewhat confusing (e.g. yellow "Recite" = can't recite white "Recite" =
reciting) and also not very accessible.  This now displays yellow
"-Recite", "-Tornado", etc., which might have other misconstruals but I
think are overall clearer.

--------------------------------------------------------------------------------
7bf2ba42c2 | Alan Malloy | 2017-06-08 17:56:14 -0700

Convert launch_retval to an enum class
This way we can't accidentally coerce it to a bool.

Since we *were* coercing it to a bool in several places, I also fixed the
compile errors at those locations. Only one looked like a definite bug
(hints-mode prompts about how to use ammo); someone should also look at
_mons_has_usable_ranged_weapon, which treated throwable missiles as
ranged weapons: it wasn't clear whether that's intended or not, so I left
it alone (saying yes, they should count as ranged weapons).

This commit was inspired by 2d4c0a5, which did indeed have a bug of
exactly this sort.

--------------------------------------------------------------------------------
2d4c0a5d2e | Alan Malloy | 2017-06-08 17:16:10 -0700

Don't let equipped-weapon accuracy affect throwing accuracy (minmay)

--------------------------------------------------------------------------------
7c8f5373d8 | gammafunk | 2017-06-07 06:19:02 -0500

Fix the Android build
by adding l-wiz.cc to the Android.mk build file.

--------------------------------------------------------------------------------
df2c16248b | advil | 2017-06-06 13:29:33 -0400

Extremely basic lua bindings for fsim
This also adds a proof-of-concept test that calls fsim 10 times with a
lot of iterations and prints the AvEffDam.

--------------------------------------------------------------------------------
c929894b0a | advil | 2017-06-06 13:29:32 -0400

Fix NOWIZARD builds
It seems that this isn't widely used.

--------------------------------------------------------------------------------
b82119a2b7 | advil | 2017-06-06 13:29:32 -0400

Fix up restoration/sustab innate muts on load
The removal of these mutations didn't zero out their innate mutation
levels properly, and so saves that underwent the previous upgrade could
crash on a mutation validation assert.

--------------------------------------------------------------------------------
1479571521 | Kyle Rawlins | 2017-06-05 12:06:49 -0400

Add some more detail to the potion simulator
Calculate the mean number of resulting mutations (currently sitting at
around 3 if I've got this right).

--------------------------------------------------------------------------------
b537e02bcc | Neil Moore | 2017-06-04 10:52:17 -0400

Make holiday meals of shrikes and bennus.

--------------------------------------------------------------------------------
5e91feffef | gammafunk | 2017-06-02 21:33:02 -0500

Remove an entry vault that can get a player stuck behind grates
Random blink or Hop can land a player behind the grates. Using
transparent rock would fix this, but I've spoken with Doesnt, who
prefers removing the vault over making the vault's low security prison
theme worse.

--------------------------------------------------------------------------------
e4214e1255 | gammafunk | 2017-06-02 03:34:39 -0500

Remove the 0.19 survey message
The survey is now closed and 0.20 has been released.

This reverts commit 99dbe1240bc0091a40e4a3c9e011386fb95b6b0c.

--------------------------------------------------------------------------------
28ea6b7797 | advil | 2017-05-29 14:15:02 -0400

Update options doc to reflect default change in tile_web_mouse_control
[skip ci]

(cherry picked from commit 6b59dc7fbf78e9f6a5c5a43a9eeb167fb5bb8d21)

--------------------------------------------------------------------------------
95c5c02e20 | gammafunk | 2017-05-28 00:10:36 -0500

Down-weight two transporter overflow vaults
Make gammafunk_overflow_arena weight 1 and reduce the number of altars
it can place to 3. It was still a common vault even with weight 5, more
so for higher numbers of altars which have fewer vaults. This is a
challenging overflow vault that I'd like to be relatively rare. Future
fixes to mapstat might let me get a better idea of just how common it
and other overflows are, but until then err on the side of caution.
Also fix some glyph issues with this vault and down-weight
gammafunk_temple_of_torment for the same reason as for overflow_arena.

--------------------------------------------------------------------------------
7dc85f4a8c | gammafunk | 2017-05-27 22:40:40 -0500

Allow transpoters to show up stash searches (qw)
This allows another easy way for the player to travel to transporters in
addition to `X >'. It might be ideal to have autoexplore move the player
next to this location as is done for runed doors, but that's a more
complicated change that can be done later.

--------------------------------------------------------------------------------
307f10e563 | gammafunk | 2017-05-27 21:16:18 -0500

Remove a player-based veto from a vault and adjust placement
Instead of a veto based on the player's mutations/race, simply place a
down-hatch as an alternative to the dig wand for character that
otherwise might not be able to use the wand. This always allows us to
not specific set wand charges since if the player runs out, they can
still escape.

Also adjust placement so that the down-hatch can always place and remove
generation in Dis, since this is a loot vault and we try to not have
those in Hells.

--------------------------------------------------------------------------------
70e9ed9011 | gammafunk | 2017-05-27 20:50:31 -0500

A digging-themed transporter vault
The player is given an identified wand of digging with sufficient
charges to carve a path to the loot they saw before entering. Two sealed
groups of nasty monsters are also visible from the outside, with digging
monsters positioned inside so that they will dig through the rock
"seals" as they spot the player. Additionally there is little
non-diggable terrain, so if the player wants to fight through the
monsters in some kind of terrain they can controll, they'd better try to
take care of the diggers first.

It's possible to use stealth or controlled blinking to get past the
digging monsters before they have a chance to release a seal, but this
has to be done carefully from the right positions and timing turn-wise.
So there are a few different strategies for the vault ranging from
trying to tab through the horde with what useful rock they have left to
outright sneaky theft.

The vault vetos for non-formicid worshipers of Ru who have sacrificed
evocations, out of an abundance of caution, since those might enter the
vault with no way to teleport out.

--------------------------------------------------------------------------------
b2ef3f03bf | advil | 2017-05-27 21:18:02 -0400

Handle mutation names with uppercase properly (elliptic)
Makes mutation_from_name fully case-insensitive.

--------------------------------------------------------------------------------
8b44e269dd | elliptic | 2017-05-26 15:54:40 -0400

0.20 tournament reminder.

--------------------------------------------------------------------------------
a058ae749a | Kyle Rawlins | 2017-05-26 15:45:02 -0400

Don't display local tiles tooltip on out of view cell
This was causing random-seeming crashes on resize (and switching between
fullscreen and windowed). In principle this probably means that
something is weird about the mouse position vs the grid at the point of
this call, but I couldn't figure that out.

--------------------------------------------------------------------------------
ddac83bfc5 | Kyle Rawlins | 2017-05-26 10:19:53 -0400

Properly reset m_overlay on resize (LHJW)
This was only getting set when the window got too small, never reset
when it increased in size, so the overlay color / opacity were
permanent for the session (position isn't contingent on this value).

--------------------------------------------------------------------------------
494ec52ba2 | gammafunk | 2017-05-26 06:34:56 -0500

Don't choose non-starting species in random species selection (#11076)
Before this commmit, the '*' key to choose a random species could choose
e.g. Gnolls in stable. It wouldn't allow actually starting a game with
that species, but it shouldn't be selecting non-starting species in the
first place.

--------------------------------------------------------------------------------
43b307424c | gammafunk | 2017-05-25 19:34:07 -0500

Fix and balance a float vault
There were some errors in gammafunk_corrupted_shrine including using
SUBST instead of NSUBST and undefined monster lists. Fix these, and also
adjust the vault to not place monsters so close to the center, so that
the player can have more freedom of movement, and adjust monster
generation levels based on the new lists and to not place so many unseen
horrors in Dungeon.

--------------------------------------------------------------------------------
9a7844af83 | gammafunk | 2017-05-25 01:52:38 -0500

Update the Debian changelog for 0.20

--------------------------------------------------------------------------------
ea9004e51e | gammafunk | 2017-05-25 01:50:24 -0500

Final 0.20 changelog
(cherry picked from commit 8729b15a00de92e01cfa0de3058831651afff87d)

--------------------------------------------------------------------------------
7b23a2ff03 | Kyle Rawlins | 2017-05-24 22:28:05 -0400

Add a changelog entry for best_effort_brighten_foreground
With pointers to what options to change.

--------------------------------------------------------------------------------
8cdcbb248a | gammafunk | 2017-05-24 20:55:25 -0500

Tweak the changelog description of Ignition

--------------------------------------------------------------------------------
a372141e0a | Kyle Rawlins | 2017-05-24 11:12:14 -0400

Change default terminal settings for mac build
This should use dark gray properly for mac builds by default in my
testing.  Doesn't address online console players but hopefully works for
the release. (Using the new Terminal.app profile will improve the
colors, but still work with this default.)

--------------------------------------------------------------------------------
aa92ef90e3 | Pekka Lampila | 2017-05-24 15:48:20 +0200

Regenerate build.h when git version changes.
Fixes an issue with version info not being updated when switching
between different branches where the only differences are tags and
non-code changes.

--------------------------------------------------------------------------------
ab6d75698d | gammafunk | 2017-05-24 06:15:43 -0500

Fix make install (heftig)
Adding settings/mac directory caused the non-recursive copy of settings
to fail during the install target, so make this a recursive copy.

--------------------------------------------------------------------------------
a0515975dc | gammafunk | 2017-05-24 06:15:42 -0500

A Zot trap themed transporter vault
Shows the player loot and that they'll have to deal with Zot traps if
they want to transport in and get it. A line of monsters will move
toward the player once far enough in, and these will reach a guantlet of
Zot traps very quickly, but there are relatively safe los-blocking
corridors for the player nearby. Even inside the corridors, the player
has to take care to not let monsters step on an adjacent trap.

All traps are pre-identified and there are always walking paths through
the vault that won't trigger a single trap.  Only places on levels that
might normally generate Zot traps.

--------------------------------------------------------------------------------
d15e932a63 | Chris Campbell | 2017-05-24 11:03:30 +0100

Fix a vault typo
Closes #542
--------------------------------------------------------------------------------
210df22d70 | Kyle Rawlins | 2017-05-23 13:28:52 -0400

Add an official OS X terminal profile for dcss
This profile adjusts the colors to be more usable (brighter blue, etc),
and the app settings so that things will look ok (no blue map symbols)
with either bold_brightens_foreground, allow_extended_colours, or both
set to true.  If best_effort_brighten_foreground is set, this still gets
odd looking blue for dark grey.

I'm not quite sure if there's a good way to install this profile
automatically, but this commit at least gives us something we can point
console players to.

(cherry picked from commit aa2fd6273a2a1d66d10efd2aa61b4d6c96b9e3bd)

--------------------------------------------------------------------------------
5d43826d7f | Doesnty | 2017-05-23 12:21:45 -0400

Don't let Kiku wrath inflict infinite miscasts (#533)
Allows either 1 or 2 miscasts, with the average number the same as before.
--------------------------------------------------------------------------------
82ea730c97 | hawthornbunny | 2017-05-23 12:08:07 -0400

Fix "Wear which item" typo

--------------------------------------------------------------------------------
5396917711 | Furbeh | 2017-05-23 11:55:23 -0400

Make cooldowns for DDoor and Berserk accessible through status()

--------------------------------------------------------------------------------
606531cec9 | gammafunk | 2017-05-23 05:33:36 -0500

Balance and overflow altar vault
The vault gammafunk_overflow_arena is a vault rewarding high quality
loot and can appear quite frequently since it supports between one and
five altars. Half its weight and lessen the loot quality somewhat.

--------------------------------------------------------------------------------
cd0b4565c0 | gammafunk | 2017-05-23 04:54:01 -0500

Fix an overflow vault crash (Sage1234)
The vault gammafunk_temple_of_torment tried to veto when placed in
certain depths if Menkaure had already generated, but overflow altar
vault placement code can't deal with vetos and the level generation will
crash when this veto occurs.

This commit makes suitable monster replacements for Menkaure in the
vault when he's already generated and removes the veto.

--------------------------------------------------------------------------------
3fd62ac8a2 | gammafunk | 2017-05-22 22:05:31 -0500

Tweak advpng compression levels in a png compression script
to be consistent with our Makefile, which was changed in 8e3c6a0.

--------------------------------------------------------------------------------
ff8e487a92 | gammafunk | 2017-05-22 22:01:37 -0500

Merge pull request #539 from alexjurkiewicz/advpng
Reduce advpng compression webtiles sprite sheets
--------------------------------------------------------------------------------
b8b669ed62 | gammafunk | 2017-05-22 20:26:44 -0500

Some tweaks to Cocytus end vaults
In coc_mu, the rock border seemed to function as a way to allow
characters with dig access to the rest of the level and to the rune
itself. With the recent changes to not require flight in these Cocytus
end vaults, the border is no longer necessary, so replace it with stone.

In coc_old, rework the shallow water path to be at the back of the
vault, forcing non-flight users to walk further around, and replace dry
land before the doors with shallow water.

In coc_dpeg, make there be two shallow water paths to small connecting
islands on either side of the starting area, each leading to one pair of
islands. Remove the shallow water connections between main islands not
in the same pair, so that a player without flight will have to choose a
pair to explore, backtracking through the starting vault if they want to
visit the other pair (either because they didn't find the rune or
because they want the loot).

--------------------------------------------------------------------------------
d008f67865 | Floodkiller | 2017-05-22 18:15:32 -0500

Remove flight requirements from Hell rune floors
Adds solid ground/shallow water pathways in Hell rune floors (mainly
Cocytus) in order to avoid requiring the player to obtain a source of
flight/translocations to access the rune. Only rune access is kept in
mind; the level may be much longer to travel through without flight, and
non-rune items may still remain out of reach.

Specific breakdown of changed vaults:

coc_dpeg- Added a shallow water pathway from the middle to the closest
outside island, and added a circular shallow water pathway linking all the
outside islands.

coc_old- Added a short shallow water pathway across the moat to each
entrance to the middle.

coc_mu- Created a shallow water path that takes the player to all
landmasses on the longer route (flight still required for shorter route).
Added a curved shallow water path at the end to Antaeus's island.

coc_grunt- Added short shallow water paths in between each island, sink
the islands to create more shallow water, shorten the lower wall
dividers on each side

coc_grunt_cove- Added short shallow water paths connecting the outside
islands, with the last island on each side connecting to the center land
mass.

geh_mu- Added a solid land bridge to access the fortress, and replaced the
lava tile in front of the rune with a door.

Committer's Note: This commit is a squashed commit of PR 540. Closes
 #540.

--------------------------------------------------------------------------------
cf94df67d8 | Andrew Minton | 2017-05-22 03:13:43 -0500

Comment fix.
Committer's Note: Closes #540.

--------------------------------------------------------------------------------
ee15c392cb | Andrew Minton | 2017-05-22 02:52:54 -0500

Remove translucent transformations from the_grid_setup
Making large vaults out of translucent materials doesn't produce good gameplay,
especially with how monster pathfinding works.

--------------------------------------------------------------------------------
3c61f937d4 | Andrew Minton | 2017-05-22 02:52:53 -0500

Another major the_grid revision
Consensus was that the vaults placed too many monsters and too many OOD
monsters. So the number of monsters has decreased, most 8s have been replaced
with 9s, and most 9s have been replaced with 0s. There are still a few 8s, but
they are very rare now.
Items in the non-prize subvaults have been reduced as well, so the vaults give
much less reward (both experience and items).
Also add the float tag to all but the smallest main vaults, to reduce the number
of vetos, and fix missing subvaults in the recursive triangle main vaults.

--------------------------------------------------------------------------------
9b971b6ef2 | Andrew Minton | 2017-05-22 02:52:53 -0500

Add no_monster_gen to minmay_the_grid_ultimate

--------------------------------------------------------------------------------
305a42f300 | Andrew Minton | 2017-05-22 02:52:53 -0500

Remove minmay_the_grid_triangle_9x9_line_8
The vault's size and shape is too awkward to place without vetoing most of the
time.

--------------------------------------------------------------------------------
279f716fa2 | Andrew Minton | 2017-05-22 02:52:52 -0500

Fix translucent stone and green crystal in minmay_the_grid_9x9_recursive_3.

--------------------------------------------------------------------------------
e494091ab2 | gammafunk | 2017-05-20 00:05:18 -0500

Fix a typo in an equip message (koboldina)

--------------------------------------------------------------------------------
af3b9a5c4d | gammafunk | 2017-05-19 17:42:48 -0500

Move a float vault to its own DES file (Shimatora)
The vault gammafunk_the_bubble was failing to place since its subvaults
don't have DEPTH tag and were inheriting the default-depth from
float.des.

Rather than duplicate the parent vault's DEPTH tag in each subvault,
move the vault to the_bubble.des. This will allow easier expansion of
the vault in the future, as well.

--------------------------------------------------------------------------------
8e3c6a0382 | Alex Jurkiewicz | 2017-05-19 11:11:24 +1000

Reduce advpng compression webtiles sprite sheets
Here's a quick chart of compression level vs size vs time, using
player.png webtiles sprite sheet (three runs per compression level,
picking the best run for time):

Compression Level   Size (kb)   Time (s)
                1         966        1.7
                2         893        3
                3         890       21.7
                4         885       61

While there's an argument to be made we should use the best possible
compression level since all players benefit, going from level 2 to 4
results in 20x slower compression for 1% smaller file, which seems
particularly not worth it.

--------------------------------------------------------------------------------
0b12a6df10 | gammafunk | 2017-05-18 00:14:51 -0500

Updates to the Debian changelog from 0.19 releases

--------------------------------------------------------------------------------
f195039086 | gammafunk | 2017-05-17 23:30:00 -0500

Two wand-themed transporter vaults
A vault with a type-identified wand of flame that asks the player to
prepare steamed eel, and a more general wand vault that has the player
duel with some baddies that have ranged magic of their own.

--------------------------------------------------------------------------------
e03441e5eb | gammafunk | 2017-05-17 23:30:00 -0500

Two overflow transporter vaults
A generic overflow for 1-5 altars with an arena-style fight and some
loot, as well as an overflow for Kiku+Yred featuring some friends
invited over for torment.

--------------------------------------------------------------------------------
2fcdf1346b | gammafunk | 2017-05-17 23:30:00 -0500

Some transporter altar vaults for non-temple gods
Loot/ambush type vaults for Jiyva, Lucy, and Beogh.

--------------------------------------------------------------------------------
89d5f5d815 | gammafunk | 2017-05-17 23:29:59 -0500

Two transporter float vaults
A sealed library with book and magic-themed loot and a whole classroom
of magic users who don't like you interrupting their studies. Also a
transparent arena where you have to decide whether you can duke it out
with the potential statue + out-of-depth spawns.

--------------------------------------------------------------------------------
05fe413b20 | gammafunk | 2017-05-17 23:28:27 -0500

Make a minivault a float vault instead
This is a fairly substantial vault that doesn't fit the usual minivault
profile, so it's better placed as a primary vault. Don't try to place
this vault in Vaults, since Vaults layout can't handle it.

Also replace one of the superb items with an artifact jewellery, to
always make at least one of the generated items universally tempting.

--------------------------------------------------------------------------------
1ee79874b9 | gammafunk | 2017-05-17 19:24:13 -0500

Remove whitespace from a vault

--------------------------------------------------------------------------------
1289703837 | Kyle Rawlins | 2017-05-17 10:50:21 -0400

Fix Makhleb's major destruction (11063)
Broken in 4a616ed; I just copied the fix from 00179d9f2c0d into the
right place for Makhleb. (Also changed minor destruction just in case
it ever becomes relevant.)

--------------------------------------------------------------------------------
0f15420414 | Doesnt | 2017-05-16 12:45:43 -0700

Don't let apocalypse crab breath attacks ignore player clarity

--------------------------------------------------------------------------------
174c67540e | gammafunk | 2017-05-16 05:55:01 -0500

Changelog through 0.20-a0-1124-g2e29d97
Also a first pass at 0.20 release highlights.

--------------------------------------------------------------------------------
2e29d97aba | Neil Moore | 2017-05-14 19:50:20 -0400

Improve abyss_greek_temple wrt WJC.
When WJC is not present, disable their altar; when they are, randomize
it along with the other altars rather than always placing it in the
middle.  Also, give the altar the correct floor tile.

--------------------------------------------------------------------------------
db355f5443 | advil | 2017-05-14 19:46:56 -0400

Add a max for pain bond damage calculation
Pain bond damage on the original target is calculated after the
recursive call based on hp difference, but in obscure conditions the
original target can actually be healed (if a druid dies in the
recursion).  Don't allow negative damage in the hurt calculations.

--------------------------------------------------------------------------------
b7cbeb9e66 | gammafunk | 2017-05-09 22:29:06 -0500

Disable gnolls in the stable release
After some discussion it was felt that there needs to be more work on
this species, specifically the way it tries to achieve its aim of
pushing the player to learn many skills. Several crawl skills yield high
reward for low XP investment, which is a general problem with crawl's
skill system, but the Gnoll aptitude system especially pushes the player
toward these skills. Crawl already does push players to train a variety
of of the most impactful skills, so if Gnolls are to be the species that
pushes players to hybridize in a meaningfully different way, it would be
better if it didn't try to prevent specialization using aptitude
decreases or skill level cutoffs. A secondary problem is that gnolls
require more careful checking of skill levels since each skill aptitude
independently changes based on the skill's training.

One alternative being considered is to lock Gnolls into very low stat
levels, but to still give them high aptitudes.  This or any other rework
will likely not be ready in time for play-testing before feature freeze,
so this commit disables Gnolls in stable. When re-enabling Gnolls for
stable, simply revert this commit.

--------------------------------------------------------------------------------
bb42413abe | gammafunk | 2017-05-09 18:52:26 -0500

Disable Wu Jian in stable
Making this god trunk-only for the upcoming 0.20 release. There's a
general consensus that the god needs more work, and the major idea being
explored (merging some powers into Uskayaw) will not be ready in time
for the feature freeze. It's also possible that the god will remain as a
separate god but with substantial changes to god powers. Trunk players
can still play-test Wu Jian, but altars to the god will be unavailable
in stable.

If re-enabling Wu in stable, simply revert this commit. Note that the
two commits preceeding this (d9b63d7e and e512d5f5) should not be
reverted as they make actions like this easier in the future.

--------------------------------------------------------------------------------
d9b63d7ea4 | gammafunk | 2017-05-09 18:34:46 -0500

Refactor a disabled god check function
This is relevant for disabling Wu Jian in stable, but putting this in a
seperate commit so it doesn't get reverted if we re-enable that god in
stable when it's finished.

Make this a switch to allow easier editing/expansion of this function in
the future, and use this function for the is_unavailable_god() function.

--------------------------------------------------------------------------------
e512d5f585 | gammafunk | 2017-05-09 18:12:09 -0500

Make more room in an abyss altar vault
We keep adding new gods! Expand it and add Wu Jian.

--------------------------------------------------------------------------------
35a2cd32de | advil | 2017-05-09 09:34:44 -0400

Don't let shock serpent self-retaliate when confused (nikheizen)
This was recursing from the retaliation, and consequently a shock
serpent that bit itself would usually kill itself in a single bite, or
come close.

--------------------------------------------------------------------------------
62da73fdae | Neil Moore | 2017-05-08 17:49:22 -0400

Miscellaneous mon-pick improvements.
Relocate some compile-time asserts next to the arrays they concern;
name a repeated anonymous type; make a run-time assert into an
ASSERT_RANGE; clarify a boolean return value; and replace an if-else
with a conditional.

--------------------------------------------------------------------------------
aa522012b7 | advil | 2017-05-06 10:32:23 -0400

Add a comment documenting an assert

--------------------------------------------------------------------------------
e0d6ded988 | Chris Campbell | 2017-05-06 12:29:43 +0100

Revert "Revert "Remove a vile lie about Whirlwind slowing.""
It really was removed (in e3bac265ad), and hasn't been added back.

This reverts commit 33edf325c0d3db5f1b393bbeebe862a5f7e52d05.

--------------------------------------------------------------------------------
33edf325c0 | Corin Buchanan-Howland | 2017-05-05 21:05:16 -0400

Revert "Remove a vile lie about Whirlwind slowing."
This reverts commit 4e342e6793a809d37be09a5ab871e7988260ae23.

Man, I'm on a roll here.

--------------------------------------------------------------------------------
3e41d78dfa | Corin Buchanan-Howland | 2017-05-05 18:11:39 -0400

Revert "Make altars cycle colors instead of randomly shifting (minmay)"
This reverts commit 3634aa33d67a8a98d8faa93d6abfbcb00296fb24.

Gonna reconsider this a bit.

--------------------------------------------------------------------------------
3634aa33d6 | Corin Buchanan-Howland | 2017-05-05 18:01:14 -0400

Make altars cycle colors instead of randomly shifting (minmay)
This hopefully lays groundwork for better differentiation of altar colors
in console. It also coincidentally stops altar colors from shifting on non-
turn-taking screen redraws.

Thanks to |amethyst for the template assistance.

--------------------------------------------------------------------------------
4e342e6793 | Corin Buchanan-Howland | 2017-05-05 16:39:12 -0400

Remove a vile lie about Whirlwind slowing.

--------------------------------------------------------------------------------
6411727637 | Chris Campbell | 2017-05-05 21:19:31 +0100

Adjust minmay_lair_oklob_tunnel (#11052)
Remove the hidden lava and greatly reduce the number of plants placed.

--------------------------------------------------------------------------------
e3cd1721dd | Glenn Matthews | 2017-05-04 12:09:28 -0500

Aptitudes table displays -- instead of 0 for unusable skills

--------------------------------------------------------------------------------
6ae5986e5e | Neil Moore | 2017-05-04 10:31:47 -0400

Unbrace
[skip ci]

--------------------------------------------------------------------------------
8dd48abd28 | Neil Moore | 2017-05-04 10:13:09 -0400

Fix cloud immunity brand in itemspec and debug acq stats.

--------------------------------------------------------------------------------
61cc304cc9 | Neil Moore | 2017-05-04 10:13:09 -0400

Describe monster cloud immunity in xv and ?/m (MarvinPA)

--------------------------------------------------------------------------------
903221b211 | Neil Moore | 2017-05-04 10:13:08 -0400

Fix up cloud immunity scarf checks.
We were ignoring the 'items' parameter for players, and ignoring the
scarf entirely for monsters.  Furthermore, the check in actor used
the wrong method (wearing rather than wearing_ego).

--------------------------------------------------------------------------------
167f86b676 | Neil Moore | 2017-05-04 10:13:08 -0400

Checkwhite
[skip ci]

--------------------------------------------------------------------------------
26be02c537 | Neil Moore | 2017-05-04 09:08:58 -0400

Simplify
[skip ci]

--------------------------------------------------------------------------------
188b92fc19 | Neil Moore | 2017-05-04 09:07:20 -0400

Don't crash when encountering short-named autoexclusions (#17246)

--------------------------------------------------------------------------------
1de9d76dd6 | Isaac Sloat | 2017-05-03 22:30:44 -0500

Remove an unnecessary line break

--------------------------------------------------------------------------------
4c920f5282 | Isaac Sloat | 2017-05-03 22:30:44 -0500

Vaccinate the Cloud Mage against clouds (|amethyst)

--------------------------------------------------------------------------------
e6c0720e6f | Isaac Sloat | 2017-05-03 22:30:44 -0500

Clear cloud autoexclusions when cloud-immune
Part of this fix involved actually flagging cloud autoexclusions as
autoexclusions, which they weren't in the first place.

This led to the need to ensure that cloud autoexclusions aren't wiped
(the previous implementation checked to see if any monster was actually
there, and if not, would clear the exclusion) except when the player has
cloud immunity.

--------------------------------------------------------------------------------
c5d136c6ed | Isaac Sloat | 2017-05-03 22:30:43 -0500

Don't exclude damaging clouds if immune (mooon)
This is something of an indirect fix -- player_view_update_at in view.cc
checks this function to determine whether or not these clouds should be
excluded.

--------------------------------------------------------------------------------
80909b1c4c | Isaac Sloat | 2017-05-03 22:30:43 -0500

Add the cloud immunity egos to scarves' repertoire
Fear these freezing clouds no longer!

--------------------------------------------------------------------------------
e5c4a32f5e | Isaac Sloat | 2017-05-03 21:50:43 -0500

Add a function for checking cloud immunity
Rather than directly checking every time.

--------------------------------------------------------------------------------
ff6d183655 | Isaac Sloat | 2017-05-03 21:50:10 -0500

Remove cold resistance from scarves
It wasn't an interesting enough ego for an exclusive equipment slot giving up
AC from cloaks or other scarf egos.

--------------------------------------------------------------------------------
651d72400e | Isaac Sloat | 2017-05-03 19:11:15 -0500

Knit more scarves
Up from 16%~ of all cloak-slot items, to 25%. Cloaks move down from 83%~
to 75%.

--------------------------------------------------------------------------------
7ae0f1ae7a | Floodkiller | 2017-05-03 19:04:16 -0500

Prevent Gnolls from sacrificing skill
Prevents Gnolls from sacrificing skill under Ru.

If species_apt_factor is checked for Gnolls, sacrificing skill would
result in an incorrect displayed aptitude due to the custom xp table: a -1
apt factor applied to a skill level on a Gnoll that is currently at an
effective +4 is not the same as the same skill level at +3 on any other
species.  If species_apt_factor is not checked, the sacrifice does nothing
but grant free piety.

--------------------------------------------------------------------------------
95dc2c4af4 | Floodkiller | 2017-05-03 19:04:16 -0500

Adjust Gnoll exp table
Adjusts the Gnoll skill experience table by shifting the scaling from
starting at +4/decreasing by 2 every level after SL 7 to a floor of -6, to
starting at +5/decreasing by 2 every level after SL 6 to a floor of -9.

The main intention of this change is to drop the floor out to a much lower
level, which is intended to more heavily discourage hard focusing a skill
to high levels over diversifying/spreading out.  The starting aptitude was
raised to +5 so that the floor could be -9 instead of +4 to -10, which
would cause display issues on the skill screen once the floor was reached
(the negative sign would be cut off for space, leaving only color to
indicate that it was a negative number).

This should be nicer than the current system until about SL 8, slightly
rougher until about SL 12, then start costing dramatically more per level
afterwards.  If this proves to be too rough on early levels, it would be
recommended to move the decay starting point to SL 7 (this would have been
a buff over the current system all the way until SL 13, which seemed like
it might be too much in addition to adding Fearsome Bark and normalizing
stat growth).

--------------------------------------------------------------------------------
ac3690e2ed | Floodkiller | 2017-05-03 19:04:16 -0500

Replace more instances of Bultungin
Bultungin was still used instead of Gnoll in the comments in skillmenu.cc

--------------------------------------------------------------------------------
7d51e6bdfc | Floodkiller | 2017-05-03 19:04:15 -0500

Clean up skill_exp_needed
Cleans up skill_exp_needed by moving the two XP tables into the check for
the Gnoll species, reducing arrays in memory from 2 to 1.  Also, avoids
calling species_apt_factor for Gnolls, since it will only ever return 1
due to the way the custom xp table/Gnoll aptitudes are designed.

--------------------------------------------------------------------------------
3fde50521e | Diego Essaya | 2017-05-01 21:14:32 -0400

SDL Tiles: Don't disable screen saver

--------------------------------------------------------------------------------
d50b1d50b8 | advil | 2017-05-01 08:38:57 -0400

Preserve messaging that happened during load
Previously, `load_messages` would overwrite the entire contents of the
circular message buffer at that point in the load process, obscuring any
messages that happened earlier in the load process (for example, the
mutation fixup error message).  If there weren't too many, messages from
the load process would still be visible in the message pane, just not
preserved; but on debug builds it was typical that a bunch would be
lost.  Also, the last message in the process was sometimes not yet
flushed, and so could be appended succesfully at the time it was
flushed, so on non-debug builds that tried to show an error, whether
this error got logged was basically a function of its length (and other
factors).

This commit flushes and saves any messages from during the load process
before message loading and appends them to the circular buffer at the
end of `load_messages`.

--------------------------------------------------------------------------------
4d0c687449 | advil | 2017-05-01 08:38:57 -0400

Don't crash webtiles if a more is triggered too early
If enough messages happen before the player chunk is fully loaded, it
would trigger a more, which would try to send a whole bunch of
information in json form that wasn't there yet, leading to a crash.
Probably mostly relevant for debug builds.

--------------------------------------------------------------------------------
4bd2f5be18 | Chris Campbell | 2017-04-30 19:42:51 +0100

Fill in gaps in chequers_guarded_unrand_mask_of_the_dragon (#11043)

--------------------------------------------------------------------------------
627af9bc1b | Nicholas Feinberg | 2017-04-30 10:09:06 -0700

Add erandtke to the CREDITS
Probably should've combined him and Dunk...

--------------------------------------------------------------------------------
c284483c04 | Edward Randtke | 2017-04-30 10:06:42 -0700

Fix movement prompt for swimmers (11000)

--------------------------------------------------------------------------------
7d2332c27f | Nicholas Feinberg | 2017-04-30 10:05:38 -0700

Add Russell Dunk to the CREDITS

--------------------------------------------------------------------------------
47261afe90 | Russell Dunk | 2017-04-30 10:00:58 -0700

Stomp: warn before damaging allies (11003)
[Committer's note: minor code cleanup.]

Closes #525.

--------------------------------------------------------------------------------
89cde08500 | Nicholas Feinberg | 2017-04-30 09:42:58 -0700

Fix god wrath descriptions (11008)
Distinguish between 0 and < 1/4 penance, and bring back some older
wording for clarity.

--------------------------------------------------------------------------------
492c16e7ba | Neil Moore | 2017-04-30 12:26:10 -0400

Fix spelling (#11045).
[skip ci]

--------------------------------------------------------------------------------
b2cf7a44cd | Neil Moore | 2017-04-30 08:07:41 -0400

Avoid a two-argument fprintf (miserium)
It was breaking builds with -Werror=format-security, and in particular
the Android build.

--------------------------------------------------------------------------------
4874019d6b | Chris Campbell | 2017-04-29 19:02:09 +0100

Bring back some Xom speech as rare welcome text
Since it was tragically lost with the removal of the prayer command.

--------------------------------------------------------------------------------
cc5f1c26df | Chris Campbell | 2017-04-29 19:02:09 +0100

Shorten Hepliaklqana's welcome line

--------------------------------------------------------------------------------
70c76d2834 | advil | 2017-04-29 10:17:13 -0400

Use selectors instead of parent-scoped variables in closures
This was causing lingering weirdness on input box+layout related to
10318, 10938, since layout reconstructs the input box, and the
parent-scoped variables were stuck with a jquery object that no longer
was present in the DOM.

Also, focus an input box on layout if there is one.

game.js:layout() really needs some less bugfix-y attention.  As far as I
can tell the messages pane and the stats pane never change size on
relayout, so what is this even doing except maybe for an initial layout?

--------------------------------------------------------------------------------
c475d56dc4 | advil | 2017-04-29 09:37:53 -0400

Prevent a bad fallthrough (|amethyst)
This could (we think) cause a crash when setting `lines(loc[idx])` if
loc is empty.

--------------------------------------------------------------------------------
6a0a8e18d5 | advil | 2017-04-28 20:56:28 -0400

Save compat for spit poison
The save compat code added with TAG_MINOR_SPIT_POISON_AGAIN didn't
adjust you.innate_mutation, only you.mutation.  This could lead to saves
that were corrupted in several ways, not all of which are perfectly
fixable, but the main case that actually crashed was that the innate
level for spit poison could be higher than the total level. This crashes
in current versions (a mutation validation check fails), and earlier it
would be fixed up on load, but incorrectly (giving the player innate
exhale poison).  There is no way to differentiate between saves
pre-TAG_MINOR_SPIT_POISON_AGAIN where the player actually had exhale
poison, which didn't update right, and saves that got incorrectly fixed
up, so some saves that went through a buggy update sequence will keep
their exhale poison.

--------------------------------------------------------------------------------
49e0d3e842 | Chris Campbell | 2017-04-28 19:10:21 +0100

Mention Okawaru ammo gifts in the god description

--------------------------------------------------------------------------------
99f7aaffc9 | Chris Campbell | 2017-04-28 19:09:54 +0100

Merge pull request #528 from alexjurkiewicz/oka-ammo-gift-notification
Mention Oka ammo gifting when you reach 3*
--------------------------------------------------------------------------------
0c522bc7ea | Kyle Rawlins | 2017-04-28 09:36:55 -0400

Even more changelog editing
[skip ci]
--------------------------------------------------------------------------------
6bcfb42c3f | gammafunk | 2017-04-28 07:52:56 -0500

Update map knowledge when transporting monsters
Monsters would appear in the map knowledge for their former location
after being transported along with the player.

--------------------------------------------------------------------------------
dee899cd40 | Kyle Rawlins | 2017-04-28 08:48:55 -0400

Add GSC change to changelog
[skip ci]
--------------------------------------------------------------------------------
76119e3352 | Kyle Rawlins | 2017-04-28 08:42:33 -0400

Some light changelog editing
[skip ci]
--------------------------------------------------------------------------------
a9106949da | gammafunk | 2017-04-28 01:42:34 -0500

Add a -dump-disconnect CLI to control mapstat disconnected maps dumps
Previously any disconnected map would cause mapstat to dump the map to
map.log and exit, but this is undesirable when the primary interest of
running the tool is for map statistics. Now this behaviour only happens
when this CLI is used.

--------------------------------------------------------------------------------
8446734add | Neil Moore | 2017-04-27 22:35:22 -0400

Checkwhite
Also fix several cases of double-spacing where the next sentence begins
with a digit, lowercase letter, or punctuation; those aren't caught by
checkwhite.

[skip CI]

--------------------------------------------------------------------------------
127e8e2b14 | advil | 2017-04-27 18:25:59 -0400

Don't delete event handlers in messages on layout/resize
When `layout` was called, it rebuilt the messages area from scratch
using its html.  This resets any event handlers on nodes embedded in
these, so a layout would strip out event handlers from the input box,
including the ones that return the game to its normal state once you're
done with the box.  The result was that you had to reload the browser to
get something playable.  This was triggered by any resize, which in
several browsers (and possibly sensitive to other settings, such as
zoom) can result from a browser find command (10318), especially since
crawl doesn't swallow ctrl-f when the search box was open. A re-layout
is also apparently triggered when a spectator joins (10938).

This fix, instead of rebuilding the messages panel from html, makes a
deep copy of it using jquery `clone`, in a way that preserves event
handlers.  Layout still copies other areas using html, so if anyone ever
adds any event handlers in the stats area, this could come up again.
Supposedly, the html way is faster, so I left this as-is.

(I'm not entirely sure why this would be the best way to do what
`layout` is doing in the first place, but I'll leave that for more
skilled javascript people.)

--------------------------------------------------------------------------------
b8e8b7e09f | Neil Moore | 2017-04-27 09:47:04 -0400

Provide a const version of actor::ensure_valid_actor.

--------------------------------------------------------------------------------
7d7e1fa669 | Alex Jurkiewicz | 2017-04-27 23:45:00 +1000

Mention Oka ammo gifting when you reach 3*
It's a bit of a pointless message for players that Oka doesn't think
need ammunition (since they will never recieve ammunition gifts), but
prevents the case where ammunition-needing players receive gifts before
the 5* message about receiving gifts.

--------------------------------------------------------------------------------
7b787acd9b | advil | 2017-04-26 19:32:33 -0400

Calculate the number of WJC movement attacks correctly (ZChris13)
The previous version of _wu_jian_number_of_attacks attempted to work
around a weirdness of player::attack_delay (that it depends on
you.time_taken, which is different on movement turns than attack turns)
by basically reversing some of the math buried in there.  Based on some
empirical testing, I don't think this was working right (although it's
fairly complicated).  It was overemphasizing delays in some cases and
underemphasizing them in others, resulting in particular in cases of 0
attacks when your move speed is higher than your attack speed, which
should never happen.  (For example, attack speed of 1.3 and move speed
of 1.5 from slowing is a good combination for replicating spurious 0
attacks prior to this commit.) This commit works around the weirdness in
a possibly easier-to-understand way by using an unwind_var and
calculating the value directly.  I've tested this a fair amount, and it
seems to be doing what would be expected.  This change affects all three
main movement attack types.

Ideally, attack_delay shouldn't have this sort of dependency, but it's
called enough in diverse ways that changing it there is risky.

--------------------------------------------------------------------------------
bbf974cdfa | advil | 2017-04-26 17:19:49 -0400

Handle damage with genuinely no agent when injury mirror is up
E.g. vault-created clouds.

--------------------------------------------------------------------------------
3bd9c97a56 | Chris Campbell | 2017-04-26 19:38:16 +0100

Update some cooldown status descriptions
Exhaustion could potentially be split up again into durations for Ru and WJC
(so they can have separate descriptions).

--------------------------------------------------------------------------------
b0a1de4226 | Chris Campbell | 2017-04-26 10:55:26 +0100

Fix Exhaustion not expiring (#11038)

--------------------------------------------------------------------------------
0491fdee9d | advil | 2017-04-25 20:29:16 -0400

Retroactively add webtiles mouse to the changelog
This has been around for a while but hasn't made it to release (or
changelog) yet.

[skip ci]

--------------------------------------------------------------------------------
9a88637c54 | advil | 2017-04-25 20:26:13 -0400

Convert YOU_FAULTLESS back to you for injury mirror
This prevents a crash when a monster is killed by a reflected ranged
attack off the player; the fineff for injury mirror needs someone valid
to be at fault. It might be more intuitive if the originating monster
gets the mirrored damage, but monster::hurt doesn't have access to this
in any particularly easy fashion.

I implemented this using an idea from |amethyst in efdfc71969b016ec0438;
there's now a static function actor::ensure_valid_actor that normalizes
the YOU_FAULTLESS case (and if necessary could try to normalize
anything else like this).

--------------------------------------------------------------------------------
7622305906 | Chris Campbell | 2017-04-25 21:44:30 +0100

Give Recite an independent cooldown
Remove another case of overlapping cooldowns on unrelated abilities, this time
between Recite and breath weapons.

--------------------------------------------------------------------------------
19bae6a9a3 | Chris Campbell | 2017-04-25 21:42:47 +0100

Give Berserk an independent cooldown
As with DDoor, rather than make Exhaustion overlap on various unrelated spells
and abilities. Exhaustion remains only as a Ru-specific status as a result,
shared between the abilities.

--------------------------------------------------------------------------------
d950c8b884 | Chris Campbell | 2017-04-25 21:40:46 +0100

Make Borgnjor + DDoor only cause normal paralysis
Instead of causing extra-long duration paralysis and confusion, just apply
normal duration (2-7 turn) paralysis.

--------------------------------------------------------------------------------
0c1af0aa45 | Chris Campbell | 2017-04-25 21:39:49 +0100

Give DDoor an independent cooldown
Instead of sharing one with Berserk and Ru abilities, use a separate cooldown
as with various other spells (such as Dragon's Call and Tornado).

--------------------------------------------------------------------------------
14f416c661 | advil | 2017-04-25 12:45:09 -0400

Make monster::name return something more informative for YOU_FAULTLESS
Before, it printed this just as a program bug.

Also, add an assert that catches the (as-yet-unfixed) reflection+injury
mirror crash at a more useful place in monster::hurt; if the agent is
invalid there, the fineff will crash later.

--------------------------------------------------------------------------------
c5baec59d1 | gammafunk | 2017-04-25 03:25:34 -0500

Fix WebTiles minimap colors (Raine357)
The order of the minimap colors in minimap.js must match the order of
the map_feature enume. Fix and document this, and also correct the
minimap color value for transporters.

--------------------------------------------------------------------------------
57248f3795 | Chris Campbell | 2017-04-24 22:51:54 +0100

Update Monk manual entry
Since it apparently still predated them getting their weapon choice in the
first place.

--------------------------------------------------------------------------------
537b456c9a | Chris Campbell | 2017-04-24 22:24:08 +0100

Revert "Remove Monks' starting weapon choice"
The change in practice made Monks substantially worse without really making
them more interesting, since having no starting weapon skill on a background
intended to use melee early made them especially weak on D:1.

The bonus piety but worse equipment in comparison to Gladiator is still a
reasonable amount of differentiation (considering that Fi/Gl are also
relatively similar, for example).

This reverts commits b48d95fd49c, af809b6da4c and cd8f41eed80.

--------------------------------------------------------------------------------
d0c4d6411e | gammafunk | 2017-04-24 03:52:03 -0500

Some transporter vaults
The first is a subvaulted minivault with 5 variations that can place in
most 3-rune branches, as it uses a 0 and 9 monster set. This vault shows
the player the vault loot but doesn't reveal what monsters lie inside.
The exit transporter is close to the one of the loot chambers, with the
exception of one variant that has a roulette of transporters and mostly
open terrain.  The player who chooses to enter the vault may have to use
teleport to escape if they get overwhelmed and have a hard time reaching
the exit transporter.

For abyss there's an exit vault and a zot-themed rune vault. The exit
that shows the player what they'll have to fight through to get to the
exit. The rune vault is a kind of "reverse zot run" through a
miniaturized zot:5 vault, starting in the orb chamber. One lung leads to
the rune, the other to the exit transporter.

--------------------------------------------------------------------------------
e02263c3ed | gammafunk | 2017-04-24 03:50:44 -0500

Rework vaults previously using lua teleporters to use transporters
For most of these vaults, replacing the lua teleporter is
straightforward. For nemelex_the_gamble, which had its two-way
teleporter on a timer, I opt to only place the exit transporter after
the player has entered the randomly chosen chamber, and don't place an
exit transporter at all in the unselected chamber. This prevents any
travel cache info about unexplored transporters remaining.

--------------------------------------------------------------------------------
08d5691292 | gammafunk | 2017-04-24 03:18:19 -0500

Implement transporters
Transporters are a new feature for inter-level player travel. They work
like stairs that take the player to another destination on the same
level, allowing adjacent followers and hostiles to travel along.

This feature replaces the old poorly supported teleporter feature. The
name is changed to "transporter" to prevent confusion that -Tele would
affect the use of this feature, which it doesn't. Note that teleporters
were not teleporter traps, but rather features that had been used in
some vaults such as the Golubria wizlab. The old teleporter feature
didn't cooperate with travel, travel cache, or auto-exploration, and had
other issues remedied by this new feature.

Transporters work the following way:

* You choose to enter the transporter by hitting > or < instead of
always entering when moving on the transporter square.

* Cooperates with autoexplore and the travel cache. Unvisited
transporters are marked as unknown like how stairs are, and get a
message when autoexplore finishes. Unvisited transporters also make
a count annotation on the level, which is lowered as each transporter
is explored, just like runed doors.

* Allows adjacent followers next to each other in a radius from your
position to pass through the transporter with you, provided they can
find a safe spot nearby on the other side. Allies follow according to
the same distance rules as for stairs. Directly adjacent hostiles will
also follow you through, likewise dependent on them finding a habitable
spot

* Taking a transporter won't be blocked by a monster being
on destination, as it will move the monster to a habitable spot
nearby. Only if it fails to find one will it block the transport.

* Refuses to move the player to a non-habitable destination. Maps should
not place transporters that lead to such places, but should this happen
due to such placement or due to terrain changes, taking the transporter
won't kill the player due to habitability. Placement onto traps or
clouds are still possible, but maps should avoid doing this.

* Use '>' on map screen to go to allow travel to any reachable
transporters.

Things that might need addressing:

* Doesn't allow travel through a transporter. Could do this with a
warning prompt, similar to how travel within a level works when
traveling to the destination requires leaving the level.

* Monsters/allies don't use transporters on their own. This should
probably remain the case, since transporters into vaults will often need
transporters out of the vault. Monsters using transporters freely would
mean that such vaults won't contain monsters when they wake up.

Technical notes:

* DES/Lua support

For placing transporters, maps should place lua markers at the
transporter location and transporter destination using functions
transp_dest(name) and transp_dest_loc(name), respectively, where `name'
is a string shared by the two markers. When the level is fully
generated, the corresponding transporters will be placed at the
locations of the markers. This way transporters can be place both within
and across vaults without special setup.

* Position markers

Position markers now have a `feat` field indicating which feature they
are for. This is because one position might have a position marker for
both hatches from a levels above/below and for a transporter actually at
that position due to the way hatches set their markers. Hatches set
their position marker on the destination level, but using a position
that is the coordinates where the hatch resides on the *source* level.

Before this commit, if a down hatch and up hatch occupied the same
position and lead to the same level, they would both have to share their
chosen destination. Multiple position markers were actually being
created for each hatch, but the marker retrieval mechanism had no way to
disambiguate and returned the first position marker it found at that
position. With this commit, transporters, up hatches, and down hatches
can each retrieve the correct position marker.

* Save compat

Save compat exists for loading travel cache without transporter data and
for loading position markers that don't have a feature value. Position
markers unmarshalled without a feature value get a value of DNGN_UNSEEN.
These will correspond to an up hatch or down hatch, since those were
previously the only features that used position markers. The compat code
will see when any hatch attempts to read its position marker and fails.
If a position marker does actually exist at that location but has a
feature value of DNGN_UNSEEN, that marker will be returned and used
after the marker's feature value is updated to that of the hatch.

--------------------------------------------------------------------------------
ab2386400f | gammafunk | 2017-04-24 03:14:32 -0500

Clean up secret moon lore

--------------------------------------------------------------------------------
97bcf2f429 | gammafunk | 2017-04-24 03:14:22 -0500

Make some functions static and document

--------------------------------------------------------------------------------
bd57889a0d | Neil Moore | 2017-04-23 11:07:01 -0400

Fix grammar in a vault comment.
[skip ci]

--------------------------------------------------------------------------------
33e7df796c | advil | 2017-04-23 10:00:01 -0400

Don't keep x,y coords in travel prompt when target isn't the entrance
At the travel prompt, selecting ^ and then using > to select a level
would try to travel to specific coordinates on that level (based on the
branch entrance location). That's already odd, but the presence of
explicit coordinates (instead of -1,-1) would also cause a level
excursion during autotravel at the level above the target, and if the
player hadn't seen that level before, the level excursion would crash.

This change just drops the coordinates when changing the default away
from the branch entrance in the prompt.  I've also slightly refactored a
few functions to use return values with const arguments, rather than
modifying the arguments, and added some docstrings.  Autotravel to
explicit coordinates on an unseen level will still crash, but I think
that this is the right behavior -- there should just be no way to
trigger that from the UI (and this commit removes a way).

--------------------------------------------------------------------------------
0db9e8bca0 | Chris Campbell | 2017-04-23 13:52:26 +0100

Fix a Slime vault being able to place stairs next to acid walls (#11031)

--------------------------------------------------------------------------------
fd09691efc | Chris Campbell | 2017-04-22 21:15:47 +0100

Simplify Damnation crossbow's damage
Previously it dealt standard impact damage, followed by extra damnation-branded
impact damage (which was buggy and could affect damnation-resistant creatures),
followed by the explosion. Now just deal the standard impact damage and the
explosion (and slightly increase the explosion's damage), slightly reducing the
spamminess of its damage messaging as a result.

--------------------------------------------------------------------------------
f55446336b | advil | 2017-04-21 18:15:33 -0400

Prevent doors from being permanently unsealable
If a door was sealed, and then opened by an enemy, it would become
permanently unsealable.  This commit (a) times out terrain change
markers properly if the door ever becomes unsealed before the timeout
(they weren't cleaned up at all in this case), and (b) properly handles
the case where a door is sealed and there is already an existing terrain
change marker on that door.  Before, such a case, the terrain change
marker got modified but the terrain itself wouldn't get updated, meaning
that door was permanently unsealable following the situation in (a).

--------------------------------------------------------------------------------
16fac3a187 | advil | 2017-04-21 18:15:33 -0400

Refactor get_push_space to fix some zin bugs
This commit (a) lets the excluded argument work for items, (b) lets
items be pushed from deep water to deep water, and (c) lets monsters be
pushed to deep water/lava if those spaces are habitable for them.

It also fixes a bug in imprison where the final actual movement of items
wouldn't use the exclusion spots, which could lead to items being pushed
around in multiple steps as the wall is built.

--------------------------------------------------------------------------------
52b1666ea9 | advil | 2017-04-21 18:15:33 -0400

checkwhite
Hopefully this doesn't break anything, no idea really, but I got tired
of unstaging this every time I run checkwhite.

--------------------------------------------------------------------------------
4d371cd3bf | Nicholas Feinberg | 2017-04-21 08:54:13 -0700

No infinite Fedhas piety from worms (11026)
Or other skeleton-less corpses.

Though for worms at least, it is kind of thematically appropriate...

--------------------------------------------------------------------------------
fcccd65cc7 | gammafunk | 2017-04-21 02:46:01 -0500

Descriptions and tiles for one-way stairs in Tomb (CanOfWorms)
Rename the special fixed-destination escape hatches in Tomb and give
them unique descriptions and tiles. This helps prevent any confusion as
to whether it's intended for the player to use these stairs for normal
level progression.

--------------------------------------------------------------------------------
b277f922f7 | advil | 2017-04-20 19:13:11 -0400

Standardize tentacle cleanup
This eliminates crashing on interactions with bend space, as far as I
can tell.  I'm not 100% on the eldritch tentacle part of this, but I
also can't figure out any current way to relocate an eldritch tentacle
that is practical for testing.

--------------------------------------------------------------------------------
05abe66500 | Chris Campbell | 2017-04-20 17:41:51 +0100

Merge pull request #516 from jimperio/master
Fix Dvorak keyboard binding
--------------------------------------------------------------------------------
b3a76b0017 | Chris Campbell | 2017-04-20 17:39:36 +0100

Merge pull request #523 from yrmvgh/patch-17
continue renaming Bultungin to Gnoll
--------------------------------------------------------------------------------
4e4180709e | Chris Campbell | 2017-04-20 17:39:12 +0100

Pluralise some gnolls

--------------------------------------------------------------------------------
30bc7f3ed6 | Yer mivvaggah | 2017-04-20 12:34:26 -0400

correct "mock" vault to mock gnoll, not bultungin

--------------------------------------------------------------------------------
3775f13966 | Yer mivvaggah | 2017-04-20 12:32:24 -0400

correct comments that mention Bultungin

--------------------------------------------------------------------------------
5ae3f2a9d2 | advil | 2017-04-20 11:12:35 -0400

Add a validity check to _apply_to_monsters (|amethyst)
This may or may not eliminate some tentacle-related crashes in
interaction with bend space, but it's a good idea anyways.

--------------------------------------------------------------------------------
c3ddcbd821 | gammafunk | 2017-04-19 15:56:47 -0500

Move a vault deeper and fix a typo in a vault name
Ijyb was moved to start placement on D:3, so adjust goblin_castle to
being placing there as well. This vault is fairly tough already and was
not meant to place OOD monsters.

The typo in Ijyb's placement vault originates from when unique placement
was moved from C++ to DES, rip.

--------------------------------------------------------------------------------
4706f7efea | advil | 2017-04-18 23:01:57 -0400

Scale cell widths/heights by devicePixelRatio (wheals)
Many browsers, though not all, change devicePixelRatio when the user
zooms in or out.  Since we scale the canvas by this (e.g. in order to
handle high DPI devices properly[1]), zooming was messing up
calculations of mouse position for purposes of selecting cells.  This
commit scales cell dimensions appropriately.

I've tested this on firefox, chrome, & safari on OS X.  It fixes
problems with mouse cursor position and zooming on firefox/chrome, and
doesn't break safari (which already worked).  It needs testing on other
platforms, in IE, and on high DPI devices (such as retina displays).

[1] refs for scaling reasons: 75d9865c86980b7, 0475afac5cde

--------------------------------------------------------------------------------
e4c44be3fc | advil | 2017-04-18 20:40:24 -0400

Check exclusions for wall jump at landing spot, not at the wall
This also gets Y/N checks for walljumping into traps, clouds, etc.
Should fix 10948, 10987.

--------------------------------------------------------------------------------
c4d110fe69 | advil | 2017-04-18 09:56:07 -0400

Remove linearity breakpoint for raw fail rate
This is a buff of sorts, but one that doesn't matter for any practical
purposes in my testing, and it (arguably) makes what's going on simpler
to understand.  This change makes e.g. L9s move from 100 faster, but the
regular curve still takes over when they get closer to usability so the
net impact is minimal.  The greatest effect might be for characters with
miscast protection, but even there it just enables casting with bad fail
rate a few training levels earlier at most.

This commit also very slightly tweaks the polynomial to increase fail
rates, bringing fail rates to something like 0-3% lower (depending on
the details) from what they were with `chance_breaks` (preivously it was
more like 0-4).  Since the aim wasn't really to buff casting, this could
be tweaked further, but the dynamics are somewhat complicated.

Also, fix line widths (|amethyst)

--------------------------------------------------------------------------------
99c12e3834 | advil | 2017-04-18 09:56:07 -0400

Replace spell success breakpoints with a polynomial
Lots of historical consensus that something like this is a good idea --
replacing these pre-dcss breakpoints has been under discussion since at
least 2014. This change was originally inspired by minmay's discussion
at: https://crawl.develz.org/tavern/viewtopic.php?f=8&t=23414

The argument that swayed me to implement this: "One great effect of
getting rid of chance_breaks is that spells transition from 100% to 99%
to 98% etc. etc. earlier, instead of staying at 100% for ages and then
quickly falling. A 99% fail spell is still useless but it makes it much
easier for unspoiled players to tell how close they are to getting it
castable, compared to seeing both level 5 and level 9 spells as 100%
fail."

This uses |amethyst's version of the polynomial, simplified using
Horner's rule, taken from comments on the PR that this change was
developed under.  Following the original calculation using breakpoints,
this change is linear after 43 (which is the fixed point for this
particular polynomial).  Dropping the linearity breakpoint would pull
down spell failure rates noticeably in the higher ranges with this
polynomial, and may be worth considering -- based on my testing I don't
think it'll drastically affect casting for the meaningful part of the
fail range, and it is simpler (removes another breakpoint).

This change also adds a scale parameter to `stepdown_spellpower` and to
`calc_spell_power`, and uses the scale parameter to get higher
resolution in `raw_spell_fail`.  This results in much more continuous
behavior of spell fail rates when training, though it is still not high
enough resolution to be perfectly continuous, especially at high skill
levels.  The behavior of the two changed functions with default
arguments remains the same.

--------------------------------------------------------------------------------
cba205c317 | gammafunk | 2017-04-18 03:03:15 -0500

Changelog through 0.20-a0-1020-g7b9e4fe
[skip ci]

--------------------------------------------------------------------------------
7b9e4fe4d4 | Chris Campbell | 2017-04-17 19:46:10 +0100

List the default for simple_targeting in the options guide (crate)

--------------------------------------------------------------------------------
a70dcae18a | Floodkiller | 2017-04-17 11:59:54 -0700

Update Haste spell description.
Removes the reference to contaminating the player from the Haste spell
description (it should be impossible for a monster to cast Haste on the
player anyway, but this should reduce confusion just in case).

--------------------------------------------------------------------------------
e435b50518 | Nicholas Feinberg | 2017-04-15 22:19:20 -0700

Make a funny name slightly less so (11016)
<PleasingFungus> oops

--------------------------------------------------------------------------------
9cf9c6832e | Jomel Imperio | 2017-04-16 10:22:35 +0800

Fix Dvorak keyboard binding
Also remove references to `CMD_MAP_FIND_F` and `CMD_TOGGLE_FRIENDLY_PICKUP` 
from `keybind.txt`.

--------------------------------------------------------------------------------
c3250cedb1 | Chris Campbell | 2017-04-15 22:21:26 +0100

Fix holy wrath weapons being cursable when temp-branded (Doesnty)

--------------------------------------------------------------------------------
241539b22b | gammafunk | 2017-04-15 02:01:37 -0500

Fix doll tiles for the Zephyr bow unrand (geekosaur)

--------------------------------------------------------------------------------
2ec8a9529e | Isaac Sloat | 2017-04-14 19:54:59 -0500

Remove SInv from Gn
Not only was it discrepant with monster gnolls, it's also not really at
all an interesting species perk while also being already used on several
other species.

--------------------------------------------------------------------------------
171fa7aa94 | Isaac Sloat | 2017-04-14 19:22:45 -0500

Rename Bultungin to Gnoll
As a name 'Bultungin' was too overambitious, and also the species didn't
really fit the reference (shapeshifting vampiric hyena). Gnolls already
exist in Crawl and are suitably similar in concept, so the species takes
their name.

They'll take Gnomes' old 'Gn' abbreviation. Gnome abbreviation will be
changed to 'Gm' for Sequell and scoring tracking.

--------------------------------------------------------------------------------
928b3ad91e | Alan Malloy | 2017-04-14 16:38:08 -0700

Convert functions in mon-abil from pointers to refs

--------------------------------------------------------------------------------
add7f62f1c | gammafunk | 2017-04-14 17:12:33 -0500

Save compatability for the change of stone stairs into hatches in Tomb
Only needed in a game that has generated a Tomb level already with stone
stairs but has at least one ungenerated Tomb level. Since the already
generated level will have stone stairs and no necessary hatch name
markers, we generate the remaining vaults with stone stairs using 4
specially tagged vaults in tomb.des.

If such a game is loaded, a property is set in you.props that will have
the builder load the necessary vault so that stone stairs are generated
throughout. This level is only ever one specific layout, but should
otherwise be a normal level. Old games that haven't generated any Tomb
levels will get hatches normally, and old games that have already
generated all Tomb levels are unaffected.

These vaults will have to be maintained to a reasonable degree before
TAG_MAJOR is incremented, which is one disadvantage to this approach.
However cleaning up the level to make the hatches upon entry would
(probably) be more difficulty and prone to breakage.

Tested with saves from trunk with and without a generated Tomb:1, and
the compat code appears to work fine.

--------------------------------------------------------------------------------
a69911aa25 | gammafunk | 2017-04-14 17:12:26 -0500

Turn stairs in Tomb into fixed-destination escape hatches (Twitch chat)
Stair dancing is a convenient technique that's good enough to clear many
parts of Tomb levels. Repeated use of stairs is one of the major reasons
why players find the branch repetitive and uninteresting. This commit
addresses that problem by replacing the usual stone stairs with escape
hatches that have fixed destinations. Now when entering the Tomb:2
central ambush, the Tomb:1 outer hall, and Tomb:3, the player must take
an escape hatch and has no immediate return stair where they land.
Instead they can escape back to the previous level through corresponding
escape hatch placed somewhere close by, within 12 spaces or so.

Tomb:3 has a more substantive layout change to allow the hatches to work
well gameplay-wise. Now there are doors into each of the two loot
chambers near the entry area, with escape hatches located in the
chambers themselves. Without the door addition, the escape hatches would
have needed to be very close to the entry locations to give a good way
to proceed for players who can't use translocations or certain god
abilities. The terrain of the loot chambers is also slightly altered so
that inside chamber tiles near the new door always expose some LOS
outside the chamber door.

This change also strengthens the theme of Tomb featuring dangerous
ambushes and confusing layouts. It's a difficulty increase to Tomb as a
whole, since the player can't immediately return to a cleared area to
rest, but good tactics work very well for clearing the branch, based on
my play-testing.

--------------------------------------------------------------------------------
c97906fc67 | gammafunk | 2017-04-14 17:08:36 -0500

Implement escape hatches with fixed destinations
Allow setting escape hatch names and hatch destination names via lua
markers in vaults. Hatch names are set via a lua marker through the
function hatch_name(name), and the destination level sets the
destination marker with hatch_destination_name(name) using the same
string in `name'. After these are set, the escape hatch will choose this
destination instead of a random one.

--------------------------------------------------------------------------------
c986637950 | advil | 2017-04-13 23:55:27 -0400

Clean up some unnecessary default arguments (Floodkiller)
These are probably holdovers from an earlier time.

--------------------------------------------------------------------------------
0de3dc5055 | Corin Buchanan-Howland | 2017-04-13 22:09:37 -0400

Rename Krishna to Zephyr
With lore and stuff. Gonna be great.

--------------------------------------------------------------------------------
47b2f4dd30 | Corin Buchanan-Howland | 2017-04-13 21:36:53 -0400

Re-rename ring of Avoidance to ring of Phasing
Feels more distinctive, and also might be a fun reference for Phase Shift fans.
I wouldn't be against a more lore-heavy name for the ring.

--------------------------------------------------------------------------------
e6c5631b3d | gammafunk | 2017-04-12 16:15:19 -0500

Revert "bow of Krishna "Sharnga" -> longbow "The First Bow""
I'm reverting this commit for now, so we can think up some better theme
for this unrand. The general change will probably happen unless we
decide that Krishna is ok, but probably the bow will get some different
lore.

This reverts commit 76effe11021bde25e867927bb10e2547c6481409.

--------------------------------------------------------------------------------
0f2fb03a5b | Isaac Sloat | 2017-04-12 16:07:48 -0500

Update Agnes's description (MarvinPA)
[skip ci]

--------------------------------------------------------------------------------
76effe1102 | Alex Jurkiewicz | 2017-04-12 16:03:55 -0500

bow of Krishna "Sharnga" -> longbow "The First Bow"
It's not great to rely so explicitly on real-world religion for in-game
theme, when DCSS doesn't take place in our universe.

--------------------------------------------------------------------------------
c3e0a5ca6d | Alex Jurkiewicz | 2017-04-12 16:03:55 -0500

ring of Shaolin -> ring of Avoidance
Shaolin's theme was pretty big on eastern exoticism, so replace with a
simple theme in line with ring of robustness & brooch of shielding.

--------------------------------------------------------------------------------
ec782ace8a | Alex Jurkiewicz | 2017-04-12 16:03:55 -0500

Remove "imported" from lajatang description
It was unconsciously evoking some sort of oriental exoticism, and in
lore terms was redundant since all weapons are imported into the
dungeon!

--------------------------------------------------------------------------------
c81acce838 | Yer mivvaggah | 2017-04-12 15:57:54 -0500

Update docs for advil's mutation changes (#514)
[skip ci]
--------------------------------------------------------------------------------
0e8f6bbeb2 | Chris Campbell | 2017-04-11 18:51:25 +0100

Don't make the captain's cutlass chop hydra heads
Treat it like all other short blades, and turn it into an actual redefined
rapier instead of having its own base type that dealt slicing damage.
Closes #511 PR.

--------------------------------------------------------------------------------
b5f2a4ece5 | advil | 2017-04-11 11:22:59 -0400

Drop an assert
This ended up just needing to recapitulate some code earlier in the
function, I added it before I fully understood how levels was chosen.

--------------------------------------------------------------------------------
c9099aba49 | advil | 2017-04-11 09:44:44 -0400

Fix crash on ignite poison
Cleanup is already handled in the call to `hurt` in an identical way, so
to avoid double death, we can just delete this else (|amethyst).

--------------------------------------------------------------------------------
5e58985c2b | advil | 2017-04-11 00:34:30 -0400

Fix the build
You can't do it like that, says every other compiler but the one I have
locally.

--------------------------------------------------------------------------------
8fa4f26d07 | advil | 2017-04-11 00:16:39 -0400

Fix a false assumption
This will let the player know that there is an invisible monster at what
would be the wall jump landing site if there are other monsters in los,
but I don't see a way around it.  (And it is way more confusing to just
give the basic "You have no room" message in this case.)

--------------------------------------------------------------------------------
9aa165be7e | advil | 2017-04-10 23:56:58 -0400

Improve wall jump message when a monster is in the way
This case was pretty cryptic to me as a new player to WJC.

--------------------------------------------------------------------------------
2db166635e | advil | 2017-04-10 23:35:21 -0400

Don't let plants cause wall jump messaging (Yermak)
This change lets monster_near_iterator to act as a range element; see
the change in god-abil.cc for a cleaner for syntax that is now allowed.

--------------------------------------------------------------------------------
ba41c3cead | Alan Malloy | 2017-04-10 18:42:42 -0700

Use monster& when it's known non-null (|amethyst)

--------------------------------------------------------------------------------
83084bd725 | Alan Malloy | 2017-04-10 18:42:42 -0700

Make monster_die take a monster& instead of a monster*
Most of the changes are provably safe; a few may have been relying
on (now removed) nullptr checks in monster_die, but I don't think so.

--------------------------------------------------------------------------------
93344ec495 | Neil Moore | 2017-04-10 16:00:22 -0400

Turn terrain_property_t into an enum_bitfield.

--------------------------------------------------------------------------------
3ff418bb0f | Chris Campbell | 2017-04-10 18:42:21 +0100

Rename Heaven on Earth to Heavenly Storm
A slightly less weird name that better reflects the ability's flavour.

--------------------------------------------------------------------------------
4eb006deb9 | Chris Campbell | 2017-04-10 18:21:13 +0100

Remove the cancel Song of Slaying ability
The existence of the ability makes using it more fiddly in practice than just
resting off the duration and dealing with the downside of the noise, since it
requires manual cancellation once all visible enemies are killed.

--------------------------------------------------------------------------------
4de0a85fb2 | Chris Campbell | 2017-04-10 18:03:47 +0100

Improve Heaven on Earth description

--------------------------------------------------------------------------------
2aed4d8a36 | Chris Campbell | 2017-04-10 17:47:53 +0100

Adjust Confusing Touch display

--------------------------------------------------------------------------------
6b4a05aa73 | Chris Campbell | 2017-04-10 17:46:58 +0100

Make monster confuse brand from chaos weapons behave consistently
Instead of having different effects when targeting other monsters compared to
the player.

--------------------------------------------------------------------------------
54150e06a2 | Chris Campbell | 2017-04-10 17:46:26 +0100

Fix Confusing Touch being able to affect multiple targets in a turn
In hydra form, or with WJC whirlwind/walljump attacks, it was possible to hit
and affect multiple targets with a single confusing touch before it was
expired.

--------------------------------------------------------------------------------
e8aa30383e | advil | 2017-04-09 22:26:02 -0400

Tweak WJC wall jump messaging
Separate the error message logic very slightly from the capability
logic.  Two improvements that should make these messages less annoying:
(i) the game will now only show wall jump error messages (and possibly
flash) if there is a monster in LOS, and (ii) it won't ever message when
running is stopped by a wall.

--------------------------------------------------------------------------------
35de22d400 | advil | 2017-04-09 11:52:44 -0400

Improve mutation tests and lua bindings
Add a bunch of specific tests for mutation interactions, and improve the
behavior of a bunch of lua mutation bindings.  (Beware of final boolean
arguments in lua bindings!)

--------------------------------------------------------------------------------
dc208312b9 | advil | 2017-04-09 11:52:44 -0400

Fix a deletion case, add some docstrings
Fix a regression in this branch, where deleting a mutation could fail to
delete a normal mutation if there were temporary mutations.  Also,
remove an unused parameter for `mutate()`.

--------------------------------------------------------------------------------
2ae79503be | advil | 2017-04-09 11:52:44 -0400

Generalize Ds testing to all species
This still spends most of its time on Ds since they have the most
potential problems.

--------------------------------------------------------------------------------
f97edb8471 | advil | 2017-04-09 11:52:44 -0400

Fix innate/non-innate mutation interactions
There were a number of ways in which the interaction of innate and
non-innate (temporary or normal) mutations were garbled or just not
working.  This commit fixes all the problems that I am aware of. The
main problems involved non-innate mutations not being converted to
innate mutations properly in several cases on levelup, when the total
mutation level was at the cap.  For example, a player with innate hooves
2, and another non-innate hooves/talons level, would not be able to get
their innate hooves 3 (and this combines with some weird bookkeeping in
certain cases, e.g. for temporary mutation counts).

After this commit, levels of innate mutations will consistently permify
any existing temporary or nontemporary mutations first (starting with
temporary); this is a slight nerf as previously innate mutations would
be added on top of 1 or 2 levels of non-innate mutations. (e.g. normal
robust 1 + innate robust 1 on level gain would lead to 2 levels of
robust.) It appears that the old (not entirely working) behavior was
intended to only permify if the total mutation levels was already at the
cap.

There are likely broken saves out there (especially for DsCK) -- this
only fixes the level gain behavior.

Also includes improvements to tests and debugging behavior.

--------------------------------------------------------------------------------
aec8439ba0 | advil | 2017-04-09 11:52:44 -0400

Add a demonspawn random mutation test
Randomly give a Ds a lot of mutations as it levels up.  Needless to say,
this fails (crashes in validate_mutations) right now. Wizmode level
change will always affect Ds mutations even if the player has been at
that level before (previously the effect was only on the first level
gain).  I did this to make debugging and testing Ds mutations much
easier.

--------------------------------------------------------------------------------
96a32bd697 | advil | 2017-04-09 11:52:44 -0400

Add a (c++) validate function for mutations, including Ds muts
This reveals that many Ds saves with non-trivial non-innate mutations
are broken, because bookkeeping for the case where a non-permanent
mutation becomes permanent on levelup is not done correctly.  Fix coming
in a future commit.

The intent is to eventually call this validation function on load, but
doing this without the Ds fix will create a whole bunch of save compat
issues.

--------------------------------------------------------------------------------
f20264c8a0 | advil | 2017-04-09 11:52:44 -0400

Rework the mutation api and add lua bindings
This commit attempts to improve, reorganize, and better document the
mutation api.  Previously, there appears to have been confusion about
how best to check mutation levels (especially when the mutation mixes
different types of permanence, e.g. temporary and innate, or involves
forms, e.g. see 9c3079238cf3df88a76), and a number of other issues.
This commit introduces canonical ways of getting mutation level
information so that the user doesn't have to directly access
`you.mutation` etc so much, and along the way fixes a number of bugs
related to this.  All mutation is accessed via functions on `player`.
The old `player_mutation_level` (for finding current mutations modulo
forms or other temporary effects) becomes `player::get_mutation_level`;
the key new function for accessing the player's mutation information is
`player::get_base_mutation_level` which allows a clearer way to tally
mutations of different types without knowing how they are stored.

The commit also does a bunch of other cleanup necessary for exporting a
mutation api to lua, and adds a basic mutation test
(`tests/mutation.lua`).

More changes:
 * The logic for trading off opposing mutations wasn't working right
   when they mixed temporary and non-temporary levels, this should be
   fixed.
 * zin will now cure both regular and temporary mutations as part of the
   capstone.  (This should be the only change to game logic that isn't a
   bugfix in this commit.)
 * Convert `mutation_activity_type` to an enum class.
 * add `delete_all_temp_mutations` and fix some temporary mutation
   logic.
 * add `mutation_from_name`, encapsulating some code that was previously
   in `wizard_add_mutation` so it can be used elsewhere.
 * move code for cleaning up temp mutations in mutation.cc, now called
   `temp_mutation_wanes`.
 * encapsulate the mutation part of the overview screen into a function
  that is exported to lua, and also improve the display of temporary
  mutations in this overview.

--------------------------------------------------------------------------------
035ce4085c | gammafunk | 2017-04-09 05:04:40 -0500

Rework a Lair ending vault (Cheibrodos, #10874)
Reduce the difficulty of cheibrodos_lair_end_hotspot and make it more
likely that the fighting will take place inside the vault. A list of
changes from the author:

-Reduced generation for hydras

-Lower chance of spawning fire crab in place of lindwurm

-Gave more places for the gargoyles to spawn, reducing the chance of
 mobbing the player

-Lower chance of overly dense spawns in one area

-Small vault entrance redesign

-Thickened outer wall

-Slightly more defensible hallways

Only change I made was to simplify the placement of the runed door.

--------------------------------------------------------------------------------
faf0b637fd | gammafunk | 2017-04-09 04:56:49 -0500

Nerf a Dungeon vault (Cheibrodos, #10891)
Previously could place two hounds on D:2 in addition to the gnoll. These
are OOD, and a bit more than the intended difficulty of the vault.

--------------------------------------------------------------------------------
3e3c7a0514 | gammafunk | 2017-04-09 04:47:30 -0500

A batch of vaults from Cheibrodos (#10813)
Float and larged themed vaults for Crypt, Elf, Lair, Orc, Shoals,
Spider, and Dungeon/Depths. Vaults featuring many different themes,
including a witch-hunting guild, an Elven blade-works, an Orc
gladiator's arena, a Dungeon fungus farm, an overgrown Lair chateau, and
more.  Additional a couple sewer entry vaults and some Slime decor
vaults continuing the theme of depicting remnants of the branch's lost
civilization.

Edits were mostly to fix errors with monster names, equipment
definitions, a few glyph usage and SHUFFLE/SUBST/NSUBST simplifications.
I removed choke-points in crypt_3hun_7po and crypt_cold_storage (it's ok
for crypt vaults not to have easy ways to handle a vault). Also removed
a hatch in the lair chateau vault, since that vault already has a stone
upstairs immediately adjacent.

--------------------------------------------------------------------------------
0df07f8361 | gammafunk | 2017-04-09 04:47:30 -0500

Fix monster placement in a vault
Document how sewer entry setup expects the vault to define `1' through
KMONS.

--------------------------------------------------------------------------------
b9bd3e64ae | Corin Buchanan-Howland | 2017-04-08 07:51:09 -0400

Make autumn katana a bit less exotic (minmay)

--------------------------------------------------------------------------------
5896763881 | advil | 2017-04-07 23:08:56 -0400

Fix distance ordering for collapsed searches
The stack location shown/used when hiding duplicates should now always
be the closest stack of those that were collapsed.  This commit also
fixes a bug where sometimes stacks could be collapsed with inventory
stacks.

--------------------------------------------------------------------------------
cd8f41eed8 | Isaac Sloat | 2017-04-07 13:58:35 -0500

Update Monk description
[skip ci]

--------------------------------------------------------------------------------
3f209a8f62 | Chris Campbell | 2017-04-07 19:04:40 +0100

Remove some flavour overkill
The phrasing also doesn't make any sense anyway.

--------------------------------------------------------------------------------
b9f0da5b98 | Chris Campbell | 2017-04-07 18:48:50 +0100

Fix item detection interactions with Ashenzari and Jiyva
If abandoning Jiyva with the jelly growth mutation, low-piety Ashenzari
detection would overwrite the fixed radius of the mutation's detection.

--------------------------------------------------------------------------------
62cfa5d936 | Isaac Sloat | 2017-04-06 21:53:48 -0500

Fix compilation (alexjurkiewicz)

--------------------------------------------------------------------------------
3dbb393a05 | Isaac Sloat | 2017-04-06 21:11:10 -0500

Update Bultungin descriptions

--------------------------------------------------------------------------------
9495522b52 | Isaac Sloat | 2017-04-06 21:11:10 -0500

Use get_los_radius() for item detection
instead of LOS_DEFAULT_RANGE. Probably could find other instances of
this throughout the codebase?

--------------------------------------------------------------------------------
7dbbd503fc | Isaac Sloat | 2017-04-06 21:11:09 -0500

Document Bultungin's custom XP table

--------------------------------------------------------------------------------
4122960252 | Isaac Sloat | 2017-04-06 21:11:09 -0500

Alphabetize species-data.h
This file became slightly disordered with various renames and additions.

--------------------------------------------------------------------------------
e003528337 | Isaac Sloat | 2017-04-06 21:11:09 -0500

Give Bultungins fangs
Primarily as a flavor mutation to make them feel more dog (hyena)-like.

--------------------------------------------------------------------------------
171cb2ef63 | Floodkiller | 2017-04-06 21:11:00 -0500

Add a new species: Bultungin
Add the Bultungin, humanoids with the heads of dogs.

Bultungins are unique in their skill training process: instead of having
a static aptitude for each skill, it dynamically scales based on the
current skill level of the skill they are attempting to train. They
start out with an effective aptitude of +4 for all skills until skill
level 7 for each skill. After that, their aptitude for that skill
reduces by 2 for each skill level, with a floor of -6 at skill level 11.

This makes it more efficient for Bultungins to spread out their skills
over attempting to focus on raising a single skill to a high level.

It takes a Human 1400 experience to bring a skill from 0 to 7. Bultungin
need only 700 XP to get to that point. After 7, however, Humans begin to
surpass Bultungin: it takes them only 7050 total XP to advance a skill
to level 15 while a Bultungin takes 13693 total XP to get there, nearly
twice as much.

Bultungins also have see invisible, fangs 1, and can detect any items
within 7 tiles with their strong nose. Other attributes include base
stats of 7 STR/8 INT/9 DEX with increases of sid/5 levels, +2 MR/level,
and baseline XP/HP/MP values.

Closes #487.

--------------------------------------------------------------------------------
e493e742ea | Andrew Minton | 2017-04-06 12:42:17 -0500

Revise and expand the_grid
Clarified connectivity rules.
"Spiral mode" chance is now 25% (was 50%).
Safeguarded against running out of subvaults.
Removed the chance of randomly replacing walls with floor, because islands are 
bad.
Added new shapes, main vaults, and subvaults to go with them.

--------------------------------------------------------------------------------
dc9e609150 | Corin Buchanan-Howland | 2017-04-05 21:00:34 -0400

Remove draconian ghost breath
Having draconian ghosts breathe negative energy doesn't make sense from a
consistency standpoint (no other muts/attributes are ghostified) or from a
balance standpoint. I can't see any good reason to make draconian ghosts
significantly more dangerous if they are XL 7 or greater.

--------------------------------------------------------------------------------
783e32d6a9 | Neil Moore | 2017-04-05 03:53:35 -0400

Avoid a teleport closet in makhleb_altar_promises_db (#10999)
Also avoid generating traps under the demons.

--------------------------------------------------------------------------------
47ad1fdc51 | Corin Buchanan-Howland | 2017-04-04 14:52:44 -0400

Remove the ability to cancel evoked invis prematurely.
This was mostly an interface tax to resolve the problem of removing a +Invis
item while invisible. This implementation allows you to return to visibility
by removing the item, as per before, but now you get the full dose of
contamination that letting the Invisibility effect run its course would
cause.

The only reason to intentionally stop Invis before was to reduce accumulation
of contamination. It's no longer possible to reduce this accumulation by
taking action.

--------------------------------------------------------------------------------
cdeeb85f27 | Chris Campbell | 2017-04-04 18:55:00 +0100

Don't flash the screen when out-of-LOS monsters cast LOS spells (#10995)

--------------------------------------------------------------------------------
7bb5b86b04 | Chris Campbell | 2017-04-04 18:37:29 +0100

Fix a monster list info leak when scrying
Only scry up to your actual current vision range - fixes #10996, which caused
monsters you couldn't yet see to be added to the monster list.

--------------------------------------------------------------------------------
2ca7e2b043 | Chris Campbell | 2017-04-04 18:37:29 +0100

Unbrace

--------------------------------------------------------------------------------
5e11c12020 | Chris Campbell | 2017-04-04 18:37:29 +0100

Fix Ashenzari passive monster detection range
It was unintentionally increased in range by the addition of Barachi.

--------------------------------------------------------------------------------
d383355ad0 | Alan Malloy | 2017-04-04 10:09:25 -0700

Add a getter for los_radius
It would be an error to actually write the global int, bypassing the
los-change code. So, it should only be visible as get/set functions.

--------------------------------------------------------------------------------
a19df7c6b3 | Alan Malloy | 2017-04-04 00:27:23 -0700

Add some parens around a macro argument

--------------------------------------------------------------------------------
92a50c4e50 | Alan Malloy | 2017-04-03 23:19:30 -0700

Mark ratskin cloak's summons correctly (rumflump, |amethyst)
They're not durable summons (like god wrath), but temporary non-summoned
allies (like Sticks to Snames).

--------------------------------------------------------------------------------
916514fd7d | Isaac Sloat | 2017-04-03 14:43:36 -0500

Catch a few Barachian remnants
Every instance has been changed to Barachim or Barachi, accordingly,
except for the adjectival form "Barachian" in species-data.h.

--------------------------------------------------------------------------------
2d876bdc77 | Floodkiller | 2017-04-03 12:11:30 -0500

Remove contamination from Haste.
Removes the contamination from gaining and extending the Haste effect, as
well as the per-turn contamination gain (and prevention of contamination
dissipation) while Haste is ongoing.

While Haste was a spell (and to a lesser degree, as a wand), it made sense
to limit the amount of times Haste was allowed to be used per tactical
encounter, as it could effectively be used as many times as desired
throughout the game.  However, now that the only source of Haste are
potions and unreliable god effects where the player cannot necessarily
guarantee they will receive Haste (Potion Petition, calling a potion shop,
decks of escape, Xom), tactical limitation no longer seems necessary.

--------------------------------------------------------------------------------
2784f4f6bf | Neil Moore | 2017-04-01 18:17:14 -0400

Split off wizard.cc from main.cc.
Ultimately it would be nice to split off all the command handling,
movement code, data structure initialization, and miscellaneous commands
from main.cc.  That would make more of the game's code available to
programs like monster that omit main.o.

--------------------------------------------------------------------------------
ab879bfd87 | Neil Moore | 2017-04-01 17:35:55 -0400

Split up _compile_time_asserts().
Now that they are namespace-scope declarations in C++11.  Rename
what's left to _startup_asserts().

--------------------------------------------------------------------------------
3bf614ab10 | elliptic | 2017-03-31 23:41:20 -0400

Add player lua to tell whether the player is under penance with a specified god.

--------------------------------------------------------------------------------
3d340bbdad | advil | 2017-03-31 22:13:28 -0400

Fix (or at least improve) resolution of temporary mutations
When trying to resolve mutation conflicts, the possibility that an
existing mutation was temporary was ignored.  This fixes the crash in
10981.  I did a bunch of other cleanup and documentation to this code,
but it's still a bit of a mess and I suspect there are more special
cases that aren't handled.

--------------------------------------------------------------------------------
9cf45f896c | advil | 2017-03-31 22:12:41 -0400

checkwhite
[skip ci]

--------------------------------------------------------------------------------
a5226dfdab | advil | 2017-03-31 09:53:11 -0400

Fix webtiles rotting HP label (emsyzz, 10968)
This didn't actually work for anyone except when reloading the game.

--------------------------------------------------------------------------------
ba1b1f945e | Alan Malloy | 2017-03-30 17:36:26 -0700

Be more explicit about a const_cast
Previous code worked around a const reference by finding a non-const
reference to the same monster in the environment, and then operating on
that instead of on the const reference.

Instead, just be honest about the fact that while we usually don't need
to modify the const thing, in this one case we do, by const_casting it.

--------------------------------------------------------------------------------
1ecfa5a772 | advil | 2017-03-30 00:06:35 -0400

Fix conjure flame on self messaging (Avigdore)
Instead of using the 'suicidal' message, use the message for
non-damaging spells that can't target self (in a very indirect way).
This is a quick fix, and arguably `direction_chooser::targets_enemies`,
which doesn't make a lot of sense right now, should be generalized to
handle spells that have to target empty spaces. Right now this concept
is implemented as a special case for particular spells, rather than a
SPFLAG_ or TARG_ value. Setting SPFLAG_NEUTRAL gets the targeter to be
TARG_ANY instead of TARG_HOSTILE, which then is interpreted as something
that doesn't target enemies.

--------------------------------------------------------------------------------
04f50552f8 | advil | 2017-03-29 21:37:00 -0400

Fix interbranch travel in wizmode (elliptic, 10984)
This partially reverts some of the simplification part of 9217641b3915,
with what is hopefully clearer logic at least.  The travel cache needs
to be unupdated during wizmode interlevel travel commands, not during
wizmode in general.  Thanks to elliptic for finding the bug and the
culprit commit.

--------------------------------------------------------------------------------
0d0074d35d | Chris Campbell | 2017-03-29 23:45:28 +0100

Don't try and set charges on Wn boxes of beasts (minmay)

--------------------------------------------------------------------------------
9675bb366b | Chris Campbell | 2017-03-29 23:45:28 +0100

Change Barachi enums to match the species name
Fixes them not being highlighted correctly on ?%. Closes #504.

--------------------------------------------------------------------------------
af809b6da4 | sooheon | 2017-03-29 14:56:10 -0500

Move Monks to Adventurer classification
As they no longer choose a weapon to begin with, this seems more fitting.

--------------------------------------------------------------------------------
b48d95fd49 | sooheon | 2017-03-29 14:56:10 -0500

Remove Monks' starting weapon choice
Distribute the weapon skill points to fighting (4), dodging (4), and
stealth (4). This results in Monks starting with the highest fighting and
dodging in the game, and tied for the highest stealth, but no weapon or
related skills.

Previous rationale for moving to a weapon choice start was that having such a
high skill investment into UC disallowed experimentation. But having weapon
choice results in Monks playing far too much like weaker Gladiators. This change
mirrors the Monks' saved-up piety: starting with high generalist fighting skills
is essentially saved up xp to be used toward a weapon of choice, once one is
taken from the floor or an enemy. Though many melee characters start by focusing
weapon skill anyways, Monks should see a better return on this strategy given
that their supporting skills begin at a higher point.

Flavor wise, this fits the idea of a monk who has trained their body for health
and discipline, but has not studied a particular weapon. Imagine an ascetic
stepping foot into the wrong cave, and being thrown into an adventure. Gameplay
wise, it gives a truly different starting experience from Fi/Gl/Hu in the
starting levels, and it jives corresponds well to the piety gimmick, in that it
is a boost to power *once a condition has been met* (finding an altar, finding a
weapon).

In the majority of cases, this should be a buff. Monks go from 11 skill points
total to 12, and skills are at higher levels, which are more valuable. As soon
as a monk picks up any weapon, they should be in a better place than old monks.
Further, this is a buff in the case that one quickly finds a good weapon which
is different from the type chosen at chargen (0 wasted xp). In the first ~30
turns, this is a nerf to survivability, requiring maximal use of the newly
buffed dodge and stealth.

--------------------------------------------------------------------------------
eb9d9bd046 | advil | 2017-03-29 10:49:04 -0400

Remove use of spam threshold to silently exclude other levels
This produces pretty confusing behavior when you notice it -- if a level
has too much matching stuff on it, it is just silently left out of the
search.  In practice it's mostly triggered by excess ammo.  It's
conceivable that this could produce performance problems, so an eye
should be kept on this; but if the goal was usability, because ammo is
now collapsed by default in searches, this is no longer needed (at least
in my testing).

--------------------------------------------------------------------------------
a5223d7ca3 | advil | 2017-03-29 10:33:30 -0400

Improve display for collapsed missile searches
This now shows both item count and pile count.  With the qualname fix,
it also sorts needles and tomahawks correctly.

--------------------------------------------------------------------------------
5a89274343 | advil | 2017-03-29 10:33:30 -0400

Regularize qualname and basename for missile brands
Before, both showed prefix brands but not postfix brands, so e.g. a
needle of confusion would have a qualname of "needle" but a curare
needle would have a qualname of "curare-tipped needle".  With this
change qualname shows both prefix and postfix brands, and basename shows
neither.  I base this on the behavior of other items, such as scrolls
and potions.  This change may fully resolve 3062.

--------------------------------------------------------------------------------
b4023b8995 | elliptic | 2017-03-29 10:26:48 -0400

GSC base delay: 1.9 -> 1.8.
So that they are more competitive with regular giant clubs, which have
only a bit less base damage (20 vs 22) and require only 18 skill to reach
min delay as opposed to 24 skill for GSC (before this commit).

Note that ogres had a much higher maces apt when GC and GSC delays were last
touched (1e3ea62). With the -1 apt that they have now, the cost of raising
maces to 24 is much higher. Even after this change, I expect that many chars
will prefer to use a GC than to raise maces from 18 to 22.

--------------------------------------------------------------------------------
bddf5556d2 | Isaac Sloat | 2017-03-29 01:00:42 -0500

Relocate migrants from process.txt to new_dev_guidelines.md
Some of the information in the original process.txt file was not very
relevant to outside contributors (how to approach consensus and how our
bug/issue trackers work). They've been moved into our advisory file for
new developers.

[skip ci]

--------------------------------------------------------------------------------
5127991faf | Isaac Sloat | 2017-03-29 00:59:09 -0500

Minor cleanups to new_dev_checklist.md
[skip ci]

--------------------------------------------------------------------------------
aefa9c1719 | Isaac Sloat | 2017-03-29 00:59:08 -0500

Totally rewrite and rename process.txt
Most of the file referred to particulars of the development process in
ancient days (that is, several years ago) which is no longer relevant
these days.

I've cleaned out most of the rotted information and replaced it with a
step-by-step outline for contributors to get their submission reviewed
and potentially merged into Crawl.

This could use some further language cleanup.

There possibly needs to be a 'design_guidelines.txt' created, though I
think the Crawl philosophy is sufficient? Maybe a more succinct file
would be a good idea.

[skip ci]

--------------------------------------------------------------------------------
1ae2c612f8 | Chris Campbell | 2017-03-28 00:26:09 +0100

Improve some spell descriptions
Add some mentions of spells that ignore AC.

--------------------------------------------------------------------------------
560771d492 | Neil Moore | 2017-03-27 08:01:42 -0400

Improve hat of Pondering description (minmay)
It does not protect against the abrasive effects of salt crystal fragments,
or against the attacks of saltlings.

[skip ci]

--------------------------------------------------------------------------------
2efaa84b8c | gammafunk | 2017-03-27 01:09:07 -0500

Remove references to Delayed Fireball (Pekkekke)
Also indicate tile definitions that can be removed with next major
version.

[skip ci]

--------------------------------------------------------------------------------
fa95efab80 | advil | 2017-03-26 11:55:57 -0700

Filter distant duplicates in stash search (Siegurt)
This implements an idea from Siegurt to show only the closest copies of
items when searching stashes. Three kinds of items get collapsed: id'd
weapons and armour, and missile stacks. Collapsing is toggleable with
'=', which also shows/hides useless items (idea from MarvinPA; there is
no separate toggle for useless items, but one can always use better
searches).  Glowing items do not get collapsed (though non-glowing plain
"enchanted" items do by default).

Two changes that come with this: filter useless&duplicates is on by
default, and sorting search results by name first uses DESC_QUALNAME
before the full stash name, which was the previous behavior (i.e.
sorting using determiners and numerals).  This should in general give
more sane results, e.g. previously "3 potions of magic" would get sorted
far away from "a potion of magic", and it behaves much better with
missiles in particular.  There are also some code cleanups to stash
searching suggested by |amethyst.

--------------------------------------------------------------------------------
548304e655 | Chris Campbell | 2017-03-25 19:02:36 +0000

Rework Wu Jian wrath
Simplify it substantially, removing the specific ties between certain effects,
weapons and brands, as well as the not-very-noticeable summoning placements.

--------------------------------------------------------------------------------
6936b3be70 | Neil Moore | 2017-03-25 09:28:54 -0400

De-K&R-ify a brace.
[skip ci]

--------------------------------------------------------------------------------
df3d86c658 | elliptic | 2017-03-25 09:28:01 -0400

Bring back Sil status light when not using noise bar.

--------------------------------------------------------------------------------
b18bc0fa40 | Neil Moore | 2017-03-24 19:43:07 -0400

Data-ify demon<->holy weapon upgrades and downgrades.

--------------------------------------------------------------------------------
689388829f | Neil Moore | 2017-03-24 19:25:59 -0400

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
7688923efa | Chris Campbell | 2017-03-24 23:16:41 +0000

Always give Maurice a wand
Instead of giving him an increased chance compared to other uniques, treat him
like Ijyb (and add a flag for those to both always get a wand).

--------------------------------------------------------------------------------
46c167e02a | Alan Malloy | 2017-03-24 16:15:08 -0700

Omit some redundant checks

--------------------------------------------------------------------------------
1c438e7a29 | Alan Malloy | 2017-03-24 16:14:37 -0700

Convert monster's alt weapons when Yred enslaves its soul

--------------------------------------------------------------------------------
b2787677ad | Alan Malloy | 2017-03-24 15:57:42 -0700

Un-break FULLDEBUG builds

--------------------------------------------------------------------------------
e5852ffc23 | Alan Malloy | 2017-03-24 14:51:49 -0700

Satisfy PleasingFungus's old TODO by deduplicating

--------------------------------------------------------------------------------
d12c4a9f63 | Alan Malloy | 2017-03-24 14:47:01 -0700

Clarify boolean algebra in _give_wand

--------------------------------------------------------------------------------
0498d72a55 | Mnoleg | 2017-03-24 16:56:53 -0400

Invert conditional (#501)
Replace an empty if branch with a negated condition.



* add curly braces


--------------------------------------------------------------------------------
c068411295 | elliptic | 2017-03-24 15:43:50 -0400

Add an option to replace the noise bar with an equipment bar.
The noise bar is great if you are trying to learn which things are noisy.
However, the noise bar is (visually) very noisy itself; it is very
distracting to have it constantly flashing colours and such if you
already have a good sense of which things cause noise.

This commit adds an option "equip_bar", false by default, which replaces
the noise bar with a display of the (glyphs of) items that you currently
have equipped. Usable equipment slots for your character that are currently
unfilled are marked with either "." or " " depending on whether the slot is
currently available (e.g. shield slot is " " if you are wielding a 2-handed
weapon). This bar isn't hugely useful, but at least it provides a quick way
to see how many unfilled equipment slots you have... and a row of shiny
artefacts can be pretty.

Eventually it would be good to have a more customizable HUD where the player
can choose items from a set of many different rows or half-rows, but the
code requires serious cleanup to support something like that.

(This commit also slightly reorders the equipment listing in the % screen:
shield and body armour were swapped, as were left and right ring. It felt
more natural to have weapon and shield slots be adjacent and also have
the first ring slot filled be the first one on the list.)

--------------------------------------------------------------------------------
b611367d8c | Alan Malloy | 2017-03-22 14:53:10 -0700

Remove duplicate word in a comment

--------------------------------------------------------------------------------
1a4ba80388 | Neil Moore | 2017-03-21 21:02:20 -0400

Always give Ijyb a wand.
And increase her depth slightly to compensate.

--------------------------------------------------------------------------------
fe4bc70df8 | Neil Moore | 2017-03-21 20:53:58 -0400

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
6c36bf5211 | Neil Moore | 2017-03-21 20:49:52 -0400

Always give armour to Duvessa and Ijyb (minmay)

--------------------------------------------------------------------------------
b43ff027e0 | Neil Moore | 2017-03-21 20:37:23 -0400

Don't use closing single quote for apostrophes.
[skip ci]

--------------------------------------------------------------------------------
8c7ba5da7e | Neil Moore | 2017-03-21 20:31:53 -0400

Another pop music quote.
[skip ci]

--------------------------------------------------------------------------------
d863c46bfc | gammafunk | 2017-03-21 11:43:21 -0500

Remove item level transit code
The last code that made items transit levels was removed in 9f24bd51.
Add a minor version tag since we're removing an area of the save file.
Leave the necessary unmarshalling code for purposes of save compat, but
with TAG_MAJOR ifdef.

--------------------------------------------------------------------------------
7e3609c97b | Chris Campbell | 2017-03-19 20:12:58 +0000

Reword some references to mana in god passive descriptions (|amethyst)
Variants on "magic" or "magical power" are the terms that are used for
player-visible things.

--------------------------------------------------------------------------------
583f206ce7 | Chris Campbell | 2017-03-19 18:20:59 +0000

Fix Wu Jian messaging (|amethyst)
The messages in god-passive.cc were updated, but those aren't used!

--------------------------------------------------------------------------------
27f6fa8fc6 | Chris Campbell | 2017-03-18 20:55:08 +0000

Don't place clouds through walls during Heaven on Earth
And just place the minimum number of clouds required to block LOS, instead of
multiple big_clouds.

--------------------------------------------------------------------------------
bcc9fa83e7 | Chris Campbell | 2017-03-18 20:31:23 +0000

Further simplify some Wu Jian handling

--------------------------------------------------------------------------------
09a9bfb583 | Chris Campbell | 2017-03-18 01:43:13 +0000

Adjust WJC distraction
Don't apply distraction to already-affected monsters, increase the duration
slightly, and don't decrease monster action energy when applying distraction.

--------------------------------------------------------------------------------
55b1e53e59 | Chris Campbell | 2017-03-18 01:43:13 +0000

Update Wu Jian ability descriptions

--------------------------------------------------------------------------------
bcc8d522a5 | Chris Campbell | 2017-03-18 01:43:13 +0000

Fix spacing and simplify

--------------------------------------------------------------------------------
e3bac265ad | Chris Campbell | 2017-03-18 01:43:13 +0000

Remove the slowing effect from Whirlwind attacks
To make it no longer always superior to standard attacks. It retains its use
for attacking multiple targets at once, repositioning and attacking at the same
time, etc, but now doesn't encourage players to always use it against single
unslowed enemies.

--------------------------------------------------------------------------------
68a6da7a03 | Chris Campbell | 2017-03-18 01:43:13 +0000

Only allow WJC walljumping when a target would be attacked
Require a valid target rather than allow it for heavy use out of combat and for
extremely easy escapes. When walljumping fails, indicate the area that it's
trying to target, to hopefully make it clearer how the ability is aimed. The
distraction should probably also be reworked somewhat to be less spammy but
still strong, since it's short-lived but affects full LOS and can be very
easily repeated in good terrain.

--------------------------------------------------------------------------------
da4b502015 | Isaac Sloat | 2017-03-17 18:16:46 -0500

Forbid spawning in Bailey display cases
[skip ci]

--------------------------------------------------------------------------------
832831ae38 | Nicholas Feinberg | 2017-03-15 16:30:36 -0700

More Desolation vaults (nicolae, 10974)
Entries and subvaults.

--------------------------------------------------------------------------------
bf43aa353b | Alan Malloy | 2017-03-15 16:24:17 -0700

armour of the Dragon King -> scales of the Dragon King

--------------------------------------------------------------------------------
a2611f44d4 | Doesnty | 2017-03-15 16:12:22 -0500

Allow (un)wielding items while berserk (#490)
Allow players and monsters to (un)wield things while berserk, but warn the 
player if trying to wield a launcher.


--------------------------------------------------------------------------------
8d29b0b7d0 | Neil Moore | 2017-03-15 15:51:10 -0400

Fix WebTiles builds.

--------------------------------------------------------------------------------
e40d5b2ed6 | Alan Malloy | 2017-03-15 12:30:29 -0700

Fix Makefile's handling of -s flag

--------------------------------------------------------------------------------
21d059cac8 | Chris Campbell | 2017-03-15 11:50:49 -0700

Don't display stats when examining orbs of destruction
Hide irrelevant parts of the descriptions (HP/AC/EV/MR), and refactor to also
hide other details like intelligence/size for both projectiles and sensed
monsters.

--------------------------------------------------------------------------------
d369c8b37d | Chris Campbell | 2017-03-15 11:50:49 -0700

Fix monsters being coloured grey under mesmerise/fear
Caused by a321ce6414.

--------------------------------------------------------------------------------
1ace032088 | Alan Malloy | 2017-03-15 11:50:49 -0700

Improve _mark_detected_creature
- It takes a const monster& instead of a monster*
- It doesn't waste effort computing a bool nobody cares about
- It uses query_map_knowledge instead of env.map_knowledge
- It doesn't leak information about whether terrain under detected
  monsters has changed since it was last seen

--------------------------------------------------------------------------------
57f3ab6bcc | Alan Malloy | 2017-03-15 11:50:49 -0700

Replace a use of env.map_knowledge with query_map_knowledge
Isn't it lovely not to do the bounds check by hand?

--------------------------------------------------------------------------------
93d275de36 | Alan Malloy | 2017-03-15 11:34:36 -0700

Introduce new function query_map_knowledge
Lets you ask a question about the player's knowledge of a map cell, with
bounds checking implied. Not generally any less verbose than doing it by
hand, but presents an API that encourages thinking about bounds-checking,
as compared to the current approach where it's easy to forget to check
whether the asked-about cell is in bounds.

--------------------------------------------------------------------------------
e60a0390c2 | Alan Malloy | 2017-03-15 11:27:24 -0700

Create new header map-cell.h
Mostly, declares the data model for functions describing map information.
Currently all such functions live in map-knowledge.h, but a future
commit will add some more that need to live higher up in the dependency
order and therefore can't depend on map-knowledge.h.

--------------------------------------------------------------------------------
c7eb419224 | Isaac Sloat | 2017-03-15 12:47:56 -0500

Add description for Ratskin Cloak evokable ability
[skip ci]

--------------------------------------------------------------------------------
95a9dddfd9 | Isaac Sloat | 2017-03-15 12:46:11 -0500

Add description for Heaven on Earth clouds
[skip ci]

--------------------------------------------------------------------------------
d29e1c1b24 | Isaac Sloat | 2017-03-15 12:31:13 -0500

Add Hepliaklqana and Uskayaw welcome lines
Also rearrange for alphabetical order.

[skip ci]

--------------------------------------------------------------------------------
2c13fcc11f | Isaac Sloat | 2017-03-15 12:21:16 -0500

Update Stomp description (10976)
[skip ci]

--------------------------------------------------------------------------------
0624a507ba | Kyle Rawlins | 2017-03-15 08:45:26 -0400

Add a note one documentation in Makefile itself
There's info on prefix, SAVEDIR, etc there too that may help 

in clarifying this issue.
--------------------------------------------------------------------------------
1cde397470 | Yer mivvaggah | 2017-03-15 08:45:26 -0400

Specify what "setting a prefix" means

--------------------------------------------------------------------------------
2c7b0bfe04 | advil | 2017-03-14 14:43:07 -0400

Add another mesmerise check
Prevent odd artifacts while looking off-level when mesmerised.

--------------------------------------------------------------------------------
9226ecd12f | Neil Moore | 2017-03-14 14:18:22 -0400

Recalc LOS, clinging, etc. when wizmode xm destroys walls.

--------------------------------------------------------------------------------
3b19a06f3d | Alan Malloy | 2017-03-14 10:19:09 -0700

Revert cbfb660f8 and 436dd8c64
They seem to be causing serious problems but we don't know why yet.

--------------------------------------------------------------------------------
cbfb660f8b | Chris Campbell | 2017-03-14 15:35:02 +0000

Don't display stats when examining orbs of destruction
Hide irrelevant parts of the descriptions (HP/AC/EV/MR), and refactor to also
hide other details like intelligence/size for both projectiles and sensed
monsters.

--------------------------------------------------------------------------------
436dd8c642 | Chris Campbell | 2017-03-14 15:05:08 +0000

Fix monsters being coloured grey under mesmerise/fear
Caused by a321ce6414.

--------------------------------------------------------------------------------
785f14b8f3 | advil | 2017-03-13 23:02:41 -0400

Block mesmerisation through solid features (10962)
This changes grates/statues to behave like transparent walls for
mesmerisation purposes.

--------------------------------------------------------------------------------
40704424f5 | advil | 2017-03-12 21:14:09 -0400

Remove some obsolete checks for smite-targeting past transparent walls
Affected local tiles mouse targeting

--------------------------------------------------------------------------------
cf33cab7c7 | advil | 2017-03-12 18:51:48 -0400

Make `get_spell_letter` use `you.spell_letter_table`
This function was assuming that alphabetical ordering tracked spell slot
order, which hasn't been true for a while.  Could've affect macros/lua
in any game where spells got reordered, and was definitely affecting
local tiles casting with mouse (which uses macros).

--------------------------------------------------------------------------------
1c3bcfd1ff | advil | 2017-03-12 16:40:45 -0400

Fix a return (local tiles mouse bug)
This keeps a canceled ctrl-self-click from causing the player to wait.

--------------------------------------------------------------------------------
8880629c5b | advil | 2017-03-12 13:58:46 -0400

Check map bounds for local tiles right-click (10600)
Before this fix, tiles simply crashes when you right-click out of
bounds.  This check also prevents a blank display when right-clicking an
unknown space with no features.

--------------------------------------------------------------------------------
d9c272e7bc | Neil Moore | 2017-03-12 09:05:04 -0400

Correct some database comment placements (Alarkh)
"Hepliaklqana forms a fragment of your life essence into the memory of
your ancestor, Jaydra # not many names!"

--------------------------------------------------------------------------------
d30af5035b | Neil Moore | 2017-03-12 09:01:43 -0400

Fix a warning (yrmvgh)

--------------------------------------------------------------------------------
92acfd107c | Neil Moore | 2017-03-11 19:59:05 -0500

Correct a few more keys in db_lint and gather_features.
Add "awoken tree", various halos, and "Pakellas death" to the list of keys;
and remove a few obsolete godspeak keys.

[skip ci]

--------------------------------------------------------------------------------
78d7932ca1 | Neil Moore | 2017-03-11 19:51:45 -0500

Fix missing Xom cloud trail speech.
[skip ci]

--------------------------------------------------------------------------------
f9b334b85e | Neil Moore | 2017-03-11 19:41:12 -0500

Remove/rename some obsolete descriptions and db entries.

--------------------------------------------------------------------------------
fa09539f05 | Neil Moore | 2017-03-11 19:33:30 -0500

Fix up db_lint and util/gather_*.
They were failing to recognise several things because of formatting and
other changes in the code.

Reorder dragon scales to the end of the ARM_ entries in item-prop.cc
to make things easier.

Also have util/cpp_version strip out #pragma once to avoid a warning
from GNU cpp when passed a header file; and specify C++11.

[skip ci]

--------------------------------------------------------------------------------
97e26f10fc | Neil Moore | 2017-03-11 19:28:22 -0500

Fix dragon scales when TAG_MAJOR_VERSION > 34.

--------------------------------------------------------------------------------
4680a508ac | Neil Moore | 2017-03-11 18:00:30 -0500

Checkwhite (doh)
[skip ci]

--------------------------------------------------------------------------------
654850ed84 | Neil Moore | 2017-03-11 17:46:23 -0500

Use more scoped enums and enum bitfields.
And lowercase some existing ones. Also, remove the unused mcache_type.

--------------------------------------------------------------------------------
0c3f484e1f | Neil Moore | 2017-03-11 16:55:17 -0500

Update copyright date in licence.txt
[skip ci]

--------------------------------------------------------------------------------
d94ac0f4fb | Neil Moore | 2017-03-11 07:44:56 -0500

Update metadata.
[skip ci]

--------------------------------------------------------------------------------
d83b866f93 | Neil Moore | 2017-03-11 01:17:02 -0500

Don't crash when ratskin cloak has no room to summon.
http://crawl.akrasiac.org/rawdata/astronautguy/crash-astronautguy-20170311-06111
3.txt

--------------------------------------------------------------------------------
0cc194a960 | Isaac Sloat | 2017-03-10 20:21:40 -0600

Speed up monster Sprinting
The effect was somewhat overlookable: a -2 reduction to the cost of
moving. This would work out to a couple extra tiles over a screenful
approach compared to baseline. Since alligators were already fast in
water, this never felt like a meaningful increase to their ability to
zip up next to the player.

The goal is to increase alligator relevance in Swamp: seeing an
alligator means they're likely to catch up to the player almost right
away, and they're extra difficult to escape from while in watery
terrain. Because of how energy costs work, increasing the movement
discount by 1 has a multiplicative effect on their speed, especially in
water.

Primarily affects alligators in Swamp. Gastronok and Maurice are the
other two monsters that have access to SPELL_SPRINT. This change won't
make Maurice any deadlier, but Gastronok may need to be moved slightly
deeper into the Dungeon.

--------------------------------------------------------------------------------
abbfcfc3b8 | Nicholas Feinberg | 2017-03-10 10:24:22 -0800

Barachians -> Barachim
Move more toward a vaguely Hebrew theme (Barach = 'to flee', or 'to
cause others to flee'), in tribute to their newfound divine origins.
Move away from a mangled scientific name; Formicids and pals are quite
enough for that!

Thought: would it be too weird for them to just be Barach/im?

--------------------------------------------------------------------------------
07130c93c7 | Neil Moore | 2017-03-10 11:53:30 -0500

Re-align mutation conflict table.

--------------------------------------------------------------------------------
162479b5a5 | Neil Moore | 2017-03-10 11:52:18 -0500

Make no regen mutation conflict with fast regen (MrMonch).
Also, make no regen conflict with inhibited regen, rather than trading
off with MUT_SLOW. There was a missing comma.

--------------------------------------------------------------------------------
e5a7832000 | Isaac Sloat | 2017-03-09 00:08:44 -0600

Fix WJC overview screen (10955)
Also contains spacing changse in god_powers.

[skip ci]

--------------------------------------------------------------------------------
77b00a394b | Nicholas Feinberg | 2017-03-08 22:07:13 -0800

Fix a Zin recite comment (10944)
Monsters at 30 hd actually can't be affected, and allowing that
seems to require making zin recite stronger across the board, so...
simpler to just fix the comment.

--------------------------------------------------------------------------------
73d9be0863 | advil | 2017-03-08 23:44:55 -0500

Update los when clouds spread
Wasn't happening at all, apparently.

--------------------------------------------------------------------------------
4f6790263a | Isaac Sloat | 2017-03-08 20:01:29 -0600

Add a color for extreme draining
Magenta, for situations where the player is super duper drained. In
places like the Elven Halls, it's easy to hit Red draining, and continue
on being drained way past that point without noticing. A new threshhold
should help better alert players that they're in serious trouble.

--------------------------------------------------------------------------------
c3a52372af | advil | 2017-03-08 20:24:02 -0500

Consider opacity of old clouds when recalculating los
Before this change, a new cloud that was non-opaque could overwrite an
old cloud that was opaque without los getting recalculated, leading to
rendering issues and crashes when targeting.  (Mainly instantiated by
OOD condensation clouds in opaque fog.)

--------------------------------------------------------------------------------
4803ca2c51 | Isaac Sloat | 2017-03-08 18:38:15 -0600

Add Donald lines for Hep/Usk/WJC
I hate flavor.

--------------------------------------------------------------------------------
97f89d0c31 | Isaac Sloat | 2017-03-08 18:35:49 -0600

Steal away ARTP_FOG
Used only on the Cloak of the Thief. Instead have the ability directly
added when the unrand is equipped.

--------------------------------------------------------------------------------
72f16363a1 | Isaac Sloat | 2017-03-08 18:35:49 -0600

Refactor Ratskin Cloak code
Uses the 'a'bility menu, instead of e'V'oke which is generally reserved
for inventory and holdables. Keeps it consistent with other wearables
that grant you evocable abilities.

This probably should be unified at some point.

--------------------------------------------------------------------------------
939b552fea | Neil Moore | 2017-03-08 11:09:36 -0500

Never switch to webtiles CRT mode in cursorxy()
Push the fix in 0.20-a0-840-gfcb4723 down into cursorxy. The existing
tiles_crt_control in show_map() is still necessary.

--------------------------------------------------------------------------------
df58d0cb91 | Neil Moore | 2017-03-08 10:24:54 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
fcb4723901 | Neil Moore | 2017-03-08 10:18:08 -0500

Fix use_fake_cursor = false webtiles targeting (#7201, #10965)
Broken probably since the dawn of webtiles, but at least since 2013.
When doing a cursorxy on the map we need to temporarily disable CRT
screen switching.

It might be better to move this into cursorxy directly, since as far as
I can tell there is only one other caller, which is also protected by a
tiles_crt_control{false}.

--------------------------------------------------------------------------------
daf5c57d70 | Floodkiller | 2017-03-07 22:02:27 -0600

Fix more hardcoded 27s. (#489)
Fix more hardcoded 27s found in ash_skill_boost(); replaced with

MAX_SKILL_LEVEL.
--------------------------------------------------------------------------------
06be174581 | advil | 2017-03-07 21:35:32 -0500

Reword WJC powers screen so it doesn't overflow on 80x24 (zackoid)

--------------------------------------------------------------------------------
0f21a4da72 | Corin Buchanan-Howland | 2017-03-07 17:57:41 -0500

Update Ru sacrifice piety gain (minmay)
Lowered the piety gain for sac resistance and sac artifice, the latter due to
its lower impact, the former because it was a little too high anyway. Lowered
the piety for screaming, because it was low-impact. Raised piety for
-ev and -ac, and increased how much ac/ev you sacrifice at once from 3 to 5 in
order to make it more impactful. Increased the piety for frail and sac
experience, since losing max hp is more impactful than it got credit for.
Increrased piety for sac love, since allies are great and most chars can
get them somehow.

--------------------------------------------------------------------------------
e7e240fbe1 | Isaac Sloat | 2017-03-07 10:47:09 -0600

Minor cleaning of Wu Jian description (10964)
[skip ci]

--------------------------------------------------------------------------------
d6476b5195 | advil | 2017-03-07 09:58:02 -0500

Revert add loudness to loudness
On consideration, it isn't clear that this works as-is.

--------------------------------------------------------------------------------
c59a6f18e3 | advil | 2017-03-07 09:23:05 -0500

Add loudness to the ring of loudness
This uses a multiplier of x2 per ring, which is possibly too steep.  It
keeps the -stealth effect.

--------------------------------------------------------------------------------
c632bec5d8 | Neil Moore | 2017-03-06 19:10:53 -0500

Give better message when trying to worship Fedhas/Yred while loveless.

--------------------------------------------------------------------------------
0f01416bd5 | Neil Moore | 2017-03-06 19:10:53 -0500

Add qw persist file to .gitignore.
[skip ci]

--------------------------------------------------------------------------------
cd1f35f245 | Floodkiller | 2017-03-06 17:18:07 -0600

Clean up detect_items() (#488)
Cleans up the detect_items() method in spl-goditem.cc.  Include

mutations.h to specifically check for MUT_JELLY_GROWTH instead of implying

it if Ashenzari isn't the player's god, initialize map_radius with a

starting value of 0, and add some descriptive comments.
--------------------------------------------------------------------------------
2c9a30dacb | Isaac Sloat | 2017-03-05 18:34:31 -0600

Pre-identify manuals
Manual identification was broken in 2c266a969726 - step-over would
identify only the first manual in any given game, and all subsequent
manuals had to be picked up to identify their types.

Fixing this using the book/wand autoidentification approach causes much
more issues than it truly solves. So we take a different approach: all
manuals come pre-identified.

--------------------------------------------------------------------------------
299e0253d7 | advil | 2017-03-05 19:00:22 -0500

Disallow leaping fungi
and make the nervousness code a little less confusing.

--------------------------------------------------------------------------------
bdc6353756 | Isaac Sloat | 2017-03-05 16:48:46 -0600

Randomize doesnt_xom_only_xom
Still has the issue of duplicate mimics, but fixing that takes more
effort.

Also fixes a minor comment mistake elsewhere.

--------------------------------------------------------------------------------
96581b6de0 | advil | 2017-03-05 14:35:12 -0500

Let fake_pty (for tests) compile on OS X

--------------------------------------------------------------------------------
242eb585bf | Chris Campbell | 2017-03-05 17:50:50 +0000

Give wading in shallow water a fixed movement speed penalty
Instead of adjusting movement speed with a randomised multiplier, make wading
through shallow water always increase movement delay by 6. Results in
approximately the same average wading speed for humans (and slightly faster for
nagas/slower for spriggans).

--------------------------------------------------------------------------------
e93c148d35 | advil | 2017-03-05 10:24:54 -0500

Check for map bounds when coloring mesmerise ranges (|amethyst)
My first screwup!

--------------------------------------------------------------------------------
a321ce6414 | advil | 2017-03-05 09:11:50 -0500

Make targeter/mesmerise code & rendering consistent across interfaces
This centralizes the code for mesmerise cell darkening (in view.cc,
where only tiles/webtiles were dealt with before) and makes it do
roughly the same thing at the same time for console/tiles.  Before,
console would only show the mesmerise range no matter the targeter, and
(web)tiles would show only the targeter range even when mesmerise was
active and it was a blink-like targeter.  Now, blink targeters will
appropriately color possible target cells if blinking to that cell is
impossible because of mesmerise.

This also fixes up a few other issues, such as the console blink
targeter not coloring appropriately for transparent walls.

--------------------------------------------------------------------------------
dec668e430 | Chris Campbell | 2017-03-04 17:12:40 +0000

Allow shopping and praying while immobile/netted/mesmerised
They were prevented because they used the </> keys, but they're not movement
actions or attempts to actually take staircases so there's no need to block
them on the rare occasion that they occur while on top of a shop/altar.
Re-enables the very important message "You sway towards the altar of foo."

Also allow entering passages of golubria with </> while mesmerised - previously
they could be entered by walking into them (even if the passage would move you
away from the beholder), so blocking entering them while already standing on
one didn't make much sense.

--------------------------------------------------------------------------------
9aa82c1928 | advil | 2017-03-04 11:55:11 -0500

Check for mesmerizers after passwall
world_reacts and player_reacts aren't called, because there is 0 time
spent on the other side of the wall, but some cleanup needs to happen. I
looked into factoring location-related effects out of player_reacts, but
this is not very feasible given that all of the location-related effects
interact with durations on a real turn, and order matters a fair amount
in that faction. This also calls search, because otherwise (I think) it
is optimal but spoilery to wait in place for a turn, at least if
nothing's around.

Of the other relevant effects in player_reacts, this fix ignores two
things that are plausible to happen: the possibility of passwalling into
a silenced area while singing, and passwalling over lava (while flying)
with ozocubu's armour up. Since no time has passed, this is probably ok,
and these will get dealt with on the next turn.  Other location-based
effects: slime wall damage shouldn't happen after 0 time, and
constriction is also handled elsewhere so gets appropriately cleared. It
also doesn't deal with passwalling into a cloud, but this probably
shouldn't do damage immediately.

--------------------------------------------------------------------------------
8f2c41c6ec | advil | 2017-03-04 09:39:00 -0500

Cancel passwall on forced movement from mesmerize (CanOfWorms)
This fixes part of 10961, but the interaction of mesmerize with
pseudo-movement via passwall and other means is still a mess.

--------------------------------------------------------------------------------
557356ee4a | Chris Campbell | 2017-03-03 22:35:06 +0000

Don't let spatial maelstroms consume malign gateways

--------------------------------------------------------------------------------
b8aa1110e1 | Chris Campbell | 2017-03-03 22:17:17 +0000

Refactor handling of endless sea/lava/salt
Fixes #10957, so bolts can no longer bounce off endless lava, as well as
preventing monsters from being able to try and move into endless salt - which
previously was possible for spatial maelstroms.

Also remove some unnecessary checks that were already covered by those
terrain types always being considered uninhabitable.

--------------------------------------------------------------------------------
ed4b26830f | Chris Campbell | 2017-03-03 22:16:44 +0000

Remove an unused parameter
Finally obsoleted by Djinn removal.

--------------------------------------------------------------------------------
b58a58a40d | Chris Campbell | 2017-03-03 21:12:29 +0000

Remove some obsolete handling for walking through lava
Since Lava Orcs are now really removed for real.

--------------------------------------------------------------------------------
ec8dada128 | Chris Campbell | 2017-03-03 19:08:53 +0000

Simplify contamination explosions slightly
Don't increase damage to undead, and cap the explosion size at LOS_RADIUS.

--------------------------------------------------------------------------------
d5e2b114b9 | Chris Campbell | 2017-03-03 19:08:50 +0000

Relocate advil in mailmap

--------------------------------------------------------------------------------
6d883fa45e | Alan Malloy | 2017-03-03 10:01:41 -0800

Fix red sonja sprint temple (escu)
7d8ffb2f replaced an important wall with the altar; this commit
reinstates the wall, and puts the altar on a floor tile.

--------------------------------------------------------------------------------
9dd3d4ce55 | Nicholas Feinberg | 2017-03-03 07:46:52 -0800

Prevent eternal Heaven
From e.g. dying as a felid with extra lives while Heaven on Earth
is active. Credit to "someone on tavern", apparently? Got this one
second-hand.

Also add a sanity check to avoid future issues.

--------------------------------------------------------------------------------
3c0745970b | Yer mivvaggah | 2017-03-03 09:32:29 -0600

Make Pikel less awkward (#484)

--------------------------------------------------------------------------------
58a14f418e | Nicholas Feinberg | 2017-03-03 07:30:55 -0800

Destroy destroy_spellbook (Doesnty)
Obsolete since the removal of Sif's no-book-destruction conduct,
in 22eb85313b3f15e2c70329041d08e02b1fa0fd41. (oops...)

--------------------------------------------------------------------------------
00179d9f2c | Nicholas Feinberg | 2017-03-03 07:26:13 -0800

Fix /Random Effects (10960)
Broken in... 4a616ededea7... :(

--------------------------------------------------------------------------------
af7f6688b0 | advil | 2017-03-01 23:15:38 -0500

Clear some hud state on _reset_game
If the previous game's turn number was lower than the current one, and a
more() was triggered at exactly the right time during a load (when hp
was set but before maxhp was set), the more() would trigger a HUD redraw
that would crash.  This commit clears the HUD redraw on turn # settings
as part of _reset_game.

--------------------------------------------------------------------------------
25e6c9cd99 | advil | 2017-03-01 23:15:38 -0500

Factor species changing out of wizmode (amalloy)
Species changing needs to be available on builds without wizmode for
this save compat thing to work.  This also does error handling in a
somewhat cleaner way.

--------------------------------------------------------------------------------
eca223af9e | advil | 2017-03-01 23:15:38 -0500

Remove temperature even more thoroughly (amalloy)
This also adds a minor tag to indicate that temperature is no longer
saved. Probably a good idea to have a minor tag for this PR anyways.

Includes some other formatting fixes to address amalloy's comments.

--------------------------------------------------------------------------------
b54b6f02f5 | advil | 2017-03-01 23:15:38 -0500

Remove Djinn code
Remove most major-tag-bracketed djinn code blocks.  This leaves a few
things untouched, including the existence of species data, and rltiles.
This commit incorporates some fixes from amalloy, as well.

--------------------------------------------------------------------------------
f1e20021f5 | advil | 2017-03-01 23:15:38 -0500

Remove lava orcs
This removes most TAG_MAJOR_VERSION blocks for lava orcs.  I left a few
for save compatibility reasons (temperature is still read and written),
and some species data is still there, also for save compat reasons.  I
didn't touch rltiles because I'm not sure how anything in there works.
This commit incorporates some fixes from amalloy, also.

--------------------------------------------------------------------------------
f21519896d | advil | 2017-03-01 23:15:38 -0500

Convert Djinni to Vine Stalkers on load
There's no really great match for Djinni, but Vs seemed ok (|amethyst's
suggestion).  This is preparatory to cleaning up as much of their excess
code as possible.

--------------------------------------------------------------------------------
1ce8af00f5 | advil | 2017-03-01 23:15:38 -0500

Convert lava orcs to hill orcs on load
This commit (after a special warning) converts a LO save into a HO.
This is preparatory to removing most LO code.

--------------------------------------------------------------------------------
512f924fd6 | Nicholas Feinberg | 2017-03-01 18:38:51 -0800

Disable berserk penalty for martial attacks
Regardless of the overall balance of the god, this seems incorrect.

Sorry, didn't note down the reporter for this - reddit, possibly?

--------------------------------------------------------------------------------
8b9f790825 | Alan Malloy | 2017-03-01 15:58:26 -0800

Fix temple_doors_cd (ethical_paranoiac)
A bug introduced in cc390b85 meant it was accidentally generating many
random altars outside the temple.

--------------------------------------------------------------------------------
4a616edede | Nicholas Feinberg | 2017-03-01 14:29:50 -0800

Fix monster Freezing Cloud (Doesnty)
Broken by 858c25845014. I did say it was a hacky fix!

--------------------------------------------------------------------------------
1217706527 | Nicholas Feinberg | 2017-03-01 14:10:58 -0800

Remove a duplicate poison cloud placement
Seems to have been accidentally added in 0464b71d0, probably while
trying to implement Poisonous Vapours.

--------------------------------------------------------------------------------
2c266a9697 | Alan Malloy | 2017-03-01 11:31:04 -0800

Don't print manuals' types twice when you drop them (minmay)

--------------------------------------------------------------------------------
48d8da1841 | Nicholas Feinberg | 2017-03-01 09:56:20 -0800

Fix PProj changelog entry (UsaSatsui)

--------------------------------------------------------------------------------
13927d17fd | advil | 2017-03-01 08:39:44 -0500

Add no_trap_gen to an arrival vault (pisechka, Xenobreeder, escu)
to preven hydras from killing new players.

See 
http://crawl.xtahua.com/crawl/morgue/pisechka/morgue-pisechka-20170301-125342.tx
t

--------------------------------------------------------------------------------
a03948bedd | Kyle Rawlins | 2017-02-28 16:23:41 -0500

Fix up some links in the new developer docs
[ci skip]
--------------------------------------------------------------------------------
b9d8e5dab1 | Chris Campbell | 2017-02-28 18:04:35 +0000

Move advil from contributors to devs in CREDITS.txt
Welcome!

--------------------------------------------------------------------------------
3084b0a464 | Chris Campbell | 2017-02-28 16:43:39 +0000

Remove yet more divinations (advil)

--------------------------------------------------------------------------------
09bcfd32e3 | Nicholas Feinberg | 2017-02-27 17:56:22 -0800

Remove Divinations, again
Deja vu...?

--------------------------------------------------------------------------------
f6451d4cd6 | Chris Campbell | 2017-02-28 00:43:30 +0000

Simplify Spellbinder miscasts
Don't base the miscast school on the schools of the spells that the affected
monster knows, instead just always use random miscasts. Having the set of
miscasts change per-monster was unnecessarily complicated, and also caused it
to not affect certain monsters (such as daevas, whose Smiting is affected by
antimagic but who previously never miscasted since it's SPTYP_NONE).

--------------------------------------------------------------------------------
dea14c4813 | Chris Campbell | 2017-02-28 00:05:53 +0000

Remove the Divinations school
It only still existed at all to be used for miscasts, and since that's no
longer necessary it can finally be removed for good!

--------------------------------------------------------------------------------
19352b5b7a | Chris Campbell | 2017-02-27 20:01:19 +0000

Rework sources of divinations miscasts
The only things that used them (other than fully random miscasts) were the
staff of Wucad Mu and Sif Muna wrath. Sif Muna wrath already included all of
the divination miscasts separately anyway, so just adjust weights slightly.
Give the staff of Wucad Mu its own hand-picked lists of effects instead based
on a simplified version of the divination miscast list, with the nice
side-effect that they'll be substantially easier to rebalance if needed.

--------------------------------------------------------------------------------
5cc1a67068 | Chris Campbell | 2017-02-27 17:16:27 +0000

Fix missing items in pitsprint
7d8ffb2f made the falchion always overwrite the quarterstaff placement. Also
restructure the temple area yet again, so it's now future-proofed with space
for up to 27 gods.

--------------------------------------------------------------------------------
4ba49517c0 | Neil Moore | 2017-02-27 00:16:00 -0500

Use windows.h instead of mmsystem.h.
[skip ci] since we don't build Windows on travis-ci.

--------------------------------------------------------------------------------
355e369bdf | Neil Moore | 2017-02-27 00:14:14 -0500

Try to fix Windows builds.
Include mmsystem.h if possible, and define SND_ASYNC and SND_NODEFAULT
ourselves if necessary.

--------------------------------------------------------------------------------
17250f0b11 | Isaac Sloat | 2017-02-26 21:06:01 -0600

Add ezyang to CREDITS
[skip ci]

--------------------------------------------------------------------------------
7d8ffb2f40 | Edward Z. Yang | 2017-02-26 20:53:14 -0600

Add Wu Jian Council to sprints. (#479)
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>



[skip ci]
--------------------------------------------------------------------------------
d0efa66238 | Neil Moore | 2017-02-26 21:48:01 -0500

Don't trap the player in lemuel_flame_loot_2.

--------------------------------------------------------------------------------
128d08bb71 | Neil Moore | 2017-02-26 21:48:01 -0500

Remove obsolete save_compatibility.txt sentences (advil, MarvinPA)
[skip ci]

--------------------------------------------------------------------------------
cf00bbb77f | Neil Moore | 2017-02-26 21:48:01 -0500

Add split-enum and sound headers to MSVC project.

--------------------------------------------------------------------------------
a8316f705f | Neil Moore | 2017-02-26 21:48:01 -0500

Use #pragma once in tile tool and util/art-data.pl.

--------------------------------------------------------------------------------
237613515d | Alex Jurkiewicz | 2017-02-26 21:48:01 -0500

Convert from #ifndef *_H to #pragma once (PR #474)
[Committer's note: Since #pragma once is supported by every compiler
 that we support. -nfm]

--------------------------------------------------------------------------------
4270d38ebf | Autofire | 2017-02-26 21:48:01 -0500

Enhanced sound support (PR #450)
This fork features some enhancements for the sound system. Although my
plans initially were more ambitious, this will do for now.

Adds sound_file_path option, making the current sound option much easier
to use.

Moved all the sound code to its own set of files for future expansion (I
have some plans). Also, makes it painless to fiddle around with
PLAY_SOUND_COMMAND, which previously was in AppHdr.h despite being used
in just one function.

(UPDATE) Adds multiple cues that can be used in place of typical regular
expressions. Some examples are PICKUP, MEMORISE_SPELL, and CHANGE
QUIVER. See sound.h for a full list. I intend of expanding this.

Very incomplete support for a hold_sound option, which is supposed to
pause the game while the sound is playing. This pause is intended to be
sequential, delaying the rest of the message until the sound finishes. I
have two purposes for this: giving battles a real-time feel, and to
highlight those epic victories. This feature doesn't work as intended,
so I dropped the in-game documentation for now.

(UPDATE) Adds one_SDL_sound_channel. Originally, sound behavior depended
on whether you were playing with SDL or using the SOUND_PLAY_COMMAND
define; if playing with SDL/Tiles, only one sound would play at once,
whereas SOUND_PLAY_COMMAND allowed as many sounds as were necessary. By
default, one_SDL_sound_channel is set to false, making it behave as
SOUND_PLAY_COMMAND. However, players can restore the old behavior by
setting this option to true.

(UPDATE) The version screen now tells the user how sounds will be
played. (i.e. "Windows Multimedia API," "External command," or
"SDL_mixer")

Anyway, I know this works as intended on Linux and Cygwin, and I did run
crawl -test to double check stuff. UPDATE: I have now verified that it
works with Tiles! However, I can't test with Windows, Mac, etc. I may or
may not have broken the sound stuff. At worst, some more files need to
be included in sound.cc.

Finally, the game works as normal when compiled without sound support. I
only tested this in Linux, but I'm certain that it should be the same
everywhere else.

Happy crawling!
~Autofire

--------------------------------------------------------------------------------
f3a60fdfab | Alex Jurkiewicz | 2017-02-26 20:41:30 -0600

Add message colouring for Xom stair/shop sliding

--------------------------------------------------------------------------------
3c28938d12 | Chris Campbell | 2017-02-27 01:08:20 +0000

More save_compatability.txt updates

--------------------------------------------------------------------------------
f79451f20c | Neil Moore | 2017-02-26 19:49:49 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
c051a77511 | Neil Moore | 2017-02-26 19:49:40 -0500

Remove signatures and frame story from save_compatibility.txt.
So as not to discourage future edits and improvements to existing
sections.  Documentation is a collaborative effort!

[skip ci]

--------------------------------------------------------------------------------
1d7f8f2eb3 | Neil Moore | 2017-02-26 19:49:32 -0500

Improve save_compatibility.txt.
Add a section on the general architecture of character, major, and minor
tags.  Also make section header formatting and numbering more consistent.

[skip ci]

--------------------------------------------------------------------------------
73021bd113 | Nicholas Feinberg | 2017-02-25 20:47:14 -0800

Note WJC piety source in the changelog

--------------------------------------------------------------------------------
def7eaea7a | Nicholas Feinberg | 2017-02-25 19:24:58 -0800

Changelog through 0.20-a0-770-g8c33442

--------------------------------------------------------------------------------
8c334429b8 | Nicholas Feinberg | 2017-02-25 18:41:05 -0800

Give Barachians LOS 8 (gammafunk)
The general feeling was that Barachians were a bit bland, so let's
add a new mechanic to interact with their existing Hop and slow
movement. They now have +1 LOS, making considerably more spaces
visible than for normal races. This is generally considered Bad;
in exchange, thus, I'm raising their attributes slightly, increasing
level 2 hop range, and also raising most of their aptitudes by +1.

As part of the change, the race is rethemed: instead of being
barbarians from the arctic south, they're now rebellious former
servants of the good gods, which naturally repel shadows. (The
opposite of Nightstalker, more or less.) Accordingly, they now have
poor Invocations, Necromancy, and Stealth apts.

It could be worth making the Robe of Night and the Darkness spell
not work for them, for theme reasons, but that's a long and
slippery slope. Should Umbra not work? Should they be banned from
Dith...? That last in particular was suggested, and might yet
happen, but I'm unsure.

--------------------------------------------------------------------------------
6290b7b016 | Nicholas Feinberg | 2017-02-25 18:38:14 -0800

Change the maximum LOS to 8
Now that we can technically do so. This is to support future
planned mechanics.

Expected effects:

- Some performance impact; iterating over LOS_RADIUS^2 covers
about 28% more tiles, so that might be relevant in some contexts.
Would require testing to see if it's actually a problem.
- mon-place.cc is slightly more reluctant to place monsters near
the player, in some contexts.
- _mons_has_path_to_player() is slightly more cautious about mons
pathing distances.
- IOOD and Gell's Gravitas are very slightly stronger.

--------------------------------------------------------------------------------
627c671e08 | gammafunk | 2017-02-25 19:57:41 -0600

A new dev guidelines document and move team-related docs to a dir
A draft of a guidelines doc we've been giving to new team members in
markdown format. A few sections like Coding Standards Development
Philosophy probably need more work, but the document should also not
become too long or duplicate information stored elsewhere.

Move this new doc and the new dev checklist to a docs/develop/team
subdir.

--------------------------------------------------------------------------------
3afde5bf89 | Chris Campbell | 2017-02-26 00:11:29 +0000

Fix martial attacks working on projectiles (makeAllTheGames)

--------------------------------------------------------------------------------
52e1353275 | Chris Campbell | 2017-02-25 21:05:56 +0000

Remove some unrand messages
The captain's cutlass message was outdated for TSO worshippers and weirdly
worded otherwise, and the Damnation message referred to old hellfire (both of
those could potentially get replacements but Damnation in particular is hard to
come up with good wording for). The thermic engine message duplicates the
unwield message, with the potential of just being spammy in combat when it
drops back to +2 enchantment due to misses.

--------------------------------------------------------------------------------
5b3495a0ed | Chris Campbell | 2017-02-25 20:32:02 +0000

Adjust formatting

--------------------------------------------------------------------------------
58a985ae83 | Chris Campbell | 2017-02-25 20:30:41 +0000

Tweak staff of Olgreb description

--------------------------------------------------------------------------------
30c04593ef | Chris Campbell | 2017-02-25 20:18:55 +0000

Don't make Xom's divine lightning hurt the player (minmay)
It's a particularly rare "good" effect, so shouldn't have a chance of dealing
very high damage to the player (and potentially reducing them to 1 HP).

--------------------------------------------------------------------------------
6bc4dfab12 | Chris Campbell | 2017-02-25 20:14:12 +0000

Give the staff of Dispater fixed HP/MP costs

--------------------------------------------------------------------------------
f9d17c3d05 | Neil Moore | 2017-02-25 11:33:25 -0500

Add "update servers" step to the release guide.

--------------------------------------------------------------------------------
49f55587c3 | Neil Moore | 2017-02-25 00:09:54 -0500

Checkwhite (doh)
[skip ci]

--------------------------------------------------------------------------------
ab50500f22 | Neil Moore | 2017-02-25 00:01:55 -0500

Don't repeatedly generate the same vector of PlaceInfos.
Also, fix formatting.

--------------------------------------------------------------------------------
9d7c357fc2 | Alan Malloy | 2017-02-24 20:57:23 -0800

Merge pull request #473 from rawlins/desolation-import-fix
Load saves where desolation is incorrectly global
--------------------------------------------------------------------------------
13ddd6efe8 | Isaac Sloat | 2017-02-24 21:23:00 -0600

Allow the ratskin cloak to call rats
The ratskin cloak can now summon river or hell rats to accompany you for
a brief time.

This could use better attachment to Evocations skill, maybe?

--------------------------------------------------------------------------------
aefd0f458e | Isaac Sloat | 2017-02-24 21:22:56 -0600

Make the ratskin cloak slightly rattier (minmay)

--------------------------------------------------------------------------------
4c9d53b3c1 | advil | 2017-02-24 21:42:33 -0500

Refine the fix for loading corrupt saves (amalloy)
This adds an assert to only fix desolation, and uses the iterator order
rather than enum order.

--------------------------------------------------------------------------------
480796749b | advil | 2017-02-24 21:40:49 -0500

Correctly clear place info on game reset
This fixes a bug that was leading to save corruption in importing to
0.19 and later (10696, 10788).  What was happening was this:

1. _reset_game calls player(), which initializes the branch numbers
(without actually clearing place info)
2. Then it was calling clear_place_info() which clears all the place
info (without initializing the branch numbers).  Post 0.19, this leads
to branch numbers being set to 127.
3. A save from 0.18 would load, but fill one less place info slot than
needed, because desolation didn't exist.  This last slot wasn't touched
on unmarshalling at all, so was left with its branch number set to 127.
This is the global place info slot.
4. This was saved.
5. On load, the spurious 127 branch hit an assert.

Because this only happened on _reset_game, to trigger the corruption,
you need to exit to the main menu.  Importing a game on an initial
load is fine.

This fix moves all place info initialization to clear_place_info, and
calls it from the constructor.

--------------------------------------------------------------------------------
be47a561dd | Isaac Sloat | 2017-02-24 19:56:12 -0600

Improve the thermic engine vault (regret-index)
Make syntax clearer, use NSUBST for monster distribution, and embiggen
doors.

--------------------------------------------------------------------------------
905781e065 | Corin Buchanan-Howland | 2017-02-24 17:13:18 -0500

Fix an assignment-instead-of-evaluation bug (Brannock)

--------------------------------------------------------------------------------
494b3762e9 | Corin Buchanan-Howland | 2017-02-24 16:17:40 -0500

Fix spacing on species menu some more

--------------------------------------------------------------------------------
c9fbb92a2e | Corin Buchanan-Howland | 2017-02-24 15:50:48 -0500

Reduce the amount of space species selection takes up
It might help with a web tiles / console bug I can't reproduce locally.

--------------------------------------------------------------------------------
b8ae3f33dd | Corin Buchanan-Howland | 2017-02-24 15:02:54 -0500

Tweak groups further (MarvinPA, ##crawl-dev)
Renaming the groups further, moving Deep Dwarf down to the bottom of
Intermediate, moving Halfling up to Beginner, and doing some light sorting
within groups.

--------------------------------------------------------------------------------
37d859662f | Isaac Sloat | 2017-02-24 13:56:02 -0600

Alphabetize
[skip ci]

--------------------------------------------------------------------------------
a2ecc45b69 | Corin Buchanan-Howland | 2017-02-24 14:38:11 -0500

Adjust species group names and contents (PleasingFungus, ##crawl-dev)

--------------------------------------------------------------------------------
43cdf58047 | Corin Buchanan-Howland | 2017-02-24 14:24:30 -0500

Refactor new game menu construct functions to allow species groups (minmay)
The idea here is to make it easier for new players to choose which species
they want to play.

The groups I chose for V1 are based on the difficulty for a new player to
learn the species, not overall species power or other attributes. I tried
to rank by relative ease of learning within each group as well.

Obviously this opens the door to discussion about whether these are the
correct groups and how many groups there should be, but any future changes
should be a lot easier with this infrastructure in place.

The current groups are:
"Beginner",
SP_HILL_ORC,
SP_MINOTAUR,
SP_MERFOLK,
SP_TROLL,
SP_GARGOYLE,
SP_BASE_DRACONIAN,
SP_DEEP_DWARF,
SP_HUMAN,
SP_GHOUL,

"Intermediate",
SP_KOBOLD,
SP_HALFLING,
SP_DEMONSPAWN,
SP_CENTAUR,
SP_SPRIGGAN,
SP_TENGU,
SP_DEEP_ELF,
SP_OGRE,
SP_VAMPIRE,

"Advanced",
SP_VINE_STALKER,
SP_DEMIGOD,
SP_FORMICID,
SP_NAGA,
SP_OCTOPODE,
SP_FELID,
SP_BARACHIAN,
SP_MUMMY,

The old order is still in code as species_order in newgame.cc. For future
reference, it is:
// comparatively human-like looks
SP_HUMAN,          SP_DEEP_ELF,
SP_DEEP_DWARF,     SP_HILL_ORC,
// small species
SP_HALFLING,       SP_KOBOLD,
SP_SPRIGGAN,
// large species
SP_OGRE,           SP_TROLL,
// significantly different body type from human ("monstrous")
SP_NAGA,           SP_CENTAUR,
SP_MERFOLK,        SP_MINOTAUR,
SP_TENGU,          SP_BASE_DRACONIAN,
SP_GARGOYLE,       SP_FORMICID,
SP_BARACHIAN,
// mostly human shape but made of a strange substance
SP_VINE_STALKER,
// celestial species
SP_DEMIGOD,        SP_DEMONSPAWN,
// undead species
SP_MUMMY,          SP_GHOUL,
SP_VAMPIRE,
// not humanoid at all
SP_FELID,          SP_OCTOPODE,

--------------------------------------------------------------------------------
cc014f1852 | chereshnev | 2017-02-24 11:37:28 -0600

Update CREDITS.txt (#476)
Wrote my name more precisely.



[skip ci]
--------------------------------------------------------------------------------
1de7011fc1 | Isaac Sloat | 2017-02-24 11:24:27 -0600

Add SteelNeuron to CREDITS.txt and mailmap
Thank you for all your work on the Wu Jian Council!

[skip ci]

--------------------------------------------------------------------------------
e5945338a3 | PabloMansanet | 2017-02-24 11:04:49 -0600

Fix DEAD_MONSTER message prompt on wall jump

--------------------------------------------------------------------------------
02c9e3ca32 | Corin Buchanan-Howland | 2017-02-24 11:36:06 -0500

Merge special buttons for background and species menus into one function

--------------------------------------------------------------------------------
05c1739a1f | Corin Buchanan-Howland | 2017-02-24 10:27:00 -0500

Merge _prompt_job and _prompt_species
They were ~200 lines of identical code.

--------------------------------------------------------------------------------
ab781cdc92 | advil | 2017-02-23 23:52:05 -0500

Load saves where desolation is incorrectly global
Some games transferred from pre-0.19 to post-0.19a will then save with
desolation's place info incorrectly numbered as the global place slot,
triggering an assertion failure on load.  This patch loads these files
without crashing; it limits the time-frame of this fix with a new minor
tag.  No one who has tried has been able to duplicate the save file
corruption, though we have several saves that result from it, so the
root cause may return or still be present.

Fixes some saves found attached to 10696 and 10788.

--------------------------------------------------------------------------------
6bb112f818 | Doesnty | 2017-02-23 20:46:49 -0600

Add Cancel Portal Projectile ability (#471)
Portal Projectile has a somewhat dubious side-effect of adding a 1 MP cost to 
every missile shot. While the spell is useful, its effect is not always desired 
for the full length of the effect. As the only way to rid oneself of this 
effect is to wait for the spell to time-out, high spellpower is sometimes bad 
as it extends the duration of the spell.



This commit solves the problem by adding an ability to cancel the effect 
instantly.
--------------------------------------------------------------------------------
b057e6854a | ontoclasm | 2017-02-22 18:40:45 -0600

New WJC ability tiles

--------------------------------------------------------------------------------
7c16db2ca4 | Chris Campbell | 2017-02-23 00:05:49 +0000

Fix spacing

--------------------------------------------------------------------------------
d3249daf96 | Chris Campbell | 2017-02-22 20:46:26 +0000

Fix wording

--------------------------------------------------------------------------------
514b03d412 | Chris Campbell | 2017-02-22 20:44:43 +0000

Rework Hepliaklqana ancestor info table

--------------------------------------------------------------------------------
50accb0f2b | Yer mivvaggah | 2017-02-22 10:14:41 -0600

correct Cerol's creation guides for new enums (#470)
* correct Cerol's creation guides for new enums
--------------------------------------------------------------------------------
f92fd718fd | Neil Moore | 2017-02-22 00:31:37 -0500

Level up from the last !exp in a floor stack (advil, #10904)
Background: To avoid an exploit where killing the game in the middle of
levelling up from potion of experience gave you both the level and the
potion, we deferred the call to level_change() until the very end of
drink(), after using up the potion (decrementing its quantity).

If the potion was the last one its the stack, that meant that we were
checking the sub_type of a destroyed item (to see whether it was
POT_EXPERIENCE).  Fortunately, destroying an inventory item stack (with
dec_inv_item_quantity) does not actually clear the sub_type.  So as long
as we didn't do anything between those two steps, things were fine, if
somewhat fragile.

Then someone went and added the ability to drink potions off the floor.
Unfortunately, unlike its inventory cousin, dec_mitm_item_quantity
*does* clear the sub_type (and everything else) of a destroyed stack...
meaning we forgot that the potion was !exp and therefore never ended up
calling level_change().

Fix this, and make the inventory case less fragile, by testing whether
the potion was !exp before decrementing its quantity.  The actual call
to level_change() still comes afterwards.

--------------------------------------------------------------------------------
97c0b12334 | Neil Moore | 2017-02-21 23:36:39 -0500

Fix levdes.vim syntax.
[skip ci]

--------------------------------------------------------------------------------
ecde0bf63f | Isaac Sloat | 2017-02-21 21:57:19 -0600

Less thermic spam (MarvinPA)
I probably shouldn't have removed this in the first place, to be honest.
Having it show up only occasionally is enough to reinforce the flavor,
without bothering the player every single time they finish a combat.

[skip ci]

--------------------------------------------------------------------------------
327707668c | Isaac Sloat | 2017-02-21 21:38:22 -0600

More thoroughly rename the Council (|amethyst)
I forgot about ijc/IJC strings, oops.

--------------------------------------------------------------------------------
963469ac09 | Isaac Sloat | 2017-02-21 21:33:21 -0600

Rename Ieoh -> Wu
The god's name has been discussed multiple times, and the consensus
seems to be that it's better, if we're going to use actual Chinese for
the god's name, to not have nonsense Chinese mixed in.

SteelNeuron originally intended the god to be named Wu Jian Council, so
we're returning to that.

--------------------------------------------------------------------------------
23e1c2549a | Neil Moore | 2017-02-21 19:58:21 -0500

Checkwhite
[skip ci]

--------------------------------------------------------------------------------
9919a8986e | Alex Jurkiewicz | 2017-02-21 19:57:55 -0500

Fix DD loading re: inhibited mutation rework
And make inhibited regen a random bad mutation again.

--------------------------------------------------------------------------------
b9310240c9 | Nicholas Feinberg | 2017-02-21 15:13:45 -0800

Simplify tags.cc TAG_MAJOR_VERSION ifdefs

--------------------------------------------------------------------------------
ad756b33b3 | Alex Jurkiewicz | 2017-02-21 15:09:15 -0800

fix comment

--------------------------------------------------------------------------------
4b0bcd1557 | Alex Jurkiewicz | 2017-02-21 15:09:15 -0800

Change slow regeneration to a single level mut
Only the second level remains (no regeneration in LOS of monsters), now
named "inhibited regeneration".

A new mutation "No Regeneration" is added, which is Deep Dwarf only.

Ghouls used to get slow regeneration 1, now they receive inhibited
regeneration 1, which is worse. :skull:

The goal of this change was to remove the mostly ignorable slow
regeneration 1 mutation. As well as this, slow regeneration 3 was
crushingly bad on anyone but DD, and it wasn't very fun having the
chance to get it much more likely if slow regeneration became a two
level mutation.

--------------------------------------------------------------------------------
f57855bd0f | Nicholas Feinberg | 2017-02-21 14:45:05 -0800

Fix an ancestor name key type (chequers)
Intentionally deadnaming him for proper shaming. Booooooooo!

--------------------------------------------------------------------------------
6618013a56 | Isaac Sloat | 2017-02-21 15:59:03 -0600

Even better thermic engine tiles (CanOfWorms)
Now a double sword!

--------------------------------------------------------------------------------
7b2f801c0f | Isaac Sloat | 2017-02-21 14:16:05 -0600

Tie thermic engine depower to time passed
Depowers at a consistent rate even when the wielder is slowed / hasted.
Ensure it can't go below +2.

--------------------------------------------------------------------------------
8cd9b41c25 | Chris Campbell | 2017-02-21 20:04:00 +0000

Scale Singing Sword damage with time taken

--------------------------------------------------------------------------------
0c7a0cf0f3 | Chris Campbell | 2017-02-21 20:04:00 +0000

Remove the Flaming/Chilly Death unrands
They got squished together into the thermic engine. (Neither of them was very
interesting even with their sticky flame/flash freeze mechanics).

--------------------------------------------------------------------------------
a6a841111a | Isaac Sloat | 2017-02-21 13:48:20 -0600

Allow the thermic engine to power up
19645da51d made it impossible for the sword to power up without
ripostes. Whoops.

--------------------------------------------------------------------------------
ff4dff1fac | Isaac Sloat | 2017-02-21 13:12:56 -0600

Don't place unrand vaults in Pan (Doesnt)
[skip ci]

--------------------------------------------------------------------------------
4fb63ed79e | Isaac Sloat | 2017-02-21 13:05:25 -0600

Add brannock_guarded_unrand_thermic_engine
A vault that separates fiery and icy demons from each other to violate
the Second Law of Thermodynamics!

References https://en.wikipedia.org/wiki/Maxwell's_demon

--------------------------------------------------------------------------------
19645da51d | Isaac Sloat | 2017-02-21 13:05:20 -0600

Rapidly depower the thermic engine
Used to take ~36 turns to power down fully. Now takes 12, losing a plus
every turn that it's not used in combat. Encourages wielders to stay
constantly engaged in combat for maximum effect.

--------------------------------------------------------------------------------
d8828e9c65 | Isaac Sloat | 2017-02-21 13:05:16 -0600

Tiles for Maxwell's thermic engine (CanOfWorms)
Spiffy!

--------------------------------------------------------------------------------
df8f29588f | olowin | 2017-02-21 13:04:05 -0600

New unrand: Maxwell's thermic engine
A double sword with double the usual number of brands, applying freezing
and flaming brands to its unfortunate victims. The engine revs up with
each swing taken, intensifying from +2 to +14.

(Closes #388.)

--------------------------------------------------------------------------------
e118e6b877 | Chris Campbell | 2017-02-21 17:37:22 +0000

Adjust some form descriptions
To use present tense consistently, as well as some minor wording tweaks.

--------------------------------------------------------------------------------
f01b4e9a71 | Isaac Sloat | 2017-02-21 09:42:36 -0600

Capitalize the Council
[skip ci]

--------------------------------------------------------------------------------
71b569a94c | Isaac Sloat | 2017-02-21 00:15:03 -0600

Spellcheck (Lightli)
[skip ci]

--------------------------------------------------------------------------------
d40821f382 | Alex Jurkiewicz | 2017-02-20 22:26:27 -0600

Simplify base UC damage for forms (minmay)
Blade hands, statue form and dragon form all had base unarmed damage
that scaled with strength (and dexterity, for blade hands). Remove this
scaling and replace it with flat damage.

Naive damage comparison, using the average stats of winning transmuters
at various XLs:
* XL10 (17str, 20dex)
* XL15 (22str, 24dex)
* XL20 (25str, 25dex)
* XL27 (28str, 28dex)

Blade Hands (10% more at XL10, 20% less at XL27):
* XL10: Old: 20, New: 22
* XL15: Old: 23, New: 22
* XL20: Old: 25, New: 22
* XL27: Old: 27, New: 22

Statue Form (same at XL10, 20% less at XL27):
* XL10: Old: 12, New: 12
* XL15: Old: 13, New: 12
* XL20: Old: 14, New: 12
* XL27: Old: 15, New: 12

Dragon Form (40% more at XL10, same at XL27):
* XL10: Old: 23, New: 32
* XL15: Old: 27, New: 32
* XL20: Old: 29, New: 32
* XL27: Old: 31, New: 32

--------------------------------------------------------------------------------
fb6476c33c | Isaac Sloat | 2017-02-20 19:01:12 -0600

Add advil to credits and mailmap
Thank you for all your contributions, advil!

--------------------------------------------------------------------------------
895272c63e | Alex Jurkiewicz | 2017-02-20 17:00:16 -0800

Break up enum.h
This change should help speed up compilation when making changes to
enums, since you won't have to recompile as much of the codebase.

Also uses '#pragma once' instead of the more traditional '#ifndef
MY_DEFINE_H' approach for the new files. A future commit will convert
all files to use this guard style.

--------------------------------------------------------------------------------
4c9de2e85c | Kyle Rawlins | 2017-02-20 18:55:35 -0600

Noisebar tweaks (#466)
This significantly cleans up the code for the noise bar and makes the

behavior/appearance easier to adjust; now all the color and a lot of the

sizing is done in just the css file based on two custom attributes.  The

appearance/behavior of the bar itself should be unchanged (give or take

a few pixels), except for silencing.



This commit also rolls in a cleanup/change in how silencing is

displayed (PleasingFungus), as well as preventing a json information

leak (gammafunk): exact noise values no longer leak outside of wizmode.



It also changes Gozag money display to be lightgray instead of gold

based on feedback in ##crawl-dev (31f7f79).
--------------------------------------------------------------------------------
be8799ed15 | Isaac Sloat | 2017-02-20 14:23:11 -0600

Replace mutation with cancellation in Holy Pan
Zin does NOT approve of mutation!

These were originally potions of cure mutation, and got overlooked in
the great shift. Cancellation is more in keeping with the theme of
'cleansing' -- and it does reduce Contam, after all.

--------------------------------------------------------------------------------
bbd08f1b7c | Isaac Sloat | 2017-02-20 13:55:48 -0600

Make Portal Projectile use Hexes
As it's now in the Book of Debilitation, which is otherwise
Hex-themed. Helps Arcane Marksmen transition into the spell.

Possibly fits better as Charms/Translocations, but there's some
thin connection here with Corona and PProj improving player accuracy,
as well as with Spectral Weapon. I imagine the victims of this spell
will feel effectively hexed when they're instantly skewered by arrows.

--------------------------------------------------------------------------------
16b016fdab | Isaac Sloat | 2017-02-20 13:55:48 -0600

Make Gell's Gravitas use Tloc only
As it no longer confuses monsters, just moves them around.

--------------------------------------------------------------------------------
ea6813923d | Isaac Sloat | 2017-02-20 13:55:48 -0600

Swap Gravitas and Portal Projectile
Arcane Marksmen now get access to Portal Projectile in the Book of
Debilitation. Warpers get access to Gell's Gravitas in their starting
Book of Spatial Translocations.

This should help better unify the theme of both books and starts: Arcane
Marksmen get access to spells that are focused around keeping the enemy
away (Slow, Cause Fear, Liquefaction) and improving their ranged attacks
(Corona, Inner Flame, Portal Projectile). All spells Warpers get now are
focused on repositioning themselves or others.

Gravitas wasn't very successful in the AM book since other spells
already do what it does much more effectively and efficiently. Encouraging
Warpers into ranged with Portal Projectile was kind of weird, given that
that background should be item-agnostic for the most part.

--------------------------------------------------------------------------------
576ffe5d53 | Isaac Sloat | 2017-02-20 12:52:15 -0600

Clarify Fighting description (Yewbacca)
Also removes all references to "hand-to-hand combat" in the Crawl
manual.

--------------------------------------------------------------------------------
bd4582c47f | Isaac Sloat | 2017-02-19 16:02:55 -0600

Merge pull request #468 from Doesnty/deeptroll3
Deep trolls and iron trolls drop blue and gray hides.
--------------------------------------------------------------------------------
f4eee11b6d | Doesnt | 2017-02-19 15:48:47 -0600

Deep trolls and iron trolls drop blue and gray hides.

--------------------------------------------------------------------------------
05b73b74fa | Chris Campbell | 2017-02-19 21:06:49 +0000

Adjust some Ieoh Jian descriptions

--------------------------------------------------------------------------------
046a0a6e77 | Chris Campbell | 2017-02-19 21:06:49 +0000

Generalise some god descriptions
Fixes the information being missing for IJC and Ru (and also makes the IJC
description too long for 80x24!)

--------------------------------------------------------------------------------
12fdf77d50 | Neil Moore | 2017-02-19 14:03:13 -0500

Simplify.
Return an object directly rather than making a variable; convert an
if/else into a ternary expression; and avoid a string literal with
magic amounts of whitespace.

--------------------------------------------------------------------------------
5f0ea47297 | Neil Moore | 2017-02-19 14:03:12 -0500

Fix formatting.
Mostly regarding braces around blocks, functions, and classes / structs /
enums.

--------------------------------------------------------------------------------
b4dbc05809 | Neil Moore | 2017-02-19 14:03:11 -0500

Add -edit-save default output file to .gitignore.
[skip ci]

--------------------------------------------------------------------------------
50be3deeb7 | Neil Moore | 2017-02-19 14:03:11 -0500

Restore new sqlite contrib version.
Reverted in the IJC merge.

--------------------------------------------------------------------------------
0c5bb27cdc | PabloMansanet | 2017-02-19 09:41:24 -0800

New god: the Ieoh Jian Council
-- Gameplay Niche --

IJC is a god based on mobile melee combat, offering strong incentives
to fight groups of enemies in the open. It provides melee characters
with a strong but relatively flat power increase in the form of special
attacks triggered by moving, and offers effective positioning tools to
hybrids and ranged characters.

IJC is different from other melee focused gods in that its active
abilities are unlocked late and lacks any permanent gifts. It is instead
focused on offense and constant mobility. Its associated brand is Speed,
and to a lesser extent Flaming and Electrocution.

-- Theme --

IJC is a council of formerly mortal monks. The theme draws heavily from
Chinese imagery and traditional Chinese martial arts in particular.

-- Powers --

The god revolves around three "martial attacks" and the interactions
between them. The player is incentivized to use these special attacks
in difficult fights, and they're designed to prevent any of the three
from being overcentralizing or optimal for any particular build.

Below is a brief description of each of them, and the justification for
each particular effect.

Lunge: Triggered by moving towards an enemy. Deals extra damage against
slowed or distracted enemies.
   * It is important that constantly luring and lunging against full-speed
   monsters isn't optimal; hence, Lunge doesn't impart any status effect,
   and instead exploits monsters who are already unable to kite effectively.

Whirlwind: Triggered by moving from a tile adjacent to an enemy to another
tile adjacent to it. Can cause slow.
   * Whirlwind is the most spammable of the moves, so it is assigned a
   non-stacking, longer duration debuff so players are incentivized to
   improvise once the effect triggers. The slow lasts around six turns.

Wall Jump: Triggered by moving against a solid obstacle. It propels the
character two tiles in the opposite direction, attacking in an area of
effect. Can cause a brief distraction to onlookers.
   * Wall Jump provides the most benefit in terms of positioning and
   escape, while being the least spammable, and as such is assigned a shorter
   duration, more tactical debuff (1-3 turns).

There isn't a 1-to-1 relation between moving and attacking. Instead,
moving causes the player to trigger the appropriate martial attack a
number of times, that averages out to the same number of attacks per
aut as normal tabbing (thanks to weighted rounding).

After the three moves are unlocked, the player unlocks two active
abilities.

Serpent's Lash: Instant ability with Exhaustion and a moderate Piety
cost. Causes your next two movement actions to be instant, and boosts
your martial attacks during them. Serpent's Lash can be used as a simple
escape, but given how the geometry of the level affects Wall Jump, it's
generally more efficient to use martial attacks even when running away,
which combines well with the kit.

Heaven on Earth: Summons a storm of golden clouds. Provides a hefty
Slaying bonus and constantly triggers a powerful opaque fog, reducing
visibility and protecting against ranged monsters. The storm is very
short lived, but continuing to use martial attacks against multiple
enemies refreshes the duration and increases the slaying bonus. It
can last indefinitely if the player is able to stay in combat against
multiple enemies in the open. Heaven on Earth has explicit synergy
with Serpent's Lash, as the latter will prevent the storm from decaying
while allowing the player to build it back up quickly.

--------------------------------------------------------------------------------
71b79436b5 | Chris Campbell | 2017-02-19 12:11:04 +0000

Merge pull request #463 from lischenko/to-to
Fix a few typos in docs and source
--------------------------------------------------------------------------------
944838a37f | Vitaly | 2017-02-18 23:13:44 -0800

Fix a few typos in docs and source
Duplicated "to", for example:
"Select a spell to read its description or *to to* memorise it"

--------------------------------------------------------------------------------
860b9abe25 | Chris Campbell | 2017-02-18 18:29:00 +0000

Update some slow/exhaustion comments

--------------------------------------------------------------------------------
05e1fd30a3 | Chris Campbell | 2017-02-18 18:29:00 +0000

Update some descriptions for spells with cooldowns

--------------------------------------------------------------------------------
5abc3fc280 | Nicholas Feinberg | 2017-02-18 08:37:33 -0800

Refactor get_noise_perception(), again
Avoid state, above all else!

--------------------------------------------------------------------------------
b4b6995c45 | advil | 2017-02-18 16:09:55 +0000

Fix display on excommunication
There was an implicit else case that I had missed when the player
worships GOD_NO_GOD.  This restructures the if to be nested, which I
think is much clearer for what needs to happen here.

(Closes #462 PR)

--------------------------------------------------------------------------------
de5e835706 | Chris Campbell | 2017-02-18 16:09:55 +0000

Fix some wizmode gold change issues
To correctly redraw the gold display, print a message showing your new gold
amount, and to prevent negative gold.

--------------------------------------------------------------------------------
7852e39c3e | Chris Campbell | 2017-02-18 16:09:55 +0000

Adjust colouring of Gozag gold display
To use the standard lightgrey for the value.

--------------------------------------------------------------------------------
d0eeda6068 | Chris Campbell | 2017-02-18 16:09:55 +0000

Don't allow time step to have a 0 turn duration
If for some reason you use it with no invocations skill. Also refactor slightly.

--------------------------------------------------------------------------------
666c526d3e | Neil Moore | 2017-02-18 10:15:06 -0500

Checkwhite for "French" spacing.
[skip ci]

--------------------------------------------------------------------------------
f83e07ff55 | Nicholas Feinberg | 2017-02-17 21:06:04 -0800

Fix webtiles, hopefully (advil)

--------------------------------------------------------------------------------
5c496f53f1 | Nicholas Feinberg | 2017-02-17 20:01:55 -0800

Fix noise meter + temporal distortion (advil)
Advil's code, actually! I'm just pushin' it

--------------------------------------------------------------------------------
b4e6d0e4bd | Nicholas Feinberg | 2017-02-17 19:34:03 -0800

Fix noise breakpoints (advil)

--------------------------------------------------------------------------------
4c2ed67882 | advil | 2017-02-17 19:15:25 -0800

Remove redundant status light for silence
This is displayed as part of the noise meter.

Closes #454.

--------------------------------------------------------------------------------
cc4efd4d51 | advil | 2017-02-17 19:15:15 -0800

Add a noise meter to the HUD
Noise is one of the more complicated systems in dcss, yet it's barely
represented in the UI.  This is partly because there's just so much
information to represent.  This commit attempts to partially solve this
problem by providing a very simple UI element that summarizes noise
heard by the player during the last turn in the form of a meter.  This
meter peaks at the loudest noise audible at the player's position during
that turn, and will switch between several different colors (details
vary slightly for different interfaces), described below.  I chose to
use sound that has propagated to the player, so more distant events will
be attenuated by distance and dungeon features -- the idea is to give a
measure as to how likely things are to move towards the player's
position.

While experienced players may have internalized a lot of this, most of
this information is not at all apparent to less experienced players, and
I think this UI element is potentially extremely useful (as opposed to
clutter).

1. lightgray: the noise level at the player's position is within a range
that makes it unlikely to propagate outside the player's los (though
this can happen depending on terrain).  Or more simply: this noise is
probably basically ok.  Most low-medium melee damage is in this
category, as are most low-damage spells.

2. yellow: the noise heard at the player's position is likely to
propagate outside the player's los, up to twice the los radius.  Or more
simply: this noise is bad.  Shouting, distant fireballs, high damage
melee attacks, high damage spells (e.g. many bolt spells), door creaks
are in this category.  longbows and bigger crossbows are on the border
of this category.

3. red: the noise is like to be heard at a substantial distance, on an
open level more than 2x the los radius.  Or more simply: this noise is
very bad.  This category includes howler monkeys, lightning bolt, nearby
fireballs, qazlal at pieties above ****.  (Though thunder clouds may
randomly produce red noise at nearly any piety.)

4. lightmagenta: these sounds are off the meter, the loudest sounds you
can make.  Includes: shatter, gong, ood collision, orb apport/pickup

Potential issues/complications:
* This implementation uses a heuristic for branch noise adjustment
that is kind of hacky.  A better (but much more complicated) solution
might be to sample noise at various distances directly from the noise
grid.  Right now I just use a constant addition or subtraction to model
the effects of branch noise; in e.g. shoals or crypt this will push
some of the category boundaries for colors around.
* An alternative approach would be to not use attenuated noise at all,
but find the loudest noise (before propagation) in the player's los.
* In wizmode there is also a numeric version of the meter displayed,
but I decided this is too uninterpretable to be useful to players.
(But, the heuristic for normal noise branches is: in a completely open
area a sound of loudness l will propagate approximately l/.85 spaces.)
* exposing this to the player may reveal some cases where it is not
entirely intuitive that no sound is made. (For example, berserking is
silent (but unstealthy) except when opening doors.) This is good!

The noise bar replaces gold in the HUD; Gozagites now have gold where
the piety bar would be.

--------------------------------------------------------------------------------
7b9d119553 | Neil Moore | 2017-02-17 18:45:51 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
f8c7c87f68 | Neil Moore | 2017-02-17 18:23:52 -0500

Simplify with C++11.

--------------------------------------------------------------------------------
b4a80f0f22 | Neil Moore | 2017-02-17 18:23:28 -0500

Even better mesmerisation pronouns.
Look up the correct pronoun for the monster in question, since Jory
exists

I'm not sure where this message actually appears, though.  It's not
in xv, ctrl-x, or the x<arrow> "Here:" short desc, though the latter
two do indicate the status with other wordings.

--------------------------------------------------------------------------------
53087c7efd | Chris Campbell | 2017-02-17 20:06:05 +0000

Simplify a Beogh/Yred wrath check
Don't check piety, penance, invocations and monster HD for Beogh/Yred ally
abandonment checks under penance - just roll monster HD. Makes keeping hold of
higher-HD allies pretty substantially more likely under Beogh/Yred penance
(where the previous check was likely to fail even with full piety and 27
invocations).

--------------------------------------------------------------------------------
d6c3c5102f | Nicholas Feinberg | 2017-02-16 20:53:35 -0800

Set auto_butcher = 'very hungry' by default (MPA)
A compromise between reasonable behaviour for most characters &
for those which have other uses for corpses (necromancers,
Fedhasites); consistency and an absence of surprises.

--------------------------------------------------------------------------------
d9671f9d82 | Nicholas Feinberg | 2017-02-16 20:43:30 -0800

Ignore adjacent enemies for Beckoning (Yermak)
It's not very useful to beckon adjacent enemies, so make the
targeter ignore them.

--------------------------------------------------------------------------------
363ecfa823 | Nicholas Feinberg | 2017-02-16 20:43:30 -0800

Anger allies with Poisonous Vapours (worldfamousw)
Monsters weren't annoyed at all when you poisoned them to death,
which seems a bit off.

--------------------------------------------------------------------------------
e36c4034bb | Nicholas Feinberg | 2017-02-16 20:43:30 -0800

Rephrase elec trigger message
"Explosion of sparks" is perhaps not ideal, since it's no longer
loud. Instead, say that "lightning courses through the goblin!"

(Apologies to whoever suggested this - I didn't remember to note
down your name!)

--------------------------------------------------------------------------------
e386282efe | Nicholas Feinberg | 2017-02-16 20:43:30 -0800

Remove a stray trace of gender
Since sirens/avatars aren't guaranteed female anymore.

--------------------------------------------------------------------------------
cb9eda469e | Nicholas Feinberg | 2017-02-16 20:43:30 -0800

Improve frog superhealing
Cure -Hop with wizmode super healing.

--------------------------------------------------------------------------------
fe9ca37b2c | ontoclasm | 2017-02-16 20:35:39 -0600

Scarf tiles
The player doll tiles still need to be hooked up, as they require their
own doll part.

--------------------------------------------------------------------------------
4f99a5fd1a | Nicholas Feinberg | 2017-02-16 17:38:08 -0800

Restore Put-Me-On
With a handsome new set of hyphens, to add some class.

Also, tweak name weights to account for added/removed names.

--------------------------------------------------------------------------------
389645f126 | Chris Campbell | 2017-02-17 01:33:10 +0000

Trim some randart names

--------------------------------------------------------------------------------
b436c4a309 | Isaac Sloat | 2017-02-16 19:16:28 -0600

A few randart names (yrmvgh)
Also slightly increases weight for armour names.

--------------------------------------------------------------------------------
4091c3c6d4 | Isaac Sloat | 2017-02-16 18:57:15 -0600

Merge pull request #456 from alexjurkiewicz/ossuary-alarm
Remove alarm traps in ossuary_tomb_3
--------------------------------------------------------------------------------
4639c04e6c | Kyle Rawlins | 2017-02-16 19:37:39 -0500

Ensure viewwindow is called in the input loop for instantaneous actions (PR 
#448)
Ensure viewwindow is called in the input loop for instantaneous actions



This specifically addresses 10314, where shoals wave/beach tiles weren't being

updated after temporal distortion.  Temporal distortion results in

`you.turn_is_over` being false at this point in the loop, but apparently

`viewwindow` needs to be called at this specific time to get the waves right.

For non-instantaneous actions, `viewwindow` is called as part of

`world_reacts`.
--------------------------------------------------------------------------------
859e9cd525 | Gregory Chereshnev | 2017-02-16 19:33:32 -0500

Add Void Linux prerequisites to INSTALL.txt (PR #460)
Void Linux prerequisites have been added.
--------------------------------------------------------------------------------
02b20f4e6c | Chris Campbell | 2017-02-16 21:03:02 +0000

Simplify expiry of TSO Divine Shield
Make it expire like a regular duration instead of fading away in an extremely
complicated way. It keeps the same average duration (with the previous
weirdness factored in).

--------------------------------------------------------------------------------
cb8b9f681f | Chris Campbell | 2017-02-16 20:47:15 +0000

Adjust message colouring for a warning

--------------------------------------------------------------------------------
9b0dcd9656 | Nicholas Feinberg | 2017-02-15 20:29:24 -0800

Increase Barachian stats to human levels
Since they seemed to be a fairly weak species overall; this was
not intended. The low stats were generally considered the least
fun part of their design, so there's no reason to keep em around.

Currently their stats are slightly skewed toward str and away from
dex, entirely for flavour, since they're supposed to be an awkward,
slow-moving race.

--------------------------------------------------------------------------------
4bc97ff5ba | Isaac Sloat | 2017-02-15 18:55:35 -0600

Merge pull request #451 from rawlins/ash-id-stacks
Have ash id stacks when standing on them (10580)
--------------------------------------------------------------------------------
e0c4e5a572 | Alex Jurkiewicz | 2017-02-15 18:50:05 -0600

Remove some too-common ancestor names
Thanks, Persian friend!

--------------------------------------------------------------------------------
036a0c5a11 | Alex Jurkiewicz | 2017-02-15 18:17:07 -0500

Remove teleport closets from chequers_ecumenical_altar_grove (#458)
As per https://youtu.be/HAh6o6-98_4?t=5m54s
--------------------------------------------------------------------------------
496bc707fa | Neil Moore | 2017-02-15 18:08:31 -0500

Don't risk making text blink (advil)
Turn off best_effort_brighten_background by default, since that can make
things blink on terminals (such as OS X terminal) that do blinking
rather than 16-colour backgrounds.

--------------------------------------------------------------------------------
d54866b8c3 | Isaac Sloat | 2017-02-15 15:42:33 -0600

Better place makeitem.cc comments (|amethyst)
[skip ci]

--------------------------------------------------------------------------------
d69f00c381 | Isaac Sloat | 2017-02-15 15:39:55 -0600

Add god_creation.txt (Cerol)
All hail Ralph.

--------------------------------------------------------------------------------
f56736b52f | Isaac Sloat | 2017-02-15 14:03:33 -0600

Reduce frequency of !Mutation
From 8% of all potions to 6%, very roughly. Total weight has been
reduced by 20 but this has a very minimal impact on frequency of other
potions. (Overall potion frequency isn't affected.)

Also add a comment explaining an unclear condition. This is unused code
and could be removed, but maybe one day Xom will consider a potion
boring?

--------------------------------------------------------------------------------
f178af5fbc | Isaac Sloat | 2017-02-14 15:24:50 -0600

Merge pull request #453 from alexjurkiewicz/hepl-names
Add Zulu, Arabic and Slavic ancestor names
--------------------------------------------------------------------------------
0ac6e19e73 | chereshnev | 2017-02-14 10:29:49 -0500

Remove an obsolete mailmap entry (#455)
I removed my old username and email, because they are obsolete :)
--------------------------------------------------------------------------------
801678dd4e | Glenn Matthews | 2017-02-14 10:23:08 -0500

Don't call get_armour_slot until we know it's an armour item. (#457)
Fixes issue 10940 introduced by #423
--------------------------------------------------------------------------------
dc5f8301c1 | Neil Moore | 2017-02-14 10:19:54 -0500

Fix Android cprintf security bug (#10941).
If the player's weapon or quiver inscription contains a percent sign,
bad things could happen.

--------------------------------------------------------------------------------
4ff03ff08c | Chris Campbell | 2017-02-13 23:03:44 +0000

Update some default message colouring
To remove some obsolete and duplicate entries.

--------------------------------------------------------------------------------
618f40df1c | Alex Jurkiewicz | 2017-02-13 23:45:00 +1100

Remove alarm traps in ossuary_tomb_3
They were after the player had dealt with (nearly) all monsters in the
portal, and the portal is small enough there's no real need to move them
earlier.

--------------------------------------------------------------------------------
673355af13 | Neil Moore | 2017-02-12 13:18:49 -0500

Don't crash when xv-ing polymorphed multi-book casters.
If a monster had multiple possible spellbooks and we tracked its seen
spells, and that monster is then polymorphed into a spell-less monster,
xv on the polymorphed monster would cause a crash.  See for example:

    
https://webzook.net/soup/morgue/trunk/LordPiggish/crash-LordPiggish-20170209-030
657.txt

Avoid this by (1) clearing the seen spells on polymorph; and, to handle
monsters that had already been polymorphed before this fix, (2) clearing
the seen spells pop on load of a monster with no spells.

--------------------------------------------------------------------------------
6a0f4266fa | Alex Jurkiewicz | 2017-02-12 23:45:00 +1100

Add Zulu, Arabic and Slavic ancestor names

--------------------------------------------------------------------------------
62ed22f729 | Corin Buchanan-Howland | 2017-02-11 20:37:03 -0500

Add MP Regen to % menu
There's open space there and just having health regen felt incomplete.

--------------------------------------------------------------------------------
dbd815ee40 | Corin Buchanan-Howland | 2017-02-11 20:05:28 -0500

Refactor player MP regen rate into its own method
The place where rounding happens has changed a bit, but it shouldn't be
significant.

--------------------------------------------------------------------------------
d210ae248f | Neil Moore | 2017-02-11 16:12:40 -0500

Make scarves white rather than lightcyan in console.

--------------------------------------------------------------------------------
edbf995a7b | Chris Campbell | 2017-02-11 19:09:10 +0000

Mark potions of cure/beneficial mutation as removed items (Lasty)
Fixes them still appearing in the list of unidentified items.

--------------------------------------------------------------------------------
32200f4c3c | Neil Moore | 2017-02-11 12:43:47 -0500

Formatting fixes.
[skip ci]

--------------------------------------------------------------------------------
fd5dd0a9bf | Koushik Roy | 2017-02-11 12:43:06 -0500

FreeBSD Compilation Changes (PR #439)
* Initial cut at building with clang on FreeBSD



* Clean up FreeBSD Changes



Clean up the FreeBSD Changes



* Revert the changes to Doxygen scripts



* Remove debug statements from rltiles Makefile



* PR Feedback


--------------------------------------------------------------------------------
d5ac1e5113 | Neil Moore | 2017-02-11 10:13:45 -0500

Make ossuary_boxes_badplayer wall removal a one-shot.
So players don't get the "There is a click" message more than once.

--------------------------------------------------------------------------------
ff4aa5c60c | Neil Moore | 2017-02-10 21:35:19 -0500

Checkwhite, (un)brace, and fix some K&R braces.

--------------------------------------------------------------------------------
68019b6d0b | Neil Moore | 2017-02-10 21:19:44 -0500

Honestly make this whole thing a closure.
That is, make _collect_foe_position in mon-tentacle.cc take a function<>
for its sight_check parameter rather than being templated; and use
lambdas in its callers, rather than a static function in one place and a
callable class in another.

Also remove the mons argument of sight_check and make it a capture of
said lambdas, since that argument was constant throughout a single call
to _collect_foe_position.

Constify while we're at it.

--------------------------------------------------------------------------------
6870b8305e | Chris Campbell | 2017-02-10 19:33:08 +0000

Fix a swiftness message

--------------------------------------------------------------------------------
d2958cf4e0 | Chris Campbell | 2017-02-10 19:28:01 +0000

Adjust @ messages, deduplicate some code

--------------------------------------------------------------------------------
c37eb770de | Isaac Sloat | 2017-02-09 20:32:56 -0600

Allow tentacle ends as Ignition targets (minmay)

--------------------------------------------------------------------------------
c61b052168 | Isaac Sloat | 2017-02-09 19:54:40 -0600

Merge pull request #449 from glennmatthews/more-item-name-fixes
Several is_useless_item() fixes
--------------------------------------------------------------------------------
e33a6fd064 | Isaac Sloat | 2017-02-09 19:47:55 -0600

Don't let Ignition target firewood or tentacles
They can still be affected for the spell, they just won't count as
additional sources of blasting.

--------------------------------------------------------------------------------
89ae762b78 | advil | 2017-02-09 20:10:33 -0500

Have ash id stacks when standing on them (10580)
Previously, `god_id_item` was called only from a distance, and then only on the
top item of the stack, so items not at the top of the stack would not be id'd
when you move onto their square.  This fix ids the whole stack when you stand
on it if appropriate.  This may overcall `god_id_item` but I haven't spotted
any detrimental effects.  Addresses 10580, 10919.

--------------------------------------------------------------------------------
a843dd6847 | Isaac Sloat | 2017-02-09 18:44:39 -0600

Fix a few typos (KenranThePanda)
[skip ci]

--------------------------------------------------------------------------------
af3b657975 | Isaac Sloat | 2017-02-09 11:55:10 -0600

More implementation guides by Cerol
I wonder if this will lead to more forks...?

--------------------------------------------------------------------------------
6a8653428f | Glenn Matthews | 2017-02-09 00:19:19 -0500

is_useless_item: LSTATE_STILL_WINDS is temporary
Checks for LSTATE_STILL_WINDS were missing the 'temp' check,
meaning that while Still Winds is in effect, the game incorrectly
assumed that scroll of fog and wand of clouds were permanently useless.

--------------------------------------------------------------------------------
2e58d04515 | Glenn Matthews | 2017-02-09 00:16:23 -0500

is_useless_item: check racial_permanent_flight too
Temporary flight items (potion, ring) are useless if you have the ability
to permanently fly as a racial ability, whether or not flight is active
at this very moment. Previously, these items would toggle uselessness
depending on whether you are currently flying.

--------------------------------------------------------------------------------
01f5896e5a | Isaac Sloat | 2017-02-08 20:13:04 -0600

Rearrange potions.cc slightly
Moves the code for Degeneration to *before* the big block of removed
potions.

--------------------------------------------------------------------------------
b9e5f3fc1c | Isaac Sloat | 2017-02-08 20:13:04 -0600

Rework the Potion of Mutation
Shove Mutation, Cure Mutation, and Beneficial Mutation into a blender.

The new !Mutation will strip 2-6 mutations, add 1-3 random mutations,
then add one good mutation... in that order. It takes the spawn weights
of all three previous potions, and thus is now the third most common
potion in the game. (On average, ~17 will spawn in a three-rune
victory.) This is subject to further change and balancing.

===

Gameplay effects:

Once a character is mutated, then that character is permanently
involved in the mutation game unless they worship Zin, because the new
potion will only replace their current (mal)mutations. There is a
reasonably decent chance (~39%) to acquire only good mutations.

Because the new potion removes more mutations than it adds,
players won't be able to gather large mutation sets without consuming
the meat of mutagenic monsters. Ugly things are on the menu tonight!

===

A brief explanation of the philosophy behind this change:

The current status of Crawl's mutation game is essentially
solved: if you get malmutations, quaff Cure Mutation. If you find
Beneficial Mutation, quaff it. If you're feeling lucky, or if you
absolutely need to get rid of a certain malmutation and are out of Cure
Mutation, then quaff Mutation. These choices are not very interesting.
Cure Mutation in effect becomes a tax paid for making positioning
mistakes against malmutators, and when they run out of !cmut, then for
some players malmutators become top priorities, with a risk of
'permanently ruining' their character if they become too malmutated.

Since the new potion generates frequently, for now, it ensures that
the player will usually have the option to reroll their mutations if they
get a set that they decide that they don't want to play with. The
decision to reroll is also no longer binary: each mutation set is
evaluated in the context of the character's abilities and strengths, and
the player will decide "Is it worth risking getting something worse
or better?" (Compare the Cure Mutation decision described above.)

It creates a mutation baseline for most characters: at least two
mutations in any given game (unless they were lucky / savvy enough
to never be malmutated, and Zin-ite enough to never succumb to the
purple temptation!), and likely 3+.

The goal is to increase player control and interaction with the mutation
mechanic, and to generate more relevant and interesting decisions that
will differ on a character-by-character (or even mutation-by-mutation)
basis.

===

New mutations, good and bad alike, will probably be added to the game.
Keep an eye out!

Potions of Cure Mutation and Beneficial Mutation have been removed. Most
vaults containing Cure/Beneficial potions have been converted to
Mutation, or another suitably good item.

--------------------------------------------------------------------------------
fc38d6bf82 | Isaac Sloat | 2017-02-08 17:26:20 -0600

Add Cerol to CREDITS.txt

--------------------------------------------------------------------------------
2d7de33dc1 | Isaac Sloat | 2017-02-08 17:26:20 -0600

Add background creation guide (Cerol)

--------------------------------------------------------------------------------
bb8d3ca45c | Nicholas Feinberg | 2017-02-08 10:58:43 -0800

Changelog through 0.20-a0-617-g89cf17a
This is probably a bit too verbose, particularly wrt unrands;
might be worth a second pass to trim things down at some point.

--------------------------------------------------------------------------------
89cf17aeb2 | Nicholas Feinberg | 2017-02-08 10:18:25 -0800

Add Unrand Lore
Add some Flavour to bland unrand descriptions. Spice it up!

--------------------------------------------------------------------------------
ad7b6bdbfb | Isaac Sloat | 2017-02-08 11:51:35 -0600

Make Ignorance slightly less ignorant
Drop the AC, reduce the Int penalty, and boost the SH value. This should
make it more of a choice for non-Chei characters; the old Int malus was
usually too punishing to be worth considering.

--------------------------------------------------------------------------------
f59e5ab63d | Alex Jurkiewicz | 2017-02-08 11:34:43 -0600

Add chequers_guarded_unrand_mask_of_the_dragon
A Zot vault full of dragons, ghost moths (hopefully not too cute as a
SInv reference) and draconians.

--------------------------------------------------------------------------------
f0b4e372af | Alex Jurkiewicz | 2017-02-08 11:34:07 -0600

Add chequers_guarded_unrand_ignorance
A simple vault filled with int-feeding ocs. Taking them out one at a
time is difficult!

--------------------------------------------------------------------------------
92415a46a5 | Chris Campbell | 2017-02-08 07:15:38 +0000

Remove some obsolete RMsl handling
Since there are no permanant sources of DMsl, and now no temporary sources of
RMsl.

--------------------------------------------------------------------------------
95306a38cc | Nicholas Feinberg | 2017-02-07 21:58:28 -0800

Mark Talos's description for removal
Since it was removed!

--------------------------------------------------------------------------------
5ffda9ceb5 | Nicholas Feinberg | 2017-02-07 20:46:19 -0800

Improve monster AI wrt stationary enemies
Monsters should now attack e.g. prisms & spires that are in their way,
instead of treating them as permanent obstacles and pathing around
them.

--------------------------------------------------------------------------------
3ff0d926ff | Nicholas Feinberg | 2017-02-07 20:46:19 -0800

Remove an obsolete FIXME
RIP I_HIGH...

--------------------------------------------------------------------------------
37946a93fa | Isaac Sloat | 2017-02-07 19:42:14 -0600

Reduce Ignition's damage
Playtesting showed the original was overwhelmingly powerful against
large crowds. Even with less damage, this version is potent.

--------------------------------------------------------------------------------
ab1b74e111 | Andrew Minton | 2017-02-07 19:42:14 -0600

Replace Delayed Fireball with new spell: Ignition
This level 8 Fire spell drops a fireball-like explosion on every monster in LOS.
The explosions don't affect the player or allies. The spell is strong against
monsters adjacent to one another (as each monster gets hit multiple times) but
bad against single targets.

Currently the damage per fireball is the same as the regular Fireball spell.

Ignition replaces Delayed Fireball in the book of Fire, and Fireball in the book
of the Tempests.

--------------------------------------------------------------------------------
9e3d16cb59 | Nicholas Feinberg | 2017-02-07 16:40:09 -0800

Reduce the cost of ego (Brannock)
Drop the added cost for un-id'd ego items in shops to less than
that of un-id'd artefacts.

--------------------------------------------------------------------------------
ca134569a4 | Chris Campbell | 2017-02-07 21:58:51 +0000

Adjust Conjurer and Air Elementalist spellbooks
Replace Battlesphere in the book of Conjurations with Force Lance, as
Battlephere tended to overwhelm use of the book's other interesting spells like
Fulminant Prism, and Force Lance potentially has some interaction with knocking
enemies back into the Prism's range, for example. Also replace the newly-added
Summon Lightning Spire in the book of Air with Airstrike, since again the
summon spell would be likely to become the major focus of the book. Airstrike's
relatively low damage means the existing spells such as Static Discharge and
Lightning Bolt should still be important.

--------------------------------------------------------------------------------
56b4ea9cf7 | Chris Campbell | 2017-02-07 21:55:59 +0000

Don't make generation chance for robe of the Archmagi depend on depth
Since no other egos do, instead just give them the same chance as robes of
resistance. Shouldn't make a large difference overall, but makes them slightly
more common early, and slightly rarer later.

Also simplify some weightings.

--------------------------------------------------------------------------------
3869b3f869 | Isaac Sloat | 2017-02-07 15:39:52 -0600

Fix dream sheep messaging out-of-LOS (CanOfWorms)

--------------------------------------------------------------------------------
b74b895627 | Isaac Sloat | 2017-02-07 15:10:20 -0600

Merge pull request #444 from Doesnty/wand-id-pickup
Hack to make unidentified wands respect auto-pickup settings
--------------------------------------------------------------------------------
3ae50c85b2 | Doesnt | 2017-02-07 12:58:49 -0600

Hack to make unidentified wands respect auto-pickup settings

--------------------------------------------------------------------------------
29d1f57583 | Isaac Sloat | 2017-02-06 21:59:22 -0600

Merge pull request #443 from Doesnty/wand-id
Identify wands when the player steps on them.
--------------------------------------------------------------------------------
99f07ad9d2 | Doesnt | 2017-02-06 20:54:12 -0600

Identify wands when the player steps on them.

--------------------------------------------------------------------------------
16ea6274bd | Neil Moore | 2017-02-06 18:38:37 -0500

Fix wrong DD ability in A and % screens (Darth_Ra + lepidopteraptor)
They both listed the old recharge devices ability.

--------------------------------------------------------------------------------
ff0730c4fe | Neil Moore | 2017-02-06 18:31:25 -0500

Add and use armour_is_enchantable.
To avoid checking for QDA || scarf in four different places.

--------------------------------------------------------------------------------
ec00970b1b | Chris Campbell | 2017-02-06 23:12:39 +0000

Fix some bracing

--------------------------------------------------------------------------------
78597c5664 | Isaac Sloat | 2017-02-06 17:00:17 -0600

One more scarf special case (MarvinPA)

--------------------------------------------------------------------------------
7a846bbef6 | Isaac Sloat | 2017-02-06 16:45:48 -0600

Ensure scarves always generate magical
I knew I forgot something!!

Also includes some minor code cleanups.

--------------------------------------------------------------------------------
93522ccab7 | Isaac Sloat | 2017-02-06 16:04:07 -0600

Keep hats 50% normal
Removing spirit shield meant that plain hats spawned slightly too often;
now the weights are fixed.

--------------------------------------------------------------------------------
8f76d39324 | Chris Campbell | 2017-02-06 21:01:29 +0000

Mark Recall as useless under Sacrifice Love

--------------------------------------------------------------------------------
148c38f130 | Chris Campbell | 2017-02-06 20:56:24 +0000

Fix compilation

--------------------------------------------------------------------------------
1faf7d2211 | Chris Campbell | 2017-02-06 20:50:54 +0000

Remove some obsolete FAQ entries

--------------------------------------------------------------------------------
990d4021c5 | Chris Campbell | 2017-02-06 20:50:22 +0000

Remove some references to the prayer command

--------------------------------------------------------------------------------
6ba4ff006b | Chris Campbell | 2017-02-06 20:42:30 +0000

Give a message when praying at your current god's altar
Since otherwise there's no feedback at all - on any other type of terrain a
message is printed, but giving the "You can't go up/down here!" message would
be misleading since those are still valid commands for other altars.

--------------------------------------------------------------------------------
7346924bb0 | Chris Campbell | 2017-02-06 20:42:30 +0000

Don't let fungus form wear hats or helmets
b5556e9b5b39 attempted (and failed) to fix the original inconsistent behaviour,
but due to interactions between the form size and the item types, it was
possible to wear helmets without them being melded, but not to equip one after
already having transformed. The simpler approach of just preventing headwear
entirely is probably better.

--------------------------------------------------------------------------------
0cf97a2732 | Isaac Sloat | 2017-02-06 13:53:08 -0600

Move RMsl to the back of the line
Since both RMsl and DMsl are very stable statuses now, put them at
bottom priority for statuses -- they don't need to be monitored as
closely as other, less temporary statuses.

Might cause issues with some players not knowing when DMsl deactivated,
if they don't have a catch set up for the message and they consistently
have so many statuses that it pushes DMsl off the edge. This seems like
a very rare occurrence, though.

--------------------------------------------------------------------------------
c42f4fd698 | Isaac Sloat | 2017-02-06 13:53:08 -0600

Recognize scarf RMsl as permanent

--------------------------------------------------------------------------------
36bb54ce4f | Isaac Sloat | 2017-02-06 13:53:08 -0600

Exfoliate dead RMsl code (MarvinPA)

--------------------------------------------------------------------------------
0350dfc37d | Isaac Sloat | 2017-02-06 13:53:08 -0600

Remove spirit shield from hats
It's not good to have too many sources of Guardian Spirit, and this ego
fits magical-defense-scarves better than it does hats, imho.

Hats might need a new ego to round out their set...

--------------------------------------------------------------------------------
7bdf295253 | Isaac Sloat | 2017-02-06 13:53:07 -0600

Introduce a new armour ego: Repulsion
This solves the Repel Missiles problem (explained in earlier commits) by
tying the effect to an equipment slot. Scarves only.

Want RMsl? Wear the scarf of repulsion. Wanted to wear something else
instead in that slot, like a randart or something that has AC? Maybe
that'll be an interesting decision, and further it's one that takes
committment since swapping out equipment slots takes longer than switching
around jewelry.

You feel repulsive.

--------------------------------------------------------------------------------
2e61058c05 | Isaac Sloat | 2017-02-06 13:53:07 -0600

Move Lightning Spire from Sky into Air
Takes a spell out of the overloaded Book of the Sky and puts it into the
Book of Air which'd suffered from the loss of Repel Missiles.

Lightning Spire keeps in theme with the unpredictable-yet-controllable
spells (Shock, Static Discharge, Lightning Bolt) of the Book of Air.

--------------------------------------------------------------------------------
6993651381 | Isaac Sloat | 2017-02-06 13:53:07 -0600

Forget Repel Missiles
RMsl has ignited many long and impassioned discussions about
the Problem of Charms. With a low barrier of investment and cost, and a
highly beneficial effect, players wanted to have RMsl active all the
time. The devs alleviated annoyance by making the spell no longer expire
based on duration, saving players everywhere hundreds of turns recasting
it.

Unfortunately, without that tedium cost, it became clear that RMsl was
becoming the much-dreaded "no-brainer". Simply finding the spell
meant the player became significantly stronger for the rest of the
game for a minimal investment cost. Unlike equipment, RMsl doesn't have
a meaningful opportunity cost: there's no "enchantment" slot that it's
occupying, and the XP / memorisation investment is minimal. "Casters" and
"fighters" alike were able to take full advantage of it.

Deflect Missiles, while similar, is less problematic due to a much more
significant investment/cost/upkeep requirement across the board.

Therefore, we're tearing the page containing the Repel Missiles arcana
out of the Crawl tome. Goodbye, old faithful friend.

(Monsters will still be able to cast it.)

--------------------------------------------------------------------------------
182e11f5b8 | Isaac Sloat | 2017-02-06 13:53:06 -0600

Introduce fashionable scarves
Scarves are worn in the cloak slot, have 0 AC and cannot be enchanted any
further, but are guaranteed to generate with a magical ego.

Right now they can generate with cold resistance, spirit shield, or
resistance. As much as possible we should avoid overlapping egos between
scarves and jewelry. Unique scarf egos are forthcoming.

Even then, scarves are distinct from jewelry in taking much more time
to swap another item into that slot. The intended design goal is to get
players to make tradeoff decisions between having AC and cloak egos, or
no AC bonus but a stronger, more magical defensive ego on the scarf.

Includes a truly awful custom tile! Better tiles requested.

--------------------------------------------------------------------------------
160a424c5b | Colin Morris | 2017-02-06 09:46:46 -0800

Remove some spurious warnings on equip attempts.
There were some cases where we'd give pointless warning prompts
on equip operations that were doomed to fail anyways (e.g. because the
corresponding slot was cursed). Defer warning about inscriptions until
we're sure the equip operation is possible.

Closes #423.

--------------------------------------------------------------------------------
d12c374de7 | Isaac Sloat | 2017-02-05 21:36:15 -0600

Add a default force_more for sleep (10599, advil)
Prevents the player from being immediately awakened if they're attacked
by a monster before they would have woken up anyway. Normally we catch
this in main.cc by triggering a more() if the player can't act, but that
doesn't cover for situations where the player never actually gets the
hypothetical chance to act before they're affected.

There is possibly a cleaner way to do this than turning on an option,
but that involves more complicated code than a single line, and there's
precedent with banishment and petrification anyway.

--------------------------------------------------------------------------------
60d8699037 | Neil Moore | 2017-02-05 15:17:23 -0500

Fix fsim defense mode with passive damage (advil, #10914)
The passive damage could reduce the monster to zero damage, leading to
messages about DEAD_MONSTER.

--------------------------------------------------------------------------------
222018589c | Neil Moore | 2017-02-05 15:12:51 -0500

Allow macros to work in tiles map mode (suppilulemur, #10917)
They worked in console.

--------------------------------------------------------------------------------
b2da203cca | Neil Moore | 2017-02-05 15:07:52 -0500

Don't let brains gaze (#10916)
Also remove the special shout for the extinct 'B' glyph.

--------------------------------------------------------------------------------
15e6a6b688 | Neil Moore | 2017-02-05 14:06:39 -0500

Fix log message for reduction of evolution level (#10927)

--------------------------------------------------------------------------------
cffc55dacd | Isaac Sloat | 2017-02-05 13:01:58 -0600

Further hush conjured fires

--------------------------------------------------------------------------------
666c3b39d8 | Isaac Sloat | 2017-02-05 13:00:42 -0600

Merge pull request #440 from jiocy/patch-2
reduce intensity of conjure flame verb
--------------------------------------------------------------------------------
5e19f30c99 | Neil Moore | 2017-02-05 13:34:05 -0500

Include <functional> where needed (#10926)
Several files used function<> without explicitly pulling in <functional>.
This worked in older version of g++, because other headers did pull it in,
but it no longer works in g++ 7.0.1.

--------------------------------------------------------------------------------
99e027bd98 | Nicholas Feinberg | 2017-02-05 09:38:36 -0800

Simplify paralysis code
There's no need to support paralysis duration being extended, since
(blessedly) that can't happen.

--------------------------------------------------------------------------------
b845919ff8 | Nicholas Feinberg | 2017-02-05 09:37:54 -0800

Clarify slime creature description (Floodkiller)

--------------------------------------------------------------------------------
991e4661b1 | jiocy | 2017-02-05 07:20:36 -0500

reduce intensity of conjure flame verb
"Roar" in Crawl is typically a loud noise, typically one issued by a beast or a 
Trog-worshipper.



Conjure flame, however, is quite a quiet spell and cautious (but inexperienced) 
players might avoid casting it for fear of a loud "roaring" noise if they fail 
to check the full spell details in the z ? ! menu. The description of the sound 
could stand to be toned down a little.



Perhaps "The fire ignites dangerously!" would retain some of the original 
phrase's feeling of power and violence, at the risk of throwing around 
unnecessary adverbs!



Uncertain whether "The fire roars!" was being called by other sources than 
Conjure Flame, sources which perhaps **are** loud enough to earn a "roar".
--------------------------------------------------------------------------------
ab3eba18e9 | Nicholas Feinberg | 2017-02-04 18:23:10 -0800

Improve death messages from invisible paralysers
Vampire knights being one obvious, common offender.

--------------------------------------------------------------------------------
1f986f1436 | Nicholas Feinberg | 2017-02-04 18:03:07 -0800

Add frog shout verbs (Haifisch)
Beware the slippery slope of the species-specific shout verbs...

--------------------------------------------------------------------------------
47d38b1b57 | Nicholas Feinberg | 2017-02-04 16:36:41 -0800

Cleanup webs for dead monsters

--------------------------------------------------------------------------------
874d44d5de | Nicholas Feinberg | 2017-02-04 16:11:51 -0800

Don't make Beckoning anger allies (Yermak)
Precise logic here is a little odd...

--------------------------------------------------------------------------------
5b6a9c6aa6 | Nicholas Feinberg | 2017-02-04 16:03:35 -0800

Refactor bolt::nasty_to()
Deduplicate various enchantments. More still to be done, as ever...

--------------------------------------------------------------------------------
11c6ccfe6c | Nicholas Feinberg | 2017-02-04 15:48:06 -0800

Try to clarify Divine Shield description
Might be somewhat clearer that it's not the Warcraft invincibility
ability of the same name? Maybe?

--------------------------------------------------------------------------------
bef0b804aa | Nicholas Feinberg | 2017-02-04 15:42:06 -0800

Give a memorization warning for Ozo's
If your armour is too heavy.

--------------------------------------------------------------------------------
058ffa71ed | Nicholas Feinberg | 2017-02-04 15:28:17 -0800

Temporary webs & web cleanup
Make webs generated over the course of play (from jumping spiders
& sacks of spiders) temporary, destroyed when you or a monster
leaves them. Also attempt to partially clean up some other web-
related code.

--------------------------------------------------------------------------------
895a516c7f | Nicholas Feinberg | 2017-02-04 13:40:24 -0800

Minor swap_with_monster() notes
Add an assert and a comment. (It checks ATTR_HELD and assumes that
refers to a net, but that attribute was re-used for web traps...)

--------------------------------------------------------------------------------
437268c6ed | Neil Moore | 2017-02-04 13:09:55 -0500

Update sqlite3 submodule for Cygwin support (#9528).

--------------------------------------------------------------------------------
aa2b1a6a89 | Neil Moore | 2017-02-04 12:34:57 -0500

Unbreak newer Cygwin builds (AutofireII)
Our workaround for missing std::to_string causes an error in newer
versions of Cygwin, where std::to_string is present.  Instead of testing
for Cygwin, test for the same (glibcxx-specific) macro that disabled
std::to_string in the first place.

Also update a broken link.

--------------------------------------------------------------------------------
892c87bf1d | Neil Moore | 2017-02-03 22:17:47 -0500

Remove a special case for monster Sandblast.

--------------------------------------------------------------------------------
f6ae02d4e0 | Isaac Sloat | 2017-02-02 23:33:46 -0600

Merge pull request #433 from glennmatthews/flag_useless_known
Render useless items in dark grey in Known Items menu
--------------------------------------------------------------------------------
9f38e11108 | Neil Moore | 2017-02-02 20:28:44 -0500

Give monster Sandblast full range.

--------------------------------------------------------------------------------
2c1049eb5c | Neil Moore | 2017-02-02 20:25:39 -0500

Don't mark stones/rocks as wieldable.
Affecting the w screen and the ' command.

--------------------------------------------------------------------------------
c8f91ca9c7 | John Olender | 2017-02-02 15:47:25 -0600

Allow travel trails to be cleared while in the level map.
For consistency and convenience, adjust the level map to handle
 CMD_CLEAR_MAP in the same manner as the main screen.

--------------------------------------------------------------------------------
f70bbbcf30 | advil | 2017-02-01 16:25:54 -0600

Fix for pain bond and aux attacks (10472)
The basic problem was that radiate_pain_bond was called recursively from
monster::hurt (which radiate_pain_bond calls), and could loop.  When the
loop reached the original target, if the embedded call to hurt killed
the monster, it was guaranteed to clean up at that point, ignoring the
`clean` argument to the original call.  In a number of cases that relied
on a <1hp monster not being cleaned up, this led to odd messages or
crashes.

This commit fixes the problem by refactoring the recursion into a single
function (radiate_pain_bond) that tracks the original target.  It defers
cleanup for that target to the outer call of monster::hurt, and so will
respect the cleanup_dead argument for that function.  As a side effect,
pain bond damage is calculated slightly more correctly for passive
damage effects.  I've tested this as carefully as I can and am fairly
confident that it prevents the DEAD_MONSTER messages as well as the
crash from constriction, but there were a lot of hard-to-replicate
special cases that I haven't tested directly.

--------------------------------------------------------------------------------
403078aecf | Chris Campbell | 2017-02-01 17:14:15 +0000

Fix Ru wrath description (Doesnty)
And reword the messages slightly.

--------------------------------------------------------------------------------
4f8a7985fb | Nicholas Feinberg | 2017-01-31 10:53:56 -0800

Automatically note god wrath length in description

--------------------------------------------------------------------------------
043a499959 | Nicholas Feinberg | 2017-01-31 10:49:14 -0800

Scale penance messages by initial wrath
In ?/G and when praying at altars.

Now everyone's wrath can finally be upon you...

--------------------------------------------------------------------------------
e7d7ddb605 | Nicholas Feinberg | 2017-01-31 10:36:17 -0800

Expose initial god wraths

--------------------------------------------------------------------------------
64cbba572c | Nicholas Feinberg | 2017-01-31 10:19:04 -0800

Fix Nemelex penance description
Overlooked when the passive component of nem wrath was removed in
358a8cc3.

--------------------------------------------------------------------------------
2b9a704ec2 | Chris Campbell | 2017-01-30 21:53:45 +0000

Fix monster upheaval checking player invocations skill

--------------------------------------------------------------------------------
932af17ce9 | Chris Campbell | 2017-01-30 21:38:14 +0000

Let the sword of Cerebov's rF- work on rDamnation monsters
Since damnation no longer has any thematic link to fire and fire immunity, as
hellfire did previously.

--------------------------------------------------------------------------------
921d738870 | Chris Campbell | 2017-01-30 21:02:20 +0000

Remove a hidden side-effect of siren songs
Don't make it specifically alert (instead of just disturb) aquatic monsters -
the effect was undocumented and even if noted in the description would be
mostly invisible, and just waking nearby monsters will still draw them to the
source of the noise.

As a result also remove the now-unused noise_flag_type - the only other flag
had no actual effect (at any point in its existence, seemingly).

--------------------------------------------------------------------------------
a051ee5c92 | Alan Malloy | 2017-01-30 07:53:12 -0800

Fix the way the mac console app calls 'open'

--------------------------------------------------------------------------------
e6d1839601 | Nicholas Feinberg | 2017-01-28 19:19:04 -0800

Improve monster cloud AI wrt resists (tabstorm)
Probably doesn't make sense for Antaeus to absolutely refuse to
enter flame clouds just because he has rF-...

--------------------------------------------------------------------------------
174d061b78 | Chris Campbell | 2017-01-28 19:05:53 +0000

Let auto_butcher take a hunger threshold
Still disabled by default, although it's maybe now reasonable to enable it with
'hungry' as the default?

--------------------------------------------------------------------------------
bfac325e82 | Chris Campbell | 2017-01-28 19:05:06 +0000

Update an options_guide entry

--------------------------------------------------------------------------------
052e6ba345 | Nicholas Feinberg | 2017-01-26 17:00:14 -0800

Don't allow placing > MAX_MONSTERS (10918)
This only ever happened in practice in mega-ziggurats (where there
are already checks to prevent it) and in wizmode, but it's nice to
be a little more careful.

Also, remove the special ban on placing wandering monsters when
there are already 650 monsters in a level, since it's irrelevant.

--------------------------------------------------------------------------------
5542e2b3e4 | Nicholas Feinberg | 2017-01-26 17:00:14 -0800

Remove a weird bit of debug code
Seems to be leftover from when krakens were first implemented.

--------------------------------------------------------------------------------
c09f9e6969 | Nicholas Feinberg | 2017-01-26 10:11:04 -0800

Merge pull request #434 from gordon-quad/colemak
colemak keyboard binding fixed
--------------------------------------------------------------------------------
6637667fef | Nicholas Feinberg | 2017-01-26 10:09:48 -0800

Merge pull request #436 from nlavsky/patch-1
Update the description of the staff of summoning
--------------------------------------------------------------------------------
af1d6b47ce | nlavsky | 2017-01-26 22:02:51 +0400

Update the description of the staff of summoning
Warding was removed in 0.18, but the description of the staff of summoning 
still mentions the "{Ward}" stash search prefix.
--------------------------------------------------------------------------------
6a4a307230 | gammafunk | 2017-01-26 01:54:48 -0600

Make acid dragons green in console
They were previously lightmagenta, the same color as the mottled dragon
they replaced, but there's no longer the purple color assocation. Yellow
is already taken by golden dragons, so green is a reasonable choice.

--------------------------------------------------------------------------------
8cfaa97798 | gammafunk | 2017-01-26 00:53:01 -0600

Fix mouse handling for trackpads on OS X (Wizard_Lore)
This restores some of the mouse position update for skipped events that
was removed in 555d78b but still correctly tracks the last mouse
location for redraw purposes. This seems to fix the lag seen for OS X
trackpad users.

--------------------------------------------------------------------------------
c48301f2a1 | Nicholas Feinberg | 2017-01-25 22:27:24 -0800

Tweak light/ultraheavy dragon scale item tiles
Try to make steam/acid/qs scales a little more visually distinct
from other types (rather than being straight recolours), and tweak
gold dragon scales to make them a little visually bulkier.

--------------------------------------------------------------------------------
3be8840ac3 | Nicholas Feinberg | 2017-01-25 22:00:02 -0800

Reorganize rltiles/mon
Arbitrary, but makes me feel better.

--------------------------------------------------------------------------------
24831b1acf | Nicholas Feinberg | 2017-01-25 21:23:25 -0800

Give vampire mages ghost hands
So that their tiles can display weapons.

--------------------------------------------------------------------------------
753eaab306 | Neil Moore | 2017-01-25 23:52:07 -0500

Ensure god_passives has the correct number of entries.

--------------------------------------------------------------------------------
fc596c4910 | Neil Moore | 2017-01-25 23:41:11 -0500

Rationalise, document, and clean up god_passive messages.
Use "NOW" as a placeholder for "now", "no longer", or nothing, depending
on the context of the message.

Still unused.

--------------------------------------------------------------------------------
b68a50dccd | Chris Campbell | 2017-01-26 03:02:22 +0000

Fix descriptions of some unrands

--------------------------------------------------------------------------------
0e2e7d98eb | Chris Campbell | 2017-01-26 03:01:58 +0000

Fix a godpassive description
These aren't currently visible anywhere, but they might be someday hopefully!

--------------------------------------------------------------------------------
3802a75012 | Gordon Quad | 2017-01-25 13:46:26 +0300

colemak keyboard binding fixed

--------------------------------------------------------------------------------
5bdfae7037 | Glenn Matthews | 2017-01-24 16:33:30 -0500

Render useless items in dark grey in Known Items menu

--------------------------------------------------------------------------------
0b37eee3ef | Chris Campbell | 2017-01-24 19:45:38 +0000

Remove item-cursing miscast effects
Replace the charm/hex item curse miscasts with weakness and vertigo
respectively.

--------------------------------------------------------------------------------
aaecda2af2 | Chris Campbell | 2017-01-24 19:45:38 +0000

Adjust various god wraths
Let every god have a chance of triggering overwhelming wrath (additional chance
of slowing/confusion), instead of Lugonu and the good gods being excluded (but
don't bother with overwhelming wrath when also paralysing the player). Remove
most cases where god wrath effects gave an extra penance reduction, since in
most cases it didn't actually match up with the danger of the effect. Sif
Muna's wrath always gave extra penance reduction, so just make abandoning Sif
give lower total penance in the first place.

--------------------------------------------------------------------------------
2823eb8b1e | Chris Campbell | 2017-01-24 19:45:38 +0000

Adjust Cheibriados wrath
Remove some of the ineffective low-tension effects in favour of a random
miscast effect, and adjust the higher-tension effects (to give the miscasts
scaling with XL, and to slightly change the way that multiple fall-through
effects trigger).

--------------------------------------------------------------------------------
05004e4951 | Chris Campbell | 2017-01-24 19:45:38 +0000

Improve good god wrath descriptions

--------------------------------------------------------------------------------
060976d62c | Chris Campbell | 2017-01-24 19:45:38 +0000

Rework Elyvilon wrath
Elyvilon's wrath was ineffective (weak poison miscasts, lifesaving on monsters
giving them 10 HP at most) and exploitable (encouraging carrying many enchanted
weapons to be dulled for penance reduction, and killing plants for Ely to heal
for more penance reduction!)

Remove the active effects entirely, and change it to be an XP-based wrath with
a reworked version of the monster lifesaving effect - only working on proper
hostiles, with reduced chances of working on weak monsters, and giving them
back a reasonable amount of health. It's still intended to be a pretty tame
wrath, but hopefully now at least slightly more noticeable and less
exploitable.

--------------------------------------------------------------------------------
5f97612e96 | Chris Campbell | 2017-01-24 02:41:28 +0000

Fix colouring for Nemelex wrath on ^O

--------------------------------------------------------------------------------
e079137a32 | Chris Campbell | 2017-01-24 01:14:53 +0000

Make re-cursing unrands always curse on equip
Instead of ARTP_CURSE having different values for some unrands (with a 1/x
chance of cursing on equip), make *Curse have a consistent meaning and always
curse on equip. Results in the scythe of curses and amulet of bloodlust
changing from a 1/3 chance of curse to guaranteed cursing, and no effect on all
other cursing unrands. Also removes the (already-unused) tag to just make an
unrand generate cursed without re-cursing.

--------------------------------------------------------------------------------
a5227f2115 | Chris Campbell | 2017-01-24 00:49:55 +0000

Adjust some unrands
Reduce the plutonium sword's enchantment slightly, remove *Curse from the
shield of Ignorance (since it's not very usefully swappable anyway), and adjust
some inscriptions.

--------------------------------------------------------------------------------
839ffe0a93 | gammafunk | 2017-01-23 01:22:02 -0600

Fix temple entrances vault placement (Spectrina, PleasingFungus)
Broken in cc390b8, temple entrance vaults had the wrong tag, and weren't
seen as viable temple entry vaults. This resulted in all temple
entrances not having any vault, simply a staircase.

--------------------------------------------------------------------------------
02c11fcf27 | Neil Moore | 2017-01-21 21:25:42 -0500

Don't set curses colors if we never initialized curses.
This was causing a crash with  crawl -objstat Zig  (because of Zig Lua
killing monsters on placement.

--------------------------------------------------------------------------------
870a0e25a5 | Chris Campbell | 2017-01-22 01:54:13 +0000

Remove a missed spell from Xom's spell list (frozenca)

--------------------------------------------------------------------------------
80671923d3 | wheals | 2017-01-21 19:49:15 -0500

Remove unused setting for interrupt_eat

--------------------------------------------------------------------------------
3b403f5aec | Neil Moore | 2017-01-21 18:24:01 -0500

Respect restart_after_game in "What is your name today?" (Fixer)
Pressing escape at that prompt would exit the entire program, even with
restart_after_game = true.

This does not fix #7833 (which is mostly about console: tiles has
restart_after_game = true by default), but does fix one of the things
mentioned in that bug that affected tiles as well.

Also change the prompt to make clear that Esc will return to the main menu
(or end the game if restart_after_game is off), not go back to the race/
species/weapon selection.

--------------------------------------------------------------------------------
a2a529b6ad | Neil Moore | 2017-01-21 16:56:21 -0500

Work around an AMD driver crash on the title screen (Fixer, #10909)
Apparently textures of exactly 512x512 cause errors with some versions of
the Radeon drivers.  Work around that by cropping our single 512x512
loading screen down to 511x511.

This might also fix #10290 and friends but that needs tested.

--------------------------------------------------------------------------------
29864a74b0 | Chris Campbell | 2017-01-21 17:35:18 +0000

Remove a few spells from Xom's spell list
Particularly the unarmed-dependent transformations, since they'd tend to either
push Xom worshippers towards using UC, or just having to run away and wait out
the spells. Closes #399 PR.

--------------------------------------------------------------------------------
c86f3732f8 | Chris Campbell | 2017-01-20 23:43:30 +0000

Mark Demonic Guardian as suppressed with sacrifice love

--------------------------------------------------------------------------------
3b0b8675fe | Chris Campbell | 2017-01-20 23:37:14 +0000

Adjust pricing for some armour and jewellery unrands
Give arbitrary values to some unrands with special functionality that the value
algorithm can't know about, and factor in some things that it can know about.

--------------------------------------------------------------------------------
d259bc4e88 | Chris Campbell | 2017-01-20 23:37:11 +0000

Fix amulet of reflection pluses not changing their shop price

--------------------------------------------------------------------------------
2c65edc55d | Chris Campbell | 2017-01-20 20:27:32 +0000

Remove pizza and beef jerky
To further reduce the number of different types of food, especially since with
all food now taking a single turn to eat, the (already pretty insignificant)
distinctions between types are further reduced. This leaves bread and meat
rations as the two high-nutrition options, and royal jellies and fruit as the
two low-nutrition ones (so carnivore/herbivore distinctions still remain here).

--------------------------------------------------------------------------------
82c27a3958 | Neil Moore | 2017-01-20 20:14:09 +0000

Make all food take 1 turn to eat.
(The distinction between food types taking different amounts of time to eat
wasn't very meaningful, especially with chunks already taking only a single
turn - in the rare cases where eating something immediately is important, there
would virtually always be enough single-turn food available. - MarvinPA)

--------------------------------------------------------------------------------
555d78b692 | gammafunk | 2017-01-19 03:22:57 -0600

Fix a longstanding Tiles mouse cursor lag bug (#10278)
With the refactoring done in 9e6f58dc to fix window sizing in SDL2, a
bug was created where occasionally the mouse would lag in updating the
screen when the cursor had moved to a new tile.

The mouse event loop doesn't redraw if rapid mouse movement occurs and
multiple movement events are in the event queue. Redraws due to mouse
movement are supposed to occur due when the mouse moves to a new new
tile, but not a new position in the same tile. However when the event
loop was restructured in the aforementioned commit, the event was only
ignored after first processing mouse position, and the last known mouse
position was always updated on the next tick using this new position.
So movement events to a new tile followed quickly by other movement
events were updating the last known mouse position and then being
skipped. By the time the last movement event queue was reached and
actually processed fully, the last known mouse position would already be
at the new tile location, so it would appear to the event loop that no
redraw was needed. The actual redraw would only take place when the
mouse moved again (either within tile and after a redraw timeout or to a
new tile).

This commit fixed the problem by processing the mouse location,
including the last known mouse location, only for movement events that
aren't skipped, allowing the redraw to always happen when the mouse
moves to its destination tile.

--------------------------------------------------------------------------------
0de2c2ee97 | Nicholas Feinberg | 2017-01-18 18:08:26 -0800

Merge pull request #431 from alexjurkiewicz/better-bloodlust
Substantially buff the necklace of bloodlust & rename Jihad
--------------------------------------------------------------------------------
523475b1b9 | Chris Campbell | 2017-01-19 01:06:20 +0000

Adjust Kobold stat gain

--------------------------------------------------------------------------------
036ebb225e | Chris Campbell | 2017-01-19 01:06:20 +0000

Adjust shop pricing of various weapon unrands
For various unrands with special-cased mechanics that the regular pricing
algorithm can't take into effect, set a fixed shop value (or adjust the old
value, for some of the original fixedarts), based loosely on their original
shop value. Also give the acid and penetration brands price modifiers, so that
the unrands using those can be handled without a special-cased value instead.

--------------------------------------------------------------------------------
3cd7e3fab4 | Chris Campbell | 2017-01-19 01:06:20 +0000

Don't torment randomly when wielding the sceptre of Torment
Only when using it in melee - having a 1/200 chance to torment on any turn
while wielded just forces it to be swapped out for travel/exploration etc.

--------------------------------------------------------------------------------
405fccface | Alex Jurkiewicz | 2017-01-18 23:06:59 +1100

Rename Sword of Jihad
"Jihad" is a politically loaded word these days and Crawl doesn't have
any intention of commenting on the real world.

--------------------------------------------------------------------------------
e7aad143bb | Alex Jurkiewicz | 2017-01-18 23:06:58 +1100

Substantially buff the necklace of bloodlust
It's rare for players to voluntarily use *Rage items, so let's make the
item much better.

--------------------------------------------------------------------------------
22412924b8 | Nicholas Feinberg | 2017-01-17 16:18:05 -0800

Let misc shoals humanoids open doors (10907)
Just because it makes more intuitive sense than the alternative;
gameplay impact is probably minimal.

--------------------------------------------------------------------------------
f50ee04efd | Chris Campbell | 2017-01-16 17:32:25 +0000

Update some skill descs in the manual

--------------------------------------------------------------------------------
19c8d8d147 | Nicholas Feinberg | 2017-01-15 19:29:47 -0800

Round player regen up in % (Lasty)

--------------------------------------------------------------------------------
632788904b | Nicholas Feinberg | 2017-01-14 17:39:33 -0800

Add a warning comment wrt unrands & ?/

--------------------------------------------------------------------------------
e782c1628e | Nicholas Feinberg | 2017-01-14 17:39:33 -0800

Define a magic number in makeitem.cc

--------------------------------------------------------------------------------
2d938b16c4 | Chris Campbell | 2017-01-14 20:32:37 +0000

Fix a warning

--------------------------------------------------------------------------------
45aadb5abb | Chris Campbell | 2017-01-14 20:32:09 +0000

Adjust Searing Ray's prompt

--------------------------------------------------------------------------------
d88b9fce96 | Chris Campbell | 2017-01-14 20:18:16 +0000

Don't let Beogh gift highlevel weapons to low level orcs
Instead of having a tiny chance to upgrade them.

--------------------------------------------------------------------------------
7fc62c3c91 | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Update changelog through 0.20-a0-484-g71649f8

--------------------------------------------------------------------------------
8a0f1f4949 | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Turn Bai Suizhen's thunder into an ench (10730)
So that she stops murdering everyone on the level if you leave and
come back from another set of stairs.

--------------------------------------------------------------------------------
4ed618223d | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Display player regen in % (dpeg)
Sometimes nice to see how fast you're regenerating; pretty simple
to test by waiting a few turns (or by running the numbers in your
head, if you really need to), but can get complex when you're
running mutations, artefacts, durations, and so on.

It might be nice to use pips here, but any scale that can display
REGEN_PIP effects (e.g. amulet of regeneration - which we should
be able to show!) can't really also display insane regen stuff like
Powered by Death.

--------------------------------------------------------------------------------
22d579f75b | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Remove Cerebovscumming
Don't allow players to get multiple copies of cerebov's sword by
taking his rune and then repeatedly disarming him as he pursues
you throughout pan. CRITICAL BALANCE FIX

Also, add a tile for cerebov-sans-sword.

(Sorry to whoever reported this! I didn't include your name in
my notes...)

--------------------------------------------------------------------------------
ed69ad698d | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Ban Cigotuving orc corpses under Beogh
Beware The Flavour Cost

--------------------------------------------------------------------------------
3c572303ee | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Improve Ray status line (dpeg)
And describe it in ?/T.

--------------------------------------------------------------------------------
c945ec94ee | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Add a Searing Ray reminder message (dpeg)

--------------------------------------------------------------------------------
4aad59fee4 | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Give Hellbinder & Cloud Mage sInv
No sInv was a neat achilles heel for them, but made them way too
easy once you'd noticed it.

--------------------------------------------------------------------------------
6efe0ef758 | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Prefer autopickup items for apport
Default targeting. I'm sorry, this was a suggestion/request, but
I forget who made it - LordSloth, maybe? Very sorry to whoever it
was!

--------------------------------------------------------------------------------
ab328243a1 | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Improve Apportation spellpower dependence
Instead of capping at 18 spellpower with hard spellpower breakpoints,
cap at 50, and display that. (RIP, the last 1000-spellpower-cap
spell in the game...)

--------------------------------------------------------------------------------
7ccf1629ee | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Make acid dragons (& scales) less blinding
They're a little closer to golden dragons now, but I think they
should still be distinguishable. The armour is the only potential
problem; might be good to have a different tile for 'light' dragon
armour, versus 'heavy'?

--------------------------------------------------------------------------------
64189790a3 | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Make Poisonous Vapours only hit visible targets
For UI reasons; getting "the spell fizzles" when targeting an
empty square is all kinds of bad spellfeel!

Also, tweak the description to hopefully be a bit more useful.

--------------------------------------------------------------------------------
6a4234eb56 | Nicholas Feinberg | 2017-01-14 12:16:32 -0800

Make Iron Giants more selective
About what they toss.

Also, fix a relevant debug print.

FR: re-allow them to toss orbs of destruction, but actually
implement the orbs exploding on whatever they hit!

--------------------------------------------------------------------------------
6d2f28a8a2 | Chris Campbell | 2017-01-14 17:31:09 +0000

Don't give random panlords 0 AC/EV

--------------------------------------------------------------------------------
4e2cedd21e | Chris Campbell | 2017-01-14 17:22:03 +0000

Fix random panlord defenses (Doesnty)
Caused by 768198ce16, intending to change them to be inversely related.

--------------------------------------------------------------------------------
5c053032e3 | Chris Campbell | 2017-01-14 00:49:21 +0000

Adjust some Xom amusement checks
Remove some obsoleted and just plain weird checks, and make some scroll
amusement values depend on whether they're actually bad for your current
species.

--------------------------------------------------------------------------------
521e6c54c5 | Chris Campbell | 2017-01-13 18:19:02 +0000

Fix wizmode create stairs being backwards (#10898)

--------------------------------------------------------------------------------
bb038bd083 | Nicholas Feinberg | 2017-01-12 18:23:45 -0800

Merge pull request #418 from alexjurkiewicz/smoke-and-mirrors
Rework minmay_smoke_and_mirrors (minmay)
--------------------------------------------------------------------------------
25c24e1923 | Colin Morris | 2017-01-12 18:08:43 -0800

Don't special case the abyss for tripping checks.

--------------------------------------------------------------------------------
9217641b39 | Colin Morris | 2017-01-12 18:08:29 -0800

Fix incorrect messages on branch transition
Sometimes the game would say "Welcome back to x!" even though it was
your first time in x. e.g. https://crawl.develz.org/mantis/view.php?id=10868
This fixes that, and simplifies some of the level transition logic.

Closes #427.

--------------------------------------------------------------------------------
c52d0eb0b4 | Corin Buchanan-Howland | 2017-01-12 10:21:57 -0500

Make poisonous vapours cloud extension correctly use auts (|amethyst)

--------------------------------------------------------------------------------
6513c8fb5a | Chris Campbell | 2017-01-11 18:24:12 +0000

Simplify

--------------------------------------------------------------------------------
526fb3cc49 | Nicholas Feinberg | 2017-01-10 20:37:22 -0800

Fix monster self-haste AI
Good ol' copy, and her friend, paste.

--------------------------------------------------------------------------------
57475440fc | Nicholas Feinberg | 2017-01-09 19:34:26 -0800

Lovely Barachian tiles (CanOfWorms)
*ribbiting intensifies*

--------------------------------------------------------------------------------
698f215f77 | Neil Moore | 2017-01-09 22:07:28 -0500

Revert "Revert "Class-ify the transformation_type enum.""
And fix the inverted form wearability check.

This reverts commit 45280e57cd59b73c37a996bfea109a35d5f2f415.

--------------------------------------------------------------------------------
45280e57cd | Nicholas Feinberg | 2017-01-09 18:59:59 -0800

Revert "Class-ify the transformation_type enum."
Made it impossible to wear anything, somehow.

This reverts commit 13ce160d993939d2dfbd5a2193106c0f0bafdb40.

--------------------------------------------------------------------------------
13ce160d99 | Neil Moore | 2017-01-09 20:54:50 -0500

Class-ify the transformation_type enum.
And rename it to "transformation"; perhaps that should be shorter,
"transform_t" or "tran_t", to reduce line breaking.

Use a constexpr int for NUM_TRANSFORMS, so that the number of forms is
easily available without the need to cast.

Also, correct a few places that assumed TRAN_NONE == 0.

--------------------------------------------------------------------------------
26612c9278 | Neil Moore | 2017-01-09 20:29:32 -0500

Unbrace.
[skip ci]

--------------------------------------------------------------------------------
bddc7542a1 | Alan Malloy | 2017-01-09 16:29:18 -0800

Don't implicitly coerce TRAN_NONE to int
Instead, make it clear what value we care about comparing to.

--------------------------------------------------------------------------------
6b3cd1be5b | Alan Malloy | 2017-01-09 16:29:18 -0800

A couple copy-editing things in hints-mode text

--------------------------------------------------------------------------------
215b21abd1 | Chris Campbell | 2017-01-09 22:58:27 +0000

Change most multi-holiness monsters to only have a single holiness
Giving multiple holinesses to a single monster tended to cause unwanted
interactions (such as bad polymorph results on partially-natural monsters) and
other complexities, with no particular benefit.

Results in a few minor gameplay changes - hell hounds/hogs/rats/ephants become
immune to negative energy where they weren't before. Monster demonspawn are
currently still natural and demonic (the latter making them torment-immune).

--------------------------------------------------------------------------------
c3b7d5029a | Nicholas Feinberg | 2017-01-09 14:42:07 -0800

Fix Barachians + water elemental (Yermak)
Hooray for code duplication!

--------------------------------------------------------------------------------
2b43fbb4cb | CanOfWorms | 2017-01-07 20:52:36 -0500

Mark Passage of Golubria useless in Zot (Yermak)

--------------------------------------------------------------------------------
91466d275f | Nicholas Feinberg | 2017-01-07 11:13:34 -0800

Remove obsolete tile flag code
Became irrelevant when petrify was moved into the 'very stabbable'
tier.

--------------------------------------------------------------------------------
7ae5c3f0a2 | Nicholas Feinberg | 2017-01-07 10:43:40 -0800

Mark cloudwand useless under Still Winds (Yermak)
It should probably fail when you try to evoke it, rather than
after you select a target, too...

--------------------------------------------------------------------------------
4e5c00f5bb | Nicholas Feinberg | 2017-01-07 10:21:33 -0800

Finish removing mimic enums

--------------------------------------------------------------------------------
35270150ae | Nicholas Feinberg | 2017-01-07 10:03:40 -0800

Remove some unused mimic flags

--------------------------------------------------------------------------------
96be1219dc | Corin Buchanan-Howland | 2017-01-06 21:23:49 -0500

Rename Noxious Vapours to Poisonous Vapours (MarvinPA, gammafunk)
'Noxious' usually means mephitic clouds in crawl.

--------------------------------------------------------------------------------
0beec18ede | Nicholas Feinberg | 2017-01-06 15:47:19 -0800

Use actor_cloud_immune for nox vapour (|amethyst)

--------------------------------------------------------------------------------
6c275fbcee | Neil Moore | 2017-01-06 18:33:36 -0500

Correct rPois check in noxious vapours targeting.
We were checking for rpois == 1, meaning one could cast the spell on a
Phantom (rPois+++) but not a Crimson Imp (rPois+).

Perhaps this should use actor_cloud_immune instead, but first we'd want
a version that only requires a cloud_type and not a whole cloud_struct.

Note that the spell leaks information (with 0 time expended) about
whether a monster has an unidentified item that grants rPois.

--------------------------------------------------------------------------------
9649680343 | Alan Malloy | 2017-01-06 13:06:54 -0800

Revert accidental change to gitignore

--------------------------------------------------------------------------------
c6cb2a6cf4 | Alan Malloy | 2017-01-06 11:35:56 -0800

Remove incorrect wizmode help key (DivineHammer, #0010880)

--------------------------------------------------------------------------------
03c7170ead | Corin Buchanan-Howland | 2017-01-06 08:05:38 -0500

Simplify some math.

--------------------------------------------------------------------------------
0464b71d0c | Corin Buchanan-Howland | 2017-01-05 22:04:59 -0500

Add new L2 Poison/Air spell, Noxious Vapours
The new spell is a smite-targeted attack that creates an extremely short-lived
poisonous cloud on top of the target. The spell can be found in the book
of clouds and the Young Poisoner's Handbook, providing Venom Mages with a L2
spell.

The motivation for this spell is to create an offensive spell for VM between
Sting and OTR. Sting is unreliable and single-target; OTR is reliable and
multi-target. This splits the difference, creating a reliable, single-target
spell at the cost of more MP.

Because it feels redundant, this also removes player Poisonous Cloud from all
books, and removes Alistair's Intoxication from the Young Poisoner's Handbook
, since the book feels sufficiently full without it.

--------------------------------------------------------------------------------
ceecc7ed4e | Nicholas Feinberg | 2017-01-05 15:20:12 -0800

Fix a species mock (Doesnty)
I tested the old version, but not the modified one... oops!
--------------------------------------------------------------------------------
89e74e4336 | Nicholas Feinberg | 2017-01-05 13:45:39 -0800

Add a barachian dummy monster

--------------------------------------------------------------------------------
1a30b92d9c | Nicholas Feinberg | 2017-01-05 13:42:40 -0800

New race: Barachians
Barachians' marquee ability is Hop, which allows them to blink near
a targeted tile - a weaker version of controlled blink, essentially.
In exchange, they're somewhat slow-moving (MUT_SLOW 1, half a naga's),
which of course makes their hop even more useful, and they have poor
attributes - 6/6/6 + sid/5, the same total as ghouls. They're roughly
average in their aptitudes, with +1s and -1s used to weakly bias
them toward certain skills without making any dominant.

Hop is initially range 4, with a fuzz radius of 2 tiles; the player
is equally likely to land anywhere within the radius. The ability is
limited by a -Hop status; inspired by Barbs, -Hop only wears off while
you're not moving. (That is, while you're resting, attacking, or casting
spells.) The goal is to avoid making it too easy to run away from
enemies indefinitely by repeatedly hopping, and to avoid annoying
turncount-optimal behaviour during travel.

At XL 13, the player's Hop range increases to 5; this should help
it stay somewhat more relevant as the player accumulates more (and
more reliable) escape options.

A tongue attack was considered, but the design focus of the race
is the Hop, and having two frequently-relevant active abilities on
a species didn't seem like a good idea.

--------------------------------------------------------------------------------
81164aed57 | Nicholas Feinberg | 2017-01-05 12:42:51 -0800

Fix special-case brand appearances (10878)
Antimagic-branded trog gifts would have no visible appearance
(glow, etc) if they generated with a near-zero enchantment - quite
rare!

--------------------------------------------------------------------------------
3bc703b0ec | Chris Campbell | 2017-01-05 17:58:26 +0000

Fix monsters casting pain at immune targets (#10875)

--------------------------------------------------------------------------------
18e6404de7 | Chris Campbell | 2017-01-05 17:48:35 +0000

Remove some obsolete monster formicid handling
Secret tech: enslave formicids for powerful allies, then cast silence to make
them dig faster?????

--------------------------------------------------------------------------------
2f2b14e4cc | Chris Campbell | 2017-01-05 17:43:43 +0000

Don't let monsters zap wands while confused (#10876)

--------------------------------------------------------------------------------
f4ea4ddddd | Chris Campbell | 2017-01-04 21:49:40 +0000

Don't display HP/AV/EV for sensed monsters (#10861)

--------------------------------------------------------------------------------
93bceec0f6 | Nicholas Feinberg | 2017-01-03 21:48:22 -0800

Mention ghoul non-fullness in the manual (Yermak)

--------------------------------------------------------------------------------
9e36e56b77 | CanOfWorms | 2017-01-02 17:42:24 -0500

Lightning rod tiles

--------------------------------------------------------------------------------
25cc1b4822 | Chris Campbell | 2017-01-01 22:49:51 +0000

Make Sandblast respect the !D inscription
Why would you ever inscribe stones with !D? Who knows.

--------------------------------------------------------------------------------
8301ae94a5 | Chris Campbell | 2017-01-01 22:42:58 +0000

Show a message indicating remaining stones when casting Sandblast
As with Sticks to Snakes, so that it's still easy to keep track of remaining
stones without having to frequently check the inventory when quivering
something else more useful for throwing.

--------------------------------------------------------------------------------
bd41281c08 | Nicholas Feinberg | 2017-01-01 12:28:30 -0800

Fix some hardcoded 27s (Floodkiller)
For MAX_SKILL_LEVEL.

--------------------------------------------------------------------------------
054b1feec0 | Chris Campbell | 2017-01-01 13:34:43 +0000

Fix everything being diggable (10869)

--------------------------------------------------------------------------------
059cf21783 | Neil Moore | 2016-12-31 19:27:19 -0500

Make /Enslavement work again (Shard1697)
Players got "Sorry, this spell is gone!" because the spell was marked
as removed before the wand actually used the spell.

This has the side effect of allowing players in transferred games with
Enslavement memorised to cast it once again.

--------------------------------------------------------------------------------
8b1297873e | Chris Campbell | 2016-12-31 17:39:31 +0000

Adjust some backgrounds
Make some minor tweaks to starting stats (Arcane Marksman, Gladiator, Skald)
and skills (Skald, Venom Mage), and remove some enchanted starting armour
(Enchanter).

--------------------------------------------------------------------------------
c81162528e | Chris Campbell | 2016-12-31 16:05:44 +0000

Adjust and remove some vaults based on eye of devastation digging
Remove a few trap vaults that relied on eyes of devastation digging out other
monsters, and adjust hangedman_surveillance_ring to replace some grates with
doors and require traversing more of the vault in general.

--------------------------------------------------------------------------------
82d1f442e3 | Chris Campbell | 2016-12-31 16:05:44 +0000

Add sparkles to Ziggurat figurines (regret-index)
Make them glow and change colour with increasingly absurd numbers of Ziggurat
completions (even though this behaviour is silly and should not be encouraged!)

--------------------------------------------------------------------------------
5132bada0b | Chris Campbell | 2016-12-31 16:05:44 +0000

Adjust description for lightning rods becoming inert
Since they require multiple activations.

--------------------------------------------------------------------------------
2e1f7d54a6 | Neil Moore | 2016-12-31 10:29:12 -0500

Fix dgl builds (doh)

--------------------------------------------------------------------------------
81ce367343 | Neil Moore | 2016-12-31 09:16:02 -0500

Avoid an unused-variable warning in dgl builds.

--------------------------------------------------------------------------------
f6b327c8c7 | Chris Campbell | 2016-12-31 13:57:50 +0000

Don't crash when marshalling removed rod item info

--------------------------------------------------------------------------------
83c570d12d | Chris Campbell | 2016-12-31 01:32:33 +0000

Fix tiles compilation

--------------------------------------------------------------------------------
40a51bc995 | Chris Campbell | 2016-12-31 01:06:53 +0000

Remove some unused disintegration handling

--------------------------------------------------------------------------------
3289933094 | Chris Campbell | 2016-12-31 01:06:37 +0000

Let digging destroy statues (|amethyst)
Since disintegration no longer does, and some vaults required it for access.

--------------------------------------------------------------------------------
e4f0a7c863 | Chris Campbell | 2016-12-30 23:34:47 +0000

Add a wizard command to recharge XP evokers
On &v, with the "item value" command moved to &^V since that seems far less
likely to be used.

--------------------------------------------------------------------------------
6d5bc7a721 | Chris Campbell | 2016-12-30 23:34:47 +0000

Remove an unused parameter

--------------------------------------------------------------------------------
716b500fed | Chris Campbell | 2016-12-30 23:34:47 +0000

Replace discs of storms with lightning rods
Using XP evoker mechanics but adjusted for a slightly simplified version of the
old rod spell. Instead of having its mana use vary and reset depending whether
it's used on consecutive turns or not, it now has a fixed 4 charges, with the
power increasing each time (and allowing for area targeting as previously when
zapped on consecutive turns). Once all 4 charges are used, it becomes inert
like a normal XP evoker and the power resets.

The bolt now also always hits (instead of having power-dependent accuracy on
the first zap but huge fixed accuracy on consecutive zaps), and has fixed noise
instead of noise varying depending on charge.

--------------------------------------------------------------------------------
c9d5dce074 | Chris Campbell | 2016-12-30 23:34:47 +0000

Remove an unused member of the bolt struct

--------------------------------------------------------------------------------
8eeb10a343 | Chris Campbell | 2016-12-30 23:34:47 +0000

Re-use rod tile icons for wands of clouds and scattershot
And remove the unused tiles for other rod types.

--------------------------------------------------------------------------------
cccf842772 | Chris Campbell | 2016-12-30 23:34:46 +0000

Don't allow zapping wands while confused
In terms of implementation it's very awkward to make confusion-fuzzing work
well with wands of clouds/scattershot now existing, but also generally it's
very unlikely to be a useful thing to spend time on while confused, except
perhaps when completely surrounded by monsters.

--------------------------------------------------------------------------------
4e4fe7ee08 | Chris Campbell | 2016-12-30 23:34:46 +0000

Adjust some vaults for wand/rod changes
Add the appropriate wands back to a few vaults that used to place them as rods,
and replace disintegration in earth/digging-themed vaults.

--------------------------------------------------------------------------------
2dbcf0a43e | Chris Campbell | 2016-12-30 23:34:46 +0000

Remove wands of slowing
Along with wands of confusion they duplicate a low-level hex, and as the
noticeably weaker effect are fairly unlikely to be made much use of. Removing
them also helps shift wands further towards having a smaller selection of
effects but with less duplication of existing spells, and there's still a
pretty good range of remaining hex wand effects with confusion, paralysis,
enslavement and polymorph.

--------------------------------------------------------------------------------
85f13f00f2 | Chris Campbell | 2016-12-30 23:34:46 +0000

Don't make BEAM_DISINTEGRATION or BEAM_DEVASTATION dig walls
Affects the wand of disintegration mostly, since the resistible but high
damage is its main effect. Also changes IOOD and eye of devastation bolts,
since they're somewhat similar mechanically (in that they just dig to be
flashy rather than for any special gameplay reason, and the flashiness is
covered nicely just by splattering blood everywhere and making things explode
on death).

--------------------------------------------------------------------------------
bca2e7895c | Chris Campbell | 2016-12-30 23:34:46 +0000

Make wand power scale better with Evocations skill
From 15 + Evo * 2.5 to 15 + Evo * 3.5, slightly higher than rod evocations
scaling used to be.

--------------------------------------------------------------------------------
7e2a38b0be | Chris Campbell | 2016-12-30 23:34:46 +0000

Rework the wand of random effects
Since it was already not at all just a random other wand's effect, and the
addition of clouds/scattershot makes that even less feasible. Give it a new,
arbitrary list of effects, and finish refactoring wand code in the process.

--------------------------------------------------------------------------------
44a4606457 | Chris Campbell | 2016-12-30 23:34:46 +0000

Remove rods
Some rods have fun and unique effects, but the item class itself doesn't work
very well - it demands frequent item switching, and creates yet another
different item type that provides ranged attacks and summons (on top of
launchers, wands, regular evokables, ...). The iron rod and rod of clouds have
already been repurposed as high-tier wands. Rods of ignition and inaccuracy are
removed outright - they could in theory work as wands, but clouds and iron are
probably the better effects and there are already a large number of
direct-damage wands. Shadows is also removed outright, as it mostly duplicates
an existing scroll and spell (just with very slightly different rules).
Lightning rods are another neat effect but wouldn't function as a wand, so are
planned to be repurposed into some kind of evokable.

--------------------------------------------------------------------------------
2834ef16be | Chris Campbell | 2016-12-30 23:34:45 +0000

Refactor your_spells
Remove an unneeded parameter.

--------------------------------------------------------------------------------
d31b6d8720 | Chris Campbell | 2016-12-30 23:34:45 +0000

Add the wand of scattershot
Reusing the iron rod's effects, as a rare high-tier wand.

--------------------------------------------------------------------------------
a59074c56a | Chris Campbell | 2016-12-30 23:34:45 +0000

Give Disintegrate LOS range
Affects the wand, and great orbs of eyes (all of whose other spells have LOS
range).

--------------------------------------------------------------------------------
f84ef177ba | Chris Campbell | 2016-12-30 23:34:45 +0000

Partially refactor wand handling, make wands use spell ranges
Handle targeting/prompts etc with the same interface as spellcasting, reducing
some code duplication and hopefully cleaning things up generally. The wand of
random effects isn't handled here yet and still uses the old codepath. Makes
regular wands use normal spell ranges instead of having LOS range as a
side-effect - this could still be changed, but since wands of clouds and
scattershot don't have LOS range it would still be inconsistent, and seems fine
to reduce some wand ranges slightly but to compensate for it elsewhere (most
likely by improving wand power scaling).

--------------------------------------------------------------------------------
42a710e77d | Chris Campbell | 2016-12-30 23:34:45 +0000

Remove mist and rain from wand of clouds effects
Since unlike the rod it doesn't continue to recharge for free, make it much
more likely to do something useful even at low power.

--------------------------------------------------------------------------------
b1e1cac6ba | Chris Campbell | 2016-12-30 23:34:45 +0000

Add the wand of clouds
As a rare, high-power wand, using the effects from the rod of clouds. Uses
similar handling for rods in terms of implementation, with other wands to be
refactored to use the same system later.

--------------------------------------------------------------------------------
87fc977532 | Neil Moore | 2016-12-30 18:25:32 -0500

Swap &k and &K commands.
Since the latter is very situational (Labs only), and for consistency
between &l and &k.

--------------------------------------------------------------------------------
d1c1da2e64 | Neil Moore | 2016-12-30 18:03:05 -0500

Allow resting inside of walls in wizmode.
The change to abort a run command early if the target square is
uninhabitable (0.20-a0-387-gf587305) also affected resting, but that
broke the woken_rest test and probably others. Instead, check for
running as opposed to resting.

Also, don't abort the run command, but simply avoid the slime wall
message, if the target square can't be entered: this change restores the
"Why would you want to do that?" message when attempting to run into
water, lava, etc. when slime walls are not nearby.

--------------------------------------------------------------------------------
56314776da | Neil Moore | 2016-12-30 17:25:05 -0500

Actually prevent running/resting next to slime walls (doh)
I missed the return when refactoring.

--------------------------------------------------------------------------------
bf3f530cc6 | Isaac Sloat | 2016-12-30 16:01:28 -0600

Let TSO worshippers use their poison stingers
TSO's poison conduct was removed in c6e9da29ea2

--------------------------------------------------------------------------------
67baa83473 | Neil Moore | 2016-12-30 15:50:54 -0500

Make _count_adjacent_slime_walls non-static.
Since exactly the same loop was present in terrain.cc already, and
something very similar with a tiny optimisation in dungeon.cc.

Also use the function replace a couple of loops that look for the
existence, rather than number, of adjacent slime walls (in main.cc and
travel.cc).  The loop in slime_wall_neighbour could also be replaced,
but that one is called often enough that there might be performance
implications.

--------------------------------------------------------------------------------
ac35c17ead | Neil Moore | 2016-12-30 15:48:52 -0500

Move mons_is_slime check into actor_slime_wall_immune.
So that it has the correct return for great orbs of eyes.  Both callers
already checked for mons_is_slime, so there is no change to gameplay.

--------------------------------------------------------------------------------
30b8490c3a | Neil Moore | 2016-12-30 11:52:23 -0500

Use existing Jiyva passives in a few more places.

--------------------------------------------------------------------------------
dfafcef10b | Neil Moore | 2016-12-30 11:50:27 -0500

Don't let Jiyva spawn-on-hit work under penance.
Mainly to allow turning it into a passive_t.

--------------------------------------------------------------------------------
9630af8b12 | Neil Moore | 2016-12-30 11:50:27 -0500

Use a passive_t for slime wall immunity.

--------------------------------------------------------------------------------
4892b3488a | Alan Malloy | 2016-12-29 18:38:32 -0800

Make function consistent by removing an extraneous else

--------------------------------------------------------------------------------
d82c4c46f4 | Alan Malloy | 2016-12-29 18:34:35 -0800

Don't 'start eating' stuff that only takes one turn

--------------------------------------------------------------------------------
613a653c59 | Nicholas Feinberg | 2016-12-29 15:59:34 -0800

Change manual-buffed skills to lightblue (CYC)
From red. Discussion here:
https://crawl.develz.org/tavern/viewtopic.php?f=17&t=22678 .

Note that manuals *theoretically* used both lightred & red before,
but in practice, only lightred would ever appear. (Any manuals
that appeared in the tutorial would colour the line red instead,
but (a) there aren't any, and (b) it doesn't seem especially
useful for that colour to appear even if there were.)

--------------------------------------------------------------------------------
f5873054a9 | Nicholas Feinberg | 2016-12-29 15:42:40 -0800

Nix nonsensical run warnings (koboldenthusiasm)
No need to prompt about running into slime walls if there's an
obstacle in the way!

--------------------------------------------------------------------------------
2d247ea020 | Chris Campbell | 2016-12-28 19:15:30 +0000

Simplify Pain self-damage handling
The comment in _spell_zap_effect was incorrect - since 17dfbce6f4, only
successfully casting the spell has caused self-damage, not miscasting. This
seems like better behaviour anyway, so the handling is moved into
_spellcasting_side_effects.

--------------------------------------------------------------------------------
72753d0ed8 | gammafunk | 2016-12-28 13:12:27 -0600

Balance braces in an initialization
fixed the broken build in 68c82e3

--------------------------------------------------------------------------------
68c82e3cd3 | Nicholas Feinberg | 2016-12-28 10:16:53 -0800

Invalidate agrid after silence ends (10636)
The invalidate_agrid() in player-reacts.cc would *usually* handle
this, but if anything checked the agrid between that invalidation
and the actual decrementing of the DUR_SILENCE to 0 (that is,
between lines 600 and 859), the agrid would still see DUR_SILENCE
as being in effect at your current position, and wouldn't update
until something else invalidated the agrid (e.g. another cast of
silence).

To replicate before this commit, have Darkness active along with
Silence; player-reacts.cc:773 will trigger the bug.

--------------------------------------------------------------------------------
34dcd6a7bc | Chris Campbell | 2016-12-28 17:34:09 +0000

Remove an unused spellcasting parameter
Obsolete since 54df5be6b9, oops.

--------------------------------------------------------------------------------
289d6af39d | Neil Moore | 2016-12-28 01:12:54 -0500

Update &l usage in tests.
So as not to answer the now-removed skills question.

--------------------------------------------------------------------------------
f93df6f889 | Neil Moore | 2016-12-28 01:12:53 -0500

Correct &K in wizmode menu.
It was incorrectely listed in lowercase, but that is the labyrinth shift
command.  Perhaps &k and &K should be swapped...

--------------------------------------------------------------------------------
73d48a1e77 | Neil Moore | 2016-12-28 01:05:55 -0500

Disable death in fireworks test.
The orb card can kill the player, causing a hang because no one is there
to say no at the "Die?" prompt.  See for example:
    https://travis-ci.org/crawl/crawl/jobs/187107765

--------------------------------------------------------------------------------
c0b65bfebf | Nicholas Feinberg | 2016-12-27 16:43:02 -0800

Split &l; add &K
&l simply sets XL; &K sets XL and skills.

--------------------------------------------------------------------------------
f1fd183635 | Nicholas Feinberg | 2016-12-27 16:03:59 -0800

Simplify siren/avatar song power
Merfolk avatars go from 73 to 75 ench power, post-stepdown. Sirens
are unaffected.

--------------------------------------------------------------------------------
192cef2f73 | Nicholas Feinberg | 2016-12-27 15:57:19 -0800

Fix Siren/Avatar Song resist display (JFunk-soup)
This has been (slightly) wrong ever since hex resist chance displays
were added.

--------------------------------------------------------------------------------
a701ec3150 | Isaac Sloat | 2016-12-27 17:36:42 -0600

'Great waves' become 'torrents'
Zaps another instance of 'great'.

--------------------------------------------------------------------------------
c02d24d9b7 | Alan Malloy | 2016-12-27 14:27:25 -0800

Remove a vestigial line of code from smite targeter

--------------------------------------------------------------------------------
910a2e5333 | Alan Malloy | 2016-12-27 12:12:10 -0800

Rename targetters to targeters (MarvinPA)

--------------------------------------------------------------------------------
2e4048123d | Alan Malloy | 2016-12-27 11:43:09 -0800

Replace branching with boolean expression

--------------------------------------------------------------------------------
b9ad934c9e | Nicholas Feinberg | 2016-12-27 09:56:56 -0800

Remove lava acquirement
Losing an ?acq because you thoughtlessly read it over dangerous
terrain is... not very crawl-y.

--------------------------------------------------------------------------------
be7c41aee4 | Nicholas Feinberg | 2016-12-27 09:44:07 -0800

Remove a duplicate acq message
We already ask what you want to acquire at the bottom of every
acq prompt. (Yes, that means my comment on that pull request was
wrong - sorry, Sandman!)

Closes #366.

--------------------------------------------------------------------------------
d6af2a48a8 | Alan Malloy | 2016-12-26 21:24:35 -0800

Finish renaming itemprop to item-prop (|amethyst)

--------------------------------------------------------------------------------
71b9d6e38e | Isaac Sloat | 2016-12-26 21:06:54 -0600

Sandblast blasts sand

--------------------------------------------------------------------------------
4aedf3445b | Neil Moore | 2016-12-26 16:39:06 -0500

Fix missing CRs in Visual Studio project.
Maybe checkwhite should have a rule for those files instead of skipping
them entirely...

[skip ci]

--------------------------------------------------------------------------------
454506b885 | Alan Malloy | 2016-12-26 13:18:31 -0800

Replace contrib, I hope?

--------------------------------------------------------------------------------
03f33331b1 | Alan Malloy | 2016-12-26 12:52:35 -0800

Add hyphens to some multiwordfilenames

--------------------------------------------------------------------------------
f8a1998066 | Alan Malloy | 2016-12-26 12:52:35 -0800

Rename files like foo_bar to foo-bar

--------------------------------------------------------------------------------
f2875f62b2 | Neil Moore | 2016-12-26 15:34:22 -0500

Make decks.cc not executable.
[skip ci]

--------------------------------------------------------------------------------
b62f0a4447 | Chris Campbell | 2016-12-26 19:24:54 +0000

Make the Majin-Bo only cost HP on successful casts
And simplify some of its code.

--------------------------------------------------------------------------------
f934e21813 | Chris Campbell | 2016-12-26 18:49:19 +0000

Document some unrand properties

--------------------------------------------------------------------------------
c3bf50ce50 | Chris Campbell | 2016-12-26 18:27:53 +0000

Remove CBL from Xom's random spell list
It's disproportionately likely to just explode the player, since it can easily
be cast early on and with monsters already in range.

--------------------------------------------------------------------------------
3c00ad3255 | Chris Campbell | 2016-12-26 17:51:19 +0000

Don't drain intelligence when Xom casts SHT

--------------------------------------------------------------------------------
0e31c2780a | Chris Campbell | 2016-12-26 17:51:07 +0000

Don't make Xom cast spells at zero tension
Transforming the player out of combat was mostly just likely to force them to
rest it off before continuing to explore.

--------------------------------------------------------------------------------
28afc8585b | Chris Campbell | 2016-12-26 16:54:51 +0000

Prevent Yredelemnul worship under sacrifice love
Technically Injury Mirror and Drain life did still function, but the core of
the god was disabled (as with Beogh, who is also disabled even though Smiting
and water walking would still work!)

--------------------------------------------------------------------------------
e975d0669f | Chris Campbell | 2016-12-26 16:36:19 +0000

Tweak Corrupt description

--------------------------------------------------------------------------------
085a5c2bad | Chris Campbell | 2016-12-26 16:34:50 +0000

Give Bend Space a fixed HP cost
Instead of randomly dealing 1-4 damage, give it a fixed cost of 2HP, so that it
can be more clearly displayed as a cost of using the ability.

--------------------------------------------------------------------------------
9f02536398 | Chris Campbell | 2016-12-26 16:31:21 +0000

Adjust Enter the Abyss's MP costs
Instead of reducing MP by a random amount after applying the initial 9 MP cost,
just cost a fixed 10 MP.

--------------------------------------------------------------------------------
ee812e9e2a | Chris Campbell | 2016-12-26 16:28:39 +0000

Randomise some fixed piety costs
Enter the Abyss and Beogh Resurrection both had high fixed piety costs. Use the
normal piety randomisation instead (with the same average cost).

--------------------------------------------------------------------------------
53eb1eaa60 | Chris Campbell | 2016-12-26 16:26:19 +0000

Let Kryia's armour affect Deep Dwarves
Since it no longer interacts with wands of heal wounds (or their replacement
innate healing ability), there's no particular need for it to be special-cased.

--------------------------------------------------------------------------------
303077ceed | Chris Campbell | 2016-12-26 16:22:59 +0000

Rename "no device heal" to "no potion heal"
Since that's all that it now affects.

--------------------------------------------------------------------------------
c9b4002db3 | Nicholas Feinberg | 2016-12-23 21:40:38 -0800

Changelog through 0.20-a0-350-ga83eecc

--------------------------------------------------------------------------------
a83eecc95f | Nicholas Feinberg | 2016-12-22 19:42:22 -0800

De-duplicate duplication messages
Redundant with the message printed in mon-clone.cc.

--------------------------------------------------------------------------------
200756e5dd | Nicholas Feinberg | 2016-12-22 19:08:10 -0800

Visually mark awakened trees in tiles
As in console.

--------------------------------------------------------------------------------
d709e231ac | Nicholas Feinberg | 2016-12-22 11:19:01 -0800

Fix a copy-paste error (johnny0)
oops...
--------------------------------------------------------------------------------
609f6b58d6 | Nicholas Feinberg | 2016-12-22 09:21:55 -0800

COMPILE_CHECK aptitudes.h

--------------------------------------------------------------------------------
d0bbeaa9b3 | Nicholas Feinberg | 2016-12-22 09:20:58 -0800

Re-add a removed skill for a removed race
Broke a nice assertion.

--------------------------------------------------------------------------------
bfb25eca9d | Nicholas Feinberg | 2016-12-21 17:44:51 -0800

Clarify Summon Guardian Golem description
It wasn't really clear at all how the inner flame mechanic worked,
or that it existed at all, really - 'overheats' doesn't convey that
unless you already know what it means!

--------------------------------------------------------------------------------
34bdcb4bd7 | Nicholas Feinberg | 2016-12-21 16:57:33 -0800

autofight_stop default: 30->50 (Haifisch)
Stopping autofight at 30% hp was generally considered to be very
low/late; one of the most common pieces of advice to new players
was 'raise your autofight_stop!' Let's make our defaults better,
instead.

--------------------------------------------------------------------------------
5843844e5a | Nicholas Feinberg | 2016-12-21 16:54:34 -0800

Update fencer's gloves' description
Out of date, since the riposte odds were changed from 50/100% to
33/67%.

--------------------------------------------------------------------------------
68e89da179 | ontoclasm | 2016-12-21 18:52:04 -0600

DD HW ability tile

--------------------------------------------------------------------------------
d2ba6e4c67 | Isaac Sloat | 2016-12-21 18:41:20 -0600

Give ecumenical altars a real tile (removeelyvilon)

--------------------------------------------------------------------------------
e549106f61 | Isaac Sloat | 2016-12-21 17:29:02 -0600

Allow helmet acquirement
Fixes a 21-month-old (0376bd90) bug where even if you could equip
helmets you would only ever get hats from acquirement. MB_MAYBE means
the player can only equip certain items for that slot, used here to mean
mean "If the player can't wear helmets, give them either a helmet or a
hat.". This went unnoticed because acquirement vetoes useless items, so
Minotaurs et al never received helmets matching expected behavior.

--------------------------------------------------------------------------------
8ddb3e8b49 | Chris Campbell | 2016-12-21 22:38:17 +0000

Don't let Black Mark work on monsters with no attacks

--------------------------------------------------------------------------------
717130ad10 | Nicholas Feinberg | 2016-12-21 08:36:31 -0800

Simplify prompt_invent_items()
It was called by exactly one function, so it probably didn't need
ten (!!!) different params. Let's cut it down to one, and rename
it appropriately.

Note that it still duplicates a ton of prompt_invent_item() code;
ideally the two should be merged.

--------------------------------------------------------------------------------
e03b16e1c2 | Neil Moore | 2016-12-21 09:21:20 -0500

Class-ify and rename inv_prompt_flags.
Use the plural for the field and the singular for the flag. Also use
a shorter name for the flag because "invent_prompt_flag::manual_list"
is a bit much to write.

Leave invprompt_flag::none as a "flag" even though it is really an empty
field: That way it stays in the same namespace as everything else.

--------------------------------------------------------------------------------
7b05759b94 | Nicholas Feinberg | 2016-12-20 22:43:52 -0800

Fix a prompt_invent_item misunderstanding

--------------------------------------------------------------------------------
3db6753e0b | Nicholas Feinberg | 2016-12-20 22:39:35 -0800

Avoid mis-selections of useless items
Only allow e.g. wielding non-weapons with * (w*c), or with @w1 or
other techniques. Should hopefully avoid unfortunate accidents.

Closes #416.

--------------------------------------------------------------------------------
d6844ecda1 | Nicholas Feinberg | 2016-12-20 21:53:10 -0800

Remove two seemingly long-unused params
For prompt_invent_item(). excluded_slot seems to have been for
reading un-id'd scrolls that operated on items (?ea, ?ew1/2, etc);
those of course no longer exist. count dates back to the dawn of
time, and i haven't the faintest what it was used for or when it
became irrelevant.

--------------------------------------------------------------------------------
011acc8d90 | Nicholas Feinberg | 2016-12-20 21:51:46 -0800

Refactor prompt_invent_item() params
Turn five bools into a bitfield, and reorder params to avoid
unecessary complication.

--------------------------------------------------------------------------------
c925ad2d6a | Nicholas Feinberg | 2016-12-20 21:51:46 -0800

Finish removing unused trap params
Oops...

--------------------------------------------------------------------------------
5b3579f804 | Isaac Sloat | 2016-12-20 22:53:31 -0600

Buff Earth Elementalist starts by 50%
Give them 30 (instead of 20) stones on character generation, to
compensate for new Sandblast behavior.

--------------------------------------------------------------------------------
d91524c122 | Isaac Sloat | 2016-12-20 22:53:30 -0600

Update Sandblast/Earth Elementalist descriptions
[skip ci]

--------------------------------------------------------------------------------
dd029aaabe | Isaac Sloat | 2016-12-20 22:53:30 -0600

Clean up a conditional in is_useless_item
As well as remove a check for large rocks, as they're no longer used in
Sandblast.

--------------------------------------------------------------------------------
21fc545a8f | Isaac Sloat | 2016-12-20 22:53:30 -0600

Prune an unused function

--------------------------------------------------------------------------------
a53387690c | Isaac Sloat | 2016-12-20 22:53:30 -0600

Make Sandblast range baseline
Instead of a special case.

--------------------------------------------------------------------------------
bbeb9b0cff | Isaac Sloat | 2016-12-20 22:53:29 -0600

Remove large and small ZAP_*SANDBLASTs

--------------------------------------------------------------------------------
ef5153f041 | Isaac Sloat | 2016-12-20 22:53:29 -0600

Rework and simplify Sandblast
Condense the three different zaps for Sandblast into one.

Quality of life improvement: use stones from inventory instead of
requiring that the player wield stones to boost the spell.

As a result, it's necessary that the large and small versions of
Sandblast are removed: it would have encouraged strategic stone dropping
to manipulate the spell's behavior.

The new Sandblast works like Sticks to Snakes: consumes a missile in
your inventory to power the spell. There is no fallback anymore for this
spell, if you're out of stones you can no longer cast Sandblast.

RIP Ogre/Troll Earth Elementalists. (Not really, they'll still be fine.)

--------------------------------------------------------------------------------
149db0740e | CanOfWorms | 2016-12-20 23:23:25 -0500

Fix a connectivity problem with the_grid

--------------------------------------------------------------------------------
86bbc9b3b1 | Chris Campbell | 2016-12-20 23:52:05 +0000

Give Mummies a +2 Spellcasting aptitude
To partially imitate Ogres' old aptitude pattern of high spellcasting but low
spell schools, which was a fairly interesting feature lost by their rework -
Mummies also have a similar thing already with their +0 Fighting and -2 weapon
aptitudes.

--------------------------------------------------------------------------------
1b51c6c3a9 | Chris Campbell | 2016-12-20 23:08:59 +0000

Make heal wounds, hasting and teleportation consumables slightly more common
To partially compensate for the removal of the wands. The weight comes out of
useless potions/scrolls (degeneration/noise/random effects).

--------------------------------------------------------------------------------
718b5515ec | Chris Campbell | 2016-12-20 23:08:59 +0000

Adjust some wand acquirement weights
Give some weak wands a tiny bit more weight - they're not likely to be a
desirable acquirement target, but are probably better than random effects or
flame.

--------------------------------------------------------------------------------
a6f7038972 | Chris Campbell | 2016-12-20 23:08:59 +0000

Remove wands of hasting and teleportation
As per wands of heal wounds.

--------------------------------------------------------------------------------
6aafc7b55e | Chris Campbell | 2016-12-20 23:08:59 +0000

Replace DD recharging with a heal wounds ability
Since the ability to recharge wands is pretty unhelpful without their starting
wand of heal wounds, instead give them an ability to directly apply the heal
wounds effect. Each use has a chance of rotting maxMP, with a roughly similar
chance to the number of charges that would've been gained from recharging a
wand instead.

--------------------------------------------------------------------------------
2007a24446 | Chris Campbell | 2016-12-20 23:08:59 +0000

Remove wands of heal wounds
The top-tier wands (heal wounds, hasting, and teleportation) all share multiple
problems. They all provide effects that work best in a limited form (as per
Haste and Teleport Self spell removals in the past), but finding any of the
wands results in a very large boost to the amount available - with recharging
scrolls often to the point of no longer being practically limited. They also
don't require/reward Evocations investment like damage/hex wands, and can't
really be changed to do so without making them provide a new version of the
effect compared to the potions/scrolls.

--------------------------------------------------------------------------------
c038824741 | Neil Moore | 2016-12-20 02:26:15 -0500

Accept "lang = C" as a synonym for EN.
In case someone decides to set it from the locale.

--------------------------------------------------------------------------------
5d5805ee9a | Neil Moore | 2016-12-20 02:26:15 -0500

Class-ify {,f}lang_t, and dataify set_lang()

--------------------------------------------------------------------------------
8346a86dc5 | Corin Buchanan-Howland | 2016-12-19 18:45:56 -0500

Clean up Sac Courage's effect on spellpower
Make it slightly close to the way that Augmentation increases spellpower.
This is intentionally not quite as clean as -10% to spellpower in order to
prevent very large Horror levels from reducing spellpower to 0 or below.

Also, remove an inaccurate comment.

--------------------------------------------------------------------------------
2b7a7a5668 | Corin Buchanan-Howland | 2016-12-19 18:36:29 -0500

Perform a funectomy on Augmentation
Reduce the Augmentation slaying and spellpower bonus from +4/+40% to +3/+30%
per level. It should still be pretty fabulous, but slightly more balanced.

--------------------------------------------------------------------------------
10ed074002 | Isaac Sloat | 2016-12-19 13:46:03 -0600

Correct a value (|amethyst)
A dumb error in 85fd691b71e8.

--------------------------------------------------------------------------------
85fd691b71 | Isaac Sloat | 2016-12-19 12:09:13 -0600

Fix damage modifiers at 9 and 11 Str (Roleplayer)
Fixes a bug that was touched, but not solved, in 6c060d3771dd.

--------------------------------------------------------------------------------
0840a6ed45 | Nicholas Feinberg | 2016-12-19 09:47:35 -0800

Remove support for the old tutorial map
poisoned_needle_trap has been unused since 536ad4b089, over five
years ago.

--------------------------------------------------------------------------------
3286b33354 | Nicholas Feinberg | 2016-12-19 09:45:08 -0800

Rename an archaic trap attribute
TODO: remove this along with the rest of mechanical traps :)

--------------------------------------------------------------------------------
cba9277953 | Chris Campbell | 2016-12-17 22:17:06 +0000

Don't allow self-targeting lightning rods

--------------------------------------------------------------------------------
9000d6b636 | Chris Campbell | 2016-12-17 21:24:05 +0000

Make more of the Slime vault collapse

--------------------------------------------------------------------------------
d0bf4df2d1 | Chris Campbell | 2016-12-17 21:03:27 +0000

Use a canned message

--------------------------------------------------------------------------------
fb573b806a | Chris Campbell | 2016-12-17 20:08:52 +0000

Tweak wand descriptions again

--------------------------------------------------------------------------------
9f9577c23a | Chris Campbell | 2016-12-17 19:31:20 +0000

Update some spell/wand descriptions

--------------------------------------------------------------------------------
ed96f7e5ae | Chris Campbell | 2016-12-17 15:03:33 +0000

Make infestation scarab-creation into a fineff (#10848)
To fix newly-created scarabs being turned hostile when killing their host in
an explosion.

--------------------------------------------------------------------------------
575bbf731d | x0_000 | 2016-12-15 22:18:10 -0500

Update some code to item_brand_known

--------------------------------------------------------------------------------
eba3175d13 | x0_000 | 2016-12-15 22:17:34 -0500

Don't leak speed brand when examining inventory
Examining a weapon in inventory would reveal if it had the speed brand through 
the min delay because it didn't check if the brand was pre-identified. This 
fixes that, as well as adding a new function to check if the brand was known 
(which will be applied in a few places in a future commit.)

--------------------------------------------------------------------------------
264e157b16 | Nicholas Feinberg | 2016-12-15 14:15:51 -0800

Clarify a misleading penance message (|amethyst)

--------------------------------------------------------------------------------
cb9538ead8 | Nicholas Feinberg | 2016-12-15 14:13:35 -0800

Don't allow resting while on fire (UsaSatsui)
As with dangerous clouds.

It'd only rest for one turn, but that's a bit too long...

--------------------------------------------------------------------------------
ec7c366be5 | Isaac Sloat | 2016-12-14 15:49:50 -0600

Remove Nemelex evocations reference (10847)
[skip ci]

--------------------------------------------------------------------------------
82a587e5b9 | Isaac Sloat | 2016-12-14 13:27:32 -0600

Hyphenate carved runes
[skip ci]

--------------------------------------------------------------------------------
2473c33a87 | Nicholas Feinberg | 2016-12-14 11:23:27 -0800

Tweak Slime:$ wall collapse (regret-index)
Instead of collapsing all of the walls on TRJ's death (a nasty trap
that's hard to de-spoil effectively, and one that makes Slime a
less viable third rune choice), just collapse a few, transparent
walls. Save compat turns old slime walls transparent, for those
who've entered slime:5 but not killed TRJ yet.

--------------------------------------------------------------------------------
f222164434 | Chris Campbell | 2016-12-14 01:46:44 +0000

Adjust manual entry for Trolls

--------------------------------------------------------------------------------
ab3cf41a37 | gammafunk | 2016-12-14 01:37:09 +0000

Remove High Elves
High elves were a relatively uninteresting species in terms of gameplay,
feeling somewhat like tengu but with weapon specialization like merfolk.
Their theme originates from Tolkien, a source of lore that crawl is
trying to borrow less from these days. Their gorgeous blonde hair not
withstanding, this particular Tolkien reference wasn't particularly
interesting.

[Especially with Ogres now also having newly-improved casting apts, there's a
very wide range of hybrid/magic-oriented species, with High Elves being
increasingly redundant. -MarvinPA]

--------------------------------------------------------------------------------
8e39459e6c | Chris Campbell | 2016-12-14 01:37:09 +0000

Increase Ogre spellcasting apts, decrease M&F apt
As an alternative to the proposal of Basajaunak as a large caster race, instead
let Ogres take more advantage of their Ogre Mage heritage, with -1 spell school
apts across the board. Also give them more starting int but less str/dex, and
significantly decrease their M&F apt - they're still uniquely able to make the
most of GSCs but now require more of an investment to do so (and might feasibly
consider other weapon types too), and the extra XP cost for GSC usage is likely
more than made up for by the XP saved on spell schools.

--------------------------------------------------------------------------------
98a595e4f3 | Chris Campbell | 2016-12-14 01:36:04 +0000

Adjust some more coinflips

--------------------------------------------------------------------------------
973fd98a76 | Chris Campbell | 2016-12-14 01:34:33 +0000

Fix compilation

--------------------------------------------------------------------------------
5ec54a4b40 | Neil Moore | 2016-12-13 18:48:30 -0500

Remove an unnecessary duplicate check.
It was unnecessary both because Summon Dragon is no longer a player spell,
and because _choose_dragon_type already handles this case.

--------------------------------------------------------------------------------
6c7fa2827f | Neil Moore | 2016-12-13 18:48:30 -0500

Use random_choose instead of coinflip ? a : b.
Also random_range in a few places, and random_choose_weighted in a few
others.

I only caught instances where the coinflip(), ?, and : appeared on the
same line.

--------------------------------------------------------------------------------
fac7ad8af2 | Isaac Sloat | 2016-12-13 17:27:35 -0600

Grant gods to demonspawn, too

--------------------------------------------------------------------------------
f1302a721a | Isaac Sloat | 2016-12-13 17:27:35 -0600

Make stormcallers follow Qazlal

--------------------------------------------------------------------------------
451e901c30 | Isaac Sloat | 2016-12-13 17:27:35 -0600

Lower foe_ratio on monster Upheaval
Increases the chances that stormcallers will decide to blast the player
with Upheaval even if the player is surrounded by allies of the
stormcaller.

Because Zot draconians and dragons have high HD, this means that
stormcallers will, most of the time, only blast summoned drakes.

--------------------------------------------------------------------------------
ae82e34456 | Chris Campbell | 2016-12-13 22:20:26 +0000

Unbrace

--------------------------------------------------------------------------------
ea62d72a5f | Chris Campbell | 2016-12-13 21:33:13 +0000

Remove some removed items from a vault

--------------------------------------------------------------------------------
0034d1e37b | Isaac Sloat | 2016-12-13 14:17:06 -0600

Buff ogre mage bands
Spawn two 2HO and one ogre, instead of one and two.

Ogre mage bands were tab fodder in late Dungeon, let alone Vaults
and especially Depths. Giving them more and meaner protectors might
make them matter more -- if not, then perhaps they should be moved
out of Depths and slightly earlier into the game.

--------------------------------------------------------------------------------
5be6507527 | Isaac Sloat | 2016-12-13 14:17:06 -0600

Generate 2HO more frequently
They should be somewhat more than twice as common in Dungeon,
expanding into the vacuum left by hill giant removal.

--------------------------------------------------------------------------------
4a298068cf | Isaac Sloat | 2016-12-13 14:12:05 -0600

Buff two-headed ogres
Makes them noticeably nastier than regular ogres and puts them closer to
ogre-mage threat levels.

Old stats: 6 HD, 33 HP, 1 AC, 4 EV, 17/13 damage
New stats: 10 HD, 55 HP, 3 AC, 6 EV, 20/15 damage

--------------------------------------------------------------------------------
305f104216 | Isaac Sloat | 2016-12-13 14:12:05 -0600

Remove hill giants
There's no real need to have an "introductory" giant, and their vanilla
status dilutes the rest of the giants. Cyclops and ettins work better
as an early set of giants (compare mid fire/frost/stone and then late
titan/juggernaut/iron).

Vault surgery has been performed, with two-headed ogre for the most part
taking their place. 2HO are being buffed in oncoming commits, and threat
level between hill giant / 2HO should remain more or less the same for
these affected vaults.

--------------------------------------------------------------------------------
7acc565776 | Nicholas Feinberg | 2016-12-13 10:08:53 -0800

Fix spl-cast compile warnings
Superfluous braces!

--------------------------------------------------------------------------------
748145810c | Nicholas Feinberg | 2016-12-13 09:22:35 -0800

Mention J's pseudo-TRJ effect (Darox)
Should probably also be mentioned in Jiyva powers, but I'm undecided
(and don't have a good phrasing in mind).

--------------------------------------------------------------------------------
49f15a8d6b | Isaac Sloat | 2016-12-13 10:07:15 -0600

Allow TSO followers to summon golden dragons (10845)
TSO no longer hates poison, which was why they were previously excluded.

--------------------------------------------------------------------------------
7db01f4540 | gammafunk | 2016-12-10 17:12:02 -0600

Merge pull request #422 from aheckler/master
Correct link to crawl_manual.rst
--------------------------------------------------------------------------------
45545e57b7 | Adam Heckler | 2016-12-10 18:04:14 -0500

Correct link to crawl_manual.rst

--------------------------------------------------------------------------------
a90a6c4219 | Chris Campbell | 2016-12-10 21:59:04 +0000

Update manual information on max MP

--------------------------------------------------------------------------------
7b51309ea5 | Chris Campbell | 2016-12-10 18:30:39 +0000

Prevent learning removed spells
In cases where they still exist e.g. in transferred randbooks.

--------------------------------------------------------------------------------
531f2bbdee | Chris Campbell | 2016-12-10 17:56:41 +0000

Remove Cure Poison from some vault-defined books (#10842)
And give the books normal weights instead of mysteriously large ones.

--------------------------------------------------------------------------------
1b7fb01750 | Chris Campbell | 2016-12-10 17:49:58 +0000

Remove an unused ability flag
Obsolete since ZotDef removal.

--------------------------------------------------------------------------------
dd95005626 | Chris Campbell | 2016-12-10 17:49:16 +0000

Mark scrolls of noise as bad instead of dangerous
Since they're no longer useful for breaking mesmerisation/fear.

--------------------------------------------------------------------------------
8e735b6151 | Corin Buchanan-Howland | 2016-12-08 21:47:49 -0500

Don't give an MP regen bonus before amulet of MPRegen is attuned 
(alexjurkiewicz)

--------------------------------------------------------------------------------
17f5411d99 | Isaac Sloat | 2016-12-07 13:10:09 -0600

Merge wand and misc acquirement
into "Evocables".

Distribution is 1/8 chance of getting a rod, else coinflip for wand or
misc evocable. This maybe needs further adjustment.

--------------------------------------------------------------------------------
b6bde6113f | gammafunk | 2016-12-05 23:35:00 -0600

Tweak a mailmap entry

--------------------------------------------------------------------------------
4a7ec2af80 | Chris Campbell | 2016-12-06 02:15:53 +0000

Adjust skill checks for staff acquirement
When deciding which enhancer staff to try and acquire, just look at spell
schools instead of also including evocations (no longer relevant since rods
are handled by misc acquirement) and spellcasting (since otherwise having
spellcasting higher than your spell schools makes it acquiring a relevant
enhancer staff far less likely).

The decision on which enhancer staff to try and pick should really be weighted
by skill instead of just being strictly based on which skill is highest,
though.

--------------------------------------------------------------------------------
dedccd634c | Nicholas Feinberg | 2016-12-04 08:19:28 -0800

Use an early return for ugly thing colour
Closes #420.

^ the funny number......

--------------------------------------------------------------------------------
b1c82abfff | John Olender | 2016-12-04 08:18:52 -0800

place_monster(): Factor out ugly thing band colouring.

--------------------------------------------------------------------------------
38049aa058 | John Olender | 2016-12-04 08:18:47 -0800

Only set an ugly thing band colour for fully-ugly bands (#8343).
This is a two-part fix:

 1. Only apply a uniform ugly thing colour to a band if the band
    contains *only* ugly things.

 2. Don't let a failed ugly thing band placement influence the colour
    of the next call to place_monster().

--------------------------------------------------------------------------------
81abdfb039 | Chris Campbell | 2016-12-03 20:37:50 +0000

Don't allow cancelling movement for free when confused and barbed (#10838)
Make the prompt display before redirecting movement when confused, so that it
still displays regardless of whether the movement ends up being redirected into
an attack or not.

--------------------------------------------------------------------------------
358a8cc3fb | Chris Campbell | 2016-12-03 18:28:12 +0000

Make Nemelex wrath reclaim all decks
When abandoning Nemelex, all decks are revoked. As a result, Nemelex wrath no
longer has the lingering passive component of swapping out cards for punishment
cards, only the active punishment effects. Various places (such as card power
calculations) now assume that it's not possible to be in possession of any
decks without worshipping Nemelex, and save compat handling removes decks from
anyone who's worshipped Nemelex in the past.

--------------------------------------------------------------------------------
cb1eca7a03 | Chris Campbell | 2016-12-02 14:31:20 +0000

Make Zin penance end sanctuary
Breaking sanctuary by attacking caused penance, but the reverse wasn't true
when (for example) gaining penance by casting necromancy spells while under
sanctuary.

--------------------------------------------------------------------------------
b24ad0cd3e | Chris Campbell | 2016-12-02 14:31:15 +0000

Simplify handling of TSO, Makhleb, Trog allies on abandonment
Since all of these are summons and can't follow across floors any more, don't
use dactions to make them go hostile wherever they are in the dungeon. Instead
just make all these allies disappear on abandonment (also removing various
extra special-casing for TSO allies to go neutral on converting to other good
gods).

--------------------------------------------------------------------------------
c929cd22f6 | Nicholas Feinberg | 2016-12-01 17:01:07 -0800

Fix webtiles Divine Shield highlight (johnny0)
Broken by 8ce114c4a87b.

--------------------------------------------------------------------------------
f5ffb0e6d3 | Nicholas Feinberg | 2016-12-01 12:21:22 -0800

Update Chilling Breath description

--------------------------------------------------------------------------------
cba89770fa | Nicholas Feinberg | 2016-12-01 12:11:52 -0800

Make monster white drac breath check AC (minmay)
Honestly thought this happened a long time ago. (It started
ignoring AC in b45f3dca4.)

Weird, surprising, unjustified special case. A strong justification
is needed to justify ignoring AC.

--------------------------------------------------------------------------------
abb291d76a | Chris Campbell | 2016-11-30 22:30:08 +0000

Make wizmode superhealing remove weakness

--------------------------------------------------------------------------------
9f7bdd3a75 | Chris Campbell | 2016-11-30 22:16:11 +0000

Adjust monster damage descriptions
Feels like an improvement, but could probably still do with reworking somehow
for more clarity and less wordiness.

--------------------------------------------------------------------------------
f93e2a1957 | CanOfWorms | 2016-11-30 15:59:00 -0500

Paint it red
Speciifically, the spriggan rider mounts since wasps no longer exist.
--------------------------------------------------------------------------------
627bfb6be1 | Nicholas Feinberg | 2016-11-30 09:21:40 -0800

Changelog updates through 0.20-a0-252-gcc89fee

--------------------------------------------------------------------------------
cc89fee949 | Chris Campbell | 2016-11-30 13:24:18 +0000

Fix acid dragon scales randarts not displaying rCorr (ProzacElf)

--------------------------------------------------------------------------------
16a58bf2d6 | Neil Moore | 2016-11-29 22:03:56 -0500

Add a couple of altar quotes (#10834)
[skip ci]

--------------------------------------------------------------------------------
85c58e099b | Neil Moore | 2016-11-29 21:55:36 -0500

Class-ify an enum.

--------------------------------------------------------------------------------
c814f405f4 | Neil Moore | 2016-11-29 21:55:36 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
a311f3faa9 | Nicholas Feinberg | 2016-11-29 18:23:33 -0800

Replace an int return value with an enum
For elyvilon_lifesaving().

--------------------------------------------------------------------------------
a1ad696ee1 | Alex Jurkiewicz | 2016-11-30 12:59:37 +1100

Rework minmay_smoke_and_mirrors (minmay)
< minmay> changes: doesn't generate in depths, just has wizards, a
little less nuts loot, more consistent monster density
< minmay> and it has warlock's mirror

--------------------------------------------------------------------------------
0f5886680a | Nicholas Feinberg | 2016-11-29 16:55:17 -0800

Merge pull request #411 from johnny-0/flip_colour_prefer_background_change
Adjust the background colour for invisible flipped colours (|amethyst)
--------------------------------------------------------------------------------
4747f57eb5 | Isaac Sloat | 2016-11-29 18:52:11 -0600

Fix spirit shield interaction with waking (|amethyst)
Fixes a case where a player who took exactly their current health in
damage but had it reduced below fatal via Spirit Shield wouldn't wake
up.

--------------------------------------------------------------------------------
2162eaf816 | Nicholas Feinberg | 2016-11-29 16:48:53 -0800

Hints mode/tutorial text tweaks
The berserk hint was out of date; others were slightly unclear.

--------------------------------------------------------------------------------
8dd271d7c4 | Roarke | 2016-11-29 16:48:53 -0800

Change Louise's Weapon List
Give Louise a short list of one-handed weapons to fit her shield,
and give her a good item to make the new list more impactful.

Closes #417.

--------------------------------------------------------------------------------
ffcfc1b5ab | Isaac Sloat | 2016-11-29 18:28:37 -0600

Don't let killing blows wake sleeping characters
Allows us to track which characters were killed while sleeping.

--------------------------------------------------------------------------------
e0d8a1c72d | Nicholas Feinberg | 2016-11-29 15:34:41 -0800

Fix the tutorial typo (chequers)

--------------------------------------------------------------------------------
409887acc9 | Aaron Golden | 2016-11-29 15:34:29 -0800

Add a symlink to init.txt for Mac OS X users
Mac OS X users will never expect to find init.txt inside the .app
bundle.  The standard place for such files on Mac OS X is in
~/Library/Application Support/<app name>, so on startup we should
put a symbolic link to whatever init.txt file we're going to use
in ~/Library/Application Support/Dungeon Crawl Stone Soup (or
wherever we're putting morgue and saves anyway).

Note that symlink will not overwrite an existing file.

Closes #385.

--------------------------------------------------------------------------------
f5528cac83 | Nicholas Feinberg | 2016-11-29 15:18:30 -0800

Merge pull request #414 from aegolden/FixMakefilePrefix
Prevent Makefile from blowing away the prefix and chroot_prefix
--------------------------------------------------------------------------------
f5c78d3516 | Aaron Golden | 2016-11-29 15:17:22 -0800

Rename APPLE_GCC to APPLE_PLATFORM
This variable reflects whether or not the Makefile's detected a
Darwin environment, and really doesn't have anything to do with
gcc, so let's call it just APPLE_PLATFORM instead of APPLE_GCC.
Nowadays Apple machines are typically building with clang.

Closes #400.

--------------------------------------------------------------------------------
5d318e29fc | Aaron Golden | 2016-11-29 15:12:42 -0800

Simplify Mac OS X build instructions in INSTALL.txt
APPLE_GCC and NO_PKGCONFIG are both set automatically when the
Makefile detects uname -s == Darwin, and CONTRIB_SDL is not
used anywhere in the Makefile and has no effect.  On Mac OS X
you can build console with just "make" and tiles with
"make TILES=y"

--------------------------------------------------------------------------------
78c6870965 | Aaron Golden | 2016-11-29 15:12:42 -0800

Remove logic related to trying to find oldest available Mac OS X SDK
We don't need to try to find the oldest available Mac OS X SDK.
It's perfectly fine to build against the latest available SDK
(which is the default behavior if we specify no SDK root) and
to target a hard coded earlier Mac OS X version.

--------------------------------------------------------------------------------
aebe03603b | Aaron Golden | 2016-11-29 15:12:42 -0800

Change Mac OS X build arguments
There is no reason to specify the SDK root because we can always
build with the latest available Mac OS X SDK.  The minimum version
of Mac OS X that the binary supports can be less than the SDK with
which the binary was built.

We can set the deployment target all the way back to 10.7 as long
as we also build using clang's libc++ instead of gcc's libstdc++.
Strangely, if you try to set the deployment target less than 10.9
and use libstdc++, some necesary headers (e.g. cinttypes) are not
found in the standard places.  But this is not a problem if we
build using clang's libc++.

--------------------------------------------------------------------------------
355e7a9f30 | Alex Jurkiewicz | 2016-11-29 15:10:54 -0800

Add the orb status light whenever in Zot
Also, add a status help entry for 'Orb'.

Closes #390.

--------------------------------------------------------------------------------
867de38eda | Nicholas Feinberg | 2016-11-29 15:01:26 -0800

Make 'spreading flames' non-opaque
(Aka 'forest fires'.) The reasoning, I suppose, was that there were
still trees inside blocking some vision, except that single trees
now block LOS (whereas opaque clouds take 2), and nothing in the
name, description or tile of the clouds hinted at that...?

--------------------------------------------------------------------------------
7dccb13521 | Nicholas Feinberg | 2016-11-29 14:57:12 -0800

Remove fast dissipation for opaque non-LOS clouds
Steam clouds and forest fires are the only damaging opaque clouds
the player can create, and neither is particularly easy to abuse.

--------------------------------------------------------------------------------
53ab4a8f0a | Nicholas Feinberg | 2016-11-29 14:56:10 -0800

Simplify ink cloud special cases
Made silly by e6e0e65fc82d.

--------------------------------------------------------------------------------
e6e0e65fc8 | Chris Campbell | 2016-11-29 20:48:09 +0000

Adjust some cloud/terrain interactions
Don't make fire/cold clouds time out faster over water/lava respectively, and
don't make rain/storm clouds cause ring of flames to end prematurely. Also
substantially reduce the amount of steam placed by fire clouds and beams when
placed over water.

--------------------------------------------------------------------------------
74fa83487b | Chris Campbell | 2016-11-29 20:02:24 +0000

Don't make noise affect mesmerisation/fear
It was a very well-hidden interaction that was unlikely to be useful even for
anyone who did know about it.

--------------------------------------------------------------------------------
7ac7cdc249 | Chris Campbell | 2016-11-29 15:14:39 +0000

Fix vault warden description (#10816)

--------------------------------------------------------------------------------
c242636bd1 | gammafunk | 2016-11-29 06:56:18 -0600

Don't down-weight a vault and make most of its monsters non-patrolling
This vault recently got nerfs place fewer monsters and specifically
fewer hydras, so it doesn't need any special down-weighting. Remove a
very small down-weighting for choosing hydras over dire elephants, since
these are comparable threats and the number of either that place in this
vault is much less than one on-average.

Also remove the patrolling tag on all monsters except the avatar. The
other vault monsters work fine outside the vault on land, and extensive
use of patrolling will lead the player to shout a lot more.

--------------------------------------------------------------------------------
410101a4ab | Alan Malloy | 2016-11-29 00:41:22 -0800

Merge pull request #415 from aegolden/FixCardToolTip
Remove special case for tiles tool tip for cards (fixes #391)
--------------------------------------------------------------------------------
066d66bcbf | regret-index | 2016-11-29 01:29:52 -0500

Nerf ushabti miasma spam, fix up tomb fodder sets again
Giving ushabti miasma blasts without changing their spell rate, then folding
anubis guards into them to thus bring them to nearly every Tomb floor, is a
brutally excessive amount of rot and cloud spam. They appear in much more
reliable and swarming numbers than the rare death drakes, get reliable support
on average than death drakes with mummy summons, and don't have the draconic
breath timer (...outside of Warning Cry, which is silly but whatever).

Cut the chance of Death Rattle casts from 57/200 to 36/200. Also, provide
a third tomb fodder set that doesn't use either of the awkward replacements
meant to dilute guardian mummy curse bombing, a set that relies more on
providing less than miniscule odds to place ancient champions and bennu.
Not the cleanest of solutions, but if Tomb can't pull together enough
fodder to provide coherent variety for the length it wants then we should
probably review what's currently there as stands (death scarabs are stuck
in an awkward limbo now, death curse effects themselves could be cleaned up).

--------------------------------------------------------------------------------
b69ddcd006 | Alan Malloy | 2016-11-28 18:54:55 -0800

Simplify displaying an affirmation to Zin.
if (one_chance_in(9) && one_chance_in(3)) {...} // :(

--------------------------------------------------------------------------------
94812387fb | Alan Malloy | 2016-11-28 17:47:28 -0800

Ashenzari messages? In my Zin verses? (damerell)
Fix #10832, introduced in cc38ccbfa

--------------------------------------------------------------------------------
4ebf0c7fae | Alan Malloy | 2016-11-28 17:37:45 -0800

Simplify citing chapter and verse for Zin recite

--------------------------------------------------------------------------------
21f8257700 | Nicholas Feinberg | 2016-11-28 11:23:24 -0800

Improve Elixir card messaging
In play, it was totally unclear what it did, if anything.

--------------------------------------------------------------------------------
1c5f1cca52 | Nicholas Feinberg | 2016-11-28 11:23:24 -0800

Pain card level 2 rework
Pain card's level 2 summoned a flayed ghost and instantly flayed
every natural monster onscreen. This was pretty much always worse
than level 1!

Rework:
- Change the flaying from a single level of normal Flay (~20% of
  monster HP) to 40% of their HP. Of course, once the ghost goes
  down, all that HP will come right back...
- If there's no space to spawn the flayed ghost, downgrade to
  level 1 (Bolt of Draining) instead of silently failing.
- Don't deal 5 damage to the player.

--------------------------------------------------------------------------------
17e8cebab7 | Chris Campbell | 2016-11-27 19:01:42 +0000

Adjust a god worship message

--------------------------------------------------------------------------------
962fb7dd74 | Chris Campbell | 2016-11-27 19:01:02 +0000

Remove obsolete Nemelex/sac artifice handling

--------------------------------------------------------------------------------
a0e9fd510a | Chris Campbell | 2016-11-27 18:06:51 +0000

Fix pizza syntax

--------------------------------------------------------------------------------
c881eda5b1 | Aaron Golden | 2016-11-26 20:51:11 -0800

Remove special case for tiles tool tip for cards (fixes #391)
Cards are now evoked like normal miscellany type objects, so
there shouldn't be a special case to say left clicking cards
will "wield" them.

--------------------------------------------------------------------------------
b74cb0e04b | CanOfWorms | 2016-11-26 17:26:40 -0500

Tweak iron imp tiles (Yermak)
Differentiate them more from skeletons on the ground.
--------------------------------------------------------------------------------
c646d033d2 | Nicholas Feinberg | 2016-11-26 11:20:13 -0800

Uncomment an assert
Accidentally left in with the last commit.

--------------------------------------------------------------------------------
73c396fff8 | Nicholas Feinberg | 2016-11-26 11:17:27 -0800

Fix nondeterministic spectral hydra descriptions
Something of a hack, sorry.

--------------------------------------------------------------------------------
b8fcc818c4 | Nicholas Feinberg | 2016-11-26 10:53:28 -0800

Fix a zombified hydra crash (wazuzu)

--------------------------------------------------------------------------------
454d93fa45 | Aaron Golden | 2016-11-26 10:39:46 -0800

Prevent Makefile from blowing away the prefix and chroot_prefix
The Makefile was initializing prefix and chroot_prefix to empty
strings, but never actually wrote anything "useful" to these
variables.  The builder is meant to be able to specify prefix
(per the examples in the Typical parameters notes at the top
of the Makefile).  chroot_prefix is also probably meant to be
specified similarly, though it seems to be an undocumented
option.

--------------------------------------------------------------------------------
d6c29ebcfa | Chris Campbell | 2016-11-26 01:07:49 +0000

Fix messaging for enchanting scales (#10827)

--------------------------------------------------------------------------------
de3baf9eaa | Nicholas Feinberg | 2016-11-25 07:41:36 -0800

Revert "Add two flavour vaults to Pan." (10821)
Putting a portal to Zot in Pan really, really breaks things!

This reverts commit 41cc41e0000da643753aa7e5981967ce1a43f225.

--------------------------------------------------------------------------------
55166f75ad | Pekka Lampila | 2016-11-24 20:52:13 +0200

Fix two version tag tests.

--------------------------------------------------------------------------------
e56602288f | Chris Campbell | 2016-11-24 17:56:44 +0000

Remove unused code

--------------------------------------------------------------------------------
a7b90b85c9 | Chris Campbell | 2016-11-24 17:46:02 +0000

Don't colour poison spells/abilities red under TSO (johnny0)

--------------------------------------------------------------------------------
89283e9e72 | Nicholas Feinberg | 2016-11-24 09:08:59 -0800

Fix a enum.h comment
Thought I'd included this in the last commit, but I only ran --amend,
not -a --amend...

--------------------------------------------------------------------------------
e9bc5e30be | Alex Jurkiewicz | 2016-11-23 21:28:48 -0800

Don't count Abyss gold for Gozag's service fee
Currently, wandering through the Abyss (say AK starts) can inflate the
service fee beyond what the player has actually accessible to them.

Closes #409.

--------------------------------------------------------------------------------
08ddd8882c | Nicholas Feinberg | 2016-11-23 21:19:01 -0800

Merge pull request #403 from alexjurkiewicz/qaz-firewood
Don't create Qaz clouds over firewood
--------------------------------------------------------------------------------
851c6fa7a8 | Isaac Sloat | 2016-11-23 22:20:54 -0600

Add version tags to a bugfix (gammafunk)
So it gets caught when we update versions.

--------------------------------------------------------------------------------
18a743d10d | Isaac Sloat | 2016-11-23 22:10:50 -0600

Truly remove mottled draconians (alcopop)

--------------------------------------------------------------------------------
bc1e2de22c | Alex Jurkiewicz | 2016-11-24 11:38:48 +1100

Don't create Qaz clouds over firewood (Yermak)
The messages generated by burning/freezing flora made resting in certain
places (especially lair) quite spammy/tedious.

Hopefully doesn't prevent any cool tech?

--------------------------------------------------------------------------------
ef923fd159 | Nicholas Feinberg | 2016-11-23 16:18:59 -0800

Merge pull request #404 from alexjurkiewicz/golubria-useless-check
Mark Passage of Golubria useless with Orb (Yermak)
--------------------------------------------------------------------------------
5f06afe21d | Alex Jurkiewicz | 2016-11-24 10:39:58 +1100

Mark Passage of Golubria useless with Orb (Yermak)

--------------------------------------------------------------------------------
a7a688530a | John Olender | 2016-11-23 18:37:18 -0500

Adjust the background colour for invisible flipped colours (|amethyst)
When a colour flip would likely result in an invisible glyph, prefer
 to resolve the issue by adjusting the background colour instead of the
 foreground colour.

This typically results in a significantly more noticeable flip than one
 resolved using a foreground colour adjustment.

Additionally, adjust some related comments for clarity.

--------------------------------------------------------------------------------
1294df6b0c | Nicholas Feinberg | 2016-11-23 14:28:05 -0800

Merge pull request #407 from johnny-0/377_fixes
Terminal rendering option fixes (for PR #377)
--------------------------------------------------------------------------------
879807ebcb | Nicholas Feinberg | 2016-11-23 13:46:46 -0800

Tweak monster damage descs slightly (chequers)
"plus scimitar of flaming damage" -> "plus its scimitar of flaming".

Marginally shorter, scans slightly better (no repeated 'damage' in
the full text).

--------------------------------------------------------------------------------
f34b5b9fb7 | gammafunk | 2016-11-23 04:48:22 -0600

Update the debian changelog for 0.19.0 and 0.19.1
(cherry picked from commit 4efbe43a2758ae53bad7f5d6ddd58d731596d73f)

--------------------------------------------------------------------------------
06126e9f6f | gammafunk | 2016-11-23 04:48:15 -0600

Colorize the entire survey message
(cherry picked from commit d9ab002a8e8054638c5a17911ff9d8e67438562a)

--------------------------------------------------------------------------------
99dbe1240b | Nicholas Feinberg | 2016-11-23 04:48:13 -0600

Let people know about the survey
Not pushing this until we actually have a survey link up on the
page.

(cherry picked from commit bbb48694f4ac266cbb00c7eb3ec0376d8ef2edd9)

--------------------------------------------------------------------------------
8a14b9e1da | gammafunk | 2016-11-23 04:47:56 -0600

Update the changelog for the 0.19.1 bugfix release
(cherry picked from commit d501a8f714272a5372813300cd11c303a3c5cb67)

--------------------------------------------------------------------------------
891e9629be | John Olender | 2016-11-22 22:34:40 -0500

Add allow_extended_colours to the options guide TOC.
[skip ci]

--------------------------------------------------------------------------------
e35ada9758 | John Olender | 2016-11-22 22:34:25 -0500

Remove the no_dark_brand option (|amethyst)
The option was retooled as a workaround for terminals with a broken
 bright black colour.  For these terminals, darkgrey may be displayed
 as black due to the terminal's implementation or a bogus default colour
 palette.

However:

 * These terminals are quite rare.

 * The default values for the other bright color assumption options
   provide protection against invisible darkgrey-on-black glyphs.

 * no_dark_brand's dependence on other rendering options is not
   obvious at first glance.

   This creates an additional configuration burden for users who wish
   to allow rendering of darkgrey-on-black on capable terminals.

 * If a user insists on using a terminal with a broken darkgrey while
   enabling bright colour assumptions, invisible glyphs may be avoided
   by setting the colour.darkgrey option to any non-darkgrey colour.

--------------------------------------------------------------------------------
e5586d949a | Isaac Sloat | 2016-11-22 20:08:29 -0600

Fix glyph color for acid dragons
Avoid having too many Ds share the same color. Acid dragons move back to
LIGHTMAGENTA that mottled dragons used.

--------------------------------------------------------------------------------
67c11754f3 | Neil Moore | 2016-11-22 19:16:51 -0500

Fix demonspawn copy-paste error (doh)

--------------------------------------------------------------------------------
de25b03eaa | Neil Moore | 2016-11-22 19:07:57 -0500

Refactor draco/demonspawn generation further.
The four functions did pretty much the same thing, so make them wrappers
around a single function.

--------------------------------------------------------------------------------
ad8db623c8 | Neil Moore | 2016-11-22 18:57:22 -0500

Add mons_is_removed, use it for ghostification and drac generation
Also, remove the #if TAG_MAJOR_VERSION around the draconian checks now
that the code does not depend on the specific list of removed monsters.

--------------------------------------------------------------------------------
ea02cb55ae | Neil Moore | 2016-11-22 18:55:38 -0500

Don't crash when Grand Finale fails.
See for example
    
http://crawl.berotato.org/crawl/morgue/brahma/crash-brahma-20161122-230045.txt

Introduced in 0.20-a0-80-g14a9077.  The fail_check in uskayaw_grand_finale
returned bool(SPRET_FAIL), which happens to be true, causing us to return
SPRET_SUCCESS.  Have the function instead return a spret_type like the
other abilities with fail parameters.

--------------------------------------------------------------------------------
1dd45c8aca | Neil Moore | 2016-11-22 18:48:18 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
08e0bf942f | Isaac Sloat | 2016-11-22 16:53:07 -0600

Future-proof LAST_DRACONIAN and LAST_DEMONSPAWN enums

--------------------------------------------------------------------------------
ce2cec4223 | Isaac Sloat | 2016-11-22 16:53:07 -0600

Refactor draconian and demonspawn variety selection
Fixes a build error and removes several magic numbers.

--------------------------------------------------------------------------------
05fa4992d2 | John Olender | 2016-11-22 17:14:14 -0500

Improve the documentation for the new terminal colour options.
* Fix the foreground_colour option name and change every remaining
  'color', other than the example TERM values, to 'colour'.

* Place the terminal colour options in the table of contents.

* Note the conditions which cause each option to [not] have an effect.

  Additionally, provide some example TERM values for popular terminals
  in the allow_extended_colours description.

[skip ci]

--------------------------------------------------------------------------------
a951d0f65d | Chris Campbell | 2016-11-22 20:28:17 +0000

Replace High Council with Folly in a guarded unrand vault instead (minmay)

--------------------------------------------------------------------------------
172aa85be1 | Alan Malloy | 2016-11-22 12:25:09 -0800

Fix compilation - gotta have compatible return types

--------------------------------------------------------------------------------
a5c5602706 | Alan Malloy | 2016-11-22 12:16:13 -0800

Refactor messaging for holy damage scaling

--------------------------------------------------------------------------------
858dfd8c59 | Chris Campbell | 2016-11-22 20:11:10 +0000

Remove a High Council vault

--------------------------------------------------------------------------------
2d9ae9d7a9 | Chris Campbell | 2016-11-22 20:04:18 +0000

Don't let monsters cast Fulminant Prism
It's not a spell that really functions in monster hands, since using it as a
player very much depends on making the most of monster AI being generally dumb
and predictable.

--------------------------------------------------------------------------------
6ea533fcdc | Chris Campbell | 2016-11-22 20:04:18 +0000

Remove the hat of the High Council
It's one of a very large number of mechanically similar unrands that improve
spellcasting in some way at a cost (robe of Folly, hat of Pondering, Majin-Bo,
Maxwell's Etheric Cage) and probably has the least interesting downside
of them (and orange crystal plate is also similar in practice, since it has
Archmagi but reduces success by virtue of being CPA).

--------------------------------------------------------------------------------
fa64ebb1e4 | Isaac Sloat | 2016-11-22 13:42:37 -0600

Fix vaults containing draconian callers / zealots

--------------------------------------------------------------------------------
df2855f53e | Isaac Sloat | 2016-11-22 13:42:37 -0600

Minor cleanup to stash.lua and dc-mon.txt
A few crumbs from the draconian culling...

--------------------------------------------------------------------------------
c70ed55bd8 | Isaac Sloat | 2016-11-22 13:42:37 -0600

Refactor draconian job and color selection
Necessary due to removals of mottled and zealot.

--------------------------------------------------------------------------------
0b5e84b08d | Isaac Sloat | 2016-11-22 13:42:36 -0600

Transform draconian callers into stormcallers
Takes some flavor and mechanics from draconian zealots. Stormcallers
are priests of Qazlal who can Smite, Summon Drakes, and cast Upheaval.

--------------------------------------------------------------------------------
92b09163a0 | Isaac Sloat | 2016-11-22 13:42:36 -0600

Implement monster Upheaval
For draconian stormcallers.

--------------------------------------------------------------------------------
0cf1cc1fb0 | Isaac Sloat | 2016-11-22 13:42:35 -0600

Remove draconian zealots
They were filler in draconian packs.

--------------------------------------------------------------------------------
d0ada4dd45 | Isaac Sloat | 2016-11-22 13:42:35 -0600

Save compatibility for mottled draconians
Player mottled draconians get ABIL_BREATHE_FIRE to compensate for
removal of sticky flame breath.

--------------------------------------------------------------------------------
9f27697760 | Isaac Sloat | 2016-11-22 13:42:34 -0600

Grant rCorr to acid dragon scales

--------------------------------------------------------------------------------
2211f761b3 | Isaac Sloat | 2016-11-22 13:42:34 -0600

Remove a sticky flame resistance check
As mottled dragon scales are no more.

--------------------------------------------------------------------------------
f863914a4e | Isaac Sloat | 2016-11-22 13:42:33 -0600

Replace mottled dragons with acid dragons
Concurrent with new yellow draconians.

Note that acid dragons spit acid, instead of breathe splashes of acid.

--------------------------------------------------------------------------------
29bf9f277a | Isaac Sloat | 2016-11-22 13:42:33 -0600

Rework draconian acid breath
Takes mottled sticky flame behavior: short range and splashing.

--------------------------------------------------------------------------------
8991fe2607 | Isaac Sloat | 2016-11-22 13:42:32 -0600

Remove ABIL_BREATHE_STICKY_FLAME
With the removal of mottled draconians and dragons, nothing
remains in the game that uses this ability.

--------------------------------------------------------------------------------
d147df4e61 | Isaac Sloat | 2016-11-22 13:30:31 -0600

Remove mottled draconian species
The 0.19 changes to sticky breath wasn't enough to differentiate them or
make them exicting ...  nor is it enough to save them from the
unyielding blade of Removal.

--------------------------------------------------------------------------------
1ccc08d095 | Isaac Sloat | 2016-11-22 13:30:31 -0600

Remove mottled draconian monsters
Somehow even more unremarkable than player mottled draconians.

Their removal will strengthen draconian variety, making the
individual colors stand out more. Draconians had too much variety
between ten colors and seven jobs, which ended up all bleeding together.
This is a case where "less is more".

--------------------------------------------------------------------------------
157c32f57b | Nicholas Feinberg | 2016-11-22 11:04:33 -0800

Fix a statue xv crash
AT_SHOOT is an abomination.

Trivia: cherubs now have nondeterministic xv descriptions.

--------------------------------------------------------------------------------
33a96a6623 | Shmuale Mark | 2016-11-22 11:48:41 -0500

Remove more poison conduct code.

--------------------------------------------------------------------------------
c17e143b01 | John Olender | 2016-11-22 08:37:02 -0500

Don't clobber failsafe colors set conditionally (amalloy)
Remove the failsafe color sets left in from debugging.

--------------------------------------------------------------------------------
958a910997 | Chris Campbell | 2016-11-22 13:17:08 +0000

Adjust holy damage for resistance changes
Cleansing Flame (from Seraphs only) now has slightly lower base damage, so
deals less damage to demons/undead, but more to normal characters as the damage
is no longer halved for non-evil creatures.

Holy Flame impact base damage is halved, resulting in the same (not
insignificant) damage to normal characters, and substantially less absurd
amounts of damage to demons/undead. Clouds of holy flame themselves previously
did the same damage to everything (other than holy creatures being completely
immune), but now deal slightly less damage to normal characters and slightly
more to demons/undead.

--------------------------------------------------------------------------------
c6e9da29ea | Chris Campbell | 2016-11-22 13:17:08 +0000

Remove TSO's poison conduct
In order to focus TSO on fewer, more interesting conducts - specifically the
newly-simplified stabbing conduct, as well as the necromancy/evil conduct,
which while still fairly complicated is a lot more well-defined than the poison
conduct was (since it did weird things like allow you to use Poison Arrow on
poison-immune targets, or to poison evil monsters).

--------------------------------------------------------------------------------
66c19504ab | Chris Campbell | 2016-11-22 13:17:08 +0000

Reword TSO's DID_SEE_MONSTER conduct

--------------------------------------------------------------------------------
e92b5572ce | Chris Campbell | 2016-11-22 13:17:06 +0000

Simplify TSO's stabbing conduct
Instead of causing penance for "unchivalric" attacks, just passively suppress
all stabs (including against evil/unintelligent monsters where stabbing was
previously allowed), and allow attacking normally otherwise. Disarming monsters
with the captain's cutlass is no longer considered unchivalric (it could be
suppressed too but that seems extra-fiddly to communicate).

Also renames "cleanse" back to "holy" in monster, since that's now actually a
reasonably accurate description of the resist.

--------------------------------------------------------------------------------
8e82014a75 | Chris Campbell | 2016-11-22 13:16:43 +0000

Simplify holy damage
BEAM_HOLY and BEAM_HOLY_FLAME being different damage types was a huge weird
mess. Remove BEAM_HOLY_FLAME, and also refactor BEAM_HOLY to use
resist_adjust_damage to calculate damage. Non-"evil" creatures now also take
the same damage as evil ones (rather than it being halved as previously), with
holy creatures remaining immune and undead/demonic creatures still taking 150%
damage.

Clouds of blessed fire previously dealt no damage to holy creatures, but full
damage otherwise (extremely confusingly, the *impact* from holy flame breath
dealt BEAM_HOLY damage and so behaved as described above). The clouds now also
deal BEAM_HOLY damage.

--------------------------------------------------------------------------------
2449017985 | gammafunk | 2016-11-22 06:11:56 -0600

Update and simplify Windows MSYS2 instructions
Recent versions of MSYS2 no longer require fixes to the shortcuts. Also
clarify that users generally want the 64-bit version and better indicate
which MSYS2 shell they should choose. Remove a lot of extra wording and
some ancient instructions for the old msysgit setup.

--------------------------------------------------------------------------------
755e310cad | Neil Moore | 2016-11-21 16:49:13 -0500

Remove tournament reminder.
This reverts commit 69bea3c96884dfad5637b34c1565fbed7438e6a6.

--------------------------------------------------------------------------------
0ef8409511 | Nicholas Feinberg | 2016-11-20 21:12:17 -0800

Brutally nerf Confusing Touch/fungus form
Use the old numbers for non-natural monster vulnerability, reducing
odds to affect monsters across the board (but especially for high-
HD monsters).

Goal is to reduce the long-term usefulness/global applicability of
confusing touch (given its spell level); fungus form is collateral.

--------------------------------------------------------------------------------
1c03bc9c19 | Nicholas Feinberg | 2016-11-20 21:02:41 -0800

More Demonic Guardian tweaks
Revert the changes to level 1 and 2 demonic guardian frequency,
and refactor slightly.

--------------------------------------------------------------------------------
b6cfb217b2 | Nicholas Feinberg | 2016-11-20 20:54:49 -0800

Merge pull request #398 from alexjurkiewicz/dguardian-mechanics
Simplify demonic guardian spawning/despawning
--------------------------------------------------------------------------------
49b0324032 | Nicholas Feinberg | 2016-11-20 20:44:33 -0800

Display odds for Confusing Touch/Fungus Form
Resolves #383.

Also, seeing these numbers makes me realize I should probably
re-nerf Confusing Touch.

--------------------------------------------------------------------------------
70fc19a0fd | Nicholas Feinberg | 2016-11-20 20:02:45 -0800

Give Bai Suzhen bonus scales enchant (CanOfWorms)
To match the other non-Purgy uniques.

Also, downgrade Snorg's enchant to +1-3, from the +2-4 the others
have.

Possibly Bai could be upgraded (+2-6?), but +6 stormda is a bit
much...

--------------------------------------------------------------------------------
19b4cc5275 | Nicholas Feinberg | 2016-11-20 19:46:49 -0800

Merge pull request #377 from 
johnny-0/curses_control_rendering_assumptions_rebase
Controlling Crawl's Curses Color Conjectures
--------------------------------------------------------------------------------
18cc4de8e9 | Neil Moore | 2016-11-20 17:30:29 -0500

Satisfy the parenthesis police.
Specifically, util/checkwhite

[skip ci]

--------------------------------------------------------------------------------
e3b074c427 | Neil Moore | 2016-11-20 17:15:52 -0500

Turn a magic number dice definition into a constant.
And constexprify dice_def while we're at it.

--------------------------------------------------------------------------------
43a23e1da1 | Chris Campbell | 2016-11-20 22:04:45 +0000

Document XL-based unarmed attacks for badforms (nagdon)

--------------------------------------------------------------------------------
a00ea975c8 | Chris Campbell | 2016-11-20 21:51:31 +0000

Add form descriptions to status lookup (?/T)
And include more complete information in spell descriptions where relevant
(although this all results in a bunch more duplicated information).

--------------------------------------------------------------------------------
b5556e9b5b | Chris Campbell | 2016-11-20 21:51:04 +0000

Let fungus form wear all helmets
Instead of only hats, not hard helmets. Only partially restricting the slot is
unnecessarily complicated (although it might be better to fully restrict it
instead).

--------------------------------------------------------------------------------
bed7403925 | Chris Campbell | 2016-11-20 21:51:04 +0000

Tweak a transformation message

--------------------------------------------------------------------------------
4cd936bf6d | Chris Campbell | 2016-11-20 21:51:04 +0000

Let wispform evoke (non-wand) evokables
It was the only form with such a restriction, and is still one of the most
complicated and heavily-restricted forms otherwise.

--------------------------------------------------------------------------------
70de9b6695 | Chris Campbell | 2016-11-20 21:51:04 +0000

De-duplicate some spellcasting checks
For whether the spellcasting command is valid to use in tiles.

--------------------------------------------------------------------------------
de011dfac3 | Chris Campbell | 2016-11-20 21:51:03 +0000

Remove the small chance of hostile polymorph picking a "good" form
Since badforms (wisp, tree, pig, bat, fungus) now behave vaguely consistently
in terms of weakly using XL for damage, don't let regular UC-using forms be
options for hostile polymorph effects.

--------------------------------------------------------------------------------
9726809e02 | Chris Campbell | 2016-11-20 21:51:03 +0000

Make non-weapon-wielding badforms consistently use XL instead of UC for attacks
Previously it was just applied to wisp and fungus form - instead apply it to
all badforms except Tree (which can still use weapons), but make it
substantially less effective overall so that melee in badforms won't generally
be equivalent to having high levels of UC skill.

--------------------------------------------------------------------------------
9c31eae17d | Chris Campbell | 2016-11-20 21:51:03 +0000

Don't allow Vampires to be batformed by polymorph effects
It was weird in many ways, since unlike other forms it worked when satiated
or below and not when full, and Vampire batform is distinct from batform as a
negative polymorph effect for other species in multiple ways. They should
probably be split into two separate forms, but even then it would be strange
for Vampires to be able to be transformed into another different type of bat.

--------------------------------------------------------------------------------
0f5b31ffaf | Chris Campbell | 2016-11-20 21:51:03 +0000

Simplify batform melee attacks
Remove its special-cased faster attack speed and reduced benefit from unarmed
combat skill, and give it a base damage of 1 for both Vampire and non-Vampire
bats (instead of 2 for Vampires and 1 otherwise).

--------------------------------------------------------------------------------
77d4e8a237 | Chris Campbell | 2016-11-20 21:51:03 +0000

Remove porcupine form
It was barely distinct from pig form.

--------------------------------------------------------------------------------
b1ff10d2ec | Chris Campbell | 2016-11-20 21:51:03 +0000

Don't make wispform sometimes move unreliably
It still has a similar effect with its random blinking - sometimes redirecting
regular movement to another square is pretty unnecessarily complex for an
already very complicated form.

--------------------------------------------------------------------------------
7693dad0e7 | Nicholas Feinberg | 2016-11-20 13:16:25 -0800

De-essayify Antaeus's description (MarvinPA)
Fannar, Antaeus... seems like there's some connection, but what?
--------------------------------------------------------------------------------
5877242939 | Nicholas Feinberg | 2016-11-20 13:04:17 -0800

Add a flavor vault

--------------------------------------------------------------------------------
5c10bcf460 | Nicholas Feinberg | 2016-11-20 13:04:17 -0800

Make vampire feeding a single-turn action
Making it a delay causes common annoyances ("All the blood oozes
out of the corpse!"), and isn't super great for 'balance', either
 - it's pretty much always better to just bottle blood (once you
can) instead of drinking from a corpse directly. I think it'll
probably still be usually better to bottle blood, since you're
usually not urgently hungry as a vampire, but the simple 'eating'
action can be, at least, a little simpler.

--------------------------------------------------------------------------------
8a2a5c25c4 | Nicholas Feinberg | 2016-11-20 13:03:48 -0800

Simplify melee confusion effects
Make them equally effective against all holinesses.

--------------------------------------------------------------------------------
86b24f64bd | Nicholas Feinberg | 2016-11-20 13:03:48 -0800

Refactor: Move Fire Storm into a zap
Note that the comment about ench_power has not been true for a
very long time; possibly since before Stone Soup?

--------------------------------------------------------------------------------
3892ab6dce | Nicholas Feinberg | 2016-11-20 13:03:48 -0800

Remove hunger-over-time costs for invis/haste
Weird mechanical cruft, serving no purpose. I suspect most players
don't know they existed, and there's no real reason they should.

--------------------------------------------------------------------------------
24d6f97ea9 | Nicholas Feinberg | 2016-11-20 13:03:48 -0800

Move Poisonous Cloud to level 5 (from 6)
For much the same reason as Venom Bolt is L5 while Bolt of Cold is
L6: it's not as strong a damage type, and, even against
non-immune enemies, it doesn't do as much damage.

--------------------------------------------------------------------------------
c50ae3626e | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Improve mon weapon damage display (elliptic)

--------------------------------------------------------------------------------
6399215532 | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Simplify (amalloy)

--------------------------------------------------------------------------------
94140ce542 | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Add an AF_PURE_FIRE description hack
There's probably a better way to do this.

--------------------------------------------------------------------------------
6b34e32465 | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

List damage for elemental AFs

--------------------------------------------------------------------------------
20a5569ce1 | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Tweak a few attack flavour descs
"Constrict for 6 damage and constriction" sounded silly. "...and
ongoing constriction" is slightly better... if not good.

--------------------------------------------------------------------------------
600fc78464 | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Improve descs of monsters with multiple attacks
Merge multiple attacks (e.g. "It can attack twice for up to 20
damage each...)" and handle hydras correctly.

--------------------------------------------------------------------------------
27a15eb13e | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Mention monster weapon use in attack descriptions
Ugly, and would be nice if it calculated damage for current
weapons... (e.g. "up to 19 damage (32 with its giant spiked club)").

--------------------------------------------------------------------------------
ce4e231c65 | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Re-describe monster attack flavours
A little verbose...

--------------------------------------------------------------------------------
29da077fa4 | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

First pass on displaying monster damage

--------------------------------------------------------------------------------
5a4a499e9e | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Expose flavour_triggers_damageless()

--------------------------------------------------------------------------------
ceffc2c6af | Nicholas Feinberg | 2016-11-20 13:02:10 -0800

Refactor monster attack names
Preparation for a future change.

--------------------------------------------------------------------------------
4d0003cd04 | Nicholas Feinberg | 2016-11-20 13:01:36 -0800

Give unique's hides bonus enchantment
That is, Snorg's and Xtahua's. All get a random +2-4
enchant. A little bonus for killing them.

(Purgy just giving a troll hide at all is a good reward for his
depth.)

--------------------------------------------------------------------------------
3f3950b4b5 | Nicholas Feinberg | 2016-11-20 12:53:39 -0800

Reduce monster MR with lowered HD
I.e. when drained or malmutated.

Draining previously reduced MR, and that was part of the initial
intent of temp draining, to allow an interesting synergy between
hex effects (both spells & wands) and draining. When monster MR
was simplified, this effect vanished. Let's bring it back.

--------------------------------------------------------------------------------
84ee52cb90 | Nicholas Feinberg | 2016-11-20 12:53:28 -0800

Message for god gift piety breakpoints
Since this wasn't communicated before, and probably should be.

--------------------------------------------------------------------------------
9d93480eec | Nicholas Feinberg | 2016-11-20 12:53:00 -0800

Remove list of abilities from the % screen
Almost entirely useless. (Keep it in the chardump, though; in a
slightly different order, but I don't think that matters.)

--------------------------------------------------------------------------------
dcea25df74 | Nicholas Feinberg | 2016-11-20 12:52:56 -0800

% screen: change spell level display
From listing # of spells memorized to # of slots used. Latter is
marginally more useful.

--------------------------------------------------------------------------------
4009af932a | Nicholas Feinberg | 2016-11-20 12:52:32 -0800

Hell lord descriptions
These have been sitting unused around for 2-3 years, but people
seemed to like them.

--------------------------------------------------------------------------------
032f40ab16 | Nicholas Feinberg | 2016-11-20 12:52:26 -0800

Add some flavor text to hell features (r-i)
Not sure who's reading these, but they could probably be a bit
more grimdark than they were. 'Creepy!', really?

--------------------------------------------------------------------------------
930d32759b | Chris Campbell | 2016-11-20 18:15:28 +0000

Clean up obsolete stasis code, clarify Formicid messaging
Since "stasis" isn't a defined term with any context any more, describe what
its actual effects are on the 'A' screen for Formicids, and clean up a lot of
dead code relating to stasis as an potential item.

--------------------------------------------------------------------------------
6e69d53a0f | Nicholas Feinberg | 2016-11-19 16:38:33 -0800

Fix OS X 10.8 compilation (10791)

--------------------------------------------------------------------------------
14a9077f41 | Nicholas Feinberg | 2016-11-19 07:53:51 -0800

Improve grand finale's fail check
Check *after* targeting!

--------------------------------------------------------------------------------
e854f580fb | gammafunk | 2016-11-19 02:42:17 -0600

Clean up some ecumenical altar vaults
Spruce up the decorative features in one vault to not place them in such
an awkward mix. Better use of no_(item|monster)_gen through KMASK, and
clean up a few typos.

--------------------------------------------------------------------------------
e18884774f | elliptic | 2016-11-19 00:06:52 -0500

Make converting at a faded altar take a turn (qw).

--------------------------------------------------------------------------------
476458cb30 | Nicholas Feinberg | 2016-11-18 15:01:39 -0800

Don't allow power leap to jump in place
When constricted & failing to escape, or when trying to jump onto
an invisible target. That could in principle anger allies without
a prompt in a very unexpected way, which seems quite unfair to the
player.

This unfortunately applies exhaust in those cases, which I'd rather
not, but it's sort of tricky to avoid while still taking up a turn.

--------------------------------------------------------------------------------
4a30dffafd | Nicholas Feinberg | 2016-11-18 14:54:22 -0800

More abort_if_stationary() improvements
Don't double-message (no MSG_STATIONARY + MSG_OK), and apply the
check *before* the ability failure chance, not after. Do the same
for the DUR_EXHAUST checks for a few ru abilities.

--------------------------------------------------------------------------------
dc19589508 | Nicholas Feinberg | 2016-11-18 14:43:23 -0800

ru_power_leap: minor refactoring
return_val was only ever used while 'true', and the comment was
strangely equivocal.

--------------------------------------------------------------------------------
455aab1819 | Nicholas Feinberg | 2016-11-18 14:38:22 -0800

Turn a macro into a static function
down with macros, up with readable code

--------------------------------------------------------------------------------
65ed1cb72b | Nicholas Feinberg | 2016-11-18 07:50:52 -0800

Fix save compat for all saves
Broken by a43205b747151e.

--------------------------------------------------------------------------------
c6c1bd8cce | Neil Moore | 2016-11-18 06:48:15 -0500

Update prebuilt yaccage.
For the changes to CHANCE in 0.20-a0-69-ga43205b.

[skip ci] since Travis doesn't use prebuilt/

--------------------------------------------------------------------------------
11d64188ad | Nicholas Feinberg | 2016-11-17 18:54:19 -0800

Fix Degeneration card messages
It'd print "nothing happened" every time the card triggered,
unless any *non-polymorphable* enemies were affected.

Introduced in 582fb7041.

--------------------------------------------------------------------------------
b95951f8b5 | Nicholas Feinberg | 2016-11-17 18:18:26 -0800

Reduce Xom cleave duration 10x
Severity goes up to 200, and we probably don't want cleaving to
last over 2000 turns...

--------------------------------------------------------------------------------
a43205b747 | gammafunk | 2016-11-17 17:01:17 -0600

Remove priority from map CHANCE specifications
The previous specification allowed setting a priority using the form:

CHANCE: PRIORITY : NUMBER | PERCENT [(DEPTH)] [, ...]

The only time this was used in the current codebase was if priority was
0, in which it was considered a "dummy chance" that allowed the vault to
still be selected when looking for maps by DEPTH. Vaults specifying
CHANCE are usually processed seperately from non-CHANCE vaults so that
the former can have an absolute roll to decide their inclusion. For
dummy vaults, however, they are intended to balance selection of
non-CHANCE vaults, sometimes making the vault selector place
(effectively) no vault at all, and their CHANCE is actually a
specification of how often this is to happen. All non-zero priorities
were ignored in vault selection, so it only existed as a hack for dummy
vaults.

This commit removes priority from the chance specification and simply
looks for the dummy tag instead. All dummy vaults that specified
priority have had this removed, but will behave exactly as they did
before, selection-wise. The des syntax guide is updated appropriately.
The new CHANCE specification is simply:

CHANCE: NUMBER | PERCENT [(DEPTH)]

The version compat code in this commit discards all des cache made from
a previous version, causing the cache to be rebuilt.

--------------------------------------------------------------------------------
9e2464e738 | Alex Jurkiewicz | 2016-11-18 07:43:18 +1100

Simplify demonic guardian spawning/despawning
Don't despawn demonic guardian based on tension, instead make them
behave more like normal summons. This changes the life timer enchantment
from a 'guaranteed minimum' duration to 'summon length' duration --
double it in recompense.

Finally, lower the tension requirements to spawn a guardian at level 1 &
2.

--------------------------------------------------------------------------------
2fb812e797 | Neil Moore | 2016-11-17 15:39:49 -0500

Unbrace and checkwhite.
[skip ci]

--------------------------------------------------------------------------------
692ad8f5a9 | Neil Moore | 2016-11-17 15:34:47 -0500

Remove mon_attack_def::attk().
It was a strange factory function that could have been replaced with a
constructor or, as of C++11, a braced initializer. Do that.

--------------------------------------------------------------------------------
13908c14bf | Nicholas Feinberg | 2016-11-17 11:35:12 -0800

Improve fire vortex description

--------------------------------------------------------------------------------
2948d44a0c | gammafunk | 2016-11-17 03:27:41 -0600

Correct some CHANCE statements in altar vaults
Chance priority isn't actually used for anything in non-dummy vaults and
will be removed in a subsequent commit. Use WEIGHT statements to give
certain vaults the intended lower likelihood in the set while preserving
the same overall chance of one being chosen. Closes #374.

--------------------------------------------------------------------------------
44f1fdae00 | Alex Jurkiewicz | 2016-11-17 03:27:41 -0600

Reduce altar variability for ecumenical minitemple
It's sort of cool to see more than one ecumenical altar in the same
place, but not *that* cool. Cap the number of ecumenical altars at two.

--------------------------------------------------------------------------------
560cfa5399 | Alex Jurkiewicz | 2016-11-17 03:27:41 -0600

Give better names and unflatten vault chances

--------------------------------------------------------------------------------
f9282eabd6 | Alex Jurkiewicz | 2016-11-17 03:27:41 -0600

Add more ecumenical altar vaults
And increase the variety of the existing ones.

--------------------------------------------------------------------------------
a1b20b497a | regret-index | 2016-11-16 19:38:15 -0500

.des re-order: lair.des
Seperated from the review to properly highlight the former commit's edits.
File contents order for the rest of the exhaustive review: branch entries,
regular vaults [vault sets, decorative vaults, remaining vaults], ending
vaults (for Lair here, split into small and large).

--------------------------------------------------------------------------------
621994a203 | regret-index | 2016-11-16 19:35:48 -0500

Exhaustive vault review: lair.des
Headers forced into the house style of line order / more-readable glyphs /
avoiding "nothing" definitions when possible, loose randomization reined in,
comments added and cleaned up, the works. The majority of the early-D trash
outside select Lair entrances, which is no longer representative of Lair's
contents, has mostly been replaced with smaller numbers of Lair's actual
easy spawns (bullfrogs, porcupines, the like).

Written-out highlights mostly pertain to branch end vaults,
with fresh contexts and death data:
 * evil_forest: Nerf, due to its heavy reliance on branch guests, spoilers,
   and a dense end-loaded difficulty point. The 50% chance for both a
   sixfirhy and a sun demon has been removed, and hard caps restrict
   dire elephant / hydra / tier-4 demon use.
 * water_temple: Nerf, pending known author updates, for the same causes as
   evil_forest. Dire elephant and hydras are more limited (even more pernient
   here with the shallow water!), and overall population is lowered.
 * catoblepas_cave: Tweak, with the low opposition variety left after the
   departure of dream sheep. Restrict and lower death yaks numbers,
   but have two randomized manticore placements (running out of distinct
   themed Lair end vault contents, catoblepas hybrid status sharing,
   good synergy with barbs versus herds / petrifying clouds).
 * guppyfry_[]_dragon: Tweak, since other vaults have encroached in on the
   idea of the standard dragons in Lair while using more weird or diverse
   populations, by adding a swamp dragon (layout seems swampy enough,
   essentially unused in Lair) while marginally reducing other dragon spawns.
 * tendril_chambers: Tweak, by throwing out the tier below water moccasin
   and placing more of said water moccasins / wyverns instead.
 * caniform_friends: Buff, due to continuing to lag far behind in death stats.
   Hounds are gone, while more raiju / hell hounds / OODs are placed.
 * lair_in_review: Buff, with reshaping and rescaling to deal with how there's
   less raw material to spare for tiered sets since the vault's inception.
 * enchanted_forest: Buff, due to the nerf boggarts are from young spriggan
   druids. More of said boggarts, and a shift from redbacks to... dream sheep.
   Also, a slight widening of forest corridors.

--------------------------------------------------------------------------------
ced5a848ae | John Olender | 2016-11-15 20:25:15 -0500

libunix.cc: Use flip_colour() for CHATTR_REVERSE.
For consistency with other reversals, such as fakecursorxy(), place the
 flip *after* the curses color attrs have been determined for the
 non-reversed colours.

--------------------------------------------------------------------------------
209134b42e | John Olender | 2016-11-15 20:25:15 -0500

libunix.cc: Factor out color flipping code from flip_colour(cchar_t).
Provide an overloaded flip_colour() function which works directly
 with curses color pairs and character attributes.  Adjust the cchar_t
 version to use this new function.

--------------------------------------------------------------------------------
9c562f33cc | John Olender | 2016-11-15 20:21:03 -0500

Add options for controlling 8-color best-effort brightening.
Add two options, best_effort_brighten_background and
 best_effort_brighten_foreground, which control whether or not
 best-effort brightening is performed when blink_brightens_background
 and bold_brightens_foreground are disabled, respectively.

These new options are set to true by default.

--------------------------------------------------------------------------------
66a9409960 | Chris Campbell | 2016-11-15 21:06:07 +0000

Refactor chaos brand/attack flavour handling
Removes some code duplication between SPWPN_CHAOS and AF_CHAOTIC.

--------------------------------------------------------------------------------
3545740719 | Chris Campbell | 2016-11-15 21:00:38 +0000

Adjust various chaos effects
* Remove the (non-functional) PPT_MORE polymorph, and instead just have a
  single plain polymorph effect.
* Let the petrification effect work on players, and reduce its chance of
  triggering.
* Remove vorpal from the SPWPN_CHAOS brand list.
* Adjust checks for brand susceptibility to have more consistent holiness
  checks and to always reroll against unaffected targets.
* Add some previously SPWPN_CHAOS-only checks to AF_CHAOS attacks, in case of
  monster vs monster combat.

--------------------------------------------------------------------------------
ba216ac1d4 | Benoit Giannangeli | 2016-11-15 18:24:05 +0000

Removed healing possible chaos effect
[Committer's note: It's a fairly uninteresting effect, and as with healing on
wands of random effects has weird undesirable interactions with using chaos to
heal rot. Closes #395 PR.]

--------------------------------------------------------------------------------
cf10e2f629 | Chris Campbell | 2016-11-15 17:50:39 +0000

Remove some references to troll hides
Since they're upgraded to troll leather on save transfer.

--------------------------------------------------------------------------------
aa82c5c2f4 | Chris Campbell | 2016-11-15 17:50:39 +0000

Fix messaging for dragon scale troves (#10783)

--------------------------------------------------------------------------------
4202570aa7 | Nicholas Feinberg | 2016-11-15 09:47:35 -0800

Chop various artefact names
By popular demand.

--------------------------------------------------------------------------------
9b36e26388 | hellmonk | 2016-11-15 09:38:54 -0800

Add more randart names
[Committer's note: removed more fun.]

--------------------------------------------------------------------------------
52ebc147ed | hellmonk | 2016-11-15 09:36:59 -0800

Add some randart names
[Committer's note: trimmed about half of the sillier ones. No fun
allowed, IMO]

--------------------------------------------------------------------------------
255f07dee6 | John Olender | 2016-11-14 22:06:11 -0500

options_guide.txt: Fix the bold_brightens_foreground option name.
Also, apply a checkwhite spacing fix.

--------------------------------------------------------------------------------
027d3fc662 | Nicholas Feinberg | 2016-11-14 15:55:46 -0800

Don't bias cloud generators orthogonally
No reason for them to avoid diagonal moves.

--------------------------------------------------------------------------------
dbf1079108 | Nicholas Feinberg | 2016-11-14 15:55:43 -0800

Pull random_walk() into its own function
And replace a very obsolete enum comparison with a call to
is_solid().

--------------------------------------------------------------------------------
31edf53867 | Nicholas Feinberg | 2016-11-14 15:55:38 -0800

Remove an ancient & terrible dlua hack

--------------------------------------------------------------------------------
b1283780dc | Neil Moore | 2016-11-14 18:18:50 -0500

Allow Dith shadow to attack diagonally and to reach.
It only copied orthogonal attacks, unless you had reaching, in which case
it copied diagonal attacks too, but not reaching attacks.

--------------------------------------------------------------------------------
e094bde24f | Neil Moore | 2016-11-14 18:09:31 -0500

Fix DEBUG_PATHFIND compilation.
[skip ci] because none of Travis's builds use this option.

--------------------------------------------------------------------------------
4a4b873f0f | ontoclasm | 2016-11-12 14:54:13 -0600

Fix Nem's invo skill tile

--------------------------------------------------------------------------------
b3e417c81b | Nicholas Feinberg | 2016-11-11 20:53:58 -0800

Fix an @e1 crash (Murtidash, |amethyst)
can_eat() asserted that the object it was given was at least
vaguely edible (food or, for vampires, a corpse), but some of its
callers didn't actually check for that.

Simplified, per |amethyst's suggestions.

--------------------------------------------------------------------------------
0100fe6bba | Nicholas Feinberg | 2016-11-11 16:35:31 -0800

Fix spacing (heftig)

--------------------------------------------------------------------------------
f6f757aba0 | Nicholas Feinberg | 2016-11-11 16:21:54 -0800

Fix compilation (Zibokwe)

--------------------------------------------------------------------------------
cefe5f09c6 | Nicholas Feinberg | 2016-11-11 15:22:34 -0800

Tweak SPARM_ARCHERY description (10759)
Could do with further work; possibly, as gammafunk suggested, could
mention 'launchers and thrown weapons'? Though we'd have to explain
what a launcher is...

--------------------------------------------------------------------------------
2417096c0a | Nicholas Feinberg | 2016-11-11 14:58:40 -0800

Let J neutralize shapeshifters (9954)
Removes weird cases in which you see a slime, it's hostile, but
you're not allowed to attack it. If they stay neutral afterward,
that's not a big deal.

The condition dates back to the very first J commit, and seems to
be a copy-paste from Beogh logic. (Where it's not problematic.)

--------------------------------------------------------------------------------
b6e7b4fdf3 | Nicholas Feinberg | 2016-11-10 20:54:04 -0800

Fedhas Fungal Bloom ability tile

--------------------------------------------------------------------------------
8de2fe206d | Nicholas Feinberg | 2016-11-10 11:27:19 -0800

Don't make notes for tentacles (ElanMorin)

--------------------------------------------------------------------------------
7d30548c1f | Chris Campbell | 2016-11-09 23:32:05 +0000

Fix compilation
Testing things before committing is a good idea.

--------------------------------------------------------------------------------
96dadd94d8 | Chris Campbell | 2016-11-09 23:22:31 +0000

Fix inverted logic

--------------------------------------------------------------------------------
a52155ba92 | Chris Campbell | 2016-11-09 23:19:22 +0000

Don't count tentacles towards horror levels
Now that they're not always displayed as harmless.

--------------------------------------------------------------------------------
a906eb66dd | Chris Campbell | 2016-11-09 22:05:06 +0000

Display tentacles with the same threat level as their parents (#10747)

--------------------------------------------------------------------------------
82dbd4dc16 | Chris Campbell | 2016-11-09 21:45:31 +0000

Don't mention prayer in Fedhas conduct description (#10773)
Just leave the line that "Fedhas likes when corpses rot away" (whether
naturally or via the ability).

--------------------------------------------------------------------------------
996f6e0ec3 | Isaac Sloat | 2016-11-08 14:34:08 -0600

Rename sirens to merfolk sirens

--------------------------------------------------------------------------------
b8e7c72193 | Nicholas Feinberg | 2016-11-07 20:52:00 -0800

Fix Awaken Forest/stairs interaction (minmay)
Changing levels while a spriggan druid with Awaken Forest active
*would* continue the Awaken Forest effect, but would *not* display
it (different tree names/console colours, etc). Should be fixed.

--------------------------------------------------------------------------------
f4154e2798 | Chris Campbell | 2016-11-08 00:17:31 +0000

Don't make demon tridents one-handed for small races (WalkerBoh)
Accidentally changed in e972ad551e97 - the intention had been to leave them
as-is for Halflings/Kobolds and just change Spriggan handednesses.

--------------------------------------------------------------------------------
2d0337aee5 | Chris Campbell | 2016-11-07 23:59:25 +0000

Remove frilled lizards from a Swamp entry vault

--------------------------------------------------------------------------------
41cc41e000 | David Ploog | 2016-11-07 04:14:50 +0100

Add two flavour vaults to Pan.
Trying to establish a link between Pan (as the home of the pan lords)
and the presence of pan lords during the orb run: these vaults feature
orb guardians reared/kept in Pan, probably to be sent to Zot. One of
the vaults has a portal to Zot.

--------------------------------------------------------------------------------
cc13513f7d | Nicholas Feinberg | 2016-11-06 18:39:23 -0800

Remove an obscure poly special case
Uniques would keep their spells when polymorphed into a different
form of human inteligence, unless the poly target had innate spells
(e.g. naga spit). This would sometimes be displayed in their
description, and sometimes not.

No.

--------------------------------------------------------------------------------
03dcb65de5 | David Ploog | 2016-11-07 02:44:22 +0100

Fix minmay_sewer_w.
There was a small chance to have no floor/shallow water path to the
final area. I want my scroll of blinking back!

--------------------------------------------------------------------------------
154eb2c0c9 | Chris Campbell | 2016-11-06 20:00:10 +0000

Remove the unused OPER_ID

--------------------------------------------------------------------------------
e6c2eab8a3 | Chris Campbell | 2016-11-06 20:00:10 +0000

Adjust some ability descriptions

--------------------------------------------------------------------------------
884808d5b0 | Nicholas Feinberg | 2016-11-06 11:20:55 -0800

Don't scream at non-monsters (minmay)
IOODs etc & tentacles.

--------------------------------------------------------------------------------
8907a59c66 | Nicholas Feinberg | 2016-11-06 08:56:12 -0800

Fix volcano_lake
Broken in 25837f4635819232bf978c05a3311698d1a99773. (Gained a 1/6
chance to generate no path to the center.)

--------------------------------------------------------------------------------
9fff63e36b | Neil Moore | 2016-11-06 09:28:21 -0500

Cut lass.
Added in 0.19-a0-129-g2caaceb, maybe as a merge error.  Without a tile or
a reasonable price, it probably shouldn't exist.

--------------------------------------------------------------------------------
7876e6c996 | Eino Keskitalo | 2016-11-06 15:40:49 +0200

Since Nemelex has become the only source of cards, adjust the god's powers 
description accordingly.

--------------------------------------------------------------------------------
c069335b0e | Eino Kewlskitalo | 2016-11-06 15:10:04 +0200

Fix 'slightlycontaminated'

--------------------------------------------------------------------------------
d4fea004f6 | Nicholas Feinberg | 2016-11-05 10:41:14 -0700

Fix vault wand generation (10766)
Broken by 3a282c79a5fa.

--------------------------------------------------------------------------------
3a282c79a5 | Neil Moore | 2016-11-05 01:42:53 -0400

Always show max charges for wands of known type.
In item names, e.g. "wand of confusion (?/48) {zapped:2}".

It's a little ugly for "wand of confusion (?/48) {empty}" to differ from
"wand of confusion (0/48)", but really the ugliness was already there,
just less salient.

--------------------------------------------------------------------------------
69bea3c968 | Nicholas Feinberg | 2016-11-04 12:55:38 -0700

0.19 tournament reminder

--------------------------------------------------------------------------------
0876c8e2e6 | Neil Moore | 2016-11-02 19:04:02 -0400

Fix source code alignment.
[skip ci]

--------------------------------------------------------------------------------
26ddc15788 | Nicholas Feinberg | 2016-11-02 08:47:56 -0700

* (Medar)

--------------------------------------------------------------------------------
c0f5d7e128 | Nicholas Feinberg | 2016-11-02 08:32:23 -0700

Remove an incorrect changelog entry
Tomb's ambient noise was made *less* significant, not more; the
Desolation's ambient noise didn't exist before, and the other two
had relatively minor tweaks to ambient noise. (Slime was also
tweaked!) Simplest to remove it from the changelog entirely.

--------------------------------------------------------------------------------
f589edfedb | Pekka Lampila | 2016-11-02 10:34:12 +0200

Remove res_statdrain mention from docs. (Mattias)
[skip ci]
--------------------------------------------------------------------------------
90c15da75b | Neil Moore | 2016-11-02 02:13:40 -0400

Don't animate walls in webtiles as though they were water (#8740)
This was fixed a couple of years ago (0.15-a0-1730-g078e12a) for local
tiles, but the bug also affected webtiles.  It wasn't noticed because
water animations are off by default there.

--------------------------------------------------------------------------------
a97c7b5d5d | Neil Moore | 2016-11-01 14:58:47 -0400

Use correct zap info for meph targetter (10754).
We were targetting with ZAP_BREATHE_MEPHITIC, which passes through targets,
unlike the spell.

--------------------------------------------------------------------------------
6776aff0ef | Neil Moore | 2016-11-01 14:58:47 -0400

Fix a compiler warning.
"spell_hd" shadows a member function of monster_info.

--------------------------------------------------------------------------------
62d82d9a6e | Nicholas Feinberg | 2016-10-31 15:43:56 -0700

Restrict blessings to currently-friendly followers
Weird to heal an ally that's currenlty hostile, edge case though
that is.

--------------------------------------------------------------------------------
0e8e6b5e25 | Nicholas Feinberg | 2016-10-31 13:21:37 -0700

Fix discord/hep ancestor interaction (10753)
Not pushing this into stable because I'm frankly worried it'll
somehow cause more bugs than it fixes.

--------------------------------------------------------------------------------
11bd45b90a | Nicholas Feinberg | 2016-10-31 13:04:35 -0700

Fix slime creature MHP display (Tux)

--------------------------------------------------------------------------------
5cb335a700 | Nicholas Feinberg | 2016-10-31 12:53:46 -0700

Don't let trog burn books through glass (Yermak)
Didn't really work. Would be nice if the messaging was better for
this - right now it says that you can't *see* any books, which
doesn't seem quite right...

--------------------------------------------------------------------------------
34c0f31769 | Nicholas Feinberg | 2016-10-31 12:46:22 -0700

Don't waste time failing to eat chunks (Yermak)
When you're too full to eat them, don't even start.

--------------------------------------------------------------------------------
d166d5d698 | Nicholas Feinberg | 2016-10-30 14:14:15 -0700

Fix unique hide inscriptions
Got lost a few commits back.

--------------------------------------------------------------------------------
334f831b21 | Nicholas Feinberg | 2016-10-29 15:00:51 -0700

Minor changelog tweaks (proofreading etc)

--------------------------------------------------------------------------------
2b0e13aebc | Nicholas Feinberg | 2016-10-27 14:25:24 -0700

Simplify vampire transformation logic
Since you can't be insta-killed by transformations ending anymore.

--------------------------------------------------------------------------------
56c49a25a2 | Shmuale Mark | 2016-10-27 15:45:24 -0400

Fix some false positives in the doublezap indicator (darox).

--------------------------------------------------------------------------------
8ddec9435a | Isaac Sloat | 2016-10-26 19:21:20 -0500

Finalize 0.19 changelog

--------------------------------------------------------------------------------
70ed36aeb2 | Shmuale Mark | 2016-10-25 23:13:28 -0400

For trunk, make webtiles mouse control on by default.
Don't cherry-pick this.

--------------------------------------------------------------------------------
330ea1e693 | Shmuale Mark | 2016-10-25 23:12:47 -0400

Make webtiles mouse control an option (off by default).

--------------------------------------------------------------------------------
874f6784bf | Nicholas Feinberg | 2016-10-25 17:31:07 -0700

Fix Fire Storm aborting
Bug introduced by 59ea75df (sort of): the warnings for "this beam
would hit you/a pal, are you sure?" triggered *after* spell
failure was checked.

--------------------------------------------------------------------------------
5180b6bb6f | Nicholas Feinberg | 2016-10-25 16:27:23 -0700

Tweak Channel Magic description
"a magical power regeneration ability" seemed very awkward. Not
totally satisfied with this version either, but I think it scans
a little better.

--------------------------------------------------------------------------------
052ff517c4 | Nicholas Feinberg | 2016-10-25 08:01:29 -0700

Fix freezing vapours description (Darox)
The curse of the copy-paste...

--------------------------------------------------------------------------------
59670f6dc4 | Nicholas Feinberg | 2016-10-24 15:13:11 -0700

Display Hep's transfer radius at 5*
Hopefully not more confusing than helpful...

--------------------------------------------------------------------------------
f4bb0bdfa4 | Nicholas Feinberg | 2016-10-24 12:34:43 -0700

Reduce Hepliaklqanal piety gain
Make it take longer for the god to bloom, especially with weaker
builds (since piety decay really eats into slow piety gains).
Slightly decrease piety costs so that they'll be usable.

--------------------------------------------------------------------------------
ebf956298d | Nicholas Feinberg | 2016-10-24 12:04:51 -0700

Remove some changelog highlights (MarvinPA)
RIP...

--------------------------------------------------------------------------------
c9712f40bc | Nicholas Feinberg | 2016-10-24 12:01:54 -0700

Cut ancestor cast freq from 40 -> 25
Nerfs.

--------------------------------------------------------------------------------
3941b7aae1 | Nicholas Feinberg | 2016-10-24 11:59:22 -0700

Remove status effect cures from Idealise
A marginal effect (that most people didn't realize existed!);
unecessary complexity. Now that ancestors are unliving and that
there's little penalty for their deaths, the effect is pretty
irrelevant.

--------------------------------------------------------------------------------
24d37aaa1f | Nicholas Feinberg | 2016-10-24 11:55:51 -0700

Add Nemelex to the changelog (regret-index)

--------------------------------------------------------------------------------
d7ada34d2a | Nicholas Feinberg | 2016-10-24 11:38:10 -0700

Fix display for monsters with variant spell HD
E.g. ancestors (mostly only relevant in debug mode) and monsters
in Aura of Brilliance.

--------------------------------------------------------------------------------
ae7261f0df | Nicholas Feinberg | 2016-10-24 11:29:30 -0700

Add more info on mon spells in debug mode
Sort of partially reverts aed18fcb5788f1636f232d2658a23e68c.

--------------------------------------------------------------------------------
21f43f31e0 | Nicholas Feinberg | 2016-10-24 11:18:15 -0700

Penultimate 0.19 changelog tweaks
regret-index reminded me to finally go through and decide on some
highlights for the release.

--------------------------------------------------------------------------------
9be4e74cfd | Nicholas Feinberg | 2016-10-24 11:06:12 -0700

Fencer's Gloves: Dex+6 -> +3
*Riposte is a strong and distinctive effect on its own. +Dex is
thematic, but we no longer need to give a huge amount of it to
make the Gloves interesting. Better to save the design/conceptual
space for other items.

--------------------------------------------------------------------------------
1e9a4c1973 | Nicholas Feinberg | 2016-10-23 11:43:59 -0700

Count poly'd orcs as true companions (10592)
Prevents certain bugs involving orcs not being removed from the
companion list after being polymorphed, and seems like a better
behaviour generally; much more convenience in being able to recall
your pals, etc.

TODO: save compat fixes for the two people who hit this bug already.

--------------------------------------------------------------------------------
6e2d87aff9 | Eino Keskitalo | 2016-10-23 11:24:40 +0300

Duvessa speaks Australian English
"Practice" is the noun, "practise" is the verb



[skip ci]
--------------------------------------------------------------------------------
83281cb3d9 | Chris Campbell | 2016-10-22 22:11:41 +0100

Partially update some manual appendices
The appendix of commands is overall still hugely out-of-date and incomplete,
and the information already exists in-game in the various ? menus with a higher
chance of being accurate. Probably the manual should just explain the different
modes and that '?' will give a list of commands, rather than duplicate
everything.

--------------------------------------------------------------------------------
10983cdfa9 | Nicholas Feinberg | 2016-10-22 10:15:31 -0700

Fix the gcc build (possibly)

--------------------------------------------------------------------------------
76efe36ba1 | Chris Campbell | 2016-10-22 17:53:45 +0100

Fix vaults being able to create ego dragon scales (#10079)

--------------------------------------------------------------------------------
8249929602 | Chris Campbell | 2016-10-22 16:44:51 +0100

Adjust lamp of fire/fan of gales descriptions (#10579)

--------------------------------------------------------------------------------
2e573fefee | Chris Campbell | 2016-10-22 16:29:58 +0100

Adjust some feature descriptions

--------------------------------------------------------------------------------
55031dbc4f | Chris Campbell | 2016-10-22 15:25:23 +0100

Remove some obsoleted speech lines
And adjust a couple of others.

--------------------------------------------------------------------------------
dd0aef201f | Nicholas Feinberg | 2016-10-21 22:50:09 -0700

Fix a mouse_control syntax error

--------------------------------------------------------------------------------
072330386d | Nicholas Feinberg | 2016-10-21 22:35:31 -0700

Fix an Awaken Earth crash (10410)
<|amethyst> hm, if x is 79
<|amethyst> say the coord is (79, 69)...
            we encode that as 69*70 + 79 = 4909
<|amethyst> then 4909 % 70 == 9 and 4909 / 70 == 70
<|amethyst> so it gets changed to (9, 70) which is out of bounds

Also fix another potential prism bug while I was looking at it.

--------------------------------------------------------------------------------
c6909e3cf4 | Nicholas Feinberg | 2016-10-21 22:12:31 -0700

Warn for dangerous lichform unwields (10490)
Welcome, to the Corner Case.

--------------------------------------------------------------------------------
d23083cf2c | Nicholas Feinberg | 2016-10-21 21:44:28 -0700

Revert mut food prompt
This reverts commit f46b2cedc9ad8b2486b3233dff19ae086fedb1cf.

Redundant with d09ab47ac29d7. Oops!

--------------------------------------------------------------------------------
3ec191de7d | Nicholas Feinberg | 2016-10-21 21:43:43 -0700

Merge pull request #355 from suncrab/bad-food-prompt
Prompt for confirmation before eating mutagenic/forbidden/noxious food (10657)
--------------------------------------------------------------------------------
43c011f106 | Nicholas Feinberg | 2016-10-21 13:42:24 -0700

Fix a chaos effect copy-paste (regret-index)
Introduced in fd0a92bab93.

--------------------------------------------------------------------------------
cff654f3ff | Nicholas Feinberg | 2016-10-20 15:03:25 -0700

Make chunks take 1 turn to eat (minmay)
With interruptible eating and auto_eat_chunks on by default,
having chunk-eating be an interruptible action was a huge
nightmare - constant annoying 'continue eating?' prompts. Making
eating uninterruptible again would make auto_eat_chunks too
dangerous for people Playing To Win to use, and turning off
auto_eat_chunks gives the player more food makework.

The balance impact of this game should hopefully be fairly small,
and shouldn't ruin the excitement of the tactical food game.

--------------------------------------------------------------------------------
480c79dfcc | Nicholas Feinberg | 2016-10-20 10:02:17 -0700

Remove a drowning reference

--------------------------------------------------------------------------------
e8b2aad817 | Nicholas Feinberg | 2016-10-20 09:56:22 -0700

Warn for poison ammo under TSO (10549)
wow, what great code i just wrote

--------------------------------------------------------------------------------
6d7e2b439e | Nicholas Feinberg | 2016-10-20 09:33:15 -0700

Continue vampire zerk while thirsty (10741)
When berserk activation drops a vampire player into 'thirsty',
continue the berserk instead of instantly ending it. The alternative
was banning berserk while the player is satiated, but that seems
sort of bad.

--------------------------------------------------------------------------------
ead39cfa8a | Nicholas Feinberg | 2016-10-19 23:30:22 -0700

Update manual section ?6, inscriptions (9944)
Remove a very redundant and difficult to maintain section.

--------------------------------------------------------------------------------
842408458e | Nicholas Feinberg | 2016-10-19 23:03:06 -0700

Remove double battlespheres (9732, 9796, 10356)
When battlespheres (and other temporary monsters) take shafts,
vaporize them instead of placing them on the next level.

--------------------------------------------------------------------------------
9b753432c8 | Nicholas Feinberg | 2016-10-19 22:52:48 -0700

Handle auras in cleanup (9948, 10618, 10636)
Direct calls to monster_cleanup(), from e.g. shaft traps, transit,
etc., didn't deal with monster auras (halo, silence, umbra).

--------------------------------------------------------------------------------
25144d56b3 | Nicholas Feinberg | 2016-10-19 22:44:41 -0700

Don't consume rings when identifying them (10663)
With the item_slot rcfile option, you could end up automatically
swapping a newly-identified item with the ID stack that identified
it. The bug was that this would result in the ID'd item (in the ID
scrolls' old inventory slot) being consumed *instead* of an ID
scroll.

--------------------------------------------------------------------------------
2d93087817 | Neil Moore | 2016-10-18 21:24:33 -0400

Checkwhite (doh)
[skip ci]

--------------------------------------------------------------------------------
dc02945150 | Neil Moore | 2016-10-18 21:21:51 -0400

Simplify and refactor MfAv positioning code.
Mostly cleaning up flow control, but also using grid_distance instead
of (x-y).rdist().

--------------------------------------------------------------------------------
c712c6c6ca | Neil Moore | 2016-10-18 20:50:27 -0400

Fix a minor logical error in MfAv positioning.
We could theoretically be comparing distance to a default-initialized
(so (0,0)) best_target.  Practical effects are nil.

--------------------------------------------------------------------------------
611e7989db | Nicholas Feinberg | 2016-10-18 10:42:37 -0700

Minor refactor to hide code

--------------------------------------------------------------------------------
783e625e56 | Nicholas Feinberg | 2016-10-17 17:58:13 -0700

Re-remove the Sword of the Doom Knight (r-i)
From a vault.

--------------------------------------------------------------------------------
0b9551ff5b | Nicholas Feinberg | 2016-10-17 17:43:21 -0700

Remove the Book of Envenomations from vaults

--------------------------------------------------------------------------------
ffa48aa674 | Nicholas Feinberg | 2016-10-17 16:09:24 -0700

s/tags/labels (chequers)

--------------------------------------------------------------------------------
321e2ff0ea | Nicholas Feinberg | 2016-10-17 15:51:14 -0700

First pass on github bug template

--------------------------------------------------------------------------------
e1d1fe8a93 | Isaac Sloat | 2016-10-17 10:39:17 -0700

Fix religion screen flicker while atheist
In webtiles.

--------------------------------------------------------------------------------
261845d8ec | Nicholas Feinberg | 2016-10-17 08:32:57 -0700

Changelog through 0.19-a0-1889-g9c603be

--------------------------------------------------------------------------------
9c603be144 | Corin Buchanan-Howland | 2016-10-16 19:04:05 -0400

Remove amulets of dismissal
These suffered from two serious issues: first, players didn't enjoy playing
with them, for much the same reasons as distortion weapons. Second, they
were significantly too life-saving, potentially getting players out of life-
threatening situations without requiring the player to take any actions.

--------------------------------------------------------------------------------
6ba237489e | Nicholas Feinberg | 2016-10-16 07:33:59 -0700

Fix gozagites getting hides (chequers)
I re-broke this in the last commit that was supposed to fix it...

--------------------------------------------------------------------------------
bc010ea0b4 | Nicholas Feinberg | 2016-10-16 07:32:40 -0700

Give the Amulet of Invis a tile (10737)
Overlooked when it was added.

--------------------------------------------------------------------------------
55aeeb90c6 | John Olender | 2016-10-16 00:58:03 -0400

libunix.cc: Use wide character curses highlight macros.
This file uses XSI wide-character curses functions when getting/setting
 attributes.  These functions are designed to work with specific
 wide-character highlight macros (e.g., WA_BOLD instead of A_BOLD).

Update the file to use these specific macros; do not rely on the curses
 implementation defining WA_ macros exactly as their A_ counterparts.

--------------------------------------------------------------------------------
3d9e987d4a | John Olender | 2016-10-16 00:58:03 -0400

libunix.cc: Set the screen's attributes in write_char_at().
Add a declaration for this function and some documentation.  This
 rendering issue was particularly frustrating to narrow down, so a
 hefty internal doxygen block is included with the function definition.

Remove a redundant cursor move in fakecursorxy().

--------------------------------------------------------------------------------
afa4d10fc4 | John Olender | 2016-10-16 00:58:03 -0400

direction_chooser: Don't reverse the target coord when drawing beams.
The target coordinate's colors will likely be reversed or otherwise
 changed by the terminal's cursor.  For curses terminals, a reversal
 attempt is guaranteed when the use_fake_cursor option is enabled.

Avoid a double color reversal by omitting the reverse color flag for
 the target coordinate.

--------------------------------------------------------------------------------
172b3b1626 | John Olender | 2016-10-16 00:51:57 -0400

libunix.cc: Manually reverse colors for CHATTR_REVERSE.
Directly translating CHATTR_REVERSE to A_REVERSE is a problem when
 using an eight color palette.  The terminal reverses the colors, but
 not the character attributes used for brightening.

So, manually reverse the foreground and background colors when
 CHATTR_REVERSE is used, ensuring the appropriate brightening attrs are
 set for each color.  Reserve A_REVERSE for failover rendering.

--------------------------------------------------------------------------------
d64a0f0218 | Neil Moore | 2016-10-14 15:46:01 -0400

Don't crash when monsters Bind Souls in Arena (#10719)
We were setting the foe of the new undead to MHITYOU unconditionally,
but MHITYOU is forbidden in Arena mode (see the assertion in
handle_behaviour).

--------------------------------------------------------------------------------
564c9e00a6 | Neil Moore | 2016-10-14 14:57:50 -0400

Allow targetting mottled drac breath past range 1 (Brannock)
Its range was increased, but the targetter didn't know that, so the UI
implied range 1, and targetting further away required the !  key.

We fix that problem, but leave another: the targetter doesn't actually
check the path to the target, so it pretends to be a smite-targetted
spell.  The targetter_splash class should be replaced by something based
on targetter_beam instead, along the lines of the IMB targetter.

--------------------------------------------------------------------------------
ab8686d7cb | Nicholas Feinberg | 2016-10-14 11:45:17 -0700

Possibly fix statue_of_worship (10735)

--------------------------------------------------------------------------------
c9e4fd88b5 | gammafunk | 2016-10-14 00:46:55 -0500

Change the glyph color of hornets to yellow
Due to their rework, these monsters can be found more frequently with
other y that can be berserked. Moving hornets to yellow prevents
confusion between these and other angry bugs.

--------------------------------------------------------------------------------
bb73ea0dc7 | m-aigner | 2016-10-13 17:14:37 -0700

Fix inner flame ally targetting (10639)
[Committer's note: refactored heavily, removed obsolete Virulence
logic (wrong since a7827471a7ca).]

Closes #381.

--------------------------------------------------------------------------------
9366f7ce2f | Nicholas Feinberg | 2016-10-13 17:01:41 -0700

Improve mon-gear plus naming/documentation

--------------------------------------------------------------------------------
eaac499c66 | Nicholas Feinberg | 2016-10-13 17:01:41 -0700

Fix mon-gear forced brand/plus behaviour (DrKe)
Previously, forcing a brand on a monster's weapon (e.g.
SPWPN_FLAMING) would force it to always be +0 unless the plusses
were explicitly specified, and vice-versa for brands. This makes
the brand and plus have (roughly) the default behaviour unless
explicitly specified.

Closes #382.

--------------------------------------------------------------------------------
d95bc2631c | Neil Moore | 2016-10-13 17:34:03 -0400

Better abbreviate "of" spells in util/monster
was:  Greater Servant of Makhleb -> g.makhleb
now:  Greater Servant of Makhleb -> g.s.makhleb

--------------------------------------------------------------------------------
cbc8a9816f | Nicholas Feinberg | 2016-10-12 21:02:46 -0700

Remove a redundant line (wheals)
Supposedly, mitm items will no longer contain shop items. Hopefully...
--------------------------------------------------------------------------------
5dbd49c8dc | Neil Moore | 2016-10-12 23:40:07 -0400

Remove variadic insert_commands()
Since in C++11 we can just pass an initializer list to the vector version
of the function.

--------------------------------------------------------------------------------
252a6bceea | Neil Moore | 2016-10-12 23:40:07 -0400

Fix prayer message colours with re-bound CMD_GO_UPSTAIRS.
We were adding an extra <, but that was only appropriate if the command
was actually bound to the < key, and would cause broken highlighting in
other cases.

Thanks to PleasingFungus for suggesting to use insert_commands() here.

--------------------------------------------------------------------------------
4fea3dad99 | Nicholas Feinberg | 2016-10-12 20:13:43 -0700

Fix derived undead avg MHP display (chequers)

--------------------------------------------------------------------------------
096aae6c94 | gammafunk | 2016-10-12 21:00:36 -0500

Refactor a river vault
For chequers_big_river, reduce and make consistent the floor padding and
the vault connectors. Remove the padding behind the rock placements,
since these seemed to create a lot of dead ends in generated levels. Add
some fuzzed water/floor/rare plants along the existing deep
water/water/plant fuzzing; previously the vault did this in a more
manual fashion. Finally, make the vault only place in D and Depths,
since those have more use of water and layouts that help the vault seem
more natural.

--------------------------------------------------------------------------------
f3c996ceb0 | gammafunk | 2016-10-12 20:01:14 -0500

Consolidate overflow temples and code cleanup
Make a single chequers_temple_overflow_statue_of_worship place 2-4
altars, with code to handle the variable number.

--------------------------------------------------------------------------------
71bd320eed | Alex Jurkiewicz | 2016-10-12 20:00:39 -0500

Some vaults.
* chequers_temple_overflow_statue_of_worship: two very simple overflow
  vaults.
* chequers_temple_overflow_minitemple: variable size minitemple that
  places some ecumenical altars.
* chequers_big_river: big, level-defining feature that splits the map in
  twain (well, hopefully).

Commiter's Note: Closes #193. The other commit in this PR wasn't merged,
since the issue was addressed in f468e8a.

--------------------------------------------------------------------------------
f468e8a286 | gammafunk | 2016-10-12 17:43:29 -0500

Rework of a wizard prison vault
The evilmike_wizard_prison vault is well known for its unique theme of
wizards imprison behind grates and under a silence field, however some
aspects of this vault were annoying. Players wanted to individually dig
out and kill any of the dangerous monsters before going to the vicinity
of the silent spectre, so they'd not have to fight them all at once.
Furthermore the vault had two areas with loot hidden behind diggable
walls that could easily be missed.

This commit reworks the vault to have undiggable prisons for the wizard
monsters, where the walls are removed when the player enters LOS of the
spectre, which is itself behind a runed door. Hence when players open
the runed door and see the spectre, all monsters are released.
Additionally the vault always has a known teleport trap in front of the
spectre. For most players, the spectre will wake up immediate and enter
the teleport trap, thus removing the silence field. Especially stealthy
or lucky characters might have a few turns before the specter wakes up,
allowing them to trigger the teleport trap themselves, thus keeping the
spectre in the vault.

All loot has been moved into normally accessible areas behind the runed
door, and the vault itself has been refactored to be my symmetrical and
to have less excess size given the current radius of the silent spectre.
The guaranteed ancient lich is moved to a prison behind the rune door,
near the loot, and has another nasty imprisoned friend to keep him
company. I've added randomization to the soul eater & curse skull
placement, and put distributions on the numbers of monsters.

--------------------------------------------------------------------------------
c32fe5a23a | Chris Campbell | 2016-10-12 22:06:27 +0100

Fix colouring of prayer messaging

--------------------------------------------------------------------------------
5fb031fc3a | Nicholas Feinberg | 2016-10-12 07:46:13 -0700

Fix tutorial 5 (removal of prayer)

--------------------------------------------------------------------------------
8505d8b135 | Neil Moore | 2016-10-12 08:51:47 -0400

Don't include altars in X<> cycling (dpeg)

--------------------------------------------------------------------------------
50c3308bfa | Neil Moore | 2016-10-12 08:50:52 -0400

Staticalise a function, unbrace, and checkwhite.

--------------------------------------------------------------------------------
e6f2195999 | Nicholas Feinberg | 2016-10-11 21:41:25 -0700

Add a (p)rayer reminder at altars
Hitting p (or any other unbound key) at an altar will remind you
what key you should press. This should help players transition into
the new regime.

Note that this gets incorrectly parsed as a colour ("< or >"),
and thus highlighted red; I couldn't figure out how to fix this.
Sorry!

--------------------------------------------------------------------------------
cc38ccbfaf | Nicholas Feinberg | 2016-10-11 18:49:00 -0700

Remove the (p)rayer command
Just use > or < to pray at altars instead, as with shops. One
command down, 6,000 to go...

--------------------------------------------------------------------------------
207f91affd | Nicholas Feinberg | 2016-10-11 18:44:19 -0700

Move Fedhas's prayer effect into an ability
It's quite silly to have the 'pray' key do things for exactly one
god (hard to learn!), and with auto-piety for corpse decay, it
shouldn't be necessary to use the ability nearly as often.

It'd be nice if the ability didn't let you waste time doing
nothing, or at least prompted for it... and probably the ghoul/
necrophage interaction shouldn't exist. (I could go either way
on the zombie thing. It's cute!)

--------------------------------------------------------------------------------
4fde920588 | Nicholas Feinberg | 2016-10-11 18:44:19 -0700

Rot all corpses for Fedhasites when leaving levels
Giving piety for doing so. A small nerf to tactical flexibility, a
nice buff to... well, not quite optimal play, but lazier play, at
least.

--------------------------------------------------------------------------------
f0d375d61b | Nicholas Feinberg | 2016-10-11 18:44:19 -0700

Make Fedhas appreciate all corpse decay (minmay)
No need to hit 'p' unless you urgently need toadstools or piety
right now, or unless you're about to leave the level.

--------------------------------------------------------------------------------
35def1e712 | regret-index | 2016-10-11 13:37:38 -0400

Fix a sewer map's connectivity (Lasty)

--------------------------------------------------------------------------------
4fc2e42564 | Chris Campbell | 2016-10-11 18:12:11 +0100

Let Beogh enchant, upgrade and uncurse ranged weapons
Gives a similar chance to try and upgrade/enchant ranged weapons as with melee
weapons, gifting ammunition if that fails.

--------------------------------------------------------------------------------
b217fe3b9e | Chris Campbell | 2016-10-11 18:12:11 +0100

Let friendly dryads cast awaken forest under Fedhas (#10660)

--------------------------------------------------------------------------------
687ba86a1b | Chris Campbell | 2016-10-11 18:12:11 +0100

Document area effects when examining the floor (#10565)

--------------------------------------------------------------------------------
2ede8b98e7 | Corin Buchanan-Howland | 2016-10-11 11:38:15 -0400

Revert updates to sewer_minmay_w
This reverts part of dfe47cf5 because it broke connectivity.

--------------------------------------------------------------------------------
32653aac8e | Nicholas Feinberg | 2016-10-10 21:36:34 -0700

Make glowing items cost more in shops (Drazool)
Since it seemed silly that they didn't.

--------------------------------------------------------------------------------
b7442ac27a | Nicholas Feinberg | 2016-10-10 20:49:42 -0700

Lesser Beckoning power cap: 50 -> 200
A vicious nerf, per request. (Was too strong, and power cap wasn't
relevant beyond the early game.)

--------------------------------------------------------------------------------
cf7509b2e6 | Nicholas Feinberg | 2016-10-10 19:33:51 -0700

Fix a vault comment typo

--------------------------------------------------------------------------------
a656266048 | gammafunk | 2016-10-10 21:23:14 -0500

Some vaults from Cheibrodos (10716)
Float vaults with monsters and loot for Dungeon, Lair, Lair branches,
Elf, and Depths, many with layouts inspired by biology themes.

This commit also removes roderic_lost_polar_bear, since this vault is
almost completely identical to simply generating a polar bear normally
in Lair, and the theme of "polar bears lost in Lair" is now better
covered by cheibrodos_lair_lostbears.

--------------------------------------------------------------------------------
c11d9220a9 | Chris Campbell | 2016-10-10 09:59:51 +0100

Fix lightgrey contamination causing backlit (Leszczynek)

--------------------------------------------------------------------------------
3228ea0ab7 | Nicholas Feinberg | 2016-10-09 16:08:06 -0700

Various scale/hide fixes (Lightli, DrKe)
Don't drop them under Gozag, do drop them from shapeshifted
dragons, don't drop them from monsters shapeshifted into dragons.
Unfortunately makes messages worse for uniques dropping hides or
scales (Purgy, Xtahua); patches welcome?

Also, mostly unrelated, but don't give hints mode butchering
reminders under Gozag.

--------------------------------------------------------------------------------
63fd1ff489 | Alan Malloy | 2016-10-09 12:28:11 -0700

Make sure vampires in statue form get rPois+++ (papilio)

--------------------------------------------------------------------------------
2383789cb9 | Nicholas Feinberg | 2016-10-08 21:45:16 -0700

Tweak dragon scale drop message
From "You see +0 dragon scales" to "The fire dragon's scales are
intact enough to wear."

--------------------------------------------------------------------------------
ba71d7cf50 | Nicholas Feinberg | 2016-10-08 21:45:16 -0700

Rename: dragon armour -> dragon scales
E.g. "Here: +0 fire dragon scales". Requested to satiate the
Flavour Gods.

--------------------------------------------------------------------------------
cd7d164f12 | Nicholas Feinberg | 2016-10-08 21:45:06 -0700

Remove hides
Butchering dragons/trolls to get their hides and then enchanting
them into armour was probably the closest thing to crafting that
Crawl had. It was reasonably thematic, and the actual enchanting
part felt kind of cool, but it also added complexity and confusion
without any corresponding improvements in gameplay or 'strategic
choices'. (Does Crawl really need a whole set of armours that you
can use, but shouldn't? Should mummies and spriggans need to go
around butchering things...?)

Dragons and trolls now have a chance of leaving armour along with
their corpse, whenever they leave one.

--------------------------------------------------------------------------------
9ebbe8c772 | Nicholas Feinberg | 2016-10-08 21:27:12 -0700

Fix the build (travis)
oops

--------------------------------------------------------------------------------
42248b2e83 | Nicholas Feinberg | 2016-10-08 21:02:34 -0700

Pad floor use UI vertically (dpeg, wheals)

--------------------------------------------------------------------------------
3f911024f3 | Nicholas Feinberg | 2016-10-08 20:38:27 -0700

Fix local tiles UI refs in the web tut (Gooch181)

--------------------------------------------------------------------------------
72f4b6795a | Nicholas Feinberg | 2016-10-08 16:44:11 -0700

Better &t support for brands
In wizmode artefact tweak mode, specify brands by name (e.g.
"vampirism") instead of by raw enum.

--------------------------------------------------------------------------------
c934513e77 | Nicholas Feinberg | 2016-10-08 16:20:59 -0700

Put a save-compat hack in TAG_MAJOR_VERSION tags
Might be possible to remove it entirely; 3cea9f3a is the relevant
commit to investigate.

--------------------------------------------------------------------------------
f1e01665ac | Chris Campbell | 2016-10-08 18:30:48 +0100

Update some contamination descriptions (Tux[Qyou])

--------------------------------------------------------------------------------
63cf2ba349 | Chris Campbell | 2016-10-08 14:17:05 +0100

Allow batform to quaff potions and open doors
It was a fairly weird exception - all the other player bad-polymorph forms can
read and quaff, and even wisp/pig/porcupine could use doors. Also makes Vampire
batform a little better and less fiddly.

--------------------------------------------------------------------------------
0ef4e39517 | Chris Campbell | 2016-10-08 14:17:05 +0100

Don't trigger *Rage artefacts when attacking firewood
The mutation already didn't trigger on firewood.

--------------------------------------------------------------------------------
49dc4b2df8 | Chris Campbell | 2016-10-08 14:17:05 +0100

Don't special-case Xom berserk penalties
Make it slightly rarer, but remove the special behaviour of allowing non-attack
actions with no penalty.

--------------------------------------------------------------------------------
dfe47cf5da | regret-index | 2016-10-08 01:33:02 -0400

Author-influenced vault edits

--------------------------------------------------------------------------------
25837f4635 | regret-index | 2016-10-08 01:04:32 -0400

Volcano buffs!
Volcanoes have always had an unusually wide and unlinked monster set
due to early values of mystique and possibility from very long lists.
While it was a decent shift a good while ago to shift the sets away
from villages of gnolls and orcs or beasts coloured red in console,
the current generic fill-in monster sets still include broad ranges
of unusual picks. With Volcanoes holding a fraction of kills
of Ice Caves, as they present harder map gimmick presence and clouds
with quite a few less regular monsters, it seems reasonable to once more
try and push the sets a little more upwards.

Generic sets shared across several volcano maps are now split in three
rather than two, and are trimmed yet still broad:
 * Remaining humanoid sets: Centaurs and yaktaurs, ogres, or salamanders,
   plus one base red draconian / downgraded hell knight. All are still
   equipped with fiery weapons and armour, and each is a 15% chance.
 * Demons set: red devil / red ugly thing / hell hound,
   smoke demon / sun demon, orc sorcerer / worse equips hell knight.
   20% chance.
 * Beasts set: hell hound / steam dragon / fire bat band,
   hell hog / lindwurm, fire dragon / fire crab(!). 20% chance.
 * Elemental set: fire elemental / earth elemental / gargoyle,
   efreet, stone giant(!). 15% chance.
Cuts: hill giants, orc warriors and knights, deep elf mages and knights,
Urug + Erolcha + Nessos + Harold, crimson imps, komodo dragons, manticores,
fire vortices, most "mixed" sets. It's a bit of a shame to lose the
uniques, but they hardly had wide terrain or heavy support to benefit from.
Komodos and vortexes both still appear in singular maps each, at any rate.

After this clean-up and some header clean-up,
there are also some per-vault shifts:
 * Weights have been shifted, made slightly flatter across maps
   but diminishing the two lua-based layouts and the toenail bunker.
 * All maps with extremely broad potential lava monster chances
   have gotten hard minimums and maximums, higher than previous
   averages. Not that lava snakes and fire bats are too scary.
 * volcano_grotto loses the lasher statue subvault and firespitter
   statues: volcanoes have enough potential gimmick mechanics without
   portal-unique vault defines (and a new elemental statue ontop of
   the codified ice statue is excessive). Obsidian statues, playing
   off of fiery hell themes, replace adjusted firespitter uses.
 * volcano_tomb replaces its mummies and vampires with skeletal warriors.
   Both undead types, while interestingly flavourful here, are too weak
   and tangential to the fire (+ earth) volcano themes to be so
   prominent as a portal vault set-up. A regular vault or two trying out
   "sealed vampires / mummies under lava" is better than this.
   They also get much more flame clouds and wider chambers, to try and
   assist the poor weaker skeletons beforehand.
 * volcano_bunker, which places humans with maces and toenail golems,
   replaces the former with wizards. Equally eccentric, but with more
   fireballs, paralysis, and banishment.
 * volcano_caves has weird random chamber access fixed up.

Some of the loot quality has gone up correspondingly. The two
flaming-branded weapons in every volcano are now guaranteed to be big
two-handers or even top-tier weapons, without any more morningstars
or halberds litering the piles. The free good_item enchantments
on them are gone, though, and as per always one might not find the
weapon types they'd like. Armour quality and generic item quality
have also been adjusted.

TODO: Make some volcano_lakes subvaults.

--------------------------------------------------------------------------------
9eb87fee11 | Alan Malloy | 2016-10-07 21:09:33 -0700

Make a comment more explicit

--------------------------------------------------------------------------------
6b7851e593 | Nicholas Feinberg | 2016-10-07 19:58:36 -0700

Merge pull request #378 from drke2/vp
Give Jory better weapons (Roarke)
--------------------------------------------------------------------------------
e88bd6220e | DrKe | 2016-10-07 19:53:32 -0700

Specify weapon list for Jory (Roarke)
Good item great sword, glaive, or battleaxe, with great sword having
triple weight.

--------------------------------------------------------------------------------
8d6b64ec74 | regret-index | 2016-10-07 19:38:54 -0400

Adjust Lair's spawns and OOD table some more
Branches without out-of-depth-monsters caps have per-monster distributions
scaled for their floors, and quick introductions of ood caps without
accomodations for the approached depths beyond their regular floors will
have unusual effects for OOD fuzz. As such, a variety of monster ranges
have been adjusted to better accomodate potential OOD spawns (including
some unfortunate hacks in consciously using multiple entries per-monster).
There is at most a ~0.2% margin of adjustment to initial spawns in Lair:1-5,
though Lair:6 should have a whole ~2.2% of its spawns not be wyverns nor a
~0.8% be blink frogs in exchange for ~0.5% of spawns being death yaks and
catoblepas.

Dire elephants and lair branch representatives in alligators / anacondas /
manticores / wolf spiders are also now only 53% of the potential rare spawns
past the 10000 aut mark- non-Lair monsters shouldn't completely overtake
the other spawns. The other 47% is now occupied by fire crabs, dream sheep,
and torpor snails, each of which is arguably more dangerous. A large chunk
of the space inbetween regular floor spawns and the bottom of the pool is
prominently filled with hydras and black mambas, which might be more
noticeable, anyway.

Lair:6 has recieved a nominal but fuzzed buff in danger, due to its
end vaults most likely taking long enough to see more OODs. It was always
a leap in spawns outside of the vaults themselves, anyway- 40% of early D
trash in earlier versions and 40% empty spawns in later versions vanish
from regular distribution disappear for that floor. The effects of this
overall will take a long while to notice, anyway, with how complicated OOD
calls are in regular generation- only the new monsters will be any really
noticeable.

--------------------------------------------------------------------------------
d4c818fc29 | Chris Campbell | 2016-10-07 22:57:54 +0100

Apply orbrun teleport restrictions throughout Zot
Makes teleports delayed and blinks uncontrolled for all of Zot as well as the
orbrun, and also prevents Passage of Golubria from working. Applying the
restrictions for all of Zot instead of just on the orb pickup makes it easier
to communicate them, as well as preventing things like using PoG to immediately
escape the orb chamber. It does have the downside of being -cTele-like
behaviour, although this did already exist on the orbrun itself.

--------------------------------------------------------------------------------
05e0fc3777 | Chris Campbell | 2016-10-07 22:57:54 +0100

Make Berserk cost hunger on activation instead of on expiry
Moves the 700 hunger cost to be part of the activation cost for Trog berserk
and evocable berserk, rather than at the end of the effect. As an activation
cost, the hunger amount is randomised but works out as very slightly less on
average for Trog berserk, and slightly more on average for evocable berserk.
Involuntary berserk (and consumable berserk from potions) no longer has a
hunger cost, and so *Rage artifacts and the mutation can trigger regardless of
hunger level.

Also adjusts ability activation so that highly hungering abilities become
unusable at a hunger state threshold, rather than being usable until the exact
point when they could starve you (so Berserk, Divine Vigour, Corruption etc are
unusable once Near Starving, rather than being usable until a specific hunger
value midway through Near Starving).

--------------------------------------------------------------------------------
8a8ed2c287 | gammafunk | 2016-10-07 15:54:56 -0500

A new fiery Lair end vault from Cheibrodos
Featuring various fiery delights, including lava snakes, molten
gargoyles, and special guest appearances by a possible lindwurm or
fire crab (Cheibrodos favorite monster in the game).  The final
showdown is with a fire dragon guarding a small hoard. Other scaly
lair baddies make appearances to round out the cast.

Some notes about this vault for any future work:

* Feels rather like a volcano with more monsters and no random fire
  clouds. This is not a huge problem, but it one suggestion offered to
  address it was to try a kind of "fire and ice" theme that works off of
  the bifurcated nature of the vault.

* The final showdown is close to two other lair end vaults that feature
  a fire dragon, and probably isn't an especially challenging one if you
  can take care of everything leading up to that poin. It may be
  advisable to move some friends to the dragon's chamber, or possibly
  work the end vault to not need an actual door.  The "fire and ice"
  rework mentioned above would be another route to address this.

--------------------------------------------------------------------------------
a614c4e618 | Chris Campbell | 2016-10-07 20:29:27 +0100

Don't autobutcher unless exploring (#10721)
Makes it a little more usable with necromancy spells, as well as making it
consistent with auto_eat (in that it won't waste your time by triggering when
you're right around the corner from a monster and manually walking away from
them).

--------------------------------------------------------------------------------
174f941010 | Isaac Sloat | 2016-10-06 22:33:05 -0500

Don't let alligator bands spawn in Lair
For OOD alligators.

--------------------------------------------------------------------------------
04aa7a880b | Isaac Sloat | 2016-10-06 22:33:05 -0500

Add some OOD-only monsters for Lair
Dire elephants, alligators, manticores, wolf spiders, and anacondas.
Don't stick around too long!

--------------------------------------------------------------------------------
68243f5739 | Isaac Sloat | 2016-10-06 21:36:32 -0500

Enable out-of-depth table for Lair

--------------------------------------------------------------------------------
823c5cb8d4 | Isaac Sloat | 2016-10-06 21:07:29 -0500

Slightly adjust Lair spawn distribution
Dream sheep spawn ~0.5% more often in Lair: 6. Wyverns show up slightly
more often on Lair 3-4 and less often on 5-6. Death yaks are unchanged
in-game - their changes are to prepare for an OOD table for Lair.

--------------------------------------------------------------------------------
21c7ecd884 | Nicholas Feinberg | 2016-10-06 12:48:12 -0700

Hell fish zombies: simplify

--------------------------------------------------------------------------------
ae2e04ec65 | Nicholas Feinberg | 2016-10-06 12:38:45 -0700

Remove skeletonless skeletons from Hell
Introduced by 1485906a677b.

--------------------------------------------------------------------------------
42c593c261 | Corin Buchanan-Howland | 2016-10-05 22:01:41 -0400

Let Uskayaw make a wrathful noise (DrKe)

--------------------------------------------------------------------------------
bf060b28d3 | Chris Campbell | 2016-10-05 18:40:45 +0100

Don't generate river rats or iguanas in Lair
They're still placed by some vaults, but probably shouldn't be. Replace them
mostly with MONS_NO_MONSTER, with practically no effect on total XP (but yet
another tragic nerf to TotalGhoulNutr).

--------------------------------------------------------------------------------
fd294f3663 | Chris Campbell | 2016-10-05 18:14:29 +0100

Fix AF_POISON_PARALYSE logic (|amethyst)

--------------------------------------------------------------------------------
bfcb2be271 | Chris Campbell | 2016-10-05 17:25:40 +0100

Really remove player haste spell (gammafunk)

--------------------------------------------------------------------------------
a09e92927e | Chris Campbell | 2016-10-05 10:39:14 +0100

Don't make Xom find grey glow interesting
Caused by e9e2c28324f2db.
--------------------------------------------------------------------------------
d4844a0fc4 | Chris Campbell | 2016-10-05 10:31:16 +0100

Adjust Irradiate contamination cost again
It's now actually safe to cast when below lightgrey contamination,

and can be safely cast 3-4 times.
--------------------------------------------------------------------------------
e97c2795b6 | John Olender | 2016-10-05 02:19:21 -0400

libunix.cc: Do not keep track of flipped cchars in fakecursorxy().
There is no guarantee that the associated cell hasn't been modified
 before another call to fakecursorxy().  It is quite possible that a
 character identical to the saved flipped character has been written to
 saved cell location in the interim.  This intentional coloring would
 be wiped out and replaced with the stale saved character on the
 next call to fakecursorxy().

For example, this problem is seen when a beam is targeted through a
 monster and the beam results in the cchar_t combination as a flip.
 This is tough to produce in a standard 8/16 color terminal (due to
 flips changing color pairs), but is a common occurrence on monochrome
 terminals.

Remove the resulting unused functions.  Remove the char_info alias type
 and update the now-lone function which uses the alias to use cchar_t
 directly.

--------------------------------------------------------------------------------
e6b039b3c5 | John Olender | 2016-10-05 02:17:20 -0400

libunix.cc: Make failsafe output from curs_attr() more predictable.
Instead of using the current default color as a failsafe, use the
 *default* default color of white-on-black.  This generally makes
 failsafe output more noticeable, especially when default colors have
 been changed.

--------------------------------------------------------------------------------
40073362c3 | Nicholas Feinberg | 2016-10-04 17:48:19 -0700

Give efreet their swords back (in tiles)
Went missing with the new tiles.

--------------------------------------------------------------------------------
000dc29acb | Nicholas Feinberg | 2016-10-04 17:48:19 -0700

mon-gear.cc / spectral orc refactoring
Remove a very ugly argument that existed solely for Nergalle's
fake "Death Channel".

Expected gameplay effects: all minotaurs are now nudists.

--------------------------------------------------------------------------------
423c4d9ab2 | Chris Campbell | 2016-10-05 01:08:27 +0100

Add a newline

--------------------------------------------------------------------------------
b9d7604750 | Chris Campbell | 2016-10-05 01:06:04 +0100

Randomise contamination levels of spells/abilities
To prevent knowing exact contamination when using spells like Controlled Blink,
with lightgrey contamination now generally indicating when another cast risks
causing yellow glow.

--------------------------------------------------------------------------------
f200629c92 | Chris Campbell | 2016-10-05 01:06:04 +0100

Reduce Irradiate's contamination level
Only allowing it to be cast once safely made it pretty undesirable spell to
use. It can now be cast 2-4 times safely, and since a new sub-level of
contamination is now displayed it doesn't require the player to count casts.

--------------------------------------------------------------------------------
e87717a56e | Chris Campbell | 2016-10-05 01:06:04 +0100

Don't reduce contamination when monsters debuff the player
Make it uniquely an effect of the potion of cancellation, rather than allowing
weird behaviour like breathing at yourself as a purple draconian to reduce
contamination.

--------------------------------------------------------------------------------
e9e2c28324 | Chris Campbell | 2016-10-05 01:06:04 +0100

Add another sub-level of contamination when near yellow glow
And refactor some contamination handling.

--------------------------------------------------------------------------------
558363c851 | Chris Campbell | 2016-10-05 01:06:04 +0100

Reword MR aptitude description (PleasingFungus)

--------------------------------------------------------------------------------
fb1adf4315 | gammafunk | 2016-10-04 18:54:57 -0500

Some vaults from Doesnt (10630)
An assortment of vaults: some arrivals, a shop for people scared of
hydras, a xom altar where (spoilers) xom plays a trick on you, a vault
where some wizards experimented with dancing weapons and had a little
accident, and an abyssal rune vault that might leave you feeling a
little brain-dead.

--------------------------------------------------------------------------------
b4acfea2bb | elliptic | 2016-10-04 19:50:17 -0400

Let randarts generate with protection or chaos brands.
Now that protection is less boring it makes sense to enable it on randarts.
If it is still too boring, chaos brand randarts should make up for that...

--------------------------------------------------------------------------------
5e8c22d691 | Nicholas Feinberg | 2016-10-04 15:45:02 -0700

Fix allies buffing/healing the player (10691)
Special targeting functions that set beam.target to coord_def()
(aka origin()) were getting snagged in setup_mons_cast(), which
set the beam's target to the monster's foe if it was origin()
(interpreted there as 'default/unset'). Use a different
out-of-bounds coordinate (probably should be exported to a static
function...)

--------------------------------------------------------------------------------
d17bd63aa7 | Nicholas Feinberg | 2016-10-04 15:17:09 -0700

Remove a hints.cc hack

--------------------------------------------------------------------------------
97ff39faae | Chris Campbell | 2016-10-04 22:03:37 +0100

Remove some obsolete Haste handling

--------------------------------------------------------------------------------
34fa0a254a | Corin Buchanan-Howland | 2016-10-04 22:03:30 +0100

Remove Haste spell for players.
(cherry picked from commit a7ebeb5a6256f31bd016c90ec8d173f3be2c9120. Haste
isn't an effect that should be available in unlimited spell form, and works
much better as a consumable. The wand is also potentially not great due to the
existence of recharging, but the spell is a much worse offender so is a good
change to start with! -MarvinPA)

--------------------------------------------------------------------------------
1cb667b4c5 | Chris Campbell | 2016-10-04 22:03:23 +0100

Adjust AF_PARALYSE once more
Fixes it never applying paralyse to creatures with rPois+, and being able to
affect poison-immune creatures (side-effects of a32af4e0 and ba1b758b
respectively). It now just has a fixed chance to try and apply paralysis
instead of slow, and the standard 2/3 chance of piercing rPois for both the
paralysis and slowing effects. Also rename it to AF_POISON_PARALYSE, since
that's a bit closer to accurately describing it.

--------------------------------------------------------------------------------
f624816ada | Chris Campbell | 2016-10-04 21:08:39 +0100

Rename check_stealth to player_stealth

--------------------------------------------------------------------------------
f8ee9a6a74 | Chris Campbell | 2016-10-04 21:02:12 +0100

Display Felid bonus stealth on 'A'

--------------------------------------------------------------------------------
21eb84ba7e | Chris Campbell | 2016-10-04 21:02:12 +0100

Reduce Ogre/Troll/Centaur stealth apts by 1
To compensate for their greatly improved stealth modifier. The races with high
stealth generally already had huge stealth apts (Na/Vp/Sp), or bonus stealth
(Fe/Op), and also didn't lose all that much stealth with the fixed modifier.

--------------------------------------------------------------------------------
c296747bc2 | Chris Campbell | 2016-10-04 21:02:12 +0100

Display MR on the ?% aptitude table

--------------------------------------------------------------------------------
55d2e7d5c6 | Chris Campbell | 2016-10-04 21:02:12 +0100

Give shadow form a stealth multiplier

--------------------------------------------------------------------------------
605dc7b4cd | Chris Campbell | 2016-10-04 21:02:12 +0100

Give Vampires fixed stealth bonuses when thirsty
Instead of adjusting stealth modifiers, give fixed bonus stealth when thirsty,
and an increased bonus when bloodless or in batform. Results in less of a bonus
once at particularly high stealth skill, but a more significant bonus early.

--------------------------------------------------------------------------------
e0c95740f3 | Chris Campbell | 2016-10-04 21:02:12 +0100

Re-order some stealth handling
Apply multiplicative changes after additive ones (other than confusion's, which
is still applied first), since there didn't seem to be any particular logic to
the previous behaviour (where for example, mutation stealth wasn't halved by
fumbling in shallow water, and Felid blade paws stealth penalty??? was the only
penalty that was reduced by being confused).

--------------------------------------------------------------------------------
9627c654eb | Chris Campbell | 2016-10-04 21:02:12 +0100

Remove species/form stealth modifiers
Instead give all characters a fixed modifier of 15. The modifiers were a much
more complex way of achieving differentiation that could be easily gotten
through adjusting aptitudes instead.

--------------------------------------------------------------------------------
acbfa36dcc | John Olender | 2016-10-04 01:27:05 -0400

libunix.cc: Add and use functions which check for color pair existence.
Knowing if a specific color pair is exists is important for determining
 which default background colors are valid.  It is similarly important
 for deciding which pairs can be flipped by swapping colors (versus
 purely modifying character attributes).

Add a new function to determine whether or not a pair exists for the
 passed color combination.

Split the curs_calc_pair_safe() function into two overloaded functions:
 - A two-argument version which strips colors as necessary and uses
   the file-scoped global default colors.
 - A four-argument version which uses passed color values directly
   and works with explicitly-supplied default colors.

Update curs_set_default_colors() and flip_colour() to use these new
 functions.  Modify setup_color_pairs() to a lesser degree and make
 sure all initial pairs are generated before setting default colours.

For flip_colour(), monochrome terminals are taken care of in a more
 generic manner; they are treated as any other color combination
 without a reverse pair.

Additionally, for curs_set_default_colors():

 Don't reset the default foreground color when a default background
 color is rejected due to a pair shortage.  The default foreground
 color's validity is not related to this particular check.

 Along with this adjustment, provide a clearer comment on why these
 default background colors are rejected.

--------------------------------------------------------------------------------
28b16ba887 | Corin Buchanan-Howland | 2016-10-03 22:09:30 -0400

Make Uskayaw ignore all damage over time (PleasingFungus)
This removes the kind of janky requirement to both try to deal damage and
also succeed at dealing damage. Now merely succeeding is required.

The goal here is to make the piety gain condition clearer and harder
to game while still prohibiting DOT effects that allow the player to
maintain piety while not fighting.

--------------------------------------------------------------------------------
47717c68e8 | Isaac Sloat | 2016-10-03 19:41:18 -0500

Minor tweaks to SPWPN_VAMPIRISM

--------------------------------------------------------------------------------
99f4d21ab6 | John Olender | 2016-10-03 07:42:55 -0400

libunix.cc: Update default color checks for monochrome terminals.
First, always check for non-indexable default colours.

 This check was designed to deal with terminals without enough pairs
 to exhaustively combine every foreground and background color.

 It works equally well for denying default color changes on monochrome
 terminals.  These terminals would otherwise need another special
 case, so just always perform the check.

Second, use the use_default_colors() function for monochrome terminals
 instead of assume_default_colors().  When not dealing with other
 colors, matching the terminal's default color is both desirable and
 safe.

On a side note, remove the redundant call to use_default_colors() for
 color terminals.  The requirement that use_default_colors() be used
 before assume_default_colors() was dropped in 2004.
 http://invisible-mirror.net/ncurses/NEWS.html#index-t20041030

--------------------------------------------------------------------------------
026f1ef7f1 | Neil Moore | 2016-10-03 07:12:31 -0400

Allow arena monsters to pick up items (Styar)
Rather than just one team.

--------------------------------------------------------------------------------
cdd9768d08 | John Olender | 2016-10-03 05:38:22 -0400

libunix.cc: Fix rendering on monochrome terminals.
Provide some extra considerations for monochrome terminals when
 determining attributes and flipping colors.  These changes allow
 crawl to render adequately on such terminals.

For simplicity and compatibility, treat all terminals with less than
 eight colors as monochrome.

--------------------------------------------------------------------------------
85cf057e1d | John Olender | 2016-10-03 05:17:36 -0400

libunix.cc: Do not simply reverse the default pair in flip_colour().
For consistency, look up the default fg/bg colors and treat the
 default pair like any other color flip.

--------------------------------------------------------------------------------
c5c554d463 | John Olender | 2016-10-03 04:47:50 -0400

libunix.cc: Checkwhite and unbrace.

--------------------------------------------------------------------------------
a32af4e007 | Isaac Sloat | 2016-10-03 00:19:23 -0500

Further simplify AF_PARALYSE (MarvinPA)
Also fixes a terribly mistaken comment.

--------------------------------------------------------------------------------
8eae0f7ff0 | Isaac Sloat | 2016-10-02 23:22:30 -0500

Fix a save compatibility crash (Gerad)
Darn corrupters striking from beyond versions!

--------------------------------------------------------------------------------
df4f0554a3 | gammafunk | 2016-10-02 23:01:29 -0500

Some fixes and cleanups for alphashops (nicolae)
Fix randomizations of the shop contents and move a random choice
function to the util library. Also make edits for recent item type
renames, clean up formatting, and remove yet another brazen attempt at
self-promotion. Zin reminds us to remain ever-vigilant in our quest to
remain pure.

--------------------------------------------------------------------------------
230130f74a | Nicholas Feinberg | 2016-10-02 19:05:08 -0700

Try to improve some hints mode text

--------------------------------------------------------------------------------
6d44ad7c15 | Nicholas Feinberg | 2016-10-02 19:05:08 -0700

Remove awful hints mode starting prompt
Just confusing and disorienting. Don't ask me if i want to see a
single screen, show me it and get it over with!

--------------------------------------------------------------------------------
f5c1b34d48 | Nicholas Feinberg | 2016-10-02 19:05:04 -0700

Revise hints.cc
It's still bad, but slightly more modern.

--------------------------------------------------------------------------------
c8f66bbcb5 | Nicholas Feinberg | 2016-10-02 15:08:36 -0700

Update Elemental Force descriptions (10713)

--------------------------------------------------------------------------------
81ad42719f | Alan Malloy | 2016-10-02 11:05:26 -0700

% is 'character overview', not 'show resistances' (Tangar)

--------------------------------------------------------------------------------
d466889602 | Nicholas Feinberg | 2016-10-02 09:34:41 -0700

Improve &v
Allow listing all items' values, not just artefacts.

--------------------------------------------------------------------------------
452a841b9e | Nicholas Feinberg | 2016-10-02 07:42:39 -0700

Axe wasps (Tekks, Grognorb)

--------------------------------------------------------------------------------
6cc5790b9b | John Olender | 2016-10-02 04:29:37 -0400

libunix.cc: Don't avoid creating pairs with the same fg/bg color.
This was a leftover idea which was made irrelevant by two factors:
 - Remapping (white, black) on a default color change solves the "one
   extra pair" problem.
 - The 8-color palette needs these pairs to implement brightening
   via attributes.  These prevent the rest of diagonal from ever
   reclaiming a full-background-color worth of palette, completely
   defeating what little purpose these savings would have had.

--------------------------------------------------------------------------------
5152dc309f | John Olender | 2016-10-02 03:19:11 -0400

libunix.cc: Fix some bogus algebra in the setup_colour_pairs() notes.

--------------------------------------------------------------------------------
aa426e4d73 | John Olender | 2016-10-02 02:23:06 -0400

libunix.cc: Allow changing color depth during gameplay.
Allocate the maximum number of color pairs usable by the game by
 default.  This allows quick switching between supported color modes
 with few screen refreshes.

Adjust how color pairs are organized to ensure that there are always
 enough pairs for 8-color/64-pair and 16-color/256-pair terminals.

Provide some notes on how these changes may impact future 256-color
 support.

--------------------------------------------------------------------------------
5bac298124 | John Olender | 2016-10-02 02:20:58 -0400

Lua options: Correct the binding name for allow_extended_colours.

--------------------------------------------------------------------------------
7aee5af9ba | Isaac Sloat | 2016-10-02 00:32:33 -0500

Properly sort abominations
Abominations and monstrosities are much closer to aberrations than to
demons.

--------------------------------------------------------------------------------
64c2a32d5e | Neil Moore | 2016-10-02 01:30:32 -0400

Re-constexprify coord_def::rdist() (Brannock)
By using a constexpr version of abs, since the standard does not
guarantee std::abs is constexpr (which caused the OS X compile errors
fixed by fe7938f27).

--------------------------------------------------------------------------------
3adc94d73f | Isaac Sloat | 2016-10-01 22:22:45 -0500

Remove Corrupt Body
No longer used by any monster in the game, per
11e23973af981f72e11a81b33fc4b7279050af8e

--------------------------------------------------------------------------------
e89307616e | Isaac Sloat | 2016-10-01 22:22:45 -0500

Replace Corrupt Body with Corrupting Pulse (regret-index)

--------------------------------------------------------------------------------
fe7938f274 | Nicholas Feinberg | 2016-10-01 20:16:59 -0700

Fix OS X compilation (sooheon)
Partially reverts dfd3b10.

--------------------------------------------------------------------------------
4233171dec | Nicholas Feinberg | 2016-10-01 19:10:29 -0700

monster: rHoly -> rCleanse (Cimanyd)
Don't claim that monsters vulnerable to Cleansing Flame and Holy
Flames are vulnerable to "holy" in util/monster's display, since
that sounds like they're vulnerable to holy wrath. Instead, call
it 'cleanse'. (Probably it doesn't need to be mentioned at all!)

--------------------------------------------------------------------------------
c283b4705a | regret-index | 2016-10-01 21:59:51 -0400

Exaggerate and diminish demonspawn monsters some more
Demonspawn monsters might as well do something more while it takes months for
given developers to bother to throw out the tangled code. Their defensive
combination aspects blend together, after all. Extended's problems are
indefinite due to its redundancies and length, but the monsters unique to it
shouldn't fall to the same issues.

 * Standardize some minor variations in demonspawn health / damage stats.
 * Give the infernal and gelid demonspawn full elemental resistance. It's too
   obtuse and subtle flavour for them to have only two pips as part of symmetry
   with the possibility of player demonspawn having the corresponding rF+ / rC+
   scales + fascet. Likewise, bump up monstrous demonspawn aux damage and 
health,
   since the lack of a weapon in exchange for implied Robust is a mixed 
exchange,
   and provide torturous demonspawn rN+++ since they lost their hidden 
Augmentation
   / Powered By Pain effects (clearly, they're out of date).

   A reference list of what should be straightforward results that nobody
   can or will remember anyway:
    * Infernal [demonspawn] have rF+++ and AF_FIRE melee.
    * Gelid [demonspawn] have rC+++ and icemail:
      10 extra AC until they're hit by fire.
    * Torturous [demonspawn] have rN+++ and spines.
    * Monstrous [demonspawn] have doubled health, no weapon,
      and extra melee hits.

 * Give corrupters Corrupting Pulse (wretched stars) over the current unique
   temporary mutation hex Corrupt Body. They didn't originally get it because
   their current temporary mutation beam had a specific flavour group of
   mutations to apply (removed for being invisible and obscure) and because
   Corrupting Pulse used to apply to valid allies (removed for being a
   case-specific weakening interaction). One can argue that their summons
   blocking debilitative beams is nicely generous, but extended should be
   aggressive. They'll still cast it at half of the wretched star rate, anyway.
 * Trim Malign Offering off of black suns. They already have multiple
   non-unique spells for the sake of doing more than their allies-buff, and the
   spell is too weak for Pan- the other spells are cast more to compensate.
 * Tweak the bands to use less mixed un-classed demonspawn: one less base 
monster
   in classed demonspawn bands, and much more of a chance to stick to thematic
   or the same demons in the rare chances base ones spawn. The point of the base
   demonspawn is to emphasize and introduce those fascet attributes, but
   spawning too many of them mixed together muddies them in the long depths
   of Pan and Extended.

Still left to do: replace the Sap Magic mechanic to resemble sifcasting so it
can be cast more often by warmongers, not spawn two long demon-focused
branches with overlapping themes in every game, probably just forcibly bond
the base attributes to classes anyway.

--------------------------------------------------------------------------------
dfd3b10bd2 | Neil Moore | 2016-10-01 20:51:32 -0400

Constexprify coord_def.

--------------------------------------------------------------------------------
021e741a53 | Nicholas Feinberg | 2016-10-01 16:43:31 -0700

Count Riposte actions separately (gammafunk)
For morgues.

--------------------------------------------------------------------------------
67fe6ff217 | gammafunk | 2016-10-01 18:24:24 -0500

Fix an arrival vault (gwarl)
Originaly was a decorative cage, but single trees are now opaque.
Switched to have clear stone and to have trees fully surrounding the
vault, to prevent accidental digging hijinks.

--------------------------------------------------------------------------------
6116449f68 | Chris Campbell | 2016-10-02 00:15:35 +0100

Remove some references to the lantern of shadows

--------------------------------------------------------------------------------
679d49238e | Chris Campbell | 2016-10-01 23:12:46 +0100

Update syntax.txt

--------------------------------------------------------------------------------
b3750974ac | Chris Campbell | 2016-10-01 22:56:31 +0100

Don't give Spriggans piety for polearms skill with Sac Hand
05e545665a4 fixed them losing their polearms skill, but they would still be
granted the piety for it.

--------------------------------------------------------------------------------
ba1b75808b | Isaac Sloat | 2016-10-01 16:00:57 -0500

Emancipate paralytic poison (MarvinPA)

--------------------------------------------------------------------------------
20b36320cc | Isaac Sloat | 2016-10-01 15:51:31 -0500

Clean up AF_PARALYSE
Remove special cases and average out the numbers where applicable.

Also, it can no longer paralyse/slow enemies that were not poisoned.

--------------------------------------------------------------------------------
5324d1abc1 | Isaac Sloat | 2016-10-01 15:51:31 -0500

Nerf hornets
As they're much more common now, their stats have been placed halfway
between wasp and old hornet.

--------------------------------------------------------------------------------
61ff0dfc32 | Isaac Sloat | 2016-10-01 15:51:30 -0500

Remove wasps
The two monsters were too similar to justify the distinction. Wasps have
been removed. Hornets are kept, as the're a specific species. Spriggan
riders now tame and train hornets.

--------------------------------------------------------------------------------
5bd6118577 | Chris Campbell | 2016-10-01 21:49:25 +0100

Remove Jiyva's jelly paralyse ability
It was a fairly fiddly ability that in practice would usually just be used to
grab as much of the Slime:$ loot as possible, since elsewhere most item eating
happens off-screen.

--------------------------------------------------------------------------------
428efd8011 | Nicholas Feinberg | 2016-10-01 13:36:28 -0700

Tweak Book of the Warp
Swap Portal Projectile in, replacing Summon Forest; the latter's
already in two other books, and the former would be nice to see at
least a little more often.

--------------------------------------------------------------------------------
4bb99f6915 | Nicholas Feinberg | 2016-10-01 13:36:28 -0700

Only auto-memorize level 1 spells at game start
Don't start new Warper with a spell they can't memorize!

--------------------------------------------------------------------------------
fcbf9236af | Nicholas Feinberg | 2016-10-01 13:36:28 -0700

New spell: Lesser Beckoning (L3 Tloc)
Beam-targeted spell that moves the target adjacent to the caster.
Won't move victims into instakill terrain (lava etc), but will
move them over such terrain. Can move monsters into traps. Range
starts at 2, and caps at 7 (LOS_RADIUS) at 50 power; if the effect
is too powerful, doubling the power cap to 100 might be one way to
adjust it. (Alternately, it could gain a second school;
tloc/earth?)

Intended to be a fun utility effect. It's currently in Party Tricks
and in Spatial Translocations, replacing Apportation in the latter;
that means that Warper no longer starts with a spell, but that's
probably OK.

--------------------------------------------------------------------------------
a95302de39 | Isaac Sloat | 2016-10-01 13:45:08 -0500

Fix Hepliaklqana's name

--------------------------------------------------------------------------------
ebd07a4323 | Chris Campbell | 2016-10-01 19:40:37 +0100

Fix branch noise messaging for branches with other entry messages
Doesn't ever come up currently, but any branch that had its own special entry
message previously wouldn't have displayed messaging about branch noise, if it
was also noisy/quiet.

--------------------------------------------------------------------------------
515da4594f | Chris Campbell | 2016-10-01 19:40:37 +0100

Remove an unnecessary mimic apportation special case
It's fine to put mimics under the player now, since they don't turn into
monsters.

--------------------------------------------------------------------------------
cdbbc62e1a | Nicholas Feinberg | 2016-10-01 11:39:41 -0700

Don't rest by clicking on stats in local tiles
Instead, display the % screen.

Would be really nice to display tooltips for whatever stat you're
mousing, but you'd need to have some concept of where each element
is...

--------------------------------------------------------------------------------
89de447d15 | m-aigner | 2016-10-01 18:30:10 +0100

Make silencable abilities display correctly in xv, for real.
(Committer's note: Closes #372 PR, and fixes Mantis #10649).

--------------------------------------------------------------------------------
8ae7a5b5c8 | Alan Malloy | 2016-10-01 10:25:06 -0700

Revert accidental commit of wudzu

--------------------------------------------------------------------------------
b0f0fea98c | CoreyK | 2016-10-01 13:02:43 -0400

wudzu description and ability key adjustments

--------------------------------------------------------------------------------
61e4b27bcd | CoreyK | 2016-10-01 13:02:42 -0400

wudzu wrath

--------------------------------------------------------------------------------
2476d8830a | CoreyK | 2016-10-01 13:02:41 -0400

aux armour thorns, 2* and 4*

--------------------------------------------------------------------------------
f7ff26afa2 | CoreyK | 2016-10-01 13:02:40 -0400

5* wudzu ability: briar patch

--------------------------------------------------------------------------------
539bf7f864 | CoreyK | 2016-10-01 13:02:39 -0400

3* wudzu ability: summon vines

--------------------------------------------------------------------------------
47d1c54074 | CoreyK | 2016-10-01 13:02:38 -0400

at * wudzu worshippers get the equivalent of spiny 1

--------------------------------------------------------------------------------
24b151cb76 | CoreyK | 2016-10-01 13:02:37 -0400

Thorn body armour when worshipping Wudzu

--------------------------------------------------------------------------------
ad64241cbe | CoreyK | 2016-10-01 13:02:35 -0400

Shell for the god Wudzu (name subject to change I very much hope)

--------------------------------------------------------------------------------
44f22066b6 | Nicholas Feinberg | 2016-10-01 09:10:15 -0700

Deduplicate player::is_habitable_feat()

--------------------------------------------------------------------------------
6dcb7864a8 | Isaac Sloat | 2016-10-01 00:13:30 -0500

Fully remove an Eringya leftover
Goodbye, vine-covered golems. You will forevermore rest in our
courtyard, being consumed by the call of nature.

--------------------------------------------------------------------------------
333ee727db | Nicholas Feinberg | 2016-09-30 21:25:10 -0700

Remove old references to searching (Oliverkatt)
Since you can no longer search for traps while resting.

The tilereg-stat case is very strange - why do we allow resting by
clicking on your AC?

--------------------------------------------------------------------------------
c9b17de5ba | Nicholas Feinberg | 2016-09-30 21:23:47 -0700

Mention hitting Esc in name select (Oliverkatt)

--------------------------------------------------------------------------------
0bcaf2e2cc | elliptic | 2016-09-30 21:55:54 -0400

Actually zero you.time_taken for macro delays that don't do anything 
(|amethyst).
Previously a macro that didn't take any actions (e.g. calling a nonexistent
or empty user-defined lua function) would still waste a turn (unless there
was a visible monster to interrupt the delay).

--------------------------------------------------------------------------------
da47fb9c30 | Isaac Sloat | 2016-09-30 18:25:14 -0500

Fix broken pan_disco_hall (MarvinPA)
Removing chaos champions without giving them a replacement mangled  the
monster placement in the vault. As blood saints received Call of Chaos,
they've been placed as a replacement until a more suitable choice can be
made.

--------------------------------------------------------------------------------
b753e76eeb | John Olender | 2016-09-30 18:08:26 -0400

Only brighten skill colours for skills which are actively training.
A skill may not be trainable but can still be listed in the skill menu.
 Cross-trained weapon skills often fall into this category, for example.

Avoid brightening the colour for such skills.

--------------------------------------------------------------------------------
3cdf1d872d | John Olender | 2016-09-30 18:08:26 -0400

skill_menu.cc: Avoid color clashes with darkgrey.
The no_dark_brand option is enabled by default, which means
 darkgrey-on-black is rendered using a safety foreground colour.
 To keep contrast with lightgrey on the default black background,
 it ends up rendered as blue-on-black.

To avoid a clash with darkgrey-as-blue and another colour in the skill
 menu, change the colour of enhanced skills from blue to green.
 Addtionally, move the manual bonus text from green to red to keep
 each colour in the menu mostly distinct.

--------------------------------------------------------------------------------
ffe185b45b | John Olender | 2016-09-30 18:08:26 -0400

Allow control over curses color rendering assumptions.
Consider a character with identically-displayed foreground and
 background colors a failure condition.

If such a scenario is detected, adjust the output to be visible.
 The default background colour is the default failsafe colour for
 the background.  When there is a clash with the default background
 colour, choose black, or blue if the default background colour is
 black or white.

Related changes:
- Provide the safest-possible rendering assumptions by default.
- Update the curses code to support both basic 8-color rendering and
  native 16-color rendering.
- Add and update options related to curses rendering:
  - Add "blink_brightens_background" and "bold_brightens_foregound"
    options.  These allow independent control over the assumptions that
    A_BLINK and A_BOLD will actually adjust their respective colour.
  - Update "no_dark_brand" to affect all darkgrey output, not just
    brands.
  - Convert the unused "num_colours" option to "allow_extended_colours".
    Note that curses and the current terminfo both have to directly
    support the number of internal colours for this setting to have any
    effect.
  - Update the "background_colour" option to reverse-map backgrounds
    to black.  Add a corresponding "foreground_colour" option which
    reverse-maps lightgrey foregrounds.
  - Update the documentation for the terminal rendering options.
- Attempt to change the default colour assumptions for the terminal.
  This change allows the "background_colour" and "foreground_colour"
  options to work as expected, provided both curses and the terminal
  support the feature.

Additional implementation notes:
- Update the code to use curses calls with discrete attr_t and
  color_pair arguments.  This allows more than 256 color pairs to be
  used, and is quite important when using 16 or more colors.
- Adjust many of the functions and variables to specifically use the
  COLOURS enum when dealing with internal colours.
- Fix flip_colour's handling of bright colors in 8-color mode.
- Add documentation and declarations for many of the touched functions.
- Adjust the value of the COLFLAG_CURSES_BRIGHTEN flag to directly
  coincide with the bright colours in the 16-color palette.

--------------------------------------------------------------------------------
bb2db12e04 | Nicholas Feinberg | 2016-09-30 11:19:53 -0700

erik_arrival_cave_to_temple fixes (divsky)
Removed 1/3 chance of statues, which orc wizards could blink
past them. Not intended for D:1.

Could alternately remove the orc wizards (and priests, now) and
re-add statues, which would let players with digging return to
loot the vault later... not super excited about that, though.

Made a few other tweaks in line with the vault being intended to
be purely decorative.

--------------------------------------------------------------------------------
7aebecbfb6 | Nicholas Feinberg | 2016-09-30 09:46:27 -0700

Don't warn about falling to your death (10698)
Since you can't anymore, probably.

--------------------------------------------------------------------------------
c9128b42e8 | Nicholas Feinberg | 2016-09-30 09:36:55 -0700

Fix monster max HP display for edge cases
Player ghosts/illusions and various vault-modified monsters.

--------------------------------------------------------------------------------
048f9dc9e2 | Nicholas Feinberg | 2016-09-29 21:25:06 -0700

Merge pull request #370 from aegolden/DeadStoreCleanup
Clean up two dead assignments
--------------------------------------------------------------------------------
0b18a7b9ef | Isaac Sloat | 2016-09-29 17:37:18 -0500

Replace fire/ice with quicksilver/shadow in Zot
Fire and ice dragons were little more than popcorn by the time
characters are doing Zot, even when berserked by a moth of wrath. They
show up in plenty of other parts of the Dungeon, and swamp dragons are
already excluded from Zot for being too weak.

Quicksilver dragons and their dispelling breath have been introduced in
their place. Shadow dragon spawn rates have been flattened, making them
show up on early Zot floors much more frequently than previously. Q and
S each should represent 4 to 5% of Zot's population.

--------------------------------------------------------------------------------
1e0734db93 | Nicholas Feinberg | 2016-09-29 14:56:14 -0700

Skill manual generation tweaks
Remove the bias toward unarmed combat & stealth in manual
generation - was added as an ugly hack when traps & doors and
stabbing were removed, respectively. Also refactor a little.

--------------------------------------------------------------------------------
8b4ba7c97d | Nicholas Feinberg | 2016-09-29 14:29:58 -0700

_generate_book_item() refactoring

--------------------------------------------------------------------------------
50cf0f481a | Nicholas Feinberg | 2016-09-29 14:18:05 -0700

Fix spellbook rarity (|amethyst)
Some spellbooks are supposed to be rarer than others - well, to
spawn less often at lower depths - but this functionality had
been broken since 0f4b659d, eight years ago.

Probably that means it's not very important, so I wouldn't be
surprised to see this removed again.

--------------------------------------------------------------------------------
d99315e933 | Isaac Sloat | 2016-09-29 16:16:07 -0500

Refactor demonspawn job selection

--------------------------------------------------------------------------------
a1f7210782 | Isaac Sloat | 2016-09-29 16:16:07 -0500

Teach Call of Chaos to blood saints
Gives them a second spell in their repertoire, and rounds off the four
demonspawn classes: they now all have at least one way to help each
other through buffs or inflicting statuses on the enemy.

--------------------------------------------------------------------------------
d0de9cb93c | Isaac Sloat | 2016-09-29 16:16:07 -0500

Remove chaos champions
After multiple attempts to give them sufficiently chaotic abilities and
spells were unsuccessful, chaos champions never really fulfilled their
design intent. Their Call of Chaos spell will be moved to blood saints.

Their spawn weightings have been spread out evenly across the other four
classes.

This reduces the number of possible demonspawn combinations from 20 to
16.

--------------------------------------------------------------------------------
84924340ac | Isaac Sloat | 2016-09-29 16:16:06 -0500

Remove putrid demonspawn
They were not as successful as the other demonspawn types: poison
immunity is not something that's relevant by the time the player is
doing Pandemonium, and their fast regeneration was contigent on having
corpses nearby, which is something that's in short supply in Pan even
with fellow demonspawn.

Their spawn weighting has been spread out evenly across the other four
types.

The number of possible demonspawn combos have been reduced from 25 to
20. This should help make demonspawn packs in Pandemonium more focused
and sensible.

--------------------------------------------------------------------------------
c873335602 | Nicholas Feinberg | 2016-09-29 13:55:02 -0700

Merge pull request #375 from aegolden/AddSemicolon
Add missing semicolon
--------------------------------------------------------------------------------
c98162aa5b | Aaron Golden | 2016-09-29 13:43:57 -0700

Add missing semicolon

--------------------------------------------------------------------------------
958f1b56d7 | Alan Malloy | 2016-09-29 11:20:26 -0700

Don't call artefact amulets of nothing 'buggy' (simmarine)

--------------------------------------------------------------------------------
600995438a | Nicholas Feinberg | 2016-09-29 07:37:43 -0700

Remove accidental bonus ac (10703)
Introduced in b62331c89af3ce.

--------------------------------------------------------------------------------
c855d72c58 | regret-index | 2016-09-28 20:22:20 -0400

Reconnect kennysheep_demon_jail
A while back as I was editing this vault I changed the connector door
entrance glyphs for the sake of different floor tiles, which had the
side effect of no explicit entrances to the vault and thus the potential
of complete isolation from the level. Whoops. Fixed here.

--------------------------------------------------------------------------------
84977a8b06 | Chris Campbell | 2016-09-29 00:19:29 +0100

Show when trees have been animated by awaken forest

--------------------------------------------------------------------------------
1b80ca82f5 | Chris Campbell | 2016-09-28 22:51:51 +0100

Simplify branch noise handling (PleasingFungus)
Instead of supporting fine-grained variation in ambient noise levels, use an
enum and a fixed value for loud/quiet branches.

--------------------------------------------------------------------------------
c7c13170f4 | Chris Campbell | 2016-09-28 19:13:29 +0100

Decrease Slime noise level to -6
To make quiet branches (Slime, Crypt, Tomb) consistently use the same value.

--------------------------------------------------------------------------------
5ad3e2d25e | Chris Campbell | 2016-09-28 19:12:32 +0100

Adjust and deduplicate messaging for ambient noise

--------------------------------------------------------------------------------
a59010fb77 | Nicholas Feinberg | 2016-09-28 09:38:34 -0700

More salt floor/wall tiles (CanOfWorms)
Note to self, for future reference: reduce brightness by 20% when
importing

--------------------------------------------------------------------------------
cab94ab80f | Nicholas Feinberg | 2016-09-27 17:45:13 -0700

Remove plutonium sword abuse
Don't let it affect magic immune monsters, e.g. plants (to avoid
Certain Players from turning plants into free xp)

Alternate solution: could revert this and tag polymorphed monsters
that were originally firewood as MF_NO_REWARD?

--------------------------------------------------------------------------------
fd0a92bab9 | Nicholas Feinberg | 2016-09-27 17:16:29 -0700

Refactor chaos effects
Move into data.

--------------------------------------------------------------------------------
ff403d4ac1 | regret-index | 2016-09-27 17:49:14 -0400

Somewhat clean-up golem_gauntlet_mu
Trim out the D uniques it always had, as they're out of place in Depths.
Also standardize the header, provide cloud origin point indicators,
and place some hatches to escape certain islands.

--------------------------------------------------------------------------------
bbe854a71b | Nicholas Feinberg | 2016-09-27 13:58:42 -0700

Replace ushabti negative energy with miasma
More exciting than negative energy - esp in tomb, where players are
likely to be hugely resistant to negative energy, if not immune -
and no longer conflicts with death scarabs, since they lost their
miasma trails.

--------------------------------------------------------------------------------
60952de16a | Isaac Sloat | 2016-09-27 15:06:40 -0500

Rename greatslings to fustibali
Part of a campaign to make Crawl names more distinct and to
reduce overuse of certain prefixes.

Did you know: https://en.wikipedia.org/wiki/Sling_(weapon)#Staff_sling
http://www.encasedinsteel.co.uk/2013/05/24/the-mighty-staff-sling/

--------------------------------------------------------------------------------
7454d6fa28 | Isaac Sloat | 2016-09-27 13:55:57 -0500

Add monspeak lines for bullfrog

--------------------------------------------------------------------------------
ba988d4509 | DrKe | 2016-09-27 13:26:00 -0500

Adjust stats of some long blades
Scimitar accuracy -2 -> +0, great sword damage 14 -> 15 and delay 16 -> 17.

--------------------------------------------------------------------------------
77406d5440 | Isaac Sloat | 2016-09-27 12:52:39 -0500

Rename greater naga to nagaraja
Part of a campaign to make Crawl creature names more distinct and to
reduce overuse of certain prefixes.

Did you know: https://en.wikipedia.org/wiki/Nagaraja
Also: https://en.wikipedia.org/wiki/Raja

--------------------------------------------------------------------------------
fa80773443 | Nicholas Feinberg | 2016-09-27 09:31:18 -0700

Fix Hep ally max HP display (chequers)

--------------------------------------------------------------------------------
6dc86a09a5 | Nicholas Feinberg | 2016-09-27 07:54:35 -0700

Improve messages_at_top for screenreaders (NiallH)
Should actually render messages before the rest of the screen,
which should make it more useful for screen readers, possibly.

Would be nice to have a better way to test this.

...also, this code should probably be deduplicated.

--------------------------------------------------------------------------------
bd66c222ad | Nicholas Feinberg | 2016-09-26 20:50:01 -0700

Don't spawn enemies with Elemental Force
Could only happen if you weren't tracking whose clouds were whose
(there's no UI for this, of course!) and accidentally summoned
elementals from your enemy's clouds. No prompt, of course. Silly!

Currently you can only summon from your own clouds; probably you
should just be allowed to summon friendly elementals from all
clouds, but apparently I was persuaded not to do this back in
April (for reasons I don't recall), so I'm leaning toward a
conservative approach for now.

--------------------------------------------------------------------------------
5ffe1b77a5 | Nicholas Feinberg | 2016-09-26 20:44:42 -0700

Partially refactor qazlal_elemental_force
Deduplicate.

--------------------------------------------------------------------------------
52bc8b1c52 | Nicholas Feinberg | 2016-09-26 20:18:44 -0700

Make Qazlal's cloud immunity global (Arrhythmia)
Instead of only applying to your own clouds. The UI for the
previous behaviour was very bad (no indication, other than a
warning prompt when you tried to walk into hostile clouds!), and
the buff is limited and situational. Simpler behvaiour is good!

--------------------------------------------------------------------------------
c6704394de | Nicholas Feinberg | 2016-09-26 19:55:30 -0700

Add an overlooked changelog entry

--------------------------------------------------------------------------------
79541188a6 | John Deeny | 2016-09-26 20:53:11 -0400

Replace get_menu_colour_prefix_tags with menu_colour_item_name (#373)

--------------------------------------------------------------------------------
e29cd904f1 | Neil Moore | 2016-09-26 20:34:55 -0400

Generate wide aptitude table from the Makefile.
In docs/aptitudes-wide.txt.  Not currently used in-game.

--------------------------------------------------------------------------------
4b0b555b73 | Neil Moore | 2016-09-26 20:23:04 -0400

Add a template for wide aptitude tables.
Currently unused, but it might be useful for wide screens.  Run:

  util/gen-apt.pl aptitudes-wide.txt ../docs/template/apt-tmpl-wide.txt 
species-data.h aptitudes.h

--------------------------------------------------------------------------------
0595f0e0ff | Neil Moore | 2016-09-25 22:49:47 -0400

Remove a stray comment (doh)
[skip ci]

--------------------------------------------------------------------------------
05e545665a | Neil Moore | 2016-09-25 22:46:05 -0400

Remove some vestiges of spriggan handedness.
Sac Hand no longer needs to remove Polearms skill from Spriggans, and
SpFi can now start with spears, war axes, or long swords.

--------------------------------------------------------------------------------
a26c10b08e | Nicholas Feinberg | 2016-09-25 19:31:07 -0700

Changelog through 0.19-a0-1694-g2dd932f

--------------------------------------------------------------------------------
2dd932fb5e | Neil Moore | 2016-09-25 21:20:18 -0400

Don't crash when drawing weaponless Agnes.
http://crawl.berotato.org/crawl/morgue/lessens/crash-lessens-20160926-011315.txt

--------------------------------------------------------------------------------
92623feaac | Neil Moore | 2016-09-25 19:18:56 -0400

Constify and simplify get_menu_colour_prefix_tags.

--------------------------------------------------------------------------------
68728bb4b7 | Alan Malloy | 2016-09-25 13:06:17 -0700

Merge pull request #371 from jdeeny/color_identified
Color the text when an object is identified by a scroll of identify.
--------------------------------------------------------------------------------
0ee707979b | jdeeny | 2016-09-25 13:49:44 -0600

Color the text when an object is identified.
For example, if following Chei, a potion of haste
would be shown in red when identified. Previously,
the text was always grey.

--------------------------------------------------------------------------------
9e0fcb6f01 | Neil Moore | 2016-09-25 10:40:48 -0400

Add help to checkwhite and unbrace.
Displayed with --help or -h.

Also, fail and display the help if bad options were supplied.

[skip ci]

--------------------------------------------------------------------------------
cb872fc83b | Neil Moore | 2016-09-25 10:40:48 -0400

Add option checkwhite -r to leave CRs (gammafunk, Brannock)
This should make it a little easier to use git's autocrlf option.

--------------------------------------------------------------------------------
3040f7a0d8 | Neil Moore | 2016-09-25 10:40:48 -0400

Avoid a member-shadowing warning.

--------------------------------------------------------------------------------
af949d05fd | Neil Moore | 2016-09-25 10:40:47 -0400

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
d8690b2ec8 | Aaron Golden | 2016-09-24 17:58:44 -0700

Clean up dead store "vector<stash_search_result> * results = &results_in"
The results variable is overwritten before being read in every code
path following the initialization, so the value stored during
initialization is never read.

--------------------------------------------------------------------------------
5598110b02 | Aaron Golden | 2016-09-24 17:58:44 -0700

Clean up dead store "moving = false"
The function returns immediately after this assignment so moving
is not read.

--------------------------------------------------------------------------------
35356ef215 | Chris Campbell | 2016-09-24 20:57:15 +0100

Simplify constriction escapes
As with webs, remove the dependence on strength, as well as some other
complicated handling for monsters where size factored into escape chance (and
tiny monsters never escaped constriction), despite the fact that most monsters
don't even try to escape.

--------------------------------------------------------------------------------
614e038de1 | Chris Campbell | 2016-09-24 19:58:59 +0100

Simplify web escape chances
Make it a fixed chance, rather than dependent on strength - the dependence
wouldn't really affect any decisionmaking in practice, so just gave strength an
additional very niche effect on top of its main effects of affecting damage,
AEVP, etc.

--------------------------------------------------------------------------------
34c2bd0405 | Chris Campbell | 2016-09-24 19:48:46 +0100

Add Lua .persist files to .gitignore

--------------------------------------------------------------------------------
2e5aaf60a0 | Chris Campbell | 2016-09-24 19:42:26 +0100

Update wording for tiny weapon/armour restrictions (nikheizen)

--------------------------------------------------------------------------------
5114f93a7b | Nicholas Feinberg | 2016-09-23 16:58:35 -0700

oops

--------------------------------------------------------------------------------
b62331c89a | Nicholas Feinberg | 2016-09-23 16:57:06 -0700

Simplify local AC colour display code (ontoclasm)
This could also be used to simplify webtiles' equivalent AC colour
code.

--------------------------------------------------------------------------------
71ce815523 | Nicholas Feinberg | 2016-09-23 16:36:57 -0700

Credit Crawl's fourth Aaron
And add him (aegolden) to the mailmap.

--------------------------------------------------------------------------------
00af8a7729 | Aaron Golden | 2016-09-23 16:31:02 -0700

Exclude "MacOSX.sdk" from SDK search in OS X build
In Sierra with Xcode 8 installed an SDK "MacOSX.sdk" with no version
number appears in the list of installed SDKs and this causes the
SDK version to come out empty.  We should exclude this special case
from the list of SDKs to consider so we find only the versioned
SDKs.  This change gets crawl building again on Mac OS X using, e.g.
"make APPLE_GCC=y NO_PKGCONFIG=y CONTRIB_SDL=y TILES=y".

Closes #367.

--------------------------------------------------------------------------------
8ce114c4a8 | Chris Campbell | 2016-09-23 20:10:14 +0100

Update webtiles HUD highlighting (#10695)
Highlight AC in webtiles when a protection weapon is active. Also add a check
for DS sanguine armour and TSO's divine shield, and remove some obsolete
checks. Still possibly highlighted in console but not in webtiles: DS icemail
mutation, Qazlal shielding?

--------------------------------------------------------------------------------
a65e37779a | gammafunk | 2016-09-23 03:14:22 -0500

Some vaults from Cheibrodos for D, Depths, and Snake (10678)
Various cleanups and tweaks, mostly to add a bit of randomness to
monster numbers. Vault cheibrodos_gamma_graves remains unmerged for now,
pending some changes.

--------------------------------------------------------------------------------
39ae8cc6af | Nicholas Feinberg | 2016-09-22 14:55:08 -0700

Save compat tomb:3 hack (10641) (MarvinPA)
Fixing, more or less, an issue caused by bc45de5b2ef5c301.

--------------------------------------------------------------------------------
c11f27cf2b | Nicholas Feinberg | 2016-09-22 14:33:26 -0700

Revert "Render mons average HP as linear glyphs"
Turns out this looked awful everywhere but local tiles, and
confused the heck out of players.

This reverts commit c458fa071b821b52288cccd69ed2797683870209.

--------------------------------------------------------------------------------
51edc528f3 | ontoclasm | 2016-09-22 13:53:17 -0500

Damnation arbalest tiles

--------------------------------------------------------------------------------
1c1b307211 | Alan Malloy | 2016-09-21 21:54:30 -0700

Replace reroll loop with a one-step fisher-yates

--------------------------------------------------------------------------------
679cadd8e3 | Alan Malloy | 2016-09-21 19:54:23 -0700

Remove unnecessary parens

--------------------------------------------------------------------------------
d12c092123 | Alan Malloy | 2016-09-21 19:54:22 -0700

Remove the last weird disto effect for blink frogs (hellmonk)

--------------------------------------------------------------------------------
c28a5d92d6 | Nicholas Feinberg | 2016-09-20 17:29:23 -0700

Tweak branch ambient noise, again
It wasn't doing anything especially useful in Lair or Orc, and I
don't really care about making those areas easier wrt noise, so
their noise is gone. Shoals and Desolation are up to noise 6,
which might or might not be enough to be noticeable; Crypt and
Tomb are both at -6 (from -3/-10 respectively), chosen for
symmetry. That's it.

--------------------------------------------------------------------------------
074b0ae9e0 | Nicholas Feinberg | 2016-09-20 17:29:23 -0700

Remove ambient noise's effect on stealth
Tiny, silly, and overly complex/"simulationist". If ambient noise
should exist, its purpose is to mess with the noise system, not
to provide wee stealth buffs/penalties.

--------------------------------------------------------------------------------
ffffed78d9 | Nicholas Feinberg | 2016-09-20 17:29:23 -0700

Message when entering a branch with ambient noise
If the mechanic exists (currently under debate :P), it should be
discoverable through something less obscure than ?/B.

--------------------------------------------------------------------------------
233084c0cb | Alan Malloy | 2016-09-20 17:11:02 -0700

Simplify a variable's type declaration

--------------------------------------------------------------------------------
daf9554dc2 | Nicholas Feinberg | 2016-09-20 16:03:15 -0700

Gently nerf Ragged Hierophants
Their Resonance Strike was scaled along the lines of Waterstrike,
but turned out to be (in practice) rather harder to avoid. Reduce
damage by 25%.

--------------------------------------------------------------------------------
2475f33594 | Nicholas Feinberg | 2016-09-20 15:51:10 -0700

Tweak some trap detection logic
Correct an outdated comment & replace a weird condition with an
assert.

--------------------------------------------------------------------------------
b0193f3df1 | Nicholas Feinberg | 2016-09-20 15:31:29 -0700

Simplify branch ambient noise
Noisy branches (Lair, Shoals, Desolation, and Orc) are now
uniformly noise 4, instead of varying slightly from that. I think
ambient noise is a useful tool for controlling difficulty versus
the openness of layouts; it's just communicated very poorly right
now, just like the rest of noise... (Possibly there should be a
message when changing branches?)

This is also a slight nerf to Desolation, which is intended.

--------------------------------------------------------------------------------
87f10ba012 | Chris Campbell | 2016-09-20 23:09:12 +0100

Don't trigger riposte/minotaur retaliation against neutrals
Instead of prompting (in riposte's case) and just attacking regardless (in
minotaur retaliation's case).

--------------------------------------------------------------------------------
b81896fca7 | Nicholas Feinberg | 2016-09-20 12:24:54 -0700

Huge pile of Desolation subvaults (nicolae-)

--------------------------------------------------------------------------------
e641b2b86e | Nicholas Feinberg | 2016-09-20 10:10:05 -0700

Simplify (geekosaur)
And fix a possible read of uninitialized memory.

--------------------------------------------------------------------------------
c458fa071b | Nicholas Feinberg | 2016-09-20 09:40:08 -0700

Render monster average HP as linear glyphs
More aesthetically pleasing than a raw number, maybe? A little
ugly in console, and no idea if it works on old Windows machines
or similar...

Thanks to |amethyst for glyph suggestions.

--------------------------------------------------------------------------------
dd04a5445b | Nicholas Feinberg | 2016-09-20 09:40:08 -0700

Simplify average HP display
A quadratic display is actively misleading. Without a scale, the
natural intuition is geometric/spatial (each glyph represents the
same amount of HP, ++ is half as much HP as ++++, etc). Breaking
these intuitions without explanation is a very bad idea.

Instead of bothering with a complicated glyph system, why not
just... display a number?

--------------------------------------------------------------------------------
05d3a6a631 | Chris Campbell | 2016-09-20 17:37:31 +0100

Turn protection brand into a normal duration
Fixes the status description not showing up on % or @. Also clean up some
unrelated code obsoleted by the change.

--------------------------------------------------------------------------------
7868735367 | Chris Campbell | 2016-09-20 17:34:23 +0100

Fix monsters attacking with protection giving the player AC

--------------------------------------------------------------------------------
621c3562fa | Chris Campbell | 2016-09-20 17:33:51 +0100

Reduce Riposte chance to 1/3
The effect is generally pretty strong even for characters that don't heavily
invest in evasion.

--------------------------------------------------------------------------------
dd95918096 | Nicholas Feinberg | 2016-09-19 21:49:29 -0700

Remove an unused var (geekosaur)
Orphaned by ff52c9bc7241d78ec84204876d2cae7477738c84.

--------------------------------------------------------------------------------
9d3f7082a8 | Corin Buchanan-Howland | 2016-09-19 22:21:14 -0400

Deincrementalize protection weapons (elliptic)
Instead of giving an increasing bonus, give a fixed 7 AC bonus after striking
an enemy. The bonus is slightly higher than the old protection bonus to
make it a bit more appealing than old protection and because it's harder to
trigger. This is mostly a buff from the incremental version, but it offers
less press-your-luck/pie-in-the-sky potential.

The motivation for this change is that the incremental version is more
complex and could potentially lead to scummy behavior.

--------------------------------------------------------------------------------
922d709ed0 | Chris Campbell | 2016-09-19 22:29:09 +0100

Simplify Slime wall destruction
Fixes the walls not turning to floor if they had been made into trees by Summon
Forest (per Yermak).

--------------------------------------------------------------------------------
343bd12e81 | Chris Campbell | 2016-09-19 22:28:07 +0100

Adjust some default message colouring
To mark monsters crumbling away as boring, without affecting the message for
destroying orcish idols.

--------------------------------------------------------------------------------
ff52c9bc72 | Chris Campbell | 2016-09-19 21:47:12 +0100

Don't make Beogh smite players for destroying orcish idols
It was a bunch of complicated handling for something that nobody would ever
want to actually do, similar to the good god blood drinking conduct except
applying to everyone at all times.

--------------------------------------------------------------------------------
9239046d4c | Chris Campbell | 2016-09-19 21:17:58 +0100

Make Slime walls disappear on killing TRJ
Especially with non-Jiyva jellies no longer eating items, there's not really
any good reason to require a method of digging to access the Slime loot.

--------------------------------------------------------------------------------
0a4d0e945a | Chris Campbell | 2016-09-19 21:01:15 +0100

Let Summon Forest work on non-rock walls
But don't allow burning down or disintegrating its trees, so that it can't be
used as a weird and complicated way to dig through metal.

--------------------------------------------------------------------------------
ba131144cc | Chris Campbell | 2016-09-19 20:35:11 +0100

Remove handling of an obsolete Lua marker

--------------------------------------------------------------------------------
effb1d78d0 | Chris Campbell | 2016-09-19 19:20:10 +0100

Slightly reduce the quantity of Desolation loot

--------------------------------------------------------------------------------
3d89d623cd | Chris Campbell | 2016-09-19 19:02:19 +0100

Don't let snapping turtles withdraw at low HP (PleasingFungus)
It harkens back to the days of monster fleeing, and in practice mostly results
in them stopping attacking and letting the player either easily kill them or
easily leave when it triggers.

--------------------------------------------------------------------------------
f496a64d12 | Chris Campbell | 2016-09-19 16:28:53 +0100

Document curare effects, improve ammo descriptions (#10684)

--------------------------------------------------------------------------------
7063521c63 | Chris Campbell | 2016-09-19 16:28:53 +0100

Remove boulder beetles
Orb spiders and regular IOOD casters are a much better use of projectiles -
rolling boulder beetles were almost always trivial to avoid.

Also reglyph death scarabs to blue s, since they were otherwise the only
remaining monster on 'B'.

--------------------------------------------------------------------------------
d4e141f2c0 | Chris Campbell | 2016-09-19 16:28:53 +0100

Don't place web traps in Crypt
They were mostly there for flavour, and unlike in Spider most Crypt monsters
aren't web-immune (with ghosts being the only ones that are) so they would
often end up helping the player more than harming them.

--------------------------------------------------------------------------------
008f495340 | Alan Malloy | 2016-09-19 08:07:47 -0700

Simplify code for handling new protection brand

--------------------------------------------------------------------------------
c6380143ea | John Olender | 2016-09-19 07:32:10 -0700

Fix Gozag prayer message bug (10685)
Perform replacements on the speech strings instead of just printing the
raw string.

--------------------------------------------------------------------------------
d5962735bc | Nicholas Feinberg | 2016-09-19 07:14:40 -0700

Revert "Remove the cloud_status option"
The curse of the option remover: sometimes people are still using
the options...

This reverts commit ff3fd4e0bf4d02929d7a0830b0650ba1e7a76928.

--------------------------------------------------------------------------------
740ae02a9c | Corin Buchanan-Howland | 2016-09-19 08:01:05 -0400

Redo weapons of protection
In this model, each time you strike a monster with a weapon of protection,
you turn on a protection buff and add +1 AC to that buff. The buff ends
shortly after you stop striking monsters.

The motivation for this redesign was to remove the incentive to hold a weapon
of protection purely for a passive AC bonus, or to swap to a weapon of
protection while running away, waiting for a teleport to kick in, etc. Now,
players will need to use the weapon to get value from it, and in exchange
the weapon will offer considerably more value. I'm leaving the max value
open-ended at this point to see if it can compete with damage brands.

Some tuning will probably need to be done for the specific duration of the
buff and perhaps an upper limit on the AC it can offer. We may also want
to explore a model of gradual decay rather than a strict timer.

--------------------------------------------------------------------------------
a6c562e30a | gammafunk | 2016-09-19 01:34:39 -0500

Reindent some data

--------------------------------------------------------------------------------
fc13266dd5 | Nicholas Feinberg | 2016-09-18 20:41:16 -0700

Fix allied invis spam (IronicDongz)
https://i.sli.mg/9tpsBY.png

--------------------------------------------------------------------------------
7d55db25f5 | elliptic | 2016-09-18 23:36:24 -0400

Allow clua functions like view.feature_at() to query squares at distance >7 
from the player.
The in_show_bounds() check didn't serve any purpose, since even with that
check these functions would happily query out-of-sight squares (and even
out-of-bounds squares). Extending these functions shouldn't leak any
information regardless, since they all use map_knowledge.

--------------------------------------------------------------------------------
668c48929f | Nicholas Feinberg | 2016-09-18 20:32:58 -0700

Tweak monster description bars
Add spacing in long bars to improve readability, remove arbitrary
caps on bar lengths (relevant for player ghosts), round values up
rather than down (AC + is now 1-5 ac, instead of 5-9) - that last
is inconsistent with player MR, but it doesn't matter too much
because we show hex chances, and it's useful for my last change,
removing the . spacers. God Bless America.

--------------------------------------------------------------------------------
2f321e7e0c | Neil Moore | 2016-09-18 22:47:58 -0400

Use UCS-4 literals in a few places.

--------------------------------------------------------------------------------
f9e0913e83 | Neil Moore | 2016-09-18 22:39:25 -0400

Replace our ucs_t typedef with C++11 char32_t.

--------------------------------------------------------------------------------
69b3feb98a | elliptic | 2016-09-18 21:17:19 -0400

Use the base invocations skill for Uskayaw titles (simmarine).
Previously it was affected by draining, which was inconsistent with how
other skill-based titles are determined. We don't want players to lose their
title because they are drained by something on orbrun...

--------------------------------------------------------------------------------
d09ab47ac2 | m-aigner | 2016-09-18 16:44:24 -0500

Make Zin hate mutagenic chunks properly.

--------------------------------------------------------------------------------
f92b760f0f | Chris Campbell | 2016-09-18 19:58:58 +0100

Adjust leopard gecko description (zxc223)

--------------------------------------------------------------------------------
59ed194426 | Isaac Sloat | 2016-09-18 13:04:28 -0500

Merge pull request #358 from alexjurkiewicz/mennas-trishula

--------------------------------------------------------------------------------
2f7c216221 | Alex Jurkiewicz | 2016-09-18 13:04:09 -0500

Upgrade Mennas' weapon
Always a holy weapon (sacred scourge, eudemon blade or trishula) now.
The enchantment level is implemented differently but should be
approximately the same.

--------------------------------------------------------------------------------
c26532d425 | elliptic | 2016-09-18 00:26:08 -0400

Move two vaults deeper.

--------------------------------------------------------------------------------
5215c368ff | elliptic | 2016-09-17 21:46:04 -0400

Clua: travel.waypoint_delta().
Player lua to locate a specific waypoint on the current level relative to
the player location.

--------------------------------------------------------------------------------
1e66c08d7a | elliptic | 2016-09-17 21:46:04 -0400

Remove an info leak in view.feature_at().
It would previously return nil for out of bounds squares while returning
"unseen" for unseen in-bounds squares, revealing how close the player was
to the edge of the map.

--------------------------------------------------------------------------------
e7438a5ee5 | Isaac Sloat | 2016-09-17 19:02:44 -0500

New soul eater tile (roctavian)
Spooky!

--------------------------------------------------------------------------------
a60222dc92 | Isaac Sloat | 2016-09-17 19:02:44 -0500

New spriggan tiles (roctavian)
Spriggan, air mage, berserker, defender, druid, rider, Agnes, and the
Enchantress.

--------------------------------------------------------------------------------
1bbd97d862 | Chris Campbell | 2016-09-17 22:35:14 +0100

Remove the mlist_targeting option
An obscure and complicated console-only option.

--------------------------------------------------------------------------------
345bc97154 | Chris Campbell | 2016-09-17 22:22:04 +0100

Rename show_game_turns to show_game_time
And update the options guide entry to be more accurate.

--------------------------------------------------------------------------------
80fb93a91f | Isaac Sloat | 2016-09-17 16:14:09 -0500

Minor monspeak fixes
Closes 10598 and 10681

--------------------------------------------------------------------------------
aef71b8275 | Isaac Sloat | 2016-09-17 04:41:12 -0500

Properly update mana viper tile
Oops.

--------------------------------------------------------------------------------
886f8145ac | Isaac Sloat | 2016-09-17 02:30:33 -0500

New human tiles (roctavian)
As well as code to select equally from all 3 types of humans.

--------------------------------------------------------------------------------
e0d3d396c0 | Isaac Sloat | 2016-09-17 02:30:32 -0500

Improved animal tiles (roctavian)
Porcupine, black bear, komodo dragon, death ooze, eye of draining, and
mana viper.

--------------------------------------------------------------------------------
fa05b1c1dd | Isaac Sloat | 2016-09-17 02:30:06 -0500

New troll tiles (roctavian)
Troll, deep troll, iron troll, deep troll earth mage, deep troll shaman,
and deep troll monk ghost.

--------------------------------------------------------------------------------
1be274e8a1 | Isaac Sloat | 2016-09-17 01:27:35 -0500

Fully remove unused tiles.
UNUSED is being phased out. Retired tiles should go into crawl/tiles
repository.

--------------------------------------------------------------------------------
87db2e469a | Isaac Sloat | 2016-09-17 01:27:35 -0500

New Donald tile (roctavian)
And weapon offset for him.

--------------------------------------------------------------------------------
7c9bbd012c | Isaac Sloat | 2016-09-17 00:46:55 -0500

Improved undead tiles (roctavian)
Dangerously buffs ghouls, bog bodies, and skeletal warriors...

--------------------------------------------------------------------------------
27efa5475a | Isaac Sloat | 2016-09-17 00:45:21 -0500

New demon tiles (roctavian)
Tzitzimiteh, brimstone friends, and rust devils have been touched up.

Executioners and efreets get entirely new tiles!

--------------------------------------------------------------------------------
7a729d47d3 | Isaac Sloat | 2016-09-17 00:01:03 -0500

Refactor acid brand behavior

--------------------------------------------------------------------------------
b3e3175eb5 | Isaac Sloat | 2016-09-16 22:36:15 -0500

Slimify Punk (hellmonk)
Even with a high enchantment level and freezing brand, Punk was
unremarkable.

Giving it corrosive shots should be... interesting!

--------------------------------------------------------------------------------
ce8c8c31e9 | Isaac Sloat | 2016-09-16 22:36:15 -0500

Enable Acid weapon brand
Previously only used for acidic bite, now can be used on weapons.
Take note, it still won't spawn in the game, or through ?brand!

--------------------------------------------------------------------------------
4cf22de317 | Isaac Sloat | 2016-09-16 22:15:24 -0500

Merge branch 'alexjurkiewicz-show-mon-hp'

--------------------------------------------------------------------------------
75903a5b5f | Alex Jurkiewicz | 2016-09-16 22:06:03 -0500

Show average monster hitpoints in x-v.

--------------------------------------------------------------------------------
a023847eea | Chris Campbell | 2016-09-17 03:49:09 +0100

Improve option documentation
Oops.

--------------------------------------------------------------------------------
8d78996dff | Chris Campbell | 2016-09-17 03:41:05 +0100

De-rune some doors (elliptic)

--------------------------------------------------------------------------------
8ae016035e | Chris Campbell | 2016-09-17 03:37:29 +0100

Add an option to disable smart autotargeting of spells
With simple_targeting = true, explosions will just be targeted at the closest
monster in range (rather than trying to find a spot that hits monsters but not
the player), and lightning bolts won't be automatically bounced, to let players
choose predictable targeting over clever targeting if desired.

--------------------------------------------------------------------------------
726460b0cf | Chris Campbell | 2016-09-17 03:37:29 +0100

Rewrap the options guide contents

--------------------------------------------------------------------------------
ff3fd4e0bf | Chris Campbell | 2016-09-17 03:37:29 +0100

Remove the cloud_status option
Rather than making it default to true for console and false for tiles, just
make the actual behaviour depend on console/tiles with no attached option.

--------------------------------------------------------------------------------
4bb316436e | Chris Campbell | 2016-09-17 03:37:29 +0100

Remove the show_uncursed option
Another option that was very unlikely to be changed from the default.

--------------------------------------------------------------------------------
ceba10556b | Chris Campbell | 2016-09-17 03:37:29 +0100

Remove the explore_improved option
It defaulted to false and wasn't useful functionality.

--------------------------------------------------------------------------------
ceb7482925 | Chris Campbell | 2016-09-17 03:37:29 +0100

Undocument another removed option

--------------------------------------------------------------------------------
659d3614d8 | Neil Moore | 2016-09-16 21:42:20 -0400

Avoid an obscure acquire misc crash.
If the player has seen all the evokers and disc of storms, and has
sacrificed love, we would try to choose a subtype from a list with all
zero weights, then dereference the resulting null pointer.  See for
example:

  
http://crawl.akrasiac.org/rawdata/doublebanjo/crash-doublebanjo-20160917-004852.
txt

Instead, fall back to crystal ball of energy, which isn't subject to
either of those restrictions (sac love or seen).  If the player has
sacrificed devices as well, or worships Pakellas (RIP), we will later
reject the useless item, and eventually fall back to a non-acquirement
item per 0.19-a0-1186-g6c2f138 .

Perhaps CBoE should have the same seen check as evokers, in which case
this function should be changed to return OBJ_RANDOM or such.

--------------------------------------------------------------------------------
2736e37736 | Isaac Sloat | 2016-09-16 16:52:38 -0500

Rename giant orange brains to glowing orange brains
Part of a campaign to make Crawl creature names more distinct and to
reduce overuse of certain prefixes.

--------------------------------------------------------------------------------
2f379c2604 | Nicholas Feinberg | 2016-09-16 13:20:33 -0700

Fix a Zin recite grammar error (10680)
Broken when it was moved into data, in 812cb7ab.

--------------------------------------------------------------------------------
9c60e2afd1 | canofworms | 2016-09-16 14:28:11 -0400

Mailmap address update
Use something that I can actually access... *nervous chuckle*
--------------------------------------------------------------------------------
a5acd14275 | Alan Malloy | 2016-09-16 11:20:49 -0700

Add neofelis to credits/mailmap. Thanks

--------------------------------------------------------------------------------
74e9e56023 | Alan Malloy | 2016-09-16 11:10:42 -0700

Simplify some math, and use mpr instead of mpr_nojoin

--------------------------------------------------------------------------------
fbf3ba8f2a | Alan Malloy | 2016-09-16 11:05:50 -0700

Fix some whitespace and inline a variable

--------------------------------------------------------------------------------
f2ca45090a | m-aigner | 2016-09-16 10:46:39 -0700

Display ru sac piety in ability descriptions

--------------------------------------------------------------------------------
14ea08af64 | regret-index | 2016-09-16 07:30:20 -0400

Hide player species dummy monsters a little harder
Block octopodes from polymorph to match most other player species dummy
monsters (presumably only excluded for the period a long while ago of using
them as water spawns), and throw no_trap_gen onto two entry vaults using
that class of monster so that only LRD / Shatter should ever make them
relevant.

--------------------------------------------------------------------------------
e51c82a67a | Nicholas Feinberg | 2016-09-15 21:47:01 -0700

Remove jump attack (icon)
And a few other icons for removed abilities.

--------------------------------------------------------------------------------
034a1f91c9 | Nicholas Feinberg | 2016-09-15 21:19:59 -0700

Poutine and coke (!?) for CanOfWorms
Despite his barbaric taste (or lack thereof), we welcome him to
the devteam! The more the merrier.

--------------------------------------------------------------------------------
aef70b689d | Isaac Sloat | 2016-09-15 20:50:32 -0500

Merge pull request #340 from isloat/cantrips
Cantrip message variety (9055, Xelif)
--------------------------------------------------------------------------------
16daf77599 | Nicholas Feinberg | 2016-09-15 17:05:46 -0700

Beer and strudels for Brannock
Welcome to the devteam!

--------------------------------------------------------------------------------
8298829fa7 | Chris Campbell | 2016-09-16 00:09:10 +0100

Merge griffons into hippogriffs
By giving hippogriffs very slightly more damage and HP, and mostly just
removing griffons - they weren't very distinct from hippogriffs, and manticores
already exist as a similar hybrid that's a bit stronger and more interesting.

Distributes griffon weight between hippogriffs and manticores and some other
branch-specific monsters.

--------------------------------------------------------------------------------
07ca5389ca | Chris Campbell | 2016-09-16 00:09:10 +0100

Slightly decrease the chances of Ru passive retaliation
From 1/3 to 1/4 at max piety.

--------------------------------------------------------------------------------
33bcc2d42d | Chris Campbell | 2016-09-16 00:09:10 +0100

Replace *Confuse with *Slow
Random confusion on artefacts tended to just be a tax on potions of curing.

--------------------------------------------------------------------------------
9ee287a41e | Alan Malloy | 2016-09-15 15:45:55 -0700

Fix cloud_status rcfile option's default setting (ldf)
It's supposed to be true for console and false for tiles, not the
other way around. Bug introduced in 5a4ca11.

--------------------------------------------------------------------------------
8817a3695d | Chris Campbell | 2016-09-15 21:18:48 +0100

Mention cloud immunity in Firestarter description (elliptic)

--------------------------------------------------------------------------------
42b314813f | Chris Campbell | 2016-09-15 21:15:07 +0100

Reduce weight of a Xom overflow vault
Since it's particularly noticeable with its Lua trickery.

--------------------------------------------------------------------------------
9c324b5169 | Chris Campbell | 2016-09-15 21:11:50 +0100

Trim the frilled lizard description
To remove part that was a reference to the sprint ability.

--------------------------------------------------------------------------------
0c3c0ff29c | Chris Campbell | 2016-09-15 21:08:23 +0100

Replace Swiftness with Sprint on player ghosts
To ensure that it gets the correct description for its actual behaviour, and
that it continues to work after TAG_MAJOR_VERSION 34.

--------------------------------------------------------------------------------
ef823f8913 | Chris Campbell | 2016-09-15 20:56:51 +0100

Make frilled lizards more giant newt-y
Make it a straight rename, rather than adjusting their abilities and stats -
they're used in a bunch of vaults that expect them to be amphibious, and sprint
isn't likely to be an interesting ability on such a weak early monster.

--------------------------------------------------------------------------------
6911da7707 | Chris Campbell | 2016-09-15 20:50:21 +0100

Tweak some monster descriptions
"Huge" and "large" were a bit overused as descriptors and often felt like they
were just padding out the description with extra adjectives.

--------------------------------------------------------------------------------
2a90b74414 | Chris Campbell | 2016-09-15 20:43:46 +0100

Fix spelling and wrap some descriptions

--------------------------------------------------------------------------------
5fb7f23ac3 | Chris Campbell | 2016-09-15 19:55:24 +0100

Merge pull request #363 from isloat/third-person-hiss
First-person hissing (10677)
--------------------------------------------------------------------------------
91756d7a53 | Isaac Sloat | 2016-09-15 13:52:20 -0500

First-person hissing (10677)

--------------------------------------------------------------------------------
5ccf90f13e | Alan Malloy | 2016-09-14 23:00:38 -0700

Fix some whitespace

--------------------------------------------------------------------------------
6dc5b33a8a | Alan Malloy | 2016-09-14 23:00:38 -0700

Re-remove the duplication in CrawlStoreValue constructor
This is a re-application of dd3bc78 and 1223d52 - those commits exposed
the missing cases in the copy constructor by calling it more often.

--------------------------------------------------------------------------------
d1fd179668 | Alan Malloy | 2016-09-14 23:00:17 -0700

Add some missing cases in CrawlStoreValue's operator=

--------------------------------------------------------------------------------
dd01aac06d | Nicholas Feinberg | 2016-09-14 21:04:26 -0700

Document new wizmode command aliases

--------------------------------------------------------------------------------
64908cfeb8 | Alan Malloy | 2016-09-14 20:57:20 -0700

Revert commits 1223d527 and dd3bc784aec, which caused crashes

--------------------------------------------------------------------------------
1223d5271c | Alan Malloy | 2016-09-14 20:28:01 -0700

Re-add an early exit whose removal broke class invariants

--------------------------------------------------------------------------------
dd3bc784ae | Alan Malloy | 2016-09-14 18:35:29 -0700

Remove duplication in CrawlStoreValue constructor
The copy constructor was doing the same thing as operator=, so
I redefined it to just call operator= instead.

--------------------------------------------------------------------------------
ef84d77db2 | Alan Malloy | 2016-09-14 18:13:51 -0700

Add an assert to CrawlStoreValue::read
It definitely will do some bad things if type != SV_NONE, so we
should assert that that's not the case, and catch it early.

--------------------------------------------------------------------------------
716afb1df3 | Alan Malloy | 2016-09-14 18:09:44 -0700

Fix a crash when wielding artefact launchers (PleasingFungus)
The problem was in CrawlStoreValue::operator=, which incorrectly
freed unallocated memory if the type being assigned from was a
pointer type, whereas it should do that only if the old type was
a pointer.

The bug was exposed by 9025daabe7e5db8464, which had the effect
of causing operator= to be called on more interesting values.

--------------------------------------------------------------------------------
49e5c8c42a | Isaac Sloat | 2016-09-14 16:05:59 -0700

Froggify undead toads
A leftover from the days of brown toads, I suppose.

--------------------------------------------------------------------------------
22b0623167 | Isaac Sloat | 2016-09-14 16:05:52 -0700

Rename giant spores to ballistomycete spores
Part of a campaign to make Crawl creature names more distinct and to
reduce overuse of certain prefixes.

--------------------------------------------------------------------------------
802546c604 | Isaac Sloat | 2016-09-14 16:03:44 -0700

Rename giant eyeballs to floating eyes
Part of a campaign to make Crawl creature names more distinct and to
reduce overuse of certain prefixes.

--------------------------------------------------------------------------------
ae17ef5651 | Isaac Sloat | 2016-09-14 16:02:59 -0700

Rename giant leeches to tyrant leeches
Part of a campaign to make Crawl creature names more distinct and to
reduce overuse of certain prefixes.

--------------------------------------------------------------------------------
397112baed | Isaac Sloat | 2016-09-14 16:02:51 -0700

Rename giant geckos to leopard geckos
Part of a campaign to make Crawl creature names more distinct and to
reduce overuse of certain prefixes.

--------------------------------------------------------------------------------
d6d7ee119b | Isaac Sloat | 2016-09-14 16:02:45 -0700

Rename giant frogs to bullfrogs
Part of a campaign to make Crawl creature names more distinct and to
reduce overuse of certain prefixes.

MONS_GIANT_FROG has been preserved as the genus.

--------------------------------------------------------------------------------
c922ed89c4 | Isaac Sloat | 2016-09-14 16:02:39 -0700

Change blink frog genus
Now MONS_GIANT_FROG, like the other frogs.

--------------------------------------------------------------------------------
1831138694 | Implojin | 2016-09-14 12:08:07 -0700

Re-enable higher oklob chance in Lair entry vault
This has been broken in the .des since Lair entry depth was changed from 8-13
to 8-11. Let's bring it back.

--------------------------------------------------------------------------------
45bdf812ec | Nicholas Feinberg | 2016-09-14 12:00:16 -0700

Make tiles resolution options affect fullscreen
Could add a second set of options if shared settings are
undesireable.

--------------------------------------------------------------------------------
64c24c37ee | Nicholas Feinberg | 2016-09-13 20:10:47 -0700

Merge pull request #359 from isloat/remove-newt
Remove giant newts, replace with frilled lizards
--------------------------------------------------------------------------------
74e7e77f46 | Isaac Sloat | 2016-09-13 20:44:28 -0500

Introduce frilled lizards to Dungeon ecology
Similar to giant newts, but are very slightly more resilient and
give up their amphibious flag in exchange for bursts of speed.

--------------------------------------------------------------------------------
27615943d0 | Isaac Sloat | 2016-09-13 20:44:27 -0500

Remove giant newts
They had too much overlap with rats, both being speed 10 monsters
with up to 3 HP, giving 1 XP, and no other features of special interest.
Giant newts are more evasive than rats, but that's not an
interesting enough differentiation.

Giant newts have been removed from vaults, with giant cockroaches and
giant geckoes rarely replacing them.

--------------------------------------------------------------------------------
31c0f6200f | Alan Malloy | 2016-09-13 18:33:11 -0700

Merge pull request #356 from crawl/crawl-map-inheritance
Make CrawlHashMap inherit from std::map
--------------------------------------------------------------------------------
d8b46fc827 | Nicholas Feinberg | 2016-09-13 18:32:55 -0700

Merge pull request #361 from isloat/xom-friendship
New Xom overflow altar
--------------------------------------------------------------------------------
53e375c1a8 | Isaac Sloat | 2016-09-13 20:29:28 -0500

New Xom overflow altar

--------------------------------------------------------------------------------
d6ab43fe0e | Nicholas Feinberg | 2016-09-13 18:21:57 -0700

Merge pull request #357 from isloat/vinestalker-items
Fix VSWn getting !HW (10669)
--------------------------------------------------------------------------------
982567dbbb | Alan Malloy | 2016-09-13 18:21:02 -0700

item_def.base_type doesn't need a bitfield anymore (|amethyst)

--------------------------------------------------------------------------------
35a11b8553 | Chris Campbell | 2016-09-13 18:45:20 +0100

Simplify Ashenzari monster equipment identification
Don't require passing a piety check - just always identify monster wands and
branded armour (since weapon brands are now already always identified for all
characters). Also fix duplicated messaging when encountering multiple monsters
with some branded weapons.

--------------------------------------------------------------------------------
dfab93f4f2 | Chris Campbell | 2016-09-13 17:49:18 +0100

Coding convention-ify

--------------------------------------------------------------------------------
72c3ff3c3a | Chris Campbell | 2016-09-13 17:48:54 +0100

Improve a Xom vault message

--------------------------------------------------------------------------------
1beeac9cfd | Nicholas Feinberg | 2016-09-13 09:31:02 -0700

Fix an Abyss messaging bug (Shady Amish Terror)
A rare message that required a POSIX extension to work at all, and
hence, on Windows, didn't.

--------------------------------------------------------------------------------
45fb26f6da | Brendan Hickey | 2016-09-13 09:31:02 -0700

Reform Ratskin Cloak (chequers)
Increase the Ratskin AC to +2.

--------------------------------------------------------------------------------
a7c97edf2b | Chris Campbell | 2016-09-13 15:48:22 +0100

Remove some obsolete checks for reduced EV on stairs

--------------------------------------------------------------------------------
03f6967b52 | Nicholas Feinberg | 2016-09-12 22:57:02 -0700

Fix xv (oops)

--------------------------------------------------------------------------------
5fe9782d60 | Nicholas Feinberg | 2016-09-12 22:29:27 -0700

Fix an xv bug (10670, 9739)
I guess?

--------------------------------------------------------------------------------
228a5d9b45 | gammafunk | 2016-09-12 19:25:51 -0500

Give obsidian and orange crystal statues see invisible
These statue monsters appear at much later depths than ice statues
on-average and their mid and late-game effectiveness is greatly reduced
when casting their only source of damage less frequently. A recent
change has additionally made unaware statues capable of being stabbed.
Giving these statues sinv will prevent invisibility from being so
powerful against them, while still letting it be useful, since many of
the statues' summons don't see invisibile. The statues can also still be
stabbed if a stealthy player gets close before the statues become aware.

Not giving Oklobs sinv even though they're of a similar level/threat.
They're much more common early on in Lair, and they're also available to
the player through Fedhas, where Sunlight is normally used to allow
allies to attack invisible monsters.

--------------------------------------------------------------------------------
1035669744 | Nicholas Feinberg | 2016-09-12 17:22:11 -0700

Make autotraining a bit smarter about weapons
Try to prioritize skills that aren't at mindelay yet, and
deprioritize those that are.

--------------------------------------------------------------------------------
c378325e44 | gammafunk | 2016-09-12 18:42:18 -0500

Fix compilation

--------------------------------------------------------------------------------
1472800fde | Isaac Sloat | 2016-09-12 18:16:25 -0500

Clarify a species check
US_UNDEAD applies to Mummies only (Ghouls are US_HUNGRY_DEAD and
Vampires are US_SEMI_UNDEAD) and the player is unlikely to be in
Lichform when generating as a wanderer.

--------------------------------------------------------------------------------
4aa80ba748 | Isaac Sloat | 2016-09-12 18:16:25 -0500

Refactor _good_potion_or_scroll()
Also closes 10669 by excluding Vine Stalker from getting !HW.

--------------------------------------------------------------------------------
61e4880204 | Nicholas Feinberg | 2016-09-12 16:13:47 -0700

Merge pull request #352 from isloat/autoid-manuals
Auto-ID manuals the player steps on
--------------------------------------------------------------------------------
e90598518f | Nicholas Feinberg | 2016-09-12 16:10:55 -0700

Remove cannot_fight()
Consuquences: hitting statues will now autotrain melee attacks
as normal, and, also, it's possible to stab statues. If the latter
is really undesirable, we can revert it... seems like a weird
special case to me, though. Why statues and not oklobs, or golems,
or...?

--------------------------------------------------------------------------------
c2972aa283 | Nicholas Feinberg | 2016-09-12 13:09:45 -0700

Use more specific types for brands (protopulse)

--------------------------------------------------------------------------------
2d1325d733 | Nicholas Feinberg | 2016-09-12 12:57:28 -0700

Triple evocations autotraining from xp evokers

--------------------------------------------------------------------------------
a1aa1959cd | Alan Malloy | 2016-09-12 12:47:48 -0700

Remove a silly copy constructor call (wheals)

--------------------------------------------------------------------------------
ea4be0a004 | Alan Malloy | 2016-09-12 12:47:28 -0700

Specify the storage type for object_class_type enum
This fixes compilation on g++ 4.7, I think.

--------------------------------------------------------------------------------
8312d96082 | Nicholas Feinberg | 2016-09-12 12:26:15 -0700

Fix single-book memorization in tiles UI
Clicking on a book would previously just pop up the generic
memorize UI for all of your books, which seems confusing.

--------------------------------------------------------------------------------
c9e8a3e8aa | Nicholas Feinberg | 2016-09-12 12:15:25 -0700

Yet more _get_mem_list() refactoring

--------------------------------------------------------------------------------
7aa3caafe6 | Nicholas Feinberg | 2016-09-12 12:03:08 -0700

More _get_mem_list() refactoring
Remove a redundant return type.

--------------------------------------------------------------------------------
028b310583 | Nicholas Feinberg | 2016-09-12 11:56:49 -0700

Remove an unused parameter

--------------------------------------------------------------------------------
e211622f28 | Nicholas Feinberg | 2016-09-12 11:19:58 -0700

Remove messaging for spells unmemorizable in forms
Impossible for a year or two now.

--------------------------------------------------------------------------------
aa522d3182 | Nicholas Feinberg | 2016-09-12 11:17:57 -0700

Spell memorization refactoring (minor)

--------------------------------------------------------------------------------
6a738c8946 | Nicholas Feinberg | 2016-09-12 11:17:22 -0700

Halve dodging autotraining
Was very very high, empirically.

--------------------------------------------------------------------------------
94be5413b8 | Nicholas Feinberg | 2016-09-12 11:06:30 -0700

Allow players to memorize spells at 0 Spellcasting
...through the tiles book-use UI.

Also, remove support for the Tome of Destruction from tiles.

--------------------------------------------------------------------------------
e88b4bf6c4 | Nicholas Feinberg | 2016-09-12 10:48:54 -0700

Refactor exercise.cc
Intended changes: large rocks should now train throwing all the
time, instead of only half the time.

--------------------------------------------------------------------------------
d13ce7a1fa | Nicholas Feinberg | 2016-09-12 09:54:06 -0700

Update wizmode command list
To be up-to-date with a845ca217a520b3 and e66d2b040f04.

--------------------------------------------------------------------------------
ac33fb9075 | Nicholas Feinberg | 2016-09-12 09:24:27 -0700

Skill autotraining cleanup
Remove two cases which could never occur (EX_WILL_THROW_WEAPON and
EX_WILL_READ_TOME), and two which didn't matter
(EX_WILL_THROW_OTHER and EX_DODGE_TRAP). EX_SNEAK_INVIS can
probably go too, but I don't have a strong opinion on that.

--------------------------------------------------------------------------------
9025daabe7 | Alan Malloy | 2016-09-11 21:37:51 -0700

Make CrawlHashMap inherit from std::map
- Simplifies implementation
- Lets us use various map utility functions
- Gives us a nice move constructor

--------------------------------------------------------------------------------
f6d23edc5b | Nicholas Feinberg | 2016-09-11 15:35:27 -0700

Re-fix hex chance description
Oops...

--------------------------------------------------------------------------------
729b3daaf1 | Nicholas Feinberg | 2016-09-11 15:20:06 -0700

Remove an ancient, hacky special case for MR
An extra coinflip chance of hexes to succeed against monsters with
less than 6 MR. Obsoleted by 5ec91530503a.

This will make the early game slightly harder for hexers, but
at least their success chances will be displayed correctly now :)

--------------------------------------------------------------------------------
16f215bf85 | gammafunk | 2016-09-10 21:29:23 -0500

Rename an enum value and add an array compile check (|amethyst)
Renamed to reflect the use of this value as the number of available term
colors.

--------------------------------------------------------------------------------
b270f3fc4d | Nicholas Feinberg | 2016-09-10 19:03:01 -0700

Fix a static initialization order crash, possibly
initfile.cc's Options object and colour.cc's colour strings were
racing to be initialized first. On Linux, this (coincidentally)
worked fine; on Windows; this (coincidentally) caused crashes.

const char* strings shouldn't cause this issue.

--------------------------------------------------------------------------------
e761a2a311 | Alan Malloy | 2016-09-10 15:18:52 -0700

Remove impossible assertion (suggested by clang)
We don't need to assert that unsigned types are non-negative.

--------------------------------------------------------------------------------
2ac1aae562 | Nicholas Feinberg | 2016-09-10 14:25:02 -0700

Fix a warning (nicolae-)

--------------------------------------------------------------------------------
1f2beae114 | Chris Campbell | 2016-09-10 21:18:24 +0100

Fix a warning

--------------------------------------------------------------------------------
e972ad551e | Chris Campbell | 2016-09-10 21:05:59 +0100

Simplify some size-based weapon handedness checks
Don't distinguish between little (Spriggan) and small (Halfling/Kobold) for
the purposes of weapon wieldability or handedness. Size still causes some
weapons to change from one- to two-handed but having even further distinctions
between the smaller races was just unnecessarily complicated.

Allows spriggans to wield triple crossbows, and makes morningstars,
eveningstars, long swords, scimitars, demon blades, war axes, spears, demon
tridents and greatslings one handed for them. Also removes some special-casing
for dire flails and great maces that made them one-handed for big or giant
monsters, since monsters ignored it anyway most of the time (when being given
weapons on initial generation, as opposed to when picking items up).

--------------------------------------------------------------------------------
45a45866e5 | Chris Campbell | 2016-09-10 20:24:25 +0100

Adjust some A screen messages
Don't display ring of flames, recolour Hepliaklqana frailty to lightred.

--------------------------------------------------------------------------------
818868bf92 | Nicholas Feinberg | 2016-09-10 10:50:46 -0700

Improve hex power debug messaging

--------------------------------------------------------------------------------
206c0457c3 | Nicholas Feinberg | 2016-09-10 10:18:52 -0700

Refactor player hp/mp/stat colour options
Removes support for an undocumented option: "hp_colour = red"
was previously equivalent to "hp_colour = 100:red".

Also fixes a crash if you specified an elemental colour (e.g.
'magic') for these options when in anything other than a local
tiles build.

--------------------------------------------------------------------------------
d9e467d4bc | Nicholas Feinberg | 2016-09-10 09:24:22 -0700

Remove the zombie HP colour option
Since undead HP is now visible normally.

--------------------------------------------------------------------------------
5362668c93 | Implojin | 2016-09-10 09:03:50 -0700

List Hep frail HP with mutations
It wasn't listed anywhere except the god ability window, which
persistently confused players.

--------------------------------------------------------------------------------
0d7b9fc7d5 | Nicholas Feinberg | 2016-09-10 08:48:55 -0700

Improve curses option error reporting

--------------------------------------------------------------------------------
a55bd9c2b4 | Nicholas Feinberg | 2016-09-10 08:42:48 -0700

Warn for bad rcfile boolean options
Instead of silently failing.

--------------------------------------------------------------------------------
0b85ae9def | Nicholas Feinberg | 2016-09-09 18:21:19 -0700

Disallow instadeath from form ending
Instead, you enter emergency flight. This also happens when ice
form ends in deep water, which is pretty silly, but the old
behaviour was to strand you in deep water without explanation,
which is probably worse.

--------------------------------------------------------------------------------
263cb6dfc3 | gammafunk | 2016-09-09 16:55:16 -0500

Tweak the behaviour of Dragon's Call at low MP and when recasting
Previously the duration of dragon's call would automatically expire when
the caster had less than 2mp. This meant that casting the spell at MP
values close to 9 was either useless or got you an overpriced dragon.
This commit simply makes the spell not summon a dragon when MP is
insufficient, printing a message to that effect. Players can gain 2 or 3
MP quickly through MP regen, god powers, and consumables, so this change
will allow them to take advantage of the spell when those are available.

In addition, the player can no longer recast the spell when the main
dureation is active. This was previously away to avoid the cooldown
period entirely if the player wanted to cast the spell repeatedly.

--------------------------------------------------------------------------------
fc80c20508 | Nicholas Feinberg | 2016-09-09 09:20:34 -0700

Tweak Strip Resistance casting logic

--------------------------------------------------------------------------------
0142e3fd4e | Nicholas Feinberg | 2016-09-09 08:24:30 -0700

Fix a Dith/Shadow Creatures crash (10666)
Broken by 6871f4b479f2a5b.

--------------------------------------------------------------------------------
dfa627ff73 | Nicholas Feinberg | 2016-09-08 22:15:02 -0700

Add default force_more for stair-drowning (10665)

--------------------------------------------------------------------------------
d0fcaa6b86 | Chris Campbell | 2016-09-09 03:22:03 +0100

Remove a memorisation check for unidentified books

--------------------------------------------------------------------------------
f46b2cedc9 | Don Collins | 2016-09-08 12:10:59 -0400

Prompt for confirmation before eating mutagenic/forbidden/noxious food

--------------------------------------------------------------------------------
ce1cc9009a | Nicholas Feinberg | 2016-09-08 08:20:23 -0700

Merge pull request #354 from suncrab/lua-inscription
Lua: Expose inscriptions as item property
--------------------------------------------------------------------------------
52a98e4fbb | Don Collins | 2016-09-08 11:12:27 -0400

Lua: Expose inscriptions as item property

--------------------------------------------------------------------------------
5dd3618561 | Nicholas Feinberg | 2016-09-07 19:46:59 -0700

Fix a memory leak

--------------------------------------------------------------------------------
a7827471a7 | Chris Campbell | 2016-09-07 21:01:41 +0100

Simply Virulence to only apply rPois-
Removes its irresistible poison-multiplying effect - its only caster already
has a great number of different ways to apply poison, so having this spell also
apply more poison sometimes made the spell a fair bit more complex for not much
benefit.

--------------------------------------------------------------------------------
1d9f490b89 | Chris Campbell | 2016-09-07 21:01:41 +0100

Give sixfirhies rElec+++
Instead of just a single level.

--------------------------------------------------------------------------------
96ce7ed71c | Nicholas Feinberg | 2016-09-07 12:42:56 -0700

Re-add rest_delay option (oops)

--------------------------------------------------------------------------------
dd0a8653c2 | Implojin | 2016-09-07 20:19:12 +0100

Show spell noise descriptors on the I/Z window toggle.
The redundant spell level column on the window toggle was removed to make
space for the noise column.

This commit also fixes a one space misalignment in the column headers.

--------------------------------------------------------------------------------
a29127b4fe | Nicholas Feinberg | 2016-09-07 09:56:25 -0700

More dgamelaunch fix attempts

--------------------------------------------------------------------------------
c3d40638d6 | Nicholas Feinberg | 2016-09-07 08:50:56 -0700

Hopefully fix save loading

--------------------------------------------------------------------------------
48cd44eb86 | Nicholas Feinberg | 2016-09-07 08:49:49 -0700

Simplify OS X save dir logic
Allows it to support -dir, among other things.

--------------------------------------------------------------------------------
a9fd55e034 | Nicholas Feinberg | 2016-09-06 23:38:07 -0700

More initfile.cc cleanup

--------------------------------------------------------------------------------
5bf38a35ad | Nicholas Feinberg | 2016-09-06 23:38:04 -0700

Move minimap colour options into data

--------------------------------------------------------------------------------
209975eec4 | Nicholas Feinberg | 2016-09-06 23:37:01 -0700

Move pizzas into data

--------------------------------------------------------------------------------
b807963d0f | Nicholas Feinberg | 2016-09-06 23:37:01 -0700

Remove another unsettable option

--------------------------------------------------------------------------------
9595cbcac2 | Nicholas Feinberg | 2016-09-06 23:37:01 -0700

Move more int options into data

--------------------------------------------------------------------------------
4897807b86 | Nicholas Feinberg | 2016-09-06 23:36:55 -0700

Move simple string options into data

--------------------------------------------------------------------------------
70f7bc439e | Nicholas Feinberg | 2016-09-06 23:36:19 -0700

Move simple list options into data

--------------------------------------------------------------------------------
add8c0be90 | Nicholas Feinberg | 2016-09-06 23:36:19 -0700

Move int options into data

--------------------------------------------------------------------------------
22b721ca58 | Nicholas Feinberg | 2016-09-06 23:36:18 -0700

Move curses 'brand' options into data

--------------------------------------------------------------------------------
a1d997ebbd | Nicholas Feinberg | 2016-09-06 23:36:18 -0700

Move most colour options into data

--------------------------------------------------------------------------------
25277184f6 | Nicholas Feinberg | 2016-09-06 23:36:15 -0700

Support bool options with multiple names

--------------------------------------------------------------------------------
5a4ca11f50 | Nicholas Feinberg | 2016-09-06 23:36:15 -0700

Refactor simple boolean initfile options

--------------------------------------------------------------------------------
e495c4fe7d | Nicholas Feinberg | 2016-09-06 23:36:14 -0700

Add game-options file

--------------------------------------------------------------------------------
c8e5b16a28 | Nicholas Feinberg | 2016-09-06 22:47:50 -0700

Fix a warning (AF_MIASMATA, monster)

--------------------------------------------------------------------------------
e013c26e71 | Nicholas Feinberg | 2016-09-06 18:05:12 -0700

Fix nil beholder removal crash (cojito)
The root problem is that you can be mesmerized while climbing the
stairs, and it's not cleared when you get to the next level.

Crash introduced by a8b2baea54554bf9.

--------------------------------------------------------------------------------
77de427b8f | gammafunk | 2016-09-06 18:42:32 -0500

Replace Throw with Throw Ally on Iron Giants
The Throw implementation was meant to be more about fun ways to
reposition the player that involved landing next to dangerous things or
unexplored areas with dangerous things. In practice the ability was much
more about giving the monster undodgeable damage and more chances to
pelt you with ranged attacks. It didn't help that iron giants are almost
always the most dangerous thing on the level already, so you tended to
land next to less dangerous things.

Remove this ability and give iron giants the ability to throw any
aligned monster at you instead. This can put nasty things next to the
player that often bog them down, giving the iron giant the chance to get
closer. It also will set up more instances of the iron giant's
line-of-fire being blocked by relatively trivial monsters that happen to
be nearby. Maybe a future tweak can look into having iron giants select
only sufficiently nasty monsters to throw in the first place, or
possibly favoring landing sites that are more likely to slow down the
player's escape.

Some other fun player-repositioning monster ability might well be
introduced later, leading to many player deaths and the consternation of
elf-lickers everywhere. One idea we discussed is a kind of
teleportitis-other that seeks to land players next to hostiles, much
like the mutation, but it would need further thought.

--------------------------------------------------------------------------------
f2373cbd01 | Chris Campbell | 2016-09-07 00:24:22 +0100

Remove a non-optional option (PleasingFungus)

--------------------------------------------------------------------------------
28a4b0876c | Chris Campbell | 2016-09-07 00:24:22 +0100

Reduce Makhleb major destruction range for squarelos
From 6 to 5 - as with breath weapons, this was missed with the rest of the
squarelos range reductions.

--------------------------------------------------------------------------------
698bcb5d33 | Chris Campbell | 2016-09-07 00:22:54 +0100

Increase sticky flame breath range to 3
To slightly improve it compared to other draconian breath weapons while making
it a bit more different to the sticky flame spell. Closes #326 PR.

--------------------------------------------------------------------------------
567cada9db | Chris Campbell | 2016-09-07 00:21:06 +0100

Make MUT_SPIT_POISON a two level mutation
Since only 2 levels were actually attainable - Nagas started with level 2, and
could upgrade it to level 3 for poison breath, and no other species can gain
the mutation.

--------------------------------------------------------------------------------
56506059b8 | Chris Campbell | 2016-09-06 22:57:47 +0100

Merge pull request #353 from alexjurkiewicz/scales-tweaks
Scales tweaks
--------------------------------------------------------------------------------
209f00305e | Chris Campbell | 2016-09-06 22:50:40 +0100

Undocument a removed option

--------------------------------------------------------------------------------
40ef93dfd5 | Chris Campbell | 2016-09-06 22:33:29 +0100

Remove an undocumented option
Making it so that 'y' instead of 'o' continues autoexplore in some
circumstances probably isn't very useful functionality.

--------------------------------------------------------------------------------
52181cd2a2 | Isaac Sloat | 2016-09-06 14:49:25 -0500

Auto-ID manuals the player steps on
Having to pick up the manual to see what it'd train was annoying and
inconsistent with book behavior.

--------------------------------------------------------------------------------
78360a35fd | Alex Jurkiewicz | 2016-09-06 12:38:41 +1000

Shift large bone plates bonus to pure SH
From +AC = +SH = mutlevel*2 to +SH = mutlevel*4

--------------------------------------------------------------------------------
1b4e872541 | Alex Jurkiewicz | 2016-09-06 12:35:45 +1000

Remove rough black scales mutation
Not particularly interesting, overlaps with other scales

--------------------------------------------------------------------------------
32fba05dfb | Nicholas Feinberg | 2016-09-05 14:39:20 -0700

Turn Desolation spawn rate back down
To ~15% or so. We've gotten a good amount of feedback for now,
and we don't need to wear out our welcome.

--------------------------------------------------------------------------------
c747e27828 | ontoclasm | 2016-09-05 14:15:05 -0500

Bottle Blood icon

--------------------------------------------------------------------------------
822e787b14 | ontoclasm | 2016-09-05 14:10:23 -0500

Redone command button icons

--------------------------------------------------------------------------------
889e34bb27 | Nicholas Feinberg | 2016-09-05 09:55:07 -0700

Fix HO/orc priest crash (Brannock)
Introduced by a8b2baea.

--------------------------------------------------------------------------------
cd7e1eef16 | Alan Malloy | 2016-09-05 09:18:53 -0700

Use the reference instead of array indexing over and over

--------------------------------------------------------------------------------
7e858c24e4 | Michael Del Monte | 2016-09-05 08:53:57 -0700

Add an auto_butcher option
If set, auto-travels to and butchers edible corpses.

Possibly this behaviour should just be the default for players
without other uses for corpses (Fedhas or necromancy)?

Closes #345

--------------------------------------------------------------------------------
21b590487d | Catherine Ball | 2016-09-05 08:11:40 -0700

Clarify ctrl+click casting in tutorial (10653)
Closes #349

--------------------------------------------------------------------------------
5eeaafcf08 | Shmuale Mark | 2016-09-05 17:21:16 +0300

Simplify weights.

--------------------------------------------------------------------------------
4a69e283b5 | Neil Moore | 2016-09-05 08:47:44 -0400

Perform only implicit conversions in random_choose_weighted.
static_cast<>ing all the choice arguments to the type of the first one
might perform explicit-only conversions such as integer-to-enum or
unsafe pointer downcasts.  Instead, rely on implicit conversions only,
by giving all the arguments the same type.

Calls that pass enumerators of different types, such as the colour
choices in abyss.cc, must explicitly specify the template parameter as
an integral type that is implicitly convertable from every parameter.

--------------------------------------------------------------------------------
1485906a67 | Alan Malloy | 2016-09-05 01:36:57 -0700

Remove now-unnecessary 0 sentinel in random_choose_weighted

--------------------------------------------------------------------------------
7db0936f4e | Alan Malloy | 2016-09-05 01:36:57 -0700

Remove char* overload for r_c_w now that it's templated right

--------------------------------------------------------------------------------
a8315b2fc9 | Alan Malloy | 2016-09-05 01:36:56 -0700

Modernize random_choose_weighted
Replaced its use of va_args with a recursive template.
New clang builds point out that our use of va_arg was undefined
behaviour because enum values getting autopromoted to ints was
breaking the va_arg contract.

--------------------------------------------------------------------------------
e808afc3bc | gammafunk | 2016-09-04 23:54:41 -0500

Fix a compilation warning

--------------------------------------------------------------------------------
ba947273d4 | Alan Malloy | 2016-09-04 21:35:19 -0700

Fix some silly code left by my refactoring script

--------------------------------------------------------------------------------
9b58ed87b5 | ontoclasm | 2016-09-04 23:23:25 -0500

Simpler Skill tab icon

--------------------------------------------------------------------------------
3b32ff54d1 | Alan Malloy | 2016-09-04 20:50:15 -0700

Convert more functions to take monster&

--------------------------------------------------------------------------------
cc6e35bbd4 | ontoclasm | 2016-09-04 22:26:15 -0500

New interface tab icons for local Crawl

--------------------------------------------------------------------------------
404817c82a | ontoclasm | 2016-09-04 22:26:15 -0500

Clearer Idealization icon

--------------------------------------------------------------------------------
5aac74d35c | Alex Jurkiewicz | 2016-09-04 19:16:51 -0700

Remove blink frog & sixfirhy brand damage healing (#347)
Game impact from both is minimal, it's really just encouragement for a

few types of character to carry a backup weapon to deal with a single

enemy type, which isn't very interesting.
--------------------------------------------------------------------------------
932844ab28 | Alan Malloy | 2016-09-04 14:16:24 -0700

Finish converting mon-util functions to take monster&

--------------------------------------------------------------------------------
49be32dac0 | Nicholas Feinberg | 2016-09-04 13:11:03 -0700

Refactor mgen_data::hostile_at()
// [ds] Why is hostile_at() saddled with unnecessary parameters
// related to summoning?

--------------------------------------------------------------------------------
3c45bd1f1c | Nicholas Feinberg | 2016-09-04 13:11:03 -0700

Remove a superfluous check

--------------------------------------------------------------------------------
bb6a227176 | Chris Campbell | 2016-09-04 20:53:37 +0100

Update Shadow Form description (#10648)

--------------------------------------------------------------------------------
3041bf0e95 | Chris Campbell | 2016-09-04 20:36:04 +0100

Improve messaging for monster-cast Trog's Hand

--------------------------------------------------------------------------------
cbe4fa44a8 | Nicholas Feinberg | 2016-09-04 12:30:40 -0700

Make Hep wrath work w/XP-gate effects (CanOfWorms)
Such as other gods' wrath (summons, etc), Abyss exit spawning,
the Evolution mutation... and so on.

Patch written by CanOfWorms and slightly touched up by the
committer, me.

--------------------------------------------------------------------------------
63ffb61cca | Nicholas Feinberg | 2016-09-04 12:30:31 -0700

Deduplicate more summoning code

--------------------------------------------------------------------------------
e5acd02a37 | Nicholas Feinberg | 2016-09-04 12:30:31 -0700

Deduplicate some ally-summoning code

--------------------------------------------------------------------------------
efbf081568 | Nicholas Feinberg | 2016-09-04 12:30:31 -0700

Deduplicate some tentacle-spawning code

--------------------------------------------------------------------------------
0b11419425 | Nicholas Feinberg | 2016-09-04 12:30:31 -0700

Refactor summoned monster creation (somewhat)

--------------------------------------------------------------------------------
59ada7ff35 | Nicholas Feinberg | 2016-09-04 12:30:31 -0700

mgen_data refactoring

--------------------------------------------------------------------------------
a8914a1e3a | Nicholas Feinberg | 2016-09-04 12:30:31 -0700

Remove an unused mgen param

--------------------------------------------------------------------------------
a8b2baea54 | Alan Malloy | 2016-09-04 12:28:02 -0700

Make more functions take monster& instead of monster*

--------------------------------------------------------------------------------
1ccab89d0b | Chris Campbell | 2016-09-04 19:36:41 +0100

Adjust trove_jewellery_1 contents for consistency with similar troves (#10016)

--------------------------------------------------------------------------------
061ea5a858 | Chris Campbell | 2016-09-04 19:15:15 +0100

Make berserkitis and clarity mutations conflict (#10395)

--------------------------------------------------------------------------------
78cda761a4 | Chris Campbell | 2016-09-04 18:25:09 +0100

Make clarity give immunity to fear

--------------------------------------------------------------------------------
039fe6a59f | Chris Campbell | 2016-09-04 18:20:51 +0100

Fix various forced movements not interrupting delays (such as Passwall)

--------------------------------------------------------------------------------
4c5bc50c31 | Chris Campbell | 2016-09-04 17:29:38 +0100

Increase Full Vampire regeneration rate
To the same as the old Alive rate (+20 rather than +10, half a REGEN_PIP), to
make it more noticeable and desirable, especially since maintaining Full
requires slightly more effort now.

--------------------------------------------------------------------------------
3ab767843a | Chris Campbell | 2016-09-04 17:26:57 +0100

Adjust some Vampire messages and statuses
Display "Alive" as green rather than lightgreen, so that all hunger levels in
each tier have the same colour for clarity (Alive/Very Full/Full, none,
Thirsty/Very Thirsty/Near Bloodless, Bloodless).

--------------------------------------------------------------------------------
1d6ee6a9f5 | Chris Campbell | 2016-09-04 17:01:32 +0100

Condense Vampire blood levels from 6 to 4 distinct levels
Some of the distinctions between levels were very small, as well as the actual
hunger boundary being narrow (in particular for Near Bloodless), resulting in
blood level management being unecessarily more complicated. Near Bloodless is
merged into Thirsty, and Alive is merged into Full. Metabolism rates (which
were previously even more fine-grained than everything else) are merged to also
have 4 distinct levels.

Also removes a special case for batform hunger, and slightly improves batform's
stealth modifier such that it's the same as Bloodless non-batform stealth
modifier (instead of having batform make you stealthier if Satiated/Thirsty but
less stealthy if bloodless).

--------------------------------------------------------------------------------
588dc29ffe | Neil Moore | 2016-09-04 11:18:12 -0400

Extract and deduplicate a Makefile shell script.

--------------------------------------------------------------------------------
9a3cd91612 | Neil Moore | 2016-09-04 10:57:06 -0400

Be more posixly correct.

--------------------------------------------------------------------------------
d6a8835d70 | Nikolay Amiantov | 2016-09-04 17:55:15 +0300

Allow symlinks when searching for fonts

--------------------------------------------------------------------------------
7290d0076c | Neil Moore | 2016-09-04 09:46:00 -0400

Use a better German translation for the Hell gate.
Rather than a retranslation of Ciardi's English version.

[skip ci]

--------------------------------------------------------------------------------
47b21157b1 | Neil Moore | 2016-09-04 09:26:43 -0400

Fix a pair of German quotes (Jafet)
The Nietzche quote had been translated through English and back; return to
the original. Take the Carrol quote from a professional translation, in
particular one that fully translates the name of the book—amusing though
"Through der Spiegel" might be.

[skip ci]

--------------------------------------------------------------------------------
0059a8f82d | Alan Malloy | 2016-09-04 04:22:11 -0700

Make some more mon-util functions take monster&

--------------------------------------------------------------------------------
9c007ba5b2 | Alan Malloy | 2016-09-04 02:55:53 -0700

Make more mon-util functions take monster&
- get_mons_resist
- monster_resists_this_poison
- mons_gives_xp
- give_monster_proper_name
- mons_flattens_trees
- mons_itemuse
- exper_value
- mons_immune_magic
- discover_shifter
- mons_wields_two_weapons
- mons_self_destructs

--------------------------------------------------------------------------------
1bf61fec2f | Alan Malloy | 2016-09-04 02:09:24 -0700

Convert more functions to take monster&
Specifically, everything that touches get_tentacle_head, since they
all needed to be updated at once to allow changing get_tentacle_head
to take a monster& itself.

--------------------------------------------------------------------------------
e767ae7b27 | Alan Malloy | 2016-09-04 01:38:43 -0700

Make mons_looks_{stabbable,distracted} take monster&

--------------------------------------------------------------------------------
eee2642f07 | Alan Malloy | 2016-09-04 01:36:23 -0700

Make mons_is_batty take monster&

--------------------------------------------------------------------------------
27d742ec3c | Alan Malloy | 2016-09-04 01:33:40 -0700

Make mons_is_immotile take monster&

--------------------------------------------------------------------------------
ddeda741e5 | Alan Malloy | 2016-09-04 01:33:34 -0700

Make mons_is_firewood take monster&

--------------------------------------------------------------------------------
1c65f5a624 | Alan Malloy | 2016-09-04 00:29:32 -0700

Remove a check that can never fail

--------------------------------------------------------------------------------
74687b5aeb | Alan Malloy | 2016-09-04 00:29:32 -0700

Make simple_monster_message take monster&

--------------------------------------------------------------------------------
e0ce5ceeb6 | Alan Malloy | 2016-09-04 00:29:32 -0700

Make do_slow_monster take monster&

--------------------------------------------------------------------------------
a61c852f2b | Alan Malloy | 2016-09-04 00:29:32 -0700

Remove the prototype of a removed function (RIP landlubbers)

--------------------------------------------------------------------------------
0c1e9a7a23 | Nicholas Feinberg | 2016-09-03 23:36:01 -0700

Comment typo fix
gammadunked again...
--------------------------------------------------------------------------------
902f63d140 | Nicholas Feinberg | 2016-09-03 19:59:42 -0700

Add a pillar of salt entry for Desolation

--------------------------------------------------------------------------------
390288ddae | Nicholas Feinberg | 2016-09-03 19:35:42 -0700

Support mapdef-placed pillars of salt

--------------------------------------------------------------------------------
d7735b007e | Chris Campbell | 2016-09-03 23:25:09 +0100

Remove an unused band type (PleasingFungus)

--------------------------------------------------------------------------------
1264885cdf | Chris Campbell | 2016-09-03 22:47:38 +0100

Differentiate Halfling/Kobold apts and stats once again
Gives Kobolds better intelligence and casting apts, but some slightly worse
weapon apts. Halflings get slightly better strength and dexterity but worse
intelligence, as well as improved and flatter weapon apts. Attempts to give
Kobolds more of a niche as a small ~caster~ species, while strengthening
Halflings' current place as a small species with high defenses and HP but worse
spellcasting ability and much less stealth focus compared to Ko/Sp.

--------------------------------------------------------------------------------
12ed078388 | Chris Campbell | 2016-09-03 16:31:51 +0100

Update Uskayaw's name in the changelog

--------------------------------------------------------------------------------
e9d0df4254 | Chris Campbell | 2016-09-03 16:29:31 +0100

Adjust some changelog entries

--------------------------------------------------------------------------------
1491b2011d | Chris Campbell | 2016-09-03 10:09:37 +0100

Adjust iron giant bands
To only place ancient champions, rather than the stone giant option - since
they're now a Dis-only monster, the stone giants were a bit out of place.

--------------------------------------------------------------------------------
582fb70419 | Alan Malloy | 2016-09-02 22:33:07 -0700

Use apply_visible_monsters in decks.cc

--------------------------------------------------------------------------------
7e339c60f9 | Alan Malloy | 2016-09-02 22:33:07 -0700

Make actor::corrode_equipment return a bool
It can be useful to know whether the corrosion attempt succeeded.

--------------------------------------------------------------------------------
b4ed0adc6d | Alan Malloy | 2016-09-02 22:33:07 -0700

Move apply_monsters_around_square into mon-util
Also change it to return just a boolean, whether any monster was
affected, since that's all anyone was actually using it for.

Added apply_visible_monsters as well, which does the same thing but
for a different set of monsters (those in LOS).

--------------------------------------------------------------------------------
400586e029 | Alan Malloy | 2016-09-02 22:33:07 -0700

Give more meaningful name to parameter

--------------------------------------------------------------------------------
054f2e6c3a | Alan Malloy | 2016-09-02 22:33:07 -0700

Simplify handling of deck power levels

--------------------------------------------------------------------------------
925ab60fb9 | Alan Malloy | 2016-09-02 22:33:06 -0700

Simplify retry code for Wrath card

--------------------------------------------------------------------------------
0ece2656fc | Alan Malloy | 2016-09-02 22:33:06 -0700

Replace if/else tree with switch/case

--------------------------------------------------------------------------------
ca1aa1dd60 | Nicholas Feinberg | 2016-09-02 21:57:54 -0700

Merge pull request #344 from isloat/revival
Rename 'dead' to 'pending_revival' (|amethyst)
--------------------------------------------------------------------------------
858c258450 | Nicholas Feinberg | 2016-09-02 21:54:41 -0700

Hackily, fix a fcloud crash (10647)
Someone should investigate this and fix it properly.

--------------------------------------------------------------------------------
9be4258832 | Isaac Sloat | 2016-09-02 21:48:57 -0500

Rename 'dead' to 'pending_revival' (|amethyst)
Clarify what's happening in the case of felids/wizmode, and also doesn't
overlap terribly with lots of other text.

--------------------------------------------------------------------------------
bb462caebe | Chris Campbell | 2016-09-03 02:53:40 +0100

Don't make teleporting in Labyrinths amuse Xom
Since there's no longer any special-casing for where the teleport lands you.

--------------------------------------------------------------------------------
c3ca36a402 | Chris Campbell | 2016-09-03 02:19:36 +0100

Fix duplicated messaging for AF_ROT attacks

--------------------------------------------------------------------------------
0f70ad1249 | Chris Campbell | 2016-09-03 02:07:14 +0100

Fix stats not being redrawn when casting Excruciating Wounds (#10646)
The logic for this went missing with the code simplification when Warp Weapon
was removed, oops!

--------------------------------------------------------------------------------
c724cc05e7 | Chris Campbell | 2016-09-03 02:07:14 +0100

Fix monsters casting spells at timestepped players (#10617)
Since stepping from time places the player at 0,0, monsters in the top-left
corner of the map were still able to try to cast some spells at players stepped
from time (resulting in massive corrosion or stat drain, for example).

--------------------------------------------------------------------------------
0e2e422914 | Chris Campbell | 2016-09-03 02:07:14 +0100

Replace Tzitzimitl miasma attacks with direct slowing and rotting
Surrounding the target with miasma was mostly ineffective, since once the
player gets adjacent to a Tzitzimitl they're probably happy to stay there and
kill it rather than run through miasma. Rather than the suggested alternative
of placing the miasma cloud on the player's square, just apply miasma's effects
directly - this has the advantage of still partially working on undead players.
Reduce melee damage slightly to compensate for the more dangerous attack brands.

--------------------------------------------------------------------------------
d925bfa467 | Neil Moore | 2016-09-02 17:43:47 -0400

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
615db6b6e9 | Neil Moore | 2016-09-02 17:43:24 -0400

Fix g++ 4.7 compilation.
For some reason, initializing a mons_spell_logic from a braced initializer
list containing a mons_spell_logic is not working in that version, despite
there being a copy constructor.  I suspect it's trying to initialise the
first member of mons_spell_logic from a mons_spell_logic, rather than
calling the copy constructor, but the error messages don't entirely back
that up.

In any event, the braces are unnecessary here, so this version will work
with any C++11 compiler.

--------------------------------------------------------------------------------
c8680287a4 | gammafunk | 2016-09-02 16:24:44 -0500

Fix a compilation warning

--------------------------------------------------------------------------------
9226b9c3a4 | Nicholas Feinberg | 2016-09-02 14:22:45 -0700

Changelog through 0.19-a0-1375-g616abca

--------------------------------------------------------------------------------
616abca6c5 | regret-index | 2016-09-02 17:18:29 -0400

Once more, adjust Forceful Invitation and Plane Rend
Both branch-summon spells now consistently have trios for each of their branch
sets (instead of the occasional quartet). Outliers were cleaned up, mostly
those too strong for worldbinders and too weak for corrupters. Plane Rend also
loses its Lair and Orc sets, as those early branches are neither exotic nor
that interesting to select from for a summoner in Pan.

--------------------------------------------------------------------------------
5371f7f663 | Nicholas Feinberg | 2016-09-02 11:50:12 -0700

Move beam-targeted mons hexes into data
They all now consistently use the insane MR-estimating logic;
possibly none of them should?

Also, it's very strange that only some of them, seemingly
arbitrarily, check whether the player already suffers from the
given hex before casting it. Why Corona and not Slow, say?

--------------------------------------------------------------------------------
933b6c96a2 | Nicholas Feinberg | 2016-09-02 11:50:12 -0700

Move various monster spells into zaps

--------------------------------------------------------------------------------
b7d0e92fe4 | Nicholas Feinberg | 2016-09-02 11:50:12 -0700

Re-prioritize player spellcasting logic
Check for zaps *after* the big switch-case. This allows us to have
zaps for monster spells that don't use zaps in the player version.

--------------------------------------------------------------------------------
8dc3556e5e | Nicholas Feinberg | 2016-09-02 11:50:12 -0700

Deduplicate some hex boilerplate
Would be nice to deduplicate player hexes as well (would only
require a to_hit (aka ench power) argument), but I'm not sure how
to work the relevant template magic.

--------------------------------------------------------------------------------
f9d70b7c67 | Nicholas Feinberg | 2016-09-02 11:50:12 -0700

Use a better spell skill constant

--------------------------------------------------------------------------------
60827837e1 | Nicholas Feinberg | 2016-09-02 11:50:12 -0700

Simplify is_player_same_genus()
Remove an old, irrelevant ghoul special case.

--------------------------------------------------------------------------------
41a3d51acf | Alan Malloy | 2016-09-02 00:03:52 -0700

Invert awkward negative boolean condition

--------------------------------------------------------------------------------
87b5bc6488 | Nicholas Feinberg | 2016-09-01 22:34:07 -0700

Merge pull request #343 from isloat/gateway-fix
Fix Desolation portal description
--------------------------------------------------------------------------------
9bd07a15c9 | Isaac Sloat | 2016-09-02 00:25:29 -0500

Fix Desolation portal description
Turns out I forgot to edit the entry in feature-data.h, so it wasn't
showing the portal description at all!

--------------------------------------------------------------------------------
b34f4cb729 | Neil Moore | 2016-09-01 22:19:28 -0400

Undocument a nonexistent arena option (Styar)
The option was added in 0.5-a0-1545-g372b7c5, documented a week later
in 0.5-a0-1735-g8767119, and removed less than a year later in
0.6.0-a1-481-g934725f.

[skip ci]

--------------------------------------------------------------------------------
5fc61efc56 | Nicholas Feinberg | 2016-09-01 17:10:38 -0700

Diversify Desolation loot somewhat (gammafunk)
This might be too weak, again.

--------------------------------------------------------------------------------
91b9c939db | Nicholas Feinberg | 2016-09-01 17:06:25 -0700

Give halazid warlocks lich rC++
For consistency.

--------------------------------------------------------------------------------
f3761dfed2 | Nicholas Feinberg | 2016-09-01 17:02:23 -0700

Remove saltling elemental resists
They were added as essentially a copy-paste of other golem enemies,
but they aren't necessary for the design, and there are plenty of
other elements that identify them as golems. It's not necessary to
fill the *entirety* of Desolation with elementally-resistant
enemies.

--------------------------------------------------------------------------------
42bf4bf140 | Nicholas Feinberg | 2016-09-01 14:24:04 -0700

Swap out vault sentinels in Desolation
*WAY* too brutal. Trade them out for convokers, per gammafunk's
suggestion.

--------------------------------------------------------------------------------
72464c0aca | Nicholas Feinberg | 2016-09-01 14:24:04 -0700

Refactor monster special-case spell targetting

--------------------------------------------------------------------------------
b824e12451 | Nicholas Feinberg | 2016-09-01 14:24:04 -0700

Refactor monster beam buffs

--------------------------------------------------------------------------------
5ec828e819 | Nicholas Feinberg | 2016-09-01 12:06:23 -0700

Merge pull request #342 from isloat/dith-flaming-piety
Dithmenos now gives piety for killing flaming dancing weapons (10417)
--------------------------------------------------------------------------------
6871f4b479 | Naruni | 2016-09-01 14:01:27 -0500

Dithmenos now gives piety for killing flaming dancing weapons
Signed-off-by: Naruni <kram321@gmail.com>

--------------------------------------------------------------------------------
eadf46ccf9 | Nicholas Feinberg | 2016-09-01 11:41:14 -0700

Merge pull request #341 from isloat/water-walk-pathing
Allow waterwalkers to autoexplore deep water (10503)
--------------------------------------------------------------------------------
85929694eb | Isaac Sloat | 2016-09-01 13:38:05 -0500

Allow waterwalkers to autoexplore deep water (10503)

--------------------------------------------------------------------------------
df1bd916ae | Isaac Sloat | 2016-09-01 13:08:00 -0500

Cantrip message variety (9055, Xelif)

--------------------------------------------------------------------------------
8afc0f8604 | Nicholas Feinberg | 2016-09-01 10:42:53 -0700

Brace.

--------------------------------------------------------------------------------
083cf6bb24 | Nicholas Feinberg | 2016-09-01 10:42:46 -0700

Constify

--------------------------------------------------------------------------------
7527e19aff | Nicholas Feinberg | 2016-09-01 10:42:39 -0700

Merge pull request #339 from isloat/damage-reflection-messaging
Clarify which monster reflects damage (3774)
--------------------------------------------------------------------------------
f159994dd4 | Isaac Sloat | 2016-09-01 12:37:17 -0500

Clarify which monster reflects damage (3774)
Doesn't cleanly handle the case where the monster is killed while
reflecting damage (since the monster no longer exists to have its name
called), but fixing that apparently may go on to cause more issues with
messaging.

--------------------------------------------------------------------------------
179e9fc056 | Nicholas Feinberg | 2016-09-01 09:22:06 -0700

Refactor set_allied_target()

--------------------------------------------------------------------------------
0eaebcc183 | Nicholas Feinberg | 2016-09-01 09:20:45 -0700

Simplify monster alignment logic

--------------------------------------------------------------------------------
3715fbb09a | Nicholas Feinberg | 2016-09-01 08:32:59 -0700

Mark Bai as genus dragon (argonaut)
Probably doesn't matter, but seems tidy.

--------------------------------------------------------------------------------
eb911b2244 | Nicholas Feinberg | 2016-08-31 23:25:24 -0700

Slightly simplify _set_allied_target()

--------------------------------------------------------------------------------
7941943544 | Nicholas Feinberg | 2016-08-31 22:39:28 -0700

Remove spiked barbs (Brannock, geekosaur)

--------------------------------------------------------------------------------
8f4636a67a | Nicholas Feinberg | 2016-08-31 22:31:47 -0700

Remove barbed barbs (Brannock)

--------------------------------------------------------------------------------
0798fd62e1 | Nicholas Feinberg | 2016-08-31 22:28:45 -0700

Let Darkness end in death! (gwarl)
...for felids.

--------------------------------------------------------------------------------
0097d33825 | Nicholas Feinberg | 2016-08-31 22:06:38 -0700

Genericify manticore spikes (Brannock)
To "barbed spikes", since they're also used by peacekeepers now.

--------------------------------------------------------------------------------
37e015dbc5 | Nicholas Feinberg | 2016-08-31 21:56:24 -0700

Remove a now-redundant Salamander Mystic case
Oops...

--------------------------------------------------------------------------------
3513869e79 | Nicholas Feinberg | 2016-08-31 17:41:17 -0700

Deduplicate monster summoning code

--------------------------------------------------------------------------------
0b4cb62360 | Nicholas Feinberg | 2016-08-31 16:54:02 -0700

Merge pull request #337 from isloat/new_salt_entry_desc
New Desolation entry description
--------------------------------------------------------------------------------
55efef02da | Isaac Sloat | 2016-08-31 16:21:06 -0500

Reorganize features.txt
Now divided into these categories: altars, terrain, features, branch
entrances/exits, doors, traps, portal entrances, special vault
definitions, sprint, and tutorial.

--------------------------------------------------------------------------------
78ef576a4b | Isaac Sloat | 2016-08-31 15:40:01 -0500

Adjust Salt gateway description.
To match new tile.

--------------------------------------------------------------------------------
9bf5fb02f3 | Nicholas Feinberg | 2016-08-31 12:41:53 -0700

Desolation entry tiles (CanOfWorms)

--------------------------------------------------------------------------------
af702f0c59 | Nicholas Feinberg | 2016-08-31 12:13:55 -0700

Don't throw goblins at themselves (gwarl)

--------------------------------------------------------------------------------
bb59d7906e | Nicholas Feinberg | 2016-08-31 12:13:55 -0700

Simplify the CLOUD PRIORITY SYSTEM
I'm not sure it has any reason to exist (beyond Tornado), but the
meph->poison and low duration cloud cases are almost certainly
pointless.

--------------------------------------------------------------------------------
d0c66ce4c6 | Nicholas Feinberg | 2016-08-31 12:13:55 -0700

Move monster Summon Elementals into data

--------------------------------------------------------------------------------
5255f1b765 | Nicholas Feinberg | 2016-08-31 12:13:55 -0700

Move various smitey spells into data

--------------------------------------------------------------------------------
fdc886fe15 | Nicholas Feinberg | 2016-08-31 12:13:55 -0700

Simplify away MSPELL_NO_BEAM

--------------------------------------------------------------------------------
34533ce310 | Nicholas Feinberg | 2016-08-31 12:13:55 -0700

Move Resonance Strike into 'data'

--------------------------------------------------------------------------------
7cfae4b6d0 | Nicholas Feinberg | 2016-08-31 12:13:55 -0700

Extract Smiting and _find_god

--------------------------------------------------------------------------------
686caeb649 | Nicholas Feinberg | 2016-08-31 12:13:55 -0700

Simplify death

--------------------------------------------------------------------------------
f8f3349ac1 | Chris Campbell | 2016-08-31 17:53:08 +0100

Update some feature descriptions
Also don't make orcish idol descriptions and names vary depending on who
examines them.

--------------------------------------------------------------------------------
9773eaa909 | Chris Campbell | 2016-08-31 16:37:55 +0100

Update vault monster descriptions

--------------------------------------------------------------------------------
ee3fcf681d | Nicholas Feinberg | 2016-08-30 23:30:12 -0700

Simplify sputtercasting noise

--------------------------------------------------------------------------------
09c5d0a619 | Nicholas Feinberg | 2016-08-30 23:17:17 -0700

Fix desolation exit tiles
Entrance still needs one, though.

--------------------------------------------------------------------------------
d8867a069b | Nicholas Feinberg | 2016-08-30 22:37:54 -0700

Change -Clouds to brown (gammafunk)
Since white is usually not a 'bad' status color?

--------------------------------------------------------------------------------
19eb283ec4 | Nicholas Feinberg | 2016-08-30 22:33:20 -0700

Go absolutely overboard on Desolation loot
Following a suggestion by Brannock for loot theme, a focus on
nonperishable artefacts over consumables.

--------------------------------------------------------------------------------
9a70660d68 | Nicholas Feinberg | 2016-08-30 22:05:38 -0700

Fix &{ item rendering

--------------------------------------------------------------------------------
6754052ca5 | Nicholas Feinberg | 2016-08-30 21:15:47 -0700

Tweak iron giants
Move them back to speed 10 (from 8), but reduce damage & HP
somewhat.

--------------------------------------------------------------------------------
01788472ed | Nicholas Feinberg | 2016-08-30 20:41:37 -0700

Let Salamander Mystics haste nagas
Seems like they're a bit more interesting in Snake if they can
actually interact with the other monsters!

--------------------------------------------------------------------------------
385a679df7 | Nicholas Feinberg | 2016-08-30 20:34:37 -0700

Tweak a spriggan rider message (IronicDongz)
Correct in general, and also in cases where the rider is
paralysed.

--------------------------------------------------------------------------------
a6180ab2d8 | Nicholas Feinberg | 2016-08-30 19:04:23 -0700

Simplify wizmode mutate
To avoid a couple of annoying prompts for irrelevant options with
every use. If someone was actually using those, maybe we can re-
add them on another key?

--------------------------------------------------------------------------------
e66d2b040f | Nicholas Feinberg | 2016-08-30 17:45:48 -0700

Improve wizmode &$

--------------------------------------------------------------------------------
5fe3337e86 | Chris Campbell | 2016-08-31 01:22:33 +0100

Update some more monster descriptions
Adjusts the remaining regular monsters for more style consistency. Still to do:
vault monsters, uniques.

--------------------------------------------------------------------------------
a845ca217a | Nicholas Feinberg | 2016-08-30 17:21:10 -0700

Remove two disused wizmode commands
And alias them to their alternate-case versions, for ease of use.

--------------------------------------------------------------------------------
a413a64f36 | Nicholas Feinberg | 2016-08-30 17:04:46 -0700

Wake up transferred monsters (Brannock)
Don't auto-alert them, but don't make stabbing them completely
trivial.

--------------------------------------------------------------------------------
28cac01d5a | Nicholas Feinberg | 2016-08-30 16:54:23 -0700

Bump Hep's Transfer cost
Slightly too spammable at present. Might be reasonable to make it
the second ability and Idealise the first ability, again?

--------------------------------------------------------------------------------
4cf4b606c5 | Nicholas Feinberg | 2016-08-30 16:48:41 -0700

Remove Alligator Snapping Turtles from Desolation
They felt out of place to everyone.

For variety, sprinkle in a few Vault Sentinels and Molten
Gargoyles.

--------------------------------------------------------------------------------
dcfd90a50b | Nicholas Feinberg | 2016-08-30 14:54:21 -0700

Simplify monster FIre Storm
Special cases were leftover from an earlier Salamander Stormcaller
implementation.

--------------------------------------------------------------------------------
d73034010a | Nicholas Feinberg | 2016-08-30 14:54:21 -0700

Pass mon_spell_slot into spell_logic->cast()

--------------------------------------------------------------------------------
ad2ce0fd3d | Chris Campbell | 2016-08-30 21:51:21 +0100

Remove a duplicated Cheibriados message

--------------------------------------------------------------------------------
774685b647 | Chris Campbell | 2016-08-30 21:50:28 +0100

Let Snorg berserk normally when at full health
Instead of special-casing Snorg to be much less likely to cast berserk while
at full HP, just reduce the spell weight slightly.

--------------------------------------------------------------------------------
863a663db3 | Nicholas Feinberg | 2016-08-30 12:42:29 -0700

Fix Gastronok cantrip messaging (HACK)

--------------------------------------------------------------------------------
29c95d4d93 | Nicholas Feinberg | 2016-08-30 12:36:37 -0700

Fix Heal Other (Doesnty)

--------------------------------------------------------------------------------
366b9abb3d | Nicholas Feinberg | 2016-08-30 12:32:40 -0700

Move Forceful Invitation & Planerend into data

--------------------------------------------------------------------------------
fde9c1e7cd | Nicholas Feinberg | 2016-08-30 12:06:05 -0700

Pull out _setup_fake_beam

--------------------------------------------------------------------------------
0cb339e6a4 | Nicholas Feinberg | 2016-08-30 11:54:41 -0700

Move monster Trog's Hand & Leda's into 'data'

--------------------------------------------------------------------------------
205227ef4d | Nicholas Feinberg | 2016-08-30 11:46:45 -0700

Oops

--------------------------------------------------------------------------------
006967e8af | Nicholas Feinberg | 2016-08-30 11:45:24 -0700

Make allies cautious with Refrigeration/Drain Life
They shouldn't kill the player with it, in my opinion.

--------------------------------------------------------------------------------
01986885eb | Nicholas Feinberg | 2016-08-30 11:43:42 -0700

Refactor monster Drain Life & Refrigeration

--------------------------------------------------------------------------------
f603398c04 | Nicholas Feinberg | 2016-08-30 11:33:30 -0700

Refactor cast_los_attack_spell()
Remove two unused parameters, and pass fail into the function from
Yred's Drain Life, so that we can later support warning/aborting if
no vulnerable victims are visible. (We really should support that,
by the way.)

--------------------------------------------------------------------------------
a85b488688 | Nicholas Feinberg | 2016-08-30 11:14:53 -0700

Constify cast_los_attack_spell()
Nice in general, but also allows for some other tricks I want to
play in the near future.

--------------------------------------------------------------------------------
1d6490a329 | Nicholas Feinberg | 2016-08-30 10:22:35 -0700

Move monster Injury Mirror into data

--------------------------------------------------------------------------------
fce42df27c | Nicholas Feinberg | 2016-08-30 10:12:24 -0700

Move Cantrip into data

--------------------------------------------------------------------------------
430f768dfa | Nicholas Feinberg | 2016-08-30 10:05:35 -0700

Remove ushabti rumble
Redundant with their new Warning Cry.

--------------------------------------------------------------------------------
8f873aad5f | Nicholas Feinberg | 2016-08-30 09:58:44 -0700

Fix dragon casting noise
Broken when S_ROAR and S_LOUD_ROAR were split.

--------------------------------------------------------------------------------
2439ae934f | Nicholas Feinberg | 2016-08-30 09:23:36 -0700

Nerf tempmut statrot for undead
Give a coinflip chance of doing nothing. It's consistent for temp
muts to be less serious for both undead & living players, makes it
easier to design monsters that use them, and reduces issues with
undead unfortunate enough to enter the Abyss (wretched stars).

--------------------------------------------------------------------------------
796ee4dbbb | Nicholas Feinberg | 2016-08-29 18:46:09 -0700

Move Desolation deeper
It's a bit too nasty for a lot of Lair-branch characters, esp with
the removal of the entry. Let's see how it fares in Vaults.

--------------------------------------------------------------------------------
c8f5409a94 | Nicholas Feinberg | 2016-08-29 18:07:45 -0700

Improve a bitfield (|amethyst)

--------------------------------------------------------------------------------
e11720aebe | Nicholas Feinberg | 2016-08-29 17:59:04 -0700

Support non-beam spells in mon-cast struct

--------------------------------------------------------------------------------
a165953546 | Nicholas Feinberg | 2016-08-29 17:59:04 -0700

Support monster conjurations in the new struct

--------------------------------------------------------------------------------
cf25c1cc38 | Nicholas Feinberg | 2016-08-29 17:59:04 -0700

Refactor monster Minor Healing and Teleport
And remove an unused special case for Silence.

--------------------------------------------------------------------------------
1d2206cad1 | Nicholas Feinberg | 2016-08-29 17:59:04 -0700

Refactor monster Haste and Invisibility

--------------------------------------------------------------------------------
42bdecdf9f | Isaac Sloat | 2016-08-29 16:31:02 -0700

Make dream dust a proper monspell
Moves the ability's code from mon-abil into mon-spell/mon-cast.

"Dream Dust" is now visible as a natural ability on the xv screen.

--------------------------------------------------------------------------------
eb72173757 | Isaac Sloat | 2016-08-29 16:30:58 -0700

Remove SPFLAG_BATTLE
Unused code as of 19455275af1d

--------------------------------------------------------------------------------
84fd20d77d | Isaac Sloat | 2016-08-29 16:30:26 -0700

Remove emergency sleep spell from dream sheep
Small numbers of dream sheep already have a chance of sleeping the
player using dream dust. Emergency sleep is unnecessary and confuses
players, especially since spell sleep checks MR and dream dust doesn't.

--------------------------------------------------------------------------------
ac399f7146 | Alan Malloy | 2016-08-29 15:41:02 -0700

Fix ego in vault file

--------------------------------------------------------------------------------
17c46b642c | Nicholas Feinberg | 2016-08-29 15:38:39 -0700

Improve desolation entry floors

--------------------------------------------------------------------------------
457beebc7f | Nicholas Feinberg | 2016-08-29 15:26:15 -0700

Merge pull request #331 from isloat/sleep_clarity
Make Clarity resist sleep
--------------------------------------------------------------------------------
a0f5ae7a55 | Nicholas Feinberg | 2016-08-29 15:16:39 -0700

Reduce guardian serpent frequency in Salt (Lasty)
They show up enough elsewhere; let the new branch have a little
more space to breathe & develop its own unique character.

Also, they're quite nasty.

--------------------------------------------------------------------------------
f052eaa111 | Nicholas Feinberg | 2016-08-29 15:10:02 -0700

Framework for data-ified monster spells

--------------------------------------------------------------------------------
7cecae3d6d | Alan Malloy | 2016-08-29 11:59:17 -0700

Reword dream sheep description

--------------------------------------------------------------------------------
c18cb24c87 | Isaac Sloat | 2016-08-29 10:29:55 -0700

Remove chain sleeps
player::awaken() now imparts 3 to 5 turns of sleep immunity.

Closes #334

--------------------------------------------------------------------------------
cb2576fd61 | Nicholas Feinberg | 2016-08-29 10:02:54 -0700

Remove Desolation's entry cave
Start the player out in the centre again. More interesting to
encourage the player to move and explore than to lure the whole
level back to the start.

Also fixes a few obsolete substs leftover from earlier drafts.

--------------------------------------------------------------------------------
49cac51c46 | Nicholas Feinberg | 2016-08-29 09:29:21 -0700

Fix Desolation loot
The subst was on an unused character!

--------------------------------------------------------------------------------
1aaf691113 | Nicholas Feinberg | 2016-08-29 09:21:02 -0700

Make Servants of Whispers a little tougher

--------------------------------------------------------------------------------
94b39a47c9 | Nicholas Feinberg | 2016-08-29 09:20:07 -0700

Move turtles up a tier in Desolation's threats

--------------------------------------------------------------------------------
f2cf6badbb | Nicholas Feinberg | 2016-08-29 09:17:49 -0700

Add Resonance Strike stats to monster
And refactor/deduplicate Waterstrike damage.

--------------------------------------------------------------------------------
21af18f888 | Nicholas Feinberg | 2016-08-29 08:11:14 -0700

Merge pull request #333 from noahazarin/patch-1
Halazid Warlock description typo (10638)
--------------------------------------------------------------------------------
e2a66e5210 | Noah Azarin | 2016-08-29 05:23:04 -0700

Bug #10638: Halazid Warlock description typo
Mantis Bug 10638  https://crawl.develz.org/mantis/view.php?id=10638



Repeated word in Halazid Warlock description ("night night")



fixed to remove extraneous repeated night.
--------------------------------------------------------------------------------
6c5d9f8419 | Chris Campbell | 2016-08-28 23:45:48 +0100

Make cure mutation slightly rarer
The previous adjustment to compensate for rMut removal resulted in them
becoming a little too common - some of their weight is redistributed (between
degeneration, flight, lignification, cancellation and ambrosia), and they
remain noticeably more common than pre-rMut removal.

--------------------------------------------------------------------------------
11b1fe715c | Chris Campbell | 2016-08-28 23:45:48 +0100

Don't make eating/butchering avoid berserk non-combat penalties

--------------------------------------------------------------------------------
396919f875 | Chris Campbell | 2016-08-28 23:45:48 +0100

Make the Battlecry spell consistently take time and make noise
Previously it was instant for most monsters (but not satyrs), and noisy for
most monsters (but not Robin). It being instant appears to be an artefact of
its previous behaviour as a special ability rather than a spell. Treating it
like a proper spell that takes time is clearer (and it's been improved in other
ways over time). In Robin's case, not making noise is potentially a more
deliberate exception since she shows up early, but having it take time instead
should counteract that a bit.

--------------------------------------------------------------------------------
7ea6ffceb8 | Chris Campbell | 2016-08-28 23:45:10 +0100

Remove some redundant spell noise handling
Warning Cry is marked as a noisy spell, so doesn't need to also have the monster
spell slot marked as being noisy.

--------------------------------------------------------------------------------
bc45de5b2e | Chris Campbell | 2016-08-28 23:40:27 +0100

Merge anubis guards into ushabti (PleasingFungus)
Between the two monsters, ushabti had better flavour (being a non-undead
monster that fits into Tomb thematically, whereas anubis guards were living but
weirdly torment-immune), while some of the anubis guards had a couple of spells
that were potentially worth keeping around.

Ushabti now cast Death Rattle, Warning Cry and Dispel Undead. Also fixes Death
Rattle still being cast against immune targets.

--------------------------------------------------------------------------------
2783ae5f15 | Chris Campbell | 2016-08-28 21:58:47 +0100

Don't make the Repulsion Field mutation work while helpless
It's not really justified for this single source of +EV to work differently
from every other source - similarly-flavoured passive sources of SH such as
Qazlal's shielding or amulets of reflection are likewise disabled by being
paralysed/petrified etc.

--------------------------------------------------------------------------------
6ea94b05f5 | Chris Campbell | 2016-08-28 21:58:47 +0100

Don't let fake summons attack out of LOS
Temporary (but non-abjurable) allies like those from Animate Dead, Simulacrum,
Sticks to Snakes, Infestation should still have the same restrictions as
abjurable summons against being able to attack out of the player's LOS.

--------------------------------------------------------------------------------
420a265f0f | Neil Moore | 2016-08-28 10:49:20 -0400

Remove an unnecessary check in invalidate_los_around.
It was added to avoid invalidating cells diagonally out of LOS under
circleLOS, but under squarelos the condition became always true for
the cells being iterated over.

This reduces the time taken by invalidate_los_around by about 20% on
my machine, which is important in places like Desolation where it is
called thousands of times per turn.

--------------------------------------------------------------------------------
c94d3f71a4 | Chris Campbell | 2016-08-27 23:25:31 +0100

Replace extra hatches in Zot with fountains instead of statues
Replacing staircases with solid objects meant that monsters placed by vaults
could end up inside of statues.

--------------------------------------------------------------------------------
4fc3c0a62d | Chris Campbell | 2016-08-27 20:21:13 +0100

Fix some monster death effects being triggered by illusions (#10634)

--------------------------------------------------------------------------------
4ecb74722b | Neil Moore | 2016-08-27 15:07:10 -0400

Enforce minimum 0.2 attack delay even when hasted (GenericPseudonym)
Finesse is not supposed to stack with haste.  It does this by scaling
the attack delay by 3/2 (which would then be undone by the 2/3
multiplication applied by haste).  But the attack delay floor of 2 aut
was applied between the 3/2 and 2/3, meaning attacks could take 1 aut,
unlike under Finesse alone.  Fix this by applying the floor later,
after scaling for the hasted turn length.

Because the haste and haste-cancelling multiplications use random
rounding, haste + finesse still doesn't behave exactly the same as
Finesse.

Closes #328 pull request, in a somewhat different way.

--------------------------------------------------------------------------------
b6b82fb6e8 | Neil Moore | 2016-08-27 15:07:10 -0400

Unbrace.
[skip ci]

--------------------------------------------------------------------------------
95fae04478 | Nicholas Feinberg | 2016-08-27 10:33:42 -0700

Experiment: tweak salt floor weights
Not sure if this does anything?

--------------------------------------------------------------------------------
3c3cda166b | Nicholas Feinberg | 2016-08-27 10:20:05 -0700

New salt floor/wall tiles (CanOfWorms)
CanOfSalt?

Concerns: hard to see salt clouds very well against this BG.

--------------------------------------------------------------------------------
b9c29c0abe | Nicholas Feinberg | 2016-08-26 20:49:58 -0700

Add some salt floors to Desolation entries (r-i)

--------------------------------------------------------------------------------
26411550e1 | Nicholas Feinberg | 2016-08-26 20:41:48 -0700

Nerf a Desolation entry (r-i)
A bit much for lair branches. Maybe could use another lesser
angel pal? Not sure.

--------------------------------------------------------------------------------
66f0180963 | Nicholas Feinberg | 2016-08-26 20:38:08 -0700

Make Desolation entries place more often (TEMP)
For testing. Not 100% of the time, but about 90%? It's as close
as I could get.

Revert this after a week or two, please.

--------------------------------------------------------------------------------
d6e46dab0d | Nicholas Feinberg | 2016-08-26 20:10:43 -0700

Remove Desolation entrances from Vaults
Not dangerous enough to place there.

--------------------------------------------------------------------------------
f1694937dd | Nicholas Feinberg | 2016-08-26 20:09:51 -0700

Increase Desolation enemy density again
Make it a little less sparse.

--------------------------------------------------------------------------------
2e7f894e9c | Nicholas Feinberg | 2016-08-26 20:08:26 -0700

Desolation: replace salamander mystics w/ASTs
Alligator snapping turtles. Latter are a reasonable threat & have
reaching synergy w/allies; former didn't actually do anything,
since they were set up to only buff allies of the same genus!

--------------------------------------------------------------------------------
008c2d4b08 | Nicholas Feinberg | 2016-08-26 20:00:36 -0700

Re-add idols to Desolation

--------------------------------------------------------------------------------
a7ae155425 | Isaac Sloat | 2016-08-26 17:09:46 -0500

Make Clarity resist sleep
Affects Aizul, satyrs, dream sheep, sleeping needles, hibernation, one
Hell miscast effect, and Dithmenos wrath.

With the removal of "Clarity, the only way for players to gain Clarity
is via Ashenzari (where the buff wouldn't hurt), a mutation (rare!), or
the autumn katana (very rare!), so this seems fine to do.

--------------------------------------------------------------------------------
db14cb7353 | Nicholas Feinberg | 2016-08-26 13:41:01 -0700

Don't empower Resonance Strike w/enemies
Enemies of the caster, that is. It's funny and self-consistent,
but creates bad incentives.

--------------------------------------------------------------------------------
713523d9ac | Isaac Sloat | 2016-08-26 13:08:42 -0700

Rename awake() to awaken()
Since that function actively awakens the player, instead of checks
whether the player is awake.

--------------------------------------------------------------------------------
eb39ca940e | Isaac Sloat | 2016-08-26 13:08:42 -0700

Transform sheep into dream sheep
Dream sheep are magical sheep that spawn in bands in late Lair, about
half as often as elephants. They can also spawn as part of a torpor
snail band, as well as accompanying cyclopes in Shoals.

Dream sheep are only slightly tougher than common sheep, but are more
evasive, have higher magic resistance, and have much higher HD.

Dream sheep gather their shared magical dust to overwhelm the player.
When successful, the target is slept for 5 to 20 turns. Dream dust
checks Clarity, but it does not check MR. (TODO: If this turns out to
be too strong, then a MR check is entirely reasonable to add.) The
strength of the dust effect depends on how many dream sheep are
visible to the player. The player receives 4 to 8 turns of sleep
immunity when a successful sleep is applied, unlike the standard 1
turn of immunity.

As an emergency-flagged spell, dream sheep will directly cast Sleep
instead of relying on dream dust.

On their own, dream sheep are not very dangerous for where they spawn,
even when the player is being put to sleep. When combined with other
monsters, their sleep ability makes slow but hard-hitting monsters
very dangerous. Dream sheep are only the third monster in the game
to have access to Sleep, after Aizul and satyrs.

This implements an idea of PleasingFungus's from a couple years ago
(sheepcursed masses) and, before refactoring and rewriting, used
DracoOmega's _starcursed_scream and _will_starcursed_scream code as
a base for the code for its sleep dust ability.

Sheep have been removed from the game. Sheep in vaults have been
mostly replaced with iguanas, and occasionally with dream sheep.
Cyclopes in Dungeon and Depths no longer spawn with ungulates.

--------------------------------------------------------------------------------
d97c2bd1ae | Nicholas Feinberg | 2016-08-26 12:52:23 -0700

Merge pull request #330 from isloat/water_stealthy
Document Merfolk/Octopode aquatic +stealth. (10624)
--------------------------------------------------------------------------------
4634998fe6 | Nicholas Feinberg | 2016-08-26 11:58:18 -0700

Simplify Battlecry
Originally an orc-only ability, the spell had metastasized over
time, and eventually became essentially five different spells in
one. This simplifies it to one spell, affecting allies of the same
genus as the caster. Orcs affect orcs, satyrs affect fauns, etc.

The main impact on gameplay will be that knights can now rouse
warlords. That's a buff for Beoghites, but a bit rude for everyone
else; if it proves too rude, we can split out orc battlecry into a
separate spell. Better to try a simpler approach first, though.

--------------------------------------------------------------------------------
68efe7592b | Chris Campbell | 2016-08-26 19:14:42 +0100

Unbreak pitsprint (Tux[Qyou])

--------------------------------------------------------------------------------
10bc46333d | Nicholas Feinberg | 2016-08-26 10:15:11 -0700

Tweak Halazid spellset slightly
Summoning spells don't really work well as emergency spells.

--------------------------------------------------------------------------------
bb8a9137b5 | Nicholas Feinberg | 2016-08-25 23:58:39 -0700

Fix up some golems' use flags (IronicDongz)

--------------------------------------------------------------------------------
ee6bd96f37 | Nicholas Feinberg | 2016-08-25 19:12:09 -0700

s/an/a/ (geekosaur)

--------------------------------------------------------------------------------
d70448eba4 | Nicholas Feinberg | 2016-08-25 19:03:50 -0700

New portal vault: the Desolation of Salt
The Desolation of Salt is an experiment in gameplay, playing with the concept
of many weak enemies with support-focused allies. There's also a focus on
constructs (nonliving enemies), and the use of large opaque cloud generators
as 'virtual terrain' in an otherwise-open level - concealment instead of
cover.

Difficulty & treasure are intended to be similar to Elf's. If the portal is
well-recieved, it could be expanded into a branch that alternates with Elf.

--------------------------------------------------------------------------------
d5971a7c41 | Nicholas Feinberg | 2016-08-25 19:03:50 -0700

Desolation monster: Saltling
A bit like an orc warrior, but slightly faster. Spawns in packs,
with friends.

--------------------------------------------------------------------------------
0950dd7a0d | Nicholas Feinberg | 2016-08-25 19:03:50 -0700

Desolation monster: Imperial Myrmidon
Like a vampire knight + phantasmal warriors, but just one monster.
(MR/2 attack + hexes... though no Paralysis.)

--------------------------------------------------------------------------------
66c36196b9 | Nicholas Feinberg | 2016-08-25 19:03:50 -0700

Desolation monster: Peacekeeper
A fast construct that throws barbs (Manticore spell) & has a
Battlecry that mights allied constructs. Fierce!

--------------------------------------------------------------------------------
7197c37af8 | Nicholas Feinberg | 2016-08-25 19:03:49 -0700

Desolation monster: Ragged Hierophant
Construct support monster. Casts Resonance Strike, which does
smitey damage that increases with the number of constructs
adjacent to the target, and Injury Bond.

--------------------------------------------------------------------------------
99abaee0e0 | Nicholas Feinberg | 2016-08-25 19:03:49 -0700

Desolation monster: Halazid Warlock
Undead sorcerers casting Bolt of Draining/Cold, Shadow Creatures,
and Ghostly Sacrifice, which instantly kills one of the warlock's
allies and turns it into an extremely powerful negative energy
explosion. Intended to be a top-tier threat.

--------------------------------------------------------------------------------
21a12af8b6 | Nicholas Feinberg | 2016-08-25 19:03:42 -0700

Desolation monster: Servant of Whispers
Casts Lightning Bolt and a new spell, Still Winds, which shuts
down all clouds on the level until the duration expires or the
caster dies.

The hope is that this ability will interact interestingly with the
huge cloud generators in the Desolation (removing the player's
cover), but it may also work elsewhere.

--------------------------------------------------------------------------------
4686544015 | Nicholas Feinberg | 2016-08-25 18:54:15 -0700

New border feature type: Endless Salt
A cosmetic variant, ala open sea, endless lava.

--------------------------------------------------------------------------------
44fcadd6e1 | Nicholas Feinberg | 2016-08-25 18:40:29 -0700

New opaque cloud type: salt
No special properties, just opaque. I'm using a new type instead of
re-using an existing one (as Cloud Mage does) because I want to use
a new tile; otherwise grey smoke would be fine.

--------------------------------------------------------------------------------
85f3404c83 | Nicholas Feinberg | 2016-08-25 18:40:29 -0700

Relocate global branch info
Move it to its own reserved enum, to avoid future save compat
bumps when adding new branches (e.g. oubliette).

Also bring in some other new-branch compat code from oubliette wrt
branch bribe info.

--------------------------------------------------------------------------------
2a379a6b1d | Nicholas Feinberg | 2016-08-25 17:38:31 -0700

Fix a local tiles/"faith/Ru crash (10584)
I feel like there must be some clearer way to express the
dependencies here.

--------------------------------------------------------------------------------
81ff5c4599 | Alan Malloy | 2016-08-25 17:33:58 -0700

Reformat console output when crashing
In particular, try to make the instructions stand out, rather than being
a block of dense/opaque text.

--------------------------------------------------------------------------------
ebd2161cab | Isaac Sloat | 2016-08-24 18:12:48 -0500

Document Merfolk/Octopode aquatic +stealth. (10624)
This probably should be removed instead, but for as long as it exists,
it should be documented.

--------------------------------------------------------------------------------
f887c1c8bb | Nicholas Feinberg | 2016-08-24 01:07:37 -0700

Multiply Gozag gold in sprint (Rast)

--------------------------------------------------------------------------------
978f90914e | ontoclasm | 2016-08-24 00:40:33 -0500

New version of the Duvessa/Dowan splash
Original image by baconkid, edited by Bloax and koboldina.

--------------------------------------------------------------------------------
f83d13a41c | Nicholas Feinberg | 2016-08-23 15:15:57 -0700

Simplify hide armour pricing
Raises troll hide shop pricing by 25%. Extortionate!

--------------------------------------------------------------------------------
a098d7db88 | Nicholas Feinberg | 2016-08-23 15:13:36 -0700

Move armour prices into data

--------------------------------------------------------------------------------
0f25a1e3e3 | Nicholas Feinberg | 2016-08-23 14:56:15 -0700

Move ammo prices into data

--------------------------------------------------------------------------------
ae40beffc5 | Nicholas Feinberg | 2016-08-23 14:50:44 -0700

Remove pricing for +1 arrows
...and other enchanted ammo.

--------------------------------------------------------------------------------
d9c7b6454a | Nicholas Feinberg | 2016-08-23 14:49:38 -0700

Move weapon pricing into data

--------------------------------------------------------------------------------
cd7aee6f88 | Nicholas Feinberg | 2016-08-23 13:27:39 -0700

More monster description tweaks

--------------------------------------------------------------------------------
bd4eae2896 | Chris Campbell | 2016-08-23 20:47:43 +0100

Update some monster descriptions
From A-K, with more exciting updates to come! Focusing on vague style
consistency: "A thing that does something.", rather than referring to "this"
particular monster or "these" monsters, and trying to avoid the second person.

--------------------------------------------------------------------------------
363869b07b | Nicholas Feinberg | 2016-08-22 14:41:37 -0700

Remove Beogh's base armour bonus
This originally existed as a thematic synergy with orcish racial
armour. When racial armour was removed, it was extended to all
armour/shields, but there's no actual reason for Beogh to give
bonuses to armour-wearing! If we're concerned about Beogh's
balance, there are better and simpler ways to strengthen followers
than this fairly arbitrary bonus.

--------------------------------------------------------------------------------
b46a2cf5ca | Nicholas Feinberg | 2016-08-22 14:33:57 -0700

Don't interrupt activity for jellies
XXX: maybe should just not detect them at all?

--------------------------------------------------------------------------------
ed58c354a8 | Nicholas Feinberg | 2016-08-22 14:29:24 -0700

Flatten check_monster_detect()
XXX: is that mimic stuff still relevant?

--------------------------------------------------------------------------------
90c832ca65 | Nicholas Feinberg | 2016-08-22 09:39:06 -0700

Revert "Remove various unused floor tiles"
This reverts commits f44f3ea68abaf6d9a9717b8f04aa74c042f29003
and d81f432d9004dea58e6a64e823d6ee6ed5f61274.

They were used in lua, apparently!

--------------------------------------------------------------------------------
d81f432d90 | Nicholas Feinberg | 2016-08-21 23:28:15 -0700

...and one more

--------------------------------------------------------------------------------
f44f3ea68a | Nicholas Feinberg | 2016-08-21 23:22:40 -0700

Remove various unused floor tiles
Were added with the first tiles commit and, as far as I can tell,
never used.

--------------------------------------------------------------------------------
5c1aa26253 | gammafunk | 2016-08-21 14:58:18 -0500

Add a runed door and make other adjustments to a vault (Lasty)
Players have sometimes been autoexploring into the cave area of this
vault all the way to the loot chamber with the most dangerous monsters,
since monsters didn't always place in the passage leading up to the
chamber in a way that would stop autoexplore. This could be fixed by
guaranteeing some monster placement in the passage alone, but I'm both
doing that and adding a runed door in place of the hatch. A runed door
is a nice way to emphasize that this somewhat secretive area of the
vault is special.

I'm also removing the restriction that it can't place on
Lair:1. Additionally added some decorative statues/trees that have a
chance to be dry land, to give high splatratio players like Lasty a
fighting chance.

--------------------------------------------------------------------------------
c6b34561eb | Chris Campbell | 2016-08-21 20:36:08 +0100

Remove the rest of a reference to ammo enchantment
Following up on 98514afbdbb54c7ba2500c82495f0d30c8eff658!

--------------------------------------------------------------------------------
117139cce9 | Chris Campbell | 2016-08-21 20:27:53 +0100

Adjust god descriptions

--------------------------------------------------------------------------------
69d5fc3f97 | Alan Malloy | 2016-08-21 01:28:45 -0700

Use ancestor's proper name even when they're dead

--------------------------------------------------------------------------------
6bcb79cb0d | Alan Malloy | 2016-08-20 18:02:17 -0700

Follow up on a TODO by using some lambdas

--------------------------------------------------------------------------------
95eeff9c06 | Alan Malloy | 2016-08-20 17:46:30 -0700

Factor out a common sub-expression

--------------------------------------------------------------------------------
250f30af71 | Alan Malloy | 2016-08-20 14:15:49 -0700

Use correct pronouns in describing deduced monster spellbooks

--------------------------------------------------------------------------------
7dfd8ee804 | Nicholas Feinberg | 2016-08-20 08:50:04 -0700

Maybe fix monster spell targeting

--------------------------------------------------------------------------------
fa3cbb97e5 | Chris Campbell | 2016-08-20 16:26:55 +0100

Remove some demonic code duplication
And correct some inaccurate comments. The handling for all this could still
definitely do with some proper refactoring, though!

--------------------------------------------------------------------------------
da63bca206 | Nicholas Feinberg | 2016-08-19 17:53:02 -0700

Fix doubled legendary destruction cast msg

--------------------------------------------------------------------------------
056e2534c1 | Nicholas Feinberg | 2016-08-19 12:25:13 -0700

Solve a minor mystery (MarvinPA)

--------------------------------------------------------------------------------
172d75e12d | Nicholas Feinberg | 2016-08-19 12:01:29 -0700

Fix exploration gods for sprint
Since exploration piety doesn't scale up nearly as fast as kill
piety, given enemy density.

--------------------------------------------------------------------------------
1ff6ce80dc | Nicholas Feinberg | 2016-08-19 11:46:34 -0700

Reduce eyeball sputtercasting
They now only need to charge once, like orb spiders, rather than
twice.

--------------------------------------------------------------------------------
0055e6a09e | Nicholas Feinberg | 2016-08-19 11:35:13 -0700

Remove _ms_low_hitpoint_cast() (7236)
A big pile of duplicate targetting logic, which, unsurprisingly,
was buggy. More specifically, it bypassed tracers completely, and
consequentially led to monsters banishing or confusing their own
allies, fireballing themselves to death for no reason, etc.

--------------------------------------------------------------------------------
e9ec8d56cf | Nicholas Feinberg | 2016-08-19 11:30:37 -0700

Refactoring: _target_and_justify_spell()

--------------------------------------------------------------------------------
e0bab27fca | Alex Jurkiewicz | 2016-08-18 22:53:48 -0700

Rework slow regeneration mutation messages.
Don't refer to "natural" regeneration, and try to communicate more
clearly the effect of losing levels of this mutation.

--------------------------------------------------------------------------------
37ced24234 | Alex Jurkiewicz | 2016-08-18 22:52:36 -0700

Double regeneration mutation strength.
Most regen sources now give whole multiples of REGEN_PIP. The mutation
used to give half a pip per level, so as compensation for this increase:
* Reduce its mutation weight,
* Give Trolls regen 1 instead of regen 2, and
* Shift around Vine Stalkers' first regen mut (remove the XL1 mut, and
  move the XL6 mut to XL4).

--------------------------------------------------------------------------------
2641e52248 | Chris Campbell | 2016-08-18 22:43:23 +0100

Remove monster stealth
All monsters are treated as if they had -1 stealth, making invisibility
indicators more likely to show up for unseen horrors and unchanged for orc
wizards, and with probably no noticeable effect anywhere else.

--------------------------------------------------------------------------------
d715d3d868 | Chris Campbell | 2016-08-18 20:41:52 +0100

Change Fedhas sprint's cloak of invisibility to an amulet
To allow all species to use it for evocable invisibility (until the addition of
the upcoming headless species of course).

--------------------------------------------------------------------------------
95e84de78b | Chris Campbell | 2016-08-18 20:13:56 +0100

Remove jelly loot vaults from Ziggurats (minqmay)
No longer required now that jellies don't eat loot.

--------------------------------------------------------------------------------
22e6b5a7ed | Chris Campbell | 2016-08-18 19:22:15 +0100

Don't mark some magical staves as useless under Trog
They're certainly not likely to be any good, but most of the enhancer staves
don't entirely qualify as useless, since even just with evocations skill their
effects can trigger.

--------------------------------------------------------------------------------
9dc3488c96 | Nicholas Feinberg | 2016-08-18 09:05:43 -0700

Don't replace Xom with permarock (BaronDoctor)
...in the linesprint temple.

--------------------------------------------------------------------------------
4c2e17c36f | Neil Moore | 2016-08-18 02:04:59 -0400

Hide Pakellas in ctrl-o (Naruni)
Otherwise it looks like you just haven't found the altar yet.

--------------------------------------------------------------------------------
68a4807f74 | Neil Moore | 2016-08-18 01:52:30 -0400

Correct 'your' in Mara messages (#10616)
It was supposed to be based on the target's attitude, but that had been
temporarily set to the clone's attitude instead.

--------------------------------------------------------------------------------
6c2f138bca | Neil Moore | 2016-08-18 01:52:19 -0400

Fall back to normal item generation on failed 'acquire foo' (#10502)

--------------------------------------------------------------------------------
acb3972407 | Nicholas Feinberg | 2016-08-17 20:12:11 -0700

Reset Nemelex piety gain to prev value
A deck every five feet is a little too much.

--------------------------------------------------------------------------------
ed6e5f2b6f | Nicholas Feinberg | 2016-08-17 15:49:35 -0700

Remove a slow monster vault (IronicDongz)

--------------------------------------------------------------------------------
cd7e5826b1 | Aditya Shevade | 2016-08-17 09:13:40 -0700

Allow reading/quaffing w/empty inventory (10614)

--------------------------------------------------------------------------------
094b998292 | Nicholas Feinberg | 2016-08-16 22:50:30 -0700

Vaporize fewer items with lua (Sandman25)
Most of these changes don't do anything, but hopefully will reduce
copy-pasting of the 'unsafe' version of the command
(preserve_items = false)

--------------------------------------------------------------------------------
4905290c28 | Nicholas Feinberg | 2016-08-16 22:09:27 -0700

ID books moved onto the player's square (minmay)

--------------------------------------------------------------------------------
2603968aee | Nicholas Feinberg | 2016-08-16 21:58:01 -0700

Fix g++ 4.7 compilation, possibly

--------------------------------------------------------------------------------
80a00a4ed4 | Nicholas Feinberg | 2016-08-16 20:39:17 -0700

Buff explore piety gain
Pretty significantly, to counter the increased piety decay rate
for Ely/Hep from 836749401. Also buffed Nem for consistency (since
the old speed seemed very slow!), but that's easy enough to change
back.

--------------------------------------------------------------------------------
cc2d2a76e0 | Chris Campbell | 2016-08-16 23:36:17 +0100

List some god conducts on the ^ overview
Forced conducts (Cheibriados slow movement, Hepliklqana frail) are now listed
on the "powers" section.

--------------------------------------------------------------------------------
bacea11197 | Nicholas Feinberg | 2016-08-16 15:04:46 -0700

Remove BEAM_INK (wheals)
As far as I can tell, it never did anything.

--------------------------------------------------------------------------------
1ecfaa61a0 | Chris Campbell | 2016-08-16 21:41:43 +0100

Remove the Akashic Record, move its spells back to the Warp
Most of the spells in the Akashic Record didn't really merit the extra rarity,
especially with Singularity no longer existing. Moves most of the spells back
to the book of the Warp, with Malign Gateway remaining in the Grand Grimoire,
and Recall being removed from the Warp (since it already fits better in the
two other books that contain it).

--------------------------------------------------------------------------------
871b111e60 | Chris Campbell | 2016-08-16 20:55:57 +0100

Remove Warp Weapon
The distortion brand generally requires some kind of commitment to use, and
on-demand access is a much less interesting source of it, as well as stepping
on Lugonu's toes (since Lugonu does allow players to swap the brand safely, but
obviously has a much more significant cost to doing so). The spell's downsides
of requiring frequent recasting along with the skill/spell slot investment
don't really make up for that.

--------------------------------------------------------------------------------
327e66e1c3 | Chris Campbell | 2016-08-16 20:55:57 +0100

Remodel sprint temples
Adjusts sprint temples in a couple of ways:

Gods are given a fixed position (either with alphabetical altars, or vague
thematic groupings) for ease of finding them again after death. Arenasprint
still has random altar placement, since the altars are scattered across the
arena.

Ashenzari is usually disabled, and all other gods are usually present, with a
few exceptions as appropriate (no Beogh in maps with no orcs in, no Fedhas in
fedhas-sprint, no exploration gods in arenasprint, Ashenzari is enabled in
some of the very largest maps).

--------------------------------------------------------------------------------
e213fbe9c8 | Chris Campbell | 2016-08-16 20:54:30 +0100

Disable Pakellas
The god's design currently doesn't really function - it's very narrowly focused
in a way that's not very interesting and also causes balance problems.
Turning things like heal wounds/enslavement/teleport into near-unlimited
resources (where the latter two of those have been deliberately changed from
having infinite spell sources to being finite in the past) in particular isn't
great. In general, having a god who runs entirely off evocations skill and
makes all those items stronger seems likely to cause problems - it's desirable
for evocations skill to be a reasonable investment without the god, so a god
just focusing on evocations ends up making that one skill doubly effective.

Currently Pakellas is disabled pending a rework (or full removal), so
characters currently worshipping Pakellas can still continue as normal.

--------------------------------------------------------------------------------
765ece15f2 | Chris Campbell | 2016-08-16 17:29:08 +0100

Fix some handling of autoeat with gourmand
Fixes felids and ghouls not autoeating chunks if they've just put on a useless
amulet of the gourmand.

--------------------------------------------------------------------------------
e0a450d4d9 | Chris Campbell | 2016-08-16 16:46:49 +0100

Fix Pakellas wrath not expiring (Kramin)
And set it to the same duration as other XP-wrath gods.

--------------------------------------------------------------------------------
18f0c96148 | Nicholas Feinberg | 2016-08-15 12:03:10 -0700

Hide rclick menu on webtiles minimap (10576)
There is probably an easier way to do this.

--------------------------------------------------------------------------------
4149f68646 | Alan Malloy | 2016-08-14 23:41:52 -0700

Seperate => separate

--------------------------------------------------------------------------------
98094fc876 | Alan Malloy | 2016-08-14 01:27:13 -0700

missilies -> missiles (Tamsk)

--------------------------------------------------------------------------------
79b6552df9 | Nicholas Feinberg | 2016-08-13 23:21:07 -0700

--"Eustachio the Eustachio skeleton" (ProzacElf)
Uniques can probably just be named by species, as they were until
quite recently. (Eustachio the human skeleton, vs the centaur
warrior skeleton...)

The enchantress is weird in this schema, but she always is.

--------------------------------------------------------------------------------
02d67b9352 | Nicholas Feinberg | 2016-08-13 17:26:48 -0700

Rewrite is_harmless_cloud

--------------------------------------------------------------------------------
98e1bbc66f | Nicholas Feinberg | 2016-08-13 17:26:48 -0700

Remove _cloud_is_cosmetic
Was only ever used to check if the "you are engulfed in X" message
should print, but an earlier call to actor_cloud_immune in
actor_apply_cloud already filtered out both 'cosmetic' and other
harmless clouds. Redundant; did nothing.

--------------------------------------------------------------------------------
ab1b5f1289 | Nicholas Feinberg | 2016-08-13 17:26:48 -0700

Re-add custom clouds as new types

--------------------------------------------------------------------------------
cb5d70d7bf | Nicholas Feinberg | 2016-08-13 17:26:44 -0700

Remove support for custom cloud types
They were barely used (Cloud Mage wizlab & a Xom effect), and
didn't work properly; e.g., descriptions of renamed custom clouds
referred to the base type. Full support for custom clouds would
require adding the custom fields to env.map_knowledge, which seems
like a heavy burden for little benefit. Instead, it's simpler to
just make enums for new cloud types as we need them; the technical
burden is substatially lower.

--------------------------------------------------------------------------------
527d089c8e | Nicholas Feinberg | 2016-08-13 14:32:15 -0700

Transmute gauntlets back into clouds (koboldina)
oops...

--------------------------------------------------------------------------------
2d7ff6642f | Nicholas Feinberg | 2016-08-13 13:17:52 -0700

Give arrows to Volcano centaurs (10611)
Perhaps they'd all burned up in the heat?

--------------------------------------------------------------------------------
1b37633b5b | Nicholas Feinberg | 2016-08-13 13:17:47 -0700

Remove unused runrest ignores
The relevant messages haven't existed in a long time.

--------------------------------------------------------------------------------
bb7de16deb | Nicholas Feinberg | 2016-08-13 10:32:38 -0700

Dataify cloud tiles

--------------------------------------------------------------------------------
550afdcd96 | Chris Campbell | 2016-08-13 17:38:53 +0100

Reduce the number of creatures summoned by Xom shadow creatures
Since it can summon bands too.

--------------------------------------------------------------------------------
c1975780ea | Chris Campbell | 2016-08-13 17:38:03 +0100

Adjust demonic guardian lists
Replace crimson imps (blinky and annoying) with shadow imps at level 1 (since
they no longer animate dead), and sun demons with orange demons at level 2 to
weaken that level slightly. Also add lorocyprocas to level 3, since friendly
invisible monsters are now always shown.

--------------------------------------------------------------------------------
0df5e3df8d | Chris Campbell | 2016-08-13 17:33:12 +0100

Move sixfirhies to demon tier 3, chaos spawn to tier 4
And very slightly reduce chaos spawn damage, and slightly increase sixfirhy HD
(along with their AF_ELEC damage as a result).

--------------------------------------------------------------------------------
b6eeefff20 | Chris Campbell | 2016-08-13 03:40:35 +0100

Update manual
The inscriptions section is still very out-of-date for various recent (and
not-so-recent) additions.

--------------------------------------------------------------------------------
fbea0ba5c5 | Chris Campbell | 2016-08-13 03:21:54 +0100

Update jelly description

--------------------------------------------------------------------------------
63c3cafcce | Chris Campbell | 2016-08-13 01:01:19 +0100

Merge branch 'generipiety'

--------------------------------------------------------------------------------
8723a9f727 | Chris Campbell | 2016-08-13 00:58:51 +0100

Give Yredelemnul piety from undead/demon kills
Piety from demons in particular seems reasonable to compensate for the fact
that many of Yred's abilities fall off anyway in demon-heavy areas, and
although it'd be justifiable in terms of flavour to not give piety for undead
kills, that'd leave Yred as the only piety-from-kills god with such a holiness
exception.

--------------------------------------------------------------------------------
8367494010 | Chris Campbell | 2016-08-13 00:27:52 +0100

Give gods one of two piety decay speeds
Having such fine-grained differences in piety decay was pretty overcomplicated,
and it seems a lot clearer to just have a distinction between "fast-ish" and
"slow-ish" decay. This could maybe also be mentioned somewhere in god
descriptions?

--------------------------------------------------------------------------------
fad57b473f | Chris Campbell | 2016-08-13 00:14:20 +0100

Give Fedhas and Cheibriados piety decay
They don't really have a good reason not to have it, since they don't have any
special piety model where it wouldn't work (as Gozag/Ru/Xom do).

--------------------------------------------------------------------------------
9310b1ceaf | Chris Campbell | 2016-08-13 00:10:14 +0100

Fix messaging for trying to worship Yred in wispform
Very Important.

--------------------------------------------------------------------------------
fd2348157d | Chris Campbell | 2016-08-12 23:59:36 +0100

Merge branch 'master' into generipiety

--------------------------------------------------------------------------------
2d3246e1af | Chris Campbell | 2016-08-12 23:58:16 +0100

Give Trog and Kiku piety from killing undead
It wasn't a very significant restriction in either case, and flavourwise both
gods can be argued to just enjoy death generally. Yred remains as the last
piety-from-kills god with bigger noticeable holiness restrictions, not
accepting kills of either demons or the undead (which might also be worth
changing, but is at least more of a noticeable restriction currently).

--------------------------------------------------------------------------------
dedf28e065 | Chris Campbell | 2016-08-12 23:54:34 +0100

Don't make "artificial" monsters distinct from nonliving ones
Also fixes nonliving kills not counting properly for Sif Muna, and adjusts some
messaging for consistency. Wisp form also gets a few very minor functional
changes as a result (gaining poison immunity, and now being banned from
worshipping Yredelemnul, as with the previously "artificial" statue form).

--------------------------------------------------------------------------------
7918953401 | Chris Campbell | 2016-08-12 23:54:34 +0100

Slightly increase Dithmenos piety costs
To partially compensate for the faster late piety gain.

--------------------------------------------------------------------------------
1db0fcb54f | Chris Campbell | 2016-08-12 23:47:22 +0100

Simplify piety from kill god conducts
Remove some special-casing for slightly increased piety gain for certain
holinesses (as well as removing a more significant piety boost for the living
under Makhleb to intentionally slow it a little). Some other, separate holiness
special-casing still exists though! Also removes Dithmenos's special-casing for
piety gain slowing down at high levels.

--------------------------------------------------------------------------------
a75ee9761a | Emily | 2016-08-12 22:38:30 +0100

Remove the EV penalty for taking stairs
It's a pretty obscure mechanic that you'll only realise exists if you
watch the EV field of the HUD intently.

To compensate, the delay on a new level after using stairs is increased
from 4/3 turns on an existing level and 2/3 on a new level to 3/2 and
3/4 turns respectively.

This is a spiritual sequel to e1c5091, which removed the penalty for all
delays other than taking stairs.

--------------------------------------------------------------------------------
306788c572 | Chris Campbell | 2016-08-12 22:38:30 +0100

Fix a warning

--------------------------------------------------------------------------------
6f6d80984b | Chris Campbell | 2016-08-12 22:38:19 +0100

Make jelly item-eating Jiyva only
It no longer makes any sense as an effect on random jellies since it can only
ever trigger out of LOS, making it extremely unclear as to what's actually
happening and how. Removes a few vaults relying on this behaviour, as well as
one outdated jelly vault based on old corrosion that placed damaged items.
Also increases Jiyva jellies' appetites by letting them eat stones too.

--------------------------------------------------------------------------------
98d623eea2 | Chris Campbell | 2016-08-12 21:58:49 +0100

Remove the sustain attributes effect
The ring in particular would only rarely be used to help compensate for a few
sources of particularly large amounts of stat drain (generally mummy death
curses and CBoE/Wucad Mu usage). With the ring gone, the effect just remained
on Demigods and the orange crystal plate unrand, and in both cases doesn't seem
sufficiently interesting or integral to their designs to merit keeping such a
niche effect around.

Slightly toned down a few of the higher-tier sources of stat drain to partially
compensate for cases where it might have been more often used.

--------------------------------------------------------------------------------
aabdb3a915 | Chris Campbell | 2016-08-12 21:58:48 +0100

Remove the Mummy self-restoration ability
Since its main use was to cure heavy rot, but mutation no longer causes rotting
in undead, and the stat drain from mutation can be recovered by gaining XP as
with non-undead races.

--------------------------------------------------------------------------------
b8297edc0b | Chris Campbell | 2016-08-12 21:57:37 +0100

Make mutations only cause stat drain to the undead
To make it focused on being more of a temporary debuff for them, rather than
something that costs resources to cure (as it is for non-undead).

--------------------------------------------------------------------------------
98bd279e9e | Chris Campbell | 2016-08-12 21:16:29 +0100

Remove some obsolete handling for missile brands that never generate
SPMSL_FLAME and SPMSL_FROST could already never generate randomly, and were
only placed by one shop vault (now removed, as the majority of its gimmick no
longer really applies). Also removes some handling for rebranding launchers -
the only brand spells that still exist can never affect launchers (although
there's still a ton of obsolete code for melee rebranding).

--------------------------------------------------------------------------------
ea4e3257cf | Chris Campbell | 2016-08-12 21:16:29 +0100

Adjust Call of Chaos's effect list (Arrhythmia)
Remove some of the stronger negative effects (in particular things like
paralysis, petrification, sleep), and add some replacements (polymorph and
inner flame). Also make plain blink one of the rare effects, and replace
unravelled magic (which didn't do the thing that was presumably intended) with
the identical-in-effect malmutation.

--------------------------------------------------------------------------------
ef964420d4 | Chris Campbell | 2016-08-12 21:16:29 +0100

Adjust @ display with no status effects (nikheizen)

--------------------------------------------------------------------------------
a89c646d3f | Chris Campbell | 2016-08-12 21:16:29 +0100

Remove an obscure daeva special-case (PleasingFungus)

--------------------------------------------------------------------------------
9ec05d19e4 | Nicholas Feinberg | 2016-08-12 13:14:41 -0700

Use more monster helper functions

--------------------------------------------------------------------------------
2cec7c1d46 | Nicholas Feinberg | 2016-08-12 12:28:13 -0700

Don't pass a beam into handle_mons_spell

--------------------------------------------------------------------------------
f441eeb6fc | Nicholas Feinberg | 2016-08-12 11:51:16 -0700

Remove obsolete Lost Soul flickering code
They haven't been able to flicker away for a while now.

--------------------------------------------------------------------------------
9c3848f2c2 | Nicholas Feinberg | 2016-08-12 11:26:28 -0700

Don't pass a beam to mon_special_abil
And remove a special case for perma-confused monsters casting
spells or using special abilities, since they can't.

--------------------------------------------------------------------------------
c4a0c12980 | Nicholas Feinberg | 2016-08-11 21:56:54 -0700

Re-implement cloud opacity with a flag
To support hypothetical new opaque clouds.

--------------------------------------------------------------------------------
ac58878042 | Nicholas Feinberg | 2016-08-11 18:11:20 -0700

Apply a stepdown to para/conf ench dur
Their duration was directly equal to power, meaning that a 50-power
cast of Confusion would confuse a monster for 50 turns. A 100-power
cast of Paralysis (from a wand, or, more likely, a hexer ancestor)
would paralyse an enemy for 100 turns! That's ridiculous.

This steps down durations, ending up with a duration of ~15 turns
at 25 power, ~21 turns at 50 power, and ~27 turns at 100 power.

This only applies to monsters being confused/paralysed; players
are confused/paralysed by totally different formulas. (Obviously.)

--------------------------------------------------------------------------------
0490cf642b | Chris Campbell | 2016-08-11 19:21:17 +0100

Fix bracing

--------------------------------------------------------------------------------
036573052f | Nicholas Feinberg | 2016-08-11 11:11:29 -0700

Changelog through 0.19-a0-1124-g3d89a69

--------------------------------------------------------------------------------
3d89a69ba1 | Nicholas Feinberg | 2016-08-11 11:09:53 -0700

Reword spellbook filtering description
Putting it after the vulnerabilities (susceptible to antimagic...)
made it sound like the vulnerabilities were 'based on what you'd
seen them cast', which wasn't what we were trying to imply.

--------------------------------------------------------------------------------
80501f5a4e | Nicholas Feinberg | 2016-08-11 09:47:50 -0700

Make Hep give innate frail 1
The god is a bit too strong right now; this seemed like the most
fun way to weaken it. (I don't want to make the ancestor much
weaker than they are at present, since it's not fun if the
ancestor is weak... though there's probably still some room to
manuever, there.) Easy to theme, too; powering your ancestor with
your life essence...

Frail 2 might be more dramatic? Not sure.

--------------------------------------------------------------------------------
39308c2b7f | Nicholas Feinberg | 2016-08-11 09:36:17 -0700

Fix self-ench spam (10608)

--------------------------------------------------------------------------------
018f5a5aba | Nicholas Feinberg | 2016-08-11 09:14:55 -0700

Fix mons buff targetting (10604)

--------------------------------------------------------------------------------
42b71463b6 | Nicholas Feinberg | 2016-08-10 23:33:30 -0700

Pull _choose_spell_to_cast from handle_mons_spell
Refactoring; no expected gameplay changes.

--------------------------------------------------------------------------------
186b8d8094 | Nicholas Feinberg | 2016-08-10 23:02:03 -0700

Constify hspell_pass.

--------------------------------------------------------------------------------
b56ba22975 | Nicholas Feinberg | 2016-08-10 22:57:01 -0700

Call _ms_waste_of_time() earlier
The only effect of not doing so was to cause obscure bugs
involving -tele jewellery and monsters in nets. And to make the
code messier.

--------------------------------------------------------------------------------
bd03ef8ca2 | Nicholas Feinberg | 2016-08-10 22:49:59 -0700

Fix a Ru redirection bug
It would claim to redirect a monster's attack even when it failed
to do so.

--------------------------------------------------------------------------------
ed4d5f264c | Nicholas Feinberg | 2016-08-10 22:46:42 -0700

Simplify Ru spellcasting interruption code

--------------------------------------------------------------------------------
49a6453837 | Nicholas Feinberg | 2016-08-10 22:41:11 -0700

Pull _should_cast_spell() from handle_mon_spell
Refactoring. No expected in-game effects.

--------------------------------------------------------------------------------
11009884b7 | Nicholas Feinberg | 2016-08-10 22:40:32 -0700

Pull _find_spell_prospect() from handle_mon_spell
Refactoring. In-game expected effects: fleeing & pacified monsters
are now affected by aura of brillaince.

--------------------------------------------------------------------------------
aed18fcb57 | Nicholas Feinberg | 2016-08-10 21:08:37 -0700

Don't list hex %s for friends' spells
Not super useful, and actively wrong in the case of hex ancestors.
(Though perhaps that should be handled separately?)

--------------------------------------------------------------------------------
66e51c14a3 | Nicholas Feinberg | 2016-08-10 21:06:16 -0700

Add more wizmode info about hex power

--------------------------------------------------------------------------------
30d88ab2af | Nicholas Feinberg | 2016-08-09 22:15:51 -0700

Make most gods count plant/nonliving kills
There's no particular mechanical or thematic justification to
prevent MH_PLANT or MH_NONLIVING monsters from giving piety to
gods that give piety for kills of all other holiness types; the
main effect, as far as I can tell, is to confuse players.

There are not that many of these types of monsters in the game, so
I doubt there'll be any serious balance implications, but piety
can always be tweaked if needed.

--------------------------------------------------------------------------------
cceb26a6b8 | Nicholas Feinberg | 2016-08-09 18:56:16 -0700

Remove a reference to decks using evocations (})

--------------------------------------------------------------------------------
6a29f8a98a | Nicholas Feinberg | 2016-08-09 15:26:03 -0700

Improve some misleading function names

--------------------------------------------------------------------------------
16db51f6c1 | Nicholas Feinberg | 2016-08-08 22:54:23 -0700

Fix CREDITS, mailmap
oops

--------------------------------------------------------------------------------
1f77a522df | Nicholas Feinberg | 2016-08-08 22:48:39 -0700

Add adibis to mailmap & credits.txt

--------------------------------------------------------------------------------
c676ff4d68 | Nicholas Feinberg | 2016-08-08 18:55:07 -0700

Merge pull request #324 from adibis/master
Fix paralysed monsters following (10518)
--------------------------------------------------------------------------------
506db6d199 | Aditya Shevade | 2016-08-08 16:56:59 -0700

Added check_if_monster_incapacitated before removing them while going up/down 
the stairs

--------------------------------------------------------------------------------
259b4db2a9 | Nicholas Feinberg | 2016-08-08 16:09:01 -0700

Name zombies by their actual base type
E.g. "centaur warrior zombie", not "centaur zombie". It's very
confusing in play to see some monsters with identical names be
far more threatening (and show up as more threatening in the
sidebar) than others, and has caused bug reports in the past.

--------------------------------------------------------------------------------
ecadb8806a | Nicholas Feinberg | 2016-08-08 12:09:26 -0700

Refactor & document _get_book_spells() slightly

--------------------------------------------------------------------------------
88e4a7c850 | Nicholas Feinberg | 2016-08-08 11:45:50 -0700

Unbrace

--------------------------------------------------------------------------------
bd3eaeb8aa | Brennan Shacklett | 2016-08-08 11:37:59 -0700

Clean up spell memorization code
The spell to book relationship was no longer used, so removed it
and streamlined the remaining code.

--------------------------------------------------------------------------------
cdb7c7b73a | Nicholas Feinberg | 2016-08-08 10:15:45 -0700

Don't record tentacle segments as kills (10601)
Shouldn't they be using KILL_RESET instead of KILL_MISC, anyway?

--------------------------------------------------------------------------------
56b2fe98da | Neil Moore | 2016-08-08 02:46:16 -0400

Checkwhite monster_creation.txt.
[skip ci]

--------------------------------------------------------------------------------
481dbaadde | Isaac Sloat | 2016-08-07 22:27:48 -0700

Stronger messaging for Dg attribute boost.
Distinguish Demigod stat increases at XL%3 from the standard stat
increase for every other race.

--------------------------------------------------------------------------------
36ee1bccb9 | Isaac Sloat | 2016-08-07 22:22:37 -0700

Monster creation checklist.
This is a /docs/develop/ file meant to assist any future development of
new monsters. There are multiple files that all need to be edited, and
there seems to be no central guideline for which file needs which
changes. Especially for new developers, this should help familiarize
them with the code base.

I invite more experienced developers to edit / expand this file and to
correct any mistakes, misunderstandings, or omissions.

--------------------------------------------------------------------------------
38e3b354e7 | Nicholas Feinberg | 2016-08-07 18:17:50 -0700

Auto-ID spellbooks you step on

--------------------------------------------------------------------------------
82806789e8 | Nicholas Feinberg | 2016-08-07 10:30:10 -0700

Let Ash ID rods again (Arrhythmia)

--------------------------------------------------------------------------------
342353f400 | Nicholas Feinberg | 2016-08-07 09:44:01 -0700

Rewrite fixup_stone_stairs

--------------------------------------------------------------------------------
b519bebee1 | Neil Moore | 2016-08-07 09:54:11 -0400

Add nearby-danger.cc to MSVC and Android builds (miserium)

--------------------------------------------------------------------------------
289af9175a | Neil Moore | 2016-08-07 09:53:54 -0400

Add missing CRs in crawl.vcxproj.

--------------------------------------------------------------------------------
52934d3359 | Neil Moore | 2016-08-07 08:32:28 -0400

Allow specifying the Lua package name (bsdbeard)
With "make LUA_PACKAGE=lua-5-1". Vendors are not very consistent about
the name of Lua in pkg-config, as evidenced by this block of the
Makefile. This change also allows test-building against newer Lua
without having to modify the Makefile.

--------------------------------------------------------------------------------
463c9de4b1 | Nicholas Feinberg | 2016-08-06 15:53:27 -0700

Reorder the rune list in }
So as to not group Slime with the other lair runes, and other
things potentially misleading to new players.

--------------------------------------------------------------------------------
3c1ee9c4ce | Chris Campbell | 2016-08-06 18:46:53 +0100

Rework various negative energy checks
A single level of rN no longer grants immunity to various effects, and instead
increasing levels of rN reduce the effect to 50%/25%/0%, as was already the
case for the main rN checks (BEAM_NEG damage, and the amount of draining
applied).

Pain brand, staff of death, vampiric brand, vampiric attack flavour, pain
spell, vampiric draining spell, Yredelemnul drain life all now scale in the
same way against rN, and only rN+++ grants full immunity.

Agony is reworked to actually be MR-resistible single-target torment - its
damage is reduced by rN in the same way as torment (5% per level), Kiku can
protect against it, and only fully torment-immune creatures are unaffected.

--------------------------------------------------------------------------------
9c76b8a688 | Nicholas Feinberg | 2016-08-06 10:23:31 -0700

Simplify stabbing tiers
There are now two tiers of stabs. Stabbing a sleeping, paralysed,
or petrified enemy (one that's completely incapacitated) gets a
guaranteed large bonus; other types of stabs give a smaller bonus.

Buffs the following stab types: distracted (+50% dam), petrified
(+100% dam).

Weakens the following stab types: petrifying & net (-50% dam),
invisible stabs (slightly reduced stab proc chance).

Goal is to simplify the system so players can reasonably 'grok' it.
Compensating buffs and nerfs can be given out without further
complications, I think.

--------------------------------------------------------------------------------
d084d7a9ca | Chris Campbell | 2016-08-06 15:32:03 +0100

Turn ghostly flame into a pure negative energy explosion
Rather than being mostly a negative energy explosion, but with a small portion
of it bypassing rN, except not damaging undead even with the rN-bypassing
portion, and also healing undead a bit. The undead-healing was sort of used
by revenants, Josephine and bennu, but was unlikely to be especially relevant
compared just to the damage it deals. Making it pure negative energy also lets
Josephine catch herself within the blast without taking any damage.

Adds the draining effect to the explosion (rather than make it be another
separate-but-slightly-different damage type), and very slightly reduces the
damage.

Could still do with a better name for the effect, maybe.

--------------------------------------------------------------------------------
30c882ec26 | Chris Campbell | 2016-08-06 14:57:21 +0100

Don't flavour entropy weavers as being formicids
They're not at all like player formicids, since they are fast and don't burrow,
as well as having no real reason to have stasis. Flavour-wise they seem fine as
just being their own weird thing. Currently still left on the 'a' glyph, since
they could still feasibly be ant-like but unrelated to player formicids, but
moving them back to 'p' also might be fine.

--------------------------------------------------------------------------------
c38e0d8d8f | Neil Moore | 2016-08-06 09:54:43 -0400

Fix non-webtiles compilation (MarvinPA)

--------------------------------------------------------------------------------
f6b220f991 | Nicholas Feinberg | 2016-08-06 01:07:48 -0700

Don't let turtles act after withdrawing (10597)

--------------------------------------------------------------------------------
7c428e6488 | Nicholas Feinberg | 2016-08-06 00:49:42 -0700

Remove Tome of Destruction text (unused)
Feels like a waste... I wonder if we could re-use these somewhere?

Maybe not the 'binary code'.

--------------------------------------------------------------------------------
b8870a5e46 | Nicholas Feinberg | 2016-08-06 00:49:42 -0700

Further gutting of misc.cc

--------------------------------------------------------------------------------
baa4338449 | Nicholas Feinberg | 2016-08-06 00:49:42 -0700

Mostly gut misc.cc
Pull functions into a new nearby-danger file, and others.

--------------------------------------------------------------------------------
506d7b7e53 | Neil Moore | 2016-08-06 02:36:57 -0400

Pointerise _choose_band outparameters.
So they can be defaulted to null, avoiding the need for the caller to
use dummy variables.

--------------------------------------------------------------------------------
405512aac6 | gammafunk | 2016-08-06 00:46:29 -0500

Rename the crawl manual reST file and remove the doku wiki sync step
The reST file had been hosted on the doku wiki with a Makefile step to
synchronize it with the repo to allow for easier editing from
contributors. However github supports rendering reST files with the .rst
file extension, and has a nice editing interface. This obviates the need
to deal with the wiki sync step of the build process, which we
frequently forgot to run. Now that the master copy of the manual is the
one in the repo, so any changes will be incorporated in builds
automatically.

The release guide has been updated to reflect this, and I've clarified
the documentation update steps there in general.

--------------------------------------------------------------------------------
88a7474ef9 | Nicholas Feinberg | 2016-08-05 19:21:17 -0700

Spell school guideline tweaks (Brannock)
Clarify Conjurations and trim an leftover parenthetical.

--------------------------------------------------------------------------------
f9017aa3e8 | Nicholas Feinberg | 2016-08-05 19:12:20 -0700

Update the spell schools guide
Some parts were outdated; others were vague. Adds my own thoughts
on school differentiation.

--------------------------------------------------------------------------------
1ea189ace9 | gammafunk | 2016-08-05 19:53:07 -0500

Add Brannock to mailmap and CREDITS.txt

--------------------------------------------------------------------------------
86538d7e98 | gammafunk | 2016-08-05 19:38:28 -0500

Clean up wording in the install instructions
Don't reference a version number and refer consistently to "Crawl"
instead of mostly that and occasionally DCSS and "Crawl Stone Soup".

--------------------------------------------------------------------------------
8bc95f2911 | gammafunk | 2016-08-05 19:24:23 -0500

Move a tile to the right directory and rename tile enums
Use a naming scheme of MONS_OLD instead of MONS_PLAYER for the old
Serpent of Hell tiles, to be consistent with the other enums.

--------------------------------------------------------------------------------
c7f35b930a | Isaac Sloat | 2016-08-05 19:23:17 -0500

Preserve old uniques for tile_player_tile
On display:
-Wiglaf
-Maud
-the old Serpents of Hell

Comitter's Note:

This commit brings the Wiglaf, Maud, and old SoH tiles
back from the dead and puts them in a new mon/player subdir for tiles of
removed/unimplemented monsters that we want to allow with
tile_player_tile. Another three tiles already available for that purpose
have also been moved to mon/player. Closes #317.

When a monster is removed, if its tile is interesting for use with
tile_player_tile, place it in this directory and move its tile entry in
dc-mon.txt to the appropriate section. If the tile is of monster that
still exists (as is the case of the Serpent of Hell), the file/enum
should be renamed to have a prefix like "old".

--------------------------------------------------------------------------------
541410edee | Nicholas Feinberg | 2016-08-05 12:43:43 -0700

Deduplicate a check

--------------------------------------------------------------------------------
3763c35f91 | Nicholas Feinberg | 2016-08-04 21:31:49 -0700

Remove an unused cast
Seems to have been added as part of a rampant copy-paste scheme.

--------------------------------------------------------------------------------
4ed3155f6c | Alan Malloy | 2016-08-04 16:50:39 -0700

Rename Ds 'Damnation' ability to 'Hurl Damnation'

--------------------------------------------------------------------------------
cf389738d7 | Nicholas Feinberg | 2016-08-04 16:12:48 -0700

Merge pull request #316 from larry-he/master
Remove reference to cTele
--------------------------------------------------------------------------------
4b319e18ec | larry-he | 2016-08-04 19:01:43 -0400

Remove reference to cTele

--------------------------------------------------------------------------------
99dd0f4310 | Alan Malloy | 2016-08-03 16:52:27 -0700

Simplify stash search prefixing

--------------------------------------------------------------------------------
0b1d89b9fc | Nicholas Feinberg | 2016-08-03 16:41:42 -0700

Improve &{ item detection

--------------------------------------------------------------------------------
e0cd3b9d06 | Alan Malloy | 2016-08-03 15:28:11 -0700

Fix stash search prefix for negative stat bonuses (jwoodward48ss)
Reported in https://crawl.develz.org/mantis/view.php?id=10594

--------------------------------------------------------------------------------
dac414d021 | Nicholas Feinberg | 2016-08-02 18:06:57 -0700

Disallow butchering forbidden corpses (Arrhythmia)
Rather than prompting.

Crawl trivia question: can the game ever print "It would be a sin
to bottle or butcher this!" ?

--------------------------------------------------------------------------------
eb5102e485 | Chris Campbell | 2016-08-02 19:08:07 +0100

Don't try to transform already-transformed players with Jiyva wrath

--------------------------------------------------------------------------------
1ce6cb924d | Chris Campbell | 2016-08-02 17:15:49 +0100

Add a message to monster descriptions when its spellset has been filtered

--------------------------------------------------------------------------------
61d329afe0 | Chris Campbell | 2016-08-02 17:10:22 +0100

Don't list stealth/MR in word form on @ and %
Since it's now listed in bar form, as with resistances.

--------------------------------------------------------------------------------
fec9346ed2 | Chris Campbell | 2016-08-02 16:39:30 +0100

Don't make known traps trigger as if unknown when blinking

--------------------------------------------------------------------------------
2d8f18954e | Chris Campbell | 2016-08-02 16:36:33 +0100

Adjust Jiyva wrath
Remove the slimify random monster effect, split the contamination and bad form
effects up, and rework the bad form list. Also make all wrath effects have a
chance of removing slime mutations.

--------------------------------------------------------------------------------
d08397283f | Chris Campbell | 2016-08-02 16:35:55 +0100

Improve some god wrath handling

--------------------------------------------------------------------------------
5566a1ab4f | Alan Malloy | 2016-08-01 22:04:00 -0700

Fix my use of incorrect brace style

--------------------------------------------------------------------------------
15bb84d5c4 | Nicholas Feinberg | 2016-08-01 17:19:45 -0700

Maybe fix a spell note crash

--------------------------------------------------------------------------------
37ecd969ad | Chris Campbell | 2016-08-02 00:10:19 +0100

Fix descriptions of artefact rings of fire/ice (#10588)

--------------------------------------------------------------------------------
06893fddef | Nicholas Feinberg | 2016-08-01 14:59:23 -0700

Filter out conflicting books from xv
When examining a monster with multiple spellsets, don't display
spellsets that the player can deduce the monster can't have. (If
it's cast a spell that's not in that spellset while the player was
watching.)

I'd rather display them in darkgrey, but we don't currently support
color in monster spellset descriptions.

--------------------------------------------------------------------------------
a2764fc868 | Nicholas Feinberg | 2016-08-01 14:59:23 -0700

Display seen spells for panlords

--------------------------------------------------------------------------------
8e4a7f34ba | Nicholas Feinberg | 2016-08-01 14:59:23 -0700

Track seen spells for individual mons

--------------------------------------------------------------------------------
efe75ede12 | Nicholas Feinberg | 2016-08-01 14:59:20 -0700

Remove a reference to unholiness (comment)

--------------------------------------------------------------------------------
db7e7f82b7 | Chris Campbell | 2016-07-31 23:15:50 +0100

Remove an obsolete zombie vault (Shard1967)

--------------------------------------------------------------------------------
8e71ee39b2 | Alan Malloy | 2016-07-31 00:34:06 -0700

Describe Asterion's Greater Servant of Makhleb

--------------------------------------------------------------------------------
462a81385e | Alan Malloy | 2016-07-30 19:58:12 -0700

Revert "Remove a pointless use of yesnoquit"
This reverts commit 02428aae6f9ad5e34950f942fb46d5cb4434fa33.

That commit had the unfortunate effect of causing ESC to act as a
"yes" instead of a "cancel".

--------------------------------------------------------------------------------
709fac1c69 | Nicholas Feinberg | 2016-07-30 15:33:25 -0700

Fix monster weapons gen (10587)
Logic was subtly incorrect for monsters that sometimes, but not
always, spawned with ranged weapons in addition to melee weapons.

--------------------------------------------------------------------------------
4b671add98 | Chris Campbell | 2016-07-30 17:44:11 +0100

Fix spelling

--------------------------------------------------------------------------------
063d7283a2 | Chris Campbell | 2016-07-30 17:23:10 +0100

Adjust various scales mutations
Reduce the AC from rough black/iridescent scales, and slightly improve icy blue
and molten scales. Also improve Jiyva's gelatinous body mutation, and adjust
some mutation descriptions, to hopefully describe their effects better than
the awkward "-foe acc" for example (although the new wording still could be
improved).

--------------------------------------------------------------------------------
7187af90ae | Chris Campbell | 2016-07-30 16:22:42 +0100

Remove Sif amnesia's MP cost
As with other tactical god abilities (transfer knowledge, remove bad mutation).

--------------------------------------------------------------------------------
f355b5fa02 | Chris Campbell | 2016-07-30 16:20:18 +0100

Sync manual from wiki

--------------------------------------------------------------------------------
82d77dc1cf | Chris Campbell | 2016-07-30 16:19:50 +0100

Remove some references to book amnesia

--------------------------------------------------------------------------------
77c37a150e | Alan Malloy | 2016-07-29 21:09:00 -0700

Teach Slow/Haste/Paralysis about monsters with stasis
They now show "not susceptible", like Ensorcelled Hibernation for
monsters with rC+.

Probably will leak a little information if we ever reintroduce an
item that gives stasis and let monsters wear it.

--------------------------------------------------------------------------------
82b1012352 | Nicholas Feinberg | 2016-07-29 11:04:36 -0700

Despoiler always-uncursed monster weapons

--------------------------------------------------------------------------------
4786b365ed | Nicholas Feinberg | 2016-07-29 10:58:31 -0700

Monster weapon dataification WIP

--------------------------------------------------------------------------------
d35b13721a | Nicholas Feinberg | 2016-07-29 09:24:09 -0700

Remove a superfluous paren (Yermak)

--------------------------------------------------------------------------------
f7b9900952 | Nicholas Feinberg | 2016-07-29 09:00:01 -0700

Take Wiglaf's axe, too.

--------------------------------------------------------------------------------
36c65c99c4 | Alan Malloy | 2016-07-28 23:15:42 -0700

Replace some magic numbers with new EQ_ enum values

--------------------------------------------------------------------------------
fdc8f687c1 | Nicholas Feinberg | 2016-07-28 22:21:17 -0700

Add a comment for draining math
Since it confused the heck out of me.

--------------------------------------------------------------------------------
dbfb0c6a07 | Alan Malloy | 2016-07-28 12:20:53 -0700

Merge pull request #313 from oblivionis/patch-1
Update branches.txt (ru)
--------------------------------------------------------------------------------
73a16c5bba | Nicholas Feinberg | 2016-07-28 10:31:13 -0700

Fix a tutorial message wrt zombie hp bars (dowan)

--------------------------------------------------------------------------------
6b228a8902 | Nicholas Feinberg | 2016-07-27 23:59:02 -0700

Fix &zawaken (or don't crash, at least)

--------------------------------------------------------------------------------
c6113468ba | Nicholas Feinberg | 2016-07-27 23:53:05 -0700

Improve the &zawaken crash

--------------------------------------------------------------------------------
39d47575d3 | Nicholas Feinberg | 2016-07-27 23:49:59 -0700

Fix &ztele and friends (10575)

--------------------------------------------------------------------------------
46620598b3 | Nicholas Feinberg | 2016-07-27 23:05:18 -0700

Remove duplicate colour tags (10583)
I don't know why these were here in the first place or why they
broke, which makes me worried, but i'm crossing my fingers & hoping
for the best.

--------------------------------------------------------------------------------
868019ac05 | Nicholas Feinberg | 2016-07-27 22:06:59 -0700

Display damage to derived undead
As far as I can tell, derived undead initially didn't show damage
taken because they took damage directly to their max HP, possibly
as a weird way to prevent them from healing. That was changed years
ago, but the lack of health bar was deliberately preserved,
possibly for sentimental reasons.

I share that sentiment - it is a distinctive mechanic - but it's
not ultimately one that has a huge impact on the game, and it's
extremely misleading for new players. (When you hit a monster and
no health bar appears - especially a zombie, which everyone knows
can only be killed by special methods - it's totally reasonable to
assume that you cannot kill that thing with the means you're using!)

This also lets derived undead be healed, which is almost completely
irrelevant. It means they now synergize with spectral fireball,
which seems good?

--------------------------------------------------------------------------------
22eb85313b | Nicholas Feinberg | 2016-07-27 21:28:09 -0700

Remove book amnesia
One of crawl's most secret features, book amnesia allowed you to
destroy a book to forget one of its spells. In principle this is a
cool tradeoff (do you want to give up the option of ever learning
any of the spells in the book?), but it's rarely relevant in
practice (even for players who know about it!), and if it were
relevant, good play would involve a complex optimization game,
cross-referencing available books and the spells within. Which does
not seem especially fun to get dragged into midway through a
perfectly good game of DCSS.

?amnesia generation bumped up by ~12% to compensate, though that's
not really necessary. Soothes me on some level.

There's no save compat involved here, so in the event of dramatic
book mechanic changes (as have been proposed by e.g. Mr. Ploog),
this should be relatively straightforward to revert.

--------------------------------------------------------------------------------
6afae752bc | Nicholas Feinberg | 2016-07-27 21:20:08 -0700

Improve Jiyva stat-tweak messages (PlatinumSpider)

--------------------------------------------------------------------------------
778f431c61 | Alan Malloy | 2016-07-27 16:24:09 -0700

Allow using ?EA/?EW/?BW on floor items (Undo)

--------------------------------------------------------------------------------
b952fa4eff | Neil Moore | 2016-07-27 19:22:04 -0400

Fix g++ 4.7 compilation.
Trying to instantiate a template with no arguments here gives <unresolved
overloaded function type>, since C++11 support was not yet complete.

Go back to the lambda, but leave the change to always_true, since two or
more arguments might still be useful.

--------------------------------------------------------------------------------
13af6d27b1 | Neil Moore | 2016-07-27 18:37:07 -0400

Improve always_true and use its new powers.

--------------------------------------------------------------------------------
07f772be2d | Alan Malloy | 2016-07-27 14:24:42 -0700

Rename OSEL_ENCH_ARM => OSEL_ENCHANTABLE_ARMOUR
For readability and consistency with OSEL_ENCHANTABLE_WEAPON.

--------------------------------------------------------------------------------
80cc50c4ab | Nicholas Feinberg | 2016-07-25 22:58:34 -0700

Further stab refactoring

--------------------------------------------------------------------------------
ca1b16771e | Nicholas Feinberg | 2016-07-25 22:45:08 -0700

Misc stab refactoring

--------------------------------------------------------------------------------
9c6a58d327 | Alan Malloy | 2016-07-24 13:15:15 -0700

Let ixD work as well as ixd, etc

--------------------------------------------------------------------------------
2faea5e2a5 | Ben Haines | 2016-07-24 09:38:57 -0700

List scried monsters in ^x (10497)
Has some weird effects on rest & travel, but possibly only
messaging differences.

--------------------------------------------------------------------------------
f1cb111510 | Shmuale Mark | 2016-07-24 09:44:38 -0400

Restart permaflight after Roots ends (#10572).

--------------------------------------------------------------------------------
4dc3416460 | Shmuale Mark | 2016-07-24 09:35:11 -0400

Fix an incorrect message (#10516).

--------------------------------------------------------------------------------
e643222f76 | Nicholas Feinberg | 2016-07-23 23:37:24 -0700

Flatten bolt::attempt_block()

--------------------------------------------------------------------------------
0109f1f8e8 | Nicholas Feinberg | 2016-07-23 23:23:37 -0700

Remove pierces_shields()
Was added for large rock piercing (so they didn't also penetrate
shields), and has been vestigial ever since that was removed, in
55eae48bb.

--------------------------------------------------------------------------------
40768a377b | Nicholas Feinberg | 2016-07-23 15:40:52 -0700

Fix TSO desc (10573)
Broken in 8a19e522.

--------------------------------------------------------------------------------
919fee89ce | gammafunk | 2016-07-23 16:14:37 -0500

A watery temple Lair ending
An ancient temple flooded with waters brought forth by a mystic avatar.

This gives a few shoals monsters a new home in a memorable encounter at
the end of Lair. A merfolk avatar takes advantage of the shallow water
to lure incautious players into the dangerous center area. Entry to this
area is either through the water-covered entry or via two locations of
wall that have "collapsed". At these areas, one to four wall tiles are
replaced with dry land with the wall tiles moved into nearby
water. Players without a source of flight can use these locations,
together with a few other locations where statues may have degraded into
land, to fight closer to the center. Land is never terribly far away in
all directions, but the player has to watch out for a number of innately
fast monsters as well as amphibious monsters that move quickly in water.

--------------------------------------------------------------------------------
f162884644 | Alan Malloy | 2016-07-23 13:37:14 -0700

Fix handling of player cblinking onto a monster
Instead of wasting the scroll and doing a random blink, tell the
player they can't blink onto the monster and ask for a new target.

--------------------------------------------------------------------------------
d5f540d4aa | Nicholas Feinberg | 2016-07-23 08:37:05 -0700

Fix the staff wield refactor (oops)

--------------------------------------------------------------------------------
bf6fe6030a | rdunk | 2016-07-23 08:32:57 -0700

Fix Big Wings tiles weirdness (10555)
Updating the player tile when the big wings mutation is acquired

--------------------------------------------------------------------------------
4c63d25a2a | Nicholas Feinberg | 2016-07-20 22:37:24 -0700

Simplify a special case for staves (gammafunk)
It used to take a special case to represent their handedness, but
with the current system (as of ~2 years ago?), we can do things
more straightforwardly.

--------------------------------------------------------------------------------
133f65f22d | Chris Campbell | 2016-07-19 00:12:00 +0100

Adjust descriptions for partially-irresistible spells
To better indicate the differences between the three levels of irresistibility.

--------------------------------------------------------------------------------
6b21fdfe50 | Chris Campbell | 2016-07-19 00:00:09 +0100

Adjust wording for a recite message
To hopefully better imply that the audience could be affected, if you had more
piety and/or invocations.

--------------------------------------------------------------------------------
f5a4b3b2e2 | Chris Campbell | 2016-07-18 19:13:38 +0100

Refactor some recite handling and clarify a message
To make the distinction between "all visible monsters are recite-immune" and
"you don't have enough recite power to affect any visible monsters" clearer.
Recite generally could probably do with a bunch more refactoring.

--------------------------------------------------------------------------------
1a72b7857e | Chris Campbell | 2016-07-18 19:13:28 +0100

Fix a warning

--------------------------------------------------------------------------------
c171b95160 | Chris Campbell | 2016-07-18 17:57:06 +0100

Don't give wind drakes MR_RES_WIND
Unlike twisters/air elementals, they're not actually made of wind and don't
really have any good reason to be immune to Airstrike and Tornado.

--------------------------------------------------------------------------------
674d22eadc | Shmuale Mark | 2016-07-17 10:38:10 -0400

Remove the unused code for the context menu.

--------------------------------------------------------------------------------
437923e849 | Shmuale Mark | 2016-07-17 10:38:10 -0400

Make the tooltip a little more useful.
It'd be nice to also show item(s), but that info isn't sent to Webtiles (yet).

--------------------------------------------------------------------------------
200a676b1c | Shmuale Mark | 2016-07-17 10:38:10 -0400

Fix a ton of --more--s when using Webtiles mouse commands.

--------------------------------------------------------------------------------
52f5b20b69 | Florian Diebold | 2016-07-17 10:38:10 -0400

Some work on Webtiles mouse control (walking around and attacking).

--------------------------------------------------------------------------------
fd378738f8 | Nicholas Feinberg | 2016-07-16 20:27:58 -0700

Remove an obscure, bad flyboot/evosac interaction
If you turned off flying on a pair of boots of flying, and then
sacrificed evocations, no boots of flying would ever work for you
ever again.

--------------------------------------------------------------------------------
d62de01ec1 | Nicholas Feinberg | 2016-07-16 16:06:46 -0700

Improve Alistair's prompting (10566)
Don't allow z-casting without any visible targets.

--------------------------------------------------------------------------------
3cba913b37 | Nicholas Feinberg | 2016-07-16 10:26:22 -0700

Don't say sac evo players can stop flying (10567)
With the ability menu. (Since they can't!)

--------------------------------------------------------------------------------
9e57aa48d0 | Nicholas Feinberg | 2016-07-16 10:23:56 -0700

Don't crash on ?/mmer (10568)

--------------------------------------------------------------------------------
3c636f0683 | Alan Malloy | 2016-07-14 12:48:33 -0700

Simplify special cases in nicolae_arrival_memento_mori

--------------------------------------------------------------------------------
3130bb937a | Nicholas Feinberg | 2016-07-14 10:12:26 -0700

Fully support SoH in ?/M
And fixup some code duplication.

--------------------------------------------------------------------------------
4c5f75f736 | Nicholas Feinberg | 2016-07-14 09:02:12 -0700

Hint at eyeball mut's confuse effect (10563)
So many effects in one mut...

--------------------------------------------------------------------------------
29419077c8 | Nicholas Feinberg | 2016-07-14 00:34:10 -0700

Support SoH in ?/MD (8139)
the most niche shit possible

--------------------------------------------------------------------------------
f36c7f1b1d | Nicholas Feinberg | 2016-07-13 23:51:01 -0700

Improve shaft messaging for invis victims (1025)
Wording by OG17.

--------------------------------------------------------------------------------
4f87aa0b33 | Nicholas Feinberg | 2016-07-13 23:49:17 -0700

Remove debug plant changes (chequers)

--------------------------------------------------------------------------------
8ac700dd98 | Nicholas Feinberg | 2016-07-13 23:48:27 -0700

Fix compilation.

--------------------------------------------------------------------------------
43b5ce8457 | Nicholas Feinberg | 2016-07-13 23:20:10 -0700

t-w -> t->g (5796)
Waiting implies both sticking closer to the current position, and
rather less wanton aggression. 'Guard' isn't quite right, but it's
closer.

t-w still works, as an alias.

--------------------------------------------------------------------------------
41625de702 | Nicholas Feinberg | 2016-07-13 22:45:28 -0700

Clarify _add_plant_clumps() behaviour
The defaults parameters were never used, and described the exact
opposite of what they did.

--------------------------------------------------------------------------------
45eda1410b | Nicholas Feinberg | 2016-07-13 22:25:31 -0700

Simplify monster XP logic
Don't give hostile monsters XP for killing friendly MF_NO_REWARD
monsters. Doesn't seem like it's worth the code complexity...

--------------------------------------------------------------------------------
09fea407f8 | Nicholas Feinberg | 2016-07-13 22:22:13 -0700

Use testbits

--------------------------------------------------------------------------------
f6941dad65 | Nicholas Feinberg | 2016-07-13 22:19:18 -0700

Add MF_NO_REWARD to TRJ summons' descrs (5719)

--------------------------------------------------------------------------------
de0b808e93 | Nicholas Feinberg | 2016-07-13 22:10:01 -0700

Improve cloud dprfs

--------------------------------------------------------------------------------
aae9137237 | Shmuale Mark | 2016-07-13 19:03:01 -0400

Prevent creating undead shapeshifters.
Undead can't polymorph in any other way; no reason to have a weird special case.

--------------------------------------------------------------------------------
e9eda62bf6 | Shmuale Mark | 2016-07-13 19:02:01 -0400

Bind Souls creates simulacra.
These hit a little harder than spectres, hopefully making the spell
more focused on creating things that can threaten the player during
the battle.

Also adds blame information so that the simulacra show up as "animated
by a necromancer", and fixes polymorphed uniques showing up with a ,
in their names in xv (they did not do so anywhere else since 0.7).

--------------------------------------------------------------------------------
0ee3879228 | oblivionis | 2016-07-13 23:28:48 +0300

Update branches.txt

--------------------------------------------------------------------------------
9f9626734c | gammafunk | 2016-07-13 05:41:54 -0500

Some tweaks to a Lair vault
Thin out the eels in the hidden stream by reducing placement a bit more
and adding flying/giant alternate monsters. Make the fallback hatch the
only land tile in that area, since that's all you need to either stand
ground or take the hatch. Better randomize monster placement in the
entrance area, add floor colors for the loot area to match the use of
floor tiles, and refactor some glyph usage. Update the tags to remove
patrolling and the no rotation condition, since neither were necessary,
and allow it to place on Lair:2 given a shortened Lair.

This vault could use some more rework to reduce the trees and maybe add
some extra structure in those areas. It was made back when two tiles of
trees were necessary to obstruct the player's LOS.

--------------------------------------------------------------------------------
9f5ef2c99f | Nicholas Feinberg | 2016-07-12 23:57:37 -0700

Tweak pacification dprfs

--------------------------------------------------------------------------------
6413dabb7e | Nicholas Feinberg | 2016-07-12 23:48:09 -0700

Refactor Ely pacification
Should be roughly equivalent to the old behavior, give or take a
bit.

--------------------------------------------------------------------------------
13d2f49ab9 | Nicholas Feinberg | 2016-07-12 21:32:51 -0700

Changelog through 0.19-a0-975-gfff5315

--------------------------------------------------------------------------------
fff53150ab | Nicholas Feinberg | 2016-07-12 18:30:31 -0700

Improve elemental_laboratory symm. (regret-index)
For aesthetics.

--------------------------------------------------------------------------------
51a0e26374 | Nicholas Feinberg | 2016-07-12 18:26:15 -0700

Fix an uncancellable batform crash (CInkIbrahim)
This is not the first, and it will not be the last.

--------------------------------------------------------------------------------
b0fe355777 | Nicholas Feinberg | 2016-07-12 18:06:20 -0700

Bugfix: floor is now lava (6108)
And add a few hatches, both to fix teleport/flight-expiry traps in
mu_elemental_laboratory.

--------------------------------------------------------------------------------
5a1fde62fa | Nicholas Feinberg | 2016-07-12 17:58:28 -0700

Fix remember_name option (4781)
It'd remember the last name you used before you set the option,
forever.

--------------------------------------------------------------------------------
ece23030ab | Nicholas Feinberg | 2016-07-12 17:02:05 -0700

Don't allow monsters to trample past lava (7259)
Unless they can actually move into the lava.

--------------------------------------------------------------------------------
9a4211b1d9 | Nicholas Feinberg | 2016-07-12 12:49:40 -0700

Fix Bind Soul webtiles icon bug (10562)

--------------------------------------------------------------------------------
746d6c3231 | Nicholas Feinberg | 2016-07-12 10:42:15 -0700

Possibly fix a local tiles crash (10296)
I can't reproduce it, but my best guess is that, under some
circumstances, an item is dropped without the tilereg-inv being
updated. In that case, our next shift-click on that item (trying
to 'actually' drop it, since it appears to still be in the
inventory) will cause the observed assertion failure -
ASSERT(item.defined()), since the specified inventory slot will
hold nothing on the second click.

Anyway, hopefully this helps.

--------------------------------------------------------------------------------
d46c65fac3 | gammafunk | 2016-07-12 05:01:35 -0500

Some tweaks to a depths vault
Some changes to gammafunk_depths_water_palace. Remove monsters that no
longer generate in Depths. Instead of choosing between the Enchantress'
band and a spriggan berserker band, choose between the former and a
giant "band" lead by a titan, falling back to this band if the
Enchantress has already generated. Consolidate and rework some monster
sets to work best given their placement with other monsters in the
vault.

This also sets a floor color for console, uses ordinary tree tiles
instead of mangrove tiles, since that might lead players to think
destroying the tree would produce a water tile, and makes some other
minor cosmetic changes and des refactorings.

--------------------------------------------------------------------------------
a3cd88f795 | regret-index | 2016-07-12 04:08:44 -0400

Combine Wiglaf and Donald
Wiglaf and Donald are both old uniques with beloved flavour ("is a dwarf",
"complains about everything just like us"), and a mechanical basis almost
solely on heavy-armoured melee and decent chances for a shield. Donald has
a coinflip chance for his shield to be reflection-branded plus a decent
chance for a brand plus the capability to swim, while Wiglaf has a 66%
chance for a shield plus Might / Haste invocations from a very old version
of Okawaru that somewhat reflects the more modern Heroism and Finesse.

They've also got very poor killstats and general power levels for their
midgame / endgame placement. The endless power spiral of buffs and updates
and vault control meant to address the bland and bloated nature in Crawl's
midgame / endgame over the years has introduced stronger characters and
stronger nearby monsters. Donald floats around merfolk impaler and orc
warlord levels of stats and equipment, both monsters reasonable to see with
much mixed company in the branch ends of his depths. Wiglaf is in an awkward
limbo of simplicity in-between and superceded by Rupert and Mennas.

They could simply get higher damage numbers, guaranteed equipment quality,
or earlier placements. It is also somewhat valuable to keep around simpler
uniques that aren't horribly threatening, and they do not contribute much
to information overhead. Still, they're also both plain.

With Donald's flavour ringing truer and truer over the years, and with
Wiglaf representing a removed race and and an ancient version of a god,
Donald takes Wiglaf's Might and Haste (and slim chance for crystal plate)
as Wiglaf joins the retirement home alongside Duane, Norbert, Michael,
Francis, and many others. Donald is cut from Labyrinths at the same time,
though- he's already a bit much there. For now, to avoid wrangling out
more flavour edits and with the invocations still inaccurate Donald isn't
explicitly a priest of Okawaru, though it wouldn't be too much for him to
be made one either- others can decide on this.

Joseph's tile and description gets Wiglaf's stupid-looking hat:
thanks, ontoclasm.

--------------------------------------------------------------------------------
966ac71c85 | regret-index | 2016-07-12 03:55:25 -0400

Wide minor vault edits, once more
Notes:
  * Move the flying skulls in hangedman_screamer outside of the niches in
    the vault, removing the autoexplore-trap aspect. Likewise, provide a
    downstairs hatch as emergency exit half way through the river in
    gammafunk_lair_enchanted_lake.
  * Ice statue garden ice caves have more loot, since they were upgraded
    with white ugly things and already were pretty mean in being earlier.
  * The ice cave with top-tier freezing-branded weaponry / armour,
    _small_demon, gets a (fixed freezing brand) reaper in the earlier
    difficulty setting: dealing with the low encounter variety, correlating
    to the specific map's theme of nearly solely demons, and to compensate
    for that reward. It's not that far away from a frost giant, anyway-
    hits harder and demonic resists in exchange for no bolts of cold and
    noticeably less health- and he is still hurt a bit (but not too much)
    by the freezing clouds outside the chamber. Still, beware.
  * Take robes and non-cloak auxillery equipment of [fire | cold] resistance
    out of ice cave and volcano loot, replacing the latter with good_item
    armour in the same slots, to reduce unique edge cases (sigh) and provide
    more portal incentives / tempting interim heavy armours.
  * Fit Infestation into the Necronomicon-level randbooks that appear
    2/5 times in every Crypt end (who remembers these exist?)
  * Make (randomly) about half of the cacodemons in dis_st ancient champions,
    to cover the same rare unholy conjurer bit with less malmutate.
  * Cut the burning bushes from the Zot Defense vault, removing them from the
    normal game. They'd be a good candidate for overall removal if it wasn't
    for Sprint III, which could really use updates based on the contents
    re-used from Sprint. Though, perhaps they could replace the throw flame
    / frost statues in those Vehumet overflow altars?...
  * The geh_mu castle is set backwards and the crimson imps are traded up
    for red devils: even with a weak sample size the map has the lowest
    kill stats of any end due to a low concentration of guaranteed threats
    and minimal winding to its path, so this backwards castle should help
    in extended's constant hopes for random bad luck.
  * Fix accidentally removed linwurms in the wormcave lair end and fix
    a lowered hell hound / raiju count in the dog / bear lair end.
  * Cut the skeletal archer vault in Crypt / Tartarus for now. The layout
    is a mostly-empty plain box, and the monsters in it are pointlessly
    distinguished for a simple and instantly visible change in equipment.
    Very resilent ranged monsters is a conceit perhaps usable elsewhere,
    but not in such a plain fashion.

  * Buff special rooms some more. The tiniest room size is less common,
    big kobolds are more common in kobold rooms, plain orcs less
    common in orc rooms, derived undead less common in morgues,
    oozes substantially less common and acid blobs / azure jellies
    quite a ways more common in later jelly pits, and sphinxes a touch
    more common in late mythical zoos. Still need some more work done,
    but flooding the level around a room with themed mean enemies is
    still a valuable basic vault concept.

--------------------------------------------------------------------------------
50bf062cc7 | Chris Campbell | 2016-07-11 21:09:47 +0100

Fix chardump messaging for Gozag favour
Has the side-effect of changing Uskayaw's prayer messages to be based on
invocations skill, as the titles and ^ favour messaging are. Also adjusts the ^
favour messages to not overlap with p messages while meaning a different thing.

--------------------------------------------------------------------------------
a6a42c35fe | Chris Campbell | 2016-07-11 20:43:25 +0100

Fix Trog wrath's rotting effect

--------------------------------------------------------------------------------
13f8e94339 | Chris Campbell | 2016-07-11 20:42:35 +0100

Unseal doors/stairs when polymorphing vault wardens
And more generally, cancel monster-based terrain changes when polymorphing or
killing that monster. Also make flooding from elemental wellsprings and water
nymphs be tied to that monster.

--------------------------------------------------------------------------------
b633e9cc84 | Chris Campbell | 2016-07-11 20:25:00 +0100

Adjust faerie dragon armour properties
Make the HP property be positive on average, when it appears.

--------------------------------------------------------------------------------
643fa04f85 | Chris Campbell | 2016-07-11 20:24:56 +0100

Remove monster-cast Death's Door
Having a chance of invincibility doesn't work so well as a monster spell, since
it's sometimes just not cast at all, and otherwise just extends the fight for
a while without being very likely to change the outcome. It can also be forced
by reading fear at the caster, which is a very weird interaction.

--------------------------------------------------------------------------------
cf287ad9c5 | Chris Campbell | 2016-07-11 18:14:08 +0100

Fix pain bond not actually working for low-intelligence monsters

--------------------------------------------------------------------------------
991fc860d6 | Nicholas Feinberg | 2016-07-11 09:11:16 -0700

Remove lowercase norris from arenasprint (10557)
lowercase norris is very powerful

--------------------------------------------------------------------------------
d69d43cc34 | Nicholas Feinberg | 2016-07-10 09:03:20 -0700

Don't bind allies' souls (10556)

--------------------------------------------------------------------------------
f4ea323c64 | Neil Moore | 2016-07-09 23:34:02 -0400

Let it end in unravelling!
That is, make Vehumet support Yara's Violent Unravelling.

--------------------------------------------------------------------------------
6bfe3717e8 | regret-index | 2016-07-09 21:01:38 -0400

Combine Urug and Maud
Maud doesn't have much of any beloved flavour, as "obscure reference to
Nethack's reference to a poem" is pretty niche. She does have a solid
killrate due to th pairing of her high chance of a branded weapon with a
still decently early appearance, but beyond that bit of niceness she lacks
any sort of real mechanical variety beyond having decent health for an
early-game monster that lucked into a brand. Early game has uniques not
that far away from pure melee anyway, so she's not really regulating
simplicity either.

Urug, who has around the same depth and who branches out from standard
speed melee with javelins, picks up Maud's high-quality weaponry as Maud
joins the list of retired early and boring uniques. Urug also leans a
little closer to Maud's heavy armour, losing the possiblity of leather
armour. Beogh worshippers can be happier and it gives Urug more to work
with mechanically (though, in not being a warrior princess, she could
probably use some more tweaks to her flavour to explain why an orc knight
with javelins scarred by harpies is running around with double swords and
demon weapons).

--------------------------------------------------------------------------------
a9c347bea4 | regret-index | 2016-07-09 20:05:57 -0400

More early Vaults branch population tweaks
The Vaults branch has inherited a lot of weaker monsters from D that push
against the arguable eventually-played-up theme of guarding humanoids /
guardian beasts / guard constructs and undead, and this could use some
clean-up.

Vampire mosquitoes are cut from the branch (not dangerous for the depth,
rather tangential from the theme), with the oddly high weight distributed
mostly onto wizards (with their new focus and to compensate a little in
banishment for the loss of it on ogre mages) as well a bit on rakshasa and
boggarts.

Reintroduce entropy weavers to Vaults to directly replace the redback
weighting- concerns of the support monster being easily escaped do not really
suit the branch in which escape is most strongly limited, when placed by
themselves the formicids fall under humanoid placements better than redbacks,
and they still get redback bands / got increased speed for looser placement
anyway.

Fire crabs are cut from the branch (not very dangerous for the depth, hurt
nearby enemies), and dump the weighting into more ice dragons (so they're
not half as common as fire dragons in the branch).

Other monsters that could be weighted out from the branch: hornets, plain
wraiths, unseen horrors, wolf spiders. The early orcs brought in by
orc knights could probably also use some addressing.

--------------------------------------------------------------------------------
87348de860 | regret-index | 2016-07-09 19:51:39 -0400

Split ogre mage and wizard spell sets, alter both (elliptic)
Wizards and their more common spell set semi-derivatives, ogre mages, are
some of the last of the monsters with many spellbooks, no basic rules held
between any of them, and no shared spellcasting company to focus on dilution
with. Aside from being a bit much of a broad range of rather mixed spell
arrangements, ogre mage bands cooperate better with the hexes than with
the potential accidental friendly-fire with Mystic Blast or Fireball.

As such, the five spellsets on wizards and five alterations on such for ogre
mages have been split and altered into three sets for the both of them, with
the shared set of course being the one with Lehudib's Crystal Spear.

Ogre mages get:
 * Haste Other, Lightning Bolt, Slow, Paralyse, Haste
 * Haste Other, Venom Bolt, Confuse, Slow, Invisibility
 * Haste Other, Bolt of Fire, Bolt of Cold, Lehudib's Crystal Spear, Blink
while wizards get:
 * Stone Arrow, Lightning Bolt, Banishment, Invisibility
 * Mystic Blast, Fireball, Paralyse, Blink
 * Bolt of Cold, Lehudib's Crystal Spear, Slow, Haste

This sort of works out? Wizards focus on their highlights and ogre mages
mostly focus down harder on supporting their ogres- to the point of them
casting Paralyse more often and no longer casting Banishment. Plus, each
monster's sets share minimal overlap.

Erolcha's randomized spell set mechanics are thrown onto the wizard spell
set (she has no ogre companions to haste), though, and with thus more
frequent banishment chances she gets nudged down a floor: starting on D:9
instead of D:8. Erica and Louise's spell sets, which were previously copies
of the above changed Venom Bolt and Banishment spell sets, are peserved in
being split off from this due to not as costing much knowledge-overhead-wise.

--------------------------------------------------------------------------------
1ce7b775b3 | Chris Campbell | 2016-07-10 00:15:06 +0100

Adjust player fumbling chance (elliptic)
To be based on previous chances with average dex, rather than being such a
substantial change.

--------------------------------------------------------------------------------
cb3f820e40 | Chris Campbell | 2016-07-09 23:44:32 +0100

Fix basilisks gesturing
When their attacks are redirected under Ru.

--------------------------------------------------------------------------------
3411cc6469 | Chris Campbell | 2016-07-09 22:51:12 +0100

Don't give bonus HP to Kiku worshippers under DDoor
It's a pretty good spell anyway! (And the hidden Kiku interaction doesn't make
it more interesting.)

--------------------------------------------------------------------------------
14faddfab8 | Chris Campbell | 2016-07-09 22:42:32 +0100

Let Sif Muna start gifting books from 5* (gammafunk)
To give a bit more leeway with piety now decaying faster and being expected to
be used on channeling. 6* is also generally reserved just for special one-time
capstone gifts, so starting at 5* is more consistent there.

--------------------------------------------------------------------------------
1057760214 | Chris Campbell | 2016-07-09 22:40:13 +0100

Don't make shallow water fumbling chance depend on dexterity
For Very Important player-monster symmetry reasons.

(Also really because it's just a weird hidden extra thing for dexterity to do).

--------------------------------------------------------------------------------
4a52fa868d | Chris Campbell | 2016-07-09 22:37:36 +0100

Don't hyphenate "Shopping list"

--------------------------------------------------------------------------------
20019b5b6c | Chris Campbell | 2016-07-09 22:36:24 +0100

Remove kobold demonologists from Vaults spawn list

--------------------------------------------------------------------------------
799c4bf6f7 | Chris Campbell | 2016-07-09 22:35:40 +0100

Remove jackals and worms from Lair end vaults
The dog/bear end still has hounds, which should probably go too.

--------------------------------------------------------------------------------
d61ee61a56 | Chris Campbell | 2016-07-09 21:23:40 +0100

Fix messaging for curing with no device healing
Don't say that you partially reject the healing when using curing to heal from
poison, confusion etc.

--------------------------------------------------------------------------------
b338e1ef5b | Nicholas Feinberg | 2016-07-07 17:29:11 -0700

More orders/shouting refactoring

--------------------------------------------------------------------------------
c6a934433d | Nicholas Feinberg | 2016-07-07 17:12:37 -0700

Fix using 't' while berserked
The prompt for options didn't actually actually show up before, even
before the previous commit.

--------------------------------------------------------------------------------
ea7895c359 | Nicholas Feinberg | 2016-07-07 17:12:37 -0700

Let players give orders while silenced (MarvinPA)
Since it no longer makes noise.

--------------------------------------------------------------------------------
9fb69baf37 | David Ploog | 2016-07-08 00:46:38 +0200

Two fixes to compressed_dpeg_circular
1. Make sure that 10 altars care places 10 (not 12).
2. Don't generate more than one exit.

--------------------------------------------------------------------------------
5efadfb891 | Nicholas Feinberg | 2016-07-07 15:07:11 -0700

Ban friendly monsters from opening doors
To prevent them from sabotaging the player accidentally.

Possibly this should be a toggleable option, e.g. in t-*? Will have
to see if anyone complains.

--------------------------------------------------------------------------------
86877d040c | Nicholas Feinberg | 2016-07-07 14:47:08 -0700

Make ally commands silent (removeelyvilon)
The turn cost is already enough to discourage spamming commands
(unfun!), and the noise pushes it over to something that you want
to avoid whenever possible, in favor of manipulating your allies
with projectile targeting & other tricks. That's... fun? but very
unintuitive, not very good for new players. So let's make life a
little easier for them

There are plenty of ways to command allies nonverbally (gestures,
telepathy), so flavor's not a big deal.

It might make sense to split 't-t' into a separate command, since
it doesn't really have much in common with the other ally commands
anymore.

TODO: Someone needs to update the manual for this.

--------------------------------------------------------------------------------
a5bfcd2a61 | IronicDongz | 2016-07-07 13:09:21 -0700

Additional zombie tiles
Committer's note: fixed up whitespace & added support for other
derived undead.

--------------------------------------------------------------------------------
b3fecf5d98 | Nicholas Feinberg | 2016-07-07 12:57:58 -0700

Hook up Uskayaw's ability icons
Added, but not used, when the abilities were created.

--------------------------------------------------------------------------------
cfeccc49f0 | regret-index | 2016-07-07 03:47:54 -0400

Trim spells off of Kirke, Ignacio, ancient champions
Kirke has seven different spells of rather differing purposes, which is odd
for a unique with two distinct dangerous spells. With Porkolator and Slow
already for hexes, she can stand to lose Corona, but as she's rather
dangerous for her depth, she will also lose her long-standing, oddly placed
Deflect Missiles. Her total spells are thus Porkolator, Slow, Monstrous
Menagerie, Abjuration, and emergency Invisibility.

As an upgraded executioner, Ignacio gets Agony while executioners have Pain,
but Ignacio also has Pain for vague ancient balance concerns. He loses it
(and fits the normal Executioner cast rates now) so he can hit people some
more.

With the loss of the Haunt set, ancient champions have three seperate sets:
 * Haste, Iron Shot, Pain
 * Haste, Bolt of Draining, Stone Arrow
 * Haste, Iskenderun's Mystic Blast, Slow
With that last set being the only one to really check MR, lots of uses of Slow
already present throughout the game, and an otherwise straightforward split
of an earth conjuration and a negative-energy attack, the simplification of
cutting the third set seems acceptable.

--------------------------------------------------------------------------------
8d580a1596 | regret-index | 2016-07-07 03:38:54 -0400

Sort mon-spell.h (plus some other monster files)
Nearly-chronological order is a terrible way to sort such a data file.

The spell sets now echo mon-data.h sorting by glyph, going from non-unique
to unique ( / vault monster), alphabetically, lowercase to uppercase to
numbers to beyond. A variety of comments highlight said glyphs and any
shared spellsets, many spell sets have the listings themselves re-sorted
(conjurations > summons > hexes > charm other > self-charms > translocations
and healing), and a few spell sets have been renamed for consistency or use
accuracy.

Some loose non-alphabetized bits are also fixed in uniques.des and mon-data.h.

--------------------------------------------------------------------------------
f1df8d16e7 | Nicholas Feinberg | 2016-07-06 19:08:18 -0700

Hopefully fix some pain bond crashes (Luckless)

--------------------------------------------------------------------------------
9004dcd24a | Nicholas Feinberg | 2016-07-06 19:07:05 -0700

Merge pull request #312 from ChrisOelmueller/lua-shoplist
Lua: Expose shopping list as `items.shopping_list()`
--------------------------------------------------------------------------------
58dd630fe0 | Chris Oelmueller | 2016-07-07 02:00:20 +0200

Lua: Expose whether shop items are on shopping list

--------------------------------------------------------------------------------
a7744afafd | Chris Oelmueller | 2016-07-07 02:00:20 +0200

Expose shopping list entries to lua

--------------------------------------------------------------------------------
8502ec1544 | Nicholas Feinberg | 2016-07-06 15:13:23 -0700

Animated Hep altar tiles (CanOfWorms)

--------------------------------------------------------------------------------
333bac9964 | Nicholas Feinberg | 2016-07-06 14:28:54 -0700

Merge pull request #311 from ChrisOelmueller/patch-6
Remove an unused (?) include
--------------------------------------------------------------------------------
ecc85c140e | Chris Oelmueller | 2016-07-06 23:09:57 +0200

Remove an include

--------------------------------------------------------------------------------
4785921e75 | gammafunk | 2016-07-06 04:52:06 -0500

Don't open and use a unix socket when there's no WebTiles connection
When running a WebTiles build of crawl without a WebTiles server from
the command-line, the -webtiles-socket argument is omitted. Previously
we would still create the unix domain webtiles socket, but pass a null
string in the sun_path field of sockaddr_un. This made a Linux-specific
abstract address for the socket, which failed on some platforms like OS
X, meaning WebTiles-enabled crawl could not be run without
-webtiles-socket on such platforms.

This commit causes the unix domain socket to not be created when
-webtiles-socket is omitted, and the writes/reads to the socket are not
performed in this case. The usual Tiles framework webtiles message
buffering and clearing still take place, only the final reads/sends over
the socket get omitted. This could probably be handled in way that more
systematically disabled the Tiles framework instead of just the socket,
but this fix will hopefully work for now.

--------------------------------------------------------------------------------
4486784cc7 | Nicholas Feinberg | 2016-07-05 17:23:08 -0700

Don't make rPois- give meph immunity (10551)

--------------------------------------------------------------------------------
9542341a25 | Nicholas Feinberg | 2016-07-05 16:15:30 -0700

Merge pull request #309 from ChrisOelmueller/patch-5
Remove some unused dlua
--------------------------------------------------------------------------------
bcbf3a8e8a | Chris Oelmueller | 2016-07-06 01:06:04 +0200

Remove some unused dlua
These had been out of commission since the removal of ziggurat entry fees

(which were accompanied by adding inaccessible ziggurats to shopping list)

in 07949ec7b9c0b9583012be218f9b887257a10cd9 .
--------------------------------------------------------------------------------
090cdfb281 | Nicholas Feinberg | 2016-07-05 15:18:57 -0700

Fix a special room crash (10550, regret-index)

--------------------------------------------------------------------------------
ae50766ee8 | Neil Moore | 2016-07-05 09:51:07 -0700

Display CTRL/SHIFT on pending input with * and / prefixes (#298).

--------------------------------------------------------------------------------
911f0a8835 | Shmuale Mark | 2016-07-05 11:35:09 -0400

Abjure monsters immediately when their summoner dies (#10525).

--------------------------------------------------------------------------------
b70b1660fa | Chris Campbell | 2016-07-05 12:42:32 +0100

Make easy_floor_use default to true
Since it had no default defined, and true appears to be the intended default 
from its options_guide entry.
--------------------------------------------------------------------------------
901835ac87 | Nicholas Feinberg | 2016-07-05 01:00:21 -0700

Make allies attack plants less (10520)
Don't mark them as targets after they get hit by your spells or
shots.

--------------------------------------------------------------------------------
d59d90cba3 | Nicholas Feinberg | 2016-07-05 00:47:31 -0700

End Flay effect from charmed flayed ghosts (8310)
this code is so dubious...

--------------------------------------------------------------------------------
65b8c509a9 | Nicholas Feinberg | 2016-07-05 00:22:08 -0700

Improve trample+para/petr messaging (8872)
If you're petrified, you aren't stumbling anywhere.

--------------------------------------------------------------------------------
8ae7e359fb | Nicholas Feinberg | 2016-07-04 23:49:19 -0700

Warn invisible octopodes about water (10364)
As with all other races.

--------------------------------------------------------------------------------
fe14c78499 | Nicholas Feinberg | 2016-07-04 23:46:33 -0700

Arguably improve ecu altar message (10418)

--------------------------------------------------------------------------------
0ff330c2ed | Nicholas Feinberg | 2016-07-04 23:35:11 -0700

Fix an !a fsim lockup (10307)

--------------------------------------------------------------------------------
65dd516489 | Nicholas Feinberg | 2016-07-04 23:32:48 -0700

Remove an unused argument

--------------------------------------------------------------------------------
82a6b093b3 | Nicholas Feinberg | 2016-07-04 23:16:55 -0700

Fix Death Channel/reflection interaction (10544)
And deduplicate.

--------------------------------------------------------------------------------
90517748f9 | Nicholas Feinberg | 2016-07-04 23:01:14 -0700

Don't crash on Veh/Makh wrath (10483)
When in a debug build.

This may have been causing other bugs.

--------------------------------------------------------------------------------
d3f9c4075e | Nicholas Feinberg | 2016-07-04 22:25:33 -0700

New treasure trove quote (10441)
I'm sure the citation format could be improved.

--------------------------------------------------------------------------------
0f4174d31a | Nicholas Feinberg | 2016-07-04 22:18:00 -0700

Make rpois give immunity to meph breath (9723)
To match the warning. Previously, the effect didn't check rpois
at all; it was 'irresistable' damage.

I'd be fine with making it BEAM_POISON damage instead, but you'd
need to fix the tracer warnings somehow.

--------------------------------------------------------------------------------
77c7a9b730 | Nicholas Feinberg | 2016-07-04 21:55:46 -0700

Make mons Black Mark fade over time! Yay! (10470)
TODO: dataify monster enchantments...

--------------------------------------------------------------------------------
550b3b43ca | Nicholas Feinberg | 2016-07-04 21:43:23 -0700

Fix 'Ignite Poison castable w/o targets' (10536)

--------------------------------------------------------------------------------
41de2112ec | Nicholas Feinberg | 2016-07-04 21:10:56 -0700

Fix Delayed Fireball/temp terrain rendering (7101)
There's certainly more issues lurking out there; any instant
effect causes terrain-changing effects to not render until the
next redraw. (This is most obvious in wizmode, with &z and so on.)
Probably the actual fix would be to change something in the temp
terrain change code?

--------------------------------------------------------------------------------
e5e6a1578a | Nicholas Feinberg | 2016-07-04 19:29:21 -0700

Remove ammo ?acquirement
It was almost never a good choice, and seemed unlikely to become
an interesting one.

Gifting gods (e.g. Oka) are unaffected.

--------------------------------------------------------------------------------
a29959ea6f | Chris Campbell | 2016-07-04 20:04:49 +0100

Remove a special case for Sif piety gain
Now that Sif has a closer-to-normal way of gaining piety (from kills, although
at a reduced rate), slow down piety gain at high piety levels in the same way
as other gods.

--------------------------------------------------------------------------------
4dc29a1b7f | Chris Campbell | 2016-07-04 19:55:50 +0100

Don't give sickness a chance to cause stat drain
Its main purpose is preventing HP regeneration and it's a rare effect, so just
make it do that one thing.

--------------------------------------------------------------------------------
45fb8700bd | gammafunk | 2016-07-04 12:15:25 -0500

Give the +Cast status a help description

--------------------------------------------------------------------------------
6c9a4b26ea | Nicholas Feinberg | 2016-07-04 09:48:20 -0700

Fix Fedhas's Mad Dash (10547)
Possibly broken by recent Temple changes.

--------------------------------------------------------------------------------
7ddcc7b008 | Nicholas Feinberg | 2016-07-04 09:44:22 -0700

Split out Sif's divine energy toggle off (10546)
Having the same ability with the same name both toggle on and off
Divine Energy was very confusing; it certainly threw me off when I
looked at it.

--------------------------------------------------------------------------------
18cdaca02c | Nicholas Feinberg | 2016-07-04 09:14:29 -0700

Fix quick charge acting as ?recharge (10545)
At zero or near-zero evocations, "num" (ugh) would be 0, which
caused recharge_wand to treat the ability as a use of ?recharge
instead.

FR: rewrite this code

--------------------------------------------------------------------------------
e76d159051 | Shmuale Mark | 2016-07-04 12:13:18 -0400

Remove an obsolete bit of Lua.

--------------------------------------------------------------------------------
1f98c38c96 | Corin Buchanan-Howland | 2016-07-04 12:01:28 -0400

Nerf Eos a little
It was already one of the best one-handed weapons before getting several buffs.
This brings it down to +10, which should still be quite strong and also
feel special.

--------------------------------------------------------------------------------
c0ce14e759 | Chris Campbell | 2016-07-04 10:41:39 +0100

Update status descriptions

--------------------------------------------------------------------------------
dbd552016c | Nicholas Feinberg | 2016-07-03 22:33:13 -0700

Remove a 11+ yr old hiscores hack
Might fix 10529, maybe.

--------------------------------------------------------------------------------
2fd3c291a8 | Nicholas Feinberg | 2016-07-03 22:13:06 -0700

Fix binding ctrl-modified keys (10526)
Broken in c44768f54cdf by what looks like a copy-paste error.

--------------------------------------------------------------------------------
b25b99f2f6 | Nicholas Feinberg | 2016-07-03 21:32:10 -0700

New tile for hweeyermz (10537, IronicDongz)

--------------------------------------------------------------------------------
8a19e52292 | gammafunk | 2016-07-03 21:45:44 -0500

Update the descriptions of Sif Muna and the Channel Magic ability

--------------------------------------------------------------------------------
a64874787a | gammafunk | 2016-07-03 21:41:48 -0500

Add a tile for Sif Muna's Divine Energy toggle (ontoclasm)

--------------------------------------------------------------------------------
ff1bd0964e | gammafunk | 2016-07-03 21:38:35 -0500

Rework Sif Muna's channeling and piety gain
Note: Merges the branch 'sifcast'. These commit comments describe the
final state of the changes in the branch. Comments from the initial
branch commits don't reflect the final version of the changes.

Sif Muna's present channel energy ability is very powerful, but requires
many keypresses to use optimally. The player has incentive to use it
repeatedly before resting HP to full, so as to not be caught at low
MP. As a tactical ability, it's excellent when using allies for safety,
but harder to use when casting damaging spells, since players are often
forced to take damage when channeling with monsters nearby.

Additionally Sif's reliance on training magical schools for piety
introduced strange choices at stages of the game where players most
wanted to improve their character's melee or defenses. If the player
wants to receive spell gifts in the near-term, they're forced to
continue training significant amounts of magic when increased spell
power and/or MP is not the aim. Sif also makes little use of piety later
on as gifts became less relevant despite having a piety-costing ability
(Forget Spell).

To address these issues, this commit reworks the previous 1* channel
ability into 3* piety-costed ability, adds a 1* toggled passive to aid
spellcasting at low MP, and changes Sif's piety gain. The 1* passive and
3* ability both allow player movement when taking advantage of them but
MP restoration is no longer relatively free or as abundant. The large
hunger costs associated with heavy use of Sif channel are gone, but even
for characters that used channel repeatedly in combat, there was little
effective strategic or tactical cost in practice.

Sif now gains 1/3 piety from kills (compared to e.g. Vehumet) and 2/3 as
much from training magical schools as before this commit. Hence training
100% magic should be similar to the piety gain as before, but players
can elect to train no or little magical skills and still gain
significant piety given enough time.

For the abilities:

At 1* you gain a Divine Energy toggle.

When the toggle is active, you can cast a spell even if you lack the
full MP for it, but doing so will set a -Cast status for 3 +
random2avg(2 * cost, 2) turns, where cost is the MP you would need to
cast the spell. Hence missing only 1 MP necessary to cast a spell gives
fewer turns of -Cast compared to missing 9MP to cast the highest level
spells. Enabling the toggle adds a +Cast status light, at which point
the behavior happens automatically when the player casts with
insufficient MP.

At 3* you get a "Channel Magic" ability:

Costs piety and hunger, presently costed the same as Trog's Hand. This
gives you 4 + random2avg(2 * INVOCATIONS / 3) turns of a "Channel"
duration that grants ambrosia-levels of MP regen, namely 3-5 MP restored
per turn.

Some preliminary testing with conjurations/summoning characters shows
that piety gain is not too rapid, and I found Divine Energy useful often
with Channel Magic coming into play for fights with larger groups of
enemies. Further adjustments to the Channel Magic active and piety
costs/gain/decay can happen based on play testing.

--------------------------------------------------------------------------------
dac7d08ae8 | Nicholas Feinberg | 2016-07-03 11:39:12 -0700

Fix monster (wheals)
wwwwwhhhealll oh wait it was my fault actually.

--------------------------------------------------------------------------------
fe7e43fd07 | Shmuale Mark | 2016-07-03 12:47:58 -0400

Use the new interface for eating off the floor.
Improved consistency, with only one more keystroke (e,a versus ey), and
the same amount of keystrokes in the most common case if you enable the
easy_floor_use option.

Chunks/vampire feeding remain unchanged.

--------------------------------------------------------------------------------
df26d152c2 | Shmuale Mark | 2016-07-03 12:47:58 -0400

Add the easy_floor_use option (#10464).

--------------------------------------------------------------------------------
5fdd864cf4 | Shmuale Mark | 2016-07-03 12:47:58 -0400

Make the inventory/floor item interaction menus toggle between the two (#10464).

--------------------------------------------------------------------------------
78544164b2 | Nicholas Feinberg | 2016-07-03 00:56:18 -0700

Merge unholy & evil spells & items

--------------------------------------------------------------------------------
a1c8c50870 | Nicholas Feinberg | 2016-07-03 00:37:15 -0700

Merge MH_UNHOLY and MH_EVIL
As a result, the following monsters now take extra damage from
TSO's cleansing flame:
 - Draconian Scorcher
 - Deep Elf Demonologist
 - Deep Elf Sorcerer
 - Wizard
 - Kobold Demonologist
 - Ogre Mage
 - Obsidian Statue
 - Natasha
 - Frances
 - Eustachio

--------------------------------------------------------------------------------
caf44e38ec | Nicholas Feinberg | 2016-07-03 00:26:48 -0700

Merge is_unholy() and is_evil() into evil()
and simplify.

--------------------------------------------------------------------------------
3103843d04 | Nicholas Feinberg | 2016-07-03 00:08:07 -0700

Replace a pointer with a const reference

--------------------------------------------------------------------------------
e4bfe036ad | Nicholas Feinberg | 2016-07-03 00:01:15 -0700

Merge DID_UNHOLY and DID_NECROMANCY into DID_EVIL
They were the same thing for literally every purpose, just
arbitrarily split apart.

--------------------------------------------------------------------------------
146b9023ac | Nicholas Feinberg | 2016-07-02 23:26:55 -0700

Remove various duplicate melee weapon penances
Introduced by the previous commit.

--------------------------------------------------------------------------------
d0664e95f7 | Nicholas Feinberg | 2016-07-02 23:12:31 -0700

Fix good god weapon attack conducts (hellmonk)
Good gods would warn for using unholy or evil items, and Zin would
warn about using e.g. the Glaive of Prune, but they only actually
cared about attacking with demon weapons. Other warnings were just
bluffs!

As the comment notes, this should be refactored further.

--------------------------------------------------------------------------------
9e4e6dcc4e | Nicholas Feinberg | 2016-07-02 22:47:16 -0700

Add a crude Infestation status icon (gammafunk)

--------------------------------------------------------------------------------
949743dbe7 | gammafunk | 2016-07-02 17:38:15 -0500

Properly define a debug diagnostics variable

--------------------------------------------------------------------------------
39f9f74719 | Chris Campbell | 2016-07-02 22:26:18 +0100

Fix tiles compilation

--------------------------------------------------------------------------------
9501b0fe0b | Chris Campbell | 2016-07-02 20:59:45 +0100

Use a toggle rather than a prompt for activating Sif's no-mp-casting
The prompt wasn't great interface, and having it passively trigger at all times
would probably also be undesirable. Having a frequently/always-on status light
for the ability possibly isn't great either though.

--------------------------------------------------------------------------------
033bbcf31a | Chris Campbell | 2016-07-02 20:00:04 +0100

Give Sif Muna partial piety from kills
And slightly reduced piety from skill training, since having purely skill piety
is unlikely to work well in combination with Sif's replacement channeling
ability costing piety. Also increase the piety decay.

--------------------------------------------------------------------------------
2e0a7fcb92 | Chris Campbell | 2016-07-02 19:57:03 +0100

Merge branch 'master' into sifcast

--------------------------------------------------------------------------------
a8d832cac2 | Chris Campbell | 2016-07-02 19:53:37 +0100

Make a few abilities usable while starving
In particular Hepliaklqana's free/instant abilities, as well as Stop Recall
(since "stop <x>" abilities are generally all usable while starving).

--------------------------------------------------------------------------------
5dee9ea12d | Chris Campbell | 2016-07-02 16:33:52 +0100

Remove Elyvilon's ally death conduct
To allow the small chance for ally lifesaving to be potentially more relevant
(also add this to the god description).

Also it turns out the conduct hasn't functioned since 27333a42c3cf anyway
(barring a brief period between b1241f311e1c and c932079a4eb9 where it was
fixed and then broken again).

--------------------------------------------------------------------------------
96cbe53dee | Chris Campbell | 2016-07-02 16:33:52 +0100

Remove blood-drinking conducts
Having "don't use an item that is rare and completely useless anyway" as an
entry on the already very full conduct lists for good gods isn't really a good
place for flavour.

Also remove the bonus 40 nutrition for blood that was a holdover from potions
all giving nutrition.

--------------------------------------------------------------------------------
599642794e | Chris Campbell | 2016-07-02 16:33:52 +0100

Use a bool in Uskayaw's conduct

--------------------------------------------------------------------------------
821ab54184 | Neil Moore | 2016-07-02 10:57:30 -0400

Avoid bad messages and crashes when Yred gifts don't place.
If a batch of delayed monsters from a single god managed to place some
monster, but not the last one (for example, because they ran out of
space), then the placed-monster count would be nonzero, but the monster
would be null.  This caused a crash when creating the note in
_delayed_gift_callback, and an ugly unsubstituted "@servant@" in
_place_delayed_monsters.

Track the last successfully-placed monster (from the current batch)
separately from the current monster, and use the former for the
delayed-done code.  Now the placed count should be nonzero if and
only if this monster is non-null; add a few asserts to enforce
this.

Also, simplify the message initialization a bit.

--------------------------------------------------------------------------------
eea2aa79bb | Neil Moore | 2016-07-02 09:40:12 -0400

Brace.

--------------------------------------------------------------------------------
5c370ddb92 | Nicholas Feinberg | 2016-07-01 20:35:32 -0700

Remove an unused extern (gammafunk)

--------------------------------------------------------------------------------
4d40d61ba5 | Nicholas Feinberg | 2016-07-01 20:31:42 -0700

Disable hydra head-cutting on riposte (|amethyst)
I dislike the added complexity, but there seems to be some feeling
that automatic retaliation effects like riposte shouldn't punish
the player. In testing, the difference seems fairly minimal;
hydras don't miss that much, even against 30-40+ EV characters.

--------------------------------------------------------------------------------
aa6ffe2c14 | Nicholas Feinberg | 2016-07-01 20:23:10 -0700

Fix a compile warning (10540)

--------------------------------------------------------------------------------
ec9db39bd3 | regret-index | 2016-07-01 22:46:33 -0400

Buff up weaker / later monster pits, add a new Pan one
Special rooms, those not-too-uncommon small boxes full of some theme of monsters
most obvious in their early swarms of killer bees or orcs or random beasts and
rime drakes / hell hounds, seem to work well in mid-D and Lair with those sets.
Outside of that, they sharply taper off in kills afterwards despite a fair bit
of scaling up for them, though meliai helped. As such, some of the weaker /
later rooms are buffed once more:

 * Kobold rooms stop at D:11 instead of D:12 (the Lair breakpoint...), and now
   always get a kobold demonologist no matter where they place (including the
   earliest D:7). Beware summoned demons!
 * Orc rooms lose plain orcs in Elf and Vaults, are a bit harder when they place
   in the Orcish Mines, and lose early orc warrior bosses for more orc priests
   (more synergy with the mass). They also start at D:8 instead of D:9....
 * Undead rooms place more reapers / bone dragons in the hells, more revenants
   and less death knights in Tartarus and Crypt, less necromancers in Depths,
   and more vampire mages / death knights plus less shadows overall. Bosses
   are upgraded to liches and ancient liches, and a bug that substituted most
   of the fancy set contents with more derived undead was somewhat fixed.
 * Jelly rooms now have completely different calculations, cleaning out old
   rounding that screwed with scaling and reducing high great orbs of eyes
   placement after they substituted out for the removed brown oozes.Lair:$
   placements have a bunch more oozes and jellies and quite a few less orbs,
   and Depths / Slime placements have more death oozes / azure jellies / acid
   blobs instead of orbs and more jellies instead of oozes, while both use
   pre-combined dual slime creatures for half of the orb weight. One of the
   higher-tier jellies is also reliably placed in any given room.
 * Mythological zoo rooms lose late apis bosses for more sphinxes.

Also, while these are being addressed, with the eventual goal of making Pan
closer in threat to the Hells, a new special room of demons now places in Pan.
Each time they place they place choices of three seperate tier-2 demons,
choices weighted versus possessed Pan runes. Hell beasts and green deaths move
from 22.22% to 5.26% as one picks up runes, reapers and lorocyprocas go from
14.82% to 10.53%, balrugs and blizzard demons from 7.41% to 21.05%, hellions
and tormentors from 3.70% to 10.53%, and cacodemons from 3.70% to 5.26%. These
rooms also get a non-Executioner tier-1 demon or a classed demonspawn,
standing ontop of a portal to another bit of Pan and a piece of floor loot.

Pan doesn't normally use sheer heavy and mixed monsters like most other
branches, opting for the grandoise and scattered layouts with thematic threats
and the concentrated terrors of its lords, so these compact rooms should be
interesting for their raw mixes.

(Thanks to PleasingFungus for the demon room code.)

--------------------------------------------------------------------------------
54f7fbdd36 | Chris Campbell | 2016-07-01 20:35:19 +0100

Remove unused handling for invocations enhancers
They probably aren't a thing that should exist, and the handling for them was
quite extensive.

--------------------------------------------------------------------------------
69edc2ee33 | Chris Campbell | 2016-07-01 19:49:41 +0100

Give the robe of Night a custom inscription (PleasingFungus)

--------------------------------------------------------------------------------
c78d25dfcd | gammafunk | 2016-06-30 22:08:31 -0500

Use mingw-w64 in the Windows INSTALL instructions for MSYS2
Previously the instructions had users use the Cygwinized MSYS2
environment, for which we don't have proper build support. The mingw-w64
MSYS2 environment does not behave like a Cygwin system with respect to
builds if the right toolchain package is installed.

The INSTALL instructions now refer to updating and using the appropriate
mingw-w64 shortcut (with a warning not to use the 'MSYS2 Shell'
shortcut) and have users install mingw-w64 gcc (instead of msys2-devel
gcc).

Eventually our build system may support building under the Cygwinized
MSYS2, but not until we can iron out how best to check for this
environment and also decide which portions of crawl's platform support
it should use.

--------------------------------------------------------------------------------
1231838aa1 | Shmuale Mark | 2016-06-30 20:14:06 -0400

Rename runrest_safe_poison to delay_safe_poison and make it apply to all delays.
The old name still works, of course.

--------------------------------------------------------------------------------
7e20d9fb36 | Shmuale Mark | 2016-06-30 19:17:09 -0400

Update the options guide for delay rewrite (|amthysty).
Took the lazy/less likely to get out of date route.

--------------------------------------------------------------------------------
8d0fa9d74d | Shmuale Mark | 2016-06-30 19:09:45 -0400

Make cancelling the eating interruption prompt easier (dpeg).

--------------------------------------------------------------------------------
9ff075ed75 | Shmuale Mark | 2016-06-30 19:04:26 -0400

Clarify the header alignment a bit.

--------------------------------------------------------------------------------
91bf1e68df | Shmuale Mark | 2016-06-30 19:03:32 -0400

Improve yesno/yesnoquit parameter names.

--------------------------------------------------------------------------------
377f27f8ad | Chris Campbell | 2016-07-01 00:00:33 +0100

Fix mummy death curses never triggering
Also tweak the handling a bit in general.

--------------------------------------------------------------------------------
dcc8bee3d8 | Nicholas Feinberg | 2016-06-30 15:34:40 -0700

Merge pull request #307 from ChrisOelmueller/patch-4
Consistent table header style for chardump notes section
--------------------------------------------------------------------------------
43e068a4cf | Chris Campbell | 2016-06-30 23:24:33 +0100

Remove some spells from pan lord spell lists (chequers)
Partially based on PR #297 - there might be room to simplify pan lord spells
some more but going down to as few as 2 spells is probably too little
(something like 2-4 spells per pan lord might be better?).

--------------------------------------------------------------------------------
68970404e9 | Chris Campbell | 2016-06-30 23:20:22 +0100

Adjust pan lord spell selection
Give a fixed small chance to not select any spell for the conj/summon/aoe slot,
instead of it depending on the number of such spells available for random
selection.

--------------------------------------------------------------------------------
0872be4492 | Chris Campbell | 2016-06-30 22:40:26 +0100

Don't make apis partially natural
Dual-holiness is weird.

--------------------------------------------------------------------------------
0ced417c8e | Chris Campbell | 2016-06-30 22:36:05 +0100

Assorted unrand adjustments
Remove a few minor properties on unrands that already had many properties, and
adjust some others in order to differentiate similar unrands or improve their
focus.

Leech: more -EV/AC, no -stats
Ignorance: more +AC, no +EV
Wyrmbane: less +AC, rC+ instead of +Rage (to give it the set of GDA resists)
Folly: remove Curse (since as body armour it's not very swappable anyway)
Misfortune: remove -stats, add *Drain
Shadows, Night: shuffle around Stealth+, SInv, +Inv properties
Jihad, Arga, Bloodlust, Starlight, obsidian axe: tweak some minor properties

--------------------------------------------------------------------------------
20c470eb48 | Chris Campbell | 2016-06-30 22:02:28 +0100

Remove a few unrands
Sword of the Doom Knight: there are a large number of 2-hander long blade
unrands, and this isn't an interesting one.

Amulet of Cekugob: its combination of Dismiss and -Tele has poor synergy (in
that in cases where you most want Dismiss to work, you also probably just want
to remove the amulet and teleport), and it's generally always just had a weird
mix of properties that aren't very appealing.

Eveningstar "Brilliance": Brilliance and Eos had a weird mix of properties
between them that didn't really make for two good unrands, but might work on
just one - Eos gets the halo, and loses -Tele (and the now-unnecessary SInv).

--------------------------------------------------------------------------------
0e55ffc5dd | Chris Campbell | 2016-06-30 21:38:57 +0100

Don't let wretched stars mutate their friends

--------------------------------------------------------------------------------
7cd628db3b | Chris Campbell | 2016-06-30 20:05:16 +0100

Document mummy death curses on xv (tabstorm)

--------------------------------------------------------------------------------
89bb90d211 | Chris Campbell | 2016-06-30 19:33:13 +0100

Adjust messaging for some hell effect miscasts
To make it feel more like it's actually the effects of hell acting on you,
rather than it being obvious that they're repurposed miscasts.

--------------------------------------------------------------------------------
e315a7fc98 | Chris Campbell | 2016-06-30 19:00:23 +0100

List Yred gifts in notes (rwbarton)

--------------------------------------------------------------------------------
200906dfe6 | Chris Campbell | 2016-06-30 18:55:57 +0100

Adjust Ashenzari bondage descriptions (JimmahDean)

--------------------------------------------------------------------------------
f140595c88 | Nicholas Feinberg | 2016-06-29 22:48:00 -0700

Be more specific about Yred's gifts (Arrhythmia)
And simplify.

--------------------------------------------------------------------------------
94eabf107f | Nicholas Feinberg | 2016-06-29 22:37:08 -0700

Revert "Simplify further"
Missed a caller.

This reverts commit 18697eaece5a92bba980ee6978a6fcdf20636c1e.

--------------------------------------------------------------------------------
18697eaece | Nicholas Feinberg | 2016-06-29 22:34:32 -0700

Simplify further

--------------------------------------------------------------------------------
929d442efb | Nicholas Feinberg | 2016-06-29 22:25:56 -0700

Remove an unused parameter

--------------------------------------------------------------------------------
ce7da8b7ff | Nicholas Feinberg | 2016-06-29 18:38:10 -0700

Don't riposite your friends (minmay)
Even if they're very confused.

--------------------------------------------------------------------------------
d2fbe1e5b1 | Nicholas Feinberg | 2016-06-29 15:48:35 -0700

Revert "Don't trigger aux attacks on ripostes"
It's slightly more code, the feel could be argued either way, and
minmay makes a reasonable case that it's harder to balance.

This reverts commit a8d18c623a016a75a37c3c64a31720655f1c2fa9.

--------------------------------------------------------------------------------
23a5e41284 | ontoclasm | 2016-06-29 13:05:46 -0500

Slime creature tiles (CanOfWorms)

--------------------------------------------------------------------------------
a8d18c623a | Nicholas Feinberg | 2016-06-29 09:19:15 -0700

Don't trigger aux attacks on ripostes (Lasty)

--------------------------------------------------------------------------------
f18696822b | Nicholas Feinberg | 2016-06-29 09:15:19 -0700

Disable retaliation effects for ripostes (Lasty)
No retaliating against retaliations!

Hydras I'm torn on, but probably something similar should happen
there.

--------------------------------------------------------------------------------
4b84ccb08f | Corin Buchanan-Howland | 2016-06-29 08:47:00 -0400

Improve documentation around Usk passives (kryft)

--------------------------------------------------------------------------------
f3a32ab84e | Corin Buchanan-Howland | 2016-06-29 08:13:29 -0400

Add Uskayaw skill-invo interactions more clear on the powers screen (dpeg)

--------------------------------------------------------------------------------
ecd09e6424 | Nicholas Feinberg | 2016-06-29 00:16:22 -0700

Fix an Aizul pronoun (rchandra)
Broken in 7ccc58bddc7266e95ab34.

--------------------------------------------------------------------------------
d9557749b6 | Nicholas Feinberg | 2016-06-28 21:34:19 -0700

Halve Juggernaut EV (elliptic)
They're still plenty tough (and still have the highest EV of any
giant!), and it seems excessive for them to be so competent at
dodging. The flavour cost...?

--------------------------------------------------------------------------------
530da243f6 | Nicholas Feinberg | 2016-06-28 21:08:04 -0700

Don't make riposting take time (rchandra)
oops

--------------------------------------------------------------------------------
f4892169b2 | Nicholas Feinberg | 2016-06-28 18:48:22 -0700

Tentatively disable monster riposte
until we can figure out what's going on

--------------------------------------------------------------------------------
7b107d32b1 | Nicholas Feinberg | 2016-06-28 18:25:52 -0700

Nerf Fencer's Gloves (elliptic)
Remove the AC and EV. Thematic to lack the former (thin fencer's
gloves), and in general more elegant to simplify the number of
things going on.

--------------------------------------------------------------------------------
2f4bd295b5 | Nicholas Feinberg | 2016-06-28 18:04:36 -0700

Give the Fencer's Gloves +Riposte (IronicDongz)
Swapping out their +4 S/Lbl skill for a +50% chance to riposte with
all weapons, stacking with the base 50% chance for long blades to
riposte. More interesting, maybe?

--------------------------------------------------------------------------------
4dea7376da | Nicholas Feinberg | 2016-06-28 18:04:27 -0700

Long blade ability: Riposte
Long blade users now have a 50% chance of launching a free
counter-attack when enemies miss them, similar to the minotaur
retaliation effect.

The goal here is to differentiate longblades from other weapon
clasess, specifically by encouraging using them with light armour.
There's a particular synergy there with the sbl crosstraining -
you can imagine a version of this effect that triggers when enemies
*hit* (encouraging heavy armour), but that seems less interesting.

Lbl damage has been adjusted to compensate: -1 base damage for
1-handers, -2 for 2-handers.

--------------------------------------------------------------------------------
26bd780f50 | Nicholas Feinberg | 2016-06-28 18:03:10 -0700

Reduce awful "faith/Ru interaction (IronicDongz)
The removal penalty would more than double each time, causing
extremely unpleasant and totally unecessary consequences if you (for
whatever weird reason) repeatedly took off an amulet of "faith.

--------------------------------------------------------------------------------
eccf914522 | Shmuale Mark | 2016-06-28 16:45:20 -0400

Improve the no-wearables message (minmay).

--------------------------------------------------------------------------------
8b0b5721e6 | Shmuale Mark | 2016-06-28 16:45:20 -0400

Fix monster warnings (minmay).

--------------------------------------------------------------------------------
7a00c6ccf8 | Nicholas Feinberg | 2016-06-28 10:25:47 -0700

Update the Hep 5* message
Overlooked earlier.

--------------------------------------------------------------------------------
b3fda0d629 | Shmuale Mark | 2016-06-28 13:04:18 -0400

Don't allow autoeating during non-travel/rest delays (PleasingFungus).

--------------------------------------------------------------------------------
33f3bc883f | Nicholas Feinberg | 2016-06-27 22:38:15 -0700

A comment on brands (elliptic)
Excerpted & edited from https://bpaste.net/raw/f9e42400e9a8 .

--------------------------------------------------------------------------------
f4045fb987 | Nicholas Feinberg | 2016-06-27 13:55:56 -0700

Changelog through 0.19-a0-810-ge4e7c75

--------------------------------------------------------------------------------
e4e7c75827 | Nicholas Feinberg | 2016-06-27 12:52:20 -0700

Improve cloud descriptions
Mention cloud opacity in xv, mention cloud vanishing based on LOS
in both XV and ?/L.

--------------------------------------------------------------------------------
2f88ffd544 | Shmuale Mark | 2016-06-27 12:10:36 -0400

Bring back display of future gold in the shop menu (#10373).
Accidentally left out in my rewrite.

--------------------------------------------------------------------------------
a8a5f73397 | Shmuale Mark | 2016-06-27 11:04:13 -0400

TravelDelay is not stair travel (#10532).
The bug made it harder to cancel, so it was not cancelled when pressing
'N' at the prompt, and you were stuck forever unless you answered 'Y'.

--------------------------------------------------------------------------------
7e871c9f85 | Shmuale Mark | 2016-06-27 10:30:54 -0400

Simplify the code a little, now that BaseRunDelay doesn't have to pop first.

--------------------------------------------------------------------------------
24cba5a655 | Shmuale Mark | 2016-06-27 10:09:34 -0400

Hopefully fix the autoeat interruptions.
What happened was:
1. While resting, you get hungry.
2. That triggers autoeat, which starts an EatDelay.
3. Next, the hunger message shows up.
4. While that doesn't stop the EatDelay, the code looks farther down in
   the queue, sees the RestDelay, and calls stop_delay(), which tries to
   stop the EatDelay.

Basically, the code could not handle BaseRunDelays that started
interruptible delays (previously they could only start stairs and eating,
which were both uninterruptible).

This was changed by making that code only remove the back of the queue,
and ignore the front item (if it needed to be stopped, that was handled
already). It also required another change to prevent the code going right
back and calling stop_delay() again.

--------------------------------------------------------------------------------
7ed7a56505 | Chris Oelmueller | 2016-06-27 01:04:52 +0200

Consistent table header style for chardump notes section
Action count and skill tables use this style for their headers already,
as did the optional turns_by_place and kills_by_place.

--------------------------------------------------------------------------------
0a78ef09d2 | Shmuale Mark | 2016-06-26 17:44:56 -0400

Make the eating interruption code the same as armour-wearing.
More consistency, plus might fix some bugs?

--------------------------------------------------------------------------------
7c5a0f45c8 | Nicholas Feinberg | 2016-06-26 11:45:36 -0700

Move a chunk-eating rot check later
Per comment.

--------------------------------------------------------------------------------
c502d1e6ab | Nicholas Feinberg | 2016-06-26 11:28:18 -0700

Fix a rotting food crash, maybe

--------------------------------------------------------------------------------
c7416d172f | Nicholas Feinberg | 2016-06-26 11:06:00 -0700

Fix warnings

--------------------------------------------------------------------------------
b92010e7c5 | Shmuale Mark | 2016-06-26 11:57:45 -0400

Fix eating food in inventory.

--------------------------------------------------------------------------------
33cdfc7763 | Shmuale Mark | 2016-06-26 11:29:28 -0400

Correct some flipped logic (|amethyst).

--------------------------------------------------------------------------------
85d05f8d24 | Shmuale Mark | 2016-06-26 11:14:20 -0400

Avoid rotting chunks being eaten (elliptic).
They'll still rot at the next available opportunity.

--------------------------------------------------------------------------------
cbb2a3b22a | Neil Moore | 2016-06-26 11:04:49 -0400

Fix travis building (doh)

--------------------------------------------------------------------------------
7498d9eeec | Shmuale Mark | 2016-06-26 10:50:02 -0400

Add code to handle invalid EatDelays (|amethyst).

--------------------------------------------------------------------------------
ab6c68d349 | Shmuale Mark | 2016-06-26 10:31:33 -0400

Make eating food interruptible.
You get the nutrition once you finish eating; cancelling in the middle
means that nothing happened.

The interruption works the same as putting on/taking off armour, except
you're prompted each turn (rather than not being prompted after the first
time), since it's a relatively short delay.

One small change/bugfix caused by this: eating mutchunks takes the same
time as eating normal chunks.

--------------------------------------------------------------------------------
a36d0005ae | Neil Moore | 2016-06-26 10:26:50 -0400

Travis: cat correct crash file in USE_DGAMELAUNCH builds.
We were looking in morgue/, but in USE_DGAMELAUNCH mode, unless there
were command-line arguments to define the morgue dir, we put the
morgues directly in crawl_dir.

--------------------------------------------------------------------------------
e3a59af7d9 | Neil Moore | 2016-06-26 10:11:17 -0400

Don't crash when a monster considers entering meph.
https://crawl.jorgrun.rocks/morgue/mahalanobis/crash-mahalanobis-20160626-133458
.txt

--------------------------------------------------------------------------------
332687cfe9 | Shmuale Mark | 2016-06-26 09:24:16 -0400

Rewrite the delay code.
Instead of an enum for delays and switches everywhere, each delay type
is a class inheriting from the base Delay class. Delay::handle() controls
the base control flow for delays; first, if they aren't started, the
start() method is called; next, it checks whether the delay has been
invalidated(); if not, it either calls tick() or finish() depending on
whether the duration has been decremented to 0. All of this can be
overridden by derived classes though; even handle() is for travel/run/rest
delays, since they use a different system entirely.

To add a new delay, all that's required is to make a new class, add a
constructor and any necessary fields, and override any methods needed to
get it working. Additionally, default_activity_interrupts in initfile.cc
should be updated.

--------------------------------------------------------------------------------
e504f8bb55 | Nicholas Feinberg | 2016-06-26 01:08:12 -0700

Dataify cloud damage
Only noticeable change should be that monsters will behave a little
differently around damaging clouds (when deciding whether to enter
them or not). Hopefully not too differently!

There are bugs in this commit.

--------------------------------------------------------------------------------
6e182ccd96 | Nicholas Feinberg | 2016-06-25 22:44:24 -0700

Move Confusing Touch back to level 1
And switch it back into the book of cantrips, in place of Corona.

Nerfed a bit too hard a few version ago.

Maybe it should be removed entirely, but I think this is an
improvement on status quo, at least.

--------------------------------------------------------------------------------
e39e1af1e9 | Nicholas Feinberg | 2016-06-25 19:38:12 -0700

Infestation tile

--------------------------------------------------------------------------------
34e5fdc886 | gammafunk | 2016-06-25 20:45:30 -0500

Update the Windows section of INSTALL.txt to use the MSYS2 installer
The latest MSYS2 installation supports git and a recent GCC (5.3.0), so
there's no need to have people install the Git for Windows SDK any
longer.

The MSYS2 section (formerly the MinGW section) gives installation
instructions with notes for any issues users have to be aware of. The
notes for updating MSYS2 shell shortcuts may go away when MSYS2 update
their installers again. For now it's good to document how to fix this in
a way that's a little more clear than the note you get from pacman after
the upgrade.

Other sections that referred to msysgit or old MSYS have been updated,
but for now I've left in the note at the end about contrib arguments to
make.

--------------------------------------------------------------------------------
1dadef5c85 | Chris Campbell | 2016-06-25 23:52:37 +0100

Fix a reference to unique pan lord genders

--------------------------------------------------------------------------------
cef06a76f3 | Chris Campbell | 2016-06-25 21:59:25 +0100

Fix a missing TAG_MAJOR_VERSION check (emilazy)

--------------------------------------------------------------------------------
904d2f3bdf | Neil Moore | 2016-06-25 15:57:43 -0400

Let Alistair's give vertigo only when confusing a monster.
Failing to confuse any monsters usually avoided the chance of giving the
player vertigo—but not if a monster with clarity failed its rPois check
and saving throw.

--------------------------------------------------------------------------------
cfb67b698c | Chris Campbell | 2016-06-25 19:54:40 +0100

Update white draconian breath description

--------------------------------------------------------------------------------
c635424f1d | Emily | 2016-06-25 18:27:37 +0100

Remove Cure Poison
Now that OTR no longer poisons the caster, there is no reason to keep
around this spell that merely duplicates a common consumable. Also,
fewer weird TSO/Vp special cases is always nice.

Alistair's Intoxication replaces the spell in the VM starting book, and
the Book of Envenomations is removed.

Trivia: This was the last player-castable vestige of the pre-Stone Soup
holy spell school. RIP ;_;7

--------------------------------------------------------------------------------
275e0fd7df | Chris Campbell | 2016-06-25 18:27:37 +0100

Add Infestation (L8 Necromancy) to the Necronomicon
Applies the "infested" enchantment to affected monsters (in a smite-targeted
radius 2 AoE), making a death scarab explode from them on death.

Affects anything, including undead and demons - thematically, the death scarabs
can feed on whatever force is animating the monster (or something), since the
aim is for it to be a necromancy spell that still has use later on (but with
the downside that you still need some means of killing the targets in the first
place for it to trigger).

--------------------------------------------------------------------------------
5ea080c69e | Chris Campbell | 2016-06-25 18:27:37 +0100

Adjust monster blindness duration

--------------------------------------------------------------------------------
1c188b6fc4 | Chris Campbell | 2016-06-25 18:27:37 +0100

Randomise DUR_FROZEN duration

--------------------------------------------------------------------------------
1046fb2b19 | Chris Campbell | 2016-06-25 18:27:37 +0100

Remove Spellforged Servitor and Battlesphere from pan lord spell lists
They were both able to be generated with no valid conjurations to trigger from,
and also felt somewhat unthematic for pan lords. Also remove some inaccurate
comments.

--------------------------------------------------------------------------------
716f58a128 | Chris Campbell | 2016-06-25 18:27:37 +0100

Let one of the demons from the Pentagram card sometimes be hostile
Since most of the new deck of summoning's cards are always-friendly, and demons
should be generally unreliable summons thematically.

--------------------------------------------------------------------------------
094cb3db10 | Chris Campbell | 2016-06-25 18:27:37 +0100

Make Air miscast twisters rarer

--------------------------------------------------------------------------------
217381c152 | Chris Campbell | 2016-06-25 18:27:37 +0100

Fix some broken miscast effects
Make dimension anchor from Tloc miscasts on monsters actually work, and apply
-Potion from Ice miscasts only to those who can normally use potions (instead
of only to those who can't use them anyway).

--------------------------------------------------------------------------------
17b97e5515 | Chris Campbell | 2016-06-25 18:27:37 +0100

Make scrolls of random uselessness more useless
By removing the butterflies effect. There are various old proposals and patches
to turn it into a scroll of butterflies instead, but turning it into another
scroll that every character would want seems undesirable.

--------------------------------------------------------------------------------
990f37bf7a | Nicholas Feinberg | 2016-06-25 10:13:05 -0700

Fix Harm randarts' descriptions (10515)
Didn't describe what *Drain meant.

--------------------------------------------------------------------------------
a63a580261 | Nicholas Feinberg | 2016-06-25 10:03:18 -0700

Equalize "harm/*Drain draining (MarvinPA)
They probably should be the same amount, and my vague feeling is
that 200 is too much of a penalty for "harm.

--------------------------------------------------------------------------------
b44c2effaf | Nicholas Feinberg | 2016-06-25 01:07:26 -0700

Fix a divine pronoun in a comment

--------------------------------------------------------------------------------
1d5f80ac56 | Nicholas Feinberg | 2016-06-25 00:58:30 -0700

Correct a long-out-of-date comment
The function was removed a few months ago, but it hasn't been in
view.cc for who knows how long.

--------------------------------------------------------------------------------
1afe81a614 | Nicholas Feinberg | 2016-06-25 00:23:06 -0700

Rework monster roaring
As threatened a few commits ago, roaring is now split into 'loud'
or 'deafening' roaring, which is noise 12 (same as roaring was),
and 'basic' roaring, which is noise 8. The idea here is that extra-
loud roaring should be a special thing, reserved for relatively few
monsters.

- Wyverns, rime drakes, wind drakes, and steam drakes now hiss
  (were silent).
- Swamp drakes now hiss (previously roared).
- Mottled dragons now roar (were silent).
- Fire & ice dragons now have a loud roar (were silent).
- Shadow dragons are now silent (previously roared).

Most dragons, Lerny, and hell rats keep their loud roar. Other
roar users (mostly draconians, but also lindwurms, hydras, and
various demons) have been demoted to a noise-8 basic roar.

--------------------------------------------------------------------------------
33a097e9dc | Nicholas Feinberg | 2016-06-24 23:54:22 -0700

Add noises for a few silent monsters
Hissing: giant newts, giant geckos, ball pythons, adders.
Buzzing: queen bees, wasps.
Shouting: big kobolds.

Some of those are just inconsistencies (other snakes & reptiles
hiss, & hornets buzz); I'm pretty sure big kobolds being silent
is a bug, or at the very least an oversight.

--------------------------------------------------------------------------------
a0b0acd5d8 | Nicholas Feinberg | 2016-06-24 23:47:28 -0700

Make pigs squeal
Beware The Flavor Cost

--------------------------------------------------------------------------------
388f7cb421 | Nicholas Feinberg | 2016-06-24 23:36:32 -0700

Make 2-headed ogre shouts normal volume
It Makes Sense for 2-h shouts to be louder than normal shouts,
but it doesn't really make sense for them to be louder than
screams, elephant trumpeting, etc, and while I think there's
probably room for shouts of multiple volume, it makes sense to
keep things simple.

Currently, the rule is:
- Hissing: quiet.
- Roaring: loud.
- Rumbling: very loud.
- Everything else: normal.

Rumbling has a very specific game purpose (though maybe one that
could be accomplished just as well by using Warning Cry?); hissing
has some purpose (less noise in Spider, making the web-sense effect
more relevant); roaring... could have a purpose, but is applied
very haphazardly at present. I'm torn on it; if it stays, it should
probably be split into some kind of 'loud' and 'normal-volume' roars.

--------------------------------------------------------------------------------
ecb35b1801 | Nicholas Feinberg | 2016-06-24 23:15:44 -0700

Use monster::is_silenced() in more places
Fixes a bug in mon-speak caused by what looks like a
misunderstanding of logical operators, and also makes WATER_HOLD
matter in slightly more places.

--------------------------------------------------------------------------------
bd45714c00 | Nicholas Feinberg | 2016-06-24 23:10:13 -0700

Add a helper method for non-shouting monsters
Behavior is slightly different for S_RANDOM and S_DEMON_TAUNT
monsters, but in a good way.

--------------------------------------------------------------------------------
4ff09b209f | Nicholas Feinberg | 2016-06-24 23:02:01 -0700

Remove S_CAW
There's no actual save compat involved, as far as I can tell, so
no reason to keep it around?

--------------------------------------------------------------------------------
4316a4d2ff | Nicholas Feinberg | 2016-06-24 22:49:20 -0700

Double *Drain draining
It wasn't insanely noticeable in practice.

--------------------------------------------------------------------------------
551c5c8965 | Nicholas Feinberg | 2016-06-24 22:31:11 -0700

Don't warn about spell difficulty with &z
Broken by 2b68a6a2e1c1e46a27032af3793b3467e62d465f.

--------------------------------------------------------------------------------
9c71ee6477 | Nicholas Feinberg | 2016-06-24 22:30:30 -0700

Checkwhite

--------------------------------------------------------------------------------
21fb6cf9a6 | Nicholas Feinberg | 2016-06-24 22:17:42 -0700

Change transfer slow to drain
The slow is intended to be a debuff rather than an escape tool.
(Transference itself can still serve as a perfectly good escape,
of course!)

--------------------------------------------------------------------------------
0ce116621b | Nicholas Feinberg | 2016-06-24 21:55:33 -0700

Fix a potential spectral weapon crash (|amethyst)

--------------------------------------------------------------------------------
ea9a33ed10 | Nicholas Feinberg | 2016-06-24 21:10:08 -0700

Fix pain Spectral Weapons (rchandra)
Use the caster's weapon skill, not their own.

--------------------------------------------------------------------------------
3858e09d16 | Nicholas Feinberg | 2016-06-24 20:48:11 -0700

Display healing for Major Healing

--------------------------------------------------------------------------------
4e014bf79f | Nicholas Feinberg | 2016-06-24 20:48:11 -0700

Fix healing listing for monster spells

--------------------------------------------------------------------------------
ffb28bda58 | Nicholas Feinberg | 2016-06-24 20:48:11 -0700

Reformat some monster damage code

--------------------------------------------------------------------------------
3f611a26da | Nicholas Feinberg | 2016-06-24 20:48:11 -0700

Shift ancestor upgrades earlier
XL 21 to XL 19, XL 27 to XL 24. XL 15 upgrades are unchanged.

The final upgrades are intended to be for extended, but it's
probably okay for them to apply to the late-game, too.

--------------------------------------------------------------------------------
8f09aff7ea | Nicholas Feinberg | 2016-06-24 20:48:11 -0700

Remove ancestor specialization
A failed experiment. None of the variation really ended up creating
interesting choices - they were either 'no-brainers' (e.g. force
lance vs magma bolt), distractions from the purpose of the class
(knight without cleaving), or nothings. The reasoning behind adding
them was that the additional variety was needed so that players
would become 'invested' in their ancestors; in practice, though,
the naming & class selection already provided more than enough
customization for that.

Knights now always get a broad axe at XL 15, battlemages always
get Magma Bolt, and Hexers always get Mass Confusion.

It might be cool to add further variety to ancestors in future,
but if so, it'll probably be in a pretty different form.

--------------------------------------------------------------------------------
ae73b438c0 | regret-index | 2016-06-24 18:20:27 -0400

Cut some useless WEIGHT lines (|amethyst)

--------------------------------------------------------------------------------
9910701511 | regret-index | 2016-06-24 18:10:33 -0400

Try to repair minor save compat / solve errors from recent Temple changes
Since Crawl decides what temple map it's going to use at the start of the
game, renaming and compressing a lot of Temple maps messes with games that
transferred before making it to Temple. Crawl would look for whatever the
the closest temple string name is after an error, and then in some cases
with variable altar count maps place very few altars at all. A lot of old
maps are thus dumped into a folder for Crawl to access them again, at
WEIGHT: 0 so that they shouldn't present themselves in new games.

This can't avoid cases where temples were changed but not renamed
(already fitting under the new naming schema), and in some of those
temples they will be aesthetically screwed-up alongside a visible
"Ran out of altars! x#" message. Aside from this error they should still
produce the correct number of altars, though, so it should be shrugged
aside. Remaining games should still be fine after this, at least.

--------------------------------------------------------------------------------
be1ce7d287 | Nicholas Feinberg | 2016-06-24 11:41:30 -0700

Fix two doxygen comments
The leading # was interpreted as markup.

--------------------------------------------------------------------------------
a427c989a8 | Shmuale Mark | 2016-06-24 13:00:20 -0400

Remove a doubled message.
Not sure how this happened.

--------------------------------------------------------------------------------
66ae36becc | gammafunk | 2016-06-23 18:46:30 -0500

Support compilation under recent MSYS2
MSYS2 is based on Cygwin yet doesn't need the workaround implementation
for std::to_string that we normally make on that platform.

With this fix crawl builds properly for console and Tiles, although I
tested only some combinations of non-debug/debug-lite/debug
targets. I'll later update the INSTALL instructions to give Windows
users steps for installing MSYS2 and the dev toolchain directly, instead
of instructing them to install the Git for Windows SDK.

--------------------------------------------------------------------------------
a2274fc66a | David Ploog | 2016-06-24 00:21:38 +0200

Runed door for Crazy Yiuf's hut (Arrhythmia)
And make plant infestation more rare.

--------------------------------------------------------------------------------
9c36c40f89 | Chris Campbell | 2016-06-23 22:48:34 +0100

Fix missing speech for Xom cleaving

--------------------------------------------------------------------------------
995b79207b | Nicholas Feinberg | 2016-06-23 12:46:49 -0700

Make Bai Suzhen return to her true form in death
That is, make her always drop a storm dragon corpse (if she would
drop a corpse), rather than ever dying as a draconian.

--------------------------------------------------------------------------------
08eaed9020 | Nicholas Feinberg | 2016-06-23 10:08:06 -0700

Merge pull request #305 from ChrisOelmueller/patch-2
Don't mislabel DUR_LOWERED_MR status as MR- in HUD
--------------------------------------------------------------------------------
9d5edecd3b | Chris Oelmueller | 2016-06-23 18:59:42 +0200

Don't mislabel DUR_LOWERED_MR status as MR- in HUD
There's MR+ which increases MR by one pip,
there's MR++ which increases MR by two pips,
and there's MR- which … does something entirely different.

No reason not to just tell players what is happening here, I think.

--------------------------------------------------------------------------------
e0d55e4bd0 | ontoclasm | 2016-06-23 02:02:30 -0500

Summon Horrible Things tile

--------------------------------------------------------------------------------
4563caa7d1 | regret-index | 2016-06-22 23:01:09 -0400

Fix a Temple map's decorative asymmetry (nicolae-)

--------------------------------------------------------------------------------
7866533092 | Nicholas Feinberg | 2016-06-22 18:42:24 -0700

Checkwhite (chequers)

--------------------------------------------------------------------------------
862b39cfa1 | regret-index | 2016-06-22 19:22:40 -0400

Fix a randomized vault's level border crash (qw)
Okay, sometimes distant transformation functions are a little too
distant from the vaults they modify. Still, it's important to (slowly)
make sure no level borders are anything besides rock or open (lava) seas.

--------------------------------------------------------------------------------
f2af308c6b | Nicholas Feinberg | 2016-06-22 12:47:16 -0700

Cosmetic fixes for prev. commit (MarvinPA)

--------------------------------------------------------------------------------
3c616719d5 | Nicholas Feinberg | 2016-06-22 12:36:57 -0700

Reduce Dismissal annoyance
It now only triggers on hits that do at least 10% of your max hp,
thus hopefully reducing cases in which it triggers on
non-threatening enemies.

--------------------------------------------------------------------------------
7c57ab6450 | gammafunk | 2016-06-22 03:38:27 -0500

Even more minmay vaults: guarded unrands
A series of monster vaults that place specific unrands with thematically
related monsters.

Aside from fixing some syntax and couple errors in the original
submission, the only significant changes are in monster placement
substitutions. SUBST replacing large numbers of glyphs with small
chances to place monsters have been changed to use NSUBST with non-zero
minimums and lower maximums on the monster placement. The average number
of monsters placed are the same or similar, and there's still
appreciable variation in the numbers. We'll just not give a small
fraction of players either completely empty vaults or ones with
ridiculous numbers of monsters.

--------------------------------------------------------------------------------
3ff4acb07b | regret-index | 2016-06-22 02:10:25 -0400

Fix an Elf:$ vault's connectivity (travis-ci)

--------------------------------------------------------------------------------
703e437895 | regret-index | 2016-06-22 01:00:45 -0400

A flood of minmay vaults (#10368, #10423)
Of the many submissions of mostly D vaults, probably the most noticeable
are the two sets which got their own files and functions: d:1-2 symmetrical
polyominos using a few floor spawns, and highly dangerous large subvault
grids for D:7- / Elf / Depths.

Select monster placements with highly random potential threat density were
constrained away from extremely rare low and high points with NSUBST instead
of SUBST. Close-together decorative statues in excess of, say, fifteen per
vault, were trimmed down, due to concerns of over-use and visual noise in
tiles. Vault-wide crystal use chances were also lowered. Eventually I'm going
to just break down and impose certain styles and standards onto absolutely
every single last vault, I guess.

I also gave some elementally-themed vaults variations for Cocytus and Gehenna,
which removes the items and places a fiend + a staircase instead.

--------------------------------------------------------------------------------
e18daf076e | Neil Moore | 2016-06-21 22:07:03 -0400

Use a passive_t.
This was missed because of the Yodaesque GOD_CHEIBRIADOS == you.religion.
There is a change in behaviour, in that the poison reduction is no longer
effective under penance.

--------------------------------------------------------------------------------
eeb873338f | Chris Campbell | 2016-06-21 22:35:40 +0100

Remove some obsolete lost soul code (regret-index)

--------------------------------------------------------------------------------
7a79faaeac | Chris Campbell | 2016-06-21 22:21:13 +0100

Remove most non-summoned lost souls
They tend to work better as deep elf summons, in that they're a lot more likely
to have something useful to revive as opposed to when they're randomly
wandering.

--------------------------------------------------------------------------------
9042255d20 | Chris Campbell | 2016-06-21 22:21:13 +0100

Remove Vashnia's Shroud of Golubria
It's not an interesting monster spell.

--------------------------------------------------------------------------------
e3ef466b84 | Chris Campbell | 2016-06-21 22:21:13 +0100

Slightly simplify Bai Suzhen
Remove her rain clouds and amphibiousness, and make her dragon form fly. Also
place the storm clouds as soon as she transforms, instead of the next time she
acts.

--------------------------------------------------------------------------------
a13102edca | regret-index | 2016-06-21 17:20:21 -0400

Upgrade guaranteed demonic rune vaults
Heavy vault exaggerations for those spoilery and inconsistent guaranteed
demonic rune vaults, to match up with the famous and pretty effective
hellion_island as well as the weird upgrades other fixed pan lords have seen
in hopes of reproducing the famous sheer danger of Cerebov. Sixteen smoke
demons and six tormentors behind grates, nine blizzard demons behind a
watery wall of ice statues, and so on. Even the disco hall has been upgraded
with a fixed and heavy monster presence to have it also contain the demonic
rune.

These are first-step drafts for the bigger eventual plans of the overall
Hell-Pan Roulette dev-wiki proposal, involving announced serial vaults
guaranteed to contain the demonic rune and several rune vault decoys,
guaranteed demonic rune levels in general being integrated into the Pan
rune schema, and slaying pan lords increasing the rune chances. Some
non-functional code related to that has been thrown in and dummied out:
hopefully, others can pick up from the notes left in. If push comes to
shove, subvaulting in a large directional vault like the old maps of
Dis:$ could work instead.

--------------------------------------------------------------------------------
21cb250b18 | Chris Campbell | 2016-06-21 21:15:29 +0100

Can some targeting messages

--------------------------------------------------------------------------------
0a03c4bd8e | ontoclasm | 2016-06-21 09:22:32 -0500

Tmons tile edit

--------------------------------------------------------------------------------
4af737f012 | Nicholas Feinberg | 2016-06-20 23:24:58 -0700

Use BASELINE_DELAY in _mod_speed()

--------------------------------------------------------------------------------
9eb61c3199 | Nicholas Feinberg | 2016-06-20 22:35:08 -0700

Delete unused lava sea tiles

--------------------------------------------------------------------------------
04d1648dec | Nicholas Feinberg | 2016-06-20 22:27:35 -0700

Open lava tiles (CanOfWorms)
And credit to regret-index for the request.

--------------------------------------------------------------------------------
16b73b3d1f | regret-index | 2016-06-21 00:22:42 -0400

Once more, wide minor vault edits
Highlights:
 * Replace Donald in the ambush Vaults entry vault with Urug.
   Donald is specifically excluded from placement in D normally.
 * Replace young spriggan druids with boggarts (including from the Lair end).
   Cuts a vault-exclusive monster, still fulfills fae themes, and they
   shouldn't be too much in those three early forest vaults due to those
   vaults' tight corridors. It's a shame the different druid mechanics
   aren't as prominently shown under such, though.
 * Remove some old gimmick vaults from the food vaults list
   and use them as regular minivaults instead- later simpler
   food vaults already picked up the slack there.
 * The completely-open classical Vaults quadrant now has thin diagonal
   wall stripes, to provide a smidgen more cover. Opening up the
   quadrant corners already introduced enough open space.
   It also has hard minimums and maximums for monster placement,
   to remove the possibility of getting dozens and dozens of monsters
   from one very open Vaults quadrant.
 * Also use hard minimum / maximum randomization caps on the wolves
   and spriggans of the spriggan forest Lair end and the frogs and
   vampire mosquitoes of the frog pond Lair end.
 *  _pick_an_altar chooses a few destructive / elemental gods for
   Hell-Pan, which should be nice for a very slim few vaults.

--------------------------------------------------------------------------------
27ac516379 | Shmuale Mark | 2016-06-20 21:26:16 -0400

Fix Portal Projectile (Yermak).

--------------------------------------------------------------------------------
d1b5c2afe6 | regret-index | 2016-06-20 20:03:00 -0400

More Bai Suzhen tweaks
Further nerf her starting form's experience to be equal to the dragon form's
experience. Also, put warning colours on the transformation message, in hopes
that those first meeting her will be more aware of the impending frying by
thunderstorm.

--------------------------------------------------------------------------------
2c7957d687 | regret-index | 2016-06-20 19:30:03 -0400

Adjust meliai, use newly-formicid entropy weavers in the same capacity
Cutting meliai innate ac a bit, since they already have body armour, and
pushing them down to start at D:13 naturally instead of D:12 to reduce
their selection as D:7 oods. In exchange, make them consistently appear
in vaults for D:12- and Lair:4-. Likewise, giant beehive vaults place in
Lair starting from Lair:2- now (for branch scaling) but also D:11-
(without meliai, and it's rather rare to thus meet a pre-Lair giant beehive
anyway).

Meanwhile, with entropy weavers recently acknowledged as weird ant-people
in description + tile + glyph, plus their bumping up from later depths,
they're now eligible for the same late insect-hive vault appearances.
Just two at a time, for D:12- and Lair:4- and Spider, in the few
anthill vaults.

--------------------------------------------------------------------------------
cc390b8520 | regret-index | 2016-06-20 17:40:00 -0400

Thorough Temple edits/clean-up, some new maps, altar average 12.15 -> 14.41
Temple.des is a mess. Outdated, rough section organization and notes based
on themes and colours, early altar balance shifting against every new god,
vast differences in sizes. The vast majority of weight goes towards 12
altars, despite how the versions have collected 22 guaranteed gods in D.

With a lot of temple map editing and variation compression, plus some
header clean-up, this bumps up the minimum of altars to 9 (from 6 with one 5)
and the max to 21 (mostly 18 with a few 20s), and moves from an average of
12.154 altars in each temple to 14.409. Some maps have gained some more
randomization and decoration to them in the process, while some other larger
maps were trimmed or made more interconnected to address auto-explore length
concerns.

Two of evktalo's old and removed temple designs were refurbished and brought
out, and I threw together six of my own designs in here as well. Their
presence helps with the raw map count compression versus a flattening of
vault weights (10 for a fixed count and +4 for variable counts per each
range met, halved weights for either if they meet certain criteria).
Beyond a much lowered appearance rate for the original circular and lava
triangle maps and a bit more prominence for a handful of crystal layouts,
most of the maps haven't changed in appearance rate by more than a few 0.1%s.

XXX: The specific altar ranges here were planned for a while to dynamically
adjust vaults chances to future-proof altar averages versus newly-added
vaults (with the presumption the guaranteed god count is going to stay at
a rough 21 to 24 for the next long while). Something like a 25% chance for
9 to 12 altars, a 35% chance for 13 to 15, a 30% chance for 16 to 18, and
a 10% chance for 21. This could be done on the C side choosing given altar
counts against those weighted chances, though about ten more maps for the
middle ranges ontop of the current forty-nine would be ideal to reach an
even ground for temples chances of all given ranges.

--------------------------------------------------------------------------------
dd04e31fea | Nicholas Feinberg | 2016-06-20 14:23:10 -0700

Remove size limit on hydra form devour (minmay)
Flavour-based, but not particularly flavourful; needlessly obtuse,
like most size-based mechanics.

nerf hydra form

--------------------------------------------------------------------------------
9675980c75 | Nicholas Feinberg | 2016-06-20 12:08:04 -0700

Add a hydra form flavour message (IronicDongz)
https://www.youtube.com/watch?v=NQhwNtY3N2k

--------------------------------------------------------------------------------
06b4ce4d80 | Nicholas Feinberg | 2016-06-20 11:52:35 -0700

Melilai tile (CanOfWorms)

--------------------------------------------------------------------------------
02428aae6f | Nicholas Feinberg | 2016-06-20 11:42:08 -0700

Remove a pointless use of yesnoquit
'quit' was the same as 'no'. Had been since it was added, in
88fb4af5b72a46cdd (2010).

--------------------------------------------------------------------------------
149a522f2c | Nicholas Feinberg | 2016-06-20 00:28:40 -0700

Bai Suzhen tiles (CanOfWorms)
The images are misnamed, but I don't have the energy to change
them.

--------------------------------------------------------------------------------
934ebc7a29 | Jesse Luehrs | 2016-06-19 15:34:04 -0400

arch linux uses "lua51" as the lib name

--------------------------------------------------------------------------------
899c6ed9e9 | Corin Buchanan-Howland | 2016-06-19 14:55:04 -0400

Make poison application messages announce maximum poison
Now if you would add a level of poison to a creature at maximum poison,
instead of no message, there will be a message about the monster being 'as
poisoned as possible'. The message will also print if the monster reached
maximum poisoning level in this application of poison.

This also introduces a constant for maximum enchantment degree. I'm sure
there are lots of places where this could be used, but I don't feel like
hunting them down. If you see something, say something!

--------------------------------------------------------------------------------
e872ae35e8 | Neil Moore | 2016-06-19 13:27:49 -0400

Simplify (and improve accuracy of a chance).
The chance of considering a teleport from teleportitis after a player
turn was intended to be 1/(100/AUT) = AUT/100, but random rounding gave
a different result.

Consider the case of a 9-aut action.  We considered a teleport if
one_chance_in(div_rand_round(100, 9)) was true.  This argument to
one_chance_in has the distribution:

   div_rand_round(100, 9) = { 8/9 chance of 11, 1/9 chance of 12 }

so the probability of considering a teleport in this situation was
actually (8/9 * 1/11) + (1/9 * 1/12) = 0.090067, slightly higher than
the desired 9/100 = 0.09.

Instead, use the simpler x_chance_in_y(9, 100).  Durations that evenly
divide 100 AUT are unaffected.

Also, write 100 as 10 * BASELINE_DELAY, to clarify the base 1/10 chance.

--------------------------------------------------------------------------------
5577c47452 | Nicholas Feinberg | 2016-06-19 09:36:16 -0700

Scale ozo's melting over lava by time taken
Not that this ever really matters...

--------------------------------------------------------------------------------
27e8ce7b49 | Nicholas Feinberg | 2016-06-19 09:36:16 -0700

Scale teleportitis odds by time taken
Using a shortblade shouldn't make you more likely to get teleported
per unit time, probably.

--------------------------------------------------------------------------------
c0b71f2a99 | Shmuale Mark | 2016-06-19 10:00:49 -0400

Make Bind Souls non-permanent (PleasingFungus).
The enchantment wears off after a 10-30 turns. The messaging was changed
to not trigger per-monster to be less spammy, and the casting rate was
increased to compensate.

The original motivation for making it permanent was to discourage kiting
the monster around until it wore off once you killed the necromancer;
however, you could kite the spectre around anyway if you didn't want to
fight it, since it's summoned...

--------------------------------------------------------------------------------
70d8c1a14d | Shmuale Mark | 2016-06-18 23:22:24 -0400

Simplify (?) Bind Souls/DChan interaction.
Both spells just take effect normally.

--------------------------------------------------------------------------------
03de5d9a5f | Nicholas Feinberg | 2016-06-18 20:06:38 -0700

Don't give letters to carried items in ^f (pubby)
The hotkeys aren't very useful for inv items (you don't need to
travel to yourself!), and without them, (a) is always the closest
item. That's nice!

--------------------------------------------------------------------------------
c8e9a4c016 | Nicholas Feinberg | 2016-06-18 19:19:19 -0700

Make Unarmed the last weapon choice offered
Instead of the first, since it's a pretty poor default.

--------------------------------------------------------------------------------
71da03fbe9 | Nicholas Feinberg | 2016-06-18 18:44:24 -0700

Fix Idealised icon for webtiles
Oops!

--------------------------------------------------------------------------------
7a0dbba7fb | John Boyle | 2016-06-18 18:41:26 -0700

Add BOUND_SOUL tile glyph
(Committer's note: fixed a few issues.)

--------------------------------------------------------------------------------
3052e5039a | Chris Campbell | 2016-06-19 01:59:44 +0100

Scale spellforged servitor spell weights by spell level
So as not to heavily penalise casting it with very low-level spells still
memorised.

--------------------------------------------------------------------------------
ab5b6ad958 | Chris Campbell | 2016-06-19 00:33:13 +0100

Fix a hydra check (PleasingFungus)

--------------------------------------------------------------------------------
d2fa977b95 | Chris Campbell | 2016-06-18 22:09:47 +0100

Remove vorpal special-casing for chopping hydra heads (minmay)

--------------------------------------------------------------------------------
d622f13350 | Chris Campbell | 2016-06-18 22:09:41 +0100

Greatly simplify net escapes
Only ever try to destroy nets, and remove all of the amazingly complicated
handling for how much damage is dealt each attempt, instead just making it
random. Also remove can_cut_meat in the process.

--------------------------------------------------------------------------------
8fa7b833c1 | Chris Campbell | 2016-06-18 21:52:07 +0100

Don't let monsters destroy webs either

--------------------------------------------------------------------------------
873440fa0a | andreas | 2016-06-18 20:42:26 +0100

Player can no longer tear web trap on escape
Web traps having a chance to permanently tear on player escape incentives
dancing in and out of trap until it is destroyed, if the trap is in a
strategically useful spot (e.g., a chokepoint). Monster interaction with webs is
untouched by this change, so the player can still manipulate monster pathing to
destroy web traps. Discussed at length at
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=19822

--------------------------------------------------------------------------------
d1aef3372b | Chris Campbell | 2016-06-18 19:46:53 +0100

Fix deck interactions with sacrifice artifice and evo skill
Allow them to be used under sacrifice artifice (as was originally intended
when making them use invocations), and don't make them allow evo skill training.
They don't allow invocations training, because that's implied when worshipping
Nemelex, and their power no longer depends on invocations once you abandon.

--------------------------------------------------------------------------------
9a495db791 | Chris Campbell | 2016-06-18 19:46:53 +0100

Give an adjusted device heal message when quaffing ambrosia too (|amethyst)

--------------------------------------------------------------------------------
c81528e5b5 | Neil Moore | 2016-06-18 14:33:52 -0400

Improve indentation (Lasty, PleasingFungus)

--------------------------------------------------------------------------------
d94c90a91c | Chris Campbell | 2016-06-18 17:50:46 +0100

Add messaging when healing is enhanced or reduced (Keskitalo)
Also fixes the wrong messaging being given for non-device sources of potions of
curing, if any were to exist. Doesn't message for enhanced/reduced potion of
ambrosia healing to avoid spamming.

--------------------------------------------------------------------------------
2a0bea952e | Chris Campbell | 2016-06-18 17:50:46 +0100

Adjust dispellability of some effects
Make MR-, corrosion, vertigo, sleep and flaying dispellable, and stealth,
cleave and elixir non-dispellable (since they're now all divine-only effects).

--------------------------------------------------------------------------------
b97a33f15d | Chris Campbell | 2016-06-18 17:50:46 +0100

Don't let entropy weavers burrow
It was just added because they were becoming formicids, but isn't likely to be
a gameplay improvement (and isn't really necessary for theme - player formicids
don't dig all the time and there's no particular need for monsters to do so).
Also remove burrowing from the dummy formicid monster.

--------------------------------------------------------------------------------
04c013b91d | Chris Campbell | 2016-06-18 17:50:46 +0100

Let the Degeneration card daze any unpolymorphable targets
Instead of just undead.

--------------------------------------------------------------------------------
985d2d2a08 | Chris Campbell | 2016-06-18 17:50:46 +0100

Remove an obsolete runrest message

--------------------------------------------------------------------------------
b2078b4a2e | Neil Moore | 2016-06-18 11:51:31 -0400

Adjust recommendations for monk changes; and add Mi->AK.
Thanks to elliptic for guidance.

Monk recommendations:
  Removed: Mo -> Mi, Gh, Vp
  Added:   Mo -> DD, Ds, Ce

Species recommendations:
  Removed:  HO -> Gl;  Vp -> Mo;  VS -> Mo,AE
  Added:    HO -> Mo;  Vp -> Gl;  VS -> Fi,Be;  Mi -> AK

--------------------------------------------------------------------------------
35db3344b6 | Corin Buchanan-Howland | 2016-06-17 18:32:16 -0400

Make entropy weavers into formicids
They already have a lot of similarities, and this makes them a little less 
weird.
I'm not gonna bother renaming them, at least for now.

--------------------------------------------------------------------------------
9626b45cfa | Corin Buchanan-Howland | 2016-06-17 18:32:15 -0400

Make entropy weavers faster and reduce their odds of casting Corrosion
Their old implementation strongly encouraged you to run away from them if things
went poorly and they had no way to punish you for that. The new implementation 
makes
it a bit easier for them to punish you for fleeing, and fits in better with a 
fast-
monster branch.

--------------------------------------------------------------------------------
39cdb9ed92 | Corin Buchanan-Howland | 2016-06-17 18:32:14 -0400

Remove entropy weavers from Vault and Depths (minmay)
These monsters weren't really hauling their weight in these branches. Leaving 
them
around a bunch of fast monsters earlier in the game seems like a better use.

--------------------------------------------------------------------------------
f760df0eec | Nicholas Feinberg | 2016-06-16 22:26:11 -0700

Make Xtahua's rare dialogue less common
...than the 'common' dialogue.

Could alternatively merge the categories; they're not very distinct,
and both are pretty rare anyway, since Xtahua doesn't have M_SPEAKS.

--------------------------------------------------------------------------------
5f2401d921 | Shmuale Mark | 2016-06-16 22:04:23 -0400

Text tweak (chequers).

--------------------------------------------------------------------------------
708bd0eeda | Shmuale Mark | 2016-06-16 19:40:07 -0400

Give necromancers the ability to make monsters revive as spectral things.
This was discussed a while back, when their animate dead/simulacrum was
removed. Credit to HardboiledGargoyle for reminding me of the case where
you've casted Death Channel already.

--------------------------------------------------------------------------------
d4922e29ae | Nicholas Feinberg | 2016-06-16 15:32:30 -0700

Remove a spammy dprf

--------------------------------------------------------------------------------
df79c294c5 | Nicholas Feinberg | 2016-06-16 09:19:53 -0700

Ban DgMo
No reason for it to exist now that Gl and Fi can select UC, and
that Mo can select other weapons.

--------------------------------------------------------------------------------
c8dcfc9153 | Nicholas Feinberg | 2016-06-16 08:55:10 -0700

Rework Monk start (chequers)
The monk start has two largely unrelated ideas. It's a strongly UC
focused start (more starting skill points invested in offense than
fighter or gladiator), and it's a "bonus piety for your first god"
start.

Both aspects are quite weak individually, and they have no
particular synergy. Since the bonus piety aspect is considerably
more distinctive and evocative than 'shitty tm/gl/fi', tying these
aspects together annoys players: people want to experiment with the
bonus piety, but don't want to be tied to UC.

This change dumps the UC focus, replacing it with a choice of
weapons; a sort of 'store-brand zealot'. (UC is still a choice, of
course.) I suspect the background will still be weak, but it should
at least be more conducive to experimentation.

--------------------------------------------------------------------------------
e7aab0b2ce | ontoclasm | 2016-06-16 01:26:34 -0500

New phantom tile
Let's try this again. Maybe this is the one??

--------------------------------------------------------------------------------
995e725c3d | Nicholas Feinberg | 2016-06-15 23:06:16 -0700

De-invert an Ozo's condition (10507)
Broken by aa754e77b59fa631ace6e6e5f413e07c6e470f47.

--------------------------------------------------------------------------------
281ae47904 | Nicholas Feinberg | 2016-06-15 22:17:02 -0700

Revert "Phantom tile edit"
Caused widespread eyestrain, woe.

This reverts commit 0ac6127eb500dd0ca7842725bafe8ced9646792f.

--------------------------------------------------------------------------------
f8984cf605 | Shmuale Mark | 2016-06-15 23:27:00 -0400

Disallow casting Darkness while halo'd.
As was the case three commits ago.

--------------------------------------------------------------------------------
9f24bd5149 | Shmuale Mark | 2016-06-15 23:03:12 -0400

Remove item interactions from shafts (Rast).
This seems to be the only user of items in transit... should that
code/mechanic be removed?

--------------------------------------------------------------------------------
aa754e77b5 | Shmuale Mark | 2016-06-15 22:56:57 -0400

Move a bunch of spell aborts into spell_uselessness_reason.
Which fixes #10488.

--------------------------------------------------------------------------------
2b68a6a2e1 | Shmuale Mark | 2016-06-15 22:56:57 -0400

Cancel due to spell uselessness before safety prompts.

--------------------------------------------------------------------------------
1224af5b59 | Chris Campbell | 2016-06-16 02:18:23 +0100

Adjust some destruction deck rarities
Make the Degen card and high power Wild Magic slightly rarer.

--------------------------------------------------------------------------------
2b2469d174 | Chris Campbell | 2016-06-16 02:18:11 +0100

Make the Wild Magic card use destructive spell schools
To better fit its position now in decks of destruction, use conjurations and
elemental miscasts instead of fully random ones.

--------------------------------------------------------------------------------
14f06bd3d0 | Shmuale Mark | 2016-06-15 21:07:38 -0400

Refactor/deindent.

--------------------------------------------------------------------------------
9e6df7bc47 | Shmuale Mark | 2016-06-15 21:04:02 -0400

Retarget the previous square in more cases (rchandra).
Now, it will happen even if you didn't target a monster's square. The
target gets reset whenever you move.

--------------------------------------------------------------------------------
8a1b79cdb8 | Shmuale Mark | 2016-06-15 19:53:37 -0400

Remove you.prev_move.
Unused since squarelos.

--------------------------------------------------------------------------------
7a97511308 | Shmuale Mark | 2016-06-15 18:59:56 -0400

Clarify ranged chaos descriptions (#10495).
Still not very good...

--------------------------------------------------------------------------------
79b24d55f6 | Nicholas Feinberg | 2016-06-15 14:32:09 -0700

Improve inedible tile chunks (ontoclasm)
And remove a pile of unused ones.

--------------------------------------------------------------------------------
51fd293565 | Nicholas Feinberg | 2016-06-14 23:52:13 -0700

Don't allow using ID scrolls on books
A waste! Throw them out. No codes! Confiscate their codes.

--------------------------------------------------------------------------------
c7710adb76 | Nicholas Feinberg | 2016-06-14 23:46:35 -0700

ID books when reading them from the floor
Would be better to ID them when just standing over them, but I'm
not sure the best way to go about that.

--------------------------------------------------------------------------------
6cf27f10ff | Nicholas Feinberg | 2016-06-14 23:01:59 -0700

Fix TAG_MAJOR_VERSION enum.h issues

--------------------------------------------------------------------------------
cf093aff59 | Nicholas Feinberg | 2016-06-14 22:39:41 -0700

Remove Hellwings' Cigotuvi's Embrace
Didn't do much, would be probably be an issue if it did (as with
other monster spells that use corpses). I had a plan for them to
get homonuculus buddies that would synergize with them (hit with
AF_VULN to let their Teleport Other trigger, die to power their
master's Cigotuvi's Embrace), but the former spell was removed and
the latter doesn't really interact super well with AF_SWOOP.

Ironically, this means they're back to being basically blue devils.

--------------------------------------------------------------------------------
b2633be6ac | Nicholas Feinberg | 2016-06-14 21:22:21 -0700

Give mesmerise to obsidian statues
Seems like an interesting tweak to make a stationary enemy more
threatening.

--------------------------------------------------------------------------------
8260ecf2b1 | Nicholas Feinberg | 2016-06-14 19:52:31 -0700

Revert "Prompt when wielding 2h weapons w/shield"
This reverts commit f2c134afbd6227025c3c72b505d6f9d93f2d8b44.

Could be abused to equip a 2h weapon with a shield (interrupt &
cancel shield unwielding); no easy obvious fix.

--------------------------------------------------------------------------------
f2c134afbd | Nicholas Feinberg | 2016-06-14 19:04:56 -0700

Prompt when wielding 2h weapons w/shield
To allow removing the shield.

This code is super sketchy and probably buggy, but here goes.
Credit to Jeremy Gurr for the approach!

--------------------------------------------------------------------------------
a01d668553 | Nicholas Feinberg | 2016-06-14 19:04:17 -0700

Checkwhite...

--------------------------------------------------------------------------------
5b6982f913 | Nicholas Feinberg | 2016-06-14 17:54:14 -0700

Clarify Idealise description (amalloy)

--------------------------------------------------------------------------------
d416de5ac4 | Nicholas Feinberg | 2016-06-14 17:52:53 -0700

Use 'rotten' tile for inedible chunks (serephina)
Since they shared the same tile with edibles, which seemed wrong.

Might be better to have an icon instead?

--------------------------------------------------------------------------------
38522c753c | Nicholas Feinberg | 2016-06-14 17:49:28 -0700

Ban fragile rings (amalloy)
Having two slots means that there's not much pressure to swap off
a good fragile ring, making the choice to wear one less meaningful.

--------------------------------------------------------------------------------
ddd2d1036d | Neil Moore | 2016-06-14 20:26:20 -0400

Fix up a notch in sunken temple.
It would be filled with open sea.

--------------------------------------------------------------------------------
5c940074d2 | ontoclasm | 2016-06-14 19:14:35 -0500

Edit some Invo tiles

--------------------------------------------------------------------------------
0ac6127eb5 | ontoclasm | 2016-06-14 19:14:35 -0500

Phantom tile edit

--------------------------------------------------------------------------------
ab89c2a589 | Nicholas Feinberg | 2016-06-14 14:30:16 -0700

Update cleaving description (10493)

--------------------------------------------------------------------------------
ca8dce14a9 | Nicholas Feinberg | 2016-06-14 09:50:46 -0700

Tweak good god swap messages (removely)

--------------------------------------------------------------------------------
4b37c69c17 | Chris Campbell | 2016-06-14 14:21:06 +0100

Adjust another Bai message

--------------------------------------------------------------------------------
805a5e4983 | Chris Campbell | 2016-06-14 14:09:35 +0100

Adjust Bai Suzhen speech handling

--------------------------------------------------------------------------------
2f6b49167c | regret-index | 2016-06-14 04:50:08 -0400

Lower Bai Suzhen's experience output a bit
5.3k is closer to Boris and Frederick than 6k's Sojobo by himself and
the Enchantress with her band, which seems more suiting?

--------------------------------------------------------------------------------
fd18b6f9c7 | regret-index | 2016-06-14 01:40:03 -0400

New unique: Bai Suzhen, dragon lady
An experimental late-game new unique, with probably too many tricks.

An amphibious, swift-swimming draconian from distant lands. Caught in some
cycle of her myth, she keeps a ring of shallow-water-producing rain clouds
and the sisterhood of summoned hydras. Upon reaching half health (like how
rakshasas summon emergency clones), she tosses down her quarterstaff and
transforms into a dragon! This shifts her defenses further towards AC,
changes her melee to the standard trampling dragon set, swaps out summoning
for nasty primal wave breath, and upgrades her rain clouds into those
highly-damaging thunderstorms.

Mara's depth (Vaults, second half of Lair branches, most of Depths), Jory-esque
defenses. Thunder clouds and constant shallow water for her to swim swiftly
through should be vaguely threatening without flight / swimming and rElec,
complimented by the short yet notable lives of summoned hydras. Plenty of
myth aspects are covered in distinct / rare mechanics, which should somewhat
make up for introducing another dragon into the standard elemental fantasy
fold.

Thanks to PleasingFungus for fixing up tiles crashes and the description.

TODO: Needs tiles. Currently a ? that transforms into a storm dragon.
Probably could also do with some better dialogue, too, but standards are
quite low here (her monspeak.txt entry is inbetween Azrael and Blork, after
all, and they're just mean and violent.

--------------------------------------------------------------------------------
d04d753b53 | regret-index | 2016-06-13 20:23:18 -0400

Somewhat flatten storm cloud hits / damage
Storm clouds make for odd play in rare monster hands or to risk entering with
the rod of clouds: 1/4th of the time they hit for four times the damage of fire
and frost clouds (24-87 elec damage for monsters, 40 to 131 elec damage for
players!), which is interesting as a non-debilitating cloud appropiate for
lategame and extended but also with an unfortunately randomized and spoilery
degree of large spikes of damage.

To make them less absurd and more regulated yet still recognizable, storm
clouds now strike monsters for 21-61 and players for 35-80 damage 1/3 of the
time and monsters (3.5x bottom of standard damage, 2.5x top of standard
damage). Nikola's chain lightning or the average late-game conjuration can do
worse, and it's still a gamble to sit around in the clouds. Cloud strikes to
non-occupied tiles are still a 1/4 chance, due to the very nature of that
being plenty of message spam as is (though this can be altered).

--------------------------------------------------------------------------------
117e5ed47b | regret-index | 2016-06-13 19:53:22 -0400

Extended monster simplifying edits (Hells, Tomb, seraphim)
Lots of trimming of side-bits, usually to emphasize whatever main mechanics
they've got.

 * Shrink down the iron giant bands to two ancient champions or two stone
   giants, cutting out the fire / frost giants that are very out of place in
   Dis and bringing up a more suiting armoured undead reaver. Hell effects
   and end vault density make it pretty rare for them to be alone, so their
   Throw will still get to be dramatic.
 * Cut the tzitzimitl pain and draining melee brands and compress those
   attacks into another plain 27 damage hit- the miasma ring is already very
   defining to their melee, and they've got two important spells as stands.
   Lower the XP a bit, too.
 * Up elemental wellspring hd but lower their hp a smidge, strengthening the
   primal waves but shortening the overall experience (with their
   self-damaging and all), to emphasize their nature as a distracting burst
   in the midst of Hell.
 * Cut the Bennu draining brands, to focus more on the other mechanics
   (holy brand, double life, explosion). Up the plain hits a bit, too.
 * Cut death scarab miasma trails, bump up their melee / health a little more.
   Pinning targets down with a non-spell source of miasma is hypothetically
   interesting, sure, but is also excessive for Tomb between ushabti clouds,
   mummy priest / greater mummy summons, slowing death curses, and their very
   own (irresistable) speed-draining attacks. This leaves them a little close
   to Zot's death cobs and with little strictly unique aspects, but their
   location, swarming and vampiric attacks seem to help with the distinction.
   Maybe they could use something else?
 * Cut seraph Smiting and Minor Healing. Seraphs already do a lot (super-shout,
   injury bond, summon angels, explode in cleansing flame) for a weird
   collective result, and they're already quite inconsistent about perfect /
   imperfect collections of other A tricks (compare to, say, great orbs of
   eyes, which have mr-checking-beams versions of four other eyes).

--------------------------------------------------------------------------------
6dcb0f0999 | Chris Campbell | 2016-06-13 23:53:31 +0100

Make high-power Vitriol card apply corrosion to monsters in LOS
To differentiate it from just being a plain copy of the wand of acid. Also
fixes some missing messaging for the power 2 Pain card.

--------------------------------------------------------------------------------
aaa67c4bcb | Chris Campbell | 2016-06-13 23:53:31 +0100

Refactor some deck handling

--------------------------------------------------------------------------------
14d3d06ca0 | Chris Campbell | 2016-06-13 23:53:31 +0100

Add cleaving duration (previously from Blade card) as a Xom effect

--------------------------------------------------------------------------------
8644a10012 | Chris Campbell | 2016-06-13 23:53:31 +0100

Reshuffle Nemelex decks and discard some more cards
Change the set of gifted decks (again), to Escape/Destruction/Summoning, and
remove a large number of cards to focus each deck on a smaller number (6 per
deck, down from 8 or more) of unique effects. The new decks are:

Escape: the Tomb, Exile, the Elixir, the Cloud, Velocity, the Shaft
Destruction: Vitriol, the Storm, Pain, the Orb, Degeneration, Wild Magic
Summoning: the Elements, the Pentagram, the Dance, Foxfire, the Rangers, the
           Illusion

--------------------------------------------------------------------------------
891ea64d00 | Chris Campbell | 2016-06-13 23:53:31 +0100

Reduce stone placement in a Tomb entry vault

--------------------------------------------------------------------------------
8781fba4a8 | Chris Campbell | 2016-06-13 23:53:31 +0100

Slightly increase Hepliaklqana piety costs
Since most of the god depends on XL rather than piety, make the abilities a
little more expensive to make piety more likely to fluctuate around the
breakpoint for Transference slowing.

--------------------------------------------------------------------------------
7bdcdb42d0 | Nicholas Feinberg | 2016-06-13 15:37:52 -0700

Fix some vault lua for tests (10499)
Not totally sure what causes this, which is worrying, but that
vault seems to be the only one that uses the relevant lua
anyway.

--------------------------------------------------------------------------------
0665fb6f6e | Nicholas Feinberg | 2016-06-13 15:29:40 -0700

Revert a debugging change

--------------------------------------------------------------------------------
7df5152722 | Nicholas Feinberg | 2016-06-13 15:28:04 -0700

Increase rapier base damage by 1
To be the same as a falchion's, 8. (Formerly 7.)

Should make them a bit more useful, more competitive with daggers
etc.

--------------------------------------------------------------------------------
93f72d759d | Nicholas Feinberg | 2016-06-13 09:33:16 -0700

Remove and deprecate bits of inventory code
Tossing corpses (RIP) and support for ?curse armour/jewellery.

--------------------------------------------------------------------------------
1f896ece55 | Nicholas Feinberg | 2016-06-13 09:26:17 -0700

Don't allow IDing identified decks (koboldina)

--------------------------------------------------------------------------------
3b60faf33f | Neil Moore | 2016-06-13 12:19:05 -0400

Don't allow IDing floor gold (#10491)

--------------------------------------------------------------------------------
098d46cfcc | Nicholas Feinberg | 2016-06-12 21:21:11 -0700

Make opaque clouds vanish faster outside LOS again
Restoring the old behaviour. I guess. This is so ugly. Maybe we
should revert this again...

--------------------------------------------------------------------------------
ff7fb05a50 | Nicholas Feinberg | 2016-06-12 21:20:28 -0700

Don't insta-vanish opaque clouds from player maps
Since they don't insta-vanish from the game, at present.

Pretty close for steam, though.

--------------------------------------------------------------------------------
9200b3b0ab | regret-index | 2016-06-12 22:14:16 -0400

Convert an old infiniplex wizlab_nikola submission (#6667) into a Zot vault
Nobody ever did pick up the problems it had with trying to drop its random
hostile ball lightning summons, even as over the years more electric enemies
provide more of a viable thematic monster set. I was also never fond of the
way it broke up the other wizlabs corresponding to titles, spells, and unands
by corresponding to a unique instead. Infiniplex eventually disappeared for
quite the while now, anyway.

So I've converted the layout into a large and fancy Zot vault, without the lua
gimmick and with a bit more hypothetical threat. There's still a few awkward
elements to it- due to using grates one can blink into the tornado turbines
(which have some hatch safe spaces just in case) and currently the
flavour-spawn hostile ball lightnings are bugged to try and explode even on the
other side of grates- but it's still otherwise a nice and fancy vault in the
company of many, many, many other Zot gimmick vaults.

--------------------------------------------------------------------------------
7ac35def6b | Neil Moore | 2016-06-12 17:38:52 -0400

Don't shaft onto Prometheus.

--------------------------------------------------------------------------------
a0c350bb14 | regret-index | 2016-06-12 17:24:55 -0400

argonaut's Greek myth vaults (#6505)
With a bunch of edits in contents and style due to the three and a half
year gap between submission and acceptance, of course. No vault monsters,
no ravens, and no completely isolated islets in Shoals.

--------------------------------------------------------------------------------
823fdfe508 | Neil Moore | 2016-06-12 14:07:24 -0400

Fix building from a clean tree (oops)
We didn't create main.d, which prevented generating main.o.

Also, fix spurious rebuilds: version.o needs to follow all the other
objects in the prerequisite list for the binary.

--------------------------------------------------------------------------------
96853e7284 | Neil Moore | 2016-06-12 13:14:07 -0400

Build and run monster in most Travis targets.
And remove the separate MONSTER=1 target.  The monster-specific parts
compile quickly enough that this should be a net win in Travis build
time.

Also, do not try running monster in Travis TILE=1 builds.

--------------------------------------------------------------------------------
809ef38e26 | Neil Moore | 2016-06-12 13:12:21 -0400

Allow building crawl and monster at the same time.
Previously,  make crawl monster   would build monster twice, naming one
of the copies "crawl".

--------------------------------------------------------------------------------
bc83f2adf7 | Neil Moore | 2016-06-12 13:12:21 -0400

Avoid a hang when removing tornado clouds.

--------------------------------------------------------------------------------
7ee3161f72 | Neil Moore | 2016-06-12 13:11:13 -0400

Don't anger demonic guardians.
Particularly since they can appear in the path of a multi-turn
damaging spell like Tornado.

--------------------------------------------------------------------------------
686c50db0e | Chris Campbell | 2016-06-12 16:15:43 +0100

Simplify

--------------------------------------------------------------------------------
1a04c38963 | Chris Campbell | 2016-06-12 15:36:40 +0100

Rework forced shafting checks
Simplify the list of terrain that forced shafts (from the Shaft card or
Formicid digging) can take place on - any non-water, non-staircase/portal floor
square is now valid for a shaft effect.

--------------------------------------------------------------------------------
ecdb44fb70 | Chris Campbell | 2016-06-12 14:39:17 +0100

Improve Shaft card messaging

--------------------------------------------------------------------------------
d1faf0580e | Chris Campbell | 2016-06-12 14:39:17 +0100

Tweak card descriptions

--------------------------------------------------------------------------------
765bb4b616 | Chris Campbell | 2016-06-12 14:39:17 +0100

Adjust chance for Xom swap

--------------------------------------------------------------------------------
69633bb6b0 | Chris Campbell | 2016-06-12 14:39:17 +0100

Fix a Xom typo

--------------------------------------------------------------------------------
99e9f27d3a | Chris Campbell | 2016-06-12 14:39:17 +0100

Add Alistair's Intoxication to Xom's spell list

--------------------------------------------------------------------------------
1be608a867 | Chris Campbell | 2016-06-12 14:39:17 +0100

Remove Xom's vitrification effect
Turning walls to glass isn't very interesting, especially now that nobody can
act through glass walls any more - it's more likely to just make travel
and exploration annoying.

--------------------------------------------------------------------------------
f359ac94ac | Chris Campbell | 2016-06-12 14:39:17 +0100

Remove an unnecessary Chei check from the velocity card
Even if you do use the card having abandoned Nemelex for Chei, it's fine to
remove a slow duration.

--------------------------------------------------------------------------------
b5a7e8db3f | gammafunk | 2016-06-12 03:29:00 -0500

Fix WebTiles compilation
broken in 590be90.

--------------------------------------------------------------------------------
590be9041b | Nicholas Feinberg | 2016-06-11 22:14:02 -0700

Insta-remove player clouds memory when outside LOS
So players can tell what's going on.

--------------------------------------------------------------------------------
7e89378e28 | Nicholas Feinberg | 2016-06-11 22:14:02 -0700

Players' non-opaque clouds instavanish outside LOS
They previously dissapated at 4x speed to discourage abuses, which
was (a) ineffective and (b) hard to notice unless you already knew
about it. ("Spoilery!") Better to make a hard-and-fast rule.

Opaque clouds are exempt so that e.g. large amounts of fog or
steam doesn't end up insta-dissipating; possibly this should be
revisited later.

--------------------------------------------------------------------------------
4b2eec1aea | regret-index | 2016-06-12 00:15:51 -0400

With Control Winds gone, replace cloud mage Cloud Cone / Blink with Tornado
Higher tier clouds on monsters is a little neat, and the cloud mage would make
lots of them but be fine even when blinking around with the cloud redirecting
status. With the immunity gone due to its superfluous main use on spriggan air
mages, it's rather easy for the cloud mage to die to their own clouds now.

Tornado is certainly a bit much of a replacement, but it's simpler than the
overall cloud engine and the only other use on monsters as stands is Lom Lobon.
The addition of emergency flight avoids potential drowning deaths from it,
anyway.

--------------------------------------------------------------------------------
42021f0fe4 | Nicholas Feinberg | 2016-06-11 20:48:12 -0700

Changelog through 0.19-a0-606-gee5277e

--------------------------------------------------------------------------------
ee5277ed17 | Chris Campbell | 2016-06-11 21:50:24 +0100

Let satiated vampires berserk and transform
To further build on their theme of being form-shifting undead (with their now
being mutatable at all levels), and to make them more able to make use of their
previously mostly-thematic transmutations apt.

--------------------------------------------------------------------------------
ea8c1b65a9 | Chris Campbell | 2016-06-11 21:49:20 +0100

Improve Transference targeting
Make it target a monster by default rather than the player (since targeting a
monster is likely the more common use case), and give it a hitfunc to display
valid targets so that it remains clear that the player can be affected.

--------------------------------------------------------------------------------
0598757ff7 | Chris Campbell | 2016-06-11 21:49:20 +0100

Display Hepliaklqana ancestors at the top of the monster list
Unlike other allies which are deliberately listed below all hostiles, since
this is a case where the player is likely to have only one ally whose health
and status they want to keep track of, especially in larger fights. Always
showing it in the monster list fixes this requiring lots of xv-ing in these
situations in console (at the cost of one less monster list spot for hostiles).

--------------------------------------------------------------------------------
b3a63a67a4 | Chris Campbell | 2016-06-11 21:49:20 +0100

Remove the Control Winds spell (crate)
Its original purpose (to save spriggans from forest fires) is no longer
applicable, and since spriggans no longer have a branch to themselves it's
not really a problem if they're particularly susceptible to clouds.

--------------------------------------------------------------------------------
b245719adb | Nicholas Feinberg | 2016-06-11 10:08:49 -0700

Don't save abyss ghosts (johnstein)
We aren't using them & don't seem likely to for the forseeable
future.

--------------------------------------------------------------------------------
cff94a7123 | Corin Buchanan-Howland | 2016-06-11 13:02:52 -0400

Check for box of beasts/sack of spiders destruction after success 
(PleasingFungus)
This approach feels better than having the item just fall apart on you, but it's
also considerably more consistent/powerful, so I upped the destruction rate to 
1/3.

--------------------------------------------------------------------------------
387a89b803 | Corin Buchanan-Howland | 2016-06-11 08:22:19 -0400

Flatten sack of spiders and box of beasts self-destruct chances (minmay)
The new odds are 1 in 4 regardless of Evo skill. The reasoning is that
we don't want the strength of these items to scale so heavily with Evo
skill -- the strength of the spiders/beasts released already scales
heavily, and we don't necessarily want the high end to be as strong as
it was.

--------------------------------------------------------------------------------
723c68534a | Nicholas Feinberg | 2016-06-10 12:47:03 -0700

Remove more acq uses of integer skills

--------------------------------------------------------------------------------
67864d1125 | Nicholas Feinberg | 2016-06-10 12:33:11 -0700

De-spoil erik_rubicon_*

--------------------------------------------------------------------------------
b0b679e5b9 | Chris Campbell | 2016-06-10 19:28:30 +0100

Adjust ranged weapon brand distribution
Make freezing/flaming equally likely, and vorpal a bit more common.

--------------------------------------------------------------------------------
eb0cc642f5 | Chris Campbell | 2016-06-10 19:28:30 +0100

Remove the evasion ego
Protection as a plain defensive ego works somewhat better on melee weapons, as
it still can potentially be used as an actual weapon - anyone using ranged
weapons to actually fight is probably being hit less anyway.

--------------------------------------------------------------------------------
dd6fc96bd0 | Chris Campbell | 2016-06-10 19:28:30 +0100

Don't let blowguns be artefacts
They don't make for interesting artefacts with such a limited range of brands.

--------------------------------------------------------------------------------
235f30cf00 | ontoclasm | 2016-06-09 23:59:45 -0500

Tiles for Urug and Grinder

--------------------------------------------------------------------------------
f2cdb0225d | Chris Campbell | 2016-06-09 22:38:46 +0100

Don't make spectral cloud heal undead on impact
It no longer has that effect over time (ghostly fireball does). Uses
BEAM_MMISSILE since it deals no impact damage anyway.

--------------------------------------------------------------------------------
859f5b9da0 | Chris Campbell | 2016-06-09 21:49:21 +0100

Remove Black Mark from Gloorx Vloq's spell set
Summoning executioners (fairly frequently) is pretty notable on its own, and he
already has quite a large spell set.

--------------------------------------------------------------------------------
bb8c8ee11a | Chris Campbell | 2016-06-09 21:38:48 +0100

Adjust a sewer vault
The demonologist isn't a very good usage of vault redefinition, and the vault
already tries to place Grinder as a boss.

--------------------------------------------------------------------------------
a6eff6b87f | Chris Campbell | 2016-06-09 21:19:05 +0100

Reduce the effectiveness of amulets of magic regeneration
It's still a fairly strong effect for those using MP heavily.

--------------------------------------------------------------------------------
9d0223f2f2 | Chris Campbell | 2016-06-09 21:10:39 +0100

Rescale Lair monster list (elliptic)
To make the new Lair:1 closer to old Lair:1 (instead of being based on old
Lair:3 as with the initial implementation of the level cuts), so as not to
make the jump from D to Lair too large. Total XP in Lair remains rougly the
same as with the previous scaling. The old Lair:1-8 spawns are now roughly
compressed into the new Lair:1-6 (with a bunch of rounding and some arbitrary
fiddling, further adjustments from those more familiar with mon-pick are very
welcome!).

--------------------------------------------------------------------------------
558a077cad | Chris Campbell | 2016-06-09 17:23:27 +0100

Don't generate plain jellies in Slime

--------------------------------------------------------------------------------
b6148b5347 | Chris Campbell | 2016-06-09 17:23:27 +0100

Shorten Slime to 5 floors
Just to keep it a bit shorter than its parent branch - 5 floors is still plenty
for diving it still to be reasonable, and clearing it for experience also
remains good.

--------------------------------------------------------------------------------
38e1428964 | Chris Campbell | 2016-06-09 17:23:27 +0100

Shorten Lair to 6 floors
By cutting off the top two, such that the new Lair:1 is roughly equivalent to
the old Lair:3. Total experience in Lair changes from ~63k to ~53k, which isn't
actually a very substantial drop - it should generally result in characters
still leaving the Lair at XL14 on average, just slightly further from XL15.

Lair sub-branches are now placed on Lair:2-4, and Slime on Lair:5-6.

--------------------------------------------------------------------------------
e40200b913 | Nicholas Feinberg | 2016-06-08 20:18:47 -0700

Default force_more for petrification (Malevolent)
Plenty of avoidable deaths caused by a lack of this.

I would credit k*n*qs in the commit message, but he or she used a
very rude word when making the request. Uncalled for!

--------------------------------------------------------------------------------
b5e2a15c2c | Corin Buchanan-Howland | 2016-06-08 22:43:41 -0400

An overflow vault for Uskayaw

--------------------------------------------------------------------------------
665d8108ca | Corin Buchanan-Howland | 2016-06-08 22:00:58 -0400

Decrease line pass piety a bit further
It seems to be a little too expensive to get much use.

--------------------------------------------------------------------------------
42badc2087 | Corin Buchanan-Howland | 2016-06-08 21:59:45 -0400

Increase tolerance for parking on the dance floor
Uskayaw gave you 10 AUT between piety gain before starting to decrement piety, 
but
that meant that a run of misses or low AC rolls in combat could be very 
punishing.
This increases the tolerance to 30 AUT, which should give a lot more 
flexibility.

--------------------------------------------------------------------------------
40557f60c7 | Corin Buchanan-Howland | 2016-06-08 21:59:44 -0400

Let pain bond decay and message when it does
Also, increase the duration a bit.

--------------------------------------------------------------------------------
425eeca8b9 | Alan Malloy | 2016-06-08 18:27:05 -0700

Update some comments that were just lies

--------------------------------------------------------------------------------
ff4d854650 | Shmuale Mark | 2016-06-08 16:56:51 -0400

Randomize wizlab semi-uniques' gender.

--------------------------------------------------------------------------------
4cfc824e0a | Shmuale Mark | 2016-06-08 16:24:27 -0400

Clean up patch and improve cancelling behaviour.

--------------------------------------------------------------------------------
af0fc2db8d | Naruni | 2016-06-08 16:24:27 -0400

ID items on floor.
New operation_types entry OPER_ID.

--------------------------------------------------------------------------------
d58e1bda11 | gammafunk | 2016-06-08 14:54:12 -0500

Color bog mummies in Ossuaries
These are meant to be like lower-level bog body monsters, but had the
same color as their base mummy monster. Setting these to green will help
differentiate them in console.

--------------------------------------------------------------------------------
02db055044 | Chris Campbell | 2016-06-08 19:33:36 +0100

Recolour vampire mosquitoes to lightgrey
Allowing meliai (which were overlapping with it on green) to keep their colour,
since vampire mosquitoes don't merit an exciting colour (and green is priestly).

--------------------------------------------------------------------------------
5267a9c56a | Chris Campbell | 2016-06-08 19:32:49 +0100

Clean up some vault depths

--------------------------------------------------------------------------------
76d9b5269e | Nicholas Feinberg | 2016-06-08 10:04:09 -0700

Checkwhite, unbrace

--------------------------------------------------------------------------------
4abe119b59 | Nicholas Feinberg | 2016-06-08 10:03:24 -0700

Make transfer-slow correctly trigger at 5*
The messaging claimed it did, but the effect was off-by-one (would
only occur at 6*). What code, what wonder...

--------------------------------------------------------------------------------
e13e26dd85 | Chris Campbell | 2016-06-08 11:18:49 +0100

Fix a pronoun

--------------------------------------------------------------------------------
8ae9a92e71 | gammafunk | 2016-06-08 03:38:28 -0500

Remove deck accounting in objstat
now that they don't generate randomly. If any decks where to somehow
generate, they'll still show up under the report for misc items.

--------------------------------------------------------------------------------
984bae3625 | Nicholas Feinberg | 2016-06-08 00:09:08 -0700

Fix monster for SoH changes
I swear this was working earlier...

--------------------------------------------------------------------------------
3c4e0ae29d | regret-index | 2016-06-08 03:01:58 -0400

Rupert roars paralysis, Norris is gone- give Xtahua paralysis
One: Norris had paralysis, which was slightly interesting on his level of
defenses, but Norris wasn't interesting enough outside of that.

Two: Rupert can already confuse and paralyze targets by shouting loudly at
them. Magically? It's not the best of arrangements, because it's limited by
Silence but not Antimagic by being a shout. Still, it's undeniable precedent.

Three: Despite giving Xtahua searing breath and the capability to explode
through doors many versions ago, she's still also rather plain as a somewhat
upgraded fire dragon with higher stats. She's also in the category of old and
straightforward uniques with weak yet beloved themes, BECAUSE SHE SHOUTS LIKE
THIS ALL THE TIME.

Results: Xtahua stole Paralysis from Norris as he left. Rupert taught her.

(She also goes from 19 HD to 20 HD to deal a little more fire breath damage
and also equate to Norris's casting strength, but has a 1.5x casting rate
compared to Norris or sphinxes. Might be a little weak sometimes, but
still with a bit more of a niche.)

--------------------------------------------------------------------------------
06a26c88d1 | Nicholas Feinberg | 2016-06-07 23:50:05 -0700

<chequers> typo in lom lobon: s/it's/its/

--------------------------------------------------------------------------------
699eac53f0 | Yer mivvaggah | 2016-06-07 23:49:02 -0700

add some speech lines

--------------------------------------------------------------------------------
65dcf151f8 | regret-index | 2016-06-08 02:40:51 -0400

Fill in a vault's teleport closets

--------------------------------------------------------------------------------
e0ba36dcd8 | Nicholas Feinberg | 2016-06-07 23:34:28 -0700

Merge pull request #294 from alexjurkiewicz/sex-change
Change the gender of a few uniques.
--------------------------------------------------------------------------------
7ccc58bddc | Alex Jurkiewicz | 2016-06-08 16:30:58 +1000

Change the gender of a few uniques.
Mostly changing some men to women, but also making a couple of hell
lords neuter.

--------------------------------------------------------------------------------
1076154c5a | regret-index | 2016-06-08 01:05:54 -0400

Remove Norris
He's a sphinx with a buckler and Invisibility.

He's an old unique with a muddled spellset and nothing valuable beyond
Paralysis on something with unique-level HD and defenses. He's got a
slightly uncomfortable theme of being a nihilist death cultist that
doesn't really invigorate his hex spells. Some people like his tile
once have a surfboard and still resembling a surfer without it, but
this isn't really enough to keep running with.

Late game is lousy with brutal, newer uniques from a few years ago,
so throwing old Norris out might help with such a glut. If somebody
can think of and test out a good, defining spellset using some spells
not as prominent as invis / para / confuse / smiting, maybe they can
bring him back, but none have really come forward.

His tiles are left in UNUSED, and late game Paralysis might be useful
elsewhere...

--------------------------------------------------------------------------------
6c180b4f69 | Nicholas Feinberg | 2016-06-07 21:56:05 -0700

Fix elephant non-zombie undead tiles (10484)
oops...

--------------------------------------------------------------------------------
d2716803c1 | Nicholas Feinberg | 2016-06-07 21:55:32 -0700

Refactoring: split SoH breath into 4 spells
Special casing on monster type caused a long series of crashes,
and is generally not the sort of behaviour we like in our spells.

--------------------------------------------------------------------------------
a3d69d02d1 | regret-index | 2016-06-07 23:26:58 -0400

Some more Legendary Destruction edge clean-up
Improve the health of the weakest two demonspawn classes (blood saints,
black suns) slightly, lower the cast rate marginally, give a description
that explicitly outlines the double-up effect.

--------------------------------------------------------------------------------
b769e50066 | Neil Moore | 2016-06-07 23:03:10 -0400

Fix a Legendary Destruction freeze.
When the target was within the range of Legendary Destruction, but not
within the range of any of the possible spells, setup_mons_cast would
spin in a loop trying and failing to pick a spell with larger range.

Now that all the component spells have the same range, remove that loop
and adjust LD's range to be the same.

--------------------------------------------------------------------------------
a0db8be4d7 | Neil Moore | 2016-06-07 22:56:48 -0400

Remove some leftover Legendary Destruction IOOD code.

--------------------------------------------------------------------------------
111ede86d0 | Neil Moore | 2016-06-07 22:56:38 -0400

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
4192497310 | regret-index | 2016-06-07 22:32:16 -0400

Merge pull request #293 from alexjurkiewicz/blood-saint-buff
Buff Blood Saints (regret-index).
--------------------------------------------------------------------------------
63c04df377 | Nicholas Feinberg | 2016-06-07 18:20:55 -0700

Cut Hep ancestor AC
Too 'tanky' [sic], especially at low XLs. Might end up buffing
late-game ancestor HP growth (there's already a convenient dial to
tweak), but one change at a time.

--------------------------------------------------------------------------------
63d696b94c | Chris Campbell | 2016-06-08 02:03:59 +0100

Use a passive_t for Sif no-mp casting
And improve messaging, to make it clear what's going on and why. The
prompt-to-cast behaviour might still need messing with, perhaps. The theme is
also somewhat inconsistent - Sif "offers you divine energy" in the prompt,
versus more passively being able to "tap ambient fields" on the religion screen.

--------------------------------------------------------------------------------
b780e24f8f | Chris Campbell | 2016-06-08 01:47:32 +0100

Update Sif descriptions

--------------------------------------------------------------------------------
109cbea65c | Chris Campbell | 2016-06-08 01:46:31 +0100

Give Sif's channel energy a fail rate based on Invo
Instead of one based only on piety.

--------------------------------------------------------------------------------
8d3156c971 | Alex Jurkiewicz | 2016-06-08 10:39:47 +1000

Buff Blood Saints (regret-index).
Double their cast rate, make legendary destruction cast two spells at a
time, and shorten the candidate spell list to fireball/iceblast/ghostly
fireball.

--------------------------------------------------------------------------------
15262616c8 | regret-index | 2016-06-07 20:10:21 -0400

Control some more vault placements of hells enemies
Boot a few shard shrikes and a doom hound from Depths vaults, to continue to
demarcate them and iron giants as Hells-specific. The shard shrikes in a
slim few Zot vaults are okay, though, because it's Zot.

Also, futz around with the old and badly-arranged _tower_of_babel: it's now an
enclosed stair bubble vault with solely Dis appearances, and it edges closer
to resembling the level it's a homage to, rather than nearly always being
approached from the outside and thus resulting in just wandering into a
seemingly random iron giant.

Also also, put back a Depths scaling of one vault, but replace the
previous now-taboo iron giant with a lordly juggernaut instead.

--------------------------------------------------------------------------------
1edb3d8ce9 | Chris Campbell | 2016-06-08 00:24:17 +0100

Make using decks practice Invocations when autoskilling

--------------------------------------------------------------------------------
174f2441f4 | Chris Campbell | 2016-06-07 23:55:08 +0100

Use a canned message

--------------------------------------------------------------------------------
fe150d370f | Chris Campbell | 2016-06-07 23:55:08 +0100

Make the Wraith card ignore rN
Undead still get a free pass on a couple of other Punishment cards (Famine and
Swine).

--------------------------------------------------------------------------------
da230b6bd9 | Chris Campbell | 2016-06-07 23:55:08 +0100

Personalise the Torment card
To apply holy word to those vulnerable to it, and torment otherwise. Also
rework holy word to be inconsistent but in a different (and possibly better)
way to the way it was previously inconsistent (by just having fixed separate
monster/player effects rather than changing the effect based on the reader,
not that it matters either way since monsters can't read it).

Could maybe also do with a rename, but possibly Torment is still fine (since
you don't see the name of the card when you draw it anyway, and if you look
up the description it's still accurate for either effect).

--------------------------------------------------------------------------------
2f637b1979 | Chris Campbell | 2016-06-07 23:55:08 +0100

Don't not slow Pakellas piety at high levels
Since the gifting no longer uses gift timeouts.

--------------------------------------------------------------------------------
7be440f59e | Chris Campbell | 2016-06-07 23:55:08 +0100

Make Nemelex use invocations instead of evocations
With decks now a Nemelex-only mechanic, it makes a lot more sense to use the
dedicated "god" skill than it does to use the more general evocations skill.
Also fixes Nemelex card power having been significantly decreased by Pakellas's
implementation applying a stepdown to evocations power across the board.

Card power uses the same calculations (with Invo replacing Evo, and weakly
depending on XL if you abandon Nemelex if you keep using decks - potentially
this could be replaced with just having Nemelex take decks back on
abandonment). Also allows Nemelex to be worshipped with sacrifice artifice.

--------------------------------------------------------------------------------
8323b11ed2 | Chris Campbell | 2016-06-07 23:55:08 +0100

Remove the Dowsing card
The effect doesn't really fit as a gifted card. It might be an interesting
effect to reuse elsewhere (telepathy specifically), but can always be brought
back for that in some form if a good idea comes up.

--------------------------------------------------------------------------------
65534a8899 | Chris Campbell | 2016-06-07 23:55:08 +0100

Don't identify the top card of a deck with ?ID
With decks being Nemelex-only, card manipulation/identification is better as
just a function of Nemelex abilities (and it's confusing to have card ID listed
as a function of ?ID when it won't be relevant to most characters).

--------------------------------------------------------------------------------
e25d64f119 | Chris Campbell | 2016-06-07 23:55:08 +0100

Don't place decks as vault loot
Since they're now intended to just exist as Nemelex gifts.

--------------------------------------------------------------------------------
8eb93c7980 | Chris Campbell | 2016-06-07 23:55:08 +0100

Remove decks of oddities
Having a 1/100 chance to trigger a whole new set of effects made cards yet more
complicated than they already are, and their unreliable/gambling theme works
better with the regular card effects themselves being variable and sometimes
having downsides.

Some now-unused cards (Feast, Xom, Curse) are also removed.

--------------------------------------------------------------------------------
7b4a13f6e4 | Chris Campbell | 2016-06-07 23:55:08 +0100

Remove some cards from the deck of punishment
Exile, Xom, and Curse. Exile gets less likely to banish the player at high
power (assuming other monsters are around when it triggers). Having Xom just
act randomly doesn't make for a great wrath effect, especially when nasty Xom
is already a possible Wrath card effect. Curse similarly isn't a very
interesting wrath effect.

--------------------------------------------------------------------------------
bd6fe5b1c8 | Chris Campbell | 2016-06-07 23:55:08 +0100

Simplify Exile card power calculations
Evocations skill shouldn't be directly checked in the card, it should use
standard card power or power_level (simplified to only use power_level here).

--------------------------------------------------------------------------------
35d398dc39 | Chris Campbell | 2016-06-07 23:55:08 +0100

Make iron giants a Dis-only monster
Remove them from random Depths generation and some vaults, treating them more
like Cocytus's shard shrikes and Tar's doom hounds, as an especially dangerous
Hell-specific enemy.

--------------------------------------------------------------------------------
122b14b03b | regret-index | 2016-06-07 18:51:04 -0400

Some large god-themed vaults for Depths / etc
Large vaults themed after Dithmenos, Qazlal, and Uskayaw for Depths, with
a few standard floor spawns for Depths. Dithmenos's vault can also place
as a Tartarus stairs vault and Qazlal's vault can also place as a Zot
entrance or Zot stairs vault, with appropiate monster changes for the
locales. Uskayaw's vault repurposes some of the concepts of a previous
vault somewhat near the same concepts.

--------------------------------------------------------------------------------
8b19063074 | regret-index | 2016-06-07 18:13:11 -0400

Miasma cloud tiles (CanOfWorms)
Miasma shared tiles with black smoke for years!

There was a nice offered sickly-green cloud tile set as well,
but it'd be a little too close to the other poison clouds.

--------------------------------------------------------------------------------
4d3b45e202 | regret-index | 2016-06-07 17:03:43 -0400

Meliai dispersal + new (Hive) vaults + bee / wasp hive vault edits
Put three meliai per beehive vault when past D:12 or Lair:4-, mark all
minivaults dedicated to bees or wasps with a uniq_ tag to limit their
appearances to once per game each (aside from the food vault), add a
shoals vault using meliai and several large late D / Lair vaults mixing
floor spawns and bees very loosely inspired by old hive layout vaults.
Also, some bits of clean-up here and there.

--------------------------------------------------------------------------------
b916c57f77 | regret-index | 2016-06-07 15:04:24 -0400

New monster: Meliai, bee priestesses
Following... Greek symbolic assoications of honeybees for priestesses of
Artemis and adjascent non-Olympian earth mother goddesses, as well as myths
of bee-nymphs as firm prophets, creation-myth warrior races, and nurses to the
gods, here. These humanoid bee hybrids, meliai, provide an upgraded killer bee
variety for use in the later (but not much extended further) uses of said bees-
mostly late D and rare Spider appearances, alongside placement in the deeper
variants of beehive vaults in D, Lair, and Spider. Killer bees are pretty
valuable in their swarming early terrifying appearances, but taper off even
with the queen bee's berserk other mechanic when they appear later on.

Melissae have moderately improved stats on the speed / poison of killer bees,
light armour, one-handed axes (the Minoan labrys) for a second hit, and
priestly Smiting / Heal Other. They appear in threes- Greece liked triparte
femininity - whether as bands in the mess of D spawns, very rare Spider
placements, or the post-midpoint-of-Lair beehive vaults. Queen bees can
berserk them as they can with killer bees.

The smiting allows them to overcome the killer bee weakness to corridors, as
does (to a much lesser extent) the cantrip-esque heal other. The large damage
increase but retained killer bee frailty gives the vaults that place them the
frail high priority threats concept that works for e.g. eyes.

AS PER USUAL: A need for a new tile, as this currently usies placeholder
ancient bumblebee tiles.

--------------------------------------------------------------------------------
5adfe90e79 | Nicholas Feinberg | 2016-06-07 09:52:38 -0700

Ban Upheaval on solid objects (|amethyst)
Only possible with legendary targeting mode '!', and could be
abused to hit target through the other side of a wall, in e.g.
linesprint.

--------------------------------------------------------------------------------
957b73b337 | elliptic | 2016-06-07 12:21:25 -0400

Bring back the darken_beyond_range option.
Default true, when set to false it disables both darkening beyond range and
flashing the range of a targetter (regardless of whether
use_animations += range is set).

--------------------------------------------------------------------------------
15b4f4167f | Nicholas Feinberg | 2016-06-07 08:38:34 -0700

Simplify (|amethyst)

--------------------------------------------------------------------------------
78927d6867 | Nicholas Feinberg | 2016-06-07 08:36:09 -0700

Tweak a fulminant prism message (10482)
How Can Prisms Be Real If Our Eyes Aren't Real?

--------------------------------------------------------------------------------
13207c47f7 | Nicholas Feinberg | 2016-06-07 08:32:30 -0700

Remove the shadow form / good god worship ban
Not that it matters at all, but the only point of banning worship
of good gods while in shadow form would be to convey that shadow
form is evil in some way, which it's not.

--------------------------------------------------------------------------------
411dd88966 | Nicholas Feinberg | 2016-06-06 23:38:58 -0700

Oops

--------------------------------------------------------------------------------
d42735bc8c | Nicholas Feinberg | 2016-06-06 23:37:10 -0700

Fix nevermiss/deflect missile interaction (10448)
Technically the previous commit was also relevant...

--------------------------------------------------------------------------------
599b5d79c6 | Nicholas Feinberg | 2016-06-06 23:30:24 -0700

Count projectiles as launched correctly (Jafet)
Broken by a6dc205.

--------------------------------------------------------------------------------
be2e51cfc7 | gammafunk | 2016-06-06 20:49:08 -0500

Give Asterion Greater Servant of Makhleb instead of Spectral Weapon
Asterion wasn't especially threatening for a mid-game unique. He has
good melee damage, ranged spells, and Haste, but his unique Spectral
Weapon spell wasn't terribly impactful. It gave Asterion a way to take
additional damage when he's already good at damaging himself through
Major Destruction just to achieve a relatively minor damage increase.
This commit gives him Greater Servant of Makhleb instead of Spectral
Weapon. This can summon create any of Green Death, Blizzard Demon,
Balrug, Cacodemon, or Executioner with a summon cap of one. These
summons can be fairly nasty in mid-game but can be reasonably dealt with
on such a limited basis

Spectral Weapon might work better on another monster that generates with
a sufficiently good weapon, so I'm not removing the monster-related
Spectral Weapon code for the time being.

--------------------------------------------------------------------------------
4eae7fd2cd | Neil Moore | 2016-06-06 21:44:54 -0400

Automatically handle missing gods in tgw_lugonu_bribe.
Rather than having to explicitly add them with "no" as the value.  In
particular, Hepliklqana was missing, resulting in an error message when
Hep worshippers triggered this vault.

Also, fix the indentation.

--------------------------------------------------------------------------------
ac65b45377 | elliptic | 2016-06-06 21:10:51 -0400

Reset corrosion amount when revived from death (qw).
The duration was ended without zeroing the prop storing the amount of
corrosion. This meant that when you next got corroded by something, you
would start with the old corrosion amount (maybe plus one).

--------------------------------------------------------------------------------
713c38ed8a | Corin Buchanan-Howland | 2016-06-06 20:11:20 -0400

Drop vault guard XP a bit (Snack)
Because it was a ton higher than, say, orc knights, even tho orc knights are 
about
the same power level.

--------------------------------------------------------------------------------
16d2d0230a | Corin Buchanan-Howland | 2016-06-06 20:09:30 -0400

Adjust a few sacrifice values
Adding piety to Sac Skill and Sac Experience, plus extra piety for sacrificing 
both
courage and experience, since that's extra bad.

--------------------------------------------------------------------------------
a1b21dd13f | Corin Buchanan-Howland | 2016-06-06 18:31:18 -0400

Decrease the weight of MP+9 on randarts (elliptic)
There's a concern that +MP is too easy to come by.

--------------------------------------------------------------------------------
1d5ec85217 | Corin Buchanan-Howland | 2016-06-06 18:31:17 -0400

Make amulet of mana regen scale with time spent (|amethyst)

--------------------------------------------------------------------------------
b6a5606436 | Shmuale Mark | 2016-06-06 15:02:52 -0400

Un-break targetting of walls (#10479).
valid_aim was used more than I realized.

--------------------------------------------------------------------------------
626ee587cc | ontoclasm | 2016-06-06 02:03:14 -0500

Brighten the Shadow Imp tile (roctavian)

--------------------------------------------------------------------------------
bb48b14140 | gammafunk | 2016-06-05 18:41:52 -0500

Fix compilation and shorten an ability description

--------------------------------------------------------------------------------
dd062c3fcb | gammafunk | 2016-06-05 17:44:00 -0500

Randomize the -Cast duration from Sif casting (MarvinPA)
Now it gives 3 + random2avg(sifcast_amount * 2, 2) turns of -Cast, where
sifcast_amount is the difference between the MP you have and the MP
needed for the spell. This makes the cost more impactful and gives it
randomization.

--------------------------------------------------------------------------------
942ac9c238 | gammafunk | 2016-06-05 17:43:51 -0500

Rework Sif Muna's channel
Now instead of the old Channel Energy ability at 1*, Sif Muna has two
abilities:

At 1* you can "Sif Cast" (to be renamed):

You can choose to cast a spell even if you lack the full MP for it, but
doing so will set a -Cast status for as many turns as you were missing
MP. Hence missing only 1 MP means only a turn of -Cast, but casting
e.g. Firestorm at 0MP will leave you with -Cast for 9 turns. The ability
presently prompts you each time you would use it. I can forsee people
such as myself wanting to turn off this prompt, so prompting might need
to be addressed.

At 3* you get a "Channel Energy" ability:

Costs piety and hunger, presently costed the same as Trog's Hand. This
gives you 4 + random2avg(2 * INVOCATIONS / 3) turns of a "Chan" duration
that grants ambrosia-levels of MP regen, namely 3-5 MP restored per
turn.

This is a very WIP patch so I can see how the god plays with a
combination of these two things instead of active channel.

--------------------------------------------------------------------------------
d6a9987283 | Corin Buchanan-Howland | 2016-06-05 17:09:41 -0400

Make box of beasts and sack of spiders stackable.
We're living the dream.

--------------------------------------------------------------------------------
981a8eba9b | Corin Buchanan-Howland | 2016-06-05 17:09:40 -0400

Remove charges from box of beasts and sack of spiders
These two evocables were problematically consistent and powerful, making strong
summons available to pretty much all characters. This patch removes charges and
gives the evokables a power-based chance to self-destruct on each use.
This makes them less reliable and generally fewer total uses, but rewards
high Evo.

This also paves the way to make them stack.

New sack of spiders chances:
Evo 1 chance of self-destruct: 36.4%
Evo 1 chance of getting spiders: 34.7%
Evo 2 chance of self-destruct: 33.3%
Evo 2 chance of getting spiders: 38.9%
Evo 3 chance of self-destruct: 30.8%
Evo 3 chance of getting spiders: 42.6%
Evo 4 chance of self-destruct: 28.6%
Evo 4 chance of getting spiders: 45.9%
Evo 5 chance of self-destruct: 26.7%
Evo 5 chance of getting spiders: 48.9%
Evo 6 chance of self-destruct: 25.0%
Evo 6 chance of getting spiders: 51.6%
Evo 7 chance of self-destruct: 23.5%
Evo 7 chance of getting spiders: 54.0%
Evo 8 chance of self-destruct: 22.2%
Evo 8 chance of getting spiders: 56.2%
Evo 9 chance of self-destruct: 21.1%
Evo 9 chance of getting spiders: 58.2%
Evo 10 chance of self-destruct: 20.0%
Evo 10 chance of getting spiders: 60.0%
Evo 11 chance of self-destruct: 19.0%
Evo 11 chance of getting spiders: 61.7%
Evo 12 chance of self-destruct: 18.2%
Evo 12 chance of getting spiders: 63.2%
Evo 13 chance of self-destruct: 17.4%
Evo 13 chance of getting spiders: 64.7%
Evo 14 chance of self-destruct: 16.7%
Evo 14 chance of getting spiders: 66.0%
Evo 15 chance of self-destruct: 16.0%
Evo 15 chance of getting spiders: 67.2%
Evo 16 chance of self-destruct: 15.4%
Evo 16 chance of getting spiders: 68.3%
Evo 17 chance of self-destruct: 14.8%
Evo 17 chance of getting spiders: 69.4%
Evo 18 chance of self-destruct: 14.3%
Evo 18 chance of getting spiders: 70.4%
Evo 19 chance of self-destruct: 13.8%
Evo 19 chance of getting spiders: 71.3%
Evo 20 chance of self-destruct: 13.3%
Evo 20 chance of getting spiders: 72.2%
Evo 21 chance of self-destruct: 12.9%
Evo 21 chance of getting spiders: 73.0%
Evo 22 chance of self-destruct: 12.5%
Evo 22 chance of getting spiders: 73.8%
Evo 23 chance of self-destruct: 12.1%
Evo 23 chance of getting spiders: 74.6%
Evo 24 chance of self-destruct: 11.8%
Evo 24 chance of getting spiders: 75.3%
Evo 25 chance of self-destruct: 11.4%
Evo 25 chance of getting spiders: 75.9%
Evo 26 chance of self-destruct: 11.1%
Evo 26 chance of getting spiders: 76.5%
Evo 27 chance of self-destruct: 10.8%
Evo 27 chance of getting spiders: 77.1%

Box of beasts chances:
Evo 1 chance of self-destruct: 45.5%
Evo 2 chance of self-destruct: 41.7%
Evo 3 chance of self-destruct: 38.5%
Evo 4 chance of self-destruct: 35.7%
Evo 5 chance of self-destruct: 33.3%
Evo 6 chance of self-destruct: 31.3%
Evo 7 chance of self-destruct: 29.4%
Evo 8 chance of self-destruct: 27.8%
Evo 9 chance of self-destruct: 26.3%
Evo 10 chance of self-destruct: 25.0%
Evo 11 chance of self-destruct: 23.8%
Evo 12 chance of self-destruct: 22.7%
Evo 13 chance of self-destruct: 21.7%
Evo 14 chance of self-destruct: 20.8%
Evo 15 chance of self-destruct: 20.0%
Evo 16 chance of self-destruct: 19.2%
Evo 17 chance of self-destruct: 18.5%
Evo 18 chance of self-destruct: 17.9%
Evo 19 chance of self-destruct: 17.2%
Evo 20 chance of self-destruct: 16.7%
Evo 21 chance of self-destruct: 16.1%
Evo 22 chance of self-destruct: 15.6%
Evo 23 chance of self-destruct: 15.2%
Evo 24 chance of self-destruct: 14.7%
Evo 25 chance of self-destruct: 14.3%
Evo 26 chance of self-destruct: 13.9%
Evo 27 chance of self-destruct: 13.5%

--------------------------------------------------------------------------------
8e8fbab786 | Shmuale Mark | 2016-06-05 15:19:34 -0400

Fix some more autotargetting quirks (#10478).

--------------------------------------------------------------------------------
3b033800c4 | elliptic | 2016-06-05 12:25:05 -0400

Fix a vault (|amethyst, regret-index).

--------------------------------------------------------------------------------
03b74c0c83 | David Ploog | 2016-06-05 18:15:40 +0200

Several temple maps with many altars.

--------------------------------------------------------------------------------
4411254b86 | elliptic | 2016-06-05 11:54:29 -0400

Player lua: you.skill_cost("Fighting").
Returns nil if the player will never be able to train the skill further
(skill is at 27 or is useless).

--------------------------------------------------------------------------------
87504f6634 | David Ploog | 2016-06-05 16:56:47 +0200

Uskayaw overflow altar.
Featuring two dancing weapons.

--------------------------------------------------------------------------------
34607632ed | Neil Moore | 2016-06-05 10:15:34 -0400

Make "acquire rod" and Pakellas 5* always give rods (Lasty)
Rod acquirement was made the same as misc acquirement, which gives a rod
1/8 of the time.  However, rod acquirement is used for Pakellas's 5*
gift, and the worshipper has already received two misc tems by then.

Nothing else uses rod acquirement at the moment, so there is no harm in
making it behave differently from misc acquirement.

Also, don't try giving rods to Felids in misc acquirement. The rod would
be vetoed anyway, but there's no sense repeating the loop if we don't
have to.

--------------------------------------------------------------------------------
e02a90798a | Corin Buchanan-Howland | 2016-06-05 09:17:56 -0400

Don't stop runrest when you get a Uskayaw power gain/loss message (Snack)

--------------------------------------------------------------------------------
eae706ecbd | Corin Buchanan-Howland | 2016-06-05 09:17:29 -0400

Mute Uskayaw *** and **** power loss in config only (|amethyst)

--------------------------------------------------------------------------------
97644e8d91 | Corin Buchanan-Howland | 2016-06-05 08:45:28 -0400

Revert "Mute Uskayaw *** and **** piety gain/loss messages"
This reverts commit 7d78316aec80a9854ddd0f7a93271aa3064653b0.

--------------------------------------------------------------------------------
7d78316aec | Corin Buchanan-Howland | 2016-06-05 07:58:43 -0400

Mute Uskayaw *** and **** piety gain/loss messages

--------------------------------------------------------------------------------
8266cc7cb9 | Neil Moore | 2016-06-05 01:21:02 -0400

Correct messages for losing Uskayaw 3* and 4*.
God powers with capitalised messages do not add "You can
{now,no longer}", so need distinct gain and loss messages.

--------------------------------------------------------------------------------
0da41c7ad3 | Nicholas Feinberg | 2016-06-04 21:39:50 -0700

Buff howler monkey damage
[21:25] elliptic
I sort of feel like howler monkeys should be at least a little
more capable of damaging the player on their own

--------------------------------------------------------------------------------
45a6586131 | Neil Moore | 2016-06-04 23:52:19 -0400

Allow melding rods (VeryAngryFelid)
They were falling away instead, meaning they had to be re-wielded when
the form ended.

--------------------------------------------------------------------------------
a01d2fe62f | Nicholas Feinberg | 2016-06-04 19:59:11 -0700

Attempt to reduce player whinging
Count ancestors as avatars for purpose of XP gain (full XP from
ancestor-killed enemies.)

Ancestor/Hep power can be controlled by other, more elegant knobs
than XP gain, and it's not desireable to discourage players from
using their ancestors in fights. The opposite of that, really.
The only reason I didn't make this commit before is because it's
an ugly special case, but hopefully someday we can find a better
way to balance summons and remove the reduced-xp thing for them,
and then the special case will be gone.

Huzzah.

--------------------------------------------------------------------------------
dfa65a2167 | Nicholas Feinberg | 2016-06-04 18:31:31 -0700

Experiment: buff jewellery acq power
Jewellery acquisition is generally considered Quite Bad, and a
skilled player will very rarely choose it. It seems like it'd
be more interesting if there were more contexts in which jewel
acq was a plausible choice.

I don't think that ?acq is 'overpowered' overall, so increasing
jewellery acq's power to try to compete with armour & weapon acq
seems like a reasonable approach. Hence, this ups the odds of
jewellery acq to produce artefacts (from ~30% to ~65%). Might
make it more competitive, as it was before weapon/armour/wand
acq were buffed in ancient days.

--------------------------------------------------------------------------------
1488baeee6 | Nicholas Feinberg | 2016-06-04 17:48:11 -0700

Fix quicksilver bolt not piercing (MarvinPA)
Looks like an oversight in mon-cast.

This also makes player dispelling breath (purple drac) randomly
coloured, as the monster version is.

--------------------------------------------------------------------------------
3a64ca2654 | Nicholas Feinberg | 2016-06-04 16:53:28 -0700

Battlemage: swap Iceblast choice for Force Lance
Iceblast isn't particularly great for a companion that's often in
melee (as ancestors & other allies are wont to be), and Force Lance
is interesting as a 'playstyle differentiator'; some characters will
be much more interested in seeing their enemies knocked back than
others, which makes the choice (between Force Lance and Magma Bolt)
strategically situational. Hopefully.

Players who chose Iceblast for their ancestors will have it swapped
automatically for Force Lance whenever their ancestor dies or they
level up, etc.

--------------------------------------------------------------------------------
9eaea5248f | Nicholas Feinberg | 2016-06-04 15:50:32 -0700

Rewrite pak's device surge
Notable changes:
- Should no longer give multiple/spurious surge notifications.
- Will no longer cause evocations failure; if it fails to produce
  any enhancers, it'll consume mp & the surge (as before), but
  the intended effect will still go off at base power.
- Should now affect rod power. (Previously, using a rod with
  device surge active would consume the effect, but not change
  evocation power at all.)

--------------------------------------------------------------------------------
86794c1b14 | Chris Campbell | 2016-06-04 23:07:27 +0100

Fix pronouns in pain bond description

--------------------------------------------------------------------------------
61814d303a | Corin Buchanan-Howland | 2016-06-04 14:00:07 -0400

Document and open up _get_randart_properties()
This allows callers to specify artefact quality levels. This isn't being
used at present, but it's low-hanging fruit and I think we probably are
going to want it eventually.

--------------------------------------------------------------------------------
753906c868 | Nicholas Feinberg | 2016-06-04 10:23:21 -0700

Increase battlemage melee damage
The initial goal was for them to be glass cannons (good damage at
both range & melee, but poor defenses); this got sidetracked into
'pure conjurations' along the way, but that was not really the
point. Their melee damage is increased by ~25-50% over previous
levels (a higher proportional increase at lower levels), and their
description has been adjusted accordingly.

--------------------------------------------------------------------------------
27e6f02733 | Nicholas Feinberg | 2016-06-04 09:50:16 -0700

Hexer specialization changes
Paralysis vs Metabolic Englaciation was not a remotely comparable
or interesting choice; the latter was very trivially superior. I
thought this would be the case when I implemented it, but I was low
on ideas and wanted to give it a shot. The shot is now over.

Hexers' Slow is now automatically replaced by Paralyse at XL 15,
and the specialization choice is now between Englaciation and Mass
Confusion at XL 21. The ancestor should still be strong (since both
of those are very strong effects to have!), but somewhat less so,
and hopefully the choice will be less one-sided.

Doesn't seem worth adding save compat for; players who chose
Paralyse before the change will wind up with Mass Confusion after
(once they hit XL 21).

--------------------------------------------------------------------------------
0a5440e19b | Nicholas Feinberg | 2016-06-04 09:22:02 -0700

Split ancestor unlock tables by type
So that we have room to display another change I'm sneaking in
here.

--------------------------------------------------------------------------------
f0dbcf1163 | Nicholas Feinberg | 2016-06-04 09:21:56 -0700

Checkwhite.

--------------------------------------------------------------------------------
e2097fa391 | Nicholas Feinberg | 2016-06-04 08:51:37 -0700

Move rod acq into misc acq
It's always been odd that it shares an acquirement class with
staves, though the two have almost nothing in common. They're much
more similar to misc evocables (see, for example, Pakellas!), and
neither can really justify an acquirement class alone, so let's
put them together and see how it goes.

Arbitrarily, there's a 1/8 chance for misc acq to give a rod.

--------------------------------------------------------------------------------
dc5f7ae548 | Nicholas Feinberg | 2016-06-04 08:51:37 -0700

Simplify

--------------------------------------------------------------------------------
43665f35dd | Nicholas Feinberg | 2016-06-04 08:51:37 -0700

Remove decks from random generation
They're in a better place as Nemelex-only items than as random
dungeon loot; there's plenty of fun evocable effects without decks
around, especially now that decks have lost their niche as
permanent benefit engines.

--------------------------------------------------------------------------------
f8766ccd24 | Neil Moore | 2016-06-04 11:19:03 -0400

Fix halfling mockery.

--------------------------------------------------------------------------------
86cc139344 | Neil Moore | 2016-06-04 10:59:09 -0400

Don't allow treeform shadow step either.
And factor out the check, using a macro so we can also factor out the
"return false".

--------------------------------------------------------------------------------
abd579ab50 | Corin Buchanan-Howland | 2016-06-04 10:39:38 -0400

Add Uskayaw passives to ^
This has the side-effect of also causing the game to give announcements on 
getting
*** and **** piety. Let's see how that feels. It might make sense to silence 
them
again.

--------------------------------------------------------------------------------
3f4b0af8f3 | Corin Buchanan-Howland | 2016-06-04 09:57:24 -0400

Make Grand Finale more bloody

--------------------------------------------------------------------------------
bab621cd28 | Corin Buchanan-Howland | 2016-06-04 08:45:07 -0400

Exempt friendly demonic guardians from Stomp (Moose)

--------------------------------------------------------------------------------
7597ca6d68 | Corin Buchanan-Howland | 2016-06-04 08:14:59 -0400

fix braces

--------------------------------------------------------------------------------
13d60b2fa6 | Corin Buchanan-Howland | 2016-06-04 08:14:38 -0400

Don't allow power leap while in treeform (|amethyst)

--------------------------------------------------------------------------------
0b67fe22fa | Corin Buchanan-Howland | 2016-06-04 08:09:25 -0400

Don't allow line pass while in treeform

--------------------------------------------------------------------------------
39fb624b18 | Nicholas Feinberg | 2016-06-03 23:12:32 -0700

Update a comment

--------------------------------------------------------------------------------
12b105827c | Nicholas Feinberg | 2016-06-03 23:10:43 -0700

Fix trog disabling spell training on join
If you were in autotraining mode but had a spell skill set to
train in manual mode (or vice versa), it wouldn't be disabled.
Ditto if you hadn't yet gotten the skill to level 1.

I wonder if this has ever affected anyone?

--------------------------------------------------------------------------------
3a394715a7 | ontoclasm | 2016-06-04 01:07:51 -0500

Harpy tile

--------------------------------------------------------------------------------
c675593d9f | Nicholas Feinberg | 2016-06-03 23:01:17 -0700

De-obfuscate autotraining behaviour (kalstrams)
In autotraining mode, the tile for 'skill is enabled but not being
trained' and 'skill is disabled' was the same. The former now has
the 'enabled' background; a subtle difference, but hopefully
helpful?

--------------------------------------------------------------------------------
9ee8c548d5 | Nicholas Feinberg | 2016-06-03 22:49:14 -0700

Use enums for skill training status
i regret everything

--------------------------------------------------------------------------------
fca3800c46 | elliptic | 2016-06-03 21:52:33 -0400

Fix AUTOFIGHT_THROW and messaging (amalloy).
Previously autofight would refuse to use throwing on monsters behind
impassible water/lava/clouds. Also, now autofight uses the message
"No reachable target in view!" when there are monsters in sight but none
that can be reached (due to glass, water, clouds, plants, etc). Previously
it used the somewhat confusing "No target in view!" for this situation.

--------------------------------------------------------------------------------
1cd1b9d096 | Corin Buchanan-Howland | 2016-06-03 19:13:17 -0400

New Uskayaw altar tile (CanOfWorms)

--------------------------------------------------------------------------------
3ac10ee328 | gammafunk | 2016-06-03 15:29:36 -0500

Fix some lua triggers in a vault (MarvinPA)
Now if you somehow manage to kill the spire in
gammafunk_pakellas_its_alive, you won't be rewarded with additional
Pakellas messages. This commit also finishes refactoring the lua to
reduce code duplication.

--------------------------------------------------------------------------------
4ec904295b | Nicholas Feinberg | 2016-06-03 12:19:54 -0700

Diminish wyverns' derived undead tiles
They're not exactly full-grown dragon tier, so it probably makes
more sense for them to have drake tiles.

--------------------------------------------------------------------------------
a74cb8606e | gammafunk | 2016-06-03 03:57:02 -0500

Adjust the decorative monster sets in an overflow altar
Use monsters that have enough hp to survive more than a couple shots
from the spire, so the player has a chance to see what's happening. Also
use the most powerful tier of mutant beast as a result monster.

--------------------------------------------------------------------------------
a918a2a209 | ontoclasm | 2016-06-03 03:06:34 -0500

Wyvern tile
Y-BURN

--------------------------------------------------------------------------------
3cb1db77fd | ontoclasm | 2016-06-03 03:06:34 -0500

Redo item-in-water mask tiles
Since the water tiles they were based on have all changed.

--------------------------------------------------------------------------------
8f2da2ac7b | gammafunk | 2016-06-03 02:17:04 -0500

Add a new Pakellas experiment overflow altar and refactor lua
The new gammafunk_pakellas_its_alive overflow vividly demonstrates
Pakellas' desire to create new advanced forms of dungeon life (and
non-life) by any means necessary...

This commit refactors the code shared between the vaults to avoid a
lot of duplication.

--------------------------------------------------------------------------------
6e972410aa | Nicholas Feinberg | 2016-06-02 23:07:49 -0700

Minor weapon acq refactoring
The blessed weapon bit was redundant.

--------------------------------------------------------------------------------
499225e902 | Nicholas Feinberg | 2016-06-02 22:41:32 -0700

Remove M_GLOWS (chequers)
Had the following effects:
- Prevented monsters from being turned invisible.
- Prevented monsters from being enchanted with Corona.
- Reduced monster stealth (!?) by 3 points.

Did not have any effect on attack accuracy.

Was poorly communicated to players (many people assumed it *did*
increase accuracy - understandably!), and was almost irrelevant
to play.

Could have been replaced by a new 'perma-corona' status on each
of these monsters, and a compensating buff to EV, but: why? All
of the relevant monsters are interesting enough without some new
UI and mechanical clutter slapped on.

--------------------------------------------------------------------------------
1d1674bc88 | Neil Moore | 2016-06-02 18:42:58 -0400

Don't call all manuals "of Fighting" in &^Iad (PF)
The Manuals: section was correct, but in the list of book subtypes,
manuals were listed as "manual of Fighting".  Instead, say just
"manual".

--------------------------------------------------------------------------------
a855b667d1 | Nicholas Feinberg | 2016-06-02 15:18:12 -0700

Simplify book acq (|amethyst, minmay)
Trim out a check for spell skills being >= 1, which seems to date
to when you needed to read scrolls to be able to cast spells at
all. This makes also makes it possible to get spellcasting manuals
under Trog, which isn't great for troggites, but perhaps compensates
for getting guaranteed manuals.

--------------------------------------------------------------------------------
37aabe75d4 | Nicholas Feinberg | 2016-06-02 15:07:12 -0700

Round skills for acq purposes (minmay)
Don't base acquirement odds on integer skill levels instead of
the internal values.

--------------------------------------------------------------------------------
61402351b5 | Nicholas Feinberg | 2016-06-02 14:47:00 -0700

Unbreak acq stats
Broken by 4a676c3a23cf. I did say it was a hack!

--------------------------------------------------------------------------------
af2d98a140 | Nicholas Feinberg | 2016-06-02 10:43:48 -0700

Save player ghosts with un-transformed stats
This was already the case for some things (e.g. HP), but AC and EV,
among others, were based on the player's transformation at time of
death; this was most noticeable with treeform, which would give a
huge & very silly AC boost. That should no longer happen.

--------------------------------------------------------------------------------
121e70a432 | Nicholas Feinberg | 2016-06-01 21:59:31 -0700

Tweak a Sanguine Armour mut message (chequers)

--------------------------------------------------------------------------------
b8ed64d4bb | regret-index | 2016-06-01 19:38:20 -0400

Don't place a test suite vault in regular games
4b9f1bef80bc80 just added in a vault without the unrand tag.

--------------------------------------------------------------------------------
fd99d95e7e | Neil Moore | 2016-06-01 16:24:00 -0400

Fix NOWIZARD builds (sagitter)

--------------------------------------------------------------------------------
bba3daeb0f | Nicholas Feinberg | 2016-06-01 10:28:53 -0700

Fix species_mock for dracs of colour (rchandra)
The species "Red Draconian" wouldn't match any of the cases in
the mockery code, previously.

--------------------------------------------------------------------------------
b74f522642 | Nicholas Feinberg | 2016-06-01 10:24:49 -0700

Fix unrand fallback for Devastator
If it's already generated, we try to generate a randart, but you
can't make randart clubs; then we try to make a normal weapon, but
the brand is never changed, so it remains as the unrand ID (-267).
That's bad!

--------------------------------------------------------------------------------
ce57c30225 | Shmuale Mark | 2016-06-01 12:49:52 -0400

Check that the explosion target is actually valid (#10467).

--------------------------------------------------------------------------------
75e0785377 | Alex Jurkiewicz | 2016-06-01 08:00:21 -0400

Standardise Xom confusion application. (#285)
* Standardise Xom confusion application.



Don't try to confuse monsters that will never give XP (oods,

battlespheres, etc) (minmay).



Change how Xom player confusion works -- be less likely to confuse

surrounding creatures as severity increases.



* Use a proper check for Xom confusion targets.



And fix compilation.


--------------------------------------------------------------------------------
7eaa1ff9ea | Neil Moore | 2016-06-01 01:36:40 -0400

Don't bother moving slot b for throwing AM.
Maybe we should free up slot a in that case, but if so, then really we'd
want to do that for all weaponless starts except perhaps Tm and Mo.

--------------------------------------------------------------------------------
66803c5472 | Neil Moore | 2016-06-01 01:33:43 -0400

Ensure even Op/Dr/Fe EEs get stones in slot b (ProzacElf)
They were getting the stones in slot d (first in a, because the robe
that would usually go in that slot was not generated; then moved by
_free_up_slot).  Put the book first instead, since it is always
generated; the stones go to slot b, and at the end _free_up_slot
moves the book to d.

--------------------------------------------------------------------------------
af442a0399 | Neil Moore | 2016-06-01 00:17:00 -0400

Avoid a crash in objstat.
We tried to look up the vorpal name for a dummy "All Hand Weapons"
object (OBJ_WEAPONS NUM_WEAPONS), leading to a crash.  Instead, just use
plain "vorpal" if the item's subtype is the fake NUM_WEAPONS.

--------------------------------------------------------------------------------
98b348d187 | Nicholas Feinberg | 2016-05-31 19:25:17 -0700

Remove a reference to Malign Gateway int drain
Obsolete since 10bb59b2e6ec7c.
--------------------------------------------------------------------------------
fd9a1003af | elliptic | 2016-05-31 22:09:39 -0400

Remove !experience trove cost (minmay).

--------------------------------------------------------------------------------
fb5d50262e | Neil Moore | 2016-05-31 21:16:19 -0400

Handle non-ASCII keypresses in SDL tiles (JStrange)
At least if they come in as an SDL_TEXTINPUT, which is the case I
was able to test here.

--------------------------------------------------------------------------------
c44768f54c | Neil Moore | 2016-05-31 21:16:19 -0400

Allow bindkey of non-ASCII keys.
Only works in console and webtiles at the moment, I believe.

--------------------------------------------------------------------------------
4b9c4d9528 | Alex Jurkiewicz | 2016-05-31 21:00:47 -0400

Don't send allies to Xomites without love. (#282)
Don't send allies to loveless Xomites.


--------------------------------------------------------------------------------
47fa1d01c2 | Alex Jurkiewicz | 2016-05-31 20:59:22 -0400

Rework Xom's smoke trail. (#284)
* Rework Xom's smoke trail.



Turn it from a "bad" effect (which was really more a no-op) to a good

effect that leaves a random cloud trail behind you.



This is considered good because you can use it to cut off monster

pathing and so on, although cutting off your escape is a potential

problem.



* Time Xom's cloud trail by auts, not turns.



* Allow Xom to give a magic cloud trail like before.


--------------------------------------------------------------------------------
66f5227a4c | ontoclasm | 2016-05-31 19:02:26 -0500

Display the Hepliaklqana Idealise icon in webtiles

--------------------------------------------------------------------------------
d5d605a6a7 | ontoclasm | 2016-05-31 19:02:26 -0500

Replace attitude icons with colored circles
Hearts are cool, but it's easy to lose track of who's on which side in a
big jumble of summons.  Shadow creatures in Spider is a particularly
harrowing example.

--------------------------------------------------------------------------------
8935a21868 | Nicholas Feinberg | 2016-05-31 13:30:42 -0700

Merge pull request #286 from ChrisOelmueller/patch-1
Be consistent about Gr +AC mutation effect on `A`, too
--------------------------------------------------------------------------------
46adb0e0d6 | Chris Oelmueller | 2016-05-31 22:29:08 +0200

Be consistent about Gr +AC mutation effect on `A`, too
The display of most such mutations was addressed in

  7a8084aeb01337ba140cbf3eea07ba489de9968f

but this one lives in a different file and was overlooked.
--------------------------------------------------------------------------------
e762a6111f | Shmuale Mark | 2016-05-31 16:24:41 -0400

Also try to automatically bizap your target (ontoclasm).

--------------------------------------------------------------------------------
5107be7351 | Nicholas Feinberg | 2016-05-31 06:23:19 -0700

New Hep overflow vault (WorldFamousW)
Concept and layout by WFW, execution by committer.

--------------------------------------------------------------------------------
887da1331c | Shmuale Mark | 2016-05-31 15:49:18 -0400

Try to avoid autotargetting yourself with non-LRD explosions too.

--------------------------------------------------------------------------------
f593e0e13b | Neil Moore | 2016-05-31 15:19:17 -0400

Retcon a quote (Weretaco)
The name of the in-universe book was changed for out-of-universe legal
reasons.

[skip ci]

--------------------------------------------------------------------------------
7bb8f22b0e | Shmuale Mark | 2016-05-31 15:07:21 -0400

Allow selecting items in slot 'a' (qw).

--------------------------------------------------------------------------------
9f673c4b9c | Nicholas Feinberg | 2016-05-31 04:02:57 -0700

Fix Hep ^ for tinyterm (MarvinPA)
One line too long.

--------------------------------------------------------------------------------
c164773add | Nicholas Feinberg | 2016-05-31 03:54:22 -0700

Small Hep ^ table improvements

--------------------------------------------------------------------------------
51645b69b6 | Nicholas Feinberg | 2016-05-31 03:44:03 -0700

Add a crude ancestor upgrade listing to ^
See TODOs in the commit.

--------------------------------------------------------------------------------
a8421081fa | Shmuale Mark | 2016-05-31 13:17:17 -0400

Remove some unreachable code.
If there are no matching items the menu won't even open.

--------------------------------------------------------------------------------
03be26d349 | Shmuale Mark | 2016-05-31 13:17:17 -0400

Simplify.

--------------------------------------------------------------------------------
97f0b071b1 | Shmuale Mark | 2016-05-31 13:17:17 -0400

Make some methods private.

--------------------------------------------------------------------------------
f38a40c540 | Shmuale Mark | 2016-05-31 13:17:17 -0400

Add a header to UseItemMenu (#10463).
Not exactly happy with how it looks, but the changes from 10464
should hopefully change the look anyway.

--------------------------------------------------------------------------------
14f6b4e1ed | Nicholas Feinberg | 2016-05-31 02:43:23 -0700

Trigger Sanguine Armour 2/3rds HP
Previously 1/2th. Makes it somewhat more relevant (since players
should generally be running away not long after hitting 50% hp
anyway...)

--------------------------------------------------------------------------------
50123c9164 | Nicholas Feinberg | 2016-05-31 02:39:37 -0700

Make Sanguine Armour trigger when hit (chequers)
As opposed to waiting until end-of-turn.

--------------------------------------------------------------------------------
ca5fb5ecf3 | Nicholas Feinberg | 2016-05-31 02:21:06 -0700

Remove default chaos ego force_mores (minmay)
Triggered on "a seething cloud of chaos".

--------------------------------------------------------------------------------
9a81c0329d | Alex Jurkiewicz | 2016-05-31 12:17:28 -0400

Remove unique names from two wizlab milestones. (#275)

--------------------------------------------------------------------------------
ef3d86f56d | Chris Campbell | 2016-05-31 16:39:23 +0100

Disable some more god abilities under sacrifice love
Block Fedhas entirely (since most of the abilities either don't work or are
very buggy, and if the bugs were fixed the basic piety gain mechanism of
creating toadstools would create hostiles), and disable a number of other god
abilities that create allies.

--------------------------------------------------------------------------------
17effe7007 | Chris Campbell | 2016-05-31 16:17:16 +0100

Improve handling for a Ru sacrifice calculation

--------------------------------------------------------------------------------
2ee921eedf | Chris Campbell | 2016-05-31 16:13:04 +0100

Disable some Elyvilon and Yred abilities under sacrifice love
Don't allow using heal other under Elyvilon, or animate dead/recall/enslave
soul under Yred. Also don't gift hostile undead to Yred worshippers with
sacrifice love.

--------------------------------------------------------------------------------
907bfc8347 | Yer mivvaggah | 2016-05-31 08:40:33 -0400

nerf ossuary bog body (#263)
Turn ossuary bog body into a bog mummy.



These things are more dangerous than an ogre, in a portal that players can 
typically count on being low in danger and poor in loot. Nasty surprise for the 
unspoiled, especially players with a few wins under their belt who know what to 
expect from low-level portals.


--------------------------------------------------------------------------------
5b86d8fdba | Shmuale Mark | 2016-05-31 08:38:14 -0400

Merge pull request #283 from alexjurkiewicz/xom-swap-bad
Make Xom swap bad
--------------------------------------------------------------------------------
cd1736a1f6 | Shmuale Mark | 2016-05-31 08:29:41 -0400

Merge pull request #281 from alexjurkiewicz/xom-invis
Improve some Xom/Invisibility code
--------------------------------------------------------------------------------
901d68ee7a | Alex Jurkiewicz | 2016-05-31 14:07:29 +1000

Make Xom's swap monsters a bad act.
Changing the player's position was usually bad, and maybe confusing
nearby monsters isn't enough to make it an overall good action.

Make the chance of confusing nearby monsters slightly less, and convert
the action to bad instead.

--------------------------------------------------------------------------------
7a3d89f6ef | Alex Jurkiewicz | 2016-05-31 14:06:52 +1000

Allow firing the last Xom act with wizmode &X.
Off-by-one bug.

--------------------------------------------------------------------------------
f57a360b52 | Alex Jurkiewicz | 2016-05-31 13:01:55 +1000

Improve random choice for Xom potion effect.
Just code quality, but experience will be less likely now.

--------------------------------------------------------------------------------
a472210054 | Alex Jurkiewicz | 2016-05-31 13:01:18 +1000

Veto invis if the player is contaminated.
The code checked contamination but didn't do anything with the info in
some cases.

--------------------------------------------------------------------------------
76fec5bd13 | Shmuale Mark | 2016-05-30 22:22:12 -0400

Remove a spurious "OK, then." if there's nothing to use.

--------------------------------------------------------------------------------
54f5191059 | Shmuale Mark | 2016-05-30 22:11:11 -0400

Simplify.

--------------------------------------------------------------------------------
d94e72f013 | Neil Moore | 2016-05-30 20:36:53 -0400

Chequewhite.
[skip ci]

--------------------------------------------------------------------------------
9a4402a2a7 | Chris Campbell | 2016-05-31 01:29:04 +0100

Make Sanguine Armour a demonspawn-only mutation
Since it's particularly demonic in theme compared to the other scales mutations.

--------------------------------------------------------------------------------
701ff48627 | Chris Campbell | 2016-05-31 01:28:00 +0100

Fix sanguine armour description on A
And display AC+0 when inactive, as with icemail.

--------------------------------------------------------------------------------
e8b6bdc730 | Chris Campbell | 2016-05-31 01:05:32 +0100

Fix Lear's Hauberk being equippable with horns/claws 3 (koboldina)

--------------------------------------------------------------------------------
a24e8b3d10 | Neil Moore | 2016-05-30 18:09:46 -0400

Allow the loveless to join Elyvilon.
Now that Elyvilon is not centred around pacifying others. Yred worshippers
suffer more from Sac Love than Ely worshippers do.

There is a bit of an interface bug, in that pacification works and turns
the monster neutral for one turn, before it silently reverts to hostile.
Yred's enslave soul ability has the same problem.

--------------------------------------------------------------------------------
330080bb4f | Neil Moore | 2016-05-30 17:52:13 -0400

Make U and H's lack of normal passives more explicit.
Mainly to avoid the inevitable mistake in god_passives when someone adds
a new god and forgets these two empty entries.

--------------------------------------------------------------------------------
e21436e4b7 | Chris Campbell | 2016-05-30 22:35:09 +0100

Use simple_god_message for some simple god messages

--------------------------------------------------------------------------------
f9de99df82 | Chris Campbell | 2016-05-30 22:35:09 +0100

Remove Uskayaw's mindless monster restriction
The intelligence check wasn't a very clear or interesting limitation for the
abilities. Also de-duplicate some checks.

--------------------------------------------------------------------------------
29d2e5a629 | Neil Moore | 2016-05-30 16:07:47 -0400

Make item_list_on_square return its vector.
Now that we have move assignment/constructors (not to mention the return
value optimisation), there's no reason to make it more difficult to call.

--------------------------------------------------------------------------------
e964f0c815 | Neil Moore | 2016-05-30 15:59:12 -0400

Handle backslash in _use_an_item.

--------------------------------------------------------------------------------
4217dfb29d | Neil Moore | 2016-05-30 15:59:12 -0400

Make numeric hotkeys actually work in UseItemMenu.
For the menus from prompt_invent_item, we just used MF_EASY_EXIT, but
that might not be appropriate for this menu.

--------------------------------------------------------------------------------
7abdfceba9 | Neil Moore | 2016-05-30 15:59:12 -0400

Fix _use_an_item infinite loop.
We only exited the loop when cancelled.

--------------------------------------------------------------------------------
9434198e31 | Neil Moore | 2016-05-30 15:59:12 -0400

Improve _use_an_item numeric inscriptions.
Don't crash on r1 with no matching inscriptions.

Don't override the inscription-selected item with nullptr from the lack of
menu-selected items.

Check warning inscriptions on numerically-selected items.

--------------------------------------------------------------------------------
3b4a672f0f | Neil Moore | 2016-05-30 15:59:12 -0400

Make _use_an_item take the operation as a parameter.
Rather than trying to guess from the object type.

--------------------------------------------------------------------------------
184c140625 | Neil Moore | 2016-05-30 15:59:12 -0400

Make _use_an_item static.

--------------------------------------------------------------------------------
9b001fb870 | Naruni | 2016-05-30 15:59:12 -0400

Improve use items from floor
New argument to any_items_of_type: bool inspect_floor.  Rename
_digit_to_index to digit_inscription_to_inv_index and make public. Make
_use_an_item more robust, handling numeric inscribed inv items.

--------------------------------------------------------------------------------
40ddb07b03 | Chris Campbell | 2016-05-30 20:51:11 +0100

Coding conventionify

--------------------------------------------------------------------------------
926a882294 | Chris Campbell | 2016-05-30 20:21:36 +0100

Remove an obsolete demonspawn mutation check
Since all tier 1 mutations are scales mutations (and DS get at most one tier 1
facet), there doesn't need to be a check for having two different scales
mutations.

--------------------------------------------------------------------------------
fed3211dd7 | Chris Campbell | 2016-05-30 20:07:32 +0100

Mark sturdy frame and sanguine armour as scales mutations

--------------------------------------------------------------------------------
bd3cc229db | Chris Campbell | 2016-05-30 20:07:31 +0100

Update the description of antimagic bite when worshipping Pakellas
To better indicate that the drain is suppressed, perhaps.

--------------------------------------------------------------------------------
5cd601934e | Chris Campbell | 2016-05-30 20:06:47 +0100

Mark AC as enhanced when sanguine armour is active
And display the amount of +AC on the A screen, as with icemail (and regular
scales mutations).

--------------------------------------------------------------------------------
ddffc5f64b | Chris Campbell | 2016-05-30 19:44:10 +0100

Update Icemail mutation description for consistency
Since other scales mutations all now show "Description. (AC +x)"

--------------------------------------------------------------------------------
50c60341ea | Nicholas Feinberg | 2016-05-30 10:38:23 -0700

Display omnireflect chance (Sandman25)
In the warlock's mirror item description.

--------------------------------------------------------------------------------
f33c4e03ff | Nicholas Feinberg | 2016-05-30 10:14:48 -0700

Tweak blood armour mut desc

--------------------------------------------------------------------------------
586ec4a6e3 | Neil Moore | 2016-05-30 11:18:22 -0400

Colour !berserk etc grey for Mu^Chei (aredel)
But leave forbidden corpses red, since you can still chop forbidden
corpses and be punished for it.

--------------------------------------------------------------------------------
92f4155db0 | Neil Moore | 2016-05-30 11:10:55 -0400

Fix faded altar description.

--------------------------------------------------------------------------------
de47aebf17 | Corin Buchanan-Howland | 2016-05-30 09:39:37 -0400

Rename Ukayaw to Uskayaw to avoid collision w/ Oka

--------------------------------------------------------------------------------
e6377397d4 | Corin Buchanan-Howland | 2016-05-30 09:39:36 -0400

Lower Line Pass piety cost by 25%
It was just a little too expensive.

--------------------------------------------------------------------------------
221c030ca5 | Corin Buchanan-Howland | 2016-05-30 09:39:35 -0400

Make Line Pass irresistible confusion scale with monster HD (elliptic)
This makes it better against the early game and worse against the late game.

--------------------------------------------------------------------------------
7f498f2d2b | Shmuale Mark | 2016-05-30 09:35:34 -0400

Try to avoid self-targetting with the LRD autotargetter.

--------------------------------------------------------------------------------
0268c5dfa5 | Corin Buchanan-Howland | 2016-05-30 07:24:16 -0400

Make altar feature short descriptions more consistent (Sprucery)

--------------------------------------------------------------------------------
d47dfe4fb1 | Neil Moore | 2016-05-30 05:42:00 -0400

Clarify item_def::index further.
It is only the next item in the pile for floor items, not all items.
Furthermore, say "pile" rather than "stack", since the latter might
refer to a single item_def with quantity > 1.

Also mark the item_def::slot comment for doxygen.

[skip ci]

--------------------------------------------------------------------------------
c98da689a1 | Neil Moore | 2016-05-30 05:26:20 -0400

Clarify item_def::index vs slot.
[skip ci]

--------------------------------------------------------------------------------
e33ada384c | Nicholas Feinberg | 2016-05-29 22:47:51 -0700

Ancestor identity tile (ontoclasm)
And that's the last ability icon!

--------------------------------------------------------------------------------
2356aa2701 | Nicholas Feinberg | 2016-05-29 22:44:07 -0700

Fix non-zombie derived undead dragon tiles
Oops...

--------------------------------------------------------------------------------
0f4984d8b8 | Nicholas Feinberg | 2016-05-29 22:43:14 -0700

New DS mut: Sanguine Armour (nicolae)
Scales slot. When at < 50% hp, gives +6/9/12 AC. Disabled when in
bloodless forms. Lasts a few turns after you pop above 50% hp, to
prevent annoying behaviour around the border.

All numbers (AC & HP threshold) subject to change.

--------------------------------------------------------------------------------
f780d9bc26 | Neil Moore | 2016-05-29 23:18:38 -0400

Don't display empty Inv/Floor section headings (gammafunk)
But do display a "No Items" heading if there are no usable items at all.

--------------------------------------------------------------------------------
0369145930 | Neil Moore | 2016-05-29 22:43:52 -0400

Allow assigning hotkey 'a' to floor items.

--------------------------------------------------------------------------------
63c1c303e8 | Neil Moore | 2016-05-29 22:33:01 -0400

Simplify UseItemMenu's constructor.
Incidentally correcting its formatting in the process.

--------------------------------------------------------------------------------
328f2f0d66 | Neil Moore | 2016-05-29 22:07:21 -0400

Clean up item_int and item_from_int a bit.
Mostly comments and whitespace, but also make the latter function
into a single return statement.

--------------------------------------------------------------------------------
73319d0b24 | Neil Moore | 2016-05-29 22:05:18 -0400

Redraw the screen when cancelling out of _use_an_item()

--------------------------------------------------------------------------------
7694f33a08 | Neil Moore | 2016-05-29 22:05:18 -0400

Don't crash on blurry vision.
item_int was not returning what it claimed to.

--------------------------------------------------------------------------------
2fc9061bd4 | ontoclasm | 2016-05-29 19:45:30 -0500

Ukayaw invocations tile

--------------------------------------------------------------------------------
19823d102c | ontoclasm | 2016-05-29 19:45:30 -0500

Hepliaklqana invo tile

--------------------------------------------------------------------------------
4db2635521 | Chris Campbell | 2016-05-29 22:52:18 +0100

Use the same deck types for Nemelex gifting and random generation
The distinction between gifted decks (escape, destruction and war) and
non-gifted ones (summoning, defense and changes) was no longer a very
meaningful one and mostly just consisted of some reshuffling of the various
subdecks. The only noticeable difference being that destruction cards weren't a
part of any of the non-gifted decks, which didn't seem like an especially
important restriction.

Removes decks of summoning, changes and defense in favour of letting escape,
destruction and war generate at a normal rate.

--------------------------------------------------------------------------------
35e84cbe74 | Shmuale Mark | 2016-05-29 17:45:38 -0400

Remove some more merc code.

--------------------------------------------------------------------------------
7d6d29a43c | Jesse Luehrs | 2016-05-29 17:22:50 -0400

fix a compiler warning
i don't think this actually changes anything meaningful, since
venom_vuln isn't going to be true if it's an iood

--------------------------------------------------------------------------------
dbf2b15981 | Chris Campbell | 2016-05-29 21:43:34 +0100

Remove some obsolete ugly thing handling (wheals)

--------------------------------------------------------------------------------
8c8c7c342a | Chris Campbell | 2016-05-29 21:27:32 +0100

Don't let monsters (other than Beogh orcs) grow up
Monsters levelling up was only ever really noticeable for Beogh followers and
for Mercenary card allies - since the latter no longer exists, a lot of the
handling for monsters evolving was unecessary complication that would never be
seen.

--------------------------------------------------------------------------------
5def9ffaaa | Chris Campbell | 2016-05-29 20:34:47 +0100

Remove decks of wonders
Since they now only contain 3 cards. Shift the Wild Magic card into the deck of
destruction, and Dowsing into the deck of battle (although it might be better
off being removed as well - it's a fairly interesting effect, but possibly not
one that fits in any of the remaining deck types since all cards other than
oddities/punishment are now giftable). Decks of changes now contain battle and
transport instead of battle and changes, which still fits its theme relatively
well.

--------------------------------------------------------------------------------
d547423405 | Chris Campbell | 2016-05-29 20:34:47 +0100

Remove the Focus, Helix and Mercenary cards
The Focus and Helix cards were holdovers from the old-style Nemelex wonders
decks granting lots of permanent benefits - they now just encourage characters
to draw through decks of changes for their benefits.

The Mercenary card doesn't function very well with allies no longer being able
to be individually equipped, and in particular now that Hepliaklqana exists
there's a better and reliable way to get a similar type of single, strong ally
that improves over time.

--------------------------------------------------------------------------------
96c92ec9ae | Chris Campbell | 2016-05-29 20:34:47 +0100

Re-reword amulet of harm description
To fix a typo and shorten it slightly.

--------------------------------------------------------------------------------
874cc01ae2 | Chris Campbell | 2016-05-29 20:34:47 +0100

Allow mirroring already-mirrored monsters
Avoids some information leaks against monsters like Mara and rakshasas.

--------------------------------------------------------------------------------
d9d21ec36f | Shmuale Mark | 2016-05-29 15:10:18 -0400

Use the two new functions.

--------------------------------------------------------------------------------
11d13b7eee | Shmuale Mark | 2016-05-29 15:10:18 -0400

Dereference some points.

--------------------------------------------------------------------------------
bc8fe685da | Shmuale Mark | 2016-05-29 15:10:18 -0400

Improve ItemUseMenu if there are more than 52 items.
Not very likely to happen, though...

--------------------------------------------------------------------------------
c1553b2808 | Shmuale Mark | 2016-05-29 15:10:18 -0400

Text tweak.

--------------------------------------------------------------------------------
bbbd72463e | Naruni | 2016-05-29 15:10:18 -0400

Item lookup and return functions
Functions that require (int slot) for doing things to items need to change
to item_def.  These functions will help with that conversion.

--------------------------------------------------------------------------------
1a704dc0d8 | Naruni | 2016-05-29 15:10:18 -0400

Drink and read items on the floor.
New class UseItemMenu displays a menu with items of requested type (via
object_selector), inventory items first then floor items.

--------------------------------------------------------------------------------
6b7ed47e35 | Shmuale Mark | 2016-05-29 14:00:40 -0400

Fix a typo (Naruni).

--------------------------------------------------------------------------------
a768fe62ef | Shmuale Mark | 2016-05-29 09:32:14 -0400

Simplify.

--------------------------------------------------------------------------------
7826dfe547 | Corin Buchanan-Howland | 2016-05-29 09:22:34 -0400

Update amulet of harm description
Removing any mention of spirits, evil or not. Without the evil, IMO the
spirit makes less sense. Going for a standard artificing vibe.

--------------------------------------------------------------------------------
096f113bb8 | Corin Buchanan-Howland | 2016-05-29 09:22:34 -0400

Update Ukayaw Line Pass description (lordfrikk)

--------------------------------------------------------------------------------
8c5b975a3d | Shmuale Mark | 2016-05-29 09:18:01 -0400

Keep the a/b slot open for EE/AM, respectively.

--------------------------------------------------------------------------------
dd94dc5388 | Shmuale Mark | 2016-05-29 07:38:30 -0400

Improve spell vulnerability descriptions.
Now Rupert and Geryon will properly report their vulnerability to silence,
and most natural spellcasters will not note that they "may be" vulnerable
to silence. Unfortunately, this still isn't perfect, since it doesn't
properly distinguish between the silence-vulnerable spells in a single set
and the other ones.

--------------------------------------------------------------------------------
6bb00b2c74 | Nicholas Feinberg | 2016-05-28 20:04:44 -0700

Ban Tukimas on ancestors (gammafunk)
Both useless and sort of buggy.

--------------------------------------------------------------------------------
ccf28a7134 | gammafunk | 2016-05-28 20:32:10 -0500

Fully remove an unused monster spellbook
This was left for save compat, but that's not necessary since we don't
give removed monsters spells. The unused spellbook was breaking our
tests, so now it's fully removed.

--------------------------------------------------------------------------------
37161ba35f | regret-index | 2016-05-28 19:30:43 -0400

Nerf earlier sword_in_stone

--------------------------------------------------------------------------------
602646fcd5 | regret-index | 2016-05-28 19:19:11 -0400

Yet more vault edits and updates
Highlights:
 * Repair some of the vaults changed by the cutting of stormcallers.
   A few more balrug uses, and a bit of a minor balance shift in the
   fire zig sets due to added balrug presence and diluting fire crabs.
 * Remove the sword_in_stone's fixed permanent teleport trap, since
   the sole real way to manage it left is apportation, but instead make
   the sword a dancing weapon instead. It'll be horribly dangerous
   early on, but the need to actively dig it out and monster danger
   warnings hopefully won't make too many newer players stab themselves.
 * Upgrade elemental_death_ray from a minivault to a floating vault and
   place upstairs in it far away from the vault's clouds.

--------------------------------------------------------------------------------
e014d03ed7 | Chris Campbell | 2016-05-28 23:09:42 +0100

Fix a test failure (travis)

--------------------------------------------------------------------------------
99000e69e6 | Chris Campbell | 2016-05-28 20:14:27 +0100

Extend god-hated equipment warnings to all equipment types
Warn if a weapon or piece of jewellery is hated by your new god upon
conversion, instead of just armour.

--------------------------------------------------------------------------------
f7ebe61291 | Chris Campbell | 2016-05-28 20:14:27 +0100

Update amulet of harm description

--------------------------------------------------------------------------------
7d0dd52540 | Corin Buchanan-Howland | 2016-05-28 14:23:39 -0400

Make amulet of harm less symmetrical (elliptic)
It used to give +25% to all damage; now it gives +30% to damage the wearer
deals and +20% to damage the wearer receives. Hopefully this will be enough
to make players find it useful.

--------------------------------------------------------------------------------
3173701966 | Corin Buchanan-Howland | 2016-05-28 13:53:38 -0400

Change Line Pass to always confuse, but reduce duration (elliptic)

--------------------------------------------------------------------------------
fda30aef25 | Corin Buchanan-Howland | 2016-05-28 13:53:37 -0400

Remove salamander stormcallers
They didn't create much of an interesting challenge, or, generally, any
challenge.

--------------------------------------------------------------------------------
1a4cd0cb88 | Nicholas Feinberg | 2016-05-28 10:01:44 -0700

Don't crash on xv enslaved SoH (10454)

--------------------------------------------------------------------------------
366b05a15d | Nicholas Feinberg | 2016-05-28 09:56:20 -0700

More zombie tiles (10449)

--------------------------------------------------------------------------------
4615c56f95 | Nicholas Feinberg | 2016-05-28 09:08:30 -0700

Ancestor knight: long sword -> flail
Less thematic, but discourages dumb behaviour around hydras.

--------------------------------------------------------------------------------
1149c55b50 | Nicholas Feinberg | 2016-05-28 08:55:00 -0700

Fix crash when killing a phantom mirror'd ancestor

--------------------------------------------------------------------------------
943bbf3764 | Nicholas Feinberg | 2016-05-28 08:51:35 -0700

Remove a special case for Flight being dispelled
No longer lethal, so giving the player an extra 10 aut isn't
needed.

--------------------------------------------------------------------------------
f7106a6177 | Nicholas Feinberg | 2016-05-28 08:42:29 -0700

Correct feature descriptions for no-more-drowning
Perhaps jumping the gun a little bit, since you can still drown
if your transformation ends over deep water, but that should be
gone soon enough.

--------------------------------------------------------------------------------
ebb789a2e4 | Nicholas Feinberg | 2016-05-28 08:29:31 -0700

Scale emergency flight drain with time taken
The faster you move, the less drained you should get.

Sucks to be Na^Chei, but hey, that's what they signed up for :)

--------------------------------------------------------------------------------
034cfd4ba3 | Neil Moore | 2016-05-28 05:21:57 -0400

Don't crash on removed stones of tremors in tiles (#10453)

--------------------------------------------------------------------------------
b0f541b5c6 | Alex Jurkiewicz | 2016-05-27 22:24:23 -0700

Prevent flight-expiry caused drowning/lava-death.
Now, flight expiring when you're over unlandable terrain (eg, lava and
(for most species) deep water) will enable 'emergency flight' mode,
denoted with a red Fly status mark.

While in emergency flight, the player is drained each turn.

--------------------------------------------------------------------------------
3707654fd7 | Nicholas Feinberg | 2016-05-27 20:53:28 -0700

Remove a bad closet
Spoilery, and not very exciting if it was unspoiled.
--------------------------------------------------------------------------------
865b46e385 | gammafunk | 2016-05-27 22:50:59 -0500

Fix a vault typo (chequers)

--------------------------------------------------------------------------------
cefc0673eb | Chris Campbell | 2016-05-28 03:08:49 +0100

Remove some rings of teleportation placed as vault loot
Especially from vaults that placed them specifically for escape after flying
over water.

--------------------------------------------------------------------------------
f964ff3b7d | Chris Campbell | 2016-05-28 03:02:28 +0100

Use a smooth stepdown for dexterity evasion calculations
Has very similar results overall, with dex < 18 being slightly better and dex >
18 slightly worse.

--------------------------------------------------------------------------------
4796c35317 | Chris Campbell | 2016-05-28 03:02:25 +0100

Reduce Olgreb's Toxic Radiance damage, don't cause self-poisoning
The self-poisoning forcing the player to occasionally cast Cure Poison didn't
work very well in practice, so instead just reduce its overall damage somewhat.
Also removes the hidden mechanic of the damage falling off over distance.

--------------------------------------------------------------------------------
022e38c878 | Chris Campbell | 2016-05-28 03:02:04 +0100

Reduce phial of floods impact damage
But keep its elemental summoning, to make it more distinct from the other
remaining XP evokers.

--------------------------------------------------------------------------------
b57ed4c43e | Chris Campbell | 2016-05-28 03:01:54 +0100

Remove the stone of tremors
Its effect was complicated and unreliable compared to the other elemental
evokers, and there shouldn't be an obligation to keep one XP evoker for each
element when there are now such a wide range of powerful evokers generally.

--------------------------------------------------------------------------------
bcf4d46266 | Chris Campbell | 2016-05-28 02:22:48 +0100

Make the lamp of fire and fan of gales not create elementals
And strengthen their other effects - make the fire clouds last longer and
deal more impact damage, and increase the distance of the fan knockback. Also
base knockback distance directly on the wind blast's power rather than on
evocations skill, which affects the Storm card too.

--------------------------------------------------------------------------------
cfc3c9c2f3 | Nicholas Feinberg | 2016-05-27 12:36:23 -0700

Don't turn D:15 down hatches into D exits (10408)
Introduced by e34a8034242b.

--------------------------------------------------------------------------------
0820dc5535 | elliptic | 2016-05-27 15:32:36 -0400

Don't unfurl any more damnations.
If someone has better names/messages, go ahead and change this again.

--------------------------------------------------------------------------------
c7037a31ca | Nicholas Feinberg | 2016-05-27 12:11:59 -0700

Remove superfluous rims from mutant beast tiles
sorry, wormcan

--------------------------------------------------------------------------------
3de147168e | Nicholas Feinberg | 2016-05-27 11:16:52 -0700

Fix rDamnation display in monster

--------------------------------------------------------------------------------
d264ab096e | Chris Campbell | 2016-05-27 18:33:40 +0100

Fix some D vault depths

--------------------------------------------------------------------------------
1ffff82d82 | Nicholas Feinberg | 2016-05-27 10:30:00 -0700

Fix ghoul/bog body skeletons (BeyondRad)
Should use the 'human' skeletons, rather than the 'small' skeletons.
Other monsters, e.g. fauns, satyrs, tengu, elves, merfolk, also have
this problem, but are a messier fix, since there's no 'medium' zombie
for them, and it seems wrong to use the 'human' zombie for non-humans.

--------------------------------------------------------------------------------
50fd0d7cc4 | Chris Campbell | 2016-05-27 18:13:26 +0100

Don't make Xom's mutation effect reduce HP (minmay)
It just forced a bunch of extra resting, and was possibly a holdover from the
distant times of Alter Self.

--------------------------------------------------------------------------------
4de7380240 | Chris Campbell | 2016-05-27 18:13:26 +0100

Update default autopickup exclusions

--------------------------------------------------------------------------------
c9172ce5b7 | Chris Campbell | 2016-05-27 18:13:26 +0100

Don't allow Shadow Step to work on allies
Could potentially be abused with, for example, Summon Lightning Spire to
reliably create a target to blink to at any time.

--------------------------------------------------------------------------------
229bcbb8b1 | elliptic | 2016-05-27 10:28:22 -0400

Relax the lua throttle somewhat.
The previous throttle parameters were the same that were chosen when it was
first added nearly 9 years ago - if a player lua call made more than 10000
instructions before returning then there would be a delay of 2 milliseconds,
and then for every additional 10000 instructions that delay would double,
up to a maximum of 1024 ms. After 100 such delays the player lua would be
terminated.

This commit increases 10000 to 50000, allowing player lua to make five times
as many instructions before getting delayed the same amount of time. I don't
believe that this will have a noticeable impact on server performance or
stability - only bots like qw or gw were consistently throttled very much,
and they already imposed a delay of their own in addition to the throttle.
The throttle will also still serve its primary purpose of ending infinite
loops caused via lua.

However, "regular" player lua was beginning to cause unpleasant half-second
or longer delays under certain circumstances because of the throttle. In
particular, recent upgrades to autofight made it be significantly throttled
when a huge number of monsters were in view (e.g. in a late Ziggurat level).
Relaxing the throttle by a factor of five reduces half-second or second
delays to an unnoticeable 6 ms. Of course some scripts will still hit the
throttle and we should still try to avoid unnecessary inefficiency, but
relaxing it a bit seems reasonable.

--------------------------------------------------------------------------------
7f58dc27b0 | elliptic | 2016-05-27 10:28:22 -0400

Make {autopickup} stash annotations into an option, autopickup_search.
This stash annotation was added in 78e7867c. It has minor utility but has
the potential to slow down the game in various ways. The problem is that
this stash annotation makes the game check autopickup status of every item
in the game whenever you use Ctrl-F and check autopickup status of every
item in view whenever you take any action at all. If you have a complicated
custom autopickup function (which is more popular now than it once was) and
there are a lot of items in the game or in view then this can be quite
expensive and can interfere with other unrelated uses of player lua.

I can see an argument that this option should default to true because for
most players it is safe to use, but I also think the feature can cause
a fair amount of trouble compared to how minor its utility is.

--------------------------------------------------------------------------------
695ac23370 | elliptic | 2016-05-27 10:28:22 -0400

Allow setting options for future games via c_persist.
If persist_options is set to true in your rcfile then the game will attempt
to read additional options from the persistent lua variable c_persist.options
immediately after reading your rcfile. This allows for lua scripts in your
current game to do things like choose the species/background combo of your
next game to use the same rcfile.

--------------------------------------------------------------------------------
c901c389bf | Chris Campbell | 2016-05-27 09:02:59 +0100

Remove excessive stones from a vault

--------------------------------------------------------------------------------
d848630d75 | Chris Campbell | 2016-05-27 09:02:59 +0100

Reword a Hepliaklqana message and comment

--------------------------------------------------------------------------------
9487b6b069 | Nicholas Feinberg | 2016-05-27 00:58:45 -0700

Don't reserve 'b' for Ancestor Identity (MarvinPA)
🚨 Hack Alert 🚨

--------------------------------------------------------------------------------
4c536b96f0 | Nicholas Feinberg | 2016-05-27 00:05:38 -0700

Make a transfer message less esoteric
I was going for a theme thing, but I don't think it really worked.

--------------------------------------------------------------------------------
45e873e9ef | Nicholas Feinberg | 2016-05-26 23:54:22 -0700

Fix Transference slowing
Accidentally applied to the origin, rather than the destination.

Variable names are hard.

--------------------------------------------------------------------------------
d0a574c068 | Nicholas Feinberg | 2016-05-26 23:42:43 -0700

Don't warn when confused-moving near avatars
And other similar monsters. You're not going to anger them, so
it's not a critical enough problem to give a warning prompt for,
and it's quite annoying to have the prompt when it's not needed.

This does remove the prompt when actually moving into an avatar or
ancestor while confused, which will attack them (if successful),
not swap with them... i feel like that's okay, but if not, at
least there's some refactoring here.

--------------------------------------------------------------------------------
6fe6638669 | Nicholas Feinberg | 2016-05-26 23:24:33 -0700

Make frenzy dispellable (10450)
It's weird that you can dispel the haste/might from frenzying an
enemy separately from the insanity; it's also weird that you can
dispel confusion, but not frenzy. Of course, with this change, it's
weird that you can dispel frenzy but not berserk... but it'd be
pretty messed up to be able to dispel a bear berserking, or to have
your own berserk dispelled by a purple drac. Weirdness either way,
but this seems like it's probably the best compromise.

It'd be really nice if we communicated dispellability better.

--------------------------------------------------------------------------------
b6cdf3269b | Nicholas Feinberg | 2016-05-26 22:29:16 -0700

Merge pull request #249 from alexjurkiewicz/ds-mut-nerfs
Ds mut nerfs
--------------------------------------------------------------------------------
1621dc961a | Nicholas Feinberg | 2016-05-26 22:18:19 -0700

Disable piety troves for Ukayaw

--------------------------------------------------------------------------------
7ea104e080 | Nicholas Feinberg | 2016-05-26 22:16:56 -0700

Merge pull request #269 from alexjurkiewicz/describe-spell-vulnerabilities
Add silence/antimagic spell vulnerability info to x-v.
--------------------------------------------------------------------------------
ca33af526c | Nicholas Feinberg | 2016-05-26 22:06:13 -0700

Merge pull request #277 from alexjurkiewicz/no-fountain-minimap
Don't show fountains on the minimap.
--------------------------------------------------------------------------------
da721ebfb7 | Alex Jurkiewicz | 2016-05-27 15:02:26 +1000

Don't show fountains on the minimap.

--------------------------------------------------------------------------------
a637243fcc | Nicholas Feinberg | 2016-05-26 20:52:32 -0700

Fix a banished kraken message
Their tentacles do *not* slide back into the water...

--------------------------------------------------------------------------------
6a726055a3 | Nicholas Feinberg | 2016-05-26 20:52:32 -0700

Banish a tentacle, banish the whole monster (9581)
Bit silly for it to only affect a bit.

--------------------------------------------------------------------------------
4e4bf7a30f | ontoclasm | 2016-05-26 21:32:47 -0500

Lindwurm tile

--------------------------------------------------------------------------------
67c72eb25b | Chris Campbell | 2016-05-26 22:19:24 +0100

Reword new god ability descriptions
For consistency with other ability descs.

--------------------------------------------------------------------------------
02ea680d10 | Nicholas Feinberg | 2016-05-26 13:50:01 -0700

Changelog fixes
Ty to dpeg for catching the headliner...

--------------------------------------------------------------------------------
21e50f6787 | Nicholas Feinberg | 2016-05-26 12:50:47 -0700

Changelog through 0.19-a0-284-gc035690

--------------------------------------------------------------------------------
9f329295a8 | ontoclasm | 2016-05-26 14:30:30 -0500

Dart slug tile

--------------------------------------------------------------------------------
c035690af8 | Nicholas Feinberg | 2016-05-26 12:05:32 -0700

Strip colour tags from ancestor names (MarvinPA)
FR: allow *closed* colour tags in ancestor names?

--------------------------------------------------------------------------------
61a59a3e7b | ontoclasm | 2016-05-26 01:25:21 -0500

Recolor shrike tiles
They are awaited in Valhalla

--------------------------------------------------------------------------------
79f5693a4e | Nicholas Feinberg | 2016-05-25 21:42:12 -0700

Merge pull request #274 from alexjurkiewicz/ar-stats
Tweak Artificer starting stats.
--------------------------------------------------------------------------------
bade9d985f | Nicholas Feinberg | 2016-05-25 21:41:18 -0700

Merge pull request #272 from yrmvgh/patch-7
More randart strings
--------------------------------------------------------------------------------
65774bb05d | Alex Jurkiewicz | 2016-05-26 12:53:22 +1000

Tweak Artificer starting stats.
It's (much) more common to build artificers as heavy-armour meleedudes
than spellcasters, so tweak artificer stats from 3,4,5 to 4,3,5.

--------------------------------------------------------------------------------
85cb9a5950 | elliptic | 2016-05-25 20:49:56 -0400

Don't let Malign Offering heal the target (|amethyst).
If redirected by Ru, say.

--------------------------------------------------------------------------------
3ff07cd129 | Neil Moore | 2016-05-25 16:52:15 -0400

Describe spectral weapon brands/types when they enter view.
We avoided this for dancing weapons, because there the monster name
already includes the weapon type and brand.  But we also avoided
it for spectral weapons, where that is not the case.  That is:

Dancing weapon (both old and new behaviour):
  A trident of protection comes into view.

Spectral weapon (old behaviour):
  A spectral weapon comes into view.

Spectral weapon (new behaviour):
  A spectral weapon comes into view. It is a spectral dagger of
  electrocution.

--------------------------------------------------------------------------------
ec56d90484 | Neil Moore | 2016-05-25 16:43:59 -0400

Don't warn twice about single dancing weapon (minmay)
A triple sword of distortion comes into view. It is a triple sword of
distortion.

Undo the change to get_monster_equipment_desc in 0.19-a0-262-g5df7875,
and instead use a new DESC_WEAPON_WARNING enumerator.

--------------------------------------------------------------------------------
db9440454d | Neil Moore | 2016-05-25 16:07:30 -0400

Only give barehanded prompts when carrying wieldable weapons.
Avoid the prompt when, for example, you are in a form that cannot wield
weapons, or you are using a shield and for some reason carrying only 2H
weapons.

--------------------------------------------------------------------------------
94fecb4c59 | Neil Moore | 2016-05-25 16:07:30 -0400

Return false for unwieldable brands in ::can_wield(item, false)
The false return was tied to identifying the item, which we didn't do
when say_reason was false.

--------------------------------------------------------------------------------
9b8175be05 | Nicholas Feinberg | 2016-05-25 13:06:58 -0700

Reduce Beoghite drowning
Make water-walking last until the player reaches dry land.

Would be reasonable to make it expire when entering shallow water,
but you'd need to do more work to get the messaging right.

--------------------------------------------------------------------------------
1035a83d02 | Shmuale Mark | 2016-05-25 14:09:46 -0400

Don't waste turns/food by channeling when at max MP.
A Lua function has been added so people who previously macro'd ./s to aa
can still do something similar.

--------------------------------------------------------------------------------
65c8ce1f93 | Nicholas Feinberg | 2016-05-25 11:02:22 -0700

Handle an implausible Hep corner case
Rejoining Hep after choosing an ancestor type but without having
specialized your ancestor, while at XL 15 or above.

--------------------------------------------------------------------------------
27098eeb86 | Nicholas Feinberg | 2016-05-25 10:56:00 -0700

Hep specialization force-more (World Famous W)
By default, when it becomes available, to make it harder to miss.

--------------------------------------------------------------------------------
684708a887 | Nicholas Feinberg | 2016-05-25 10:53:48 -0700

Hep specialization message: s/can/may

--------------------------------------------------------------------------------
fe51963608 | Nicholas Feinberg | 2016-05-25 10:48:18 -0700

Howler monkey zombie tile (10443)

--------------------------------------------------------------------------------
a12d01c007 | Nicholas Feinberg | 2016-05-25 10:38:25 -0700

Improve Hep descriptions
Attempt to clarify why ancestors are the same for all races. It
might work!

--------------------------------------------------------------------------------
782a0d5d3e | Nicholas Feinberg | 2016-05-25 10:37:02 -0700

Remove Hep's Felid ban
Since we aren't changing ancestor mechanics for any race, it's
possible to finangle the theme in other ways.

--------------------------------------------------------------------------------
af32591520 | Alan Malloy | 2016-05-24 22:37:15 -0700

Use proper pronoun when casting sap magic on a monster

--------------------------------------------------------------------------------
bdc1cec795 | Neil Moore | 2016-05-25 00:19:10 -0400

Fix clang compilation.
We have to have a default constructor to be able to default-initialize
a const object like this one.

--------------------------------------------------------------------------------
5df78756b0 | Neil Moore | 2016-05-24 23:40:21 -0400

Don't omit mention of Dispater's staff, +0 rods (CanOfWorms)
We got the message "Dispater is ." (likewise Cerebov and others).  The
missing predicate occured when several monsters came into view
simultaneously, and one was wielding an unidentified unrandart (e.g. the
staff of Dispater).  In _monster_headsup we decided to give the
announcement because wpn->brand, being shared with the unrand index, is
nonzero; but then we did nothing in get_monster_equipment_desc because
the item was unidentified but we passed DESC_IDENTIFIED.

We also failed to give any announcement for a monster with a +0 rod, or
with a magical staff, because those had wpn->brand == 0.

Instead, pass DESC_WEAPON so the weapon is always described, even if
unidentified; and produce the message if (and only if) the weapon is a
branded weapon (using the correct get_weapon_brand check), an unrand,
a rod, or a staff.  Continue to use DESC_IDENTIFIED for Ash ID, so as
to minimise the potential impact of this change.

--------------------------------------------------------------------------------
60b6c46885 | Nicholas Feinberg | 2016-05-24 17:25:15 -0700

Remove an MR leak (MarvinPA)

--------------------------------------------------------------------------------
70816b2004 | Shmuale Mark | 2016-05-24 20:04:33 -0400

Remove more code for zapping unidentified wands.

--------------------------------------------------------------------------------
bc3808f23b | Neil Moore | 2016-05-24 19:44:42 -0400

Don't reenable autopickup when an invisible ally dies (#10440)
Since they are really visible, and since attitude-changing enchantments
toggle autopickup, the invisible ally wasn't responsible for autopickup
being turned off.

The comment above the changed line explains why this isn't just a
visible_to() check.

--------------------------------------------------------------------------------
6208554616 | elliptic | 2016-05-24 19:14:20 -0400

Handle reaching correctly in will_tab (|amethyst).

--------------------------------------------------------------------------------
f6a20703e6 | Neil Moore | 2016-05-24 19:05:45 -0400

Don't put monsters in invalid menv slots.
If we ran out of monster slots, we would stick the monster into
the ANON_FRIENDLY_MONSTER and/or YOU_FAULTLESS slot, causing problems:

 http://crawl.akrasiac.org/rawdata/Kellhus/crash-Kellhus-20160524-150134.txt

In other situations we would reset these two fake monsters, which I'm
sure also causes problems.

Broken by overeager C++11ification in 0.17-a0-1874-ge687144.

--------------------------------------------------------------------------------
dde782283f | elliptic | 2016-05-24 18:37:31 -0400

Autofight: don't move towards unreachable monsters (gammafunk, qw).
Previously autofight would happily move towards monsters behind glass
walls, deep water, or other obstacles and only realize that something
was wrong when it couldn't move any closer to the monster because of
these obstacles.

Now autofight looks ahead for each monster to see whether it can be
reached by repeatedly pressing tab, and it ignores monsters that cannot
be reached in this way (moving towards other reachable targets instead
if they exist).

--------------------------------------------------------------------------------
e2f8e154c2 | Nicholas Feinberg | 2016-05-24 15:03:38 -0700

Remove vestigial Hep hunger costs
Leftovers from before god hunger cost reform.

--------------------------------------------------------------------------------
899822bb9e | Neil Moore | 2016-05-24 18:02:43 -0400

Allow XE to cycle through more out-of-sight exclusions.
Unless pathfinding made it close to the unknown excluded square, we
never actually filled PD_EXCLUDED into the travel_point_distance array,
meaning the square did not count as matching the "E" glyph.

It worked sometimes because there are other code paths that set the
travel_point_distance.

--------------------------------------------------------------------------------
646af277f3 | Neil Moore | 2016-05-24 18:02:22 -0400

Make X<>_ (etc) use pathfinding again.
But retain the non-pathfinding nature of XE and XW, including the
ability to cycle to exclusions/waypoints in unknown territory.

This mostly reverts commit f3709142ad128d091d16cdbc2ec189be88d862aa.

--------------------------------------------------------------------------------
247cc30056 | Chris Campbell | 2016-05-24 21:42:01 +0100

Fix disc of storms device surge having no effect

--------------------------------------------------------------------------------
4ed0e95abd | Chris Campbell | 2016-05-24 21:23:42 +0100

Don't allow Pakellas device surge to work on +Blink, +Rage etc
Especially since it actually did nothing but waste MP in those cases.
Thematically it seems fine to not treat evokable randart/ring/amulet properties
as "devices", and just keep it as affecting wands/rods/misc evokers (which are
the things that the player is likely to try and use it on anyway).

--------------------------------------------------------------------------------
7140f5a2ec | Chris Campbell | 2016-05-24 21:17:43 +0100

Rework Pakellas wrath to passively block all device use
The existing wrath had a few problems, encouraging dropping rods in particular
(due to its ability to permanently reduce their enchantment), and having the
unthematic fallback of draining the player directly if they leave all their
evokables behind. Passively preventing all device use for the duration is nice
and simple, and hopefully suitably severe.

--------------------------------------------------------------------------------
e4ddcd548a | Chris Campbell | 2016-05-24 21:01:27 +0100

Mark supercharged rods as such in their name

--------------------------------------------------------------------------------
e1419cd40e | Chris Campbell | 2016-05-24 21:01:27 +0100

Don't try to identify wands when zapped by the player
Since they're always identified on pickup.

--------------------------------------------------------------------------------
2f0009ae00 | Neil Moore | 2016-05-24 15:46:38 -0400

Annotate armour stashes for American spelling (xbon)
So ctrl-f armor and ctrl-f body armor work.  Ctrl-f dragon armor still
does not work, because we don't attempt to translate item names.

<dpeg> Wouldn't it be easier for players to learn correct English,
rather than us fixing their spelling deficiencies?

--------------------------------------------------------------------------------
a6dc20555d | Nicholas Feinberg | 2016-05-24 11:49:29 -0700

Don't crash when a ranged attacker dies (elliptic)
During the attack.

There are probably more bugs lurking here.

--------------------------------------------------------------------------------
acb36933c8 | Chris Campbell | 2016-05-24 18:43:19 +0100

Remove some references to rods acting as weapons

--------------------------------------------------------------------------------
df7ae78f96 | Chris Campbell | 2016-05-24 18:43:19 +0100

Don't multiply Ukayaw piety in Sprint

--------------------------------------------------------------------------------
6ce9f98cab | Nicholas Feinberg | 2016-05-24 10:36:50 -0700

Ban transferring immovable enemies (ololoev)
Problematic, probably.

--------------------------------------------------------------------------------
22108c2ed4 | Nicholas Feinberg | 2016-05-24 10:27:06 -0700

Improve Idealise scaling with Invocations
5-8 turns at 0 invo, as before, but now 5-62 turns at 27 invo, vs
previous 5-35 turns. If someone bothers to dump 27 invo into Hep
(not a great idea, other than for title purposes), then they'll now
get an Idealise that can last out an entire fight. It's also
slightly better at a more practical 8-12 invo range.

--------------------------------------------------------------------------------
54f067d60a | Nicholas Feinberg | 2016-05-24 09:52:17 -0700

Improve ancestor descriptions

--------------------------------------------------------------------------------
2c39c2ad01 | Neil Moore | 2016-05-24 10:42:23 -0400

Don't let monsters cast or zap Dig while berserk/insane (#10439)
Digging bypasses the normal monster wand and spell code, because
monsters use it as part of movement.

Maybe there are other afflictions that should be checked for?

--------------------------------------------------------------------------------
2507afca6a | Chris Campbell | 2016-05-24 15:31:55 +0100

Don't allow passwalling while in tree form

--------------------------------------------------------------------------------
7ec5e23425 | Chris Campbell | 2016-05-24 15:27:20 +0100

Don't generate dryad zombies
Since they can only ever exist as summons.

--------------------------------------------------------------------------------
32c3287dfd | Neil Moore | 2016-05-24 10:17:21 -0400

Add Hep to, and better place Uk in, zigsprint.
Expand the starting room by two squares vertically, reducing rooms 22
and 23 to make it fit.

--------------------------------------------------------------------------------
0f705476fa | Chris Campbell | 2016-05-24 15:09:58 +0100

Add new gods to levdes.vim for vault syntax highlighting

--------------------------------------------------------------------------------
1519406909 | Neil Moore | 2016-05-24 09:57:58 -0400

Add a missing to Ukayaw likes (elliptic)

--------------------------------------------------------------------------------
798d037a5e | Neil Moore | 2016-05-24 09:57:08 -0400

Correct messages for gods with only really_likes (elliptic)
"Ukayaw likes it when . Ukayaw especially likes it when hurt your foes."
now becomes just "Ukayaw especially likes it when hurt your foes."

--------------------------------------------------------------------------------
abd010d114 | regret-index | 2016-05-24 04:18:14 -0400

Minor vault work and newer Shoals ending toning down
The iceberg shoals end is even meaner than the previous shoals branch ends.
For the rune-containing hut: frost giants are competitive with the classed
merfolk, the kraken simulacra can easily overwhelm the foolhardy without rC+,
and most importantly it and the garden end places more floor monsters
(always eight) than the other two rune huts (two to six) despite being very
open as is. As such, it (and the garden end) both have had cuts into their
contents, quick fixes to restrain their excess.

Also, fix a Pan teleport closet, make glass windows always visible for an
abyss rune vault, and tweak some Xom jokes.

--------------------------------------------------------------------------------
2f94a7d4f6 | Nicholas Feinberg | 2016-05-24 00:45:02 -0700

Recolour Hep altar in console
To match the god's colours; the old colour was a placeholder that
slipped through into trunk.

--------------------------------------------------------------------------------
ae044c87c4 | Nicholas Feinberg | 2016-05-24 00:30:34 -0700

Allow customizing your ancestor's name & gender
By popular demand.

This may eventually become a single-use ability, or perhaps an
automatic effect when joining the religion or at some other time
- no one seems satisfied with how the ability clutters the menu,
but...

--------------------------------------------------------------------------------
1c516ad3d3 | Nicholas Feinberg | 2016-05-24 00:30:33 -0700

Add XL15 ally specializations
See earlier comments on ancestors for details.

--------------------------------------------------------------------------------
a2480ca471 | Nicholas Feinberg | 2016-05-24 00:30:33 -0700

Hepliaklqana 3* ability: Transference
Swaps your ancestor with a targetted creature (which can be you!)
if your ancestor is in LOS. At 5*, adjacent enemies are also slowed;
the amount of slowing scales with Invocations. Regardless, costs a
small amount of piety.

Intended to be a fun tactical trick; escape ability, offensive
play, whatever. The sort of thing you can only do with an ally
god, as with Idealise.

--------------------------------------------------------------------------------
f555eab4ff | Nicholas Feinberg | 2016-05-24 00:30:33 -0700

Hep overflow vault (regret-index)

--------------------------------------------------------------------------------
f7700369d6 | Nicholas Feinberg | 2016-05-24 00:30:33 -0700

Allow choosing Hepliaklqana ally type (2*)
See earlier comments on ancestor types.

--------------------------------------------------------------------------------
67c5fccf08 | Nicholas Feinberg | 2016-05-24 00:30:27 -0700

Hepliaklqana 3*: Idealise
For a small piety cost, heal your ancestor, remove harmful status
effects, and apply Idealise, which increases AC and doubles melee
damage & spell HD for the duration.

Healing amounts and Idealise duration scale with Invocations.

--------------------------------------------------------------------------------
097f26006e | Nicholas Feinberg | 2016-05-24 00:30:27 -0700

Hepliaklqana 0*: Recall
Simple 1-turn ancestor-specific recall. Pretty straightforward.
Not really a big deal.

--------------------------------------------------------------------------------
4a5363d526 | Nicholas Feinberg | 2016-05-24 00:30:27 -0700

Automatically respawn the ancestor
About 30-60 turns after it's destroyed, or 5-15 turns after it's
swallowed by an Abyss shift or similar.

The idea here is that the ancestor being around should be a default,
passive effect, rather than one you have to spend piety to maintain
(whenever it dies).

--------------------------------------------------------------------------------
079c302937 | Nicholas Feinberg | 2016-05-24 00:30:26 -0700

Hepliaklqana wrath
Your ancestor immediately leaves, and you are unable to earn any
experience until Hepliaklqana decides it's taken enough; this takes
about as much XP as ending Ash wrath. The XP is permanently gone.

Enjoy!

--------------------------------------------------------------------------------
75ffc054b8 | Nicholas Feinberg | 2016-05-24 00:30:26 -0700

Add Hepliaklqana to sprints
Except for zigpsprint & pitpsprint, since I'm not sure how to fit
the altar in, and arenasprint, since exploration gods don't work
there.

--------------------------------------------------------------------------------
2efe68df89 | Nicholas Feinberg | 2016-05-24 00:30:22 -0700

Implement Hepliaklqana ancestors
A basic type, plus three classes: knight, battlemage & hexer. Each
scale with player XL. Currently they can't attack outside player
LOS, as summons, but can follow down stairs, can't be dispelled,
don't expire over time, etc.

HD = (Xl - 1)*2/3 +1
HP = hd * 5 + max(0, (hd - 12) * 5)
MR = HD*HD/2
Base damage = HD + 3;
Base AC = HD
  (knight gets 5+HD/2 bonus AC)

Upgrades:
XL        Knight         |   Battlemage    |   Hexer
15a   D. Trident (flame) |   Iceblast      | Paralyse
15b   Broad Axe (flame)  | Bolt of Magma   | Metabol. Englaciation
21    Lg. Shield (refl.) | Lajatang (frz.) | Mass Confusion
      Haste                Haste             Haste
27    Speed brand        |  Crystal Spear  | Quickblade (AM)

(The player can choose between two different options at XL 15.)

--------------------------------------------------------------------------------
140ffe5105 | Nicholas Feinberg | 2016-05-24 00:12:46 -0700

New god: Hepliaklqana the Forgottten
God of ancestral memory. Will grant a powerful, customizable
follower who increases in power with the player. No felids allowed.

--------------------------------------------------------------------------------
285762d43a | Nicholas Feinberg | 2016-05-24 00:12:27 -0700

Let monsters cast Iceblast

--------------------------------------------------------------------------------
c856d5307b | Nicholas Feinberg | 2016-05-24 00:12:26 -0700

Make allies target enemies hit by beams
As if you'd hit them in melee, or with a ranged attack.

--------------------------------------------------------------------------------
6c022ac0f4 | Nicholas Feinberg | 2016-05-24 00:12:26 -0700

Fix ABIL_BLINK failure chance
oops...

--------------------------------------------------------------------------------
212af83b39 | Nicholas Feinberg | 2016-05-24 00:12:26 -0700

Update a shaft-immunity comment

--------------------------------------------------------------------------------
cce208aba7 | Nicholas Feinberg | 2016-05-24 00:12:23 -0700

Re-remove _Sacrifice_Messages
Accidentally re-added in 23faf3b4bf32dd5bf43ef.

--------------------------------------------------------------------------------
62d10c936a | Neil Moore | 2016-05-23 23:14:47 -0400

Don't put shrikes in the bennu genus (elliptic)
"The caustic shrike renews itself in a burst of flame!"

Add MON_SHAPE_BIRD instead, and return them to their own genera.  Maybe
we should have a dummy MONS_BIRD or at least MONS_SHRIKE.

This partially reverts commit 856e40b934a80945f3d351134b782407ac76d6c6.

--------------------------------------------------------------------------------
38b45073c5 | Neil Moore | 2016-05-23 23:14:06 -0400

Join a couple of lines.
It's 80 characters exactly, and otherwise unbrace wants the block to
be surrounded by braces.

[skip ci]

--------------------------------------------------------------------------------
d839b175ce | Corin Buchanan-Howland | 2016-05-23 21:21:41 -0400

Ukayaw: add wrath
Ukayaw wrath is currently 1) berserkify monsters, 2) paralyze the player,
or 3) make a ton of noise.

--------------------------------------------------------------------------------
16f12e3ab4 | Corin Buchanan-Howland | 2016-05-23 21:21:40 -0400

Ukayaw: ***** ability, Grand Finale
This power lets you blink to a monster's location and kill the monster,
potentially sending flying chunks everywhere. Any targetable monster (one
with emotions) is instantly killed by this ability, even uniques, pan lords,
etc.

The flavor is that you merge your emotions and body w/ the target, then
violently separate.

--------------------------------------------------------------------------------
22b6c90c00 | Corin Buchanan-Howland | 2016-05-23 21:21:39 -0400

Ukayaw: Add **** passive, pain bond
Like the *** power, this triggers automatically upon hitting the required
piety. It gives all monsters in LOS the pain bond status for an amount of
time that increases with Invocations skill. While the status is active,
affected creatures deal a portion of the damage they receive to nearby
creatures with the same status -- which can trigger the status again in a
chain reaction. The damage shared decreases with distance, dealing 80%/60%/
40%/0% at one/two/three/four tiles away, respectively.

--------------------------------------------------------------------------------
00f3134664 | Corin Buchanan-Howland | 2016-05-23 21:21:38 -0400

Ukayaw: Add *** passive, solo time
Upon reaching ***, Ukayaw briefly paralyzes all enemies on LOS. The duration
is at least 10 AUT. It increases with Invocations skill and the difference
between player level and monster HD, but it takes a significant amount of
those factors to raise the duration significantly. Maximum duration is 40
AUT.

This triggers passively so that some aspects of the 'combo' this god offers
don't require manual intervention. Plus, it'll be a cool event to aim for.

The ability only triggers at most once every so often so that it can't
be abused via repeated piety loss/gain.

--------------------------------------------------------------------------------
8098417ade | Corin Buchanan-Howland | 2016-05-23 21:21:37 -0400

Ukayaw: Add ** ability, Line Pass
Line Pass allows you to spend a modest amount of mana to instantly
travel to the other side of a contiguous group of enemies. The enemies you
pass through may become confused.

This may get updated to do damage instead of confusion at some point.

Credit goes to MrRokkomies for this idea as a Necromancy spell.

--------------------------------------------------------------------------------
255422a94f | Corin Buchanan-Howland | 2016-05-23 21:21:36 -0400

Ukayaw: Add * ability, Stomp
Deals damage to all monsters adjacent to you. Stomp takes off 1/6th of
current hp of the victim, and then we add 2d(2 + invo/2) damage. Stomp is
intended an opener while also rewarding invo investment.

--------------------------------------------------------------------------------
a4c1ea8e31 | Corin Buchanan-Howland | 2016-05-23 21:21:35 -0400

Add rand_round (|amethyst)

--------------------------------------------------------------------------------
23faf3b4bf | Corin Buchanan-Howland | 2016-05-23 21:21:34 -0400

Ukayaw: get this party started
Add Ukayaw, the god of ecstatic dance. Ukayaw has extremely rapid piety
gain and loss in combat as long as you keep the fight going. The god's in-game
description:

Ukayaw the Reveler is a god of ecstatic dance. On the surface, Ukayaw
appreciates many forms of worship, but in the dungeon most worshippers stick to
the dance of combat. Ukayaw appreciates the passion and rhythm of combat,
rewarding followers for each strike they deliver and for the damage they deal
their foes. The longer the dance continues, the greater powers Ukayaw offers.
When the dance ends, Ukayaw quickly loses interest.

--------------------------------------------------------------------------------
24f3fdc225 | Chris Campbell | 2016-05-24 02:06:45 +0100

Adjust some mutant beast descs

--------------------------------------------------------------------------------
fbd88f36c1 | Chris Campbell | 2016-05-24 02:06:33 +0100

Give Wyrmbane a message when reaching max enchantment

--------------------------------------------------------------------------------
14e7cedcae | Chris Campbell | 2016-05-24 00:56:24 +0100

Improve listing of chargeable items for Pakellas
Don't list fully charged rods, since unlike other sources of recharging they
can't be enchanted here.

--------------------------------------------------------------------------------
eef0c8d6df | Chris Campbell | 2016-05-24 00:56:24 +0100

Reduce the duration of Simulacrum
Since it has the benefit of creating multiple monsters per corpse, compared to
the other spells which animate dead (and having them melt away a bit more
quickly also fits thematically).

--------------------------------------------------------------------------------
ccd4ce3560 | Alan Malloy | 2016-05-23 12:07:13 -0700

Rename Trmt school to Tmut, since that's what players call it

--------------------------------------------------------------------------------
2bafcdf8a3 | regret-index | 2016-05-23 03:18:50 -0400

Ice cave entry edits / cloud marking / rime dispersal / statue garden shifts
Header clean-up, too, as always.

 * Discretely split entry vaults based on the branch split in difficulty.
   No more white imps or ice beasts in the lair branches, with some tweaks,
   additions, and re-weightings for these placements.
 * As a quick tweak for later addressing, mark the freezing cloud fog machine
   origin points with shallow water to make it somewhat easier to predict-
   the layouts mostly place them in stretches of dry land tunnels, so the
   points should be a bit more visible.
   * This isn't ideal, as the water is additional disruption onto the
     awkward presence of the clouds- more should be thought out over this,
     whether creating some explicit damaging fog machine feature or with
     completely removal of these specific clouds (there are already ice 
statues,\
     it's hard to predict where the clouds might float).
 * Sprinkle rare rime drakes into the animal sets (at death yak point).
   Not too many, with those sets not previously particularly wanting for
   cold resistance, but probably more could be used.
 * Screw with the ice statue gardens layouts: fit singular white ugly things
   into both (they desperately need monster variety), put marginally more loot
   into the teleporter one, enable the other one for harder ice cave placement
   with more ice statues and some simulacra.

--------------------------------------------------------------------------------
c02d5d8696 | regret-index | 2016-05-23 02:09:50 -0400

Little vault fixes
Header clean-up, too. Mostly in response to some reports.
Avoiding of teleport traps for the lair worm ending dragon, don't place an
early D uniques + humans vault in Lair, prevent people from getting stranded
in a giants vault, substitute some runed doors leading to rock meant to be
dug with some glass.

--------------------------------------------------------------------------------
ddc32c1f7c | Alan Malloy | 2016-05-22 22:01:25 -0700

Merge pull request #206 from amalloy/escape-stair-fixup
Make sure vault-produced escape hatches aren't erased
--------------------------------------------------------------------------------
419341d0bb | Neil Moore | 2016-05-23 00:55:29 -0400

Call natural abilities "natural", not "special".
Including a sync of the manual from the wiki.

--------------------------------------------------------------------------------
17c568c998 | Nicholas Feinberg | 2016-05-22 21:11:17 -0700

Merge pull request #270 from Sandman25DCSS/patch-1
Remove digging and disintegrate from wand of random effects
--------------------------------------------------------------------------------
e7ef1b1ae3 | Yer mivvaggah | 2016-05-22 20:40:53 -0400

Update rand_arm.txt

--------------------------------------------------------------------------------
a21aea48c8 | Nicholas Feinberg | 2016-05-22 17:29:40 -0700

Fix player invis / water interaction (10437)
The game claimed that invisibility did not work when submerged in
water (since there's a disturbance); however, this was broken in
0.12-a0-1857-gc7c0c12, three years ago. Who knew?

--------------------------------------------------------------------------------
652b484dbd | Nicholas Feinberg | 2016-05-22 17:22:56 -0700

Lower BiA hunger cost somewhat
<elliptic> giving trog an ability that can cost more than 500 or so
hunger means that you can drop instantly from satiated to very hungry,
and then you can't berserk

--------------------------------------------------------------------------------
9098c719f3 | Nicholas Feinberg | 2016-05-22 17:22:30 -0700

Finish removing old mutant beast tiles
<chequers> rip little :3 faced mbeast

--------------------------------------------------------------------------------
0f14b34c1d | Nicholas Feinberg | 2016-05-22 16:53:11 -0700

Rework divine ability hunger costs
Most of them were vestigial or otherwise poorly-thought-out.

Removed: Zin's, TSO's, Oka's, Makh's, Beogh's, Pak's, Jivya's,
Chei's, Ash's. It might have been interesting to try to make hunger
a constraint on Okawaru, but possibly that should wait for some
other buff, since O feels somewhat weak even now; similarly,
increasing the hunger cost for Pakellas's abilities might have
had interesting interactions with rod hunger costs, but the MP &
piety restrictions feel like they have enough going on already.

Kiku: Increased Request Corpses' from 50-100 nutrition to 200-400.
Presents slightly more interesting choices wrt spamming it, maybe.

Yredremnul: Removed 50-100 cost from Recall Undead Slaves, increased
cost of Animate Remains/Dead from 50-100 to 200-400 (to potentially
add fun hunger tradeoffs early on) and Enslave Soul from 150-30 to
500-1000 (to make it 'feel' more 'impactful').

Trog: cost of Burn Spellbooks from 10-20 (!) to 0; Trog's Hand from
50- to 200-, and Brothers In Arms from 100- to 300-. Goal is to
reintroduce some of the hunger challenges that were lost with corpse
sacrifice.

Fedhas is currently untouched but is likely to be changed in a
future commit.

--------------------------------------------------------------------------------
e1e8c5f3f1 | Nicholas Feinberg | 2016-05-22 16:52:49 -0700

CanOfWorms' new Mutant Beasts
Beware The Mutant Beast Cost

--------------------------------------------------------------------------------
ccf0412d48 | Nicholas Feinberg | 2016-05-22 16:51:01 -0700

Remove thrashing horror door use (regret-index)
'it just seems off that the monster flavoured as blind flesh, and
that mechanically is a batty trampler, can open doors.

(also it screws with abyss rune vault changes)'

--------------------------------------------------------------------------------
a0b2239c9b | elliptic | 2016-05-22 18:56:33 -0400

Player lua: mon:is_stationary().

--------------------------------------------------------------------------------
306dcfe52a | elliptic | 2016-05-22 18:56:33 -0400

Player lua: view.cell_see_cell().
Uses the same opacity logic as exclusion coloring; that is, unknown squares
are assumed to be empty.

--------------------------------------------------------------------------------
6d8b80b34e | Neil Moore | 2016-05-22 18:31:35 -0400

Update a generated filename in .gitignore.
[skip ci]

--------------------------------------------------------------------------------
16b717945b | Neil Moore | 2016-05-22 17:04:30 -0400

End the tournament.
This reverts commit e6e643543260df7b7f6ecfa86032fca5992a78ae.
This reverts commit ac4885e2a96e059cf74ebf53b6b8e8b9701bd42a.

--------------------------------------------------------------------------------
b26458ba67 | Yer mivvaggah | 2016-05-22 13:27:53 -0400

make a few randart strings fit better
(fit better grammatically with the randnames they can appear in)



and add a few more while I'm here!
--------------------------------------------------------------------------------
f34413406e | Chris Campbell | 2016-05-22 17:48:44 +0100

Fix a giant eyeball message (elliptic)

--------------------------------------------------------------------------------
ebbf4e3f53 | Alex Jurkiewicz | 2016-05-22 23:45:00 +1000

Improve the wording for anti-magic brand description.

--------------------------------------------------------------------------------
6cda638776 | Alex Jurkiewicz | 2016-05-22 23:45:00 +1000

Update wording for non-spellbook spell listings.

--------------------------------------------------------------------------------
7a8084aeb0 | Chris Oelmueller | 2016-05-22 09:32:30 -0400

Show more mutation effects more clearly on `A` screen (#271)
- Consistently end the sentence, then put the effect in parens

- Did not add rElec- since … what does rElec- even tell players?

- (stealth, -foe acc) should be rephrased in its entirety, not touching it

- others such as e.g. (Clar) and (*Rage) are probably not needed



Oh yeah, and remove two messages for nonexistent levels of Eyesight.

Those went extinct approximately the same time as Sludge Dwarves :(
--------------------------------------------------------------------------------
6f47c83eba | Neil Moore | 2016-05-22 07:55:08 -0400

Disambiguate a message (minmay)
Losing evolution had the same message as gaining mutation resistance.

--------------------------------------------------------------------------------
9e8d9176b1 | regret-index | 2016-05-22 03:44:29 -0400

Abyssal rune vault difficulty standardizing / upgrading / consolidating
Honestly, this is probably giving in to the late-game power cycle.

Still, with it being even easier than before to reach the Abyssal rune
(with late direct banishment to rune levels), and with it as a decent choice
of third rune, it feels reasonable to try and make said vaults have some
vague standard of opposition. Currently they almost all rely on different
gimmicks and host extremes such as six liches versus six lightning spires,
and a precedent of mostly non-Abyss spawns was established between the
chaotic nature of Abyss paired with the initial absence of branch-unique
spawns. With this having extended to an absurd twenty-five different tricks,
this commit opts for combining some of the vaults to increase opposition
while preserving their unique qualities.

Combinations:
 * _water_cross, _zappy: lightning spires, smoke demons
 * due_abyss_rune, _seething_chaos: six lich closets, chaos clouds.
 * _tentacle_tunnel, _crabyss: kraken, t. monstrosity, all crab types
 * _elephants, _shrine: elephants, hellephants, draconian shifters
 * _siren, _acolytes_[1|2]: eldritch tentacle priests, stranded merfolk avatar
 * _treasure_dump, _the_horror: crystal guardians, shapeshifters, foo horrors
 * _sword_and_sorcery, _forest: deep elves, motile plants, rakshasas, nymphs
 * _curve, _containment_breach: demons, spatial maelstroms

Other vaults are also buffed too, of course.
 * _ettins gets a silent spectre.
 * _tso_outpost gets dancing holy long swords and a juggernaut.
 * _flesh_and_stone gets a death drake, some air elementals, and a war gargoyle.
 * _macabre_mess uses slime creatures, large abominations, more cacodemons,
   and an executioner.
 * _wretched_hive gets green very ugly things and dual spark wasps.
 * _star_stuff has some generic spawns outside of the vault.
 * _left_handed uses the worldbinder shape / theme to summon lair branch foes.

Also, all abyss rune vaults now have a few changed floor tiles
(or light magenta floor colouring highlights in console), so it's possible to
immediately recognize a vault possessing the abyssal rune without spoilers
or previous knowledge. Stone arches were also cut from explicit placement in
other Abyss vaults and placed on the outside of these Abyss vaults for the same
cause (and to help with console Dith / TSO worshippers obscuring the floor).

The set is altogether very weird and warped even relative to Abyss, so the
two most egregious tricks (the catoblepas lava closet and the horror spam
mimic vault) both have lowered weights, and the two most straightforward
vaults based almost solely in Abyss-unique spawns have upped weights.

--------------------------------------------------------------------------------
09de571792 | Alan Malloy | 2016-05-21 21:24:45 -0700

Don't let Jiyva set your base stats to 0 or lower

--------------------------------------------------------------------------------
e367d0366e | Alan Malloy | 2016-05-21 21:24:45 -0700

Remove some magic numbers fmor Jiyva stat shuffling code

--------------------------------------------------------------------------------
3b1235c944 | Nicholas Feinberg | 2016-05-21 18:30:15 -0700

Default force_mores for distortion & chaos weapons

--------------------------------------------------------------------------------
ba1c2460e4 | Nicholas Feinberg | 2016-05-21 18:30:15 -0700

List all branded weapons for newly seen enemies
To allow people to add force_mores in their rcs.

--------------------------------------------------------------------------------
0e17dc08c8 | Neil Moore | 2016-05-21 13:35:16 -0400

Undoxx.
[skip ci]

--------------------------------------------------------------------------------
15dfbc9a20 | Neil Moore | 2016-05-21 08:45:25 -0400

Really don't count "Harm as evil.
0.19-a0-104-g5d90fae made taking damage while wearing Harm no longer
a evil act, but did not affect *dealing* damage.

--------------------------------------------------------------------------------
c5c5d64209 | Neil Moore | 2016-05-21 08:19:15 -0400

Change a #define to a typedef.

--------------------------------------------------------------------------------
dad40784c1 | Chris Campbell | 2016-05-21 12:51:57 +0100

Update tense in a status description
And reword a few entries.
--------------------------------------------------------------------------------
80967140a8 | Nicholas Feinberg | 2016-05-21 00:25:45 -0700

Fix two obscure shout bugs
(1) Monsters with ENCH_MUTE couldn't perform 'silent shouts',
e.g. jellies quivering, moths of wrath 'bristling with rage', &c.

(2) If you, the player, were silenced, monsters would never shout.

The latter might have been a decent secret tech, actually

--------------------------------------------------------------------------------
4a195e281b | Nicholas Feinberg | 2016-05-21 00:25:45 -0700

Refactor monster shouting
The function name prefix "handle_" means nothing, has never meant
anything, and serves as a sort of filler. It is a Code Smell, and
should be purged whenever it appears.

This commit makes wizmode shout-forcing work even when a monster
would be unable to shout normally; e.g. if they were silenced,
sleeping, etc.

--------------------------------------------------------------------------------
5fdce5e7d3 | Nicholas Feinberg | 2016-05-21 00:25:45 -0700

Add a few more warnings to wizmode shout-forcing
Probably we should just force it through that, anyway.

--------------------------------------------------------------------------------
52cd2633ec | Nicholas Feinberg | 2016-05-21 00:25:45 -0700

Add a helpful comment to special-case shouts
Since I'm baffled by where these are used every time I run into
them.

--------------------------------------------------------------------------------
b23b67e52a | Alan Malloy | 2016-05-20 23:05:35 -0700

More useful info about Stone status in ?/t

--------------------------------------------------------------------------------
f5426c9559 | Nicholas Feinberg | 2016-05-20 22:09:35 -0700

Don't use MONS_GHOST as a genus monster
The MONS_GHOST tile should probably never appear in a game, outside
of the actual MONS_GHOST 'monster' appearing.

--------------------------------------------------------------------------------
d53b84c634 | ontoclasm | 2016-05-20 12:31:20 -0500

Shrike tiles
We'll see if these strike people as "more threatening"; if not we can
always revert them.

--------------------------------------------------------------------------------
cf3c36757d | Nicholas Feinberg | 2016-05-20 09:24:47 -0700

Remove a reference to a removed glyph file

--------------------------------------------------------------------------------
dcc5c43c5b | Nicholas Feinberg | 2016-05-19 22:53:01 -0700

Add doors to volcano_village
To prevent the flame from spreading into the cave and killing
players on the turn after they enter the portal. (This has
happened!)

--------------------------------------------------------------------------------
bc558dc2fa | Nicholas Feinberg | 2016-05-19 18:31:10 -0700

Spellforged Servitor quote (9620)
<|amethyst> sounds good, ship it

--------------------------------------------------------------------------------
2171a678ac | Nicholas Feinberg | 2016-05-19 18:22:00 -0700

Flatten.

--------------------------------------------------------------------------------
718b3f5e4a | Nicholas Feinberg | 2016-05-19 18:20:25 -0700

Stop bribing your own summons (10427)
Pretty sure there are some other weird cases lurking here...

--------------------------------------------------------------------------------
449270e0a2 | Nicholas Feinberg | 2016-05-19 18:00:37 -0700

List enslaved souls' spells (10428)

--------------------------------------------------------------------------------
d8de639cf2 | Nicholas Feinberg | 2016-05-19 17:47:42 -0700

Explain web-sense (10432)
"Nearby" is distance 9, slightly greater than LOS_RADIUS. 3/8ths
chance of alerting, 3/8ths chance of just disturbing.

--------------------------------------------------------------------------------
df1d4a51d3 | andreas | 2016-05-19 17:43:36 -0700

Fix description of "dumb" monster (10431)
A monster that has the "dumb" status because of Zin's recite is
currently described as "stupefied" if one uses x-v but described as
"dumb" in the monster list on the right of the screen. This change
makes the monster list describe the monster as "stupefied" instead.

--------------------------------------------------------------------------------
039907cf36 | Nicholas Feinberg | 2016-05-18 18:05:04 -0700

Fix mimic portal expiry (10365)
Expired mimic portals probably shouldn't turn into giggling floors.

--------------------------------------------------------------------------------
b0c6ba4237 | Chris Campbell | 2016-05-19 01:19:28 +0100

Remove an obsolete Donald line (Lightli)

--------------------------------------------------------------------------------
f1b7cfb170 | Nicholas Feinberg | 2016-05-18 16:25:21 -0700

Fix "a cold blue light!." (MarvinPA)
committing from git, so hopefully this compiles...
--------------------------------------------------------------------------------
487caf040d | Sandman25DCSS | 2016-05-18 13:52:42 -0400

Update items.cc
Remove digging and disintegrate from wand of random effects. See 
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=19945
--------------------------------------------------------------------------------
706f639535 | Nicholas Feinberg | 2016-05-17 22:07:47 -0700

Don't ban enslaving god-hated mons (minmay)
The ethics & theme (the justification for the old mechanic) can be
argued either way, and the gameplay is very poor: the player ends
up wasting turns, often due to something they couldn't have known
about (for e.g. monsters with multiple spellbooks), and not being
sure why!

--------------------------------------------------------------------------------
6f47703e82 | Nicholas Feinberg | 2016-05-17 12:31:02 -0700

Dataify zombie tiles

--------------------------------------------------------------------------------
fd9193e7aa | Nicholas Feinberg | 2016-05-17 11:33:26 -0700

Split out a zombie tile chooser

--------------------------------------------------------------------------------
a5b644a1f2 | ontoclasm | 2016-05-17 03:04:10 -0500

Clean up some book tile errors

--------------------------------------------------------------------------------
2e0a8205fe | Nicholas Feinberg | 2016-05-17 00:15:06 -0700

Roctavian's demons (9951)
New tiles for various demons, mostly imps and such. I tweaked the
shadow imp slightly.

--------------------------------------------------------------------------------
d109d65095 | Nicholas Feinberg | 2016-05-16 22:51:39 -0700

Don't crash when trying to place a zombie dummy
E.g. &mspider zombie. Not sure this is the best approach, but...

--------------------------------------------------------------------------------
98010b7189 | Nicholas Feinberg | 2016-05-16 22:51:39 -0700

Shrink jumping spiders slightly
From medium to small. They *feel* like they should be smaller -
damage and threat aligns them closer with e.g. tarantellas (as
'support' spiders) than with the heavy-hitting wolf spiders.

Also, this makes my incredibly sophisticated zombie spider tile
picker work better.

Gameplay impact should be minimal. It might make it easier for them
to escape from nets, or perhaps harder...?

--------------------------------------------------------------------------------
856e40b934 | Nicholas Feinberg | 2016-05-16 22:51:39 -0700

Zombie bird tile
A recolour of the old raven tile. Implemented by sorting birds
monsters into the bennu genus, which probably won't have any other
consequences.

Also, specifically do *not* make birds use the bat spectre/simulac
tile, since they are enormously more dangerous and shouldn't be
classed together. A generic spectre tile *might* encourage the
player to double-check what they're looking at...

--------------------------------------------------------------------------------
8b64045943 | Nicholas Feinberg | 2016-05-16 22:51:39 -0700

Roctavian's zombie/skeleton tiles
Birds need love...

--------------------------------------------------------------------------------
efc6d61359 | ontoclasm | 2016-05-16 20:56:56 -0500

Clean out unused colour<->tile correspondence

--------------------------------------------------------------------------------
31710c3782 | ontoclasm | 2016-05-16 20:12:27 -0500

Realign amulet colors with their descriptions

--------------------------------------------------------------------------------
4b644d8d36 | Neil Moore | 2016-05-16 21:08:28 -0400

Use have_passive in a few more places.

--------------------------------------------------------------------------------
c9f901ab99 | Nicholas Feinberg | 2016-05-16 18:06:00 -0700

Initial work on improving unrand syntax
From "falchion unrand:scythe_of_curses" to "scythe of curses".
Unrands will default to a corresponding randart (or magical staff)
if they've already been generated.

--------------------------------------------------------------------------------
11d8e38df8 | ontoclasm | 2016-05-16 20:00:42 -0500

New amulet tiles
Most of these are by me; azure, scarab, skull, spider, sun, diamond,
flourescent are by CanofWorms.

--------------------------------------------------------------------------------
d09649ca24 | Neil Moore | 2016-05-16 20:50:27 -0400

Check for passives, not piety levels, in _describe_god_powers.

--------------------------------------------------------------------------------
3d1d45b433 | Neil Moore | 2016-05-16 20:50:27 -0400

Dataify two more Pakellas passives.

--------------------------------------------------------------------------------
3dcbe813aa | Neil Moore | 2016-05-16 20:50:27 -0400

Use have_passive in several more places.

--------------------------------------------------------------------------------
5d0c6ab634 | Chris Campbell | 2016-05-17 01:21:45 +0100

Display Pakellas's MP gain on kills on the ^ screen

--------------------------------------------------------------------------------
7ebd39f78d | Chris Campbell | 2016-05-17 01:21:45 +0100

Don't make Pakellas gift potions of magic to Mummies
Also makes the gifting start at 2* as appeared to be intended, rather than at
3*.

--------------------------------------------------------------------------------
2caaceb77f | regret-index | 2016-05-16 20:14:04 -0400

nicolae- vaults- (10069, 10388)
Some .des clean-up at the same time, too. Three themed shops, four Shoals
minivaults, a Xom mimic gimmick, a decorative Gehenna vault. Also, a set
of Vaults rooms, some with connectivity tricks, and a clean-up of the
alphashops code.

Tweaks of note from submissions:
 * _kraken_party: Meagre loot, symmetry reduction, tiny kraken moving space.
 * _vaults_network_: Put some NSUBST hard caps on the upper bounds of
   monster placement randomization.
 * _inception_network: Move to the hard room type, with a NSUBST minimum.

--------------------------------------------------------------------------------
db3d0b49ed | Nicholas Feinberg | 2016-05-16 07:30:16 -0700

Simplify Cigotuvi's Embrace
Remove the 'chunks fall off when hit' effect. The spell is fairly
situational regardless, and putting time pressure onto the player
('use it or lose it') is more interesting than just making the
thing disintegrate the moment it's actually used!

--------------------------------------------------------------------------------
f04b008a73 | Nicholas Feinberg | 2016-05-16 22:24:15 +0100

Make the seraph's spells magical (10396)
As with all other holies.

(Cherry-picked due to accidentally being reverted by c411eb7)

--------------------------------------------------------------------------------
0772c80a18 | Chris Campbell | 2016-05-16 22:01:09 +0100

Increase the duration of Frostbite's clouds
And allow them to be placed when killing a monster.

--------------------------------------------------------------------------------
09e5b7ec26 | Chris Campbell | 2016-05-16 22:00:54 +0100

Make Firestarter and Frostbite grant immunity to their respective clouds

--------------------------------------------------------------------------------
5852ac448d | Chris Campbell | 2016-05-16 21:46:48 +0100

Update some no_upgrade unrand tags
Since the staff of Olgreb no longer needs them, and also to not reset the
Octopus King trident's pluses if wearing rings.

--------------------------------------------------------------------------------
69b76b5f74 | Chris Campbell | 2016-05-16 21:46:48 +0100

Adjust some unrand names for consistent capitalisation
To generally use "weapontype of Foo" (previously some of the old fixedarts
were "Weapontype of Foo").

--------------------------------------------------------------------------------
f84521bdc6 | Chris Campbell | 2016-05-16 21:46:48 +0100

Double the Octopus King trident bonus enchantment for wearing octorings
A +24 trident that you have to be a zigscumming Octopode to get is probably
still not all that special, but on the incredible off-chance that someone lucks
into the trident and one or two rings in a normal game it'll be slightly more
noticeable perhaps!

--------------------------------------------------------------------------------
415671f809 | Chris Campbell | 2016-05-16 21:46:48 +0100

Don't make the mace of Variability uncurse itself every turn
Why did it do so in the first place? We may never know...

--------------------------------------------------------------------------------
869a31a0d2 | Chris Campbell | 2016-05-16 21:46:48 +0100

Give the Staff of Olgreb a fixed +9 enchantment
Rather than having it depend on poison magic skill (as with the staff of
Wucad Mu - either way its main function is the evokable effect, not the
melee damage).

--------------------------------------------------------------------------------
202a5b1528 | Chris Campbell | 2016-05-16 21:46:48 +0100

Don't make the Sword of Zonguldrok passively animate hostile dead
Just being a reaping weapon makes it special enough, and animating hostile dead
was unexpected in cases where, for example, enough damage was dealt by aux
attacks rather than the reaping brand for the brand not to trigger on kill.
Also don't make it recurse on equip, since with the brand depending on damage
dealt (and with the weapon no longer enforcing a corpseless conduct) it's fine
to allow swapping.

--------------------------------------------------------------------------------
da891697b3 | Chris Campbell | 2016-05-16 21:46:48 +0100

Standardise unrand *Rage to be the same as on randarts
Except for the Wrath of Trog, which keeps its special 50% berserk chance.

--------------------------------------------------------------------------------
de7bbb981a | Chris Campbell | 2016-05-16 21:46:48 +0100

Fix some Ru sacrifice messaging
To correctly display eg "you are frail (-10% HP)" rather than "(-10% hp)".

--------------------------------------------------------------------------------
991ba84f8e | Nicholas Feinberg | 2016-05-16 06:01:42 -0700

Improved self-targetting warnings (minmay, wheals)
Make self-targetted spells use the spell targetter to emit warnings,
rather than using the generic directn warnings. Allows us to be more
selective with when & where we warn; e.g. to warn when
self-targetting meph (we weren't!), but only when we're affected by
it (not with rpois).

--------------------------------------------------------------------------------
616026bce7 | Nicholas Feinberg | 2016-05-16 05:56:19 -0700

Reduce howler monkey band size
They're excessively 'spammy' in practice, if that makes any sense
at all. If four monkeys will do the job, three will do it just as
well.

--------------------------------------------------------------------------------
dac5d9e154 | Nicholas Feinberg | 2016-05-16 05:56:19 -0700

Remove deep elf archers' M_DONT_MELEE
They already have Blink to duck out of melee, and they're plenty
powerful. No need to double up on the "keep this ranged monster
effective" tools.

Plus, it's better to keep M_DONT_MELEE pretty limited in where it
appears, I think.

--------------------------------------------------------------------------------
b0dbc27f6a | Nicholas Feinberg | 2016-05-16 05:56:19 -0700

Mention rDamnation in monster descriptions

--------------------------------------------------------------------------------
240baafc23 | Nicholas Feinberg | 2016-05-16 05:56:19 -0700

Remove hellions' fire res / cold vuln
Since they're pure damnation-mongers, and that's no longer
associated with fire.

--------------------------------------------------------------------------------
c411eb759c | Nicholas Feinberg | 2016-05-16 05:56:19 -0700

Separate monster damnation res from rF

--------------------------------------------------------------------------------
67c28f3362 | Nicholas Feinberg | 2016-05-16 05:56:19 -0700

Tweak Damnation (crossbow)
Drop the resists (which had at best tangential thematic relevance),
buff damage. Focus on what makes the weapon unique.

--------------------------------------------------------------------------------
d3727a7364 | Nicholas Feinberg | 2016-05-16 05:56:19 -0700

Let inner flame explosions burn trees (|amethyst)
They're fireball-like enough in other respects that it seems
consistent.

That being said, we should have a better rule here...

--------------------------------------------------------------------------------
d96bfb211c | Nicholas Feinberg | 2016-05-16 05:56:19 -0700

Don't turn abyssal stairs into stairs
Potentially of the opposite type. Saw someone accidentally exit
the abyss when their down-stair turned into an exit underneath
them (and they didn't notice before hitting >) - the reverse would
also be, er, undesireable.

--------------------------------------------------------------------------------
a28cc828c7 | Chris Campbell | 2016-05-16 18:30:49 +0100

Suppress Vine Stalker MP drain under Pakellas
They still get the bite and apply antimagic, but don't get to drain any MP in
the process.

--------------------------------------------------------------------------------
19a65a6c71 | Chris Campbell | 2016-05-16 18:02:33 +0100

Fix messaging for Deep Dwarves of Pakellas with guardian spirit (nikheizen)

--------------------------------------------------------------------------------
57901fe658 | Chris Campbell | 2016-05-16 18:02:33 +0100

Add a message when finishing a full cast of Searing Ray

--------------------------------------------------------------------------------
5d90fae3ba | Chris Campbell | 2016-05-16 18:02:33 +0100

Don't mark the amulet of harm as evil
It was flavour that wasn't very clear and tended to just confuse players
expecting to be able to wear it under good gods.

--------------------------------------------------------------------------------
eeda2d7a93 | Chris Campbell | 2016-05-16 18:02:33 +0100

Let Shadow Step target invisible monsters
As long as you can see them (being able to see invisible also lets you see
their invisible shadows).

--------------------------------------------------------------------------------
cd3ca0692c | Chris Campbell | 2016-05-16 18:02:33 +0100

Shorten a welcome message
To fit on one line in the message area.

--------------------------------------------------------------------------------
35d9f14248 | Chris Campbell | 2016-05-16 18:02:33 +0100

Reduce Dazzling Spray damage
It remains pretty strong by virtue of hitting multiple targets and applying
blind, and those are more interesting distinguishing features to focus on than
the damage.

--------------------------------------------------------------------------------
60d392fe77 | Chris Campbell | 2016-05-16 18:02:33 +0100

Apply corrosion slaying penalties to unarmed and aux attacks
Since corrosion is otherwise fully uncoupled from actual equipment.

--------------------------------------------------------------------------------
9959661caa | Chris Campbell | 2016-05-16 18:02:33 +0100

Don't make elemental enhancers penalise the opposite element
Elemental schools no longer have anti-training, so it was more of a leftover
extra penalty for these particular enhancer staves.

--------------------------------------------------------------------------------
cbe9199e97 | regret-index | 2016-05-16 07:19:10 -0400

Vaultwork burst (including a few branch ends)
As per usual, balance work for some of the nastiest old vaults, buffs and
depths adjustments to weak later vaults, syntax and intent fix-ups here
and there.

Highlights:
 * crystal_crosses, the Depths encompass: Clean out the lower end and upgrade
   monster sets for its Depths context, introduce more terrain variety through
   holes in the cross grid, regulate stair and portal placement.
 * pleasuredromes, the Depths encompass: Nerf the judicious OOD spam through
   one last attempt at a "custom" monster set by specifically metering out
   normal Depths spawns. Needs more balancework, though.
 * frog_pond, the Lair end: Place down some large walls sectioning off
   halves of the pond, place a few tougher enemies and less of the regular
   frogs / mosquitoes, lower chance of vault placement. Should reduce the
   monotony of the chaotic open layout spilling out a small set of fast
   monsters throughout the level. Even with this, it's still a weak design...
 * snake_end_coiled, the Snake end: Shrink vault mildly, provide a few tiny
   passages of terrain to work with, use more greater naga. Was previously
   still lacking in lethality.
 * the Shoals garden end: Using a pinwheel terrain trick, provide substantially
   more plantage and wall coverage for each vault instead of a few random
   plants and nothing else. The barnacled rune is already very rough without
   arrangements that leave next to no tactical terrain or noise blockage.
 * glass_crypt, the Crypt end: Double the liches (amongst other placement buffs)
   to give more to such a short and simple gimmick branch end vault.
 * elkab, the Crypt end: Likewise, tweak up some of the monsters placed.
 * special_room_mythical_zoo: Nerf earlier incarnations (more wyverns and
   griffins for earlier appearances, no manticores pre-Lair).

--------------------------------------------------------------------------------
21dea9268e | Neil Moore | 2016-05-15 20:42:44 -0400

Add a contributor to credits and mailmap.
[skip ci]

--------------------------------------------------------------------------------
da1d3879e6 | Neil Moore | 2016-05-15 20:13:12 -0400

Checkwhite (chequers)
[skip ci]

--------------------------------------------------------------------------------
e7f0d298c8 | Alex Jurkiewicz | 2016-05-15 23:45:00 +1000

Add silence/antimagic spell vulnerability info to x-v.

--------------------------------------------------------------------------------
96be53bcff | Yer mivvaggah | 2016-05-15 04:06:03 -0400

Words for wordy gods (#267)

--------------------------------------------------------------------------------
daa3923c65 | 4Hooves2Appendages | 2016-05-15 04:05:01 -0400

Makes sheep bleat! (#259)
Adds shout_type S_BLEAT.



Changes sheep to use S_BLEAT.
--------------------------------------------------------------------------------
7a2edd755c | Nicholas Feinberg | 2016-05-14 23:33:26 -0700

Give piety for reflection kills (10362)

--------------------------------------------------------------------------------
f21e63cfcf | Shmuale Mark | 2016-05-15 02:11:04 -0400

Merge pull request #266 from yrmvgh/patch-9
more fun randart strings
--------------------------------------------------------------------------------
43b9a968f1 | Yer mivvaggah | 2016-05-15 02:03:22 -0400

;)

--------------------------------------------------------------------------------
f28c4ee158 | Yer mivvaggah | 2016-05-15 01:59:45 -0400

more fun randart strings
for fun!
--------------------------------------------------------------------------------
bcf97f42b3 | Nicholas Feinberg | 2016-05-14 22:47:30 -0700

Vanish more terrain in Doroklohe lab (10419)

--------------------------------------------------------------------------------
2d69e0cf1e | Yer mivvaggah | 2016-05-15 01:45:26 -0400

more fun randart strings (#265)
for fun!
--------------------------------------------------------------------------------
96da15e77b | Nicholas Feinberg | 2016-05-14 22:30:56 -0700

Fix an 8-year-old typo (fixit_friend)

--------------------------------------------------------------------------------
c472be2167 | Yer mivvaggah | 2016-05-15 01:13:32 -0400

more fun randart strings (#264)
for fun!
--------------------------------------------------------------------------------
2cd376a7b9 | Neil Moore | 2016-05-15 01:10:14 -0400

Don't allow shafting into the johnstein_pakellas_dig box.

--------------------------------------------------------------------------------
d098229e9a | Neil Moore | 2016-05-15 00:57:07 -0400

Make skills purple even if draining is lost in the rounding.

--------------------------------------------------------------------------------
442d26836e | Nicholas Feinberg | 2016-05-14 21:55:34 -0700

Remove a leftover dprf

--------------------------------------------------------------------------------
d3566c2e21 | Nicholas Feinberg | 2016-05-13 17:10:50 -0700

Hush ugly things, slightly
There's no particular reason for them to be ever-so-slightly
louder than other shouting monsters.

--------------------------------------------------------------------------------
bf15d77488 | ontoclasm | 2016-05-13 19:03:25 -0500

Better inventory background tiles

--------------------------------------------------------------------------------
f90ef3e616 | Nicholas Feinberg | 2016-05-13 16:32:56 -0700

Simplify str effects on aux attack damage
Str now has the same effect on aux damage as it does on normal
attacks, rather than using a distinct but nearly identical formula.

Only noticeable effect should be that aux attacks will be slightly
weaker at very low strength; about 7.5% weaker at 5 str, nearly
identical at >=10 str.

--------------------------------------------------------------------------------
c4d165e191 | Nicholas Feinberg | 2016-05-13 11:40:42 -0700

Fix *_near_iterator() invis check (minmay)
Previously, the code would check whether monsters could see
*themselves* when determining whether they should be iterated over,
rather than checking to see if the observer could see them. This
caused surprisingly few issues, most involving ghost moths.

Changes outside act-iter are to handle new errors caused by fixing
the initial bug (most of them also extremely minor), or, in
actor_near_iterator()'s case, to fix a number of now-duplicate
can_see/visible_to() checks. (Mostly in mon-cast.cc.)

--------------------------------------------------------------------------------
674c7a471f | Nicholas Feinberg | 2016-05-12 18:03:27 -0700

Fix delayed_decay for chunks
The game would initialize the chunks to rot after a given time
when the vault was created, so within ~10 turns of the player
seeing the vault, the chunks in it would rot away.

--------------------------------------------------------------------------------
8317a97e6a | Nicholas Feinberg | 2016-05-12 17:18:26 -0700

Note Shadow Step/Invisibility interaction (10412)

--------------------------------------------------------------------------------
295c512924 | Neil Moore | 2016-05-10 23:51:58 -0400

Don't spawn traps that let lava lindwurms escape (minmay)

--------------------------------------------------------------------------------
99403da251 | Nicholas Feinberg | 2016-05-09 18:50:24 -0700

Revert "Refactor some mon-project code"
Until someone has the energy to debug !crashlog zzyzx sprint 3.

This reverts commit ff5f675be8c1cc456f7428e1cde9db40a164cff7.

--------------------------------------------------------------------------------
8fff883b82 | Nicholas Feinberg | 2016-05-09 14:00:03 -0700

Don't crash when a monster hits a wall

--------------------------------------------------------------------------------
36bf979601 | Nicholas Feinberg | 2016-05-09 09:37:54 -0700

Merge pull request #261 from yrmvgh/patch-3
commenting convention: don't comment out code
--------------------------------------------------------------------------------
4a676c3a23 | Nicholas Feinberg | 2016-05-09 09:31:11 -0700

Fix wiz-item staff acq stats, hackily
wiz-item had no idea how to handle rods or unrands being created
by staff acq, since it assumed all results would be OBJ_STAVES.
Better implementation welcomed.

--------------------------------------------------------------------------------
472ad98b5f | Nicholas Feinberg | 2016-05-09 09:31:02 -0700

Don't let IOODs collide via spells (G-Flex)
Force Lance and Gell's Gravitas could both cause things to crash
into IOODs without causing them to go off, which is clearly wrong.
However, there's a huge can of worms involving making them actually
do their thing (if you let shields work, shields of reflection will
cause horrible issues; if you don't, gell's + iood is bizarre secret
tech vs shielded monsters). Simpler to follow the lead of movement
code (which doesn't allow you to move into IOODs) and forbid collisions
entirely.

--------------------------------------------------------------------------------
ff5f675be8 | Nicholas Feinberg | 2016-05-09 09:30:56 -0700

Refactor some mon-project code
GOTO considered extremely annoying

--------------------------------------------------------------------------------
efaa9b3f0d | Nicholas Feinberg | 2016-05-09 09:30:45 -0700

Make the seraph's spells magical (10396)
As with all other holies.

--------------------------------------------------------------------------------
730d8b78a8 | Nicholas Feinberg | 2016-05-09 09:19:04 -0700

Remove a leftover comment
Was meant to apply to the removed "process" param.

--------------------------------------------------------------------------------
d89315a7a3 | Nicholas Feinberg | 2016-05-09 09:14:37 -0700

Add complaining comments

--------------------------------------------------------------------------------
0ae9506c64 | Nicholas Feinberg | 2016-05-09 09:13:50 -0700

Reject invalid colour tags more aggressively
In format strings.

--------------------------------------------------------------------------------
30aae22834 | Nicholas Feinberg | 2016-05-08 22:47:37 -0700

Remove unused formatted_string filtering functions
They were never used, and if they had been, they'd have been buggy
(would reset text colour to grey, etc)

--------------------------------------------------------------------------------
2a74fefbea | Nicholas Feinberg | 2016-05-08 21:06:24 -0700

Some format.cc function comments

--------------------------------------------------------------------------------
4dc4c6e18d | Nicholas Feinberg | 2016-05-08 18:20:16 -0700

Remove an unused parameter & a useless one
Would cause color tags to not be automatically closed in a
format-str, but that was never desireable behavior (and was only
invoked twice). menu.cc had a parameter that would pass that value
through, but it was never used.

--------------------------------------------------------------------------------
63fc75b3f0 | Nicholas Feinberg | 2016-05-08 17:39:28 -0700

Don't crash on <ice> inscriptions (10404)
Or any of our other 'custom colours' (e.g. <unholy>).

Possibly they shouldn't be allowed in tiles, either: they don't
cause crashes, but it might be better for the player's vision if
they did.

--------------------------------------------------------------------------------
06ac6a4844 | Nicholas Feinberg | 2016-05-08 17:06:12 -0700

Remove a lingering Stoneskin ref (10403)
I had a post-tournament commit that would fix this (among other
things), but enough people were reporting it that I might as well
touch this separately.

--------------------------------------------------------------------------------
bb97db97eb | Alan Malloy | 2016-05-08 02:02:43 -0700

chatoic -> chaotic (Doesnt)

--------------------------------------------------------------------------------
300684c125 | Neil Moore | 2016-05-08 00:15:30 -0400

Avoid a few pointless calls to string::c_str.
When we're just going to convert back to a string.

--------------------------------------------------------------------------------
73482a9696 | Neil Moore | 2016-05-08 00:15:30 -0400

Avoid a few more accesses to dead c_strs.

--------------------------------------------------------------------------------
4dc00b14bf | Yer mivvaggah | 2016-05-07 23:45:40 -0400

Update coding_conventions.txt

--------------------------------------------------------------------------------
7e720b08fb | Alan Malloy | 2016-05-07 20:11:01 -0700

Fix some mismanaged string memory
The char* we got was becoming invalid once the string went out
of scope, which was before we called mpr, so we were printing
the contents of memory that we don't have the right to touch.

Discovered by garbage characters being printed in krator44's game.

--------------------------------------------------------------------------------
7cb55d23cc | yrmvgh | 2016-05-07 04:09:40 -0400

commenting convention: don't comment out code
PleasingFungus said something to this effect in IRC, and it seemed a useful 
"rule" to have defined in the coding conventions.
--------------------------------------------------------------------------------
5421d7e817 | Nicholas Feinberg | 2016-05-06 23:57:57 -0700

Update the ? manual listing (10400)
Since the enchantments appendix was moved to ?/T.

--------------------------------------------------------------------------------
e6e6435432 | Shmuale Mark | 2016-05-06 16:17:03 -0400

Correct version number.

--------------------------------------------------------------------------------
ac4885e2a9 | Pekka Lampila | 2016-05-06 16:15:15 -0400

Remind online trunk players about the tournament.
If you run a dgamelaunch crawl server that isn't participating in the
tournament, use: make EXTERNAL_DEFINES=-UTOURNEY

--------------------------------------------------------------------------------
2a84f9de92 | Nicholas Feinberg | 2016-05-06 12:46:36 -0700

Merge pull request #260 from ada482/patch-1
Tightened the 0 bonus/penalty range for STR.
--------------------------------------------------------------------------------
6c060d3771 | Ada482 | 2016-05-06 14:33:19 -0500

Tightened the 0 bonus/penalty range for STR.
STR = 9,10,11 would not pass either if statement, providing no appreciable 
benefit to damage scaling for going from 9 to 11 strength. This was a classic 
inclusive/exclusive range if statement bug.
--------------------------------------------------------------------------------
b8736b8b95 | gammafunk | 2016-05-05 20:16:39 -0500

Update the release and debian guides
In the debian guide, mention editing the deb/conf/distributions file
to add the component, reword the debian instructions for clarity and
use better paths in the command examples.

In the release guide, add referring to the debian guide for making the
Debian changelog update commit before tagging.

--------------------------------------------------------------------------------
9fa930a05f | gammafunk | 2016-05-05 15:38:19 -0500

Update and correct the debian changelog
Add 0.18.1 and 0.17.2, and fix entries that got mangled in 0.18.0.

(cherry picked from commit 2f079536fbf850aae31eb2e14525fb63c38787d9)

--------------------------------------------------------------------------------
1fa3c7daf2 | Nicholas Feinberg | 2016-05-05 08:37:22 -0700

Don't prompt when enemies would burn trees (10398)
aagh

--------------------------------------------------------------------------------
8690a2b252 | Nicholas Feinberg | 2016-05-04 21:02:10 -0700

Fix [scrolls/potions]_used milestones
Broken by 48885bc.

Thanks to chequers for reporting, and to wheals for writing
every line of code in this commit. :P

--------------------------------------------------------------------------------
2c295ea561 | Nicholas Feinberg | 2016-05-04 11:51:17 -0700

Further manual updates (MarvinPA)

--------------------------------------------------------------------------------
ea17314636 | gammafunk | 2016-05-04 13:36:30 -0500

Update the debian changelog for 0.18
Also include the changelog entry for 0.17.1, which hadn't been added at
the time of release.

(cherry picked from commit 7fd734d3f5d814f217c52f57762a39dcf6016e32)

--------------------------------------------------------------------------------
c85460c5c1 | Nicholas Feinberg | 2016-05-04 11:14:08 -0700

Make a tutorial message less missable (gammafunk)

--------------------------------------------------------------------------------
6c9e60b01d | Nicholas Feinberg | 2016-05-04 11:13:58 -0700

Manual updates for 0.18

--------------------------------------------------------------------------------
5fc76d110a | Nicholas Feinberg | 2016-05-04 11:11:34 -0700

Remove support for wizmode wand range tweaking
Bizarre and utterly useless.

--------------------------------------------------------------------------------
21a0e93b4c | Nicholas Feinberg | 2016-05-04 11:11:34 -0700

Final changelog update for 0.18

--------------------------------------------------------------------------------
8dff1f5352 | Nicholas Feinberg | 2016-05-04 09:47:41 -0700

Rephrase Damnation death message
"... with a damnation" -> "... with damnation"; latter reads
slightly better to me. Who can say.

--------------------------------------------------------------------------------
a776ef0264 | Nicholas Feinberg | 2016-05-03 23:29:13 -0700

Document raw_spell_fail()
To prevent future confusion.

whitephoenix (of dcss-sa) notes that it'd probably be simpler to
do something like squaring the failure rate, rather than using a
distribution that requires significant analysis to turn into a %.
Worth considering for future.

--------------------------------------------------------------------------------
d6153c6f32 | Nicholas Feinberg | 2016-05-03 23:01:05 -0700

Prompt for god-hated tree destruction (gammafunk)
Warn before setting trees on fire with Dith, disintegrating them
under Fedhas, etc.

--------------------------------------------------------------------------------
4a0968a77f | Nicholas Feinberg | 2016-05-02 16:59:30 -0700

Reduce jager inv letter mangling (10325)
Might have side effects for other words, but - rarely?

--------------------------------------------------------------------------------
3484356faf | Nicholas Feinberg | 2016-05-02 11:33:45 -0700

Revert "no ghosts in inaccessible areas" (10160)
This reverts commit ebc51a6798fe8416506f1cac7b7b21c665f8a443.

Seems to have caused a steady series of 'ghost at 0,0' bugs over
the last few months. 45c4a0f801db was intended to fix this but
clearly didn't.

I'd be more than happy to see a fixed version appear in 0.19, but
this isn't ready for release.

--------------------------------------------------------------------------------
6972264d8a | Nicholas Feinberg | 2016-05-01 23:19:28 -0700

Fix demonspawn job menu tiles
E.g. in ?/m. (They'd show up as empty sets of clothes before.)

--------------------------------------------------------------------------------
15ddd17f42 | Nicholas Feinberg | 2016-05-01 23:05:53 -0700

Fix idle time tracking (minmay, chequers)
Broken in e88cd6a.

--------------------------------------------------------------------------------
bfd796adb0 | Nicholas Feinberg | 2016-05-01 18:57:00 -0700

Prevent elftwin buffs vs unseen players (Lasty)
The elven twins - Duvessa particularly - shouldn't buff up until
they actually see the player; the player being nearby but invisible
shouldn't count.

--------------------------------------------------------------------------------
0d989fc4e2 | Shmuale Mark | 2016-05-01 21:37:12 -0400

Don't cycle through items out of LOF for apport (#10390).
Ah, back to special cases.

--------------------------------------------------------------------------------
ac859eac9d | Shmuale Mark | 2016-05-01 21:10:24 -0400

Clear last_pickup when purchasing from shops (#10375).

--------------------------------------------------------------------------------
70b2158adf | Chris Campbell | 2016-05-02 00:27:47 +0100

Tweak a mutant beast description

--------------------------------------------------------------------------------
87944234b3 | Nicholas Feinberg | 2016-04-30 23:01:02 -0700

New Frostbite tiles (CanOfWorms)

--------------------------------------------------------------------------------
415f53018a | gammafunk | 2016-04-30 20:11:51 -0500

Record more chunk and nutrition details in the monster objstat table
Record the number of mutagenic chunks per monster as well as the total
nutrition values for carnivores and ghouls.

--------------------------------------------------------------------------------
ae82a2b802 | Nicholas Feinberg | 2016-04-30 11:49:26 -0700

Improve ?/i logic
We shouldn't be aborting early in cases where there's only one
result containing a search term in an item's name, but more results
potentially in items' descriptions. We check for exact matches
elsewhere.

--------------------------------------------------------------------------------
c8806a067b | Nicholas Feinberg | 2016-04-30 10:06:32 -0700

Forbid 66535-headed wizmode hydras (Lightli)

--------------------------------------------------------------------------------
93f5f9255c | Nicholas Feinberg | 2016-04-30 09:54:51 -0700

Fix acquirement book naming (minmay)

--------------------------------------------------------------------------------
670a064fcf | Chris Campbell | 2016-04-30 17:49:12 +0100

Fix Dazzling Spray power cap being incorrectly displayed

--------------------------------------------------------------------------------
c91b278225 | Chris Campbell | 2016-04-30 17:49:12 +0100

Let entropy weavers open doors (#10384)
Closes PR #258.

--------------------------------------------------------------------------------
eec0db1524 | Nicholas Feinberg | 2016-04-30 09:31:32 -0700

Fix shadow fiend tile name (regret-index)
To avoid future confusion, maybe.

--------------------------------------------------------------------------------
1ce5f50abd | Nicholas Feinberg | 2016-04-29 21:00:14 -0700

Glyph compatibility updates
Fixup most of the old-version glyph files so they don't complain
about missing monsters if someone tries to actually use them, and
remove the oldest (0.34) glyph files, since it was more errors
than functionality.

--------------------------------------------------------------------------------
f75ed07f2f | gammafunk | 2016-04-29 22:51:27 -0500

Monster glyphs for version 0.17

--------------------------------------------------------------------------------
9394454310 | Nicholas Feinberg | 2016-04-29 20:42:20 -0700

Finish turning lindwurms red (10381)
Now that fire drakes aren't red, there's a free space, and console
players seem to prefer this?

--------------------------------------------------------------------------------
399511810a | Nicholas Feinberg | 2016-04-29 20:27:25 -0700

Tzitzimitl tile (CanOfWorms)

--------------------------------------------------------------------------------
2b77abf2bd | Neil Moore | 2016-04-29 05:43:24 -0400

Avoid an uninitialized variable warning.
And assert if we really didn't set it.

--------------------------------------------------------------------------------
de8992abcc | Neil Moore | 2016-04-29 05:43:24 -0400

Fix three-argument DEF_BITFIELD for MSVC (svendre)
In MSVC, __VA_ARGS__ as an argument to another macro is treated as a
single macro argument.  Adding another layer of macro expansion allows
it to expand into multiple arguments, which is what we want here.

--------------------------------------------------------------------------------
de87d9832f | Nicholas Feinberg | 2016-04-28 17:52:22 -0700

Tweak some level documentation
Describing an orcish idol as 'does nothing' is slightly misleading.

--------------------------------------------------------------------------------
c67dc5e413 | Nicholas Feinberg | 2016-04-28 12:50:37 -0700

Fix mutant beast 'bat' speed
Was being cached incorrectly.

--------------------------------------------------------------------------------
db95a4ae30 | Nicholas Feinberg | 2016-04-28 12:34:20 -0700

Uphold the sacred 80-Character Law

--------------------------------------------------------------------------------
960a71c239 | Chris Campbell | 2016-04-28 20:32:06 +0100

Tweak box of beast wording

--------------------------------------------------------------------------------
2fb235fc25 | Nicholas Feinberg | 2016-04-28 12:19:01 -0700

Elaborate on the Box of Beast's description
It's possible to get something like this information from ?/m,
but I doubt very many players have or will; better to put it
up-front.

--------------------------------------------------------------------------------
edd18530d7 | Nicholas Feinberg | 2016-04-28 11:57:09 -0700

Let spriggan druids waste time on Fedhasites
Specifically, trying to cast Awaken Forest against Fedhasites. I
had no idea it was even blocked, since they just don't even try to
cast it!

As noted in a comment, we don't handle the "forest awakened on
another level" case correctly either when joining or mollifying
Fedhas. Very edge case...

--------------------------------------------------------------------------------
29dd7cfebc | Nicholas Feinberg | 2016-04-28 11:33:11 -0700

Make allies more careful with nasty spells (10376)
CBL, Glaciate, Tornado & Chain Lightning-casting allies should now
be considerably less likely to murder the player.

Unless they're (non-spectral) pan lords probably from Nemelex,
ha ha ha ha

--------------------------------------------------------------------------------
cdbc998932 | Nicholas Feinberg | 2016-04-28 11:06:58 -0700

Forbid enslaving random pan lords' souls (10376)
Trying to get Enslave Soul to work correctly for a ghost_demon is
probably going to be a technical nightmare; it'd be nice to have
working eventually, but for now let's band-aid it.

--------------------------------------------------------------------------------
7390f6a711 | Nicholas Feinberg | 2016-04-28 11:02:22 -0700

Speciesify the great Pan Lords (10376)
Again, to make enslaving their souls use their own damage etc stats
instead of the generic Pan Lord's.

--------------------------------------------------------------------------------
3ac5e8abc1 | Nicholas Feinberg | 2016-04-28 10:58:30 -0700

Let Hell Lords be their own species (10376)
Their damage (and probably other stats) would otherwise use the
dummy HELL_LORD's values after they're enslaved by Yred.

--------------------------------------------------------------------------------
a5c5ac4b25 | Neil Moore | 2016-04-27 23:22:22 -0400

Mention that gloves cover claws, boots hooves and talons (#10380)

--------------------------------------------------------------------------------
95c60293cb | Nicholas Feinberg | 2016-04-27 10:00:43 -0700

Re-add the Talos playerdoll tile
Until the artefact is fully removed.

--------------------------------------------------------------------------------
57af7d0796 | Neil Moore | 2016-04-27 00:48:29 -0400

Improve acquired =tele (ProzacElf)
Treat it as "truly bad" item like =loudness and "inacc, so that it has
the same 90% chance of becoming a randart.

--------------------------------------------------------------------------------
a72035def2 | Neil Moore | 2016-04-27 00:45:10 -0400

Remove a pointless line (minmay)
Currently we never pick blowguns for acquirement (because we don't
consider SK_THROWING), so this line does nothing.  But if we *did* pick
blowguns, the line would make them even more boring than they otherwise
would be, by not even trying to turn them into randarts.

--------------------------------------------------------------------------------
fba2bb32a6 | Nicholas Feinberg | 2016-04-26 16:43:10 -0700

Remove an incorrect comment
Enslave Soul hasn't had a saving throw since b9ec191e5b, seven
years ago.

--------------------------------------------------------------------------------
3a71842760 | Nicholas Feinberg | 2016-04-26 12:12:06 -0700

Reduce wield message ambiguity (10369, Naruni)
From "It bursts into flame" to "Your +1 falchion of flaming bursts
into flame". Both have their own problems, neither really need to
exist, but we must always beware the flavour cost of removals...

Patch is based on Naruni's submission, with some additional
formatting fixes tucked in.

--------------------------------------------------------------------------------
4d79ab2558 | Nicholas Feinberg | 2016-04-26 12:00:09 -0700

checkwhite & unbrace

--------------------------------------------------------------------------------
8064f645b2 | Chris Campbell | 2016-04-26 17:34:29 +0100

Remove the Talos armour unrand
It wasn't a very interesting concept, and also couldn't ever actually be
acquired due to its base type as a plate armour and the way that acquirement
functions, making it even rarer than other race-specific unrands.

--------------------------------------------------------------------------------
3e993bd8f7 | Jesse Luehrs | 2016-04-26 01:43:59 -0400

avoid "the Serpent of Hell the spectral Serpent of Hell"

--------------------------------------------------------------------------------
3cf032851f | Jesse Luehrs | 2016-04-26 01:10:42 -0400

give zombified serpents of hell multiple heads too

--------------------------------------------------------------------------------
4ed6cac5aa | Jesse Luehrs | 2016-04-26 01:03:01 -0400

use the base type for serpent of hell breaths
to handle enslave-soul-ed serpents of hell

--------------------------------------------------------------------------------
8ab820f8c4 | Shmuale Mark | 2016-04-24 22:27:11 -0400

Fix typo.

--------------------------------------------------------------------------------
0930707038 | Nicholas Feinberg | 2016-04-24 11:02:10 -0700

Halve pubby_orc_utopia's weight
It ended up placing about 30-40% more frequently than other maps,
because (as an encompass) it can't be vetoed. It's also an
unusually XP-dense ending; can stand to show up a little less
often.

--------------------------------------------------------------------------------
e65acefaa9 | Nicholas Feinberg | 2016-04-24 10:05:04 -0700

Changelog fixes
Merged two redundant entries, and fixed a math error. (rElec is
a 'boolean resist', which means it provides more damage reduction
than a 'normal' resistance (rC, rF) of the same level.

--------------------------------------------------------------------------------
76aef2b9e1 | Chris Campbell | 2016-04-24 16:34:45 +0100

Typo fix

--------------------------------------------------------------------------------
fc652ffcd3 | Corin Buchanan-Howland | 2016-04-24 09:22:36 -0400

Update changelog

--------------------------------------------------------------------------------
dc7a371e4e | Nicholas Feinberg | 2016-04-22 23:12:46 -0700

Don't log deaths of vault-named allies (rchandra)
"10172 | Ossuary  | Your ally decayed died"

--------------------------------------------------------------------------------
6250cb2454 | Alan Malloy | 2016-04-22 12:44:32 -0700

Make cmut ignore temp muts, instead of curing nothing (Undo)

--------------------------------------------------------------------------------
441868c839 | Chris Campbell | 2016-04-22 11:38:01 +0100

De-apostrophise a description

--------------------------------------------------------------------------------
c18daef7b9 | Shmuale Mark | 2016-04-21 20:31:55 -0400

Remove Hive.

--------------------------------------------------------------------------------
b5bbf13917 | Nicholas Feinberg | 2016-04-21 16:42:15 -0700

Mention autofight in the quickstart
Start those bad habits early!

--------------------------------------------------------------------------------
a56a929296 | Nicholas Feinberg | 2016-04-21 16:39:59 -0700

Update quickstart.txt and arena.txt
Quite something...

--------------------------------------------------------------------------------
139b600141 | Nicholas Feinberg | 2016-04-21 10:05:27 -0700

Reflavor some book descriptions
Some rewritten version of old jokes & descriptions, some new ideas.

--------------------------------------------------------------------------------
3b92f7b479 | Chris Campbell | 2016-04-21 16:06:15 +0100

Fix spelling

--------------------------------------------------------------------------------
362e38b6ca | Nicholas Feinberg | 2016-04-20 22:05:11 -0700

De-spoilerify a vault (minmay)
kennysheep_blocky_room could, rarely, have a hidden interior,
which didn't seem intended.

--------------------------------------------------------------------------------
880dd4869c | Nicholas Feinberg | 2016-04-20 21:55:37 -0700

Book of Hinderance -> Misfortune (nicolae-)
So that the book's name would once again suit its contents.

--------------------------------------------------------------------------------
1042b8806e | Nicholas Feinberg | 2016-04-20 21:35:17 -0700

Remove an overly-gimmicky vault
metal_show has been the cause of countless bug reports over the
years, mainly because it places a totally random assortment of
uniques way out of any reasonable depth. It's a complete triumph
of theme over gameplay, except that it's not really a recognizable
theme in-game, so...

--------------------------------------------------------------------------------
beff17fe7e | Nicholas Feinberg | 2016-04-20 18:46:02 -0700

Changelog through 0.18-a0-1788-g92de1ac

--------------------------------------------------------------------------------
92de1acf7b | Shmuale Mark | 2016-04-18 22:19:42 -0400

Try to fix do_commands
Make invisible_targeting work and flush the input buffer.



Maybe this will help with tab slowdowns. Who knows!
--------------------------------------------------------------------------------
69b0dfd271 | Nicholas Feinberg | 2016-04-18 17:26:01 -0700

Simplify (amalloy)
Got a little carried away there...

--------------------------------------------------------------------------------
96b6fb6e8e | Nicholas Feinberg | 2016-04-18 17:25:26 -0700

Remove make_book_theme_randart() refs (amalloy)
That function no longer exists!

This changes a prop, but that prop is only used during item gen,
so save compat shouldn't be an issue.

--------------------------------------------------------------------------------
1c24a7a423 | Nicholas Feinberg | 2016-04-18 17:22:10 -0700

Tweak randbook naming (amalloy)
If a two-school book is generated with only spells from one school,
don't name it as if it still had both schools.

Not a super fan of this logic, but it could be worse.

--------------------------------------------------------------------------------
a939a6871a | Corin Buchanan-Howland | 2016-04-17 12:52:39 -0400

Nerf rElec to the same level as other resists (crate)
rElec is a single-level resistance, but that single level counted as if the
player had rElec++. This made electricity-using threats trivial when faced
with rElec.

--------------------------------------------------------------------------------
dbab4ee685 | Corin Buchanan-Howland | 2016-04-17 12:00:06 -0400

Remove launcher ammo brands
Removing all ammo brands for sling bullets, bolts, and arrows from the game.
Having all these brands allowed players to stack launcher and ammo brands
(for certain launcher brands) getting extreme bonuses; it also meant inventory
bloat. This should be a deserved nerf to launcher combat while also removing
one of the main inventory bloat pain points.

One abyss vault with distortion centaurs was removed in this patch. Nessos
retains his dual-branded shenanigans, but does not drop poisoned arrows.
Off-brand ammo shops have been impacted but not removed.

--------------------------------------------------------------------------------
b76a692ab7 | Corin Buchanan-Howland | 2016-04-16 22:35:16 -0400

Remove power cap on Lugonu Banish
The old Lugonu Banish ability hit a power cap at 10.5 Invocations skill. This
changes the ability to use a flat scaling with no cap. The ability is harder
to invoke at low Invo, but has higher base power. Each level of Invo increases
the power by 3, up to a maximum of 149 power at Invo 27.

This change should make Banish slightly worse at 0 Invo, relatively similar
from 1 to 11 Invo, and somewhat better at 11-27 Invo. Banish didn't need
a buff, but it was either this or document that the power caps at 10.5 Invo,
and of the two options, this one seemed better.

--------------------------------------------------------------------------------
663d63a8bd | Nicholas Feinberg | 2016-04-16 11:52:53 -0700

Slow Iron Giants down a bit
They're the deadliest monster in every area they appear, both in
Depths and all of Hells. This includes Dis specifically, which is
*already* the nastiest hell. It's excessive!

Reduce their speed to 8 to start; they're ranged enemies still, so
this shouldn't be a problem. (It's also nice to have some slow
enemies, for variety.) Possibly their bands should also be adjusted,
especially in Dis.

--------------------------------------------------------------------------------
189a03f8ae | Chris Campbell | 2016-04-16 17:37:38 +0100

Spawn ballistos from Fedhas spore trails as neutral
For consistency with those generated from the spore explosion (9308ca9).

--------------------------------------------------------------------------------
ceebfd7aa3 | Chris Campbell | 2016-04-16 12:17:09 +0100

Update lugonu_bribe
Fedhas no longer dislikes Sublimation, and ugly things can now have zombies.

--------------------------------------------------------------------------------
adce9fa927 | Nicholas Feinberg | 2016-04-15 17:47:12 -0700

Remove some equivocation from descriptions

--------------------------------------------------------------------------------
327e37a9ac | Chris Campbell | 2016-04-16 01:33:16 +0100

Improve robe of Night description (PleasingFungus)

--------------------------------------------------------------------------------
f4084f6624 | Chris Campbell | 2016-04-16 00:14:07 +0100

Remove some obsolete curse removal handling
Since there are no longer any sources of curse removal other than intentionally
using ?rc (other than ones requiring you to worship a weapon-blessing god),
Ashenzari no longer needs special handling to preserve curses.

--------------------------------------------------------------------------------
6fa2627733 | Chris Campbell | 2016-04-16 00:13:53 +0100

Don't make enchant weapon/armour scrolls remove curses
There's no particular reason for them to do that in addition to their primary
effect of increasing enchantment, other than the fact that that's how
enchanting items tends to work in other roguelikes. It just makes them
unnecessarily do an extra thing, when there's already a dedicated scroll for
curse removal.

--------------------------------------------------------------------------------
ce1f7b62af | Nicholas Feinberg | 2016-04-14 18:54:33 -0700

Fix an arenasprint typo (10361)
oops...

--------------------------------------------------------------------------------
ec4f98e798 | Alan Malloy | 2016-04-13 13:29:36 -0700

Improve Ru overflow vault (zigs)
In https://www.reddit.com/r/dcss/comments/4eezhj it's pointed out that
if you follow TSO this Ru altar vault is a real hassle, because a
permanently-blind humanoid will chase you around and you're not allowed
to fight back. This commit makes sure that only animals are ever
generated blind here.

--------------------------------------------------------------------------------
ce6d5cfd8b | Shmuale Mark | 2016-04-13 15:00:56 -0400

Move cannibalism-hatred to data.

--------------------------------------------------------------------------------
d1bee36227 | Shmuale Mark | 2016-04-13 15:00:56 -0400

Remove unused verbose parameters.

--------------------------------------------------------------------------------
ac6d7b85e5 | Shmuale Mark | 2016-04-13 15:00:56 -0400

Move god dislike descriptions into data.

--------------------------------------------------------------------------------
2df596f71d | Shmuale Mark | 2016-04-13 15:00:56 -0400

Move god like descriptions into data.

--------------------------------------------------------------------------------
4279c04f24 | Nicholas Feinberg | 2016-04-13 10:55:13 -0700

Finish moving action type enums
oops...

--------------------------------------------------------------------------------
8e661cf190 | Nicholas Feinberg | 2016-04-13 10:52:13 -0700

Use an enum for special block types

--------------------------------------------------------------------------------
48885bca65 | Nicholas Feinberg | 2016-04-13 10:33:10 -0700

Don't claim to evoke hammers (WorldFamousW)
Wand/rod/deck evocations were being stored as club/whip/hammer (!)
evocations, respectively, for action count purposes. (For character
dumps.)

--------------------------------------------------------------------------------
62c9655881 | Nicholas Feinberg | 2016-04-13 10:33:10 -0700

Move count_action out of player.cc
It has no particular relation to player functions, and it makes
testing changes a real PITA.

--------------------------------------------------------------------------------
f4ddf0b6dc | Alan Malloy | 2016-04-12 19:41:39 -0700

They're ziggurats, not zigguarats (namelastname112)

--------------------------------------------------------------------------------
7aac3cfdd9 | Shmuale Mark | 2016-04-12 19:44:11 -0400

Fix autofight if you remap keys (#5634).

--------------------------------------------------------------------------------
2ad91c3386 | Chris Campbell | 2016-04-13 00:29:08 +0100

Item desc tweaks (PleasingFungus)

--------------------------------------------------------------------------------
01f3dad9f2 | Chris Campbell | 2016-04-12 23:52:42 +0100

Reword item descriptions
For more consistent style ("An item that does..." rather than "This item...").
Also consistently use en dashes, shorten some overly flowery descriptions,
and update out-of-date entries.

--------------------------------------------------------------------------------
bb86350347 | Nicholas Feinberg | 2016-04-12 14:50:55 -0700

New vault checkwhite.

--------------------------------------------------------------------------------
46a37a9a82 | Nicholas Feinberg | 2016-04-12 13:25:30 -0700

Rewrite Pak gifting
Mostly for aesthetics, but will also prevent Pak worshippers with
Sacrifice Love (!) from ever being gifted /enslave.

--------------------------------------------------------------------------------
e8d13878da | Chris Campbell | 2016-04-12 13:25:04 -0700

Rework Pakellas gifting
Pakellas gifts had some of the worst problems of gifting gods generally, since
the items gifted were already a large range of very strong items, with the
very best of those (hasting, heal wounds, multiple powerful rods, etc) becoming
increasingly likely to be gifted over time.

Instead of continuing to gift evokables indefinitely, make Pakellas grant a
small, fixed number of gifts with increasing piety. Each piety level picks a
random gift from one of a number of item pools (low-level wands, charge-based
evokers, XP evokers, etc), with acquirement-like behaviour to aim for
unidentified item types.

This should grant worshippers more than enough guaranteed access to a range
of powerful evokers to use with Pakellas's powers, while hopefully making
randomly generated evokables more relevant and maybe encouraging use of
acquirement to get hold of more.

--------------------------------------------------------------------------------
ffad21409c | Nicholas Feinberg | 2016-04-12 11:29:58 -0700

Prompt on Yara's self-target (Piginabag)

--------------------------------------------------------------------------------
1f6b1ac4cc | Chris Campbell | 2016-04-12 19:28:38 +0100

Don't allow worshipping Pakellas with sacrifice artifice

--------------------------------------------------------------------------------
bd336e967c | Nicholas Feinberg | 2016-04-12 10:35:48 -0700

Wind Blast cast message tweak (10358)
As the issue notes, we generally use 'summoning' to indicate
the creation of temporary monsters, whereas 'conjuration' refers
to the creation of projectiles & forces. We don't *need* to stick
to that religiously, but there's no advantage to doing otherwise
in Sojobo's case.

--------------------------------------------------------------------------------
e0765f69d7 | Nicholas Feinberg | 2016-04-12 10:35:08 -0700

New Howler Monkey tile (CanOfWorms)
🐒

--------------------------------------------------------------------------------
a9cdad3f3f | Chris Campbell | 2016-04-12 16:10:41 +0100

Fix casting messages for some blinking monsters
Blink was a case where it seems to be intentional for there to be no cast
message (just "The monster blinks!"), at least for monsters with it as an
innate (magical) ability. Caused by 8dbe2adbe - if there are any other similar
cases those are probably broken too.

--------------------------------------------------------------------------------
7b59e41fd6 | Chris Campbell | 2016-04-12 16:10:41 +0100

Use a monster shape check in a few more places

--------------------------------------------------------------------------------
e26d0f7f77 | Chris Campbell | 2016-04-12 16:10:29 +0100

Don't give alligators a hidden cooldown on casting sprint
And reduce their casting weight for it a bit. The swiftness duration appears to
last for long enough that the cooldown isn't likely to have often been
relevant anyway.

--------------------------------------------------------------------------------
0357875c9f | Chris Campbell | 2016-04-12 15:29:28 +0100

Adjust wording for Abyss exit messages
To de-anthropomorphise the Abyss again!

--------------------------------------------------------------------------------
0bbe7b463c | Chris Campbell | 2016-04-12 15:29:28 +0100

Adjust some arenasprint monster sets
Remove a couple of gimmick sets whose gimmicks no longer function (deep elf
mages no longer have animate dead), and adjust the Pan lord sets a bit to not
try to be a direct (out-of-date) copy of the real Pan monster sets. Also
clean up some syntax in zigsprint.

The deep elf mage gimmick could maybe work in later rounds with death mages
instead, with the additional fun of lost souls everywhere.

--------------------------------------------------------------------------------
7377c1480e | Shmuale Mark | 2016-04-12 09:01:18 -0400

Don't crash when making a log of tentacle aux attacks (#10357).
The second argument of ASSERT_RANGE is exclusive.

--------------------------------------------------------------------------------
18c4181edb | Shmuale Mark | 2016-04-11 19:15:59 -0400

Cleanup code (|amethyst).
Fixes issues with types of negative values.

--------------------------------------------------------------------------------
fa5983245a | olowin | 2016-04-10 21:44:18 -0400

Count defensive actions.
Encoding of action counts is redone to make it backward compatible.

--------------------------------------------------------------------------------
ffa9a88f7d | Shmuale Mark | 2016-04-10 20:51:59 -0400

Prevent a crash if Kiku corpse drop created an orc corpse.

--------------------------------------------------------------------------------
1a88f8d3f0 | Nicholas Feinberg | 2016-04-10 16:46:43 -0700

Let ignite blood burn pre-bloodied tiles (10327)
No reason it shouldn't.

--------------------------------------------------------------------------------
d2ae9817e7 | regret-index | 2016-04-10 19:30:37 -0400

Vaults by kennysheep, Skrybe (#10326, #10332)
A new ossuary, a slug dart ambush and a slug dart altar, two simple decorative
arrival vaults, and a pair of Crypt minivaults abusing deep troll shamans
aiding derived undead trolls.

--------------------------------------------------------------------------------
9c0ac98a54 | Nicholas Feinberg | 2016-04-10 15:43:41 -0700

Make mons vamp drain not heal from summons (10321)

--------------------------------------------------------------------------------
f3912b871b | Nicholas Feinberg | 2016-04-10 15:41:17 -0700

Monster vamp drain fixes (7587)
They shouldn't be casting it on gargoyles, and it shouldn't work
if they do.

Also remove a redundant check from player vamp drain.

--------------------------------------------------------------------------------
905863d186 | Nicholas Feinberg | 2016-04-10 15:23:36 -0700

Remove a now-unused mut field

--------------------------------------------------------------------------------
3ac35cc270 | Nicholas Feinberg | 2016-04-10 15:12:35 -0700

Improve sacrifice descriptions further (10337)
Include the effects of variable sacrifices (e.g. slow heal 2) in
in the ability prompt.

--------------------------------------------------------------------------------
2013f79d3e | Nicholas Feinberg | 2016-04-10 15:03:52 -0700

Automatically generate sacrifice descriptions

--------------------------------------------------------------------------------
d6c99dd7ac | Nicholas Feinberg | 2016-04-10 14:09:15 -0700

Fix a copy-paste error (wheals)

--------------------------------------------------------------------------------
770c5b899d | Nicholas Feinberg | 2016-04-10 14:05:38 -0700

Formatting tweak

--------------------------------------------------------------------------------
5e55f6385c | Nicholas Feinberg | 2016-04-10 13:50:59 -0700

Fix a hiscores crash (10340)
The game would crash whenever a 'death of stupidity' from a
removed race was loaded, since they're neither unbreathing nor
unbreathing.

--------------------------------------------------------------------------------
d6a56e45dc | Nicholas Feinberg | 2016-04-10 13:24:21 -0700

Make a note about another exploding ammo bug
Firing exploding ammo with portal projectile can hit allies
without a prompt or warning. code quality is real

--------------------------------------------------------------------------------
e643d41365 | Nicholas Feinberg | 2016-04-10 13:21:36 -0700

Remove legacy unknown-ammo-type code (10347)
Pointless, since all ammo & wielded weapons are auto-ID'd, and
caused bugs with exploding ammo that I had no real interest in
chasing down further.

--------------------------------------------------------------------------------
6ec86850e9 | Nicholas Feinberg | 2016-04-10 13:04:24 -0700

Improve some rather useless debug messages
"Alerting something" indeed...

--------------------------------------------------------------------------------
08f49a8b86 | Nicholas Feinberg | 2016-04-09 20:17:01 -0700

Simplify pool fixup
Remove the depth dependency, since it doesn't seem to have a strong
justification, and streamline the code a bit. Also fix a potential
bug arising from setting grd() directly in some cases.

--------------------------------------------------------------------------------
73f052331d | Nicholas Feinberg | 2016-04-09 19:57:20 -0700

Remove a teleport closet (patheticliltramp)
It was possible to get trapped in the little side areas of
lemuel_castle, especially the right one, by teleporting/shafting/
taking an escape hatch. (The report was of the latter.) This should
fix that, hopefully without causing too many more placement issues?

--------------------------------------------------------------------------------
8b7078908a | Nicholas Feinberg | 2016-04-09 18:09:35 -0700

Fix another reversed expose_to_elements (wheals)

--------------------------------------------------------------------------------
e6479fd415 | Nicholas Feinberg | 2016-04-09 17:45:04 -0700

Fix staff of fire armour-melting (MarvinPA)
It was being applied (a) when the *player* attacked and (b)
regardless of whether the staff's fire damage triggered.

--------------------------------------------------------------------------------
7ae74ef33b | Nicholas Feinberg | 2016-04-09 14:35:30 -0700

Formatting

--------------------------------------------------------------------------------
a28289d5d2 | Nicholas Feinberg | 2016-04-09 14:35:09 -0700

Merge pull request #251 from rawlins/qazlal_fixes
fix for expose_to_element not being called properly (10293)
--------------------------------------------------------------------------------
ebd35730d2 | Nicholas Feinberg | 2016-04-09 14:12:04 -0700

Hack: de-decapitate detected hydras
They showed up as 1-headed, which seemed sad. Push them up to
a modest 4.

--------------------------------------------------------------------------------
db2f1547e7 | advil | 2016-04-09 17:01:35 -0400

Fix melting from staves, also a Ru buglet (zackoid)
apply_staff_damage is called for both players and monsters.

--------------------------------------------------------------------------------
9e5ec5d9ef | advil | 2016-04-09 17:01:24 -0400

fix expose_to_element not being called properly (10293)
This will cause Qazlal elemental adaptations to trigger properly on
spells, by adding a call to expose_to_element to beam.cc.  It also
adds calls to expose_to_element for electric brands, static discharge,
and ignite poison.  It also makes expose_to_element be called only
after damage, per Grunt.

This also eliminates the call to melt player enchantments from
expose_to_element: maybe_melt_player_enchantments takes a damage
argument and expose_to_element wasn't supplying that.

This then adds melting proportional to damage for lava, brands, clouds,
ignition, sticky flame (later turns).

--------------------------------------------------------------------------------
7fe0ee74e7 | Nicholas Feinberg | 2016-04-09 13:45:56 -0700

Detect monsters: use genus, not glyph
Should fix a variety of issues, e.g. tmons showing up as ?s and
classed dracs showing up as a set of clothes with no body. Also,
glyphs should not interact with tiles.

--------------------------------------------------------------------------------
c4d1f22a44 | regret-index | 2016-04-08 23:29:43 -0400

Alter Salamander Stormcaller spells, tweak their D placement.
Sticky Flame Range is cut from their spellsets, and the Fire Storm charge
chance is marginally increased. Possessing more than one spell on a monster
defined by a big and fancy and unreliable spell such as that triple seperate
casts to charge up a very early Fire Storm seems distracting for the monster's
actions and in terms of its design - which is already precarious, as it is
stuck on a very unreliable impending (now slightly better) timer of a chance
to cast big conjurations. Sticky Flame is also... not exactly the strongest
of effects by even late D relative to the AF_FIRE and that storm.

The OOD range for Stormcallers is also expanded a bit and weighted down
a bit in return, to permit a wider range of levels and vaults to actually
access and spawn their slim out-of-depth part of the large D out-of-depth
monster list.

--------------------------------------------------------------------------------
8df8b1a21d | regret-index | 2016-04-08 15:49:56 -0400

Change giant eyeball speed / gaze, grant random band, randomly spawn again
Giant eyeballs are interesting because they are extremely focused in their
support: an irresistable paralysis that merely needs line of sight, set on an
otherwise-harmless, fragile, slow monster. However, their intended design as
universal high priority dwindles away against luring tactics, due to their low
speed, and they couldn't rely on company to threaten with when set to spawn
normally in D or Depths or Slime. As such, they entered an awkward purgatory,
seen rarely in unusual vaults or amongst more common eyes with the sprasely
used Summon Eyeballs spell.

These factors are now addressed in several ways. Giant eyeballs are now normal
speed, but the paralysis gaze now uses the sputtercast mechanic (from orb
spiders and salamander stormcallers), requiring three casts to full charge and
paralyze a target (here thus a rough 40% chance to be paralyzed once in 60 aut
in LOS, as opposed to 75% in 66 aut). Alongside the instanteous nature of the
gaze spells, this allows them to follow along with other monsters (and removes
the chance of a giant eyeball's speed versus one's one colliding into instant
paralysis). This is paired with a granted singular RANDOM_MOBILE_MONSTER band
(also provided to eyes of draining), to guarantees a little company to support
with and be supported for that slow but persistant gaze charge. Finally, they
get an HD buff to reduce the chance of monsters blasting through them to get
to the player.

With the sum of these changes hopefully making them less abusable monsters,
these giant eyeballs are re-introduced into the Depths and Slime floor spawn
sets (at pretty low weights). Both branches demonstrate the functionality of
fragile support threats, with boggarts and giant orange brains, and it should
be a fresh new opportunity to assess these retooled eyeballs alongside stone
giants or acid blobs.

--------------------------------------------------------------------------------
5698af2b4e | Neil Moore | 2016-04-08 01:40:28 -0400

Fix a bad comment copy-paste.
[skip ci]

--------------------------------------------------------------------------------
40ea4b6dfd | Nicholas Feinberg | 2016-04-06 21:19:44 -0700

Remove a few silly acquirement restrictions
It's fine to have an inacc amulet named after Oka, or a ring of
fire named after Trog, God of Fiery Rage.

--------------------------------------------------------------------------------
a70062998c | Nicholas Feinberg | 2016-04-06 21:18:02 -0700

Fix a rare acquirement crash
Vaults that specify acquirement from specific gods (currently only
two TSO acquirement vaults exist) could generate items of
subtypes that gods aren't really supposed to gift (tso gifting
a stealth ring, specifically, which isn't very chivalric),
which would then trigger an assert and crash.

Possibly support for acquirement from specific gods should just
be removed, but until then...

--------------------------------------------------------------------------------
d4e4476eb6 | regret-index | 2016-04-07 00:11:13 -0400

Fix compiliation (travis)
accursed Austrailian English

--------------------------------------------------------------------------------
d56a68c11a | regret-index | 2016-04-06 21:59:14 -0400

Unrandomize lich spells
The randomized lich spellsets, set-up to replace somewhat arbitrary previous
scattered arrangements of conjurations and hexes and buffs and Greater Demons,
don't really seem to work. Crawl's UI and expected player memory for multiple
spell sets on a monster are already weak enough without high randomization on
a top threat present in all three-rune games to have a very large invisible
list of potential spells with invisible, rather complex construction rules.
The end results also weren't very interesting in their melange, as not being
able to predict a bunch of their spells individually until they're cast limits
approaching each lich.

The new fixed sets here follow some vaguely-consistent rules while emphasizing
the highlights of the lich spell sets and carrying over some (but not all) of
the newer spells from the randomization. Every lich now has an elemental bolt,
a single-target (partially) irresistable conjuration, a hex, and either
Invisibility plus Summon Greater Demon or Haste. The Haste sets have the more
threatening conjurations and hexes attached to compensate for the absence of
greater demons, and there's little spell overlap across the sets overall.
This should preserve high randomization results while permit identifying and
adapting to given incoming spells, while keepingsome top spells prominent
enough.

 * Bolt of Fire, Poison Arrow, Summon Greater Demon, Confuse, Invisibility
 * Bolt of Cold, Force Lance, Summon Greater Demon, Slow, Invisibility
 * Lightning Bolt, Orb of Destruction, Petrify, Haste
 * Corrosive Bolt, Lehudib's Crystal Spear, Paralyse, Haste
 * Bolt of Draining, Iron Shot, Haunt, Banishment, Haste

--------------------------------------------------------------------------------
707879d98f | Alan Malloy | 2016-04-06 15:43:10 -0700

Mention in local tiles that "A!" shows vampire status (RoGGa)

--------------------------------------------------------------------------------
50a528e987 | Nicholas Feinberg | 2016-04-06 13:56:24 -0700

Improve a rare message (Hurricos)
Reduce verbosity & clunky wording.

--------------------------------------------------------------------------------
5661db0bc7 | Chris Campbell | 2016-04-06 21:33:37 +0100

Allow passing out due to hunger under DDoor
DDoor is intended to prevent actual death by starvation, but shouldn't block
the paralysis from fainting. This is a Very Important Interaction.

--------------------------------------------------------------------------------
178178d0af | Chris Campbell | 2016-04-06 20:55:35 +0100

Don't let fleeing monsters zap rods or wands
They would previously zap and continue fleeing as they did so, due to
make_mons_stop_fleeing being weird and not working properly. Monsters now
generally don't interrupt fleeing to use other ranged attacks, so apply that
to wands and rods too (make_mons_stop_fleeing remains weird and probably broken
in the other places that it's used, though).

--------------------------------------------------------------------------------
8dbe2adbe3 | Chris Campbell | 2016-04-06 20:45:48 +0100

Merge MON_SPELL_DEMONIC into MON_SPELL_MAGICAL
Since they were functionally identical (spells that ignore silence, but are
affected by antimagic).

--------------------------------------------------------------------------------
c5b58525cc | Chris Campbell | 2016-04-06 20:38:18 +0100

Improve a check for humanoid monster shapes
Possibly could still be clearer/better named, but should be an improvement
over checking the enum range in a bunch of places.

--------------------------------------------------------------------------------
9eca714f41 | Nicholas Feinberg | 2016-04-06 11:46:38 -0700

Deduplicate common test code

--------------------------------------------------------------------------------
f44ca60724 | Nicholas Feinberg | 2016-04-06 11:30:41 -0700

Validate xom events

--------------------------------------------------------------------------------
5fcf3e27cc | Nicholas Feinberg | 2016-04-06 11:24:58 -0700

Properly report non-lua tests

--------------------------------------------------------------------------------
6d2e7c1f8d | Nicholas Feinberg | 2016-04-06 09:11:27 -0700

Move a xom IFDEF
Would cause the game to fail to compile if WIZARD was disabled,
probably.

--------------------------------------------------------------------------------
762f1eb6ea | Nicholas Feinberg | 2016-04-05 21:37:30 -0700

oops (regret-index)

--------------------------------------------------------------------------------
35804c312b | Nicholas Feinberg | 2016-04-05 21:30:54 -0700

Changelog through 0.18-a0-1702-gd20c6a5

--------------------------------------------------------------------------------
d20c6a538e | Chris Campbell | 2016-04-05 22:11:39 +0100

Don't allow dispelling permahaste from Gozag wrath

--------------------------------------------------------------------------------
a4c2e42ecf | Alex Jurkiewicz | 2016-04-05 21:12:57 +0100

Rework Gozag incite.
Currently you can avoid most Gozag wrath by walking backwards whenever
an enemy is incited. This changes makes the buffs permanent and removes
the relatively weak effect of might.

Incited monsters get an 'incited by Gozag' enchantment indicator so the
player can tell what's up.

Now, spellcasters are hasted and everything else gets berserked.

--------------------------------------------------------------------------------
a3aef145d4 | Chris Campbell | 2016-04-05 21:11:10 +0100

Split monster and player swiftness into separate spells
They're functionally different enough, and it's very misleading to give them
the same description claiming that there's a period of slow movement on expiry,
which isn't the case for the monster version.

--------------------------------------------------------------------------------
3bc9a56d02 | Nicholas Feinberg | 2016-04-05 12:00:23 -0700

Clean up the xom_acts() function signature
Very confusing to have the combination of overloading and
rearranged arguments.

--------------------------------------------------------------------------------
9d1d737e7f | Nicholas Feinberg | 2016-04-05 12:00:22 -0700

Export frombool()

--------------------------------------------------------------------------------
1c74cf014b | Neil Moore | 2016-04-05 14:26:34 -0400

Fix warnings.
One of which appeared only when building without fulldebug.

--------------------------------------------------------------------------------
2ee6c69521 | Nicholas Feinberg | 2016-04-05 11:02:38 -0700

Allow use of zigfigs under sac artifice
Not an intended or meaningful restriction of the sacrifice.

--------------------------------------------------------------------------------
9b5a2163f8 | regret-index | 2016-04-05 12:33:49 -0400

Alter draconian caller spells
Did you know Summon Drakes can summon 10% of the time a variety of standard
dragons? This is, of course, an unusual and awkward arrangement: outside of
this, the spell in question is mostly a flood of space-filling monsters as
encountered in Zot. The best it gets is a ally-unfriendly proxy use of
miasma mixed with noxious clouds, though swamp and death drakes.

Instead of letting draconian callers rarely get some dragons through such a
spell, the dragons are cut from the spell and replaced with lindwurms (well,
"drakes" does seem to include komodo dragons already). They also directly get
access to the stronger, equally thematic and rare employment of the Summon
Dragon monster spell. Not at too often a frequency (cutting into their summon
drake frequency, actually), but enough to see the occasional iron dragon -
a bit of a buff.

Draconian classes are kind of bloated relative to their combination nature,
with some awkward roles and conjurations overlap. The old support-focused
design is unusual for a late-game summoner, but I'm not sure what else should
be done with callers. Probably not giving them summon draconians as the
unused code removed here possibly supports.

--------------------------------------------------------------------------------
9f731c21fb | Neil Moore | 2016-04-05 01:55:37 -0400

Fix indentation.

--------------------------------------------------------------------------------
bb391d9867 | Nicholas Feinberg | 2016-04-04 22:17:44 -0700

Weaken wild/subdued magic
A single level of a 3-level mut had an enormous impact on a
a character - increasing spellpower by 50%, or decreasing it by
33%, is really huge! The change in spell failure chance mitigated
this to a certain extent, but not enough.

This reduces the effects to about 3/5ths of what they were before;
each level of wild magic now increases spellpower by 30%, and
subdued magic now reduces it by 20%. The effects on spell failure
were scaled similarly, with subdued magic's effects on spell
failure being reduced even further, to reinforce its status as a
Bad Mut.

--------------------------------------------------------------------------------
516f9e99d4 | Nicholas Feinberg | 2016-04-04 20:24:53 -0700

Allow requesting specific xom actions in wizmode
So that testing is possible without going through ridiculous
contortions.

--------------------------------------------------------------------------------
b839814a22 | Nicholas Feinberg | 2016-04-04 20:24:53 -0700

Deduplicate _xom_effect_to_name()
And fix some types.

--------------------------------------------------------------------------------
923927f4bf | Nicholas Feinberg | 2016-04-04 20:24:52 -0700

Rewrite xom actions
First choose an action, then take it.

Should have relatively limited impacts on gameplay; the odds of
xom actions will change somewhat.

--------------------------------------------------------------------------------
473dde0e1c | Chris Campbell | 2016-04-04 20:06:38 +0100

Make the deterioration mutation conflict with innate SustAt (#10343)

--------------------------------------------------------------------------------
1256631a88 | Nicholas Feinberg | 2016-04-04 11:34:09 -0700

Fix book acquirement (Malevolent, Lasty)
Filtering was performed on a copy of the weights, resulting in
spell choices that had no relation to the ostensible theme(s) of
the generated randbooks.

--------------------------------------------------------------------------------
8cb54b3a58 | Nicholas Feinberg | 2016-04-04 11:22:30 -0700

Make Xom gifts a little more random
Remove a check for "boring" spells, which caught mainly non-boring
spells (e.g. hydra form) and was not something a player would ever
notice.

--------------------------------------------------------------------------------
ff0e426711 | Nicholas Feinberg | 2016-04-04 11:08:19 -0700

Fix IMB icon (10342)
Got lost during spell icon dataification.

--------------------------------------------------------------------------------
4482fe3504 | Nicholas Feinberg | 2016-04-02 22:15:37 -0700

Don't crash on Xom randbook creation
Xom book creation broken by 8c105fbb; crash added during the
randbook rewrite.

--------------------------------------------------------------------------------
d50ea46dd5 | Nicholas Feinberg | 2016-04-02 22:01:05 -0700

Document uses of Invocations skill
We mentioned some, but surprisingly many abilities that used
Invocations skill had no mention of it at all.

--------------------------------------------------------------------------------
f9322e60d1 | Nicholas Feinberg | 2016-04-02 18:48:11 -0700

Don't crash when examining drac pghosts
:(

--------------------------------------------------------------------------------
23343eba8c | Nicholas Feinberg | 2016-04-02 12:41:36 -0700

Fix a rare error message

--------------------------------------------------------------------------------
ef25089bd5 | Nicholas Feinberg | 2016-04-02 12:31:04 -0700

Refactor update_monsters_in_view()

--------------------------------------------------------------------------------
7c4da8119b | Nicholas Feinberg | 2016-04-02 11:18:04 -0700

Fix spectral weapon pluralisation
Not that this is very often relevant. Or a pretty fix, for that
matter.

--------------------------------------------------------------------------------
1593aa571c | Nicholas Feinberg | 2016-04-02 11:09:08 -0700

Fix Sniper inscription
oops

--------------------------------------------------------------------------------
fbe1ab039f | Chris Campbell | 2016-04-02 12:43:02 +0100

Use a canned message for reaching while confused (#10339)
The "without stumbling around" qualifier isn't really necessary for reaching, 
and this fixes the message being weird when in tree form.
--------------------------------------------------------------------------------
2bdad6c4d3 | Nicholas Feinberg | 2016-04-01 11:02:28 -0700

Deduplicate monster_info hydra checks

--------------------------------------------------------------------------------
bd5c6233aa | Nicholas Feinberg | 2016-04-01 10:50:53 -0700

Remove draco_type

--------------------------------------------------------------------------------
c8d7b0cdcc | Nicholas Feinberg | 2016-04-01 10:36:10 -0700

Remove a spammy dprf

--------------------------------------------------------------------------------
5b64ef80dd | Nicholas Feinberg | 2016-04-01 09:20:25 -0700

Sniper fixups
Add a 'nevermiss' inscription (for lack of a better phrasing),
mention the property in its description, and drop its enchant to
+9 for aesthetics.

--------------------------------------------------------------------------------
aded821ddb | Nicholas Feinberg | 2016-03-31 22:31:24 -0700

Merge pull request #250 from Hurricos/true_sniper
Improve Unrand: Sniper
--------------------------------------------------------------------------------
b40d73ed34 | regret-index | 2016-03-31 19:26:41 -0400

Dramatically upgrade hell hogs from sticky flame to fireball
The hell hog is redundant. It is a silly, flavourful monster, certainly, and
it has its use in Porkolator, but it doesn't nearly make the mark for dangerous
or notable enemies in extended. Even with essentially twice the stats of hell
hounds and decent band sizes, their stats are effectively worse than the
lair branch threat of harpies for a monster that effectively only appears in
extended. With item destruction long gone and extended defenses readily taking
it, sticky flame breath hardly matters either.

Thus, with some rF++ to make it work, hell hogs get a significant buff. The
whole pack of three to five hell hogs now gets to blast players with 3d20
fireballs, at the draconic standard rate of 6/20 actions (on a breath timer).
The high degrees of constant, very loud fire damage on a fast band is a
certainly passable threat for some: they are thus set to appear a bit more
commonly in Gehenna (cutting into derived undead weight) there. They are
certainly no shard shrikes, but it still provides another variation of fire
threats for the branch of damnation (and elsewhere, as adjusted).

--------------------------------------------------------------------------------
68460715ab | Neil Moore | 2016-03-31 02:33:59 -0400

Correctly handle places with no available random traps.

--------------------------------------------------------------------------------
8596a26596 | Neil Moore | 2016-03-31 01:23:40 -0400

Make a function static.

--------------------------------------------------------------------------------
09c6ec8b2b | Nicholas Feinberg | 2016-03-30 21:12:24 -0700

Deduplicate drac/ds class checks

--------------------------------------------------------------------------------
3ea6f2ba0c | Nicholas Feinberg | 2016-03-30 20:02:39 -0700

Remove an unused mon-info field
can_sinv, obsoleted when I rewrote mon-info sinv.

--------------------------------------------------------------------------------
58abeb0e88 | Nicholas Feinberg | 2016-03-30 17:22:15 -0700

Deduplicate some derived undead checks

--------------------------------------------------------------------------------
ced24248db | Shmuale Mark | 2016-03-30 19:54:44 -0400

Make it clearer to players that !cMut does not clear tempmuts (chris).

--------------------------------------------------------------------------------
e197c98cc9 | Nicholas Feinberg | 2016-03-30 16:45:26 -0700

Mapdef randbook gen: remove dprfs, add a note

--------------------------------------------------------------------------------
f01273f453 | Nicholas Feinberg | 2016-03-30 16:45:26 -0700

Reimplement exact_level filtering
So wanderers have a book with exactly two spells with total level
exactly equalling 4. This was intended before, but bugged.

--------------------------------------------------------------------------------
32305015a1 | Nicholas Feinberg | 2016-03-30 16:45:25 -0700

Minor fixes
Fix some indentation & also a debug print. Should probably remove
the latter, but it's useful for now.

--------------------------------------------------------------------------------
cd37728e0e | Nicholas Feinberg | 2016-03-30 16:45:25 -0700

Deduplicate some randbook filtering logic

--------------------------------------------------------------------------------
dd2fbece91 | Nicholas Feinberg | 2016-03-30 16:45:25 -0700

Completely rewrite themed randbook generation
In an attempt to make it comprehensible & untangle the remarkable
mess of assumptions implicit therein. Quality of results yet to
be determined.

Should hopefully have minimal effects on gameplay. Should also
reduce crashes in the long term, since theme book generation can
no longer fail outright. (Which was previously possible, but often
not checked for.) Crashes in the short term will probably be up.

--------------------------------------------------------------------------------
07606b0d7e | Nicholas Feinberg | 2016-03-30 16:45:25 -0700

Move randbook code into its own file
There's more than enough.

--------------------------------------------------------------------------------
f86d170af0 | Nicholas Feinberg | 2016-03-30 16:45:25 -0700

Reimplement themed randbook acquirement
Pull it out of non-acquirement randbook gen, so we can simplify
the latter.

--------------------------------------------------------------------------------
2474f45a79 | Shmuale Mark | 2016-03-30 19:32:49 -0400

Automatically eat food, if available, rather than starve (Malevolent).

--------------------------------------------------------------------------------
95c8865bf4 | Martin Kennedy | 2016-03-29 19:07:35 -0400

Reduced Sniper's enchantment from +15 to +10
This is to rebalance it, now that it never misses.

--------------------------------------------------------------------------------
e2d8d333a3 | Nicholas Feinberg | 2016-03-29 16:04:36 -0700

Revert "Remove a redundant randbook naming param"
It wasn't, exactly.

This reverts commit 22122d182a46dadb09362f90ea73a9ff8e9cbf1c.

--------------------------------------------------------------------------------
eb253392a8 | Martin Kennedy | 2016-03-29 18:42:44 -0400

Make unrand Sniper never miss.
This is done by setting its attacks to AUTOMATIC_HIT a la Axe of woe.

--------------------------------------------------------------------------------
e73a678695 | Nicholas Feinberg | 2016-03-29 14:06:58 -0700

Add an additional stat in wiz-item randbook gen

--------------------------------------------------------------------------------
f6c2232698 | Nicholas Feinberg | 2016-03-29 13:39:09 -0700

Simplify _remove_nondiscipline_spells()
Remove an unused param, and don't bother with the 'replace' logic,
since we're going to sort() the SPELL_NO_SPELLs to the end right
afterward.

--------------------------------------------------------------------------------
0ec44080ba | Nicholas Feinberg | 2016-03-29 13:25:06 -0700

Don't weight randbook spells by memorization state
Spells which had been seen but not memorized were twice as common
as memorized ones. Memorized spell state is transient enough to be
manipulated for acquirement, which we don't want to encourage.

--------------------------------------------------------------------------------
22122d182a | Nicholas Feinberg | 2016-03-29 13:18:53 -0700

Remove a redundant randbook naming param

--------------------------------------------------------------------------------
2652615f33 | Nicholas Feinberg | 2016-03-29 12:10:56 -0700

Let randbooks generate w/'conflicting' schools
Since school conflicts were removed some time ago.

--------------------------------------------------------------------------------
8d9735bc8c | Nicholas Feinberg | 2016-03-28 09:56:59 -0700

Add a test for mon band member picking

--------------------------------------------------------------------------------
1434010187 | Neil Moore | 2016-03-28 12:31:57 -0400

Simplify _band_member and add a few asserts.

--------------------------------------------------------------------------------
200c1e7ab5 | Nicholas Feinberg | 2016-03-28 08:26:24 -0700

Fix orc warrior bands

--------------------------------------------------------------------------------
f7c67b8a30 | Neil Moore | 2016-03-28 10:24:59 -0400

Scale current HP on Fighting skill change (bsdbeard)
Otherwise DD who gain fighting skill will become inexplicably injured.
Before 0.14 this was less noticeable, because the XL and Fighting gains
happened in a different order, and XL does scale HP.

Use the code from artefact wielding/unwielding, which can handle fractions
of an HP.

--------------------------------------------------------------------------------
450bcad157 | Neil Moore | 2016-03-28 10:24:59 -0400

Fix compilation.
Unfortunately the error messages weren't very useful, but binary
search was.

--------------------------------------------------------------------------------
784a89ba62 | Nicholas Feinberg | 2016-03-28 00:40:08 -0700

Dataify more band data
Format could be improved on (Zaba offered one good suggestion in
http://sprunge.us/GKMT ), but you'd probably need to write some
nice script for converting it.

Demonspawn are also ripe for dataification, but possibly in their
own structure.

--------------------------------------------------------------------------------
b89d9db157 | Chris Campbell | 2016-03-27 18:35:02 +0100

Update Supercharge description to mention it being one-off (#10334)

--------------------------------------------------------------------------------
3ae59fae84 | Corin Buchanan-Howland | 2016-03-27 13:17:40 -0400

Scale poison needles with throwing skill
Instead of having poison needles do a fixed amount of poison, now the
amount of poison delivered scales heavily with Throwing skill and slightly
less heavily with launcher enchantment.

The practical impact of this is that poison needles are worse at very low
skill, break even at around 8 skill, and then are better at higher skill.
And also blowgun enchantment matters.

--------------------------------------------------------------------------------
a94d5ab7b7 | Corin Buchanan-Howland | 2016-03-27 12:22:24 -0400

Slow down the Throwing trolley
Throwing has been positioned as an extremely strong option since around
0.15, outstripping most other forms of non-magical attack. This is because
it does damage equivalent to UC with up to 10 levels of claws at speeds of
up to 5 AUT while having full screen range and requiring no hands at all.
Despite all that, many races have strong aptitudes.

This is a first draft solution: make throwing use delay like weapons rather
than like UC. This means that the delays start higher and get down to 7 AUT
instead of 5 AUT, but the delays decrease faster with added skill. The
actual damage per throw remains unaltered.

In practice, this means that throwing deals about 25-50% less damage over
time while dealing the same amount of damage per throw.

I expect further changes will be warranted, including perhaps disentangling
my current solution of tying delay to damage, particularly if the ranged
reform project takes off, but I felt that it was necessary to apply a nerf
to this overpowered form of combat right now.

--------------------------------------------------------------------------------
8b6524e5fb | Neil Moore | 2016-03-27 01:03:50 -0400

Don't let speed brand change mindelay skill (#10333)
The game claims a longbow of speed has mindelay 0.4 (which appears
intended to be a white lie, see 0.18-a0-72-g2733cf4) at skill level 20.
But skill 20 corresponds to an average delay of 0.47, and skill 22 does
in fact reduce the average delay to 0.4.  The intention, though,
appeared to be for the min delay skill to actually be unchanged by the
speed brand.

Instead of capping the speed based on (truncated) weapon min delay, cap
the contribution of skill to the min delay skill level.  Another
possibility would have been capping with weapon_min_delay(*weap, false)
before applying speed brand.

--------------------------------------------------------------------------------
7533f42c3e | Corin Buchanan-Howland | 2016-03-26 18:43:13 -0400

Remove lantern of shadows
The primary function of lantern of shadows was to enable tedious kiting,
which was both excessively strong and also boring. The secondary function
of reducing LOS while removing the ability to effectively attack or cast
was never particularly interesting either, but was technically optimal as a
fast way to get monsters at edge of LOS out of LOS.

We already have too many misc items that summon monsters, and this one was
problematic, so it's getting the axe.

--------------------------------------------------------------------------------
9da07436c7 | Alan Malloy | 2016-03-26 14:52:16 -0700

Update effects produced by /random

--------------------------------------------------------------------------------
109f206493 | Nicholas Feinberg | 2016-03-25 12:58:36 -0700

Don't check bondage more than necessary
When e.g. generating items uncursed.

--------------------------------------------------------------------------------
4e93e59e93 | Nicholas Feinberg | 2016-03-25 12:56:31 -0700

Remove an unused do_uncurse_item param (|amethyst)

--------------------------------------------------------------------------------
1d07553f14 | Nicholas Feinberg | 2016-03-25 12:38:29 -0700

Update a few obsolete rod comments

--------------------------------------------------------------------------------
a36aebbe40 | Nicholas Feinberg | 2016-03-25 12:31:08 -0700

Don't allow cursing rods
Since they aren't weapons; just like you can't curse lanterns of
shadows, decks of cards, etc.

--------------------------------------------------------------------------------
35ced28bf4 | Nicholas Feinberg | 2016-03-25 11:45:14 -0700

Fix a rod crash (Jefus, |amethyst)

--------------------------------------------------------------------------------
29e10e806c | Shmuale Mark | 2016-03-25 08:38:05 -0400

Use is_weapon some more.

--------------------------------------------------------------------------------
a707108009 | Nicholas Feinberg | 2016-03-25 00:32:56 -0700

Don't treat rods as weapons
They aren't, and halfheartedly pretending that they were weapons
(but really bad ones!) was a complication without a purpose.

Also, it demonstrably confused new players, which is sort of funny
but not really ideal.

Until the rod of striking blesses us with its presence once again,
let's keep it simple.

(Felids still can't use rods, but I have no strong opinions about
whether that should remain the case.)

--------------------------------------------------------------------------------
6d03055a91 | Neil Moore | 2016-03-24 23:15:44 -0700

Refactor torpor snail band-picking.

--------------------------------------------------------------------------------
b03ca3b12d | Nicholas Feinberg | 2016-03-24 23:11:26 -0700

Move nearly all bands into data
Sort of; doesn't handle band monster types (_band_member()),
just band sizes and existence (_choose_band()).

Gameplay impacts: Tiamat & the Enchantress's bands will have
greater size variance (moved from two random rolls to one, since
it didn't seem important enough to support); whatever errors I
introduced through typoes. Apologies in advance for the latter.

--------------------------------------------------------------------------------
61c6396117 | Chris Campbell | 2016-03-24 21:13:46 +0000

Don't let monsters zap rods or evoke equipment while confused

--------------------------------------------------------------------------------
d3c2e7f83e | Nicholas Feinberg | 2016-03-24 08:59:56 -0700

More custom scoring asserts (|amethyst)
Should prevent meatsprint/arenasprint vault corruption from making
it into a save.

--------------------------------------------------------------------------------
65af6d36f2 | Nicholas Feinberg | 2016-03-23 22:47:49 -0700

Add a custom scoring assert
Should prevent future broken games from making it into the high
scores, at least.

--------------------------------------------------------------------------------
6199a7894a | Nicholas Feinberg | 2016-03-23 21:37:32 -0700

Fix another rare Imprison crash
In very specific circumstances, it was possible for Imprison's
validation to conclude that a monster could be shoved out of the
way, but the actual execution of the Imprison to not have space
for that monster - because the logic of the latter didn't
explicitly veto the spaces the walls would soon occupy. This
crudely fixes that; there are probably still some insane corner
cases that this doesn't handle, and it might be better to build
a map of monster -> shove locations rather than reproducing it,
but this should be good enough for now.

--------------------------------------------------------------------------------
19ad93e25d | regret-index | 2016-03-23 17:22:30 -0400

Shadow Fiend -> Tzitzimitl
Shadow fiends are kind of weak and undistinguished compared to most other 1s:
at most, they've only got Dispel Undead to scare that selection of the
torment-immune, and low-damage pain / draining melee when rN is already such
a common commodity for extended. Certainly, as one of the few unique strengths
Tartarus has to work with relative to the general unholy nature of extended,
they could stand to be more noticeable, more nasty.

As such, they're getting an Aztec theme, reflecting monstrous skeletal
demon-gods that brought protection from disease and death in childbirth as
well as sun-devouring terror of the apocalypse at the edges of time. There's
demonic name precedent (see ynoxinuls) now getting something substantial from
elsewhere, and it's nice non-standard mythological representation (vague
apologies for furthering conquistadors' evangelical demonizations of these
liminally apocalyptic tutelary mid-wives).

The Tzitzimitl (tsee-tsee-mee-thlh) has more EV, marginally more HD / HP, and
marginally less AC than the fiends; casts Dispel Undead and Symbol of Torment
a bit more often than shadow fiends; and has a new, hostile attack flavour,
AF_MIASMATA. Attacks with this flavour create a ring of clouds around the
target, like AF_FIREBRAND once did, but replaces fire clouds and fire damage
with miasma generation. Such clouds place on half of all branded hits, without
checking AC (it doesn't directly affect or damage the target, after all),
underneath friendlies with rRot and any hostiles adjascent to the target (watch
out, summoners), and which each last 6 to 10 turns. When paired with the
rigours of extended and overall positioning values, this might be more
noticeable than it seems.

Still, they're a little reliant on casting luck and partnership compared
to the other 1s, and other future tweaks and buffs may be in order. Extended
rarely leaves them alone, however.

(Thanks go to PleasingFungus for cleaning up the AF_MIASMATA brand code.)

TODO: A new tile. The Shadow Fiend tile is nice, but not very accurate for
such vivid original imagery.

--------------------------------------------------------------------------------
ee9a706446 | Nicholas Feinberg | 2016-03-23 12:45:46 -0700

Remove an unused function
Unused since d4056baf73ad6421c194e9382381399cc9f57016. (Ignite
Poison simplification.)

--------------------------------------------------------------------------------
7cc1335907 | Nicholas Feinberg | 2016-03-23 10:50:49 -0700

Overlooked changelog entries
autofight_warning wording is dubious, sorry.

--------------------------------------------------------------------------------
42870ea101 | Nicholas Feinberg | 2016-03-23 10:11:44 -0700

Finish deprecating DUR_ANTIMAGIC (Zaba)
Possibly this code can be removed entirely - do any djinn even
still exist...?

--------------------------------------------------------------------------------
1d299b9eff | Nicholas Feinberg | 2016-03-23 10:08:49 -0700

Changelog through 0.18-a0-1619-gee06bbb
I was pretty conservative with what I included in this one;
possibly there should be more entries?

--------------------------------------------------------------------------------
ee06bbbc0b | Nicholas Feinberg | 2016-03-23 09:48:05 -0700

Spawn abyss XP exits on Abyss:5
We don't want to discourage players from abyss:5; it's where the
most fun is!

--------------------------------------------------------------------------------
f90497cceb | Nicholas Feinberg | 2016-03-22 20:56:05 -0700

Hellfire -> Damnation
Hellfire has long been somewhat bizarre: it's fire-like in some
ways, melting ice and burning scrolls (RIP), but not in others.
Most notably, it does not check rF. The fundamental mechanical
properties of the effect (totally irresistible damage) are useful,
but the theme conveys those effects poorly.

"Damnation" is themed as an invocation of some amorphous, unholy
forces, inimical to almost anything. It no longer melts ice, burns
trees, or triggers Dith's fire conduct, but is otherwise identical.

Other notes:
- The spells were also renamed: Hellfire Burst (the smitey one) is
  now Call Down Damnation, and Hellfire (the non-smitey one) is now
  Hurl Damnation. Ideally this will be slightly less opaque.
- Hellfire, the arbalest, is now Damnation. It's still fire-aligned
  ('forged in the fires of Gehenna', rF++ rC-), but its bolts aren't.
  (Ofc, Damnation remains somewhat associated with Geh generally.)
- The demonspawn Hellfire mut is now Damnation, but remains on the
  'fire' mut path. Iffy, but again a loose association with Geh.
- Vehumet still suggests ending it all in hellfire, and still does
  not provide access to hellfire in any way. This is funny to me.
  Hellfire/damnation is no longer in Veh's wrath effects.
- The Damnation card (banishment) is renamed to Exile.
- rDamnation is still represented as four levels of rF; this is
  technical debt, and fixable (but not urgently). The only real
  ramification of this is that Cerebov's sword remains useless
  against enemies with rDamnation, which is lame but an edge case.

--------------------------------------------------------------------------------
9fa4892158 | Nicholas Feinberg | 2016-03-22 20:51:32 -0700

Deprecate DUR_ANTIMAGIC
Was only used for Djinn. (RIP)

--------------------------------------------------------------------------------
1e052b8529 | Neil Moore | 2016-03-22 22:22:47 -0400

Mention tag_read_char specialness in save_compatibility.txt
[skip ci]

--------------------------------------------------------------------------------
121a81fcc8 | Neil Moore | 2016-03-22 22:13:16 -0400

Correct some minor tag checks in tag_read_char.
Two fixes:

  1. The numbers for the explore mode minors (in the post-34 branch of
     the #if) were off by 3.

  2. The version check at the end (for the corrected location of the
     explore mode bool) was incorrect.  If some older (< 34) major tag
     had more than 130 minor tags, we would have gotten a short read
     trying to unmarshall a boolean that wasn't there; fortunately,
     34 was the first major tag with this many minors.  Worse, on a
     major tag bump, we would have tried to unmarshall that bool in
     all old saves.  (Old majors matter here because this is the
     char chunk, which is shown in the save browser even for games
     that are too old to transfer).

And one bit of cleanup: Remove the #if TAG_MAJOR_VERSION around the
first explore mode tag check and just use the numbers, like elsewhere
in the function.  No sense leaving in two versions of the code that
will go out of sync.  Add a comment explaining the source of the
numbers.

--------------------------------------------------------------------------------
5b6a61a826 | Nicholas Feinberg | 2016-03-22 18:38:37 -0700

Fix TAG_MAJOR_VERSION > 35 compilation
Probably; didn't check all tiles stuff.

--------------------------------------------------------------------------------
115b75a476 | Nicholas Feinberg | 2016-03-22 17:45:57 -0700

Dataify duration expiration points
And correct some incorrect related comments.

--------------------------------------------------------------------------------
917d058116 | Nicholas Feinberg | 2016-03-22 17:06:56 -0700

Add an expiration warning for Darkness (Darox)
For convenience. This also reduces average duration by 5 aut, which
is probably not significant.

--------------------------------------------------------------------------------
00361b8030 | Nicholas Feinberg | 2016-03-21 10:50:36 -0700

Fix monster (wheals)
wheals is the real monster

--------------------------------------------------------------------------------
0a7c96eacd | Nicholas Feinberg | 2016-03-21 09:39:37 -0700

Merge roused & battle-frenzied into might
The roused and frenzied statuses had always been needlessly obtuse
- they gave +45% melee damage, *almost* the same as might's +50%,
except when they gave 30% instead... invisibly to the player, ofc!

All cases where they appeared have been replaced with might, and
the cases where they gave +30% damage have been adjusted: spriggan
druid's death-buff duration has been reduced slightly, and orc
knight's battlecry frequency has been halved. In practice, this
is probably still a buff for each; orc knight is probably fine,
but druid might need more tweaking.

--------------------------------------------------------------------------------
6e5dc2e238 | Neil Moore | 2016-03-21 10:24:03 -0400

Fix monster builds for AF_CHAOTIC.

--------------------------------------------------------------------------------
3c404ee921 | Neil Moore | 2016-03-21 09:19:35 -0400

Rename AF_CHAOS to AF_CHAOTIC (giann)
The old name collides with the address family macro for the MIT CHAOS
protocol, causing build errors on cygwin.  We tried to #undefine the
macro in libw32.cc, but it was also being pulled into tileweb.h (through
sys/un.h).  Rather than try to chase down everything that might pull in
a networking header, just rename our attack flavour.

Maybe it would be better to make this a scoped enum and then use
something like attflav::chaos, but that's a significantly bigger change
(and does make the names longer) so I am not doing that right now.

--------------------------------------------------------------------------------
25bef88403 | Neil Moore | 2016-03-21 09:19:35 -0400

Correctly spell a name.
[skip ci]

--------------------------------------------------------------------------------
b0fe834649 | regret-index | 2016-03-20 20:32:23 -0400

Buff wizlabs Cigotuvi & Cloud Mage, tweak wizlab Wucad Mu
The two buffed wizlabs had the lowest kill results of recent wizlab stats,
and for the most part lacked big setpiece threats (antique lich, doroklohe
ambush, obsidian statue + eldritch tentacle, etc) like the other wizlabs.

Cigotuvi's Monster gets to be a primal ox-sting-weird mutant beast (like from
the box of beasts) instead of a (higher health) tentacled monstrosity. This
exchanges most of its resistances and a fair amount of health for it to hit
much harder (and with serious amounts of poison), alongside having a more
unique status (nothing else in the main game uses or should use mutant beasts).
A few monster placements were also tweaked to up the threats in a few
encounters.

The chambers of the Cloud Mage now include a few spriggan air mages (Hellbinder,
Golubria, and Iskenderun's wizlabs establish fellow-wizards are fine.)
The Cloud Mage also has a new nasty spellset, exchanging the cloud spells
for Cloud Cone (from the rod) to blast out storm, acidic, and draining clouds,
Control Winds (from spriggan air mages) to try and reduce the chances
of self-harm from such clouds, and a higher Airstrike casting rate.
A spellset instead featuring Tornado was considered (and is probably still
worth considering in the future), but aside from the vault shifts required
to diminish the sudden drowning chances, it's also kind of unreliable without
extremely high cast rates. Lom has and can afford to have many other tricks
and more sturdiness to make his Tornado work better.

On a different note, the Monastary. The statue of Wucad Mu no longer has a
marginally higher spellcasting rate compared to regular orange crystal statues.
It also goes from 20 HD to 15 (though this is still higher than the default
10). These changes are accompanied by removing the fixed health the vault
redefine sticks the statue with, which gives it roughly 1.25x the health.

--------------------------------------------------------------------------------
9d0654fa74 | Neil Moore | 2016-03-20 20:27:15 -0400

Add missing paren in monster output (regret-index, wheals).

--------------------------------------------------------------------------------
f68bb2311d | Nicholas Feinberg | 2016-03-20 15:24:27 -0700

Don't let throwing circumvent Fragile (Piginabag)
Throwing a wielded Fragile item would claim to destroy it, but
leave a copy on the ground. Cunning!

--------------------------------------------------------------------------------
85cf871478 | Neil Moore | 2016-03-20 18:10:24 -0400

Add giann to credits and mailmap.

--------------------------------------------------------------------------------
6021752103 | Nicholas Feinberg | 2016-03-20 15:08:47 -0700

Remove some support for unknown ammo brands
Haven't existed outside wizmode in a long time.

--------------------------------------------------------------------------------
0c12036493 | Nicholas Feinberg | 2016-03-20 15:07:54 -0700

Disable mutant beast descs for vault renames
Otherwise they'd show up under the vault name, which is probably?
not desirable.

--------------------------------------------------------------------------------
60c5e90e05 | Neil Moore | 2016-03-20 18:00:19 -0400

Fix a sign warning.

--------------------------------------------------------------------------------
24dbdb644b | Neil Moore | 2016-03-20 17:56:52 -0400

Add a few more Jiyva passives, fix offlevel eating.
Add a new passive for jelly eating enhancements (at the moment a single
passive to cover offlevel eating, eating of seen items, and eating by
friendly monsters), and another for stat adjustment.

Use the correct checks in _jiyva_effects and jiyva_eat_offlevel_items,
though maybe the former function should be split up.

Fixes Jiyva not eating offlevel items if the player does not have one
of the slime feed/mp/hp mutations.

--------------------------------------------------------------------------------
27cbb4196e | Benoit Giannangeli | 2016-03-20 17:55:24 -0400

Passives for JVNQRP.
[Committer's note: Fixed up one remaining incorrect rank (Jiyva
unlocking Slime:$ was listed as 5* instead of 6*); made any new
mp_on_kill gods use Vehumet's formula by default; and fixed up a
bit of formatting and a typo.  Closes #247 pull request. -nfm]

--------------------------------------------------------------------------------
27c87547c2 | Nicholas Feinberg | 2016-03-20 14:50:46 -0700

Typo fix

--------------------------------------------------------------------------------
c986a8ae69 | Nicholas Feinberg | 2016-03-20 14:48:14 -0700

Improve mutant beast vault support (regret-index)
Create them with "mutant beast" rather than "mbeast", and allow
naming them & applying other vault modifiers.

Hopefully this doesn't break monster.

--------------------------------------------------------------------------------
0d04c30dd7 | regret-index | 2016-03-20 03:05:49 -0400

zot:5 side-buff(?)
After cleaning up a very nasty header and leaving some notes, an old and
questionable status is changed. Seventeen fixed spots in the chamber halves
closer to the orb have three separate equally-likely arrangements:

Randomly, per spot |   A    |   B    |   C
---------------------------------------------
Ancient Lich       | 50.00% | 16.67% | 16.67%
Orb of Fire        | 16.67% | 50.00% | 16.67%
Random floor spawn | 16.67% | 16.67% | 16.67%
Chance for a trap  | 16.67% | 16.67% | 50.00%

Option C seems like an unusual wasted opportunity, a shift away from plenty
of monster threats high monster threat onto the not-nearly-as-dangerous extra
traps. As such, in a slight shift of balance, I'm changing the setting to the
below chances, of more random floor spawns and killer klown abuse:

Randomly, per spot |   C
---------------------------
Ancient Lich       | 16.67%
Orb of Fire        | 16.67%
Random floor spawn | 25.00%
Chance for a trap  | 16.67%
Killer klown       | 25.00%

As most random floor spawns and killer klowns don't quite hew towards the
nastiness of many orbs of fire or ancient liches (short of, perhaps, a rather
lucky moth), this is not exactly a straight buff as much as it ups the
standards of danger. There are plenty of other options for this arrangement,
with so many different branch threats, but these were chosen as one of the
least noticeable of options.

--------------------------------------------------------------------------------
2e9212937f | regret-index | 2016-03-20 02:39:03 -0400

Scattered vault edits and tweaks
Buffs and nerfs and changes of depth

Highlights:
 * Most Tar:7 vaults get about three more shadow fiends on the path
   to the rune. Cocytus gets to use equally high numbers of ice fiends,
   Tartarus lags behind other hells in kill count and has similar monster
   problems (through thematic overlap rather than minimal used monsters).
 * dis_st gets mild nerfs through low ceilings on random hell sentinel
   placement.
 * Cut rare dragons from bailey_axe_of_yendor_kennysheep. The idea of such
   might be interesting for set variety when applied to the majority
   of baileys, but here it means an extremely rare chance to meet
   a pre-Lair swamp dragon.
 * tendril_chambers has lowered wasp presence, caniform_friends has more
   top dogs.

--------------------------------------------------------------------------------
7a89b71239 | Nicholas Feinberg | 2016-03-19 13:46:03 -0700

Fix slug dart directional tiles (Piginabag)

--------------------------------------------------------------------------------
2b15977644 | Nicholas Feinberg | 2016-03-19 11:08:56 -0700

Don't let phial of floods cover stairs
Or other non-floor tiles. Was changed as part of the water nymph
tweak (3180e6704de), but it's not a desirable behaviour.

--------------------------------------------------------------------------------
c9a7bc6a83 | Chris Campbell | 2016-03-19 16:15:07 +0000

Add and improve lookup descriptions for status lights
Some of these quite heavily duplicate spell/ability descriptions (or even just
the @ line, for particularly simple statuses), and might be prone to falling
out of date, but this is still probably an improvement over no documentation!

--------------------------------------------------------------------------------
daceb0819b | Chris Campbell | 2016-03-19 16:15:07 +0000

Adjust some ability and monster descriptions

--------------------------------------------------------------------------------
520a787796 | Nicholas Feinberg | 2016-03-18 15:06:43 -0700

Fix omnireflection (Warlock's Mirror)
Not sure when this broke.

--------------------------------------------------------------------------------
425e25b4c5 | Chris Campbell | 2016-03-18 21:46:46 +0000

Make Horror apply a penalty to slaying instead of a bonus
And then fix it being applied doubly to accuracy (previously its effect on
accuracy cancelled out to zero, and it just provided +dam).

--------------------------------------------------------------------------------
8ffdf5021e | Neil Moore | 2016-03-18 17:44:46 -0400

Don't let monsters cast airstrike against immune targets (#10324)

--------------------------------------------------------------------------------
58c38cf023 | Chris Campbell | 2016-03-18 00:25:05 +0000

Adjust some negative resistance status lights
For reduced resistances, display rX- rather than -rX.

--------------------------------------------------------------------------------
eb92fae2df | Chris Campbell | 2016-03-18 00:24:58 +0000

Adjust some descriptions
Don't capitalise attributes, and consistently refer to corrosion as corroding
the target (in some weird magical abstract sense) rather than their equipment,
since that may not apply.

--------------------------------------------------------------------------------
146024ad8f | Neil Moore | 2016-03-17 13:31:06 -0400

Don't neutralize plants while under Fedhas penance.
Unintentionally changed in 40744a8.

--------------------------------------------------------------------------------
f37629f6f8 | Neil Moore | 2016-03-17 12:52:16 -0400

Replace you::real_time with an accessor.
No sense storing the same duration scaled in two different ways.

Probably we should introduce a tag and store real_time_ms in the save,
but that can wait.

--------------------------------------------------------------------------------
5b249e4262 | Neil Moore | 2016-03-17 12:52:15 -0400

Make autofight_warning apply to nomove autofight as well.

--------------------------------------------------------------------------------
21c295ce50 | Neil Moore | 2016-03-17 12:52:15 -0400

Improve autofight_warning docs a bit.
[skip ci]

--------------------------------------------------------------------------------
30be0a82c0 | Benoit Giannangeli | 2016-03-17 12:52:15 -0400

option_guide.txt description of autofight_warning

--------------------------------------------------------------------------------
10fb21ad2a | Neil Moore | 2016-03-17 12:52:15 -0400

Refactoring and cleanup for autofight_warning.
Distinguish durations from time points: Use chrono::milliseconds only
for intervals, but chrono::time_point<system_clock> for clock readings.

Remove std:: namespace prefix.

Move the #include <chrono> into the two header files that require it,
rather than extern.h.

Fix up formatting a bit (long lines, and braces on a couple of ifs.

Make the autofight_warning option value an int rather than a long.

--------------------------------------------------------------------------------
e88cd6af2b | Benoit Giannangeli | 2016-03-17 12:52:04 -0400

Add autofight_warning option.
The goal of this option is to be the counterpart of
tile_key_repeat_delay=0 for console mode.

Since we don't know if the player keeps the tab key down in console
mode, I keep track of time elapsed between two tab commands in
milliseconds (using std::chrono).  If that delta is less than the
autofight_warning option, we stop the user with the message "You should
not fight recklessly!".

The option has no effect if the tab command was issued by a macro.

[Committer's note: Squashed several commits.
 Closes #244 pull request. -nfm]

--------------------------------------------------------------------------------
f591c28286 | Nicholas Feinberg | 2016-03-16 16:46:23 -0700

Make Etheric Cage multiply, not add, contam (MPA)
Doubles all sources of contamination, rather than randomly adding
intermittent chunks of contamination. Better and more simply
achieves "makes contamination more dangerous", without any risk of
contamination-while-resting.

--------------------------------------------------------------------------------
2b87869084 | Neil Moore | 2016-03-16 16:12:14 -0400

Update tile_show_demon_tier docs.
The default is now false; and make it more clear that non-tiles
versions of Crawl do not actually overlay demons with an icon.

[skip ci]

--------------------------------------------------------------------------------
a0a17a2935 | Alex Jurkiewicz | 2016-03-16 23:00:00 +1100

Rework Powered By Death.
Encourage "chaining" of kills by removing an overall duration, and
simply decaying a stack every x turns.

might need a regen strength nerf now

--------------------------------------------------------------------------------
38e602fe92 | Alex Jurkiewicz | 2016-03-16 23:00:00 +1100

Rework Spiny (player mutation) damage.
Old damage was: roll_dice(1 + mut, 5)
New damage is:  random2avg(you.xl + mut, 2)
(both numbers are pre-AC)

Example average damages:
XL2, mut1: 5 (old)    vs 2 (new)
XL10, mut1: 5 (old)   vs 5.5 (new)
XL10, mut2: 7.5 (old) vs 6 (new)
XL20, mut3: 10 (old)  vs 11.5 (new)
XL27, mut3: 10 (old)  vs 15 (new)

Right now, the spiny mutation all-but-guarantees a character will reach
temple. Rolling 2d5 pre-AC damage against early-D threats is strong.

This change reduces early game damage without much change to later power
levels. It results in higher damage in the late game, but with the high
levels of AC there, I don't consider it a problem.

--------------------------------------------------------------------------------
920359c5b0 | Nicholas Feinberg | 2016-03-15 17:08:15 -0700

Disable tiles demon pentagrams by default
They're pure visual clutter. The reasoning (six years ago, in
dfb8ff17372) was to help tiles players learn how difficult each
type of demon is. There's no particular reason that players should
need special help with demons and not any other monster type,
though, especially since we display much more information about
monsters (incl. 'threat rating') than we did six years ago.

Funnily, the commit that added the pentagrams originally described
them as "heavy-handed, technical and confusing", and suggested
they should be replaced as soon as possible.

The option to turn pentagrams back on is retained for now for those
who prefer the aesthetic, but may be removed in the near future.

This should also make it easier to make better demon tiles.

--------------------------------------------------------------------------------
3f9d221309 | Chris Campbell | 2016-03-15 18:49:51 +0000

Fix Irradiate not breaking Sanctuary
Just in case???

--------------------------------------------------------------------------------
b8e2640442 | Chris Campbell | 2016-03-15 18:49:44 +0000

Don't make Zin suppress visual-only explosions under Sanctuary

--------------------------------------------------------------------------------
0a86841e96 | Neil Moore | 2016-03-14 16:55:37 -0400

Don't crash when encountering a zero-byte timestamp file.
Remove the file and proceed as though it had been missing; if it
could not be removed, proceed as though it were an incompatible
timestamp file.

Also, fix a missing initialization.

--------------------------------------------------------------------------------
22b4fdabfa | Nicholas Feinberg | 2016-03-14 11:26:13 -0700

Fix ally/invis mon interaction (Xenobreeder)
They'd fail to see the enemy, repeatedly try to pathfind to a spot
near them, and then just stand there doing nothing. Currently
they'll instead basically end up ignoring your attack orders if
you tell them to attack something they can't see, which is not
great, but better.

Possibly an even better solution would be to let friendly monsters
target invisible enemies that you can see, with the usual accuracy
penalties and so forth.

--------------------------------------------------------------------------------
f60b0abee4 | Nicholas Feinberg | 2016-03-13 21:18:07 -0700

Fix warlock's mirror & monster wands (jefus)

--------------------------------------------------------------------------------
ac1d742b3b | Nicholas Feinberg | 2016-03-13 21:06:47 -0700

New status lookup tool: ?/T
Mostly copied from the manual's descriptions (which should probably
be scrapped), but has more info for a few things & is searchable.

TODOs:
 - More status effects
 - Monster statuses
 - Switch from using the 'status light' name to the 'short_name'
   (e.g. "Mesm" -> "mesmerized")

--------------------------------------------------------------------------------
56d571d58b | Nicholas Feinberg | 2016-03-13 20:40:40 -0700

Add better explanations of mesm/fear mechanics
Doesn't cover everything, but should explain the less immediately
obvious parts of the mechanic.

--------------------------------------------------------------------------------
a1f5c66318 | Nicholas Feinberg | 2016-03-13 19:44:01 -0700

Revert "Don't let noise break mesmerisation."
It's an interesting alternative tactic to offer the player in
tough situations. The discoverability/'spoileriness' issue is
real, but fixable.

This reverts commit 80e3b75b14cea6ec1bf45538d47ad9de5b2442f7.

--------------------------------------------------------------------------------
1571e14e11 | ontoclasm | 2016-03-13 21:43:03 -0500

Large abominations (CanOfWorms)

--------------------------------------------------------------------------------
6b8b26072d | Alan Malloy | 2016-03-13 17:37:20 -0700

Merge pull request #242 from alexjurkiewicz/noise-mesm
Don't let noise break mesmerisation.
--------------------------------------------------------------------------------
3d1bdcceef | Nicholas Feinberg | 2016-03-13 10:29:45 -0700

Tweak some monster descriptions (regret-index)
Trim curse skull description (not necessary to mention AC/resists
now that those show up on xv explicitly), add/correct mechanical
detail for moth of wrath & lurking horror, and arbitrarily adjust
tentacled starspawn's description for vague reasons of stylistic
preference.

--------------------------------------------------------------------------------
ac8da35337 | Nicholas Feinberg | 2016-03-12 19:02:45 -0800

Re-allow curse skulls rattling jaws under silence
The current silence casting message is so generic as to look like
a bug.

--------------------------------------------------------------------------------
7b1e397dcc | Chris Campbell | 2016-03-12 12:04:25 +0000

Cancel ongoing spell attributes when forgetting the spell (ManiacJoe)
Such as RMsl/DMsl and Delayed Fireball.

--------------------------------------------------------------------------------
e216ca8688 | Nicholas Feinberg | 2016-03-11 20:35:14 -0800

Don't train invo on involess gods (Xenobreeder)
??oops

--------------------------------------------------------------------------------
283e520339 | Nicholas Feinberg | 2016-03-11 20:21:50 -0800

Move spell tiles into data

--------------------------------------------------------------------------------
e760eee6ff | Nicholas Feinberg | 2016-03-11 19:42:05 -0800

Move target_prompt out of data
Something that's only relevant to three spells out of 337 does not
need to be enumerated for each of them. (It might be reasonable to
put it into a separate, smaller map, of course.)

...really, you could probably take it off everything but LRD.

--------------------------------------------------------------------------------
d2de3c867a | Nicholas Feinberg | 2016-03-11 19:15:50 -0800

Move draco/demonspawn tiles into data

--------------------------------------------------------------------------------
e82d595eb1 | Nicholas Feinberg | 2016-03-11 18:57:00 -0800

More tile code refactoring
Missed this function last time. Still lots of special cases,
sadly, but it's clear to see how at least some of them can be
cleaned up.

Also, simplify a few "immediately follows" tiles. Probably it'd
be good to do the same thing to all the other off-by-one variants
(arachne_staveless, *_water, *_melee, etc), but that might make
the weapon offset code less readable.

--------------------------------------------------------------------------------
5ad112dc16 | Nicholas Feinberg | 2016-03-11 16:19:50 -0800

Recorpsify Iron Giants (MarvinPA)
By analogy to iron dragons.

--------------------------------------------------------------------------------
49b38aa28d | Nicholas Feinberg | 2016-03-11 08:44:14 -0800

Remove iron giant corpses
It's not clear whether they were intended, we have plenty of
zombifiable giants already, and they're kind of weird.

--------------------------------------------------------------------------------
6621715338 | Nicholas Feinberg | 2016-03-11 00:26:21 -0800

Move corpse tiles into data
They really should be autogenerated, but if they must be exist,
let's at least place them somewhere they're hard to miss (as has
happened several times!) and easy to automatically test.

Also, add the corresponding test (make sure that monsters with
corpses have corpse tiles, and monsters without corpses don't),
and clean up a large number of unused corpse tiles.

--------------------------------------------------------------------------------
31ec302957 | Nicholas Feinberg | 2016-03-10 23:06:53 -0800

Rework _ms_ranged_spell()
It's still awful, but, uh, less hardcoded?

--------------------------------------------------------------------------------
40744a8251 | Benoit Giannangeli | 2016-03-10 20:44:31 -0800

Use have_passive for fedhas passive abilities

--------------------------------------------------------------------------------
124ad160f0 | Nicholas Feinberg | 2016-03-10 19:30:45 -0800

New Volcano vault: Lost World
Loosely inspired by pulp 'journey to the center of the earth'
stories involving jungles filled with prehistoric animals, cavemen,
etc. Layout inspired by ice_cave_small_giant, the classic.

It would be nice to have more layout randomization, and it's
possible to abuse the melee enemies that can't cross lava by
burning trees & shooting whoever comes to investigate, but most
enemies don't fall in that category, so it should work out.

Here's to player death!

--------------------------------------------------------------------------------
08f95da55a | Nicholas Feinberg | 2016-03-10 11:00:02 -0800

Adjust wolf XP
Bizarrely out of line with other monsters; gave more XP than a
warg, despite being inferior in most respects (with the notable
exception of speed). Now gives about as much XP as an orc warrior.

--------------------------------------------------------------------------------
1f2e0e3d56 | Nicholas Feinberg | 2016-03-10 10:35:38 -0800

Let explosions ignite trees (minmay)
It's very weird that only the center of a fireball will burn a
tree, and unintuitive for new players (speaking from my & others'
experiences). Don't think there are any major balance issues
involved.

--------------------------------------------------------------------------------
9a4f159759 | Nicholas Feinberg | 2016-03-10 10:05:26 -0800

Trim some multiple d:1 upstairs (ldf)

--------------------------------------------------------------------------------
c857390d54 | Nicholas Feinberg | 2016-03-10 09:55:12 -0800

Let ignition & hellfire burn trees (|amethyst)
The latter seemed to be already intended, the former seems
reasonable.

--------------------------------------------------------------------------------
9c1b95f858 | Nicholas Feinberg | 2016-03-10 00:47:31 -0800

Deduplicate Wind Blast messages
Wind drakes would, in succession, exhale & then summon a great
blast of wind, which seemed excessive.

--------------------------------------------------------------------------------
8284157be3 | Nicholas Feinberg | 2016-03-10 00:16:53 -0800

Replace chimeras with mutant beasts*
*... in the .des docs.

--------------------------------------------------------------------------------
bfe8813d46 | Nicholas Feinberg | 2016-03-10 00:03:40 -0800

Fix a volcano syntax error

--------------------------------------------------------------------------------
9c1a92ebe1 | Nicholas Feinberg | 2016-03-09 08:56:24 -0800

Tweak & simplify xp abyss XP exits
Make the cost scale a bit harder at high XP (so back to the full
cost of recharging an elemental evoker), since in play it felt too
easy to spawn an exit (anticlimactic) - but reduce the cost for
stairs to the same cost as an exit. Different costs was a very
pointless complication - don't know what I was thinking...

--------------------------------------------------------------------------------
cf2081b207 | Shmuale Mark | 2016-03-09 07:55:00 -0500

Merge pull request #245 from edsrzf/dismissal-alphashop
Put amulet of dismissal in the right alphashop
--------------------------------------------------------------------------------
ba0b6a2134 | Evan Shaw | 2016-03-09 21:41:49 +1300

Put amulet of dismissal in the right alphashop

--------------------------------------------------------------------------------
1c7284ab87 | Nicholas Feinberg | 2016-03-08 18:06:11 -0800

Try to reduce monster flip-flopping further
>Triple the chance of making ranged monsters move closer to you
rather than repositioning themselves to fire at you after breaking
LOS, to try to reduce weird situations where they constantly flip
back and forth. (See previous commit.) Also, reset the firing pos
if the monster decides not to reposition.

--------------------------------------------------------------------------------
d7832a2a76 | Nicholas Feinberg | 2016-03-08 17:24:55 -0800

Patch up some questionable monster ai (Brannock)
By making attack_only imply !ench_too, this should reduce the
number of cases where monsters endlessly flip-flop between the
shelter of a corner & a 'firing position' slightly back from that
corner. (Ref e.g. http://i.imgur.com/c7c3VQw.gif )

They'll still do something sort of like that while they have a
ranged attack available (ammo or a conjuration), but that makes
very slightly more sense, and should involve more time attacking
& less time flip-flopping anyway.

--------------------------------------------------------------------------------
54b9666d1c | Nicholas Feinberg | 2016-03-08 16:44:44 -0800

Improve webtiles shop icon display
Put a space between the icon and the shop text.

This is a hack, but it's consistent with inventory items...?

--------------------------------------------------------------------------------
e9b3397e1e | Nicholas Feinberg | 2016-03-08 16:01:09 -0800

Encourage murder in the Abyss (regret-index)
Add an XP timer to trips to the abyss. When you get enough xp
(roughly half the requirement for an elemental evocable), an exit
from the abyss will open. Further kills will tick down timers to
spawn stairs leading deeper into the abyss. (These requiring as
much XP as an evoker recharge.)

The goal here is twofold. For early trips to the abyss, this should
occasionally encourage some risk-taking if you get a chance at a
kill, since almost anything will get you enough xp to earn a ticket
out. (Of course, almost anything can kill you.) For later trips,
this should reduce the frustration the abyss sometimes engenders by
allowing the player to make progress toward deeper levels.

As the comment notes, the message on entering the abyss *really*
should be a hints mode thing, but we don't support that well enough
at present.

--------------------------------------------------------------------------------
243bd92fd9 | Chris Campbell | 2016-03-08 16:16:36 +0000

Reduce Tukima's Dance power modifier
Since although it works against less monsters than Confuse, for example, it's
a strong effect against those targets and once it succeeds they're then
disarmed for good.

--------------------------------------------------------------------------------
642cb5c5bc | Chris Campbell | 2016-03-08 16:06:23 +0000

Fix orb-shaped monsters having buggy hands
Nested switch/cases :')

--------------------------------------------------------------------------------
8f38a7d565 | Chris Campbell | 2016-03-08 15:20:08 +0000

Shorten player breath weapon ranges for squarelos
They weren't adjusted with other spell/ability ranges (also remove the comment
about matching draconian breath ranges, since many of them don't).

--------------------------------------------------------------------------------
2212f85b52 | Nicholas Feinberg | 2016-03-07 23:43:05 -0800

Don't let d:1 gnolls get nets
They're a top-tier d:1 threat regardless, possibly the top-tier
threat; that's fine, it's good to have enemies a wise player
should run from. But, of course, if you're netted, you can't run.
It's a bit much for d:1.

--------------------------------------------------------------------------------
18adbc75b9 | Nicholas Feinberg | 2016-03-07 22:44:43 -0800

Fix very-high-power banishment (regret-index)
Max depth was capped at 5, but min wasn't, which would hit an
assertion in random_range and crash.

Probably this couldn't happen in practice.

--------------------------------------------------------------------------------
0bea4e8756 | Neil Moore | 2016-03-08 00:14:08 -0500

Unbrace.
[skip ci]

--------------------------------------------------------------------------------
524675f365 | Neil Moore | 2016-03-08 00:13:54 -0500

Add an orc corpse comment.
[skip ci]

--------------------------------------------------------------------------------
2147dd36a0 | Neil Moore | 2016-03-08 00:08:24 -0500

Don't keep prompting after choosing a corpse to resurrect.
Later choices would override earlier ones, but even so it was rather
confusing to say "yes" about several corpses and only get one
resurrection.

This prompt probably still needs some tweaking for consistency with
other commands such as (c)hop.

--------------------------------------------------------------------------------
6212e684cb | Neil Moore | 2016-03-07 23:56:53 -0500

Don't lose orc corpse identity on save + restore.
We stored the just-killed orc in its corpse for future resurrection.
Unfortunately, dead monsters are marshalled as just MONS_NO_MONSTER (two
bytes) without any of their old information.  So after saving and
restoring, the dead orc had become a "DEAD MONSTER".

Now restore the corpse's copy of the orc to full HP so that it persists
across a save.  Furthermore, ensure that it has at least 1 maxhp, just
in case (if not, resurrection would put a DOA monster in the grid, with
a potential crash when something walks into it).

Existing corpses containing a DEAD MONSTER are cleaned out on restore.
Unfortunately this makes them non-resurrectable, but all the necessary
information has already been lost, so there's not much that can be done
about that.

--------------------------------------------------------------------------------
cb34c7c5c1 | Nicholas Feinberg | 2016-03-07 14:47:50 -0800

Datafy more monster tiles
Only some real weird special cases left.

--------------------------------------------------------------------------------
dcd99a1df8 | Shmuale Mark | 2016-03-07 17:11:08 -0500

Fix MONS_NO_MONSTER orc corpses on creation time.
This should give some insight as to what's causing the crashes,
assuming the prop isn't getting messed up later...

--------------------------------------------------------------------------------
2057906ad9 | Nicholas Feinberg | 2016-03-07 12:47:05 -0800

Revert "Dataify weapon/shield tile offsets"
The cause was noble, the results less so.

This reverts commit 416722485d3c4f2922fb8844376c276efbf12155.

--------------------------------------------------------------------------------
be15c29974 | Neil Moore | 2016-03-07 10:33:16 -0500

Don't allow supercharging non-chargeables (pubby)
Your great mace glows brightly! Pakellas booms: Use this gift wisely!
e) +72 great mace

Apparently someone told Lasty.

--------------------------------------------------------------------------------
37626c54d3 | Nicholas Feinberg | 2016-03-06 21:06:45 -0800

Changelog through 0.18-a0-1521-g59d19af

--------------------------------------------------------------------------------
59d19afd3d | Nicholas Feinberg | 2016-03-06 20:34:21 -0800

Revert "Enable autopickup of dangerous items"
Turns out that most dangerous items are not actually worth picking
up.

This reverts commit 73f40750d1f9e867fe8bcbef47b619ba3d4fde69, and
also marks ambrosia as non-dangerous so that it will be picked up.

--------------------------------------------------------------------------------
416722485d | Nicholas Feinberg | 2016-03-06 20:29:20 -0800

Dataify weapon/shield tile offsets
Once again, aside from a few special cases, mainly merfolk.

Merfolk..........

--------------------------------------------------------------------------------
138153234d | Shmuale Mark | 2016-03-06 19:51:00 -0500

Merge pull request #233 from qoala/clean_up_merfolk_swim_checks
Clean up merfolk swimming checks (#10253)
--------------------------------------------------------------------------------
dcabbe93a0 | Nicholas Feinberg | 2016-03-06 16:38:14 -0800

Move most tiles into data
The remainder could be datafied, but only nontrivially.

--------------------------------------------------------------------------------
333d9320e6 | Nicholas Feinberg | 2016-03-06 10:32:04 -0800

Simplify rMut
For so long as rmut jewellery remains removed, the property is
going to be rare and strange; it shouldn't be further complicated
by working differently from the mutation. They now both give the
same 2/3rds chance of preventing mutations.

--------------------------------------------------------------------------------
6ed93643b6 | Nicholas Feinberg | 2016-03-05 12:16:36 -0800

Simplify ability autotraining
The old values were nonsense; this replaces them with training
on base failure chance, which is at least consistent nonsense.

--------------------------------------------------------------------------------
7b1393e2b2 | Nicholas Feinberg | 2016-03-05 11:47:47 -0800

Remove Sif Muna's amnesia failure chance
Did nothing but occasionally waste the player's time.

--------------------------------------------------------------------------------
e60c81d3bc | Chris Campbell | 2016-03-05 19:25:22 +0000

Prevent orcs from swapping from Beogh gifts back to their original equipment
Let's assume that the player at least thinks they know best.

--------------------------------------------------------------------------------
eab8b1e64b | Chris Campbell | 2016-03-05 19:25:22 +0000

Don't allow gifting equipped items
Causes weird behaviour in various edge cases (such as items with unequip
effects).

--------------------------------------------------------------------------------
d92d764db8 | Chris Campbell | 2016-03-05 19:25:22 +0000

Don't allow gifting shields to orcs with two-handed ranged weapons

--------------------------------------------------------------------------------
2bd7971397 | Nicholas Feinberg | 2016-03-05 09:48:18 -0800

Deduplicate ability skills
death to switch/case

--------------------------------------------------------------------------------
be811a7581 | Chris Campbell | 2016-03-05 12:44:31 +0000

Rework Qazlal's elemental-summoning wrath
To summon a range of elemental themed monsters depending on XL. The previous
implementation adjusted monster HD, which isn't at all clear and makes the
wrath summons completely different to the regular versions of the elementals
that the player would expect.

--------------------------------------------------------------------------------
69458e0dca | Nicholas Feinberg | 2016-03-04 14:52:57 -0800

Dataify ability failure chances
There is at least one bug in this commit. Can you spot it?

--------------------------------------------------------------------------------
8c105fbbfa | Alan Malloy | 2016-03-04 14:02:39 -0800

Convert an elaborate set of if/else branches to one expression

--------------------------------------------------------------------------------
abc1521f60 | Neil Moore | 2016-03-04 16:45:45 -0500

Improve _shop_type_suffix.
Constify the array, use ARRAYSZ rather than hard-coding the size, and
return a C string rather than a string object.

--------------------------------------------------------------------------------
8cd6894227 | Chris Campbell | 2016-03-04 20:48:30 +0000

Remove Mass Confusion
Alistair's Intoxication was recently adjusted and is hopefully a more
interesting version of roughly the same effect. Mass Confusion remains as a
monster spell, since a few monsters make use of it as a more powerful version
of Confuse.

--------------------------------------------------------------------------------
19455275af | Chris Campbell | 2016-03-04 20:48:19 +0000

Remove some unnecessary handling for god book gifts
TSO and Ely don't gift books, so remove some pretty outdated checks for which
spells their nonexistent book gifts can contain, as well as a check for Xom not
gifting divinations spells.

--------------------------------------------------------------------------------
124be6da6d | Shmuale Mark | 2016-03-04 13:32:17 -0500

Prevent an unnecessary copy.
Though item_value copies the item_def anyway...

--------------------------------------------------------------------------------
a9f8bd0533 | Nicholas Feinberg | 2016-03-04 08:28:51 -0800

Fix spectral shapeshifters (jefus)
Polymorph will only change monsters into other monsters with
the same or overlapping holiness; that is, demons will become
demons, natural monsters other natural monsters, etc. Shapeshifters
have a special case: to prevent chain shifting from natural to
mixed natural/demonic to fully demonic monsters, they can only
shift into natural creatures. However, spectral shapeshifters are
undead, so the two constraints combined mean they'll only shift
into something with both natural and undead holiness: that is,
ghost crabs. Over and over again.

This fixes that.

--------------------------------------------------------------------------------
e21c63c48a | Alan Malloy | 2016-03-03 21:31:30 -0800

Make a const static, and inline pointless temp variable

--------------------------------------------------------------------------------
4723df3ce0 | Alan Malloy | 2016-03-03 21:31:29 -0800

Lift out a cast

--------------------------------------------------------------------------------
35814f03a2 | Alan Malloy | 2016-03-03 21:10:59 -0800

lifeforce -> life force, for consistency

--------------------------------------------------------------------------------
788d838757 | Shmuale Mark | 2016-03-03 21:51:12 -0500

Smells and Sounds of Crawl (#10311).

--------------------------------------------------------------------------------
27d312378e | Nicholas Feinberg | 2016-03-03 13:57:38 -0800

Improve omnireflect/AUTOMATIC_HIT interactions
AUTOMATIC_HIT effects (e.g. enchantments, magic dart...) could be
reflected if they rolled low *or* if the special 'enchantment block'
roll succeeded, which was not intended. Only the latter should now
apply.

--------------------------------------------------------------------------------
3ea706f974 | Nicholas Feinberg | 2016-03-03 13:45:03 -0800

Intensify Doom Howl
Spawn a nasty monster once every 2-4 turns, rather than every 3-5.
(The latter seemed a bit underwhelming in practice.)

--------------------------------------------------------------------------------
21fd751387 | Nicholas Feinberg | 2016-03-03 13:15:31 -0800

Make water nymphs more fragile
They're the (or one of the) nastiest monsters in the nastiest lair
branch; it seems reasonable to tone them down a little. They'd be
fine more uncommon top-end enemies, but it seems more interesting
to have them appear regularly throughout the branch. The super
lethal waterstrike is their biggest distinctive trait, so instead
of nerfing that, make them a bit more fragile. (-20% HP and a bit
of AC.)

--------------------------------------------------------------------------------
60c299062f | Shmuale Mark | 2016-03-03 12:37:09 -0500

Fix a false positive force_more_message (Piginabag).

--------------------------------------------------------------------------------
2b1448d632 | Nicholas Feinberg | 2016-03-03 08:17:57 -0800

Waterstrike technical tweaks
Make its damage display in monster, and make it use spell_hd().
(Not that the latter will come up.)

--------------------------------------------------------------------------------
a1dd5f154e | Shmuale Mark | 2016-03-03 07:36:59 -0500

Fix rat type (#10309).

--------------------------------------------------------------------------------
504aa14340 | Nicholas Feinberg | 2016-03-02 23:23:05 -0800

Simplify Passwall
It no longer has a random per-cast range; instead, it uses the
same spell range system as everything else. Average range is
roughly similar, max range lags considerably, but I'm not sure
that long-ranged Passwalling has ever been a major factor in the
spell's use.

Bonus: The spell's range is now displayed on I.

--------------------------------------------------------------------------------
10dd99b8fd | Nicholas Feinberg | 2016-03-02 22:36:36 -0800

Message when nymphs drown notable features
In an attempt to reduce confusion (ala 8078).

--------------------------------------------------------------------------------
3180e6704d | Nicholas Feinberg | 2016-03-02 22:10:21 -0800

Let flooding affect all walkable terrain
Since the ^O issue is solved, this should be okay now? And
should discourage dumb 'stand on stairs/shops/etc" tricks for
fighting water nymphs.

Nerf nymphs if necessary, of course.

--------------------------------------------------------------------------------
13b51b8250 | Nicholas Feinberg | 2016-03-02 21:58:35 -0800

Fix timed portals (10308)
Broken by e26f609298.

--------------------------------------------------------------------------------
60b4ee2488 | Nicholas Feinberg | 2016-03-02 21:06:19 -0800

Disable gozag service fees in sprint (RPATDO_LAMD)
They counted all gold on the map as 'available', which essentially
made the god impossible to join except in the very late game.

--------------------------------------------------------------------------------
189885cc8b | Nicholas Feinberg | 2016-03-02 20:39:20 -0800

Don't let monsters pickup from seen stacks (8723)
Since we're forbidding monster pickup otherwise, it *looks* very
strange to allow picking up items that the player technically
hasn't seen but are still right in front of them. Also, there's no
real reason to let monsters do so.

--------------------------------------------------------------------------------
95ebbe145f | Alan Malloy | 2016-03-02 12:08:16 -0800

Check invoc fail% *after* checking usefulnss (wheals)

--------------------------------------------------------------------------------
26ca7b4008 | Alan Malloy | 2016-03-02 12:08:16 -0800

Don't waste a turn when elemental force finds no clouds

--------------------------------------------------------------------------------
bc23ccf7b8 | Eino Keskitalo | 2016-03-02 17:21:17 +0200

Revert "An herbivore, not a herbivore: the H is silent"
The H is silent in American English, but Crawl uses Australian English.
(http://dictionary.cambridge.org/dictionary/english/herb?a=british&q=herb)

This reverts commit c94ee51b0a9f5163448d1f61c4fed3abe95c4186.

--------------------------------------------------------------------------------
708b138207 | Shmuale Mark | 2016-03-01 21:02:25 -0500

Fix the Upheaval targgeter (amalloy).

--------------------------------------------------------------------------------
f51ec0939b | Shmuale Mark | 2016-03-01 19:04:02 -0500

Improve messaging.

--------------------------------------------------------------------------------
3ad95a03b4 | Shmuale Mark | 2016-03-01 19:04:02 -0500

Add ontoclasm's tile for Resurrection.

--------------------------------------------------------------------------------
bc8a2b66c1 | Shmuale Mark | 2016-03-01 19:04:02 -0500

Allow choosing between corpses on the same square (chequers).

--------------------------------------------------------------------------------
42755125d1 | Shmuale Mark | 2016-03-01 19:04:02 -0500

Hopefully fix some crashes.

--------------------------------------------------------------------------------
7d618d4b46 | Shmuale Mark | 2016-03-01 19:04:02 -0500

Refactor for item sacrifice removal.

--------------------------------------------------------------------------------
6e20f5a897 | Shmuale Mark | 2016-03-01 19:04:02 -0500

Remove Beogh corpse sacrifice; increase piety gain from priests.
The sacrifice was replaced by the resurrection ability. Since there's a
large overlap between orcs and priests, it seems reasonable to keep the
piety gain up by increasing the already-present mechanic.

--------------------------------------------------------------------------------
c16bf92a8c | Shmuale Mark | 2016-03-01 19:04:02 -0500

Add a 6* Beogh ability, Resurrection.
Use on an orc corpse to bring it back to life. Unlike other 6* abilities,
this isn't a one-time deal, though it does have a rather high piety cost
so it won't be super spammable.

--------------------------------------------------------------------------------
3609211330 | Nicholas Feinberg | 2016-03-01 16:01:33 -0800

Merge pull request #241 from alexjurkiewicz/abandon-confirmation
Confirm before abandoning your god when (p)raying.
--------------------------------------------------------------------------------
bbaf034c52 | Nicholas Feinberg | 2016-03-01 08:26:01 -0800

Fix wizmode terrain change (|amethyst)
Back up to six parameters...

--------------------------------------------------------------------------------
e1ff36ed47 | Nicholas Feinberg | 2016-03-01 08:04:57 -0800

Don't forget about sealed branches (9855)
Branches which have their entrances temporarily sealed by a vault
warden should still appear in ^O.

Travel is still intermittently wonky.

--------------------------------------------------------------------------------
e26f609298 | Nicholas Feinberg | 2016-03-01 07:42:52 -0800

Remove two dungeon_terrain_changed params
Neither had any reason to exist.

--------------------------------------------------------------------------------
80e3b75b14 | Alex Jurkiewicz | 2016-03-01 23:00:00 +1100

Don't let noise break mesmerisation.
It's a spoilery mechanic which encourages carting around mostly-useless
items (?noise) through a single branch of the game.

--------------------------------------------------------------------------------
f8e38dcd02 | Alex Jurkiewicz | 2016-03-01 23:00:00 +1100

Confirm before abandoning your god when (p)raying.

--------------------------------------------------------------------------------
af180a178a | Nicholas Feinberg | 2016-02-29 21:41:12 -0800

Fix ettin tile trailing pixels in webtiles
By shifting the second (right) weapon left by one pixel.

Plenty of other things that can still cause this, of course.

--------------------------------------------------------------------------------
3113c52aa2 | Nicholas Feinberg | 2016-02-29 21:00:23 -0800

Fix a warning for statue interrupts
Cunningly hidden in initfile code.

--------------------------------------------------------------------------------
2490093ca2 | Nicholas Feinberg | 2016-02-29 20:52:37 -0800

Remove some decade-old dead code
Was historically used to interrupt activities when a silver/orange
statue acted; became obsolete in 1d0f57cbceb77, November 2006.

--------------------------------------------------------------------------------
600d0f4a5c | Nicholas Feinberg | 2016-02-29 20:35:16 -0800

Fix Bolt of Cold damage/acc (dude679)
Oops, again.

--------------------------------------------------------------------------------
f5ca842e41 | Nicholas Feinberg | 2016-02-29 18:28:59 -0800

Revert "Don't try to paralyse paralysed players"
Opinion seemed to be that Grinder should, in fact, be *that*
dumb.

(Also something about gooes and passive effects...?)

This reverts commit 7ddb43b57b4992cec77234efaadfc58671e8043a.

--------------------------------------------------------------------------------
dda61229e9 | Nicholas Feinberg | 2016-02-29 18:02:17 -0800

Don't let warlock's mirror reflect Glaciate
Doesn't really work right (not reflected at caster), and not
consistent with other level 9 spells (you can't reflect firestorm!)
Reasonable to consider it 'explosion-like'.

...also, I strongly suspect it'd reflect Glaciate with 100%
success, though that could be fixable.

--------------------------------------------------------------------------------
7ddb43b57b | Nicholas Feinberg | 2016-02-29 17:53:08 -0800

Don't try to paralyse paralysed players (8691)
It's good for monsters to be a little dumb about casting, but
this is too much.

--------------------------------------------------------------------------------
3de893e0c7 | Nicholas Feinberg | 2016-02-29 16:18:33 -0800

Merge pull request #235 from alexjurkiewicz/panlord-tweaks
Panlord tweaks
--------------------------------------------------------------------------------
2d5df2f40b | Alex Jurkiewicz | 2016-02-29 23:00:00 +1100

Simplify panlord description logic.
And add some more miscellaneous descriptions.

--------------------------------------------------------------------------------
2849d24bba | Alex Jurkiewicz | 2016-02-29 23:00:00 +1100

Make non-spellcaster panlords scarier.
So they're not left behind their more magical cousins.

--------------------------------------------------------------------------------
05c187f94a | Alex Jurkiewicz | 2016-02-29 23:00:00 +1100

Tweak and upgrade panlord spells.
This is both a code cleanup and spell list tweaking. Specifically:
* Panlords get fewer spells on average, but in a (perhaps) more
  intelligent manner.
* Slightly fewer panlords will have a self enchantment (75% -> 50%)
* Add spells to panlords in only one way
* Try not to give summoning panlords spells that cause massive AoE
  damage (and vice versa).
* Add some more dangerous spells to the mix (tornado panlords!).
* Remove some super weak spells.

Overall, this should noticeably toughen pan lord spell sets.

--------------------------------------------------------------------------------
7d44d62111 | Alex Jurkiewicz | 2016-02-29 23:00:00 +1100

Give panlords more variable rElec levels.
(30% no resist, 60% rElec+, 10% rElec∞)

--------------------------------------------------------------------------------
0c59b822d2 | Alex Jurkiewicz | 2016-02-29 23:00:00 +1100

Give a few panlords rF+++/rC+++.
Previously they couldn't be completely immune, now 10% are.

The 10% comes out of the 30% chance for rF++/rC++.

--------------------------------------------------------------------------------
768198ce16 | Alex Jurkiewicz | 2016-02-29 23:00:00 +1100

Make panlord AC & EV (mostly) inversely correlated.
Average AC+EV levels go up by 5, but the min & max remain the same and
variance is reduced.

--------------------------------------------------------------------------------
5e6cd1ed66 | Nicholas Feinberg | 2016-02-28 23:19:46 -0800

Squash OTR-killed monster shouts similarly
Noticed it had the same code, per 49704efe.

--------------------------------------------------------------------------------
3384e4992b | Nicholas Feinberg | 2016-02-28 23:03:39 -0800

Stop the frozen dead from shouting (8512)
Monsters killed with Refrigeration should not shout. (Because,
they are dead.)

--------------------------------------------------------------------------------
7beef34388 | Nicholas Feinberg | 2016-02-28 22:58:53 -0800

Fix bush immunity code

--------------------------------------------------------------------------------
310a2a9b3b | Nicholas Feinberg | 2016-02-28 22:49:55 -0800

Squash misleading Fedhas messages (8769)
As the bug notes, you can't hit bushes (or briar patches)
without shooting directly at them, so Fedhas isn't actually doing
anything in those cases & should be quiet.

This code is very ugly and I apologize.

--------------------------------------------------------------------------------
2123858562 | Nicholas Feinberg | 2016-02-28 22:40:51 -0800

Don't allow evolving petrified plants (8914)
If the lair vault with perm_ench:petrified plants is removed,
revert this.

--------------------------------------------------------------------------------
53f5581448 | Nicholas Feinberg | 2016-02-28 22:31:26 -0800

Fix 'buggy note' message for demonspawn mut (9815)
When a mutation became permanent.

See also bug 10282.

--------------------------------------------------------------------------------
b9d2b994ab | Nicholas Feinberg | 2016-02-28 22:27:09 -0800

Fix ring of flames' expiry message (9892)
Wouldn't appear if you rolled the lowest possible duration, 5
(which is also the threshold for the expiry message appearing).
Fixed that by increasing the base duration by 1 turn & subtracting
0-2 turns from the duration when you hit the midpoint, thus
keeping the same average duration.

--------------------------------------------------------------------------------
421e043856 | Nicholas Feinberg | 2016-02-28 22:06:52 -0800

Make dumb monsters shut up (9930)

--------------------------------------------------------------------------------
77c4e5a7ae | Nicholas Feinberg | 2016-02-28 21:50:28 -0800

Fix variable MR
Was broken for player ghosts, mutant beasts, and other queer
creatures; didn't respect variable HD.

--------------------------------------------------------------------------------
94cdca5b2f | Nicholas Feinberg | 2016-02-28 21:36:29 -0800

Fixup vault mon derived undead names (9899)
Probably the names should just be stripped entirely, but that's
an entirely different kettle of worms. (Trying to strip the
correct names only.)

--------------------------------------------------------------------------------
3deba8e0a1 | Nicholas Feinberg | 2016-02-28 21:32:05 -0800

Remove an unused return value
I'm not quite sure what this was even supposed to connote?

--------------------------------------------------------------------------------
e8f155150d | Nicholas Feinberg | 2016-02-28 20:46:23 -0800

Mark op amphib suppressed appropriately (10034)
ughcode

--------------------------------------------------------------------------------
0dc8126f2d | Nicholas Feinberg | 2016-02-28 20:28:08 -0800

No Blood From Ghosts (10036)
Don't let vampires drink spectralized ("ghostly") enemies' blood.

This problem will probably show up elsewhere, as well.

--------------------------------------------------------------------------------
28d1087747 | Nicholas Feinberg | 2016-02-28 20:18:09 -0800

Comment an assertion

--------------------------------------------------------------------------------
56f3edbb89 | Nicholas Feinberg | 2016-02-28 20:17:43 -0800

Fix juggernaut derived undead tiles
Skeletons, etc were broken when the unique zombie tile was added.

--------------------------------------------------------------------------------
15fb17b166 | Nicholas Feinberg | 2016-02-28 18:07:08 -0800

Fix jivya wall-lowering when below 6* (10129)
If you reached 6* with Jiyva, and then dropped below 6* before
re-entering Slime:6, the walls would be turned into clear rock
instead of being removed.

--------------------------------------------------------------------------------
e74535ecf8 | Nicholas Feinberg | 2016-02-28 17:35:21 -0800

Don't let bribed demons escape Hell (10245)
It doesn't seem necessarily wrong to allow demons to move from one
hell branch to the vestibule (or vice versa), but it seems like it
would be more complex to allow that.

--------------------------------------------------------------------------------
b66fc2d549 | Nicholas Feinberg | 2016-02-28 17:24:44 -0800

Give starspawn tentacles sinv (10266)
Since tentacled starspawns have it, and it seems a bit useless
otherwise.

--------------------------------------------------------------------------------
fa8758de1d | Chris Campbell | 2016-02-28 17:49:08 +0000

Update Flash Freeze description
Although it's not likely to actually be relevant in the one place most players
will encounter it, since rime drakes' breath timeout is fairly likely to last
longer than the freeze duration.

--------------------------------------------------------------------------------
ee79d6599c | Nicholas Feinberg | 2016-02-27 16:18:37 -0800

Scale flash freeze accuracy harder
Per request.

--------------------------------------------------------------------------------
728087f134 | Nicholas Feinberg | 2016-02-27 15:42:52 -0800

Fix flash freeze's AUTOMATIC_HIT
It now has ~the same to-hit as fire breath does on drakes, and
very very high to-hit on later monsters (scales hard with power);
can scale further if necessary.

Should also fix a theoretical bug involving flash freeze & the
warlock's mirror.

--------------------------------------------------------------------------------
1d8109a310 | regret-index | 2016-02-27 16:42:40 -0500

Nerf some more overly-vicious early vaults
Particularly high stand-outs vaults in recent D death rates not part of vault
sets and not very early vaults using regular floor chaff. Some ambient syntax
clean-up, and some mild buffs for much later depth placements, too.
 * Overflow altars. tgw_xom is repaired away from chaos-weapon-gnoll spam,
   Chei and Vehumet vaults about wands get pushed slightly deeper still,
   and the Fedhas centaur vault has slight pillar presence for approach.
 * Some generic vaguely-open-terrain 098 vaults get less early 9s and 8s.
 * Less killer bees in the food vault with them, less rare forested ogres,
   and no more D:5 deep elf knights.

--------------------------------------------------------------------------------
2c957a37b4 | Chris Campbell | 2016-02-27 13:54:30 +0000

Fix all Ziggurats per-game having the same layout
Broken since 07949ec7, as it removed the call to ziggurat_initialiser when
entering a new Zig. Now checks depth in order to know when to reroll the
builder, since doing it with an onclimb trigger wouldn't work for Ziggurat
figurines.

--------------------------------------------------------------------------------
d46e7da967 | Chris Campbell | 2016-02-27 13:54:30 +0000

Trim the changelog
Remove some mostly inconsequential changes and substantially shorten some of
the longer descriptions.

--------------------------------------------------------------------------------
9c1b2fb3af | Nicholas Feinberg | 2016-02-27 00:27:43 -0800

Simplify inscriptions space trimming
Why are we supporting leading but not trailing spaces...? Can
we just use trimmed_string?

--------------------------------------------------------------------------------
6e54fa5990 | Nicholas Feinberg | 2016-02-27 00:08:02 -0800

Make berserk/insane monsters reckless wrt traps
I do not want to see another berserk draconian trapped by a spear
trap in the lungs of zot! It's embarassing, frankly.

--------------------------------------------------------------------------------
a8e49e5fe3 | Nicholas Feinberg | 2016-02-26 22:30:46 -0800

Nerf extreme cases of gold distraction (Piginabag)
It could completely paralyse ziggurats. This attempt is rough
and may or may not solve the problem; testing is inconclusive.
(Credit MarvinPA for most of the implementation work.)

<|amethyst> ...the general Crawl principle of "we'll do some weird
hard-to-tweak shit for our probability distribution, then
figure out the math later"

--------------------------------------------------------------------------------
2e40b1f43b | Nicholas Feinberg | 2016-02-26 21:11:15 -0800

Simplify shock serpent discharges
They now retaliate directly & exclusively at creatures damaging
them, rather than causing an explosion that only harms enemies
(???).

--------------------------------------------------------------------------------
3b9a63c00e | Neil Moore | 2016-02-26 22:54:16 -0500

Fix broken tag messages in ?#.
We weren't interpreting colour tags for display, but because of over-
enthusiastic copy-and-pasting, we *were* telling wordwrap_line to parse
colour tags, causing complaints when < characters appeared in the dump.

--------------------------------------------------------------------------------
646b864b34 | Chris Campbell | 2016-02-26 22:46:41 +0000

Fix loud noises being unable to break fear

--------------------------------------------------------------------------------
4adbcc385f | Chris Campbell | 2016-02-26 22:46:21 +0000

Replace Hunting Cry with Warning Cry
Hunting Cry's behaviour of alerting certain monsters was unclear as well as
being special-cased to work differently on different casters. The special
effect was also unlikely to be very significant, and generally didn't justify
it existing alongside Warning Cry (which is nice and simple and just makes a
bunch of noise).

--------------------------------------------------------------------------------
f00e924613 | Chris Campbell | 2016-02-26 21:43:18 +0000

Adjust Jiyva's slimify wrath
Only try to trigger it if a valid target is available, otherwise fall through
to later effects instead of doing nothing.

--------------------------------------------------------------------------------
f6f3a78eb2 | Chris Campbell | 2016-02-26 21:43:17 +0000

Remove ranged (blowgun) stabs
Ranged stabbing doesn't have the interesting tradeoffs that melee stabs do
(in terms of requiring you to manage to actually get close to the monster), so
just ends up making already-powerful needles substantially more so in certain
circumstances.

--------------------------------------------------------------------------------
cb02040454 | Chris Campbell | 2016-02-26 21:43:17 +0000

Remove needles of slowing
Their effect is already partially duplicated by curare, and as one of the
needle brands that requires an HD roll it's very uninteresting and weak in
comparison to sleeping and confusion (which it was the same rarity as). Splits
its weight between those two brands.

--------------------------------------------------------------------------------
141d24370f | Nicholas Feinberg | 2016-02-25 21:32:58 -0800

Changelog fixes (GRUNT)

--------------------------------------------------------------------------------
eb4d619053 | Nicholas Feinberg | 2016-02-25 21:24:43 -0800

Update changelog through 0.18-a0-1418-ga86aa8f

--------------------------------------------------------------------------------
a86aa8fc28 | Nicholas Feinberg | 2016-02-25 18:16:36 -0800

Possibly fix other mon-info crashes

--------------------------------------------------------------------------------
5cdf284f27 | Nicholas Feinberg | 2016-02-25 18:09:35 -0800

Possibly? fix a force lance crash

--------------------------------------------------------------------------------
8ab202fef9 | Alex Jurkiewicz | 2016-02-25 17:56:01 -0800

Better messaging for draconian colour choice

--------------------------------------------------------------------------------
e9fbf7ffff | Nicholas Feinberg | 2016-02-25 17:31:55 -0800

Fix mons_class_res_magic() (|amethyst)

--------------------------------------------------------------------------------
cd7f35e080 | Neil Moore | 2016-02-25 00:07:04 -0500

Fix buggy unmarshalling of monster_info.
Holiness, intelligence, HD, AC, EV, and base EV were being permuted on
every save/restore.  Fortunately this only affected remembered out-of-sight
monsters.

--------------------------------------------------------------------------------
4eaa9acae9 | Nicholas Feinberg | 2016-02-24 20:00:23 -0800

Add a TODO for monster::res_magic

--------------------------------------------------------------------------------
9e95634894 | Nicholas Feinberg | 2016-02-24 19:57:23 -0800

Rewrite mon_info sinv & mr code (10265)
mon_info duplicated monster's MR & sinv calculations; it shouldn't
have, and now doesn't.

Note also the FIXME in unmarshallMonsterInfo.

--------------------------------------------------------------------------------
ba84f3e14b | Nicholas Feinberg | 2016-02-24 18:43:01 -0800

Don't waste iron giants' time with throws (10264)
...when they have nowhere to throw to.

--------------------------------------------------------------------------------
dd1e41a8eb | Nicholas Feinberg | 2016-02-24 17:42:09 -0800

Don't apply corrosion after shield blocks
It was intended to be intuitive, but ended up as something of an
unintuitive edge case instead.

This partially reverts 4b9db609dced.

--------------------------------------------------------------------------------
e843015c83 | Nicholas Feinberg | 2016-02-24 17:20:44 -0800

Trivialize a few MBs
We've got a data structure, let's use it!

--------------------------------------------------------------------------------
69e564c443 | Nicholas Feinberg | 2016-02-24 08:19:20 -0800

Expose the sputtercasting mechanic
(On orb spiders & stormcallers.)

--------------------------------------------------------------------------------
4a24519553 | Nicholas Feinberg | 2016-02-24 08:05:25 -0800

Remove a redundant function
Not super useful now that there's only one chant. Can always be
re-added if we add more again.

--------------------------------------------------------------------------------
f4880ca1f8 | Nicholas Feinberg | 2016-02-23 21:09:19 -0800

Fire Drake -> Rime Drake
Trades its fire breath for Flash Freeze, a single-target
conjuration that slows victims' movement for a few turns after a
hit. (Best known for showing up on Antaeus, previously.)

Seems like a fun mechanic to see earlier, and fire drakes have
huge overlap with hell hounds & lindwurms; trading them out should
add a little more variety to Lair and lands nearby.

--------------------------------------------------------------------------------
73f40750d1 | Nicholas Feinberg | 2016-02-23 18:06:48 -0800

Enable default autopickup of dangerous items
Since they tend to be useful more often than not.

Also, mark ?ambrosia as dangerous again for dd (was only marked
otherwise as a hack to get around this autopickup setting).

--------------------------------------------------------------------------------
423115569a | Shmuale Mark | 2016-02-23 20:11:50 -0500

Don't prompt when firing a penetrating attack through a plant.

--------------------------------------------------------------------------------
f276f8745f | Shmuale Mark | 2016-02-23 20:11:50 -0500

Factor out code to check for ranged attack penetration.

--------------------------------------------------------------------------------
22a2efc485 | Nicholas Feinberg | 2016-02-23 16:59:48 -0800

Prevent silent screaming
Howler monkeys screaming under Silence? Too spooky for me...

--------------------------------------------------------------------------------
2f4be58f68 | Nicholas Feinberg | 2016-02-23 16:59:12 -0800

Cut Howler Monkey XP
Not sure how it ended up that high; was always supposed to be a
bit lower.

--------------------------------------------------------------------------------
0ef5d54786 | Neil Moore | 2016-02-23 17:22:50 -0500

Fix zappy spells in monster.
monster was not initializing zap_index, because until recently that
was not relevant to monster spells.

--------------------------------------------------------------------------------
fc9c12e834 | Neil Moore | 2016-02-23 14:13:13 -0500

Apply player zap power caps to players, not monsters.

--------------------------------------------------------------------------------
62fe6c3e84 | regret-index | 2016-02-23 13:39:32 -0500

Zig Stacking: floor-filling slowed, sets scale contents up
Filling zig floors entirely pretty quickly over additional zigs does
establish a very high tier of difficulty for ziggurats, but it also
thoroughly centralizes approaches and character builds towards mass
conjurations after the first few.  With the excess in-place being extra
visible with ziggurat figurines, and easily reaching the hard monster cap
easily at seven to ten ziggurats, it seems appropiate to revise the
ziggurat stacking difficulty curve.

On a set-by-set basis, through tiered linear weightings, all ziggurat
monster sets now scale with ziggurat completion, spawning much less of
the weaker flavour spawns and much more of the high level spawns. Said
scaling mostly reach asymptotic points that differ based on the vague
preservation of first-zig set balance and the inherent available threats
of that set's theming, for the most part slowing at early to late twenty
zigs. This is paired with a new hd pool formula that moves at roughly a
third of the original speed.  Multiple-ziggurat balance being as arbitrary
and isolated as it is, this more elegant scaling provides a stronger but
delayed top-end of ziggurat floors, allowing non-conjurations builds to
play more ziggurats and giving conjurations users some even nastier floors.

Of course, there's also some house-keeping with each set's contents to
support this idea of zig stacking set scaling, some cuts and some promotions
to a few monsters in minor explicit weighting status or more standard
appearance rates for use in the set-upscaling or just general support
variety. The starter few ziggurats shouldn't be noticeably more
difficult, proportionally, for whatever that implies about brief dips
into them for items and experience.

Scaling eventual emphasis list:
 * Lair: catoblepae, hellephants, spriggan druids, (especially) caustic shrikes.
 * Snake: greater nagas, quicksilver dragons.
 * Swamp: tentacled monstrosities, shambling mangroves.
 * Shoals: merfolk aquamancers, water nymphs.
 * Spider: emperor scorpions, torpor snails, entropy weavers, orb spiders,
   (especially) ghost moths.
 * Slime: (slim) giant eyeballs, (extra) azure jellies, acid blobs.
 * Orc: Minor juggernauts after the first zig; orc warlords, orc high priests,
   juggernauts.
 * Elf: deep elf high priests, deep elf blademasters, deep elf master archers.
 * Vaults: titans, ancient liches, golden dragons.
 * Crypt: ancient champions, curse skulls, profane servitors, revenants,
   bone dragons, ancient liches.
 * Tomb: bennu, mummy priests, (especially) greater mummies
 * Abyss: starcursed masses, wretched stars, bone dragons, liches, corrupters.
 * Cocytus: tormentors, shard shrikes blizzard demons, (especially) ice fiends.
 * Gehenna: hellions, hell knights, balrugs, (especially) brimstone fiends.
 * Dis: iron dragons, war gargoyles, war gargoyles, (especially) hell sentinels.
 * Tartarus: shadow demons, reapers, curse toes, (especially) shadow fiends.
 * Fire: fire dragons, fire giants, salamander stormcallers, (especially)
   orbs of fire.
 * Ice: white draconian knights, shard shrikes, ice fiends.
 * Air: spriggan air mages, storm dragons, titans, electric golems.
 * Earth: crystal guardians, iron dragons, iron giants, hell sentinels.
 * Negative: shadow dragons, revenants, black suns, profane servitors,
   (especially) shadow fiends.
 * Holy: daevas, pearl dragons.
 * Chaos: pandemonium lords.
 * Giants: titans, iron giants, juggernauts.
 * Dragons: iron dragons, shadow dragons, quicksilver dragons, golden dragons.
 * Draconians: classed draconisns.
 * Ranged: stone giants, naga sharpshooters, merfolk javelineers, deep elf
   master archers.
 * Conjurers: draconian annihilators.
 * Pan: classed demonspawn, greater demons
 * Lair branches: greater nagas, tentacled monstrosities, merfolk javelineers,
   ghost moths.

Still addressable concerns:
 * floor shape tweaks and variety (note horizontal hexagon levels are
   smaller than the monsters-per-level cap)
 * pillar / entry vault variety
 * inherent thematic range limitations
 * much more standardizing of above set scaling

--------------------------------------------------------------------------------
26d626b042 | Nicholas Feinberg | 2016-02-22 22:40:40 -0800

Update some mon-data comments

--------------------------------------------------------------------------------
8753ca695b | regret-index | 2016-02-22 23:21:24 -0500

Cut Summon Demon from deep elf high priests, sorcerers spell lists
Deep elf demonologists, elementalists, and 4.5/6 of mages already vaguely
prominently summon, so the common default-spell-filler of summon demon on
high priests and sorcerers seems to be rather extraneous for the monster group
(and they've got their own spells to work with). Casting weight evenly
distributed to a bit more smiting and malign offering on high priests,
partially slid onto corrosive bolt for sorcerers.

Sole vault that supposes either of them cast summon demon is untouched for
variety and it already not reliably having much summoners. Translations for
the sorcerer description are scrapped due to inaccuracy (and the current one
is mediocre anyway, as neither corrosion nor banishment are actually very
Hellish).

--------------------------------------------------------------------------------
b527cc9f07 | Nicholas Feinberg | 2016-02-22 19:00:32 -0800

Let dart slugs cling to walls
To make them more useful for hypothetical future Sewer placement.

Also, shrink them down to make the aforementioned wall-clinging
more plausible.

--------------------------------------------------------------------------------
6f071321d5 | Nicholas Feinberg | 2016-02-22 18:29:32 -0800

New monster: Howler Monkeys
An uncommon early-mid D monster that makes a lot of noise. Roughly
statted like a weaker, slower version of a hound. From D:7 on,
spawns in packs.

--------------------------------------------------------------------------------
55e7268ae8 | Nicholas Feinberg | 2016-02-22 17:13:42 -0800

Reveal dart slugs' yellow streak
They probably shouldn't be the same color & pose as worms.

--------------------------------------------------------------------------------
59a4c01942 | Chris Campbell | 2016-02-22 17:45:21 +0000

Reduce loot in some overflow altars

--------------------------------------------------------------------------------
bff3df09cf | ontoclasm | 2016-02-22 01:05:37 -0600

Spell icons for rod/wand spells

--------------------------------------------------------------------------------
c02854d1db | Nicholas Feinberg | 2016-02-21 18:49:16 -0800

Un-change the elephant slug tile

--------------------------------------------------------------------------------
de3eec0e13 | Nicholas Feinberg | 2016-02-21 18:43:08 -0800

New monster: Dart Slug
Extremely early-game monster with a ranged attack. Slow, fragile,
but can do significant damage from range. (Well, significant for
D:1.)

Intended to add a small amount of variety to the early-game, and
fill an unfilled niche ('ultra-early-game ranged enemies'; only
competition is currently 'goblin with a stone').

I'm aware that real-life slug darts are a melee-range 'attack'.
:snail:

--------------------------------------------------------------------------------
f614229723 | Alex Jurkiewicz | 2016-02-21 21:07:21 -0500

Various improvements for Ash's curse item ability.
Add info about the number of remaining remove curse scrolls in the
"curse which item?" menu prompt.

Also fixes some bugs:
* don't mistake empty inventory slots for ?rc,
* refuse to use ?rc inscribed with !D,
* Remove a useless while(1) loop.

[Committer's note: Made some simplifications and formatting fixes;
expanded a couple of doc comments; and changed ashenzari_curse_item to
take the number of RC scrolls rather than their inventory index.

Closes #239 pull request. -nfm]

--------------------------------------------------------------------------------
9876bcc424 | Neil Moore | 2016-02-21 21:07:21 -0500

Allow Maurice to pick up seen floor items.
If he can take them from your inventory, why not the floor?  Also
applies to other AF_STEAL monsters, except that they don't exist.

--------------------------------------------------------------------------------
fdd3c3bce9 | Shmuale Mark | 2016-02-21 19:54:46 -0500

Remove an unused function.

--------------------------------------------------------------------------------
1abc7f6373 | Shmuale Mark | 2016-02-21 19:53:43 -0500

Properly warn before self-casting a useless invis (#7189).
Now that I'm older and wiser, I see that 990e6c630e was not the proper
solution.

--------------------------------------------------------------------------------
17ce43e751 | Neil Moore | 2016-02-21 19:12:10 -0500

Don't make <End> scroll further than <Down>.
The End key in a menu scrolled so that the last item appeared in the
next-to-last line of the display, rather than the last line.

--------------------------------------------------------------------------------
edaa9b3935 | Neil Moore | 2016-02-21 19:12:10 -0500

Word-wrap ?#.

--------------------------------------------------------------------------------
f5a3c2b3b6 | Shmuale Mark | 2016-02-21 19:10:19 -0500

Prevent self-hitting with Dazzling Spray (#8509).

--------------------------------------------------------------------------------
e957c2b549 | Mark Lodato | 2016-02-21 17:45:38 -0500

Update dump_order docs to match real default.

--------------------------------------------------------------------------------
03fd341c85 | Mark Lodato | 2016-02-21 17:45:32 -0500

End every chardump section with a blank line.
Previously, some sections added a blank line to the end and other added
it to the beginning, which made the code confusing and looked bad with
a custom dump_order.

--------------------------------------------------------------------------------
f1a7f309f3 | Mark Lodato | 2016-02-21 17:45:23 -0500

Add skill_gains table to the chardump.
The table concisely shows what skills were gained at what XL, which is
useful for summarizing how a player trained during the course of the
game.

This is implemented by using the gain skill / lose skill notes.
Previously, only some skill levels would be recorded in the notes unless
'note_all_skill_levels' was set.  Now all levels are recorded but only
those matching the options are displayed.  Without this change, and for
existing saves before this commit, the table will contain only parital
information (unless 'note_all_skill_levels' was enabled).

Example:

    Skill      XL: |  1  2  3  4  5  6  7  8  9 10 |
    ---------------+-------------------------------+-----
    Maces & Flails |  4  5     6     8  9 11 14    | 14.5
    Fighting       |           5  6           7  9 |  9.7
    Stealth        |                    1          |  1.2
    Armour         |                    3  6       |  6.0
    Dodging        |                               |  2.1

--------------------------------------------------------------------------------
7babcad328 | Zaba | 2016-02-21 21:30:33 +0300

Merge pull request #238 from oblivionis/patch-1
A small portion of the translation
--------------------------------------------------------------------------------
63869eb396 | oblivionis | 2016-02-21 20:31:55 +0300

A small portion of the translation

--------------------------------------------------------------------------------
74419449dd | Nicholas Feinberg | 2016-02-20 23:20:03 -0800

Fix (?) some monster speech for IMB/dazz

--------------------------------------------------------------------------------
11ba0feb85 | Nicholas Feinberg | 2016-02-20 23:06:56 -0800

Move most monster enchantments into zap-data
Except for ones that don't have player equivalents, and also Pain,
since that was buggy when I tried to move it over. (Wrong power
& damage. Very odd.)

--------------------------------------------------------------------------------
acb79b5131 | Nicholas Feinberg | 2016-02-20 22:44:15 -0800

Fix monster spell damage
??oops

--------------------------------------------------------------------------------
6b2096abfc | Nicholas Feinberg | 2016-02-20 22:06:29 -0800

Move most monster conjurations into zap-data
Exceptions are spells that don't have entries in spl-zap; easy
enough to fix, but this commit is already quite large enough.

--------------------------------------------------------------------------------
d6446658f5 | Corin Buchanan-Howland | 2016-02-20 20:43:24 -0800

Take piercing away from monster hexes (amalloy)
According to |amethyst and PleasingFungus, this is probably ancient
legacy nonsense. I just happened to activate it w/ Line Pass.

--------------------------------------------------------------------------------
608d2447e0 | Nicholas Feinberg | 2016-02-20 20:07:34 -0800

Fix palyth_temple_overflow_mages (regret-index)
It should actually place now, and not place deep elf mages on
d:5.

Prediction: a certain dev shows up shortly to trim the randbooks
& bonus orc wizards. Ganbatte!

--------------------------------------------------------------------------------
c45fe74b60 | Corin Buchanan-Howland | 2016-02-20 17:01:07 -0500

Let the wrath-slime flow again

--------------------------------------------------------------------------------
50c440cff6 | Neil Moore | 2016-02-20 16:14:32 -0500

More help lookup simplifications with strip_suffix.
Again assumes that keys will never legitimately begin with whitespace.

--------------------------------------------------------------------------------
854002d423 | Neil Moore | 2016-02-20 16:03:20 -0500

Simplify some help lookup code.
Use a range for loop, and use our existing strip_suffix function.
strip_suffix is not an exact replacement, since it trims spaces
from the beginning of the remaining string as well, but that
doesn't matter here.

--------------------------------------------------------------------------------
9c73106683 | Nicholas Feinberg | 2016-02-20 12:58:42 -0800

Remove a dead parameter

--------------------------------------------------------------------------------
a17763576f | Nicholas Feinberg | 2016-02-20 12:54:30 -0800

Align god ability costs in ^/altars
They wandered off to the far right of the screen, which looked
very silly on windows larger than 80 columns.

Description+cost combos will now spill over to multiple lines
rather than being chopped, but I'm not sure there are any large
enough to trigger that behavior at present.

--------------------------------------------------------------------------------
5bf1fdfac3 | Nicholas Feinberg | 2016-02-20 12:34:21 -0800

Recapitalize ?/A ability names
They looked quite ugly before.

--------------------------------------------------------------------------------
520197f9a5 | Nicholas Feinberg | 2016-02-20 12:27:32 -0800

doom howling -> doom-hounded
The other way implied that the player was howling.

--------------------------------------------------------------------------------
ddfceb113b | Nicholas Feinberg | 2016-02-20 12:25:25 -0800

Clarify Maxwell's Cage's description
Was significantly too oblique wrt magic regen, & used the second
person.

--------------------------------------------------------------------------------
62908bb802 | Neil Moore | 2016-02-20 14:48:48 -0500

Allow browsing char dump in-game with ?#
This command does not actually write out the dump to a file: in
principle, there is no reason it could not, but this way players have a
way to look at their current character info (action counts for example)
without overwriting the previous dump.

This required adjusting dump_params so that it owns its own text string
rather than a reference.  This does mean the text string is copied one
extra time in # and in ?#, unless the C++ return value optimization
kicks in.

In order to avoid misinterpreting "<" characters in the dump, add and
use the method formatted_scroller::add_raw_text().  It works like
add_text, except it does not attempt to parse colour strings.

--------------------------------------------------------------------------------
9293dd1a9b | ontoclasm | 2016-02-19 21:04:16 -0600

Brighten the Silent Spectre tile (gammafunk)

--------------------------------------------------------------------------------
617818c1bf | Neil Moore | 2016-02-19 21:00:04 -0500

Use -isystem for ncurses (geekosaur)
Otherwise, warnings from the ncurses headers will show up in our
compiler output, since they are not necessarily designed to compile
with -Wall and -pedantic in C++.

While we're at it, also refactor the non-pkgconfig ncurses defaults,
so they don't have to be duplicated between no-pkgconfig and the
pkgconfig-can't-find-ncurses cases.

--------------------------------------------------------------------------------
7f7627b367 | Neil Moore | 2016-02-19 19:33:21 -0500

Add a contributor to CREDITS and .mailmap
[skip ci]

--------------------------------------------------------------------------------
d0e70415cf | Neil Moore | 2016-02-19 10:35:22 -0500

Factor out ncurses vs ncursesw in the Makefile.
We had two almost identical blocks; and the one difference that wasn't
because of the different package/library names shouldn't have been there
(one copy left out a 2>/dev/null).

--------------------------------------------------------------------------------
cf5b5111a5 | Julian Ospald | 2016-02-19 16:02:54 +0100

MAKE: allow to skip automagic gold linker detection
This causes build failures on exherbo otherwise.

--------------------------------------------------------------------------------
4c94a6bea4 | Julian Ospald | 2016-02-19 16:02:54 +0100

MAKE: always use $(PKGCONFIG) instead of pkg-config
This fixes build failures on distributions that use special
binary prefixes and PATHs.

--------------------------------------------------------------------------------
fd26eed89b | Julian Ospald | 2016-02-19 16:02:11 +0100

MAKE: use PKGCONFIG to get ncurses flags, if available
This fixes build failures on some distributions:
https://bugs.gentoo.org/show_bug.cgi?id=527034

--------------------------------------------------------------------------------
bc5753f2e7 | Alan Malloy | 2016-02-18 16:27:36 -0800

14d2d9b, the sequel

--------------------------------------------------------------------------------
f2a912f44c | Neil Moore | 2016-02-18 10:32:29 -0500

Add generated grind.log to .gitignore
[skip ci]

--------------------------------------------------------------------------------
62dae19078 | Neil Moore | 2016-02-18 10:01:17 -0500

Revert "Local tiles: don't remove lines for the -more- and title twice." 
(#10288)
It was causing crashes in local tiles.

This reverts commit 3f755e8f9c12dadac5774f45335c715ecdc3dcf1.
This reverts commit ce912415c67dea1e609273b0a71470c9302fadef.

--------------------------------------------------------------------------------
affb144290 | Neil Moore | 2016-02-18 02:23:12 -0500

Correct hand bondage calculation for small forms (ProzacElf)
We were using the player's current size to calculate whether the
(perhaps melded) weapon is two-handed.  But that means that while you
are in bat form even a melded dagger is two-handed, thus giving full
hand bondage.  Since bondage is only calculated on equipment (un)cursing
and swapping, the "change" in hand bondage would show up as a spurious
message later when cursing an unrelated slot.

This could have theoretically allowed a player to have full hand bondage
despite wielding a 1H weapon and no shield (by causing a bondage
recalculation while in bat form with a melded 1H weapon, and then
avoiding recalculation once back in normal form).  In practice it
probably wasn't very exploitable, since trying to take advantage of the
"free" slot by putting on a shield would recalculate bondage, thereby
removing the erroneous bonus.

--------------------------------------------------------------------------------
404b4cb260 | Nicholas Feinberg | 2016-02-17 17:38:37 -0800

Simplify (wheals)

--------------------------------------------------------------------------------
07bb513e64 | Nicholas Feinberg | 2016-02-17 17:31:33 -0800

Make monster englaciation not hit pals (|amethyst)
Consistent with other mass enchants as cast by monsters, and very
helpful for the hexer when that's added.

--------------------------------------------------------------------------------
32b6e23ce4 | Nicholas Feinberg | 2016-02-16 22:44:35 -0800

Fix named allies' descriptions
Orcs and mercenaries.

--------------------------------------------------------------------------------
b9e2fb49c4 | Chris Campbell | 2016-02-16 20:29:47 +0000

Don't let Formicids dig in non-Formicid-shaped forms
And simplify another check that used the same logic.

--------------------------------------------------------------------------------
721e183e58 | Alan Malloy | 2016-02-15 22:24:10 -0800

Fix last commit: forgot to include some hunks

--------------------------------------------------------------------------------
7a7ab39013 | Alan Malloy | 2016-02-15 22:22:35 -0800

Don't let Nameless smite the player

--------------------------------------------------------------------------------
78c49766f6 | Alan Malloy | 2016-02-15 21:55:31 -0800

When monsters call on a god to smite you, use the god's name

--------------------------------------------------------------------------------
48c8f86d51 | Steve Melenchuk | 2016-02-15 20:32:49 -0700

Ensure P only gifts you a single distilled potion of magic.
Without doing this, you can get two or three potions.

--------------------------------------------------------------------------------
c199aa2097 | Shmuale Mark | 2016-02-15 19:55:34 -0500

Update for Sif change and add TODOs.

--------------------------------------------------------------------------------
d5a6d9dc57 | Shmuale Mark | 2016-02-15 19:43:24 -0500

Merge branch 'passives'
Before there are even more damn conflicts.

--------------------------------------------------------------------------------
832706f105 | Shmuale Mark | 2016-02-15 19:02:30 -0500

Forbid memorising Spellforged Servitor with Sac Love (#10284).
And any other future summoning spells.

--------------------------------------------------------------------------------
ce912415c6 | Shmuale Mark | 2016-02-15 13:41:00 -0500

Add a clarifying comment (|amethyst).

--------------------------------------------------------------------------------
8a1411e923 | Shmuale Mark | 2016-02-15 13:01:32 -0500

Remove BEH_LURK.
It was impossible for a monster to begin lurking.

--------------------------------------------------------------------------------
3f755e8f9c | Shmuale Mark | 2016-02-15 12:53:59 -0500

Local tiles: don't remove lines for the -more- and title twice.

--------------------------------------------------------------------------------
13589fb94f | Nicholas Feinberg | 2016-02-14 22:22:37 -0800

Fix a very obscure Imprison/Tomb crash (10248)
I'm not sure this has ever happened in an actual game, but it was
possible to crash the game by attempting to imprison a monster/
create a tomb in a location where one of the walls would shove an
item without there being any valid place for the item to go.

--------------------------------------------------------------------------------
706dcefeb7 | Steve Melenchuk | 2016-02-14 20:12:47 -0700

Let Pakellas distill over-maximum MP gains into potions of magic.
With a corresponding nudge down in the MP gain rate (it's now half TSO's
MP gain rate).

Distillation starts at 2* (at the same point you get your first wand
gift). MP you would get on recharge above the cap is counted against the
MP you would get in a potion of magic - once this counter hits zero, if
you're in a place where you can safely receive a gift, you get a potion
of magic.

This is meant to take some hassle away from the player from monitoring
the MP bar religiously (heh); it should also encourage more use of the
abilities (and/or spells?) that consume a significant amount of MP.

--------------------------------------------------------------------------------
0857377a28 | Shmuale Mark | 2016-02-14 21:44:33 -0500

Merge pull request #236 from alexjurkiewicz/orc-shields
Orc shields
--------------------------------------------------------------------------------
fb740a6cd3 | Shmuale Mark | 2016-02-14 19:44:19 -0500

Ash no longer likes any items.

--------------------------------------------------------------------------------
3550e0fa72 | Shmuale Mark | 2016-02-14 19:17:23 -0500

Fix x< and the like (amalloy).

--------------------------------------------------------------------------------
b4ea67e9f1 | Shmuale Mark | 2016-02-14 18:56:17 -0500

Only show found runes in sprint } menu (PleasingFungus).

--------------------------------------------------------------------------------
8cf59e8084 | Nicholas Feinberg | 2016-02-14 15:14:34 -0800

Remove some near-dead foe_ratio code
No reason to manually override default foe_ratios with the same
value for a very few, seemingly arbitrary spells.

This will make SG balrugs more likely to fireball the player, but
if that's a problem, all we need to do is remove more
special-case code...

--------------------------------------------------------------------------------
b7c503ce96 | Nicholas Feinberg | 2016-02-14 15:03:06 -0800

Use a better function for monster xl for foe_ratio
mons_power() works poorly for weird monsters like derived undead,
mutant beasts, etc.

--------------------------------------------------------------------------------
2549be2c67 | Neil Moore | 2016-02-14 17:20:56 -0500

Make a few exact holiness checks into flag checks.
Four changes:

  * Chaos attacks no longer try to poison dual-holiness undead.

  * Chaos attacks will try to drain/vamp all natural monsters, not
    just pure-natural.  This means Jessica can again be drained by a
    player's chaos weapon.

  * Crypt's _place_assorted_zombies can now place zombies of natural+
    monsters (hell hounds, for example).

  * All brainless natural creatures can be frenzied.  No extant monsters
    are affected, since currently all brainless natural monsters are
    pure natural.

The exact holiness checks remaining in the code are:

  * pure holies canot be placed by Lugonu's Corrupt, even though they
    do spawn "naturally" in the Abyss.

  * only pure holies get TSO as their god.

  * only pure undead are considered Crypt-native.

  * only pure demons trigger the DID_KILL_DEMON conduct.

The first three are unproblematic I think.  For the last, to allow all
relevant gods to get piety for such monsters, while avoiding double
piety, I suggest having getting (in mon-death) a list of all the
DID_KILL_*s for which this monster qualifies, then picking the one most
relevant to the player's god.  So it's more complicated than just
turning an == into an &.

--------------------------------------------------------------------------------
0c599e1c03 | Chris Campbell | 2016-02-14 19:35:34 +0000

Fix acquirement in Pan/Abyss being unable to create unrands (minmay)

--------------------------------------------------------------------------------
f98331d57e | Alan Malloy | 2016-02-13 10:02:20 -0800

Don't give kraken a random colour

--------------------------------------------------------------------------------
779ca93be9 | Alan Malloy | 2016-02-12 20:38:44 -0800

Don't display silly shield-penalty skills for small races

--------------------------------------------------------------------------------
2a388f2443 | Alan Malloy | 2016-02-12 20:32:05 -0800

Display correct shield-skill penalties while transformed (jefus)

--------------------------------------------------------------------------------
91c7ef87f8 | Alan Malloy | 2016-02-12 20:03:22 -0800

You can't "begin to rot" now that rot is instantaneous

--------------------------------------------------------------------------------
45b86c9488 | Alan Malloy | 2016-02-12 14:33:07 -0800

Don't switch from singular to plural mid-sentence

--------------------------------------------------------------------------------
c94ee51b0a | Alan Malloy | 2016-02-12 13:05:13 -0800

An herbivore, not a herbivore: the H is silent

--------------------------------------------------------------------------------
e0cd3c7591 | Pekka Lampila | 2016-02-12 17:56:29 +0200

Show divine protection as having variable piety cost. (#10260)
Consistent with Injury Mirror.

--------------------------------------------------------------------------------
e24bcce093 | Pekka Lampila | 2016-02-12 17:43:22 +0200

Unbrace.

--------------------------------------------------------------------------------
6d2dd1f24e | Nicholas Feinberg | 2016-02-11 21:56:49 -0800

Checkwhite

--------------------------------------------------------------------------------
41c131cc9d | Alan Malloy | 2016-02-11 16:46:49 -0800

Replace an if/else chain with a switch/case

--------------------------------------------------------------------------------
c6f7dfb467 | Alan Malloy | 2016-02-11 16:25:08 -0800

Ash doesn't want ?RC sacrificed anymore (gressup)

--------------------------------------------------------------------------------
341dbf8f60 | Shmuale Mark | 2016-02-11 18:25:53 -0500

Remove outdated text (chequers).

--------------------------------------------------------------------------------
6e8322c063 | ontoclasm | 2016-02-10 21:39:37 -0600

Ash Curse ability tile

--------------------------------------------------------------------------------
e3c6ce73ea | Chris Campbell | 2016-02-10 19:57:51 +0000

Remove some unused throwing net branding code

--------------------------------------------------------------------------------
c880faa724 | Chris Campbell | 2016-02-10 19:28:51 +0000

Don't let paralysed monsters shout (PleasingFungus)

--------------------------------------------------------------------------------
bb7c98707d | Chris Campbell | 2016-02-10 18:08:20 +0000

Allow monsters to shout when stabbed with ranged attacks
Stabs are excluded from making monsters shout, but this should only apply to
melee stabs - waking monsters with needles should still allow them to shout in
the same way that waking them with stones does.

--------------------------------------------------------------------------------
1c6b60e1a9 | Chris Campbell | 2016-02-10 18:01:45 +0000

Revert "Reduce !cure mutation shop price"
The price was already reduced by 7c4e61467c.

This reverts commit af02aebe587a2a2769e1d3712131c6fe96fa7f58.

--------------------------------------------------------------------------------
7742de9b7a | Shmuale Mark | 2016-02-10 10:52:37 -0500

Merge pull request #216 from alexjurkiewicz/ash-curse-abil
Replace curse scrolls with curse item ability.
--------------------------------------------------------------------------------
df973753ad | Alex Jurkiewicz | 2016-02-10 23:00:00 +1100

Remove a redundant check.

--------------------------------------------------------------------------------
af8b539c58 | Alex Jurkiewicz | 2016-02-10 23:00:00 +1100

Give some orc warlords a shield.

--------------------------------------------------------------------------------
5a2c81ae54 | Chris Campbell | 2016-02-09 19:08:54 +0000

Remove Phase Shift
As per Stoneskin/Condensation Shield, with the additional advantage of not
being in any starting books.

--------------------------------------------------------------------------------
f0d2d537d3 | Alex Jurkiewicz | 2016-02-09 23:00:00 +1100

Replace curse scrolls with curse item ability.
This zero-piety ability of Ashenzari curses an item in exchange for one
scroll of remove curse.

This puts more pressure on ?rc scrolls for Ash worshippers, but removes
the risk of getting the "wrong" curse scrolls, especially in early game.
You also don't have to deal with three extra scroll types.

For save compatibility, existing curse foo scrolls are left untouched.

Note: this ability can curse any item, not just worn items.

Removes:
* Praying on ?rc to give ?curse weapon/armour/jewellery
* Curse weapon/armour/jewellery scrolls

--------------------------------------------------------------------------------
e8ad84c261 | Alan Malloy | 2016-02-08 15:02:11 -0800

Don't tell ghouls/gargs/etc that [rPois makes them feel resistant to poison

--------------------------------------------------------------------------------
395b48e224 | Chris Campbell | 2016-02-08 18:58:42 +0000

Make Yred Enslave Soul rebrand holy weapons
Instead of dropping holy items, rebrand them to draining (and convert to demon
weapons where applicable).

--------------------------------------------------------------------------------
b6600a89a9 | Neil Moore | 2016-02-08 12:51:58 -0500

Stop spamming about ozo melt (#10275)
0.18-a0-1282-g5315147 removed the C. Shield handling from this function,
but was a little overenthusiatic and also removed the code that clears
the "armour just melted" flag, meaning we gave the message every single
turn after Ozo's Armour melted.

No need for save handling here: this function is called every turn, so a
transferred save with the bug will print the message one more time then
shut up.

--------------------------------------------------------------------------------
2e677a3bc8 | Shmuale Mark | 2016-02-08 10:10:24 -0500

Merge pull request #234 from drke2/patch-1
Reduce !cure mutation shop price
--------------------------------------------------------------------------------
af02aebe58 | DrKe | 2016-02-07 23:02:12 -0800

Reduce !cure mutation shop price
To 80% of its original value.
--------------------------------------------------------------------------------
2b21fa6856 | gammafunk | 2016-02-07 23:56:38 -0600

Add some death messages for Pakellas

--------------------------------------------------------------------------------
b0081677dc | gammafunk | 2016-02-07 23:30:07 -0600

Reindent a switch/case

--------------------------------------------------------------------------------
60d00e1e17 | Nicholas Feinberg | 2016-02-07 18:00:40 -0800

Bump frostblast damage up
Even with the arguably-better damage type, the very low damage &
high noise made /iceblast, as /fireball, *extremely* situational
and narrow in usefulness. As one of the three remaining 'major'
damage wands, it can afford to be somewhat more useful.

Max damage is now 14-64, up from 10-51 (at 0-27 evo respectively);
compare /cold's 18-80.

--------------------------------------------------------------------------------
43455fedde | Chris Campbell | 2016-02-07 20:51:14 +0000

Allow Yred's enslave soul to work on demons and holies
In gameplay terms Yred still falls off quite considerably later on, so this is
more flavour than any kind of significant boost, but might allow for some fun
late uses, and enslaving holies is particularly fitting.

Enslaved demons work just the same as regular enslaved souls. Enslaved holies
are similar but will drop any holy weapons they had, gain an umbra instead of
a halo, and will lose any holy spells they had.

--------------------------------------------------------------------------------
7879e01766 | Chris Campbell | 2016-02-07 20:51:07 +0000

Replace the Helm card's Stoneskin effect
Stoneskin only existed for the Helm card - instead of keeping it as a spell,
replace it with a more generic magical armour in order to simplify it (removing
the conflicts with forms, for example).

--------------------------------------------------------------------------------
5315147a3f | Chris Campbell | 2016-02-07 20:24:16 +0000

Remove Condensation Shield
As with Stoneskin, it's not a well-designed effect for a spell, and IE can
handle the loss of it from the starting book with no problem. It's only used
very rarely for monsters, so rather than keep it around just for a couple of
cases, remove the effect entirely. The few monsters that had it get a couple
of extra points of EV (and the second deep elf knight spellbook loses Shroud,
as well).

--------------------------------------------------------------------------------
2daed16883 | Neil Moore | 2016-02-07 14:42:41 -0500

Remove Other Items from \\ (unknown) menu.
Since these item types are always listed as known, the category was
always empty in the unknown items menu.

--------------------------------------------------------------------------------
bc9d5c75d0 | Neil Moore | 2016-02-07 14:35:23 -0500

Factor out creation of items for \ menu.

--------------------------------------------------------------------------------
18cf499ae1 | Neil Moore | 2016-02-07 14:27:15 -0500

Move food into its own section of \
Now that we list all food types and not just a few categories.
Also sort it by item name.

--------------------------------------------------------------------------------
1df7d4afeb | Neil Moore | 2016-02-07 13:04:06 -0500

Forget bad remembered map_knoweledge features.
Rather than crashing.  This could have been triggered by the missing save
compat conversion just fixed in 0.18-a0-1277-gc02db65.  For example:

    
http://dobrazupa.org/morgue/Xenophilius/crash-Xenophilius-20160207-164832.txt

--------------------------------------------------------------------------------
c02db653e5 | Neil Moore | 2016-02-07 13:04:01 -0500

Deduplicate and fix save-compat map feature rewriting.
When loading a save from before the removal of mangroves, we unmarshalled
malign gateways into grd correctly, but failed to shift the enum down in
map_knowledge.  Avoid these inconsistencies by moving all this logic,
as well as some other duplicated feature-rewriting logic, into a function
rewrite_feature.

This does theoretically affect the unmarshalling of you.transit_stairs
(it now undergoes some rewriting that it did not before), but that seems
like the correct thing to do.  This change would not make a difference
currently: the only check related to stairs that was added in this
codepath is to rewrite escape hatches when the player is in Labyrinth;
and a player transiting *into* Lab would have enter_lab, not an escape
hatch, as their transit stair.

--------------------------------------------------------------------------------
62665c3910 | Neil Moore | 2016-02-07 11:11:40 -0500

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
81fde13f44 | Neil Moore | 2016-02-07 11:10:05 -0500

Increase max CLua memory allocation eightfold.
From 2 MiB to 16 MiB.  gretell.rc, bless its heart, has a table that is
600 kiB in source form and probably bigger than that at runtime.

Also remove the fallback macro definition in clua.h, as AppHdr.h is
always the first #include so takes precedence anyway.

--------------------------------------------------------------------------------
bbc4967ade | Nicholas Feinberg | 2016-02-06 23:36:31 -0800

Don't let ghosts enter death's door (Lasty)
Ghosts are dead. You can't be on the brink of death if you're dead.

--------------------------------------------------------------------------------
ed9d141527 | Eduardo Gonzalez | 2016-02-06 20:49:42 -0800

Don't double-print message for unsafe transformations
Make transform() solely responsible for message printing,
just like the other case filling in that message value.

--------------------------------------------------------------------------------
5d8936c91b | Eduardo Gonzalez | 2016-02-06 19:56:58 -0800

Clean up merfolk swimming checks (#10253)

--------------------------------------------------------------------------------
8ec5f8e882 | Nicholas Feinberg | 2016-02-06 18:55:02 -0800

Make Ozocubu's Armour dur not scale with power
If it's going to be situational, increased duration beyond a few
dozen turns isn't necessarily a positive.

It effectively capped out around 30-40 power anyway - this roughly
approximates that behaviour.

--------------------------------------------------------------------------------
2ecadc732d | Nicholas Feinberg | 2016-02-06 18:31:05 -0800

Make Ozocubu's Armour give Ponderous 1
Such that it's not wise to keep it running 100% of the time. (90%,
maybe.)

If this feels insufficiently situational in practice, the ac &
ponderousness can be increased, or the spell can be replaced
entirely.

--------------------------------------------------------------------------------
4a32cfdbed | David Ploog | 2016-02-07 01:12:10 +0100

Improve loot for trove_garden.

--------------------------------------------------------------------------------
e469acda5a | David Ploog | 2016-02-07 01:12:10 +0100

Replace !cure mutation in troves by !cure/beneficial mutation.

--------------------------------------------------------------------------------
9a10749235 | Shmuale Mark | 2016-02-06 19:07:07 -0500

Merge pull request #231 from drke2/cutlass
Enhance and expand upon the captain's cutlass
--------------------------------------------------------------------------------
b89976c320 | drke2 | 2016-02-06 11:00:43 -0800

Make the captain's cutlass deal bonus damage when disarming
The formula for disarming success has been changed and it is now based
on target HD.

Enchantment has been improved from +5 to +7. (was +10 pre-disarm)

In the event of a disarm, 18-35 (average 26.5) non-elemental damage is
dealt to the target. This is akin to having a powerful flat damage
brand versus monsters wielding a weapon, but it can only trigger once
per monster. (twice for dual-wielders!)

This effect is considered unchivalric for TSO followers and will
cause penance.

--------------------------------------------------------------------------------
ff090c169c | Nicholas Feinberg | 2016-02-05 20:50:47 -0800

Buff Statue Form AC slightly
To compensate for Stoneskin removal. Previously was 17-32 AC, or
19-39 AC with Stoneskin; now 20-37. (At min & max power
respectively.) Exact numbers are somewhat arbitrary.

--------------------------------------------------------------------------------
3be6530857 | Chris Campbell | 2016-02-05 22:22:00 +0000

Turn potions of poison into degeneration on upgrade (|amethyst)

--------------------------------------------------------------------------------
dad808c719 | Chris Campbell | 2016-02-05 22:20:36 +0000

Let potions of berserk rage generate early
But don't have monsters pick them up, in the same way that high tier wands now
work.

--------------------------------------------------------------------------------
90af9db8af | Chris Campbell | 2016-02-05 21:24:40 +0000

Replace death cobs' hungering attack with AF_DRAIN_SPEED
On such a fast monster, AF_HUNGER tended to only allow for a fairly limited
response, since actually staying in combat and eating to counteract it was
pretty ineffective.

AF_DRAIN_SPEED keeps some of the intended behaviour of the hungering effect
(giving the player less turns in combat, due to plain slowness rather than
having to spend some turns eating), and should still be a relatively dangerous
effect in Zot.

--------------------------------------------------------------------------------
e1c589f7dc | Chris Campbell | 2016-02-05 21:24:40 +0000

Make AF_DRAIN_SPEED ignore rN, remove its extra damage
Rather than have rN completely nullify the attack flavour, make it more like
AF_DRAIN_STAT, applying its effect regardless but not dealing any extra damage.
Slightly bump up the damage of early wraiths (plain and freezing) to compensate
for the lost damage, since these are likely to be encountered with no rN. Later
wraiths and death scarabs were very likely to be encountered with rN, so don't
get any compensation for the lost damage (but are now likely to actually be able
to apply their slow).

--------------------------------------------------------------------------------
6a36932c42 | Chris Campbell | 2016-02-05 21:24:40 +0000

Reword a Yred ability message

--------------------------------------------------------------------------------
e1ada5a1e3 | Chris Campbell | 2016-02-05 21:24:40 +0000

Rescale very early stat drain to recover faster
Past the first few experience levels the rate was fairly reasonable, but at the
very start of the game it would take a long time for each individual point of
stat loss to recover.

--------------------------------------------------------------------------------
58ee4682be | Chris Campbell | 2016-02-05 21:24:40 +0000

Make potions of degeneration decrease all stats by 1-3
Rather than one stat by 1-4, to make it cause a minor debuff that should be at
least a little noticeable to many early characters.

--------------------------------------------------------------------------------
e059afa77b | Chris Campbell | 2016-02-05 21:24:40 +0000

Replace potions of poison with potions of degeneration
As a strictly-negative potion effect (which means it only has a chance of being
relevant once at most in a game), degeneration seems potentially better than
poison. Poison can either just directly kill the player (if they don't also
quaff-ID curing) or have no real effect (if the player then finds curing, or if
it's quaffed with enough HP to just rest off), whereas degeneration can at
least cause a more long-term debuff that can't just be rested off, similar to
draining.

--------------------------------------------------------------------------------
28b5dec2e2 | Chris Campbell | 2016-02-05 21:24:40 +0000

Remove Xom chesspieces
They weren't a very good design for an evokable - the effect of spammable
irresistible confusion was very strong and their downside wasn't very
significant.

--------------------------------------------------------------------------------
d48e5fa400 | Chris Campbell | 2016-02-05 21:24:39 +0000

Remove the rod of the swarm
It was redundant with the many other summoning evokables, particularly the
sack of spiders which has a very similar monster set.

--------------------------------------------------------------------------------
c52d579c5b | Chris Campbell | 2016-02-05 21:24:39 +0000

Remove rods of destruction
It was one of many direct damage rods (ignition, lightning, iron), and probably
the least interesting effect.

--------------------------------------------------------------------------------
a2eb615428 | Chris Campbell | 2016-02-05 21:24:39 +0000

Decapitalise some functions

--------------------------------------------------------------------------------
88499de399 | Neil Moore | 2016-02-05 16:08:58 -0500

Show skill cost by default if manual training is on.
Based on the current state of manual training, not the default state
according to the rcfile.

The change is probably only relevant for 1. people who know about and
prefer manual training, but don't know about default_manual_training (or
rcfiles in general); and 2. people who copy around saves between
different computers/accounts with different rcfiles.

--------------------------------------------------------------------------------
9e1c3a1261 | Neil Moore | 2016-02-05 01:37:13 -0500

Simplify dgn_veto_exception and ext_fail_exception.
By inheriting from runtime_error, particularly what().

--------------------------------------------------------------------------------
b1104b1ca1 | Neil Moore | 2016-02-05 01:37:13 -0500

Remove a stray whitespace.
doh [skip ci]

--------------------------------------------------------------------------------
efeb085a6a | Neil Moore | 2016-02-05 01:10:35 -0500

Make |w and |h enable the monster layer.
They aren't much use if you can't see monsters.

--------------------------------------------------------------------------------
aedd4353fb | Neil Moore | 2016-02-05 01:10:21 -0500

Disable |w and |h in local tiles.
Since they don't work.

It turns out, | mostly doesn't work in webtiles (except for |p).
Leaving the command there for now, but if it isn't fixed it should be
disabled in webtiles.

--------------------------------------------------------------------------------
d1621d3bbc | Neil Moore | 2016-02-05 00:24:26 -0500

Replace string throw in assert_read_safe_path.

--------------------------------------------------------------------------------
9fff5a66d3 | Neil Moore | 2016-02-05 00:24:25 -0500

Replace string throws in arena code.

--------------------------------------------------------------------------------
4b2c31adf5 | Neil Moore | 2016-02-05 00:24:25 -0500

Remove an unused global.

--------------------------------------------------------------------------------
515b9c34ca | Neil Moore | 2016-02-05 00:24:25 -0500

Replace string throws in map_*_marker::parse.

--------------------------------------------------------------------------------
e2800144ba | Neil Moore | 2016-02-05 00:24:25 -0500

Replace string throw in map_flags::parse.

--------------------------------------------------------------------------------
4b50b41158 | Neil Moore | 2016-02-04 23:52:10 -0500

Replace string throws in level_id and related classes.
Specifically, level_id, level_range, and depth_ranges.

--------------------------------------------------------------------------------
9e52518b4c | Neil Moore | 2016-02-04 22:18:19 -0500

Catch a few exceptions and die more precisely (PleasingFungus)
When calling "crawl -mapstat junk", we should print the error message
and exit normally, rather than crashing with "terminate called after
throwing ...".

When an old (very) obsolete ENTER_PORTAL_VAULT has a bad destination,
we do want to crash, but it's still nice to have the actual error
message.

Also, mark in the interface for depth_ranges::parse_depth_ranges that it
throws strings, for consistency with the level_range parsing functions.
I am unhappy with this situation for two reasons:

  * That's not what throw(foo) means in C++.  It actually means
    "I guarantee I won't throw any exceptions other than foo, and if
    I do so, call std::unexpected to abort".

  * We shouldn't be throwing raw strings anyway.

But in both cases, we do that all over the place.  Fixing the second
problem in particular was "literally impossible" in the learndb sense,
so has been deferred.  Enjoy the technical debt.

--------------------------------------------------------------------------------
c934763f73 | Nicholas Feinberg | 2016-02-04 18:26:15 -0800

Simplify Song of Slaying
Rather than having an invisible, threat-based check to see whether
a given kill 'counts' for purpose of giving +slay, every kill now
gives +slay, up to +9 max.

The previous system was clearly intended to avoid abuse (towing
around weak enemies to farm slay), but that was *still* encouraged
by this system, just in an invisible & undocumented way. This
version might be too much of a buff, but that can be adjusted in
other ways (duration, slaycap, noisiness) as needed.

XXX: would be good to document the slay cap in the spell
description, somehow - I couldn't think of a non-🧀y phrasing.

--------------------------------------------------------------------------------
12532c01ca | Nicholas Feinberg | 2016-02-04 18:01:25 -0800

Move Passwall to L2
To give EE an L2 spell, and because it's really fine as one:
it's a two-school spell that's weaker & more situational than
Blink.

--------------------------------------------------------------------------------
df1107d425 | Nicholas Feinberg | 2016-02-04 18:01:25 -0800

Remove Stoneskin※
It's an extremely generic, non-situational buff that it's wise,
but not particularly fun, to keep running at all times. It's not
particularly core to EE, so it's getting the axe. (I wouldn't mind
EE getting some replacement spell - but that's not critical.)

※It's still around for monsters (though I'm not sure any cast it),
and as an effect from the Helm card.

--------------------------------------------------------------------------------
5d2679702c | Nicholas Feinberg | 2016-02-04 17:40:49 -0800

Reorder Sif abilities
Swap amnesia & miscast protection: the former is now available at
4*, the latter at 2*. (Though, as before, it only reaches full
effectiveness at 6*.)

The intent is to make sif's abilities a little more relevant at
the mid-tiers of piety; amnesia was rarely relevant when it first
became available.

--------------------------------------------------------------------------------
8adb878adf | Neil Moore | 2016-02-04 16:50:50 -0500

Use a bool rather than a count (geekosaur)
Now that these functions return bool, there's no reason to count the
number of destroyed tentacles.

--------------------------------------------------------------------------------
087c681131 | Neil Moore | 2016-02-04 16:34:37 -0500

Allow wardens to seal doors again (aditya)
Broken in 0.18-a0-1190-gc7a99f0.

--------------------------------------------------------------------------------
d8645f76c9 | Shmuale Mark | 2016-02-04 08:36:38 -0500

Remove some unused seen_context_types.
Monster::seen_context is not marshalled.



Almost every reference to SC_NONSWIMMER_SURFACES_FROM_DEEP

mentions its impossibility, but I'm playing it safe with that one.
--------------------------------------------------------------------------------
ec8ae2b425 | Nicholas Feinberg | 2016-02-03 22:59:16 -0800

Make swamp worms 'burst forth' again
Mimicking the old trapdoor spider code.

--------------------------------------------------------------------------------
d37be9fe6b | Nicholas Feinberg | 2016-02-03 22:59:16 -0800

Let swamp worms 'burst forth' properly
Looks like trapdoor spiders had a special message for this, too?

--------------------------------------------------------------------------------
ff02b5662a | Alan Malloy | 2016-02-03 22:34:00 -0800

Fiz mutation description for Ru's sacrifice ac/ev

--------------------------------------------------------------------------------
b743457d49 | Nicholas Feinberg | 2016-02-03 22:26:55 -0800

Remove some dead submerging code
Mostly dead because only swamp worms exist now, but man, check out
that reference to undead becoming 'submerged' instead of properly
drowning!

--------------------------------------------------------------------------------
8a3f8fbb6b | Nicholas Feinberg | 2016-02-03 21:24:38 -0800

Make swamp worms sneakier
They'll now lurk until an enemy enters melee, rather than charging
into battle as soon as they're alerted. (This was the intended
behavior when making them lurkers...)

--------------------------------------------------------------------------------
6570862051 | Nicholas Feinberg | 2016-02-03 21:08:12 -0800

Make swamp worms always spawn submerged
As opposed to only 80% of the time.

--------------------------------------------------------------------------------
e9a1a01252 | Neil Moore | 2016-02-03 01:00:20 -0500

Externalise apt_to_factor() and use it in exp_needed()

--------------------------------------------------------------------------------
f6e5f197cd | Neil Moore | 2016-02-03 00:32:34 -0500

Replace a few instances of foo.end() - 1.
Once with .back(), and once with .pop_back()

--------------------------------------------------------------------------------
20e6098625 | Neil Moore | 2016-02-03 00:21:28 -0500

Add a clarificatory comment.
[skip ci]

--------------------------------------------------------------------------------
55085bb4f2 | Neil Moore | 2016-02-03 00:21:28 -0500

Allow !exp and reskill when untrainable skills are unmaxed.
These methods have for a while allowed you to allocate XP to an
untrainable skill (such as a weapon or spell skill without a supporting
item/spell).  However, the check for whether there were any valid
destination skills was not updated to reflect this, so you could receive
"You feel omnipotent" or "You have nothing more to learn" even though
you have plenty of skills below level 27.

If this change actually affects your game, send a self-addressed stamped
envelope to receive your prize.

(While we're at it, avoid some casts: we use DEF_ENUM_INC to allow
incrementing skill_type directly.)

--------------------------------------------------------------------------------
5d63bca1da | Nicholas Feinberg | 2016-02-02 17:18:33 -0800

Merge pull request #232 from edsrzf/wizmode-tweak-randart-fix
Fix abort when tweaking artefacts in wizmode
--------------------------------------------------------------------------------
04b2e816d5 | ontoclasm | 2016-02-02 19:12:10 -0600

New wand tiles (CanOfWorms)

--------------------------------------------------------------------------------
6620d86ddb | Evan Shaw | 2016-02-03 14:03:14 +1300

Fix abort when tweaking artefacts in wizmode
This code was doubly wrong:

* It should have been end() rather than rend() to modify the end of the string.
  (rend() is reverse end, which is actually the beginning.)
* end() points *past* the end of the string and dereferencing it is undefined
  behavior. We want the last character.

--------------------------------------------------------------------------------
0d4bbe428f | Nicholas Feinberg | 2016-02-02 17:01:07 -0800

Halve monster¹ wand use frequency²
¹: :japanese_goblin:
²: They've always machine-gunned wands, which is kind of silly.
This should make that somewhat less so. (They're still quite dumb
about *when* they use wands, but that's more complex...)

--------------------------------------------------------------------------------
72460c5054 | Nicholas Feinberg | 2016-02-02 16:56:48 -0800

Let nasty wands spawn early* (|amethyst)
...but don't let monsters pick them up.

This feels kind of weird and ugly to me, but it's invisible to
the player, so...

--------------------------------------------------------------------------------
2dc620858e | Chris Campbell | 2016-02-02 18:35:02 +0000

Don't ask Octopodes for armour as a trove toll (edsrzf)
The armour tolls specify dragon armours so as to require some enchant armour
usage, since that's likely to be a desirable item even for characters that
don't care about giving up a dragon armour, but since Octopodes only have hats
to enchant it's very unlikely to be a significant toll for them.

Closes #228.

--------------------------------------------------------------------------------
349f12155c | Chris Campbell | 2016-02-02 18:35:02 +0000

Remove some transformation stat modifiers
Statue Form's +2/-2 str/dex was insignificant (with strength affecting its
unarmed damage, but not its main multiplicative damage bonus), and Hydra Form's
+8 str was also fairly insignificant since the form's damage is based on
spellpower rather than strength. Also removes Bat Form's -5 str penalty, since
having the form sometimes cause stat zero isn't a particularly interesting
restriction.

--------------------------------------------------------------------------------
633db4eb92 | Chris Campbell | 2016-02-02 18:35:02 +0000

Don't give iceblast reduced explosion noise
Since it's already a good damage type in an AoE, remove its special-casing for
noise levels.

--------------------------------------------------------------------------------
d34e264964 | Chris Campbell | 2016-02-02 18:35:01 +0000

Add messages when damaging monsters with Refrigeration
Other LOS attack spells already displayed these.

--------------------------------------------------------------------------------
fe784ad1d0 | Chris Campbell | 2016-02-02 18:35:01 +0000

Remove some unused god speech lines
Good god revenge was removed in 8af576bb844.

--------------------------------------------------------------------------------
c4e1e30f6a | Pekka Lampila | 2016-02-02 19:05:01 +0200

Don't give weight to spells hated by god in acquirement code.
To compensate for previous commit which allowed books containing mostly
god hated spells to be considered at all.

--------------------------------------------------------------------------------
c9b4ecfec0 | Pekka Lampila | 2016-02-02 18:43:53 +0200

Only mark books as forbidden if all of the spells are.
Up from half of the spells.

--------------------------------------------------------------------------------
6426087636 | Neil Moore | 2016-02-02 11:02:44 -0500

Make TSO properly hate staff of Olgreb (DrKe)
Actually poisoning something by hitting them with it would cause
penance, but without warning.

--------------------------------------------------------------------------------
3cecdf7d1a | Pekka Lampila | 2016-02-02 16:16:24 +0200

Fix a syntax error in alphashop item list. (travis)

--------------------------------------------------------------------------------
828307da2c | Nicholas Feinberg | 2016-02-01 20:05:03 -0800

Change monster corrosion to a flat penalty
-8 AC, rather than halved total AC. (There was some concern that
it might be abusable with Fedhas.)

This will probably make it stronger & more relevant in the vast
majority of cases; not many monsters have >16 AC.

--------------------------------------------------------------------------------
32616f214a | Nicholas Feinberg | 2016-02-01 20:04:24 -0800

Prevent /confuse & /enslave from spawning v. early
Since they seem roughly as nasty as /para very early on, against
players with zero MR and maybe 1-2 !cure tops.

Also, document the relevant function.

--------------------------------------------------------------------------------
77aac2f279 | Nicholas Feinberg | 2016-02-01 18:39:38 -0800

Wands: draining -> acid, fireball -> iceblast
Replaces the wand of draining with the wand of acid, which fires a
corrosive bolt. This is currently roughly equally powerful (though
the damage type better), but may be buffed later to become some
kind of 'super wand'.

Without draining, there's now room to add an ice wand back (which
we'd wanted!), so fireball is out and iceblast is in. Partially
resistable cold (as throw icicle), quieter explosion than fireball.

--------------------------------------------------------------------------------
fc72cda808 | Nicholas Feinberg | 2016-02-01 17:44:35 -0800

Implement Iceblast
An ice-flavored Fireball knockoff for wands.

--------------------------------------------------------------------------------
5bab8e122b | Nicholas Feinberg | 2016-02-01 17:17:46 -0800

Reduce player corrosive bolt randomness
It was a direct copy of lightning bolt's, which is a very 'random'
spell.

--------------------------------------------------------------------------------
2bec4758ae | Chris Campbell | 2016-02-01 00:01:14 +0000

Tweak some more god speech lines

--------------------------------------------------------------------------------
c79f12ce7a | Chris Campbell | 2016-01-31 23:47:33 +0000

Remove some god speech lines, fix typo (CanOfWorms)

--------------------------------------------------------------------------------
690a290abe | David Ploog | 2016-02-01 00:36:34 +0100

Add some god speech lines.

--------------------------------------------------------------------------------
bde16dbc79 | Nicholas Feinberg | 2016-01-30 21:55:07 -0800

Don't crash when a monster zaps a removed wand
oops...

--------------------------------------------------------------------------------
796ae12412 | Chris Campbell | 2016-01-30 15:34:31 +0000

Simplify monster-targeted Sap Magic
It's not really the same as player Sap Magic but is now a bit more similar in
that it no longer checks spell level, and expires more normally.

--------------------------------------------------------------------------------
bfc5472188 | Chris Campbell | 2016-01-30 15:13:02 +0000

Don't place some removed items in vaults (|amethyst)

--------------------------------------------------------------------------------
7fdabf725e | Chris Campbell | 2016-01-30 15:13:02 +0000

Adjust MP regen inscriptions
For the amulet as well as Maxwell's etheric cage (although the unrand works in
a different sort of way, so is maybe slightly misleading).

--------------------------------------------------------------------------------
413ecc3d8b | Chris Campbell | 2016-01-30 15:13:02 +0000

Don't let iron giants throw statues or tentacles

--------------------------------------------------------------------------------
b6cb38c29c | Chris Campbell | 2016-01-30 15:13:02 +0000

Update Throw spell description

--------------------------------------------------------------------------------
8004e506a4 | Nicholas Feinberg | 2016-01-29 17:16:39 -0800

Remove beam.affect_items
Always... true! Take that, item destruction removal!

--------------------------------------------------------------------------------
09327cff75 | Pekka Lampila | 2016-01-29 20:43:39 +0200

Fix cloning monster equipment.
Broken by 0.18-a0-1192-g7589f66. Caused crashes with rakshasa illusions.

--------------------------------------------------------------------------------
77a4f03486 | Neil Moore | 2016-01-28 21:18:01 -0500

Simplify and make permanent the removed wand checks.
If we defer to item_type_removed, we don't need to remove the code on a
major version bump, or to remember to update both locations the next
time a wand is removed.

Also, remove a cast-to-enum in a switch condition: all it did was give
devious compilers a theoretical justification for optimizing out the
"bugginess" case.

--------------------------------------------------------------------------------
6f661db744 | Nicholas Feinberg | 2016-01-28 17:03:32 -0800

Remove various wands
Cold, fire, frost, magic darts, and invisibility. Wands
of lightning, draining, fireball, and flame are
now more common. Random Effects still chooses from the old wand
effects, primarily because I'd be sad if it could no longer turn
enemies invisible; that means it's now open to being changed
further, of course.

The primary reasoning here is that, as we've added new evocables
and other items, we haven't made any compensating removals; this
means that players inventories are more cluttered (which presents
annoying UI issues) and have an excess of tactical options. The
current set of wands is at least a decade old (!), which makes it
low-hanging fruit for pruning.

Darts, frost, fire & cold are all quite bland; flame covers the
former two just fine, and draining, lightning & fireball, while
not quite as strong as fire/cold, make a more distinctive trio.
(If the latter two get used a little more, that'd be a bonus.)
Invisibility is still available on potions, randarts, and as a
spell; it also doesn't have the ally synergy that the other buff
wands have.

--------------------------------------------------------------------------------
b7aa92a74d | Shmuale Mark | 2016-01-28 16:20:49 -0500

Fix debug compilation (travis).

--------------------------------------------------------------------------------
7589f66b1e | Shmuale Mark | 2016-01-28 15:31:29 -0500

Add and use a mon_inv_iterator.

--------------------------------------------------------------------------------
373f77d419 | Shmuale Mark | 2016-01-28 11:17:27 -0500

Replace its with something's (#10247).

--------------------------------------------------------------------------------
c7a99f0a30 | Shmuale Mark | 2016-01-28 11:12:59 -0500

Replace mons_near().
It was equivalent to you.can_see(mons->pos()) (except for an edge case in
the arena). But some of its uses were wrong anyway, leading to an
information leak either when the monster was invisible, or when you were.

--------------------------------------------------------------------------------
c5e495a36c | Shmuale Mark | 2016-01-28 07:35:08 -0500

Simplify and comment (|amethyst).
This and the previous commit closes #230 PR.

--------------------------------------------------------------------------------
d34e0c6877 | Ahmad Hamidullah | 2016-01-28 07:26:52 -0500

make followers trigger traps (#9654)

--------------------------------------------------------------------------------
9b90ff56ec | Neil Moore | 2016-01-28 01:03:45 -0500

Mark monster-cast enchantments as AUTOMATIC_HIT (duvessa, PowerOfKaishin)
Their to-hit was -1, meaning warlock's mirror almost always reflected
them (every time the to-block roll was positive).

--------------------------------------------------------------------------------
d02dc51238 | Steve Melenchuk | 2016-01-27 18:58:23 -0700

Allow hellmouth_3 to place again.
It was tagged in f07e438b as transparent - and it has an island, a
combination which would cause it to veto 100% of the time.

This masks the island as opaque so that the vault can place.

--------------------------------------------------------------------------------
2fe3d93d1b | Chris Campbell | 2016-01-27 19:19:23 +0000

Improve handling of suppressed MP regen mutations under Pakellas
To correctly handle Pakellas wrath (when they should still remain suppressed),
and to mark them as suppressed on the A screen.

--------------------------------------------------------------------------------
403a57a2a4 | Shmuale Mark | 2016-01-27 11:13:03 -0500

Ignore splash damage for reach attacks (dkorduban).
Was inconsistent with all other passive damage.

Closes #211 PR.

--------------------------------------------------------------------------------
5d83db3365 | Shmuale Mark | 2016-01-27 10:46:33 -0500

Merge pull request #229 from drke2/patch-3
Don't allow Ds with magic link to regenerate MP under Pakellas (FIQ)
--------------------------------------------------------------------------------
569601aabb | DrKe | 2016-01-27 06:40:44 -0800

Don't allow Ds with magic link to regenerate MP under Pakellas (FIQ)

--------------------------------------------------------------------------------
73fd97eb12 | Neil Moore | 2016-01-27 09:30:24 -0500

Replace human quick desc with manual text (dynast, CanOfWorms)
[skip ci]

--------------------------------------------------------------------------------
64ccc1e573 | Nicholas Feinberg | 2016-01-26 17:41:48 -0800

Simplify _random_wand_subtype()
Note that the old comment was slightly wrong, since it assumed
there were 19 wand types. (There are 20.)

Shorthand notes from reproducing the math:

    // 3/20 + (4/20)/2 = 5/20 = 1/4 chance of re-roll
    // 3 / 80 for 3 rarewands (1/4 * 1/20 each)
    // 12 / 80 for 4 uncommonwands (4 * 1/4 * 1/20 + 2/20)
    // 65 / 80 for 13 others
    // common = 6.25% each, uncommon = 3.75%, rare = 1.25%

--------------------------------------------------------------------------------
120c792533 | Neil Moore | 2016-01-26 12:09:32 -0500

Bind | by default in local tiles.
|w (show monster weapons) and |h (show monster HP) don't appear to work:
that still need to be either fixed or disabled in tiles mode.  But
toggling layers does work, so don't hide the whole command.

This reverts commit 61a4981fe1bbbf7f167a167c5550b81243831aa8.

--------------------------------------------------------------------------------
d21d1ad51f | Chris Campbell | 2016-01-26 15:35:34 +0000

Use a fineff for the amulet of dismissal's effect

--------------------------------------------------------------------------------
eb0150c4f0 | Chris Campbell | 2016-01-26 15:34:28 +0000

Allow distortion weapons to banish already-abyssed targets deeper
Lets all sources of banishment be effective against targets already in the
Abyss, with a decreasing chance of success the deeper the target is. Banishment
via beam and miscast already allowed this with varying degrees of consistency
against monsters/players.

--------------------------------------------------------------------------------
c95c9f12e2 | Chris Campbell | 2016-01-26 14:18:17 +0000

Adjust a weapon blessing message for consistency

--------------------------------------------------------------------------------
4a2f17d33d | Chris Campbell | 2016-01-26 14:16:04 +0000

Add a canned message when aborting god weapon brands

--------------------------------------------------------------------------------
586b9f0964 | Chris Campbell | 2016-01-26 14:13:37 +0000

Fix "Pain" ability flag on weapon blessings
Lugonu's distortion brand was marked as causing pain, instead of Kiku's (which
torments you).

--------------------------------------------------------------------------------
28dac848ba | Chris Campbell | 2016-01-26 12:04:12 +0000

Decrease the durations and piety costs of Okawaru invocations
For both Heroism and Finesse, decrease their durations fairly substantially,
while lowering the piety cost and increasing the cap on duration for those with
high invocations skill.

--------------------------------------------------------------------------------
e779571568 | Chris Campbell | 2016-01-26 12:03:57 +0000

Simplify some ability piety costs
Don't manually specify ranges where the standard piety cost randomisation works
fine - results in no change for Scrying and Trog's Hand, and makes Disaster
Area and Corrupt cost 10-15 piety instead of 10-14.

--------------------------------------------------------------------------------
a8e22e77a0 | Neil Moore | 2016-01-25 22:16:17 -0500

Correct reversed magic regen uselessness check.

--------------------------------------------------------------------------------
f7b475a777 | Corin Buchanan-Howland | 2016-01-25 22:02:19 -0500

Mark amulet of mana regeneration as useless under Pakellas (Grunt)

--------------------------------------------------------------------------------
9e373652dd | Nicholas Feinberg | 2016-01-25 17:46:38 -0800

Enlarge the Zombified Lernaean Hydra (10238)
...'s tiles.

Thanks to Shard1697!

--------------------------------------------------------------------------------
cbefeb2224 | Neil Moore | 2016-01-25 18:51:27 -0500

Mention ' in x? (amalloy)

--------------------------------------------------------------------------------
39faa5cfd7 | Alan Malloy | 2016-01-25 15:36:56 -0800

Don't reset targetter when using xm to move monster in wizmode

--------------------------------------------------------------------------------
6e2d2a075c | Shmuale Mark | 2016-01-25 10:48:09 -0500

Merge pull request #227 from edsrzf/webtiles-glyphs-monster-health2
Some fixes for monster health in webtiles with tile_display_mode = glyphs
--------------------------------------------------------------------------------
7046a04d0d | Shmuale Mark | 2016-01-24 16:53:28 -0500

Add a credit.

--------------------------------------------------------------------------------
98183fe94e | Shmuale Mark | 2016-01-24 12:15:26 -0500

Remove an English quote from the German quote list.

--------------------------------------------------------------------------------
335d1b3571 | Chris Oelmueller | 2016-01-24 12:14:10 -0500

Fix a few typos
There are some mis-named lua functions as well, did not touch those.

[fixed some other typoes pointed out by author and |amethyst --wheals]

--------------------------------------------------------------------------------
35e6b65c53 | Neil Moore | 2016-01-24 01:53:54 -0500

Use base_skill in one more trove.
For consistency, and so that entering a trove while drained does not
reduce your chances of getting this vault.  Sorry, artificers of Ash.

--------------------------------------------------------------------------------
eb89fc2d7f | Nicholas Feinberg | 2016-01-23 15:09:13 -0800

changelog.txt tweaks
Grammar fixes and rewordings, and removing of trivial changes. (There are a few 
more borderline changes mentioned, e.g. orange demons & minor spellset tweaks.)
--------------------------------------------------------------------------------
f481d65d13 | Nicholas Feinberg | 2016-01-23 10:36:12 -0800

Remove redundant cloud deletion
This occurs a little later:
temp_change_terrain -> dungeon_terrain_changed -> set_terrain_changed
where the last of those handles deleting clouds in solid terrain.

--------------------------------------------------------------------------------
de82feba21 | Nicholas Feinberg | 2016-01-23 07:55:21 -0800

Tweak message repeat logic
Use semicolons more often. Still sort of awkward for messages that
already end with punctuation ("You hear a shout! x2;"), but probably
better than the alternative.

--------------------------------------------------------------------------------
59db91b41c | Neil Moore | 2016-01-22 22:03:52 -0500

Put EXTERNAL_LDFLAGS after optimization etc. flags.
This allows to user to override the default optimization flags for LTO
builds.

--------------------------------------------------------------------------------
c10038c297 | Neil Moore | 2016-01-22 20:54:47 -0500

Memoize several feature test functions.
These functions iterated over all branches looking for the queried
feature as the branch's entrance or exit feature.  But the answer for a
given query feature is never going to change.

Memoizing these feature tests is particularly important because they are
called extremely frequently.  This change results in an approximately
30% reduction in runtime for 1000 turns of the abyss walker bot, most of
which gprof attributed to calls to branch_iterator::operator->().

Also suggest a ctags option that recognizes uses of the new macro as
function definitions.

--------------------------------------------------------------------------------
296dcbcb33 | Neil Moore | 2016-01-22 17:12:50 -0500

Simplify and ensafe some choose_random_weighted calls.
Use end(array) rather than array + num_elts in a few places; use = { 0 }
rather than memset (or nothing) to zero-initialize some weight arrays;
name a cast expression that is used twice; and assert that one
particular weight array has the right size.

--------------------------------------------------------------------------------
f0cfeda742 | Neil Moore | 2016-01-22 17:12:50 -0500

Simplify choose_random_weighted.
And remove the ASSERT(beg < end), which artificially restricted it to
random access iterators.

--------------------------------------------------------------------------------
f59194a079 | gammafunk | 2016-01-22 15:23:51 -0600

Some tweaks to iron giants
Make them have see invisible for consistency with other high-level
spellcasting giants, and make their iron shot susceptible to
silence. Their throw remains an innate ability immune to silence and
anti-magic, but there's no reason for their spell to have any special
immunity.

--------------------------------------------------------------------------------
382fda4a6a | Neil Moore | 2016-01-22 15:01:11 -0500

Make some mask enums into fields, not flags.
Tighten some variable and parameter types while we're at it, since
fields do not convert to integer the way flags do.

Also make LAYERS_ALL, which was already properly a field, constexpr.

--------------------------------------------------------------------------------
c3c8faba5c | Neil Moore | 2016-01-22 13:37:11 -0500

Correctly document a default (doh)
[skip ci]

--------------------------------------------------------------------------------
42b1fc4649 | Neil Moore | 2016-01-22 12:45:33 -0500

Unalign some misaligned operators.
[skip ci]

--------------------------------------------------------------------------------
7e7247a6a2 | Neil Moore | 2016-01-22 12:02:06 -0500

Simplify.

--------------------------------------------------------------------------------
eca09c321e | Neil Moore | 2016-01-22 11:53:52 -0500

Avoid copying Options.note_monsters repeatedly.
Oops.

--------------------------------------------------------------------------------
8e8348bb79 | Pekka Lampila | 2016-01-22 10:59:34 +0200

Fix an assert when drawing a shop menu without any items.

--------------------------------------------------------------------------------
220265a991 | Nicholas Feinberg | 2016-01-21 22:15:24 -0800

Add detect_items to wizmode &{
The lack of this has annoyed me in the past.

--------------------------------------------------------------------------------
178b0c77d2 | Neil Moore | 2016-01-21 23:16:07 -0500

Add option default_show_all_skills (SuperDuckQ)

--------------------------------------------------------------------------------
fdd5df4099 | Neil Moore | 2016-01-21 18:36:57 -0500

Remove a nickname.
[skip ci]

--------------------------------------------------------------------------------
b5f7fae3a3 | Neil Moore | 2016-01-21 17:06:11 -0500

Fix a few trove checks.
These were derived from the negation of an and, so should have an or.

--------------------------------------------------------------------------------
19f2112053 | Pekka Lampila | 2016-01-21 22:39:34 +0200

WebTiles: Combine multiple menu line update messages.

--------------------------------------------------------------------------------
1c4cad7d33 | Pekka Lampila | 2016-01-21 21:57:53 +0200

Fix last entry of shop disappearing in WebTiles. (#10247)

--------------------------------------------------------------------------------
15a6f2f356 | Evan Shaw | 2016-01-21 15:59:24 +1300

Some fixes for monster health in webtiles with tile_display_mode = glyphs
* Remove existing health classes when a monster's health changes
* Hide the span when it gets reused for a different monster
* Hide the span when another monster of the same type shows up

--------------------------------------------------------------------------------
8540535652 | gammafunk | 2016-01-20 13:54:19 -0600

Fix a veto condition in a trove

--------------------------------------------------------------------------------
25043847bd | gammafunk | 2016-01-20 13:53:47 -0600

Reformat lua veto statements
Closes #226.

--------------------------------------------------------------------------------
6acfb4750c | drke2 | 2016-01-20 12:49:38 -0600

Fix conditional trove weights
Replace them with vetoes, so that if you don't meet the condition for
a trove, you have to hit a one in x chance. Effective weights upon
failing the condition are the same as before. (except they actually
work now!)

trove_misc_throne_room was newly given weight 15 with the condition
Evocations skill>4, with a 1/3 chance of being chosen if the condition
was failed, so effectively weight 5 in that case, and weight 0 if you
sacrificed Evo to Ru.

--------------------------------------------------------------------------------
81bca2a910 | drke2 | 2016-01-20 12:47:25 -0600

Add a trove vault
trove_misc_throne_room: A misc/evo focused trove with 15 items in a
throne room layout. Loot consists of misc items, recharging scrolls,
wands, and rods, with a small chance of a magical staff.

--------------------------------------------------------------------------------
4788093705 | drke2 | 2016-01-20 12:47:25 -0600

Add amulet of reflection to trove lists of +x jewellery
This was unlikely to affect anyone, since even a +6 one is almost
never expensive enough to be chosen, and troves won't specify plusses for
randarts.

--------------------------------------------------------------------------------
92ce48987a | drke2 | 2016-01-20 12:47:25 -0600

Trove entry fee adjustments and additions
Adjust some entry fees and add some new payment options:

- Potions of agility, resistance, and experience
- Shadow dragon armour

--------------------------------------------------------------------------------
ff269b5e12 | Neil Moore | 2016-01-20 10:20:11 -0500

Partially correct a few trove skill checks (DrKe)
Two problems fixed:

  * The various skill checks used you.skill() rather than base_skill().
    This was particularly bad for trove.weapon_skills() and
    trove.spell_skills(), because they averaged the non-zero skills,
    meaning the average was being dragged down by cross-training.

  * trove.weapon_skills() and trove.spell_skills() returned NaN, not 0,
    if you had no relevant skills.

Two problems unfixed, one a hypothetical "exploit" and one more
fundamental:

  * Using the average of nonzero skills is problematic: if you want the
    book trove and your weapon skill is too high for a good weight, you
    can train all the other weapon skills to level 1, greatly diluting
    the average non-zero weapon skill below your average spell skill.

  * Setting weight in conditional Lua at run-time doesn't work, since
    that code is run 1. before the game is started, when there are
    no skills; and 2. after the map is chosen for mapgen, when it is
    too late for the WEIGHT: to have an effect.

    I am not sure if these conditional weights ever worked.  DrKe is
    trying out something with a randomized veto instead.

--------------------------------------------------------------------------------
6682300a48 | Neil Moore | 2016-01-20 09:21:52 -0500

Fix post-levelgen trap placement.
Broken in 0.16-a0-405-g8e29465: traps were being erased by
dungeon_terrain_changed when a new trap feature was placed; we were
supposed to be erasing the trap under *non*-trap features.  This
affected at least &L (and dlua dgn.terrain_changed and dgn.grid),
but not &T.

--------------------------------------------------------------------------------
8c20bbcce6 | Chris Campbell | 2016-01-20 12:31:29 +0000

Fix another changelog entry

--------------------------------------------------------------------------------
90f4a659f7 | Chris Campbell | 2016-01-20 12:28:42 +0000

Update some changelog entries
And remove a couple of the more inconsequential changes (there are probably 
others that could also be trimmed).
--------------------------------------------------------------------------------
4a6f1b946a | Nicholas Feinberg | 2016-01-19 22:57:19 -0800

Remove vestigial sealed-door-destruction code
Unused, since disint/devastation can no longer destroy sealed
doors.

--------------------------------------------------------------------------------
fe03852c78 | Nicholas Feinberg | 2016-01-19 22:39:54 -0800

Blame doom hounds
For deaths by howling. [ikiller functionality untested.]

Also fix an out-of-date comment.

--------------------------------------------------------------------------------
8f71077661 | Nicholas Feinberg | 2016-01-19 22:27:35 -0800

Fix an obscure summon forest bug
Destroying a tree created by Summon Forest, while in Swamp, would
restore the rock wall that the tree was temporarily replacing;
this isn't the intended effect, or the effect in other branches.

This technically means that you can tunnel by casting summon
forest, hoping that it turns the [rock] tile you want into a tree,
and then destroying that tree with bolt of fire, lightning bolt,
fireball, or other whatever other normally non-tunneling spells
you can think of. And they said unlimited dig was gone...!

--------------------------------------------------------------------------------
794a5991d5 | gammafunk | 2016-01-20 00:18:16 -0600

Update the changelog
Through 0.18-a0-1126-ga2d7f46.

--------------------------------------------------------------------------------
a2d7f46d61 | Nicholas Feinberg | 2016-01-19 19:27:12 -0800

Halve the Warlock's Mirror's enchant
From +6 to +3. It's plenty strong in practice, stronger than I'd
expected; no need to go overboard.

--------------------------------------------------------------------------------
2bdabe5a75 | Neil Moore | 2016-01-19 09:01:25 -0500

Remove a now-obsolete description line (dpeg)
As of 0.18-a0-1035-g72c9994 it is no longer true.

[skip ci]

--------------------------------------------------------------------------------
7f29f61b5d | Shmuale Mark | 2016-01-19 08:36:58 -0500

Fix searching for "shop" again.

--------------------------------------------------------------------------------
bd92598e24 | gammafunk | 2016-01-18 13:47:24 -0600

Update the FAQ regarding corpse sacrifices and corrosion (Darkli)
[skip ci]

--------------------------------------------------------------------------------
b6c1d30d7c | gammafunk | 2016-01-18 13:47:19 -0600

Word wrap FAQ.txt to 80 chars per line
[skip ci]

--------------------------------------------------------------------------------
b454403a3a | Ahmad Hamidullah | 2016-01-17 18:41:40 -0500

make stash search show matching shop items, even when the shop name matches 
(#10162)

--------------------------------------------------------------------------------
03bd62486d | gammafunk | 2016-01-16 22:40:09 -0600

Add Floodkiller to CREDITS.txt
[skip ci]

--------------------------------------------------------------------------------
d98ddfb2d5 | Floodkiller | 2016-01-16 22:39:16 -0600

Add a new undead-themed Spider rune vault.
A hidden structure has been unearthed within the depths of Spider!  The
walking (crawling?) dead skitter across the crumbling halls, having been
risen from the dead with no given purpose other than to feed alongside
their living brethren.  Even further within this forgotten mausoleum lies
the gossamer rune of Zot, guarded by insect-like pilgrims who followed from
a far deeper grave.  Can you brave these deadly halls, or will you be
enlisted in its defense?

Commiter's Notes: Closes #222. This map uses a band of death scarabs to
guard the rune behind a door. Scarabs are very fast and have a strong
branded attack, but have batty movement with fairly low defenses, low HP,
and not very high HD, so they should make a suitable challenge in their
limited number. The rest of the map uses a mix of the usual spider
monsters, with a limited number of emperor scorpions and high level moths,
and has judiciously chosen spectral and zombie spiders thrown in. It should
be among the harder spider rune vaults, but is not overly difficult based
on play-testing.

--------------------------------------------------------------------------------
b7978080c7 | Shmuale Mark | 2016-01-16 19:20:10 -0500

Constify.

--------------------------------------------------------------------------------
0e5b704b71 | Shmuale Mark | 2016-01-16 19:19:21 -0500

Remove the special case for Labyrinth teleportation.
Now that all sources are finite, if the player wants to use a limited
resource to solve the maze I see no reason to prevent that.

--------------------------------------------------------------------------------
1750decf3d | Chris Campbell | 2016-01-16 19:50:26 +0000

Update some attack flavour descriptions
Describe AF_PARALYSIS's effects more fully, and update AF_POISON_STRONG since
it no longer completely bypasses rPois (as of 2252c12227e).

--------------------------------------------------------------------------------
c3cf7c796e | Chris Campbell | 2016-01-16 19:32:19 +0000

Remove some damage_done checks for monster attack flavours
For sticky flame, rotting, confusion and draining - these all still require
damage > 0, but no longer have an additional damage threshold that adjusts
their chance to actually trigger.

--------------------------------------------------------------------------------
96759db536 | Chris Campbell | 2016-01-16 19:26:51 +0000

Give wasp paralysis/slowing the normal chance to bypass rPois
And slightly reduce its chance to trigger, as well as removing the 1-turn bonus
to duration for hornets.

--------------------------------------------------------------------------------
80ec2c2262 | Chris Campbell | 2016-01-16 17:32:31 +0000

Fix display of evasion penalty for bardings (crate)

--------------------------------------------------------------------------------
d1fe698add | Chris Campbell | 2016-01-16 17:14:19 +0000

Simplify Sap Magic
Its current behaviour forces the player to constantly recheck spell success
rates while it's active. Instead of increasing spell failure depending on the
levels of spells cast, give Sap Magic three fixed levels, with a chance of
increasing the spell fail rate for each spell cast (of any level), and tie the
increased failure to the main Sap Magic duration so that they expire together.

--------------------------------------------------------------------------------
beaa3bbfe7 | Chris Campbell | 2016-01-16 16:23:47 +0000

Update Silence description
To mention blocking invocations, and to specify exactly which types of monster
abilities are blocked (now that they are broken down by type in the monster
description).

--------------------------------------------------------------------------------
a455ce3c98 | Chris Campbell | 2016-01-16 15:33:28 +0000

Fix some more references to potions of degeneration

--------------------------------------------------------------------------------
fc003ac8d6 | Chris Campbell | 2016-01-16 00:53:51 +0000

Don't show degeneration on the item discoveries page (FIQ)

--------------------------------------------------------------------------------
9f40e4b001 | Chris Campbell | 2016-01-16 00:51:00 +0000

Fix handling of useless rings of evasion (amalloy)

--------------------------------------------------------------------------------
655d6fa474 | Chris Campbell | 2016-01-16 00:23:16 +0000

Fix troves never asking for items from shops (DrKe)
Apparently broken by 3be1ec814.

--------------------------------------------------------------------------------
118c1289e6 | Chris Campbell | 2016-01-15 23:00:55 +0000

Remove evokable teleportation
Teleportation is great in consumable form (and still remains pretty common),
but unlimited teleportation is more problematic and encourages things like
using it repeatedly and with no real cost in various places (especially the
Abyss, for example). The ring remains with its *Tele property as a
mostly-strictly-bad ring.

--------------------------------------------------------------------------------
e9caa0622d | Pekka Lampila | 2016-01-16 00:12:57 +0200

Fixes for stash tracker and autoexplorer with scrying. (#9990)
Neither included items/features only seen by scrying.

--------------------------------------------------------------------------------
9613bf2852 | Pekka Lampila | 2016-01-15 23:45:38 +0200

Fix some tiles not being updated when activating scrying.
Specifically completely black squares weren't updated until next redraw.
Wizard mode x-ray vision toggle already worked correctly.

--------------------------------------------------------------------------------
ac44534400 | Pekka Lampila | 2016-01-15 23:29:15 +0200

Fix Ctrl+x not showing items seen by scrying. (#10013)

--------------------------------------------------------------------------------
b58a7c458c | Pekka Lampila | 2016-01-15 23:28:13 +0200

Fix WebTiles menu's more line not being updated on resize.

--------------------------------------------------------------------------------
f8b1e5e0dc | Shmuale Mark | 2016-01-15 14:27:09 -0500

Fix highlighting for books and rods (Medar).

--------------------------------------------------------------------------------
4565bd0910 | Pekka Lampila | 2016-01-15 20:15:36 +0200

Fix sorting by name in shops.

--------------------------------------------------------------------------------
895efdbaba | Shmuale Mark | 2016-01-15 13:08:59 -0500

Add a missing space (jefus).

--------------------------------------------------------------------------------
c0d3725a08 | Nicholas Feinberg | 2016-01-15 07:55:22 -0800

Rescale Infusion further
Halve the spellpower cap (from 50 to 25, in line with other level
1 spells), and adjust the scaling very slightly further, such that
it reaches the old max (+4 pre-ac damage) at the new cap.

Seems unlikely that the spell was being used at 50 power; makes
more sense to balance around a cap that might actually be reached.

--------------------------------------------------------------------------------
57a2e24759 | Nicholas Feinberg | 2016-01-15 07:55:22 -0800

Constify

--------------------------------------------------------------------------------
490ce1811f | Shmuale Mark | 2016-01-15 10:05:50 -0500

Prevent making vine stalker corpses/skeletons in vaults (|amethyst).

--------------------------------------------------------------------------------
6b706a68fe | Shmuale Mark | 2016-01-15 10:03:36 -0500

Show stash/menu annotations even on smallterms.

--------------------------------------------------------------------------------
c4c293ff73 | Shmuale Mark | 2016-01-15 09:59:09 -0500

Remove some unnecessary lambdas.

--------------------------------------------------------------------------------
6a0778cfa2 | Shmuale Mark | 2016-01-15 09:58:31 -0500

Stash: highlight the searched-for text in item description.

--------------------------------------------------------------------------------
f584a64292 | Shmuale Mark | 2016-01-15 09:07:00 -0500

Remove Vine Stalkers' corpses.
They didn't make much sense from a flavour perspective.

--------------------------------------------------------------------------------
ec8ac615ec | Pekka Lampila | 2016-01-15 13:32:30 +0200

Merge pull request #219 from drke2/patch-1
Adjust cure mutation trove entry fee
--------------------------------------------------------------------------------
aa7affafd5 | DrKe | 2016-01-15 03:18:08 -0800

Adjust cure mutation trove entry fee
To account for the potion being ~50% more common, change fixed cost of 2

to 1+d3.
--------------------------------------------------------------------------------
aeddbbb9cf | Nicholas Feinberg | 2016-01-14 21:21:33 -0800

Improve Infusion scaling slightly
Max damage bonus is now 5.3, up from 4. It became near-useless
faster than any other L1 spell; this should improve its longevity
a little.

--------------------------------------------------------------------------------
34ef3a2450 | Nicholas Feinberg | 2016-01-14 20:46:42 -0800

Don't comment that Beogh helps with 'orcish gear'
RIP...
--------------------------------------------------------------------------------
230c9292e1 | Shmuale Mark | 2016-01-14 22:24:13 -0500

Give the right floor position for searched-for shop items (FIQ).

--------------------------------------------------------------------------------
1b85438705 | Shmuale Mark | 2016-01-14 21:03:34 -0500

Prevent ghosts from being shafted.
Consistent with their inability to use stairs.

--------------------------------------------------------------------------------
3fdbf390a5 | Nicholas Feinberg | 2016-01-14 17:42:13 -0800

Tentacles shouldn't trigger most traps (7371)
Since they're not real monsters, and the way in which they 'move'
is best not examined too closely.

--------------------------------------------------------------------------------
259f6cfe01 | Shmuale Mark | 2016-01-14 14:17:48 -0500

Webtiles: colour Gozag gold (#10006).

--------------------------------------------------------------------------------
a2f8a92f21 | Shmuale Mark | 2016-01-14 13:29:44 -0500

Make the item description menu a formatted_scroller.
This means the action list and quotes can always show up.

--------------------------------------------------------------------------------
c10a5efd7c | Shmuale Mark | 2016-01-14 13:29:44 -0500

merge two back

--------------------------------------------------------------------------------
3679e09854 | Shmuale Mark | 2016-01-14 13:29:44 -0500

Always allow inscribing items if you can perform other actions.

--------------------------------------------------------------------------------
9a212da201 | Shmuale Mark | 2016-01-14 13:29:44 -0500

Revert highlighting of matched text.
Not removing the underlying infrastrucutre, since I want to bring it back
on the description menu (soon).

--------------------------------------------------------------------------------
45e9a13ca7 | Pekka Lampila | 2016-01-14 11:46:01 +0200

Keep amulets of reflection on autopickup after id. (ProzacElf)
Since we might want to find one with a better enchantment.
--------------------------------------------------------------------------------
ebb93d0789 | Shmuale Mark | 2016-01-13 22:20:09 -0500

Fix a method call.
Admittedly, all this mistake did was treat zombified bushes (!) as bushes.

--------------------------------------------------------------------------------
c97833a2bc | Shmuale Mark | 2016-01-13 22:20:09 -0500

Fix bugs with animated monsters' equipment.
In addition to the ones noted in the removed comment on _equip_undead,
undead versions of Gastronok/Nikola/draconians/etc. are able to use their
peculiar armours.

Undead can now use items that they died with even if you picked them up in
the meantime. If this is undesirable, it should be easy to change.

--------------------------------------------------------------------------------
c3146ca5e8 | Shmuale Mark | 2016-01-13 22:20:09 -0500

Let mercs pick their items back up after de-hogging (#10000).
Required (a) making paid-for mercs having real items, and (b) letting
monsters (even friendly) pick up items (even ones you've seen) if they
dropped them earlier.

This reverts commit db01d975f3aeba1ef4a0eb44048e06d90cc02805, since it is
no longer necessary.

--------------------------------------------------------------------------------
2c3b2ebee7 | Shmuale Mark | 2016-01-13 22:20:09 -0500

Store the mid of a monster that drops an object.

--------------------------------------------------------------------------------
71e418b70a | Shmuale Mark | 2016-01-13 22:20:09 -0500

Refactor monster::drop_item slightly.
And avoid using a dangling pointer.

--------------------------------------------------------------------------------
ee765f1e91 | Nicholas Feinberg | 2016-01-13 18:35:16 -0800

Fix blinkbolt reflection
It would attempt to make menv[YOU_FAULTLESS] blink, which crashed
on new levels and just didn't work right otherwise.

menv[YOU_FAULTLESS] should probably not depend on whether the
level is newly generated or not.

--------------------------------------------------------------------------------
028c38a34c | Nicholas Feinberg | 2016-01-13 16:41:56 -0800

The  no longer hits (halberd, causative, berder)
Accidental message introduced by d132116e91eeae.

--------------------------------------------------------------------------------
9f02aefabc | Neil Moore | 2016-01-13 00:13:00 -0500

Add a couple of Xom Crazy Yiuf quotes.
[skip ci]

--------------------------------------------------------------------------------
d466a242f6 | Chris Campbell | 2016-01-12 19:11:51 +0000

Remove weapon strength weighting
Makes to-hit be purely determined by dex, and to-dam by strength. This should
make the effects of dex/str slightly more noticeable, and more importantly
removes the mostly insignificant differences between weapons with different
strength weights.

--------------------------------------------------------------------------------
78c3604fc1 | Chris Campbell | 2016-01-12 18:09:53 +0000

Base Spectral Weapon's offensive scaling on spellpower rather than weapon skill
Primarily to simplify it and to make it less effective later on. HD now scales
up to 27 at 100 power, and the damage multiplier scales as if having 12.5
weapon skill under the old system (so at 100 power the damage multiplier is
1.5).

The main effect should be to reduce how well it scales later on, as well as
requiring higher power for it to do so (rather than just continuing to train
weapon skills, which most users would be doing anyway, and also bearing in mind
that it still improves with better base weapons anyway).

--------------------------------------------------------------------------------
d3d7624ec5 | Chris Campbell | 2016-01-12 17:51:53 +0000

Remove potions of degeneration
Replaced in vaults mostly by potions of poison, and in regular generation by
a mix of poison, mutation, lignification and flight.

--------------------------------------------------------------------------------
cdacec3117 | Chris Campbell | 2016-01-12 16:11:21 +0000

Adjust vertigo messaging further
Shorten the amulet of dismissal's version of the message too, and use a more
appropriate message channel.

--------------------------------------------------------------------------------
6e94b18583 | Chris Campbell | 2016-01-12 15:45:19 +0000

Tweak a comment

--------------------------------------------------------------------------------
88df0fb094 | Chris Campbell | 2016-01-12 15:43:35 +0000

Shorten messaging for Alistair's Intoxication
Leave the longer explanations of how the spell works flavour-wise in its
description, in order to shorten the messages that'll be seen much more
frequently when casting it.

--------------------------------------------------------------------------------
d132116e91 | Nicholas Feinberg | 2016-01-11 22:28:29 -0800

New unrand: the Warlock's Mirror
Allows reflection of piercing effects & enchantments, among
other things. Extra fun with anything that boosts your SH beyond
what a buckler can get you!

Doesn't currently work for monsters, and the ench-blocking effect
might be better based on ench_power than purely on SH.

--------------------------------------------------------------------------------
d78764b806 | Nicholas Feinberg | 2016-01-11 21:40:06 -0800

Tweak new unrand descriptions
Robe of Vines and Kryia's. In particular, add a note to the latter
for deep dwarves.

--------------------------------------------------------------------------------
b3af0b5472 | Nicholas Feinberg | 2016-01-11 21:21:02 -0800

Swap out a Donald orb line

--------------------------------------------------------------------------------
19eabb99f7 | Brendan Hickey | 2016-01-12 00:11:10 -0500

Add Donald Orb speech.

--------------------------------------------------------------------------------
4fac74fc1a | Brendan Hickey | 2016-01-11 23:42:34 -0500

Add Yiuf speech acknowledging the orb.
Players have been known to retrieve Yiuf during the orb run and 'escape' with 
him. This is actually a bit of a challenge because monsters tend to explode him 
with hellfire. The purpose of this patch is to codify the Yiuf orb run. It's 
funny.

--------------------------------------------------------------------------------
3ad378d135 | Brendan Hickey | 2016-01-11 23:40:34 -0500

Add an "orb" prefix for mon-speak

--------------------------------------------------------------------------------
730660c8b7 | Neil Moore | 2016-01-11 18:06:48 -0500

Remove a now-unneeded ?RC special case.
And simplify the remaining code somewhat by using slot_item.

--------------------------------------------------------------------------------
88203af1e4 | Shmuale Mark | 2016-01-11 14:12:19 -0500

Merge pull request #210 from edsrzf/webtiles-glyphs-targeting
Fix targeting in webtiles with tile_display_mode = glyphs|hybrid (#8286)
--------------------------------------------------------------------------------
c0d36d40bf | Nicholas Feinberg | 2016-01-11 11:10:44 -0800

Merge pull request #215 from crawl/revert-207-zig-stacking
Revert "Zig stacking: slow down floor-filling, scale sets instead"
--------------------------------------------------------------------------------
887a372733 | Nicholas Feinberg | 2016-01-11 11:08:45 -0800

Revert "Zig stacking: slow down floor-filling, scale sets instead"

--------------------------------------------------------------------------------
08e9ab1cd0 | Nicholas Feinberg | 2016-01-11 10:48:28 -0800

Merge pull request #201 from jmbjr/js-nemelex-cardlevel
Sometimes upgrade plain decks for Nem worshipers
--------------------------------------------------------------------------------
d918d17b9f | Nicholas Feinberg | 2016-01-11 10:45:40 -0800

Merge pull request #207 from crawl/zig-stacking
Zig stacking: slow down floor-filling, scale sets instead
--------------------------------------------------------------------------------
691853fd86 | Nicholas Feinberg | 2016-01-11 10:42:58 -0800

Merge pull request #209 from edsrzf/webtiles-glyphs-monster-health
Show monster health in webtiles with tile_display_mode = glyphs
--------------------------------------------------------------------------------
50c9d358e2 | Nicholas Feinberg | 2016-01-11 10:38:56 -0800

Merge pull request #214 from nikheizen/dev
Burn Spellbooks no longer factors rarity into cloud duration.
--------------------------------------------------------------------------------
794c6f8afb | Nicholas Rosswood | 2016-01-10 20:49:01 -0800

Burn Spellbooks no longer factors rarity into cloud duration.
Maybe the rarer spellbooks were bigger? This change should make the effect ever 
so slightly better on average.

--------------------------------------------------------------------------------
4e042dec8d | Neil Moore | 2016-01-10 23:02:37 -0500

Add a by-reference analogue to random_choose.
The new function, random_choose_ref, is not currently used: all existing
calls to random_choose pass cheap-to-copy types such as integers, enums,
or const char *, so would not benefit from this version.

--------------------------------------------------------------------------------
2bb894fc36 | Chris Campbell | 2016-01-10 21:26:29 +0000

Let ambrosia bypass clarity
In the same way that intentional berserking bypasses clarity, allow the self-
confusion from ambrosia to also ignore it.

--------------------------------------------------------------------------------
4533410805 | gammafunk | 2016-01-09 23:50:40 -0600

Another Pakellas experiment overflow altar
An experiment where Pakellas sees what happens we expose various dungeon
monsters to bolts of electricity until they die or destroy the test
spire. The results will shock you!

--------------------------------------------------------------------------------
e6a8a1f1c1 | gammafunk | 2016-01-09 23:50:30 -0600

Fix and simplify tags in some vaults
Other overflows just turn off item and trap generation in the entire
vault, so to simplify the des I'm doing so for these, rather than
masking only the inaccessible regions separately for traps and items.

This also correctly applies no_tele_into in one inaccessible vault
region.

--------------------------------------------------------------------------------
867f5f3b84 | Evan Shaw | 2016-01-10 12:56:23 +1300

Fix targeting in webtiles with tile_display_mode = glyphs|hybrid (#8286)

--------------------------------------------------------------------------------
be91bf5134 | gammafunk | 2016-01-09 17:49:39 -0600

Rework a Pakellas overflow altar
Made gammafunk_pakellas_statue_experiment have a longer cloud chamber
leading to the subject chamber, so the visuals reinforce the idea of
Pakellas feeding clouds into the subject chamber. Also refactor some of
the supporting lua functions.

--------------------------------------------------------------------------------
4865665058 | Chris Campbell | 2016-01-09 21:00:07 +0000

Don't make quaffing unidentified berserk rage as a thirsty vampire cause hunger

--------------------------------------------------------------------------------
28f4618d52 | Chris Campbell | 2016-01-09 21:00:07 +0000

Rename the amulet of mana regeneration to magic regeneration
The general term that Crawl uses is "magic" (or magical power/energy, but not
mana).

--------------------------------------------------------------------------------
e4130b6985 | ontoclasm | 2016-01-09 14:21:28 -0600

Fix up some amulet/ring icons

--------------------------------------------------------------------------------
61a4981fe1 | Neil Moore | 2016-01-09 10:37:59 -0500

Hide CMD_SHOW_TERRAIN from ?? in local tiles.
It is not bound to a key there, so was incorrectly listed as being bound
to 0.

--------------------------------------------------------------------------------
7ac1859f26 | gammafunk | 2016-01-09 01:21:46 -0600

Fix jewellery tiles and add a temporary tile for mana regeneration
Move the ego tile for resist corrosion to rings and apply it to rings of
resist corrosion, rename the warding tiles to dismissal. The corrosion
tile needs to be shifted and resized to be consistent with the other
ring tiles, but I've not done this.

This commit also adds a temporary mana regeneration tile as a magenta
palette swap of the regeneration tile. Replace it when a more
appropriate tile is available.

--------------------------------------------------------------------------------
72c999403e | Chris Campbell | 2016-01-09 02:30:18 +0000

Scale the effective depth of Gozag shops with XL
Rather than having it depend on your actual location, since that encourages
things like travelling to place all shops as deep as possible.

--------------------------------------------------------------------------------
0b8a427523 | Chris Campbell | 2016-01-09 02:30:18 +0000

Don't make lost souls submerge
It didn't really make any difference for them.

--------------------------------------------------------------------------------
6daf3913e7 | Chris Campbell | 2016-01-09 02:30:18 +0000

Remove trapdoor spiders
Their ambush trick doesn't really make them substantially scarier than other
spiders, and now exists on swamp worms too (where terrain might make it work
better). Replaced mostly with a mix of redbacks and nothing in vaults.

--------------------------------------------------------------------------------
3d32517467 | Chris Campbell | 2016-01-09 02:30:18 +0000

Don't make AF_SCARAB attacks trigger when not dealing damage

--------------------------------------------------------------------------------
bc1e5868be | Chris Campbell | 2016-01-09 02:30:18 +0000

Adjust bailey placement of deep elves
Place slightly fewer deep elf magi, and give a chance of placing an archer
instead of a knight.

--------------------------------------------------------------------------------
011d70e3ec | Nicholas Feinberg | 2016-01-08 17:51:38 -0800

Re-add an old message merge check (chequers)
And add a note about the reason & my desire for a better approach.

(This is purely aesthetic.)

--------------------------------------------------------------------------------
76a2a7fe6e | Nicholas Feinberg | 2016-01-08 17:36:35 -0800

Fix lab teleportation
Broken since 0.14-a0-1543-g12ce0c0, nearly three years ago.

(It could land you near the exit. Absurd...!)

--------------------------------------------------------------------------------
6e46bd468f | Corin Buchanan-Howland | 2016-01-08 08:04:09 -0500

Improve and ruin and up/downgrade the flavor on Alistair's Intoxication
Alistair's intoxication no longer confuses the player or drains int; instead
it gives Vertigo status. Alistair's also can affect rPois monsters, but at
the same rate that they get poisoned from other sources. Because this is
mostly a buff to the power level, I'm bumping the level to 5. That might
be too much -- it could also be a level 4 spell and add Hexes or
something.

In the process, I made the flavor better (subjectively). The flavor of
destroying your own brain to create poisonous radiation that makes
intelligent monsters drunk never made any sense to me. Now, you destroy
the brains of your foes instead, and you get vertigo from the strange
experience of magically contacting all those brains.

Happily, Alistair's remains a party trick, both in description and book.

This is the result of conversation about the overlap between this spell
and mass confusion; we decided this was the more interesting one to keep,
so I expect we'll remove mass confusion shortly.

--------------------------------------------------------------------------------
814d7dd22d | David Ploog | 2016-01-07 16:02:00 +0100

Mention shop depth in Call Merchant description.

--------------------------------------------------------------------------------
2a4ab4c503 | Evan Shaw | 2016-01-07 20:45:23 +1300

Show monster health in webtiles with tile_display_mode = glyphs

--------------------------------------------------------------------------------
e317a7fe62 | Neil Moore | 2016-01-07 01:01:36 -0500

Use the same rules in _choose_throwing_target and _choose_throw_dest.
There were two differences between the sets of cell validity checks.

  1. _choose_throwing_target still required the victim to be able to
     see the destination cell.  That was supposed to have been changed,
     but the change only affected _choose_throw_dest.  Now monsters
     can in fact throw victims to spots the victims originally couldn't
     see.

  2. _choose_throwing_target checked for MIN_THROW_DIST between the
     victim and the target, while _choose_throw_dest checked distance
     between the thrower and the target.  This led to an assert when
     _choose_throwing_target picked a cell adjacent to the thrower:

     http://dobrazupa.org/morgue/HobsGoblin/crash-HobsGoblin-20160107-053056.txt

--------------------------------------------------------------------------------
f4f215a631 | Neil Moore | 2016-01-07 00:31:59 -0500

Adjust autopickup defaults for jewellery changes.
[skip ci]

--------------------------------------------------------------------------------
f1736fbdac | Nicholas Feinberg | 2016-01-06 19:21:14 -0800

Revert "Clarity blocks intentional zerk"
The simplification was good, but the interaction with Trog and
others was bad. (Clarity mut should not shut down zerkers.)

It might be reasonable to change known ambrosia to work through
clarity (for consistency), or other simplifying changes.

This reverts commit 18cdf19ce4aac04e858fc8d42d2308806ea2ec9c.

--------------------------------------------------------------------------------
d2b547c6e3 | Nicholas Feinberg | 2016-01-06 19:20:18 -0800

Improve 'enchanted' armour description
Describe it in the item description, and don't require curse status
to be known. (Both of these match the weapon behaviour.)

--------------------------------------------------------------------------------
9a29af7515 | Nicholas Feinberg | 2016-01-06 17:56:18 -0800

Mark enchanted armour as such
Similar to weapons. This only comes up with Ash, I think?

--------------------------------------------------------------------------------
de3230b19c | Corin Buchanan-Howland | 2016-01-06 18:11:25 -0500

Fix misleading text about the mana regen amulet (wheals)

--------------------------------------------------------------------------------
47c2ea230e | Corin Buchanan-Howland | 2016-01-06 18:06:54 -0500

Replace the amulet of resist corrosion with the amulet of mana regeneration
The amulet of corrosion is now redundant, so I'm replacing it with something
else. One option is clearly an amulet of invisibility, but I don't actually
like having evokable invis on jewellery -- it's not a great thing to have
on a swappable slot for one thing, and invis is both powerful and has a ton
of sources for another.

Instead, I'm adding an amulet of mana regeneration. It has a warm-up, like
the amulet of regeneration to disincentivize constant swapping. It
increases MP regeneration by the same amount as adding 40 mp would. If it
proves too strong, we can reevaluate.

I think the new amulet is a solid if not particularly flashy item with a
unique enough effect, and I expect it to be useful to many characters.

--------------------------------------------------------------------------------
e82f3c2974 | Corin Buchanan-Howland | 2016-01-06 18:06:53 -0500

Make regen amulets less rare
For some reason, regeneration amulets were as rare as rings of slaying and
rings of invisibility. The other two are very strong items, which presumably
motivates their rarity; amulet of regeneration really isn't in the same
league.

--------------------------------------------------------------------------------
2ca0d9c411 | Corin Buchanan-Howland | 2016-01-06 18:06:52 -0500

Replace ring of invisibility with ring of resist corrosion
This is the first part of a set of commits that will remove the amulet of
resist corrosion, thereby effectively moving resist corrosion from an amulet
to a ring.

The motivation here is to keep all the similar resists (rF+, rC+, rN+, rPois)
together in the ring slot rather than spreading them out. It also means that
we can move another amulet away from being a situational resist swap.

--------------------------------------------------------------------------------
ae0b928a85 | Nicholas Feinberg | 2016-01-05 23:30:28 -0800

Another tiny handle_monster_shouts() refactor

--------------------------------------------------------------------------------
e9cbd9ba80 | Nicholas Feinberg | 2016-01-05 23:24:01 -0800

Refactor a little bit of monster shout code

--------------------------------------------------------------------------------
948da4d8b2 | Nicholas Feinberg | 2016-01-05 23:10:59 -0800

Allow messages to repeat more reliably
"You hear a shout! x10" only worked if that was the first message
of a line; multiple messages on a line were treated as their
concatenation ("You hear a buzzing! You hear a shout!") and so
didn't stack ("You hear a buzzing! You hear a shout! You hear a
shout!").

This is a little ugly, in both code and aesthetics, but should be
an improvement in usability, at least.

--------------------------------------------------------------------------------
3bbf375cc9 | Nicholas Feinberg | 2016-01-05 20:53:40 -0800

Remove an (apparently?) obsolete comment

--------------------------------------------------------------------------------
cef200d94d | Nicholas Feinberg | 2016-01-05 20:38:22 -0800

Use a map for monster shout default_msg_type

--------------------------------------------------------------------------------
b0183875ed | Nicholas Feinberg | 2016-01-05 20:19:11 -0800

Don't use the same name for a var & namespace
In this one function, anyway. Geez...

--------------------------------------------------------------------------------
b5cded98ec | Neil Moore | 2016-01-05 20:47:36 -0500

Comment a function and an assumption.
[skip ci]

--------------------------------------------------------------------------------
b4318f545b | Alex Jurkiewicz | 2016-01-05 20:38:09 -0500

Warn Formicids when they enter a non-shaftable level.

--------------------------------------------------------------------------------
42b3d74bf9 | Shmuale Mark | 2016-01-05 20:01:08 -0500

Merge pull request #208 from edsrzf/statue-form-cleanup
Remove special case for Gargoyles in Statue Form.
--------------------------------------------------------------------------------
142ad11f33 | Evan Shaw | 2016-01-06 13:54:51 +1300

Remove special case for Gargoyles in Statue Form.
Gargoyles can't cast Statue Form anymore.

--------------------------------------------------------------------------------
00ae07b8f1 | Neil Moore | 2016-01-05 18:40:51 -0500

Make iron giants throw from the hip.
That is, start the SPELL_THROW beam from the thrower's position as
opposed to the victim's.  That was how Robin's SPELL_THROW_ALLY worked
already, and importantly _choose_throw_target, which served as the
tracer for both spells, worked that way.

Fixes a crash when there was a path from the thrower to the target but
not from the victim to the target: the call to find_ray from
_choose_throw_dest failed, triggering an assert when we tried to advance
the ray:

  
http://crawl.akrasiac.org/rawdata/tomatochips/crash-tomatochips-20160104-123826.
txt

Also add an explicit assert that we found a ray to trace, so that future
crash messages will credit mon-cast.cc rather than the fearsome and
inscrutable ray.cc.

This change does mean that you can now be thrown to places you could not
see from your old position.  For example, in the following diagram, the
spot labelled * is now a valid destination for the throw:

  #*#.#
  #.#@#
  #.C.#
  #####

--------------------------------------------------------------------------------
6b5bfb2098 | Neil Moore | 2016-01-05 17:03:10 -0500

Properly round rays with negative coordinates.
We wanted a number to be odd, but it could have been negative, in which
case the mod operator would have given -1 (in C++11 at least) rather
than the expected 1.

The previous commit now prevents us from being called in that situation,
but we should still handle this case, because sometimes we're not in
the map's coordinate system anyway.

Both this commit or the previous one independently fix this crash:
  http://dobrazupa.org/morgue/GreatCaesar/crash-GreatCaesar-20160105-193033.txt
(aiming a cloud targetter north or west when in the vicinity of (0,0)),
but not the more general ray-rounding crash.

--------------------------------------------------------------------------------
0c0fb3d0ef | Neil Moore | 2016-01-05 17:03:10 -0500

Stop shotgun/tbolt targetting rays at solid features.
And, more importantly, at the map edge.  See:
  http://dobrazupa.org/morgue/GreatCaesar/crash-GreatCaesar-20160105-193033.txt

--------------------------------------------------------------------------------
a351c642da | Chris Campbell | 2016-01-05 21:37:40 +0000

Increase Monstrous Menagerie to L7, Shadow Creatures to L6

--------------------------------------------------------------------------------
d97a107eea | Chris Campbell | 2016-01-05 21:37:40 +0000

Standardise some confusion durations
5-7 turns had been used as a standard duration in various places. Update a few
other places to also use that as their duration (probably the default duration
should be set in confuse_player() rather than scattered all over the place,
which would also make adjusting confusion durations in general easier).

Also slightly randomise giant spore confusion duration, instead of fixing it at
3 turns.

Remaining exceptions to the default include mephitic clouds and giant spores
(which have a shorter duration), CBoE and DDoor cancellation (longer duration),
some miscasts, Alistair's self-confusion, confusion melee/needles.

--------------------------------------------------------------------------------
ed0b5f8a9d | Neil Moore | 2016-01-05 15:42:34 -0500

Don't badly aim rod of lightning/clouds southeast.
If the player aimed the shotgun or thunderbolt targetter past a grate or
at themselves, the beam would mysteriously point southeast instead---it
turns out, directly away from (0,0).  This happened because, when making
the fallback ray, we passed start and end coordinates to geom::ray's
constructor, which actually expected a start coordinate and a direction.

Also, don't allow self-aiming the shotgun targetter at all (return false
early), since we'd just get a crash as we tried to advance a ray with
direction (0, 0).

--------------------------------------------------------------------------------
18cdf19ce4 | Edgar A. Bering IV | 2016-01-05 15:18:16 -0500

Clarity blocks intentional zerk (bcadren, nvjack)
This was a weird exception and is now not weird.

--------------------------------------------------------------------------------
f6225c7b3c | Chris Campbell | 2016-01-05 20:01:07 +0000

Make temporary mutation apply multiple levels of a bad mutation
And replace demonspawn corrupters' corrupt body spell with a single-target
version of the wretched star spell, instead of their hand-picked list of
"corrupt" mutations. Wretched stars and demonspawn corrupters now attempt to
apply 2 levels of a bad mutation (with a chance of trying to do so twice).

--------------------------------------------------------------------------------
a6cb66c9de | Shmuale Mark | 2016-01-05 14:01:06 -0500

Prevent using the stash shop menu as an infinite source of items.
wwwhhheeeaaalllsss

--------------------------------------------------------------------------------
cb3fcb191b | Alan Malloy | 2016-01-04 17:59:22 -0800

reword "harm description

--------------------------------------------------------------------------------
a98744b833 | Corin Buchanan-Howland | 2016-01-04 20:50:10 -0500

Demystify amulet of harm text (minmay)

--------------------------------------------------------------------------------
a5a3983657 | Shmuale Mark | 2016-01-04 19:09:52 -0500

Fix remote shopping list use (#10225).

--------------------------------------------------------------------------------
d892ad225e | Pekka Lampila | 2016-01-04 22:58:41 +0200

Add a note if paralysed due to fainting or Trog wrath.

--------------------------------------------------------------------------------
645d2a7bd1 | Pekka Lampila | 2016-01-04 22:56:54 +0200

Fix Trog wrath paralysis always being 1 turn.
Now it's 2-7 turns, as intended.

--------------------------------------------------------------------------------
3156a68965 | Alan Malloy | 2016-01-03 14:31:03 -0800

Simplify escape-feature selection (|amethyst)

--------------------------------------------------------------------------------
ec2f06b3bb | Alan Malloy | 2016-01-03 14:22:02 -0800

For single-floor branches, replace >/< with branch exit (PleasingFungus)

--------------------------------------------------------------------------------
f442c820b5 | Alan Malloy | 2016-01-03 14:20:56 -0800

Document _fixup_branch_stairs

--------------------------------------------------------------------------------
047427f350 | regret-index | 2016-01-03 17:07:03 -0500

Zig stacking: slow down floor-filling, scale sets instead
Filling zig floors entirely pretty quickly over additional zigs does
establish a very high tier of difficulty for ziggurats, but it also
thoroughly centralizes approaches and character builds towards mass
conjurations after the first few.  With the excess in-place being extra
visible with ziggurat figurines, easily reaching the hard monster cap
easily at seven to ten ziggurats, it seems appropiate to revise the
ziggurat stacking difficulty curve.

On a set-by-set basis, through tiered linear weighting, all ziggurat
monster sets now scale with ziggurat completion, spawning much less of
the weaker flavour spawns and much more of the high level spawns. Said
scaling mostly reach asymptotic points that differ based on the vague
preservation of first-zig set balance and the inherent available threate
of that set's theming, for the most part slowing at early to late twenty
zigs. This is paired with a new hd pool formula that moves at roughly a
third of the original speed (but which fixes a long-standing slight
reduction to the first zig's hd pool).  Multiple-ziggurat balance being
as arbitrary and isolated as it is, this more elegant scaling provides a
stronger but delayed top-end of ziggurat floors, allowing
non-conjurations builds to play more ziggurats more and giving
conjurations users some even nastier floors.

Of course, there's also some house-keeping with each set's contents to
support this idea of zig stacking set scaling, promoting and adding a
few monsters to minor explicit weighting status or more standard
appearance rates for use in the set-upscaling or just general support
variety. The starter few ziggurats shouldn't be that much more
difficult, proportionally, for whatever that implies about brief dips
into them for items and experience.
 * Lair: Extra hydras and torpor snails; eventual high emphasis on
   catoblepae, hellephants, spriggan druids, and caustic shrikes.
 * Snake: Eventual high emphasis on greater nagas and quicksilver
   dragons.
 * Swamp: Eventual high emphasis on tentacled monstrosities and
   shambling mangroves.
 * Shoals: Eventual high emphasis of merfolk aquamancers and water
   nymphs.
 * Spider: Extra emperor scorpions, torpor snails, entropy weavers, and
   moths of wrath: high eventual focus on the aforementioned, orb
   spiders, and ghost moths.
 * Slime: Gets, emphasizes giant eyeballs, (extra) azure jellies and
   acid blobs.
 * Orc: A sprinkling of juggernauts after the first zig, with eventual
   high emphasis on orc warlords, orc high priests, and juggernauts.
 * Elf: Eventual high emphasis on deep elf high priests, deep elf
   blademasters, and deep elf master archers.
 * Vaults: Extra glowing shapeshifters and sphinxes: eventual emphasis
   on titans, ancient liches, and golden dragons.
 * Crypt: Gets extra ancient champions; eventual emphasis on them, curse
   skulls, profane esrvitors, revenants, bone dragons, and ancient
   liches.
 * Tomb: Eventual emphasis on greater mummies.
 * Abyss: Extra starcursed masses, wretched stars, bone dragons, and
   liches; eventual emphasis on them and corrupters.
 * Cocytus: Extra tormentors and shard shrikes; eventual emphasis on
   them, blizzard demons, and ice fiends.
 * Gehenna: Extra hellions and hell knights; eventual emphasis on them,
   balrugs, and brimstone fiends.
 * Iron City of Dis: Extra iron dragons and iron giants; eventual
   emphasis on them, war gargoyles, and hell sentinels.
 * Tartarus: Extra silent spectres, shadow demons, and reapers; eventual
   emphasis on the latter two, curse toes, and shadow fiends.
 * Fire: Eventual emphasis on fire dragons, fire giants, salamander
   stormcallers, and (especially) orbs of fire.
 * Ice: Eventual emphasis on white draconian knights, shard shrikes, and
   ice fiends.
 * Air: Gets spark wasps (mid-tiered); eventual focus on storm dragons,
   titans, and electric golems.
 * Earth: Loses juggernauts and corrosion; the connections are tenuous
   and the theme of omni-resistant conjurations-slingers is fine enough,
   especially with the eventual scaling on hell sentinels and added iron
   giant. Each of those monsters are also emphasized in other sets.
 * Negative: Eventual emphasis on shadow dragons, revenants, black suns,
   profane servitors, and shadow fiends.
 * Holy: Eventual emphasis on daevas and pearl dragons.
 * Chaos: Extra eventual emphasis on pandemonium lords.
 * Giants: Eventual emphasis on titans, iron giants, and juggernauts.
 * Dragons: Eventual emphasis on iron dragons, shadow dragons,
   quicksilver dragons, and golden dragons.
 * Draconians: Eventual emphasis on the classed draconians.
 * Ranged: Cut thorn hunters (their briar patches hardly help); eventual
   emphasis on stone giants, naga sharpshooters, merfolk javelineers,
   and deep elf master archers.
 * Conjurers: Eventual emphasis on draconian annihilators.
 * Pan: No longer limited by depth, as there are plenty of nasty sets
   already not limited by depth. Eventual emphasis on classed demonspawn
   and greater demons.
 * Lair branches: Eventual emphasis on greater nagas, tentacled
   monstrosities, merfolk javelineers, and ghost moths.

Ziggurats, of course, are not anywhere near done under this shift. The
floor shapes could use some tweaking and added variety (especially with
horizontal hexagon levels being noticeably too small for the monster
caps), and there are plenty of plausible pillar / entry changes. There's
some inherent inconsistency with the set scaling, any given thematic
range only supporting so much, and depth-scaling is inconsistently
applied as well based on current balances and supporting the
initially-weak sets. Still. This shift should be good enough, barring
tweaks and complete revisions.

--------------------------------------------------------------------------------
e2fea7a716 | Alan Malloy | 2016-01-03 13:43:20 -0800

constify a bunch of locals (|amethyst)

--------------------------------------------------------------------------------
4a3b7c75a2 | Neil Moore | 2016-01-03 16:39:08 -0500

Statically assert that spellbook_templates is the right size.
And add a cautionary comment!

--------------------------------------------------------------------------------
be4b983ed4 | Nicholas Feinberg | 2016-01-03 13:28:34 -0800

Oops (wheals)

--------------------------------------------------------------------------------
7c4e61467c | Nicholas Feinberg | 2016-01-03 13:26:38 -0800

Reduce !cmut shop cost
To match its increased frequency.

--------------------------------------------------------------------------------
74cdb39b72 | Shmuale Mark | 2016-01-03 16:22:45 -0500

Shop menu: Webtiles: try to fix the tiles not updating (Floodkiller).

--------------------------------------------------------------------------------
583743e4dd | Shmuale Mark | 2016-01-03 14:45:39 -0500

Shop menu: fix a crash due to pointer invalidation (#10212).

--------------------------------------------------------------------------------
e34a803424 | Alan Malloy | 2016-01-03 02:37:33 -0800

Make sure vault-produced escape hatches aren't erased
> placed at branch ends, and < at branch entrances, used to be deleted
because those features aren't legal in those places. This could lead to
players being trapped, eg if an 'island' vault with a hatch down
generated on Lair:8. Now, we replace any vault-mandated escape hatches
with whatever escape feature is appropriate for the current branch/floor.

--------------------------------------------------------------------------------
b7d270e696 | Alan Malloy | 2016-01-03 02:29:19 -0800

Don't show Dr HP as if it were rotted while gaining XL 7

--------------------------------------------------------------------------------
0b0e4e7887 | Shmuale Mark | 2016-01-02 18:45:32 -0500

Refactor (amalloy).

--------------------------------------------------------------------------------
b4460b63e6 | Shmuale Mark | 2016-01-02 18:45:32 -0500

Restore comments (PleasingFungus).

--------------------------------------------------------------------------------
02be83f1a0 | Shmuale Mark | 2016-01-02 18:45:32 -0500

Shop menu: swap order of buy/examine.
Buying is the primary purpose of the menu.

--------------------------------------------------------------------------------
2e4691bdb9 | Shmuale Mark | 2016-01-02 18:45:32 -0500

Shop menu: Fix the menu not shrinking on purchase in Webtiles.

--------------------------------------------------------------------------------
63271b38de | Shmuale Mark | 2016-01-02 18:45:32 -0500

Avoid some JS errors.

--------------------------------------------------------------------------------
6132cfdcf0 | Shmuale Mark | 2016-01-02 18:45:32 -0500

Shop menu: fix the purchase prompt not going away.

--------------------------------------------------------------------------------
519e26900e | Shmuale Mark | 2016-01-02 18:45:32 -0500

Shop menu: maybe fix the Webtiles menu not updating.
Probably doesn't get purchasing working, though.

--------------------------------------------------------------------------------
fd295522fd | Shmuale Mark | 2016-01-02 18:45:32 -0500

Shop menu: Remove the ugly background in Tiles.

--------------------------------------------------------------------------------
e7ad972d4d | Shmuale Mark | 2016-01-02 18:45:32 -0500

Shop menu: fix the prompt text for local tiles.
Should also make implementing Webtiles easier, eventually.

--------------------------------------------------------------------------------
56fd9201b1 | Shmuale Mark | 2016-01-02 18:45:32 -0500

Revert "Revert shop menu changes"
This reverts commit 5edc98f442bd82dabe4781bcdd9c4a3802e99879.

Includes a save compat fix for the save compat fix for the save compat fix.

--------------------------------------------------------------------------------
e0e037f24c | Alan Malloy | 2016-01-02 14:25:40 -0800

Use tr instead of sed, to fix undoku portably (geekosaur)

--------------------------------------------------------------------------------
9003074be4 | Alan Malloy | 2016-01-02 14:12:20 -0800

Sync devwiki manual

--------------------------------------------------------------------------------
4603a40dbf | Alan Malloy | 2016-01-02 14:10:12 -0800

Fix undoku.sed to work on OSX

--------------------------------------------------------------------------------
d5b4d0fe33 | Alan Malloy | 2016-01-02 12:24:54 -0800

Let the teleport message from "dismissal show up in ^p

--------------------------------------------------------------------------------
2727f70c01 | Nicholas Feinberg | 2016-01-02 11:22:35 -0800

Remove a a double article (10220)
The the article reflects off an invisible shield around you!

--------------------------------------------------------------------------------
1dc41da1e0 | Nicholas Feinberg | 2016-01-02 11:09:56 -0800

Warn before quaffing !lig in dangerous clouds
Seems polite. Can be reverted if it seems excessive.

--------------------------------------------------------------------------------
0af621779e | Pekka Lampila | 2016-01-02 01:02:31 +0200

Change redraw_status_flags to boolean redraw_status_lights.
It was already just used as a boolean.

--------------------------------------------------------------------------------
1d4962a896 | Pekka Lampila | 2016-01-02 00:36:00 +0200

Remove gold aura when leaving Gozag.
The code wasn't updated for the duration based effect.

--------------------------------------------------------------------------------
dc24ac1b71 | Pekka Lampila | 2016-01-02 00:09:50 +0200

Data-ify Gozag's passive abilities.

--------------------------------------------------------------------------------
d3157b7061 | Neil Moore | 2016-01-01 15:35:29 -0500

Don't affect firewood with Call of Chaos (regret-index)

--------------------------------------------------------------------------------
d040b69ff1 | Nicholas Feinberg | 2016-01-01 12:11:15 -0800

Fix targeting mag immune enemies (resistentialism)
Anything that *wasn't* an irresistible enchantment (e.g. haste,
invis, dispel undead) - including spells that were not enchantments,
e.g. fireball - would not autotarget magic-immune enemies.

beem....

--------------------------------------------------------------------------------
7b11726a4a | Neil Moore | 2016-01-01 14:46:30 -0500

Fix monster Dispel Undead (regret-index)
The holiness check was reversed, so they refused to cast it at undead,
and attempted to cast it at non-undead.

--------------------------------------------------------------------------------
dbb6d6e6c9 | Shmuale Mark | 2016-01-01 14:31:42 -0500

Use the god_iterator some more.

--------------------------------------------------------------------------------
920017555c | Nicholas Feinberg | 2015-12-31 15:34:13 -0800

Add and use a god_iterator
Nicer than iterating 0 to NUM_GODS everywhere, maybe. Also lets us
reorder them if we want? (TSO should be first...)

--------------------------------------------------------------------------------
5edc98f442 | Nicholas Feinberg | 2015-12-31 00:44:12 -0800

Revert shop menu changes
Extremely broken in webtiles.

"things that work: selecting items for purchase, hitting esc to exit.
things that are completely broken: purchasing, shopping lists.
things that are half-broken: changing the sorting (works but doesn't
refresh)
bonus brokenness: claims you can hit r-click to exit."

This reverts commit 171f012cdc27f062a7ba1742b87c5eb80aa446b3.

This reverts commit f46c1db7774bd6e0bef2036a3f3fe04353211ef6.

--------------------------------------------------------------------------------
4b978519b7 | Nicholas Feinberg | 2015-12-30 22:36:45 -0800

Flag M_TALL_TILE on monsters (as appropriate)
Updates an old hack removing labels from tall monsters, and also
should be useful for something else...

--------------------------------------------------------------------------------
ae6beb5273 | Nicholas Feinberg | 2015-12-30 22:07:30 -0800

Fix ?/S spell name capitalization

--------------------------------------------------------------------------------
57405aee35 | Nicholas Feinberg | 2015-12-30 21:29:53 -0800

Don't make ?/ihat give the book of tempests
Hopefully this doesn't cause further issues.

--------------------------------------------------------------------------------
77c8fc5724 | Nicholas Feinberg | 2015-12-30 16:59:20 -0800

Allow entering treeform in danger clouds (minmay)
It sucks to drink un-id'd !lig in a freezing cloud generator, but,
well, quite a lot of things suck to drink in a freezing cloud
generator. Many of them will kill you. Not a special case worth
its salt.

:evergreen_tree::heart::cloud:

--------------------------------------------------------------------------------
de47421d49 | Shmuale Mark | 2015-12-30 19:45:28 -0500

Bring back a missing division by 10.

--------------------------------------------------------------------------------
971d5e4e53 | Nicholas Feinberg | 2015-12-30 16:44:34 -0800

Remove a bizarre special case for monster heal
Decapitated hydras & blink frogs hit with disto could heal past
their normal max hp. This seems unnecessary & complex.

--------------------------------------------------------------------------------
af58789d0e | Nicholas Feinberg | 2015-12-30 16:00:23 -0800

Tweak classed demonspawn HP
Simplifying. Monstrous classed demonspawn have somewhat less (but
still dramatically more than other classed demonspawn); other
classed ds have slightly more than they did before.

--------------------------------------------------------------------------------
4878628b8a | Nicholas Feinberg | 2015-12-30 15:58:30 -0800

Simplify monster HP specification
Now there's just one parameter, average HP, independent of HD.
Monsters' hp will vary between +-33% of that value; 95% of the
time within +-10%.

Certain effects will still scale HP with HD; notably, derived
undead, abominations, monsters levelling up, and vault defines.

This also fixes effects that heal classed demonspawn, which
would previously treat them as if they had almost no max hp,
and the max hp values for hypothetical (e.g. ?/M) classed
demonspawn, which probably has no impact.

There should be no significant gameplay impact from this change.

--------------------------------------------------------------------------------
171f012cdc | Shmuale Mark | 2015-12-30 15:59:14 -0500

Use the same shop menu in stash search (#932).

--------------------------------------------------------------------------------
f46c1db777 | Shmuale Mark | 2015-12-30 15:59:14 -0500

Replace the shopping menu with a real Menu.
The interface changes are mostly minor; for one, you can use the same
shortcuts to select or deselect items as you can on other menus (though
the by-type shortcuts are disabled since !/? are needed for switching to
examine mode). Additionally, the prompts to remove things from your
shopping list come before you enter the menu, which seems like a win since
they should be harder to miss.

--------------------------------------------------------------------------------
20bfd954c1 | Shmuale Mark | 2015-12-30 11:04:39 -0500

Don't crash when trying to affect a wall on the level border.

--------------------------------------------------------------------------------
309898abd8 | Alan Malloy | 2015-12-29 18:50:53 -0800

Remove rickrolling from friendly humanoids (gammafunk)

--------------------------------------------------------------------------------
fccd9f76ab | Alan Malloy | 2015-12-29 15:02:49 -0800

Merge pull request #204 from amalloy/slimify-undead
Pull request certified as "exciting" by PleasingFungus
--------------------------------------------------------------------------------
8d457f749f | Alan Malloy | 2015-12-29 14:39:02 -0800

Don't make buggy monsters on slimifying derived undead (Bamboomancer)

--------------------------------------------------------------------------------
5bbc315582 | Shmuale Mark | 2015-12-29 13:11:43 -0500

Don't wake up monsters when EH is cast on them (#10209).
Happened because that's no longer considered nasty_to—maybe it should be?
--------------------------------------------------------------------------------
bc21317c71 | Neil Moore | 2015-12-29 12:56:47 -0500

Handle space-containing font paths on install (floatRand)
Quotes, dollar signs, and other metacharacters are still a problem.

--------------------------------------------------------------------------------
1d3b463666 | Brendan Hickey | 2015-12-28 20:23:34 -0500

Back out Christmas Easter Eggs.
This reverts commit 96bdeba11489fe4e89068b4853c948175d010968.
This reverts commit 1c425019b1c3031aa70b26993c55b355f3d12a53.
This reverts commit faf6667daaae57768ed8a82a17eac6883e728d37.

--------------------------------------------------------------------------------
3ac5b3246f | Shmuale Mark | 2015-12-28 17:37:30 -0500

Update the git docs for MSYS2 switch (ontoclasm)

--------------------------------------------------------------------------------
2cf3f37ed6 | Alan Malloy | 2015-12-28 13:00:42 -0800

Fix the last compiler warning in human-written code

--------------------------------------------------------------------------------
b1c0994b36 | Alan Malloy | 2015-12-28 13:00:41 -0800

Disable some warnings in autogenerated source files

--------------------------------------------------------------------------------
2c08dd4c87 | Shmuale Mark | 2015-12-27 23:12:52 -0500

Fix the display for Ensorcelled Hibernation (chris).

--------------------------------------------------------------------------------
244f4fb049 | Shmuale Mark | 2015-12-27 22:48:00 -0500

Show immunity when targetting an MR-resistible spell (#9391).
Pain on a zombie, for example, will show "not susceptible" rather than an
irrelevant percentage.

As mentioned in comments, this is implemented with an ultra-wrong hack, but
the alternative seems to be massive code duplication. This relates back to
fundamental issues with the place of monster_info in the codebase, which
are beyond the scope of this commit.

--------------------------------------------------------------------------------
b8a2fe6577 | Alan Malloy | 2015-12-27 17:49:14 -0800

Address compiler warnings in human-written code

--------------------------------------------------------------------------------
200f45b509 | Steve Melenchuk | 2015-12-27 18:42:27 -0700

Don't let device surge influence hex spell MR display (wheals).

--------------------------------------------------------------------------------
1e913c87f7 | Steve Melenchuk | 2015-12-27 18:29:03 -0700

Show influence of device surge on hex success chance (#10134).
This is an extremely ugly implementation and I welcome someone who's
better at math than I am to come up with something cleaner.

--------------------------------------------------------------------------------
ca94e1c16e | Steve Melenchuk | 2015-12-27 18:19:59 -0700

Fix Device Surge not actually surging wands.
Broken by the refactor to use a status.

--------------------------------------------------------------------------------
1af3f5eedf | Shmuale Mark | 2015-12-27 17:50:29 -0500

Make &*Q0 actually do something.
It now toggles off the diagnostic messages that you can't otherwise.

--------------------------------------------------------------------------------
c90f411c7d | Steve Melenchuk | 2015-12-27 13:51:52 -0700

Move deep elf mages deeper in D.
They've been showing up as early as D:6-7 and can handily one-shot most
players at that point. That's too terrifingly lethal for that point.

This moves them three levels deeper.

--------------------------------------------------------------------------------
fd6d05ad8e | Steve Melenchuk | 2015-12-27 13:50:35 -0700

Significantly increase the chances that vampires Vampiric Drain.
1/4 chance per turn in melee range if they are at 1/3 HP or lower,
falling off linearly to zero at full HP.

Battling vampires should therefore be somewhat more distinctive.

--------------------------------------------------------------------------------
5b78848ead | Shmuale Mark | 2015-12-27 15:46:17 -0500

Remove an unused variable.
!blame3 gammafunk

--------------------------------------------------------------------------------
d292b6f8ee | Shmuale Mark | 2015-12-27 15:43:02 -0500

Have mgen_data::flags use an enum_bitfield.

--------------------------------------------------------------------------------
8ab936279c | Shmuale Mark | 2015-12-27 15:43:02 -0500

Simplify the Spectral Orc Hack.

--------------------------------------------------------------------------------
bcd8e79dd2 | Shmuale Mark | 2015-12-27 15:43:02 -0500

Remove {mons_spec,mgen_data}::number.
Replace with use-specific props. Also changes the MONSTER_NUMBER prop
on corpses into the hydra-specific CORPSE_HEADS prop (since they're the
only corpseable monster that use monster::number).

--------------------------------------------------------------------------------
8ee9131bdd | Steve Melenchuk | 2015-12-27 13:16:21 -0700

Add vampiric draining damage info to monster.

--------------------------------------------------------------------------------
4ffa06b236 | Steve Melenchuk | 2015-12-27 12:48:49 -0700

Place plain vampires earlier in D and adjust their placements elsewhere.
Basically, at the depths they're normally placing, they're
non-threatening. Most placements of them have been upgraded to vampire
knights / mages.

--------------------------------------------------------------------------------
48a4471db7 | Steve Melenchuk | 2015-12-27 12:48:49 -0700

Remove the Haunt set from ancient champions.
It's at odds with the rest of the reaver-style sets - this also
guarantees that they have Haste in their set, which should make their
combat skills more useful.

--------------------------------------------------------------------------------
0464229dc3 | Steve Melenchuk | 2015-12-27 12:48:49 -0700

Place death knights earlier; remove Haunt from them.
They're basically skeletal warriors with spells and a different band of
allies, so placing them considerably later than skeletal warriors
normally appear is boring.

They now place in late D (in which case they don't get a ghoul / flayed
ghost as part of their band), Vaults, and at a lower weight in Crypt
(and not as OODs). Haunt goes away because it would be too powerful
against the player in some of those early placements - and the monsters
they come with generally prove to be a more interesting assortment than
the Haunt wraiths.

--------------------------------------------------------------------------------
67d2943a37 | Chris Campbell | 2015-12-27 19:46:13 +0000

Use set_border_fill_type to neaten up some vaults

--------------------------------------------------------------------------------
1c37be1919 | gammafunk | 2015-12-27 12:27:27 -0600

Don't use permarock in a Tartarus map and reduce its border
This map previously had a visible permarock border. Replace permarock
with stone and reduce the amount of border in general.

--------------------------------------------------------------------------------
43b3e38f2a | Chris Campbell | 2015-12-27 17:57:52 +0000

Don't let Gozag gold distraction work on out-of-LOS monsters
It can still work on things within LOS that you can't see.

--------------------------------------------------------------------------------
d6673ac7a5 | Chris Campbell | 2015-12-27 17:57:52 +0000

Adjust unobtainable axe placement in a bailey
So that when they're generated hidden they're just not placed at all (and so
don't show up when mapped or scryed).

--------------------------------------------------------------------------------
ae37826d1b | gammafunk | 2015-12-27 11:22:28 -0600

Remove an unused variable (geekosaur)
!blame2 wheals

--------------------------------------------------------------------------------
28655ce3a9 | Shmuale Mark | 2015-12-26 20:10:31 -0500

Don't lower Natasha's HD on revival.
This should make subsequent encounters less anticlimactic; she already has
pretty low HP at HD:3.

--------------------------------------------------------------------------------
c84e6eb3fc | Shmuale Mark | 2015-12-26 20:06:21 -0500

Remove an unused member of InvEntry.

--------------------------------------------------------------------------------
f7457ddf84 | Shmuale Mark | 2015-12-26 20:03:45 -0500

Fix attack prompts when cleaving (#9576).
Probably broken by 2cdb8dad07d0 (1 year ago!).

--------------------------------------------------------------------------------
58938dbf3e | Nicholas Feinberg | 2015-12-26 11:44:51 -0800

Don't let summoned doom hounds howl (gammafunk)
Would they create real monsters? If not, are there now different
versions of Howl, depending on the monster that cast it...?

--------------------------------------------------------------------------------
8a3da5b86c | Nicholas Feinberg | 2015-12-25 20:02:24 -0800

Use 'charges' for charges

--------------------------------------------------------------------------------
c496e2ebaa | Nicholas Feinberg | 2015-12-25 17:34:27 -0800

Reduce global howl readiness (10205)
Don't describe literally every monster as 'ready to howl'.

Oops...

--------------------------------------------------------------------------------
14d2d9bc2c | Alan Malloy | 2015-12-25 13:03:25 -0800

Update copyright, just in time for it to get out of date again

--------------------------------------------------------------------------------
7800def131 | Nicholas Feinberg | 2015-12-25 09:46:45 -0800

Make zigfigs more durable (10203)
Shouldn't be slurpable or wiped out in too-many-item purges. Too
precious!

--------------------------------------------------------------------------------
85bde4377c | Nicholas Feinberg | 2015-12-25 09:40:29 -0800

Rework doom hounds
They now howl exactly once, and their howl summons a set of
various nasty creatures, which does not include doom hounds. Like
shambling mangroves, the summoned creatures are 'real', not durable
summons.

This also removes howl immunity.

--------------------------------------------------------------------------------
81d1dc4f1d | Alan Malloy | 2015-12-24 20:22:43 -0800

Fix wording of Device Surge description

--------------------------------------------------------------------------------
a2d3f4e4bb | Corin Buchanan-Howland | 2015-12-24 20:12:06 -0500

Remove some unneeded amulet of harm exceptions (minmay)
Poison damage-over-time isn't double-dipping, which is why it was initially
excluded, and torment damage still can't kill you, which is why it was
initially excluded. Now no forms of damage are excluded except instant
death.

--------------------------------------------------------------------------------
164820426c | Shmuale Mark | 2015-12-24 15:42:34 -0500

Fix non-border walls sometimes being made permarock (#1124).
This probably isn't the best algorithm...

--------------------------------------------------------------------------------
034505ddc8 | Shmuale Mark | 2015-12-24 15:05:45 -0500

Forbid krakens from entering shallow water harder (#10200).
This is consistent with water monsters in general and land.

--------------------------------------------------------------------------------
096f453a42 | Shmuale Mark | 2015-12-24 14:34:49 -0500

Properly treat MR-immune monsters as immune (#9391).
Unfortunate code duplication because there are two entirely separate
code paths here.

--------------------------------------------------------------------------------
264175b4f6 | Shmuale Mark | 2015-12-24 12:23:49 -0500

Remove TARG_{HOSTILE_UNDEAD,DISPELLABLE}.
The targetter handles their functionality now.

--------------------------------------------------------------------------------
101614bd4d | Shmuale Mark | 2015-12-24 12:02:26 -0500

Avoid an early return.

--------------------------------------------------------------------------------
9029360753 | Shmuale Mark | 2015-12-24 12:01:22 -0500

Don't autotarget non-susceptible monsters (#6968, #7091).

--------------------------------------------------------------------------------
0fe6e0c5b2 | Shmuale Mark | 2015-12-24 10:22:27 -0500

Use more unique_ptr.

--------------------------------------------------------------------------------
effeb7e8c4 | Shmuale Mark | 2015-12-24 10:22:27 -0500

Add and use an implementation of make_unique for until we switch to C++14.

--------------------------------------------------------------------------------
8738618fdf | Nicholas Feinberg | 2015-12-23 21:36:04 -0800

Fix a tiny Ely inconsistency
Ely is the only god that wouldn't excommunicate you if your piety
reached zero. This seems to have been leftover from when Ely had
anti-piety-decay, so I changed it to match the other gods. (It
will never come up, in any case.)

Also combined some identical cases.

--------------------------------------------------------------------------------
85d499f7e1 | Nicholas Feinberg | 2015-12-23 21:27:42 -0800

Replace the default bad god, no bishop
So we get compiler warnings when you forget, rather than crashes!

--------------------------------------------------------------------------------
bbf5c82712 | Steve Melenchuk | 2015-12-23 21:36:49 -0700

Don't make all monsters cast spells at effective HD 5.
GGGRRRUUUNNNTTT

--------------------------------------------------------------------------------
96bdeba114 | Brendan Hickey | 2015-12-23 23:28:28 -0500

Add cool hats to Deep Elf Archers
This is a Christmas Easter Egg. The Grinch should revert this after the 
holidays.

--------------------------------------------------------------------------------
3bb3c97757 | Corin Buchanan-Howland | 2015-12-23 20:19:35 -0500

Increase potion of cure mutation spawn rate
Boosting potion of cure mutation frequency from 23 to 34; the stolen
frequency comes from potions of degeneration and flight.

I again invite other devs to further tweak these rates if they feel the
increase is excessive.

--------------------------------------------------------------------------------
ce4ec66371 | Corin Buchanan-Howland | 2015-12-23 20:11:13 -0500

Reduce neqoxec spawn rates
Neqoxecs were particularly irritating in extended, where they pose absolutely
no physical danger, but threatened permanent harm unless handled carefully.
And they were everywhere. This cuts their spawn rates considerably.

Other devs: feel free to tweak if you think this isn't the ideal spawn rate.

--------------------------------------------------------------------------------
1c425019b1 | Brendan Hickey | 2015-12-23 16:10:31 -0500

Remove wayward merge indicators.

--------------------------------------------------------------------------------
faf6667daa | Brendan Hickey | 2015-12-23 16:04:25 -0500

Bring back Christmas
This commit atomically introduces much beloved cosmetic changes from last 
Christmas.

Renames Coc to the North Pole.
Add Santa hats to a bunch of tiles.
Renames Song of Slaying to something more cheery.

--------------------------------------------------------------------------------
29d6332bf7 | Shmuale Mark | 2015-12-23 12:03:21 -0500

Remove some unnecessary cloud prompts (#10192).
In addition to the one in the ticket, pcloud prompted when cast
on you even if you had rPois.

--------------------------------------------------------------------------------
c24f1025ce | Shmuale Mark | 2015-12-23 11:54:43 -0500

Change two bools to a ternary enum.

--------------------------------------------------------------------------------
cbbb19c742 | Shmuale Mark | 2015-12-23 09:17:46 -0500

Fix compilation.

--------------------------------------------------------------------------------
d5a960b946 | Shmuale Mark | 2015-12-23 09:05:38 -0500

Allow using Reproduction if asserts are turned off.

--------------------------------------------------------------------------------
0b5fb4c581 | Shmuale Mark | 2015-12-23 09:05:38 -0500

Properly return if you fail to use Heal Other (Medar).

--------------------------------------------------------------------------------
96ac2a4029 | Pekka Lampila | 2015-12-23 10:50:21 +0200

Add amulet of harm to autopickup exceptions. (#10195)

--------------------------------------------------------------------------------
db73dea5ee | Shmuale Mark | 2015-12-22 11:59:41 -0500

Spacing fix.

--------------------------------------------------------------------------------
24adf82815 | Shmuale Mark | 2015-12-22 11:56:28 -0500

Refactor with partial application.

--------------------------------------------------------------------------------
dc96ef7423 | Shmuale Mark | 2015-12-22 09:42:31 -0500

Change DIR_MOVABLE_OBJECT to a TARG.

--------------------------------------------------------------------------------
9f127560b6 | Shmuale Mark | 2015-12-22 09:42:31 -0500

Remove unused targetting flags.

--------------------------------------------------------------------------------
b6cfd45b17 | Nicholas Feinberg | 2015-12-21 17:53:16 -0800

Add a land tile for swamp worms
Licensed CC0. Behold the beauty of the programmer's art...!

--------------------------------------------------------------------------------
cc484a050a | Nicholas Feinberg | 2015-12-21 17:32:37 -0800

Re-remove Swamp's disturbances
Submerged monsters (which is just swamp worms & trapdoor spiders,
now...) will not show up as 'strange disturbances' in shallow
water.

--------------------------------------------------------------------------------
3043b207f4 | Nicholas Feinberg | 2015-12-21 17:32:21 -0800

Turn swamp worms into ambush predators
Start submerged, but never re-submerge. Surprise!

--------------------------------------------------------------------------------
990e6c630e | Shmuale Mark | 2015-12-21 17:05:04 -0500

Warn before self-casting a useless invis (#7189).

--------------------------------------------------------------------------------
17fe93d936 | Shmuale Mark | 2015-12-21 17:04:17 -0500

Remove an extra message.

--------------------------------------------------------------------------------
3afe736dae | Shmuale Mark | 2015-12-21 16:04:07 -0500

Remove a spurious warning (#10191).
The warning will now only appear for flying/swimming forms.

--------------------------------------------------------------------------------
4850e383a2 | Shmuale Mark | 2015-12-21 15:56:16 -0500

Don't leak info about out-of-LOS in spell_no_hostile_in_range (#7093).
This makes me wonder whether other uses of visible_to are buggy.

--------------------------------------------------------------------------------
4130345124 | Shmuale Mark | 2015-12-21 15:23:57 -0500

Don't autotarget through glass, even with smitey spells (#6079).
A more complicated fix is needed if there are still abilities that do work
through glass, though.

--------------------------------------------------------------------------------
b7480ce922 | Shmuale Mark | 2015-12-21 15:04:48 -0500

Simplify.

--------------------------------------------------------------------------------
a513d2723f | Shmuale Mark | 2015-12-21 14:48:07 -0500

Also add a tracer for the phial of floods.

--------------------------------------------------------------------------------
ce39f86a37 | Shmuale Mark | 2015-12-21 14:07:44 -0500

Warn if using a stone of tremors would hit allies (#7540).

--------------------------------------------------------------------------------
86f88f25dc | Shmuale Mark | 2015-12-21 12:55:42 -0500

Also update options files for DCHAR_ changes (|amethyst).

--------------------------------------------------------------------------------
44f32cd462 | Shmuale Mark | 2015-12-21 12:45:18 -0500

Dereference.

--------------------------------------------------------------------------------
431d18129c | Shmuale Mark | 2015-12-21 12:30:50 -0500

Remove some DCHAR_s of questionable utility.
Can't see why someone would want to change the glyph of an item on the ground
but not when thrown, or vice versa.

Also adds array length asserts.

--------------------------------------------------------------------------------
b21bac6b25 | Shmuale Mark | 2015-12-21 11:50:28 -0500

Add line-drawing graphics for tentacle segments (#2067).

--------------------------------------------------------------------------------
cf278c0285 | Shmuale Mark | 2015-12-21 08:12:53 -0500

Don't detect underwater items if you can't reach them (#7698).

--------------------------------------------------------------------------------
f8405b058b | Shmuale Mark | 2015-12-21 07:40:41 -0500

Don't crash when casting IMB near the level border.
And add comments.

--------------------------------------------------------------------------------
fd1cc8f36b | Shmuale Mark | 2015-12-20 22:50:33 -0500

Improve consistency (|amethyst).

--------------------------------------------------------------------------------
8ca37a9401 | Shmuale Mark | 2015-12-20 22:08:20 -0500

Prompt if a (non-beam) beam's line of fire is blocked by firewood (#1558).
Analogous to the same prompt if it's blocked by a transparent wall somehow.

--------------------------------------------------------------------------------
b70d30ce0a | Shmuale Mark | 2015-12-20 21:25:53 -0500

Abort the targetter entirely when choosing a bad position (#1531).
Such as the player on a no-self-target spell, after saying [N]o to the
prompt on "Really target yourself?", or out of range.

This is more consistent with other prompts, like for shooting a beam at an
ally. It should also be easier to make it clear what's going on. I won't
deny this may be confusing at first for veterans, but I hope it's easy
enough to get used to.

--------------------------------------------------------------------------------
b675b1ab04 | Shmuale Mark | 2015-12-20 21:04:43 -0500

Don't create a cloud when breathing into an adjacent wall as a red drac (#2917).
This seems consistent with the fact that you don't take any beam damage.

--------------------------------------------------------------------------------
a25eb0ef52 | Shmuale Mark | 2015-12-20 20:29:47 -0500

Don't waste a turn by targetting the wall when pacifying (#8950).
This really ought to be something that direction() itself handles...

--------------------------------------------------------------------------------
19433d8af8 | Steve Melenchuk | 2015-12-20 18:16:52 -0700

Monster spell: Aura of Brilliance, for deep elf high priests.
Grants nearby wizard allies of the priest the ability to cast spells more
often (they get a reroll if they rolled higher than their total spell
weight) with a 5 HD boost in their spell power. The boost lasts for a turn
or two after the wizard leaves LOS of the priest (including if the priest
is killed).

Presently the effect lasts 200 aut or until there are no allies in LOS
that benefit from its effect. This could use tweaking.

--------------------------------------------------------------------------------
ef3a054b94 | Shmuale Mark | 2015-12-20 20:14:14 -0500

Fix holy pacification text (#8951).

--------------------------------------------------------------------------------
107efc94d2 | Steve Melenchuk | 2015-12-20 17:44:52 -0700

Remove most instances of M_SUBMERGES.
It has made for extremely poor and annoying gameplay near any sizeable
body of water.

Preserved instances: trapdoor spiders (it's their gimmick); kraken
tentacle segments (which aren't exactly a real monster); and lost souls
(which seem to use this for something special).

--------------------------------------------------------------------------------
728171904e | Steve Melenchuk | 2015-12-20 17:44:52 -0700

Make swamp worms amphibious.
They're still speed 12, but I've also assigned them MOVE_ENERGY(12) so
they move at speed 10 on land.  I considered using MOVE_ENERGY(20),
which would make them speed 6 on land (equivalent to regular worms but
attacking twice as fast), but that seemed silly.

--------------------------------------------------------------------------------
ee8c3303fd | Shmuale Mark | 2015-12-20 19:44:17 -0500

Rename MF_GOT_HALF_XP to MF_PACIFIED and give it to summons (#5684).

--------------------------------------------------------------------------------
275d1089c5 | Shmuale Mark | 2015-12-20 19:44:17 -0500

Refactor cast_healing.
Also aborts Heal Other when cast on an invalid target instead of wasting
it.

Aside from the ridiculous return type of _can_pacify_monster, I'm overall
happy with it at this point.

--------------------------------------------------------------------------------
c5bc93d09f | Shmuale Mark | 2015-12-20 19:44:17 -0500

Reduce the scope of a variable.
And turn some 8s into what is presumably supposed to be LOS_RADIUS.

--------------------------------------------------------------------------------
620ab6a06c | Shmuale Mark | 2015-12-20 19:44:17 -0500

Change spell_direction to take a direction_chooser_args.
And change some uses to simple direction() calls.

--------------------------------------------------------------------------------
a559b8c460 | Steve Melenchuk | 2015-12-20 17:29:03 -0700

Don't let the mercenary card try to spawn deep elf conjurers.

--------------------------------------------------------------------------------
fe3297641f | Neil Moore | 2015-12-20 11:53:17 -0500

Try to handle randapp unrand jewellery.
It doesn't exist at the moment, but if it did we would screw up the
item's unrand index anyway when trying to give it a colour.  This change
does not affect randapp armour/weapons, because those base types do not
appear in the _type_to_idesc map.

--------------------------------------------------------------------------------
f05487a9aa | Neil Moore | 2015-12-20 11:52:43 -0500

Remove leftover references to distracting gold.
And strip the flag from items on load, to avoid potential problems.

Also improve the grammar of an argument.

--------------------------------------------------------------------------------
9f52933bf5 | Neil Moore | 2015-12-20 11:39:39 -0500

Use more specific item union names.
Replace most occurrences of item.special, and of item.plus for
non-weapons.

--------------------------------------------------------------------------------
d0d75facb0 | Neil Moore | 2015-12-20 08:58:40 -0500

Rename is_item_*.
Remove "item_" from the name of the InvEntry methods; elsewhere,
transpose "is" and "item" to match such functions as item_is_orb
and item_is_wieldable.

--------------------------------------------------------------------------------
809d96e94b | Neil Moore | 2015-12-20 08:52:30 -0500

Allow jellies to escape nets (#10187)
Including TRJ.  We still had code to prevent item-eaters from struggling
against nets (so they could eat them instead), even though jellies
cannot eat seen nets anymore.  Remove that.

To avoid potential double-untrapping problems, specifically prevent
jellies from eating trapping nets, even if the net is unseen (perhaps a
net trap, or off-screen monster combat).

--------------------------------------------------------------------------------
f07a391d29 | Neil Moore | 2015-12-20 08:21:46 -0500

Warn about animating any god-hated weapon (#10188)
Not just weapons with hated brands.

--------------------------------------------------------------------------------
f95877c9b5 | Nicholas Feinberg | 2015-12-19 22:01:10 -0800

Remove an outdated description of entropy weave
Their chant has been accelerated...

:clock1::clock2::clock4::clock8:

--------------------------------------------------------------------------------
91b95b148a | Steve Melenchuk | 2015-12-19 17:01:50 -0700

Warn the player if they are tornadoed above deep water / lava.
In watching several instances of players dying in this fashion, I've
noticed that they don't seem to notice that they're in peril. This is
intended to at least bring attention to that fact.

We may need to do more to address this, but let's see if drawing
attention to the issue helps alleviate it in the short term.

--------------------------------------------------------------------------------
c59c8fab18 | Nicholas Feinberg | 2015-12-19 09:58:02 -0800

Show wand max charges in the inventory (coledot)

--------------------------------------------------------------------------------
9229740caa | Nicholas Feinberg | 2015-12-17 19:53:31 -0800

Finish gutting join_religion()
...FOR NOW!

--------------------------------------------------------------------------------
4e3efc9ed9 | Nicholas Feinberg | 2015-12-17 19:42:40 -0800

Oops

--------------------------------------------------------------------------------
60f76df0c5 | Nicholas Feinberg | 2015-12-17 19:41:00 -0800

join_religion(): Refactor good god piety transfer

--------------------------------------------------------------------------------
e132251066 | Nicholas Feinberg | 2015-12-17 19:24:22 -0800

Pull another function out of join_religion()

--------------------------------------------------------------------------------
16b6e649e4 | Nicholas Feinberg | 2015-12-17 19:16:51 -0800

Begin gutting join_religion()
I don't like to speak badly of functions. I have grown up thinking
and being told that if you cannot say something nice about code,
you should not say anything at all. But I must break that rule in
this case because I hate join_religion() very much. It is a big
ugly mess and I want to squash it.

--------------------------------------------------------------------------------
97e08371e0 | Nicholas Feinberg | 2015-12-17 18:17:28 -0800

Unbrace.

--------------------------------------------------------------------------------
70f806be99 | Nicholas Feinberg | 2015-12-17 16:50:34 -0800

Remove a dead import
A spooky :ghost: since a66c6b76a4b4.

--------------------------------------------------------------------------------
d08d4d76dc | Nicholas Feinberg | 2015-12-17 11:20:36 -0800

A completeley random spelling fix
:satisfied:
--------------------------------------------------------------------------------
f09b4c6b79 | gammafunk | 2015-12-17 10:51:32 -0600

Re-artefactize loot in Cigotuvi's Fleshworks
This used to be an artefact rMut amulet and got changed to any good_item
jewellery with removal of amulet of resist mutation. This makes the loot
2/3 chance of artefact jewellery and 1/3 chance of Hat of the Alchemist
if the latter hasn't generated, otherwise it's always artefact
jewellery.

--------------------------------------------------------------------------------
1546f68b0f | gammafunk | 2015-12-17 08:49:29 -0600

Two Pakellas overflow vaults
A couple of vaults themes as experiments conducted by Pakellas in front
of the player. They've been carefully made so they won't break anything
and so they only trigger when the vault is properly visible to the
player. These vaults are in a separate file since there's a fair amount
of accompanying lua.

--------------------------------------------------------------------------------
b7c8ea3f08 | Shmuale Mark | 2015-12-17 09:02:51 -0500

Give a debug message a more appropriate colour.

--------------------------------------------------------------------------------
aaf0859502 | Alan Malloy | 2015-12-16 23:36:16 -0800

Allow Fo to quaff !haste if they don't know what it is

--------------------------------------------------------------------------------
07751a78c5 | Alan Malloy | 2015-12-16 23:36:16 -0800

Remove Stasis from % menu

--------------------------------------------------------------------------------
c75d9d54b3 | Alan Malloy | 2015-12-16 23:36:15 -0800

Remove an old reference to amulet of stasis

--------------------------------------------------------------------------------
e22c555f13 | Alan Malloy | 2015-12-16 23:36:15 -0800

Turn a few if/else trees into boolean expressions

--------------------------------------------------------------------------------
4f60bb4196 | Alan Malloy | 2015-12-16 23:36:15 -0800

Clean up stasis_blocks_effect now that it's only for Fo
- Make stasis_blocks_effect always print a message.
  If you don't want a message, just call you.stasis() instead.
- Rename stasis_blocks_effect to check_stasis.
  The old name sounded like a predicate but had side effects.

--------------------------------------------------------------------------------
e33d536569 | Nicholas Feinberg | 2015-12-16 22:39:38 -0800

Remove support for the Experience card
RIP.

--------------------------------------------------------------------------------
ba75ecdd1c | Nicholas Feinberg | 2015-12-16 21:47:42 -0800

Don't give XP for reset monsters (10161)
Bug introduced by an earlier mon-death rewrite; most obvious
issues were slime creatures and &G.

--------------------------------------------------------------------------------
6050cbec84 | Nicholas Feinberg | 2015-12-16 21:08:25 -0800

Local tiles: fix 'next page' button on pages >= 1
:weary:

--------------------------------------------------------------------------------
6a664df5ee | Nicholas Feinberg | 2015-12-16 21:02:30 -0800

Local tiles: don't duplicate floor items
If the first page of the inventory display was full (of floor
+ inv items), n items would show up both on the end of the first
page & at the start of the second, where n = (row length - # of
items in your inv in the final row containing inventory items.)

--------------------------------------------------------------------------------
47fe746b91 | Nicholas Feinberg | 2015-12-16 20:42:19 -0800

Local tiles: Don't get stuck on later pages (9330)
In the bottom-right inventory.

--------------------------------------------------------------------------------
6959624573 | Nicholas Feinberg | 2015-12-16 20:31:47 -0800

Local tiles: only display 'next page' when needed
Not also whenever the length of the shortest row of floor items
is equal to the width of the inventory.

--------------------------------------------------------------------------------
b52b7b4513 | Nicholas Feinberg | 2015-12-15 19:22:21 -0800

Also realify withered plants (Grunt)
Look, ma, millimarvins!

--------------------------------------------------------------------------------
de5c8d44a4 | Nicholas Feinberg | 2015-12-15 18:09:39 -0800

Turn demonic plants into a proper monster
Multi-holiness!

--------------------------------------------------------------------------------
b085b11ba5 | Chris Campbell | 2015-12-15 20:04:31 +0000

Redraw evasion when equipping dismissal

--------------------------------------------------------------------------------
b57974555b | Chris Campbell | 2015-12-15 20:04:26 +0000

Adjust display of amulet effects on % screen
List faith, harm and reflection alongside the already-displayed spirit and
dismissal. Shuffle SustAt into the first column (mostly just to free up some
space), and only display rMut, Stasis, and Clarity/*Rage when they're actually
active (as was previously the case for -Cast).

It might be reasonable to rethink what's displayed on this screen and where,
for now this just makes the amulets mostly-consistent. Regeneration still isn't
listed (it might be fairly complicated to display well, with so many different
sources of it), and nor is Inaccuracy.

--------------------------------------------------------------------------------
d34c221d5f | Pekka Lampila | 2015-12-15 19:55:27 +0200

Mark faith as useless when worshipping Gozag.
Also don't flash it if worn when joining Gozag.

--------------------------------------------------------------------------------
f98de40a16 | Neil Moore | 2015-12-15 12:23:18 -0500

Add an escape hatch in grunt_arrival_lava_bath (steinzeit, SvalbardCaretaker)
It was that or no_tele, to prevent accidentally landing on the spot
from a random teleport.  But the latter would also prevent using a
scroll of blinking to get the item, so a hatch it is.

[skip ci]

--------------------------------------------------------------------------------
7b7966442f | John Boyle | 2015-12-15 00:27:06 -0500

Sometimes upgrade plain decks for Nem worshipers
Currently, Nemelex worshipers get a card power bonus based on Piety, but
plain decks can NEVER be upgraded past level 0, making this bonus 100%
worthless for plain decks.

While there are more serious criticisms of the current Nemelex
implementation, it seems odd that the God of Decks doesn't provide any
bonus at all to plain decks (besides gifting them a bunch).

This update provides a very small chance for plain decks to be upgraded
to level 1.  This is roughly 1/2 the chance of an ornate deck to be
upgraded (remember that plain decks do not get the +150 bonus to power).

--------------------------------------------------------------------------------
97f838efd3 | Shmuale Mark | 2015-12-14 22:43:06 -0500

Fix inverted logic in fix for #10150.

--------------------------------------------------------------------------------
a5986df6fd | Shmuale Mark | 2015-12-14 21:42:44 -0500

Fix nicolae_orc_tapped_out further.

--------------------------------------------------------------------------------
efcc28a444 | gammafunk | 2015-12-14 20:17:16 -0600

Fix various visibility checks to properly consider solid features
Some monster spells were able to affect agents that were visible but on
the other side of transparent walls when at least the primary target was
reachable. Specifically all-LOS hexes like Mass Confusion and Cause Fear
could affect you this way. This commit makes monster spells consistently
use a visibility check that only allows up to partially solid features
like grates and statues but excludes transparent walls.

--------------------------------------------------------------------------------
e8bce04968 | gammafunk | 2015-12-14 20:17:16 -0600

Use the right LOS type in an iterator
This loop for Gell's Gravitas was using LOS_NO_TRANS yet went on to
require the stricter LOS_SOLID for all effects. Switch the iterator
appropriately.

--------------------------------------------------------------------------------
3e70528ea9 | Steve Melenchuk | 2015-12-14 18:04:17 -0700

Lua functions: you.see_cell_solid and you_see_cell_solid_see.
For those instances where they provide different and meaningful results
from the other (usually involving grates and statues) - for example,
you'd be able to use this to see when the player can apport something or
fire missiles at it.

--------------------------------------------------------------------------------
809d330deb | Nicholas Feinberg | 2015-12-14 17:03:44 -0800

Fix nicolae_orc_tapped_out

--------------------------------------------------------------------------------
b1d025add2 | Steve Melenchuk | 2015-12-14 17:36:09 -0700

Fix Elf mu_elemental_laboratory (jefus).

--------------------------------------------------------------------------------
212a0225da | Neil Moore | 2015-12-14 16:04:23 -0500

Move some misplaced braces to their own lines.
Only in control statements, not in initializer lists or the outer braces
of a lambda, though in the latter case there's a good argument to be
made for it.

[skip ci]

--------------------------------------------------------------------------------
164a6558c1 | Neil Moore | 2015-12-14 15:59:46 -0500

Don't crash when Fedhasites kill with AUTOMATIC_HIT spells.
See for example:

http://dobrazupa.org/morgue/Zalbag/crash-Zalbag-20151214-202335.txt

The bug affected Dispel Undead, Magic Dart, and Sticky Flame; but not
Pain or Freeze.

--------------------------------------------------------------------------------
68d89f5ee9 | Pekka Lampila | 2015-12-14 18:26:12 +0200

Use correct constant for an amulet tile. (nikheizen)
Not actually used for anything currently.

--------------------------------------------------------------------------------
2fe005cbf5 | Pekka Lampila | 2015-12-14 18:15:28 +0200

Don't display spurious "None" when listing Dith powers. (#10164)

--------------------------------------------------------------------------------
cd5a7e3273 | Pekka Lampila | 2015-12-14 16:40:21 +0200

Send message area size to WebTiles client.
Use to set the WebTiles message area size. This fixes issues when using
non-default height (or small_more) and show_more.

Also allows using msg_min_height to increase the message area size in
WebTiles.

--------------------------------------------------------------------------------
0949297fbe | Pekka Lampila | 2015-12-14 16:38:09 +0200

Improve WebTiles text cursor message sending.
Send with redraws like other info.

--------------------------------------------------------------------------------
e30ccbe4b1 | Steve Melenchuk | 2015-12-14 14:20:25 +0000

Revert "Mark the Elf:3 vault enemies as patrolling."
Observation suggests this doesn't serve its intended purpose, and
may in fact make it *easier* to killhole - you can lure off
individual elves significantly easier than before. Let's see how
the elementalists perform without this restriction.

This reverts commit 38f3aaf985b943e124d596e5dddcc37444757d45.

--------------------------------------------------------------------------------
7c849c7f28 | Pekka Lampila | 2015-12-14 15:53:14 +0200

Fix including a crash log link in WebTiles message.
Broken since 0.15-b1-84-gded71f8.

[skip ci]

--------------------------------------------------------------------------------
b01a236429 | Steve Melenchuk | 2015-12-13 19:56:24 -0700

Rework (iron giants') Throw to not require the victim be constricted.
Remove their grab attack, since that was the only reason they had one.

Clean up some old references to the old name of the ability.

--------------------------------------------------------------------------------
9197dff51a | Steve Melenchuk | 2015-12-13 17:03:10 -0700

Fix curse toe HP (#10174).
Should be 84-112 now, average 98.

Also don't cop out on curse skull HP (now 39-65).

--------------------------------------------------------------------------------
67bb72415e | ontoclasm | 2015-12-13 17:51:09 -0600

Some amulet icons

--------------------------------------------------------------------------------
62304ecfae | Steve Melenchuk | 2015-12-13 16:17:29 -0700

Remove a testing WEIGHT: (geekosaur).
[skip ci]

--------------------------------------------------------------------------------
6bd4069fa4 | Steve Melenchuk | 2015-12-13 16:15:37 -0700

Fix a couple of issues with nicolae_arrival_memento_mori (geekosaur).
Add ORIENT: float so that the vault places at all, and get it to work
with names with spaces.

--------------------------------------------------------------------------------
4b90cf5ae0 | Steve Melenchuk | 2015-12-13 15:58:08 -0700

Fix a travis package name (hopefully).

--------------------------------------------------------------------------------
9d68cf9f45 | Corin Buchanan-Howland | 2015-12-13 17:46:16 -0500

Replace the amulet of clarity with the amulet of pain
The problems with the amulet of clarity are similar to the ones with the
amulet of stasis: complete immunity to a range of threats and no influence
when those threats are absent. Unlike stasis, the amulet also had no real
downside to make it interesting, encouraging you to carry it around and swap
it in whenever the set of effects it handles are around and you have
insufficient MR. Also unlike stasis, this amulet had weird corner cases
such that it allowed voluntary berserk but not involuntary berserk, but
never allowed ambrosia.

The one place where amulet of clarity really felt useful was on mummies,
since confusion is everywhere and long-lasting, and has a common cure not
available to mummies. In general, finding MR will resolve this; the exception
is mummies worshipping Xom, since Xomfusion can't be resisted normally. I'd
rather address that situation directly than keep this amulet just to handle
this situation.

Meanwhile, the new amulet of pain is an evil amulet that increases damage
dealt to and by the wearer by 25%. If both the attacker and defender have
the amulet, the damage is only increased by 25% total. I expect this
amulet to be strong to characters with great defenses or ranged attacks,
and perhaps speedrunners. Letting this amulet swap freely would encourage
people to use it against monsters that can't fire back and then swap it
when the monster gets into range, so I gave it draining as a swapping
penalty.

This is one of the more experimental designs in the new set of amulets, and
as such I expect it'll get tweaked a few times and it may eventually get
removed or replaced.

--------------------------------------------------------------------------------
96cde7bce7 | Steve Melenchuk | 2015-12-13 15:36:36 -0700

Exempt Pakellas gifts from piety gain slowdown during timeout.
Since the timeouts are so long, this basically slows down piety gain
above 4* if it's in place, making it nearly impossible to get to 6*.

(I hope.)

--------------------------------------------------------------------------------
3d3a2cd4d3 | Steve Melenchuk | 2015-12-13 15:11:07 -0700

Don't nondebugtest on the Travis monster build.

--------------------------------------------------------------------------------
ef11a5a995 | Neil Moore | 2015-12-13 15:20:54 -0500

Simplify [monster]

--------------------------------------------------------------------------------
54c4f0d743 | Neil Moore | 2015-12-13 15:19:56 -0500

Make monster console mode work again.
Correct the nonstandard "\e" to "\033", not "\\e".

--------------------------------------------------------------------------------
4aa8c2a36a | Neil Moore | 2015-12-13 15:18:31 -0500

Add monster generated files to .gitignore.
[skip ci]

--------------------------------------------------------------------------------
58a01cc497 | Steve Melenchuk | 2015-12-13 13:10:33 -0700

Use GCC 4.7 for travis builds (|amethyst).
Since many of our servers are dependent on GCC 4.7 for now.

--------------------------------------------------------------------------------
217b10cede | Steve Melenchuk | 2015-12-13 13:04:44 -0700

Fix spell damage display in monster.
wwwhhheeeaaalllsss

--------------------------------------------------------------------------------
6e184326f2 | Steve Melenchuk | 2015-12-13 12:53:04 -0700

Let monster build with g++ 4.7 (|amethyst).

--------------------------------------------------------------------------------
42cd4b2d34 | Neil Moore | 2015-12-13 14:38:46 -0500

Spread out linesprint high-tier uniques more (bsdbeard)
A bad nsubst meant that, when the map was horizontal, the high-tier
uniques in the middle of the map (Louise, Nikola, Boris, etc) were
bunched up into one line, which might be earlier or later depending on
horizontal flipping.  When the map was vertically oriented, the uniques
were instead staggered across rows, but always at the top of the map.

Now they are distributed randomly (and not all guaranteed to place), as
appears to have been the intent of that nsubst.  To keep difficulty from
going down too much, the number of uniques placed is doubled compared to
the original broken nsubst.

[skip ci]

--------------------------------------------------------------------------------
cc6f9ba824 | Steve Melenchuk | 2015-12-13 12:14:00 -0700

Try to get Travis to build monster.
This isn't a very graceful approach, but let's see if it works.

--------------------------------------------------------------------------------
4f98414232 | Neil Moore | 2015-12-13 14:04:42 -0500

Fix arena sprint (bsdbeard)
Replace removed spiders with scorpions early, and a mix of scorpions and
spiders later.

Remove giant spores entirely: they give no XP now, so the map would
never stop spawning them: http://i.imgur.com/5O3tSK8.jpg

--------------------------------------------------------------------------------
ce8b5a9c12 | ontoclasm | 2015-12-13 11:30:39 -0600

Restore a background to local tiles inv grid

--------------------------------------------------------------------------------
b5d3497ef9 | Steve Melenchuk | 2015-12-13 10:17:54 -0700

Update monster for new holiness.
Shows "natural" if the monster is natural and something else (e.g.
demonspawn).

--------------------------------------------------------------------------------
f0c3515aca | Steve Melenchuk | 2015-12-13 09:56:28 -0700

Changelog through 0.18-a0-780-gd1db97e.

--------------------------------------------------------------------------------
d1db97e94c | Steve Melenchuk | 2015-12-13 09:37:15 -0700

Convert Chaotic Mirror into Call of Chaos and give to Mnoleg.
Acts as a sort of "chaos battlecry" - applies effects to nearby allies,
which are usually (~85% of the time) positive.

Appropriate for a chaos summoner...

--------------------------------------------------------------------------------
f9919a29d5 | Steve Melenchuk | 2015-12-13 09:34:32 -0700

Remove deep elf fighters; add deep elf archers.
Fighters were rarely interesting or memorable apart from possibly the lair
entry that placed one. I doubt they'll be missed. Elementals can now
pose the low level threat in Elf, if one turns out to be necessary.

Archers are to master archers as knights are to blademasters - a mid-tier
threat with some support spellcasting on the side. In this case, it's
more of an AM theme. Tweaks to the spell set would be welcome.

The now-free LIGHTRED e glyph goes to elementalists so they don't have
an ETC_ colour.

--------------------------------------------------------------------------------
1d7b1b8703 | Steve Melenchuk | 2015-12-13 09:34:12 -0700

Convert the deep elf elementalist into a normal foe with Awaken Earth.
Appearing in the Elf:3 vaults and other places where the high tier elves
occasionally spawn.

Their spell set features Awaken Earth, which is set to a fairly high
weight to serve its intended purpose of preventing killholing on Elf:3.

--------------------------------------------------------------------------------
3704a81a43 | Steve Melenchuk | 2015-12-13 09:33:23 -0700

Monster spell: Awaken Earth.
Turns some rock walls adjacent to the target cell into earth elementals.
Smite-targeted; can be used out of LOS like Dig.

Nothing currently uses it, but that will change momentarily.

--------------------------------------------------------------------------------
7a8d288286 | Steve Melenchuk | 2015-12-12 22:21:32 -0700

dlua: Make sure triggerables pass themselves to listeners properly.

--------------------------------------------------------------------------------
4d9e04eb7f | Neil Moore | 2015-12-12 23:07:45 -0500

Don't give monsters reflection when the player wears "refl.

--------------------------------------------------------------------------------
9ee104a174 | Neil Moore | 2015-12-12 23:02:00 -0500

Fix a missing message.
is_reflectable() can't be true here.

--------------------------------------------------------------------------------
f9a623e762 | Neil Moore | 2015-12-12 22:55:26 -0500

Fix player::is_unholy and monster::is_evil (ebering)
They should have also been checking for demons and undead, respectively.

Also, update a comment (Grunt).

--------------------------------------------------------------------------------
d800d9eede | Neil Moore | 2015-12-12 22:55:26 -0500

Avoid another shield crash.

--------------------------------------------------------------------------------
b8a567ad92 | gammafunk | 2015-12-12 21:39:58 -0600

Properly list zigfigs in the list of miscellaneous items (johnstein)
This caused a crash in objstat and would probably cause other
dbg-scan-related crashes.

--------------------------------------------------------------------------------
5e51f97336 | Steve Melenchuk | 2015-12-12 20:17:06 -0700

Add a previously missed item to the changelog.

--------------------------------------------------------------------------------
39756d891d | Steve Melenchuk | 2015-12-12 20:08:19 -0700

Changelog through 0.18-a0-768-gdcbc33c.

--------------------------------------------------------------------------------
dcbc33c91e | Steve Melenchuk | 2015-12-12 18:46:44 -0700

Don't crash on projectiles hitting monsters.

--------------------------------------------------------------------------------
9866750c96 | Steve Melenchuk | 2015-12-12 18:38:02 -0700

Don't crash in conjurer ziggurats.

--------------------------------------------------------------------------------
8d3d47462c | Corin Buchanan-Howland | 2015-12-12 18:16:50 -0500

Fix more reflection bugs. (|amethyst)

--------------------------------------------------------------------------------
b6067329fb | Neil Moore | 2015-12-12 17:51:45 -0500

Be more careful about player/monster::shielded with +0 "Reflection.
This still allows such an amulet (most likely a transferred amulet
of stasis) to give reflection if the player has SH from some other
source.

--------------------------------------------------------------------------------
970b5323ad | Corin Buchanan-Howland | 2015-12-12 17:36:09 -0500

Let amulets work again
Also fix a pronoun. All stuff broken by the amulet of reflection push.

--------------------------------------------------------------------------------
67ec5adcff | Steve Melenchuk | 2015-12-12 14:52:38 -0700

Tag grunt_megastairs_* as transparent.
They're not intended to be any more threatening than the rest of the
level.

--------------------------------------------------------------------------------
0b2b09af0c | Steve Melenchuk | 2015-12-12 14:48:47 -0700

Tag some Tomb entries as transparent.
Significantly alleviates the placement issues on Crypt:$; it's mostly
all on other (mini)vaults now.

--------------------------------------------------------------------------------
1cb2259649 | Steve Melenchuk | 2015-12-12 14:48:47 -0700

Tag david_glass_crypt as transparent; enable other layouts for it.
It's traversable without entering the vault itself or putting the player
in *too* much danger, and having something place properly without being
a city layout on Crypt:$ is a good thing.

--------------------------------------------------------------------------------
55aab9cf4b | Neil Moore | 2015-12-12 16:43:29 -0500

Handle negative numbers in div_rand_round(random_var) (#10167)
Because we now apply speed brand before flooring the attack delay, we
were dividing a negative random_var by 3; but we were rounding the
range endpoints incorrectly in that case, and also using the wrong
weights.

Handle both negative random_vars and negative denominators properly.

--------------------------------------------------------------------------------
4eb6328443 | Nicholas Feinberg | 2015-12-12 13:24:24 -0800

Comment a mystery parameter

--------------------------------------------------------------------------------
b812164c38 | Chris Campbell | 2015-12-12 20:04:43 +0000

Fix handling of innate/divine spells cast using your_spells
Fixes a number of weird interactions caused by things that weren't real spells
using your_spells (in particular: DS hellfire mutation, Xom casting spells,
evoking the staves of Olgreb/Dispater). Xom can now still cast spells on you if
you're confused, and the affected spells can all now trigger even if you've
acrificed the relevant spell school to Ru.

Unrand evocation now has a separate confusion check (meaning that the staff
of Wucad Mu and sceptre of Asmodeus are no longer usable while confused).

--------------------------------------------------------------------------------
15d63d99ab | Neil Moore | 2015-12-12 14:32:01 -0500

Don't start with food in slot e (#10163)

--------------------------------------------------------------------------------
314a246a6a | Steve Melenchuk | 2015-12-12 10:25:54 -0700

Sprinkle some dancing weapons and elementals throughout Elf.
Intended to make the enemy set less homogenously "squishy elf".

--------------------------------------------------------------------------------
0310ae40be | Steve Melenchuk | 2015-12-12 10:06:42 -0700

Remove deep elf priests.
They were very rare, insignificant in places where they appeared, and in
those places where they were not they overlapped with / were overshadowed
by deep elf high priests (who remain).

--------------------------------------------------------------------------------
eadaf5cd0a | Steve Melenchuk | 2015-12-12 10:05:56 -0700

Merge deep elf summoners and conjurers into mages.
Mages are bumped up to HD 9 to reflect their new skills. Spells are
six fixed sets loosely based on the old spell sets as well as a couple
of additional spells to try to keep the sets interesting. More tinkering
with the sets would be welcome.

Summoners and conjurers are replaced 1:1 in vaults and bands.

--------------------------------------------------------------------------------
05a9da5a3b | Steve Melenchuk | 2015-12-12 10:03:57 -0700

Refactor and genericise lich spell assignment code a bit.
Mostly to use C++11isms, but also to allow for more of a possibility of
enemies that aren't liches to use this code.

--------------------------------------------------------------------------------
a64f057106 | Steve Melenchuk | 2015-12-12 10:03:57 -0700

Flatten Orc to two levels, and remove plain orcs from generation there.
These two changes, in addition to a bit of padding on the monster lists,
provide a more streamlined Orc experience while keeping the average XP
total for the branch roughly the same at 16k.

Gold generation is doubled between the two levels to account for loot; this
may or may not need further tuning.

A lot of vault depths are adjusted for this; uniques that placed in
early Orc now only place on Orc:1, uniques that placed in late Orc place
on Orc:$, and most vaults that placed somewhere in Orc place anywhere in Orc
(usually meaning they'll end up on Orc:1 only because the Orc:$ ending
will take the primary vault slot).

--------------------------------------------------------------------------------
685a3a753c | Corin Buchanan-Howland | 2015-12-12 10:59:41 -0500

Transform the amulet of stasis into the amulet of reflection
The amulet of stasis was an all-or-nothing resistance to a variety of
effects, many of which were good effects. As such, it was only used as a
swap, generally against paralysis, or sometimes to suppress mutations.
Because its use completely protected against the statuses involved, it
wasn't a particularly interesting way to deal with those statuses. A few
vaults still have permanent teleportation traps where stasis could be
useful, but for those vaults Apportation still exists. Permanent tele
traps can still spawn blocking one or both lungs of Zot:5, but these
aren't hard barriers, since trying them often enough will eventually
teleport one past them, and blinking past them is still an option.

The amulet of reflection gives you a variable amount of SH and the
reflection status, allowing you to reflect projectiles shot at you as if
you had a shield of reflection, whether or not you do. The egos that compete
with reflection on shields often make it the worst choice; making it
available on an amulet that also gives bonus SH makes it a significantly
more compelling option, giving players another source for an interesting
attribute.

This commit also adds in SH as an artefact property and switches the amulet
of Shielding into an amulet of reflection that gives +8 shielding; this makes
the amulet a parallel to the rings of Shaolin and Robustness.

Oh, and reflection code could probably stand to be refactored,
but I'm going to push that off to another day.

--------------------------------------------------------------------------------
37044d6ea1 | Steve Melenchuk | 2015-12-10 21:51:54 -0700

Print a message on aborted Quick Charge (Medar).
Such as if you're trying to recharge a full rod.

--------------------------------------------------------------------------------
d809f9546a | Nicholas Feinberg | 2015-12-10 18:52:04 -0800

Merge two identical spellsets

--------------------------------------------------------------------------------
cbf4e0d706 | Alan Malloy | 2015-12-10 17:40:18 -0800

Change a Chei message to use a synonym.
'raises the support...' looked too much like 'reduces the support...',
so now the latter says 'lowers the support...' instead.

--------------------------------------------------------------------------------
6d2a1ad2da | Nicholas Feinberg | 2015-12-10 17:19:59 -0800

Fix "Regen under Pakellas (Not My Leg)
A misordered check caused the amulet to not attune other than when
it was first equipped for worshippers of Pakellas.

All credit for finding & hunting down this bug goes to the
reporter.

--------------------------------------------------------------------------------
b506d81c10 | Neil Moore | 2015-12-10 18:33:44 -0500

Tweak a message.
It seemed wrong to talk about a ghoul's "healthy body".

[skip ci]

--------------------------------------------------------------------------------
7011300b25 | Neil Moore | 2015-12-10 18:29:43 -0500

Fix tilegen by removing a gone tile.

--------------------------------------------------------------------------------
affb37ace1 | ontoclasm | 2015-12-10 13:02:06 -0600

Move an unused tile to UNUSED

--------------------------------------------------------------------------------
febb7d899a | ontoclasm | 2015-12-10 13:02:05 -0600

Teleporter tiles

--------------------------------------------------------------------------------
58cbb28a84 | gammafunk | 2015-12-10 07:56:45 -0600

Incredibly, staticize another function

--------------------------------------------------------------------------------
ff759c76ba | Alan Malloy | 2015-12-09 23:42:30 -0800

Merge pull request #199 from amalloy/master
Let XE show you exclusions in unexplored terrain
--------------------------------------------------------------------------------
dae9da8fe3 | gammafunk | 2015-12-09 22:21:45 -0600

Staticize a function

--------------------------------------------------------------------------------
f3709142ad | Alan Malloy | 2015-12-09 17:48:35 -0800

Let XE show you exclusions in unexplored terrain
Implemented by just removing the arity of _find_feature that is
passed a feature list, instead always using the one that scans the
whole map. Slower to be sure, but not terribly important.

--------------------------------------------------------------------------------
888b11024e | Neil Moore | 2015-12-09 10:22:50 -0500

Avoid another spectral weapon crash.
If glaciate or upheaval (flash freeze mode) killed the caster first, the
spectral weapon would notice and disappear in the middle of its own
monster_post_hit, causing a crash when trying to add ENCH_FROZEN to it.

--------------------------------------------------------------------------------
26f6218a33 | Neil Moore | 2015-12-09 10:19:36 -0500

Remove an unused function and variable.

--------------------------------------------------------------------------------
449f0484c3 | Nicholas Feinberg | 2015-12-08 21:56:22 -0800

Remove most breath mutations
Breathe Flames is totally gone (from non-draconians); Spit Poison
is now a naga-only mut.

These mutations were essentially mental clutter (a rarely-relevant
tactical option); if they were stronger, they'd be too strong to
be given out as a no-cost mutation. In short, Throw Flame and Sting
should not be mutations...

TODO: remove level 1 of spit poison from the code (as it no longer
exists)

--------------------------------------------------------------------------------
b666f69176 | Nicholas Feinberg | 2015-12-08 21:17:38 -0800

Make the Royal Jelly dwarf all others
Swap its' size and Dissolution's, per |amethyst. The reverse is
just... wrong...

--------------------------------------------------------------------------------
c24eecc877 | Neil Moore | 2015-12-08 23:48:55 -0500

Fix alignment and indentation.

--------------------------------------------------------------------------------
68da4a567b | Edgar A. Bering IV | 2015-12-08 23:48:55 -0500

confused_by_you counts ally confusion as well
This fixes issues with Fedhas shrooms getting themselves killed by
confusion they caused. The previous fix did not work because
KILL_YOU_CONF is not set for ally-applied confusion!

Fixup and spell checking by (wheals)

Not crashing in arena mode by (|amethyst)

[Committer's note: Closes #194 pull request. -nfm]

--------------------------------------------------------------------------------
9308ca92b7 | Edgar A. Bering IV | 2015-12-08 23:48:55 -0500

Remove hidden piety costs from Fedhas abilities.
Spawn friendly inactive ballistomycetes as GOOD_NEUTRAL

These only exist under Fedhas now. Spawning them as friendlies created
a hidden piety cost for Fedhas' Evolution and Reproduction abilities
if they were later killed (perhaps by a wandering monster long after
an encounter where they were used).

--------------------------------------------------------------------------------
a019a5ff80 | Neil Moore | 2015-12-08 20:41:21 -0800

Fix whitespace and braces.

--------------------------------------------------------------------------------
97e46778ec | Edgar A. Bering IV | 2015-12-08 20:41:20 -0800

Expose holiness to clua correctly as a bitfield.
Adds utility functions for naming and describing holinesses as
strings. It is possible to use this to provide holiness on the
monster description pane now but I'm not sure how useful this
is. Perhaps if the player is worshiping a god that makes it
relevant?

--------------------------------------------------------------------------------
051b21d0f4 | Edgar A. Bering IV | 2015-12-08 20:41:20 -0800

Don't let shapeshifters become demons

--------------------------------------------------------------------------------
5d6d7783c5 | Edgar A. Bering IV | 2015-12-08 20:41:20 -0800

Turn special cases into multi-holiness bits. (ds, plants, crabs, beasts)
Give Demonspawn MH_DEMONIC, remove some special casing.
Give cobs and caps MH_PLANT, modify mons_is_plant to use holiness.
Make gost crabs NATURAL | UNDEAD, remove cloud special case.
Make Apis natural, remove beast special case.
Hell beasts are now DEMONIC | NATURAL.

--------------------------------------------------------------------------------
b697863631 | Edgar A. Bering IV | 2015-12-08 20:41:17 -0800

Multi-holiness flags for priests/wizards

--------------------------------------------------------------------------------
39dfc0cd91 | Edgar A. Bering IV | 2015-12-08 20:41:16 -0800

Multiple holiness save compatibility and debug messaging

--------------------------------------------------------------------------------
c932079a4e | Edgar A. Bering IV | 2015-12-08 20:41:16 -0800

Turn mon_holy_type into a bitfield.
This adds two new flags MH_UNHOLY and MH_EVIL that a mons can pick up
if it isn't something automatically unholy (demonic) or evil (undead)
but has a god or spells that taint it.

The player also picks up these flags so that is_unholy/evil/holy
are consistent with the bitfield entry at all times.

--------------------------------------------------------------------------------
661d47c330 | Nicholas Feinberg | 2015-12-08 20:29:18 -0800

Turn Doom Hounds into Demon Hounds
To limit the polymorph madness that was killing players far
earlier than intended.

--------------------------------------------------------------------------------
0edfa7870e | Nicholas Feinberg | 2015-12-08 20:24:29 -0800

Merge pull request #198 from jmbjr/i10120-wiz-priz
fix a novelty vault to work better with squarelos
--------------------------------------------------------------------------------
8fc53f4538 | Nicholas Feinberg | 2015-12-07 20:50:46 -0800

COMPILE_CHECK divine_title.

--------------------------------------------------------------------------------
cdcb97a588 | Neil Moore | 2015-12-07 22:21:27 -0500

Be more careful about creating dummy zombies (Medar)
Zombies should always be created with define_zombie, not define_monster.
Fixes the new HP>0 assert triggering when checking whether a zombie will
anger gods (specifically, in Shadow Creatures).

   !lm acwest crash 30 -log

It would be nice to make define_monster with a zombified monster type
call define_zombie.  However, the problem is that we need a base type,
which is probably missing---and it isn't clear what type we should
use if it is unspecified.

--------------------------------------------------------------------------------
d8378e8939 | Neil Moore | 2015-12-07 19:47:45 -0500

Assert if we create a 0-HP monster.
Also constify.

--------------------------------------------------------------------------------
9d0c9db528 | Neil Moore | 2015-12-07 19:31:15 -0500

Don't create ball lightnings with 0 maxhp.
They start out in mgrd but dead, leading to a crash when something tries
to attack them.  Fortunately saving and loading banishes them, so the
crashes aren't persistent.

--------------------------------------------------------------------------------
59c076b74a | Chris Campbell | 2015-12-07 21:29:35 +0000

Coding conventionify, adjust a message

--------------------------------------------------------------------------------
fdfb3e5909 | Chris Campbell | 2015-12-07 21:29:35 +0000

Colour the dark rune lightgrey on the } screen
To make it more distinguishable from uncollected runes.

--------------------------------------------------------------------------------
1debe3edd6 | Shmuale Mark | 2015-12-07 14:38:23 -0500

Try to fix various beam crashes in a central location.
This reverts commit ae068f0d81b1ab59d5a9a273882af9c28efcb5fc.
This reverts commit 12606796a02ef963b2a764f1d5afd6c6f07cf94f.

--------------------------------------------------------------------------------
ef496d73c6 | Chris Campbell | 2015-12-07 17:27:09 +0000

Adjust Xom's random spell list
Remove a few boring spells (Blink, Beastly Appendage, Stoneskin), add some new
ones (Disjunction, Leda's Liquefaction, Summon Mana Viper), and re-order the
list - it's implemented so that later spells are only possible to cast at
higher severity, but there didn't appear to be much logic in the existing
ordering (with lots of summons/transmutations being grouped together, some
particularly high-level spells near the beginning of the list, and so on). The
new ordering is pretty arbitrary but is very roughly by spell level.

--------------------------------------------------------------------------------
c9e73db2d3 | Chris Campbell | 2015-12-07 17:27:08 +0000

Improve short descriptions for Ru AC/EV sacrifices

--------------------------------------------------------------------------------
1f0fcb2328 | Chris Campbell | 2015-12-07 17:27:08 +0000

Improve a monster description

--------------------------------------------------------------------------------
12606796a0 | Shmuale Mark | 2015-12-07 10:30:26 -0500

Fix a dazzling spray crash.
Unfortunately, this causes #8509 to manifest whenever aiming at an adjacent 
wall.

--------------------------------------------------------------------------------
1a0d67410c | Shmuale Mark | 2015-12-07 09:56:18 -0500

Improve return types.

--------------------------------------------------------------------------------
4a53cf508b | Shmuale Mark | 2015-12-07 09:56:15 -0500

Remove another unused method.

--------------------------------------------------------------------------------
9e469da03d | Shmuale Mark | 2015-12-07 09:56:13 -0500

Fix `ctrl-f shop` (dpeg).

--------------------------------------------------------------------------------
378185426d | Nicholas Feinberg | 2015-12-06 21:22:24 -0800

Fix a webtiles compilation warning

--------------------------------------------------------------------------------
4aaebea318 | ontoclasm | 2015-12-06 23:08:11 -0600

Redo item slot tiles & local tiles tabs

--------------------------------------------------------------------------------
580043cd26 | Nicholas Feinberg | 2015-12-06 20:21:07 -0800

Randomize all monster HP
Including uniques, statues, etc. There's no reason they should be
fixed while others aren't, and their having fixed HP detracts from
the 'fuzziness' that crawl tries to have with its combat numbers.

There'll be small differences in average HP, but the actual
difference in gameplay should be very minimal.

Notes:
 - Ball lightning & starspawned tentacles have had their HD
   tweaked to keep their HP similar; this should affect nothing.
 - Curse skull HP is still nonrandom, since their HD:HP ratio
   isn't high enough resolution...

--------------------------------------------------------------------------------
2bde065105 | Steve Melenchuk | 2015-12-06 21:06:41 -0700

Tag healing spells as Necromancy, but not evil. :suspect:
Done by means of a new SPFLAG_NOT_EVIL, as suggested by |amethyst.

This is meant to have exactly one impact: allowing miscasts to be
generated against these spells, as per Spellbinder or Pakellas wrath.

--------------------------------------------------------------------------------
39ac7a5f4c | Nicholas Feinberg | 2015-12-06 18:04:03 -0800

Don't double-decrement icemail
<PleasingFungus> oops

--------------------------------------------------------------------------------
79e1f0a1d0 | Nicholas Feinberg | 2015-12-06 18:03:49 -0800

More duration refactoring
:sweat_drops:

--------------------------------------------------------------------------------
ae068f0d81 | Shmuale Mark | 2015-12-06 20:59:38 -0500

Don't crash in Control Winds if a cloud doesn't move anywhere.
Previously path_taken was non-empty even if the beam didn't move.

--------------------------------------------------------------------------------
ceb0245104 | Nicholas Feinberg | 2015-12-06 17:46:19 -0800

Pull berserk out of _decrement_durations()
Deserves its own function.

:goberserk:

--------------------------------------------------------------------------------
ed4ed9a6d8 | ontoclasm | 2015-12-06 19:37:01 -0600

Dismissal amulet icon

--------------------------------------------------------------------------------
c18fe4c418 | Nicholas Feinberg | 2015-12-06 17:34:56 -0800

Move ghoul rotting out of _decrement_durations()
And refactor it very lightly. (Ghouls under penance with Chei will
no longer have their rotting slowed by Chei - sorry!)

--------------------------------------------------------------------------------
afd2bcd7c1 | Nicholas Feinberg | 2015-12-06 17:28:17 -0800

Pull more duration data into duration-data
In retrospect, this should have been a separate map, but it'd be
just as much work to redo it now... :(

--------------------------------------------------------------------------------
5c2cb36844 | Nicholas Feinberg | 2015-12-06 17:27:55 -0800

Refactor simple duration expiry
Functors to follow.

This doesn't have any mechanism for enforcing an ordering of
duration expiry, where that's important (which it seems to be in
a few cases), so we aren't going to be able to pull everything in
here, more's the pity.

--------------------------------------------------------------------------------
a203fcdc87 | Steve Melenchuk | 2015-12-06 16:45:37 -0700

Add Pakellas to _get_god_misc_info (Medar).

--------------------------------------------------------------------------------
72fc8fbf4a | Nicholas Feinberg | 2015-12-06 15:15:23 -0800

Remove temporary brand on unwield, again
Broken by f50acb22cd3c. TY Medar!

--------------------------------------------------------------------------------
83f2f511c2 | Neil Moore | 2015-12-06 18:10:57 -0500

Simplify.

--------------------------------------------------------------------------------
3af82da507 | Neil Moore | 2015-12-06 18:10:57 -0500

Avoid a bad message when dropping a wielded fragile weapon (tollymain)
And assert that we weren't asked to drop some other undefined item.

--------------------------------------------------------------------------------
7be5d913ae | Neil Moore | 2015-12-06 18:10:57 -0500

Constify and add an assert.
We would have crashed anyway if called on a weaponless monster.

--------------------------------------------------------------------------------
014cd11ca5 | Shmuale Mark | 2015-12-06 17:58:47 -0500

Don't prompt if dazzling spray would hit an OoD (#10150).

--------------------------------------------------------------------------------
6576e0e09b | Shmuale Mark | 2015-12-06 17:55:13 -0500

Remove some more beam name checks.

--------------------------------------------------------------------------------
4ac043f4d4 | Shmuale Mark | 2015-12-06 16:17:12 -0500

Standardise prompt texts.
This also means they get coloured lightred by default.

--------------------------------------------------------------------------------
31c9eb47e0 | Shmuale Mark | 2015-12-06 16:15:20 -0500

Warn when a beam might poison a monster under TSO (#6851).

--------------------------------------------------------------------------------
95a918ddc0 | Shmuale Mark | 2015-12-06 15:36:40 -0500

Remove a stray space.

--------------------------------------------------------------------------------
f8caa00dad | Shmuale Mark | 2015-12-06 15:36:40 -0500

Warn properly when casting Tukima's on a dual-wielder (#10146).
I doubt this is the only bug caused by monster::weapon being
nondeterminstic.

--------------------------------------------------------------------------------
710936a269 | Shmuale Mark | 2015-12-06 15:36:40 -0500

Avoid unnecessary copying in making dancing/spectral weapons.

--------------------------------------------------------------------------------
9039cfa536 | Shmuale Mark | 2015-12-06 15:36:40 -0500

Prevent Fe/Dr/Op from getting Sturdy Frame.

--------------------------------------------------------------------------------
98f38505e6 | Shmuale Mark | 2015-12-06 15:36:40 -0500

Prevent using Gell's to move monsters onto deep water/lava (#10140).
You could even move fish onto dry land, which was hilarious but also not
intended.

--------------------------------------------------------------------------------
cd63140e8d | Shmuale Mark | 2015-12-06 15:36:40 -0500

Make a function static.

--------------------------------------------------------------------------------
ddac17954c | ontoclasm | 2015-12-06 13:40:56 -0600

God-specific skill icons

--------------------------------------------------------------------------------
e7c696632a | Pekka Lampila | 2015-12-06 21:16:24 +0200

Remove a reference to warding amulet from stash.lua.
[skip ci]

--------------------------------------------------------------------------------
43c7a91770 | Pekka Lampila | 2015-12-06 21:16:20 +0200

Expend more resistances for stash search strings.
[skip ci]

--------------------------------------------------------------------------------
dbf26c528c | Pekka Lampila | 2015-12-06 20:42:16 +0200

Use the correct start index. (|amethyst)
[skip ci]

--------------------------------------------------------------------------------
211aeb0aed | Pekka Lampila | 2015-12-06 20:37:54 +0200

Don't annotate rCorr items with resist cold. (#10149)

--------------------------------------------------------------------------------
1ad1de6f39 | elliptic | 2015-12-06 13:09:40 -0500

Don't match up stone stairs that have been mapped but not seen (causative).
Stairs seen through glass will still be matched up and marked as known, which
might not be ideal behavior.

--------------------------------------------------------------------------------
9abba6fcea | Pekka Lampila | 2015-12-06 07:13:56 +0200

Missed a comma.

--------------------------------------------------------------------------------
57e7db2a41 | Pekka Lampila | 2015-12-06 06:56:14 +0200

Give stealth bonus from umbra with nightvision.
This means that Yred worshippers only have it at *** or higher.

--------------------------------------------------------------------------------
ea45978648 | Pekka Lampila | 2015-12-06 06:55:56 +0200

Data-ify more passive god abilities.

--------------------------------------------------------------------------------
00855b9cd7 | Steve Melenchuk | 2015-12-05 21:07:08 -0700

Don't stepdown staff of energy success chance (#10130).

--------------------------------------------------------------------------------
ce59692f9b | Shmuale Mark | 2015-12-05 21:40:04 -0500

Fix the targetter sometimes claiming the last square was hit twice.
This happened when the player's cursor ended the beam in the wall.
affect_cell() called hit_wall(), which, if it the beam couldn't affect the
wall, regressed the ray until it was back in open space and set
extra_range_used to signal that the beam was over and the last space
wasn't supposed to actually be used twice. Unfortunately, the addition to
path_taken was after affect_cell but before the check to break out of the
loop if the beam had finished. This previously didn't cause issues,
because path_taken didn't add a square if it had just been there, but that
check had to be removed in order to properly show a beam bouncing off a
wall.

The simple solution would be to move the addition to path_taken to before
affect_cell being called. Unfortunately, affect_cell also called bounce(),
and not using the updated ray position would mean dropping the first cell
after the bounce. Therefore, the code to update the position had to be
pulled into the while loop in do_fire().

--------------------------------------------------------------------------------
ab0a06cd70 | Shmuale Mark | 2015-12-05 21:40:04 -0500

Remove an unused method.

--------------------------------------------------------------------------------
6b2bbc4cd3 | Pekka Lampila | 2015-12-06 02:55:18 +0200

Don't allow Gozag wrath affect monsters seen only by scrying. (#10145)

--------------------------------------------------------------------------------
393520ad4a | Corin Buchanan-Howland | 2015-12-05 15:09:24 -0500

Remove some no longer necessary amulet warnings.

--------------------------------------------------------------------------------
eb0600ffd0 | Corin Buchanan-Howland | 2015-12-05 14:57:20 -0500

Redo penalties for amulets of regen and dismissal
The old penalties gave strategic penalties for tactical costs, which
seemed disproportional and inappropriate.

The new swap deterrent for amulets of regeneration (courtesy of Haifisch
via archaeo, I believe) is that the amulet won't regenerate you at all
until it attunes to your physiology, which happens as soon as you hit
full health. This means that you cannot use it for emergency healing, but
there's no frustrating penalty for swapping it strategically.

The new swap deterrent for amulets of dismissal is a brief (3-6 turns)
spell of vertigo when you put it on. Vertigo affects your EV, combat
accuracy, and spell success chances. This makes it a bad thing to pop on
in the middle of a fight, but is not a meaningful penalty outside of
combat. The status lasts quite briefly, meaning that resting after
putting on the amulet isn't particularly necessary.

--------------------------------------------------------------------------------
bb51d4ed3d | Corin Buchanan-Howland | 2015-12-05 14:43:29 -0500

Create clouds of tloc energy when dismissing a foe (tedric)

--------------------------------------------------------------------------------
56ca578a3a | Pekka Lampila | 2015-12-05 19:48:19 +0200

Remove unused monster speech command __MORE.
Also removed references to non-existent commands from
monster_speech.txt.

--------------------------------------------------------------------------------
db01d975f3 | Neil Moore | 2015-12-05 12:15:49 -0500

Forget Beogh item gifts when the recipient polymorphs (hong)
So if it is polymorphed back into an orc, or it returns to its original
form after Kirke is killed, it can be gifted to once again.

Bug #10000 is similar, but about mercenaries.  It's less clear how to
fix that one.

--------------------------------------------------------------------------------
f7245a8979 | Nicholas Feinberg | 2015-12-05 08:45:47 -0800

Arguably refactor bone armour degrading
Pull a for loop inward.

--------------------------------------------------------------------------------
829aa1c62e | Neil Moore | 2015-12-05 11:03:59 -0500

Add bsdbeard (}) to CREDITS.

--------------------------------------------------------------------------------
d0428f79cb | Pekka Lampila | 2015-12-05 17:45:06 +0200

More conversions from more() to default force_more_message.
This means you now get more by default when trying to use rod while too
hungry and when changing religion using wizmode commands.

--------------------------------------------------------------------------------
229a4553b7 | John Boyle | 2015-12-05 03:08:45 -0500

fix a novelty vault to work better with squarelos
see !bug 10120
https://crawl.develz.org/mantis/view.php?id=10120

The old silent_spectre radius under circlelos covered a diameter of 25
squares.  In squarelos, the "diameter" is only 21.

This meant a few monsters were not properly silenced per the intention
of the vault.

One solution would have been to increase silence_radius to 12, but this
seems like a poor choice just to make a single novelty vault work
better.

Instead, the proposed fix makes a couple cells on the East side only 2
squares (just like some other existing squares).

Additionally, the silent_spectre is moved one space EAST to help cover
the new smaller cells.

Loot and number of mosnters remains unchanged. However, the ancient
lich, 6, is now BEHIND the diggable rock wall at the south and
completely outside of the silenced area.

If this is not desired, it could easily be moved to the 4 just above the
diggable walls.

--------------------------------------------------------------------------------
caceebcf3c | Nicholas Feinberg | 2015-12-04 23:52:15 -0800

Merge pull request #197 from dominiquelee/master
Fix monster_speech.txt link in README.md
--------------------------------------------------------------------------------
67d505c66a | dominiquelee | 2015-12-05 08:46:11 +0100

Fix monster_speech.txt link in README.md

--------------------------------------------------------------------------------
d91f0cbe50 | ontoclasm | 2015-12-05 00:32:49 -0600

Flying skull tile (CanOfWorms)

--------------------------------------------------------------------------------
b9673d25cf | Neil Moore | 2015-12-04 23:53:26 -0500

Decay clouds as they spread.
Broken in the recent refactor: the new clouds were getting the same decay
level as their parent, resulting in fog machines generating much more smoke
than intended.

--------------------------------------------------------------------------------
4f7811d870 | Neil Moore | 2015-12-04 22:56:39 -0500

Correct the scale on a duration check.
Fixes a long-standing glitch (since 0.6.0-a1-711-g3a9d60e) whereby
becoming Full as a batform vampire would extend an almost-expired
batform duration to five turns.

--------------------------------------------------------------------------------
8e11b5c8b5 | Neil Moore | 2015-12-04 22:56:39 -0500

Fix up food_change and lifeless_prevents_form a bit.
Rename player_alive_t to undead_form_reason (now that 'alive' is false),
move the enum into transform.h, and rename the enum and enumerators to
something that matches more of the use cases.  Also fix a backwards
check in transform().

--------------------------------------------------------------------------------
f5ec3a8531 | Neil Moore | 2015-12-04 22:56:39 -0500

Restructure player_alive_enough_for (bsdbeard)

--------------------------------------------------------------------------------
fed3b5d241 | Neil Moore | 2015-12-04 22:56:39 -0500

Don't remove shadow form when a vampire becomes thirsty (bsdbeard)

--------------------------------------------------------------------------------
eff4d3524a | ontoclasm | 2015-12-04 21:44:19 -0600

Ufetubus tile
"Ok, HD remaster of fat demon pigeon with no wings" - apple

--------------------------------------------------------------------------------
92385f62b3 | Pekka Lampila | 2015-12-05 04:29:37 +0200

Add dismissal to autopickup exceptions. (|amethyst)

--------------------------------------------------------------------------------
4fab66bdaa | Pekka Lampila | 2015-12-05 04:25:54 +0200

Remove amulet of warding reference from autopickup exceptions.

--------------------------------------------------------------------------------
29bce603c2 | Nicholas Feinberg | 2015-12-04 17:59:06 -0800

Don't give XP for howl-called doom hounds
Infinite XP Considered Abusable, Say Killhole Experts

--------------------------------------------------------------------------------
fd446e5c69 | Pekka Lampila | 2015-12-05 03:44:58 +0200

Remove pointless wildcard match.

--------------------------------------------------------------------------------
138ec8f115 | Pekka Lampila | 2015-12-05 03:44:58 +0200

Make unided scroll of amnesia show message before the menu.
So it works the same way as other scrolls with menus.

--------------------------------------------------------------------------------
3df51eec34 | Pekka Lampila | 2015-12-05 03:44:58 +0200

Replace many more() calls with default force_more_message options.
This allows players to disabled these forced more messages.

Added comments to the code, to hopefully avoid situations where the
string in code is updated but default configuration isn't.

--------------------------------------------------------------------------------
49e04c2726 | Pekka Lampila | 2015-12-05 03:44:58 +0200

Don't force more when trying to annotate non-persistent level.

--------------------------------------------------------------------------------
5045941764 | Neil Moore | 2015-12-04 20:39:19 -0500

Fix indentation.
And change a few multi-line empty-body for loops to use "{}" rather
than ";" for their bodies.

--------------------------------------------------------------------------------
2d01a89381 | Nicholas Feinberg | 2015-12-04 17:37:37 -0800

Shift doom hound HD (not HP) up
To reduce unfortunate poly accidents. (If that remains a problem,
they can become demons.)

--------------------------------------------------------------------------------
26805c26f2 | Steve Melenchuk | 2015-12-04 17:55:55 -0700

Make sure P's 4* gift actually happens at 4* (rchandra).
Broken when I added the 2* gift.

--------------------------------------------------------------------------------
7603ac405c | Steve Melenchuk | 2015-12-04 17:36:39 -0700

Changelog through 0.18-a0-642-g77daf3c.

--------------------------------------------------------------------------------
77daf3c47a | Steve Melenchuk | 2015-12-04 17:29:13 -0700

Pakellas abandonment wrath blocks MP regeneration (CanOfWorms).
Sort of analogous to the Chei slowdown effect, it's a more permanent way
of hindering the player while wrath is ongoing.

--------------------------------------------------------------------------------
4caf58e587 | Shmuale Mark | 2015-12-04 12:21:21 -0500

Don't rebuild monster when it's up to date (|amethyst).

--------------------------------------------------------------------------------
2c992fa36d | Neil Moore | 2015-12-04 12:11:02 -0500

Avoid carrying over clouds/traps when visiting levels.

--------------------------------------------------------------------------------
ea7ce262aa | Shmuale Mark | 2015-12-04 12:05:55 -0500

Don't turn old phantom mirrors into zigfigs (Grunt).

--------------------------------------------------------------------------------
a16115c9e8 | Shmuale Mark | 2015-12-04 11:54:57 -0500

Re-add the stuff necessary for CDO monster.
Now that it's back up.

--------------------------------------------------------------------------------
34f176e17c | Shmuale Mark | 2015-12-04 11:54:57 -0500

Monster code has been relicensed under crawl's main license.

--------------------------------------------------------------------------------
2d1334d950 | Shmuale Mark | 2015-12-04 11:54:57 -0500

Fix a crash.
To reproduce in the current monster, try 'orc ; dagger ego:none'.

--------------------------------------------------------------------------------
a9541e6b72 | Shmuale Mark | 2015-12-04 11:54:57 -0500

Clean up monster build/code/files.
* Makefile: deleted, because the main Makefile is now used
* README: now unnecessary
* parse_tiles.py: only used for the CDO lookup, which is down anyway
* parse_des.py: duplicated the functionality of util/gather_mons
* C++ code consolidated into one file

Also removes std::s, fixes warnings, and modernises the code.

--------------------------------------------------------------------------------
09f666a248 | Shmuale Mark | 2015-12-04 11:54:57 -0500

Reformat monster code using the .clang-format in PR #146.
Also with checkwhite and unbrace.

--------------------------------------------------------------------------------
c09e645927 | Shmuale Mark | 2015-12-04 11:54:57 -0500

Add the contents of the monster repo to util/monster/.
Up to date as of c9b677d.

--------------------------------------------------------------------------------
4512088791 | Neil Moore | 2015-12-04 11:00:30 -0500

Fix my trap fixup.
It was looking at clouds, not traps.

Also, simplify the cloud fixup a bit now that there is no need for
a loop over the whole map there.

--------------------------------------------------------------------------------
21f262b240 | Shmuale Mark | 2015-12-04 10:45:07 -0500

oops

--------------------------------------------------------------------------------
7604090102 | Shmuale Mark | 2015-12-04 10:11:41 -0500

Also remove clouds in walls from saves.

--------------------------------------------------------------------------------
16988c91e6 | Neil Moore | 2015-12-04 09:26:02 -0500

Fix a hang when deleting clouds.
Invalidating iterators to the current element is a problem, because the
for loop's iterator points to that element and still needs to be
incremented.

I couldn't reproduce the hang on the servers, but locally it happened
whenever I placed a cloud and changed levels.  Could perhaps in some
situations not hang, but leave clouds over on the new level, causing a
crash?

--------------------------------------------------------------------------------
c02dfadd32 | gammafunk | 2015-12-04 01:21:49 -0600

Restore the spider count in sack of spiders (DrKe)
This was accidentally increased in 383a95c7.

--------------------------------------------------------------------------------
923d68da22 | ontoclasm | 2015-12-04 01:12:53 -0600

Antialias a bunch of skill icons

--------------------------------------------------------------------------------
eb0fed7053 | Neil Moore | 2015-12-04 01:53:03 -0500

Don't crash when setting cloud exclusions.

--------------------------------------------------------------------------------
e805ef5870 | ontoclasm | 2015-12-04 00:31:41 -0600

New skill icons

--------------------------------------------------------------------------------
88d910b4a6 | Nicholas Feinberg | 2015-12-03 22:29:51 -0800

Fix shafting onto stairs (8540)
Shouldn't cause the game to think you used the stairs to get onto
the level!

(Crawl dev trivia: this fix has been sitting in my stash for the
last 1.5 years.)

--------------------------------------------------------------------------------
b763cd82df | Nicholas Feinberg | 2015-12-03 22:05:46 -0800

Improve wizmode dump rod loading
Should handle them correctly now.

--------------------------------------------------------------------------------
341353481d | Neil Moore | 2015-12-04 00:56:07 -0500

Allow FoFi to start with a quarterstaff.
Since they can use it.

--------------------------------------------------------------------------------
c15b795745 | Nicholas Feinberg | 2015-12-03 21:15:18 -0800

Shade a howling lamp.

--------------------------------------------------------------------------------
78a784fba5 | Nicholas Feinberg | 2015-12-03 20:57:37 -0800

Add Doom Hounds
New enemy for Tartarus. Use a smitey hex that causes more hounds
(avg ~4) to spawn nearby for the next 12-18 turns. An escalation
of the situation, vaguely like Sentinel's Mark.

--------------------------------------------------------------------------------
89c329e852 | Jesse Luehrs | 2015-12-03 23:44:04 -0500

update help for |

--------------------------------------------------------------------------------
13eb96ca93 | Jesse Luehrs | 2015-12-03 23:38:26 -0500

update the manual for the merger of ^T and ^V with |

--------------------------------------------------------------------------------
45c4a0f801 | Jesse Luehrs | 2015-12-03 23:05:08 -0500

allow placing ghosts properly in levels without stone stairs

--------------------------------------------------------------------------------
b0ea188395 | Neil Moore | 2015-12-03 22:58:51 -0500

Unbrace.

--------------------------------------------------------------------------------
5b1753cb91 | Neil Moore | 2015-12-03 22:57:04 -0500

Fix up saves with brokenly deleted traps.
In a TAG_MAJOR_VERSION but not minor version check, because this could
paper over real bugs, but it is not worth an increasingly scarce minor
tag to avoid that.

--------------------------------------------------------------------------------
c92b81f4a7 | Neil Moore | 2015-12-03 22:46:02 -0500

Don't crash after traps are destroyed (wheals)
They weren't being removed from the true map, only map_knowledge.

--------------------------------------------------------------------------------
8ce8d5f855 | Neil Moore | 2015-12-03 22:25:10 -0500

Place more than one trap per level (wheals)

--------------------------------------------------------------------------------
a68bafaa75 | Nicholas Feinberg | 2015-12-03 19:22:45 -0800

Add a wolf quote
Courtesy @translatedjokes.

--------------------------------------------------------------------------------
d13b254998 | Nicholas Feinberg | 2015-12-03 19:10:47 -0800

Correct Yara's description in the changelog
The number of effects dispelled doesn't matter!

--------------------------------------------------------------------------------
94aae89924 | Neil Moore | 2015-12-03 22:07:06 -0500

Don't crash when clouds expire (Grunt).

--------------------------------------------------------------------------------
c3bef284ee | Neil Moore | 2015-12-03 21:36:09 -0500

Hush a compiler warning.
We couldn't even fit 2^31 clous on the level if we tried.

--------------------------------------------------------------------------------
86eec7def2 | Steve Melenchuk | 2015-12-03 18:14:16 -0700

Shut up checkwhite.

--------------------------------------------------------------------------------
7da544189d | Steve Melenchuk | 2015-12-03 18:13:36 -0700

Pakellas gifts a wand once at 2*.
This is intended to improve P's utility in the early game, where it can
be difficult to do anything in the absence of a wand.

The rod gift at 4* is preserved, and the 2* gift does not impact further
gifts.

The wand is guaranteed not to be heal wounds, teleportation, or hasting
(P can gift those later if you're sufficiently devout, of course).

--------------------------------------------------------------------------------
f42728a6b1 | Pekka Lampila | 2015-12-04 01:27:39 +0200

Fix enabling autopickup when gaining passive_t::sinv.

--------------------------------------------------------------------------------
52b3887f05 | Pekka Lampila | 2015-12-04 01:24:33 +0200

Fix Ash curing player's confusion at wrong piety level.

--------------------------------------------------------------------------------
5e852a4ef2 | Shmuale Mark | 2015-12-03 18:20:58 -0500

Also remove the trap limit.

--------------------------------------------------------------------------------
9bcbefa835 | Pekka Lampila | 2015-12-04 01:16:49 +0200

Fix piety level for Lugonu's Abyssal rune attraction.

--------------------------------------------------------------------------------
cdeb485052 | Pekka Lampila | 2015-12-04 01:02:23 +0200

Data-ify TSO's passive abilities.

--------------------------------------------------------------------------------
990d48cd88 | Pekka Lampila | 2015-12-04 01:02:04 +0200

Data-ify some code missed by earlier commits.

--------------------------------------------------------------------------------
09a8855ed7 | Shmuale Mark | 2015-12-03 17:10:24 -0500

Move shops into a map as well.

--------------------------------------------------------------------------------
332275c22b | Shmuale Mark | 2015-12-03 15:45:01 -0500

Remove the cloud limit.
Clouds are stored in a map<coord_def, cloud_struct>, rather than in a
FixedVector that has indices into it stored in env.cgrid.

--------------------------------------------------------------------------------
a4db2b4c19 | Shmuale Mark | 2015-12-03 15:45:01 -0500

Rewrite of cloud API.
env.cgrid is now never used externally; cloud_at or cloud_type_at (returns
CLOUD_NONE if there's no cloud at the position) are preferred. This means
that functions no longer take indices into env.cloud, but rather
references to cloud_structs, cloud_types, or coord_defs.

--------------------------------------------------------------------------------
3d103d04cb | Neil Moore | 2015-12-03 14:25:15 -0500

Fix PLUARET macro syntax.
It expanded to a bare { } block, meaning a trailing semicolon would
break an if, etc.  Use the standard do { } while(false) trick instead.

--------------------------------------------------------------------------------
9a6497928a | Neil Moore | 2015-12-03 14:15:29 -0500

Brace and unbrace.

--------------------------------------------------------------------------------
f87b446f53 | elliptic | 2015-12-03 10:15:48 -0500

Mark stone stairs as known if you have seen both ends of them.
Previously it was generally a good idea to take each upstairs when exploring
a new level, since this gave the following benefits:
* you might need to do this to access a disconnected part of the previous
  level (often a vault)
* you would know what the terrain was like on the other side of the stairs
  in case you later wanted to retreat up the stairs while pursued by monsters
* interlevel travel would be able to use those stairs to move between levels
  more efficiently (this is especially important for the orbrun)

But if you had already fully explored the previous level then taking an
upstairs to it was very unlikely to be interesting at all, despite still
giving benefits 2 and 3 above. Manually doing <> on each unknown upstairs was
an uninteresting task (and one that autoexplore does not do for you).

This commit effectively gives benefits 2 and 3 to you for free by marking
stone stairs as known (and letting interlevel travel know about them) as soon
as you have seen both sides of them. (This information was actually already
leaked by player lua asking for the name of the stair feature.) This means
that if an upstairs is marked as unknown then you know for sure that there
is something new on the other side of it that you should go explore.

This commit does lose the information of which stairs a player has actually
traversed. If it turns out that players really want the game to keep track
of this for them, I'd suggest adding it as a flag in stair_info so that it
is logically separate from knowing the destination of the stair. Then an
option can be added to emphasise stairs based on whether the stair has been
traversed rather than on whether the destination of the stair is known. I'm
not adding a new option until it is clear that such behavior is desired,
though...

--------------------------------------------------------------------------------
72e1e218ce | Neil Moore | 2015-12-03 09:50:49 -0500

Fix fontwrapper-ft.cc for freetype 2.5.4+ (#10131)

--------------------------------------------------------------------------------
3d6925d77f | ontoclasm | 2015-12-03 00:37:27 -0600

Multi-zap shading & halo

--------------------------------------------------------------------------------
64688853e4 | Shmuale Mark | 2015-12-02 22:31:36 -0500

Fix issues with previous commit.

--------------------------------------------------------------------------------
9133f58dba | Shmuale Mark | 2015-12-02 22:27:23 -0500

Cargo cult implementation of webtiles multi-zap.

--------------------------------------------------------------------------------
770297e829 | Steve Melenchuk | 2015-12-02 20:26:34 -0700

Get multizap to display in webtiles (hopefully).
Also reorders one bit of logic to display multizap with priority over
one zap. I don't think that will ever matter, but just in case.

--------------------------------------------------------------------------------
3a9cb0d0ed | Steve Melenchuk | 2015-12-02 20:12:29 -0700

Changelog through 0.18-a0-592-g12a94aa.
Let the experiment begin.

--------------------------------------------------------------------------------
12a94aa57f | Steve Melenchuk | 2015-12-02 19:12:52 -0700

Apply Grunt Tweaks(tm) to johnstein's P overflow vaults.
All:
* Get them to place properly by adding temple_overflow_1
* Add interest_check() to let them place as normal minivaults past the
  normal depth as well (see: most other overflow vaults)

death_squad:
* The live kobold now generates 25% of the time, and gets one of the
  basic wand types with full charges (using "any wand" makes it
  moderately likely that it will try to generate with a type of wand
  that it can't use). The troll hide chance is now 50% of the time if
  the live kobold appears (got to work for your reward!)
* Remove the less obvious wall types (rock is too boring; glass is too
  glitzy; trees don't really fit with P); the set now matches the other
  overflows.
* Identify the empty wands as being empty (to avoid spoilers).
* Remove felid corpses - felids don't spawn in the game except for
  Natasha.

dig:
* Make the altar box completely stone except for the glass panel.
* ID the wand type and the fact that it has one charge.
* Occasionaly (1/6) give a wand of disintegration instead (it has the
  same effect in the vault, but is more useful outside the vault).

shop:
* Rename the shop - there's nothing fake about P's wands!

--------------------------------------------------------------------------------
51988f4bf8 | Steve Melenchuk | 2015-12-02 18:45:16 -0700

Merge pull request #188 from jmbjr/js-pak-vaults

--------------------------------------------------------------------------------
c3b73ababa | Steve Melenchuk | 2015-12-02 18:44:54 -0700

Merge branch 'js-pak-vaults' of https://github.com/jmbjr/crawl into 
jmbjr-js-pak-vaults

--------------------------------------------------------------------------------
797ac39e4d | Steve Melenchuk | 2015-12-02 18:44:04 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
4d39afe753 | Steve Melenchuk | 2015-12-02 18:42:21 -0700

Changelog through 0.18-a0-515-gb8265c6.

--------------------------------------------------------------------------------
4bf14cb562 | Steve Melenchuk | 2015-12-02 17:15:31 -0700

Fix supercharge on a previously used empty wand (Celerity).
It wasn't resetting used_count, which was ZAPCOUNT_EMPTY, which was
causing the wand to always flag as empty despite being charged.

Includes a save compat fix for the issue which can probably be removed
from trunk.

--------------------------------------------------------------------------------
bf4513c9e9 | Steve Melenchuk | 2015-12-02 17:04:39 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
b8265c6fcf | Pekka Lampila | 2015-12-03 01:28:36 +0200

Fix a crash in _describe_god_powers.
Happened when checking description of an another life protecting god
while worshipping Ely.

--------------------------------------------------------------------------------
a7d9996df0 | Shmuale Mark | 2015-12-02 17:36:53 -0500

Some more range-based fors.

--------------------------------------------------------------------------------
cb7ac1def5 | Pekka Lampila | 2015-12-02 23:53:32 +0200

Don't rest forever with rest_wait_both if MP/HP won't regenerate.
If for example a DD rested and missed both MP and HP, it wouldn't stop
when MP was full.

--------------------------------------------------------------------------------
65ed60b8ab | Pekka Lampila | 2015-12-02 23:53:32 +0200

Rename a static function start with an underscore.

--------------------------------------------------------------------------------
a7e9d5e6b8 | Pekka Lampila | 2015-12-02 23:53:22 +0200

Add player_regenerates_hp/mp functions, use in various places.

--------------------------------------------------------------------------------
a597c4a7c7 | Shmuale Mark | 2015-12-02 16:23:19 -0500

Remove some changelog entries.
Not every change needs to be noted; a good guideline is things that would
make a player from a previous version play differently. Making it too long
risks making losing the more important stuff in the noise.

--------------------------------------------------------------------------------
a28f6ccd85 | Shmuale Mark | 2015-12-02 16:14:50 -0500

Also support multi-zap indicator in console.
Color is, again, probably eye-searing and could be changed.

--------------------------------------------------------------------------------
71fc851c24 | Dan Bryant | 2015-12-02 16:12:15 -0500

Added support for multi-zap indicator in Tiles.
May be high-risk due to changes to path_taken in beam.

[heavily edited; I also vetted most of the uses of path_taken and it looks
like there shouldn't be any issues, since this will only really change the
behaviour when the beam does bounce. I also added the tile itself; feel
free to repaint it. --wheals]

--------------------------------------------------------------------------------
97aafa4416 | Jeong, Heon | 2015-12-02 15:12:26 -0500

Cut glyphs if it's larger than charsz

--------------------------------------------------------------------------------
68d7015053 | Chris Campbell | 2015-12-02 18:41:39 +0000

Print the number of remaining arrows after casting Sticks to Snakes
Since it's no longer cast from wielded arrows, meaning that information isn't
otherwise available at a glance any more. Doesn't count !D-inscribed arrows
(which aren't considered for snakification).

--------------------------------------------------------------------------------
ad1d7b7eff | Shmuale Mark | 2015-12-02 12:42:40 -0500

Remove another unused variable.
This one was used only by an unused variable.

--------------------------------------------------------------------------------
822c1c0d22 | Shmuale Mark | 2015-12-02 12:34:33 -0500

Fix shadow warnings (elliptic).

--------------------------------------------------------------------------------
7b3b78a685 | infiniplex | 2015-12-02 12:25:57 -0500

Add Elf variant to layout_rooms

--------------------------------------------------------------------------------
371a3d9528 | infiniplex | 2015-12-02 12:19:11 -0500

Added Zot version to layout_misc_corridors

--------------------------------------------------------------------------------
ca06b977c2 | infiniplex | 2015-12-02 12:14:47 -0500

Updated layout_misc_corridors for improved join_the_dots

--------------------------------------------------------------------------------
c663b573e4 | Shmuale Mark | 2015-12-02 12:05:25 -0500

Change Matrix<Z> to use a unique_ptr<Z[]>.

--------------------------------------------------------------------------------
05682e76d6 | Shmuale Mark | 2015-12-02 11:35:21 -0500

deleted too much

--------------------------------------------------------------------------------
10b4b5524e | Shmuale Mark | 2015-12-02 11:24:34 -0500

Remove an errant comma.

--------------------------------------------------------------------------------
7a8015d258 | Shmuale Mark | 2015-12-02 11:06:20 -0500

Move *_cost out of the header.

--------------------------------------------------------------------------------
9a951b036e | Shmuale Mark | 2015-12-02 11:04:45 -0500

Remove targetter_list.
Was added and only used for Forceful Dismissal.

--------------------------------------------------------------------------------
e6380c3c16 | Shmuale Mark | 2015-12-02 11:00:20 -0500

Cppcheck: various safety checks.

--------------------------------------------------------------------------------
f126f55602 | Shmuale Mark | 2015-12-02 11:00:17 -0500

Cppcheck: remove dead code.

--------------------------------------------------------------------------------
460d915541 | Shmuale Mark | 2015-12-02 11:00:14 -0500

Cppcheck: replace string::find with starts_with when possible.

--------------------------------------------------------------------------------
5835e8b606 | Shmuale Mark | 2015-12-02 11:00:11 -0500

Cppcheck: use prefix ++.

--------------------------------------------------------------------------------
cbb1ff9fd9 | Shmuale Mark | 2015-12-02 10:59:24 -0500

Cppcheck: remove redundant c_str()s.

--------------------------------------------------------------------------------
510fefd388 | Shmuale Mark | 2015-12-02 10:58:38 -0500

Cppcheck: Use more initialization lists.

--------------------------------------------------------------------------------
d871292f4a | Shmuale Mark | 2015-12-02 10:58:36 -0500

Cppcheck: Change some functions to take references.
Unfortunately lots of false positives, since it wants coord_def
and level_id to be passed by reference, but they're small enough
value is better.

--------------------------------------------------------------------------------
d7cbe102ff | ontoclasm | 2015-12-02 02:09:48 -0600

Various icon improvements

--------------------------------------------------------------------------------
2e248ec356 | John Boyle | 2015-12-02 03:05:47 -0500

adjust charges and greed for P shop overflow altar
90% chance of basic wands (frost, flame, mdarts)
10% chance any
(only 3 wands generate)

basic wands will cost 150-250 gold (15 charges at greed 30)
HW, Haste, etc are >1k gold
cold, fire, etc are around 600 gold

--------------------------------------------------------------------------------
b977e0db71 | ontoclasm | 2015-12-01 21:26:41 -0600

Sun demon tile (CanOfWorms)

--------------------------------------------------------------------------------
f8f965f6ea | Steve Melenchuk | 2015-12-01 19:19:19 -0700

Adjust Device Surge into a slimify-like one-shot duration (MarvinPA).
The old interface was clunky; this is considerably cleaner and also
allows for the surge to not dissipate if you're using a device to which
it doesn't apply.

I've flagged the ability as instant so that it takes the same amount of
time to do a device surge as previously, i.e. the time it takes to evoke
the device. This may not turn out to be necessary or desirable, but it's
there for now.

--------------------------------------------------------------------------------
c98bfff151 | Chris Campbell | 2015-12-02 00:00:35 +0000

Don't rest forever when worshipping Pakellas

--------------------------------------------------------------------------------
68304a7ab4 | Chris Campbell | 2015-12-01 23:59:50 +0000

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
ab6c0bddf0 | Chris Campbell | 2015-12-01 23:58:17 +0000

Don't rest forever as a Deep Dwarf wearing guardian spirit

--------------------------------------------------------------------------------
856d1972ec | Pekka Lampila | 2015-12-02 01:42:34 +0200

Always display all god powers, highlight available ones.
On the god description screen. If the player isn't worshipping the god,
nothing is highlighted. Abilities that increase in power with more piety
are currently shown at their weakest level, if not available. Vehumet's
spell offer has special handling.

--------------------------------------------------------------------------------
fcbb278229 | Chris Campbell | 2015-12-01 22:58:45 +0000

Remove most sources of Zin Recite interruption
The list of actions that interrupted recite was very long and awkward, and it
wasn't a very necessary restriction. Flavour-wise, if you can carry on casting,
quaffing and reading while singing a song of slaying it's just as believable
that you could do so while reciting!

Losing a large amount of HP also no longer interrupts recite - this was just a
holdover from uninterruptible recite.

--------------------------------------------------------------------------------
9e1ee6321b | Chris Campbell | 2015-12-01 22:58:45 +0000

Reduce the piety bonus from amulets of faith
From 1/3 to 1/4 faster piety gain.

--------------------------------------------------------------------------------
3e039bfab4 | Chris Campbell | 2015-12-01 22:58:15 +0000

Give hydra form a fixed number of heads when cast
Letting it grow more heads in combat was a bad gameplay mechanic, but removing
that resulted in it being unecessarily ineffective against eg humanoids with
chopping weapons. Just giving it a fixed number of heads when cast makes it
simpler (at the cost of making it more unlike monster hydras, but again, it was
already really nothing like them).

--------------------------------------------------------------------------------
9a22f0ca1f | Pekka Lampila | 2015-12-01 23:45:22 +0200

Clarify teleportitis description (distance isn't limited).

--------------------------------------------------------------------------------
7a09ef4f81 | Chris Campbell | 2015-12-01 20:14:58 +0000

Tweak display of dismissal on %
There's plenty of room to not abbreviate it so much.

--------------------------------------------------------------------------------
015cd81537 | Chris Campbell | 2015-12-01 20:14:58 +0000

Fix amulet of regeneration messaging for heartless players

--------------------------------------------------------------------------------
4e051445c5 | Chris Campbell | 2015-12-01 20:14:51 +0000

Remove rF and rC from spark wasps
There's not really a clear reason for them to have these extra resistances.

--------------------------------------------------------------------------------
ef828120ad | Chris Campbell | 2015-12-01 20:14:44 +0000

Adjust some monster descriptions...

--------------------------------------------------------------------------------
802644fa30 | Chris Campbell | 2015-12-01 20:14:44 +0000

Give insects animal intelligence
With the various intelligence levels being merged, "animal" intelligence seems
a bit more fitting than labelling them entirely mindless. Allowing Elyvilon
pacification to affect insects again is probably the most noticeable effect of
changing their intelligence, and that's probably fine since Elyvilon has had
significant changes since being prevented from pacifying mindless monsters.

--------------------------------------------------------------------------------
f0efd499b3 | Chris Campbell | 2015-12-01 20:14:43 +0000

Don't give a bonus when pacifying creatures of the player's genus
Having the ability's effectiveness change depending on your race isn't a very
interesting mechanic, since player-genus monsters vary so heavily in rarity and
dangerousness (and whether they even exist).

--------------------------------------------------------------------------------
33aa5f8dd7 | Shmuale Mark | 2015-12-01 14:40:29 -0500

Update docs again.
As noted by Sandman25, items can use inscriptions instead.

--------------------------------------------------------------------------------
a89439d069 | Shmuale Mark | 2015-12-01 14:26:56 -0500

Display if a monster is immune when targetting nets.
Closes #189 pull request.

--------------------------------------------------------------------------------
e90adedaa3 | Shmuale Mark | 2015-12-01 14:21:07 -0500

Update doc.

--------------------------------------------------------------------------------
f84bb0de87 | Sandman25DCSS | 2015-12-01 14:19:15 -0500

Update ability.cc
Supporting abilities for confirm_action. Tested with "confirm_action += Banish"

[slightly tweaked message --wheals]

--------------------------------------------------------------------------------
259a231d77 | Shmuale Mark | 2015-12-01 14:09:10 -0500

Dont give pan lords speed or vorpal.
Speed doesn't work, vorpal is totally uninteresting.

--------------------------------------------------------------------------------
f15e86e5a5 | Shmuale Mark | 2015-12-01 13:55:43 -0500

Merge pull request #184 from alexjurkiewicz/panlord-brands
Tweak panlord brand distribution.
--------------------------------------------------------------------------------
9774df8e2d | Shmuale Mark | 2015-12-01 13:31:41 -0500

Destroy Yred zombies on abandonment.

--------------------------------------------------------------------------------
2da4a2af7a | Shmuale Mark | 2015-12-01 13:31:40 -0500

Use mons_make_god_gift.

--------------------------------------------------------------------------------
db8518e57d | Neil Moore | 2015-12-01 13:17:58 -0500

Fix tiles builds by really really removing opc tile.
0.18-a0-458-gd35f82a removed the tile and its enum, but did not remove
references to that enum in the code.

--------------------------------------------------------------------------------
a4894dd863 | Neil Moore | 2015-12-01 13:08:15 -0500

Re-correct weights for random tiles.
The fix in 0.18-a0-456-gaa2475c handles the case of identical weights
(assuming the base tile has the smallest index, which is always the
case), but otherwise uses the wrong weights.

For example, if the weights are  A:2, B:3, C:1, then total = 6 and we
roll a "random" number from 0 to 5:

Roll    Old   aa2475c   Now
 0       A       A       A
 1       A       B       A
 2       A       B       B
 3       B       C       B
 4       B       C       B
 5       B       C       C

If the weights are  A:2, B:2, then total = 4:
Roll    Old   aa2475c   Now
 0       A       A       A
 1       A       B       A
 2       A       B       B
 3       B    base idx   B

Ideally both this and random_choose_weighted would be using the same
code, since the logic is essentially identical (RCW adds to the number
being compared against rather than subtracting from the roll, but that
amounts to the same thing).

--------------------------------------------------------------------------------
f16beb3db7 | Jesse Luehrs | 2015-12-01 12:32:24 -0500

^F should be case insensitive (10123)

--------------------------------------------------------------------------------
80d36b2689 | Shmuale Mark | 2015-12-01 07:38:39 -0500

Merge pull request #192 from deveight/patch-1
Vampires can now drain entropy weavers
--------------------------------------------------------------------------------
242350dd4c | ontoclasm | 2015-12-01 01:57:54 -0600

Spriggan rider tile

--------------------------------------------------------------------------------
012bd0b2d0 | ontoclasm | 2015-12-01 01:43:55 -0600

Fix the ogre mage tile's glowy thing

--------------------------------------------------------------------------------
d35f82a8ce | ontoclasm | 2015-12-01 01:04:03 -0600

Remove opc tile for real this time

--------------------------------------------------------------------------------
4262862b18 | ontoclasm | 2015-12-01 00:13:28 -0600

Move some axed mon tiles to /UNUSED

--------------------------------------------------------------------------------
78a23d88c4 | Steve Melenchuk | 2015-11-30 22:25:26 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
aa2475c65c | Steve Melenchuk | 2015-11-30 22:23:37 -0700

Make sure the last tile in a random animated set is visible (ontoclasm).
If you roll 0 above, it should return immediately as it wants the first
item in the set.

--------------------------------------------------------------------------------
dceef6ed0d | Steve Melenchuk | 2015-11-30 21:47:46 -0700

Pakellas altar tiles (CanOfWorms).

--------------------------------------------------------------------------------
3f804b4595 | Steve Melenchuk | 2015-11-30 21:40:50 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
c7d4c65bb1 | sgrunt | 2015-11-30 21:39:45 -0700

Merge pull request #190 from ebering/chess_tiles
Add tiles for Xom's chesspieces (CanOfWorms)
--------------------------------------------------------------------------------
95282dacda | Nicholas Feinberg | 2015-11-30 20:25:07 -0800

Revert "Rename *Drain -> Drain" :sweat:
This reverts commit ba5518c9a53b6f2700c491af6d96b4ca9e70bb4d.

I was unaware that Contam had become *Contam... oops.

--------------------------------------------------------------------------------
ebc51a6798 | Jesse Luehrs | 2015-11-30 23:22:50 -0500

don't place ghosts in inaccessible areas
it's boring when a ghost spawns outside an enclosed level like
layout_cross or evilmike_geh

--------------------------------------------------------------------------------
3da3facf3f | Neil Moore | 2015-11-30 23:05:37 -0500

Give Zin penance warning when removing "dismissal.

--------------------------------------------------------------------------------
f50acb22cd | Nicholas Feinberg | 2015-11-30 19:56:59 -0800

Add a new artefact property: Fragile
Fragile artefacts are permanently destroyed when unequipped.
Something of a different take on the Contam/Drain mechanic; the
only penalty is the loss of the item, but the item is *gone*.
Harmless for bad artefacts, but could result in fun choices for
an otherwise-strong ring or weapon.

--------------------------------------------------------------------------------
ba5518c9a5 | Nicholas Feinberg | 2015-11-30 19:26:44 -0800

Rename *Drain -> Drain
It doesn't trigger randomly; it's more like Contam than it's like
*Confuse or *Corrode (or *Tele, etc.). This caused some confusion.

--------------------------------------------------------------------------------
1916458d91 | Steve Melenchuk | 2015-11-30 20:20:48 -0700

Shoehorn P altars into sprint maps.

--------------------------------------------------------------------------------
b56d89925f | Nicholas Feinberg | 2015-11-30 19:12:20 -0800

Tweak randart prop generation slightly
It's now slightly more likely for the last good prop generated to
be stacked (e.g. rF++); previously, this was very slightly less
likely than for good props added earlier.

This makes randarts empirically about 1% better.

--------------------------------------------------------------------------------
2cd13a6766 | Nicholas Feinberg | 2015-11-30 19:12:20 -0800

Don't add more than 2 bad props on a randart
Happened somewhat less often than one time in 27,272, empirically.
(But at least one time in 54544!)

Also improve a nearby comment.

--------------------------------------------------------------------------------
15cf1592f2 | Steve Melenchuk | 2015-11-30 19:00:35 -0700

Remove a hardcoded wrath string.
_god_wrath_name did not exist when I first wrote this code.

--------------------------------------------------------------------------------
9b3a94558c | Neil Moore | 2015-11-30 20:47:29 -0500

Simplify slightly.

--------------------------------------------------------------------------------
be26fc7ef3 | Steve Melenchuk | 2015-11-30 18:41:32 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
47e135b5ba | Steve Melenchuk | 2015-11-30 18:40:57 -0700

Work around the absence of a method in G++ 4.7 (|amethyst).

--------------------------------------------------------------------------------
e086a61d66 | Neil Moore | 2015-11-30 20:35:56 -0500

Give handle warnings when putting on known but unided jewellery.
We did not warn when wearing an unidentified (non-artefact) amulet of
dismissal, even if amulets of dismissal were known.

Non-artefact jewellery does not necessarily have ISFLAG_KNOW_TYPE;
instead, check item_type_known.

--------------------------------------------------------------------------------
a6d114dd3c | Nicholas Feinberg | 2015-11-30 17:32:57 -0800

Fix a subtle randart-gen bug (silentsnack)
"...for the (at most) 7.4% of the time it rolls to allow 5+
properties on a high-quality artifact, it actually discards
more properties than it should."

Also constify a few things.

--------------------------------------------------------------------------------
d236a925ac | Nicholas Feinberg | 2015-11-30 17:25:50 -0800

Remove some commented code
Leftover from development.

--------------------------------------------------------------------------------
ef795fe46e | Steve Melenchuk | 2015-11-30 18:19:17 -0700

Welcomes and penance welcomes for Pakellas.
Yes, there's a set. It's rather fitting.

--------------------------------------------------------------------------------
5ffdd3400d | Steve Melenchuk | 2015-11-30 18:14:03 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
2e6d385588 | Neil Moore | 2015-11-30 20:06:39 -0500

Don't crash when spectral Gyre kills itself on spines.
To reproduce the crash, create a hell sentinel (preferably paralysed or
otherwise immobile and with enough HP to survive stabs), wield Gyre,
cast Spectral Weapon, bring the SW down to 1 hit point, and attack the
sentinel.  After a few tries, the SW will be struck by spines, causing a
crash (or possibly a freeze, depening on the details of the heap
corruption).  The problem is that our unwind_var stores a reference to
the value of the ARTEFACT_NAME_KEY property, but resetting the item
or even adding a new property can invalidate that reference.

Use an unwinder rather than an unwind_var to restore the weapon's name
only if it is still the same weapon.

--------------------------------------------------------------------------------
73b1b47458 | Neil Moore | 2015-11-30 20:06:39 -0500

Add an RAII unwinder class to run a block of code on scope exit.
As well as a wrapper macro, so chequers doesn't have to look at lambdas
all day.

--------------------------------------------------------------------------------
a6c6fae528 | Neil Moore | 2015-11-30 20:04:57 -0500

Unbrace

--------------------------------------------------------------------------------
7452b62207 | Steve Melenchuk | 2015-11-30 17:51:26 -0700

Spark wasps only blinkbolt at long range.
They will thus blinkbolt largely as a means of closing the distance with
you, either at first contact or if you try to blink / haste / etc. away
from them.

--------------------------------------------------------------------------------
37b5911440 | Steve Melenchuk | 2015-11-30 17:45:43 -0700

MON_SPELL_SHORT_RANGE and MON_SPELL_LONG_RANGE.
These are spell slot flags that prevent a monster from using a spell
unless they are within or outside half the LOS radius (currently 3.5
tiles), respectively.

Nothing uses them at this exact moment, but one has an immediate
application and I have Plans(tm) for the other.

--------------------------------------------------------------------------------
69d797e14d | Steve Melenchuk | 2015-11-30 17:02:48 -0700

Reduce spark wasp weight in Depths; reduce band size.
<Grunt> !lg * current trunk depths s=cikiller
<Sequell> 169 games for * (current trunk depths): 19x a spark wasp,

They're meant to be dangerous, but not *that* dangerous, and I suspect
that the weighting was calibrated for a time when the spawn weights in
Depths were generally higher.

Weight is 100/SEMI down from 250/SEMI, and band size is now 2-4, down
from 3-6.

--------------------------------------------------------------------------------
d627cba3b1 | Pekka Lampila | 2015-12-01 00:38:09 +0200

Don't mention + as book selector in drop help screen. (|amethyst)
[skip ci]

--------------------------------------------------------------------------------
f304394f3d | Pekka Lampila | 2015-12-01 00:32:07 +0200

Show inv class selection shortcut, even if there is only one item.

--------------------------------------------------------------------------------
0adfe8ea3a | Pekka Lampila | 2015-11-30 22:50:35 +0200

Data-ify Elyvilon's passive ability.

--------------------------------------------------------------------------------
01132a3766 | Alan Malloy | 2015-11-30 11:34:48 -0700

Update comment to match relevant code

--------------------------------------------------------------------------------
18dbecd607 | Jesse Luehrs | 2015-11-30 11:48:01 -0500

restore space stripping in item descriptions

--------------------------------------------------------------------------------
6fc271a128 | Neil Moore | 2015-11-30 10:52:59 -0500

Restore some replacements.
replace_all, despite the name, does not modify its argument, but returns
a new string.

--------------------------------------------------------------------------------
e767d01afa | Shmuale Mark | 2015-11-30 10:25:58 -0500

Use coord_def in stash code.

--------------------------------------------------------------------------------
bc2cb360f9 | Shmuale Mark | 2015-11-30 08:42:32 -0500

Remove unused code for removing squares from stash tracking.

--------------------------------------------------------------------------------
3e6f61da18 | Shmuale Mark | 2015-11-30 08:42:29 -0500

Prevent manipulating items from search.
If someone wants to fix the bugs (for example, using a consumable doesn't
remove it from the search), that would work as well.

--------------------------------------------------------------------------------
629388fb6b | Corin Buchanan-Howland | 2015-11-30 07:42:46 -0500

Slightly de-spark some wasps
Blinkbolt is a very frustrating spell (particularly) when spammed, since
it deals damage while eradicating most attempts at positioning. I'm
decreasing the frequency of that spam to make monsters w/ BB a bit more
reasonable to fight.

--------------------------------------------------------------------------------
6d27b340be | Corin Buchanan-Howland | 2015-11-30 07:39:12 -0500

Change the channel on dismissal.

--------------------------------------------------------------------------------
e088ad17c7 | gammafunk | 2015-11-30 04:14:51 -0600

Give the Royal Jelly suitably royal case
This makes the unique have the name "the Royal Jelly" instead of "the
royal jelly", so that it's not the only unique with an all lower-case
name. RC file options are case-insensitive unless explicitly made
otherwise through use of regexp, so this shouldn't break any options,
but any lua code in your RC that does an explicit string matching to
"the royal jelly" will need to be updated to look for the new case.

This commit also cleans up usage of the name in all des files and
comments to be consistent with the new case.

--------------------------------------------------------------------------------
07f47d0989 | Neil Moore | 2015-11-30 03:52:54 -0500

Documentation tweak.
[skip ci]

--------------------------------------------------------------------------------
70ed6f7139 | Jesse Luehrs | 2015-11-30 03:48:55 -0500

add = prefix for forcing substring searches

--------------------------------------------------------------------------------
f5ef13c10e | Jesse Luehrs | 2015-11-30 03:33:42 -0500

clarify docs a bit

--------------------------------------------------------------------------------
2192874cce | Jesse Luehrs | 2015-11-30 03:33:42 -0500

these explicit methods are unnecessary (|amethyst)

--------------------------------------------------------------------------------
4d2330c39a | Jesse Luehrs | 2015-11-30 03:33:42 -0500

make the search highlight colour configurable

--------------------------------------------------------------------------------
47f388538b | Jesse Luehrs | 2015-11-30 03:33:42 -0500

c++11-ify (|amethyst)

--------------------------------------------------------------------------------
e005320907 | Jesse Luehrs | 2015-11-30 03:33:42 -0500

allow searching for "." or ".." even in plaintext mode
since these are called out in the docs explicitly

--------------------------------------------------------------------------------
1341e85be0 | Jesse Luehrs | 2015-11-30 03:33:42 -0500

update docs

--------------------------------------------------------------------------------
92834ca366 | Jesse Luehrs | 2015-11-30 03:33:42 -0500

add an option for regex search by default

--------------------------------------------------------------------------------
02bbc97144 | Jesse Luehrs | 2015-11-30 03:33:42 -0500

make ^F use plaintext search by default
you can do a regex search by prefixing your query with '/':

  "armour && /r(C|F|Pois|Elec)"

--------------------------------------------------------------------------------
5ba3a66f6a | Neil Moore | 2015-11-30 02:33:44 -0500

Only warn about "regen/dismissal on puton/takeoff (#10121)
We were giving the handle warning for dropping them, too.

--------------------------------------------------------------------------------
1945e83830 | Neil Moore | 2015-11-30 02:19:44 -0500

Refactor ghoul auto-eating.
I *think* the i_feel_safe call here is superfluous, but if there
is some situation where it is relevant, it should apply to ghouls
as well.

--------------------------------------------------------------------------------
32521d40d8 | Neil Moore | 2015-11-30 02:01:09 -0500

Fix indentation and braces, and simplify (chequers)

--------------------------------------------------------------------------------
504dfd0861 | gammafunk | 2015-11-29 23:47:19 -0600

Merge pull request #191 from drke2/patch-4
Differentiate sack of spiders and rod of the swarm
--------------------------------------------------------------------------------
906e5733e7 | Neil Moore | 2015-11-30 00:27:54 -0500

Don't crash when hurt by a non-monster source and wearing dismissal.
Dead monsters, self-attacks, etc.

--------------------------------------------------------------------------------
753c6e8c4f | Jesse Luehrs | 2015-11-30 00:16:27 -0500

annotate shop items for searching

--------------------------------------------------------------------------------
762fc0c2b4 | Jesse Luehrs | 2015-11-30 00:11:25 -0500

clean up the spacing a bit

--------------------------------------------------------------------------------
4e1029b63f | Jesse Luehrs | 2015-11-30 00:08:41 -0500

always prefix the searches with the item name

--------------------------------------------------------------------------------
6c9431f1fa | Jesse Luehrs | 2015-11-30 00:05:56 -0500

strip newlines when displaying search results, not always
we might want to use annotate_string in a situation where newlines are
actually desired.

--------------------------------------------------------------------------------
9fa1480cc1 | Björn Tegelund | 2015-11-30 13:56:30 +0900

Vampires can now drain entropy weavers
As written in https://crawl.develz.org/mantis/view.php?id=10070 : "Despite 
having a p ("humanoid") glyph and the tile of their corpse displaying red 
blood, entropy weavers cannot be used as a food source by player vampires."



This patch enables vampires to drain entropy weavers by adding M_WARM_BLOOD.
--------------------------------------------------------------------------------
6a131067ec | Jesse Luehrs | 2015-11-29 23:53:41 -0500

fix some spacing

--------------------------------------------------------------------------------
56f13bdb16 | Jesse Luehrs | 2015-11-29 23:47:37 -0500

use full description for books again
because searching for things like spell schools is useful

--------------------------------------------------------------------------------
4081cbf433 | Jesse Luehrs | 2015-11-29 23:43:43 -0500

restore item descriptions for non-inventory items

--------------------------------------------------------------------------------
782855d2d8 | Jesse Luehrs | 2015-11-29 23:35:28 -0500

initialize a variable

--------------------------------------------------------------------------------
d01eb8700f | Corin Buchanan-Howland | 2015-11-29 23:30:38 -0500

Flag randart dismissal amulets with *Contam (|amethyst)

--------------------------------------------------------------------------------
fddf074235 | Corin Buchanan-Howland | 2015-11-29 23:30:37 -0500

Regeneration amulet rots on removal
This amulet was ideally swapped in after every fight, and then swapped
back out at full HP. To prevent this tedious process from being optimal,
the amulet gets a penalty on removal: 2-7 hp rot.

--------------------------------------------------------------------------------
9948dc2b3d | Rahul Chandra | 2015-11-29 23:30:36 -0500

Allow ghouls to autoeat when rotted.
If a player uses auto_eat, they probably want to do so in a reasonable 
situation even if not provably optimal.  Ghouls missing HP would be such a 
situation.  A possible improvement/complication would be allowing the rcfile 
option to specify how rotted but that is probably not needed.

Signed-off-by: Corin Buchanan-Howland <corin@buchananhowland.net>

--------------------------------------------------------------------------------
00934cd3e4 | Corin Buchanan-Howland | 2015-11-29 23:30:35 -0500

Clean up amulet of dismissal (chequers)

--------------------------------------------------------------------------------
917f806927 | Jesse Luehrs | 2015-11-29 23:10:38 -0500

avoid "0 match" in stash search menu title

--------------------------------------------------------------------------------
eeb2130c14 | Jesse Luehrs | 2015-11-29 23:10:38 -0500

item_needs_autopickup should be false for inventory items

--------------------------------------------------------------------------------
87f9a8e087 | Jesse Luehrs | 2015-11-29 23:10:38 -0500

always show the base name first

--------------------------------------------------------------------------------
6297448877 | Jesse Luehrs | 2015-11-29 23:10:38 -0500

don't highlight on searches for "."

--------------------------------------------------------------------------------
63ea5429ad | Jesse Luehrs | 2015-11-29 23:10:38 -0500

highlight the matched part of item names when searching

--------------------------------------------------------------------------------
306374eed2 | Jesse Luehrs | 2015-11-29 23:10:38 -0500

add a method to return what part of a string matched

--------------------------------------------------------------------------------
6e0a474172 | Corin Buchanan-Howland | 2015-11-29 22:12:35 -0500

Make sure randart amulets of dismissal don't get Contam
Because they already do.

--------------------------------------------------------------------------------
3bded72bdf | Corin Buchanan-Howland | 2015-11-29 22:12:34 -0500

Amulet reform: make Cekugob an amulet of dismissal.
elliptic suggested that only relatively unique unique amulets should get
amulet of nothing as a basetype, and Cekugob seems like a fun amulet to
have dismissal.

--------------------------------------------------------------------------------
af5f4e4ca3 | Jesse Luehrs | 2015-11-29 21:47:50 -0500

restore menu colors in search results

--------------------------------------------------------------------------------
e0a1b35cea | Jesse Luehrs | 2015-11-29 21:17:09 -0500

also stop tracking number of matches in a search result
since it's not used for anything important anymore

--------------------------------------------------------------------------------
4f0ff341f1 | Corin Buchanan-Howland | 2015-11-29 21:02:45 -0500

Turn the amulet of warding into the amulet of dismissal
The amulet of warding was a ring of positive energy 90% of the time, and
only had a minor effect even when summons were present. It was generally a
filler amulet used only when no other amulets were available.

The amulet of dismissal has a 10% chance to teleport randomly any monster
which deals damage to you. It's still effective against summons, given that
a random teleport has a fair chance to effectively kill a summon via
timeout. It also has utility in a variety of other situations and for a
variety of characters. Removing the amulet causes yellow Contam, making
tactical swapping a poor choice.

--------------------------------------------------------------------------------
ac9935970e | Corin Buchanan-Howland | 2015-11-29 21:02:43 -0500

Amulet reform: remove amulet of mutation, replace with amulet of nothing
This is the first step in a series of amulet changes. The first aspect of
this specific piece is to remove the amulet of mutation. This amulet had two
problems: first, it almost completely protected from a rare threat, meaning
that it shut down that class of threat almost entirely. Second, because the
threat it protected against was rare, it was almost never useful to wear
this amulet, encouraging players to haul it around until it was useful to
swap in. Hopefully, removing it will force players to use tactics against
mutators more often, encouraging more interesting play overall.

The second piece of this is creating an amulet of nothing. This is important
for the rest of the reform project, as it will allow unique amulets to have
a base type that doesn't carry any special properties; without this, any time
a change was made to our least-interesting amulet (currently warding), all
the unique amulets that use that type would get a big functionality
change. The amulet of nothing will not spawn normally.

--------------------------------------------------------------------------------
4e21403a57 | Jesse Luehrs | 2015-11-29 20:03:08 -0500

remove the option to collapse search results by stash
this was only ever confusing when searching for items, and it made the
code quite a bit more complicated. searching for shops and such still
does collapse those as normal.

--------------------------------------------------------------------------------
47dbdd3067 | Pekka Lampila | 2015-11-30 00:49:50 +0200

Data-ify Lugonu's passive abilities.

--------------------------------------------------------------------------------
c16b489956 | Pekka Lampila | 2015-11-30 00:48:19 +0200

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
d7addecf25 | Jesse Luehrs | 2015-11-29 17:37:40 -0500

also chop formatted menu entries

--------------------------------------------------------------------------------
2aebd6844a | Jesse Luehrs | 2015-11-29 17:37:40 -0500

simplify

--------------------------------------------------------------------------------
e9eefb996b | Jesse Luehrs | 2015-11-29 17:37:40 -0500

ensure proper spacing between annotations and item names

--------------------------------------------------------------------------------
efffbc34a0 | Jesse Luehrs | 2015-11-29 17:37:40 -0500

wrap all extra annotations in {}

--------------------------------------------------------------------------------
6bd662563f | Neil Moore | 2015-11-29 17:24:43 -0500

List Ash boost in m screen at the correct piety level.
Identified in passives branch. This apparently wasn't changed when
skill boost was moved down.

--------------------------------------------------------------------------------
5f1ddaaadb | Neil Moore | 2015-11-29 13:33:40 -0500

Begin data-ifying passive divine abilities [WIP]
Add a new layer representing passive divine abilities, rather than
checking directly for specific gods and piety levels.  The idea is to
decouple abilities from specific gods, allowing the same abilities to
be used for randgods.

Ashenzari, Beogh, Cheibriados, and Dithmenos have been converted so far.

--------------------------------------------------------------------------------
de31b62de9 | Steve Melenchuk | 2015-11-29 08:54:33 -0700

Tag / slightly adjust float Crypt endings to get them to place better.
As discovered by johnstein and with the information from the previous
commit, most float Crypt endings don't play well with most layouts. So
three of the four are now ORIENT: north (or northwest), and have borders
filled in to prevent pockets of isolated rooms from being placed along
their edges.

layout_catacombs is also disabled on Crypt:$, as it never places
successfully there.

Caveat: this means that a grand total of one layout is now generally in
use for the non-encompass Crypt endings. This should be changed, either
by finding more layouts or by letting some layouts start generating from
exits.

--------------------------------------------------------------------------------
3a206a40e4 | Steve Melenchuk | 2015-11-29 08:45:34 -0700

Let mapstat report vetoes at the map level.
This is intended to debug the scenario where the vault itself places
successfully, but places in such a fashion that it causes the level to
veto frequently, thus making it less likely to place at all.

--------------------------------------------------------------------------------
0659a064ad | Pekka Lampila | 2015-11-29 16:24:25 +0200

Don't claim chunks in inventory have rotted in ^F (doy)

--------------------------------------------------------------------------------
2fb0649e84 | gammafunk | 2015-11-29 04:54:39 -0600

Fix mapstat when DEBUG_STATISTICS is defined (johnstein)
This mode previously worked fully only if DEBUG_DIAGNOSTICS was enabled
due to ifdefs relying on that define instead of DEBUG_STATISTICS.

--------------------------------------------------------------------------------
af408bd24d | Steve Melenchuk | 2015-11-28 21:26:04 -0700

Show weapons on iron giant tile (gammafunk).

--------------------------------------------------------------------------------
d48bc34e52 | Jesse Luehrs | 2015-11-28 21:52:07 -0500

cannot_fight should use is_firewood, not is_threatening

--------------------------------------------------------------------------------
bbe2579ee2 | Steve Melenchuk | 2015-11-28 18:54:13 -0700

Staticify.
This got lost in the shuffle somehow.

--------------------------------------------------------------------------------
cb4f62b7d9 | Steve Melenchuk | 2015-11-28 18:52:44 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
c86707eba3 | Steve Melenchuk | 2015-11-28 18:51:35 -0700

More pretentious 6* Pakellas title (DrKe).

--------------------------------------------------------------------------------
6b0f55fbe2 | Jesse Luehrs | 2015-11-28 19:25:04 -0500

Merge branch 'non-threatning'

--------------------------------------------------------------------------------
300888a242 | Neil Moore | 2015-11-28 19:15:58 -0500

Make c-c more picky (doy)
It now stops chopping on encountering the first inedible corpse, so
functions as a single-step version of 'e', much as 'y' is a single-step
version of 'a'.

--------------------------------------------------------------------------------
ffdd52f387 | Neil Moore | 2015-11-28 19:12:18 -0500

Don't make c-q take an extra turn to butcher.
It was returning early from the function, so not starting the first
delay until the next turn.  Now goto to the handle_delay check instead of
returning.

The goto could be avoided by instead putting the handle_delay check into
a finally block or a destructor.

--------------------------------------------------------------------------------
7db8f32103 | Pekka Lampila | 2015-11-29 02:06:40 +0200

Make wizmode &H get rid of stat loss and temp mutations.

--------------------------------------------------------------------------------
2f66f165c4 | Jesse Luehrs | 2015-11-28 18:57:38 -0500

battlespheres should also be threatening

--------------------------------------------------------------------------------
bb91ccdce9 | Jesse Luehrs | 2015-11-28 18:48:43 -0500

fulminant prism should be considered threatening

--------------------------------------------------------------------------------
324ec6bee3 | Jesse Luehrs | 2015-11-28 18:47:21 -0500

safe threatening monsters should not interrupt travel

--------------------------------------------------------------------------------
8bd5ab460d | Pekka Lampila | 2015-11-29 01:44:06 +0200

Clear ATTR_STAT_LOSS_XP when setting stats in wizmode. (#10119)
It cleared stat_loss vector, but not the XP required for recovery. This
would cause an assert to be hit when gaining XP.

--------------------------------------------------------------------------------
1766ef27a0 | ontoclasm | 2015-11-28 17:17:47 -0600

Fix wasp corpse tiles

--------------------------------------------------------------------------------
766413f042 | Jesse Luehrs | 2015-11-28 18:14:19 -0500

replace some more uses of mons_is_firewood with mons_is_threatening

--------------------------------------------------------------------------------
68d6e5203a | ontoclasm | 2015-11-28 16:47:00 -0600

Wasp tiles (ontoclasm)

--------------------------------------------------------------------------------
2ad6083697 | ontoclasm | 2015-11-28 16:46:59 -0600

Phantom mirror tile (CanOfWorms)

--------------------------------------------------------------------------------
736d20e91c | DrKe | 2015-11-28 14:12:30 -0800

Tweak Summon Swarm (rod of the swarm) distribution
Remove worker ants and give the weight to killer bee/scorpion. Reduce wasp

weight back down to 1 and add in river rats at weight 2. Remove worms.
--------------------------------------------------------------------------------
a4659664f5 | Steve Melenchuk | 2015-11-28 15:07:36 -0700

Fix a couple of changelog errors (MarvinPA, johnstein).

--------------------------------------------------------------------------------
3ba8b9eff9 | DrKe | 2015-11-28 14:07:25 -0800

Sack of Spiders distribution changes
Replace the low-end spawns with worker and soldier ants in a 1:2 ratio

and tweak the distribution to favor spiders a bit more.
--------------------------------------------------------------------------------
3794946481 | Steve Melenchuk | 2015-11-28 15:04:17 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
188127b898 | Steve Melenchuk | 2015-11-28 15:04:06 -0700

Changelog through 0.18-a0-346-ga0a4001.

--------------------------------------------------------------------------------
c5639a7978 | Jesse Luehrs | 2015-11-28 17:00:02 -0500

allow targeting threatening firewood
active ballistos, for instance

--------------------------------------------------------------------------------
951592ece6 | Jesse Luehrs | 2015-11-28 16:43:44 -0500

formatting

--------------------------------------------------------------------------------
a0a4001757 | Chris Campbell | 2015-11-28 21:41:18 +0000

Fix spacing

--------------------------------------------------------------------------------
0c7a80b8fa | Chris Campbell | 2015-11-28 21:41:18 +0000

Simplify vampire aux bite behaviour
Don't give it varying probabilities to actually get the vampiric effect
depending on hunger state. Instead have it always be vampiric at Thirsty and
below, and never be vampiric otherwise. This also matches the old behaviour of
the effect when triggering on stabs (and fixes the weird but probably never
noticeable interaction where stabbing at satiated or above meant you couldn't
then get an aux vampiric attack, instead of the 1/4 chance you'd have on
non-stabs).

Also removes bite accuracy bonuses (depending on hunger state) and batform aux
bites getting reduced healing and nutrition.

--------------------------------------------------------------------------------
7910ded602 | Chris Campbell | 2015-11-28 21:41:18 +0000

Don't mark vampire bat melee as vampiric on the weapon line
It's not actually any more vampiric than regular vampire melee, and generally
nothing like regular vampiric-branded weapons, since it's only vampiric on
stabs and (some) aux bite attacks.

--------------------------------------------------------------------------------
5fc011381f | Chris Campbell | 2015-11-28 21:41:18 +0000

Fix vampires in batform not getting their vampiric bite attack
Their fangs were suppressed, so they never triggered the vampiric aux effect
(except when stabbing).

--------------------------------------------------------------------------------
a1412cabfe | Steve Melenchuk | 2015-11-28 14:30:49 -0700

Allow butching (e)dible corpses only via 'ce'.

--------------------------------------------------------------------------------
b806c12aa9 | Jesse Luehrs | 2015-11-28 16:22:22 -0500

only active ballistos should be threatening

--------------------------------------------------------------------------------
f40eaeb4ca | Jesse Luehrs | 2015-11-28 16:22:22 -0500

don't goldify summons, etc

--------------------------------------------------------------------------------
fed1ef12b8 | Jesse Luehrs | 2015-11-28 16:22:17 -0500

restore threat level of a couple more monsters

--------------------------------------------------------------------------------
44af4ee69e | Jesse Luehrs | 2015-11-28 15:50:10 -0500

only show the zero-xp hints for firewood
the actual tutorial text talks about non-moving monsters and such

--------------------------------------------------------------------------------
0abf88274c | Alan Malloy | 2015-11-28 15:46:44 -0500

Use mons_is_threatening (|amethyst)

--------------------------------------------------------------------------------
2acaf64d70 | Alan Malloy | 2015-11-28 15:46:44 -0500

Add mons_is_threatening

--------------------------------------------------------------------------------
995114babb | Alan Malloy | 2015-11-28 15:46:44 -0500

Un-revert a monster-threatening check (|amethyst again)

--------------------------------------------------------------------------------
91d629c280 | Alan Malloy | 2015-11-28 15:46:44 -0500

Revert some checks back to mons_gives_xp (|amethyst)

--------------------------------------------------------------------------------
16af70f1e5 | Alan Malloy | 2015-11-28 15:46:44 -0500

Distinguish between 0-xp monsters and non-threatening ones
Probably needs some tuning on what counts as non-threatening, and
perhaps some of the cases where I changed (or didn't change) the
mons_class_gives_xp checks were wrong too.

--------------------------------------------------------------------------------
e36602d20b | Steve Melenchuk | 2015-11-28 13:40:39 -0700

P hates Sublimation of Blood (elliptic).
Previously this renewable form of channeling was covered under P hating
spellcasting, and now it is not.

--------------------------------------------------------------------------------
22fdc01e18 | Jesse Luehrs | 2015-11-28 15:37:36 -0500

appease checkwhite

--------------------------------------------------------------------------------
d9eaaf78d0 | Steve Melenchuk | 2015-11-28 13:11:15 -0700

Use two thirds of your current MP pool for Quick Charge (elliptic).
This implicitly makes it two thirds as effective, but also allows
abilities or evokers that need MP to use to be used immediately
afterwards.

Two thirds is the same as the MP hit you take for wielding an anti-magic
weapon, if you are curious.

--------------------------------------------------------------------------------
1ab50136cf | Steve Melenchuk | 2015-11-28 13:03:47 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
25ad1d8ca6 | Chris Campbell | 2015-11-28 18:23:54 +0000

Fix Xom chess pieces not being marked as dangerous for Xom worshippers
Since it can now trigger bad Xom actions for them (as well as for everyone
else).

--------------------------------------------------------------------------------
1c8d873ccb | Steve Melenchuk | 2015-11-28 10:20:59 -0700

Finish removing the tiles from code for Drain/Sap Magic.

--------------------------------------------------------------------------------
274a74df48 | Steve Melenchuk | 2015-11-28 10:19:18 -0700

Supercharging a wand increases its capacity to 50% above normal.
As in, permanently increases its capacity.

This has the effect of making Quick Charge more useful on the wand, and
thereby should make choosing a wand for a supercharge a significantly
more attractive option.

--------------------------------------------------------------------------------
d825d8eb2e | Steve Melenchuk | 2015-11-28 09:55:33 -0700

Base Quick Charge efficiency on unadjusted max MP.
As elliptic has pointed out, prior to this a Deep Dwarf could drain
their max MP down to 5 or so and thereby quick charge more efficiently
more often.

I'm also deliberately not counting MP+ items in this so that wielding or
wearing an item does not impact the ability.

--------------------------------------------------------------------------------
67bb43f9e7 | Steve Melenchuk | 2015-11-28 09:44:34 -0700

Show MP costs of P's abilities.
They are variable MP costs and therefore didn't show up.

Device Surge shows "MP"; Quick Charge shows your current MP (or 1 MP if
you have no MP to indicate that you can't use it right now).

--------------------------------------------------------------------------------
f3ac4207fc | Steve Melenchuk | 2015-11-28 09:42:01 -0700

Remove Pakellas' Drain Magic and Sap Magic.
No longer thematic, and in practice rarely if ever used.

This reverts commit 27258d8adae09490e20a6a76beb85e92d5afd88d.
This reverts commit 5c4b8c35c0f6efa0a67ed460e3b9a49fe4f30d4c.

--------------------------------------------------------------------------------
d6186a28b6 | Steve Melenchuk | 2015-11-28 09:35:57 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
94aee7d486 | Steve Melenchuk | 2015-11-28 09:30:56 -0700

Let builder/mapstat detect exits from Hells into vestibule as stairs.
The levels were/are valid.

Two disconnection checks were being performed: one in the builder before
the stairs were changed into Hell portals, and one in mapstat after the
stairs were changed into hell portals, thus showing up as not having any
stairs and thinking the area is disconnected.

Lets Dis:7 iron_city_of_dis vaults and Tar:7 tar_grunt not break
mapstat.

--------------------------------------------------------------------------------
383bdfbc87 | Neil Moore | 2015-11-28 04:08:28 -0500

Don't implicitly convert between random_var and int.
Require calling .roll() to convert a random_var to an int; and an
explicit constructor call or direct (not copy-) initialization to
convert an int to a random_var.

Fix a minor bug revealed by this change: monster::attack_delay with a
speed brand weapon rolled a number before scaling by 2/3, because the
operand order resulted in using int's operator* rather than
random_var's.

Finally, remove the constant(n) function, as it was just a less-specific
alias for random_var(n).

--------------------------------------------------------------------------------
123530347c | ontoclasm | 2015-11-27 22:10:50 -0600

Correct rod icons

--------------------------------------------------------------------------------
513f945b5a | Chris Campbell | 2015-11-28 00:53:34 +0000

Don't allow Control Undead or Simulacrum under sacrifice love (#10117)

--------------------------------------------------------------------------------
e9b6682c72 | John Boyle | 2015-11-27 19:47:54 -0500

adjust pakellas shop weightings
after some discussion in ##crawl-dev:
removed the any misc chance
removed greed
gave the basic wands a couple charges
reduced weighting on basic wands (9/10 now)
allowed any wands to spawn with normal charges

--------------------------------------------------------------------------------
1482ce0db8 | John Boyle | 2015-11-27 19:32:29 -0500

add new P altar vault with shop
almost always gives a basic wand (frost, flame, darts)
There's a very small chance of any wand and a tinier chance of any misc.
All wands have 0 charges
With the greed:2000, the 0 charge basic wands are 100-250 gold, but the
nicer wands are much more expensive. So even if they show up, players
will probably not have the money to afford them (or the misc items).

--------------------------------------------------------------------------------
f53372f35c | John Boyle | 2015-11-27 19:32:29 -0500

add a P overflow altar vault
a wand of digging with a single charge with a transparent rock wall that
hides a P altar.
I wasn't sure if this was against the rules for an overflow vault, but
seems like the player has a very clear choice on whether to use the wand
to get to the altar, or take it (and recharge it the hard way later).

--------------------------------------------------------------------------------
d6dc093568 | John Boyle | 2015-11-27 19:30:52 -0500

add a Pakellas overflow altar vault
2/3 chance of a wand with 0 charges
(occasionally will spawn a kobold with a wand with 1 charge)
3/10 chance of a troll corpse (early troll hide chance)
Only low-level wands with corpses (frost, flame, m. darts)
A dash of blood was sparingly used for thematic effect.
The walls vary in material, sorta referencing the blinking P altar.

--------------------------------------------------------------------------------
cc2b19289a | Steve Melenchuk | 2015-11-27 17:22:08 -0700

Update some tags on the P overflows.
no_{h,v}mirror is due to |amethyst. interest_check was originally
intended but missed on the first commit.

--------------------------------------------------------------------------------
58a8fbeeb7 | Chris Campbell | 2015-11-28 00:19:55 +0000

Remove worship/penance interactions from Xom chess pieces
Behaving differently depending on whether you worship Xom or are in penance
might be good flavour but isn't a good gameplay mechanic.

--------------------------------------------------------------------------------
a19a39de44 | Chris Campbell | 2015-11-28 00:19:55 +0000

Remove net immunity from oozes
It'd probably be justifiable flavour-wise to give all jellies immunity but
that'd be a slightly bigger gameplay change and doesn't seems especially
necessary.

--------------------------------------------------------------------------------
5d9fcdf207 | Chris Campbell | 2015-11-28 00:19:55 +0000

Slightly reduce the cap on stat bonuses from randarts
Very high stat bonuses previously ended up being a bit too common. Randarts can
now still reach really high values, but +10 is the highest possible.

--------------------------------------------------------------------------------
78c332e136 | Steve Melenchuk | 2015-11-27 17:18:13 -0700

Some basic, purely decorative P overflow altar designs.
Raise your hand if you understand where they came from!

--------------------------------------------------------------------------------
15bd2cd16b | Steve Melenchuk | 2015-11-27 17:02:30 -0700

Update P's lugonu_bribe (MarvinPA).

--------------------------------------------------------------------------------
6957ae71a5 | Steve Melenchuk | 2015-11-27 17:01:03 -0700

Halve rate of P MP-on-kills.
It's been challenging to stay in a state that isn't zero MP or full MP,
which isn't desirable.

--------------------------------------------------------------------------------
9c61079ab1 | Steve Melenchuk | 2015-11-27 16:59:42 -0700

Increase P's gift timeout by 50%.
It wasn't adjusted to account for the increase in rate of piety gain,
and having 5-6 rods by the end of the game is silly.

This rate of gifting may still be too high - we shall see.

--------------------------------------------------------------------------------
a3f79b7c70 | Steve Melenchuk | 2015-11-27 16:57:03 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
5e2b89e043 | Edgar A. Bering IV | 2015-11-27 17:39:34 -0600

Add tiles for Xom's chesspieces (CanOfWorms)

--------------------------------------------------------------------------------
c823a84c3e | Neil Moore | 2015-11-27 18:16:01 -0500

Adjust sacrifice_piety marshalling.
For one, only marshall/unmarshall the entries corresponding to sacrifice
abilities, not all NUM_ABILITIES entries (so we use 19 bytes, not 1503).

More importantly, marshall the number of entries.  Otherwise, a change
to NUM_ABILITIES (or, now, to ABIL_FINAL_SACRIFICE) would cause errors
on unmarshalling.  Handle changed NUM_ABILITIES when transferring from
both the previous and current tags.

--------------------------------------------------------------------------------
aba80f3ae6 | Neil Moore | 2015-11-27 16:51:15 -0500

Ignore .prf char choice when tab-selecting hints/tutorial.
We kept the job/species defined in the .prf file, despite offering the
hints mode character choice prompt.  That led to getting hints messages
for the chosen character despite actually being the remembered
character.

It might be better to skip the prompt and use the settings from the .prf
file to select the HINT_*_CHAR, so that tab actually remembers the
previous selection.  But we'd need to decide what to do if the prefs
file has something that is not one of the three valid hints characters.

--------------------------------------------------------------------------------
7cf50c46ab | Neil Moore | 2015-11-27 16:51:15 -0500

Write hints mode to ng-start.prf (#10115)
Rather than type = none, which caused a crash.

There is still a problem in that using tab to repeat a hints-mode game
will still ask you to choose a character, but then goes and uses the
remembered choice instead.

--------------------------------------------------------------------------------
5b4d444563 | Pekka Lampila | 2015-11-27 23:38:07 +0200

Make sure seal doors usability check does nothing.

--------------------------------------------------------------------------------
bfe2a8ba83 | Pekka Lampila | 2015-11-27 23:34:57 +0200

Fix seal rune casting message being duplicated.

--------------------------------------------------------------------------------
b1de508906 | Neil Moore | 2015-11-27 13:59:08 -0500

Disable confirmations in fsim.
Otherwise we would give an invisible prompt about attacking barehanded.

--------------------------------------------------------------------------------
77bbef5e15 | Neil Moore | 2015-11-27 13:58:13 -0500

Scale Throwing, not UC, when throwing with &F.

--------------------------------------------------------------------------------
62c040fb69 | Pekka Lampila | 2015-11-27 20:15:49 +0200

Match items in inventory with carried and inventory keywords.

--------------------------------------------------------------------------------
f01647371b | Neil Moore | 2015-11-27 13:01:34 -0500

Exclude inventory from current-level stash searches.

--------------------------------------------------------------------------------
fe90d9bf23 | Neil Moore | 2015-11-27 12:43:43 -0500

Don't add an extra 5-aut delay to monster weapon attacks (bsdbeard)
Introduced in 0.18-a0-72-g2733cf4.

--------------------------------------------------------------------------------
9a90bd9846 | Neil Moore | 2015-11-27 10:36:05 -0500

Don't shadow a member.

--------------------------------------------------------------------------------
825dae7751 | Jesse Luehrs | 2015-11-27 10:28:25 -0500

allow autotargeting of no-xp but dangerous monsters
crawling corpses, lost souls, etc

--------------------------------------------------------------------------------
83a8755114 | Shmuale Mark | 2015-11-27 09:06:56 -0500

Try to fix #10109.

--------------------------------------------------------------------------------
afa5e9db34 | Jesse Luehrs | 2015-11-27 03:38:15 -0500

add a command listing doc organized by keystroke

--------------------------------------------------------------------------------
68e13a15cb | Jesse Luehrs | 2015-11-27 03:21:52 -0500

give proper unconstricting messages when teleporting a monster away
previously you would see "something loses its grip on you"

--------------------------------------------------------------------------------
1421722045 | ontoclasm | 2015-11-27 01:29:52 -0600

Elemental tiles (ontoclasm)
I might change these later; I'm not entirely happy with them.

--------------------------------------------------------------------------------
f882de54da | Shmuale Mark | 2015-11-26 22:38:46 -0500

Merge pull request #187 from edsrzf/fix-typos
Fix a couple typos
--------------------------------------------------------------------------------
218144349b | Jesse Luehrs | 2015-11-26 22:37:39 -0500

add some more aliases for ^F for resistances

--------------------------------------------------------------------------------
b8561529f4 | Evan Shaw | 2015-11-27 16:32:54 +1300

Fix a couple typos

--------------------------------------------------------------------------------
5843ff95b3 | Nicholas Feinberg | 2015-11-26 19:21:21 -0800

Fix Entropy Weave display (Someone Awful!)
It's not resistible, so it shouldn't claim to be in the monster
description screen.

--------------------------------------------------------------------------------
3e42dbe98a | Steve Melenchuk | 2015-11-26 19:55:40 -0700

Fix P ^ screen likes/dislikes.

--------------------------------------------------------------------------------
c27a508adc | Steve Melenchuk | 2015-11-26 19:55:00 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
61bb5a55c1 | Shmuale Mark | 2015-11-26 21:54:36 -0500

Replace a min with a max.
This should be the last of your regularly scheduled game-breaking bugs.

Have a nice day!
--------------------------------------------------------------------------------
d0de26f4cd | Steve Melenchuk | 2015-11-26 19:51:06 -0700

Emergency mutation enum swap (#10110).
0.18-a0-295-gde09be2 inserted a mutation enum into the middle of a list.
This broke saved games saved before then loaded into trunk.

THIS WILL BREAK GAMES THAT HAVE STARTED AFTER THEN. There's no way to
fix those except by hand somehow.

--------------------------------------------------------------------------------
a4090d0b00 | Jesse Luehrs | 2015-11-26 21:17:35 -0500

remove this assert for now, since it fails in weird conditions
not sure what's going on, but it shouldn't actually cause problems -
it's likely just me not understanding how the monster ai code works well
enough

--------------------------------------------------------------------------------
dd6c97d57f | Steve Melenchuk | 2015-11-26 18:48:06 -0700

Apply evocations boosters to Xom's chess pieces.

--------------------------------------------------------------------------------
df933d3fbe | Jesse Luehrs | 2015-11-26 20:47:26 -0500

stop redrawing the screen every time you get stuck in a web

--------------------------------------------------------------------------------
6c8f4817e3 | Steve Melenchuk | 2015-11-26 18:46:03 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
3805d8e3fc | Jesse Luehrs | 2015-11-26 19:53:39 -0500

fix monster pathfinding (10104)

--------------------------------------------------------------------------------
a69027b76f | elliptic | 2015-11-26 19:38:01 -0500

Let players leave the dungeon again.
The exit was a lie.

--------------------------------------------------------------------------------
ffb45c5996 | Shmuale Mark | 2015-11-26 18:03:12 -0500

Clarify Talos description.

--------------------------------------------------------------------------------
e7f3bbddda | Pekka Lampila | 2015-11-27 00:29:20 +0200

Remove annotation when runed door is disintegrated.

--------------------------------------------------------------------------------
fd5483df42 | Pekka Lampila | 2015-11-26 23:48:49 +0200

Fix updating exclusions after terrain changed out of LOS. (#6666)
The MAP_CHANGED_FLAG was lost when square came into LOS, before it was
used in player_view_update().

--------------------------------------------------------------------------------
5f8e272218 | Pekka Lampila | 2015-11-26 23:47:20 +0200

Break up a long line.

--------------------------------------------------------------------------------
5aad1a2783 | Corin Buchanan-Howland | 2015-11-26 15:38:47 -0500

Remove an unneeded key

--------------------------------------------------------------------------------
f0229d1895 | Corin Buchanan-Howland | 2015-11-26 15:36:55 -0500

Make Ru piety determined on offer (elliptic)
Now that Ru piety gives a prediction of what your piety will be after
making a given sacrifice, we need to ensure it's always the same. We
do this by calculating the piety for each sacrifice at the time it is
offered, and then storing that value.

The skill point-derived piece of sacrifice piety is still calculated
at the time when the player checks the sacrifice value, as the number
of skill points can change after the sacrifice is first offered, which
we can do because the math on skill points is deterministic.

--------------------------------------------------------------------------------
d731100b26 | elliptic | 2015-11-26 14:24:44 -0500

Don't let Robin try to throw goblins through statues (qw).
What was happening here is that the beam used is from the thrower to the
target, but the code was instead checking for line of fire from the throwee
to the target. This could cause an advance/regress infinite loop with the
ray trying to pass through a statue.

--------------------------------------------------------------------------------
4400e91518 | Shmuale Mark | 2015-11-26 13:29:17 -0500

Remove unused descriptions/quote.

--------------------------------------------------------------------------------
b97667a422 | Nicholas Feinberg | 2015-11-26 10:14:11 -0800

Fix mirror/zigfig interaction (WorldFamousWhore)
Is a nested switch/case merely twice as bad as a normal one, or
does it become quadratically worse?

--------------------------------------------------------------------------------
243ab75089 | Neil Moore | 2015-11-26 12:40:46 -0500

Unbrace, and rearrange in one case.
Rather than adding braces around the _find_square_wrapper call, use
the short-circuiting behaviour of || .

--------------------------------------------------------------------------------
af866f8ba5 | Neil Moore | 2015-11-26 12:34:17 -0500

Fix up bad stash-searched inventory slots on load (yottam)
0.18-a0-290-gf199c8b fixed the bug but did not correct already-corrupted
inventory.

--------------------------------------------------------------------------------
de09be2ee2 | Shmuale Mark | 2015-11-26 12:34:08 -0500

Merge pull request #170 from alexjurkiewicz/ds-er-mut
Add sturdy frame mutation (infinitevox).
--------------------------------------------------------------------------------
57d255f52f | Nicholas Feinberg | 2015-11-26 09:20:55 -0800

Zigfig tile (ontoclasm)
Also ty to canofworms.

--------------------------------------------------------------------------------
59e3651d60 | Shmuale Mark | 2015-11-26 12:14:19 -0500

Constify.
It saves lives\!

--------------------------------------------------------------------------------
38fe2f1774 | Nicholas Feinberg | 2015-11-26 09:05:09 -0800

Fix monster shatter

--------------------------------------------------------------------------------
f199c8b0f5 | Shmuale Mark | 2015-11-26 12:04:02 -0500

Don't modify items in inventory during search (yottam).

--------------------------------------------------------------------------------
35c3a759c2 | Edgar A. Bering IV | 2015-11-26 11:55:19 -0500

Correctly mark abyss.enter milestone
Previously the milestone was marked before the player entered the
abyss, so that place and oplace were the same (where banished from).
Now we mark after doing the floor_transition, so that place will
have the Abyss depth and oplace will be where from.

--------------------------------------------------------------------------------
068ac98dd2 | Edgar A. Bering IV | 2015-11-26 11:40:19 -0500

Xom and Miscast banishment power.
Xom and miscasts now work on XL for determining banishment depth.
This also means that Zot traps use XL for determining depth, as Zot
trap banishment is just a miscast.

--------------------------------------------------------------------------------
6107383362 | Edgar A. Bering IV | 2015-11-26 11:40:17 -0500

Track power of successful banishment.
Includes a stub for selecting how deep to send a player.
Vary banishment depth on power. Currently banisher HD is used
for power; the specific formula probably needs some tweaking
or balance.

--------------------------------------------------------------------------------
09e009602f | Edgar A. Bering IV | 2015-11-26 11:38:55 -0500

Refactor take_stairs. Refactor banished()
Split into two functions.

One private to stairs.cc that determines
if the player can actually walk on some dungeon stairs at a position
and figures out where those stairs go.

The other does the actual business of moving the player, set up and teardown,
etc. We then use this in banished() instead of going down an abyss entrance.

There are probably other places that can take advantage of this refactor.

--------------------------------------------------------------------------------
6cd7edabec | Shmuale Mark | 2015-11-26 11:34:30 -0500

Add argonaut to the mailmap.

--------------------------------------------------------------------------------
f2e9632f6d | Shmuale Mark | 2015-11-26 11:27:53 -0500

Fix an unescaped { in a regex.

--------------------------------------------------------------------------------
17a9b441ef | Edgar A. Bering IV | 2015-11-26 11:27:51 -0500

Terrible programmer art for a Xom chess piece.

--------------------------------------------------------------------------------
b0049f2d46 | Edgar A. Bering IV | 2015-11-26 11:27:50 -0500

Pieces from Xom's Chessboard.
Create an item that when evoked has Xom Rearrange the Pieces,
with a check against evocations skill to instead just draw a bad
Xom action. Followers of Xom are immune from this check. The effect
is sufficiently double-edged that, with the added chance of a bad
Xom action, spamming this item to confuse everything in sight will
probably get the player killed instead. The severity of the bad
Xom action might need a minimum higher than zero.

As a further protection against spamming it's got a small chance
of disappearing (being taken back by Xom).

Acquires at the same weight as Box of beasts. Has a chance to be
given to a wanderer on game start.

--------------------------------------------------------------------------------
f624cf1eaa | olowin | 2015-11-26 11:27:47 -0500

The armour of Talos.

--------------------------------------------------------------------------------
9b1eddc717 | olowin | 2015-11-26 11:27:46 -0500

The armour of Talos, Ogre/Troll sized plate armour.

--------------------------------------------------------------------------------
b13830c456 | nicolae | 2015-11-26 11:27:44 -0500

Adds the unrand axe Frostbite, a +8 exec axe of freezing clouds
the +8 frozen axe "Frostbite" {freezing cloud, *Noise +Fly rC+}. Base type is
executioner's axe. Has a 20% chance of leaving a short-lived (3-5 turns)
freezing cloud on a monster on a successful hit. Has blizzard-and-ice themed
noises. Comes with two terrible placeholder tiles.

--------------------------------------------------------------------------------
7118601d8c | Jesse Luehrs | 2015-11-26 11:14:32 -0500

try to target guaranteed-hit monsters first (10103)

--------------------------------------------------------------------------------
85a5a85991 | Jesse Luehrs | 2015-11-26 11:14:32 -0500

this should just use monster_near_iterator

--------------------------------------------------------------------------------
24d89a9301 | Shmuale Mark | 2015-11-26 10:20:32 -0500

Add documentation for confirm_action, tweak prompt.

--------------------------------------------------------------------------------
84007457b5 | Sandman25 | 2015-11-26 10:20:30 -0500

New option "confirm_action"

--------------------------------------------------------------------------------
c62a03944c | Shmuale Mark | 2015-11-26 10:20:28 -0500

Don't show a 0-entry menu when trying to view a feature in ^F.

--------------------------------------------------------------------------------
f1744012b1 | Shmuale Mark | 2015-11-26 10:20:27 -0500

Fix issues with the previous patch.

--------------------------------------------------------------------------------
76bfffbcc2 | Chris Oelmueller | 2015-11-26 10:20:25 -0500

List items in player inventory in Ctrl-F output (#6355)
Show carried items matching the search on top of Ctrl-F output.
Instead of the stash location string, they will show "(carried)".

 a - (carried) a +3 ring of protection
 b - [Zig:1] a shiny ring mail

Attempting to travel to location of carried items from Ctrl-F will open
the current level map and move the cursor onto the player's glyph, i.e.
their location at this moment.
Examining carried items does not yet work flawlessly. It seems to show
the travel map (which is pretty useless, see above) after pressing Esc
on the item description screens.

--------------------------------------------------------------------------------
e012a39415 | Steve Melenchuk | 2015-11-25 22:13:37 -0700

Don't turn Shoals rune mimics into actual runes (#10100).
We use dgn_map_parameters to pass tags to maps that are placed in Lua,
but dgn_map_parameters also serves other various purposes, notably
from the primary vault passing information to the layout about if the
layout needs to place around a central vault. Minivaults don't do this.

The catch is: successive calls to dgn_map_parameters stack.

So if the Lua hook for placing another vault is in a primary vault, the
first tag in map_parameters is either empty or "central", and the
*second* tag is the map tag.

Alternate solution: remove rune mimics?

--------------------------------------------------------------------------------
a9d907f954 | Nicholas Feinberg | 2015-11-25 20:42:17 -0800

Don't misreport hex chances for high ench power
Specifically, when the power would be over the 200-power cap.

Not sure if this happened in practice.

--------------------------------------------------------------------------------
1bbd46e91b | Nicholas Feinberg | 2015-11-25 19:57:30 -0800

Revert "remove ^S for quick save"
Jumping the gun. We can always remove it when we have a specific
need for another keybinding; until then, there's no reason to
disrupt players' flow.

--------------------------------------------------------------------------------
2999e76ba0 | gammafunk | 2015-11-25 19:47:48 -0600

Some cleanups for gammafunk_depths_water_palace
This removes any monsters from the vault that don't place in Depths
natively (either on land or water). The new monster lists feature more
dragons and giants in the water areas and adds some of the more recent
additions to the Depths bestiary. The vault now only place the
Enchantress 1/3 of the time, placing an iron giant band 2/3 of the time,
and falls back to an iron giant band if the enchantress has already
placed. This commit also removes the restriction against placing on
Depths:1.

--------------------------------------------------------------------------------
e7f815ed07 | Shmuale Mark | 2015-11-25 20:17:50 -0500

Merge pull request #185 from alexjurkiewicz/disto-effect
Simplify distortion_affects_defender.
--------------------------------------------------------------------------------
767dbb077e | Steve Melenchuk | 2015-11-25 17:04:41 -0700

Lower the piety costs of Quick Charge and Device Surge.
Anyone using the abilities on any semi-frequent basis was having a
difficult time staying above 3* or 4*, which seems bad.

Device Surge is now costed similarly to Major Destruction, which seems
appropriate; Quick Charge now has the piety cost of Heroism (though will
be usable considerably less often based on the MP cost).

As for Sap/Drain Magic, they may be going away soon, so they're
untouched by this.

--------------------------------------------------------------------------------
85378a2ccc | Steve Melenchuk | 2015-11-25 17:01:07 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
7d804c3e21 | Shmuale Mark | 2015-11-25 16:32:22 -0500

Merge pull request #186 from jmbjr/js_fixup_vaults
Tweak several branch end vaults
--------------------------------------------------------------------------------
5b84d25854 | John Boyle | 2015-11-25 16:27:50 -0500

tweak several branch end vaults
Modifications based on observations during t0.17

Snake: Deadliest snake rune vault in t.
Reduced chance of guardian serpents and mana vipers.
Also slightly reduced chance of Vashnia appearing.

Spider: Current versions are pretty, but feel lacking.
Added Entropy Weaver and Spark Wasp as potential "Bosses"
Added Entropy Weaver as a Torpor Snail alternative.

Swamp:
Tweaked hydra and bog body weights
Replaced Spriggan Druid with Spriggan Berserker.
(a berserker feels like a more interesting choice than druid)

Vaults: Too many corridors to hide in
Widened hallways. Left loot and monsters the same.

--------------------------------------------------------------------------------
c2f3b4b371 | pubby | 2015-11-25 15:36:36 -0500

Buff shafting.
Taking known shafts now has a 2/3 chance of shafting one floor and 1/3 chance
of shafting two. Unknown shafts still have an equal chance of shafting one,
two, or three floors. Note that shafting is still unreliable/risky with
this commit.

[simplified code --wheals]

--------------------------------------------------------------------------------
e40685ddf5 | pubby | 2015-11-25 15:35:45 -0500

Change Fo throwing aptitude from -2 to 0.
The original implementation of Formicids were able to throw large rocks.
For balance reasons they had -2 throwing to balance this ability.
Now that Formicids can't throw large rocks, it makes sense for them to
have 0 throwing.

--------------------------------------------------------------------------------
1425b752a8 | Shmuale Mark | 2015-11-25 15:29:06 -0500

Fix the argument to enable clang LTO (geekosaur).
According to release notes, -O4 hasn't implied LTO since 3.3.

--------------------------------------------------------------------------------
ac91816716 | Shmuale Mark | 2015-11-25 13:38:17 -0500

Correct save compat (|amethyst).

--------------------------------------------------------------------------------
66e9510691 | Neil Moore | 2015-11-25 13:34:50 -0500

Make \ into a three-way toggle.
This should make it more clear that there are three states, and that the
default is not the same as forcing autopickup in one direction or another.
This is more noticeable now with the default autopickup of items that
stack with inventory (particularly ammunition, where the brand means
that items controlled by the same known-menu entry can have different
autopickup status).

The Ctrl-d key is retained.

--------------------------------------------------------------------------------
63fd0a8fb9 | Neil Moore | 2015-11-25 13:34:50 -0500

Unbrace.
[skip ci]

--------------------------------------------------------------------------------
ba3e5b5996 | Shmuale Mark | 2015-11-25 13:32:46 -0500

Save compat for ziggurat changes.
To prevent old saves from being locked out from doing any zigs,
a figurine will be generated if you load an old save and go to Tomb:3.

--------------------------------------------------------------------------------
ee49ebdbfe | Shmuale Mark | 2015-11-25 12:29:33 -0500

Put a zigfig on Tomb:3.
There was concern that you can currently dip into the Depths zig
for some early loot/XP without getting locked out of the megazig
minigame entirely, but not having infinite parallel zigs would ruin
that. Thus this lets you do that and still have infinite zigs.

I'm still not happy with the solution. Maybe there should be lua
magic to place it randomly in Tomb:3 or a Hells:7, to mix it up more?
Or is there a better approach entirely to removing scumming Pan for
zigs?

Also makes them stackable, since you can actually have two at once now.

--------------------------------------------------------------------------------
c71f46c5de | Nicholas Feinberg | 2015-11-25 11:44:44 -0500

Tweak zigfig description

--------------------------------------------------------------------------------
435b6e7d97 | Shmuale Mark | 2015-11-25 11:44:42 -0500

Remove ziggurats from Pan.
Now that you can get as many as you want as long as you can survive
until Zig:27.

--------------------------------------------------------------------------------
947f7b8d56 | Shmuale Mark | 2015-11-25 11:44:39 -0500

Place a figurine of a ziggurat at the bottom of all ziggurats.

--------------------------------------------------------------------------------
ba5d826b19 | Shmuale Mark | 2015-11-25 11:44:28 -0500

Add "a figurine of a ziggurat," evokable for a ziggurat.
Not currently generated anywhere.

No tile, yet.

--------------------------------------------------------------------------------
9cbb7ab3da | Shmuale Mark | 2015-11-25 11:13:04 -0500

Remove the chance for totally random monsters from spectral mist (#10067).
There's still the chance for local monsters, which can include any from
the appropriate absdepth in Crypt/Tomb.

--------------------------------------------------------------------------------
43fb7cba1d | Jesse Luehrs | 2015-11-25 02:29:43 -0500

remove ^T and ^V

--------------------------------------------------------------------------------
d1f3e234ab | Jesse Luehrs | 2015-11-25 02:29:43 -0500

merge the functionality of ^T and ^V into |

--------------------------------------------------------------------------------
ea3c80ec7e | Jesse Luehrs | 2015-11-25 01:44:44 -0500

remove ^S for quick save
just use (or macro) SS instead

--------------------------------------------------------------------------------
50494e8aeb | Jesse Luehrs | 2015-11-25 01:45:47 -0500

allow SS to save and quit

--------------------------------------------------------------------------------
bfa2ae1a93 | Nicholas Feinberg | 2015-11-24 20:30:45 -0800

Remove unused book randart code
As far as I can tell, this codepath was never actually followed.

--------------------------------------------------------------------------------
3f8410949e | Nicholas Feinberg | 2015-11-24 19:06:21 -0800

Remove make_book_level_randart's owner param
Was almost entirely unused, and also buggy. Not worth the code
complexity.

--------------------------------------------------------------------------------
818e5b66d0 | Nicholas Feinberg | 2015-11-24 17:36:43 -0800

unravel damage: / -> div_rand_round()
I meant to do this earlier, but it slipped my mind.

--------------------------------------------------------------------------------
4a1968d1ed | Chris Campbell | 2015-11-25 01:33:01 +0000

Cap Sticks to Snakes power at 100
Since it's only a level 2 spell, and doesn't need to scale to continue to
summon more/better snakes for such a long time - the cap could possibly be
lower, even.

--------------------------------------------------------------------------------
a7ff5cb452 | Steve Melenchuk | 2015-11-24 18:24:55 -0700

Fix all evocations assuming zero evocation power.
Oops.

--------------------------------------------------------------------------------
cccd3ffd2d | Steve Melenchuk | 2015-11-24 18:02:00 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
7f7dc4212f | Steve Melenchuk | 2015-11-24 17:56:59 -0700

Fix a subtle bug with misc acquirement logic.
random_choose_weighted using an array in the original fashion would stop
whenever it read the first 0 as a weight, so the first item in the list
that was zero-weighted would not be picked - and neither would any
following items in the list.

This rewrites the logic to use logic based on a vector of pairs, which
can safely have zero weights.

--------------------------------------------------------------------------------
b6797119ba | Steve Melenchuk | 2015-11-24 17:15:30 -0700

Merge branch 'master' into evoker-god-rebase

--------------------------------------------------------------------------------
014938f54f | Shmuale Mark | 2015-11-24 15:05:41 -0500

Make haste/slow affect attack speed (#10092).

--------------------------------------------------------------------------------
e7d282278e | Pekka Lampila | 2015-11-24 21:54:13 +0200

Display how much piety you would have after Ru sacrifice.

--------------------------------------------------------------------------------
2cd99c5267 | Chris Campbell | 2015-11-24 19:51:46 +0000

Give monsters rN+ from amulets of warding
Regen and rMut are the two remaining amulets that monsters can wear but don't
have any effect (where they might possibly be expected to, that is).

--------------------------------------------------------------------------------
b778f44d1c | Chris Campbell | 2015-11-24 18:10:38 +0000

Let monsters inflict confusion with chaos-branded weapons
Previously they would do nothing if they rolled SPWPN_CONFUSE, even though
it worked for players with chaos weapons.

--------------------------------------------------------------------------------
009c10546a | Chris Campbell | 2015-11-24 17:55:15 +0000

Make AF_CHAOS work much more like chaos-branded weapons
It now has almost the same list of possible effects (although since these are
are all attack flavours they do still behave differently to their respective
weapon brands), and has the same behaviour of sometimes trying to reroll
effects that the defender will definitely be immune to.

--------------------------------------------------------------------------------
da9ea1c7a9 | Chris Campbell | 2015-11-24 17:53:42 +0000

Adjust the chances for some chaos effects
Makes berserking and paralysis rarer, and miscasts more common (matching their
old rate of occurance from chaos clouds).

--------------------------------------------------------------------------------
238ce77dba | Chris Campbell | 2015-11-24 17:47:52 +0000

Don't let chaos try to slow/haste stationary monsters

--------------------------------------------------------------------------------
c1e8eeb62d | Chris Campbell | 2015-11-24 17:47:52 +0000

Remove a comment

--------------------------------------------------------------------------------
4b3f783794 | Chris Campbell | 2015-11-24 17:47:52 +0000

Make Cheibriados block chaos effects from hasting the player

--------------------------------------------------------------------------------
81cc473699 | Chris Campbell | 2015-11-24 17:47:40 +0000

Don't make chaos self-attacks have different effect chances
Applied to chaos clouds as well as confused monsters hitting themselves, and
mostly just made chaos miscast effects more common in those cases.

--------------------------------------------------------------------------------
91db9b859c | Chris Campbell | 2015-11-24 16:42:17 +0000

Adjust spacing

--------------------------------------------------------------------------------
79df41a3fb | Chris Campbell | 2015-11-24 14:12:34 +0000

Remove a deep elf knight spellbook
With the removal of monster Conjure Flame, the remaining damage spell in their
first book was Dazzling Spray which also isn't a great monster spell in that
its effects are completely different when used against the player, so remove
that spellbook rather than replace Conjure Flame in it (again, player ghosts
can still cast Dazzling Spray).

--------------------------------------------------------------------------------
f1e9b90f88 | Chris Campbell | 2015-11-24 14:09:16 +0000

Don't give monsters Conjure Flame
They're very rarely able to make good use of it. Player ghosts can still get
the spell for the time being.

--------------------------------------------------------------------------------
1afaefbdce | Chris Campbell | 2015-11-24 12:57:32 +0000

Trim Gloorx Vloq and Mnoleg's spell sets a bit
Remove LRD from Gloorx (it's completely unthematic and not really necessary for
him to have just to deal with statue form), and Chaos Breath/Chain of Chaos
from Mnoleg (neither are great effects for a summoner to have).

--------------------------------------------------------------------------------
57e542532f | Alex Jurkiewicz | 2015-11-24 23:00:00 +1100

Tweak panlord brand distribution.
Make unusual (for the player) brands more common, and weaker brands less
common.

--------------------------------------------------------------------------------
b8c5f3c978 | Alex Jurkiewicz | 2015-11-24 23:00:00 +1100

Simplify distortion_affects_defender.
Split the proc chance out so it can be tweaked individually.

This changes the effect distribution by a few percentage points, which
should hopefully be negligible.

--------------------------------------------------------------------------------
78e7867c12 | Jesse Luehrs | 2015-11-24 05:14:08 -0500

allow searching for items that should be autopickedup

--------------------------------------------------------------------------------
62b5303cbe | Jesse Luehrs | 2015-11-24 04:25:35 -0500

better autotargeting of monsters with explosions
also try to autotarget monsters that might fall within the explosion
radius, not just ones that are guaranteed to

--------------------------------------------------------------------------------
39770e82d5 | Jesse Luehrs | 2015-11-24 03:51:38 -0500

simplify

--------------------------------------------------------------------------------
739e43651c | Jesse Luehrs | 2015-11-24 02:19:28 -0500

bestroll is unused

--------------------------------------------------------------------------------
0a77a9441c | Jesse Luehrs | 2015-11-24 02:19:28 -0500

there's no need for these functions to be defined separately
especially since some of the overloads of that function are already in
random.h

--------------------------------------------------------------------------------
c611b21f30 | Jesse Luehrs | 2015-11-24 02:19:28 -0500

this is just div_rand_round

--------------------------------------------------------------------------------
6c52f40177 | Jesse Luehrs | 2015-11-24 02:19:28 -0500

clarify random_real a bit

--------------------------------------------------------------------------------
cd50e2a349 | Jesse Luehrs | 2015-11-24 02:19:28 -0500

use an enum rather than defines for rng types

--------------------------------------------------------------------------------
9f59394121 | Steve Melenchuk | 2015-11-23 23:55:33 -0700

Don't give iron giants 220 extra HP.
Oops.

--------------------------------------------------------------------------------
02954cad73 | elliptic | 2015-11-24 00:43:08 -0500

Move Jiyva altar vaults deeper (again).
On most characters an early Jiyva altar is just a trap; the god was not
designed for early worship like this. In the early game you simultaneously
lose more items to Jiyva (since you generally have to rest a lot more and
the jellies get killed less) and the lost items matter more (since you don't
have many items yet).

The Jiyva altar vaults in D now start on D:8 rather than D:4 and have
correspondingly more difficult monsters (jellies and slime creatures rather
than oozes and jellies). I left the two temples with Jiyva altars unchanged,
since with those the player is at least guaranteed to have a selection of
other tempting gods to choose from as well.

--------------------------------------------------------------------------------
5177d76320 | Nicholas Feinberg | 2015-11-23 21:42:14 -0800

Export a prop name
Very odd name, tbh...

--------------------------------------------------------------------------------
f213cdb09c | Nicholas Feinberg | 2015-11-23 21:37:41 -0800

Don't hit .psds with checkwhite.

--------------------------------------------------------------------------------
728a6abadf | Nicholas Feinberg | 2015-11-23 21:35:46 -0800

Refactor single-level randbook naming
Could be constified further, but this is good for a first pass.

--------------------------------------------------------------------------------
4d70716fd1 | Nicholas Feinberg | 2015-11-23 21:10:06 -0800

Improve _want_target_monster() (wheals)

--------------------------------------------------------------------------------
02c849edd3 | Nicholas Feinberg | 2015-11-23 21:06:23 -0800

Oops (|amethyst)
git commit --amend != git commit -a --amend

--------------------------------------------------------------------------------
bad0285635 | Nicholas Feinberg | 2015-11-23 21:02:57 -0800

Remove a big block of redundant/buggy TARG_ code
(The TARG_DISPELLABLE logic was wrong, which of course is my own
fault...)

--------------------------------------------------------------------------------
cfb53b44d4 | Nicholas Feinberg | 2015-11-23 20:53:23 -0800

Remove unused targeting mode TARG_ENEMY
Code archaeology project: how long was that sitting around?

--------------------------------------------------------------------------------
0095464c33 | Steve Melenchuk | 2015-11-23 21:47:03 -0700

Bump up P's rate of piety gain.
P was designed when the base piety gain rate was faster, making piety
gain too slow for how rapidly it's going to be used in some
circumstances.

This bumps P's piety gain up to Makhleb levels, and also adds in undead
kills which were lost in the rebase shuffle.

--------------------------------------------------------------------------------
a025819804 | Nicholas Feinberg | 2015-11-23 20:46:30 -0800

Cleanup some TARG_ code

--------------------------------------------------------------------------------
595b95bf05 | Shmuale Mark | 2015-11-23 22:45:46 -0500

Merge pull request #182 from alexjurkiewicz/xombow
Xombow
--------------------------------------------------------------------------------
a375f0cbc7 | Steve Melenchuk | 2015-11-23 20:33:26 -0700

Properly make P not punish prestidigitation.

--------------------------------------------------------------------------------
597d2e3119 | Nicholas Feinberg | 2015-11-23 19:20:40 -0800

Merge pull request #173 from alexjurkiewicz/chequers-temple
Temple vault: Sunken Temple
--------------------------------------------------------------------------------
8714fb9545 | Shmuale Mark | 2015-11-23 22:15:31 -0500

Merge pull request #180 from alexjurkiewicz/xom-acquire-weapon-brand
Let Xom chaos-brand god gift weapons.
--------------------------------------------------------------------------------
bbbfd1ac0c | Shmuale Mark | 2015-11-23 22:09:19 -0500

Merge pull request #171 from alexjurkiewicz/doggie-speech
Make friendly doggies nicer.
--------------------------------------------------------------------------------
71dc117904 | ontoclasm | 2015-11-23 21:08:51 -0600

Logo psd file

--------------------------------------------------------------------------------
52c1e29b41 | ontoclasm | 2015-11-23 21:08:50 -0600

Resize Mnoleg splash screen (johnstein)

--------------------------------------------------------------------------------
6eea31f5f5 | ontoclasm | 2015-11-23 21:08:49 -0600

New logo

--------------------------------------------------------------------------------
86f88a0999 | Steve Melenchuk | 2015-11-23 20:07:29 -0700

Drop P's spellcasting conduct. Channeling conduct is still in place.
It's difficult enough to spellcast without having a good means of
replenishing your magic, and as several individuals have pointed out it
makes P too much of a Trog clone.

--------------------------------------------------------------------------------
3b8cbafb01 | Steve Melenchuk | 2015-11-23 20:07:29 -0700

Swap Quick Charge to 1* and Device Surge to 3*.
In my own playtesting, P has been incredibly weak early on, and Device
Surge has been relatively useless at the time that you initially acquire
it - besides you're likely to run out of charges long before you start
getting Quick Charge.

I'm hoping that the piety cost of Quick Charge will prevent it from
being too spammable early on (that cost is unchanged here).

--------------------------------------------------------------------------------
384979d90a | Neil Moore | 2015-11-23 21:55:52 -0500

Wine and cheese for amalloy.
[skip ci]

--------------------------------------------------------------------------------
565c1729dd | Nicholas Feinberg | 2015-11-23 18:03:40 -0800

Deduplicate debuffable enchantments

--------------------------------------------------------------------------------
d06bf6c8e9 | Nicholas Feinberg | 2015-11-23 17:45:32 -0800

Don't claim that unseen horrors are debuffable
...or other permanently invisible monsters. (TY to |amethyst for
suggesting the approach here!)

--------------------------------------------------------------------------------
fa4d985776 | Nicholas Feinberg | 2015-11-23 17:36:07 -0800

Remove an unused case
ENCH_RAISED_MR isn't a debuffable enchant!

--------------------------------------------------------------------------------
238ea1c5dd | Nicholas Feinberg | 2015-11-23 17:27:54 -0800

Remove you.seen_invis
Was added in 047a5ef3 for auto-IDing worn sInv rings, which hasn't
been relevant in some time.

--------------------------------------------------------------------------------
272760d705 | Nicholas Feinberg | 2015-11-23 17:21:04 -0800

Refactor trivial monster ench->info mappings

--------------------------------------------------------------------------------
6202ac7ba3 | Neil Moore | 2015-11-23 19:45:16 -0500

Don't leak unided inv items in shopitem.stacks().
If the shop item was (unknown)---so identified---and the inventory item
was unidentified, stacks() would still tell us whether the shop item
stacked with the inventory item, thereby allowing us to deduce the
subtype of the latter.

Now, only claim that items stack if they have the same full-ID status.
Perhaps this should be in items_similar instead, but that would require
giving more thought to what to do with weapons, armour, and jewellery,
which have more complex identification status than just yes/no.

--------------------------------------------------------------------------------
bf48c9d604 | Neil Moore | 2015-11-23 19:12:58 -0500

Avoid shadowing member variables, and use an algorithm.

--------------------------------------------------------------------------------
5c549f26a7 | elliptic | 2015-11-23 19:11:39 -0500

Add items.shop_inventory() clua.
When standing on a shop, this returns a table with entries {item, price}.
It doesn't check whether you've already visited the shop, but that's fine
because visiting a shop takes no time once you are standing on it.

--------------------------------------------------------------------------------
abf895ad0f | Chris Campbell | 2015-11-23 18:12:24 +0000

Fix spellforged servitors having corpses (#9199)

--------------------------------------------------------------------------------
3d29885332 | ontoclasm | 2015-11-23 09:27:26 -0600

Pakellas invo tiles

--------------------------------------------------------------------------------
0fcaa26970 | Seve Monahan | 2015-11-23 09:26:51 -0500

Don't mention str in the description of large rocks (ontoclasm)

--------------------------------------------------------------------------------
f0b12a39bb | Alex Jurkiewicz | 2015-11-23 23:00:00 +1100

Reduce the chance that Xom chaos-brands gifts.

--------------------------------------------------------------------------------
bee7b6f360 | Alex Jurkiewicz | 2015-11-23 23:00:00 +1100

Let Xom chaos-brand ranged weapons.

--------------------------------------------------------------------------------
ad09a0ea7b | gammafunk | 2015-11-23 05:27:37 -0600

Don't try to place octopode crushers in Zigs (#10090)
Remove them from the Shoals and Lair Zig sets, and replace them with
iron giants in the earth set.

--------------------------------------------------------------------------------
0a057fde1c | Nicholas Feinberg | 2015-11-22 23:42:34 -0800

Add Violent Unravelling to the Book of Hinderance
At least for testing purposes; it may depart in a few weeks.

--------------------------------------------------------------------------------
c30d245778 | Nicholas Feinberg | 2015-11-22 23:26:17 -0800

Improve Violent Unravelling targetting further
Automatically target & cycle between valid monsters.

This code is awful, but so is all the code near it, so...?

--------------------------------------------------------------------------------
78d5e547f6 | Nicholas Feinberg | 2015-11-22 23:26:17 -0800

Add a custom Unravelling targetter
To make it clearer which targets are (probably) valid. Doesn't
cover teleporting monsters, since that's not something the player
has knowledge of (but it can still be debuffed).

--------------------------------------------------------------------------------
e1ff7aae6c | Nicholas Feinberg | 2015-11-22 23:26:17 -0800

Violent Unravelling (L5 Hexes/Transmutations)
Dispels all enchantments (dispellable effects) on the target; if
there were any, causes a radius-1 explosion that damages and
malmutates everything within. Obvious uses: knock out enemy buffs
(e.g. hasted lichen), or combo with your own buffs (e.g. mass
confusion -> unravelling).

Thanks to CanOfWorms for icon help.

--------------------------------------------------------------------------------
7653ba1700 | Nicholas Feinberg | 2015-11-22 23:26:17 -0800

Add *_is_debuffable()
As a supplement to debuff_*.

--------------------------------------------------------------------------------
cf1ca50cc9 | Nicholas Feinberg | 2015-11-22 22:42:52 -0800

Merge pull request #179 from alexjurkiewicz/hungerless-regen
Remove increased metabolism from some regen items.
--------------------------------------------------------------------------------
e4b0c452d0 | ontoclasm | 2015-11-22 19:48:43 -0600

Wizlab entrance tiles

--------------------------------------------------------------------------------
a67100c794 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Lazy tiles for P's latest abilities.
Please make these go away soon...

--------------------------------------------------------------------------------
27258d8ada | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas: Sap Magic.
5* ability. Very similar to the warmonger ability with the same name, but
returns the MP from the antimagic effect to the player like Drain Magic
does.

--------------------------------------------------------------------------------
5c4b8c35c0 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas: (Mass) Drain Magic.
2* and 4* abilities (Quick Charge is now at 3*). Drain magic from a
single foe or from LOS respectively, inflicting an anti-magic effect on
them and replenishing your MP. Results in some contam, especially if
your magic is already full.

--------------------------------------------------------------------------------
cd17c19a9f | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Collapse Device Surges into a single power.
When first gained, Device Surge behaves identically to Minor Device
Surge (except that it can function at 1 or 2 MP for a 67% or 33% chance
of not evoking the item while still spending the MP respectively). As
piety is gained, the power of the resulting surge can randomly increase
with a corresponding increase in the amount of MP spent.

--------------------------------------------------------------------------------
8156c1df69 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas passively IDs wand/rod charges and rod types on pickup.
The former has been suggested by several people; I'm a little bit
hesistant to do this because it treads a bit into Ashenzari territory in
my opinion.

I don't think this will be very much use with rods because you can ID
those by wielding them anyway; it's mainly for consistency.

--------------------------------------------------------------------------------
57ffc153a3 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas' wand gifts bias towards unknown wands (Lasty).
Since you should be able to charge the ones you have already.

--------------------------------------------------------------------------------
33481f35b7 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Step down evocation power like spellpower.
This applies to *all* evocations, so it results in a nerf to things that
inherently use high spell power in their use (the elemental evokers, for
example). I do not think this will be particularly noticeable outside of
Pakellas usage, however.

--------------------------------------------------------------------------------
952e10e39b | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Step down Quick Charge effectiveness.
It starts falling off in effectiveness after 33% charge capacity,
hopefully turning it into more of a quick fix than the fountain of
recharging it was before.

--------------------------------------------------------------------------------
68ca7b893d | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Rework Pakellas gifting.
It's much more rare, less weighted towards wands, and (if you aren't a
felid) guarantees a rod as your first gift.

I'm not completely sold on the latter point, but considering most of the
abilities are geared towards rod use, I think it makes a certain degree
of sense.

--------------------------------------------------------------------------------
691fcda482 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Properly make spellcasting allies hostile under Pakellas.

--------------------------------------------------------------------------------
f6cfb472a7 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas wrath.
So you thought you could just take your toys and leave, did you? Well,
Pakellas will have none of that - Pakellas will drain your wands, your
rods, your XP evokers, your magic reserves, and even you if there's
nothing else worth draining. Plus, if you abandon Pakellas altogether,
trying to evoke just about anything will occasionally result in a
backlash (the effect will still go through, though, just like Vehumet
and Kiku wrath).

--------------------------------------------------------------------------------
534a57a40a | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Primitive Pakellas power pictures.

--------------------------------------------------------------------------------
bab0776b08 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Make the Pakellas altar glow more obvious.

--------------------------------------------------------------------------------
50efd6bcf1 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

A primitive Pakellas altar tile.
It's meant to evoke a workbench, with bits of rods hanging from the
shelves. Someone can probably visualise this better than I can.

--------------------------------------------------------------------------------
8931a1dd25 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas: 6* capstone: supercharge a wand or rod.
Up to 4/3 normal wand capacity, or to +10 (18/18) for a rod.

I can't think of very many uses for the wand side of this unless you
happen to be a felid or are really desperate for inventory space.

--------------------------------------------------------------------------------
f82aaed974 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas gifts wands, rods, and misc evokables.
That is, every misc item that can be acquired except decks (per Nemelex)
and crystal balls (since those involve channeling).

--------------------------------------------------------------------------------
3d609b694a | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas: Quick Charge.
Spend your entire MP pool to charge, on average, (10 * evocations) *
(MP / max MP) percent of a wand or rod's maximum charges to the
wand/rod. Does not upgrade rods, but does charge them.

The fact that most means of MP recovery are blocked is intended to
specifically balance this ability.

--------------------------------------------------------------------------------
50a91d3670 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas' Device Surges.
Spend 3/6/9 MP and some piety and hunger and evoke an item to apply
one/two/three power enhancers to your use of that evokable.

TODO: limit this to items which can actually benefit from the surge?

--------------------------------------------------------------------------------
5cf340f2ce | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas' conducts.
Piety on kills, especially for spellcasters; MP regeneration is blocked;
no channeling; no magic a la Trog.

--------------------------------------------------------------------------------
3523ac0b54 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Pakellas: initial enums, data, etc.

--------------------------------------------------------------------------------
383a95c7c4 | Steve Melenchuk | 2015-11-22 17:24:51 -0700

Support for invocations and evocations enhancers/dehancers.
Currently nothing uses this.

--------------------------------------------------------------------------------
718b85f9b7 | Nicholas Feinberg | 2015-11-22 16:23:48 -0800

Tweak a few majin-bo lines (chequers)

--------------------------------------------------------------------------------
4f8d5192a9 | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

Let the Majin-Bo talk
When first equipped, like the Singing Sword, and also very rarely
after casting. (4k-12k casts in a 15 rune game, so maybe speaking
8-24 times over the course of that won't wear out its welcome too
badly...?)

Speech suggestions welcomed. Thanks to chequers for offering some!

--------------------------------------------------------------------------------
8a44c0e8f0 | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

Move cloud descriptions into their own file
Per the TODO.

--------------------------------------------------------------------------------
79d33229df | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

Warn before letting ignite poison harm allies
Either directly or by igniting clouds they're standing in.

--------------------------------------------------------------------------------
5b61d56ed2 | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

Refactor themed randbook owner generation
For naming purposes.

Also add an important, undocumented caveat to randbook.txt.

--------------------------------------------------------------------------------
a74a2d2c9b | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

Partially refactor theme randbook naming
It's still a mess, but less of one.

--------------------------------------------------------------------------------
93a69fe87c | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

Cleanup some similar armor acq code
Pull it into a template function. Thanks to |amethyst for template
help.

--------------------------------------------------------------------------------
58637efca5 | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

Constify
Don't re-use a variable for an unrelated purpose.

--------------------------------------------------------------------------------
a241fc3895 | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

origin_is_god_gift -> origin_as_god_gift
The other way was very pointlessly complex.

Assumes that GOD_NO_GOD is false (for decks.cc), and so explicitly
sets the enum accordingly.

--------------------------------------------------------------------------------
5dc6a08b22 | Nicholas Feinberg | 2015-11-22 15:56:39 -0800

Decruftify more book acq code
level == -1 signified that ATTR_RND_LVL_BOOKS had bits 1 through 9
toggled on, and therefore it was impossible to generate a randbook
of a level that you hadn't already gotten through acquirement /
god gifts. This hasn't been possible since sometime before
a95db55b0d35 (2010) but after 0f4b659d (2008), when single-level
randbooks were first added.

--------------------------------------------------------------------------------
e81230e454 | Nicholas Feinberg | 2015-11-22 15:56:38 -0800

Cleanup some obscure MR beam code
Malmutate, Corrupt Body, and Sap Magic are resistable for monsters
but not for players; this seems to be the result of dubious code
rather than something intentional. Remove this behavior.

--------------------------------------------------------------------------------
9b10f725d6 | gammafunk | 2015-11-22 16:54:55 -0600

Use killer bees in place of wasps for sack of spiders
Wasps with paralyzing attacks are a bit strong for this item, given how
little evocation skill is required to get them. We may wish to tweak
this distribution later (as well as revisit the need to have both this
item and the rod of the swarm), but this change will do for now.

--------------------------------------------------------------------------------
f42994f9f4 | Alex Jurkiewicz | 2015-11-23 09:45:06 +1100

more doggie spech

--------------------------------------------------------------------------------
de953680ea | Shmuale Mark | 2015-11-22 17:39:15 -0500

typo (Grunt)

--------------------------------------------------------------------------------
c530744b98 | Shmuale Mark | 2015-11-22 17:33:43 -0500

Merge pull request #176 from alexjurkiewicz/silent-stasis
Make amulets of stasis silent.
--------------------------------------------------------------------------------
712d77a990 | Alex Jurkiewicz | 2015-11-23 09:23:56 +1100

Make amulets of stasis silent.
Noise was generated inconsistently, mostly for lore's sake it seems.

--------------------------------------------------------------------------------
1af0657dc6 | Alex Jurkiewicz | 2015-11-23 09:21:57 +1100

Tweak teleport location in ice_cave_statue_garden_01.
Hopefully this will reduce the chance anyone (me) walks on the teleport
square while hoovering up loot.

--------------------------------------------------------------------------------
6421e67c9f | Alex Jurkiewicz | 2015-11-23 09:21:57 +1100

Little Ossuary entry vault.
I was thinking of the temple in Indiana Jones and the Last Crusade.

--------------------------------------------------------------------------------
fc0b937750 | Alex Jurkiewicz | 2015-11-23 09:21:57 +1100

Temple vault: Sunken Temple
An ancient temple, mostly destroyed and covered in water. 6-12 altars,
with the missing altars replaced by faded ones.

--------------------------------------------------------------------------------
c776e2240a | Steve Melenchuk | 2015-11-22 15:13:43 -0700

Remove plain spiders from generation properly.
This is what happens when things change between when you first write a
commit and when it lands...

--------------------------------------------------------------------------------
5fb2e008ba | Chris Campbell | 2015-11-22 21:06:01 +0000

Fix Beogh idol descriptions (DraconicPenguin, #10087)

--------------------------------------------------------------------------------
c541742b7f | Chris Campbell | 2015-11-22 21:06:01 +0000

Remove plain spiders from worldbinder summon lists (wheals)

--------------------------------------------------------------------------------
d221ad03f6 | Shmuale Mark | 2015-11-22 15:57:20 -0500

Merge pull request #175 from amalloy/identify-necronomicon-gift
Identify the Necronomicon when Kiku gives it to you
--------------------------------------------------------------------------------
ec75a5f2d6 | Shmuale Mark | 2015-11-22 15:52:05 -0500

Merge pull request #178 from alexjurkiewicz/safe-shatter
Friendly monsters shouldn't cast shatter.
--------------------------------------------------------------------------------
41f797fecc | Alan Malloy | 2015-11-22 12:50:10 -0800

Identify the Necronomicon when Kiku gives it to you

--------------------------------------------------------------------------------
8f5fe785d0 | Shmuale Mark | 2015-11-22 15:43:46 -0500

Merge pull request #172 from DJgamer98/patch-1
Update /nl/ability.txt
--------------------------------------------------------------------------------
ab6e6d9364 | Chris Campbell | 2015-11-22 20:09:08 +0000

Fix messaging for orb spiders and stormcallers when invisible

--------------------------------------------------------------------------------
e7f59add94 | Chris Campbell | 2015-11-22 20:07:13 +0000

Don't block Finesse under stasis
Thematically it's less like being magically hasted and more like just becoming
incredibly skilled with your weapon, or something.

--------------------------------------------------------------------------------
dda6db2e52 | Chris Campbell | 2015-11-22 20:07:13 +0000

Remove some unused code for trap disarming
Traps can't be disarmed any more, and are always directly destroyed when
running out of ammo.

--------------------------------------------------------------------------------
d480e7b821 | Chris Campbell | 2015-11-22 20:07:13 +0000

Improve a Nethack reference
If such a thing is really possible!

--------------------------------------------------------------------------------
a66c6b76a4 | Chris Campbell | 2015-11-22 20:07:13 +0000

Remove Halloween's gameplay effects
Playing on specific days of the year shouldn't affect gameplay. The flavour
messages and ghost tiles still remain.

--------------------------------------------------------------------------------
74a1989403 | Chris Campbell | 2015-11-22 20:07:13 +0000

Remove the Localised Ignite Poison spell
It existed on salamander mystics, but very rarely got to do much noticeable
compared to their simpler blasty conjurations.

--------------------------------------------------------------------------------
39928a5837 | Chris Campbell | 2015-11-22 20:06:37 +0000

Simplify orange demon attacks
Gives orange demons reaching & poison on their first attack, and weakness on
the second, rather than all three effects on a single attack. Removes
AT_REACH_STING in the process, which was the last attack type with attack
flavour-like effects.

The AF_REACH_STING attack now applies poison at a reduced rate to match the
regular poison attack flavours (and has slightly increased damage to
compensate), and the AF_WEAKNESS and no longer checks poison resistance when
applying weakness.

--------------------------------------------------------------------------------
995c8e35df | Chris Campbell | 2015-11-22 20:03:33 +0000

Don't reduce combat accuracy when invisible with no SInv
It's a hidden penalty that's probably unnecessary. Buffs ghost moths!

--------------------------------------------------------------------------------
fdd910a2a5 | Steve Melenchuk | 2015-11-22 12:30:10 -0700

Spark wasps.
A(n) (un)natural evolution of wasps and hornets; their stinger is capable
of delivering powerful shocks, and they can close the distance with their
foes with shockingly lethal speed (i.e. Blinkbolt).

Appear singularly in Spider and in packs in Depths.

Bring your insulation equipment.

(Note: originally the sting also had AF_PARALYSE with some convoluted
 logic in melee_attack.cc. I'm removing that for now because the
 implementation for that was atrocious and there are possibly some
 changes in the works that will make that easier to implement, if it
 turns out to be desirable at all.)

--------------------------------------------------------------------------------
ad488b8ea5 | Steve Melenchuk | 2015-11-22 12:30:10 -0700

Remove brain worms.
Raise your hand if you've a) seen one recently, and b) had it do
anything interesting.

Replaced with neqoxecs where this was appropriate and a combination of
worms and giant leeches in some other places where it was thematic. Two
gimmick vaults that largely revolved around them have been removed.

--------------------------------------------------------------------------------
15f31f13d9 | Steve Melenchuk | 2015-11-22 12:30:10 -0700

Gloorx Vloq buffs.
Firstly, Gloorx Vloq takes issue with all of the gargoyles and statues
that a traditional necromancer's spell set has a hard time dealing with,
so Gloorx has learned LRD to annoy them properly.

Secondly, Gloorx is annoyed that the Executioners that dwell in Gloorx's
realm cannot adequately assist Gloorx in battle, so Gloorx has learned
to Summon Executioners.

Thirdly, Gloorx feels that those that have battled their way in may
already adequately be able to deal with Executioners, so Gloorx has
learned Black Mark to give the accompanying Executioners that much more
of an edge in battle.

As with Mnoleg, these may or may not all stick around (but this set is
less of a mixed bag).

--------------------------------------------------------------------------------
e99dc6213b | Steve Melenchuk | 2015-11-22 12:30:10 -0700

Extend Mnoleg's spell set.
As the Demon Lord of Chaos, it's fitting that Mnoleg gets a blend of
chaotic spells:
- Random Bolt, for a means of dealing direct ranged damage;
- Chaos Breath, for extra Fun(tm), and
- Chain of Chaos, because this is too hilarious of an effect to leave
  solely to Xom.

Mnoleg also gets Dig - the pet cacodemons have to have learned it from
somewhere...

I don't expect that 100% of these spells will stick around, but this
should let us figure out what works and what doesn't.

--------------------------------------------------------------------------------
f4721b55ab | Steve Melenchuk | 2015-11-22 12:30:10 -0700

Remove blue devils; replace mostly with ice devils as a 4.
Blue devils didn't really do anything interesting on their own, and ice
devils have been observed to be on the weak side for a 3 - this solves
two problems at once.

Ice devils are now HD 8, matching rust devils and orange demons; they
are probably still going to be on the strong side for a 4.

We'll need to examine how this impacts ice cave monster sets a bit
further, but I don't anticipate too many problems.

--------------------------------------------------------------------------------
5778612a1c | Steve Melenchuk | 2015-11-22 12:30:10 -0700

Shuffle some hellwing and blue devil properties.
Take AF_SWOOP from blue devils and give them to hellwings (the
prominently flying enemy swooping - how appropriate). Give blue devils
Summon Ice Beast so they have something else to do.

--------------------------------------------------------------------------------
976edcfe33 | Steve Melenchuk | 2015-11-22 12:30:10 -0700

Make the plain spider a genus enemy only.
They are almost exactly the same enemy as water moccasins and yellow
wasps (less the slowing effect in the latter case), and having them
appear in large numbers anywhere merely presents a popcorn threat that
we're not really looking for.

I've tried to come up with reasonable replacements for the handful of
vaults that place them, though there are still a few questionable ones
(do we still need to have the spider basket trap?).

--------------------------------------------------------------------------------
7ffad0302c | Steve Melenchuk | 2015-11-22 12:30:09 -0700

Remove octopode crushers; semi-replace in Depths with iron giants.
Iron giants are bigger, tougher, and have the same fundamental skills as
octopode crushers.

One vault is removed as a result of this; others are adjusted slightly.

Also includes an update to giant_chief_lemuel to place it in Depths,
starring an iron giant.

--------------------------------------------------------------------------------
f56d137c01 | Steve Melenchuk | 2015-11-22 12:30:09 -0700

Convert the iron giant into a normal enemy, and rework it a bit.
Instead of summoning iron elementals, it now comes with a band of
giants, and can throw the player around in addition to hitting
significantly harder.

Places in Dis (with a few vaults adjusted to account for this); this is
likely to expand.

--------------------------------------------------------------------------------
09dcfcf2d3 | Steve Melenchuk | 2015-11-22 12:30:09 -0700

Remove salamander firebrands; replace spawns thereof with stormcallers.
Firebrands had exactly one differentiating feature: AF_FIREBRAND. The
difference? Throwing a few clouds around the player over and above
AF_FIRE. In places where they appeared, this made absolutely no
difference, making them uninteresting enemies. Now that stormcallers have
been adjusted to pose more of a threat, they should make for a more
viable drop-in replacement.

AF_FIREBRAND is also removed, now that no enemies use it.

--------------------------------------------------------------------------------
e0ef666701 | Steve Melenchuk | 2015-11-22 12:30:09 -0700

Remove Chant Fire Storm; rework Chant Word of Entropy to Entropic Weave.
These effects could be trivially avoided by stepping out of line of
sight of the enemy, in contrast to Word of Recall which always triggered
as long as the caster was still alive.

Entropic Weave is now a smite-targeted hex that inflicts one level of
corrosion. Entropy weavers are otherwise unchanged.

Salamander stormcallers get Fire Storm instead, but need to attempt to
cast it three times in order to get an effect a la orb spider IOOD.

--------------------------------------------------------------------------------
38f3aaf985 | Steve Melenchuk | 2015-11-22 12:30:09 -0700

Mark the Elf:3 vault enemies as patrolling.
They're supposed to be guarding the loot, and having them be lured out
too easily trivialises the difficulty of the vaults.

--------------------------------------------------------------------------------
754ef45440 | Alex Jurkiewicz | 2015-11-22 23:00:00 +1100

Chaos-brand more Xom-gifted weapons.
From 20% -> 50% (the same amount as Trog does for antimagic).

--------------------------------------------------------------------------------
a8746e339c | Alex Jurkiewicz | 2015-11-22 23:00:00 +1100

Remove increased metabolism from some regen items.
Amulets and TLA increased regeneration (both a different amount) while
other artifacts with Regen+ did not. It wasn't a very noticable
tradeoff.

--------------------------------------------------------------------------------
53487f078b | Steve Melenchuk | 2015-11-21 23:04:08 -0700

Remove BFLAG_ISLANDED from Hells branches.
This was introduced back in a1d6cda4bbcd9cdb9c10aabbf765fa1c02c941fe -
0.4! The Hells branches are completely different these days, and
re-enabling the connectivity checks for them does not appear to harm
anything.

This is prompted by a mysterious instance in which tar_grunt failed to
place its stairs, leaving an unescapable level. Having these checks in
place would have prevented that from happening.

--------------------------------------------------------------------------------
99ad9bc04b | Steve Melenchuk | 2015-11-21 23:04:08 -0700

Revert "Remind online trunk players about the tournament."
The tournament's over now.

This reverts commit d105b5ab648efeaaf1f624810e0cba24ce2af79c.

--------------------------------------------------------------------------------
78ce890b52 | ontoclasm | 2015-11-21 13:35:36 -0600

Fix felid statue form horn tiles

--------------------------------------------------------------------------------
bc185b5eb4 | Neil Moore | 2015-11-21 14:22:10 -0500

Mention animated undead expiry in the changelog (Nekoatl)
[skip ci]

--------------------------------------------------------------------------------
c2eec9b19c | Nicholas Feinberg | 2015-11-21 08:19:46 -0800

Clarify Avatar Song's description (CanOfWorms)

--------------------------------------------------------------------------------
4c9da24b1f | Shmuale Mark | 2015-11-20 13:53:51 -0500

Fix some prompts failing to show up (}, #9838).
This was a case of several pieces of code trying to outsmart
one another -- throw.cc thought that beam.cc wouldn't automatically
assume the worst case for tracers, but it does, and misc.cc tried
to check whether this monster was behind another monster that had
to have been hit, but the tracer already ends if it runs into a monster
and it's AUTOMATIC_HIT!

--------------------------------------------------------------------------------
4fdfa27c54 | ontoclasm | 2015-11-19 18:16:36 -0600

Don't let FTILE override portals

--------------------------------------------------------------------------------
33237266b2 | Neil Moore | 2015-11-19 14:31:06 -0500

Internationalise a vault, rarely.
The story is "axe soup" in Eastern Europe.

--------------------------------------------------------------------------------
e53bd43ce0 | ontoclasm | 2015-11-19 12:49:04 -0600

Naga tiles (ontoclasm)

--------------------------------------------------------------------------------
389cd4eedd | Alex Jurkiewicz | 2015-11-19 23:00:00 +1100

Friendly monsters shouldn't cast shatter.

--------------------------------------------------------------------------------
22d93ee8d4 | Neil Moore | 2015-11-19 01:28:39 -0500

Rewrap.
[skip ci]

--------------------------------------------------------------------------------
0483156deb | ontoclasm | 2015-11-18 23:30:15 -0600

Clarify tiles license info.
New tiles will be under CC0 unless otherwise stated. Hopefully this will
help alleviate some of the confusion. In future we should probably try to
replace all the tiles with murky licenses; they're mostly old in any case.

--------------------------------------------------------------------------------
02a7081604 | elliptic | 2015-11-18 14:53:29 -0500

Allow insects to go berserk again.
This was broken by d63ab3c5. This fix was suggested by wheals, who also
suggested replacing this check by mons_is_object in trunk. Note that insects
being able to go berserk is quite important both with queen bees berserking
other bees and with moths of wrath in Spider.

--------------------------------------------------------------------------------
58bf2d5255 | Neil Moore | 2015-11-17 23:49:57 -0500

Put hunters' swords in slot a or b (switchy)
We were giving hunters (and arcane marksmen) both their launcher and ammo
before the other job equipment.  But that meant slot b (or a for Throwing
hunters) held ammo rather than the short sword.  Since the ' command is a
thing, try harder to put weapons in slot a and b by giving the ammo last.

--------------------------------------------------------------------------------
77bb7e10f5 | Chris Campbell | 2015-11-17 14:23:30 +0000

Fix colouring in kennysheep_sewer_church (elliptic)

--------------------------------------------------------------------------------
08606db9e8 | Alex Jurkiewicz | 2015-11-16 23:00:00 +1100

Add sturdy frame mutation (infinitevox).
Reduce player's base ER by 2/4/6. Level 3 essentially reduces your
armour's weight class by two steps.

--------------------------------------------------------------------------------
2d311b19f0 | Shmuale Mark | 2015-11-15 14:29:41 -0500

Don't make monster rod power dependent on their shield.
WHY. WHY WAS THIS A THING.

--------------------------------------------------------------------------------
8c10bc3849 | Steve Melenchuk | 2015-11-15 09:05:56 -0700

Place Shoals end placers as primary vaults (#10080).
This places them first, rather than allowing the possibility of a
large primary vault to place and blocking placement of the end
subvaults.

This has the effect of allowing minivaults to place on the level, which
may significant affect end level balance - if this proves to be a
problem we can add a dummy minivault specifically to decrease or
eliminate the chance of that happening.

--------------------------------------------------------------------------------
b70226cc04 | ontoclasm | 2015-11-15 01:10:12 -0600

Generic rune tile

--------------------------------------------------------------------------------
dd15e31863 | Steve Melenchuk | 2015-11-14 22:04:15 -0700

Don't overwite vaults with monster placements from layouts (#8908).
There are two passes in this function; we were only checking the first.

--------------------------------------------------------------------------------
c40b6662e3 | Steve Melenchuk | 2015-11-14 22:03:02 -0700

Revert "Make dlua fill_area and border_area not overwrite vaults (#8908, 
#9931)."
As |amethyst pointed out, this is in the definition of the vault, and
the two coordinate systems don't line up - besides which this isn't the
source of the problem.

This reverts commit 73b0079c22715cd64e5214939d006c58f7534b47.

--------------------------------------------------------------------------------
6199648b78 | Shmuale Mark | 2015-11-14 22:52:27 -0500

Axe a whole bunch of old-style function comments.
Some are improved and doxygenized.

--------------------------------------------------------------------------------
96c0765654 | Shmuale Mark | 2015-11-14 22:52:24 -0500

Decouple _handle_rod from _handle_wand.

--------------------------------------------------------------------------------
1483dd1ef5 | Shmuale Mark | 2015-11-14 22:52:22 -0500

Fix some XXXs.
The code still mostly uses pointers, though...

--------------------------------------------------------------------------------
538156814d | Shmuale Mark | 2015-11-14 22:52:21 -0500

Remove some unnecessary beems.

--------------------------------------------------------------------------------
73b0079c22 | Steve Melenchuk | 2015-11-14 19:42:56 -0700

Make dlua fill_area and border_area not overwrite vaults (#8908, #9931).
This should fix the interaction between layout_gridlike and Zot:5
causing it to break the vault layout.

There are a couple of other places where these functions are used which
may cause subtle differences; the only one that I can think of that this
may impact is tar_grunt. Will need to keep an eye out and see if this
needs to be adjusted further.

--------------------------------------------------------------------------------
378fbfa8a7 | Shmuale Mark | 2015-11-14 21:24:07 -0500

oops (Grunt)

--------------------------------------------------------------------------------
4897f34196 | Shmuale Mark | 2015-11-14 20:45:56 -0500

Fix rebranding behaviour with antimagic (#10075).
Rebranding away from antimagic restores your original MMP (you
could already force this by doing something which called calc_mp(),
like putting on a ring of magical power). Similarly, rebranding to
antimagic (is this possible?) lowers your MP, and will restore it
once you unwield your weapon or the timer runs out.

--------------------------------------------------------------------------------
9dac901e21 | Shmuale Mark | 2015-11-14 20:33:58 -0500

Remove '+' as a inventory hotkey for books (#10077).
It didn't work and hasn't been the glyph forever.

--------------------------------------------------------------------------------
629eefb69f | Shmuale Mark | 2015-11-14 20:32:04 -0500

Fix starcursed mass pathfinding (|amethyst).
They actually do require only LOS to attack.

--------------------------------------------------------------------------------
b1241f311e | Neil Moore | 2015-11-14 13:00:58 -0500

Make ally deaths offend Ely again.
This was broken in the refactoring in 0.16-a0-2212-g27333a4, which had a
backwards check that made Ely only take offense at the death of TSO-
worshipping allies (i.e. converted holies).  However, since holies no
longer convert, just remove the check rather than inverting it.

--------------------------------------------------------------------------------
bba0beee6c | Neil Moore | 2015-11-14 13:00:39 -0500

Correctly handle << escapes in chop_tagged_string.
The code was intended to make the second < end the tag if it immediately
followed the opening <, but that did not work because a variable was being
set too early.

--------------------------------------------------------------------------------
1e63804980 | Chris Campbell | 2015-11-14 14:59:44 +0000

Merge pull request #174 from amalloy/ghoul-cmut
Don't ask ghouls for potions of cMut in troves (celerity)
--------------------------------------------------------------------------------
c6b4a7e50b | Chris Campbell | 2015-11-14 14:52:55 +0000

Make the Orb status light Orb-coloured

--------------------------------------------------------------------------------
73b12f0f7b | Alan Malloy | 2015-11-13 17:31:27 -0800

Don't ask ghouls for potions of cMut (celerity)

--------------------------------------------------------------------------------
9c2abca435 | Seve Monahan | 2015-11-13 20:00:31 -0500

Remove the BRANCH_END hack in mon-pick-data.h
Not needed now that 0.17 is out. It's still possible to transfer from
0.16 to 0.18, it will just cause some slightly odd spawns on S:$

--------------------------------------------------------------------------------
543da2729a | Seve Monahan | 2015-11-13 19:42:34 -0500

Add a status light if the player has the orb (wheals)

--------------------------------------------------------------------------------
bddc4b1797 | Chris Campbell | 2015-11-13 23:11:50 +0000

Improve Hydra Form description (|amethyst)

--------------------------------------------------------------------------------
a8e041d51e | Chris Campbell | 2015-11-13 22:48:51 +0000

Don't let hydra-formed players grow extra heads
Hydra form is already nothing like monster hydras, and allowing players to make
their form stronger by getting hit with weak chopping weapons isn't a good
feature.

--------------------------------------------------------------------------------
15e8ccf7e4 | Chris Campbell | 2015-11-13 22:48:50 +0000

Clean up some broken hydra handling
The code claimed that cauterising a hydra head with a flame-branded weapon
caused the flame brand's extra damage to then not be applied, but this
behaviour appears to have been broken for some time. Luckily that seems like
an undesirable feature anyway, so clean up the comments and code around it
to no longer claim it's the case.

--------------------------------------------------------------------------------
c90cd2d98a | Chris Campbell | 2015-11-13 22:48:50 +0000

Adjust blindness immunity and SInv on some more monsters
Remove blindness immunity from jumping spiders and mana vipers (who both had
it for no clear reason when no other similar monsters did), and SInv from
jumping spiders. Mana vipers keep their SInv by virtue of being particularly
magical or something, but possibly should lose that too.

--------------------------------------------------------------------------------
eeff6fb440 | Chris Campbell | 2015-11-13 22:48:50 +0000

Fix deathcap spells being marked as "demonic"

--------------------------------------------------------------------------------
65b0dc5b52 | Chris Campbell | 2015-11-13 22:48:50 +0000

Give giant eyeballs and golden eyes SInv
To match all the other eyes.

--------------------------------------------------------------------------------
3b64f9d8fb | Chris Campbell | 2015-11-13 22:48:50 +0000

Make jellies and death oozes unblindable
To match the other J-glyph monsters that could all see invis as well as
being unblindable. Slime creatures remain the odd one out, not having SInv
as well as still being blindable (maybe this should change?).

--------------------------------------------------------------------------------
b405ad4166 | Chris Campbell | 2015-11-13 22:48:50 +0000

Adjust trap placement in a bailey
There's no point randomising these in the way there were previously now while
still having them be known to avoid spoilers - instead give them a chance to
force the traps to block the path, and a chance to just not appear.

--------------------------------------------------------------------------------
b9347a1392 | Chris Campbell | 2015-11-13 22:48:50 +0000

Make some "unobtainable" items more unobtainable

--------------------------------------------------------------------------------
fa164359fe | Chris Campbell | 2015-11-13 22:48:50 +0000

Fix capitalisation in a rune message

--------------------------------------------------------------------------------
c9547a34d1 | Chris Campbell | 2015-11-13 22:48:50 +0000

Allow reskilling out of skills below 1.0 (#10062)
Not that it's a particularly worthwhile thing to do, but since reskilling now
no longer stops at 1 there's no special reason to have that be a breakpoint
for being able to use the ability.

--------------------------------------------------------------------------------
944f6647d6 | Shmuale Mark | 2015-11-13 13:55:08 -0500

Make fliers pathfind around traps.
Since they have no special immunity now.

--------------------------------------------------------------------------------
a921f71caf | Shmuale Mark | 2015-11-13 13:52:36 -0500

Make eyes/moths/masses pathfind around glass.

--------------------------------------------------------------------------------
af82852780 | Neil Moore | 2015-11-12 16:45:43 -0500

Don't extend lifetimes of thrown chunks (implojin, elliptic)
Every time a chunk was thrown, you.elapsed_time was being added to its
expiration date.

--------------------------------------------------------------------------------
6138560598 | ontoclasm | 2015-11-12 12:39:08 -0600

Edit merfolk tile colors

--------------------------------------------------------------------------------
0c48b46bfa | ontoclasm | 2015-11-11 23:26:14 -0600

Silent Spectre tile

--------------------------------------------------------------------------------
b542d0457f | Neil Moore | 2015-11-11 22:54:52 -0500

Support doll tiles for artefact helmets.
Tile 'etheric_cage' for part 'BODY' not found in 'dc-player.txt'.

--------------------------------------------------------------------------------
35238c0a4e | ontoclasm | 2015-11-11 21:50:34 -0600

New merfolk tiles

--------------------------------------------------------------------------------
54408695d5 | Shmuale Mark | 2015-11-11 18:44:07 -0500

Put EE starting stones on b (|amethyst).

--------------------------------------------------------------------------------
3fe7f8bb5c | gammafunk | 2015-11-11 16:25:23 -0600

Don't use permarock in an Elf vault

--------------------------------------------------------------------------------
3d07ce03fc | DJgamer98 | 2015-11-11 15:33:37 +0100

Update /nl/ability.txt
Added translation for Sacrifice an Eye.
--------------------------------------------------------------------------------
8e24558f68 | gammafunk | 2015-11-11 03:26:22 -0600

Remove columnise-credits.pl
This script was used to have the build produce a version of CREDITS.txt
have columnised names. However it's not necessary and introduces a Perl
module depency that apparently can't be fullfilled with default packages
on some distributions.

--------------------------------------------------------------------------------
da9d8c9d29 | gammafunk | 2015-11-10 22:37:38 -0600

Tweak glyphs in a vault
Remove the chance for clear permarock, since that's not used without
good reason, and remove the chance for an orcish idol, since this vault
has no such theme.

--------------------------------------------------------------------------------
76764e3a0c | Shmuale Mark | 2015-11-10 11:47:26 -0500

Fix attack speed on @ for ranged weapons with no ammo.

--------------------------------------------------------------------------------
2733cf4fda | Shmuale Mark | 2015-11-10 11:47:24 -0500

Fix issues related to display of attack speed.
Fixes #10064 by checking for a shield delay explicitly in
_display_attack_delay (and by improving the messages).

No longer able to reproduce #7984.

Fixes #9818 by showing the minimum possible attack speed in the
description menu. This could be argued to be misleading, since you won't
always get that speed once you reach the given level, but the tweaks to
the text should clarify things.

actor::attack_delay had its signature changed significantly; instead of
passing in a bool to control whether to randomise, the caller has the
reponsiblity to choose how to use the random_var it returns. Some of its
now-unused parameters were removed; it only makes sense to be called with
the actor's weapon so that parameter was removed as well.

The stuff that finesse_adjust_delay was doing looked buggy, as the weapon
delay shouldn't be taking you.time_taken into account. From testing, the
simpler code seems to work fine.

--------------------------------------------------------------------------------
aee3416ef5 | Shmuale Mark | 2015-11-10 11:47:22 -0500

Simplify.

--------------------------------------------------------------------------------
a1704d900e | Pekka Lampila | 2015-11-10 16:50:42 +0200

Use the sacrifice resistance tile.

--------------------------------------------------------------------------------
3d10a90a48 | Eino Keskitalo | 2015-11-10 16:30:56 +0200

Tutorial: Add mouse into the movement key diagram itself.
Cram the line about moving with mouse into the diagram, sparing a line and a 
--more-- on local tiles.

--------------------------------------------------------------------------------
716538cfde | gammafunk | 2015-11-09 22:20:13 -0600

Don't show empty background groups on the background selection menu

--------------------------------------------------------------------------------
4672744be0 | Corin Buchanan-Howland | 2015-11-09 21:12:27 -0500

Dice up juggernaut melee (elliptic, devteam)
But definitely not gammafunk.

--------------------------------------------------------------------------------
a2cd93b95e | Neil Moore | 2015-11-09 19:17:10 -0500

Fix whitespace in a translation.
[skip ci]

--------------------------------------------------------------------------------
5787f9c3e2 | Neil Moore | 2015-11-09 19:15:18 -0500

Move Ely lifesaving ability back to p by default.
So that 1. the first five abilities keep their letters from 0.16; and
2. we don't step on the 'f' slot.

--------------------------------------------------------------------------------
4f0857d51f | Neil Moore | 2015-11-09 19:07:59 -0500

Don't shift up draconian god ability slots.

--------------------------------------------------------------------------------
789eb7d37c | Eino Keskitalo | 2015-11-09 16:51:18 +0200

Correct and doxygenize a comment.
maybe_mons_speaks never returned anything.

--------------------------------------------------------------------------------
c15d2f0163 | gammafunk | 2015-11-08 17:45:34 -0600

Don't place permarock in a Tomb vault

--------------------------------------------------------------------------------
51eb05832a | elliptic | 2015-11-08 13:53:01 -0500

Fix disturbances blocking autoexplore at long range.
This was broken by a squarelos commit that forgot that C_CIRCLE uses a
different scale from other circle_types... oops.

--------------------------------------------------------------------------------
15541d7c39 | Steve Melenchuk | 2015-11-07 19:04:30 -0700

Fix some NSUBSTs in dis_grunt_layers.
The intent was to have some of the glyphs randomly be doors or not, not
the entire set of glyphs randomly be doors or not, so the vault was
either placing too few doors (usually) or too many doors.

--------------------------------------------------------------------------------
b630132398 | Eino Keskitalo | 2015-11-07 22:38:46 +0200

Fix missing space in Dithmenos umbra power description.

--------------------------------------------------------------------------------
409e6b20eb | Steve Melenchuk | 2015-11-07 11:03:44 -0700

Update the manual further for 0.17 (MarvinPA)

--------------------------------------------------------------------------------
a81a8fbd1f | Steve Melenchuk | 2015-11-07 09:12:19 -0700

Don't crash on items with (value)- properties.
LLLaaassstttyyy

--------------------------------------------------------------------------------
359820c57a | ontoclasm | 2015-11-07 09:47:38 -0600

Sacrifice eye tile

--------------------------------------------------------------------------------
d70a694e92 | Corin Buchanan-Howland | 2015-11-07 09:51:16 -0500

Nerf robe of vines (elliptic)
Enchantment down to +2, regen down to +7. It was a little too powerful.

--------------------------------------------------------------------------------
aa6dd30004 | Corin Buchanan-Howland | 2015-11-07 09:50:01 -0500

Revert "Nerf Kryias (elliptic)"
This reverts commit 6e70ec0d4106b091ca9d183eb5d2e20be6d08e65.

--------------------------------------------------------------------------------
6e70ec0d41 | Corin Buchanan-Howland | 2015-11-07 09:40:42 -0500

Nerf Kryias (elliptic)
The new values are +2 and regen+7

--------------------------------------------------------------------------------
01092ca40e | Corin Buchanan-Howland | 2015-11-07 09:38:43 -0500

Change inscriptions for items with absurd numbers of plusses.
Now if an item would have >4 plusses (c.f. robe of vines), it'll be displayed
as, say Regen+10 instead of Regen++++++++++.

--------------------------------------------------------------------------------
a5d3d20d67 | Corin Buchanan-Howland | 2015-11-07 09:37:45 -0500

Change robe of vines inscription

--------------------------------------------------------------------------------
7dfd161aa4 | Chris Campbell | 2015-11-07 00:33:36 +0000

Partially update the manual for 0.17
The appendices still need to be checked over (in particular I expect the list
of enchantments is very out-of-date), and there are likely plenty of things I
missed.

--------------------------------------------------------------------------------
d105b5ab64 | Pekka Lampila | 2015-11-06 21:43:23 +0200

Remind online trunk players about the tournament.
If you run a dgamelaunch crawl server that isn't participating in the
tournament, use: make EXTERNAL_DEFINES=-UTOURNEY

--------------------------------------------------------------------------------
06172c49eb | gammafunk | 2015-11-06 07:03:04 -0600

Update the debian changelog for 0.17

--------------------------------------------------------------------------------
87a63a2493 | gammafunk | 2015-11-06 05:46:55 -0600

Some final 0.17 changelog additions

--------------------------------------------------------------------------------
45ca8e4d32 | Shmuale Mark | 2015-11-05 22:42:11 -0500

Merge pull request #154 from oblivionis/patch-1
Update /ru/branches.txt
--------------------------------------------------------------------------------
402c68ff25 | Chris Campbell | 2015-11-06 00:09:47 +0000

Display Abjuration in monster spell lists
For monsters that know a summoning spell that also gives them access to
Abjuration.

--------------------------------------------------------------------------------
56b16cbc91 | Chris Campbell | 2015-11-05 20:54:33 +0000

Fix some tutorial 3 issues
Remove the alarm trap, since it often woke up later monsters and messed with
the wand lesson, and replace it with a do-nothing trap. Also replace the potion
of cancellation, since it was just there because of the alarm trap (and is a
slightly weird/complicated potion for the basic tutorial).

--------------------------------------------------------------------------------
3479c78ef7 | Pekka Lampila | 2015-11-05 19:17:22 +0200

Don't mention (lack of) weight in tutorial lesson 3.
[skip ci]

--------------------------------------------------------------------------------
ad9da0288d | Pekka Lampila | 2015-11-05 18:49:49 +0200

Fix non-WebTiles builds (oops).

--------------------------------------------------------------------------------
61164af0e9 | Pekka Lampila | 2015-11-05 18:42:07 +0200

Fix end stairs in tutorial 1 being out of LOS.
Due to LOS being smaller now the instructions to travel to the stairs
were given too early. Moved the instruction square closer.

--------------------------------------------------------------------------------
ac8bcfa078 | Pekka Lampila | 2015-11-05 18:30:33 +0200

Revert "Don't let players abort Fedhas' growth ability (smitnitch)"
This reverts commit 7c466894c91dbd1c6e00dfeb417869c0a2e10a52.

Conflicts:
	crawl-ref/source/godabil.cc

--------------------------------------------------------------------------------
872e5c0e71 | Pekka Lampila | 2015-11-05 18:22:52 +0200

Revert "Refactor Fedhas' growth ability a bit further."
This reverts commit 2f3d35e6c7f3bdc47b7d2073a9baff6fce12ce96.

Conflicts:
	crawl-ref/source/godabil.cc

--------------------------------------------------------------------------------
50fbd40fe3 | unknown | 2015-11-05 11:16:25 -0500

Fix documentation of the macros option (amalloy)

--------------------------------------------------------------------------------
7390b24d01 | Pekka Lampila | 2015-11-05 18:14:17 +0200

Fix WebTiles detection of tutorial game ending normally.
It would show "game ended unexpectedly" before this.

--------------------------------------------------------------------------------
c95b5c376a | gammafunk | 2015-11-05 03:44:42 -0600

Don't place an impassable statue in the god tutorial
An incorrect glyph was used when the tutorial was last updated. Also
remove decorations for an unused glyph.

--------------------------------------------------------------------------------
9e10395729 | Chris Campbell | 2015-11-04 22:08:09 +0000

Don't let gold distraction affect firewood
In particular Zin pillars of salt and Glaciate ice blocks - plants already
didn't trigger it by virtue of being speed 0.

--------------------------------------------------------------------------------
76da368aa8 | Chris Campbell | 2015-11-04 22:08:09 +0000

Adjust Gozag passive ability description
Since glittering piles of gold no longer exist - maybe this could be worded
better to indicate that the effect triggers on kills.

--------------------------------------------------------------------------------
d058a8d143 | Chris Campbell | 2015-11-04 20:56:39 +0000

Fix a changelog typo

--------------------------------------------------------------------------------
52c0daa95b | Neil Moore | 2015-11-04 01:38:51 -0500

Don't repeat offscreen explosion noise per victim (hibitualliar)
bolt::noise_msg was being printed not only when the beam exploded out of
sight, but also once for each out-of-sight monster affected by the beam
(including the explosion).  Split it into two different members,
{explode,hit}_noise_msg, and print each at the appropriate time.

It turns out that all the existing uses of noise_msg were explosions, so
hit_noise_msg is unused and should perhaps be removed.

--------------------------------------------------------------------------------
ce27f3ce58 | Steve Melenchuk | 2015-11-03 19:12:37 -0700

Fix snake_hunt generating doors (and floor?) in rock.
This was causing the veto that the previous commit was intended to fix,
so tagging the vault opaque is no longer necessary.

--------------------------------------------------------------------------------
f3cdd8e41f | Steve Melenchuk | 2015-11-03 19:00:53 -0700

Tag snake_hunt as opaque.
As mentioned in the vault description, it frequently places doors
embedded in walls, causing it to veto if it isn't opaque and thereby
making it generate much less often than it should. Until I can figure
out how to fix the randomisation properly to prevent this, this should
at least have it appear as often as it once did.

--------------------------------------------------------------------------------
1f73fa304c | gerbias | 2015-11-03 22:22:09 +0200

Make steel ammo description more accurate
Currently steel ammo claims to do an extra 30% damage, however
this only applies to the base damage.

[Committer's note: Only used part of the patch]

--------------------------------------------------------------------------------
a178fcdaa6 | Pekka Lampila | 2015-11-03 21:37:57 +0200

Fix ring tiles changing after ID. (#9819)

--------------------------------------------------------------------------------
5abf10f7f4 | Nicholas Feinberg | 2015-11-02 21:48:20 -0800

Don't make sticky flame dispellable
...by quicksilver-type effects, when on monsters.

Seems to have been accidentally (?) added in bec3f758, as part of
an unrelated set of changes. Not consistent with the player
behavior and doesn't really make any sense; I consider this a
bugfix.

--------------------------------------------------------------------------------
6e1425966c | Neil Moore | 2015-11-02 22:38:41 -0500

Make meph-vs-player warnings more consistent (#10046)
If a player has clarity but neither rPois nor unbreathing, mephitic
clouds won't confuse, but will do a tiny amount of damage (1d3 - 1) each
turn.  The self-targetting prompt ignored that damage (so didn't
prompt), while the walk-into-clouds prompt heeded it (so did prompt).

Now, in both cases, only prompt if the player has two or fewer HP
(adjusted for movement speed if we are walking into the cloud). That way
only those players at immediate risk of dying will be bothered by the
prompt, and such players will be bothered in both situations, not just
walking into an existing cloud.

--------------------------------------------------------------------------------
19353e1a78 | Neil Moore | 2015-11-01 20:43:49 -0500

Simplify with std::any_of.

--------------------------------------------------------------------------------
1641c799cb | Edgar A. Bering IV | 2015-11-01 20:37:39 -0500

Don't let Dragon Form Vine Stalkers bite all the time (#9879)

--------------------------------------------------------------------------------
5a5d57c8fd | Edgar A. Bering IV | 2015-11-01 20:37:35 -0500

Fedhas forgives confused enemies killing plants (#9917)

--------------------------------------------------------------------------------
aede79136c | Chris Campbell | 2015-11-01 18:10:22 +0000

Recolour Infusion/PProj status lights when out of MP (#10042)
To make it clearer that they'll have no effect when MP is depleted.

--------------------------------------------------------------------------------
8b99b3aac4 | Shmuale Mark | 2015-10-31 22:49:15 -0400

Wording tweak (#9724).

--------------------------------------------------------------------------------
015846530d | Hong Won Gi | 2015-10-31 22:39:43 -0400

update dat/description for korean

--------------------------------------------------------------------------------
8f701cd0e4 | Shmuale Mark | 2015-10-31 22:22:29 -0400

Fix corpses in shops (#10040).

--------------------------------------------------------------------------------
807cb661b5 | Shmuale Mark | 2015-10-31 21:52:58 -0400

Fix compilation (doh).

--------------------------------------------------------------------------------
f884dc6bb2 | Edgar A. Bering IV | 2015-10-31 21:41:54 -0400

Prevent tentacle segments from being shafted (10038)
In monster::do_shaft check if we're a tentacle and abort if we
are.

--------------------------------------------------------------------------------
f721adac6b | Shmuale Mark | 2015-10-31 21:29:24 -0400

Consolidate note-taking on monster death.
The deleted comment seems to be referring to an old version
of Mara's spell that summoned a player ghost. As far as I can
tell it is no longer true.

--------------------------------------------------------------------------------
16e30ff6f2 | Shmuale Mark | 2015-10-31 21:24:10 -0400

Remove MF_INTERESTING.

--------------------------------------------------------------------------------
c849c288e4 | Edgar A. Bering IV | 2015-10-31 21:00:34 -0400

Don't buggily note defeats of summoned interesting monsters (9635).

--------------------------------------------------------------------------------
36ac80796b | Shmuale Mark | 2015-10-31 20:52:10 -0400

Remove some manual upweightings from the days of victory dancing.

--------------------------------------------------------------------------------
f51979770c | Nicholas Feinberg | 2015-10-31 15:59:18 -0700

Improve manual acquirement code :feelsgood:
This commit is mainly a test of github's emoji system.

--------------------------------------------------------------------------------
d4dcb6f30d | Edgar A. Bering IV | 2015-10-31 14:59:33 -0700

Properly check shield-compat in can_wear_armour()
Moves some checks from do_wear_armour to can_wear_armour, in the
hopes of fixing a wanderer bug.

--------------------------------------------------------------------------------
0de29c155e | Chris Campbell | 2015-10-31 18:28:03 +0000

Remove an obsolete monster description (PleasingFungus)

--------------------------------------------------------------------------------
9fb007e7b7 | Nicholas Feinberg | 2015-10-31 11:19:09 -0700

Don't transmute hats into robes (amalloy)
For formicid wizards, who can't wear hats (but already start with
a robe!)

A better solution might be to deduplicate newgame items, but that
would be trickier.

--------------------------------------------------------------------------------
c16d8d21cd | Chris Campbell | 2015-10-31 17:58:27 +0000

Display the effects of Focus card in the message area (#10037)

--------------------------------------------------------------------------------
f1fb587417 | Seve Monahan | 2015-10-31 00:10:42 -0400

Change "faith removal message to "You feel less pious."
Rather than the leach/leech message.

--------------------------------------------------------------------------------
b3e12acbf4 | Seve Monahan | 2015-10-30 23:29:59 -0400

Don't mispell "leech" (player-equip.cc)

--------------------------------------------------------------------------------
0c350e8d0f | Chris Campbell | 2015-10-30 23:24:11 +0000

Update the tutorials

--------------------------------------------------------------------------------
0e512fa8db | ontoclasm | 2015-10-30 16:48:51 -0500

Lugonu altar tile

--------------------------------------------------------------------------------
fac8111ef2 | Neil Moore | 2015-10-29 23:35:28 -0400

Make brain-eating statues less natural.
All other statues have spells flagged 'magical' rather than 'natural'.
I guess the idea was that Wucad has psionic attacks, but that's just
reflavoured magic, really.

The upshot is that antimagic now works against these statues, as it did
against all other statues.

Orb golems in Arena Sprint are also questionable (but unchanged): even
orb spiders have IOOD flagged as "magical", and those are more natural
than golems are.

--------------------------------------------------------------------------------
65a628d3b0 | Alex Jurkiewicz | 2015-10-30 12:10:13 +1100

Make friendly doggies nicer.

--------------------------------------------------------------------------------
151de890c7 | gammafunk | 2015-10-29 17:37:55 -0500

Initial 0.18-a0 changelog
You open the 0.18 season. A chaos nexus crawls out!

--------------------------------------------------------------------------------
abe5a53eda | gammafunk | 2015-10-29 17:31:17 -0500

List the final 0.17 version in the changelog
along with a tentative release date, which should be updated if we don't
release on Nov. 6th.

--------------------------------------------------------------------------------
0da9ddf72e | gammafunk | 2015-10-29 17:23:24 -0500

In the release guide, use -a in the example git tag command
The author can sign the tag if they wish, but we don't require this, and
using -s if their key isn't set up will just cause them to write the tag
message and then get an error with the tag still not made.

--------------------------------------------------------------------------------
17fd4a4ae5 | gammafunk | 2015-10-29 17:12:09 -0500

Fix the example date command in the debian package guide
to include the full time.

--------------------------------------------------------------------------------
19d33c2cee | infiniplex | 2015-10-29 16:01:44 -0500

Removed most doors from layout_gridville (#8942)
- Removes most (60%) of the doors.
- Increases the minimum room size by 1 unit to remove size 1 rooms.

Commiter's Note: Added notes from the mantis issue.

--------------------------------------------------------------------------------
d80ca38ea2 | Chris Campbell | 2015-10-28 21:31:19 +0000

Remove some cases of vault-specified monster spellsets
For monsters with multiple spellsets, remove most cases of vaults manually
picking one of these sets. In general this was done for thematic reasons, but
in all these cases the theme still works without secretly messing with the
monster spellset. It was also prone to the spellsets falling out of sync with
changes to monsters.

--------------------------------------------------------------------------------
36a3caf1b4 | Chris Campbell | 2015-10-28 21:31:14 +0000

Remove a sewer vault relying on monster Animate Dead

--------------------------------------------------------------------------------
65ffd13e13 | gammafunk | 2015-10-28 15:48:42 -0500

Update the changelog version

--------------------------------------------------------------------------------
d257955920 | gammafunk | 2015-10-28 15:46:57 -0500

Changelog through 0.17-a0-2227-g3b849ff
Put on your distressingly furry robe, because it's almost time for
FREEZE!

--------------------------------------------------------------------------------
3b849ffdc7 | Neil Moore | 2015-10-28 13:34:47 -0400

Remove another side-effect from an assert.

--------------------------------------------------------------------------------
c28355e243 | Neil Moore | 2015-10-28 13:34:47 -0400

Unbrace.
[skip ci]

--------------------------------------------------------------------------------
9662c6056c | gammafunk | 2015-10-28 05:21:01 -0500

Rework a spider-themed Depths vault for the Spider branch
This vault placed numerous mid-level spiders and some mid-level Snake
monsters, along with a few acid-themed monsters. It wasn't appropriate
for a Depths vault and works much better as a Spider vault with
appropriate adjustments.

The spiders are made a bit more general, entropy weavers replace the
Naga, and an emperor scorpion guards the main entrance. The number of
oklobs is reduced to two, but it still has a chance to place a nastier
statue, which now can include an orange crystal statue. Various lines
have been refactored as necessary.

--------------------------------------------------------------------------------
e11bff740e | gammafunk | 2015-10-28 05:17:28 -0500

Remove relatively trivial unaccompanied statues from later-branch vaults
Unaccompanied ice and obsidian statues don't pose a threat in the most
difficult branches. This commit removes the instances of these from
Crypt, Elf, Vaults, and Depths. Instances where these statues place in
these branches with significant monsters nearby are left unchanged.

The vault minmay_ice_pillars is moved to D:11-,!D:$, given no_tele_into,
and a lower weight, since its main vault will be fairly dangerous at
that depth. As a Depths vault, it was quite weak.

--------------------------------------------------------------------------------
ffb5b294c2 | gammafunk | 2015-10-28 05:11:22 -0500

Make orange crystal statues speed 10 and give them shadow creatures
Orange crystal statues had a difficult time posing a threat after their
rework from the older, notorious version. Before this commit, they had
an effective action speed of 1.8 aut and no means of directly damaging
the player. Now they have an effective action speed of 6 and shadow
creatures, which makes them a threat on any level they could
appear.

This is a weakened form (in terms of action frequency and HP) of the
lunar statue orange crystal statue vault-define I used in
wizlab_lehudib, which has proven not too lethal but significant enough
to get players into trouble if they don't approach the fight
carefully. Both the lunar statue and Wucad Mu statue vault defines have
had their spell frequencies adjusted to give them the same effective
speed as before this commit.

I've left them in the Zot:5 vault for now, even though shadow creatures
is particularly nasty in Zot, since these are very avoidable monsters
with fairly low HP and defenses. If they prove to be too much, then they
can be fully replaced with obsidian statues in that vault.

--------------------------------------------------------------------------------
d251c37fe9 | gammafunk | 2015-10-28 05:10:08 -0500

Increase the casting frequency of obsidian statues
These appear somewhat often in the later Dungeon and even more so in
later branches, yet struggle to be as dangerous as ice statues given an
action rate of 30%. This increases the chance of their acting to 50%.

--------------------------------------------------------------------------------
4fd0577c32 | gammafunk | 2015-10-28 05:09:02 -0500

Make ice statues speed 10 with adjusted spell frequencies
Having a ice statues show a "very fast" speed listing in xv is
confusing, since they have an effective speed of 4.8 due to their spell
frequency total of 60. It may make the most sense in terms of
communicating their behavior to the player to simply make these speed 5
and have a spell frequency total of 200, but I'm opting to retain their
behavior of having an appreciable chance of doing nothing on any turn
they could act. They now have speed 10 and a spell frequency total of
100, giving them an effective speed of 5.

--------------------------------------------------------------------------------
6fea7410b7 | Shmuale Mark | 2015-10-27 22:17:38 -0400

Merge pull request #169 from michaelbarlow7/asserts-bug
Removed important methods from within ASSERTs
--------------------------------------------------------------------------------
43caaf9b0e | Michael Barlow | 2015-10-28 09:34:43 +1100

Removed important methods from within ASSERTs
If asserts are not switched on during compilation, these methods are not
called, resulting in strange behaviour in-game (mobs don't follow the
player downstairs)

--------------------------------------------------------------------------------
c8711a14e6 | Chris Campbell | 2015-10-27 19:48:41 +0000

Make Gozag's Call Merchant always place shops at the player's feet
Making shop placement depend on which dungeon levels have been generated results
in weird behaviour for spoiled players, such as saving late levels of D to allow
them to still generate shops there before the ability starts placing shops in
Vaults and then Depths, making the shops generally inaccessible until a rune is
found. It also results in the ability suddenly working in a completely different
way once all of D/V/U are explored.

It might be possible to come up with some alternate implementation where shops
still require some exploration before being placed, but without the spoiler
issues and inconsistent behaviour, but in the meantime (for 0.17) this is
hopefully a simple improvement.

--------------------------------------------------------------------------------
a280b8d143 | Chris Campbell | 2015-10-27 16:55:38 +0000

Fix Gozag bribe handling for the Hells
Fixes some incorrect handling of bribes when standing on the staircase to a
Hell sub-branch - the bribe would go to the wrong place (to the individual
sub-branch, which doesn't have any effect), and the player could also be
prompted twice if they answered no to the first prompt.

--------------------------------------------------------------------------------
e317983a06 | oblivionis | 2015-10-27 19:26:32 +0300

Update branches.txt

--------------------------------------------------------------------------------
73fe096001 | Chris Campbell | 2015-10-27 15:56:07 +0000

Fix Zin's mutation curing still requiring an empty floor space
It still had the check despite not creating an altar any more.

--------------------------------------------------------------------------------
49c1de045d | Neil Moore | 2015-10-26 23:05:26 -0400

Move Gift Necronomicon to N by default (ontoclasm)
It had been assigned to Y, but that meant a Hill Orc of Kiku would
get the Beogh pitch on Z.

I considered V, but ontoclasm's suggestion of N is just as distinctive
and perhaps more mnemonic, not that it matters much for an ability you
will use at most once.

--------------------------------------------------------------------------------
3c052a84d9 | Neil Moore | 2015-10-26 22:56:29 -0400

Restore capital letters for one-time god abilities.
Those letters were assigned by _find_ability_slot(), but that function
was not even called for god abilities.  Now it is.

Try to keep the "normal" a-e god abilities in fixed slots, even if
earlier abilities are remapped.  That is, "ability_slot = Berserk:z"
shouldn't cause Trog's Hand to shift down to 'a'.  This isn't a change
in behaviour (that's how set_god_abilities worked before), but did
require a change to find_ability_slot's signature.

--------------------------------------------------------------------------------
118695ef12 | DrKe | 2015-10-26 19:11:42 -0700

Tweak Zin ability letters
Put Donate Gold on "e", after more commonly used invocations.
--------------------------------------------------------------------------------
754f01c540 | Steve Melenchuk | 2015-10-26 19:23:49 -0600

Remove a stray wall from cerebov_grunt_fire_and_steel.
Oops.

--------------------------------------------------------------------------------
bb7320eed7 | Pekka Lampila | 2015-10-26 17:55:35 +0200

Fix kobold shield offset (#9953).

--------------------------------------------------------------------------------
2f3d35e6c7 | Seve Monahan | 2015-10-26 11:13:09 -0400

Refactor Fedhas' growth ability a bit further.

--------------------------------------------------------------------------------
7c466894c9 | Seve Monahan | 2015-10-26 11:13:04 -0400

Don't let players abort Fedhas' growth ability (smitnitch)
The placement of plants around the player was revealed and
non-deterministic. smitnitch's change to fix this was to make growth
deterministic, but that awkwardly makes some directions on the game gird
mechanically different from the others.

--------------------------------------------------------------------------------
e5ab1d3819 | Neil Moore | 2015-10-26 02:08:05 -0400

Actually restrict that to g++ 4.7, not 4.8.

--------------------------------------------------------------------------------
ecfcb12ebf | Neil Moore | 2015-10-26 02:04:29 -0400

Fix piety gain with g++ 4.7.

--------------------------------------------------------------------------------
471501cc9c | Neil Moore | 2015-10-25 23:52:27 -0400

Apply a similar workaround to like_response.
Just in case...

--------------------------------------------------------------------------------
03dd7ef6e0 | Steve Melenchuk | 2015-10-25 21:30:21 -0600

Work around an apparent gcc 5.x compiler bug (|amethyst).
The valid_victim function wasn't reaching godconduct.cc:153, causing e.g.
stabs on monsters that TSO doesn't mind you stabbing to trigger penance
when they shouldn't. I don't have a grasp of the details beyond that
other than that it only happens with gcc 5.x (not gcc 4.9.3 or clang).

--------------------------------------------------------------------------------
f7318e6592 | Neil Moore | 2015-10-25 23:26:02 -0400

Add some missing return types.
C++11 does not infer lambda return types if the function contains multiple
statements; in most cases this didn't matter, but it could have been a
problem for ATTACK_FRIEND_RESPONSE.

--------------------------------------------------------------------------------
187e5c8569 | Neil Moore | 2015-10-25 21:48:06 -0400

Log a couple of significant interface changes.
[skip ci]

--------------------------------------------------------------------------------
1e9daa3e6a | Neil Moore | 2015-10-25 21:40:19 -0400

Make auto_eat_chunks the default.
Perhaps this will reduce the complaints about the "stupid chunk game".
The previous commit provides a way (ctrl-A) to reduce the danger of this
option without turning it off entirely.

--------------------------------------------------------------------------------
ab334016f0 | Neil Moore | 2015-10-25 21:40:19 -0400

Make ctrl-A and invis creatures disable auto_eat_chunks too.
Since the situations where you don't want to autopickup are usually
the same situations where you don't want to eat.

--------------------------------------------------------------------------------
ff76b6bbdb | Steve Melenchuk | 2015-10-25 18:55:42 -0600

Changelog through 0.17-a0-2199-gca56801.
Add more highlights! I command thee!

--------------------------------------------------------------------------------
ca56801d3f | Neil Moore | 2015-10-25 20:27:44 -0400

Remove a cTele reference in levels docs (dpeg)
[skip ci]

--------------------------------------------------------------------------------
482c6e3502 | Seve Monahan | 2015-10-25 16:08:46 -0400

Don't show the [!] selection when drinking !xp.
Broken by letting players see skill costs. Note that wizmode has always
shown the [!] selection while drinking !xp, even before the skill costs
change. To test this commit, I set an entry vault to have a high weight
and spawn potions of experince.

--------------------------------------------------------------------------------
c5d9b27a1f | Seve Monahan | 2015-10-25 16:08:46 -0400

Show skill cost by default if default_manual_training is set
As opposed to showing the skill train percentage. This can still be
toggled in-game with "!".

--------------------------------------------------------------------------------
b5d0b9c4c4 | Shmuale Mark | 2015-10-25 15:38:44 -0400

Simplify auto_assign_ability_slot parameters.

--------------------------------------------------------------------------------
52b2fcf9a6 | Shmuale Mark | 2015-10-25 15:35:36 -0400

Remove two unused (since ZotDef removal) ability flags.

--------------------------------------------------------------------------------
fe5d3fac54 | Shmuale Mark | 2015-10-25 15:35:35 -0400

Spoil a secret tech (#9688).

--------------------------------------------------------------------------------
a4da917f38 | Steve Melenchuk | 2015-10-25 13:15:45 -0600

Updates to layout_pan_divisions (#8985).

--------------------------------------------------------------------------------
74be16ddab | Neil Moore | 2015-10-25 15:12:56 -0400

Handle case-insensitive item_slot patterns less brokenly.
Converting the regexp to lowercase is broken if we are using PCRE
features like \S, or if the item name has uppercase characters.  Turn
on the text_pattern case-insensitive flag instead.

--------------------------------------------------------------------------------
5f5b4e82ac | Neil Moore | 2015-10-25 15:12:11 -0400

Match item_slot against prefixed full names (gammafunk)
For compatibility, also match against the qualname as before.

--------------------------------------------------------------------------------
d36be1f092 | Steve Melenchuk | 2015-10-25 13:10:47 -0600

Add our new vaulters to CREDITS.txt.

--------------------------------------------------------------------------------
330b3834ce | Steve Melenchuk | 2015-10-25 13:04:55 -0600

A generic overflow vault from Marbit (#9718).
This wasn't originally an overflow vault, but by paring down the number
of monsters it places it should work beautifully for this purpose.

--------------------------------------------------------------------------------
59644b31cc | Mark Donahue | 2015-10-25 13:04:54 -0600

New overflow Veh/Sif/Kiku altar vault (#10015).
[Committer's note: de-runed the doors - a deep elf mage on its own is
 not too overwhelming of a threat to lock it up on the rare occasions it
 does appear. I think the generation logic can be simplified, but I
 can't immediately see how.]

--------------------------------------------------------------------------------
86acb078a7 | bfilia | 2015-10-25 13:04:54 -0600

A simple arrival vault (#9955).
[Committer's note: changed the floor glyph and added some colour for
 console players.]

--------------------------------------------------------------------------------
3bd7c2a3c6 | Steve Melenchuk | 2015-10-25 13:04:54 -0600

kennysheep baileys (#9904).
I halved the contents of the store rooms in axe_of_yendor. These are
otherwise untouched.

--------------------------------------------------------------------------------
499c6bd013 | Steve Melenchuk | 2015-10-25 13:04:50 -0600

A few kennysheep vaults (#9682).
I've made some modifications and omitted a lot of them - see bug for
details.

--------------------------------------------------------------------------------
fa60a0ecc0 | Steve Melenchuk | 2015-10-25 12:28:40 -0600

Snake, Spider and Swamp endings from johnstein (#9609).

--------------------------------------------------------------------------------
7673304cbc | Steve Melenchuk | 2015-10-25 12:17:15 -0600

A batch of Hell endings.

--------------------------------------------------------------------------------
696773cfa6 | Neil Moore | 2015-10-25 13:49:49 -0400

Don't crash on Beogh worship offers.
Turns out your_talents was not the only user of get_talent(...).hotkey.

--------------------------------------------------------------------------------
53cf1ce1d3 | Seve Monahan | 2015-10-25 12:56:01 -0400

Add juggernaut zombie tile (Doesnt, hyperactiveChipmunk, #10010)

--------------------------------------------------------------------------------
0c4cd18d75 | Neil Moore | 2015-10-25 11:48:01 -0400

Don't generate runed plain gloves for Nikola (#9860)
The problem occurred when we generated +0 bracers of archery for Nikola.
We stripped off the inappropriate ego, but left the cosmetic flag in
place, even though the gloves were no longer special in any way.  Now,
recompute the cosmetic flag after removing the brand.

Do the same for holy wrath weapons generated for undead/demonic/Yredite
monsters, which could lead to an uncursed +0 "enchanted" weapon.

--------------------------------------------------------------------------------
61770761a2 | anch0vy | 2015-10-25 02:31:37 -0400

Clean up duplicate code at ability.cc
Remove duplicate function call. And change condition check order.

[committer's note: this results in 'a' while confused with no abilities
 reporting the confusion rather than the lack of abilities, but I think
 that's reasonable.  Closes #158 pull request. -nfm]

--------------------------------------------------------------------------------
2dcb908b3f | Neil Moore | 2015-10-25 02:31:37 -0400

Update documentation for *_slot, add ability_slot.
[skip ci]

--------------------------------------------------------------------------------
b4ce9488b0 | Neil Moore | 2015-10-25 02:31:36 -0400

Avoid duplicated hotkeys in ability menu.
This would happen if a later ability remapped an earlier one (and would
be fixed by re-entering the menu).  Fix this by only assigning menu
hotkeys after all the abilities were assigned letters.

--------------------------------------------------------------------------------
c95d3ae6e7 | Sandman25 | 2015-10-25 02:31:36 -0400

Fix manual ability assignment.
[committer's note: required additional changes to handle the new
 god-ability code.]

--------------------------------------------------------------------------------
62e35fbd1c | Neil Moore | 2015-10-25 02:31:36 -0400

Show correct ability name after swapping.
We were showing the new slot with the ability that used to be there,
which might not even have been assigned.

--------------------------------------------------------------------------------
d8a23fa97b | Sandman25 | 2015-10-25 02:31:35 -0400

Keeping last_pickup when swaping items

--------------------------------------------------------------------------------
ce1396ee41 | Sandman25 | 2015-10-25 02:31:35 -0400

Add ability_slot option.
In addition to the original patch:

Allow the user to enable/disable overwriting in *_slot options.  A + in
the letter list turns on overwriting (swapping with existing letter
assignments) for the subsequent letters, while a - turns it off.
Default is on for item_slot, off for ability_slot and spell_slot.

[Committer's note: Updated and rebased by hyperactiveChipmunk, many
 thanks. Closes #162 pull request. -nfm]

--------------------------------------------------------------------------------
77e77cea41 | Neil Moore | 2015-10-25 02:31:35 -0400

Unassign old, not new, god abilities when changing gods.

--------------------------------------------------------------------------------
a91b4ecfd4 | Neil Moore | 2015-10-24 23:38:14 -0400

Revert "Merge pull request #150 from aolowin/def_counts"
It made no attempt to correctly transfer action counts in existing
games, causing wrong labels and crashes when dumping transferred games
(including dump_on_save).  Furthermore, a negative subtype was resulting
in an auxtype of -2 (because auxtype+1 was being |ed with the full 32
bits of the subtype).

Reverting now so that we don't get hard-to-correct breakage when
people transfer games on the server.

This reverts commit 2e713f500f500519f661967d4f66a74b56fec30a, reversing
changes made to 737421dcb70a7527818dec94b99093109568ead6.

--------------------------------------------------------------------------------
6b6b10b78f | Neil Moore | 2015-10-24 22:50:01 -0400

Make full-screen ability menu optional.
This partially reverts commit 9b1115b9bf7f90c21a395c7d22b50ef19684448d.

--------------------------------------------------------------------------------
3b16ee1d16 | gerbias | 2015-10-24 21:03:47 -0400

Rod recharging output change
Currently the new enchantment of the rod is displayed
in the message after enchanting a rod; this is not
consistent with enchanting weapons or armour, so
change it.

--------------------------------------------------------------------------------
6cc963f6b2 | Shmuale Mark | 2015-10-24 20:30:46 -0400

Update qw for MUT_SLOW_REGENERATION name change.

--------------------------------------------------------------------------------
0c16763574 | Shmuale Mark | 2015-10-24 20:30:45 -0400

Remove code for BEAM_ATTRACT entirely.
Beams are entirely ephemeral; they should never be marshalled.

--------------------------------------------------------------------------------
b7556f7541 | Shmuale Mark | 2015-10-24 20:30:43 -0400

Avoid an unnecessary allocation.

--------------------------------------------------------------------------------
def1533338 | Shmuale Mark | 2015-10-24 20:30:41 -0400

Fixup RNG code.
Remove duplicate functions, move everything but the generator
implementation itself out of pcg.cc, and add #defines for different
RNGs.

--------------------------------------------------------------------------------
2e713f500f | Shmuale Mark | 2015-10-24 20:27:05 -0400

Merge pull request #150 from aolowin/def_counts
Add tracking for defensive actions including:
--------------------------------------------------------------------------------
737421dcb7 | Neil Moore | 2015-10-24 18:13:30 -0400

Remove references to no_?tele_into (gammafunk)
[skip ci]

--------------------------------------------------------------------------------
6c54acd31d | Neil Moore | 2015-10-24 18:00:47 -0400

Unbrace (oops)
[skip ci]

--------------------------------------------------------------------------------
6d76252825 | Nicholas Feinberg | 2015-10-24 14:53:01 -0700

Tweak Gell's Gravitas's description
Felt wrong to have "that point" twice in one sentence.

--------------------------------------------------------------------------------
3f79c4963c | Nicholas Feinberg | 2015-10-24 14:50:43 -0700

Restore a deleted pcg comment
And tweak formatting slightly.

--------------------------------------------------------------------------------
59860d8ad5 | Neil Moore | 2015-10-24 17:46:10 -0400

Don't try to load ".cs" on an empty player name (#9976)
Just ask for another name, as we would do if no such file existed.

--------------------------------------------------------------------------------
b26de6de69 | Neil Moore | 2015-10-24 17:35:45 -0400

Don't auto-accept the next letter after a silly name.
The menu selection that attempted to start a game would still be in
effect, so the next keystroke would attempt to start the game again.

Also, make the 'silly name' message red as intended.

--------------------------------------------------------------------------------
061ca3bec2 | Neil Moore | 2015-10-24 17:33:20 -0400

Disallow . and ".   ." as player names (#9976)
We strip out all the dots and spaces before naming the save file, but
that results in a save named ".cs".  Reject names that consist only
of such "non-filename-safe" characters.

--------------------------------------------------------------------------------
42f57fb703 | Neil Moore | 2015-10-24 13:50:12 -0400

Fix compilation.
Doh, managed to push without amending the commit.

--------------------------------------------------------------------------------
b934ae2406 | Neil Moore | 2015-10-24 13:49:16 -0400

Make the RNG deterministic when seeded (10030)
We were using the contents of uninitialised memory as the increment.

--------------------------------------------------------------------------------
501c6074db | Steve Melenchuk | 2015-10-24 11:15:47 -0600

Let Gell's target empty space.
This may be overboard with the power curve adjustment - manipulating
enemy positions is quite powerful. Then again, it'll take a lot of
investment to make pulling a lone monster or two around worthwhile.

There's a bit of code here that lets Gell's also handle targetting
walls, but I'm leaving the checks against that in place as I think
letting the player smash enemies into walls at will makes the spell too
powerful (and also undercuts Force Lance, a higher level spell).

--------------------------------------------------------------------------------
7b5dfda4b8 | Steve Melenchuk | 2015-10-24 11:11:36 -0600

Some Gell's code cleanup.
A lot of this isn't necessary now that the spell smite-targets.

--------------------------------------------------------------------------------
f8b1a133a1 | Steve Melenchuk | 2015-10-24 10:57:26 -0600

Flatten Gell's power curve.
It was originally designed to be cast with a higher initial spellpower;
as such it was needlessly weak when it first came online at its new
spell level.

This recalibrates power 0 Gell's to be equivalent to old power 100
Gell's, getting strong half as fast until spellpower 200 matches with
old 200 spellpower. This should mean that its effect is a heck of a lot
more significant early on.

This also stops monsters at the target square if the monster previously
occupying it dies.

--------------------------------------------------------------------------------
9c1f3723b4 | Nicholas Feinberg | 2015-10-23 23:23:59 -0700

Streamline explosion code
Use a data structure & remove what seem to be quite a lot of
unecessary effects. (Hellfire is always already BEAM_HELLFIRE, for
example...)

--------------------------------------------------------------------------------
fb20a63673 | Neil Moore | 2015-10-23 21:11:52 -0400

Correct hostile-in-range check for Mephitic Cloud (#10029)
The tracer for the range check must do damage or it thinks there are no
eligible targets.  This had been special-cased for Meph, but once that
spell was changed to use a zap (0.17-a0-2128-g6372a0a), the special case
no longer triggered.

--------------------------------------------------------------------------------
959f09a595 | Neil Moore | 2015-10-23 19:27:54 -0400

Unbrace and unspace.
[skip ci]

--------------------------------------------------------------------------------
93953d251c | Neil Moore | 2015-10-23 19:25:03 -0400

Hack around some buggily-transferred abilities (Medar)
If we transferred a game from 0.14-era into a commit before
0.17-a0-2121-g4af814f, the 'convert to Beogh' ability was turned into
NUM_ABILITIES in you.ability_letter_table, triggering an assertion
failure on subsequent loads, even on transfer to the fixed version.

Fix up such saves by replacing any NUM_ABILITIES in that table with
ABIL_NON_ABILITY.  This does mean the ability letter assignment for
those abilities is still wrong, but they're just letters so I suppose
it's better than crashing.

Also, don't assert that the ability is in range until after we do all
the fixups; and use ABIL_NON_ABILITY instead of a magic -1.

--------------------------------------------------------------------------------
d7f430c212 | Neil Moore | 2015-10-23 17:15:30 -0400

Update MSVC and android builds for asg -> pcg.
[skip ci] since we don't build either of those on Travis.

--------------------------------------------------------------------------------
170e0a0ca3 | Neil Moore | 2015-10-23 17:09:34 -0400

Add a missing CR.
[skip ci] since this is MSVC-only.

--------------------------------------------------------------------------------
3550a1eddb | Brendan Hickey | 2015-10-23 17:00:52 -0400

Unbreak crawl when built with noasserts.
Sorry, neil.

--------------------------------------------------------------------------------
3d431bb418 | Brendan Hickey | 2015-10-23 16:56:33 -0400

Check fail if we can't read from urandom.

--------------------------------------------------------------------------------
743a584043 | Brendan Hickey | 2015-10-23 16:52:09 -0400

Delete broken and bogus code.
Fix an array out of bounds crash bug and remove demonstrably worthless code.

--------------------------------------------------------------------------------
ffac4a1195 | Brendan Hickey | 2015-10-23 16:25:55 -0400

Sweep typos under the rug.

--------------------------------------------------------------------------------
86bd286256 | Chris Campbell | 2015-10-23 20:35:11 +0100

Tweak some more god ability descriptions

--------------------------------------------------------------------------------
3419e77d4b | Chris Campbell | 2015-10-23 20:33:22 +0100

Don't create an altar when blessing weapons
The flavour doesn't work as well without requiring you to actually travel to
and pray at an altar, so having the ability create the altar ends up just
restricting the ability's usage to only empty floor tiles without much of a
benefit. Also fixup the new ability descriptions to match the style of other
descs.

--------------------------------------------------------------------------------
9769e2930b | Brendan Hickey | 2015-10-23 14:23:08 -0400

Use the Saito/Matusomoto Technique for random_real
This technique exploits the equal spacing of floating point
numbers on the range of [1,2). By constructing an appropriate mask
and then filling the lower bits at random we get a uniformly
distributed value from [1,2). Subtracting offsets the range to [0,1).

This technique is described in:
A PRNG Specialized in Double Precision Floating Point Number Using an Affine 
Transition
DOI:10.1007/978-3-642-04107-5_38

--------------------------------------------------------------------------------
415d666aa2 | Brendan Hickey | 2015-10-23 14:21:34 -0400

Replace ASG with PCG
This patch replaces the alternating step generator with M.E. O'Neill's
implementation of PCG.

Why bother? To set a good example. Rolling your own RNG is a path to sorrow
even when you sort of know what you're doing. While ASG passes BigCrush it
does so with extraneous state. PCG is small, statistically well characterized
and will undergo more scrutiny than some one-off generator.

Why not use ChaCha? I don't want to use a crypto-PRNG without a guarantee that
it's been seeded correctly.

--------------------------------------------------------------------------------
56a2587bc8 | Nicholas Feinberg | 2015-10-23 00:31:26 -0700

Rework apply_* functions
Pass in closures rather than using quite a lot of unecessary
parameters.

apply_area_visible() could easily be changed to make 'where'
optional & default to you.pos().

If you're reading this, check out how the 'aux' parameter of
cell_func was being used - it's pretty good, imho.

--------------------------------------------------------------------------------
de797edeb5 | Nicholas Feinberg | 2015-10-22 23:07:41 -0700

Remove unused slouch parameters
apply_area_visible() is an abomination and must be destroyed.

--------------------------------------------------------------------------------
e0d96ed766 | Neil Moore | 2015-10-23 01:57:33 -0400

Remember the centre of Gravitas when its target dies.
On most parts of the map, if one attractee collided with and killed the
target, further attactees wouldn't be moved, because the dead target was
too far away.  That's a bit weird because, notionally, they're all being
attracted at the same time.

Even worse, if we happened to be close to (0,0), the remaining monsters
would be sucked to the northwest, where the spirits of the departed
reside.

--------------------------------------------------------------------------------
245b47f163 | Nicholas Feinberg | 2015-10-22 22:54:51 -0700

Deduplicate slouch OKs, too (amalloy)
If cancelling when prompted to avoid hitting a friendly, you'd
get two OKs.

--------------------------------------------------------------------------------
ad3df388ee | Nicholas Feinberg | 2015-10-22 22:41:01 -0700

Remove a duplicate fire-storm OK
When accepting the prompt to cancel a casting of fire storm
(e.g. when it'd hit you or an ally), the game would tell you
"Okay, then" twice.

--------------------------------------------------------------------------------
e0a51af81d | Nicholas Feinberg | 2015-10-22 22:13:25 -0700

Reduce nonsense prompts
When targeting area spells (e.g. fireball, fire storm) in such
a way as to hit both yourself and allies, you'd get prompted
for every possible friendly victim, even if you cancelled at the
first one.

--------------------------------------------------------------------------------
6372a0a1bd | Nicholas Feinberg | 2015-10-22 21:45:14 -0700

Turn mephitic cloud into a zap
It has no reason to exist as a special-case function.

--------------------------------------------------------------------------------
75395eb90f | olowin | 2015-10-22 13:24:04 -0400

Use class methods for slot_item(). Fix a few typos.

--------------------------------------------------------------------------------
1cb09f69d8 | Shmuale Mark | 2015-10-21 16:46:53 -0400

Merge pull request #161 from edsrzf/fix-trog-typo
Add back space in Trog ability message
--------------------------------------------------------------------------------
76877e163b | Pekka Lampila | 2015-10-21 23:21:02 +0300

Don't send extra flush_messages to WebTiles server.
Just a minor optimisation, mainly happens with instant travel/explore.

--------------------------------------------------------------------------------
195573d98d | Evan Shaw | 2015-10-22 08:50:39 +1300

Add back space in Trog ability message
Went missing in 78de33285ae52079f3091dc8b233310c3a94a2bb.

--------------------------------------------------------------------------------
fea8072e38 | Shmuale Mark | 2015-10-21 12:17:57 -0400

Merge pull request #160 from pblur/patch-2
Improve message on refusing to butcher under Zin
--------------------------------------------------------------------------------
d95b98e10d | pblur | 2015-10-21 11:55:12 -0400

Improve message on refusing to butcher under Zin
This message triggers when you have butchering set to NEVER_CONFIRM and your 
god forbids butchering. It used to simply say "There isn't anything suitable to 
butcher here." which for a bit I thought was a bug... This message makes it 
clear it's a god restriction.
--------------------------------------------------------------------------------
03d97ec0c7 | gerbias | 2015-10-21 00:34:01 +0300

Update LOS when viewing other floors
As far as I can tell, this fixes a bug where monsters/items will
be drawn on the wrong floor.

--------------------------------------------------------------------------------
4af814fab6 | Pekka Lampila | 2015-10-21 00:08:16 +0300

Fix off by one error with TAG_MINOR_ABIL_GOD_FIXUP.
Used when converting from pre-0.14 games. Caused the letters of stop
recall, renounce religion and convert to Beogh abilities be imported
incorrectly. Plus in recent versions convert to Beogh ability's
mishandling would cause an assert when loading.

--------------------------------------------------------------------------------
299433e265 | Pekka Lampila | 2015-10-20 22:57:34 +0300

Make tile_key_repeat_delay 0 work again.
Broken by the SDL2 transition. Other values for the setting still do
nothing.

--------------------------------------------------------------------------------
f1240a73a5 | Neil Moore | 2015-10-20 13:59:10 -0400

Don't generate god-hated facets from box of beasts (ebering)
Behaviour is unchanged for Zin worshippers (they get penance and an angry
beast), but now Dith worshippers will just never get fire beasts, rather
than getting hostile ones.

TSO is also unaffected, since e doesn't actually mind venomous allies.

FR: Use std:: algorithms here rather than all these loops.

--------------------------------------------------------------------------------
63bad21b3d | Neil Moore | 2015-10-19 22:23:00 -0400

Revert "Round more vigorously in ray code."
It seems to have only increased the number of crashes. Some of that was
because of the increased use of shotgun and other odd-angle targetters,
but let's see how much this affects the number of crashes.

This reverts commit df1f371a6ddd6e0c5a26a34d431ba7161af991a0.

--------------------------------------------------------------------------------
8ee604cc1d | Neil Moore | 2015-10-19 22:12:41 -0400

Handle monster confused-zaps of cone rods (hyperactiveChipmunk, #9919)
The spell (and tracer) called set_aim(), but that did not do anything if
the aimed-at point was across a wall, causing a crash when the code later
tried to use the still-(0,0) aim.

I'm not completely happy with this solution, but it certainly is simpler
than changing the several functions that call targetter_shotgun::set_aim.

--------------------------------------------------------------------------------
1c6ed6a624 | Neil Moore | 2015-10-19 19:39:47 -0400

Comment comma_separated_fn.
Including the number of calls to the two parameter functions.

[skip ci]

--------------------------------------------------------------------------------
0d8b93eae1 | Neil Moore | 2015-10-19 10:29:40 -0400

Sacrifice Ko/Ha staves skill with Sac Hand (Zooty).

--------------------------------------------------------------------------------
40e7037bbc | Neil Moore | 2015-10-19 10:27:35 -0400

Don't remove Bows skill with most Ru sacrifices.
The code did not actually check whether it was Sacrifice Hand.

--------------------------------------------------------------------------------
c3f89d1986 | Neil Moore | 2015-10-19 09:32:03 -0400

Simplify an initialization.
And break a long line.

--------------------------------------------------------------------------------
421c82d030 | anch0vy | 2015-10-19 09:30:26 -0400

Little simplify ability.cc
Add Initialize "result" and gather code of failure=0 ability

[committer's note: corrected spelling in the title.  Closes #157 pull
 request. -nfm]

--------------------------------------------------------------------------------
e77a051a93 | gammafunk | 2015-10-19 03:06:07 -0500

Merge pull request #156 from drke2/patch-1
The spell did become more powerful in various ORB and rune portions of the game 
with the removal of -cTele. This is a reasonable adjustment for now. I don't 
think the spell is terribly problematic given a high XP cost at either L7 or 
L8, but we do have a number of higher-level translocation escape spells. May be 
worth revisiting the existance and effects of Dispersal/Disjunction/CBlink 
along with the lower-level Passage of Golubria at some point in 0.18.
--------------------------------------------------------------------------------
117576f2d9 | Chris Campbell | 2015-10-19 00:20:34 +0100

Fix shimmering toadstools in a Fedhas vault (elliptic)

--------------------------------------------------------------------------------
3412ddcc16 | oblivionis | 2015-10-18 21:53:51 +0300

Update branches.txt

--------------------------------------------------------------------------------
65e8068ffa | Neil Moore | 2015-10-18 13:18:01 -0400

Shift Trog ability letters back down.
The god ability simplification moved Burn Spellbooks to 'a' because it
was the first ability granted.  Move it to 'd' by default instead, so
that berserk is back on 'a'.

--------------------------------------------------------------------------------
215faab85b | Neil Moore | 2015-10-18 13:17:35 -0400

Adjust formatting of god_powers.
[skip ci]

--------------------------------------------------------------------------------
8b9ca14ebe | Steve Melenchuk | 2015-10-18 08:58:37 -0600

Adjust the entrances to mnoleg_grunt_wretched_star (gammafunk).
Having watched some plays of this vault, there was a very high chance
that the entrance would yield a convenient chokepoint for players to
abuse. By adjusting the interface with the rest of the level a bit, I'm
hoping to reduce the likelihood of that.

--------------------------------------------------------------------------------
75a41fec5b | DrKe | 2015-10-18 07:37:49 -0700

Make Controlled Blink a level 8 spell
With the removal of cTele, controlled blinking (both scroll and spell)
has become much more powerful and abusable in endgame areas that were
formerly -cTele. While the scrolls are at least limited in quantity, the
spell has no deterrent other than a middling amount of magic contamination.

Disjunction isn't used very often as it fills a similar purpose to
Controlled Blink while being harder to get castable. With CBlink at level 8,
it should see more use by players as they share the same book.

--------------------------------------------------------------------------------
ad05798598 | Nicholas Feinberg | 2015-10-17 23:01:41 -0700

Streamline bolt::affect_endpoint()
The noise & effects of IMB exploding now precedes the noise of the
impact, for which I apologize. If that matters, it's easy enough
to fix.

--------------------------------------------------------------------------------
104056bad3 | Nicholas Feinberg | 2015-10-17 22:39:08 -0700

Obsessive/compulsive flattening behaviour

--------------------------------------------------------------------------------
8566ffffe2 | Nicholas Feinberg | 2015-10-17 21:50:10 -0700

Cleanup some Tukima's code
<PleasingFungus> man, I had no idea what I was doing when I wrote
this code

--------------------------------------------------------------------------------
c64bc17993 | Steve Melenchuk | 2015-10-17 22:43:00 -0600

Fix a tiles hiccup in the Shoals ice ending.
Oops.

--------------------------------------------------------------------------------
0c122e7a48 | Shmuale Mark | 2015-10-17 20:31:04 -0400

Fix some oddities with OOD.
Sometimes an orb you created would push past the target, which was very
frustrating; sometimes a monster would push past the orb it had just
created, leading to it getting gratuitously damaged.

--------------------------------------------------------------------------------
e28b6dcf81 | Shmuale Mark | 2015-10-17 20:31:02 -0400

Revert "Fix monster Pain (#10018)."
The old behaviour is rather strange but has been around forever.

This reverts commit 8c69af115dd584ea1c4f55a4911ab92971ce74e3.

--------------------------------------------------------------------------------
910b1c66fd | Neil Moore | 2015-10-17 14:23:38 -0400

Fix up monster stacks of throwing weapons from old saves.
They stopped being throwable in 0.13-a0-3145-gdf89f4c, and we added an
assertion in 0.17-a0-949-g825eb3b that complains when the monster drops
its stack of unstackable items:
    
http://crawl.akrasiac.org/rawdata/demonblade/crash-demonblade-20151017-174522.tx
t

Convert them to tomahawks, and strip plusses and brand, the latter because
missile brands and weapon brands are different.

--------------------------------------------------------------------------------
f59d6bced9 | Seve Monahan | 2015-10-16 23:46:18 -0400

Don't let players bribe Antaeus with Gozag
Inconsistent with other Hell Lords.

--------------------------------------------------------------------------------
be5097ec86 | Seve Monahan | 2015-10-16 23:46:18 -0400

unbrace (mapdef.cc)

--------------------------------------------------------------------------------
48ee33dec7 | Seve Monahan | 2015-10-16 23:46:18 -0400

Deduct gold from Gozag's Bribe Branch on monsters coming into view (#9923)
Levels with lots of strong monsters (like branch ends) could drain the
entire reserve of gold on level load. Since the alignment change
triggers on coming into view, this could cause the bribe to have no
effect.

--------------------------------------------------------------------------------
10f76b421d | Neil Moore | 2015-10-16 21:05:32 -0400

Allow OPTIONS= and --extra-opt-last to use Lua (hyperactiveChipmunk)
Otherwise, Lua-defined options such as autofight_* are ignored.

--------------------------------------------------------------------------------
0fd32693f7 | Neil Moore | 2015-10-16 20:59:34 -0400

Actually substitute % and & in sacrifice messages.

--------------------------------------------------------------------------------
c772f4b22d | Neil Moore | 2015-10-15 17:58:13 -0400

De-C++11ify slightly.
g++ 4.7, which we claim to support, doesn't have inherited constructors.
So just write them.

--------------------------------------------------------------------------------
bb88bff1dd | olowin | 2015-10-15 15:44:44 -0400

Correctly account for tracers in action counts.

--------------------------------------------------------------------------------
f28803a159 | olowin | 2015-10-15 15:18:32 -0400

Add tracking for defensive actions including:   Armour types   Dodged, Phased, 
or Deflected attacks   Blocked and Reflected attacks Add tracking of auxillary 
attacks. Rework count_action() to have a standard way to store auxillary 
information instead of doing manual bit shifting.

--------------------------------------------------------------------------------
deefceaf64 | Pekka Lampila | 2015-10-15 18:57:44 +0300

Simplify inc_hp and inc_mp.

--------------------------------------------------------------------------------
fa3ccb30e8 | Pekka Lampila | 2015-10-15 18:57:40 +0300

Allow mana link mutation to work even with full HP.
Otherwise player is incentivized to avoid being at full HP to improve MP
regeneration.

--------------------------------------------------------------------------------
7a41132ab3 | Pekka Lampila | 2015-10-15 18:14:28 +0300

Refactor monster self destruction code a bit. (wheals)

--------------------------------------------------------------------------------
38a25a45d0 | Edgar A. Bering IV | 2015-10-15 18:05:16 +0300

Make hyperactive ballistomyecetes time out.
Before 42870f hyperactive ballistomyecetes killed themselves with their
explosions. After they were immune, but would eventually fill the blast
radius with inactive ballistomyecetes, making them useless for attacks,
annoying message spam, and denying the player access to any items in
the blast radius. This seems annoying and not the intended behavior.

This patch makes hyperactive ballistomyecetes lose HD when they explode,
so that they eventually time out. Since their HD is based on invocations
a well-skilled Fedhas player will still be annoyed but the rate of HD
loss could be changed if it is still annoying.

--------------------------------------------------------------------------------
3e821bf83a | Shmuale Mark | 2015-10-15 09:13:21 -0400

Merge pull request #137 from stahara/hc_temple_tempest_star
A temple offering.
--------------------------------------------------------------------------------
8b8b47ca57 | Shmuale Mark | 2015-10-15 09:03:53 -0400

Merge pull request #132 from smitnich/rot-fixes
Fix for issues related to no-device-heal + rot.
--------------------------------------------------------------------------------
8c69af115d | Shmuale Mark | 2015-10-15 08:58:38 -0400

Fix monster Pain (#10018).

--------------------------------------------------------------------------------
2563267e4f | Neil Moore | 2015-10-14 22:23:36 -0400

Simplify map_load_exception.
Just inherit our data and constructors from std::runtime_error.

--------------------------------------------------------------------------------
33ce26c660 | Alex Jurkiewicz | 2015-10-14 22:17:00 -0400

Improve reason string for map_load_exception.
This is to help troubleshoot problems on CPO right now, but is probably
theoretically generally useful.

[committer's note: closes #148 pull request. Added a couple of explicit
 conversions in a make_stringf() call. -nfm]

--------------------------------------------------------------------------------
897f412933 | Shmuale Mark | 2015-10-14 21:24:14 -0400

C++11ify (|amethyst).

--------------------------------------------------------------------------------
78de33285a | Shmuale Mark | 2015-10-14 21:06:25 -0400

Allow more than 5 god abilities.
Several gods already had code hacking around the limitation. Several other
refactorings were necessary to allow this:

* To add a god ability, you can simply edit the big array of vectors of
  structs in religion.cc (in addition to the normal work for adding an
  ability. (Thanks go to dlb for the ancient comment suggesting it!)

* Animate Dead now replaces the Animate Remains ability, instead of being
  chosen at use-time. I removed ANIMATE_REMAINS_OR_DEAD the enum, which
  should be fine since the next entry in ability_type is set to a number.

* Suppressing an ability should be easier now; just modify fixup_ability
  to turn it into ABIL_NON_ABILITY, and other places will automatically
  start to ignore it.

I'm not entirely happy with the outcome -- god_power::rank does too many
things, and the special-casing for Kiku's two options for a capstone is
pretty bad as well. But overall it's an improvement.

--------------------------------------------------------------------------------
2861fb3519 | Neil Moore | 2015-10-14 18:55:02 -0400

Don't bit-shift a negative number in a constexpr (ebering)
And while we're at it, make LAYERS_ALL a field, not a flag.

--------------------------------------------------------------------------------
af3f87dbd7 | Shmuale Mark | 2015-10-14 09:06:38 -0400

Simplify.
FR: templates work properly with functions with default arguments.

--------------------------------------------------------------------------------
de5cdba281 | Steve Melenchuk | 2015-10-13 21:43:58 -0600

Two Shoals endings.
An ice-themed ending and a garden-themed ending.

The ice ending vaguely emulates the two older endings, though with an
added chance of placing enemies with cold weapons or attacks. There is a
corresponding Ilsuiw vault for this ending.

The garden ending is a derivative of an Orc ending. It is a very open
layout, likely to play very differently than the other endings; as such,
it's at a reduced weight for now. It has a high chance of placing satyrs
and fauns. There is no associated Ilsuiw vault (she doesn't really fit
in there), though it's easy to see what it would be like given an
appropriate alternate unique (such as the semi-hypothetical satyr
unique).

--------------------------------------------------------------------------------
8d4e3f9e8e | Shmuale Mark | 2015-10-13 22:38:49 -0400

Merge pull request #145 from stahara/viewlayers-rebase
Allow selection of visible layers with '|'.
--------------------------------------------------------------------------------
65b3faa690 | John Stahara | 2015-10-13 20:56:48 -0400

Allow selection of visible layers with '|'.
Toggle (m)onsters, (p)layer, (i)tems, and (c)louds visibility.

If you use only the '|' key, the functionality is exactly the same as
the original "show terrain".  However, you may now toggle certain layers
back on and that configuration will be remembered for the next time you
press '|'.

--------------------------------------------------------------------------------
2a5e0a8a56 | Pekka Lampila | 2015-10-13 18:08:26 +0300

Fix weapon sprite displacement error in WebTiles. (#9164)
Dead monster's mcache field was used for the player, due to null mcache not
being sent in a delta compressed message.

--------------------------------------------------------------------------------
0f4ee5b5e4 | Pekka Lampila | 2015-10-13 06:51:56 +0300

Don't focus menus for WebTiles spectators. (#10014)
Otherwise the chat window loses focus.

[skip ci]

--------------------------------------------------------------------------------
e35b1eafea | Neil Moore | 2015-10-12 22:33:40 -0400

Remove a stub class (hyperactiveChipmunk)
It had no users, which is good because it was still abstract.

--------------------------------------------------------------------------------
8e1b6c4cd7 | Neil Moore | 2015-10-12 22:08:26 -0400

Add a couple more suggestions to ctags.txt
[skip ci]

--------------------------------------------------------------------------------
00aea6ad61 | Neil Moore | 2015-10-12 21:52:15 -0400

Add a clarificatory comment.
[skip ci]

--------------------------------------------------------------------------------
0bb3e6bed5 | Neil Moore | 2015-10-12 20:08:23 -0400

Make Wyrmbane trigger on auxes again (ProzacElf, #7336)
Broken early in 0.15 development: the special case was not quite as
obsolete as we had thought.

This reverts commit f66a7a8534927db9d22dad6846e (in effect).

--------------------------------------------------------------------------------
5cdb83f004 | gerbias | 2015-10-11 21:14:25 -0700

Make !HW not cure rot with No Device Heal 3
Let curing cure rot in this situation, but at a reduced value.

--------------------------------------------------------------------------------
49b7fdc61b | gerbias | 2015-10-11 20:26:22 -0700

Merge branch 'master' of https://github.com/crawl/crawl into rot-fixes

--------------------------------------------------------------------------------
265a032cf5 | Steve Melenchuk | 2015-10-11 20:25:02 -0600

Another set of major panlord vaults.

--------------------------------------------------------------------------------
daf50f858b | Shmuale Mark | 2015-10-11 20:20:00 -0400

Note the first time you reach a piety rank, per god.
Useful for looking over the progress of a character, or the piety
progression of a god.

This replaces the old "Gained the nth power of <god>" notes, which are
presumably redundant.

--------------------------------------------------------------------------------
b3ae98bb41 | Shmuale Mark | 2015-10-11 19:13:49 -0400

Merge pull request #141 from stahara/ranged_loadout_details
Give the player more information on the ranged weapon loadout screen
--------------------------------------------------------------------------------
44180f118e | Shmuale Mark | 2015-10-11 19:13:47 -0400

Merge pull request #140 from stahara/newgame_reroll_keys
Interpret '!', '#', and Tab as "re-roll the random character"
--------------------------------------------------------------------------------
8b0eb123cc | Neil Moore | 2015-10-11 15:44:30 -0400

Simplify CrawlHashTable::get_value()
If the key was not found, we were doing three separate lookups just to
replicate the behaviour of std::map::operator[].

--------------------------------------------------------------------------------
5313c7264d | Neil Moore | 2015-10-11 15:20:21 -0400

Make suicide() credit negative HP (gerbias)
So that if a monster happened to be at zero hit points, a normal
suicide() call would still assign one damage, and suicide(-1000) would
assign 1000 extra damage (and therefore ensure that the player gets
less XP, even if they had almost killed the monster).

I'm not entirely sure the new behaviour with respect to damage blaming
is quite what we want, but I cannot think of another reason one would do
suicide(-1000) in some cases and suicide(-1) in others.

Simplified from gerbias's patch at #9866, by letting blame_damage handle
the extra damage. That also prevents us going above MAX_DAMAGE_COUNTER
and from subtracting damage if the monster was already at negative hit
points.

--------------------------------------------------------------------------------
4e78098616 | Neil Moore | 2015-10-11 15:08:17 -0400

Properly assign credit for short-lived monster time-outs (#9866)
When a monster died from the "short-lived" enchantment, it was not
being assigned damage.  This caused two bugs when the monster in
question was worth XP:

 1. If the dying monster had not been hurt, we would give an error
    message "exp for monster with no damage".

 2. If the dying monster had been hurt by the player, however slightly,
    the player would receive full XP for its death.

Now we properly suicide() when the monster times out, so the remaining
hit points are assigned as damage but not credited to anyone.

--------------------------------------------------------------------------------
71fe306c38 | John Stahara | 2015-10-11 03:22:05 -0400

Give the player more information on the ranged weapon loadout screen
For the Throwing option, the hunting nets the player also receives are
shown. For launchers, the type of ammunition the player also receives
is shown.

--------------------------------------------------------------------------------
9cdf7d9efa | John Stahara | 2015-10-11 01:54:04 -0400

Interpret '!', '#', and Tab as "re-roll the random character"
At present, answering the "Do you want to play this combination?" with
anything besides 'n', 'q', or Esc (interpreted as 'q') is interpreted as
'y'.  This change allows the player to re-press the key that meant "give
me a random combination" to do it again.

--------------------------------------------------------------------------------
b4e23bee83 | Shmuale Mark | 2015-10-10 22:31:05 -0400

Merge pull request #130 from alexjurkiewicz/drac-breath-slot
Drac breath slot
--------------------------------------------------------------------------------
eed9a47615 | Alex Jurkiewicz | 2015-10-11 13:30:29 +1100

Reserve the first ability slot for Draconian breath (milski)

--------------------------------------------------------------------------------
1637b48fa0 | Shmuale Mark | 2015-10-10 22:22:15 -0400

Change layout of logic to be more logical.

--------------------------------------------------------------------------------
54594ef478 | Shmuale Mark | 2015-10-10 22:18:26 -0400

Change how piety_rank() works.
It now returns, effectively, the number of *s of piety you have. The old
system was oddly 1-based when in fact being 0-based made more sense. The
new value was already sent to Lua and WebTiles, so their code needs no
modification.

--------------------------------------------------------------------------------
e8850da2c6 | Shmuale Mark | 2015-10-10 22:18:06 -0400

Merge pull request #135 from amalloy/warn-hatches
Add rc option to prompt before using escape hatches
--------------------------------------------------------------------------------
d729b2a7b1 | Shmuale Mark | 2015-10-10 22:17:24 -0400

Merge pull request #122 from alexjurkiewicz/mindelay-shield-help
Show your skill for shields (like weapons).
--------------------------------------------------------------------------------
41aaf134f5 | Alex Jurkiewicz | 2015-10-11 13:15:08 +1100

Show your skill for shields (like weapons).

--------------------------------------------------------------------------------
6ad4269b6f | Shmuale Mark | 2015-10-10 22:03:31 -0400

Merge pull request #139 from alexjurkiewicz/qaz-wrath-upgrade
Upgrade Qaz wrath.
--------------------------------------------------------------------------------
50a02b7817 | Alex Jurkiewicz | 2015-10-11 13:01:11 +1100

Upgrade Qaz wrath.
Causing noise is pretty poor wrath, so instead of choosing that wrath
1/3 of the time, do it 50% of the time before the other two wrath types.

Also, remove deformed body as a possible mutation, it's way less
dangerous than elemental vulnerability.

--------------------------------------------------------------------------------
b3035b4511 | Shmuale Mark | 2015-10-10 21:52:40 -0400

Merge pull request #131 from drke2/patch-1
Update another xl_rank_name
--------------------------------------------------------------------------------
4235e72e27 | Shmuale Mark | 2015-10-10 21:44:14 -0400

Merge pull request #129 from stahara/mmap-notables2
Note branch staircases when revealed with magic mapping
--------------------------------------------------------------------------------
d129abf497 | Shmuale Mark | 2015-10-10 21:40:45 -0400

Merge pull request #133 from drke2/patch-4
Tweak an arrival vault
--------------------------------------------------------------------------------
ecfb1ce5ab | Shmuale Mark | 2015-10-10 21:39:24 -0400

Merge pull request #134 from amalloy/safe-stairs
Change the 'safe option' for using unorthodox stairs to 'no'
--------------------------------------------------------------------------------
cb24c4919c | Shmuale Mark | 2015-10-10 21:33:40 -0400

Merge pull request #136 from amalloy/comment-change
Expand jarring abbreviation in a comment
--------------------------------------------------------------------------------
77d26e86b1 | Steve Melenchuk | 2015-10-10 17:22:26 -0600

Prune a long and aggravating-to-maintain monster set.
Depths is near-constantly having adjustments made to its monster set,
and nobody is interested in keeping several collections of loosely
related monsters up to date and consistent with the rest of the branch.
General sentiment has also moved away from having a lot of popcorn
present as was the case with these sets.

--------------------------------------------------------------------------------
7cc3053255 | Steve Melenchuk | 2015-10-10 17:00:11 -0600

De-elf-ify profane_halls a bit more.
Since I don't know what the Depths monster set is going to resemble X
amount of time from now, I'm opting for the generic route. Dragons can
stay in the Zot entrance because that's thematic, and I'm also opting to
keep them in the loot vault because I can.

--------------------------------------------------------------------------------
9ce824ce72 | gammafunk | 2015-10-10 03:20:04 -0500

Removed rune doors and custom wall names from a Depths vault (Medar)
This had runed doors, presumably to protect the player from the
strongest monster inside, but this isn't necessary for a Depths vault. A
player in Depths should be more than capable of either killing or
avoiding the monsters. Add a patrolling tag so the Holy-themed monsters
doesn't leave the vault.

Also remove a custom feature name for what's only a white-coloured,
ordinary metal wall, and apply white colour and tile to the transparent
stone.

--------------------------------------------------------------------------------
c0060d7740 | gammafunk | 2015-10-10 02:54:13 -0500

Fix stairs in grunt_profane_halls and adjust monster set
The central loot subvault used to place downstairs, which meant taking
the downstairs upon entering the level and trying the upstairs until
getting the loot chamber was a viable way to loot the level without
fighting many monsters. This commit removes the placement of these
downstairs in the loot chamber so that only a down hatch is ever
placed there.

I received a binary transmission from qw requesting that we remove the
low-level elves from this vault that normally don't generate in
Depths. For the non-draconian set, gone are deep elf knights, fighters,
mages, and conjurers, replaced with the closest Depths-inclusive monster
I could find. I also added stormcallers as also-fiery-smite alternative
to deep elf high priests, since we've gone from all elves to a mix of
living species.

--------------------------------------------------------------------------------
5c22979b0e | Pekka Lampila | 2015-10-10 08:45:56 +0300

Hide quiver status line for Felids in WebTiles.
Matches the behaviour of local tiles and console.

--------------------------------------------------------------------------------
cac42c4298 | Neil Moore | 2015-10-09 22:51:15 -0400

Crash heads, not software, when Gell's attracts a player.
See for example:

    
http://crawl.akrasiac.org/rawdata/ShadowFoxTrout/crash-ShadowFoxTrout-20151010-0
23703.txt

--------------------------------------------------------------------------------
def6b229b3 | John Stahara | 2015-10-09 22:40:45 -0400

hc_temple_tempest_star_small: Bite-sized for worshippers on the go.

--------------------------------------------------------------------------------
aeb1390384 | John Stahara | 2015-10-09 21:51:15 -0400

Fix a few minor asymmetries

--------------------------------------------------------------------------------
2dee95aa17 | Pekka Lampila | 2015-10-10 04:04:36 +0300

Remove an outdated line from default runrest_ignore_message.
Since air elemental submerging was removed in
28fe365db5a82126f9a533864ed9d9d3b63b4ee9.

[skip ci]

--------------------------------------------------------------------------------
9e8eef3647 | Pekka Lampila | 2015-10-10 03:53:38 +0300

Add rotting chunks line to runrest_ignore_message by default.
[skip ci]

--------------------------------------------------------------------------------
13ccdb72be | John Stahara | 2015-10-09 20:33:45 -0400

A temple offering.
hc_temple_tempest_star

--------------------------------------------------------------------------------
6134f68244 | Alan Malloy | 2015-10-09 13:56:28 -0700

Also warn about shafts when warn_hatches is set

--------------------------------------------------------------------------------
6eac8cfa50 | Alan Malloy | 2015-10-09 13:34:16 -0700

Change the 'safe option' for using unorthodox stairs to 'no'

--------------------------------------------------------------------------------
389b958156 | Alan Malloy | 2015-10-09 13:34:01 -0700

Add rc option to prompt before using escape hatches

--------------------------------------------------------------------------------
4c446bd7c9 | Alan Malloy | 2015-10-09 13:30:35 -0700

Expand jarring abbreviation in a comment

--------------------------------------------------------------------------------
c284f19829 | Pekka Lampila | 2015-10-09 23:23:25 +0300

Fix corroded weapon not displayed as red in WebTiles.

--------------------------------------------------------------------------------
4b4742e7ed | Pekka Lampila | 2015-10-09 23:22:21 +0300

Weapon/quiver status improvements for WebTiles.
Show form specific unarmed attack colour. (#8836)

Remove extra caption from WebTiles wielded/quivered status, instead use
the letter as caption. Matches local tiles and console now.

Show "Quiver unavailable" when appropriate.

--------------------------------------------------------------------------------
c4b77af229 | Pekka Lampila | 2015-10-09 21:19:19 +0300

Give a message when creating stairs in wizmode.

--------------------------------------------------------------------------------
34141e6c4b | Pekka Lampila | 2015-10-09 21:19:19 +0300

Fix overlay being left over game after stale process purge.
In WebTiles.

[skip ci]

--------------------------------------------------------------------------------
b7d79f52be | Pekka Lampila | 2015-10-09 21:19:19 +0300

Fix displaying error to client if stale process purging fails.
In WebTiles.

[skip ci]

--------------------------------------------------------------------------------
7966c2b62e | Pekka Lampila | 2015-10-09 21:19:19 +0300

Fix handling of key presses to cancel stale process purging.
In WebTiles.

[skip ci]

--------------------------------------------------------------------------------
9cfe9d2d8f | Shmuale Mark | 2015-10-09 14:15:09 -0400

Improve more pickup code.
Instead of passing "int near" everywhere, and checking whether it
implies true or false, just pass around the bool value. Some of the public
methods were changed to take maybe_bools instead (this wouldn't be
necessary if you could use the this pointer in default arguments, but oh
well).

--------------------------------------------------------------------------------
81346caa5b | Shmuale Mark | 2015-10-09 14:15:08 -0400

Tidy some monster pickup-drop code.
Make some methods private; use monster_inv_type; deduplicate code for
wizmode xo with other places that give items to monsters.

As a side effect, Maurice can now wear the jewellery that he steals! (He
couldn't before since he was implemented before monster jewellery was.)

--------------------------------------------------------------------------------
412826b100 | Pekka Lampila | 2015-10-09 19:48:35 +0300

Add an empty line to shield descriptions.
Before enchantment info. Similar to other armours/weapons.

--------------------------------------------------------------------------------
3cbb8c13c1 | Pekka Lampila | 2015-10-09 19:06:18 +0300

Don't reveal submerged monsters within clouds in targeter.
There was no ripple effect for submerged monsters on squares with
clouds, but targeter would still display "Disturbance".

Clouds blocking detection of submerged monsters was added in
ca72b70cd5ffb1e3e71512b6c457ad21ec20b71f.

--------------------------------------------------------------------------------
6fe47828b4 | DrKe | 2015-10-09 01:24:18 -0700

Tweak an arrival vault
ldierk_water_garden placed toadstools, bushes, plants, and trees in four
corners.

A player unfamiliar with the nuances of stationary plant monsters may
choose to attack the plant or bush corner, and if this character has no
weapon or using untrained UC this will take hundreds of turns.

Change it to spawn trees in 3 corners with one toadstool exit, which the
dungeon builder flip/rotate will randomize.

--------------------------------------------------------------------------------
5d91a8ac75 | gerbias | 2015-10-08 23:55:54 -0700

Fix for issues related to no-device-heal + rot. Now players who can't heal are 
able to cure rot with potions of curing or heal wounds.

--------------------------------------------------------------------------------
32cd421c43 | Shmuale Mark | 2015-10-08 22:15:09 -0400

Clean up get_god_abilities.
This new form might break down if there need to be abilities that you can
use while silenced, but not under penance, but the logic should be much
clearer.

--------------------------------------------------------------------------------
e495b1207f | Pekka Lampila | 2015-10-09 04:27:54 +0300

Fix ripple effect not being shown for submerged monsters.
Broken by 0.17-a0-758-gcaca6cf.

--------------------------------------------------------------------------------
631b416234 | Pekka Lampila | 2015-10-09 04:27:54 +0300

Show unseen monster tile over shallow water, if there is a cloud.
In addition to the ripple effect, which is too hard to see below the cloud.

--------------------------------------------------------------------------------
a20eb4c13e | Pekka Lampila | 2015-10-09 04:27:54 +0300

Remove special cloud disturbance tiles.
The unseen monster tile was already drawn on top of these, so the change
shouldn't be noticeable.

Also fixes wrong cloud tile shown with disturbances in some situations
(#10002). It was caused trying to use disturbance versions for clouds
that didn't have them.

Basically reverts commit caa5519827a693b714aaff1417e64fc9d533b1d4.

--------------------------------------------------------------------------------
8ecbc3dfa3 | gammafunk | 2015-10-08 20:16:59 -0500

Balance a Shoals vault
The octopode crusher along with an impaler and many merfolk makes this
encounter rather difficult for a vault that's going more for
theme. Replace the crusher with a satyr and replace half of the
attending merfolk with fauns. The satyr and fauns make the vault better
thematically and replacing the crusher lowers the difficulty. Also give
the walls and floors some nice colors and tiles to fit the lofty
setting.

This commit should put an end to the outrageous stories certain vault
makers are spreading on Reddit in a feeble effort to slander my
eight-legged creations.

--------------------------------------------------------------------------------
2d98ce0832 | Neil Moore | 2015-10-08 19:51:48 -0400

Re-add a snail quote.
Removed in 0.14-a0-2887-gdc7c816, but now we have snails again.

[skip ci]

--------------------------------------------------------------------------------
d81d05cd50 | Neil Moore | 2015-10-08 19:42:39 -0400

Add a quote.
Maybe I should add some literary quotes to do penance for all these
contemporary songs.

[skip ci]

--------------------------------------------------------------------------------
ea97e06f6d | DrKe | 2015-10-08 09:20:05 -0700

Update another xl_rank_name
To avoid reusing "experienced" for a different level bracket than

it was previously.
--------------------------------------------------------------------------------
96ac4c4e0d | gammafunk | 2015-10-08 04:00:55 -0500

Balance and clean up an Orc end vault
The pubby_orc_utopia Orc:4 encompass vault had on-average about 166%
more monsters and 70% more XP compared to an Orc:4 level containing a
different end vault. This commit reduces those percentages to about
75% more monsters and 45% more XP compared to a different Orc:4
level. It retains all of the layout of the level as well as the basic
enemy composition and difficulty of each section.

There's much less popcorn and fewer orc high priests, although still
at least four on the map. The 0 glyph (ordinary Orc:4 spawn) is still
used throughout the map, preserving the chances for interesting
out-of-depth monsters in the various rooms. The second pair of shop
locations are now randomized among the four circular chambers instead
of always being in the same chambers.

--------------------------------------------------------------------------------
94b6906bdd | Neil Moore | 2015-10-08 02:03:21 -0400

Don't use c_str in take_note arguments.
Unnecessary since 0.16-a0-3852-g80a6ed4 made Note::Note take a std::string.
Counterproductive, in fact, since we were constructing a temporary string
from the char* when we could have just passed the original string by ref.

--------------------------------------------------------------------------------
c0021b2f1a | Neil Moore | 2015-10-08 01:55:39 -0400

Simplify.
Move a medium-sized ternary chain into a new function; constify; and
avoid two unnecessary string -> char * -> string conversions.

--------------------------------------------------------------------------------
e62ed07890 | Neil Moore | 2015-10-08 01:47:03 -0400

Break an overly long line.
As a bonus, this placates util/unbrace.

[skip ci]

--------------------------------------------------------------------------------
d34850609a | gammafunk | 2015-10-07 23:11:20 -0500

Add juggernauts and stormcallers to ziggurats and adjust monster sets
Add juggernauts to the earth and giant level sets. Add entropy weavers,
octopode crushers, and caustic shrikes to the earth level set. Add
salamander stormcallers to the fire set without reducing the number of
orbs of fire in that set.

--------------------------------------------------------------------------------
92c7e20b24 | Neil Moore | 2015-10-07 23:54:01 -0400

Replace %lf with %f.
g++ 4.7 complains about the former (a bug*), and they mean the same
thing anyway for printf (as opposed to scanf).

* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52818

--------------------------------------------------------------------------------
68761ecbe1 | Neil Moore | 2015-10-07 23:45:59 -0400

Fix compilation on g++ 4.7 and 4.8.
Those versions apparently failed to convert the result of std::mem_fn to
a std::function during template substitution:

    https://travis-ci.org/crawl/crawl/jobs/84226244

This change means that nullptr cannot be passed as the filter argument
of comma_separated_fn; use always_true<...> instead.

--------------------------------------------------------------------------------
195c1f89f9 | Neil Moore | 2015-10-07 22:56:42 -0400

Fix wanderer starting inventory note (amalloy)
I broke it in 0.17-a0-1874-ge687144 by ignoring the if (item.defined()),
resulting in a series of !bad items.

--------------------------------------------------------------------------------
b1b0091624 | Neil Moore | 2015-10-07 22:56:14 -0400

Allow comma_separated_fn to take a filter.
If provided, skip those elements for which the filter returns false.

I'm not particularly happy with the order of arguments, but I didn't
want to change any existing callers.

--------------------------------------------------------------------------------
eb42da1ef3 | Corin Buchanan-Howland | 2015-10-07 21:27:07 -0400

Update juggernaut flavor.

--------------------------------------------------------------------------------
a88ed7d665 | Chris Campbell | 2015-10-07 19:43:40 +0100

Adjust some changelog entries

--------------------------------------------------------------------------------
bc4b023bd2 | Alex Jurkiewicz | 2015-10-07 23:50:00 +1000

Guard against potential future ability slot reservation overflow (|amethyst)

--------------------------------------------------------------------------------
2c663349c9 | Alex Jurkiewicz | 2015-10-07 23:50:00 +1000

Remove ability slot reservation for Lesser Healing (|amethyst)

--------------------------------------------------------------------------------
d2c0ec86e8 | Shmuale Mark | 2015-10-06 21:30:15 -0400

Fix a serious case of parentheses-itis.

--------------------------------------------------------------------------------
52f8adbd7c | Shmuale Mark | 2015-10-06 21:27:18 -0400

Tweaks to rune menu (chequers).
Replace "X/15" with "X collected".

Just say the branch name, not the branch depth as well.

--------------------------------------------------------------------------------
0424581468 | Shmuale Mark | 2015-10-06 21:05:06 -0400

Don't manually allocate items for the rune menu.

--------------------------------------------------------------------------------
6edee549e6 | Shmuale Mark | 2015-10-06 21:04:25 -0400

Simplify.

--------------------------------------------------------------------------------
8e6ddb8f56 | gammafunk | 2015-10-06 19:58:57 -0500

Don't show runes in the rune menu for branches that can't exist
When we've seen stairs for one lair branch of a mutually exclusive pair,
don't list the rune for the other one.

--------------------------------------------------------------------------------
b8b65c654a | Shmuale Mark | 2015-10-06 20:08:30 -0400

Fix unique rune check (#9997).

--------------------------------------------------------------------------------
4981782541 | gammafunk | 2015-10-06 17:39:52 -0500

Display runes in branch order in the rune inventory menu
The previous order was enum value, which is based on when the rune was
added to the game and isn't of interest to the player. Branch order is
the most sensible rune order we have; an order that considered "extended
runes" is possible but not as well-defined.

--------------------------------------------------------------------------------
fb2cd5c7c1 | Chris Campbell | 2015-10-06 17:41:21 +0100

Adjust Pan monster lists, remove low-tier demons
Completely remove tier 4 demons and unclassed demonspawn from Pan monster lists,
and rescale the weights. Doesn't touch Pan's mon-pick-data entry, since that's
incredibly weird, being used for just 1/40 random Pan spawns and also for the
Orb run but without checking rarity (so weak demons can still show up in Pan
through that list, and through bands of some higher tier demons).

--------------------------------------------------------------------------------
4071159e5c | Chris Campbell | 2015-10-06 17:11:20 +0100

Remove an unused elemental colour
It was previously used for shiny gold under Gozag.

--------------------------------------------------------------------------------
af5a542c1a | Neil Moore | 2015-10-05 22:40:07 -0400

Don't leave extra junk after a font-wrapped string.
We were leaving an extra character after the ellipsis, and might even
have smashed half of a UTF-8 character.

--------------------------------------------------------------------------------
436399bc6f | Neil Moore | 2015-10-05 22:37:16 -0400

Show colour tags in stash search menu.
Since we show them in other item menus.  This only matters if you are
inscribing items with colour tags; there are still no menu_colours.  It
would be nice if this menu inherited from InvMenu as the ctrl-x menu
does.

--------------------------------------------------------------------------------
4aa52362e9 | Neil Moore | 2015-10-05 22:37:06 -0400

Don't break colour tags in inventory menus (#9996)
Add a new function, chop_tagged_string, that does not count tags towards
the width and therefore will never break in the middle of a tag.

--------------------------------------------------------------------------------
8b4e0e6854 | John Stahara | 2015-10-05 22:20:15 -0400

Note branch staircases when revealed with magic mapping
This allows magic-mapped branches to be displayed in the dungeon
overview window and to be set as autotravel destinations.  The new Xv
behavior allows the specific branch to be determined already, so no
additional information is leaked by this change.

--------------------------------------------------------------------------------
55f5988020 | gammafunk | 2015-10-05 10:15:50 -0500

Print the correct rune name upon branch entry (#9994)
We were giving rune_type_name() the branch instead of giving it the
rune.

--------------------------------------------------------------------------------
8be2cf4d91 | Neil Moore | 2015-10-05 10:24:07 -0400

Don't infinite-loop when trying to generate an existing rune.

--------------------------------------------------------------------------------
c20a2d7dd7 | Neil Moore | 2015-10-05 10:24:06 -0400

Don't crash on &%any rune.
Pick a random rune the player doesn't already have.  Avoid generating
the elven or forest runes here by marking them as removed.  While we're
at it, replace another check for those two runes by item_type_removed().

Also fix a stray whitespace.

--------------------------------------------------------------------------------
6eef83af50 | gammafunk | 2015-10-05 09:23:41 -0500

Merge pull request #127 from drke2/patch-1
Currently Throwing damage at higher skill levels is very high given that it's a 
single-school cost for ranged damage. The base damage itself will probably have 
to be changed to really fix that, but for the time being a modest reduction in 
effective damage for the stronger throwing species is a reasonable thing to do.
--------------------------------------------------------------------------------
0050d11712 | DrKe | 2015-10-05 05:00:53 -0700

Lower Throwing apts for select species
Given that Throwing and UC have the same damage scaling, species

aptitudes should reflect this. UC is capped at +1 for all races, so it

makes logical sense for Throwing to follow this guideline as well. It's

no less powerful and has other advantages.



Races with >1 get 1, races with 1 get 0, and some races with 0 get -1.



Ce, Ha, Ko: +3 -> +1

Og, Sp, Te, HE, DE: +1 -> 0

HO, Gr: 0 -> -1
--------------------------------------------------------------------------------
1c7493929c | gammafunk | 2015-10-04 17:35:33 -0500

Don't generate warnings about buggy runes of zot
Give the obsolete rune misc subtype an #ifdefed description, to avoid
initialization warnings.

--------------------------------------------------------------------------------
c390f2ee67 | Shmuale Mark | 2015-10-04 18:17:11 -0400

Add a space to the beginning of entries in the rune menu.
This is especially necessary to prevent the tiles from running into text.



[skip ci]
--------------------------------------------------------------------------------
de75054a81 | Shmuale Mark | 2015-10-04 18:08:51 -0400

Actually use the correct tile for runes you've gotten.

--------------------------------------------------------------------------------
482a304204 | Shmuale Mark | 2015-10-04 17:59:37 -0400

Try to fix the tiles not showing up on the rune screen.

--------------------------------------------------------------------------------
3ed7f26089 | Shmuale Mark | 2015-10-04 17:54:43 -0400

Remove now-unnecessary #includes.

--------------------------------------------------------------------------------
97acc77734 | Shmuale Mark | 2015-10-04 17:51:27 -0400

Fix memory leak.
I assumed that the InvMenu takes ownership, just like it does with the

entries themselves. Of course, that's not possible because it's used for

your inventory, where `you` has to own the items.
--------------------------------------------------------------------------------
fc13e0889e | Shmuale Mark | 2015-10-04 17:46:06 -0400

Fix name for runes on \ menu.

--------------------------------------------------------------------------------
3149b6fd55 | Shmuale Mark | 2015-10-04 16:33:05 -0400

Change runes to be their own base type.
Tested save compat, picking up runes, creating runes.

--------------------------------------------------------------------------------
7d1c2aa52e | Shmuale Mark | 2015-10-04 14:03:03 -0400

Change the rune menu back to an inventory menu.
On the theory this will duplicate less code.

--------------------------------------------------------------------------------
7a13dd1765 | Shmuale Mark | 2015-10-04 11:49:40 -0400

Further fixing

--------------------------------------------------------------------------------
64dff6e521 | Shmuale Mark | 2015-10-04 11:44:41 -0400

Minor tweak to rune menu.

--------------------------------------------------------------------------------
88670c137c | Shmuale Mark | 2015-10-04 10:52:54 -0400

Fix tile compile.

--------------------------------------------------------------------------------
d0ffe12ed6 | Shmuale Mark | 2015-10-04 10:25:25 -0400

Change some overloads of Menu::getkey to be overrides.
This should be clearer.

--------------------------------------------------------------------------------
06acd04f31 | Shmuale Mark | 2015-10-04 10:25:23 -0400

Move the gossamer rune to be next to the other lair runes on }.

--------------------------------------------------------------------------------
4c1e535a90 | Shmuale Mark | 2015-10-04 10:25:20 -0400

Clarify Natasha's description (#9979).

--------------------------------------------------------------------------------
815ab31fdf | Shmuale Mark | 2015-10-04 10:25:18 -0400

More updates/formatting changes to INSTALL.txt.

--------------------------------------------------------------------------------
e4b09781fc | Shanmukha Prasad Sivapurapu | 2015-10-04 10:25:16 -0400

Updated Fedora installation instructions for over Fedora 22

--------------------------------------------------------------------------------
3f989a99ea | Shmuale Mark | 2015-10-04 10:25:14 -0400

Redo the rune menu.
It now contains a list of all runes before you pick them up, including
their locations. It also has a line for the Orb of Zot and its location.

To facilitate, rune locations are moved to branch data. (Perhaps there
should be some kind of error if a rune is not generated on the level it
should be, seeing as the actual rune placement is handled by vaults?)

Tiles portions are untested.

--------------------------------------------------------------------------------
3c2807a40f | Shmuale Mark | 2015-10-04 10:21:28 -0400

Merge pull request #124 from alexjurkiewicz/slow-healing-rename
Rename 'slow healing' to 'slow regeneration'.
--------------------------------------------------------------------------------
1ea62000f9 | Shmuale Mark | 2015-10-04 10:20:58 -0400

Merge pull request #126 from alexjurkiewicz/xl-rank-names
update xl rank names
--------------------------------------------------------------------------------
5a43bd3296 | Shmuale Mark | 2015-10-04 10:14:35 -0400

Merge pull request #121 from smitnich/upstream
Don't give species with innate claws an extra bonus to unarmed
--------------------------------------------------------------------------------
893cb89c67 | Corin Buchanan-Howland | 2015-10-04 09:05:41 -0400

Let Sac Hand remove the staves skill from spriggans (Pollen_Golem)
Because for Spriggans, even enhancer staves are 2h.

--------------------------------------------------------------------------------
0dddeaab97 | Corin Buchanan-Howland | 2015-10-02 23:36:37 -0400

Ban spriggan fighters from starting with a polearm (Pollen_Golem)
SpFi would start with a spear and buckler equipped, which would take them
3 hands. If you unequipped the spear, you wouldn't be able to reequip it.

--------------------------------------------------------------------------------
c7f8bfcf7d | Corin Buchanan-Howland | 2015-10-02 23:14:45 -0400

Make Sac Hand delete weapons skills as needed (monkeytor)
Specifically, non-Formicids can't wield any bows after the sacrifice, and
spriggans can't wield any polearms.

--------------------------------------------------------------------------------
e2ddec9b33 | Corin Buchanan-Howland | 2015-10-02 18:44:40 -0400

Change Kryia's to double device heal and disable for DD (|amethyst)
So now it does nothing for Vine Stalkers and Deep Dwarves.

--------------------------------------------------------------------------------
62301d33d6 | Neil Moore | 2015-10-02 01:10:12 -0400

Allow most characters to heal without Kryia's.
We considered anyone without a device heal bonus to be unable to device
heal.

--------------------------------------------------------------------------------
23d607761b | Corin Buchanan-Howland | 2015-10-01 21:41:21 -0400

New unrand: Kryia's mail coat
+7 Kryia's mail coat {DeviceHeal+++, rC+} (base type: scale mail)

This artefact makes use of the refactored device heal code (further
refactored in this patch) to increase device heal -- if you have no
device heal penalties, this will double the healing you get from potions
and wands.

--------------------------------------------------------------------------------
148fe99eee | Alex Jurkiewicz | 2015-10-01 23:50:00 +1000

update xl rank names

--------------------------------------------------------------------------------
1acca9a648 | Neil Moore | 2015-10-01 09:28:59 -0400

Improve a comment.
Grammatical case is quite relevant here.

[skip ci]

--------------------------------------------------------------------------------
5ca3460fcc | Shmuale Mark | 2015-10-01 09:11:52 -0400

Remove debugging prints.
And use player_mutation_level (though it has no practical effect here,
since no device heal is not and should not be suppressed by form changes).

--------------------------------------------------------------------------------
909a97c0a4 | Shmuale Mark | 2015-10-01 09:10:11 -0400

Add gender.

--------------------------------------------------------------------------------
fb768fe832 | Corin Buchanan-Howland | 2015-09-30 22:04:23 -0400

Cleaning up no device heal and giving it to robe of vines
Robe of vines also got +2 AC and two more Regen ticks for good measure.

--------------------------------------------------------------------------------
a0b985402e | Alex Jurkiewicz | 2015-09-30 23:44:00 +1000

Rename 'slow healing' to 'slow regeneration'.
The old name was slightly ambiguous.

--------------------------------------------------------------------------------
fe993dfe91 | Pekka Lampila | 2015-09-30 14:23:40 +0300

Warn about invalid JSON lines from wrapper scripts.
At some point in the future invalid lines will no longer be sent to the
client.

[skip ci]

--------------------------------------------------------------------------------
0aa031b2f2 | Pekka Lampila | 2015-09-30 14:18:12 +0300

Don't send messages from wrapper scripts to spectators.
This means spectators won't be shown the transfer dialogs for example.

[skip ci]

--------------------------------------------------------------------------------
f8ac9ad4bc | Pekka Lampila | 2015-09-30 14:18:07 +0300

Remove compatibility mode from the WebTiles server.
Meant for 0.9, hasn't worked in years.

[skip ci]

--------------------------------------------------------------------------------
46ae38645c | Corin Buchanan-Howland | 2015-09-29 22:48:31 -0400

Add the robe of vines
The +3 robe of vines {Regen++++++++}. That's 8 plusses.

--------------------------------------------------------------------------------
cc30b765a1 | Pekka Lampila | 2015-09-29 19:16:30 +0300

Fixes to WebTiles when run without dgl_mode.

--------------------------------------------------------------------------------
9def0bc6ef | Pekka Lampila | 2015-09-29 14:11:41 +0300

Fix automatic chat scrolling in Chrome when zoomed in. (#9867)
Also clean up the function little bit.

--------------------------------------------------------------------------------
c3af7407ca | gerbias | 2015-09-28 20:18:18 -0700

Don't give species with innate claws a bonus to unarmed accuracy at all times.

--------------------------------------------------------------------------------
a475588d00 | Alex Jurkiewicz | 2015-09-28 21:30:24 -0400

Increase the stat cap to 125.
With a lot of megazigs, it's possible (just) to cap out a stat, which
is a probably unnecessary limit. Increase the limit as much as we can
without requiring a save file migration.

[committer's note: closes #117 pull request. -nfm]

--------------------------------------------------------------------------------
67270025df | Neil Moore | 2015-09-28 21:30:24 -0400

Add a couple people to mailmap and credits.
[skip ci]

--------------------------------------------------------------------------------
38f2e493b3 | Pekka Lampila | 2015-09-29 04:14:41 +0300

Allow disabling targeter's screen updates for process_keys.
Adding a second argument true to crawl.process_keys will make the
targeter not update the screen.

Autofight and automagic now use the feature.

--------------------------------------------------------------------------------
44011c12d3 | Pekka Lampila | 2015-09-29 03:43:25 +0300

Give a message before dropping out of wizmode prompt after ?.
Also give a different message when canceling the prompt, instead of
complaining about an unknown command.

--------------------------------------------------------------------------------
5dd19c54e4 | Neil Moore | 2015-09-28 20:22:54 -0400

Fix up a few comments.
[skip ci]

--------------------------------------------------------------------------------
b44664fef6 | Neil Moore | 2015-09-28 20:22:31 -0400

Slightly refactor some branch entry rune announcement code.
Don't bother calling branch_rune_desc when we're not even going to
use it; and constify a couple of variables.

Also, don't return 0 from branch_to_rune() for non-rune branches,
since 0 == RUNE_SWAMP.

--------------------------------------------------------------------------------
30692941da | Neil Moore | 2015-09-28 19:50:39 -0400

Don't hard-code the abyssal rune min depth.

--------------------------------------------------------------------------------
4538934805 | Alex Jurkiewicz | 2015-09-28 19:50:39 -0400

Describe a branch's rune on player entry.
[committer's note: closes #111 pull request. -nfm]

--------------------------------------------------------------------------------
32b2ff37c9 | Pekka Lampila | 2015-09-29 02:46:35 +0300

Improve messaging of various wizmode commands.
Mostly add messages to situations when nothing was printed.

--------------------------------------------------------------------------------
d44ad96028 | Neil Moore | 2015-09-28 18:23:19 -0400

Remove an unused parameter to set_ident_type.

--------------------------------------------------------------------------------
f63176a9e6 | gammafunk | 2015-09-28 17:16:50 -0500

Merge pull request #119 from amalloy/ash-scroll-id
Tell the player when Ash identifies ?RC for you
--------------------------------------------------------------------------------
319369bcb8 | Neil Moore | 2015-09-28 17:58:48 -0400

Fix forced-giving conflicting mutations.
A forced slow-heal mutation was supposed to remove all levels of regen
(and give slow-heal), while unforced slow-heal should just remove one
level of regen (without giving slow-heal). However, this was broken by
re-ordering in 0.15-a0-676-ge79590d, so forced slow-heal behaved the
same as non-forced. Fix that, and leave a comment explaining the meaning
of the numbers and the importance of the ordering.

--------------------------------------------------------------------------------
50caaa40c3 | Seve Monahan | 2015-09-28 17:20:41 -0400

Credit myself under my real name instead of "reaverb"
[skip ci]

--------------------------------------------------------------------------------
3e06482317 | Alan Malloy | 2015-09-28 13:12:09 -0700

Tell the player when Ash identifies ?RC for you

--------------------------------------------------------------------------------
d9295a5b88 | reaverb | 2015-09-28 15:32:58 -0400

Remove some outdated comments

--------------------------------------------------------------------------------
e4d61d8d5a | reaverb | 2015-09-28 15:18:25 -0400

Allow players to declare macros and keybindings in rc files
Currently there's an awkward issue where rc file declarations
automatically replace old ones on load. I intend to fix this, but this
version works fine outside that.

--------------------------------------------------------------------------------
c35365ef47 | Pekka Lampila | 2015-09-27 19:19:51 +0300

Fix WebTiles mini HP/MP bar not showing up occasionally. (#7392)
Fixing this without hard coding values values would be better of course.

--------------------------------------------------------------------------------
2f426ad30c | Pekka Lampila | 2015-09-27 17:32:22 +0300

Fix WebTiles mini HP/MP bar bug on spectator join.
It was possible for the mini bar to be left in player's old location, if
spectator joined during movement.

--------------------------------------------------------------------------------
56e792d7ce | Pekka Lampila | 2015-09-27 07:06:32 +0300

Add a missing break.
Shouldn't change anything in practice.

--------------------------------------------------------------------------------
afa4d75eb4 | Pekka Lampila | 2015-09-26 18:58:26 +0300

Show lightning scales and black knight doll tiles in WebTiles. (#7588)

--------------------------------------------------------------------------------
32fc5e8ae4 | Neil Moore | 2015-09-26 11:31:07 -0400

Simplify and guard wiz-dump.h
Move chardump_parser into the .cc file, since it is not used elsewhere.
Protect the single remaining declaration (of wizard_load_dump_file) with
an #ifdef WIZARD, so that trying to use it in a non-wizard build gives
errors at compile time rather than link time.

--------------------------------------------------------------------------------
aae3f96167 | Pekka Lampila | 2015-09-26 18:18:11 +0300

Fix compile with NOWIZARD. (#9622)

--------------------------------------------------------------------------------
bf686aa387 | Pekka Lampila | 2015-09-26 17:28:48 +0300

Don't identify last type of scroll/potion when dying. (#9566)
Or when escaping/leaving.

--------------------------------------------------------------------------------
3a44883a60 | Pekka Lampila | 2015-09-26 17:03:07 +0300

Add stash search prefixes for dragon and troll armours.
Also hides.

--------------------------------------------------------------------------------
545a7878cb | Pekka Lampila | 2015-09-26 17:01:16 +0300

Add stash search prefixes for magical staves.

--------------------------------------------------------------------------------
de4187c2aa | Neil Moore | 2015-09-25 22:46:20 -0400

Add operator^ to enum_bitfield (hypractvChipmunk)
Toggling is a thing, I suppose.

--------------------------------------------------------------------------------
47c5406ea3 | Pekka Lampila | 2015-09-26 04:22:46 +0300

Actually don't generate randart weapons with *Tele.

--------------------------------------------------------------------------------
356535438e | Pekka Lampila | 2015-09-26 04:01:09 +0300

Don't create antimagic randarts with MP+9.

--------------------------------------------------------------------------------
b13a82e6fc | Pekka Lampila | 2015-09-26 03:40:39 +0300

Don't allow rCorr and *Corrode in the same randart.

--------------------------------------------------------------------------------
4c791fa46a | Neil Moore | 2015-09-24 20:25:13 -0400

Move a developer into retirement.
And rename, both by request.

[skip ci]

--------------------------------------------------------------------------------
0b143305fb | Pekka Lampila | 2015-09-24 22:26:53 +0300

Improve stash search for jewellery items.
Adds a search prefix for the artefact property that the base type
provides (eg. protection from fire = rF+). Plus adds approriate extra
prefixes for rings of ice/fire and amulet of warding.

Rings that provide plusses (or minuses) get just the plus symbol until
identified (eg. -1 ring of dexterity = Dex+, and when identified Dex-1).

--------------------------------------------------------------------------------
9d7c959ddf | Pekka Lampila | 2015-09-24 22:26:47 +0300

Support jewellery in CLua ego type functions.

--------------------------------------------------------------------------------
f8c94de28b | Pekka Lampila | 2015-09-24 22:22:52 +0300

Fix item type known tests in CLua ego type functions.

--------------------------------------------------------------------------------
6d5812e614 | Neil Moore | 2015-09-24 01:55:39 -0400

Be more precise about when 7/y are confused.
The only time that 7 should be mapped to y is when using Putty in
NetHack keypad mode.

I would remove the suggestion to use that mode from ssh_guide.txt, but
it looks like that is the only way to get ctrl and shift to work with
the keypad.

[skip ci]

--------------------------------------------------------------------------------
faf5a26633 | Neil Moore | 2015-09-24 01:35:51 -0400

Avoid a potential null pointer dereference in LOS spells.
The dlua functions spells.refrigeration and spells.toxic_radiance
deliberately pass in a null pointer here.  This never actually
caused a crash, because those functions are completely unused.

--------------------------------------------------------------------------------
f00ca37afb | Neil Moore | 2015-09-24 01:34:45 -0400

Avoid a potential CLua null pointer dereference.
If the value on the top of the stack was not actually a monster
userdata, we ended up with a null MonsterWrap*, which we then
dereferenced hoping to get at the monster inside.

Produce a null monster instead.

--------------------------------------------------------------------------------
e1826d19cd | Neil Moore | 2015-09-24 01:31:37 -0400

Actually reroll hexes miscast when we claim to.

--------------------------------------------------------------------------------
fd5b69f196 | Neil Moore | 2015-09-24 01:30:59 -0400

Give the right kaux for exploding lurking horrors.
Not that, as far as I know, the player or the logfile would ever see the
aux line for torment.

--------------------------------------------------------------------------------
7856cb5dd7 | Neil Moore | 2015-09-24 00:58:27 -0400

Don't make Jiyvites spew jellies in response to torment.
There was code to avoid this, and it worked for the scroll, the Kiku
ability, miscasts, etc.; but not for the spell Symbol of Torment or the
Sceptre of Torment, because we were only checking the aux line for
lowercase 'torment'.

Maybe that was the intended behaviour (all the lowercase instances can
be the player's fault), but I am not quite cynical enough to want to
believe that that someone did that intentionally without leaving a
comment.

--------------------------------------------------------------------------------
45e81100c4 | Brendan Hickey | 2015-09-24 01:35:18 +0000

Disable tileschat history on dir+shift

--------------------------------------------------------------------------------
e84b1dfbbe | Neil Moore | 2015-09-23 17:28:04 -0400

Improve a Fedhas description.
So that "need" and "provides" have the same object.

[skip ci]

--------------------------------------------------------------------------------
78311bb532 | Neil Moore | 2015-09-23 12:36:24 -0400

Be more verbose in an assert.
If the feature enum is in range but invalid, it would be good to know
its numeric value.  Hopefully this will help debug:
    
http://dobrazupa.org/morgue/Xenophilius/crash-Xenophilius-20150923-161916.txt

--------------------------------------------------------------------------------
d493544bc5 | John Stahara | 2015-09-23 19:25:18 +0300

Always update skill menu when toggling training mode (#9972)

--------------------------------------------------------------------------------
826bd0454c | Pekka Lampila | 2015-09-23 18:51:03 +0300

Remove an unused constant.
[skip ci]

--------------------------------------------------------------------------------
56bb777086 | Chris Campbell | 2015-09-23 15:33:22 +0100

Merge pull request #116 from alexjurkiewicz/patch-1
Update god wrath slow message
--------------------------------------------------------------------------------
bb57c0e7c6 | Neil Moore | 2015-09-23 08:35:37 -0400

Brace.
[skip ci]

--------------------------------------------------------------------------------
e238d2cc0a | Alex Jurkiewicz | 2015-09-23 08:34:54 -0400

Improve "missing gdb" error message.

--------------------------------------------------------------------------------
7a3fd6b143 | Alex Jurkiewicz | 2015-09-23 08:34:27 -0400

Add all missing override specifiers (|amethyst)
[committer's note: closes #115 pull request. -nfm]

--------------------------------------------------------------------------------
9c06db1e30 | gammafunk | 2015-09-23 03:48:37 -0500

Don't let up arrow cycle into empty history in WebTiles chat
Don't go past the last existing history message.

--------------------------------------------------------------------------------
d68cdcddab | gammafunk | 2015-09-23 03:23:59 -0500

Fix member initializers not being in the right order

--------------------------------------------------------------------------------
96e7f8670d | gammafunk | 2015-09-23 02:59:58 -0500

Implement a simple message history for WebTiles chat
Hit up and down arrows in the chat pane to cycle through the previous 25
sent messages. Any unsent message that's in the input box before
accessing the message history is saved to be later reloaded by down
arrow when going past the first history item.

--------------------------------------------------------------------------------
9492850c4d | Alex Jurkiewicz | 2015-09-23 15:09:39 +1000

Update god wrath slow message
The old message could be confused with exhaustion status effect.
--------------------------------------------------------------------------------
3e50df6fc1 | Darshan Shaligram | 2015-09-22 20:50:11 -0400

Write Crawl tag and save versions to logs
When loading saves, remember the Crawl version that wrote the save, and log
that in the milestones and logfiles as "vsavrv". Also record the save
major.minor version as "vsav".

--------------------------------------------------------------------------------
babdea6fbd | Neil Moore | 2015-09-22 20:47:13 -0400

Warn about changing reflected beam visibility logic.
[skip ci]

--------------------------------------------------------------------------------
326927c88b | Neil Moore | 2015-09-22 20:32:58 -0400

Don't crash when Dispersing a monster onto a shaft.
(The spell, not the brand.)

Blinking applies location effects at the target, causing monsters to
fall though shafts (and thus disappear from the current level).  We
shouldn't try to apply the confuse effect if that happens, as checking
MR of a dead monster will crash.  For example:

    http://webzook.net:82/morgue/trunk/Curaria/crash-Curaria-20150921-153012.txt

Presumably the same thing happens if the monster is instead killed by a
mechanical trap at the destination.

--------------------------------------------------------------------------------
89d7cbc787 | gerbias | 2015-09-22 19:49:31 -0400

Fix for crash when reaching 27 in a skill
Remove call to fixup_skills in set_cost(); it is unnecessary and
causes a crash after reaching 27 in a skill

--------------------------------------------------------------------------------
efdfc71969 | Neil Moore | 2015-09-22 19:49:24 -0400

Fix crash on player-reflected IOOD/returning.
Because the beam was reflected, agent() might be menv[YOU_FAULTLESS], which
doesn't have a real monster type and so asserts in can_see_invisible.  But
logically the sight of neither the reflector nor the original thrower should
matter here: neither one is aiming for the ultimate target.

The crash only happened when the beam already had its reflector set
before being fired: that happened when drawing the return beam of a
returning weapon, or when a reflected IOOD hits something.

There could be other similar bugs arising from trying to query certain
properties of menv[YOU_FAULTLESS].  Perhaps we need a function from
actor * to actor * that normalises menv[YOU_FAULTLESS] back to you,
when the true reflector is actually important.

--------------------------------------------------------------------------------
750edc8093 | Shmuale Mark | 2015-09-21 16:36:13 -0400

Display the depth of a shaft even if entering voluntarily (Kolbur).

--------------------------------------------------------------------------------
2f5db9439e | Neil Moore | 2015-09-21 02:54:12 -0400

Fix some misleading indentation.
[skip ci]

--------------------------------------------------------------------------------
acf7e6780c | Neil Moore | 2015-09-20 23:31:28 -0400

Fix spacing and bracing.
[skip ci]

--------------------------------------------------------------------------------
ed43295723 | Neil Moore | 2015-09-20 23:31:16 -0400

Rename some magic 27s.
Keeping the maximum skill level separate from the maximum skill cost
level.

Also, add a compile-time array size check.

--------------------------------------------------------------------------------
743d182628 | Neil Moore | 2015-09-20 23:31:06 -0400

Round, not truncate, three-digit skill cost ratios.

--------------------------------------------------------------------------------
f4270f4f5b | Shmuale Mark | 2015-09-20 22:52:33 -0400

Improve help/display for skill cost.

--------------------------------------------------------------------------------
aa1e9db280 | Shmuale Mark | 2015-09-20 22:00:31 -0400

Clean up skill cost patch.

--------------------------------------------------------------------------------
b10e7a28c5 | gerbias | 2015-09-20 21:25:21 -0400

Initial commit of relative level cost display.

--------------------------------------------------------------------------------
e687144293 | Neil Moore | 2015-09-20 20:08:02 -0400

C++11: More range-based for loops and algorithms.
Two sets of for loops:

  1. Loops that iterated over the inventory, items, or monsters, but did not
     require the slot/mitm/mindex.

  2. Miscellaneous leftover loops in header files.

Also, move simple_connect's initialization into its constructor.

--------------------------------------------------------------------------------
15a0ee20e2 | Neil Moore | 2015-09-20 18:53:31 -0400

Tiles: Allow felids to evoke with alt-click.
This wasn't updated when they gained the ability to use wands.

--------------------------------------------------------------------------------
214c0de300 | Neil Moore | 2015-09-20 17:35:12 -0400

Fix a comment typo.
[skip ci]

--------------------------------------------------------------------------------
dc8eb4eb19 | Neil Moore | 2015-09-20 16:53:06 -0400

C++11: add more override specifiers.
This should cover everything missed in 0.17-a0-1751-g9fa07f0.

--------------------------------------------------------------------------------
97801649e2 | Pekka Lampila | 2015-09-20 22:04:05 +0300

Don't load or save .persist files when using -no-save.

--------------------------------------------------------------------------------
01048b6615 | Neil Moore | 2015-09-20 14:22:41 -0400

Simplify, and remove an #if 0 block.
If we decide to use the system locale in trunk again, we have version
control for that.

Not adding fake_langs to the initialization list, because its default
constructor will be called anyway.

--------------------------------------------------------------------------------
60cf096655 | Neil Moore | 2015-09-20 14:14:26 -0400

Don't clear Options.no_save when loading the rc file.
The option was true only in the period of time between main() calling
parse_args(..., false) and the rc file of the first game being loaded
(in the middle of _post_init).  All of the existing checks did happen
between those two events, unless restart_after_game was enabled (in
which case saves were disabled only for the first game).

Besides the improved interaction with restart_after_game, this change
allows adding special run-time logic for unsaved games (for example,
not generating a .persist file).

--------------------------------------------------------------------------------
2ecafe17ce | Neil Moore | 2015-09-20 13:09:09 -0400

Make test/stress/qw.rc more automatic (Medar)
Make it start without pressing tab, and disable full inventory panic.

[skip ci] because our travis test suite doesn't run qw.

--------------------------------------------------------------------------------
5b601467fc | Neil Moore | 2015-09-20 12:39:23 -0400

Don't move the kraken in sprint II (MrPlanck)
Its position was being shuffled with Menkaure and the crocodile since
baby alligators were removed (0.17-a0-935-g2366863).

[skip ci]

--------------------------------------------------------------------------------
67f9a5a94a | Neil Moore | 2015-09-20 12:21:59 -0400

Brace.
[skip ci]

--------------------------------------------------------------------------------
4ecfd9b129 | Neil Moore | 2015-09-20 12:19:12 -0400

Identify brands of monster-held artefacts.
For consistency with non-artefacts, but also to make it safer for
worshippers of Chei, Dith, TSO, etc. to use Tukima's on randarts.

--------------------------------------------------------------------------------
715b4b09e1 | Neil Moore | 2015-09-19 22:35:21 -0400

Avoid arithmetic in a tile enum switch.

--------------------------------------------------------------------------------
4ec9cdcd6f | ontoclasm | 2015-09-19 21:25:26 -0500

Show Duvessa's weapon when berserk (1old3, 9964)

--------------------------------------------------------------------------------
077dc4a039 | Pekka Lampila | 2015-09-20 05:03:27 +0300

Fix extra empty lines in WebTiles message area (#9956).
Happened after rollbacks (like canceling enter note prompt), since
latest message area fixes.

--------------------------------------------------------------------------------
2d489b3759 | Neil Moore | 2015-09-19 21:34:30 -0400

Add noxdominus to mailmap.

--------------------------------------------------------------------------------
76eb06bd64 | Neil Moore | 2015-09-19 21:32:38 -0400

Use the proper article for 11- and 18-headed hydras.
And 875-headed hydras, should they become a thing.

--------------------------------------------------------------------------------
7f54a15e30 | Neil Moore | 2015-09-19 21:32:38 -0400

Use the proper article for eight-headed hydra form (amalloy)
And spell out numbers smaller than 11, as with monster hydras.

--------------------------------------------------------------------------------
7376cb15a7 | Shmuale Mark | 2015-09-19 21:27:00 -0400

Show untrainable skills drained to 0 in menu.

--------------------------------------------------------------------------------
95ef112fbb | Pekka Lampila | 2015-09-20 04:13:37 +0300

Show knowledge transfer skills in menu even if 0.

--------------------------------------------------------------------------------
64aa77fcec | gammafunk | 2015-09-19 17:04:46 -0500

Merge pull request #114 from chereshnev/patch-1
Thanks for the translations!
--------------------------------------------------------------------------------
211bbc2964 | Gregory Chereshnev | 2015-09-20 00:08:12 +0300

Update branches.txt

--------------------------------------------------------------------------------
e1bd2c8775 | Pekka Lampila | 2015-09-19 18:11:36 +0300

Show untrainable skills under level 1 (#9940).
When they are at least level 0.1.

--------------------------------------------------------------------------------
1570524cb6 | Pekka Lampila | 2015-09-19 17:27:19 +0300

Fix an indefinite article.

--------------------------------------------------------------------------------
f12a9eb929 | gammafunk | 2015-09-18 23:31:32 -0500

Re-add the Lamia tile for tile_player_tile usage
The unique was (and still is) removed, but this is an oft-requested
tile, since ontoclasm did such a nice job with it. Adding back her tile
so that such epic High Fantasy roleplaying as

https://crawl.develz.org/tavern/viewtopic.php?p=160605#p160605

can be properly supported.

--------------------------------------------------------------------------------
688e747d39 | David Ploog | 2015-09-18 01:12:44 +0200

Two more lines.

--------------------------------------------------------------------------------
8a24fa2830 | Chris Campbell | 2015-09-17 17:37:40 +0100

Remove some monster demonspawn behaviours
The monster implementations of Powered by Pain, Augmentation and Powered by
Death were all either overcomplicated, not noticeable, or both. The eventual
aim is to remove the facets entirely to greatly simplify monster demonspawn,
this at least removes some of their very obscure hidden mechanics, with the
facets now mostly just granting resistances.

--------------------------------------------------------------------------------
7af0a78d64 | Chris Campbell | 2015-09-17 15:39:49 +0100

Reword some branch descriptions
Give a vague mention of hell effects in Hell branch descriptions, plus some
other minor tweaks.

--------------------------------------------------------------------------------
ab557991d5 | Chris Campbell | 2015-09-17 14:51:25 +0100

Wake up monsters affected by Gell's Gravitas

--------------------------------------------------------------------------------
2561f35ad0 | Shmuale Mark | 2015-09-17 08:36:45 -0400

Remove a speech line (#2275).

--------------------------------------------------------------------------------
26934172eb | smitnich | 2015-09-17 08:33:05 -0400

Improve sticks to snakes usability
Allow for multiple arrow types in one cast, prefer arrows with the
smallest count for players without bow skill, and specify the exact
amount of snakes created.

[some minor cleanup --wheals]

--------------------------------------------------------------------------------
28afa981a1 | Shmuale Mark | 2015-09-17 08:24:36 -0400

New/removed randart names, by Skrybe (#9949).

--------------------------------------------------------------------------------
a59d3f5b23 | Shmuale Mark | 2015-09-17 08:19:20 -0400

Show curse scrolls on \ under Ash (#9960).

--------------------------------------------------------------------------------
acc33f278e | Chris Campbell | 2015-09-16 17:54:06 +0100

Don't make player demon summoning spells depend on Pan spawn lists (#9957)

--------------------------------------------------------------------------------
e35ca2966e | Chris Campbell | 2015-09-16 16:33:33 +0100

Recheck Ash bondage when gaining/losing equipment-blocking mutations (#9958)

--------------------------------------------------------------------------------
87820a2c32 | gammafunk | 2015-09-15 03:39:50 -0500

Don't imply that flying skulls make additional noise (DarkTwinge)
The sentence "It periodically emits loud, blood-curdling shrieks."
implies some kind of noise emitting ability, which these monsters don't
have.

--------------------------------------------------------------------------------
3e330adc6d | gammafunk | 2015-09-15 03:17:05 -0500

Fix a monster description typo (DarkTwinge)

--------------------------------------------------------------------------------
891d947a3c | Alex Jurkiewicz | 2015-09-14 20:54:16 -0400

More Donald responses.
[skip ci]

--------------------------------------------------------------------------------
7c6a762176 | Neil Moore | 2015-09-14 10:17:22 -0400

Use the correct pronoun for more xv lines.
And don't construct the same pronoun strings repeatedly.

Xtahua the Ancient
[...]
If he is slain and butchered, it may be possible to recover his hide [...]

(The combination of << and string literal concatenation-by-juxtaposition
 makes the formatting here ugly; someone should look at that.)

--------------------------------------------------------------------------------
b183eda11b | Neil Moore | 2015-09-14 10:02:03 -0400

Fix a typo.
Little fingers of concrete... [skip ci]

--------------------------------------------------------------------------------
60d178911a | Neil Moore | 2015-09-14 09:56:18 -0400

Show I_HUMAN in xv.
Besides the (mostly minor) changes in behaviour, intelligence matters
for abilities and/or conducts of Yred, TSO, Gozag, and Zin; as well as
Alistair's Intoxication.

Now xv distinguishes among all three intelligences:

  * I_BRAINLESS: "It is mindless."
  * I_ANIMAL: (no message)
  * I_HUMAN: "It is intelligent."

--------------------------------------------------------------------------------
ef58047875 | Neil Moore | 2015-09-14 02:28:56 -0400

Fix the variadic constructor for enum_bitfield.
It's not actually used, but if it were it would have skipped every other
argument.

--------------------------------------------------------------------------------
9176aad88b | Neil Moore | 2015-09-14 01:02:10 -0400

Don't blame the player for Veh/Makhleb spell wrath (dolemite99)
See https://www.reddit.com/r/dcss/comments/3ku4jh/

--------------------------------------------------------------------------------
13cb7e4710 | Neil Moore | 2015-09-13 21:27:40 -0400

Enscopulate and rename ability_flag_type.

--------------------------------------------------------------------------------
aadb3086eb | Neil Moore | 2015-09-13 20:57:30 -0400

Make ability_def private, make its flags a bitfield enum.
The only user of ability_def outside of ability.cc was a single call in
the tiles ability panel code, to get the MP cost.  Replace get_ability_def
in the public API with ability_mp_cost(), and move the ability_def struct
into ability.cc.  This lets us make ability_def::flags a bitfield enum,
without having to expose the enum in a header.

--------------------------------------------------------------------------------
81820eb748 | Corin Buchanan-Howland | 2015-09-12 22:45:45 -0400

Move previous updates to changelog to 0.17 and update further (Grunt)

--------------------------------------------------------------------------------
68572c6a49 | Neil Moore | 2015-09-12 17:02:43 -0400

Remove some trailing empty lines.
[skip ci]

--------------------------------------------------------------------------------
d24ee02dfe | Neil Moore | 2015-09-12 17:02:05 -0400

Add another Donald Ru speech line.
[skip ci]

--------------------------------------------------------------------------------
27f80639cd | Neil Moore | 2015-09-12 17:01:18 -0400

Fix spelling.
[skip ci]

--------------------------------------------------------------------------------
8bb47046db | Corin Buchanan-Howland | 2015-09-12 16:52:20 -0400

Add Ru speech for Donald and player ghosts (|amethyst)

--------------------------------------------------------------------------------
52554c07c6 | Chris Campbell | 2015-09-12 17:03:47 +0100

Remove god protection from Beogh smiting and TSO cleansing flame
Having a chance of your god protecting you just from these two types of god
wrath was a strange special case - for TSO in particular, possibly a remnant
of when cleansing flame triggered on holy kills.

Closes #61, as it now no longer applies.

--------------------------------------------------------------------------------
dcc481f7b3 | Neil Moore | 2015-09-12 11:31:52 -0400

Prepopulate channel list in freenode webchat link.
And add a link for ##crawl-dev.

[skip ci]

--------------------------------------------------------------------------------
6649fb0c36 | Neil Moore | 2015-09-12 11:28:17 -0400

Update copyright date in licence.txt
[skip ci]

--------------------------------------------------------------------------------
0786594295 | Neil Moore | 2015-09-12 11:27:21 -0400

Correct licence link in README.md
[skip ci]

--------------------------------------------------------------------------------
994ff6c219 | Neil Moore | 2015-09-12 11:10:47 -0400

Display Servant fail rates as "N% hostile".

--------------------------------------------------------------------------------
e6e469604e | Neil Moore | 2015-09-12 11:08:07 -0400

Count a hostile Makh summon as success.
That is, don't display a failure message (we already get a hostility
message); charge the player HP, piety, and nutrition; practice
Invocations; and count the attempt in the action counts.

The commit "Increase the failure rate of Makhleb's SGD." (cbfb521)
assumed at least that a failure here would cost piety.

--------------------------------------------------------------------------------
edbdc69767 | Neil Moore | 2015-09-12 10:29:00 -0400

Remove README.md from shipped packages.
Windows users have to be fairly sophisticated to even be able to read
a .md file, since their OS has no default association for it.

--------------------------------------------------------------------------------
a9d15ad58d | Neil Moore | 2015-09-12 10:28:42 -0400

Remove README.md from the in-game help.
It wasn't able to find the file after the most recent move, and the help
viewer didn't even try to render markdown readably.  Not many people
even knew about it, anyway.

--------------------------------------------------------------------------------
6cadc78e74 | Brendan Hickey | 2015-09-12 09:40:35 -0400

Merge pull request #106 from alexjurkiewicz/makh-demon-fail-chance
Use success% for Makhleb demon friendliness.
--------------------------------------------------------------------------------
4b9f1bef80 | Brendan Hickey | 2015-09-12 09:39:46 -0400

Merge pull request #70 from coledot/smarter_monster_cloud_behavior
Make monsters have better self-preservation around clouds
--------------------------------------------------------------------------------
5cdd6f3e3e | Brendan Hickey | 2015-09-12 13:18:24 +0000

Update qw
This updates qw to a version that actually works on trunk.

--------------------------------------------------------------------------------
adc4ad6758 | Brendan Hickey | 2015-09-12 09:02:32 -0400

Merge pull request #107 from alexjurkiewicz/readme-toplevel
Update README
--------------------------------------------------------------------------------
0fb045ce40 | DrKe | 2015-09-12 13:56:02 +0100

Reduce fail rate of mutated Blink
For the basic mutation, required player XL for 15%-10%-5% fail goes from
XL6-XL16-XL26 to XL1-XL11-XL21.

[Closes #110 - MarvinPA]

--------------------------------------------------------------------------------
3fae6ffc19 | DrKe | 2015-09-12 13:41:37 +0100

Cap the Blink mutation at one level
Extra levels only serve to reduce the fail rate, leaving the HP cost
and range the same. It's also a fairly low-weight mutation, so extra
levels, when they do occur, tend to do so later in the game, when
the fail rate reduction is less significant due to the player's higher
XL and likelihood of having other sources of Blink. Therefore, getting
extra level(s) in Blink is one of the least interesting results of being
mutated.

Given that the mutation provides a simple ability with fixed properties,
it seems more logical and expected that it would be only one level.

Also clarify the message received upon losing the mutation.

--------------------------------------------------------------------------------
6093636740 | gammafunk | 2015-09-11 12:04:43 -0500

Don't goldify corpses under Gozag for 0-XP monsters (ololoev)
Use the overall monster check for granting XP instead of a monster class
check and various special cases. Bribed friendly and neutral monsters
under Gozag will have their corpses goldified, but this is consistent
with how we also reward experience for these when they die.

--------------------------------------------------------------------------------
f6433eb199 | ontoclasm | 2015-09-10 22:18:35 -0500

Recolor the mutant beast tile

--------------------------------------------------------------------------------
58b486a986 | gammafunk | 2015-09-10 18:46:53 -0500

Correct des syntax and improve appearance of an arrival vault
The no_item_gen KMSK wasn't fully applied correctly in 1f4bb98. I've
also reworked the vault to use more consistent floor and rock coloring,
making the resulting variations look nicer.

--------------------------------------------------------------------------------
9847487d11 | gammafunk | 2015-09-10 16:54:13 -0500

Use the correct glyph in a vault
Forgot to properly mark floor tiles with the necessary glyph in 1f4bb98.

--------------------------------------------------------------------------------
1f4bb98f58 | gammafunk | 2015-09-10 04:05:06 -0500

Don't use a vault-wide no_item_gen tag in D:1 arrival vaults
A number of D:1 arrival vaults had the no_item_gen tag because items
used to (annoyingly) place under firewood, or because they had certain
sections where items would be dangerous, annoying, or impossible to
retrieve, or for no particular reason at all. This commit removes
no_item_gen from TAGS statements in these vaults, applying a no_item_gen
KMASK to appropriate areas.

--------------------------------------------------------------------------------
d4178d0913 | gammafunk | 2015-09-10 04:05:01 -0500

Some vaults and vault updates by nicolae
A new abyssal rune vault, two decor vaults for Dungeon, Depths, and Zot,
and a decor vault for Snake.

The vault nicolae_arrival_washed_ashore is updated to not show any
dungeon walls in starting position under squarelos.

I opted to replace nicolae_abyss_rune_containment_breach with the square
variant, since the original was significantly easier, and we don't
usually have distinct rune vaults that are very similar in execution
that vary by difficulty. If 8 spatial maelstroms is somehow too much for
our dear players, we can randomize the monster placement to reduce the
average and possibly lower the max.

--------------------------------------------------------------------------------
87de0e7c33 | gammafunk | 2015-09-10 02:28:18 -0500

An arrival vault by MainiacJoe

--------------------------------------------------------------------------------
879a7aa177 | gammafunk | 2015-09-09 18:47:24 -0500

Clean up WebTiles message code and document
Don't attempt message removal if not necessary, and since this was a
major and longstanding performance issue, document the message removal
function.

--------------------------------------------------------------------------------
4297a6b4ee | gammafunk | 2015-09-09 18:47:24 -0500

Removed unused code for designating old player messages in WebTiles
That was apparently intended to indicate to the client that a certain
number of messages were no longer needed and hence their html elements
could be reclaimed. This information was never actually sent by the
crawl binary, however, and the client handles removing old message
elements itself already.

--------------------------------------------------------------------------------
4667fa3cf4 | gammafunk | 2015-09-09 18:47:24 -0500

Fix player message scrolling in WebTiles
This was broken in fa90d0a6.

--------------------------------------------------------------------------------
3b1d94b46a | gammafunk | 2015-09-09 18:46:58 -0500

Leave at least 15 visible messages when removing old ones in WebTiles
The fix in fa90d0a6 for WebTiles lag removed all but 10 player message
old div tags, but more than 10 might be displayable in the message pane,
depending on browser settings.

--------------------------------------------------------------------------------
8c7c337052 | Kevin Donnelly | 2015-09-09 18:45:52 -0500

Remove old messages in WebTiles
I've noticed that when playing on webtiles the game is very responsive
at the start but then gets slower and slower the longer it goes on. It
also snaps back to being responsive by just reloading the page. Using
Chrome's javascript profiler I was able to track the primary cause down
to the way messages are added to the page.

Basically every message just added a new div to the page after all the
previous ones. After playing for a while there can be thousands of divs
on the page which bogs down the performance.

This commit removes old messages that cannot be seen by the player every
time a new message is added. It also removes an unnecessary jQuery
scroll command and an unused messages array.

Commiter's Note: This closes #108

--------------------------------------------------------------------------------
cbb3aa1db1 | Corin Buchanan-Howland | 2015-09-08 21:38:54 -0400

Improve rounding on undead damage (|amethyst)

--------------------------------------------------------------------------------
3f9e932fb9 | Corin Buchanan-Howland | 2015-09-08 21:27:45 -0400

Blocking trove wand tolls for characters with Sac Artifice

--------------------------------------------------------------------------------
2f19dce0e2 | Corin Buchanan-Howland | 2015-09-08 21:00:56 -0400

Fix one more case of a god hating a brand.

--------------------------------------------------------------------------------
72cbd95907 | Corin Buchanan-Howland | 2015-09-08 20:49:21 -0400

Change derived undead damage
Derived undead used to get -1 to -4 base damage. Now they get -20% base
damage. This should be pretty similar for very early game derived undead
while weakening late-game derived undead, particularly for heavy hitters
like ettins and juggernauts.

--------------------------------------------------------------------------------
08235e39a8 | Corin Buchanan-Howland | 2015-09-08 20:30:05 -0400

Mark amulet of faith useless under Ru with max piety (rchandra)

--------------------------------------------------------------------------------
e717f93e3c | Corin Buchanan-Howland | 2015-09-08 20:14:40 -0400

Switch STARVING to LIGHTRED to make FAINTING more obvious (rchandra)

--------------------------------------------------------------------------------
4aeb8be67a | Neil Moore | 2015-09-08 16:09:53 -0400

Show correct hex chance vs low-MR creatures (gerbias)
There was an extra 50% chance of success for monsters with less than
6 MR, but the hex targetter didn't take that into account.  Handle it
in desc_success_chance rather than hex_success_chance, since it does
not apply to low-MR players.

--------------------------------------------------------------------------------
1ee0550b33 | Neil Moore | 2015-09-08 16:02:44 -0400

Fix compilation.

--------------------------------------------------------------------------------
42870f9503 | Chris Campbell | 2015-09-08 15:21:33 +0100

Give Demonic Guardians Fedhas-style protection from player ranged attacks
And extend that protection to explosions, since it already covers all beams and
clouds.

--------------------------------------------------------------------------------
77d4bee5c5 | Chris Campbell | 2015-09-08 15:15:40 +0100

Remove hammers
They only really existed for one joke, and them being hammers in particular
isn't especially vital for it. Replaced with mostly maces and clubs in the few
vaults that did still use them.

--------------------------------------------------------------------------------
bed88990e7 | Chris Campbell | 2015-09-08 14:26:05 +0100

Prevent some species-specific useless items being trove tolls
Disallows Formicids from being asked for hasting/blinking/teleportation, and
Vine Stalkers from being asked for curing/heal wounds. Could probably be
implemented in a neater way, but can't completely use is_useless_item since
there are various edge cases to handle (still asking draconians for dragon
armours since they require using ?EA, and not asking for wands of hasting and
heal wounds even though they're technically not "useless" for Fo/VS).

--------------------------------------------------------------------------------
a43012d66b | Neil Moore | 2015-09-08 08:50:43 -0400

Another minor formatting fix.
[skip ci]

--------------------------------------------------------------------------------
2b30068023 | Shmuale Mark | 2015-09-08 08:10:12 -0400

Minor formatting fixes.

--------------------------------------------------------------------------------
579a2d0426 | miek | 2015-09-08 08:08:28 -0400

Modified the do_cast method to check that the targetted monster for 
freeze/vampiric draining is adjacent to the character.
Note that this still has the bug that the targetted monster is the one at the 
targetter, not the first along the line of the ray-path.

--------------------------------------------------------------------------------
d912b46197 | smitnich | 2015-09-08 08:08:07 -0400

Fix Deep Dwarf exploit using Flayed Ghosts
Due to damage shaving, the amount of damage taken via flaying
is less than the amount stored as "flay_damage"; this leads
to the player being healed beyond their original HP when the
effect wears off.

Resolve this by checking the HP before and after the player is
hurt and storing this value for the amount of HP to be healed.

--------------------------------------------------------------------------------
d369669389 | Shmuale Mark | 2015-09-07 22:09:06 -0400

Warn for Tukima's on a holy weapon for Yred (edgefigaro).

--------------------------------------------------------------------------------
4fc8996c04 | Shmuale Mark | 2015-09-07 20:51:29 -0400

Fix util/db_lint.
Only warnings now are from shadow traps; they're undescribed, but their
future is uncertain right now anyway.

--------------------------------------------------------------------------------
96022f5acc | gammafunk | 2015-09-07 17:22:19 -0500

Give a description of Zin's Donate Gold ability (wheals)

--------------------------------------------------------------------------------
10da671222 | ontoclasm | 2015-09-07 16:50:12 -0500

Permaglass edits

--------------------------------------------------------------------------------
d6cbb0a6cb | gammafunk | 2015-09-07 16:50:05 -0500

Use brown permarock tiles in Labyrinths

--------------------------------------------------------------------------------
b0681b7823 | gammafunk | 2015-09-07 16:49:58 -0500

Allow permarock tiles to use feature colours
Now that we have coloured permarock tiles, let the coloured tile be set
through use of the COLOUR statement in des. Apply this in hall_of_zot.

--------------------------------------------------------------------------------
f0816ad954 | ontoclasm | 2015-09-07 16:49:51 -0500

Permarock tiles

--------------------------------------------------------------------------------
dae8a59654 | Shmuale Mark | 2015-09-07 17:21:55 -0400

Fix stone walls being turned into permaglass in labs.
Refactor slightly so as to make the check in only one place.

--------------------------------------------------------------------------------
39cf4005b3 | ontoclasm | 2015-09-07 14:25:21 -0500

Mummy tile edits

--------------------------------------------------------------------------------
54adf96978 | smitnich | 2015-09-06 14:03:52 -0400

Make MUT_BREATHE_FLAMES and MUT_SPIT_POISON mutually exclusive;
They were previously treated similarly to Robust vs Frail in that
one would overwrite the other when it is gained. This fixes potions
of beneficial mutation taking away either mutation by attempting
to give the opposite.

--------------------------------------------------------------------------------
a7a5304e8d | smitnich | 2015-09-06 14:03:31 -0400

List Formicid along with Halfling and Kobold as non-human races with human 
experience factor.

--------------------------------------------------------------------------------
ccbed74ba7 | gammafunk | 2015-09-05 12:43:41 -0500

Don't always store boolean variables in c_persist as true
The persistant lua table variable stringification code was always
stringifying booleans as "true".

--------------------------------------------------------------------------------
0b8207c31b | Neil Moore | 2015-09-05 11:15:28 -0400

Charge for more egos in shops (tedric, minmay)
Antimagic, archery, and spirit shield were not increasing the price of
shop items at all.  The numbers here are just a guess: adjust as
necessary.

--------------------------------------------------------------------------------
cb1435c382 | Neil Moore | 2015-09-05 07:35:50 -0400

Liven up a dead room (#9814)
There was a 3/4 chance for the room at the northwest of the lake to be
completely enclosed.  But demanding a lucky teleport or high-power LRD
to enter is rude, so guarantee a door.  Leave the hatch, in case someone
has an unlucky teleport with no source of flight or further teleport.

MarvinPA points out that the intent was probably to only generate this
loot room sometimes (following infant peek-a-boo ontology).  If someone
wants to respect that by filling the room in with metal walls 3/4 of the
time, go for it.

--------------------------------------------------------------------------------
d4f14f8288 | gammafunk | 2015-09-05 01:27:43 -0500

Changelog up to 0.17-a0-1763-g847a857

--------------------------------------------------------------------------------
847a857317 | Chris Campbell | 2015-09-03 22:08:21 +0100

Allow bribing the Dungeon and Depths
Both have more than enough valid bribe targets, and this makes almost all
branches bribable (with the fairly reasonable exceptions of Swamp, Spider,
Slime, and the Abyss).

--------------------------------------------------------------------------------
09a8316837 | Neil Moore | 2015-09-03 03:06:34 -0400

Use the right headers in util/configure.
The build-time checks for functions should #include the same headers as
the Crawl code that uses that function.  Otherwise, there are bound to
be problems when some platform's cstdlib and stdlib.h disagree on the
matter.

--------------------------------------------------------------------------------
ebe452c688 | gammafunk | 2015-09-03 01:53:25 -0500

Use a flat distribution for Juggernaut monster placement
Previously the their RISE distribution caused very few to place in a
game (0.53 on average in all of Depths) as their range is from Depths:5
to out-of-depth and with low weight. They're not nearly as dangerous as
caustic shrikes, which have about three times the placement compared
Juggernauts before this commit. This keeps their weight the same, but
uses FLAT, giving them similar placement to shrikes and titans in
Depths.

--------------------------------------------------------------------------------
a6756aeaf4 | Shmuale Mark | 2015-09-02 13:47:30 -0400

Polymorphise (|amethyst).
The composition evaporates and reforms as an inheritance!

--------------------------------------------------------------------------------
c7afb6e8bd | Shmuale Mark | 2015-09-02 11:48:24 -0400

Don't show the drop help on inventory/ability/spell/etc. menus (#7836).
This behaviour was documented, and presumably intentional, in the
inventory menu, but the help text was more or less irrelevant there.

--------------------------------------------------------------------------------
6e652decad | Shmuale Mark | 2015-09-02 11:46:20 -0400

Fix formatting.

--------------------------------------------------------------------------------
cc76701688 | Pikaro | 2015-09-02 10:39:36 -0400

Make mons_skeleton() and mons_zombifiable() available in CLua

--------------------------------------------------------------------------------
9b1115b9bf | Chris Oelmueller | 2015-09-02 10:39:29 -0400

Ability menu always shows available abilities
This means no longer pressing `a?` or `a*` to see your abilities.
The list now is displayed right after pressing `a`.
There is no --more-- like for rarer prompts because the ability menu
title is a fine description. Another implication of omitting the
--more-- input is that certain muscle memory commands like `aa` still
work unchanged, and macros dealing with abilities also have an easier
time without it.

Had been the default for TOUCH_UI already. All code support for prompt
input is now removed.

--------------------------------------------------------------------------------
d8ad7e2822 | Shmuale Mark | 2015-09-02 09:54:15 -0400

Don't redefine mkstemp if we already have it.

--------------------------------------------------------------------------------
cb87171553 | Shmuale Mark | 2015-09-02 08:47:31 -0400

Inherit energy modifiers in derived undead (Lasty).

--------------------------------------------------------------------------------
75d460402e | Chris Campbell | 2015-09-01 21:18:03 +0100

Reword unrand descriptions
For consistency ("A foo..." rather than "This foo..."), as well as shortening
some overly long descriptions and improving descriptions of what the unrand
does in a few cases.

--------------------------------------------------------------------------------
8cb4999c00 | Shmuale Mark | 2015-09-01 15:45:00 -0400

Make layout_layer_cave much less common.
It's the one that has lots of diagonal corridors, and tendrils reaching
out all the way to the border of the level. It makes varied maps, but they
can be annoying to fully finish, especially without autoexplore.

--------------------------------------------------------------------------------
9fa07f0850 | Neil Moore | 2015-09-01 02:48:02 -0400

Add override specifier in some places.
This triggers a compile-time error if the method does not actually
override the base-class method.

Add it on overridden methods of derived classes defined in .cc files,
and the first half or so of the derived classes in .h files: in
alphabetical order, up to about halfway through menu.h, but skipping
most of melee_attack.h.  I'm too tired to do more of these right now,
and melee_attack.h and menu.h are both chock-full of overrides, but
there's no need to wait for completion before pushing.  Hopefully
someone else will finish the job; otherwise, I'll get back to it at some
point.

I added a few comments in a few places where I thought it might be
unclear that we are not overriding.  Those comments should probably be
cleaned up and made more consistent.

--------------------------------------------------------------------------------
70767c4010 | Neil Moore | 2015-09-01 02:42:57 -0400

Correct can-quaff checks for blood and porridge (chequers)
Because of a bad overload, the base class method was being called.

--------------------------------------------------------------------------------
c7b3a25811 | ontoclasm | 2015-08-31 23:24:59 -0500

Juggernaut tile

--------------------------------------------------------------------------------
222fba8ceb | Corin Buchanan-Howland | 2015-08-31 22:22:00 -0400

Add juggernauts
These Depths-dwellers hit very, very hard, but have significant delay
after each swing. They move quickly tho.

--------------------------------------------------------------------------------
cbfb521bae | Alex Jurkiewicz | 2015-09-01 10:34:08 +1000

Increase the failure rate of Makhleb's SGD.
The failure rate is higher overall and scales much better with piety.
This makes it more dangerous to try "fixing" SGD failures by casting it
again -- your piety will have dropped so your failure rate will be
higher.

New numbers (piety,invo,fail%):
120,0 = 82%
120,10 = 41%
120,20 = 8%

200,0 = 50%
200,10 = 12%
200,20 = 1%

180,27 = 0%
200,25 = 0%

200,27 = 0%

--------------------------------------------------------------------------------
8e369242eb | Corin Buchanan-Howland | 2015-08-31 19:00:30 -0400

Update changelog w/ new monster info.

--------------------------------------------------------------------------------
6987275f68 | gammafunk | 2015-08-31 16:43:07 -0500

Update INSTALL.txt to show how to start the console crawl build in MSYS2
Use the shell 'start' command to start crawl.exe in a new console
window, since running it directly in MSYS2 doesn't work.

--------------------------------------------------------------------------------
6476bd30ef | gammafunk | 2015-08-31 12:30:35 -0500

Make INSTALL.txt recommend Git for Windows SDK for Windows compilation
The msysgit project has become part of Git for Windows, and their SDK
package replaces msysgit. We now recommend the SDK over the old approach
of msysgit + Win Builds gcc for compiling under Windows. The SDK
installer takes over 30 minutes to run as it installs over 200 packages
and compiles git itself, but it's worth the upgrade since it gives a
recent gcc (5.2) as well as an updated Perl and the new MSYS2
environment.

The NO_PKGCONFIG=y make argument is no longer necessary when building
using the SDK, since the environment doesn't include outdated
libraries. One current problem is that the console build of Crawl won't
start directly under mintty, which is used for the MSYS2 shell. The
console crawl.exe can still be started from the graphical file explorer
or from a cmd.exe shell and otherwise should run fine.

This commit also rewraps all of INSTALL.txt to a line length of 80.

--------------------------------------------------------------------------------
1ffb7601b1 | Shmuale Mark | 2015-08-31 13:25:47 -0400

Refactor evolution code (gammafunk, |amethyst).

--------------------------------------------------------------------------------
8816d3141f | Shmuale Mark | 2015-08-31 13:23:56 -0400

Recognize MSYS as a 'kernel name' equivalent to MINGW.

--------------------------------------------------------------------------------
c7c22a5819 | gammafunk | 2015-08-31 08:44:20 -0500

Brace

--------------------------------------------------------------------------------
8c0f7053bc | Alex Jurkiewicz | 2015-08-31 23:18:00 +1000

Remove README.pdf.
It wasn't being kept up to date, and is probably no londer neccessary.

--------------------------------------------------------------------------------
3e3c413ad6 | Alex Jurkiewicz | 2015-08-31 23:18:00 +1000

Move README.md to the top level.
This makes Github repo preview much prettier.

--------------------------------------------------------------------------------
0c126c525b | Alex Jurkiewicz | 2015-08-31 23:18:00 +1000

Update README.md.
* Link to sections in Contents
* Rework sections, notably removing "Important Files"
* Add relative links to referenced files (assume this file is in the
  root directory, so they don't work yet).
* Update some external links
* Some language updates

--------------------------------------------------------------------------------
d5e8965d10 | ontoclasm | 2015-08-30 21:41:41 -0500

Various Invocation tiles

--------------------------------------------------------------------------------
e10e0bef44 | Neil Moore | 2015-08-30 19:33:57 -0400

Fix shadow throw towards far northwest.
If we were throwing directionally to the northwest (with shift-y) and
happened to be standing on the diagonal x = y, the shadow mimic would
refuse to copy the throw, because the coordinate of the target is (0,0)
in that case.

Handle the (presumed) intent of the old check by asserting that we
aren't being given an invalid target, since we now receive a dist rather
than just a coord_def.

--------------------------------------------------------------------------------
7adb24044d | Neil Moore | 2015-08-30 19:31:10 -0400

Make shadow throw respect aim-at-spot (#9929)
A little more complex than the corresponding fix for shadow spell
(6233edf, bug #9614), but only a little.

--------------------------------------------------------------------------------
d8a4825c32 | Alex Jurkiewicz | 2015-08-30 23:43:00 +1000

Use success% for Makhleb demon friendliness.

--------------------------------------------------------------------------------
82cdc465cc | Neil Moore | 2015-08-29 21:30:50 -0400

Doxygenate some comments.

--------------------------------------------------------------------------------
9d1d44d849 | Neil Moore | 2015-08-29 21:30:27 -0400

Enscopulate a few enums.
Specifically those bitflag enums that are local to a single source file.
Shorten the names of some of the affected enum types, now that those
names are used to access the enumerators.

--------------------------------------------------------------------------------
46d537e43e | Neil Moore | 2015-08-29 21:27:16 -0400

Allow enum_bitfield to work with scoped enumerations.

--------------------------------------------------------------------------------
8ad2e50f1c | gammafunk | 2015-08-29 20:06:35 -0500

Merge pull request #105 from BodrickLight/master
Don't end turn when not meeting runelock criteria
--------------------------------------------------------------------------------
d938a5bef0 | Bodrick | 2015-08-30 01:13:05 +0100

Don't end turn when not meeting runelock criteria
If you don't have enough runes to enter a rune-locked branch, your turn
ends since the check is done after the staircase delay.

--------------------------------------------------------------------------------
e90ece9db9 | gammafunk | 2015-08-29 03:25:46 -0500

Merge pull request #104 from BodrickLight/master
Don't interrupt recitals if reading was aborted
--------------------------------------------------------------------------------
d8b66aa154 | Bodrick | 2015-08-29 01:29:40 +0100

Don't interrupt recitals if reading was aborted
If you are half way through a recital, then abort reading a scroll with
monsters in sight with the blurry vision mutation, your recital is
interrupted unnecessarily.

--------------------------------------------------------------------------------
129c0238a4 | ontoclasm | 2015-08-28 16:31:58 -0500

Smooth stone walls (white_noise)
These replace stone_brick in most places.

--------------------------------------------------------------------------------
d7f4977768 | ontoclasm | 2015-08-28 15:49:51 -0500

Spider rock tiles (Bloax, 9453)

--------------------------------------------------------------------------------
99b3f8b44c | ontoclasm | 2015-08-28 15:44:57 -0500

Smoke demon tile (CanOfWorms)

--------------------------------------------------------------------------------
6b42b646a9 | ontoclasm | 2015-08-28 14:34:32 -0500

Merge branch 'master' of github.com:crawl/crawl

--------------------------------------------------------------------------------
daca452c75 | ontoclasm | 2015-08-28 14:34:20 -0500

Serpent of Hell tiles (CanOfWorms)

--------------------------------------------------------------------------------
e1969b56c3 | Shmuale Mark | 2015-08-28 14:12:47 -0400

Fix dragon form doing more damage if you had the claws mutation (kvaak).
All players will now do as much as trolls did, which was 6 more base
damage than humans. This is quite obviously what the code had been
intending since 1efa36264b; if it's too good, the solution in that commit
still stands.

--------------------------------------------------------------------------------
c7ba09c33a | gammafunk | 2015-08-28 08:59:01 -0500

Fix failure messages when quaffing lignification (|amethyst)

--------------------------------------------------------------------------------
732e340ec7 | gammafunk | 2015-08-28 08:56:34 -0500

Properly check that quaffing lignification is safe
The change in 7da1d81 introduced a bug where the habitability was
skipped.

--------------------------------------------------------------------------------
7da1d81802 | gammafunk | 2015-08-28 04:25:08 -0500

Simplify potion-related checks and improve messaging
Refactors the PotionEffect and derived classes so there's a better
interface and no duplicated checks. PotionEffect::can_quaff() can be
called reliably to determine if the player can safely benefit from a
quaff. The ::quaff() method used when drinking calls this, and may
additionally prompt the player in cases where we want give the option to
quaff, but there's direct danger involved (a form change involving
0-stat transition), indirect danger (no appropriate melee weapon for
berserk), or temporarily no benefit (using invisibility while backlit).

Now invisibility pots allow quaffing through a prompt if the player is
temporarily backlit (i.e. not self-haloed) under any condition, as
opposed to only prompting when backlit by high contam. Aside from this
change, the logic of when a player is permitted to quaff or when they'll
receive a prompt is unchanged. Several messages printed when quaffing is
rejected by the interface have been made more specific.

--------------------------------------------------------------------------------
aaeb217c8d | Bodrick | 2015-08-28 04:03:41 -0500

Don't interrupt recitations if quaff was aborted
If you are half way through a recital, then quaff a potion that would have
no effect (e.g. potion of curing while not poisoned), your recital is
interrupted unnecessarily.

Committer's Note: This closes #103.

--------------------------------------------------------------------------------
4a9153ae1b | Bodrick | 2015-08-28 04:03:41 -0500

Move prequaff checks from item_use.cc to potion.cc
Fixes a TODO.

--------------------------------------------------------------------------------
de3053d4cf | ontoclasm | 2015-08-27 23:15:12 -0500

Giant tiles
I -think- these were made by CanOfWorms, but I've shamefully forgotten,
oh dear.

--------------------------------------------------------------------------------
1afd5a1658 | gammafunk | 2015-08-26 16:23:46 -0500

Don't reward XP for monsters killed during fsim in wizmode

--------------------------------------------------------------------------------
72dbe4d5c2 | Corin Buchanan-Howland | 2015-08-23 20:28:06 -0400

Don't let thorn hunters place briars while confused

--------------------------------------------------------------------------------
380bf3d1de | Corin Buchanan-Howland | 2015-08-23 15:52:38 -0400

Add speed to the list of brands gods can hate when casting Tukima's Dance

--------------------------------------------------------------------------------
df19ebb361 | gammafunk | 2015-08-23 03:06:25 -0500

Some undead monster glyph changes
Move death cobs from % to z, keeping the yellow colour and moving curse
toes to light green from yellow. The glyph joke about death cobs as
undead food was amusing, but it's so easy to mistake them for something
that can't harm you, since % are items in every other branch of the
dungeon. Many console players already move death cobs to an appropriate
glyph, and now that they have a significant attack, it was even more
necessary to do this.

Also move ancient champions to light cyan and curse skulls to light
magenta, so that champions better match skeletal warriors, who are on
cyan.

--------------------------------------------------------------------------------
f0442569e7 | gammafunk | 2015-08-23 03:03:00 -0500

Updates to the debian package guide
Fix a pdebuild command typo, consistent use of sudo, mention how to
uninstall debs from the repo, and clarify some sections.

--------------------------------------------------------------------------------
35622aec01 | Corin Buchanan-Howland | 2015-08-22 22:38:04 -0400

Warn player before casting a Tukima's that offends their god (Xentronium)

--------------------------------------------------------------------------------
df939a4669 | Neil Moore | 2015-08-22 10:15:44 -0400

Disable autofight at Starving by default (BugHunter)
The behaviour is controlled by two new options: autofight_hunger_stop
and autofight_hunger_stop_undead.  By default it does not apply to
undead (and it never applies to mummies and liches).

To disable the stop and go back to the old behaviour, use:
    autofight_hunger_stop = om nom nom

Should there also be a special case for Hydra form?

--------------------------------------------------------------------------------
8a52506717 | DrKe | 2015-08-22 09:04:45 -0400

Typo fix in Tm description
[committer's note: closes #102 pull request. -nfm]

[skip ci]

--------------------------------------------------------------------------------
c5340a310e | Neil Moore | 2015-08-21 22:04:19 -0400

Make mutagenic chunks under Zin have a red glyph, too.
[skip ci]

--------------------------------------------------------------------------------
a893f3e28b | Neil Moore | 2015-08-21 18:01:42 -0400

Handle starvation before subtracting nutrition (Lasty)
So that you get an action between getting the fainting light and actually
fainting, rather than having a 1/40 chance of getting both on the same turn.

--------------------------------------------------------------------------------
e95fca7f71 | Neil Moore | 2015-08-21 17:56:16 -0400

Don't faint or starve while eating (amalloy)

--------------------------------------------------------------------------------
bd78d883db | Neil Moore | 2015-08-21 17:26:53 -0400

Sync manual from wiki.
Memorization cleanup and Fainting status.

[skip ci]

--------------------------------------------------------------------------------
513bd4a3d5 | Neil Moore | 2015-08-21 17:19:14 -0400

Distinguish merely starving from fainting.
Except for vampires and ghouls (who normally cannot reach Fainting
anyway, but can briefly with wizard mode).

In order not to break existing scripts, make clua you.hunger() return
the same numbers for the old states, and -1 for Fainting.  That means
the number is one less than the actual HS_* enumerators.

Suggested by advil in Tavern, among others.

--------------------------------------------------------------------------------
a3f9e07e4b | Shmuale Mark | 2015-08-21 08:51:31 -0400

Fix a credit.

--------------------------------------------------------------------------------
b8832cfd05 | Neil Moore | 2015-08-21 00:48:55 -0400

Add Bodrick to CREDITS.
Under their Mantis username until we hear otherwise.

[ci skip]

--------------------------------------------------------------------------------
f3c784696d | Neil Moore | 2015-08-21 00:44:16 -0400

Show mutagenic chunks as forbidden under Zin.
Only the chunks, not the corpses, because unlike the soul food conduct,
this one applies only to eating and not to butchery.

This still doesn't offer a warning when eating the chunks, but at least
they're red.

--------------------------------------------------------------------------------
5ae10a0285 | Bodrick | 2015-08-21 00:22:22 -0400

Ask when quaffing !mut while wearing rMut or worshipping Zin (#9914)
Hitting the wrong key and accidentally quaffing mutation while worshipping
Zin, or forgetting to remove rMut can be irritating.

[committer's note: this should also apply to mutagenic chunks, but
that's a little more tricky. -nfm]

--------------------------------------------------------------------------------
d7818beaa4 | Bodrick | 2015-08-21 00:15:20 -0400

Remove odd message if rejoining the same good god (#9915)
If you leave a good god, then rejoin that same god again, you get a
message similar to "Zin says: Farewell. Go and enforce order with Zin."

--------------------------------------------------------------------------------
f693a3f0ec | gammafunk | 2015-08-20 13:44:07 -0500

Simmplify some vault syntax (|amethyst)

--------------------------------------------------------------------------------
19f74228b1 | Neil Moore | 2015-08-20 14:35:45 -0400

A silly zot vault with food and electricity.
And a pun that might not make sense except to rural Americans.

--------------------------------------------------------------------------------
4ffd852bdf | gammafunk | 2015-08-20 13:23:31 -0500

Adjust some vaults relative to new death cobs
These are much more dangerous monsters than they were previously, closer
to the high-end Zot threats, so we treat them accordingly. Remove them
from a Crypt end to keep them branc-specific, like we try to do with
other Zot monsters.

--------------------------------------------------------------------------------
a4b5924630 | Neil Moore | 2015-08-20 04:31:22 -0400

Link items before taking an excursion (#9443, #9708)
In move_item_to_grid() we were calling god_id_item() and
maybe_identify_base_type() before actually linking the item.
But those can take a level excursion to update shop prices, and if
the item was not previously linked, we will be saving and restoring
the current level with an unlinked item, resulting in a warning.

--------------------------------------------------------------------------------
579f814df5 | Neil Moore | 2015-08-20 03:59:17 -0400

Improve formatting of another quote.
[skip ci]

--------------------------------------------------------------------------------
418ad983aa | Neil Moore | 2015-08-20 03:44:36 -0400

Don't forget Roxanne's book half the time (#9893)
If we kept Earth or Transfigurations rather than making a randbook, we
forgot to actually give the book to Roxanne, leaving it unlinked
instead. Broken in 0.17-a0-1205-g9cb03a7.

--------------------------------------------------------------------------------
8915c25fa3 | Neil Moore | 2015-08-20 03:32:18 -0400

Improve formatting of reaper quote.

--------------------------------------------------------------------------------
dae492a68c | Neil Moore | 2015-08-20 03:31:46 -0400

Fix alignment of G/&~ (rchandra)
Overzealous for loop simplification on my part; I missed that two
variables were being incremented in the iteration expression.

--------------------------------------------------------------------------------
9345c46588 | gammafunk | 2015-08-20 02:22:50 -0500

Merge pull request #101 from 4Hooves2Appendages/master
Quote for reaper
--------------------------------------------------------------------------------
175b294764 | 4Hooves2Appendages | 2015-08-20 07:50:22 +0100

Quote for reaper
Quote for reaper
[ci skip]

--------------------------------------------------------------------------------
18a3847e86 | Neil Moore | 2015-08-19 10:12:25 -0400

Infer a function template argument.
It does not need to be specified when calling the function with an argument
of the same type.

--------------------------------------------------------------------------------
10b0793be3 | Shmuale Mark | 2015-08-19 10:01:02 -0400

Even more C++11ified for loops.
These are still just the ones beginning with `for (int...`; I haven't
looked at the ones that use `unsigned` or `size_t` yet.

--------------------------------------------------------------------------------
ecf14d6732 | gammafunk | 2015-08-19 02:20:52 -0500

Merge pull request #100 from 4Hooves2Appendages/master
Quote for Azrael
--------------------------------------------------------------------------------
1cfb313271 | 4Hooves2Appendages | 2015-08-19 08:12:21 +0100

Quote for Azrael
Quote for Azrael
[ci skip]

--------------------------------------------------------------------------------
01fd01a621 | gammafunk | 2015-08-19 01:38:30 -0500

Merge pull request #99 from 4Hooves2Appendages/master
Spelling corrections in quotes
--------------------------------------------------------------------------------
d31ed7b301 | 4Hooves2Appendages | 2015-08-19 06:52:51 +0100

Spelling corrections in quotes
Spelling corrections in quotes

--------------------------------------------------------------------------------
57e755ea91 | Neil Moore | 2015-08-18 19:07:10 -0400

Make monster class more type-safe.
By using an enum bitfield for monsterentry::bitfields and for the
parameter of mons_class_flag().

This seems to increase compilation time of mon-util.cc severalfold
with -g (and somewhat even without -g), probably because of all
the calls to operator| in mondata's initializer.  So not pushing
it to trunk just yet.

--------------------------------------------------------------------------------
816f263ce3 | Neil Moore | 2015-08-18 19:07:10 -0400

Constexprify enum bitflag operators.
I forgot to handle these when constexprifying enum_bitfield itself.

--------------------------------------------------------------------------------
d78d2140d2 | Neil Moore | 2015-08-18 18:31:42 -0400

Avoid an unnecessary declval.
It is only necessary when the type in question cannot be default-
constructed.

--------------------------------------------------------------------------------
2bb0c8b3f3 | Neil Moore | 2015-08-18 18:30:58 -0400

C++11ify one more loop.
I missed this one because I only searched .cc files, not headers.

--------------------------------------------------------------------------------
1a116f6c91 | Neil Moore | 2015-08-18 18:11:28 -0400

C++11ify for (int i = 0, sz = foo.size(); ...)
Mostly into range-based for loops, with a few uses of <algorithm>.
There are plenty of other places here that could profitably use
<algorithm>, but that can come later.

Also simplify a few places where we used env.markers.get_all(MAT_FOO)
but then checked anyway for marker->get_type() == MAT_FOO, since
that filter is already applied by get_all(MAT_FOO).

--------------------------------------------------------------------------------
2d82b5c79f | Neil Moore | 2015-08-18 16:39:18 -0400

Give "branch not generated" in wizmode again.
We were checking is_random_subbbranch for the wrong branch.

--------------------------------------------------------------------------------
4abf9ffcd6 | Neil Moore | 2015-08-18 16:39:18 -0400

Remove an unnecessary member function template.
We already have the deleteAll template to do this.

--------------------------------------------------------------------------------
710b578226 | gammafunk | 2015-08-18 04:02:58 -0500

Make an altar and view flash when using Zin's Cure Mutation ability
So it's like the other capstone abilities flavor-wise. This commit also
adds a prompt when using the ability and refactors checks in the Zin
ability action code.

--------------------------------------------------------------------------------
db5843c984 | gammafunk | 2015-08-18 03:38:48 -0500

Make a view flash when receiving a Necronomicon from Kiku and refactor

--------------------------------------------------------------------------------
8f751fd406 | gammafunk | 2015-08-18 02:45:11 -0500

Don't waste a turn when a capstone ability can't be used and refactor
A turn could be wasted under some conditions e.g. if the player wasn't
on an open floor tile and the ability was aborted.

This commit also turns some checks from the ability action code into
ASSERTs since it should not be possible for them to fail in these ways
under normal circumstances.

--------------------------------------------------------------------------------
720c866ee2 | gammafunk | 2015-08-18 01:28:34 -0500

Use a visual delay function that respects player options

--------------------------------------------------------------------------------
2b13139c71 | Neil Moore | 2015-08-17 21:27:34 -0400

Fix non-webtiles compilation.

--------------------------------------------------------------------------------
f427806960 | gammafunk | 2015-08-17 19:43:35 -0500

Refactor some prayer code
Deduplicate conversion code used to handle conversion by both altars and
beogh priests and simplify.

--------------------------------------------------------------------------------
2671d8435e | gammafunk | 2015-08-17 19:43:35 -0500

Remove an unused argument
The remaining intended use was a secondary attempt at a feature
description lookup in the DB, but this was no longer working, and isn't
necessary.

--------------------------------------------------------------------------------
eb7ffde4dc | gammafunk | 2015-08-17 19:43:35 -0500

Move altar-based god abilities to the ability menu
Previously Zin's gold donation, Kiku's necromancy enhancement, TSO's
weapon blessing, and Lucy's weapon blessing required trekking back to
an altar, possibly in addition to corrupting a level in addition in
the case of Lucy. This was done for flavor purposes, but was tedious
for the player. These abilities have been moved to the ability menu so
they can be used immediately when available at the usual piety
levels. Altars are now only used for god conversion.

For all capstone abilities, we require that the player be on an
ordinary dungeon floor tile, so we can create an appropriate altar
there for thematic purposes. Kiku's enhancement is split into a bless
weapon and a Necronomicon gift ability, but only one maybe be
successfully used in a game, as before.

--------------------------------------------------------------------------------
b81849eb4f | gammafunk | 2015-08-17 19:43:35 -0500

Improved prompt when the player lacks an appropriate item
For the bless weapon prompt, mention when they have no blessable weapon.

--------------------------------------------------------------------------------
c936e17184 | Neil Moore | 2015-08-17 19:45:55 -0400

Use arrays of pairs for a couple of association lists.
So that we aren't casting between ints and enums.

--------------------------------------------------------------------------------
3e747b6948 | Neil Moore | 2015-08-17 19:37:25 -0400

Infer an entire array type rather than just its size.

--------------------------------------------------------------------------------
4ca74a1dd4 | 4Hooves2Appendages | 2015-08-16 09:57:59 -0400

Minor description change
Gives feedback that characters 'are' stealthy, rather than just 'feel'
stealthy.
Brings it in line with other descriptions.

--------------------------------------------------------------------------------
293b02e121 | Neil Moore | 2015-08-16 09:57:59 -0400

Mention that Tukima's can't affect ranged weapons (Kolbur)
Maybe we should prevent targetting creatures that are not wielding a
Tukimable weapon.

--------------------------------------------------------------------------------
2a289bbb39 | Neil Moore | 2015-08-16 09:35:40 -0400

Handle save-compat removal of dead Gozag shops once per old game.
Not sure what I was thinking when I wrote it in the first place, but
the old code fired once per execution of Crawl, not once per game.  This
could be too many times (when a game is played over several sessions) or
not enough times (when an old game is loaded after restart_after_game).

Also, set the prop on newly-started games so that we don't bother with
the fix for new games.  Maybe this is too much effort just to conserve
one minor tag. . .

--------------------------------------------------------------------------------
8c6da05112 | Neil Moore | 2015-08-16 09:35:40 -0400

Don't crash on starting a game after restart_after_save.
We didn't clear need_save, so when the next game started up, need_save
would be true before _post_init.  This led to a crash when the startup
code tried to access the shopping list through a code path normally
guarded by a need_save check.

--------------------------------------------------------------------------------
b8068419c7 | reaverb | 2015-08-15 16:24:08 -0400

Remove the M_FLEES
Fleeing doesn't add much to monsters, even ones which can do things at
range. Despite being restricted to specially chosen monsters, fleeing
was much more likely to annoy the player than challenge them.

--------------------------------------------------------------------------------
514013af8e | Corin Buchanan-Howland | 2015-08-15 14:06:23 -0400

Revert "Update death cob description."
This reverts commit 0a44cebd8f46f9c4cc54874c7f7601e8ffcfa8ea.

--------------------------------------------------------------------------------
0a44cebd8f | Corin Buchanan-Howland | 2015-08-15 14:02:06 -0400

Update death cob description.

--------------------------------------------------------------------------------
422b4d2df9 | Neil Moore | 2015-08-15 13:25:39 -0400

Show more uncursed items as green.
Include "uncursed" as a prefix, so that the item will be green even if
it has plusses or an ego, or if the player has show_uncursed = false.

Perhaps known egos should get their own colour, but I think it doesn't
make sense for them to be the same colour as unknown items that don't
have an ego.

--------------------------------------------------------------------------------
f62aa6cfb5 | Corin Buchanan-Howland | 2015-08-15 08:54:07 -0400

Buff death cobs
Increase their damage from 20 to 32 to give them a chance to actually hurt
people and increase their HD from 10 to 14, improving their accuracy and hp.
They already have good defenses, so these two factors alone should make them
noticeably scarier.

--------------------------------------------------------------------------------
959d1a87a3 | Corin Buchanan-Howland | 2015-08-15 08:38:16 -0400

Give death cobs AF_HUNGER
Their high speed will allow them to apply AF_HUNGER fast, which will allow
them to be fairly disruptive in Zot, particularly to low EV characters.

--------------------------------------------------------------------------------
5e220a2836 | Corin Buchanan-Howland | 2015-08-15 08:38:15 -0400

Make AF_HUNGER trigger even when no damage is dealt
This is a buff to hungry ghosts, who are otherwise pretty harmless. It's
also a buff to another monster in the next commit . . .

--------------------------------------------------------------------------------
3d7ef45b51 | Corin Buchanan-Howland | 2015-08-15 08:38:06 -0400

Replace death cobs with vampire knights in Yred's gift list
This is to make way for a cob buff, and also because joke monsters belong
in Zot.

--------------------------------------------------------------------------------
88a8506ae8 | Neil Moore | 2015-08-14 21:54:51 -0400

Use the new no_notes class in several places.
Fixes a mostly theoretical bug where, if you try to place a shop on a
level that already has the maximum 64 shops(using vault placement or
Gozag's ability---wizmode &\ checks for a slot before attempting to
place a vault), then character notes are disabled until you save and
reload.

The only remaining uses of activate_notes() are at the beginning and end
of a game, which seems fair enough.

--------------------------------------------------------------------------------
2fc66b00bc | Neil Moore | 2015-08-14 21:23:51 -0400

Add an RAII class to suppress notes.
Along the lines of no_messages or mouse_control.

--------------------------------------------------------------------------------
cd515fc615 | Neil Moore | 2015-08-14 18:32:22 -0400

Fix existing saves with XL > maxXL (#9895)

--------------------------------------------------------------------------------
781fe902fd | Neil Moore | 2015-08-14 18:21:37 -0400

Let Sacrifice Experience drop the player below XL 27 (#9895)
It kept the player at level 27 if they were already there, but did
reduce the player's max XL, leading to a crash later when the player
gained enough XP for "level 28".

--------------------------------------------------------------------------------
ae1a69f620 | Neil Moore | 2015-08-13 11:11:33 -0400

Improve some pop music citations.
Include the year where missing; replace a comma with "and"; add the
second songwriter of one song; and capitalise a letter.

[skip ci]

--------------------------------------------------------------------------------
ce8475a6c7 | gammafunk | 2015-08-12 06:28:10 -0500

Update the changelog

--------------------------------------------------------------------------------
91c94ae390 | gammafunk | 2015-08-12 04:20:13 -0500

Update the changelogs with respect to the 0.16 minor releases
The entries for these minor releases weren't copied to the trunk files.

--------------------------------------------------------------------------------
0a089d4bd3 | gammafunk | 2015-08-11 19:34:09 -0500

Fix errors in the release docs
Give instructions for updating the debian changelog that are easier
and happen at the right step. Fix some errors in the pbuilderrc
example and in a git command in the release guide.

--------------------------------------------------------------------------------
b11a595373 | Neil Moore | 2015-08-11 14:14:25 -0400

Allow training evo with empty wands (#9903)
We weren't updating skill training when a held wand changed its number of
charges, anyway.

--------------------------------------------------------------------------------
eb1493dc8c | Chris Campbell | 2015-08-08 20:56:48 +0100

Revert "Don't give teleportitis mutation."
This reverts commit a90e6b1aac7c37440aa9bea10853763039b57b06.

--------------------------------------------------------------------------------
a90e6b1aac | Neil Moore | 2015-08-08 11:12:52 -0400

Don't give teleportitis mutation.
It is keeping several people from playing trunk.

--------------------------------------------------------------------------------
9c114d1da7 | gammafunk | 2015-08-08 01:02:04 -0500

Remove an unused lua function argument

--------------------------------------------------------------------------------
ab9745cbe3 | gammafunk | 2015-08-07 23:55:20 -0500

Print a message describing the WizLab map upon entering
We already note the name of the map and generate a milestone for
it. With this commit, a message is also printed so players will be able
to see and refer to the WizLab map by name without having to know to
check the other two sources.

--------------------------------------------------------------------------------
d4b747b83b | Brendan Hickey | 2015-08-07 21:33:05 -0400

Merge pull request #97 from amalloy/proofreading
Use 'into' instead of 'in to'
--------------------------------------------------------------------------------
4e2d236f44 | Brendan Hickey | 2015-08-07 21:32:43 -0400

Merge pull request #85 from amalloy/stumble
Don't say that flying things 'stumble backwards' when trampled
--------------------------------------------------------------------------------
2ccaed7908 | Shmuale Mark | 2015-08-07 11:08:11 +0300

Typo fix (GauHelldragon).

--------------------------------------------------------------------------------
192330b659 | Alan Malloy | 2015-08-06 11:50:28 -0700

Use 'into' instead of 'in to'

--------------------------------------------------------------------------------
5d6577538c | Shmuale Mark | 2015-08-06 21:13:48 +0300

Make Xom chaos clouds a whole lot less common.

--------------------------------------------------------------------------------
3119f2b9bf | Chris Campbell | 2015-08-04 23:16:40 +0100

Remove warning messages from some ossuaries
These were from when the ossuaries contained guardian mummies, and aren't
really necessary since the vaults show you that they contain wraiths anyway.

--------------------------------------------------------------------------------
d4e48f1f3e | Chris Campbell | 2015-08-03 23:33:41 +0100

Remove some unused Xom branding code
This appears to have been dead since 88c3cb05.

--------------------------------------------------------------------------------
6672d08b74 | Chris Campbell | 2015-08-03 18:36:43 +0100

Make Corpse Rot full-LOS
It was radius 5, but this wasn't indicated in any way. Also fix messaging for
when no corpse is affected.

--------------------------------------------------------------------------------
92a3a4e163 | Neil Moore | 2015-08-03 00:49:17 -0400

Try harder to place random monsters in test/uniquegen.lua.
Now that MONS_NO_MONSTER makes up over a quarter of the weight on some
levels of D, try more than ten times before giving up.

An example test failure:
    https://travis-ci.org/crawl/crawl/jobs/73805580

--------------------------------------------------------------------------------
0af21bdc1d | Shmuale Mark | 2015-08-02 16:39:18 -0400

Tiles: Hells upstairs don't get the "unexplored" asterisk (Arrhythmia).

--------------------------------------------------------------------------------
77655e490f | Shmuale Mark | 2015-08-02 16:38:42 -0400

Local tiles: Fix a missing item name (#9773).

--------------------------------------------------------------------------------
74de7021f7 | Shmuale Mark | 2015-08-02 16:38:40 -0400

Local tiles: let ctrl-click close doors again (#9541).
This has some of the ambiguity issues that ctrl-direction suffered from,
but I think being able to perform basic tasks with the mouse is more
important.

--------------------------------------------------------------------------------
32e70c72f1 | Neil Moore | 2015-08-02 01:38:54 -0400

Make DEF_BITFIELD a variadic macro.
And remove the now-unnecessary DEF_BITFIELD_EXP.

--------------------------------------------------------------------------------
8eb7582a41 | Neil Moore | 2015-08-02 01:27:57 -0400

Give enum_bitfield an optional last-exponent template parameter.
If specified, provide a default constructor for the range helper, as
well as a last_exponent static member variable. Define *_LAST_EXPONENT
in terms of that member variable.

If the template parameter is negative (which is the default), we use
SFINAE to ensure that last_exponent does not exist and range::range()
causes a compilation error.

With or without the template parameter, it is still possible to
explicitly specify iteration to a given exponent by using
field::range(int).  This could be useful for mon_spell_flags_type,
for example, where we might want to iterate over only the categories
and not the miscellaneous flags.

--------------------------------------------------------------------------------
dc9b541161 | Neil Moore | 2015-08-01 23:14:01 -0400

Add a helper for range-based for loops over enum_bitfield bits.
Again it would be nice to make the last exponent available to the bitfield
class itself, so we could just write spschools_type::range() without
the explicit argument.

--------------------------------------------------------------------------------
3031859549 | Neil Moore | 2015-08-01 23:01:17 -0400

Allow SPTYP_RANDOM miscasts to pick Air.

--------------------------------------------------------------------------------
47e540b1f7 | Neil Moore | 2015-08-01 20:55:25 -0400

Statically assert that last exponents match last flags.
Now that enum_bitfield<T>::exponent() is constexpr.

--------------------------------------------------------------------------------
f8e7ceb7c5 | Neil Moore | 2015-08-01 20:34:05 -0400

Constexprify mon_spell_slot.

--------------------------------------------------------------------------------
39d96924a4 | Neil Moore | 2015-08-01 20:33:56 -0400

Constexprify enum_bitfield.
This requires adding a private (and explicit) constructor that takes
the enum's underlying numeric type, so that the non-mutating bitwise
operators don't have to call the mutating bit-assignment operators.

Also eliminate the flag variants of the binary bitwise operators,
instead relying on the implicit conversion from flag to field.

--------------------------------------------------------------------------------
f522c31865 | Neil Moore | 2015-08-01 19:53:17 -0400

Don't implicitly convert from spell_type to mon_spell_slot.
Only allow implicit conversion from a three-argument initializer list,
but do continue to allow explicit construction with zero to three
arguments (including default construction).

--------------------------------------------------------------------------------
fc7a675881 | Neil Moore | 2015-08-01 17:50:55 -0400

Pull *_LAST_EXPONENT out of their enums.
Exponents are counts of bits, logically distinct from the things
represented by those bits, and there is no reason to allow bitwise
operations between the count and the bits being counted.

It might be better to add this as an optional template parameter of
enum_bitfield, so things like for-exponent loops can be abstracted
into templated algorithms.

--------------------------------------------------------------------------------
9e10c74c31 | Neil Moore | 2015-08-01 14:10:15 -0400

Don't ghostify wellsprings from late June 2013.
Elemental wellsprings from the minor tag that required this particular
fixup (for an accidental enum reordering) would be restored as ghosts;
but those from older or newer saves would work fine.  The fixup code had
been updated when wellsprings were subsequently removed, but not when
they were then unremoved.

--------------------------------------------------------------------------------
e04ceceac4 | Neil Moore | 2015-08-01 12:32:52 -0400

Improve layout_falls_marsh documentation.
Move in part of the description of the just-removed layout_waterfall,
and fix the reference to the now-renamed layout_pools.

[skip ci]

--------------------------------------------------------------------------------
d46c0d29a6 | reaverb | 2015-08-01 12:18:40 -0400

Remove a layout with zero weight
No need to store this in the code base, if somebody wants to revive this
layout they can revert this commit.

--------------------------------------------------------------------------------
fba1302965 | Neil Moore | 2015-07-31 20:48:50 -0400

Assert on melee versus dead monsters.
This could get us into an infinite handle_monsters() loop.  See for
example:

  https://travis-ci.org/crawl/crawl/jobs/73603878

(The underlying bug that resulted in the dead monster being on the
grid in the first place was fixed two commits back.)

--------------------------------------------------------------------------------
77ccdb9e73 | Neil Moore | 2015-07-31 20:48:50 -0400

Don't confuse monster and player miscast rotting.
We were saying "You begin to rot!" for both... but only if the player
can smell.

--------------------------------------------------------------------------------
c9d3421865 | Neil Moore | 2015-07-31 20:48:50 -0400

Clean up monsters who quietly rot to death.
Split the quiet parameter of actor::rot into two: one for whether the
message should be produced, and another for whether we should skip
cleanup of monsters who die to rotting.  The parameter was originally
intended for rotting melee (0.5-a0-2017-g8e6aed7), then was used in
other situations (e.g. 0.13-a0-863-gc515b7c).  This only mattered for
immediate rotting, but then all rotting became immediate in
0.17-a0-527-g241a431.

Also clean up if the maxhp drop (rather than the direct damage) killed
the monster.

--------------------------------------------------------------------------------
2062e813ca | Shmuale Mark | 2015-07-31 14:40:13 -0400

Let salamander mystics haste nagas again.
See cf9c439707f3c03; salamanders' genuses were changed to naga, making
the lines unnecessary, but then they were changed back.

--------------------------------------------------------------------------------
4fd4a8684c | Shmuale Mark | 2015-07-31 14:40:12 -0400

Remove an outdated comment.

--------------------------------------------------------------------------------
37a7572f7d | Shmuale Mark | 2015-07-31 14:40:10 -0400

Simplify and rename get_invent().

--------------------------------------------------------------------------------
bd59414e6d | Shmuale Mark | 2015-07-31 14:40:09 -0400

Remove an unused function.

--------------------------------------------------------------------------------
441915f21a | ontoclasm | 2015-07-31 18:44:34 +0100

Quokka (roctavian)

--------------------------------------------------------------------------------
4b9e856f15 | Alan Malloy | 2015-07-31 12:56:42 -0400

Accidentally a word
The "are" in this sentence was probably left over from some earlier wording; it 
doesn't make sense anymore.

[committer's note: closes #95 pull request -nfm] [skip ci]

--------------------------------------------------------------------------------
01597718ea | Neil Moore | 2015-07-31 12:54:28 -0400

Define and use a constructor for mon_spell_slot.
So that we never leave frequency and flags uninitialized.

Also fix some stray whitespace.

--------------------------------------------------------------------------------
a6bde87ac1 | Neil Moore | 2015-07-31 12:43:04 -0400

Allow normalize_spell_freq to work with all freqs = 0.
In that case, it divides the total frequency evenly among all slots.

--------------------------------------------------------------------------------
727769a485 | Neil Moore | 2015-07-31 12:43:04 -0400

Don't give pghost/panlord sixth spell slot the emergency flag.
Now fixup_spells is only used for save compatibility and not for
generating new monsters.  Use normalize_spell_freqs instead.

--------------------------------------------------------------------------------
631db5f8dc | Neil Moore | 2015-07-31 12:43:04 -0400

Don't claim that all chunks are edible (Tux[Qyou])

--------------------------------------------------------------------------------
39ff7a4eab | Neil Moore | 2015-07-31 12:43:04 -0400

Use enum_bitfield<T>::exponent rather than a manual shift-and-cast.

--------------------------------------------------------------------------------
db8162ca08 | ontoclasm | 2015-07-31 17:40:07 +0100

Merge branch 'master' of github.com:crawl/crawl

--------------------------------------------------------------------------------
7b0afe8600 | ontoclasm | 2015-07-31 16:49:47 +0100

Animal tiles (white_noise, 6164)

--------------------------------------------------------------------------------
508f34152d | Nicholas Feinberg | 2015-07-31 08:47:40 -0700

De-ghost-demonify spellforged servitors

--------------------------------------------------------------------------------
1b2b1d9c2e | Nicholas Feinberg | 2015-07-31 08:47:37 -0700

De-ghost-demon-ify liches/aliches

--------------------------------------------------------------------------------
b3e500fa27 | Nicholas Feinberg | 2015-07-31 08:28:49 -0700

Let pan lords cast under Silence again (9884)
Broken many months ago; the big spell_slot rewrite made all
panlord spells into demon-wizard spells.

A good TODO would be to make spell types (demon, wizard, &c)
properly exclusive; originally I argued they should be a separate
field (and a linear enum rather than a bitfield), but possibly
they should be decomposed into their functional parts instead...?

I guess that wouldn't make them exclusive, though.

--------------------------------------------------------------------------------
e9335e3285 | ontoclasm | 2015-07-31 16:25:02 +0100

Iron grate tile (white_noise, 9875)

--------------------------------------------------------------------------------
6ff2c4c8d0 | Nicholas Feinberg | 2015-07-31 08:09:41 -0700

Improve debugging output for monster spells
To help with investigating issues like #9884.

--------------------------------------------------------------------------------
1e86911fe6 | reaverb | 2015-07-29 10:46:51 -0400

Remove some D:1 popcorn from Orc and later D
These monsters were extermely unlikely to be a threat. XP changes
checked with objstat and are negligible.

--------------------------------------------------------------------------------
765d55e2ae | reaverb | 2015-07-29 10:46:51 -0400

Remove an unused function

--------------------------------------------------------------------------------
27b657010e | reaverb | 2015-07-29 10:46:51 -0400

Move _entered_malign_portal() to main.cc from misc.cc

--------------------------------------------------------------------------------
3807d81701 | reaverb | 2015-07-29 10:46:51 -0400

Move auto_id_inventory() to itemprop.h from misc.h

--------------------------------------------------------------------------------
1dfbab86d6 | reaverb | 2015-07-29 10:46:51 -0400

Move trackers_init_new_level to files.cc from misc.cc

--------------------------------------------------------------------------------
7a4544694d | Chris Campbell | 2015-07-28 20:47:58 +0100

Merge branch 'branch_descriptions'

--------------------------------------------------------------------------------
9ba3b671f9 | Chris Campbell | 2015-07-28 20:37:27 +0100

Simplify some more

--------------------------------------------------------------------------------
b6199f8003 | Chris Campbell | 2015-07-28 20:37:18 +0100

Generate information on rune locks in branch descriptions

--------------------------------------------------------------------------------
f2e28e88a3 | Chris Campbell | 2015-07-28 16:06:59 +0100

Generate information about subbranches in branch descriptions

--------------------------------------------------------------------------------
df3b1837cd | Chris Campbell | 2015-07-28 16:06:59 +0100

Rename branch name functions for clarity (|amethyst)

--------------------------------------------------------------------------------
2c04492ee0 | Chris Campbell | 2015-07-28 15:29:12 +0100

Simplify

--------------------------------------------------------------------------------
6fe253e07c | Chris Campbell | 2015-07-28 15:18:29 +0100

Generate rune information in branch descriptions

--------------------------------------------------------------------------------
2df49ec7c9 | Neil Moore | 2015-07-27 21:08:58 -0400

Err conservatively when rounding hex %success (#9877)
Round monster success rates up, not down, so that a spell that shows 0%
success is definitely unable to affect you.  Continue to round down
player success rates, so that a player spell that shows 100% success
will definitely affect the monster.

--------------------------------------------------------------------------------
e6b02608c9 | Chris Campbell | 2015-07-26 17:52:31 +0100

Remove a Beogh trap vault
It's not a very well-designed trap (if you know how it works you can just blink 
past the trigger, for example), and in general trap vaults like this tend to be
more spoilery than anything else.

--------------------------------------------------------------------------------
8116078d9c | Chris Campbell | 2015-07-26 17:52:30 +0100

Remove an intelligence check from Zin's recite

--------------------------------------------------------------------------------
9bc13d18d8 | Chris Campbell | 2015-07-26 17:52:30 +0100

Reduce Darkness to level 6
It's quite a useful effect but a bit innaccessible at level 7.

--------------------------------------------------------------------------------
9532fc897b | Chris Campbell | 2015-07-26 17:50:42 +0100

Remove the bleed-over-time effect from clawed attacks
And from acid and Zin's recite - it dealt mostly insignificant damage while
creating a bunch of message spam. Bleeding still exists as an immediate
cosmetic effect on taking damage.

--------------------------------------------------------------------------------
dc655b27f9 | Neil Moore | 2015-07-26 08:07:58 -0400

Fix whitespace.
[skip ci]

--------------------------------------------------------------------------------
7afbf468f3 | Neil Moore | 2015-07-26 08:07:58 -0400

Don't randomly generate mutant beast zombies etc.

--------------------------------------------------------------------------------
b64763f9c9 | Neil Moore | 2015-07-26 08:07:53 -0400

Don't crash on ?/mmutant beast (#9873)
Instead, display info for a larval beast with all the facets.

--------------------------------------------------------------------------------
9a29ec885f | gammafunk | 2015-07-25 21:40:26 -0500

Use right-click to exit menus more consistently
This allows right-click to exit in shops, which was listed in the help
text but didn't work. It also adds right-click menu exiting to several
other relevant menus.

--------------------------------------------------------------------------------
512a35f5c9 | gammafunk | 2015-07-25 21:40:25 -0500

Add Kurt Kartaltepe to CREDITS.txt

--------------------------------------------------------------------------------
4c16989a0f | Kurt Kartaltepe | 2015-07-25 21:40:09 -0500

Fix R-Click not exiting certain menus
Committer's Note: closes #90

--------------------------------------------------------------------------------
7a1422d39a | miek | 2015-07-23 22:46:11 -0400

Clear the stairs before calculating the scorefile entry on a non-death (so the 
stair evasion penalty doesn't apply)

--------------------------------------------------------------------------------
3ed2ab215a | Chris Campbell | 2015-07-23 20:39:49 +0100

Tweak a shadow imp-using food vault

--------------------------------------------------------------------------------
74b7129536 | Chris Campbell | 2015-07-22 22:11:27 +0100

Remove a shadow imp vault
It wasn't really a great vault when shadow imps did have Animate Dead, but now 
its gimmick doesn't work any more anyway.
--------------------------------------------------------------------------------
0cbeeff26f | Chris Campbell | 2015-07-22 22:04:53 +0100

Don't hunger Vampires when casting Sublimation of Blood
Though vaguely thematic, it wasn't documented or very noticeable, and there's 
no need to have an additional cost for the spell for Vampires.
--------------------------------------------------------------------------------
c5381f6e35 | Lothar Dierkes | 2015-07-22 09:25:25 -0500

use unwind_bool typedef
Commiter's Note: closes #94

--------------------------------------------------------------------------------
dd419b1c08 | Chris Campbell | 2015-07-21 20:29:28 +0100

Remove some Eternal Torment handling on major version bump

--------------------------------------------------------------------------------
93caa7835c | Chris Campbell | 2015-07-21 20:08:07 +0100

Don't generate the crown of Eternal Torment
The unrand concept isn't great, mostly just resulting in players who overvalue
rTorment into drastically reducing their maxHP if they happen to find it.

--------------------------------------------------------------------------------
6f51edd3a3 | Chris Campbell | 2015-07-21 20:07:59 +0100

Use "power" instead of "spellpower" in spell descriptions

--------------------------------------------------------------------------------
69c41a6922 | Chris Campbell | 2015-07-21 15:55:17 +0100

Move some elements of branch descriptions to code
Todo: name the branch rather than saying "This branch ..." (awkward because of
plural branch names, but sort of necessary for it to make sense for portal
vaults like Zig?), handle rune info and which branches can be found inside in a
given branch.

--------------------------------------------------------------------------------
7b572aa1ca | Chris Campbell | 2015-07-20 23:37:49 +0100

Remove some unused monster spellcasting code (wheals)

--------------------------------------------------------------------------------
1c70a4705d | reaverb | 2015-07-20 17:48:53 -0400

Remove water moccasins from Naga Ritualist bands
Since they have been removed from general Snake spawns

--------------------------------------------------------------------------------
9b2c768961 | gammafunk | 2015-07-19 18:34:43 -0500

Add paulcdejean to CREDITS.txt and the mailmap
[skip ci]

--------------------------------------------------------------------------------
1890166ab0 | gammafunk | 2015-07-19 18:34:42 -0500

Add a tuple version of the lua monster position accessor
As m:pos() for a monster_info table m, which returns two number values
representing the monster's relative x and y coordinates.

--------------------------------------------------------------------------------
f2f5ed4550 | gammafunk | 2015-07-19 18:34:42 -0500

Tweak the name of a lua accessor
For consistency with the player position accessor

--------------------------------------------------------------------------------
b448036070 | Paul Dejean | 2015-07-19 18:34:15 -0500

Add a lua accessor for relative monster x and y coordinates.
Commiter's Note: closes #92

--------------------------------------------------------------------------------
9d24de5554 | Neil Moore | 2015-07-19 13:29:51 -0400

Fix non-webtiles compilation.
This header is included in webtiles, which happens to be my usual test
build.

--------------------------------------------------------------------------------
caa4934dc6 | Neil Moore | 2015-07-19 12:11:54 -0400

Actually fix that stray whitespace.
[skip ci]

--------------------------------------------------------------------------------
be5596077d | Neil Moore | 2015-07-19 12:07:51 -0400

Use a bitfield enum for monster flags.
But not monster class flags yet, see branch monclass_flags_t.

Also fix a stray whitespace.

--------------------------------------------------------------------------------
4fcfad32ae | Neil Moore | 2015-07-19 09:49:52 -0400

Enumify monster and monster class flags.
Now that we use C++11, we can guarantee 64 bits in an enum.  This also
make it possible to use enum_bitfields to prevent inappropiate mixing of
different flag types, but does not yet make that change.

--------------------------------------------------------------------------------
3b847ca638 | Shmuale Mark | 2015-07-18 22:28:35 -0400

Merge pull request #89 from amalloy/silence-description
Change 'dies' to 'is destroyed' in un-silence death message for non-living 
monsters
--------------------------------------------------------------------------------
ef2f5f17b9 | Shmuale Mark | 2015-07-18 22:28:34 -0400

Merge pull request #88 from Huaschei/patch-2
Allow demonspawn warmongers to spawn with shields
--------------------------------------------------------------------------------
83c0ced8cd | Alan Malloy | 2015-07-18 17:19:56 -0700

Change 'dies' to 'is destroyed' for nonliving monsters

--------------------------------------------------------------------------------
78a4890d28 | Chris Campbell | 2015-07-18 19:52:31 +0100

Remove Inner Flame as a monster spell
It doesn't really work as a monster spell, ending up doing a bunch of damage to
enemies rather than the player most of the time.

--------------------------------------------------------------------------------
71f927a623 | Chris Campbell | 2015-07-18 19:52:30 +0100

Remove Teleport Other from some other monster spellsets
Where it's also generally ineffective.

--------------------------------------------------------------------------------
337dcc9fd8 | Chris Campbell | 2015-07-18 19:51:19 +0100

Remove Teleport Other from hellwings
In the few places where hellwings are able to successfully cast this on the
player (for example Hell Lair:8), it's more likely to teleport them to safety
than anything else. It's also pretty weird on them thematically, for what theme
they have.

--------------------------------------------------------------------------------
238e74bb37 | Chris Campbell | 2015-07-18 19:50:57 +0100

Remove Animate Dead and Simulacrum from monster spellsets
Neither of these spells are likely to actually create dangerous threats, and
more often just give the player a bit of extra XP.

--------------------------------------------------------------------------------
16a9566e78 | Chris Campbell | 2015-07-18 18:01:38 +0100

Remove giant spores from a vault
Since they don't otherwise generate as enemies, and are supposed to now be
Fedhas-only.

--------------------------------------------------------------------------------
aa4bb8779f | Roarke | 2015-07-18 08:04:00 -0700

Allow demonspawn warmongers to spawn with shields
There are already lines in the existing code that allow warmongers to 

spawn with shields. However, warmongers currently have guaranteed 

launchers at spawn (possibly due to the interaction with Grand Avatar,

which has since been removed). Reducing the chance of generating a 

launcher to one in three will allow shield generation.
--------------------------------------------------------------------------------
c1bb67269f | Neil Moore | 2015-07-17 16:22:44 -0400

Make wargs howl, too.
I considered changing hell hounds as well, but that is a slippery slope
to no barking at all.

--------------------------------------------------------------------------------
8d6c3b2570 | 4Hooves2Appendages | 2015-07-17 16:10:36 -0400

Makes wolves howl.
Adds howling as a monster shout option (S_HOWL).
Changes wolves from barking to howling.

[committer's note: cleaned up whitespace.  Closes #87 pull request.
 -nfm]

--------------------------------------------------------------------------------
189cd8b401 | Neil Moore | 2015-07-17 16:10:36 -0400

Make checkwhite's -t tabstop option work again.
I broke this in 0.15-a0-778-gbc2414e, because I didn't realise
$tabstop had been imported from Text::Tabs (and should thus be
an 'our' variable).

--------------------------------------------------------------------------------
98526283d4 | Alan Malloy | 2015-07-17 15:30:38 -0400

Fix unsuitable-weapon-warning behaviour with transforms
If you say 'yes' to attack barehanded while you're a hydra, that
doesn't mean you're also saying 'yes' to attacking with whatever
you have wielded once you un-transform.

[committer's note: closes #86 pull request. -nfm]

--------------------------------------------------------------------------------
96b4531d95 | Chris Campbell | 2015-07-17 15:01:29 +0100

Fix spacing

--------------------------------------------------------------------------------
24a8a8e10f | Chris Campbell | 2015-07-17 14:58:54 +0100

Adjust Ashenzari reskilling
Reduce its piety cost, increase its speed, and allow it to reduce skills to 0
again.

--------------------------------------------------------------------------------
74704ba4c2 | Chris Campbell | 2015-07-17 14:11:45 +0100

Remove a duplicate OK from Ash reskilling

--------------------------------------------------------------------------------
0d275373e5 | Chris Campbell | 2015-07-17 13:27:29 +0100

Merge pull request #83 from drke2/master
Let Ashenzari boost skills at 2* once again
--------------------------------------------------------------------------------
ff4c90ffbe | Chris Campbell | 2015-07-17 13:17:57 +0100

Merge pull request #84 from Huaschei/patch-1
Swap weapon lists for naga mages and naga warriors
--------------------------------------------------------------------------------
ceb39bc4ee | Alan Malloy | 2015-07-16 12:49:06 -0700

Don't say that flying things 'stumble backwards'

--------------------------------------------------------------------------------
f98da799f5 | ontoclasm | 2015-07-16 16:44:33 +0100

Mummies (white_noise, 9853)

--------------------------------------------------------------------------------
2f57bce580 | Chris Campbell | 2015-07-15 23:51:14 +0100

Fix profane servitors not actually worshipping Yred (|amethyst)
Since they're not priests, they weren't being given their god correctly.
--------------------------------------------------------------------------------
2de063dd9e | Chris Campbell | 2015-07-15 18:01:49 +0100

Make only Dith/Yred worshippers immune to umbra accuracy reduction
Rather than also having all undead be immune to it - when worshipping Yred all
of your allies worship Yred too anyway, making them still immune (and profane
servitors also always worship Yred).

--------------------------------------------------------------------------------
ab7987ad8b | Chris Campbell | 2015-07-15 17:59:30 +0100

Mention umbra on the ^ screen under Dith (#9395)

--------------------------------------------------------------------------------
8333e4c166 | Chris Campbell | 2015-07-15 17:39:41 +0100

Allow making Fedhas toadstools inside clouds that they're immune to (#9769)

--------------------------------------------------------------------------------
baed2d379c | Chris Campbell | 2015-07-15 17:25:52 +0100

Don't print a duplicate message when adjusting the same slot (#9814)

--------------------------------------------------------------------------------
be5a69a8b5 | Roarke | 2015-07-14 17:05:26 -0700

Swap weapon lists for naga mages and naga warriors
Greater naga and naga warriors shared a weapon list made up of

generally inferior weapons. This made sense for greater nagas

since they have Haste Self and offensive conjurations, but warriors 

shouldn't have an inferior weapon list to nagas and naga mages.

Swapping the weapon lists for naga mages and naga warriors.



This is a buff to warriors and will make Snake more dangerous, but

naga warriors are slow and there is no reason people shouldn't be cautious 

of them anyway.
--------------------------------------------------------------------------------
fee3901b7c | Chris Campbell | 2015-07-14 22:30:03 +0100

Don't allow bribing unique Hell or Pan lords

--------------------------------------------------------------------------------
c27e82665b | Chris Campbell | 2015-07-14 22:29:51 +0100

Merge the Hells for bribe purposes, allow bribing Tomb, Crypt and Pan

--------------------------------------------------------------------------------
374cf67069 | Chris Campbell | 2015-07-14 22:27:32 +0100

Make Gozag bribes work on any intelligent monster in the branch
Removes the ugly hard-coded list of specific monsters that can be bribed, and
replaces it with another hard-coded list! Bribe susceptibility is now based on
monster HD, with a branch-specific factor so that Orc and Zot can still have
roughly similar scales of bribe chance.

--------------------------------------------------------------------------------
2e9ab14b69 | Chris Campbell | 2015-07-14 19:38:54 +0100

Restrict melee multitargeting to hydras only
Removes some mysterious special-casing allowing electric golems, tentacled
monstrosities, and dual-wielding monsters to attack multiple different targets
in one attack round. The Serpent of Hell is treated like a weird hydra in some
ways and gets to keep its multitargeting.

--------------------------------------------------------------------------------
40f049d7ff | Chris Campbell | 2015-07-14 19:25:19 +0100

Convert monsters to GOD_NAMELESS when polymorphed into priests (#9747)
Only relevant for anubis guards.

--------------------------------------------------------------------------------
aff08178a7 | Chris Campbell | 2015-07-14 18:56:36 +0100

Fix dancing weapon interactions under Gozag (#9856)
Temporary dancing weapons (created by Tukima's Dance) just drop the weapon
itself, so as not to give free gold by casting the spell on monsters. Permanent
dancing weapons still turn into gold like other monsters, and now no longer
drop the weapon at the same time.

--------------------------------------------------------------------------------
6c5b4ba2e6 | Neil Moore | 2015-07-13 18:48:52 -0400

Set bolt::evoked for rods and monster wands, too.
So if a monster manages to zap a vine stalker with /HW, the VS won't be
healed.  Handling rods in case a relevant spell appears in one some day.

--------------------------------------------------------------------------------
be3fe0050c | Chris Campbell | 2015-07-13 21:40:07 +0100

Generate wizmode wands with their normal max charges
Since giving them more results in them getting set to 0 charges on game load.

--------------------------------------------------------------------------------
f54098542e | Chris Campbell | 2015-07-13 21:39:42 +0100

Let healing from fake potions work on Vine Stalkers
In particular Gozag's potion petition, and also the potion card - these aren't
real potions (or wands) so shouldn't be blocked by no device heal. Also fixes
those effects being reduced in strength for other races with level 1 or 2 of
no device heal.

--------------------------------------------------------------------------------
20015200d2 | Chris Campbell | 2015-07-12 13:46:55 +0100

Don't place wandering mushrooms
As a random enemy they don't especially work since they're completely ignorable
with any ranged attack. They can still be summoned by the Summon Mushrooms
spell (which places them surrounding the target), and of course by Fedhas.

--------------------------------------------------------------------------------
cc2e94b136 | Chris Campbell | 2015-07-12 13:46:40 +0100

Remove the ] command
Partially un-reverts 972732a5e, since this command in particular is much less
useful than " and [ - the main advantage of those is that they work in the
message area, but all the information provided by ] can be seen just as easily
and in a similar format with % or i.

--------------------------------------------------------------------------------
173385d796 | Chris Campbell | 2015-07-12 13:30:30 +0100

Don't allow reaching while confused (#9839)
Since other weapons now all force the player to stumble around if they want to
try and attack while confused, apply this to polearms too.

--------------------------------------------------------------------------------
f76066cff8 | Neil Moore | 2015-07-12 00:45:22 -0400

Make sure we redraw exp after level gain (#9703)
If the level-up messages triggered a force_more, we would repaint the XP
area as  XL: old  Next: 100%, in the process clearing the
redraw_experience flag.  Now set the flag after we have nothing more to
print, so the XL will be properly redrawn on the next _prep_input.

--------------------------------------------------------------------------------
fae3d72580 | Chris Campbell | 2015-07-11 21:41:53 +0100

Adjust some skill descriptions

--------------------------------------------------------------------------------
90213ca8f6 | Chris Campbell | 2015-07-11 21:41:52 +0100

Can some messages
For gaining health and magic. Changes places that use "You feel a little
better" to just say "You feel better", since they weren't really consistent
in terms of the amount of healing applied. "You feel much better" is still the
message shown to distinguish heal wounds from curing (but maybe doesn't need to
be?)

--------------------------------------------------------------------------------
c4d4cfdad7 | drke2 | 2015-07-11 12:46:13 -0700

Let Ashenzari boost skills at 2* once again
By moving the Scrying ability to 1* so skill boost can take its place.

Also move the SInv gift to 3* to keep a smooth progression of rewards.

--------------------------------------------------------------------------------
beb67d8b47 | Chris Campbell | 2015-07-11 20:41:11 +0100

Add a message when the wild magic card restores MP

--------------------------------------------------------------------------------
5f46c4ddd0 | Chris Campbell | 2015-07-11 20:41:03 +0100

Tweak some card descriptions

--------------------------------------------------------------------------------
434df5b33a | Chris Campbell | 2015-07-11 20:06:21 +0100

Remove most random mimics
All item mimics and most feature mimics can no longer generate randomly. Item
mimics can still be placed by vaults, which may be able to use them better
than the uninteresting results of random placement (for example rune mimics in
vaults with multiple possible rune locations). Random feature mimics are
restricted only to shops and portal vault entries, as features that the player
will want to check out anyway while avoiding the drawbacks of mimicking
features like staircases (encouraging the player to check every staircase fori
mimic-ness on the off-chance they need to use them later).

--------------------------------------------------------------------------------
b3fb22e49e | Chris Campbell | 2015-07-10 08:47:42 +0100

Fix changelog typos

--------------------------------------------------------------------------------
274fe3022e | gammafunk | 2015-07-09 22:32:13 -0500

Changelog through 0.17-a0-1508-ge7f3dc3

--------------------------------------------------------------------------------
e7f3dc36b6 | Chris Campbell | 2015-07-09 22:21:07 +0100

Add an option to disable spell recasting with zEnter (minmay)

--------------------------------------------------------------------------------
19c3781a7d | Chris Campbell | 2015-07-09 14:43:48 +0100

Display base attributes on @ (tasonir)

--------------------------------------------------------------------------------
495263577f | Chris Campbell | 2015-07-09 14:21:26 +0100

Don't autopickup multiple crystal balls of energy (#9849)
(If misc autopickup is on).

--------------------------------------------------------------------------------
a52363ffb0 | Chris Campbell | 2015-07-07 21:56:54 +0100

Don't spawn plants or fungi over time in Orc/Elf/Swamp

--------------------------------------------------------------------------------
b7d911762a | Corin Buchanan-Howland | 2015-07-06 20:44:13 -0400

Cut the Sac Eye penalty to 1 amuletsworth (DrKe)
This changes the effect on characters in progress but doesn't steal back
any piety -- enjoy your freebie, virtually no one.

--------------------------------------------------------------------------------
00bbdf445b | Corin Buchanan-Howland | 2015-07-06 20:44:12 -0400

Make chanters stop chanting when you leave the level (Kolbur)

--------------------------------------------------------------------------------
228d322b2f | Neil Moore | 2015-07-06 19:09:29 -0400

Make mon_spell_slot_flags an enum_bitfield.
This did require moving the enum into externs.h (enum.h would have
worked as well), so the bitfield is visible at the definition of
mon_spell_slot.

--------------------------------------------------------------------------------
e7d674fbb6 | Neil Moore | 2015-07-06 19:09:21 -0400

Simplify and modernize servitor init code (PleasingFungus)

--------------------------------------------------------------------------------
ecf5ee46dd | Edgar A. Bering IV | 2015-07-06 22:01:54 +0100

Really remove potions of confusion.

--------------------------------------------------------------------------------
c780ce0a94 | Chris Campbell | 2015-07-06 22:01:11 +0100

Give salamanders their own genus
They're different enough from nagas.

--------------------------------------------------------------------------------
ef07b57410 | Chris Campbell | 2015-07-06 21:52:56 +0100

Make salamander speeds consistent
Don't make firebrands unexplainably fast, and give the other salamanders
regular speed 10 movement with faster swimming (stormcallers already moved at
speed 10).

--------------------------------------------------------------------------------
03599f7403 | Chris Campbell | 2015-07-05 22:49:35 +0100

Remove a reference to Zin Vitalisation feeding (ZChris13)

--------------------------------------------------------------------------------
d7aac7ce59 | Chris Campbell | 2015-07-05 19:49:26 +0100

Remove an unused function

--------------------------------------------------------------------------------
e7e9f894f6 | Chris Campbell | 2015-07-05 19:47:17 +0100

Adjust formatting

--------------------------------------------------------------------------------
2851eee48c | Chris Campbell | 2015-07-05 19:01:47 +0100

Don't make ending/switching transformations take extra time
This was a remnant from when ending transformations just set the duration to 1,
so you had to take another action for the transformation to actually end. When
that behaviour was removed, ending forms was made to take longer to avoid
changing balance much, but it's pretty unnecessary and very unintuitive (see
also 0970d1a616).

--------------------------------------------------------------------------------
182b162e52 | Chris Campbell | 2015-07-05 18:48:29 +0100

Fix more mould spelling (wheals)

--------------------------------------------------------------------------------
5e7523a56e | Chris Campbell | 2015-07-05 18:26:16 +0100

Fix spelling
Just in the player-visible instances, currently.

--------------------------------------------------------------------------------
6850e248bf | Chris Campbell | 2015-07-05 18:26:15 +0100

Don't allow evolving mould with Fedhas
Just let the ability target actual plant/fungi monsters.

--------------------------------------------------------------------------------
3dd09e70a2 | Chris Campbell | 2015-07-05 18:26:15 +0100

Adjust wording for monster cantrips
To hopefully make it clearer that they really do nothing.

--------------------------------------------------------------------------------
3ee15ac06b | gammafunk | 2015-07-05 09:26:42 -0500

Tweak the Sack of Spiders distribution again (DrKe)
These changes result in orb spiders getting a fairly flat chance across
10-27 evocations that's still low (2% to 4.5%), yet without there being
a special break-point at 25 evocations where redbacks are cutoff. The
other three high-tier spiders and ghost moths have chances that are
largely unchanged, with the former being only a little reduced at 27
evocations by the low chance of redbacks.

--------------------------------------------------------------------------------
d7daefbd12 | Chris Campbell | 2015-07-05 14:58:07 +0100

Redraw stats when abandoning Chei

--------------------------------------------------------------------------------
ec55f938b1 | Chris Campbell | 2015-07-05 14:57:45 +0100

Mention Chei stat boosts on the religion screen (#9842)

--------------------------------------------------------------------------------
7e641dc5a9 | Chris Campbell | 2015-07-05 12:49:44 +0100

Apply Exhaustion when cancelling DDoor with Borgnjor's (amalloy)
Since it's in theory possible to avoid the paralysis and confusion (as a
Formicid with clarity, or by having Ash/OCPA clarity with stasis), which would
then allow immediately recasting DDoor (not that this is actually likely to be
a powerful secret tech).

--------------------------------------------------------------------------------
22cb0ee5b7 | gammafunk | 2015-07-04 14:05:01 -0500

Merge pull request #80 from drke2/patch-1
Swap the weighting for storm cloud/acid cloud on the Rod of Clouds
--------------------------------------------------------------------------------
86df3dc085 | gammafunk | 2015-07-04 12:02:24 -0500

Use the right element of a union (|amethyst)

--------------------------------------------------------------------------------
8ef6bb134d | DrKe | 2015-07-04 11:44:23 -0500

Tweak the Sack of Spiders
Make it worse at lower evocations, better at mid to high evocations,
with a slight overall reduction in the average number of summons made.

Reduce weight and increase required evocations for trapdoor and redback,
increase weight of basic spider. To compensate, make higher-tier spiders
available at lower evocations and increase their weights.

Orb spiders have been made into a special case, spawning only rarely
starting at evo 10, as they're awkward to take advantage of in a large
swarm of other spiders.

Ghost moths are now slightly more common and start appearing at 21 evo
rather than 25. They now spawn 1.5-2x as much at very high (25+) evo.

Committer's Note: Squashed commits and adjusted commit message
accordingly.

--------------------------------------------------------------------------------
fdcec5c451 | Neil Moore | 2015-07-03 15:17:08 -0400

Don't crash on vault skeletons under Gozag (wheals)
And don't convert vault-generated corpses to gold.

--------------------------------------------------------------------------------
2a75f53f60 | Neil Moore | 2015-07-02 22:50:13 -0400

Support Cygwin.
When compiling under Cygwin, build with -std=gnu++11 to get Posix
functions, and provide our own version of the missing std::to_string

Thanks to nonethousand and Floodkiller for finding the problems,
and Floodkiller for helping test this fix.

--------------------------------------------------------------------------------
4041c36559 | Neil Moore | 2015-07-02 17:07:50 -0400

Avoid unlinked Gozag gold (wheals, #9834)
When a monster dies over item-eliminating terrain, you got the
gold immediately, but we were failing to destroy the never-linked
gold object.

--------------------------------------------------------------------------------
d585fa0e7b | Shmuale Mark | 2015-07-02 12:34:33 -0400

Let Polyphemus throw yaks at the player.
His pack has always had trouble keeping up with him, since he can wade
through water. Although giving him a catoblepas has helped, as has the new
tide system, another way to make the death yaks more dangerous can't hurt.

To avoid making him too lethal, his damage gets bumped down a bit; the first
attack is now the same as a stone giant's.

--------------------------------------------------------------------------------
542575b191 | Shmuale Mark | 2015-07-02 11:44:14 -0400

Refactor/rename goblin tossing code to make it more general.

--------------------------------------------------------------------------------
b6bbdc399a | Shmuale Mark | 2015-07-02 09:40:43 -0400

Simplify corpse-creation code.
There was a lot of unnecessary code, including for some reason two places
that tried to handle zombie corpses(???). Anything that creates a corpse
should now go through place_monster_corpse (this may cause issues if a
corpse outside mitm is desired, but it should work for now).

--------------------------------------------------------------------------------
a046a472fb | DrKe | 2015-07-02 05:59:29 -0700

Swap the weighting for storm cloud/acid cloud on the Rod of Clouds
Storm cloud is arguably not more powerful than even mid-tier clouds

(fire, cold) on this rod unless the enemy has a lot of AC. With low AC,

the damage is comparable with the trade-offs of a lack of consistency

and a lot of noise. Acid has a very good extra effect in corrosion and

few enemies resist it, so it's certainly better than storm - arguably

negative energy is as well, but there's at least the issue of rN+ being

more common here, and storm cloud seems too exotic to show up that

early.
--------------------------------------------------------------------------------
9f81d98594 | Alan Malloy | 2015-07-01 15:23:52 -0400

Some more monster-description proof-reading
[committer's note: closes #79 pull request. -nfm]

[skip ci]

--------------------------------------------------------------------------------
a58c50047a | Alan Malloy | 2015-07-01 15:14:11 -0400

Delete a prop instead of just setting it to false (|amethyst)
[committer's note: closes #78 pull request.

 N.b. that this will turn turn off an active freeze time, because
 this commit changes the property name, to avoid a nasty save compat
 issue arising from the change to how the prop is tested.

 -nfm]

--------------------------------------------------------------------------------
fb315ab9eb | Neil Moore | 2015-07-01 12:35:46 -0400

Don't crash on remembered thrown weapon choice (#9591)
To reproduce, start a throwing hunter, quit the game, then start another
hunter.  The weapon choice menu would crash trying to get the base name
for WPN_THROWN.

--------------------------------------------------------------------------------
5dff9ada9a | gammafunk | 2015-07-01 08:30:21 -0500

Merge pull request #71 from amalloy/freeze-time
Add "freeze time" option to wizmode
--------------------------------------------------------------------------------
474c87db93 | Neil Moore | 2015-07-01 01:34:37 -0400

Account for bloodless Vp in explore_auto_rest (Sprucery, 0ion9)

--------------------------------------------------------------------------------
9f39193c5e | Nicholas Feinberg | 2015-06-30 21:21:08 -0700

Improve hydra form invis interactions (minmay)
Mention the creature's genus after devouring it.

--------------------------------------------------------------------------------
bf503c280c | Neil Moore | 2015-06-30 22:38:58 -0400

Indicate which memory got trampled.

--------------------------------------------------------------------------------
dada0b057a | gammafunk | 2015-06-30 20:44:16 -0500

Set keyboard modifiers correctly for the mouse in Tiles (|amethyst)
This bug was causing the mouse to see Ctrl and Alt keyboard modifiers
when it shouldn't, since SDL_Keymod enum values were being copied as if
they were our internal key_mod values in certain conditions.

--------------------------------------------------------------------------------
bf10d5dc75 | Chris Campbell | 2015-07-01 00:31:36 +0100

Merge pull request #77 from amalloy/master
Fix spelling
--------------------------------------------------------------------------------
e701dd7411 | Alan Malloy | 2015-06-30 15:40:41 -0700

Fix spelling
Envelope is a noun, envelop is a verb.

--------------------------------------------------------------------------------
44f19e0412 | Alan Malloy | 2015-06-30 14:44:52 -0700

Add "freeze time" option to wizmode

--------------------------------------------------------------------------------
59a308b59c | Neil Moore | 2015-06-30 14:48:58 -0400

Don't restart sprint games with restart_after_saves.
If the last game was Sprint, restart_after_game would keep the previous
player name, etc., and try to re-enter the Sprint menu immediately.
However, if a save for that name already exists, as it would with
restart_after_game, startup_step skips that menu entirely and loads the
saved game immediately.

This meant that you couldn't get out of the game without either
quitting, or using the Lua console to set restart_after_game to false.
Even worse, the same applied to tutorial.

Now forget the remembered game type when the game was saved rather than
ended, so we don't immediately try to re-enter the sprint/tut menu.

--------------------------------------------------------------------------------
65419b1092 | Neil Moore | 2015-06-30 13:45:00 -0400

Count blocks of ice as icy (bcadren)
Meaning you get "melt" messages, and also that they are susceptible to
LRD and shatter.

--------------------------------------------------------------------------------
e08e1a1302 | Neil Moore | 2015-06-30 11:10:05 -0400

Let monsters cut more firewood while fleeing.
Similar to the previous commit: Allow fleeing monsters to attack
firewood that is not directly opposite the player, rather than
cowering:

  #@#
  Ps#
  ###

Separating this from the previous commit because this case might
be more controversial than the other.

--------------------------------------------------------------------------------
78138a92cd | Neil Moore | 2015-06-30 11:03:38 -0400

Allow monsters to cut firewood in more situations (#9826)
When the firewood is not on the straight-line path to the target:
  #.@#
  #P##
  #s#

The scorpion, if targetting the player, previously was not willing to
attack the plant, because the straight-line move to the player was
calculated to be northeast, and the fallback was not even considering
the blocked path north.

--------------------------------------------------------------------------------
8163d8af08 | Neil Moore | 2015-06-30 02:10:49 -0400

Use an enum_bitfield for animation flags.

--------------------------------------------------------------------------------
98860f486b | Neil Moore | 2015-06-30 02:10:37 -0400

Use an enum_bitfield for view update flags.

--------------------------------------------------------------------------------
0279a40694 | Neil Moore | 2015-06-30 02:10:26 -0400

Use an enum_bitfield for area properties.

--------------------------------------------------------------------------------
8fd302b7e1 | Neil Moore | 2015-06-30 01:46:52 -0400

Don't overflow in enum_bitfield<E>::exponent.
When the underlying type is bigger than int.

--------------------------------------------------------------------------------
bed1fdc33e | Neil Moore | 2015-06-30 01:14:56 -0400

Use unique_ptr in element_colours.
And turn it into a FixedVector for bounds-checking, while we're at it.

--------------------------------------------------------------------------------
a099b97352 | Neil Moore | 2015-06-30 01:14:56 -0400

Fix subbranches in Vaults description (amalloy)
Since the removal of the Hall of Blades branch, Vaults has had only
one (direct) sub-branch.

--------------------------------------------------------------------------------
cfcff5d6db | Neil Moore | 2015-06-30 01:14:55 -0400

Simplify player construction and copying.
Move kills and m_quiver directly into the class, move the old init() into
the default constructor, and rely on the defaulted copy constructor and
assignment operator.

The justification for managing kills through a pointer, to keep changes
to kills.h from requiring widespread recompilation, is not particularly
relevant now that KillMaster is relatively stable.

Also default some unnecessary constructors and destructors in KillMaster.

--------------------------------------------------------------------------------
d185dbafa9 | Neil Moore | 2015-06-30 01:14:55 -0400

Regenerate yaccage for nullptr.
And, hey, bison 3 seems to replace most of the generated "NULL"s, too.
There are still a few in the flex-generated code.

--------------------------------------------------------------------------------
2e82f52734 | Neil Moore | 2015-06-30 01:14:55 -0400

Replace a few straggling NULLs with nullptr.
Most of the occurrences in the main codebase had been replaced already,
with a couple of exceptions.  Replace those, as well as some NULLs in
the level compiler, the tiles tool, and header file generators.

There are almost certainly some lurking null pointers masquerading as
literal zeros.  Fix those if you see them.

--------------------------------------------------------------------------------
fabd114102 | Neil Moore | 2015-06-30 01:14:55 -0400

Turn env.level_vaults into unique_ptrs.

--------------------------------------------------------------------------------
7e755d17de | Chris Campbell | 2015-06-29 18:09:57 +0100

Fix FeEE not getting stones (#9792)

--------------------------------------------------------------------------------
1f2716e400 | Chris Campbell | 2015-06-29 18:09:56 +0100

Fix a Xom reference to stat death

--------------------------------------------------------------------------------
b58926ef1e | Chris Campbell | 2015-06-28 20:25:53 +0100

Remove bonus armour from Ozo's and Stoneskin when transformed
The fact that Ozo's armour and stoneskin work at all with ice/statue forms
respectively is more than enough reason to use them - the additional bonus
armour isn't really necessary when the spells are desirable to use anyway.

--------------------------------------------------------------------------------
3d113ad40d | Neil Moore | 2015-06-28 13:04:02 -0400

Stop flying on losing big wings (#9721)
If the player had no other source of flight, the same as losing boots of
flying (including an emergency evoke if wearing a ring of flight).

--------------------------------------------------------------------------------
c28613e630 | Chris Campbell | 2015-06-27 13:39:50 +0100

Re-brace

--------------------------------------------------------------------------------
d8e60f6d89 | Chris Campbell | 2015-06-27 13:14:55 +0100

Improve monster speech, remove fake spells
Remove some particularly misleading lines, don't use the actual spellcasting or
enchantment speech channels for regular monster speech in general, and assorted
other speech tweaks/removals.

--------------------------------------------------------------------------------
d584d2b52c | Chris Campbell | 2015-06-27 11:54:23 +0100

Remove an unused variable (geekosaur)

--------------------------------------------------------------------------------
24042e097f | Neil Moore | 2015-06-27 00:49:16 -0400

Scale Draining Gaze by caster HD, not victim (NarcissusIII)
This cuts ghost moth MP drain roughly in half versus a level 27
character (HD 13 vs 27).  Eyes of draining are HD 7, and OCS 10,
so are nerfed versus medium-level characters too.

The power multiplier could be increased if the nerf is undesired.

Introduced in 0.16-a0-1592-g2292898.

--------------------------------------------------------------------------------
10bb59b2e6 | gammafunk | 2015-06-26 22:11:06 -0500

Remove the Int drain effect from Malign Gateway
This is a two-school spell that requires a lot of investment and doesn't
need the additional cost. Given that it could never be used to spam
summons and always had the drawback of the tentacle becoming neutral,
the Int drain seems to have been more thematic than anything.

--------------------------------------------------------------------------------
89f0035fa9 | gammafunk | 2015-06-26 22:11:00 -0500

Remove the sickness effect from casting Haunt
The sickness effect dates from when summons were uncapped and when Haunt
didn't have its current target-based expiration behaviour. Restricting
its practical use to a small number of species immune to sickness or to
Kiku worshipers wasn't particularly interesting. The spell requires a
large investment in two spell schools, which along with the required MP
is certainly enough of a cost.

--------------------------------------------------------------------------------
2c35cbcb6f | Corin Buchanan-Howland | 2015-06-26 20:20:28 -0400

Make a few more monsters not give XP (minmay)
Specifically lurking horrors, fire vortexes, and giant spores.

--------------------------------------------------------------------------------
f9b49e110c | Chris Campbell | 2015-06-27 00:40:02 +0100

Adjust some priest spell sets
Instead of a mix of priest and wizard spells, make all of the spells cast by
seraphs, black suns and Asterion be priestly.

--------------------------------------------------------------------------------
f1e1bf34a1 | Chris Campbell | 2015-06-27 00:40:02 +0100

Remove Grand Avatar
It was another highly complicated and not-very-relevant monster demonspawn
spell. Replaced with Haste Other on warmongers.

--------------------------------------------------------------------------------
19c608af41 | Chris Campbell | 2015-06-27 00:40:02 +0100

Remove a Zot vault
If this vault has some kind of cohesive theme it's lost on me - it appears to
just consist of a random assortment of terrain and useless items, and doesn't
place any monsters so is usually mostly empty other than that.

--------------------------------------------------------------------------------
4273e01ba1 | Corin Buchanan-Howland | 2015-06-26 19:27:43 -0400

Increase salamander stormcaller firestorm damage and decrease spawn rate
More specifically, increase salamander stormcaller HD, but lower their hp
per HD. Their max HP is slightly lower now, but min HP is significantly
higher. The motivation behind the change is to increase firestorm damage,
because it was considered by many to be fairly trivial.

Since stormcallers are now reasonably well-tested, I'm lowering their
spawn rate to what I see as being a normal level.

--------------------------------------------------------------------------------
eafbe2f407 | Chris Campbell | 2015-06-25 22:05:42 +0100

Remove the Singularity monster spell
Since as mentioned in the commit making it monster-only, it's not really an
effect that should be kept around just for random pan lords.

--------------------------------------------------------------------------------
fea330ee93 | Chris Campbell | 2015-06-25 22:03:11 +0100

Remove Ephemeral Infusion
It was a fairly complicated and not very noticeable effect. Blood saints also
no longer damage themselves on casting destruction, so the limited synergy
there no longer exists. Leaves blood saints with only one spell, but that one
spell is actually 6 spells and so still leaves them with plenty of variety. The
elixir card now just applies a direct heal to allies instead of the ephemeral
infusion effect.

--------------------------------------------------------------------------------
afc859bc4a | Chris Campbell | 2015-06-25 21:55:33 +0100

Make corrosion apply the same reduction to armour and slaying
-4 to both, instead of -5/-3.

--------------------------------------------------------------------------------
34fd0a8ec5 | Chris Campbell | 2015-06-25 21:46:46 +0100

Make very heavy stat drain recover faster
To make it a little easier to recover from weird cases of stat drain reaching
a long way into the negatives.

--------------------------------------------------------------------------------
695b0fea96 | Chris Campbell | 2015-06-25 13:21:01 +0100

Don't allow using Vitalisation or Potion Petition while starving

--------------------------------------------------------------------------------
49fde19ec0 | Chris Campbell | 2015-06-24 19:19:37 +0100

Fix cast messaging for Legendary Destruction
Since it no longer costs HP.

--------------------------------------------------------------------------------
f3e7a1dc2a | Shmuale Mark | 2015-06-24 11:59:23 -0400

Also mention curse removal for ?oEW (MarvinPA).

--------------------------------------------------------------------------------
5bfb8169e4 | Shmuale Mark | 2015-06-24 11:48:01 -0400

Forbid giving cursed worn items to followers (#9808).

--------------------------------------------------------------------------------
0f6c2aec27 | Shmuale Mark | 2015-06-24 11:47:47 -0400

Mention the remove curse effect of ?oEA (RoGGa).

--------------------------------------------------------------------------------
993286b782 | Shmuale Mark | 2015-06-24 11:47:37 -0400

A utility function for doing @foo@ replacements.

--------------------------------------------------------------------------------
fab4afe86e | Shmuale Mark | 2015-06-24 11:47:21 -0400

Regenerate prebuilt yaccage.

--------------------------------------------------------------------------------
e16f35c8ce | Shmuale Mark | 2015-06-24 11:46:58 -0400

Remove level_flags.
It was only necessary for keeping track of whether you had used wizmode to
end map decay on a level; that's now handled by a switch in
env.properties.

--------------------------------------------------------------------------------
c5775f80b1 | Shmuale Mark | 2015-06-24 11:46:32 -0400

Use the more usual convention for constants.

--------------------------------------------------------------------------------
283b3ea7f7 | Shmuale Mark | 2015-06-24 11:46:08 -0400

Use monsters' real HD for estimating recite susceptibility.

--------------------------------------------------------------------------------
95311d7773 | gammafunk | 2015-06-23 20:55:57 -0500

Give the moon troll corrosive bolt instead of singularity
The monster singularity spell may not be long for this world, as it's
pretty ridiculous. Not that I didn't know this before giving it to the
moon troll, but I fell prey to the siren calls of "it exists" and "space
theme". Corrosive bolt is an appropriately dangerous ranged spell that's
also good thematically for this wizlab.

--------------------------------------------------------------------------------
eb41febcab | Chris Campbell | 2015-06-23 21:42:30 +0100

Capitalise the Abyss

--------------------------------------------------------------------------------
e3e75563cf | Chris Campbell | 2015-06-23 20:42:09 +0100

Make Singularity a monster-only spell
As a player spell, it's problematic in various ways - reliably dealing damage
and being fully effective out of LOS and often preventing the monsters it
affects from being able to enter LOS at all. It also doesn't fit the
Translocations school thematically at all, being a pure damage spell, and with
the damage and out-of-LOS effects removed it wouldn't be very interestingly
distinct from other already-existing Tloc spells.

It remains as a random pan lord spell for now, but it might be better not to
keep the effect for such a rare case.

--------------------------------------------------------------------------------
ab074f3f9b | Chris Campbell | 2015-06-23 20:33:58 +0100

Remove skill restrictions from highlevel books
The restrictions didn't have very much effect other than making identification
of them occasionally a little awkward - it'd be pretty rare for someone to want
to use a spell from one of the books without having met the requirements
already anyway.

--------------------------------------------------------------------------------
2a55426b52 | Chris Campbell | 2015-06-23 20:14:42 +0100

Move tendril disarming into its own function

--------------------------------------------------------------------------------
df36facd8c | Chris Campbell | 2015-06-23 12:01:46 +0100

Don't revoke sanctuary when a confused ally attacks you
Also lets confused allies get away with attacking hostiles, which is probably
fine I guess. They're too dumb to be held responsible like the player is, or
something.

The player just swaps places with allies in sanctuary instead of attacking
them, even while confused - maybe a better fix is just to cancel attacks from
confused allies in sanctuary?

--------------------------------------------------------------------------------
f72cd6dec2 | Chris Campbell | 2015-06-23 11:40:06 +0100

Fix ranged combat not breaking sanctuary

--------------------------------------------------------------------------------
33f8782275 | Chris Campbell | 2015-06-23 11:39:30 +0100

Fix confused attacks not revoking sanctuary
There's already a prompt warning that it will do so.

--------------------------------------------------------------------------------
9d4ed2e186 | Chris Campbell | 2015-06-23 11:16:18 +0100

Fix Singularity not breaking sanctuary (#9805)

--------------------------------------------------------------------------------
cf6271e32e | Chris Campbell | 2015-06-23 10:50:37 +0100

Fix Tornado and Static Discharge not breaking sanctuary

--------------------------------------------------------------------------------
06ff558a05 | Shmuale Mark | 2015-06-22 11:44:31 -0400

Tone back Maxwell's cage a bit (mrmyers).

--------------------------------------------------------------------------------
4bd4a8ab2f | Shmuale Mark | 2015-06-22 10:58:21 -0400

Make the Crown of Eternal Torment actually anger good gods (#9803).
And fix the black horse barding's conduct. Perhaps this should be done
automatically in world_reacts(), checking for equipped evil unrands?

--------------------------------------------------------------------------------
e6d9485f98 | Nicholas Feinberg | 2015-06-21 10:42:08 -0700

Changelog through 0.17-a0-1408-g1e89f00

--------------------------------------------------------------------------------
1e89f00925 | Nicholas Feinberg | 2015-06-21 10:06:12 -0700

Fix tiles compilation
??oops

--------------------------------------------------------------------------------
de22cd8725 | Nicholas Feinberg | 2015-06-21 09:10:55 -0700

Change can_see to take a reference
Also note various other functions for which the same should be
done. (Not a comprehensive list, of course.)

--------------------------------------------------------------------------------
b26dcb69a7 | gammafunk | 2015-06-21 05:42:22 -0500

Merge pull request #72 from drke2/patch-1
Update Volcano armour loot distribution
--------------------------------------------------------------------------------
bbb68144d6 | DrKe | 2015-06-21 02:47:38 -0700

Update Volcano armour loot distribution
To be more in line with armour loot generation elsewhere. Note the

absence of animal skins.
--------------------------------------------------------------------------------
b8113a68c6 | Nicholas Feinberg | 2015-06-20 15:17:21 -0700

Store monster HD in mon-info
This allows correct display of MR for monsters which have MR
varying by HD (pan lords, etc).

It'll also be useful for something else, shortly.

--------------------------------------------------------------------------------
f53dfbb68b | Cole Thompson | 2015-06-19 21:12:34 -0700

make monsters have better self-preservation around clouds

--------------------------------------------------------------------------------
9df874ce5e | gammafunk | 2015-06-19 03:56:19 -0500

Merge pull request #69 from amalloy/master
Fix a misspelled comment
--------------------------------------------------------------------------------
f8aa72ac0e | DrKe | 2015-06-19 03:07:25 -0500

Clean up and tweak Frances's spell list
Summon Demon was listed twice, so merge the second entry and give it
equal frequency with haste.

Commiter's Note: Squashed a second commit in the pull request and then
reworded commit message.

--------------------------------------------------------------------------------
18c9dbac42 | gammafunk | 2015-06-19 02:40:19 -0500

Updates to the debian package guide

--------------------------------------------------------------------------------
b1ae66cdd4 | Alan Malloy | 2015-06-17 23:18:52 -0700

Fix a misspelled comment

--------------------------------------------------------------------------------
d5b76e1af7 | gammafunk | 2015-06-17 20:47:10 -0500

Merge pull request #67 from drke2/patch-1
Make scales mutation messages consistent
--------------------------------------------------------------------------------
9d986b7256 | DrKe | 2015-06-17 18:09:20 -0700

Make scales mutation messages consistent

--------------------------------------------------------------------------------
0eee0a3407 | Chris Campbell | 2015-06-16 14:53:35 +0100

Increase Jiyva jelly paralysis duration
And give the ability an MP cost (presumably it had no costs due to having been
a 'p'rayer in the past).

--------------------------------------------------------------------------------
4ce96140e1 | Chris Campbell | 2015-06-16 14:52:06 +0100

Remove feeding from Vitalisation
The feeding wasn't very significant and was unlikely to be the reason to use
the abiity, as well as just not fitting with the rest of the ability's effects.
Zin worshippers can probably manage the corpse conduct fine without any help.
Also gives Vitalisation a small MP cost, since it seemed a little strange that
it didn't have one at all.

--------------------------------------------------------------------------------
5916e71557 | Chris Campbell | 2015-06-16 14:05:47 +0100

Remove some more references to teleport control

--------------------------------------------------------------------------------
de347b4c90 | Neil Moore | 2015-06-16 00:13:03 -0400

Don't use map_find on a set.
It happened to work in this case, because this is a set of pairs, and
iterator->second was therefore legal; and because we didn't care what
was returned, exactly, just whether it was a null pointer.

Be less silly.

--------------------------------------------------------------------------------
cb420ffc2d | Corin Buchanan-Howland | 2015-06-15 22:35:40 -0400

Standardize chant delay and clean up code slightly
Make all the chanting monsters use the same delay, and also reduce a bit
of code duplication. There's room for more improvement here, but I'll
tackle that another time.

--------------------------------------------------------------------------------
ab5785f6d1 | Alan Malloy | 2015-06-15 22:06:46 -0400

Fix Ru's apocalypse damage
It was supposed to be NdX, but was accidentally XdN.

Also tidied up a bit by removing some repetition, and moving related
variables closer together.

--------------------------------------------------------------------------------
7b775c471b | Corin Buchanan-Howland | 2015-06-15 21:30:09 -0400

Fix apocalypse damage (amalloy)
It was rolling dice backwards, resulting in much higher damage consistency
than intended and also increasing the average damage. The average damage
was fine, so I increased the damage 10% to compensate.

--------------------------------------------------------------------------------
37ff431011 | Neil Moore | 2015-06-15 19:08:58 -0400

Data-ify more removed item checks.
At wheals's prompting.

Move the list out of _set_removed_types_as_identified, make it into a
set for ease of lookup, and expand it to cover several other removed
items.  Replace several obsolete-item checks throughout the codebase
with a call to a function that does a lookup in this set.

Now that the checks do not mention specific enumerators, take them out
of their #if TAG_MAJOR_VERSION == 34 blocks: the next major version will
eventually have removed item types itself, and until then
item_type_removed would just return false for everything.

We do not currently handle removed armour (caps), misc. items (bottled
efreet, decks of dungeons, and buggy ebony caskets), or food (several),
but probably should.

--------------------------------------------------------------------------------
177e3b54f9 | Chris Campbell | 2015-06-15 23:18:21 +0100

Highlight headings of Ash skill boost description (amalloy)
Made it white instead of the red of the pull request, since that looked sort
of ugly and white still stands out but is more subtle.

--------------------------------------------------------------------------------
476ef7d0ea | Chris Campbell | 2015-06-15 22:46:06 +0100

Reduce ecumenical altar testing weight

--------------------------------------------------------------------------------
00d4e61f63 | Chris Campbell | 2015-06-15 22:40:53 +0100

Fix ecumenical altars being able to roll invalid gods (chequers)
Including GOD_NO_GOD, or an already-dead Jiyva.

--------------------------------------------------------------------------------
665321248b | Neil Moore | 2015-06-15 13:28:28 -0400

Data-ify _set_removed_types_as_identified.
And ensure the scaffolding sticks around even after a major tag bump.
I would have used an array rather than a vector, but C++ does not allow
the zero-length array we would have after a major bump.

--------------------------------------------------------------------------------
5b8c13e702 | Neil Moore | 2015-06-15 13:28:28 -0400

Allow indexing a FixedArray using a std::pair.
We already allowed this with a coord_def (and any other type with int-like
members x and y).

--------------------------------------------------------------------------------
aabe8e5fa2 | gammafunk | 2015-06-15 00:31:55 -0500

Merge pull request #62 from amalloy/master
Simplify some flag-handling
--------------------------------------------------------------------------------
c46a074e1c | Neil Moore | 2015-06-14 22:36:51 -0400

Don't claim JOB_UNKNOWN is a starting job (#9782)
Among other things, this caused crashes when selecting "viable
character".

--------------------------------------------------------------------------------
ce971b9364 | Neil Moore | 2015-06-14 22:22:55 -0400

Fix an identification check (chequers)

--------------------------------------------------------------------------------
c4949c2645 | Sandman25 | 2015-06-14 09:20:18 -0700

Display hex success chance in monster description
[Rather than requiring a visit to the actual spell description to
see it.

Committer's note: did some minor cleanup. Also, I believe credit
is owed to rast for this idea.]

--------------------------------------------------------------------------------
a507688880 | Nicholas Feinberg | 2015-06-14 08:58:43 -0700

Don't give wanderers useless 'decent' items (9780)
Fixes formicids wanderers getting ?tele & mummy wanderers getting
!cure. (Bless 'em.)

As the comment notes, it'd be nice to use is_useless_item()
instead of duplicating uselessness checks, but it seems like a lot
of scaffolding to build fake items for the checks?

--------------------------------------------------------------------------------
281efddb25 | Chris Campbell | 2015-06-14 00:00:21 +0100

Reword feature descriptions
Fixing various inaccuracies and rewording for consistency.

--------------------------------------------------------------------------------
8bd8cb504d | Chris Campbell | 2015-06-13 23:46:48 +0100

Reword command descriptions

--------------------------------------------------------------------------------
78570d6324 | Chris Campbell | 2015-06-13 23:46:47 +0100

Make fire clouds dissipate faster over both shallow and deep water
And apply it to forest fires as well.

--------------------------------------------------------------------------------
89b919d6b4 | gammafunk | 2015-06-13 15:27:41 -0500

Some fixes to the Lehudib wizlab
Set no_tele_into properly on the relevant glyph and fix up the monster
lists.

--------------------------------------------------------------------------------
c51869c90a | Neil Moore | 2015-06-13 01:40:31 -0400

Account for DD in explore_auto_rest.
Allow them to explore even when injured.

--------------------------------------------------------------------------------
64d4c99c68 | Chris Campbell | 2015-06-12 21:54:55 +0100

Fix spectral mist description

--------------------------------------------------------------------------------
60dc724736 | Chris Campbell | 2015-06-12 19:56:38 +0100

Remove AC-piercing from ghostly fireball
It still partially ignores rN and heals the undead.

--------------------------------------------------------------------------------
b56d33567c | Chris Campbell | 2015-06-12 19:55:47 +0100

Rename ghostly flame clouds to spectral clouds (PleasingFungus)
Since they had nothing at all in common with the ghostly flame beam used by the
ghostly fireball spell.

--------------------------------------------------------------------------------
092858d3ad | gammafunk | 2015-06-12 06:39:28 -0500

Remove the obsolete WizLab planning section
This was a list of incomplete ideas used while the portal was
developed. I'd thought about moving it to the dev wiki, but none of the
ideas here are very detailed, and some refer to spells or items that
have been removed.

[skip ci]

--------------------------------------------------------------------------------
44f1542a35 | gammafunk | 2015-06-12 06:39:18 -0500

Tweak the Lehudib wizlab monster lists
Merge the great orb of eyes/golden eyes MONS entry and giant orange
brain entry into a single entry, adding neqoxecs at low weight and
reducing the weight of golden eyes. Where I placed the old entries in
pairs on the map, I now place three of the merged entry. This means
fewer golden eyes, which are effective only against a the few players
who don't have neither decent MR or clarity.

The shadow creatures list is also updated to better reflect the new
monster dist. and include all of non-guardian monsters aside from giant
orange brains.

[skip ci]

--------------------------------------------------------------------------------
8a8bba9977 | Alan Malloy | 2015-06-11 16:25:45 -0700

Simplify some flag-handling

--------------------------------------------------------------------------------
6ab37f2013 | Nicholas Feinberg | 2015-06-11 20:22:14 +0100

Allow spell-less players to worship Sif
It's an awful idea, but nothing's stopping you.

--------------------------------------------------------------------------------
77d8af7635 | Alex Jurkiewicz | 2015-06-11 20:22:14 +0100

Move ecumenical altar logic into a new function.

--------------------------------------------------------------------------------
27816b23ff | Shmuale Mark | 2015-06-11 12:08:55 -0400

Mention in the description that Beastly Appendage can't boost mutations (#9767).

--------------------------------------------------------------------------------
52ad669e10 | Chris Campbell | 2015-06-11 13:52:42 +0100

Fix spacing

--------------------------------------------------------------------------------
fd6394a85f | Chris Campbell | 2015-06-11 13:52:42 +0100

Don't give piety when converting to your current god at an ecumenical altar

--------------------------------------------------------------------------------
43b0ec6a3c | Chris Campbell | 2015-06-11 13:52:37 +0100

Don't give monks bonus piety when getting Ru at an ecumenical altar
Since ecumenical altar bonuses generally work out as giving the monk bonus but
less so, monks getting Ru or Gozag are just out of luck since the bonuses for
those gods work differently and can't be stacked.

--------------------------------------------------------------------------------
64d902d413 | Chris Campbell | 2015-06-11 13:32:22 +0100

Don't make all ecumenical altars choose Gozag

--------------------------------------------------------------------------------
4c9cf04e94 | gammafunk | 2015-06-11 04:12:39 -0500

Don't make all instantaneous player teleports controlled (#9766)
A mixup of indicator variables for wizard teleport happened during cTele
removal.

--------------------------------------------------------------------------------
37db002a4e | Chris Campbell | 2015-06-10 22:44:00 +0100

Fix Controlled Blink description

--------------------------------------------------------------------------------
1860f6a254 | Chris Campbell | 2015-06-10 22:41:35 +0100

Make carrying the Orb prevent controlled blinks from working
Degrade them all the way to uncontrolled. Having to still have some form of
-cTele exist is really inelegant and unfortunate, but seems maybe necessary for
the orbrun. If it seems like the difficulty of the orb grab should be increased
to compensate for -cTele removal, it might be better to come up with some other
unrelated change if possible, rather than having -cBlink be a thing at all.

--------------------------------------------------------------------------------
b46cb9dfc3 | Chris Campbell | 2015-06-10 22:36:01 +0100

Merge the no_rtele_into vault tag/prop into no_tele_into
No vaults actually relied on the ability to cTele into them (with the only
possible exception being sword in the stone, which still has an alternate
approach with LRD and apportation).

--------------------------------------------------------------------------------
326445fe38 | Chris Campbell | 2015-06-10 22:36:00 +0100

Remove the control teleport duration and -cTele level flag
Removes most of the actual functionality of cTele. The -cTele flag's effect of
preventing shafts (only relevant in Tomb) is turned into its own branch flag.

--------------------------------------------------------------------------------
05e14b0d35 | Chris Campbell | 2015-06-10 22:32:21 +0100

Remove the Control Teleport spell and the book of Control
cTele removal part 2. With cTele removed the book of Control was even more
empty, and its other spells were mostly duplicated in at multiple other books.
Mass Confusion could potentially do with being added to another book since this
leaves it in only the book of Dreams.

--------------------------------------------------------------------------------
a6c7e69917 | Chris Campbell | 2015-06-10 22:10:45 +0100

Remove rings of teleport control
Part one of cTele removal. cTele's function generally is to turn an interesting
unreliable escape method into a boring and reliable one. Its existence also
makes it necessary to have various floors be awkward exceptions that block the
effect.

--------------------------------------------------------------------------------
9453881aa3 | Chris Campbell | 2015-06-10 19:51:46 +0100

Adjust spacing

--------------------------------------------------------------------------------
aa0c41737f | Chris Campbell | 2015-06-10 19:51:46 +0100

Add a canned message

--------------------------------------------------------------------------------
5dbd5e292d | Neil Moore | 2015-06-10 14:50:42 -0400

Don't charge a service fee for ecumenically worshipping Gozag.

--------------------------------------------------------------------------------
1a06f401d5 | Neil Moore | 2015-06-10 14:06:59 -0400

Use a different milestone to note ecumenical prayer.
You still get the ordinary god.worship = "became a worshipper...", but
now "prayed at an ecumenical altar" has verb = god.ecumenical.

--------------------------------------------------------------------------------
ed43e1759e | Neil Moore | 2015-06-10 13:57:46 -0400

Give free Ru piety only to novice monks at ecumenical altars (Lasty)
Everyone else gets just a free sacrifice.

--------------------------------------------------------------------------------
1fde91046a | Neil Moore | 2015-06-10 12:46:41 -0400

Silly description for faded altar.
As a placeholder if nothing else.

--------------------------------------------------------------------------------
3594d2aa16 | Neil Moore | 2015-06-10 12:46:22 -0400

Don't immediately offer a sacrifice when getting Ru from Ecu-Mart.
Because getting free Ru piety without a sacrifice is already a
significant bonus (perhaps too significant).

This also lets us stack with the monk first-god bonus.

--------------------------------------------------------------------------------
3ca11d61ff | Neil Moore | 2015-06-10 12:30:02 -0400

Remove GOD_VIABLE.
It just got shifted, but appears nowhere anyway (including in saves).
If someone chose "viable god" once upon a time when some backgrounds
offered a god choice, that does not matter now (and the .prf entry
would be ignored anyway).

--------------------------------------------------------------------------------
53020fa21f | Neil Moore | 2015-06-10 12:24:20 -0400

Reduce the ecumenical altar chance somewhat.
To a 50% chance of one of the vaults on each of D:2-3, rather than 50%
for *each* vault.  This is still high, but will let the altar get
testing without more or less guaranteeing it on D:2.

--------------------------------------------------------------------------------
9eb78481c1 | Brendan Hickey | 2015-06-10 11:51:53 -0400

Merge pull request #59 from alexjurkiewicz/ecumenical-altar
Add ecumenical altars (bugzilla)
--------------------------------------------------------------------------------
a9ddbe5224 | Brendan Hickey | 2015-06-10 15:46:13 +0000

Speed up dominoes.
Halve the number of tiles examined during domino solving by a factor of 2.

--------------------------------------------------------------------------------
cf95b23cbd | Brendan Hickey | 2015-06-10 15:46:13 +0000

Reduce the number of trials for the domino solver.
This should be a no-op in the context we're using dominos in.
The tile set we're shipping can trivial tile the plane by construction,
so the stochastic solver should never get invoked.

--------------------------------------------------------------------------------
19d3fa4d1f | Neil Moore | 2015-06-10 11:40:48 -0400

Don't show known scrolls/potions in \- (#9763)

--------------------------------------------------------------------------------
cd4c7aef34 | Neil Moore | 2015-06-10 11:16:47 -0400

Remove an unused variable.

--------------------------------------------------------------------------------
bd9db62c8d | Neil Moore | 2015-06-10 11:11:06 -0400

Give a little hint when wearing flight ego (#9762)
Since the boots usually turn on automatically, it's not clear that they
do in fact grant an evocable ability.  Then if you are grounded by
Roots, even taking off and re-wearing the boots doesn't make you fly
again, so they appear not to work.

Perhaps we should use a new message channel to make it easier to filter
out UI hints like this one and the Beogh "Press...to convert" message.

--------------------------------------------------------------------------------
e6514878e0 | Corin Buchanan-Howland | 2015-06-09 20:33:18 -0400

Update the list of rings you don't want to autopickup after sacrifice a hand

--------------------------------------------------------------------------------
8a4e7f54fa | Corin Buchanan-Howland | 2015-06-09 20:24:27 -0400

Remove the random penalty to attack speed for wielding a shield with UC
This penalty was small and hard to notice w/o spoilers, and UC doesn't
need the minor nerf. Removing it for consistency and clarity rather than
as a power level adjustment.

--------------------------------------------------------------------------------
9240d72bed | Chris Campbell | 2015-06-10 00:44:36 +0100

Remove now-unused code for identification states
"Tried" (by monsters/by players/on items) no longer exists as an identification
state, making item type identification now a bool.

--------------------------------------------------------------------------------
c6bce7efb7 | Chris Campbell | 2015-06-10 00:44:36 +0100

Always identify potions quaffed by monsters

--------------------------------------------------------------------------------
275d24f1ce | Chris Campbell | 2015-06-10 00:44:36 +0100

Remove unused shadow trap code

--------------------------------------------------------------------------------
9db7d08c1c | gammafunk | 2015-06-09 14:58:03 -0500

Merge pull request #48 from alexjurkiewicz/gc1h
Committer's Note: This change will make more of a choice between giant club and 
giant spiked club for the species that can use these; giant spiked clubs will 
easily remain the best 2h option at higher skill levels. 
--------------------------------------------------------------------------------
3e5826c8d4 | Shmuale Mark | 2015-06-09 14:02:33 -0400

Make friendly bribed allies permanent but restricted to their branch.

--------------------------------------------------------------------------------
da499b9555 | Shmuale Mark | 2015-06-09 14:02:28 -0400

Remove some crufty Gozag code.

--------------------------------------------------------------------------------
4630578012 | Alex Jurkiewicz | 2015-06-09 23:45:00 +1000

Fix existing-god ecumentical altar crash.

--------------------------------------------------------------------------------
cae75e7ef7 | Alex Jurkiewicz | 2015-06-09 23:45:00 +1000

Add ecumenical altars (bugzilla)
Random altars appearing occasionally on d:2 or d:3 that worship an
unknown god. Using one grants a small amount of initial piety.

Also forbids Demigods gaining religion in wizmode, to guard an assert.

Original code by 'bugzilla', see mantis#9454.

--------------------------------------------------------------------------------
2bcb431e2d | Chris Campbell | 2015-06-09 13:16:12 +0100

Don't allow polymorph to batform full Vampires, give non-Vp bats normal hunger
Maybe there's a better solution to this, having batform mean two different
things depending on species is weird. This at least means that Vampires in
bat form really are always vampire bats at the right hunger level, though.

--------------------------------------------------------------------------------
5ccdc376be | Chris Campbell | 2015-06-09 12:54:27 +0100

Remove an unused translation file

--------------------------------------------------------------------------------
e4d8b7511e | Chris Campbell | 2015-06-09 12:50:41 +0100

Remove ravens
They were very uninteresting and not used for much other than a few vaults
and unnecessarily accompanying tengu. Replaced with wasps, wyverns or nothing
as seemed vaguely appropriate.

--------------------------------------------------------------------------------
4d1ca9885b | Chris Campbell | 2015-06-09 11:55:20 +0100

Unrandomise hell beast speeds
Since it mainly just makes things unclear, with them being generally fast
anyway. Fix them at 15 (a little bit over their old average speed).

--------------------------------------------------------------------------------
a541562f89 | Neil Moore | 2015-06-08 21:07:41 -0400

Fix up nicolae_arrival_memento_mori (minmay)
Don't attempt to place an "octopus corpse", "cat skeleton", etc.

Also don't attempt to place an octopode skeleton.

Because you.monster() returns MONS_PROGRAM_BUG before your race is
chosen, we also have to handle pre-game des compilation specially.  This
wasn't necessary previously because you.genus() was "Yak", which is an
acceptible monster for a corpse.

--------------------------------------------------------------------------------
25b55bf516 | Neil Moore | 2015-06-08 20:59:23 -0400

Add clua you.monster() for your monster species name.
Since you.genus() isn't necessarily even a monster type.

--------------------------------------------------------------------------------
2a080e749a | Alan Malloy | 2015-06-08 17:15:39 -0400

Fix description of MR--- mutation
[committer's note: closes #58 pull request. -nfm]

[skip ci]

--------------------------------------------------------------------------------
bb7a4a66e5 | Neil Moore | 2015-06-08 17:07:19 -0400

Add robobario to mailmap and credits.
[skip ci]

--------------------------------------------------------------------------------
63f2c86425 | Neil Moore | 2015-06-08 16:46:22 -0400

Fix explore_auto_rest when rest_wait_percent is not 100.
It was using should_stop_resting, but that function is edge-triggered,
so you can press 5 again to go from rest_wait_percent to full.  Here we
want level-triggered behaviour, so that explore doesn't go back to
waiting once you pass rest_wait_percent.

Also, rename is_completely_rested to is_sufficiently_rested, to be more
truthful.

--------------------------------------------------------------------------------
eb84fdd47b | Neil Moore | 2015-06-08 16:46:18 -0400

Adjust explore_auto_rest documentation.
And add rest_wait_percent to the TOC.

[skip ci]

--------------------------------------------------------------------------------
705641cb2b | rob.young | 2015-06-08 16:45:20 -0400

Optionally wait for full HP and MP before exploring
[committer's note: Removed a stray source/init.txt.
 Closes #57 pull request. -nfm]

--------------------------------------------------------------------------------
fdc105914f | Neil Moore | 2015-06-08 12:31:22 -0400

Webtiles: Update Tornado version requirements (Chance672)
Version 2.0 doesn't work, nor does 4.  There is a branch tornado4
that fixes Tornado 4, but it breaks versions earlier than 3.1 at the
moment.

[skip ci]

--------------------------------------------------------------------------------
ac44401d3f | DrKe | 2015-06-08 05:37:13 -0500

Don't give Ice Cave necromancers fiery wands
The necromancer in ice_cave_small_necro can already have a b.fire
spellset, so it's not necessary to give it a wand of fire that it will
spam and punish rF- even more.

Also replace wand of flame chance with wand of draining - a portal boss
shouldn't spawn with a low-tier wand.

Commiter's Note: took and tweaked the pull request comment to use as the
commit message, closes #56

--------------------------------------------------------------------------------
96962c4e48 | gammafunk | 2015-06-08 05:29:07 -0500

Merge pull request #55 from amalloy/master
Remove needless if/else
--------------------------------------------------------------------------------
71ff836edd | Alan Malloy | 2015-06-08 00:42:14 -0700

Remove needless if/else

--------------------------------------------------------------------------------
e10e169053 | gammafunk | 2015-06-08 01:47:13 -0500

Add a Debian package guide to the release docs
Covers building the debian packages and installing them to the CDO repo,
and provides an example pbuilderrc. The pbuilderrc needs testing, and
I'll make any necessary updates after doing that.

--------------------------------------------------------------------------------
4ca417b38d | gammafunk | 2015-06-08 01:45:12 -0500

Update and reorganize the release guide
Now covers emailing CRD about the release, updating the current CDO
website, and mentions the upcoming Debian package guide, in addition to
other cleanups.

Moved to its own directory since it will soon have some related files.

--------------------------------------------------------------------------------
bcbd8590e0 | Neil Moore | 2015-06-07 18:18:36 -0400

Don't give XP for spell-conjured monsters (minmay, gammafunk)
Broken in 0.17-a0-1238-gda61031, when some checks for ENCH_ABJ were
removed.

Not checking for M_CONJURED because some vaults place fire vortices and
ball lightnings, and if we decide we don't want those to give XP, we
have the M_NO_EXP_GAIN flag for that.

--------------------------------------------------------------------------------
af4f4d64aa | Nicholas Feinberg | 2015-06-07 13:09:38 -0700

Changelog through 0.17-a0-1308-gaca585e

--------------------------------------------------------------------------------
e2e0ffc886 | Neil Moore | 2015-06-07 15:40:04 -0400

Simplify a map lookup.

--------------------------------------------------------------------------------
aca585e96e | Nicholas Feinberg | 2015-06-07 12:31:34 -0700

Replace a switch with a map
Can't trivially do this for attacks, since the damage varies.

--------------------------------------------------------------------------------
7eb7718ce8 | Nicholas Feinberg | 2015-06-07 12:26:57 -0700

Nerf mbeast damage scaling (gammafunk)
As a stopgap until any more ambitious changes (summon cap?) are
added.

--------------------------------------------------------------------------------
a73dd61336 | Nicholas Feinberg | 2015-06-07 12:26:54 -0700

Fix stingbeast description (|amethyst)

--------------------------------------------------------------------------------
d5ce758072 | Neil Moore | 2015-06-07 13:54:30 -0400

Don't depend on a C++14 feature.
In C++11, lambdas infer a return type only if their body consists of a
single return statement.

--------------------------------------------------------------------------------
19d736db65 | Neil Moore | 2015-06-07 12:52:35 -0400

Improve indentation (doh)
[skip ci]

--------------------------------------------------------------------------------
0b13bbdde1 | Neil Moore | 2015-06-07 12:19:11 -0400

Use comma_separated_fn for mutant beast facet descs.
Also, use one "and" if there are more than two facets.

--------------------------------------------------------------------------------
12b1a86416 | Neil Moore | 2015-06-07 12:01:38 -0400

Use ASSERT_RANGE.
And use NUM_BEAST_TIERS rather than ARRAYSZ(tier_descs) to avoid having
to cast to unsigned.  We statically assert that the two are equal a few
lines above.

--------------------------------------------------------------------------------
a863c440da | gammafunk | 2015-06-06 21:28:08 -0500

Merge pull request #54 from amalloy/master
Don't let plants writhe in agony
--------------------------------------------------------------------------------
5c11426a53 | Alan Malloy | 2015-06-06 19:18:57 -0700

Don't let plants writhe in agony

--------------------------------------------------------------------------------
c016bfc692 | gammafunk | 2015-06-06 20:47:18 -0500

Make an array size comparison used unsigned values

--------------------------------------------------------------------------------
f4034ed0bf | Nicholas Feinberg | 2015-06-06 18:30:28 -0700

Update kobold description (9757)
Remove a reference to saprovorousness; obsolete as of 17fcb76da48,
over a year ago.

--------------------------------------------------------------------------------
aa7f350f07 | gammafunk | 2015-06-06 19:50:28 -0500

Merge pull request #53 from amalloy/master
Simplify choice of dragons in Dragon's Call
--------------------------------------------------------------------------------
a339c0637c | Alan Malloy | 2015-06-06 17:17:04 -0700

Simplify choice of dragons in Dragon's Call

--------------------------------------------------------------------------------
efc790ad5c | Neil Moore | 2015-06-06 17:36:24 -0400

Don't warn on early AM melee.
We were giving the unskilled barehanded attack warning if the player
had any weapon, even a launcher, in inventory.  Require a melee weapon
for the warning now.

--------------------------------------------------------------------------------
28c56abb92 | Nicholas Feinberg | 2015-06-06 12:31:20 -0700

Improve monster speed display
Descriptions for monsters with variable speed (hell beasts,
small/large abominations) now mention this fact about them, and
also don't list the actual speed for any individual creature (to
encourage xv tediousness).

--------------------------------------------------------------------------------
bce57fcb7a | Nicholas Feinberg | 2015-06-06 12:13:10 -0700

Tweak mutant beast descriptions
Update obsolete descriptions & re-order facets before tiers.

--------------------------------------------------------------------------------
2a43720df1 | Nicholas Feinberg | 2015-06-06 12:13:10 -0700

Implement mutant beast attacks

--------------------------------------------------------------------------------
95d264ef8b | Nicholas Feinberg | 2015-06-06 12:13:10 -0700

Re-implement ox mbeast AC

--------------------------------------------------------------------------------
9adcf54b39 | Nicholas Feinberg | 2015-06-06 12:13:10 -0700

Re-implement mutant beast special abilities

--------------------------------------------------------------------------------
2a20e01165 | Nicholas Feinberg | 2015-06-06 12:13:10 -0700

Re-implement mutant beast resists
And rename 'bear' back to 'ox'.

--------------------------------------------------------------------------------
db00984718 | Nicholas Feinberg | 2015-06-06 12:13:10 -0700

Implement mutant beast sinv

--------------------------------------------------------------------------------
2006d9204c | Nicholas Feinberg | 2015-06-06 12:13:10 -0700

Fix mutant beast noises
Also remove hell beasts' extra cherub heads.

--------------------------------------------------------------------------------
c9f8b6a0f4 | Nicholas Feinberg | 2015-06-06 12:13:10 -0700

Re-implement BF_BAT

--------------------------------------------------------------------------------
04d5879bda | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Deghostify mutant beasts
Most features are missing in this version.

--------------------------------------------------------------------------------
4c0538e1a1 | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Fix pluralization of mutant beasts in the sidebar
Listed them all as the same type (e.g. "2 ghostfire beasts"),
even if they were of different tier and/or facets.

--------------------------------------------------------------------------------
6847ffeccc | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Display correct MR for mbeasts
In mon-info. (This should very rarely be relevant.)

--------------------------------------------------------------------------------
792da50f33 | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Fix tier specification for mbeasts
Accidentally broke this at some point.

--------------------------------------------------------------------------------
0cfb522bf9 | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Add descriptions for mutant beasts
Per tier & facet.

--------------------------------------------------------------------------------
2d724e7079 | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Shuffle around some COMPILE_CHECKs
so they're closer to the actual data.

--------------------------------------------------------------------------------
dd5c4ce9d0 | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Shuffle around mutant beast code
Enums & values to their own file, utility func to mon-util.cc.

--------------------------------------------------------------------------------
a03ad94766 | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Add generic mutant beast descriptions
And update the Box of Beasts'.

--------------------------------------------------------------------------------
c1b2f5ef19 | Nicholas Feinberg | 2015-06-06 12:13:09 -0700

Reject invalid beast facets

--------------------------------------------------------------------------------
30ad8733c4 | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Remove the mgen/mspec beast_facets fields
Use props instead.

--------------------------------------------------------------------------------
9992b3be6c | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Fix mutant beast monster info
The name was extremely broken, for reasons unclear to me.

Using props instead of i_ghost fields fixed it, and was probably
a better solution anyway.

--------------------------------------------------------------------------------
9d9c6fb015 | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Mutant beast tiles
An old, unused Denzi catoblepas tile. Probably temporary.

Corpse tile is just for completeness.

--------------------------------------------------------------------------------
5e12748a2f | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Allow the Box of Beasts to summon mutant beasts
As was always intended.

Correlation of Evo skill to HD is WIP.

--------------------------------------------------------------------------------
1f1f502ea8 | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Mutant beast facet functionality
Not too happy with 'ghost', but I'd really like a sInv facet,
and only having one attack flavor+type to work with limits my
options...

--------------------------------------------------------------------------------
0788147aee | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Add crude mutant beast &m functionality
Not fond of the syntax.

--------------------------------------------------------------------------------
0f11b5c7a2 | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Store mutant beast tier & facet in mon info

--------------------------------------------------------------------------------
bb013b39ae | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Display mutant beast info in their names
Very first draft.

--------------------------------------------------------------------------------
b20665a18d | Nicholas Feinberg | 2015-06-06 12:13:08 -0700

Scaffolding for mutant beasts
A new ghost demon & monster info field.

They're currently marshalled for all ghost demons, adding a byte
for each. This could be reduced to only marshalling for beasts
specifically, if we really wanted.

--------------------------------------------------------------------------------
a29b6f9790 | Nicholas Feinberg | 2015-06-06 12:13:07 -0700

Add the basics of the 'mutant beast' monster
It'll replace chimeras shortly.

--------------------------------------------------------------------------------
f67d6e41dd | Nicholas Feinberg | 2015-06-06 12:13:07 -0700

Remove chimerae
They're a fun idea, but in practice they never really added up to
more than the sum of their parts.

--------------------------------------------------------------------------------
b6b9ca9354 | Chris Campbell | 2015-06-06 19:06:46 +0100

Don't recolour monsters in LOS with always_show_exclusions (minmay)

--------------------------------------------------------------------------------
102900aa3b | Chris Campbell | 2015-06-06 18:19:10 +0100

Remove shard shrikes from a Depths vault (Bart)

--------------------------------------------------------------------------------
c2a165f7f9 | Nicholas Feinberg | 2015-06-05 23:10:09 -0700

Remove an incredibly spammy dprf

--------------------------------------------------------------------------------
d250d98208 | Neil Moore | 2015-06-05 23:00:48 -0400

Pluralise moth of wrath zombie correctly (amalloy)
We already handled this in the kill list, but nowhere else.  Use the
same list of qualifier-overriding suffixes in several other places,
most noticeably the monster list and "comes into view" messages.

Code that uses monster genera or species is unchanged, as none of those
can have such a suffix.

--------------------------------------------------------------------------------
87a8613a42 | Neil Moore | 2015-06-05 22:55:27 -0400

Constify some parameters.

--------------------------------------------------------------------------------
88f4863fa9 | Neil Moore | 2015-06-05 21:05:09 -0400

Fix compilation (doh)

--------------------------------------------------------------------------------
e906212dc3 | Neil Moore | 2015-06-05 21:04:24 -0400

Constify and clarify (?)

--------------------------------------------------------------------------------
483adb7cfc | Alan Malloy | 2015-06-05 21:01:07 -0400

Simplify logic for counting heads on summoned hydras
[committer's note: closes #52 pull request. -nfm]

--------------------------------------------------------------------------------
152ea2e2ad | Neil Moore | 2015-06-05 20:58:32 -0400

Show 'skill to remove penalty' to one decimal place (minmay)

--------------------------------------------------------------------------------
15cc1a2310 | Neil Moore | 2015-06-05 20:57:46 -0400

Don't round down shield skill to offset penalty.
It was returning 7.0 (should have been 7.2) for bucklers and spriggans.

--------------------------------------------------------------------------------
d996e2d27e | Neil Moore | 2015-06-05 20:01:05 -0400

Avoid losing monster item drops under Ashenzari (#8430)
We might taking a level excursion as a side effect of dropping the item
(god_id_item() -> ... -> ShoppingList::item_type_identified).  But that
lost the still-being-processed dead monster, since dead monsters are
only marshalled as a placeholder.  Keep the monster alive until we
are finished dropping its inventory.

There are probably other places where an excursion can happen while a
monster is in the middle of dying, resulting in similar bugs.  In
particular, #7983 is a similar report, but with Nemelex, not Ashenzari;
and #8187 with Beogh.

--------------------------------------------------------------------------------
cfffd63153 | Neil Moore | 2015-06-05 18:53:50 -0400

Refactor starting weapon upgrades.

--------------------------------------------------------------------------------
b7df1a9427 | Neil Moore | 2015-06-05 18:52:15 -0400

Fix reversed Fi weapon upgrade checks (wheals)
We were upgrading fighters to long swords, war axes, or tridents only if
they were too small to wield the upgraded weapon with a shield.

Also use PSIZE_TORSO rather than PSIZE_BODY, not that it matters for any
existing races (nagas and centaurs can always handle the upgrades).

--------------------------------------------------------------------------------
157759ab99 | Neil Moore | 2015-06-05 17:45:32 -0400

Don't remove all weapons/jewellery and melded armour on &r

--------------------------------------------------------------------------------
385ecc4fb8 | Neil Moore | 2015-06-05 16:04:20 -0400

Allow walking into invisible neutrals.
There was not even a message, because simple_monster_message requires
the monster to be visible.  Rather than revealing the neutrality of
the invisible monster, just let the attack happen if you couldn't see
it.

This is inconsistent with strict neutrals and good neutrals, where the
player will swap with a monster they can't see.  Perhaps we should make
all non-hostiles always visible instead?

--------------------------------------------------------------------------------
fc16dad4d3 | Corin Buchanan-Howland | 2015-06-05 10:26:03 -0400

Tweak new powered by death a bit
Lowered the duration; now that it triggers on every kill, getting ~40-70 hp
in regen per kill over 40 turns seems excessive.

Also preventing a bug where the effect could end prematurely when taking 11+
aut actions.

--------------------------------------------------------------------------------
56390e0c46 | Neil Moore | 2015-06-05 05:31:53 -0400

Remove PRIuSIZET.
It was causing warnings from -pedantic because of the %zu (or %Iu).

In the two places where we used it, we can be pretty sure the number
in question fits into an int, so just use %d and a cast instead.

--------------------------------------------------------------------------------
117de50f7c | Neil Moore | 2015-06-05 05:18:19 -0400

Fix several reversed no-XP checks (#9755)
Several problems:
  Most arena spawns were vetoed (unless arena::allow_zero_xp was on).
  Most monsters were excluded from objstat.
  The TARG_ENEMY direction chooser skipped XP-bearing monsters
    (but it appears that TARG_ENEMY isn't actually used).
  Gozag only goldified no-XP creatures.
  Plants were wiped, but XP-bearing creatures not, at game startup.

--------------------------------------------------------------------------------
57b473db0a | Neil Moore | 2015-06-05 05:13:53 -0400

Make saves less platform-dependent.
We were marshalling/unmarshalling two unions using their widest members
(item_def::plus2 and monster_info_base::number).  However, two union
members (item_def::net_placed and monster_info::is_active) were smaller
than that.  If you set a trapping net on a little-endian platform, that
would set the low (first) byte of plus2; then unmarshalling on a
big-endian platform would result in the low (second) byte of plus2 being
set instead, while net_placed still coincides with the first (now high)
byte. So on the new system net_placed may well be false.

Worse, in the case of monster_info::is_active, we didn't even initialise
the other bytes, meaning we were marshalling junk.

Make the union fields all the same width, and add comments that this
should always be so.  Because many of these unions mix signed and
unsigned values, there will still be issues on non-twos-complement
platforms.  We also assume that short is 16-bit and int 32-bit---the
fields will not all be the same width if that is not true.

Unfortunately, the previously-marshalled uninitialised bytes mean that
monster_info::is_active will very likely be true even when it shouldn't
have been.  We could fix this under the assumption that the game is
being loaded on the same platform where it was last saved, but since
the only result of not doing so is off-screen inactive ballistomycetes
appearing to be active (and since we would still screw up with old saves
from an opposite-byte-order platform), it's not worth the tag.

--------------------------------------------------------------------------------
0cd2dfe203 | Neil Moore | 2015-06-05 03:59:37 -0400

Don't push a freed string in Lua item.sub_type()

--------------------------------------------------------------------------------
990a8d8ef2 | Neil Moore | 2015-06-05 02:01:06 -0400

Don't count most monster classes as no-XP.

--------------------------------------------------------------------------------
3a74afbabf | Neil Moore | 2015-06-05 01:48:57 -0400

Don't shaft into teleport closets.
There was code to prevent that just as with hatches, but it doesn't
appear to have worked since 0.10.

--------------------------------------------------------------------------------
a8db1df4e2 | Nicholas Feinberg | 2015-06-04 21:36:50 -0700

Use slaysong's key consistently

--------------------------------------------------------------------------------
bd1319dc4a | Neil Moore | 2015-06-05 00:23:30 -0400

Correct another incorrect ballisto check.
All non-ballistomycete monsters were being considered "always safe".

<chequers> i managed to get to d:3 pressing only o and >

--------------------------------------------------------------------------------
16ca89ddce | gammafunk | 2015-06-04 23:16:28 -0500

Correct a monster test to include tentacles (|amethyst)

--------------------------------------------------------------------------------
479435f902 | gammafunk | 2015-06-04 23:12:56 -0500

Use correct logic for finding active ballistomycetes
Some tests in the refactoring in da61031 got inverted.

--------------------------------------------------------------------------------
8c1d57361f | gammafunk | 2015-06-04 23:12:50 -0500

Use the monster xp test function consistently

--------------------------------------------------------------------------------
da6103145d | gammafunk | 2015-06-04 21:16:28 -0500

Give piety only for kills granting xp and refactor xp checks
Now killing animated remains (zombies, skeletons, simulacra) doesn't
give piety, since it already doesn't give xp.

This commit refactors the tests for whether killing a monster gives xp,
putting the monster_type check for M_NO_EXP_GAIN in
mons_class_gives_xp() and the monster check in mons_gives_xp(). The
latter checks for monster-specific things like being summoned or a
neutral. mons_gives_xp expects an actor argument for the killer to check
for things like friendly kills or the player/an ally killing a monster
created friendly.

--------------------------------------------------------------------------------
21d49c6be8 | gammafunk | 2015-06-04 21:16:28 -0500

Mark some monsters created only through spells as granting no xp

--------------------------------------------------------------------------------
29d09cfc35 | gammafunk | 2015-06-04 21:16:28 -0500

Clean up firewood and active ballistomycete tests
Add mons_is_active_ballisto() and uses this and the firewood test
function in all relevant places.

--------------------------------------------------------------------------------
fa4c87f7da | gammafunk | 2015-06-04 21:16:27 -0500

Clean up Song of Slaying triggering and associated code
Do only relevant checks and use a key for the prop.

--------------------------------------------------------------------------------
9bfcc7af37 | gammafunk | 2015-06-04 21:16:27 -0500

Remove the unused kill type KILL_UNSUMMONED

--------------------------------------------------------------------------------
a399748562 | gammafunk | 2015-06-04 21:16:27 -0500

Reduce the putrid demonspawn monster heal and reformat
Heal 20hp on average, about 80% of a heal wounds effect, since it
triggers on every monster death.

--------------------------------------------------------------------------------
1cc541b22a | gammafunk | 2015-06-04 21:16:26 -0500

Refactor powered by death code
Use a key for the prop, move related code closer, simplify.

--------------------------------------------------------------------------------
ab67786314 | Alex Jurkiewicz | 2015-06-04 21:14:16 -0500

Rework Powered By Death.
Old PbD used corpses in LoS to determine regen strength, which
encouraged kiting and waiting in corpse LoS to heal up. The bonus was
strongest at the end of a fight which wasn't very interesting. Finally
it didn't worth with Gozag, which annoyed me.

New PbD works without corpses. On kill, PbD is activated for a random
number of turns (this is unchanged). Strength it reworked: it starts at
1 and (possibly) increments with each kill, decaying over time.

Note that new PbD starts and increases strength on any kill, not just
those that leave a corpse. This is a significant buff in low-corpse
areas and has been balanced by reducing the strength levels people will
reasonably be able to reach.

The current numbers are:
Duration: mutlevel*8 + 2d8.
Strength: Increases per-kill (with decreasing chance as number of stacks
          increases).

Monster PbD (putrid demonspawn) now also regenerates on any nearby
death, not just the creation of a corpse.

Commiter's Note: closes #15

--------------------------------------------------------------------------------
8afc29eb87 | Shmuale Mark | 2015-06-04 16:34:58 -0400

Make Sticks to Snakes take arrows from inventory.
The requirement to switch weapons to create a snake was mostly an
interface burden. Removing the time to switch weapons does it make it slightly
stronger, but at the same time Tm often doesn't even need to unwield them
to go into combat; instead it can just cast a form spell.

For simplicity the spell will not use your javelins. I don't think that
summoning a snake is exactly the most effective use of one of them, anyway.

--------------------------------------------------------------------------------
b9eea2b108 | Shmuale Mark | 2015-06-04 15:37:25 -0400

Apply AC before resists for cloud damage (theTower, minmay, PF).
minmay pointed out that this is more consistent with the behavior of other
sources of elemental damage since 0.6. theTower had been worried about
item destruction removal making fire/freezing clouds less relevant in
later game. PleasingFungus pointed out that we could kill two birds with
one stone here.

This is a slight buff to players without resistances, since
actor::apply_ac actually uses random2(AC+1) instead of random2(AC).

--------------------------------------------------------------------------------
8d00a4a1e1 | Shmuale Mark | 2015-06-04 15:18:42 -0400

Display all information about an item on ?/ (#2106).

--------------------------------------------------------------------------------
92e6b14b06 | Shmuale Mark | 2015-06-04 14:52:14 -0400

Refactor code surrounding get_item_description.

--------------------------------------------------------------------------------
b030186d37 | Shmuale Mark | 2015-06-04 13:19:41 -0400

Remove a pointless pair of functions.

--------------------------------------------------------------------------------
2b063f6caa | Shmuale Mark | 2015-06-04 13:01:28 -0400

Move "(Your skill..." onto a new line, with a one-space indent.
On 80x24, it gets wrapped in the middle, which looks odd.

This also rearranges append_weapon_stats to look more like its output.

--------------------------------------------------------------------------------
cdb9b4a51e | Shmuale Mark | 2015-06-04 12:35:47 -0400

Merge branch 'job_data'
Conflicts:
	crawl-ref/source/newgame.cc
	crawl-ref/source/ng-setup.cc

--------------------------------------------------------------------------------
162fd0c5b8 | Nicholas Feinberg | 2015-06-04 09:29:35 -0700

Merge pull request #42 from alexjurkiewicz/mindelay-help
Explicitly reveal mindelay skill to the player.
--------------------------------------------------------------------------------
113b09a014 | Nicholas Feinberg | 2015-06-04 08:40:30 -0700

Don't generate size-0 gold stacks
When exploding monsters with Gozag.

--------------------------------------------------------------------------------
1e4f09d6f0 | Nicholas Feinberg | 2015-06-02 20:53:50 -0700

Fix a duplicate quantity specifier
oops

--------------------------------------------------------------------------------
8d87e0ad18 | Nicholas Feinberg | 2015-06-02 20:37:16 -0700

Update TLA desc (9751)

--------------------------------------------------------------------------------
5ea18148ea | Nicholas Feinberg | 2015-06-02 20:03:06 -0700

Correct Apport & Ghostly Flames' descriptions

--------------------------------------------------------------------------------
e31eaaee95 | Nicholas Feinberg | 2015-06-02 19:56:44 -0700

Allow all scrolls to generate in stacks
As per the previous commit.

The relevant scrolls have been decreased in frequency by 10% to
keep the same mean frequency. Some vaults with ?acq have been
tweaked to keep the old behaviour (which was clearly expected for
some), but many are untouched; I'm not convinced it was very
important.

Odds of finding ?acq on D:4 (the earliest level it currently
appears on): 7.3% chance of one, 0.3% chance of a two-stack,
0.15% chance of a three-stack.

--------------------------------------------------------------------------------
6199e197df | Nicholas Feinberg | 2015-06-02 19:52:05 -0700

Remove stack generation restrictions from potions
To avoid spoileriness in the ID game.

!xp and !benemut can now spawn in stacks in normal generation;
!benemut is now 8% less common to compensate. (XP is already
vanishingly rare, outside vaults.)

Trivia: there's a 0.5% chance of finding !xp on D:1, a 0.05%
chance of finding a 2-stack, and a ~0.001% chance of finding a
3-stack - about one in eighty thousand. Get hunting!

--------------------------------------------------------------------------------
9cb03a7455 | Nicholas Feinberg | 2015-06-02 19:26:58 -0700

Make monsters indiscriminate about potions/scrolls
They'll now pick up all scrolls & potions regardless of type,
unless they don't drink any potions at all, in which case they
won't pick up the potions.

This should avoid unpleasant interactions with the ID game,
blessed be its name; may it long remain, unbesmirched by
accusations of 'archeoism'!

This removes the roughly 1/60 chance of a unique spawning with a
scroll, and increases the odds of uniques spawning with a potion
from 1/6 to 1/4 (odds of a usable potion go from 1/6 to 1/8).
Latter numbers are very tentative and subject to revision.

--------------------------------------------------------------------------------
9f11d92582 | Alan Malloy | 2015-06-02 18:41:59 -0400

Fix message when you become a white draconian
It used to say, 'a icy white colour'; now it uses 'an' instead.

[committer's note: closes #51 pull request. -nfm]

--------------------------------------------------------------------------------
950c96572a | Neil Moore | 2015-06-02 18:29:34 -0400

Don't give the wrong message when falling down stairs (minmay)
We said "back down the stairs".  We also marked the turn as ended
slightly earlier than we should have, but that had no apparent effect.

--------------------------------------------------------------------------------
1e3ea624d5 | Alex Jurkiewicz | 2015-06-03 07:48:20 +1000

Tweak Giant (Spiked) Club base delays.
Now require 18 & 24 skill respectively to reach mindelay (from 20 & 22)
which should give GCs a bit of a niche to be useful in.

--------------------------------------------------------------------------------
2dd280d5ad | Neil Moore | 2015-06-02 15:32:48 -0400

Add a missing full stop (minmay)
[skip ci]

--------------------------------------------------------------------------------
2aa3c8f217 | Neil Moore | 2015-06-02 15:12:19 -0400

Mention ~/.vim/ftdetect/ as an option in levdes.vim.
[skip ci]

--------------------------------------------------------------------------------
8a3fdf52fb | Neil Moore | 2015-06-02 15:12:14 -0400

Add vim indentation options to editor_tips.txt
[skip ci]

--------------------------------------------------------------------------------
fe29acdd7c | Alan Malloy | 2015-06-02 15:03:17 -0400

Create editor_tips.txt, with vim/emacs setup tips
[committer's note: closes #20 pull request. -nfm]

[skip ci]

--------------------------------------------------------------------------------
c5b4babc60 | Alan Malloy | 2015-06-02 15:03:12 -0400

Create a .dir-locals.el file for emacs users
[skip ci]

--------------------------------------------------------------------------------
2d00c63acb | Corin Buchanan-Howland | 2015-06-01 19:32:03 -0400

fix a typo (DrKe)

--------------------------------------------------------------------------------
6e8685c940 | Corin Buchanan-Howland | 2015-06-01 19:18:43 -0400

Update volcano weapon loot a little further
This commit tries to match the distribution slightly more to the usefulness
of the weapons being generated without favoring any of the major classes
over the others.

This will probably be replaced with a custom distribution at some point.

--------------------------------------------------------------------------------
0639cb00d8 | Chris Campbell | 2015-06-01 22:42:00 +0100

Typo fix

--------------------------------------------------------------------------------
c654e57f99 | Shmuale Mark | 2015-06-01 16:54:39 -0400

Make the changes pointed out by db_lint.
If no description is found, the game suggests that the item the player is
looking at may have been removed. This removes the need for keeping around
dead descriptions, while still hopefully preventing spurious bug reports.

--------------------------------------------------------------------------------
9ca6f169d9 | Shmuale Mark | 2015-06-01 16:54:37 -0400

Fix util/db_lint.
Add support for Ru and wrath/cloud/deck descriptions.

Another (unfortunate) change is that most "\n"s are replaced with ".*"s
because I just can't get newlines to work right in msysgit. It's possibly
better to be more whitespace invariant, I suppose.

--------------------------------------------------------------------------------
2ea913724e | Shmuale Mark | 2015-06-01 16:54:35 -0400

Tweak the deck of oddities desc.

--------------------------------------------------------------------------------
bb24cf58ed | Shmuale Mark | 2015-06-01 16:54:34 -0400

Inline.

--------------------------------------------------------------------------------
ef4880bea6 | gammafunk | 2015-06-01 12:40:11 -0500

Remove all of Pan (the unique) (wheals)
Pan took overly long to complete and was an unwanted source of too much
xp.

--------------------------------------------------------------------------------
9d39c9a61c | Chris Campbell | 2015-06-01 17:55:25 +0100

Remove teleport self from most monster spellsets
It remains just in a few uniques' sets (Maurice, Ribbit, Sonja).

--------------------------------------------------------------------------------
0bd69e5e13 | Chris Campbell | 2015-06-01 17:35:02 +0100

Remove some unused teleport self code

--------------------------------------------------------------------------------
a60d5894ac | Chris Campbell | 2015-06-01 17:29:08 +0100

Make all Abyss teleports delayed
Since teleporting now always pulls you into a new region. Also tweak some
teleport delay messages.

--------------------------------------------------------------------------------
694ce343c3 | Alex Jurkiewicz | 2015-06-01 23:45:00 +1000

Show skill level required for mindelay.
As well as showing weapon base & minimum delay on weapon inventory
screens, also show the skill required to reach minimum delay and
your current skill.

Thanks to PleasingFungus & amalloy for code help.

--------------------------------------------------------------------------------
bffdd7fee1 | Nicholas Feinberg | 2015-05-31 21:12:57 -0700

Marshall ghostdemon sinv in monster info
Causes Xv bugginess otherwise. Also, makes me cringe.

--------------------------------------------------------------------------------
bfa9b6a815 | Nicholas Feinberg | 2015-05-31 20:57:34 -0700

Remove a single-element union
Baffling.

--------------------------------------------------------------------------------
b75be8f356 | Nicholas Feinberg | 2015-05-31 20:16:16 -0700

Remove lost souls' XP (minmay)
No good reason for them to give XP. Also might increase player
suffering, which I'm pretty sure is their primary design purpose.

--------------------------------------------------------------------------------
b713c88187 | Nicholas Feinberg | 2015-05-31 19:10:08 -0700

Let deep dwarf player ghosts regenerate normally
No real reason that should persist after death, and it's just as
bad gameplay with player ghosts as with other non-regenerating
monsters.

--------------------------------------------------------------------------------
4d2fed2d5d | Nicholas Feinberg | 2015-05-31 17:34:25 -0700

Flaggify is_ghost_demon
And also tweak some nearby blood comments.

--------------------------------------------------------------------------------
abc46e64d1 | gammafunk | 2015-05-30 14:28:38 -0500

Add DrKe to CREDITS.txt and mailmap

--------------------------------------------------------------------------------
7fe0fb7fa5 | gammafunk | 2015-05-30 14:28:38 -0500

Give m&f weapons weight similar to other base weapon types in Volcanoes
...by adding morningstars with weight 20.

--------------------------------------------------------------------------------
f34b5057e2 | DrKe | 2015-05-30 14:28:07 -0500

Update Volcano weapon loot distribution
Spears have been removed since they have no equivalent to weapons
in the other base types, and the cumulative weights by base type
are now about the same. This shouldn't be a buff to the weapon
loot overall in light of the previous commit reducing lajatang
weight from 10 to 1.

Commiter's Note: Tweaked commit message style and line length. This
closes #47

--------------------------------------------------------------------------------
93bc3a633d | Nicholas Feinberg | 2015-05-29 23:37:25 -0700

Merge pull request #46 from drke2/patch-3
Add cloak to make_fiery_armour & swap lajatang/glaive weight.
--------------------------------------------------------------------------------
17b02a1e6b | drke2 | 2015-05-29 15:55:15 -0700

Add cloak to make_fiery_armour & swap lajatang/glaive weight.
The former and almost certainly the latter seem unintended.
--------------------------------------------------------------------------------
3d5a0d0e83 | Neil Moore | 2015-05-29 11:31:47 -0400

Improve RNG reproducibility.
We had been using std::shuffle since 0.16-a0-2333-g38cf1cd.  We passed
our custom RNG, but that wasn't enough to ensure reproducibility.  In
particular, two different implementations of std::shuffle might call the
RNG different numbers of times, or might use the results differently.
In particular, this meant that gcc (libstdc++) and clang (libc++) builds
had different behaviour given the same RNG seed.

Replace this with our own implementation again.  This is essentially
the same implementation as we had in 0.15, but improved to support
any structure providing random-access iterators.

--------------------------------------------------------------------------------
2cd07cdfeb | Neil Moore | 2015-05-29 11:10:11 -0400

Slightly improve a comment.

--------------------------------------------------------------------------------
e06b3cc73b | Brendan Hickey | 2015-05-28 22:47:17 -0400

Merge pull request #44 from amalloy/master
Reword description of Ashenzari skill boosts
--------------------------------------------------------------------------------
9df25cc04f | Brendan Hickey | 2015-05-28 22:46:38 -0400

Merge pull request #31 from noxdominus/patch-1
Update commands.txt ru final
--------------------------------------------------------------------------------
9aeafaed37 | Brendan Hickey | 2015-05-28 22:42:37 -0400

Merge pull request #43 from aappleby/master
Javascript client performance improvement.
--------------------------------------------------------------------------------
bda161f497 | Chris Campbell | 2015-05-28 20:04:30 +0100

Remove some vault messages
It looks like one of these never even appeared, and the other suggested that
the vault contained something particularly dangerous or hidden when it didn't
really.

--------------------------------------------------------------------------------
7c0cb9eb8c | Chris Campbell | 2015-05-28 19:58:24 +0100

Fix a basket of spiders

--------------------------------------------------------------------------------
7747787203 | Chris Campbell | 2015-05-28 14:24:51 +0100

Reword corrosion expiry message (agentgt)

--------------------------------------------------------------------------------
ccc65b04a3 | Chris Campbell | 2015-05-28 14:23:52 +0100

Remove Vampiric Draining backlash
Its days of causing incredible deaths were long-gone, since it could only ever
work by somehow trying to drain an empty space with an invisible demon in it.
RIP, "Aaaarggghhhhh!".

--------------------------------------------------------------------------------
0ba867e625 | gammafunk | 2015-05-27 15:10:06 -0500

Merge pull request #45 from amalloy/weapon-enums
Add SK_FIRST_WEAPON and SK_LAST_WEAPON enum values.
--------------------------------------------------------------------------------
a61c691685 | Alan Malloy | 2015-05-27 12:44:23 -0700

Add SK_FIRST_WEAPON and SK_LAST_WEAPON enum values.
Before this, the acquirement code had to implicitly know which
weapon types were first and last in the enum. This mirrors the
way other skill categories work, such as SK_LAST_MUNDANE.

--------------------------------------------------------------------------------
0aa41feb0c | Shmuale Mark | 2015-05-27 15:19:32 -0400

Fix a compile warning and a test failure.
The test was wrong; SK_WEAPON _should_ be available to even starts
with fixed weapons like Ar, because Felids need to properly get their UC
skill instead of Short Blades.

--------------------------------------------------------------------------------
b7c00b5331 | Shmuale Mark | 2015-05-27 15:09:26 -0400

Remove unused fields in delay_queue_item.

--------------------------------------------------------------------------------
f3f40069d0 | Shmuale Mark | 2015-05-27 15:09:24 -0400

Remove the code for killing toadstools in travel.
Fedhasites can pass through them, and everyone else never sees them.

--------------------------------------------------------------------------------
5d98226d02 | Shmuale Mark | 2015-05-27 15:09:22 -0400

Bring back autojuggle (almost).
If you have the auto_switch option set to true, attacking with a ranged
weapon, a weapon inscribed !a, or a non-weapon wielded will instead basically
perform the `'` command, if that would give you a melee weapon. This isn't
quite autojuggle because it's instead of the attack, rather than in
addition.

The auto_switch option was supposed to have this behavior, and it
originally did. It was removed sometime in UCC, incorrectly restored in
e76cbd8, and rightly removed in c42704, since the code had never worked.

--------------------------------------------------------------------------------
707e7bb37a | Shmuale Mark | 2015-05-27 15:09:20 -0400

Prompt on unintentional unarmed attacks.
The issue here is how to guess whether an attack is unintentional. The
main check here is whether the player has any UC skill. It also
checks whether you have any weapons in your inventory, since on D:1
it might be a good idea to melee something before any weapons are found.

Even if it does hit a false positive, it only prompts once, just like
attacking with a !a weapon.

--------------------------------------------------------------------------------
4fcf06e2c0 | Shmuale Mark | 2015-05-27 15:09:19 -0400

Don't wipe all map masks when a mimic is revealed.

--------------------------------------------------------------------------------
ba048d86a8 | Shmuale Mark | 2015-05-27 15:09:17 -0400

Allow reciting to unclean dumb natural monsters.
I think it's fair to say that if you can recite to a death drake, a giant
leech is similar enough in terms of being despised by Zin even if it
didn't choose to be that way.

More importantly, the monsters gave piety anyway. If it's decided that
you shouldn't be allowed to recite to giant leeches, they probably
shouldn't give piety either.

--------------------------------------------------------------------------------
8c2f42e09a | Shmuale Mark | 2015-05-27 15:09:15 -0400

Don't give a message when a monster avoids a shaft.

--------------------------------------------------------------------------------
c5f8fa8fac | Shmuale Mark | 2015-05-27 15:09:14 -0400

Let enslaved torpor snails operate as normal.
With the Enslave spell gone, there is much less possibility for abuse --
the wand is far more limited.

--------------------------------------------------------------------------------
0625bc4f38 | Chris Campbell | 2015-05-27 18:29:53 +0100

Don't vary slime wall strength with depth
It's maybe flavourful but not especially significant or worth the additional
complexity. Fixes the damage at a shallowish depth, since acid splashes now
deal more damage on average to players with all slots covered.

--------------------------------------------------------------------------------
d88b3707b2 | Chris Campbell | 2015-05-27 18:08:20 +0100

Fix slime walls being able to apply corrosion

--------------------------------------------------------------------------------
645555dc27 | Shmuale Mark | 2015-05-27 12:50:06 -0400

Standardise on using references to newgame_defs, not pointers.

--------------------------------------------------------------------------------
5991679764 | Chris Campbell | 2015-05-27 17:45:11 +0100

Remove crystal bolt as a possible Random Bolt result
It's particularly complicated and weird, and stands better as its own thing.

--------------------------------------------------------------------------------
5276a9c1d2 | Chris Campbell | 2015-05-27 17:40:19 +0100

Don't make monster legendary destruction cost HP
The HP cost is mostly just extra unnecessary complication on a spell that has a
large number of possible effects.

--------------------------------------------------------------------------------
1f2e48b2d7 | Shmuale Mark | 2015-05-27 12:25:02 -0400

Make removing a job simpler.
Deduce the list of non-starting jobs automatically, rather than keeping a
separate list.

--------------------------------------------------------------------------------
9dfefeca7c | Shmuale Mark | 2015-05-27 12:24:52 -0400

Move starting skills to data.

--------------------------------------------------------------------------------
17b0b87693 | Chris Campbell | 2015-05-26 21:33:59 +0100

Improve more spell descriptions

--------------------------------------------------------------------------------
a0dc0565bb | Chris Campbell | 2015-05-26 19:12:23 +0100

Reword and update spell descriptions
Again to make them phrased consistently and to fix problems with player versus
monster spells in some cases.

--------------------------------------------------------------------------------
34cd3a1f60 | Chris Campbell | 2015-05-26 18:59:05 +0100

Adjust corrosion messages (geekosaur)

--------------------------------------------------------------------------------
fdcf504e38 | Chris Campbell | 2015-05-26 18:59:05 +0100

Remove shock serpents' special-casing for Static Discharge

--------------------------------------------------------------------------------
0ff21069ba | Chris Campbell | 2015-05-26 18:59:04 +0100

Tweak yet more ability descriptions

--------------------------------------------------------------------------------
f9db7f251f | Chris Campbell | 2015-05-26 17:39:39 +0100

Don't give bat form a spellcasting penalty
Since it can't cast spells.

--------------------------------------------------------------------------------
33d7c100b9 | Chris Campbell | 2015-05-26 17:39:13 +0100

Adjust dispelling breath messaging

--------------------------------------------------------------------------------
e0c8ec544c | Chris Campbell | 2015-05-26 12:14:39 +0100

Fix spacing

--------------------------------------------------------------------------------
1268e0bce6 | Chris Campbell | 2015-05-26 12:14:39 +0100

Remove some unused monster spells
Frenzy, and Haste Plants.

--------------------------------------------------------------------------------
3e25b617bb | Neil Moore | 2015-05-25 20:07:23 -0400

Fix a changelog typo.

--------------------------------------------------------------------------------
2143632ee9 | Nicholas Feinberg | 2015-05-25 15:39:22 -0700

Changelog through 0.17-a0-1139-g49cbdf8

--------------------------------------------------------------------------------
49cbdf8586 | Nicholas Feinberg | 2015-05-25 14:43:42 -0700

Tweak unique wand distribution
They'll no longer re-roll when getting a wand they don't like,
meaning that late game uniques will be considerably less likely
to carry wands, and early game uniques (excepting Ijyb)
somewhat less likely.

This should fix the horde of "Ereshkigal with /tele" that people
have noticed. Sorry!

--------------------------------------------------------------------------------
5a53fdc90f | Nicholas Feinberg | 2015-05-25 14:32:57 -0700

Pull a function out of handle_behaviour

--------------------------------------------------------------------------------
5f1d5c7c87 | Nicholas Feinberg | 2015-05-25 14:32:57 -0700

Simplify ash penance/invisibility interaction
Insofar as this extremely subtle effect should exist at all, it
shouldn't have even more subtle interactions with 'monster
intelligence', much less treat an enum as a literal value.

Might be nice to add messaging.

--------------------------------------------------------------------------------
2553e725d5 | Chris Campbell | 2015-05-25 19:21:11 +0100

Make acid splashes ignore equipped slots for damage/corrosion
splash_with_acid no longer pays any attention to the number or type of
equipped items, or to the fur mutation. Both the corrosion chance and damage
roll are calculated as if having two empty slots under the old system (ignoring
the extra effect of cloaks on corrosion chance).

--------------------------------------------------------------------------------
883b9d1bda | Chris Campbell | 2015-05-25 19:06:25 +0100

Adjust corrosion source for *Corrode artefacts

--------------------------------------------------------------------------------
6d67369676 | Chris Campbell | 2015-05-25 19:06:25 +0100

Tweak some more ability descs

--------------------------------------------------------------------------------
47caa548e8 | Alan Malloy | 2015-05-24 21:47:33 -0700

Reword description of Ashenzari skill boosts
As previously written, it sounded like whole-body binding affected
the size of skill boosts, in addition to the "bound in armour"
bondage levels for specific slot groups, when actually whole-body
binding only affects piety gain.

--------------------------------------------------------------------------------
4d2b24f74b | Austin Appleby | 2015-05-24 21:46:14 -0700

Replace an expensive object-lookup-by-array-key with a preallocated array and a 
numeric lookup. Huge improvement in performance on low-end clients such as a 
Raspberry Pi.

--------------------------------------------------------------------------------
fb1399fb3e | Corin Buchanan-Howland | 2015-05-24 20:30:28 -0400

Take a step towards standardizing corrosion conditions
After some chat in ##crawl-dev, it seemed as though there was some
consensus that it'd be better to remove some of the odd conditions that
block certain corrosion sources, e.g. AF_CORRODE only applying if you
are wearing body armour. I've removed these sorts of conditions in favor
of corrosion applying no matter what you have equipped.

I didn't touch player::splash_with_acid, since it's doing a trade-off between
damage and corrosion, but it's probably worth revisiting after some
consideration. For jelly defensive acid, I chose to remove the wielding-a-
weapon condition so that even barehanded attacks can result in corrosion,
but I left in the condition that causes barehanded attacks to take acid
damage. If someone else wants to change that decision, I'm fine with it.

We also discussed renaming the corrosion status to make the way it works
more clear. There wasn't a clear choice for the rename, so I'm leaving
that alone for now.

--------------------------------------------------------------------------------
5dd40657e9 | Corin Buchanan-Howland | 2015-05-24 17:07:18 -0400

Lower *Corrode chance of triggering from 10% to 3%
10% was triggering too often, making items with the property unusable.

--------------------------------------------------------------------------------
874a54ac14 | Chris Campbell | 2015-05-24 20:35:21 +0100

Remove a blank line

--------------------------------------------------------------------------------
03ca44a7b4 | Chris Campbell | 2015-05-24 19:51:05 +0100

Reword and update ability descriptions
Use consistent phrasing for all ability descriptions, move some heavily
duplicated sacrifice descriptions out of the database and into code, try to
make descriptions applicable to both monsters and players in more cases (with
many exceptions) and adjust various incorrect and out-of-date descriptions.

--------------------------------------------------------------------------------
585484417a | gammafunk | 2015-05-23 22:04:09 -0500

Add edsrzf to mailmap and CREDITS.txt

--------------------------------------------------------------------------------
b802298dc2 | gammafunk | 2015-05-23 21:59:20 -0500

Merge pull request #41 from edsrzf/xom-curse-stimulation
Xom is no longer extra amused by cursed cloaks and gloves
--------------------------------------------------------------------------------
182471613b | Evan Shaw | 2015-05-24 14:29:38 +1200

Xom is not extra amused by cursed cloaks and gloves
These items used to prevent unequipping other items, but 0.14 changed that.

--------------------------------------------------------------------------------
ac09380f03 | Nicholas Feinberg | 2015-05-23 19:26:30 -0700

Merge pull request #40 from edsrzf/sticks-to-snakes-cursed
Sticks to snakes are always friendly
--------------------------------------------------------------------------------
fdd4ec31ab | Evan Shaw | 2015-05-24 13:40:55 +1200

Sticks to snakes are always friendly
This isn't a change in behavior; just a small simplification.

The old code summoned hostile snakes for cursed missiles, but there's no such
thing.

--------------------------------------------------------------------------------
2be1f753b4 | Chris Campbell | 2015-05-24 02:09:13 +0100

Remove an inaccurate comment

--------------------------------------------------------------------------------
6d3914c6f7 | Nicholas Feinberg | 2015-05-23 13:26:15 -0700

Re-shuffle a variable
ooooops

--------------------------------------------------------------------------------
ec16775f53 | Nicholas Feinberg | 2015-05-23 13:25:27 -0700

Shuffle a variable around
oops again

--------------------------------------------------------------------------------
c406eca7d8 | Nicholas Feinberg | 2015-05-23 13:24:44 -0700

Remove complex & unused speech code

--------------------------------------------------------------------------------
a59de97f8e | Nicholas Feinberg | 2015-05-23 13:24:30 -0700

Re-add some accidentally removed speech

--------------------------------------------------------------------------------
2ff98a8661 | Nicholas Feinberg | 2015-05-23 13:23:59 -0700

Cleanup some strange mon-speak code

--------------------------------------------------------------------------------
1b899f9d3b | Nicholas Feinberg | 2015-05-23 13:20:28 -0700

Add a default case (gammafunk)

--------------------------------------------------------------------------------
ebcb98e822 | gammafunk | 2015-05-23 15:05:50 -0500

Remove some unnecessary tags from Lab monster specs
It's not necessary to have basilisks and trapdoor spiders not leave
corpses in Labs regardless, but it matters even less now that they leave
inedible chunks.

--------------------------------------------------------------------------------
d63ab3c59a | Nicholas Feinberg | 2015-05-23 12:49:53 -0700

Simplify monster intelligence
Squash I_REPTILE into I_ANIMAL, I_INSECT and I_PLANT into
I_BRAINLESS, and I_HIGH and I_NORMAL into I_HUMAN.

Effects:
- Some difference in tracking ranges/pathfinding/forgetfulness.
- Formerly high-intelligence monsters no longer have an
  extra-high chance to guess invisible players' locations or
  better MR estimation abilities, and no longer have shaft &
  drowning-while-confused immunity.
- Monsters that miscast noisily will no longer sometimes think
  someone else made the noise.
- If Kirke porkalates something, and then you kill Kirke, whether
  or not that monster becomes friendly no longer depends on it
  having >= human intelligence.

--------------------------------------------------------------------------------
0372368345 | gammafunk | 2015-05-21 21:17:57 -0500

Tweak the shield offset of the orc warlord tile
It was too far to the right, causing visual artifcacts in WebTiles when
warlords with large shields moved around.

--------------------------------------------------------------------------------
ae93c2e9ef | gammafunk | 2015-05-21 21:05:27 -0500

Constify
It makes PleasingFungus happy

--------------------------------------------------------------------------------
1dfc19394f | gammafunk | 2015-05-21 21:05:27 -0500

Properly count items in shops for Objstat
A change in 1e85cf02 made unpurchased shop items have a 0 quantity in
mitm, with the original item stored in shop_struct.stock. This wasn't
accounted for in objstat's code, so it ommitted shop items in 0.16 and
0.17. We now look explicitely for valid shops and count the valid items
in stock.

--------------------------------------------------------------------------------
770ba1202b | Nicholas Feinberg | 2015-05-21 17:51:33 -0700

Merge pull request #39 from amalloy/master
Spelling
--------------------------------------------------------------------------------
1012d2856c | Alan Malloy | 2015-05-21 17:47:46 -0700

Spelling

--------------------------------------------------------------------------------
19bd5742df | Chris Campbell | 2015-05-21 21:37:41 +0100

Tweak some spell descriptions

--------------------------------------------------------------------------------
92c31d1ab5 | Chris Campbell | 2015-05-21 21:37:21 +0100

Reword and adjust some species and background descriptions

--------------------------------------------------------------------------------
19f515785e | Shmuale Mark | 2015-05-21 10:19:48 -0400

Merge pull request #37 from alexjurkiewicz/sustat
Rename Sustain Abilities to Sustain Attributes.
--------------------------------------------------------------------------------
b322039f89 | Alex Jurkiewicz | 2015-05-21 13:42:05 +1000

Handle old saves with SustAb in wiz-dump

--------------------------------------------------------------------------------
be8b66436e | Neil Moore | 2015-05-20 20:32:01 -0400

Pass an item to c_assign_invletter callback (#9734)
We were passing the item as light userdata (essentially an opaque pointer),
meaning we couldn't actually call clua item methods on it.

--------------------------------------------------------------------------------
fa8d219606 | Neil Moore | 2015-05-20 20:20:19 -0400

Hush a warning.
The initialisation and all uses of "entry" here are protected by
is_unrandom_artefact, but not all optimisation levels are smart
enough to figure that out.

--------------------------------------------------------------------------------
a40c89914c | Chris Campbell | 2015-05-20 22:23:10 +0100

Make fire elementals lavamphibious instead of flying, allow them to cross water
And remove a vault that relied on the old behaviour.

--------------------------------------------------------------------------------
28fe365db5 | Chris Campbell | 2015-05-20 22:22:27 +0100

Don't make air elementals submerge in air randomly
It didn't actually do much other than cause a lot of message spam (except for
apparently giving them a secret chance of gaining maxhp!).

--------------------------------------------------------------------------------
54f0177ccc | Chris Campbell | 2015-05-20 22:21:23 +0100

Adjust some default message colouring

--------------------------------------------------------------------------------
4138549b7c | Chris Campbell | 2015-05-20 21:58:47 +0100

Let abyss-only monsters use stairs
None of these monsters seem particularly problematic when allowed to follow
players out of the abyss, they're just not supposed to show up via corruption.

--------------------------------------------------------------------------------
67a8d53c0f | Chris Campbell | 2015-05-20 19:13:48 +0100

Let starcursed mass screams work on unintelligent monsters
They can still hurt the minds of brainless things because ~*~magic~*~

--------------------------------------------------------------------------------
7ad60fa829 | Chris Campbell | 2015-05-20 19:06:07 +0100

Remove an intelligence check for monsters extinguishing sticky flame
Just don't let flying monsters dip into water to extinguish it. Not likely
to be noticeable for anything other than perhaps harpies and spriggan riders.

--------------------------------------------------------------------------------
187b126959 | Chris Campbell | 2015-05-20 18:59:54 +0100

Remove beam.smart_monster
It appears to have not done anything for the last 7 years (since 487e54d8bfa3).

--------------------------------------------------------------------------------
eb833c34c2 | Chris Campbell | 2015-05-20 18:58:27 +0100

Don't prompt when stumbling around in a sanctuary would let you swap with a 
monster

--------------------------------------------------------------------------------
987bdd87d8 | Chris Campbell | 2015-05-20 17:52:57 +0100

Make some base species monsters NO_POLY_TO

--------------------------------------------------------------------------------
d7713aaefb | Eino Keskitalo | 2015-05-20 11:32:38 +0300

Update README.md
Generally, update server information, paths and where to send which 
contributions.



Adding pull requests as a contribution mechanism (perhaps even the preferred 
one?) would be good (to process.txt too).
--------------------------------------------------------------------------------
0b3cd89bf9 | Nicholas Feinberg | 2015-05-19 19:45:06 -0700

Just call confused monsters 'confused'
Alternate commit title: 'remove bewilderment'

--------------------------------------------------------------------------------
c664a5b746 | Chris Campbell | 2015-05-19 22:23:37 +0100

Make wizmode spell memorisation instant and less restricted
Allow memorising spells without having enough levels or spell slots, or while
confused/brainless/berserk.

--------------------------------------------------------------------------------
cbc66c7ac9 | Chris Campbell | 2015-05-19 21:37:41 +0100

Don't list unobtainable items in the stash tracker

--------------------------------------------------------------------------------
553a6203ce | Chris Campbell | 2015-05-19 21:09:11 +0100

Remove a reference to Lava Orcs

--------------------------------------------------------------------------------
1d06212888 | Chris Campbell | 2015-05-19 21:08:48 +0100

Make some "unobtainable" items slightly more so

--------------------------------------------------------------------------------
c2e90c0c8a | Chris Campbell | 2015-05-19 21:08:18 +0100

Fix spacing

--------------------------------------------------------------------------------
6b5d0f11cb | Chris Campbell | 2015-05-19 17:38:59 +0100

Improve CBoE description, prevent use at 0 MP

--------------------------------------------------------------------------------
d0d39a27dd | Chris Campbell | 2015-05-19 17:07:53 +0100

Remove some obscure int checks
Make Sif Muna channeling check piety and invoc for success rate like other
invocations, and don't require 2 int or more to use a CBoE.

--------------------------------------------------------------------------------
6badaef61c | Chris Campbell | 2015-05-19 17:03:21 +0100

Fix a vault tag typo (#9731)

--------------------------------------------------------------------------------
b9e5cdf736 | Alex Jurkiewicz | 2015-05-19 16:46:20 +0100

Make potion petition price more variable.
Gozag is the only god you see the exact piety cost of abilities. With
the removal of petition price scaling the cost of petition became
constant... too constant. This change keeps average prices the same but
adds in a significant random component.

--------------------------------------------------------------------------------
a2a74e4516 | Chris Campbell | 2015-05-19 13:07:34 +0100

Remove some niche effects of dexterity
Make the chance of doors creaking depend just on stealth skill, and the chance
of avoiding blade/net traps depend just on evasion.

--------------------------------------------------------------------------------
bf07bef39f | Chris Campbell | 2015-05-19 12:39:30 +0100

Simplify steam resistance
Make one level of fire resistance act the same as one level of steam
resistance, and cap steam resistance at 2 so that steam resistance is always
either 0, 2 or negative.

--------------------------------------------------------------------------------
97eef23fd8 | Chris Campbell | 2015-05-19 12:04:42 +0100

Remove Black Mark's vampiric effect, unify and simplify effects
Simplify Black Mark (both the Ds mutation and the monster enchantment) by
having it only apply one extra effect at a time instead of two, removing the
vampiric effect (which wasn't very noticeable on monsters and was fairly
uninterestingly powerful on players).

Unify the remaining effects across monsters and players, applying either
antimagic, weakness or draining, and make the player version of the effects
apply at full strength to partially compensate for the loss of vampiricism.

--------------------------------------------------------------------------------
dcfc0f3746 | Chris Campbell | 2015-05-19 11:59:33 +0100

Tweak Bolt of Draining description
To not make it say it drains life since that's closer to implying that it's
vampiric.

--------------------------------------------------------------------------------
990397274c | Nicholas Feinberg | 2015-05-18 22:29:55 -0700

Don't die when acquiring armour for felids (9729)
As occurs in certain questionably-designed vaults, notably Dis in
10-Rune Sprint.

(Water for elephants...?)

--------------------------------------------------------------------------------
9ed0da6b83 | Alex Jurkiewicz | 2015-05-18 23:45:00 +1000

Rename Sustain Abilities to Sustain Attributes.

--------------------------------------------------------------------------------
243345b52a | Chris Campbell | 2015-05-17 23:15:56 +0100

Simplify steam cloud damage
Don't make it depend on cloud decay.

--------------------------------------------------------------------------------
2cf64ac292 | Chris Campbell | 2015-05-17 22:37:52 +0100

Don't give rCorr from the dragonskin cloak
And improve its description, assuming it's made of dragons rather than
draconians (hence providing rN+ but not rCorr).

--------------------------------------------------------------------------------
f7e7309317 | Chris Campbell | 2015-05-17 22:37:28 +0100

Fix a steam resistance check

--------------------------------------------------------------------------------
bbd358a834 | Chris Campbell | 2015-05-17 22:36:53 +0100

Give monsters with steam resistance immunity to steam clouds

--------------------------------------------------------------------------------
5f707f45c3 | Chris Campbell | 2015-05-17 21:31:09 +0100

Allow Mu and Vp to get trove_treasure_island

--------------------------------------------------------------------------------
f90e4d4148 | Chris Campbell | 2015-05-17 18:22:46 +0100

Remove a jelly vault
Since the jellies in it can no longer eat the items in the middle once you've
seen them.

--------------------------------------------------------------------------------
6204fc69a1 | Chris Campbell | 2015-05-17 18:22:33 +0100

Rename a jelly vault and remove unnecessary uniq tag

--------------------------------------------------------------------------------
ca789ff948 | Chris Campbell | 2015-05-17 18:21:47 +0100

De-rune some doors
Both these vaults have transparent walls and don't need the runed doors as
warning.

--------------------------------------------------------------------------------
1cac84f4cd | Chris Campbell | 2015-05-17 18:17:21 +0100

Reword a Mummy self-restoration message (|amethyst)

--------------------------------------------------------------------------------
92ad48164c | Chris Campbell | 2015-05-17 00:32:20 +0100

Add a missing comma to some unrand inscriptions
If an unrand had a brand and an INSCRIP line but no additional inscribed
properties, the usual comma to separate brand inscription from other
properties was missing (so the Captain's Cutlass displayed {speed disarm}
instead of {speed, disarm}.

--------------------------------------------------------------------------------
d39b2959a5 | Chris Campbell | 2015-05-17 00:32:20 +0100

Allow unrandarts to entirely replace their brand inscription
And apply this to a few unrandarts whose special effect is (sort of) an
upgraded version of a regular brand - Flaming Death's sticky flame,
Firestarter's inner flame, Chilly Death's flash freeze and Snakebite's curare.

--------------------------------------------------------------------------------
4d5e28b2c7 | Chris Campbell | 2015-05-17 00:32:20 +0100

Don't place Zot-unique monsters in Depths (gammafunk)
Draconians have already spilled out a bunch, but the other inhabitants should
stay restricted to their branch. Also remove a mysterious usage of Zot
skeletons in a Dis vault.

--------------------------------------------------------------------------------
77a30126a6 | Chris Campbell | 2015-05-17 00:32:19 +0100

Make the Sceptre of Torment a staff
For consistency with the Sceptre of Asmodeus (and because it's notable for the
on-hit effect rather than its melee damage).

--------------------------------------------------------------------------------
ee9c8cdd44 | Chris Campbell | 2015-05-17 00:32:19 +0100

Don't generate Maxwell's armour as cursed

--------------------------------------------------------------------------------
49fcbbd4ff | Chris Campbell | 2015-05-17 00:32:19 +0100

Give some more unrands INSCRIP lines

--------------------------------------------------------------------------------
2a5bf20b4b | Chris Campbell | 2015-05-17 00:32:19 +0100

Give the boots of the Assassin an INSCRIP line, adjust description
Sort of an ugly INSCRIP line, but hopefully enough to prompt people into
looking at the item description.

--------------------------------------------------------------------------------
f8d4a8829f | Chris Campbell | 2015-05-16 21:41:40 +0100

Merge pull request #36 from mwvdev/master
Fixed a typo in tutorial description.
--------------------------------------------------------------------------------
83ab481499 | mwvdev | 2015-05-16 22:34:03 +0200

Fixed a typo in tutorial description.

--------------------------------------------------------------------------------
d39b90b8e5 | Nicholas Feinberg | 2015-05-16 10:37:22 -0700

Clarify (|amethyst)

--------------------------------------------------------------------------------
bededf62d2 | Nicholas Feinberg | 2015-05-16 10:34:18 -0700

Overlooked changelog entries

--------------------------------------------------------------------------------
acf8c0f5fd | Neil Moore | 2015-05-16 13:27:04 -0400

Tweak the changelog.
Add the recent jelly change, and retranslate a name back to Dwarven.

[skip ci]

--------------------------------------------------------------------------------
550a151846 | Nicholas Feinberg | 2015-05-16 10:15:41 -0700

Changelog through 0.17-a0-1056-g838d5c0

--------------------------------------------------------------------------------
838d5c06c6 | Chris Campbell | 2015-05-16 00:02:46 +0100

Revert "Let jellies eat the horn of Geryon"
As elliptic and minmay point out, it's really an artefact that just isn't
marked as an actual artefact, so should probably be treated that way by
jellies.

--------------------------------------------------------------------------------
eb6a47804c | Chris Campbell | 2015-05-15 23:46:14 +0100

Reduce the horn of Geryon's gold value
Since item value hasn't been a factor in score for a long time, and it's now an
XP evoker rather than a critical item anyway. Important for Jiyva piety when
it's sacrificed! Also remove a relatedly out-of-date comment.

--------------------------------------------------------------------------------
be079f984a | Chris Campbell | 2015-05-15 23:43:36 +0100

Improve XP evoker descriptions
Fix an mpr that shouldn't have been an mpr, and improve wording.

--------------------------------------------------------------------------------
ca15f1fa18 | Chris Campbell | 2015-05-15 22:59:44 +0100

Don't let jellies eat items that the player has seen
In the same way that other monsters can't pick up seen items.

--------------------------------------------------------------------------------
fca70661cb | Chris Campbell | 2015-05-15 22:52:07 +0100

Let jellies eat the horn of Geryon
Since it's no longer required to enter Hell.

--------------------------------------------------------------------------------
ebfa3d7ff3 | Chris Campbell | 2015-05-15 22:27:29 +0100

Don't keep good god piety if excommunicated forcibly
By piety decay or casting Necromutation, etc.

--------------------------------------------------------------------------------
975de07070 | Alan Malloy | 2015-05-15 22:06:03 +0100

Treat abandon+worship as direct switching, for E/Z/1.
The religion screen isn't clear about *how* you should switch
between the good gods, so we should really treat aXp the same
as just p.

(Closes #35, squashed and fixed some saved compat code - MarvinPA)

--------------------------------------------------------------------------------
09670291d4 | Chris Campbell | 2015-05-15 18:36:56 +0100

Remove a reference to reaching weapons hitting submerged monsters

--------------------------------------------------------------------------------
1643f28938 | Chris Campbell | 2015-05-15 18:26:44 +0100

Fix Ru sacrifice initialisation in some old save transfers (|amethyst)

--------------------------------------------------------------------------------
4e152616c8 | Chris Campbell | 2015-05-15 18:03:43 +0100

Fix a future crash on load
Ru sacrifices wouldn't have been correctly unmarshalled with TAG_MAJOR_VERSION
!= 34.

--------------------------------------------------------------------------------
cde0bcc1b7 | Shmuale Mark | 2015-05-14 18:26:20 -0400

Move starting weapon choices to data.

--------------------------------------------------------------------------------
a09e34d9da | Chris Campbell | 2015-05-14 21:39:54 +0100

Allow apporting the Orb in Sprint
Since there apporting it across the map really was an actual tech (but now
apporting starts the orb run).

--------------------------------------------------------------------------------
8d8e8ba20d | Chris Campbell | 2015-05-14 21:39:54 +0100

Tweak a message, adjust spacing

--------------------------------------------------------------------------------
cf30891fbb | Chris Campbell | 2015-05-14 21:39:53 +0100

Fix a warning

--------------------------------------------------------------------------------
2e44b56fb8 | Alan Malloy | 2015-05-14 21:27:56 +0100

Move start_orb_run to orb.cc (wheals)
(Closes #34 - MarvinPA)

--------------------------------------------------------------------------------
e8a0205277 | Alan Malloy | 2015-05-14 21:26:28 +0100

Start the Orb run when you apport the Orb
It's still on the ground and needs to be picked up to win,
but Orb-run spawns start as soon as you move the Orb.

This is to make it obvious that it's not advantageous to repeatedly
apport the Orb all the way to an up-stair.

--------------------------------------------------------------------------------
0f3adacbb9 | Alan Malloy | 2015-05-14 21:26:16 +0100

Rename char_direction, and add a fourth state.
It wasn't really a direction, but a 3-part game-state. The fourth
state I added can't be reached yet, but a future commit will use
it when the player apports the Orb of Zot but hasn't yet picked it up.

--------------------------------------------------------------------------------
c3c75f29e5 | Chris Campbell | 2015-05-14 20:58:06 +0100

Adjust a few Orb checks
Since it's no longer possible to drop the Orb, there's no need to check for
standing in its halo.

--------------------------------------------------------------------------------
5ac590e5a7 | Shmuale Mark | 2015-05-14 15:11:16 -0400

Move (most) job equipment to data.

--------------------------------------------------------------------------------
43a26ba00c | Chris Campbell | 2015-05-14 19:16:23 +0100

Make confused movement into lava/deep water waste a turn instead of causing 
drowning
Also makes cancelled movement while confused behave consistently regardless of
cause (bumping into a wall, targeting the player's square, cancelling because
of drowning) and not apply movement effects such as barbs, escaping
constriction, etc.

--------------------------------------------------------------------------------
b5f9104a9a | Chris Campbell | 2015-05-14 18:56:33 +0100

Fix some movement prompts incorrectly displaying while confused

--------------------------------------------------------------------------------
bf358b4619 | Alan Malloy | 2015-05-13 21:22:46 -0500

Reword spellbook description, so non-spells don't sound spell-y
Commiter's note: closes #33

--------------------------------------------------------------------------------
1dcf396ab6 | Chris Campbell | 2015-05-14 00:20:35 +0100

Stop the Serpent of Hell breathing at NONEXISTENT FOE

--------------------------------------------------------------------------------
06872b5b19 | Chris Campbell | 2015-05-14 00:20:34 +0100

Tone down the Serpent of Hell slightly
Replace the Geh serpent's hellfire with flame clouds, reduce the Dis serpent's
reaching damage, and reduce HD somewhat across the board, mainly to reduce the
damage of the triple-breaths (with the side-effect of slightly reducing the
AF_FIRE and AF_COLD damage of the Geh and Coc serpents).

--------------------------------------------------------------------------------
e2fb0a9454 | gammafunk | 2015-05-13 18:13:16 -0500

Further remove Zot Defense items
Remove the zotdef Webtiles code and bits in the syntax docs, the message
databases, and various comments.

--------------------------------------------------------------------------------
aef1b4b7b1 | gammafunk | 2015-05-13 18:13:16 -0500

Unbrace

--------------------------------------------------------------------------------
f471bdd318 | Alan Malloy | 2015-05-13 18:13:16 -0500

Inline mons_block_immob at wheals's suggestion

--------------------------------------------------------------------------------
f5d3f99dcb | Alan Malloy | 2015-05-13 18:11:39 -0500

Remove zotdef code.
It's been disabled for a while; it was time for it to die.

Commiter's Note: closes #32

--------------------------------------------------------------------------------
52760c3e0b | Chris Campbell | 2015-05-13 23:24:39 +0100

Don't mark monster Abjuration as targeted
Fixes some monster cast messaging when abjuring.

--------------------------------------------------------------------------------
626f6d62b8 | Chris Campbell | 2015-05-13 21:16:19 +0100

Fix reversed logic (wheals)

--------------------------------------------------------------------------------
b352c61f78 | noxdominus | 2015-05-13 23:03:16 +0300

Update commands.txt
Finalization descriptions.
--------------------------------------------------------------------------------
6e7842d572 | Shmuale Mark | 2015-05-13 15:36:05 -0400

Move species recommendations to data.

--------------------------------------------------------------------------------
85893534f2 | Shmuale Mark | 2015-05-13 15:12:41 -0400

Move starting stats to data.

--------------------------------------------------------------------------------
8b7f50aa3f | Zaba | 2015-05-13 21:43:20 +0300

Merge pull request #29 from noxdominus/patch-1
Update commands.txt ru
--------------------------------------------------------------------------------
b760d21255 | Shmuale Mark | 2015-05-13 14:31:51 -0400

Merge pull request #28 from noxdominus/patch-2
Update commands.txt
--------------------------------------------------------------------------------
524587169f | Shmuale Mark | 2015-05-13 14:28:53 -0400

Move job names to data.

--------------------------------------------------------------------------------
2293e1108c | Chris Campbell | 2015-05-13 19:19:50 +0100

Don't allow opening or closing doors while confused
It seems reasonable that confusion would prevent manipulating doors, and
allowing opening/closing them had a very awkward interface - only working with
O and C rather than allowing movement to open doors still, and giving various
misleading messages.

--------------------------------------------------------------------------------
2bb7b0ff64 | Shmuale Mark | 2015-05-13 14:12:27 -0400

Move job abbreviations to data.

--------------------------------------------------------------------------------
b646de452e | Chris Campbell | 2015-05-13 19:08:03 +0100

Disable ctrl+attacks while confused
Being able to always try and attack while confused (instead of potentially
stumbling away) by ctrl+attacking was very awkward interface-wise, often being
a better choice than normal movement (and requiring prompts telling the player
about it in the case of movement while confused and at risk of drowning).

It's still allowed when in tree form, since trying to move normally while
stationary and confused is forbidden. It also now has the same chance of
picking your current square and just doing nothing that movement does.

--------------------------------------------------------------------------------
d123a470eb | Chris Campbell | 2015-05-13 18:44:01 +0100

Adjust randart SInv description

--------------------------------------------------------------------------------
e46c44ef3a | Chris Campbell | 2015-05-13 18:44:01 +0100

Rename some ARTP enums to match their visible names

--------------------------------------------------------------------------------
e683cc4b79 | Shmuale Mark | 2015-05-13 13:35:59 -0400

Remove the Flight spell.
There remain sources of the effect in potions, rings, randarts, boots,
species, and the Tornado spell. The spell is the weakest link here: it has
very little cost (only the investment to cast a level 3 spell), can be
renewed infinitely unlike more interesting ones, and can be kept up
permanently at little cost but with an annoying interface.
Even without the redundancy, Flight is rarely interesting in combat, and
spells do non-combat effects poorly.

Book of Dreams gets Silence, which seems vaguely thematic. Book of the
Dragon gets Flame Tongue, on |amethyst's suggestion. Book of the Sky gets
Lightning Spire. Book of Air gets nothing; it's already a well-rounded
book, and plenty of starting books have only 5 spells.

--------------------------------------------------------------------------------
24a433fb23 | gammafunk | 2015-05-13 11:58:04 -0500

Add a note about the Github repo to README.md for Gitorious users
The Gitorious repo will be frozen on May 15th, so this well help inform
people about the switch. We can remove it from the github repo after
then.

--------------------------------------------------------------------------------
3d875c2111 | Shmuale Mark | 2015-05-13 09:36:46 -0400

Checkwhite.

--------------------------------------------------------------------------------
7cce488b79 | Shmuale Mark | 2015-05-13 09:06:52 -0400

Make dropping take 10 aut per item rather than 8.
In general it's probably best that actions with no reason to be fast or
slow take 10 aut.

Also makes some related code use the new adjust_time_taken param on
wield_weapon.

--------------------------------------------------------------------------------
efca2e5e8f | Shmuale Mark | 2015-05-13 09:06:50 -0400

Remove a now-incorrect line.

--------------------------------------------------------------------------------
059ff24e04 | Shmuale Mark | 2015-05-13 09:06:48 -0400

Refactor _autoswitch_to_ranged.

--------------------------------------------------------------------------------
1ec2a3bb04 | gammafunk | 2015-05-12 23:21:35 -0500

Correct Kirke's death message, simplify, and reformat
Only print the message about her hogs if any are visible.

--------------------------------------------------------------------------------
b853645dd4 | gammafunk | 2015-05-12 23:09:56 -0500

Allow delayed final effect messages to be std::string and simplify
These used to be strings but were changed to accept char * for reasons
related to mpr(), but this change was not necessary. Change this back
and simplify Pikel's and Kirke's death messages.

--------------------------------------------------------------------------------
414ce7a947 | Alan Malloy | 2015-05-12 23:05:14 -0500

Check for MUT_NO_LOVE before making Pikel's slaves neutral
Commiter's note: This closes pull request #30.

--------------------------------------------------------------------------------
fa70bdd0ad | Chris Campbell | 2015-05-13 00:32:10 +0100

Tweak some more randart inscriptions
So that Foo means "provides constant Foo", +Foo means "can be evoked for Foo",
and *Foo means "does Foo when some trigger is met".

--------------------------------------------------------------------------------
75b412225c | Chris Campbell | 2015-05-13 00:26:12 +0100

Make *Drain cause draining on unequip rather than on taking damage
(And allow it to generate again).

--------------------------------------------------------------------------------
5a5279a27e | Chris Campbell | 2015-05-13 00:22:47 +0100

Give new randart properties clearer names
Using something a bit more like the existing conventions for abbreviations.

--------------------------------------------------------------------------------
bd2e49e3f5 | Chris Campbell | 2015-05-13 00:21:03 +0100

Skip removed ARTPs in the wizmode tweak menu

--------------------------------------------------------------------------------
b2305a14e1 | Chris Campbell | 2015-05-12 21:16:16 +0100

Remove the unused ARTP_TWISTER

--------------------------------------------------------------------------------
d7ec75e0f6 | Chris Campbell | 2015-05-12 21:16:16 +0100

Simplify

--------------------------------------------------------------------------------
f1695769fe | Neil Moore | 2015-05-12 16:14:23 -0400

Don't fail uniquegen test when generating no monster.
D's random monster list now contains MONS_NO_MONSTER, replacing spores.
Rather than failing the test when that happens, retry up to 10 times
until we get an actual monster.

--------------------------------------------------------------------------------
798c2ec7a1 | Corin Buchanan-Howland | 2015-05-12 15:30:48 -0400

Stop generating LifeHungry
After further thought, I think that having it inflict a long-term status
is a mistake. I'll rework this to be drain-on-unwield instead when I have
time, but for now I'm just going to turn the property off.

--------------------------------------------------------------------------------
84388fdcfe | reaverb | 2015-05-12 14:28:12 -0400

Remove giant spores from natural generation
Giant spores and ballistomycetes require some minor tedium to defeat
(tracking down all ballistomycetes and killing them) and don't create
many tactical decisions.

The general idea of "stationary monster which threatens squares outside
its LOS via. reproduction" is possibly salvageable but the current
implication doesn't work.

Fedhas remains unchanged.

--------------------------------------------------------------------------------
b61c28c421 | Neil Moore | 2015-05-12 10:20:57 -0400

Return a correct exit status from .travis/apt.pl.
The same fix as 0.17-a0-679-geef6664, to the other script.  An example
of the problem, where apt.pl should have failed, but exited with status
0 mod 256, so the rest of the build proceeded without the correct
compiler:
    https://travis-ci.org/crawl/crawl/jobs/62224828

--------------------------------------------------------------------------------
6eb4b4004d | Chris Campbell | 2015-05-12 13:01:58 +0100

Allow faerie dragon armour to generate with *Tele
It doesn't especially conflict with the Enchantress's theme like -Cast would,
and there are tons of artefact properties that don't work for monsters.

--------------------------------------------------------------------------------
83123156cb | Chris Campbell | 2015-05-12 13:01:46 +0100

Don't let amulets of clarity get ARTP_CONFUSING
Probably rN+ items also shouldn't get draining and rCorr shouldn't get
corrosion, but those at least aren't completely nullified by the resist.

--------------------------------------------------------------------------------
95b2ebd6e4 | Chris Campbell | 2015-05-12 12:28:39 +0100

Make faith useless under Gozag
Thematically, Gozag just doesn't care about anything that's not gold, and
gameplay-wise faith wasn't really possible to make work in a reasonably
simple and consistent way given Gozag's piety model.

--------------------------------------------------------------------------------
e0cefab403 | Chris Campbell | 2015-05-12 11:57:41 +0100

Make Jorgrun a non-deep dwarf, let him regen HP
Non-regeneration isn't a good property for monsters to have generally.

--------------------------------------------------------------------------------
185d377400 | Chris Campbell | 2015-05-12 11:57:40 +0100

Tweak Joseph description

--------------------------------------------------------------------------------
e445d5e682 | reaverb | 2015-05-11 23:52:42 -0400

Clarify a line when targeting Hexes (Pollen Golem)
This still has some potential for improvement - for example, |amethyst
suggested using color to make the XY% stand out more, although finding
colour(s) which don't make incorrect implications about how good or bad
different success rates are is hard.

--------------------------------------------------------------------------------
b5fa8d734b | Corin Buchanan-Howland | 2015-05-11 21:48:31 -0400

Prevent poison from triggering new negative randart properties
It was never intended to be triggered by repeated hits from poison.

--------------------------------------------------------------------------------
2e31166f17 | Corin Buchanan-Howland | 2015-05-11 21:44:37 -0400

Fix a function return type.

--------------------------------------------------------------------------------
1e7f82d4be | Corin Buchanan-Howland | 2015-05-11 21:32:06 -0400

Fix typo in Confusing implementation
Pun intended?

--------------------------------------------------------------------------------
141a081b9e | Corin Buchanan-Howland | 2015-05-11 21:15:27 -0400

New negative randart property: Confusing
When taking damage, you have a (number of Confusing artefacts worn) in 100
chance of being confused.

--------------------------------------------------------------------------------
f072c893a8 | Corin Buchanan-Howland | 2015-05-11 21:09:08 -0400

New negative randart property: LifeHungry
When taking damage, you have a 10% chance for each LifeHungry artefact to
trigger and drain you.

--------------------------------------------------------------------------------
cfb13b42fd | noxdominus | 2015-05-12 04:08:26 +0300

Update commands.txt

--------------------------------------------------------------------------------
1d7c702d5e | noxdominus | 2015-05-12 04:03:25 +0300

Update commands.txt

--------------------------------------------------------------------------------
cf6e620331 | Corin Buchanan-Howland | 2015-05-11 20:59:16 -0400

New negative randart property: Entropy
Entropy is a negative property which gives you a 10% chance of receiving
corrosion when taking a hit.

--------------------------------------------------------------------------------
ada8a91670 | Neil Moore | 2015-05-11 15:39:06 -0400

Simplify.
Closes #27 pull request, in a different way.

--------------------------------------------------------------------------------
837272553f | Neil Moore | 2015-05-11 12:57:10 -0400

Fix formatting further (wheals)
And constify.

--------------------------------------------------------------------------------
15e8808082 | Neil Moore | 2015-05-11 02:56:42 -0400

Fix an apparently backwards minor tag check.
Not just reversing the comparison, so that we can also handle saves that
were transferred past the tag while the check was backwards.

An example crash:
  http://dobrazupa.org/morgue/stevs/crash-stevs-20150511-054526.txt

--------------------------------------------------------------------------------
f45d1aadf7 | Neil Moore | 2015-05-10 23:31:55 -0400

Improve starting note grammar (amalloy)

--------------------------------------------------------------------------------
dbc383262e | Neil Moore | 2015-05-10 23:11:52 -0400

Constify, rename, and format.

--------------------------------------------------------------------------------
dc8efd3159 | Alan Malloy | 2015-05-10 23:06:44 -0400

Make constriction messages use 'your' when appropriate
[committer's note: closes #26 pull request. -nfm]

--------------------------------------------------------------------------------
b95a06e4cf | Nicholas Feinberg | 2015-05-10 16:31:28 -0700

Another default rc improvement
Stop when something invisible misses you.

--------------------------------------------------------------------------------
ec879f88c5 | Nicholas Feinberg | 2015-05-10 16:28:42 -0700

Improve default ghost moth rc settings
Don't continue autoexploring/resting while they drain you.

--------------------------------------------------------------------------------
f8a484a5ea | Corin Buchanan-Howland | 2015-05-10 16:35:55 -0400

Refactor Ru sacrifice offers and allow sac delay stacking
At some point rejecting a sacrifice stopped having a stacking penalty,
probably by mistake. I'm re-adding it.

--------------------------------------------------------------------------------
2e9402c302 | Chris Campbell | 2015-05-10 17:53:42 +0100

Don't enter the Vaults with <

--------------------------------------------------------------------------------
e0bab47de6 | Chris Campbell | 2015-05-10 17:50:06 +0100

Remove an outdated comment

--------------------------------------------------------------------------------
bd0804f052 | Chris Campbell | 2015-05-10 17:50:06 +0100

Don't print a message about walking into plants when stationary

--------------------------------------------------------------------------------
4154171d03 | Corin Buchanan-Howland | 2015-05-09 21:45:20 -0400

Revert "Allow god umbras to override ring of shadows umbra (DrKe)"
This reverts commit 741a2a3bce43e091e5e0679daf0e32f387c8bd5f.
Turns out it wasn't needed.

--------------------------------------------------------------------------------
741a2a3bce | Corin Buchanan-Howland | 2015-05-09 21:05:14 -0400

Allow god umbras to override ring of shadows umbra (DrKe)
Previously, the ring of shadows umbra stealth bonus of 150% would always
take precidence. Now, Yred/Dith's umbra stealth multipliers are used if
they are larger than the ring's bonus, and the ring's bonus is used
otherwise.

Gods can be more powerful than items, and it seems silly that putting on
a source of umbra could lower your stealth.

--------------------------------------------------------------------------------
5fbcf4c191 | Corin Buchanan-Howland | 2015-05-09 20:58:23 -0400

Remove the form of the Storm card that summons a twister
The twister was largely unhelpful, and could easily be fatal to the player.
It also meant the card had two entirely different outcomes, and which one
was chosen was determined by coinflip.

--------------------------------------------------------------------------------
a95afb0b22 | Neil Moore | 2015-05-09 14:15:22 -0400

Fix delays further.
The last commit made a failed drop attempt take a turn.  Fix that by
restoring some of the removed code, and copying that code to the
single-drop case.  However, don't make the unequip step in a multi-turn
item drop free (which is why I had removed the restored code in the
first place).

--------------------------------------------------------------------------------
027da756e6 | Neil Moore | 2015-05-09 13:45:29 -0400

Don't take extra turns/time when dropping worn armour/jewellery.
Dropping worn armour took 6.8 (rather than 5.8), and dropping
equipped jewellery took 2.3 (rather than 1.3).  Doing so as
part of multidrop took the correct amount of time for armour,
but the wrong amount for jewellery (1.8 rather than 1.3: we
accidentally made the ring removal free, but then charged an
extra turn for the drop that followed).

--------------------------------------------------------------------------------
9c42a8b72a | Neil Moore | 2015-05-09 13:02:01 -0400

Don't crash when multidropping worn armour with Etheric Cage on.

--------------------------------------------------------------------------------
ce4d669fca | Neil Moore | 2015-05-09 10:00:43 -0400

Dump vault list by default in trunk.
Though they may be useless to the average player, they are very helpful
for debugging when the player died and therefore can't upload a save.
Anyone who's playing trunk implicitly signed up to help with debugging,
so hopefully will not mind the minor spam.

An alternative would be to list vaults in the .lst item list file.

This reverts (in spirit) f91635a2d71d92476111a420509680508365f8c4.

--------------------------------------------------------------------------------
20dd4deab7 | Nicholas Feinberg | 2015-05-08 23:12:42 -0700

Don't create autoexplore insta-death traps (9706)
One time in four, apparently.

There's a lot of very odd things about this vault - among other
things, the description of running from gap to gap has not been
reasonable for years, at least...

--------------------------------------------------------------------------------
28502f3771 | Nicholas Feinberg | 2015-05-08 23:04:18 -0700

Update ?brand desc (8800)

--------------------------------------------------------------------------------
f8e1f1dbba | Brendan Hickey | 2015-05-08 22:16:03 -0400

Allow cleaving while confused.
Wahaha says:
  I always thought axes cleaved when confused because that is what I 
intuitively assumed. Not cleaving feels non-intuitive. You're swinging an axe 
around, confused or not, you're going to cleave. In less flavor related and 
more logical terms, I expect cleaving to work when confused because confusion 
changes the direction of the attack. There's nothing that indicates that it 
also cuts off both sides of the axe swing and only makes it hit a single tile. 
I think most people would assume that
  cleaving works when confused. Is there a good reason to disable cleaving? Yes 
it makes confusion less dangerous when using axes, but this is not a 
significant balance problem by any means, if weapons being good in different 
situations is a balance problem in the first place. Keeping logical 
interactions between mechanics is important; in this case cleave + random 
attack direction = random cleave direction.

See: https://crawl.develz.org/tavern/viewtopic.php?f=8&t=16124

--------------------------------------------------------------------------------
dfefa6e930 | elliptic | 2015-05-08 22:14:21 -0400

Fix some builds.
I don't seem to need this include myself, but apparently other people do?

--------------------------------------------------------------------------------
e314e46258 | elliptic | 2015-05-08 13:42:07 -0400

Make Cigotuvi's Embrace a little less silly with vast numbers of corpses.
Previously it boosted AC and EV by (0.5 + pow/100) * C, where C is the number
of corpses. Now it boosts AC and EV by (0.5 + pow/100) * (9*C)^(1/2) instead.
Thus this is a buff to the spell when used with fewer than 9 corpses and a
nerf when used with more than 9 corpses.

--------------------------------------------------------------------------------
4c53656ba2 | Chris Campbell | 2015-05-08 18:31:49 +0100

Fix a wizmode message when unequipping a stack of items

--------------------------------------------------------------------------------
d3d859414d | Nicholas Feinberg | 2015-05-07 21:21:05 -0700

Changelog through 0.17-a0-963-gaa5423c
Squarelos section is a WIP.

--------------------------------------------------------------------------------
aa5423c5cc | elliptic | 2015-05-07 23:10:59 -0400

Add you.temp_mutation() to clua.

--------------------------------------------------------------------------------
2f53b3f9c1 | Chris Campbell | 2015-05-07 23:50:06 +0100

Give animated dead their own message on expiry
Rather than having them disappear in a puff of smoke. Also make sticks to
snakes expiry less exciting and colourful.

--------------------------------------------------------------------------------
7f685e38f7 | Neil Moore | 2015-05-07 17:05:32 -0400

Don't move tentacles under DIS_MON_ACT.

--------------------------------------------------------------------------------
cd115d12c3 | Neil Moore | 2015-05-07 17:05:08 -0400

Make DIS_CONFIRMATIONS work for a few more prompts.
Make it count as answering yes to the armour, jewellery, and slow
reading delays.

Originally intended to fix some abyss bot test failures:
  https://travis-ci.org/crawl/crawl/jobs/61364556
but those have since been fixed in other ways.

--------------------------------------------------------------------------------
763492a30d | Shmuale Mark | 2015-05-07 16:28:50 -0400

Update (hopefully fix) the Abyss bot.

--------------------------------------------------------------------------------
192111199e | elliptic | 2015-05-07 12:19:48 -0400

Add a lua hook to answer simple yesno prompts automatically.
For example, adding the lua chunk

function c_answer_prompt(prompt)
  if prompt == "Die?" then
    return false
  end
end

to your rcfile will make you automatically cheat death in wizard or
explore mode.

--------------------------------------------------------------------------------
a3519be698 | Shmuale Mark | 2015-05-06 15:03:21 -0400

Give monster Haunt the same summon weights as player Haunt.
The number of summons is 2-3 instead of 2-4 to compensate for the higher
odds of stronger monsters.

--------------------------------------------------------------------------------
df7b2b12c9 | Shmuale Mark | 2015-05-06 14:51:53 -0400

Remove goliath beetles from vaults (and the game).
Having them spawn only inside vaults is arguably the worst of both worlds
-- the player sees them often enough to be annoyed, but not enough to get
used to the annoyance.

Vault appearances were replaced by other slow monsters, other bug-themed
monsters, or sometimes nothing (if they were an option in a list). Orb
beetles get turned into orb golems. erik_ogre got removed since it was a
really weird vault. Rod of the swarm gets doubled chance of getting a spider.
The enum is kept around as a genus monster for the two remaining beetles.

--------------------------------------------------------------------------------
33fb2cc26c | Shmuale Mark | 2015-05-06 12:43:19 -0400

Move AuxAttackType to melee_attack.cc, from the header.

--------------------------------------------------------------------------------
d8a1dc811a | Shmuale Mark | 2015-05-06 12:37:27 -0400

Future-proof an integer overflow check.
It's not particularly likely that item_def::quantity will be changing
types, but there's no harm done.

--------------------------------------------------------------------------------
e0d9283203 | Shmuale Mark | 2015-05-06 12:27:51 -0400

Fix the fireworks test.

--------------------------------------------------------------------------------
d22cf68b7b | Shmuale Mark | 2015-05-06 12:24:00 -0400

Use a message channel.

--------------------------------------------------------------------------------
3e962ac8c6 | Shmuale Mark | 2015-05-06 12:18:09 -0400

Fix racist memorisation prompt (#9689).

--------------------------------------------------------------------------------
18787398d2 | Nicholas Feinberg | 2015-05-06 08:01:17 -0700

Refactor cloud dissipation
The only gameplay effect is that player-made storm clouds out of
LOS no longer fire lightning at four times the rate of those in
LOS.

--------------------------------------------------------------------------------
825eb3baa2 | Shmuale Mark | 2015-05-06 10:53:53 -0400

Remove some (hopefully) unused code.
It handled stacked unstackable items, and the only use case it gave was
for monsters quivering multiple non-missile weapons, which no longer
happens. I'm not sure what was up with chunks, since those are stackable
and shouldn't even get to this point.

Add an ASSERT so that if this does break something it will complain
loudly.

--------------------------------------------------------------------------------
67dfc587eb | Shmuale Mark | 2015-05-06 10:49:19 -0400

Simplify and split feat_destroys_item.
And add an 's' at the end of its name, to make it clearer that it
has no side effects.

Removes unused support for features only destroying some items, which
was previously used to make lava destroy only scrolls, and deep water only
abyssal runes of Zot. It's not worth having code for something that seems
like a bad idea anyway.

--------------------------------------------------------------------------------
adf1afefbf | Shmuale Mark | 2015-05-06 10:06:40 -0400

Rename and simplify feat_virtually_destroys_item.
It now takes being a merfolk/octopode into account, so they can apport
items into deep water and Gozag gold that falls into deep water won't go
into their pockets for them.

--------------------------------------------------------------------------------
1856e96862 | Nicholas Feinberg | 2015-05-05 20:59:05 -0700

Unbrace (sort of)

--------------------------------------------------------------------------------
601bd79921 | Chris Campbell | 2015-05-05 23:15:39 +0100

Add a missing TAG_MAJOR_VERSION comment
For a to-be-removed unrand.

--------------------------------------------------------------------------------
52a14e0d0b | elliptic | 2015-05-05 17:49:43 -0400

Merge branch 'squarelos-0.17'

--------------------------------------------------------------------------------
450667adff | Alan Malloy | 2015-05-05 17:11:59 -0400

Subject/verb agreement
[committer's note: closes #24 pull request -nfm]
[skip ci]

--------------------------------------------------------------------------------
85fd701fbc | Chris Campbell | 2015-05-05 22:07:27 +0100

Don't let hostile summoned TRJs create jelly spawns

--------------------------------------------------------------------------------
58b152823e | Alan Malloy | 2015-05-05 22:00:24 +0100

Allow > or < to move through a passage of golubria.
Sometimes you can end up standing on one, but previously the only way to
trigger it was to walk off and back on. Now you can press < or > as well.

--------------------------------------------------------------------------------
625054582e | Chris Campbell | 2015-05-05 21:52:34 +0100

Reduce alligator bands to size 2
Rather than 2-3, which is probably a little too mean.

--------------------------------------------------------------------------------
9cb62d81a5 | Chris Campbell | 2015-05-05 20:54:00 +0100

Remove plain mummy death curses
They encouraged just avoiding killing them, which is particularly annoying
gameplay when the monster itself is slow and unlikely to be threatening.
The item curse itself was also very unlikely to be relevant, except maybe
in Ziggurats which isn't really a good enough reason to keep them elsewhere.

--------------------------------------------------------------------------------
9dc79d6725 | Chris Campbell | 2015-05-05 20:46:42 +0100

Remove boring beetles
They were another slow melee-only monster, and their digging ability didn't
actually make them interesting in practice - it was more likely to just
cause annoyances chasing them down as they dig out the level, or to just be
used in a few joke vaults.

--------------------------------------------------------------------------------
23668633fa | Chris Campbell | 2015-05-05 20:45:20 +0100

Remove baby alligators
They weren't very noticeable or particularly different from other t-glyph
monsters. Alligators still sometimes come in bands, now containing 2-3 regular
alligators instead of 1 alligator with 2-4 babies.

--------------------------------------------------------------------------------
ee9363c05e | Chris Campbell | 2015-05-05 20:34:56 +0100

Move Monstrous Menagerie into the Grand Grimoire
It's vaguely the summonings equivalent of Poison Arrow, and definitely strong
enough to merit a place in the school's high-level book instead of being more
common.

Move Summon Mana Viper out of Hinderance to replace MM in Summonings (and
don't replace it with anything in the book of Beasts).

--------------------------------------------------------------------------------
ae8c4507ad | Chris Campbell | 2015-05-05 19:29:21 +0100

Remove Abjuration spell, lower Aura of Abjuration to L5
And move Aura out of the Grand Grimoire to take Abjuration's place in the
book of Summonings.

--------------------------------------------------------------------------------
e38982524c | Chris Campbell | 2015-05-05 18:49:04 +0100

Remove curse skulls from a Zig statue vault
Since they're not stationary (they still appear in another pillar vault).

--------------------------------------------------------------------------------
11a89955dd | gammafunk | 2015-05-04 19:47:17 -0500

Fix up Objstat header in the first output column
to include "Item" or "Monster" as appropriate.

--------------------------------------------------------------------------------
1e1d351a71 | Neil Moore | 2015-05-04 14:50:19 -0400

Remove items from shopping list when abandoning Gozag (#9685)
Also avoid a crash when identifying an item type that was on your
shopping list from an abandoned Gozag shop.  This will happen once when
identifying an item type that might be on the shopping list, to handle
old saves where the shopping list wasn't updated immediately.

--------------------------------------------------------------------------------
fed7cf2ea3 | miserium | 2015-05-04 14:23:46 -0400

Copy tilemaps in Android builds (#9702)
Modified the Makefile for Android builds so that it correctly copies the
generated tilemaps to the dat/tiles directory during the build.

--------------------------------------------------------------------------------
b8a8128f01 | Chris Campbell | 2015-05-04 19:20:52 +0100

Add an option to disable autofight prompts when not yet in melee range

--------------------------------------------------------------------------------
0d36bb94e1 | Chris Campbell | 2015-05-04 18:40:10 +0100

Reduce the chances of placing unrands in Crypt ends

--------------------------------------------------------------------------------
62754f6b24 | Chris Campbell | 2015-05-04 18:40:10 +0100

Fix cryptofortress_bobbens placing extra high-level loot
bad0f68e4 unintentionally made this vault place 3 potential unrands or
Necronomicons, instead of just one.

--------------------------------------------------------------------------------
5a0d6aded0 | Chris Campbell | 2015-05-04 18:40:10 +0100

Remove items from some Hell vaults

--------------------------------------------------------------------------------
d57862adbd | Chris Campbell | 2015-05-04 18:40:10 +0100

Correctly mark some chaotic unrands as disliked by Zin
The plutonium sword and Maxwell's etheric cage can both cause chaotic effects
through use, rather than just when being unequipped like other contam items.

--------------------------------------------------------------------------------
22480f67ae | noxdominus | 2015-05-04 12:44:08 -0400

Update ru/commands.txt
[committer's note: closes #22 pull request -nfm]

--------------------------------------------------------------------------------
3abfa7ca5a | Neil Moore | 2015-05-04 12:03:40 -0400

Sort save browser properly.
It was supposed to be sorted by XP first, then by name.  But we stopped
storing XP in the char chunk, meaning it has been sorted by
(descending!) name for a long time.

Now sort by character experience level, and then by ascending name.
Perhaps there should be an option to sort by name only.

--------------------------------------------------------------------------------
d5c8ab6fff | Neil Moore | 2015-05-04 12:03:40 -0400

Make ? work on the title screen.
It hasn't for as long as I can remember.

--------------------------------------------------------------------------------
8908ebf985 | Neil Moore | 2015-05-04 12:03:40 -0400

Don't display help when selecting the 54th save.

--------------------------------------------------------------------------------
47d84a0b43 | Neil Moore | 2015-05-04 12:03:40 -0400

Don't duplicate shops in stash search (#9165)
This partially reverts commit e3cf528e6f3c5de0bc8ad189e8c5cc87ed1da3b3.

--------------------------------------------------------------------------------
1a4b8f7d02 | Neil Moore | 2015-05-04 12:03:38 -0400

Don't try to show an obsolete item field in crawl-gdb.py

--------------------------------------------------------------------------------
c6f4cb35b9 | Alex Jurkiewicz | 2015-05-04 01:47:30 -0400

Support Yama LSM security requirements for ptrace.
On modern linux systems you can only ptrace children without the
debuggee explictly allowing it, so make sure we do so when starting gdb.

[committer's note: closes #21 pull request -nfm]

--------------------------------------------------------------------------------
fa4b38d6e7 | Neil Moore | 2015-05-04 01:42:17 -0400

Don't pretend Cygwin is Linux.

--------------------------------------------------------------------------------
8914353be5 | Nicholas Feinberg | 2015-05-03 09:39:32 -0700

Add a runtime check for spellbook ordering
And fix a few that were out of order.

--------------------------------------------------------------------------------
2b6fd5108f | Brendan Hickey | 2015-05-03 10:22:28 -0400

Fix waiting bug in autofight warning code.
This fixes a bug in %git 70609ef79b3 that MarvinPA flagged.

How to tickle the bug:
Enable autofight_wait
Wield a !a weapon
Look at some monsters, but don't stand adjacent to them
Hit tab
Decline the prompt

Expected behavior:
No time will pass

Actual behavior:
Time passes

--------------------------------------------------------------------------------
36eb389edc | Neil Moore | 2015-05-02 00:31:32 -0400

Fix transferred negawands and hyperwands.

--------------------------------------------------------------------------------
3e33c8f1e6 | Neil Moore | 2015-05-02 00:13:41 -0400

Don't let monsters zap empty wands down to -32768.
Not fixing existing super-drained wands in transferred saves.

--------------------------------------------------------------------------------
63610f1da0 | Nicholas Feinberg | 2015-05-01 21:11:02 -0700

Stop handing out stacks of spears (9695)
As the ticket notes, this looks like it was a holdover from when
spears were throwable.

--------------------------------------------------------------------------------
a6690104b5 | Brendan Hickey | 2015-05-01 22:25:45 -0400

Clumsy Crypt floor tile variations {bh}

--------------------------------------------------------------------------------
ea31ab0b52 | Brendan Hickey | 2015-05-01 22:15:00 -0400

Remove unused crypt floor tiles.

--------------------------------------------------------------------------------
d753fea32a | Brendan Hickey | 2015-05-01 22:09:28 -0400

Update crypt floor tiles {CanOfWorms}

--------------------------------------------------------------------------------
2807436645 | Neil Moore | 2015-05-01 20:53:16 -0400

Always run tests in the same order.
It was being determined by the OS directory order, which is
arbitrary.

--------------------------------------------------------------------------------
63a5c37f5d | Neil Moore | 2015-05-01 20:45:25 -0400

Remove a ZotDef test.
Since ZotDef is on its way to being an ex-thing.

--------------------------------------------------------------------------------
386f35f292 | Neil Moore | 2015-05-01 20:43:49 -0400

Shorten tests.
Cut the number of level-generations in half for the tests bounce,
bounce2, rune-gen, and shoals-hut.  Also cut the number of generated
items in half for item_curse.

This is an attempt to eliminate timeouts in Travis-CI testing.

--------------------------------------------------------------------------------
3ae1e53843 | noxdominus | 2015-05-01 20:00:50 -0400

Update skills.txt
[committer's note: closes #19 pull request -nfm]
[skip ci]

--------------------------------------------------------------------------------
49d4bbfad6 | Neil Moore | 2015-05-01 19:59:05 -0400

Mark restore abilities as known.
For the "last unided potion" logic.

--------------------------------------------------------------------------------
c9cc07a97f | Alan Malloy | 2015-05-01 19:57:14 -0400

Remove potion of restore abilities from unrecognised item list (#9694)
[committer's note: closes #20 pull request -nfm]

--------------------------------------------------------------------------------
f962065f41 | Chris Campbell | 2015-05-01 21:10:05 +0100

Remove a depth check from a vault
Since immolation hasn't blown up players for a long time.

--------------------------------------------------------------------------------
dbb6f31860 | Chris Campbell | 2015-05-01 21:08:49 +0100

Remove obsolete handling for zapping rods while confused

--------------------------------------------------------------------------------
13b8b7f2a5 | Chris Campbell | 2015-05-01 21:07:59 +0100

Remove potions of decay from vaults
Oops.

--------------------------------------------------------------------------------
d0b83643da | Chris Campbell | 2015-05-01 20:58:32 +0100

Update lugonu_bribe
Nemelex doesn't care about items any more.

--------------------------------------------------------------------------------
c611b8fa13 | Neil Moore | 2015-05-01 12:13:08 -0400

Add new source files to Android build (rockygargoyle)

--------------------------------------------------------------------------------
249456b288 | gammafunk | 2015-04-30 22:05:20 -0500

Fix compilation and reformat

--------------------------------------------------------------------------------
f5b01ff67c | Alex Jurkiewicz | 2015-04-30 21:40:20 -0500

Update random altar god distribution.
Change the logic of how gods are chosen so that only specific branches
use a non-random distribution. Xom can appear anywhere randomly, of
course, and Jiyva/Lugonu only show up where they're meant to.

--------------------------------------------------------------------------------
519ace1547 | Alex Jurkiewicz | 2015-04-30 21:38:50 -0500

Remove the +9 bonus EV cap for Mf & Te.
The effect of removing this cap is very small -- few games hit it and
not by much when they do.

<chequers> !lg * te current / ev>54
<Sequell> 5/5906 games for * (te current): N=5/5906 (0.08%)
<chequers> !lg * mf current / ev>49
<Sequell> 6/7832 games for * (mf current): N=6/7832 (0.08%)

<chequers> !lg * te current ev>54 s=ev
<Sequell> 5 games for * (te current ev>54): 2x 55, 2x 59, 71
<chequers> !lg * mf current ev>49 s=ev
<Sequell> 6 games for * (mf current ev>49): 3x 51, 58, 59, 56

--------------------------------------------------------------------------------
5cce1253a8 | noxdominus | 2015-04-30 19:19:03 -0700

Update skills.txt

--------------------------------------------------------------------------------
863cd0925e | Alan Malloy | 2015-04-30 19:13:43 -0700

Adjust summoning titles for followers of good gods
Followers of TSO should probably not be Hellbinding.

(Instead, they'll do some Worldbinding and Planerending. (c)
Hangedman, 2014.)

--------------------------------------------------------------------------------
e043e27616 | Nicholas Feinberg | 2015-04-30 18:55:54 -0700

Shave VS (9693)
Remove Vine Stalker inherent fur mut.

Introduced by 68f34999d5dcbf.

--------------------------------------------------------------------------------
b972770884 | Nicholas Feinberg | 2015-04-30 18:35:49 -0700

Restore an overlooked changelog entry

--------------------------------------------------------------------------------
a64138431f | Nicholas Feinberg | 2015-04-30 17:42:29 -0700

Changelog through 0.17-a0-888-g439e22d

--------------------------------------------------------------------------------
439e22d062 | Shmuale Mark | 2015-04-30 18:12:38 -0400

Speed up queen ants (dpeg).

--------------------------------------------------------------------------------
9a4375b65f | Shmuale Mark | 2015-04-30 18:12:37 -0400

Prompt before casting Swiftness for Chei worshippers.
But not before casting Haste, because of this "you only get penance when
the effect occurs" stuff. IMO Chei shouldn't be OK with casting Haste at
thin air, but there would have to be some thought on how to avoid
triggering the conduct twice, once on spell cast and once on beam hit.

--------------------------------------------------------------------------------
fae3c2814e | Shmuale Mark | 2015-04-30 18:12:35 -0400

Shrink loop variables' scope.
"i, j, k - these global loop variables are throwbacks to my BASIC past, and
 have caused me no end of trouble." -- Linley Henzell, 1997

--------------------------------------------------------------------------------
a6e3a8012a | Shmuale Mark | 2015-04-30 18:12:34 -0400

Let spell miscasts cause the dust to glow a weird colour.

--------------------------------------------------------------------------------
b660efaca9 | Neil Moore | 2015-04-30 17:27:38 -0400

Adjust for MUTFLAG_RU removal.

--------------------------------------------------------------------------------
ecbea6964b | Shmuale Mark | 2015-04-30 16:53:59 -0400

Let monsters use the Obsidian Axe (starhawk).

--------------------------------------------------------------------------------
a7f29ea0be | Shmuale Mark | 2015-04-30 16:34:37 -0400

Remove MUTFLAG_RU.
It is no longer used; it might be considered useful as documentation for
which mutations can Ru sacrifices, but documentation that can get out of
date so easily is worse than no documentation IMO.

--------------------------------------------------------------------------------
58646f4137 | Chris Campbell | 2015-04-30 20:57:33 +0100

Add a canned message to melee attack !a prompt

--------------------------------------------------------------------------------
a926ed8cac | Chris Campbell | 2015-04-30 18:49:01 +0100

Adjust a Slime entry vault
To not require touching slime walls.

--------------------------------------------------------------------------------
081e05d3dd | Chris Campbell | 2015-04-30 18:30:25 +0100

Adjust messaging on TRJ death

--------------------------------------------------------------------------------
39b1f9ac21 | Chris Campbell | 2015-04-30 18:30:25 +0100

Add a missing option to options_guide.txt contents

--------------------------------------------------------------------------------
a10078a1ee | Neil Moore | 2015-04-29 20:40:12 -0400

Remove excess indentation.
And change a multi-line "while ();" in describe_god() to use {} on its
own line.

--------------------------------------------------------------------------------
9764396f2e | Neil Moore | 2015-04-29 20:29:22 -0400

Don't redraw stats during a stair delay (elliptic)
In particular, this was updating the EV display for the -5 penalty even
during travel with delay=-1; as a result, interlevel travel would cause
the evasion display to flash for a fraction of a second, too short to
see in many terminals.

Do display the EV update if there is a force_more.  In fact, redraw the
stat area whenever we get a more().  This might expose some bugs that
were otherwise hidden (if a message is printed while the game state is
inconsistent), but that would have crashed anyway if an SDL tiles window
were resized during the same more().

--------------------------------------------------------------------------------
69f78fdc62 | Chris Campbell | 2015-04-29 21:04:47 +0100

Don't make Dragon's Call summon dragons onto firewood (zxc232)

--------------------------------------------------------------------------------
08e05ef33e | Chris Campbell | 2015-04-29 21:04:16 +0100

Allow eldritch tentacles to place again (#9684)

--------------------------------------------------------------------------------
c9c78b1c25 | Chris Campbell | 2015-04-29 17:14:30 +0100

Fix Gozag creating gold from avatars and conjured monsters

--------------------------------------------------------------------------------
1dbc7b591b | Chris Campbell | 2015-04-29 17:14:30 +0100

Fix PbD's duration not being extended properly

--------------------------------------------------------------------------------
312f7478b7 | elliptic | 2015-04-29 11:56:46 -0400

Buff spiny mutation (chequers).
This is a weaker version of chequers' proposal, but still a huge buff.
For example, spines 3 is now a 1/2 chance of 4d5 - 1dAC damage instead of
a 2/21 chance of 3d5 - 1dAC damage.

--------------------------------------------------------------------------------
cb215c1d61 | Corin Buchanan-Howland | 2015-04-28 22:20:04 -0400

Improve the melee rot attack message (rchandra)
Now that the attacks don't cause rot status.

--------------------------------------------------------------------------------
1d60061d87 | Corin Buchanan-Howland | 2015-04-28 22:20:03 -0400

Unreverse new Ru ability tiles and shrink them a bit (nicolae-)
There's probably still room for improvement.

--------------------------------------------------------------------------------
8ca72fa183 | Nicholas Feinberg | 2015-04-28 18:37:46 -0700

Remove a special case for demonspawn kill piety
They now count as their actual holiness (MH_NATURAL), rather than
MH_DEMONIC. TSO still accepts kills of them, since they're unholy;
the main effect is to give poor Yreddites a (small) piety source
in Pan.

--------------------------------------------------------------------------------
293fcba0d8 | Nicholas Feinberg | 2015-04-28 17:24:13 -0700

Don't place shafts in illegal levels (IronicDongz)
Mostly caused by the branch shortening.

hangedman_spider_trapstep could be adjusted to place on Spider:3,
as it does for Zot:4, but I feel like it might be complex enough
already.

--------------------------------------------------------------------------------
d27bf8bc89 | Chris Campbell | 2015-04-29 00:26:46 +0100

Clean up spacing in mutation-data.h

--------------------------------------------------------------------------------
bf6cc4d4ed | Chris Campbell | 2015-04-29 00:14:20 +0100

Merge branch 'stat_drain'
Conflicts:
	crawl-ref/source/mutation-data.h
	crawl-ref/source/tag-version.h

--------------------------------------------------------------------------------
7e4731fa07 | Neil Moore | 2015-04-28 16:15:56 -0400

Assert if we do make a bad stack in newgame (amalloy)

--------------------------------------------------------------------------------
2422707ece | Chris Campbell | 2015-04-28 21:11:11 +0100

Make Gozag gold that would fall into lava/water land in the player's pockets 
instead
Could possibly do with some message explaining it, when it happens.

--------------------------------------------------------------------------------
9d64ff4b6c | Neil Moore | 2015-04-28 15:58:26 -0400

Don't give wanderers stacks of 12 shields (magicpoints)

--------------------------------------------------------------------------------
54fc4ff0e6 | Chris Campbell | 2015-04-28 17:41:08 +0100

Fix weird spacing in spl-data.h

--------------------------------------------------------------------------------
4a4ba729c9 | Chris Campbell | 2015-04-27 21:20:47 +0100

Adjust Powered by Pain's trigger
Make the damage required increase with XL rather than mutation level, so that
it doesn't abruptly become a lot harder to trigger if multiple levels of the
mutation show up early.

--------------------------------------------------------------------------------
a3b8f53e79 | Chris Campbell | 2015-04-27 21:20:46 +0100

Rename the Placid Magic mutation
Not that the mutation name is especially player-visible, but it's a really
weird-sounding name (although I'm not sure that this is a huge amount better).

--------------------------------------------------------------------------------
bcbd36998f | Chris Campbell | 2015-04-27 21:20:46 +0100

Remove the Placid Magic card
It was a rare wonders-only card with a strange mix of effects that weren't very
likely to be relevant, acting similarly to the old scroll of vulnerability
(which had the problem that cancelling buffs on monsters is very rarely useful)
as well as applying antimagic to monsters which doesn't seem like enough to
make for an interesting card effect.

--------------------------------------------------------------------------------
dce0854683 | Chris Campbell | 2015-04-27 21:20:46 +0100

Adjust missile acquirement weighting
Don't check stealth skill when deciding whether to offer needles, adjust the
weights of tomahawks and needles slightly.

--------------------------------------------------------------------------------
8818f7387c | Chris Campbell | 2015-04-27 21:15:43 +0100

Make Deterioration apply stat drain upon taking damage
Turns deterioration into a 2-level mutation with a 25% chance at level 1 and a
50% chance at level 2 of causing stat drain when taking a hit for more than
10% of your max health.

--------------------------------------------------------------------------------
2087e5b065 | Neil Moore | 2015-04-27 11:58:15 -0400

Doxx a translator.
By request.

--------------------------------------------------------------------------------
0c87caa43b | gammafunk | 2015-04-26 23:51:22 -0500

Tweak the level names printed in Objstat
Don't print the depth for branches with one level, and only use
0-padding to two digits if there are at least 10 levels (currently only
Zigs).

--------------------------------------------------------------------------------
3d6c10c95f | Chris Campbell | 2015-04-27 00:37:46 +0100

Fix a warning

--------------------------------------------------------------------------------
7e5c6afd99 | Chris Campbell | 2015-04-27 00:07:15 +0100

Remove MUTFLAG_RU from the deterioration mutation
Since it's not a sacrifice anymore.

--------------------------------------------------------------------------------
3e3239c936 | Chris Campbell | 2015-04-27 00:06:34 +0100

Don't trigger sacrifice potions/scrolls under DDoor

--------------------------------------------------------------------------------
233d389814 | elliptic | 2015-04-26 16:00:17 -0400

Fix los_maps test.

--------------------------------------------------------------------------------
f1c07843ef | Chris Campbell | 2015-04-26 20:28:03 +0100

Fix corpseless monsters all giving the same amount of Gozag gold

--------------------------------------------------------------------------------
bc838597dd | Brendan Hickey | 2015-04-26 14:59:25 -0400

Add more crypt floor variations.

--------------------------------------------------------------------------------
054e213f46 | Brendan Hickey | 2015-04-26 13:33:10 -0400

Add some crypt floor tile variations.
(I am not an artist)

--------------------------------------------------------------------------------
68b457935c | Neil Moore | 2015-04-26 13:30:14 -0400

Fix formatting.

--------------------------------------------------------------------------------
99c8f13988 | Neil Moore | 2015-04-26 13:28:24 -0400

Don't return a total weight of 0 when there is one element.

--------------------------------------------------------------------------------
a3665f53a6 | Neil Moore | 2015-04-26 13:24:19 -0400

Don't weight the first tile variant down to zero.

--------------------------------------------------------------------------------
666ab1d843 | Alex Jurkiewicz | 2015-04-26 12:35:18 -0400

Remove aevp-based speed penalty for UC/throwing.
Makes sense from a lore perspective (...sorta), but in practice just a
nerf for two attack forms that didn't need nerfing.

[Committer's note: Fixed compilation, constified one variable, and
 removed another.

 Elliptic pointed out that "no penalty at AEVP <= 3" meant that
 weareres of dragon armour or lighter usually had no penalty, since
 it only takes 14 str and 0 armour skill to reduce FDA AEVP to 3.

 -nfm]

--------------------------------------------------------------------------------
03e37bf521 | Brendan Hickey | 2015-04-26 12:33:17 -0400

Land crypt dominoes.
This time for real.

--------------------------------------------------------------------------------
ebc010b701 | Brendan Hickey | 2015-04-26 12:07:00 -0400

Enable crypt dominoes
Use domino syntax for crypt!

There are some tile discontinuities, so I suspect a bug in variant picking,
or a misordering of the domino variants.

--------------------------------------------------------------------------------
b9bf0e2636 | Neil Moore | 2015-04-26 11:29:51 -0400

Don't save the c_str() of a temp string (valgrind)

--------------------------------------------------------------------------------
b2ead68d9a | Brendan Hickey | 2015-04-26 11:00:44 -0400

Fix code generator typo.
Use tile dominoes intstead of tile probs for tile dominoes.
Obviously. This does fix tiling, but it's less obviously broken.

--------------------------------------------------------------------------------
44cf67ff30 | elliptic | 2015-04-26 10:57:02 -0400

Squarelos.
This commit changes many aspects of Crawl (LOS, spell/ability ranges,
explosions, haloes, etc) to use squares instead of circles. This makes sense
because it takes the same amount of time to move one cell diagonally as to
move one cell horizontally or vertically, so a square region of radius r is
actually the area that can be reached in r steps. Switching to the use of
squares fixes many unfortunate features of the old system; I'll list a few
of the more major ones here.

First, suppose that you find a sleeping monster with a ranged attack in an
open area and you want to close to melee it (or stab it). If you approach
it horizontally or vertically then it has 8 turns to wake up and start
attacking you, but if you approach it diagonally then it only has 5 turns.
Similarly, if you find a sleeping melee-based monster and you want to use
ranged attacks on it yourself, you should approach it horizontally or
vertically rather than diagonally.

Another variant of this is if you want to lead a dangerous monster (e.g. an
orc priest) elsewhere on the level -- in this case it is much safer to
enter the edge of its vision horizontally or vertically from it rather
than diagonally. If you start leading it away diagonally, then you will be
only 5 steps ahead of it and it will get several attacks for free if you
both turn into a corridor.

Spells of lower range having circular ranges also causes weird behavior. For
instance, suppose you ('@') have Stone Arrow (range 5) and want to use it on an
troll ('T'). You encounter the ogre with it 5 squares diagonally from you:

.....@.....
...........
...........
...........
...........
..........T

If you just wait until the troll enters range of your spell, you will have to
wait two turns and then will only get two casts before the troll is in melee
range of you. But if instead you move SW a few steps, you can reach this
position:

...........
...........
...........
..@....T...
...........
...........

And now you can cast your spell four times before the troll reaches you. In
other words, circular spell ranges encourage a little kiting to position
monsters properly.

-----

This commit follows the old model for squarelos since that seemed to test
well in the past. Here are some notes on the details of the implementation:

* LOS_RADIUS is now 7 instead of 8 (this means that there are 225 cells
  in view at a time, compared with 213 previously).
* Spells and effects with range >= 4 had their range reduced by 1 as well
  (not including variable-range spells such as Flame Tongue).
  A few effects with larger ranges than LOS had their ranges reduced by more
  than 1. These ranges can all be tweaked more if desired, of course.
* Fire Storm now has a pow/1000 chance of higher radius (used to be
  (pow - 76)/pow), to balance out radius 2 and 3 explosions being larger now.
* Tornado is square and rotates monsters squarely. The rotation happens at the
  same speed as with circular tornado, meaning that it still takes about 60
  aut for a full rotation.
* EUCLIDEAN compile option is gone now, since it never had much support and
  doesn't make sense with squarelos.
* I probably missed some places in the code that should be squarified at some
  point. In general the things that are important to squarify are effects
  involving interaction between different cells on the map - these effects
  should depend on the number of steps needed to walk between them, not on
  the Euclidean distance. Things that are static during the game (such as
  dungeon generation) don't need to be squarified.

--------------------------------------------------------------------------------
6a080bb0d1 | Brendan Hickey | 2015-04-26 14:41:58 +0000

Domino tweaks
De-pointerify domino adjacencies.

--------------------------------------------------------------------------------
123d519eee | Chris Campbell | 2015-04-26 14:56:12 +0100

Add a missing break (wheals)

--------------------------------------------------------------------------------
96b0035804 | reaverb | 2015-04-26 02:12:54 -0400

Ensure older saves have reasonable spawns at Lair rune branch ends
/* If a save originated before the Lair rune branches were reduced to 4
 * levels, the Lair rune branches will still last 5 levels. If this is
 * the case, having just the spawn lists which assume 4 level branches
 * could cause some odd spawns. Extending a few FLAT ranges from 4 to 5
 * partially corrects this. This solution does not affect future saves
 * outside some OOD spawns.
 *
 * After the release of 0.17 stable, this can be removed.
*/

Extending FLAT ranges was chosen to minimize the effect on future saves.
This causes some quirks like Swamp:5 lacking Thorn Hunters, but few
saves should need to be transfered.

Snake didn't have any FLAT ranges to extend, but also didn't need to be
changed to have reasonable spawns on Snake:5.

--------------------------------------------------------------------------------
244fdf382a | reaverb | 2015-04-26 02:12:54 -0400

Adjust vaults for shorter Shoals

--------------------------------------------------------------------------------
7afecd769c | reaverb | 2015-04-26 02:12:54 -0400

New Shoals spawn lists for shorter Shoals

--------------------------------------------------------------------------------
ceddc791b1 | reaverb | 2015-04-26 02:12:53 -0400

Adjust vaults for shorter Spider

--------------------------------------------------------------------------------
d313abc737 | reaverb | 2015-04-26 02:12:53 -0400

New Spider spawn lists for shorter Spider

--------------------------------------------------------------------------------
f5f15d9397 | reaverb | 2015-04-26 02:12:53 -0400

Adjust level generation for shorter Swamp

--------------------------------------------------------------------------------
f7a8788e2e | reaverb | 2015-04-26 02:12:53 -0400

New Swamp spawn lists for shorter Swamp

--------------------------------------------------------------------------------
df1da86f68 | reaverb | 2015-04-26 02:12:52 -0400

Adjust level generation and vaults for shorter Snake

--------------------------------------------------------------------------------
248ef00ae6 | reaverb | 2015-04-26 02:12:52 -0400

New Snake spawn lists for shorter Snake
These spawn list changes do two major things:

A) Move the entire range up one level, so it's like Snake:1 was removed
rather than a deeper level.

B) Delete weights for MONS_NO_MONSTER and some chaff monsters (an
example from Snake is water moccasins).

These changes are in the new lists for all four lair rune branches.

--------------------------------------------------------------------------------
ae6eb9ba36 | reaverb | 2015-04-26 02:12:52 -0400

Correct a couple tests assuming Swamp had 5 levels
qw isn't changed to keep in sync with its repo.

--------------------------------------------------------------------------------
8dcc6b891c | reaverb | 2015-04-26 02:12:51 -0400

Branch descriptions for shorter Lair rune branches

--------------------------------------------------------------------------------
7789dc5840 | reaverb | 2015-04-26 02:12:51 -0400

Make Lair Rune branches only 4 levels long
Generally these branches have gimmicks such as liquids, slow movement,
webs, etc. which outstayed their welcome when they lasted for five
levels.

Since only two levels per game are being removed, no active attempt to
adjust for XP/items lost is being taken at this time.

--------------------------------------------------------------------------------
5e73ce22d5 | reaverb | 2015-04-26 02:12:50 -0400

Remove a function which always returns false
(is_potentially_unholy_item())

--------------------------------------------------------------------------------
34abcfc5f0 | reaverb | 2015-04-26 02:12:50 -0400

Simplify god_hates_item_handling()
Literally every place which called god_hates_item_handling() also called
good_god_hates_item_handling(), so now good_god_hates_item_handling() is
a static helper function for god_hates_item_handling().

--------------------------------------------------------------------------------
f98af59671 | Neil Moore | 2015-04-26 02:03:01 -0400

Improve formatting.

--------------------------------------------------------------------------------
800b99e453 | Neil Moore | 2015-04-26 02:01:47 -0400

Merge pull request #4 from pull/4/head
Panlord resists

--------------------------------------------------------------------------------
325f1623ec | Alex Jurkiewicz | 2015-04-26 15:53:03 +1000

Simplify pan lord rF/rC calculation.
Old numbers were:
1/3 rF++, 1/3 rF+, 29/30 rF, 1/30 rF-.
1/3 rC++, 1/3 rC+, 1/3 rC-.

New numbers are the same for both resists:
3/10 res++, 3/10 res+, 3/10 res, 1/10 res-.

This keeps positive resist chance basically the same but standardises
the chance for negative resist chance.

This is a small buff for fire users (more rF-) and a less small nerf for
cold users (less rC-).

--------------------------------------------------------------------------------
49d9e9fe4f | Neil Moore | 2015-04-26 01:29:29 -0400

Merge pull request #10 from noxdominus/patch-1
Another descript/ru update

Formatting has been improved. In addition, I have tried to improve the
accuracy of the translation.

[skip ci]

--------------------------------------------------------------------------------
f7dae379c2 | Neil Moore | 2015-04-26 01:08:20 -0400

Staticalise a function.

--------------------------------------------------------------------------------
900e483836 | Neil Moore | 2015-04-26 01:08:08 -0400

Correct signedness and simplify.

--------------------------------------------------------------------------------
32a3d8f99b | Neil Moore | 2015-04-26 01:01:08 -0400

Break a long line.
Mostly to placate unbrace.

--------------------------------------------------------------------------------
f90f871ab7 | Neil Moore | 2015-04-26 00:59:38 -0400

Use member initializer syntax in domino.h.
And a few related adjustments: make EdgeDomino's four-parameter
constructor take domino::colour instead of uint32_t; and use
a macro for the entire int-to-OrientedColour conversion rather
than just the signum part.

--------------------------------------------------------------------------------
f5f64b3f4d | Neil Moore | 2015-04-26 00:59:38 -0400

Remove some "typedef struct"s.

--------------------------------------------------------------------------------
4eeb067c83 | Brendan Hickey | 2015-04-26 00:55:15 -0400

Modify tileview to use domino data for floors
After generating a domino set, pass this into the pick tile functions.
From there, we can select a particular domino variant and return that
tile. For tile sets that don't use dominoes, this change should be a
no op.

--------------------------------------------------------------------------------
7602282af2 | Brendan Hickey | 2015-04-26 00:55:15 -0400

Generate a domino set when initializing a level.
Use the cohen stochastic tiling set. Tepidly use this value for rand1.

--------------------------------------------------------------------------------
f05821173a | Neil Moore | 2015-04-26 00:16:43 -0400

Formatting fixes.

--------------------------------------------------------------------------------
830ba31ee8 | Alex Jurkiewicz | 2015-04-25 23:54:48 -0400

Check healing for potion of curing can_use().
[Committer's note: taken from the middle of pull request #11 -nfm]

--------------------------------------------------------------------------------
2ca7334c86 | Neil Moore | 2015-04-25 23:27:49 -0400

Add checkwhite/unbrace -M (gammafunk)
Like -m (modified files only), except it considers files modified in
the working dir, not just the cache.

--------------------------------------------------------------------------------
1f09329218 | gammafunk | 2015-04-25 21:35:10 -0500

Remove specialized food handling for Objstat
We no longer need to filter out unused food types, since these don't
place and objects that don't place won't have entries now.

--------------------------------------------------------------------------------
129652e0cd | gammafunk | 2015-04-25 21:35:10 -0500

Rework Objstat output to make one file per table
Previously output was one file per branch, with all object tables in the
same file. Now there is one file per table, with a separate file
containing job details. For item stats, each item type has it's own
table file, and there's one table for monster stats. Each table contains
the data for all levels, with a new row for entries from each level
instead of having them in the same row, and a column to indicate the
level. The level column has a format of "Branch:Depth", where depth is
always two digits for sorting purposes, the branch summary entries have
"Branch" only, and the all level summary uses "AllLevels".

Additionally objects that don't exist for a given level do not get
entries in the output table for that level, drastically reducing the
size of the monster table and some item tables for many
branches. Previously we printed rows all objects even if they never
appeared

These changes will make the data work a lot better in spreadsheets in
terms of table headers and will allow the data to be more easily
imported into e.g. Google Sheets. A workbook made from all data can have
one sheet per table instead of one sheet per branch.

--------------------------------------------------------------------------------
9d13880ffd | gammafunk | 2015-04-25 21:35:10 -0500

Move Objstat equipment brand data into seperate vectors
Weapons and armour have their own vectors, to avoid further indexing
hell. Refactor so that this doesn't create significant code duplication.

--------------------------------------------------------------------------------
26ebe18e58 | Neil Moore | 2015-04-25 22:24:08 -0400

Revert "Revert "Add %domino syntax to rltiles.""
It should work now with the HOSTCC/HOSTCXX updates.

This reverts commit 4a8d220c4f0cfebd2d262c753e4628c57874dd94.

--------------------------------------------------------------------------------
c1e5686c27 | Neil Moore | 2015-04-25 22:23:52 -0400

Make FORCE_{CC,CXX} override host compiler, too.

--------------------------------------------------------------------------------
4a8d220c4f | Brendan Hickey | 2015-04-26 02:00:43 +0000

Revert "Add %domino syntax to rltiles."
This reverts commit daf9aa6ac54fa40c43d7d9654542874f6fd6b0d9.
Build breakage.

--------------------------------------------------------------------------------
daf9aa6ac5 | Brendan Hickey | 2015-04-26 01:45:50 +0000

Add %domino syntax to rltiles.
A coloring is specified as:

%domino N E S W

For example, we could place '0 1 0 0' next to '0 0 0 1'.

The four parameters should be non-negative 8-bit integers. To simplify
the generated code, emit a bit-packed representation of the coloring.

--------------------------------------------------------------------------------
a5bb4c9b3c | Nicholas Feinberg | 2015-04-25 17:25:22 -0700

Re-add display of Strip Resistance resistance
describe.cc already had special-case code handling it.

This partilly reverts commit eb346c200a38e9f07d275752b7971a950.

--------------------------------------------------------------------------------
baecb48503 | Brendan Hickey | 2015-04-25 23:21:35 +0000

Merge branch 'master' into domino2

--------------------------------------------------------------------------------
daff30d902 | Chris Campbell | 2015-04-25 23:27:25 +0100

Tweak some spell descriptions

--------------------------------------------------------------------------------
eb346c200a | Chris Campbell | 2015-04-25 23:27:25 +0100

Fix descriptions of some monster hexes
These work in weird ways and don't check MR normally, so displaying the MR
chance in their description gives completely incorrect information. Probably
they should be adjusted to work in a more sensible way, somehow.

--------------------------------------------------------------------------------
6fdb224c6c | reaverb | 2015-04-25 17:40:46 -0400

Don't reassemble scrolls of random uselessness
This effect was annoying because you had to manually drop the
"reassembled" scroll if you didn't want it.

--------------------------------------------------------------------------------
5b0c35ba09 | Corin Buchanan-Howland | 2015-04-25 11:51:38 -0400

Actually normalize Ru sac piety
Because somehow I reverted most of my changes before pushing that previous
commit. :P

--------------------------------------------------------------------------------
a27854a4ab | Corin Buchanan-Howland | 2015-04-25 11:46:11 -0400

Adjust Ru sacrifice ability letters
There are more sacrifices now, so we need more breathing room.

--------------------------------------------------------------------------------
c4ae412d90 | Corin Buchanan-Howland | 2015-04-25 11:46:10 -0400

Normalize Ru sacrifice values slightly
Just reducing the number of different values.

--------------------------------------------------------------------------------
0d57b2b7ae | Corin Buchanan-Howland | 2015-04-25 11:46:09 -0400

Add two new Ru sacrifices: resistance and eye
Sacrifice Resistance is {rF- rC-} and worth as much piety as sac hand.
Sacrifice an Eye gives you 2x inaccuracy, like the amulet*2. It stacks with
the amulet. It's worth 35 piety, like Sacrifice Skill.

--------------------------------------------------------------------------------
26e9515219 | Neil Moore | 2015-04-25 11:08:00 -0400

Document that shadow invis swiftness appears in two places.
[skip ci]

--------------------------------------------------------------------------------
b9233ab72e | Neil Moore | 2015-04-25 11:03:27 -0400

Mention a MONS_SHADOW hidden mechanic in xv (kvaak)

--------------------------------------------------------------------------------
ee709144b2 | Chris Campbell | 2015-04-25 14:45:29 +0100

Make Cheibriados wrath continue to slow the player until it expires
Based on however slow the player was at their max Chei piety reached.

--------------------------------------------------------------------------------
d9bc4faf99 | Chris Campbell | 2015-04-25 14:45:29 +0100

Make shadow form undispellable, end shadow form when abandoning Dith

--------------------------------------------------------------------------------
68f633f9e1 | Chris Campbell | 2015-04-25 14:45:14 +0100

Suppress Ignite Blood under Dithmenos

--------------------------------------------------------------------------------
35cfba7a18 | Chris Campbell | 2015-04-25 14:37:53 +0100

Update and improve some god descriptions

--------------------------------------------------------------------------------
6e0c7d809c | Chris Campbell | 2015-04-25 13:06:20 +0100

Don't redraw the screen when starting/ending gold distraction
Apparently this isn't necessary after all.

--------------------------------------------------------------------------------
2ffce82f56 | Chris Campbell | 2015-04-25 12:50:24 +0100

Give Maxwell's etheric cage a "RegenMP" inscription

--------------------------------------------------------------------------------
32247ce659 | Nicholas Feinberg | 2015-04-24 07:16:29 -0700

Fix fire dragon description (9678)

--------------------------------------------------------------------------------
d86b262764 | Darshan Shaligram | 2015-04-23 20:02:04 -0400

Add draconian flavours to -playable-json.

--------------------------------------------------------------------------------
c1d81885ec | Neil Moore | 2015-04-23 18:41:02 -0400

Fix a missing paren (#9675)

--------------------------------------------------------------------------------
447fef9c19 | Darshan Shaligram | 2015-04-23 16:51:30 -0400

Document -playable-json replacing -list-combos.

--------------------------------------------------------------------------------
e43c311a7b | Neil Moore | 2015-04-23 16:48:34 -0400

Update MSVC project for JSON changes.
Add json.h to the project, and make it build and link in json.obj
unconditionally.

--------------------------------------------------------------------------------
9b901f1bb9 | Darshan Shaligram | 2015-04-23 16:42:12 -0400

JSON for playable species+apts, jobs, combos
Because Sequell would like to stop parsing C++ code now, please.

Uses webtiles' json.cc.

--------------------------------------------------------------------------------
010c3afcc1 | Darshan Shaligram | 2015-04-23 15:45:34 -0400

Revert "JSON for playable species+apts, jobs, combos"
This reverts commit 46ea7691c8421e3b1c6b5f04fcd833724311eba1.

--------------------------------------------------------------------------------
46ea7691c8 | Darshan Shaligram | 2015-04-23 15:23:52 -0400

JSON for playable species+apts, jobs, combos
Because Sequell would like to stop parsing C++ code now, please.

Adds https://github.com/miloyip/rapidjson as a contrib submodule (forked into
GitHub crawl project).

--------------------------------------------------------------------------------
0b87ae3267 | Nicholas Feinberg | 2015-04-22 21:58:18 -0700

Mostly add etheric cage tiles (CanOfWorms)
The playerdoll tile isn't working and I can't figure out why;
someone else can fix that.

--------------------------------------------------------------------------------
5276e8c02d | Nicholas Feinberg | 2015-04-22 21:30:55 -0700

Flatten some animate dead code

--------------------------------------------------------------------------------
4960e1bef5 | Nicholas Feinberg | 2015-04-22 21:24:43 -0700

Disallow animating deep-water corpses (bcadren)
Letting non-aquatic species animate corpses trapped in deep water
is a UI screw. Letting only aquatic species do so is, as bcadren
notes, counterintuitive and bizarre. (Also, it was bugged when
trying to revive the corpses of land monsters that somehow wound
up in deep water - a 'puff of smoke' would appear...)

--------------------------------------------------------------------------------
df47456c95 | Nicholas Feinberg | 2015-04-22 21:24:05 -0700

Tweak zombification comments

--------------------------------------------------------------------------------
c46f1fca4b | Nicholas Feinberg | 2015-04-22 21:10:58 -0700

Fix Maxwell's changelog

--------------------------------------------------------------------------------
d40c196652 | Nicholas Feinberg | 2015-04-22 19:00:38 -0700

New Eternal Torment sprites (CanOfWorms)
There were multiple sets of tiles submitted; I did an entirely
scientific poll by asking my little brother which he preferred,
and he chose these. Enjoy your torment!

--------------------------------------------------------------------------------
9c773a8cd8 | Nicholas Feinberg | 2015-04-22 18:53:34 -0700

Changelog through 0.17-a0-762-gdd96e34

--------------------------------------------------------------------------------
dd96e34419 | Shmuale Mark | 2015-04-22 16:04:27 -0400

Make grand avatars faster (travis).

--------------------------------------------------------------------------------
f2c97c7c60 | Chris Campbell | 2015-04-22 20:24:14 +0100

Remove a duplicate obsolete file
If anyone really needs to know about key changes in 0.5 and 0.4, the .txt file
is probably sufficient, there's no need for a fancy pdf too!

--------------------------------------------------------------------------------
ea7ae5b316 | Chris Campbell | 2015-04-22 20:06:57 +0100

Remove potions of restore abilities
In cases where severe stat drain does occur, the XP timer should force players
to press on and cure it by killing things rather than allowing them to just
quaff a common consumable to heal it, as with draining.

The potion's weight is split equally between flight, lignification and
degeneration.

--------------------------------------------------------------------------------
4c4e3350c9 | Shmuale Mark | 2015-04-22 14:30:36 -0400

Remove the constant term in Gozag's fee.
It's intended to make switching in the late game harder, and a constant
term overwhelmingly affects early-game characters considering Gozag.

--------------------------------------------------------------------------------
0ef6a7434f | Shmuale Mark | 2015-04-22 14:09:54 -0400

Refactor and comment monster_habitable_grid.

--------------------------------------------------------------------------------
27d2a07b07 | Chris Campbell | 2015-04-22 18:43:19 +0100

Save compat for stat loss recovering with XP

--------------------------------------------------------------------------------
caca6cf874 | Shmuale Mark | 2015-04-22 13:23:01 -0400

Merge levitation and flight.
There were only very minor gameplay differences between them, and they
were arguably bugs -- for example, paralysed flyers couldn't teleport onto
deep water, but being paralysed didn't make them fall in ever since commit
8973858003fa. No need for the extra code complexity in order to say that a
monster is flying magically; "It can fly" is generic enough.

--------------------------------------------------------------------------------
f0ac9f8d5d | Shmuale Mark | 2015-04-22 10:56:05 -0400

Make Ash skill boost and fencer's gloves (and Heroism) stack (#9666).

--------------------------------------------------------------------------------
159ac62099 | Shmuale Mark | 2015-04-22 10:35:44 -0400

Fix the speed brand (amalloy).

--------------------------------------------------------------------------------
439164088a | Nicholas Feinberg | 2015-04-21 19:17:59 -0700

Update Ignite Poison description

--------------------------------------------------------------------------------
4fd77c5a46 | Nicholas Feinberg | 2015-04-21 19:16:46 -0700

Remove an outdated comment

--------------------------------------------------------------------------------
814e53898a | Nicholas Feinberg | 2015-04-21 19:16:20 -0700

Squash ignite poison spam

--------------------------------------------------------------------------------
d8b69f4bc4 | Nicholas Feinberg | 2015-04-21 19:16:15 -0700

Adjust Ignite Poison cloud duration
Base it on power, rather than the previous clouds' durations.

--------------------------------------------------------------------------------
43ba276a6e | Nicholas Feinberg | 2015-04-21 19:15:57 -0700

Increase Ignite Poison's direct damage
The charts for monster poison damage:

    avg. dam/turn   avg. dam (total)    avg total turns
stacks
1       0.75            6.75            9
2       1.00            15.75           18
3       1.25            18              18
4       2.5             24.75           18
(not just avg * turns since degree degrades over time)

Ignite Poison now does an average of 200%-300% of average poison
damage (increasing with spellpower), depending on degree. Doesn't
currently take remaining duration into account - possibly it
should, or possibly the damage numbers should just be lowered
slightly to compensate.

--------------------------------------------------------------------------------
4901378cbb | Nicholas Feinberg | 2015-04-21 19:04:02 -0700

Tweak debug messages for poison damage
Include degree when printing poison damage for monsters.

--------------------------------------------------------------------------------
5cd8c6c3f7 | Nicholas Feinberg | 2015-04-21 19:04:02 -0700

Adjust Ignite Poison's level & schools
Level from 5 (formerly 6, formerly 7) to 3; add Poison school.
Also cap power at 100 (formerly 200).

--------------------------------------------------------------------------------
d4056baf73 | Nicholas Feinberg | 2015-04-21 19:04:02 -0700

Simplify Ignite Poison
It now only ignites poisoned creatures & poisonous clouds, not
creatures/weapons with venom attacks, &c.

--------------------------------------------------------------------------------
8a9bededba | Alan Malloy | 2015-04-21 19:03:07 -0700

Also check item egos before choosing to stack them

--------------------------------------------------------------------------------
dcd3f0e898 | gammafunk | 2015-04-21 19:01:39 -0500

Remove an errant semicolon and reformat (debo)

--------------------------------------------------------------------------------
3b744e183f | noxdominus | 2015-04-22 00:15:54 +0300

Update unident.txt

--------------------------------------------------------------------------------
1aec193fc6 | noxdominus | 2015-04-22 00:12:52 +0300

Update species.txt

--------------------------------------------------------------------------------
8f5862e3e2 | noxdominus | 2015-04-22 00:09:16 +0300

Update backgrounds.txt

--------------------------------------------------------------------------------
6f9c0902dd | Chris Campbell | 2015-04-21 20:14:36 +0100

Make stat drain recover with XP gain instead of over time
XP gain functions a lot more effectively as a timer for this kind of longer-
term damage, preventing the boring waiting out of extreme stat loss. Based
vaguely on how draining works, but longer-term than draining if multiple points
of stats are lost. Numbers are entirely made-up and have been playtested a tiny
bit but might make no sense at all.

Stat recovery is no longer tied to the slow healing mutation, so Deep Dwarves
(and Vampires) can recover stats like everyone else.

Stuff to still think about: deterioration mutation, Mummy/Elyvilon self-
restoration abilities, potion of restore abilities (probably to be removed?),
possibility of adding stat recovery to might/brilliance/agility.

Also needs save compat for existing games with stat drain.

--------------------------------------------------------------------------------
953d9fb4f2 | Nicholas Feinberg | 2015-04-20 22:54:02 -0700

Don't collide with existing saves (|amethyst)

--------------------------------------------------------------------------------
dea6acc2b1 | Nicholas Feinberg | 2015-04-20 22:37:07 -0700

Generate random names for players (Arrhythmia)
If they leave the name field blank during offline character
creation. (Using panlord/shopkeeper/etc name gen.)

--------------------------------------------------------------------------------
aa96792c8b | Nicholas Feinberg | 2015-04-20 18:15:07 -0700

Fix naga save compat (wheals)
The previous version would stomp on any upgraded innate muts on
save load.

--------------------------------------------------------------------------------
552e03a343 | Shmuale Mark | 2015-04-20 18:18:23 -0400

Take speed brand into account in weapon_min_delay (#9663).

--------------------------------------------------------------------------------
70609ef79b | Alan Malloy | 2015-04-20 18:02:41 -0400

Warn the player when tabbing with a bad weapon.
It already warns you once you're in melee rangs with, say, a rod;
this patch gives you a warning even when you're not yet in melee
range, instead of moving you toward the enemy while wielding
a stupid weapon.

--------------------------------------------------------------------------------
f7a613b0a4 | Shmuale Mark | 2015-04-20 17:58:43 -0400

Don't attack neutrals with plain direction keys (#9184).
Instead, you have to use ctrl-direction. This is a bit different from both
how friendlies and now hostiles work, and I wouldn't be averse to simply
making them simply prompt-to-attack like an attack on a helpless monster
under TSO is. But at the same time, I believe that unnecssary prompts are
almost as bad as pissing off a monster with no warning.

--------------------------------------------------------------------------------
f4f35bf392 | Shmuale Mark | 2015-04-20 17:45:23 -0400

Disallow swapping with stoned/asleep allies (#5733, #9551).
Additionally, don't give an attack prompt when trying to move onto a
square with a stationary ally.

--------------------------------------------------------------------------------
965e8ebc0b | Shmuale Mark | 2015-04-20 17:24:38 -0400

Have monsters zap empty wands, once.
The goal is to prevent picking up wands from unique corpses with 20 zaps
that the player knows are obviously exhausted, but the game doesn't tell
you outright. It also has a nice side effect of answering the question "How
do monsters know the wand is empty, anyway?"

--------------------------------------------------------------------------------
560a70f261 | Shmuale Mark | 2015-04-20 17:04:25 -0400

Allow non-related monsters to swap places.
Restricted to related monsters, swapping is almost a curiosity, or
sometimes even a hindrance if two monsters swap with each other,
effectively slowing down both. However, there's little reason not to
extend it to non-related ones. This prevents, for example, being entirely
safe by having a rat between you and a dragon in a corridor (though
in practice the dragon usually breathes and kills the rat anyway).

--------------------------------------------------------------------------------
f0a300aaee | Shmuale Mark | 2015-04-20 16:44:59 -0400

Fix compilation.
What kind of crazy would amend a commit and totally forget to recheck
compilation?? Pull it together, wheals...

--------------------------------------------------------------------------------
39ff795a6b | Shmuale Mark | 2015-04-20 16:22:24 -0400

Reorder field definitions of mgen_data to match the constructor.
This doesn't really matter, but it's pretty confusing at first.

--------------------------------------------------------------------------------
df9fcda76a | Shmuale Mark | 2015-04-20 16:21:55 -0400

Enhance and clean up the parameters for newgame_make_item.
There was no need to pass in a specific slot or equipment slot. This
refactor ended up being a lot bigger than I was expecting, and
it's probably bigger than it should be in a single commit.

--------------------------------------------------------------------------------
83d31e7765 | Shmuale Mark | 2015-04-20 12:57:46 -0400

Nerf DrFi (DrKe).
OpFi doesn't get a hat, and FeFi doesn't get a ring of protection.

--------------------------------------------------------------------------------
278f07a161 | Shmuale Mark | 2015-04-20 12:38:52 -0400

Show merfolk song success chance (#9659).

--------------------------------------------------------------------------------
b12c3269f5 | Shmuale Mark | 2015-04-20 12:38:39 -0400

Remove an unused parameter.

--------------------------------------------------------------------------------
03222dfd60 | Shmuale Mark | 2015-04-20 12:22:19 -0400

Fix a vault typo (#9658).

--------------------------------------------------------------------------------
58f2e23ca3 | Neil Moore | 2015-04-20 11:19:14 -0400

Simplify menu colour for mutagenic chunks.
Now that chunk names omit irrelevant adjectives such as "mutagenic" for
ghouls, we no longer need to make sure we are matching the "mutagenic"
tag rather than the item name.

--------------------------------------------------------------------------------
79b6830ac0 | Neil Moore | 2015-04-20 11:19:14 -0400

Fix whitespace.

--------------------------------------------------------------------------------
3e3389f83b | Neil Moore | 2015-04-20 11:19:14 -0400

Colour useless/mutagenic/forbidden chunk glyphs (geekosaur)

--------------------------------------------------------------------------------
359104b2b4 | Neil Moore | 2015-04-20 11:19:14 -0400

Make all chunks lightred.
Since the monster type of chunks no longer matters, and chunk colours
overlapped with permafood colours.

Using lightred rather than red to not overlap with "forbidden".

--------------------------------------------------------------------------------
b8087dce2c | Nicholas Feinberg | 2015-04-20 08:17:17 -0700

Entropy weaver corpse tile (9660)

--------------------------------------------------------------------------------
fa8c1271ce | Neil Moore | 2015-04-19 22:45:52 -0400

Remove an unused macro (gammafunk)
Besides being unused, it used a raw block where it should have been
a do-while(0).

--------------------------------------------------------------------------------
d3fc22683a | Nicholas Feinberg | 2015-04-19 17:10:52 -0700

Remove obsolete chunk default colours

--------------------------------------------------------------------------------
34059cf10c | Nicholas Feinberg | 2015-04-19 17:05:59 -0700

Remove the hunger/regen cap on movement
Previously, various over-time effects behaved oddly with slow
movement. When walking, any action that took more than 10 aut
(one normal turn) was counted as if it took 10 aut instead for
regen/hunger purposes. This meant that, for example, moving in
statue form cut your hunger & regen to 2/3rds normal; Chei
worshippers had both halved...

This removes that effect and adds a few small compensations;
Naga get Slow Metabolism 1 and Chei reduces hunger significantly
more. (Now cuts it to 50%; previously 75%).

--------------------------------------------------------------------------------
7d6fe03364 | Nicholas Feinberg | 2015-04-19 16:48:05 -0700

Simplify monster malmut (ENCH_WRETCHED)
From -10% HD and -4 AC per level to a flat -25% HD, -8 AC.

No reason to have multiple levels on something that was never
going to get stacked...

This is probably an Irradiate buff.

--------------------------------------------------------------------------------
747ea25719 | Corin Buchanan-Howland | 2015-04-19 19:01:25 -0400

Remove unnecessary comment

--------------------------------------------------------------------------------
29737e8272 | Corin Buchanan-Howland | 2015-04-19 19:01:05 -0400

Actually disable Invocations training when you have no god (rchandra)
Previously it would allow you to keep training until you saved and reloaded
your game.

--------------------------------------------------------------------------------
32c6a46728 | Chris Campbell | 2015-04-19 19:15:05 +0100

Fix derived undead not dropping gold under Gozag

--------------------------------------------------------------------------------
d824f77bfc | Neil Moore | 2015-04-19 14:03:11 -0400

Add some translators to CREDITS and mailmap.
[skip ci]

--------------------------------------------------------------------------------
cedd698792 | Neil Moore | 2015-04-19 14:03:07 -0400

Improve a few Spanish god translations (quik)
[skip ci]

--------------------------------------------------------------------------------
93dd115e12 | Edgar Carballo | 2015-04-19 14:02:50 -0400

Translate gods text to spanish.
Translations, retranslations and organizations of gods descriptions to
spanish

[skip ci]

--------------------------------------------------------------------------------
fd4638e238 | gammafunk | 2015-04-19 12:54:29 -0500

Add the define DEBUG_STATISTICS to build mapstat and objstat
Setting DEBUG_STATISTICS will now cause mapstat and objstat code to
build, so a full debug build is no longer required for these
features. You can add EXTERNAL_FLAGS_L=-DDEBUG_STATISTICS to your make
command to set the define. The DEBUG_DIAGNOSTIC define used by full
debug builds sets DEBUG_STATISTICS, so both features are still available
for these builds as well.

--------------------------------------------------------------------------------
32da3eeb75 | gammafunk | 2015-04-19 12:53:52 -0500

Move objstat code to its own source file
Adds dbg-objstat.cc and moves code to there from dbg-scan.cc, with the
appropriate header changes.

--------------------------------------------------------------------------------
678334fcc4 | Neil Moore | 2015-04-19 13:33:22 -0400

Add some folks to CREDITS and one to mailmap.

--------------------------------------------------------------------------------
03f081da89 | Tom Conrad | 2015-04-19 10:29:48 -0700

Added code for a formicid corpse tile

--------------------------------------------------------------------------------
4eddf224b7 | Neil Moore | 2015-04-19 13:07:28 -0400

Don't allow drinking curemut with only temporary mutations (#9655)
Since it won't cure them.

--------------------------------------------------------------------------------
a48c756703 | Chris Campbell | 2015-04-19 17:47:47 +0100

Don't let Gozag distraction affect conjured monsters or tentacles

--------------------------------------------------------------------------------
1e7725b68b | Chris Campbell | 2015-04-19 17:47:47 +0100

Don't goldify any no-XP monsters

--------------------------------------------------------------------------------
a3070271f9 | Neil Moore | 2015-04-19 12:32:21 -0400

Don't allow drinking known !curemut with no mutations (#9655)

--------------------------------------------------------------------------------
43905dc423 | Nicholas Feinberg | 2015-04-19 09:26:58 -0700

Don't goldify firewood (Lightli, 4chan)
Also don't goldify corpses twice.

--------------------------------------------------------------------------------
3630ced3f7 | Nicholas Feinberg | 2015-04-19 09:22:23 -0700

De-sprettify transform()
I have no idea why the lava orc code was set up that way to begin
with, so it's possible that this breaks something with them
somehow...?

--------------------------------------------------------------------------------
95aef39484 | Neil Moore | 2015-04-19 10:49:24 -0400

Merge pull request #9 from noxdominus/patch-1
ru descript update

--------------------------------------------------------------------------------
bffd9fb32f | noxdominus | 2015-04-19 17:08:37 +0300

Update backgrounds.txt

--------------------------------------------------------------------------------
ecb00c85ad | noxdominus | 2015-04-19 16:45:00 +0300

Update unident.txt

--------------------------------------------------------------------------------
b3a3556273 | Neil Moore | 2015-04-19 09:43:31 -0400

Don't crash when animating undead fails.

--------------------------------------------------------------------------------
b6462b4c20 | Nicholas Feinberg | 2015-04-18 16:45:17 -0700

Don't waste time while cancelling blurread (9650)
oops

--------------------------------------------------------------------------------
9ff924df41 | Chris Campbell | 2015-04-19 00:22:22 +0100

Update Potion Petition description

--------------------------------------------------------------------------------
19fd2f384b | Chris Campbell | 2015-04-19 00:22:22 +0100

Adjust Gozag's faith-removal message
The wording is an attempt to make it clear that it's the set-up cost for
merchants that increases, not the prices of their items, probably this could
be clarified better.

--------------------------------------------------------------------------------
ba012ec474 | Chris Campbell | 2015-04-19 00:22:22 +0100

Remove an unused Gozag attribute

--------------------------------------------------------------------------------
eef79137aa | Chris Campbell | 2015-04-19 00:22:22 +0100

Make corpseless monsters actually drop gold at the same rate as corpseful ones

--------------------------------------------------------------------------------
f431408e7d | Chris Campbell | 2015-04-19 00:22:22 +0100

Slightly increase the base price of Potion Petition
Mainly just to make it a nicer, round number on the ability screen.

--------------------------------------------------------------------------------
9f0601aa72 | Alex Jurkiewicz | 2015-04-19 00:22:21 +0100

Drop gold for corpseless monsters under Gozag.
Low-corpse branches give Gozagites very little "piety" and are
concentrated in extended, which made Gozag extremely poor there.
This change makes corpseless monsters drop gold at the same rate as
their more corporeal allies.

--------------------------------------------------------------------------------
43fafe5b81 | Alex Jurkiewicz | 2015-04-19 00:22:21 +0100

Remove cost scaling from Potion Petition.
Gold gain rate doesn't scale, and in fact tapers off as the ratio of
corpseless monsters increases.

--------------------------------------------------------------------------------
f724129b64 | Chris Campbell | 2015-04-19 00:21:08 +0100

Reduce the crown of torment's HP penalty to 20%
-20% is still a lot of -HP, and unlikely to be worth using.

--------------------------------------------------------------------------------
78e0039f6b | Chris Campbell | 2015-04-19 00:21:08 +0100

Improve crown of torment's inscription and desc

--------------------------------------------------------------------------------
e3400ba988 | Chris Campbell | 2015-04-19 00:21:08 +0100

Give Leech its own on-equip message
As with Vampire's Tooth, to hint at its vampiricism being different to normal
vampiric brand.

--------------------------------------------------------------------------------
1d68bd3029 | Chris Campbell | 2015-04-19 00:21:08 +0100

Adjust fencer's gloves inscription and desc

--------------------------------------------------------------------------------
b4b85f546d | Corin Buchanan-Howland | 2015-04-18 19:14:05 -0400

Give Animate Dead/Skeleton minions a timeout
Skeletons and zombies created by the Animate Dead and Animate Skeleton
will now time out at a similar rate to Simulacrum and Death Channel
spectres.

This is for two reasons: 1) the spells needed a nerf; 2) permanent allies
set up problematic incentives in Crawl.

Yred's version of the spell is unchanged, because Yred's core premise is
permanent minions.

--------------------------------------------------------------------------------
21a41e90cd | Chris Campbell | 2015-04-18 22:42:42 +0100

Remove Vp's (non-functional) chance to heal 1hp on draining a corpse
This hadn't been able to ever trigger since 638acd453f4 (but luckily was
insignificant and not really worth keeping anyway!)

--------------------------------------------------------------------------------
3c5a5708ef | Chris Campbell | 2015-04-18 22:42:41 +0100

Let vampires drink from anything with blood
Vampires now ignore chunk effects entirely and can just drink blood from
anything that has blood.

--------------------------------------------------------------------------------
0199545422 | Chris Campbell | 2015-04-18 22:42:41 +0100

Don't give vampires extra healing from vampiric weapons
They don't really need any extra encouragement to use them.

--------------------------------------------------------------------------------
c02861bc24 | Neil Moore | 2015-04-18 16:38:03 -0400

Merge pull request #7 from noxdominus/patch-1
species.txt ru update
--------------------------------------------------------------------------------
67a59e2ad0 | Corin Buchanan-Howland | 2015-04-18 15:51:22 -0400

Block minion-creation spells under Sac Love
These are a bad idea except when you're abusing them to block the movement
of other monsters, and that's not something we want to encourage."

--------------------------------------------------------------------------------
eef66640b5 | Neil Moore | 2015-04-18 15:45:45 -0400

Return a correct exit status from .travis/deps.pl.
If apt-get failed, it exited with status 100, and if this was the last
retry, our script would exit with the result of the perl system() call,
(exitstatus << 8) | signal == 25600.  But Unix exit statuses are are a
single byte, so Travis saw our exit(25600) as zero for success.

--------------------------------------------------------------------------------
1982f0b51e | Nicholas Feinberg | 2015-04-18 11:09:47 -0700

Remove some on-brand ammo from the off-brand shop
wheaaaalllssss

--------------------------------------------------------------------------------
c541d4c850 | Corin Buchanan-Howland | 2015-04-18 13:47:26 -0400

Adjust Ru invocations titles, in case anyone ever gets one.

--------------------------------------------------------------------------------
fa0b78e202 | Nicholas Feinberg | 2015-04-18 10:44:41 -0700

Improve some invalid transform behaviour
We could probably de-SPRETify this function again, now that
we have undead_state() & so don't need to untransform the player
to check if they're dead.

--------------------------------------------------------------------------------
091e9a1607 | Nicholas Feinberg | 2015-04-18 10:00:44 -0700

Don't trap players in vampire form (9646)
transform() previously had an undocumented return type, which
*looked* like "true iff the transform succeeds." It was, in fact,
"true iff the transform should take time/resources", which most of
its callers didn't realize. This meant that all sources of
badforms (/poly, Kirke, Swine card) could lock vampires into their
base form. Oops!

This also fixes a related bug: attempting and failing to extend
the duration of a transformation took no time. This meant that
you could retry repeatedly until you actually extended the
duration (or miscast). Not really desirable...

--------------------------------------------------------------------------------
e25d68b655 | Corin Buchanan-Howland | 2015-04-18 10:05:13 -0400

Nerf perfect stealth, usually invis (elliptic)
Make the minimum chance of a monster noticing you 5/stealth instead of
1/stealth. This is mostly relevant in cases where you have invis, since
invis reduces the x in x/stealth by 75.

After recent game where I sleep-stabbed the majority of monsters I killed
thanks to early invis, I felt that invis is currently too strong as a
infinitely available effect that makes sleep-stabs virtually guaranteed.
After discussing with elliptic, we settled on this solution.

I'm still open to instead (or additionally) removing many sources of invis
or applying an additional penalty to invis on top of glow in order to make
it not freely spammable, especially in the early/mid game.

--------------------------------------------------------------------------------
9753fc1d99 | Corin Buchanan-Howland | 2015-04-18 09:46:57 -0400

Add an entropy weaver tile (floatRand)

--------------------------------------------------------------------------------
65d1b7458d | Corin Buchanan-Howland | 2015-04-18 09:43:57 -0400

Give an indication that fencer's gloves raise skill now

--------------------------------------------------------------------------------
49ed23cd4f | noxdominus | 2015-04-18 13:08:28 +0300

Update species.txt

--------------------------------------------------------------------------------
4330659aa3 | gammafunk | 2015-04-18 00:22:58 -0500

Update an abyssal rune vault (nicolae)
Sometimes when it rains, it mael....stroms....

--------------------------------------------------------------------------------
660f2cc957 | noxdominus | 2015-04-18 02:07:49 +0300

Update species.txt

--------------------------------------------------------------------------------
5d95ebd8ce | Neil Moore | 2015-04-17 17:22:33 -0400

Simplify a chance formula.

--------------------------------------------------------------------------------
ade77ecb90 | Neil Moore | 2015-04-17 17:14:29 -0400

Unbrace.

--------------------------------------------------------------------------------
8da3632ba0 | noxdominus | 2015-04-18 00:14:27 +0300

Update species.txt

--------------------------------------------------------------------------------
072d1848bc | Neil Moore | 2015-04-17 17:09:42 -0400

Don't capitalise draw three letters (amalloy)

--------------------------------------------------------------------------------
67493f3ebb | Neil Moore | 2015-04-17 17:08:56 -0400

Add msg::nocap for disabling capitalisation of msg::streams
The capitalisation (or lack thereof) applies to the next line printed.
Unfortunately the value is only used when the line is printed, so the
following won't work as you might expect:

    msg::streams(MSGCH_PLAIN) << msg::nocap << "foo"
                              << msg::cap << "bar" << endl;

(It prints "Foobar", not "foobar" or "fooBar")

--------------------------------------------------------------------------------
d4fd13b5ac | noxdominus | 2015-04-17 23:49:20 +0300

Update species.txt

--------------------------------------------------------------------------------
bd65d937f8 | Shmuale Mark | 2015-04-17 14:03:49 -0400

Scale etheric contamination as well as MP gain (PleasingFungus).
<PleasingFungus> if you recover 2.5 contam per aut and take a turn once
every 3 aut (qbl), 1/80 chance to get 1-2k contam per-turn is 6.25
average contam per aut

--------------------------------------------------------------------------------
dcab04f1b9 | Shmuale Mark | 2015-04-17 13:47:45 -0400

The crown of Eternal Torment (Siegurt). Needs non-crappy tiles.
Gives rTorment and reduces your maxhp by 35% (i.e., how much torment would
do, since it also gives rN+++). Made it +3 and SInv for some nice symmetry
with the other crown. It autocurses 100% of the time, which should help if
being swappable makes it abusable (though I'm not convinced it would be
anyway).

Tiles are poorly-photoshopped copies of Dyrovepreva's. I am so, so sorry.

--------------------------------------------------------------------------------
7168557c6c | Shmuale Mark | 2015-04-17 13:02:46 -0400

Remove an unused parameter from player_res_torment.

--------------------------------------------------------------------------------
f22ae48cd3 | Shmuale Mark | 2015-04-17 12:55:22 -0400

Make ARTP_NEGATIVE_ENERGY a num instead of a bool.

--------------------------------------------------------------------------------
86f932fd11 | Shmuale Mark | 2015-04-17 12:46:20 -0400

Clarify that show_more and force_more_message don't interact (#9645).

--------------------------------------------------------------------------------
a26ac8bf9c | Shmuale Mark | 2015-04-17 12:43:30 -0400

Make the etheric cage's contamination trigger very slightly more often.

--------------------------------------------------------------------------------
51659ce3e0 | Shmuale Mark | 2015-04-17 12:39:25 -0400

Maxwell's etheric cage, by argonaut. Needs tiles.
I tweaked the description and did some code cleanup.

--------------------------------------------------------------------------------
deb98b6ba7 | Shmuale Mark | 2015-04-17 10:15:56 -0400

Remove a bizzare hack.
I suspect that changing two uint8_ts to ints won't make Crawl unplayably
slow.

The weird thing in tags.cc with marshalling you.hit_points_regeneration
twice is pre-DCSS.

--------------------------------------------------------------------------------
c72cd602c5 | Shmuale Mark | 2015-04-17 09:13:58 -0400

Add "Blood Saint" as a title for Invocation demonspawn (AreBrandon).
Restricted to evil gods -- it doesn't quite work for Sif Muna, for
example.

The other Ds monster names either are already titles or are very close to
them, so it's probably not a good idea to add them.

--------------------------------------------------------------------------------
01bffe9f85 | Shmuale Mark | 2015-04-17 08:41:49 -0400

Document the flash_screen_message option and make it ignore use_animation.
Since a player could certainly want to have it flash even if they don't
want any other animations at all, and if they want to disable it as well
it's just a matter of commenting it out in their rcfile (or adding
`flash_screen_message =` to their rcfile it they were included from
another one.

Also, add some style fixes.

--------------------------------------------------------------------------------
c0ce957e7c | Sandman25 | 2015-04-17 08:21:19 -0400

New option "flash_screen_message"

--------------------------------------------------------------------------------
2524dd08d4 | Shmuale Mark | 2015-04-17 07:40:39 -0400

Make sure that no monsters with rElec++ or rPois++ are added.

--------------------------------------------------------------------------------
31dc73c219 | Shmuale Mark | 2015-04-17 07:40:37 -0400

Make monster rPois+ more like player rPois+
Basically, give monsters with it the same 1/3 chance to be poisoned.

Detailed list of changes:

* All nonliving monsters now have rPois+++ (some had rPois++ [!?])
* rPois+ monsters can be affected by wasp/hornets
* AF_STRONG_POISON, staves of poison, and the staff of olgreb no longer
  have their own special chance to pierce rPois for monsters
* Poison Arrow will poison rPois demons -- maybe this is wrong, but it
  also seems wrong to me for rPois on demons to be different to rPois on
  natural monsters
* the Scythe of Curses can't trigger against plants (who ever heard of a
  Death of Plants?)

--------------------------------------------------------------------------------
5ad1db4259 | Shmuale Mark | 2015-04-17 07:40:35 -0400

Make players who are immune to poison immune to poison (minmay).

--------------------------------------------------------------------------------
bf8946be16 | David Ploog | 2015-04-17 12:43:45 +0200

Dissolution vault (spacejung).
Dissolution inmidst of all three upstairs. Gotta get some love for
the last slime wiggling!

--------------------------------------------------------------------------------
07dd1c5c64 | Neil Moore | 2015-04-17 01:38:09 -0400

Re-add git-hooks/crawl-ref-email.
It was removed under the assumption that it was an example script, but
was in fact actually used by CDO.

Not sure whether this is enough, or if git-hooks/post-receive is also
needed.

This partially reverts commit ccd035b77412477c6107c5547b9e48b669835499.

--------------------------------------------------------------------------------
e239088b6c | Neil Moore | 2015-04-17 01:06:22 -0400

Make poison-immune players actually so (minmay)
We call them poison-immune, but mummies, gargoyles, etc. still took
impact damage from poison and from the resistible fraction of poison
arrow (1/6 normal damage, half of what rP+ players take).  Now they
take zero damage (but of course still take parrow's 30% irresistible
fraction).

We already make players completely immune to negative energy damage at
rN+++, so complete immunity is not unprecedented.

Alternatives considered:
  * Mark them as rPois+++ in the % screen instead of rPois∞, and
    change "immune" in the A screen to "very resistant". But that
    implies that rPois stacks and that rPois++ is possible.
  * Mark them as rPois+ in the % screen and change "immune", with
    or without scaling back poison damage resistance to 1/3.  But that
    gives no indication that they are different from, say, nagas.
  * Display resistance to poison damage and resistance to the poison
    status separately.

--------------------------------------------------------------------------------
87edefa621 | Nicholas Feinberg | 2015-04-16 18:37:40 -0700

Don't penalize your EV for winning
Winning (aka "winscumming") is often considered an overpowered
tactic, leading to frankly unbalanced levels of winrate, score,
and not losing. However, after long consideration & consultation
betwene developers, and, frankly, a great deal of soul-searching,
I've decided to remove the EV penalty. It's time. It's time for
us all to accept... winning.

(This is also a much-needed buff to leaving the dungeon *without*
winning.)

--------------------------------------------------------------------------------
eb0b421acb | Nicholas Feinberg | 2015-04-16 18:27:04 -0700

Fix some death code formatting

--------------------------------------------------------------------------------
e1c5091550 | Nicholas Feinberg | 2015-04-16 18:20:51 -0700

Remove the EV penalty for most delays
Now only ascending/descending stairs gives the penalty, and that
only because I'm afraid that it'd break game balance in some
subtle way to remove it.

--------------------------------------------------------------------------------
3723dc303b | Nicholas Feinberg | 2015-04-16 18:09:44 -0700

Remove the 17-year-old bespoke make_name() RNG
Also fixes a dubious behavior involving jiyva names and rng seeds.

--------------------------------------------------------------------------------
3698d9c9c5 | Nicholas Feinberg | 2015-04-16 17:55:30 -0700

Protect creatures in sanctuary from singularities
For consistency, essentially.

--------------------------------------------------------------------------------
b953737be8 | Nicholas Feinberg | 2015-04-16 17:55:22 -0700

Remove a spammy dprf
This was firing every turn...

--------------------------------------------------------------------------------
0541017f3e | Nicholas Feinberg | 2015-04-16 17:36:32 -0700

Mark a few crawlies edible
Tarantellas & orb spiders (neither of which are poisonous, and
the former are jokes about tarantualas, which are a Cambodian
delicacy); beetles (goliath, boulder & boring); and torpor snails.
Time for some escargot...?

The main intent is to soften the oppressively foodless nature
of CE_INEDIBLE Spider, but I think the changes are reasonable in
a vacuum.

--------------------------------------------------------------------------------
325eb2fb6f | Nicholas Feinberg | 2015-04-16 17:30:28 -0700

Revert "Revert "s/CE_ROT/CE_NOXIOUS/..."
After long discussion, we came to the conclusion that inedible
chunks are an experiment worth trying, at least for a week or so.

This reverts commit cc27ef7292fe46ce58b91c711d124c51c41a8713.
This reverts commit cf2218300023fe6f7b15b03be0e1930f90e8933e.

--------------------------------------------------------------------------------
3d58de17fe | Neil Moore | 2015-04-16 18:55:40 -0400

Remove an unused Tukima parameter.

--------------------------------------------------------------------------------
d6402d7081 | Neil Moore | 2015-04-16 18:31:24 -0400

Remove a now-unnecessary check.
We handle this several lines up now, and nothing in between should kill
the attacker (without returning, anyway), because injury mirror is now a
fineff.

--------------------------------------------------------------------------------
315e6c7171 | Neil Moore | 2015-04-16 18:31:24 -0400

Avoid potential crashes on chaos effect explosions.
If a miscast against the defender killed the attacker, bail out of
the attack.

--------------------------------------------------------------------------------
de280b1892 | Neil Moore | 2015-04-16 18:31:24 -0400

Don't crash when a chaos-flavoured tentacle hits a relative.
https://travis-ci.org/crawl/crawl/jobs/58809556

--------------------------------------------------------------------------------
7ec982df63 | Shmuale Mark | 2015-04-16 18:22:17 -0400

Patch by argonaut giving the fencer's glove a blade skill boost.
Also adds an explanatory note in the skill menu.

--------------------------------------------------------------------------------
7a7fcb4047 | Alan Malloy | 2015-04-16 18:22:15 -0400

Don't capitalize (only) the first letter of a letter-choice.

--------------------------------------------------------------------------------
cdee8e37fe | Shmuale Mark | 2015-04-16 18:22:14 -0400

Change spell uselessness descriptors.
"This spell will have no effect right now: Your current form prevents
flight."
->
"This spell will have no effect right now because your current form
prevents flight."

"You're too dead to regenerate."
->
"You cannot memorise this spell because you're too dead to regenerate."

--------------------------------------------------------------------------------
ee956e1960 | Shmuale Mark | 2015-04-16 18:22:12 -0400

Remove spell_is_uncastable.
Basically redundant with spell_is_useless.

--------------------------------------------------------------------------------
cf22183000 | Neil Moore | 2015-04-16 16:49:37 -0400

Fix a test again.

--------------------------------------------------------------------------------
00468da8c8 | Shmuale Mark | 2015-04-16 16:44:24 -0400

Fix a rare shop crash (#9608).
Not bothering to add a special message or anything since it's such a rare
event.

--------------------------------------------------------------------------------
05e37e80bc | Shmuale Mark | 2015-04-16 16:25:14 -0400

Make chaos spawns less buggy.

--------------------------------------------------------------------------------
147a1af2bc | Shmuale Mark | 2015-04-16 16:07:51 -0400

Remove mummies from D.
A slow, melee-only monster that even punishes you if you have the temerity
to bother attacking it. Not exactly a super-fun enemy.

Not removing entirely since it can work fairly well in Ossuary, where part
of the challenge of many maps is avoiding them; this works much better in
a pre-designed vault than in a main branch where there's no reason to ever
engage them.

--------------------------------------------------------------------------------
cc27ef7292 | Shmuale Mark | 2015-04-16 15:51:43 -0400

Revert "s/CE_ROT/CE_NOXIOUS/, s/CE_POISONOUS/CE_NOXIOUS/ (|amethyst)."
This reverts commit 12d63ccd80ff79eca70bac4de387d3e8af6daca9.

In practice, making them all inedible ended up much farther away from
the status-quo than making them all edible. And anyway, "you have to eat
permafood" is kind of a tacked-on restriction for the poison branches.
Crypt does that much more naturally, but even there it's a bit of a
strange way to differentiate a branch.

--------------------------------------------------------------------------------
54c4a4d668 | Nicholas Feinberg | 2015-04-15 21:00:09 -0700

Don't multiply gold for Gozag explosions (9641)

--------------------------------------------------------------------------------
87c4cb836e | Brendan Hickey | 2015-04-16 03:11:28 +0000

"Merge" branch domino
There was an earlier botched merge on domino branch that makes properly
merging this sort of horrible. The commit history on the branch is largely
irrevelant, so I don't feel the slightest bit bad about just yanking these
files.

--------------------------------------------------------------------------------
5cb7d3eeca | Shmuale Mark | 2015-04-15 21:46:36 -0400

Add nicolae to the credits.

--------------------------------------------------------------------------------
763bd81fc4 | nicolae | 2015-04-15 21:17:49 -0400

update spellbook definition syntax to not conflict with shop definition

--------------------------------------------------------------------------------
dc1cddb483 | Nicholas Feinberg | 2015-04-15 18:04:31 -0700

Remove lying comments
That function was removed some time ago (probably during ranged
combat reform?)

--------------------------------------------------------------------------------
86d0f11e13 | Nicholas Feinberg | 2015-04-15 17:50:33 -0700

Make elemental wellsprings less human
They had no defined MON_SHAPE, so they defaulted to 0,
MON_SHAPE_HUMANOID. Only affected rare messages and arguably
wasn't even wrong, but still kind of silly. They're MON_SHAPE_MISC
now.

Also, add a guard value & tests to prevent this from reocurring.

--------------------------------------------------------------------------------
4f410c6ee2 | Neil Moore | 2015-04-15 20:07:12 -0400

Fix a test.

--------------------------------------------------------------------------------
12d63ccd80 | Shmuale Mark | 2015-04-15 17:18:32 -0400

s/CE_ROT/CE_NOXIOUS/, s/CE_POISONOUS/CE_NOXIOUS/ (|amethyst).

--------------------------------------------------------------------------------
f1b8291236 | Shmuale Mark | 2015-04-15 16:55:19 -0400

Remove poisonous chunks.
They're mostly a hassle if you have rPois but are not wearing it all the
time, or may as well be clean if you permanent rPois. In Lair branches,
the only place where they're really concentrated, you can just as well eat
some of the tons of permafood that generates; food is certainly not a
problem in most games that get that far. And if we want to limit the
number of chunks you can get, restricting them behind a random resistance
is not the right way to go. No other resistance has any kind of strategic
effect in this way.

Ignite poison checks for innate poison spells now, so monsters nagas will
still be affected.

--------------------------------------------------------------------------------
34a6dd01c1 | Shmuale Mark | 2015-04-15 16:38:55 -0400

Fix compilation.

--------------------------------------------------------------------------------
8f9a36fee8 | Shmuale Mark | 2015-04-15 16:13:23 -0400

Remove actor weight.
max_corpse_chunks now returns a number that is the previous size-based
standard divided by 150. Things that used weight have been adjusted to use
max_corpse_chunks, scaled appropriately. There may be some gameplay
changes due to rounding errors, but hopefully not many.

--------------------------------------------------------------------------------
fa226005cd | Chris Campbell | 2015-04-15 20:32:54 +0100

Turn stat zero statuses into real durations

--------------------------------------------------------------------------------
8eeac33bf0 | Chris Campbell | 2015-04-15 20:32:54 +0100

Marshall NUM_DURATIONS as unsigned (|amethyst)

--------------------------------------------------------------------------------
845a74ad9e | Shmuale Mark | 2015-04-15 15:23:00 -0400

Remove some dead code.

--------------------------------------------------------------------------------
ed5d339ac5 | Shmuale Mark | 2015-04-15 15:22:58 -0400

Don't crash when a monster tries to zap a wand of heal wounds.

--------------------------------------------------------------------------------
1e76b450c0 | Shmuale Mark | 2015-04-15 15:22:57 -0400

s/ZAP_MAJOR_HEALING/ZAP_HEAL_WOUNDS/

--------------------------------------------------------------------------------
68aead1592 | Shmuale Mark | 2015-04-15 15:22:55 -0400

Remove item burning from Ignite Poison.
It's just a weird facet of an already-weird spell, and no plans I saw for
fixing the spell involved keeping it. We don't need to encourage lugging
around potions of degeneration!

--------------------------------------------------------------------------------
e43dd23d23 | Chris Campbell | 2015-04-15 19:51:30 +0100

Don't make buggy notes when summoned named allies die
Mostly applied to phantom mirror summons.

--------------------------------------------------------------------------------
d943c5d3d0 | Chris Campbell | 2015-04-15 19:51:30 +0100

Adjust some miscast messages
Fix some spelling errors, add a monster message, and remove a misleading
message about -Potion.

--------------------------------------------------------------------------------
4d6f9e616b | Chris Campbell | 2015-04-15 19:51:30 +0100

Improve a monster spell description

--------------------------------------------------------------------------------
8c9e7b5dda | Shmuale Mark | 2015-04-15 14:43:17 -0400

Add lightredbacks (simmarine).

--------------------------------------------------------------------------------
a48fc9951c | Shmuale Mark | 2015-04-15 13:21:22 -0400

Fire dragon -> lightred 'D', wyvern -> lightgreen 'l'.
For consistency with tiles and other fire monsters.

--------------------------------------------------------------------------------
3de3098b65 | Shmuale Mark | 2015-04-15 13:14:44 -0400

Cats don't have fingernails.

--------------------------------------------------------------------------------
73b4395747 | Shmuale Mark | 2015-04-15 13:04:20 -0400

Convert MONEAT_* to normal M_* flags.
No need for a separate field in the monster definition that can only have
two non-default values.

--------------------------------------------------------------------------------
8cbf9fb30f | Shmuale Mark | 2015-04-15 12:36:02 -0400

Refactor ugly_thing_mutate.
The exact chances aren't the same, but the same general idea of "change
colours to be more like close ugly things" is preserved.

--------------------------------------------------------------------------------
28ea44c234 | Shmuale Mark | 2015-04-15 10:57:13 -0400

Deduplicate wand-spell mapping.

--------------------------------------------------------------------------------
95395bbb31 | Shmuale Mark | 2015-04-15 10:45:07 -0400

Remove a memory leak.

--------------------------------------------------------------------------------
b88e6965fb | Shmuale Mark | 2015-04-15 10:43:44 -0400

Fix /HW targetting for Ely worshippers.
You can't pacify with the wand anymore, so this code is pointless.

--------------------------------------------------------------------------------
949c2d4448 | Shmuale Mark | 2015-04-15 10:40:21 -0400

Fix enslavement wand not showing success chance (#9624).

--------------------------------------------------------------------------------
8185899258 | Shmuale Mark | 2015-04-15 10:30:26 -0400

Prevent wasting enslave soul in some circumstances (#2479).

--------------------------------------------------------------------------------
5197bcdea5 | Shmuale Mark | 2015-04-15 10:19:15 -0400

Remove an unused enum value.

--------------------------------------------------------------------------------
707f55f986 | Shmuale Mark | 2015-04-15 10:19:07 -0400

Be more paranoid about attributing boosts to Ash.

--------------------------------------------------------------------------------
7863fb5532 | Shmuale Mark | 2015-04-15 10:18:49 -0400

Merge branch 'skillmenu'
Conflicts:
	crawl-ref/source/skill_menu.cc

--------------------------------------------------------------------------------
f3c920e20b | Nicholas Feinberg | 2015-04-14 22:03:11 -0700

Merge res_asphyx() into is_unbreathing()
An absurd, meaningless distinction...

Gameplay impact: slimes will no longer be vulnerable to spores,
and sky beasts will be vulnerable to curare/meph/spores.

--------------------------------------------------------------------------------
17c131fb26 | Nicholas Feinberg | 2015-04-14 21:41:08 -0700

Warn with blurryvis if enemies are near (9560)
A nasty gotcha for the forgetful & inattentive, esp. with
wretched stars.

--------------------------------------------------------------------------------
4707e02c1a | Nicholas Feinberg | 2015-04-14 18:01:10 -0700

Nerf ooze MHP
From 9-24 to 9-15. Mainly to decrease variance; also to compensate
for the speed 10 change.

--------------------------------------------------------------------------------
d58ca9dac2 | Nicholas Feinberg | 2015-04-14 18:00:06 -0700

Prune the changelog slightly
The bog body thing is slightly too minor; goliath beetles can
appear in that section when they're properly removed.

--------------------------------------------------------------------------------
d81fc5ac53 | Nicholas Feinberg | 2015-04-14 17:59:20 -0700

Enhance deck exhaustion messages (|amethyst)
To avoid them getting squashed by the same filters that people use
to filter out summons-vanishing messages, obviously.

Also, critically, to justify the special nemelex death messages.

:)

--------------------------------------------------------------------------------
691fc97e11 | Nicholas Feinberg | 2015-04-14 17:37:18 -0700

Cleanup _summon_dancing_weapon()
Flattening & correcting comments.

--------------------------------------------------------------------------------
d5d3c0f121 | Nicholas Feinberg | 2015-04-14 17:31:44 -0700

Update the credits

--------------------------------------------------------------------------------
450754d342 | Chris Campbell | 2015-04-14 23:24:09 +0100

Remove Xom's weapon swap effect
In practice it pushed players towards using unarmed to avoid the effect, or
carrying backup weapons to mitigate it.

--------------------------------------------------------------------------------
5b20525a60 | Chris Campbell | 2015-04-14 23:24:09 +0100

Base stat zero recovery on time instead of turns
Probably doing this by making stat_zero into a bunch of real durations would be
a better way of doing it, though.

--------------------------------------------------------------------------------
22c127ab59 | Neil Moore | 2015-04-14 17:04:06 -0400

Fix an error on unsigned char systems (#9630, wheals)
We were using a char to represent an inventory slot, with -1
meaning no slot; but on a system with unsigned chars, this fails:

   char slot = -1;
   if (slot == -1) // false, 255 != -1

Just use an int instead---it's probably faster anyway.

--------------------------------------------------------------------------------
dd9a4fa7f2 | Chris Campbell | 2015-04-14 18:53:35 +0100

Staticify

--------------------------------------------------------------------------------
f56c326f14 | Chris Campbell | 2015-04-14 18:53:35 +0100

Fix message channel for a mimic message

--------------------------------------------------------------------------------
87b32ff006 | Chris Campbell | 2015-04-14 18:53:35 +0100

Make Holy Word apply a daze instead of stunning, increase its damage
Stunning monsters by decrementing their energy is a fairly unintuitive and
hidden mechanic. In the case of holy word, it was also really strong to
guarantee a couple of turns of inaction from dangerous undead, and made the
weird side-effect often the main use for the scroll rather than the damage.

The stun is replaced with daze, which is a more visible (and much less
reliable) effect, and the damage increased to partially compensate.

--------------------------------------------------------------------------------
cd421114b4 | Chris Campbell | 2015-04-14 18:53:35 +0100

Increase the daze effect's chance of triggering
From 1/5 to 1/4.

--------------------------------------------------------------------------------
de9b2ab556 | Chris Campbell | 2015-04-14 18:53:35 +0100

Remove a special case for Zin uncleanliness
Death drakes and necrophages are already disliked and don't have any special
reason to have an extra point of uncleanliness - the other special-case
monsters are those that wouldn't otherwise be considered unclean at all.

--------------------------------------------------------------------------------
32d5e676cb | Chris Campbell | 2015-04-14 18:53:34 +0100

Remove monster corpse-eating
It was a mechanic that would almost never be noticeable or relevant. Also
removes some extra strange death ooze interactions (where eating a corpse
would leave a miasma cloud, and eating holy/silver items would hurt them).

--------------------------------------------------------------------------------
214d35718c | Chris Campbell | 2015-04-14 18:53:34 +0100

Remove some references to stat death
Xom and Felid revival can now leave you with 0 in a stat, so if you manage to
get yourself permanently at 0 somehow, you're stuck with it.

--------------------------------------------------------------------------------
679bb4b3bf | Chris Campbell | 2015-04-14 18:53:34 +0100

Remove AF_ROT from monster ghouls
They already have fairly noticeable melee damage, having them apply rot just
heavily encourages not fighting them in melee (also it's inconsistent with
player ghouls!).

--------------------------------------------------------------------------------
ad1d471046 | gammafunk | 2015-04-14 02:15:10 -0500

Changelog through 0.17-a0-570-g4b92f67

--------------------------------------------------------------------------------
4b92f6773a | Neil Moore | 2015-04-14 03:07:02 -0400

Don't crash on berserk/no-artifice melded evoke.
That is, pressing v while your weapon is melded and you either are
berserk, or have the no-artifice mutation.

http://crawl.akrasiac.org/rawdata/Arikie/crash-Arikie-20150414-053646.txt

--------------------------------------------------------------------------------
5c5269f6aa | Lamil Lerran | 2015-04-13 22:52:24 -0700

Format time strings for >24h correctly (9570)
- now win already!

--------------------------------------------------------------------------------
5fb0b34a06 | Nicholas Feinberg | 2015-04-13 22:49:19 -0700

Don't turn dead cats into animated trees (9565)
And add a nice message for that case, paralleling shapeshifter
messages. (Possibly that should appear for any dead shapeshifter
player...?)

--------------------------------------------------------------------------------
df1da4f327 | Nicholas Feinberg | 2015-04-13 22:37:14 -0700

nicolae shop updates (9594)
To nicolae_evil_shop and nicholae_blasting_shop.

--------------------------------------------------------------------------------
0bbdfb6308 | Nicholas Feinberg | 2015-04-13 22:22:41 -0700

Remove the breath effect from curare
Pretty much only relevant for unintuitive secret tech
(interrupting convokers & other chanters).

The poison can be renamed to something without a real-world
analog, if dsired.

--------------------------------------------------------------------------------
f4b5ea51f0 | Nicholas Feinberg | 2015-04-13 21:49:04 -0700

Make giant spores magic-immune (2420)
Thus removing an incredibly arcane reproduction/poly tech. Also
nerfing necromancers. RIP

--------------------------------------------------------------------------------
ade0a40b24 | Nicholas Feinberg | 2015-04-13 21:17:05 -0700

Don't place ragdoll_tomb_raider on Crypt:$ (9105)
Looks like an oversight when the branch was shortened.

--------------------------------------------------------------------------------
7eeabe56c3 | Nicholas Feinberg | 2015-04-13 21:09:37 -0700

Prompt for -ctele ?blink before blur (amalloy)
That is, give the "your blink will be uncontrolled" warning before
wasting time with blurry vision.

This was first reported in the comments of 9560.

--------------------------------------------------------------------------------
fd539b1f27 | Nicholas Feinberg | 2015-04-13 20:44:12 -0700

Turn fire dragons red (Marbit, Bloax)
For consistency with other fire monsters. (Ditto lindwurms.)

Credit to Bloax for the fire dragon recolour & Marbit for the
lindwurm & armour recolours. Also, for the thread that inspired
this.

--------------------------------------------------------------------------------
c1a238adc1 | Nicholas Feinberg | 2015-04-13 20:29:04 -0700

Remove goliath beetles from non-vault generation
While worms yet live, goliath beetles are a little redundant, much
though I adore them.

They're still around in vaults, though I don't feel strongly about
them remaining there.

--------------------------------------------------------------------------------
8f025e602f | Nicholas Feinberg | 2015-04-13 20:27:35 -0700

Make worms less kiteable
By trading some of their max hp for M_FAST_REGEN, which makes
them regenerate faster than 0-skill stone-throwing kiting tactics
can hurt them.

0-skill spear kiting still works, unfortunately, but that's both
available to fewer characters & somewhat faster/less tedious.

This also seems to roughly halve their average XP; they were
previously worth as much as a gnoll...

--------------------------------------------------------------------------------
acd32bc1ad | gammafunk | 2015-04-13 22:18:33 -0500

Use better syntax in a vault

--------------------------------------------------------------------------------
38dcebe0b1 | Nicholas Feinberg | 2015-04-13 19:57:57 -0700

Increase oozes to speed 10
One of the last slow melee monsters.

--------------------------------------------------------------------------------
b0848a3dbb | Nicholas Feinberg | 2015-04-13 19:54:46 -0700

Fix a pair of accidental semicolons
Added by 241a4319 and 0dad318b; respectively, they broke the
messaging on Zin's rot recitation & Alistair's int drain.

C++ is a bad language.

--------------------------------------------------------------------------------
ad01a12352 | Neil Moore | 2015-04-13 17:58:46 -0400

Refactor slouch damage formula (wheals)
Don't hard-code 1000 (= BASELINE_DELAY^3); include the factor of 4 in
_slouch_base_damage (so that it returns the average damage), and rename
that function; and don't bother checking for damage > 0 when roll_dice
handles that already.

--------------------------------------------------------------------------------
23c20b2595 | Neil Moore | 2015-04-13 17:21:17 -0400

Allow specifying the colour of ugly thing bands (gammafunk)
You could specify this for a single ugly thing, but bands would pick a
random colour anyway, including for the leader.  This affected both
"ugly thing band col:green" and "green ugly thing band".

--------------------------------------------------------------------------------
d48cdb6502 | Chris Campbell | 2015-04-13 21:46:15 +0100

Don't display -cTele messages with no cTele active

--------------------------------------------------------------------------------
7b12ee6001 | Chris Campbell | 2015-04-13 21:46:15 +0100

Remove the M_SHADOW and M_GLOWS_RADIATION flags
M_SHADOW caused shadowy monsters to be corona-immune and not give Dith piety,
as well as being more stealthy (so less likely to show a disturbance glyph
when invisible). The "shadow" monster keeps the stealth bonus since it can
sort of make use of it with innate invisibility.

M_GLOWS_RADIATION had no effects other than letting ugly things change colour,
which was incredibly unlikely to be relevant for monsters other than ugly
things themselves - the colour change now just checks for other ugly things.

--------------------------------------------------------------------------------
0f27dd5864 | Neil Moore | 2015-04-13 15:29:38 -0400

Clarify (wheals)

--------------------------------------------------------------------------------
12fdf4fcc0 | Neil Moore | 2015-04-13 14:55:28 -0400

Reduce slouch damage against jerky monsters.
Sixfirhy and jiangshi have much faster "movement speed" in theory than
in practice, because they move in bursts (so only on some fraction of
turns).  Account for that fraction in slouch damage.

This reduces slouch base damage versus jiangshi and sixfirhy
significantly; jiangshi are approximately where they were in 0.16, but
sixfirhy take only half as much damage as they used to.

  slouch base damage (before rolling)
             sixfirhy     jiangshi
  0.16.0:  40 - player   18 - player
  parent:  66 - player   30 - player
  now:     22 - player   16 - player

(This number isn't the actual damage; practically, slouch from a
max-piety Chei worshipper went from doing ~150 damage versus a
sixfirhy, to over 250 damage, down to ~70 damage.)

--------------------------------------------------------------------------------
650a54270f | Neil Moore | 2015-04-13 14:30:53 -0400

Base slouch damage on monster movement speed (kvaak)
It was based on the monster's raw speed, but as of 0.14-a0-2573-g4c9fca9
and 0.14-a0-3223-g0b45604 that is 10 for many more monsters.  Nagas and
spriggans, for example, have been taking the same slouch damage since
0.14.  This is very unintuitive, particularly given that the damage does
depend on the *player's* movement speed, and that attack speed had often
been normal-speed anyway before the changes (a low ACTION_ENERGY
combined with a low speed).

Now slouch hurts spriggans and tengu more than humans, and nagas and
curse toes less.  This also increases the damage significantly against
jiangshi and sixfirhy---probably we should account for their jerky
movement here.

--------------------------------------------------------------------------------
e73fd4f6c3 | Neil Moore | 2015-04-13 14:01:40 -0400

Factor out slouch damage formula.

--------------------------------------------------------------------------------
06b9595bb4 | gammafunk | 2015-04-13 04:10:26 -0500

Fix up an area in a vault

--------------------------------------------------------------------------------
5e20af8f69 | gammafunk | 2015-04-12 20:38:15 -0500

Clean up some des in a vault

--------------------------------------------------------------------------------
92f1a9008d | gammafunk | 2015-04-12 17:21:22 -0500

Moon base tweaks
Moon Changes:

* Always put Lehudib's Crystal Spear in the Lehudib randbook.
* Puts the loot from the lunar statue in a closet, so you can't just
  apport.
* Prevent the cacodemon area from being a teleport closet, since the
  player might not have dig.
* Small des cleanups.
* Restore default map weight now that it's been played a few times.

--------------------------------------------------------------------------------
fa30fa2920 | gammafunk | 2015-04-12 17:21:22 -0500

Give the moon troll more MR
An MR value similar to other HD 18 spellcasters.

--------------------------------------------------------------------------------
9e0f5ac1e3 | gammafunk | 2015-04-12 17:21:15 -0500

Fix monsters unnecessarily recasting singularity
This commit makes the monster not cast singularity if one is already
active versus its foe.

--------------------------------------------------------------------------------
13d7571624 | Neil Moore | 2015-04-12 16:53:35 -0400

Simplify.

--------------------------------------------------------------------------------
7258fb44b4 | Neil Moore | 2015-04-12 16:53:35 -0400

Use item.stacks() in autopickup.
Not only should this be significantly faster than the old checks for
potions, scrolls, and missiles, but it also handles a few additional
cases:

  * Phantom mirrors.
  * Food (including merging chunks appropriately depending on
    innate mutations).
  * Items with conflicting inscriptions (which should not stack).

--------------------------------------------------------------------------------
76ea92ffab | Neil Moore | 2015-04-12 16:41:47 -0400

Add lua method item.stacks([item])
item.stacks(otheritem):
    Return true if the two items stack.

item.stacks(nil) or item.stacks():
     Return true if the item stacks with any item in inventory.
     This could be written in lua using the other version, but
     iterating in C++ is much faster.

If the first or second item is a null-pointer item userdata (as opposed
to Lua nil), returns nil.  If the invocant is not an item somehow, or
the argument is neither an item nor nil nor missing, raises a lua error.

--------------------------------------------------------------------------------
62bfd06004 | Chris Campbell | 2015-04-12 21:27:00 +0100

Make stat zero recovery time independent from time spent at stat zero
Previously each turn at stat zero would make the recovery take one turn longer
(up to a cap of 200 turns), recovery time is now randomly rolled once and
doesn't increase afterwards.

--------------------------------------------------------------------------------
96b752d0d1 | Chris Campbell | 2015-04-12 21:27:00 +0100

Make being at stat zero apply normal slow with a status light
With the regular 1.5* slow, instead of 2* slowing that stacks for each stat
at zero - having multiple stats at zero is really not at all likely, and
displaying the status light makes it more obvious what's happening.

--------------------------------------------------------------------------------
008f2f92ff | Chris Campbell | 2015-04-12 21:27:00 +0100

Don't print Hell's farewell message when entering a subbranch

--------------------------------------------------------------------------------
85d58403e0 | Chris Campbell | 2015-04-12 21:27:00 +0100

Fix messaging for the Lunar Statue

--------------------------------------------------------------------------------
2158ce93fb | Chris Campbell | 2015-04-12 21:27:00 +0100

Adjust messages for portal vault entry
"Welcome to an ice cave!" sounds strange, adjusted portal vaults to say (for
example) "You enter an ice cave!" instead. These could be improved to be more
flavourful (like the existing Bazaar and Ziggurat messages).

--------------------------------------------------------------------------------
d3f74340c9 | Chris Campbell | 2015-04-12 21:26:59 +0100

Display cold-bloodedness in xv

--------------------------------------------------------------------------------
2a1cb5afca | Chris Campbell | 2015-04-12 21:26:59 +0100

Remove Freeze's stun effect
The stun is a completely hidden and unintuitive mechanic, and Freeze remains
a strong level 1 spell without it.

--------------------------------------------------------------------------------
0dad318b54 | Chris Campbell | 2015-04-12 21:26:59 +0100

Remove direct damage from stat loss while already at zero
Being permaslowed, on top of the additional stat-specific penalties, is likely
to be more than enough to kill any character where this would be relevant - in
practice the damage mostly just made the mechanic a bit more complicated.

This also means it's no longer necessary to track the cause for stat loss, so
the code is simplified somewhat too.

--------------------------------------------------------------------------------
31da84a262 | Neil Moore | 2015-04-12 15:44:32 -0400

Mark an abyssal run vault as unrand.
Otherwise one might find the abyssal rune on Abyss:2 or Abyss:1:
  http://crawl.akrasiac.org/rawdata/Tossi/morgue-Tossi-20150409-083755.txt

--------------------------------------------------------------------------------
d5b3667de9 | Neil Moore | 2015-04-12 15:14:59 -0400

Fix wretched expiration message (simmarine)

--------------------------------------------------------------------------------
be3d13a659 | Nicholas Feinberg | 2015-04-11 20:03:23 -0700

Tweak a few ARTP_VALs
Only relevant for wizmode.

--------------------------------------------------------------------------------
f4aa11fb28 | David Ploog | 2015-04-12 01:34:32 +0200

Remove ponds serial vault.
These were intended for flavour only, but they actually have negative
gameplay effects (e.g. for for merfolk or octopode characters). Removal
in accordancy with minmay (original contributor).

--------------------------------------------------------------------------------
c205fd0790 | Chris Campbell | 2015-04-11 22:26:01 +0100

Let Trog gifts get the -MP property

--------------------------------------------------------------------------------
241a431936 | Chris Campbell | 2015-04-11 22:03:21 +0100

Make all rotting take effect immediately instead of having a duration
The duration often resulted in very little rot actually being applied, since
it could usually be immediately cured with !curing.

--------------------------------------------------------------------------------
87e9d1361b | Chris Campbell | 2015-04-11 21:46:08 +0100

Don't let monsters gain maxhp when attacking with innate vampiricism

--------------------------------------------------------------------------------
86df72c338 | Chris Campbell | 2015-04-11 21:46:08 +0100

Remove some unused code for handling rot chunks
These can never be eaten except by Ghouls (who consider them clean).

--------------------------------------------------------------------------------
d771310cab | Chris Campbell | 2015-04-11 21:18:15 +0100

Reduce the amount of corrosion applied by word of entropy
To apply 4 stacks at most - 4 is still a very significant amount of corrosion,
but should make the effect slightly less overwhelming.

--------------------------------------------------------------------------------
f0f034c43b | Chris Campbell | 2015-04-11 21:18:15 +0100

Tweak word of entropy startup message
To be similar to word of recall, and consistent with the ending message.

--------------------------------------------------------------------------------
a839ce3eb1 | Neil Moore | 2015-04-11 14:04:06 -0400

Add -a option to make checkwhite/unbrace work from toplevel.
Can be combined with -m.

[skip ci]

--------------------------------------------------------------------------------
ece445d2dc | Neil Moore | 2015-04-11 14:04:00 -0400

Make checkwhite/unbrace -m work when not at toplevel.
[skip ci]

--------------------------------------------------------------------------------
00ca3d0170 | Neil Moore | 2015-04-11 13:37:42 -0400

Simplify.
We define increment/decrement operators for skill_type, so this
cast can be avoided.

--------------------------------------------------------------------------------
85b8d34964 | Neil Moore | 2015-04-11 13:02:20 -0400

Adjust indentation and braces.

--------------------------------------------------------------------------------
5adf0a8fce | Chris Campbell | 2015-04-11 15:52:34 +0100

Don't spawn quokkas, hounds or adders in Lair
Replacing (some of) their weight with MONS_NO_MONSTER.

--------------------------------------------------------------------------------
a18de542a7 | Corin Buchanan-Howland | 2015-04-11 09:46:13 -0400

Move entropy weavers to brown p and clean up some tile data
Entropy weavers are humanoids, so it makes sense to put them on p. They
were only on x originally because I mistakenly thought all the p colors had
been used. I put them on brown because they inflict corrosion.

--------------------------------------------------------------------------------
2b351165f5 | Corin Buchanan-Howland | 2015-04-11 09:46:12 -0400

Improve targeted chant code
Move outcome of chants to their own functions, re-standardize breath timer
and only apply it to targeted chants when they are executed on their target.

Add some messaging and noise to word of entropy.

--------------------------------------------------------------------------------
ab216f2fca | Corin Buchanan-Howland | 2015-04-11 09:46:11 -0400

Recheck previous corrosion properly on stacked corrosion
The previous behavior made word of entropy corrosion more consistent, but it
also created counterintuitive scenarios: if you got hit by entropy with 0
corrosion, you'd always get 5 stacks, but if you got hit by entropy with 1
stack, you'd end up with only 5 stacks frequently, and have a 1% chance of
ending up with only 4 stacks -- fewer than if you had never been corroded!

Now previous corrosion is updated every time a stack of corrosion is applied,
so the odds of each additional stack being applied decrease as expected.
This means 1) the total amount of corrosion expected from word of entropy
is more variable, and 2) it'll generally be lower. To compensate, I increased
the number of stacks that word of entropy attempts to apply from 5 to 6.
Most of the time that'll mean 4-5 stacks on an uncorroded target, but
sometimes it'll go up to 6.

--------------------------------------------------------------------------------
82abb52fcf | Alan Malloy | 2015-04-11 08:33:01 -0400

Adjust help text for (c) key when you're a vampire (#9629)
[Committer's note: renamed a couple of variables, and constified one.
 -nfm]

--------------------------------------------------------------------------------
6f938dfddb | Neil Moore | 2015-04-11 08:22:04 -0400

Allow Emacs-style ctrl-[pnbfd] in the line reader.
Ctrl-P: previous history line (<up>)
Ctrl-N: next history line (<down>)
Ctrl-F: forward a character (<right>)
Ctrl-B: backward a character (<left>)
Ctrl-D: delete a character (<delete>)

--------------------------------------------------------------------------------
d6a67cc561 | Nicholas Feinberg | 2015-04-10 20:21:48 -0700

Remove the findray test
Since it fails intermittently. A broken test is worse than none...

--------------------------------------------------------------------------------
17cb17f051 | Nicholas Feinberg | 2015-04-10 20:21:48 -0700

Improve shroud of golubria messaging (Haifisch)
For insubstantial monsters.

--------------------------------------------------------------------------------
7ac023daab | gammafunk | 2015-04-10 20:12:31 -0500

Don't use an outdated tile in an arrival vault (minmay)
This tile hasn't been updated since the new statue tiles, and a custom
isn't necessary for this vault to make sense. Also moving this vault to
a more appropriate des file.

--------------------------------------------------------------------------------
767cc62d94 | Neil Moore | 2015-04-10 18:32:08 -0400

Simplify.

--------------------------------------------------------------------------------
4b73ff66bc | Neil Moore | 2015-04-10 18:31:27 -0400

Autopickup stackable-with-inventory missiles, too.
Ignoring inscription---probably we should instead have a lua interface
to items_stack.

--------------------------------------------------------------------------------
4b949c7a68 | Chris Campbell | 2015-04-10 23:29:59 +0100

Don't crash on save transfer
Woops.

--------------------------------------------------------------------------------
66d72f2931 | Alan Malloy | 2015-04-10 17:16:52 -0500

Add a deck-themed monster minivault.
It's two pairs of humanoid monsters sitting around a "card table".

Commiter's note: Removed the restrictions on Orc:$ and Elf:$ since this
vault is fine on those levels. Also remove some whitespace and rewrapped
comments for 80 char lines.

--------------------------------------------------------------------------------
e61d2b1f59 | Neil Moore | 2015-04-10 17:11:26 -0400

Fix a comment typo.
[skip ci]

--------------------------------------------------------------------------------
25391b5c22 | Neil Moore | 2015-04-10 17:11:20 -0400

Constify attack::apply_defender_ac()
To show (and enforce) that it has no side-effects on the attack.

--------------------------------------------------------------------------------
13e4d0183c | Chris Campbell | 2015-04-10 21:32:59 +0100

Make Ashenzari give Scrying earlier (and into)
Move Scrying to 2* to encourage more use of it, and shift the skill boost to
3* and Clarity/SInv to 4*. The skill boost also depends on piety rank so having
it available slightly later should make it more noticeable when it kicks in.

--------------------------------------------------------------------------------
5fa6fb73a7 | Chris Campbell | 2015-04-10 21:32:59 +0100

Give Mummies and Vampires some stat gain with XL
Thematically they appeared to not have it due to their being undead, except
that Ghouls then do gain strength with XL. Having Demigods be the only stat
gain exception due to their unique mechanic seems cleaner. Gives Vampires id/5
and Mummies sid/5.

--------------------------------------------------------------------------------
7180ff7487 | Chris Campbell | 2015-04-10 21:32:58 +0100

Remove some hidden behaviour of aux headbutts and kicks
Headbutts applied a small stun to monsters and kicks with hooves bypassed some
AC, however neither of these were at all obvious or communicated to the player.

--------------------------------------------------------------------------------
67d7a0a6d7 | Chris Campbell | 2015-04-10 21:32:58 +0100

Tone down caustic shrikes slightly
Reduce their AC and HP a little, and make band sizes 3-5 instead of 3-6.

--------------------------------------------------------------------------------
3fb370b578 | Chris Campbell | 2015-04-10 21:32:58 +0100

Remove Shadow Creatures from lich spell sets
Especially in the later areas where liches are relatively common, its effect
is overwhelmingly likely to just force players to abandon the fight rather than
attempt to kill the summoner (even compared to other dangerous summoning
spells like SGD), since it can do things like summon multiple large bands,
additional liches, and so on.

--------------------------------------------------------------------------------
0ed363f2bd | Chris Campbell | 2015-04-10 21:32:58 +0100

Remove Corpse Rot from bog body spell lists
As a monster spell it doesn't really work, since the player has to actively
step on a corpse with the bog body in LOS for it to do anything, and it's very
unlikely for corpses to actually block off any path in Swamp.

--------------------------------------------------------------------------------
93f28752b3 | Alan Malloy | 2015-04-10 21:32:58 +0100

Make =aab print messages the way =iab and =sab do

--------------------------------------------------------------------------------
db80c5092e | Chris Campbell | 2015-04-10 21:32:58 +0100

Make teleportitis only trigger when it would land in LOS of enemies
Makes teleportitis teleports pick a spot as usual, but if there are no enemies
in LOS of the target then it silently aborts. This should make it have
significantly less of an effect when travelling through cleared levels, for
example, while still being dangerous otherwise.

Applies to all sources of teleportitis (mutation, ring, artefact property). The
range restrictions on the mutation have been removed, and the chance to trigger
increased slightly. The effect no longer triggers in Labyrinths or the Abyss.

--------------------------------------------------------------------------------
a8e22f6d9a | Chris Campbell | 2015-04-10 21:32:58 +0100

Remove the Tukima and Eringya wizlabs
These two were very weak in comparison to the others - Tukima features only
dancing weapons (which are well-represented in the Hall of Blades vault) and,
Eringya's monster set is similarly uninteresting and unthreatening, as well as
being very unsuited to the layout.

--------------------------------------------------------------------------------
3da1f158ec | Neil Moore | 2015-04-10 16:29:40 -0400

Mark potions of strong poison as bad/useless.
In old transferred games.

--------------------------------------------------------------------------------
c97a6c5374 | Neil Moore | 2015-04-10 16:27:50 -0400

Mark poison perma-useless even for the temporarily rP (#9626)
Rather than trying to specify the conditions where poison is not
a bad item, just call is_bad_item.

--------------------------------------------------------------------------------
9f5bcc45e7 | gammafunk | 2015-04-09 12:35:34 -0500

Fix the travis build image (Medar)

--------------------------------------------------------------------------------
bd49765182 | Neil Moore | 2015-04-09 04:53:34 -0400

Keep moon trolls on the moon.
Don't allow polymorphing things into moon trolls, and don't generate
random undead moon trolls.  Hellbinder and Cloud Mage don't need these
flags because they are species MONS_HUMAN, but the moon troll is its own
species.

--------------------------------------------------------------------------------
834d32a21f | Neil Moore | 2015-04-09 04:40:24 -0400

Fix some compilation failures on the next major bump
There are probably more: I only made it through the first half of the
alphabet.

--------------------------------------------------------------------------------
3d1acac74f | gammafunk | 2015-04-08 23:56:36 -0500

Fixe compilation for console builds

--------------------------------------------------------------------------------
0a147b9ce3 | gammafunk | 2015-04-08 22:16:31 -0500

A new wizlab: Lehudib's Moon Base
NOTE: This wizlab has double weight for now, which will be lowered to
normal weight after a week or two of testing in trunk.

Lehudib, whose famous writings on earth magic left few personal details,
is said to have studied the power of magical crystal with single-minded
devotion and in the most distant location imaginable. After traveling to
some forgotten Moon and carving a fortress into its very surface, the
wizard somehow convinced the bizarre surface creatures there to stand
guard. Who can say what other knowledge this self-described Lunar Mage
learned in such isolation? Adventurers who manage to reach the remote
Moon Base of Lehudib may indeed find powers beyond their comprehension.

This is a large and tough map featuring the legendary moon troll as a
final guardian, which is always wearing moon troll leather armour if
this hasn't generated (otherwise just artefact TLA). The moon troll is
basically a speed 12, 18 hd iron troll with Singularity.

The portal to the moon troll can appear with equal chance at one of 4
locations on the map, with one or two paths available near the
start. Each portal location has a sub-guardian, and there's an optional
fight with the Lunar Statue (an OCS with Lehudib's Crystal Spear and
Shadow Creatures) that guards an acquirement item.

Monsters are earth, acid, or crystal themed, together with some eyes and
the space-themed abyssal enemies for decisive Moon Flavour. Loot is
mostly random, aside from the moon troll leather armour, a cure or
beneficial mutation potion guarded by malmuters, and a randbook named
after Lehudib with any one of earth/transmutation, earth/translocation,
or earth/conjurations spells as the theme.

For visuals this map uses a blue volcanic wall variant as stone and
crystal walls with animated colours.

--------------------------------------------------------------------------------
af468b767f | gammafunk | 2015-04-08 22:16:31 -0500

Allow colour changes of crystal walls to automatically change the tile
When the colour of a crystal wall is set, the crystal wall tile used
will now match this colour, just as it does for rock walls.

--------------------------------------------------------------------------------
16cc79a434 | gammafunk | 2015-04-08 22:16:31 -0500

Rename green crystal wall to simply crystal wall
These walls are green by default but can be recoloured for e.g. portal
vaults. This commit makes their description entry and all related values
not refer to green, so that in-game descriptions won't be confusing in
the rare instances when colour is changed.

These walls can now have a feature name of simply crystal_wall in
e.g. des files.

--------------------------------------------------------------------------------
26b0c5949e | gammafunk | 2015-04-08 22:16:31 -0500

Add a blue volcanic rock variant
Made as a variant from the red volcanic wall tile. I'll be using this in
a wizlab.

--------------------------------------------------------------------------------
0e03f6a48d | Shmuale Mark | 2015-04-08 13:15:27 -0400

Don't gain level mutations if you were already at that level (kvaak, |amethyst).

--------------------------------------------------------------------------------
810ce3f37b | Neil Moore | 2015-04-07 17:58:09 -0400

Add amalloy to mailmap and credits.

--------------------------------------------------------------------------------
6233edf2a1 | Alan Malloy | 2015-04-07 17:57:39 -0400

Fix targeting of Dithmenos spell-shadowing (#9614)
If you target a floor tile with za., your shadow shouldn't use zaf
targeting, which might, eg, hit an allied monster behind the tile
you targeted.

[Committer's node: would be nice to do this for shadow throw, too,
 but that's a little more complicated. -nfm]

--------------------------------------------------------------------------------
834b8e31c1 | Chris Campbell | 2015-04-07 19:58:42 +0100

Update some out-of-date options
And fix an options_guide typo.

--------------------------------------------------------------------------------
67821dcd91 | Nicholas Feinberg | 2015-04-07 11:03:20 -0700

Fix a few changelog errors

--------------------------------------------------------------------------------
56f720c258 | Nicholas Feinberg | 2015-04-07 10:28:47 -0700

Reorder Gell's Gravitas in a few books
To match its reduced spell level.

FR: automate this...

--------------------------------------------------------------------------------
519dd2a8ba | Nicholas Feinberg | 2015-04-07 10:26:04 -0700

Changelog through 0.17-a0-477-g451446c

--------------------------------------------------------------------------------
451446cc73 | reaverb | 2015-04-06 21:53:01 -0400

Remove some dead corpse sacrifice code
Fedhas uses a differant code-path, Trog was the last god to use this
code.

--------------------------------------------------------------------------------
045ba15337 | reaverb | 2015-04-06 21:45:53 -0400

Adjust Trog description for piety changes

--------------------------------------------------------------------------------
968472a905 | reaverb | 2015-04-06 21:24:19 -0400

Remove Trog corpse sacrifices
The piey gain from killing living creatures has been increased to
compensate, and natural piety decay has been slightly reduced.

(see 6f54bd88d for reasoning behind removing corpse sacrifices)

--------------------------------------------------------------------------------
b00c60c8c7 | Chris Campbell | 2015-04-06 23:24:53 +0100

Remove some outdated Donald lines
And correctly capitalise "orb guardian" (n1k)

--------------------------------------------------------------------------------
fd9ac067fb | reaverb | 2015-04-06 14:27:47 -0400

Place only books with Tukima's Dance as Tukima's Studio loot (lobf)
Used to gift the Book of Enchantments, which no longer has Tukima's
Dance.

--------------------------------------------------------------------------------
95725d1f6d | Shmuale Mark | 2015-04-06 10:33:39 -0400

Remove redundant evasion functions (#9610).
The main effect is that delay/constricting EV penalties will be shown on
the HUD, and that they will apply to beams/traps as well as melee/missile.

--------------------------------------------------------------------------------
172d376e88 | Neil Moore | 2015-04-06 10:16:16 -0400

Bitfieldify ev_ignore_type (wheals)

--------------------------------------------------------------------------------
171ef40118 | Neil Moore | 2015-04-06 00:51:01 -0400

Increase offensive chant cooldown tenfold.
From 0.2 turns on average (max 0.4) to 2 turns (max 4).

Also remove an obsolete comment and use random_range.

--------------------------------------------------------------------------------
696e5a1139 | Nicholas Feinberg | 2015-04-05 17:40:22 -0700

Tweak some entropy weaver text
Mostly for style.

--------------------------------------------------------------------------------
2a4c9a4838 | Chris Campbell | 2015-04-06 00:19:54 +0100

Make the dungeon overview respect easy_exit_menu (#9611)

--------------------------------------------------------------------------------
5c4fa29842 | Chris Campbell | 2015-04-05 23:25:59 +0100

Fix messaging for out-of-sight monsters re-entering water/lava
Broken with the addition of lava flopping!

--------------------------------------------------------------------------------
e87b2fe023 | Chris Campbell | 2015-04-05 20:15:48 +0100

Don't allow self-targeting Tukima's Dance (|amethyst)
Since it always creates hostile weapons. Allowing it only for the edge case of
removing uncursed weapons is probably not necessary.

--------------------------------------------------------------------------------
279efb6a29 | reaverb | 2015-04-05 01:00:32 -0400

Unbrace (mon-ench.cc

--------------------------------------------------------------------------------
85d6e2c415 | Nicholas Feinberg | 2015-04-04 20:43:41 -0700

Allow Xv-ing
Exactly as x-v, working on map memory.

This has driven me nuts forever...

--------------------------------------------------------------------------------
c7f3adad7f | Nicholas Feinberg | 2015-04-04 20:30:16 -0700

Squash an uninitialized variable warning
This code should probably be pulled out into a couple of
static functions...

--------------------------------------------------------------------------------
7e54ce1b25 | Nicholas Feinberg | 2015-04-04 16:03:11 -0700

Rewrite some spell descriptions
And remove the spell description for 'SPELL_MELEE', which I
believe is no longer?

--------------------------------------------------------------------------------
772d41ba5c | Chris Campbell | 2015-04-04 22:22:50 +0100

Adjust &G some more, document a hidden feature (|amethyst)

--------------------------------------------------------------------------------
ebd7a62c64 | Chris Campbell | 2015-04-04 21:49:07 +0100

Adjust Glaciate description
To remove another reference to turns.

--------------------------------------------------------------------------------
1fb6424463 | Chris Campbell | 2015-04-04 21:49:07 +0100

Allow &G to dismiss all monsters in LOS

--------------------------------------------------------------------------------
2cb00e4aef | Corin Buchanan-Howland | 2015-04-04 16:39:56 -0400

Make chant descriptions cleaner but more ambiguous (MarvinPA)

--------------------------------------------------------------------------------
5c4afcc482 | Corin Buchanan-Howland | 2015-04-04 16:32:04 -0400

Improve the accuracy of chant fire storm's description (MarvinPA)

--------------------------------------------------------------------------------
eac769b8bc | Chris Campbell | 2015-04-04 21:18:52 +0100

Fix Word of Entropy description

--------------------------------------------------------------------------------
1235473fdd | Corin Buchanan-Howland | 2015-04-04 15:00:39 -0400

Adjust breath timers for new chants
The targeted chants will get much shorter breath timers since you can
completely dodge the effect by getting out of LOS.

--------------------------------------------------------------------------------
3ff70fcd4d | Corin Buchanan-Howland | 2015-04-04 15:00:39 -0400

New monster: Entropy Weaver
Entropy weavers have four weak-ish attacks and a word-of-recall-type spell,
word of entropy. The spell applies 5 stacks of corrosion after a 3 turn
chant delay; the weavers come with a small band of spiders to take advantage
of the corroded player, but the weavers themselves become reasonably
dangerous once you are badly corroded.

Entropy weavers can be found mostly in Spider and Depths, but also rarely in
Vaults.

This monster needs a new tile.

--------------------------------------------------------------------------------
808c41ea1c | Chris Campbell | 2015-04-04 16:54:03 +0100

Use a canned message more appropriately
Only use "The spell fizzles." for cases where the costs are paid but the spell
did nothing, not for cases where the spell is aborted with no costs.

--------------------------------------------------------------------------------
0cf06704da | Chris Campbell | 2015-04-04 16:24:41 +0100

Give Gravitas a cast message

--------------------------------------------------------------------------------
7904a77447 | Chris Campbell | 2015-04-04 14:01:22 +0100

Give Tukima's Dance a power multiplier
Since it doesn't directly incapacitate or disable its target, as well as only
working on monsters that have a weapon.

--------------------------------------------------------------------------------
1a6406902a | Chris Campbell | 2015-04-04 13:42:41 +0100

Improve Gell's Gravitas some more
Reduce it to level 3 and make it smite-targeted, but remove the confusion.

--------------------------------------------------------------------------------
c47b28fc45 | Chris Campbell | 2015-04-04 13:42:41 +0100

Replace Enslavement with Gell's Gravitas in AM's book
Controlling monster movement fits the theme of the book (along with Slow,
Leda's, etc), although the spell probably still needs some improvement to be
usable on AM.

--------------------------------------------------------------------------------
23aec495a8 | Chris Campbell | 2015-04-04 13:42:41 +0100

Replace Enslavement with Tukima's Dance in En's book
Also removes Tukima's from the book of Enchantments (it's also found in Party
Tricks still, which is fairly common).

--------------------------------------------------------------------------------
e31a7e5275 | Chris Campbell | 2015-04-04 13:42:41 +0100

Remove the Enslavement spell
As a limited effect on wands it works, but in spell form it's problematic, as
having unlimited attempts to turn monsters into allies is very strong.

--------------------------------------------------------------------------------
0166263799 | gammafunk | 2015-04-04 03:15:12 -0500

Add a dlua function you.unrands() to see if a unique item has generated

--------------------------------------------------------------------------------
11f9886f79 | gammafunk | 2015-04-04 03:13:56 -0500

Do unrandart name lookup consistently
Treat the input for get_unrandart_num() the same way we do to the unrand
names we're comparing.

--------------------------------------------------------------------------------
f9be5f30ad | Nicholas Feinberg | 2015-04-03 22:37:58 -0700

Remove an exploitable meatsprint hole-in-the-wall
Thanks to xentronium for explaining the bug.

--------------------------------------------------------------------------------
36df04e189 | Nicholas Feinberg | 2015-04-03 22:08:32 -0700

Simplify more AF_SWOOP logic

--------------------------------------------------------------------------------
95ffbf9e83 | Nicholas Feinberg | 2015-04-03 22:05:10 -0700

Remove giant mites properly
oops...

--------------------------------------------------------------------------------
3d2efc4316 | Jesse Luehrs | 2015-04-04 00:57:53 -0400

it bothers me that these enums are not all four characters long

--------------------------------------------------------------------------------
141ad5435e | Jesse Luehrs | 2015-04-04 00:57:36 -0400

Revert "Remove giant mites"
This reverts commit 7ba5d8401640c161b45f215c4e7993b91273315c.

--------------------------------------------------------------------------------
7ba5d84016 | Nicholas Feinberg | 2015-04-03 21:48:49 -0700

Remove giant mites
What do they do that can't be done better by, say, adders?

--------------------------------------------------------------------------------
34b7a603bb | Nicholas Feinberg | 2015-04-03 21:14:40 -0700

Flatten & comment AF_SWOOP code
Questionable line marked with chess notation.

--------------------------------------------------------------------------------
26d9420ba7 | Nicholas Feinberg | 2015-04-03 21:04:20 -0700

Increase porcupine damage
Give them enough teeth to make them worth actually hitting.
(About midway between sheep & yak damage.)

--------------------------------------------------------------------------------
3aecbe7c41 | Nicholas Feinberg | 2015-04-03 21:01:49 -0700

Simplify monster spines
All monsters with spines now work the same way: a 1/3 chance, when
attacked, of doing 5d4 AC-reduced damage. Hell Sentinels are
unchanged; porcupines, torturous demonspawn (!), and briar patches
(!!) are buffed somewhat. (The former two from a 1/5 chance of
3d4 damage, the latter from who cares.)

This should hopefully make porcupine spines actually do anything;
the others are a lost cause.

This commit also fixes a bug; base torturous demonspawn (not
blood saints, etc) did *not* have spines. Now they do.

--------------------------------------------------------------------------------
c4df3453f8 | Nicholas Feinberg | 2015-04-03 19:58:41 -0700

Don't give piety for pacifying elftwins
Special cases.......

--------------------------------------------------------------------------------
d10bb7c9a4 | Corin Buchanan-Howland | 2015-04-03 20:55:50 -0400

Make stormcallers more and less like salamanders
Increasing their hp-per-hd to salamander levels and make their speed normal
because why are non-firebrand salamanders slow anyway.

--------------------------------------------------------------------------------
e77af6f334 | Corin Buchanan-Howland | 2015-04-03 20:35:19 -0400

Reconceptualize firecallers a bit
Raising hd to 11 (gammafunk), making them salamanders and renaming them
to salamander stormcaller (to not conflict w/ salamander firebrand)

--------------------------------------------------------------------------------
06743f9df4 | Corin Buchanan-Howland | 2015-04-03 20:35:18 -0400

throw a bit of a curve into the flat mp formula
The purely linear formula was maing early game mp much too low. I've chosen
to offset it by giving 0.5 bonus mp for each of the first eight experience
levels provided your skills provide at least as much mp, and make the last
4 experience levels give no mp. The total possible mp from experience and
skill is unchanged.

This is still easier to conceptualize and formulate than a stepdown.
If this still feels worse or more confusing than the stepdowned formula
we should probably go back to stepdowns.

--------------------------------------------------------------------------------
1d44a3a612 | reaverb | 2015-04-03 17:52:04 -0400

Don't shadow a variable (hiscores.cc)

--------------------------------------------------------------------------------
8a98999889 | Nicholas Feinberg | 2015-04-02 21:19:07 -0700

Mention that !cancel reduces contam
Someone pointed out to me a while back that it's not obvious that
it would do this, if you weren't familiar with ?vuln.

--------------------------------------------------------------------------------
ec93a36508 | Nicholas Feinberg | 2015-04-02 21:07:17 -0700

Don't postincrement a bool in a conditional
Or, indeed, at all.

--------------------------------------------------------------------------------
f48d7455b4 | Nicholas Feinberg | 2015-04-02 21:05:12 -0700

Add a clarifying message to !cancel (TAS_2012v)
When it removes only part of a levle of contam.

--------------------------------------------------------------------------------
a655056720 | Nicholas Feinberg | 2015-04-02 20:47:56 -0700

Don't give Cerebov a wand of flame
And, in general, try to avoid neutering tough monsters by
letting them waste their turns using weak wands. (RIP magic dart
Boris.)

As noted, this algorithm is pretty ugly and could probably do
with another pass...

--------------------------------------------------------------------------------
079f637aa4 | Brendan Hickey | 2015-04-03 03:27:44 +0000

Increase miasma rot
This is to offset 1:1 rot healing via curing and hw.

--------------------------------------------------------------------------------
b91274e199 | Nicholas Feinberg | 2015-04-02 20:13:43 -0700

Fix spellforged servitor MHP

--------------------------------------------------------------------------------
14aae0eebc | Nicholas Feinberg | 2015-04-02 20:06:38 -0700

Brutally nerf monster Spellforged Servitor
Should be slightly weaker than its summoners now (~ish), rather
than dramatically more powerful.

Also randomize max HP, as part of a personal crusade against non-
randomized monster MHP.

--------------------------------------------------------------------------------
0f317081a5 | Nicholas Feinberg | 2015-04-02 19:55:01 -0700

Remove a spammy dprf

--------------------------------------------------------------------------------
23314d029e | Nicholas Feinberg | 2015-04-02 19:53:19 -0700

Remove the 0-stat acq special case (minmay)
Means that having low stats gives you better items, arguably
(since some -stat artefacts get vetoed); just kind of a weird
special case & not really necessary now that negative stats won't
kill you (directly).

--------------------------------------------------------------------------------
a54c0b0394 | gammafunk | 2015-04-02 20:55:58 -0500

Tweaks to the quickstart doc (wheals, amalloy)

--------------------------------------------------------------------------------
ccd035b774 | gammafunk | 2015-04-02 20:55:58 -0500

Move the pre-commit example and remove the outdated git-hooks directory

--------------------------------------------------------------------------------
989c1e5d3c | gammafunk | 2015-04-02 20:55:50 -0500

Update the pre-commit hook examples and add util/checkcommit
Call to util/checkwhite, util/unbrace, and util/checkcommit, with the
latter being the code from the old pre-commit script that's not
duplicated by checkwhite and unbrace.

--------------------------------------------------------------------------------
fc13e345f4 | gammafunk | 2015-04-02 20:35:32 -0500

Update repository references to github from gitorious in the docs
Updates all urls and examples to use github, since we're moving
there. This commit also reworks portions of the development quickstart
to use slightly more recent examples and not include aspects of making a
release that are better covered in docs/develop/release.txt.

--------------------------------------------------------------------------------
c4a8610c41 | Shmuale Mark | 2015-04-02 17:54:03 -0400

Add exploding tomahawks.
I had intended to do this way back when removing darts, so that there
remained an exploding throwable. The weight replaces unbranded tomahawks
rather than another brand, which I'm fine with.

--------------------------------------------------------------------------------
b89a2784c3 | Shmuale Mark | 2015-04-02 17:46:43 -0400

Remove special-cased name for gold mimic (#9603).

--------------------------------------------------------------------------------
cee65a253a | Shmuale Mark | 2015-04-02 17:31:25 -0400

Make G&G a pair of quick blades (#9550).
As much as it pains me to make them even more verbose, this seems like the
simplest way to fix their grammatical issues. On the plus side, they still
fit on the inventory screen just fine, and thanks to ChrisOelmueller they
don't get cut off on the weapon HUD line either.

--------------------------------------------------------------------------------
2e64c196ad | Chris Campbell | 2015-04-02 18:22:15 +0100

Tweak firecaller description

--------------------------------------------------------------------------------
671d411ba2 | Jesse Luehrs | 2015-04-02 10:06:16 -0400

update submodule locations

--------------------------------------------------------------------------------
57f29372f3 | Corin Buchanan-Howland | 2015-04-02 08:07:53 -0400

Fix some firecaller bugs
Make the game not crash when enslaved firecallers try to fire storm, remove
a debug mpr, and display chanting status in xv. Also raise hd by 2; blame
gammafunk for that.

This doesn't fix firecallers failing to fire storm enemies while enslaved
but I don't have time to fix that yet.

--------------------------------------------------------------------------------
d4fac0c7e8 | Corin Buchanan-Howland | 2015-04-01 21:24:49 -0400

Add firecallers
Firecallers are fire cultists with flaming melee and a spellbook including
conjure flame and chant fire storm a spell that immobilizes the caster for
3.5 turns and then calls down a fire storm on you. Think 'word of recall
fire storm'. This is an attempt to make use of the interesting space opened
up by word of recall.

Firecallers are rare spawns in late D, as well as Vaults, Abyss and Depths.
That might narrow after some testing.

--------------------------------------------------------------------------------
b2cdbc8c08 | gammafunk | 2015-04-01 16:07:35 -0500

Brace

--------------------------------------------------------------------------------
a838617515 | gammafunk | 2015-04-01 16:07:35 -0500

Don't give merfolk impalers special armour types
Previously they had a small ~3% chance each for TLA or steam DA but
mostly got a robe or leather armour. Now they only get the last two, but
with a ~6% chance for it to become a good item.

--------------------------------------------------------------------------------
4e08597d36 | Alex Jurkiewicz | 2015-04-01 16:07:35 -0500

Let troll leather armour regen work on player trolls
Committer's note: The change is being made because there's no gameplay
reason why TLA shouldn't work on trolls when other sources of regen
do. I also cleaned up indent and clarified commit title.

--------------------------------------------------------------------------------
f19a69b57a | Chris Campbell | 2015-04-01 20:28:15 +0100

Make picking up the Orb while teleporting increase your teleport duration
So that starting a teleport before picking it up is less significantly better
than doing so afterwards.

--------------------------------------------------------------------------------
74bb6a8bf2 | Chris Campbell | 2015-04-01 20:28:15 +0100

Capitalise the Orb

--------------------------------------------------------------------------------
e68932e421 | Chris Campbell | 2015-04-01 20:28:15 +0100

End fear when going up stairs as well as down
Constriction and beholding only applied to downstairs because changing level
while under their effect is only possible when shafted (possibly???), fear
has no restriction on changing levels.

--------------------------------------------------------------------------------
747288f1f9 | Chris Campbell | 2015-04-01 20:28:14 +0100

Clean up blood from flaying when changing levels

--------------------------------------------------------------------------------
3cfbbbe175 | Chris Campbell | 2015-04-01 20:28:14 +0100

Make linesprint trees into permatrees

--------------------------------------------------------------------------------
023398c043 | Shmuale Mark | 2015-04-01 12:03:34 -0400

A lame explanation of Natasha's gimmick in her desc.

--------------------------------------------------------------------------------
9ca9a04988 | Shmuale Mark | 2015-04-01 12:03:32 -0400

Clarify some minutiae of Beoghite theology.

--------------------------------------------------------------------------------
237a842ded | Chris Campbell | 2015-04-01 16:48:51 +0100

Reduce the piety cost of TSO's angel summons
Since they can no longer follow across floors, and their chances of recieving
blessings have been reduced.

--------------------------------------------------------------------------------
94850abc08 | Chris Campbell | 2015-04-01 16:48:46 +0100

Rework TSO ally blessings
Similar to the recent changes to Beogh blessings, don't have your ally getting
the killing blow make them more likely to recieve a blessing. Remove TSO's
extra chance to heal a follower that gets a kill (and handle healing blessings
through the normal blessing system instead). Additionally, remove the weapon
and armour enchantment blessings, since TSO allies are no longer likely to stay
around for huge periods of time (as they can't follow across floors any more).

--------------------------------------------------------------------------------
2f931f7cef | Chris Campbell | 2015-04-01 16:34:27 +0100

Fix inverted god blessing logic
fbd3856a was intended to make the chance of successful blessing 1/4, instead
it made only 1/4 of blessings fail.

--------------------------------------------------------------------------------
3c5ba68713 | Chris Campbell | 2015-04-01 16:34:27 +0100

Make MP-powered wands a single level mutation
Since its significant effect of limiting wand usage at low MP applies even
at the first level, but the power boost at level 1 was minimal. It now gives a
power boost of 4/3 (the same as the mutation at level 2, previously). Also
improve the messaging when gaining the mutation (although the new message
doesn't make much sense when not carrying wands, it's probably still better
than the completely uninformative old message).

--------------------------------------------------------------------------------
6e4b4639c8 | Chris Campbell | 2015-04-01 16:34:27 +0100

Adjust some Depths spawns
Remove a number of non-threats (hill giant, vampire, low-tier elves), some
Lair/Lair branch monsters (manticore, torpor snail, dire elephant, death yak,
catoblepas, emperor scorpion) that also tended not to be threatening as well
as feeling out of place outside Lair, and minotaurs which were out of place
outside Labs. Redistribute a bit of the weight entirely arbitrarily (to some
other generally weak-ish monsters that at least fit a bit better in Depths).

--------------------------------------------------------------------------------
5177e4caef | Shmuale Mark | 2015-04-01 10:54:20 -0400

Merge branch 'pizza_tornado'

--------------------------------------------------------------------------------
88ae7ac0ab | Shmuale Mark | 2015-04-01 10:42:34 -0400

Make the initfile messages on the startup screen more grammatical/logical.
Can't find a way to make it fit on 80x24 very well, but local console
isn't exactly too popular.

--------------------------------------------------------------------------------
5611d23380 | Shmuale Mark | 2015-04-01 10:14:22 -0400

Remove another global.

--------------------------------------------------------------------------------
e4e37d7a90 | Shmuale Mark | 2015-04-01 09:48:43 -0400

Don't say "Found X items." instead of listing the items when unnecessary.
It was supposed to happen only when the total length exceeded the message
window width, but the length of the <colour> tags was being included. Very
easy to reproduce by making randart CPAs on a race that can't use them.

--------------------------------------------------------------------------------
7fe536a781 | Shmuale Mark | 2015-04-01 08:52:03 -0400

Fix some glaringly incorrect English.
From Strunk and White:

     Form the possessive singular of nouns with 's.

     Follow this rule whatever the final consonant. Thus write,

     Charles's friend
     Burns's poems
     the witch's malice

     This is the usage of the United States Government Printing Office and
     of the Oxford University Press.

     Exceptions are the possessives of ancient proper names in -es and
     -is, the possessive Jesus', and such forms as for conscience' sake,
     for righteousness' sake.

Most of our possessives are of singular monsters, so this change, while
it makes apostrophise() incorrect if used on plural words, is still better
than the status quo IMO.

Maybe apostrophise() should make exceptions for apis, Agnes, Frances, and
Norris? Apis is definitely ancient, but we don't use it as a proper name
(though it originally was one). I don't know whether the other ones are
ancient.

--------------------------------------------------------------------------------
f65f132157 | Shmuale Mark | 2015-04-01 08:11:45 -0400

Run checkwhite on docs/ and settings/ (reaverb).

--------------------------------------------------------------------------------
4a3927484b | Jesse Luehrs | 2015-04-01 02:49:44 -0400

update submodule locations

--------------------------------------------------------------------------------
f1f7f455c6 | Jesse Luehrs | 2015-04-01 02:35:32 -0400

update ?? for 5 change

--------------------------------------------------------------------------------
796e82ab2a | Jesse Luehrs | 2015-04-01 02:29:44 -0400

consistent messaging

--------------------------------------------------------------------------------
3677103389 | Nicholas Feinberg | 2015-03-31 23:25:20 -0700

Make Nergalle take 10x longer to recast DDoor
The exhaustion now lasts 10-30 turns, up from 1-3. Plenty to kill
her in, unless you've already run away.

--------------------------------------------------------------------------------
5ae88d5a58 | Nicholas Feinberg | 2015-03-31 23:23:43 -0700

Make Nergalle a little less dumb (PAnacea)
Don't cast Death's Door if there aren't any enemies nearby.

--------------------------------------------------------------------------------
014cd3c839 | Jesse Luehrs | 2015-04-01 02:20:50 -0400

restore 5 for waiting if you're all the way healed

--------------------------------------------------------------------------------
f038802923 | Jesse Luehrs | 2015-04-01 02:20:50 -0400

allow resting up to a specific percent of hp/mp
this way, for instance, pressing 5 can restore 70% of hp instead of
always waiting until completely full

--------------------------------------------------------------------------------
395b7c9af1 | Nicholas Feinberg | 2015-03-31 22:35:25 -0700

Remove Shadow Traps from generation

--------------------------------------------------------------------------------
aeff083203 | Nicholas Feinberg | 2015-03-31 22:27:08 -0700

Checkwhite

--------------------------------------------------------------------------------
528db62f14 | Nicholas Feinberg | 2015-03-31 21:16:17 -0700

Don't vary acquirement results by ability state
Specifically, stat-reducing items (if they push you near stat-0)
could squash some artefacts. Ditto ability damage.

--------------------------------------------------------------------------------
cd72016251 | Nicholas Feinberg | 2015-03-31 21:16:17 -0700

Add a 'base' param to max_stat()

--------------------------------------------------------------------------------
dbeb0d202e | Jesse Luehrs | 2015-04-01 00:01:35 -0400

make resting always last until interrupted or done healing
this also means that you can't wait while fully healed, but i think
that's a feature

--------------------------------------------------------------------------------
dd4623349d | Brendan Hickey | 2015-04-01 03:18:34 +0000

Increase rotting damage from melee.

--------------------------------------------------------------------------------
64293ccac1 | Brendan Hickey | 2015-04-01 03:18:34 +0000

Simply unrot_hp
The updated function consumes a quantity to heal, unrots the player
and returns the healing balance if any.

--------------------------------------------------------------------------------
bf62976c30 | Brendan Hickey | 2015-04-01 03:18:34 +0000

HW and curing heal rot first rather than last
Each point of rot reduces the effectiveness of healing by 2
points for every point of rot. Rot damage is healed first
rather than last. This increases its tactical relevance and
reduces the strategic decision of "When do I heal rot?", along
with sitting around till max hp to heal rot. The exchange rate
is a matter for debate.

This should also be applied generally to other sources of healing.

Example:

HP: 10/90 (100)
HW: +20

Before: 30/90 (100)
After: 20/100

--------------------------------------------------------------------------------
3c197575c2 | gammafunk | 2015-03-31 21:34:35 -0500

Move curse skulls to pop_crypt now that they're not stationary
Previously they placed as random spawns through special vaults, which is
no longer necessary. Their pop_crypt weighting gives them approximately
the same distribution as it was through the previous vault placement
method, also allowing them as OOD.

--------------------------------------------------------------------------------
ca69ed30a0 | reaverb | 2015-03-31 21:17:22 -0400

Make the MP boost for Invocations the same as for Evocations (50% skill)
It was slightly weird that the MP boost differed by 10%. Since MP
formulas are being rebalanced anyway this is an ideal time to make this
change.

--------------------------------------------------------------------------------
cac7fed025 | Chris Campbell | 2015-03-31 18:05:51 +0100

Unbrace

--------------------------------------------------------------------------------
5ed541847e | Chris Campbell | 2015-03-31 18:05:51 +0100

Remove some dead code
If I'm reading right, this didn't do anything even before the gold distraction
changes - it was intended to place a single sparkly gold piece so that
exploding monsters would still trigger gold distraction, but
place_monster_corpse() returned before actually placing that last piece.

--------------------------------------------------------------------------------
f292aa421f | Neil Moore | 2015-03-31 12:58:40 -0400

Fix up a few more README.txt references (Medar)
In the various build scripts.

Zaba suggests processing it into README.txt at build time anyway, in
part to remove the build status junk at the top, but also so that
Windows etc. know how to open the file in the first place.

--------------------------------------------------------------------------------
e05c439437 | Neil Moore | 2015-03-31 12:45:18 -0400

Fix ?!

--------------------------------------------------------------------------------
6795a1404a | Jesse Luehrs | 2015-03-31 02:17:02 -0400

remove the concept of non-confusable monsters
it doesn't really make any logical or gameplay sense for zombies and
skeletal warriors to be confusable while gargoyles and thorn hunters are
not. the few cases where it actually doesn't make sense for a monster to
be confusable (plant, orb of destruction, statue) are already covered by
magic immunity.

--------------------------------------------------------------------------------
1dd37ad170 | Neil Moore | 2015-03-31 01:37:00 -0400

Remove trailing newlines.
[skip ci]

--------------------------------------------------------------------------------
656656c07b | Neil Moore | 2015-03-31 01:36:55 -0400

Don't give normal casting messages for siren/avatar song.
[skip ci]

--------------------------------------------------------------------------------
280465a2bc | Jesse Luehrs | 2015-03-31 01:27:37 -0400

wizard spells are always silenceable

--------------------------------------------------------------------------------
e28675bcc3 | Jesse Luehrs | 2015-03-31 00:37:35 -0400

turn some weirdly natural spells into magical/wizard

--------------------------------------------------------------------------------
ba34ccd419 | Jesse Luehrs | 2015-03-30 23:52:42 -0400

mara's blink should be demonic, like rakshasas

--------------------------------------------------------------------------------
2bef4898fd | gammafunk | 2015-03-30 22:01:25 -0500

Some tweaks to alphashops
Lower the max shop item count from #itemtypes + 2 max items to make
instances of 3+ items of the save kind more rare and remove cutlasses
from 'C'.

--------------------------------------------------------------------------------
f52f002919 | gammafunk | 2015-03-30 22:01:25 -0500

Move a shop vault to the right location in the des

--------------------------------------------------------------------------------
fbf2426704 | Shmuale Mark | 2015-03-30 22:35:28 -0400

Take away polymorphed Harold's speech (to fix crashes).

--------------------------------------------------------------------------------
76a7a12ff8 | Alex Jurkiewicz | 2015-03-30 22:31:04 -0400

Improve Xom acquirement for Na/Ce

--------------------------------------------------------------------------------
6349eaf813 | Nicholas Feinberg | 2015-03-30 19:04:24 -0700

Don't place alphashops on every D:6
Or nearly every D:6, anyway.

Should show up roughly one in twenty games, now.

--------------------------------------------------------------------------------
6f4b25f9d1 | Nicholas Feinberg | 2015-03-30 18:22:02 -0700

Don't give an EV penalty for using macros

--------------------------------------------------------------------------------
c56c144e3a | Nicholas Feinberg | 2015-03-30 18:22:01 -0700

Warn before getting Majin-Bo penance
When casting spells while wielding the Majin-Bo under a good god.

...good grief!

--------------------------------------------------------------------------------
9f3419704e | Nicholas Feinberg | 2015-03-30 18:22:01 -0700

Improve joke acquirement
Xom shouldn't give bardings to centaurs...

--------------------------------------------------------------------------------
0ea11b2e66 | Nicholas Feinberg | 2015-03-30 18:22:01 -0700

Increase phantasmal warrior damage by 50%
Gets it to somewhere in the neighborhood of the threat range it
had before its recent simplications. (Same damage as e.g. large
abominations.)

--------------------------------------------------------------------------------
089787d24f | Jesse Luehrs | 2015-03-30 20:51:37 -0400

also include the travis build status in the readme

--------------------------------------------------------------------------------
c403f088b4 | Jesse Luehrs | 2015-03-30 20:51:37 -0400

make the readme actually markdown
it looks nicer in github this way

--------------------------------------------------------------------------------
99cc765f51 | Corin Buchanan-Howland | 2015-03-30 20:05:05 -0400

Give Demigods +10% mp innate mut
I feel that demigoods should have high hp/mp, and after the mp rescaling,
they end up a bit light on mp thanks to their poor Spellcasting aptitude.
This makes them the only race with a mp multiplier as opposed to a flat
mp bonus.

--------------------------------------------------------------------------------
a5db0519ae | Corin Buchanan-Howland | 2015-03-30 19:41:20 -0400

Change staff of power to a flat mp bonus
Before it was 5 mp + 40% of your pool, which is nuts under the new mp
formula. Now it's a flat +15, which is impressive without being outright
abusive.

--------------------------------------------------------------------------------
3d19270563 | Chris Campbell | 2015-03-31 00:06:54 +0100

Fix Gozag's gold highlighting being in the wrong place

--------------------------------------------------------------------------------
c38a6e8078 | Chris Campbell | 2015-03-30 23:43:06 +0100

Rework Gozag's gold distraction to use a player duration
Rather than tie it to specific piles of gold, use a duration and prop on the
player to keep track of when to distract monsters. This fixes a number of
issues with the previous implementation: players are no longer encouraged to
avoid picking up fresh gold or to kite monsters to it, and the effect can still
be triggered if the monster is exploded into chunks.

Functionally this strengthens the effect somewhat, since individual piles of
gold no longer expire one by one - the effect stacks for as long as the player
keeps refreshing the duration by killing new things.

Rather than display a status light constantly, the gold line on the HUD is
highlighted while distraction is active.

--------------------------------------------------------------------------------
358cb933c0 | Chris Campbell | 2015-03-30 23:43:06 +0100

Remove the Forlorn mutation
Negative faith didn't make much sense in practice (for example reducing the
amount of penance gained for actions your god hates, making Xom act very
infrequently).

--------------------------------------------------------------------------------
4a5ca9ab47 | Shmuale Mark | 2015-03-30 17:43:37 -0400

Prompt before casting spells that will anger your god (#1930).
Unfortunately, no prompt for vbolt/parrow on tso, or any fire spells for
Dith, since that might be a false positive. I'd suggest those prompt
during the actual targetting phase instead.

--------------------------------------------------------------------------------
b304c1407b | Shmuale Mark | 2015-03-30 16:39:59 -0400

Simplify some tornado code (hopefully making it more robust).
Not storing a separate list of actor*s in addition to an implicit list of
mids should help prevent the kind of weirdness that caused the bennu
crash.

--------------------------------------------------------------------------------
679af95b9c | Shmuale Mark | 2015-03-30 15:20:48 -0400

Let Natasha give her spiel when polymorphed (#8539).
Conceptually, this happens after she turns back into her old self (as
all monsters now do when dying while polymorphed). This also applies to
Harold, and would to Boris if he could be polymorphed!

--------------------------------------------------------------------------------
22d161bb00 | Shmuale Mark | 2015-03-30 15:20:36 -0400

Let Natasha talk when asleep (and Harold not when exploded) (#8629).

--------------------------------------------------------------------------------
15c8c87d06 | Shmuale Mark | 2015-03-30 14:20:50 -0400

Revert "Remove some little-used commands."
Apparently they were more-used than I had reckoned.

This reverts commit 972732a5e148c815aa99dcb3d051e4e62e97d902.

--------------------------------------------------------------------------------
3a86570a4a | Shmuale Mark | 2015-03-30 14:19:38 -0400

Use erase_if.

--------------------------------------------------------------------------------
fc496bdfc3 | Shmuale Mark | 2015-03-30 13:57:54 -0400

Clean up some dead fruit code.

--------------------------------------------------------------------------------
972732a5e1 | Shmuale Mark | 2015-03-30 13:56:12 -0400

Remove some little-used commands.
I don't think any of these has much point, given that the information can
be gotten much faster on the % screen.

--------------------------------------------------------------------------------
41518f4c99 | Shmuale Mark | 2015-03-30 13:42:20 -0400

Make being in water stop prevent sticky flame (#7200).

--------------------------------------------------------------------------------
d92d73dc70 | Shmuale Mark | 2015-03-30 13:34:53 -0400

Make a const cast explicit.

--------------------------------------------------------------------------------
61bc62d1e1 | Shmuale Mark | 2015-03-30 13:26:51 -0400

Remove dead code.

--------------------------------------------------------------------------------
43b248c2d0 | Shmuale Mark | 2015-03-30 13:24:45 -0400

Add French spacing fixes.
Mostly comments (seemed kilobyte used two spaces unfailingly), though a
few messages are corrected too.

--------------------------------------------------------------------------------
53cf180df0 | Shmuale Mark | 2015-03-30 12:45:35 -0400

Fix displayed chance for Banishment past cap (FiftyNine).

--------------------------------------------------------------------------------
6c37a9fc6e | elliptic | 2015-03-30 11:23:30 -0400

MP formula changes.
Changes:
* The extra 90% multiplier was removed.
* Species MP apts are now additive rather than multiplicative. They mainly
  exist for early-game calibration (e.g. to help Dg casters).
* New MP apts:
  +2: DE Dg
  +1: Fe HE Sp Te VS
  -1: Gh Mi Tr
   0: everyone else

So the current MP formula is simply XL + Spellcasting + MP apt for most
chars now.

--------------------------------------------------------------------------------
c074f8c6da | Shmuale Mark | 2015-03-30 10:53:50 -0400

Merge branch 'species_data'

--------------------------------------------------------------------------------
53b308ef5f | Jesse Luehrs | 2015-03-30 10:39:22 -0400

also retry things during dependency installation
gitorious seems to be flaky lately when grabbing submodules too

--------------------------------------------------------------------------------
fdd887ac49 | Shmuale Mark | 2015-03-30 10:37:31 -0400

Fix combo = DrBe.

--------------------------------------------------------------------------------
a4f37a390b | Shmuale Mark | 2015-03-30 10:16:32 -0400

Add save compat for the fake mutations that were made real.
This doesn't work for saves between that commit and this one, but there
should be none of those on any servers (because this is a dev branch after
all).

--------------------------------------------------------------------------------
e015a4a23e | Shmuale Mark | 2015-03-30 10:04:36 -0400

Merge branch 'master' into species_data
uuuuuuuuuuuuuuuuugh

Conflicts:
	crawl-ref/source/ability.cc
	crawl-ref/source/mutation-data.h
	crawl-ref/source/mutation.cc
	crawl-ref/source/ng-setup.cc
	crawl-ref/source/output.cc
	crawl-ref/source/player.cc
	crawl-ref/source/species.cc

--------------------------------------------------------------------------------
006947c7c3 | Nicholas Feinberg | 2015-03-29 22:56:09 -0700

Fix an autoexplore trap (minmay)

--------------------------------------------------------------------------------
eb37c66918 | Nicholas Feinberg | 2015-03-29 22:42:00 -0700

(Almost) remove (monster) pale & grey draconians
Grey draconians, as monsters, are extremely boring; in principle
they have the 'walk through water', but this is almost never
relevant as they were used (and not even that interesting then!)
Pale draconians are actively counterproductive as enemies.

They're still lingering in a few vaults - an evilmike vault where
I'm not sure how to replace them, and Wucad Mu, where nothing else
quite fit. (That should hopefully be a temporary problem.)

I'm not totally confident about my replacement in bruiser_brothers
 - I think they may have been intended to represent some specific
Doom enemy... well, it's not critical.

--------------------------------------------------------------------------------
1c7c673c51 | Nicholas Feinberg | 2015-03-29 22:39:00 -0700

New overflow vault
Credit to Grunt for the name & altar choices.

--------------------------------------------------------------------------------
18e7317fab | elliptic | 2015-03-30 00:29:38 -0400

Tweak MP apts towards 0.
This is a first reaction to the new MP formula making these apts much more
significant -- previously they only affected the contribution from XL and
the contribution above 18 MP was heavily stepped down. Even after this
commit the apts should be much more noticeable than they were with the old
formula. I think making them even flatter might turn out to be a good idea,
but we'll see.

Species with a negative apt (-1 or -2) are now all -1, and species with a
positive apt (1-3) are now all 1 aside from DE (3 -> 2).

--------------------------------------------------------------------------------
e471d9ca47 | Neil Moore | 2015-03-30 00:00:20 -0400

Don't remind online trunk players about the tournament.
This reverts commit ee7a2f2f09a766b2835ab222fd36070d5bd5b67d.

--------------------------------------------------------------------------------
af424a4233 | Nicholas Feinberg | 2015-03-29 19:58:16 -0700

Changelog through 0.17-a0-287-g93b8e50

--------------------------------------------------------------------------------
93b8e5070b | reaverb | 2015-03-29 22:49:09 -0400

Remove Lugonu corpse sacrifices
The piety gain from killing living creatures has been increased to
compensate

(see 6f54bd88d for reasoning behind removing corpse sacrifices)

--------------------------------------------------------------------------------
a45b206a34 | Nicholas Feinberg | 2015-03-29 19:32:22 -0700

Don't crash when acquring armour in a form

--------------------------------------------------------------------------------
e95019c67f | Corin Buchanan-Howland | 2015-03-29 21:33:34 -0400

Implement flat mp scaling and remove mp cap
The old formula was confusing and gave a huge amount of mp at low levels
followed by tiny increments at high levels. It also didn't give species
with +30% mp aptitudes anywhere close to +30% mp. +mp items were never
considered overpowered, so limiting them doesn't seem necessary.

The new world order is that every experience level and every level of
Spellcasting gives +1 mp; every level of Invo gives +0.6 mp and every
level of Evocations gives +0.5 mp; only the highest of the skill bonuses
from Evo, Invo, and Spellcasting is used, as before. That total is
multiplied by modifiers like racial modifier and mutations, and then
multiplied by 90% so that apt 0 races end up with < 50 mp still. Lastly,
rotted mp is subtracted, and then things continue as they did before.

This is a speculative balance change, and it seems likely that more balance
adjustments will be needed. Let's see how this goes!

For reference, a human wizard starts with 3 mp ((XL 1 + 3 Spl) * 0.9) and
a deep elf wizard starts with 6 mp ((XL 1 + 4.4 Spl) * 1.3 * 0.9). This
is likely going to compel book starts to train Spellcasting earlier than
they would have before.

--------------------------------------------------------------------------------
a594528b74 | Corin Buchanan-Howland | 2015-03-29 21:01:25 -0400

Lower all species Evo apts by 1
Evocations is very good right now, maybe overpowered; as such, it no longer
needs to be cheaper than average. This also gets humans closer to flat
0 apts.

It's possible some species should go back up one apt. Ileave that to
interested parties.

--------------------------------------------------------------------------------
1b6081fea5 | Chris Campbell | 2015-03-29 23:18:05 +0100

Don't make phantasmal warrior melee pierce shields and AC
They already have a fairly clear unique ability in their AF_VULN melee attack,
in combination with placing alongside monsters with enchantments (vampire
knights, and also now death knights with agony). Piercing AC and shields was a
much less clear exception, with the AC-ignoring part in particular not being
easily discoverable through regular gameplay.

--------------------------------------------------------------------------------
0ba6b4c7c3 | Chris Campbell | 2015-03-29 23:18:05 +0100

Don't randomly generate silent spectres in Crypt
Silent spectres don't play very well currently. Even restricted to one level,
they can be used to kite spellcasting monsters to, which Crypt now has a fair
number of. They can currently still be placed by vaults and generated in Tar
and Abyss (where there are more likely to be silence-ignoring demons, at
least).

--------------------------------------------------------------------------------
01b03bd920 | Chris Campbell | 2015-03-29 23:18:05 +0100

Merge unborn into death knights
Unborn were thematically a fairly weird remnant of monster deep dwarves. Death
knights now have spell set of agony, haunt, and injury mirror, taking the more
noticeable spells from the two spell sets and dropping a number of mostly
insignificant ones. Their entire spell set is also changed to be priestly,
rather than having a mix of wizard and priest spells as unborn used to
(they could also easily be reflavoured as spellcasters like hell knights and
necromancers instead, but having a mix of both just seems confusing, even
with spell types now displayed on xv).

--------------------------------------------------------------------------------
ce18152a4a | Chris Campbell | 2015-03-29 23:18:05 +0100

Don't let revenants ignore silence
There's no reason to expect that they'd ignore silence where other Crypt-based
spellcasters don't.

--------------------------------------------------------------------------------
cb373cdf31 | Neil Moore | 2015-03-29 18:09:29 -0400

Fix compilation.
Let ::can_wield take a const item pointer, and cast away const in
the wield-identification code.

Also fix a typo, a missing parameter, and an incomplete rename.

--------------------------------------------------------------------------------
25fb5b64d9 | Jesse Luehrs | 2015-03-29 17:44:26 -0400

show commands in the log

--------------------------------------------------------------------------------
81c4daddfd | Jesse Luehrs | 2015-03-29 17:41:13 -0400

one more time

--------------------------------------------------------------------------------
3aba9b4620 | Neil Moore | 2015-03-29 17:38:43 -0400

Correct spelling for real.
[skip ci]

--------------------------------------------------------------------------------
3b1317f7a4 | Jesse Luehrs | 2015-03-29 17:36:23 -0400

fix travis script

--------------------------------------------------------------------------------
eb51c43752 | Jesse Luehrs | 2015-03-29 17:32:37 -0400

how about i stop trying to pretend i can write shell scripts

--------------------------------------------------------------------------------
44f444ec63 | Jesse Luehrs | 2015-03-29 16:53:29 -0400

use bash here too

--------------------------------------------------------------------------------
e72019a04b | Jesse Luehrs | 2015-03-29 16:50:04 -0400

i guess i should stop trying to write posix sh

--------------------------------------------------------------------------------
0bc2cf5b97 | Jesse Luehrs | 2015-03-29 16:43:07 -0400

try a different implementation of retry

--------------------------------------------------------------------------------
e72e6f26ea | Jesse Luehrs | 2015-03-29 16:28:53 -0400

don't error on unset env vars

--------------------------------------------------------------------------------
f578f52f29 | Nicholas Feinberg | 2015-03-29 13:13:59 -0700

Adjust D unique depths
Try to put them in places where they're potentially dangerous, but
not horribly lethal. (Well, not *too* horribly lethal.)

The most controversial changes probably are those that put uniques
in new areas, so those are listed here; the full changes are too
long to summarize. Generally, the upper ranges of uniques' appearances
have been curtailed.

Uniques in new floors:

Azrael: D:12-13, Orc:$.
Erica: D:8-9, Orc:1.
Frances: D:12-13.
Fannar: Orc:1.
Grum: Lair:1.
Harold: Orc:1.
Josephine: Lair:4-8.
Kirke: D:12-13, Lair:5-8.
Maud: D:10-13, Orc:2-4.
Natasha: D:2.
Nergalle: Orc:1.
Nessos: Lair:5-8.
Rupert: D:12-13, Orc:2-4.
Snorg: D:10-14.
Sonja: Lair:1-4.
Urug: Orc:1, Lair:1-4.
Agnes: D:14-15.

--------------------------------------------------------------------------------
8c7cb71256 | Nicholas Feinberg | 2015-03-29 13:10:49 -0700

Double Sonja's XP again (elliptic)
~380 -> ~800, a little higher than an orc knight and lower than
an ogre mage.

3238 milestones for * (abyss.enter current trunk lg:br=abyss):
239x a distortion unwield, 234x Sonja,

--------------------------------------------------------------------------------
0c2fb9e30a | Nicholas Feinberg | 2015-03-29 13:10:49 -0700

Double Terence XP
A little lower than ijyb's, mostly because of his equipment.

--------------------------------------------------------------------------------
73c927b3fa | Nicholas Feinberg | 2015-03-29 13:10:49 -0700

Fix Nikola XP to the previously mentioned value
oops

--------------------------------------------------------------------------------
c6f1c9e380 | Nicholas Feinberg | 2015-03-29 13:10:49 -0700

Increase Nikola XP by 1/3rd
3k -> ~4k.

Another one-shotter, but easier to negate and harmless if so.

--------------------------------------------------------------------------------
9cb4fc3cd0 | Nicholas Feinberg | 2015-03-29 13:10:49 -0700

Increase Rupert XP by 50%
2k -> 3k.

A very nasty combination of spells. Fun guy!

--------------------------------------------------------------------------------
40e853bef2 | Nicholas Feinberg | 2015-03-29 13:10:48 -0700

Increase Frederick XP by 50%
3.7k -> 5.2k.

Iron shot + servitor means he has a good chance of randomly
one-shotting the player.

--------------------------------------------------------------------------------
112869432e | Nicholas Feinberg | 2015-03-29 13:10:48 -0700

~double Sigmund's XP
~100 -> ~220. (Grinder is ~280, but he shows up slightly later.)

Give some reason to fight him.

--------------------------------------------------------------------------------
7c9672138f | Nicholas Feinberg | 2015-03-29 13:10:48 -0700

Spike Mara XP
~4.5k -> ~7.8k (ancient lich)

Mara is terrifying.

--------------------------------------------------------------------------------
884d0025a1 | Nicholas Feinberg | 2015-03-29 13:10:48 -0700

Increase Erolcha XP
~750 to ~1k.

LIGHTNING BOLT CRYSTAL SPEAR BANISHMENT LOL HI IM EROLCHA

--------------------------------------------------------------------------------
002287c094 | Nicholas Feinberg | 2015-03-29 13:10:48 -0700

Dramatically increase Vashnia XP
~2.8k -> ~5k.

One of the top causes of death in Snake should probably be worth
more than 1.5 greater nagas in XP.

--------------------------------------------------------------------------------
231958d876 | Nicholas Feinberg | 2015-03-29 13:10:48 -0700

Increase Sonja XP
~280 -> ~380. Dangerous enemies, etc.

--------------------------------------------------------------------------------
368d4473fb | Nicholas Feinberg | 2015-03-29 13:10:48 -0700

Remove many melee uniques from water branches
Pathetically ineffective.

--------------------------------------------------------------------------------
f12b0b4839 | Nicholas Feinberg | 2015-03-29 13:10:47 -0700

Increase Gastronok XP by 50%
Dangerous enemy, encourage players to fight, etc

--------------------------------------------------------------------------------
4d00cf90e2 | Nicholas Feinberg | 2015-03-29 13:10:47 -0700

Roughly equalize SoH XP
Between the different types, all hovering at ~15k XP (5 fiends)

Might be low, not sure.

--------------------------------------------------------------------------------
8b09d7a927 | Nicholas Feinberg | 2015-03-29 13:10:47 -0700

Roughly double Mennas XP
~4k to ~7.7k.

Adjusting risk/reward ratios, etc...

--------------------------------------------------------------------------------
1ed567dc00 | Nicholas Feinberg | 2015-03-29 13:10:47 -0700

Tweak Sojobo XP up slightly
Nasty customer.

--------------------------------------------------------------------------------
361f046e6a | Nicholas Feinberg | 2015-03-29 13:10:47 -0700

Double Jorgrun XP
From ~1500 to ~3.1k. Give players a reason to tangle with a
Petrify + Shatter caster.

Associated: basilisk XP from ~230 to ~200 (yak), cacodemon & dtee
kept about the same.

--------------------------------------------------------------------------------
dd70cbceeb | Nicholas Feinberg | 2015-03-29 13:10:47 -0700

Dramatically increase Ijyb's XP value
He can be an extremely nasty customer, if he spawns with a good
weapon or wand. This puts him at about the same XP as an orc
priest.

--------------------------------------------------------------------------------
94700bde27 | Nicholas Feinberg | 2015-03-29 13:10:47 -0700

Increase Dowan/Duvessa XP by 50%
They're probably worth a bit more than an orc warrior, which is
what they were worth before.

--------------------------------------------------------------------------------
6121c7c837 | Nicholas Feinberg | 2015-03-29 13:10:46 -0700

Remove the 15k XP cap
Since there's no longer a 20k XP pool.

Antaeus has had his XP modifier downgraded, and reaches 17k XP;
Cerebov is up to 22.5k, which seems fair. Asmodeus hits ~15.1k.

--------------------------------------------------------------------------------
1b78b513fc | Nicholas Feinberg | 2015-03-29 13:10:46 -0700

Buff Nessos' XP
From ~950 to ~1300. For reference, centaur warriors give ~900.

This also buffs various other monsters' xp (those with Haste);
doesn't seem significant in most cases (orc wizards went up by ~3
XP, 33->36?), but Lom Lobon went up from ~9150 to ~10k from the
changes, slightly below Gloorx Vloq (12.5k).

--------------------------------------------------------------------------------
dc6c1676f7 | Nicholas Feinberg | 2015-03-29 13:08:03 -0700

Pull out some bad item rejection code

--------------------------------------------------------------------------------
e412df5bda | Nicholas Feinberg | 2015-03-29 12:46:45 -0700

Obey the whim of the lycanpedanthrope (wheals)

--------------------------------------------------------------------------------
24c877dacd | Nicholas Feinberg | 2015-03-29 12:41:23 -0700

Pull out _adjust_brand from acq

--------------------------------------------------------------------------------
41810457c5 | elliptic | 2015-03-29 15:28:27 -0400

Fix ego clua for branded missiles (pikaro).
Possibly it would be better to set ISFLAG_SHOW_TYPE ident flag for all
missiles (this is why it failed before). In general it doesn't seem to be
the case though that item_ident always returns true for flags outside of
those given by _full_ident_mask()...

--------------------------------------------------------------------------------
bdbf34f4d0 | Nicholas Feinberg | 2015-03-29 11:46:14 -0700

Refactor wand acq code

--------------------------------------------------------------------------------
dd8b3295e0 | Jesse Luehrs | 2015-03-29 14:32:14 -0400

this script needs to die when commands fail

--------------------------------------------------------------------------------
42a8823a5a | Jesse Luehrs | 2015-03-29 14:28:53 -0400

posix style function definition

--------------------------------------------------------------------------------
ec9be958b5 | Chris Campbell | 2015-03-29 19:01:24 +0100

Fix autopickup of scrolls/potions matching those in inventory
It was added in 76970dbf17ad5 (possibly accidentally?).

--------------------------------------------------------------------------------
aa93fb667f | gammafunk | 2015-03-29 12:58:08 -0500

Use appropriate colour values in monster generation data (|amethyst)
This fixes various instances of mgen_data being called with BLACK
instead of COLOUR_INHERIT for monsters using their default colours, and
an instance of using BLACK instead of the more descriptive COLOUR_UNDEF
to mean an undefined colour.

--------------------------------------------------------------------------------
6dcaf12492 | Nicholas Feinberg | 2015-03-29 10:54:29 -0700

Also generalize some Lair vault depths

--------------------------------------------------------------------------------
c0e38d8f95 | Nicholas Feinberg | 2015-03-29 10:50:39 -0700

Generalize some orc vault depths

--------------------------------------------------------------------------------
eb95b8e4d0 | Jesse Luehrs | 2015-03-29 12:50:55 -0400

move this into a script

--------------------------------------------------------------------------------
88e27f2cee | Neil Moore | 2015-03-29 12:44:08 -0400

Select BAND_RANDOM_SINGLE members from random leaders' levels.
They were always being selected from the current level.  This could have
resulted in rod of shadows (for example) giving a monster from the
wrong branch.

--------------------------------------------------------------------------------
0982940cc4 | Jesse Luehrs | 2015-03-29 12:40:33 -0400

try to make this a bit less flaky

--------------------------------------------------------------------------------
2dd542c04c | Nicholas Feinberg | 2015-03-29 09:14:42 -0700

Color unmemorized book spells forbidden (2960)
...if they are, by your god.

Memorized book spells are not colored forbidden, since it'd be
hard to tell them apart & since it'd make the code uglier; spells
which you can't memorize (not enough spell levels, etc) are also
not colored forbidden, for consistency with the (M)emorize UI.

--------------------------------------------------------------------------------
2e14b11de5 | Neil Moore | 2015-03-29 11:42:59 -0400

Restore high-damage attack verbs (G-Flex)
They were being set from calc_damage, but depended on damage_done
already being set.

--------------------------------------------------------------------------------
d7335f2ebb | elliptic | 2015-03-29 10:31:25 -0400

Don't crash when calling clua it.slot for an object on the floor.
There's no need to try to give the last slot occupied in inventory by a
dropped object, which is what the old code was doing (and crashing when the
object had never been in inventory)... arguably that was an info leak even.

--------------------------------------------------------------------------------
68545d45cf | Neil Moore | 2015-03-29 09:12:29 -0400

Tweak grunt_temple_overflow_magic_moments.
Give fewer attack spells, by picking one of the non-conj, non-necro,
non-elemental schools for Sif's book.

At elliptic's suggestion, remove the doors so all the altars and books
are visible at the outset.

Finally, disable item gen, so the books always stand alone.

--------------------------------------------------------------------------------
5ae695d173 | Chris Campbell | 2015-03-29 00:57:05 +0000

Update Qazlal's wrath description

--------------------------------------------------------------------------------
415ba1657a | Chris Campbell | 2015-03-29 00:22:20 +0000

Refactor monster abjuration
Allows for different messaging depending on whether monsters abjure or not,
rather than always using the monster speech for the summon spell that was
replaced with abjuration (and allows Dissolution to abjure again as a result).

--------------------------------------------------------------------------------
f5308cc304 | elliptic | 2015-03-28 16:16:19 -0400

Stop lying to poor innocent bots and tell them that starcursed masses have a 
ranged attack (qw).

--------------------------------------------------------------------------------
e260c71dd8 | Neil Moore | 2015-03-27 16:01:35 -0400

Fix up a comment.
[skip ci]

--------------------------------------------------------------------------------
80f9a88311 | Neil Moore | 2015-03-27 14:24:53 -0400

Define SIZE_MAX if we don't have it.
It's C99 after all, and in particular seems to be missing on CDO
(libstdc++ 4.7.2).

--------------------------------------------------------------------------------
69308219b0 | Neil Moore | 2015-03-27 14:24:53 -0400

Satisfy typographical pedants (wheals)
Not going so far as to use the Unicode name "HYPHEN-MINUS".

[skip ci]

--------------------------------------------------------------------------------
1c381060c4 | elliptic | 2015-03-27 14:05:13 -0400

Fix monsters with phase shift having 8 more EV than intended.
Caused by 18cf4eb.

--------------------------------------------------------------------------------
8dd2fbe6a5 | gammafunk | 2015-03-27 12:12:12 -0500

Don't give the player a phyting chance with this vault (nicolae)
                  We didn't start the phyre
                    It was always burning
               Since the world's been turning
                  We didn't start the phyre
                    No we didn't light it
                  But we tried to phyte it

--------------------------------------------------------------------------------
674ec0f38f | gammafunk | 2015-03-27 12:12:03 -0500

Clean up placement of some Swamp vaults
Use e.g. "Swamp, !Swamp:$" over an explicit range like
"Swamp:1-4". Remove redundant "DEPTH: Swamp" lines, and make a large
monster vault not place on Swamp:$, to avoid overshadowing the
rune vault.

--------------------------------------------------------------------------------
b31992e5ab | Nicholas Feinberg | 2015-03-26 20:56:09 -0700

Don't try to acq invalid body armour types
They get squashed, which distorts the weighting.

This makes ogre/troll/spriggan armour acq kind of really strong,
since it makes them get dragon armours pretty often. Not sure what
the right solution is.

--------------------------------------------------------------------------------
47d87d7178 | Nicholas Feinberg | 2015-03-26 19:08:15 -0700

Base acquirement on per-armour weights
Results should be generally similar.

Minor differences: dragon armour is more likely to be suitable
to your character (but still very rare), and ring/scale shows up
at slightly lower armour skill. Weights can of course be adjusted
further from here; all dragon armours currently have the same
weight (before player skill is factored in), but that could be
changed if it seemed appropriate.

--------------------------------------------------------------------------------
80b1ed2056 | Nicholas Feinberg | 2015-03-26 19:01:20 -0700

Allow getting PARMs from subtypes alone

--------------------------------------------------------------------------------
e95e5a9314 | Nicholas Feinberg | 2015-03-26 19:01:20 -0700

Comment armour_def.

--------------------------------------------------------------------------------
637591756c | gammafunk | 2015-03-26 19:28:38 -0500

Some vaults from the incredible yet twisted mind of nicolae
Contents include an arrival vaults, decor vaults for snake, shoals,
spider, swamp, pan, crypt, a temple layout, an Ashenzari overflow altar,
a spooky food shop, and finally alphashops:

"A shop (or perhaps really a series of shops) that sells items whose
names all start with the same letter."

For alphashops, I've moved it to its own file and removed the vanity
shop name (nice try, nicolae). I've also simplified the shop item count
logic. These shops have 8-15 items or exactly no. of item types + 2,
whichever is less.

--------------------------------------------------------------------------------
ea9da19ca6 | Neil Moore | 2015-03-26 19:15:19 -0400

Fix compiler warnings with freetype 2.5.4+
They changed some fields from int to unsigned, causing sign warnings.

--------------------------------------------------------------------------------
f539968dab | Chris Campbell | 2015-03-26 22:47:09 +0000

De-duplicate some logic for Ash's cursed weapon skill boost
Now correctly doesn't boost evocations for the staff of summoning, too.

--------------------------------------------------------------------------------
d8b4091cba | Chris Campbell | 2015-03-26 22:47:09 +0000

Mention that quicksilver dragon hides grant MR+ in their description

--------------------------------------------------------------------------------
a7499c4cbc | Shmuale Mark | 2015-03-26 18:33:58 -0400

Obey item colour overrides for projectiles.

--------------------------------------------------------------------------------
ba6c4b71a6 | Shmuale Mark | 2015-03-26 18:33:57 -0400

Improve mimic names.
It's disappointing to not even know what you missed except for its base
type.

--------------------------------------------------------------------------------
6cac0783a3 | Shmuale Mark | 2015-03-26 18:33:55 -0400

Fix some parameter types/names.

--------------------------------------------------------------------------------
e3135655e4 | Shmuale Mark | 2015-03-26 18:33:54 -0400

Don't claim that Elliptic sent you a message.

--------------------------------------------------------------------------------
48a979efa1 | Shmuale Mark | 2015-03-26 18:33:52 -0400

Some unrand desc typo fixes (argonaut).

--------------------------------------------------------------------------------
cc00329c23 | gammafunk | 2015-03-26 16:55:07 -0500

Don't allow Dith's shadow step to work on firewood
The intent of the ability is to sneak up on still, hostile threats, and
plants and fungi aren't a threat. It still works on stationary enemies
that do pose a threat, since those give xp and aren't classified as
firewood.

--------------------------------------------------------------------------------
033d194f78 | Chris Campbell | 2015-03-26 18:28:51 +0000

Make tiny volcanoes tinier
They could still easily place a player on top of a flame cloud on the same turn
they entered a couple of volcano vaults.

--------------------------------------------------------------------------------
b91930f21f | Chris Campbell | 2015-03-26 09:15:21 +0000

Make breath weapon mutations conflict
Nagas now can't gain breathe flames, draconians can't gain either breathe
flames or spit poison, and other species can only gain one of the two at once.

--------------------------------------------------------------------------------
1e248c9994 | Chris Campbell | 2015-03-26 09:15:21 +0000

Merge Spit/Breathe Poison mutations, give Nagas Spit Poison 2
Rather than special-casing Naga poison breath and having poison gas be a
Naga-only mutation, give Nagas the actual Spit Poison mutation (at level 2
it's identical to their innate ability), and make level 3 of Spit Poison allow
poison breath. Makes it possible (but unlikely) for non-Nagas to get the
Breathe Poison ability, and makes it somewhat more common for Nagas to get it
too.

--------------------------------------------------------------------------------
1576742d61 | Chris Campbell | 2015-03-26 09:15:21 +0000

Don't make unbreathing mutation conflict with breath weapon mutations
"Unbreathing" in practice is just a special, weird kind of resistance to a few
things, it doesn't actually mean the player can't breathe.

--------------------------------------------------------------------------------
35444b03f2 | Chris Campbell | 2015-03-26 09:15:21 +0000

Don't let species that can't wear body armour mutate deformed body

--------------------------------------------------------------------------------
1b7cd97718 | Chris Campbell | 2015-03-26 09:15:21 +0000

Don't make staves of Summoning abjure on hit
It was supposed to mirror the damage effects of the elemental staves, but in
practice was incredibly unlikely to be useful, especially with the Evocations
requirements for such a limited effect.

--------------------------------------------------------------------------------
f9305fc99d | Neil Moore | 2015-03-26 03:02:02 -0400

Don't start Jiyva's second name with j + consonant.

--------------------------------------------------------------------------------
b7a3114588 | Neil Moore | 2015-03-26 02:29:14 -0400

Name some magic constants.
Maybe not the best of names....

--------------------------------------------------------------------------------
13d4c4f66c | Neil Moore | 2015-03-26 02:28:14 -0400

Mark a function static.

--------------------------------------------------------------------------------
5d3f7ac641 | Neil Moore | 2015-03-26 02:28:14 -0400

Hush another sign warning.

--------------------------------------------------------------------------------
e6da38ded3 | Neil Moore | 2015-03-26 01:39:28 -0400

Replace more unused sanity checks with asserts.

--------------------------------------------------------------------------------
feb78d7fcf | Nicholas Feinberg | 2015-03-25 22:38:38 -0700

Add some acquirement debug messages

--------------------------------------------------------------------------------
69f8400e26 | Nicholas Feinberg | 2015-03-25 22:38:38 -0700

Re-allow Xom to gift useless items
Well, sort of. He already could through another codepath, and he
couldn't actually previously gift useless armour through this
path... maybe this code shouldn't exist. I'm undecided.

--------------------------------------------------------------------------------
0376bd9034 | Nicholas Feinberg | 2015-03-25 22:38:38 -0700

First pass on rewriting armour acq
Mostly a refactoring. 'Notable' gameplay changes:

(1) Choice of shield type has been reworked; small races are now
more likely to get bucklers, and draconians can get them at all
(and are much less likely to get large shields)
(2) Xom can no longer give useless armour gifts. This is a bug
and I'm going to fix it in a later commit.

--------------------------------------------------------------------------------
e6fd45656d | Nicholas Feinberg | 2015-03-25 22:38:37 -0700

Export player_shield_racial_factor()

--------------------------------------------------------------------------------
4a8b0d04b6 | Nicholas Feinberg | 2015-03-25 22:38:37 -0700

Tweak check_armour_size to take subtypes

--------------------------------------------------------------------------------
181436a08d | Neil Moore | 2015-03-26 01:14:49 -0400

Don't bump into a fencepost.

--------------------------------------------------------------------------------
98a9229659 | Neil Moore | 2015-03-26 01:10:58 -0400

Fix some sign warnings.

--------------------------------------------------------------------------------
e4a03fd018 | Neil Moore | 2015-03-26 01:10:58 -0400

Don't crash on PgUp in an empty formatted_scroller (gw)

--------------------------------------------------------------------------------
2c20d37d7c | Nicholas Feinberg | 2015-03-25 22:04:21 -0700

Don't allow cancelling accidental attacks (SevenDeadlySins)
Specifically, when stumbling around confused with a !a weapon or
similar, you could repeatedly order a move command & cancel when
you actually "hit" something, for free.

--------------------------------------------------------------------------------
8d083fd95f | Nicholas Feinberg | 2015-03-25 21:43:00 -0700

Revert "Make you_can_wear(EQ_WEAPON) more robust."
Did not make you_can_wear(EQ_WEAPON) more robust. (Notably, was
completely wrong for spriggans with sacrificed hands.)

This reverts commit 944bdb4c302dc6d2fae850a15e3b52b59c4c416c.

--------------------------------------------------------------------------------
ba0901303c | Zannick | 2015-03-26 00:02:04 -0400

Merge up_stairs and down_stairs into take_stairs.
A handful of inconsistencies between the two old functions are left in
(but obviously more noticeable) to avoid making this too much of a
change in actual behavior.

Actual behavior changed:
- End searing ray when moving up as well as down.
- The player can no longer trip down a shaft while confused.
- Don't mark a milestone that the player took an exit from Pan into
  the Abyss when they got banished standing on the exit instead.

Other code changes:
- Condense _player_leaves_level_upstairs and _downstairs.
- Change _check_stairs to take a bool "going_up" instead of "down",
  for consistency with _climb_message (and new helper functions).
- Create a helper function _fall_down_stairs that takes care of both cases.
- Create a helper function _require_runes which performs the fancy
  runelock animations.
- Create a helper function _new_level_amuses_xom, except pull the abyss
  blood spatter generation out of it. It now skips the newlevel check,
  but Abyss should always be new levels anyway.
- Remove the "You fly upwards" override (which mostly means taking
  hatches up while flying now produces the hatch message instead).
- Move the -cTele warning later in the function as part of merging.
- Move the helper function _maybe_destroy_trap above take_stairs.
- Remove a redundant variable "stairs_taken".
- Add a ton of comments.
- up_stairs and down_stairs are left in as convenience functions that
  simply call take_stairs.

[Commiter's notes - moved some braces to newlines and TAG_MAJOR_VERSION'd
some Zot Defense code]

--------------------------------------------------------------------------------
760d09b4ce | Lamil Lerran | 2015-03-25 20:51:08 -0700

Update trainable skills after 0-len turns (9564)

--------------------------------------------------------------------------------
c93ce25d8d | Neil Moore | 2015-03-25 23:01:56 -0400

Pull out another IOOD key.
And a few leftover instances of other IOOD properties.

--------------------------------------------------------------------------------
7cdc9050d1 | Nicholas Feinberg | 2015-03-25 19:53:37 -0700

Mention fire elementals' gimmick in their desc

--------------------------------------------------------------------------------
658a178176 | Nicholas Feinberg | 2015-03-25 19:23:09 -0700

Pull out Orb of Destruction props

--------------------------------------------------------------------------------
1cdf03f794 | Nicholas Feinberg | 2015-03-25 19:23:09 -0700

Pull out randbook props

--------------------------------------------------------------------------------
f1af78ab1e | Nicholas Feinberg | 2015-03-25 19:23:08 -0700

Pull out chimera props

--------------------------------------------------------------------------------
752b5a5516 | Nicholas Feinberg | 2015-03-25 19:23:08 -0700

Pull out acquirement item prop

--------------------------------------------------------------------------------
6094b7bc02 | Nicholas Feinberg | 2015-03-25 19:23:08 -0700

Pull out deck properties

--------------------------------------------------------------------------------
134ddc6280 | Nicholas Feinberg | 2015-03-25 19:23:08 -0700

Pull out the Singing Sword welcome prop

--------------------------------------------------------------------------------
0154d2ae7b | Nicholas Feinberg | 2015-03-25 19:23:08 -0700

Pull out 'clinging' property

--------------------------------------------------------------------------------
f6f3391f66 | Jesse Luehrs | 2015-03-25 22:17:36 -0400

fix PleasingFungus's typo

--------------------------------------------------------------------------------
43473d006d | Nicholas Feinberg | 2015-03-25 18:40:25 -0700

Remove _make_appendable_file (|amethyst)
I really do not know why I thought that fprintf would overwrite
the entire file if it wasn't in append mode. Possible explanation:
http://nedroid.com/2007/03/beartato-63/

--------------------------------------------------------------------------------
38aaa465ea | Nicholas Feinberg | 2015-03-25 18:40:25 -0700

make_name()'s name from char[] -> string
And various associated simplifications (e.g. replacing 'count'
((the number of iterations - rand2(17)) / 17) with a fixed # of
iterations to bail at)

Seems to produce very similar results.

--------------------------------------------------------------------------------
2afccee394 | Nicholas Feinberg | 2015-03-25 18:40:25 -0700

Replace _is_random_name_vowel with _is_consonant
Space is not a vowel.

--------------------------------------------------------------------------------
d21f15cd59 | Nicholas Feinberg | 2015-03-25 18:40:25 -0700

Pull consonant tuple/triple choice out of make_name
Into a static array & function.

--------------------------------------------------------------------------------
f8ba8938c2 | Nicholas Feinberg | 2015-03-25 18:40:25 -0700

Constify make_name's numb[]
And reformat it cosmetically.

--------------------------------------------------------------------------------
8d9ebf6625 | Nicholas Feinberg | 2015-03-25 18:40:25 -0700

Rework make_name params
Replace the (misleading) make_name params with an enum, specifying
one of three ways to make a name (normal, scroll, or Jiyva).

--------------------------------------------------------------------------------
3fc38c6dc7 | Nicholas Feinberg | 2015-03-25 18:40:25 -0700

Encourage later words in make_name to start with any letter
Previous algorithm strongly biased them toward consonants.

--------------------------------------------------------------------------------
f8c7fa68cd | Nicholas Feinberg | 2015-03-25 18:40:24 -0700

Remove want_vowel from make_name
Almost entirely redundant.

Does decrease the odds of vowels/spaces slightly, since it was
possible to get into the vowel zone without having want_vowel set,
set it there, hit a continue & end up with want_vowel true at
the start of a loop even though the last letter was a
vowel/space... also makes second words vastly less likely to
start with vowels.

--------------------------------------------------------------------------------
128ad47d9e | Nicholas Feinberg | 2015-03-25 18:40:24 -0700

Improve make_name test seeding
Use random seeds (rather than linear ones), to make sure we're
covering the whole space, and also add a non-Jiyva stress test.

--------------------------------------------------------------------------------
4c8be304d9 | Nicholas Feinberg | 2015-03-25 18:40:24 -0700

Replace make_name sanity checks with asserts
They don't seem to be triggered in testing.

--------------------------------------------------------------------------------
8fb00263c5 | Nicholas Feinberg | 2015-03-25 18:40:24 -0700

Actually enforce Jiyva name limits
Triple consonant combos caused the length limit to be broken.

--------------------------------------------------------------------------------
cdee2beef3 | Nicholas Feinberg | 2015-03-25 18:40:24 -0700

Test Jiyva name generation.

--------------------------------------------------------------------------------
63993d5cf4 | Nicholas Feinberg | 2015-03-25 18:40:24 -0700

Remove an impossible branch
The outer conditional guarantees i > 0. (Though I can't fault
dshaligram for getting confused by this code...)

--------------------------------------------------------------------------------
2a43b7a3e2 | Nicholas Feinberg | 2015-03-25 18:40:17 -0700

Add itemname stress tests

--------------------------------------------------------------------------------
4cf379dba7 | Nicholas Feinberg | 2015-03-25 18:36:38 -0700

Require "yes" to abandon a pan rune (Brannock)

--------------------------------------------------------------------------------
986fdf9061 | Neil Moore | 2015-03-25 21:10:43 -0400

Make beams appear from out of thin air again (minmay)
Usually the message (from an invisible monster casting a beam at you)
was being suppressed, because the beam was already marked as seen back
it its youth as a tracer.

Don't consider tracers to be visible, so they won't be marked as seen.

visible() is only used here and in monster spell speech lookup, so
making tracers invisble shouldn't have side effects.

--------------------------------------------------------------------------------
289cc6ab1b | reaverb | 2015-03-25 17:58:13 -0400

Add a _ in front of a static function

--------------------------------------------------------------------------------
01b6967c37 | Neil Moore | 2015-03-25 14:42:00 -0400

Forget more about items with &I and &Y.
Dropped, thrown, tried, handled, and seen status; and flags about
whether the item has been noted.

The idea is to be able to test what happens with an unseen item of a
particular type (monster pickup, detection, etc), without having to
create a vault.

--------------------------------------------------------------------------------
14e20c2fb3 | reaverb | 2015-03-24 20:50:26 -0400

Remove some code ID'ing distortion weapons if they banish the player
Since monster weapon brands are now ID'd on sight.

--------------------------------------------------------------------------------
4beac09721 | gammafunk | 2015-03-24 19:31:44 -0500

Fully de-Klownify Mnoleg
Remove his af_klown, which is the only thing that makes Killer Klowns a
unique experience in Zot, and also remove af_vuln, which is not
particularly effective or necessary.

--------------------------------------------------------------------------------
97be282fcd | elliptic | 2015-03-24 20:18:42 -0400

Make alarm traps in fixed locations in V rooms known.
These vaults show up in a large proportion of games and are easily
recognizable, and if you do recognize them in time then you have to do silly
things like place one-square exclusions where you know there is a sizable
chance of there being an alarm trap.

--------------------------------------------------------------------------------
6776228e09 | Chris Campbell | 2015-03-25 00:16:06 +0000

Actually don't place Killer Klowns on Mnoleg's floor
The previous commit changed his band (when chasing/appearing on the orb run)
and then forgot to actually include the .des change, oops.

--------------------------------------------------------------------------------
5e05aee091 | Chris Campbell | 2015-03-24 18:30:03 +0000

Don't make faith affect chances for god lifesaving
It was undocumented and pretty unrelated to faith's main effect of increasing
piety gain/penance.

--------------------------------------------------------------------------------
f8c42a1b52 | Chris Campbell | 2015-03-24 18:30:03 +0000

Add more detail to some mutation descriptions

--------------------------------------------------------------------------------
a7447b49d6 | Chris Campbell | 2015-03-24 18:30:03 +0000

Let warding apply to ranged as well as melee attacks
Not that summoned centaurs are especially common. The summoned monster still
fires their missile, it's warded away upon reaching the target.

--------------------------------------------------------------------------------
13878554fc | Chris Campbell | 2015-03-24 18:30:03 +0000

Reduce Summon Guardian Golem to level 3
It's potentially strong, but a little fiddly to use and relatively expensive as
a dual-school level 4 spell next to ice beast and lightning spire.

--------------------------------------------------------------------------------
4d03695922 | Chris Campbell | 2015-03-24 18:30:02 +0000

Don't place Killer Klowns on Mnoleg's floor
They're thematically one of the Zot-unique monsters like orbs of fire and
electric golems.

--------------------------------------------------------------------------------
d5057481e3 | Shmuale Mark | 2015-03-24 14:27:54 -0400

A new nickname for Xom.

--------------------------------------------------------------------------------
09b61834dd | Shmuale Mark | 2015-03-24 14:24:24 -0400

Fix a typo (geekosaur).

--------------------------------------------------------------------------------
fbdc22bed8 | Shmuale Mark | 2015-03-24 14:13:43 -0400

Simplify.

--------------------------------------------------------------------------------
493dc5bb14 | Shmuale Mark | 2015-03-24 13:54:52 -0400

Fix an accidentally removed ! (PleasingFungus).

--------------------------------------------------------------------------------
952c0bcf38 | Shmuale Mark | 2015-03-24 13:44:00 -0400

Fix a crash when putting on rings (#9575).

--------------------------------------------------------------------------------
63f6ae1820 | Shmuale Mark | 2015-03-24 13:35:19 -0400

Remove the staff of power's MP cache.
Introduced by e49daf5b5; I assume it was for making butchering while
wielding it better, but no reason is given there.

--------------------------------------------------------------------------------
944bdb4c30 | Shmuale Mark | 2015-03-24 11:07:27 -0400

Make you_can_wear(EQ_WEAPON) more robust.

--------------------------------------------------------------------------------
85f429d332 | Shmuale Mark | 2015-03-24 10:15:11 -0400

Remove some unnecessary functions.

--------------------------------------------------------------------------------
42eaaf8c7d | Shmuale Mark | 2015-03-24 10:15:04 -0400

Remove you_tran_can_wear.
Instead you_can_wear(foo, true) does the same thing with no code
duplication. Also rewrites a function in output.cc slightly.

--------------------------------------------------------------------------------
f1f3296036 | Shmuale Mark | 2015-03-24 10:14:58 -0400

Make you_can_wear return a maybe_bool.
Seems to me this is clearer than needing to pass a parameter in.

--------------------------------------------------------------------------------
698e7e2f34 | Shmuale Mark | 2015-03-24 10:14:50 -0400

Inline.

--------------------------------------------------------------------------------
21d34bde3c | Shmuale Mark | 2015-03-24 10:14:44 -0400

Remove the item_def version of you_tran_can_wear.

--------------------------------------------------------------------------------
cb5519f81f | Shmuale Mark | 2015-03-24 10:14:37 -0400

Make you_can_wear use can_wear_armour.

--------------------------------------------------------------------------------
eb87abbd7e | Shmuale Mark | 2015-03-24 10:14:31 -0400

Have you_can_wear take an equipment_slot rather than int.

--------------------------------------------------------------------------------
a3e609df9b | Shmuale Mark | 2015-03-24 10:14:19 -0400

Remove mutation-checking functionality from you_tran_can_wear.
Every use of it seemed to not be what the caller actually wanted.
This simplification should assist in combining it and you_can_wear.

--------------------------------------------------------------------------------
a9cda9c08a | gammafunk | 2015-03-23 21:40:33 -0500

Fix the Tiles application failing to run on OS X (geekosaur)
Previously the Tiles app dies on application launch (Finder or open -a)
because session id passed via an argument which the executable didn't
recognize. This change causes the argument to be ignored.

--------------------------------------------------------------------------------
4375afd555 | reaverb | 2015-03-23 20:00:45 -0400

Remove minmay_bat_box
This vault was awful - bats are popcorn by D2, and this vault creates a
half dozen to fight. If the bats were ever relevant, this vault would be
spoilery due to its distinctive design.

--------------------------------------------------------------------------------
9432df0655 | Nicholas Feinberg | 2015-03-23 08:38:00 -0700

Fix Ash hand curse description (hy-on-github)
Would claim that your hands were bound if neither of them were.

Was broken by fec06700d15, last year.

--------------------------------------------------------------------------------
90bd1c500b | gammafunk | 2015-03-22 19:04:16 -0500

Reapply a fix for a crash with cleaving + infusion vs spectral weapons
This correctly applies the fix in e0bdd66d8 by using a local variable
instead of the damage_done attribute of the attack class. This reverts
commit c3c9679.

--------------------------------------------------------------------------------
982c89fffd | reaverb | 2015-03-22 19:08:52 -0400

Don't give Kiku and Trog piety for killing abominations
Abominations are 100% undead now, this last special case is just
confusing.

--------------------------------------------------------------------------------
801050c8a5 | reaverb | 2015-03-22 19:07:58 -0400

Elaborate on some comments.
[ci skip]

--------------------------------------------------------------------------------
34d91a1fc8 | reaverb | 2015-03-22 17:15:34 -0400

Remove Sure Blade
This was another "You should always have this active" buff, with no
positive effects on the game. The fact it's exclusive the Book of
Maledictions implies it's meant to help En get off the ground, but En
remains a Tier 1 background after this change.

--------------------------------------------------------------------------------
c3c9679156 | reaverb | 2015-03-21 23:04:34 -0400

Don't double all player melee damage (Revert e0bdd66d8)
This commit tried to fix a rare crash, but obviously this bug is worse.

--------------------------------------------------------------------------------
f2c12c4f51 | reaverb | 2015-03-21 19:49:52 -0400

Remove magic contamination from Finesse.
The magic contamination was so weak it didn't even cancel out natural
dissipation.

--------------------------------------------------------------------------------
8b90e73ef6 | reaverb | 2015-03-21 19:49:49 -0400

Don't surround a bazaar enterance with deep water (Retrospecter)
It's technically possible to get stranded on the entrance.

--------------------------------------------------------------------------------
f94917f4d8 | Nicholas Feinberg | 2015-03-21 11:26:30 -0700

Default force-more for angry demons (Ferrinus)
Uncommon enough that the extra --more--s shouldn't be annoying,
easy to miss otherwise, and potentially significant enough that
we should try to bring it to players' attention so they don't
miss it!

--------------------------------------------------------------------------------
8ea3830af1 | Nicholas Feinberg | 2015-03-21 11:22:35 -0700

Fully identify trove /disint
Something something 'spoilers' something ?ident something.

--------------------------------------------------------------------------------
2b06fc5f79 | Neil Moore | 2015-03-19 18:24:46 -0400

Don't call decks of known type "BUGGY" in webtiles (#7996)

--------------------------------------------------------------------------------
add5c04251 | Neil Moore | 2015-03-19 17:20:10 -0400

Clean up the line reader better when deleting a wide char.

--------------------------------------------------------------------------------
31482b351b | Neil Moore | 2015-03-19 17:04:12 -0400

Handle line reader input too big for the message area (#5554)
If the beginning of the input, based on the current cursor position,
should be above the top of the message area, skip those lines.  When the
cursor moves back to that part of the input (for example, if the user
presses Home), redraw so that the cursor is on the top line.

Unfortunately, when that happens, we have lost the prompt so can't
redisplay it.  Not only that, but we would have to compute which part of
the prompt is visible, because it might be only the end of a multi-line
prompt.  Deferring that until later.

--------------------------------------------------------------------------------
a9f4d1dcb4 | Neil Moore | 2015-03-19 15:28:06 -0400

Don't crash on 80-char prompts with small_more (pikaro, wheals)
Introduced in 0.17-a0-109-g04239eb: when small_more is enabled, there
might not be a next line to put the cursor at the beginning of.  If
that happens, scroll the message area by a line and try again.

--------------------------------------------------------------------------------
58570d6c7c | Nikhil Addleman | 2015-03-18 22:21:51 -0700

Clarify message when quaffing ambrosia with clarity

--------------------------------------------------------------------------------
0a9987397d | Brendan Hickey | 2015-03-19 02:12:51 +0000

Fiddle with the CREDITS

--------------------------------------------------------------------------------
5a6a9bbbcc | ontoclasm | 2015-03-18 19:00:10 -0500

Player pig form tile

--------------------------------------------------------------------------------
e7edae9d6c | Chris Campbell | 2015-03-18 20:01:31 +0000

Fix spacing in a Dragoncall message

--------------------------------------------------------------------------------
a3ffbe0a4b | Neil Moore | 2015-03-18 05:18:53 -0400

Don't make FeWr autopickup tomahawks (#9558)
Not putting this in autopickup_starting_ammo() because of EE stones and
Tm arrows.  The other classes that give starting ammo for non-spell
purposes are unavailable to felids (except Wn).

--------------------------------------------------------------------------------
6d3559e047 | Neil Moore | 2015-03-18 03:58:15 -0400

Improve a message's grammar.
[skip ci]

--------------------------------------------------------------------------------
04239ebb9d | Neil Moore | 2015-03-18 03:43:05 -0400

Handle 80-character prompts better under clear_messages (gw)
If a prompt exactly filled the width of the screen (with or without the
space after the prompt), the cursor would not be moved at all before
reading an input line.  If clear_messages was on, this would leave the
cursor at the lower right of the screen, causing a crash if scrolling
became necessary.

Now put the cursor at the beginning of the next line in this situation.

--------------------------------------------------------------------------------
a8f3a87e9d | Neil Moore | 2015-03-18 02:41:54 -0400

Be more careful with duplicate ghost annotations (rast)
If you had two ghosts with the same name, combo, and XL on two different
levels, the annotation tracker would treat them as one monster: seeing
one (or killing it) would remove the annotation for the other.

Now, only remove annotations for ghosts on the current level---since
they can never change levels, we don't have to worry about the same
ghost showing up twice.

There's still a problem if duplicate ghosts appear on the same level:
only one will be annotated, and killing it will remove the annotation
until the other is seen.

--------------------------------------------------------------------------------
cb34577f14 | gammafunk | 2015-03-17 21:10:00 -0500

Tweak a vault
Removes Rakshasa from minmay_smoke_and_mirrors, as the enemies they have
to clone aren't a great set for that, and move it's min. placement depth
in the Dungeon to 10.

--------------------------------------------------------------------------------
83588fc230 | Nicholas Feinberg | 2015-03-17 18:59:52 -0700

Don't make Zin hate Contam (minmay)
Since it only causes nonsensical prompts when trying to attack
with a Contam weapon; Zin doesn't care if you do (& shouldn't!)

Zin still dislikes it when you de-equip a Contam weapon, of
course, but that's already pretty obviously bad... there's now a
penance warning when doing so (or when removing contam jewellery
or armour); it makes sense to me to only warn about penance when
de-equipping the item (since otherwise it would confuse players
with a 'false alarm'), but possibly it should always warn?

--------------------------------------------------------------------------------
8f3376a8fc | Neil Moore | 2015-03-17 18:12:12 -0400

Don't mutate or drain the player in fsim.
Maybe this should hold for monsters as well?

--------------------------------------------------------------------------------
1a361e869a | Neil Moore | 2015-03-17 17:38:30 -0400

Allow dgn_place_monster near the player's square.
If there was a monster at the chosen position, dgn_place_monster would
find a nearby habitable spot; however, if the player was at that position,
it would simply fail.

--------------------------------------------------------------------------------
aa113c8c75 | Chris Campbell | 2015-03-17 17:28:15 +0000

Don't give gnoll sergeants extra !curing and !hw
They don't really have any special reason to be especially likely to give the
player healing potions (or at least to help identify them), especially since
they'll often be around gnoll shamans which are already able to heal them.

--------------------------------------------------------------------------------
1e41cac245 | Chris Campbell | 2015-03-17 17:28:15 +0000

Don't give some dummy/vault-only monsters equipment
Elf, dwarf, deep dwarf and demonspawn in particular.

--------------------------------------------------------------------------------
fa3e980e9a | Chris Campbell | 2015-03-17 17:28:15 +0000

Adjust monster rElec
Change most monsters with 2 levels of rElec to have either full immunity or
just one level of resistance. As a monster resistance, rElec++ reduces damage
by a very large amount and practically isn't very different from immunity,
with there being no partially-resistible elec attacks. In general, monsters
with an explicit elec theme of some sort have been given immunity, and others
reduced to one level of resistance (which is still very noticeable).

--------------------------------------------------------------------------------
25b0c0916d | Chris Campbell | 2015-03-17 17:28:15 +0000

Don't limit !restore abilities to 1 per stack

--------------------------------------------------------------------------------
eb1239368d | Chris Campbell | 2015-03-17 17:28:15 +0000

Remove potions of decay
They were so rare that many games would never even identify them, let alone
have a chance of quaff-iding them early.

--------------------------------------------------------------------------------
a8cbff3d38 | Chris Campbell | 2015-03-17 17:28:15 +0000

Reduce QDA's base armour rating to 9
It's still very effective for only one ?ea, even with the drawback of being
unable to be further enchanted.

--------------------------------------------------------------------------------
5511df2eb2 | Chris Campbell | 2015-03-17 17:28:15 +0000

Remove an ancient champion vault
It's still buggy and can't be completed if the ancient champions leave the
level, and it's also not so notable now that ancient champions are a regular
monster.

--------------------------------------------------------------------------------
d4be1d98a3 | Chris Campbell | 2015-03-17 17:28:14 +0000

Don't generate -Cast on non-armour randarts
Since they can just be easily swapped.

--------------------------------------------------------------------------------
01a7b65d11 | Chris Campbell | 2015-03-17 17:28:14 +0000

Remove cloak of Flash, adjust cloak of Starlight slightly
Based on the suggestion of merging the two by giving Starlight more AC, +Fly,
and an additional Stealth malus, but with +Fly dropped since the cloak already
has quite a few properties.

--------------------------------------------------------------------------------
e937ddade5 | Neil Moore | 2015-03-17 13:21:41 -0400

Give player dragons dual shoryuken (PleasingFungus)
That is to say, an offhand punch (which uses "claw" as the verb).

--------------------------------------------------------------------------------
cf0d72b1d7 | Neil Moore | 2015-03-17 13:20:13 -0400

Restore offhand blade punch (FierceOmelette)
It went missing in 0.16-a0-882-g472ad9c.

--------------------------------------------------------------------------------
b4793739b1 | Neil Moore | 2015-03-17 13:20:08 -0400

Refactor form offhand punching.

--------------------------------------------------------------------------------
db0b18a3c2 | Neil Moore | 2015-03-17 09:15:06 -0400

Don't nerf Sp, Dr, etc. XP apt on next compat break.

--------------------------------------------------------------------------------
6bcc94d8ec | Nicholas Feinberg | 2015-03-16 17:48:50 -0700

Don't make monsters avoid shadow traps (simm)
Specifically, I_HIGH or branch-native monsters.

This function is a mess...

--------------------------------------------------------------------------------
0df2a2020f | Nicholas Feinberg | 2015-03-16 17:48:26 -0700

Fliers shouldn't think they're immune to mechtraps

--------------------------------------------------------------------------------
3935755d5b | Nicholas Feinberg | 2015-03-16 17:33:52 -0700

Flatten some monster trap code

--------------------------------------------------------------------------------
01065d6a33 | Nicholas Feinberg | 2015-03-16 17:33:22 -0700

Don't make monsters avoid dormant shadow traps

--------------------------------------------------------------------------------
4569f96601 | Chris Campbell | 2015-03-16 23:59:29 +0000

Give wands of fireball, lightning and draining 15 max charges
Up from 9 (fireball) and 12 (lightning/draining).

--------------------------------------------------------------------------------
2dc99aed7d | Chris Campbell | 2015-03-16 23:56:57 +0000

Don't randomly generate Killer Klown zombies

--------------------------------------------------------------------------------
e1080d0964 | Chris Campbell | 2015-03-16 23:53:33 +0000

Don't show an expiry message for PbD with no corpses in range
Since most of the time it was displaying when the corpses that triggered it
had long since been butchered or explored away from.

--------------------------------------------------------------------------------
894156ce4e | Nicholas Feinberg | 2015-03-15 16:45:33 -0700

Re-add Ink Cloud's emergency flag
Accidentally removed by 9fbab266.

--------------------------------------------------------------------------------
3e33fa6c49 | Chris Campbell | 2015-03-15 17:09:41 +0000

Don't allow swapping with tentacles (#9549)

--------------------------------------------------------------------------------
781747f05e | Nicholas Feinberg | 2015-03-14 13:24:47 -0700

Don't warn for un-ID'd stasis while hasted (9542)
(Or while slowed.)

Hooray for duplicate code...

--------------------------------------------------------------------------------
de53a1839f | Neil Moore | 2015-03-13 20:17:12 -0400

Let ctrl-f see books' last spells' schools (#9534)
This does let books match the words "Level" and "Type", but that has
been the case for a while, anyway, since an extra newline was added.  If
we want to remove that header, we should do so in a way that is less
fragile than "skip the first two formatted_string ops".

--------------------------------------------------------------------------------
46900b1129 | Neil Moore | 2015-03-13 19:28:53 -0400

There is no tourney in the land of CI.

--------------------------------------------------------------------------------
a9b69f2380 | Neil Moore | 2015-03-13 19:28:53 -0400

Checkwhite.
[skip ci]

--------------------------------------------------------------------------------
ee7a2f2f09 | elliptic | 2015-03-13 16:19:45 -0400

Remind online trunk players about the tournament.
If you run a dgamelaunch crawl server that isn't participating in the
tournament, use  make EXTERNAL_DEFINES=-UTOURNEY

--------------------------------------------------------------------------------
0f27acafe9 | Steve Melenchuk | 2015-03-13 14:16:32 -0600

Unbreak other builds.
uuuggglllyyy

--------------------------------------------------------------------------------
e2c4c55bd7 | Steve Melenchuk | 2015-03-13 13:31:26 -0600

Ugly Android build fixes.

--------------------------------------------------------------------------------
be451b3450 | elliptic | 2015-03-13 10:02:00 -0400

Fix throwing a wielded item taking much less time.
3/10 as much time, in fact. This had bad effects like making it faster for
Trogites to wield spellbooks before throwing them.

--------------------------------------------------------------------------------
0af1500ecf | Nicholas Feinberg | 2015-03-12 23:11:33 -0700

Don't block controlled blink in Sprint
ugh

--------------------------------------------------------------------------------
d614ac0144 | gammafunk | 2015-03-11 23:48:39 -0500

Tweak a version number in the changelog

--------------------------------------------------------------------------------
eb6adcee8f | gammafunk | 2015-03-11 22:54:47 -0500

Update the changelog

--------------------------------------------------------------------------------
b617880702 | gammafunk | 2015-03-11 22:51:07 -0500

Update the debian directory for 0.16.0

--------------------------------------------------------------------------------
0a3e840ed3 | Nicholas Feinberg | 2015-03-11 20:20:03 -0700

Clean up stat growth

--------------------------------------------------------------------------------
555aecbca6 | Edgar A. Bering IV | 2015-03-11 20:23:13 -0500

Simplify shop/shopping list interaction with duplicate stock (#8934)
Previously had a display bug, and didn't make sense. This still has the
wart that if a player selects to purchase one of a duplicate group the
whole group is removed from the shopping list, but it at least makes
sense over the old behavior (which was to keep the item selected, but
display nothing, and buggily accumulate nonsense total cost display).

Commiter's note: I simplified a conditional block, moved an ASSERT to a
better location, and reformatted.

--------------------------------------------------------------------------------
6943d70b85 | Edgar A. Bering IV | 2015-03-11 14:16:36 -0500

Check launcher inscription before firing using the launcher (#9512)
Commiter's note: I simplified the condition and cleaned up the
formatting.

--------------------------------------------------------------------------------
0c654336f0 | Shmuale Mark | 2015-03-11 13:34:06 -0400

Fix gen-apt.pl.
Baby's First Perl code...

--------------------------------------------------------------------------------
72d9621d83 | Shmuale Mark | 2015-03-11 13:34:05 -0400

Move weapon recommendations into data.
Also unrecommends short blades for Formicids, which I guess was a typo
originally.

--------------------------------------------------------------------------------
344d5b0d41 | Shmuale Mark | 2015-03-11 13:34:03 -0400

Fix a dumb crash (oops).

--------------------------------------------------------------------------------
b4fae931b8 | Shmuale Mark | 2015-03-11 13:34:01 -0400

Move recommended jobs to data.

--------------------------------------------------------------------------------
08972af280 | Shmuale Mark | 2015-03-11 13:34:00 -0400

Move species weights to data.

--------------------------------------------------------------------------------
a311402a8e | Shmuale Mark | 2015-03-11 13:33:58 -0400

More C++11 (yay lambdas!).

--------------------------------------------------------------------------------
314057e6d1 | Shmuale Mark | 2015-03-11 13:33:57 -0400

Move fake mutation display to data.

--------------------------------------------------------------------------------
2a73f66e27 | Shmuale Mark | 2015-03-11 13:33:55 -0400

Deduplicate a check for being able to berserk.

--------------------------------------------------------------------------------
e338b9bbf3 | Shmuale Mark | 2015-03-11 13:33:53 -0400

Move two switches over draconian type to species.cc.
Probably not worth moving into data, though. Should just adding another
draconian (or removing one) easier if anyone is so inclined.

--------------------------------------------------------------------------------
ef42d4814f | Shmuale Mark | 2015-03-11 13:33:52 -0400

Consolidate racial AC code.

--------------------------------------------------------------------------------
85ec2dc303 | Shmuale Mark | 2015-03-11 13:33:50 -0400

Remove undead species' misleading rPois mutation.
Maybe this should be a real mutation instead of a fake one? On the other
hand, player_res_poison doesn't actually check directly for species so
it's not really all that bad...

Also, remove an errant textcolour() in describe_mutations().

--------------------------------------------------------------------------------
3f768c7206 | Shmuale Mark | 2015-03-11 13:33:48 -0400

Move player species shapes to data.

--------------------------------------------------------------------------------
0ad04b93cc | Shmuale Mark | 2015-03-11 13:33:47 -0400

Turn a whole bunch of fake mutations into real ones.
The "check in a billion places across the code for the right XL,
duplicating not only that code but also mutation suppressing code"
approach is quite fragile.

Gameplay changes:
* Draconians/Gargoyles mutation MUT_BIG_WINGS (others can't) will always
  have permaflight (this being dependent on being an XL 14 black drac /
  garg was rather confusing when you could get the mutation itself
  randomly)
* The Breathe Poison mutation is avaiable to all (was: just Nagas), if
  they manage to mutate Spit Poison 3 times in a game

Also adjusted some of the A screen fake mutation wordings, while I was
there.

--------------------------------------------------------------------------------
cb98057fbc | Shmuale Mark | 2015-03-11 13:33:45 -0400

Move level-up mutations to data.
This deduplicates a bunch of code for &r. The "reason" for mutations
is now made consistent as "race name growth"; previously it was often
that, but sometimes "level up" or "growing up" or a bunch of other stuff.

--------------------------------------------------------------------------------
68f34999d5 | Shmuale Mark | 2015-03-11 13:33:43 -0400

Move starting mutations to data.
Also cleans up some weird hacks with species_has_claws that made felids
be treated as having claws in more or less all ways except the "A" screen.
There should be no behaviour changes, except for a duplication there
(plan to clean up when I change more of those fake mutations to real
mutations), and clawed demonspawn getting the same UC accuracy bonus
as ghouls/trolls/felids (but not other random claw mutations).

--------------------------------------------------------------------------------
774bd3f3e9 | Shmuale Mark | 2015-03-11 13:33:42 -0400

De-hardcode a list of high-str species.

--------------------------------------------------------------------------------
fcb0582d40 | Shmuale Mark | 2015-03-11 13:33:40 -0400

Move MR modifiers to data.

--------------------------------------------------------------------------------
5641030dc2 | Shmuale Mark | 2015-03-11 13:33:38 -0400

Move stealth modifiers to data.

--------------------------------------------------------------------------------
23dd340203 | Shmuale Mark | 2015-03-11 13:33:37 -0400

Move racial stat gain to data.
There's probably a less ugly way to do this, but I couldn't think of
one that wasn't obviously far less efficient.

--------------------------------------------------------------------------------
c0eb5e142f | Shmuale Mark | 2015-03-11 13:33:35 -0400

Try to fix crashiness.

--------------------------------------------------------------------------------
6a7cac5603 | Shmuale Mark | 2015-03-11 13:33:34 -0400

Move starting stats to data.

--------------------------------------------------------------------------------
df33d84c98 | Shmuale Mark | 2015-03-11 13:33:32 -0400

Simplify a function away.

--------------------------------------------------------------------------------
a75739de27 | Shmuale Mark | 2015-03-11 13:33:30 -0400

Move species size into data.

--------------------------------------------------------------------------------
e67f7486a9 | Shmuale Mark | 2015-03-11 13:33:29 -0400

Move undeadness to data.

--------------------------------------------------------------------------------
17709f87dd | Shmuale Mark | 2015-03-11 13:33:27 -0400

Move species habitats to data.

--------------------------------------------------------------------------------
a482107126 | Shmuale Mark | 2015-03-11 13:33:26 -0400

Move hair stats to data.
Also some minor cleanup of large rock throwing.

--------------------------------------------------------------------------------
f294b304ee | Shmuale Mark | 2015-03-11 13:33:24 -0400

Remove player genuses.
Just a needless complication.

--------------------------------------------------------------------------------
54dc7bad98 | Shmuale Mark | 2015-03-11 13:33:22 -0400

Move player<->monster species link into data.

--------------------------------------------------------------------------------
344e89dc77 | Shmuale Mark | 2015-03-11 13:33:20 -0400

Move species xp/hp/mp to data (BREAKS GEN-APT.PL!).

--------------------------------------------------------------------------------
21960b71a9 | Shmuale Mark | 2015-03-11 13:33:19 -0400

Move species names into data.

--------------------------------------------------------------------------------
7e63f4b660 | Shmuale Mark | 2015-03-11 13:33:17 -0400

Replace species_name's bool parameters with an enum.

--------------------------------------------------------------------------------
1a90e2318c | Shmuale Mark | 2015-03-11 13:33:16 -0400

Clear up player::*_name.
Rename to make their purpose more clear, don't use them for unnecessary
purposes, comment on the hack they're necessary for.

--------------------------------------------------------------------------------
baa84408dc | Shmuale Mark | 2015-03-11 13:33:14 -0400

Move species abbreviations to data.

--------------------------------------------------------------------------------
5b6732ac80 | Neil Moore | 2015-03-11 10:28:34 -0400

Don't crash when hydraform devours Asterion.
The spectral weapon was being reset on Asterion's death, but if the cleave
continued on we would check the now-vanished SW's edibility:
  http://crawl.develz.org/morgues/trunk/sanka/crash-sanka-20150311-141707.txt

--------------------------------------------------------------------------------
328ef0e6be | Neil Moore | 2015-03-11 02:24:45 -0400

Don't generate OODs from Shadow Creatures.
Having a small chance for a much better creature than usual provides even
more encouragement than usual to, before a planned battle, rest and recast
until the summons are especially good ones.

Even worse, it respected the OOD timer, so your shadow creatures (even
from rod of shadows) would benefit from your spending thousands of turns
on the current level.

--------------------------------------------------------------------------------
c96cd5b0c7 | Nicholas Feinberg | 2015-03-09 18:30:49 -0700

De-opacify Irradiate (CanOfWorms)

--------------------------------------------------------------------------------
b4d65d2815 | Neil Moore | 2015-03-09 21:15:39 -0400

Charge Wyrmbane with dragonform player felid deaths (minmay)
Still no message if the hit actually ended your game, since player::hurt
doesn't even return in that case.

--------------------------------------------------------------------------------
e12f1571ba | Neil Moore | 2015-03-09 21:15:39 -0400

Don't crash when Wyrmbaning a dragonform player (wheals)

--------------------------------------------------------------------------------
7eae94e303 | Nicholas Feinberg | 2015-03-09 18:14:14 -0700

Irradiate tiles animation (CanOfWorms)

--------------------------------------------------------------------------------
0c497fb7aa | Neil Moore | 2015-03-09 10:54:21 -0400

Time out monster slow properly during torpor.
Copied from timeout_enchantments without thinking, but here we're
decreasing the duration, not the degree.  This resulted in pre-existing
Slow ticking down out much less than usual under torpor (and not at all
if the enchantment had degree 1).

--------------------------------------------------------------------------------
9e78d70e11 | Neil Moore | 2015-03-09 09:48:00 -0400

Don't repeatedly time out monster torpor (tedric)
It was timing out as usual on the slowed monster's turn, then
reactivating on the snail's turn.  Use similar logic to what already
existed in timeout_enchantments (which only applies when the player
leaves and returns to the level): if the monster is under the torpor
effect, don't slow it at all.

There still could be message spam if something breaks LOS between
the snail and the torpees.

--------------------------------------------------------------------------------
1f86560a0e | gammafunk | 2015-03-09 00:37:31 -0500

Don't place spectral holy swine
Use hell hogs for now, even if they're not quite as....thematic.

--------------------------------------------------------------------------------
a80393fcb0 | Neil Moore | 2015-03-08 23:23:26 -0400

Checkwhite.

--------------------------------------------------------------------------------
cb3ea14a81 | gammafunk | 2015-03-08 20:56:46 -0500

Make holy swine more appropriately angelic
Their description and their latest tile make it clear that these are
angelic beasts, so in keeping with this I've given them a halo and
flight, and they no longer leave a corpse.

--------------------------------------------------------------------------------
795aec7bf6 | ontoclasm | 2015-03-08 17:06:46 -0500

Holy swine fix (CanOfWorms)

--------------------------------------------------------------------------------
f89825e838 | elliptic | 2015-03-08 17:46:51 -0400

Create a logfile entry when entering wizmode/exploremode.
Unless SCORE_WIZARD_CHARACTERS is on.

This will prevent Sequell/tourney scripts from thinking that wizmode games
are perpetually in progress.

The logfile entry has ktyp=wizmode.

--------------------------------------------------------------------------------
ec26439600 | ontoclasm | 2015-03-08 15:31:27 -0500

Shard shrike tile (Bloax)

--------------------------------------------------------------------------------
f91d1cc2a5 | Neil Moore | 2015-03-08 15:33:34 -0400

Update sample CAO banner in ssh_guide.txt.
Mainly to update the name.

--------------------------------------------------------------------------------
3643e154a5 | Corin Buchanan-Howland | 2015-03-08 15:24:31 -0400

Fix two comments

--------------------------------------------------------------------------------
28bcb14a15 | elliptic | 2015-03-08 14:26:09 -0400

Still spend a turn when attempting to burn a spellbook mimic (qw).

--------------------------------------------------------------------------------
9530971d13 | elliptic | 2015-03-08 13:28:03 -0400

Assorted Ashenzari monster equipment ID fixes.
Three small changes:
* Some of the messages were missing a space or had an extra space.
* Ash was giving warning messages for weapon brands even though everyone
  already gets to know those on sight nowadays.
* The chance of receiving warnings is now based on piety rather than on
  you.bondage_level, since nothing other than piety gain uses the raw value
  of you.bondage_level anyway.

--------------------------------------------------------------------------------
906d5d22d6 | ontoclasm | 2015-03-08 01:46:37 -0600

Hog tiles (CanOfWorms)

--------------------------------------------------------------------------------
351f9535e9 | ontoclasm | 2015-03-08 00:44:08 -0600

Royal Jelly tile

--------------------------------------------------------------------------------
7044d6a0ec | ontoclasm | 2015-03-07 21:57:08 -0600

XTAHUA tile

--------------------------------------------------------------------------------
3d00253fe2 | gammafunk | 2015-03-07 21:46:14 -0600

Support for building a debian package from the source
Adds a source/debian directory with updated contact info for a
devteam-released package. Distributions will likely use their own
package files; this is to help us make our own release deb files.

Only substantive change in debian/rules is to disable -g in the
CFOPTIMIZE flags for now, since I can't build the package with LTO
otherwise, even on gcc 4.9.2.

--------------------------------------------------------------------------------
429dc8a581 | gammafunk | 2015-03-07 21:46:14 -0600

Have checkwhite ignore xpm image files

--------------------------------------------------------------------------------
514e9a596f | ontoclasm | 2015-03-07 21:20:11 -0600

Golden dragon tile (CanOfWorms)

--------------------------------------------------------------------------------
24331f3823 | ontoclasm | 2015-03-07 20:56:59 -0600

Flip fire & water elemental tiles too

--------------------------------------------------------------------------------
cfe00b5560 | ontoclasm | 2015-03-07 20:50:07 -0600

Flip a large number of monster tiles to face left (minmay)

--------------------------------------------------------------------------------
2d413e0a87 | Corin Buchanan-Howland | 2015-03-07 21:13:27 -0500

Make Beogh Smite scale with Invocations better
Beogh only uses Invocations for Smite, and previously even with 27 Invo you
would do a max of about 37 damage. Now, damage at 0 Invo ranges from 9-12
(avg 10), to 9-72 (avg 40) at 27.

--------------------------------------------------------------------------------
267c4431e4 | ontoclasm | 2015-03-07 20:08:22 -0600

Bennu tile (Tapsu)

--------------------------------------------------------------------------------
76712e3c5d | ontoclasm | 2015-03-07 20:08:21 -0600

Pearl & iron dragon tiles (CanOfWorms)
With thanks to Bloax & minmay for feedback & edits.

--------------------------------------------------------------------------------
ee58bc3b6b | Corin Buchanan-Howland | 2015-03-07 20:24:57 -0500

Prevent monstrous menagerie from giving lindwurms to Dith followers

--------------------------------------------------------------------------------
2eeac876ef | Corin Buchanan-Howland | 2015-03-07 19:58:17 -0500

Improve weapon/body armour min enchantment
elliptic suggested switching it from 0 to random2(2) in order to make the
number of +0 artefacts less glaring.

--------------------------------------------------------------------------------
dc1e713911 | Corin Buchanan-Howland | 2015-03-07 18:18:46 -0500

Don't allow body armour or weapon randarts to have negative enchantment
These were never wearable, since the value of these slots is so heavily
based on the enchantment.

--------------------------------------------------------------------------------
2b346a28e2 | Corin Buchanan-Howland | 2015-03-07 18:02:27 -0500

Fix up randart generation a bit more
Fix disparities between comments and code, and decrease the odds of wasting
a positive property.

--------------------------------------------------------------------------------
1f0038b6e4 | Chris Campbell | 2015-03-07 19:12:52 +0000

Adjust welcome spam messages
Improve wording, and make them vaguer in terms of what the Orb actually does,
if anything!

--------------------------------------------------------------------------------
5b921c0433 | Neil Moore | 2015-03-07 10:10:48 -0500

Add missing spaces in skill help screen (ChrisOelmueller)
"Enhanced skills are in blue.Manual usage is in green."

--------------------------------------------------------------------------------
7da8c1fb5f | Neil Moore | 2015-03-07 10:05:41 -0500

Don't generate empty manuals with &%manual
(Likewise &o:manual<Enter><Enter>)

If you didn't specify the skill, the item would be generated as a manual
of fighting with zero skill points.  Instead, always initialise the skill
points, and explicitly make the skill Fighting rather than whatever
happens to have the value 0.

--------------------------------------------------------------------------------
3f54bfd6a1 | Neil Moore | 2015-03-06 23:31:58 -0500

Fix sdl2 submodule.

--------------------------------------------------------------------------------
292452f499 | gammafunk | 2015-03-06 21:42:44 -0600

Add geekosaur to CREDITS.txt

--------------------------------------------------------------------------------
81c8a0a5da | brandon s allbery kf8nh | 2015-03-06 21:29:19 -0600

Use https URLs for submodules
Gitorious seems to have disabled the git: protocol, possibly to get
users to notice that it is going away in May.

Also add myself to mailmap because my last patch looked ridiculous :p

--------------------------------------------------------------------------------
87cc29695d | Chris Campbell | 2015-03-07 01:42:53 +0000

Tidy up some removed spell placement

--------------------------------------------------------------------------------
873d45e4cb | Chris Campbell | 2015-03-06 19:20:22 +0000

Coding convention-ify

--------------------------------------------------------------------------------
6a50d9f2f9 | Chris Campbell | 2015-03-06 19:04:15 +0000

Let Call Merchant work in any branch once unexplored levels have been filled up
Previously it would place a shop at your feet, but only if you were in a branch
that would allow shops, and with no other restrictions - so in practice this
would just force you to autotravel out of Slime/Lair/wherever in order to
successfully place a shop.

--------------------------------------------------------------------------------
594cf96abf | Neil Moore | 2015-03-06 12:36:53 -0500

Add jvj24601 to credits.

--------------------------------------------------------------------------------
2f9c35f36f | Neil Moore | 2015-03-06 12:28:56 -0500

Add waylon531 to credits (ebering)

--------------------------------------------------------------------------------
8b1c2ff5c0 | Neil Moore | 2015-03-06 12:26:42 -0500

Add knu to credits and mailmap (ebering)

--------------------------------------------------------------------------------
e0bdd66d84 | Neil Moore | 2015-03-06 11:35:30 -0500

Fix a crash with cleaving + infusion vs spectral weapons.
If we cleaved from the SW's caster (killing it) into the SW, the call
sequence melee_attack::handle_phase_hit() -> attack::calc_damage ->()
attack::player_stab() -> alert_nearby_monsters() could would cause the
SW to notice the dead caster and cease to exist.  But then we check the
vanished SW's AC for infusion damage immediately afterwards, leading
to a crash:
  
http://dobrazupa.org/morgue/ihatethisgame/crash-ihatethisgame-20150302-235727.tx
t

Instead, calculate the infusion damage first, before calling
calc_damage.

Also, for robustness, add an extra check to prevent vampires trying to
drain already-reset monsters like these.  This check isn't currently
necessary, because _player_vampire_draws_blood happens to think that
reset monsters have no blood.

--------------------------------------------------------------------------------
7448f46907 | elliptic | 2015-03-06 10:31:54 -0500

Reduce Gyre/Gimble message spam.
By making it only print_wounds after the second attack. This doesn't handle
DUR_CLEAVE because there isn't any way at the moment to tell which attacks
are Gyre and which are Gimble when using DUR_CLEAVE.

--------------------------------------------------------------------------------
d0808f307f | elliptic | 2015-03-05 23:36:39 -0500

Remove min_item_tele_traps.
For the same reasons as baited_tele_trap.

--------------------------------------------------------------------------------
a9806e6e1d | elliptic | 2015-03-05 23:28:34 -0500

Remove baited_tele_trap.
Asking the player to remember to come back later with apportation, stasis,
-Tele, or cTele isn't very interesting, and we already use this gimmick in
sword_in_stone. The many vaults that require digging/disint to get loot from
behind glass or statues are similar, but there at least getting the loot
usually requires using up a wand charge.

--------------------------------------------------------------------------------
c25b939f36 | Neil Moore | 2015-03-04 19:34:03 -0500

Show sinv more correctly in xv.
The message in xv checked both the ghost struct and the M_SEE_INVIS
class flag, while in monster::can_see_invisible itself the ghost struct
overrides the flag.  Likewise xv did not check the base type for
jobbed demonspawn, so monstrous blood saints (for example) appeared
to not have see invis even though they did.

Add a monster_info method to match the can_see_invisible logic, and
check that instead.  The logic is still duplicated, but at least
now it's in a place (monster_info) where such almost-duplicate
logic feels more at home.

--------------------------------------------------------------------------------
2972493b9a | Neil Moore | 2015-03-04 19:08:01 -0500

Don't crash when item_slot swaps on startup.
If item_slot moved an earlier item to an already-occupied later slot,
it would leave the other item unlinked, causing a crash on the initial
save:
  
http://dobrazupa.org/morgue/RandomusNamus/crash-RandomusNamus-20150304-221310.tx
t

Link all the items first, before applying item_slot.

--------------------------------------------------------------------------------
c0f6fd7959 | elliptic | 2015-03-04 19:06:46 -0500

Give liches back their see invisible.

--------------------------------------------------------------------------------
01551211df | Shmuale Mark | 2015-03-04 16:13:56 -0500

Fix title cropping woes (#9507).

--------------------------------------------------------------------------------
7ecb49aa19 | Shmuale Mark | 2015-03-04 14:24:31 -0500

Buff Gimble.
Make it attack while confused, and do full damage.

I'm beginning to regret coopting the cleaving code...

--------------------------------------------------------------------------------
b44527389c | Shmuale Mark | 2015-03-04 14:24:25 -0500

Hide Wizardry on \ (#9517).

--------------------------------------------------------------------------------
54cf826b30 | Neil Moore | 2015-03-04 07:24:02 -0500

Don't crash when trying to put on non-jewellery.

--------------------------------------------------------------------------------
edc27af6db | Chris Campbell | 2015-03-04 02:26:49 +0000

Fix messaging when monsters abjure via casting Haunt
By handling the abjuration before printing Haunt's messaging.

--------------------------------------------------------------------------------
b642a18a84 | Edgar A. Bering IV | 2015-03-03 20:58:02 -0500

Removing the macabre finger with a ring on it is no longer super fast
Previous code would call remove_ring which should not be called recursively,
as it adjusts you.time_taken every time it is called. Now we fail (loudly)
if a player tries to remove the necklace while it has a ring on it. This
is less elegant interface-wise, but doing the right thing otherwise would
be a larger refactor.

--------------------------------------------------------------------------------
6ddd7e64d6 | Edgar A. Bering IV | 2015-03-03 20:58:02 -0500

The macabre finger can dig in your pockets even when you can't.
This fixes 9497, probably other weird things that happened with the
macabre finger and forms that meld rings but not ammulets. Specifically:

- No longer meld a ring on the amulet when melding only rings
- Permit switching rings on the end of the amulet when in such a transform.

This is a tiny buff to the amulet's interaction with some specific forms.
I'm tempted to ammend this with some updated flavour text for the amulet
suggesting just how creepy the described behavior is.

--------------------------------------------------------------------------------
6a7973eee2 | Edgar A. Bering IV | 2015-03-03 20:53:20 -0500

Teleport correctly breaks mesmerising and fear (9224)

--------------------------------------------------------------------------------
7db1674d59 | Nicholas Feinberg | 2015-03-03 17:38:34 -0800

Don't give player ghosts s2s (minmay)
Since presumably they have no sticks to transmute...

This is a brutal nerf to --tm ghosts, of course, but I think the
game will survive.

--------------------------------------------------------------------------------
400abd6f4b | Chris Campbell | 2015-03-04 00:21:07 +0000

Fix necromancy miscasts tormenting LOS instead of only the miscast victim
Broken by 8a05d2b9773c8.

--------------------------------------------------------------------------------
fcb2a4caf1 | elliptic | 2015-03-03 18:55:42 -0500

Don't try to curse holy wrath weapons with Scythe of Curses.
This caused really annoying message spam, because the weapon would never
actually become cursed so the scythe would keep trying to curse it over and
over.

--------------------------------------------------------------------------------
b793c6dfb6 | Chris Campbell | 2015-03-03 16:56:44 +0000

Don't allow reading magic mapping for no effect in the Abyss (#9514)

--------------------------------------------------------------------------------
b2cac18637 | Chris Campbell | 2015-03-03 16:56:21 +0000

Fix messaging when branding unidentified weapons (#9515)

--------------------------------------------------------------------------------
8b1fb446bf | Chris Campbell | 2015-03-03 16:27:22 +0000

Let shafts work on flying monsters, remove save based on body weight
Since shafts now work on flying players, allow shafts (as well as the shafting
effects from the stone of tremors and the Shaft card) to work on flying
monsters too. Change the weight-based save to a fixed 1/4 chance to escape for
regular dungeon shafts (the same as the current chance for a human to escape).

--------------------------------------------------------------------------------
1f4be75a9a | Corin Buchanan-Howland | 2015-03-02 22:12:00 -0500

add tag message formatting standards
Since I already got bitten by them. :p

--------------------------------------------------------------------------------
ba81fef2d0 | Corin Buchanan-Howland | 2015-03-02 21:50:53 -0500

Dummy commit to usher in 0.17-a

--------------------------------------------------------------------------------
6d0517fbd9 | Nicholas Feinberg | 2015-03-02 18:29:03 -0800

Changelog through 0.16-a0-4134-g2ca243f

--------------------------------------------------------------------------------
2ca243f668 | Chris Campbell | 2015-03-03 01:53:20 +0000

Let Ashenzari's skill boost handle unrandart staves
Instead of just boosting staves skill when wielding unrandart staves, treat
them like regular magical staves (boosting both evocations and staves for
those with a melee effect such as the Elemental Staff, evocations only for
staves with an evokable ability such as the staff of Wucad Mu, etc).

--------------------------------------------------------------------------------
472b14a862 | Chris Campbell | 2015-03-02 22:27:32 +0000

Merge branch 'zotdef_removal'

--------------------------------------------------------------------------------
7b63d66adf | Chris Campbell | 2015-03-02 22:25:29 +0000

Mention Bend Time on ^ when worshipping Chei (Tuxi[Qyou])
And display a message when gaining Chei's slowed metabolism.

--------------------------------------------------------------------------------
1c893b668a | Chris Campbell | 2015-03-02 22:25:18 +0000

Update some hints mode messages

--------------------------------------------------------------------------------
f61b8f8679 | Chris Campbell | 2015-03-02 22:25:18 +0000

Update some tutorial messages

--------------------------------------------------------------------------------
10e7e3d4ad | gammafunk | 2015-03-02 00:36:46 -0600

Make catoblepas speed 10 and reduce their breath spam a bit (minmay)
Them having both low-damage breath and slow action means they were very
easy to escape. They're now speed 10, and their breath weighting has
been reduced so that they'll use it about 20% less often than they did
at speed 8, since it was too frequent even then.

--------------------------------------------------------------------------------
24fbb24a16 | Neil Moore | 2015-03-01 19:38:38 -0500

Simplify (wheals)

--------------------------------------------------------------------------------
1402169daa | Edgar A. Bering IV | 2015-03-01 19:33:03 -0500

Don't include (inert) in the action table for xp evokers (9486)

--------------------------------------------------------------------------------
75a0564fb9 | Neil Moore | 2015-03-01 19:20:50 -0500

Be a little more careful.
I didn't mean to replace all those checks, just the base_type part.

--------------------------------------------------------------------------------
f6222b3ab4 | Neil Moore | 2015-03-01 19:18:21 -0500

Stop vampire feeding when a corpse skeletonises.
See for example:
    http://crawl.akrasiac.org/rawdata/Kitty/crash-Kitty-20150301-233403.txt

And improve a related message.

--------------------------------------------------------------------------------
49b462eac8 | Neil Moore | 2015-03-01 17:58:06 -0500

Fix debug mode compilation (oops)
Introduced by my "improvement" in 0.16-a0-4120-gb205902.

--------------------------------------------------------------------------------
92c252efc0 | Edgar A. Bering IV | 2015-03-01 17:16:09 -0500

Remove unique annotations for god gifts and pacification (dpeg, #9475)
If you convert Saint Roka his annotation follows you around even though
he's an ally. Additionally, prior to this patch, a annotation was only
removed for a pacified unique if the player saw the unique leave. This
has been changed to remove the annotation on pacification.

This has a possible edge case that I don't think can actually happen. If
the unique is pacified and then becomes hostile again before leaving out
of the player's sight the annotation won't be re-added, which could lead
to a player being surprised. If this can happen (maybe with clouds?)
it's far less frequent than an annotation remaining because the player
did not see the monster leave.

[Committer's note: removed a set of braces. -nfm]

--------------------------------------------------------------------------------
9306c41744 | Neil Moore | 2015-03-01 17:08:38 -0500

Don't use typedef with anonymous structs (minmay)
This isn't C.

--------------------------------------------------------------------------------
b205902570 | Zannick | 2015-03-01 16:17:36 -0500

Prevent infinite recursion via frenzied twins (#9137)
- Don't attempt to make a frenzied twin hostile since it won't work.
- Don't convert one twin if the other dies insane.
- Refactor some common twin-finding code into a separate function.
- Hold off on upgrading them until after they come out of it. Duvessa
  won't be able to berserk while insane or exhausted anyways, and Dowan
  can't really cast while insane, so this mostly affects when Dowan's
  spell set changes and the message printed.
- A twin that comes out of frenzy reverts to the same attitude as their
  twin (or hostile if that twin is still frenzied or dead). This, I think,
  makes the most sense, since the only sources of frenzy are: the monster
  spell (which neither has), the AoE player spell, and the needle. And,
  let's face it, if both get frenzied by a monster using needles, it's
  probably the player's fault.
- Add "frenzied and insane" to monsters' debug descriptions.

[Committer's note: Lifted a comma_separated_line call out of both sides
 of an if; and fixed braces. -nfm]

--------------------------------------------------------------------------------
1a44955996 | Edgar A. Bering IV | 2015-03-01 15:51:03 -0500

Ambrosia no longer heals more when performing fast actions (#9504)

--------------------------------------------------------------------------------
2bcf425b13 | Neil Moore | 2015-03-01 15:41:30 -0500

Don't suppress textinput events for AltGr on Windows (#9306)
Ignore the keydown events entirely.  Thanks to Lasty for helping find the
right combination of modifiers to look for.

--------------------------------------------------------------------------------
9ab0c1e575 | Neil Moore | 2015-03-01 15:08:18 -0500

Don't put an extra newline after wrapcprintf.
This put the cursor in the wrong place when editing a pre-filled
input line (modifying an inscription, for example).

Introduced in 0.16-a0-4058-ga3e9557, oops.

--------------------------------------------------------------------------------
021ab238cb | Corin Buchanan-Howland | 2015-03-01 14:22:13 -0500

Extend auto-pickup behavior to inert evokables (minmay)

--------------------------------------------------------------------------------
a5ed934065 | Neil Moore | 2015-02-28 22:38:14 -0500

Make ARTP_CURSED less recursive.

--------------------------------------------------------------------------------
c1a44651a1 | elliptic | 2015-02-28 19:15:34 -0500

Update test/stress/qw.rc.
With many fixes and improvements. The main home for qw.rc is
https://github.com/elliptic/qw, and just two changes have been made to it
for inclusion here: AUTO_START = true and clear_messages = false.

--------------------------------------------------------------------------------
7d8e295b1e | ontoclasm | 2015-02-27 13:52:33 -0600

Bone dragon tile (CanOfWorms)

--------------------------------------------------------------------------------
89a41073ed | ontoclasm | 2015-02-25 23:56:53 -0600

Gelatinous tiles (CanOfWorms)

--------------------------------------------------------------------------------
f7622231dc | Neil Moore | 2015-02-25 23:34:08 -0500

Don't butt-lify "fly" (PleasingFungus)

--------------------------------------------------------------------------------
adeed75a2a | Neil Moore | 2015-02-25 22:54:47 -0500

Tweak the % title when space is low (ChrisOelmueller)
If the character name etc. are wide enough that there is no room for
the name + char abbreviation + title, at least leave a space between
the name and the char abbreviation.

--------------------------------------------------------------------------------
6e4aab16f4 | Neil Moore | 2015-02-25 22:54:47 -0500

Refactor _overview_screen_title (wheals)
Remove the for-switch, as it is just Too Powerful. Also use strings instead
of fixed buffers.

--------------------------------------------------------------------------------
6e49b0d363 | Chris Campbell | 2015-02-25 20:47:57 +0000

Sync manual from wiki

--------------------------------------------------------------------------------
b45b824af6 | Neil Moore | 2015-02-25 14:07:25 -0500

Use ITEM_IN_INVENTORY more.

--------------------------------------------------------------------------------
3b837832d6 | Neil Moore | 2015-02-25 13:48:41 -0500

Undangle an else.
Yes, the standard says it parses as we want it to, but still...

--------------------------------------------------------------------------------
26c8761d35 | Shmuale Mark | 2015-02-25 13:35:32 -0500

Simplify.

--------------------------------------------------------------------------------
bf1ace946e | Shmuale Mark | 2015-02-25 13:35:31 -0500

Encapsulate a hack somewhat.

--------------------------------------------------------------------------------
8548637ee1 | Shmuale Mark | 2015-02-25 13:35:29 -0500

Call link_items before unmarshalling monster (#9350).
This should fix a rare crash with an Enslave Soul'd Ilsuiw.

--------------------------------------------------------------------------------
59ecb4a453 | gammafunk | 2015-02-25 12:00:06 -0600

Properly inherit colour when reviving dead cats

--------------------------------------------------------------------------------
5222fafd7d | Shmuale Mark | 2015-02-25 12:33:58 -0500

Remove some dead bennu code.

--------------------------------------------------------------------------------
c4bd9739c2 | Neil Moore | 2015-02-25 12:14:14 -0500

Make bennu revival a fineff (#6401)
This fixes some tornado-related crashes.  Felid revival should get the
same treatment, but that is harder because of the need to preserve items.

--------------------------------------------------------------------------------
0be755fb21 | gammafunk | 2015-02-24 21:26:54 -0600

New reaper tile (CanOfWorms)
Also add worms to CREDITS.txt

--------------------------------------------------------------------------------
d37d62bdde | Neil Moore | 2015-02-24 21:31:12 -0500

Don't claim sensed monsters have rN+++ (#9505)
Maybe it would have been simpler to make MONS_SENSED_* natural holiness.

--------------------------------------------------------------------------------
b4d75faae2 | Chris Campbell | 2015-02-24 17:33:59 +0000

Replace Qazlal's lava wrath effect with noise
Creating lava around the player was more likely to be helpful than harmful.

--------------------------------------------------------------------------------
8ff97e8229 | Chris Campbell | 2015-02-24 17:33:59 +0000

Let lava monsters flop around on dry land
Possible by creating temporary lava and having it expire from underneath a
lava-only monster - previously it would just happily start walking around on
dry land. Now it will flop around and try and dive back into lava, as water
monsters do.

--------------------------------------------------------------------------------
194d721641 | Chris Campbell | 2015-02-24 17:33:59 +0000

Revert "The triumphant return of the blowgun of the Assassin"
Sadly nogen was never actually removed from the blowgun, so this change never
even saw the light of day. Blowgun stabbing is a fairly obscure mechanic and
this seems unlikely to have made the unrand particularly worthwhile if it had
been able to generate, though.

This reverts commit c6df229c84c6.

--------------------------------------------------------------------------------
751c2b0b3b | Chris Campbell | 2015-02-24 17:33:59 +0000

Function-ise a duplicated formula

--------------------------------------------------------------------------------
160c580b34 | Shmuale Mark | 2015-02-24 11:26:37 -0500

Disallow reaching with clubs (nicolae-).

--------------------------------------------------------------------------------
b8933cddad | Chris Campbell | 2015-02-23 20:39:43 +0000

Reduce the number of temporary mutations cured at a time
With a low number of temporary mutations afflicting the player - with lots of
temporary mutations more still expire at a time.

--------------------------------------------------------------------------------
0962aefb4e | Chris Campbell | 2015-02-23 20:20:07 +0000

Fix temporary mutations after the first expiring more quickly
Broken since 0f3ca609f91bac, woops!

--------------------------------------------------------------------------------
20229019bc | Chris Campbell | 2015-02-23 19:51:42 +0000

Don't deal HP damage when losing an XL (|amethyst)
Relevant only for Ru's Sacrifice Experience, and made it possible to die by
taking the sacrifice with 8hp or less.

--------------------------------------------------------------------------------
420112e72d | Chris Campbell | 2015-02-23 18:45:52 +0000

Disable Zot Defence
It's very broken in a large variety of ways, and has been for a very long time.
Disable the mode, pending full removal in the near future unless some brave
soul volunteers to get it back into a playable condition.

--------------------------------------------------------------------------------
c94e39e338 | Nicholas Feinberg | 2015-02-22 21:05:10 -0800

Changelog through 0.16-a0-4088-g7c8221e

--------------------------------------------------------------------------------
7c8221e1d2 | Nicholas Feinberg | 2015-02-22 10:13:41 -0800

Remove a redundant if
Pointless since 73173809 (2012).

--------------------------------------------------------------------------------
bc9a206a33 | Nicholas Feinberg | 2015-02-22 10:09:50 -0800

Remove zap_type_to_spell()
Added by 708e7799 in 2009; redundant since spl-zap.cc was created
by 16abcfaea6b (2010). Also, only used in one place.

--------------------------------------------------------------------------------
ceb348796b | Nicholas Feinberg | 2015-02-21 21:39:14 -0800

Make fleshy orifices much more obvious
With a crude contrast/brightness hack.

They were pretty stealthy before.

--------------------------------------------------------------------------------
b20a95dedd | Nicholas Feinberg | 2015-02-21 21:35:09 -0800

Moved door tiles into their own directory
Fleshy doors were in gateways, probably due to a misunderstanding.

--------------------------------------------------------------------------------
85a4fe72bc | Nicholas Feinberg | 2015-02-21 21:16:44 -0800

Remove Nem & Ely from arena sprint
Exploration gods.

Not sure if there are other sprints that they cause trouble in?

--------------------------------------------------------------------------------
5af668bba3 | Neil Moore | 2015-02-21 19:57:11 -0500

Don't crash when thorn hunters poly into oklobs.
The assert would trigger when a spellcasting monster (thorn hunter)
polymorphed into an oklob plant, because we were calling set_hit_dice
before changing the spell list.

--------------------------------------------------------------------------------
d7677f8f7a | elliptic | 2015-02-21 19:30:46 -0500

Remove secret oklobs from bazaar_minmay_oklob.
And give it a more fitting name (contributed by |amethyst).

--------------------------------------------------------------------------------
01c81c0524 | Nicholas Feinberg | 2015-02-21 15:09:35 -0800

Remove a redundant comment

--------------------------------------------------------------------------------
e7f568fa0b | Nicholas Feinberg | 2015-02-21 15:09:35 -0800

Remove _is_random_name_space
Come on.

--------------------------------------------------------------------------------
488053ee04 | Nicholas Feinberg | 2015-02-21 15:09:35 -0800

Declare a make_name constant

--------------------------------------------------------------------------------
50cc3cd3ef | Neil Moore | 2015-02-21 18:06:36 -0500

Make sure the new skill menu help fits in tiles.
Maybe it needs to be a bit taller if the font is large enough
that the last line wraps.

--------------------------------------------------------------------------------
8aca3edbfb | Neil Moore | 2015-02-21 18:06:36 -0500

Document a code dependency.

--------------------------------------------------------------------------------
8c86c8474f | Neil Moore | 2015-02-21 18:06:36 -0500

Show m help for both enhancement and dehancement.
If both are active.

--------------------------------------------------------------------------------
4c7a7ceed1 | Neil Moore | 2015-02-21 18:06:36 -0500

Better detect crosstraining in skill help.
List it whenever you have any points in cross-trainable skills, even if
you are also under the influence of Heroism or Ashenzari.

We don't go so far as to try to detect whether the crosstraining
visibly changed any skills.

--------------------------------------------------------------------------------
01c0d03ed8 | Chris Oelmueller | 2015-02-21 18:06:31 -0500

Redesign skill menu text (mostly legend, plus minor tweaks)
Skill enhancer list
- - - - - - - - - -
As with draining, a list of reasons for skills exceeding their base level
is assembled. The only options so far are Heroism, Ashenzari skill boost
and crosstraining, which right now is only blamed for enhanced skills if
no other explanation was found. This could be changed to check for if any
any skill actually is boosted by crosstraining on top of other boosts.

Realign table columns
- - - - - - - - - - -
Previously, skill manuals would look very much like they were squeezed
into the space in last-second manner. Padding skills by one more char
helps avoid that and doesn't do much harm anywhere else.

When prompting for experience distribution from sources such as potions
of experience, or when handling Ashenzari's Transfer Knowledge ability,
source and target skill markup has been changed. In the case of experience
gain, only enabled skills will show a target level (New) now.

In the process, the progress representation was changed from `->` to `> `
for better alignment as well.

Redesign legend layout
- - - - - - - - - - -
In this commit message, "Help text" and "Text help" refer to the two/five
lines of explanatory text following the table of skills in skill menu.
"Legend" and "buttons" refers to the skill mode switch display (e.g. to
toggle between automatic and manual mode) below the help text.

Inspired by shop legend overhaul, a few pairs of brackets are removed from
skill menu legend to reduce visual noise and generally emphasize the keys
and their actions. Several mode switches were renamed to better fit game
vocabulary used in other places (such as "base" instead of "normal" level).

The help button legend is now responsive to aid in highlighting individual
toggle states (which were only communicated in the text help previously).
Hints mode / tutorial text is adjusted accordingly.

What players will usually see in the last two lines of `m` screen:

 [?] Help
 [/] auto|manual mode    [*] trainable|all skills
or
 [/] auto|manual mode    [*] trainable|all skills    [_] enhanced|base level
with skill boosts ("enhanced" is replaced with "reduced" or "modified" for
those cases).

What is displayed after pressing `?`:

 [?] Help                [a-z] skill descriptions
 [/] auto|manual mode    [*] trainable|all skills    [_] enhanced|base level

Alignment of the extra help mode legend [a-z] might be slightly off in
other menus also handled by skill menu code (such as Ash reskilling or
quaffing !experience) but that should not be a big deal.

Old presentation example for comparison:

[Mode(/): auto|manual] [Show(*): default|all] [Help(?)]

--------------------------------------------------------------------------------
fd5ab8dc51 | Chris Oelmueller | 2015-02-21 18:06:28 -0500

Tweak skill menu help section text slightly
- Remove obsolete references to cross- and anti-training
- Mention skill manuals
- Change list item indentation from * to -
- Spell out Nemelex
- Re-wrap text to fit into two pages of 80x24

--------------------------------------------------------------------------------
b44d370265 | Chris Oelmueller | 2015-02-21 18:06:23 -0500

Remove dead commented code
Introduced with 0.10-a0-985-g905850e.

--------------------------------------------------------------------------------
0e80503c84 | Neil Moore | 2015-02-21 16:59:41 -0500

Remove a non-functional subst.
The Lua subst() call, unlike the SUBST: keyword in the des format, does
not accept a comma-separated list, but only a single substitution.  But it
appears the line wouldn't have done anything anyway, since HIJKL aren't
generated until later substs a few lines down.

Not changing to the "intended" behaviour (splitting the subst call and
moving it later) because that would be a difficulty nerf:

<st_> I didn't realise it was wrong so it can't have been too wrong :p

--------------------------------------------------------------------------------
d9f8f63faa | Neil Moore | 2015-02-21 14:16:53 -0500

Repeat viable selections more correctly (#9498)
If you selected background first, then chose viable race, you would as
expected get a viable race for that background.  But then when repeating
that selection for the next game (with Tab), you would have a 50% chance
of first selecting a viable race, then selecting the background,
resulting in a completely random race selection.  Now, if one selection
was 'viable', do the other one first.  If both were viable, continue to
use a random order.

If the player's selection was in fact viable race first, then background,
it was already being remembered as "random race", so that case isn't
affected.

--------------------------------------------------------------------------------
03ff99eb94 | Neil Moore | 2015-02-21 13:48:04 -0500

Don't assert when a monster kills itself then starts a fire.
E.g. with a bounced lightning bolt:
  
http://crawl.lantea.net/crawl/morgue/cribozai/crash-cribozai-20150221-183021.txt

The resulting cloud will be credited incorrectly: KC_OTHER even for
friendly creatures, and KILL_MISC rather than KILL_MON_MISSILE.  But
that's better than crashing.

--------------------------------------------------------------------------------
a6383f7c22 | Neil Moore | 2015-02-21 13:34:11 -0500

Give the correct corpse for polymorphed dracos/DS (PF)

--------------------------------------------------------------------------------
f2895d318d | Nicholas Feinberg | 2015-02-20 21:05:02 -0800

Checkwhite

--------------------------------------------------------------------------------
912990dc18 | Nicholas Feinberg | 2015-02-20 21:04:56 -0800

Add a doxygen comment for ake_name

--------------------------------------------------------------------------------
c5a8185275 | Nicholas Feinberg | 2015-02-20 18:14:40 -0800

Tweak hydra description
Fix grammar ("hydra's") and try to improve a run-on sentence.

--------------------------------------------------------------------------------
68d9c7ee49 | Chris Campbell | 2015-02-20 23:57:02 +0000

Remove a duplicate faun spellbook (elliptic)
It existed as a hacky way to reduce confuse's frequency, before it was possible
to do that in spellbook definitions, and before spellbooks showed up on xv.
Just reduce confuse weight slightly instead.

--------------------------------------------------------------------------------
54f8005057 | Chris Campbell | 2015-02-20 23:14:35 +0000

Correctly display Gozag penance on Ctrl-O

--------------------------------------------------------------------------------
9e2f9fc3b4 | Chris Campbell | 2015-02-20 23:14:23 +0000

Merge branch 'gozag_wrath'
Conflicts:
	crawl-ref/source/tag-version.h

--------------------------------------------------------------------------------
00983b4376 | Neil Moore | 2015-02-20 16:04:18 -0500

Don't crash when a raiju dies during blinkbolt (#9297)
As Grunt points out at that bug, it would be better to place the raiju
off-map while it's blinkbolting, so it won't die to inner flame etc. at
its original position.  But this will at least prevent the crash.

--------------------------------------------------------------------------------
b9776b0ddc | Neil Moore | 2015-02-20 15:50:48 -0500

Don't crash when instakilling TSO summons (#9233)
A daction might still be better, but this at least prevents the crash
and leaves us in a consistent state.

--------------------------------------------------------------------------------
a3e9557428 | Neil Moore | 2015-02-20 15:14:38 -0500

Don't word wrap in the line reader.
This behaviour change, introduced in 0.8.0-a0-6162-g597a4ca, wasn't
reflected in the redrawing and cursor positioning code. Go back to the
space-agnostic column wrapping, but not to the old wrapcprintf code,
which didn't handle double-width or even multibyte characters.

There are still bugs related to cursor positioning and redrawing when a
double-width character wraps when there was still a single space on the
line.

This doesn't solve #5554 (reproducible crash in the line reader),
but probably does make it easier to fix.

--------------------------------------------------------------------------------
af3f15d813 | Chris Campbell | 2015-02-20 20:12:50 +0000

Display when potion petition is free in the extended desc

--------------------------------------------------------------------------------
a8d7a6dea8 | Chris Campbell | 2015-02-20 17:23:52 +0000

Update hydra description for short blade changes (magicpoints)

--------------------------------------------------------------------------------
ee4db934f0 | gammafunk | 2015-02-19 17:39:33 -0600

Remove a tile from rltiles/UNUSED now that it's in the player tileset

--------------------------------------------------------------------------------
979c649b1c | gammafunk | 2015-02-19 17:33:26 -0600

THE GIAGGOSTUONO
Legends say THE GIAGGOSTUONO came into being when some poor adventurer
read a scroll of the same...

Adding the tile and weapon/shield offsets for use with tile_player_tile.

--------------------------------------------------------------------------------
cde8851c73 | Neil Moore | 2015-02-19 18:22:13 -0500

Properly handle UTF-8 in crawl.sendkeys()

--------------------------------------------------------------------------------
5391420c79 | Neil Moore | 2015-02-19 13:56:56 -0500

Use %zu, not %Iu, when using mingw's (s)printf (johnny0)
Which we enable in our Makefile.

Also revert "Don't warn about %Iu in mingw (gammafunk)", since we in
fact don't want %Iu in MinGW builds.

This reverts commit b20b1ff792f4f6570047384dc3ee27ebc1f5794b.

--------------------------------------------------------------------------------
b20b1ff792 | Neil Moore | 2015-02-19 13:20:26 -0500

Don't warn about %Iu in mingw (gammafunk)

--------------------------------------------------------------------------------
5bde15b177 | Neil Moore | 2015-02-19 13:10:53 -0500

Show MR chance for Tukima's (PF, #9496)

--------------------------------------------------------------------------------
170539fcd1 | Neil Moore | 2015-02-19 11:54:52 -0500

Fix <Del> in the line reader (wheals)
Pressing delete with the cursor in the middle of the string doubled the
last character, and could also leave half a UTF-8 character at the
cursor.

There are still problems with wrapping: line_reader::cursorto assumes
raw wrapping, but we use wrapcprintf, which does word wrapping.

--------------------------------------------------------------------------------
f10dcfe554 | Neil Moore | 2015-02-19 10:17:24 -0500

Hush a sign warning.
Tempted to use a #define, since a literal 3 would work in both places
without casts or warnings.

--------------------------------------------------------------------------------
245e628b28 | Neil Moore | 2015-02-19 09:34:32 -0500

Temporarily revert some mimic stuff (elliptic, wheals)
"Refactor some mimic generation." and "Let Pan/Hell/Slime/Tomb have
mimics.", and techically also "Fix item mimics (travis, geekosaur,
wheals)".

elliptic reported a dungeon without a real Vaults entrance, and
Travis-CI noted a Hell branch level missing an exit.

At least part of those bugs could be fixed by changing:

if (feat_is_branch_entrance(feat)
     && level_id::current() != brentry[get_branch_at(pos)]
    || one_chance_in(FEATURE_MIMIC_CHANCE))

into:

if (feat_is_branch_entrance(feat)
    ? level_id::current() != brentry[get_branch_at(pos)]
    : one_chance_in(FEATURE_MIMIC_CHANCE))

But other bugs probably lurk.  Re-revert and fix that after
0.16 is released.

In reverse order:

This reverts commit f7bb3003942bc3e95c302d1acd36f2778069d04f.
This reverts commit 6cc37e00f954ea1edeea78d89ac3c9ed916fa784.
This reverts commit caa303aa219f4afee6d6518a96eeefc0c37c27e0.

--------------------------------------------------------------------------------
6e7a7394e2 | Neil Moore | 2015-02-19 00:42:06 -0500

C++11ify.
Now that the loop starts at the beginning, make it range-based.

--------------------------------------------------------------------------------
801983f2f6 | Neil Moore | 2015-02-19 00:19:52 -0500

Don't delete wrong items from shopping list page two (hy-on-github)
Menu::get_entry_index started counting at the beginning of the current
page, not the beginning of the list.  Since this shopping list code
is its only user, make it work as expected (and documented).

--------------------------------------------------------------------------------
fb8b5dee09 | Neil Moore | 2015-02-18 23:43:04 -0500

Don't shuffle the shopping list when removing an item.

--------------------------------------------------------------------------------
d6c5e7b664 | elliptic | 2015-02-18 23:05:57 -0500

Rename spell_fail() to raw_spell_fail().
Hopefully this reduces confusion.

--------------------------------------------------------------------------------
17f4350d88 | elliptic | 2015-02-18 23:05:57 -0500

Fix ghosts being far less likely to have spells than intended.
The formula was using spell_fail(spell), which unfortunately is not the
actual failure rate...

--------------------------------------------------------------------------------
965e448fd4 | gammafunk | 2015-02-18 20:59:42 -0600

Update INSTALL.txt instructions for using Win-builds GCC under Windows

--------------------------------------------------------------------------------
63baae8fa0 | Nicholas Feinberg | 2015-02-18 17:39:02 -0800

Add a lava worm corpse tile (9492)
Since it's trivial, even if it will never actually happen in
practice.

An extremely powerful prize will be awarded to the first person
who emails me with an in-game, ***NON-WIZMODE*** screenshot of
this corpse. Cheating will not be taken lightly!!!

--------------------------------------------------------------------------------
1cbb700dc6 | Neil Moore | 2015-02-18 20:07:15 -0500

Don't trample water-/lava-bound creatures onto land (#9492)

--------------------------------------------------------------------------------
f7bb300394 | Neil Moore | 2015-02-18 19:32:08 -0500

Fix item mimics (travis, geekosaur, wheals)

--------------------------------------------------------------------------------
e07a62f118 | Neil Moore | 2015-02-18 19:00:38 -0500

Revert "Move some feature substitutions to the end of levelgen."
The order matters here: _fixup_branch_stairs makes different
substitutions; it originally came after the Pan- and Hell-specific stair
fixups, but this commit made it come after.  As a result, Pan had a lot
more exits, and would occasionally generate a level without transits,
triggering an assert.

It might work to instead move _fixup_branch_stairs into
_apply_branch_substitutions (after the others), but I am not certain
there aren't other implications of that.  It would be worth trying after
0.16 is released.

This reverts commit d7eee1f81efc638608b48d67acf3ee1a3df8fbcf.

--------------------------------------------------------------------------------
48eebbcb05 | Neil Moore | 2015-02-18 18:32:42 -0500

Quote CREDITS.txt more consistently (mauris)

--------------------------------------------------------------------------------
8dd8153c59 | Neil Moore | 2015-02-18 18:23:26 -0500

Doxx.

--------------------------------------------------------------------------------
a7f2d1e095 | Neil Moore | 2015-02-18 17:41:15 -0500

Reorder a member.
Not sure why I stuck this static method between two constructors.

--------------------------------------------------------------------------------
d7eee1f81e | Shmuale Mark | 2015-02-18 17:32:17 -0500

Move some feature substitutions to the end of levelgen.

--------------------------------------------------------------------------------
6cc37e00f9 | Shmuale Mark | 2015-02-18 17:32:14 -0500

Let Pan/Hell/Slime/Tomb have mimics.

--------------------------------------------------------------------------------
caa303aa21 | Shmuale Mark | 2015-02-18 17:32:10 -0500

Refactor some mimic generation.
Including moving both passes to the very last stage of level generation.
I can't see anything obvious that could go wrong because of this (except
for Gozag shops, which have been set as no-mimic).

--------------------------------------------------------------------------------
acd4c06fb9 | Shmuale Mark | 2015-02-18 17:32:07 -0500

Remove an apparent vestige of the shop hack.

--------------------------------------------------------------------------------
94f4eda560 | Chris Campbell | 2015-02-18 21:27:55 +0000

Remove some randart names that duplicate unrands
Or nearly duplicate, in the case of "the robe of the Clouds".

--------------------------------------------------------------------------------
ed956af685 | Chris Campbell | 2015-02-18 21:27:55 +0000

Don't claim that evoking the horn of Geryon makes other items of its kind inert
Possibly the whole "spirits" thing could do with rewording for the horn (or
for evokers generally).

--------------------------------------------------------------------------------
9b827bd11e | Chris Campbell | 2015-02-18 21:27:55 +0000

Make the ORB always degrade cblink to semicontrolled
Instead of degrading to semicontrolled/uncontrolled on a coinflip, so that it
still consistently gives a direction prompt and can be cancelled (rather than
having a special-case prompt just for trying to cblink with the orb).

--------------------------------------------------------------------------------
6343694fb1 | Chris Campbell | 2015-02-18 21:27:55 +0000

Fix an incorrect blink prompt

--------------------------------------------------------------------------------
3e7c10b471 | Neil Moore | 2015-02-18 13:06:06 -0500

Lift shift-and-cast into enum_bitfield<T>::exponent().
It takes a bit number and returns the flag that has that bit set.
This is just a cast, so behaviour is undefined if there is no
actual enumerator for that bit.

While we're at it, constify several flag variables set in this way.

--------------------------------------------------------------------------------
ba9e1d6936 | Neil Moore | 2015-02-18 10:04:38 -0500

Rebuild sources when .d files are stale (#9491)
If a dependency file refers to a file that no longer exists, replace it
(the .d file) with a rule that forces a rebuild of the associated .o
file (thus regenerating the .d file too).

--------------------------------------------------------------------------------
0ecf4ac7db | elliptic | 2015-02-17 21:08:48 -0500

Bring jiyva_stat_action() more up to date with modern crawl.
Specifically, heavy armour penalties to spellcasting and dodging worked
differently when much of this function was written, and the effect of Str/Dex
on melee damage was doubled at some point. This meant that this function
was often undervaluing Str relative to Dex; hopefully it is a bit better at
this now.

Also, remove a magic EVP cutoff point that made more sense 4 years ago.

--------------------------------------------------------------------------------
001212bb6a | Neil Moore | 2015-02-17 16:12:15 -0500

Add undead vine stalkers in shiori_arrival_whats_in_store_for_you.

--------------------------------------------------------------------------------
f202f35317 | Chris Campbell | 2015-02-17 20:20:05 +0000

Don't make Xom amused by losing or destroying the Orb or runes
Sadly no longer possible.

--------------------------------------------------------------------------------
900b867fb7 | Neil Moore | 2015-02-17 15:16:34 -0500

Disallow elemental status_caption_colour and background_colour.
The former crashed:
    http://crawl.xtahua.com/crawl/morgue/mudo/crash-mudo-20150217-194018.txt
and the latter appeared as green.

Several other options accept values containing colour names.  Many of
those should also be changed along the lines of this commit, to call
str_to_colour with accept_elemental = false.

--------------------------------------------------------------------------------
6ff35b54f4 | Nicholas Feinberg | 2015-02-16 13:42:48 -0800

Fix more OOS Cigotuvi's messages (ChrisO)

--------------------------------------------------------------------------------
ca1ed82da4 | Shmuale Mark | 2015-02-16 15:12:33 -0500

Don't reveal mimics with Sanctuary or Dowsing.
Now that mimics aren't really monsters, it's a bit weird (and defeats
the whole point of them, if Dowsing reveals an offscreen one).

--------------------------------------------------------------------------------
d39c4f4c89 | Shmuale Mark | 2015-02-16 14:36:03 -0500

Fix a rare bug with butchering (#3904).

--------------------------------------------------------------------------------
5508f4ce18 | elliptic | 2015-02-16 01:26:20 -0500

Remove rPois- as an artefact property.
The stacking for rPois with this was buggy and didn't work as intended (it
didn't handle simultaneously wearing artefacts with rPois+ and with rPois-
correctly). Even if working properly, the intended behavior was quite
unnatural to players -- displaying rPois as rPois+/- made it seem like
rPois should stack like other resists (and then be capped between rPois+
and rPois-).

Making rPois stack like this is certainly an option (and possibly a good
idea in the long run), but rPois- artefacts also haven't played out to be
particularly interesting -- rPois- is mainly relevant in early game and
some Lair branches, and players don't usually have many artefacts by then.
So this commit disables rPois- artefacts (removing rPois- from artefacts in
transferred games) and leaves rPois stacking as it was previously for
temporary sources of rPois-: having multiple sources of rPois+ is no
better than having a single source.

--------------------------------------------------------------------------------
4bab8b1002 | elliptic | 2015-02-16 01:26:20 -0500

Replace the trapwalk_safe_hp option with a lua hook (c_trap_is_safe).
This option hasn't worked for several months, but before then it was only
used by lua bots such as qw. A simple lua hook is easier to use for bot
purposes and requires less code maintenance than the original lua option.

Ideally this hook and other similar hooks would be documented somewhere,
but we don't currently have a place set aside for advanced player lua
documentation...

--------------------------------------------------------------------------------
bcafd6c126 | Neil Moore | 2015-02-16 01:06:24 -0500

Fix the tense of monstrous milestones (ontoclasm)

--------------------------------------------------------------------------------
1b2400b276 | Neil Moore | 2015-02-16 00:59:19 -0500

Fix the tense of abyss.enter milestones (chequers)

--------------------------------------------------------------------------------
d591273c9e | Corin Buchanan-Howland | 2015-02-15 20:35:15 -0500

Fix join rejection messages for a few gods. (ChrisOelmueller)

--------------------------------------------------------------------------------
76970dbf17 | Corin Buchanan-Howland | 2015-02-15 20:17:14 -0500

Turn off autopickup of redundant rings after Sac Hand for non-octopodes
If you aren't an octopode, Sac Hand makes duplicates of all static rings
useless, so this script disables pickup on those rings if you're already
carrying one and aren't an octopode.

The macabre finger necklace is an exception, but it's uncommon enough that
I'm fine with leaving that case to manual control.

--------------------------------------------------------------------------------
d24ddc728c | Neil Moore | 2015-02-15 19:25:21 -0500

Don't repeatedly compute an item name.

--------------------------------------------------------------------------------
a0531c156b | Neil Moore | 2015-02-15 19:17:28 -0500

Add a missing newline.

--------------------------------------------------------------------------------
a35564097f | Corin Buchanan-Howland | 2015-02-15 19:15:12 -0500

Disable autopickup of evokers when duplicates don't help
This overrides player autopickup settings to prevent pickup of the evokers
for which multiples add no value: elemental evokers, disc of storms, and
lantern of shadows.

--------------------------------------------------------------------------------
3282c3ad34 | Chris Campbell | 2015-02-15 23:11:56 +0000

Make the first usage of Gozag's potion petition free
As a makeshift way to give him something small and kinda thematic that helps
very early, before gathering enough gold to use it more frequently.

--------------------------------------------------------------------------------
beb5f6f36e | Chris Campbell | 2015-02-15 23:11:56 +0000

Make Gozag's potion-blocking wrath effect more likely to trigger

--------------------------------------------------------------------------------
98cecd072e | Chris Campbell | 2015-02-15 23:11:56 +0000

Update Gozag descriptions

--------------------------------------------------------------------------------
174c7c4a65 | Chris Campbell | 2015-02-15 23:11:55 +0000

Disable Gozag Duplication
It's a very ineffective way to help out Gozag worshippers early on, since it
varies hugely in effectiveness with early lucky finds. Without a big find
(such as a good AC/EV ring, etc), it can function as an early game boost if
used on something boring like a small stack of blinking/hasting/heal wounds,
but the fact that it works on stacks at all suggests to the player that they
should wait and use it on a big stack of something exciting, even though the
additional help is unlikely to be nearly as useful by that point in the game.

On top of this, it depends very strongly on Gozag's wrath being effective and
threatening, since otherwise it's very easy for any character at all to
duplicate their early luck and then just abandon Gozag. Gozag's previous wrath
didn't achieve this at all, and the new wrath is very likely to need testing
and adjustment. Having a more thoroughly tested and effective wrath would be
a minimum pre-requisite to bringing back immediately-accessible Duplication in
some form.

--------------------------------------------------------------------------------
dd22dfce1c | Chris Campbell | 2015-02-15 23:11:55 +0000

Let Gozag bribe most monsters during wrath
Rather than making the wrath do nothing in branches with no bribable monsters.
Also removes the invisibility effect, to avoid encouraging players to remove
SInv in order to make haste/might less likely.

--------------------------------------------------------------------------------
0bf9e2dbea | Chris Campbell | 2015-02-15 23:11:55 +0000

Extend Ashenzari's wrath model to be usable by other gods, apply it to Gozag
Just wipes out existing Gozag penance on save transfer, rather than attempting
to recalculate it.

--------------------------------------------------------------------------------
0b03098510 | Chris Campbell | 2015-02-15 23:11:55 +0000

Remove goldification and gold taxes from Gozag wrath
Both of these were very problematic - reducing penance by taxing gold meant
that wrath could be burned off very rapidly in Orc, and goldifying items on
pickup encouraged turning off autopickup (especially for valuable strategic
items) until the wrath expired, as well as allowing the player to reduce
penance by letting unwanted but normally valuable items be goldified (unwanted
!brilliance, etc).

--------------------------------------------------------------------------------
c88e425841 | Neil Moore | 2015-02-15 10:29:47 -0500

Add missing CRs to MSVC project.

--------------------------------------------------------------------------------
b10b77c56f | Neil Moore | 2015-02-15 10:29:12 -0500

Add playable.{cc,h} to MSVC project.

--------------------------------------------------------------------------------
78efcc4129 | Darshan Shaligram | 2015-02-15 20:41:48 +0530

Add -list-combos to list species, jobs & combos.
Sequell wants these because regexp trawling C++ source code for this
information is horrible and fragile.

--------------------------------------------------------------------------------
3d13fd628b | Chris Campbell | 2015-02-14 23:39:19 +0000

Improve Gell's Gravitas
Decrease the spell to level 5 and increase the confusion duration - it's still
likely to only be around 5 turns at reasonable power, could possibly be
increased further.

--------------------------------------------------------------------------------
8d6611c9f7 | Nicholas Feinberg | 2015-02-13 22:14:38 -0800

Make TRJ spawn jellies when polymorphed (gammafunk)
As if he'd been hit for mhp. (Comparable to paralysis + stab.)

--------------------------------------------------------------------------------
fbce4a48d4 | Nicholas Feinberg | 2015-02-13 22:04:53 -0800

Revert "Make TRJ spawn jellies on a failed poly"
Too weird, and there's a preferred solution.

This reverts commit 78f890e35ba13bf53c9f6ecbb56ef8600b2bc8ac.

--------------------------------------------------------------------------------
2d13b8e932 | Chris Campbell | 2015-02-13 20:23:17 +0000

Remove magic immunity from some monsters
Mainly from monsters where immunity wasn't really necessary or expected, and in
cases where there was significant inconsistency for whether monsters on a glyph
would be immune or not. Unborn also gain magic immunity, joining the other Ls.

Now with mid/low MR:
Thorn hunter, shambling mangrove, burning bush (non-firewood plants)
Eye of draining, shining eye, eye of devastation, golden eye
Reaper
Mana viper

Now with high MR:
Greater mummy, mummy priest, Khufu
Seraph, profane servitor, Mennas
Great orb of eyes, ophan
Greater naga
The Enchantress

--------------------------------------------------------------------------------
5586aa9a62 | Chris Campbell | 2015-02-13 20:23:17 +0000

Give Cerebov magic immunity
He was the only unique & (other than Geryon) without it.

--------------------------------------------------------------------------------
fe6324dfc6 | Shmuale Mark | 2015-02-13 12:14:50 -0500

Presumably unbreak Android compilation.

--------------------------------------------------------------------------------
bb9a3899a8 | Shmuale Mark | 2015-02-13 12:14:49 -0500

Hopefully fix the remaining butchering issues (elliptic).
* The first corpse on the turn is now pushed into the queue, like other
  ones, so it is butchered at the end of the turn, after the y/n/a/q
  prompt, rather than during the prompt.
* Autopickup occurs once all butcher delays on a queue are compleleted,
  rather than when each one is finished.
The above changes should lower message spaminess drastically.
* Autopickup is no longer free (which may have been an issue in 0.15 as
  well; it's not very easy to test to be sure).

--------------------------------------------------------------------------------
78f890e35b | Nicholas Feinberg | 2015-02-12 21:41:10 -0800

Make TRJ spawn jellies on a failed poly (|amethyst)
Polying TRJ is cool, but a little too easy at present.

A bit of an inelegant special case, but perhaps the flavour text
is enough to make it work...?

--------------------------------------------------------------------------------
61da7c2dab | Neil Moore | 2015-02-12 23:06:50 -0500

Update server admin list.

--------------------------------------------------------------------------------
50e10cd02c | Shmuale Mark | 2015-02-12 18:34:27 -0500

Make butchering take 1 turn, rather than 0 (elliptic).

--------------------------------------------------------------------------------
e4eb6c921e | Shmuale Mark | 2015-02-12 18:34:25 -0500

Simplify with C++11.
It looks like use_target_as_pos was uninitialised, which I fixed
(it now starts at false).

--------------------------------------------------------------------------------
bbee317bcd | Neil Moore | 2015-02-12 17:23:17 -0500

Correct options_guide msgch list.
We omitted monster_warning and dgl_message; and, worse, misspelled
"diagnostic" as plural.

--------------------------------------------------------------------------------
9adecdf957 | Chris Campbell | 2015-02-12 18:12:58 +0000

Don't let monsters be distracted by your allies under TSO
Having summoned angels distract enemies and prevent you from attacking them
was an unintentional-seeming and frustrating example of the chivalric conduct.
Monsters are still considered distracted when they're wandering and have no
target, but won't be distracted if they're fighting another monster.

--------------------------------------------------------------------------------
631dd12996 | Neil Moore | 2015-02-11 20:54:46 -0500

Use { } for another coord_def array.

--------------------------------------------------------------------------------
23836d303e | Nicholas Feinberg | 2015-02-11 17:31:55 -0800

Don't prompt on reading un-id'd ?blink under stasis (wheals)
The check in item_use is the one that's used; the one in
spl-transloc.cc can (probably?) never be reached at present, but
should prevent future incidents.

--------------------------------------------------------------------------------
a6658e88e4 | Neil Moore | 2015-02-11 19:43:22 -0500

Remove a dangling prototype.

--------------------------------------------------------------------------------
c1e71979b4 | elliptic | 2015-02-11 19:17:57 -0500

Fix autoexplore/travel thinking that you can fly over mechanical traps and 
shafts.
Looks like 6d4b6af missed this because it didn't use ground_only().

--------------------------------------------------------------------------------
9526008b1e | elliptic | 2015-02-11 18:36:50 -0500

Fix missing "I'll put %s outside for you." shop message.
Looks like this was accidentally removed in 1e85cf02.

--------------------------------------------------------------------------------
5719e887c9 | Chris Campbell | 2015-02-11 21:26:47 +0000

Replace rHellfire with rF+++ in most cases
Since player Hellfire is incredibly rare, the main reason for a monster to
have rHellfire is to avoid self-damage. Only monsters that actually cast
Hellfire themselves now have rHellfire, with the exception of Cerebov who
keeps rHellfire due to his entourage of Brimstone Fiends.

--------------------------------------------------------------------------------
66823cd59c | Chris Campbell | 2015-02-11 20:15:18 +0000

Remove some unnecessary uses of mrd() for single-level monster resists
And don't give lost souls a single level of rPois (they already get full poison
immunity from being undead).

--------------------------------------------------------------------------------
3a89a27569 | Chris Campbell | 2015-02-11 20:02:10 +0000

Remove some resists from monster spriggans
In cases where classed spriggans had unexpected (and unnecessary) resists
differing from the base monster.

--------------------------------------------------------------------------------
812cefa6d1 | Chris Oelmueller | 2015-02-11 19:54:28 +0000

Consume less newlines on non-message-area prompt repeats
Such as in the religion screen prompting for worship.

--------------------------------------------------------------------------------
aa3ee12124 | Chris Oelmueller | 2015-02-11 19:54:28 +0000

Place worship prompt three lines further down (#9394)
[Religion question overwrites religion description text]
For e.g. Gozag Powers, Zin Wrath. Also see comments in that ticket.

--------------------------------------------------------------------------------
65c414e1ba | Chris Oelmueller | 2015-02-11 19:54:28 +0000

Gozag text tweaks
Intended to remove some duplication. Also includes a couple otherwise
unrelated coding style changes in the vicinity.

--------------------------------------------------------------------------------
ae28e329eb | Chris Oelmueller | 2015-02-11 19:54:28 +0000

Emphasize the need for uppercase prompt input
By printing the more clear message intended for tutorial/hints mode use in
case of valid input that just was rejected due to lack of capitalization.

--------------------------------------------------------------------------------
6268e3a4e8 | Chris Campbell | 2015-02-11 19:54:28 +0000

Don't redraw AC/EV when placing/expiring Gozag gold (ChrisOelmueller)
Since it doesn't boost skills anymore.

--------------------------------------------------------------------------------
79458de232 | Neil Moore | 2015-02-11 14:43:26 -0500

Revert corpse type even when polied into a shifter (#9483)
Fortunately the original_type prop was already being set appropriately.

There is a minor save compat issue: a monster placed as "goblin
perm_ench:shapeshifter" in an older version will revert to a goblin
corpse rather than a shapeshifter corpse on death.  Newly-placed
monsters of this kind will revert correctly.

--------------------------------------------------------------------------------
2211e245bc | Nicholas Feinberg | 2015-02-10 22:26:33 -0800

Fix war/molten gargoyle flags/resists (Hurricos)
Broken by b2544625dcdb8.

oops

--------------------------------------------------------------------------------
3e548368e9 | Neil Moore | 2015-02-10 23:54:35 -0500

Don't crash when parsing scorefile entries with missing species.
The char (if both species and background are missing) will be 'YaUn',
while in 0.15 it was '????'.

--------------------------------------------------------------------------------
683f154def | Nicholas Feinberg | 2015-02-10 19:53:59 -0800

Display skill-modified AC in body armour desc (minmay)
Seems to be off-by-1 in some cases; rounding issues? Not able to
reproduce reliably.

EV is a good project, but it's tougher.

--------------------------------------------------------------------------------
5595768ab0 | Nicholas Feinberg | 2015-02-10 19:53:59 -0800

Checkwhite

--------------------------------------------------------------------------------
faa0fb1247 | Neil Moore | 2015-02-10 21:23:49 -0500

Cull XP evokers from shopping lists (#9480)

--------------------------------------------------------------------------------
53199ab9b3 | Neil Moore | 2015-02-10 21:17:52 -0500

Don't crash when a shock serpent discharges into a tentacle (#9479)

--------------------------------------------------------------------------------
91ea21f706 | Neil Moore | 2015-02-10 17:53:33 -0500

Don't make butchery free when interrupted.
If interrupted, you would finish butchering the remaining items in zero
qurns.  If not interrupted, it would take the normal amount of time.

--------------------------------------------------------------------------------
637177ace6 | Neil Moore | 2015-02-10 17:53:03 -0500

Don't let the player half-cancel armour swaps.
You could cancel only the removal, resulting in a crash:

  http://crawl.lantea.net/crawl/morgue/Eptagon/crash-Eptagon-20150210-213015.txt

--------------------------------------------------------------------------------
9cea97289b | Neil Moore | 2015-02-10 14:02:26 -0500

Replace summons_index with a map (wheals).
And remove the now-unused data-index.h.  This means you will need to make
clean or remove all your dependency (.d) files.

--------------------------------------------------------------------------------
3a54c91112 | Neil Moore | 2015-02-10 13:31:22 -0500

Replace make_stringf("%c",...) and %s.

--------------------------------------------------------------------------------
44aede0c86 | Chris Oelmueller | 2015-02-10 13:31:22 -0500

C++11: Replace `make_stringf("%d", n)` with `to_string(n)`
Same for one instance of `make_stringf("%u", n)`.

--------------------------------------------------------------------------------
472d695a87 | Chris Campbell | 2015-02-10 17:46:13 +0000

Don't double-ban Ashenzari in Zotdef (and do ban Elyvilon)

--------------------------------------------------------------------------------
4235db04d0 | Corin Buchanan-Howland | 2015-02-10 12:15:08 -0500

Don't skip sac offer if one of the sacrifices is SAC_SKILL

--------------------------------------------------------------------------------
8fd1348b1c | Corin Buchanan-Howland | 2015-02-10 12:15:07 -0500

For the third, or maybe fourth time, let Ru actually deactivate skills (kvaak)

--------------------------------------------------------------------------------
72b9e461b6 | Chris Campbell | 2015-02-10 16:45:24 +0000

Use BASELINE_DELAY in some monster enchantment durations

--------------------------------------------------------------------------------
f3423b35b1 | Nicholas Feinberg | 2015-02-09 18:52:18 -0800

Ban Ely from zotdef
Exploration piety.

--------------------------------------------------------------------------------
290d66c387 | Chris Campbell | 2015-02-09 20:38:30 +0000

Don't display *Rage on the % screen for races that can't berserk (#9476)

--------------------------------------------------------------------------------
10fd7b467a | Neil Moore | 2015-02-09 15:23:57 -0500

Unbrace.

--------------------------------------------------------------------------------
7581a25e0d | Neil Moore | 2015-02-09 15:23:43 -0500

Save compat: How Fluffy Got Her Claws Back.
Give MUT_PAWS to felids on save transfer, not just on birth.

--------------------------------------------------------------------------------
72e9c3a89b | Neil Moore | 2015-02-09 15:11:47 -0500

Fix a sign warning (geekosaur)

--------------------------------------------------------------------------------
8774f14696 | Neil Moore | 2015-02-09 15:11:47 -0500

Fix tile builds.

--------------------------------------------------------------------------------
c21df93803 | Shmuale Mark | 2015-02-09 15:06:21 -0500

Fix felid hydras etc. having an extra-good stab.
At the same time documenting their normal extra-good stab.

--------------------------------------------------------------------------------
0bdf5d42a1 | Shmuale Mark | 2015-02-09 14:29:30 -0500

Make butchering single-turn again.
With a delay this time, so the timing works out.

The first corpse you butcher each turn gets butchered right away instead
of getting pushed onto the delay queue like the others. I'm not sure if
this is too annoying, but it would be nontrivial to change so I'll just
leave it like this and allow playtesting.

--------------------------------------------------------------------------------
0d7c60ef6b | Shmuale Mark | 2015-02-09 14:29:29 -0500

Cleanup butchery(), some delay code.

--------------------------------------------------------------------------------
47e9bdb86a | Shmuale Mark | 2015-02-09 14:29:27 -0500

Revert "Make butchering/bottling single-turn."
This solution was broken in multiple ways, and reverting and starting
over seems like the cleanest way to fix it (as suggested by |amethyst).

This reverts commit 4069d43c7fa5f2c310cb8a224e883da1b97aa28a.

Conflicts:
	crawl-ref/source/butcher.cc
	crawl-ref/source/delay.cc

--------------------------------------------------------------------------------
67086d1c8c | elliptic | 2015-02-09 14:17:32 -0500

Fix rMut being less effective than intended (9477).
The resist chance was being checked twice.

--------------------------------------------------------------------------------
b4b3fd6500 | Shmuale Mark | 2015-02-09 10:22:47 -0500

Give mottled dragons the correct sticky flame type.
Broken by me, when the splash behaviour was changed to not look at
the beam's name...

--------------------------------------------------------------------------------
8f44c91da5 | Shmuale Mark | 2015-02-09 10:19:59 -0500

Remove two unused functions.

--------------------------------------------------------------------------------
fc6bcd06d9 | Shmuale Mark | 2015-02-09 10:19:57 -0500

Move species_order from species.cc to newgame.cc.
This allows lets it be hidden better and allows simpler code.

--------------------------------------------------------------------------------
0db3dd4713 | Shmuale Mark | 2015-02-09 10:19:56 -0500

Make is_valid_starting_species O(N) instead of O(1).
So that it can't get out of date.

Also, rename it and _job to is_starting_{species,job}, and remove a
few places where it was unnecessary.

--------------------------------------------------------------------------------
9cef621abb | Shmuale Mark | 2015-02-09 10:19:54 -0500

Remove two functions.
As they said, they were pure bounds checking, and ASSERT_RANGE is
better for that (it gives the value of the bad variable, which may
be useful).

--------------------------------------------------------------------------------
0ae921ea02 | Shmuale Mark | 2015-02-09 10:19:06 -0500

Fix handling of old species in hiscores.
Comments claimed that the enums reserved for removed species in
species_type were for the high score viewer, but from what the code
looked like I don't think they could ever be used.

I reproduced this with a nostalgia logfile -- you see lots of "Yak
Fighters" and so on.

--------------------------------------------------------------------------------
4f19e5c451 | Chris Oelmueller | 2015-02-08 14:54:13 -0800

Remove stat-draining melee from ancient zymes
They have a more distinct effect in causing sickness from range.
Doing weird things in melee on top of that is not really necessary.

--------------------------------------------------------------------------------
a497738c12 | Nicholas Feinberg | 2015-02-08 13:49:56 -0800

Changelog through 0.16-a0-3944-g1fbc3e7

--------------------------------------------------------------------------------
1fbc3e746b | Corin Buchanan-Howland | 2015-02-08 11:27:27 -0500

Improve Ru sacrifice offer handling when few options are available
If we can't find a cheap enough sacrifice to offer, we'll just offer the
cheapest sacrifices we can find. If there are no sacrifices available,
we'll just stop offering sacrifices.

--------------------------------------------------------------------------------
b4b81e623f | Neil Moore | 2015-02-07 14:09:09 -0500

Make friendly uniques speak less, too.

--------------------------------------------------------------------------------
b76d805031 | Nicholas Feinberg | 2015-02-07 10:39:05 -0800

Adjust monster speech chances
Should make allies considerably less spammy.

--------------------------------------------------------------------------------
8c02afa2bb | Corin Buchanan-Howland | 2015-02-07 09:54:16 -0500

Increase Ru oversac limit
Increase it from 11 piety over to 19 piety over to avoid situations where
we cannot offer 3 sacrifices.

--------------------------------------------------------------------------------
f8a207b349 | Chris Campbell | 2015-02-06 22:42:49 +0000

Don't show some irrelevant monster speed information

--------------------------------------------------------------------------------
9a3e6658de | Shmuale Mark | 2015-02-05 16:43:21 -0500

Don't replace non-floor with the water card (#9471).

--------------------------------------------------------------------------------
2f22082f70 | Shmuale Mark | 2015-02-05 16:43:20 -0500

Make insubstantial monsters immune to collisions.
Seems logical (also fixes the wind blast from Storm card angering the
elemental).

--------------------------------------------------------------------------------
92ef210f0f | elliptic | 2015-02-05 16:00:14 -0500

Remove some misleading damage_done > 0 checks for monster attack flavours.
This code isn't reached if damage_done == 0 unless the flavour is listed in
_flavour_triggers_damageless.

--------------------------------------------------------------------------------
84a31d550a | Chris Campbell | 2015-02-05 17:11:21 +0000

Don't allow the Depths Ziggurat to be a mimic (rast)

--------------------------------------------------------------------------------
f5411c73e5 | Nicholas Feinberg | 2015-02-04 22:44:10 -0800

Monstrous Menagerie cap: 4->3
It's generally considered extremely strong, even for a level 6
spell, and there seemed to be dev consensus between dropping the
summon cap slightly. (2 was felt to be too low, since "as a
ranged/support spell... it needs some numbers to work...")

(And, also, it's not *that* strong. Level 6 spells are allowed to
be good!)

I honestly thought this had been pushed at the time, over a month
ago, but apparently no one did?

--------------------------------------------------------------------------------
674a7c2f96 | Nicholas Feinberg | 2015-02-04 21:54:16 -0800

Tweak a Beogh orc message
It was just wrong, and not in a charmingly orky way!

--------------------------------------------------------------------------------
06ce5c0476 | Neil Moore | 2015-02-04 23:39:32 -0500

Use a constant in one more place.
-99 is also used as the default for exp_needed()'s exp_apt parameter
(meaning "use the player's aptitude") but that usage is independent of
the untrainable skill aptitude.

--------------------------------------------------------------------------------
89a8f92909 | Corin Buchanan-Howland | 2015-02-04 20:56:54 -0500

Buff dark maul
The dark maul's absurd damage and delay are interesting, but previously
the damage compared poorly with moderately-enchanted, badly-branded two-
handed weapons. This buff makes it slightly better than a good vorpal
great mace and slightly worse than a good elec great mace with 20 Fighting
and M&F skill. At 27 M&F skill, it can be better than either.

+10 is just because it looks more impressive than +6.

--------------------------------------------------------------------------------
e2bf7478f9 | Corin Buchanan-Howland | 2015-02-04 20:41:23 -0500

Constify the unusable skill apt value (wheals)

--------------------------------------------------------------------------------
fa06faf6bd | Neil Moore | 2015-02-04 20:14:48 -0500

Localise a variable.

--------------------------------------------------------------------------------
9135897c49 | Neil Moore | 2015-02-04 20:04:12 -0500

Fix meatsprint (#9470)

--------------------------------------------------------------------------------
6e5a16217c | Corin Buchanan-Howland | 2015-02-04 18:52:04 -0500

Don't show draconians with a -100 aptitude for Armour after Sac Skill 
(Piginabag)

--------------------------------------------------------------------------------
2476f0fe7b | Chris Campbell | 2015-02-04 23:45:46 +0000

Remove spear of the Botono from a vault

--------------------------------------------------------------------------------
4728e1c816 | Chris Campbell | 2015-02-04 20:54:21 +0000

Don't make monsters constantly shout when out of LOS
Monsters should now (hopefully) only shout when they actually acquire you as a
foe, not repeatedly while pathing towards you from out of LOS.

--------------------------------------------------------------------------------
b8b9f9e3d3 | Chris Campbell | 2015-02-04 19:43:35 +0000

Give Josephine a band of wraiths instead of zombies
So that she can still heal her band with her fireball, as well as possibly
being a bit more threatening.

--------------------------------------------------------------------------------
63a68a3404 | Chris Campbell | 2015-02-04 19:21:47 +0000

Really don't allow zombies/skeletons to be healed
With the logic the right way around, this time.

--------------------------------------------------------------------------------
bee44e4008 | Nicholas Feinberg | 2015-02-04 08:53:13 -0800

Revert "Don't allow zombies/skeletons to be healed"
This would have broken Josephine if it worked, which it didn't
(the logic was inverted.) IMO re-add a working variant of this
after figuring out what to do about Josephine.

This reverts commit 2ce9f7f06c77fa79830de36d6aae7a91ee058bab.

--------------------------------------------------------------------------------
7e2cf2ea22 | Chris Oelmueller | 2015-02-03 22:42:37 -0800

Make Ctrl-X title more consistent
Toggling state now only moves around words instead of inventing new ones.
Also use vocabulary that is used in similar places (stash tracker, shops).

--------------------------------------------------------------------------------
54f6eedbba | Nicholas Feinberg | 2015-02-03 21:45:55 -0800

Temporarily restore bad traps to vaults
Accidentally removed by 556654e99e; made e.g. Tomb considerably
nastier than intended.

This means there are now three independent trap choice algorithms,
two of which can place mechanical traps. please fix ASAP :(

--------------------------------------------------------------------------------
0a6a257562 | Nicholas Feinberg | 2015-02-03 19:25:24 -0800

Despoil (technically) a ring

--------------------------------------------------------------------------------
b83861fa0b | Nicholas Feinberg | 2015-02-03 19:12:51 -0800

Force =flight gen in dpeg_bazaar_wands (Internet Kraken)
The player could be stuck without access to half the shops,
otherwise. A random wand is not a great consolation prize, and
there's no other bazaar that requires flight - not something that
we need to encourage players to bring.

--------------------------------------------------------------------------------
54d47359ca | Nicholas Feinberg | 2015-02-03 17:57:47 -0800

Clarify xtraining/skillup messaging (8930)
Mention that it's your base skill that's increased, in cases
where something (Ash, draining or crosstraining) is modifying the
current/total value.

--------------------------------------------------------------------------------
2ce9f7f06c | Chris Campbell | 2015-02-03 23:02:49 +0000

Don't allow zombies/skeletons to be healed
The interface presents them as only taking damage to their maxHP and never
regenerating health, but internally they still took damage normally and could
actually be healed by ghostly flames, for example.

--------------------------------------------------------------------------------
b35d107f52 | Chris Campbell | 2015-02-03 18:30:46 +0000

Prevent using Nemelex and Ru abilities under silence
They were the only god invocations usable under silence, for flavour reasons
rather than gameplay ones, which mostly made them unintuitive exceptions.

--------------------------------------------------------------------------------
5b960bf62b | Chris Campbell | 2015-02-03 18:15:41 +0000

Allow monsters to shout when alerted if already awake
Previously alerting an wandering, awake monster to your presence (by e.g.
throwing a stone at it) would not allow it to shout, even though if it noticed
you due to failing a stealth check instead it would have been able to shout.

--------------------------------------------------------------------------------
172840c5f6 | Chris Oelmueller | 2015-02-03 17:57:07 +0000

Recognize show_uncursed option from rcfiles
As far as I can tell, this has been broken since 22 Nov 2006 and
1d0f57cbceb778139ca215cc4fcfd1584951f6dd.

--------------------------------------------------------------------------------
9d9d7ced43 | Chris Campbell | 2015-02-03 17:37:09 +0000

Fix some incorrect 27s after sacrificing experience

--------------------------------------------------------------------------------
cd4e32ae10 | Chris Campbell | 2015-02-03 17:37:09 +0000

Update some more changelog entries

--------------------------------------------------------------------------------
06eb01ee66 | Nicholas Feinberg | 2015-02-02 15:23:04 -0800

Pluralize runed doors
Breaks save compat in a very petty way, but I'm not sure that'll
affect anyone in practice.

--------------------------------------------------------------------------------
dfa84d1b64 | Nicholas Feinberg | 2015-02-02 15:04:07 -0800

Remove a bad ASSERT
Failed on save compat.

--------------------------------------------------------------------------------
31f9ca0440 | Shmuale Mark | 2015-02-02 16:33:22 -0500

Fix timed_effects includes.

--------------------------------------------------------------------------------
366fb93793 | Shmuale Mark | 2015-02-02 16:03:44 -0500

Document.

--------------------------------------------------------------------------------
80a473db65 | Shmuale Mark | 2015-02-02 15:54:05 -0500

Rework Xom chaos cloud.
It always places only one cloud at the start, with a chance at spreading
outwards some time before it dissipates. This should be a little less
binary and deadly.

--------------------------------------------------------------------------------
7b295a0869 | Shmuale Mark | 2015-02-02 15:41:17 -0500

Display possible evolutions on the targetting display.
Unfortunately doesn't give away the secret tech of evolving mold.

--------------------------------------------------------------------------------
b64a08637d | Shmuale Mark | 2015-02-02 15:41:16 -0500

Remove an unused member variable.

--------------------------------------------------------------------------------
82ff903558 | Neil Moore | 2015-02-02 15:26:49 -0500

Don't merge spectralised and un- in the monlist (Lasty)

--------------------------------------------------------------------------------
bdece4dd0f | Shmuale Mark | 2015-02-02 15:10:18 -0500

Implement runed door counts in annotations (#9402).

--------------------------------------------------------------------------------
476806a8bb | Shmuale Mark | 2015-02-02 14:19:15 -0500

Fix a bad message (#9402).

--------------------------------------------------------------------------------
06d23dc4a6 | Shmuale Mark | 2015-02-02 14:07:41 -0500

Give the player an ugly to use against hostile uglies.
Most of the deck of summonings no longer has any chance for hostility,
and Repulsiveness stands out in the current situation. Foxfire is the only
other one, and it almost always gives something to help the player at the
same time; so Repulsiveness can borrow a bit of that idea, and also
showcase the interaction between hostile ugly things.

--------------------------------------------------------------------------------
6892f0b4cd | Shmuale Mark | 2015-02-02 14:00:16 -0500

Storm card changes.
It's no longer possible to get a twister and storm clouds at the same
time; getting blown into your own clouds and instakilled isn't very fun.

The wellspring has been split out into its own card, the resurrected
Water card. It only has shallow water this time, and only temporarily.
It can still provide a tactical advantage, and the summons should be
strong enough.

--------------------------------------------------------------------------------
bd28cd2b62 | Shmuale Mark | 2015-02-02 12:54:09 -0500

Make the logic in _rangers_card arguably more clear.
The only gameplay change is that there is no longer a chance to get
centaur warrior/faun with a level 0 card. It's already strong enough
with getting at least two *taurs.

--------------------------------------------------------------------------------
57becba390 | Shmuale Mark | 2015-02-02 12:27:43 -0500

Some minor changes to deck descriptions.

--------------------------------------------------------------------------------
322296fe56 | Shmuale Mark | 2015-02-02 12:27:41 -0500

Change deck_archetype into vector<card_with_weights>.
This allows removing END_OF_DECK and using simpler for loops.

--------------------------------------------------------------------------------
4564c02940 | Shmuale Mark | 2015-02-02 12:27:39 -0500

Clear away marked cards code.
CFLAG_SEEN is able to perform just as well as CFLAG_MARKED for more
or less all purposes. CFLAG_MARKED told you what a card was when it
was on top even if it hadn't been before, but since Mark Four's removal
you could only mark cards that were on top of the deck (with ?id and
Stack Five). They could get moved lower by Nemelex wrath shuffling,
but that also cleared markings!

--------------------------------------------------------------------------------
bf39a15a84 | elliptic | 2015-02-02 12:21:33 -0500

Fix Shoals autoexplore on characters with passive mapping (3672, 7847).
Previously autoexplore in Shoals on characters with passive mapping would
usually never complete. This is more noticeable in new Shoals, which is
actually autoexplorable normally by characters without permaflight or
swimming.

What was happening is that passive mapping was calling magic_mapping(),
which was seeing that some squares had changed terrain (because of tides)
and then marking those squares as unseen. Then autoexplore would go
re-explore those squares.

Now magic_mapping() simply updates the player's map with the new terrain
for such squares if the player has seen them before (and they are left
still marked as seen). Map knowledge and feature code is complicated enough
that I'm not 100% confident that this won't cause issues with something
else, but it makes sense that mapping shouldn't be able to mark squares as
unseen.

--------------------------------------------------------------------------------
f8b6dd36f2 | Shmuale Mark | 2015-02-02 10:24:45 -0500

Remove a bunch of unnecessary const_casts.

--------------------------------------------------------------------------------
db716c17ed | Shmuale Mark | 2015-02-02 09:43:26 -0500

Fix a crash with reflected curare.

--------------------------------------------------------------------------------
6616e23567 | Shmuale Mark | 2015-02-02 09:12:08 -0500

More C++11.

--------------------------------------------------------------------------------
55e9833e90 | Shmuale Mark | 2015-02-02 09:09:25 -0500

Use (fair_)adjacent_iterator.

--------------------------------------------------------------------------------
c52a7a5bda | Neil Moore | 2015-02-02 00:08:02 -0500

Rename a type, and simplify.
We were using "flang" for both the type of fake_lang entries, and the
name of several flang_t variables.  Rename the former to flang_entry.

Also, use any_of instead of a for-if loop.

--------------------------------------------------------------------------------
45dc0c20a5 | Nicholas Feinberg | 2015-02-01 19:59:20 -0800

Support parameterized fakelangs
Specifically, lang=butt can now have a % chance specified. (In the
format "fake_lang=butt:50" for a 50% chance of any given word
being turned into butt.) More useful now that there's a cap on
fakelang stacking...

This implementation is very pythonic & not that well documented,
sorry...

--------------------------------------------------------------------------------
4a66f39267 | Nicholas Feinberg | 2015-02-01 18:14:30 -0800

Remove a debug print (|amethyst)

--------------------------------------------------------------------------------
81f70e5ff0 | Nicholas Feinberg | 2015-02-01 17:55:18 -0800

Cap fakelangs to 3 at a time
To limit performance impact & hopefully reduce crashing.

--------------------------------------------------------------------------------
8fd1605381 | Nicholas Feinberg | 2015-02-01 17:33:36 -0800

Remove some restrictions AK starting abyss
Still has D:1 item gen & special monster generation rates, but
will now generate altars (besides the starting one), & stairs down.
Abyss:2+ act as if you'd entered them normally (normal item gen,
etc); it's once again possible, in rinciple, to get a rune without
leaving the abyss. (Quite a bit trickier than it used to be,
though.)

--------------------------------------------------------------------------------
020803bed8 | Nicholas Feinberg | 2015-02-01 15:51:08 -0800

Update preservers' description (Brannock, Grunt)

--------------------------------------------------------------------------------
0a5f664a53 | Chris Campbell | 2015-02-01 19:44:43 +0000

Update a changelog entry

--------------------------------------------------------------------------------
c8623b9466 | Neil Moore | 2015-02-01 14:36:49 -0500

Improve an orc speech line (dpeg, wheals)

--------------------------------------------------------------------------------
306b85f582 | Neil Moore | 2015-02-01 14:36:49 -0500

Allow @at_foe/around@ in monster speech.

--------------------------------------------------------------------------------
6d0ab1468d | Nicholas Feinberg | 2015-02-01 11:19:12 -0800

Changelog through 0.16-a0-3880-g9314259

--------------------------------------------------------------------------------
9314259aed | Neil Moore | 2015-01-31 21:56:03 -0500

Trim artefact names in console-controlled webtiles builds.
It would be even nicer to display it both ways: untrimmed for webtiles
watchers, trimmed for console watchers and ttyrecs.

--------------------------------------------------------------------------------
1f733d267d | Corin Buchanan-Howland | 2015-01-31 20:58:49 -0500

Fix up boots of flying perma-flying status a bit
Suppress the 'You float gracefully down' message when it doesn't apply
and default the boots to initially flying (old behavior). This preserves
my previous change that the boots remember your flying status and restore
that service at end of transformation.

--------------------------------------------------------------------------------
f763bb7966 | Corin Buchanan-Howland | 2015-01-31 20:58:48 -0500

Remove some stealth change messages under Sac Stealth (moocowpong)

--------------------------------------------------------------------------------
36e30bb29f | Chris Campbell | 2015-02-01 01:44:13 +0000

Improve documentation of always_show_exclusions (wheals)

--------------------------------------------------------------------------------
e8301af375 | Chris Campbell | 2015-02-01 01:44:08 +0000

Add some missing handling for He hiscores (wheals)

--------------------------------------------------------------------------------
edc3a03524 | Chris Oelmueller | 2015-01-31 23:24:13 +0000

Explain how to exit terrain-show mode
Useful if entered by pressing | accidentally.

--------------------------------------------------------------------------------
3ec55899f5 | Chris Oelmueller | 2015-01-31 23:24:13 +0000

Display expected poison damage on %
It was already displayed on @, but doesn't take up much room so seems fine to
show on % too.

--------------------------------------------------------------------------------
452e4d5975 | Nicholas Feinberg | 2015-01-31 14:05:00 -0800

Fix a ternary
This code is very odd...

--------------------------------------------------------------------------------
cade50fba5 | Chris Campbell | 2015-01-31 21:56:01 +0000

Mention when vampires are immune to poison on @ and A! (#9457)

--------------------------------------------------------------------------------
fbd3856a42 | Corin Buchanan-Howland | 2015-01-31 16:25:31 -0500

Cut the odds of Beogh blessing in half (1/4 on all kills now)

--------------------------------------------------------------------------------
d0ebacfcee | Chris Campbell | 2015-01-31 21:19:20 +0000

Fix messaging when attempting to attack friendly uniques (#2935)

--------------------------------------------------------------------------------
23b77bc96b | Chris Oelmueller | 2015-01-31 21:19:20 +0000

New option: always_show_exclusions (display exclusions in viewport)
If true, display travel exclusions and their exclusion radius in
the viewport. Exclusions are always visible on the level map
(access with X) regardless of the value of this option.

Exclusions are also visible in terrain-only mode (access with |).

--------------------------------------------------------------------------------
1aa8fe1a1a | Chris Oelmueller | 2015-01-31 21:19:20 +0000

Show travel exclusions on | terrain view

--------------------------------------------------------------------------------
ee5d89009f | Chris Campbell | 2015-01-31 21:19:20 +0000

Remove some references to Death Knights

--------------------------------------------------------------------------------
94bad6d254 | Chris Campbell | 2015-01-31 21:19:20 +0000

Remove the Healer background
With Pacify becoming available later and no longer being usable on every
monster as a method to gain piety, it should hopefully be somewhat less
gameplay-defining/warping, and so Healer doesn't make much sense as a
background any more.

--------------------------------------------------------------------------------
0b2a36624d | Chris Campbell | 2015-01-31 21:19:20 +0000

Rework Elyvilon's abilities
Lesser Heal Other is removed, since there's no longer any point in pacifying
junk for piety. At 1* followers gain Lesser Self-Healing, at 2* Heal Other
(which is the old Greater Healing), allowing fairly early access to
pacification but with no piety refunds. 3* provides Purification, and Greater
Self-Healing is delayed to 4*. The self-healing abilities are also renamed to
just "Lesser/Greater Healing".

--------------------------------------------------------------------------------
2d7fa9b5a4 | Chris Campbell | 2015-01-31 21:19:19 +0000

Change Elyvilon's piety gain to only be from exploration
Removes Elyvilon's weapon destruction prayer and piety from pacification,
and gives piety for exploration, at the same speed as Nemelex. Evil weapons
are no longer identified on the floor, since they're not a source of piety
anymore.

--------------------------------------------------------------------------------
61a0766303 | Nicholas Feinberg | 2015-01-31 12:43:18 -0800

Remove Beoghite last-hitting (Lasty)
It should no longer matter who gets the last hit in on a monster,
unless you really want blessings to go to a specific orc.

Chances go from 2/3 for orcpals getting a blessing from a kill
& 1/10 from the player getting a kill to a uniform 1/2 chance,
very roughly matching the total number of blessings that a player
who got 2 kills for every 1 follower kill would get in the old
system. (2:1 seemed to be a fairly common ratio.)

--------------------------------------------------------------------------------
2143467d23 | Nicholas Feinberg | 2015-01-31 12:28:46 -0800

Checkwhite

--------------------------------------------------------------------------------
b24369f1f9 | Nicholas Feinberg | 2015-01-31 12:09:32 -0800

Don't trim artefact names in webtiles
Unneeded.

--------------------------------------------------------------------------------
cf4aa410fa | Chris Campbell | 2015-01-31 16:15:49 +0000

Make the finger necklace's extra ring slot count for Ash bondage
And coding convention-ify some nearby stuff.

--------------------------------------------------------------------------------
e729fee786 | Chris Campbell | 2015-01-31 15:52:18 +0000

Free cloned monsters from nets, too (|amethyst)

--------------------------------------------------------------------------------
7c973a38c6 | Chris Campbell | 2015-01-31 15:51:50 +0000

Don't display a duplicate entry for Naga with breathe poison (#9449)

--------------------------------------------------------------------------------
b6c31dd7d8 | Chris Campbell | 2015-01-31 15:14:35 +0000

Make rakshasa cloned monsters escape constriction (#9459)

--------------------------------------------------------------------------------
78cd65402f | Chris Campbell | 2015-01-31 15:14:35 +0000

Fix rakshasa cloned monsters being marked as summoned
Accidentally removed by 034e2a61.

--------------------------------------------------------------------------------
d2600ac58c | Neil Moore | 2015-01-30 16:31:32 -0500

Revert "Doom another vestige of porridge." (geekosaur)
The #if TAG_MAJOR_VERSION == 34  was already there, a few pages up.

This reverts commit bcb63e785647cc64e98c555d7a211b62f2801702.

--------------------------------------------------------------------------------
bcb63e7856 | Neil Moore | 2015-01-30 15:47:19 -0500

Doom another vestige of porridge.

--------------------------------------------------------------------------------
0371b366be | Shmuale Mark | 2015-01-30 15:21:11 -0500

Clarify a comment (|amethyst).

--------------------------------------------------------------------------------
80a6ed43dc | Shmuale Mark | 2015-01-30 15:13:37 -0500

Remove another global.
Whew!

--------------------------------------------------------------------------------
94c187b23a | Shmuale Mark | 2015-01-30 15:13:31 -0500

Remove a foul global.
This should be almost the same as the old behaviour; it is only slightly
less efficient, I think.

--------------------------------------------------------------------------------
74cb10a22e | Shmuale Mark | 2015-01-30 15:13:26 -0500

Use a more consistent order.

--------------------------------------------------------------------------------
fb16430e99 | Shmuale Mark | 2015-01-30 15:13:21 -0500

Simplify.

--------------------------------------------------------------------------------
a44d2e2a23 | Shmuale Mark | 2015-01-30 15:13:15 -0500

Simplify/comment.

--------------------------------------------------------------------------------
8ceac7d57b | Neil Moore | 2015-01-30 12:13:32 -0500

Use a constant elsewhere (PF)

--------------------------------------------------------------------------------
72ebfd352f | Neil Moore | 2015-01-30 11:24:29 -0500

Actually take XP away when sacrificing experience.
So you don't immediately regain the lost levels next time you get XP.

--------------------------------------------------------------------------------
f827ec78a7 | Neil Moore | 2015-01-30 11:22:56 -0500

Don't allow Sac XP when it would kill you.
If you were offered it, then dropped below level 3.  It stays on the
list of offers.

I'm not sure if this is actually possible outside wizmode: felids only
get their first extra life at level 4.

--------------------------------------------------------------------------------
434d6028a6 | Neil Moore | 2015-01-30 11:22:52 -0500

Don't offer Sac Exp when it would kill you.

--------------------------------------------------------------------------------
ed98c6cc64 | Corin Buchanan-Howland | 2015-01-29 21:55:15 -0500

New tiles for the new Ru sacrifices (ontoclasm)

--------------------------------------------------------------------------------
e1f4ab44cd | Corin Buchanan-Howland | 2015-01-29 21:42:48 -0500

Preserve your experiences (PleasingFungus)

--------------------------------------------------------------------------------
26123089b8 | Sage | 2015-01-29 12:32:03 -0800

Remove Lantern of Shadows environmental colouring.
It makes shallow and deep water look the same, turns all walls into
stone, and generally makes the environment harder to distinguish.

--------------------------------------------------------------------------------
da14513887 | Shmuale Mark | 2015-01-29 15:09:48 -0500

Simplify.

--------------------------------------------------------------------------------
fc5615a719 | Shmuale Mark | 2015-01-29 14:52:13 -0500

Fix a wizmode crash (Zannick).

--------------------------------------------------------------------------------
dfabe4dbbc | Chris Campbell | 2015-01-29 18:22:15 +0000

Fix tentacle-sacrificed Op ring display on A, too

--------------------------------------------------------------------------------
a9004386f1 | Chris Campbell | 2015-01-29 18:05:25 +0000

Display correct number of available rings for Op sacrificing a tentacle

--------------------------------------------------------------------------------
dd2b5a88a5 | Chris Campbell | 2015-01-29 17:25:45 +0000

Don't allow phantom mirroring god-hated monsters (#9412)

--------------------------------------------------------------------------------
ebadc1c2ab | elliptic | 2015-01-29 09:24:12 -0500

Give a milestone for slimifying a unique.

--------------------------------------------------------------------------------
51c86742b2 | elliptic | 2015-01-29 09:22:44 -0500

Fix ghostly unique milestones.
Living uniques that are ghostly-ified by lost souls now give the milestone
for killing them when they are first killed (and revived as ghostly) rather
than when the ghostly version is killed. This is consistent with how
Yred-enslaved spectral uniques are handled and avoids issues with milestones
using names like "the ghostly Frederick."

--------------------------------------------------------------------------------
8a64a7f3a6 | Nicholas Feinberg | 2015-01-28 21:54:47 -0800

Don't crash when levelling up
max_exp_level was never getting initialized; not sure why.

--------------------------------------------------------------------------------
18ec49bd7f | Corin Buchanan-Howland | 2015-01-28 22:11:45 -0500

add two new Ru sacrifices
Sacrifice Skill gives you -1 to all skill aptitudes and recalculates all
your skills based on the new values. ~35 piety.

Sacrifice experience takes two experience levels and limits your max XL
to 25. ~28 piety.

Featuring terrible placeholder ability icons!

--------------------------------------------------------------------------------
b756a32835 | Nicholas Feinberg | 2015-01-28 18:14:07 -0800

Refactor fill_out_menu a little more

--------------------------------------------------------------------------------
a488ed3e50 | Chris Oelmueller | 2015-01-28 17:29:02 -0800

More shopping list interface tweaks
Better alignment of place, and move price closer to item.

Shopping list, new:
 a - [Elf:1]    9 gold  a +0 robe
 b -   [D:1]   26 gold  a +0 leather armour

Shopping list, old:
 a -    9 gold [Elf:1] a +0 robe
 b -   26 gold [D:1] a +0 leather armour

--------------------------------------------------------------------------------
4d46545841 | Chris Campbell | 2015-01-29 01:15:31 +0000

Also prevent mirroring tentacle segments (wheals)

--------------------------------------------------------------------------------
5cb7a35e00 | Chris Campbell | 2015-01-29 01:07:41 +0000

Prevent phantom mirroring tentacles
And tweak the message for targeting un-reflectable things.

--------------------------------------------------------------------------------
034e2a6169 | Chris Campbell | 2015-01-28 19:54:30 +0000

Update descriptions for summoned monster stair use

--------------------------------------------------------------------------------
69fc5cc05c | Chris Campbell | 2015-01-28 19:54:30 +0000

Improve descriptions for branded launchers and missiles
Weirdly, flame-branded ammo only has increased mulch rate if it's the actual
ammo that's branded. Plain ammo from a branded launcher has normal mulch rate,
and flame ammo from a frost launcher still has increased mulch rate despite
being fired as plain ammo (with bonus incorrect messaging). No clue if this
is intentional or not so just fixed the very out-of-date descriptions for now.

--------------------------------------------------------------------------------
68e045f01c | Chris Campbell | 2015-01-28 19:54:29 +0000

Give steel ammo the same mulch rate as standard ammo
It's just unambiguously better ammo still, and doesn't need to be highly
unlikely to ever break in addition to that.

--------------------------------------------------------------------------------
ca4ee98d6d | Chris Campbell | 2015-01-28 19:54:29 +0000

Don't randomise large rock throwing range, increase mulch rate
The range randomisation was very hidden and mysterious, only applied to players,
and made it the only ranged weapon without full LOS range (after the recent
change to throwing nets). Increasing the mulch rate really isn't a very
significant compensation, but reducing damage would have affected monsters more
than players. Another suggestion was to still give them reduced range, but
fixed at e.g. 6 rather than randomised and based on strength, since this could
at least then be shown clearly in the targeter.

--------------------------------------------------------------------------------
9c1afdd9e3 | Chris Campbell | 2015-01-28 19:54:29 +0000

Make the lantern of shadows drain MP while wielded
Per crate, minmay, probably others, I've no idea who first suggested this now.
The lantern drains 1 MP per turn, and all summoned shadows go poof when either
reaching 0 MP or unwielding the lantern.

--------------------------------------------------------------------------------
b2544625dc | Nicholas Feinberg | 2015-01-27 21:15:20 -0800

Give monster gargoyles rPetrify (Hurricos)
To match the player race.

--------------------------------------------------------------------------------
e666773529 | Nicholas Feinberg | 2015-01-27 20:59:44 -0800

Disable shadow traps temporarily after firing (elliptic)
For 2-4 turns (amount can be calibrated). Mainly intended to
reduce issues with batty enemies triggering traps repeatedly in
a single turn.

Might be possible to re-add these on earlier levels now, since
they were only moved deeper because of bats.

--------------------------------------------------------------------------------
492871e959 | Corin Buchanan-Howland | 2015-01-27 21:33:41 -0500

Give Ru the power to make you actually stop training something

--------------------------------------------------------------------------------
986f71d498 | Chris Oelmueller | 2015-01-27 18:12:37 -0800

Shopping list: tweak entry display
Gold price in front now, to more closely follow shop display instead
of stash tracker output. Shop items in Ctrl-F are unchanged.

Shops:
a -   52 gold   a +0 scale mail

Shopping list, new:
 a -   26 gold [D:1] a +0 leather armour

Shopping list, old:
 a - [D:1] a +0 leather armour (26 gp)

Stash tracker:
 a - [D:1] a +0 cloak (54 gold)

--------------------------------------------------------------------------------
9d59d2fa76 | Nicholas Feinberg | 2015-01-27 18:12:37 -0800

Make pizza support more robust

--------------------------------------------------------------------------------
8396757f19 | Nicholas Feinberg | 2015-01-27 18:12:37 -0800

Revert "Remove the pizza= initfile setting."
This reverts commit 731edd76e0597e91b996864114b4c0cdc167c762.

Conflicts:
	crawl-ref/docs/options_guide.txt
	crawl-ref/settings/init.txt
	crawl-ref/source/food.cc
	crawl-ref/source/initfile.cc

--------------------------------------------------------------------------------
723566f7a8 | Nicholas Feinberg | 2015-01-27 18:12:37 -0800

Add yet another boring word

--------------------------------------------------------------------------------
b0940ecfe9 | Corin Buchanan-Howland | 2015-01-27 21:09:25 -0500

Redo randart good/bad property generation to reduce property spam
We were generating a lot of 6+ property items, and it was kind of obnoxious,
so I've updated the generation to limit the number of properties more
aggressively. New upper limit is 6 distinct properties, and that's one in
800 artefacts. The extra properties generated are made into enhancements
of existing properties rather than adding a new distinct property.

--------------------------------------------------------------------------------
477e9c60f9 | Chris Campbell | 2015-01-28 00:52:08 +0000

Don't generate the spear of the Botono
It's gone through a bunch of revisions over the years but just doesn't really
have a coherent enough theme to end up interesting.

--------------------------------------------------------------------------------
d86abff96f | Chris Campbell | 2015-01-28 00:35:01 +0000

Remove Forceful Dismissal
In a lot of cases it'd just be more useful to spend MP on summoning more things
rather than explode your summons, but it was also thematically just not a
Summoning spell, giving the school a way to deal a bunch of direct damage.
Spells like Fulminant Prism do that sort of thing with a Summonings component
in a better way.

--------------------------------------------------------------------------------
365970a801 | Chris Campbell | 2015-01-28 00:21:32 +0000

Don't allow phantom mirroring conjured monsters
Such as singularities, spectral weapons, etc.

--------------------------------------------------------------------------------
7924498727 | Chris Campbell | 2015-01-28 00:21:08 +0000

Remove Control Undead from anubis guards
It was pretty unlikely to actually be used, and not generally a spell that's
likely to be interesting at all on monsters.

--------------------------------------------------------------------------------
10450fb3d5 | Chris Campbell | 2015-01-27 23:50:03 +0000

Give bennu a plain attack instead of sticky flame brand
Since sticky flame is unlikely to be relevant by Tomb, and this also somewhat
improves the focus on their holy + undead theme.

--------------------------------------------------------------------------------
439c0f49a0 | Chris Campbell | 2015-01-27 23:35:26 +0000

Make Death Scarab attacks only drain speed and health
There's still more than enough regular draining elsewhere in Tomb, and they're
now down to just two weapon brands at once rather than their original four.

--------------------------------------------------------------------------------
548cc014c2 | Chris Campbell | 2015-01-27 23:29:12 +0000

Make Death Rattle only create negative energy clouds
Mixing two cloud types in a single beam was incredibly awkward, requiring
console players to check their tile whenever hit by the beam. Miasma is
already created by Death Scarabs, and having this spell just do one thing at
once is much clearer.

--------------------------------------------------------------------------------
3748f1646b | elliptic | 2015-01-25 20:29:14 -0500

Remove the cap on Vehumet gift weighting.
This cap only existed because of elemental antitraining/antiweighting (to try
to keep fire/ice skill and air/earth skill mostly independent by keeping the
total weight roughly constant) and was ugly even then (and a little spoilery).

--------------------------------------------------------------------------------
e1fb30859d | Neil Moore | 2015-01-25 20:27:24 -0500

Simplify with any_of (wheals)

--------------------------------------------------------------------------------
a33057d02b | Neil Moore | 2015-01-25 20:26:48 -0500

Allow robust demonspawn to sac arcana, purity, etc.
We were rejecting all random-from-a-set sacrifices, not just frail.

--------------------------------------------------------------------------------
0661354839 | Corin Buchanan-Howland | 2015-01-25 19:28:53 -0500

Fix a few extra Ru sacrifice interactions with races (Zooty, Jarlyk)
Specifically, vampires can't actually get slow healing, so no longer offer
it, and check demonspawn for robust before trying to offer frail.

--------------------------------------------------------------------------------
d4b2de5d14 | Chris Campbell | 2015-01-25 22:42:01 +0000

Fix spacing in an Ashenzari message

--------------------------------------------------------------------------------
7d35d97613 | Nicholas Feinberg | 2015-01-25 12:57:06 -0800

Redistribute *tele randart weight

--------------------------------------------------------------------------------
c03ef2e560 | Neil Moore | 2015-01-25 15:36:00 -0500

Fix a signedness warning.

--------------------------------------------------------------------------------
72c6509c84 | Neil Moore | 2015-01-25 15:31:45 -0500

Announce dancing weapons' brands (minmay)
We were identifying its brand after getting its name.

--------------------------------------------------------------------------------
49d309b1ff | Nicholas Feinberg | 2015-01-25 12:22:59 -0800

Disable *tele on randarts

--------------------------------------------------------------------------------
00bd6c938c | Nicholas Feinberg | 2015-01-25 12:04:59 -0800

Tidy equipped weapon names (various)
Re-add a space before brand names.

--------------------------------------------------------------------------------
1f3e8dbe4d | Chris Campbell | 2015-01-25 18:58:29 +0000

Fix Sword of Cerebov messages displaying while out of LOS

--------------------------------------------------------------------------------
661df8ebed | Chris Campbell | 2015-01-25 17:18:40 +0000

Improve some attack flavour descriptions

--------------------------------------------------------------------------------
2215ba773e | Chris Campbell | 2015-01-25 17:18:40 +0000

Adjust some uses of negative energy resistance
Mostly an attempt to get rid of uses of one_chance_in(rN), and make negative
energy effects have a smaller number of different ways of working.

Vampiric weapons and AF_VAMPIRIC are now both blocked by one level of rN,
instead of with one chance in rN. Monster vampiric draining is also blocked by
one level of rN (as player vampiric draining already was). AF_DRAIN_STAT is
no longer affected by rN at all, since it's not necromantically flavoured
and is used by things such as ancient zymes and ghost moths. The draining
effect on monsters is no longer blocked with one chance in rN, but is reduced
in duration in a vaguely similar way to how draining is reduced on players.

--------------------------------------------------------------------------------
a569fcc163 | Chris Campbell | 2015-01-25 17:18:39 +0000

Remove negative energy vulnerability
It's very ill-defined and messy - some of that is obviously just due to the
resistance itself being guilty of this, but the vulnerability is a much worse
offender. On randarts it was also very unlikely to be relevant since negative
energy attacks are fairly branch-focused, and death scarabs have enough going
on as fast, swarming, vampiric/draining monsters (their attack flavour still
does 2 different things at once, down from 3).

Left behind some of the code to let rN- function in theory (at least for plain
negative energy beams). rN's interactions with vampiricism, stat drain, etc
should probably be cleaned up before reintroducing any vulnerability (some
effects are blocked with one level of rN, some with three, some with one
chance in rN, some with torment immunity only, some in entirely other ways...
reducing this down to maybe just two or three possibilities would be good).

--------------------------------------------------------------------------------
04f9195d90 | Chris Campbell | 2015-01-25 17:18:39 +0000

De-rune a door
Buried deep in the middle of a huge vault where it's pretty evident already
that there are monsters behind the doors.

--------------------------------------------------------------------------------
575b5f6933 | Nicholas Feinberg | 2015-01-25 09:11:28 -0800

Remove an obsolete comment
Not many monsters hanging out in walls these days...

--------------------------------------------------------------------------------
b08446331f | Neil Moore | 2015-01-25 11:51:20 -0500

Quiet a harmless warning when building tiles (Napkin)
Repeated several times:

    xargs: find: terminated by signal 13

, where 13 is SIGPIPE.

--------------------------------------------------------------------------------
42ad724c12 | Nicholas Feinberg | 2015-01-24 21:35:45 -0800

Temporarily remove shoals_atoll
Should be re-added after it's fixed to work with new tides.

(Associated lua intentionally not removed, since I don't know how
that interacts with save compat.)

--------------------------------------------------------------------------------
74483ed105 | Chris Oelmueller | 2015-01-24 16:54:25 -0800

Mention unrand weapon base type in item description
For custom types, show the underlying base type if it is merely a cosmetic
rename (e.g. "dagger" to "knife") - i.e. no base stats are changed.
If any of base dam, acc, delay are changed, display the custom type.

@@ -83,7 +83,7 @@ unique_item_status_type get_unique_item_status(int 
unrand_index);
 void set_unique_item_status(const item_def& item,
                             unique_item_status_type status);

-string get_artefact_base_name(const item_def &item, bool terse = false);
+string get_artefact_base_name(const item_def &item, bool ignore_cosmetic = 
false, bool terse = false);
 string get_artefact_name(const item_def &item, bool force_known = false, bool 
terse = false);

 void set_artefact_name(item_def &item, const string &name);

--------------------------------------------------------------------------------
2319f788ce | Nicholas Feinberg | 2015-01-24 16:32:01 -0800

Re-fix the sulking sword (wheals)
oops

--------------------------------------------------------------------------------
8c1e21df61 | Nicholas Feinberg | 2015-01-24 16:04:03 -0800

Refactor & rework weapon name code

--------------------------------------------------------------------------------
2b73f9efc4 | Nicholas Feinberg | 2015-01-24 16:04:03 -0800

Pull out some item name code

--------------------------------------------------------------------------------
31b0019f84 | Chris Oelmueller | 2015-01-24 16:04:03 -0800

Remove artefact weapon names from HUD and % (randarts, some unrands)
Instead, display their plus, weapon base type, brand and as many properties
as possible. Skipping over the irrelevant bits of your wielded weapon where
space matters most puts more emphasis on the actually important information.

Together with removal of the 'Wp: ' that used to eat up four whole
characters despite it being crystal clear what the respective line was
used for displaying, this fits a lot more information into the same space.

Before                                     |
|Wp: d) -2 dagger of Invincibility {freeze,
|Wp: e) +0 executioner's axe of Exhibitioni
|Wp: f) +6 scimitar of Flaming Death {flame
After                                      |
|d) -2 dagger {freeze, rC++ SInv}
|e) +0 executioner's axe {freeze, +Blink rE
|f) +6 scimitar {flame, rPois rF++ rC- MR+}

Not displaying the weapon's name (which is flavour-only mechanically, but
serves as a visual identification tag due to messages, inventory etc.) makes
it a bit harder for players to connect wielded weapon to the item in their
inventory, but even if you frequently switch between multiple artefact
weapons, you get used to how each one abbreviates in the HUD fairly quickly.
Note as well that the inventory letter, another visual cue unique to items,
is still being displayed in the HUD.

About 50% of unrandom artefact weapons substantially benefit from cutting
away their name and displaying the weapon base type instead.
A hand-picked and hardcoded selection is included in this commit. Except for
the following five weapons, all of them now fit the HUD space completely.

| Eos                                      |
|E) +11 morningstar {elec, -Tele rElec SInv}
| Jihad*                                   |
|j) +10 sword of Jihad {holy, *Rage rN+ EV+3 Stlth-}
|j) +10 eudemon blade {holy, *Rage rN+ EV+3 Stlth-}
| obsidian axe*                            |
|o) +14 obsidian axe {chop, +Fly Str+3 SInv Curse}
|o) +14 broad axe {chop, +Fly Str+3 SInv Curse}
| Wyrmbane                                 |
|w) +8 lance {slay drac, +Rage rPois rF+ AC+5}
| Leech                                    |
|L) +8 demon blade {vamp, rN+ AC-2 EV-2 Str-2 Int-2 Dex-2}
| Interface cutoff: everything in this line| and beyond is not displayed.

Jihad shows up as "sword of Jihad" instead of the eudemon blade version.
Players do not see eudemon blades that often, so displaying the base type
might even increase confusion instead of clarifying things. The replacement
would only save one character (an important one, arguably) as well.
Obsidian axe has somewhat unique properties that are not yet covered by a
custom INSCRIP, so the slightly longer version should be better here too.

As you can see for Wyrmbane, custom base types that are defined for unrands
will correctly show up as such. The affected weapons are:

| Devastator
|d) +6 shillelagh {shatter}
| Spriggan's knife
|k) +7 knife {MR+ EV+4 Dex+4 Stlth+}
| Gyre, Gimble
|g) +5 quick blades {pierce, Dex-3}
| Sniper
|s) +15 heavy crossbow {velocity, SInv}
| Wyrmbane
|w) +8 lance {slay drac, +Rage rPois rF+ AC

Some thoughts to close this essay:

It might make sense to only remove the names from randarts that would over-
flow the HUD width otherwise. Implementing that kind of calculation seemed
nontrivial though and I decided against trying myself. If somebody else
believes this to be the better way, I'm not at all opposed however.

Another idea to shave off some more characters might be shortening longer
base weapon type names ("exec axe", "g.spiked club", "triple xbow", ...).
This is where support for abovementioned calculations would come in very
handy, because I'd rather not pull in these kinda awkward abbreviations
(which feel a bit weird not only at first) unless absolutely necessary.

Thus, some sample code for doing this has been added to the commit as well
but is currently unused.

--------------------------------------------------------------------------------
425406a3c7 | Nicholas Feinberg | 2015-01-24 16:04:02 -0800

Don't mark non-glowing Donald shields interesting
Since they won't be.

--------------------------------------------------------------------------------
86df9c6742 | Nicholas Feinberg | 2015-01-24 16:04:02 -0800

Refactor item inscription display code

--------------------------------------------------------------------------------
a82f3fde1e | Chris Oelmueller | 2015-01-24 16:04:02 -0800

Add TYPEs to two unrand weapons (Sniper, Gyre)
In preparation of an upcoming change.

Todo: Spellbinder, Cerebov, Elemental Staff, Jihad

--------------------------------------------------------------------------------
23169362ea | Chris Campbell | 2015-01-24 21:52:39 +0000

Separate monster banishment desc from player ability desc (PleasingFungus)

--------------------------------------------------------------------------------
dc0d15b498 | Chris Campbell | 2015-01-24 21:18:45 +0000

Improve Lugonu banishment description

--------------------------------------------------------------------------------
6bf8bef99d | Chris Campbell | 2015-01-24 20:05:58 +0000

Reword a portal vault distance message
It was never very clear whether "distant" or "a long way away" represented a
greater distance, "very distant" should make it clear that it's more distant
than distant.

--------------------------------------------------------------------------------
d01e867f11 | Chris Campbell | 2015-01-24 20:05:58 +0000

Adjust stat bonuses from randarts
Give 1-3 of a stat per pass (down from 2-4), but with an additional +1 on the
first pass so that the minimum is still +2. Still allows for +12 stat randarts,
but now requiring 4 very lucky passes rather than 3.

--------------------------------------------------------------------------------
4727367f50 | Chris Oelmueller | 2015-01-24 10:55:09 -0800

Recolor weapon/quiver item slot to HUD_CAPTION_COLOUR
To make up for Wp:/Qv: removal visually

--------------------------------------------------------------------------------
1a50928612 | Chris Oelmueller | 2015-01-24 10:53:17 -0800

Remove Wp: and Qv: from weapon and quiver lines in HUD
Especially the on-screen weapon display benefits from gaining four chars
to display more information. The purpose of both lines is pretty clear
from what's being displayed and should need no further explanation.

The line for firing being blocked has been changed from "Unavailable" to
"Quiver unavailable" to compensate.

--------------------------------------------------------------------------------
122ca209c9 | Chris Oelmueller | 2015-01-24 10:48:28 -0800

Add and tweak some unrand weapon INSCRIPs

--------------------------------------------------------------------------------
f1131aa20b | Chris Campbell | 2015-01-24 18:38:31 +0000

Make Dispersal and Gell's Gravitas confusion last at least 1 turn

--------------------------------------------------------------------------------
c03e0bfee0 | Chris Campbell | 2015-01-24 18:38:31 +0000

Don't allow pacification by zapping heal wounds at monsters
Pacification should remain tied to the actual divine abilities, and pacifying
with wands was not exactly a common use case.

--------------------------------------------------------------------------------
72c9ff054f | Nicholas Feinberg | 2015-01-24 10:25:40 -0800

Set blame correctly for shadow trap followers

--------------------------------------------------------------------------------
a50d67440e | Nicholas Feinberg | 2015-01-24 07:54:21 -0800

Unstack XP evokers
Caused too much confusion; we can always re-stack them if it
becomes appropriate.

--------------------------------------------------------------------------------
c215ce9f75 | Nicholas Feinberg | 2015-01-23 19:56:56 -0800

More monster comment updates

--------------------------------------------------------------------------------
30145bb71e | brandon s allbery kf8nh | 2015-01-23 19:47:05 -0800

Fix typoes in prototype monster comments

--------------------------------------------------------------------------------
1a0c15346a | Nicholas Feinberg | 2015-01-23 19:46:01 -0800

Make durable summons not fire shadow traps (AtomikKrab)

--------------------------------------------------------------------------------
9f06367b0d | Chris Campbell | 2015-01-24 00:50:23 +0000

Remove hell rats from a sewer
The high-end threats in sewers are on the order of giant frogs and big kobolds,
hell rats are not appropriate.

--------------------------------------------------------------------------------
9dc88484bc | Chris Campbell | 2015-01-24 00:25:01 +0000

Remove a sewer vault
3 rooms full of rats does not make for an interesting sewer.

--------------------------------------------------------------------------------
0b1f3fa72d | Chris Campbell | 2015-01-23 23:49:48 +0000

Enable digging in meatsprint again (st_)
Oops, I totally forgot viles exist.

--------------------------------------------------------------------------------
1c82659ef8 | Chris Campbell | 2015-01-23 23:43:04 +0000

Add an option to let autofight wait in place for enemies
With autofight_wait = true, shift+tab with no enemies in range will wait for
a turn.

--------------------------------------------------------------------------------
2da286323c | Chris Campbell | 2015-01-23 23:43:03 +0000

Meatsprint tweaks
Rename lost soul so that it doesn't clash with the regular monster, change
rock to stone to prevent tunnel-digging.

--------------------------------------------------------------------------------
c67e1c8d0b | Chris Campbell | 2015-01-23 23:43:03 +0000

Reduce the number of death scarabs summoned at a time
From 3-6 to 1-4. Summoning up to 6 speed 30 monsters in a single cast was
somewhat over-the-top.

--------------------------------------------------------------------------------
2321f2bd2f | Nicholas Feinberg | 2015-01-23 14:58:43 -0800

Changelog through 0.16-a0-3760-g3ef0081

--------------------------------------------------------------------------------
3ef0081dea | Nicholas Feinberg | 2015-01-23 10:41:13 -0800

Calculate the median in &^Ib

--------------------------------------------------------------------------------
445ef0be2a | Nicholas Feinberg | 2015-01-23 10:15:44 -0800

Remove +-HP from randart gen
Didn't turn out that exciting.

Probabilities were scattered randomly among other props.

--------------------------------------------------------------------------------
7fc8210fea | Nicholas Feinberg | 2015-01-22 20:35:37 -0800

Fix artp prop duplication
No sInv++ or str+17, please.

--------------------------------------------------------------------------------
f0eb798eb1 | Nicholas Feinberg | 2015-01-22 20:25:23 -0800

Calculate artp values in &^Ib

--------------------------------------------------------------------------------
c2d3f5f7f6 | Corin Buchanan-Howland | 2015-01-22 22:52:32 -0500

Adjust odds of repeated artps

--------------------------------------------------------------------------------
f394385a2f | Nicholas Feinberg | 2015-01-22 19:46:39 -0800

Tweak randart gen further
Make duplicate properties somewhat less common, and make each
'point' of randart +stats slightly better.

--------------------------------------------------------------------------------
bbc4959be6 | Nicholas Feinberg | 2015-01-22 19:42:58 -0800

Refactor new artp gen

--------------------------------------------------------------------------------
544774d54c | Corin Buchanan-Howland | 2015-01-22 22:36:14 -0500

Max slaying at +6 for randarts

--------------------------------------------------------------------------------
7d54286f21 | Nicholas Feinberg | 2015-01-22 19:33:08 -0800

Don't generate positive stat values in _gen_bad_stat_artp()

--------------------------------------------------------------------------------
4ba6018101 | Corin Buchanan-Howland | 2015-01-22 22:14:14 -0500

Adjust stat/slaying and multi-pip resistance logic
Now when a property is chosen of these types, it increments a certain amount
(1 for pips, 2 + coinflip for stats/slaying), uses up a good property,
and then has a chance to repeat the process up to a certain limit.

This also increases the number of possible good properties from 6 to 7
in order to compensate for the weakening of these properties per good
property chosen.

--------------------------------------------------------------------------------
3c7a8b5a17 | Corin Buchanan-Howland | 2015-01-22 22:14:14 -0500

Remove +Twstr from generation
Moving its weighting to +Regen artprop.

--------------------------------------------------------------------------------
20dbed2b8e | elliptic | 2015-01-22 16:34:12 -0500

Fix "100% success" hexes failing sometimes.
This was caused by the success chance being rounded up. Now it is rounded
down.

It is still the case that "0% success" hexes sometimes actually have a small
success rate; this seems less misleading to me though since the player won't
actually want to cast 0.5% success spells anyway.

--------------------------------------------------------------------------------
528d1d6760 | Nicholas Feinberg | 2015-01-22 12:12:46 -0800

Deduplicate xp evoker code (|amethyst)

--------------------------------------------------------------------------------
01e76aa536 | Nicholas Feinberg | 2015-01-22 12:03:12 -0800

Make evokers (dis)charge globally per-type
That is, whenever any e.g. lamp of fire is discharged, so are all
others.

The XP Evocable Dynamic works quite well with one or two items,
but degenerates badly beyond that; the change to make xp evocables
stackable made this very visible.

Evocables are still currently stackable; this does essentially
nothing. (Except let players boast about their booty.) I'm hopeful
that another purpose for stacked evocables can be found sooner
than later, which letting evocables continue to stack should help
with for players importing games between versions.

--------------------------------------------------------------------------------
79ff3ed5f3 | Nicholas Feinberg | 2015-01-22 11:50:38 -0800

Add an overlooked boring word

--------------------------------------------------------------------------------
ef81fe6bb0 | Neil Moore | 2015-01-22 14:31:35 -0500

Make single-door open/close prompts optional.
The old behaviour is the default; change with easy_door = false

--------------------------------------------------------------------------------
27642d2946 | Neil Moore | 2015-01-22 14:17:12 -0500

Revert "Don't open or close doors without asking for a direction"
This reverts commit c832401414e9644c9225129758e47fd5378a2234.

--------------------------------------------------------------------------------
5a2f293c06 | Jesse Luehrs | 2015-01-22 01:13:50 -0500

fix save compat break on character selection screen
viewing your current saves on an older version of crawl was broken when
i introduced explore mode - this won't repair existing games that are
broken in this way (nothing we can actually do), but should restore
this functionality for new games

--------------------------------------------------------------------------------
38a4c056dd | Nicholas Feinberg | 2015-01-21 22:08:17 -0800

Warn when unwielding a weapon stat-zeroes (minmay)

--------------------------------------------------------------------------------
3b77e23bbb | Nicholas Feinberg | 2015-01-21 22:04:00 -0800

Make wiz heal remove brainless, etc

--------------------------------------------------------------------------------
2dcfef7619 | Nicholas Feinberg | 2015-01-21 21:33:32 -0800

Reduce Call Merchant prices somewhat
Essentially makes it cheaper by one use.

--------------------------------------------------------------------------------
b882d63436 | Nicholas Feinberg | 2015-01-21 21:23:22 -0800

Checkwhite

--------------------------------------------------------------------------------
90afb91dd2 | Nicholas Feinberg | 2015-01-21 21:17:04 -0800

Fix display of monster condensation shield
Monsters were being described as "being protected by a disc of
dense vapour" if and only if they had *ozocubu's armour* on, with
no relation to cshield being on or not.

Looks like a copy-paste error.

--------------------------------------------------------------------------------
5372b46407 | Nicholas Feinberg | 2015-01-21 21:04:16 -0800

Move most gozag defines
From defines.h to godabil.h. (Could probably be moved to the top
of the file.)

--------------------------------------------------------------------------------
4b94454dc3 | Nicholas Feinberg | 2015-01-21 20:34:37 -0800

Don't generate +1 statrings
Boring, and confusing when turned into randarts. (Since those
can't have +1s on stats.)

--------------------------------------------------------------------------------
6c29f46923 | Nicholas Feinberg | 2015-01-21 20:15:24 -0800

Colour rod spells correctly
They were coloured red for e.g. Trog.

--------------------------------------------------------------------------------
0f3d0fbf40 | Nicholas Feinberg | 2015-01-21 19:49:11 -0800

Tidy some cleaving code
Mostly turning pointers into references; only serious change is
removing the accidental "monsters will no longer cleave neutrals".

--------------------------------------------------------------------------------
34c7290e40 | elliptic | 2015-01-21 22:44:35 -0500

Don't special-case torment to always do at least 1 HP damage against rN-.
Players at 1 HP are in enough trouble already without being unexpectedly
killed by an effect that doesn't normally kill anything directly.

--------------------------------------------------------------------------------
02c350a381 | waylon531 | 2015-01-21 19:36:21 -0800

Axes no longer cleave to neutral targets (9401)
[Committer's note: Tweaked one line.]

--------------------------------------------------------------------------------
45ab45ab81 | Nicholas Feinberg | 2015-01-21 19:32:40 -0800

Don't claim that rPois- protects against pois (9423)

--------------------------------------------------------------------------------
059620cc20 | Nicholas Feinberg | 2015-01-21 19:28:26 -0800

Revert "Reduce Gozag food shop prices to 2/3rds base"
On further consideration, this was a terrible mistake.

--------------------------------------------------------------------------------
9818256f7b | Neil Moore | 2015-01-21 21:24:15 -0500

Comment _get_true_fail_rate further.
Also use a constant instead of 1020100, and use a function-style
cast so it doesn't look at first glance like we are casting the
result of an integer division.

--------------------------------------------------------------------------------
c6b4a4b841 | elliptic | 2015-01-21 17:01:58 -0500

Give players an easy way of saving lua state across saves and games.
The contents of the table c_persist will automatically be saved in a
file (player.rc.persist) and will be reloaded when the player starts Crawl
again. Currently the table c_persist can only contain strings, numbers,
booleans, and (non-cyclic) tables.

--------------------------------------------------------------------------------
ff1288cd0e | Nicholas Feinberg | 2015-01-21 07:02:57 -0800

Fix Call Merchant price display for mu (9422)
I hate this code & regret this change :(

--------------------------------------------------------------------------------
d35d5093aa | Chris Campbell | 2015-01-21 12:29:07 +0000

Slightly increase Oka piety gain
After the corpse sacrifice changes it's a little slow, along with the increase
to Heroism's piety cost.

--------------------------------------------------------------------------------
0c0e34303b | Chris Campbell | 2015-01-21 11:46:48 +0000

Don't give incorrect zap counts for unidentified wands

--------------------------------------------------------------------------------
f14d081dbf | Nicholas Feinberg | 2015-01-20 17:29:49 -0800

Allow friendly summons to enter Shadow traps
Since they won't trigger the trap anyway.

--------------------------------------------------------------------------------
348f367709 | Nicholas Feinberg | 2015-01-20 17:15:44 -0800

Don't trigger shadow traps with weird summons
Probably this should be exported in some way - it's also used
in e.g. mons_can_use_stairs().

--------------------------------------------------------------------------------
5e7e3b619a | Nicholas Feinberg | 2015-01-20 08:07:05 -0800

Don't remove repeated digits in fake_lang=de (Tux, Xiguana)
Yu now hav 1 gold pieses (gained 16)

--------------------------------------------------------------------------------
221a115ad5 | Chris Campbell | 2015-01-20 13:11:26 +0000

Make Trog wrath summons durable
They were the only non-permanent god wrath summons, and having them stick about
after berserk expiry isn't likely to make a big difference for characters that
have already died to being surrounded by 8 berserk stone giants.

--------------------------------------------------------------------------------
a195062032 | Chris Campbell | 2015-01-20 13:11:26 +0000

Make all non-permanent summons unable to use stairs
Previously some summons that were temporary but not capped could still
take stairs, which was inconsistent and problematic in a few cases (notably
lantern of shadows).

--------------------------------------------------------------------------------
3c2c23d256 | Nicholas Feinberg | 2015-01-19 21:54:07 -0800

Turn BFLAG_SPOTTY into a flag

--------------------------------------------------------------------------------
d8ea06130a | Nicholas Feinberg | 2015-01-19 21:54:07 -0800

Shoals-lite: convert old deep water to shallow
To avoid players getting trapped during conversion. (New levels
can still have deep water.)

--------------------------------------------------------------------------------
efa17c4630 | Nicholas Feinberg | 2015-01-19 21:53:50 -0800

Streamline Shoals
Make the tides only switch land <-> shallow water & increase its
speed to 15x the old value. More tactical fun, less mashing 5
while stuck on an island.

--------------------------------------------------------------------------------
f08d50700c | Nicholas Feinberg | 2015-01-19 21:49:38 -0800

Replace Natasha's Meph with C. Flame
One Wz spell with another, but in testing, conjure flame seems to
have more of a chance of being remotely useful. (Less likely to be
actively suicidal than mephitic cloud was, at least...)

--------------------------------------------------------------------------------
95fae3439c | Nicholas Feinberg | 2015-01-19 21:38:56 -0800

Add a cloud of dust where monsters fall through shafts
To make it clearer what happened.

--------------------------------------------------------------------------------
eb26cbe9d3 | Steve Melenchuk | 2015-01-19 20:07:14 -0700

Add rockygargoyle to CREDITS.txt.

--------------------------------------------------------------------------------
92ca8c08b8 | Steve Melenchuk | 2015-01-19 20:01:14 -0700

Android: tell SDLActivity to load more libraries (rockygargoyle).
On my own devices, the port works fine without these, but older versions
of Android than the one I'm running apparently need them.

--------------------------------------------------------------------------------
87ae24a6a2 | Chris Campbell | 2015-01-19 18:52:20 +0000

Mention Slay+4 in gloves of archery desc instead
It's been +4 since the slaying merge (and was +5,+3 previously).

--------------------------------------------------------------------------------
0d3c5f0fd4 | David Ploog | 2015-01-19 19:42:03 +0100

Mention (Slay+3) in description of gloves of archery. (tasonir)

--------------------------------------------------------------------------------
67818e099c | Nicholas Feinberg | 2015-01-18 20:59:14 -0800

Don't allow drinking known badpotions
Unless you're immune to them.

--------------------------------------------------------------------------------
2c41810c03 | Nicholas Feinberg | 2015-01-18 20:49:00 -0800

Handle halo+umbra+invis interactions correctly
Umbra cancels halo; we gave incorrect messages.

--------------------------------------------------------------------------------
05dc7d7f35 | Nicholas Feinberg | 2015-01-18 18:53:05 -0800

Remove death from -hp artefacts &/ rot
It's now impossible to reduce your max HP to less than 1.
(Previously, either could instantly kill you without so much as
a prompt, and avoiding that was a nightmare of weird edge cases.)

Large amounts of -hp still have a weird interaction with large
amounts of rot, but that's a UI issue and one that won't appear
in practice, I think...

--------------------------------------------------------------------------------
f1abfe0690 | Nicholas Feinberg | 2015-01-18 17:28:20 -0800

Mention the effects of AC on tornados (Arrhythmia)

--------------------------------------------------------------------------------
5dff7841a8 | Neil Moore | 2015-01-18 17:26:57 -0500

Remove traces of tome of destruction.
Including one in dat/des/builder/shops.des that broke builddb.

--------------------------------------------------------------------------------
d89b1cd13e | Nicholas Feinberg | 2015-01-18 12:20:14 -0800

Destroy the tome of Destruction.
Between the Rod of Destruction and decks of destruction, there's
no design niche for it to fill.

--------------------------------------------------------------------------------
6251fa0393 | Nicholas Feinberg | 2015-01-18 12:11:03 -0800

Fix inverted ARTP_NOISES generation logic

--------------------------------------------------------------------------------
f7bac8f29a | Neil Moore | 2015-01-18 14:22:24 -0500

Simplify Compass definition (wheals)
There are a lot of other places (though not all) where we could
write {x, y} instead of coord_def(x, y).

--------------------------------------------------------------------------------
a3dfb14d27 | Neil Moore | 2015-01-18 14:17:31 -0500

Require 0 or 2 args for coord_def ctor, make it non-explicit.
This allows writing {0, 0} instead of coord_def(0, 0) in some places.

--------------------------------------------------------------------------------
d684eb7328 | Neil Moore | 2015-01-18 14:04:55 -0500

Handle butt's.

--------------------------------------------------------------------------------
95dfad8c75 | Neil Moore | 2015-01-18 12:03:19 -0500

HANDLE LOUD BUTTS.

--------------------------------------------------------------------------------
1c51eb15a6 | Corin Buchanan-Howland | 2015-01-18 11:44:11 -0500

Fix Ash armour weight levels (fearitself)
Broken in commit a3e2ed81a588

--------------------------------------------------------------------------------
6b8f409b1d | Neil Moore | 2015-01-18 11:36:08 -0500

Support old rcs with language = grunt (#9415)

--------------------------------------------------------------------------------
a08d2de410 | Nicholas Feinberg | 2015-01-18 08:09:11 -0800

Finish updating fake_lang docs

--------------------------------------------------------------------------------
d4fb5226fc | Corin Buchanan-Howland | 2015-01-18 09:50:19 -0500

Increase caustic shrike hd
They got nerfed too hard last time, lowering hd, damage, and hp per hd
all at once, and as a result they were mostly scary for players who
accidentally polymorphed something into them.

I've bumped their HD from 15 to 18, keeping all other stats the same. This
should give them back a little bit of their old scariness while also
making it less likely that random polymorphs will generate one in the
early to mid game.

--------------------------------------------------------------------------------
a3e2ed81a5 | Corin Buchanan-Howland | 2015-01-18 08:58:49 -0500

Let shield skill fully affect penalty reduction again (ManMan)
This was broken by c0532d524f1aa3403be096562e5a2f8d1a998af4.

--------------------------------------------------------------------------------
4de5da18d9 | Neil Moore | 2015-01-18 02:53:34 -0500

Don't crash on one-letter butts.

--------------------------------------------------------------------------------
848e0ea269 | Neil Moore | 2015-01-18 02:52:14 -0500

Properly set the attitude for friendly monster beams (minmay)
For one thing, this made Xom interested whenever a lantern shadow made
itself invisible, because the beam set foe_info.helped rather than
friend_info.helped.

Tracers worked fine, because they set the attitude separately.

--------------------------------------------------------------------------------
7dfa0a844a | Neil Moore | 2015-01-18 02:46:35 -0500

Add a missing prototype.
Not currently used outside of describe.cc, but maybe we want to use
it in lookup_help?

--------------------------------------------------------------------------------
f72e470b5c | Corin Buchanan-Howland | 2015-01-17 21:32:00 -0500

Fix a missing include.

--------------------------------------------------------------------------------
c0532d524f | Corin Buchanan-Howland | 2015-01-17 21:18:13 -0500

Reduce buckler EV penalty from 1 to 0.8
This is to partially offset the removal of the 0.8 AEVP discount in
spellcasting penalty and make bucklers more usable for robe & buckler
casters w/ low shield skill.

Fellow devs, you may wanna look this over and make sure I didn't make any
terrible int division mistakes.

--------------------------------------------------------------------------------
b6a558c2e7 | Corin Buchanan-Howland | 2015-01-17 21:17:54 -0500

Describe base SH value and skill needed to remove penalty on shields

--------------------------------------------------------------------------------
c9bfa3fdb6 | Corin Buchanan-Howland | 2015-01-17 21:17:47 -0500

Rescale the spellcasting penalty for AEVP
The penalty multiplier has been reduced from 19 to 25 and the free -0.8
AEVP bonus is removed. This means that there's no arbitrary breakpoint
past which all spellcasting penalty is removed for any armour that actually
has a penalty. Lighter armours overall are harder to cast in. Very heavy
armours are slightly easier to cast in, particularly at high strength and
Armour skill.

The motivation is to 1) remove the invisible bonus, 2) make the heavier light
armours less of a no-brainer.

--------------------------------------------------------------------------------
6c524ba0fc | Nicholas Feinberg | 2015-01-17 17:36:45 -0800

Support fakelang stacking
Move it to a separate option (fake_lang) & enum. Multiple
fakelangs should be comma-separated.

--------------------------------------------------------------------------------
c6dea934d5 | Nicholas Feinberg | 2015-01-17 17:04:36 -0800

Tweak artefact good props back up slightly
6,45 is too high, 6,35 is too low. Let's try 6,40.

--------------------------------------------------------------------------------
9506ef2f51 | Chris Campbell | 2015-01-17 22:27:22 +0000

Update some runrest_messages

--------------------------------------------------------------------------------
951c26267c | Neil Moore | 2015-01-17 16:25:16 -0500

Fix a typo.
[skip ci]

--------------------------------------------------------------------------------
c8374a9af6 | elliptic | 2015-01-17 13:52:17 -0500

More clua: it.ego().
Takes one argument, terse (default false), just like it.class(). Note that
it.ego_type and it.ego_type_terse are actually clua-accessible (though mainly
for dlua use); this combines the functionality of those two and makes the
returns more consistent with other similar clua (such as it.subtype()).

--------------------------------------------------------------------------------
19b7dcad62 | Neil Moore | 2015-01-17 13:19:18 -0500

Fix an off-by-one static assert.

--------------------------------------------------------------------------------
3a1f346752 | Neil Moore | 2015-01-17 12:59:19 -0500

Type-safe butts.

--------------------------------------------------------------------------------
2572214c30 | Neil Moore | 2015-01-17 12:57:26 -0500

Improve an assertion message.

--------------------------------------------------------------------------------
979e94e4eb | Neil Moore | 2015-01-17 12:56:29 -0500

Simplify _get_randart_properties little more.

--------------------------------------------------------------------------------
5ecd834d79 | Neil Moore | 2015-01-17 12:56:29 -0500

Avoid a warning and simplify.
It would have worked just to change old_len to size_t, but I like
iterators.

--------------------------------------------------------------------------------
33c989db32 | Neil Moore | 2015-01-17 12:56:29 -0500

Don't crash when getting a mummy curse while stepped from time.
Or in other cases (are there any?) where the target is out of bounds.

--------------------------------------------------------------------------------
8ac0caf5b5 | Nicholas Feinberg | 2015-01-17 08:54:00 -0800

Improve? adverb support for the new fakelang

--------------------------------------------------------------------------------
d2d306a4b8 | Nicholas Feinberg | 2015-01-17 08:44:35 -0800

Optimize the new fakelang slightly
And increase the number of boring words.

--------------------------------------------------------------------------------
c832401414 | Chris Campbell | 2015-01-17 12:45:05 +0000

Don't open or close doors without asking for a direction
Having the O and C commands inconsistently prompt for a direction was much more
annoying than helpful, and made miskeying more likely. Both commands still
don't prompt when no doors at all are nearby, but that case can more reasonably
be caught with a force_more if desired.

--------------------------------------------------------------------------------
9825574693 | Nicholas Feinberg | 2015-01-16 22:32:56 -0800

Fix the deck of summoning(s) description (Can of Worms)
"Whoops!"

--------------------------------------------------------------------------------
5198a9ee84 | Nicholas Feinberg | 2015-01-16 22:29:14 -0800

"Document" the language rcfile option
Seems to have gotten lost in the removal of the old rcfile
defaults. (Probably a few other things got lost, too...)

Not documenting real languages since we don't maintain or support
them. :(

--------------------------------------------------------------------------------
e86740c36a | Nicholas Feinberg | 2015-01-16 22:23:33 -0800

Add a new fake language
From https://code.google.com/p/buttbot/ :

"Buttbot is a social experiment in humour and interaction, it
playfully mocks those around it. Almost deconstructionist in
nature by manipulating the context of the text it parodies,
it forces people to reexamine what has been said in a new light.

It builds on the tradition of mechanising surrealist techniques,
such as example Dadadodo by Jwz implementing the cut-up technique
made famous by William S. Burroughs (and used by Radiohead).
However instead of merely rearranging the content, buttbot aims
to augment it with the simplistic low brow humour.

The use of puerile humour is mainly to bring the conversation
back down to earth, to remind us that in our intellectual pursuits
that childish references to anatomy can bring a smile to our
faces..."

To use it, set "language = butt" in your rcfile.

--------------------------------------------------------------------------------
35b05c8514 | Nicholas Feinberg | 2015-01-16 21:44:21 -0800

Cut grunt_gozag_potion_petition
After I ruined the joke a while ago, it doesn't make much
sense...

--------------------------------------------------------------------------------
ce9a9aad9a | Nicholas Feinberg | 2015-01-16 21:01:03 -0800

New Nikola tile offset
And compact a pair of identical offsets.

--------------------------------------------------------------------------------
5d42bd4184 | Neil Moore | 2015-01-16 21:03:51 -0500

Add a missing EOL.

--------------------------------------------------------------------------------
9eee233ce0 | Neil Moore | 2015-01-16 21:03:50 -0500

Don't complain in pre-commit about fixing a missing EOL (PF)
Do still complain if it sees a missing EOL that we didn't remove.

--------------------------------------------------------------------------------
fa2b48e03e | Nicholas Feinberg | 2015-01-16 17:58:13 -0800

Make rPois- universally prevent rPois+ (MPA)
It already worked that way for spider form & Virulence/Venom card;
now artefacts do too. This is to remove niche cases where carrying
multiple sources of rPois is useful.

Also fixes a case in which you could get rPois--... from multiple
sources of poison vuln, which was not displayed but probably still
caused you to take extra damage, etc.

--------------------------------------------------------------------------------
7c120c60d3 | Chris Campbell | 2015-01-17 01:52:50 +0000

Remove a redundant levelup message
There's already a message for gaining the rN+ mutation.

--------------------------------------------------------------------------------
996a55ba37 | Chris Campbell | 2015-01-17 01:49:43 +0000

Don't limit throwing net range based on player size
It's a strange hidden restriction (that doesn't apply to monsters), and
throwing nets probably don't need the limitation (if it's desired to make them
substantially weaker for Sp, they could just be unable to use them).

Still to fix is large rock range being randomised and based on strength, since
probably some compensation is needed there (reducing damage would affect
monsters more than players, other options that were mentioned were increasing
rate or fixing the range at 6, for example).

--------------------------------------------------------------------------------
74c3e38103 | elliptic | 2015-01-16 19:53:22 -0500

New clua: item.artprops, a list of artefact properties.
If the item is an artefact with known properties, returns a table with its
nonzero props. Note that this doesn't include features of the underlying
object (e.g. for jewellery).

--------------------------------------------------------------------------------
babeeccce4 | elliptic | 2015-01-16 19:53:21 -0500

Simplify item.subtype() clua.
Most of the stuff in this function was ancient and not used anywhere, and
the function was useless for most object types. Now it just calls
sub_type_string() (first checking whether the player knows the subtype),
except for the case of OBJ_ARMOUR. A very large number of player scripts
used the old OBJ_ARMOUR behavior (returning the armour slot name) and
would be broken by changing it, and the behavior is useful anyway.

--------------------------------------------------------------------------------
910cf96a29 | John McCartney | 2015-01-16 14:34:16 -0800

Nikola, Snorg tile edits.
Lacks weapon offset for Nikola.

--------------------------------------------------------------------------------
8c25847ed5 | John McCartney | 2015-01-16 14:31:18 -0800

New book tiles.

--------------------------------------------------------------------------------
b50431785c | John McCartney | 2015-01-16 09:58:36 -0800

A little bit more transparency for monster damage indicators.

--------------------------------------------------------------------------------
65668cc88b | John McCartney | 2015-01-16 09:58:34 -0800

Tweaked Dis floors.

--------------------------------------------------------------------------------
c2d6eac250 | elliptic | 2015-01-16 10:48:25 -0500

Add you.base_mp() clua.
So that lua scripts can tell whether the player has base MP left to spend
on DD wand recharging (since MP+ randarts are more common now).

--------------------------------------------------------------------------------
a72e43aedb | Nicholas Feinberg | 2015-01-16 07:44:59 -0800

Re-re-re-....fix *tele/-tele artefacts
describe_artefact_properties was not actually working.

--------------------------------------------------------------------------------
786489fb3b | Nicholas Feinberg | 2015-01-15 21:49:08 -0800

De-scale exploration piety
Now a fixed chance of gaining piety per square explored, rather
than scaled by the size of the overall level.

You don't get extra XP from monsters in smaller levels, or more
items, or more kill piety... why would you get extra exploration
piety?

(Also, it resulted in absurd piety situations in zigs...)

2500 is somewhere vaguely near the mean "env.density" (number of
open spaces) in D & Lair levels, as judged by hitting &r over
and over and watching the print messages. Probably should be
adjusted later after more testing.

--------------------------------------------------------------------------------
4207e20bc5 | Nicholas Feinberg | 2015-01-15 21:40:47 -0800

Ban Statue Form for Gargoyles (9407)
They're already statues.

--------------------------------------------------------------------------------
59ca8864c0 | Nicholas Feinberg | 2015-01-15 21:03:56 -0800

Improve Gozag/fe interactions (Atomikkrab)

--------------------------------------------------------------------------------
8567522b6c | Nicholas Feinberg | 2015-01-15 19:56:15 -0800

Really fix mu call merchant
oops :(

--------------------------------------------------------------------------------
391ff2fa99 | Nicholas Feinberg | 2015-01-15 19:44:15 -0800

Don't trap mu using Call Merchant (Ahrin)
oops

--------------------------------------------------------------------------------
fa8b5ed6dc | Nicholas Feinberg | 2015-01-15 19:41:06 -0800

Changelog through 0.16-a0-3649-ge23cfc4

--------------------------------------------------------------------------------
e23cfc487f | Nicholas Feinberg | 2015-01-15 18:55:20 -0800

Readjust artefact gen (pt 2)
Weight properties and shift them back toward the ballpark of the
old generation.

--------------------------------------------------------------------------------
a4a7e4eca5 | Nicholas Feinberg | 2015-01-15 18:51:33 -0800

Readjust artefact gen (pt 1)
Restore roughly the average good props generated before the
refactoring. Also, stop trying to generate stat-stick weapons.

--------------------------------------------------------------------------------
76b238ec7c | Brendan Hickey | 2015-01-16 02:47:55 +0000

Random Changes
Fix the header for random-weight to include random so
you can use random-weight without first including random.

Wow!

--------------------------------------------------------------------------------
fc414b026e | elliptic | 2015-01-15 21:12:36 -0500

Don't try to get a command if the turn is already over.
The command wouldn't be processed anyway. This caused some problems with lua
scripts using a "ready" function, since it could lead to inputs being lost.

--------------------------------------------------------------------------------
3617713448 | elliptic | 2015-01-15 21:09:05 -0500

Fix logic in has_pending_input().

--------------------------------------------------------------------------------
588fcbe0a8 | elliptic | 2015-01-15 21:07:37 -0500

Let fungusformed players stumble around while confused with monsters around 
(qw).
Previously confused fungusformed players could attempt to attack an adjacent
monster and if the confusion tried to make them move into an empty square,
the action would be cancelled at no cost; this meant that under some
circumstances they could guarantee hitting a monster each turn despite
confusion.

Now the "too terrified to move" thing just doesn't apply if confused (you
are too confused to be too terrified to move).

--------------------------------------------------------------------------------
096a701b55 | Chris Campbell | 2015-01-15 18:50:47 +0000

Give *Tele artefacts the same chance to trigger as rings of teleportation

--------------------------------------------------------------------------------
5be3a37e33 | Chris Campbell | 2015-01-15 18:50:32 +0000

Fix *Tele artefacts only triggering if an artefact weapon is wielded (#9406)

--------------------------------------------------------------------------------
b49f525f14 | Chris Campbell | 2015-01-15 18:43:46 +0000

Reword some Ru sacrifice messages

--------------------------------------------------------------------------------
203e14a302 | Chris Campbell | 2015-01-15 18:43:46 +0000

Uncapitalise the minotaur
Since it's not really a unique in Crawl, just a species name.

--------------------------------------------------------------------------------
ab560df152 | Nicholas Feinberg | 2015-01-14 22:30:53 -0800

Tweak Ash sacrifice UI
Now sacrifices one scroll from a stack at a time. Also tells you
which scrolls were created, and doesn't prompt when sacrificing
scrolls set for autopickup (nothing special about them...)

Should make the Hypothetically Optimal Behaviour considerably
less of a pain; for those who really do want to sacrifice 15
remove curse at a go, crawl has plenty of automation features to
assist you.

--------------------------------------------------------------------------------
60911782f2 | Nicholas Feinberg | 2015-01-14 18:09:22 -0800

Re-fix artefact prop banning
oops

--------------------------------------------------------------------------------
8290960c94 | Nicholas Feinberg | 2015-01-14 18:04:07 -0800

Don't trigger zot traps against unseen non-hostiles
No interesting consequences.

--------------------------------------------------------------------------------
f0307c90bf | elliptic | 2015-01-14 11:28:22 -0500

Merge add_autopickup_func and add_no_autopickup_func; add 
clear_autopickup_funcs.
The way add_autopickup_func now works is the following:
* it adds a function to the list chk_force_autopickup
* when considering an item for autopickup, evaluate that item with each
  function in chk_force_autopickup, in order
* if one such function returns true/false, stop and use that to determine
  whether to autopickup the item
* if none of the functions returns a boolean, continue on to other ways of
  configuring autopickup (autopickup_exceptions and autopickup item classes)

This will unfortunately break some rcfiles. In particular, if an rcfile
used add_autopickup_func to add a function that returns false for some items,
then this now means that those items will not be autopickuped (even if they
normally would be). In most cases players can change those "return false"
lines to "return" to return to the old behavior.

We currently don't seem to have any documentation for advanced Lua usage such
as this other than the example in advanced_optioneering.txt, which has been
updated.

In addition, a clear_autopickup_funcs() function was added to clear
chk_force_autopickup. This allows players to remove default autopickup Lua
(such as book autopickup on Trogites).

--------------------------------------------------------------------------------
5a1d9ef68d | Nicholas Feinberg | 2015-01-14 08:14:21 -0800

Simplify banish milestone field logic
Should always be empty unless we're in the abyss through being
banished.

--------------------------------------------------------------------------------
7a4f397a88 | Nicholas Feinberg | 2015-01-13 22:03:56 -0800

Drop an order of magnitude from &^Ib iters
Annoying.

--------------------------------------------------------------------------------
6873515332 | Nicholas Feinberg | 2015-01-13 19:41:08 -0800

Improve prop banning code
Should fix a few bugs.

--------------------------------------------------------------------------------
2f3dc07e1a | Nicholas Feinberg | 2015-01-13 19:21:33 -0800

artefact_*_wpn_* -> artefact_*_*
The relevant functions were for properties applying to all
artefact types (except books), not just weapons.

--------------------------------------------------------------------------------
a6ec205d97 | Nicholas Feinberg | 2015-01-13 18:52:50 -0800

Properly cap hydra hunger
Previously could go way over normal racial hunger limits if you
ate a big monster.

--------------------------------------------------------------------------------
4eef910869 | Corin Buchanan-Howland | 2015-01-13 20:36:22 -0500

Prevent players with certain sacrifices from joining certain gods
Specifically Ely, Beogh, or Jiyva can't be joined with Sac Love and
Nemelex can't be joined with Sac Artifice. It breaks their core mechanics,
and so they wouldn't want you.

--------------------------------------------------------------------------------
12147800e7 | Nicholas Feinberg | 2015-01-13 17:32:21 -0800

Reduce Gozag food shop prices to 2/3rds base
A tweak to make Gozag casters a little less unviable.

--------------------------------------------------------------------------------
69e0ba6aaa | Corin Buchanan-Howland | 2015-01-13 20:03:54 -0500

Adjust +Twstr spawning
Make it no longer use up 2x good properties, but instead just cut the spawn
rate to 1/5th of other properties.

--------------------------------------------------------------------------------
7858ef97da | Corin Buchanan-Howland | 2015-01-13 19:53:49 -0500

Calculate item plus before turning it into a randart.
This gets a bit awkward in _try_make_weapon_artefact since we need to know
whether it's holy weapon or not before determining whether it's cursed.

--------------------------------------------------------------------------------
660aead3ed | Corin Buchanan-Howland | 2015-01-13 19:18:49 -0500

Tie randart bad properties to number of good properties more
Under the new math, you get 6 chances to get a good property w/ a 45%
chance, then 3 chances to get a bad property at 8*number of good properties
chance per.  Overall, 2.7 good properties and ~0.65 bad properties on
the average artefact.

This also removes the bonus for low base enchantment on everything but
weapons.

--------------------------------------------------------------------------------
26246814e6 | Neil Moore | 2015-01-13 10:04:15 -0500

Don't discard unexpired travel cache.
(int8_t) TAG_MINOR_VERSION is negative now. This was the only remaining
instance of marshallByte(f, TAG_MINOR_VERSION).

--------------------------------------------------------------------------------
c698f4c16d | Eino Keskitalo | 2015-01-13 16:01:07 +0200

Fix typo.

--------------------------------------------------------------------------------
da98d6b559 | Nicholas Feinberg | 2015-01-12 23:26:43 -0800

Track banishers in milestones
The last thing that banished the player before they entered the
abyss. Should show up in !lm & !lg.

--------------------------------------------------------------------------------
5b6d153ccf | Nicholas Feinberg | 2015-01-12 22:37:57 -0800

Oops (again)

--------------------------------------------------------------------------------
410066b465 | Nicholas Feinberg | 2015-01-12 22:35:15 -0800

Don't generate rPois++/rElec++
Seems excessive.

--------------------------------------------------------------------------------
0e2f81e93c | Nicholas Feinberg | 2015-01-12 22:21:08 -0800

Rewrite disc_of_storms()
And split out black drac breath into its own method.

--------------------------------------------------------------------------------
3006438c3b | Neil Moore | 2015-01-13 01:07:49 -0500

Hush a signedness warning.
Assumes we'll never have billions of types of decks or misc items.

--------------------------------------------------------------------------------
5850f5e718 | Neil Moore | 2015-01-12 23:54:24 -0500

Document what you can do with a bitfield.
Maybe this should be on enum_bitfield<> instead of DEF_BITFIELD, but I
don't expect anyone to use the former directly.

--------------------------------------------------------------------------------
92bc5b746e | Neil Moore | 2015-01-12 23:47:22 -0500

Make enum_bitfield more type-safe.
Do not allow implicit conversions to integer or boolean.  Using one
in an if or while, or as an operand to ! && ||, counts as explicit for
C++ purposes.

--------------------------------------------------------------------------------
516fa3de82 | Neil Moore | 2015-01-12 23:47:22 -0500

Be more safe with enum bitfield types.

--------------------------------------------------------------------------------
fb6a81113b | Neil Moore | 2015-01-12 23:39:37 -0500

Brace and unbrace.

--------------------------------------------------------------------------------
433944a2df | Neil Moore | 2015-01-12 23:39:17 -0500

Define hides with a pair of macros.
Since the hides and armour differ systematically. Troll leather armour is
the odd one out, because of the word "leather" in the enum and item name.

--------------------------------------------------------------------------------
2bf73cab6d | Neil Moore | 2015-01-12 23:08:16 -0500

Make all hides half armour AC (elliptic)
Rounded down.

--------------------------------------------------------------------------------
267631e571 | elliptic | 2015-01-12 21:34:19 -0500

QDA: ER 6 -> 7.
Aside from slightly higher ER, QDA with 11 Armour skill is +6 MDA of MR, and
it gets better with more skill (and makes it easier to enchant up other
armour too and not run out of scrolls). This makes the ER difference more
noticeable.

--------------------------------------------------------------------------------
5e4e9a7c07 | Nicholas Feinberg | 2015-01-12 17:55:30 -0800

oops

--------------------------------------------------------------------------------
83699156b9 | Nicholas Feinberg | 2015-01-12 17:52:16 -0800

Allow rPois-/rN- artefacts
This means that artefacts with rPois now display as rPois+, which
is a little odd but probably livable.

--------------------------------------------------------------------------------
d63bf1238b | Nicholas Feinberg | 2015-01-12 17:46:01 -0800

Remove a redundant list
These properties are already guaranteed to never be generated,
since they're missing gen_good_value and gen_bad_value in
artp_data.

--------------------------------------------------------------------------------
4d6a121fca | Neil Moore | 2015-01-12 20:08:22 -0500

Slightly simplify.
The capture is no longer needed since 0.16-a0-3499-gfbbdc41.

--------------------------------------------------------------------------------
129694ff3f | Neil Moore | 2015-01-12 18:04:07 -0500

Include innate muts in level-gain "base" stats (#9376)
Maybe there should be another way to get this information, in case you want
it more often than every three levels.

--------------------------------------------------------------------------------
1520cdcbd2 | Neil Moore | 2015-01-12 17:05:39 -0500

Make MDA, not FDA, grant rSticky.
Even worse, IDA granted rSticky-, causing a crash in situations like
Mara cloning:

    
http://dobrazupa.org/morgue/moocowpong3/crash-moocowpong3-20150112-215852.txt

--------------------------------------------------------------------------------
1a6a6bad76 | Chris Campbell | 2015-01-12 17:13:48 +0000

Slightly reduce stats from randarts
Lower stat bonuses to 2-6, since 7 is higher than even most unrands that give
large stat boosts, and the old maximum of 6 is still quite a noticeable bonus.

--------------------------------------------------------------------------------
8318f2084a | Chris Campbell | 2015-01-12 17:13:48 +0000

Adjust radiant_caverns
Remove its mimics, since there's no particular thematic link and the gameplay
effect of knowing in advance that a substantial portion of the vault's loot
isn't real is mostly just a large amount of message spam and extra 'o' presses.
Also reduce the chance of placing multiple amulets of rMut (one is already
guaranteed).

--------------------------------------------------------------------------------
94f4af0d2a | Nicholas Feinberg | 2015-01-12 08:15:11 -0800

Standardize randart HP/MP+- to 9
+15 was excessive (competing with unrands). Simpler to use the
same value as =magical power.

--------------------------------------------------------------------------------
9bd3662eee | Nicholas Feinberg | 2015-01-11 19:36:36 -0800

Improve meph entry checks (9397)
Should be AND, not OR (implicit).

Mainly relevant for monsters casting meph as an emergency spell
(natasha), but will have fun side effects. rip wz

--------------------------------------------------------------------------------
5e08f3e862 | Nicholas Feinberg | 2015-01-11 19:36:36 -0800

Don't autoexclude removed monsters
rip mimics

--------------------------------------------------------------------------------
fc4db81fb8 | Jesse Luehrs | 2015-01-11 18:35:59 -0500

ensure a conjuration exists by the first secondary spell
previously, a lich that picked sgd as the primary spell and didn't get a
second primary spell would choose the first secondary spell based on
weights from just sgd before being forced to pick a conjuration, which
threw off the overall distribution in favor of summoning a bit

--------------------------------------------------------------------------------
c4bce41e39 | Jesse Luehrs | 2015-01-11 18:35:58 -0500

give 50% of liches sgd again

--------------------------------------------------------------------------------
bc324086c1 | Nicholas Feinberg | 2015-01-11 15:18:47 -0800

Remove default references to rotting chunks
RIP

--------------------------------------------------------------------------------
373b029bca | Nicholas Feinberg | 2015-01-11 15:10:13 -0800

Improve an extremely rare message
Invisible giant eyeballs shouldn't use the same message as ghost
moths.

...though I don't know when you would ever encounter one...

--------------------------------------------------------------------------------
438c78e3f1 | Jesse Luehrs | 2015-01-11 17:50:38 -0500

this is now also unnecessary

--------------------------------------------------------------------------------
36e3da4636 | Jesse Luehrs | 2015-01-11 17:24:33 -0500

remove a few not particularly useful randlich spells
enslavement actually doesn't work at all for some reason (although
control undead and wands of enslavement do) - should look into that at
some point

--------------------------------------------------------------------------------
09c043c89e | Neil Moore | 2015-01-11 11:43:51 -0500

Make Orc:$ vaults into primary vaults (Grunt)
Also makes pubby_orc_utopia (the encompass Orc:$ vault) alternate
normally with the regular ones, rather than having its own independent
chance that depends on how many primary vaults can place in Orc:$.

--------------------------------------------------------------------------------
1073268599 | Neil Moore | 2015-01-10 19:57:14 -0500

Mention some item spec aliases.
As in:
  KMONS: | = oklob plant
  KITEM: | = |

--------------------------------------------------------------------------------
12e3a825cb | Neil Moore | 2015-01-10 19:47:53 -0500

Improve | glyph description.

--------------------------------------------------------------------------------
6b14a94156 | gammafunk | 2015-01-10 18:19:55 -0600

Consistent use of quotes in the des syntax doc

--------------------------------------------------------------------------------
473999623e | gammafunk | 2015-01-10 18:14:12 -0600

Correct and clarify item quality descriptions in the des syntax doc

--------------------------------------------------------------------------------
642d6c39cc | Neil Moore | 2015-01-10 18:16:19 -0500

Rename fake item levels.
ISPEC_GOOD => ISPEC_STAR (it is used for * and star_item, *not* good_item)
MAKE_GIFT_ITEM => ISPEC_GIFT
MAKE_GOOD_ITEM => ISPEC_GOOD_ITEM

--------------------------------------------------------------------------------
e67431ea52 | Neil Moore | 2015-01-10 18:16:19 -0500

Move more fake item levels into the same enum.

--------------------------------------------------------------------------------
bcb449988b | Nicholas Feinberg | 2015-01-10 15:13:10 -0800

Fix and rewrite &^Ib
It was failing to generate new artefacts, since KNOWN_PROPS_KEY
was set.

--------------------------------------------------------------------------------
b0f48ac2c6 | Jesse Luehrs | 2015-01-10 18:09:33 -0500

missed one

--------------------------------------------------------------------------------
2f5ff90dbd | Nicholas Feinberg | 2015-01-10 14:38:46 -0800

Improve &^Ib
Still broken, but a lot faster, and actually outputs progress %s
now.

--------------------------------------------------------------------------------
3f27573ad2 | Nicholas Feinberg | 2015-01-10 14:27:42 -0800

Add a console Irradiate animation
Need a decent tile for tiles; looks terrible with the default.

--------------------------------------------------------------------------------
c52694e70a | Nicholas Feinberg | 2015-01-10 14:12:46 -0800

Don't claim that ?immo explodes

--------------------------------------------------------------------------------
5f2f033c70 | Nicholas Feinberg | 2015-01-10 14:05:05 -0800

Spell intrinsic less incorrectly (ChrisO)

--------------------------------------------------------------------------------
42fbe3e8f6 | Corin Buchanan-Howland | 2015-01-10 17:01:50 -0500

Tweak artifact property good/bad ratio slightly
Now it's about 77% likely that a property will be good, and 23% likely
that it will be bad, up from 70% and 30%.

Also, add some extra good properties to items with terrible base
enchantment to tempt people to use them.

--------------------------------------------------------------------------------
8c3bf18296 | Nicholas Feinberg | 2015-01-10 13:59:12 -0800

Remove boilerplayer armour_type_res_* methods
Just introduced an extra place for copy-paste errors.

--------------------------------------------------------------------------------
2cefbf0837 | Nicholas Feinberg | 2015-01-10 13:33:59 -0800

Depluralize armour_flags (|amethyst)
Should only be used with one at a time.

--------------------------------------------------------------------------------
39947347f8 | Nicholas Feinberg | 2015-01-10 13:27:26 -0800

Rewrite ru_sac_text

--------------------------------------------------------------------------------
d1a45de054 | Nicholas Feinberg | 2015-01-10 13:02:22 -0800

Update an obsolete comment on artefact_prop_type

--------------------------------------------------------------------------------
0b04685905 | Nicholas Feinberg | 2015-01-10 13:01:05 -0800

Re-enable SInv on randarts
Not sure why it was disabled.

--------------------------------------------------------------------------------
8b9d069d0f | Nicholas Feinberg | 2015-01-10 13:01:05 -0800

Tweak artefact stat boosts down again
Per crawl-dev discussion, 3 was agreed to be the 'minimum
interesting stat difference', and 7 was the largest reasonable
value.

Hopefully this doesn't ruin everything.

--------------------------------------------------------------------------------
82a1c77983 | Nicholas Feinberg | 2015-01-10 13:01:04 -0800

Deduplicate artp names

--------------------------------------------------------------------------------
2974dc3c23 | Nicholas Feinberg | 2015-01-10 13:01:04 -0800

Use an enum for artefact annotations

--------------------------------------------------------------------------------
c4efaae1e0 | Nicholas Feinberg | 2015-01-10 13:01:04 -0800

Pull another wiz-item array into artefact_prop_data
As noted, there should be a better way to express this.

--------------------------------------------------------------------------------
45fe334428 | Nicholas Feinberg | 2015-01-10 13:01:04 -0800

Cleanup a now-redundant wiz-item array

--------------------------------------------------------------------------------
4cf300f225 | Nicholas Feinberg | 2015-01-10 13:01:04 -0800

Improve randart generation structure

--------------------------------------------------------------------------------
b113b11e49 | Nicholas Feinberg | 2015-01-10 13:01:04 -0800

Arguably cleanup _get_randart_properties a bit

--------------------------------------------------------------------------------
e63c45dca2 | Nicholas Feinberg | 2015-01-10 13:01:04 -0800

Remove an unused function

--------------------------------------------------------------------------------
0b9c6ee712 | Corin Buchanan-Howland | 2015-01-10 13:01:00 -0800

Re-add +HP/+MP and Regen randart properties
Also, flag randart TLA as Regen+ unless you're a troll.

Don't make the MTLA give Regen+++++++++++...

--------------------------------------------------------------------------------
baf6288ebf | Corin Buchanan-Howland | 2015-01-10 13:01:00 -0800

Remove commented out functions.

--------------------------------------------------------------------------------
ff0a7d4513 | Nicholas Feinberg | 2015-01-10 13:01:00 -0800

Initialize

--------------------------------------------------------------------------------
a07ba13300 | Nicholas Feinberg | 2015-01-10 13:00:59 -0800

Deduplicate some resists and things
idk

--------------------------------------------------------------------------------
5416009655 | Corin Buchanan-Howland | 2015-01-10 13:00:55 -0800

Add artifact property +Twstr
This rare property gives you the evokable ability to summon a twister
nearby. The twister is perfectly capable of harming you. Summoning the
twister requires a fairly high investment in Evocations.

--------------------------------------------------------------------------------
9f3ee73e89 | Corin Buchanan-Howland | 2015-01-10 12:54:55 -0800

Add +hp/mp as randart properties

--------------------------------------------------------------------------------
4c290b349d | Corin Buchanan-Howland | 2015-01-10 12:54:55 -0800

Add Regen as an artefact armour property.

--------------------------------------------------------------------------------
83f13bf3f2 | Corin Buchanan-Howland | 2015-01-10 12:54:55 -0800

Improve +stat artefacts
Artefacts with +-status properties have at least +-2 and at most +-10.

--------------------------------------------------------------------------------
65bfa6b9c4 | Corin Buchanan-Howland | 2015-01-10 12:54:55 -0800

refactor _get_randart_properties
This refactoring has a few goals: 1) improve the maintainability of the
code, making future refinements easier, 2) remove the odd outcome patterns
that came from checking for properties in a fixed order, 3) more or less
preserve the current level of artefact quality, 4) de-randomize the level
of certain bad properties (did you know that a randart with *Rage could
inspire rage on between 1 and 9 out of 100 attacks?)

This refactoring intentionally changes or ignores a fair amount of the
previous logic; gone are the specific frequencies and orders of
properties, for example. I've also loosened restrictions on where stealth
and magic resistance can spawn.

This also fixes a bug where see invis could not spawn on rings of
invisibility, but could spawn on rings of see invis (to no purpose).

It's possible that this could do with further refactoring. Other devs,
please let me know.

--------------------------------------------------------------------------------
0285957ded | elliptic | 2015-01-10 13:56:16 -0500

Display Ru sacrifice details in the ability screen for variable sacrifices.
This allows players to see which magic schools they have the option of
sacrificing or which mutation they have the option of accepting without
needing to select the sacrifice and then cancel out of it.

--------------------------------------------------------------------------------
2e35007e06 | Nicholas Feinberg | 2015-01-10 10:04:25 -0800

Reduce cigotuvi's animation spam
Max 5 corpse-beams per cast.

--------------------------------------------------------------------------------
7df06d039b | Nicholas Feinberg | 2015-01-10 09:15:32 -0800

Correct a passability check

--------------------------------------------------------------------------------
a1cac5128b | Nicholas Feinberg | 2015-01-10 09:05:46 -0800

Further clean up hide code
Console colours.

--------------------------------------------------------------------------------
1f1ee3f0c7 | Neil Moore | 2015-01-10 02:11:05 -0500

Simplify slightly in init_player_ghost.

--------------------------------------------------------------------------------
f2c86d1dea | Neil Moore | 2015-01-09 13:32:51 -0500

Make MR ego work again (nordetsa, PF)

--------------------------------------------------------------------------------
e2e736fdfb | Nicholas Feinberg | 2015-01-08 22:42:46 -0800

Pull out a function further
The stage is set; the actors prepared...

--------------------------------------------------------------------------------
75dccf4842 | Nicholas Feinberg | 2015-01-08 22:41:19 -0800

Data-ify jewellery fake artps
Again, in its own function for secret reasons.

--------------------------------------------------------------------------------
cd42656ea3 | Nicholas Feinberg | 2015-01-08 22:08:04 -0800

Remove an unused argument
Was always true.

Not really sure what it did, tbh...

--------------------------------------------------------------------------------
6fac9b0a01 | Nicholas Feinberg | 2015-01-08 21:56:54 -0800

Stop shadowing a type
oops

--------------------------------------------------------------------------------
7cfdd6d81e | Nicholas Feinberg | 2015-01-08 21:56:19 -0800

Deduplicate dragon armour resists further
_populate_armour_intrinsic_artps() is a separate function for
what I will describe as "secret reasons".

--------------------------------------------------------------------------------
5a622fefca | Nicholas Feinberg | 2015-01-08 21:46:48 -0800

Deduplicate dragon armour resist further
Hopefully this doesn't conflict with Lasty.

--------------------------------------------------------------------------------
3cadbefbd7 | Nicholas Feinberg | 2015-01-08 21:33:54 -0800

Deduplicate dragon armour resists
They're now flagged in exactly one place.

--------------------------------------------------------------------------------
90ddc1d173 | Nicholas Feinberg | 2015-01-08 20:42:48 -0800

Flag armour properties

--------------------------------------------------------------------------------
f6bfca6cf2 | Nicholas Feinberg | 2015-01-08 18:02:49 -0800

Stop permabranding weapons with L5 charms
Oops.

--------------------------------------------------------------------------------
d5114074af | Nicholas Feinberg | 2015-01-08 17:59:54 -0800

Simplify shadow traps
Since they can no longer appear on d:0.

--------------------------------------------------------------------------------
9fa63582e7 | Nicholas Feinberg | 2015-01-08 17:34:50 -0800

Cover floor tiles in acid
...around acid walls outside Slime.

As the comment notes, this implementation may be a premature
optimization. Alternately, there may be a better optimization than
the crude branch hardcoding in this commit. Patches welcomed.

--------------------------------------------------------------------------------
7bd4303a95 | Neil Moore | 2015-01-08 19:30:00 -0500

Allow xom to gift Air miscasts.

--------------------------------------------------------------------------------
cd4db26466 | Neil Moore | 2015-01-08 17:50:04 -0500

Give unIDed decks the right tile (PleasingFungus)
PleasingFungus suggests that is_deck_type should always return true for
MISC_DECK_UNKNOWN.  Probably true, but that would need more testing.
Instead, add a flag to is_deck to indicate that we accept item_infos
(which might be unIDed), and pass that flag down to is_deck_type.
Change a few is_deck calls to pass the new argument, removing
non-unnecessary MISC_DECK_UNKNOWN checks while we're at it.

--------------------------------------------------------------------------------
39bb01f7a3 | Neil Moore | 2015-01-08 16:50:09 -0500

Fix a typo (magicpoints)

--------------------------------------------------------------------------------
e4e23bbb81 | Neil Moore | 2015-01-08 16:33:57 -0500

Don't return a dangling pointer in fsim (#9087)

--------------------------------------------------------------------------------
31a5e93d1f | Neil Moore | 2015-01-08 16:22:11 -0500

Fix fight sim against tramplers (halberd)
Also, things that might make you blink or otherwise move on attack.

--------------------------------------------------------------------------------
164200f449 | Nicholas Feinberg | 2015-01-07 20:03:48 -0800

The player is not the real monster
(And looking at monster Banish in xv made it a little confusing.)

--------------------------------------------------------------------------------
e7dfc81d64 | Nicholas Feinberg | 2015-01-07 19:43:48 -0800

Changelog through 0.16-a0-3534-g5c12db1

--------------------------------------------------------------------------------
5c12db129f | Nicholas Feinberg | 2015-01-07 19:23:02 -0800

Add a new Orc ending

--------------------------------------------------------------------------------
c382f62532 | Neil Moore | 2015-01-07 14:26:10 -0500

Mark dying rider halves as summoned if they are (#9384)

--------------------------------------------------------------------------------
139d762e31 | Nicholas Feinberg | 2015-01-07 08:07:30 -0800

Don't crash when failing to evoke blink

--------------------------------------------------------------------------------
4b1633f80b | Nicholas Feinberg | 2015-01-06 22:08:46 -0800

Re-randomize demonic rune tiles
Playing around, since we have the tiles, after all...

--------------------------------------------------------------------------------
dc0a45c2df | Nicholas Feinberg | 2015-01-06 21:32:10 -0800

Simplify deck tiles code
Fixes some issues displaying the deck of oddities, not that it
matters...

--------------------------------------------------------------------------------
115dfab7af | Nicholas Feinberg | 2015-01-06 20:26:47 -0800

Decrease blurry vision delay
From 1/2/3 turns to 0.5/1/2.

The previous numbers were the result of an off-by-one error while
estimating the effects of the old mutation.

--------------------------------------------------------------------------------
ed0d56bfd5 | Nicholas Feinberg | 2015-01-06 19:28:27 -0800

Simplify (|amethyst)

--------------------------------------------------------------------------------
b03b053059 | Nicholas Feinberg | 2015-01-06 19:24:14 -0800

Remove an overlooked list
The Night Of Oops

--------------------------------------------------------------------------------
c9ac3c18ca | Nicholas Feinberg | 2015-01-06 19:19:22 -0800

Deck of summonings -> summoning
It seems pretty clear that no one could keep it straight; the old
code had a special-case so that &%deck of summoning would work,
and even the enum calls it "MISC_DECK_SUMMONING"! No need for the
extra s.

--------------------------------------------------------------------------------
f7ab5bbd59 | Nicholas Feinberg | 2015-01-06 19:18:35 -0800

Deduplicate deck names
Mostly; there's still a wizmode list in items.cc, but who cares.

--------------------------------------------------------------------------------
6d3a5d0e65 | Nicholas Feinberg | 2015-01-06 18:40:58 -0800

Rewrite deck generation
uuugh

--------------------------------------------------------------------------------
5a420337e5 | Nicholas Feinberg | 2015-01-06 18:40:45 -0800

Correct an oversight
<PleasingFungus> oops

--------------------------------------------------------------------------------
f1c53da85a | Nicholas Feinberg | 2015-01-06 17:37:32 -0800

Don't generate decks of oddities
This code is very bad.......

--------------------------------------------------------------------------------
b1b4986551 | Nicholas Feinberg | 2015-01-06 07:54:33 -0800

Improve cblink/terrain interactions (wheals)

--------------------------------------------------------------------------------
ff07f01ca5 | Nicholas Feinberg | 2015-01-06 07:45:44 -0800

Actually check allow_control (|amethyst)

--------------------------------------------------------------------------------
995ee5b0e9 | Nicholas Feinberg | 2015-01-06 00:12:37 -0800

Rewrite player blink code
Should make blinking cancellable in many more situations, and
also add an exciting variety of new bugs.

--------------------------------------------------------------------------------
ebcadde349 | Nicholas Feinberg | 2015-01-05 20:39:09 -0800

Cleanup some decks.cc code

--------------------------------------------------------------------------------
8a5f6cd04e | Nicholas Feinberg | 2015-01-05 20:34:05 -0800

Document the Deck of Oddities
Also, shave yaks.

--------------------------------------------------------------------------------
39aae9d83a | Neil Moore | 2015-01-05 22:06:09 -0500

Brace and unbrace.

--------------------------------------------------------------------------------
0fe138b711 | Neil Moore | 2015-01-05 22:06:09 -0500

Constify.

--------------------------------------------------------------------------------
2db33cbed3 | Neil Moore | 2015-01-05 22:00:37 -0500

Simplify using random_range.

--------------------------------------------------------------------------------
565f63133e | Nicholas Feinberg | 2015-01-05 18:51:33 -0800

List deck contents in ?/I (ebering)

--------------------------------------------------------------------------------
afa46ab479 | Nicholas Feinberg | 2015-01-05 18:45:37 -0800

Initialize a variable
Squelches some warnings.

--------------------------------------------------------------------------------
1fcc2a9f44 | Nicholas Feinberg | 2015-01-05 18:41:55 -0800

Document deck starting cards (Lasty)

--------------------------------------------------------------------------------
071a57477b | Corin Buchanan-Howland | 2015-01-05 21:27:11 -0500

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
8fea30501e | Corin Buchanan-Howland | 2015-01-05 21:25:49 -0500

Redo essence/purity/health sacrifice piety
Increase the piety for -Wiz and -stats based on your base stats. If the
relevant stat is higher among your stats, you get some extra piety.
-MP sacrifices get extra piety equal to half of the skill level of your
highest mp-boosting skill.

All mutations which remove a positive mutation get bonus piety equal
to the piety you get for the new negative mutation.

Overall this is an increase to piety from these lesser sacrifices, but
it is a reduction for characters for whom these were previously trivial.

--------------------------------------------------------------------------------
50553e7c7e | Nicholas Feinberg | 2015-01-05 18:24:19 -0800

Fix & deduplicate an obsolete comment

--------------------------------------------------------------------------------
df4949f4d0 | Nicholas Feinberg | 2015-01-05 18:20:41 -0800

Partially restore yaktaur lethality
They were defanged by ranged combat reform; M_ARCHER helped
somewhat but not entirely. This should help more.

--------------------------------------------------------------------------------
a8fc208b4d | Corin Buchanan-Howland | 2015-01-05 20:03:46 -0500

Add Ru to Lugonu bribe vault (|amethyst)
But Lugonu offers no special bribe.

--------------------------------------------------------------------------------
5b4553e0bf | Corin Buchanan-Howland | 2015-01-05 19:59:34 -0500

Decrease -Potion and -Scroll message spam
Now you only get a message when the status starts or ends, not when it
increases duration.

--------------------------------------------------------------------------------
830bb26426 | Corin Buchanan-Howland | 2015-01-05 19:49:16 -0500

Fix amulet of faith under Ru
There was a reversed check for piety when taking off the amulet. Also,
the delay alteration effect could be gamed.

--------------------------------------------------------------------------------
d574afeba4 | Neil Moore | 2015-01-05 18:55:25 -0500

Simplify (wheals)

--------------------------------------------------------------------------------
7dfabb24fd | Neil Moore | 2015-01-05 18:55:19 -0500

Trigger mummies, etc. on Dith shadow spell kills (#9155)

--------------------------------------------------------------------------------
08befd016a | Neil Moore | 2015-01-05 16:48:31 -0500

Don't crash when Dith mimics shift-throw vs invis opponent (HDA)
We were setting an out-of-bounds target in that case, which would then
cause a crash if the shadow mimic receives a behaviour_event before
ceasing to exist: for example, from alert_nearby_monsters().

--------------------------------------------------------------------------------
a03936fc54 | Steve Melenchuk | 2015-01-05 10:05:27 -0700

Update Android.mk.
FR: make this automagically generate.

--------------------------------------------------------------------------------
fbbdc41983 | Neil Moore | 2015-01-05 00:22:56 -0500

Simplify.
No need to repeat the monster test for each slot.

--------------------------------------------------------------------------------
0877e93f70 | Nicholas Feinberg | 2015-01-04 20:59:43 -0800

Show the last Christmas partygoers the door
Some people just don't know when to stop...

(DE Fighters & Knights.)

This reverts commit af862a732f608735c4b7ae7df5622ed77019a66b.

--------------------------------------------------------------------------------
356bc213d3 | Neil Moore | 2015-01-04 18:10:17 -0500

Apply rElec to storm cloud damage (mayniac)

--------------------------------------------------------------------------------
6490362e1a | Neil Moore | 2015-01-04 17:51:18 -0500

Don't apply melee brands to thrown missiles (#9338)

--------------------------------------------------------------------------------
9b66542c42 | Nicholas Feinberg | 2015-01-04 09:03:49 -0800

Credit D++
With his preferred sobriquet.

--------------------------------------------------------------------------------
28000b719e | Neil Moore | 2015-01-03 22:11:42 -0500

Better respect DIS_CONFIRMATIONS in spellcasting.
Arguably we should also disable the monsters-in-range check.

--------------------------------------------------------------------------------
d9d85f0167 | Neil Moore | 2015-01-03 16:39:02 -0500

Document that constraint more thoroughly.

--------------------------------------------------------------------------------
1c2b1f8ff7 | Neil Moore | 2015-01-03 16:33:17 -0500

Document a constraint.

--------------------------------------------------------------------------------
aab72ad1e1 | Neil Moore | 2015-01-03 16:08:26 -0500

Restore the weight of lemuel_tele_altar.
I forgot to do this after removing amethyst_srp_altar, which had split
its weight.

--------------------------------------------------------------------------------
f886df0bb1 | Neil Moore | 2015-01-03 15:59:57 -0500

Don't generate random formicid zombies.

--------------------------------------------------------------------------------
d6d5a75bdd | Neil Moore | 2015-01-03 15:45:58 -0500

Staticalise, constify, and rename some critical hit tables.

--------------------------------------------------------------------------------
27d397853c | Neil Moore | 2015-01-03 15:45:57 -0500

Insult tengu monsters.

--------------------------------------------------------------------------------
9f2b8d71c4 | Neil Moore | 2015-01-03 14:37:49 -0500

Add chequers to server admin credits.

--------------------------------------------------------------------------------
49a40a598f | Neil Moore | 2015-01-03 04:13:54 -0500

Retrogdorise employed draconians.

--------------------------------------------------------------------------------
ba28155788 | Steve Melenchuk | 2015-01-02 22:49:54 -0700

Revert "Use PLACE, not DEPTH, for pubby_orc_utopia."
Apparently orc endings are minivaults. I'm reverting this while I
investigate further, because that makes no sense, and this commit forces
this ending in the absence of them being primary vaults.

This reverts commit ef2dabac2f8007a47285e421b30c93dd01244f8d.

--------------------------------------------------------------------------------
ef2dabac2f | Steve Melenchuk | 2015-01-02 22:31:49 -0700

Use PLACE, not DEPTH, for pubby_orc_utopia.
It's intended to be an ending, and this puts it into rotation properly
with the other endings.

We may want to weight it down if it turns up too often.

--------------------------------------------------------------------------------
6616b5b70b | Neil Moore | 2015-01-02 22:42:09 -0500

Improve rN mutation gain message (ion_frigate, #9053)

--------------------------------------------------------------------------------
bed6184e00 | Neil Moore | 2015-01-02 20:49:18 -0500

More slurp, less kobold.

--------------------------------------------------------------------------------
ba96184584 | Neil Moore | 2015-01-02 20:34:08 -0500

Don't generate lava orc undead (#9213)
They can still be created manually in wizmode.

--------------------------------------------------------------------------------
9e784f8602 | Neil Moore | 2015-01-02 20:20:44 -0500

Don't allow traps in a few arrival vaults (#8760)
A teleport trap could allow the boring beetle or jelly to escape.
Not that a D:1 jelly is beyond the pale, but it seems unintentional
regardless.

You can still teleport into the boring beetle vault, but it does
place both a dungeon exit and an escape hatch down, and the beetle
is slow enough to run away from.

--------------------------------------------------------------------------------
a7fa3bba42 | Chris Campbell | 2015-01-02 23:19:54 +0000

Fix a typo

--------------------------------------------------------------------------------
d6fe119406 | Neil Moore | 2015-01-02 18:10:42 -0500

Use the same failure adverbs in casting as memorization.
And punctuation.

--------------------------------------------------------------------------------
ea1ca16949 | Neil Moore | 2015-01-02 18:09:31 -0500

Account for Sif in memorization spell failure adverbs.
They were using get_miscast_chance; instead, decide based on
fail_severity (the same function used to determine the colour).

Also make the adjectives phrase as a whole into data and export it so
we can use them elsewhere. Use the whole adjective phrase, rather than
just an adverb, so that severity zero is "safe" rather than "not
dangerous" (not that that message can appear currently).

--------------------------------------------------------------------------------
3f597744db | Neil Moore | 2015-01-02 17:24:34 -0500

Check fail_severity_to_confirm earlier in the casting process.
Before asking for a target, and most importantly only for cast_a_spell,
not in _do_cast or your_spells, which are used for evocations and other
effects.

--------------------------------------------------------------------------------
a68263cc6c | Neil Moore | 2015-01-02 17:12:17 -0500

Fix an incorrect options_guide TOC entry

--------------------------------------------------------------------------------
982757bece | Neil Moore | 2015-01-02 17:12:16 -0500

Document fail_severity_to_confirm.

--------------------------------------------------------------------------------
5649082020 | Sandman25 | 2015-01-02 17:11:25 -0500

New option fail_severity_to_confirm
Default value is
    fail_severity_to_confirm=3
It means user will have to confirm casting a spell with corresponding
failure severity or higher (3 - displayed in red in spells screen, 2 -
light red, 1 - yellow). Other possible values are 0 and -1 (no
confirmation in both cases).

Reasoning: I casted a red severity level spell due to Sap Magic in Pan,
it is not very convenient to check failure rate before every cast.  Also
protects from accidental casting of a spell with 100% failure or not
paying enough attention to draining.

Tested without fail_severity_to_confirm in init.txt, with value 3 and
red/lightred spell, with value -1 and red spell, with value 2 and
yellow/lightred/red spell.

--------------------------------------------------------------------------------
5ce0ac0473 | Nicholas Feinberg | 2015-01-02 13:50:01 -0800

Add Eustachio weapon offsets

--------------------------------------------------------------------------------
5fdf677f23 | Neil Moore | 2015-01-02 16:12:21 -0500

Don't randomise Arena explosion ballisto attitudes (#3846)
This reverts (in a sense) commit 2bba6d94b2dea89a950075c378956259b3a9aa7c.

--------------------------------------------------------------------------------
d3c2987932 | John McCartney | 2015-01-02 12:06:08 -0800

Brightened Hell Sentinel, new tiles for Edmund, Eustachio, and Terence.
Eustachio still needs offsets for equipped weapons.

--------------------------------------------------------------------------------
08563ca96d | Jesse Luehrs | 2015-01-02 02:54:07 -0500

yellow wasp -> wasp, red wasp -> hornet

--------------------------------------------------------------------------------
3fc247e238 | Nicholas Feinberg | 2015-01-01 21:05:16 -0800

Don't claim Petrify stops flight
Since it doesn't.

--------------------------------------------------------------------------------
fe061fe2bf | Nicholas Feinberg | 2015-01-01 20:22:09 -0800

Tweak xv cloud description format

--------------------------------------------------------------------------------
214a233b95 | Nicholas Feinberg | 2015-01-01 18:43:07 -0800

Mark un-id'd staffs blue by default (XuaXua)

--------------------------------------------------------------------------------
53c7d0bcb1 | Jesse Luehrs | 2015-01-01 14:18:16 -0500

oriflamme -> portcullis
an oriflamme is a flag, it doesn't make any sense for it to be making
noise or being "lowered almost to the ground"

--------------------------------------------------------------------------------
bd92a9a2b7 | Neil Moore | 2015-01-01 14:00:50 -0500

Don't crash on item_slot when Ash IDs a floor item.

--------------------------------------------------------------------------------
048a9e8318 | Nicholas Feinberg | 2015-01-01 10:31:55 -0800

Fix a scribal error (IOOD description)
Try to make it clearer that it's a "monster vs player"
distinction.

(...how does a scribal error work when the spell is gifted to you
directly by Vehumet, anyway...?)

--------------------------------------------------------------------------------
9823987909 | Neil Moore | 2015-01-01 13:22:47 -0500

Don't leak hexiness of /RE effects (Brannock)

--------------------------------------------------------------------------------
f41dd15692 | Nicholas Feinberg | 2015-01-01 10:03:26 -0800

Display /disint's success chance (Davzz)

--------------------------------------------------------------------------------
88d68c2483 | Neil Moore | 2015-01-01 12:23:25 -0500

Don't let monsters try SW on a bad weapon, either.

--------------------------------------------------------------------------------
ddce3d5e52 | Neil Moore | 2015-01-01 12:15:35 -0500

Don't let unarmed monsters try to cast Spectral Weapon.
And don't give it to player ghosts/illusions at all, since they don't
carry weapons.

--------------------------------------------------------------------------------
6d2551d67a | Chris Campbell | 2015-01-01 03:19:56 +0000

Remove AC reduction for statue form Gargoyles
Casting statue form is still likely to reduce Gr AC overall (even before
factoring in melding of armour) and still needs further adjustment, there seems
to be no possible reason for this extra -4 AC.

--------------------------------------------------------------------------------
817739ffef | Chris Campbell | 2015-01-01 03:19:56 +0000

Reduce Hydra form HP bonus and healing from kills
To 30% HP instead of 50%, and the healing multiplier on monster HD to 3/4 down
from 3/2 (to make it less significant than Makhleb healing, but still
noticeable).

--------------------------------------------------------------------------------
b03f90ca42 | Chris Campbell | 2015-01-01 03:19:55 +0000

Adjust Hydra Form description
There's no real need to justify hydra form not getting healing from having
heads chopped off, since it's very unlike monster hydras in a lot of ways.

--------------------------------------------------------------------------------
c1648d5b2c | Steve Melenchuk | 2014-12-31 17:21:55 -0700

De-decorate Antaeus and his pets, too.
This reverts commit 5032008878159b448e1fe0cd4fda66b54de6f28f.

--------------------------------------------------------------------------------
6e0f51b8ed | Steve Melenchuk | 2014-12-31 17:17:13 -0700

Take down the decorations in Cocytus.
This reverts commit b88e9a2393e7a19e55228ba4c8f6b5375b48c5cf.
This reverts commit 9854cb95dbc74d3e45ca5e666c316a95739b2f2b.
This reverts commit 10549abbe07046baffdf13252838a52819817a24.
This reverts commit 377cd6f991b434bceb883ff085937ac8f7b8f20d.

--------------------------------------------------------------------------------
1f4d23a74d | Nicholas Feinberg | 2014-12-31 15:52:25 -0800

Tweak flame/frost ego descriptions

--------------------------------------------------------------------------------
71b9fc60e9 | Nicholas Feinberg | 2014-12-31 14:01:15 -0800

Tweak a joke

--------------------------------------------------------------------------------
5fec57cd72 | Nicholas Feinberg | 2014-12-31 13:55:37 -0800

Clarify cloud beam-blocking behaviour

--------------------------------------------------------------------------------
e993766a27 | Nicholas Feinberg | 2014-12-31 13:36:28 -0800

Make _describe_spell_item() safer to call (|amethyst)

--------------------------------------------------------------------------------
839bc1a10d | Nicholas Feinberg | 2014-12-31 13:23:23 -0800

Don't colour ?/I books/rod spells in the main menu
This might always be the right behaviour for ?/I; I'm undecided.

--------------------------------------------------------------------------------
55bb00f021 | Nicholas Feinberg | 2014-12-31 13:20:33 -0800

Support book/rod interaction in ?/S

--------------------------------------------------------------------------------
436e17f953 | Nicholas Feinberg | 2014-12-31 12:48:04 -0800

Randomize ?/F and ?/G tiles (Grunt)

--------------------------------------------------------------------------------
1ef29bc6c0 | Nicholas Feinberg | 2014-12-31 12:27:49 -0800

Changelog through 0.16-a0-3445-g167ea73

--------------------------------------------------------------------------------
167ea732c9 | Nicholas Feinberg | 2014-12-31 12:11:15 -0800

Revert "Move (r)ead checks back again"
And mark scrolls (& tomes of destruction) as useless instead.

This reverts commit 1cca78b6b3eb53a7fedab1be57a18647ba310397.

--------------------------------------------------------------------------------
2b21344661 | Nicholas Feinberg | 2014-12-31 12:11:15 -0800

Display success chance on Polymorph (9373)
Also, Porkalator.

--------------------------------------------------------------------------------
9e0b2f6173 | elliptic | 2014-12-31 14:34:08 -0500

Reduce cleave attack damage: 75% -> 70%.
As compensation for cleave always hitting all the monsters around you now.
This is pre-AC damage, so the effect on actual damage is a bit greater
against monsters with AC.

--------------------------------------------------------------------------------
36e6fadf25 | Neil Moore | 2014-12-31 14:13:13 -0500

Vampiric quotes (Ramc, #9323)

--------------------------------------------------------------------------------
c76b6de85b | Neil Moore | 2014-12-31 13:39:03 -0500

Don't trap people in branch-end minmay_lindwurm_lava (#9295)

--------------------------------------------------------------------------------
c193db9f45 | Neil Moore | 2014-12-31 13:07:14 -0500

Show holiness-based resists in ?/m (#9298)

--------------------------------------------------------------------------------
434359aaf0 | Neil Moore | 2014-12-31 12:19:52 -0500

Really make existing vectors 16-bit (#9373)
Saves that existed before the really-16-bit fix would have 255 rather than
65535 as the max size of most vectors.

--------------------------------------------------------------------------------
65679060d8 | Nicholas Feinberg | 2014-12-31 09:14:17 -0800

Don't let tentacles trigger shadow traps (9372)

--------------------------------------------------------------------------------
316b84dad1 | Nicholas Feinberg | 2014-12-31 09:08:48 -0800

Deduplicate cloud descriptions (wheals)

--------------------------------------------------------------------------------
261fff45e9 | Nicholas Feinberg | 2014-12-31 09:06:53 -0800

Remove a mystery number (gammafunk)
Debugging code accidentally left in.

--------------------------------------------------------------------------------
7c2a80cb56 | Neil Moore | 2014-12-31 05:03:12 -0500

Show quote toggle message in feature xv again.
It was broken by c5cb3ca: we were prompting for a key before displaying
the message.

Maybe we should skip printing the prompt altogether if keyin was
provided?

--------------------------------------------------------------------------------
75dfdf4884 | Neil Moore | 2014-12-31 04:33:10 -0500

List clouds in feature xv (PF)
It seems to fit on one screen even with very long feature and cloud
descriptions (Zot trap + spreading flame).

We don't use the verbose name here because that is hard to do grammar
with, since it might or might not be plural ("There is roaring flames
here.").

--------------------------------------------------------------------------------
4d3b33059d | Nicholas Feinberg | 2014-12-31 00:34:20 -0800

Add tiles to ?/L

--------------------------------------------------------------------------------
d74a7e6873 | Nicholas Feinberg | 2014-12-31 00:34:20 -0800

Add ?/L colours

--------------------------------------------------------------------------------
84bf7ad260 | Nicholas Feinberg | 2014-12-31 00:34:20 -0800

Mention cloud opacity

--------------------------------------------------------------------------------
852f3c9174 | Nicholas Feinberg | 2014-12-31 00:34:20 -0800

Cloud descriptions

--------------------------------------------------------------------------------
cf96cfc5c6 | Nicholas Feinberg | 2014-12-31 00:34:20 -0800

Basic ?/L functionality

--------------------------------------------------------------------------------
fec06700d1 | Neil Moore | 2014-12-31 03:01:07 -0500

Improve grammar of several messages for the less-handed (#9371)
Your paw feels slithery!
The wandering mushroom's body twitches.

--------------------------------------------------------------------------------
87c5d07307 | Neil Moore | 2014-12-31 03:00:00 -0500

Make hands_act handle punctuation-only objects correctly.
It was inserting a space, such as in "Your claws glow .".

Also, rename the "subject" parameter to "object" and tweak the docs.

--------------------------------------------------------------------------------
87ed8b2945 | Nicholas Feinberg | 2014-12-30 22:49:28 -0800

Display resist chance for Sentinel's Mark (Basil)
Power is increased from 125 to 128, sorry. Not worth
special-casing.

--------------------------------------------------------------------------------
b4a0a08019 | Nicholas Feinberg | 2014-12-30 18:44:41 -0800

Add ?/ to the local tiles command bar

--------------------------------------------------------------------------------
eada721357 | Nicholas Feinberg | 2014-12-30 18:44:40 -0800

Tweak local tiles command bar
Remove autofight (completely useless there, & displayed the wrong
hotkey for some reason?), and reorder the other items in a way
that makes more sense to me.

--------------------------------------------------------------------------------
a13a7a384e | Chris Campbell | 2014-12-31 02:05:04 +0000

Fix pronouns for Ru Apocalypse

--------------------------------------------------------------------------------
bea8b92276 | Neil Moore | 2014-12-30 18:34:20 -0500

Comment a fall-through (ontoclasm)

--------------------------------------------------------------------------------
06d136634c | Nicholas Feinberg | 2014-12-30 15:33:59 -0800

Add tiles to ?/K

--------------------------------------------------------------------------------
b95a3aaa8a | Nicholas Feinberg | 2014-12-30 10:48:13 -0800

Add tiles for ?/G
Would be nice to support random Xom/Jiyva altar tiles...

--------------------------------------------------------------------------------
23e3f86bba | Nicholas Feinberg | 2014-12-30 10:30:34 -0800

Add tiles to ?/F
Hopefully this doesn't crash the game for some weird feature.

--------------------------------------------------------------------------------
08adb8f527 | Nicholas Feinberg | 2014-12-30 10:15:00 -0800

Decrease the number of early traps

--------------------------------------------------------------------------------
d59ef35f63 | Nicholas Feinberg | 2014-12-30 10:11:42 -0800

Improve trap type generation (|amethyst)

--------------------------------------------------------------------------------
c389783348 | Nicholas Feinberg | 2014-12-30 10:03:44 -0800

Don't let shadow trap summons follow between levels (celem)

--------------------------------------------------------------------------------
a6bbd2f04b | Nicholas Feinberg | 2014-12-30 10:00:29 -0800

Remove d:1 and d:2 shadow traps
Mainly because of bats.

--------------------------------------------------------------------------------
7355a4bed5 | Nicholas Feinberg | 2014-12-30 09:55:10 -0800

Utterly destroy _append_books()
?/S now uses the same code as all other spell descriptions.

--------------------------------------------------------------------------------
25bb7f8642 | Nicholas Feinberg | 2014-12-30 09:38:10 -0800

Don't use malloc'd char* for fail rates
[09:34]	geekosaur	malloch, an ancient and terrible god...

--------------------------------------------------------------------------------
ea6b1737c6 | Chris Campbell | 2014-12-30 17:27:48 +0000

Add a note when drawing the Focus card (#8940)

--------------------------------------------------------------------------------
5882e2b95c | Chris Campbell | 2014-12-30 17:27:48 +0000

Improve Lugonu wrath description
To mention that you can't rejoin while Lugonu wrath is still active.

--------------------------------------------------------------------------------
473ecc3498 | Chris Campbell | 2014-12-30 17:27:47 +0000

Adjust some Ru messaging (#9348)

--------------------------------------------------------------------------------
9e923a7cf0 | Nicholas Feinberg | 2014-12-30 09:02:19 -0800

_get_spell_description() tweaks
Pull out _player_spell_desc(); don't list summon limits for
monster spells (e.g. SoH's Summon Dragon); don't list player stats
when the player doesn't exist (this doesn't happen quite yet)

--------------------------------------------------------------------------------
ee23a5f554 | Nicholas Feinberg | 2014-12-30 08:46:27 -0800

Remove Dith's fire suppression
Not as necessary now that all wands ID on pickup, and didn't seem
to be working anyway? (If someone can figure out how to get it
working & adds an appropriate message when it's triggered, I
wouldn't mind it returning to make use of e.g. Disc of Storms less
suicidal...)

This reverts commit 7e837e58.

--------------------------------------------------------------------------------
08d921687a | Nicholas Feinberg | 2014-12-30 08:36:25 -0800

Improve forest fire naming (minmay)

--------------------------------------------------------------------------------
a4773f3d30 | Nicholas Feinberg | 2014-12-30 08:34:32 -0800

Don't count steam as fiery for Dith (9073)
Since that's both counterintuitive and leads to unfun gameplay
(aiming your steam breath such that the 'steam ball' doesn't hit
anything...)

--------------------------------------------------------------------------------
19dd89ad16 | Neil Moore | 2014-12-30 02:48:04 -0500

Handle plurals in more monster item poof messages.

--------------------------------------------------------------------------------
18d6519c0f | Neil Moore | 2014-12-30 02:43:58 -0500

Don't crash when a summon kills itself with ammo.
The poof message for the ammo might be wrong, though.

--------------------------------------------------------------------------------
8a909d726d | Neil Moore | 2014-12-30 01:24:59 -0500

Simplify.
The old way only worked because of an obscure rule that, when a const
lvalue reference is initialised with an rvalue, the lifetime of the
rvalue is extended.  It would have broken if someone made the reference
non-const.

--------------------------------------------------------------------------------
a4e65a52e5 | Neil Moore | 2014-12-30 01:24:54 -0500

Treat a player-swapped monster as though it moved (doh)
apply_location_effects takes the old, not the new, position.

--------------------------------------------------------------------------------
a77004bdde | Nicholas Feinberg | 2014-12-29 21:58:16 -0800

Don't allocate ?/S items in mitm, either

--------------------------------------------------------------------------------
6751b115de | Neil Moore | 2014-12-30 00:52:11 -0500

Don't allocate ?/i temp items from mitm.

--------------------------------------------------------------------------------
c2016d94d0 | Neil Moore | 2014-12-30 00:49:21 -0500

Don't name a variable after a type.

--------------------------------------------------------------------------------
d68e9a5759 | Nicholas Feinberg | 2014-12-29 21:43:20 -0800

Gut & disperse ?/ _do_describe()

--------------------------------------------------------------------------------
5c6861583d | Neil Moore | 2014-12-30 00:27:27 -0500

Include race AC/EV for job monsters in ?/m
For now ?/m doesn't specify a race so we use the genus (plain draconian or
demonspawn).

--------------------------------------------------------------------------------
2beea2b582 | Neil Moore | 2014-12-30 00:16:17 -0500

Simplify.

--------------------------------------------------------------------------------
5456d78341 | Neil Moore | 2014-12-30 00:02:57 -0500

Handle ?/mwarmonger and friends (PF)

--------------------------------------------------------------------------------
83d1dde215 | Nicholas Feinberg | 2014-12-29 20:00:18 -0800

Replace more cyan pebbles with lightgray
Two of these were overlooked, the others just have no good reason
to be cyan.

--------------------------------------------------------------------------------
26d7af2021 | Neil Moore | 2014-12-29 22:50:44 -0500

Don't strip vector sizes down to (char) in saves (#9367)
Someone managed to get a stack of 179 chunks, but a stray (char) was
turning that into -77, which was stored as (uint64_t)-77 and then
unmarshalled into a vec_size (= uint16_t), appearing to have size 65459.

For new saves, marshall the size correctly.  To handle old saves, convert
the uint64_t to an unsigned char before converting it to a vec_size
(uint16_t): that loses sizes > 255, but those wouldn't have been stored
correctly anyway.

--------------------------------------------------------------------------------
dba81cc73d | ontoclasm | 2014-12-29 21:23:24 -0600

New pebble wall tiles
This includes the variants used in Lab, Lair, and Orc, but doesn't touch
Spider or Slime yet.

--------------------------------------------------------------------------------
897d14723e | theTower | 2014-12-29 19:14:28 -0500

Briefly futz around with Lair endings
 * Fix up a previous half-done dog/bear end edit, bringing back raiju
   to the vault and randomly scattering in more hell hounds / raiju.
   Very lightly and randomly up'd the loot a small bit, too.
 * Only put one wolf spider in the fast poisonous monsters end,
   since the boss bundle is mean enough as is. The slot joins three
   others in being a black mamba, a spiny frog, a yellow wasp, or nothing.
 * Tweak and add in some comments.

--------------------------------------------------------------------------------
2b44314987 | Neil Moore | 2014-12-29 18:05:48 -0500

Fix the enum postincrements, and document (doh)
Not sure what I was thinking...

--------------------------------------------------------------------------------
45633dfb8b | Neil Moore | 2014-12-29 17:51:31 -0500

Allow incrementing/decrementing skill_type.
Thereby simplifying several for loops.

--------------------------------------------------------------------------------
a23249954b | Neil Moore | 2014-12-29 17:37:41 -0500

Macroify some enum increment overloads.

--------------------------------------------------------------------------------
ab0613d6d4 | Brendan Hickey | 2014-12-29 22:15:04 +0000

Insult Fixup
Correct some spelling errors in insults. Minor addition to minotaur slurs.

--------------------------------------------------------------------------------
e307051fa1 | Chris Campbell | 2014-12-29 21:45:55 +0000

Revert more of Christmas
This reverts commit 902f3e98ec3af1bc6ddebc8bdbf844603c7f45bd.

--------------------------------------------------------------------------------
93da83e07a | Chris Campbell | 2014-12-29 21:33:16 +0000

Reduce the MP cost of wand MP mutation

--------------------------------------------------------------------------------
3bd52fa8d1 | Chris Campbell | 2014-12-29 21:33:16 +0000

Remove/adjust some ghost speech lines

--------------------------------------------------------------------------------
5b57c6fe2c | Chris Campbell | 2014-12-29 21:33:16 +0000

Don't place the player in the centre of Zig floors
In theory this seems like a good way to make later Zigs more lethal, but in
practice placing the player in the centre of Zigs just makes the already
predominant methods of clearing Zigs better or just as good (Tornado/Shatter
with Makhleb, etc) while making other techniques even weaker than before, as
well as reducing the distance from the entry point to the stairs.

This reverts commit 77f51cb4a003ccbc8d186bd7b91638c35c47efcc.

--------------------------------------------------------------------------------
a8a79bde6a | Brendan Hickey | 2014-12-29 21:15:44 +0000

Reform-reform: Partially Spoil Christmas
Ufetubus Reform (9922265674c6386a33bf5bcb63feb149e3cbe57a)
Deep Elf Summoner Reform (738a44cbbb27c96a7e601f5aa1e928efbfa6ef42)
Reform Elf Tiles (b0422a19033894406578d3901511a134ef63873c)
Further Song of Slaying Reform (e2cd79ceea719c570ca855b9e685f78e9dec1d75)
Reform Song of Slaying (82fa208686f632a98f2c9ea5135f957be4be2a59)

--------------------------------------------------------------------------------
7aa341070f | Nicholas Feinberg | 2014-12-29 12:52:33 -0800

Staticify

--------------------------------------------------------------------------------
c651e66221 | Nicholas Feinberg | 2014-12-29 12:50:45 -0800

Don't list Stabbing or Traps in ?/K
And prune out some dead code & a false comment.

--------------------------------------------------------------------------------
cab466b1a1 | Nicholas Feinberg | 2014-12-29 12:44:45 -0800

Turn ?/K into a flat list
Since we can fit them all on one page anyway.

Also prevents "bat" and "rat" from showing up.

--------------------------------------------------------------------------------
bd6da05d72 | Nicholas Feinberg | 2014-12-29 11:35:32 -0800

Support null filter_forbid (|amethyst)

--------------------------------------------------------------------------------
1019029deb | Nicholas Feinberg | 2014-12-29 11:32:41 -0800

Add tiles to ?/A

--------------------------------------------------------------------------------
aa3a804cff | Nicholas Feinberg | 2014-12-29 11:00:27 -0800

Partially deughify some ?/ code
Still would need more work to support sorting things other than
monsters, but one step at a time.

--------------------------------------------------------------------------------
7a4bfe53eb | Nicholas Feinberg | 2014-12-29 09:10:13 -0800

Move lookup_type into _do_description()
And separate out LookupType's declaration from its definition, &c

--------------------------------------------------------------------------------
3bb87fe8e0 | Nicholas Feinberg | 2014-12-29 09:10:12 -0800

Finish gutting ?/ _find_description()

--------------------------------------------------------------------------------
97ed09f824 | Nicholas Feinberg | 2014-12-29 09:10:12 -0800

Add LTYPF_SUPPORT_TILES
And prune a variable.

--------------------------------------------------------------------------------
8205bde013 | Nicholas Feinberg | 2014-12-29 09:10:12 -0800

Pull more ?/ stuff into data
in a sense...

--------------------------------------------------------------------------------
cef521f7ea | Nicholas Feinberg | 2014-12-29 09:10:12 -0800

Finish renaming a variable

--------------------------------------------------------------------------------
7a87f40ced | Neil Moore | 2014-12-29 11:40:05 -0500

Don't warn about an unused static when building without clua.

--------------------------------------------------------------------------------
3e5b539f23 | Nicholas Feinberg | 2014-12-28 20:42:28 -0800

Simplify _find_description()
Replace an inout with an out (I still don't like it!), and
streamline some string generation.

--------------------------------------------------------------------------------
75ac7df9bc | Neil Moore | 2014-12-28 23:18:18 -0500

Simplify a lambda.

--------------------------------------------------------------------------------
79d486cd99 | Neil Moore | 2014-12-28 23:17:01 -0500

Use a range-based for loop.
And avoid a signedness warning.

--------------------------------------------------------------------------------
e4388ea2bd | Nicholas Feinberg | 2014-12-28 20:09:52 -0800

Fix non-tiles compilation
And a few other issues.

--------------------------------------------------------------------------------
cc05f61d51 | Nicholas Feinberg | 2014-12-28 20:03:31 -0800

Pull exact match checking out of _find_description()

--------------------------------------------------------------------------------
a3dbfecb66 | Nicholas Feinberg | 2014-12-28 19:38:04 -0800

Pull a function out of ?/ _find_description()

--------------------------------------------------------------------------------
2b5c4ee292 | Nicholas Feinberg | 2014-12-28 18:16:41 -0800

Pull some _find_description() functionality into data

--------------------------------------------------------------------------------
54d7fa324f | Nicholas Feinberg | 2014-12-28 18:16:41 -0800

Cleanup and document a little ?/ code

--------------------------------------------------------------------------------
5936984178 | Nicholas Feinberg | 2014-12-28 18:16:41 -0800

Move ?/ into new "lookup_help.cc"

--------------------------------------------------------------------------------
f119fa94da | Nicholas Feinberg | 2014-12-28 18:16:41 -0800

Pull = into a new 'adjust.cc'.

--------------------------------------------------------------------------------
d5eddc730a | Nicholas Feinberg | 2014-12-28 18:16:41 -0800

Update the FAQ
Apparently this exists!

--------------------------------------------------------------------------------
515fee9daa | Neil Moore | 2014-12-28 21:15:40 -0500

Don't try to fire a tracer for Fulminant Prism.
It doesn't work unless the caster and target and chosen position are lined
up just right, since the tracer doesn't explode.

There does need to be some kind of check to avoid hurting allies (and
oneself), but probably _mons_prism_pos would be the place to do that.

--------------------------------------------------------------------------------
41c54a6418 | Neil Moore | 2014-12-28 21:12:30 -0500

Let monsters cast prisms non-adjacent to their foe.

--------------------------------------------------------------------------------
5da650a7fc | Brendan Hickey | 2014-12-29 01:38:15 +0000

Delete crawlcode

--------------------------------------------------------------------------------
c425702874 | Neil Moore | 2014-12-28 20:22:13 -0500

Fix a probable precedence error.
bh couldn't remember for sure, but it is very likely that the 3 here was
supposed to be a minimum.  But & has low precedence, close to that of &&

--------------------------------------------------------------------------------
045d5c7a5d | Nicholas Feinberg | 2014-12-28 13:45:09 -0800

Remove a blinding book tile
Literally painful to look at.

--------------------------------------------------------------------------------
663d32d934 | Neil Moore | 2014-12-28 16:26:33 -0500

Don't place clouds when relocating monsters after Chei abils.
Also avoid teleport messages if the blink failed.

The blink part is a hack:
<PleasingFungus> probably the Right Solution is to have some kind of
  "move monster to nearby square" function that both chei & blink_to()
  call

--------------------------------------------------------------------------------
89a97a114b | Neil Moore | 2014-12-28 16:00:52 -0500

Fix most -Wparentheses warnings.
This fixes all of the -Wparentheses warnings except "suggest parentheses
around && within ||"; in my opinion, fixing those would make our logical
expressions harder to read, not easier, because of all the extra
parentheses.

--------------------------------------------------------------------------------
154ae9c47e | Nicholas Feinberg | 2014-12-28 12:51:31 -0800

Remove a fixed FIXME

--------------------------------------------------------------------------------
e113053e94 | Nicholas Feinberg | 2014-12-28 12:45:53 -0800

Tweak tutorials 1 and 2

--------------------------------------------------------------------------------
ad2e6940c1 | Neil Moore | 2014-12-28 15:11:00 -0500

Fix a sign warning.

--------------------------------------------------------------------------------
1a03913e53 | Nicholas Feinberg | 2014-12-28 12:09:52 -0800

Don't turn all items into books

--------------------------------------------------------------------------------
99b14d2fec | Nicholas Feinberg | 2014-12-28 11:24:27 -0800

Erp

--------------------------------------------------------------------------------
875359b4f0 | Nicholas Feinberg | 2014-12-28 11:22:52 -0800

Fix book naming
This is very silly...

--------------------------------------------------------------------------------
11aa4752bd | Neil Moore | 2014-12-28 14:17:28 -0500

Brace

--------------------------------------------------------------------------------
c12ffb3a5f | Neil Moore | 2014-12-28 14:17:28 -0500

Add some XXX-rated comments

--------------------------------------------------------------------------------
6fc6e44bd6 | Neil Moore | 2014-12-28 14:10:13 -0500

Don't crash when swapping mushrooms onto toadstools on traps.
Also, don't double-trigger traps when you and a toadstool swap with a
mushroom onto the trap.

These are the two cases mentioned in the previous commit.

--------------------------------------------------------------------------------
23ba729627 | Neil Moore | 2014-12-28 13:57:21 -0500

Don't crash when swapping an ally onto a shadow/spider trap.
They would trigger the trap before the player is moved into place,
potentially summoning something on top of the player's location.  See
for example:
  http://crawl.akrasiac.org/rawdata/FACE/crash-FACE-20141228-180029.txt

There is still a crash here, which is more difficult to solve.  If you
were standing on a toadstool (atop the trap) and swap with a wandering
mushroom, the mushroom will again trigger the trap before moving the
player.

Related, if you are atop a toadstool and the mushroom is on a trap,
then swapping with the mushroom triggers the trap twice: once for
the toadstool and once for you.

--------------------------------------------------------------------------------
f7b49c0b54 | Corin Buchanan-Howland | 2014-12-28 10:39:30 -0500

Improve loot for one stingy Lair end vault (crate)

--------------------------------------------------------------------------------
177b2c7a4b | Corin Buchanan-Howland | 2014-12-28 09:33:11 -0500

Improve Ru retaliation messages.

--------------------------------------------------------------------------------
737b7ca645 | Corin Buchanan-Howland | 2014-12-28 09:12:25 -0500

Switch Ru's muting effects to antimagic
Mute was being applied to creatures that can't be muted (demons, dragons)
and also mute just didn't limit enough cases. This switches the effect
to antimagic, adjusts the messages, applies proper checks for valid
targets, and greatly increases the duration because antimagic isn't
absolute.

--------------------------------------------------------------------------------
714714c138 | Nicholas Feinberg | 2014-12-27 20:54:24 -0800

Remove an obsolete function

--------------------------------------------------------------------------------
ba80d0e555 | Nicholas Feinberg | 2014-12-27 20:49:42 -0800

Display xp evoker discharged sprites again

--------------------------------------------------------------------------------
b61f60af00 | Nicholas Feinberg | 2014-12-27 20:46:53 -0800

Improve elemental evoker inert text

--------------------------------------------------------------------------------
8eee04aaec | Steve Melenchuk | 2014-12-27 20:40:52 -0700

Properly initialise shock serpent discharge effect tile.
More correctly, tell the beam code to init it for us.

--------------------------------------------------------------------------------
5a2be74c8f | Steve Melenchuk | 2014-12-27 20:21:31 -0700

Fix compilation.
GGGRRRUUUNNNTTT

--------------------------------------------------------------------------------
0de1380aba | Steve Melenchuk | 2014-12-27 20:19:54 -0700

Don't draw shock serpent discharges on solid features.
It was causing odd visual glitches.

--------------------------------------------------------------------------------
62c2927876 | Nicholas Feinberg | 2014-12-27 18:12:54 -0800

Add Shadow Creature traps
Summon a few creatures from the current level whenever the player
or a monster in LOS steps on the trap, roughly as a casting of
Shadow Creatures. The monsters are always hostile to the player.

The number of monsters spawned increases with depth.

--------------------------------------------------------------------------------
c2320d776a | Nicholas Feinberg | 2014-12-27 17:09:20 -0800

Put !ambrosia on DD autopickup (Arrhythmia)
Since it's very very good for them. (Possibly too good...!?)

--------------------------------------------------------------------------------
2931290042 | Brendan Hickey | 2014-12-27 16:31:27 +0000

Fixup stairs in Chokoban

--------------------------------------------------------------------------------
1e0feaa338 | ontoclasm | 2014-12-26 23:23:52 -0600

Remove some errant rims
Someday, somehow, we shall reach that golden land wherein we never have to
fix %rim lines ever again.

--------------------------------------------------------------------------------
e0079ed67c | Nicholas Feinberg | 2014-12-26 21:10:16 -0800

Tweak Preservers further
Better Minor Healing, worse armour.

--------------------------------------------------------------------------------
bb58c38d7a | Nicholas Feinberg | 2014-12-26 21:02:27 -0800

Trade Ironheart Preserver defenses for HP
Having better defenses than their pals (or even defenses that
were as good!) meant that the player was encouraged to prioritize
the pals first, generally killing the preserver indirectly
(through the injury bond) without ever bothering to interact with
them. A monster that the player shouldn't bother to attack is a
terrible, terrible design.

More hp means that they can actually soak up the damage the player
deals to their pals, and worse defenses mean that you can do more
HP damage by attacking them than their allies.

--------------------------------------------------------------------------------
b44eaf113f | Nicholas Feinberg | 2014-12-26 18:17:27 -0800

Fix invisible goblin tossing bugs

--------------------------------------------------------------------------------
64f94fbda6 | Neil Moore | 2014-12-26 16:19:29 -0500

Don't "upgrade" white imps to shadow/iron in Call Imp
Old frequencies at low (0-46) and high (92, near the cap of 100)
spell power:

          low    high
Crimson  20/36  10/36
White    10/36   5/36
Shadow    4/36  14/36
Iron      2/36   7/36

New frequencies at the same power levels:

          low    high
Crimson  20/36  10/36
White    10/36  10/36
Shadow    4/36 ~11/36 (actually 8/27)
Iron      2/36  ~5/36 (actually 4/27)

The breakpoint at 47 power (when shadow/iron imps start to become more
common) is still there.

--------------------------------------------------------------------------------
17cee38eb7 | Steve Melenchuk | 2014-12-26 11:25:39 -0700

Don't overwrite evoker_debt on partial pickup of a stack (|amethyst).
Instant recharging of evokers ahoy...

--------------------------------------------------------------------------------
a13979c596 | Steve Melenchuk | 2014-12-26 11:19:03 -0700

Merge dropped XP evokers into floor stacks properly (|amethyst).
Not handling this properly was causing the number of inert evokers
dropped into a stack to balloon unexpectedly.

--------------------------------------------------------------------------------
f452630f25 | Steve Melenchuk | 2014-12-26 11:01:12 -0700

Give item_info evoker_debt as number of inerts in a stack (|amethyst).
Since the change in the original commit actually removed this info
entirely, unlike what was intended.

--------------------------------------------------------------------------------
37c25f5c95 | Steve Melenchuk | 2014-12-26 10:34:18 -0700

Let XP-charged evokers stack in inventory.
When dropping an evoker from a stack, you will always drop the evoker that
will take the longest to charge from the stack.

Thanks to PleasingFungus for suggesting the general approach to take in
implementing this, and for some commentary and clarification that has
been squashed into this commit.

--------------------------------------------------------------------------------
a5ba31bd07 | Neil Moore | 2014-12-26 02:16:14 -0500

Not so static (PleasingFungus, doh)
The contents change between calls of course.

--------------------------------------------------------------------------------
8326cf2367 | Neil Moore | 2014-12-26 01:56:02 -0500

Turn a vector into a static array.

--------------------------------------------------------------------------------
e1b7da2d26 | Neil Moore | 2014-12-26 01:56:02 -0500

Add a monster gen flag MG_FORBID_BANDS to override MG_PERMIT_BANDS.
Because in some situations (place:foo for example) MG_PERMIT_BANDS may
be added even if we really want only one monster.

Currently unused.

--------------------------------------------------------------------------------
eb1eda5d4c | Nicholas Feinberg | 2014-12-25 22:06:27 -0800

Fix new trap weights
Copy-paste error.

--------------------------------------------------------------------------------
43078d266b | Neil Moore | 2014-12-26 00:44:44 -0500

Hush a warning.
I *hope* we don't get level 2e9 spells.

--------------------------------------------------------------------------------
bf50628e0e | Neil Moore | 2014-12-26 00:39:33 -0500

Assert that we don't infinitely recurse on bad unicode.

--------------------------------------------------------------------------------
628a0c2467 | Neil Moore | 2014-12-25 23:28:00 -0500

Fix an abyss test.
abyss_short_wait is supposed to not have monsters, and fails if any do
appear, with "A foo is nearby! xN Infinite lua loop detected, aborting."

For one, explicitly dismiss monsters on entering the abyss (rather than
just disabling spawns).  Also, just in case (for example, if we generate
a new abyss area that contains a vault), wait with . rather than 5 so we
will advance the turn counter regardless.

--------------------------------------------------------------------------------
7441663edb | Nicholas Feinberg | 2014-12-25 20:16:19 -0800

Replace a switch with an array lookup

--------------------------------------------------------------------------------
0a94b0e548 | Neil Moore | 2014-12-25 22:21:03 -0500

Spell for the Commonwealth.
<PleasingFungus> Aeon might at least sound cooler...?

--------------------------------------------------------------------------------
04b599c2a9 | Neil Moore | 2014-12-25 22:04:00 -0500

Avoid some closets in bailey_axe_4.
Make sure one of the three closets is connected to the rest of the level,
and put exits in the other two.

--------------------------------------------------------------------------------
32384ec1d8 | Nicholas Feinberg | 2014-12-25 17:02:47 -0800

Don't use Slime walls in Sewers
Not something we want people to get confused about!

--------------------------------------------------------------------------------
6b225fe793 | Nicholas Feinberg | 2014-12-25 16:51:11 -0800

Re-replace Maxwell's brand
Resistance -> rCorr+rElec, roughly paralleling its old brand.

{resistance} was essentially a placeholder after the removal of
{preservation}.

--------------------------------------------------------------------------------
116f5c4180 | Neil Moore | 2014-12-25 17:21:14 -0500

Don't bounds error on throwing some non-missiles (#9344)
Another crash with more stack trace is at:
    https://dobrazupa.org/morgue/nago/crash-nago-20141225-215909.txt

--------------------------------------------------------------------------------
5c05600c03 | Nicholas Feinberg | 2014-12-25 13:33:19 -0800

Turn feat_is_trap() into a feature flag

--------------------------------------------------------------------------------
aa8376bf88 | Nicholas Feinberg | 2014-12-25 12:20:23 -0800

Fix trap generation (wheals, |amethyst)
The other approach would cause early termination.

--------------------------------------------------------------------------------
556654e99e | Nicholas Feinberg | 2014-12-25 11:09:35 -0800

Rework trap generation
Instead of mostly generating mechanical traps & then squashing
them (except in Slime, which had more than ten times as many
traps as the rest of the game since it never generated mechanical
traps to begin with), just generate magical traps. Should make
traps actually appear in the game again outside Zot, which I think
is good for variety & excitement.

Trap numbers, ratios, etc have been adjusted.
Examples:
D:1:
	Old: 0.4 Tele, 0.35 Shaft
	New: 1.3 Tele, 0.7 Shaft
D:15/Lair:5/S:1:
	Old: 0.08 Zot, 0.05 Alarm, 0.39 Tele, 0.34 Shaft
	New: 0.07 Zot, 0.75 Alarm, 1.5 Tele, 0.75 Shaft
Zot:1
	Old: 2.01 Zot, 0.05 Alarm, 0.39 Tele, 0.34 Shaft
	New: 2.33 Zot, 0.42 Alarm, 0.85 Tele, 0.42 Shaft
This is partially as an experiment for compensating for monsters
setting off one-use tele traps before you ever see them.

--------------------------------------------------------------------------------
6b2d16898a | Neil Moore | 2014-12-25 00:10:26 -0500

Fix several uses of delayed_decay, and document (#9312)

--------------------------------------------------------------------------------
3c4fcab280 | Neil Moore | 2014-12-24 19:16:37 -0500

Really make never_decay chunks work.

--------------------------------------------------------------------------------
385fe1f9dd | Nicholas Feinberg | 2014-12-24 15:57:41 -0800

Make never_decay chunks work (|amethyst)

--------------------------------------------------------------------------------
e156c17a3a | Neil Moore | 2014-12-24 18:17:07 -0500

Don't crash on item_slot=!1
Also, add a comment and demorgan an expression.

This will cause conflicts with branch ability_slot; resolve them in
favour of that branch.

--------------------------------------------------------------------------------
0332368382 | Neil Moore | 2014-12-24 16:36:04 -0500

Treat keypad . as delete in SDL.
No other numpad key still cared about the numlock state.  And having
'.' on numpad isn't that helpful when KP_5 does that already.

The key is currently unbound.

--------------------------------------------------------------------------------
3bfa7172b8 | Neil Moore | 2014-12-24 16:36:04 -0500

Don't double numpad keys in SDL tiles.
We were getting both the keydown event for KP_2, and if numlock was
enabled a textinput event for "2".  Use a hack (stopping and restarting
text input---it works here) to suppress the textinput event when we
are already going to handle the keydown.

This likely screws up some input methods.

--------------------------------------------------------------------------------
a630d05405 | Brendan Hickey | 2014-12-24 15:23:52 -0500

Add more speech for Asterion
Most of these lines are inspired by The House of Asterion.
Sorry that this isn't a Christmas easter egg.

--------------------------------------------------------------------------------
64b26b4797 | Shmuale Mark | 2014-12-24 15:18:48 -0500

Prettify bolt_parent_init.

--------------------------------------------------------------------------------
06293650ff | Neil Moore | 2014-12-24 14:49:47 -0500

Don't trap people in a minifort (theTower, #9328)
The default-mini_float behaviour doesn't actually connect up the
exit point that was found: it just verifies that at least one such
point was connected.  Still, that would have been a veto, but
currently deep water counts for the has_exits check.

This commit doesn't change either of those things, but works around
them by adding an explicit exit to the vault with @.

--------------------------------------------------------------------------------
b88e9a2393 | Neil Moore | 2014-12-24 14:04:56 -0500

Make sure Santa gets mail forwarded from his old address.
Look for save chunks and bones under "Coc", not "Nor"; otherwise, if
a player saved in Coc and reloads for the holidays, they wind up in
a brand-new level, possibly embedded in rock or suspended over deep
water.

This change causes the same problem for people who saved in Nor, but
1. the end of the holidays will do that anyway; and 2. there are no
such saves on the servers at the moment.

--------------------------------------------------------------------------------
902f3e98ec | Brendan Hickey | 2014-12-24 13:51:46 -0500

Insult Reform

--------------------------------------------------------------------------------
9922265674 | Brendan Hickey | 2014-12-24 13:43:45 -0500

Ufetubus Reform
...but there are no penguins at the North Pole!?

--------------------------------------------------------------------------------
c3d51c1d25 | Neil Moore | 2014-12-24 13:06:52 -0500

Add a system include (geekosaur, #9363)

--------------------------------------------------------------------------------
9854cb95db | Steve Melenchuk | 2014-12-23 22:01:00 -0700

Redecorate ziggurats ever so slightly.

--------------------------------------------------------------------------------
901cdb0578 | Neil Moore | 2014-12-24 00:00:21 -0500

Fix an Android message, hang head in shame.

--------------------------------------------------------------------------------
10549abbe0 | Steve Melenchuk | 2014-12-23 21:58:53 -0700

Redecorate some tests, too (|amethyst).

--------------------------------------------------------------------------------
377cd6f991 | Steve Melenchuk | 2014-12-23 21:44:45 -0700

Redecorate Cocytus.

--------------------------------------------------------------------------------
af862a732f | Steve Melenchuk | 2014-12-23 21:34:34 -0700

Let deep elf fighters and knights join the reform party.

--------------------------------------------------------------------------------
5032008878 | Steve Melenchuk | 2014-12-23 21:34:34 -0700

Adjustments to Antaeus and Ice Fiend tiles (Ironfoot).
He also gets an entry in CREDITS.txt.

--------------------------------------------------------------------------------
738a44cbbb | Brendan Hickey | 2014-12-23 23:23:34 -0500

Deep Elf Summoner Reform
Twas the night before the night before Christmas,
when all through the house
not a creature was stirring, not even a tentacled monstrosity
The orb of Zot was hung between the Zot lungs with defiance and hate
In hopes that qw wouldn't be late;

Crazy Yiuf was nestled, snug in his bed
Sigmund was stalking, filling n00bs with dread
And Cerebov his robe and Lom Lobon in its wrath,
Had just settled scores over some player's bones.

--------------------------------------------------------------------------------
b0422a1903 | Brendan Hickey | 2014-12-23 23:16:23 -0500

Reform Elf Tiles
The old elf tiles were bland and tepid. They didn't reflect the place
of elves in the natural order of the dungeon. These tiles reform the
essence of what it means to be elfish. Lovingly handcrafted in small
batches, these little buddies protect the awesome Christmas presents
hidden in Elf:$.

--------------------------------------------------------------------------------
e2cd79ceea | Brendan Hickey | 2014-12-23 23:16:23 -0500

Further Song of Slaying Reform

--------------------------------------------------------------------------------
82fa208686 | Brendan Hickey | 2014-12-23 23:16:22 -0500

Reform Song of Slaying

--------------------------------------------------------------------------------
92b220c0ea | Nicholas Feinberg | 2014-12-23 19:48:55 -0800

Changelog through 0.16-a0-3280-g3a29b53

--------------------------------------------------------------------------------
3a29b53e7d | Neil Moore | 2014-12-23 15:39:19 -0500

Put more deep water in lemuel_reptile_caves.
The left lobe seemed crafted to require walking around the long way to get
to the loot, but the pool fixup usually opened up a more direct path.

Also make some of those optional walls turn into shallow/deep water
instead of floor.

--------------------------------------------------------------------------------
21cd28a111 | Neil Moore | 2014-12-23 14:05:44 -0500

Add some missing carriage returns.

--------------------------------------------------------------------------------
9978c48e3f | Neil Moore | 2014-12-23 14:05:44 -0500

Name timed_effects.cc correctly in the MSVC project.

--------------------------------------------------------------------------------
f14698bcd0 | Neil Moore | 2014-12-23 14:05:39 -0500

Don't disconnect lemuel_reptile_caves (#9304)
And tag it as transparent to make sure it doesn't happen again.

--------------------------------------------------------------------------------
8aa61a880a | Shmuale Mark | 2014-12-23 13:32:14 -0500

Rename effects.cc timed_effects.cc.

--------------------------------------------------------------------------------
aee117302f | Shmuale Mark | 2014-12-23 13:32:08 -0500

Disperse non-time-related functions from effects.cc.

--------------------------------------------------------------------------------
58db91e7af | Neil Moore | 2014-12-23 12:33:08 -0500

Warn about Sif Penance when destroying books (#9356)

--------------------------------------------------------------------------------
f45da45a53 | Neil Moore | 2014-12-23 12:25:23 -0500

Restore penance for destroying books under Sif (#9356)
Was unintentionally turned into mere piety loss in 0ff94898.

--------------------------------------------------------------------------------
d8bf8f737d | Neil Moore | 2014-12-23 11:46:47 -0500

Allow will-stab, etc. brands on backlit invis monsters (#9362)

--------------------------------------------------------------------------------
14c0dd2085 | Nicholas Feinberg | 2014-12-23 08:44:36 -0800

Don't shadow a parameter name

--------------------------------------------------------------------------------
1fdda5f1b6 | Nicholas Feinberg | 2014-12-23 08:40:45 -0800

Display resist chance in monster spell descriptions
For MR-resisted spells.

--------------------------------------------------------------------------------
d92e650438 | Nicholas Feinberg | 2014-12-23 08:40:45 -0800

Standardize on using ENCH_POW_FACTOR for monster hexes
And other improvements.

--------------------------------------------------------------------------------
fe492fec8b | Neil Moore | 2014-12-23 11:21:38 -0500

Unbrace.

--------------------------------------------------------------------------------
0afbb4f627 | Neil Moore | 2014-12-23 11:21:30 -0500

Show slot count in pickup/drop menus.
Suggested many times, most recently by EugeneJudo on Tavern.

--------------------------------------------------------------------------------
0e63e08d7d | Steve Melenchuk | 2014-12-22 23:35:35 -0700

Fix black suns having abnormally high AC/EV.
This should have been part of c7951680, but wasn't.

--------------------------------------------------------------------------------
401194c74f | Steve Melenchuk | 2014-12-22 23:03:52 -0700

Fix some spurious drain messaging (doy).
<doy> The bolt of negative energy hits you! You resist. You partially
      resist. You feel drained.

This removes the spurious "You resist." from that chain of messages.

--------------------------------------------------------------------------------
009bb2c74a | Steve Melenchuk | 2014-12-22 22:32:45 -0700

Step down scattershot pellet count at high power.
This halves the pellet count at 27 Evocations from 28 to 14; for
comparison at 13 Evocations it goes from 14 to 10, so mid-range power
should not be extremely different.

Because being able to one-shot Khufu with anything is absurd.

--------------------------------------------------------------------------------
90b909b79f | Steve Melenchuk | 2014-12-22 22:21:29 -0700

Really let all naga monsters spit poison.
I missed the most important one...

--------------------------------------------------------------------------------
7deee08392 | Steve Melenchuk | 2014-12-22 22:11:39 -0700

Let all naga monsters spit poison.
These guys were missed back when mon-spell-slots rolled out.

--------------------------------------------------------------------------------
33892799f9 | Steve Melenchuk | 2014-12-22 21:59:32 -0700

Grant the arc blade its intended discharge power.
It was supposed to give a static discharge effect that hit the target
monster as many times as Static Discharge would at the same spellpower;
instead it always generated exactly one discharge instead of multiple
arcs like high-powered Static Discharge gives.

The visual effect added in the previous commit helped me figure out what
was going on here.

--------------------------------------------------------------------------------
19c20956f2 | Steve Melenchuk | 2014-12-22 21:46:48 -0700

Visual indicators for Static Discharge and shock serpent discharge.
Without these, it's fairly difficult to figure out exactly what's being
affected in many cases, especially in the latter case.

--------------------------------------------------------------------------------
da6e664033 | Steve Melenchuk | 2014-12-22 21:16:48 -0700

Do away with posthumous revenge.
The actor::hurt() signature change means this isn't necessary any more,
and it's yielding weird death messages with vault clouds. This change
gives the correct message in the latter case.

--------------------------------------------------------------------------------
5a5e67fcb2 | Steve Melenchuk | 2014-12-22 20:10:13 -0700

Don't replace Shoals primary vault rock walls with open sea (nicolae).

--------------------------------------------------------------------------------
a434e1b544 | Nicholas Feinberg | 2014-12-22 18:14:27 -0800

Pull most monster spellpowers into mons_power_hd_factor()
Only noticeable effect should be some monsters getting a little
smarter about which hexes to use.

--------------------------------------------------------------------------------
20e6238a55 | Nicholas Feinberg | 2014-12-22 17:47:50 -0800

Factor out more spellpowers

--------------------------------------------------------------------------------
61e3a8d7c1 | Nicholas Feinberg | 2014-12-22 17:41:21 -0800

Fix monster spellpower (wheals)
Accidentally broken by e2a81cc0ba06.

--------------------------------------------------------------------------------
f1580d7166 | Nicholas Feinberg | 2014-12-22 17:34:37 -0800

Remove dead code
Hasn't done anything since 07511012412d. (Its old behaviour was
accidentally restored by e2a81cc0.)

--------------------------------------------------------------------------------
5709529065 | Shmuale Mark | 2014-12-22 14:46:43 -0500

Remove Mountain Dwarves.

--------------------------------------------------------------------------------
e2a81cc0ba | Nicholas Feinberg | 2014-12-22 08:47:16 -0800

Improve monster spell range code

--------------------------------------------------------------------------------
ee1cfa3d54 | Neil Moore | 2014-12-22 10:45:17 -0500

Update a name.

--------------------------------------------------------------------------------
88dccf0e58 | Neil Moore | 2014-12-21 19:01:50 -0500

Just use ui_random (PleasingFungus)
Even if the choice of tile did affect game state... that would already be
a desync.

--------------------------------------------------------------------------------
2f97a5abf3 | Neil Moore | 2014-12-21 18:56:42 -0500

Be careful with RNG state in a few more places (wheals)

--------------------------------------------------------------------------------
abbeb15d6a | Steve Melenchuk | 2014-12-21 16:40:17 -0700

Properly evaluate threats when considering where to revive a felid.
I don't think this code has ever worked as intended; in the past it's
produced amusing results such as placing the revived felid next to the
Lernaean hydra.

Mainly, I'm fixing this because the code's about to be used for
something else.

--------------------------------------------------------------------------------
3d9c11fef3 | Neil Moore | 2014-12-21 18:34:52 -0500

Don't use game RNG state for elemental colours.
ETC_RANDOM, ETC_ELEMENTAL, and ETC_TORNADO all called random2 directly
or indirectly.  This could result in desynchronisation of seeded test
runs, if something caused the cells to be repainted a different number
of times.  Use ui_random instead.

--------------------------------------------------------------------------------
12054e05c5 | Steve Melenchuk | 2014-12-21 14:33:25 -0700

Don't store a reference to a function pointer.
Depending on compilation setup, this was causing issues on 64-bit
platforms that have only been exposed with some recent god work.

--------------------------------------------------------------------------------
608cac2278 | Shmuale Mark | 2014-12-21 15:25:13 -0500

Add SPFLAG_MR_CHECK to Inner Flame.

--------------------------------------------------------------------------------
e1a2cb9a5b | Shmuale Mark | 2014-12-21 14:20:14 -0500

Make that a bit prettier.

--------------------------------------------------------------------------------
81848e55ed | Chris Oelmueller | 2014-12-21 14:08:31 -0500

Make troves asking for the horn of Geryon take it from players
With the somewhat recent changes to the horn (0.14-a0-1887-g5c01cd8 and
0.14-a0-2885-ge2f36c2 in particular) bringing it much closer to an
ordinary item than to the like of runes of Zot, this might be better.
The implementation in-code however most certainly is not better at this
point. Perhaps somebody would like to make that a bit prettier.

--------------------------------------------------------------------------------
92d15ef4e4 | Neil Moore | 2014-12-21 13:32:34 -0500

Don't encourage feature = ...
It is now a list option, so that would reset all the other feature
overrides.

--------------------------------------------------------------------------------
a368563ffa | Neil Moore | 2014-12-21 13:21:54 -0500

Recolor wizmode indicator not-blue (ChrisOelmueller)
Blue is for DGL messages.

Chris's original commit changed it to yellow, but that is the same
colour as the rest of the line (player name, etc).  Use lightmagenta
instead.  Also colour *EXPLORE*, and the player name in small-layout
local tiles, the same way.

--------------------------------------------------------------------------------
4e2c804605 | Neil Moore | 2014-12-21 13:06:35 -0500

Use, not simulate, reverse video

--------------------------------------------------------------------------------
9bc942c87b | Chris Oelmueller | 2014-12-21 13:03:12 -0500

Improve monster list indicator for skipped monsters
This reverse-branded bit should be more visible than before.

--------------------------------------------------------------------------------
3da7eb42f4 | Neil Moore | 2014-12-21 12:57:06 -0500

Don't prompt the player about involuntary polymorphs (#9339)

--------------------------------------------------------------------------------
a5a3791996 | Neil Moore | 2014-12-21 12:57:06 -0500

Fix kennysheep_goblin_castle boss choice (Bloax)
If Ijyb and Robin already exist, or if it chose the hobgoblin anyway:
   unknown monster: 1 x25

--------------------------------------------------------------------------------
882ce00135 | Corin Buchanan-Howland | 2014-12-21 12:26:56 -0500

increase odds of Apocalypse status effects from 3:5 to 3:4 (crate)

--------------------------------------------------------------------------------
5fecfd6697 | Corin Buchanan-Howland | 2014-12-21 12:26:56 -0500

Increase Ru Draw Out Power drain by 20%
It was a bit too close to being free.

--------------------------------------------------------------------------------
76e0901b90 | Neil Moore | 2014-12-21 12:25:05 -0500

Don't crash on self-aimed Force Lance (#9349)

--------------------------------------------------------------------------------
b858c621a3 | Neil Moore | 2014-12-21 12:10:39 -0500

Add and use a function for item type checks.
Also refactor a few checks to use item_is_rune and item_is_unique_rune.

--------------------------------------------------------------------------------
dee6a0a6e4 | Neil Moore | 2014-12-21 11:31:52 -0500

Don't annotate Sonja's and Psyche's weapons (Brannock)
Now that the brand is revealed, this is unnecessary.  Donald's shield
is still labelled, since monster-worn armour is not likewise IDed.

--------------------------------------------------------------------------------
ef4a47f6bb | Neil Moore | 2014-12-21 11:31:52 -0500

Mark unIDed quick blades as hated under Chei (Brannock)

--------------------------------------------------------------------------------
c2f0b36433 | Neil Moore | 2014-12-21 03:03:50 -0500

Unbrace.

--------------------------------------------------------------------------------
30bf5cb2bb | Neil Moore | 2014-12-21 02:54:17 -0500

Use scaled ints in _success_chance.

--------------------------------------------------------------------------------
e148b082c5 | Neil Moore | 2014-12-21 02:40:18 -0500

Don't crash when casting targetted non-zap spells (Grunt)

--------------------------------------------------------------------------------
ebd230d0cb | Shmuale Mark | 2014-12-20 22:30:19 -0500

Add a chance display for hexy wands, too.

--------------------------------------------------------------------------------
c4fb7d4c3e | Shmuale Mark | 2014-12-20 22:04:32 -0500

Fix some incorrect SPFLAG_MR_CHECKs.

--------------------------------------------------------------------------------
bd6617f236 | Shmuale Mark | 2014-12-20 21:53:30 -0500

Fix the numbers for Agony, etc. resist chance.

--------------------------------------------------------------------------------
562718103e | Chris Oelmueller | 2014-12-20 20:32:24 -0500

Display success chance for targeted MR-checking spells
Also enabled for Banishment right now.

Making this resist more transparent has been the goal of two recent changes
to monster MR: moving from HD multipliers to fixed amounts, and displaying
that amount in monster lookup through x-v.

Hexes in particular are mostly binary success/fail outcome with monster MR
and spellpower as factors. One of these, monster MR, is fully visible
in-game as of recently, and the other is available in a slightly fuzzed
way. Both use bars instead of plain numbers for display purposes.

When implementing the chance display, I considered applying a fuzz to the
displayed chances as well, as to not "leak information". After playtesting
the fuzzed version, I revised my opinion and now believe it is much better
to present the actual not-fuzzed chances right where they belong.
For reference, "fuzzed" here means using the spellpower number corres-
ponding to the highest power bar displayed for calculating chances.

Because this certainly will come up in discussions, here are my thoughts:
Raw spellpower numbers are obfuscated through bars not because knowing
about them would break the game in several ways, but because the numbers
themselves would carry little meaning in the disconnected screen that
currently holds the power bars.

This is different in two ways from showing a chance that aims to correctly
provide players with information relevant to their choices: The number that
is calculated here has a clear and concise meaning (how likely to succeed)
and is presented right where it matters (in the targeter itself).

Of course players can, and some will, use the numbers to calculate their
spellpower - but it's not like that is impossible as of now, and more
importantly they cannot do much more with that information than what the
functionality added with this commit already provides.

Brought to compilation by |amethyst and to correctness by rwbarton, thanks!

--------------------------------------------------------------------------------
568023d2f2 | Chris Oelmueller | 2014-12-20 20:32:18 -0500

Introduce SPFLAG_MR_CHECK for spells checking monster MR
Conflicts:
	crawl-ref/source/spl-data.h

--------------------------------------------------------------------------------
6a3359b24b | Brandon Kime | 2014-12-20 20:18:51 -0500

Don't let allies cast Animate Dead while worshipping Beogh.
There is a strange anti-synergy that begins to develop when orc wizards grow
up into orc sorcerors. They begin to animate corpses (almost) indiscriminately
and you end up with a massive army of zombies. This is problematic when Beogh
is already the god of *orcish* armies. Zombies frequently get in the way of the
pathing and LOF of your "congregation," forcing you to do tedious juggling just
to do something trivial, like change floors with your current orc pack.

Finally, if anyone wanted to do anything with Beogh resurrection this would be
a prerequisite.

--------------------------------------------------------------------------------
bf8763b940 | Shmuale Mark | 2014-12-20 20:01:56 -0500

Comment fix.

--------------------------------------------------------------------------------
f82061e1ea | Shmuale Mark | 2014-12-20 19:49:41 -0500

Nerf melee brands versus negative resistances.
These were inconsistent with the damage for ranged attacks for no good
reason. The inconsistency could be resolved in the other way, by buffing
ranged attacks, but generally more elemental attacks will fall into that
category, and so that would be a greater disturbance to the status quo.
Additionally, melee brands are already really good. Additionally, do orc
wizards really need to be worse for mummies?

This includes AF_s (so simulacra will do less damage to rC-) and the
damage of elemental staves. It also includes sticky flame. Lastly, it also
affects poison arrow (!!!) (though rarely do spider form players engage
naga mages), malign offering (though rN- is very hard to get), and slime
wall damage and acid splash (which are no-ops since rCorr- is impossible
to get).

--------------------------------------------------------------------------------
20c30b84c5 | Nicholas Feinberg | 2014-12-20 12:50:09 -0800

Make rock look like rock
Replace wall_vines in Shoals ends and a couple of other random
vaults with wall_pebble_cyan, where it was being used for rock
walls.

Uglier, but not misleading.

--------------------------------------------------------------------------------
9b393b2bc0 | Nicholas Feinberg | 2014-12-19 19:48:42 -0800

Don't claim that Battlecry increases ranged damage

--------------------------------------------------------------------------------
d4affe6630 | Nicholas Feinberg | 2014-12-19 19:39:02 -0800

Fixup resist_adjust_damage comments

--------------------------------------------------------------------------------
7b33a19076 | Nicholas Feinberg | 2014-12-19 19:28:19 -0800

Improve goblin toss messaging (Haifisch)

--------------------------------------------------------------------------------
5dfac0e109 | Shmuale Mark | 2014-12-19 15:04:51 -0500

Make calling resist_adjust_damage() more sane.

--------------------------------------------------------------------------------
cfcd8ee666 | Shmuale Mark | 2014-12-19 15:04:45 -0500

Change the randbook formula.
It now is based on the average of all spells in the book; the old
formula seemed a bit strange, and I completely broke it during a
refactoring anyway. The rarity of the rarest spell in the book is
multiplied by 3, to avoid Shock being in a book with Tornado making it too
cheap. To be honest, I'm still not really happy with this new reordering;
the rarity of the most common book a spell is in isn't a great indicator
of its value at all. Anyone else can feel free to repaint this particular
bikeshed.

--------------------------------------------------------------------------------
024a6ef538 | Shmuale Mark | 2014-12-19 15:04:39 -0500

Axe a block as requested.

--------------------------------------------------------------------------------
68818ffe80 | Nicholas Feinberg | 2014-12-18 18:26:02 -0800

Remove item_mass
Was being used for: fedhas fungal blooms, jelly healing when
eating items, projectile noise, awkward throwing range, and
autotraining of Armour, Dodging, and Stealth. (All based on
body armour mass.)

The former is unchanged (switched to using source monster mass
rather than item mass). Jelly healing now gives a flat +3 hp per
item eaten. Projectile noise uses (projectile damage/3) instead of
(sqrt(item_mass) / 3 + 0.5). Awkward throwing range is now always
to edge of LOS (it essentially was anyway, for anything lighter
than plate & any character stronger than a DEWz). Skill training
uses a linear approximation of the old values.

--------------------------------------------------------------------------------
52b77fdbb5 | Nicholas Feinberg | 2014-12-18 17:26:40 -0800

Don't make Vitalization protect enemies (Grunt)

--------------------------------------------------------------------------------
e5ae1c3971 | Steve Melenchuk | 2014-12-18 14:30:38 -0700

Split knockback from AT_TRAMPLE into a new AF_TRAMPLE.
This makes AT_* purely cosmetic (except AT_REACH_STING, which I have no
idea what to do with in any clean fashion), and allows trample attacks
to possibly have other effects (there could be an AF_KNOCKBACK which
means the monster does not follow along, an AF_COLLIDE which could
combine this with trampling into walls, etc.)

--------------------------------------------------------------------------------
31ca380ebe | Steve Melenchuk | 2014-12-18 14:24:03 -0700

Convert AT_{SWOOP,KITE} to AF_{SWOOP,KITE} (MarvinPA).
I can't think of a good way to mention these in describe.cc, and the
monsters that use these already mention the special attacks in their
description, so I'm leaving this out of there for now.

--------------------------------------------------------------------------------
1f6d2f01b8 | Steve Melenchuk | 2014-12-18 14:07:27 -0700

A demigodlier tile for Frederick.
...since he's been overhauled considerably since the last tile.

Thanks to ontoclasm for helping me tune this up.

--------------------------------------------------------------------------------
534a61b9e9 | Chris Campbell | 2014-12-18 21:03:29 +0000

Don't enhance Dragon's Call while in Dragon form
It's not an interaction that's especially likely to ever be very relevant.

--------------------------------------------------------------------------------
25bda68125 | Shmuale Mark | 2014-12-18 14:02:03 -0500

Refactor away direct_effect.

--------------------------------------------------------------------------------
254a56bd66 | Shmuale Mark | 2014-12-18 14:01:52 -0500

Fix timing for the banishment animation.

--------------------------------------------------------------------------------
2add07e06d | Chris Campbell | 2014-12-18 16:24:49 +0000

Make Singularities insubstantial

--------------------------------------------------------------------------------
7a0b6e92e4 | John McCartney | 2014-12-17 22:37:48 -0800

Further minor iterations for a few early-game monster tiles.

--------------------------------------------------------------------------------
5da3999027 | Nicholas Feinberg | 2014-12-17 20:36:03 -0800

Change hydra form duration
Extend it to the same duration as blade hands, and make heads
reset when the spell is recast (to extend duration).

The ultra-short duration was a little vestigial after the high
hunger cost went away; better to save it for whenever that idea
comes back.

--------------------------------------------------------------------------------
cf1f9e8c28 | gammafunk | 2014-12-17 20:11:51 -0600

Add Austin Appleby to CREDITS.txt

--------------------------------------------------------------------------------
93d1bf15ef | Austin Appleby | 2014-12-17 18:56:48 -0600

Replace a very expensive Object.keys() call with a simple counter

--------------------------------------------------------------------------------
8dbd366027 | Corin Buchanan-Howland | 2014-12-17 19:39:57 -0500

Fix a Ru typo (fearitself)

--------------------------------------------------------------------------------
f48f3ffc02 | Neil Moore | 2014-12-17 18:24:59 -0500

Initialise bolt::can_see_invis and nightvision.
Valgrind found that they were used uninitialised: we set them to true in some
cases, but never actually to false.

These are initialised on fire so there shouldn't be a need to copy them
in bolt_parent_init.

--------------------------------------------------------------------------------
5046a994ed | Eino Keskitalo | 2014-12-17 22:04:03 +0200

Small documentation corrections.

--------------------------------------------------------------------------------
282d2222f4 | Neil Moore | 2014-12-17 11:12:57 -0500

Improve expiration message when rMsl effect is still up (wheals)
For example, if you cast rMsl then put on "Air, you would get a "less
protected" message when the spell ablates, even though you still had
perma-rMsl from the amulet.  Now the message in this case is "You feel
your spell is no longer protecting you from missiles."  Losing DMsl
on top of perma-RMsl gives the same "less protected" message as before.

--------------------------------------------------------------------------------
02a2dc8f0a | Shmuale Mark | 2014-12-17 10:26:18 -0500

Recommend FeEn (agentgt).
Because of their stabbing upgrade. For En, Fe replaces Ha, which had a
reduction to its Stealth apt; for Fe, En replaces FE, which lacks the
defensive aspects other recommended starts have and which are quite useful
given their squishiness.

--------------------------------------------------------------------------------
935655307c | Neil Moore | 2014-12-17 00:14:57 -0500

Another useful ctags option.
Without this, map_find and random_iterator don't get tagged.

--------------------------------------------------------------------------------
7f0752a6ae | Neil Moore | 2014-12-16 23:53:28 -0500

Mention another flag in ctags.txt
And fix a typo.

--------------------------------------------------------------------------------
4847bf6c9c | Neil Moore | 2014-12-16 21:36:58 -0500

Document an enum order dependency.
[skip ci]

--------------------------------------------------------------------------------
0746809b96 | Neil Moore | 2014-12-16 21:27:09 -0500

Document vault tech (nicolae)
[skip ci]

--------------------------------------------------------------------------------
1b05c8e38a | Neil Moore | 2014-12-16 17:38:47 -0500

Avoid a warning
cio.cc:340:76: warning: format ‘%p’ expects argument of type ‘void*’,
        but argument 2 has type ‘input_history*’ [-Wformat=]

--------------------------------------------------------------------------------
e978b94a07 | Neil Moore | 2014-12-16 17:37:09 -0500

More pedantry.
warning: overflow in implicit constant conversion

--------------------------------------------------------------------------------
bc1202dcd6 | Neil Moore | 2014-12-16 17:21:47 -0500

Be more pedantic.
./json.h:67:9: warning: anonymous types declared in an anonymous union
      are an extension [-Wnested-anon-types]

--------------------------------------------------------------------------------
eb387839b7 | Chris Campbell | 2014-12-16 18:49:59 +0000

Reword a Xom message

--------------------------------------------------------------------------------
c06a356a04 | Chris Campbell | 2014-12-16 18:36:00 +0000

Don't prevent blurry vision under Ashenzari
Instead of making this one source of SInv also provide protection from blurry
vision due to its wording, reword the messages slightly.

--------------------------------------------------------------------------------
383c4da601 | Shmuale Mark | 2014-12-16 12:28:34 -0500

Release the pedants!

--------------------------------------------------------------------------------
7f227e8d57 | Neil Moore | 2014-12-16 12:22:18 -0500

Improve a comment.
And add a missing letter to the next comment.

--------------------------------------------------------------------------------
2ca07658b3 | Neil Moore | 2014-12-16 12:12:14 -0500

Don't block Sublimation at 50 max MP (#9335)
We were temporarily setting MP to 50 to avoid the enough-MP checks
in spell_is_uncastable.  Instead add back just the spell's cost;
this could still be incorrect if Xom casts Sublimation for you when
you are at maxmp-2, or if an ability casts a spell but costs less
mana than the spell would.

Also remove a second version of the Sublimation check now that the one
in spell_is_uncastable works in this situation.

PF points out that we probably shouldn't be checking enough_mp in
spell_is_uncastable at all.

--------------------------------------------------------------------------------
26575e8413 | Shmuale Mark | 2014-12-16 11:50:01 -0500

Update documentation.

--------------------------------------------------------------------------------
8854a3db2d | Shmuale Mark | 2014-12-16 11:49:56 -0500

Fix shop sorting.
Most of this shopping code should really be torn out and replaced
by a proper Menu class like the skill menu.

--------------------------------------------------------------------------------
9f4f6fe17a | Shmuale Mark | 2014-12-16 11:49:50 -0500

Make all potions appear darkgrey for mummies.

--------------------------------------------------------------------------------
24051f7046 | Shmuale Mark | 2014-12-16 11:49:45 -0500

item_slot makes new items swap to get their slots (Sandman25, Tedronai).
Unless the old item matches the regex as well, in which case it goes
on to the next letter.

--------------------------------------------------------------------------------
2c88c440ae | Nicholas Feinberg | 2014-12-15 19:33:08 -0800

Changelog through 0.16-a0-3177-ge5ac76f

--------------------------------------------------------------------------------
e5ac76f521 | Nicholas Feinberg | 2014-12-15 19:25:08 -0800

Make range strings a little sillier
E.g., orc wizards now show o----> for throw flame instead of
@---->.

Not actually sure this is an improvement.

--------------------------------------------------------------------------------
8066287da2 | Nicholas Feinberg | 2014-12-15 19:10:26 -0800

Fix tiles compilation
??oops

--------------------------------------------------------------------------------
8a8728c999 | Nicholas Feinberg | 2014-12-15 19:02:10 -0800

Display monster spell ranges

--------------------------------------------------------------------------------
2c7fbf1810 | Nicholas Feinberg | 2014-12-15 18:54:30 -0800

Pull range_string into a separate function

--------------------------------------------------------------------------------
1b50271223 | Nicholas Feinberg | 2014-12-15 18:37:31 -0800

Pull mons_spell_range into a separate function

--------------------------------------------------------------------------------
1f65572abe | Nicholas Feinberg | 2014-12-15 18:16:42 -0800

Show spell stats while memorizing (9333)
Also preparation for something else I want to do.

--------------------------------------------------------------------------------
ce70061a4f | Shmuale Mark | 2014-12-15 14:13:41 -0500

Remove two unused arrays.

--------------------------------------------------------------------------------
dc984a6885 | Shmuale Mark | 2014-12-15 14:13:35 -0500

Fix beam knockback (#9334).

--------------------------------------------------------------------------------
2f9560d06e | John McCartney | 2014-12-15 10:28:30 -0800

Improvements to hippogriff, Nellie, and a couple skeletons.
Clarified bottom edge of silhouettes, adjusted shadows.

--------------------------------------------------------------------------------
f575c6d4c5 | John McCartney | 2014-12-15 10:28:28 -0800

Value/saturation adjustments for several monster tiles.
Serpents of hell and Vaults denizens are the main ones.

--------------------------------------------------------------------------------
bfee7128f4 | John McCartney | 2014-12-15 10:28:27 -0800

Small improvements to yaktaur and yaktaur captain.

--------------------------------------------------------------------------------
0e6e23f8f3 | Jesse Luehrs | 2014-12-15 03:47:01 -0500

use you.in_branch(foo) instead of you.branch() == foo
this way, we can get reasonable error messages if an invalid branch is
used

also fix a bug in ice2_lemuel related to this

--------------------------------------------------------------------------------
9496dc8f1c | Jesse Luehrs | 2014-12-15 02:27:02 -0500

fix monster selection in a couple vaults
you.branch() returns "D", not "Dungeon"

see !lg RBrandon place=d:11 killer=lich 1 -tv:<0.5

--------------------------------------------------------------------------------
d97474330c | Nicholas Feinberg | 2014-12-14 22:42:13 -0800

Add more dragons to Coc hell effects (tarot)
Trade some ice dragons for bone dragons.

--------------------------------------------------------------------------------
8885197715 | Nicholas Feinberg | 2014-12-14 22:39:12 -0800

Allow variation of fiend types for hell effects
And add shard shrikes for Coc.

--------------------------------------------------------------------------------
12e38a2d5a | Nicholas Feinberg | 2014-12-14 22:38:14 -0800

Hand-pick hell effect spawns
Mainly in reaction to shard shrike unpleasantness, but also as
an attempt to get better control over what's going on in hell.

The current list is a placeholder, very roughly aligned with the
coc population list.

--------------------------------------------------------------------------------
784a9232e7 | Edgar A. Bering IV | 2014-12-14 22:21:37 -0800

Add Xom mood meter to webtiles.
This was added a few weeks ago to console and local tiles.

This isn't exactly the same, on console and local tiles the meter
turns red if Xom is getting BORED and lightred when Xom is BORED.
Unfortunately without making either an ugly hack or exposing
gift_timeout in the json this behavior can't be replicated in
webtiles; though the old colouring behavior was also not present
in webtiles so I'm guessing this isn't too big of a loss.

--------------------------------------------------------------------------------
1f26642a48 | Jesse Luehrs | 2014-12-15 00:14:23 -0500

add penance warnings for attacking with banned weapons

--------------------------------------------------------------------------------
1b9e691ae7 | Nicholas Feinberg | 2014-12-14 17:08:24 -0800

Don't list why players can't memorize monster spells

--------------------------------------------------------------------------------
d1cc993324 | Nicholas Feinberg | 2014-12-14 16:14:32 -0800

Change Cigotuvi's armour ratios
Now gives (power / 100 + 0.5) AC+SH per corpse. (So at power 0,
1 AC+SH for every 2 corpses; at 50, 1 per corpse, and at 100,
1.5 per corpse.)

Should give more reasonable results at low & high power.

Spellpower is now capped at 100.

--------------------------------------------------------------------------------
c14e2fc85d | Nicholas Feinberg | 2014-12-14 16:14:31 -0800

Change cigotuvi's shed behaviour
Rather than a complex formula based on spellpower & # of corpses,
it's now a less complex formula based purely on # of corpses.

Ref the comment on player::maybe_degrade_bone_armour().

--------------------------------------------------------------------------------
baec27472b | Shmuale Mark | 2014-12-14 18:49:14 -0500

Fix some edge cases with invisibility and reflection.

--------------------------------------------------------------------------------
f03ee074c6 | Shmuale Mark | 2014-12-14 18:27:57 -0500

Clean up beam.h.

--------------------------------------------------------------------------------
34a23a8160 | Shmuale Mark | 2014-12-14 16:02:50 -0500

Remove an incorrect comment.

--------------------------------------------------------------------------------
c6d0c83cca | Shmuale Mark | 2014-12-14 15:56:26 -0500

Fix hydra cleaving.

--------------------------------------------------------------------------------
e34d8311a8 | Neil Moore | 2014-12-14 04:42:22 -0500

Improve "Faith equip messages.
Add separate messages for demigods (replacing "strange surge of divine
interest") and max-piety Ru worshippers (which had no message at all).
Also restore the missing "Gozag discounts your offered prices".

--------------------------------------------------------------------------------
e26ef09953 | Neil Moore | 2014-12-14 01:03:23 -0500

Remove mut_use_type, make mutation_def::uses a bitfield.
Also remove the bit for MUTFLAG_NONE, and define a SPTYP_LAST_EXPONENT to
aid the init_mut_index loop.

--------------------------------------------------------------------------------
fd518f7980 | Nicholas Feinberg | 2014-12-13 21:35:27 -0800

Re-add Mennas' shield (9329)
No idea when it went missing.

--------------------------------------------------------------------------------
1169300344 | Nicholas Feinberg | 2014-12-13 20:45:27 -0800

Don't crash on &morc_wizard spells:. xv (|amethyst)
There's a better fix for this, I can feel it.

--------------------------------------------------------------------------------
a43b9c1f87 | Brendan Hickey | 2014-12-13 19:34:24 -0500

Revert "Remove the "of the Doge" randart name (Sar)"
This reverts commit 5091ead2ae5b33792f829a2cc3fd03d799985016.

"of the Doge" is a perfectly reasonable name.

--------------------------------------------------------------------------------
d57282eb48 | Nicholas Feinberg | 2014-12-13 19:56:10 -0800

Don't print extraneous info in monster spell descs

--------------------------------------------------------------------------------
60f2d601e7 | Neil Moore | 2014-12-13 22:37:15 -0500

Fix wrapping of book descriptions.
This formatted_string -> string -> formatted_string is nasty :(

--------------------------------------------------------------------------------
2cdb8dad07 | Shmuale Mark | 2014-12-13 22:18:44 -0500

Refactor cleaving further.
Now every melee_attack goes through cleave_setup, though cleave_targets
may end up empty. This allows for more extensible cleaving-like effects
(especially since they will only need to be added in one place, rather
than in actor::can_cleave as well). This also makes Gyre and Gimble
work with the Blade card (16 attacks!).

--------------------------------------------------------------------------------
bd72593aa5 | Neil Moore | 2014-12-13 21:14:15 -0500

Update monster_glyphs nostalgia for listoptionness.

--------------------------------------------------------------------------------
1b4fae97e5 | Neil Moore | 2014-12-13 21:14:15 -0500

Improve docs.
Mention that monster glyph overrides can be cleared, and that none of
the three overrides need :replacement with -=.  Also match the existing
convention for showing multiple uses of an option.

--------------------------------------------------------------------------------
44b0c69483 | Neil Moore | 2014-12-13 21:14:15 -0500

Replace some (*foo).bar with foo->bar.

--------------------------------------------------------------------------------
6e18f23ea0 | Neil Moore | 2014-12-13 21:14:15 -0500

Fix formatting.

--------------------------------------------------------------------------------
0292bcdc27 | Edgar A. Bering IV | 2014-12-13 21:13:28 -0500

Apply feature colour overrides dynamically.
Previously feature colour overrides were added directly to feature
descriptions, so that defaults were lost. This is required to
correctly support feature = and feature -= if options are changed
at runtime.

--------------------------------------------------------------------------------
0e4135205e | Edgar A. Bering IV | 2014-12-13 21:13:28 -0500

Make feature, item_glyph, and mon_glyph into list options.
They aren't exactly list options, in that they aren't implemented using
the apropriate macro, and feature clearing works on regexps, but
this is meant to be helpful since some features have odd or long
exact names.

--------------------------------------------------------------------------------
17baf73401 | Edgar A. Bering IV | 2014-12-13 21:13:28 -0500

Differentiate += and ^= for item_glyph
This also modifies split_parse to support prepend vs. append in case
whoever was refactoring list-options to use split_parse continues
this activity.

--------------------------------------------------------------------------------
4575273ab1 | Shmuale Mark | 2014-12-13 21:08:15 -0500

Don't mimic Enslavement at a friendly monster (#9290).

--------------------------------------------------------------------------------
d9c6457133 | Shmuale Mark | 2014-12-13 20:50:38 -0500

Simplify (Sandman25).

--------------------------------------------------------------------------------
5701f100cc | Shmuale Mark | 2014-12-13 20:40:57 -0500

Fix !bad items with item_slot (#9322).

--------------------------------------------------------------------------------
9b1347ab3b | Neil Moore | 2014-12-13 14:10:05 -0500

Send those debug_mon* messages to stderr.
Since fake_pty (used by make test) lets stderr through, this will let them
show up in Travis's build logs.

--------------------------------------------------------------------------------
b7aaaf9739 | Nicholas Feinberg | 2014-12-13 11:02:54 -0800

Fix Cigotuvi's animation (alefury)
Doesn't seem to cause horrible lag, so I'm going for it.

--------------------------------------------------------------------------------
68494887d8 | Nicholas Feinberg | 2014-12-13 11:02:54 -0800

Add stdout messaging for mon-util tests (|amethyst)

--------------------------------------------------------------------------------
deaac3d8ef | Neil Moore | 2014-12-13 13:57:15 -0500

Add some documentation on using ctags-exuberant with crawl.
[skip ci]

--------------------------------------------------------------------------------
e9eaaac656 | Neil Moore | 2014-12-13 13:15:24 -0500

Fix an incomplete
sentence.

--------------------------------------------------------------------------------
3e9b667627 | Neil Moore | 2014-12-13 13:10:02 -0500

Make a macro to define an enum bitfield and operators.
It defines a typedef for an enum_bitfield; and bitwise operators on
the underlying flag enum, returning the bitfield type.

--------------------------------------------------------------------------------
73c7e4e400 | Neil Moore | 2014-12-13 11:53:00 -0500

Fix unintended recite message change.
Commit e3807df refactored away the trit array, but unintentionally
introduced a correlation between the "smite" and "sin" selections.

--------------------------------------------------------------------------------
67eeaa8638 | Neil Moore | 2014-12-13 11:46:12 -0500

Statically assert that spell schools fit in a short.

--------------------------------------------------------------------------------
a81bd04608 | Neil Moore | 2014-12-13 10:29:32 -0500

Support SPTYP_FIRE | SPTYP_CONJURATION syntax again.
By defining an operator| on spell type flags to produce a bitfield, not
an integer.  Likewise operator& and operator~, as well as variants of
& and | that take a flag on the left and bitfield on the right.

It would be nice to do this as a template, but we wouldn't want the
template to be instantiated for every enum, only some bit flag enums.

--------------------------------------------------------------------------------
5b673fb403 | Neil Moore | 2014-12-13 01:14:08 -0500

Use a more logical order.
[skip ci]

--------------------------------------------------------------------------------
14d43f5f1a | Neil Moore | 2014-12-13 01:06:47 -0500

Generalise comma_separated_line.
Make a version comma_separate_fn, which additionally takes a callable
that converts an iterated-over value to a string.  Use that to simplify
skill_names, and also to implement the old comma_separated_line.

--------------------------------------------------------------------------------
484855babb | Neil Moore | 2014-12-13 00:44:40 -0500

Remove skill_set_iter.
It wasn't even a const_iterator, so several functions unnecessarily
rejected const skill sets.  Use range-based fors where possible, and
auto in the single case that requires an iterator.

--------------------------------------------------------------------------------
ccf308e0a1 | Neil Moore | 2014-12-12 23:25:00 -0500

Simplify.
Also placate unbrace by not writing return (expression).

--------------------------------------------------------------------------------
dc22f44f23 | Neil Moore | 2014-12-12 23:18:52 -0500

Add a system #include, and checkwhite.
GNU libstdc++ and LLVM's libc++ worked anyway, since several other
system headers pull in <type_traits>.

[skip ci]

--------------------------------------------------------------------------------
e7836063ca | Neil Moore | 2014-12-12 23:01:33 -0500

Don't crash when generating randbooks

--------------------------------------------------------------------------------
844e63056d | Neil Moore | 2014-12-12 22:10:55 -0500

Make some spell type functions more type-strict.
It would be nice if there were a more type-safe way to iterate over
all the enumerators.

--------------------------------------------------------------------------------
8ae2bb8963 | Neil Moore | 2014-12-12 22:10:55 -0500

Add type-safe bitfield enums, use them for SPTYP_*.
enum_bitfield<E> holds a bitwise or of enumerators of the enum E.  It
allows combining Es with | and &, while preventing mixing in arbitrary
integers (or enumerators of the wrong enum).  The class converts to an
integer of the appropriate type.  The function bitfield() constructs an
enum_bitfield of the appropriate type without having to specify the
template parameter (much as make_pair() does for class pair<S,T>).

See 035df76 for an example of the type of problem this is intended
to prevent.

Unfortunately, an enum_bitfield cannot be initialised with FLAG_FOO |
FLAG_BAR, as that is just an integer and would defeat type safety.
Instead, initialise with one of:

   { FLAG_FOO, FLAG_BAR, FLAG_BAZ }
   bitfield(FLAG_FOO, FLAG_BAR, FLAG_BAZ)
   bitfield(FLAG_FOO) | FLAG_BAR | FLAG_BAZ

Note that bitfield(FLAG_FOO) | OTHERFLAG_FUM (where OTHERFLAG_FUM
belongs to another enum) is still legal; however, it gives an int
of some sort and not an enum_bitfield, so cannot be used to initialise
an enum_bitfield.

TODO: make as much of the class as possible constexpr so there is no
added runtime cost (in particular, for the multi-argument constructor,
which currently uses nested delegated constructors).

--------------------------------------------------------------------------------
6a08293387 | Corin Buchanan-Howland | 2014-12-12 21:18:42 -0500

Make Ru redirection play better with friends
You will no longer redirect attacks to your buddies.

--------------------------------------------------------------------------------
c63e8ae418 | gammafunk | 2014-12-12 18:13:47 -0600

Document a clua function

--------------------------------------------------------------------------------
48707987aa | Neil Moore | 2014-12-12 16:50:47 -0500

Fix whitespace in scripts.
Ourocheckwhite, the serpent that eats its own tabs.

--------------------------------------------------------------------------------
933451d2f5 | Neil Moore | 2014-12-12 16:48:29 -0500

Check for tabs in Perl and shell scripts
Including .pl and .sh (specifically excluded previously), as well as
files in util/ without an extension (previous all extensionless files
were ignored).

--------------------------------------------------------------------------------
834683d406 | gammafunk | 2014-12-12 15:35:48 -0600

Add options to checkwhite and unbrace to examine only changed files
The -m option will have them use git diff-index to get a list of files
different between the index and the tree and then check only these
files.

--------------------------------------------------------------------------------
3b0e7df9b5 | Shmuale Mark | 2014-12-12 14:08:00 -0500

Don't waste time casting Sublimation of Blood when at max MP.
I guess you could have used it with PbP...?

--------------------------------------------------------------------------------
d448aa53e7 | Shmuale Mark | 2014-12-12 13:05:01 -0500

Clarify Shadow Creatures' description, bring back "Abyssal matter".
The previous wording implied that the monster's items were permanent
(well, at least that's what I thought when I first saw it). It also
sounded a bit like it summoned monsters that were copies of ones you
could see; hopefully this is a bit clearer.

"Abyssal matter" was changed because it apparently implied that it
should be unholy (back when the spell was unholy), but I personally
like the flavour and don't think anybody would think that if one didn't
know that the spell used to be unholy.

--------------------------------------------------------------------------------
cc4a3cde80 | Neil Moore | 2014-12-12 10:50:04 -0500

Simplify debug_monspells a bit.
Removing a sign warning in the process, as well as a bounds error
that would occur if a monster book ever had NUM_MSTYPES as a value
(a bug for sure, but no reason to stomp memory).

This relies on (monster_type) 0 not being a valid monster, but so
did the old code.

Constify a few things too (but not systematically).

--------------------------------------------------------------------------------
4732e54897 | Eino Keskitalo | 2014-12-12 10:59:51 +0200

Remove (hard-coded) command keys from door descriptions.
It's not necessary for doors in particular to have these in their descriptions.

--------------------------------------------------------------------------------
9654dafee3 | Nicholas Feinberg | 2014-12-11 22:51:10 -0800

Simplify debug_monspells() (|amethyst)

--------------------------------------------------------------------------------
0c274cb0a7 | Nicholas Feinberg | 2014-12-11 17:02:40 -0800

Cap chaotic mirror reflection resistance (9311)
Can still go up to 200 turns, which is silly, but eh.

--------------------------------------------------------------------------------
f08d3c2e18 | gammafunk | 2014-12-11 17:19:34 -0600

Use the correct random choice function in a vault

--------------------------------------------------------------------------------
d90c0587fd | ontoclasm | 2014-12-11 16:07:13 -0600

Spell icons for Singularity & Sublimation

--------------------------------------------------------------------------------
1f86987730 | gammafunk | 2014-12-11 15:02:51 -0600

Add the clua function crawl.version() to get version information
Can return any of the long, major, or short crawl version strings
based on an optional first string argument that defaults to "long".

--------------------------------------------------------------------------------
dac9621808 | Shmuale Mark | 2014-12-11 13:59:44 -0500

oops.

--------------------------------------------------------------------------------
7565857fc8 | Shmuale Mark | 2014-12-11 13:59:38 -0500

Fix the faerie dragon armour's identified name (#9319).
This won't fix old saves, though.

--------------------------------------------------------------------------------
bae0a8991d | Nicholas Feinberg | 2014-12-11 07:51:29 -0800

Re-add monster names to xv (Grunt)

--------------------------------------------------------------------------------
569f156a59 | Neil Moore | 2014-12-11 00:47:33 -0500

Fix more quotes.

--------------------------------------------------------------------------------
2ec9ae5731 | Neil Moore | 2014-12-11 00:41:09 -0500

Format some quotes.

--------------------------------------------------------------------------------
3999134136 | Neil Moore | 2014-12-11 00:34:47 -0500

Make empty lines show up in webtiles xv again.
There has to be a better way....

--------------------------------------------------------------------------------
494c3d7580 | Nicholas Feinberg | 2014-12-10 21:17:40 -0800

Don't claim that ctrl-clicking opens doors
This hard-coding is very odd in any case...

--------------------------------------------------------------------------------
ee62c122eb | Nicholas Feinberg | 2014-12-10 21:09:59 -0800

Make monster quotes scrollable (|amethyst)
Mostly for consistent UI; there aren't currently any that need it.

--------------------------------------------------------------------------------
f00d7044da | Neil Moore | 2014-12-10 21:09:59 -0800

Wrap description text again.

--------------------------------------------------------------------------------
c5cb3caafb | Nicholas Feinberg | 2014-12-10 21:09:59 -0800

Support monster quotes again

--------------------------------------------------------------------------------
3cb7808ecf | Nicholas Feinberg | 2014-12-10 21:09:59 -0800

Allow selecting monster spell descriptions

--------------------------------------------------------------------------------
b0e352fb09 | Nicholas Feinberg | 2014-12-10 21:09:59 -0800

Change spell descriptions to use a scroller

--------------------------------------------------------------------------------
34d06bb1ac | Nicholas Feinberg | 2014-12-10 21:09:59 -0800

Make monster spell lists two-column
And export letter assignment for later.

--------------------------------------------------------------------------------
d2e1873ae3 | Neil Moore | 2014-12-10 21:09:59 -0800

Add and use a <cinttypes>-style printf macro for size_t
The MSVCRT library doesn't have much C99 support, and in particular
is missing the 'z' conversion length modifier.  However, it does
have a custom 'I' modifier that works for this purpose.

PRIuSIZET expands to "Iu" under MSVC and MinGW, "zu" elsewhere.
Use as: make_stringf("length: %" PRIuSIZET, vec.size(), vec[0]);

The Windows side of this is untested.

--------------------------------------------------------------------------------
3785f85c8a | Nicholas Feinberg | 2014-12-10 21:09:11 -0800

New monster spell description UI
Initial work on allowing spellbook-like viewing of monsters'
spells.

--------------------------------------------------------------------------------
149bcfb010 | Steve Melenchuk | 2014-12-10 22:02:04 -0700

Add a small chance of confusing actors pulled with Gell's.
It was a bit underwhelming previously; doing this should aid its utility
as a translocation intended to keep monsters away from you, as well as
add some utility as a hex.

This doesn't impact the target of the hex; they're already in enough
trouble by virtue of large collision damage if you're using this well.

--------------------------------------------------------------------------------
c8180c5fd8 | Neil Moore | 2014-12-10 23:57:56 -0500

Be even more sign- and size-correct (Grunt)

--------------------------------------------------------------------------------
a63ba9b3ce | Neil Moore | 2014-12-10 23:09:40 -0500

Be sign-correct.

--------------------------------------------------------------------------------
a7464916de | Nicholas Feinberg | 2014-12-10 20:02:33 -0800

Remove Spider monster from deep Lair spawns
Diluting both branches.

--------------------------------------------------------------------------------
cc2a4a97b3 | Nicholas Feinberg | 2014-12-10 19:29:32 -0800

Replace plants with something more pleasing
In minmay_gold_behind_plants. (It's now minmay_gold_behind_fungi.)

It's a silly vault in any case, but breaking open a vault for loot
is fun; no need to make it as intensely tedious as killing plants
at low level was.

--------------------------------------------------------------------------------
2136eefe82 | Nicholas Feinberg | 2014-12-10 19:22:04 -0800

Fix a typo
Restoring the natural splendor & glory of this otherwise-
-immaculate vault.

--------------------------------------------------------------------------------
73088b9a61 | Nicholas Feinberg | 2014-12-10 19:17:41 -0800

Slay the undead minotaur
In labyrinth_lava_lair. Incredibly boring and tedious to fight
(non-regenerating, trapped behind lava, utterly harmless...), and
you're encouraged to do so for the loot, of course.

Replace it with a pair of lava snakes, which, in a lab, could
plausibly kill someone. (And owing to the nature of the terrain,
blocking off terrain with roughly stationary enemies is a more
interesting mechanic...)

--------------------------------------------------------------------------------
f25fdbf468 | Nicholas Feinberg | 2014-12-10 18:58:16 -0800

Remove some unused spellbooks
And make the tests pass! Huzzah!

--------------------------------------------------------------------------------
16975f6228 | Nicholas Feinberg | 2014-12-10 18:54:12 -0800

Add a little more debug info to missing spell tests

--------------------------------------------------------------------------------
02f55f371c | Nicholas Feinberg | 2014-12-10 18:47:32 -0800

Restore Lava Snakes' lava spit
Accidentally removed in 0a3df14969b2.

--------------------------------------------------------------------------------
82749e328a | Nicholas Feinberg | 2014-12-10 18:45:41 -0800

Remove some mon-spell detritus
Slipped in through a rebase, I think.

--------------------------------------------------------------------------------
aadef77a2a | Nicholas Feinberg | 2014-12-10 18:44:25 -0800

Add mon-spell tests
Some of the ugliest code I've written in some time, but tests are
tests...

--------------------------------------------------------------------------------
31871f1773 | Nicholas Feinberg | 2014-12-10 17:34:14 -0800

Allow cancelling out of blurry vision
In the same way as armour donning/doffing.

Not sure why this wasn't working before, but it seems to work now?

--------------------------------------------------------------------------------
2404d30b31 | gammafunk | 2014-12-10 18:11:58 -0600

Give Robin a chance to appear in a goblin-themed vault

--------------------------------------------------------------------------------
c0bb6312e2 | Shmuale Mark | 2014-12-10 13:33:00 -0500

#define a magic position.

--------------------------------------------------------------------------------
c12816a777 | Shmuale Mark | 2014-12-10 13:32:54 -0500

Make a function static.

--------------------------------------------------------------------------------
3c7236ec67 | Shmuale Mark | 2014-12-10 13:32:48 -0500

Add an 'item_slot' option (#9275).
Works much like spell_slot.

--------------------------------------------------------------------------------
3f2ece7b0e | Shmuale Mark | 2014-12-10 13:32:37 -0500

Simplify.

--------------------------------------------------------------------------------
6792f5f5ea | Nicholas Feinberg | 2014-12-10 08:35:06 -0800

Trim a horrifying wall of text
In hints mode.

The list of places to check is *still* overwhelmingly long;
probably some of those suggestions can be trimmed.

Losing the morgue stuff is a pity, but that can go elsewhere if
it's really needed.

--------------------------------------------------------------------------------
0ce99526dd | Neil Moore | 2014-12-10 10:42:52 -0500

Reinforce that DNGN_UNSEEN should be 0.
We make that assumption in several places (including one I just added,
but also others).

--------------------------------------------------------------------------------
762a069b60 | Neil Moore | 2014-12-10 10:34:43 -0500

Refactor keyed_mapspec::parse_feature.

--------------------------------------------------------------------------------
cfcf13dd8b | Neil Moore | 2014-12-10 10:21:02 -0500

Don't treat a shop with "trap" in the name as a trap (wheals)
dat/des/variable/grated_community.des:69:
   bad trap name: 'armour shop name:the_legendary_astrapp [...]

Likewise other features with "shop" in the name.  Also, remove the
not-really-supported "store" alias (which parse_shop just barfed on).

--------------------------------------------------------------------------------
1eedcb17e0 | John McCartney | 2014-12-09 21:59:22 -0800

Small edits to elephant tiles.

--------------------------------------------------------------------------------
83c6b19017 | Nicholas Feinberg | 2014-12-09 21:26:14 -0800

Oops

--------------------------------------------------------------------------------
f86f48abbd | Nicholas Feinberg | 2014-12-09 21:23:54 -0800

Add a quote for the iron rod

--------------------------------------------------------------------------------
ad7ac60b4d | Nicholas Feinberg | 2014-12-09 21:23:45 -0800

Remove the rod of striking quote

--------------------------------------------------------------------------------
2c62648580 | Nicholas Feinberg | 2014-12-09 18:46:44 -0800

Comment (reaverb)

--------------------------------------------------------------------------------
1c4ddbadee | ontoclasm | 2014-12-09 15:37:30 -0600

New Plut Sword tiles
Since it is a triple sword again.

--------------------------------------------------------------------------------
0a98a19364 | ontoclasm | 2014-12-09 01:07:46 -0600

Various doll weapon edits

--------------------------------------------------------------------------------
31f3681a28 | ontoclasm | 2014-12-09 01:07:45 -0600

Gyre/Gimble tiles
I edited the floor tile since one of the blades would often be hidden
under the Vorpal marker.

--------------------------------------------------------------------------------
6f20637e3f | Nicholas Feinberg | 2014-12-08 22:11:24 -0800

Revert "Don't special-case some actors to not fumble in water"
It's a really unnecessary nerf to ogres & trolls, and a *really*
unecessary nerf to poor, poor grey draconians.

Still needs to be communicated better, of course.

This reverts commit 4aec31c2756c0c0558671e1477b5c6053991e914.

--------------------------------------------------------------------------------
4aec31c275 | reaverb | 2014-12-09 00:55:08 -0500

Don't special-case some actors to not fumble in water
This obscure mechanic was not communicated to the player in any way and
would not be particularly relevant if it was properly communicated.

--------------------------------------------------------------------------------
2408add874 | Nicholas Feinberg | 2014-12-08 21:22:38 -0800

Changelog through 0.16-a0-3055-gf5291b4

--------------------------------------------------------------------------------
f5291b4211 | Steve Melenchuk | 2014-12-08 21:22:04 -0700

Pare down a couple of Spider rune vaults.
These were among the earliest vaults I ever created, and with a more
experienced vault design sense and gameplay sense I've come to believe
that they were unnecessarily large and/or ill-balanced.

grunt_spider_rune_circles loses its extraneous outer layer, and is now
ORIENT: float; you can make up for some of the removed chaff with the
additional emperor scorpions in the now-outer layer.

grunt_spider_rune_island now has its originally intended ORIENT: of west
(I'm not sure if this was an initial mistake on my part or if it's
something that was accidentally changed along the way), is now
accessible from three directions, and has some of the large open space
now filled in.

Though grunt_spider_rune_parallel is probably still too large, it's also
considerably different presently than what I originally designed the
vault for, and I haven't yet figured out what, if anything, I want to do
with it, so it's untouched for now. (At present, it also plays
considerably better than my other two endings.)

Really, we could use more Spider endings of the appropriate size -
especially those that leverage some of the more recent additions to the
game.

--------------------------------------------------------------------------------
fd6d158ab6 | Nicholas Feinberg | 2014-12-08 19:59:40 -0800

Rewrite Gozag wrath description
Per request.

--------------------------------------------------------------------------------
28c50b0a8d | Nicholas Feinberg | 2014-12-08 19:26:30 -0800

Clean up hell effect noise code
Make the odds determined by code, not by the ratio of messages
with SOUND: prefixed to those without, and don't choose noisy
messages when the player is silenced.

--------------------------------------------------------------------------------
f11dc9d020 | Nicholas Feinberg | 2014-12-08 19:10:56 -0800

Update a fake lang!!!
For Okawaru changes.

--------------------------------------------------------------------------------
a38675ed9c | Nicholas Feinberg | 2014-12-08 18:50:03 -0800

Make high-value Okawaru kills a bit more notable
To bring back the feeling of reward the old white-text "consumed
in a burst of flame" corpse sacrifice gave.

No change in actual piety values, just better messaging for kills
that already gave significant piety.

--------------------------------------------------------------------------------
fff2fcc34a | reaverb | 2014-12-08 21:15:07 -0500

checkwhite

--------------------------------------------------------------------------------
2a447e932c | Vsevolod Kozlov | 2014-12-08 20:40:25 +0300

Make the Xcode project syntactically correct again.
It's still outdated and largely broken, but at least now the adventurous may
attempt to address that from within Xcode itself.

[ci skip]

--------------------------------------------------------------------------------
a57d61ff2b | Shmuale Mark | 2014-12-08 11:42:39 -0500

Fix hunter equipment (#9310).

--------------------------------------------------------------------------------
7a949a48fc | Shmuale Mark | 2014-12-08 11:20:36 -0500

Fix cleaving with attacks after the first (PleasingFungus).

--------------------------------------------------------------------------------
dd79bc7ede | Shmuale Mark | 2014-12-08 10:11:04 -0500

New unrand - Gyre and Gimble (argonaut).
This version differs from the original patch in significant ways; in
fact, gameplay-wise, it's a whole new weapon. Instead of being,
effectively, a two-hander for short blades (i.e., the best in terms of
base damage that the class can provide), it's literally two strikes per
attack. I added vorpal to it because that definitely lowered damage
versus AC, and, of course, for the Jabberwocky reference.

Tile by roctavian.

--------------------------------------------------------------------------------
165986a94e | Shmuale Mark | 2014-12-08 10:10:57 -0500

Bring back the Sulking Sword.

--------------------------------------------------------------------------------
717f2747e8 | Shmuale Mark | 2014-12-08 10:10:51 -0500

Simplify cleaving check.

--------------------------------------------------------------------------------
3ee2fe14b3 | Nicholas Feinberg | 2014-12-07 23:04:25 -0800

Constify

--------------------------------------------------------------------------------
3fd268d3ac | Neil Moore | 2014-12-08 01:56:23 -0500

Make random_choose_weighted more general.
It can now accept const vectors of pairs, and also maps (const or not).

--------------------------------------------------------------------------------
b38e1a0f9d | Nicholas Feinberg | 2014-12-07 22:42:52 -0800

Tweak hell rat description
A bit of a run-on sentence before.

--------------------------------------------------------------------------------
69d78139dc | Nicholas Feinberg | 2014-12-07 22:41:17 -0800

Fix a hell effect crash
Oops

--------------------------------------------------------------------------------
ce6702b73e | Neil Moore | 2014-12-08 00:48:12 -0500

Use binomial in a couple of places.

--------------------------------------------------------------------------------
c823729374 | Neil Moore | 2014-12-08 00:38:49 -0500

Rename and generalise binomial_generator.
Call it simply 'binomial' to match 'bernoulli', and let it take a
scale so the probability isn't necessarily out of 100.

--------------------------------------------------------------------------------
be5b78e877 | Nicholas Feinberg | 2014-12-07 21:15:49 -0800

Refactor hell effect code
In preparation for some truly diabolical changes.

--------------------------------------------------------------------------------
a61b72e6ad | Nicholas Feinberg | 2014-12-07 20:07:02 -0800

Warn before cancelling blurry ?blink (Grunt)
Since it wastes one (or more!) turns, when you have blurry vision.

Other cancellable scrolls (e.g. ?ew, ?ea, amnesia) could in
principle have this interface, but the turn cost isn't really
relevant for those, and I suspect the UI annoyance of having a
prompt to cancel would be greater than the benefits.

It would be nice if the blink prompt warned you *why* you might
not want to cancel.

--------------------------------------------------------------------------------
0fbfc63011 | Nicholas Feinberg | 2014-12-07 19:56:43 -0800

Remove another "something's corpse armour" (Grunt)
And deduplicate.

--------------------------------------------------------------------------------
0614c1b1eb | Steve Melenchuk | 2014-12-07 20:23:19 -0700

Cap singularities at one per caster.
It's far too powerful otherwise.

--------------------------------------------------------------------------------
ddc8d8d065 | Steve Melenchuk | 2014-12-07 20:07:39 -0700

Let singularities and Gell's influence invisible enemies (HDA).
Oops.

--------------------------------------------------------------------------------
b2fad11c80 | reaverb | 2014-12-07 20:01:29 -0500

Fix a typo (Lightli)

--------------------------------------------------------------------------------
979a71a4b7 | reaverb | 2014-12-07 19:36:21 -0500

Auto-ID chaos weapons in tgw_xom

--------------------------------------------------------------------------------
7fc2ef3a1d | reaverb | 2014-12-07 19:36:06 -0500

Reduce butterfly spam in xom_butterflies
Don't spawn as many butterflies, mark butterflies that do spawn as
patrolling.

--------------------------------------------------------------------------------
57b17b484e | Nicholas Feinberg | 2014-12-07 14:47:04 -0800

Don't let goblins sleep through tossing (piginabag)

--------------------------------------------------------------------------------
80ef40ff0f | Nicholas Feinberg | 2014-12-07 14:13:15 -0800

Tidy some player EV code
Remove some dprfs I accidentally left in & shift a few variables
out of existence.

--------------------------------------------------------------------------------
2829fb0fae | Nicholas Feinberg | 2014-12-07 13:34:43 -0800

Smooth dodging penalties from armour
Wearing armour gives two separate penalties to EV. There's the AEVP penalty,
which scales with strength, armour skill, and the square of armour base EVP.
This is the component that can give you "negative" EV when in very heavy
armour. There's also a linear EVP penalty (with a formula that apparently
dates back to 4.1...?), which scales with strength, armour base EVP, and
size.

The latter penalty is the problem one - since it's capped by Dodging skill,
it makes Dodging do nothing until you "overcome" the penalty, at which
point Dodging gives EV at the same rate as if you had no armour at all.
This is misleading for new players (since it looks for all the world as
if Dodging is completely useless when in heavy armour) and rather clunky
beside.

This changes the linear penalty to divide EV from dodging rather than
subtracting from it. This makes heavy armour better at low Dodging and
worse at high Dodging; or, in other words, makes small amounts of
Dodging investment useful for heavy armour users, but high levels of
Dodging less of a priority. Which seems reasonable.

Some example values are here: http://pastebin.com/nKt9dqJH .

--------------------------------------------------------------------------------
7fe1c7e268 | Shmuale Mark | 2014-12-07 15:16:29 -0500

Fix reversed dagger stabbing logic.

--------------------------------------------------------------------------------
4939d66a1a | Shmuale Mark | 2014-12-07 15:04:39 -0500

Confiscate Maurice's time machine (#9309).

--------------------------------------------------------------------------------
1a4725ceef | Shmuale Mark | 2014-12-07 15:04:32 -0500

Improve tree-door interaction (#9299).

--------------------------------------------------------------------------------
86d58f692e | Shmuale Mark | 2014-12-07 15:04:26 -0500

Remove most race-based special cases in starting gear.
With clubstabbing gone, there's no reason for OgEn/As to start with a
club. They have really bad short blades apts, sure, but that's true of
plenty of other starts. With them having short blades, --Hu also gets
the same short sword on all starts.

The only remaining special case is DrFi's armour, since it is completely
unable to use scale mail.

--------------------------------------------------------------------------------
2cf2ab9247 | Shmuale Mark | 2014-12-07 15:04:20 -0500

Simplify stabbing when not using a short blade.
The extra damage that a one-handed polearm or long blade got were never
really meaningful in practice. The same is true of clubstabbing; it was a
good joke, but clubs are such a weapon of last resort (or first, in
practice) that you'd never run into it.

Everything in the removed middle tier got bumped down to the normal stab
multiplier, except for felid claws, which moved to short blade (but not
dagger) effectiveness.

--------------------------------------------------------------------------------
efe9c092bd | Shmuale Mark | 2014-12-07 15:04:12 -0500

Orange rat -> hell rat.
They're now demons, like hell hounds/hogs.

--------------------------------------------------------------------------------
86458c485a | Shmuale Mark | 2014-12-07 15:04:05 -0500

Rename some Gozag constants for clarity.

--------------------------------------------------------------------------------
ebc0875903 | reaverb | 2014-12-07 13:58:17 -0500

Make a comment clearer (PleasingFungus, |amethyst)
[ci skip]

--------------------------------------------------------------------------------
71d3e63ddc | reaverb | 2014-12-07 13:41:16 -0500

Move _get_random_armour_type()
Mostly to avoid having to prototype it.

--------------------------------------------------------------------------------
bb0f880708 | reaverb | 2014-12-07 13:41:16 -0500

Improve comments in _get_random_armour_type() (|amethyst)

--------------------------------------------------------------------------------
6d82212619 | Nicholas Feinberg | 2014-12-07 09:51:54 -0800

Actually fix robe ego odds
Oops

--------------------------------------------------------------------------------
ba0a0239e7 | Nicholas Feinberg | 2014-12-07 09:46:53 -0800

Fix robe ego odds
Accidently skewed by fa193e0f; among other things, odds of
Archmagi more than doubled.

--------------------------------------------------------------------------------
93b781fc67 | Nicholas Feinberg | 2014-12-07 09:36:21 -0800

Fix monster cloud resistance checks (ebering)
Monsters were checking is_fiery() or is_icy() instead of their
actual resistances for purposes of fire/cold cloud immunity.

--------------------------------------------------------------------------------
143f6246cb | Nicholas Feinberg | 2014-12-07 09:00:22 -0800

Improve Crawl's party potential
In the Book of Party Tricks, swap Blink for Invisibility.

Even out their respective rarity somewhat.

--------------------------------------------------------------------------------
789e4fb7fb | Steve Melenchuk | 2014-12-07 09:20:23 -0700

Assign vampires their spell frequencies (reaverb).
GGGRRRUUUNNNTTT

--------------------------------------------------------------------------------
26c730bfc4 | reaverb | 2014-12-07 02:21:35 -0500

Refactor _abyss_place_vaults() (abyss.cc)

--------------------------------------------------------------------------------
8482675098 | reaverb | 2014-12-07 01:43:54 -0500

Remove a weird special case in _get_random_armour_type()
This is technically an intentional mechanical change, but the difference
in armour type generation is imperceptibly small.

--------------------------------------------------------------------------------
4600900ca7 | reaverb | 2014-12-07 01:43:20 -0500

Refactor _get_random_armour_type() (makeitem.cc)

--------------------------------------------------------------------------------
8433e1452e | reaverb | 2014-12-06 23:20:29 -0500

Make the MP and HP regeneration of !ambrosia independant
Before, the exact number of "points" regenerated (ex. 3 hp/mp) was
shared between the MP and HP regeneration. This was an odd and
unintuitive connection, so now the MP and HP regeneration independently
choose a number between 3-5.

--------------------------------------------------------------------------------
2c7a338eb2 | reaverb | 2014-12-06 20:59:46 -0500

Add some text for Gozag wrath
This should probably be reviewed, but is better than not having any text.

[ci skip]

--------------------------------------------------------------------------------
0a461d48c3 | reaverb | 2014-12-06 20:58:09 -0500

Don't reduce Dispel Undead damage for non-hungry vampires
This wasn’t documented anywhere, was inconsistent with monster vampires,
and probably wouldn’t be impactful even if thoses issue were fixed.

--------------------------------------------------------------------------------
b588ef0fd1 | reaverb | 2014-12-06 19:35:29 -0500

Remove a special Lava Orc line in the Beogh description
Almost all Lava Orcs are gone anyway since there were removed before
hitting stable.

--------------------------------------------------------------------------------
4b3e9e2d97 | reaverb | 2014-12-06 19:30:28 -0500

Alphabetize dat/descript/gods.txt

--------------------------------------------------------------------------------
a5c7ff4d39 | reaverb | 2014-12-06 17:50:05 -0500

checkwhite

--------------------------------------------------------------------------------
7ae9a04a5a | reaverb | 2014-12-06 17:48:22 -0500

Improve items() documentation (makeitem.cc)
[skip ci]

--------------------------------------------------------------------------------
3bf792ca47 | gammafunk | 2014-12-06 16:40:54 -0600

Completely document a function (reaverb)

--------------------------------------------------------------------------------
49e4fd444f | gammafunk | 2014-12-06 16:20:12 -0600

Document a function
Commit 3000 I win.

--------------------------------------------------------------------------------
b69e976af7 | gammafunk | 2014-12-06 15:59:00 -0600

Give Frederick Spellforged Servitor and armour more befitting a demigod
Spellforged Servitor replaces his Invisibility, which isn't terribly
relevant by the time Frederick is encountered. Spellforged enhances
his high-damage spellset in a way that can be countered through
careful positioning.

I also restore his heavier body armour choices so he'll be a bit less
squishy. The justification for the previous downgrade of Frederick's
armour was the lack of realism/player-symmetry from a monster casting
high-level spells in heavy armour. However those issues aren't more
important than giving appropriate defenses to what's supposed to be
one of the hardest uniques in the 3 rune game.

--------------------------------------------------------------------------------
64dfc157d8 | reaverb | 2014-12-06 16:43:56 -0500

Remove a useless function argument
The agent parameter in items() has no effect on a stackable item such as
a scroll.

--------------------------------------------------------------------------------
80c3c75fc5 | Nicholas Feinberg | 2014-12-06 11:54:57 -0800

Rename Cigotuvi's Enum (|amethyst)

--------------------------------------------------------------------------------
671131563a | Nicholas Feinberg | 2014-12-06 11:39:06 -0800

Remove Leda's Liquefication from Hinderance
It's already in three (!) other books, and Hinderance has plenty
else going on, especially with Gell's.

--------------------------------------------------------------------------------
596a959b87 | John McCartney | 2014-12-06 11:16:35 -0800

Small edits to recent wielded weapon tiles.
Plus the greatsword tile I forgot earlier.

--------------------------------------------------------------------------------
beb6bfd87c | John McCartney | 2014-12-06 11:16:32 -0800

Goliath Beetle tile (Bloax)

--------------------------------------------------------------------------------
3fe31b982b | Nicholas Feinberg | 2014-12-06 10:16:34 -0800

Erp (Grunt)

--------------------------------------------------------------------------------
a17c66b2ac | Nicholas Feinberg | 2014-12-06 10:11:51 -0800

Add a new Depths vault
Hail Snails

--------------------------------------------------------------------------------
2fbbe067fc | Nicholas Feinberg | 2014-12-06 09:23:29 -0800

Don't place coagulated blood in a vault
Since it's scheduled to be removed in the next major version!

--------------------------------------------------------------------------------
4ccd47d4e2 | Nicholas Feinberg | 2014-12-05 22:48:18 -0800

Stabilize hydra form duration (tasonir)
Make it a little more consistent.

I considered using random2avg(pow,3), but that wasn't very good
in testing.

--------------------------------------------------------------------------------
ec99a282e1 | Nicholas Feinberg | 2014-12-05 20:53:19 -0800

Refactor some armour code
This was sitting around in the shp branch, but there's no reason
it can't be merged in now.

--------------------------------------------------------------------------------
4b4efb81a0 | Steve Melenchuk | 2014-12-05 20:42:22 -0700

Remove the book of Wizardry.
It's long since lost any semblance of thematic connectivity and has
instead become a dumping ground for spells we can't find any other good
books for, not to mention making some extremely powerful spells possibly
too common.

The only spell there not in any other book, Spellforged Servitor, is now
in the book of Power (which is no longer artificially common as of the
last commit). Every other spell is in exactly one other book; if you're
hungry for one of those spells to be common again, you can always
worship Sif Muna.

--------------------------------------------------------------------------------
36fec377b7 | Steve Melenchuk | 2014-12-05 20:24:37 -0700

Give the Plane Papyrus its new name in book-data.h.

--------------------------------------------------------------------------------
f31bc2b700 | Steve Melenchuk | 2014-12-05 20:24:37 -0700

Don't make books of Wizardry and Power artificially common.
This particular bit of code seems to date back in some version to before
DCSS. We're much more sophisticated in terms of our spells and books
these days.

--------------------------------------------------------------------------------
80618a574c | Neil Moore | 2014-12-05 21:12:36 -0500

Strip an underscore.

--------------------------------------------------------------------------------
889390b881 | reaverb | 2014-12-05 17:47:50 -0500

Reduce confuse duration in a few places (crate)
The older confusion durations made no sense and clearly assumed the
player would just use !curing. Orc wizards could confuse players for
over 35 turns on a lucky roll, and some spell miscast effects could
confuse the player for 60 turns.

The new standard is 5-7 turns for monster spells, gods confusing the
player, and miscast effects.

--------------------------------------------------------------------------------
d93d372e59 | gammafunk | 2014-12-05 15:17:48 -0600

Clean up some definitions and ruffle a few feathers in a vault
For gammafunk_depths_water_palace, fix up some KMONS and correct some
no_rtele_into. Also give a small chance for a single caustic shrike in
the two highest-tier monster placements.

--------------------------------------------------------------------------------
8f66c3dc79 | John McCartney | 2014-12-05 12:11:29 -0800

Revised wielded weapon tiles.
Absent: launchers, giant clubs, demon weapons, scythes, hammers, whips, clubs.

--------------------------------------------------------------------------------
9cd70b2f4e | Neil Moore | 2014-12-05 00:45:37 -0500

Remove an unused parameter.

--------------------------------------------------------------------------------
e6f431b200 | Neil Moore | 2014-12-05 00:38:02 -0500

Consolidate (reaverb)

--------------------------------------------------------------------------------
562a0a4e29 | Nicholas Feinberg | 2014-12-04 20:21:11 -0800

Don't warn when glaciating IOODs
Or battlespheres.

--------------------------------------------------------------------------------
91f60fc018 | Nicholas Feinberg | 2014-12-04 19:37:29 -0800

Tweak a cloud hint message (gammafunk)
Tell the player what to do in response to the next prompt they'll
get (5 and . will just make the game nag them to hit Y or N,
which seems annoying?), and don't tell them to try to wait out
clouds unconditionally, since a lot of them (including those from
the first tutorial!) come from cloud generators. (So waiting isn't
a great solution...)

Still probably useful to suggest waiting, since some clouds *do*
vanish over time... idk.

--------------------------------------------------------------------------------
0665d1dd2d | Nicholas Feinberg | 2014-12-04 19:12:05 -0800

Deduplicate (Grunt)

--------------------------------------------------------------------------------
af659beb4e | Nicholas Feinberg | 2014-12-04 19:04:47 -0800

Improve animate skeleton messenging (3835)
In cases where there's no space to raise a skeleton.

this code is kind of bad

--------------------------------------------------------------------------------
d29f1430c5 | Nicholas Feinberg | 2014-12-04 18:51:02 -0800

Fix an oversight in Trog gifting code (7913)
and may the god of your choice help us all.

--------------------------------------------------------------------------------
31825b7235 | Nicholas Feinberg | 2014-12-04 18:36:06 -0800

Rewrite Gell's Gravitas's description
Per request, to give it a bit more of a tloc feel.

The last sentence could use some work - a bit run-on right now.

--------------------------------------------------------------------------------
1b1a190228 | Nicholas Feinberg | 2014-12-04 17:40:48 -0800

Let Pandemonium Lords buzz & croak
It's fun!

--------------------------------------------------------------------------------
cba8f48a30 | Corin Buchanan-Howland | 2014-12-04 19:56:25 -0500

Adjust Ru Sacrifice Hand description to account for species (chequers)

--------------------------------------------------------------------------------
948502301a | John McCartney | 2014-12-04 15:14:05 -0800

Minor iterations for kobold and greatsword tiles.

--------------------------------------------------------------------------------
e3807df363 | Neil Moore | 2014-12-04 13:26:01 -0500

Refactor away the trits array.
Also make chapter and verse 0-indexed (adding one on output only).

Hopefully this version is a little clearer?  It should give exactly
the same results as before.

--------------------------------------------------------------------------------
f4e8d38841 | Steve Melenchuk | 2014-12-04 10:02:32 -0700

Buff Singularity pull damage further.
My old testing of this was based on buggy mechanics; with the mechanics
fixed the spell proved to be underpowered.

This puts the damage slightly higher than it was in the original
implementation (d12 instead of d10 - a doubling over trunk as of the
previous commit), which puts it back at the previously established point
where it should be roughly as lethal as other level 9 spells.

--------------------------------------------------------------------------------
cee2a0fcba | Steve Melenchuk | 2014-12-04 09:56:29 -0700

Fix death message for collisions caused by the player character.
Was "caused by ", now is "caused by you".

--------------------------------------------------------------------------------
3fb461fc80 | Steve Melenchuk | 2014-12-04 09:55:56 -0700

Gell's Gravitas.
A level 6 Hex/Translocation that pulls creatures towards a targeted
creature, potentially causing lots of collision damage - it's basically
a one-turn Singularity effect centered around a creature and without the
direct gravitational damage.

Appears in the book of the Warp and the book of Hinderance.

"Gell" is intended to be pronounced with a hard G.

--------------------------------------------------------------------------------
2795ab419a | Nicholas Feinberg | 2014-12-04 08:14:06 -0800

Update blurry vision description

--------------------------------------------------------------------------------
5de482b040 | Nicholas Feinberg | 2014-12-04 07:41:53 -0800

Improve curse weapon UI
Don't let players waste it when wielding a weapon of holy wrath;
and simplify.

--------------------------------------------------------------------------------
1cca78b6b3 | Nicholas Feinberg | 2014-12-04 07:36:20 -0800

Move (r)ead checks back again
To the keypress, before slot selection.

This is more convenient for the common case (trying to read a
scroll), and less convenient for the case of 'trying to read a
spellbook while silenced' (or similar); in those cases, you're
back to having to use (i) to examine your spellbooks.

--------------------------------------------------------------------------------
dda4581985 | Nicholas Feinberg | 2014-12-03 22:54:10 -0800

Make Blurry Vision cause reading to take longer
Try number two (ref 6df881ba), but this time implemented as a
delay, such that it actually takes longer for e.g. tele to kick
in after you start trying to read the scroll.

Currently takes one extra turn for each level of the mutation
(so 1+1 turns at level 1, 2+1 for level 2, 3+1 for level 3).
Possibly it would be better for the last level to give 4+1.

TODO: Would be good if there was a DELAY_ARMOUR_* style chance to
cancel out of the reading midway through, but I ran into
technical issues with the implementation - its messaging caused
the interrupt to fire immediately every time...?

--------------------------------------------------------------------------------
b8e75e7321 | Nicholas Feinberg | 2014-12-03 22:12:09 -0800

Refactor reading
Major effects: effects preventing you from reading scrolls now
appear in MSGCH_PROMPT instead of the default channel, and
silence, water elementals, and ru's no-scrolls effect no longer
prevent you from reading books with (r). This also means that
those effects are only warned about after you finish choosing a
scroll through (r), rather than when you hit (r). If that seems
annoying, please remove the "read books with (r)" functionality.

--------------------------------------------------------------------------------
c280d91bfe | Neil Moore | 2014-12-04 00:38:51 -0500

Rename stack_iterator::link() to index()
It was confusing for si.link() and si->link to mean different things.

--------------------------------------------------------------------------------
05e5429f7f | Neil Moore | 2014-12-04 00:16:45 -0500

Don't put an out-of-range value in a short.
Use 32767 (not SHRT_MAX, for hypothetical archs with 32-bit shorts) to
represent shop items in item_def::link.  Assert that this doesn't conflict
with monster items.

The save-fixup code is currently unconditional but that is negotiable.

--------------------------------------------------------------------------------
e1aa108bce | Neil Moore | 2014-12-04 00:16:44 -0500

Move definition of COMPILE_CHECK to AppHdr.h
This lets us use it in all of our headers, even ones that must be
included before debug.h.

--------------------------------------------------------------------------------
46a97b8439 | Neil Moore | 2014-12-04 00:16:44 -0500

Remove some support for pre-C++11.

--------------------------------------------------------------------------------
3dca6f65b4 | Neil Moore | 2014-12-04 00:16:44 -0500

Simplify _put_item_in_inv calling convention.
By not requiring that put_in_inv be preinitialised to false.

--------------------------------------------------------------------------------
e2af9637c0 | Neil Moore | 2014-12-04 00:16:44 -0500

Don't pretend successful pickup failed (#9294, ebering)

--------------------------------------------------------------------------------
fa193e0fbd | Nicholas Feinberg | 2014-12-03 20:26:22 -0800

Partially clean up _determine_armour_ego
The only change in behaviour should be sub-percent differences
in armour ego weights for body armours, & the removal of an
ancient and truly mysterious Archmagi ego special case. (It was
guaranteed to never appear on ego re-rolls, for reasons that
crawl developers appear to have been baffled by for at least the
last seven years.)

If Archmagi becomes too common after this change, there are
simpler ways to adjust the frequency...

--------------------------------------------------------------------------------
4ada312494 | Nicholas Feinberg | 2014-12-03 19:52:31 -0800

Fix barding brand generation (drke)
Barding of flying was accidentally removed in 3cebfc1d9e22b.

What terrible code...

--------------------------------------------------------------------------------
84df241bbf | Nicholas Feinberg | 2014-12-03 19:29:12 -0800

Make Gozag sparkly
Add sparkles on active Gozag gold, so it's a bit more obvious
now that it no longer has an aura. Doesn't currently appear
when a monster is on top of the gold, since it was visually
overwhelming - patches welcome...

Thanks to Lasty for testing & Grunt for fixing!

--------------------------------------------------------------------------------
4eb5e7e8a5 | Neil Moore | 2014-12-03 21:40:32 -0500

Placate g++-4.9 -Og
With -Og, not enough flow analysis is done to deduce that mons was
initialised in this loop condition, resulting in a bogus warning:

   files.cc:1852:75: warning: ‘mons’ may be used uninitialized in this
     function [-Wmaybe-uninitialized]

The warning didn't happen with -O0, which disables maybe-uninitialised
warnings; or with -O1 (or higher), which does enough analysis to figure
out that mons was initialised after all.

This change probably pleases PleasingFungus, too.

--------------------------------------------------------------------------------
30bbefbe1b | Neil Moore | 2014-12-03 21:27:31 -0500

Be more careful that we don't underflow zin arrays.
An array with specified size can be initialised with fewer elements than
its size, in which case the remaining elements are zero-initialized.  So
if someone accidentally reduced the number of entries, we wouldn't notice
until someone's recite actually hit those strings and dereferenced a null
pointer.

Instead, leave the array's length unspecified, but statically assert that
it has the length required by the text-generation code.  Then a too-short
list will result in a compile-time error.  Place the assertions with the
text-gen code rather than with the arrays, since the number being
asserted against should reflect the trit calculations and vice versa.

--------------------------------------------------------------------------------
812cb7abff | Shmuale Mark | 2014-12-03 18:42:05 -0500

Arguably move recite text to data.
Unfortunately, there's still no simple way to add a new verse because
of the way that the hashing works; along the same lines, moving the
text to the database is non-trivial.

--------------------------------------------------------------------------------
bcd715f2b5 | Shmuale Mark | 2014-12-03 18:41:59 -0500

s/RETURN_FROM_/EXIT_/g

--------------------------------------------------------------------------------
ec13ea20e9 | Shmuale Mark | 2014-12-03 18:41:53 -0500

Replace a boolean field with a flag.

--------------------------------------------------------------------------------
711cfe436d | Shmuale Mark | 2014-12-03 18:41:47 -0500

Don't call ball lightning creatures, either.

--------------------------------------------------------------------------------
99ee6f2631 | Shmuale Mark | 2014-12-03 18:41:42 -0500

Refactor place_spec_shop a bit.

--------------------------------------------------------------------------------
1e85cf02c1 | Shmuale Mark | 2014-12-03 18:41:36 -0500

Remove the shop hack.
You will be neither missed nor forgotten!

Tested save compat on old levels with one shop, with multiple shops,
and with new shops.

--------------------------------------------------------------------------------
6f1bef2b60 | Jesse Luehrs | 2014-12-03 14:53:17 -0500

don't give virulence without other poison spells

--------------------------------------------------------------------------------
b240d3dd54 | Jesse Luehrs | 2014-12-03 14:53:17 -0500

only weight randlich secondary spells
we were getting an unreasonably high rate of invisibility, because it
was the only hexes buff spell. similar issues with the conj primary
spells for ancient liches, since they would pair up more often

--------------------------------------------------------------------------------
68fde74e01 | Nicholas Feinberg | 2014-12-03 08:35:02 -0800

Roughly double Hellfire damage
The unrand arbalest, that is. From 2d5 to 3d8.

It was generally considered quite weak, and testing confirmed
that. For the cost of mulching all your ammo & making a lot of
noise, an unrand should give significantly more benefit than 2d5!

--------------------------------------------------------------------------------
d32549c8cb | ontoclasm | 2014-12-03 00:20:34 -0600

Tiles for "Vit and "Bloodlust

--------------------------------------------------------------------------------
f4f91b3c24 | Neil Moore | 2014-12-03 01:03:17 -0500

Autopickup blood after bottling (rigrig)
Just like chunks after butchering; this was broken when the butchery
delay was removed.

--------------------------------------------------------------------------------
3ffa1c35ab | Nicholas Feinberg | 2014-12-02 20:48:01 -0800

Make phantom mirrors slightly weaker
By adding a small amount of draining (HD reduction) to their
spawned illusion; currently a fixed 1/3 of the base HD, but making
it scale with evocations skill (from 1/2 to 1/4?) might be
worthwhile.

--------------------------------------------------------------------------------
97483b180f | Nicholas Feinberg | 2014-12-02 19:07:37 -0800

Remove 's' (nicolae~)

--------------------------------------------------------------------------------
7048d8aded | Nicholas Feinberg | 2014-12-02 18:38:07 -0800

Changelog through 0.16-a0-2936-gdb8a0b4

--------------------------------------------------------------------------------
db8a0b4af7 | Nicholas Feinberg | 2014-12-02 18:26:36 -0800

Possibly fix a wind blast crash
And add a few more asserts and checks.

--------------------------------------------------------------------------------
5af80600ea | Nicholas Feinberg | 2014-12-02 18:12:07 -0800

Plane Papyrus -> Akashic Record (ontoclasm)
THe previous name was a little too plain.

--------------------------------------------------------------------------------
71f8417ce4 | Jesse Luehrs | 2014-12-02 17:52:40 -0500

tone down serpent of hell dis a tiny bit
it seems reaching is stronger than i was expecting, it's getting quite a
lot of kills now, unbalancing it in the other direction

--------------------------------------------------------------------------------
7171bc01ff | Nicholas Feinberg | 2014-12-02 08:42:29 -0800

Adjust Cigotuvi's decay rate
Trying to strike a good balance between 'discouraging monster
stashing' and 'making the spell good'.

--------------------------------------------------------------------------------
710f2c4f0b | Neil Moore | 2014-12-02 01:44:18 -0500

Better wizard-explore interaction.
If you are already in wizard mode, treat + as an alias for &.  If you
are already in explore mode, don't mention lack of scoring in the
wizmode confirmation.

--------------------------------------------------------------------------------
2e49723cd4 | Steve Melenchuk | 2014-12-02 06:08:23 +0000

Make singularities attract, not repel.
Oops.

--------------------------------------------------------------------------------
dd371d77fa | Neil Moore | 2014-12-01 23:35:11 -0500

Spell (chequers)

--------------------------------------------------------------------------------
fd9a388cd1 | Nicholas Feinberg | 2014-12-01 20:15:10 -0800

Revert "Gozag: only duplicate one of a stack of items."
Being able to duplicate multiple items makes the ability
much more useful; in particular, it presents the player with
a choice of using it to duplicate early-game consumables, or
wait to see if later, more valuable items show up.

TODO: figure out how to reword the description of the ability
in ^.

This reverts commit fe8694ce61bd93657398bfb710cbb022ca7a0c9d.

--------------------------------------------------------------------------------
bdb1c56621 | Alex Jurkiewicz | 2014-12-01 20:05:23 -0800

Fix quoting

--------------------------------------------------------------------------------
cb379f9a7a | Nicholas Feinberg | 2014-12-01 19:46:17 -0800

Quotesgiving (9266, 9270)

--------------------------------------------------------------------------------
5f7418b28f | Nicholas Feinberg | 2014-12-01 19:16:17 -0800

Don't call orbs of destruction "creatures" (9285)

--------------------------------------------------------------------------------
90b936a7fd | Nicholas Feinberg | 2014-12-01 18:55:59 -0800

Colour AC/SH when corpse armoured in webtiles

--------------------------------------------------------------------------------
035df76285 | Neil Moore | 2014-12-01 21:12:04 -0500

Don't count Delayed Fireball as three-school.
And mark it as a utility spell.

--------------------------------------------------------------------------------
24bf5f526a | Nicholas Feinberg | 2014-12-01 17:38:16 -0800

Possibly fix ?/G (9280)

--------------------------------------------------------------------------------
dec789e242 | Steve Melenchuk | 2014-12-01 18:30:10 -0700

Adjust Singularity pull damage.
Having HD factor into this twice caused the damage to be extremely low
on the low end of the power scale, so now the size of a damage dice is
fixed at 6.

--------------------------------------------------------------------------------
3a242417f4 | Nicholas Feinberg | 2014-12-01 07:57:46 -0800

Fix a range assert (9284)
off-by-one...

--------------------------------------------------------------------------------
6aac55765e | Nicholas Feinberg | 2014-11-30 21:28:36 -0800

Make spectralized enemies drop corpses sooner
When killed & revived by the lost soul, not when being killed
the second time.

--------------------------------------------------------------------------------
2cc81975f5 | Nicholas Feinberg | 2014-11-30 21:15:20 -0800

Refactor Beogh deathbed conversions
Rename 'i', flatten, comment, etc.

--------------------------------------------------------------------------------
ca19eba08b | Nicholas Feinberg | 2014-11-30 21:04:16 -0800

Don't punish overkill
Specifically, when trying to enslave a soul or get a deathbed
orcish conversion.

This is a buff for both gods, which I'm fine with.

--------------------------------------------------------------------------------
af945e3e57 | Nicholas Feinberg | 2014-11-30 21:01:51 -0800

Flatten

--------------------------------------------------------------------------------
d2bf1efd64 | Nicholas Feinberg | 2014-11-30 20:59:24 -0800

More lost soul tweaks
Fix a bug that caused them to always claim they were 'reknitting'
the affected monster (even the living ones!), and deduplicate
some checks.

--------------------------------------------------------------------------------
8175b88f89 | Nicholas Feinberg | 2014-11-30 20:45:25 -0800

Improve lost soul messenging
Doesn't call monsters 'ghostly' while reviving them.

--------------------------------------------------------------------------------
4ae3da0db1 | Nicholas Feinberg | 2014-11-30 20:27:18 -0800

Deprecate POT_SLOWING
No longer used anywhere, huzzah!

--------------------------------------------------------------------------------
41081db114 | Nicholas Feinberg | 2014-11-30 20:27:18 -0800

Improve ambrosia messenging
Always print the ending message, regardless of whether it ended
by confusion ending or simple timeout.

--------------------------------------------------------------------------------
06f1e9d9ba | Edgar A. Bering IV | 2014-11-30 20:27:14 -0800

Refactor potion.cc to be a map
...from potion enum to potion effects, in a roughly similar structure to
transform.cc, etc.

Adjust other files acordingly; banish many inappropriate uses of potion_effect
when not actually drinking potions.

[Committer's note: fixed some things, rewrote stuff, etc]

--------------------------------------------------------------------------------
901904d9e5 | Nicholas Feinberg | 2014-11-30 19:42:54 -0800

Mark Ambrosia useless under divine stamina

--------------------------------------------------------------------------------
91149f4bdd | Nicholas Feinberg | 2014-11-30 19:40:28 -0800

Tweak ambrosia
Give the healing + mp even on the last turn of the effect.

--------------------------------------------------------------------------------
77ee4368d4 | Nicholas Feinberg | 2014-11-30 19:36:42 -0800

Stop the fountains of Olympus (zxc232)
Don't give everyone ambrosia, everywhere, forever.

--------------------------------------------------------------------------------
06e28aaeb9 | Nicholas Feinberg | 2014-11-30 17:59:55 -0800

More Ru cleanup

--------------------------------------------------------------------------------
a9f6940b63 | gammafunk | 2014-11-30 19:21:54 -0600

Allow Cigotuvi's Embrace to be in the spellbook loot for Fleshworks
I put it in the randbook named after him that's sometimes
generated. Also added necromancy as a potential second school for
choosing the other random spells in this book.

--------------------------------------------------------------------------------
c85b0587e1 | Nicholas Feinberg | 2014-11-30 16:24:18 -0800

Restore Spider's sweet ambrosia
This reverts commit 24381c416777577198129986a9082a3d73d2224d.

--------------------------------------------------------------------------------
91c5bcb1e5 | Edgar A. Bering IV | 2014-11-30 16:24:14 -0800

Replace Potions of Confusion with Ambrosia
A new potion, inspired by the old food item. Causes confusion
and an Elixir-like HP & MP-regeneration effect. If the confusion
is cured or prevented, the regeneration goes away.

[Committer's note: tweaked a bunch of stuff.]

--------------------------------------------------------------------------------
ae2dc62097 | Shmuale Mark | 2014-11-30 19:12:23 -0500

Improve distortion and rebranding interaction (#9278).

--------------------------------------------------------------------------------
a7666d4649 | Shmuale Mark | 2014-11-30 19:09:51 -0500

Add support for arbitrary-size fixedbooks.
Which requires some massive code improvements, thankfully. Unfortunately,
making randbooks (including vault-defined ones) >8 spells long takes a lot
more work to do.

--------------------------------------------------------------------------------
e4aa6a67c4 | Shmuale Mark | 2014-11-30 19:09:44 -0500

Clean up spl-book.cc a bit.
Use a map, and change "int" params to use the proper enum type. Whether
the latter is really a good thing is arguable, since it does mean adding
more casts in more places, but I think it adds clarity to the calls.

--------------------------------------------------------------------------------
f91e080ebb | ontoclasm | 2014-11-30 17:41:07 -0600

Potion tiles

--------------------------------------------------------------------------------
010c0ec4c0 | ontoclasm | 2014-11-30 17:41:06 -0600

Darken Out-of-LoS tiles a bit

--------------------------------------------------------------------------------
013f23455d | Nicholas Feinberg | 2014-11-30 15:09:20 -0800

Simplify (wheals)

--------------------------------------------------------------------------------
c475c69617 | Steve Melenchuk | 2014-11-30 15:40:56 -0700

Remove an evil special case (#9281).
I think this was somehow re-enabled during the monster spell slot
rework; it's not needed any more, in any case, as monster digging is
handled differently.

--------------------------------------------------------------------------------
b9e4ae8f73 | Steve Melenchuk | 2014-11-30 14:44:45 -0700

Don't assume all spells are evoked.
LLLAAASSSTTTYYY

--------------------------------------------------------------------------------
d83f56cbf8 | theTower | 2014-11-30 15:06:44 -0500

Don't give rPois- via Venom card or poison miscast to the poison immune
Messages are still mediocre here, but whatever.

The nonliving can still get the reduction if they're not already poison
immune, but arbitrary resistances around there are a headache and they're
already blocked from being poisoned.

--------------------------------------------------------------------------------
81b229c4a5 | Jesse Luehrs | 2014-11-30 13:23:37 -0500

sigh

--------------------------------------------------------------------------------
d50c8f4836 | Jesse Luehrs | 2014-11-30 11:58:27 -0500

fail deps.pl if submodules don't download properly

--------------------------------------------------------------------------------
ba170f61b8 | Jesse Luehrs | 2014-11-30 10:41:47 -0500

adjust lich primary spell weights
i had doubled up greater demon earlier because 20% seemed a bit low, but
25% is probably fine, especially since we are still getting comments
about randliches being pretty summon-heavy. note that because of the
chance of ancient liches getting two primary spells, the chance for
greater demon on ancient liches actually goes from 47% to 38% with this
change, compared to 33% -> 25% on normal liches.

--------------------------------------------------------------------------------
8b5e8d6b31 | Jesse Luehrs | 2014-11-30 10:23:28 -0500

tone down damage scaling for monster chain lightning
this keeps damage the same (58) for nikola (the only previous user), but
scales the max damage for ancient liches down from 82 to 64.

--------------------------------------------------------------------------------
feb50857a5 | Nicholas Feinberg | 2014-11-30 02:30:51 -0800

Stop something's corpse armour falling off (ontoclasm)

--------------------------------------------------------------------------------
dbabbbf052 | Neil Moore | 2014-11-30 03:48:36 -0500

Anonymise some dummy parameters.

--------------------------------------------------------------------------------
d00b090a18 | Neil Moore | 2014-11-30 03:10:03 -0500

Don't crash on monster Summon Swarm.

--------------------------------------------------------------------------------
c88283cccf | theTower | 2014-11-30 02:29:12 -0500

Minor vault batch
Mostly decorative vaults, except for one horrible monster pairing
that I've had at the back of my mind occasionally for ages.
Also, some nearby .des clean-up, with header standards imposition
or some organization stuff or whatever.

I briefly wanted the Lair and Zot vaults to have serial-vault-like
placement to repeat the weird shapes on a floor, but there are a
bunch of ugly implementation problems or letting them spill across
more than one floor each. It'd be mildly neat for some rather simple
decorative vaults to be capable of such a trick through vault.lua
and some recursive dgn.place_maps or whatever, but this seems rather
excessive for these cases for now, so whatever.

--------------------------------------------------------------------------------
d875327956 | Steve Melenchuk | 2014-11-29 22:56:06 -0700

Merge branch 'panlord-colour'

--------------------------------------------------------------------------------
1f3fc7e4b9 | Nicholas Feinberg | 2014-11-29 20:36:16 -0800

More Ru refactoring
Export a key & simplify _ru_expire_sacrifices().

--------------------------------------------------------------------------------
b62e65c8ba | Nicholas Feinberg | 2014-11-29 20:29:21 -0800

Move sacrifice special cases into data

--------------------------------------------------------------------------------
f30c461e61 | Nicholas Feinberg | 2014-11-29 20:20:18 -0800

Simplify Ru sacrifice choice code further

--------------------------------------------------------------------------------
2ce9f56605 | Nicholas Feinberg | 2014-11-29 20:20:18 -0800

Partially refactor _get_possible_sacrifices()

--------------------------------------------------------------------------------
792263a835 | reaverb | 2014-11-29 22:26:21 -0500

Replace NULL with nullptr

--------------------------------------------------------------------------------
f5804bfecf | Neil Moore | 2014-11-29 22:15:53 -0500

Reformat some Sabbath.

--------------------------------------------------------------------------------
f7891978d1 | ontoclasm | 2014-11-29 19:48:46 -0600

Misc. panlord appearance tweaks

--------------------------------------------------------------------------------
f9d895fbe1 | Shmuale Mark | 2014-11-29 20:41:36 -0500

Add a file that makes shift-move safe move instead of run (_miek).

--------------------------------------------------------------------------------
d31a67b406 | Mark Lodato | 2014-11-29 20:39:21 -0500

Add CMD_SAFE_MOVE_<direction> and CMD_SAFE_WAIT.
These commands move the player in <direction> or wait a turn, but only
if there is no monster around, equivalent to running one tile or
resting one turn.

This commit does not bind these commands to any keys by default.

--------------------------------------------------------------------------------
e9e5c9c06d | Shmuale Mark | 2014-11-29 20:39:15 -0500

Checkwhite.

--------------------------------------------------------------------------------
c2d8bb1205 | infiniplex | 2014-11-29 20:39:09 -0500

Moved C++ layouts to their own file

--------------------------------------------------------------------------------
c71123d702 | infiniplex | 2014-11-29 20:39:03 -0500

Removed redundant commands to set layout types

--------------------------------------------------------------------------------
d2d4e316f7 | Shmuale Mark | 2014-11-29 20:38:57 -0500

Swap ophan and seraph halo sizes.

--------------------------------------------------------------------------------
e483a13501 | reaverb | 2014-11-29 19:17:26 -0500

Turn the bools in duration-data.h into a bitfield

--------------------------------------------------------------------------------
46c264ec21 | Nicholas Feinberg | 2014-11-29 16:08:24 -0800

Refactor _arcane_mutation_to_skill()
Goes from O(1) to O(n), but could be trivially cached if anyone
cares, which they shouldn't.

--------------------------------------------------------------------------------
5113d45b9f | Nicholas Feinberg | 2014-11-29 15:45:48 -0800

Fix a sacrifice message
Ru asks you to Ru asks you to sacrifice all use of:

--------------------------------------------------------------------------------
a8467ebb93 | Nicholas Feinberg | 2014-11-29 15:44:54 -0800

Gut _arcane_mutation_to_school_name()

--------------------------------------------------------------------------------
ef4c3f3bdf | Nicholas Feinberg | 2014-11-29 14:41:44 -0800

Simplify (Grunt)

--------------------------------------------------------------------------------
4319a51cf9 | Edgar A. Bering IV | 2014-11-29 14:16:55 -0800

Make _potion_effect not use potion types
But, instead, miscast_potion_types. (potion_like_effects...?)

Since they're not really using the potions anyway, and we'd like
to be able to change/remove potions without having to touch miscast
code!

--------------------------------------------------------------------------------
e6c42d3647 | Nicholas Feinberg | 2014-11-29 14:08:18 -0800

Warn before Irradiating pals (Davzz)

--------------------------------------------------------------------------------
d43c0913ad | Nicholas Feinberg | 2014-11-29 13:53:26 -0800

Add Cigotuvi's Badtile

--------------------------------------------------------------------------------
18880c70bb | Nicholas Feinberg | 2014-11-29 13:34:07 -0800

Improve randlich spell tweak (fishbowltower)

--------------------------------------------------------------------------------
d888b4b6d3 | Nicholas Feinberg | 2014-11-29 13:29:27 -0800

Temporarily remove randlich chain lightning
Excessively murderous.

It will return in a slightly less murderous form, in future.

--------------------------------------------------------------------------------
cba7b01720 | Nicholas Feinberg | 2014-11-29 13:14:40 -0800

Irradiate quote (9265)

--------------------------------------------------------------------------------
e2ecd221d7 | Nicholas Feinberg | 2014-11-29 13:10:31 -0800

Simplify (r)eading books (9274)
Now exactly the same as examining them through the inventory.

Also, weirdness fixed.

--------------------------------------------------------------------------------
3b3e50b52d | Jesse Luehrs | 2014-11-29 10:12:37 -0500

changelog

--------------------------------------------------------------------------------
103dd5a787 | theTower | 2014-11-29 02:06:02 -0500

Scattered minor monster tweaks.
 * Remove poisonous bites from two spiders that already have distinct
   non-poisonous offense, jumping and orb. The former gets a slight
   damage boost to the bite to compensate (not that the poison was
   previously seen very often anyway, since 5 damage won't get to
   trigger poison against nearly any ac), the latter gets nothing since
   it takes discord or frenzy to even see them bite.
 * Give Mnoleg more exciting attack verbs, since he is juxtaposed
   with klowns now and they get such exciting attack verbs themselves.
   The only influencing aspect of this is that one attack counts as
   a claw for hydras.
 * Give Dissolution 4 more HD, so his poly isn't sad (for now) and
   so that he has a better chance to actually hit extended evasion
   without needing eyeball paralysis.
 * Block Killer Klowns from polymorph / shapeshifters; they're extremely
   weird to get from such, and the top hd area for the either of those
   already got the highly-dangerous birds without needing klowns too.

--------------------------------------------------------------------------------
216a3f23a7 | ontoclasm | 2014-11-29 00:50:55 -0600

Panlord description fixes/changes

--------------------------------------------------------------------------------
034f38ace7 | ontoclasm | 2014-11-29 00:50:34 -0600

Panlord wing edits

--------------------------------------------------------------------------------
a1f9c715c5 | Neil Moore | 2014-11-29 01:00:57 -0500

Fix compilation (doh)

--------------------------------------------------------------------------------
4cdb923cc8 | Steve Melenchuk | 2014-11-28 22:50:54 -0700

Don't count natural abilities as spells for monster berserk checks.
Should get moths of wrath to berserk draconians, dragons, etc. again.

--------------------------------------------------------------------------------
caa0ce6dc9 | Neil Moore | 2014-11-29 00:12:17 -0500

Improve(?) the message for entering a malign portal.

--------------------------------------------------------------------------------
e6c188f513 | Neil Moore | 2014-11-29 00:09:02 -0500

Improve a kaux.
The message needs to be improved, too: 2d4 damage is hardly significant
enough to be called "untold damage".

--------------------------------------------------------------------------------
89b0ea9da0 | Neil Moore | 2014-11-29 00:09:02 -0500

Don't let trees enter malign portals.
They would take the damage but stay in their old location with the
message "You feel a strange sense of stasis."

--------------------------------------------------------------------------------
0bde350bb2 | Steve Melenchuk | 2014-11-28 22:02:40 -0700

Only damage an actor in collision if it's not dead already (78291).
Killing the other can trigger explosions, etc. which can kill the actor
before it calls the next hurt() line.

--------------------------------------------------------------------------------
9b01c91527 | Steve Melenchuk | 2014-11-28 20:46:51 -0700

Don't slam into the ! (78291).

--------------------------------------------------------------------------------
36668d8733 | Steve Melenchuk | 2014-11-28 20:40:52 -0700

Simplify? De-indent, anyway.

--------------------------------------------------------------------------------
b4187f6a99 | Steve Melenchuk | 2014-11-28 20:39:16 -0700

Wake up monsters with Singularity pull or collisions (78291).

--------------------------------------------------------------------------------
f7af8614b4 | theTower | 2014-11-28 21:57:21 -0500

Roughly sort mon-pick-data.h entries
The lists are roughly sorted by two methods. Either the branch's scaling
is unimportant or barely present, in which case the monster entries are
sorted by rough holiness / concept categories and vague strength, or the
branch scaling is obvious and relevant, which thus implies sorting by a
sucession of minimum depth, maximum depth, weight, and weighting type.

It's still not necessarily very visible in the latter case what the average
floor's population is like, but it should be a little easier to see what
the branch's overall progression is like as well direct comparsion points
for other monsters. For the former case, it makes it easier to assess what's
present in that area by virtue of the groupings.

(A handful of lines with redundant FLAT ranges were trimmed, too.)

Nothing should change, content-wise, from this. I hope.

--------------------------------------------------------------------------------
0ee3188b55 | Steve Melenchuk | 2014-11-28 18:40:17 -0700

New Seraph tile.
Pieced together from Denzi's old TSO avatar tile and some of the other
current holy tiles, with some cues taken from Denzi's previous seraph
tile.

32x48. Beware.

Thanks to ontoclasm for helping me polish this up.

--------------------------------------------------------------------------------
d16e107285 | Steve Melenchuk | 2014-11-28 15:15:51 -0700

Show weapons and shields properly on more holies.
This involves some edits to the daeva tile to remove the weapon and
shield that were already there.

--------------------------------------------------------------------------------
f5a4698497 | Steve Melenchuk | 2014-11-28 14:44:45 -0700

Remove a stray debugging include.
GGGRRRUUUNNNTTT

--------------------------------------------------------------------------------
bac12d71a8 | Steve Melenchuk | 2014-11-28 14:42:30 -0700

Line up panlord descriptions with tiles.
We're losing a lot of descriptions in the process here, but there's a
hunger to make new panlord tiles anyway, so we can bring those back once
we have tiles for them.

--------------------------------------------------------------------------------
2a17276f40 | reaverb | 2014-11-28 16:35:59 -0500

Adjust Makhleb's ^ screen for piety changes

--------------------------------------------------------------------------------
10e9ef064a | reaverb | 2014-11-28 16:35:59 -0500

Increase Makhleb piety to compensate for no corpse sacrifices
Specifically, increase it for MH_NATURAL monsters (which is highly
correlated with dropping a corpse). The piety for those monsters is 4/3
what it used to be.

This is an estimate, anybody else should feel free to tweak this if they
feel Makhleb piety is off.

--------------------------------------------------------------------------------
6f54bd88d1 | reaverb | 2014-11-28 16:35:59 -0500

Remove Makhleb corpse sacrifices
Since I failed to say this when I remove Okawaru sacrifices, I'll
describe here why corpse sacrifices are being targeted:

In general, corpse sacrifices have a huge interface burden. Players need
to go over every single corpse generated in the game they do not a
specific use for and press “p”. This is so bad there is an automation
option - a clear sign that a system isn’t producing enough decisions.

This would be possibly acceptable if there was a massive benefit to
keeping corpse sacrifices, but in this case there isn’t. For most
characters, there are some corpse which should obviously be sacrificed
(those the character can’t eat or animate), some amount of corpses which
clearly need to be eaten/butchered for hides, and a very tiny amount of
corpses which make the player seriously consider the cost/benefit
analysis of eating the corpse versus sacrificing it to their god.

Corpse sacrifices do cause some minor distinction between species which
need to eat different amounts of corpses, but this is an extremely small
benefit when compared to the massive downsides of corpse sacrifices. (In
addition there are other ways species interact different with the gods,
most notably different Invocations aptitudes).

--------------------------------------------------------------------------------
9d443a7fa9 | ontoclasm | 2014-11-28 15:30:57 -0600

Vault stone tiles (Bloax)

--------------------------------------------------------------------------------
b1503ec42c | Steve Melenchuk | 2014-11-28 13:42:49 -0700

Make shining gold always visually distinct from normal gold (simm).

--------------------------------------------------------------------------------
38083abf72 | Steve Melenchuk | 2014-11-28 13:39:48 -0700

Don't display asterisks for Gozag.
Gozag has no piety.

--------------------------------------------------------------------------------
fd4149476d | Steve Melenchuk | 2014-11-28 13:35:52 -0700

Fix Agony, etc. enchantment power modifiers (#9273).
Overloading this field is abominably stupid; it needs to at least be a
union if not a completely separate field.

--------------------------------------------------------------------------------
b7eb04b2a9 | Steve Melenchuk | 2014-11-28 13:33:40 -0700

Make Gozag-distracting gold itself shine as opposed to show an aura.
That is, the tiles surrounding it don't glow; only the gold itself does.

Should be less visually spammy.

TODO: make the gold aura icons sparkly; actually remove the aura (which
is presently used only to make sure the aura shows up in tiles).

--------------------------------------------------------------------------------
bfba8e5a40 | Steve Melenchuk | 2014-11-28 12:58:58 -0700

Only apply the CURSE OF GOZAG to items new to the player.
This disallows scumming the wrath by dropping and picking up rations,
etc.

--------------------------------------------------------------------------------
4f5c9dff29 | Steve Melenchuk | 2014-11-28 12:33:37 -0700

Abort Corona cast if only targets are glowing/shadowed (ChrisOelmueller).
That is, properly consider them unenchantable for the purpose of z as
opposed to Z.

--------------------------------------------------------------------------------
11696f2d6a | reaverb | 2014-11-28 13:25:15 -0500

Make Zin hate drinking !benemut even if you don't mutate (#9271)

--------------------------------------------------------------------------------
6f819ab2a4 | Shmuale Mark | 2014-11-28 12:48:45 -0500

Shush some compiler warnings.

--------------------------------------------------------------------------------
dab3699267 | Shmuale Mark | 2014-11-28 12:48:30 -0500

Build with -Wunused-parameter.

--------------------------------------------------------------------------------
1ed58d5827 | Shmuale Mark | 2014-11-28 12:46:42 -0500

Fixup "Fixup fixup of fixup_spells.".

--------------------------------------------------------------------------------
446179fa3f | Steve Melenchuk | 2014-11-28 10:09:00 -0700

Fixup fixup of fixup_spells.
GGGRRRUUUNNNTTT

--------------------------------------------------------------------------------
0d1fc55f72 | Steve Melenchuk | 2014-11-28 09:39:27 -0700

Fixup fixup_spells; make crashforged servitors spellforged again.
freq wasn't get set heading into normalize_spell_freq, which seems to
have assumed that it had non-zero frequencies to work with there. It now
has an ASSERT to stop that from happening and crashing messily.

--------------------------------------------------------------------------------
b1d3efbb7a | Nicholas Feinberg | 2014-11-27 20:54:03 -0800

Remove 6-year-old commented code
For heaven's sake.

--------------------------------------------------------------------------------
f29fc7bb49 | Edgar A. Bering IV | 2014-11-27 20:46:19 -0800

Add a piety meter for Xom
Position based on current mood; coloured if interest dips to (or
near) BORING levels.)

--------------------------------------------------------------------------------
91abeda927 | Edgar A. Bering IV | 2014-11-27 20:34:30 -0800

fix my name in the credits

--------------------------------------------------------------------------------
0c166a1664 | Nicholas Feinberg | 2014-11-27 19:50:07 -0800

Spell-item description simplification
Deduplicate the listing (which previously occurred in several
different places), add future support for interactive monster
spell listings, make the game exit the inventory screen when
you destroy a book for amnesia (as it does when memorizing a
spell), and remove a 14-year-old piece of code that
constructed a null-terminated string by hand for no reason.

--------------------------------------------------------------------------------
1ef6e0773a | Steve Melenchuk | 2014-11-27 12:49:28 -0700

Consistently use one ray for singularity pulling.

--------------------------------------------------------------------------------
7c202e2f61 | Steve Melenchuk | 2014-11-27 19:39:14 +0000

Give Singularity to random panlords.
As well as Fulminant Prism, to see how it operates.

Muhahahahahahaha.

--------------------------------------------------------------------------------
e7309210be | Nicholas Feinberg | 2014-11-27 10:39:35 -0800

Brace.

--------------------------------------------------------------------------------
2fa5026c6d | Steve Melenchuk | 2014-11-27 11:18:45 -0700

Call down the wrath of NO GOD against DEAD VARIABLE (PleasingFungus).

--------------------------------------------------------------------------------
79a78a45d7 | Steve Melenchuk | 2014-11-27 11:12:46 -0700

Save compat for randliches.
I'm not 100% sure this loads the old spells properly, but that may not
be relevant.

--------------------------------------------------------------------------------
ada22b11b4 | Steve Melenchuk | 2014-11-27 11:01:45 -0700

Change dependence of Singularity radius / strength on power.
Strength now falls off with range^2, not 4 + range. This reduces the
range at high power considerably and increases the strength at low power
considerably, both of which have been identified as issues.

--------------------------------------------------------------------------------
94d3aa48ce | Steve Melenchuk | 2014-11-27 10:50:05 -0700

Show strength=2 radius in singularity targeter as well.
So you can get an idea of how the power varies with radius.

--------------------------------------------------------------------------------
b84b67957b | Steve Melenchuk | 2014-11-27 10:47:27 -0700

Move singularity acting code before IOOD check.
So that it can use M_PROJECTILE while still being able to act properly.

--------------------------------------------------------------------------------
aef931b78d | Jesse Luehrs | 2014-11-27 12:39:19 -0500

fix loading randart ring mails in dump files (#9148)

--------------------------------------------------------------------------------
f64f25e63e | Steve Melenchuk | 2014-11-27 10:32:57 -0700

Disallow harming or moving singularities in any way.

--------------------------------------------------------------------------------
be8f03c934 | Steve Melenchuk | 2014-11-27 10:28:03 -0700

Buff collision damage.
Since it's affected by AC now.

--------------------------------------------------------------------------------
9cca1f91b7 | Steve Melenchuk | 2014-11-27 10:26:57 -0700

Fix Chilling Breath crashes.
Turns out the ray could advance into the wall and not get reset properly
afterwards; this now only keeps the ray advance if the position is
viable for that.

--------------------------------------------------------------------------------
2c22021d8a | Steve Melenchuk | 2014-11-27 10:13:07 -0700

Set killer properly for death curses (wheals).
No more killer= and ckiller=something.

--------------------------------------------------------------------------------
cc9fb9076a | Jesse Luehrs | 2014-11-27 11:54:00 -0500

+ instead of ^M for explore mode

--------------------------------------------------------------------------------
ee78a5f042 | Jesse Luehrs | 2014-11-27 11:14:01 -0500

allow felids to die normally in explore mode

--------------------------------------------------------------------------------
ec0c33657e | Jesse Luehrs | 2014-11-27 11:09:34 -0500

save explore mode state

--------------------------------------------------------------------------------
e4f82b4228 | Jesse Luehrs | 2014-11-27 10:01:21 -0500

Merge branch 'master' into explore

--------------------------------------------------------------------------------
cf5e8e8df6 | Jesse Luehrs | 2014-11-27 09:53:23 -0500

simplify

--------------------------------------------------------------------------------
438a5bdfef | Jesse Luehrs | 2014-11-27 09:51:09 -0500

make sure that all liches get at least one conj spell

--------------------------------------------------------------------------------
1f429eaa23 | Jesse Luehrs | 2014-11-27 08:33:57 -0500

Merge branch 'master' into randliches
Conflicts:
	crawl-ref/source/mon-util.cc

--------------------------------------------------------------------------------
8e9c1c3f36 | ontoclasm | 2014-11-27 00:49:59 -0600

Panlord body & head edits

--------------------------------------------------------------------------------
f27bdc9e83 | Nicholas Feinberg | 2014-11-26 21:21:16 -0800

Insert the letter 'c'

--------------------------------------------------------------------------------
f464bc11a9 | Neil Moore | 2014-11-27 00:18:25 -0500

Fix quote formatting and citations.

--------------------------------------------------------------------------------
971073eaa8 | Neil Moore | 2014-11-27 00:11:54 -0500

Further remove player twisted res.
Mark the spell as SPFLAG_MONSTER, and remove the cast_* function.

--------------------------------------------------------------------------------
cc6096eb77 | Nicholas Feinberg | 2014-11-26 20:58:46 -0800

Mess with battlesphere quotes (9267)

--------------------------------------------------------------------------------
883b90acec | Nicholas Feinberg | 2014-11-26 20:51:37 -0800

Shatter/LRD quotes (ramc, 9267)

--------------------------------------------------------------------------------
09ec9a7b38 | theTower | 2014-11-26 19:49:01 -0500

Sprinkle around some shrikes (and other quick vault population tweaks)
Mostly additions to Cocytus and Zot, though both caustics and shards
have lone visitations in a miniscule slice of some Depths vaults.
Also, caustics replace some lair end vault representatives for Lair
zigs, shard shrikes slip into Ice zigs, and orc zigs don't place excess
orcs anymore (since it doesn't really add to the threat and gets in the
way of placing marginally more dangerous stuff in later zigs).

--------------------------------------------------------------------------------
f4312ef09d | David Ploog | 2014-11-26 23:47:19 +0100

A few Xom lines.

--------------------------------------------------------------------------------
441a2c6c63 | ontoclasm | 2014-11-26 16:42:44 -0600

Modify pandlord color schemes

--------------------------------------------------------------------------------
1a094adc68 | Neil Moore | 2014-11-26 16:42:24 -0500

Add a 1/8 chance for Plane Papyrus in wizlab_golubria.

--------------------------------------------------------------------------------
4d0de3aa48 | John McCartney | 2014-11-26 13:04:27 -0800

Black pixels on monster damage indicator now slightly semi-transparent.

--------------------------------------------------------------------------------
6b5998ce05 | John McCartney | 2014-11-26 13:04:26 -0800

Removed rim from wretched stars in dc-mon.

--------------------------------------------------------------------------------
e8f33aba1a | John McCartney | 2014-11-26 13:04:24 -0800

Further iterations to goblinoids; better visibility for wretched stars.

--------------------------------------------------------------------------------
0574ea0cec | Neil Moore | 2014-11-26 16:00:31 -0500

Allow scrolling stack-five card descriptions (#9262)
Also insert empty lines between them, now that we aren't so pressed
for space.

--------------------------------------------------------------------------------
583cba717a | Neil Moore | 2014-11-26 15:37:00 -0500

Avoid another pacification crash.
When reentering a level that had a confused pacified monsted on stairs:
  http://dobrazupa.org/morgue/Farquar/crash-Farquar-20141126-194317.txt

We should really just avoid removing the monster in handle_behaviour and
do that on the monster's next turn.  Similar crash fixes for pacified
monsters include 5b05a17, d65c940, and 48bc299, and those are just the
ones I committed myself.

--------------------------------------------------------------------------------
b387b371e6 | Nicholas Feinberg | 2014-11-26 07:29:38 -0800

Adjust a default runrest_ignore
Nothing special about the last point of corpse armour.

--------------------------------------------------------------------------------
58a9753bca | Neil Moore | 2014-11-26 07:55:20 -0500

Fix broken arena monster inventory listing (doh)
copy_if can't extend its destination container, so this use had a major
bounds error.  Don't do that.

Should probably implement templates for pushall, pushif, etc.; or maybe
a filtering iterator adaptor which can then be passed to vector's
constructor.

--------------------------------------------------------------------------------
ec9f0a129b | Neil Moore | 2014-11-26 06:39:46 -0500

Allow "cursed good_item" and "cursed acquire foo".

--------------------------------------------------------------------------------
cebb4a2bca | Neil Moore | 2014-11-26 06:11:05 -0500

Simplify some LOS code.
Trees are FFT_OPAQUE now, so don't bother checking for them specifically.
Also, chain together some ifs to be a little less misleading.

--------------------------------------------------------------------------------
5c4043574d | Neil Moore | 2014-11-26 06:11:05 -0500

LOS_* documentation table
[Committer's note: updated for changes in the last two years.
 Thanks to wheals for pointing out this commit that I never
 pushed.]

--------------------------------------------------------------------------------
38c6a8d0ca | Neil Moore | 2014-11-26 05:44:28 -0500

Fix whitespace.
GGGrrruuunnnttt

(cf. d6deaf6c)

--------------------------------------------------------------------------------
4697bae4d9 | Neil Moore | 2014-11-26 05:44:28 -0500

Make sure we don't overflow minor tags.

--------------------------------------------------------------------------------
09e05eeeb2 | Neil Moore | 2014-11-26 05:41:01 -0500

Be more sign-correct when marshalling version tags.
They're unmarshalled as unsigned bytes, and we are at minor version 120
at the moment so that will be more significant soon.

--------------------------------------------------------------------------------
720ec26bbf | Jesse Luehrs | 2014-11-26 03:33:22 -0500

add some newlines to the travis error messages

--------------------------------------------------------------------------------
09de7a3d7f | Nicholas Feinberg | 2014-11-25 22:29:03 -0800

Possibly fix a CHILLING_BREATH crash
And do some misc cleanup.

(The actual change is comparing newpos to ray_copy.pos(), rather
than oldpos (the position of the ray at the start of the function
call); those two were identical before 9c4167e0bf42, but since
knockback can travel more than two tiles now, they diverge after
the first loop iteration.

I'm still not entirely clear why the ray could fail to move, but
we actually check for that now, which seems good?)

--------------------------------------------------------------------------------
0b38221bb4 | Steve Melenchuk | 2014-11-26 06:25:03 +0000

Apply AC to collision damage (PleasingFunguus, theTower).
Since it's physical damage.

--------------------------------------------------------------------------------
163279531b | Steve Melenchuk | 2014-11-25 23:01:28 -0700

Simplify.
rip

--------------------------------------------------------------------------------
1697cd3d78 | Nicholas Feinberg | 2014-11-25 21:56:41 -0800

Don't crash whenever the player takes cloud damage
asdfkjlxckv

--------------------------------------------------------------------------------
bf077e576a | Nicholas Feinberg | 2014-11-25 21:09:17 -0800

Further changelog tweaks (GGGRRRUUUNNNTTT)

--------------------------------------------------------------------------------
c956872adb | Nicholas Feinberg | 2014-11-25 21:07:22 -0800

Changelog tweaks

--------------------------------------------------------------------------------
03cc8d5ebb | Nicholas Feinberg | 2014-11-25 19:57:34 -0800

Add an assert
An attempt to help diagnose 9257, if it happens again.

--------------------------------------------------------------------------------
b2afc92e00 | gammafunk | 2014-11-25 21:43:42 -0600

Put phantom mirrors with miscellaneous items on the knowledge screen
They were previously under their own category, but they belong with
other items of their base type.

--------------------------------------------------------------------------------
ecdb4fcab9 | Nicholas Feinberg | 2014-11-25 19:37:54 -0800

Changelog through 0.16-a0-2728-gd75f5fb

--------------------------------------------------------------------------------
ce5af0fc83 | Steve Melenchuk | 2014-11-25 20:15:52 -0700

Fix Ignite Poison death message (qw, wheals).
I originally thought this was a use of actor::hurt, but it turns out it
wasn't, so waiting to fix this until after the former was fixed was
ultimately unnecessary..

--------------------------------------------------------------------------------
82037d4cde | Corin Buchanan-Howland | 2014-11-25 21:50:00 -0500

Preserve boots of flying on/off status when unequipped

--------------------------------------------------------------------------------
d75f5fbaba | Steve Melenchuk | 2014-11-25 18:26:39 -0800

Nerf Singularity damage further.
In my own testing, it was significantly more powerful than other level 9
damage spells. With this roughly halving of the direct damage output, it
seems roughly as capable as other level 9 spells at dealing with large
crowds of enemies.

--------------------------------------------------------------------------------
934d18b7b1 | Steve Melenchuk | 2014-11-25 18:26:39 -0800

Give singularities' direct damage a proper death message.
Killed by gravitational forces
... invoked by a singularity
... created by an ancient lich
 (23 damage)

or,

blasted by a singularity (gravitational forces) (created by an ancient
lich)

Possibly the "invoked by" could be changed somehow, but this suffices.

--------------------------------------------------------------------------------
e7e94ecf93 | Steve Melenchuk | 2014-11-25 18:26:39 -0800

KILLED_BY_COLLISION, for collision death messages.
Collided with an orc (7 damage) ... caused by a deep elf mage

This is deliberately separate from the previous commit in case we only
want to land the former.

--------------------------------------------------------------------------------
116b8ec950 | Steve Melenchuk | 2014-11-25 18:26:39 -0800

Let actor::hurt accept a kill_method_type, source, and aux.
...which it then passes along to ouch() if it's the player.

Lets us merge some player and monster handling and fix some death
messages (Freeze, shock serpent discharges, ...)

--------------------------------------------------------------------------------
beb5d18a4e | Steve Melenchuk | 2014-11-25 18:26:39 -0800

Fix zappy ench_power assignment.
I have no idea if this will break something else, but I've checked the
uses of ench_power and it seems to be safe.

TODO: rename the field to "power"?

--------------------------------------------------------------------------------
0751101241 | Steve Melenchuk | 2014-11-25 18:26:39 -0800

Init ench_power properly for monster beams.
Relevant for Force Lance.

--------------------------------------------------------------------------------
36483c4e1a | Steve Melenchuk | 2014-11-25 18:26:39 -0800

Don't move stationary things with singularities.

--------------------------------------------------------------------------------
932b14c53c | Steve Melenchuk | 2014-11-25 18:26:38 -0800

Tinker with Force Lance.
It is now L4 Conj/Tloc and appears additionally in the Book of the Warp;
it is slightly more accurate (as accurate as IMB, which I think is
acceptable based on its short range), and can knock back enemies up to
four tiles at max power (50% chance). It's also more likely to push
heavier targets at higher power.

Flying targets are more impacted - they have nothing to brace themselves
against.

--------------------------------------------------------------------------------
9c4167e0bf | Steve Melenchuk | 2014-11-25 18:26:35 -0800

Generalise collision damage; use in more places.
Knocking something back into a solid feature or another creature now
hurts it; this includes Force Lance, the fan of gales, and other things
that knock you back.

This also handles cases of multi-square knockbacks more gracefully.

Possible extra case that isn't handled right now: trampling.

--------------------------------------------------------------------------------
9b1ea3c132 | Steve Melenchuk | 2014-11-25 18:25:24 -0800

Spellbook: the Plane Papyrus.
It is a rare Translocations book containing the high level spells from
Warp: Dispersal, Controlled Blink, Disjunction, and Singularity. It also
gets Malign Gateway (which is level 7 Summoning/Translocations).

The Book of the Warp loses these spells, and gains back Recall (which
was removed to make room for its other glut of spells) and Summon
Forest.

Wizardry loses Dispersal, with no replacement. Rethinking the contents
of that book altogether seems to be a good idea.

--------------------------------------------------------------------------------
f29f4cb8e0 | Steve Melenchuk | 2014-11-25 18:25:23 -0800

Implode singularities if their caster dies.
Not going to be tremendously relevant yet, but if we get, say, liches
casting the spell, it will be important.

--------------------------------------------------------------------------------
0c29e015b1 | Steve Melenchuk | 2014-11-25 18:25:23 -0800

Monster-castable Singularity.
Admit it - the moment you read "will warp *you*" in the commit messages,
you knew this was coming.

--------------------------------------------------------------------------------
0e322cbbb1 | Shmuale Mark | 2014-11-25 18:25:23 -0800

Can a message.

--------------------------------------------------------------------------------
144e84685d | Sage | 2014-11-25 18:25:23 -0800

New spell: Singularity.
L9 Tloc. Places a monster like Fulminant Prism that draws creatures that are
within its radius closer to itself, pulls harder the closer they are, and
deals damage to creatures that are sufficiently close. Lasts ~6-8 turns,
dependent on power.

Doesn't warp allies.

--------------------------------------------------------------------------------
82668d2e3e | Corin Buchanan-Howland | 2014-11-25 21:14:11 -0500

Make phantom mirros sac love incompatible (Brannock)

--------------------------------------------------------------------------------
7974f759eb | Nicholas Feinberg | 2014-11-25 17:59:58 -0800

Use a constant more

--------------------------------------------------------------------------------
1fef92860c | Nicholas Feinberg | 2014-11-25 17:59:58 -0800

Make Cigotuvi's Embrace degrade over time
To discourage degenerate tactics.

Might be worth decreasing BONE_ARMOUR_DIV from 3 to 2 (to increase
ac:corpse ratios), and/or simplifying things by removing the
on-hit stuff and just making it degrade over time. (but what of
player-monster symmetry...?)

--------------------------------------------------------------------------------
c925279ec2 | Steve Melenchuk | 2014-11-25 18:43:47 -0700

Fix occasionally incorrect return value for monster mass ench functions.
I don't think this is ever relevant, but the function would return 0 if
the last monster(s) the spell attempted to affect resisted even if the
player and/or other monsters were affected.

Having to fix the same bug in three places is a bad thing, for that
matter.

--------------------------------------------------------------------------------
8b41a6877b | Neil Moore | 2014-11-25 16:43:12 -0500

Clarify.
I find the second version clearer despite the double negative, probably
because "has no effect" is stronger than "is <not> effective".

--------------------------------------------------------------------------------
e69aa3bd81 | Neil Moore | 2014-11-25 16:27:25 -0500

Update auras when clouds change (#9259)
The following sequence of actions, as a follower of TSO or Dithmenos,
would leave parts of LOS unaffected by halo or umbra:

 1. Read a scroll of Fog: LOS changes but agrid does not, so there
    are out-of-LOS cells that are still affected by the aura.
 2. Take a step: this updates agrid, taking into account the fog,
    so now the cells you can't see are no longer aura-ed.
 3. Single-wait for the fog to expire.  This leaves the agrid unchanged
    again, so the unaura-ed cells from step 2 remain unaura-ed despite
    now being visible

    (Note that waiting too long in step 3 (e.g. with 5-wait) could cause
     auras to be updated for other reasons, hiding the problem).

Use los_terrain_changed instead of invalidate_los_around: the former
calls the latter, but also calls invalidate_agrid, so steps 1 and 3
keep auras in sync with LOS.

--------------------------------------------------------------------------------
3925e268be | Florian Diebold | 2014-11-25 20:08:43 +0100

Webtiles: Do device pixel scaling better, fixing Firefox rendering.
Non-integer cell sizes are bad, which this amounted to with
devicePixelRatios like 1.3333333730697632 in zoomed-in Firefox.

Gruuunt

--------------------------------------------------------------------------------
5e6b6c3c28 | Neil Moore | 2014-11-25 03:35:32 -0500

Add a quote for starcursed masses.

--------------------------------------------------------------------------------
53b50a070e | Neil Moore | 2014-11-25 03:02:42 -0500

Sort butcher prompt by corpse quality.

--------------------------------------------------------------------------------
70f4b53a2d | Neil Moore | 2014-11-25 03:02:42 -0500

Clarify that vampires can butcher in failure/prompt messages.

--------------------------------------------------------------------------------
8c4d18a30b | Neil Moore | 2014-11-25 03:02:42 -0500

Try to bottle before chopping when confirm_butcher == never.

--------------------------------------------------------------------------------
1e203fe68b | theTower | 2014-11-25 01:03:54 -0500

Insubstantial wisps tweaks: less blink/ac/ev, more hp/hd, static discharge
Wisps are odd, weak monsters as stands. They have high elemental resists and
decent EV, but next to no health. They've got a band, but have af_blink and the
blink spell itself, so the end result is a lot of wisps fluttering about.
They're unique fodder for their placement in Swamp, a handful of vaults, or the
Foxfire card, certainly, but they're autofight-fodder more than anything else.

EV goes from 20 to 18, AC from 5 to 4, bands go from 4-7 to 3-6, and their
blink-spell frequency is reduced by a third. This is meant to reduce their more
annoying aspects of being a flighty weak blob, and is more than compensated by
two more HD (hooray accuracy), a move from 7-17 health to 17-23 health, and a
moderately frequent static discharge cast. It's cool to use a spell otherwise
hidden on Pan Lords and Ghosts, and as a cleave-like burst of minor elec damage
it's neat against weakling allies or with Foxfire (and hooray for subtle
downsides to cards due to the splash damage). It is also an abstract tribute to
the dearly departed vapour, in a more palatable manner, and the low HD + the
blinking should avoid it hurting other monsters too much (the discharge avoids
the other wisps, since they're rElec++).

In arena, they outpace alligators, are barely outpaced by raven bands, and are
a 30-60 with spriggan rider bands. It's fine for them to be not very strong,
just a bit more noticeable. Hopefully.

(I have no idea if the discharge should be magical or natural. They still have
low health, so it's hard for the antimagic to matter, and while they might be
some kind of weird gas more than a piece of weird magic they also bloody moan.
For now, I'm setting it as natural because their blink was previously natural.)

--------------------------------------------------------------------------------
fff482a9e2 | Neil Moore | 2014-11-24 22:30:30 -0500

Don't crash when swapping places with a monster.

--------------------------------------------------------------------------------
40b5ca4ad8 | Nicholas Feinberg | 2014-11-24 18:47:05 -0800

Don't let ghosts cast Cigotuvi's (tenofswords)
You can't layer corpses onto a ghost! That'd just be silly.

--------------------------------------------------------------------------------
1185571c9c | Nicholas Feinberg | 2014-11-24 18:45:14 -0800

Remove an early return from ouch()
Looks like it was premature optimization.

--------------------------------------------------------------------------------
f809565307 | Nicholas Feinberg | 2014-11-24 18:38:54 -0800

Degrade Cigotuvi's in more cases (ackack)
Even when you don't take damage. (So you can't pump AC high
enough that the corpse armour never falls off!)

Exceptions: being under death's door, damage reduced to 0 by
deep dwarf damage shaving. Not ideal, those.

--------------------------------------------------------------------------------
f8c3712ade | Shayne Halvorson | 2014-11-24 20:33:18 -0600

Avoid infinite loop with mercenary card and sacrificed love.

--------------------------------------------------------------------------------
3f716882d7 | Nicholas Feinberg | 2014-11-24 18:15:39 -0800

Add monster Cigotuvi's Embrace (Hangedman)
To hellwings, which start with it active.

+(6 + hd/3) AC & SH (single-leve); for hellwings, that's +8 of
each. 1/4 chance of falling off every time they're hit or block.

--------------------------------------------------------------------------------
c478d814f3 | Nicholas Feinberg | 2014-11-24 18:15:39 -0800

Replace Twisted Resurrection with Cigotuvi's Embrace
As a player spell.

Twisted Resurrection has been considered a 'problem spell' for
some time: it's highly redundant with other minion-creating
necromantic spells (animate skeleton/dead, simulac), and the ways
in which it's distinct from them are not good. Cigotuvi's should,
hopefully, be a more interesting alternative use of corpses...

--------------------------------------------------------------------------------
0f6eec6821 | Nicholas Feinberg | 2014-11-24 18:15:39 -0800

Add Cigotuvi's Embrace
Grab all nearby corpses and turn them into armour + sh. (SH for
consistency with the bone plates mutation, and also to make it a
little more distinctive.)

1/3 of a point of SH & AC per skeleton, 2/3rds per corpse,
minimum one point if you hoovered any corpses/skeletons at all.
casting. Multiple casts stack. Taking damage or blocking hits has
a chance of causing you to lose 1 point; chance decreases with
spellpower. Incompatible with Stoneskin/Ozo's. Does not decay
over time, ironically.

Intent is to replace Twisted Resurrection, which has been
considered a Problem Spell for some time, with another & more
novel use for corpses.

--------------------------------------------------------------------------------
6bada4a6b1 | Neil Moore | 2014-11-24 20:39:18 -0500

Fix braces.
This reminds me that we should standardise on rules for braces in
expressions, particularly multi-line lambdas and initializer lists.

--------------------------------------------------------------------------------
8729937746 | Neil Moore | 2014-11-24 20:34:45 -0500

Fix several cases of wonky indentation.
I gave up on changing the weird alignments like:

    const int foo = 1;
          int bar = 0;

--------------------------------------------------------------------------------
a029055577 | Nicholas Feinberg | 2014-11-24 17:22:11 -0800

Tweak shard shrikes
Band size from 3-5 to 2-4; base attack damage from 27 to 21.

Throw Icicle is enough of a threat for high-AC characters.

--------------------------------------------------------------------------------
fa767f1d96 | reaverb | 2014-11-24 20:16:25 -0500

Fix some bracing/indentation

--------------------------------------------------------------------------------
d6deaf6ce4 | Steve Melenchuk | 2014-11-24 17:36:58 -0700

Whitespace fix.
|||aaammmeeettthhhyyysssttt

--------------------------------------------------------------------------------
4d970665e7 | Steve Melenchuk | 2014-11-24 17:03:28 -0700

Show elemental colours for panlords too.
Since we do get the occasional ETC_RANDOM...

--------------------------------------------------------------------------------
7dfaced8f7 | Steve Melenchuk | 2014-11-24 16:47:43 -0700

Inherit panlord colours in tiles from console colour.
The exact colour adjustments should be cleaned up, but the basic
implementation is here.

--------------------------------------------------------------------------------
5c3b94e992 | Steve Melenchuk | 2014-11-24 16:47:17 -0700

Base panlord tile recolouring (roctavian).
To give them a colour that can be recoloured in dc-* tile directives.

--------------------------------------------------------------------------------
bf03f05e88 | Neil Moore | 2014-11-24 18:18:15 -0500

Make player shadows insubstantial (AreBrandon)
At least for rPetrify purposes.

--------------------------------------------------------------------------------
0a9d684da6 | Neil Moore | 2014-11-24 18:15:36 -0500

Move statue and wisp form rPetrify into form data.

--------------------------------------------------------------------------------
23a5d28b8e | Neil Moore | 2014-11-24 18:05:00 -0500

Don't reduce crawlie merge chance when full aboms are adjacent.

--------------------------------------------------------------------------------
64bed663de | Neil Moore | 2014-11-24 17:53:47 -0500

Don't pretend a few functions can fail.

--------------------------------------------------------------------------------
f337f52db3 | Neil Moore | 2014-11-24 17:49:10 -0500

Simplify some set logic.

--------------------------------------------------------------------------------
8dbfe361b6 | Neil Moore | 2014-11-24 17:45:23 -0500

Implement and use fair_adjacent_iterator.
Also correcting the spore explosion directional bias introduced in
0.16-a0-2679-gdd6be42.

--------------------------------------------------------------------------------
c417ed5f13 | Shayne Halvorson | 2014-11-24 13:58:14 -0600

Improve Wild Magic card (theTower).
It now causes miscasts on enemies and restores magic for each one affected.
As it is no longer (entirely) bad, it is moved from punishment to wonders.
Also fixes monster malign gateway miscasts from being hostile towards the
player.

--------------------------------------------------------------------------------
913d91fc45 | Shmuale Mark | 2014-11-24 13:12:37 -0500

Add monster::swap_with, use it in several locations.

--------------------------------------------------------------------------------
e5c08d7945 | Shmuale Mark | 2014-11-24 13:12:02 -0500

Use monster::move_to_pos more widely.

--------------------------------------------------------------------------------
5b05ff9c32 | Shmuale Mark | 2014-11-24 13:12:02 -0500

Some minor mindexicide.

--------------------------------------------------------------------------------
dd6be42bb9 | Shmuale Mark | 2014-11-24 13:12:02 -0500

Simplify (PleasingFungus).

--------------------------------------------------------------------------------
d0034a5406 | Nicholas Feinberg | 2014-11-24 08:23:40 -0800

Turn player flesh into data
Re: de-petrification messages.

Only functional change is that shadow form now turns back to
shadow - though perhaps it shouldn't be petrifiable at all...?

--------------------------------------------------------------------------------
1923b41c91 | Eino Keskitalo | 2014-11-24 16:23:16 +0200

Turn unpetrifying tree-form players back to wood.

--------------------------------------------------------------------------------
fc1a37c8ff | Nicholas Feinberg | 2014-11-23 21:48:29 -0800

Allow batform players to memorize spells
Incredible buffs to the "vampire bat" conduct.

--------------------------------------------------------------------------------
49abf12184 | Jesse Luehrs | 2014-11-23 23:17:51 -0500

battlesphere also requires conjurations

--------------------------------------------------------------------------------
9e90175e1c | Jesse Luehrs | 2014-11-23 23:15:02 -0500

move malign gateway down to the secondary list
also replace it in the primary list with another copy of summon greater
demon, in order to keep the ratio of summoning-focused vs conj-focused
liches reasonable

--------------------------------------------------------------------------------
bbbcdaba85 | Jesse Luehrs | 2014-11-23 23:10:27 -0500

emergency spells is a bit of a misnomer (theTower)

--------------------------------------------------------------------------------
26a7dfb10a | Jesse Luehrs | 2014-11-23 23:04:18 -0500

remove cbl and ignite poison from randliches
they're fun, but don't really play particularly well

--------------------------------------------------------------------------------
c088e799be | Jesse Luehrs | 2014-11-23 22:26:43 -0500

add -explore command line option and explore_mode initfile option

--------------------------------------------------------------------------------
216447cb7d | Nicholas Feinberg | 2014-11-23 18:58:42 -0800

Fixup dragon hide/armour descriptions (9254)
Pearl dragon hide, shadow dragon hide, and steam dragon
armour/hide.

--------------------------------------------------------------------------------
8f9e3fe94f | Nicholas Feinberg | 2014-11-23 18:53:39 -0800

Remove an archaicism (wheals)
Seems to have been a hardcoded reference to rotted corpses, which
no longer exist!

--------------------------------------------------------------------------------
4f457b0cd5 | Nicholas Feinberg | 2014-11-23 18:47:02 -0800

Let Powered by Death work with all corpses
...including "mangled" (formerly NO_HIDE) corpses from Kiku.

The interaction is and was invisible and counterintuitive, and
the bulk of it was inadvertently broken by 54438205d933 anyway.

--------------------------------------------------------------------------------
170cb8d145 | Steve Melenchuk | 2014-11-23 19:43:24 -0700

A better fix for the USERFUNC collision (|amethyst).
This reverts commit fc2c4b98ea45921a4c1a996b7f2a48a4f76a9db6.

--------------------------------------------------------------------------------
fc2c4b98ea | Steve Melenchuk | 2014-11-23 19:38:08 -0700

Fix collision between CK_REDRAW and USERFUNC (#9234).
CK_REDRAW just happened to be assigned a value of -10000, meaning the
first user macro defined would be unusable as the character loop would
read the CK_REDRAW and continue looping.

--------------------------------------------------------------------------------
a4e64cdb0d | Jesse Luehrs | 2014-11-23 19:35:07 -0500

also install lua debug data

--------------------------------------------------------------------------------
87beff4fe0 | Jesse Luehrs | 2014-11-23 17:59:56 -0500

typo fix

--------------------------------------------------------------------------------
8b2d462e01 | Jesse Luehrs | 2014-11-23 17:44:56 -0500

implement explore mode
currently, it plays exactly as normal except that you get the "Die?"
prompt and your game isn't scored. enter using ^M, because that is the
only free key that i could find.

--------------------------------------------------------------------------------
4c00d22527 | Shmuale Mark | 2014-11-23 17:36:04 -0500

Correctly allow reciting to monsters with "maybe" HD.
oops...

--------------------------------------------------------------------------------
d86a3c4095 | Shmuale Mark | 2014-11-23 17:35:29 -0500

Add some debug data to the Recite xv info.

--------------------------------------------------------------------------------
4069d43c7f | Shmuale Mark | 2014-11-23 15:59:56 -0500

Make butchering/bottling single-turn.
The only objections raised were that it might be too strong versus
corpse-raising enemies, but the consensus was that a turn spent, and
the necessity to be on the square, were enough of a cost. The other
was that it might make it too easy to switch blood level very quickly
as a vampire, but carrying lots of potions usually does the same thing.

--------------------------------------------------------------------------------
d877415303 | Shmuale Mark | 2014-11-23 15:59:56 -0500

Remove the 'chunks_autopickup' option.
I find it rather hard to believe anyone has set this to false in the
last year.

--------------------------------------------------------------------------------
503d8716b8 | Shmuale Mark | 2014-11-23 15:59:56 -0500

Remove an unused item flag.

--------------------------------------------------------------------------------
63416116cf | Neil Moore | 2014-11-23 15:20:02 -0500

Update the description of CMD_ATTACK_*, too.

--------------------------------------------------------------------------------
e91dc57ebe | Neil Moore | 2014-11-23 15:16:58 -0500

Update renamed commands in keybind.txt

--------------------------------------------------------------------------------
06ad4b3bc7 | Jesse Luehrs | 2014-11-23 15:15:18 -0500

remove CMD_MOVE_NOWHERE, since it is identical to CMD_WAIT

--------------------------------------------------------------------------------
ad6bfabe26 | Neil Moore | 2014-11-23 14:12:32 -0500

Use more emplacement and initializer lists.
And change a few function return types and vector value types
from string to const char *, to reduce copying.

--------------------------------------------------------------------------------
e8430c5dba | Jesse Luehrs | 2014-11-23 14:06:37 -0500

show spell frequency in debug output

--------------------------------------------------------------------------------
fe3acaadcc | Jesse Luehrs | 2014-11-23 13:52:27 -0500

Merge branch 'master' into randliches

--------------------------------------------------------------------------------
567630fced | Neil Moore | 2014-11-23 11:21:27 -0500

Use make_pair when possible, emplace_back occasionally.

--------------------------------------------------------------------------------
f43d4ebb08 | Neil Moore | 2014-11-23 11:21:27 -0500

Move rather than copy in erase_any.
By moving rather than copying the last element into its new place.

--------------------------------------------------------------------------------
e7c62ef475 | Neil Moore | 2014-11-23 11:21:20 -0500

Remove swapv in favour of std::swap

--------------------------------------------------------------------------------
4d0f2ccea4 | Neil Moore | 2014-11-23 11:21:08 -0500

Don't shadow a method with a parameter.

--------------------------------------------------------------------------------
218ebad7a5 | Neil Moore | 2014-11-23 10:51:23 -0500

Document some template functions.

--------------------------------------------------------------------------------
8d144ffac3 | John McCartney | 2014-11-22 23:46:27 -0800

Color/brightness tweaks for a variety of monster tiles.
Gargoyles, tengu, demonspawn outfits, and some others.

--------------------------------------------------------------------------------
bdaf798f74 | John McCartney | 2014-11-22 22:12:57 -0800

Caustic shrike tile.

--------------------------------------------------------------------------------
f29606e107 | Nicholas Feinberg | 2014-11-22 21:21:07 -0800

The player is not the real monster (Grunt)

--------------------------------------------------------------------------------
d333f3b5cc | Nicholas Feinberg | 2014-11-22 20:16:05 -0800

Maybe fix monsters being placed under the player (9019)
Best guess is that bands are showing up under the player, but I
couldn't reproduce this in testing...

Anyway, this *should* fix it.

--------------------------------------------------------------------------------
db485cc720 | Nicholas Feinberg | 2014-11-22 19:50:59 -0800

Make gnoll sergeants display shields
Now that their tiles don't have one built in!

--------------------------------------------------------------------------------
a0f5cdfa33 | John McCartney | 2014-11-22 19:17:01 -0800

Removed shield from base gnoll sergeant tile.

--------------------------------------------------------------------------------
db287d2415 | John McCartney | 2014-11-22 19:16:59 -0800

Upped saturation for Orbs of Destruction.

--------------------------------------------------------------------------------
03c478d3dd | John McCartney | 2014-11-22 19:16:58 -0800

Tweaked a couple greatsword tiles.

--------------------------------------------------------------------------------
bb731574e7 | Steve Melenchuk | 2014-11-22 19:04:32 -0700

Dispersal improvements.
Affect a wider area (up to radius 4 at full spellpower, which might need
reduction); apply a confusion check at the same spellpower (being warped
around is very confusing - just check translocation miscasts).

Hopefully people will find more of a use for it with these adjustments.

--------------------------------------------------------------------------------
a451149439 | Steve Melenchuk | 2014-11-22 19:04:32 -0700

Clean up hardbook handling.
Since it's 100% identical to the set of randbooks, leverage one set of
data to map to both.

--------------------------------------------------------------------------------
32c4834fea | Steve Melenchuk | 2014-11-22 19:04:32 -0700

Clean up handling of rare books to be enum independent.
There's now an is_rare_book() and a set of book types defined in
spl-book.cc.

--------------------------------------------------------------------------------
5380ef8b76 | Shmuale Mark | 2014-11-22 19:43:57 -0500

Display the difference between poison resistance and immunity in %.

--------------------------------------------------------------------------------
c1fb34b38d | Shmuale Mark | 2014-11-22 19:34:35 -0500

Combine M_SPELL_PROXY and mons_is_conjured().
The only significant change is that fire vortices are friendly with
Sac Love (also spatial vortices and grand avatars, but those are not
very common as potential allies).

--------------------------------------------------------------------------------
f2aae5a3ab | Shmuale Mark | 2014-11-22 19:11:43 -0500

Tell on @ when at mindelay (ChrisOelmueller).
As a minor tweak, @ shows the worst-case delay, so that you don't get
told you're at exec axe mindelay at 25.1 Axes skill.

Some of the code can be thrown out when PleasingFungus's shield
reform branch is landed, I think, since then shields won't have a delay
effect on non-UC weapons.

--------------------------------------------------------------------------------
3ed2009613 | Corin Buchanan-Howland | 2014-11-22 18:04:53 -0500

Prevent monsters from blocking their own attacks (nagdon)
This doesn't come up very often, but it can happen to confused monsters
and monsters that are redirected by your will when you worship Ru.

--------------------------------------------------------------------------------
4d92b313aa | John McCartney | 2014-11-22 14:08:56 -0800

Brightened kobold tiles, removed their darts.

--------------------------------------------------------------------------------
ccc710cb1a | Neil Moore | 2014-11-22 16:48:36 -0500

Remove some now-unused typedefs (Lasty)

--------------------------------------------------------------------------------
56d223743a | Neil Moore | 2014-11-22 16:29:54 -0500

tilegen: Read PNG files in binary mode.
It matters on Windows.

--------------------------------------------------------------------------------
8a81f65776 | Neil Moore | 2014-11-22 15:30:06 -0500

Update libpng contrib (#9236)

--------------------------------------------------------------------------------
06d78c0d99 | John McCartney | 2014-11-22 12:09:25 -0800

Restored Robin's hide.

--------------------------------------------------------------------------------
e5f11cfd85 | Neil Moore | 2014-11-22 14:47:56 -0500

Don't send Travis email notifications for most passing builds.
Same rules as for IRC: all failing builds, and passing builds when the
previous build on that branch failed.

--------------------------------------------------------------------------------
938a7a0e50 | Neil Moore | 2014-11-22 13:35:04 -0500

Improve a CMD_ZAP_WAND message (PleasingFungus)

--------------------------------------------------------------------------------
cdc3713a70 | Neil Moore | 2014-11-22 12:57:37 -0500

Fix menus, remove grep (#9248, #9249)
copy_if requires the destination to have room for the elements.
Making grep work in this case would require restricting it to
vectors: just remove it instead.

--------------------------------------------------------------------------------
dcf1269353 | Steve Melenchuk | 2014-11-22 13:49:48 +0000

Don't try to install tile graphics on non-tiles builds (Napkin).
This bit is already handled elsewhere in the Makefile, even!

--------------------------------------------------------------------------------
11642178f4 | Neil Moore | 2014-11-22 04:16:13 -0500

More C++11ification and several helper functions.
New template functions:
  random_iterator:  get a random position in a container
  erase_val:  find and remove a value from a container
  grep:  return a copy of a container, filtered by a predicate

--------------------------------------------------------------------------------
119d9a1fd3 | Neil Moore | 2014-11-22 04:16:13 -0500

Add a couple of missing breaks.

--------------------------------------------------------------------------------
8812ea416d | Neil Moore | 2014-11-22 04:16:13 -0500

Make actor::end_constriction take an mid_t.
Since it is not responsible for removing the actor from the
constricting map, it does not need to take an iterator.

--------------------------------------------------------------------------------
2939fc5f26 | John McCartney | 2014-11-22 00:45:46 -0800

Fix a mistake just made in dc-mon.

--------------------------------------------------------------------------------
262f426ec6 | John McCartney | 2014-11-22 00:37:54 -0800

Robin tile, small tweaks to hobgoblin/goblin tiles.

--------------------------------------------------------------------------------
915ac4b409 | Jesse Luehrs | 2014-11-22 02:21:28 -0500

sleep is a better choice than hibernation (PleasingFungus)
because hibernation is resisted by cold res

--------------------------------------------------------------------------------
00d85631a2 | Nicholas Feinberg | 2014-11-21 23:09:06 -0800

Steal electric golems' breath (doy)
They cast Lightning Bolt as an innate spell, which meant that
they got hit by the "Lightning Bolt cast innate" override that was
added for storm dragons...

Wouldn't be surprised if there was more silliness like this
lurking around.

--------------------------------------------------------------------------------
1677497618 | Nicholas Feinberg | 2014-11-21 23:08:44 -0800

Refactor cast_call_imp()

--------------------------------------------------------------------------------
a3a56e0f00 | Jesse Luehrs | 2014-11-22 01:48:41 -0500

spellforged servitor is also useless without conjurations

--------------------------------------------------------------------------------
e31c45dc8a | Nicholas Feinberg | 2014-11-21 22:48:32 -0800

Cleanup _place_dragon() a little

--------------------------------------------------------------------------------
f4faaf871f | Jesse Luehrs | 2014-11-22 01:47:18 -0500

simplify
this will place ignite poison a bit less, but i think that's okay

--------------------------------------------------------------------------------
f71ace85b3 | Nicholas Feinberg | 2014-11-21 22:38:01 -0800

Fix a missing a (Grunt)

--------------------------------------------------------------------------------
bfab2ba8d7 | Nicholas Feinberg | 2014-11-21 20:36:05 -0800

Add Shard Shrikes
Batty monsters that spit 3d30 Throw Icicle, resist cold, and flock
in small bands. Intended to add a little variety and danger to
Cocytus, where they live.

Credit to Lasty for the name and, in a sense, the inspiration.
Credit to Hangedman for spell choice & habitat; thanks to others
as appropriate.o

--------------------------------------------------------------------------------
8be440d32b | Nicholas Feinberg | 2014-11-21 20:33:40 -0800

Move weapon brand generation into data

--------------------------------------------------------------------------------
ec970338e9 | Nicholas Feinberg | 2014-11-21 20:33:40 -0800

Brace.

--------------------------------------------------------------------------------
5fcef97721 | Steve Melenchuk | 2014-11-21 21:31:15 -0700

Handle Control Undead by player on hexed slaves properly (#9226).

--------------------------------------------------------------------------------
f4d4653f97 | Steve Melenchuk | 2014-11-21 21:30:29 -0700

Don't crash on Control Undead casts by foeless monsters.
dddoooyyy

--------------------------------------------------------------------------------
af1d5d325f | Steve Melenchuk | 2014-11-21 21:21:11 -0700

Don't crash on Prism in arena.

--------------------------------------------------------------------------------
125b9688e4 | Nicholas Feinberg | 2014-11-21 19:40:54 -0800

Make m&f brand gen more sane
Math notes:

The chance of the brand not being set (that is, still being SPWPN_
NORMAL) by the time the SPWPN_VORPAL if() was as follows:
most weapons: 24/25 * 24/25 * 24/25 	= 88/100
morningstar: 3/4 * 3/4 * 19/20 * 88/100	= 47/100
eveningstar: 1/2 * 47/100		= 24/100

The odds of that brand being overridden is 55/100.

This code is really goofy

--------------------------------------------------------------------------------
65c7f0c0b7 | Nicholas Feinberg | 2014-11-21 19:32:41 -0800

Fix yet another missing space (rchandra)
I will never escape this damned place.

--------------------------------------------------------------------------------
460e601f4d | gammafunk | 2014-11-21 19:35:47 -0600

Have Gozag never create shops of a useless type for the player
Previously Gozag would give Mu food/potion shops, Fe weapon/armour
shops, etc. The list of disallowed shops include the cases mentioned
above and when the player has sacrificed artifice by abandoning Ru,
but there may be others. There are borderline cases like Op and
armour, but Op can use hats and shields, so they can get armour shops
for now. We can make shop content selection in the future (as opposed
to shop type), if that's deemed necessary.

--------------------------------------------------------------------------------
a39cbbba72 | Neil Moore | 2014-11-21 20:21:58 -0500

Don't call pkg-config on something we're building.
This produced an unsightly:
    No package 'sdl2' found
    <three more lines of spew>
four times; and possibly could lead to mixing headers and libraries
from the system version of the library with those from the contrib.

--------------------------------------------------------------------------------
0bd63fc60d | Neil Moore | 2014-11-21 19:23:11 -0500

Use a lambda in place of bind.
It's shorter in these two cases.

--------------------------------------------------------------------------------
6d04fdd91a | Neil Moore | 2014-11-21 17:29:26 -0500

Simplify

--------------------------------------------------------------------------------
594b565b90 | Neil Moore | 2014-11-21 17:27:02 -0500

Show portal vault entry messages again.

--------------------------------------------------------------------------------
559872ab60 | Jesse Luehrs | 2014-11-21 17:18:42 -0500

fix portal vaults showing up in ^O and G

--------------------------------------------------------------------------------
d3d5b3ebdc | Jesse Luehrs | 2014-11-21 15:34:57 -0500

remove cause fear from liches
this probably works better in more limited doses (and also not in zot:5)

--------------------------------------------------------------------------------
7cfc6130d7 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

initialize spell frequencies for pan lords and ghosts too

--------------------------------------------------------------------------------
ff68fe5252 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

remove bias against air spells

--------------------------------------------------------------------------------
ef413b6433 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

remove bias toward multi-school spells

--------------------------------------------------------------------------------
5a93df51eb | Jesse Luehrs | 2014-11-21 15:34:57 -0500

simplify

--------------------------------------------------------------------------------
aea718e2b6 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

only try to place ignite poison with other poison spells

--------------------------------------------------------------------------------
14c4226a8e | Jesse Luehrs | 2014-11-21 15:34:57 -0500

remove a few uninteresting spells

--------------------------------------------------------------------------------
e067542753 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

these two spells work now

--------------------------------------------------------------------------------
e13a241ffc | Jesse Luehrs | 2014-11-21 15:34:57 -0500

adjust some spell frequencies
primary spells should be cast most often, and frequencies in general
should be randomized a bit

--------------------------------------------------------------------------------
dcb80bd325 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

have normalize_spell_freq maintain frequency weighting

--------------------------------------------------------------------------------
f5683b7e71 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

normalize lich casting frequency

--------------------------------------------------------------------------------
f5a64dbd53 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

try to encourage more consistently-themed spell sets

--------------------------------------------------------------------------------
4cee489321 | Jesse Luehrs | 2014-11-21 15:34:57 -0500

actually, banishment is not all that interesting as a primary spell
it's fine as an emergency spell, but magic-resistable things aren't very
interesting late-game, generally

--------------------------------------------------------------------------------
280ea720f6 | Jesse Luehrs | 2014-11-21 15:34:56 -0500

randomize the number of spells that liches get

--------------------------------------------------------------------------------
28e328a443 | Jesse Luehrs | 2014-11-21 15:34:56 -0500

make banishment also an emergency spell option
it was in the existing lich spell sets, so

--------------------------------------------------------------------------------
bf8a60a58e | Jesse Luehrs | 2014-11-21 15:34:56 -0500

give regular liches a primary spell too
and give ancient liches a chance of a second one

--------------------------------------------------------------------------------
bf521fb3c1 | Jesse Luehrs | 2014-11-21 15:34:56 -0500

simplify

--------------------------------------------------------------------------------
9687377831 | Jesse Luehrs | 2014-11-21 15:34:56 -0500

improve lich spell selection
this moves the split entirely to usefulness rather than school. i'll add
back in some checks to encourage similar-schooled spells later.

--------------------------------------------------------------------------------
592e616b0d | Jesse Luehrs | 2014-11-21 15:34:56 -0500

no reason to actually use spell type enums here anymore

--------------------------------------------------------------------------------
5d359dcad5 | Jesse Luehrs | 2014-11-21 15:34:56 -0500

add a bunch more spell options

--------------------------------------------------------------------------------
6bc566460c | Jesse Luehrs | 2014-11-21 15:34:56 -0500

ensure liches always get a reasonable number of spells
also, don't disallow choosing the same spell set twice - nothing wrong
with that now that we don't just pick a fixed number of schools

--------------------------------------------------------------------------------
989febd1fe | Jesse Luehrs | 2014-11-21 15:34:56 -0500

simplify some more

--------------------------------------------------------------------------------
03cde6fa45 | Jesse Luehrs | 2014-11-21 15:34:56 -0500

simplify

--------------------------------------------------------------------------------
a4ba1b1e88 | Jesse Luehrs | 2014-11-21 15:34:56 -0500

pick some random spells from the list instead of all of them

--------------------------------------------------------------------------------
baaec7f7fd | Steve Melenchuk | 2014-11-21 15:34:56 -0500

Expand liches' magical repertoire.
They get spells in a fashion reminiscent of panlords, with spells
from two schools and an escape spell.

The exact spell sets could use adjustment; thus the branch this is
landing on initially.

--------------------------------------------------------------------------------
260d6636f3 | Jesse Luehrs | 2014-11-21 15:32:06 -0500

don't draw the current time in the arena

--------------------------------------------------------------------------------
45ba4ddfbe | Neil Moore | 2014-11-21 15:18:22 -0500

Fix mon_glyph override-by-glyph.
Since 0.16-a0-796-g279ce45, something like mon_glyph += s : B  has
only affected the first monster type with that glyph.  Make it affect
everything as intended.

--------------------------------------------------------------------------------
d733ed74c0 | Shmuale Mark | 2014-11-21 15:15:30 -0500

Fix tornado cloud names (#9244).

--------------------------------------------------------------------------------
c82dbbff3b | Shmuale Mark | 2014-11-21 15:05:08 -0500

Clean up tentacle mapping arrays further.

--------------------------------------------------------------------------------
6c50a6b0e7 | Jesse Luehrs | 2014-11-21 15:03:06 -0500

don't credit enchanted monster kills to the player in the arena

--------------------------------------------------------------------------------
8f903d1854 | Jesse Luehrs | 2014-11-21 14:30:26 -0500

handle monsters enslaving other monsters properly
setting the monster's foe unconditonally to the player is wrong, for
instance in the arena

--------------------------------------------------------------------------------
fa74321300 | Jesse Luehrs | 2014-11-21 14:30:26 -0500

allow getting only valid actors from mids
normally, we could get the dummy monsters for YOU_FAULTLESS or
ANON_FRIEND

--------------------------------------------------------------------------------
b6eb6f1381 | Neil Moore | 2014-11-21 14:07:59 -0500

Fix numeric glyph overrides (#9243)
We had used negative numbers to indicate that the character shouldn't be
mapped through the char_set; but that doesn't work anymore.

In my testing, hex item_glyph overrides seem not to have worked since
0.12 when they were introduced.  mon_glyph was broken more recently.

--------------------------------------------------------------------------------
ab6dde0e43 | Nicholas Feinberg | 2014-11-21 09:01:10 -0800

Small polearm brand correction
Since the odds of getting SPWPN_NORMAL at the SPWPN_VORPAL line
were 3/4ths of what they were for spears, thanks to the SPWPN_
PROTECTION chance...

--------------------------------------------------------------------------------
df3fef0da4 | Jesse Luehrs | 2014-11-21 12:00:37 -0500

also don't leak information about invisible beholders

--------------------------------------------------------------------------------
594f21ec07 | Nicholas Feinberg | 2014-11-21 08:56:55 -0800

Make polearm brand generation sane (?)
Chance of SPWPN_NORMAL by the time SPWPN_VORPAl was reached was
almost exactly 4/5; (1/5 * 4/5) + (1/5 * 1/5 * 1/6) is roughly
1/6 = 16.6...%, which * 69% (the chance of that brand not being
overriden by a later brand) is roughly 12%.

hooray

--------------------------------------------------------------------------------
fa442835e8 | Jesse Luehrs | 2014-11-21 11:47:48 -0500

don't leak information about invisible fearmongers

--------------------------------------------------------------------------------
bc79538969 | Neil Moore | 2014-11-21 11:37:26 -0500

Simplify

--------------------------------------------------------------------------------
e85a1e4f3c | Neil Moore | 2014-11-21 11:35:32 -0500

Add and use a lookup-with-default map template.
As an alternative to map_find for value types.

--------------------------------------------------------------------------------
8bb82fd497 | Neil Moore | 2014-11-21 11:35:32 -0500

Simplify using map_find.
It returns a pointer which must be dereferenced to get the value, so
null looking like zero isn't actually a problem.

--------------------------------------------------------------------------------
074e75a25d | Nicholas Feinberg | 2014-11-21 08:28:32 -0800

Cleanup item_colour slightly more

--------------------------------------------------------------------------------
29960500f4 | Nicholas Feinberg | 2014-11-21 00:17:54 -0800

Stop invigorating plants (Hangedman)
Ephemeral Infusion gets really spammy with ice blocks around,
otherwise.

--------------------------------------------------------------------------------
b1e8ad8c45 | Nicholas Feinberg | 2014-11-21 00:12:52 -0800

Deduplicate hide armour listings
Performance reduced from O(1) to log(n) expected, O(n) worst case;
I doubt this is a problem, esp. given that n is quite small.

Some ugly code generating the set of dragon/troll armours; seems
like there must be a better way to do that.

--------------------------------------------------------------------------------
f35bfc2364 | Nicholas Feinberg | 2014-11-20 23:44:47 -0800

Make death scarab corpses less questionable
wheallssss......

(but seriously, autocorpses shouldn't require so much direct
intervention.)

--------------------------------------------------------------------------------
c0efc8a513 | Nicholas Feinberg | 2014-11-20 23:31:39 -0800

Don't make rN+ armour give monsters sInv
Looks like a copy-paste error introduced in 2edd8d46d6c6, just shy
of four years ago.

--------------------------------------------------------------------------------
211e4f6c94 | Nicholas Feinberg | 2014-11-20 23:25:54 -0800

Partially move hide->armour relationships into data
armour_is_hide() is trickier.

--------------------------------------------------------------------------------
6b40b28aef | Nicholas Feinberg | 2014-11-20 23:05:48 -0800

Move monster-hide relationships into data

--------------------------------------------------------------------------------
0795e4fcf4 | Steve Melenchuk | 2014-11-20 23:14:12 -0700

Blow up another "blown up by" by crediting player wands correctly.

--------------------------------------------------------------------------------
9e6f58dcab | gammafunk | 2014-11-20 23:45:34 -0600

Fix resizing of the Tiles window
The SDL event loop forced a redraw to display the current mouse cell's
alt. text, but these redraws were occurring not only when the mouse
moved. Moved this logic into the mouse movement handling section and
did some other refactoring.

--------------------------------------------------------------------------------
a2a871ab4e | gammafunk | 2014-11-20 23:45:34 -0600

Set a minimum Tiles window size of 800x480 when not using touch UI
Resizing the window too small can cause Tiles crashes. We might
consider allowing a smaller X limit. There is existing code to prevent
rc tiles options from using smaller than 800x480, so I kept the window
limits consistent with that.

--------------------------------------------------------------------------------
77f51cb4a0 | Nicholas Feinberg | 2014-11-20 21:39:25 -0800

Increase megazig lethality
Add a chance of placing the player in the middle of zig levels,
for zigs after the first cleared. Chance increases with depth &
megazig level.

Might make things a little dicier.

TODOs:
 - make it work with slime levels somehow
 - support placing pillars to either side of the start (on large
   levels)

--------------------------------------------------------------------------------
b421d18ebd | Nicholas Feinberg | 2014-11-20 20:48:08 -0800

Deduplicate

--------------------------------------------------------------------------------
6f3a107709 | Nicholas Feinberg | 2014-11-20 20:30:52 -0800

Don't allow random death knights (9240)

--------------------------------------------------------------------------------
5093509895 | Neil Moore | 2014-11-20 22:49:04 -0500

Simplify.

--------------------------------------------------------------------------------
a644232e4f | Neil Moore | 2014-11-20 22:47:08 -0500

Fix broken demonspawn body slot mutation uniqueness check.

--------------------------------------------------------------------------------
8483f20f39 | Nicholas Feinberg | 2014-11-20 18:32:33 -0800

Improve combat messages slightly

--------------------------------------------------------------------------------
b23d263f00 | Nicholas Feinberg | 2014-11-20 18:20:19 -0800

Yet more whitespace tweaks

--------------------------------------------------------------------------------
2a6b965d41 | Shmuale Mark | 2014-11-20 21:16:07 -0500

Add two compile checks on array sizes.

--------------------------------------------------------------------------------
739d32a095 | Shmuale Mark | 2014-11-20 21:16:07 -0500

More tentacle code improvements.

--------------------------------------------------------------------------------
fd7436922d | Neil Moore | 2014-11-20 21:13:37 -0500

Skip symlinks in checkwhite.
The android-project directory has symlinks to several submodule directories,
resulting in "Can't read" errors when running checkwhite without the
submodules.

--------------------------------------------------------------------------------
8053d141c1 | Nicholas Feinberg | 2014-11-20 18:04:31 -0800

Tweak a randart description
"Spiderweb" is better than "spider web", but "gossamer" is best.

--------------------------------------------------------------------------------
fb3039f018 | Alex Jurkiewicz | 2014-11-20 20:42:24 -0500

More artefact names

--------------------------------------------------------------------------------
a38deb678a | Shmuale Mark | 2014-11-20 20:42:24 -0500

Some tentacle code cleanup.

--------------------------------------------------------------------------------
b8c5edc8f4 | Steve Melenchuk | 2014-11-20 17:39:47 -0700

Properly ifdef out a couple of sound playback calls.
Oops.

--------------------------------------------------------------------------------
04985d4ec9 | Steve Melenchuk | 2014-11-20 17:17:21 -0700

Make sound support / building against SDL2_mixer compile-time optional.
Disabled by default; MinGW builds will use WINMM sound and so will not
build SDL2_mixer, but Android builds will automatically build SDL2_mixer.

Pass SOUND=<anything> to make to enable sound support.

--------------------------------------------------------------------------------
6e0b792ebb | Shmuale Mark | 2014-11-20 17:47:14 -0500

Make monsters indifferent on bribe end, rather than hostile (dpeg).

--------------------------------------------------------------------------------
6865abd477 | Shmuale Mark | 2014-11-20 17:01:24 -0500

Fix Bribe Branch's description's grammar (PleasingFungus).

--------------------------------------------------------------------------------
0fdfb343d7 | Shmuale Mark | 2014-11-20 16:55:56 -0500

Tweak Regen's desc.
Unholy == demonic, for conduct purposes.

--------------------------------------------------------------------------------
1d3f5c86fd | Nicholas Feinberg | 2014-11-20 08:22:34 -0800

Revert "Temporarily remove the GOBLIN BEAM" (Grunt)
Can't reproduce the original error anyway, but this should fix it?

This reverts commit 66d23762bafaafa1428e8de2f36b82832012e8c1.

--------------------------------------------------------------------------------
00ccbceaba | Steve Melenchuk | 2014-11-20 13:48:12 +0000

Travis: pull in SDL2_mixer.
Oops.

--------------------------------------------------------------------------------
66d23762ba | Nicholas Feinberg | 2014-11-19 23:07:17 -0800

Temporarily remove the GOBLIN BEAM
Since it was causing more oddness, namely, the message "the
GOBLIN BEAM misses you."

wheals, feel free to re-add this once you've gotten it working.

--------------------------------------------------------------------------------
ff274f8c72 | Nicholas Feinberg | 2014-11-19 22:29:47 -0800

Realphabetize monsters.txt

--------------------------------------------------------------------------------
747aab2211 | Neil Moore | 2014-11-20 00:44:38 -0500

Actually fix sdl2-mixer submodule.
(-image in the previous commit was a typo)

--------------------------------------------------------------------------------
28acb164cb | Neil Moore | 2014-11-20 00:36:02 -0500

Update sdl2-image (gitignore)

--------------------------------------------------------------------------------
b70604b980 | Neil Moore | 2014-11-20 00:24:07 -0500

Don't turn on -Wall etc in contribs.
IMO there's not much point to turning on warnings that upstream doesn't
use by default: it produces spew that isn't useful to most people
building crawl.

--------------------------------------------------------------------------------
6680ffd2a1 | Steve Melenchuk | 2014-11-19 21:34:42 -0700

Merge branch 'sdl2'
All of the major TODOs are done. It's high time we get a modern tiles
port... and a modern Android port.

Yay. Hooray.

Conflicts:
	crawl-ref/source/Makefile
	crawl-ref/source/message.cc

--------------------------------------------------------------------------------
1a4659355f | Steve Melenchuk | 2014-11-19 21:28:59 -0700

Touch SDL2_mixer contrib for OS X build.

--------------------------------------------------------------------------------
2bbeb4d9f6 | Steve Melenchuk | 2014-11-19 21:12:51 -0700

Touch INSTALL.txt to indicate the new dependencies and sound support.

--------------------------------------------------------------------------------
2c1b1e5b6c | Steve Melenchuk | 2014-11-19 21:08:27 -0700

Use SDL2_Mixer to play sounds on non-Android platforms too.
Disabled if we're using the old Windows sound support.

--------------------------------------------------------------------------------
1dd04fe14d | Nicholas Feinberg | 2014-11-19 20:05:47 -0800

Restore butterflies' colour (gammafunk, wheals)
In both console & tiles (the latter inadvertently broken by the
previous commit).

--------------------------------------------------------------------------------
0fed908275 | Nicholas Feinberg | 2014-11-19 19:41:41 -0800

Remove butterfly overlap with other 'b's
If some console person wants to reshuffle 'b' colours to give
butterflies back more of their former range, be my guest; most of
the so-called "lower colours" are currently open on 'b'.

--------------------------------------------------------------------------------
9076c6e9fd | gammafunk | 2014-11-19 21:36:42 -0600

Fix the disaster area weights and range cutoff, refactor

--------------------------------------------------------------------------------
686c9dc139 | Steve Melenchuk | 2014-11-19 20:34:03 -0700

Re-enable old Android port's sound with an SDL2_mixer contrib.
Yay.

--------------------------------------------------------------------------------
e853c1a988 | Steve Melenchuk | 2014-11-19 19:52:25 -0700

Gut and largely rewrite the Android build documentation.

--------------------------------------------------------------------------------
3eb0be3733 | Steve Melenchuk | 2014-11-19 19:35:30 -0700

Bump sdl2-image contrib, allowing x86 Android target again.
Hooray.

--------------------------------------------------------------------------------
98e708459c | Steve Melenchuk | 2014-11-19 19:29:24 -0700

Actually build against contrib's SDL2 headers.
How this built before, I have no idea.

--------------------------------------------------------------------------------
d5885044dd | Shmuale Mark | 2014-11-19 21:26:53 -0500

Fix some crashes with GOBLIN BEAM (#927{7,8}).

--------------------------------------------------------------------------------
b98ff20ad2 | Nicholas Feinberg | 2014-11-19 18:18:23 -0800

Warn when attacking with rods (argonaut)
RIP rods of striking.

(Implementation isn't ideal, sorry - see comment.)

--------------------------------------------------------------------------------
7b0a87bc0e | Corin Buchanan-Howland | 2014-11-19 21:01:29 -0500

Improve Ru piety-blurring.
We fuzz the piety gain by up to +-10%, or 5 piety, whichever is smaller.

--------------------------------------------------------------------------------
af14809b1d | Steve Melenchuk | 2014-11-19 18:55:23 -0700

Update .gitignore with more Android stuff.

--------------------------------------------------------------------------------
041e3e5cd5 | Steve Melenchuk | 2014-11-19 18:55:04 -0700

Automagically generate an AndroidManifest with the right Crawl version.

--------------------------------------------------------------------------------
2f6054882b | Shmuale Mark | 2014-11-19 20:38:03 -0500

Some GOBLIN BEAM fixups.
Including a crash fix when there was no ray from the tossee to the
victim.

--------------------------------------------------------------------------------
8c05a2ea7f | Shmuale Mark | 2014-11-19 20:20:41 -0500

Restore boggarts' accidentally-increased MR (crate).

--------------------------------------------------------------------------------
9f6692669c | Shmuale Mark | 2014-11-19 18:59:13 -0500

Clean up runelock code a bit.
Outstanding issues: the rune mentioned by V is always the first in
enum order that you have, there's still some code duplication.

--------------------------------------------------------------------------------
ddd4f72cf9 | Shmuale Mark | 2014-11-19 18:33:30 -0500

Deduplicate a bit more.

--------------------------------------------------------------------------------
2f2fc36e41 | Shmuale Mark | 2014-11-19 18:29:15 -0500

Don't print special branch messages on unbanishment etc.

--------------------------------------------------------------------------------
e3673ec568 | Shmuale Mark | 2014-11-19 17:59:18 -0500

Deduplicate code slightly.

--------------------------------------------------------------------------------
ea8c925e7b | Shmuale Mark | 2014-11-19 17:40:22 -0500

Remove an unncessary field of Branch.
We don't place uniques by absdepth anymore, so there's no need to
exclude these branches in code.

--------------------------------------------------------------------------------
6526ce2b26 | Shmuale Mark | 2014-11-19 17:35:58 -0500

Change two of Kiku's titles to work better as player titles.
"Playername the X of Y" sounds better than "Playername the Y's X".

--------------------------------------------------------------------------------
92305d0383 | Shmuale Mark | 2014-11-19 17:29:10 -0500

Simplify.

--------------------------------------------------------------------------------
c79d677feb | Shmuale Mark | 2014-11-19 16:30:29 -0500

Move ghost crabs from Crypt to Swamp.
Part of the original idea was to provide some sort of introduction to
the ghostly flame mechanic before the relatively rare revenants started
appearing. However, as part of Crypt's shortening, it became necessarily
more reliant on the end vault -- where revenants aren't quite as rare.
In general, the shortening meant that the place was too packed for there
to be any meaningful transition.

The other problem was the one that has plagued Crypt for a long time:
that there is no specific point in the game when it's played, leaving
the monsters to have poorly-defined strengths. The other monsters in
Crypt are very well-designed, so they manage to fit there better than
these new crabs.

Swamp is a good thematic fit, if you look at biology very vaguely. It also
already has minor undead and cloud themes that crabs can draw on. The
terrain should make dodging around the clouds interesting, I hope. They'll
be slightly less common than shambling mangrove, another nontraditional
summoner, and I think around the same danger level (they've probably
been too weak for Crypt).

The alternative here, of course, is removal. While I'd like to think that
I'm unbiased, the fact is that I'd like to see ghost crabs survive somewhere;
not as much, necessarily, because of being a good joke monster or my own
creation, but rather because of how much I liked the mechanic on revenants.

--------------------------------------------------------------------------------
4f33c8768d | Shmuale Mark | 2014-11-19 16:30:29 -0500

Remove an unneeded member from struct bolt.
Minor bug fix: fire crabs now get the whole path of fire clouds,
not just a cloud around the target.

--------------------------------------------------------------------------------
0f9d4c66b6 | Nicholas Feinberg | 2014-11-19 09:01:24 -0800

Possibly fixup god conduct code
This might be the right logic? Ah, what a mess...

--------------------------------------------------------------------------------
d9e547fc1b | Jesse Luehrs | 2014-11-19 11:37:38 -0500

disable snake-rune for now, to try to make travis more reliable
will reenable it once the intermittent segfault is fixed - for now, all
it's doing is cluttering up our actual issues

--------------------------------------------------------------------------------
83a92e46c3 | Shmuale Mark | 2014-11-19 08:29:31 -0500

Add an animation for goblin tossing.

--------------------------------------------------------------------------------
211b47afd9 | Shmuale Mark | 2014-11-19 08:01:25 -0500

Improve slide_feature_over's signature.

--------------------------------------------------------------------------------
e8ce4268f6 | Neil Moore | 2014-11-19 04:38:57 -0500

Fix ctrl-x/ctrl-f hotkeys (#9223, doh)
I managed to catch the shopping list case before committing, but missed
these three.

--------------------------------------------------------------------------------
56844104d2 | Neil Moore | 2014-11-19 01:04:58 -0500

Sync manual from wiki.
List formatting fixes, and angelic abilities.

--------------------------------------------------------------------------------
e2ba6bfe22 | Neil Moore | 2014-11-19 01:01:36 -0500

Make holies less demonic.
A stopgap until we add a new flag (or something).

--------------------------------------------------------------------------------
540725a6b2 | Steve Melenchuk | 2014-11-18 22:57:42 -0700

Fix punctuation (ChrisOelmueller).

--------------------------------------------------------------------------------
d13ad016a1 | Steve Melenchuk | 2014-11-18 22:41:05 -0700

Fix Robin's goblin-throwing death message.
It now matches the format needed to parse the kaux, and even handles the
Ijyb case properly.

--------------------------------------------------------------------------------
82f2d87c44 | Nicholas Feinberg | 2014-11-18 21:38:51 -0800

Make Robin a little less berserk (Grunt)

--------------------------------------------------------------------------------
f1e647fb4a | Steve Melenchuk | 2014-11-18 22:30:04 -0700

Don't unmarshall SPELL_MELEE.
Since it isn't a spell any more.

--------------------------------------------------------------------------------
64ea467dd7 | Nicholas Feinberg | 2014-11-18 21:26:40 -0800

New unique: Robin of the Strong Arm
A very early-game hobgoblin unique (currently at D2-4); about
twice as tough as a hobgoblin, but placing with a mob of goblin
& hobgoblin minions, and with the ability to buff them (with
Battlecry) and hurl them at the player.

As a nice piece of early-game loot, she has a guaranteed
helmet, like Crazy Yiuf's cloak. Implementation uses the Nikola
Hack (equipping it in her shield slot), alas.

(The code for goblin tossing is extremely bad and shameful.
I am sorry.)

--------------------------------------------------------------------------------
02c18ca599 | Steve Melenchuk | 2014-11-18 22:19:42 -0700

Don't let seraphim channel arena crashes.
Oops.

--------------------------------------------------------------------------------
e2e49dcb0a | Steve Melenchuk | 2014-11-18 22:12:41 -0700

Occasionally spawn holies in Pan (and on the orb run).
Bonus: one in eleven random pan lords on the orb run now bring you a
seraph and a host of holies instead of demons. Beware!

--------------------------------------------------------------------------------
c25ba5f81c | Steve Melenchuk | 2014-11-18 22:11:16 -0700

Buff seraphim.
For an enemy whose sole current placement is intended to rival
pandemonium lords, a speed 10 angel with higher HP is underwhelming at
best.

Changes:

* Double base damage to 50 / 20 (from 25 / 10, same as angels).
* Speed to 15 (from 10).
* A new spellset, taking the highlights of the other holies and some
  new additions:
  * Hunting Cry (with a tweak to make it alert all holy creatures when
    issued by a holy creature);
  * Summon Holies (per the long-gone blessed toes; adjusted to summon
    only cherubim, angels, daevas(!), and a rare ophan);
  * Injury Bond (to let it put its huge HP to work with its allies);
  * Cleansing Flame (per TSO wrath, using the same damage numbers);
  * Smiting (per daevas); and
  * Minor Healing (per angels).

Evildoers beware, for it shall surely annihilate you!

This partially reverts commit f1c30b41336a0edb1efaaa8ccd23eaa8799632ee.

--------------------------------------------------------------------------------
e513bf61cb | Neil Moore | 2014-11-19 00:08:16 -0500

Whitespace fix

--------------------------------------------------------------------------------
21a9661a52 | Neil Moore | 2014-11-19 00:08:15 -0500

Tweak some shuffle_array callers.
Remove two more uses of the two-argument version; and use a range-
based for loop in one of those cases.

--------------------------------------------------------------------------------
6e4217139a | Neil Moore | 2014-11-19 00:08:15 -0500

Make a few more loop tweaks.
I missed these in the first pass because some of them are in header
files, and the others iterated using an int rather than unsigned or
size_t.

--------------------------------------------------------------------------------
b95b3df557 | Neil Moore | 2014-11-19 00:08:15 -0500

Fix a crash (doh)
If we want to set the deleted mcache pointer to null, we need to
iterate by reference.

--------------------------------------------------------------------------------
fb65b577b5 | Neil Moore | 2014-11-19 00:08:14 -0500

More C++11
Make most array-iterating loops into range-based for loops.
Use std::find and std::any_of where possible, but replace one or two
uses with a set instead.

--------------------------------------------------------------------------------
831fe5f2a9 | Neil Moore | 2014-11-18 23:20:35 -0500

Finish renaming an option.

--------------------------------------------------------------------------------
4c80b23a2a | Nicholas Feinberg | 2014-11-18 19:30:50 -0800

Randomly gender Gozag's shopkeepers
Add a little more character.

--------------------------------------------------------------------------------
fbd35b67d5 | Nicholas Feinberg | 2014-11-18 19:20:29 -0800

De-gender insects
The following people refer to insects as 'he' or 'she': real
weirdoes.

--------------------------------------------------------------------------------
f45ce76d3a | Nicholas Feinberg | 2014-11-18 19:20:29 -0800

Destroy the patriarchy
Pull monster gender into flags in mon_data.

--------------------------------------------------------------------------------
1ce37f3300 | Steve Melenchuk | 2014-11-18 20:12:49 -0700

Unify enchantment resist messages; use in more places.
In particular, don't just print a generic "You resist" for resisting
hostile mass enchantments.

Thanks to PleasingFungus for suggesting the placement and general
structure of actor::resist_magic_phrase.

--------------------------------------------------------------------------------
c26be3187d | Shmuale Mark | 2014-11-18 21:30:25 -0500

Mention in xv whether a monster's HD is too high to recite to (Sandman25).
TODO: deduplicate code

--------------------------------------------------------------------------------
ad397ecb11 | Shmuale Mark | 2014-11-18 21:30:25 -0500

Don't recite when only too-high HD monsters are around (Sandman25).
And related code cleanup.

--------------------------------------------------------------------------------
474fb9e715 | Steve Melenchuk | 2014-11-18 18:17:04 -0700

Ensure battlecries generate noise.
They're not tremendously noisy (noise 5) but they should still make the
noise they're supposed to.

--------------------------------------------------------------------------------
76b6da44e9 | Steve Melenchuk | 2014-11-18 17:39:07 -0700

Add two Crawl-historic names for randart weapons.
And explain where they came from.

--------------------------------------------------------------------------------
944da501fb | gammafunk | 2014-11-18 18:15:38 -0600

Clean up method argument names

--------------------------------------------------------------------------------
6d4b6af3df | Shmuale Mark | 2014-11-18 19:00:53 -0500

Make all traps trigger regardless of whether you are flying.

--------------------------------------------------------------------------------
158c48ecb8 | Steve Melenchuk | 2014-11-18 16:45:24 -0700

Clear webtiles canvas properly again.
I swear there was a mantis issue for this but I cannot find it.

--------------------------------------------------------------------------------
53077bc22e | Steve Melenchuk | 2014-11-18 16:43:40 -0700

A better fix for tiles compilation.
TODO: read commits better before fixing things.

This reverts commit 6194f101fb88b95f585f52e641675279fb840684.

--------------------------------------------------------------------------------
6194f101fb | Steve Melenchuk | 2014-11-18 16:41:17 -0700

Fix tiles compilation.
WWWHHHEEEAAALLLSSS

--------------------------------------------------------------------------------
4ad2eff9e3 | Shmuale Mark | 2014-11-18 18:16:37 -0500

Update documentation.

--------------------------------------------------------------------------------
c7d49bee1f | Shmuale Mark | 2014-11-18 18:05:43 -0500

Hints: don't claim !res gives glow.

--------------------------------------------------------------------------------
d48ade9a23 | Shmuale Mark | 2014-11-18 17:59:23 -0500

Remove hints about disarming (PleasingFungus).

--------------------------------------------------------------------------------
60c65ac90e | Shmuale Mark | 2014-11-18 17:51:47 -0500

Zotdef: allow placing traps on top of traps (PleasingFungus).

--------------------------------------------------------------------------------
815f63789a | Shmuale Mark | 2014-11-18 17:37:07 -0500

Remove door opening/closing from ctrl-dir; remove untrapping; code cleanup.
Untrapping is more or less never used; the only untrappable randomly
generated trap are webs, and those are safe enough to destroy by walking
in and out of.

Door opening is fine on normal direction key, and door closing can be done
via C just fine, for the fairly rare times that it is needed (which is also
just one keypress most of the time).

The changes are all so caught up with each other that it really wasn't
possible to split up into smaller commits, or at least by the time I
realised I was refactoring it was too late.

--------------------------------------------------------------------------------
ccf915276b | Shmuale Mark | 2014-11-18 15:46:44 -0500

Remove unused parameters.

--------------------------------------------------------------------------------
2fba7a2f47 | Shmuale Mark | 2014-11-18 15:20:03 -0500

Replace UNUSED(param) with int /*param*/.
This is already used in many places, and has the advantage of being
self-documenting; if someone changes the function to use the argument
after all, they might forget to remove the UNUSED but they must
uncomment the argument (this is not just hypothetical, this commit also
removes two such cases).

--------------------------------------------------------------------------------
f364627106 | Shmuale Mark | 2014-11-18 14:45:40 -0500

Remove the 'autoinscribe_cursed' option.
Since armour, weapons, and jewellery all fully identify on equip,
there's no reason to have the inscription.

--------------------------------------------------------------------------------
b4a9d2bd39 | Shmuale Mark | 2014-11-18 14:38:19 -0500

Add back documentation for portal vaults (dpeg).
I'm afraid that the code may not be sufficiently well explained, but I've
tried (and thankfully adding a new feature takes FAR less changes to the
code than it used to).

This partially reverts commit 6dca90ae4e3962b67a627fa450ad0d732f9cedf5.

--------------------------------------------------------------------------------
2ca11e803b | Shmuale Mark | 2014-11-18 13:59:09 -0500

Remove a field I accidentally added to struct bolt.
It was an intermediate stage in the refactor, unused in the final
result.

--------------------------------------------------------------------------------
6dca90ae4e | Shmuale Mark | 2014-11-18 13:56:13 -0500

Fixup the vault documentation a bit.
There were very few correct things about the portal vault information,
so I just threw it all out.

--------------------------------------------------------------------------------
4b520b5aa4 | Shmuale Mark | 2014-11-18 13:56:12 -0500

Fix some uses of DEPTH: without a branch specifier.

--------------------------------------------------------------------------------
1d18a2f660 | Neil Moore | 2014-11-18 13:47:21 -0500

Remove a no-longer-used include.

--------------------------------------------------------------------------------
61dafc64b9 | Neil Moore | 2014-11-18 13:21:21 -0500

Remove a stray colon from travis announcements.
The %{message} already ended in a full stop, so doesn't need a colon.

--------------------------------------------------------------------------------
7acaca48a6 | Neil Moore | 2014-11-18 12:38:09 -0500

Remove random_choose_ref.
This version didn't work correctly, because the arguments after the first
were passed by value, so we were returning a reference to a temporary.

It can be implemented independently if needed.

--------------------------------------------------------------------------------
60e38ceb0d | Neil Moore | 2014-11-18 12:27:45 -0500

Split random_choose into by-value and by-reference versions.
random_choose() now returns an argument by value, avoiding the overhead
of constructing reference_wrappers for simple value types.  The call-by-
reference version still exists as random_choose_ref(), currently unused.
Maybe a non-const version of that would be useful at some point.

This lets us eliminate the overload for const char *, since an array
passed by value already decays to a pointer.

--------------------------------------------------------------------------------
3bb561c2d1 | Neil Moore | 2014-11-18 11:58:15 -0500

Simplify the random_choose template (PleasingFungus)
Rather than expanding recursively, just make an array of the parameters
and roll a single random number.  Use reference_wrapper to avoid making
copies, but probably that is overkill for the simple value types we
currently use.

--------------------------------------------------------------------------------
a7d36a7ec5 | Neil Moore | 2014-11-18 11:52:51 -0500

Fix a clang warning.
-Wmismatched-tags warns about forward-declaring a class as a struct
or vice versa.

--------------------------------------------------------------------------------
6479c4befe | Nicholas Feinberg | 2014-11-18 08:39:40 -0800

Don't claim that items in shops rot away
In the stash tracker.

Hooray for corpse shops! :)

--------------------------------------------------------------------------------
06606e7a7d | Nicholas Feinberg | 2014-11-18 08:31:56 -0800

Fix autoexplore chunk confusion (9094)
The stash tracker assumed that items with 0 freshness would rot
away shortly, but chunks no longer use a single freshness field.

Export a fake simulated freshness value to more-or-less mimic the
old behavior, from an external perspective.

--------------------------------------------------------------------------------
460b558a47 | Nicholas Feinberg | 2014-11-18 08:26:13 -0800

Use a constant

--------------------------------------------------------------------------------
d37fbb956a | Nicholas Feinberg | 2014-11-18 07:31:31 -0800

Fix inverted 'known' logic
beam.cc.......

--------------------------------------------------------------------------------
2ccbca9a3e | Nicholas Feinberg | 2014-11-18 07:25:32 -0800

Maybe fix some conducts (9218, 9216)
Still a huge mess.

--------------------------------------------------------------------------------
2841ddf413 | Neil Moore | 2014-11-18 03:42:11 -0500

No longer require a terminator for random_choose.
And make it work better for types we might not want to copy.
random_choose_weighted is not affected.

Thanks to PleasingFungus for suggesting this change.

--------------------------------------------------------------------------------
428e133d34 | Neil Moore | 2014-11-18 02:12:59 -0500

Data-ify form constructor parameters.

--------------------------------------------------------------------------------
4c9c2373c1 | Nicholas Feinberg | 2014-11-17 23:00:48 -0800

Changelog tweaks

--------------------------------------------------------------------------------
563412d6cf | Nicholas Feinberg | 2014-11-17 22:15:48 -0800

Changelog through 0.16-a0-2405-g490e8e2

--------------------------------------------------------------------------------
490e8e2c9d | Neil Moore | 2014-11-18 01:13:38 -0500

Add a missing header.
It wasn't necessary for me with g++, but might as well be correct.

--------------------------------------------------------------------------------
e1b3c97ed5 | Neil Moore | 2014-11-18 01:06:11 -0500

Don't name an unused parameter.

--------------------------------------------------------------------------------
7288136645 | Neil Moore | 2014-11-18 01:03:30 -0500

Replace bind2nd with bind.
The former (and ptr_fun, also removed) is deprecated.

Also replace one lambda with bind() in monster::has_spell_of_type.

--------------------------------------------------------------------------------
8bc45018d9 | Neil Moore | 2014-11-18 00:25:36 -0500

Split monster::search_spells, simplify.
Rename search_spells to search_slots and reimplement it with any_of.
Make search_spells into a wrapper that uses a predicate on spells rather
than slots, allowing things like "search_spells(is_unclean_spell)".

--------------------------------------------------------------------------------
c205e79786 | Neil Moore | 2014-11-17 23:53:44 -0500

Simplify a few things, and improve an algorithm
Use std::none_of rather than explicitly looping over demon_traits
in search of a match.

Use a range-based for loop for a few iterations over the player's spells.

Have is_memorised call you.has_spell, for which it is a synonym.  Make
the latter, and _get_spell_slot, use std::find.  Use is_memorised in
one location that essentially replicated the loop yet again.

Replace an ugly repeated array scan in _get_status_lights with a bitset.
It would be even nicer if we could statically initialise the bitset from
important_statuses rather than setting it each time we check status
lights.  Possibly an array<bool> or FixedVector<bool> would be faster
than bitset despite the increased size.

--------------------------------------------------------------------------------
1eca9a74a9 | Steve Melenchuk | 2014-11-17 19:08:48 -0800

Replace the rod of striking with the iron rod.
In practice, nobody is interested in using a melee weapon that you need
to train Evocations for, so let's do something more interesting.

The iron rod has Scattershot, a level 6 Conjuration/Earth spell that
blasts the area in front of the player in a shotgun-like spread of
metal fragments.

In practice it throws ~eleven BEAM_FRAG projectiles each of which does
roughly half the damage of an iron shot; thus it is quite powerful at
close ranges against lightly armoured targets and disperses crowds
quite readily, but is fairly wimpy at long ranges and against heavily
armoured targets.

Range is six squares - one more than Iron Shot. Don't expect for it to
do much at that distance, though.

SPELL_MELEE is gone, as it's now completely useless.

Credit to mumra for the name and the original concept for this (which is
still floating around on an old branch, in fact).

Spread and pellet count of Scattershot increases with spellpower.

At high power, you may think of it as Super Scattershot.

--------------------------------------------------------------------------------
9fae1b6714 | Nicholas Feinberg | 2014-11-17 18:09:26 -0800

Give 'enchanted' items a 'brand' description
As noted, this wants a bit of deduplication/cleanup.

--------------------------------------------------------------------------------
449c05feea | Nicholas Feinberg | 2014-11-17 18:09:25 -0800

Cleanup unused code
Completely meaningless.

--------------------------------------------------------------------------------
cde4a19394 | Shmuale Mark | 2014-11-17 20:58:51 -0500

Fix comments.

--------------------------------------------------------------------------------
cb39f22159 | Shmuale Mark | 2014-11-17 20:55:58 -0500

Fix mid/mindex confusion.

--------------------------------------------------------------------------------
cb0c9f4c67 | Nicholas Feinberg | 2014-11-17 17:52:20 -0800

Fix a comment (wheals)
wheallssssss

--------------------------------------------------------------------------------
14b755f613 | Nicholas Feinberg | 2014-11-17 17:46:48 -0800

Fix yet another missing space issue
It will never be ended.......

--------------------------------------------------------------------------------
d5a22de2e2 | Nicholas Feinberg | 2014-11-17 17:46:48 -0800

Simplify

--------------------------------------------------------------------------------
1cf97f0674 | Nicholas Feinberg | 2014-11-17 17:46:11 -0800

Simplify piety for follower kills
It now follows the same rules as direct kills.

The old system was quite complex, in principle encouraged tedious
behaviour ('last-hitting'), and, most importantly, served no real
design purpose.

This is a buff to all gods who care about kills, especially those
(like Vehumet) who previously didn't accept follower kills at all.
If it's excessive, we can tone down piety gains or increase decay.

EXCEPTION: Ru still doesn't care about follower kills for purposes
of offering sacrifices; this is completely invisible to the player
(and was before) but is still a bug from my perspective. TODO.

--------------------------------------------------------------------------------
259dd3bdbe | reaverb | 2014-11-17 19:46:14 -0500

Move a global (apply_berserk_penalty) into the player class

--------------------------------------------------------------------------------
10d1fa2614 | reaverb | 2014-11-17 19:46:14 -0500

Add braces (wiz-dump.cc)

--------------------------------------------------------------------------------
ea73f07cbd | Steve Melenchuk | 2014-11-17 17:43:58 -0700

Make Disaster Area work better at low invocations (various).
Bias towards targeting tiles with monsters; hit closer to the player if
the explosions won't be large enough to hit the player.

--------------------------------------------------------------------------------
8c53b037f8 | Neil Moore | 2014-11-17 16:34:30 -0500

Fix empty attack descriptions (doh)

--------------------------------------------------------------------------------
14feae71f4 | Neil Moore | 2014-11-17 16:31:10 -0500

Remove a pointless check (Grunt, clang)
It has been useless ever since it was added in 0.3: colour is an array
member of game_options, so its pointer will never be null.

--------------------------------------------------------------------------------
c964dc0238 | Jesse Luehrs | 2014-11-17 16:26:48 -0500

don't break compilation when we next bump save compat

--------------------------------------------------------------------------------
ccbbdab81b | Steve Melenchuk | 2014-11-17 14:14:44 -0700

Targeter for monster Fulminant Prism; some related bug fixes.
Monsters try to place prisms such that they cover the maximum number of
spaces the target could be at in 30 aut (the prism's detonation time).

Once again, ghosts will be our testing ground for this; one suggested
use for this is deep elf conjurers (who have too many bolt spells right
now).

This also fixes the bug of "hit from afar by [bennu | fulminant prism]"
(both have only occurred once at the time of this commit).

--------------------------------------------------------------------------------
2ce803e03c | Jesse Luehrs | 2014-11-17 16:06:37 -0500

also handle shaolin/robustness

--------------------------------------------------------------------------------
1369609682 | Jesse Luehrs | 2014-11-17 16:06:37 -0500

update for changes in dumpfile format

--------------------------------------------------------------------------------
b7ed869b47 | Jesse Luehrs | 2014-11-17 16:06:37 -0500

fix a bad range-based-for conversion
the iteration needs to start at .begin() + offset here

--------------------------------------------------------------------------------
bf6b8611d3 | Neil Moore | 2014-11-17 14:45:09 -0500

Don't crash on redecorative wizmode rockswimmers.

--------------------------------------------------------------------------------
4766eba826 | Neil Moore | 2014-11-17 14:43:50 -0500

Don't crash when Xom enslaves.

--------------------------------------------------------------------------------
409e20e6d2 | Neil Moore | 2014-11-17 13:27:56 -0500

Don't crash when foeless monsters conjure flames.

--------------------------------------------------------------------------------
6bc3ce62a0 | Jesse Luehrs | 2014-11-17 13:04:39 -0500

allow gdb to run automatically on debug builds
not sure why this was disabled in the first place

--------------------------------------------------------------------------------
ee7d12e695 | Steve Melenchuk | 2014-11-17 10:41:02 -0700

Paper over a layout_big_octagon issue (#9174).
Basically, this occurs when we get an entire row / column of solid rock
and replace_first tries to place a stair along that row/column and fails
because there's no open space there. If that happens, the layout is
almost certainly going to veto anyway (you'll only see solid
rows/columns when the map is too small to place properly), so don't
require that the check succeed.

--------------------------------------------------------------------------------
7c77ec3cbc | Steve Melenchuk | 2014-11-17 10:15:09 -0700

Webtiles: show the monster list again.
Oops.

--------------------------------------------------------------------------------
52119e6b35 | Corin Buchanan-Howland | 2014-11-17 12:14:32 -0500

Prevent undeclared variable warnings.

--------------------------------------------------------------------------------
c6b35ecf02 | Nicholas Feinberg | 2014-11-17 09:09:30 -0800

Check an array's length properly

--------------------------------------------------------------------------------
80e497d0d3 | Steve Melenchuk | 2014-11-17 10:01:52 -0700

Webtiles: don't use resetTransform() (#9067).
Since nothing other than Chrome defines it yet, apparently.

--------------------------------------------------------------------------------
37761cc8d1 | Jesse Luehrs | 2014-11-17 11:42:42 -0500

avoid some undefined behavior

--------------------------------------------------------------------------------
662a9ef771 | Corin Buchanan-Howland | 2014-11-17 10:53:33 -0500

Increase Apocalypse slow effect length.
It was fairly short given how much worse than other statuses it is.

--------------------------------------------------------------------------------
b4eba43fac | Corin Buchanan-Howland | 2014-11-17 10:53:32 -0500

Apply statuses from Apocalypse after damage to limit message spam.

--------------------------------------------------------------------------------
fc72cfc76e | Neil Moore | 2014-11-17 10:44:24 -0500

Don't crash on foe-less blue devils.

--------------------------------------------------------------------------------
f449b06ff4 | Shmuale Mark | 2014-11-17 09:44:11 -0500

Don't blame the player for hell effect miscasts (hanon12, Ugrim).
Or most miscellaneous uses of miscasts.

--------------------------------------------------------------------------------
8b0227a0ff | Shmuale Mark | 2014-11-17 09:44:11 -0500

Remove an unused field of MiscastEffect.

--------------------------------------------------------------------------------
abbe362c9f | Shmuale Mark | 2014-11-17 09:44:11 -0500

Remove a somewhat misleading blank space.

--------------------------------------------------------------------------------
8e7adf0c67 | Shmuale Mark | 2014-11-17 09:44:06 -0500

Fix shapeshifters, TLH dying (#9200).

--------------------------------------------------------------------------------
d816721af7 | Shmuale Mark | 2014-11-17 07:50:55 -0500

Use a constant.

--------------------------------------------------------------------------------
19e4deda89 | Nicholas Feinberg | 2014-11-16 23:04:42 -0800

Move cloud colours into data

--------------------------------------------------------------------------------
d8e5799988 | Nicholas Feinberg | 2014-11-16 23:04:42 -0800

Unbrace

--------------------------------------------------------------------------------
1b2be080c4 | Steve Melenchuk | 2014-11-17 06:51:40 +0000

Fix oplace=D:-1.
Caused by 3ec7e53.

--------------------------------------------------------------------------------
f71aa261a6 | Nicholas Feinberg | 2014-11-16 22:38:33 -0800

Further flattening

--------------------------------------------------------------------------------
8020d6e297 | Nicholas Feinberg | 2014-11-16 22:33:52 -0800

Add a cloud name assert

--------------------------------------------------------------------------------
c28de37bb9 | Nicholas Feinberg | 2014-11-16 22:30:48 -0800

Fixup storm code

--------------------------------------------------------------------------------
9ec0eb51dc | Nicholas Feinberg | 2014-11-16 22:26:37 -0800

cloud.cc: refactor & flatten
Particularly lightning cloud code.

--------------------------------------------------------------------------------
800396534b | Steve Melenchuk | 2014-11-16 23:25:11 -0700

Give a necromancer spell set Inner Flame.
Think of this as replacing the old non-invisibility spell slot, hence
the weight and adding the flag.

Explosions ahoy!

--------------------------------------------------------------------------------
3ece7ea2d0 | Steve Melenchuk | 2014-11-16 23:23:57 -0700

Fix a necromancer spell set's spell weights.
These spells each had two copies, so they should get double the weight
of the other spells.

--------------------------------------------------------------------------------
9e10142217 | Steve Melenchuk | 2014-11-16 23:08:54 -0700

Fix monster Refrigeration tracer.
It was assuming it would always deal zero damage to the player, which
was inaccurate at best.

--------------------------------------------------------------------------------
8fdfa29ac7 | Steve Melenchuk | 2014-11-16 22:49:11 -0700

Monsters will Inner Flame anything near their target indiscriminately.
... since the point is to blow up their target, after all.

TODO: this and the previous work on Enslavement and Control Undead has
caused or exacerbated a lot of code duplication that needs cleaning up.

--------------------------------------------------------------------------------
bb92e1af02 | Nicholas Feinberg | 2014-11-16 21:46:02 -0800

Move clouds beam types into data
Some real oddities in there...

--------------------------------------------------------------------------------
6d37d05900 | Nicholas Feinberg | 2014-11-16 21:46:02 -0800

Remove an obsolete case
The player can no longer get rAcid+++.

--------------------------------------------------------------------------------
af44b866e4 | Steve Melenchuk | 2014-11-16 22:27:56 -0700

Add zuurr to mailmap and CREDITS.txt.

--------------------------------------------------------------------------------
fa1ea45825 | Thom Chiovoloni | 2014-11-16 22:27:56 -0700

Webtiles: Modify styling to prevent canvas blurriness on HiDPI screens where 
possible.

--------------------------------------------------------------------------------
0475afac5c | Steve Melenchuk | 2014-11-16 22:27:56 -0700

Webtiles: scale canvases by devicePixelRatio properly.
This is a new version of 75d9865; the block in dungeon_renderer.shift is
the fix for the issue that was preventing this from working properly.

As a bonus, it scales more canvases, too!

It doesn't scale the minimap yet, though. Not that blocks need scaling.

--------------------------------------------------------------------------------
e8e735018a | Shayne Halvorson | 2014-11-16 23:19:20 -0600

Actually remove the redundant drawn line from Pain card.

--------------------------------------------------------------------------------
e80449352d | Nicholas Feinberg | 2014-11-16 21:17:41 -0800

Fix &o decks (9204)

--------------------------------------------------------------------------------
0ef62c708f | Nicholas Feinberg | 2014-11-16 21:06:51 -0800

Stop dividing by zero

--------------------------------------------------------------------------------
9534a279da | Shayne Halvorson | 2014-11-16 22:44:00 -0600

Daze undead hit by Degeneration card (theTower).
As the undead suffer side effects from mutating.

--------------------------------------------------------------------------------
54438205d9 | Nicholas Feinberg | 2014-11-16 20:27:20 -0800

Mangle NEVER_HIDE corpses
Specifically, change kiku (& gozag) from applying an invisible
NEVER_HIDE property on corpses (to prevent scumming for dragon
hides); they now instead MANGLE the corpses, which is, well,
visible, in both the item name & description.

Should hopefully be an improvement in usability.

--------------------------------------------------------------------------------
1d5b690e8f | Nicholas Feinberg | 2014-11-16 19:23:56 -0800

Identify enemy-held weapon brands on sight
A kobold comes into view. It is wielding a dagger of distortion.

The goal here is to allow more tactical combat, by encouraging
players to pay attention to enemy brands & react appropriately.
In principle that could be done already, by "treating every
glowing weapon as if it was a distortion weapon" (or other
threatening brand), but in practice the huge false positive rate
meant that only the very most dedicated players had the
patience.

A reasonable concern would be that this will actually increase
the attention burden on players - the additional information
making players have to pay *more* attention to enemy weapons,
but, in a bad way...? Certainly some thought should be put
into reasonable defaults, re message colouring & force_mores.

This is a buff to players, and a flavor nerf to Ash - the latter
is unfortunate. Not crippling, but Ash has had a series of flavor
nerfs lately, as the ID game changes - probably needs some love
soon.

Most brands are shown as usual; known-unbranded but glowing
weapons are "enchanted". (Either have plusses or are cursed, but
are SPWPN_NORMAL regardless - would be good to communicate this
better.)

--------------------------------------------------------------------------------
46614b9558 | Neil Moore | 2014-11-16 21:46:42 -0500

Addd ebering to credits and mailmap.

--------------------------------------------------------------------------------
41601ff246 | Nicholas Feinberg | 2014-11-16 18:09:16 -0800

Make very dumb creatures not fear rain
Specifically, not fear drowning in a shallow pool.

They are very stupid, these monsters.

--------------------------------------------------------------------------------
7f4f4f3fb8 | Nicholas Feinberg | 2014-11-16 18:09:16 -0800

Move cloud names into the new cloud struct

--------------------------------------------------------------------------------
58c0e3adcf | Nicholas Feinberg | 2014-11-16 18:09:16 -0800

Pull expected cloud damage into data

--------------------------------------------------------------------------------
4e57392622 | Nicholas Feinberg | 2014-11-16 18:09:16 -0800

Simplify more _mons_avoids_cloud() code

--------------------------------------------------------------------------------
621cfab11f | Edgar A. Bering IV | 2014-11-16 18:09:16 -0800

Cloud updates now with sane magic number choices

--------------------------------------------------------------------------------
69029fd0c7 | Edgar A. Bering IV | 2014-11-16 18:09:16 -0800

Let resistant monsters ability to enter clouds.
Also adds some previously-un-handled cases for when a non-immune but tough
monster enters a cloud that won't hurt it too bad. The magic numbers
in those cases are probably wrong but I don't know what I'm doing with
those.

--------------------------------------------------------------------------------
42dce05763 | Neil Moore | 2014-11-16 21:07:30 -0500

Avoid a needless copy.

--------------------------------------------------------------------------------
38cf1cd258 | Neil Moore | 2014-11-16 20:42:43 -0500

Implement shuffle_array using std::shuffle
Using our own RNG rather than std's.  Also generalise the vector version
so it works on all kinds of random-access containers, in particular
fixed-size arrays.  Use that version in several places so we don't have
to manually pass in a size parameter.

--------------------------------------------------------------------------------
f800d0ddb2 | Neil Moore | 2014-11-16 20:41:18 -0500

Simplify

--------------------------------------------------------------------------------
ef851e7de7 | Neil Moore | 2014-11-16 20:41:18 -0500

Fix a bounds error in the ban_glyphs arena tag.
The check for the eighth bit was broken.

--------------------------------------------------------------------------------
0877dc5c1d | Nicholas Feinberg | 2014-11-16 16:48:14 -0800

Remove an extra space
prediction: this causes more problems elsewhere

--------------------------------------------------------------------------------
8d3391961e | Nicholas Feinberg | 2014-11-16 16:04:34 -0800

Re-add corpse variety
For kiku & gozag ghoul shops.

TODO: make code less bad

--------------------------------------------------------------------------------
0eaed583d1 | Nicholas Feinberg | 2014-11-16 15:54:12 -0800

Revert "Temporarily revert "Simplify _recieve_corpses""
This reverts commit 5f59e2d4b35d42ce1f3c1978b08b1d6cbf4f88be

--------------------------------------------------------------------------------
32ba2d1179 | Shmuale Mark | 2014-11-16 18:46:02 -0500

Don't hardcode the zombie speed modifier.

--------------------------------------------------------------------------------
6960f4f1d4 | Shmuale Mark | 2014-11-16 18:43:51 -0500

Minor cleanups.

--------------------------------------------------------------------------------
477aa95009 | Edgar A. Bering IV | 2014-11-16 18:43:51 -0500

Annotate levels when corrupting them with Lugonu

--------------------------------------------------------------------------------
67aa517b28 | Edgar A. Bering IV | 2014-11-16 18:43:50 -0500

Have runed doors appear in level annotations.
I'm not 100% happy with how I did this. We just add
a note to the general annotation string. No extra notes
are added for more doors (because runed doors might be multi-cell
and the edge cases there had a chance to get really gross),
and we don't remove the note when the door is opened (for much
the same reasons; and also it might be nice to know the vault
is there even after opening it).

--------------------------------------------------------------------------------
19267dd9f6 | Nicholas Feinberg | 2014-11-16 15:42:25 -0800

Maybe fix non-clang compilation
for bad compilers

--------------------------------------------------------------------------------
5f59e2d4b3 | Nicholas Feinberg | 2014-11-16 15:39:26 -0800

Temporarily revert "Simplify _recieve_corpses"
This reverts commit 2f5996596252a818cf484ee58e654bfb70eb7692.

--------------------------------------------------------------------------------
2f59965962 | Nicholas Feinberg | 2014-11-16 15:33:29 -0800

Simplify _recieve_corpses
Guarantee that pick_local_zombifiable_monster will always return
a zombifiable monster.

Seriously, WTF

--------------------------------------------------------------------------------
4560cd31af | Nicholas Feinberg | 2014-11-16 15:30:27 -0800

Remove the static zombie table
Instead, filter out all D zombies with speed < 12. (That is,
zombie speed < 10.)

Spawn tables could probably still use some adjustment.

--------------------------------------------------------------------------------
575aa7fe74 | Nicholas Feinberg | 2014-11-16 14:49:12 -0800

Fix some pronouns
For the incredibly tiny number of cases in which it matters.

--------------------------------------------------------------------------------
7d48ffd5bf | Nicholas Feinberg | 2014-11-16 14:49:08 -0800

Add androsphinxes
Implicitly.

--------------------------------------------------------------------------------
b221f90fee | Nicholas Feinberg | 2014-11-16 13:38:17 -0800

Remove the letter 'z'

--------------------------------------------------------------------------------
f7a6202f25 | Corin Buchanan-Howland | 2014-11-16 16:02:48 -0500

Remove death knights
This zealot didn't add any particular novel experience, given that the
pre-temple gameplay is pretty similar to Necromancer, and starting w/
Yred means losing the interesting experience of picking a god in the
dungeon.

--------------------------------------------------------------------------------
9ee21916c2 | Corin Buchanan-Howland | 2014-11-16 15:44:46 -0500

Update changelog slightly.

--------------------------------------------------------------------------------
2079b06d8c | Corin Buchanan-Howland | 2014-11-16 15:27:47 -0500

Properly handle autopickup for VS/Formicid under Sac Love. 
(HilariousDeathArtist)

--------------------------------------------------------------------------------
dbc6749150 | Corin Buchanan-Howland | 2014-11-16 15:19:37 -0500

Nerf caustic shrikes, readjust spawn and pack size
After discussing in -dev, decreasing HD by 2, decreasing damage by 10%,
and slightly raising pack size and spawn rates. Spawn rate is still lower
than yesterday.

--------------------------------------------------------------------------------
43fb89da49 | Jesse Luehrs | 2014-11-16 15:02:34 -0500

make river rats amphibious

--------------------------------------------------------------------------------
9c91b928dd | Jesse Luehrs | 2014-11-16 15:02:34 -0500

green rat -> river rat

--------------------------------------------------------------------------------
d059c6950f | Corin Buchanan-Howland | 2014-11-16 14:44:25 -0500

Reduce caustic shrike spawn frequency and band size.
Shrikes were responsible for a larger proportion of Depths kills than
seems desireable, so I've cut their spawn rate by 50% and afjusted band
size, usually downwards.

--------------------------------------------------------------------------------
3a7ece948d | Nicholas Feinberg | 2014-11-16 11:29:14 -0800

De-nerf FeMo (9169)
Fighters get !might now, and felid fighters specifically get
an extra 2 weapon skill. I strongly doubt that FeMo will be
'too strong'.

This partially reverts commit f05240ed176f5420229e56e39752b6794.

--------------------------------------------------------------------------------
397c230e70 | Nicholas Feinberg | 2014-11-16 10:13:10 -0800

Fix Ash warning formatting (_Jordan_)
It is, wielding a scimitar of fixed bugs.

--------------------------------------------------------------------------------
549816c060 | Nicholas Feinberg | 2014-11-16 10:13:10 -0800

Don't describe quivered items as 'worn'

--------------------------------------------------------------------------------
2972d3e03c | Steve Melenchuk | 2014-11-16 11:10:12 -0700

Don't unintentionally buff mass confusion (gammafunk).

--------------------------------------------------------------------------------
ea6f6be314 | Steve Melenchuk | 2014-11-16 10:54:41 -0700

A primitive implementation of monster Inner Flame.
Leverages the new "hex an ally of the target" logic for enslavement;
also targets the ally immediately afterwards for maximum explosive
factor.

--------------------------------------------------------------------------------
293bdaebaa | Steve Melenchuk | 2014-11-16 10:54:36 -0700

Monster Enslavement and Control Undead; give latter to anubis guards.
Monsters will only attempt to enslave your allies; Control Undead works
against anything undead in LOS (and breaks charms you've placed undead,
so they can re-Control your own controlled undead).

Yes, friendlies can use these spells; those doing so charm enemies (or
remove hexes).

--------------------------------------------------------------------------------
5327d74d26 | Neil Moore | 2014-11-16 11:55:28 -0500

Simplify?  Condense, anyway.

--------------------------------------------------------------------------------
88be60d558 | Neil Moore | 2014-11-16 11:54:07 -0500

Tweak miscast summon numbers a bit more (theTower, #9197)
Some of these numbers were unintentionally high because of off-by-one
errors in counting loop iterations. Fix those and tweak a few others,
and change all the loops to use > 0 so confusion is less likely.

<theTower> 1-3 for spatials, 2-3 for aboms, 1-3 worldbinders, 1-2 common
           demons, 2 shadows, 2-4 giant mites, 1-2 fire vortices, 2-5
           random_mobile_monsters

--------------------------------------------------------------------------------
40cbd7d2a7 | Neil Moore | 2014-11-16 11:39:10 -0500

Don't dereference a potentially null foe.

--------------------------------------------------------------------------------
b7744e24fa | Brendan Hickey | 2014-11-16 16:16:06 +0000

Vault Wardens must hate you to seal doors (9196)
A warden must be nearby and have you as a foe to seal doors.
Otherwise, it's possible for a wandering summon or undead pal to
aggrevate the warden and then whack you from across the map. The
door-sealing mechanics are tied to you being the target, so it
doesn't make that much sense to allow wardens to target your summons
without rewriting that code.

--------------------------------------------------------------------------------
346de8c772 | Steve Melenchuk | 2014-11-15 22:30:18 -0700

Properly #ifdef out a bit of tile selection code.
Thanks travis!

--------------------------------------------------------------------------------
566df744e0 | Steve Melenchuk | 2014-11-15 22:29:26 -0700

AT_KITE and AT_SWOOP to replace devil mon-abils.
AT_KITE should work in any slot; AT_SWOOP only functions in the first
attack slot.

Now to make the hypothetical beast that has both.

--------------------------------------------------------------------------------
589dd84358 | Shmuale Mark | 2014-11-15 23:52:03 -0500

Clean up some dead code.
Monsters only casted if you weren't around in very specific circumstances,
so all the special-casing didn't do very much (it slightly affected
The Unspeakable's casting sometimes, I guess).

Also, ball lightnings don't have spells anymore.

--------------------------------------------------------------------------------
eca9ec93ad | Shmuale Mark | 2014-11-15 23:40:42 -0500

Clean up some code duplication.
This also meant that shapeshifters wouldn't cast even natural spells
if they were in a spellcasting form, though right now there don't seem
to be any polymorph targets with both real and natural spells.

--------------------------------------------------------------------------------
23cdb65b3e | Steve Melenchuk | 2014-11-15 21:37:37 -0700

Add a button to show the keyboard on touch UIs.
Complete with Grunt tile, which probably should be replaced.

--------------------------------------------------------------------------------
32e89f34a4 | Steve Melenchuk | 2014-11-15 21:37:37 -0700

Properly generate dat/tiles/*.png from rltiles on install-data.

--------------------------------------------------------------------------------
9f806c8d2e | Steve Melenchuk | 2014-11-15 20:48:36 -0700

Calls to wm->show_keyboard depend on TOUCH_UI, not __ANDROID__.
In case we ever need to do this for non-Android touchscreen devices.

In the event that we undefine TOUCH_UI while on Android, the keyboard
once again pops up on init.

--------------------------------------------------------------------------------
dce89d59db | Shmuale Mark | 2014-11-15 22:09:39 -0500

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
817cc94713 | Shmuale Mark | 2014-11-15 22:08:32 -0500

Don't crash when killing a polymorphed hydra.

--------------------------------------------------------------------------------
d1d72e4d88 | gammafunk | 2014-11-15 20:45:38 -0600

Fix an erroneous simplification and document for clarity

--------------------------------------------------------------------------------
6acbb2624e | Neil Moore | 2014-11-15 21:42:27 -0500

Use a flavourful message for Prince Ribbit.

--------------------------------------------------------------------------------
7c6b478f1e | Shmuale Mark | 2014-11-15 21:07:45 -0500

Restore monsters to their original type in death (minmay).

--------------------------------------------------------------------------------
4dc075920d | Shmuale Mark | 2014-11-15 21:07:44 -0500

Fix the colour of classed draconians' corpses.

--------------------------------------------------------------------------------
4e15341800 | Shmuale Mark | 2014-11-15 21:07:44 -0500

Replace "original_was_unique" and "original_name" with ORIGINAL_TYPE_KEY.

--------------------------------------------------------------------------------
56d0c645db | theTower | 2014-11-15 20:54:32 -0500

Spray of (minor) vault edits
Mostly little syntax errors and clean-up, mild blockings of undesirable
behaviours like dangerous monsters teleporting / digging out from glass,
fix-ups after feature deaths, and so on.

Particular highlights:
 * Majin-bo is now in the Hellbinder's (reliably) and Crypt:$ (sometimes).
 * lemuel_statue_in_the_mist, a vault which fundamentally contradicts itself,
   has had the monster-statue placement moved over to a new Abyss placement,
   where it can actually work to put obscuring clouds over a statue.
 * The kobold artificer in blue_anna_alchemist is now a big kobold artificer,
   not that it's any dangerous still.
 * Trim out some statues and one bland vault from the de-gimmick-ified set of
   dk_noncrumbling, it's a tiles eyesore and a bad precedent of excess terrain
   use.
 * Grunt's generic ministair and megastair vaults no longer place trees in
   Crypt, Zot, or the Hells. Previous position applies alongside it being
   absurd to see trees in the Hells in the first place.
 * lemuel_elevator is more rare outside of D, and in such placement also has
   an ambushing monster present and adjacent to make people's day with the
   otherwise generous stair arrangements.

--------------------------------------------------------------------------------
77ab01330d | Nicholas Feinberg | 2014-11-15 16:58:06 -0800

Rename Gozag special food shops
Blood for the vampire gods, corpses for the ghouls!

--------------------------------------------------------------------------------
1bc1534b3e | Shmuale Mark | 2014-11-15 19:40:45 -0500

Hide mutation_def and some other things out of mutation.h
This allows the former to be defined in mutation-data.h.

--------------------------------------------------------------------------------
9158338d3a | Shmuale Mark | 2014-11-15 19:37:20 -0500

Run a COMPILE_CHECK even when building non-debug.
They're allowed outside function in C++11.

--------------------------------------------------------------------------------
bba1992ac7 | Shmuale Mark | 2014-11-15 19:17:55 -0500

Simplify.

--------------------------------------------------------------------------------
da1e383681 | Shmuale Mark | 2014-11-15 19:06:45 -0500

Fix feature overrides if a magic mapped symbol is not specified (#9177).
Not sure why this ever worked.

--------------------------------------------------------------------------------
9445664897 | Shmuale Mark | 2014-11-15 18:58:48 -0500

Change the mummy death curse message.
Instead of "an indirect mummy death curse", "a guardian mummy's death
curse" or "Khufu's death curse."

--------------------------------------------------------------------------------
c4a430992d | Shmuale Mark | 2014-11-15 18:55:07 -0500

Remove MISC_MISCAST.
The cost of an enum entry is low, the cost of programmer confusion
is somewhat higher. Also allows cleaning up code slightly.

--------------------------------------------------------------------------------
ade6a41304 | Shmuale Mark | 2014-11-15 18:55:04 -0500

Use an enum (PleasingFungus).

--------------------------------------------------------------------------------
623a6cb98a | Shmuale Mark | 2014-11-15 18:22:55 -0500

Simplify.

--------------------------------------------------------------------------------
0730de03e0 | Shmuale Mark | 2014-11-15 18:21:06 -0500

Restore death scarabs' corpses.
Mea culpa: they were added intentionally, but that should have been
in a separate commit.

--------------------------------------------------------------------------------
ad6c6b887a | Shayne Halvorson | 2014-11-15 16:10:38 -0600

Add disjunction to Solitude card at high card power.

--------------------------------------------------------------------------------
c5a92b3272 | gammafunk | 2014-11-15 15:46:40 -0600

Correctly record shapeshifters in objstat

--------------------------------------------------------------------------------
065f6e215c | gammafunk | 2014-11-15 15:46:40 -0600

Clean up progress output for objstat/mapstat

--------------------------------------------------------------------------------
c42ec1144b | gammafunk | 2014-11-15 15:46:40 -0600

Allow mapstat and objstat to run in debug Tiles builds

--------------------------------------------------------------------------------
829e8b3e4c | Nicholas Feinberg | 2014-11-15 12:52:31 -0800

Possibly fix travis notificiations

--------------------------------------------------------------------------------
6c21c45e42 | Nicholas Feinberg | 2014-11-15 11:55:53 -0800

Fix burst IOOD targeting
Should work now.

Extremely spammy in debug mode, but that can be trimmed, of
course.

--------------------------------------------------------------------------------
d197b7dc6b | Nicholas Feinberg | 2014-11-15 11:15:25 -0800

Make high-power Orb cards try to aim (Hangedman)

--------------------------------------------------------------------------------
c81548c6dd | Neil Moore | 2014-11-15 13:31:26 -0500

Shorten the Travis IRC notification.

--------------------------------------------------------------------------------
57361f544d | Steve Melenchuk | 2014-11-15 10:42:53 -0700

Android: only show keyboard when text input is needed.
TODO: add a button into the command area to show it on demand; also
figure out other cases when it might be needed (like at the main menu,
but in the short term players can restart the game if needed).

A short term workaround is to use the stash search button, which pulls
up the keyboard because it needs text input.

--------------------------------------------------------------------------------
a8bd5541e9 | Steve Melenchuk | 2014-11-15 10:23:45 -0700

Map the back button on Android to ESC.
... since that's the closest equivalent key here.

TODO: get it to save and quit on the main screen, or prompt for it?

--------------------------------------------------------------------------------
ba5297f6f5 | Jesse Luehrs | 2014-11-15 12:16:56 -0500

fix compilation

--------------------------------------------------------------------------------
db69f5c881 | Steve Melenchuk | 2014-11-15 10:16:33 -0700

Fix up some Android debug messages.
Enable two that weren't enabled properly that are relevant; remove
several that are no longer relevant.

--------------------------------------------------------------------------------
52e2f7bd91 | gammafunk | 2014-11-15 10:54:19 -0600

Have monsters only cast spectral weapon when close to their foe
The spectral weapon can only attack after Asterion has, so previously
when he casted the spell at range it was beneficial to the player. Now
Asterion will only cast the spell if he's within two tiles of his
target.

--------------------------------------------------------------------------------
e6247f0b74 | Neil Moore | 2014-11-15 10:33:26 -0500

Use type inference rather than std::conditional<>

--------------------------------------------------------------------------------
ed810b6824 | Neil Moore | 2014-11-15 10:26:06 -0500

Explicitly #include <type_traits>
For conditional<> and is_const<>.  It seems to be pulled in by another
header with libstdc++, but there's no sense in relying on that.

--------------------------------------------------------------------------------
c8bc184d7e | Neil Moore | 2014-11-15 10:11:34 -0500

Deduplicate a template.
Deduce the constness of map_find's returned pointer from the constness
of the map itself.

--------------------------------------------------------------------------------
abde7dcbcf | Neil Moore | 2014-11-15 09:47:16 -0500

Remove an extra leftover call to find().

--------------------------------------------------------------------------------
ff64977adc | Neil Moore | 2014-11-15 09:44:40 -0500

Don't copy the map in map_find (doh)
And provide and use a const version.

--------------------------------------------------------------------------------
3ec7e53c43 | Neil Moore | 2014-11-15 02:53:07 -0500

Implement and use a map_find template function.
The safe way to get a value from a map is to find() and only if that
returned a non-end iterator dereference the iterator to get the value.
Unfortunately, map iterators don't convert to bool, so it's hard to
do this in an if condition, leading to the iterator being declared
before the if, in a higher scope than necessary.

map_find is a wrapper around map::find that returns a pointer to the
value (or null if not found).  Since pointers do convert to bool, this
function is easier to use in conditionals.

--------------------------------------------------------------------------------
5a62ea032f | Neil Moore | 2014-11-15 02:43:33 -0500

Simplify
Since we don't need the iterator later, it's simpler to erase from the
set by value, rather than find() followed by erase-by-iterator.

--------------------------------------------------------------------------------
41bb36c366 | Neil Moore | 2014-11-15 02:43:33 -0500

Answer a comment.

--------------------------------------------------------------------------------
b92de7c00f | Neil Moore | 2014-11-15 02:43:33 -0500

Move peeve/like application to their structs.
Technically this could cause behaviour differences, but only if
a god both likes and dislikes the same action.

--------------------------------------------------------------------------------
edb9c0078d | Neil Moore | 2014-11-15 02:43:33 -0500

Document a formula

--------------------------------------------------------------------------------
2a7ae6531c | theTower | 2014-11-15 01:35:53 -0500

Edit zig loot mildly.
 * Add an average of one restore abilities potion per zig (in initial
   zig floor settings), since Tomb floors and extended mana channeling
   / summons can eat away at one's stats easily and it's nice to be
   nice about it.
 * Add a tiny chance of beneficial mutation in the best of the zig
   loot, because beneficial mutation is cool. The tiniest of odds
   are cut from potions of experience, cure mutation, and royal
   jelly stacks to slot it in.

--------------------------------------------------------------------------------
39c7246e0d | Steve Melenchuk | 2014-11-14 22:47:45 -0700

Use TILE_WALL_FLESH for LIGHTRED Pan walls (PleasingFungus).
Matches the Cigotuvi wizlab's choice of wall colour and tile.

--------------------------------------------------------------------------------
1e8e0b63ca | Steve Melenchuk | 2014-11-14 22:43:10 -0700

Generate bright versions of the Pan wall/floor tiles.
... so that the colours can match console properly. Yay.

--------------------------------------------------------------------------------
8c889247a6 | Steve Melenchuk | 2014-11-14 22:42:59 -0700

Make Pan tile colours match console colours.
I swear I'd done this ages ago. Apparently, I didn't.

--------------------------------------------------------------------------------
f5d29954f4 | Steve Melenchuk | 2014-11-14 21:59:42 -0700

Use SDL_TEXTINPUT for most keys again.
Avoids awkward key mapping code. Hooray.

--------------------------------------------------------------------------------
943817a3de | Neil Moore | 2014-11-14 23:26:52 -0500

Remove "time" from stress test.
Travis doesn't have /usr/bin/time, and its /bin/sh doesn't have it
as a builtin either.

--------------------------------------------------------------------------------
95e4a74b54 | Steve Melenchuk | 2014-11-14 21:25:33 -0700

Mollify Travis with -lrt when building contrib sdl2.
We hope.

--------------------------------------------------------------------------------
ec867ec667 | Steve Melenchuk | 2014-11-14 21:25:06 -0700

Fix up some screen resize hiccups.
This is kind of hacky; for subscreens it works by passing a virtual
keystroke saying the screen needs to be resized.

It's not 100% bug-free yet, but it works for most purposes.

--------------------------------------------------------------------------------
b1db355184 | theTower | 2014-11-14 23:12:06 -0500

Set hell beasts to the top of their HD, AC, EV (but not speed)
Hell beasts are weak for their demon tier. They're basically redundant
on nearly all fronts but Geryon. As such, I'm tweaking an odd and
pointless set-ups: they would previously have a random 4 to 7 HD,
which corresponded with 2 to 5 AC and 11 to 15 EV. Since they're
relatively weak, I'm just going to fix this bit of randomness directly,
giving all of them 7 HD / 5 AC / 15 EV. Still weak in plenty of other ways.

They're still random speeds, because random speed is significant and
obviously visible. Abominations, though not particularly amazing in
Abyss, have a revalent aspect of player Twisted Resurrection to them
that I'd rather not touch.
(Strictly speaking, the Horn of Geryon especially and a variety of
other greater demon summons are slightly buffed player-wise, but it's
in a marginal enough manner that I'm not concerned.)

--------------------------------------------------------------------------------
6090d16214 | theTower | 2014-11-14 22:49:39 -0500

Pan Lord spell adjustments
 * Cut the high chance for teleport self and blinking. With the spell
   slot system no longer making it emergency only, it became highly
   likely for a pandemonium lord to randomly teleport whenever it wants.
   The use of teleport self also isn't particularly interesting here,
   and blinking is both extremely common and not necessarily helpful
   while forced as such.
   - In a much less noticable but significant fashion, I've removed a
     no-longer-necessary block on an extra chance to Dig (due to its
 * Replace some minimum-level spells in their custom spell lists with
   higher-level spells, either unused previously or tacked on much
   later on in an ugly, messy way. These spells were inherited from the
   code previously sharing functionality with ghosts, a concern no longer.
   The slim chances of Magic Dart, Flame Tongue, Freeze, Sandblast, Shock,
   Sting, Pain, Ensorcelled Hibernation, Summon Small Mammal, Call Imp,
   and Corona (listed twice!) have been replaced with, respectively,
   Quicksilver Bolt, Steam Ball, Smiting, Corrosive Bolt, Boltblink,
   Poison Arrow, Vampiric Draining, Sleep, Summon Vermin, Shadow Creatures,
   and Drain Magic / Poisonous Cloud.
   - For Quicksilver Bolt, Smiting, and Steam Ball, this is an added 1.6%
     chance more to see them while lowering the infinitesimal chances of a
     pan lord getting an excessive amount of spells. The other such listed
     spells were absent entirely, either from not existing when the list
     was first arranged or awkward connotations with ghosts or whatever.
     Pandemonium Lords will be marginally more scary, but the odds of most
     of the previous extremely strong spells (i.e. Torment, Hellfire,
     Fire Storm, Glaciate, etc) haven't been touched.
     ~ Also, there are still some very sad spells left: Throw Flame / Frost,
       Sticky Flame, and Mephitic Cloud are the obvious harmless ones.
       There's not many spells left to directly replace them with, and I'd
       rather defer figuring out if direct removal (and thus marginally more
       common much bigger spells) or other accessible gimmick spells would
       be solutions, if necessary, to those areas. I already feel lightly
       guilty for using rather rare Blinkbolt here (the raiju special.)
   - Also, a straight upgrade for melee-only sticky flame to ranged
     (once more, not that sticky flame means anything on pan lords),
     and from Twisted Resurrection to Simulacrum (for the Ds).
 * Resort these horribly messy lists. Ordered by level, then a vague schools
   list of Conj, Fire, Ice, Earth, Air, Poison, Necromancy, Summons, Charms,
   Hexes, misc. (Some monster-only spells have an ordering based on schools
   or levels hidden in the spell data.) I don't even want to begin to think
   of the implications of the scattered order of this list previously
   influencing ghost spell selections, and it's good it's no longer relevent
   for that.

Of course, with all this, the way it's all done is still absolutely horrific
anyway and much better refactoring / saner creation work would be nice. Just
fixing up a little bit of the current situation.

--------------------------------------------------------------------------------
212ecf382d | Nicholas Feinberg | 2014-11-14 18:34:30 -0800

Add a default force-more for SGD's charm ending
Very tiring to have to carefully watch for it.

--------------------------------------------------------------------------------
da8ff79318 | Steve Melenchuk | 2014-11-14 19:04:34 -0700

Where high DPI allows, render fonts in high resolution.
It looks beautiful.

--------------------------------------------------------------------------------
39e3340b20 | Nicholas Feinberg | 2014-11-14 17:48:58 -0800

Set item appearance when changing plus in spec
So weapons get runed properly, etc.

--------------------------------------------------------------------------------
758ed55a54 | Nicholas Feinberg | 2014-11-14 16:55:40 -0800

Flatten slightly further

--------------------------------------------------------------------------------
a66aea8e73 | Nicholas Feinberg | 2014-11-14 16:52:07 -0800

Let ?/G display the full ^ screen (silentsnack)
And flatten slightly.

--------------------------------------------------------------------------------
ab09373dbb | Nicholas Feinberg | 2014-11-14 15:09:37 -0800

Cleanup get_monster_equipment_desc() a little more
More use of comma_separated_line().

Also, monsters with equipment but no weapons will now be listed
more nicely.

Here: Ijyb, wearing a ring mail

as opposed to the previous

Here: Ijyb wearing a ring mail

--------------------------------------------------------------------------------
c1b29a6a2f | Nicholas Feinberg | 2014-11-14 14:44:23 -0800

Cleanup some get_monster_equipment_desc() code
Use comma_separated_line(), and remove an unreachable case.

(No idea what that block of code is intended to do - I can't get
it to fire...)

--------------------------------------------------------------------------------
b1749ae739 | Nicholas Feinberg | 2014-11-14 14:32:31 -0800

Flatten

--------------------------------------------------------------------------------
6f3e5893c8 | Nicholas Feinberg | 2014-11-14 14:26:44 -0800

Remove an obsolete and bizarre comment

--------------------------------------------------------------------------------
84b8fb8588 | Nicholas Feinberg | 2014-11-14 14:19:31 -0800

Add some more debug_mondata tests
Many of these could probably be implemented by type changes, but
I'm reluctant to play with signedness...

--------------------------------------------------------------------------------
0a134336f5 | Jesse Luehrs | 2014-11-14 17:03:08 -0500

increase the test timeout

--------------------------------------------------------------------------------
e23fea28b7 | Nicholas Feinberg | 2014-11-14 13:45:46 -0800

Remove zombie_size
Completely redundant with size + corpse_thingy.

--------------------------------------------------------------------------------
adcecf6d36 | Nicholas Feinberg | 2014-11-14 13:29:22 -0800

Add checks for zombie size/monster size mismatches
Though we'll probably remove this soon...

--------------------------------------------------------------------------------
f768695031 | Nicholas Feinberg | 2014-11-14 13:28:20 -0800

Make basilisks little
"There is the same power also in the serpent called the basilisk.
It is produced in the province of Cyrene, being not more than
twelve fingers in length..."

--------------------------------------------------------------------------------
9d6b8adbfa | Nicholas Feinberg | 2014-11-14 13:20:25 -0800

Fix and improve mon-data tests
In response to 1e521739cfb307cc39d2d2bce7cea9e8472d01af .

--------------------------------------------------------------------------------
77d22cb073 | Nicholas Feinberg | 2014-11-14 12:54:24 -0800

Improve an error message (reaverb)
No one should ever see this, but might as well

--------------------------------------------------------------------------------
6d12054b0b | Nicholas Feinberg | 2014-11-14 12:19:00 -0800

Re-add Zin's old ATTACK_NEUTRAL conduct
Since I hadn't removed it properly before, and I can't be bothered
to.

--------------------------------------------------------------------------------
bd64d33e2f | reaverb | 2014-11-14 15:03:12 -0500

Rename 'beam.is_beam' to 'beam.pierce'

--------------------------------------------------------------------------------
a507f1ef6a | Nicholas Feinberg | 2014-11-14 11:59:46 -0800

Finish gutting did_god_conduct()
Everything's in the switch now. Huzzah!

--------------------------------------------------------------------------------
cf273eefad | Nicholas Feinberg | 2014-11-14 11:59:46 -0800

Remove _piety_mult
And move it into the 'special' functions.

You were with us so briefly, like a meteor passing through the
heavens... alas! Alas!

--------------------------------------------------------------------------------
f6dccea7c9 | Nicholas Feinberg | 2014-11-14 11:59:46 -0800

Move all remaining god likes into data
This is kind of ugly...

--------------------------------------------------------------------------------
68960cb9fa | Nicholas Feinberg | 2014-11-14 11:59:46 -0800

Arguably simplify some kill code
There's a weird implication here that all gods care about
killing different holinesses in the same way... well, we can kill
that bridge when we come to it.

--------------------------------------------------------------------------------
6268547aca | Nicholas Feinberg | 2014-11-14 11:59:45 -0800

Fix okawaru/dith piety scaling
Broken somewhere around the start of these reforms.

--------------------------------------------------------------------------------
3382da664f | Nicholas Feinberg | 2014-11-14 11:59:45 -0800

Move DID_HASTY and DID_FIRE into data

--------------------------------------------------------------------------------
70f66d7e58 | Nicholas Feinberg | 2014-11-14 11:59:45 -0800

Remove a redundant param
Every single 'like' that filtered on victims used the same filter
function!

--------------------------------------------------------------------------------
0ff9489828 | Nicholas Feinberg | 2014-11-14 11:59:45 -0800

Move most remaining god peeves to data
DID_FIERY and DID_HASTY don't scale with level in the same way
as everything else & will require special handling.

--------------------------------------------------------------------------------
dfff294d7c | Nicholas Feinberg | 2014-11-14 11:59:45 -0800

Move most remaining Zin conducts into data
DID_CAUSE_GLOWING is very weird and will require special casing.

--------------------------------------------------------------------------------
bcd4a701ae | Nicholas Feinberg | 2014-11-14 11:59:45 -0800

Move Trog peeves to data
Sif Muna's piety gain works unlike anything else (in terms of
scaling vs level), probably because everything else is insane.
Anyway, will require some special handling.

--------------------------------------------------------------------------------
452e3bd8ce | Nicholas Feinberg | 2014-11-14 11:59:45 -0800

Pull remaining kill conducts into data
And simplify some holy kill code.

--------------------------------------------------------------------------------
fc47255bf1 | Nicholas Feinberg | 2014-11-14 11:59:45 -0800

Move a big pile of collateral kill conducts to data

--------------------------------------------------------------------------------
e600b9bae5 | Nicholas Feinberg | 2014-11-14 11:59:44 -0800

Move DID_KILL_HOLY and pals into data
Also a divide-by-zero for non-xl-scaled piety gains (accidentally
introduced when I changed that field from a factor to a divisor).

--------------------------------------------------------------------------------
c9c4eb1760 | Nicholas Feinberg | 2014-11-14 11:59:44 -0800

Move DID_KILL_FAST into data

--------------------------------------------------------------------------------
b872655b63 | Nicholas Feinberg | 2014-11-14 11:59:44 -0800

Move DID_KILL_PRIEST and _WIZARD into data

--------------------------------------------------------------------------------
63b47c0f7e | Nicholas Feinberg | 2014-11-14 11:59:44 -0800

Move DID_KILL_UNCLEAN and _CHAOTIC into data

--------------------------------------------------------------------------------
2275fa4f9b | Nicholas Feinberg | 2014-11-14 11:59:44 -0800

Move DID_KILL_NATURAL_* into data

--------------------------------------------------------------------------------
e673767fa9 | Nicholas Feinberg | 2014-11-14 11:59:44 -0800

Move DID_KILL_UNDEAD and _DEMON into data

--------------------------------------------------------------------------------
41eb8e6d43 | Nicholas Feinberg | 2014-11-14 11:59:44 -0800

Move DID_BANISH and DID_KILL_LIVING to data

--------------------------------------------------------------------------------
8446007d60 | Nicholas Feinberg | 2014-11-14 11:59:43 -0800

Add support for divine likes as data

--------------------------------------------------------------------------------
60d964e081 | Nicholas Feinberg | 2014-11-14 11:59:43 -0800

Change divine_response -> divine_dislike
Impractical to generalize it to divine likes. Those will be
handled shortly.

--------------------------------------------------------------------------------
ee62aa5dde | Nicholas Feinberg | 2014-11-14 11:59:43 -0800

Move Ely's DID_KILL_LIVING into data
The others are trickier and will require another approach.

--------------------------------------------------------------------------------
27333a42c3 | Nicholas Feinberg | 2014-11-14 11:59:43 -0800

Move DID_FRIEND*_DIED into data
hooray for hacks

--------------------------------------------------------------------------------
bbb72201ef | Nicholas Feinberg | 2014-11-14 11:59:43 -0800

Add some temp debug prints for conduct lookups

--------------------------------------------------------------------------------
b3b13da0a3 | Nicholas Feinberg | 2014-11-14 11:59:43 -0800

Move DID_ATTACK_FRIEND into data

--------------------------------------------------------------------------------
550c979776 | Nicholas Feinberg | 2014-11-14 11:59:43 -0800

Move DID_ATTACK_NEUTRAL into data
Zin no longer cares at all about it (didn't give penance before,
only -3 piety, so... who cares). TSO and Ely now give 5 penance
& -5 piety, instead of -3, due to a limit on the precision of the
new format... probably that should be fixed.

Jiyva, counterintuitively, is unchanged.

--------------------------------------------------------------------------------
caa385a0ba | Nicholas Feinberg | 2014-11-14 11:59:43 -0800

Move DID_KILL_PLANT* into data

--------------------------------------------------------------------------------
3edb760e73 | Nicholas Feinberg | 2014-11-14 11:59:42 -0800

Move DID_KILL_SLIME into data

--------------------------------------------------------------------------------
e550542cf1 | Nicholas Feinberg | 2014-11-14 11:59:42 -0800

Move unchivalric conducts into data
And simplify monster filtering, since that seems to be what we
needed the 'other' function for in practice.

--------------------------------------------------------------------------------
a84edc9cdb | Nicholas Feinberg | 2014-11-14 11:59:42 -0800

Move DID_HOLY into data

--------------------------------------------------------------------------------
1ec5169d47 | Nicholas Feinberg | 2014-11-14 11:59:42 -0800

Move various holy conducts into data

--------------------------------------------------------------------------------
9575c2925c | Nicholas Feinberg | 2014-11-14 11:59:42 -0800

Move DID_CANNIBALISM and DID_CORPSE_VIOLATION into data

--------------------------------------------------------------------------------
bbde5d946d | Nicholas Feinberg | 2014-11-14 11:59:42 -0800

Flatten some god conduct code
And remove poor old do_god_revenge(). someday...

--------------------------------------------------------------------------------
e292116ad3 | Nicholas Feinberg | 2014-11-14 11:59:42 -0800

Handle DID_DRINK_BLOOD in data

--------------------------------------------------------------------------------
090624a3ba | Nicholas Feinberg | 2014-11-14 11:59:41 -0800

Add support for data-style conducts

--------------------------------------------------------------------------------
38d9c6059d | Shayne Halvorson | 2014-11-14 12:50:32 -0600

Replace Cloud card steam with rare poison clouds.
Steam is mobile so it doesn't work for surrounding monsters.

--------------------------------------------------------------------------------
1e521739cf | Shmuale Mark | 2014-11-14 13:39:50 -0500

Put the weight in mon-data.h for all monsters, not just ones with corpses.

--------------------------------------------------------------------------------
2d4ce1ee73 | Shmuale Mark | 2014-11-14 13:39:50 -0500

Remove M_PRIEST.
Again, not very necessary; this lets monsters without gods to
polymorph into priests, but that already had been happening for years
before 3f29927a2a fixed the behavior. It's not noticeable enough to
justify keeping the confusion for people reading the source.

--------------------------------------------------------------------------------
9ddcce44a1 | Shmuale Mark | 2014-11-14 13:39:50 -0500

Remove M_ACTUAL_SPELLS.
It didn't have many uses, anymore. One change -- all spells from before
the mon-spell-slots merge will be turned into wizard ones, which is not
ideal, but it's the simplest thing to do.

--------------------------------------------------------------------------------
bd84a2ad0e | Shayne Halvorson | 2014-11-14 12:04:55 -0600

Minor mercenary card improvements.
Reroll mercenaries that your god dislikes, and guarantee some armour
for mercenaries that otherwise wouldn't have any (tengu and draconians).
Also add a note for purchasing one.

--------------------------------------------------------------------------------
289536a161 | Chris Oelmueller | 2014-11-14 11:23:16 -0500

Remove irritating high-pitched whines
This has been unused since the blowfly removal of 0.8.0-a0-4860-g7bcc156
- mosquitos have buzzed since that commit as well. By now the addition of
new whiny monsters seems rather unlikely.

[ wheals: Fix compilation. ]

--------------------------------------------------------------------------------
973cab0264 | Chris Oelmueller | 2014-11-14 11:13:32 -0500

Reorder one shout database entry
To match the order everything else is in.

--------------------------------------------------------------------------------
88da044c6e | Chris Oelmueller | 2014-11-14 11:13:32 -0500

Remove an unused argument

--------------------------------------------------------------------------------
6d9fe0904a | Chris Oelmueller | 2014-11-14 11:13:32 -0500

Remove two levels of indentation

--------------------------------------------------------------------------------
4dbdd7278a | Chris Oelmueller | 2014-11-14 11:13:32 -0500

Fix typo

--------------------------------------------------------------------------------
912d2ffc69 | Shmuale Mark | 2014-11-14 11:06:32 -0500

Remove {target,source}_as_monster.
This will cause a segfault if target is NULL, but it already would
if the result were dereferenced if target were NULL or &you.

--------------------------------------------------------------------------------
9011559d30 | Shmuale Mark | 2014-11-14 10:55:45 -0500

Mindexicide: MiscastEffect.
I also cleared out what appeared to be dead code while I was there,
though I may have missed some logical errors, especially with blaming
(for gods etc.). This includes removing MiscastEffect::guilty; it was
used very haphazardly, sometimes being surrounded by uses of act_source,
and I'm not sure that it was ever different.

--------------------------------------------------------------------------------
d4d9628818 | Shmuale Mark | 2014-11-14 09:33:17 -0500

Remove some unused ABFLAG_s.

--------------------------------------------------------------------------------
1ac42fdac4 | Shmuale Mark | 2014-11-14 09:28:01 -0500

Fix a mistake in rebasing.

--------------------------------------------------------------------------------
4d969b0ce4 | Shmuale Mark | 2014-11-14 09:27:32 -0500

Remove an unused function.

--------------------------------------------------------------------------------
ce8611a793 | Shmuale Mark | 2014-11-14 08:09:22 -0500

Don't discover mimics using Ash/antennae detection.
This takes away the whole point of a mimic, which is that it presents
a surprise when you find that it is not actually a real item/feature.
Instead, you go down some stairs, or have a new square come into view,
notice a square of smoke, glance down at the message log, and say "Huh,
there was a mimic of something somewhere."

--------------------------------------------------------------------------------
04c636ffea | Shmuale Mark | 2014-11-14 08:09:22 -0500

Remove an unused parameter from discover_mimic.

--------------------------------------------------------------------------------
4d067f6205 | Eino Keskitalo | 2014-11-14 11:55:11 +0200

Tutorial & hints: spell success rate -> spell failure rate.

--------------------------------------------------------------------------------
3eb713f024 | Steve Melenchuk | 2014-11-13 22:02:50 -0700

Initial high DPI support, mostly for Android.
TODO: render fonts in their proper resolutions.

--------------------------------------------------------------------------------
738d42f369 | reaverb | 2014-11-14 00:01:10 -0500

Simplify noise in melee attacks
The old, complicated, spoilery, way was effectively never relevant. Now
only damage, if the attack is a stab, and the Noise property on randarts
are considered.

--------------------------------------------------------------------------------
8a4d0cf39a | Nicholas Feinberg | 2014-11-13 20:50:35 -0800

Move an enum
Since it was used very narrowly, there was no need for it to live
in enum.h.

--------------------------------------------------------------------------------
b75b79b3b1 | Nicholas Feinberg | 2014-11-13 19:42:00 -0800

Statically initialize a map.
Hooray for C++11!

--------------------------------------------------------------------------------
73ec0897de | Nicholas Feinberg | 2014-11-13 19:21:12 -0800

Make revenants magically delicious (wheals, theTower)
AM=Y, Sil=N.

--------------------------------------------------------------------------------
b1e1a35036 | Nicholas Feinberg | 2014-11-13 19:19:13 -0800

Remove did_god_conduct's return value
Over sixty+ calls, it seems to have been used in exactly one
place, and I'm pretty sure that was irrelevant now that weapons
auto-id when held.

Also refactor a scrap of Zin conduct code, since I was passing
through.

--------------------------------------------------------------------------------
36bbffbb1d | theTower | 2014-11-13 22:11:23 -0500

Make revenant abilities natural, not spells
"A skeletal form wreathed in cold blue fire, standing astride this life and
the next. Echoes of the lingering dead flicker within its ghostly flames."

Nothing about their description or the overall concept suggests spellcaster.
As such, they're now natural abilities. A minor antimagic hit (it's still
good for some other Crypt / Tomb monsters), and more importantly also means
they can work under silence, as is relevant with either silent spectres
or as such the only un-impaired serious casters in Tomb.

--------------------------------------------------------------------------------
c11cffec08 | Steve Melenchuk | 2014-11-13 18:52:10 -0700

Android: handle fonts and save dir properly again.

--------------------------------------------------------------------------------
05ef1431e6 | theTower | 2014-11-13 20:24:11 -0500

Buff deep elf knights (new spell sets, more damage)
Once more, a reaver with a mess of spells is cleaned up a little,
though this time multiple spellsets are definitely kept. The deep
elf knight was little more than a stronger deep elf fighter, which
is already a differently-equipped differently-placed orc wizard.
To emphasize the vague melee prowess suggested by the name "knight",
they get a 1.5x base damage boost from 14 to 21, making them not weaker
than orc warriors. They're also getting new spell sets, with a mix
of conjurations and self-buffs. The original three spellsets they had
were directly from orc wizards:
1. Magic Dart, Slow, Haste, Blink
2. Throw Flame, Invisibility, Magic Dart, Confuse
3. Throw Frost, Cantrip, Haste, Throw Flame, Magic Dart, Invisibility
Their new spellsets, emphasizing some sparsely-used spells and a bit
more sheer strength:
1. Dazzling Spray, Conjure Flame, Invisibility, Swiftness
2. Throw Icicle, Haste, Invisibility, Condensation Shield
3. Stone Arrow, Iskenderun's Mystic Blast, Haste, Shroud of Golubria

Nearly all of the placements of deep elf knights have been left
untouched; its use as a strong mid-tier elf should make more sense
now. The only exception is possibly the earliest one, in one of the
baileys: there, the equipment has been deliberately held back to
essentially nerf its use there.

--------------------------------------------------------------------------------
6ddc3d3611 | Steve Melenchuk | 2014-11-13 18:13:09 -0700

Use arm mode for Android arm builds and not thumb mode.
...since the latter is now failing to build for some reason.

--------------------------------------------------------------------------------
4434664a77 | Steve Melenchuk | 2014-11-13 18:12:45 -0700

Specify (semi-)necessary Android build flags by default.

--------------------------------------------------------------------------------
5ba78840f1 | Nicholas Feinberg | 2014-11-13 17:03:10 -0800

Make Summon Hydra's message more specific
A twelve-headed hydra appears!

--------------------------------------------------------------------------------
999b2b4319 | Steve Melenchuk | 2014-11-13 17:56:11 -0700

More Android-related Makefile cleanup.
Perhaps we do need an ALL_CXXFLAGS or similar.

--------------------------------------------------------------------------------
adf8b1b7d1 | Steve Melenchuk | 2014-11-13 17:43:59 -0700

Properly pass flags to ndk-build.

--------------------------------------------------------------------------------
40324b56ee | Steve Melenchuk | 2014-11-13 17:41:01 -0700

We don't actually have a CXXFLAGS_L, so don't try to use it.
Oops.

--------------------------------------------------------------------------------
18fd50e8c2 | Steve Melenchuk | 2014-11-13 17:31:21 -0700

A couple of Android build improvements.
Pass Makefile flags to ndk-build; import CFLAGS/CXXFLAGS from the main
Makefile.

--------------------------------------------------------------------------------
6869b89fed | Nicholas Feinberg | 2014-11-13 16:29:52 -0800

Fix another Gozag shop segfault (9193)

--------------------------------------------------------------------------------
3d4dac9e51 | Steve Melenchuk | 2014-11-13 17:28:21 -0700

Tab harder (|amethyst).
Oops.

--------------------------------------------------------------------------------
875dba5be2 | Nicholas Feinberg | 2014-11-13 16:09:41 -0800

Don't imply that formicids can use large rocks

--------------------------------------------------------------------------------
2de07e9ee1 | Steve Melenchuk | 2014-11-13 17:00:52 -0700

Properly remove the sdl-* submodules.
Oops.

--------------------------------------------------------------------------------
e11ddac068 | Neil Moore | 2014-11-13 17:19:50 -0500

Practice the new orthodoxy and brace do-whiles.

--------------------------------------------------------------------------------
e22afbe769 | Neil Moore | 2014-11-13 17:19:02 -0500

Support do-while rebracing in unbrace.
The old code wasn't working anyway because it looked for a parenthesised
expression after the do.

--------------------------------------------------------------------------------
fe269811a4 | Neil Moore | 2014-11-13 17:16:56 -0500

Say to always brace do-while loops (Trunk and White)
I don't think this would be controversial, but if it turns out to
be this can be reverted.

--------------------------------------------------------------------------------
10bb54b45b | reaverb | 2014-11-13 17:07:27 -0500

Add base monsters for zombies spawning in early D (theTower)
If a zombie placed on D:1-3, it was possible the zombie spawn list
wouldn't be used because there were no eligible options.

--------------------------------------------------------------------------------
33bae39eb4 | Neil Moore | 2014-11-13 16:49:19 -0500

Add a comment about a parallel enum and array.

--------------------------------------------------------------------------------
7f24c6369a | reaverb | 2014-11-13 16:44:35 -0500

Fix some formatting
Most of this is util/checkwhite and util/unbrace, with some corrections
were those scripts reformatted the code incorrectly.

--------------------------------------------------------------------------------
b32f688e7e | Neil Moore | 2014-11-13 16:35:18 -0500

Tell Lua that skeletons can't be bottled (PleasingFungus).

--------------------------------------------------------------------------------
2cafc30606 | Neil Moore | 2014-11-13 15:56:10 -0500

Make clua food.can_eat() not crash on non-food items (HDA)

--------------------------------------------------------------------------------
3bc763569c | Eino Keskitalo | 2014-11-13 22:24:38 +0200

Remove another unused item prop.

--------------------------------------------------------------------------------
e700fea9fc | Jesse Luehrs | 2014-11-13 15:00:15 -0500

place the player before the statue in the fireworks test
otherwise, the player might randomly already be at (40, 40), and so
placing the statue might fail

--------------------------------------------------------------------------------
736711d935 | Jesse Luehrs | 2014-11-13 14:39:17 -0500

cap stress tests at 8 minutes
travis will forcibly terminate the test after 10 minutes with no output,
so we should kill the process before that happens so that we actually
get a crash dump

--------------------------------------------------------------------------------
d56679bff7 | Shayne Halvorson | 2014-11-13 13:30:22 -0600

Don't try to place Storm card clouds on open sea.
And let them place over a few more features.

--------------------------------------------------------------------------------
8f58c5998e | infiniplex | 2014-11-13 11:19:22 -0700

Add 2 more delve-based layouts.
[Committer's note: this also squashes in the update to
layout_twisted_circle.]

--------------------------------------------------------------------------------
90934ab64a | infiniplex | 2014-11-13 11:19:22 -0700

Moved delve layouts to their own file

--------------------------------------------------------------------------------
5f1a7ec99a | infiniplex | 2014-11-13 11:19:21 -0700

Fixed crash in dgn-delve.cc for too-small maps

--------------------------------------------------------------------------------
7e03aa0adb | Steve Melenchuk | 2014-11-13 10:56:50 -0700

Revert "Webtiles: scale dungeon canvas by devicePixelRatio." (#9189)
This has unintended side effects at present, so this shouldn't go live
until I figure them out.

This reverts commit 75d9865c86980b792806e6248855cba6e09b9c1a.

--------------------------------------------------------------------------------
d1d852855c | Shayne Halvorson | 2014-11-13 11:25:38 -0600

Fix wellspring cast message.

--------------------------------------------------------------------------------
797c834984 | Shayne Halvorson | 2014-11-13 11:22:54 -0600

Consider AF_FIREBRAND as a source of fire for Dithmenos.

--------------------------------------------------------------------------------
913f41ada6 | Nicholas Feinberg | 2014-11-13 08:35:17 -0800

Simplify (bottling code)

--------------------------------------------------------------------------------
3059a0e0ad | Nicholas Feinberg | 2014-11-13 08:28:17 -0800

Re-allow vp butchering for everyone
Why not?

--------------------------------------------------------------------------------
85c8eae05c | Nicholas Feinberg | 2014-11-13 08:14:39 -0800

Fix hydra form transform message
Always claimed "you turn into a 1-headed hydra";  was broken by
99fa9bcd.

--------------------------------------------------------------------------------
7556756b11 | Nicholas Feinberg | 2014-11-13 08:06:32 -0800

Don't crash in potion petition (9168)
Specifically, when retrying to get a potion set containing at
least one cheap-enough choice.

FR: make this not bad

--------------------------------------------------------------------------------
d3c457b4f5 | theTower | 2014-11-13 00:59:20 -0500

Buff draconian knights (a fair bit) and draconian scorchers (mildly)
Despite shifting away from a complete mess of cribbed spellsets,
draconian knights still had a smattering of indistinct spells despite
the vague theme of buffs, ice, and necromancy. They're the only draconian
class that had spellset variation, and they hardly got anything particularly
dramatic like the crystal spears, hellfire, blink allies encircling, or
summon miasma like the other classes. Altogether, this made them not
particularly memorable; despite a bunch of weak unique spells, they were
not any more noticeable than the reavers everywhere else.

Ironically enough, I'm concentrating their spell sets together in a fashion
that makes them a stronger version of those reavers. Their previous spell sets
were:
1. Bolt of Cold, Throw Icicle, Bolt of Draining, Invisibility, Simulacrum
2. Bolt of Cold, Throw Icicle, Lightning Bolt, Vampiric Draining, Agony
3. Bolt of Cold, Throw Icicle, Haste, Animate Dead, Ozocubu's Armour
Their current set is now simply:
Bolt of Cold, Throw Icicle, Haste, Invisibility, Simulacrum, Ozocubu's Armour.
Always having Haste, while hardly unique compared to other places, gives them
an edge compared to other draconians. They've also gotten a free 1/3 chance for
a good_item weapon, which altogether should produce a class distinct for
shredding players to bits by themselves instead of relying on randomness,
blasting, or allies (though they can still cover all three). They're still equal
in arena to monks, somewhat, so it should be fine. It's Zot, anyway.

To move on, draconian scorchers are sad for a relatively simple reason:
they are an explosions-focused, elementally-focused version of the annihilator,
but with the explosions they are rather neutered by simply being as surrounded
or adjacent to the scorcher as is likely with their bands. To slightly fix this
problem up, their sticky flame (which is a weaker copy of a draconian breath,
and no longer significant with item destruction's passing) has been replaced
with Bolt of Magma, so they've got a bit more blasting without collateral
concerns.

--------------------------------------------------------------------------------
e3cf528e6f | Edgar A. Bering IV | 2014-11-12 21:34:24 -0800

Allow ctrl-f for "runed door"
Make stashes use FFT_NOTABLE for searching for notable terrain
instead of criteria used only in the stash code.

Make runed doors notable so you can stash-search for them.

--------------------------------------------------------------------------------
f58bf855fa | Nicholas Feinberg | 2014-11-12 21:19:44 -0800

Simplify vampire blood-bottling
Now moved to (c), rather than being on the ability menu; vampires
will bottle anything they can bottle, butcher anything that has a
hide but can't be butchered, and give up otherwise.

This is a small buff (since they can now bottle blood from level 1
rather than needing to wait for xl 6), but also a small nerf,
since they can no longer turn poisonous corpses into skeletons to
weaken enemy necromancers in advance. I deem it a net draw.

--------------------------------------------------------------------------------
5d457173bb | theTower | 2014-11-13 00:11:32 -0500

Update changelog with the new cards changes, alongside some clean-up
A quick informative draft of all the card changes just merged in.
Also, some re-identation of some changelog entries, and a description
edit to not describe as-of-yet unfinished content.

--------------------------------------------------------------------------------
96dff9b2b9 | Steve Melenchuk | 2014-11-12 21:58:39 -0700

If using contrib SDL2 on Linux, use -ldl.
This should get BUILD_ALL to work on Linux and mollify travis.

--------------------------------------------------------------------------------
21ff55733d | Steve Melenchuk | 2014-11-12 21:54:24 -0700

Nudge contribs for .gitignores, so I don't go crazy.

--------------------------------------------------------------------------------
31c56c3fe8 | Steve Melenchuk | 2014-11-12 21:50:33 -0700

Remove the sdl and sdl-image submodules (just from this branch).
Since they're not needed for anything, I think.

--------------------------------------------------------------------------------
6af420d3c9 | Neil Moore | 2014-11-12 23:23:11 -0500

Fix build on Windows when flex exists
A recently-added line in util/Makefile runs perl -i on the flex output,
but plain -i doesn't work on Windows.  Instead, use the backup-file
variant -i.orig: .orig rather than .bak because the former is already
in our .gitignore.

--------------------------------------------------------------------------------
59a315dcd3 | Shayne Halvorson | 2014-11-12 21:31:39 -0600

Let damage shaving apply to Pain card's self-damage.

--------------------------------------------------------------------------------
7808d54c1e | Shayne Halvorson | 2014-11-12 20:53:49 -0600

Mute friendly air elementals submerging through the options instead.
And remove some old item destruction messages.

--------------------------------------------------------------------------------
df8db0a7b8 | Shayne Halvorson | 2014-11-12 18:18:46 -0800

Don't show submerging messages for friendly air elementals.

--------------------------------------------------------------------------------
a8d233cce9 | Shayne Halvorson | 2014-11-12 18:18:45 -0800

Suppress berserk rage under Cheibriados as well.

--------------------------------------------------------------------------------
b0b6d4f9b7 | Shayne Halvorson | 2014-11-12 18:18:45 -0800

Prevent card effects that would anger the player's god.
Still missing: red ugly things under Dithmenos, mercenaries

--------------------------------------------------------------------------------
aba162c186 | theTower | 2014-11-12 18:18:42 -0800

Card description / name re-writes.
 * Updates to a bunch of effect descriptions, some to be more specific
   about potential new effects, and removing the concept of "you" to
   instead substituting in "user".
 * Re-arrange the file to roughly group per-base-deck-concept, with
   priority in placement granted to the order of base decks in decks.cc.
 * Actual lines of what the cards depict! Mostly a whole bunch of
   vaguely-symbolic vaguely-iconic flavour, but it should be a nice touch
   if anybody actually looks up cards on ?/c (which they should, since
   there are so many changes upcoming.)
   Thanks to nicolae-, PleasingFungus, ontoclasm, and the rest of
   ##crawl-dev for producing the majority of these lines.
 * Better / more consistent summarizing comments on the card listing
   in decks.h, just in case anybody reads that.

Typo catching (geekosaur)

--------------------------------------------------------------------------------
3949a383d0 | Shayne Halvorson | 2014-11-12 18:18:41 -0800

Don't apply shaft and cloud to firewood.

--------------------------------------------------------------------------------
05738bb0ca | Shmuale Mark | 2014-11-12 18:18:39 -0800

Formatting fixes.

--------------------------------------------------------------------------------
24bd73614d | Shayne Halvorson | 2014-11-12 18:18:12 -0800

Placid Magic card (theTower)
It drains magic, applies antimagic to spellcasters removes magical effects.

--------------------------------------------------------------------------------
7bf714e5ff | Shayne Halvorson | 2014-11-12 18:18:06 -0800

Hackily replace Pain card torment with flaying (theTower).

--------------------------------------------------------------------------------
18b3a99424 | theTower | 2014-11-12 18:18:06 -0800

Amplify some Dowsing power numbers, since it's locked off in Wonders now.
Ideally, the long-lasting telepathy and item detection should make people
try to use the card on fresher and more dangerous levels. This makes it
closer to the high strategic benefits of Helix and Mercenary, while also
hopefully getting more chances at Wild Magic (and possibly Focus) to mean
more (than mutations or banishment, anyway) by using the deck not so far
away from any danger. Hopefully.

--------------------------------------------------------------------------------
61fc4d5272 | theTower | 2014-11-12 18:18:06 -0800

Double-edge Venom card: remove Sting, add low-power brief -rPois
With all the other changes meant to provide even bottom-power cards with a
flashy, obvious effect, the straight conjurations card stand out for mostly
being plain and weak. One of the more obvious points is the Venom card,
which was just sting | venom bolt | poison arrow. Straightforwardly weak,
since rPois isn't rare and sting is next to harmless.

The first two card power tiers are venom bolt | venom bolt or poison arrow,
but at those same tiers, you will get 10-15 | 5-10 turns of rPois-. This
is meant to have some of the trade-offs like other cards (twisters, hostile
summons) with only situational and pre-aware lethality (compare to the
excess that is drawing legendary pain cards and getting tormented).
You might want to excercise some caution in using that destruction deck
against swamp dragons or Snake, but the chance of a poison arrow should be
a good exchange.

Also, purge all these tabs left in decks.cc, ugh.

--------------------------------------------------------------------------------
b86a2855f3 | Shayne Halvorson | 2014-11-12 18:18:06 -0800

Change Velocity card.
It should always potentially benefit the player (if allies are present).

--------------------------------------------------------------------------------
8469b390d9 | Shayne Halvorson | 2014-11-12 18:18:06 -0800

Let Tomb work on deep water.

--------------------------------------------------------------------------------
fe08d391a6 | Shayne Halvorson | 2014-11-12 18:18:05 -0800

Let Tomb card place walls on stone stairs.

--------------------------------------------------------------------------------
e5fa309e93 | Shayne Halvorson | 2014-11-12 18:18:05 -0800

Let Helm card protect allies (theTower).

--------------------------------------------------------------------------------
fc8f922556 | Shayne Halvorson | 2014-11-12 18:18:05 -0800

Add Ephemeral Infusion to Elixir card.

--------------------------------------------------------------------------------
3b03b54be3 | Shayne Halvorson | 2014-11-12 18:18:05 -0800

Add malmutate to Degeneration card (theTower).

--------------------------------------------------------------------------------
18e3c902f4 | Shayne Halvorson | 2014-11-12 18:18:05 -0800

Add draining to the Banshee card.

--------------------------------------------------------------------------------
cdd4638c43 | Shayne Halvorson | 2014-11-12 18:18:01 -0800

Change the Cloud card.
It is now part of escape decks and surrounds enemies with clouds, ranging
from mephitic to miasma.

Don't place Cloud clouds under monsters.

--------------------------------------------------------------------------------
7d9feff5cb | theTower | 2014-11-12 18:17:02 -0800

Rangers card to replace Bones, fix save compat a bit
The skeletal warrior and bone dragon, while strong, had direct overlap
with Yred's gifts, while skeletons are hardly unique allies. Not that great
of a concern considering the different natures of support from permanent
and temporary allies, but still something that could be replaced with
something more distinct and unique for Nemelex.

This card summons a niche close to unused for player allies, in archers.
There are four tiers:
1: centaurs or yaktaurs
2: centaur warriors or fauns
3: yaktaur captains or naga sharpshooters
4: satyrs or merfolk javelineers or deep elf master archers.
With card power:
0: Two or three of tier 1.
1: One of tier 1, and either one of tier 3 or another tier 1 and one of tier 2.
2: One of tier 2, and either one of tier 4 or another tier 2 and one of tier 3.

Should be more interesting, and possibly marginally stronger if you need
more damage-inflicting and less damage soaking.

Also, avoid earlier Herd and Bones cards from screwing things up,
and stab at some errant tabs.

--------------------------------------------------------------------------------
f84b744389 | Shayne Halvorson | 2014-11-12 18:16:55 -0800

Replace butterflies with ravens in Foxfire (theTower).

--------------------------------------------------------------------------------
b6d0ebcd13 | Shayne Halvorson | 2014-11-12 18:16:55 -0800

Improve Dance card a bit.
The low power weapon is slightly less pathetic and tier 2 is either a
reaching or cleaving weapon. Sometimes the weapon will be a randart; this is
often more flashy than useful.

--------------------------------------------------------------------------------
2becf357df | Shayne Halvorson | 2014-11-12 18:16:55 -0800

Let the Shaft card shaft monsters.

--------------------------------------------------------------------------------
ef87a51fe5 | Shayne Halvorson | 2014-11-12 18:16:54 -0800

Add a free ugly thing to power level 2 Repulsiveness.

--------------------------------------------------------------------------------
bd94f19ee1 | Shayne Halvorson | 2014-11-12 18:16:54 -0800

Add corrosive bolt to Vitriol card.

--------------------------------------------------------------------------------
375fd6f98a | Shayne Halvorson | 2014-11-12 18:16:54 -0800

Replace Shadow card's invisibility with darkness (theTower).
TODO: Make the card description sound less awkward.

--------------------------------------------------------------------------------
f619dc3f7d | Shayne Halvorson | 2014-11-12 18:16:54 -0800

Elements card to replace the Herd card (theTower).
It summons natural creatures with some elemental ties.

--------------------------------------------------------------------------------
6f85cf300e | Shayne Halvorson | 2014-11-12 18:15:58 -0800

Change Pentagram's summons (theTower).
Tier 0 is imp + hell hound, tier 1 is common demon + rakshasa, tier 2 is
greater demon + pan lord.

Control Pentagram's summons a bit more.

To continue to make it more distinct from the demon summoning spells
and to buff weak tier 0 and nerf strong tier 1, the card now chooses
a more specific range of demons. The old groupings of 5/ 43 / 21,
from using lesser / common / greater demon, have now been pushed to
4 / 3 / 2. A bit less variety, but the hell hound / rakshasa / pan lord
company are already more unique. The hell hound result shouldn't feel
like it's getting harmless fodder accompaniment, and some excessive
results with executioners or hell sentinels alongside the pandemonium lord
should be avoided by this.

--------------------------------------------------------------------------------
b7596f7b69 | Shayne Halvorson | 2014-11-12 18:15:58 -0800

Add resistance to chaotic mirror and Xom (theTower).

--------------------------------------------------------------------------------
3126186690 | Shayne Halvorson | 2014-11-12 18:15:58 -0800

Let monsters enjoy the effects of a resistance potion.
This could also be used for "Resist Other" type spell.

--------------------------------------------------------------------------------
057e8e401b | Shayne Halvorson | 2014-11-12 18:15:58 -0800

Apply potion card effects to allies.

--------------------------------------------------------------------------------
084c40bdfe | Shayne Halvorson | 2014-11-12 18:15:57 -0800

Blade card now lets the player cleave.

--------------------------------------------------------------------------------
d0cb3a2207 | Shayne Halvorson | 2014-11-12 18:15:57 -0800

Let Nemelex gift destruction decks.
War is now summonings + battle.

--------------------------------------------------------------------------------
3c7b0dfcc8 | Shayne Halvorson | 2014-11-12 18:15:32 -0800

Additional effects for the Storm card.
Simplify the Storm card (theTower).

Power 0 gives a low tier effect, power 1 gives low with a chance of a high
and power gives both.

--------------------------------------------------------------------------------
e07ffd6ee8 | reaverb | 2014-11-12 21:01:41 -0500

Revert "Reduce the numbers of derived undead in late D"
Since 8a682ed7d just buffed zombies, hopefully making them more relevant
in late D.

This reverts commit f7beed7a6853614331b316f3cc403ec32d90b920.

--------------------------------------------------------------------------------
2a0625b499 | reaverb | 2014-11-12 21:01:41 -0500

Select base monsters so that only spawn fast zombies in D
Slow monsters are bad for a variety of reasons, most notably heavily
encouraging kiting and always allowing the player to flee.

--------------------------------------------------------------------------------
f55e10e000 | Corin Buchanan-Howland | 2014-11-12 20:55:49 -0500

Add Ru to non-meat sprints.
Ru's piety stays the same, but the sacrifice timer is greatly reduced.

--------------------------------------------------------------------------------
75d9865c86 | Steve Melenchuk | 2014-11-12 18:38:19 -0700

Webtiles: scale dungeon canvas by devicePixelRatio.
On high DPI displays, this means that it can draw cells with the entire
available resolution, so that if the view needs to be scaled down on
those displays it can still turn up in its full detail.

If this is desirable, it can be extended to other displays.

Makes WebTiles usable properly on my Nexus 7 (2013). Hooray.

--------------------------------------------------------------------------------
5b16cf6324 | gammafunk | 2014-11-12 19:02:00 -0600

Copy necessary image data to the right place when building Tiles

--------------------------------------------------------------------------------
17b39cded2 | Corin Buchanan-Howland | 2014-11-12 19:59:22 -0500

Clean up Ru sacrifice milestone text.

--------------------------------------------------------------------------------
fd0353bd72 | Jesse Luehrs | 2014-11-12 12:42:31 -0500

s/mon-spll/mon-spell/g

--------------------------------------------------------------------------------
45b6d9c773 | Jesse Luehrs | 2014-11-12 11:24:32 -0500

deregisterize harder

--------------------------------------------------------------------------------
6746091014 | Nicholas Feinberg | 2014-11-12 08:01:31 -0800

Mention monster skinnability in descriptions
Change in mons_class_leaves_hide() is so Xtahua works properly.

--------------------------------------------------------------------------------
0bc8f181c1 | Neil Moore | 2014-11-12 10:54:54 -0500

Unbrace (and remove an extra empty line)

--------------------------------------------------------------------------------
2a841a0164 | Neil Moore | 2014-11-12 10:52:17 -0500

Allow netting a monster standing on a net.
Broken in 0.16-a0-1519-g638acd4.  We were merging the new trapping net
into the old floor net, which made it no longer a trapping net.

--------------------------------------------------------------------------------
7a7fa82074 | Eino Keskitalo | 2014-11-12 11:21:20 +0200

Remove unused item prop.

--------------------------------------------------------------------------------
f8c960b455 | Neil Moore | 2014-11-12 01:47:37 -0500

Add a trailing newline.
POSIX (IEEE Std 1003.1, 2013 Edition) says:
  3.206 Line

  A sequence of zero or more non- <newline> characters plus a
  terminating <newline> character.

--------------------------------------------------------------------------------
11c9722133 | Nicholas Feinberg | 2014-11-11 21:20:18 -0800

Remove some questionable insults
Underwhelming for various reasons. (For example, calling a ghoul
a 'scavenger' or a 'corpse eater' isn't exactly an insult - it's
just a statement of fact...)

--------------------------------------------------------------------------------
0d404b7c4f | Nicholas Feinberg | 2014-11-11 21:12:18 -0800

Add Okawaru sacrifice changes to the changelog

--------------------------------------------------------------------------------
41769a946c | gammafunk | 2014-11-11 22:57:39 -0600

Add chequers to the mailmap and remove Grunt's !glasses

--------------------------------------------------------------------------------
18f3f21d87 | Alex Jurkiewicz | 2014-11-11 22:52:35 -0600

Report duplicate argv options to stderr

--------------------------------------------------------------------------------
4a831f4fb2 | Steve Melenchuk | 2014-11-11 21:43:34 -0700

Travis: Even more BUILD_ALL headers.

--------------------------------------------------------------------------------
8c923f7386 | Nicholas Feinberg | 2014-11-11 20:29:46 -0800

Changelog through 0.16-a0-2092-g20dfb3b
Slow news week on the changelog front.

--------------------------------------------------------------------------------
20dfb3bac3 | Nicholas Feinberg | 2014-11-11 19:59:37 -0800

Make all corpse-dropping monsters give gozag gold
And halve the amount they give. (Since only half of monsters
dropped 'corpses' (gold) before.)

The ability to predict gold pile appearance should hopefully make
the gold distraction effect more tactically relevant, since you
can rely on it a bit more.

--------------------------------------------------------------------------------
57cc0c31de | Nicholas Feinberg | 2014-11-11 19:35:18 -0800

Remove some errant SPELL_NO_SPELL entries

--------------------------------------------------------------------------------
5c6aff96d0 | Steve Melenchuk | 2014-11-11 20:32:40 -0700

Travis: another BUILD_ALL dep.

--------------------------------------------------------------------------------
ca3af43a8e | Nicholas Feinberg | 2014-11-11 19:30:12 -0800

Remove porridge
Like blood for non-vp, this was no longer needed now that Gozag's
potion petition doesn't offer it. Again, it's redundant with other
food types, and pretty unexciting to boot. I mean... porridge?

I've replaced it with stacks of royal jelly in most cases, which
is a significant boost for carnivores (who got nothing at all from
porridge). If this is considered undesirable, they can be swapped
out for bread rations instead.

--------------------------------------------------------------------------------
a3a1798343 | Nicholas Feinberg | 2014-11-11 19:30:00 -0800

Improve gozag shop quality
Give a 100% chance of GOOD_ITEMs, up from the base 25%.

Possibly this should be 50%, or perhaps there could be some
finer adjustment to item_level; this is a tentative start.

--------------------------------------------------------------------------------
9b22cd3887 | Nicholas Feinberg | 2014-11-11 19:15:11 -0800

Make !blood useless for non-vp
No longer needed, now that Gozag guarantees food shops to
carnivores. Aside from that, wholly redundant with every other
source of food.

--------------------------------------------------------------------------------
799a4e1f4b | Nicholas Feinberg | 2014-11-11 19:15:10 -0800

Update Gozag ability descriptions

--------------------------------------------------------------------------------
5cedad1f28 | Nicholas Feinberg | 2014-11-11 19:15:10 -0800

Remove bad potions from potion petition
The ability already has layers of cost: you need to spend gold to
use it (meaningful for gozagites), it costs a turn, it makes all
further petitions more expensive, and it requires you to worship
Gozag, a decision with significant tradeoffs of its own! There's
no design need to make it even *more* double-edged, and it made
the ability too weak in practice.

--------------------------------------------------------------------------------
f6af75eef5 | Nicholas Feinberg | 2014-11-11 19:15:10 -0800

Remove porridge/blood from potion petition
Now that food shops are guaranteed, it has no reason to exist,
and clutters up an otherwise tactical ability with a largely
strategic effect.

Potion base costs are now based on a weird and ugly heuristic.
This should probably be revised.

--------------------------------------------------------------------------------
517e2cbd7d | Nicholas Feinberg | 2014-11-11 19:15:10 -0800

Support gozag food shops for vp/gh
The former get blood; the latter get corpses.

--------------------------------------------------------------------------------
e8ac902e5e | Nicholas Feinberg | 2014-11-11 19:15:10 -0800

Guarantee a food shop in Gozag's Call Merchant
For non-foodless races.

--------------------------------------------------------------------------------
5421bfcac9 | Nicholas Feinberg | 2014-11-11 19:15:10 -0800

Add support for future changes to GOZAG_MAX_SHOPS
Move it from a define to a local, static function; check for each
index when considering initialization. (So we don't have to worry
about save compat.)

--------------------------------------------------------------------------------
f6f7e9c191 | Nicholas Feinberg | 2014-11-11 19:15:10 -0800

Mark gozag shops as such in their spec
Does nothing, yet.

--------------------------------------------------------------------------------
3e0cf54796 | Neil Moore | 2014-11-11 22:05:00 -0500

Fix debug builds (doh)

--------------------------------------------------------------------------------
12e65dbd3b | Steve Melenchuk | 2014-11-11 19:27:31 -0700

Travis: put EGL header requirement in the right place.
Alternatively, we could disable EGL in the contrib, but that might be
boring.

--------------------------------------------------------------------------------
8f85e766c2 | Steve Melenchuk | 2014-11-11 19:04:48 -0700

Update contrib/Makefile to make sure sdl2 builds before sdl2-image.

--------------------------------------------------------------------------------
5b6c959d4a | Neil Moore | 2014-11-11 21:01:42 -0500

Use range-based for.
With a few concomitant simplifications and formatting tweaks.

I usually used "entry" when the thing being iterated over was a map.

Probably some (perhaps most) of these "auto"s should instead use the
actual type for clarity (now that it is not an iterator).

--------------------------------------------------------------------------------
36526aeb05 | Steve Melenchuk | 2014-11-11 18:37:30 -0700

Travis: Make sure EGL headers are available for BUILD_ALL.

--------------------------------------------------------------------------------
de8ae94b69 | Steve Melenchuk | 2014-11-11 17:28:16 -0700

Don't request a fullscreen Android window.
This allows the on-screen keyboard to resize the window properly.

--------------------------------------------------------------------------------
cd9f2a6681 | Corin Buchanan-Howland | 2014-11-11 19:21:19 -0500

Fix a Sacrifice Hand typo (nicholas982)

--------------------------------------------------------------------------------
896243d3a3 | Jesse Luehrs | 2014-11-11 16:32:08 -0500

use auto more often

--------------------------------------------------------------------------------
b467845cf1 | Jesse Luehrs | 2014-11-11 16:32:08 -0500

use c++-style standard headers

--------------------------------------------------------------------------------
be39167a38 | Shmuale Mark | 2014-11-11 15:58:27 -0500

Fix vault-placed slimes/hydras (#9172).

--------------------------------------------------------------------------------
9718016033 | Jesse Luehrs | 2014-11-11 14:56:12 -0500

make sure we set up the level stack in tests
otherwise we crash when trying to place portal feature mimics in the
abyss

--------------------------------------------------------------------------------
8d02491b20 | Jesse Luehrs | 2014-11-11 14:03:27 -0500

travis FULLDEBUG builds should include debug symbols

--------------------------------------------------------------------------------
c0ac6dedfd | Jesse Luehrs | 2014-11-11 13:59:07 -0500

this is unnecessary now (PleasingFungus)

--------------------------------------------------------------------------------
2895c4b810 | Jesse Luehrs | 2014-11-11 13:48:10 -0500

ensure a temporary lives long enough
keyed_mapspec::get_feat() returns a copy of a feature_spec, and so
getting a pointer to a shop_spec out of that isn't safe unless we ensure
that the feature_spec lives long enough

--------------------------------------------------------------------------------
58a71a81a7 | Jesse Luehrs | 2014-11-11 13:11:43 -0500

zero this array, just in case
it shouldn't cause a problem (it's only ever used when it's
initialized), but it's confusing when reading stack traces

--------------------------------------------------------------------------------
1674562151 | Jesse Luehrs | 2014-11-11 12:35:38 -0500

avoid use of uninitialized value in _get_gozag_shop_candidates

--------------------------------------------------------------------------------
f8c301b4de | Jesse Luehrs | 2014-11-11 12:33:58 -0500

don't list useless skills in debug mode skill list

--------------------------------------------------------------------------------
773008e7b0 | Jesse Luehrs | 2014-11-11 12:15:00 -0500

avoid looking past the end of gozag's abilities array

--------------------------------------------------------------------------------
86bb3a8a91 | Jesse Luehrs | 2014-11-11 12:06:53 -0500

don't revive natasha when dismissing

--------------------------------------------------------------------------------
a94f124fa8 | reaverb | 2014-11-11 09:28:18 -0500

Don't mention sacrificing corpses on Okawaru's "^" screen

--------------------------------------------------------------------------------
706f3eb79b | Corin Buchanan-Howland | 2014-11-11 07:24:04 -0500

Note wanderer starting equipment in game log

--------------------------------------------------------------------------------
87d9768fe0 | Nicholas Feinberg | 2014-11-10 22:50:24 -0800

Don't crash when examining blood in debug builds
...if they haven't yet had their timers lazily initialized.

I suspect they're a bit *too* lazy right now - need to
investigate more later - but this should do for now.

--------------------------------------------------------------------------------
6366562ea0 | Nicholas Feinberg | 2014-11-10 22:01:42 -0800

Minor spec_shop cleanup (doy)

--------------------------------------------------------------------------------
c00d91a028 | Shayne Halvorson | 2014-11-10 23:59:00 -0600

Add missing word to Xom's cloud act speech.

--------------------------------------------------------------------------------
fc9ba02609 | Jesse Luehrs | 2014-11-11 00:45:15 -0500

fix "serpent of hell breath" showing up in xv

--------------------------------------------------------------------------------
882eae7cbf | Steve Melenchuk | 2014-11-10 22:19:49 -0700

Android: Don't quit when toggling visibility of soft keyboard.
TODO: get it to return when toggling it on.

One of these lines does nothing yet, but I suspect it will help with
resizing the display on keyboard toggle.

--------------------------------------------------------------------------------
f8488596da | Nicholas Feinberg | 2014-11-10 21:18:52 -0800

Oops

--------------------------------------------------------------------------------
71d152f8af | Nicholas Feinberg | 2014-11-10 20:40:16 -0800

Add plojy

--------------------------------------------------------------------------------
ceb1cb0755 | Nicholas Feinberg | 2014-11-10 20:35:54 -0800

Refactor place_spec_shop() inner loop

--------------------------------------------------------------------------------
9af0a8e996 | Nicholas Feinberg | 2014-11-10 20:35:49 -0800

Turn shop_spec into a reference
Can't be const, sadly, thanks to mutable list functions.

--------------------------------------------------------------------------------
d3b0b200c5 | Nicholas Feinberg | 2014-11-10 20:35:43 -0800

Refactor the outer half of place_spec_shop

--------------------------------------------------------------------------------
c68729418d | Nicholas Feinberg | 2014-11-10 20:35:38 -0800

Remove plojy (place_shop_spec)
RIP, a piece of crawl's history.

--------------------------------------------------------------------------------
287154ba09 | Jesse Luehrs | 2014-11-10 23:15:02 -0500

also tweak serpent of hell hp
coc and geh variants are a bit on the strong side - i don't think that
the serpent of hell is overall too dangerous, but i'd like to balance
out the level of danger between the branches a little better

--------------------------------------------------------------------------------
ab89a695d1 | Jesse Luehrs | 2014-11-10 23:14:04 -0500

give serpent of hell dis a reaching attack
this should make it a bit more dangerous (it seems to be the weakest of
the four by a good amount), and also fairly distinctive from the others

--------------------------------------------------------------------------------
338e3c0390 | Nicholas Feinberg | 2014-11-10 18:38:36 -0800

Adjust potion prices for item destruction destruction
Most 'tactical' potions are up by 50-60%, since they're less
likely to be destroyed, scarcer in random generation, etc.
Decay and degeneration no longer cost more than other negative
potions, since Evaporate is gone.

--------------------------------------------------------------------------------
2aaebbb054 | Steve Melenchuk | 2014-11-10 19:31:21 -0700

Handle SDL2 window resizing; allow window to be resized.

--------------------------------------------------------------------------------
8e15e725a5 | Steve Melenchuk | 2014-11-10 18:56:35 -0700

Temporarily don't use SDL_TEXTINPUT on non-Android.
It's causing double keys; ideally we'd only parse _KEYDOWN for modifiers
so that we can have the best of both worlds.

--------------------------------------------------------------------------------
fe927cb31d | Steve Melenchuk | 2014-11-10 18:34:13 -0700

Handle SDL_TEXTINPUT so that we can use Android's screen keyboard.
TODO on this front: resize the video around the keyboard if necessary.

--------------------------------------------------------------------------------
b01ced7272 | Steve Melenchuk | 2014-11-10 17:24:02 -0700

Allow loading files from Android assets.
There are some diagonstics and tweaks here to get everything in a place
to be loaded in such a fashion.

The upshot of this is that SDL2 Crawl can now run on Android! This calls
for streamers and confetti.

--------------------------------------------------------------------------------
2123fe4bc6 | reaverb | 2014-11-10 18:39:42 -0500

Adjust Okawaru piety to account for no corpse sacrifices
The new number is mostly an estimate, but it can easily be changed
again.

--------------------------------------------------------------------------------
1abdd7210e | reaverb | 2014-11-10 18:39:42 -0500

Standardize Okawaru piety clock
Since Okawaru piety needs to be adjusted anyway, there's no reason not
to make this a bit more consistent.

--------------------------------------------------------------------------------
64be4925b9 | reaverb | 2014-11-10 18:39:41 -0500

Remove Okawaru corpse sacrifices

--------------------------------------------------------------------------------
344699b6fd | Neil Moore | 2014-11-10 17:28:33 -0500

Update compiler version list.
Maybe older clang works; update this is that is the case.

--------------------------------------------------------------------------------
1e8f46169b | Shmuale Mark | 2014-11-10 17:23:39 -0500

Replace 'mprf("%s", x.c_str())' with 'mpr(x)'.

--------------------------------------------------------------------------------
427f8ee4b4 | Shmuale Mark | 2014-11-10 17:23:39 -0500

Eradicate an ugly paradigm.

--------------------------------------------------------------------------------
70d6242e19 | Shmuale Mark | 2014-11-10 17:23:39 -0500

Make mpr() take a string.
So that c_str() isn't necessary; const char* are automatically cast
up, so the interface for using it should remain the same.

--------------------------------------------------------------------------------
901aaecbdc | Chris Oelmueller | 2014-11-10 17:23:38 -0500

Slightly tweak ^ screen text display
Align god title and favour better and more tightly, move the blank line
separating the two before to before the section.
Remove the additional centered "Religion" heading that was a bit
distracting, display it in the upper left corner instead if applicable.
Overall, cycling through the three modes on ^ should feel more smooth now.

--------------------------------------------------------------------------------
6a0f8dd10b | Jesse Luehrs | 2014-11-10 17:10:53 -0500

try restoring the BUILD_ALL targets

--------------------------------------------------------------------------------
babf3d6d9e | Jesse Luehrs | 2014-11-10 13:09:07 -0500

stop crashing when trying to place lost monsters in abyss

--------------------------------------------------------------------------------
ae05eb972e | Steve Melenchuk | 2014-11-10 10:36:58 -0700

Remove a couple of files from the old Android build.
People might get confused as to why these are here, since they have
nothing to do with the SDL2 Android build.

--------------------------------------------------------------------------------
b46e3dabd1 | Steve Melenchuk | 2014-11-10 10:36:19 -0700

Adjust main Makefile to allow automating Android builds.
Assuming you have the Android SDK and NDK in PATH, use:
make ANDROID=y TILES=y android

It's far from flawless right now, but it's a decent start and it gets
the data files into a place where they will be usable from the Android
build once we write the code to hook it up.

TODO:
  - export the cflags from here for use within the Android project files
    so that they're not hard-coded; finding a way to do that with the
    source files would be good too (but seeing as we already have several
    hard-coded lists of source files that one's not as critical);
  - allow easy toggling between debug and release Android builds.

--------------------------------------------------------------------------------
ddf19590a3 | Jesse Luehrs | 2014-11-10 11:24:15 -0500

give an indication about where we are at in the test suite

--------------------------------------------------------------------------------
6190a2fdae | Nicholas Feinberg | 2014-11-10 08:19:55 -0800

Fix monster::is_actual_spellcaster()
Alternately: De-Simplify.
Alternately: Copy+Paste Considered Harmful.
Alternately: wheaaaaaaalllllsss

--------------------------------------------------------------------------------
006980d201 | Steve Melenchuk | 2014-11-10 09:13:09 -0700

Poke contribs to get Win32 building again.
Yay.

--------------------------------------------------------------------------------
1f7559c177 | Shmuale Mark | 2014-11-10 08:18:04 -0500

Simplify.

--------------------------------------------------------------------------------
968ce0aafd | gammafunk | 2014-11-10 01:43:51 -0600

Don't crash when generating corpses of certain monsters
Ugly things or other corpse-leaving monsters with species type that
has COLOUR_UNDEF would cause this. There's a hack in place to prevent
crashes with &oX in wizmode, which can be removed when the relevant
code is cleaned up.

--------------------------------------------------------------------------------
7bab9e98bf | Steve Melenchuk | 2014-11-09 23:09:57 -0700

Add johnstein to mailmap.

--------------------------------------------------------------------------------
d16742cfd7 | Steve Melenchuk | 2014-11-09 23:08:05 -0700

Fix incorrect size / shape of an unrelated V:$ quadrant.

--------------------------------------------------------------------------------
b5f10d0222 | John Boyle | 2014-11-09 23:00:28 -0700

Two V:$ subvaults.
Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
4e4de1eb6c | Steve Melenchuk | 2014-11-09 22:54:53 -0700

The fundamentals of an Android SDL2 build.
How to build:

1) manually build GENERATED_FILES as specified in the main Makefile
   (TODO: find a way to trigger building those from here).
2) ndk-build
3) ant (debug | release)

This uses our pre-existing contribs for support libraries - no
monolithic contrib with all the dependencies.

Currently this can build and start, but it crashes on trying to leave the
"press any key to begin" screen. TODO: figure out why, possibly by
figuring out how to get a useful stack trace on Android.

Other things to fix:
- Get a clean way to invoke this build from the main Makefile.
- Don't hard-code the list of source files and CFLAGS, possibly related
  to the above.
- The old SDL build used SDL_Mixer to provide sound. We could do an
  SDL2_Mixer contrib if we wanted to do that.

--------------------------------------------------------------------------------
e58570140c | Nicholas Feinberg | 2014-11-09 20:51:06 -0800

Remove an errant pair of braces

--------------------------------------------------------------------------------
1bf559280b | Nicholas Feinberg | 2014-11-09 20:37:23 -0800

Finish gutting gozag_call_merchant()

--------------------------------------------------------------------------------
8ef9e6c44a | Nicholas Feinberg | 2014-11-09 20:37:23 -0800

Pull _gozag_choose_shop() into its own function
And add a few more utility functions.

--------------------------------------------------------------------------------
62c90671be | Nicholas Feinberg | 2014-11-09 20:37:23 -0800

Separate out _gozag_setup_shop()

--------------------------------------------------------------------------------
a403e7e0d8 | gammafunk | 2014-11-09 22:03:03 -0600

Use the correct rng state for Killer Klown corpse tiles

--------------------------------------------------------------------------------
1fc67da7c7 | gammafunk | 2014-11-09 21:43:21 -0600

Remove an unused macro

--------------------------------------------------------------------------------
faaacd4bf2 | gammafunk | 2014-11-09 21:43:16 -0600

Let Killer Klowns be as colourful in death as they were in life
Gives Killer Klowns a species so their corpses can have colour
ETC_RANDOM. Also, let their corpse in Tiles essentially be
ETC_RANDOM. The results are Komedic.

This commit also cleans up some of the orderings in the corpse tile
listing.

--------------------------------------------------------------------------------
2984930b49 | gammafunk | 2014-11-09 21:15:14 -0600

Have monster corpses use the species for colour instead of type.
This is how we had corpses inherit colour before the monster colour
change.

--------------------------------------------------------------------------------
7cb148df5e | reaverb | 2014-11-09 22:04:46 -0500

Remove Crawl's only lambda
The advantage of having a single variable be const isn't worth the
additional complexity of a lambda

--------------------------------------------------------------------------------
6c1fd36744 | reaverb | 2014-11-09 21:46:10 -0500

Clarify some logic (makeitem.cc)
Also use Crawl's first lambda.

--------------------------------------------------------------------------------
4e0d5fc900 | reaverb | 2014-11-09 21:22:22 -0500

Compile with  -std=c++11 rather than -std=c++0x (|amethyst)
Since -std=c++0x was meant to make gcc 4.6 work, but it doesn't work
anyway.

--------------------------------------------------------------------------------
d5cb7ae944 | Shmuale Mark | 2014-11-09 18:19:58 -0500

Document the new display_char includes.

--------------------------------------------------------------------------------
8bbc685dc5 | Chris Oelmueller | 2014-11-09 15:16:35 -0800

Remove dead code
The Abyss has multiple levels since 0.12-a0-1456-ga66ddf5.

--------------------------------------------------------------------------------
afa1673e95 | reaverb | 2014-11-09 16:12:58 -0500

List artefact stat boosts in SID order (Yermak)

--------------------------------------------------------------------------------
99e7d42978 | Shmuale Mark | 2014-11-09 14:18:51 -0500

Fix spells in xv (#9165).
The code was expecting them to be terminated by SPELL_NO_SPELL; since
they were not, the loop kept going into the spell list that came after
any specific one.

--------------------------------------------------------------------------------
5808388e12 | Neil Moore | 2014-11-09 10:57:42 -0500

Avoid some copying.

--------------------------------------------------------------------------------
5bc94c442a | Neil Moore | 2014-11-09 10:52:33 -0500

Fix compilation (doh)
It helps to test dbg-scan.cc compiles with FULLDEBUG...

--------------------------------------------------------------------------------
9220efcf69 | Neil Moore | 2014-11-09 03:46:55 -0500

Constify and statically initialize a vector array
Now that we can use vector's C++11 init-list constructor.

Also, turn the monster_fields vector into an array.

--------------------------------------------------------------------------------
aa1c49c134 | Neil Moore | 2014-11-09 02:04:03 -0500

checkwhite

--------------------------------------------------------------------------------
2fea02f722 | Neil Moore | 2014-11-09 02:03:34 -0500

More number_in_words tweaks.
Change the 'pow' recursion parameter of _number_in_words to 'period'
and divide it by three---non-multiples of three didn't work anyway.
Then turn _pow_in_words into an array (PleasingFungus) and make it
static and local to the function.

--------------------------------------------------------------------------------
9f962a339f | Nicholas Feinberg | 2014-11-08 22:22:10 -0800

Don't expose number_in_words' recursion

--------------------------------------------------------------------------------
f2b36f2068 | Nicholas Feinberg | 2014-11-08 22:21:08 -0800

Factor out ints->strings, again

--------------------------------------------------------------------------------
062c1afa9a | Nicholas Feinberg | 2014-11-08 22:06:42 -0800

Fix some comments in _init_artefact_book
And add another, dubiously named union member.

I am really not sure if any of this code is needed at all...

--------------------------------------------------------------------------------
7240c4f84e | Nicholas Feinberg | 2014-11-08 21:14:26 -0800

Remove an unused parameter

--------------------------------------------------------------------------------
98bc240786 | Nicholas Feinberg | 2014-11-08 20:45:48 -0800

Don't erroneously report rod spells as useless (9160)

--------------------------------------------------------------------------------
483ae1f95a | Nicholas Feinberg | 2014-11-08 20:45:48 -0800

Reduce spell uselessness excitement levels

--------------------------------------------------------------------------------
7dd5f5ab32 | Neil Moore | 2014-11-08 23:21:44 -0500

Let AsgKISS work as a C++11-style URNG.

--------------------------------------------------------------------------------
1cac17b746 | Nicholas Feinberg | 2014-11-08 19:13:18 -0800

Remove Stlth (transparent skin description)
Still not great, since it's not 100% clear that the magnitude
varies from level to level - not sure how to communicate that
better. (Also, "-foe acc" is pretty awkward.)

--------------------------------------------------------------------------------
07600106a9 | Nicholas Feinberg | 2014-11-08 18:59:44 -0800

Tweak Sacrifice Love's description slightly more

--------------------------------------------------------------------------------
b7aeecc463 | Corin Buchanan-Howland | 2014-11-08 21:39:23 -0500

Adjust Ru sacrifice piety
Increase piety for Sac Artifice to be equal to Sac Hand. Also increase
piety for Sac Durability/Armour by 40% and Sac Love by 10%.

Decrease piety for Sacrifice Stealth by 25%. Eventually I plan to make
that conduct more severe (but not like Qaz), and it'll be increased again
at that time.

--------------------------------------------------------------------------------
16be56abfe | gammafunk | 2014-11-08 20:21:22 -0600

Use the most recent libpng signature check for tilegen
The png_check_sig() function is obsoleted for png_sig_cmp in recent
libpng.

--------------------------------------------------------------------------------
f74a0b2c31 | Corin Buchanan-Howland | 2014-11-08 20:55:11 -0500

Update Ru ability messages to fit with current theme.

--------------------------------------------------------------------------------
2c82b7a889 | Corin Buchanan-Howland | 2014-11-08 20:55:11 -0500

Refactor Ru redirection and extend it to non-spell ranged attacks.
Functionalize the logic which determines whether you block, redirect, or do
nothing to an incoming attack.

Extend redirection functionality to monsters with ranged or thrown weapons.

--------------------------------------------------------------------------------
897fa1f935 | Corin Buchanan-Howland | 2014-11-08 20:55:10 -0500

Add a message when your sacrifice maxes out Ru piety.

--------------------------------------------------------------------------------
9b46ae31ed | Corin Buchanan-Howland | 2014-11-08 20:55:09 -0500

Adjust Sac Love desc to make clear that spell proxy monsters are unaffected.

--------------------------------------------------------------------------------
d55de37c15 | Corin Buchanan-Howland | 2014-11-08 20:55:08 -0500

Adjust Power Leap text to make it clear it only hurts enemies.

--------------------------------------------------------------------------------
d53454f441 | Shmuale Mark | 2014-11-08 20:32:27 -0500

Use normal glass in nicolae_overflow_hidden_temple.

--------------------------------------------------------------------------------
3a4aa27f39 | Florian Diebold | 2014-11-09 01:30:42 +0100

Close the file in the libpng error handler.

--------------------------------------------------------------------------------
024c97799c | Florian Diebold | 2014-11-09 01:26:11 +0100

Handle a return value and introduce a constant.

--------------------------------------------------------------------------------
b86fb3f5a0 | Florian Diebold | 2014-11-09 01:16:58 +0100

Remove the SDL dependency from the rltiles tool.
Since the tool only needs to load PNG images, it doesn't really need
SDL; we can instead directly call libpng. This should make
cross-compilation easier and even reduces the code size a bit, since
libpng can do the palette expansion for us.

--------------------------------------------------------------------------------
b889e497cc | Shmuale Mark | 2014-11-08 18:45:12 -0500

Don't place the Elf:2 Blade entrances in V in old games (#9156).

--------------------------------------------------------------------------------
24f5ed7577 | Shmuale Mark | 2014-11-08 18:37:05 -0500

Force a yes_or_no for enetering wizmode (#9159).

--------------------------------------------------------------------------------
a2796492d9 | Shmuale Mark | 2014-11-08 18:33:55 -0500

Use our own PI #define.
M_PI isn't standard at all.

--------------------------------------------------------------------------------
30e26df16a | gammafunk | 2014-11-08 16:55:20 -0600

Fix tilegen compilation under mingw32
Order of linking the SDL libs and some missing Windows libraries.

--------------------------------------------------------------------------------
fb1e706714 | Brendan Hickey | 2014-11-08 22:39:56 +0000

Print a debug message on item parse failure

--------------------------------------------------------------------------------
4a353758d9 | Nicholas Feinberg | 2014-11-08 14:36:30 -0800

Reduce rust devil description hyperbole

--------------------------------------------------------------------------------
fe1e86ecda | Brendan Hickey | 2014-11-08 22:23:16 +0000

Make item_spec parsing fragile
Fail fast. Return false on error, rather than
unconditionally emitting an item_spec.

--------------------------------------------------------------------------------
9ca753906b | gammafunk | 2014-11-08 14:44:02 -0600

Define a constant under mingw compilation

--------------------------------------------------------------------------------
aaec901ee2 | Nicholas Feinberg | 2014-11-08 10:20:59 -0800

Buff the Box of Beasts
Add 5 to the level of the selections, like the Rod of Shadows
buff. Possibly more sophisticated changes should be made, but
this is a good start.

--------------------------------------------------------------------------------
51e631d323 | Nicholas Feinberg | 2014-11-08 10:06:15 -0800

Don't display melded weapons in webtiles
In the Wp: slot.

--------------------------------------------------------------------------------
d754fce01b | Nicholas Feinberg | 2014-11-08 10:06:15 -0800

Add an overlooked part of the Gozag commit
git is too hard :(

--------------------------------------------------------------------------------
0b8360431d | Brendan Hickey | 2014-11-08 16:58:56 +0000

Memory Management
Add deleteAll for cleaning up collection<T*>
Use unique_ptr in a few places.

--------------------------------------------------------------------------------
2ee5e867d7 | David Ploog | 2014-11-08 17:16:48 +0100

Imperialist pseudo-scientific wording fixed.
s/epicenter/centre/
center (AE), centre (BE), and the epi is meaningless outside of earthquakes.

--------------------------------------------------------------------------------
919575a600 | ontoclasm | 2014-11-08 00:00:54 -0600

Mosaic floor tiles for Snake

--------------------------------------------------------------------------------
5f12227c2e | Nicholas Feinberg | 2014-11-07 21:18:27 -0800

Increase low-weight monster Gozag goldification
Switch the baseline mass from 200 (rat) to 550 (human); change
baseline gold from 3 to 13; change weight scale factor from 27 to
40. (Sorry!)

All monsters human weight or smaller now give 6-19 gold (was 1-4
for the smallest monsters); monsters larger than humans now give
somewhat less. (E.g., yaks are down from 18-55 to 16-48.)

This is probably a Gozag buff, but is mainly intended to make
Spider a little more fun/rewarding for Gozagites.

--------------------------------------------------------------------------------
1651e00bde | Nicholas Feinberg | 2014-11-07 20:58:48 -0800

End the Fen Folio honeymoon
Increase its rarity from 7 to 12, per the comments made at the
time of its creation. (A little too... specifically themed to be
mega-common.)

--------------------------------------------------------------------------------
831c73a790 | Nicholas Feinberg | 2014-11-07 20:51:37 -0800

Add more uses of 'brand'

--------------------------------------------------------------------------------
6673bdc37b | Steve Melenchuk | 2014-11-07 21:38:00 -0700

Don't produce hieroglyphics when trying to type in numbers.
Oops.

--------------------------------------------------------------------------------
ad49808b73 | Steve Melenchuk | 2014-11-07 21:05:38 -0700

Use a more up-to-date ppa for SDL2 for travis.
Hopefully this will motivate trollvis to build this properly!

--------------------------------------------------------------------------------
84f5de5b66 | Steve Melenchuk | 2014-11-07 21:01:27 -0700

Poke sdl2 contrib - Win32 now runs!
It interacts bizarrely with trying to enter in numbers, but it runs...

--------------------------------------------------------------------------------
edee275d7f | gammafunk | 2014-11-07 20:53:58 -0600

OS X Makefile updates to add missing frameworks

--------------------------------------------------------------------------------
ab5fd5b690 | gammafunk | 2014-11-07 20:53:03 -0600

Revert "Travis: still install SDL1.2, so tile gen utils can use it."
Now that SDL2 is working for and used by tilegen, remove this since it
may interfere with the travis build.

This reverts commit c371c2d767e79df2fc687b535fbff1dcc79ac0ed.

--------------------------------------------------------------------------------
f87f6aedb1 | gammafunk | 2014-11-07 20:40:50 -0600

Updates to sdl2 contrib

--------------------------------------------------------------------------------
187053bad6 | gammafunk | 2014-11-07 17:44:00 -0600

Use SDL2 for tilegen

--------------------------------------------------------------------------------
8124c910e6 | Shmuale Mark | 2014-11-07 16:38:05 -0500

Fix Okawaru hydra corpse piety gain.

--------------------------------------------------------------------------------
d4e2ff5b54 | Shmuale Mark | 2014-11-07 16:37:31 -0500

Fix hydra animate skeleton (#9154).

--------------------------------------------------------------------------------
3d4331f3a6 | Shmuale Mark | 2014-11-07 13:55:30 -0500

Fix local tiles compilation.

--------------------------------------------------------------------------------
365365e1c8 | Steve Melenchuk | 2014-11-07 11:12:43 -0700

Poke SDL2 contrib for OS X fixes.

--------------------------------------------------------------------------------
98babd59f2 | Steve Melenchuk | 2014-11-07 11:00:53 -0700

Be less loopy in the Makefile (gammafunk).

--------------------------------------------------------------------------------
8a14472387 | Steve Melenchuk | 2014-11-07 10:50:24 -0700

Build contribs in the right order and link them in the right order.
This particular bit of code wizardry is making me loopy.

--------------------------------------------------------------------------------
a6a438f4eb | Shmuale Mark | 2014-11-07 12:07:34 -0500

Another try at fixing weird build issues.

--------------------------------------------------------------------------------
c371c2d767 | Steve Melenchuk | 2014-11-07 10:03:52 -0700

Travis: still install SDL1.2, so tile gen utils can use it.
Until we can get those ported over too.

--------------------------------------------------------------------------------
c204b2e1f4 | Shmuale Mark | 2014-11-07 11:45:36 -0500

Remove C++03 compat hacks.

--------------------------------------------------------------------------------
4ffe245a57 | Shmuale Mark | 2014-11-07 11:45:25 -0500

Fix compilation?

--------------------------------------------------------------------------------
633f41b6fb | Shmuale Mark | 2014-11-07 11:03:21 -0500

Don't make player illusions temporarily ghosts (#9153).

--------------------------------------------------------------------------------
03d9a50b36 | Shmuale Mark | 2014-11-07 10:53:45 -0500

Disable the corny and inconsistent translation.

--------------------------------------------------------------------------------
1f3b535bb1 | Shmuale Mark | 2014-11-07 10:49:37 -0500

Cppclean: some misc. cleanup.
Death to recursive includes!

--------------------------------------------------------------------------------
8fe43dc5b2 | Shmuale Mark | 2014-11-07 10:49:37 -0500

Cppclean: remove an unused variable.

--------------------------------------------------------------------------------
1a58c9b719 | Shmuale Mark | 2014-11-07 10:49:37 -0500

Cppclean: remove unused function declarations.
Also moves some function declarations to the headers of where they
are defined, since Cppclean can't properly distinguish the problems.

--------------------------------------------------------------------------------
15d3014c0a | Jesse Luehrs | 2014-11-07 10:24:20 -0500

this ppa uses different package names

--------------------------------------------------------------------------------
4535995bbc | Jesse Luehrs | 2014-11-07 10:14:40 -0500

add a ppa that should hopefully include sdl2 packages

--------------------------------------------------------------------------------
f459992a29 | Jesse Luehrs | 2014-11-07 09:56:28 -0500

install sdl2 for travis

--------------------------------------------------------------------------------
f171d97ab0 | gammafunk | 2014-11-07 00:36:49 -0600

Fix the setting of the player colour through mon_glyph
The colour for e.g.

  mon_glyph += player : yellow e

was being ignored by a lookup that only checked the table, due to
recent monster colour changes.

--------------------------------------------------------------------------------
547164252d | Steve Melenchuk | 2014-11-06 23:09:42 -0700

Win32 build adjustments (includes a sdl2 contrib update).
This builds, but crashes on startup; I believe it has to do with the
sdl2 contrib using thread/generic. I'd like to use thread/stdcpp since
we are using C++11 now, but we need to figure out how to get that to
build first.

--------------------------------------------------------------------------------
0967df0833 | Shmuale Mark | 2014-11-06 22:55:50 -0500

Avoid "Slain by a snaplasher vine ... attached to a dryad."
And clean up some truly dreadful duplication.

--------------------------------------------------------------------------------
3d4ad5ddd9 | Steve Melenchuk | 2014-11-06 20:49:58 -0700

Update SDL2 contribs.
I can kind of get this built on Linux against the contribs now. Hooray!

--------------------------------------------------------------------------------
b39e1cea66 | Steve Melenchuk | 2014-11-06 20:49:58 -0700

Start adjusting makefiles for contrib-y goodness.
Of course, we want the contribs to be able to build so that we can use
them before we get too far.

--------------------------------------------------------------------------------
7ba147b8b7 | Steve Melenchuk | 2014-11-06 20:49:58 -0700

Fundamentals of an SDL2 port.
Please find a better way to map keycodes than what's here. I am ashamed
to have written it.

--------------------------------------------------------------------------------
e3f08b9775 | Steve Melenchuk | 2014-11-06 20:49:58 -0700

SDL2 submodules.

--------------------------------------------------------------------------------
a1dee86e42 | Nicholas Feinberg | 2014-11-06 19:42:54 -0800

De-registerize
register is deprecated, and also horrible microoptimization. Out!

--------------------------------------------------------------------------------
e05429002c | gammafunk | 2014-11-06 21:26:29 -0600

Decrease the minimum depth of placement for caustic shrikes

--------------------------------------------------------------------------------
44a4cd55a6 | Shmuale Mark | 2014-11-06 22:22:15 -0500

Simplify slightly.

--------------------------------------------------------------------------------
b86d1a3c62 | Nicholas Feinberg | 2014-11-06 19:11:59 -0800

Remove tomahawks (en manual entry, wheals)

--------------------------------------------------------------------------------
95f328eb47 | Nicholas Feinberg | 2014-11-06 19:06:51 -0800

Remove darts (from the manual) (9150)

--------------------------------------------------------------------------------
ca384b8900 | Shmuale Mark | 2014-11-06 21:51:17 -0500

Give feature_def a constructor.
And clean up a little code.

--------------------------------------------------------------------------------
4ae1ea9923 | Steve Melenchuk | 2014-11-06 19:12:36 -0700

Remove hastily committed and unused domino tile functionality.
Per IRC discussion, it doesn't need to be in trunk until it does
something meaningful.

--------------------------------------------------------------------------------
7e8d76fec8 | Brendan Hickey | 2014-11-07 02:02:20 +0000

rand()? nope. Fix makefile

--------------------------------------------------------------------------------
898bb4efb1 | Brendan Hickey | 2014-11-07 01:51:08 +0000

Merge Dominos
C++11 is in, so this can get merged.

--------------------------------------------------------------------------------
570fdaaf86 | Brendan Hickey | 2014-11-07 01:51:08 +0000

Template'ize Dominoes
This makes a bit of an awful mess of the code, but gets rid of casting
and buys use typesafety. I thought about mixing subclassing and templates
but then my brain broke a little bit.

On the plus side, you can define new dominoes with struct syntax.

--------------------------------------------------------------------------------
ed9ab4b7b5 | Brendan Hickey | 2014-11-07 01:51:08 +0000

Add citation to domino headers.

--------------------------------------------------------------------------------
e536d09b09 | Brendan Hickey | 2014-11-07 01:51:08 +0000

Domino Bugfixes
Fix a couple of garbage bugs that were horribly breaking the domino code.
Either the cohen set or the periodic set can trivially tile the plane.
Steer clear of the aperiodic set, finding a tiling is hard.

--------------------------------------------------------------------------------
74c37600b7 | Brendan Hickey | 2014-11-07 01:51:08 +0000

Fix an obvious cast bug (edlothiol)

--------------------------------------------------------------------------------
c2065e36bb | Brendan Hickey | 2014-11-07 01:51:08 +0000

Break the Tile Generator
This should be a faithful implementation of the rowwise plane tiling algorithm
described in the Cohen paper. Unfortunately, it doesn't do the right thing. It
actually performs worse than the 'tile the plane randomly and then flip stuff
if you get stuck' algorithm. But, hey, let's check it in so someone can point
out how I'm being a dunce. The smug satisfaction of proving me wrong should be
enough to motivate someone to help me debug this.

--------------------------------------------------------------------------------
a7318e3b7d | Brendan Hickey | 2014-11-07 01:51:08 +0000

Make CornerDomino and EdgeDomino subclass domino
This will leak memory because I haven't gotten around to writing
destructors.

--------------------------------------------------------------------------------
6267375722 | Brendan Hickey | 2014-11-07 01:51:08 +0000

Add EdgeDominoes
(This is, ahem, untested)

--------------------------------------------------------------------------------
23569668d8 | Brendan Hickey | 2014-11-07 01:51:08 +0000

Rename Colour to CornerColour

--------------------------------------------------------------------------------
4ef48b5393 | Brendan Hickey | 2014-11-07 01:51:08 +0000

Rename Domino to CornerDomino

--------------------------------------------------------------------------------
f0f6b2180a | Brendan Hickey | 2014-11-07 01:51:08 +0000

Wang Tiles Draft
This is an initial draft of a corner-wang tiles for the 2d plane.
Why would we care about this?
1. Tiles.
2. Level generation.

The solver is very rough. The code quality is subpar and it isn't guaranteed
to produce a solution. In general I suspect that tiling the plane is NP-hard.
For our purposes, the right approach is to take an input tile set (that may
be hard), run the solver until it gets stuck, confabulate a tile that unsticks
the solver and restart. Once we've made a tiling easy, emit the augmented
tile set. Easier said than done, perhaps.

The other trick is to find a recursive subdivision of each tile. If we can do
that, tiling forever becomes trivial.

--------------------------------------------------------------------------------
3bf8d9d22d | Steve Melenchuk | 2014-11-06 18:19:54 -0700

Clean up some handling of mon-spell-slots spell books.
Now that C++11 will allow us to do this.

TODO: the marshall/unmarshall code still limits us to 256 spells, so
this commit is less useful than it seems, and it isn't checked for.
Help?

--------------------------------------------------------------------------------
5051830f62 | Shmuale Mark | 2014-11-06 20:04:53 -0500

Fix chilling/draining breath speech (_Jordan_).

--------------------------------------------------------------------------------
76c8bfa97c | Brendan Hickey | 2014-11-07 01:02:51 +0000

Revert "Revert c++11"
This reverts commit 33a54cb1a359953aa36526875aebd65d288ea116.
This has been tested on OSX 10.10 and Ubuntu 14.04.

--------------------------------------------------------------------------------
df9e419f57 | Steve Melenchuk | 2014-11-06 17:02:52 -0700

Update SDL contrib to 1.2.15 plus an OS X fix (#9069).
See the contrib for details.

--------------------------------------------------------------------------------
5978a28e2d | gammafunk | 2014-11-06 17:36:55 -0600

Fix WebTiles compilation on OS X

--------------------------------------------------------------------------------
ca9410779a | Kyle Fox | 2014-11-06 18:36:00 -0500

Cats like fish.

--------------------------------------------------------------------------------
a9baeb0c13 | Shmuale Mark | 2014-11-06 18:34:20 -0500

Tag two vaults with no_exits (travis-ci).
Looks like the other ones in the series can't be totally surrounded
by trees, though.

--------------------------------------------------------------------------------
cb6cdaf27f | Shmuale Mark | 2014-11-06 18:12:17 -0500

Clarify.

--------------------------------------------------------------------------------
9bcc82c435 | Shmuale Mark | 2014-11-06 18:04:59 -0500

Unbrace.

--------------------------------------------------------------------------------
74c23d6dde | Shmuale Mark | 2014-11-06 17:41:39 -0500

Mindexicide: fun with tentacles!

--------------------------------------------------------------------------------
8a05d2b977 | Shmuale Mark | 2014-11-06 17:41:39 -0500

Clean up some Torment code.

--------------------------------------------------------------------------------
7ba80760b1 | Shmuale Mark | 2014-11-06 17:41:38 -0500

Mindexicide: ouch(), scorefile_entry.

--------------------------------------------------------------------------------
a8c12d7d94 | Brendan Hickey | 2014-11-06 13:31:50 +0000

Don't mimic zigs (9147)

--------------------------------------------------------------------------------
b62f961d50 | Shmuale Mark | 2014-11-06 08:20:23 -0500

Don't call the player "the La Petite Mort" (PleasingFungus).

--------------------------------------------------------------------------------
7a77c096f2 | Shmuale Mark | 2014-11-06 08:00:09 -0500

Simplify.

--------------------------------------------------------------------------------
33a54cb1a3 | Nicholas Feinberg | 2014-11-05 20:09:12 -0800

Revert c++11
Temporarily, until OS X builds can be got working again.

--------------------------------------------------------------------------------
0e457c3c98 | Nicholas Feinberg | 2014-11-05 20:02:32 -0800

Tidy

--------------------------------------------------------------------------------
65be946137 | Brandon Kime | 2014-11-05 20:01:03 -0800

Implement skill-specific titling for Kiku and Nemelex (9144)
This patch changes the title displayed for having highest skill in Necromancy
and Evocations with Kiku and Nemelex, respectively. Since those gods use those
skills for their abilities it seems appropriate. Additionally, it is a nice way
for some of the titles on the huge list of unused ones to get some light.

This overrides the normal highest skill titles for Necromancy/Evocations
(respectively), but not the easter egg one for Spriggans.

(committer's note: adjusted commit message.)

--------------------------------------------------------------------------------
f3a1a20e98 | Nicholas Feinberg | 2014-11-05 19:42:53 -0800

Remove switch/case forever (itemname)

--------------------------------------------------------------------------------
69e248bba0 | Steve Melenchuk | 2014-11-05 20:26:08 -0700

Try to use GCC 4.8 for Travis.
Inspired by this: https://github.com/travis-ci/travis-ci/issues/1379

This should let it do C++11 properly.

--------------------------------------------------------------------------------
aecf3c2e82 | Brendan Hickey | 2014-11-06 03:03:52 +0000

Appease gcc 4.6
"ship it" -- wheals

--------------------------------------------------------------------------------
fa41590524 | Nicholas Feinberg | 2014-11-05 18:51:00 -0800

Don't display books as staves

--------------------------------------------------------------------------------
981dcd42d9 | Brendan Hickey | 2014-11-06 02:48:49 +0000

Potentially Fix Failing Build

--------------------------------------------------------------------------------
12430d7595 | Brendan Hickey | 2014-11-06 02:25:15 +0000

C++11 (grunt)
Compile with --std=c++11. This breaks crawl on  ancient compilers.
We should document the earliest supported version of each compiler
we care about.

--------------------------------------------------------------------------------
c6b99fbdc1 | Nicholas Feinberg | 2014-11-05 17:54:18 -0800

Fix random item tiles (9144)
Need to unify these more tightly; books especially have some
real witchcraft going on.

--------------------------------------------------------------------------------
d0e546fc05 | Jesse Luehrs | 2014-11-05 19:04:14 -0500

hrm, shouldn't this be the default?

--------------------------------------------------------------------------------
0abdcc4f5d | Shmuale Mark | 2014-11-05 19:03:09 -0500

Clean up a function (|amethyst).
<+|amethyst> hm, a do...while(0) solely so that you can use break
             instead of goto
<+|amethyst> clever

--------------------------------------------------------------------------------
4e34004ae5 | Chris Oelmueller | 2014-11-05 16:54:06 -0700

Fix a typo

--------------------------------------------------------------------------------
3b1c4ceae5 | Shmuale Mark | 2014-11-05 18:24:27 -0500

Don't crash when a monster dies during casting a spell, either.

--------------------------------------------------------------------------------
c7e30b8d50 | Brendan Hickey | 2014-11-05 23:16:00 +0000

More Insulting
Get thee hence reprobate!

--------------------------------------------------------------------------------
a60ddb0e42 | Neil Moore | 2014-11-05 18:09:15 -0500

Unbrace.

--------------------------------------------------------------------------------
36f5e72615 | Neil Moore | 2014-11-05 18:09:15 -0500

Don't crash when casting IOOD at an adjacent foe.
If the IOOD exploded as part of its first move, our attempts to
make the dead monster lose extra energy caused a crash.

Also remove a check that papered over the bug by making the energy
loss "work", changing it to an assert instead.

--------------------------------------------------------------------------------
4db28210f5 | Shmuale Mark | 2014-11-05 17:47:16 -0500

Fix ugly thing move energy.

--------------------------------------------------------------------------------
92c33983b5 | Shmuale Mark | 2014-11-05 17:40:32 -0500

Fixup unitialised move_energys better.
Since there's no guarantee that they would be 0.

Also corrects naga ghost move speed.

--------------------------------------------------------------------------------
ff07b5fa96 | Zannick | 2014-11-05 17:38:02 -0500

Don't dereference non-monster evildoers.

--------------------------------------------------------------------------------
93f38de07a | Jesse Luehrs | 2014-11-05 13:57:02 -0500

also fix up ghost_demons loaded from save files

--------------------------------------------------------------------------------
a804f3c838 | Jesse Luehrs | 2014-11-05 13:53:15 -0500

initialize move_energy for non-ghost ghost_demons (wheals)
should fix xv crashing on ugly things and such

--------------------------------------------------------------------------------
c2c8feaf40 | Jesse Luehrs | 2014-11-05 13:47:18 -0500

try to fix crash when monsters cast iood (PleasingFungus)

--------------------------------------------------------------------------------
3e3b53b1c7 | Jesse Luehrs | 2014-11-05 12:26:07 -0500

always install gdb, to get better crash logs

--------------------------------------------------------------------------------
212a11f73b | Jesse Luehrs | 2014-11-05 11:37:20 -0500

actually use the function i wrote

--------------------------------------------------------------------------------
33127d0d9e | Shmuale Mark | 2014-11-05 11:06:56 -0500

Don't crash on Glaciate versus a hydra.
Or saltifying one, just in case.

--------------------------------------------------------------------------------
d1c39e0b84 | Jesse Luehrs | 2014-11-05 11:06:13 -0500

try a different way to display crash reports on error

--------------------------------------------------------------------------------
793697e9ba | Nicholas Feinberg | 2014-11-05 08:02:16 -0800

Another buggy item name fix (9136)

--------------------------------------------------------------------------------
0855d64fab | Jesse Luehrs | 2014-11-05 10:50:37 -0500

disable the submodule builds for now

--------------------------------------------------------------------------------
c546b73c2f | Shmuale Mark | 2014-11-05 10:48:09 -0500

Combine the interface for splashing players/monsters with acid.

--------------------------------------------------------------------------------
618f63efc7 | Nicholas Feinberg | 2014-11-05 07:45:31 -0800

Remove unused attack variables

--------------------------------------------------------------------------------
de8d0ee9eb | Chris Oelmueller | 2014-11-05 10:17:22 -0500

Allow small_more to work with clear_messages
Previously, combining both options caused the small_more setting to be
disabled regardless of player settings.

Fixes 0002296

--------------------------------------------------------------------------------
e34ddbee51 | Shmuale Mark | 2014-11-05 10:08:27 -0500

Make player speed only affect ghost movement speed, not action speed.

--------------------------------------------------------------------------------
e654f27fba | Shmuale Mark | 2014-11-05 09:32:01 -0500

Descriptions of Searing/Chilling breath.

--------------------------------------------------------------------------------
e30d2fd524 | Shmuale Mark | 2014-11-05 09:27:41 -0500

Melt Condensation Shield on block, not hit (#1648).

--------------------------------------------------------------------------------
4b9db609dc | Shmuale Mark | 2014-11-05 09:14:20 -0500

Corrode a monster/player when they block an acid attack (PleasingFungus).

--------------------------------------------------------------------------------
8dcf03cea2 | Corin Buchanan-Howland | 2014-11-05 07:14:36 -0500

Punctuate Ru milestone and sacrifice messages. (nonethousand)

--------------------------------------------------------------------------------
74e0c08501 | Jesse Luehrs | 2014-11-05 01:37:04 -0500

and another

--------------------------------------------------------------------------------
c2991e58ae | Neil Moore | 2014-11-05 01:27:59 -0500

Add (curse) after artefacts in %, too (#2977)
This one is a bit more of a hack: the annotation is added in a different
method (name() rather than name_aux()) so that it can come after the
artefact property inscriptions :(

--------------------------------------------------------------------------------
46cd84fca0 | Neil Moore | 2014-11-05 01:27:58 -0500

Use (cursed) suffix for jewellery in %.
And in terse mode in general, to match weapons and armour.

--------------------------------------------------------------------------------
83af1d870e | Jesse Luehrs | 2014-11-05 01:22:13 -0500

another missing dep

--------------------------------------------------------------------------------
fcc31cecbf | Jesse Luehrs | 2014-11-05 01:05:27 -0500

fix dependency installation

--------------------------------------------------------------------------------
333cb664c1 | Jesse Luehrs | 2014-11-05 00:53:34 -0500

still need alsa even for BUILD_ALL

--------------------------------------------------------------------------------
f113ad9b98 | Jesse Luehrs | 2014-11-05 00:51:36 -0500

fix tests for dechunk

--------------------------------------------------------------------------------
9d79221650 | Neil Moore | 2014-11-05 00:50:11 -0500

Make cursed jewellery itemspecs work (#5938)
And document that 'damaged' does nothing for jewellery.  Now 'cursed'
always curses the item if possible (but not holy wrath items).

--------------------------------------------------------------------------------
485ae622b9 | Neil Moore | 2014-11-05 00:25:28 -0500

Don't crash when rerolling a bad randart.
We were resetting its quantity.  You could see this most easily with:
    0200&%any weapon randart ego:holy_wrath

--------------------------------------------------------------------------------
55cb6ae33b | Jesse Luehrs | 2014-11-05 00:24:55 -0500

sigh

--------------------------------------------------------------------------------
65a91a3fac | Jesse Luehrs | 2014-11-05 00:06:59 -0500

handle errors properly in travis build runner

--------------------------------------------------------------------------------
3a3701cfb3 | Jesse Luehrs | 2014-11-04 23:57:07 -0500

cut down the number of builds a bit

--------------------------------------------------------------------------------
15dda6538d | Jesse Luehrs | 2014-11-04 23:55:00 -0500

don't run qw tests by default
they are flaky

--------------------------------------------------------------------------------
0f03bb062f | Brendan Hickey | 2014-11-05 04:52:34 +0000

More Insults
...and the horse you rode in on.

--------------------------------------------------------------------------------
06f590e6e7 | Nicholas Feinberg | 2014-11-04 20:41:35 -0800

Don't spawn chaos champions with old weapons
Or whips or clubs; unfortunate casualties of implementation
details.

--------------------------------------------------------------------------------
abd4d491d3 | Nicholas Feinberg | 2014-11-04 20:29:24 -0800

Add a few randart weapon name components

--------------------------------------------------------------------------------
6dea47a319 | Shmuale Mark | 2014-11-04 18:44:12 -0500

Don't hit an inifinte loop when casting IMB.

--------------------------------------------------------------------------------
bc1c97133c | Shmuale Mark | 2014-11-04 17:56:52 -0500

Allow monsters besides Donald to talk in all branches.
<|amethyst> wheals:  dungeon, swamp, shoals, crypt, vaults, hell,
dis, zot, abyss, depths, and many portal vaults would work.

Other branches could not have monsters speaking based on their monster
type (though other key matches could work) ever since Donald's branch-
specific speech was added, in eb2694d6.

--------------------------------------------------------------------------------
4c91d7365d | Neil Moore | 2014-11-04 16:55:18 -0500

Replace some magic constants.
But books use constants here that differ from NDSC_*, so leave those.

--------------------------------------------------------------------------------
4ede7fa966 | Neil Moore | 2014-11-04 16:55:14 -0500

Correct bad sign conversion from unmarshalling (#9131)
We originally used unmarshallByte to unmarshall into a uint8_t, which
is incorrect but happens to work.  Then item_description was changed
to an array of uint32_t, so the conversion from int8_t sign-extended
before converting to unsigned.  Then later we store these values in
item_def::subtype_rnd, which is signed, and they become negative numbers
that cause problems for wand_secondary_string and friends.

Unmarshall that byte correctly, and fix up old saves that may have
been affected.  This doesn't do anything about the fact that we convert
from unsigned to signed in item_colour.

--------------------------------------------------------------------------------
95f172b81f | Shmuale Mark | 2014-11-04 16:34:19 -0500

Don't give draconian player illusions two breath attacks.

--------------------------------------------------------------------------------
2b09f64a21 | Shmuale Mark | 2014-11-04 16:24:56 -0500

Make ghosts not a ' ' (#9132).
As tempting as it is to ape NetHack...

--------------------------------------------------------------------------------
86cb59e4ba | Shmuale Mark | 2014-11-04 16:18:40 -0500

Don't base behavior on beam names.
...with exceptions still existing for one of the Upheaval effects,
and several draconian breaths. Not sure how to resolve them without
adding even more SPELL_ enums.

--------------------------------------------------------------------------------
447471b8ac | Shmuale Mark | 2014-11-04 16:18:40 -0500

Remove the '-plain' command-line option.
It was the same as adding 'char_set = ascii' to your rcfile (we always
encode in UTF-8 no matter what).

--------------------------------------------------------------------------------
60556f9792 | Neil Moore | 2014-11-04 16:11:07 -0500

Make an assertion more verbose.

--------------------------------------------------------------------------------
ce4553ee8b | Jesse Luehrs | 2014-11-04 16:10:23 -0500

don't skip_join, it requires annoying configuration

--------------------------------------------------------------------------------
0172f80b2b | Jesse Luehrs | 2014-11-04 15:05:03 -0500

don't fail if there are no files

--------------------------------------------------------------------------------
44f7412460 | Shmuale Mark | 2014-11-04 13:43:45 -0500

Hide a hack better.
I'm not convinced this hack is necessary at all, despite what a comment
in monster::body_weight claims; there doesn't seem to be anything
with CE_NOCORPSE that has a corpse, and it isn't referenced at all in
the blood potion/biting code.

--------------------------------------------------------------------------------
ac29865fd2 | Shmuale Mark | 2014-11-04 13:43:45 -0500

Add Bloax's obsidian statue tile.

--------------------------------------------------------------------------------
6e01cad606 | Jesse Luehrs | 2014-11-04 13:42:13 -0500

temporarily fix buggy item descriptions (PleasingFungus)

--------------------------------------------------------------------------------
61a326e022 | Nicholas Feinberg | 2014-11-04 08:19:32 -0800

Simplify (|amethyst)

--------------------------------------------------------------------------------
21a5e13ae5 | Nicholas Feinberg | 2014-11-04 08:01:09 -0800

Fix (?) a type warning, maybe

--------------------------------------------------------------------------------
6a05b1f60b | Nicholas Feinberg | 2014-11-04 07:40:25 -0800

Fix save compat (9126)
Don't turn all weapons into holy wrath weapons on save compat.

Also, change the ring plus threshold to 6, since +8 slayrings are
no more.

--------------------------------------------------------------------------------
101f5e0b93 | Nicholas Feinberg | 2014-11-04 07:29:06 -0800

Debuggify books (9127)

--------------------------------------------------------------------------------
f804c51d65 | Nicholas Feinberg | 2014-11-03 22:46:36 -0800

appearance -> subtype_rnd
For clarity.

And make books not use it, since they don't get named/coloured
consistently anyway. (They... may have been broken before this?
name-wise)

--------------------------------------------------------------------------------
6c7e10ac97 | Nicholas Feinberg | 2014-11-03 22:33:29 -0800

Remove consum_desc
There's no reason for potions & scrolls to use plus to store
appearance when everything else uses 'appearance'. (Also, there's
no reason for scrolls to use two fields, since it all gets mashed
into one int anyway.)

--------------------------------------------------------------------------------
83560a2567 | Nicholas Feinberg | 2014-11-03 21:45:48 -0800

Add a few monsters to mons_is_native_in_branch
And give klowns weight, now that they don't need to be weightless
to avoid traps.

--------------------------------------------------------------------------------
f89e9585f1 | elliptic | 2014-11-04 00:13:16 -0500

Fix some misleading score system comments (johnstein).

--------------------------------------------------------------------------------
ddb603c467 | gammafunk | 2014-11-03 23:04:49 -0600

When possible, do a lookup for monster colour instead of storing it
Previously a monster's colour was stored in its instance upon
creation, and most monsters had their colour copied from the glyph
table. Storing monster colour is still necessary for certain monsters
like ugly things, ballistomycetes, and vault-define monsters with
custom colours. For monsters with a default color, we now look up
colour in the glyph table. The benefit is that player overrides to
colour via the mon_glyph option take effect immediately and effect
even monsters already generated, in addition to the removal of most
monster colour state.

Player overrides to monsters with colours that are randomized or
otherwise set outside of mon-data.h, including butterflies, pan lords,
and player ghosts, will also work now. Currently player overrides
effect even vault-defined monster colours, and we may change the logic
with respect to such monsters in the future.

This commit introduces the COLOUR_INHERIT value to indicate that the
monster uses its default colour, as well as COLOUR_UNDEF, which has
the same value as BLACK. Now COLOUR_UNDEF is used instead of BLACK to
indicate an undefined colour to be set later in monster
initialization/placement. Monsters that previously cycled colour with
each action (killer klowns, spatial vortices, and some pandemonium
lords) now use ETC_RANDOM instead.

--------------------------------------------------------------------------------
b434bc56fb | Nicholas Feinberg | 2014-11-03 21:04:51 -0800

Add obsidian statues to the changelog

--------------------------------------------------------------------------------
ba9b1e213d | Nicholas Feinberg | 2014-11-03 20:45:03 -0800

Changelog through 0.16-a0-1857-g6c74090

--------------------------------------------------------------------------------
6c74090c34 | Nicholas Feinberg | 2014-11-03 20:43:58 -0800

Remove a bad comment
doesn't make sense to try to preserve monster colour on chunks
anyway, now that they're slurrified.

--------------------------------------------------------------------------------
13f9220d61 | Corin Buchanan-Howland | 2014-11-03 22:55:54 -0500

Remove a pointless comment and indent.

--------------------------------------------------------------------------------
7480333fb9 | Corin Buchanan-Howland | 2014-11-03 22:50:15 -0500

Fix repeating previous command after using a macro.
This may well have unexpected consequences, but no one seems sure.
Elliptic says qw still works, so hopefully this still works with complex
macros.

--------------------------------------------------------------------------------
85f6bb1743 | Corin Buchanan-Howland | 2014-11-03 22:49:07 -0500

De-insectify shrikes a little more.

--------------------------------------------------------------------------------
4388bfd0dc | Corin Buchanan-Howland | 2014-11-03 22:39:42 -0500

Make caustic shrikes scarier and rarer
This removes them from all dungeon spawning, and also removes them
from non-OOD Depths spawning. They are now the scary OODs you get in
Depths. Band size is reduced too.

--------------------------------------------------------------------------------
2c0765de74 | Corin Buchanan-Howland | 2014-11-03 22:26:28 -0500

Switch a few insect traits to bird traits on shrikes.

--------------------------------------------------------------------------------
174e299baa | Corin Buchanan-Howland | 2014-11-03 22:18:36 -0500

Rename caustic bees to caustic shrikes and make them birds.

--------------------------------------------------------------------------------
5abf12860a | Steve Melenchuk | 2014-11-03 19:50:34 -0700

Conjure Flame for monsters.
They try to block your lines of retreat into hallways with it.

This time around, it's a ghost exclusive, but I can think of a few
enemies needing new spellsets that might benefit from this.

--------------------------------------------------------------------------------
4d0b6572f1 | Shmuale Mark | 2014-11-03 21:12:12 -0500

Add a very bad tile for obsidian statues.

--------------------------------------------------------------------------------
e8a12f6205 | Shmuale Mark | 2014-11-03 21:10:02 -0500

Rename silver statues -> obsidian statues (theTower, PleasingFungus).
Silver implies a connection with Zin that does not exist. Obsidian,
on the other hand, is already connected to demon summoning (see
the obsidian axe).

--------------------------------------------------------------------------------
88af3e2756 | Nicholas Feinberg | 2014-11-03 17:53:45 -0800

Fix corpse/god weapon colours (|amethyst)
Need to copy a prop to item info for it to be visible!

--------------------------------------------------------------------------------
a43af47ab9 | Shayne Halvorson | 2014-11-03 19:46:06 -0600

Let electric eel beams be true beams again.

--------------------------------------------------------------------------------
c850cda0bc | Shmuale Mark | 2014-11-03 20:07:46 -0500

Remove ISFLAG_BLESSED_WEAPON.

--------------------------------------------------------------------------------
db7d09005e | Chris Oelmueller | 2014-11-03 20:03:50 -0500

Remove Blessed Blades
TSO blesses a weapon with holy wrath brand and two ?EW now, just like
the capstone branding of Kiku and Lucy. Demon weapons are converted to
different base weapon types just as before, no change.

Existing weapons that are affected will be converted to their plain types.
Stats of the "blessed" long blade base types have been aligned with their
un-blessed counterparts in case some slipped through.

Mennas and daevas received a slight weapon upgrade to compensate: They no
longer can generate with falchions, and weapon pluses were increased by a
bit more than 1 on average.

[wheals: chrisoelueller's commit message here does not exactly make it clear
what the motivation is, partly because i expect he found it self-evident. At
any rate, having a special effect for just long blades added fairly little,
but led to much confusion in terms of what TSO blessing would do, and in
terms of what an item you got from an angel actually _was_.]

--------------------------------------------------------------------------------
da37df7d7f | Chris Oelmueller | 2014-11-03 19:14:11 -0500

Revert "Allow rings of slaying to be up to +8."
For symmetry with all other rings that come with an enchantment, and
because +6,+6 slaying is more than enough to work with.

This reverts commit 4eb87e29c610c5040604c4a76dc87cf937802960.

--------------------------------------------------------------------------------
2bf1b22b04 | Chris Oelmueller | 2014-11-03 19:14:04 -0500

Highlight ring slot keys when putting on / removing rings
It would be possible to also highlight the item letter by replacing
DESC_INVENTORY with ring->letter and DESC_A, but in practice this
looked more confusing than the current version and thus was discarded.

--------------------------------------------------------------------------------
0e9d014b88 | Chris Oelmueller | 2014-11-03 19:13:58 -0500

Remove SInv and Stlth- from mace of brilliance
The halo grants SInv in a certain range already and affects stealth as well,
so these properties were mostly duplicated.

--------------------------------------------------------------------------------
6e3d06d4ed | Steve Melenchuk | 2014-11-03 17:09:39 -0700

An implementation of Condensation Shield for monsters.
Since there are some design ideas out there that will make use of it.

As our resident monster ice spell test bed, Fannar gets to cast it (and
will start with it in effect); ghosts are also eligible for it.

--------------------------------------------------------------------------------
b4dc526cb8 | Steve Melenchuk | 2014-11-03 16:26:28 -0700

Insubstantial monsters can't cast Stoneskin or Ozo's.
Mostly to prevent ghosts that have them from casting them, but there
might be other odd cases where this comes into play.

--------------------------------------------------------------------------------
fb3d8bebe0 | Steve Melenchuk | 2014-11-03 16:25:31 -0700

SPFLAG_NO_GHOST for Stoneskin and Ozo's (#9117).
Prevents the spell from showing up in ghost spell lists.

--------------------------------------------------------------------------------
bde876d4da | Shmuale Mark | 2014-11-03 17:57:32 -0500

Split up mon-message.cc.
Damage percent stuff goes to mon-util, simple_monster_message (and
simple_god_message) to message.cc.

--------------------------------------------------------------------------------
ecadd4b611 | Shmuale Mark | 2014-11-03 17:57:32 -0500

Clean up monster casting messages code a bit.
Removed some messages for removed Lesser/Greater Healing spells, removed
the otherwise-unused __NEXT functionality (which seemed to be the same
as not having an entry for that key???), updated the documentation.

--------------------------------------------------------------------------------
723c8a2efa | Shmuale Mark | 2014-11-03 17:57:32 -0500

Move some tentacle code to mon-tentacle.cc.

--------------------------------------------------------------------------------
61a6e1daeb | Shmuale Mark | 2014-11-03 17:57:31 -0500

Give the Throw Icicle zap DCHAR_FIRED_MISSILE.
Other single-target spells with a physical component have that DCHAR.
It now looks the same as LCS, but before it looked the same as Throw
Frost...

--------------------------------------------------------------------------------
b97e75f019 | Steve Melenchuk | 2014-11-03 15:20:29 -0700

Also don't kill Jiyva on phantom TRJ death.
Whee.

--------------------------------------------------------------------------------
1c5d74f256 | Steve Melenchuk | 2014-11-03 15:17:24 -0700

Don't clone monster death keys (#9120).
So that phantom TRJ does not open the Slime vaults on disappearance.

--------------------------------------------------------------------------------
dec2988feb | John McCartney | 2014-11-03 13:40:07 -0800

White marble floors for Tukima wizlab, removed rim from Flayed Ghost.

--------------------------------------------------------------------------------
0843398abd | Shmuale Mark | 2014-11-03 16:37:50 -0500

Move the sacrifice_def definition to sacrifice-data.h (PleasingFungus).

--------------------------------------------------------------------------------
627fd25675 | Shmuale Mark | 2014-11-03 16:37:49 -0500

Don't crash on xv of monsters remembered past saves.

--------------------------------------------------------------------------------
e8e9319f23 | Shmuale Mark | 2014-11-03 16:37:49 -0500

Fix an assert.

--------------------------------------------------------------------------------
e25b96cdd4 | gammafunk | 2014-11-03 15:28:32 -0600

Incredibly, unbrace again

--------------------------------------------------------------------------------
62073bf96c | gammafunk | 2014-11-03 15:24:23 -0600

Unbrace

--------------------------------------------------------------------------------
f727ace58c | Neil Moore | 2014-11-03 16:23:22 -0500

Don't crash on ?/mhydra

--------------------------------------------------------------------------------
8561f07979 | John McCartney | 2014-11-03 12:42:47 -0800

Spider walls brightened, minute tweaks to lab walls and lair floors.

--------------------------------------------------------------------------------
489f3f1342 | Nicholas Feinberg | 2014-11-03 08:39:02 -0800

Misc item code cleanup

--------------------------------------------------------------------------------
86d78d7709 | Nicholas Feinberg | 2014-11-03 08:37:17 -0800

Don't crash when generating unrands

--------------------------------------------------------------------------------
ac07d12618 | Neil Moore | 2014-11-03 10:20:28 -0500

Sync manual from wiki (monster xv)

--------------------------------------------------------------------------------
3f66cf98c0 | Neil Moore | 2014-11-03 09:36:05 -0500

Fix compilation (gammafunk)

--------------------------------------------------------------------------------
c9b36b3bcd | Shmuale Mark | 2014-11-03 08:39:26 -0500

Unionise monster_info_base::number.

--------------------------------------------------------------------------------
97c51bbb93 | Shmuale Mark | 2014-11-03 08:39:25 -0500

Unionise monster::number.
While possibly most of these should be converted to props, number _is_
more efficient. This should also make it easier to change them to props
if that does seem like a better idea.

--------------------------------------------------------------------------------
b0f6d4bd7a | Shmuale Mark | 2014-11-03 08:39:25 -0500

Remove some dead code.

--------------------------------------------------------------------------------
2c93a987a7 | Nicholas Feinberg | 2014-11-02 23:46:08 -0800

Don't generate +144 rings

--------------------------------------------------------------------------------
fde0ed1aea | Nicholas Feinberg | 2014-11-02 23:05:26 -0800

Don't crash when looking at \ (johnstein)

--------------------------------------------------------------------------------
c2a5983980 | Nicholas Feinberg | 2014-11-02 22:36:59 -0800

More item.rnd fixes
Initialize it in the places that used to set colour manually, and
add yet another tag.

Also, let unrands go without rnd, since they don't need it.

This should be the last...

--------------------------------------------------------------------------------
f5ae8945c1 | Nicholas Feinberg | 2014-11-02 22:21:36 -0800

Don't crash when trying to save corpses

--------------------------------------------------------------------------------
9f7a4794ab | Nicholas Feinberg | 2014-11-02 19:43:37 -0800

Don't randomize book colours every time you look at them

--------------------------------------------------------------------------------
b971fa5618 | Nicholas Feinberg | 2014-11-02 18:54:03 -0800

Don't claim that "starvation awaits"
1131 games for * (lab recent): 902x mon, 167x beam, 18x quitting,
15x headbutt, 10x pois, 7x starvation, 4x disintegration,
3x cloud, 2x burning, 2x water, bounce

--------------------------------------------------------------------------------
9f31dfca73 | Nicholas Feinberg | 2014-11-02 18:45:17 -0800

Require rng initialization for item validity
And display it in item descriptions when in wizmode.

--------------------------------------------------------------------------------
8f796177e8 | Nicholas Feinberg | 2014-11-02 18:45:17 -0800

Re-allow lightmagenta randart weapons/armour (|amethyst)
Accidentally broken in 0acbe5bd5bbd.

--------------------------------------------------------------------------------
aaf597ad34 | Nicholas Feinberg | 2014-11-02 18:45:16 -0800

Don't colour randart jewellery lightblue (wheals)
Since that's the colour of un-id'd jewels!

--------------------------------------------------------------------------------
436a348397 | Nicholas Feinberg | 2014-11-02 18:45:13 -0800

Remove item colour state
Calculate it as-needed.

Divine weapon brands & weird corpses (with BLACK genus colour)
have colour stored in props; the rest do not.

"item_colour" is still needed (to initialize item.rnd and a few
other values); to provide a canonical check for whether it was
set, item.rnd's 0 is now reserved. Old items with rnd = 0 will be
re-randomized.

--------------------------------------------------------------------------------
2d59763ed5 | Shmuale Mark | 2014-11-02 19:25:30 -0500

Move Orc/Elf/(Dwarf) to after Lair and its subbranches in ctrl-O (#9115).
Also moves Forest to next to Crypt.

--------------------------------------------------------------------------------
2ab4fd834a | Shmuale Mark | 2014-11-02 19:16:02 -0500

Add two quotes (#9107, #9111).

--------------------------------------------------------------------------------
db8f58af24 | Corin Buchanan-Howland | 2014-11-02 19:12:11 -0500

Increase the value of sacrifices which remove existing muts (rchandra)
If you have a good mutation and get a conflicting bad mutation (e.g.
you have robust and gain frail) and that bad mutation is innate, you
lose all levels of the good mutation and gain the bad mutation.

Thus, Ru gives you an extra 15 piety for each such mutation lost unless
it's a stat boost, in which case and extra 6 piety.

--------------------------------------------------------------------------------
3d79abee0a | Corin Buchanan-Howland | 2014-11-02 19:12:10 -0500

Slightly adjust caustic bee spawn rates
Make it less likely for them to spawn in D and also change their
Depths distribution from SEMI to FLAT.

--------------------------------------------------------------------------------
0c1c2bc0de | Nicholas Feinberg | 2014-11-02 11:42:35 -0800

Improve (?) deck rarity code

--------------------------------------------------------------------------------
ce3785945c | Steve Melenchuk | 2014-11-02 12:34:43 -0700

Update the list of enchantments in debuff_monster() (theTower).
Really, this shouldn't be a hardcoded list...

--------------------------------------------------------------------------------
b56407d302 | Steve Melenchuk | 2014-11-02 12:34:43 -0700

Fix compilation.
PPPFFF

--------------------------------------------------------------------------------
b181cdffc0 | Nicholas Feinberg | 2014-11-02 11:18:22 -0800

Adjust unknown deck code
Use MISC_DECK_UNKNOWN instead of NUM_MISCELLANEOUS (same value,
but doesn't need explanatory comments in every place it's used);
fufill an ancient TODO asking for warning messages to be added.

--------------------------------------------------------------------------------
8b7dbe513c | Nicholas Feinberg | 2014-11-02 11:02:32 -0800

Fix Mennas's cast messages (potatolizard, Kvaak)
He can't mumble!!!!!

--------------------------------------------------------------------------------
39f89ddc2c | Corin Buchanan-Howland | 2014-11-02 13:54:17 -0500

Don't offer Summoning in Sac Arcana if you Sac'd Love [potatolizard]

--------------------------------------------------------------------------------
d76134ad4e | Nicholas Feinberg | 2014-11-02 08:59:38 -0800

Hopefully fix miscast crashes (wheals, theTower)
When applying enchantments to dead monsters.

--------------------------------------------------------------------------------
0c7e8e1c1d | Steve Melenchuk | 2014-11-02 09:21:06 -0700

Up death scarab melee damage; make side effects trigger on no damage.
From 20 base damage to 30 base damage (like guardian mummies and
ushabti).

Because they're apparently still not as threatening as I want them to
be, and now that we have a Depths swarm that outdamages them...

--------------------------------------------------------------------------------
f7beed7a68 | reaverb | 2014-11-01 21:22:43 -0400

Reduce the numbers of derived undead in late D
Zombies and skeletons were rarely relevant post-Lair anyway.

--------------------------------------------------------------------------------
6b39ce7e4c | gammafunk | 2014-11-01 19:09:57 -0500

Tweak very ugly thing bands and Vaults placement
Previously ugly thing bands had a chance of getting very ugly things
in their band based on depth, and very ugly things used the same band
definition. This commit moves very ugly thing bands to their own data
and uses that old behavior. The ordinary ugly thing band now no longer
sometimes gets very ugly things, since the latter is far stronger than
the band leader.

I also tweak the placement of very ugly things in Vaults. They show up
similarly to how they did before on V:1-4, but don't nearly vanish on
V:5. The player now sees two very ugly things on average on V:5.

--------------------------------------------------------------------------------
d14730d6d4 | gammafunk | 2014-11-01 18:16:04 -0500

Show iteration progress for objstat and mapstat

--------------------------------------------------------------------------------
f831935ec7 | gammafunk | 2014-11-01 18:15:57 -0500

Fix monster tallying for objstat

--------------------------------------------------------------------------------
d415b732b8 | Shayne Halvorson | 2014-11-01 17:44:36 -0500

Fix monsters casting freeze at other monsters.
It used the attacker's cold resistance instead of the defender's.

--------------------------------------------------------------------------------
9dedd774a5 | Steve Melenchuk | 2014-11-01 09:58:39 -0600

Buff the rod of shadows.
Add 5 to the level of the selection (like Yred zombies); when the
absdepth of this crosses over into Depths it can start picking Depths
monsters as well.

--------------------------------------------------------------------------------
8a7951d989 | Neil Moore | 2014-11-01 11:56:49 -0400

Add phantom mirrors to the \ screen.

--------------------------------------------------------------------------------
08476c7d08 | Steve Melenchuk | 2014-11-01 09:27:35 -0600

Use is_stackable_item to check displaying quantity in tiles (alefury).
Both removes a bit of code duplication and lets phantom mirrors show
that they can stack properly.

--------------------------------------------------------------------------------
ca66ad863d | reaverb | 2014-11-01 10:44:22 -0400

Refactor sword brand probabilities

--------------------------------------------------------------------------------
18e2b26455 | reaverb | 2014-11-01 09:14:33 -0400

Fix caustic bees getting bands of flying skulls (#9116)

--------------------------------------------------------------------------------
f5591c9514 | Steve Melenchuk | 2014-10-31 22:52:22 -0600

De-awkwardise the Phantom Mirror clarification.

--------------------------------------------------------------------------------
d46c12b067 | Nicholas Feinberg | 2014-10-31 21:49:01 -0700

Add an awkwardly worded Phantom Mirror clarification

--------------------------------------------------------------------------------
02ab389f6f | Steve Melenchuk | 2014-10-31 22:26:19 -0600

Let mirrored Boris say his piece on unsummon.

--------------------------------------------------------------------------------
fd8a97f9ad | Steve Melenchuk | 2014-10-31 22:05:54 -0600

Hastily fix an incorrectly applied patch.
oops

--------------------------------------------------------------------------------
6619795362 | Steve Melenchuk | 2014-10-31 22:04:10 -0600

Adjust phantom mirror evokable's dependence on target MR.
In particular, it's guaranteed to succeed, but the duration falls off
with target MR.

Yes, this succeeds against MAG_IMMUNE targets. This may need to change.

--------------------------------------------------------------------------------
a98cc1fbff | theTower | 2014-10-31 22:04:09 -0600

Recolour draining clouds to not overlap with their nearby kin (simmarine)
Help, why does this produce a green/magenta/red colour instead of a magenta/red

--------------------------------------------------------------------------------
07be08fc69 | reaverb | 2014-11-01 00:01:29 -0400

Add glass to nicolae_straight_to_the_point (nicolae-)

--------------------------------------------------------------------------------
83d1d28874 | Steve Melenchuk | 2014-10-31 21:03:46 -0600

Evokable: the phantom mirror.
Single-use and stackable; it checks your evocation power against the
target's MR to create a clone of the target whose duration also varies
with evocation power.

Has a really preliminary tile; tt could use detailing from someone with
more artistic sense than I, or even a completely new tile.

--------------------------------------------------------------------------------
c8677decdb | John McCartney | 2014-10-31 19:55:08 -0700

New flayed ghost tile, happy Halloween

--------------------------------------------------------------------------------
2abbbed8cc | Steve Melenchuk | 2014-10-31 20:38:02 -0600

Disallow gaze attacks against invisible foes (#9114).
This logic got lost in turning these into spells instead of abilities.

--------------------------------------------------------------------------------
86d98ca5d4 | Nicholas Feinberg | 2014-10-31 19:29:17 -0700

Don't print doubleghost messages for no ghosts
Irrelevant now, but next halloween, oh boy...!

--------------------------------------------------------------------------------
a19dec98f3 | Nicholas Feinberg | 2014-10-31 19:28:20 -0700

Actually tweak Irradiate
to the numbers I described in the previous commit

"oops"

--------------------------------------------------------------------------------
842f547a2f | Nicholas Feinberg | 2014-10-31 18:34:50 -0700

Tweak Irradiate
Increase base damage & decrease power scaling; about 10% more
damage at 50 power (just under two Fireballs worth of damage),
and about 10% less damage at 100 power. This is intended to make
it more appealing for transmuters, who are generally going to have
lower spellpower.

Also, make the malmutation guaranteed, rather than based on a
coinflip; the coinflip predates changes to monster malmutation,
and isn't needed now.

--------------------------------------------------------------------------------
ad67e7ff25 | Corin Buchanan-Howland | 2014-10-31 19:34:11 -0400

Rename caustic wasps again, this time to caustic bees
Also, lower the MR to 80, and reduce the odds of them spawning anywhere
in dungeon, and prevent a band from ever spawning in Dungeon.

They're less likely to spawn in Dungeon than storm dragons, tengu
reavers, deep elf annihilators, and war gargoyles.

--------------------------------------------------------------------------------
ba213e833c | reaverb | 2014-10-31 18:57:40 -0400

Add glass to hive_lemuel
This lets people who haven't read the .des files know they should dig.

--------------------------------------------------------------------------------
47866190a1 | reaverb | 2014-10-31 16:58:04 -0400

Remove caustic wasps from Zot (Lasty)
Having the same monster in consecutive branches is odd, particularly
when other monsters in Zot are so distinct.

--------------------------------------------------------------------------------
4fe42985a6 | reaverb | 2014-10-31 13:39:44 -0400

Remove "display_char = space: " from *glyphs.txt files
It caused problems with util/checkwhite and probably did nothing the
default mapping for space is ' '

--------------------------------------------------------------------------------
af01991e07 | Steve Melenchuk | 2014-10-31 10:31:50 -0600

Remove traps from a lair vault (wheals).
These weren't in any of the vaults that were merged to form this vault,
so I have no idea why they're there now.

--------------------------------------------------------------------------------
48814d8351 | reaverb | 2014-10-31 12:15:45 -0400

Delete less ghosts on halloween (PleasingFungus)

--------------------------------------------------------------------------------
73ef6feb54 | reaverb | 2014-10-31 12:14:04 -0400

Make dagger brand probabilities add to exactly 100 (Yermak)

--------------------------------------------------------------------------------
d724b6cfe1 | reaverb | 2014-10-31 12:05:56 -0400

Fix compilation

--------------------------------------------------------------------------------
621034392d | reaverb | 2014-10-31 12:04:26 -0400

Refactor axe brand probabilities
As a minor simplification, hand axes can now have draining and holy
wrath brands like other axes.

--------------------------------------------------------------------------------
8914f2a845 | reaverb | 2014-10-31 09:28:55 -0400

Refactor short sword brand probability
Possibly the dagger brand probabilities should be combined with other
short sword probabilities because they're pretty close.

--------------------------------------------------------------------------------
9575c7cca4 | reaverb | 2014-10-30 21:39:37 -0400

Fix strlcpy redefinition warnings (stringutil.h)

--------------------------------------------------------------------------------
c0f96a03ff | reaverb | 2014-10-30 20:59:08 -0400

Remove a lua condition involving the Forest

--------------------------------------------------------------------------------
dc86bd0d73 | Corin Buchanan-Howland | 2014-10-30 20:52:32 -0400

Fix another warning

--------------------------------------------------------------------------------
4b8e1e670f | Corin Buchanan-Howland | 2014-10-30 20:52:32 -0400

Improve caustic wasp save compatibility

--------------------------------------------------------------------------------
fb9a2d6889 | Jesse Luehrs | 2014-10-30 20:51:29 -0400

restore another header

--------------------------------------------------------------------------------
757c54d5c9 | Jesse Luehrs | 2014-10-30 20:36:30 -0400

restore another header

--------------------------------------------------------------------------------
9362b849c4 | Jesse Luehrs | 2014-10-30 20:30:59 -0400

syscalls.h should also have not been removed

--------------------------------------------------------------------------------
798d4aeb79 | Corin Buchanan-Howland | 2014-10-30 20:25:13 -0400

Color caustic wasps in tiles.

--------------------------------------------------------------------------------
4ff1146e73 | Corin Buchanan-Howland | 2014-10-30 20:13:03 -0400

Add caustic wasps
Caustic wasps are intended to add a top-tier fast, pack threat to
depths analagous to killer bees in early Dungeon. In place of stacking
poison, they stack corrosion via acid.

The goal is to create in Depths the sorts of interesting situations
killer bees create in Dungeon, and also to provide another type of
top-tier threat in Depths.

Tile is a placeholder.

--------------------------------------------------------------------------------
269a7d5dca | Neil Moore | 2014-10-30 16:28:24 -0400

Add sacrifice-data.h to the MSVC project.

--------------------------------------------------------------------------------
80a963b32c | Jesse Luehrs | 2014-10-30 16:17:13 -0400

remove some unnecessary header inclusions

--------------------------------------------------------------------------------
3284e4bcee | Jesse Luehrs | 2014-10-30 16:17:12 -0400

script to remove unused headers

--------------------------------------------------------------------------------
7507efdad2 | Jesse Luehrs | 2014-10-30 16:17:12 -0400

clean up header inclusions

--------------------------------------------------------------------------------
20418ea291 | Jesse Luehrs | 2014-10-30 16:17:12 -0400

skills2.cc is the dumbest thing

--------------------------------------------------------------------------------
5c352fd514 | Shmuale Mark | 2014-10-30 10:03:15 -0400

Fix compilation.
And a warning.

--------------------------------------------------------------------------------
b05332bf58 | Shmuale Mark | 2014-10-30 09:43:23 -0400

Remove Peek at Two.
In the past 4 new Nemelex wins, it was used... 4 times. This isn't
surprising; Nemelex already gives enough ways to make a deck more
predictable and less dangerous, and one that prevents you from using the
more powerful ones is only going to be useful if it has a vastly greater
utility.

The fact that it was instant was quite possibly not noticed, and it does
lead to an interesting idea: in an emergency, peeking so that you know
what this deck will get you into. But Triple Draw is generally better for
that, unless you have 3 decks to spare to peek at in succession (and at
that point the piety cost would, I assume, exceed Triple Draw's).

More importantly, the other abilities are _fun_, and preventing you from
using them just feels like it's spoiling that. Deal Four, for example,
wasn't used much more than Peek at Two, but it's an iconic ability that
feels different every time.

--------------------------------------------------------------------------------
58f2b2a93b | Shmuale Mark | 2014-10-30 09:35:27 -0400

Remove Draw One.
Since it's now useless.

--------------------------------------------------------------------------------
a464a13d86 | Shmuale Mark | 2014-10-30 09:21:07 -0400

Make decks evokable from inventory.
<LinleyH> dpeg: do you still have to wield cards to use them?
<LinleyH> dpeg: that was a mistake.

Needing to wield made decks quite a bit less attractive for non-Nem
characters, and for Nem ones, made drawing a card 3 keypresses instead
of 2. There was the MP cost, but in practice it mattered very little.

--------------------------------------------------------------------------------
ba53505872 | Shmuale Mark | 2014-10-30 08:35:28 -0400

Remove some #ifdef WIZARDs.
WIZARD is set to true by default; perhaps these could have been changed
to be if (wizard), but are we _really_ concerned about an info leak?
Especially if it makes bug reports less clear?

--------------------------------------------------------------------------------
42af75685f | Shmuale Mark | 2014-10-30 08:33:09 -0400

Simplify.

--------------------------------------------------------------------------------
e959abd843 | Shmuale Mark | 2014-10-30 08:28:06 -0400

Remove the Metamorphosis card (hangedman).
"Metamorphosis is bad for most characters due to unarmed focus. At the
very least, most characters really don't appreciate spider form or blade
hands when drawing randomly. You can cancel it, which means you've used
up two turns and a card for nothing."

There are some ideas for improvement, but for now, no point in torturing
players (especially ones who don't realise the quite hidden fact that it
was cancellable).

--------------------------------------------------------------------------------
ae8a738061 | Shmuale Mark | 2014-10-30 08:20:33 -0400

Remove Dowsing from the deck of battle (hangedman).

--------------------------------------------------------------------------------
740321d613 | Nicholas Feinberg | 2014-10-29 22:14:26 -0700

Fix skeletal frog prince ribbit (mattybee)
With some ugly hacks. :(

Better solutions welcomed

--------------------------------------------------------------------------------
5881244e91 | Nicholas Feinberg | 2014-10-29 21:54:14 -0700

Don't place monsters on top of the player (9019)

--------------------------------------------------------------------------------
e6e861823a | Steve Melenchuk | 2014-10-29 22:43:58 -0600

Restore summon poofs.
Oops.

--------------------------------------------------------------------------------
85fff257c2 | John McCartney | 2014-10-29 21:36:35 -0700

Move old cutlass tiles to UNUSED.

--------------------------------------------------------------------------------
b2193eb682 | John McCartney | 2014-10-29 21:27:26 -0700

New rapier tiles.

--------------------------------------------------------------------------------
a8edbca91b | Nicholas Feinberg | 2014-10-29 21:23:48 -0700

Unbrace.

--------------------------------------------------------------------------------
3a4182ac0d | Neil Moore | 2014-10-29 22:22:15 -0400

Fix another warning.

--------------------------------------------------------------------------------
a757122794 | Nicholas Feinberg | 2014-10-29 19:20:34 -0700

Add a spooky surprise!
Tile is credit (Bloax). Grunt & gammafunk also helped!

--------------------------------------------------------------------------------
bc78bdd2df | Steve Melenchuk | 2014-10-29 19:57:58 -0600

Further de-warning.
<PleasingFungus> Grunt: remove it yourself!!!

--------------------------------------------------------------------------------
e781c3414c | Nicholas Feinberg | 2014-10-29 18:50:50 -0700

Cleanup (Grunt, |amethyst)
Unused variable, variable with shadowed name, weird field sizes.

--------------------------------------------------------------------------------
5dbe7b5730 | Steve Melenchuk | 2014-10-29 19:43:10 -0600

A pile of vaults from various authors (#8862, #9036, #9101).
Changes:

cheibrodos_lair_reptile_den: move the black mambas to the 2 glyph.

cheibrodos_magma_flow: lava worms no longer exist; replaced with lava
snakes.

cheibrodos_lair_caveside_slide: nuked the SHUFFLE that broke
connectivity, adjusted the SUBST: to match, and removed the now-unused -
glyph.

cheibrodos_spurs: removed the extra 0 placement; having the enemies
place in bands probably makes this sufficiently threatening.

kennysheep_kobold_grotto: killed the neutral halflings (they're corpses
now).

kennysheep_(vaults_)gozag_temple: added a uniq_ tag so that only one
appears per game; halved the greed of the shops, but limit the number
of items in each shop to three; decoloured the glass; coloured the
statues; removed entry-by-stairs (it is a gimmick that has been overdone
and is aggravating).

nicolae_ru_great_annihilating_truth: remove the monster from the altar
and shuffle it into one of the four external monster slots instead.

nicolae_ru_awakened_eye: per author, change the iris to shallow water
to distinguish it from the outer eye.

--------------------------------------------------------------------------------
db2a1f9680 | Nicholas Feinberg | 2014-10-29 18:27:47 -0700

Unionize
Change a number of item fields to use unions, in the interests of
readability/sanity. All uses of plus2 are enumerated; plus and
special are only partially enumerated. Someone should probably
do a second pass, at some point.

Also removes a few archaic uses of plus2, e.g. its use in
randbook generation, which had been obsolete since 86acd0ce5263,
and adds a function for checking if a wand is known to be empty.
(Sorry, that one should be in a separate commit - too hard to
separate out now...)

--------------------------------------------------------------------------------
ad0dc3c4b8 | Nicholas Feinberg | 2014-10-29 18:05:56 -0700

Make Norris follow the one true god
GOD_NAMELESS.

Very silly for a 'death cultist' to be casting spells like a
wizard!

--------------------------------------------------------------------------------
a121557711 | Nicholas Feinberg | 2014-10-29 17:58:11 -0700

Remove some Minor Healing
Norris's: he's a death cultist, not a healer!

Wizards': It fit their theme back when 'holy' was a spellschool,
but it ain't now, and it isn't particularly useful for them now.

Dowan's. 2d1.

--------------------------------------------------------------------------------
379d536075 | Steve Melenchuk | 2014-10-29 16:40:36 -0600

Make Lajatang of Order read {silver, rMut} again (ChrisOelmueller).
The comma disappeared with 8677afe9, but it should still be there to
reflect the pseudobrand (cf. Hellfire).

--------------------------------------------------------------------------------
8593b52636 | David Ploog | 2014-10-29 21:31:58 +0100

Restrict useless:darkgrey default to potions, scrolls, jewellery.
It was confusing on missiles (a javelin thrown at you should differ from a large
rock, even if you cannot use either) and misleading for armours when it comes to
mutations (e.g. claws 3 rendering gloves "useless", not not permanently so.)

--------------------------------------------------------------------------------
005fe46732 | Jesse Luehrs | 2014-10-29 14:21:31 -0400

fix bad item crashes (PleasingFungus)

--------------------------------------------------------------------------------
b671ef83a8 | Jesse Luehrs | 2014-10-29 12:22:39 -0400

apparently this is no longer dependent on char_set (wheals)

--------------------------------------------------------------------------------
d44e868ee4 | Jesse Luehrs | 2014-10-29 12:16:57 -0400

remove dec, ibm, and old_unicode as csets
if you really want them, the display_char settings for them have been
moved to settings/dec_glyphs.txt, settings/ibm_glyphs.txt, and
settings/old_unicode_glyphs.txt.

--------------------------------------------------------------------------------
3df42fe013 | Jesse Luehrs | 2014-10-29 12:16:57 -0400

update options_guide.txt

--------------------------------------------------------------------------------
454bb91990 | Nicholas Feinberg | 2014-10-29 08:32:34 -0700

Make some dbg-scan bad item checks arguably less bad

--------------------------------------------------------------------------------
fe1920c2ec | Nicholas Feinberg | 2014-10-29 08:32:34 -0700

Flatten & pull out some deck name code
name_aux is a small abomination.

--------------------------------------------------------------------------------
8f3bc8f6e4 | Jesse Luehrs | 2014-10-29 11:28:10 -0400

the singular of "staves" is "staff"

--------------------------------------------------------------------------------
c8ebc82e69 | Jesse Luehrs | 2014-10-29 11:23:24 -0400

also differentiate staves and rods

--------------------------------------------------------------------------------
af7d7242b0 | Jesse Luehrs | 2014-10-29 11:12:20 -0400

change the default corpse and skeleton item glyph

--------------------------------------------------------------------------------
3438503581 | John McCartney | 2014-10-28 21:33:40 -0700

Updated Halls of the Hellbinder sigil tiles, larger wolf spider tile.

--------------------------------------------------------------------------------
32a28a946a | Corin Buchanan-Howland | 2014-10-28 22:28:39 -0400

Fix a harmless warning that a variable could be unset.

--------------------------------------------------------------------------------
11d9a82a14 | Corin Buchanan-Howland | 2014-10-28 22:25:29 -0400

Make wizmode super-heal reset your corrosion counter properly.

--------------------------------------------------------------------------------
953395bfd9 | Nicholas Feinberg | 2014-10-28 18:53:27 -0700

Add a few new Yiufisms (theTower)
An affectionate homage to the Ulysses of the Internet.

--------------------------------------------------------------------------------
cfb5179098 | Nicholas Feinberg | 2014-10-28 18:42:22 -0700

Make AF_CORRODE corrode on 0-damage hits
To make it more effective against heavily-armoured characters than
evasive characters, basically.

Also reduce damage, now that it no longer needs to be high to
punch through AC and proc the stacks.

--------------------------------------------------------------------------------
5811f8f78f | Nicholas Feinberg | 2014-10-28 18:41:42 -0700

Give fair warning for chopping up Xtahua (9100)
Also, Gastronok, and any other weird intelligent monsters of an
unintelligent class.

--------------------------------------------------------------------------------
8143ef1992 | Nicholas Feinberg | 2014-10-28 17:35:34 -0700

Don't let acid spit pierce (magicpoints, wheals)
This means that it's now blockable by shields (& doesn't cause
Corr when blocked), which is probably wrong, but less wrong than
the previous situation.

--------------------------------------------------------------------------------
38bf6e8f03 | Neil Moore | 2014-10-28 18:09:30 -0400

Improve malmutate changelog description (alefury)

--------------------------------------------------------------------------------
c45b95aca9 | David Ploog | 2014-10-28 18:49:50 +0100

More colourful defaults for console glyphs, mostly potions and scrolls.
This is in order to make use of colours instead of showing all scrolls in white
and all potions in their natural colour. This uses a new defaults file
 glyph_colours.txt
and it sets all potions and scrolls with properties among
 good_items, emergency_items, dangerous_items, forbidden_items
to their inventory colours. Moreover, it affects basically items via
 useless -> darkgrey
 unidentified -> lightblue

--------------------------------------------------------------------------------
eaa80b051a | Neil Moore | 2014-10-28 11:04:29 -0400

No longer list coagulated blood in \ (#9099)

--------------------------------------------------------------------------------
7f7d5dfda2 | Nicholas Feinberg | 2014-10-28 07:48:18 -0700

Changelog fix (Grunt)

--------------------------------------------------------------------------------
5157612ac0 | Neil Moore | 2014-10-28 08:22:49 -0400

Fix changelog.

--------------------------------------------------------------------------------
bf7a8d7435 | Nicholas Feinberg | 2014-10-27 21:05:25 -0700

Changelog through 0.16-a0-1701-gf5abbb0

--------------------------------------------------------------------------------
f5abbb0608 | Steve Melenchuk | 2014-10-27 21:12:09 -0600

Don't trigger some monster death effects on KILL_DISMISSED (#9001).
In particular, this was triggering bennu revivification in ziggurat
code, taking up spots and causing mgrd to be set incorrectly, leading to
crashes.

--------------------------------------------------------------------------------
71fd24e5f0 | Neil Moore | 2014-10-27 22:37:37 -0400

Formatting fixes.
And change one very confusing nested if to use &&

--------------------------------------------------------------------------------
673cbb0801 | Neil Moore | 2014-10-27 22:24:31 -0400

Make a few more Ru functions static.

--------------------------------------------------------------------------------
da2724f096 | Neil Moore | 2014-10-27 22:24:25 -0400

Make struct sacrifice_def private, avoid copying.

--------------------------------------------------------------------------------
a907bf5b1e | Neil Moore | 2014-10-27 22:12:54 -0400

Don't use false for null pointers.

--------------------------------------------------------------------------------
07ffd31516 | Steve Melenchuk | 2014-10-27 18:33:39 -0600

Use functions to specify the Tomb monster sets.
As opposed to writing them out in full for every subvault.

Notably this means the original Tomb subvaults benefit from the variable
meaning of the glyphs which originated in my other subvaults.

The main Tomb:1 vault also gets some glyph cleanup, seeing as it doesn't
place plain mummies or mummy priests directly.

--------------------------------------------------------------------------------
8ede583883 | Steve Melenchuk | 2014-10-27 18:00:22 -0600

A Tomb:2 ambush subvault and two Tomb:3 subvaults.
The latter are deliberately a bit unconventional, to try to take
advantage of the possible renewed interest in Tomb on account of the new
enemies. Let's see how they play.

--------------------------------------------------------------------------------
fd4925d704 | Steve Melenchuk | 2014-10-27 16:47:33 -0600

A much deadlier death scarab tile (Bloax).

--------------------------------------------------------------------------------
40b34e3653 | Corin Buchanan-Howland | 2014-10-27 16:28:36 -0400

Merge branch 'refactor_sacrifices'

--------------------------------------------------------------------------------
a0504c57e0 | Neil Moore | 2014-10-27 15:19:35 -0400

Don't crash when reflecting a wellspring's beam.
More generally, if we would set a monster's foe to YOU_FAULTLESS, set it to
MHITYOU instead; and fix up saved monsters with bad foes.  See for example:

  http://dobrazupa.org/morgue/asanbosam/crash-asanbosam-20141027-155317.txt

--------------------------------------------------------------------------------
d1d74d7698 | Corin Buchanan-Howland | 2014-10-27 11:34:53 -0400

Refactor Ru sacrifice code

--------------------------------------------------------------------------------
15df99b183 | Neil Moore | 2014-10-27 09:43:06 -0400

Don't crash on nonexistent fearmongers/beholders (#9093)

--------------------------------------------------------------------------------
913b5c9ed8 | Neil Moore | 2014-10-27 09:11:22 -0400

Make all food take either 1 turn or 3 to eat (elliptic)
Rations and royal jellies now take the same time as chunks; and pizza and
beef jerky are buffed to be be edible in a single turn (have you seen
a college student eat?).

--------------------------------------------------------------------------------
9fdda32369 | Neil Moore | 2014-10-27 09:03:52 -0400

Remove an obsolete comment.
It wasn't even true when there were foods with special effects: restab
royal jellies took two turns to eat.

--------------------------------------------------------------------------------
1ee98a2022 | Neil Moore | 2014-10-27 07:50:27 -0400

Describe turn cost of all foods.
Distinguish among 1, 2, and more than 2.

--------------------------------------------------------------------------------
94d8484f84 | Neil Moore | 2014-10-26 21:51:31 -0400

Simplify.

--------------------------------------------------------------------------------
49824bcfc4 | gammafunk | 2014-10-26 20:32:19 -0500

Further clean up dereferences of the class instance in methods

--------------------------------------------------------------------------------
f56a1f8731 | Shmuale Mark | 2014-10-26 21:18:52 -0400

Modernise bot monster set (theTower, magicpoints).

--------------------------------------------------------------------------------
1c365dec02 | gammafunk | 2014-10-26 20:07:03 -0500

Don't dereference the class instance within its methods

--------------------------------------------------------------------------------
67cbec2627 | gammafunk | 2014-10-26 19:21:25 -0500

Unbrace

--------------------------------------------------------------------------------
8116b199b3 | Shmuale Mark | 2014-10-26 18:54:21 -0400

Consider the obsidian axe less harmful.

--------------------------------------------------------------------------------
82b6226d8d | Shmuale Mark | 2014-10-26 18:54:21 -0400

Revert "Abyss bot: don't override the monster set."
This was done during the period that Abyss had guest spawns; now that
it only has its own set, drawing on outside sources is useful for more
potential for crashes!

This reverts commit 79d8b45db13c651665f0c9cc7f73dc8e1cb54340.

--------------------------------------------------------------------------------
83592dce63 | Shmuale Mark | 2014-10-26 18:54:21 -0400

Get rid of a duplicate method.
Self-banishment by beam (which may not be possible?) will now say
(you) instead of (self), which looks just as good to me.

--------------------------------------------------------------------------------
a2d225bc63 | Shmuale Mark | 2014-10-26 18:54:21 -0400

Store mesmerisers/fearmongers as mids.
There seem to be plenty of bugs with stale monsters and these (see

I tried to get save compat to work here, but I couldn't figure it out,
so loading past this minor tag will simply break any fear or beholding
you have.

--------------------------------------------------------------------------------
5bc1453141 | Shmuale Mark | 2014-10-26 18:54:21 -0400

Make beams store a mid_t rather than a mindex for source/reflector.
Beam often kill monsters in the middle of operation, or even create
new ones; thus a mid_t is useful to be sure everything is preserved
properly.

This kills off a method which a comment said was already suspicious-
looking; it was only used for behaviour_events, it seems, and if those
look wrong in testing then they can be fixed independently.

--------------------------------------------------------------------------------
1e780dc117 | Shmuale Mark | 2014-10-26 18:54:20 -0400

Fix a mistake in the abyss bot rcfile, move it to Abyss:5.

--------------------------------------------------------------------------------
c91289b612 | Corin Buchanan-Howland | 2014-10-26 17:51:38 -0400

add a vital 'not'

--------------------------------------------------------------------------------
1419682746 | Steve Melenchuk | 2014-10-26 15:30:06 -0600

Whitespace fixes.

--------------------------------------------------------------------------------
b3031d7549 | Steve Melenchuk | 2014-10-26 15:30:06 -0600

Move death scarabs to 'B'.
Magenta B, where they were in the original design spec.

'B' is for bikeshedding...

--------------------------------------------------------------------------------
2baf65d7c4 | Corin Buchanan-Howland | 2014-10-26 17:28:10 -0400

When 'Ashenzari keeps your vision clear' it protects you from blurry vision.
For consistency. Also, unites the previously disparate odds of blurry
vision preventing reading scrolls versus reading Tome of Destruction.
A small buff to Tome of Destruction under blurry vision. :p

--------------------------------------------------------------------------------
e06adc59bc | Steve Melenchuk | 2014-10-26 15:08:12 -0600

Hastily sneak an item image in that was missed in a previous commit.

--------------------------------------------------------------------------------
160c85d52e | Steve Melenchuk | 2014-10-26 14:53:54 -0600

Merge branch 'tombfodder'
The monster designs are at a point where I feel further tinkering can be
done in trunk. Thus, time to torment the players and figure out what
needs tinkering.

--------------------------------------------------------------------------------
5866c36a21 | Steve Melenchuk | 2014-10-26 13:46:14 -0600

Buff scarab bites further by adding a negative vulnerability effect.
A scarab bite now has the following:

1) 50% chance of inflicting rN- if the target does not already have it;
2) one of drain life or drain speed;
3) vampiricism.

rN- increases susceptibility to draining effects just as with other
negative resistances. Notably, a target with rN- can be killed by
torment.

--------------------------------------------------------------------------------
c7fcf03a64 | Steve Melenchuk | 2014-10-26 12:56:38 -0600

Brighten the death scarab tile a bit.
The legs still blend into the floor somewhat, but it is more visible in
general.

--------------------------------------------------------------------------------
cee5fc8bbd | Nicholas Feinberg | 2014-10-26 11:46:58 -0700

Fix @ delay display for sling bullets (9086)

--------------------------------------------------------------------------------
5fb490159c | Steve Melenchuk | 2014-10-26 09:34:37 -0600

Make anubis guards' quarterstaves visually distinctive in tiles.
As far as I can tell, the equip tile for this isn't actually in use
anywhere else, and it makes for a good visual explanation of why they're
wielding staves to begin with.

--------------------------------------------------------------------------------
56257b696f | Shmuale Mark | 2014-10-26 06:20:53 -0400

Fixup some debug messages.

--------------------------------------------------------------------------------
7021d05c1e | ontoclasm | 2014-10-26 04:46:32 -0500

Fix luminosity of pebble floor tiles
I just got it working; the actual lum. values can be changed later.

--------------------------------------------------------------------------------
e9d5c5e0fa | John McCartney | 2014-10-26 01:50:45 -0700

dc-floor.txt mostly caught up to new floor tiles.
Also one floor tile that I mixed up.
The only thing left to fix is to get %lum working for the pebble tiles.

--------------------------------------------------------------------------------
c82da73b0d | Neil Moore | 2014-10-26 04:16:35 -0400

Cull idempotent misc items from shopping lists (#8873)

--------------------------------------------------------------------------------
ba51bde10e | John McCartney | 2014-10-25 22:28:42 -0700

Re-tuned brightness for many floor tiles
The same dynamic from light to dark has been preserved in every tile, but 
shifted downward in value. This should make several areas with noisy floors 
less aggravating, and will improve visibility of most other tiles in the game.

--------------------------------------------------------------------------------
02048ff92f | Steve Melenchuk | 2014-10-25 23:21:52 -0600

Increase probably of death scarab bites having side effects.
In particular, the draining effects should happen more consistently.

--------------------------------------------------------------------------------
cf82e137c1 | Neil Moore | 2014-10-26 00:35:08 -0400

Add a simple vault.

--------------------------------------------------------------------------------
5170a4e66f | Neil Moore | 2014-10-26 00:35:08 -0400

Don't let nrook_mini_backslash disconnect.
I considered using @ on both sides instead of transparent, as that is
self-documenting; but that resulted in more long connecting passages,
in the cases where the current version would simply veto.

--------------------------------------------------------------------------------
3a44a7cc45 | Neil Moore | 2014-10-25 23:57:18 -0400

Fix inverted view.is_safe_square Qazlal logic (#9078)
Not only would autofight avoid your own clouds (as described in the bug
report), it would *also* attempt to walk through enemy clouds, resulting
in "Really walk into...?" prompts.

--------------------------------------------------------------------------------
923ff1e69d | Brandon Kime | 2014-10-25 23:46:53 -0400

Add the SPLFLAG_CHAOTIC flag to Irradiate.
Think this one is pretty safe since it mutates everybody. In practice this 
basically makes Zin hate it.

--------------------------------------------------------------------------------
10cfdf05b9 | Neil Moore | 2014-10-25 23:39:01 -0400

Fix up some compat code.
In case it comes back, and to keep it from stomping a global in the
meantime.

--------------------------------------------------------------------------------
5282697a64 | Neil Moore | 2014-10-25 23:31:02 -0400

Make a comment more greppable.

--------------------------------------------------------------------------------
c7c69ba6b9 | Neil Moore | 2014-10-25 23:17:04 -0400

Remove a too-cute-for-its-own-good altar vault (#8818)
Since monsters won't step onto teleporters, the player could stay safely
inside while picking off monsters through the arrow slits.

--------------------------------------------------------------------------------
227cae9b68 | Neil Moore | 2014-10-25 23:15:44 -0400

Remove Sludge Elves harder.

--------------------------------------------------------------------------------
d9d1f7cacd | Neil Moore | 2014-10-25 22:09:06 -0400

Revert "Make strength useless for melee."
This reverts commit dff0bb23df39658d1a48cee4b30a2aa88fadc0dc.

--------------------------------------------------------------------------------
dff0bb23df | Neil Moore | 2014-10-25 22:04:05 -0400

Make strength useless for melee.

--------------------------------------------------------------------------------
c12cd595ef | Neil Moore | 2014-10-25 21:25:10 -0400

Don't let real mids bump into MID_ANON_FRIEND.
Overly paranoid I'm sure.

--------------------------------------------------------------------------------
60c662e81e | Neil Moore | 2014-10-25 21:25:07 -0400

Document mid_t

--------------------------------------------------------------------------------
804694b946 | Shmuale Mark | 2014-10-25 20:53:30 -0400

Fix a comment.

--------------------------------------------------------------------------------
135c29330e | Neil Moore | 2014-10-25 20:50:46 -0400

Don't blame spreading clouds on mid 27000 (wheals)
We use NON_ENTITY == 27000 as a fake mindex (ephemeral index into the
monsters array), but it is a perfectly valid mid_t (persistent unique
monster identifier).  Use 0 instead.

--------------------------------------------------------------------------------
a890c98246 | Nicholas Feinberg | 2014-10-25 17:33:33 -0700

Kind of explain parenthetical EV (alefury)
Base (non-sleeping/paralyzed EV), as opposed to current EV.

Hard to communicate well within the limits of the xv ui.

--------------------------------------------------------------------------------
0fd21794c3 | Nicholas Feinberg | 2014-10-25 17:14:12 -0700

Partially re-add sense invisible, as "blinding immunity"
Most of the tactically interesting part of sense invisible,
re-added as a separate flag.

See the comment in describe.cc for some issues.

--------------------------------------------------------------------------------
90d2633089 | reaverb | 2014-10-25 18:14:37 -0400

Remove M_SENSE_INVIS (and into, minmay)
Having two different levels of monsters being "resistant" to
invisibility was odd and didn't add much to the game. In addition,
SENSE_INVIS had a couple minor, spoilery effects such as making
SENSE_INVIS monsters more likely to resist player stealth. All monsters
which formerly had M_SENSE_INVIS now have M_SEE_INVIS.

--------------------------------------------------------------------------------
03c6cb7079 | Nicholas Feinberg | 2014-10-25 11:55:33 -0700

Fix forbidden corpse colouring (rchandra)

--------------------------------------------------------------------------------
ac78d02afa | Nicholas Feinberg | 2014-10-25 11:10:06 -0700

Fixup most (?) escape spells (DrKe)
A huge number of spells were missing 'escape' flags, so they were
used willy-nilly. (Not a big deal for most, but some could have
been very annoying - for example, Ereshkigal's Greater Healing
had lost its flag...)

Quite a lot of these probably shouldn't exist - does Dowan really
need 2d1 minor healing? Really?

Also, clean up a wizard's doubled Teleport Other slot & mark it
as an escape spell, since that seems like when it would make sense
to use it.

--------------------------------------------------------------------------------
3dc8d8eb75 | Nicholas Feinberg | 2014-10-25 10:39:09 -0700

Clarify ration descriptions (elliptic)
Mention The Turn Cost.

Includes the second person; sorry. Someone should probably rewrite
this later.

--------------------------------------------------------------------------------
b1fcb485b2 | Steve Melenchuk | 2014-10-25 10:54:40 -0600

Comment; adjust formatting.

--------------------------------------------------------------------------------
a18231ffa3 | Corin Buchanan-Howland | 2014-10-25 12:48:37 -0400

Create M_SPELL_PROXY flag for monsters that are charm/conjuration spell proxies

--------------------------------------------------------------------------------
c32b685451 | Corin Buchanan-Howland | 2014-10-25 12:16:56 -0400

Make conjured quasi-monsters stop hating you again
This class of monster (ball lightning, spectral weapon, etc) accidentally
started hating players with MUT_NO_LOVE. Fixed it.

--------------------------------------------------------------------------------
789015c1d7 | Corin Buchanan-Howland | 2014-10-25 12:11:15 -0400

Remove deterioration as a possible Ru purity sacrifice
Deterioration is fiddly and frustrating, potentially forcing you to
recheck armour and spellcasting penalties repeatedly, and encouraging
tedious SustAb juggling. Removing this as an offered sacrifice means
players will not be encouraged to put up with that nonsense.

--------------------------------------------------------------------------------
3188242f33 | reaverb | 2014-10-25 12:05:32 -0400

Make fire giant spells _WIZARD instead of _DEMONIC (#9079)
It's a little awkward this results in 3 nearly identical spellsets, but
I don't see better solution.

--------------------------------------------------------------------------------
3dac1c6502 | John McCartney | 2014-10-25 00:24:08 -0700

Lighten draconian base tiles slightly.

--------------------------------------------------------------------------------
020c082db2 | Steve Melenchuk | 2014-10-24 20:24:02 -0600

Redistribute random guardian mummy replacement generation weights, too.
This is a really rough reportioning, but it should work decently.

--------------------------------------------------------------------------------
dd3530ef93 | Steve Melenchuk | 2014-10-24 20:09:32 -0600

Adjust frequencies of replacement of Tomb guardian mummies.
Each vault/subvault now picks one of three replacement sets for the
glyphs formerly corresponding to guardian mummies - one each for
ushabtiu, anubis guards, and death scarabs - and there is code in place
to ensure an even frequency distribution between the three of them on a
per-vault/subvault basis.

--------------------------------------------------------------------------------
2751495add | John McCartney | 2014-10-24 18:34:14 -0700

New purple color scheme for Spider branch.

--------------------------------------------------------------------------------
d942d1d77d | Neil Moore | 2014-10-24 21:04:14 -0400

Spell (#9077)

--------------------------------------------------------------------------------
9e0d35282f | Steve Melenchuk | 2014-10-24 18:21:43 -0600

Increase anubis guard Dispel Undead frequency.
Playtesting on a few devs' part suggests they weren't dispelling enough
previously, meaning they weren't consistently a threat to undead
players.

This doubles the frequency, which may be too much - but better to err on
the side of killing more players, I say.

--------------------------------------------------------------------------------
d86115b1d9 | Steve Melenchuk | 2014-10-24 18:19:48 -0600

Fix Sprint monster definitions (#9070, #9076).
Apparently the spell slot spec doesn't play nice with the strange way
these two sprints were specifying monster specs over multiple lines.

--------------------------------------------------------------------------------
08255afc07 | John McCartney | 2014-10-24 17:13:03 -0700

Small tweaks to recently added Draconian tiles: more hellfire, caller aura, 
annihilator staff, and slight recolorations.

--------------------------------------------------------------------------------
0b0837f0b5 | Shmuale Mark | 2014-10-24 16:45:31 -0400

Unbrace.

--------------------------------------------------------------------------------
9d67fc4860 | theTower | 2014-10-24 16:30:09 -0400

Bracing (PleasingFungus)

--------------------------------------------------------------------------------
caa8d4fddc | theTower | 2014-10-24 16:18:15 -0400

Re-arrange and upgrade bland miscasts effects.
A lot of them were boring before, and there's a variety of effects
that could be added to the more straightforward damage results and
what not. The overall chart of miscasts doesn't make much coherent
sense against one another or the particular danger of the schools
themselves, so trying for a more consistent level of nastiness
within miscasts (to some extent) seems like a good goal. Plus,
the constant use of miscasts effects elsewhere get a little sprucing
up, and a few psychological-damage effects like curses and statrot
have been reduced in the process.

Thanks to DracoOmega, PleasingFungus, and |amethyst for code support,
and thanks to nicolae- for some message lines.

Areas explicitly effected:
 * Xom, Hell effects, Wild Magic cards, Fedhas wrath, Chei wrath,
   Trog wrath, Lugonu wrath, and chaos brand / clouds should all be
   a little more consistently nasty with a higher variety of effects.
   Results like greater demons, heavy contamination, or elemental
   explosions (depending on the source) are still the same, they just
   have more company.
 * Zot traps are mostly unaffected: when their list of effects were
   split off from miscasts, most of the boring miscasts changed here
   weren't carried over. The only change is that in correspondence
   with the same summoning effect, the 1-3 5s are replaced with
   small abominations. It might be nice to update its list, though.
 * Plutonium sword is probably nerfed slightly, since weakness
   isn't as strong as petrify or confuse for monster killing.
   Spellbinder definitely has gotten stronger, though,
   aside from the occasional silence also engulfing the player
   from hexing monsters...
 * Actually casting spells and failing at them (outside of divine
   protection) gain mostly in-combat short-term negative statuses
   that by themselves aren't particularly more lethal.
   The only particularly affected school under this is probably
   Fire, with a level 1 beneficial effect gaining fire vortexes
   and the shifted position in sticky flame / fire vulnerability
   effect meaning more damage from heavy miscasts. Ice is also
   decently endangered by the -potion and frozen additions, while
   Earth might actually care about miscasts with decent ac due
   to petrify.

Changes:
 * The 9-45ish single-target raw / fire / icicle damage effects for level 3
   translocations, fire, and ice miscasts now have dimensional anchor,
   fire vulnerability, and frozen statuses attached, respectively.
 * Transmutations loses the level 2 petrify and confusion effects,
   the former for placement elsewhere and the latter due to the minimal
   flavour connection and overuse of confusion throughout miscasts.
   It does, however, get a level 2 weakness effect (the melee damage
   status, not strength stat drain), and a rare level 1 giant mites
   effect ("Shape-changing energy floods out from your body and enlargens
   the floor mites!")
 * Fire has sticky flame moved from level 3 to level 2 now that
   item destruction isn't much of a concern, and the level 1 miscast
   that produces a smoke cloud now produces one or two fire vortexes.
 * Ice now has the -potion effect applied to the level 2 single target
   cold damage effect.
 * Earth now has a level 3 petrify miscast, replacing the (previously sole)
   level 3 effect of a raw ac-checking explosion 1/4 times.
 * Poison has a level 2 poison vulnerability effect replacing
   the level 2 drain-one-stat-point-unless-rPois effect.
 * Summoning has a level 2 1-3 small abominations effect (replacing
   the 5s effect), and a level 3 1-3 worldbinders effect (replacing
   the solitary small abomination effect).
 * Enchantments miscasts, grouped together even after the charms/hexes
   split, are split here. Earlier miscast effects are still kept,
   but the level 2 berserk effect is a brief and small radius silence
   for hexes, the level 3 paralysis effect is now sleep for hexes,
   and the level 3 nearly-endless inventory cursing effect is now either
   cancellation for charms or MR vulnerability for hexes.
 * A small amount of level 0 harmless miscast messages are adjusted
   to reduce message overlap between schools or with other effects.

TODO:
 * Could use a lot of message re-writes. In particular, I'm not greatly happy
   with most of the messages I'm adding here.
 * Unfathomed crashes block the fire vortex effect from keeping its smoke.
   This and a bunch of other miniscule stuff have some comments left.
 * A lot of the level 1 miscasts are still very bland, and I lack ideas for
   them since obvious thematic effects are usually too strong or gimmicky for
   for common appearances. In particular, charms/hexes/transmutations using
   random uselessness vexes me, and ice / earth have effects that are just
   messages for the meant-to-do-something level 1 miscast tier.
 * Other such bland areas that I think could use more love that I've yet to
   come up with ideas: the bland raw-damage of Conjurations miscasts, the
   uninspired choices for Poison miscasts, and the psychological damage of
   rot and statdrain in Necromancy miscasts.
   (The last one is a mixed bag: while it heavily incidentally lowers some
   of the annoyances in Tomb (and Hells), Tomb has become the only real
   concentrated source of either effect, and killing off statdrain
   as much of a thing feels a bit sad to me. Smarter handling of the
   effect and its sources would be nice...)

--------------------------------------------------------------------------------
3462781cb4 | Shmuale Mark | 2014-10-24 14:56:40 -0400

Remove an unused field in ghost_demon.

--------------------------------------------------------------------------------
717f8fa38d | Neil Moore | 2014-10-24 14:13:09 -0400

Don't give grey drac ghost draining breath.

--------------------------------------------------------------------------------
0d5ecc48cc | Neil Moore | 2014-10-24 14:13:05 -0400

Fix ghost spell selection (Grunt)
Make the chance of getting the spell decrease with increasing fail rate,
with no chance at 50% or worse.  Also, don't reject translatable spells
(Delayed Fireball, Dragon's Call) before translating them.

--------------------------------------------------------------------------------
3ae28a247b | Shayne Halvorson | 2014-10-24 12:52:40 -0500

Show corrosion penalty on the weapon line.
The Corr (-x) status light still remains for weapons that
don't have plusses.

--------------------------------------------------------------------------------
661b2f9b80 | Shmuale Mark | 2014-10-24 12:55:50 -0400

Fix spelling (CacoS).

--------------------------------------------------------------------------------
90b5bbbaeb | Shmuale Mark | 2014-10-24 12:53:22 -0400

Fix compilation harder.

--------------------------------------------------------------------------------
cd73c1a154 | Shmuale Mark | 2014-10-24 12:46:25 -0400

Possibly fix compilation.

--------------------------------------------------------------------------------
b2fc2e3d72 | Shmuale Mark | 2014-10-24 12:40:22 -0400

Improve (ghost) draconian breath messages.
Draconians annihilators shouldn't breathe lightning at you anymore
if they're casting it as a wizard spell, and player ghosts won't throw
negative energy at you.

--------------------------------------------------------------------------------
13cfc3b791 | Shmuale Mark | 2014-10-24 12:40:17 -0400

Give Draconian ghosts their draining breath back.
This was mysteriously lost in all the mon-spell-slots changes. Spooky!

--------------------------------------------------------------------------------
4572b3f1ba | Shmuale Mark | 2014-10-24 12:40:00 -0400

Show draconian breath on xv.

--------------------------------------------------------------------------------
f6efad769f | Shmuale Mark | 2014-10-24 12:40:00 -0400

Split up mon_nearby_ability.

--------------------------------------------------------------------------------
c60e8669c5 | Shmuale Mark | 2014-10-24 12:40:00 -0400

Don't reroll hell beast/abom speed whenever its speed is calculated.
This could cause them to slow down overall by having Haste casted
at them!

--------------------------------------------------------------------------------
14269fa1bc | Shmuale Mark | 2014-10-24 12:40:00 -0400

Salamanders are in the same genus as nagas.

--------------------------------------------------------------------------------
748b4756fd | Shmuale Mark | 2014-10-24 12:39:59 -0400

Actually mark unborns as worshippers of Yred (Basil).
The unborn offers itself to nameless, and fills with unholy energy.

--------------------------------------------------------------------------------
8e6549f552 | Shmuale Mark | 2014-10-24 12:39:59 -0400

Simplify.

--------------------------------------------------------------------------------
8e4e1fcb52 | Shmuale Mark | 2014-10-24 12:39:59 -0400

Remove some unused beam flavours/zaps.
There's no need to #if these out -- they're never marshalled.

--------------------------------------------------------------------------------
addef8f54e | Shmuale Mark | 2014-10-24 12:39:59 -0400

Remove two unused enums.

--------------------------------------------------------------------------------
67a925b7e3 | Nicholas Feinberg | 2014-10-24 07:49:57 -0700

Don't crash when preposterously contaminated (|amethyst)

--------------------------------------------------------------------------------
24ce4a3ca8 | Neil Moore | 2014-10-24 10:32:36 -0400

Remove a now-unused enum (wheals)

--------------------------------------------------------------------------------
a3339b7756 | Neil Moore | 2014-10-24 10:25:07 -0400

Revirtualise is_player, get rid of atype (wheals)
Rather than having a non-virtual wrapper around a virtual method that is
otherwise unused, just make the wrapper virtual. There is no penalty
because the number of virtual calls is still the same.

Remove the "not null" assert: it has never been triggered since it was
added, it wouldn't be triggered in the virtual method anyway, and the
segfault from dereferencing a bad vtable should be pretty easy to spot
anyway.

--------------------------------------------------------------------------------
0a1a3e8f95 | Nicholas Feinberg | 2014-10-23 23:00:17 -0700

Fix more missing emergency flags (DrKe)
Khufu's Tomb, the Enchantress's Invisibility.

--------------------------------------------------------------------------------
0e71eeab44 | Nicholas Feinberg | 2014-10-23 22:46:49 -0700

Make lich Banishment an escape spell, again (DrKe)
Seems to have been an oversight in mon-spell-slots.

--------------------------------------------------------------------------------
016c25b480 | ontoclasm | 2014-10-24 00:03:08 -0500

Icon for Ru's Reject ability

--------------------------------------------------------------------------------
f5e5797b59 | Steve Melenchuk | 2014-10-23 21:26:15 -0600

Tiles for the new enemies.

--------------------------------------------------------------------------------
5eaa0b8901 | Steve Melenchuk | 2014-10-23 21:13:57 -0600

Anubis guards.
They are intended to sereve a similar purpose / threat level to guardian
mummies in Tomb while being more than a "walking death curse bomb".

They are living enemies with rN+++ and torment immunity (flavoured as
being conditioned to ignore extreme amounts of pain), and are equipped
with draining breath, Hunting Cry (effectively a signal horn that also
alerts other anubis guards on the level to your location on a one-off
basis), Dispel Undead (have to keep the unruly denizens in line
somehow), and Confuse (ditto). When they are generated randomly (i.e.
outside of vaults) they have a 50% chance of coming as a pair.

Weights of guardian mummy slots in Tomb are now 1/6 guardian mummies,
1/6 death scarab bands, 1/3 ushabti, and 1/3 anubis guard bands. These
may need further reweighting.

--------------------------------------------------------------------------------
b33f64b16e | Steve Melenchuk | 2014-10-23 21:13:57 -0600

Monster spell: Summon Scarabs, for a greater mummy spell set.
This particular set has Summon Emperor Scorpions and two instances of
Summon Scarabs for the full insect swarm effect.

--------------------------------------------------------------------------------
f73c3fd3ce | Steve Melenchuk | 2014-10-23 21:13:57 -0600

Death scarabs.
A swarming undead insect that trails miasma and bites to drain life,
speed, or skill.

The combination of miasma trails and fast batty movement is intended to
interfere with player movement unless they're dealt with quickly.

The exact set of AF_SCARAB effects could probably be adjusted; right now
it feels like too much of a duplicate of other Tomb effects.

--------------------------------------------------------------------------------
f93e60a148 | theTower | 2014-10-23 21:13:57 -0600

Introducing Ushabti, guardian mummy dilution for Tomb
Guardian mummies, the main fodder in Tomb, are awkward if functional designs.
Slow, melee-only amassed monsters with a punishing effect for killing them has
obvious value in countering mass conjurations, but a few will go to great
lengths to avoid or diminish their effects through, say, luring seperation
tactics or the previous summoning effect. Some of this is arguably due to
the psychological damage of statdrain, rot, and lighter draining amounts,
which, while repairable concepts each and of themselves (plus eventually
replacable), are also only used in any serious amounts in this branch anyway.
This suggests an attempt to dilute rather than replace the death curse bombs
known as guardian mummies.

The ushabti, more light ancient Egyptian lore, are funerary figurines intended
to serve as workers and servants for the dead in the afterlife. Their
introduction cuts into the appearance rate of guardian mummies by 2/5s.
They're non-living, have stats not very far away from guardian mummies but
with more resists, and provide more flavour / non-demonic non-undead placements
for extended. While they're still push-overs for when they appear alone,
especially since they're still slow like guardian mummies, they've got two
tricks that should make them rather relevant in Tomb:

 * Loud shouts, louder than dragon roars (The ushabti rumbles deeply! x6).
   Obviously relevant in the quietness of Tomb, and considering the monster
   use possibly a replacement enough of it.
 * A new spell, "Death Rattle". This breathes a line of randomly-mixed miasma
   and draining clouds, similarly to the petrifying breath of catoblepae.
   They don't cast it too often, though a little more when at low health:
   the movement this suggestions to avoid clouds with effects close to the
   lighter death curses should be a rather interesting incarnation of the
   intent of guardian mummy death curses, considering how often one is pinned
   down in Tomb.

--------------------------------------------------------------------------------
125f961b7e | Steve Melenchuk | 2014-10-23 21:10:57 -0600

Make rotting-by-miasma gradual instead of instant.
Very few things can instantly rot the player - mutation while undead,
monsters touching the orb in ZotDef, and ... miasma. Considering the
nature of miasma and it being comparable to poison clouds in that it
inflicts negative effects that increase in magnitude as the player
continues to stand in the cloud, it seems odd that just by touching
miasma for a turn that you're going to instantly rot a bit on the
outside.

Hopefully, this should lessen uncontrollable player aggravation a bit.

--------------------------------------------------------------------------------
53c19c419d | Steve Melenchuk | 2014-10-22 22:00:08 -0600

Update the monster spell vault specification for mon-spell-slots.
e.g. "MONS: orc spells:symbol_of_torment.200.natural".

See the newly-updated documentation for complete details.

--------------------------------------------------------------------------------
253066f807 | Nicholas Feinberg | 2014-10-22 19:42:54 -0700

Adjust partially-ID'd wand evoke message
Clumsier than before, but a little more descriptive. Not sure how
much more I can do without saying "please read the item
description"...

--------------------------------------------------------------------------------
2292898306 | Steve Melenchuk | 2014-10-22 20:17:52 -0600

Add Draining Gaze, too.
Can't break lemuel_draining_boxes after all...

--------------------------------------------------------------------------------
4fdb1e6d3b | Steve Melenchuk | 2014-10-22 20:00:11 -0600

Make smite-targeted gaze spells for giant eyeballs and golden eyes.
Yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay.

--------------------------------------------------------------------------------
13372b0a3f | Steve Melenchuk | 2014-10-22 19:43:59 -0600

Revert eyeball gaze changes.
Someone else can special case this if they want. I'm going to go mad if
*I* do it.

This reverts commit c112a2c84e62852ed318369e664c365300d2b561.
This reverts commit 1c4dcb995e3359593d7087654008eb889db6dc01.

--------------------------------------------------------------------------------
c112a2c84e | Steve Melenchuk | 2014-10-22 19:38:51 -0600

Only let eyeballs smite-target enchantments.

--------------------------------------------------------------------------------
b675f4f8ab | Steve Melenchuk | 2014-10-22 19:30:08 -0600

Restore ghost moth / eye of draining heal on drain (wheals).
MORE SPECIAL CASES AHOY

--------------------------------------------------------------------------------
1c4dcb995e | Steve Melenchuk | 2014-10-22 19:26:06 -0600

Return smite-targeting to eyeball gaze spells.
By popular dev demand. Special cases ahoy!

Also a buff to other types of eyeballs.

--------------------------------------------------------------------------------
e143a0ad5d | Steve Melenchuk | 2014-10-22 19:09:34 -0600

Convert gaze ability attacks to spells.
...since they all duplicate spells right now anyway.

This is a very slight buff to giant eyeballs in that their paralysis can
last a turn or two longer than previously, and a very slight nerf to
eyes of draining and ghost moths in that they don't recover MP from
their drain gaze now. If so inclined, someone can go and special-case
these back in, but the code to let the respective spells be irresistible
is special-casey enough already.

Also contains a fix for messaging for spells which don't generate noise,
and the removal of the no-longer-used MSG_BEING_WATCHED (which is in the
database now).

--------------------------------------------------------------------------------
25a4a561e3 | Nicholas Feinberg | 2014-10-22 17:32:45 -0700

Convert fake "cutlasses" to rapiers
This won't convert randart "cutlasses"' names, but their tile and
stats will update properly, and their owner will have a unique
keepsake.

--------------------------------------------------------------------------------
f4f6b595cb | Nicholas Feinberg | 2014-10-22 17:25:27 -0700

Don't generate fake cutlasses
copy-paste unreasons

--------------------------------------------------------------------------------
67a19b7b6b | elliptic | 2014-10-22 19:59:42 -0400

Fix rune/orb milestones and other pickup effects.
This line was re-added in 638acd45 (bad rebase) after having been removed
in b5428166.

--------------------------------------------------------------------------------
613152ecac | Steve Melenchuk | 2014-10-22 17:31:10 -0600

Check properly for already-buffed monsters when considering battlecries.
So that enemies don't battlecry every. single. turn.

GRUUUUUUUUUNT

--------------------------------------------------------------------------------
ba2dfae2ca | Neil Moore | 2014-10-22 19:00:02 -0400

Colour poisonous/mutagenic corpses again (gammafunk)

--------------------------------------------------------------------------------
8e836f055f | John McCartney | 2014-10-22 10:25:08 -0700

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
fdfbcc980d | John McCartney | 2014-10-22 10:19:36 -0700

Draconian monster base and job tiles.

--------------------------------------------------------------------------------
fb464925dc | Nicholas Feinberg | 2014-10-22 07:14:08 -0700

Fix inert evoker descriptions

--------------------------------------------------------------------------------
1da235be57 | Shmuale Mark | 2014-10-22 08:51:17 -0400

Make Nergalle's DDoor an emergency-only spell (DrKe).

--------------------------------------------------------------------------------
0492060ce8 | Shmuale Mark | 2014-10-22 08:30:27 -0400

Don't crash when a monster hits itself with a beam.
Maybe bolt::agent() should return NULL if it isn't alive?

--------------------------------------------------------------------------------
cff4769d15 | Shmuale Mark | 2014-10-22 08:27:35 -0400

Don't crash when Ilusiw tries to cast Call Tide.
Oops...

--------------------------------------------------------------------------------
37495e34b9 | Shmuale Mark | 2014-10-22 08:25:22 -0400

Remove an unused prototype.

--------------------------------------------------------------------------------
4dbbe55c43 | Nicholas Feinberg | 2014-10-21 22:43:20 -0700

Allow more chunk merging for gr/gh
Poisonous chunks merge with clean chunks for gr; all chunks merge
for gh. They're all the same for those races, so there's no reason
for them to be separate stacks.

--------------------------------------------------------------------------------
a0c719eaab | Neil Moore | 2014-10-22 01:36:37 -0400

Don't colour poisonous/mutagenic chunks if they aren't.

--------------------------------------------------------------------------------
a20bbd2e0d | Neil Moore | 2014-10-22 01:11:53 -0400

Simplify final_effect calling convention.
Instead of (new blah_fineff(...))->schedule(), the proper way to create
and schedule a fineff is now simply blah_fineff::schedule(...);

Also make final_effect::schedule static and protected (it had no
business being a method anyway), and make the constructors protected.
This should prevent the possibility of accidentally scheduling a fineff
that was not allocated with new, which would be a problem because
merging or firing a fineff deletes it.

This does make the fineff class definitions wordier: each class has
to define both the static schedule() and the constructor.  Probably
varargs and some template magic could solve that, but maybe not in
C++03.

--------------------------------------------------------------------------------
17bccade11 | Nicholas Feinberg | 2014-10-21 21:45:57 -0700

Fix non-clean chunk descriptions

--------------------------------------------------------------------------------
8de4130263 | Nicholas Feinberg | 2014-10-21 21:42:03 -0700

Always name non-clean flesh correctly (elliptic)

--------------------------------------------------------------------------------
a62d67f4a1 | Nicholas Feinberg | 2014-10-21 21:21:48 -0700

Reveal a secret mechanic

--------------------------------------------------------------------------------
88f9af17cf | Nicholas Feinberg | 2014-10-21 21:21:48 -0700

Cleanup

--------------------------------------------------------------------------------
b128afdc0f | Neil Moore | 2014-10-22 00:08:57 -0400

Don't treat floor items as quivered (#9063)
If the item index of the next item happened to match the slot letter
of the player's quiver.

--------------------------------------------------------------------------------
26b3dded08 | Nicholas Feinberg | 2014-10-21 20:42:37 -0700

Turn the Arc Blade into a rapier (Grunt)
Since there's no reason anyone would suspect it was a cutting
weapon!

--------------------------------------------------------------------------------
d9cffead43 | gammafunk | 2014-10-21 22:30:04 -0500

Replace Mnoleg's tentacles with branded attacks and Malign Gateway
Currently the tentacles don't work very well with the Mnoleg's
summons, since the tentacles can't shove through without creating new
segment monsters. This makes it easy for the tentacles to effectively
do nothing when many X have been summoned.

This commit removes the tentacles and adds two attacks, a 1d40 Klown
melee and a 1d30 vulnerability (-MR) melee. The use of vulnerability
instead of Klown can make the eyes and some of the surrounding Mnoleg
vault monsters more effective. I've also re-added Malign Gateway with
a higher casting frequency than before, for that old tentacle feelin'.

The tentacles might make a return at some point when some better
monster displacement code is written.

--------------------------------------------------------------------------------
9524d845af | Nicholas Feinberg | 2014-10-21 20:25:35 -0700

Adjust hangedman_ranch (magicpoints)
Since short blades no longer cut off heads!

--------------------------------------------------------------------------------
eaa203c5d9 | Steve Melenchuk | 2014-10-21 21:06:08 -0600

Add roctavian to mailmap.
And move Lasty up to the devs section.

--------------------------------------------------------------------------------
7bde4d5d20 | John McCartney | 2014-10-21 19:57:12 -0700

Moved name in CREDITS.txt.

--------------------------------------------------------------------------------
d57a44a467 | Nicholas Feinberg | 2014-10-21 19:44:06 -0700

Don't call a cutlass a rapier (Grunt)

--------------------------------------------------------------------------------
441bb9b88f | Nicholas Feinberg | 2014-10-21 19:35:12 -0700

Tweak short blades
Three changes:

(1) All shortblades are now piercing, not just daggers/qbl. This
simplifies matters considerably, removes a point of frequent
confusion (for even surprisingly experienced players!), and is
probably a buff for weak weapon types, for those lunatics who
fight hydras with short swords.

(2) Accordingly, the cutlass weapon type has been renamed, to
'rapier'. The captain's cutlass is now, once again, its own weapon
type. (It is now the only slicing short blade.)

(3) Short blades' vorpal ego is now called "piercing", not
"stabbing". Stabbing is a word that has a meaning in crawl, and it
is not what that ego did! (This was another point of confusion for
unspoiled players.)

--------------------------------------------------------------------------------
5989093897 | Nicholas Feinberg | 2014-10-21 18:21:25 -0700

Make ghoul chunk-healing more reliable
Average out healing a little more to make it less spikey, and
make rot removal completely guaranteed, rather than a 75%
per-chunk chance. (If this buff makes ghoul the dominant race of
0.16, the rot rate can be increased somewhat to compensate.)

--------------------------------------------------------------------------------
c690f0411f | Nicholas Feinberg | 2014-10-21 17:58:30 -0700

Restore Malign Offering's level and spellpower
wHeAaAaAaAals........

--------------------------------------------------------------------------------
417ca3d1b7 | Nicholas Feinberg | 2014-10-21 17:58:30 -0700

Use a define for undead hunger

--------------------------------------------------------------------------------
ca77ae0341 | Shmuale Mark | 2014-10-21 20:49:55 -0400

Prompt for unwielding a vampiric weapon at all hunger levels (rchandra).

--------------------------------------------------------------------------------
5be93e9946 | Shmuale Mark | 2014-10-21 19:46:56 -0400

Give Xtahua red draconian breath.
He's generally agreed to be a bit on the boring side mechanically;
this is a cool thing that distinguishes him from fire dragons, and
you probably won't see red dracs for some time after meeting Xtahua.

--------------------------------------------------------------------------------
df98671ff8 | Shmuale Mark | 2014-10-21 19:46:56 -0400

Don't persist unnecessary information in struct bolt.

--------------------------------------------------------------------------------
66612e53cf | Shmuale Mark | 2014-10-21 19:46:56 -0400

Make two fields in spell_desc SPLFLAG_s instead.

--------------------------------------------------------------------------------
4e67e282fb | Shmuale Mark | 2014-10-21 19:46:56 -0400

Remove an unused #define, use another.

--------------------------------------------------------------------------------
2008e14c33 | Neil Moore | 2014-10-21 18:01:44 -0400

Don't mark stash corpses new just because of time (#9059, #9060)
The stash considered the item "new" just because it was more rotten than
last time---so, if the stash has multiple items so the top corpse might
be a new one,  autoexplore would keep coming back until the corpse/chunk
disappeared.

This partially reverts 7d34deab64fba88c1e46aa0cd846a76f5996fb96.

--------------------------------------------------------------------------------
f08792013b | Shmuale Mark | 2014-10-21 14:04:40 -0400

Remove the auto_drop_chunks option.
Since chunks only take up one inventory slot, and burden is gone, it
doesn't seem to be worth having the option if it matters so rarely
(perhaps if you have a stack of poisonous and of clean?).

--------------------------------------------------------------------------------
641954b71d | Shmuale Mark | 2014-10-21 14:04:40 -0400

Clean up for more rot changes; mark gourmand as now-useless for ghouls.

--------------------------------------------------------------------------------
308e0bb79c | reaverb | 2014-10-21 13:44:56 -0400

Re-add some save compat code

--------------------------------------------------------------------------------
58e9df257a | Shmuale Mark | 2014-10-21 13:06:23 -0400

Re-add a line about meat to Ghoul A screen.

--------------------------------------------------------------------------------
b37f04178d | Shmuale Mark | 2014-10-21 12:54:16 -0400

Remove saprovorousness.
With the rot changes, having a saprovore not-3 had no gameplay effects.
Level 3 was usually used as a check for being a ghoul (especially since
it's been impossible to get saprovore randomly for a while).

--------------------------------------------------------------------------------
0833c94ca3 | Shmuale Mark | 2014-10-21 12:26:28 -0400

Update documentation.

--------------------------------------------------------------------------------
d9545fa2fd | Nicholas Feinberg | 2014-10-21 09:19:52 -0700

Adjust inventory code for norot/no-corpse-pickup

--------------------------------------------------------------------------------
353cc98061 | Nicholas Feinberg | 2014-10-21 09:19:39 -0700

Crudely adjust kiku's corpse drop for norot

--------------------------------------------------------------------------------
bb5cd80e5a | Nicholas Feinberg | 2014-10-21 09:09:06 -0700

Update stash code for rotting removal

--------------------------------------------------------------------------------
ab37d9f36f | Shmuale Mark | 2014-10-21 12:06:26 -0400

Fix reversed summons Animate Dead logic.

--------------------------------------------------------------------------------
f55127b96e | Nicholas Feinberg | 2014-10-21 08:57:16 -0700

Remove a rather old monster glyph list

--------------------------------------------------------------------------------
0ee27c8779 | Nicholas Feinberg | 2014-10-21 08:56:36 -0700

Update documentation

--------------------------------------------------------------------------------
ab02dee883 | Nicholas Feinberg | 2014-10-21 08:56:36 -0700

Remove support for auto_drop_chunks = rotten

--------------------------------------------------------------------------------
2c50dbd914 | Nicholas Feinberg | 2014-10-21 08:56:35 -0700

Remove unused chunk icons

--------------------------------------------------------------------------------
07585c3947 | Shmuale Mark | 2014-10-21 11:33:44 -0400

Let Tiamat be yellow, mottled, or pale.
Maybe she should be allowed to be grey too? It's a bit more boring since
there's no breath.

--------------------------------------------------------------------------------
deffd7cca3 | Shmuale Mark | 2014-10-21 11:25:00 -0400

Refactor Tiamat colour-shifting.
As a consequence, red draconian Tiamat is now light red, like other
red draconians.

--------------------------------------------------------------------------------
67794f7bac | Shmuale Mark | 2014-10-21 09:24:50 -0400

Fix compilation.

--------------------------------------------------------------------------------
4ae0624a54 | Shmuale Mark | 2014-10-21 09:16:40 -0400

Deduplicate.

--------------------------------------------------------------------------------
5688b2ca6e | Shmuale Mark | 2014-10-21 08:58:31 -0400

Remove some rotten code.
Yuck!

--------------------------------------------------------------------------------
6c95da848c | Shmuale Mark | 2014-10-21 08:50:11 -0400

Refactor can_ingest, rename to can_eat.
I assume it was called can_ingest because it was supposed to be used
for potions too, but that just added needless complexity...

--------------------------------------------------------------------------------
f034e03ccd | Nicholas Feinberg | 2014-10-20 23:15:08 -0700

Don't let pan lords try to cast DFireball
Since they can't, yet!

--------------------------------------------------------------------------------
e374a92d7f | Nicholas Feinberg | 2014-10-20 22:55:29 -0700

Fix a bad assert

--------------------------------------------------------------------------------
e7119b7121 | Neil Moore | 2014-10-21 01:32:58 -0400

Replace Draconian Breath on old draconians.
See for example:
    http://dobrazupa.org/morgue/stainable/crash-stainable-20141021-045702.txt

--------------------------------------------------------------------------------
b59d5dcbc3 | Neil Moore | 2014-10-21 01:22:04 -0400

Fix compilation.

--------------------------------------------------------------------------------
d4ecbbd7e3 | Nicholas Feinberg | 2014-10-20 22:06:21 -0700

Deprecate potions of coagulated blood

--------------------------------------------------------------------------------
6d438dd9f4 | Nicholas Feinberg | 2014-10-20 22:06:21 -0700

More rot error-handling

--------------------------------------------------------------------------------
a3a863abc2 | Nicholas Feinberg | 2014-10-20 22:06:21 -0700

Guard against malformed timers
Probably we should be able to catch/prevent this earlier...

--------------------------------------------------------------------------------
7d34deab64 | Nicholas Feinberg | 2014-10-20 22:06:21 -0700

Remove rotting chunks & corpses & coagulated blood
Mostly wasted players timed with marginal flavor benefit. Also,
complicated the code enormously.

Ghouls now get the same benefits from normal chunks that they did from
rotting chunks, before. (Unless I missed something.)

--------------------------------------------------------------------------------
03460b4d29 | Nicholas Feinberg | 2014-10-20 22:06:21 -0700

Shift food conducts to purely butchering
To cut the gordian knot of dealing with persisting conducts on
chunks.

Remove penalties for eating chunks; sharply increase the penalties
for butchering forbidden corpses. (They were previously pretty
toothless.)

--------------------------------------------------------------------------------
f6a7d877ea | Nicholas Feinberg | 2014-10-20 22:06:21 -0700

Disable spraying chunks of forbidden meat
To avoid circumventing food conducts with /disint or IOOD.

--------------------------------------------------------------------------------
638acd453f | Nicholas Feinberg | 2014-10-20 22:06:21 -0700

Rot reform
Chunks are now handled in the same way as potions of blood; all
chunks of an 'edibility class' (edible, poisonous, necrotic,
mutagenic, profane) stack together into a homogenous meat slurry,
and rot individually.

--------------------------------------------------------------------------------
7ab7aced2f | theTower | 2014-10-21 00:56:23 -0400

Double Ephemeral Infusion's health restoration, halve its duration.
The results here are intended to make the temporary HP spike spell
more noticeable in its effects, aiding blood saints in helping
their allies (especially since they can damage their allies)
and thus giving them something besides top conjurations.

Also, remove a redundant tracer check.

--------------------------------------------------------------------------------
4a7ea2afd8 | Nate Rook | 2014-10-21 00:35:49 -0400

(LogicNinja) Fix nopiety troves with amulets of faith.
Previously, they took too much faith and generally caused the player
to be excommunicated; this change uses the correct piety-loss function
so they don't cause excommunication anymore.

--------------------------------------------------------------------------------
e8d63ac824 | Nate Rook | 2014-10-21 00:35:49 -0400

Document lose_piety and dock_piety.

--------------------------------------------------------------------------------
c840f90603 | Steve Melenchuk | 2014-10-20 21:53:11 -0600

Set monster gods correctly again.

--------------------------------------------------------------------------------
6eca55f649 | Nicholas Feinberg | 2014-10-20 20:33:21 -0700

Don't crash when placing MONS_DRACONIAN

--------------------------------------------------------------------------------
d432f8a94c | Shmuale Mark | 2014-10-20 23:12:42 -0400

Use phi for runes in char_set = unicode too (Alpha__).

--------------------------------------------------------------------------------
54cbaa9d34 | Shmuale Mark | 2014-10-20 23:12:42 -0400

Update options_guide.txt.

--------------------------------------------------------------------------------
480f9ae3bb | theTower | 2014-10-20 22:54:57 -0400

Make draining clouds check multiple pips of rN, not just the first
Negative energy clouds should be more like bolts of negative energy
and less like the impure, incidental checks of pain, vampirism, or
drain speed. It is a tiny buff against monsters with only rN+, but
those are exceedingly rare equipment-based circumstances anyway.
It does also mean it's harder for players to waltz through the clouds,
but that trick already was heavily buffed with the loss of item
destruction on freezing / flaming clouds, so whatever.

--------------------------------------------------------------------------------
f431374c32 | Shmuale Mark | 2014-10-20 22:39:51 -0400

Don't crash when a dryad following you considers awakening vines.

--------------------------------------------------------------------------------
27d07e3a19 | gammafunk | 2014-10-20 21:29:59 -0400

Cherry-pick the 0.15.2 changelog
And remove the duplicate entries from the 0.16 section.

(cherry picked from commit 9b7472d89d3a56797f2d1182218daf851657f63c)

--------------------------------------------------------------------------------
c9e6ab6f1f | Neil Moore | 2014-10-20 21:29:02 -0400

Document autofight in ?? (vimpulse, PF)
Sadly, there is no way to make this match the user's actual key
binding, because autofight is implemented as a macro rather than a key
binding.

--------------------------------------------------------------------------------
3d4ec06d11 | Neil Moore | 2014-10-20 21:29:02 -0400

Disallow copy and assign using explicitly deleted methods.
If compiling as C++11, that is. Otherwise continue using declared-but-
undefined methods.

Unfortunately, this breaks compilation with Visual Studio 2012, since
explicitly deleted methods weren't supported until 2013.  We could
preserve 2012 building with an extra check for MSVC version, but someone
who uses MSVC will have to do that.

--------------------------------------------------------------------------------
ddf3efa37c | Neil Moore | 2014-10-20 21:29:02 -0400

Turn Form*::instance into a static member function.
This avoids having to define static const members outside the class, and
would make it easier to be thread-safe should we need that in the future.

--------------------------------------------------------------------------------
727a846a4b | Nicholas Feinberg | 2014-10-20 18:26:35 -0700

Overlooked changelog entries

--------------------------------------------------------------------------------
459d120712 | Nicholas Feinberg | 2014-10-20 17:48:31 -0700

Changelog through 0.16-a0-1503-gb61f0ef

--------------------------------------------------------------------------------
b61f0ef1b9 | Nicholas Feinberg | 2014-10-20 17:34:24 -0700

Upgrade Mennas's Confusion
To Mass Confusion; a better fit for the Recite theme that it's
riffing off of, and also much more likely to do something at the
depth he appears.

--------------------------------------------------------------------------------
1fd9359862 | Shmuale Mark | 2014-10-20 19:39:13 -0400

Remove the Draconian Breath dummy spell.
Draconians now get their breath weapons given on the fly, rather than
hardcoded in mon-spll.h. Arguably this is uglier, but it's a lot simpler
for both the coder and the player; this was prompted, for example, by
|amethyst pointing out that classed grey dracs had Draconian Breath listed
in xv.

--------------------------------------------------------------------------------
2dbb87ced3 | theTower | 2014-10-20 19:35:34 -0400

Shuffle around bennu brands, making their holy damage higher; speed 18 -> 16
While I will lament not implying one claw is holy and the other unholy,
putting holy damage on the weaker of three hits counters their effectiveness
in threatening the torment immune. As such, the sticky flame 27 damage peck
and the holy 18 damage claw are swapped. (The attack verbs could be changed
overall, but there's not much that would fit short of engulfing napalm.)

(It is worth noting that this doesn't mean much to the sticky flame,
because sticky flame already doesn't matter to most post-Lair defenses.)

Also, I had intended to make them speed 16 rather than 18, and so they're
slowed down. Not that much of a nerf, but it means a little less draining.

--------------------------------------------------------------------------------
d5c6e77611 | theTower | 2014-10-20 19:32:46 -0400

Adjust the potion of berserk Trog / Oka overflow vault.
Don't automatically wake up the monster due to the recent potion
change, lower the depth and weight of the vault, insulate the walls
and add an extra row to decrease the chances of the monster being
close before it's too late to escape.

--------------------------------------------------------------------------------
32a900efe1 | Neil Moore | 2014-10-20 19:26:51 -0400

Use a macro (bh)

--------------------------------------------------------------------------------
88fba4b27d | Steve Melenchuk | 2014-10-20 17:20:16 -0600

Finish merging mon-cast.cc properly.
GRUUUUUUUUUNT

--------------------------------------------------------------------------------
85ca29fc02 | Steve Melenchuk | 2014-10-20 17:17:11 -0600

Give M_DEFLECT_MISSILES the M_SHROUD et al. treatment.
Deflect Missiles is now a monster enchantment which ablates similarly to
the player enchantment; M_DEFLECT_MISSILES goes away in favour of giving
monsters that had that flag the spell instead and starting them with the
enchantment if they have the spell.

As a bonus, Repel Missiles is also now implemented for monsters in case
anything (read: ghosts) ever casts it.

--------------------------------------------------------------------------------
5770391336 | Neil Moore | 2014-10-20 18:51:09 -0400

Allow force-giving potions to monsters.

--------------------------------------------------------------------------------
b2c6ef8f7a | Shmuale Mark | 2014-10-20 17:58:20 -0400

Take away classed grey draconians' crash breath, too.

--------------------------------------------------------------------------------
686482ed2d | Shmuale Mark | 2014-10-20 17:58:20 -0400

Save compat for spell fixes (|amethyst).

--------------------------------------------------------------------------------
ff84b50ade | Shmuale Mark | 2014-10-20 17:58:20 -0400

Take away Azrael's crash breath.
And make the rest of his spells more devilish.

--------------------------------------------------------------------------------
c962b3c8a6 | Shmuale Mark | 2014-10-20 17:58:19 -0400

Take away zombies' spells (except for tentacle creation).
Enslaved souls still get the spells through another route.

--------------------------------------------------------------------------------
cce5957bb1 | Shmuale Mark | 2014-10-20 17:58:19 -0400

Comment and improve signature.

--------------------------------------------------------------------------------
167c23c5ed | Neil Moore | 2014-10-20 17:36:39 -0400

Remove a now-redundant check.
_get_tentacle_throw_victim now handles non-constricting monsters by
returning 0, which is never a valid mid.

--------------------------------------------------------------------------------
cf935cfa00 | Neil Moore | 2014-10-20 17:04:03 -0400

Unbrace.

--------------------------------------------------------------------------------
14c78eb30b | Neil Moore | 2014-10-20 17:03:18 -0400

Don't crash when an octopode crusher isn't constricting.
See for example:
  http://dobrazupa.org/morgue/Zig/crash-Zig-20141020-205305.txt

--------------------------------------------------------------------------------
cfe70bbdcd | Steve Melenchuk | 2014-10-20 14:57:19 -0600

Give Gloorx's expedition party a curse skull (ElanMorin).
Might as well take the pet for a walk...

--------------------------------------------------------------------------------
622b617998 | Shmuale Mark | 2014-10-20 16:46:37 -0400

Make draco_type_to_breath non-static.

--------------------------------------------------------------------------------
88c47e69d0 | Steve Melenchuk | 2014-10-20 13:53:55 -0600

Don't give servitors spells the player doesn't know.
GRUUUUUUUUUUNT

--------------------------------------------------------------------------------
787a57f1ee | Steve Melenchuk | 2014-10-20 13:42:36 -0600

Remove an assumption that spellforged servitors can only be player-cast.
Since ghosts can cast them now...

--------------------------------------------------------------------------------
4d71f7926a | Steve Melenchuk | 2014-10-20 13:36:41 -0600

Remove an ASSERT (Sharkman1231).
Seal Doors is no longer an ability tied to one specific monster.

--------------------------------------------------------------------------------
2e93a6f9fc | Steve Melenchuk | 2014-10-20 13:15:25 -0600

Really space the multiple spell set screen correctly.
Oops.

--------------------------------------------------------------------------------
9392cb3ae6 | Steve Melenchuk | 2014-10-20 13:09:25 -0600

Space "Book N" on xv for multiple spell book monsters properly.
"Book N" instead of "BookN".

--------------------------------------------------------------------------------
74cd5ec12b | Steve Melenchuk | 2014-10-20 12:35:47 -0600

Clean up a bit of panlord spell selection code.
Since the lists are no longer used for player ghosts.

The one_chance_in section should probably be merged into the spell
lists eventually as well.

--------------------------------------------------------------------------------
425b0bdbe3 | Steve Melenchuk | 2014-10-20 12:28:41 -0600

Replace and remove M_BLINKER, M_SHROUD, and M_OZOCUBUS_ARMOUR.
In the former case, it's added as a spell to the relevant enemies; in
the latter two cases the monster gains the enchantment at generation if
they know the relevant spell (thus, Fannar and Vashnia have the relevant
spells added to their spell sets as this can now be done in a way which
does not dilute their casting frequencies).

--------------------------------------------------------------------------------
8efd6b4fde | Steve Melenchuk | 2014-10-20 12:20:24 -0600

Let Vashnia cast spells again.
Oops.

--------------------------------------------------------------------------------
29a81cd3a3 | Steve Melenchuk | 2014-10-20 12:18:10 -0600

Get Mennas wandering through Pan.
Per the old vault comment.

If he is generated outside of Pan at any point, he of course will stop
wandering through Pan.

Right now he has a 5% chance of appearing on any given Pan level; this
could probably be adjusted further.

--------------------------------------------------------------------------------
1336eefb10 | Neil Moore | 2014-10-20 13:32:29 -0400

Add mon-tentacle.{cc,h} to MSVC build.

--------------------------------------------------------------------------------
167bb1af65 | Neil Moore | 2014-10-20 13:31:04 -0400

Fix tiles compilation.

--------------------------------------------------------------------------------
0c065e84b5 | Steve Melenchuk | 2014-10-20 10:20:53 -0600

Pursuing panlords bring an entourage with them (PleasingFungus).
Includes when they turn up on the orb run!

--------------------------------------------------------------------------------
6a74f0b7f3 | Steve Melenchuk | 2014-10-20 10:20:51 -0600

Let the major panlords chase the player through Pan.
Ignacio-style, though more guaranteed.

This should not interfere with their later appearance on the orb run if
circumstances otherwise allow for it.

--------------------------------------------------------------------------------
7e105e3c75 | Steve Melenchuk | 2014-10-20 10:19:02 -0600

Merge branch 'mon-spell-slots'
With some ugly ugly merge conflicts.

Most of the remaining work here is just porting mon-abils into spells,
and that can be done in trunk; plus, this having not landed yet is
blocking various other projects.

Conflicts:
	crawl-ref/source/enum.h
	crawl-ref/source/mon-abil.cc
	crawl-ref/source/mon-cast.cc
	crawl-ref/source/mon-data.h
	crawl-ref/source/mon-util.cc
	crawl-ref/source/monster.cc
	crawl-ref/source/spl-data.h
	crawl-ref/source/tag-version.h

--------------------------------------------------------------------------------
8509439635 | Steve Melenchuk | 2014-10-20 10:08:01 -0600

Account for MON_SPELL_DEMONIC better in spellcasting messaging.
Useful for demon chimera spell messaging, not that that will ever come
up in normal gameplay.

--------------------------------------------------------------------------------
783fc1ed64 | Steve Melenchuk | 2014-10-20 09:59:52 -0600

Scale chimera spell/ability frequency with number of spellcasting parts.
... so that the sum of spell/ability weights doesn't exceed the total
weight of 200.

--------------------------------------------------------------------------------
acf88eee87 | Steve Melenchuk | 2014-10-20 09:42:46 -0600

Chimeras get all spells and abilities from their component monsters.

--------------------------------------------------------------------------------
4346b270f5 | Shmuale Mark | 2014-10-20 11:41:24 -0400

Redraw quiver when a rod charges up.

--------------------------------------------------------------------------------
b23a59b36d | Shmuale Mark | 2014-10-20 11:39:52 -0400

Add a (exhaustive?) list of uses of item_def::plus2.

--------------------------------------------------------------------------------
25fc451b0a | Steve Melenchuk | 2014-10-20 09:37:57 -0600

Make servitor spell selection deterministic again (wheals).
If your failure rate for a servitor spell is below 50%, it's eligible
for inclusion.

--------------------------------------------------------------------------------
53c769f349 | Shmuale Mark | 2014-10-20 11:00:23 -0400

s/NO_UNRANDARTS/NUM_UNRANDARTS

--------------------------------------------------------------------------------
51d22b1b51 | Shmuale Mark | 2014-10-20 09:48:53 -0400

Reduce chance of Xom cloud on hit.

--------------------------------------------------------------------------------
a86added94 | Shmuale Mark | 2014-10-20 09:30:26 -0400

Staticalise.

--------------------------------------------------------------------------------
3f7a9b36ac | Shmuale Mark | 2014-10-20 08:55:35 -0400

Rename two functions.
They don't actually have anything to do with noise...

--------------------------------------------------------------------------------
c0dd870599 | Shmuale Mark | 2014-10-20 01:04:46 -0400

FIX'd

--------------------------------------------------------------------------------
315f468648 | Steve Melenchuk | 2014-10-19 22:35:00 -0600

Spellify siren songs.
And avatar songs, of course.

--------------------------------------------------------------------------------
80e8fcbb5f | Steve Melenchuk | 2014-10-19 22:15:54 -0600

Spellify Snorg's berserk.
Includes the odd full HP special case for posterity.

--------------------------------------------------------------------------------
f1a3e37cab | Steve Melenchuk | 2014-10-19 22:04:27 -0600

Make the shadow monster's invisibility a spell.

--------------------------------------------------------------------------------
9f1b175bd2 | Steve Melenchuk | 2014-10-19 22:04:11 -0600

Don't abort out of all monster spellcasting.
WWWHHHEEEAAALLLSSS

--------------------------------------------------------------------------------
5fe55b6b48 | Nicholas Feinberg | 2014-10-19 20:28:22 -0700

<theTower> fr add the roar of a wumpus to xom

--------------------------------------------------------------------------------
d224f1c954 | theTower | 2014-10-19 21:46:17 -0400

Try to heal some vault scars from monster removals.
Admittedly, a bunch of this is abusing the new-ish torpor snail.

 * The Lair worms end now has torpor snails instead of fire drakes
   (instead of elephant slugs / etc) and yellow wasps instead of
   orange rats (instead of giant fireflies), with some placement
   adjustments to not make it too overwhelming. Still much harder
   than before, of course.
 * The Lair dogs and bears end uses a little more of each of its
   occupants (incidentally buffing the still-weak vault), instead
   of replacing the grizzly bears with hogs. It's a bit less variety,
   and I like the notion of getting some mileage out of hogs,
   but they are completely bizarre picks for the context.
 * One of Lom's vaults gets a trio ofshock serpents instead of
   a trio of lightning spires (instead of a trio of vapours).
   Eel statues aren't worthwhile for Pan.
 * An abyss vault gets a choice of a torpor snail or a giant leech,
   instead of a choice of a death yak or a giant leech (instead
   of an elephant slug or a giant leech). Some monster re-arrangements
   are done to compensate for this.

--------------------------------------------------------------------------------
590e6b3930 | reaverb | 2014-10-19 21:24:56 -0400

Fix some odd indentation (player-equip.cc)

--------------------------------------------------------------------------------
7dd88b6199 | Nicholas Feinberg | 2014-10-19 17:51:19 -0700

Simplify cowardice

--------------------------------------------------------------------------------
4a5f32f318 | Corin Buchanan-Howland | 2014-10-19 17:59:24 -0400

Display the explosion radius in the Power Leap targeter.

--------------------------------------------------------------------------------
2a3cbd9202 | Shmuale Mark | 2014-10-19 17:21:44 -0400

Fix some monster tracers.
Englaciation can increase slow duration, you can always see invisible
allies, and undead have been able to cast Regeneration forever.

--------------------------------------------------------------------------------
ce08a738b6 | Corin Buchanan-Howland | 2014-10-19 17:18:36 -0400

Color Sacrifice Arcana mutations correctly.

--------------------------------------------------------------------------------
090cc2b85f | Shmuale Mark | 2014-10-19 17:13:52 -0400

Centralise monster spell safety checks in _ms_waste_of_time.
The default diff for this commit is really awful; --patience makes
it much more clear what is happening.

--------------------------------------------------------------------------------
695e8f392c | Corin Buchanan-Howland | 2014-10-19 17:13:50 -0400

Clean up some messaging/prompts for amulet of faith under Ru

--------------------------------------------------------------------------------
ea7796adc8 | Corin Buchanan-Howland | 2014-10-19 16:56:51 -0400

Make cowardly players not afraid of friendly neutrals
E.g. if you sacrifice courage, you are no longer terrified of Pikel's
slaves once they are freed.

--------------------------------------------------------------------------------
2a052a2bc6 | Neil Moore | 2014-10-19 16:20:25 -0400

Move a function and make it static.

--------------------------------------------------------------------------------
4e7979ef3a | Neil Moore | 2014-10-19 16:14:36 -0400

Remove another unused parameter (ChrisOelmueller)

--------------------------------------------------------------------------------
b2bb3d6974 | Shmuale Mark | 2014-10-19 14:36:27 -0400

Clean up _ms_waste_of_time.

--------------------------------------------------------------------------------
4e21a7f2b6 | Shmuale Mark | 2014-10-19 13:31:09 -0400

Move functions only used elsewhere out of mon-abil.cc.
Some into the new mon-tentacle.cc!

--------------------------------------------------------------------------------
3c9a874dbc | Florian Diebold | 2014-10-19 18:52:53 +0200

Remove two unused lua functions.
These were unused for 5 years (since commit 5500ccf).

--------------------------------------------------------------------------------
9a7da1a108 | Florian Diebold | 2014-10-19 18:45:26 +0200

Select wall and floor tiles deterministically.
This is mostly so the view doesn't change randomly after level
excursions, e.g. after off-level jelly eating.

This required modifying the lua functions lev_floortile and lev_rocktile
to add a depth parameter; I didn't find any uses of those functions.

--------------------------------------------------------------------------------
de15f7fd43 | Neil Moore | 2014-10-19 08:43:22 -0400

Remove two more unused parameters (ChrisOelmueller)
Both have apparently been unused since 0.2 or so.

--------------------------------------------------------------------------------
ed9808d702 | Neil Moore | 2014-10-19 08:27:54 -0400

Remove an unused parameter (ChrisOelmueller)
Unused since 0.3-a0-224-g2931994.

--------------------------------------------------------------------------------
b067c6efce | Neil Moore | 2014-10-19 07:51:03 -0400

Fix compilation (#9057)
monster_info doesn't have the heads() method, and even if it did, mon is
not a pointer here.

--------------------------------------------------------------------------------
6160ba88b3 | Nicholas Feinberg | 2014-10-19 00:02:37 -0700

Spellify Wretched Stars' Corrupting Pulse

--------------------------------------------------------------------------------
21d001f21a | Nicholas Feinberg | 2014-10-18 23:38:23 -0700

Oops

--------------------------------------------------------------------------------
08a372b927 | Nicholas Feinberg | 2014-10-18 23:35:42 -0700

Fix abomination "mutation"
They were marked undead, so couldn't be mutated.

Also arguably cleanup some chaos spawn code.

--------------------------------------------------------------------------------
b5ea12a73b | Nicholas Feinberg | 2014-10-18 22:58:24 -0700

Actually use TILE_NUM_KEY (oops)

--------------------------------------------------------------------------------
f644000b47 | Nicholas Feinberg | 2014-10-18 22:52:52 -0700

Clean up monster corruption
Abomination malmutation is broken (doesn't actually make visual
changes, like it seems to think it does), but that was broken
before too. Similarly, monster malmut & corrupt should be
differentiated, but that's also not a problem introduced by this,
so...

--------------------------------------------------------------------------------
8ec39d86f0 | Nicholas Feinberg | 2014-10-18 22:21:32 -0700

Use a #define'd key

--------------------------------------------------------------------------------
944d52f8ff | Nicholas Feinberg | 2014-10-18 22:20:31 -0700

Split up a bad ASSERT (wheals)

--------------------------------------------------------------------------------
98a800c376 | Steve Melenchuk | 2014-10-18 21:37:23 -0600

Add HDA/QDA to another missed list.

--------------------------------------------------------------------------------
caae8b5a15 | Shmuale Mark | 2014-10-18 22:51:18 -0400

Don't give monsters two chances to decapitate player hydras.

--------------------------------------------------------------------------------
99fa9bcddb | Shmuale Mark | 2014-10-18 22:51:18 -0400

Add actor::heads().
For a bit more encapsulation of monster::number, and some code
deduplication.

--------------------------------------------------------------------------------
5812176508 | Brendan Hickey | 2014-10-18 22:41:59 -0400

Add DISALLOW_COPY_AND_ASSIGN macro
This macro is used to disable the copy constructor and assignment operator
for a class.

--------------------------------------------------------------------------------
cf7d85a511 | gammafunk | 2014-10-18 21:05:09 -0500

An incredible masterpiece of heartbreaking perfection for player tiles
Legends say that after creating this epic rendition of the mighty
Jörmungandr, the Tile Master ascended to Godhood.

I've made weapon and shield offsets that aren't the natural ones, but
these don't cause visual artifacts in WebTiles.

--------------------------------------------------------------------------------
5d8dc0fbb9 | Shmuale Mark | 2014-10-18 21:14:17 -0400

Don't z-cast OTR, Ozo's Fridge, and CL with no monsters nearby.
Hopefully a more selective approach will be less error-prone...

--------------------------------------------------------------------------------
9ae3ee339a | Shmuale Mark | 2014-10-18 21:07:08 -0400

Don't try to be so clever about when you should cast spells (#9054).
This reverts commit 6c63de089233b21898f7f25c3ad56a61541e7683.
This reverts commit ec40e5ec1d95582f6eab9ed449aed67055ef9595.

--------------------------------------------------------------------------------
a301cdbfc0 | Shmuale Mark | 2014-10-18 20:54:40 -0400

More title tweaks & fix indentation.
Make Cloud Mage a more high-level title (just how much of an expert is
Plog the Cloud Mage, anyway?), and give Jiyva worshippers a "Dissolving"
title as a nod to Dissolution.

--------------------------------------------------------------------------------
4284fc7847 | Shmuale Mark | 2014-10-18 20:54:40 -0400

Refactor describe_god() a bit.
To get rid of the icky recursion, and keep god_desc_type contained to
the file.

--------------------------------------------------------------------------------
86424da06f | Nicholas Feinberg | 2014-10-18 17:17:28 -0700

Oops

--------------------------------------------------------------------------------
f3cef8307a | Nicholas Feinberg | 2014-10-18 17:06:35 -0700

Add placeholder qda tiles
Simple edits of the mottled dragon armour tiles.

Not sure how I feel about the purple accent on the item armour
tile - might be a little overwhelming?

--------------------------------------------------------------------------------
e2ae0e8ebe | Nicholas Feinberg | 2014-10-18 16:32:11 -0700

Add placeholder hda tiles
Simple edits of the storm dragon armour tiles.

...might be a little *too* stealthy....

--------------------------------------------------------------------------------
d38c19035f | Nicholas Feinberg | 2014-10-18 16:30:59 -0700

Unbrace

--------------------------------------------------------------------------------
bae4a4298f | Nicholas Feinberg | 2014-10-18 16:07:54 -0700

Add qda/hda to sprints (Lightli)
(Quicksilver dragon armour & shadow dragon armour.)

--------------------------------------------------------------------------------
01787a87f6 | Nicholas Feinberg | 2014-10-17 21:12:33 -0700

Don't give Roxanne a wand (rchandra)
She is a statue!

--------------------------------------------------------------------------------
8c852fd8e7 | ontoclasm | 2014-10-17 23:12:33 -0500

Add claymore tiles to UNUSED

--------------------------------------------------------------------------------
aaaa7d02ad | Nicholas Feinberg | 2014-10-17 21:03:31 -0700

Export MR+ to a const

--------------------------------------------------------------------------------
8189f192c0 | Steve Melenchuk | 2014-10-17 21:03:31 -0700

A first pass at quicksilver dragon armour.
Base AC 10 (same as PDA, since quicksilver dragons and pearl dragons
have the same AC), encumbrance 6 (one point higher than MDA),
unenchantable. (That is, always +0.) Also, MR+.

--------------------------------------------------------------------------------
5f7f0691f5 | Nicholas Feinberg | 2014-10-17 21:01:11 -0700

Add Shadow Dragon Armour
A heavy armour that makes you stealthier than if you were naked.
(Stlth++++, a net positive of Stlth+.)

AC and EV are based on storm dragon armour: 10/15 respectively.

--------------------------------------------------------------------------------
c235d9a2c9 | Nate Rook | 2014-10-18 01:04:18 +0000

Add a mutation that powers up wands, but makes them use MP.
Level 1:  6 MP -> 17% more power
Level 2: 12 MP -> 34% more power
Level 3: 18 MP -> 50% more power

Mark wands at temporarily "useless" if no MP to zap them.

Signed-off-by: Brendan Hickey <brendan@bhickey.net>

--------------------------------------------------------------------------------
94d70de022 | ontoclasm | 2014-10-17 15:46:43 -0500

Triple sword tiles (roctavian, 9031)

--------------------------------------------------------------------------------
df99c7395d | Neil Moore | 2014-10-17 09:05:03 -0400

Remove some now-unused code (geekosaur)

--------------------------------------------------------------------------------
3377cb00ad | Nicholas Feinberg | 2014-10-16 22:59:25 -0700

Assert.

--------------------------------------------------------------------------------
f1d5bff7b2 | Nicholas Feinberg | 2014-10-16 22:42:14 -0700

Finish splitting up do_throw()
And rename it to a less java-y name.

--------------------------------------------------------------------------------
7e9dcc8997 | Nicholas Feinberg | 2014-10-16 22:28:26 -0700

Pull _choose_tentacle_toss_site into a separate func

--------------------------------------------------------------------------------
2fd9f1fed4 | Nicholas Feinberg | 2014-10-16 22:15:35 -0700

Adjust signatures, constify

--------------------------------------------------------------------------------
aca30ba679 | Nicholas Feinberg | 2014-10-16 22:07:11 -0700

Refactor _throw_site_score()

--------------------------------------------------------------------------------
c31d63b633 | Nicholas Feinberg | 2014-10-16 22:00:24 -0700

Spellify octopode crusher throwing

--------------------------------------------------------------------------------
a6b875bce8 | Nicholas Feinberg | 2014-10-16 21:46:24 -0700

Unbrace

--------------------------------------------------------------------------------
52d2f03a8b | Brendan Hickey | 2014-10-17 02:26:14 +0000

More chaos miscast removal

--------------------------------------------------------------------------------
e3e6e18bb0 | Brendan Hickey | 2014-10-17 02:13:49 +0000

Remove chaos attacker miscasts
While definitely Xom flavored, this is a bit of a cheap way to kill characters.
Players should lose because they screw up, not because we think it's funny that
they lose.

--------------------------------------------------------------------------------
9e400d76f8 | Nicholas Feinberg | 2014-10-16 17:41:39 -0700

Re-enable gh/vp food acquirement

--------------------------------------------------------------------------------
b8fc6576e2 | Nicholas Feinberg | 2014-10-16 17:30:30 -0700

Mark ?vuln as dangerous

--------------------------------------------------------------------------------
0bb254e486 | Neil Moore | 2014-10-16 16:49:41 -0400

Lift a repeated expression.

--------------------------------------------------------------------------------
a0f663d9ec | Steve Melenchuk | 2014-10-16 14:29:10 -0600

Clean up and generalise some servitor code; it's now monster-castable.
Inspired to do this both on account of some ##crawl-dev discussion and a
subtle bug related to initialising spectral/dancing weapons.

--------------------------------------------------------------------------------
c816191365 | Steve Melenchuk | 2014-10-16 14:07:01 -0600

Axe a header reference to a now-nonexistent function.

--------------------------------------------------------------------------------
53931951d6 | Steve Melenchuk | 2014-10-16 13:37:50 -0600

Convert panlord spell selection to new spell slot system.
Notably, they can occasionally get more spells than previously possible,
but the net result here should be largely the same as before.

--------------------------------------------------------------------------------
60c35b119a | Steve Melenchuk | 2014-10-16 13:25:53 -0600

Pick servitor spells like ghost spells.
...that is, use the entire list of servitor-approved spells and weight
them based on spell failure rate using the same (50 - fail / 50)^2
formula.

--------------------------------------------------------------------------------
aa9145cafb | Steve Melenchuk | 2014-10-16 13:16:51 -0600

Let player ghosts retain more spells.
Since they have the spell slots to do so now.

Each spell has a ((50 - fail) / 50)^2 percent chance of being retained
in the ghost's memory, where fail is the spell failure chance, so long
as the spell is castable as a monster spell.

Also fixes a display issue with player ghost spell lists in xv.

--------------------------------------------------------------------------------
19470920d0 | gammafunk | 2014-10-16 02:36:28 -0500

Don't hide felid hand slot tiles when using bladehands

--------------------------------------------------------------------------------
214e402d99 | ontoclasm | 2014-10-16 02:36:28 -0500

Op & Fe bladehand tiles

--------------------------------------------------------------------------------
4c30825a97 | Nicholas Feinberg | 2014-10-15 23:35:36 -0700

Adjust skill titles
Replace some bad ones with some less bad ones; re-order others.

--------------------------------------------------------------------------------
e6af918931 | theTower | 2014-10-16 01:31:30 -0400

Give Gloorx's vaults a pair of curse skulls.
Yes, I know, defiling a pure-ish late chunk of the game with more
summoners and adding more torment, whatever. Outside of Gloorx
himself, and a sparse sprinkling of shadow demons, the levels trend
towards a heavy focus on melee. While Executioner spam is unique,
it can use some support, and thus the one sparsely used undead
that probably doesn't need to go into Tartarus is spared for Lord Vloq
here. Most of the placements aren't very close to said fight, anyway.

--------------------------------------------------------------------------------
91d98883de | Nicholas Feinberg | 2014-10-15 21:03:51 -0700

Change exclusion force_more to use force_more_message
For the sake of standardization, mainly.

This reverts commit 38d16b392e3adcb0215327e2d970526c6730bdaa.

--------------------------------------------------------------------------------
38d16b392e | Brendan Hickey | 2014-10-16 03:47:10 +0000

Add exclude_forces_more rc option
Boolean option allows players to force more() when auto-exclusions are placed.
Since the player is generally within the exclusion zone when it's place, this
is enabled by default.

Using a dedicated option is an alternative to matching on the string message.

--------------------------------------------------------------------------------
8371119876 | Nicholas Feinberg | 2014-10-15 20:20:39 -0700

Standardize several stealth sources
To the standard one-pip (+) stealth value, 50.

Added a const, used it in a few places, and changed a few sources
- xom's stealth effect now gives +100 stealth (two pips), from
+80, and camoflauge & nightstalker both now give +50 stealth (one
pip) per level, from +40.

The latter can be reverted if there are balance concerns.

--------------------------------------------------------------------------------
554e069cd5 | Nicholas Feinberg | 2014-10-15 20:02:34 -0700

Remove the prompt for deleting shopping list items
Not nearly a momentous enough action to need a default-no prompt,
and very annoying.

--------------------------------------------------------------------------------
6ab1cc638e | Nicholas Feinberg | 2014-10-15 19:31:19 -0700

Pull armour specialness into itemprop (|amethyst)
Prep for future.

--------------------------------------------------------------------------------
0d3be8d85c | Corin Buchanan-Howland | 2014-10-15 22:06:24 -0400

Extend Ru Sacrifice Love to a few more cases
This change removes a daction and instead has every monster check for
an attitude change on every turn. As a result it handles the cases of
Pikel's slaves and Kirke's hogs. It also adds some logic to ensure that
Tukima's Dance-generated monsters go after you instead of their wielder.

--------------------------------------------------------------------------------
0f747f52cd | Nicholas Feinberg | 2014-10-15 18:42:15 -0700

Pull god_pitch messages into Form objects
Also adds a special prayer message for hydra form, since I'd
missed that earlier.

Shadow Form might also deserve one; I haven't thought of a good
one yet. Suggest your own!

--------------------------------------------------------------------------------
5a7b3294df | Nicholas Feinberg | 2014-10-15 17:46:34 -0700

Define a constant in player::attack_delay()

--------------------------------------------------------------------------------
159780bb54 | Steve Melenchuk | 2014-10-15 18:41:11 -0600

Move phantasmal warrior abil blink close to a spell slot (wheals).
... which I was planning on doing anyway, but wheals reminded me of it.

--------------------------------------------------------------------------------
d026c7f0ae | Nicholas Feinberg | 2014-10-15 17:38:11 -0700

Scale mail 11->10 EVP
Small buff.

--------------------------------------------------------------------------------
efb73c169b | Corin Buchanan-Howland | 2014-10-15 20:27:59 -0400

Clarify two sacrifice descriptions.

--------------------------------------------------------------------------------
7e4bc641cc | Neil Moore | 2014-10-15 18:09:05 -0400

Remove a misleading monspeak line.

--------------------------------------------------------------------------------
b5a7ef2971 | Shmuale Mark | 2014-10-15 13:55:02 -0400

Spellforged servitors are golems.

--------------------------------------------------------------------------------
7ab534ceed | Shmuale Mark | 2014-10-15 13:52:49 -0400

Make some binary resist methods return booleans.
Also adds MR_RES_WIND and MR_RES_PETRIFY, so that these can be specified
in mon-data.h rather than code.

--------------------------------------------------------------------------------
69f61b8753 | Shmuale Mark | 2014-10-15 12:58:26 -0400

Add acid to the Random Bolt desc (PleasingFungus).

--------------------------------------------------------------------------------
9680db7e10 | Shmuale Mark | 2014-10-15 12:44:18 -0400

Don't do 1.2x damage to rHellfire- monsters on hit.

--------------------------------------------------------------------------------
abe73d975e | Shmuale Mark | 2014-10-15 12:30:10 -0400

Make Corrosive Bolt penetrate through actors it hits.

--------------------------------------------------------------------------------
4fc96047c3 | Shmuale Mark | 2014-10-15 12:14:07 -0400

Move moth of wrath/queen bee berserking out of mon-abil.
It would be nice to make it use a beam, so that it could use the database
for the casting message, and that might duplicate less code. However,
I'm not sure how to best do so without changing behavior; for example, LOF
is not currently needed for it.

--------------------------------------------------------------------------------
1f4ad91e9e | Nicholas Feinberg | 2014-10-15 09:05:39 -0700

Make Dithmenos specifically hate fire
As opposed to "fire and Corona and haloes". The latter conducts
were a bottomless can of worms.

The new conduct is themed as Dithmenos having an age-old grudge
against fire. This means that Corona is now OK, as is the
Eveningstar of Brilliance; however, the latter's halo illuminates
nothing beyond them player themself while following Dithmenos,
which seems like a pretty reasonable & thematic setup.

--------------------------------------------------------------------------------
3e96c44c07 | Shmuale Mark | 2014-10-15 11:46:30 -0400

Remove a block of (apparently) unused code.
The comment suggested handling it earlier, but that seems to be exactly
what handle_mon_spell does.

--------------------------------------------------------------------------------
241b258609 | Shmuale Mark | 2014-10-15 11:46:14 -0400

Move some flay ending code from mon-abil.cc to mon-death.cc.

--------------------------------------------------------------------------------
3d54b915ee | Nicholas Feinberg | 2014-10-15 08:34:19 -0700

Tweak spell hunger numbers
Only notable effect is increasing level 5 spell hunger (by <15%),
to smooth over an odd discontinuity that minmay noticed.

The old numbers seem to date back to pre-Stone-Soup; I of course
can find no reasoning on them.

--------------------------------------------------------------------------------
9750bfee83 | Nicholas Feinberg | 2014-10-14 22:43:40 -0700

Clean up some unused mon-abil includes

--------------------------------------------------------------------------------
dfbef09712 | Nicholas Feinberg | 2014-10-14 22:43:30 -0700

Fix tiles compilation

--------------------------------------------------------------------------------
9713f1165e | Nicholas Feinberg | 2014-10-14 22:39:00 -0700

Trim out some obsolete breath weapon code

--------------------------------------------------------------------------------
f3caef1b3d | Nicholas Feinberg | 2014-10-14 22:26:56 -0700

Remove archaic itemprop comments

--------------------------------------------------------------------------------
27e869377c | Nicholas Feinberg | 2014-10-14 22:24:06 -0700

Arguably improve new monspell descriptions

--------------------------------------------------------------------------------
aec2d587ec | Nicholas Feinberg | 2014-10-14 21:39:41 -0700

Revert "Freeze Cocytus solid"
Turned out there'd been a misunderstanding about the level of
consensus present on this one. Reverted pending further
discussion.

--------------------------------------------------------------------------------
d78fb1ce1b | Shmuale Mark | 2014-10-15 00:14:07 -0400

Conjugate.

--------------------------------------------------------------------------------
3143e60247 | Shmuale Mark | 2014-10-14 23:57:35 -0400

Don't display a misleading message for Undeadhunter on a 0-dam hit.

--------------------------------------------------------------------------------
a8e5aaf0bc | Nicholas Feinberg | 2014-10-14 20:50:31 -0700

Freeze Cocytus solid
Disallow potion use in Cocytus, roughly inspired by the old days
of item destruction.

Should add a bit of mechanical interest to what's widely
considered one of the weaker Hell branches.

--------------------------------------------------------------------------------
a10c034f76 | Nicholas Feinberg | 2014-10-14 19:19:45 -0700

Fix a typo in a comment

--------------------------------------------------------------------------------
078b510b7a | Nicholas Feinberg | 2014-10-14 18:21:30 -0700

Add a helper function for duration field population

--------------------------------------------------------------------------------
3dbe1e1359 | Neil Moore | 2014-10-14 21:14:39 -0400

Remove an unneeded check.
If the pointers had been null, we would have already crashed by this
point.  Presumably this was a typo for !*a && !*b, but that is already
handled by the following if (because '\0' is not a digit).

--------------------------------------------------------------------------------
c033967717 | Neil Moore | 2014-10-14 21:14:39 -0400

10 GOTO DIJKSTRA

--------------------------------------------------------------------------------
9d285eabd6 | Nicholas Feinberg | 2014-10-14 18:12:46 -0700

Simplify veh range boost checks

--------------------------------------------------------------------------------
997841fd4f | Neil Moore | 2014-10-14 20:38:46 -0400

Let conjugate_verb conjugate to both singular and plural.
The latter is close to the identity function, except for "be" -> "are".

Also, use verb conjugation in a few more places.

--------------------------------------------------------------------------------
23299f23bc | Neil Moore | 2014-10-14 20:16:53 -0400

Constify a pointer array.

--------------------------------------------------------------------------------
f74d490f6a | Neil Moore | 2014-10-14 17:04:45 -0400

Don't claim unknown rods have spells.
This made i<letter> display the 'Spells' section even though nothing was
listed there.

--------------------------------------------------------------------------------
fa8acdd6d1 | Neil Moore | 2014-10-14 16:52:38 -0400

Check for definedness, not validity, in item_prefix etc.
This was making unIDed item_infos never get prefixes, because the subtype
was NUM_FOO and hence invalid.  Definedness is enough to avoid the problem
in #9046.

--------------------------------------------------------------------------------
7f81556f17 | Neil Moore | 2014-10-14 16:36:25 -0400

Fix unided rod spell list (#9048)
Two different symptoms:  1. i<letter> on unknown rods showed the actual spell
list; and  2. if any item_glyph overrides exist (even on unrelated items),
the game would crash when showing a cell with an unidentified rod.

--------------------------------------------------------------------------------
85c23f2d13 | Shmuale Mark | 2014-10-14 14:50:22 -0400

Fix some mistakes I made with flags in mon-cast.cc.

--------------------------------------------------------------------------------
6c63de0892 | Shmuale Mark | 2014-10-14 14:27:23 -0400

Allow z-casting area spells again (#9050).
Oops...

--------------------------------------------------------------------------------
d4af0a41a2 | Shmuale Mark | 2014-10-14 13:33:53 -0400

Revert "Use a constant."
This reverts commit 72cfd3c3af10289ee75862c3e85176c02a028426.

--------------------------------------------------------------------------------
8e1d57bf6d | Shmuale Mark | 2014-10-14 13:10:49 -0400

Restore old anti-magic behavior.
This is accomplished by splitting MON_SPELL_INNATE into _NATURAL, _MAGICAL,
and _DEMONIC. The last two are affected by antimagic; they have no
differences for now, in fact, but it seems like a good idea to future-proof
anyway.

--------------------------------------------------------------------------------
435241334b | Shmuale Mark | 2014-10-14 12:03:04 -0400

Simplify.

--------------------------------------------------------------------------------
eeb555b9f9 | Shmuale Mark | 2014-10-14 11:54:41 -0400

oops

--------------------------------------------------------------------------------
ad14eec116 | Shmuale Mark | 2014-10-14 11:02:28 -0400

Re-abstract out antimagic susceptibility.
I'm not certain we want to keep the check as is_actual_spellcaster() for
monsters, and if we decide to change, this will help do so. Either way
it being a method of actor saves some lines.

--------------------------------------------------------------------------------
67e4d283d6 | Florian Diebold | 2014-10-14 13:36:55 +0200

Webtiles: Don't do too much with undefined items (|amethyst).
If the new item is undefined, just send base_type and quantity to make
that clear to the client. If the old item was undefined, avoid looking
at it and just send everything.

--------------------------------------------------------------------------------
5a7e1d07a5 | ontoclasm | 2014-10-14 01:45:04 -0500

Hydraform & Irrad icons

--------------------------------------------------------------------------------
2aedaeb131 | ontoclasm | 2014-10-14 00:46:18 -0500

Acid blob tile (Bloax)

--------------------------------------------------------------------------------
95ecac0986 | Shmuale Mark | 2014-10-13 23:59:13 -0400

Unbrace / simplify.

--------------------------------------------------------------------------------
e26b82e7ec | Nicholas Feinberg | 2014-10-13 20:55:34 -0700

Fix a gammatypo

--------------------------------------------------------------------------------
917abd731c | Nicholas Feinberg | 2014-10-13 20:43:54 -0700

Changelog through 0.16-a0-1291-g8fa6bee

--------------------------------------------------------------------------------
3f29927a2a | Shmuale Mark | 2014-10-13 23:37:23 -0400

Remove the (basically) unused monster spell flags.
If you have the actual monster to check, then you should look at its
slots to see whether it's an actual spellcaster or priest, now. The class
flags were not removed since they are potentially useful if you don't
have an actual instance of that monster.

Fixes a bug where godless monsters could not polymorph into dual-wielding
monsters.

--------------------------------------------------------------------------------
8fa6bee8be | Nicholas Feinberg | 2014-10-13 20:26:49 -0700

Fix a comment

--------------------------------------------------------------------------------
86428655f0 | Nicholas Feinberg | 2014-10-13 20:22:02 -0700

Probably fix blank ghost brand names (_Jordan_)

--------------------------------------------------------------------------------
ab46bbd8ae | Shmuale Mark | 2014-10-13 23:10:21 -0400

Replace M_NOISY_SPELLS with a slot flag.

--------------------------------------------------------------------------------
64ed45d312 | Shmuale Mark | 2014-10-13 23:08:59 -0400

Give ice dragons ice breath.
GRUUUUUUUUUNT

--------------------------------------------------------------------------------
a738d029cd | Shmuale Mark | 2014-10-13 23:08:58 -0400

Remove M_FAKE_SPELLS (Grunt).
It was used by nothing important at this point.

--------------------------------------------------------------------------------
c40a653b59 | Nicholas Feinberg | 2014-10-13 19:46:41 -0700

Don't make Teleport Self break fear (minmay)
It probably also shouldn't cause ME_WHACK/ME_ANNOY, but this
fixes the immediate bug, at least.

--------------------------------------------------------------------------------
66d99bf010 | Steve Melenchuk | 2014-10-13 20:26:21 -0600

Turn some more mon-abils to spells.
Battlecry, Signal Horn, Seal Doors, and Flay.

Battlecry could use some improvements; it's still very monster-specific
right now. (Perhaps it could be split into three spells?)

(Time to give Flay to Gloorx Vloq?)

--------------------------------------------------------------------------------
65b0b99dfc | Neil Moore | 2014-10-13 22:21:47 -0400

Darken squares in targetter even without use_animations (minmay)
Perhaps this should be a separate option, but it should at least be
possible to darken in the targetter (without delay) even though the no-
monsters-in-range flash is disabled.

--------------------------------------------------------------------------------
4b216655b2 | Neil Moore | 2014-10-13 22:21:47 -0400

Autopickup spellbooks under Trog (minmay)
Even though they are forbidden, they should still be used as kindling.
This also overrides the autopickup exception for IDed spellbooks.

--------------------------------------------------------------------------------
0d3c31db8b | Neil Moore | 2014-10-13 22:14:36 -0400

Let lua item.subtype() work on unIDed books.
Returning "manual" or "spellbook" as before.

--------------------------------------------------------------------------------
3157409903 | Neil Moore | 2014-10-13 22:14:36 -0400

Check Lua autopickup func before autopickup_exceptions.
This possibly breaks some people's configs, but it makes sense for the
more-fine-tunable function to override the kind of blunt a_e.

--------------------------------------------------------------------------------
530620fe51 | Nicholas Feinberg | 2014-10-13 19:02:03 -0700

Remove lemuel_yak_island
Lair has enough free xp!

--------------------------------------------------------------------------------
2ebc1f6f8e | Nicholas Feinberg | 2014-10-13 18:35:02 -0700

Improve manual and sanity (|amethyst)

--------------------------------------------------------------------------------
212114b8f9 | Neil Moore | 2014-10-13 21:32:25 -0400

Display rod of striking hunger as N/A (minmay)
I was tempted to add an ASSERT(rod), but wizmode...

--------------------------------------------------------------------------------
0fe4370b89 | Nicholas Feinberg | 2014-10-13 18:28:08 -0700

Improve the manual's resting section (Not My Leg)

--------------------------------------------------------------------------------
f9ad953a24 | Nicholas Feinberg | 2014-10-13 18:23:19 -0700

Remove a reference to "life protection"

--------------------------------------------------------------------------------
f9316121a9 | Neil Moore | 2014-10-13 21:16:36 -0400

Show SPFLAG_MONSTER spells in ?/S (PleasingFungus)
We were already showing monster-only spells that didn't have this flag.

--------------------------------------------------------------------------------
69d2cd12c3 | Steve Melenchuk | 2014-10-13 19:06:07 -0600

Give SPELL_DRACONIAN_BREATH to nonbase draconians.
...allowing the removal of a lot of side code for nonbase draconian
breath.

Also give Tiamat her breath back.

--------------------------------------------------------------------------------
c163f23d95 | gammafunk | 2014-10-13 19:58:39 -0500

Changelog updates for 0.16

--------------------------------------------------------------------------------
7e65a6f534 | Steve Melenchuk | 2014-10-13 18:47:11 -0600

Don't let all monsters cast Dig.
WWWHHHEEEAAALLLSSS

--------------------------------------------------------------------------------
0a3df14969 | Steve Melenchuk | 2014-10-13 18:45:59 -0600

Turn conjuration-type monster special abilities into spells instead.
Since there's no reason for them to be abilities now that their
frequency of use can be controlled well.

This contains some incredibly ugly hacks to get Fedhas oklob spit
frequency to still scale with invocations / oklob HD properly. A better
solution would be welcome.

--------------------------------------------------------------------------------
8949d3979c | Corin Buchanan-Howland | 2014-10-13 20:24:10 -0400

Update changelog.

--------------------------------------------------------------------------------
18860b1d8d | Neil Moore | 2014-10-13 19:29:04 -0400

Your something is not buggy (PleasingFungus)

--------------------------------------------------------------------------------
58b2596e76 | Neil Moore | 2014-10-13 19:28:58 -0400

Don't crash when item_prefix is passed an invalid item (#9046)
This started showing up when _is_bookrod_type was changed to check subtype
before base type.  Fix it in both _is_bookrod_type and item_prefix.

The underlying problem may be that TilesFramework::_send_player sends
the invalid item in empty env slots, but I'm wary of changing that.

--------------------------------------------------------------------------------
ff175e5b4e | Neil Moore | 2014-10-13 19:08:24 -0400

Change an assert to ASSERT_RANGE.

--------------------------------------------------------------------------------
d4640c7c6c | Neil Moore | 2014-10-13 18:29:39 -0400

Unuse colour_t where necessary.
In mgen_data and mons_spec, -1 is used for col:any.  Also adjust some
menu_colour code to properly detect a bad colour.

This prevents crashes on &mgoblin col:any and on menu_colour = junk:the

--------------------------------------------------------------------------------
a00bdb8fd4 | Neil Moore | 2014-10-13 18:19:14 -0400

Use a less bogus bogus value

--------------------------------------------------------------------------------
9217ee2826 | Neil Moore | 2014-10-13 17:44:04 -0400

Update dir list in init.txt.
Maybe it should also mention that the current directory is searched.

--------------------------------------------------------------------------------
a555fd3e82 | Neil Moore | 2014-10-13 17:38:34 -0400

Move where-to-find-help to the top of init.txt

--------------------------------------------------------------------------------
ecb392adfe | Neil Moore | 2014-10-13 17:35:49 -0400

Brace and unbrace.

--------------------------------------------------------------------------------
3c306e11e7 | Steve Melenchuk | 2014-10-13 15:18:56 -0600

Use the correct LOS type for chain spell caster LOS check (wheals).
Chains won't go through clouds, and you can therefore no longer destroy
lemuel_hellion_island without subjecting yourself to hellfire.

--------------------------------------------------------------------------------
2d069248b0 | Shmuale Mark | 2014-10-13 17:08:11 -0400

Update documentation (lobf).

--------------------------------------------------------------------------------
2b232999ed | Shmuale Mark | 2014-10-13 17:08:05 -0400

Use colour_t.
None of these seem to be marshalled.

--------------------------------------------------------------------------------
ec40e5ec1d | Shmuale Mark | 2014-10-13 16:56:52 -0400

Make LOS-effect spells abort if there are no hostiles in view.
Hopefully this has no effect on other spells, though I obviously haven't
tested every one. You can still cast them with Z, naturally.

--------------------------------------------------------------------------------
292f5e2e18 | Shmuale Mark | 2014-10-13 15:57:38 -0400

Don't let Chain Lightning arc out of the caster's LOS.
It's somewhat abusable, and there was already a hidden power hit if it
did.

--------------------------------------------------------------------------------
33622736ae | Shmuale Mark | 2014-10-13 15:23:06 -0400

Correct documentation.

--------------------------------------------------------------------------------
51f2c9e7e8 | Shmuale Mark | 2014-10-13 14:13:11 -0400

Remove some old code I forgot to delete.

--------------------------------------------------------------------------------
c3bef153cb | Shmuale Mark | 2014-10-13 14:07:02 -0400

Clean up code for all rods being single-spell.
Since it was a design decision, I don't think it's worth keeping around
code to allow multi-spell rods; if someone comes up with a really cool
idea, it might be better to make it another kind of misc item anyhow.

--------------------------------------------------------------------------------
d9602afa95 | Nicholas Feinberg | 2014-10-13 07:36:00 -0700

Fix wisp/fungus untransform message (9045)

--------------------------------------------------------------------------------
976436b7ca | Shmuale Mark | 2014-10-12 22:34:43 -0400

Buff (?) hunters.
For the longest time, non-throwing hunters have apparently gotten 1
fighting, while throwing ones have gotten 2 fighting and 1 melee weapon
skill (usually short blades for their short sword). This just gets rid
of the melee weapon skill, which has the side effect of giving 2 fighting
to all hunters.

--------------------------------------------------------------------------------
7727008b80 | Shmuale Mark | 2014-10-12 22:34:43 -0400

Use item_attack_skill instead of {melee,range}_skill.

--------------------------------------------------------------------------------
291534b106 | Neil Moore | 2014-10-12 21:26:33 -0400

Enforce form singletonicity and constness.
Make the default constructor of the FormFoo classes private, and move
the static instances into their respective classes so they can be
initialised with that constructor.  Delete all the copy constructors
and assignment operators to prevent inadvertant copying.

Also make the base-class Form constructor protected, since we should
never make a base-class Form directly; and delete its default
constructor private so we never create an uninitialised Form.

--------------------------------------------------------------------------------
19e8507926 | Nicholas Feinberg | 2014-10-12 16:32:16 -0700

Reduce ranged weapon brand frequency
Halved for 'ego' weapons; reduced by ~3% for 'good' weapons,
though those get increased plusses if egoless, of course.
Seemed odd that they were twice as common as (most) melee weapon
types.

Hunting slings are unchanged ('good' hunting slings are buffed,
actually), as are triple crossbows.

Might help mitigate problems with "double-branded" ranged weapons
(stacking weapon+ammo brand types), at least until we implement
one of the medium-term solutions to that being considered.

--------------------------------------------------------------------------------
b979b481e7 | Nicholas Feinberg | 2014-10-12 16:01:01 -0700

Standardize weapon brand weight totals
We do not, in fact, need five digits of precision in weapon brand
weights.

--------------------------------------------------------------------------------
ca7a79be3c | Nicholas Feinberg | 2014-10-12 15:52:21 -0700

Tweak weapon brand generation code
Be a little more explicit about generating SPWPN_NORMAL instead
of a brand.

--------------------------------------------------------------------------------
0cc22cd1c7 | Nicholas Feinberg | 2014-10-12 15:51:12 -0700

Rust rust devils
Decrease their defenses considerably (to make them fit in better
as 4s without compromising their corrosion too much), increase
their xp multiplier (to factor in AF_CORRODE), and turn them
brown in console.

--------------------------------------------------------------------------------
cc95bad829 | reaverb | 2014-10-12 18:38:58 -0400

Refactor quarter staff brand generation code

--------------------------------------------------------------------------------
6dfaa0abcf | gammafunk | 2014-10-12 17:25:02 -0500

Give rebirth to a trusty old friend for custom tile purposes
Also update the weapon and shield offsets for this tile and the
current orb guardian tile.

--------------------------------------------------------------------------------
fa63d87213 | Nicholas Feinberg | 2014-10-12 15:16:30 -0700

Remove a redundant horror check

--------------------------------------------------------------------------------
47d1bbe2cf | Nicholas Feinberg | 2014-10-12 15:13:12 -0700

Refactor horror
It seems odd that this is a constantly refreshed duration; surely
we could better represent this with an attribute?

--------------------------------------------------------------------------------
17d6721512 | Shmuale Mark | 2014-10-12 18:09:41 -0400

Refactor demon weapon brand generation.
I assumed that the comments given were accurate. 3% for anti-magic is
probably more generous than it used to be, but it seems fair enough to me.

--------------------------------------------------------------------------------
ff169c625d | Shmuale Mark | 2014-10-12 18:09:41 -0400

Clean up a little, round.

--------------------------------------------------------------------------------
f76b63fab7 | Shmuale Mark | 2014-10-12 18:09:41 -0400

Refactor lajatang brand generation.

--------------------------------------------------------------------------------
e0c4251e9c | reaverb | 2014-10-12 17:50:06 -0400

Rename "da_counters" to "daction_counters"

--------------------------------------------------------------------------------
333d161911 | reaverb | 2014-10-12 17:50:05 -0400

Run util/checkwhite on options_guide.txt

--------------------------------------------------------------------------------
6e0463c3dd | Nicholas Feinberg | 2014-10-12 14:38:09 -0700

Refactor ice melting code

--------------------------------------------------------------------------------
647a5ddd2d | Neil Moore | 2014-10-12 16:48:30 -0400

Remove a now-unneeded variable and part of a debug message.

--------------------------------------------------------------------------------
1f84fbe628 | Neil Moore | 2014-10-12 16:48:26 -0400

Remove some now-unused beam callbacks.

--------------------------------------------------------------------------------
cd247bea09 | Neil Moore | 2014-10-12 16:38:44 -0400

Remove a now-unused parameter.

--------------------------------------------------------------------------------
52f052282a | Neil Moore | 2014-10-12 16:37:01 -0400

Simplify.
Without the pickupfn parameter, this will still go through pickup_potion
(with no extra checks because _give_monster_item calls pickup_item with
force == true).

--------------------------------------------------------------------------------
8be8fbf8ce | Shmuale Mark | 2014-10-12 16:24:05 -0400

Make sure Natasha keeps her wands through death (minmay).
If it was empty, she was refusing to take it, so it got destroyed
permanently. A bit surprised it wasn't causing unlinked item errors,
but it wasn't too hard to track down anyway.

--------------------------------------------------------------------------------
ec6d09a7f4 | Nicholas Feinberg | 2014-10-12 11:52:40 -0700

Changelog: Insubstantial -> Awakened
Seems to have been overlooked in the earlier change.

--------------------------------------------------------------------------------
dbcf9fbc02 | Nicholas Feinberg | 2014-10-12 08:31:54 -0700

Make wizmode superheal remove Breath

--------------------------------------------------------------------------------
728439eece | Nicholas Feinberg | 2014-10-12 08:27:44 -0700

Don't let AF_DROWN ignore ddoor (Mr. Lobe)
Some 'drowning'-themed attacks use KILLED_BY_WATER; historically,
this used only for "falling into water and dying instantly", &
ouch() assumed this was what was going on... and since instant
death drowning bypasses death's door, monsters that used AF_DROWN
(water nymphs, drowned souls) and a few other effects were able
to kill players through Death's Door.

Plausibly, those effects should not be using KILLED_BY_WATER at
all, but this should fix the problem for now.

--------------------------------------------------------------------------------
6e6693f34b | Neil Moore | 2014-10-12 05:13:40 -0400

Try harder to find a push destination when sealing doors.
And assert if we cannot.

--------------------------------------------------------------------------------
fdb90ac520 | Neil Moore | 2014-10-12 04:46:19 -0400

Don't save pointers to temporary string data.

--------------------------------------------------------------------------------
84771bf202 | Neil Moore | 2014-10-12 04:32:37 -0400

Allow reflexives in a few unrand messages.

--------------------------------------------------------------------------------
34bafb3302 | Neil Moore | 2014-10-12 04:32:37 -0400

Use verb conjugation functions in a few places.

--------------------------------------------------------------------------------
ba1b73c1f6 | Neil Moore | 2014-10-12 04:10:29 -0400

Split grammar code into a new file.

--------------------------------------------------------------------------------
bcac045a11 | Neil Moore | 2014-10-12 03:07:28 -0400

Support a few more verbs.

--------------------------------------------------------------------------------
3739d3147d | Neil Moore | 2014-10-12 03:06:11 -0400

Simplify conjugation of multi-word "verbs".

--------------------------------------------------------------------------------
2e6dc9b82d | Neil Moore | 2014-10-12 03:06:09 -0400

Refactor verb conjugation.
Move the body of monster::conj_verb into _conjugate_verb, make the latter
non-static, and call the latter from the former.

--------------------------------------------------------------------------------
a93f557caa | Nicholas Feinberg | 2014-10-11 22:58:17 -0700

Add hands_act()
To simplify some repetitive checks of MISSING_HAND.

Still more redundancy that could be cleaned up, of course...
(particularly in transform.cc; mea culpa!)

--------------------------------------------------------------------------------
e771f3e3b0 | Nicholas Feinberg | 2014-10-11 21:28:17 -0700

Add a missing image (checkers)

--------------------------------------------------------------------------------
373f5b0835 | Nicholas Feinberg | 2014-10-11 21:24:48 -0700

Fix hardcoded "hands"
In the Hellfire equip message, the confusing touch expiration
message,  and the finesse activation & experiation  messages.
(Oddly, the expiration messages handled MUT_MISSING_HAND, but
not felids/octopodes.)

Someone desperately, desperately needs to generalize the verb
conjugation ("hands slow" vs "hand slows") stuff - there must be
a dozen place that it pops up in the code, thanks to missing
hand...

--------------------------------------------------------------------------------
134f9feea8 | Nicholas Feinberg | 2014-10-11 20:27:27 -0700

Rework monster malmutation
Now that it's an actual effect that will actually appear in games
(irradiate), it should probably be made sane.

Changes:
- Action speed penalty (-1/stack) removed.
- AC penalty increased to -4/stack. (From -1/stack.)
- Damage penalty removed, for gross crimes against good coding.
  (Was -10%/stack, to max of -50%).
- HD penalty added; -10% stack, to max of -50%. Applies after
  draining, to avoid undue synergy.
- Effect made temporary; celebrate, Beoghites!

--------------------------------------------------------------------------------
3e6a9b3c41 | Nicholas Feinberg | 2014-10-11 20:27:09 -0700

New spell: Irradiate
Level 5 Conj/Tmut. Does heavy damage to adjacent foes (and
malmutates them, for flavour), but contaminates the caster; 2-4
casts will put you into yellow contamination. Design goal: play
around with contam mechanics and tmut/contam interactions & add
a neat tm support spell.

Currently in the Book of Alchemy and the Book of
Transfigurations. (Ice Form has been moved from the latter to the
Book of Ice, per Grunt's suggestion.)

--------------------------------------------------------------------------------
fdc150eb67 | Nicholas Feinberg | 2014-10-11 20:27:08 -0700

Add a temp param to holiness

--------------------------------------------------------------------------------
f690a60a06 | Nicholas Feinberg | 2014-10-11 20:06:11 -0700

Fix rust devil corrosion (simmarine)
The code that checked for body armour went missing, somehow.

--------------------------------------------------------------------------------
0a66ab9ff1 | ontoclasm | 2014-10-11 21:36:47 -0500

Spider sack tile (Bloax)

--------------------------------------------------------------------------------
31f0018def | ontoclasm | 2014-10-11 21:36:47 -0500

Various weapon/armour tiles (roctavian, 9031)

--------------------------------------------------------------------------------
e5341f7280 | ontoclasm | 2014-10-11 21:36:46 -0500

Double sword urand tiles

--------------------------------------------------------------------------------
3441892b16 | Nicholas Feinberg | 2014-10-11 18:11:22 -0700

Improve Shoals:5 decoy huts
By sometimes making one of them have a mimic rune instead! (Well,
it's really more like "sometimes have another rune hut and two
fewer decoy huts, but close enough...)

--------------------------------------------------------------------------------
30a626a038 | Shmuale Mark | 2014-10-11 21:03:08 -0400

Reorder items in chardumps too (ChrisOelmueller).

--------------------------------------------------------------------------------
41ff3a8f5e | Neil Moore | 2014-10-11 19:49:16 -0400

Always weight formicid weapon acq towards 2H (PleasingFungus)
Regardless of Shields skill.

--------------------------------------------------------------------------------
95fd2cd922 | gammafunk | 2014-10-11 18:09:42 -0500

Remove the MR-immunity check for applying confusion to monsters
This check prevented MR-immune monsters from ever being confusable,
but this was a strange exception. Many sources of confusion already
check MR, in which case the check is redundant, and those that don't
(Zin recite, mephitic cloud, confusing touch) all have reasonable HD
checks.

This is a buff to Zin recite for MR-immune monsters with moderately
high HD like the Hell lords and named Pan lords, but the recite will
still need reasonably high invocations and high piety to have a good
chance of confusing or dazing these monsters. We can consider
shortening the duration based on monster HD if this change makes
recite too powerful.

--------------------------------------------------------------------------------
eefc3abe85 | Nicholas Feinberg | 2014-10-11 11:06:17 -0700

Remove the hardcoded chain-spell force_more (minmay)
That's what rcfiles are for!

--------------------------------------------------------------------------------
e393dcd105 | infiniplex | 2014-10-11 12:42:12 -0500

layout-geoelf-castle-v2

--------------------------------------------------------------------------------
2c9155b33c | infiniplex | 2014-10-11 12:42:12 -0500

Improved LUA primary_vault_dimensions function

--------------------------------------------------------------------------------
1ce2b6af52 | infiniplex | 2014-10-11 12:42:12 -0500

Re-added layout_onion_city to Elf with better windows

--------------------------------------------------------------------------------
453ed2641c | infiniplex | 2014-10-11 12:42:12 -0500

Improved algorithm to place multiple doors on long walls

--------------------------------------------------------------------------------
0537573e42 | Nicholas Feinberg | 2014-10-11 10:33:27 -0700

Adjust erik_ogre
Replace the rust devil with a goliath beetle, shift the vault
back down to its original depth, and remove a spoilery bit of
loot. Hangedman has plans for a more complete revamp, but this
should get it in better shape, I think.

Probably someone should have done this back when iron devils
were moved to 10 speed, but it's particularly relevant now that
they've been rusticated.

--------------------------------------------------------------------------------
02846e54a8 | Nicholas Feinberg | 2014-10-11 07:43:32 -0700

Clarify the decapitation clarification (|amethyst)
Again, wrt Hydra Form.

--------------------------------------------------------------------------------
505bced39c | Nicholas Feinberg | 2014-10-10 20:00:31 -0700

Clarify the consequences of decapitation
In Hydra Form.

Bonus: Also reveals a previously semi-secret monster hydra
mechanic! (Healing when their heads are lopped off.)

--------------------------------------------------------------------------------
2f83ac430e | Neil Moore | 2014-10-10 21:28:36 -0400

Fix ability letter save-compat for jump removal.

--------------------------------------------------------------------------------
aea2a1e8d2 | Corin Buchanan-Howland | 2014-10-10 20:04:36 -0400

Changing mute status display to remove the word 'permanently'.
Zin recite still inflicts permanent mute status, but the phrasing
works better now that Ru inflicts temporary mute.

--------------------------------------------------------------------------------
efa4bb82fb | Corin Buchanan-Howland | 2014-10-10 20:04:35 -0400

Change 'jump' to 'leap' in a few Power Leap messages.

--------------------------------------------------------------------------------
7056937a82 | Corin Buchanan-Howland | 2014-10-10 20:04:35 -0400

Down-underify a couple Ru messages.

--------------------------------------------------------------------------------
db6f02c8d3 | Neil Moore | 2014-10-10 18:33:10 -0400

Widen artp tweak prompt columns.
Also a few names that were mangled to fit in 5 columns.

--------------------------------------------------------------------------------
6b0d9f3ffa | Neil Moore | 2014-10-10 18:27:08 -0400

Don't break artp tweak prompt on < shortcut.
Escape it properly as "<<".  Also refactor a bit.

--------------------------------------------------------------------------------
7bb0d7ae2e | Neil Moore | 2014-10-10 18:16:11 -0400

Add autopickup exception for identified "regen (#9037)

--------------------------------------------------------------------------------
8a6b7731d2 | Neil Moore | 2014-10-10 18:13:30 -0400

Don't count randart rCorr as innate (rchandra)
This caused amulets of resist corrosion to be tagged as useless when
the player wears an rCorr randart.

--------------------------------------------------------------------------------
ed0958e9bd | Nicholas Feinberg | 2014-10-09 22:29:24 -0700

Hackily add a message for player ghost brands
Never again will I have to use !log to check if that AK has a
distort weapon.

--------------------------------------------------------------------------------
2cf9812bd3 | Nicholas Feinberg | 2014-10-09 22:17:52 -0700

Tidy unused fields

--------------------------------------------------------------------------------
aaf2a87e46 | Nicholas Feinberg | 2014-10-09 22:02:54 -0700

Don't set paralysed ghost ev to 0
That is, if a player died when paralysed, their ghost's EV
probably shouldn't reflect that. (And a few other 0-ev cases.)

--------------------------------------------------------------------------------
3cebfc1d9e | gammafunk | 2014-10-09 23:51:28 -0500

Remove jump-attack
The ability never worked particularly well in its original form. Its
original intent was to combine attacking and translocation, but
because it ended up being a low-level ability, the attack become only
a tool to ensure the repositioning wasn't brokenly powerful rather
than a meaningful thing by itself. This was particularly true for
stabbing, which had to be disabled in jump-attack so that it didn't
break stealth. Boots of jumping never saw much use, and while there
are a few fans of felid jumping, that species already has tremendously
good positioning ability.

The shadow-step ability with Dithmenos uses the core jump-attack
targeting code and is similar to jump-attack in many ways. So fans of
jump-attack can worship Dith to get an ability that works better in
general because of shadow-step's very specific (and non-annoying)
targeting restrictions, its better range, and its not having awkward
compromises from trying to combine attack with movement on a ability
requiring no investment.

Despite the shared code with shadow-step, a lot of the code most in
need of refactoring was simply removed, including the interactions
with melee-attack. I enjoyed coding jump-attack back when I was
learning the codebase, especially finally figuring out the difficult
direction UI code. But now that the feature has evolved into something
better, I'm happy to see all this code and bad gameplay go the way of
item destruction. rip in peace.

--------------------------------------------------------------------------------
b91e0ce0b4 | Nicholas Feinberg | 2014-10-09 21:41:22 -0700

Add Hydra Form to Metamorphosis (simmarine)
And refactor.

--------------------------------------------------------------------------------
82feaa510f | Nicholas Feinberg | 2014-10-09 21:07:16 -0700

Fix more zin debug spamminess

--------------------------------------------------------------------------------
cacb006d67 | Nicholas Feinberg | 2014-10-09 21:07:16 -0700

Don't let black mark affect firewood
The demonspawn-shaped block of ice begins absorbing vital
energies! x27

--------------------------------------------------------------------------------
866e5ec645 | Chris Oelmueller | 2014-10-09 20:25:49 -0700

Reword MR resist message for fewer message collisions

--------------------------------------------------------------------------------
7552c39d02 | Nicholas Feinberg | 2014-10-09 20:05:57 -0700

Move cast_dispersal into spl-transloc.cc
And remove the declaration of a long-gone function.

--------------------------------------------------------------------------------
1a6eb9e56e | Nicholas Feinberg | 2014-10-09 18:52:21 -0700

Mostly de-randomize evp UC delay
It was difficult for players to tell what was going on (since it
was so very random), and unpredictable high-aut attacks could be
very unpleasant. There's a valid discussion about whether UC
needs to have a special heavy armour penalty at all (though I
think it does), but it doesn't need to be this nasty.

The new delay is very close to the old average delay; very
slightly lower at very low AEVP (< 5) and very slightly higher
above that. Armour delay is now completely eliminated at 3 AEVP
instead of 0, which is perhaps not ideal, but livable.

--------------------------------------------------------------------------------
de3b75fcaa | Nicholas Feinberg | 2014-10-09 17:46:56 -0700

GDA EVP 25 -> 23
Doesn't need to have higher EVP than crystal plate; the resists
are nice but not *that* amazing.

--------------------------------------------------------------------------------
3273a42f0e | Nicholas Feinberg | 2014-10-09 17:41:19 -0700

Unify short & long contam descriptions
By making the former a bit closer to the latter.

Also hopefully silence some sign comparison warnings.

--------------------------------------------------------------------------------
dd78dc1505 | Corin Buchanan-Howland | 2014-10-09 18:51:46 -0400

Allow abandoning religion while silenced
There's not balance issue here, and it simplifies a bad function.

--------------------------------------------------------------------------------
5b05a17e8c | Neil Moore | 2014-10-09 17:06:11 -0400

Don't crash when cleaving into a doomed SW.
Also pacified monsters on stairs, probably.  This is kind of a hack;
see the comment for suggestions for a better fix.

--------------------------------------------------------------------------------
63423bb038 | Nicholas Feinberg | 2014-10-08 21:33:30 -0700

Fix save compat for the Ring of Vitality
De-equip it on-load if it's equipped in a non-amulet slot.

--------------------------------------------------------------------------------
3e960d2ed2 | Nicholas Feinberg | 2014-10-08 21:17:34 -0700

Initialize webtiles aut count display
Fixes a bug that displayed initial time as NaN or as the last
character's elapsed time, depending.

--------------------------------------------------------------------------------
f32e93219f | Nicholas Feinberg | 2014-10-08 20:47:00 -0700

Don't check if an unsigned int is >= 0

--------------------------------------------------------------------------------
a42a0851d7 | Nicholas Feinberg | 2014-10-08 20:45:44 -0700

Replace the end-of-book non-slot with a macro.

--------------------------------------------------------------------------------
558514bb51 | Nicholas Feinberg | 2014-10-08 20:29:56 -0700

Remove an unused/unecessary message.

--------------------------------------------------------------------------------
da56f66c81 | Eduardo Gonzalez | 2014-10-08 20:28:08 -0700

Add a doxygen comment for prompt_invent_item.

--------------------------------------------------------------------------------
77cb719918 | Eduardo Gonzalez | 2014-10-08 20:27:09 -0700

Define one special constant in terms of another.
The player wield code assumes that the special return value from inventory
selection for hitting '-', PROMPT_GOT_SPECIAL, is equivalent to
SLOT_BARE_HANDS.  Define one in terms of the other to enforce this.

--------------------------------------------------------------------------------
2ed3cefe38 | Eduardo Gonzalez | 2014-10-08 20:25:53 -0700

Fix some doxygen tags.

--------------------------------------------------------------------------------
1f8aa9a81b | Ryan Svoboda | 2014-10-08 20:23:29 -0700

Fix a Lua error (9033)
When placing hangedman_mysterious_dungeon_monster_house in Dis.

--------------------------------------------------------------------------------
ae93a897b7 | Nicholas Feinberg | 2014-10-08 20:21:19 -0700

Fix ru text inconsistency (9032)

--------------------------------------------------------------------------------
af7d8a2d58 | Nicholas Feinberg | 2014-10-08 20:20:16 -0700

Cloak of darkness -> invisibility (Jeremiah)
Since that's what they are, and 'darkness' is a term of art
in crawl. (Ref. notably the spell Darkness)

Fun fact: during the discussion that led to this change, it
turned out that *multiple* devs thought cloaks of darkness gave
+stlth! (They do not.)

--------------------------------------------------------------------------------
af78512439 | Nicholas Feinberg | 2014-10-08 20:01:38 -0700

Revert Frederick dialogue changes
Since they don't really work without a complete rewrite of
mon-speak.cc. :(

--------------------------------------------------------------------------------
a56124e751 | Nicholas Feinberg | 2014-10-08 20:01:11 -0700

Semiapostheosize Frederick
Fred's a good unique & reasonably characterful, but just being
Another Human Unique wasn't really doing him justice. He already
had a few god-hating lines, and he *does* cast spells with
astonishing power; turning him into a demigod fits pretty well.

This is just a flavor change; I don't believe there's any
meaningful mechanical impact, though I could be wrong.

[dialogue changes are reverted in the next commit; putting them
here for posterity]

--------------------------------------------------------------------------------
7e436554ef | Nicholas Feinberg | 2014-10-08 19:47:03 -0700

Refactor describe_contamination()
Someone really needs to rewrite status:_describe_glow() so
these match up. describe_contam is too flowery, describe_glow is
too conservative. (Yellow glow is 'slight', red is adjectiveless?
*Really?*)

--------------------------------------------------------------------------------
ffa9e12ba4 | Nicholas Feinberg | 2014-10-08 19:16:52 -0700

Don't meld octopode rings in most forms
General feedback is that these weren't very usable for octopodes,
and op being extra-suited to tmut (in a sort of roundabout way)
isn't unreasonable - especially considering that they lose their
constrict while in these forms.

Bonus removed annoyance:, it made the first two ring slots
'special' (since those were the ones that wouldn't get melded)
and encouraged fiddly shuffling.

Ice, Dragon, Tree, and Fungus Form no longer meld op rings. Bat,
Pig, Wisp and Porcupine still do, since they also merge all other
rings.

--------------------------------------------------------------------------------
89d8383589 | Corin Buchanan-Howland | 2014-10-08 22:05:43 -0400

Reequip removed ring after sac hand if you still have a free limb
After Sacrifice Hand, if the limb you sacrificed had a ring on it, that
ring is removed. However, if you still have an open ring slot, presumably
you want to move the ring to that slot. So, now that happens.

--------------------------------------------------------------------------------
9bb23da5b1 | Corin Buchanan-Howland | 2014-10-08 20:14:45 -0400

Fix a few extra messages under Sac Hand.

--------------------------------------------------------------------------------
dc1e1a4a2c | Shmuale Mark | 2014-10-08 14:33:47 -0400

Fix a problem with some monster_spell iterators.
I admit that I don't know much C++, but before this Rupert would sometimes
cast Confuse in silence (since Paralyse would be removed, the iterator
would go back to the start, then it would be incremented and Confuse
would be skipped in the remove-if-silence-disallowed check). I'm fairly
sure that this is legal, at least, and the compiler gave me no warnings.

--------------------------------------------------------------------------------
ae15b9de7a | Shmuale Mark | 2014-10-08 14:10:41 -0400

Make M_SPELL_NO_SILENT a slot flag.
Just for fun (and as a test), let Rupert berserk even when he's silenced!

--------------------------------------------------------------------------------
ef8f20c096 | Shmuale Mark | 2014-10-08 13:59:42 -0400

Ditch SPFLAG_INNATE.
It's handled quite well by MON_SPELL_INNATE now.

--------------------------------------------------------------------------------
2aeb07fcde | Shmuale Mark | 2014-10-08 13:58:42 -0400

Pass slot flags farther, make sure 'priest' and 'wizard' get updated.
Should be no significant gameplay changes, except that cacodemons should
be able to dig while silenced in some places where they couldn't (though
maybe I missed something that let them anyway). Hopefully this takes
care of most of the rest of the assumptions in mon-cast.cc that actual
spellcasters only cast real spells, but there may be more elsewhere.

--------------------------------------------------------------------------------
3157814157 | ontoclasm | 2014-10-08 10:56:45 -0500

Double sword tiles

--------------------------------------------------------------------------------
f9fb1b7cda | Nicholas Feinberg | 2014-10-08 08:08:48 -0700

Mark sustain abilities as useless for dg

--------------------------------------------------------------------------------
f5c75bfe90 | Nicholas Feinberg | 2014-10-08 07:48:35 -0700

Add a Hydra Form FAQ to the spell description

--------------------------------------------------------------------------------
5c7dfaa01c | Nicholas Feinberg | 2014-10-08 07:38:24 -0700

Changelog through 0.16-a0-1163-g830ab83

--------------------------------------------------------------------------------
bd79db39cd | Shmuale Mark | 2014-10-08 09:28:49 -0400

Simplify, based on SPELL_NO_SPELL never being in a monster spell list.

--------------------------------------------------------------------------------
5058c3b1f8 | Shmuale Mark | 2014-10-08 08:37:07 -0400

Simplify slightly.
Has a huge lines changed count since it removed a level of indentation;
very little actual changes.

--------------------------------------------------------------------------------
830ab83b29 | Nicholas Feinberg | 2014-10-07 21:24:03 -0700

Fix armour randart tiles (|amethyst)
Most of the helmet/robe randart tiles weren't being used,
because item.rnd was never being set. Either of these changes
would have fixed the problem; made both in an attempt to mitigate
future errors, though there's only so much you can do with a
function like that...

--------------------------------------------------------------------------------
1dab0755a3 | gammafunk | 2014-10-07 22:55:25 -0500

Allow rCorr to generate on randart armour
This increases the distribution of the resistance somewhat since
there's no more preservation and acid damage is more common now. There
was some objection to it being found on weapons and rings, so we'll
try armour only for the time being.

--------------------------------------------------------------------------------
76933b4c64 | Nicholas Feinberg | 2014-10-07 20:54:54 -0700

Move the Serpent of Hell up a tier in pitsprint
Now that it's a threat.

--------------------------------------------------------------------------------
d16a32f573 | Nicholas Feinberg | 2014-10-07 20:54:54 -0700

Give innate sustain abilities to demigods (Brannock)
Suits their mechanical theme ("good stats"), and is a nice tiny
buff to match the last commit's tiny nerf. (Not that one was
needed, of course, but there's a symmetry there.)

--------------------------------------------------------------------------------
2b715f5250 | Nicholas Feinberg | 2014-10-07 20:08:26 -0700

Give demigods have double-stat-ups
On every third level, mainly for the elegance of the design.

This leaves their total stats unchanged, but delays them very
slightly & gives slightly less fine control.

--------------------------------------------------------------------------------
8274189694 | Nicholas Feinberg | 2014-10-07 19:04:12 -0700

Turn iron devils into rust devils
Less damage, but a touch attack that does nearly-guaranteed
corrosion on hit+damage.

--------------------------------------------------------------------------------
73a0d3772b | Steve Melenchuk | 2014-10-07 17:29:58 -0600

Distinguish between wizard/priest/innate spells on xv screen.
I imagine this won't work quite right if ever we get a monster who has
multiple spell sets with multiple types, but I don't think we have such
an enemy at present (if we consolidate abilities into spell sets this
may be a more pressing problem though).

Possibly this could also be added to the Lua functionality if it is
useful.

--------------------------------------------------------------------------------
2fd4d9bc8f | Steve Melenchuk | 2014-10-07 17:29:37 -0600

Don't crash on loading a game.

--------------------------------------------------------------------------------
ec61f8e93c | Shmuale Mark | 2014-10-07 15:38:42 -0400

Add a new randart name (Lasty, elliptic).

--------------------------------------------------------------------------------
054e700a26 | Neil Moore | 2014-10-07 12:25:37 -0400

Externalise that const

--------------------------------------------------------------------------------
a3d9824448 | Neil Moore | 2014-10-07 12:23:16 -0400

Constify and comment.

--------------------------------------------------------------------------------
ad79d95c52 | Jesse Luehrs | 2014-10-07 12:04:49 -0400

factor breath definitions out
this should make it more introspectable for monster

--------------------------------------------------------------------------------
3c060edf33 | ontoclasm | 2014-10-07 10:43:04 -0500

Fix butterfly rims (Bloax)

--------------------------------------------------------------------------------
ef8b8b3d8d | Neil Moore | 2014-10-07 11:39:42 -0400

Allow Gozag wrath to affect more than one item per stack (potatolizard)
Introduced in 0.15-a0-1882-g4eab053.

--------------------------------------------------------------------------------
d0a3430dd0 | Nicholas Feinberg | 2014-10-07 08:34:12 -0700

CAN-SPAM (zin recite debug messages)

--------------------------------------------------------------------------------
23955a264d | Nicholas Feinberg | 2014-10-07 07:55:31 -0700

Add doxygen comments for weapon_def.

--------------------------------------------------------------------------------
bb07038d81 | Nicholas Feinberg | 2014-10-06 22:38:14 -0700

Add a placeholder Hydra Form icon

--------------------------------------------------------------------------------
b839cf3072 | Nicholas Feinberg | 2014-10-06 22:33:49 -0700

Remove UNUSED potions (hangedman)

--------------------------------------------------------------------------------
6992869652 | Nicholas Feinberg | 2014-10-06 22:21:15 -0700

Pull in a large number of UNUSED potion tiles/colours
Seemed a pity to let them go to waste.

--------------------------------------------------------------------------------
a46aa49f54 | Nicholas Feinberg | 2014-10-06 21:53:25 -0700

Re-alphabetize monster descriptions

--------------------------------------------------------------------------------
d43391ddfb | Nicholas Feinberg | 2014-10-06 21:02:57 -0700

Clean up rltiles/UNUSED
Removed anything that I very strongly doubted would ever be used
or useful.

Also reorganized a couple of things.

--------------------------------------------------------------------------------
3a289399ff | theTower | 2014-10-06 23:08:28 -0400

Clean out some unused tiles that have gotten better replacements.
There are three groups of tiles in this rltiles/UNUSED/monsters folder:
tiles of monsters that have never been, tiles of monsters that were removed,
and tiles that were replaced with significantly better ones on currently-in
monsters. I've trimmed the last group by far as it has the least reason to
be kept, with exceptions granted to the smaller pan/hell lord tiles and the
old orb guardian tile.

If anybody wanted to use any of those tiles, they can find them in the git
history alongside plenty of other tile replacements that didn't get preserved
so explicitly.

--------------------------------------------------------------------------------
1e445a6f62 | Nicholas Feinberg | 2014-10-06 19:18:31 -0700

Add weapon/shield offsets for MONS_MISSING_GHOST
I could hardly not support my own tile, now could I?

--------------------------------------------------------------------------------
f098179de9 | Neil Moore | 2014-10-06 22:11:24 -0400

De-head a hydra in a random monster list (#8989)
It doesn't work, and gives a warning.

--------------------------------------------------------------------------------
c630e73b0d | Neil Moore | 2014-10-06 21:56:39 -0400

Add a dummy Elf:2 vault for when Blade exists (#8984)
The other two PLACE: Elf:2 vaults vetoed in this case, meaning
we could never successfully generate the level when Blade existed.

--------------------------------------------------------------------------------
f4274ef137 | Nicholas Feinberg | 2014-10-06 18:51:24 -0700

Make felids hiss at enemies (9026)
Instead of meowing at them. (They still meow for attention.)

Regrettably, this means that felids players will never again see
"you meow your recitation at the foo".

--------------------------------------------------------------------------------
c5b9f8cfc8 | Nicholas Feinberg | 2014-10-06 18:41:26 -0700

Disable fo digging/shafting in treeform (9024)
Possibly should be disabled in all major forms, but that feels
like an unecessary fo nerf. Will hold off for now.

--------------------------------------------------------------------------------
f6257ee5dc | Nicholas Feinberg | 2014-10-06 18:37:04 -0700

Staticify (Grunt)

--------------------------------------------------------------------------------
dcdf853444 | Nicholas Feinberg | 2014-10-06 18:23:16 -0700

Refactor last-item ID

--------------------------------------------------------------------------------
f5b9e2b963 | Nicholas Feinberg | 2014-10-06 18:11:29 -0700

Unbrace

--------------------------------------------------------------------------------
7bffaa61c4 | Nicholas Feinberg | 2014-10-06 17:49:13 -0700

Tweak lightli_temple_of_fire
Don't spawn monsters on the 1-tile blood-fountain alcoves
separated by lava from the actual room.

--------------------------------------------------------------------------------
5c509d4049 | Nicholas Feinberg | 2014-10-06 16:58:17 -0700

Add hydra form to polymorph effects
As an extremely rare easter egg, like dragon form.

--------------------------------------------------------------------------------
a09a578f6c | Nicholas Feinberg | 2014-10-06 16:57:46 -0700

Refactor player web escapes

--------------------------------------------------------------------------------
ad589c67c6 | Neil Moore | 2014-10-06 16:57:10 -0400

Fix doxygen comments.
doxygen needs a < after the docstring indicator if the comment follows
the commentee.

--------------------------------------------------------------------------------
1c656ec425 | Jesse Luehrs | 2014-10-06 13:07:26 -0400

oops, fix rings

--------------------------------------------------------------------------------
00c5a5d6e3 | Jesse Luehrs | 2014-10-06 13:03:19 -0400

fix identifying the last item of a type (PleasingFungus)

--------------------------------------------------------------------------------
df7328d716 | ontoclasm | 2014-10-06 11:53:00 -0500

Repurpose the old brown ooze tile as a standard ooze

--------------------------------------------------------------------------------
cc37236556 | Shmuale Mark | 2014-10-06 08:09:28 -0400

Give corrosive bolt to monsters with Random Bolt as well.
Unifies the codepaths for picking which bolt between direct casting
and rod evoking, to make this easier.

--------------------------------------------------------------------------------
2ad92fbbb5 | Nicholas Feinberg | 2014-10-05 21:12:54 -0700

Add Corrosive Bolt to the Rod of Destruction

--------------------------------------------------------------------------------
85111525c6 | Nicholas Feinberg | 2014-10-05 20:48:34 -0700

Improve distort rebrand miscast message (8991)

--------------------------------------------------------------------------------
4128f944ef | Nicholas Feinberg | 2014-10-05 20:48:27 -0700

Update AC/EV display on temp rebrands (8991)
Specifically, when temp-branding protection/evasion weapons, or
when those brandings end.

--------------------------------------------------------------------------------
b02f2d05de | Nicholas Feinberg | 2014-10-05 20:23:14 -0700

Remove an archaic xom/curse interaction (8991)
Cloaks and gloves no longer prevent ring/body armour handling,
so shouldn't give extra xom amusement if cursed.

--------------------------------------------------------------------------------
f80a45fa85 | Nicholas Feinberg | 2014-10-05 20:21:19 -0700

Improve (cursed) jewellery unmeld behaviour (8991)
Don't print "this foo is deathly cold" or the slot when unmelding
jewellery. (Primarily relevant for octopodes.)

--------------------------------------------------------------------------------
e9fb863c91 | Nicholas Feinberg | 2014-10-05 20:00:23 -0700

Improve manual descriptions of stabbing

--------------------------------------------------------------------------------
e8bea7dcc5 | Nicholas Feinberg | 2014-10-05 19:51:27 -0700

Don't warn for unID'd stasis amulets (9023)

--------------------------------------------------------------------------------
d281f79753 | Nicholas Feinberg | 2014-10-05 19:45:17 -0700

Fix an off-by-one crash error in atk verb asserts

--------------------------------------------------------------------------------
41955e95db | Nicholas Feinberg | 2014-10-05 19:45:15 -0700

Fix compilation

--------------------------------------------------------------------------------
a0af8f2e91 | Nicholas Feinberg | 2014-10-05 17:52:01 -0700

Clean up some equip/missing hand code
And also fix a messenging bug that I'm not sure can ever occur.

--------------------------------------------------------------------------------
1502bfe6c4 | Nicholas Feinberg | 2014-10-05 17:31:26 -0700

Recieved -> received (causative)

--------------------------------------------------------------------------------
888332fa50 | Nicholas Feinberg | 2014-10-05 17:31:26 -0700

Fix derived undead names

--------------------------------------------------------------------------------
9fc120013c | Corin Buchanan-Howland | 2014-10-05 20:00:05 -0400

Give hat of the alchemist +2 AC

--------------------------------------------------------------------------------
bc8bb3e70a | Nicholas Feinberg | 2014-10-05 16:51:06 -0700

Improve an assert

--------------------------------------------------------------------------------
74ece8732d | Nicholas Feinberg | 2014-10-05 16:50:45 -0700

Add missing Form method comments

--------------------------------------------------------------------------------
a4ee0d813b | Nicholas Feinberg | 2014-10-05 16:22:05 -0700

Revert unintended changes

--------------------------------------------------------------------------------
8a7130de23 | Nicholas Feinberg | 2014-10-05 16:21:09 -0700

Simplify

--------------------------------------------------------------------------------
ee5c105d1f | Nicholas Feinberg | 2014-10-05 15:58:46 -0700

Doxygenify transform.h comments (|amethyst)

--------------------------------------------------------------------------------
da7d4ef04f | Nicholas Feinberg | 2014-10-05 14:50:24 -0700

COMPILE_CHECK melee attack verbs' array size (wheals)

--------------------------------------------------------------------------------
78cfaad599 | Nicholas Feinberg | 2014-10-05 14:40:42 -0700

EOL mimic attacks.

--------------------------------------------------------------------------------
3bacb2d494 | Shmuale Mark | 2014-10-05 17:37:12 -0400

Fix compilation.

--------------------------------------------------------------------------------
33f34aeb30 | Shmuale Mark | 2014-10-05 17:35:57 -0400

Simplify.

--------------------------------------------------------------------------------
f644cefc0e | Corin Buchanan-Howland | 2014-10-05 17:26:31 -0400

Make sure players who sacrifice a hand stop training shields

--------------------------------------------------------------------------------
dd97c73f75 | Nicholas Feinberg | 2014-10-05 14:23:29 -0700

Fix typos (ChrisOelmueller, rchandra)

--------------------------------------------------------------------------------
2b14e785d6 | Shmuale Mark | 2014-10-05 17:06:14 -0400

More ^ tweaks.
* Make the top row(s) more consistent (ChrisOelmueller).
* Always wrap to 80 columns (PleasingFungus).
* Just give an mpr() if you have no god.
* A few other misc changes.

--------------------------------------------------------------------------------
a825645713 | Jesse Luehrs | 2014-10-05 15:47:39 -0400

quiet a warning

--------------------------------------------------------------------------------
4ca1693f13 | Jesse Luehrs | 2014-10-05 15:45:23 -0400

be more consistent about switching HP/Health and MP/Magic

--------------------------------------------------------------------------------
a708c5f5b7 | Nicholas Feinberg | 2014-10-05 12:22:07 -0700

Revert "Increase /fireball power considerably"
Per discussion; the special-case was considered undesirable.

This reverts commit 54a1dc874041e0ee9ed4fd75ff6e026a0beec46a.

--------------------------------------------------------------------------------
d6310a0d88 | Nicholas Feinberg | 2014-10-05 12:21:50 -0700

Double the max charges & recharge rate of weak wands
To compensate for charge wasteage, since players will rarely
bother scroll-IDing weak wands, and will rarely have the evo
skill to use-ID them. (Though with 48 charges, they'll probably
be evo-ID'd *eventually*... but wastage increase charge use by
2.5x, so it sort of balances out.)

Flame, frost, magic darts, slowing, confusion, and random effects.
(The last being only borderline weak.)

--------------------------------------------------------------------------------
68d4a5aa2a | Nicholas Feinberg | 2014-10-05 12:21:50 -0700

Auto-ID wand type on pickup.
The interesting choices are about IDing charge count, and the
un-choice of zap-IDing is undesirable.

--------------------------------------------------------------------------------
7da0bdf77f | Nicholas Feinberg | 2014-10-05 12:21:50 -0700

Make zapping not-fully-ID'd wands waste charges
To encourage ?iding wands.

The current wastage is 1d2 charges; at least 1 so that it's more
obvious in the {zapped: 2}, not higher than base 1 because that
would make the message uglier, and not much more than 1 since
that would be misleading to the player. (Consider 1d10 and
'zapped 2'.) 1d3 was considered, but seemed excessive.

Also removes the old message from zap-ID'ing random effects; now
that all wands ID on zap, it didn't really have a reason to be.

--------------------------------------------------------------------------------
c930d3e73a | Jesse Luehrs | 2014-10-05 15:23:47 -0400

remove the weird separation between stealth and the other bars

--------------------------------------------------------------------------------
c8ce63fa08 | Jesse Luehrs | 2014-10-05 14:51:32 -0400

handle column offsets for rotting/statrotting better

--------------------------------------------------------------------------------
b6f15c3020 | Jesse Luehrs | 2014-10-05 14:27:34 -0400

make the stat area of the % screen look better

--------------------------------------------------------------------------------
865caf8b20 | gammafunk | 2014-10-05 12:42:32 -0500

Properly check conditions for using weapon offsets in Tiles (#9021)
This bug was such that it only appeared to happen on some operating
systems. Invalid weapon tile offsets were always being used, instead
of only when using a custom tile and actually having offsets through
mcache or player settings.

--------------------------------------------------------------------------------
2c68c34f21 | Nicholas Feinberg | 2014-10-05 10:19:52 -0700

Much-belated comments.

--------------------------------------------------------------------------------
80ae22f3df | Corin Buchanan-Howland | 2014-10-05 13:07:01 -0400

Properly limit levels in new wanderer books.

--------------------------------------------------------------------------------
1393decaab | Nicholas Feinberg | 2014-10-05 09:49:33 -0700

Pull form AC into form objects

--------------------------------------------------------------------------------
caac5af8c6 | Corin Buchanan-Howland | 2014-10-05 12:44:42 -0400

Adjust resistances screen
This change puts all the proper resistances on the left and all the other
stuff on the right. It also removed rRot, because after discussing w/
devs, it was suggested that it's both insignificant enough and rare
enough not to bother mentioning.

--------------------------------------------------------------------------------
8677afe94b | Corin Buchanan-Howland | 2014-10-05 12:32:01 -0400

Add rMut and rCorr as supported unrand properties
Properly, this should have gone out before the Alchemist hat upgrade
but I was confused.

--------------------------------------------------------------------------------
b061e6b8c6 | Neil Moore | 2014-10-05 11:56:49 -0400

Don't bother with the name prop when building Faerie DA.

--------------------------------------------------------------------------------
3033765469 | Neil Moore | 2014-10-05 11:56:49 -0400

Don't mangle variable unrands on restore.
We no longer have the ARTEFACT_NAME_KEY that we used to determine whether
this was an existing item.  Instead, pass that as a boolean parameter.

--------------------------------------------------------------------------------
bae9fbcbd4 | Corin Buchanan-Howland | 2014-10-05 11:44:34 -0400

Make the hat of the alchemist more interesting.

--------------------------------------------------------------------------------
fa9e9b3d74 | Nicholas Feinberg | 2014-10-05 08:28:44 -0700

Don't cache unrand names
Since nothing else about them was cached, and it caused
annoying save compat concerns.

--------------------------------------------------------------------------------
6a3eec870c | Nicholas Feinberg | 2014-10-04 23:26:10 -0700

Fix a sign comparison (gammafunk)

--------------------------------------------------------------------------------
42b7bd35e7 | Jesse Luehrs | 2014-10-05 01:45:03 -0400

Revert "make ufetubi explode"
This reverts commit 33be25f15edd3375e6123d704f38b8bbf17cde93.

--------------------------------------------------------------------------------
1c6a78a363 | Jesse Luehrs | 2014-10-05 01:33:52 -0400

make ^Q also quit from the character selection screen

--------------------------------------------------------------------------------
33be25f15e | Jesse Luehrs | 2014-10-05 01:33:52 -0400

make ufetubi explode

--------------------------------------------------------------------------------
2c637406c7 | Nicholas Feinberg | 2014-10-04 22:28:31 -0700

New spellbook: the Fen Folio
Loosely Swamp-themed. Mainly concieved as a second Hydra Form
book (since Envenomations was way too tenous and other candidates
weren't much better), but the overall set is pretty decent.

Credit to |amethyst for the name.

--------------------------------------------------------------------------------
b9e60bd8b5 | Nicholas Feinberg | 2014-10-04 22:28:30 -0700

Add Hydra Form spell

--------------------------------------------------------------------------------
da423f4344 | Nicholas Feinberg | 2014-10-04 22:28:30 -0700

Chop off some hydraform heads

--------------------------------------------------------------------------------
33397f3015 | Nicholas Feinberg | 2014-10-04 22:28:30 -0700

Export hydra form heads

--------------------------------------------------------------------------------
e3e130f0b7 | Nicholas Feinberg | 2014-10-04 22:28:30 -0700

Export NEVER_CORPSE_KEY

--------------------------------------------------------------------------------
3484e0edc7 | Nicholas Feinberg | 2014-10-04 22:28:30 -0700

DEVOUR THY FOES
Now respects god conducts. Thanks, magicpoints!

Also thanks to Lasty for testing & finding bugs.

Still lets you bump yourself up a hunger level farther than
normal, which is probably not ideal.

--------------------------------------------------------------------------------
65eea95670 | Nicholas Feinberg | 2014-10-04 22:27:37 -0700

Cleanup cleaving checks

--------------------------------------------------------------------------------
6b03970100 | Nicholas Feinberg | 2014-10-04 22:27:36 -0700

Add hydra form

--------------------------------------------------------------------------------
ce57c8db34 | Nicholas Feinberg | 2014-10-04 22:27:36 -0700

Replace LAST_FORM with NUM_TRANSFORMS
There are no longer too many switch statements!

--------------------------------------------------------------------------------
256c879e7a | Steve Melenchuk | 2014-10-04 22:56:14 -0600

Unbreak monster spell display.
In multiple senses.

--------------------------------------------------------------------------------
6dabd9cd07 | Steve Melenchuk | 2014-10-04 22:44:22 -0600

Tag monster uses of teleself with MON_SPELL_EMERGENCY.
Possibly could use a SPFLAG_ONLY_EMERGENCY or similar.

--------------------------------------------------------------------------------
af0b7fdcf8 | Steve Melenchuk | 2014-10-04 22:42:00 -0600

Let naga (battle)mages spit poison.

--------------------------------------------------------------------------------
627feb32fc | Steve Melenchuk | 2014-10-04 22:41:57 -0600

Variable-length monster spell lists.
Allows for more or less than six spells to be defined. Hooray.

--------------------------------------------------------------------------------
a44beb339d | Shmuale Mark | 2014-10-05 00:15:53 -0400

Remove a redundant-looking block of code.
It seems this would stop monsters with a wizard spell from using even
innate abilities while silenced (there's a check for silence just below
the removed block).

--------------------------------------------------------------------------------
458d3f625d | Shmuale Mark | 2014-10-04 23:56:51 -0400

Remove M{F,}_SPELLCASTER.
It more or less meant "is this monster able to cast spells?"; that
question is perfectly well-served by looping over the monster's spell
list and seeing if any of them are not SPELL_NO_SPELL. The slight
performance hit is, I think, compensated by not having the confusing-ness
of the name (attack.cc had one case where can_use_spells was treated as
is_actual_spellcaster, for instance.)

The only intended change in gameplay is a slight change in how
polymorphing unique works: the new monster no longer has only half a
chance to cast, it only keeps the spells of uniques (I'm not certain,
but I think it used to keep the spells of vault monsters?), and there
may be some corner cases where the unique loses its spells, where before
it simply would not cast them (this would matter, for example, if it
were later polymorphed into a form that could cast them).

--------------------------------------------------------------------------------
1dfd631e3b | Nicholas Feinberg | 2014-10-04 20:54:06 -0700

Fix non-debug compliation

--------------------------------------------------------------------------------
04e925babb | Shmuale Mark | 2014-10-04 22:43:04 -0400

Display some useful info about spell slots on wizmode xv.

--------------------------------------------------------------------------------
dfd0663419 | Shmuale Mark | 2014-10-04 22:41:07 -0400

Don't call fixup_spells() on everything on every reload.

--------------------------------------------------------------------------------
b9ef30542b | Shmuale Mark | 2014-10-04 22:28:21 -0400

Add MON_SPELL_BREATH.
Does more or less what you might expect; makes the spell slot subject
to a breath timer. Also removes a function that seems now-redundant.

The only gameplay change should be that hellephants and nagas now have
timers for their breath weapons.

--------------------------------------------------------------------------------
a7ef73a4e8 | Shmuale Mark | 2014-10-04 22:24:47 -0400

Fix an mprf.

--------------------------------------------------------------------------------
333fec7a03 | Corin Buchanan-Howland | 2014-10-04 22:19:45 -0400

Change wanderer starting gifts
Replace the magic skill minor starting gift (a memorized L1 spell) with
a randart spellbook that includes exactly 2 spells with max total levels
== 4. Also, add the possibility of elemental evokers or a box of beasts
as the Evocations major gift. Evokers will be only usable a very small
number of times during the early game, and the box of beasts has
limited charges, which should balance out any extra power. The new
items should be an interesting change.

Also, adds support for exact-level themed spellbooks.

--------------------------------------------------------------------------------
a59e5956c8 | Nicholas Feinberg | 2014-10-04 18:47:06 -0700

Quiet an unused variable warning

--------------------------------------------------------------------------------
3fec9371e6 | Shmuale Mark | 2014-10-04 21:32:13 -0400

Injury Mirror is a god ability.

--------------------------------------------------------------------------------
97254e4a49 | Nicholas Feinberg | 2014-10-04 18:25:43 -0700

Remove MHP boost from wizmode super-heal
Annoying for testing.

--------------------------------------------------------------------------------
29c2251731 | Shmuale Mark | 2014-10-04 21:10:17 -0400

Show Hell on ctrl-o and G (legoman727).

--------------------------------------------------------------------------------
6dfd42a6e1 | Neil Moore | 2014-10-04 16:25:36 -0400

Put several more messages under DIAG_MONPLACE.

--------------------------------------------------------------------------------
3bf0c1f596 | Neil Moore | 2014-10-04 16:25:36 -0400

Add a &^Q toggle for level-builder messages.
This doesn't affect any messages that may come from Lua code, though.

--------------------------------------------------------------------------------
c62132e26d | Corin Buchanan-Howland | 2014-10-04 15:53:01 -0400

Remove some testing mprf statements.

--------------------------------------------------------------------------------
d6b1931037 | Corin Buchanan-Howland | 2014-10-04 15:47:16 -0400

Work harder to make sure Ru doesn't offer over-valuable sacrifices (rchandra)

--------------------------------------------------------------------------------
f07c5c5704 | Nicholas Feinberg | 2014-10-04 11:14:49 -0700

Mostly restore VS AM effectiveness (|amethyst)

--------------------------------------------------------------------------------
27e016aacd | Nicholas Feinberg | 2014-10-04 10:56:40 -0700

Halve VS AM bite damage
The core design motivation is the antimagic + MP leech effects;
the preposterous damage on top of that is entirely excessive!

--------------------------------------------------------------------------------
0df7b3ee54 | Nicholas Feinberg | 2014-10-04 10:46:50 -0700

Auto-ID wand type on mons zap
Not a very interesting piece of unknown information, and could
be potentially abusable with certain changes planned for the
short-term future.

--------------------------------------------------------------------------------
54a1dc8740 | Nicholas Feinberg | 2014-10-04 10:06:21 -0700

Increase /fireball power considerably
The game's already considered it to be a "high-value" wand,
better than /fire and /cold and on-par with /tele and /invis;
let's move it at least a bit closer to the latter.

--------------------------------------------------------------------------------
147e427589 | Nicholas Feinberg | 2014-10-04 09:12:59 -0700

Remove a half-implemented fakelang
It's been commented out for over two years, and doesn't seem to
work when re-enabled. Anyone who feels like they can get it
working is more than welcome to re-add it - properly, this time!

--------------------------------------------------------------------------------
3883eed140 | Corin Buchanan-Howland | 2014-10-04 11:43:41 -0400

Mark Horn of Geryon as useless under Sacrifice Love.

--------------------------------------------------------------------------------
0cbfe56f6a | Corin Buchanan-Howland | 2014-10-04 11:30:03 -0400

Remove random rounding from skill points-based gain on Ru sacrifice
This rounding was potentially resulting in a given sacrifice changing
its piety value each time you activated the ability. For sacrifices
with a value right on the border between two descriptions, you could
even tell when it was rounding up and when it was rounding down.

--------------------------------------------------------------------------------
4a46cac446 | Nicholas Feinberg | 2014-10-04 07:28:05 -0700

Fix certain Singing Sword lines (potatolizard)
@CAPS@ was getting applied before the checks for @player_genus@,
etc, turning them into @PLAYER_GENUS@ - which weren't matched!

--------------------------------------------------------------------------------
198a393285 | Neil Moore | 2014-10-04 02:58:58 -0400

Make escape actually cancel god choice.
We were only distinguishing cancellation from acceptance when the input
line was empty.

--------------------------------------------------------------------------------
0a4cff45a7 | Neil Moore | 2014-10-04 02:24:46 -0400

Unshift ring icons (#9017)
In an extremely enthusiastic manner.  Revert this when we no longer
have a ring and tile before RING_FIRST_RING.

--------------------------------------------------------------------------------
70978d4886 | Neil Moore | 2014-10-04 02:05:00 -0400

Add an option to return to the menu after saving (read)
restart_after_save (default false) depends on restart_after_game and
does nothing without it.

It could use more testing an refinement.  In particular, we bypass the
menu and actually exit when we have seen a HUP; but there are some
errors that cause emergency save-and-quit without a HUP.  Those error
messages would not be visible to the player with this option enabled.

--------------------------------------------------------------------------------
2c5d88619e | Neil Moore | 2014-10-04 01:44:38 -0400

Fix whitespace.

--------------------------------------------------------------------------------
0a3dd61365 | Eduardo Gonzalez | 2014-10-03 21:53:34 -0700

Note regen property of artefact amulets of regeneration.
Also corrects a typo that flagged +AC as redundant for rings of life protection
instead of rN+ during randart generation, not that this had any effect with the
current code.

--------------------------------------------------------------------------------
b60748f99d | Nicholas Feinberg | 2014-10-03 21:37:12 -0700

Tweak Asterion/hydra interactions
His spectral weapons probably should work like he does, not like
the player does!

Not that this could ever matter, of course.............

--------------------------------------------------------------------------------
211e83f399 | Neil Moore | 2014-10-03 23:14:15 -0400

Remember hydra heads for monster simulacrum too.
Unlike the player version, we skip over zero-headed hydra corpses
and don't even count them.  Maybe that should be changed but this
is simpler.

--------------------------------------------------------------------------------
56becf95b2 | Neil Moore | 2014-10-03 23:14:15 -0400

Remember hydra headedness for player simulacrum (ChrisOelmueller)
If it had no heads, produce no monsters (like Animate Dead) but consume
the flesh anyway (unlike Animate Dead).

--------------------------------------------------------------------------------
f0f92e786e | Neil Moore | 2014-10-03 23:14:15 -0400

Refactor.

--------------------------------------------------------------------------------
4e4684a310 | Nicholas Feinberg | 2014-10-03 20:13:19 -0700

Make FULLDEBUG less spammy by default

--------------------------------------------------------------------------------
fd097b2413 | Neil Moore | 2014-10-03 22:04:38 -0400

Improve a wizmode message and comment.

--------------------------------------------------------------------------------
330784f245 | Neil Moore | 2014-10-03 21:35:47 -0400

Fix a malarious description.
And swap clauses around.

--------------------------------------------------------------------------------
50ba60a473 | Nicholas Feinberg | 2014-10-03 18:27:58 -0700

Fix a sickly description

--------------------------------------------------------------------------------
bd6b26bf12 | Neil Moore | 2014-10-03 21:26:42 -0400

Improve sewer merfolk adjectives (simmarine)

--------------------------------------------------------------------------------
f5c13da230 | Nicholas Feinberg | 2014-10-03 18:10:46 -0700

Display monster magic immunity again
Kind of lonely-looking, tbqh; bikeshedding suggestions welcomed!

--------------------------------------------------------------------------------
8d4efe886b | Neil Moore | 2014-10-03 20:58:11 -0400

Prompt for a god with &W(rath).
Defaulting to your current god.

--------------------------------------------------------------------------------
681446f896 | Neil Moore | 2014-10-03 20:58:11 -0400

Allow specifying a default to choose_god.

--------------------------------------------------------------------------------
124ab71d4e | ontoclasm | 2014-10-03 19:01:33 -0500

Fix a shadow

--------------------------------------------------------------------------------
82be2f0d4a | ontoclasm | 2014-10-03 18:49:44 -0500

Make ego qstaves less rod-like (Brannock)

--------------------------------------------------------------------------------
2d8d7c9186 | Neil Moore | 2014-10-03 19:28:28 -0400

Prepare DJ_MP_RATE for slaughter (gammafunk)
Move it to player.cc (the only place it is used), make it a constant
instead of a macro, and put it in a TAG_MAJOR block.

--------------------------------------------------------------------------------
b791db0992 | Neil Moore | 2014-10-03 19:15:04 -0400

Fix whitespace.

--------------------------------------------------------------------------------
eea055a8fb | Neil Moore | 2014-10-03 18:53:23 -0400

Remove a now-unused function.

--------------------------------------------------------------------------------
5b9bb91dd0 | Neil Moore | 2014-10-03 18:24:37 -0400

Ensure random zombies get compatible bases (#6070, #8275, #8457)
Besides spider skeletons from 'place:Foo skeleton', this also avoids
picking M_NO_GEN_DERIVED and non-natural base types.

--------------------------------------------------------------------------------
631da9cea2 | Neil Moore | 2014-10-03 18:24:37 -0400

Don't allow chimera zombies etc.

--------------------------------------------------------------------------------
dfc7942016 | ontoclasm | 2014-10-03 10:17:22 -0500

Arbalest tiles (and shadow fixes)

--------------------------------------------------------------------------------
a5a51aa869 | Nicholas Feinberg | 2014-10-03 07:24:35 -0700

Fix ring ID

--------------------------------------------------------------------------------
2f85e2a784 | Neil Moore | 2014-10-03 10:00:27 -0400

Don't generate buggy buggy jewellery.

--------------------------------------------------------------------------------
e901fcf8ec | elliptic | 2014-10-03 06:01:57 -0400

Fix missing space in br.end and zig milestones (rchandra).

--------------------------------------------------------------------------------
281755fa9c | gammafunk | 2014-10-03 02:34:18 -0500

Options tile_weapon_offsets and tile_shield_offsets
These allow setting custom weapon and shield tile x,y offsets for use
with tile_player_tile. If only one offset pair is set, the other will
be taken for the hard-coded entries in mcache if they are available,
so the player doesn't have to figure out e.g. weapon offsets when they
only want to adjust the shield.

--------------------------------------------------------------------------------
69ea0458dd | Nicholas Feinberg | 2014-10-02 19:54:54 -0700

Turn rings of regen into amulets
Rings of regen are notorious for encouraging tedious swapping,
since they're at best marginally useful in combat, and quite
useful outside combat. The amulet slot has a number of types
that already discourage swapping (faith, guardian spirit,
gourmand), which should at least ameliorate the regen problem
somewhat; and if we later want to change regen to do something
similar, it'll be a bit more intuitive if it's in the same slot.

This also helps refresh the pool of amulets, which was starting
to look a little shabby.

--------------------------------------------------------------------------------
fff06f2485 | Shmuale Mark | 2014-10-02 22:47:46 -0400

Fix note-taking (a former nethack fork developer).

--------------------------------------------------------------------------------
6052d88167 | Shmuale Mark | 2014-10-02 22:42:01 -0400

Simplify shaft messages, always mark in notes (#1220).

--------------------------------------------------------------------------------
3841152acf | Shmuale Mark | 2014-10-02 22:18:29 -0400

Simplify.

--------------------------------------------------------------------------------
a4ee199518 | Shmuale Mark | 2014-10-02 21:19:46 -0400

Land the player in the right place when returning from Hells (magicpoints).
Again.

Also fixes the weirdness of being able to only use '>' to enter Hell
from the Hells. Maybe these should simply not be the same enum...

--------------------------------------------------------------------------------
4d1925b8d6 | Shmuale Mark | 2014-10-02 20:28:30 -0400

Use player_in_branch() more.
Will help a bit if we change you.where_are_you to be a level_id
you.level.branch or something, though I don't think I will.

--------------------------------------------------------------------------------
0d75b6d019 | Shmuale Mark | 2014-10-02 20:28:30 -0400

Get rid of some (semi-)unused functions.
This marks the removal of the last use of packed places outside save
compat code. RIP.

--------------------------------------------------------------------------------
76029e05d8 | Shmuale Mark | 2014-10-02 20:28:30 -0400

Make vault-defined monster lists use level_ids, not packed places.

--------------------------------------------------------------------------------
877881e6f2 | Shmuale Mark | 2014-10-02 20:28:30 -0400

Make kills.cc use level_id, not packed places.

--------------------------------------------------------------------------------
1e6cffc831 | Shmuale Mark | 2014-10-02 20:28:29 -0400

Make Note::place use level_id, not packed places.

--------------------------------------------------------------------------------
644a25de27 | Shmuale Mark | 2014-10-02 20:28:29 -0400

Make item_def::orig_place use level_id, not packed places.
This has no effect on savegame size, since level_ids are marshalled
as packed places.

--------------------------------------------------------------------------------
11409445d5 | Shmuale Mark | 2014-10-02 20:28:01 -0400

Remove some duplicate functions.
I would have left one that takes a packed place, but this is part
of gradually removing as many as possible

--------------------------------------------------------------------------------
5d868608c3 | Shmuale Mark | 2014-10-02 20:28:01 -0400

Remove two unused operator methods (#1704).

--------------------------------------------------------------------------------
0bb213be7b | Steve Melenchuk | 2014-10-02 16:11:48 -0600

Add HDA to mailmap and CREDITS.txt.

--------------------------------------------------------------------------------
6a05d28928 | Ryan Svoboda | 2014-10-02 16:58:00 -0500

Move Frances' shield to her left hand for player tiles.

--------------------------------------------------------------------------------
0339a9edde | gammafunk | 2014-10-02 16:33:12 -0500

Remove the declaration of an unused function

--------------------------------------------------------------------------------
7dc4b804ed | gammafunk | 2014-10-02 16:33:12 -0500

Further change instances of color to colour in the codebase
This is mostly renaming tilecolor functions/methods to tilecolour, but
there are also changes to variable names and some comments where
appropriate. The remaining function calls using "color" should be when
using outside libraries.

--------------------------------------------------------------------------------
06cd5dee03 | gammafunk | 2014-10-02 16:33:11 -0500

Rename the COLORS enum to COLOURS
Since we are standardized on British English, it's best to
consistently use that spelling for data names, and "colour" is already
used extensively elsewhere.

--------------------------------------------------------------------------------
e1b2b7f0eb | Neil Moore | 2014-10-02 16:50:15 -0400

Improve a comment (wheals)

--------------------------------------------------------------------------------
ed750fc4e6 | Steve Melenchuk | 2014-10-02 14:31:13 -0600

Apply monster antimagic only to spell spells.

--------------------------------------------------------------------------------
2cf1ba7579 | Steve Melenchuk | 2014-10-02 14:25:28 -0600

Add a couple of uses of MON_SPELL_EMERGENCY.

--------------------------------------------------------------------------------
8ee4e71ef6 | Steve Melenchuk | 2014-10-02 14:22:32 -0600

Use the flag parameter properly in _pick_spell_from_list (wheals).

--------------------------------------------------------------------------------
d724f914f8 | Steve Melenchuk | 2014-10-02 14:07:49 -0600

Hook up and comment on the use of MON_SPELL_EMERGENCY (wheals).
It's intended to treat that slot like the old emergency spell slot -
only using the spell in emergencies.

--------------------------------------------------------------------------------
57cb8ffec9 | Neil Moore | 2014-10-02 15:33:12 -0400

Fix x,
<PleasingFungus> Death To Switch Statements

--------------------------------------------------------------------------------
fce9e1a9a7 | Neil Moore | 2014-10-02 15:17:42 -0400

Set zombie base EV from jobs.

--------------------------------------------------------------------------------
c65ad4934d | Neil Moore | 2014-10-02 14:55:27 -0400

Don't override a provided base monster/number in define_monster.
This made '&mred draconian zealot' give a random-colour draconian
zealot, and '&mtwo-headed hydra' give a randomly-headed hydra.

The demonspawn change isn't strictly necessary now, but avoids the
possibility of using the wrong base for HP etc if something between the
beginning of the function and here changed monbase.

--------------------------------------------------------------------------------
5172c4fb25 | Steve Melenchuk | 2014-10-02 12:12:55 -0600

Do away with SPELL_MELEE in monster spell sets.
Its purpose of forcing a non-selection of spell is now irrelevant, being
superseded by spell slot frequencies.

It needs to stick around for now due to its relation with rods of
striking, but it's effectively an unthing these days.

--------------------------------------------------------------------------------
2e68b5db91 | Steve Melenchuk | 2014-10-02 12:12:55 -0600

Adjust frequencies of out-of-band spell selection.
This roughly mimics the old behaviour of having an approximate 1/4-1/3
chance of casting a spell on any given turn.

--------------------------------------------------------------------------------
26a28c060d | Steve Melenchuk | 2014-10-02 12:12:55 -0600

Increase casting frequencies of Lom Lobon and Gloorx Vloq.
Lom now casts on 9/10 of actions; Gloorx on 1/2.

Lom is most effective when he's employing his master selection of
spells, and this should make him considerably more threatening (he can
go 5-5 against Cerebov with this change where he used to lose horribly
on a consistent basis).

Gloorx has gotten consistently less threatening with new spells,
tactics, etc. that have cropped up over the past couple of years, and he
deserves a bit of help.

--------------------------------------------------------------------------------
67a27f5581 | Steve Melenchuk | 2014-10-02 12:12:55 -0600

Rework the monster spell selection algorithm to use the new data.
For normal spell selection, random2(200) is compared to the cumulative
weight of spell slot frequencies to select a spell; if it rolls above
the highest frequency a spell isn't cast. The spell frequencies have
been chosen to roughly coincide with old spell casting frequencies.

The specific meaning of spell slots also goes away in favour of flagging
spells themselves as self-enchantments, emergency spells, etc. In the
short term, this means, however, that spells that are only supposed to
be used in emergencies will be used at will.

There's still some work to be done here, such as when selecting spells
like Dig outside the normal channels, but in most cases this is now
working as intended.

--------------------------------------------------------------------------------
eb4c377dae | Steve Melenchuk | 2014-10-02 12:12:55 -0600

Don't divide by zero.

--------------------------------------------------------------------------------
09688aaae6 | Steve Melenchuk | 2014-10-02 12:12:55 -0600

Assign frequencies to spellforged servitor spell slots, too.

--------------------------------------------------------------------------------
9fbab266b5 | Steve Melenchuk | 2014-10-02 12:12:55 -0600

Fill out the new mon-spll.h fields.

--------------------------------------------------------------------------------
785f946f4f | Steve Melenchuk | 2014-10-02 12:12:55 -0600

Generalise the spell-list-to-spell-slots code for ghosts and monspecs.
A better approach for monspecs would be to allow specifying the weight
and spell flags in spells individually, but this is an acceptable
interim approach which doesn't require us to go and adjust every vault
defined spellcaster.

--------------------------------------------------------------------------------
d20b13ffd5 | Steve Melenchuk | 2014-10-02 12:12:50 -0600

First pass at a monster spell slot rework.
Right now this doesn't change behaviour any, but it allows for changes
in behaviour.

--------------------------------------------------------------------------------
bfd605fc5a | Neil Moore | 2014-10-02 13:48:38 -0400

Use correct monster info base_type for non-zombies
We shouldn't convert this to a species in the non-zombie case: we never
did that conversion here before.

This fixes nonzombie monsters all having size: giant (that value coming
from MONS_PROGRAM_BUG, the "species" of MONS_NO_MONSTER).

--------------------------------------------------------------------------------
c03620cc18 | Neil Moore | 2014-10-02 13:00:08 -0400

Rename a variable further (PleasingFungus)
PF pointed out that class monster no longer has a member named "ev".

--------------------------------------------------------------------------------
8944a90a5c | Neil Moore | 2014-10-02 12:32:05 -0400

Remove an unused variable.

--------------------------------------------------------------------------------
fb6bfb05d1 | Neil Moore | 2014-10-02 12:30:01 -0400

Fix signedness.

--------------------------------------------------------------------------------
ab1cef029c | Neil Moore | 2014-10-02 12:28:58 -0400

Don't shadow a method with a local var.

--------------------------------------------------------------------------------
e529b230ae | Neil Moore | 2014-10-02 12:28:43 -0400

Remove some debugging prints (wheals)

--------------------------------------------------------------------------------
cd97ca2479 | Neil Moore | 2014-10-02 12:21:41 -0400

Formatting.

--------------------------------------------------------------------------------
f3a34657ab | Nicholas Feinberg | 2014-10-02 08:50:11 -0700

Save compat for AC/EV monster info

--------------------------------------------------------------------------------
8cdc5824e6 | Nicholas Feinberg | 2014-10-02 08:27:30 -0700

Halve monster trog hand mr with ?vuln

--------------------------------------------------------------------------------
5618d5b7d9 | Nicholas Feinberg | 2014-10-02 08:19:43 -0700

Stop leaking AC/EV information in monster xv

--------------------------------------------------------------------------------
8c9ec26c84 | Nicholas Feinberg | 2014-10-02 07:59:33 -0700

Add a hacky 0-ev mon bar display

--------------------------------------------------------------------------------
18cf4eb9c8 | Nicholas Feinberg | 2014-10-02 07:36:10 -0700

Remove monster EV state

--------------------------------------------------------------------------------
53847a399e | Nicholas Feinberg | 2014-10-02 07:36:10 -0700

Remove monster AC state
We can calculate it from scratch, so we should; there's no reason
to keep state around, and plenty of reason not to!

Known side effects: hell beast AC is now based on HD, rather than
randomized independently. This is a good thing, I think; unless
we want to get rid of hell beast randomization (which I'd also be
fine with), it's better to make it more nearly meaningful, and
fewer independent rolls helps with that.

Also, undead derived from player corpses no longer have AC based
on the player's. I'm sorry. (It was probably buggy anyway.)

--------------------------------------------------------------------------------
1e9075421c | Nicholas Feinberg | 2014-10-02 07:36:10 -0700

De-anonymize zombies
Mainly in support of an ongoing refactoring effort, but this
also provides large UI benefits in terms of making it more
obvious that some zombies are stronger than others; that orc
warlord zombie is a lot nastier than the orc warrior zombie!
(This is something that was unclear to me when I started, and
probably to many other players.)

Many things are re-wrapped in monster_species() calls, possibly
out of paranoia.

--------------------------------------------------------------------------------
dfead932c0 | Shmuale Mark | 2014-10-02 08:55:13 -0400

Give the same MR to players and monsters from Trog's Hand.

--------------------------------------------------------------------------------
ffc47b1fe4 | Neil Moore | 2014-10-02 08:54:26 -0400

Approximate player ghost monster_info MR (#7269)
A stopgap: it would be better to store either the HD or the MR in the
ghost struct.

--------------------------------------------------------------------------------
8733f38a3d | Shmuale Mark | 2014-10-02 08:50:26 -0400

Actually make pandemonium lord see invisible show up right.
48382f717c didn't actually help it, since it never set u.ghost.can_sinv
for non-pghost ghost_demons.

Also fixes chimerae.

--------------------------------------------------------------------------------
4a9242f8b5 | ontoclasm | 2014-10-02 01:00:01 -0500

Scalemail doll tiles (Bloax)

--------------------------------------------------------------------------------
7a3a96c5cc | ontoclasm | 2014-10-01 22:52:40 -0500

Gsword & trident tile edits (plus some cleanup)

--------------------------------------------------------------------------------
88780a75e4 | gammafunk | 2014-10-01 22:12:18 -0500

Allow in-game updates mon_glyph to actually change the glyph
Previously in-game changes to mon_glyph via e.g
crawl.setopt("mon_glyph = ...") were changing the internal option but
not updating the monster glyph data, so the option change had no
effect. We now update the monster glyph data appropriately after the
option is changed. This is most useful for changing the player glyph
in-game with "crawl.setop("mon_glyph = player: ...")

Monster glyphs can also be changed in-game, but monster colours are
stored upon monster creation currently, so changing the setting only
affects newly created monsters. This will be fixed in a future commit.

--------------------------------------------------------------------------------
90dd98c9b5 | Shmuale Mark | 2014-10-01 22:55:49 -0400

Make portals to Hell non-bidirectional (Xen).
The exits out of Hell were already so.

--------------------------------------------------------------------------------
7445e1b89f | Neil Moore | 2014-10-01 22:45:54 -0400

Fix a misattribution.
That's me in the corner
That's me in the spotlight
Joining you in death

--------------------------------------------------------------------------------
52cf903293 | Neil Moore | 2014-10-01 21:21:20 -0400

Allow placing weird feature mimics in wizmode.
The same as can be placed by vaults.

--------------------------------------------------------------------------------
71960b55ee | Neil Moore | 2014-10-01 21:21:19 -0400

Allow placing mimics in wizmode.
With x(.

--------------------------------------------------------------------------------
661e4b32ae | Neil Moore | 2014-10-01 21:21:10 -0400

Only vanish mimics after removing the feature/item.
Otherwise we will crash when a solid feature mimic places smoke.

--------------------------------------------------------------------------------
0732e453d8 | Neil Moore | 2014-10-01 20:54:15 -0400

Add an activity interrupt for mimic discovery.

--------------------------------------------------------------------------------
30f28ffa95 | Nicholas Feinberg | 2014-10-01 17:44:42 -0700

Tidy up some compiler warnings (Grunt)

--------------------------------------------------------------------------------
550f6d732c | Steve Melenchuk | 2014-10-01 18:36:04 -0600

Fix compilation.
Oops.

--------------------------------------------------------------------------------
0e0db0a5e0 | Nicholas Feinberg | 2014-10-01 17:30:50 -0700

Remove the second person (magicpoints)
Not for the first time.

--------------------------------------------------------------------------------
9b067e8dae | Nicholas Feinberg | 2014-10-01 17:30:50 -0700

Disable hiding for friendly trapdoor spiders
It caused them to endlessly pop in and out, and accomplished
little besides driving the player insane.

It might have been better to instead disable *un*-hiding while
no enemies are nearby, but that would involve tinkering with
behavior code and I have absolutely no idea how.

--------------------------------------------------------------------------------
5ec9153050 | Chris Oelmueller | 2014-10-01 18:11:10 -0600

Convert most old-style MR multipliers to new specifiers
[Committer's note: this is a merger of seven commits, along with some
 adjustments to account for monsters removed and added since then. The
 only remaining MR multipliers are for monsters mainly derived from
 others - derived undead, chimera, and panlords/ghosts/illusions.]

--------------------------------------------------------------------------------
eef2b693d9 | Nicholas Feinberg | 2014-10-01 17:05:17 -0700

Wraith equipment tile offsets
Vanity development is the next big thing, I hear

--------------------------------------------------------------------------------
bd4db0c480 | Shmuale Mark | 2014-10-01 19:46:37 -0400

Un-break (#9008).

--------------------------------------------------------------------------------
7a022337e2 | Nicholas Feinberg | 2014-10-01 16:41:56 -0700

Restore old tuple sword descriptions

--------------------------------------------------------------------------------
5b2392fcb5 | Nicholas Feinberg | 2014-10-01 16:34:08 -0700

Add a bow of Krishna quote (roctavian)

--------------------------------------------------------------------------------
37ceb3cf76 | Neil Moore | 2014-10-01 17:11:40 -0400

Don't crash on arena curses against team friendly (#9009)

--------------------------------------------------------------------------------
739c3b2d43 | Jesse Luehrs | 2014-10-01 10:51:58 -0400

re-insult anyone with the slightest clue about how RL weapons work

--------------------------------------------------------------------------------
a3629627bd | Nicholas Feinberg | 2014-10-01 06:57:45 -0700

Refactor you_can_wear
No more horribly redundant special ifs for felids & octopodes.

--------------------------------------------------------------------------------
ecb6e73aba | Shmuale Mark | 2014-10-01 09:39:12 -0400

Very slightly refactor.

--------------------------------------------------------------------------------
495b91e3a4 | Nicholas Feinberg | 2014-10-01 06:20:07 -0700

Rework _mons_has_smite_attack and monster_shover
Monsters no longer decide whether they can shove based on
their glyph; they now use a combination of intelligence &
genus instead.

Wide variety of side effects: e.g. dragons and giants can now
shove, along with orbs of eyes & summoned creatures. (The latter
seems to have been assumed by whoever designed Fannar, but
summoned creatures can't use stairs, so...)

Also, pull the list of '''smitey''' spells out into an array, and
add a few more; Fannar, Jorgrun and Lom Lobon will no longer be
shove-y, which may or may not be good. (Esp. the last.)

--------------------------------------------------------------------------------
f357c03b83 | Nicholas Feinberg | 2014-10-01 05:39:36 -0700

Rework monster_senior
Monster glyphs no longer affect AI behavior. A wide variety of
minor side effects ensue, e.g. imps can no longer push past (war)
gargoyles...

Also extended the spectral thing special case to allow them to
push past ghost crabs, as a sort of buff. Removed the enslaved
soul special case; it would essentially never occur and was added
on a whim (per git).

Per comments, would be nice to extend the fannar/geryon logic to
make a more general case rule for summoner/summonee pushing.
(Also might make sense to move the geryon check to monster_shover.)

--------------------------------------------------------------------------------
20bf334866 | Nicholas Feinberg | 2014-10-01 04:37:16 -0700

Refactor

--------------------------------------------------------------------------------
216c9b89a7 | Nicholas Feinberg | 2014-10-01 03:08:48 -0700

Fix memorization bugs (9005)
Crummy messenging (this looks like it was clobbered during
rebasing) and an accidental fallthrough from case:
DELAYED_FIREBALL that prevented mummies from memorizing it.

--------------------------------------------------------------------------------
72ff0deb42 | Nicholas Feinberg | 2014-09-30 19:00:01 -0700

Tweak Wiglaf's title

--------------------------------------------------------------------------------
0d056a7f2d | Nicholas Feinberg | 2014-09-30 17:46:35 -0700

Tweak branch noise messages

--------------------------------------------------------------------------------
e5d9b6bc57 | Shmuale Mark | 2014-09-30 20:10:18 -0400

Shut up the compiler (Grunt).

--------------------------------------------------------------------------------
65bd446643 | Shmuale Mark | 2014-09-30 16:05:43 -0400

Add some lame sentences to descs of branches with non-0 ambient noise.
Would make it a bit less spoilery, if anyone ever read descriptions.

--------------------------------------------------------------------------------
9fdfd62ed2 | Shmuale Mark | 2014-09-30 13:46:07 -0400

Display what you can cycle through on the bottom row in the ^ screen.
To simplify code, Xom gets the wrath screen as well, which seemed
consistent with Ru. PleasingFungus suggested that we look at both of
them later and get rid of the screen for both soon, though.

--------------------------------------------------------------------------------
6daecfe537 | Shmuale Mark | 2014-09-30 12:20:22 -0400

Allow Xom to repel stairs in the Abyss even with no tension.
In the Abyss, the time trying to get into the shifted stair might matter.
And given the amount of work people put into finding exits, it should
be hilarious enough for Xom and the player to both laugh.

--------------------------------------------------------------------------------
438b5892e3 | Shmuale Mark | 2014-09-30 12:20:22 -0400

Don't crash when doing a Xom debug session.
This has apparently been broken for a quite a long time. I also
changed it to overwrite the previous contents of the file rather than
appending, since that did seem more useful.

--------------------------------------------------------------------------------
57cc27ae35 | Shmuale Mark | 2014-09-30 12:20:21 -0400

New Xom effects: good scroll of fog (Xom-stlye), bad chaos cloud.

--------------------------------------------------------------------------------
ee2664d13f | Shmuale Mark | 2014-09-30 12:20:21 -0400

Experimental Xom effects on hit: Harmless clouds, butterflies.
They only happen on high-damage attacks, and I hope are not too common,
or too similar to the other gods they're copied from (though the deviwiki
had the cloud suggestion long before Dithmenos was added!).

--------------------------------------------------------------------------------
61391c87eb | Shmuale Mark | 2014-09-30 12:20:21 -0400

Simplify.

--------------------------------------------------------------------------------
e98a28f582 | Shmuale Mark | 2014-09-30 12:20:21 -0400

Give Dragon's Call the empowered colour when in Dragon Form.

--------------------------------------------------------------------------------
8889bc4898 | Nicholas Feinberg | 2014-09-30 07:02:16 -0700

Simplify cleaving
It now (attempts to) hit everything around the attacker, rather
than being blocked by walls. The previous behavior was unintuitive
and unnecessary; it was designed to discourage fighting in e.g.
corridors with enemies on both sides, which is not something
which needs further discouragement!

this is also very helpful for when the lernaean hydra becomes
playable

--------------------------------------------------------------------------------
e88a48da7e | Nicholas Feinberg | 2014-09-30 05:25:08 -0700

Actually, don't ignore phase shift when displaying mons EV

--------------------------------------------------------------------------------
2dd8c97c34 | Nicholas Feinberg | 2014-09-30 03:43:09 -0700

Display AC and EV bars in monster descriptions

--------------------------------------------------------------------------------
71fd605532 | Nicholas Feinberg | 2014-09-30 02:42:31 -0700

Display monster MR as a bar

--------------------------------------------------------------------------------
5546740ef4 | Nicholas Feinberg | 2014-09-30 01:54:04 -0700

Add overlooked changelog stuff (mostly pre-Ru)

--------------------------------------------------------------------------------
839f2861b6 | Nicholas Feinberg | 2014-09-30 01:23:45 -0700

Changelog through 0.16-a0-942-g1b4356f

--------------------------------------------------------------------------------
1b4356fae3 | Neil Moore | 2014-09-30 01:31:11 -0400

Improve wording.

--------------------------------------------------------------------------------
7a89e45cbe | Neil Moore | 2014-09-30 01:30:05 -0400

Put several more messages under DIAG_ABYSS.
Everything in abyss.cc except for "Placing N corruption seeds".

--------------------------------------------------------------------------------
6ac14ff652 | Neil Moore | 2014-09-30 01:26:09 -0400

Put another message under DIAG_COMBAT.

--------------------------------------------------------------------------------
e49cde92c5 | Neil Moore | 2014-09-30 01:18:43 -0400

Add a &^Q category for skill training messages.

--------------------------------------------------------------------------------
a0cca85ed3 | Neil Moore | 2014-09-30 01:12:34 -0400

Add a &^Q category for noise messages.
Not just DEBUG_NOISE_PROPAGATION, but also "alterting" and "disturbing"
messages.

--------------------------------------------------------------------------------
ece3f9f5ce | Neil Moore | 2014-09-30 01:07:38 -0400

Add a parallel enum/array comment.

--------------------------------------------------------------------------------
79320fa50f | Neil Moore | 2014-09-30 00:59:15 -0400

Allow building with diagnostics but not mid annotations.
DEBUG_MONINDEX is now turned on by FULLDEBUG but not by DEBUG_DIAGNOSTICS
alone.

--------------------------------------------------------------------------------
3f07b6e50a | Neil Moore | 2014-09-30 00:42:37 -0400

Put mid/mindex in names under fulldebug, controlled by &^Q.
Because these annotations are kind of intrusive, disable them by default.

--------------------------------------------------------------------------------
3c99d91d0e | Neil Moore | 2014-09-30 00:28:36 -0400

Fix some double encoding.

--------------------------------------------------------------------------------
b8ff4c7217 | Shmuale Mark | 2014-09-30 00:17:07 -0400

Let Xom cast branding spells on branded weapons.
Since players can now.

--------------------------------------------------------------------------------
72cfd3c3af | Shmuale Mark | 2014-09-30 00:05:35 -0400

Use a constant.
Only gameplay change is that colliding beetles are a bit louder.

--------------------------------------------------------------------------------
fda4c2a4b7 | Shmuale Mark | 2014-09-30 00:05:35 -0400

Remove the code special case for IOOD casting noise.
Nothing in the IOOD code makes that amount of noise, and 7 is its
normal casting noise anyway...

--------------------------------------------------------------------------------
68c73b8ed8 | Shmuale Mark | 2014-09-30 00:05:35 -0400

Pull explosions into spell_effect_noise as well.

--------------------------------------------------------------------------------
8443c2e988 | Shmuale Mark | 2014-09-30 00:05:34 -0400

Use the spell_effect_noise system in many places.
Most of the remaining spells are explosions, whose noise is determined
rather strangely.

--------------------------------------------------------------------------------
13d7ff6b68 | Shmuale Mark | 2014-09-30 00:05:34 -0400

Change the handling in spl-data.h for noise.
Instead of a formula to convert spell level to noise, and a way to
adjust the effective level for that, simply allow the code to specify
a noise. I've included the old formula in comments so people adding spells
in the future can know what a typical noise would be.

This also adds an (unused as of yet) system for specifying the noise
that the effects (as opposed to the actual casting) of a spell makes.

--------------------------------------------------------------------------------
3146c9a268 | Shmuale Mark | 2014-09-30 00:05:34 -0400

Change a special case for MONS_DRAGON genus to use a flag instead.

--------------------------------------------------------------------------------
454f9e4669 | Neil Moore | 2014-09-29 23:21:31 -0400

Remove an unused function and prototype.

--------------------------------------------------------------------------------
28d58c8d8e | Nicholas Feinberg | 2014-09-29 18:26:35 -0700

Reduce odds of corrosion with # of stacks
Huge corrosion stacks showed up a little too easily.

Also some refactoring, and the removal of xom amusement with
corrosion, which seemed to be leftover from when it was a
permanent penalty.

--------------------------------------------------------------------------------
8eb3a9c7a5 | Nicholas Feinberg | 2014-09-29 17:49:13 -0700

Fix a terrible (and extremely incorrect) comment
gammadunked again

--------------------------------------------------------------------------------
c0d8b4d6e6 | Nicholas Feinberg | 2014-09-29 17:27:05 -0700

Normalise mutagenic corpse drop rates (minmay)
As noted, the special drop rate dates back to a (failed) attempt
to balance fulsome distillation. The only balance concern now is
that purple chunks might no longer be Special Enough, thus
reducing fun; I find this sufficiently unlikely to keep the case
around.

--------------------------------------------------------------------------------
ae79c9c722 | Neil Moore | 2014-09-29 17:51:56 -0400

Brace.

--------------------------------------------------------------------------------
db3f50f9aa | Shmuale Mark | 2014-09-29 17:46:36 -0400

Return to default sort after exiting a shop.

--------------------------------------------------------------------------------
19b1b05ecc | Kek | 2014-09-29 17:46:36 -0400

Shopping sorting
[Cleaned up code and style a little. --wheals]

--------------------------------------------------------------------------------
ef7d70b77f | Neil Moore | 2014-09-29 16:59:13 -0400

Don't make an ambiguous overload for std::move() (#8960)
Another OS X SDK 10.9 issue.  In C++11 we just #define Move to move.

Revert this and the preceding two commits when we stop supporting C++03.

--------------------------------------------------------------------------------
66a6cb6403 | Neil Moore | 2014-09-29 16:40:32 -0400

Don't redefine nullptr if it exists (#8960)
clang++ in the OS X 10.9 SDK defines a nullptr macro in C++03 mode.

--------------------------------------------------------------------------------
1d717b68e6 | Neil Moore | 2014-09-29 16:40:32 -0400

Don't #define away unique_ptr (#8960)
Using clang++ in the OS X 10.9 SDK, even in C++03 mode, the system
headers use unique_ptr internally.  When we do
  #define unique_ptr auto_ptr
before #including system headers, those headers break.

Use Unique_ptr with a capital U for the "hopefully unique_ptr but we'll
take auto_ptr if that's all we have" semantics we use throughout our
code, and #define that appropriately.

--------------------------------------------------------------------------------
000e708041 | Shmuale Mark | 2014-09-29 16:28:35 -0400

Lower the zig rune requirement to 2 (dpeg).

--------------------------------------------------------------------------------
a30a7c4be0 | gammafunk | 2014-09-29 14:50:20 -0500

Fix the auto-memorizing of starting spells

--------------------------------------------------------------------------------
41ad7c1e87 | Neil Moore | 2014-09-29 15:45:45 -0400

Tweak formatting.

--------------------------------------------------------------------------------
cc3231e25e | Shmuale Mark | 2014-09-29 15:41:59 -0400

Make 'ziggurat' capitalisation a bit more consistent (dpeg, |amethyst).

--------------------------------------------------------------------------------
6433d0dd38 | Shmuale Mark | 2014-09-29 14:14:25 -0400

Allow nagas etc. to cast/memorise Cure Poison (#8999).

--------------------------------------------------------------------------------
63e409c85b | Shmuale Mark | 2014-09-29 14:09:25 -0400

Increase the number of identify scrolls troves request.

--------------------------------------------------------------------------------
739c61c5a0 | Neil Moore | 2014-09-29 11:02:33 -0400

Restore full Zin piety contribution to Recite power.
A refactoring accident in 0.16-a0-906-g8aea26c reduced it by 1/3.

--------------------------------------------------------------------------------
f7792b8842 | Nicholas Feinberg | 2014-09-29 07:52:37 -0700

Make rPois affect venom bolt right (commanderc, lasty)

--------------------------------------------------------------------------------
238864b61e | Nicholas Feinberg | 2014-09-29 07:46:01 -0700

Buff low-base-damage ranged monsters
They got pretty badly hurt by the ranged reform, accidentally;
this fixes that by splitting M_ARCHER in half and moving the AI
changes to a separate (dubiously named) M_DONT_MELEE flag.

Monsters newly given M_ARCHER: centaurs, yaktaurs, cherubs, tengu
warriors, Joseph and Nessos.

This should increase player lethality considerably.

--------------------------------------------------------------------------------
ba4a4aab18 | Nicholas Feinberg | 2014-09-29 07:10:14 -0700

Fix altar floor tiles in abyss_greek_temple (hangedman)

--------------------------------------------------------------------------------
8aea26c63a | Nicholas Feinberg | 2014-09-29 07:03:02 -0700

Make Zin's Recite a little more powerful at very low invo
Specifically, 0-3 invo.

Might be nice to tweak it slightly more...

(Also, minor refactoring.)

--------------------------------------------------------------------------------
64b7c3f6ff | Nicholas Feinberg | 2014-09-29 07:03:02 -0700

Halve Zin's hell effect protection
The Hells are designed around the time pressure provided
(notionally) by hell effects; any effect that completely &
indefinitely disables them is a very bad idea, without radically
changing Hells design. Zin is still a very good god without any
hell effect resistance at all; there's no need to break half of
extended.

--------------------------------------------------------------------------------
0b94b387c7 | Neil Moore | 2014-09-29 03:25:04 -0400

Brace and unbrace.

--------------------------------------------------------------------------------
5e41367dae | Neil Moore | 2014-09-29 03:23:28 -0400

Simplify (PleasingFungus)

--------------------------------------------------------------------------------
52aef173f8 | Nicholas Feinberg | 2014-09-28 22:30:17 -0700

Refactor Sacrifice Arcana code

--------------------------------------------------------------------------------
8d76ea3336 | Nicholas Feinberg | 2014-09-28 22:23:20 -0700

Tweak the Dragon's Call message

--------------------------------------------------------------------------------
ee12738d01 | Neil Moore | 2014-09-28 20:03:08 -0400

Don't check MP for spells again after spending mana (#8997)

--------------------------------------------------------------------------------
a5e9255c77 | Jesse Luehrs | 2014-09-28 19:51:32 -0400

use a less weird message here
"mp" should be capitalized if we use it at all, but the rest of the
interface uses "magic" anyway, so just try to be a bit more consistent

--------------------------------------------------------------------------------
4a5b4a08cd | Shmuale Mark | 2014-09-28 19:49:07 -0400

Allow using +Blink while able to teleport, disallow under -Tele.

--------------------------------------------------------------------------------
43f0507c1a | Shmuale Mark | 2014-09-28 19:49:06 -0400

Don't warn about wielding a vampiric weapon if you can't.

--------------------------------------------------------------------------------
e1b704a387 | Shmuale Mark | 2014-09-28 19:49:06 -0400

Fix reversed check in benemut usefulness (PolkaDot).

--------------------------------------------------------------------------------
cd82e03ebf | Corin Buchanan-Howland | 2014-09-28 18:59:53 -0400

Improve scroll of branding messages.

--------------------------------------------------------------------------------
b5dbaa6d80 | Nicholas Feinberg | 2014-09-28 15:49:36 -0700

Also give dragon form + dragoncall a wiz boost

--------------------------------------------------------------------------------
8e44de1373 | Nate Rook | 2014-09-28 15:49:36 -0700

Extract the effect of enhancers on spells into a static function.
(Committer's note: constified a variable & added comments.)

--------------------------------------------------------------------------------
04702894db | Nate Rook | 2014-09-28 15:49:36 -0700

Add an enhancer bonus to Dragon's Call when cast in dragon form.
This is unlikely to affect any player's decisions, but it is good to
encourage players to do cool things.

--------------------------------------------------------------------------------
06da542cf5 | Nate Rook | 2014-09-28 15:49:36 -0700

Deduplicate miscast malmutation.
(Committer's note: Added a comment.)

--------------------------------------------------------------------------------
98fc465077 | Shmuale Mark | 2014-09-28 17:40:48 -0400

Further no_tele refactoring / clarity.

--------------------------------------------------------------------------------
76cc3dc60e | Shmuale Mark | 2014-09-28 17:40:48 -0400

Buff royal jelly food acquirement a bit (gammafunk).
It had quite a bit less average nutrition than rations. It still has a bit
less, but royal jellies have the advantage of edibility in only 2 turns.

--------------------------------------------------------------------------------
050e7ddb28 | Nicholas Feinberg | 2014-09-28 14:11:15 -0700

Make ice fists sometimes singular again (thanks, ru)

--------------------------------------------------------------------------------
40b7202875 | Nicholas Feinberg | 2014-09-28 13:56:38 -0700

Fix and refactor no_tele_print_reason()

--------------------------------------------------------------------------------
1d230a9224 | Shmuale Mark | 2014-09-28 13:56:38 -0700

Move butchery() from food.cc to butcher.cc.
I promise this is totally related to the rest of this branch!

--------------------------------------------------------------------------------
d000124aca | Shmuale Mark | 2014-09-28 13:56:38 -0700

Get rid of ATTR_DELAY_SWAP_INTERRUPTED and all its attendant code.
These days, the only time a player was likely to run into it was when
transforming while wielding a non-weapon. Then, it gave an annoying prompt
asking you whether you wanted to swap back to your main weapon when the
transform ended, even though it switched to a non-weapon and most likely
your "main weapon" was your bare fists, if you were casting form spells.

The only other case where it would matter is casting lichform while
wielding a holy weapon. I hope players who do this won't be bothered by
having to switch back manually.

--------------------------------------------------------------------------------
6d440e6394 | Nicholas Feinberg | 2014-09-28 13:56:38 -0700

Arguably refactor aux attacks
Along the same lines as transformations.

Also fix blade-hands slashes & clawed "claws" being described as
"punches".

--------------------------------------------------------------------------------
9187861b2f | Nicholas Feinberg | 2014-09-28 13:56:38 -0700

Refactor punch aux-attack code
There was a remarkable amount of code in place to support punch-
like non-UNAT_PUNCH attacks. This was never used and didn't seem
likely to be used in future. (Also, it was very badly named.)

--------------------------------------------------------------------------------
472ad9cf31 | Nicholas Feinberg | 2014-09-28 13:56:38 -0700

Remove _tran_forbid_aux_attack
Enormously redundant with code checking whether mutations were
suppressed by forms. Only non-redundant code was UNAT_PUNCH,
which wasn't actually handled correctly anyway (allowed fungi to
punch). Both fixed.

--------------------------------------------------------------------------------
d2ce7820e6 | Nicholas Feinberg | 2014-09-28 13:56:38 -0700

Remove pig oinking (rework shout/scream code)
Pull verbs & volumes into form objects, and give felids a full
set of shout verbs, one for each level of shoutitis. The first
player to caterwaul outside of wizmode wins a prize!

Pig oinking was removed for the sake of streamlined code.

--------------------------------------------------------------------------------
e767048bbe | Nicholas Feinberg | 2014-09-28 13:56:38 -0700

Move can_cast into form objects

--------------------------------------------------------------------------------
5678dc88ba | Nicholas Feinberg | 2014-09-28 13:56:38 -0700

Pull hand/foot name into transform objects
Tweak a bunch of them in the process. (E.g., fungus form could
give the message "your hands burn" when sporing at a jelly,
which seems very incorrect...)

Also give wisp-form a UC attack name, inspired by its hand name.

--------------------------------------------------------------------------------
9ce75517f6 | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Update transformation power on re-cast (Kvaak)

--------------------------------------------------------------------------------
b2e2ab1dcf | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Don't show fe-- 'teeth & claws' in wispform

--------------------------------------------------------------------------------
c9befafd90 | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Cleanup form brand code

--------------------------------------------------------------------------------
fb965681c3 | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Derandomize vampire bat vampirism
Making it only branded 1/8 times (above and beyond the normal
chance for vampirism to (not) fire!) was a complication without
a purpose.

--------------------------------------------------------------------------------
b7bdb3c81c | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Pull weapon brand names into arrays

--------------------------------------------------------------------------------
d1bbd05c4c | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Move UC 'weapon names' into form objects
And give fungus form's melee a name + brand mention

--------------------------------------------------------------------------------
ef5ec656b2 | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Move UC brands into form objects

--------------------------------------------------------------------------------
df849cb7b2 | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Give mushrooms their caps back

--------------------------------------------------------------------------------
629a2d5dc1 | Nicholas Feinberg | 2014-09-28 13:56:37 -0700

Refactor octopode ring slot/form code

--------------------------------------------------------------------------------
d6af8f7504 | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Refactor is_unbreathing into forms

--------------------------------------------------------------------------------
c7a53111ba | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Arguably refactor form_likes_water()

--------------------------------------------------------------------------------
6de9ed0615 | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Cleanup absurd skip_wield code

--------------------------------------------------------------------------------
24bdbf9313 | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Don't describe undead players as drowning
In the morgue file. (To match the in-game messages, and also to
make a little more sense.)

--------------------------------------------------------------------------------
ac1829dcef | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Fix up player_res_torment()
Use forms rN to calculate form rTorm; reorganize the parameters
& adjust the callers to use them correctly. (Various callers
were failing to account for stochastic torment correctly, or
passing an unused parameter.)

--------------------------------------------------------------------------------
7c3e90f496 | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Move can_bleed and keeps_mutations into forms
Also give porcupine-form blood. (I am not really sure why it was
bloodless before?)

--------------------------------------------------------------------------------
bf6b5d08bf | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Mention reasons for spell uselessness when examining spells

--------------------------------------------------------------------------------
0ed192658e | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

More useless spell improvements
Re-enable casting spells at unseen enemies; move a few spells
from _spellcasting_aborted to spell_uselessness_reasons().

--------------------------------------------------------------------------------
667f5ccfe0 | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Refactor spell uselessness code

--------------------------------------------------------------------------------
d54bbebe5f | Nicholas Feinberg | 2014-09-28 13:56:36 -0700

Add forbids_ and enables_ flight() functions

--------------------------------------------------------------------------------
6b0ceaa167 | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Prefix form capability enums

--------------------------------------------------------------------------------
1b034a56ce | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Change form structs into classes
So that they can be initialized at the same time as the form
objects themselves.

--------------------------------------------------------------------------------
b29bd18934 | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Move form durations to form objects

--------------------------------------------------------------------------------
0e64040dc2 | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Finish consolidating most form resists into objects

--------------------------------------------------------------------------------
6ae84616fb | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Fix player_res_poison (7888)
Make statue form & petrification count as temporary; make Olgreb
count as an item; make divine stamina count as temporary.

Switch a spell_is_useless() check over to using it.

--------------------------------------------------------------------------------
6d56f1b60e | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Allow lichform players to memorise spells normally

--------------------------------------------------------------------------------
e6346c501b | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Replace is_undead with undead_state(temp)
There was no reason to store it rather than calculating it
as-needed, and storing it both caused bugs & made it very
difficult to deal with lichform.

--------------------------------------------------------------------------------
0f39bf88b9 | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Remove some redundant/unused pig code

--------------------------------------------------------------------------------
bd73039c5e | Nicholas Feinberg | 2014-09-28 13:56:35 -0700

Add resist flags to transforms (unused)

--------------------------------------------------------------------------------
4ad2618d6d | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Move form spcast penalty into form objects

--------------------------------------------------------------------------------
bfe83fc287 | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Move form hp multipliers into form objects

--------------------------------------------------------------------------------
4bd511d94c | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Move form attack verbs into form objects

--------------------------------------------------------------------------------
56163df8dc | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Add (most) untransform messages to form objects

--------------------------------------------------------------------------------
5349d92519 | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Add transform messages to form objects

--------------------------------------------------------------------------------
26646ca69a | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Add flying and swimming to form objects

--------------------------------------------------------------------------------
949b95f3fd | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Move form stat modifiers into form objects
And improve/unify warnings. (Including warnings when transforming
from one form to another in such a way that it would zero a stat.)

Note that the old "+10 str for tree, -3 str for porcupine" are
removed, as they were never implemented properly in the first
place, and don't seem necessary now. If someone wants to add
them properly, feel free.

--------------------------------------------------------------------------------
0e462bd6ab | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Move UC UI colouring into form objects

--------------------------------------------------------------------------------
0013ec2e46 | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Pull form unarmed hit bonuses into form objects

--------------------------------------------------------------------------------
8be6acfe6c | Nicholas Feinberg | 2014-09-28 13:56:34 -0700

Pull form names + descriptions into form objects
This tweaks a few descriptions (in chardumps/@ messages) in the
pursuit of standardization.

--------------------------------------------------------------------------------
86b69a9f03 | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Move form unarmed damage into form objects

--------------------------------------------------------------------------------
256619c0ea | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Add stealth modifier to form objects
And refactor check_stealth() a little.

--------------------------------------------------------------------------------
65d367bb8f | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Add size to form objects

--------------------------------------------------------------------------------
54b0933e69 | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Add equivalent monster to form objects

--------------------------------------------------------------------------------
5fb2a721b0 | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Add equipment slots to form objects

--------------------------------------------------------------------------------
fc83d9f840 | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

create Form classes; add name

--------------------------------------------------------------------------------
c22f585ff5 | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Remove a set of unused parameters
RIP Stat Death

--------------------------------------------------------------------------------
078dce110f | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Remove an unused & complex function parameter
It was only used in mons_speaks() for creatures of animal or
lower intelligence, which was a category which contained exactly
zero "related" lines.

--------------------------------------------------------------------------------
9d1992cb8e | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Refactor out an unused param

--------------------------------------------------------------------------------
d5f470b112 | Nicholas Feinberg | 2014-09-28 13:56:33 -0700

Define NUM_FORMS

--------------------------------------------------------------------------------
999be4def5 | Neil Moore | 2014-09-28 16:06:23 -0400

Neuter some more siren messages.
And a comment.

This will have to change if we get a gendered unique siren/avatar.

--------------------------------------------------------------------------------
4ae73c7b8e | Neil Moore | 2014-09-28 16:01:43 -0400

Fix siren/mfav checks and species (Lasty)
They are now all species MONS_MERFOLK; checks for "siren beholders" use
an existing-but-newly-public function that checks the monster type.

Also fixes nonbase merfolk using the wrong foot name.

--------------------------------------------------------------------------------
9765847579 | Neil Moore | 2014-09-28 15:59:50 -0400

Add missing CRs in the MSVC project files.

--------------------------------------------------------------------------------
805002362b | Nicholas Feinberg | 2014-09-28 12:57:04 -0700

Cleanup & deduplicate

--------------------------------------------------------------------------------
2754f52dab | Corin Buchanan-Howland | 2014-09-28 15:32:40 -0400

Rename mermaids/sirens
Mermaids are now sirens, and sirens are merfolk avatars and have been
made gender neutral and had their descriptions redone. Both are now
merfolk for purposes of cannibalism and pacification (and all other
purposes). Both monsters still function the same.

Revised tiles forthcoming.

--------------------------------------------------------------------------------
577b6b242c | Shmuale Mark | 2014-09-28 14:21:41 -0400

Make some code/comments a little clearer.

--------------------------------------------------------------------------------
931e68f4e0 | BlackSheep | 2014-09-28 14:15:20 -0400

Make unarmed a valid newgame choice for all species

--------------------------------------------------------------------------------
101e9d7b5a | Shmuale Mark | 2014-09-28 14:02:02 -0400

Simplify.

--------------------------------------------------------------------------------
7212d6238f | Nicholas Feinberg | 2014-09-28 10:58:53 -0700

Fix compilation (oops)

--------------------------------------------------------------------------------
75b2564272 | Nicholas Feinberg | 2014-09-28 10:53:36 -0700

Refactor _resist_mutation slightly

--------------------------------------------------------------------------------
388c1f2c20 | Nicholas Feinberg | 2014-09-28 10:25:12 -0700

Print a message when something visible is disintegrated

--------------------------------------------------------------------------------
cd26887500 | Nicholas Feinberg | 2014-09-28 10:19:55 -0700

Make mimics cackle & vanish into a puff of smoke!
Mimics historically have served two purposes. They were "the
absence of the expected", whether that expected thing was an
item, a branch entrance, a shop, etc; and they were a threat, a
monster that tried to attack you when you discovered them.

The former worked pretty well. The latter does not. They are
quite weak, as enemies, and have been ever since constriction
was nerfed. They can't really be buffed, either, since actually
threatening/lethal mimics would encourage resting before walking
next to stairs/items/etc, at penalty of mimicy death. Neither
doing so, nor forgetting to do so & dying, sounds very fun.

So, let them focus on what they're good at. When discovered,
mimics now cackle & vanish in a puff of smoke; this retains their
main function ("not being [x]", surprising/annoying/amusing the
player), without dragging out the joke longer than it's worth.

The current implementation interacts oddly with effects that
discover mimics from a distance (Ashenzari & antennae & Assassin,
the boots of the), since mimics now vanish instantly whenever
discovered, even if the mimic wouldn't have noticed the player
before. It might be possible to improve this, with some
intermediate 'semi-discovered' state?

--------------------------------------------------------------------------------
e5a26ae834 | Jesse Luehrs | 2014-09-28 13:16:58 -0400

fix some compiler warnings

--------------------------------------------------------------------------------
6a5ab010ec | Nicholas Feinberg | 2014-09-28 09:57:35 -0700

Give Demigods full stat control (Brannock, Bloax)
Trade their automatic stat-ups for a manual stat-up on every
2/3 levels. This takes them from gaining 22 stats by level 27
to only 18, which should be about an even trade overall.

More importantly, it focuses the race on its core positive design
differentiator ('good stats') and, perhaps, is more fun/distinct
for players. It's an experiment, but I don't think it'll break
anything.

--------------------------------------------------------------------------------
e6c3fc3218 | Nicholas Feinberg | 2014-09-28 08:24:55 -0700

Fix confusing touch expiration (8967)

--------------------------------------------------------------------------------
fa0e9b910a | Nicholas Feinberg | 2014-09-28 08:18:43 -0700

Tweak invisibility behaviour
Quaffing/evoking unknown invis sources will now give you the
status even when you're haloed; you can no longer quaff/evoke
known invis when glowing, since that is literally always useless.

Some cleanup should be done, per XXX comment

--------------------------------------------------------------------------------
d8583a0152 | Nicholas Feinberg | 2014-09-28 08:06:48 -0700

Fix invis + QUAD DAMAGE messenges

--------------------------------------------------------------------------------
3f3e8b85f4 | Nicholas Feinberg | 2014-09-28 07:51:03 -0700

Remove seen monsters from the minimap
They cluttered things up and really had no use for being there;
the minimap is for navigation, not... tactical memory?

Detected-but-not-seen monsters are still displayed on the minimap,
for easy eyeballing.

--------------------------------------------------------------------------------
4e0dab17d4 | Nicholas Feinberg | 2014-09-28 07:43:53 -0700

Describe the terrible wrath of Ru

--------------------------------------------------------------------------------
479389cabd | Nicholas Feinberg | 2014-09-28 07:38:17 -0700

Mention praying in altar descriptions (2371)

--------------------------------------------------------------------------------
0283411b8f | Nicholas Feinberg | 2014-09-28 07:38:17 -0700

Add god wrath descriptions
In an attempt to despoilerify mechanics that don't really need
to be spoilers, divine dislikes and wrath effects are now in a
new screen. (Except for Xom, who is Very Special.) I've made an
effort to clarify which gods care about abandonment, which gods
are 'evil' and 'chaotic', and which god wrath effects scale with
XL. (Mostly the monster summoning ones.)

It might make sense to expand some of the detailed god
descriptions (e.g. the description of Zin's recite), now that
the second screen is somewhat less crowded.

--------------------------------------------------------------------------------
16fe02161e | Nicholas Feinberg | 2014-09-28 07:36:47 -0700

Pull god misc info out of _detailed_god_description()

--------------------------------------------------------------------------------
6bbc4d0ff1 | Nicholas Feinberg | 2014-09-28 07:36:47 -0700

Improve description of TSO's rN

--------------------------------------------------------------------------------
00bc162529 | Nicholas Feinberg | 2014-09-28 07:36:47 -0700

More god description refactoring

--------------------------------------------------------------------------------
a44b966b09 | Nicholas Feinberg | 2014-09-28 07:36:47 -0700

Pull god irritation descriptions into a function

--------------------------------------------------------------------------------
c103ecbf21 | Nicholas Feinberg | 2014-09-28 07:36:47 -0700

Pull god-description toggle code into a common function

--------------------------------------------------------------------------------
b8e5e8702e | Nicholas Feinberg | 2014-09-28 07:36:46 -0700

More _describe_branch_bribability refactoring

--------------------------------------------------------------------------------
cc41bedd10 | Nicholas Feinberg | 2014-09-28 07:36:46 -0700

Pull gozag branch bribability adjectives into an array

--------------------------------------------------------------------------------
a14b8a05e1 | Nicholas Feinberg | 2014-09-28 07:36:46 -0700

Pull god description functions into a new file
squashme

--------------------------------------------------------------------------------
c7e2b39318 | Corin Buchanan-Howland | 2014-09-28 09:48:17 -0400

Amending previous commit which didn't get proper safety checks.

--------------------------------------------------------------------------------
7b9e67412b | Corin Buchanan-Howland | 2014-09-28 09:44:49 -0400

Adjusting piety gain for Sacrifice Love and Sacrifice Artifice
Instead of dropping Sacrifice Love to negligible piety if you've already
sacrificed Summoning, it drops to 10 piety; ditto if you've already
sacrificed Evocations. If you've done both, then it's worth 1 piety,
since it could still make e.g. zot_tub a bit nastier. And scrolls of
summoning, too.

This removes any piety gain from skill in Summonings from Sacrifice
Love as well, since it doesn't actually zero out the points, meaning
you could get double piety gain from Summonings skill if you sacrificed
Love and then Arcana:Summonings.

Thanks to DrKe for the suggestion.

--------------------------------------------------------------------------------
e195468462 | Corin Buchanan-Howland | 2014-09-28 09:16:58 -0400

Make Ru not offer over-valuable sacrifices
Ru will now only offer sacrifices that exceed 160 piety by at most
10 piety.

--------------------------------------------------------------------------------
042ce40d9b | Neil Moore | 2014-09-27 23:20:27 -0400

Don't autotarget friendlies with lamp of fire (#8988)

--------------------------------------------------------------------------------
6c89faa2de | Shmuale Mark | 2014-09-27 23:04:49 -0400

Deduplicate code.

--------------------------------------------------------------------------------
279ce45670 | Shmuale Mark | 2014-09-27 23:04:49 -0400

Allow mon_glyph = <mon1>:<mon2>.

--------------------------------------------------------------------------------
1c96fff5c4 | Shmuale Mark | 2014-09-27 23:04:49 -0400

CLua: add you.best_skill().
Probably not very useful outside of the novelty glyph-changing rc,
admittedly.

--------------------------------------------------------------------------------
c068da2d19 | Shmuale Mark | 2014-09-27 23:04:49 -0400

Be a little less violent about invalid traps.
On second thought, crashing is a bit too violent, especially for people
just trying out writing a vault. There's no reason to interrupt someone's
play just because the vault designer made a mistake, either.

--------------------------------------------------------------------------------
c87c1c4b02 | Shmuale Mark | 2014-09-27 23:04:49 -0400

Remove a hardcoded branch depth (|amethyst).
Not that we are particularly likely to change Zot's depth.

--------------------------------------------------------------------------------
7c2ca6ffec | gammafunk | 2014-09-27 20:17:04 -0500

Merfolk tile offset adjustments

--------------------------------------------------------------------------------
f1c67de80f | gammafunk | 2014-09-27 14:47:54 -0500

More monster tile weapon and shield offsets
Thus my summoner can fully evolve to its final form.

--------------------------------------------------------------------------------
150483d846 | gammafunk | 2014-09-26 22:34:03 -0500

Weapon and shield offsets for various monster tiles

--------------------------------------------------------------------------------
63e0f098a3 | gammafunk | 2014-09-26 22:33:43 -0500

Fix tile_player_tile so that it can use all player tiles
This change uses a dummy monster to fill in the monster info for
mcache and sets the tile as a property. Previously we required there
to be a base monster for tile, but this prevented use of e.g. the
Cigotuvi's Monster tile. Any valid tile in the player tileset may be
used, so the requirement of a tile name beginning with "mons_" has
been dropped.

--------------------------------------------------------------------------------
248e4d4967 | ontoclasm | 2014-09-26 17:04:28 -0500

Various monster tiles (roctavian, 8928)

--------------------------------------------------------------------------------
31dbbe7ecf | Neil Moore | 2014-09-26 10:25:17 -0400

Lift and constify.

--------------------------------------------------------------------------------
377f46f143 | Neil Moore | 2014-09-26 10:24:52 -0400

Allow jewellery acquirement to grant more than regen and protection.

--------------------------------------------------------------------------------
b56323356f | gammafunk | 2014-09-26 00:33:04 -0500

Properly reinitialize tile_player_tile when the value changes in-game

--------------------------------------------------------------------------------
771f783900 | Corin Buchanan-Howland | 2014-09-25 21:28:50 -0400

Add the fixed hp gain from Draw Out Power back in.
It was removed by accident. I'm surprised it even compiled.

--------------------------------------------------------------------------------
f476f6a020 | gammafunk | 2014-09-25 15:18:41 -0500

Add a javascript semicolon, clean up whitespace, and unbrace

--------------------------------------------------------------------------------
932a93ed13 | gammafunk | 2014-09-25 14:25:00 -0500

Fix a crash for monsters without mcache entries

--------------------------------------------------------------------------------
0411c40f47 | gammafunk | 2014-09-25 14:05:42 -0500

Some weapon and shield tile offsets
For various monster tiles that are player species, and some other
monsters.

--------------------------------------------------------------------------------
d9090ed735 | gammafunk | 2014-09-25 14:05:42 -0500

Add option tile_player_tile and show player weapon and shield
The option tile_player_tile can be set to use a monster's tile instead
of the conventional player tiles for the player doll. The value
playermons will duplicate the behavior of tile_show_player_species =
true, using the player species monster tile. Values with the prefixes
mons: and tile: can be used to set a base monster or a specific
monster tile to use for the tile (mostly useful for using tile
variants). For instance, use the following in an rc file to use the
deep elf demonologist tile:

    tile_player_tile = mons:deep elf demonologist

and use the following to get a hydra tile with all heads drawn:

    tile_player_tile = tile:mons_hydra_7

All forms of these options show the player's weapon and shield on the
tile, and in the correction location for those tiles that have mcache
entries or otherwise look fine with default offsets. Many tiles don't
have mcache entries with these offsets yet need them, and will show
the weapon and/or shield in strange (but sometimes amusing!)
locations on the tile. For these tiles, we can add the offsets as good
values for them are found.

--------------------------------------------------------------------------------
6d4cac72fc | Neil Moore | 2014-09-25 14:52:45 -0400

Don't feel safe when stupid creatures are visible but far.
Use LOS_RADIUS as the minimum tracking range when deciding whether the
monster can get to us.  This puts us back to the status quo ante
0.16-a0-364-g6693b33 for I_PLANT monsters.  It's still possible for
rest/explore/travel to ignore a visible monster if it has only an
indirect path to you (and has no ranged attacks): see #6503 .

--------------------------------------------------------------------------------
0731923907 | elliptic | 2014-09-24 15:54:03 -0400

Change formula for identifying charges in a wand by zapping.
No more weird breakpoints at 5.1 and 19.1 skill; instead the formula is just
an Evo/27 chance each time you zap the wand.

--------------------------------------------------------------------------------
6dfabde3ce | Shmuale Mark | 2014-09-24 10:40:59 -0400

Fix some shafts.

--------------------------------------------------------------------------------
e3437cc566 | Shmuale Mark | 2014-09-24 08:34:47 -0400

Update the Bribe Branch description.

--------------------------------------------------------------------------------
b3ad705513 | Shmuale Mark | 2014-09-24 08:34:47 -0400

Give Asterion a retaliatory headbutt, reduce his damage/defenses a bit.

--------------------------------------------------------------------------------
4e8a8e009b | Corin Buchanan-Howland | 2014-09-23 21:49:29 -0400

Color Ru sacrifices in the mutation menu
In the (A) menu which displays mutations, mutations given by Ru
sacrifice are now colored lightred. Because this involves some data
tracking, it only applies to sacrifices made after this change is added
to trunk.

--------------------------------------------------------------------------------
9251c715b4 | Shmuale Mark | 2014-09-23 20:41:15 -0400

Increase halfling stealth apt to +2.
They still had bonuses to stealth cased in check_stealth(), and stealth
is kind of part of their flavour.

--------------------------------------------------------------------------------
afa9bb5b30 | elliptic | 2014-09-23 19:21:43 -0400

clua: m:status().
Works like the recently added you.status(), i.e. m:status() lists everything
in a comma-separated string and m:status("berserk") returns whether the
monster is berserk.

The statuses listed are those handled in monster_info::attributes().

--------------------------------------------------------------------------------
795ecda36e | Corin Buchanan-Howland | 2014-09-23 18:53:38 -0400

Rename the Sac Sanity tile to match the previous commit (oops)

--------------------------------------------------------------------------------
f64922dfdc | Corin Buchanan-Howland | 2014-09-23 18:45:06 -0400

Rename Sacrifice Sanity to Sacrifice Courage
It was a long time coming.

--------------------------------------------------------------------------------
33ef2aa498 | Corin Buchanan-Howland | 2014-09-23 18:18:37 -0400

Add a 'Reject Sacrifices' ability for Ru
Ru will no longer offer new sacrifices just because you haven't
accepted a sacrifice offer. Instead, you must use the new Reject
Sacrifices ability before Ru will begin evaluating whether you're
ready for a new sacrifice. Using this ability will increase the
length of the next sacrifice timer.

This change is an attempt to make the process of getting new offers
more clear.

This patch also includes a small increase in the default Ru sacrifice
timer length.

--------------------------------------------------------------------------------
a7280bdb4e | Corin Buchanan-Howland | 2014-09-23 18:18:37 -0400

Paragraph out some repeated Ru ability text.

--------------------------------------------------------------------------------
491d1eabbb | Corin Buchanan-Howland | 2014-09-23 18:18:36 -0400

Nerf Draw Out Power again and buff Power Leap
Increased the exhaust timer on Draw Out Power from 5-9 turns to 12-16
and slightly nerfed the amount of hp/mp gain. In both cases, it's better
than it was originally.

Power leap's timer has been reduced from 30-49 (same as Apocalypse) to
18-25, a significant boost in order to encourage its use.

--------------------------------------------------------------------------------
2d5a29fc0d | Corin Buchanan-Howland | 2014-09-23 18:18:35 -0400

Mark ally-only use wands useless under Sac Love
Formicids of Ru no longer have any reason to get wands of hasting and
anyone with no device heal 3 has no use for wands of heal wounds
after sacrificing love.

Also, removing those wands as acquirement gifts in those cases.

--------------------------------------------------------------------------------
95fffa2075 | Corin Buchanan-Howland | 2014-09-23 18:18:35 -0400

Unstriken Ru description

--------------------------------------------------------------------------------
7febf84e87 | Shmuale Mark | 2014-09-23 16:00:30 -0400

Veto piety troves for Gozagites too.
They don't use piety, and the theme is wrong -- Gozag already
advocates supremacy of the material. Possibly Xommites should be
disallowed as well, but it does currently make you a very special
plaything, which is something. Godless non-demigods is a challenge
conduct, so it's ok to give a free trove to them I think.

--------------------------------------------------------------------------------
a1962e92db | Nathaniel Rook | 2014-09-23 15:59:59 -0400

Veto nopiety troves for demigods.

--------------------------------------------------------------------------------
3be1ec814c | Nathaniel Rook | 2014-09-23 15:54:29 -0400

Modify debug_portal to support godless troves too.

--------------------------------------------------------------------------------
97dfbf9008 | Nathaniel Rook | 2014-09-23 15:54:20 -0400

Add troves that, when entered, steal your piety.
Tested:
  Works as expected on those with lots of piety, those with very low
  piety, those with no god.

--------------------------------------------------------------------------------
87a0f83aca | Nathaniel Rook | 2014-09-23 15:46:51 -0400

Add general "toll" table for troves, to ease adding godless troves later

--------------------------------------------------------------------------------
05984400c2 | Nathaniel Rook | 2014-09-23 15:45:20 -0400

Poke hole to allow dock_piety() calls from Lua.
Tested: dock_piety() works in dlua repl

--------------------------------------------------------------------------------
2cad50dab0 | Shmuale Mark | 2014-09-23 15:42:28 -0400

Simplify.

--------------------------------------------------------------------------------
882065da1a | Shmuale Mark | 2014-09-23 15:37:28 -0400

Land the player in the right place when returning from one of the hells.

--------------------------------------------------------------------------------
c7f64e06dd | elliptic | 2014-09-23 15:13:51 -0400

Remove unused function mons_foe_is_mons (wheals).

--------------------------------------------------------------------------------
675938f15c | elliptic | 2014-09-23 14:51:08 -0400

Don't make hellfire burst do less damage when aimed at a monster 
(PleasingFungus).
This seems to be a relic of ancient crawl history.

--------------------------------------------------------------------------------
bafcc93dc4 | elliptic | 2014-09-23 01:13:16 -0400

Don't generate a vault containing shafts on D:$ (qw).

--------------------------------------------------------------------------------
1b757893e0 | elliptic | 2014-09-23 00:53:29 -0400

clua: view.invisible_monster(x,y).

--------------------------------------------------------------------------------
f3dc153aed | ontoclasm | 2014-09-22 23:45:02 -0500

Chain mail doll tiles (Bloax)

--------------------------------------------------------------------------------
c852bddbdd | Neil Moore | 2014-09-22 18:55:57 -0400

Remove nicolae_blade_entry_pointy_end (#8981)

--------------------------------------------------------------------------------
f0445d798c | Neil Moore | 2014-09-22 18:37:03 -0400

Remove an unused argument.

--------------------------------------------------------------------------------
f0bc162f3b | Neil Moore | 2014-09-22 18:37:03 -0400

Allow placing known shafts on runebranch:$
If the shaft is known, it is essentially a one-time hatch, so the
reasoning for preventing shafts on the penultimate level of a rune
branch does not apply.

--------------------------------------------------------------------------------
987e253220 | Neil Moore | 2014-09-22 18:07:04 -0400

Unbreak hangedman_spider_trapstep on Zot:4.
Since shafts aren't allowed on Zot:4, replace the shafts with zot traps
and webs.

--------------------------------------------------------------------------------
eaeaf20ce8 | elliptic | 2014-09-22 12:23:57 -0400

Don't expire invisible monster position indicators until the monster moves away.
Usually the player knows whether or not the unseen monster is still in its
old location or not, so this isn't giving much information to the player -
just making the interface reflect the fact that the player knows that the
sky beast who went invis next to the player is still standing there.

--------------------------------------------------------------------------------
177158c937 | Shmuale Mark | 2014-09-22 08:58:26 -0400

Make Legendary Destruction use mons_spell_beam (Cheibriados).
So that %??blood saint will show possible damages!

--------------------------------------------------------------------------------
2d6871406c | Corin Buchanan-Howland | 2014-09-22 07:59:04 -0400

Blocking two wizmode crashes with Ru and limiting Sacrifice Arcana
The second Sacrifice Arcana generally ended up meaning 'sacrifice all
magic', which 1) is Trog's deal, and 2) was easy piety for magic-free
characters. As a side bonus, it means you can't sac enough magic to
eliminate all forms of digging/translocation.

This also fixes two wizmode crashes related to running out of
sacrifices.

--------------------------------------------------------------------------------
710136ba0e | Corin Buchanan-Howland | 2014-09-22 07:37:57 -0400

Let felids wear two rings again
Some reversed logic let felids only wear two rings after saccing a paw
to Ru.

--------------------------------------------------------------------------------
4c9e7619c2 | Steve Melenchuk | 2014-09-21 22:12:16 -0600

Add Ru to vim syntax (eoc).

--------------------------------------------------------------------------------
f721c223a5 | elliptic | 2014-09-21 23:48:48 -0400

Fix Blink Away being marked as a ranged spell (qw).

--------------------------------------------------------------------------------
c0fbe09f2e | Neil Moore | 2014-09-21 22:24:32 -0400

Use ASSERT_RANGE in tiledef-*.cc

--------------------------------------------------------------------------------
55b3e16e58 | Corin Buchanan-Howland | 2014-09-21 20:45:21 -0400

Fix a long-standing bug that made body armour 'unavailable'
. . . on the [ screen. Specifically, there was a case without a return
or break.

--------------------------------------------------------------------------------
f1e666da2d | elliptic | 2014-09-21 19:17:24 -0400

clua: travel.feature_solid().

--------------------------------------------------------------------------------
42d5786c31 | Shmuale Mark | 2014-09-21 18:14:13 -0400

Divide by 2, sort.

--------------------------------------------------------------------------------
fa786c9586 | Shmuale Mark | 2014-09-21 18:09:06 -0400

"Simplify" init_pandemonium().
Someone might want to check my math, but I find it unlikely that
anyone would be very eager.

--------------------------------------------------------------------------------
27e852e422 | Shmuale Mark | 2014-09-21 17:34:24 -0400

Clean up summon_any_demon a bit.

--------------------------------------------------------------------------------
fdff525ff8 | Shmuale Mark | 2014-09-21 17:34:13 -0400

Unbrace.

--------------------------------------------------------------------------------
c254e8c97a | Shmuale Mark | 2014-09-21 16:41:12 -0400

Two quotes.

--------------------------------------------------------------------------------
fe9bfbb911 | Shmuale Mark | 2014-09-21 15:23:41 -0400

Show the Cloud status light on non-tiles only by default, not the reverse.

--------------------------------------------------------------------------------
5ea22680f3 | ontoclasm | 2014-09-21 14:05:01 -0500

Fix key usage

--------------------------------------------------------------------------------
c89c0a1e87 | Shmuale Mark | 2014-09-21 14:53:05 -0400

Don't place bh_hangedman_babel_library on branch ends.

--------------------------------------------------------------------------------
7c65259dd8 | Shmuale Mark | 2014-09-21 14:52:59 -0400

Handle vaults placing shafts in branch ends more gracefully.
By crashing.

--------------------------------------------------------------------------------
a9c6dbea5c | Shmuale Mark | 2014-09-21 14:52:54 -0400

Remove an apparently unused fake trap type.

--------------------------------------------------------------------------------
1f238c7a3b | ontoclasm | 2014-09-21 13:22:51 -0500

Duvessa and Dowan tiles (Bloax, 8350)
This includes angry glowing eyes once one of them is dead.

--------------------------------------------------------------------------------
325d069a48 | ontoclasm | 2014-09-21 13:22:51 -0500

Plate doll tiles (Bloax)

--------------------------------------------------------------------------------
c69370bf5c | ontoclasm | 2014-09-21 13:22:50 -0500

Chainmail tiles (Bloax)

--------------------------------------------------------------------------------
2380c83b4a | ontoclasm | 2014-09-21 13:22:49 -0500

Wraithtile (Bloax, 8905)

--------------------------------------------------------------------------------
b943d7d457 | elliptic | 2014-09-21 02:30:38 -0400

Fix food.bottleable() not checking rot status (qw).

--------------------------------------------------------------------------------
26b69986fa | elliptic | 2014-09-21 02:14:20 -0400

Make berserking as VpBe less suicidal (qw).
Previously a vampire who used Trog's berserk ability at just above Full would
have a 0-turn berserk - immediately slowed and exhausted.

Now berserk vampires stay berserk until Thirsty. They still can't initiate a
berserk until Full.

--------------------------------------------------------------------------------
4f6a679ffe | elliptic | 2014-09-21 01:14:52 -0400

clua: food.bottleable, food.edible.

--------------------------------------------------------------------------------
3f81eefd88 | Shmuale Mark | 2014-09-20 22:20:37 -0400

Restore some code accidentally merged away (|amethyst, #8978).
It disappeared in 682baf4c4

--------------------------------------------------------------------------------
815055011d | Ben Haines | 2014-09-20 22:20:31 -0400

Ru redirect no longer identifies foe
[Changed patch to use the default parameter, which should be what is
needed here --wheals]

--------------------------------------------------------------------------------
46fedb65bb | Shmuale Mark | 2014-09-20 22:20:26 -0400

Fix a reversed check (nagdon).

--------------------------------------------------------------------------------
3317211e3d | Shmuale Mark | 2014-09-20 22:20:20 -0400

Add Patashu to CREDITS.txt.

--------------------------------------------------------------------------------
39ff3b08fe | Shmuale Mark | 2014-09-20 22:20:15 -0400

Update Shields skill description.

--------------------------------------------------------------------------------
d266e8e967 | gammafunk | 2014-09-20 16:13:04 -0500

Fix some bugs with tentacle placement.
The check for free adjacent space to the head monster in order to
place the tentacles was only checking that the locations are in-bounds
and don't have monsters. We now check that the locations are actually
habitable for the tentacles and check for any actor, since the player
could occupy one of these squares.

--------------------------------------------------------------------------------
16937c449b | elliptic | 2014-09-20 16:58:40 -0400

Fix ability text for Divine Shield (PleasingFungus).

--------------------------------------------------------------------------------
a1afcf4b28 | elliptic | 2014-09-20 11:20:29 -0400

Clean up player_shield_class().
The only actual change here is that previously Shields skill didn't give part
of its bonus if you were wearing a shield with a sufficiently negative
enchantment that it put you at 0 SH; now you get the normal bonus from
Shields skill whenever you are wearing a shield.

--------------------------------------------------------------------------------
1efa3257be | elliptic | 2014-09-20 11:20:29 -0400

Simplify TSO's Divine Shield.
It is now a simple additive effect on your SH. The strength of it just depends
on your Invocations skill when you invoke the ability. Because it isn't
affected by Shields skill any longer, it doesn't let you train Shields skill
with no shield in inventory now.

The formula might need some minor tweaking, but the SH granted doesn't seem
that different from the old formula in most reasonable situations.

--------------------------------------------------------------------------------
38e0f5dd14 | Neil Moore | 2014-09-20 09:51:59 -0400

Formatting.

--------------------------------------------------------------------------------
0439c1f39f | Neil Moore | 2014-09-20 09:51:59 -0400

Zero out and stop training Shields on sac hand.
This does make the sacrifice more pronounced if you switch to TSO and
use divine shield, but leaving Ru isn't supposed to be easy.

--------------------------------------------------------------------------------
0440d817f3 | gammafunk | 2014-09-20 04:07:10 -0500

Unbrace

--------------------------------------------------------------------------------
0d1d01b29c | gammafunk | 2014-09-20 04:06:21 -0500

Refactor and document some mutation code (PleasingFungus)

--------------------------------------------------------------------------------
de63cc4b88 | Nate Rook | 2014-09-20 03:59:56 -0500

Remove an unneeded god check when using is_god_acting().
The asserts on is_god_acting guarantee that the god is valid, so we
don't need to worry about it. Also, clean up the asserts on
is_god_acting slightly to make it clearer they imply this.

--------------------------------------------------------------------------------
c49590a9bc | Nate Rook | 2014-09-20 03:52:02 -0500

Replace demonspawn and temporary params with an enum.
This is much more readable in most contexts.

--------------------------------------------------------------------------------
06c7d7ec4f | Nate Rook | 2014-09-20 03:52:02 -0500

Deduplicate miscast malmutation.

--------------------------------------------------------------------------------
5fa01b33c6 | elliptic | 2014-09-19 23:38:37 -0400

Allow interlevel travel to use unknown stairs to enter a level containing 
exclusions (qw).
Interlevel travel still only uses unknown stairs if there are no known ones.
Thus this only affects the situation in which you got shafted down and then
tried to use interlevel travel to come back up. Previously this would fail
(with a misleading message) if there was a single excluded square anywhere
on the level.

The old behavior dates from f2ae520a7, so Crawl has changed a lot since then.

--------------------------------------------------------------------------------
0cc52f6dda | elliptic | 2014-09-19 19:25:40 -0400

clua: you.rot(), the amount of rot you currently have.

--------------------------------------------------------------------------------
fbd8a9b20f | Corin Buchanan-Howland | 2014-09-19 18:02:57 -0400

Prevent trolls/demonspawn from being offered some sacrifices
It's intentionally barred to delete instrinsic mutations and fast/slow
healing are mutually exclusive, so trying to give a troll slow
healing crashes. Ditto demonspawn w/ robust and frail.

--------------------------------------------------------------------------------
f4f471db70 | Shmuale Mark | 2014-09-19 17:03:29 -0400

Correct fertiliser type for exotic species (#8886).
This also rewrites the code for the god titles a little, to be more like
that of the skill titles. There's still duplication between them, though.

--------------------------------------------------------------------------------
91f9442175 | nagdon | 2014-09-19 17:03:23 -0400

Clarify why teleportation/hasting is unavailable
In sprint mode, teleportations (but not blinks) are rejected with "Long-range
teleportation is disallowed in Dungeon Sprint." Formicids keep their short "You
cannot teleport/haste." messages (stasis is their main defining property, I
don't think that longer messages would be neccessary). If neither of these
permanent effects apply, the code will report all (temporary) effects currently
preventing teleportation (hasting is only blocked by amulet of stasis, so that
case is simpler). Theoretically this can create long messages (up to three
lines), but all teleport-blocking conditions are rare and these messages only
appear when the player tries something impossible, so this isn't a problem.

This was suggested in the following thread:
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=12916

--------------------------------------------------------------------------------
4ff2473382 | Shmuale Mark | 2014-09-19 17:03:16 -0400

XTAHUA DOES NOT LIKE TO 'OPEN DOORS!' XTAHUA PREFERS TO SMASH THEM! (Patashu)
iAs you can guess from the summary, Xtahua is a little upset that he
cannot show doors the same brutal strength he does to adventurers who
upset his sleep. That is where this patch comes in! This patch creates a
new 'Eat' enumeration value, like eating items and eating corpses, that is
specifically for doors! When a monster with this flag attempts to move
onto a closed door, the door explodes into shards! Much like what a jelly
would do, except more impressive! It has also been applied to the serpents
of hell, which were also unique dragons that could open doors, so this
patch should not cause any balance issues! Finally, the presence of 'eat
doors' is checked before the ability to open doors normally - allowing for
the future creation of creatures that are smart enough to use equipment,
but macho enough to forego doorknobs!

--------------------------------------------------------------------------------
10b4a65832 | Shmuale Mark | 2014-09-19 17:03:10 -0400

Clean up previous commit, use same breakpoints as the new word system.

--------------------------------------------------------------------------------
6a0639066d | Cedor | 2014-09-19 17:03:03 -0400

Stealth bar
Added stealth bar. 10 levels bar, reflecting the adjectives.

--------------------------------------------------------------------------------
6617749aba | Shmuale Mark | 2014-09-19 17:02:55 -0400

Move jewellery farther up in the inventory (simmarine).
Incidentally uniting all consumables, as well.

--------------------------------------------------------------------------------
06fd73c4b8 | Corin Buchanan-Howland | 2014-09-19 15:27:26 -0400

Make staves check wieldability when checking uselessness
. . . because spriggans with one hand can't wield them.

--------------------------------------------------------------------------------
3ee20a9291 | Corin Buchanan-Howland | 2014-09-19 14:50:45 -0400

Nudge (a)bility success rates over one character
This makes room for the particularly long costs line for Apocalypse.

--------------------------------------------------------------------------------
47af1f6eb6 | Corin Buchanan-Howland | 2014-09-19 14:44:04 -0400

Don't mark unid'd rods as useless under Sac Love

--------------------------------------------------------------------------------
51e2d8e188 | Corin Buchanan-Howland | 2014-09-19 14:35:52 -0400

Change '(currently unavailable)' to '(unavailable)' under sac hand

--------------------------------------------------------------------------------
6659180f9f | gammafunk | 2014-09-19 12:15:32 -0500

Give correct kill attribution for druid's call (PleasingFungus)

--------------------------------------------------------------------------------
21e48705b6 | elliptic | 2014-09-19 12:44:01 -0400

Don't use different verbs for different sacrifices.
This is what nouns are for.

--------------------------------------------------------------------------------
741f0934d1 | Corin Buchanan-Howland | 2014-09-19 09:20:25 -0400

Make milestones for Ru sacrifices
Now Ru sacrifices will be Sequell queriable. I'll refactor this
later, but I want to get the milestones in ASAP.

--------------------------------------------------------------------------------
516c4f72d5 | Corin Buchanan-Howland | 2014-09-18 22:39:00 -0400

Mark wand of enslavement as useless under Sac Love

--------------------------------------------------------------------------------
c35f2e0582 | ontoclasm | 2014-09-18 21:38:52 -0500

More unrand amulet tiles

--------------------------------------------------------------------------------
4675135a1a | Corin Buchanan-Howland | 2014-09-18 22:30:36 -0400

Fix 'you're already wearing one cursed rings'

--------------------------------------------------------------------------------
15d095bf68 | Corin Buchanan-Howland | 2014-09-18 22:21:36 -0400

Mark the Enslave spell as useless under Sacrifice Love
Also fix a bit of description that was probably broken by a previous Ru
commit.

--------------------------------------------------------------------------------
dea833aff4 | Corin Buchanan-Howland | 2014-09-18 22:08:29 -0400

Ru changelog fix
Same as the previous commit, this file just didn't get included.

--------------------------------------------------------------------------------
c0cd2f234a | Corin Buchanan-Howland | 2014-09-18 21:58:27 -0400

Ru text consistency updates
Uses the correct 'the Awakened' title in the changelog, and describes
the altar to match the icon made by ontoclasm.

--------------------------------------------------------------------------------
f95b410541 | Corin Buchanan-Howland | 2014-09-18 21:50:13 -0400

Fix a typo in Ru description.

--------------------------------------------------------------------------------
da92f62e7a | Corin Buchanan-Howland | 2014-09-18 21:38:02 -0400

Make sure Sac Stealth players always wake monsters
Just like berserk does.

--------------------------------------------------------------------------------
cfb1825676 | Corin Buchanan-Howland | 2014-09-18 21:38:01 -0400

Fix Health/Essence/Purity sacrifice grammar
Adds a new field to the mutation struct that stores a form of each
mutation which works in the Ru offers a sacrifice sentences.

--------------------------------------------------------------------------------
0ec5ccfe82 | Corin Buchanan-Howland | 2014-09-18 21:38:01 -0400

Adjust Sacrifice Taste and Sacrifice Words chance to activate
Now it won't trigger unless your current hp is less than 85% of max
and the damage dealt was at least 5% of max. After that the odds
increase with damage and with low health, becoming guaranteed at damage
>= 20% max hp or taking you to 30% max hp or less.

--------------------------------------------------------------------------------
f9d909bc6e | Corin Buchanan-Howland | 2014-09-18 21:38:00 -0400

Display current horror value in status.

--------------------------------------------------------------------------------
df547f9861 | Corin Buchanan-Howland | 2014-09-18 21:38:00 -0400

Clarify multiple outcome Ru sacrifices.

--------------------------------------------------------------------------------
076ae153bb | Corin Buchanan-Howland | 2014-09-18 21:37:59 -0400

Rename Ru's Cataclysm to Apocalypse and adjust.
'Cataclysm' was already part of a Qaz Invo title, so I'm changing
it to 'Apocalypse'. I'm also reflavoring it to be more thematic with
Ru's Awakening theme.

Also, decreased the chances of doing only damage and increased the
damage done by nearly 30% when no status is inflicted. I believe
this should give a better feel of killing some of a group and
incapacitating but not killing the majority.

--------------------------------------------------------------------------------
f17eeeb38d | Corin Buchanan-Howland | 2014-09-18 21:37:59 -0400

Adjusting numbers on Ru retribution
Setting the silence effect to only apply on casters, and reducing the
number of outcomes that do Corona.

--------------------------------------------------------------------------------
b8ca9bff51 | Corin Buchanan-Howland | 2014-09-18 21:37:58 -0400

Upgrade Draw Out Power
Draw Out Power was consistently the weakest/least used of Ru's powers.
This makes the exhaustion timeout much shorter and increases the
amount of recovery.

--------------------------------------------------------------------------------
7db326cb1c | Corin Buchanan-Howland | 2014-09-18 21:37:58 -0400

Allow Ru abilities under Silence.
Ru's abilities aren't invocations to the god, but rather ways you
can use the power you've gained through sacrifice, so you don't
need to be able to be heard in order to use them.

--------------------------------------------------------------------------------
ed37a4e3dc | Nicholas Connelly | 2014-09-18 19:59:27 -0400

Autotravel through out-of-range levels now defaults to yes (e.g. traveling from 
D:5 to D:6 through D:4).

--------------------------------------------------------------------------------
9248126563 | Shmuale Mark | 2014-09-18 19:59:22 -0400

Fix reversed no-recolouring logic (simmarine).

--------------------------------------------------------------------------------
9ab8c9fdb3 | Shmuale Mark | 2014-09-18 19:59:15 -0400

Reorder inventory categories (#6562).
From the upload page: It's nice to see all the things you can wield on the
same page of the inventory screen. This patch puts staves and rods just
after armour and moves food towards the end.

--------------------------------------------------------------------------------
3b10be2b77 | reaverb | 2014-09-18 15:41:38 -0400

Simplify blood handling for attacks
Varying the blood amounts by damage types was pretty spoilery in the
rare cases it was relevant (ex. Ignite Blood).

--------------------------------------------------------------------------------
d2453a0691 | reaverb | 2014-09-18 15:27:49 -0400

unbrace

--------------------------------------------------------------------------------
3e2fa8d00b | Steve Melenchuk | 2014-09-18 10:22:52 -0600

Fix typo in tomb_1_centre_nicolae_necropolis (#8899).

--------------------------------------------------------------------------------
4d5bba2648 | Shmuale Mark | 2014-09-18 09:42:32 -0400

Make lost soul revival of living monsters a bit more interesting again.
Changing lost souls to simply give MH_LIVING monsters another life made
them roughly similar to before, and improved interface, but it lost some
of the flavour and gameplay of what the original implementation did.

I'm hijacking the MF_FAKE_UNDEAD flag for revived living monsters, so that
they become similar to being spectrals as they did before. The "ghostly"
is moved out of their xv and into their actual name, which I hope works
well with other kinds of name overrides (I really can't tell). This means
that they are undead for all purposes in gameplay, and have the usual
undead resists -- rPois+++, rN+++, rTorm, and vulnerability to dispel
undead. I think that adding a word to their name is obstrusive enough to
make it clear they're now undead; perhaps something should be added to
their description too.

A good question would be, "Why not just try to improve the original
process, with spectrals?" I think that it fails to mimic the monster well.
For example, anything implemented as an ability, rather than a fake spell,
which is a difference normally opaque to the player, would be excluded
from their use for no obvious reason. The other problem is the interface:
using a single tile/glyph for spectral monsters is ok for Death Channel,
since they're all melee-only, and also ok for Enslave Soul, since there's
only ever one at a time, but it hides the information you want to know for
spellcasters, or the fact that one 'spectral elf' can dual-wield since it
used to be a blademaster.

--------------------------------------------------------------------------------
0e950fe9ad | Shmuale Mark | 2014-09-18 09:37:54 -0400

Whitespace fix.

--------------------------------------------------------------------------------
75befc7fcf | Shmuale Mark | 2014-09-18 08:32:36 -0400

Give Summon Emperor Scorpions a description properly.

--------------------------------------------------------------------------------
0711bb4a1a | Shmuale Mark | 2014-09-18 08:14:19 -0400

Don't prompt for removing an amulet of faith for 6* Ru worshippers.

--------------------------------------------------------------------------------
6932eac25a | theTower | 2014-09-18 02:08:14 -0400

Temporary quick-fix: Remove allies tracer on monster torment / tornado / chains
While 43baa798a0 does allow los-affecting spells to be cast out of the player's
sight for monsters, the tracer used is horrifically high and basically is
blocked by having about 6 hd of vulnerable allies near by even with an xl 27
player target. This mostly means next to no torment from deep elf demonologist
summons, when salamanders / giants / dragons are nearby in the Hells, when
demonspawn are nearby in Pan, and when a lich is encountered in Vaults / Depths
with friends, or most recently when bennu and emperor scorpions are nearby in
Tomb. Crawl's randomness, of course, made it seem like one was just getting
luck on no torment rolls.

As the quickest solution possible, I'm cutting the tracer for all monster
los checks's _foe_ratio, to replicate old behaviour but preserve use out of
player los. This incidentally also lets Lom tornado again without dragging
a wizard nearby, and the same with Nikola. It does mean they're ready to
hurt their allies, but this is a temporary in-term step. Ideally, much smarter
tracers are produced, with proximity for tornado and chain lightning, as well
as player current health for torment. Tracers could also ignore damaging
summons, since that's obviously also not much of an issue.

--------------------------------------------------------------------------------
084390fc22 | theTower | 2014-09-18 01:08:10 -0400

Give greater mummies occasional mana viper, emperor scorpion summons
More tricky Tomb holiness/threat variety. One out of three greater mummies
replaces vaguely-weak Summon Demon with vaguely-harmless occasionally
dramatic Summon Mana viper, and another one out of three greater mummies
replaces the 4/17-actually-dangerous Summon Undead with the reliably light
danger of a very refurbished Summon Scorpions. Both have lower summon caps
than the current spells (2 versus 3 and 6 versus 8, respectively), but this
seems fine due to their reliable vague-support / damage output. They are
also, of course, living monsters in a branch filled with torment (including
from their casters...), but as summons it should hardly matter greatly much
compared to the imminent goal of killing their source.

Of course, there's also the unusual but effective flavour involved in the
first place of the pharoahs calling forth snakes (with cobra hoods in tiles,
I swear) and scorpions. Praise be to Serqet and Meretseger.

Also, secretly buff Khufu in a reflection of these light greater mummy
changes. Replacing his summon demon slot with a summon scorpions slot means
he gets some brutal summon spam to torment and smite from behind, but he is
already a brutal unique for Crypt and it's flavourful / mechanically
distinguishing to let him have something besides a little more health
and a wand of digging check to distinguish him from his (immediately
present) peerage.

--------------------------------------------------------------------------------
10f4cc480b | theTower | 2014-09-18 00:51:55 -0400

A twisted resurrection of phoenixes, as Bennu in Tomb
As little omnipresence avatars of a creation god linked to a sun god,
another creator god, and an afterlife god, the Bennu have a wide spread of
capabilities: as a comparsion point, they can be roughly described as no
haste, regular-holiness executioners with sticky flame, holy, and draining
attacks. Yes, holy; undead have it easy in Tomb. Alongside this, they've
also got their own version of resurrection: a one-time instant deal near
their original spot, and where either death involves an explosion of
ghostly fire (which, remember, checks rN and heals undead).

As per usual, Tomb and extended can use more non-undead, non-demonic enemies.
Their vulnerability to torment should be fine, considering that they've got
a way partially around it. They're slotted vaguely into the same spots that
ancient champions are for the Tomb subvaults (i.e. where guardian mummies
are placed, if it's not the classic layout subvault using more of those),
with a few weight adjustments, plus rare out-of-depth placements and a
tiny extra placement in Tomb zig floors.

TODO:
 * Death message by blaze has several errors:
   "Killed from afar by bennu... with a set off by themself"
 * New tile.

--------------------------------------------------------------------------------
91a88487c6 | ontoclasm | 2014-09-17 23:42:05 -0500

Three unrand amulet tiles
In the hopes that slowly we'll replace all amulets with this style.

--------------------------------------------------------------------------------
9ffe6a5772 | Steve Melenchuk | 2014-09-17 22:30:41 -0600

Show Mnoleg's tentacles as, well, "Mnoleg's tentacle".
Avoids "The mnoleg tentacle slaps you but does no damage."

--------------------------------------------------------------------------------
6aad4a5fc5 | Steve Melenchuk | 2014-09-17 22:23:23 -0600

Allow monster tentacles to move if monster is immobile (gammafunk).
I'm not sure what the purpose of these checks was, but nothing breaks if
they're going, as far as I can tell.

--------------------------------------------------------------------------------
d17bf937c4 | theTower | 2014-09-18 00:22:28 -0400

Hellemental hellsprings (Bring back wellsprings solely within Cocytus, zigs)
Unique forms of debilitation are much maligned, and so are movement-binded
genuine dangers. Still, there are hypothetically contexts for it to work.
The hells, which encourage diving and rushing through its levels rather
than clearing them due to the hell effects, general low value of small
amounts of loot, and the high plateau of player power / xp in its position,
should be the most ideal of them. At the very least, said hell effects can
already dump weakling fodder onto the player and throw on a random negative
status, so a monster that can try to do a little better than that is hardly
out of place.

It also serves as part of (unique) non-demon non-undead "threats" for
extended, as is somewhat done currently with salamander firebrands in
Gehenna, iron golems in Dis, ghost crabs in Tartarus, and the mechanical
gap in resistances with Ds enemies versus demons for Pan. Cocytus is
lacking in its elemental and dangerous aspects to some extent when compared
to the other hells, anyway; some wellsprings sprinkled throughout the branch
and the end vaults are another equalizing buff step besides even more fiends.

(Also, coc_hangedman is slightly buffed due to its generous terrain compared
to the other Cocytus end vaults; the open water is closed in a little, and a
few more monsters are added in a few parts. The other ends were buffed slightly,
too, and all have some small use of wellsprings.)

--------------------------------------------------------------------------------
d57bacc8c5 | theTower | 2014-09-18 00:09:57 -0400

Make curse skulls regularly mobile (and fast), give Murray  Black Mark
It is no secret to say that immobiles are very awkward design, and genuine
threats unable to chase after a player means that only overzealous or
unlucky players will get caught by them. The majority of such monsters
usually thrive under specific vault conditions to aide their functionality,
a privledge usually unavailable to curse skulls. Aside from the extremely
rare Lair oklob, they are currently the only true immobiles that can place
randomly, and without the chance of alluring loot or malevolent terrain,
they suffer horribly as the lightest of temptations or exploration blocks.

Of course, there was also massive protest against the previous movement
change done to curse skulls. Giving them a unique smart movement akin to
wandering mushrooms that was aware of how to stay just on the edge of one's
LOS produced a unique high threat, but this breaking of standard tactics
through changing how one can anticipate monster movements (and stretching it
through making it outright hostile) was seen as too high a cost, and
distinctly out of place in Crawl in general.

My conclusion is to experimentally rid them of their immobility altogether.
Curse skulls now move normally, levitating at speed 15. They get a 1/6
health cut, 35 (from 40) AC, and less hell/fire resistance in exchange.
The random placements also get a few random items under them, and a
few vaults using them have some per-case adjustments done, too.

They should still be quite distinct from mummy priests, the most obvious
analogues in being non-conjuring Summon Undead users; fast rather than
slow, heavy resists, heavy defenses, and a more focused spell set, but
also quite a ways rarer, no (surprisingly passable) melee, and with much
less company or death curses. They're also still distinct from curse toes,
by summoning something completely different (and not immediately surrounding),
plus have the move-speed advantage (if not as much torment or health).

Murray himself is obviously rather plain in this context, besides being in
a different place. To this end, he gets a previously-unique extended effect:
Black Mark, the ally support monster invocation on black suns that makes all
in-LOS allies recover health plus drain skills/hd, slow, or drain mp / apply
antimagic per hit. Naturally, this combines nastily with his bites, Summon
Undead, and the open spaces / demons in his native Vestibule layout. It'll
also stay rare and stuck on extended, but let his (joke) appearance be
memorable. (As a small compensation, his health is cut by 1/9th, and he isn't
fast like the other curse skulls: don't tell him flying's faster than rolling.)

--------------------------------------------------------------------------------
6601527e36 | Steve Melenchuk | 2014-09-17 22:01:12 -0600

Fix compilation (again).

--------------------------------------------------------------------------------
244e2bef25 | theTower | 2014-09-17 23:57:24 -0400

Put the Hall of Blades on Elf:2 (and another vault onto Elf:1)
The Hall of Blades and the Elven Halls both struggle under a homogenous
specific monster set, and have been shrunken over time to the point of
removing the Hall of Blades in 0.15. I think there's still some value
in Blade, having made it a decent gamble for possibly useful equipment,
and it targets both branches homogenity problem to mix them together.
Normal speed, no-resists conjurers and summoners (with a handful of
variants) can welcome high speed omni-resistant melee monsters, and the
flavour of the elves making constructs is certainly readily possible, too.

The original layout is used as about a third to a half of Elf:2 on one hard
side of the floor; I also made a relatively-similiar , half-weight alternative
layout that is more distinctly split but with a more open entry section.
There's a mix of lesser elves alongside a smaller amount of dancing weapons,
and the previous dual high-quality weapons are still there. It is a wild swing
in content compared to the rest of the branch or even the branch end vault,
so I've re-purposed old Blade branch entry vaults as a connecting part between
the two, with a runed door and some weak dancing daggers and falchions to serve
as warning transition (alongside whatever piles of blood, sword shapes, fancy
or straightforward pillars, and floor_vault floor tiles the these subvault may
contain). Random teleport may kinda skip this, and I have some light concerns
about communicating the reliable presence of this new Hall of Blades
incarnation, but players can adapt as they have adapted to bigger changes.
This is still a combination of two optional later branches, anyway, and there
is hardly much pressure involved as such.

Of course, between the Elf:3 endvault and this Elf:2 Blade vault, the first
floor looks a little sparse aside from the entry vault. There's also not much
room to fit Elf-specific vaults with those two floors occupied, either. As a
result, I'm making sure of one of a decent selection of Elf vaults is placed
on Elf:1, so that they're not completely lost in all these bigger vaults. The
selection is mostly based in placing visually distinct 098 vaults or vaults
playing up the higher elf classes, and is a little sparse for now even with
a few additions I threw together (at sixteen): more work can be done here to
make the numbers feel comfortable for their reliable placement, in a fashion
similiar to Swamp.

Sorry, infiniplex, for warping the new layouts so much.

--------------------------------------------------------------------------------
c8e8cdb14d | ontoclasm | 2014-09-17 22:50:15 -0500

Change the local tiles number font (again)
Hopefully this one will be easier to read, while still allowing for up to
9999 objects.

--------------------------------------------------------------------------------
edecbb15d6 | ontoclasm | 2014-09-17 22:50:14 -0500

Monster HP bar edits

--------------------------------------------------------------------------------
2c86161b19 | theTower | 2014-09-17 23:46:58 -0400

Tweak great orb of eyes, draconian knight spellsets
 * Give great orbs of eyes mana drain (the mr-checking beam from
   orange crystal statues) and not slow, because there's lots of
   slow already around and mana drain is much closer to being the
   mish-mash of weaker copies of most full eyes. Emergency polymorph
   to complete the set would be nice, but badforms need more work.
   They're still quite hurt by the binary nature of mr and the
   extreme innate resistance of select races, anyway, so this may
   not really be a buff.
 * Swap simulacrum and animate dead on the draconian knight sets.
   Monster-cast simulacrum has gotten a large buff, so I've swapped
   it to go on the invis set instead of the haste set.

--------------------------------------------------------------------------------
275c35f9b8 | theTower | 2014-09-17 23:40:37 -0400

Scale Ziggurat monsters per floor very harsly to number of completed zigs
This is it, this is the top end of raw danger Crawl can provide (if
certainly not relative danger). There's not much left besides re-arranging
the player and monsters, adding (even) more depth-scaling to each floor,
or throwing out the randomness and just placing solely top threats.

At zero ziggurats left on the last floor, there should be no differences
from before. At six ziggurats completed, smaller early floors can be
completely full of monsters, and the last floors can easily reach the hard,
game-limited monsters per floor cap of 700. At thirteen ziggurats, the
depth-scaling hd-pool that ziggurat floors rely on will be almost maxed
out per floor, and the scaling is essentially done. This might put some
stress on the game itself and the servers, though it should take a while
before people make it that far.

Rewards will slightly, slowly, and randomly scale up to completed zigs
not that they really matter. Both forms of scaling only happens for completing
a Zig (so leaving a floor early will avoid the monster scaling), but I'm not
greatly concerned: after the first zig, further zigs are for bragging rights
in the first place. Those who want to continue to relish the raw top power a
character can have against the raw top threats the game can provide can make
use of said trick, but indefinite zig raiding is not much of a recognizable
accomplishment following that trick.

There was some dev discussion on removing the guarantee on the Depths ziggurat
and making the sole source of ziggurats past the first one (in Pan) be
an evokable available only on Zig:27. I'd support such further changes.

--------------------------------------------------------------------------------
8b08fbb356 | theTower | 2014-09-17 23:37:38 -0400

Ziggurat set / pillar tweaks
 * Shoals: Increase the raw (relatively weak) numbers through band use.
 * Snake: Lower the quicksilver dragon and guardian serpent spam.
 * Swamp: Up extra hydrae heads, add in extra shambling mangroves.
 * Crypt: Buff to use out-of-depths. Nearly no chaff and mostly top undead now.
 * Dis: Replace extra iron dragons with extra war gargoyles, dragons are used
   a lot throughout the zig sets already.
 * Earth: Exist once more. Aside from the hell sentinels, is basically
   about a rain of projectiles from highly defensive monsters.
 * Chaos: Slip in a tiny chance for greater demons, since the pan lords
   looked lonely without their old demon friends.
 * Re-arrange some text.
 * Slip nonbase demonspawn into the grates ring pillar vault.
 * Let torpor snails join the boring beetle pillar vault.
 * Have a watching imp in the glass box pillar vault.
 * Let the monster drop pillar vault use rakshasas too.

--------------------------------------------------------------------------------
89316f4122 | theTower | 2014-09-17 23:32:48 -0400

Adjust select Depths vaults to try and reduce monster digging problems (minmay)
The vague assertion, once decoupled from spiteful doublethink, is that deep 
troll
earth mage digging (and to a much lesser extent monsters using wands of digging)
is a change to the D/Depths population that negatively impacts a variety of 
vaults
by reliably digging straight through sections meant to be usually untouched by
monsters very often, interrupting pacing and ruining tactical terrain and what 
not.

As such, I've done lots of converting rock walls to stone walls for some vaults,
a few runed doors, and a few uses of stone glass for others that explicitly want
purposeful player digging, mostly on a provided list. Usually imperfect, but 
it's
about impact reduction: I also kept some rock for the sake of some useful player
digging opportunities, as is covered in the next paragraph.

In quite a few changes there are regrettable detriments to original
designs: reduction of simplicity, somewhat reducing player agency / options
by blocking their digging, added mechanical wrinkles (like forest fires),
lowered vault-level integration / segment delineation through rock / not-rock
use, (more) interruption of normal play in previously orthodox vaults, and so
on. I have tried to reduce the damage as I can, but it is unavoidable in this
effort without changing monster digging entirely, and if a nerf to
digging-monster distant-target-tracking was done then I would think monster
digging to vault relations would be fine.
---

--------------------------------------------------------------------------------
ac278e4117 | theTower | 2014-09-17 23:29:46 -0400

Touch ups to mon-spll.h, spl-data.h
 * Buff test spawners. Specifically, make them get a wider, stronger
   range of summons without having to remember to tell arena to use
   pure-random place settings, through Plane Rend, and put the cloning
   code under a bit more visible pressure by giving them Phantom Mirror.
 * Cut the unused (and unusable) naga enchanter set.
 * Lower a hidden flavour number and properly tab a new entry in spl-data

--------------------------------------------------------------------------------
025011a646 | theTower | 2014-09-17 23:26:19 -0400

Fix compilation.

--------------------------------------------------------------------------------
b262963186 | Corin Buchanan-Howland | 2014-09-17 23:17:04 -0400

Fixing Power Leap targeting
Using the obscure @ targeting command to override maximum range, you
could power leap to any tile in LOS, ignoring the range of 3.

--------------------------------------------------------------------------------
06fa6acccf | Corin Buchanan-Howland | 2014-09-17 23:17:04 -0400

Tweak Cataclysm damage and status effects.
Increases Cataclysm damage by a flat 10 across the board. Prevents
Cataclysm from inflicting Mute on a non-spellcasting target -- instead
it uses the paralyze effect.

--------------------------------------------------------------------------------
fca566f44b | theTower | 2014-09-17 23:16:16 -0400

Weaken some extremely early overly dangerous vaults
These vaults are some of the top killers in 0.14/0.15 D, and it's mostly
because they have some kind of unreasonable threat for an early, static
vault; usually this produces spoiler problems and anti-autoexplore
tendencies. Lemuel's castle is excluded for being classic and more
importantly difficult to miss warnings and nature, aside from bad
teleports (which can kill easily regardless of context).

Weakened vaults:
 * kennysheep_big_flooded_room uses D:2 9s: killer bees, ogres,
   centaurs. D:2-5 get 0s instead of 9s.
 * hangedman_cross_stitches's D:5 9s included hill giants,
   unseen horrors, wasps. Pushed down to D:6 minimum.
 * forest_paths uses quite a few clumped essentially-0s for
   D:2 / D:3 due to the map's 1/2/3 defaulting to 0s when
   not getting a set from the lua function. D:1-3 get
   several monsters trimmed out.
 * vehumet_altar_wand_db: A weakling with a weak wand is still
   extremely dangerous for an overflow altar on D:2. Pushed to D:3
   minimum.
 * fedhas_bush_and_centaur_altar: Oddly positioned compared to the
   others, due to the heavy centaur nerf from the ranged overhaul.
   Still, an overflow altar with a centaur in unfavourable terrain
   is a bit much for D:3. Pushed down to D:4 minimum.

--------------------------------------------------------------------------------
9d55891f1c | theTower | 2014-09-17 23:12:49 -0400

Lower base draconian chances in polymorph
Partially reverts 83cf5beb322. While it is fully logical to not have polymorph
rules change depending on the branch, without the code base draconians become
much more common polymorph targets around hd 14, which is silly considering
they're not really seperate monster entirely for this purpose compared to, say,
ugly things. This adds the code back in a slightly reduced form to lower their
chances.

--------------------------------------------------------------------------------
1781301f7e | theTower | 2014-09-17 23:10:46 -0400

More plane rend adjustments
 * Shoals: Swap sirens for water nymphs, since the former are
   rather weak without nearby deep water while the later aren't.
 * Vaults: Swap ironheart preservers with dancing weapons, both because
   injury bond is weak and as a tribute to the previous position
   of the Hall of Blades.
 * Crypt: Replace ancient champions with rarer-elsewhere revenants.
 * Tomb: Replace guardian mummies with ancient champions.
 * Abyss: Swap out worldbinders with the newly non-pointless, less
   psychologically-damaging very ugly thing.

--------------------------------------------------------------------------------
a68d18e179 | theTower | 2014-09-17 23:08:55 -0400

Fix monster orb of electrocution using one die, not three dice
This, of course, may warant investigation into Asterion's potential
damage output again since it triples the damage of an auto-hit spell
with an awkward resist, it fixes up a bit of blood saints and makes
things work as they should otherwise in the code.

--------------------------------------------------------------------------------
67d7cde3a4 | theTower | 2014-09-17 23:06:52 -0400

Clean up hells lua a little, move Serpent code to vault.lua

--------------------------------------------------------------------------------
0e215f335b | theTower | 2014-09-17 23:04:42 -0400

Replace a quote, add two quotes, date another quote.
I have no comments on the nature of the first issue.

--------------------------------------------------------------------------------
277d192313 | theTower | 2014-09-17 23:00:38 -0400

Block eels and lava snakes from Zot.
They're pretty pointless spawns by that time, and using real threats
would dilute the self-contained, decent regular monster set.

Also, edit and add some comments on this and the same done for
Shoals, Abyss, Pan, D:1-5, including a reader's redirect.

--------------------------------------------------------------------------------
ccaf1fdcf5 | theTower | 2014-09-17 22:57:59 -0400

Let pairs of ragged claws scuttle across the floors of liquid seas, too.
In more coherent terms, mark apocalypse crabs and ghost crabs as amphibious.
They are crabs, after all. Fire crabs have a bit of an elemental mis-match
quandry, so I'll defer that to further dev discussion, but for these two
it should be fine to let them walk through water.

Also, give ghost crabs rRot. Few would have guessed they didn't have it before,
and it's a little obvious now that they're in the miasma swamp end now, so.

--------------------------------------------------------------------------------
4230734e77 | theTower | 2014-09-17 22:56:23 -0400

Fresh light D/Depths encompass vault edits
 * slaughterboxes: Slightly nerf the placement of 9s, used liberally throughout
   the vault, since the introduction of Depths made them mean quite a bit more.
 * pleasuredromes: Re-introduce long monster listings, now more focused and
   easier-to-parse. It is quite readily a nerf due to how hard Depths scales its
   spawns (a few less  liches now, for example), and the vault wasn't designed
   around said spawn's tiers. The list should have an even split between "is
   native to Depths" and "is not out of place in Depths" while avoiding more
   controversially bizarre choices, now. At least, that's the intent.
 * radiant_caverns: Cut chances of getting the vaults in half (since there are
   two of them), clean up / fix up a convoluted header, cut unused definitions,
   add a few more monsters throughout the set and vault for variety.
 * Put a total of four portals in all of the Depths encompass vaults, to be
   able to accomodate the occasional ziggurat portal placement. On a side
   note, this also increases the chances of shops in spin_cycle, slightly.

--------------------------------------------------------------------------------
d130c34a3a | theTower | 2014-09-17 22:54:07 -0400

Further Swamp end vaults adjustments
Small stuff, mostly, meant to try and even out the differences in
difficulty / deaths for each end.
 * swamp
   Very very slightly more generous terrain.
 * swamp_old_school
   Slightly lower the average and both extremes of possible swamp dragon
    / hydra placements, plus scattering them around a bit more. Main deaths
   (and top continued deaths position) are from Lernaean's design (and
   added vault weight), which is fine, so his company is restrained instead.
 * swamp_fiery
   Third fire dragon, push down mottled dragons with the loss of their
   item destruction (and thus not wasting a slot for lindwurm / fire crab),
   a few more hydras. Still relatively weak in its main fodder, whatever.
 * swamp_pestilence
   Guarantee the phantasmal warriors, push it to a max of three, and
   mix in some ghost crabs into that allotment (which should fit in
   well for the depth involved). Also, replace the plant in the
   death drake / plant / oklob arrangement with a vampire mosquito band.
 * grunt_swamp_rune_castle
   Add an inner cross of walls and shuffle around the monster placement
   to lessen the oncoming rush. The vault's combination of open spillage
   terrain, dense monster placement, and the Lernaean hydra left it
   near the top in terms of potential threat, even with its fixed relatively
   weaker monster output results.

--------------------------------------------------------------------------------
639f1a7a40 | theTower | 2014-09-17 22:51:11 -0400

New Gehenna end.
Standard re-interpretation of trends in hell end structures paired with
diagonal mirroring symmetry and diversionary layout tactics, plus
finnicky and thorough minor pillar randomization and excess monster
definition for tangential spawns, with a focus on open-space diagonally
oriented level traversing and the vague notion of the non-orthodox
non-creator-set end. Same old style as dis_hangedman and coc_hangedman,
in other words, except mucking with the most solidly-designed of the hells
(said status due to the sheer effectiveness in design of hellfire and
fire monsters compared to the other hells, other elements, etc.)

To address: The player can get quite close to endless lava in this end,
which makes the previous minor issue of endless lava having the same
console glyph / colour / tiles tiles much more noticeable. They should
get different graphics, in the same fashion as open sea spaces.

--------------------------------------------------------------------------------
891ea98862 | theTower | 2014-09-17 22:48:20 -0400

Vault batch.
A small slice of my old ideas and drafts, fixed-up.
Mini-vaults for Lair, Crypt, Elf, and the Hells;
small decoration for Spider and Swamp;
large decoration for Spider and Zot;
and large vaults for Depths, Dis, Tartarus, and Zot.
Some are quite unorthodox.

--------------------------------------------------------------------------------
96e350d44d | theTower | 2014-09-17 22:43:14 -0400

Better compensate Crypt's spawns for the cut floors
Since there used to be some key spawns left to Crypt:3 when it had five
floors, adjust everything up a floor to better approximate what it once
had (so, current Crypt:1-3 will resemble previous Crypt:2-4). It does
mean the branch gets meaner faster, but the cap of meaness was cut off.

Still, the out-of-depths are a nice idea, since few branches actually have
such a possibility. I'm keeping it with an altered simulation of what
a previous Crypt:6 would have been, though with a bit of difficulty and
some editing due to how monster weighting functions are mostly regulated
according to the branch's length. No ood wraiths, some ood phantasmal
warriors / jiangshi / silent specters / ghouls, lowered ood chance for
ancient champions (from what would be 15%!). Outside of some minor changes
to wraiths and ghoul spawns (rather compensated with ood / respawns), the
margin of change should be 0.05% for Crypt:1-3 regular spawns, and 0.1%
for Crypt:4 (or old Crypt:5); this was done via spreadsheet rather than
simulator or formula. Whatever.

--------------------------------------------------------------------------------
0d77e24190 | Steve Melenchuk | 2014-09-17 20:19:08 -0600

Move a name lower down in CREDITS.txt.
Since Lasty is now officially a part of the cabal!

--------------------------------------------------------------------------------
f2dfd2329d | ontoclasm | 2014-09-17 20:58:03 -0500

Fix the D&D title screen

--------------------------------------------------------------------------------
0b61cbafa7 | Shmuale Mark | 2014-09-17 19:49:00 -0400

Shops aren't stairs (#8965).

--------------------------------------------------------------------------------
7e57b07a0f | Shmuale Mark | 2014-09-17 18:54:30 -0400

Allow using Draw Out Power while confused (#8969).

--------------------------------------------------------------------------------
e745240208 | Shmuale Mark | 2014-09-17 18:51:31 -0400

Don't let mummies sacrifice potions (#8963).

--------------------------------------------------------------------------------
aa3c11aefc | Shmuale Mark | 2014-09-17 18:48:55 -0400

Make rings less likely from acquirement if you only have one hand.

--------------------------------------------------------------------------------
e044ed01c3 | Shmuale Mark | 2014-09-17 18:48:18 -0400

Ru text improvements.

--------------------------------------------------------------------------------
20b213913d | Pekka Lampila | 2014-09-17 13:26:23 +0300

Identify invis potion correctly even with halo (#8921).

--------------------------------------------------------------------------------
84b6425240 | ontoclasm | 2014-09-17 01:45:42 -0500

Ru altar tile

--------------------------------------------------------------------------------
dc21f723eb | Pekka Lampila | 2014-09-16 22:15:56 +0300

Update minimap when Ash detects portals (#8903).
Also when revealing monsters in wizard mode.

--------------------------------------------------------------------------------
6450424b2d | elliptic | 2014-09-16 14:26:38 -0400

Fix DACT_ALLY_SACRIFICE_LOVE being applied to monsters who are already hostile.

--------------------------------------------------------------------------------
68461b6e73 | Pekka Lampila | 2014-09-16 21:12:42 +0300

Wizmode character dump loading fixes.
Correctly parse species that have a space in the name.
Fix loading a dump with the same god as the current one.
Give player extra gold to offset Gozag entry fee (no negative gold).

--------------------------------------------------------------------------------
64bbe8d3d2 | Pekka Lampila | 2014-09-16 20:48:59 +0300

Actually waive Gozag service fee for monks.
This bug could leave the player with negative amount of gold.
Also give the player enough gold to join when using wizmode command.

--------------------------------------------------------------------------------
a3a77a91df | elliptic | 2014-09-16 09:09:26 -0400

Make view.update_monsters() dlua.
Since it was intended for vault use, not player use.

--------------------------------------------------------------------------------
88db246554 | ontoclasm | 2014-09-16 01:47:38 -0500

Unrand tiles by roctavian

--------------------------------------------------------------------------------
2a919a2515 | Shmuale Mark | 2014-09-15 21:28:47 -0400

Unbreak save compat.
Some TAG_MINOR_ versions were left in from the iashol branch; they were
not supposed to go in trunk. This wouldn't have broken anything major,
except that they were in the middle of the enum, causing the code in
tags.cc to get fouled up.

I'm removing them from the middle of the enum, which means saves made
between the merge and this commit won't load afterwards, probably;
thankfully, the public servers have not rebuilt yet.

--------------------------------------------------------------------------------
64de707919 | Shmuale Mark | 2014-09-15 21:28:39 -0400

Ditch the commented options in init.txt.
They were confusing for beginners, who often didn't understand they had to
remove the beginning '#', experts, who often were not sure whether the
line had the default or the non-default value, and devs, who often failed
to keep them up to date, or give the the correct value, or who did not
know whether an option should be in there, alike.

This has been suggested before and I know it's not uncontroversial, but
elliptic and dpeg at least seemed to support the idea. Even if this ends
up getting reverted, the default init.txt could probably stand to be
shortened by sticking to often-changed options.

--------------------------------------------------------------------------------
c3b9eb84af | Shmuale Mark | 2014-09-15 21:28:31 -0400

cset -> display_char, improve documentation, code.
cset is a quite mysterious name, display_char should hopefully make a
little more sense. I retained compatibility for "cset.*" as an option name
as well; this should perhaps be standard practice from now on.

--------------------------------------------------------------------------------
633590d9eb | Shmuale Mark | 2014-09-15 21:28:21 -0400

Remove dat/clua/gearset.lua.
It was apparently broken at one point for several years without
anybody noticing, and almost certainly can be used just by pasting into
your rcfile.

--------------------------------------------------------------------------------
3c0124a5cb | Shmuale Mark | 2014-09-15 21:28:10 -0400

Remove dat/clua/wield.lua.
It duplicated some code that was already duplicated in C++ (also fixed in
this commit). I can't imagine much use for something that would display
items of your choice on the 'w' menu -- if something is useful, like
showing arrows/javs with s2s known, it should be on for all players.

--------------------------------------------------------------------------------
2903534f05 | Shmuale Mark | 2014-09-15 21:27:57 -0400

Change trapwalk_safe_hp to a boolean option.
Mechanical traps are incredibly rare, and I never have seen someone change
the option to anything other than all 1s or the defaults. It's also now
implemented in C++ rather than lua.

--------------------------------------------------------------------------------
077c69a174 | Shmuale Mark | 2014-09-15 21:26:58 -0400

Add a "Cloud" status light and an option to control it.
It can sometimes be a bit ambiguous whether you're still in a cloud, and
people often request a way to check without pressing 'x'. The light is
darkgrey if the cloud does no damage to you and will have no harmful
effects. The option enabling it defaults to false on tiles builds, where
it is much easier to see if you're in a cloud.

--------------------------------------------------------------------------------
f8e4bf85bc | Shmuale Mark | 2014-09-15 20:01:07 -0400

Make dispellability of a duration a field in duration_def.
This also makes a few durations not previously dispellable possible, but
mostly they seemed like oversights.

--------------------------------------------------------------------------------
187eab24ab | Shmuale Mark | 2014-09-15 19:55:58 -0400

Don't crash whenever making a Vaults level (#8958).
This is quite hacky, and I'm afraid that it might cause more problems, but
at least it doesn't crash at all times. The function that I changed
_seems_ to not be used by anything else, but I'm not sure.

--------------------------------------------------------------------------------
6693e34842 | Steve Melenchuk | 2014-09-15 17:47:53 -0600

0.15.1 changelog.
(cherry picked from commit 7324901d92f2974e01a620fdd492f1d59ab16597)

--------------------------------------------------------------------------------
d53381c42c | Corin Buchanan-Howland | 2014-09-15 17:46:47 -0600

Coloring Ru attack stop/redirect messages and fixing a comment

--------------------------------------------------------------------------------
4d03c86272 | Steve Melenchuk | 2014-09-15 17:00:39 -0600

Changelog through 0.16-a0-603-g12f7cf7.
Thanks to Lasty for providing the Ru blurb.

--------------------------------------------------------------------------------
12f7cf7bf3 | Steve Melenchuk | 2014-09-15 16:40:20 -0600

Revert "(EXPERIMENTAL ONLY)Ru: Reverse DACT tags for Experimental save compat"
As I explained at the time this commit was made, daction enums are very
obviously marshalled in several places. I doubt there'd ever be a game
where this is a concern, but I'd rather be safe.

This reverts commit 18dcf3e2df3d52ca947b0e3b04531cb825f3c3ea.

--------------------------------------------------------------------------------
33066d8fe4 | Steve Melenchuk | 2014-09-15 16:36:32 -0600

Merge branch 'iashol'
Otherwise presently known as Ru.

We're at a point with Ru where Ru can be trunk-tested, and just after
the tournament ends - i.e. at the start of a trunk cycle - is a great
time for that.

Conflicts:
	crawl-ref/source/enum.h
	crawl-ref/source/main.cc
	crawl-ref/source/mon-place.cc
	crawl-ref/source/terrain.cc

--------------------------------------------------------------------------------
631e55c8e1 | Jesse Luehrs | 2014-09-15 16:17:11 -0400

add a new option to allow disabling all kinds of animations

--------------------------------------------------------------------------------
9f129223c6 | elliptic | 2014-09-15 11:10:40 -0400

clua: view.cloud_at().

--------------------------------------------------------------------------------
fcb19ffc13 | Shmuale Mark | 2014-09-15 10:25:01 -0400

Add Alex Henry to CREDITS.txt.

--------------------------------------------------------------------------------
dc488c0dde | Akinori MUSHA | 2014-09-15 10:07:00 -0400

Use more sources to locate font files.
Use fontconfig if available and search /usr/*/lib/X11/fonts also.
This adds support for a wider range of operating systems including
*BSD.

--------------------------------------------------------------------------------
1cbfad4f7e | Alex Henry | 2014-09-15 09:55:14 -0400

l_item.cc : added item.hands
[<wheals> argh <wheals> no gratuitous floating point please]

--------------------------------------------------------------------------------
555ca3cad4 | Richard Soderberg | 2014-09-15 09:40:30 -0400

melee_attack.cc: qty.3 of ASSERT(defender); to defend against static analysis 
null-pointer derefs
[Removed one ASSERT that was unnecessary, since it happened right after
the pointer was dereferenced. --wheals]

--------------------------------------------------------------------------------
30d2c40771 | Richard Soderberg | 2014-09-15 09:36:45 -0400

Makefile: use xcode-select -p to find Xcode, resort to /Application/Xcode.app

--------------------------------------------------------------------------------
2509d5ab30 | Shmuale Mark | 2014-09-15 09:34:24 -0400

Possibly fix not being able to compile crawl-ref.sln in MSVC (#8018).
For some reason, I was unable to use the patch actually attached in the
issue, but all the changes here are Bodrick's, not mine. I'm not sure if
MSVC actually works now, but hopefully it has fewer breakages.

--------------------------------------------------------------------------------
f9c09baf4a | Shmuale Mark | 2014-09-15 09:21:06 -0400

Remove Tomb from deck of punishment (#8859).

--------------------------------------------------------------------------------
5179ca8190 | Eduardo Gonzalez | 2014-09-15 09:20:37 -0400

Ignore saprovorous when considering gourmand useless for carnivores.
No longer relevant with the removal of nausea and contaminated chunks

--------------------------------------------------------------------------------
9c8bd3de17 | Shmuale Mark | 2014-09-15 09:16:06 -0400

Deverbosificate.

--------------------------------------------------------------------------------
d51be4cf57 | Shmuale Mark | 2014-09-15 08:53:34 -0400

Use feat_is_ functions in another place.

--------------------------------------------------------------------------------
64c6b9b055 | Jesse Luehrs | 2014-09-15 04:16:54 -0400

fix precedence (8959)

--------------------------------------------------------------------------------
b6b6e6b4aa | ontoclasm | 2014-09-14 21:28:26 -0500

Panlord weapon tiles

--------------------------------------------------------------------------------
cd1393a7cc | ontoclasm | 2014-09-14 19:23:21 -0500

Bloodbane, Prune, & Sharnga tiles

--------------------------------------------------------------------------------
d52796bc0d | ontoclasm | 2014-09-14 19:23:20 -0500

Fix some rims

--------------------------------------------------------------------------------
01c41f6b27 | Jesse Luehrs | 2014-09-14 18:48:21 -0400

tweak the orb animation a bit more

--------------------------------------------------------------------------------
ee21abf0ff | Jesse Luehrs | 2014-09-14 18:48:21 -0400

actually, disable it for all webtiles
it sort of works for glyphs and hybrid, but the full map still doesn't
update even there

--------------------------------------------------------------------------------
c562a60e92 | Jesse Luehrs | 2014-09-14 18:48:21 -0400

disable animations in webtiles for now

--------------------------------------------------------------------------------
3c6a0d5f22 | Jesse Luehrs | 2014-09-14 18:48:21 -0400

run the shatter animation before monsters are damaged
this way, we avoid the animation being delayed until after a level up
prompt, for instance

--------------------------------------------------------------------------------
6afa2006a7 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

add option to control if animations are used

--------------------------------------------------------------------------------
af142c7edf | Jesse Luehrs | 2014-09-14 18:48:20 -0400

<+edlothiol> doy: isn't that basically flash_view_delay?

--------------------------------------------------------------------------------
a67e23f033 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

animation for low hitpoints

--------------------------------------------------------------------------------
95e11bbc3e | Jesse Luehrs | 2014-09-14 18:48:20 -0400

shorten the shatter animation a bit

--------------------------------------------------------------------------------
4fcdf6d398 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

better banishment animation

--------------------------------------------------------------------------------
ea7a344f9b | Jesse Luehrs | 2014-09-14 18:48:20 -0400

need to switch this dynamically
webtiles builds can be either console or tiles, so we can't do this
with a #define

--------------------------------------------------------------------------------
a5c5d93340 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

use darkgrey for the console orb animation
the zot:5 floor is already magenta, so we can't see it

--------------------------------------------------------------------------------
05b12c06e1 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

better orb animation

--------------------------------------------------------------------------------
baa9e9e214 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

pass in the colour too
not sure if this is the best solution, but going with it for now

--------------------------------------------------------------------------------
6e0e16c2b1 | Nicholas Feinberg | 2014-09-14 18:48:20 -0400

Constify.

--------------------------------------------------------------------------------
d34a7a42a1 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

add an animation for picking up the orb

--------------------------------------------------------------------------------
97ace40fb3 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

add an animation transition for being banished

--------------------------------------------------------------------------------
3e89815010 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

allow not cleaning up the screen after an animation
this will allow an animation's end result to stay on the screen until
the next time the map is drawn, so that animations can be used for
transitions

--------------------------------------------------------------------------------
ec59bd8622 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

add a few more animation types

--------------------------------------------------------------------------------
f7e156e60a | Jesse Luehrs | 2014-09-14 18:48:20 -0400

factor the animation out to allow for other animations

--------------------------------------------------------------------------------
78386afed9 | Jesse Luehrs | 2014-09-14 18:48:20 -0400

shake the viewport around a bit when shatter is cast

--------------------------------------------------------------------------------
131e6f3a5d | Jesse Luehrs | 2014-09-14 18:22:13 -0400

swap out flash freeze for glaciate
glaciate is a bit on the ridiculous side, and the messages are weird for
a breath weapon anyway

--------------------------------------------------------------------------------
dea17f3fb0 | Jesse Luehrs | 2014-09-14 18:22:13 -0400

better message for crystal spear breath

--------------------------------------------------------------------------------
61def2c574 | Jesse Luehrs | 2014-09-14 18:22:13 -0400

note "three-headed" in serpent of hell descriptions

--------------------------------------------------------------------------------
aa166173ae | Jesse Luehrs | 2014-09-14 18:22:13 -0400

few more tweaks

--------------------------------------------------------------------------------
aae177ee36 | Jesse Luehrs | 2014-09-14 18:22:13 -0400

buff the cocytus and dis variants a bit
swap out ozo's for glaciate and bump up the dis variant's ac and
physical attacks a bunch. still think the dis variant could use some
better breath attacks though.

--------------------------------------------------------------------------------
5bba3965cb | Jesse Luehrs | 2014-09-14 18:22:13 -0400

also give serpent of hell summon dragon, because why not

--------------------------------------------------------------------------------
28a7641af0 | Jesse Luehrs | 2014-09-14 18:22:13 -0400

buff serpent of hell a bit
turn serpent of hell into a three headed dragon, each of which can bite
or use a breath weapon separately

unlike hydras, the heads can't be chopped off

--------------------------------------------------------------------------------
b33379efe7 | Jesse Luehrs | 2014-09-14 18:22:13 -0400

allow multi-attacks from monsters with more than one base attack
assume that the multi-attack is from multiple heads, and that the first
attack listed in their attack spec is the head attack

--------------------------------------------------------------------------------
d787d97d55 | Neil Moore | 2014-09-14 17:50:15 -0400

Be less loopy.

--------------------------------------------------------------------------------
10d8c9f6a5 | Neil Moore | 2014-09-14 17:17:06 -0400

Constify.

--------------------------------------------------------------------------------
e04fdf7e4f | gammafunk | 2014-09-14 16:10:12 -0500

Klown around in some Mnoleg vaults
In Mnoleg vaults, put Killer Klowns into rotation with the cacodemons
for more af_klown fun. This commit also cleans up the glyph usage in
mnoleg_st, so we're using numbers/letters roughly in order of
difficulty instead of a mixture of numbers and console glyphs, which
was confusing.

--------------------------------------------------------------------------------
a8a40303db | gammafunk | 2014-09-14 16:10:12 -0500

Tweak a mnoleg vault
This conceals the rune a bit and opens up the space containing mnoleg
so he has more room to use his abilities.

--------------------------------------------------------------------------------
a8b3e6b4fc | gammafunk | 2014-09-14 16:10:12 -0500

Turn Mnoleg into a something even more horrible
Mnoleg is generally regarded as too easy for a pan lord. His malign
gateway spell struggles to be effective, since it's very easy to lure
Mnoleg far away from the portal. This commit gives Mnoleg two
tentacles that function like ones used by tentacled starspawns. They
have the same attack strength as eldritch tentacles but use af_klown
instead of af_chaos. The tentacles replace the malign gateway spell
and his smiting spell, the former now being unnecessary and latter
being a not terribly effective use of Mnoleg's actions.

--------------------------------------------------------------------------------
2e49386711 | Neil Moore | 2014-09-14 17:09:55 -0400

Avoid reading uninitialised feature override entries.

--------------------------------------------------------------------------------
7dbc7e1b49 | Shmuale Mark | 2014-09-14 16:08:42 -0400

Only use the 'special' unrand flag for what it's claimed to be for.
Presumably most of the cases changed here were not changed correctly
in the unrand/fixedart merge, though the reason for these differences
between them isn't clear either.

--------------------------------------------------------------------------------
55d86902b4 | Shmuale Mark | 2014-09-14 16:08:36 -0400

Remove 'special' from some unrands.
Two of them (Dispater's and Asmodeus's weapons) are already wielded by
monsters, Wucad Mu is presumably a holdover from when it had variable
pluses, and Vampire's Tooth doesn't seem to have any reason to be not
usable by monsters.

--------------------------------------------------------------------------------
164a09eab8 | Shmuale Mark | 2014-09-14 16:08:31 -0400

Make the captain's cutlass disarmingly good.
It now disarms a monster's weapon with a dam / 75 chance; it shouldn't be
an effect that's happening every combat, just a cool bonus (like the
tendril disarming this is based on code- and idea-wise). The enchantment
is nerfed to +5, since it doesn't need it to be not strictly worse than
an ego item anymore.

Thanks to PleasingFungus for the description change!

--------------------------------------------------------------------------------
507061c1f4 | Steve Melenchuk | 2014-09-14 14:04:56 -0600

The 0.15 tournament is over; don't annoy people about Trunk games.
This reverts commit 0e45cf2e0fb8731d39b9e744c57bc83bea192582.

--------------------------------------------------------------------------------
a6711e214b | Shmuale Mark | 2014-09-14 14:50:06 -0400

Make beams even more unable to hit monsters in walls.

--------------------------------------------------------------------------------
5ac967ef1e | Shmuale Mark | 2014-09-14 14:48:22 -0400

Don't consider lightning bolts to go through trees in tracers (#8542).

--------------------------------------------------------------------------------
ed2c9d37a2 | Shmuale Mark | 2014-09-14 14:37:04 -0400

Improve some beam code (|amethyst).
Based on a comment in #8542.

--------------------------------------------------------------------------------
eda21aabd1 | Shmuale Mark | 2014-09-14 13:40:46 -0400

Turn symbol/magic_symbol into methods of feature_def rather than fields.
This eliminates the need for two 0s in field in feature-data.h.

--------------------------------------------------------------------------------
c30c4a84fe | Shmuale Mark | 2014-09-14 13:40:41 -0400

Pack dungeon_feature_type more tightly on save bump.
Since there's no longer any necessity to put things in a specific place
in the list.

--------------------------------------------------------------------------------
a6f61f745a | Shmuale Mark | 2014-09-14 13:40:35 -0400

Make a bunch of switches on DNGN_ enums use feat_is_ functions instead.

--------------------------------------------------------------------------------
8e294652fd | Shmuale Mark | 2014-09-14 13:40:30 -0400

Try to remove the last comparisons by order of dungeon_feature_types.
There are a few left in tags.cc since it's not actually looking at the
meaning; it really does want to know where in the enum it is.

--------------------------------------------------------------------------------
70da75f6f4 | Shmuale Mark | 2014-09-14 13:40:24 -0400

Remove more comparisons by order in dungeon_feature_type.
This also cleans up and documents some of terrain.cc.

--------------------------------------------------------------------------------
c2f00ebf01 | Shmuale Mark | 2014-09-14 13:40:18 -0400

Clean up terrain.cc slightly.

--------------------------------------------------------------------------------
095d9828d2 | Shmuale Mark | 2014-09-14 13:40:13 -0400

Remove unused feat_is_rock function.

--------------------------------------------------------------------------------
f638857756 | Shmuale Mark | 2014-09-14 13:40:06 -0400

Replace magic enum values with FFT_s in feature-data.h

--------------------------------------------------------------------------------
c9fd18a9d2 | ontoclasm | 2014-09-14 12:20:15 -0500

LRD & Shatter icons

--------------------------------------------------------------------------------
21ad89016c | ontoclasm | 2014-09-14 12:20:14 -0500

A few unrand tiles

--------------------------------------------------------------------------------
1218a0ca28 | elliptic | 2014-09-14 12:52:15 -0400

Add milestone/logfile fields for MP, max MP, and max MP ignoring equipment.

--------------------------------------------------------------------------------
332477c65c | Neil Moore | 2014-09-14 09:29:03 -0400

Fix species/job selection from .prf files (#8956)

--------------------------------------------------------------------------------
de791e08ca | elliptic | 2014-09-14 07:51:46 -0400

Update a comment.
Since this doesn't appear to be used by anything other than xomzerk currently.

--------------------------------------------------------------------------------
6404e95ffb | gammafunk | 2014-09-13 22:26:37 -0500

Make a slime entrance vault correctly place the Jiyva altar

--------------------------------------------------------------------------------
2fc8dfcef5 | elliptic | 2014-09-13 18:29:01 -0400

Add item clua: damage, accuracy, delay, ac, encumbrance.

--------------------------------------------------------------------------------
278d215588 | ontoclasm | 2014-09-13 11:28:38 -0500

Singing sword edit
To make it look less like a eudemon blade.

--------------------------------------------------------------------------------
4e7a8ba2c3 | Nicholas Feinberg | 2014-09-13 09:22:04 -0700

Don't describe the Shield of the Gong as 'large'
Several people have been confused into thinking it was a large
shield, which it's not.

--------------------------------------------------------------------------------
4a25eb2240 | ontoclasm | 2014-09-13 02:54:16 -0500

Plutonium sword tiles

--------------------------------------------------------------------------------
b1c491182b | Neil Moore | 2014-09-12 16:45:07 -0400

Use a stable sort in stash search (#7059)

--------------------------------------------------------------------------------
8b0a2b860c | Shmuale Mark | 2014-09-12 14:05:25 -0400

Clear unique annotation on slimify (#5690).

--------------------------------------------------------------------------------
150c032750 | Nicholas Feinberg | 2014-09-11 22:54:04 -0700

Tweak the description of the Staff of Dispater
To make it sounds a bit less like permanent costs. (Which always
scared me off using it, back when!)

--------------------------------------------------------------------------------
87af23eba9 | Nicholas Feinberg | 2014-09-11 21:53:58 -0700

Give a better message for cshield fizzling (rchandra)

--------------------------------------------------------------------------------
ecf76683bb | Nicholas Feinberg | 2014-09-11 21:40:31 -0700

Don't let Trog gift the Majin-Bo (Prism)

--------------------------------------------------------------------------------
27adee9422 | gammafunk | 2014-09-11 19:48:50 -0500

Fix the floor tiles in a temple vault

--------------------------------------------------------------------------------
0fb7d3bc24 | Steve Melenchuk | 2014-09-11 18:14:48 -0600

clua: spells.letter, to get a memorised spell's letter.
Nil if the spell isn't memorised.

--------------------------------------------------------------------------------
1609a86bd3 | Steve Melenchuk | 2014-09-11 17:07:02 -0600

clua: Allow e.g. you.status("finesse"), returning a boolean.

--------------------------------------------------------------------------------
68479d33c8 | Steve Melenchuk | 2014-09-11 16:22:20 -0600

clua you.status() (qw, gw).
This gives the same comma-separated list available in xv, dumps,
milestones, etc.

--------------------------------------------------------------------------------
bbba03e2ef | Steve Melenchuk | 2014-09-11 16:17:41 -0600

Finish up the clua spells interface (#7489).
Adds spells.fail_severity(), returning 0-3 corresponding to the fail
colours; spells.hunger(), in bars; spells.power(), in bars;
spells.max_power(), in bars; spells.max_range(); spells.min_range();
targetting booleans; spells.god_likes(), spells.god_hates(), and
spells.god_loathes().

--------------------------------------------------------------------------------
c94ca1e6cc | Steve Melenchuk | 2014-09-11 15:37:55 -0600

Magic-related clua functionality (qw, gw).
Includes item:spells() (lists the spells available in a spellbook);
spells.level() (lists the level of a spell); you.mem_spells() (provides
a table of currently memorisable spells keyed by their letter); and
you.spell_levels() (returns the current number of spell levels
available).

--------------------------------------------------------------------------------
1cfcc8b6d2 | Shmuale Mark | 2014-09-11 17:34:09 -0400

Make Animate Remains cancel if Animate Skeleton would (#8070).
The last time I tried to improve the interface for LOS-wide revival didn't
go so well, though, so I won't change the behavior at *** and above.

--------------------------------------------------------------------------------
6d99af48d3 | Shmuale Mark | 2014-09-11 17:34:02 -0400

Allow Xom to upgrade his own god gifts.
Not that I expect this to ever matter all that much.

--------------------------------------------------------------------------------
59048f13f8 | Neil Moore | 2014-09-11 16:40:50 -0400

Don't unwield swapped weapons until we know it works.
This avoids some unwield/wield messages when the monster turns out
to not accept the player's weapon.

--------------------------------------------------------------------------------
f9ac46f684 | Steve Melenchuk | 2014-09-11 14:33:31 -0600

clua: Monster res_fire(), etc. (qw).
Right now it covers rF, rC, rElec, rPois, rN, and rCorr.

--------------------------------------------------------------------------------
05d2e8748f | Neil Moore | 2014-09-11 15:32:29 -0400

Don't destroy weapons when xom/wizmode weapon swap fails (#4606)
We were destroying the wrong copy of the player's item, eliminating
the one held by the player and leaving the other copy unlinked.

--------------------------------------------------------------------------------
4848b6b1e6 | Jesse Luehrs | 2014-09-11 13:30:57 -0400

notify the user where the webtiles server is listening

--------------------------------------------------------------------------------
c07c470cdb | Steve Melenchuk | 2014-09-11 10:42:30 -0600

Whitespace fix.

--------------------------------------------------------------------------------
b8c2cf9905 | Steve Melenchuk | 2014-09-11 10:42:25 -0600

Expose a monster's "speed description" in clua (gw).
This is the same "fast", "very slow", etc. description that appears on
the xv screen.

--------------------------------------------------------------------------------
ddc2abe6a2 | Neil Moore | 2014-09-11 11:36:13 -0400

Add croikle to credits and mailmap.
And use the weird Mc/Mac collation rule for the former.

--------------------------------------------------------------------------------
d607eb1f0e | Peter McLarnan | 2014-09-11 08:28:40 -0700

Redraw EV after Elivilon Purification (8947)
EV can change in elyvilon_purification() when curing 'petrifying'
status. Mark it for redraw.

--------------------------------------------------------------------------------
deec42396c | Neil Moore | 2014-09-11 11:17:04 -0400

Regenerate prebuilt yaccage

--------------------------------------------------------------------------------
9ea71f3eb8 | Shmuale Mark | 2014-09-11 08:16:33 -0400

Use YOU_KILL more consistently for Qazlal protection.
|amethyst pointed out that cloud_struct::whose and cloud_struct::killer
might be inconsistent for, say, a reflected puff of flame that goes over
water. I think that ::set_killer and ::set_whose take care of that, but
making it more consistent is better code-wise anyway.

--------------------------------------------------------------------------------
4cfae820a2 | Nicholas Feinberg | 2014-09-10 21:23:52 -0700

Simplify.

--------------------------------------------------------------------------------
719852b88a | Neil Moore | 2014-09-10 23:45:08 -0400

Add a vine stalker quote (rast)

--------------------------------------------------------------------------------
a7e62dfc7a | elliptic | 2014-09-10 23:36:12 -0400

Remove a giant eyeball from a vault.
It didn't work well in this vault and giant eyeball isn't a standard Depths
monster nowadays anyway.

--------------------------------------------------------------------------------
6693b336bd | Jesse Luehrs | 2014-09-10 19:34:37 -0400

make the player feel a bit safer
hopefully this will reduce some of the issues with glass walls without
making things particularly more dangerous (*4 is very conservative)

--------------------------------------------------------------------------------
2b606b30cc | Jesse Luehrs | 2014-09-10 18:52:20 -0400

avoid "you see a gate leading out of here here"

--------------------------------------------------------------------------------
0de88c6029 | Jesse Luehrs | 2014-09-10 18:35:29 -0400

wizmode command to lose all gold

--------------------------------------------------------------------------------
2f94609286 | David Ploog | 2014-09-11 00:11:22 +0200

Add a clumsy line to unseen horror description, hinting at bat movement.
The reasoning is that a new player can figure out she died to a monster
called "unseen horror", and then look it up in-game. Improve wording!

--------------------------------------------------------------------------------
33738f00f9 | Shmuale Mark | 2014-09-10 10:32:56 -0400

Make casting while starving more consistent with while silenced (#2272).
I took rwbarton's suggestion of giving a more() as well, so that more
keystrokes in, say, a macro get eaten by that instead of being
frameshifted.

--------------------------------------------------------------------------------
e7f7c4266f | Shmuale Mark | 2014-09-10 09:04:18 -0400

Clean up some cloud code.
Including removing a function unused since 3e2eb95d2b, 4 months ago.

--------------------------------------------------------------------------------
98dd163920 | Neil Moore | 2014-09-10 08:13:24 -0400

Be more careful with that dummy zombie.
Use a goblin rather than orc zombie because the latter might someday
have theological implications for Beogh.

--------------------------------------------------------------------------------
0c033bd5f6 | Neil Moore | 2014-09-10 08:05:50 -0400

Don't crash when a Dithite might summon zombies.
See for example:
 http://crawl.lantea.net/crawl/morgue/wvc/crash-wvc-20140910-111834.txt

This solution is kind of a hack, but as long as _downscale_zombie_attack
always strips off AF_FIRE (and orcs don't get AF_FIRE) it should work.

--------------------------------------------------------------------------------
69021a9495 | Steve Melenchuk | 2014-09-09 21:15:35 -0600

Allow multiple species/backgrounds/weapons/combos in init.txt.
Specifying several will cause one to be picked at random from the list.

Introduces the "combo" option, which allows a complete set of species,
background, and weapon to be specified; it overrides (and is overridden
by) the other options.

Fixes a bug where Dr couldn't be selected by abbreviation.

--------------------------------------------------------------------------------
ba31c2010c | ontoclasm | 2014-09-09 21:49:48 -0500

Cloud spell icons

--------------------------------------------------------------------------------
1480111ae9 | ontoclasm | 2014-09-09 21:49:47 -0500

Duvessa/Dowan splash screen (Baconkid via Bloax)

--------------------------------------------------------------------------------
9ffc33227b | ontoclasm | 2014-09-09 21:49:47 -0500

Ringmail doll tiles (Bloax)

--------------------------------------------------------------------------------
fa4f6563db | ontoclasm | 2014-09-09 21:49:46 -0500

Various mostly-shortblade tile edits

--------------------------------------------------------------------------------
825160b869 | Neil Moore | 2014-09-09 22:31:42 -0400

Don't let Qazlites rest/travel in dangerous clouds (wheals)

--------------------------------------------------------------------------------
959981ca14 | Neil Moore | 2014-09-09 22:06:47 -0400

More worship/penance check refactoring.
Besides using !in_good_standing in several places, also make
_god_will_brand_weapon non-static, rename it to can_do_capstone_ability,
and use it in a few places.

--------------------------------------------------------------------------------
4ba732e3b8 | Shmuale Mark | 2014-09-09 19:01:37 -0400

Make Sonja's weapons signatures (xentronium).

--------------------------------------------------------------------------------
57d09544a3 | Shmuale Mark | 2014-09-09 19:01:31 -0400

Make a portal to somewhere a portal to nowhere.
It's a bit silly to place a malign gateway without any of the real
effects, and I actually assumed it was a bug when I first saw it...

--------------------------------------------------------------------------------
e97bf62452 | Neil Moore | 2014-09-09 12:02:20 -0400

Also anger illuminating monsters under Dith.

--------------------------------------------------------------------------------
3cf1ba7b8b | Neil Moore | 2014-09-09 12:02:20 -0400

Use the correct fiery check for Dith monster anger.

--------------------------------------------------------------------------------
e51d0761f1 | Florian Diebold | 2014-09-09 14:09:39 +0200

Webtiles: Don't unnecessarily resend some messages (rwbarton).

--------------------------------------------------------------------------------
d9f3aebc66 | Neil Moore | 2014-09-09 06:56:39 -0400

Don't accept fiery summons under Dith (xFleury)
Merely using fire isn't enough: the creature has to be made of fire,
or at least inherently on fire, to reject the player.

--------------------------------------------------------------------------------
abea0e8f4a | Jesse Luehrs | 2014-09-08 14:25:23 -0400

simplify

--------------------------------------------------------------------------------
8626ab321d | Steve Melenchuk | 2014-09-08 11:56:57 -0600

<Grunt> argh <Grunt> no gratuitous floating point please

--------------------------------------------------------------------------------
b66f077475 | Jesse Luehrs | 2014-09-07 18:57:41 -0400

flash the screen when exploring with monsters are in view
this should make it easier to see where monsters blocking your
autoexplore/travel are.

not sure what this will do for tiles, but... can fix it later if it's a
problem.

--------------------------------------------------------------------------------
25d4a4e9bf | Nicholas Feinberg | 2014-09-07 14:39:35 -0700

Make !porr give exactly 6000 nutrition
It was raised to 6040 to compensate for the loss of the 40
nutrition that all potions once gave, but, well, that's not
actually a thing that needs to be compensated for.

--------------------------------------------------------------------------------
c01a1ebe36 | reaverb | 2014-09-07 10:28:54 -0400

Fix Dith not actually increasing player stealth
This was broken by 560c0028.

Yred worshippers in umbras and players wearing the ring of shadows were
also less stealthy due to this bug.

--------------------------------------------------------------------------------
13a2c82de8 | Nicholas Feinberg | 2014-09-06 23:00:12 -0700

Unbrace

--------------------------------------------------------------------------------
5ff85766fc | gammafunk | 2014-09-06 20:38:52 -0500

Fix instances where launcher brand damage was applied twice (#8931)

--------------------------------------------------------------------------------
9b056b3920 | Nicholas Feinberg | 2014-09-06 17:17:10 -0700

Simplify

--------------------------------------------------------------------------------
307ffb3a74 | Nicholas Feinberg | 2014-09-06 17:12:04 -0700

Don't check rCold for frost ammo (8931)
(cherry picked from commit d34462d64af9500a87967b8138c3f94e8bc53e10)

--------------------------------------------------------------------------------
6df24f793d | Nicholas Feinberg | 2014-09-06 17:11:37 -0700

Fix discrepancy in Dith penance for flame ammo/launchers (8931)
(cherry picked from commit b13fc677058c2b02f3313c6bb6329c5d068fc485)

--------------------------------------------------------------------------------
0ab7b0108b | Nicholas Feinberg | 2014-09-06 17:01:20 -0700

Fix jump-attack aborts (8933)

--------------------------------------------------------------------------------
6f52971919 | Jesse Luehrs | 2014-09-06 19:05:13 -0400

only display base stats if they are different

--------------------------------------------------------------------------------
39fd2ee547 | gammafunk | 2014-09-06 02:22:40 -0500

Add octopode crushers to Zig Shoals enemy sets

--------------------------------------------------------------------------------
cc2d8528ce | Nicholas Feinberg | 2014-09-05 21:46:10 -0700

Fix mushroom suicide (elliptic, |amethyst)

--------------------------------------------------------------------------------
f2d9a00e67 | Nicholas Feinberg | 2014-09-05 20:50:00 -0700

Clarify !res description (8927)
"The elements" was also kind of vague, given that a "shield of
resistance" only gives rf+ rc+. (Would you expect "the elements"
to include electricity? I'm not sure.)

--------------------------------------------------------------------------------
fd822c750c | Neil Moore | 2014-09-04 22:28:30 -0400

Correct a pronoun (#8923)

--------------------------------------------------------------------------------
bff0e38598 | Shmuale Mark | 2014-09-04 16:42:46 -0400

Tone down another crazy fruit vault (rchandra).

--------------------------------------------------------------------------------
6f2d4d41ea | Shmuale Mark | 2014-09-02 18:16:12 -0400

Comment.
This was mystifying me for a while before I found the rationale in the
 ##crawl-dev logs.

--------------------------------------------------------------------------------
1dd05b10fb | Shmuale Mark | 2014-09-02 18:01:01 -0400

Correctly don't apply a berserk penalty when ctrl-attacking (#8882).
As usual in movement code, there's some nasty duplication that would be
ideally fixed, but this is simpler for now.

--------------------------------------------------------------------------------
99bef82af4 | Jesse Luehrs | 2014-09-02 12:04:21 -0400

apply equip/unequip effects from melding simultaneously (8753)

--------------------------------------------------------------------------------
9b4185face | ontoclasm | 2014-09-01 19:18:10 -0500

Frances edit

--------------------------------------------------------------------------------
7f49916fe3 | Nicholas Feinberg | 2014-09-01 15:53:11 -0700

Remove worldbinder out-of-LOS message spam (ontoclasm)

--------------------------------------------------------------------------------
9a421caf5c | Jesse Luehrs | 2014-09-01 00:53:12 -0400

add message for base stats when prompting for stat gain (1472)

--------------------------------------------------------------------------------
e4c7fa7551 | ontoclasm | 2014-08-31 19:00:01 -0500

Spell icon stragglers

--------------------------------------------------------------------------------
ba7a3ea6cd | ontoclasm | 2014-08-31 18:43:00 -0500

Holy & demon weapons (roctavian & Bloax)

--------------------------------------------------------------------------------
4c4b6fb951 | ontoclasm | 2014-08-31 18:42:59 -0500

Pla tiles (roctavian)

--------------------------------------------------------------------------------
acab0e4478 | ontoclasm | 2014-08-31 18:42:58 -0500

Axe & Staff tiles (roctavian)

--------------------------------------------------------------------------------
edfd48a65a | ontoclasm | 2014-08-31 18:42:55 -0500

M&F tiles (roctavian)

--------------------------------------------------------------------------------
1e90f0582c | ontoclasm | 2014-08-31 18:42:53 -0500

SBl tiles (roctavian)

--------------------------------------------------------------------------------
90f71cdd77 | ontoclasm | 2014-08-31 18:42:51 -0500

LBl tiles (roctavian)

--------------------------------------------------------------------------------
d7fe310a58 | Shmuale Mark | 2014-08-31 13:41:08 -0400

Make a tree temple slightly more open.
This one was sort of hit hard by opaque trees, making exploring it a bit
cumbersome.

--------------------------------------------------------------------------------
8d72595c98 | Neil Moore | 2014-08-31 02:01:32 -0400

Don't message for off-screen serpent shocks (ontoclasm)
Only using see_cell so there is still a message about zapping invisible
creatures.

--------------------------------------------------------------------------------
fc68e250fe | Nicholas Feinberg | 2014-08-30 16:41:13 -0700

Wall -> <feature desc> (elliptic)

--------------------------------------------------------------------------------
e8fa1a4c4a | Nicholas Feinberg | 2014-08-30 16:36:28 -0700

Improve confusing confusion movement messages (1173)
Add a message for when confusion causes you to stand in place
(since that's rather confusing), and improve the messages for
bumping into walls.

--------------------------------------------------------------------------------
112360f2d2 | Neil Moore | 2014-08-30 12:37:30 -0400

Reduce /teleport acquirement weight in Sprint.

--------------------------------------------------------------------------------
4b6012558d | Neil Moore | 2014-08-30 12:18:32 -0400

Brace.
This one confused the unbrace script, so fixing it manually before someone
breaks something trying to do cleanup.

--------------------------------------------------------------------------------
424653f77d | Neil Moore | 2014-08-30 11:44:13 -0400

Don't crash when enchanting a pacified monster on stairs (#8910)

--------------------------------------------------------------------------------
06b444f902 | Jesse Luehrs | 2014-08-30 01:05:52 -0400

set the kill_type for drowned souls properly (Grunt)

--------------------------------------------------------------------------------
9782ec1558 | Jesse Luehrs | 2014-08-29 15:31:47 -0400

comment

--------------------------------------------------------------------------------
0e45cf2e0f | Jesse Luehrs | 2014-08-29 15:21:51 -0400

0.15 tournament reminder
see cf47855, etc.

--------------------------------------------------------------------------------
5df91cfe44 | Eino Keskitalo | 2014-08-29 18:15:09 +0300

Use $cmd lookup for a command in a hint

--------------------------------------------------------------------------------
92ebc40b0f | Eino Keskitalo | 2014-08-29 18:11:48 +0300

Hints: remove a warning about monsters picking up items.

--------------------------------------------------------------------------------
f7a7fb11d3 | Eino Keskitalo | 2014-08-29 18:11:48 +0300

Correct some hints: stairs can be taken with a click, no need to shift.

--------------------------------------------------------------------------------
c6f1267193 | Eino Keskitalo | 2014-08-29 18:11:48 +0300

Remove a reference to jewellery identification in a hint.

--------------------------------------------------------------------------------
f9fd0fee17 | elliptic | 2014-08-29 10:08:51 -0400

Revert "Increase the abyss rune chance on levels A:4 and A:5"
As pointed out in #8906, this commit actually decreased the rune chance
on all levels.

This reverts commit b33f7a63b51833bf6587609a29efdcc2c40cfa2e.

--------------------------------------------------------------------------------
af1c66565f | Nicholas Feinberg | 2014-08-28 18:35:57 -0700

Don't make huge MP values wrap to negative on load (5781)
Also add an assert, so we don't end up loading negative mp
(which shouldn't happen anyway?) as large positive values.

--------------------------------------------------------------------------------
9d5d16d290 | Nicholas Feinberg | 2014-08-28 17:47:37 -0700

Don't add player throwing skill to monster damage

--------------------------------------------------------------------------------
bdb9f68cb4 | Jesse Luehrs | 2014-08-28 00:53:25 -0400

simplify

--------------------------------------------------------------------------------
1f0853dc94 | Jesse Luehrs | 2014-08-28 00:48:46 -0400

move melee elemental brand effects later (1529)
this makes sure that messages referring to monster state changes ("seems
to slow down") happen after the branded weapon attack message, and also
makes sure that they aren't shown at all if the monster dies

--------------------------------------------------------------------------------
01fca7cb05 | Steve Melenchuk | 2014-08-27 21:54:21 -0600

Be more hamfisted with strings.h -> stringutil.h.
i.e. catch the files I didn't before (which are only in trunk and not
0.15).

--------------------------------------------------------------------------------
dbbc032fae | Steve Melenchuk | 2014-08-27 21:26:26 -0600

Ham-fistedly rename strings.{cc,h} to stringutil.{cc,h}.
To get the POSIX name conflict to go away.

(cherry picked from commit 69783ea0505b8a54b95c175d88b11e80d9c08c6f)

Conflicts:
	crawl-ref/source/libutil.h

--------------------------------------------------------------------------------
0afcff908e | Steve Melenchuk | 2014-08-27 21:26:13 -0600

A couple of Android build fixes.
This still leaves the major problem of strings.h being a POSIX header
name which the Android build is trying to use.

(cherry picked from commit 095ec6f4e633f73e65260d73a20d698725434feb)

--------------------------------------------------------------------------------
1b234e5cec | Steve Melenchuk | 2014-08-27 20:42:37 -0600

Touch changelog with the expected release date.
Since that's today (UTC), well...

(cherry picked from commit 2a58da67992b54754be03239a9702743a3dd32a7)

--------------------------------------------------------------------------------
a270a6281f | Neil Moore | 2014-08-27 22:18:53 -0400

Don't crash on branded melee against a doomed spectral weapon (#8445)
Similar to the previous situation.  This occurred when an ally killed
Asterion, then another ally with a branded weapon attacked his SW
before the SW's turn (and didn't kill it with the unbranded damage).

--------------------------------------------------------------------------------
f11fc350e6 | Neil Moore | 2014-08-27 21:26:52 -0400

Fix a crash when one spell kills Asterion and hurts his SW.
An example crash:
http://dobrazupa.org/morgue/Konquest/crash-Konquest-20140827-140545.txt

--------------------------------------------------------------------------------
39353b435c | Steve Melenchuk | 2014-08-27 18:24:15 -0600

0.14.2 changelog (finally!).
(cherry picked from commit e6be5b4e3d13f97b02c1dd92a844ebf0d7a05c2c)

--------------------------------------------------------------------------------
75a2b46b06 | Steve Melenchuk | 2014-08-27 18:14:44 -0600

Correct death message for Malign Offering (#8904).

--------------------------------------------------------------------------------
6bac3391df | Shmuale Mark | 2014-08-27 17:31:36 -0400

Give a message whenever quaffing a potion of cancellation (minmay).

--------------------------------------------------------------------------------
bbd2d32316 | Shmuale Mark | 2014-08-27 17:31:25 -0400

Don't heal the player on being hit by 0-damage ghostly flame.

--------------------------------------------------------------------------------
951a7165e0 | Shmuale Mark | 2014-08-27 17:31:18 -0400

Write ghostly flame creator properly to the blame of spectrals.
So that we can get ikiller=ghost_crab or ikiller=revenant.

--------------------------------------------------------------------------------
ba02c95d6c | reaverb | 2014-08-26 20:54:40 -0400

unbrace

--------------------------------------------------------------------------------
18dcf3e2df | reaverb | 2014-08-26 20:53:22 -0400

(EXPERIMENTAL ONLY)Ru: Reverse DACT tags for Experimental save compat
Presumably. I can't see a specific case where DACT_ enums are marshaled
but it was much easier to just make the change then attempt to prove it
wasn't necessary.

--------------------------------------------------------------------------------
0ffcab788e | reaverb | 2014-08-26 20:02:07 -0400

Merge branch 'master' into iashol
Conflicts:
	crawl-ref/source/dactions.cc
	crawl-ref/source/enum.h

--------------------------------------------------------------------------------
1ba5a8cb38 | Neil Moore | 2014-08-26 18:49:13 -0400

Avoid an MSVC debug assertion and C++03 u.b. (johnny0)
We were using operator[] to access one-past-the-end of a std::string,
expecting a null terminator.  However, in C++03, this is only allowed
with the const version of operator[], producing undefined behaviour
with the non-const version.  In particular, MSVC with _SECURE_SCL
(default for debug builds) would throw a runtime exception.

Adjust the bounds of the loop so we don't iterate up to the last
character.  This doesn't change the behaviour in non-crashing cases,
because the one-past-the-end '\0' is not a VAR_CHAR and would break
the loop anyway.

We could use a const_cast<const string &> or a constify template
instead, but this version is less code.

--------------------------------------------------------------------------------
a87e286758 | Neil Moore | 2014-08-26 11:26:38 -0400

Fix a return type.
Doh.  Copy-pasted from player_under_penance.

--------------------------------------------------------------------------------
63e51e1c7a | Neil Moore | 2014-08-26 11:18:20 -0400

Fix a bad tag in debug mode x-over-an-upstair.

--------------------------------------------------------------------------------
63401d3541 | Nicholas Feinberg | 2014-08-26 08:10:09 -0700

Remove a redundant check

--------------------------------------------------------------------------------
7978b73e66 | Nicholas Feinberg | 2014-08-26 08:05:57 -0700

Refactor catchup_monster_moves

--------------------------------------------------------------------------------
13fc32a4ec | Neil Moore | 2014-08-26 10:51:43 -0400

Use an unwind_var for restoration.
In case someone later adds an early return.

--------------------------------------------------------------------------------
496e22f8d0 | Neil Moore | 2014-08-26 10:51:38 -0400

Replace a loop with a distribution (PleasingFungus)

--------------------------------------------------------------------------------
63cfc76492 | Nicholas Feinberg | 2014-08-25 23:10:32 -0700

Don't make monsters 'flee' seemingly at random (7645)
Specifically, ranged monsters would flee a few spaces after you
went upstairs, to minimize stairdancing vs centaurs and such.
(Good!) If you waited a few turns before going back down, they'd
be left in the 'fleeing' state, which looked extremely strange to
players. (Bad!) This fixes the latter.

--------------------------------------------------------------------------------
b43f7adccd | Neil Moore | 2014-08-26 00:18:57 -0400

Improve a comment.

--------------------------------------------------------------------------------
4001292f38 | Neil Moore | 2014-08-26 00:01:48 -0400

Factor out a Lua argument check for god names.
And document the new macro.

--------------------------------------------------------------------------------
f9b15c953a | Neil Moore | 2014-08-25 21:13:10 -0400

Work around an MSVC template bug.
It thinks the second version of compare_item is an attempt to specialise
the first version, rather than an overload; and then complains about the
bad specialisation.  Rename the function-pointer version of the template.

--------------------------------------------------------------------------------
8501abf23f | Neil Moore | 2014-08-25 21:06:10 -0400

Use "||" instead of "or".
MSVC requires either /Za (strict ANSI mode) or #include <iso646> for
these aliases.  It's weird anyway to mix them with || on the same line:
unlike in Perl, there is no difference in precedence.

--------------------------------------------------------------------------------
8122c76304 | Neil Moore | 2014-08-25 21:04:11 -0400

Fix F_OK in MSVC compilation.

--------------------------------------------------------------------------------
79e486ca10 | Neil Moore | 2014-08-25 20:58:03 -0400

Fix new headers in the MSVC project (doy)
Some were tagged as ClCompile rather than ClInclude, and one had the wrong
filename entirely.

--------------------------------------------------------------------------------
d5b6136a9e | Neil Moore | 2014-08-25 17:32:09 -0400

Avoid a crash on ctrl-x after a trap escape.
When a monster escaped a net, the stash tracker only updated the net
(to non-trapping) if the net was on top.  Otherwise, the stash was
incorrect, causing a crash on ctrl-x and probably other situations.

Also fix up a few incorrect comments.

An example crash:
  http://dobrazupa.org/morgue/MrPlanck/crash-MrPlanck-20140825-203617.txt

--------------------------------------------------------------------------------
b08b85ff03 | Jesse Luehrs | 2014-08-25 06:53:04 -0400

remove the high score cap (8884)
It has never been hit in a normal game (although the current online high
score is 65369553, which is close), but it's hit occasionally in sprint,
but inconsistently - it's only applied to games that don't provide their
own scoring system (so we have scores like 2147400000 in meatsprint, for
instance). I don't really see a purpose for it to begin with, and it's
been around since before stone soup (when the scoring algorithm was
entirely different), so I don't think it's particularly worth keeping.

--------------------------------------------------------------------------------
927d350566 | Nicholas Feinberg | 2014-08-24 23:14:06 -0700

Fix a five-year-old typo (read)

--------------------------------------------------------------------------------
8f376c1b5a | Nicholas Feinberg | 2014-08-24 20:06:41 -0700

Fix Song of Slaying description (Internet Kraken)
It claimed to only enhance melee; it also helps with ranged
combat!

Also tweak the following sentence for style + wordcount reasons.

--------------------------------------------------------------------------------
08341021b8 | elliptic | 2014-08-24 22:21:00 -0400

Add you.corrosion() to clua.

--------------------------------------------------------------------------------
e697c9fcba | Neil Moore | 2014-08-24 18:41:00 -0400

Don't displace Fedhas-walkable plants when taking stairs (#5117)
This could also be changed for submerged monsters (trapdoor spiders and
air elementals), but that is less noticeable.

--------------------------------------------------------------------------------
9fbdb5d702 | Neil Moore | 2014-08-24 18:05:28 -0400

Don't let Fedhas worshippers crash at will.
To reproduce: use Growth, enter a number one greater than the number
of available adjacent spaces, then press enter.

Also, make an unreachable return use the correct type.

--------------------------------------------------------------------------------
6fc725f290 | elliptic | 2014-08-24 11:22:12 -0400

Don't cheat Ash-skill-boosted chars out of their crosstraining bonus (#8901).
This function along with player::skill() badly need refactoring, but the
rounding situation is delicate enough (see 8b15fbdb4) that I'm not going
to refactor it right before 0.15.

--------------------------------------------------------------------------------
3187ff9494 | Eduardo Gonzalez | 2014-08-23 21:09:39 -0400

Don't place runed doors in zigsprint
Directly calling the lua 'subst' function doesn't accept multiple
comma-separated operations at once. The .des parser splits the comma syntax into
separate lua function calls when using SUBST normally.
Also, subst wasn't the desired operation for adding water beneath the items and
monsters anyways.

--------------------------------------------------------------------------------
375e045613 | Nicholas Feinberg | 2014-08-23 15:56:31 -0700

Make dispelling cancel Agility on monsters (sharkman1231)

--------------------------------------------------------------------------------
9aa467b95e | elliptic | 2014-08-23 14:54:42 -0400

Fix launcher/ammo brand interactions involving penetration (potatolizard).
Previously crossbow of penetration + bolts of flame gave both brands, but
crossbow of flaming + bolts of penetration only gave penetration. Now
both combinations give both brands. This is different from the 0.14 behavior
(both combinations just gave the ammo brand), but it makes a little more
sense (comments in the code just say no stacking _elemental_ brands, and we
already allow both brands to apply with launchers of speed or velocity).

--------------------------------------------------------------------------------
402d5d2b45 | Nicholas Feinberg | 2014-08-23 11:06:43 -0700

Fix a Screaming Sword line (nrook)
(cherry picked from commit 5540f67660800a8985ae33c6b3ace2bc8b6a16d9)

--------------------------------------------------------------------------------
3b94ba09ff | Pekka Lampila | 2014-08-23 14:12:20 +0300

Remove out of date info from init.txt and options guide.
The files referenced a removed option (autopickup_no_burden) and
carrying corpses/skeletons.

--------------------------------------------------------------------------------
b0398faa44 | Jesse Luehrs | 2014-08-23 05:16:01 -0400

avoid "Created a arrow trap"

--------------------------------------------------------------------------------
fb1d3f12c1 | Jesse Luehrs | 2014-08-23 05:08:54 -0400

avoid "killed by triggering an arrow trap trap"

--------------------------------------------------------------------------------
9bdfca26eb | ontoclasm | 2014-08-22 23:26:58 -0500

Hex-esque spell icons

--------------------------------------------------------------------------------
996e5b4fd4 | Eino Keskitalo | 2014-08-22 23:07:30 +0300

Tutorial 5: Move a tutorial message spot away from a door.

--------------------------------------------------------------------------------
03c4980556 | Eino Keskitalo | 2014-08-22 22:51:57 +0300

Tutorial 3: Adjust for jewellery id-on-wear.
Instead of using a scroll of identify to recognize the amulet's uselessness, 
the amulet (of inaccuracy) is now cursed, and is uncursed with a scroll of 
remove curse.

This was the path of least resistance, which keeps amulet wearing and item 
dropping. There's now no identification in the tutorial. Perhaps there could be 
some potion identification.

--------------------------------------------------------------------------------
49da8812df | Eino Keskitalo | 2014-08-22 21:27:21 +0300

Remove the suppression debugging unrandarts.
Since they're not generated & the last artefacts in the list, they shouldn't 
break save compat. Tested by generating all in wizmode, saving, removing the 
rings from code & loading.

--------------------------------------------------------------------------------
5e9b7bfec6 | Eino Keskitalo | 2014-08-22 20:59:33 +0300

Tutorial 3: Replace the curing potions with cancellation.
Since the needle trap is gone (replaced with alarm, which places sentinel's 
mark). While this is technically the same, can't beat poison & curing for 
familiarity.

--------------------------------------------------------------------------------
5922f4da07 | Neil Moore | 2014-08-22 02:16:18 -0400

Don't crash when generating milestones above XL 27.
you.max_level can go above 27 (apparently for tracking felid extra lives
past level 27)

--------------------------------------------------------------------------------
1308768897 | Nicholas Feinberg | 2014-08-21 19:53:02 -0700

Don't let mangrove roots pierce glass

--------------------------------------------------------------------------------
b8d71ab2a6 | Nicholas Feinberg | 2014-08-21 17:54:34 -0700

Clarify quiver-cycling controls (cheetah7071)

--------------------------------------------------------------------------------
e4ca762f0a | ontoclasm | 2014-08-21 16:02:16 -0500

Acute vine tiles

--------------------------------------------------------------------------------
37dfe632e0 | Steve Melenchuk | 2014-08-21 16:34:14 -0400

Track scroll/potion use in milestones/logfiles.
For a potential tournament conduct.

--------------------------------------------------------------------------------
724f6adeea | elliptic | 2014-08-21 14:25:09 -0400

Add metaentity to credits.

--------------------------------------------------------------------------------
0e7ede40a3 | elliptic | 2014-08-21 14:23:32 -0400

Use coord_def::origin() (|amethyst).

--------------------------------------------------------------------------------
2d9bdbc1e4 | elliptic | 2014-08-21 14:13:16 -0400

Fix mapped altars being invisible in console.

--------------------------------------------------------------------------------
14faa8f4ed | elliptic | 2014-08-21 13:42:22 -0400

Make travel choose a path avoiding temporary obstacles if possible.
In other words, if there is a path to the destination that avoids remembered
harmful clouds and runed doors, then choose that path. Otherwise path through
those temporary obstacles (stopping at runed doors) as before.

This fixes #7643.

--------------------------------------------------------------------------------
1a93eacad0 | Florian Diebold | 2014-08-21 18:53:15 +0200

Implement snaplasher vine tiles at acute angles (#8666).
They still show up as question marks because the tiles do not exist
yet, though. I also simplified the code a bit and added a comment.

--------------------------------------------------------------------------------
cc94a5d788 | ontoclasm | 2014-08-21 11:04:39 -0500

Summoning icons

--------------------------------------------------------------------------------
990132cf26 | Neil Moore | 2014-08-20 21:16:53 -0400

Make you.zigs_completed available to dlua.

--------------------------------------------------------------------------------
1944588a81 | Nicholas Feinberg | 2014-08-20 17:56:23 -0700

Remove some dead code

--------------------------------------------------------------------------------
a063fed720 | Neil Moore | 2014-08-20 19:38:53 -0400

A word.

--------------------------------------------------------------------------------
a6b68cef4c | Neil Moore | 2014-08-20 19:31:11 -0400

Unbrace

--------------------------------------------------------------------------------
d97fa94ca7 | Neil Moore | 2014-08-20 19:31:11 -0400

Move player_under_penance to religion.h

--------------------------------------------------------------------------------
d6375ca080 | Neil Moore | 2014-08-20 19:31:07 -0400

Refactor common penance/piety checks (wheals)
Checks of the form you_worship(somebody) && !player_under_penance(),
including an optional && you.piety >= piety_breakpoint(x).

Also constify one of the places where these checks were used
(check_monster_detect).

--------------------------------------------------------------------------------
87e2dbb697 | Shmuale Mark | 2014-08-20 17:58:10 -0400

Improve bolt::harmless_to_player (lrvs, |amethyst).

--------------------------------------------------------------------------------
3d5c23885d | Shmuale Mark | 2014-08-20 14:18:07 -0400

Flags can't be closed (PleasingFungus).
The new message is based on the description for the entrance in
features.txt. It's a bit awkward, but hopefully makes more sense.

--------------------------------------------------------------------------------
42ccaa2360 | Shmuale Mark | 2014-08-20 14:08:10 -0400

Limit a few more fruit vaults.
The Fedhas altars should have an average of ~9 fruit, which is quite
generous but less than previously. Bears get to eat more meat.

--------------------------------------------------------------------------------
a47c112e0d | Shmuale Mark | 2014-08-20 14:00:08 -0400

Update 0.14_monster_glyphs for removed monsters/lightred draconians.

--------------------------------------------------------------------------------
9e5b052707 | Shmuale Mark | 2014-08-20 13:23:13 -0400

Correct the placement of hunger effect in _equip_weapon_effect.
This removes the necessity of the duplication twice in art-func.h.
Also, make the code a bit more clear.

--------------------------------------------------------------------------------
f9de332b3e | Nicholas Feinberg | 2014-08-20 07:39:25 -0700

Make Majin-Bo actually give hunger (Darox)

--------------------------------------------------------------------------------
097f2851e5 | elliptic | 2014-08-20 09:58:03 -0400

Unbreak trapwalk_safe_hp (qw).

--------------------------------------------------------------------------------
0df2dade16 | Nicholas Feinberg | 2014-08-19 22:01:59 -0700

Don't spam Ash-worshippers holding the Scythe of Curses (8883)
Just suppress the curses for Ashites.

--------------------------------------------------------------------------------
8bcda2f474 | Nicholas Feinberg | 2014-08-19 21:46:37 -0700

Checkwhite

--------------------------------------------------------------------------------
d16465f37f | Neil Moore | 2014-08-19 08:47:50 -0400

Enable acquirement rod sac-love check.
Now, not on the next major version bump.

--------------------------------------------------------------------------------
37887f78bc | elliptic | 2014-08-18 16:27:27 -0400

Replace an armour swap delay hack with an armour swap delay hack (qw).
The previous hack included 0.0-delay turns, which could lead to strange
behavior by calling various things in player_reacts() with no delay.
For instance, qw figured out how to abuse this to increment the turn
counter arbitrarily in 0 aut.

This hack also gets the turncount correct for armour swap actions:
now it takes 5 turns and 5.0 delay to take off a piece of armour
instead of 6 turns and 5.0 delay.

--------------------------------------------------------------------------------
e17df40939 | Florian Diebold | 2014-08-18 21:48:39 +0200

Webtiles: Fix Tornado 4 compatibility.

--------------------------------------------------------------------------------
1f9a834a96 | elliptic | 2014-08-18 12:54:10 -0400

Fix a crash with monsters drinking stacks of blood potions (qw).
The oldest blood timer needs to be removed before the quantity is changed,
since the timers might need be initialized before the oldest can be removed
and the initialization looks at the quantity.

I feel that ideally blood would always have initialized timers to avoid
issues like this, but the current blood code in rot.cc is clearly trying not
to assume this.

--------------------------------------------------------------------------------
6a27b25230 | Jesse Luehrs | 2014-08-17 21:11:51 -0400

fix up some documentation

--------------------------------------------------------------------------------
efb618c372 | Jesse Luehrs | 2014-08-17 19:57:49 -0400

handle Gl^6 properly

--------------------------------------------------------------------------------
bbd42d1459 | Jesse Luehrs | 2014-08-17 19:57:49 -0400

handle traveling to the dungeon entrance properly

--------------------------------------------------------------------------------
ae1b88481a | Jesse Luehrs | 2014-08-17 19:57:49 -0400

restore 0 to mean the branch entrance

--------------------------------------------------------------------------------
e7fe03c242 | Jesse Luehrs | 2014-08-17 19:57:48 -0400

make ^ toggle whether to travel to the entrance

--------------------------------------------------------------------------------
659567de23 | Jesse Luehrs | 2014-08-17 19:57:48 -0400

make ^ change travel target to the entrance to the selected branch

--------------------------------------------------------------------------------
066dc68a78 | Jesse Luehrs | 2014-08-17 19:57:48 -0400

remove ability to travel to branch entrances (temporarily)

--------------------------------------------------------------------------------
98cc016192 | Jesse Luehrs | 2014-08-17 19:57:48 -0400

&u and &d should not update the travel cache
they are implemented by just pretending that the current square is a
staircase and traversing it, but it's not, so we need to suppress adding
travel cache info about the fake staircase

--------------------------------------------------------------------------------
3ed950e355 | Neil Moore | 2014-08-17 15:27:58 -0400

Mark a private field unused in tile builds (geekosaur).

--------------------------------------------------------------------------------
2b0da2bf85 | Jesse Luehrs | 2014-08-17 14:08:45 -0400

need to fetch submodules for BUILD_ALL builds

--------------------------------------------------------------------------------
e4af178940 | Jesse Luehrs | 2014-08-17 14:01:39 -0400

timeout tests on travis in 9 minutes, so we get a crash report
travis has a hard limit of 10 minutes with no output, so kill the tests
ourselves before it gets to that point, so that we can also get
morgues/crashdumps. could also solve this by having the loop output
something, but we really don't want to be running tests for that long
anyway.

--------------------------------------------------------------------------------
5eff6f1a0b | Jesse Luehrs | 2014-08-17 13:46:43 -0400

display morgues and crash files from tests after testing

--------------------------------------------------------------------------------
6667487d0d | Jesse Luehrs | 2014-08-17 13:18:18 -0400

add some more travis configurations for dep testing

--------------------------------------------------------------------------------
94dc1b8a27 | Jesse Luehrs | 2014-08-17 12:44:27 -0400

delay setting fixed rng seed until after maps are generated
map generation is not always necessary, but does use the rng, so this
should make seeding more consistent

--------------------------------------------------------------------------------
405f52dbfe | Jesse Luehrs | 2014-08-17 12:21:17 -0400

disable throttling by default on non-dgl builds
also, rename -nothrottle to -no-throttle

--------------------------------------------------------------------------------
c681113fb1 | Jesse Luehrs | 2014-08-17 12:00:51 -0400

sigh

--------------------------------------------------------------------------------
67fddc5171 | Jesse Luehrs | 2014-08-17 11:58:55 -0400

oops, this shouldn't have been changed

--------------------------------------------------------------------------------
a09959a54f | Jesse Luehrs | 2014-08-17 11:58:55 -0400

run tests that don't require debug mode in normal builds

--------------------------------------------------------------------------------
c19161eb6b | Jesse Luehrs | 2014-08-17 11:58:55 -0400

disable lua throttling in stress tests

--------------------------------------------------------------------------------
baaa7c0a11 | Jesse Luehrs | 2014-08-17 11:58:55 -0400

allow disabling clua throttling

--------------------------------------------------------------------------------
43fbf1d562 | Jesse Luehrs | 2014-08-17 11:58:55 -0400

don't create dumpfiles in qw stress test

--------------------------------------------------------------------------------
43d5131043 | Jesse Luehrs | 2014-08-17 11:58:55 -0400

make test-qw separate from test-all

--------------------------------------------------------------------------------
c540322adb | Jesse Luehrs | 2014-08-17 11:58:55 -0400

actually, we can run wizmode tests on dgl builds

--------------------------------------------------------------------------------
8f0e0c1492 | Neil Moore | 2014-08-17 11:49:03 -0400

Revert "Make !strong poison useless in the same situations as !poison."
It's scheduled for removal anyway, and uselessness doesn't have a huge
effect on old games anyway (you can still toggle autopickup with \).

This reverts commit 395a70ec9b858cdfee0ee18f6f273fc1c51a7afa.

--------------------------------------------------------------------------------
b7d624f5d8 | Neil Moore | 2014-08-17 11:46:17 -0400

Mark decay as useless for the rot-resistant (Kvaak)

--------------------------------------------------------------------------------
395a70ec9b | Neil Moore | 2014-08-17 11:37:00 -0400

Make !strong poison useless in the same situations as !poison.

--------------------------------------------------------------------------------
96c939ef4c | Neil Moore | 2014-08-17 11:34:06 -0400

Remove an obsolete comment.

--------------------------------------------------------------------------------
e9a743dae8 | Jesse Luehrs | 2014-08-17 09:34:34 -0400

disable tests that require wizmode in dgl builds

--------------------------------------------------------------------------------
06c719fa47 | Jesse Luehrs | 2014-08-17 08:55:49 -0400

add qw stress test

--------------------------------------------------------------------------------
aede943e5a | Jesse Luehrs | 2014-08-17 08:55:33 -0400

fix stress tests for recent changes

--------------------------------------------------------------------------------
a3d179f45e | Jesse Luehrs | 2014-08-17 07:53:35 -0400

travis configuration

--------------------------------------------------------------------------------
6afbe27a5c | Jesse Luehrs | 2014-08-17 07:37:37 -0400

fix branch depths in tests

--------------------------------------------------------------------------------
e8d945fb4c | Jesse Luehrs | 2014-08-17 07:28:19 -0400

set the right field here
this was causing an infinite loop in tests if a removed brand was
chosen when trying to generate a good item, since SPWPN_NORMAL ==
WPN_CLUB, and WPN_CLUB always gets rerolled when trying for good items

--------------------------------------------------------------------------------
a44b648ec5 | Neil Moore | 2014-08-17 03:46:40 -0400

Fix DGL compilation.

--------------------------------------------------------------------------------
63fd307b25 | Neil Moore | 2014-08-17 03:37:57 -0400

Allow hangedman_elf_power_crystal to place.

--------------------------------------------------------------------------------
78d49c70c6 | Neil Moore | 2014-08-17 03:21:55 -0400

Make multiple KMASK lines for the same glyph work (qw)
It turns out that the later mask was overriding the earlier one.
Instead, combine the masks.  Resolve conflicts (no_monster_gen versus
!no_monster_gen for example) in favour of the later mask.

In particular, this allows grunt_temple_overflow_order_and_chaos_1
to place again; it was broken by 0.16-a0-179-g90b15e8.

Thanks to elliptic and gammafunk for helping find and debug the problem.

--------------------------------------------------------------------------------
392fa5e582 | Neil Moore | 2014-08-17 02:08:19 -0400

Undocument -seed (#8871)
It is intended for reproducible testing, not for generating a fixed
dungeon as Brogue does. Users expect the latter.

--------------------------------------------------------------------------------
2075953fc0 | Jesse Luehrs | 2014-08-16 21:04:38 -0400

don't warn when stumbling around near friendly plants (7333)

--------------------------------------------------------------------------------
0f3837eba8 | Jesse Luehrs | 2014-08-16 19:38:03 -0400

makhleb's summons should also go hostile on excommunication (6124)

--------------------------------------------------------------------------------
2625ad16af | nagdon | 2014-08-16 18:57:46 -0400

Do not display "Spell assigned to 'a'." at game start
Now this is the first message for jobs with a pre-memorized spell
(it is printed before "Welcome, [character name] the [race] [job]."). This
message works well after the memorization messages, but is confusing and
strange without them (and almost completely unneccessary).

--------------------------------------------------------------------------------
0bcd0b2658 | Corin Buchanan-Howland | 2014-08-16 18:08:25 -0400

Ru: Modify acquirement to take into account Ru sacrifices.

--------------------------------------------------------------------------------
2bc948ea50 | Corin Buchanan-Howland | 2014-08-16 15:38:03 -0400

Ru: Preventing out of sight monsters from being redirected.

--------------------------------------------------------------------------------
3d803a4e12 | Corin Buchanan-Howland | 2014-08-16 15:28:52 -0400

Ru: Fix another erroneous cannot memorize message.

--------------------------------------------------------------------------------
14d09384b0 | Corin Buchanan-Howland | 2014-08-16 14:56:49 -0400

Ru: give message when you're too healthy to use Draw Out Power

--------------------------------------------------------------------------------
989f22b37f | Corin Buchanan-Howland | 2014-08-16 14:50:47 -0400

Ru: Improve randomized mutation sacrifices.
Refactor some health/essence/purity sacrifices to make them easier
to maintain. Also, reduce the randomized sacrifice piety bonus,
replace deformed body with no device heal, and rescale purity
sacrifice piety levels such that each successive level is worth more
than the last.

--------------------------------------------------------------------------------
36782c5bc7 | Corin Buchanan-Howland | 2014-08-16 14:00:02 -0400

Ru: don't give horror for submerged monsters.

--------------------------------------------------------------------------------
44062c3fc5 | Corin Buchanan-Howland | 2014-08-16 13:58:27 -0400

Ru: Fold sacrifice wiz command into offer gift command

--------------------------------------------------------------------------------
710566e13e | Corin Buchanan-Howland | 2014-08-16 13:42:26 -0400

Ru: correct the uselessness of summoning evokers.

--------------------------------------------------------------------------------
575b6c1fd0 | Corin Buchanan-Howland | 2014-08-16 13:27:07 -0400

Ru: fix god description typo.

--------------------------------------------------------------------------------
28acc18555 | Corin Buchanan-Howland | 2014-08-16 13:23:51 -0400

Ru: fix name of no dodging mutation

--------------------------------------------------------------------------------
b862c81d28 | Corin Buchanan-Howland | 2014-08-16 13:19:40 -0400

Ru: reset Ru altar to brown.

--------------------------------------------------------------------------------
c8494a13f3 | elliptic | 2014-08-16 11:07:52 -0400

Add player lua to get the base skill value (unmodified by draining etc).

--------------------------------------------------------------------------------
90b15e8267 | Nicholas Feinberg | 2014-08-15 23:42:04 -0700

Nerf D:2 angels (Person Dyslexic)

--------------------------------------------------------------------------------
7475c50d79 | Nicholas Feinberg | 2014-08-15 20:27:04 -0700

Update greatsling description

--------------------------------------------------------------------------------
e5d38663cb | Jesse Luehrs | 2014-08-15 16:51:54 -0400

wait until the level is initialized to fixup skills (8568)
gaining skills can cause sif's piety to increase, which may cause her to
speak, but speech can sometimes depend on the map features that you're
standing on, so we need to wait to do this fixup until the level is done
initializing

--------------------------------------------------------------------------------
efb7ffefa5 | Jesse Luehrs | 2014-08-15 16:31:13 -0400

allow 'p' on the prompt for sacrificable items

--------------------------------------------------------------------------------
fedf9161c4 | Eduardo Gonzalez | 2014-08-15 15:55:25 -0400

Don't crash if a battlesphere or avatar expires inside a wall (#8448)
All the other monsters that place clouds on death make a safety check
that the cell isn't solid.  Update these two summons to match.

--------------------------------------------------------------------------------
0d61daab31 | Jesse Luehrs | 2014-08-15 14:39:21 -0400

remove clouds if solid features are shifted onto them (8549)

--------------------------------------------------------------------------------
fa0fb95249 | Eino Keskitalo | 2014-08-15 19:14:11 +0300

Tutorial: Keep boots from turning into bardings.
Uses the "useful" ITEM tag, seems to work.

--------------------------------------------------------------------------------
b1f8270303 | Eino Keskitalo | 2014-08-15 19:14:11 +0300

Tutorial: Few more stairs-taking tutorial message improvements.

--------------------------------------------------------------------------------
0679d8db68 | Eino Keskitalo | 2014-08-15 19:14:11 +0300

Tutorial: mouse instruction for waiting.

--------------------------------------------------------------------------------
c31828bf76 | ontoclasm | 2014-08-15 10:24:56 -0500

Fire Storm (roctavian) and M.Gateway icons

--------------------------------------------------------------------------------
0af9696399 | Nicholas Feinberg | 2014-08-15 07:46:31 -0700

Wake up!

--------------------------------------------------------------------------------
787e3d9eb9 | Florian Diebold | 2014-08-15 14:09:52 +0200

Webtiles: Handle tiles that overlap the tile to the left (#8877).

--------------------------------------------------------------------------------
324a815a5f | Jesse Luehrs | 2014-08-15 06:17:27 -0400

fix monster specs of random zombies and such (6070)
for instance, "base draconian zombie" and "any simulacrum" would cause a
crash

--------------------------------------------------------------------------------
cae0758709 | Jesse Luehrs | 2014-08-15 04:48:17 -0400

handle character properties in newer dump file formats

--------------------------------------------------------------------------------
3816d8e82d | Jesse Luehrs | 2014-08-15 04:42:55 -0400

generate randarts from chardumps
unrands aren't yet generated

--------------------------------------------------------------------------------
b2fc7a1896 | Jesse Luehrs | 2014-08-15 04:09:42 -0400

identify items created from dump files

--------------------------------------------------------------------------------
9617728235 | Jesse Luehrs | 2014-08-15 02:39:54 -0400

refactor

--------------------------------------------------------------------------------
1dafa353ab | Jesse Luehrs | 2014-08-15 02:02:43 -0400

friendlier crash message

--------------------------------------------------------------------------------
0cd90c0d10 | Jesse Luehrs | 2014-08-15 01:16:43 -0400

remove some duplication

--------------------------------------------------------------------------------
b7ef146212 | Jesse Luehrs | 2014-08-15 00:35:26 -0400

also swap p and ^P (PleasingFungus)

--------------------------------------------------------------------------------
369f7452f8 | Jesse Luehrs | 2014-08-15 00:34:11 -0400

adjust a few more wizmode commands
Moving all commands off of ^M, <, and >, since those are menu keys, and
so &?< wouldn't do the right thing, for instance. Also trying to move
things off of control-key combinations in general where an easy
non-control-key combination exists, for easier typing. Finally, moving
level-specific wizmode commands (like Shoals tide speed or Lab shifting)
onto control-key combinations, since they are less frequently used, to
free up normal keys for other commands in the future.

--------------------------------------------------------------------------------
951adb9a0e | Jesse Luehrs | 2014-08-15 00:34:11 -0400

reorganize wizmode command selection

--------------------------------------------------------------------------------
5e22151ce1 | Jesse Luehrs | 2014-08-15 00:34:10 -0400

swap &m/&M

--------------------------------------------------------------------------------
d388beadfb | Jesse Luehrs | 2014-08-15 00:34:10 -0400

display these values in non-debug wizmode too

--------------------------------------------------------------------------------
80ac577deb | Jesse Luehrs | 2014-08-15 00:30:19 -0400

basic check to make sure it even looks like a dump file

--------------------------------------------------------------------------------
717a8ea169 | Jesse Luehrs | 2014-08-15 00:30:19 -0400

don't reinit skills until we see a valid skill line
otherwise, we can end up with no skills at all, which causes assertion
failures

--------------------------------------------------------------------------------
2af2ae1ba4 | Jesse Luehrs | 2014-08-15 00:30:19 -0400

stop using a static here

--------------------------------------------------------------------------------
eb103fec10 | Jesse Luehrs | 2014-08-15 00:30:19 -0400

split dump file loading out to a separate file (and class)

--------------------------------------------------------------------------------
6e25fd0e67 | Nicholas Feinberg | 2014-08-14 21:04:55 -0700

Fix non-debug & webtiles compilation

--------------------------------------------------------------------------------
25930a6b86 | Nicholas Feinberg | 2014-08-14 21:01:06 -0700

Refactor.

--------------------------------------------------------------------------------
f7fa7ed2a5 | Jesse Luehrs | 2014-08-14 19:36:32 -0400

note &= in the wizmode command list

--------------------------------------------------------------------------------
3b8412344a | ontoclasm | 2014-08-14 15:49:40 -0500

Creepy crawlies (roctavian, 8711)

--------------------------------------------------------------------------------
d4e17c5239 | Neil Moore | 2014-08-14 16:37:32 -0400

Improve a comment.

--------------------------------------------------------------------------------
319ca6a20c | Neil Moore | 2014-08-14 16:35:06 -0400

Document unwind_var.

--------------------------------------------------------------------------------
717b546998 | Neil Moore | 2014-08-14 16:15:14 -0400

Don't pretend bread is useful to felid liches (#8875)
Rather than assuming all food is long-term useful for the temporarily
undead, instead check what would happen if we weren't a lich.

--------------------------------------------------------------------------------
13dc9f5e1b | Jesse Luehrs | 2014-08-14 11:11:22 -0400

no reason to be passing this in here

--------------------------------------------------------------------------------
4c8a8a3ce8 | ontoclasm | 2014-08-14 08:39:15 -0500

A better 3XBow tile

--------------------------------------------------------------------------------
f2d8537d7a | Jesse Luehrs | 2014-08-14 03:40:41 -0400

corpses are inedible for non-vamps if the chunks are inedible (5040)

--------------------------------------------------------------------------------
00d6247dd3 | Jesse Luehrs | 2014-08-14 02:44:20 -0400

"Maras are frozen" -> "The Maras are frozen" (5054)

--------------------------------------------------------------------------------
49c2c94070 | Nicholas Feinberg | 2014-08-13 21:05:47 -0700

Make magic mapping reliably reveal the entire map
The 'patchy holes' in the map generally didn't hide anything
important, especially since in the most common cases when they
were relevant (portal vault entrances), you could generally look
at the surrounding tiles to guess where the entrance was. The
primary effect, in practice, was occasionally fucking with
autotravel.

Making *non*-patchy holes in the map would be an interesting
variant, but harder to implement; this is a simple improvement
to make in the meanwhile.

--------------------------------------------------------------------------------
c9fe9b1755 | reaverb | 2014-08-13 14:09:15 -0400

Unbrace (wiz-you.cc)

--------------------------------------------------------------------------------
b369bad906 | reaverb | 2014-08-13 14:08:33 -0400

Remove some old comments from spl-data.h (doy)

--------------------------------------------------------------------------------
c7bde6303a | Neil Moore | 2014-08-13 11:29:48 -0400

Avoid another beholder crash (#8844)
0.14-a0-1237-g6f3e6ea fixed update_beholders and update_fearmongers
but not update_beholder and update_fearmonger.

--------------------------------------------------------------------------------
36858c63e3 | ontoclasm | 2014-08-13 14:29:13 +0100

Player doll tiles for the new ranged weapons

--------------------------------------------------------------------------------
dde1abbfad | Jesse Luehrs | 2014-08-13 02:28:25 -0400

fix message when the wizard is freed in trog_wizard (8756)

--------------------------------------------------------------------------------
3487c1a930 | Jesse Luehrs | 2014-08-13 01:27:39 -0400

remove useless 1% failure chance for gr and dr flight

--------------------------------------------------------------------------------
4233139318 | Nicholas Feinberg | 2014-08-12 22:20:10 -0700

Reorder acid effects (doy)
For better messaging.

--------------------------------------------------------------------------------
7085e1e1b2 | Neil Moore | 2014-08-12 21:44:09 -0400

Actually start warpers with dispersal brand dispersal.
This was intended in 0.15-a0-1170-g8301c1d, but we were giving the brand
to an empty item slot instead.

--------------------------------------------------------------------------------
72478b85bf | Neil Moore | 2014-08-12 21:44:09 -0400

Autopickup tomahawks for warpers.

--------------------------------------------------------------------------------
977f27479c | Nicholas Feinberg | 2014-08-12 17:37:05 -0700

Correct torpor snails' description

--------------------------------------------------------------------------------
bf5829b4a5 | Florian Diebold | 2014-08-12 20:10:39 +0200

Webtiles: Colour AC and weapon red when corroded (#8836).

--------------------------------------------------------------------------------
7a5f0ea0d0 | Florian Diebold | 2014-08-12 19:55:43 +0200

Webtiles: The "icemail depleted" status doesn't show up in the HUD anymore.

--------------------------------------------------------------------------------
9dfe0b6238 | Jesse Luehrs | 2014-08-12 03:48:26 -0400

handle the last ring slot

--------------------------------------------------------------------------------
32f1ee216d | Jesse Luehrs | 2014-08-12 03:48:26 -0400

also apply weapon and armour brands

--------------------------------------------------------------------------------
f883cba766 | Jesse Luehrs | 2014-08-12 03:48:26 -0400

also create some equipment from dumpfiles
doesn't handle artefacts or egos yet, and misses the last ring slot, but
it's a start

--------------------------------------------------------------------------------
cfa7fbded1 | Nicholas Feinberg | 2014-08-11 21:01:41 -0700

Update the changelog for 0.16-a0-123-g3c51aac

--------------------------------------------------------------------------------
3c51aacae9 | Nicholas Feinberg | 2014-08-11 20:56:13 -0700

Slowly add a new torpor snail sprite (Bloax)

--------------------------------------------------------------------------------
66f62763e6 | Nicholas Feinberg | 2014-08-11 20:47:30 -0700

Remove a useless harmful-chunk-eating prompt
Even if you said 'yes', the game would only tell you that you
couldn't do it anyway. (Since it would do nothing but poison/rot
you!)

--------------------------------------------------------------------------------
a608278090 | Nicholas Feinberg | 2014-08-11 20:47:30 -0700

Don't place Boris in a maze filled with freezing clouds
Or other monsters; Boris's dignity was just most injured.

--------------------------------------------------------------------------------
9ad1ca127e | Tanner Swett | 2014-08-11 23:38:35 -0400

Change wording for magically/awkwardly throwing
Portal Projectile was producing messages like "Magically, the naga
sharpshooter shoots an arrow".  Change this to "The naga sharpshooter
magically shoots an arrow".  At the same time, replace "awkwardly throw"
with "toss away".

--------------------------------------------------------------------------------
c74d62a8f8 | Nicholas Feinberg | 2014-08-11 08:09:32 -0700

Buff mutagenic clouds
They now give significantly more glow per turn, reaching yellow
glow within 2-4 turns. Previously, they would on average give
yellow glow at minimum 5 turns, average 9 turns, which was...
not a meaningful danger.

--------------------------------------------------------------------------------
efff164730 | reaverb | 2014-08-11 00:44:55 -0400

Rename a variable (decimal_chance())

--------------------------------------------------------------------------------
eab440c109 | Nicholas Feinberg | 2014-08-10 20:51:54 -0700

Tweak Terence's description
Not ideal, but a little less of a run-on sentence.

--------------------------------------------------------------------------------
3a4a750dde | Jesse Luehrs | 2014-08-10 21:47:55 -0400

load job from chardump

--------------------------------------------------------------------------------
fb5353a63a | Jesse Luehrs | 2014-08-10 21:47:55 -0400

keep species_name up to date when changing species

--------------------------------------------------------------------------------
e602f2c973 | Nicholas Feinberg | 2014-08-10 17:46:29 -0700

Manual updates

--------------------------------------------------------------------------------
c8d9654b77 | reaverb | 2014-08-09 21:12:17 -0400

Refactor whip brand generation code
Mostly because it is low hanging fruit.

--------------------------------------------------------------------------------
4bd060a9ed | reaverb | 2014-08-09 21:02:11 -0400

Add a prompt if a player tries to move with the Barbs status
Multiple people have died due to mindlessly moving and getting damaged.

Currently, you get the prompt once, and then a prop is set which
suppresses it in the future, so if you want to move a few squares to a
stairway you aren't spammed. This prop resets whenever the Barbs status
expires, so answering it affirmatively once won't affect another fight
later.

--------------------------------------------------------------------------------
d2305cce90 | Neil Moore | 2014-08-09 18:19:28 -0400

Let Fedhasites sublimate.

--------------------------------------------------------------------------------
e8ded9265a | reaverb | 2014-08-09 13:06:49 -0400

Clarify some code (dungeon.cc)
The item squashing would not happen outside this conditional because
acquirement quality items have too high a level to be squashed. (This
was also the original behavior)

--------------------------------------------------------------------------------
f02898046a | reaverb | 2014-08-09 13:04:21 -0400

Fix mundane items sometimes being runed/glowing (|amethyst)

--------------------------------------------------------------------------------
717e049fe1 | Nicholas Feinberg | 2014-08-09 09:09:46 -0700

Re-add a vampire message (|amethyst)

--------------------------------------------------------------------------------
a701d29d88 | Neil Moore | 2014-08-09 11:32:28 -0400

Regenerate prebuilt yaccage.

--------------------------------------------------------------------------------
e8a423da45 | Nicholas Feinberg | 2014-08-08 22:46:53 -0700

Don't display MP cost for free abilities (offline tiles)

--------------------------------------------------------------------------------
c952f4c723 | Nicholas Feinberg | 2014-08-08 22:21:51 -0700

Remove the second person
From spells.txt, for consistency & style's sake. (Also clean up
a few other things.)

Please note that this is NOT the first person!

--------------------------------------------------------------------------------
2f215674b7 | Nicholas Feinberg | 2014-08-08 22:06:33 -0700

Clarify spectral weapon description (GeorgieFruit, read)
It didn't mention the injury bond in its description! A bit of
an oversight.

--------------------------------------------------------------------------------
85ed4e7cdc | Nicholas Feinberg | 2014-08-08 21:54:50 -0700

Don't give --more-- prompts for trying to eat (8849)
...when there's a chunk on the floor, but you aren't hungry
enough to eat it. (This was erroneously introduced by 2a0806f3.)

--------------------------------------------------------------------------------
c20932bd5d | Nicholas Feinberg | 2014-08-08 21:36:44 -0700

Don't check for Sublimation in butchering prompts
Specifically, when considering whether to warn vampires that
they could drain blood instead. (The presence of Sublimation
is no longer relevant.)

--------------------------------------------------------------------------------
22dfc296c4 | Nicholas Feinberg | 2014-08-08 21:31:29 -0700

Remove an unreachable bloc

--------------------------------------------------------------------------------
0188e4c8a0 | ontoclasm | 2014-08-08 21:46:09 +0100

Hand Xbow tiles

--------------------------------------------------------------------------------
28920c067e | reaverb | 2014-08-08 15:39:11 -0400

Allow players to understand stasis messages without a thesaurus

--------------------------------------------------------------------------------
984c01027b | reaverb | 2014-08-08 15:00:28 -0400

Doxygen comment _builder_items()

--------------------------------------------------------------------------------
959592d648 | reaverb | 2014-08-08 15:00:27 -0400

Remove 2 more parameters from items()
They were only used in one place, and the relevant code was moved to
that one place in the previous commit.

--------------------------------------------------------------------------------
8ce947975f | reaverb | 2014-08-08 15:00:27 -0400

Move item placement code from items() to the only place it is used

--------------------------------------------------------------------------------
a9cc7087be | reaverb | 2014-08-08 15:00:27 -0400

Add a Doxygen comment to items()

--------------------------------------------------------------------------------
5fa8f0601d | reaverb | 2014-08-08 15:00:26 -0400

Better variable names in _xom_snakes_to_sticks

--------------------------------------------------------------------------------
315c8739f4 | reaverb | 2014-08-08 15:00:13 -0400

Improve a comment for _xom_snakes_to_sticks in xom.cc

--------------------------------------------------------------------------------
ca238f51c8 | reaverb | 2014-08-08 14:52:35 -0400

Remove a parameter from items() (mundane)

--------------------------------------------------------------------------------
024df2d977 | reaverb | 2014-08-08 14:52:16 -0400

Fix Spacing (player.h)

--------------------------------------------------------------------------------
5e3c43b5a8 | Neil Moore | 2014-08-08 10:27:28 -0400

Fix possessive of "himself".
Apparently I completely forgot to clean up after my copy-pasting.

--------------------------------------------------------------------------------
1feef502cf | Neil Moore | 2014-08-07 23:34:58 -0400

Merge branch 'master' into iashol
Conflicts:
	crawl-ref/source/duration-data.h
	crawl-ref/source/item_use.cc
	crawl-ref/source/player.cc
	crawl-ref/source/religion.cc
	crawl-ref/source/wiz-you.cc
	crawl-ref/source/wiz-you.h

Manual fix-ups:
	crawl-ref/source/godabil.cc [drain_exp -> drain_player]

--------------------------------------------------------------------------------
8f4210bb81 | Neil Moore | 2014-08-07 23:32:18 -0400

Don't crash on &_<your god>.

--------------------------------------------------------------------------------
ead039468e | Neil Moore | 2014-08-07 23:29:53 -0400

Handle Esc properly for &_ and zotdef aL.
This does remove the "doesn't seem to be taking followers" message
when misspelling a god name, but keeps it when trying to choose Fedhas.
More importantly, it makes wizmode &_<esc> not abandon one's god.

--------------------------------------------------------------------------------
353c5feaf5 | Neil Moore | 2014-08-07 23:04:58 -0400

Distinguish &_junk from &_no god, and don't crash on either.

--------------------------------------------------------------------------------
26b2a3cc26 | Neil Moore | 2014-08-07 22:26:37 -0400

Unbrace

--------------------------------------------------------------------------------
7e5366dfc6 | Neil Moore | 2014-08-07 22:15:54 -0400

Actually return booleans from ru_do_sacrifice.

--------------------------------------------------------------------------------
f5f6481f58 | Corin Buchanan-Howland | 2014-08-07 22:10:44 -0400

Ru: Make Draw Out Power free you from restraints and confusion
Draw Out Power now frees you from nets, webs, constriction, and cures
petrification, slow, and confusion. The idea is that it frees you from
external restraints on your movement or thought, but it doesn't cure
illness/sickness/etc.

--------------------------------------------------------------------------------
d03d775667 | Corin Buchanan-Howland | 2014-08-07 21:44:15 -0400

Ru: Don't lose a turn when turning down a sacrifice.

--------------------------------------------------------------------------------
ff3387eb6c | Corin Buchanan-Howland | 2014-08-07 21:38:09 -0400

 Ru: Suppress demonspawn demonic guardian under sac love.

--------------------------------------------------------------------------------
2dca6eaca6 | Nicholas Feinberg | 2014-08-07 18:35:27 -0700

Tidy

--------------------------------------------------------------------------------
092893c153 | Corin Buchanan-Howland | 2014-08-07 21:27:20 -0400

Ru: adjust piety up for slow healing 2+, down for others.

--------------------------------------------------------------------------------
08a51e2af0 | Corin Buchanan-Howland | 2014-08-07 21:21:24 -0400

Ru: Fix a message when leaping into a trap.

--------------------------------------------------------------------------------
40f1b263da | Corin Buchanan-Howland | 2014-08-07 21:09:18 -0400

Ru: cut jump attack noise in half.

--------------------------------------------------------------------------------
b558b89f48 | Corin Buchanan-Howland | 2014-08-07 21:08:38 -0400

Ru: fix some typos.

--------------------------------------------------------------------------------
a92369ba3b | Neil Moore | 2014-08-07 19:32:35 -0400

Use reflexive in one more place.
Was "The goblin hits the goblin but does no damage."

--------------------------------------------------------------------------------
82a59c6242 | Neil Moore | 2014-08-07 19:11:12 -0400

Tweak defender_name method and use it more.
Have it take a parameter indicating whether reflexive is allowed, and
replace existing calls to defender_name() and def_name(DESC_THE).

--------------------------------------------------------------------------------
2a679c6e77 | Neil Moore | 2014-08-07 19:10:51 -0400

Improve a comment.

--------------------------------------------------------------------------------
b16fe66b8d | Neil Moore | 2014-08-07 19:09:03 -0400

Slightly improve a message.
"The goblin blocks its own attack." instead of just "... its attack."

--------------------------------------------------------------------------------
cf53a6da84 | Neil Moore | 2014-08-07 18:51:20 -0400

Don't say "itself's" etc.

--------------------------------------------------------------------------------
090fc3b240 | Neil Moore | 2014-08-07 18:48:21 -0400

Use reflexive in a few currently impossible cases.
Hydras chopping their own heads off, and AF_PURE_FIRE creatures burning
themselves in melee.

--------------------------------------------------------------------------------
0c49030637 | Neil Moore | 2014-08-07 18:09:15 -0400

Don't let arrows melt, burn, or freeze themselves (rockygargoyle)

--------------------------------------------------------------------------------
708f960817 | Jesse Luehrs | 2014-08-07 00:05:14 -0400

also set gold from dump file

--------------------------------------------------------------------------------
0abe53da1a | Jesse Luehrs | 2014-08-07 00:05:14 -0400

set species from dump file

--------------------------------------------------------------------------------
5242a192e5 | Jesse Luehrs | 2014-08-07 00:05:14 -0400

also set god and piety from dump

--------------------------------------------------------------------------------
25d8ff14f3 | Jesse Luehrs | 2014-08-07 00:05:14 -0400

make &_ join the religion directly instead of going through an altar

--------------------------------------------------------------------------------
b89d9dd87c | Jesse Luehrs | 2014-08-07 00:05:14 -0400

also set XL from dump files

--------------------------------------------------------------------------------
88be22f121 | Jesse Luehrs | 2014-08-07 00:05:14 -0400

suppress all stat increases for &^L
in wizmode you can set stats by hand anyway, so what's the point. also
consolidated skip_attribute_increase and wiz_cmd because
skip_attribute_increase is only set to true by wizmode commands.

--------------------------------------------------------------------------------
2c0e24d1af | Jesse Luehrs | 2014-08-07 00:05:14 -0400

refactor dumpfile loading

--------------------------------------------------------------------------------
540d9af89a | Corin Buchanan-Howland | 2014-08-06 22:42:59 -0400

Ru: Adjust Sac Sanity / Horror
Set the Horror status to affect spellpower instead of spell success,
update and improve messaging, and adjust the threshold for Horror. Now
a single TOUGH monster won't trigger it, but multiple NASTY monsters
apply more horror than before.

--------------------------------------------------------------------------------
bfebd9af87 | Corin Buchanan-Howland | 2014-08-06 22:00:17 -0400

Ru: Address some issues related to abandoning Ru
Abandoning Ru no longer gives a 'Ru does not appreciate this' message
and also doesn't cause a crash on god time update.

--------------------------------------------------------------------------------
86f53c52ac | infiniplex | 2014-08-06 18:34:55 -0700

Added options to join_the_dots LUA function
Committer's note: Refactored a few things & added comments.

--------------------------------------------------------------------------------
e45be0097c | Nicholas Feinberg | 2014-08-06 18:04:36 -0700

Temporarily disable layout_onion_city in Elf
Following player feedback, infiniplex & I agreed this wasn't
quite ready for 0.15.

--------------------------------------------------------------------------------
33ad7573a6 | Corin Buchanan-Howland | 2014-08-06 20:52:32 -0400

Ru: Clarify some ability text.

--------------------------------------------------------------------------------
180b2db379 | Nicholas Feinberg | 2014-08-06 17:50:40 -0700

Adjust ranged weapons slightly
Buff the hand crossbow & shortbow slightly to account for the
lack of ammo in the early-game (when they'll be used) - +1 base
dam apiece, and +1 base acc for the shortbow to make it 'feel' a
little more satisfying.

Adjust the triple crossbow very slightly downward - turns out the
'armour piercing' effect was more strong than expected, especially
when combining weapon & ammo brands. -1 base dam.

--------------------------------------------------------------------------------
9623750813 | ontoclasm | 2014-08-07 00:57:16 +0100

Summ. Horribles icon (Bloax)

--------------------------------------------------------------------------------
ff12a3a9f5 | Neil Moore | 2014-08-06 15:19:40 -0400

Don't use the current level's vault monster list in Weave Shadows.
Only use vault_mon_types if we requested a monster from the current level
(Shadow Creatures), not another level (Weave Shadows).

--------------------------------------------------------------------------------
0fa4da6310 | ontoclasm | 2014-08-06 17:13:11 +0100

Nemelex icon color contrast (Bloax)

--------------------------------------------------------------------------------
e530672c84 | ontoclasm | 2014-08-06 16:56:43 +0100

Inert versions of evoker tiles

--------------------------------------------------------------------------------
80d8e96c5b | Neil Moore | 2014-08-06 11:50:03 -0400

Allow distinguishing inert from charged evoker item_infos.

--------------------------------------------------------------------------------
6425076cb5 | Neil Moore | 2014-08-06 08:51:49 -0400

Respell again: the plural is 'simulacra'.

--------------------------------------------------------------------------------
de2d04acfb | reaverb | 2014-08-06 08:14:38 -0400

s/simulacrula/simulacrum/ in the changelog (JD, archaeo)

--------------------------------------------------------------------------------
704e01190e | Neil Moore | 2014-08-06 01:34:33 -0400

Recolour fragments of recoloured monsters.
Including ugly things, which were exploding with (per-cell) random
colours because their monster class uses BLACK.

--------------------------------------------------------------------------------
909ab742cb | Neil Moore | 2014-08-06 01:23:27 -0400

Check the size of mspell_list at compile time.

--------------------------------------------------------------------------------
17e225f897 | Neil Moore | 2014-08-06 01:04:53 -0400

Adjust mspell_list definition.
Make it static; and to match the other data headers (mon-data.h etc.),
move the whole definition into mon-spll.h and remove the include guards
there.

--------------------------------------------------------------------------------
0ca2a48c7e | Neil Moore | 2014-08-06 01:04:31 -0400

Remove mon-spll.h enum order dependency.
The list of spellbooks in mon-spll.h was originally independent of enum
order, but that changed when get_unique_spells was added.  Return to
the good old days.

Thanks to doy for asking about it.

--------------------------------------------------------------------------------
477c477a1d | Nicholas Feinberg | 2014-08-05 21:28:06 -0700

Rename acid beam "corrosive bolt" -> "bolt of acid"
For clarity.

The spell remains the slightly punchier "Corrosive Bolt", which
I don't *think* will cause any confusion.

--------------------------------------------------------------------------------
7ffd25c564 | Neil Moore | 2014-08-05 23:15:46 -0400

Correctly offend Beogh when disintegrating an idol (PleasingFungus)

--------------------------------------------------------------------------------
28e3730145 | gammafunk | 2014-08-05 19:56:32 -0500

Simplify out a function

--------------------------------------------------------------------------------
57b3fc90fd | gammafunk | 2014-08-05 19:56:32 -0500

Make potions of resistance grant rCorr
rCorr is less common with the removal of the preservation ego and
recently less effective at blocking the corrosion effect. Adding rCorr
to the potion increases the resistance's availability and falls
reasonably under the umbrella of "temporary natural resistances" of
the consumable. After the 0.15 release, we can consider if we want to
add rCorr as to artefacts or as an ego for e.g. cloaks, possibly
contingent on adding further monster acid attacks, in which case we
can reconsider the potion if need be.

--------------------------------------------------------------------------------
9bcff70278 | Steve Melenchuk | 2014-08-05 17:59:09 -0600

Double the Serpent of Hell's HP.
From 160 to 320.

<Sequell> the_serpent_of_hell wins 0.0% of battles against * (cv=0.15-a).

Also, other uniques that appear earlier have more HP than 160 (e.g.
Saint Roka, at 200 HP).

This seems like a good starting point to see if the Serpent can become
appropriately hellish.

--------------------------------------------------------------------------------
3cd7026de2 | Neil Moore | 2014-08-05 12:09:47 -0400

Make food autopickup match the \ menu (Kvaak)
0.16-a0-31-g61f7dd9 changed the menu, but the actual autopickup
determination still collapsed the subtypes (so bread rations were
actually controlled by the royal jelly setting).

--------------------------------------------------------------------------------
4841e6f174 | Neil Moore | 2014-08-05 10:22:20 -0400

Shorten memorization help when necessary (#3244)
If we have both hard books and racially unmemorisable spells, shorten
the text for both (and for the spell level count) so that we don't
push the "Toggle display with '!'" text off the screen.

--------------------------------------------------------------------------------
063fcaf40b | Neil Moore | 2014-08-05 09:53:29 -0400

Don't let forms unmark aux armour as useless (#8854)
If the form suppresses a mutation that prevents use of an armour slot,
continue listing items for that slot as useless even while in that form.
This also prevents, e.g., transformed formicids acquiring hats.

--------------------------------------------------------------------------------
63d8d37e0b | Jesse Luehrs | 2014-08-05 00:38:47 -0400

make sure we clear out the whole ac and sh stat area on change
previously we were only clearing out a single character after the ac,
which is normally okay since it's not usually the case that the value
jumps by multiple orders of magnitude, but things like curing extreme
corrosion in wizmode could leave garbage behind

--------------------------------------------------------------------------------
3d2dfd808e | Jesse Luehrs | 2014-08-05 00:21:19 -0400

heal a few other things with wizmode superheal

--------------------------------------------------------------------------------
e5829e7d23 | Neil Moore | 2014-08-04 20:29:47 -0400

Don't try to enable UTF-8 stdin/stderr on Windows (#8773)
On versions of Windows from Vista to 8.1, setting this mode appears to
have prevented any console output (in some cases, regardless of font).
Possible mojibake is better than no output at all, so disable this.

There is more detailed information at
   
http://alfps.wordpress.com/2011/11/22/unicode-part-1-windows-console-io-approach
es/

Possibly if we restricted our stream output to wcout, turning on UTF-8
mode would work in some versions of Windows.

This reverts commit d4add257e66062227038469b1f5f7076b24df8e7.
This reverts commit 6c35d263d0cbdd25cb337822d3f92db0783e1ebc.

--------------------------------------------------------------------------------
dc37dbaf8c | Neil Moore | 2014-08-04 19:15:10 -0400

Recolour stones brown.

--------------------------------------------------------------------------------
d96af6c620 | ontoclasm | 2014-08-04 14:35:10 +0100

De-rim greatslings
(cherry picked from commit 9894f4dbb09e6a7c76da92bc49ae2d2ee7cd0924)

--------------------------------------------------------------------------------
391f62c37d | Neil Moore | 2014-08-04 08:59:04 -0400

Brace and unbrace.

--------------------------------------------------------------------------------
3b2dec9df9 | Neil Moore | 2014-08-04 08:56:55 -0400

Correctly handle elemental-coloured explosions (#8852)

--------------------------------------------------------------------------------
587f6e766e | Shmuale Mark | 2014-08-04 08:05:42 -0400

Don't crash the game on invoking BiA (#8851).

--------------------------------------------------------------------------------
f68c32e264 | Neil Moore | 2014-08-03 19:34:15 -0400

Allow autosacrifice on altars and when silenced (minmay)
In the former case, without displaying the normal altar prompts.

--------------------------------------------------------------------------------
9858ce8f8c | ontoclasm | 2014-08-03 23:05:03 +0100

Nemelex invo icons (plus misc spells)

--------------------------------------------------------------------------------
23a437ec94 | Jesse Luehrs | 2014-08-03 16:19:27 -0400

remove check for too many spells when viewing M list (3647)
There's already a check when you try to actually memorize the spell, so
bailing out early here just hides information from the player for no
reason.

--------------------------------------------------------------------------------
9461ac7c65 | Shmuale Mark | 2014-08-03 15:39:26 -0400

Improve portal sound messages.
In general portals sounds were quite a mess. Ossuary and wizlab in
particular went from quick -> slow, the opposite of all the other sounds.

Sewer, volcano, labyrinth, and bazaar messages are unchanged. Ossuary now
uses the sewer/volcano set of messages, and wizlabs use the lab/bazaar
ones. Bailey and icecaves, which were already almost identical, are merged
and have an edit so that no one word is ever used in more than one time slot.

--------------------------------------------------------------------------------
e20b376857 | Neil Moore | 2014-08-03 14:38:07 -0400

Further fix compilation.

--------------------------------------------------------------------------------
f01cb95dd3 | Neil Moore | 2014-08-03 14:36:06 -0400

Fix compilation (geekosaur)
Using int here because an optimizing compiler is allowed to assume that
an unrand_type will never be zero.

--------------------------------------------------------------------------------
2e52a0c19d | Shmuale Mark | 2014-08-03 14:17:14 -0400

Hide a hack better.
Ideally, we wouldn't be using special for unrands totally different from
how items of the same type do, but that's less trivial than this commit.
A centralised place to check for being an unrand should at least make such
a change easier.

--------------------------------------------------------------------------------
2091673ee8 | Shmuale Mark | 2014-08-03 14:17:08 -0400

Use random_choose_weighted in two places to be (hopefully) clearer.

--------------------------------------------------------------------------------
24381c4167 | Shmuale Mark | 2014-08-03 14:17:02 -0400

Don't give out royal jellies in Spider (ends).
It's not necessary to have a reward in the branch end (Swamp has none, and
Snake has only the gear of the nagas), royal jellies aren't very connected
to Spider, and food isn't very good loot anyway.

The main reason the vaults got ambrosia replaced with royal jelly was
pending a review, so here one is.

--------------------------------------------------------------------------------
61f7dd9ad7 | Shmuale Mark | 2014-08-03 14:16:57 -0400

List all food types on \.
Now that there are only 7 (including chunks), there's no reason to not
have as many as possible of a single type (because of weight being gone),
you often might want to just have one slot of non-chunk food. The
categories before weren't quite obvious (preserved meat didn't include
beef jerkies apparently). Now you can just set whichever food type you
found the most of to be picked up and everything else off.

The downside is that this clutters the menu. If it's too much, possibly
the categories could become chunks, meat, bread, fruit, and other,
splitting bread and fruit for a Ko of Fedhas, for example. That only saves
two lines on this, though.

--------------------------------------------------------------------------------
7f77ec5574 | Shmuale Mark | 2014-08-03 14:16:52 -0400

Properly hide conflicting branches on ctrl-O.
Also cleans up some old Forest code, which might make ^O look a bit
weird on imported saves; probably not a big problem.

--------------------------------------------------------------------------------
d1e2701b5e | Shmuale Mark | 2014-08-03 14:16:47 -0400

Clarify a comment.

--------------------------------------------------------------------------------
8834a017b0 | Shmuale Mark | 2014-08-03 14:16:42 -0400

Recolour rolling boulder beetles ETC_BONE.

--------------------------------------------------------------------------------
87b20eade0 | Shmuale Mark | 2014-08-03 14:16:37 -0400

Recolour the Vaults exit lightgreen.

--------------------------------------------------------------------------------
0be069d162 | Shmuale Mark | 2014-08-03 14:16:32 -0400

Recolour sling bullets cyan.
Now that darts are gone, all ammo types can have their own colour.

--------------------------------------------------------------------------------
33eb9e96a2 | Eino Keskitalo | 2014-08-03 16:24:43 +0300

Tutorial lesson 5: left click is enough to kneel on altars.
No shift required.

--------------------------------------------------------------------------------
ed73475225 | Eino Keskitalo | 2014-08-03 16:20:11 +0300

Tutorial: Mention you can click through more prompts.
Arguably it might be easy to miss something because of this.

--------------------------------------------------------------------------------
f875596b52 | Eino Keskitalo | 2014-08-03 16:14:26 +0300

Tutorial lesson 1: left click on the character is enough to take the stairs (no 
shift necessary).
Thanks to my three year old daughter for user testing!

--------------------------------------------------------------------------------
7c1129b519 | Jesse Luehrs | 2014-08-03 06:39:11 -0400

don't generate war chants or stalking when generating books in wizmode

--------------------------------------------------------------------------------
e4d24e4b79 | Florian Diebold | 2014-08-03 11:13:24 +0200

Fix Webtiles compilation.
Broken by cb4b6e1; the stash title is now unwrapped again in Webtiles.

--------------------------------------------------------------------------------
fd4ca0a4f9 | Jesse Luehrs | 2014-08-03 05:07:31 -0400

redraw hp bar when curing poison (8719)

--------------------------------------------------------------------------------
bbd355796b | Jesse Luehrs | 2014-08-03 03:51:09 -0400

allow recalling fish (2370)
There are already checks later on during the recall process (in
_try_recall) that make sure they aren't recalled onto non-habitable
tiles, so there's no need to ban them from recalling at the start.

--------------------------------------------------------------------------------
3d3ccab80e | Jesse Luehrs | 2014-08-03 03:22:27 -0400

make sure this shop message is visible (2140)

--------------------------------------------------------------------------------
da0dfd1353 | Jesse Luehrs | 2014-08-03 03:10:38 -0400

fix item description widths on % screen (2076)

--------------------------------------------------------------------------------
bd327c5198 | Jesse Luehrs | 2014-08-03 02:39:48 -0400

stationary monsters should also block passwall (2019)

--------------------------------------------------------------------------------
607855aec8 | Jesse Luehrs | 2014-08-03 02:00:16 -0400

stop hardcoding 10 here, so we actually see our score (1854)

--------------------------------------------------------------------------------
cb4b6e118d | Jesse Luehrs | 2014-08-03 01:33:59 -0400

allow stash titles to wrap if they are too long (1260)

--------------------------------------------------------------------------------
3ae9434053 | Neil Moore | 2014-08-03 00:41:17 -0400

Add objstat outputs to .gitignore.

--------------------------------------------------------------------------------
03a5302ce1 | Neil Moore | 2014-08-03 00:27:03 -0400

Tag the abyss variant of hangedman_glass_garden no_exits.

--------------------------------------------------------------------------------
9c2101feaf | Jesse Luehrs | 2014-08-03 00:02:37 -0400

prompt for stasis in between swapping amulets too (8708)

--------------------------------------------------------------------------------
3bfcae4341 | Nicholas Feinberg | 2014-08-02 20:32:43 -0700

Don't weight Vehumet gifts to compensate for antitraining
Since it no longer exists!

--------------------------------------------------------------------------------
79bc406ae3 | Jesse Luehrs | 2014-08-02 22:20:54 -0400

fix comment

--------------------------------------------------------------------------------
eea6e29ddd | Jesse Luehrs | 2014-08-02 21:29:18 -0400

fix messages when invisible monsters are charmed or uncharmed (8819)

--------------------------------------------------------------------------------
e32c6d3cb6 | Jesse Luehrs | 2014-08-02 20:12:40 -0400

fix compiler warning

--------------------------------------------------------------------------------
4e1b44a490 | Jesse Luehrs | 2014-08-02 20:10:40 -0400

allow iterating over branches in a non-enum order (8742)
This allows us to have a consistent and logical ordering of branches
without requiring the branch enum itself to be reordered (which could
have save compatibility implications). The new ordering of branches just
moves Depths to the place in the ordering that it already is planned to
go on the next major save compat bump, but other changes are possible,
if desired. All places in the code that iterate over branches have been
updated to use the new iterator except for code dealing with save files,
which still uses enum order, so that we can change the display ordering
without affecting saves.

--------------------------------------------------------------------------------
756871af9b | ontoclasm | 2014-08-02 22:25:51 +0100

Frances tile (Bloax)

--------------------------------------------------------------------------------
d3c3341a9a | ontoclasm | 2014-08-02 22:25:49 +0100

Thrashing horror (Bloax)

--------------------------------------------------------------------------------
1ddd267dcc | Nicholas Feinberg | 2014-08-02 12:51:41 -0700

Don't let shadow mimics attack out-of-range enemies (8780)
Could occur when hitting an enemy with a distortion weapon.

--------------------------------------------------------------------------------
190ec6e66d | Nicholas Feinberg | 2014-08-02 12:11:47 -0700

Revert "Make Gozag trunk-only"
Not needed now that we've branched 0.15.

This reverts commit 8064468542592958c6ace5dc27aa0fd88cce04a9.
This reverts commit 0f053f10eb5bf6e8df296044933b8f82496ce8d3.

--------------------------------------------------------------------------------
ac5757d781 | Nicholas Feinberg | 2014-08-02 12:06:46 -0700

Kick off the 0.16 changelog.

--------------------------------------------------------------------------------
2f6d4022f1 | Nicholas Feinberg | 2014-08-02 11:37:00 -0700

Correct the release guide

--------------------------------------------------------------------------------
7e3910a46e | Nicholas Feinberg | 2014-08-02 11:28:25 -0700

oops

--------------------------------------------------------------------------------
91670f7809 | Nicholas Feinberg | 2014-08-02 11:25:53 -0700

Remove Gozag from the changelog

--------------------------------------------------------------------------------
61c507c1d1 | Nicholas Feinberg | 2014-08-02 11:22:15 -0700

Update the manual for 0.15
Remove mentions of encumbered, overburdened, strength increasing
carrying capacity, and antitraining; update description of
crosstraining; add description of +slay and remove +acc/+dam
descriptions; remove a strange and largely incorrect mention of
int helping 'certain magical items'. (CBoE requires 2 int, but
that's it.)

--------------------------------------------------------------------------------
0f053f10eb | Nicholas Feinberg | 2014-08-02 11:10:11 -0700

Don't display disabled gods in the ?/ list

--------------------------------------------------------------------------------
8064468542 | Nicholas Feinberg | 2014-08-02 10:43:42 -0700

Make Gozag trunk-only
There's a general agreement that Gozag isn't ready for 0.15;
he needs a significant amount of design work. For now he will
languish in trunk, like the lava orcs of yore. (Unlike them, he
will almost certainly be in 0.16.)

This commit is extremely ugly & hacky & should be reverted as
soon as we branch.

--------------------------------------------------------------------------------
cf7884e8c8 | ontoclasm | 2014-08-02 14:40:29 +0100

Conj. spell icons

--------------------------------------------------------------------------------
51d23b8ffc | ontoclasm | 2014-08-02 12:33:28 +0100

Tomahawk tiles (roctavian, 8847)

--------------------------------------------------------------------------------
d143ad9ffa | ontoclasm | 2014-08-02 12:00:34 +0100

Robes (roctavian, 8847)

--------------------------------------------------------------------------------
65b51e361d | Jesse Luehrs | 2014-08-02 04:30:31 -0400

xom shouldn't be interested in accidentally helping out plants

--------------------------------------------------------------------------------
73be12ef33 | Jesse Luehrs | 2014-08-02 03:55:25 -0400

webs shouldn't be considered safe during autofight
it seems to be intentional that they are considered safe during travel
and explore, but they certainly shouldn't be considered safe when you're
actively fighting monsters.

--------------------------------------------------------------------------------
087d792f95 | Jesse Luehrs | 2014-08-02 03:11:55 -0400

avoid unnecessary prompts when trying to equip an equipped item

--------------------------------------------------------------------------------
54a05abb72 | Nicholas Feinberg | 2014-08-01 23:28:18 -0700

Add greatsling tiles (roctavian)

--------------------------------------------------------------------------------
6f6660eea0 | Jesse Luehrs | 2014-08-02 01:14:00 -0400

add map view command to find the next explore target
This is useful for when you get the "Partly explored, can't reach some
places." message, but have no idea where the part that's unexplored
actually is (because it's in a corner behind a plant or something). It's
also useful if you don't actually want to use autoexplore (because there
are dangerous monsters out of line of sight, for instance), but you do
want to know which part of the level you still need to (carefully)
explore.

--------------------------------------------------------------------------------
d4b779af61 | Neil Moore | 2014-08-02 01:11:56 -0400

Let macro_colour handle -1 (by passing it through)

--------------------------------------------------------------------------------
e652697805 | Neil Moore | 2014-08-02 00:32:07 -0400

Assert when mapping a bad colour.
Hopefully this will turn the #8848 ugliness into crashes.

--------------------------------------------------------------------------------
ecce74e7d9 | Nicholas Feinberg | 2014-08-01 20:16:55 -0700

Double crosstraining bonuses
20% was not a meaningful bonus, in practice.

--------------------------------------------------------------------------------
9f833ab47f | Neil Moore | 2014-08-01 17:20:40 -0400

Fix a comment (wheals)

--------------------------------------------------------------------------------
bf02086bd6 | Neil Moore | 2014-08-01 02:04:51 -0400

Make is_unavailable_god available to dlua.
As crawl.unavailable_god("Jiyva")

--------------------------------------------------------------------------------
838f727e50 | Nicholas Feinberg | 2014-07-31 21:33:34 -0700

Add the new monster spell 'Corrosive Bolt'
As part of the continuing quest to add more acid to more places.

For now, it's on deep elf sorcerers (replacing b. draining),
tengu reavers (replacing one of the venom bolts in one of their
spellbooks), and a./liches (replacing the bolt of draining in one
of their spellbooks).

--------------------------------------------------------------------------------
5935cb8d02 | Neil Moore | 2014-08-01 00:16:17 -0400

Don't make rod spells free.
Would be a nice epic bug, though.

--------------------------------------------------------------------------------
6a83109def | Nicholas Feinberg | 2014-07-31 19:36:39 -0700

Improve stair-sliding messages

--------------------------------------------------------------------------------
c940287ee3 | Nicholas Feinberg | 2014-07-31 19:36:38 -0700

Add a few unrands to zigsprint
The Majin-Bo and Sniper (as unrands of questionable benefit),
and Firestarter (as a Very Fun Unrand).

--------------------------------------------------------------------------------
e3e48960dc | Nicholas Feinberg | 2014-07-31 19:36:38 -0700

Decorpsify mana vipers
It feels incorrect for mana vipers (weird magical creatures) to
be safely edible, and it's pretty much a flavor decision, so.

--------------------------------------------------------------------------------
90d7c0d749 | Nicholas Feinberg | 2014-07-31 19:36:38 -0700

Clarify spellbook theming

--------------------------------------------------------------------------------
d3156c93cd | Corin Buchanan-Howland | 2014-07-31 22:11:00 -0400

Ru: Increase Sac Artifice piety by 28%

--------------------------------------------------------------------------------
f782cfc95f | Corin Buchanan-Howland | 2014-07-31 22:04:34 -0400

Ru: Allow using evoked spells under sac arcana
Evoked spells from the schools you've sacrificed can now be cast.
Previously these spells would give a 'cannot cast in your present form'
message.

--------------------------------------------------------------------------------
28278e768f | Neil Moore | 2014-07-31 21:59:55 -0400

Revert "Don't autopickup arrows for transmuters (SamB)" (minmay)
This reverts commit 8d22a55ae2010b9e9c3d738e2203627379459e95.

--------------------------------------------------------------------------------
2de37e36d2 | Neil Moore | 2014-07-31 21:09:17 -0400

Make colour-swapping work in webtiles (#8271)
For now this affects all watchers, but it would probably make more sense
to make it a client-side option instead.

--------------------------------------------------------------------------------
8b14510720 | Corin Buchanan-Howland | 2014-07-31 20:21:14 -0400

Ru: Mark additional useless items
Under sac love, rods of swarm and shadows, and box of beasts, and sack
of spiders are useless. Under sac artifice, all rods are useless.

--------------------------------------------------------------------------------
4495d8fc29 | Chris Campbell | 2014-08-01 01:10:29 +0100

Remove some unique speech lines

--------------------------------------------------------------------------------
330192dc2e | Chris Campbell | 2014-08-01 01:10:27 +0100

Adjust some unique titles

--------------------------------------------------------------------------------
759c9e49c0 | Neil Moore | 2014-07-31 19:40:36 -0400

Improve innate mutation override messaging (#7324)
Give a message whenever we make permanent any level of a temporary
mutation, not just the last one.

--------------------------------------------------------------------------------
aec5098ce3 | Neil Moore | 2014-07-31 19:22:10 -0400

Don't remove extra horns when appendage ends (#8311)
This could happen if you got a mutation while transformed.  It only
occurred with horns, because appendage gives full levels of other slot
mutations.

Also, don't say your body part "disappears" if you still have mutation
levels after the transformation ends, or if you lost the mutation before
ending the transformation.  Even before this commit, this could have
happened if a demonspawn levelled up when in appendage form.

--------------------------------------------------------------------------------
ba7f0067d3 | Neil Moore | 2014-07-31 18:19:52 -0400

Forbid butchering/eating Xtahua and Gastronok under Zin (#7726)
Now, if the corpse or chunk has an orig_monnum, we use that rather
than the mon_type (which is just the species) for determining the
intelligence of the monster from which it came.

Mixing chunks from Xtahua and a normal fire dragon could result in a
stack that is either all edible, or all inedible (depending on which
stack was the source of the merge and which the target).  Furthermore,
these chunks are only marked by the forbidden tag, and only if you
worship Zin.  This could be improved, but it is not clear how worthwhile
that would be.  On the other hand, preserving names on chunks might be
"fun" for some players (even if that is kind of creepy).

--------------------------------------------------------------------------------
aadabb3ee9 | ontoclasm | 2014-07-31 22:32:16 +0100

Mask-based (and a few other) spell tiles

--------------------------------------------------------------------------------
7cdf127c88 | Neil Moore | 2014-07-31 15:46:08 -0400

Ritually cleanse mana vipers (#8842)
They were disliked by Zin because of their mutagenic corpses, which had
the side effect of making Summon Mana Viper useless for Zin worshippers.
It wasn't even necessarily clear to players *why* they were considered
unclean, since summons don't leave corpses and the monsters don't occur
naturally outside Snake and Abyss.  Give them CE_CLEAN corpses instead.

--------------------------------------------------------------------------------
f1ab2151e9 | Nicholas Feinberg | 2014-07-31 08:50:25 -0700

Adjust (very) ugly thing HD
Make XP and MR values a little more proportionate to their new
stats.

--------------------------------------------------------------------------------
894106e091 | Nicholas Feinberg | 2014-07-31 08:31:52 -0700

Make a few vaults a bit uglier
Zot/Geh/Coc/etc characters can probably handle a few miniature
elemental dire elephants.

--------------------------------------------------------------------------------
a66baa62ca | Neil Moore | 2014-07-31 02:56:52 -0400

Rename a now-incorrectly-named constant.
And improve a comment.

--------------------------------------------------------------------------------
3e256a8c4f | Neil Moore | 2014-07-31 02:42:43 -0400

Unbrace

--------------------------------------------------------------------------------
eb356de990 | Nicholas Feinberg | 2014-07-30 23:27:44 -0700

Refactor _random_special_pan_lord_brand()
Also remove the small chance of getting SPWPN_NORMAL, which I
suspect was unintentional.

--------------------------------------------------------------------------------
d30bd84d52 | Nicholas Feinberg | 2014-07-30 23:19:26 -0700

Add acid to AF_KLOWN

--------------------------------------------------------------------------------
9e66d4c016 | Nicholas Feinberg | 2014-07-30 21:10:48 -0700

Fix ugly thing banding (|amethyst)

--------------------------------------------------------------------------------
b3d529e355 | Nicholas Feinberg | 2014-07-30 21:10:48 -0700

Re-add yellow & mottled draconians to abyss
They were removed because of item destruction; now they can
return.

Still quite rare & mostly there for flavour, but hey, no harm.

--------------------------------------------------------------------------------
955a4064ab | Steve Melenchuk | 2014-07-30 22:05:13 -0600

replace_portal takes predence over overwrite_floor_cell.
If the vault designates a possible location for a 1x1 portal, that now
takes precedence over other terrain checks for placing that portal.

--------------------------------------------------------------------------------
c30fc8ff53 | Steve Melenchuk | 2014-07-30 22:05:12 -0600

Tag branch entry portal vaults with no_exits (PleasingFungus, |amethyst).
Since they try to place in encompass vaults, and subsequently veto on
exit connection checks, preventing encompass vaults from being placed.

--------------------------------------------------------------------------------
81771682ce | Nicholas Feinberg | 2014-07-30 21:03:57 -0700

Make Crawl a little uglier (upgrade ugly things)
Ugly things now have the stats of old very ugly things; very
ugly things are now... miniature elemental dire elephants, more
or less. (A little weaker.) They've been adjusted to not spawn
in bands below a certain depth (d:13 for ugly things), ala
the famous d:1 gnoll.

Ideally, they'll be potentially threatening in Vaults/Depths
now. (Their primary spawning spot.)

--------------------------------------------------------------------------------
e7ce0c1a31 | reaverb | 2014-07-30 23:08:26 -0400

Remove unnoticeably small ugly thing AC/EV variation

--------------------------------------------------------------------------------
458277d96c | reaverb | 2014-07-30 22:52:54 -0400

Remove an ancient comment
This documents a design decision from before the initial revision.

--------------------------------------------------------------------------------
037e20421c | Nicholas Feinberg | 2014-07-30 19:25:19 -0700

Make ugly things actually use mon-data stats

--------------------------------------------------------------------------------
2f4550dfab | Neil Moore | 2014-07-30 22:14:13 -0400

Make an array static and check its size.

--------------------------------------------------------------------------------
c168e25fd0 | reaverb | 2014-07-30 20:52:12 -0400

Correct the tiles under features in cyrus_temple_forest_13

--------------------------------------------------------------------------------
fe247c21a1 | Nicholas Feinberg | 2014-07-30 17:47:17 -0700

Make ranged attacks ablate *msl (Kvaak)

--------------------------------------------------------------------------------
5daad88f58 | ontoclasm | 2014-07-31 00:01:08 +0100

Giant spore (Bloax)

--------------------------------------------------------------------------------
b1a8e16b8c | reaverb | 2014-07-30 18:56:19 -0400

Mark monster Formicids as M_NO_POLY_TO (ontoclasm)

--------------------------------------------------------------------------------
e531c5b3c5 | ontoclasm | 2014-07-30 23:15:30 +0100

Improve the large rock tile

--------------------------------------------------------------------------------
26abbdd653 | ontoclasm | 2014-07-30 22:36:50 +0100

Ammo tiles cotd.

--------------------------------------------------------------------------------
f645636043 | ontoclasm | 2014-07-30 19:53:03 +0100

Ammo tiles

--------------------------------------------------------------------------------
42e5fc84e5 | Neil Moore | 2014-07-30 14:41:44 -0400

Don't hard-code gourmand in gather_items.

--------------------------------------------------------------------------------
dfe5d2a04b | Neil Moore | 2014-07-30 13:48:19 -0400

Handle jewellery again in db_lint.

--------------------------------------------------------------------------------
f45ab22346 | Nicholas Feinberg | 2014-07-30 08:46:44 -0700

Don't spawn triple crossbows (& greatslings) with uber-egos
They're quite strong enough without!

More review of launcher brand code is needed, truthfully... and
perhaps brand code generally.

--------------------------------------------------------------------------------
a91fb9bbeb | Neil Moore | 2014-07-30 09:23:56 -0400

Fix a message's gender.
If Pan returns, we will have to find another fix.

--------------------------------------------------------------------------------
b1c1c6f16f | Neil Moore | 2014-07-30 09:14:01 -0400

Improve battlecry message table.
Make it static, store const char *s rather than strings, add a compile
check on the array size, use a local enum to identify the columns,
add a run-time assertion that we weren't passed NUM_BATTLECRIES.

--------------------------------------------------------------------------------
d040ba69b1 | Neil Moore | 2014-07-30 08:54:44 -0400

Simplify mermaid singing code.
Correct probabilities in a comment, refactor code to make those
probabilities more obvious, use a const char * instead of a string,
factor out some duplicate-but-for-parameters lines, adjust a few
comments, and reorder a logical expression for better indentation.

--------------------------------------------------------------------------------
e4dd375ad4 | Neil Moore | 2014-07-30 07:05:56 -0400

Make corrosion override all weapon colours (#8836)
Including your hands.  This fixes the non-webtiles-specific parts of #8836.

--------------------------------------------------------------------------------
4ccbf14a0f | Neil Moore | 2014-07-30 06:59:46 -0400

Let Qazlalites disarm traps beneath their own clouds (#8758)
All the other player-relevant checks in actor_cloud_immune care only
about the cloud type, so this isn't an information leak.

--------------------------------------------------------------------------------
b5031071af | Neil Moore | 2014-07-30 06:53:50 -0400

Don't let confused forms disable traps (#8840)
If the form couldn't disarm traps in the first place.

--------------------------------------------------------------------------------
65d117d0c7 | Neil Moore | 2014-07-30 06:26:13 -0400

Fix explosive bolt hostiles-in-range check (#8815)
While we're at it, also correct a few power calculations to to take
into account the possibility of rod spells.

--------------------------------------------------------------------------------
e7a3923bec | Neil Moore | 2014-07-30 06:14:18 -0400

Avoid a few more incorrect reflexives.

--------------------------------------------------------------------------------
b4aa802049 | Neil Moore | 2014-07-30 06:07:37 -0400

Fix magic mapping (#8838)

--------------------------------------------------------------------------------
54cd4fec6c | Neil Moore | 2014-07-30 05:58:56 -0400

Don't let reflected projectiles miss themselves (PleasingFungus)

--------------------------------------------------------------------------------
b0b63bff96 | Neil Moore | 2014-07-30 05:50:45 -0400

Make a function static.

--------------------------------------------------------------------------------
d1047cec82 | Neil Moore | 2014-07-30 05:50:02 -0400

Fix strlcpy check (reaverb)

--------------------------------------------------------------------------------
fc841dd1f2 | Neil Moore | 2014-07-30 05:48:25 -0400

Fix compilation.

--------------------------------------------------------------------------------
e048ef1f52 | Nicholas Feinberg | 2014-07-29 23:01:10 -0700

Remove stuff
.cc, moving its contents into the new stepdown.cc and strings.cc.
(The latter also got many donations from libutil.h.)

Down with stuff! Up the new flesh!

--------------------------------------------------------------------------------
9cedde55d9 | Steve Melenchuk | 2014-07-29 19:12:18 -0600

Improve a comment (PleasingFungus).

--------------------------------------------------------------------------------
08613ce6a0 | reaverb | 2014-07-29 19:56:47 -0400

Remove fast/slow metabolism mutations from random generation (wheals)
Normally these mutations could be completely ignored when they randomly
generated.

--------------------------------------------------------------------------------
4dcdddd065 | Nicholas Feinberg | 2014-07-29 08:08:42 -0700

Adjust invisible mermaids
Invisible mermaids/sirens can't mesmerize the player, so I've
made them sing half as often, matching their odds of singing
when not targeting the player. This let me remove a hacky special
case later in the code.

--------------------------------------------------------------------------------
970b2e0032 | Nicholas Feinberg | 2014-07-29 00:08:43 -0700

Refactor mermaid song
Also make sirens print a message every time they sing, even when
invisible & the player can't behold them, since that actually
does something! (Possibly their action choice logic should be
changed...)

--------------------------------------------------------------------------------
e890ff7c71 | Nicholas Feinberg | 2014-07-28 23:33:01 -0700

Don't print fake 'you resist' messages
When being sung to invisible mermaids/sirens (!).

Flavour is nice, but it's really bad to actively mislead players
about mechanics!

--------------------------------------------------------------------------------
359c7ea309 | Nicholas Feinberg | 2014-07-28 23:20:50 -0700

Move redraw functions from stuff.cc -> output.cc

--------------------------------------------------------------------------------
c7140f0f8a | Nicholas Feinberg | 2014-07-28 23:04:00 -0700

Move letter <-> index from stuff.cc to prompt.cc (wheals)

--------------------------------------------------------------------------------
583dd66ff5 | Nicholas Feinberg | 2014-07-28 22:49:21 -0700

Revert "Remove support for "highlevel author"."
This reverts commit f3a2bd25f4f0be1eb5fe20360efa4cfe85635906.

(And makes hell/pan-lord book names actually work again.)

--------------------------------------------------------------------------------
732757c6ba | Nicholas Feinberg | 2014-07-28 22:33:39 -0700

Add missing underscores to speech lines (johnny0)

--------------------------------------------------------------------------------
f0d8333539 | Nicholas Feinberg | 2014-07-28 21:46:23 -0700

Revert "Remove pan lords from randbook author names."
This reverts commit 8f19928e55d6101126649978129211e30a3bc92b.

It is extremely cool and good, to be able to find the ancient
secrets of demonic lords. (Of course they wouldn't *teach* you
those secrets: that's why you're looting them from forgotten
libraries!)

--------------------------------------------------------------------------------
bbdfe80217 | Nicholas Feinberg | 2014-07-28 21:46:23 -0700

Changelog through 0.15-a0-2304-g0cf3be7

--------------------------------------------------------------------------------
d02a517ca8 | reaverb | 2014-07-29 00:22:27 -0400

Pull possible pan lord attack brands into a helper function

--------------------------------------------------------------------------------
19443a2257 | reaverb | 2014-07-29 00:21:43 -0400

Clarify a comment

--------------------------------------------------------------------------------
40608398c7 | reaverb | 2014-07-29 00:20:33 -0400

Rearrange some pan lord generation code
Move the chance for the a pan lord to cast spells closer to the things
it effects, etc.

--------------------------------------------------------------------------------
2a2eb70bb3 | reaverb | 2014-07-29 00:15:58 -0400

Refactor some pan lord spell selection code
There are some very minor changes to the distribution of some pan lord
spells.

--------------------------------------------------------------------------------
4fff2f9588 | reaverb | 2014-07-29 00:15:13 -0400

Make pan lord speed more readable

--------------------------------------------------------------------------------
9784212c23 | reaverb | 2014-07-28 23:50:11 -0400

Move frombool() from stuff.cc -> clua.cc

--------------------------------------------------------------------------------
a501512524 | reaverb | 2014-07-28 23:50:11 -0400

Move a function (tobool, 1 args) from stuff.cc -> directn.cc

--------------------------------------------------------------------------------
71fb0069df | reaverb | 2014-07-28 23:41:37 -0400

Move a function (tobool, 2 args) from stuff.cc -> clua.cc

--------------------------------------------------------------------------------
e05c1ae0a5 | reaverb | 2014-07-28 23:06:21 -0400

Remove an unused function (misc.cc)

--------------------------------------------------------------------------------
f214915680 | reaverb | 2014-07-28 22:03:55 -0400

Combine two conditionals with identical conditions

--------------------------------------------------------------------------------
dff94423a8 | reaverb | 2014-07-28 22:03:55 -0400

Remove another ancient comment

--------------------------------------------------------------------------------
c41cc3f4d6 | reaverb | 2014-07-28 22:03:55 -0400

Remove an ancient comment

--------------------------------------------------------------------------------
4dd2246733 | reaverb | 2014-07-28 22:03:54 -0400

Sort god piety decay by rate

--------------------------------------------------------------------------------
0534ad8702 | reaverb | 2014-07-28 22:01:28 -0400

Remove meaningless comments from handle_god_time()
Mostly descriptions of ancient design decisions, a couple attempts to
explain why gods have particular piety decay rates which don't make any
sense. (Such as stating some gods have fast decay because they accept
corpse sacrifices when there are gods with the same decay rate which
don't.)

--------------------------------------------------------------------------------
c233d03cb8 | Neil Moore | 2014-07-28 15:19:53 -0400

Don't veto when failing to connect Abyss vaults
So they'll actually place.

We should look more closely into *why* it fails to connect and whether
that can/should be fixed; or, alternatively, whether we should make
abyss vaults all no_exits.  For now, this stopgap at least leaves us in
the same situation we were in before the #8833 crashes began.

--------------------------------------------------------------------------------
ba99023e2d | Neil Moore | 2014-07-28 15:19:53 -0400

Don't crash when abyss map placement is vetoed (#8833)

--------------------------------------------------------------------------------
3eeb555d43 | Neil Moore | 2014-07-28 11:21:07 -0400

Don't crash on Leda's in local tiles (#8834)

--------------------------------------------------------------------------------
ac224221ec | Neil Moore | 2014-07-28 10:22:25 -0400

Fix compilation (johnstein)

--------------------------------------------------------------------------------
0cf3be7fc5 | Nicholas Feinberg | 2014-07-28 00:03:07 -0700

Add end.cc

--------------------------------------------------------------------------------
cb645b5ede | Nicholas Feinberg | 2014-07-28 00:01:51 -0700

Restore div_round_up()
I hadn't thought to check if it was actually *defined* in
random.cc, so of course it was not. For five years, declared in
random.h and defined in stuff.cc.

--------------------------------------------------------------------------------
0e54e90ebd | Nicholas Feinberg | 2014-07-27 23:29:58 -0700

Remove an unused function
This was moved to random.cc in 2009 (!), but the old definition
in stuff.cc seems to have been overlooked.

--------------------------------------------------------------------------------
f87c007a08 | Nicholas Feinberg | 2014-07-27 23:13:28 -0700

Move move_stairs() from misc.cc to melee_attack.cc
The only place it was used.

--------------------------------------------------------------------------------
ac7ffddb0e | Nicholas Feinberg | 2014-07-27 23:13:21 -0700

Staticify.

--------------------------------------------------------------------------------
464fd5079e | Nicholas Feinberg | 2014-07-27 23:00:53 -0700

Fix debug compilation

--------------------------------------------------------------------------------
47e5704136 | Nicholas Feinberg | 2014-07-27 22:58:57 -0700

Create prompt.cc

--------------------------------------------------------------------------------
d60393247b | Nicholas Feinberg | 2014-07-27 22:37:11 -0700

Move canned_message() from stuff.cc to message.cc

--------------------------------------------------------------------------------
8821a77a87 | Nicholas Feinberg | 2014-07-27 22:23:23 -0700

Move cio_init() from stuff.cc to startup.cc
The only place it was called.

--------------------------------------------------------------------------------
966b1f0692 | Nicholas Feinberg | 2014-07-27 22:18:43 -0700

Move get_ch() from stuff.cc to macro.cc

--------------------------------------------------------------------------------
e4d45b9975 | Nicholas Feinberg | 2014-07-27 22:09:02 -0700

Move held_status() from stuff.cc to traps.cc
Also add some comments to stuff.h, categorizing functions for
later removal.

--------------------------------------------------------------------------------
46567fecca | Nicholas Feinberg | 2014-07-27 11:12:01 -0700

Refactor ballisto_on_move()
Also change message printing behaviour slightly; it's now
possible to get "a ballistomycete grows in the wake of something",
which is strange, but not necessarily wrong.

--------------------------------------------------------------------------------
13adbc04b5 | Nicholas Feinberg | 2014-07-27 09:37:35 -0700

Improve torpor snail sprite slighty

--------------------------------------------------------------------------------
2252c1227e | Nicholas Feinberg | 2014-07-26 23:44:09 -0700

Make rPois a bit more consistent (for players)
Direct damage resistance from 50% to 66%. Chance of preventing
poison from 90% to 66%. Chance of preventing curare from 80% to
66%. AF_STRONG_POISON (eg redbacks) no longer pierces rPois for
players. Wasps (AF_PARALYSE) now have their effects downgraded
one level by rPois (para -> slow, slow -> nothing) instead of
outright negated.

rPois should be a helpful resist to have, not a binary pass-fail
check for certain areas & enemies.

--------------------------------------------------------------------------------
7a410f2d1a | Nicholas Feinberg | 2014-07-26 23:44:09 -0700

Correct a comment

--------------------------------------------------------------------------------
437b45a3ff | Nicholas Feinberg | 2014-07-26 23:44:08 -0700

Refactor _print_stats_wp()

--------------------------------------------------------------------------------
a5df18ca80 | Neil Moore | 2014-07-27 02:36:52 -0400

Don't veto every O/S/M/A level with a primary vault.

--------------------------------------------------------------------------------
456eec362b | Neil Moore | 2014-07-26 23:18:03 -0400

Show divine/cond. shield in % and @ (Kramin, PleasingFungus)
This also changes the wizmode name from "condensation shield"
to "icy shield".

--------------------------------------------------------------------------------
421ad785ff | Neil Moore | 2014-07-26 22:55:35 -0400

Remove base max MP adjustment.
Only the 2 MP tutorial bonus used it; combine that with the max MP
decrease from self-restoration and device recharging.

--------------------------------------------------------------------------------
ebbff481bc | Neil Moore | 2014-07-26 22:36:58 -0400

Further rename you.mp_max_*.
Because mp_max_temp is in fact permanent.

--------------------------------------------------------------------------------
77b79c8376 | Neil Moore | 2014-07-26 22:28:10 -0400

Rename player::[hm]p_max_{perm,temp} (reaverb)
To reflect that they are adjustments, not actual mhp values.  Also
change one reference to use player_rotted instead.

--------------------------------------------------------------------------------
d71e18733b | Neil Moore | 2014-07-26 22:15:34 -0400

Fix temporary MP modifier in debug dumps.

--------------------------------------------------------------------------------
bb7bf68723 | Neil Moore | 2014-07-26 21:30:59 -0400

Fix Bat Form description inaccuracies (#8829)
Not only did it still refer to item weight, but it didn't take into
account grasping roots, which can ground a bat.

--------------------------------------------------------------------------------
d5a498d777 | Neil Moore | 2014-07-26 21:30:59 -0400

Don't kill the player with zotdef rotting until 0 mhp.

--------------------------------------------------------------------------------
03ece1401e | Neil Moore | 2014-07-26 21:30:59 -0400

Allow drinking !curing while in Death's Door (#8770)

--------------------------------------------------------------------------------
132b3f91c5 | Neil Moore | 2014-07-26 21:30:59 -0400

Correct !curing no-device heal rot check.
you.hp_max_temp only equals you.hp_max when the player is rotted down to
zero.  Also, ignore rot when we aren't at max, since the potion can't
push us up to max in this situation.

--------------------------------------------------------------------------------
2d7ccdc89d | Nicholas Feinberg | 2014-07-26 17:28:05 -0700

Reduce rCorr corrosion chance reduction
From 90% to 50%. (Though both of those percents are misleadingly
low - rCorr also reduces acid damage, which determines the chance
of applying corrosion.)

--------------------------------------------------------------------------------
049d2d10a3 | Nicholas Feinberg | 2014-07-26 17:28:04 -0700

Fix: monsters -> corpses

--------------------------------------------------------------------------------
ed6adb91d2 | Steve Melenchuk | 2014-07-26 17:54:05 -0600

Veto a level if the primary vault's exits fail to connect.
This doesn't solve the underlying problem, whatever it is, but it should
stop games from reaching an unplayable state.

--------------------------------------------------------------------------------
eac0335949 | Steve Melenchuk | 2014-07-26 17:45:00 -0600

Revert "Connect exits of primary vault to layout after building layout."
There's already a ::connect call after build_postvault_level, so this is
completely meaningless logic.

This reverts commit a02710520930951c3f3b6685483d157d3b32bfcb.

--------------------------------------------------------------------------------
102536e463 | Nicholas Feinberg | 2014-07-26 16:41:38 -0700

Remove debug print statements

--------------------------------------------------------------------------------
13f7132bae | Nicholas Feinberg | 2014-07-26 16:37:09 -0700

Refactor acid resistance

--------------------------------------------------------------------------------
61cafb898b | Steve Melenchuk | 2014-07-26 17:23:53 -0600

Make a vault branch-length-agnostic.

--------------------------------------------------------------------------------
9e794ff4b4 | Brendan Hickey | 2014-07-26 23:21:53 +0000

Chokoban fixup

--------------------------------------------------------------------------------
34a43e2439 | Brendan Hickey | 2014-07-26 23:18:11 +0000

Add a nostalgic elevator vault.

--------------------------------------------------------------------------------
4ddda0ee2a | Neil Moore | 2014-07-26 19:03:50 -0400

Add a comment.

--------------------------------------------------------------------------------
b60c376621 | Neil Moore | 2014-07-26 18:10:57 -0400

Use new numeral font for aptitude overlays too.

--------------------------------------------------------------------------------
6a4e72fbd0 | Neil Moore | 2014-07-26 18:10:57 -0400

Show quantities up to 10k in inventory panel (#8821)
Use a slightly smaller, but heavier, font for these numbers.

--------------------------------------------------------------------------------
524d7bce15 | Nicholas Feinberg | 2014-07-26 15:02:34 -0700

Add a very placeholder greatsling tile

--------------------------------------------------------------------------------
b33f7a63b5 | Brendan Hickey | 2014-07-26 21:35:57 +0000

Increase the abyss rune chance on levels A:4 and A:5

--------------------------------------------------------------------------------
c10b3c5d80 | Brendan Hickey | 2014-07-26 21:34:28 +0000

Increase the spawn rate of downstairs in the abyss.

--------------------------------------------------------------------------------
64debdd04e | Nicholas Feinberg | 2014-07-26 12:25:32 -0700

Make the Mace of Brilliance into a(n) (evening)star
A more prepossessing base type, and thematically appropriate, too.

+5 -> +1 to partially compensate, since it's still intended to be
a relatively defensive artefact.

(Also tweak the description slightly.)

--------------------------------------------------------------------------------
a833eec8ca | Nicholas Feinberg | 2014-07-26 11:38:33 -0700

Make Poison Arrow a ranged attack
So that it does damage consistent with other spells against
targets with negative resistances. (1.35x damage, instead of
1.7x.)

Also makes BEAM_NEG count as ranged, if anyone or anything ever
gets rN-.

--------------------------------------------------------------------------------
93bd6f3c9f | Nicholas Feinberg | 2014-07-26 11:27:59 -0700

Comment and constify get_resistible_fraction()

--------------------------------------------------------------------------------
75e7cd9dc1 | Nicholas Feinberg | 2014-07-26 11:19:30 -0700

Make the Elemental Staff apply elemental effects (8093)

--------------------------------------------------------------------------------
20a4d5e7c4 | Nicholas Feinberg | 2014-07-26 11:15:41 -0700

Arguably refactor the Elemental Staff

--------------------------------------------------------------------------------
b5c3026711 | Neil Moore | 2014-07-26 13:56:24 -0400

Theoretically improve ghost interestingness check.
It doesn't make a difference currently, but if ghost_init ever decides
to set the attitude, this would be more correct.

--------------------------------------------------------------------------------
3704e0c0cd | Nicholas Feinberg | 2014-07-26 10:46:25 -0700

Refactor attacker_sustain_passive_damage()

--------------------------------------------------------------------------------
674d6c0fc3 | Neil Moore | 2014-07-26 13:42:24 -0400

Don't mark friendly illusions/ghosts as interesing (#8817)

--------------------------------------------------------------------------------
3a38826724 | Neil Moore | 2014-07-26 12:31:59 -0400

Don't show sporable tile overlay when just checking (#8821)
That caused an infinite recursion in tiles. This generalises the fix in
18cf5c4 to make the Reproduction check have no side effects when
quiet == true.

--------------------------------------------------------------------------------
a39016e673 | Nicholas Feinberg | 2014-07-25 23:50:33 -0700

Remove a six-year-old comment
Looking at the original commit, the 'rather pointless'
descriptions it mentioned seem to hav nearly all been removed.

RIP stinky rotting devils.

--------------------------------------------------------------------------------
abea293a62 | Nicholas Feinberg | 2014-07-25 23:34:03 -0700

Make ranged weapon delay display properly on @
It only works if you have the appropriate projectile type
quivered (otherwise it shows you as if using the weapon in melee,
i.e. breadswing speed), but that's still an improvement.

Also, constify.

--------------------------------------------------------------------------------
97ab1de69b | Nicholas Feinberg | 2014-07-25 22:22:51 -0700

Tweak Plane Rend monster sets
Swap wolf spiders out for tarantellas, which might theoretically
do something (and lower their weight in favor of orb spiders,
because orb spiders are never not great), swap out iron trolls
for stone giants as a belated part of the great Iron Troll
Removal Campaign, and swap torpor snails in for death yaks, now
that the slow from the former ends properly.

--------------------------------------------------------------------------------
a3f1385589 | Nicholas Feinberg | 2014-07-25 22:12:13 -0700

Tidy up spellpower props on effect expiration

--------------------------------------------------------------------------------
6aa080c084 | Nicholas Feinberg | 2014-07-25 22:04:10 -0700

Fix a missing floor tile in Holy Pan

--------------------------------------------------------------------------------
f054a6457f | Nicholas Feinberg | 2014-07-25 21:50:26 -0700

Make torpor snail slow end immediately after LOS is broken
Or after they die, etc.

Also no longer require the torpor snail to be visible, thus
preventing powerful /invis secret tech. rip :(

--------------------------------------------------------------------------------
a027105209 | Steve Melenchuk | 2014-07-25 22:22:28 -0600

Connect exits of primary vault to layout after building layout.
This should cause fewer issues with vaults not connecting to the rest of
the level.

--------------------------------------------------------------------------------
8280acafc8 | argonaut | 2014-07-25 23:15:36 -0400

Initialize bolt::was_missile (#8820)

--------------------------------------------------------------------------------
fd414227e9 | Chris Campbell | 2014-07-25 21:31:00 +0100

Mention the effects of spellpower in DDoor description

--------------------------------------------------------------------------------
de178d7cde | Chris Campbell | 2014-07-25 21:30:33 +0100

Revert "Put heavily drained players out of their misery"
Heavy draining already recovers quickly, such that it should be possible to
recover even when killing low-XP monsters. If very heavy draining is still
problematic, it might be better to scale down draining when already heavily
drained, rather than making it behave in a different way entirely past a
certain point.

This reverts commit bc4cca05f1829bd4bb812008c01682b204ee4975 and commit
1c0d6e64a9a9.

--------------------------------------------------------------------------------
d54d80d005 | Nicholas Feinberg | 2014-07-25 07:58:35 -0700

Update spell descriptions
For Ozocubu's Armour, Condensation Shield, Stoneskin, and Death's
Door - all the spells which referenced being powered by skill in
their descriptions.

--------------------------------------------------------------------------------
1ac2e529be | infiniplex | 2014-07-25 02:46:44 -0400

Standardize forbiddance of very small maps

--------------------------------------------------------------------------------
cc8d6ef1a9 | Nicholas Feinberg | 2014-07-24 23:31:57 -0700

Make Ice/Statue Form use spellpower instead of Ice/Earth
Also adjusts max power (Ice Form 200->100, Statue Form 200->150)
to get roughly the same scaling as before; statue form now scales
slightly more slowly, but caps out at 1.5 ac higher, if you can
eke out enough spellpower.

AC from non-spell-caused polymorphs will be based on the power
of the polymorph.

--------------------------------------------------------------------------------
f11e77305c | Nicholas Feinberg | 2014-07-24 21:24:30 -0700

Tweak Stoneskin/Ozocubu's Armour
Reduce the spellpower cap to 100 (closely approximating the old
effective power cap), and slightly buff ozo's at old power to
bring it up to the old numbers.

--------------------------------------------------------------------------------
d077b8f03f | Nicholas Feinberg | 2014-07-24 21:11:14 -0700

Improve a stoneskin message

--------------------------------------------------------------------------------
7aee86ca5a | Nicholas Feinberg | 2014-07-24 21:11:14 -0700

Make Ozocubu's Armour use spellpower instead of Ice

--------------------------------------------------------------------------------
12b3f55b39 | Nicholas Feinberg | 2014-07-24 20:54:37 -0700

Make Stoneskin use spellpower instead of Earth

--------------------------------------------------------------------------------
069fef2426 | Nicholas Feinberg | 2014-07-24 20:39:30 -0700

Make Condensation Shield use spellpower instead of Ice

--------------------------------------------------------------------------------
a207fe70d5 | reaverb | 2014-07-24 22:50:16 -0400

Remove the EV penalty from Statue Form
This seemed to get a generally positive reaction when it was proposed a
month or two ago. If Statue Form becomes too good, the Dex penalty could
be increased or a lesser EV penalty could be used instead.

--------------------------------------------------------------------------------
9619582b28 | reaverb | 2014-07-24 22:34:38 -0400

Formatting Fixes

--------------------------------------------------------------------------------
f97c27f695 | Nicholas Feinberg | 2014-07-24 18:49:04 -0700

Make Shatter LOS-ranged
It usually was, and the game communicated very poorly when it
wasn't (that is, there wasn't any indication at all).

--------------------------------------------------------------------------------
e696fdbfde | infiniplex | 2014-07-24 20:33:38 -0400

Added Elf variant to loops layouts

--------------------------------------------------------------------------------
756d4b8fc9 | Nicholas Feinberg | 2014-07-24 08:43:44 -0700

Make Sticks to Snakes use spellpower instead of Transmutations

--------------------------------------------------------------------------------
230892da5a | Nicholas Feinberg | 2014-07-24 08:37:10 -0700

Make Shatter use spellpower instead of Earth

--------------------------------------------------------------------------------
50cd98db08 | Nicholas Feinberg | 2014-07-24 08:31:59 -0700

Make Passwall check spellpower instead of Earth

--------------------------------------------------------------------------------
4662642c6b | Nicholas Feinberg | 2014-07-24 08:21:56 -0700

Make Death's Door check spellpower instead of Necromancy

--------------------------------------------------------------------------------
1c0d6e64a9 | Nicholas Feinberg | 2014-07-24 07:13:46 -0700

Make horrible draining red

--------------------------------------------------------------------------------
1e78800282 | Neil Moore | 2014-07-24 08:18:45 -0400

Mark monster items as seen when they re-enter LOS.
If a monster was first seen without an item, then left LOS, picked up an
item, and re-entered LOS, the new items were not marked as seen, leading
to some monster pickup oddities:

 Aim: a gnoll, wielding a hand axe and carrying a wand of magic darts {zapped:1}
 ...
 You kill the gnoll!
 ...  [second gnoll steps up]
 The gnoll picks up a wand of magic darts {zapped: 1}.

--------------------------------------------------------------------------------
4fb0955c1c | Neil Moore | 2014-07-24 08:02:57 -0400

Don't return dangling strings for jewellery names (#8822)
We were returning a pointer to the character data of a stack-allocated
string, leading to corruption of the name in the item cache.  Have
jewellery_type_name return a string instead.

--------------------------------------------------------------------------------
74ad240900 | Neil Moore | 2014-07-24 07:59:38 -0400

Make a function static.

--------------------------------------------------------------------------------
b8d2ec8bcd | reaverb | 2014-07-24 03:54:10 -0400

Clarify a comment

--------------------------------------------------------------------------------
5f8b1a6e8a | reaverb | 2014-07-24 03:49:15 -0400

Run util/checkwhite

--------------------------------------------------------------------------------
df0d926d1b | reaverb | 2014-07-24 03:49:10 -0400

Run util/unbrace

--------------------------------------------------------------------------------
682baf4c4e | reaverb | 2014-07-24 02:36:53 -0400

Merge branch 'master' into iashol
Conflicts:
	crawl-ref/source/directn.cc
	crawl-ref/source/feature.cc
	crawl-ref/source/player-act.cc
	crawl-ref/source/spl-book.cc
	crawl-ref/source/tag-version.h
	crawl-ref/source/terrain.cc

--------------------------------------------------------------------------------
bc4cca05f1 | Nicholas Feinberg | 2014-07-23 22:53:32 -0700

Put heavily drained players out of their misery
Draining is now limited, based on your level. If you get drained
further when you're already very heavily drained, you take
very sizeable amounts of damage. Hopefully this will kill you.

The death messaging seems to work, but it's not ideal. Possibly
someone can adjust that.

--------------------------------------------------------------------------------
b26780ba51 | Nicholas Feinberg | 2014-07-23 19:53:47 -0700

Experimentally add torpor snails to Depths

--------------------------------------------------------------------------------
5378af8353 | Nicholas Feinberg | 2014-07-23 19:53:47 -0700

End the snail honeymoon
Return torpor snails to normal spawning rates, now that they've
been fairly well playtested.

--------------------------------------------------------------------------------
cfb0d12409 | infiniplex | 2014-07-23 22:05:30 -0400

Rework layout_gehenna_lava_caves

--------------------------------------------------------------------------------
fe5354c7f8 | infiniplex | 2014-07-23 22:05:30 -0400

Move Gehenna building generation to theme.lua

--------------------------------------------------------------------------------
4de20b8ffa | Nicholas Feinberg | 2014-07-23 18:48:15 -0700

Move a serial vault from D:16- to Depths

--------------------------------------------------------------------------------
0dfb363c50 | reaverb | 2014-07-23 21:39:11 -0400

Remove the old version of layout_overlapping_boxes
It could cause .des errors if you cleared the .des cache

--------------------------------------------------------------------------------
6e4e3b7035 | Nicholas Feinberg | 2014-07-23 18:35:15 -0700

Refactor feat_virtually_destroys_item

--------------------------------------------------------------------------------
084b314053 | Nicholas Feinberg | 2014-07-23 18:35:15 -0700

Fix the newly-enabled volcano draconians

--------------------------------------------------------------------------------
4df1e1c60f | Nicholas Feinberg | 2014-07-23 18:35:14 -0700

Remove a vestigial comment

--------------------------------------------------------------------------------
e1da13d7f1 | gammafunk | 2014-07-23 19:22:41 -0500

A new layout for Dis by infiniplex
A layout for Dis:1-6 consisting of many overlapping boxes aligned on a
grid of blocks. The only change I've made it to properly include a
necessary lua file. This layout can produce some quite simple
maps--nothing more than aligned, randomly connected rooms that are
mostly square with some rectangular ones, but such maps still feel
thematic for Dis and the layout itself is at low weight.

--------------------------------------------------------------------------------
b17132f4a0 | Nicholas Feinberg | 2014-07-23 07:56:15 -0700

Remove 'the' (from) gourmand (for lua interop)

--------------------------------------------------------------------------------
5bdd4d71a2 | Chris Campbell | 2014-07-23 07:06:15 +0100

Improve some Death's door-related messages

--------------------------------------------------------------------------------
084620bb55 | Chris Campbell | 2014-07-23 07:06:12 +0100

Don't consider permafood permanently useless while in Lichform

--------------------------------------------------------------------------------
92ec8ff9c8 | Chris Campbell | 2014-07-23 07:06:08 +0100

Revert "Remove an incorrect changelog entry"
This reverts commit 7f377d1fea46411426df256178671021ce89183d.

--------------------------------------------------------------------------------
603939af70 | Chris Campbell | 2014-07-23 07:05:21 +0100

Make Sublimation of Blood only effective when cast on the player
Having a spell work in two completely different ways depending on context
is unintuitive, and self-casting it is the much more interesting use.
Makes the spell unmemorisable for species without blood (Gargoyle, Ghoul,
Mummy). Species that can't bleed get both level 1 spells from the first
Kiku gift. Has some ugly duplication of lists of species that can't bleed,
because using player::can_bleed won't correctly handle statue- or lich-
formed players even with allow_tran = false, due to them changing the
player's holiness.

--------------------------------------------------------------------------------
b62d1063ba | Chris Campbell | 2014-07-23 06:56:17 +0100

Fix messaging for forms other than lichform making a spell unmemorisable
For correct messaging when trying to memorise Sublimation in statue form (in
the future) for example. Probably would be better to allow memorising such
spells regardless of temporary forms, though.

--------------------------------------------------------------------------------
b6cf2bc58d | Nicholas Feinberg | 2014-07-22 22:53:48 -0700

Refactor out a redundant list of jewellery names
And de-indent l_item_do_subtype() slightly.

--------------------------------------------------------------------------------
cb37f90e43 | Nicholas Feinberg | 2014-07-22 21:13:22 -0700

Refactor & document _lugonu_retribution()

--------------------------------------------------------------------------------
884ed1fae0 | Nicholas Feinberg | 2014-07-22 19:36:36 -0700

Correct some comments

--------------------------------------------------------------------------------
42cf5b78ee | Nicholas Feinberg | 2014-07-22 19:18:14 -0700

Actually give Mass Confusion to Wucad Mu (Grunt)

--------------------------------------------------------------------------------
4153324914 | Nicholas Feinberg | 2014-07-22 18:33:43 -0700

Don't trigger zot traps when losing flight (5090, wheals)

--------------------------------------------------------------------------------
d13cd90a4f | Nicholas Feinberg | 2014-07-22 18:19:36 -0700

Adjust hangedman_lair_in_review
Restore the purity of the beetle/worm grouping (C-F), and reorder
a few other groups.

Also add some explanatory comments, according to my own limited
understanding of the vault.

--------------------------------------------------------------------------------
a74b0cc428 | Nicholas Feinberg | 2014-07-22 18:10:16 -0700

Give orange crystal statues Mass Confusion
To make them work a little better in river_lethe, Wucad Mu, etc.

--------------------------------------------------------------------------------
dd698cb91c | Nicholas Feinberg | 2014-07-22 17:27:49 -0700

Staticify is_dragonkind() (wheals)

--------------------------------------------------------------------------------
685f7f1fa4 | Steve Melenchuk | 2014-07-22 18:22:01 -0600

Remove Haste from spriggan air mages.
The justification given for giving them the spell initially in 0b45604
was "they're delayed in hasting themselves, causing them to be similar
in threat to their previous selves". It's been since established that
their very first action is often to haste themselves, leading to
Airstrike spam and causing them to be overwhelmingly more lethal than
anything else in Depths to the point where it's undesirable.

--------------------------------------------------------------------------------
7f377d1fea | Chris Campbell | 2014-07-22 16:50:26 +0100

Remove an incorrect changelog entry

--------------------------------------------------------------------------------
5ed784f846 | Chris Campbell | 2014-07-22 16:46:59 +0100

Don't place uniques in Blade

--------------------------------------------------------------------------------
a15b4ee69f | Neil Moore | 2014-07-22 11:44:02 -0400

Remove a now unused function (geekosaur)
Not sure how I missed this in 0.15-a0-2194-g98569aa.

--------------------------------------------------------------------------------
4ca748e7cf | Nicholas Feinberg | 2014-07-21 22:08:45 -0700

Changelog through 0.15-a0-2194-g98569aa

--------------------------------------------------------------------------------
98569aa5af | Neil Moore | 2014-07-21 23:01:16 -0400

Don't indicate suppressable mutations unless suppressed (#8814)
It's confusing to players, some of whom think the * means the mutation
is currently suppressed.  Worse, it didn't even pay attention to
whether the form spells you know actually would suppress the mutation.

--------------------------------------------------------------------------------
309c75daec | Neil Moore | 2014-07-21 12:29:35 -0400

Mark an arrival vault no-rtele (#8428)
Simpler than trying to modify it to force the rooms to be connected.

--------------------------------------------------------------------------------
0d957f34ef | ontoclasm | 2014-07-21 17:07:48 +0100

Shadow demon (Bloax)

--------------------------------------------------------------------------------
72315362ba | Neil Moore | 2014-07-21 11:32:58 -0400

Don't hang when Yredites cast Shadow Creatures in holy_pan
We had an infinite loop when there were monsters on the random list but
none of them were acceptible.

--------------------------------------------------------------------------------
04414b5cf1 | gammafunk | 2014-07-21 02:02:57 -0500

A new diamond mine layout for Orc by infiniplex

--------------------------------------------------------------------------------
7c0069cfba | infiniplex | 2014-07-21 02:02:57 -0500

Improved LUA zonify functionality

--------------------------------------------------------------------------------
2ce996b5e7 | Neil Moore | 2014-07-21 02:40:01 -0400

Add nrook to credits.

--------------------------------------------------------------------------------
51fb82f12f | Neil Moore | 2014-07-21 00:27:41 -0400

Fix tile_show_player_species for draconians (#8812)

--------------------------------------------------------------------------------
60945e0518 | Neil Moore | 2014-07-21 00:06:37 -0400

Restore colour when a sealed door is opened.

--------------------------------------------------------------------------------
63bc4b8c37 | Neil Moore | 2014-07-20 23:39:04 -0400

Save old colour in terrain-change markers (#8806)
It is still possible to lose the colour if the cell is permanently
reverted to its original type: for example, using Tomb on coloured
floor then digging out.

--------------------------------------------------------------------------------
035fa3e617 | Neil Moore | 2014-07-20 22:49:20 -0400

Put "you" in the pronoun declension table.
Pretending it is a gender for simplicity.  Better might be to rename
gender_type to pronoun_type, and rename pronoun_type to pronoun_case or
something similar.

--------------------------------------------------------------------------------
333664be5c | Neil Moore | 2014-07-20 22:39:26 -0400

Provide and use a public interface to pronoun declensions.
It's in mon-util.h for now but probably should go somewhere else.

--------------------------------------------------------------------------------
a692dc630d | Neil Moore | 2014-07-20 21:47:17 -0400

Re-add a sewer entry.
I removed it because it had no water left, but there's no reason not to
have shallow water, particularly since the giant mite can cling and
therefore has terrain advantage against most early players.

Also make the mite patrol so it doesn't wander away; its predecessor the
fish was prevented from doing so by a lack of legs.

This reverts commit 6c5f5d6e7898dc71897cd76810add32b426df2d6.

--------------------------------------------------------------------------------
fe1f898491 | Neil Moore | 2014-07-20 21:35:55 -0400

Forget 0-piety ability letters on god switch (#8701)

--------------------------------------------------------------------------------
d487d614c4 | Neil Moore | 2014-07-20 21:05:21 -0400

Don't let blinkbolts hit the caster (#8791)

--------------------------------------------------------------------------------
ea910f6305 | Neil Moore | 2014-07-20 20:40:26 -0400

Document the effect of no_rtele_into on hatches/shafts.

--------------------------------------------------------------------------------
e0ca020f22 | Neil Moore | 2014-07-20 20:26:45 -0400

Don't hatch the player into a monster jail (#8808)

--------------------------------------------------------------------------------
8515cbe870 | Neil Moore | 2014-07-20 20:14:12 -0400

Allow giving derived undead equipment in mspecs (#8807)
Since they can be animated with equipment.  This doesn't check that the
item is something a zombie/skeleton can use, so it's up to vault
designers not to make an centaur zombie ; shortbow .

Items are still disallowed if the zombie's base monster can't use
equipment, of if its base type is random.

--------------------------------------------------------------------------------
0aae9c8759 | Neil Moore | 2014-07-20 19:23:42 -0400

Make orb of electricity explode in tracers.
Ugh, please rewrite.

--------------------------------------------------------------------------------
9ca6b5b83b | Neil Moore | 2014-07-20 19:11:29 -0400

Remove some vestiges of Ice Storm.
zap_type isn't marshalled anywhere, so doesn't need save compat.

--------------------------------------------------------------------------------
b50ab8a915 | Neil Moore | 2014-07-20 19:11:19 -0400

Make explosive bolt tracers explode (#8810)
There are likely to be similar problems with some of the other beam types
that are checked by name (other than IMB and tree-affecting spells):
see the pbolt.name = "unimportant"; in player_tracer().

--------------------------------------------------------------------------------
9b074b279b | ontoclasm | 2014-07-20 23:26:04 +0100

Draconic spell icons

--------------------------------------------------------------------------------
9ff0d5b6ca | Nate Rook | 2014-07-20 15:32:15 -0400

Webtiles: Make visible() take a cell rather than coordinates.
All callers already have a cell; this leads to performance improvements
in those cases, since get() doesn't need to be called.

Previously calls to visible() took around 4.3ms per player move. Now
they take around 2.1ms. (V8)

[Committer's note: removed some now-unnecessary braces. -nfm]

--------------------------------------------------------------------------------
c0b7207e91 | Neil Moore | 2014-07-20 15:08:11 -0400

Make a return value clearer.

--------------------------------------------------------------------------------
c471ff7bd4 | Neil Moore | 2014-07-20 15:00:55 -0400

Remove an unused parameter.

--------------------------------------------------------------------------------
e4e15622d6 | Neil Moore | 2014-07-20 15:00:51 -0400

Simplify.

--------------------------------------------------------------------------------
e679d8dd28 | Neil Moore | 2014-07-20 14:35:35 -0400

Simplify.

--------------------------------------------------------------------------------
ed04b93cc8 | Neil Moore | 2014-07-20 14:32:00 -0400

Avoid an uninitialized variable and potential crash.

--------------------------------------------------------------------------------
adbab591ef | Corin Buchanan-Howland | 2014-07-20 14:07:42 -0400

Ru: Fix sacrifice hand on-mutation message races w/o hands.

--------------------------------------------------------------------------------
f509f120b5 | Corin Buchanan-Howland | 2014-07-20 13:17:35 -0400

Ru: fix piety breakpoints for minor abilities.
Turns out piety breakpoint 0 is 1*. Who knew?

--------------------------------------------------------------------------------
eb0416b546 | Corin Buchanan-Howland | 2014-07-20 13:01:43 -0400

Ru: Let wizard mode add no magic mutations
Sets all Ru mutations to use lower-case names so that they're usable
in wizard mode. Also adjusts the names to make sense in the contexts
they are used in (you have foo, corrupt yourself with foo).

--------------------------------------------------------------------------------
28522026f3 | Neil Moore | 2014-07-20 12:13:37 -0400

Don't push items through walls if we can help it (bh)

--------------------------------------------------------------------------------
89be177bdf | Neil Moore | 2014-07-20 12:13:36 -0400

Don't bias northwest in _dgn_find_nearest_square.

--------------------------------------------------------------------------------
268e8e17fb | Corin Buchanan-Howland | 2014-07-20 09:47:45 -0400

Ru: rescale sacrifice significance descriptions.

--------------------------------------------------------------------------------
eb426df566 | Corin Buchanan-Howland | 2014-07-20 09:32:50 -0400

Ru: Fix summoning evokers while under Sac Love
This makes all elemental evokers summon hostile elementals and fixes a
crash when attempting to evoke box of beasts when all possible beasts
selected hate you.

--------------------------------------------------------------------------------
2658bc32ab | Corin Buchanan-Howland | 2014-07-20 09:15:59 -0400

Ru: Clean up some ring/hand sac issues.
The list jewelry command expected an even number of ring slots, causing
it to not list odd remaining rings. Also, there was one check that was
aiming at slot seven instead of slot eight. Also, fixed pluralization
in claws/gloves interaction under hand sacrifice.

--------------------------------------------------------------------------------
f7c2ea05a8 | Corin Buchanan-Howland | 2014-07-20 08:43:07 -0400

Ru: Prevent Power Leap crash when failing to escape constriction.

--------------------------------------------------------------------------------
59224a814b | Corin Buchanan-Howland | 2014-07-20 08:35:04 -0400

Ru: Improve falter messaging.

--------------------------------------------------------------------------------
6dd880b03e | Corin Buchanan-Howland | 2014-07-19 23:03:14 -0400

(EXPERIMENTAL ONLY)Ru: Add tag for piety rescale.

--------------------------------------------------------------------------------
a0eb6ec50f | Corin Buchanan-Howland | 2014-07-19 22:55:23 -0400

Ru: Set max piety to 160, fix piety issues
Set Ru max piety equal to the 6 star piety threshold and rebalance all
piety gain and piety used in abilities around the change. Some sacrifices
weren't given the full reduction, mostly because they probably were
undervalued previously.

Also, this switches Ru piety to using set_piety to avoid the tapering used
in piety gain for other gods.

--------------------------------------------------------------------------------
09fe72fb53 | Corin Buchanan-Howland | 2014-07-19 21:52:13 -0400

Ru: Shorten ^ screen ability text.

--------------------------------------------------------------------------------
f7122bc90b | Corin Buchanan-Howland | 2014-07-19 21:48:30 -0400

Ru: Fix erroneous memorization message
This fixes the issue where players who sacrifice a school of magic are
told they can't memorize spells of that school because of their race.

--------------------------------------------------------------------------------
6cd345f3a1 | Corin Buchanan-Howland | 2014-07-19 21:13:26 -0400

Ru: shorten god description

--------------------------------------------------------------------------------
ae745b9303 | ontoclasm | 2014-07-20 00:16:29 +0100

Necro and Earth spell icons

--------------------------------------------------------------------------------
9981db6781 | reaverb | 2014-07-19 17:12:53 -0400

New Gozag wrath effect: potion failure

--------------------------------------------------------------------------------
9cfb7c0eb8 | Neil Moore | 2014-07-19 01:24:24 -0400

Revert "Mark gourmand useless for Gozag worshippers (#8801)."
It is still useful for blood potions and for vault-generated corpses.

This reverts commit 4fb28e2dc24408ca7f051719cf5fba8d97e4b4ea.

--------------------------------------------------------------------------------
4fb28e2dc2 | Neil Moore | 2014-07-19 00:59:01 -0400

Mark gourmand useless for Gozag worshippers (#8801).

--------------------------------------------------------------------------------
3ac68266cf | Neil Moore | 2014-07-19 00:35:51 -0400

Allow recolouring doors in vaults (#8466)
Mostly for pitsprint.  If the door is sealed and unsealed, it
unfortunately loses its colour.

--------------------------------------------------------------------------------
754d02eb32 | Neil Moore | 2014-07-18 23:39:05 -0400

Fix whitespace.

--------------------------------------------------------------------------------
b4cbbce690 | Neil Moore | 2014-07-18 23:38:04 -0400

Handle another engulf ender (#7437)
This time when your engulfer is trampled away.  We don't handle the case
where a monster's engulfer is trampled away, sorry: if we want to do
that, we should generalise the constriction code and remove the engulf
enchantment/duration.

Make clear_far_engulf() public to support this change.

--------------------------------------------------------------------------------
3000a8c17b | Neil Moore | 2014-07-18 23:15:26 -0400

Clear Engulf status when forcibly separated (#7437)
The status still doesn't end immediately when the engulfer dies etc.:
see bug #7394.

--------------------------------------------------------------------------------
f27e6ab4a1 | Neil Moore | 2014-07-18 22:39:49 -0400

Avoid another dead assignment (#8419)

--------------------------------------------------------------------------------
047404efb3 | Neil Moore | 2014-07-18 22:36:42 -0400

Simplify and avoid a dead assignment (#8419)

--------------------------------------------------------------------------------
34da297443 | Nicholas Feinberg | 2014-07-18 18:48:19 -0700

Make Volcano actually spawn its top-end enemy set

--------------------------------------------------------------------------------
f44659b347 | Nicholas Feinberg | 2014-07-18 18:46:10 -0700

Don't add an extra turn's delay to donning/doffing armour
Also fixes swapping armour with W being faster than T -> W.

--------------------------------------------------------------------------------
9073fdf322 | Nicholas Feinberg | 2014-07-18 18:42:59 -0700

Fix an incorrect comment

--------------------------------------------------------------------------------
46f8a76404 | Nicholas Feinberg | 2014-07-18 18:23:56 -0700

Don't instakill the player with antimagic
Flight gets a 11-aut respite from debuff_player(); this is... a
hack, but it's something. Forms didn't get this; this meant that
dispel-breath effects could instakill players in flying/floating
forms, or a player drinking !cancellation in the wrong place
would die instantly, without as much as a prompt.

This gives transformations the same delay as flight; all
transformations, since special-casing would confuse players.
Better solutions welcomed!

--------------------------------------------------------------------------------
fd3010e7d3 | Nicholas Feinberg | 2014-07-18 18:13:59 -0700

Make armour swapping take a fixed turn count

--------------------------------------------------------------------------------
ce9369710a | Chris Campbell | 2014-07-18 22:41:08 +0100

Update msysgit link in git quickstart guide
The new msysgit homepage links very prominently to the wrong installer
(containing only Git and no build tools), so link to the github releases
page instead where the netinstall links are more noticeable.

--------------------------------------------------------------------------------
4d68560d1f | Nicholas Feinberg | 2014-07-17 20:26:57 -0700

Make sling hunters autopickup stones by default (Happylisk)

--------------------------------------------------------------------------------
b452ec0a2d | Neil Moore | 2014-07-17 20:47:35 -0400

Make projectiles not hit themselves (Humans Among Us)
Don't use a reflexive pronoun for attacker == defender when the subject
isn't the attacker.

--------------------------------------------------------------------------------
7f5b64c0f8 | Chris Campbell | 2014-07-18 00:16:04 +0100

Remove a reference to Djinn, too (ontoclasm)

--------------------------------------------------------------------------------
ed655804b6 | Chris Campbell | 2014-07-18 00:00:25 +0100

Adjust volcano_overflow
It's unclear that players need to rest for the lava to recede, so always
leave a path around the outside leading back to the exit, and also always
make all of the created lava eventually recede to make sure it's not
possible to trap players. Make the lava rise a little more slowly,
slightly reduce the amount of loot, and add a few (flying) monsters.

--------------------------------------------------------------------------------
d300ebef55 | Chris Campbell | 2014-07-18 00:00:24 +0100

Remove a reference to Lava Orcs

--------------------------------------------------------------------------------
da5fd00df7 | ontoclasm | 2014-07-17 23:42:11 +0100

Tloc spell icons

--------------------------------------------------------------------------------
51de978abb | ontoclasm | 2014-07-17 17:24:45 +0100

Dewindowsificate.

--------------------------------------------------------------------------------
0cc14ab861 | ontoclasm | 2014-07-17 17:02:54 +0100

Don't copy an option unnecessarily

--------------------------------------------------------------------------------
50602807d2 | ontoclasm | 2014-07-17 16:48:28 +0100

Add an option to show player as a monster tile
Setting tile_show_player_species replaces the normal doll with the
player's race's monster tile.

--------------------------------------------------------------------------------
e2d3cf676d | Neil Moore | 2014-07-17 11:02:10 -0400

Use correct stats for reflected range attacks (#8794)
This should make reflected needles work while preserving the old blaming
behaviour (a player reflector gets kill credit but not god blame).  Needs
more thorough testing.

--------------------------------------------------------------------------------
baffb6df9d | Neil Moore | 2014-07-17 04:04:17 -0400

Make blocked beams fall back to visible paths if possible (#8804).
In this position, you would be able to see the kobold, but trying to
shoot it would say your line of fire is blocked by the wall:

  ..#@
  K.8.

If the statue weren't there the beam would avoid the wall perfectly
well.  Furthermore, the "Aim" prompt does in fact say "fire blocked by a
granite statue", not "wall"; only the tracer and beam reported the
opaque wall as the reason for losing LOF.

When no LOS_SOLID_SEE ray is found for a beam, now we first try falling
back to a LOS_DEFAULT ray; only if that too fails do we take the
straight-path fallback.

--------------------------------------------------------------------------------
05c403e465 | Nicholas Feinberg | 2014-07-16 21:44:27 -0700

Clean up transform.cc slightly
Use new species_can functions, and remove a dead clause.

--------------------------------------------------------------------------------
0e2069b342 | Nicholas Feinberg | 2014-07-16 21:21:56 -0700

Revert "make tree-form immune to Leda's"
783a5bfccb75 and a737d34e685053e3. Very special-case-y, not
not really necessary. (Plus, we never prevented turning into a
tree *after* casting Leda's...)

--------------------------------------------------------------------------------
8e077e5b3d | Nicholas Feinberg | 2014-07-16 20:35:12 -0700

Remove (grey) draconic trampling
Apparently, for the last four years, grey draconians had
trampling when and only when attacking from deep water into
a water tile.

Who knew?

--------------------------------------------------------------------------------
eb334f11d0 | Nicholas Feinberg | 2014-07-16 20:24:25 -0700

Document a function

--------------------------------------------------------------------------------
f74bb73639 | Nicholas Feinberg | 2014-07-16 20:24:22 -0700

Pull some functions into species.cc

--------------------------------------------------------------------------------
307182f3a5 | reaverb | 2014-07-16 20:01:24 -0400

Remove spaces at eol in the mailmap

--------------------------------------------------------------------------------
a041b3e6fc | reaverb | 2014-07-16 19:56:39 -0400

bobbens_ice_dragon_lair edits
Remove some odd use of stone, guarantee a path over water to the various
chambers of the vault, and make syntax a little clearer.

--------------------------------------------------------------------------------
2183352181 | ontoclasm | 2014-07-16 23:02:09 +0100

Lazy bottle blood icon

--------------------------------------------------------------------------------
4fe79cb500 | ontoclasm | 2014-07-16 23:02:06 +0100

Breath ability icons

--------------------------------------------------------------------------------
28e4b74229 | Nicholas Feinberg | 2014-07-15 21:30:01 -0700

Tidy

--------------------------------------------------------------------------------
a7f2fae4f2 | Nicholas Feinberg | 2014-07-15 21:23:02 -0700

Make offline tiles display only 52 tiles of inv

--------------------------------------------------------------------------------
e84140001b | Nicholas Feinberg | 2014-07-15 20:47:08 -0700

Triple crossbow tiles (Bloax)

--------------------------------------------------------------------------------
46035ab812 | Nicholas Feinberg | 2014-07-15 20:45:49 -0700

Use AUTOMATIC_HIT for a ranged tracer

--------------------------------------------------------------------------------
01a53fc3f9 | Tanner Swett | 2014-07-15 20:30:41 -0700

Switch backwards messages in beam.cc
In _destroy_wall_msg in beam.cc, the message for a visible orcish idol
did not describe its appearance, whereas the message for an invisible
idol did describe its appearance.  This swaps the two messages around.

--------------------------------------------------------------------------------
2ef4ad9ddb | Brendan Hickey | 2014-07-16 02:42:42 +0000

Add a utility script for generating zombie tiles.

--------------------------------------------------------------------------------
bd9e66e9fc | ontoclasm | 2014-07-15 23:14:51 +0100

Hellfire tile (Bloax)

--------------------------------------------------------------------------------
b18dd364ad | Chris Campbell | 2014-07-15 22:26:53 +0100

Actually fix hellfire colouring and tiles
34a3de9 actually only made smitey hellfire lightred, and the commit it
references only affected player hellfire! Unless there is a secret 4th
hellfire codepath this should now work properly.

--------------------------------------------------------------------------------
296c9a1a2a | ontoclasm | 2014-07-15 15:54:08 +0100

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
da4b28bb0a | Neil Moore | 2014-07-15 10:21:01 -0400

More code to data: pronoun declensions.
Also improve a comment by making some examples less ambiguous.

--------------------------------------------------------------------------------
3be80b4b66 | Neil Moore | 2014-07-15 10:02:03 -0400

Allow Felids to wield non-weapons again (#8797)

--------------------------------------------------------------------------------
e243e68ce9 | gammafunk | 2014-07-15 06:50:59 -0500

Fix mapstat status output

--------------------------------------------------------------------------------
497b318360 | ontoclasm | 2014-07-15 12:10:38 +0100

Leech tiles (Bloax)

--------------------------------------------------------------------------------
542087aabc | ontoclasm | 2014-07-15 12:05:58 +0100

Sandblast icon stray pixels

--------------------------------------------------------------------------------
a6ffd596cd | gammafunk | 2014-07-15 06:02:38 -0500

Don't use scientific notation for objstat brand reporting

--------------------------------------------------------------------------------
cf67ce1895 | gammafunk | 2014-07-15 06:02:35 -0500

Clean up the failure handling of mapstat and objstat

--------------------------------------------------------------------------------
11ddf13ad3 | gammafunk | 2014-07-15 06:01:39 -0500

Add min, max, and standard deviation to objstat number fields
For the basic counting field of each item and monster type, find the
minimum, maximum, and sample standard deviation over the iterations.

--------------------------------------------------------------------------------
6b722515e4 | gammafunk | 2014-07-15 06:00:27 -0500

Remove an unneeded objstat field
Since contaminated chunks are gone, chunk nutrition is the same for
everyone.

--------------------------------------------------------------------------------
b4a268013b | Nicholas Feinberg | 2014-07-14 23:14:37 -0700

Add placeholder tiles for hand/triple crossbows
They Came From rltiles/UNUSED! (With some minor modifications
in one obvious case.)

Also make the new ranged weapons use generic paperdoll sprites
for now. (Much better than them not showing up at all!)

--------------------------------------------------------------------------------
a61266d5cd | Neil Moore | 2014-07-15 02:12:03 -0400

Don't give portal messages after excursions (#2814)
Also #5511, #6200, #8408, #8779, and #8790.

--------------------------------------------------------------------------------
20e1f0bd18 | Neil Moore | 2014-07-15 02:07:32 -0400

Fix compilation, de-inline a function.
There's no reason for this function, called only a few times at
init, to be inline.  More importantly, it used std::remove_if without
including <algorithm>.

--------------------------------------------------------------------------------
67f3c00bc4 | Nicholas Feinberg | 2014-07-14 22:56:36 -0700

Add ghost crab sprite (Bloax)
With minor modifications to make it a little ghostlier,
as it appears in-game.

--------------------------------------------------------------------------------
5b2a091048 | Nicholas Feinberg | 2014-07-14 22:33:13 -0700

Improve drowning messages for fungi
And trees.

--------------------------------------------------------------------------------
24c7d3cb29 | Neil Moore | 2014-07-15 00:18:01 -0400

Add ChangeAj and mursu to credits.

--------------------------------------------------------------------------------
0975d26348 | Neil Moore | 2014-07-15 00:11:27 -0400

Add tswett to mailmap and credits.

--------------------------------------------------------------------------------
da5f0e3998 | Tanner Swett | 2014-07-14 21:00:33 -0700

Make str_to_weapon use existing item data

--------------------------------------------------------------------------------
d078c632a9 | Neil Moore | 2014-07-14 22:34:44 -0400

Lua up an altar: Blood for the terrible Demon-God! (someflowers)
The original suggestion was to have the fountains turn on when the
player joins Kiku, but it is simpler to do it upon stepping onto the
altar instead.  That also avoids questions about what to do if the
player already worships Kiku.

--------------------------------------------------------------------------------
d3366e803b | Neil Moore | 2014-07-14 19:46:57 -0400

Don't make adjacent archers melee 1/9 of the time (#8795, Grunt)
They'll still switch to melee if they run out of ammo etc.

--------------------------------------------------------------------------------
acb6860397 | Neil Moore | 2014-07-14 14:25:20 -0400

Make invisible monster indicator visible again.

--------------------------------------------------------------------------------
a737d34e68 | Neil Moore | 2014-07-14 14:12:48 -0400

Prevent casting Leda's in tree form.

--------------------------------------------------------------------------------
783a5bfccb | Neil Moore | 2014-07-14 14:05:02 -0400

Make tree form extra-balanced and immune to Leda's.
The latter to match stationary monsters.

--------------------------------------------------------------------------------
fb1bfb9292 | Neil Moore | 2014-07-14 13:20:15 -0400

Don't crash when entering Vaults (#8793)

--------------------------------------------------------------------------------
c97130181c | Neil Moore | 2014-07-14 11:28:23 -0400

Fix reflected attack damage (PleasingFungus, doh)

--------------------------------------------------------------------------------
97a1effaef | Neil Moore | 2014-07-14 11:13:26 -0400

Don't crash when reflecting a missile at a monster (#8792)

--------------------------------------------------------------------------------
403526d07d | Neil Moore | 2014-07-14 10:26:47 -0400

Comment missing_ghost (ontoclasm)

--------------------------------------------------------------------------------
89e5758a5c | Neil Moore | 2014-07-14 10:24:22 -0400

Update new-dev mailmap instructions.

--------------------------------------------------------------------------------
85a9e77e0a | Neil Moore | 2014-07-14 10:13:39 -0400

Handle feature-data.h in db_lint.

--------------------------------------------------------------------------------
844227159e | Neil Moore | 2014-07-14 10:02:13 -0400

Correct a few feature name typos.

--------------------------------------------------------------------------------
43cca0e4b2 | Neil Moore | 2014-07-14 09:56:39 -0400

Add feature-data.h to MSVC project.

--------------------------------------------------------------------------------
3676b4b628 | Shmuale Mark | 2014-07-14 09:23:57 -0400

Move more feature name data to feature-data.h.

--------------------------------------------------------------------------------
3ee8b5ad95 | Shmuale Mark | 2014-07-14 09:03:18 -0400

Move feature name data to feature-data.h.

--------------------------------------------------------------------------------
7f423cbf4a | Shmuale Mark | 2014-07-14 08:57:04 -0400

Reorder and document feature.cc.

--------------------------------------------------------------------------------
fff14fb3be | Shmuale Mark | 2014-07-14 08:47:43 -0400

Separate feature data into feature-data.h.

--------------------------------------------------------------------------------
dc4f2bac32 | Shmuale Mark | 2014-07-14 08:47:41 -0400

Don't move the abyssal stair enum on save bump.
Its place by sealed stairs makes sense; presumably it was moved up earlier
back when it had DCHAR_ARCH.

--------------------------------------------------------------------------------
1ed3c6d39c | Nicholas Feinberg | 2014-07-13 22:04:55 -0700

Add an icon for draining

--------------------------------------------------------------------------------
0d6a310c8a | Nicholas Feinberg | 2014-07-13 21:44:08 -0700

Make draining decrease monster attack damage

--------------------------------------------------------------------------------
4d463b29f7 | Nicholas Feinberg | 2014-07-13 21:29:59 -0700

Remove a strange and unused case from AF_DRAIN_XP
It would only apply if a monster had a 0-damage AF_DRAIN_XP
attack specification, which, as far as I can tell, can't happen?
(The only way it could occur was if a creature with a 0-damage
attack got spectralized... but I don't think we especially care
about giving those an extra-high drain chance?)

--------------------------------------------------------------------------------
257f141273 | Nicholas Feinberg | 2014-07-13 20:13:21 -0700

Make draining temporary (for monsters)
The hit dice-reduction effect of draining has historically had
several problems. It reduced monsters' maximum hp, which made it
look like they were getting *less* injured, since they had a
higher proportion of hp remaining. It lowered monster XP & piety
gains, which was irrelevant but misled new players who somehow
learned about it. It occasionally led to "degenerate" hit-and-run
tactics.

And most damningly of all, it hardly ever mattered - it
triggered on ~13% of hits, which meant that on low HD monsters
the extra damage would kill them before the effect was
noticeable, and against high HD monsters, the effect would only
ever be noticeable at all with the aforementioned hit-and-run
tactics.

So, to fix those problems, draining now gives a "drained" status,
that reduces monster HD for most combat-related purposes
(spellcasting, accuracy, damage, etc.), but not max hp, xp, or
piety. This is temporary, but will last 20-30 turns, and
refreshes every time the drain triggers - essentially, it should
last until you kill the monster, unless you run away.

The temp-status is now applied to the monster every time they get
drained; the chance of the drain brand activating has been reduced
to 1/2, from 2/3. This should focus the effects of the brand more
on the unique part of it, the draining/weakening effect.

As a bonus, this also means that players can no longer have their
followers permanently weakened by draining effects. Beogh buff!

--------------------------------------------------------------------------------
ec5d89f748 | Nicholas Feinberg | 2014-07-13 20:11:38 -0700

Add current hd display to debug_stethoscope()

--------------------------------------------------------------------------------
672c312729 | Nicholas Feinberg | 2014-07-13 18:51:55 -0700

More ranged tweaks
Crossbow & sling bullet damage slightly down; longbow base delay,
also slightly down.

--------------------------------------------------------------------------------
61373806d7 | Nicholas Feinberg | 2014-07-13 17:19:03 -0700

Reorganize ammo damage descriptions (|amethyst)

--------------------------------------------------------------------------------
d916679130 | Nicholas Feinberg | 2014-07-13 17:19:03 -0700

Partially refactor tendril_disarm()

--------------------------------------------------------------------------------
d22ebac678 | Nicholas Feinberg | 2014-07-13 17:19:02 -0700

Separate 'permanent' and 'temporary' monster hit dice
As part of a wider scheme to make draining temporary.

--------------------------------------------------------------------------------
5562ea36cc | Neil Moore | 2014-07-13 20:17:54 -0400

Generate triple crossbows like greatslings (PleasingFungus)

--------------------------------------------------------------------------------
c88ffbc790 | Neil Moore | 2014-07-13 19:25:06 -0400

Remove crawl-ref-cia, add mailmap.

--------------------------------------------------------------------------------
a361405b4c | Chris Campbell | 2014-07-13 21:26:07 +0100

Remove a leftover reference to Qazlal's 6* gift (Kvaak)

--------------------------------------------------------------------------------
c808fc2818 | Nicholas Feinberg | 2014-07-13 11:56:00 -0700

Tweak some ranged weapon monsters
Make deep elf master archers & centaur warriors a little better
to compensate for their weapons being much slower now; nudge
Joseph slightly downward, to adjust for his sling now being
much better.

--------------------------------------------------------------------------------
527e4c3afe | Nicholas Feinberg | 2014-07-13 11:15:33 -0700

Clean up more door/fountain mimic code (Zaba, |amethyst)

--------------------------------------------------------------------------------
14d464dfd1 | Nicholas Feinberg | 2014-07-13 10:49:32 -0700

Remove support for door-snapping attacks
Now that door & fountain mimics are no more.

--------------------------------------------------------------------------------
9a82e6e692 | Neil Moore | 2014-07-13 13:46:05 -0400

Crush a ghost.
With optipng + advpng.

--------------------------------------------------------------------------------
b291e5b711 | Nicholas Feinberg | 2014-07-13 10:41:36 -0700

Add a placeholder ghost sprite

--------------------------------------------------------------------------------
27dff2131d | Nicholas Feinberg | 2014-07-13 10:41:36 -0700

Changelog through 0.15-a0-2067-g0b545c0

--------------------------------------------------------------------------------
fdca960661 | Neil Moore | 2014-07-13 12:58:54 -0400

Don't link against both contrib and system libpcre.
This broke CDO builds.

--------------------------------------------------------------------------------
0b545c0a44 | Nicholas Feinberg | 2014-07-13 09:12:30 -0700

Tweak triple crossbows
Set the base delay to 23 (26 skill required for mindelay), to
make them a little less superior to bardiches. Also tweak the
base damage up by 1.

Sniper stays at 27 base delay & goes back to +15; it was looking
a little sad at mindelay 13 (really 13.5) as a "mere" +10.

--------------------------------------------------------------------------------
cd4f2c0cb7 | Nicholas Feinberg | 2014-07-13 09:07:34 -0700

Make potions of cancellation a little more consistent
There was a very old special case preventing !cancel from
removing Slow caused by berserk. This was not only unintuitive
to players, but also inconsistent - the reasoning was that we
shouldn't affect nonmagical slowing, but what about slowing
from curare, which the potion does affect? What about slowing
which just happens to coincide with exhaust from another source?

Simpler to make it operate on a per-status-effect basis, rather
than trying to divine the original source of effects from
inadquate information.

--------------------------------------------------------------------------------
3bc5fa64d1 | Corin Buchanan-Howland | 2014-07-13 11:12:53 -0400

Ru: Stifle extraneous horror status and messages
Stifle horror messages when horror level decreases and also don't
give horror for out of sight enemies.

--------------------------------------------------------------------------------
366234d786 | Neil Moore | 2014-07-13 05:04:20 -0400

Remove some duplicate code.
We had a template to compare pairs by their second member, and two
separate classes to do the same thing for specific pair types.  Remove
the non-generic versions, and move the template to libutil.h.

--------------------------------------------------------------------------------
8caa665a5b | Neil Moore | 2014-07-13 05:01:35 -0400

More functionobjecticide.
If there is no state, function objects are usually just extra verbosity
compared to a function pointer.

--------------------------------------------------------------------------------
7a1f68f539 | Neil Moore | 2014-07-13 04:14:01 -0400

Compress blank lines.
All the sequences of three or more blank lines.  If they looked like
they separated sections, use two lines; otherwise use one.

--------------------------------------------------------------------------------
acd6406a09 | Neil Moore | 2014-07-13 04:05:45 -0400

Unbrace.

--------------------------------------------------------------------------------
d84d17faf4 | Neil Moore | 2014-07-13 03:54:21 -0400

Don't crash when wielding non-weapons with a shield.

--------------------------------------------------------------------------------
8d519bde22 | Neil Moore | 2014-07-13 03:39:45 -0400

Fix tiles compilation.

--------------------------------------------------------------------------------
86b1486b02 | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Factor out ammo_type_destroy_chance() into Missile_prop[]
Code, data

--------------------------------------------------------------------------------
a0d546fd1e | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Factor weapon_rarity() out into Weapon_prop[]
In a desperate, doomed attempt to separate code and data.

--------------------------------------------------------------------------------
cfb61905c5 | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Rebalance crossbows
Again as a result of the ranged weapons rebalance, crossbows
needed to change. The analogy here is long blades' to bows'
m&f; better return on skill investment & a higher power cap,
but rarer.

Hand crossbows are added as a starting type, "something like an
armour-piercing dagger"; crossbows are upgraded to arbalests
(a little worse than a glaive), and a new rare triple crossbow
type is added on the top end (a little worse than a bardiche,
though with a lower skill cost.) Please note that the triple
crossbow historically existed & is extremely verisimilitudinous.

Hellfire is now an arbalest, and Sniper is now a triple crossbow
(well, a "heavy crossbow", since it has mindelay of 27 instead of
22, and since I didn't want to have to change the sprite).

All crossbows have a mindelay of at least 1.0; this is an attempt
to differentiate them. Possibly something more ambitious will be
attempted in 1.6, but this is a first step.

--------------------------------------------------------------------------------
9b6b733bcc | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Refactor weapon_skill()
This function was misleadingly named (it only provided the skill
used for melee weapons, not ranged weapons), and incomplete;
code along the lines of "is_ranged_weapon(*it) ? range_skill(*it)
: weapon_skill(*it)" was scattered in about half a dozen different
functions. I've corrected both of those problems (renaming weapon_
skill() to melee_skill() and adding item_weapon_skill()), and also
possibly fixed two bugs in the process - an l_you.cc function that
claimed to provide the skill used for the starting weapon (but
actually only gave the melee skill), and unrand creation code that
checked if a potential unrand swap used the same (melee) skill as
the weapon type being generated.

--------------------------------------------------------------------------------
3663d864c8 | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Don't check to see if weapons use SK_SLINGS in melee

--------------------------------------------------------------------------------
ef5102b7e8 | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Make greatslings 2-handed for spriggans
Since they can't use longbows, there's not much else that compares
for launcher damage.

--------------------------------------------------------------------------------
8dcdaa9893 | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Describe launchers' handedness

--------------------------------------------------------------------------------
37bb87b743 | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Remove code for formicids wielding weapons 2-handed

--------------------------------------------------------------------------------
1c345a4aaf | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Refactor duplicate code from can_wield()

--------------------------------------------------------------------------------
fed8404d29 | Nicholas Feinberg | 2014-07-13 00:33:57 -0700

Refactor item handedness code
Instead of specifying HANDS_ONE or HANDS_TWO in Weapon_prop[]
(which were... misleading at best), there's now a min_2h_size
and min_1h_size field. The former controls the minimum size a
player or monster must be to wield the weapon at all; the latter
is the minimum size required to wield it with one hand.

This means that giants can now wield daggers (unlike before);
if necessary, a max_size field can be added, but this seems a
low priority to preserve.

This breaks formatting of Weapon_prop[] a bit; apologies.

--------------------------------------------------------------------------------
533b47cd6b | Nicholas Feinberg | 2014-07-13 00:33:56 -0700

Remove code for monster formicids wielding giant clubs

--------------------------------------------------------------------------------
236bd0c7ac | Nicholas Feinberg | 2014-07-13 00:33:56 -0700

Remove code for wielding corpses

--------------------------------------------------------------------------------
bb0a4a2804 | Nicholas Feinberg | 2014-07-13 00:33:56 -0700

Ruin some perfectly good vaults
A number of the classic minivaults were really inappropriate for
Lair, minivault_27 being perhaps the most obnoxious offender.
ruin_lair seemed appropriate.

--------------------------------------------------------------------------------
3971bd2025 | gammafunk | 2014-07-13 02:18:49 -0500

Indicate the summarized levels in objstat output
Also clean up some newlines in the output.

--------------------------------------------------------------------------------
cdaee41ae9 | Neil Moore | 2014-07-12 21:53:57 -0400

Restore some mermaid equipment.
This partially reverts commit 56987e6cc911b20d218de2ba53954a0f6bc081bf.

--------------------------------------------------------------------------------
906cad3892 | Corin Buchanan-Howland | 2014-07-12 21:41:55 -0400

Ru: fix bad logic in who can get durability sacrifices

--------------------------------------------------------------------------------
56987e6cc9 | Neil Moore | 2014-07-12 21:39:27 -0400

Remove some mermaid/siren equipment.

--------------------------------------------------------------------------------
b125e2f67e | Neil Moore | 2014-07-12 21:32:44 -0400

Only use the contrib lib and include directory if building contribs.
At least some linkers complain about nonexistent -L directories.

--------------------------------------------------------------------------------
3d5dc73422 | Neil Moore | 2014-07-12 20:58:10 -0400

Ignore existing clouds in hostiles-in-range checks (#8784)
You still can't target the spots with clouds, but you might want to aim
at a nearby spot that a clouded monster is about to move to.

--------------------------------------------------------------------------------
ac4b98f7f1 | Neil Moore | 2014-07-12 20:56:08 -0400

Avoid conflict with libraries' HAVE_*

--------------------------------------------------------------------------------
758800ef84 | Chris Campbell | 2014-07-13 01:22:32 +0100

Don't let sirens and water nymphs use equipment
Sirens don't have any direct attacks, and water nymphs have no AT_HIT
attack so allowing them to pick up and use weapons has strange results.

--------------------------------------------------------------------------------
2744e81ddb | Chris Campbell | 2014-07-13 01:22:31 +0100

Remove Qazlal's permanent resistance gift
A simple resistance is a very boring capstone gift, especially compared
to Qazlal's existing temporary resistances which have much more
interesting interactions, and the powerful active abilities. Allowing a
choice of resistance also resulted in AC almost always being the best
option.

--------------------------------------------------------------------------------
49e75c23ea | Chris Campbell | 2014-07-13 01:22:30 +0100

Simplify a check for monsters following orders
mons_is_conjured() covers all of these and some other monsters that
shouldn't follow orders (like vortices if they weren't always confused
anyway).

--------------------------------------------------------------------------------
5f9ff785b0 | Corin Buchanan-Howland | 2014-07-12 19:32:36 -0400

Ru: Prevent conjured minions from turning hostile on Sacrifice Love.
Ball Lightnings, Fulminant Prisms, Battlespheres, and Spectral Weapons
will no longer generate hostile to you and create weird situations after
you sacrifice love.

--------------------------------------------------------------------------------
6bb86a0326 | Neil Moore | 2014-07-12 18:54:53 -0400

Give pigs trotters.
Burning your own trotters might not be such a smart idea!

A thick slime forms on your front trotters.

--------------------------------------------------------------------------------
b7313ec607 | Corin Buchanan-Howland | 2014-07-12 18:51:27 -0400

Ru: redraw screen after sacrifices.

--------------------------------------------------------------------------------
8f340259c3 | Corin Buchanan-Howland | 2014-07-12 18:41:42 -0400

Ru: Fix some language around Sac Limb
Fixed several instances of Sacrifice Hand not correctly changing
mentions of the sacrificed limb to singular case. Also, switches
Blades status (Blade Hands) to Blade and Blade status (Sure Blade)
to SBlade.

--------------------------------------------------------------------------------
0f24ae2aa1 | Corin Buchanan-Howland | 2014-07-12 17:15:54 -0400

Ru: Add wizard command to force a new sacrifice offer.

--------------------------------------------------------------------------------
6a79baed60 | Corin Buchanan-Howland | 2014-07-12 17:03:28 -0400

Ru: adding ontoclasm's excellent ability tiles.

--------------------------------------------------------------------------------
5428f20966 | Neil Moore | 2014-07-12 16:49:35 -0400

Remove darts and dart traps from documentation (#8783)

--------------------------------------------------------------------------------
c79dab4f1f | reaverb | 2014-07-12 16:31:58 -0400

Remove sharks from the game
They had all the same problems as big fish or other melee liquid-only
monsters.

--------------------------------------------------------------------------------
076df7997a | reaverb | 2014-07-12 16:31:52 -0400

Remove sharks from vaults
Somebody might want to look at my sprint edits, I had PleasingFungus
look them over but I'm still unsure how well they work.

--------------------------------------------------------------------------------
18de428f80 | Neil Moore | 2014-07-12 15:16:37 -0400

Make boots block the effects of hooves.
But not centaur bardings, since those don't cover the feet.
This applies to both the kick attack and the stealth penalty.

--------------------------------------------------------------------------------
53f97d336f | Neil Moore | 2014-07-12 12:59:32 -0400

Avoid a signed/unsigned warning.

--------------------------------------------------------------------------------
2727fff9fb | Neil Moore | 2014-07-12 12:41:05 -0400

Use find_earliest_match for wizmode monster lookup (&M etc)

--------------------------------------------------------------------------------
241103d554 | Neil Moore | 2014-07-12 12:40:59 -0400

Add a useful predicate for find_earliest_match.

--------------------------------------------------------------------------------
dc9adda271 | Neil Moore | 2014-07-12 12:40:59 -0400

Don't place random monsters with &M<one or two letters>
We were calling mlist.get_monster(0), but get_monster returned a random
monster because the index 0 was out of bounds.

--------------------------------------------------------------------------------
6a3dccaebf | Neil Moore | 2014-07-12 12:40:59 -0400

Prefer closer prefixes in find_earliest_match.
If multiple strings contain the spec as a prefix, choose the shortest
such string, so that a spec of "vamp" prefers "vampire" to "vampire
bat".

--------------------------------------------------------------------------------
342abdf7a4 | Neil Moore | 2014-07-12 11:17:44 -0400

Don't crash on ?/inecronomicon.
Or any other book; 0.15-a0-2006-g1cf06be made spell_by_name return
NUM_SPELLS rather than SPELL_NO_SPELL.  Fixing up the return in
spell_by_name rather than adding yet another parameter to
find_earliest_match.

--------------------------------------------------------------------------------
00f2e2e4d8 | gammafunk | 2014-07-12 06:12:15 -0500

Remove an unnecessary include

--------------------------------------------------------------------------------
632f01bb31 | gammafunk | 2014-07-12 05:50:33 -0500

Add an objstat item field for the number held by a monster.
For the relevant item types, how many were held by a monster.

--------------------------------------------------------------------------------
d3fc6c344c | gammafunk | 2014-07-12 05:50:05 -0500

Record objects for objstat after the level builder has completed
Previously we were recording during the monster and item creation
functions, but this resulted in some excess counting, due to
(probably) objects placed in vaults on levels that were eventually
rejected. We now iterate over objects after the level generation is
complete.

--------------------------------------------------------------------------------
f27aa03943 | gammafunk | 2014-07-12 05:38:38 -0500

Give correct examples for -mapstat in the command-line help

--------------------------------------------------------------------------------
2a19b96610 | Nicholas Feinberg | 2014-07-11 21:42:51 -0700

Don't spawn over 500 fruit in a vault

--------------------------------------------------------------------------------
0f135746da | Nicholas Feinberg | 2014-07-11 20:56:43 -0700

Add exactly one (1) comma to a vampire level-up message
And improve some code formatting slightly.

--------------------------------------------------------------------------------
daae54a413 | Nicholas Feinberg | 2014-07-11 20:56:37 -0700

Improve sleep code
Refactor put_to_sleep() and hibernate() together. Also improve
messenging for resisting repeated sleep (by replacing a generic
canned message).

--------------------------------------------------------------------------------
b844340307 | Corin Buchanan-Howland | 2014-07-11 20:40:57 -0400

Ru: Don't offer Sac Durability to Dr/Fe/Op
Stop offering Sac Durability (no training Armour) to races that already
can't train Armour. Also, adjust the piety bonus for sacrificing both
Durability and Nimbleness, or Nimbleness alone when you're one of the
above species.

--------------------------------------------------------------------------------
2d5aed0d22 | Corin Buchanan-Howland | 2014-07-11 20:00:21 -0400

Ru: Don't slow toadstools.

--------------------------------------------------------------------------------
f7820ed0c4 | Corin Buchanan-Howland | 2014-07-11 19:51:54 -0400

Ru: Mark ring of stealth useless under Sac Stealth

--------------------------------------------------------------------------------
a94265a195 | Corin Buchanan-Howland | 2014-07-11 19:46:14 -0400

Ru: fix spacing in two comments.

--------------------------------------------------------------------------------
9fff7c9c45 | Corin Buchanan-Howland | 2014-07-11 19:41:36 -0400

Ru: Disable magic yaks and make frost giants hit themselves
Mistakes in implementing Ru's * power meant that melee attacking monsters
would rarely be redirected correctly, and spell-not-having monsters
would claim to be trying and failing to cast spells at you -- and then
skip their turn. This fixes those things. And it's pretty sweet.

--------------------------------------------------------------------------------
30d9616ef6 | Neil Moore | 2014-07-11 17:35:56 -0400

Only define EXPERIMENTAL_BRANCH for USE_DGAMELAUNCH builds.
This way we don't force a full rebuild when switching branches, unless
it is necessary for online logfiles.

--------------------------------------------------------------------------------
c3be324a4c | Chris Campbell | 2014-07-11 19:18:35 +0100

Revert "Make closing doors take 13 aut instead of 10"
It's very unclear that closing a door would be an action that takes a special
amount of time, and if door-dancing specifically needs addressing separately
from kiting/pillar-dancing issues generally, there are probably better
approaches (such as adjusting chances/noise levels of doors creaking, for
example).

--------------------------------------------------------------------------------
f806da227c | Chris Campbell | 2014-07-11 11:46:30 +0100

Fix rounding when closing doors

--------------------------------------------------------------------------------
65a70f904c | Neil Moore | 2014-07-11 02:49:44 -0400

Replace some function objects with functions.
This is a source code simplification only: ptr_fun still turns them into
the function objects that bind2nd needs.

--------------------------------------------------------------------------------
9a0c33d082 | Neil Moore | 2014-07-11 02:16:59 -0400

Remove an extra break.

--------------------------------------------------------------------------------
043111f78d | Neil Moore | 2014-07-11 02:14:13 -0400

Revert "Don't autotravel through monsters caught in nets"
0.15-a0-2006-g1cf06be handles this in a better way, with a better
message: "Your orc is caught in a web!", rather than "Partly explored,
can't reach some items and places".

This reverts commit 4e06f6f60faef46939f77dc610dad1874e619572.

--------------------------------------------------------------------------------
119cbf9ebd | Neil Moore | 2014-07-11 02:12:20 -0400

Stop exploring/running when cancelling ally swap (#8768)

--------------------------------------------------------------------------------
603073ef4d | Nicholas Feinberg | 2014-07-10 22:57:30 -0700

Display less misleading sling base damage

--------------------------------------------------------------------------------
f59e580eef | Nicholas Feinberg | 2014-07-10 22:57:30 -0700

De-obfuscate chaos ammo description code

--------------------------------------------------------------------------------
669a9351b1 | Nicholas Feinberg | 2014-07-10 22:57:30 -0700

Display weapon damage on ammo
Now that it actually means something reasonable comprehensible.

Also refactor some related mulch-description code.

--------------------------------------------------------------------------------
94659acff8 | Nicholas Feinberg | 2014-07-10 22:57:30 -0700

Partially refactor mulching

--------------------------------------------------------------------------------
af8ee80d61 | Nicholas Feinberg | 2014-07-10 22:57:30 -0700

Remove an unused variable

--------------------------------------------------------------------------------
7eaa6eb283 | Nicholas Feinberg | 2014-07-10 22:57:26 -0700

Refactor
Make is_range_weapon and is_ranged_weapon_type use the same code.

--------------------------------------------------------------------------------
1cf06be6ea | Neil Moore | 2014-07-11 01:02:22 -0400

Refactor god and spell search using templates.

--------------------------------------------------------------------------------
9555e25a93 | Neil Moore | 2014-07-11 00:11:29 -0400

Improve spell name lookup.
As with the god-name lookup in 0.15-a0-1995-g7e6aeab, prefer names where
the substring occurs earlier.  The only difference is that here we prefer
exact matches to prefixes, so that the order of Blink and Blink Other
does not matter when the user searches for "Blink".

--------------------------------------------------------------------------------
21f9508e46 | Neil Moore | 2014-07-10 23:51:49 -0400

Improve a comment.

--------------------------------------------------------------------------------
ae4456353a | Neil Moore | 2014-07-10 23:01:39 -0400

Simplify further (Grunt)

--------------------------------------------------------------------------------
26a88daec5 | Nicholas Feinberg | 2014-07-10 19:56:57 -0700

Simplify. (Grunt)

--------------------------------------------------------------------------------
2d02254e2a | Nicholas Feinberg | 2014-07-10 19:56:57 -0700

Remove Davy Jones' Locker (let monster undead drown)
Previously they'd sink to the bottom of deep water & lurk
forever. Thematic, but extremely unintuitive and not really
accomplishing much. It'd be cool to let them move slowly through
deep water, maybe, but hiding at the bottom was clearly the wrong
answer.

Also touch up player drowning messages a little bit, and fix one
that would never show up.

--------------------------------------------------------------------------------
277cf9511b | Nicholas Feinberg | 2014-07-10 19:56:57 -0700

Make closing doors take 13 aut instead of 10
To discourage "doordancing".

--------------------------------------------------------------------------------
cf9921f951 | Mikko Vepsalainen | 2014-07-10 22:36:26 -0400

Remove unused variable.

--------------------------------------------------------------------------------
b5d75e044a | Mikko Vepsalainen | 2014-07-10 22:36:26 -0400

Respect level generation mask when placing Abyss features.

--------------------------------------------------------------------------------
cd11dfcb32 | Mikko Vepsalainen | 2014-07-10 22:36:26 -0400

Preserve Abyssal stairs when placing exit vaults.

--------------------------------------------------------------------------------
ee241d86bd | Mikko Vepsalainen | 2014-07-10 22:36:26 -0400

When Abyss shifts, also shift player's map_seen information, and forget the old 
areas. Mostly fixes #8625.

--------------------------------------------------------------------------------
a379ea5e80 | Neil Moore | 2014-07-10 17:48:04 -0400

Don't crash when converting to Ru a second time (reaverb)

--------------------------------------------------------------------------------
c875e62415 | reaverb | 2014-07-10 16:55:37 -0400

Merge branch 'master' into iashol

--------------------------------------------------------------------------------
70a4c9e014 | reaverb | 2014-07-10 16:38:58 -0400

Fix braces

--------------------------------------------------------------------------------
f50cd79e55 | reaverb | 2014-07-10 16:38:06 -0400

Merge branch 'master' into iashol
Conflicts:
	crawl-ref/source/actor.cc
	crawl-ref/source/godpassive.cc
	crawl-ref/source/tags.cc

--------------------------------------------------------------------------------
7e6aeabbf2 | Neil Moore | 2014-07-10 16:33:41 -0400

Fix matching in zotdef/wizmode altar placement.
Now find the god with the earliest match to the input string, rather
than the first god that has a match.  Now &_a will give you Ashenzari,
not Kikubaaqudgha.

--------------------------------------------------------------------------------
c84488fd05 | Neil Moore | 2014-07-10 12:01:16 -0400

Remove an unused variable.

--------------------------------------------------------------------------------
2c6efd2dad | Neil Moore | 2014-07-10 11:42:24 -0400

Forget correct spells with Sacrifice Arcana.

--------------------------------------------------------------------------------
8844f9d720 | Nicholas Feinberg | 2014-07-10 08:34:59 -0700

Partially refactor _weapon_to_str

--------------------------------------------------------------------------------
dc23beb9a4 | Nicholas Feinberg | 2014-07-10 08:34:59 -0700

Add messaging for nets bouncing off giant monsters
The phrasing isn't ideal, but now at least players will have some
idea what's going on.

--------------------------------------------------------------------------------
f1e799b432 | Nicholas Feinberg | 2014-07-10 08:34:59 -0700

Remove dart(ing out from under net)s
It was a weird legacy special case that didn't really make any
sense. If we wanted to give flying monsters or the player extra
EV, we could do so! (Also, it might mislead players into thinking
that fliers were still completely immune to being netted; bad UI.)

--------------------------------------------------------------------------------
9e48456705 | Nicholas Feinberg | 2014-07-10 08:34:59 -0700

Don't guarantee greatsling generation in Shoals
Since it's supposed to be a lajatang-rarity weapon.

Objstat suggests this gives a little less than a 50% chance of
seeing a greatsling in Shoals, which seems more reasonable.

--------------------------------------------------------------------------------
7d7c4397ac | Shmuale Mark | 2014-07-10 08:26:52 -0400

Comment fixes.

--------------------------------------------------------------------------------
cca29d12c2 | Shmuale Mark | 2014-07-10 08:26:07 -0400

Remove a problematic vault.
Even if monsters behind glass weren't overused in general, it certainly is
in arrival vaults.

I was thinking of making it a panlord vault but decided it would be too
similar to hall_of_pain.

--------------------------------------------------------------------------------
c550d91459 | Nicholas Feinberg | 2014-07-09 22:55:33 -0700

Fix steel arrows

--------------------------------------------------------------------------------
8234afa072 | Nicholas Feinberg | 2014-07-09 22:50:40 -0700

Rebalance bows
Like slings, bows needed tweaking after the ranged combat
rebalance. They're now analogous to M&F; very common (ammo
& weapons), and with high availability of the best type,
but a limited peak power & subpar returns on XP investment.

Specifically, shortbows have gone from 3+7 to 8 base damage
and 11->13 base delay; longbows have gone from 6+7 to 15 damage
& 12->18 base delay. They're comparable to tridents & glaives
respectively.

Thanks again to Lasty for stat suggestions!

--------------------------------------------------------------------------------
498a9494ee | Nicholas Feinberg | 2014-07-09 22:50:40 -0700

De-editorialize

--------------------------------------------------------------------------------
ce7483891f | Neil Moore | 2014-07-10 01:44:42 -0400

Fix a quote and add a new one.

--------------------------------------------------------------------------------
058f5593ce | Neil Moore | 2014-07-10 01:35:26 -0400

Allow &Pminivault (Grunt)
If the player specified a minivault with &P, try to build a level
containing that minivault.  If the level doesn't try to place minivaults
(encompass levels) there is no effect, but otherwise the level will be
vetoed if the requested vault did not place.

--------------------------------------------------------------------------------
201bb13948 | Neil Moore | 2014-07-10 01:35:26 -0400

Simplify.

--------------------------------------------------------------------------------
e0d9846b1c | Nicholas Feinberg | 2014-07-09 22:28:09 -0700

Add savecompat for Punk's description

--------------------------------------------------------------------------------
a16542bcbe | Nicholas Feinberg | 2014-07-09 22:26:27 -0700

Make a few more monsters' tiles display their shields
Cherubs, deep elf fighters, Wiglafs, and Norrises.

--------------------------------------------------------------------------------
6992e54542 | Nicholas Feinberg | 2014-07-09 22:10:48 -0700

Make cherubs actually spawn with bucklers
If they're using slings.

This appears to have been intended, but the code was looking in
the wrong slot.

--------------------------------------------------------------------------------
b938532f5e | Nicholas Feinberg | 2014-07-09 22:02:03 -0700

Rebalance slings
Slings numbers (along with the other launchers') needed to be
rebalanced after the recent ranged combat rework. The approach
here is essentially analogous to the staves skill; good return
for xp investment, but a limited power cap, especially if you
don't find the rare upgrade weapon type.

Slings renamed to 'hunting slings' and upgraded from 2->5 base
damage (and 12 base delay); new, rare "greatsling" added, with
8 base damage and 14 base delay. Punk upgraded to the latter
type.

Thanks to Lasty for providing a baseline math suggestion!

--------------------------------------------------------------------------------
d4491263ab | Nicholas Feinberg | 2014-07-09 22:02:03 -0700

Refactor a check to use is_ranged_weapon_type()

--------------------------------------------------------------------------------
2e2f758215 | Neil Moore | 2014-07-10 00:59:12 -0400

Don't freeze on &Pminivault.
Just fail with a message like we were supposed to.

--------------------------------------------------------------------------------
682efee855 | Nicholas Feinberg | 2014-07-09 19:25:07 -0700

Refactor weapon property code
Mainly relevant to chaos champions (should mean that melee_only
champions no longer spawn with slings, as a bonus), but also
in preparation for adding more weapon types.

--------------------------------------------------------------------------------
7a0fbcdcb1 | Corin Buchanan-Howland | 2014-07-09 22:22:32 -0400

Ru: Change Sac Sanity to trigger horror on threatening foes
Sacrifice Sanity now gives the horror status based on Tough and Nasty
foes within LOS. Also, the wizardry penalty has been cut in half, and
the status is applied during player_reacts_to_monsters(), which should
fix bugs related to the status being applied incorrectly on the turn
you teleport.

--------------------------------------------------------------------------------
7460b84b84 | Corin Buchanan-Howland | 2014-07-09 21:12:02 -0400

Ru: Prevent monsters without spells from faltering.

--------------------------------------------------------------------------------
441829bf9c | Corin Buchanan-Howland | 2014-07-09 20:45:14 -0400

Ru: Let sacrifice reading/taste actually apply statuses.

--------------------------------------------------------------------------------
d32eec0d69 | ontoclasm | 2014-07-09 23:27:11 +0100

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
4e31efd44d | ontoclasm | 2014-07-09 23:25:55 +0100

Conj. spell icons

--------------------------------------------------------------------------------
9b86da9ce7 | Neil Moore | 2014-07-09 18:16:09 -0400

Swap two functions to avoid a forward declaration.

--------------------------------------------------------------------------------
8e6fa41655 | Neil Moore | 2014-07-09 18:12:33 -0400

Show correct rune autopickup status in \ menu (#8639)
We were checking "18 decaying runes of Zot", which wasn't matched by our
default autopickup_exceptions rule.

--------------------------------------------------------------------------------
b423ccbb12 | Neil Moore | 2014-07-09 17:32:55 -0400

Simplify (tswett)

--------------------------------------------------------------------------------
73a505eef1 | Policarpo Caballero | 2014-07-09 17:32:00 -0400

Fix magical staves always doing 0 damage (#8771)

--------------------------------------------------------------------------------
56d4f1057b | ontoclasm | 2014-07-09 21:57:29 +0100

Remove some rims

--------------------------------------------------------------------------------
218c981a63 | ontoclasm | 2014-07-09 21:56:50 +0100

Fix shadow logic.

--------------------------------------------------------------------------------
ba25090bef | ontoclasm | 2014-07-09 21:43:15 +0100

Cancellation potion tile

--------------------------------------------------------------------------------
8a68b8832c | Chris Campbell | 2014-07-09 20:05:37 +0100

Apply shadow form damage reduction to ranged attacks

--------------------------------------------------------------------------------
4e5aae5fdf | Chris Campbell | 2014-07-09 19:52:40 +0100

Don't apply unarmed melee bonuses from forms to throwing weapons

--------------------------------------------------------------------------------
f9d185bb47 | Chris Campbell | 2014-07-09 17:54:22 +0100

Typo fix

--------------------------------------------------------------------------------
fa2d839c13 | Chris Campbell | 2014-07-09 14:46:15 +0100

Don't let monsters sometimes block attacks while incapacitated
They could very rarely block melee attacks.

--------------------------------------------------------------------------------
f55f5463a8 | Chris Campbell | 2014-07-09 14:20:46 +0100

Don't try and identify the player's shield when reflecting an attack

--------------------------------------------------------------------------------
6895e53225 | Chris Campbell | 2014-07-09 14:20:41 +0100

Remove an unnecessary special case for Condensation Shield
Since it should now always melt when combined with Ring of Flames.

--------------------------------------------------------------------------------
f36907521e | Chris Campbell | 2014-07-09 14:20:35 +0100

Don't give a message about melting icemail if it's currently melted

--------------------------------------------------------------------------------
fe0db2420d | Chris Campbell | 2014-07-09 14:20:29 +0100

Improve messaging when failing to cast Condensation Shield
Use the same message for Ozo's Armour when failing due to Ring of Flames
being active.

--------------------------------------------------------------------------------
b910be8a8c | Chris Campbell | 2014-07-09 14:20:23 +0100

Make Ring of Flames melt ice armour while active
Since it claims that it will do so and prevents casting Ozo's Armour and
Condensation Shield.

--------------------------------------------------------------------------------
539e34f489 | Chris Campbell | 2014-07-09 14:20:17 +0100

Unduplicate some handling of HUD colours

--------------------------------------------------------------------------------
610c62a079 | Chris Campbell | 2014-07-09 14:20:11 +0100

Fix colouring of SH on the HUD while incapacitated
Colour SH red when incapacitated if the player has a magical shield or bone
plates mutation.

--------------------------------------------------------------------------------
28beea6b95 | Chris Campbell | 2014-07-09 14:20:05 +0100

Fix magical shields being unable to block most ranged attacks (#8772)
They checked that the player either had a shield equipped or had the
bone plates mutation, so TSO's divine shield, Qazlal shielding and
Condensation shield could all never block ranged attacks (except for those
from ranged weapons, since those now follow the same codepath as melee
attacks!).

--------------------------------------------------------------------------------
880e3abaec | Corin Buchanan-Howland | 2014-07-09 07:06:18 -0400

Experimental ONLY! Ru: tagify name change.

--------------------------------------------------------------------------------
70ef8a0237 | Corin Buchanan-Howland | 2014-07-09 07:06:15 -0400

Ru: Improve sacrifice delay and amulet of faith
This commit makes the delay between sacrifices increase if a sacrifice is
active, if piety is over 100, or if you've ignored repeated sacrifices.
It also slightly increases the average piety gain and starting piety so
that the first non-trivial sacrifice should get you * piety.

--------------------------------------------------------------------------------
16e9270f56 | Chris Campbell | 2014-07-09 09:57:07 +0100

Fix sticky flame duration depending on the HD of the target (Patashu)
As far as I can tell, this was changed by 5e60d799077, and the duration
previously depended on the initial damage dealt by the sticky flame.

--------------------------------------------------------------------------------
b8f145ed9a | Nicholas Feinberg | 2014-07-08 23:29:54 -0700

Extinguish cursed clubs
No need to let cursed clubs glow. (The armour change is for
reasons of symmetry only.)

Clubs with plusses can still glow/be runed; this should
only be relevant for vaults and uniques, so basically Ijyb.

--------------------------------------------------------------------------------
a10db6175b | Nicholas Feinberg | 2014-07-08 23:12:39 -0700

Refactor plus-squashing code
Move it into the actual item-generation code, which is probably
a more sensible place for it to be.

Probably the actual behaviour should be rethought at some point;
it'd be nice to support item shops selling items with plusses
again, and it might be interesting to play around with generating
more high-plus no-ego items, which are very rare at the moment.
Might also make sense to tweak the threshold for aux armour up to
+2, to avoid people getting too jaded by glowing gloves/etc.

--------------------------------------------------------------------------------
0157abf9ca | Nicholas Feinberg | 2014-07-08 20:59:59 -0700

Remove darts (from a comment)

--------------------------------------------------------------------------------
cdeebcef90 | Corin Buchanan-Howland | 2014-07-08 20:28:20 -0400

Iashol: RIP Iashol, long live Ru.
This commit reskins Iashol to Ru and updates lore.

--------------------------------------------------------------------------------
bc841a2a91 | Neil Moore | 2014-07-08 17:17:34 -0400

Allow toggling monster speech diagnostics in &^Q
This is currently predicated on DEBUG_MONSPEAK, since all the relevant
messages are.

--------------------------------------------------------------------------------
3bc2141fe0 | ontoclasm | 2014-07-08 20:48:57 +0100

Abjuration spell icons

--------------------------------------------------------------------------------
25feac74e3 | Neil Moore | 2014-07-08 13:20:09 -0400

Allow specifying spells:melee in monster specs.

--------------------------------------------------------------------------------
071ec8e79a | Steve Melenchuk | 2014-07-08 11:17:38 -0600

Remove a name-colliding randart name.
We already have the mace of Variability, and just saw a randart mace of
Variability get generated, which seems undesirable.

--------------------------------------------------------------------------------
34a3de93f5 | Chris Campbell | 2014-07-08 15:12:41 +0100

Fix hellfire burst being a different colour to hellfire zap
Hellfire was changed from red to lightred to distinguish it from normal
fire in 3c4ea9ef4, but hellfire burst was unchanged and still red.

--------------------------------------------------------------------------------
e7b52e16aa | Chris Campbell | 2014-07-08 15:12:40 +0100

Don't consider the finger necklace's ring slot for Ash boundedness
Felids and Octopodes wearing the necklace had the extra ring slot
counted towards their boundedness (but other species didn't).

--------------------------------------------------------------------------------
3d4682682a | Chris Campbell | 2014-07-08 15:12:38 +0100

Let Felids be fully bound under Ashenzari when all their slots are cursed
Previously it was only possible for them to reach level 3 out of 4
with all their slots cursed. Instead allow them to be fully bound when
all three jewellery slots are cursed at once.

--------------------------------------------------------------------------------
379beb6308 | Chris Campbell | 2014-07-08 15:12:33 +0100

Remove Haunt from the Grand Grimoire
To make it a Necronomicon-unique spell - it was the only highlevel book
spell that was in more than one book (even if they were both highlevel
books). Thematically it fits better in the Necronomicon, and the
Necronomicon also can't really afford to be any slimmer.

--------------------------------------------------------------------------------
e5d7017d8c | Chris Campbell | 2014-07-08 15:12:32 +0100

Reduce the startup time of Malign Gateway
For both player/monster casts, and for miscasts/hell effects (which were
still using the original even longer timer). The shorter startup should
allow it to more reliably get involved in fights when cast by the player,
and make it slightly harder (but probably still not very hard) to just
walk away from when cast by hostiles.

--------------------------------------------------------------------------------
6b67a30500 | Neil Moore | 2014-07-08 02:31:36 -0400

Don't crash fsim when the player constricts (PleasingFungus)

--------------------------------------------------------------------------------
2d7905a8d1 | Nicholas Feinberg | 2014-07-07 23:06:51 -0700

Changelog through 0.15-a0-1939-gf284a85

--------------------------------------------------------------------------------
f284a85e45 | Neil Moore | 2014-07-08 00:45:43 -0400

Remove race from vaultmaking docs (#8747)
Perhaps we should still mention the fact that boots can become bardings.

--------------------------------------------------------------------------------
2232fbc057 | Neil Moore | 2014-07-08 00:35:35 -0400

Always show spell letter assignment (#8707)
As suggested by MarvinPA in his comment to the bug report, use the
existing spell_slot message so that there aren't duplicate messages.

--------------------------------------------------------------------------------
af9c773e79 | reaverb | 2014-07-07 21:18:24 -0400

Remove Lava Worms
Lava Worms had all the problems of Big Fish and Sharks, and furthermore
only appeared in a few volcano vaults and a serial vault.

--------------------------------------------------------------------------------
bed3715938 | Neil Moore | 2014-07-07 16:47:03 -0400

Adjust a comment (PleasingFungus)
It's not as easy to exploit as I thought.  It might be possible on
Windows tiles (see #6486) but just a HUP won't do it.

--------------------------------------------------------------------------------
327597ee70 | Neil Moore | 2014-07-07 16:16:42 -0400

Fix noted-get flag (PleasingFungus, doh)

--------------------------------------------------------------------------------
b5428166a3 | Neil Moore | 2014-07-07 16:04:04 -0400

Fix item_pickup triggers and rune/orb milestones.
The former were broken by 0.15-a0-1884-gb98b893 and the latter by
0.15-a0-1887-gff848d3.

Unfortunately, moving the floor quantity decrement later as this
commit does means there is more opportunity for the player to send
a HUP and duplicate items.  That was already a problem before
0.15-a0-1884-gb98b893, though, and I'd rather have the potential
exploit than have non-functional item_pickup triggers.

Milestones could be fixed without reintroducing the exploit, by using a
temporary on-stack copy of the object.  That doesn't work for the pickup
trigger, though, because the latter needs the object's index and
therefore requires a (still-extant) floor item.

--------------------------------------------------------------------------------
48b8069c38 | Nicholas Feinberg | 2014-07-07 09:30:44 -0700

Improve lost soul messaging a little more
Don't print messages for living creatures which are resurrected
to an out-of-sight location. Make it a fun surprise! (Also avoid
the game claiming that a creature was resurrected, but having
that creature be nowhere to be seen.)

Also, refactoring.

--------------------------------------------------------------------------------
6e60aee006 | Nicholas Feinberg | 2014-07-07 09:28:57 -0700

Brace

--------------------------------------------------------------------------------
750ad04350 | Nicholas Feinberg | 2014-07-07 09:05:58 -0700

Fix messaging for lost souls
They'll now print a message and turn the killed creature into
a ghost even if the lost soul performing the spectralization
was offscreen/invisible at the time.

--------------------------------------------------------------------------------
b8fc1833ca | Shmuale Mark | 2014-07-07 09:28:18 -0400

Clarify message when hitting a slowed monster with curare (#8765).

--------------------------------------------------------------------------------
069f11ca41 | Shmuale Mark | 2014-07-07 09:28:11 -0400

Clean up some weirdnesses with monster berserk/haste description (#8765).
Berserk will now always show the monster as having might/haste, except
that whenever a monster would show both slow and fast, it shows
"fast+slow" (like players do on their status bar).

--------------------------------------------------------------------------------
280b1fd7fa | Shmuale Mark | 2014-07-07 09:28:07 -0400

Remove an unused MB and ENCH.

--------------------------------------------------------------------------------
a4757436f9 | Nicholas Feinberg | 2014-07-06 22:34:47 -0700

Add a missing linebreak

--------------------------------------------------------------------------------
4a16ea7904 | Nicholas Feinberg | 2014-07-06 22:18:44 -0700

Improve altar-worship messages.
The dragon-specific message would never actually appear in
the old code; this has been fixed. Special messages have
also been added for octopodes & spiderform, since it seemed
odd for them to simply "kneel". (Though I suppose spiders
can kneel...? Still feels strange.)

--------------------------------------------------------------------------------
802c0e4397 | Nicholas Feinberg | 2014-07-06 22:18:29 -0700

Brace :(

--------------------------------------------------------------------------------
b00719d75b | Nicholas Feinberg | 2014-07-06 21:45:47 -0700

Make a rotten animate dead message slightly less bad
The message for 'animate dead' turning rotten corpses
(necrophages/ghouls) into skeletons would appear when
monsters cast the spell, even if the corpse wasn't in
LOS. It's only intended to explain to the *player* why
they're not getting a zombie, so it's probably simpler
to just not print it for monster animate dead at all.

It will still print once for every applicable corpse,
which isn't ideal. Not sure how to fix it, though -
the relevant code is also, appropriately, pretty rotten...

--------------------------------------------------------------------------------
b36f0179a7 | Nicholas Feinberg | 2014-07-06 21:25:24 -0700

Prompt when reading ?blink if it won't allow control

--------------------------------------------------------------------------------
86e6aab275 | Nicholas Feinberg | 2014-07-06 21:25:24 -0700

Clean up ?blink
Make it only prompt for cancellation when that would actually
waste the scroll, and remove some archaic checks to avoid
iding -tele equipment for free (since that's all auto-id'd now
anyway!)

--------------------------------------------------------------------------------
458000e744 | Nicholas Feinberg | 2014-07-06 21:25:24 -0700

27

--------------------------------------------------------------------------------
ad82ffcd94 | Neil Moore | 2014-07-06 21:25:37 -0400

Refactor gather_features a bit.
And thereby fix an error message with the wrong filename (doh).

--------------------------------------------------------------------------------
d00d28abe9 | Shmuale Mark | 2014-07-06 19:45:40 -0400

Rename antimagic() -> debuff_player().

--------------------------------------------------------------------------------
0b870a835f | Shmuale Mark | 2014-07-06 19:45:38 -0400

Replace potions of paralysis with potions of cancellation.
!para was sort of problematic in that in combat, it would basically be a
game-over effect, especially at the low HP people generally panic-quaff
at, and almost entirely harmless outside of combat. Neither effect is very
interesting. Dispelling has the potential to be bad, if you hadn't
identified it and had used some other buffing potions, and lends itself
to many more interesting tactical situations.

"Cancellation" is just the first thing that popped into my head; feel free
to send buckets of paint to recolour the bikeshed with.

--------------------------------------------------------------------------------
747894c923 | Shmuale Mark | 2014-07-06 19:45:35 -0400

Make scroll of vulnerability only apply -MR.

--------------------------------------------------------------------------------
ee4b3ecd32 | Neil Moore | 2014-07-06 19:13:48 -0400

Handle traps in db_lint.
The refactoring in 0.15-a0-1555-g728ed82 moved the feature names
somewhere that gather_features didn't know to look.  Unfortunately
we have to duplicate the postprocessing that turns the trap_name into
the full_trap_name.

--------------------------------------------------------------------------------
b7afdf89ee | Neil Moore | 2014-07-06 19:11:22 -0400

Fix "Created a gas, marking it undiscovered."
These don't really exist, so this only affects wizmode trap placement and
transferred old games.

--------------------------------------------------------------------------------
8cb84b8947 | Neil Moore | 2014-07-06 16:04:07 -0400

Modify webtiles socket timeouts, simplify.
We were accidentally starting out with five-second waits in webtiles
then scaling down to 500 ms; that was backwards.  Also use the longer
500 ms timeouts for ENOBUFS, etc., not just EAGAIN.

--------------------------------------------------------------------------------
155ebc9998 | Neil Moore | 2014-07-06 14:21:58 -0400

Remove a duplicate spell message entry for drakes.
Apparently the message was fixed in 0.13-a0-580-g3cdce20.  I thought I
saw the bad "throws" message in a later version than that, but was
apparently mistaken.

This reverts commit 980a894f7a7295c1be56504246e97139b7e533ab.
This reverts commit f4d20f434a7a7b1b5e667a34f2c61a545bed9c3b.

--------------------------------------------------------------------------------
43c28ef48d | Neil Moore | 2014-07-06 14:21:57 -0400

Handle floor renames in db_lint.

--------------------------------------------------------------------------------
1569788093 | Shmuale Mark | 2014-07-06 09:41:28 -0400

Pre-id strong poison, hide it.

--------------------------------------------------------------------------------
3167ec3d65 | Shmuale Mark | 2014-07-06 09:28:14 -0400

Remove potions of strong poison.
Their peculiar depth restriction meant that when you found them, they were
quite harmless. Even if the restriction were removed, they would be
basically the same as potions of poison, since when they might be harmful
the player would have little enough HP that the weaker potion could kill
them.

Their weight is distributed evenly among all other potions -- a very
slight buff seems like a fine thing to do, especially since potion
generation at D:2-10 isn't considered too good.

--------------------------------------------------------------------------------
d9acbb9e23 | Nicholas Feinberg | 2014-07-05 22:43:47 -0700

Fix (?) blood potion stack merging

--------------------------------------------------------------------------------
87eb2c00c6 | Neil Moore | 2014-07-06 00:38:28 -0400

Don't call one corpse "several objects" (wheals)

--------------------------------------------------------------------------------
f1063cb075 | Neil Moore | 2014-07-06 00:18:03 -0400

Remove ISFLAG_DROPPED_BY_ALLY.
Since the removal of ally pickup modes, the flag has still been tracked
but never actually read.

--------------------------------------------------------------------------------
727dbd68da | Nicholas Feinberg | 2014-07-05 20:40:48 -0700

Re-fix ?ew not marking items uncursed (8653)

--------------------------------------------------------------------------------
23cfd756bf | Neil Moore | 2014-07-05 23:29:46 -0400

Simplify by using coord_def::origin.

--------------------------------------------------------------------------------
b51865a73f | Neil Moore | 2014-07-05 23:24:07 -0400

Convert escape hatches in old labyrinths.

--------------------------------------------------------------------------------
d0d484c5d9 | Neil Moore | 2014-07-05 22:42:53 -0400

Don't try to swap to unwieldable large rocks, either.

--------------------------------------------------------------------------------
898e01c95a | Neil Moore | 2014-07-05 22:38:49 -0400

Mark large rocks as useless for non-large sandblasters (#8764)
If you can't wield the rock, you can't use it to enhance Sandblast.

--------------------------------------------------------------------------------
5ee61df6f7 | Nicholas Feinberg | 2014-07-05 19:29:54 -0700

Make Dazzling Spray scale more strongly with HD
It's fine if it's strong early on, but a level 3 spell
should not still be dominatingly powerful through endgame
& extended. (It might be interesting to add a higher-level
blinding effect at a later date.)

Sample monsters: odds of dazzling an orc warrior go from
73% to 75%. Elephants go from 58% to 50%. Ice Fiends go from
31% to 5%.

--------------------------------------------------------------------------------
3e46231ba3 | Neil Moore | 2014-07-05 22:21:28 -0400

Remove unused parameters from umbra() and backlit().

--------------------------------------------------------------------------------
3d2a0df9fd | Neil Moore | 2014-07-05 22:21:28 -0400

Reformat.
Mostly by joining short lines in places where that would let us remove
braces.

--------------------------------------------------------------------------------
ceea6a155e | Neil Moore | 2014-07-05 22:19:19 -0400

Simplify.

--------------------------------------------------------------------------------
359a1cb40b | Neil Moore | 2014-07-05 21:58:50 -0400

Check genus in deporkalation.
Rather than listing all the porcine monster types.

--------------------------------------------------------------------------------
321f440eda | Nicholas Feinberg | 2014-07-05 15:42:19 -0700

Shift gargoyle monsters slightly deeper in D
Since they're very nasty, now that they have stone arrow and
can actually hurt the player.

--------------------------------------------------------------------------------
05ee0debdd | Nicholas Feinberg | 2014-07-05 15:38:37 -0700

Tweak Pikel dialogue

--------------------------------------------------------------------------------
162a615bbc | Nicholas Feinberg | 2014-07-05 13:01:49 -0700

Despoilerify evilmike_haunted_forest
Broken by 7a9dbbb8c.

--------------------------------------------------------------------------------
1b599b05ec | Nicholas Feinberg | 2014-07-05 12:59:03 -0700

Tweak placid magic messages
To make it more obvious that it's a badmut.

--------------------------------------------------------------------------------
6266875d83 | Nicholas Feinberg | 2014-07-05 12:59:03 -0700

Comment

--------------------------------------------------------------------------------
f33928a289 | Neil Moore | 2014-07-05 15:56:11 -0400

Unspoil the spider room in evilmike_haunted_forest (minmay)
It had been no longer visible since trees became fully opaque.

--------------------------------------------------------------------------------
428bd8f2e1 | Neil Moore | 2014-07-05 15:36:02 -0400

Support cursed/damaged items in monspecs (PleasingFungus)

--------------------------------------------------------------------------------
ea682fd60d | Neil Moore | 2014-07-05 15:07:13 -0400

Track eating in action counts.

--------------------------------------------------------------------------------
a413f1dc80 | ontoclasm | 2014-07-05 13:01:59 -0500

Cond. shield icon

--------------------------------------------------------------------------------
ff848d3807 | Nicholas Feinberg | 2014-07-05 10:52:10 -0700

Constify
Guarantee the invariance of various item pickup functions;
move gozag gold aura removal to dec_mitm.

--------------------------------------------------------------------------------
1757ce470f | Neil Moore | 2014-07-05 13:28:38 -0400

Prevent DEAD_MONSTER messages for offlevel companions
Thanks to tux[qyou] for alerting us the the error.

--------------------------------------------------------------------------------
22d3eb9efd | Nicholas Feinberg | 2014-07-04 23:05:04 -0700

Constify

--------------------------------------------------------------------------------
b98b8932dc | Nicholas Feinberg | 2014-07-04 17:24:47 -0700

Refactor item pickup code

--------------------------------------------------------------------------------
018e8dee5c | Nicholas Feinberg | 2014-07-04 17:02:27 -0700

Brace

--------------------------------------------------------------------------------
4eab0533ed | Nicholas Feinberg | 2014-07-04 15:57:45 -0700

Refactor gozag wrath out of move_item_to_player()
And also fix gozag wrath taking no time if all the items
in the stack were goldified.

--------------------------------------------------------------------------------
2a0806f3cb | Shmuale Mark | 2014-07-04 17:58:19 -0400

Remove some unused code accidentally restored.
This was my fault for not splitting up the code cleanup from the actual
gameplay changes, of course.

--------------------------------------------------------------------------------
53e602b668 | Nicholas Feinberg | 2014-07-04 13:35:34 -0700

Revert "Give Forlorn mutation additional anti-faith at higher piety"
(78ddc6dc79b, 269cbc3872)

Actually, it turns out that cutting piety gains by a factor of six
is kind of a big deal!

It's probably okay for a one-level badmut not to singlehandedly
cripple characters.

--------------------------------------------------------------------------------
6ac7d81753 | Nicholas Feinberg | 2014-07-04 13:27:57 -0700

Revert "don't eat off the floor (aef094f7fd7. 9c21a484839)"
It was enormously inconvenient, especially now that weightless
means that everyone's running around with 52-item inventories,
and didn't offer any strong benefits beyond the ideological.

It would be better to have a unified "use items from the floor"
interface, which would essentially turn this into a special case,
but until then, let players eat in however unsanitary a manner
they please.

--------------------------------------------------------------------------------
cd56c43f5f | Neil Moore | 2014-07-04 14:50:17 -0400

Refactor bernoulli a bit.
Implement bernoulli in terms of decimal_chance, and change one trivial
bernoulli call (ntrials = 1.0) into a direct decimal_chance call.

--------------------------------------------------------------------------------
9f6866c02e | Neil Moore | 2014-07-04 14:16:24 -0400

Don't disappear companions from Pan on load (크롤러, PleasingFungus)
This arose because of the combination of 0.12-a0-2710-g8500c20 with the
unmarshalling check originally added in 0.12-a0-2489-g1bd74f5.  We were
checking whether the companion was on-level, but in the case of Pan that
checked the mid cache (since all Pan levels have the same level_id).

I am not sure why the check is necessary at all: surely if the monster
is actually on another level, it shouldn't be alive in this level's menv
array?

--------------------------------------------------------------------------------
ea7ed8e239 | Neil Moore | 2014-07-04 14:08:31 -0400

Refactor a conditional (PleasingFungus)

--------------------------------------------------------------------------------
aca7260646 | Shmuale Mark | 2014-07-04 12:30:06 -0400

Combine key names, symbolise.

--------------------------------------------------------------------------------
0556778dcb | Shmuale Mark | 2014-07-04 12:30:02 -0400

Symbolise.

--------------------------------------------------------------------------------
4a4df5a50d | Shmuale Mark | 2014-07-04 12:29:58 -0400

De-rune Jory's tower.
The stuff in there is harmless enough that there's probably no need to
worry about an autoexplore trap at Depths-depth, but just in case I stuck
a W outside to warn the player.

--------------------------------------------------------------------------------
5aed516aed | Nicholas Feinberg | 2014-07-04 09:25:24 -0700

Move some more rot code into rot.cc
And refactor a little.

--------------------------------------------------------------------------------
6b684f55be | Nicholas Feinberg | 2014-07-04 09:25:24 -0700

Remove x

--------------------------------------------------------------------------------
67595e7541 | Nicholas Feinberg | 2014-07-04 09:25:24 -0700

Remove a reference to monster napping

--------------------------------------------------------------------------------
daf29251ac | Nicholas Feinberg | 2014-07-04 09:25:24 -0700

Export blood-rot time

--------------------------------------------------------------------------------
17bf3f4198 | Nicholas Feinberg | 2014-07-04 09:25:24 -0700

Simplify blood potion initialization
The back-compat code was hardly needed when it was added,
much less now.

--------------------------------------------------------------------------------
acc10fcd8e | Neil Moore | 2014-07-04 09:12:03 -0400

Sort blood timers in-place (PleasingFungus)
We were making a copy into a vector<int>, but that's not necessary if we
have a comparator for CrawlStoreValues.

--------------------------------------------------------------------------------
491fd597c2 | Chris Campbell | 2014-07-03 21:35:55 +0100

Add potions of restore abilities to arenasprint (minmay)

--------------------------------------------------------------------------------
26e817d610 | reaverb | 2014-07-03 15:57:10 -0400

Fix whitespace

--------------------------------------------------------------------------------
189c352ec5 | Shmuale Mark | 2014-07-03 13:36:44 -0400

Update Lua mutation checks for wizname changes.

--------------------------------------------------------------------------------
52da494bbc | Shmuale Mark | 2014-07-03 11:00:01 -0400

Fold mutation_def::wizname into ::short_desc.
In only a few cases were the strings different, and in even fewer were
they significantly so. In general, I used the short_desc for the combined
one, since someone running wizmode can presumably look at mutation-data.h,
except that "large and strong wings" got changed to "big wings", and "life
protection" to "negative energy resistance".

--------------------------------------------------------------------------------
f9fe885edd | Nicholas Feinberg | 2014-07-02 23:16:42 -0700

Improve a shop message

--------------------------------------------------------------------------------
96bcb33687 | Nicholas Feinberg | 2014-07-02 22:40:12 -0700

Export rot 'timer' to a define

--------------------------------------------------------------------------------
447edd588a | Nicholas Feinberg | 2014-07-02 22:29:59 -0700

Fix a few pan lord descriptions

--------------------------------------------------------------------------------
c20e871d72 | Nicholas Feinberg | 2014-07-02 22:24:27 -0700

Hint at pan lords knowing spells (Patashu)

--------------------------------------------------------------------------------
8a89d76ea6 | Nicholas Feinberg | 2014-07-02 18:28:41 -0700

Don't prompt when removing =faith under Xom (minmay)

--------------------------------------------------------------------------------
eac59a0f5b | Neil Moore | 2014-07-02 18:49:49 -0400

Remove some stray vault entries (Grunt)
<+PleasingFungus> <3 copy/paste

--------------------------------------------------------------------------------
8eddb4d551 | Neil Moore | 2014-07-02 18:21:00 -0400

Make srp_altar and tele_altar more symmetrical.

--------------------------------------------------------------------------------
57517b2ca8 | Neil Moore | 2014-07-02 18:05:53 -0400

Add a lemuel_tele_altar variant.
This one will always let you in: you just have to find the correct side.
Split the weight with lemuel_tele_altar.

One problem is that monsters won't step on the teleporters, so it might
be too easy to get free kills (same as lava, except it works for flyers
and lava-swimmers too).

--------------------------------------------------------------------------------
64893807dc | Neil Moore | 2014-07-02 17:12:39 -0400

Use opaque in a couple more vault interiors.

--------------------------------------------------------------------------------
e872541d54 | Neil Moore | 2014-07-02 17:05:06 -0400

Don't overwrite primary vault tiles with layout tiles (#8108, #6150)
The remaining problem behind this longstanding bug was that the layout
overwrote the colour, height, tiles, etc. of all squares---even ones that
were already placed by the primary vault.

--------------------------------------------------------------------------------
ed3dc989f9 | Chris Campbell | 2014-07-02 18:54:28 +0100

Fix a crash when picking up part of an item stack under Gozag wrath (|amethyst)
(Hopefully). Still has incorrect messaging when picking up only part of a
stack.

--------------------------------------------------------------------------------
a37b6925eb | Chris Campbell | 2014-07-02 18:54:27 +0100

Move some items out from underneath jellies in Sprint 1
Since the pulsating lumps were changed to jellies.

--------------------------------------------------------------------------------
9daf176f7a | Chris Campbell | 2014-07-02 18:54:26 +0100

Make vorpal a more common result from ?brand weapon
Since the scroll no longer always makes unbranded weapons vorpal.

--------------------------------------------------------------------------------
5b88333b5f | Shmuale Mark | 2014-07-02 12:55:58 -0400

Improve behaviour on failure to monster teleport failure (#3839).
It's fairly easy to reproduce by wizmoding Zig:1 full of plants and
then teleporting a monster in there: it will probably end up in a wall.
As the mantis issue says, this will basically never happen in a real game,
but if it were to do so, just keeping it in place (with an appropriate
message seems like the best behaviour).

--------------------------------------------------------------------------------
a39764ffcd | Shmuale Mark | 2014-07-02 12:40:01 -0400

Merge pickup_menu and pickup_menu_limit.
Since pickup_menu = true was basically identical to pickup_menu_limit =
1 (or 2, actually), there isn't much need for two separate options. The
new default for pickup_menu_limit is 1, so there is no change in the
defaults.

However, if you pickup_menu_limit is now exclusive, not inclusive. This
fixes the weirdness that 1 and 2 meant the same thing, since you can't get
a menu with only one item on it. So, if you had pickup_menu = false, there
probably is a change in behaviour.

--------------------------------------------------------------------------------
91e915e0b4 | Shmuale Mark | 2014-07-02 12:06:39 -0400

Don't allow eating chunks off the ground, either (|amethyst).

--------------------------------------------------------------------------------
9c21a48483 | Shmuale Mark | 2014-07-02 11:23:18 -0400

Disallow eating off the ground for non-vampires.
It makes the 'e' key less consistent for no obvious benefit. Not to
mention that it's incredibly unsanitary.

--------------------------------------------------------------------------------
6ca58b0bb8 | Shmuale Mark | 2014-07-02 11:23:15 -0400

Remove the show_gold_turns option.
There's really no reason not to show the line; in other options, having
the default always be the case can be annoying, but if you don't want
to look at the gold/turns display, you can just not.

--------------------------------------------------------------------------------
981af8bb92 | Nicholas Feinberg | 2014-07-02 07:54:30 -0700

Move a little more code out of misc.cc

--------------------------------------------------------------------------------
886d980933 | Nicholas Feinberg | 2014-07-02 07:38:45 -0700

Fix compilation

--------------------------------------------------------------------------------
0e4e86cbbb | Neil Moore | 2014-07-02 09:32:42 -0400

Revert "Make spriggan riders spriggan-sized (#8751)"
This was apparently intentional, since the Fedhas Sprint gives a rider
the storm bow, and the monster gear code tries to give them spears plus
bucklers.

--------------------------------------------------------------------------------
d06b1d3830 | Neil Moore | 2014-07-02 02:45:15 -0400

Add new files to the MSVC project.

--------------------------------------------------------------------------------
c22efd9fab | Nicholas Feinberg | 2014-07-01 23:24:51 -0700

Let BLOOD finally have its place in the sun
...by moving bloodspatter functions into their own file.

Death to misc.cc! Long live the new file hierarchy!

--------------------------------------------------------------------------------
22f25ab0e8 | Nicholas Feinberg | 2014-07-01 23:24:51 -0700

Split butchering/bottling into a new file

--------------------------------------------------------------------------------
d20dde44ce | Nicholas Feinberg | 2014-07-01 23:24:48 -0700

Move blood rotting into a new file

--------------------------------------------------------------------------------
fc78f0c065 | gammafunk | 2014-07-02 01:14:22 -0500

Have monsters check constriction before using knockback abilities
If a monster is constricting a victim, don't allow it to use a spell
or ability that would knock the victim back, thus breaking the
constriction.

I made this commit when I was considering giving op crushers primal
wave, an idea that I dropped, but the check should still be there, and
this does move otherwise duplicated code to a single method.

--------------------------------------------------------------------------------
679cb17587 | gammafunk | 2014-07-02 00:58:20 -0500

Have monster throwing ignore firewood when choosing a landing site
Don't count firewood monsters like plants and fungi towards the
landing site score.

--------------------------------------------------------------------------------
ffa94bd750 | gammafunk | 2014-07-02 00:58:11 -0500

Make octopode crushers a little more crushing
I've given them iron shot over icicle, and increased their HD by
two. This is more in keeping with the idea of them as the most
dangerous enemy in the Depths water population, roughly on par with
Tengu reavers as a threat. They've been slightly rethemed in the
description so as to mention the affinity with earth magic, which is
perhaps more appropriate for something that "crushes".

--------------------------------------------------------------------------------
e211628836 | Nicholas Feinberg | 2014-07-01 21:58:45 -0700

Brace

--------------------------------------------------------------------------------
124869bf28 | Neil Moore | 2014-07-02 00:40:50 -0400

Give stasis to formicid ghosts (#8741)

--------------------------------------------------------------------------------
df93a0c268 | Neil Moore | 2014-07-02 00:23:46 -0400

Make spriggan riders spriggan-sized (#8751)
A cat riding on the back of a butterfly is not the size of a jackal.

Besides weapon wieldability, this affects constriction escape and
the constricted/caught EV penalty.

--------------------------------------------------------------------------------
ffd9f27e32 | Neil Moore | 2014-07-01 22:55:21 -0400

Simplify, optimise, and improve formatting

--------------------------------------------------------------------------------
6f411d1547 | Aj Adamson | 2014-07-01 22:55:21 -0400

Add getting monster spells to clua m:spells() (#8737)
[Committer's note: squashed two commits. The second commit's message
 was:

changed clua moninfo:spells() to return book sets/string tables like
describe.cc monster_info has_spells based on mostly on spellbooks.
describe and clua moninfo:spells's shared code moves to
mon-book.h/mon-util.cc

-neil]

--------------------------------------------------------------------------------
18cebf10d8 | Nicholas Feinberg | 2014-07-01 18:03:15 -0700

Disable non-hostile snails' torpor (Lasty, Pitch)
Disables the aura entirely, since it'd be hilariously
abusable otherwise. (As long as the Enslave spell
remains in the game...)

--------------------------------------------------------------------------------
04ddf5499e | Neil Moore | 2014-07-01 16:58:22 -0400

Include veto reasons in mapstat.log.

--------------------------------------------------------------------------------
18b54c0902 | Neil Moore | 2014-07-01 14:41:44 -0400

Document KMASK: x = opaque

--------------------------------------------------------------------------------
e0d90ecbea | Neil Moore | 2014-07-01 14:41:25 -0400

Let Zig entrances place again (#8750)
Most of them were being vetoed because transparent-tagged vaults cannot
be disconnected.  Now we mask the inner, disconnected part as opaque, while
leaving the outside transparent.

--------------------------------------------------------------------------------
857ce33cee | Nicholas Feinberg | 2014-07-01 08:47:50 -0700

Remove an unused and bizarre function

--------------------------------------------------------------------------------
aada4ccf5d | Nicholas Feinberg | 2014-07-01 08:47:50 -0700

Remove an unused prop definition

--------------------------------------------------------------------------------
5ed2a193e2 | Neil Moore | 2014-07-01 09:23:35 -0400

Override berserk/shadows in view terrain mode (twelwe).

--------------------------------------------------------------------------------
196014848e | Neil Moore | 2014-07-01 09:03:16 -0400

Remove the to-hit DEBUG_COOKIE.
Fight sim handles sets the simulated flag directly now.

--------------------------------------------------------------------------------
6d030cf17a | Neil Moore | 2014-07-01 08:59:41 -0400

Let portal projectile work with non-quiver items (#8749)
It was possible to fire normal shots (saving MP, using penetration, etc)
with F.  I don't think this was intentional, and if that is desired
there should be a toggle so the user doesn't have to tediously go
through item selection every time.

--------------------------------------------------------------------------------
6c5f5d6e78 | Neil Moore | 2014-07-01 03:20:05 -0400

Remove a sewer entry.
It was the only one without water.

--------------------------------------------------------------------------------
0448553f16 | Nicholas Feinberg | 2014-06-30 23:52:10 -0700

Remove hints referring to carried corpses

--------------------------------------------------------------------------------
3d0ae94e55 | Nicholas Feinberg | 2014-06-30 23:51:16 -0700

Make carried skeletons/corpses never rot
Since you can't pick them up anymore!

--------------------------------------------------------------------------------
cafc426c7a | Nicholas Feinberg | 2014-06-30 23:18:59 -0700

Prayer tweaks

--------------------------------------------------------------------------------
f986df79bd | Nicholas Feinberg | 2014-06-30 23:17:41 -0700

Allow sacrificing corpses on other gods' altars (minmay)
And other miscellaneous refactorings.

--------------------------------------------------------------------------------
e40f12a500 | Nicholas Feinberg | 2014-06-30 22:37:28 -0700

Mark items visibly held by monsters as seen
So that monsters can't pick them up if something else
covers them up before they hit the ground.

--------------------------------------------------------------------------------
ad9ca24287 | reaverb | 2014-07-01 00:44:23 -0400

Remove Big Fish from the game

--------------------------------------------------------------------------------
222b1e98f8 | reaverb | 2014-07-01 00:44:23 -0400

Remove Big fish from vaults
Some sharks have also been removed from vaults where convenient, since
sharks are next to be removed.

--------------------------------------------------------------------------------
19c9e96a63 | reaverb | 2014-07-01 00:44:22 -0400

Remove Big Fish and Sharks from natural generation completely

--------------------------------------------------------------------------------
7bdfeef418 | ontoclasm | 2014-06-30 20:29:15 -0500

Remove some stray pixels

--------------------------------------------------------------------------------
44fae1616c | ontoclasm | 2014-06-30 20:19:55 -0500

Tele trap tile edits

--------------------------------------------------------------------------------
477717be7d | ontoclasm | 2014-06-30 17:41:27 -0500

Reshape undead drakes (magicpoints)

--------------------------------------------------------------------------------
e879653817 | Shmuale Mark | 2014-06-30 09:25:16 -0400

Remove two four-year-old function declarations.

--------------------------------------------------------------------------------
02339db419 | Shmuale Mark | 2014-06-30 09:25:14 -0400

Don't start wanderers with forbidden spells memorized (#8748).

--------------------------------------------------------------------------------
558a98ed51 | Shmuale Mark | 2014-06-30 09:25:12 -0400

Remove an unused function (gammafunk).

--------------------------------------------------------------------------------
046b55b154 | Neil Moore | 2014-06-29 23:29:09 -0400

Make a function static.

--------------------------------------------------------------------------------
a2c5d24787 | Neil Moore | 2014-06-29 22:34:07 -0400

Don't crash on drawing mangroves.
The shallow water tile is now a floor, not a feature, tile, so don't put
it in m_buf_feat.

--------------------------------------------------------------------------------
6ff5843ff7 | Nicholas Feinberg | 2014-06-29 19:12:59 -0700

Remove sex demons
Retheme arenasprint's "succubus" to "dimme".

Not that it really matters, since no one actually plays
arenasprint (no one had seen this boss in more than a year),
but it was still kind of embarassing having it around.

The new sprite isn't ideal either, but I don't have the talent
to render "a hairy body, a lioness' head with donkey's teeth and
ears, long fingers and fingernails, and the feet of a bird with
sharp talons." Maybe someone else can!

--------------------------------------------------------------------------------
8835e0aa83 | Nicholas Feinberg | 2014-06-29 17:00:46 -0700

Improve beogh gift-giving UI
Allow iteration with +-, and auto-abort if there are no
valid targets in LOS.

It'd be nice if this still included the "valid target"
highlight that the last version had...

--------------------------------------------------------------------------------
fe1f5a6b0e | gammafunk | 2014-06-29 18:18:03 -0500

Reduce potion and scroll generation.
Due to the removal of inventory weight and item destruction, scrolls
and potions need a downward adjustment. This commit decreases the
number of potions generated by 12%, the number of scrolls generated by
11.2%, and reworks the weights of the subtypes in both classes.

Considering the branches typically seen in a 3-rune game:

D, Lair, Orc, Snake, Swamp, Vaults, Depths, Crypt, Elf, Zot, Sewer,
Ossuary, Lab, Bailey, IceCv, Volcano

we see about 250 potions and 360 scrolls. After this commit, we're
making about 30 fewer potions: 20 less curing and 10 less heal
wounds. We're also making 40 fewer scrolls, broken down this way
(numbers are how many fewer): 8 remove curse, 6 identify, 6
teleportation, 3 fear, 3 blinking, 3 noise, 3 random useless, 3 fog, 3
immolation, 2 vulnerability. I've distributed the reduced weight
reduced from potions and scrolls to gold, weapons, and armour,
increasing the gold by 10%, armour and weapons both by 6%.

The identify and remove curse scrolls aren't tactical, but still
warrant some reduction. The identify reduction is modest given its the
frequency, and we're still seeing large numbers of excess remove curse
in non-Ashenzari games. If this reduction is problematic for
Ashenazari worshipers, we can revising this number or consider adding
giving Ash a remove curse ability at high piety.

Further details are in the following spreadsheet:

https://docs.google.com/spreadsheets/d/1jUi7mNUQasl4XBgG0aojW-v9AZxhCGraC94a5oNP
tgQ/edit?usp=sharing

--------------------------------------------------------------------------------
2dcbfe9391 | gammafunk | 2014-06-29 18:18:03 -0500

Remove an unused argument from the items() function

--------------------------------------------------------------------------------
687e188442 | Nicholas Feinberg | 2014-06-29 15:18:20 -0700

Tweak beogh gifting code.

--------------------------------------------------------------------------------
4683f236fd | Nicholas Feinberg | 2014-06-29 11:38:00 -0700

Remove victory-dancing
From a comment.

--------------------------------------------------------------------------------
405f977974 | reaverb | 2014-06-29 13:09:56 -0400

Refactor _gift_weapon_to_orc() to do only one thing
The former version of this function either picked a weapon to give the
orc or used a weapon provided in the arguments, the new version moves
the weapon picking code to the only place it is used.

Also fixes the Doxygen comment.

--------------------------------------------------------------------------------
3847a01ed5 | reaverb | 2014-06-29 13:09:23 -0400

Correct some Doxygen comments in godblessing.cc
There were several cases were the @param did not match the actual
parameters, this has been fixed, using whatever name seemed most
appropriate/fit in 80 chars. It would be good if somebody could go
through and make the variable names consistent.

--------------------------------------------------------------------------------
1d18586457 | Chris Campbell | 2014-06-29 17:57:50 +0100

Adjust Rupert title and description

--------------------------------------------------------------------------------
e474da1e00 | Shmuale Mark | 2014-06-29 12:42:00 -0400

Rename bless.{cc,h} -> godblessing.{cc,h}.

--------------------------------------------------------------------------------
f4e1034dec | Shmuale Mark | 2014-06-29 12:41:58 -0400

Improve Rupert's title.
Zin doesn't think he's unclean, and this one is even more true to the
4.1 original!

--------------------------------------------------------------------------------
2817eca4d6 | Shmuale Mark | 2014-06-29 12:41:56 -0400

Improve some checks.

--------------------------------------------------------------------------------
251b7a64e3 | Chris Campbell | 2014-06-29 17:16:05 +0100

Improve some monster descriptions

--------------------------------------------------------------------------------
678327c479 | Nicholas Feinberg | 2014-06-28 22:35:01 -0700

Remove an obsolete tag

--------------------------------------------------------------------------------
57b8f3f46b | Nicholas Feinberg | 2014-06-28 22:32:37 -0700

Bring back a classic

--------------------------------------------------------------------------------
a796aff3c3 | reaverb | 2014-06-28 17:10:06 -0400

Remove a couple more '#include's (main.cc)

--------------------------------------------------------------------------------
2e1c4acb5f | reaverb | 2014-06-28 17:09:50 -0400

Sort '#include's better (main.cc)

--------------------------------------------------------------------------------
0a78e6fbdf | reaverb | 2014-06-28 17:09:37 -0400

Sort '#include's better (player-reacts.cc)

--------------------------------------------------------------------------------
9120e8b1d0 | reaverb | 2014-06-28 17:09:00 -0400

Remove some unnecessary '#include's (player-reacts.cc)

--------------------------------------------------------------------------------
ffeacb841a | reaverb | 2014-06-28 15:27:26 -0400

Fix whitespace/braces (|amethyst)

--------------------------------------------------------------------------------
2391f6b1e4 | Nicholas Feinberg | 2014-06-28 12:07:36 -0700

Auto-ID Beogh-gifted equipment
Since it's all +0, uncursed, no ego.

--------------------------------------------------------------------------------
101b755ad0 | Nicholas Feinberg | 2014-06-28 12:07:15 -0700

Cleanup blessing/orc-name-granting code

--------------------------------------------------------------------------------
ba4b02462e | Nicholas Feinberg | 2014-06-28 12:07:09 -0700

Make TSO and Beogh ID the plusses they increase by blessing
To make it clearer what's going on.

--------------------------------------------------------------------------------
0b31d97df7 | Nicholas Feinberg | 2014-06-28 11:49:22 -0700

Bracing

--------------------------------------------------------------------------------
0b96851a9c | reaverb | 2014-06-28 14:37:04 -0400

Fix MUT_CONTEMPLATIVE being doubled (|amethyst)

--------------------------------------------------------------------------------
ccde527ab6 | Nicholas Feinberg | 2014-06-28 11:26:26 -0700

Remove an obsolete check

--------------------------------------------------------------------------------
59d885a2f5 | Nicholas Feinberg | 2014-06-28 11:26:26 -0700

Also remove hatch mimics
For basically the same reasons as door mimics.

It'd be really funny if someone tried to escape down a hatch
and found out it was a mimic, but in practice, good play usually
prevents that. :(

--------------------------------------------------------------------------------
61cbca4589 | Nicholas Feinberg | 2014-06-28 11:15:53 -0700

Remove certain boring types of feature mimics
Since players had no reason to want to go next to statues
or fountains anyway.

Door mimics were kind of funny, but encouraged testing every
door to see if it was a mimic, which doesn't seem necessary.

--------------------------------------------------------------------------------
1b4982c6ef | reaverb | 2014-06-28 14:04:40 -0400

Formatting Fixes (util/unbrace)

--------------------------------------------------------------------------------
dd99f45cb7 | Corin Buchanan-Howland | 2014-06-28 14:04:27 -0400

Iashol: Update msclr to clear_messages and apply more consistently.

--------------------------------------------------------------------------------
7b3b13c127 | Corin Buchanan-Howland | 2014-06-28 14:04:22 -0400

Iashol: Add fail_check()

--------------------------------------------------------------------------------
c7949fa8a4 | reaverb | 2014-06-28 14:03:21 -0400

Merge branch 'master'  into iashol
Conflicts:
	crawl-ref/source/enum.h
	crawl-ref/source/godabil.cc
	crawl-ref/source/mutation.cc
	crawl-ref/source/spl-cast.cc
	crawl-ref/source/tag-version.h

--------------------------------------------------------------------------------
b2652204ca | Vsevolod Kozlov | 2014-06-28 21:41:40 +0400

Rename the 'can_overwrite' vault tag to 'overwrite_floor_cell'.
In an attempt to clarify its new, more restricted behaviour.

--------------------------------------------------------------------------------
96e6dfd7e2 | Vsevolod Kozlov | 2014-06-28 21:31:12 +0400

Make the fallback ziggurat entry transparent.
No reason why it shouldn't be.

--------------------------------------------------------------------------------
65436deff7 | Nicholas Feinberg | 2014-06-28 10:29:18 -0700

Don't crash when vampires hit 'q' after bottling one corpse

--------------------------------------------------------------------------------
ba5879c987 | Vsevolod Kozlov | 2014-06-28 20:44:27 +0400

Only let can_overwrite vaults overwrite floor.
Overwriting other passable terrain can disrupt vault layout, and overwriting
non-passable terrain creates bugs and oddnesses.

--------------------------------------------------------------------------------
80c259224f | Vsevolod Kozlov | 2014-06-28 20:15:49 +0400

Don't place can_overwrite vaults on top of no_tele_into squares.

--------------------------------------------------------------------------------
0487cf09ed | Neil Moore | 2014-06-28 12:11:18 -0400

Document can_overwrite constraint.

--------------------------------------------------------------------------------
218910543e | Vsevolod Kozlov | 2014-06-28 19:50:42 +0400

Enforce a 1x1 size constraint on can_overwrite vaults.
Using it for anything larger would be unwise anyway.

--------------------------------------------------------------------------------
cd3db6f1a5 | Neil Moore | 2014-06-28 11:33:51 -0400

Don't shaft/hatch people into a death trap.
However, uniques can still place inside: there's no way to prevent
can_overwrite vaults from placing there.  There has been discussion
of making can_overwrite vaults avoid no_rtele_into, which would
solve that problem.

--------------------------------------------------------------------------------
851bb8df2a | Nicholas Feinberg | 2014-06-27 23:30:18 -0700

Improve confused tree behaviour
Previously, confusion interacted very poorly with tree-form.
It confused new players, since it'd just tell them "you can't
move", without clarifying how they could attack enemies (ctrl),
and it was very secretly abusable. Attempting to "move" into an
empty space takes no time while unable to move, and so you could
repeatedly attempt to move until confusion caused you to attack
an actual enemy... (including invisble ones!)

The simplest solution for now seems to be just to forbid confused
trees from doing anything more than checking if ctrl-attacking
causes penance. Some form of "forced attack" might make sense for
confused players trying to move into visible enemies, but silently
bypassing penance checks without the player hitting ctrl seems
bad... and it's not as simple as just calling _door_open() after
the penance-check bloc, since that'd call free_self_from_net()
twice!

--------------------------------------------------------------------------------
073aa2957e | Corin Buchanan-Howland | 2014-06-27 22:24:39 -0400

Iashol: Reduce piety for redundant sacrifices
Reduces piety gain from Sac Arcana - Summoning if you already have
Sacrifice Love, and vice versa.

--------------------------------------------------------------------------------
fa94ba3a6b | Corin Buchanan-Howland | 2014-06-27 22:24:36 -0400

Iashol: Anger existing friendlies under sac love
Sets up a DACTION to anger all friendly monsters once you've sacrificed
love.

--------------------------------------------------------------------------------
0563ef227b | Corin Buchanan-Howland | 2014-06-27 22:24:32 -0400

Iashol: prevent Power Jump targeter from choosing a monster
When you attempt to jump onto a visible monster, the targeter forces you to 
pick again.

--------------------------------------------------------------------------------
18399c6387 | Corin Buchanan-Howland | 2014-06-27 22:24:29 -0400

Iashol: Set MR penalty mutation to 40/per

--------------------------------------------------------------------------------
b9f27a8583 | Corin Buchanan-Howland | 2014-06-27 22:24:26 -0400

Iashol: fix demonspawn/silver issue
The only way to fully resolve the issue wherein demonspawn take
extra damage from silver is to keep track of how many innate mutations
Iashol has given and then subtract that from the total from Demonspawn
only

--------------------------------------------------------------------------------
2e43cf4a70 | Corin Buchanan-Howland | 2014-06-27 22:23:25 -0400

Partially revert "Don't count Iashol sacrifices for Ds silver damage."
This reverts commit b25dd5c88db37f17005cdc97a4c50b77b7b0cae3.

--------------------------------------------------------------------------------
23e6ba2fef | Corin Buchanan-Howland | 2014-06-27 22:19:38 -0400

Iashol: Switch * ability
Changed the 1* ability to block up to 10% of monster attacks (based on
piety) and redirects up to 3% of monster attacks (based on piety) to
other enemies or itself.

--------------------------------------------------------------------------------
eba43f1dda | Steve Melenchuk | 2014-06-27 19:56:47 -0600

Don't invalidate monster-aligned foes for frenzied mons (#8735).
This makes them properly pick any nearby monster, as originally
intended.

--------------------------------------------------------------------------------
bec7adb4a0 | Steve Melenchuk | 2014-06-27 19:40:31 -0600

nicolae vaults (#8745).
Dithmenos vaults have been edited to not use darkgray and not smoke out
the altar 100% of the time, and there are a couple of minor formatting
fixes as well.

--------------------------------------------------------------------------------
e0cce9ae3c | Corin Buchanan-Howland | 2014-06-27 21:19:18 -0400

Iashol: fix typo in sac read/drink messages

--------------------------------------------------------------------------------
4597da1386 | Corin Buchanan-Howland | 2014-06-27 21:18:51 -0400

Iashol: set ability damage beams to BEAM_ENERGY

--------------------------------------------------------------------------------
0ee8742857 | Shmuale Mark | 2014-06-27 17:28:08 -0400

Decontaminate all chunks.
"This chunk gives you less nutrition" is not a very interesting effects,
and most of the time the only real effect is that you have to press 'e' a
few more times. If chunks on the whole are too common (which in the
current food environment is very hard to define) monsters in general can
give fewer chunks, or chunks can be less nutritious; no reason to make
some monsters special.

A good deal of code is still around because of the other less-nutrition
case, non-ghoul saprovores eating rotten chunks.

--------------------------------------------------------------------------------
879dee472e | reaverb | 2014-06-27 13:53:29 -0400

Make sirens lose their special AI as allies (and into)
Also when they are berserk or insane (the other situation MAINTAIN_RANGE
enemies lose their special AI). This commit also encapsulates choosing a
monsters' firing target in a function.

--------------------------------------------------------------------------------
7a66f18449 | Chris Campbell | 2014-06-27 17:54:12 +0100

Fix a reference to Leda's slowing monster action speed (#8743)

--------------------------------------------------------------------------------
7df3b236cd | Shmuale Mark | 2014-06-27 12:40:51 -0400

Make charmed range maintainers follow the player normally (and into).

--------------------------------------------------------------------------------
a13f14e4cf | Shmuale Mark | 2014-06-27 10:46:05 -0400

Changelog tweaks.

--------------------------------------------------------------------------------
7e837e586b | Shmuale Mark | 2014-06-27 10:25:19 -0400

Only Dithmenos can prevent forest fires! (#8624)
There doesn't seem to be a simple way to prevent the penance from
coming around while still giving you XP for monsters killed, and also
giving penance when you start a forest fire on purpose. This seems to
be the simplest solution.

--------------------------------------------------------------------------------
a4838dc9d1 | Shmuale Mark | 2014-06-27 10:19:01 -0400

Inscribe Wyrmbane with "slay drac."
Similar to how Undeadhunter has a "disrupt" inscription.

--------------------------------------------------------------------------------
8093f27bde | Shmuale Mark | 2014-06-27 09:47:44 -0400

Improve necrophage description.

--------------------------------------------------------------------------------
47bdaa5c06 | Chris Campbell | 2014-06-27 12:10:53 +0100

Remove an obsolete ghost speech line (Kvaak)

--------------------------------------------------------------------------------
b18a5d7aff | Chris Campbell | 2014-06-27 11:52:04 +0100

Make base demonspawn much less common in Pan

--------------------------------------------------------------------------------
bf89b5e1fe | Chris Campbell | 2014-06-27 11:21:21 +0100

Fix a Donald speech entry
Broken by 0d434d8.

--------------------------------------------------------------------------------
03a20babed | Chris Campbell | 2014-06-27 10:32:46 +0100

Don't give unclassed draconians cloaks

--------------------------------------------------------------------------------
bc898cedac | Chris Campbell | 2014-06-27 10:31:55 +0100

Make enchanted cloaks glow
They should be treated the same way as other aux armour.

--------------------------------------------------------------------------------
2e80b9460f | Nicholas Feinberg | 2014-06-26 23:00:26 -0700

Remove a puzzle vault
The diamond obelisk vault was added to demo Tornado, but in
practice it's a spoily puzzle vault. The diamond obelisk is
put to good use in a couple of decorative vaults, and at some
point might be interesting in a vault that uses it as terrain
instead of as a puzzle. This vault, though, has gotta go.

--------------------------------------------------------------------------------
81106b096f | Neil Moore | 2014-06-27 01:45:06 -0400

Assert that we did not escape predestination.

--------------------------------------------------------------------------------
af64dd7e1a | Nicholas Feinberg | 2014-06-26 22:35:26 -0700

Fix another comment

--------------------------------------------------------------------------------
2f1a3c071c | Nicholas Feinberg | 2014-06-26 22:32:32 -0700

Fix a comment

--------------------------------------------------------------------------------
f75ec486db | Nicholas Feinberg | 2014-06-26 22:25:41 -0700

Make Qazlal's Upheaval not fail before targeting

--------------------------------------------------------------------------------
1cb8be525c | Nicholas Feinberg | 2014-06-26 22:25:41 -0700

Make Fedhas Sunlight not fail before targeting

--------------------------------------------------------------------------------
e460ca6889 | Nicholas Feinberg | 2014-06-26 22:25:41 -0700

Make Lugonu's Banish not fail before targeting

--------------------------------------------------------------------------------
358e3e32b8 | Nicholas Feinberg | 2014-06-26 22:25:41 -0700

Partially refactor cast_healing()

--------------------------------------------------------------------------------
d16265b1dc | Nicholas Feinberg | 2014-06-26 22:25:41 -0700

Make Makhleb's Destruction not fail before targeting

--------------------------------------------------------------------------------
55310b93fc | Nicholas Feinberg | 2014-06-26 22:25:41 -0700

Make Yred's Enslave Soul not fail before targeting

--------------------------------------------------------------------------------
0816ef1095 | Nicholas Feinberg | 2014-06-26 22:25:41 -0700

Make breath weapons not fail before targeting

--------------------------------------------------------------------------------
0ba0a0bc98 | Nicholas Feinberg | 2014-06-26 22:25:41 -0700

Partially refactor jump attack

--------------------------------------------------------------------------------
d3f10a37eb | Nate Rook | 2014-06-26 22:25:41 -0700

Have Imprison fail only after aborted.
This also serves as a proof-of-concept for applying the same change to
other abilities.

--------------------------------------------------------------------------------
7553af35b7 | Nate Rook | 2014-06-26 22:25:41 -0700

Make it possible for do_ability to target before failing.

--------------------------------------------------------------------------------
2f7a7cfbcb | Neil Moore | 2014-06-27 01:04:43 -0400

Make a sign conversion explicit.

--------------------------------------------------------------------------------
885142fd33 | Neil Moore | 2014-06-27 01:04:43 -0400

Simplify and improve some initialization macros.
Make SET_FIELDS safer by using a do { } while(0) block, which also gives
us a scope, so we don't have to take the name of the intermediate array
variable as a parameter.  Rename it to INIT_VEC (it only works on
vectors of strings, but whatever).  While we're at it, also make sure
we evaluate the argument only once.  Also, use an array of const char *s
instead of strings, make that array static and const, and use the
ARRAYSZ macro.

Then, replace most of the uses of INIT_VEC née SET_FIELDS with a wrapper
macro ITEM_FILEDS that shortens things a bit.

Finally, move the macro definiton outside the function, and reformat.

--------------------------------------------------------------------------------
933cb4062d | Nicholas Feinberg | 2014-06-26 19:55:45 -0700

Changelog through 0.15-a0-1733-gc591b79

--------------------------------------------------------------------------------
afe582e62d | Neil Moore | 2014-06-26 22:01:42 -0400

Assert that we don't use more RNGs than we have.

--------------------------------------------------------------------------------
f5b527b32e | Neil Moore | 2014-06-26 22:01:01 -0400

Deduplicate some code.

--------------------------------------------------------------------------------
6df916d868 | Neil Moore | 2014-06-26 21:26:51 -0400

Correct an article.

--------------------------------------------------------------------------------
c591b795fd | Nicholas Feinberg | 2014-06-26 17:54:10 -0700

Rebuild Shatter's description (alefury)
Make it clearer which creatures resist it, since that tends
to be both more common & more important than creatures which
are especially vulnerable to it.

--------------------------------------------------------------------------------
c305059349 | Nicholas Feinberg | 2014-06-26 17:41:58 -0700

Illuminate weapon/armour glow code
Simplified it to a simple plus threshold per armour class (body,
shield, etc), rather than a weird mix of random chance and poorly-
specified thresholds. Likewise set a threshold for weapons.

--------------------------------------------------------------------------------
108b6996ad | reaverb | 2014-06-26 19:47:32 -0400

Reduce code duplication

--------------------------------------------------------------------------------
078e12a44c | Neil Moore | 2014-06-26 19:37:01 -0400

Don't animate stone walls etc. (edlothiol, #8740)

--------------------------------------------------------------------------------
99b97708a0 | reaverb | 2014-06-26 15:22:25 -0400

Allow torpor snails to slow Chei worshippers (PleasingFungus, wheals)
There's no need for this complexity when there is no flavor problem with Chei 
allowing their followers to be further slowed.

--------------------------------------------------------------------------------
0e1b8faa9d | Shmuale Mark | 2014-06-26 14:16:49 -0400

Make living lost soul revival more like the undead one.
Turning the monster into a spectre is a really cool effect and causes
some useful things automatically, like making it evil, but has interface
problems (with showing the base monster type, not just the species) and
also monster-monster consistency ones (in general, spectral things can't
cast spells).

There are minor gameplay differences, mostly in that the new monster
will not have any of the resistances/vulnerabities of being undead,
but in general it should play similarly to how it already does.

--------------------------------------------------------------------------------
8d4f0ef980 | gammafunk | 2014-06-26 05:51:12 -0500

Clean up objstat value formatting
Use a fixed decimal point istead of scientific notation, and reduce
precision to 2.

--------------------------------------------------------------------------------
804a95838b | Nicholas Feinberg | 2014-06-26 00:00:32 -0700

Let godless hill orcs convert to priests with (p)
Since everyone seemed to assume that's how it worked anyway.
(Probably because that's how you convert to altar gods...)

Possibly this should be documented in-game. (But would that
just confuse players more?)

--------------------------------------------------------------------------------
8450e6c8d0 | Nicholas Feinberg | 2014-06-25 23:57:11 -0700

Clean up some string format code

--------------------------------------------------------------------------------
0a05dcac42 | Nicholas Feinberg | 2014-06-25 23:29:20 -0700

Prompt when swapping allies onto zot traps

--------------------------------------------------------------------------------
ae8f746483 | Nicholas Feinberg | 2014-06-25 21:05:32 -0700

Make allies trigger traps when swapping with the player
And remove an unused & undocumented return value.

--------------------------------------------------------------------------------
18c1c58180 | Nicholas Feinberg | 2014-06-25 21:04:46 -0700

Withhold TSO's grace from nudists
Re-adding a check that got lost in some earlier refactoring.

--------------------------------------------------------------------------------
cea3e54df0 | Nicholas Feinberg | 2014-06-25 19:42:41 -0700

Make on-level recall trigger traps

--------------------------------------------------------------------------------
8617044d01 | Nicholas Feinberg | 2014-06-25 19:21:25 -0700

Fixup a problem vault (Kvaak)
Uniques were spawning in the back & getting stuck. (Also, it
looked terrible.)

--------------------------------------------------------------------------------
495a01740e | gammafunk | 2014-06-25 20:50:43 -0500

Properly handle map build failures in objstat
Previously an additional check on a level that builder() had accepted
could cause both mapstat and objstat to abort. We now only abort
mapstat in this case, because these failures aren't very relevant to
objstat. We also fail in objstat if builder() fails, since such levels
might be very problematic for object statistics, but continue on with
mapstat in this case.

--------------------------------------------------------------------------------
0840c16e4d | gammafunk | 2014-06-25 20:50:43 -0500

Clean up function and variable names for objstat
We now consistently use objstat_ as a prefix for non-static functions
and don't use prefixes for static functions and variables. Various
enums, classes, and defines have also been renamed to more clearly
reflect their function.

I also added command-line help documentation for mapstat and objstat

--------------------------------------------------------------------------------
d817d06195 | gammafunk | 2014-06-25 20:50:43 -0500

Add a command-line option for the number of stat gen iterations
Use `-iters N' to set the number of iterations for -mapstat and
-objstat. This allows setting both the range of level generation as
well as the number of iterations. Now those options will either
generate the whole dungeon when given no arguments, or will generate
over the given level ranges.

--------------------------------------------------------------------------------
5372833504 | gammafunk | 2014-06-25 20:50:43 -0500

Fix objstats for rods, misc. items, corpseless monsters, and mimics
Display the correct properties for the first two, and report 0
chunks/nutrition for monsters that don't leave a corpse. Mimics are
now revealed after the level is generated so that the mimic monster is
created, and we don't count the mimic items towards item statistics.

--------------------------------------------------------------------------------
544f0ae2f5 | gammafunk | 2014-06-25 20:50:43 -0500

Write object statistics in one file per branch
All output in a single file was difficult to view and work with. Each
file uses a common prefix of "objstat_", and the file names are printed
to stdout.

--------------------------------------------------------------------------------
f1909d2967 | gammafunk | 2014-06-25 20:50:43 -0500

objstat: Item and monster generation statistics
The -objstat command-line option will generate iterations of the given
levels, compiling stats on every item and monster generated, and
average the results over the iterations. It's only available in debug
builds and uses the same map specification format as -mapstat. The
default number of iterations is 100.

--------------------------------------------------------------------------------
90c77aa1b4 | Nicholas Feinberg | 2014-06-25 18:47:23 -0700

Invert a check

--------------------------------------------------------------------------------
939456abc4 | Nicholas Feinberg | 2014-06-25 18:43:04 -0700

Unsquash +1 hats
And other pieces of +1 aux armour. (Since they're rare enough
that it won't be annoying to have too many glowing gloves, etc
around.)

+1 cloaks still have their plusses squashed, mainly because of Zot.

--------------------------------------------------------------------------------
7bd1ff7254 | Florian Diebold | 2014-06-26 00:44:38 +0200

Draw Shoals waves under features in Webtiles.
Also, fix a tiny drawing bug by replacing >= FLOOR_MAX by > FLOOR_MAX.

--------------------------------------------------------------------------------
9442d7426d | ontoclasm | 2014-06-25 17:05:02 -0500

Hopefully fix shoals coastlines & ink
They should draw underneath features now; it remains to be seen how
WebTiles will work out.

--------------------------------------------------------------------------------
4192df1434 | ontoclasm | 2014-06-25 14:38:45 -0500

Improve wall shadow behavior
Corners were being drawn on top of other shadows, and shadows were drawing
on top of grates.  In addition, I deepened the normal shadows a little
(they were almost invisible in many places), set Depths to use the darker
shadows, and added shadows for the top corners of walls.

--------------------------------------------------------------------------------
4d50fd9352 | gammafunk | 2014-06-25 13:39:48 -0500

Print some informative messages when running -mapstat
Print the numbers of levels, iterations, and branches, as well as the
output file.

--------------------------------------------------------------------------------
259044d0f8 | gammafunk | 2014-06-25 12:29:09 -0500

Don't try to give the horn to Geryon twice

--------------------------------------------------------------------------------
5c27b2e82a | Shmuale Mark | 2014-06-25 10:10:50 -0400

Get rid of M_NO_SKELETON for Z_NOZOMBIE monsters.

--------------------------------------------------------------------------------
90b49e12ab | Shmuale Mark | 2014-06-25 10:10:24 -0400

Don't allow infinite kraken simulacra.
Or of any other monster with M_NO_SKELETON.

--------------------------------------------------------------------------------
d0042cdcca | gammafunk | 2014-06-25 00:29:00 -0500

Some cleanups to mapstat code
Remove an unnecessary loop and properly prefix some static functions
and variables.

--------------------------------------------------------------------------------
8b1026bc74 | Nicholas Feinberg | 2014-06-24 22:25:31 -0700

Fix a shadowed variable name

--------------------------------------------------------------------------------
9691bb5c05 | Nicholas Feinberg | 2014-06-24 21:41:22 -0700

Give free ammo when gifting launchers to orcs

--------------------------------------------------------------------------------
dfc57823c7 | Nicholas Feinberg | 2014-06-24 21:41:22 -0700

Don't bless orcs with shields in an obscure bad case
Specifically, in the case that they're wielding a 1h
launcher (a sling), but carrying a two-handed melee
weapon in their alt slot.

--------------------------------------------------------------------------------
c94875da97 | Nicholas Feinberg | 2014-06-24 21:41:22 -0700

Don't make orc drop melee weapons when gifted launchers

--------------------------------------------------------------------------------
810044142f | Nicholas Feinberg | 2014-06-24 21:41:22 -0700

Don't mistake ranged weapons for melee weapons

--------------------------------------------------------------------------------
42ddfa208c | Nicholas Feinberg | 2014-06-24 21:41:22 -0700

Cleanup some monster throwing weapon pickup code
They probably don't need to be checking for plusses on darts.
Or, at all.

--------------------------------------------------------------------------------
1db180b6d3 | Nicholas Feinberg | 2014-06-24 21:41:19 -0700

Allow Beogh to gift ranged weapons & ammo

--------------------------------------------------------------------------------
612c5d83b7 | gammafunk | 2014-06-24 23:03:47 -0500

Clean up the mapstat function names and variables
The command-line option is -mapstat, so the non-static functions use
the prefix mapstat_ instead of mapgen_ now for consistency. The static
functions and variables have had their mg_ prefixes removed.

--------------------------------------------------------------------------------
912cc7b8de | gammafunk | 2014-06-24 21:43:50 -0500

Clean up a lua function to count altars for Temple vaults.
This returned an empty string under mapstat, generating an error so
I've given it a default altar count argument to be used when no
template_altar tag is available for any reason.

--------------------------------------------------------------------------------
885872e096 | gammafunk | 2014-06-24 21:43:50 -0500

Enable the forest layout for Forest until a major version change
This branch doesn't generate in games started after the Forest
removal, but it not having a layout broke -mapstat as well as
possibly breaking pre-Forest-removal games that generated Forest and
upgrade.

--------------------------------------------------------------------------------
08576f0691 | gammafunk | 2014-06-24 21:43:50 -0500

Add a no_exits tag to two Tar vaults

--------------------------------------------------------------------------------
0ad7181243 | gammafunk | 2014-06-24 21:43:50 -0500

Use the proper sling ego in a Geh vault

--------------------------------------------------------------------------------
6f7bc82608 | Brendan Hickey | 2014-06-24 23:22:57 +0000

Disable x-overflow for game messages
Messages should never overflow, they should word wrap. On x-overflow,
a scrollbar appears, which decreases the overall size of the window
and exacerbates the problem.

--------------------------------------------------------------------------------
c45ae6e669 | Brendan Hickey | 2014-06-24 23:05:41 +0000

Increase opacity of chat window.

--------------------------------------------------------------------------------
fa11693111 | ontoclasm | 2014-06-24 16:44:21 -0500

Ability icons (plus flight)

--------------------------------------------------------------------------------
88037fbdcb | Shmuale Mark | 2014-06-24 16:57:41 -0400

Simplify a regex.
Runes are pre-identified these days.

--------------------------------------------------------------------------------
62bcefd29f | Chris Campbell | 2014-06-24 21:54:25 +0100

Reduce the weights of some Lua altar vaults

--------------------------------------------------------------------------------
c8f47fad45 | Nicholas Feinberg | 2014-06-24 08:47:33 -0700

Unsquash artefacts (reaverb)

--------------------------------------------------------------------------------
10a5ae45a0 | Shmuale Mark | 2014-06-24 10:46:25 -0400

Mark +2 aux armour as glowing/runed instead of squashing it.

--------------------------------------------------------------------------------
c6cfd978cd | Shmuale Mark | 2014-06-24 10:46:07 -0400

Ditch an old use of plus2.

--------------------------------------------------------------------------------
c5376b701b | ontoclasm | 2014-06-24 00:51:30 -0500

An icon for Beogh's gifting ability

--------------------------------------------------------------------------------
611943f005 | Nicholas Feinberg | 2014-06-23 22:38:12 -0700

Unsquash clubs (minmay)
Let them glow, since they wouldn't be able to generate with
enchants now otherwise!

--------------------------------------------------------------------------------
aa9fd03a62 | Nicholas Feinberg | 2014-06-23 22:38:12 -0700

bless.cc refactoring

--------------------------------------------------------------------------------
ec3c4bb5ce | Nicholas Feinberg | 2014-06-23 22:38:12 -0700

Adjust Beogh's Give Item ability name/description
Added "Named" to the ability name, since that seemed to
confuse every single person who used it. (It was already
in the description, but who reads that?) It's longer than
I'd like, now, but not intolerably.

Also tweaked the description slightly.

--------------------------------------------------------------------------------
493e150610 | ontoclasm | 2014-06-24 00:25:01 -0500

Kiku invo icons

--------------------------------------------------------------------------------
3322858e09 | ontoclasm | 2014-06-24 00:25:01 -0500

Makh invo icons

--------------------------------------------------------------------------------
16dc7de330 | Nicholas Feinberg | 2014-06-23 21:55:15 -0700

Squash plusses on boring items (Hirsch)
The intent seems to have been to simulate 'mundane' good/bad items,
but in practice they encouraged trying on every found armour in the
hope of scrounging out a few points of AC, early on.

--------------------------------------------------------------------------------
e01c751b4b | Nicholas Feinberg | 2014-06-23 21:34:05 -0700

Upgrade some weapon upgrades
It's probably okay to skip a few steps here and there;
a whip isn't much of a blessing. (And cutlasses are uncommon
enough that they probably shouldn't be given out by Beogh.)

--------------------------------------------------------------------------------
4580af5afb | ontoclasm | 2014-06-23 12:23:10 -0500

Air/Nec/Summ spell tiles (roctavian)

--------------------------------------------------------------------------------
4e5d555478 | Shmuale Mark | 2014-06-23 11:42:36 -0400

Simplify spiny code, and ignore player armour.
The fact that lower-evp armour was better is nowhere obvious to the
player, and the spiny mutation is rare and low-impact enough that
most likely the player would never figure it out on their own. The
player now effectively wears ring mail all the time for trigger chance,
and a robe for damage.

There seemed to be an intention to make monster spines (only) ignore
half of AC, but since the argument was passed to the wrong place it
instead doubled the effective GDR; both are extremely marginal effects
and not worth keeping.

There was also a chance for monster spines to fail based on attacker
AC, in addition to checking AC normally for the damage; the chance
now depends only on the degree of monster spininess.

--------------------------------------------------------------------------------
324f38de48 | Shmuale Mark | 2014-06-23 11:01:12 -0400

Let a special case for staff of air float away (minqmay).
It's been around since pre-DCSS times so I don't know the reason for
it existing, but if it's that rElec is rarer than other resistances,
that doesn't really seem to be the case.

--------------------------------------------------------------------------------
43d3e2817a | Shmuale Mark | 2014-06-23 10:31:40 -0400

De-rune a vault.
There's no need to have two separate things here stopping autoexplore.

--------------------------------------------------------------------------------
6c14c25dc5 | Nicholas Feinberg | 2014-06-23 00:07:15 -0700

Partially revert removal of bone dragons from generation
They're decent in Hells for the same reasons slow melee
monsters are (wasted time = hell effects), and they're
a fun thing to run away from in Abyss, or to get from
Lugonu's Corruption. (Note of course that wasting time
in Abyss is potentially dangerous for similar reasons to
Hell...)

--------------------------------------------------------------------------------
cf26eb8ff3 | Nicholas Feinberg | 2014-06-22 23:08:07 -0700

Split blessing functions into a new file

--------------------------------------------------------------------------------
17ba3dd857 | Nicholas Feinberg | 2014-06-22 22:51:20 -0700

Possibly fix 8731

--------------------------------------------------------------------------------
49c5cce947 | Nicholas Feinberg | 2014-06-22 20:40:39 -0700

Re-enable, and fix, DEBUG_MONSPEAK

--------------------------------------------------------------------------------
0d434d8aa6 | Nicholas Feinberg | 2014-06-22 20:39:30 -0700

Add Zot lines for Donald (Lightli)
...not that these are likely to ever appear, but hey,
no harm.

I went through and rewrote a bunch of these, but most
are still Lightli's.

--------------------------------------------------------------------------------
c5dd9327bb | reaverb | 2014-06-22 22:39:06 -0400

Simplify mon-pick-data.h weights
Every weight greater than 200 or so has been rounded to the nearest
multiple of 5. This should simplify the numbers without significantly
affecting gameplay.

--------------------------------------------------------------------------------
22f47d3353 | Mikko Vepsalainen | 2014-06-22 18:26:45 -0700

Duvessa and Dowan cleanup.
Avoid some code duplication, minor cleanup. Functional change: Dowan will haste
even when invisible, if he's near when Duvessa dies (consistent with Duvessa's
berserking).

[Committer's note: Exported some properties to mon-death.h &
added an attempt at save-compat... such as it is.]

--------------------------------------------------------------------------------
9a6eb53003 | Mikko Vepsalainen | 2014-06-22 18:07:35 -0700

Upgrade Duvessa or Dowan even when the other twin dies out of sight. Fixes 
#7211.

--------------------------------------------------------------------------------
8a1d77a4bc | Mikko Vepsalainen | 2014-06-22 18:05:11 -0700

Dowan's updated spellbook after her sister's death is now shown in description. 
Fixes #8401.

--------------------------------------------------------------------------------
02f5c33a72 | reaverb | 2014-06-22 20:37:37 -0400

Clean up hall_of_Zot .des a tiny bit (gammafunk)

--------------------------------------------------------------------------------
36fafe252f | infiniplex | 2014-06-22 20:03:44 -0400

Update layout_regular_city and add to Lair

--------------------------------------------------------------------------------
5d88d9774f | infiniplex | 2014-06-22 20:01:58 -0400

Update and enable layout_cocytus_water_paths

--------------------------------------------------------------------------------
c76c7bb688 | Nicholas Feinberg | 2014-06-22 16:59:12 -0700

Fix a crash when recalling monsters onto shafts (8717)
Also removes a layer of indentation from recall_offlevel_ally();
apologies for the messy diff!

--------------------------------------------------------------------------------
3dc8773976 | infiniplex | 2014-06-22 19:46:08 -0400

Better layout type names

--------------------------------------------------------------------------------
2d46a37bf2 | reaverb | 2014-06-22 18:00:17 -0400

Remove Bone Dragons from normal generation (KoboldLord)
These monsters were never a threat where they naturally spawned,so now
they only exist for vaults and Yred gifts. Ideally some substitute
monster would be found for those purposes so these monsters can be
completely removed.

Bone dragons being problematic in this way was brought up a few days ago
on the Tavern and ##crawl-dev, but the discussion has died down so I'm
removing Bone Dragons for now.

--------------------------------------------------------------------------------
b4d1502afd | Nicholas Feinberg | 2014-06-22 13:19:34 -0700

Make beogh blessing gift types more reasonable

--------------------------------------------------------------------------------
f053908ff2 | Nicholas Feinberg | 2014-06-22 13:19:34 -0700

Update a comment

--------------------------------------------------------------------------------
ceae2edba1 | reaverb | 2014-06-22 16:12:23 -0400

Rename 'mesclr()' to 'clear_messages()'

--------------------------------------------------------------------------------
7a751d0484 | reaverb | 2014-06-22 14:31:57 -0400

Formatting Fixes

--------------------------------------------------------------------------------
e0dfef650b | reaverb | 2014-06-22 14:31:57 -0400

Fix monsters reaching or throwing things while in nets (#8724)

--------------------------------------------------------------------------------
a5a37449bc | Neil Moore | 2014-06-22 14:24:59 -0400

Comment a function (SamB)

--------------------------------------------------------------------------------
99ae1ee205 | Shmuale Mark | 2014-06-22 13:01:43 -0400

Promote intra-cephalopod monarchy synergy.
Octopus king trident gets +1 for every octopus ring worn, ending at
+16, naturally.

--------------------------------------------------------------------------------
4eb87e29c6 | Shmuale Mark | 2014-06-22 12:29:38 -0400

Allow rings of slaying to be up to +8.
But only quite rarely.

--------------------------------------------------------------------------------
11bbb12bfd | Shmuale Mark | 2014-06-22 10:44:40 -0400

Macro-ify recolouring-only monsters as well.

--------------------------------------------------------------------------------
465957cba4 | Shmuale Mark | 2014-06-22 10:03:45 -0400

The great mon-stuff migration.
A good deal of functions move to the two new files, mon-poly and
mon-message. Of the others, some go to where they are used, some to
mon-util, and a few are made member methods of monster.

This probably breaks Xcode compilation, and I'm not able to test
the changes I made to MSVC that will (hopefully) keep it working.

--------------------------------------------------------------------------------
393eda0d44 | Nicholas Feinberg | 2014-06-21 13:23:59 -0700

Disable Nemelex in Zot Defense
Since he now uses exploration piety, which doesn't really work
there.

--------------------------------------------------------------------------------
f7fddc81ff | Nicholas Feinberg | 2014-06-21 13:00:17 -0700

Correct the call to apply_location_effects() in trample
Doesn't seem like this ever matters, but it's the principle.

--------------------------------------------------------------------------------
e4f72f64e5 | reaverb | 2014-06-21 15:54:26 -0400

Remove some liquid-only, melee-only monster spawns (Psiweapon)
This commit replaces some monsters which can only damage players if they
are standing next to a liquid (lava worm, shark, big fish, etc) with
MONS_NO_MONSTER in the liquid spawn tables. These monsters are
problematic because the player can easily avoid them by moving away.

Monsters such as electric eels or kraken are not changed, since they are
relevant more often (for example, in vaults were they guard branch
entrances). This doesn't mean they work very well currently, but
starting with this minimal change seems best.

Swamp water spawns have also been left alone, because the large amount
of water there means that water monsters are both more relevant and
that their removal would affect xp totals.

--------------------------------------------------------------------------------
93daa8595e | reaverb | 2014-06-21 14:41:49 -0400

Remove some Forest spawn tables on TAG_MAJOR_VERSION bump
The only reason I'm not removing the main one now is that it still might
be used for Crypt zombies.

--------------------------------------------------------------------------------
25bcbd27cf | Nicholas Feinberg | 2014-06-20 23:53:54 -0700

Make torpor snails give Slow instead of -Swift
To avoid certain issues with re-using durations in unexpected
ways (-swift prevented casting Swiftness & gave a bad @ desc),
and also allow the effect to straightforwardly be applied to
player allies. (Answering the question, "wait, why does this
only affect the player?)

Their hd, ac, and damage have been shifted slightly downwards,
and their xp multiplier has been shifted dramatically upward,
in an attempt to avoid making them *too* much stronger.

--------------------------------------------------------------------------------
ed8ba04e16 | reaverb | 2014-06-21 02:06:33 -0400

Fix Wyrmbane not being enchanted on kills
The old code didn't work for several reasons (such as not reseting
mondied despite possibly changing it). The new code awkwardly saves
information before possibly killing the defender, so a better solution
would be nice.

Also contains some miscellaneous refactoring of the
_WYRMBANE_melee_effects() function.

--------------------------------------------------------------------------------
bca73d33b7 | Nicholas Feinberg | 2014-06-20 22:49:12 -0700

Fix wizmode blessing (MarvinPA)

--------------------------------------------------------------------------------
8b14d17603 | Nicholas Feinberg | 2014-06-20 22:45:22 -0700

Add a "New Game" option to the bottom of the save list
To provide an alternate path for players who don't realize
the way to have more than one character running at a time.
(Offline.)

--------------------------------------------------------------------------------
2ba718fbf9 | Nicholas Feinberg | 2014-06-20 22:11:00 -0700

Adjust the Contemplative mutation
Make it a badmut (since it is!), and give it a new name
better suiting its new status.

--------------------------------------------------------------------------------
dbf8174808 | Nicholas Feinberg | 2014-06-20 21:38:16 -0700

Remove four-year-old cruft

--------------------------------------------------------------------------------
efc16463ef | Nicholas Feinberg | 2014-06-20 20:35:54 -0700

Make Iron Devil tiles display weapons

--------------------------------------------------------------------------------
c3eca8fdb5 | Nicholas Feinberg | 2014-06-20 20:04:48 -0700

Recognize gastropodal leadership potential (gammafunk)

--------------------------------------------------------------------------------
31a4f560d0 | Neil Moore | 2014-06-20 18:16:36 -0400

Whitespace fixes.

--------------------------------------------------------------------------------
ec188f0e13 | Neil Moore | 2014-06-20 18:16:29 -0400

Assert rather than segfault in #8717

--------------------------------------------------------------------------------
d490d05e1d | ontoclasm | 2014-06-20 16:27:52 -0500

Roxanne tile edits

--------------------------------------------------------------------------------
98db9bbf73 | Nicholas Feinberg | 2014-06-19 22:48:01 -0700

Allow Beogh to give equipment to naked/unarmed orcs
The level given is very arbitrary; it might be simpler
to just use the current depth, but I have a vague feeling
that might be exploitable somehow...?

--------------------------------------------------------------------------------
9f76a50889 | Nicholas Feinberg | 2014-06-19 21:38:25 -0700

Remove a seven-year-old comment
Not likely code to return to use, given how misleading it is.

--------------------------------------------------------------------------------
1bcc557249 | Nicholas Feinberg | 2014-06-19 21:32:41 -0700

Enhance inter-species cooperation

--------------------------------------------------------------------------------
939d0b49d8 | Nicholas Feinberg | 2014-06-19 21:15:17 -0700

Promote inter-species cooperation

--------------------------------------------------------------------------------
b25dd5c88d | Neil Moore | 2014-06-19 23:05:35 -0400

Don't count Iashol sacrifices for Ds silver damage.
Demonspawn took silver damage for innate mutations, not only acquired
ones, but Iashol sacrifices also counted as innate mutations.  Now we
only count sacrifice mutations if specifically asked to.

--------------------------------------------------------------------------------
d2b9d81503 | Neil Moore | 2014-06-19 22:32:58 -0400

Don't count augmented innate mutations for silver damage.
If you had an innate mutation at non-maximum level, then gained the last
level as a non-innate mutation, how_mutated was counting all the levels,
including the innate ones.  This meant that a minotaur who got Horns
from !benemut would take three times as much silver damage as one who
got, say, scales.

This doesn't affect demonspawn, whose innate mutations do count for
purposes of silver damage.

(cherry picked from commit df118164fecb6f63ba9eee7a6a750bee6b4b940f)

--------------------------------------------------------------------------------
626072cac1 | Nicholas Feinberg | 2014-06-19 19:28:59 -0700

Make Torpor Snails more common
For testing purposes; they'll probably be shifted back down
after the honeymoon.

--------------------------------------------------------------------------------
126b81b88b | Nicholas Feinberg | 2014-06-19 19:23:40 -0700

#define a prop

--------------------------------------------------------------------------------
ba2d0fbcd7 | Nicholas Feinberg | 2014-06-19 19:23:40 -0700

Allow Beogh to bless player-gifted equipment

--------------------------------------------------------------------------------
0532758103 | Nicholas Feinberg | 2014-06-19 19:23:39 -0700

Buff beogh buffs
Dramatically increase the odds of weapon/armour-type upgrades,
though somewhat less so for very good weapon types. Decrease
the odds of getting to high enchantment plusses. Overall
increase the odds of all equipment upgrades by 50%.

The goal is to make Beogh over time automatically get your
followers into decent shape, while still letting special gifts
be better than what Beogh will upgrade your followers' kit to.

--------------------------------------------------------------------------------
fbcc6ff74d | Steve Melenchuk | 2014-06-19 19:34:57 -0600

A city layout from infiniplex (#8565).

--------------------------------------------------------------------------------
308f6024ac | infiniplex | 2014-06-19 19:34:57 -0600

Add LUA function to find areas around primary vault

--------------------------------------------------------------------------------
16cf1048d6 | Steve Melenchuk | 2014-06-19 19:34:57 -0600

Treat minor Pan lord vaults properly as primary vaults (infiniplex).
I'm not sure why this extra behaviour was still around.

--------------------------------------------------------------------------------
a500ab0ab4 | Neil Moore | 2014-06-19 21:24:00 -0400

Avoid a random_var crash (#8698)
If the sum of the weights of a random_var goes over INT_MAX, rescale
them rather than leaving the total as a negative number.

--------------------------------------------------------------------------------
29500c91d5 | Chris Campbell | 2014-06-19 22:48:56 +0100

Update Firestarter's description

--------------------------------------------------------------------------------
06a2d03dba | ontoclasm | 2014-06-19 15:12:55 -0500

Stray pixels

--------------------------------------------------------------------------------
d3b94b4c6e | reaverb | 2014-06-19 13:19:09 -0400

Let VS drink !curing to cure rot
Possible, for example, with lichform.

--------------------------------------------------------------------------------
8d9a0010c1 | Shmuale Mark | 2014-06-19 12:53:02 -0400

Unnerf some unrands.
And nerf Leech a bit more.

--------------------------------------------------------------------------------
0031e25ff8 | Shmuale Mark | 2014-06-19 12:53:00 -0400

Get rid of a function.
The term "insanity" is used for several different things (and there's
even ENCH_MAD which is not the same either). It would be weird to allow
Discorded monsters to be extra-Recitable, and as it stands the function
name is just misleading.

--------------------------------------------------------------------------------
919266dbc6 | Shmuale Mark | 2014-06-19 12:52:57 -0400

Rename functions (|amethyst).

--------------------------------------------------------------------------------
b016ecab18 | Chris Campbell | 2014-06-19 17:47:06 +0100

Remove an out-of-date Arenasprint comment
TRJ should work properly now, if somebody would like to add him as the
Arenasprint Slime boss - this was fixed for Linesprint in ddb5f4a2b.

--------------------------------------------------------------------------------
91977a6aa4 | Chris Campbell | 2014-06-19 17:47:03 +0100

Remove some out-of-date Zotdef messages

--------------------------------------------------------------------------------
b4910ef540 | Chris Campbell | 2014-06-19 17:47:01 +0100

Slightly reduce Deal Four's piety cost

--------------------------------------------------------------------------------
771e696919 | Chris Campbell | 2014-06-19 17:46:59 +0100

Partially revert "Make BLOODLUST and SKULLCRUSHER a bit stronger (rchandra)"
+10 strength is a little excessive, and both of these randarts are already
strong and unique. Leave Skullcrusher with slightly more strength than
before.

This partially reverts commit be977e419681aac4b57322b9a37f7aae11c598f8.

--------------------------------------------------------------------------------
729722a40c | Chris Campbell | 2014-06-19 17:46:58 +0100

Slightly increase Nemelex's rate of piety gain for exploration

--------------------------------------------------------------------------------
827440af47 | Chris Campbell | 2014-06-19 17:46:57 +0100

Remove an out-of-date comment

--------------------------------------------------------------------------------
61669e1ba5 | Chris Campbell | 2014-06-19 17:46:55 +0100

Adjust deck of wonders contents
To include some cards that are appropriate in non-gifted decks (Focus,
Mercenary, Helix), and to make the rest of the deck less similar to
the deck of battle.

--------------------------------------------------------------------------------
8d501b16be | Chris Campbell | 2014-06-19 17:46:54 +0100

Remove the battlelust card
It was only in Wonders and only duplicated potion effects (which were
already duplicated by other cards such as Potion in other decks).

--------------------------------------------------------------------------------
bb5247bde4 | Chris Campbell | 2014-06-19 17:46:53 +0100

Fix some wizlab floor descriptions
Make some of them actually appear in-game, and remove some of the more
awkward-sounding ones.

--------------------------------------------------------------------------------
276ee832b3 | Chris Campbell | 2014-06-19 17:46:52 +0100

Add no_item_gen to an arrival vault

--------------------------------------------------------------------------------
85638fe5c4 | Neil Moore | 2014-06-19 12:31:00 -0400

Don't crash when there's no spot to animate a weapon into.
Also when there are too many monsters on the level, etc.

--------------------------------------------------------------------------------
61e7c15658 | Shmuale Mark | 2014-06-19 12:09:55 -0400

Try to reduce duplication in Recite code.
is_chaotic() and is_unclean() have been changed to return an int
roughly equal to what would have been returned before by the Zin
recite function. Some bool flags were added to the function to make
it still work right for the other uses (e.g. silver).

Prince Ribbit is no longer specially vulnerable to Recite, and insane/
sluggish uniques are unclean rather than chaotic, which seems more
consistent with the other uses of the terms.

The special case for nonliving and plant monsters to be unrecitable
is removed.

--------------------------------------------------------------------------------
df118164fe | Neil Moore | 2014-06-19 11:52:09 -0400

Don't count augmented innate mutations for silver damage.
If you had an innate mutation at non-maximum level, then gained the last
level as a non-innate mutation, how_mutated was counting all the levels,
including the innate ones.  This meant that a minotaur who got Horns
from !benemut would take three times as much silver damage as one who
got, say, scales.

This doesn't affect demonspawn, whose innate mutations do count for
purposes of silver damage.

--------------------------------------------------------------------------------
0879b052e7 | Shmuale Mark | 2014-06-19 08:26:45 -0400

Allow reciting to Gastronok on his own again.
He got accidentally removed in cf92af14d, though he was still unclean
anyway.

--------------------------------------------------------------------------------
27631af434 | Neil Moore | 2014-06-19 04:08:15 -0400

Add braces.

--------------------------------------------------------------------------------
d15dadc4ff | Neil Moore | 2014-06-19 04:06:44 -0400

Make Mara's summoned clones time out when he dies.
Clones from chaos melee are not affected, but would be easy enough to
change.

Perhaps temporary clones could actually be is_summoned?

--------------------------------------------------------------------------------
816628f367 | Nicholas Feinberg | 2014-06-19 00:15:03 -0700

Don't make TSO mad when killing an illusion

--------------------------------------------------------------------------------
39358eb848 | Nicholas Feinberg | 2014-06-19 00:05:50 -0700

Don't make TSO mad when attacking an illusion (RoboCicero)
Specifically, a Mara-spawned illusion of an angel.

--------------------------------------------------------------------------------
20f17586ca | Nicholas Feinberg | 2014-06-18 23:46:24 -0700

Take the 'trap' out of web traps!

--------------------------------------------------------------------------------
9b5e66a160 | gammafunk | 2014-06-19 01:05:03 -0500

Some cleanups to a vault

--------------------------------------------------------------------------------
6821404c21 | Nicholas Feinberg | 2014-06-18 22:42:53 -0700

Pre-identify fixed items in a vault

--------------------------------------------------------------------------------
cf92af14d3 | Nicholas Feinberg | 2014-06-18 22:38:35 -0700

Fixup Zin's hatred of uniques (Not My Leg)

--------------------------------------------------------------------------------
c420d8f2f5 | Nicholas Feinberg | 2014-06-18 22:29:15 -0700

Improve weapon/armour blessing messages (Brannock, reaverb)

--------------------------------------------------------------------------------
436b12b5bb | Neil Moore | 2014-06-19 01:22:27 -0400

Remove an unused variable.

--------------------------------------------------------------------------------
5952e57e5e | reaverb | 2014-06-19 01:19:02 -0400

Remove some more references to dragon slaying (DrKe)

--------------------------------------------------------------------------------
be977e4196 | Nicholas Feinberg | 2014-06-18 22:13:31 -0700

Make BLOODLUST and SKULLCRUSHER a bit stronger (rchandra)

--------------------------------------------------------------------------------
407dc70bcf | Nicholas Feinberg | 2014-06-18 22:07:46 -0700

Don't let Beogh bless items gifted by the player

--------------------------------------------------------------------------------
c530747fc0 | Nicholas Feinberg | 2014-06-18 21:32:02 -0700

Refactor Beogh/TSO blessing code

--------------------------------------------------------------------------------
46ce0616d5 | reaverb | 2014-06-18 23:52:58 -0400

Re-implement the dragon slaying brand for Wyrmbane
As a rare unrandart, it can be exempt from the normal rules for what's
deep enough for a weapon brand.

--------------------------------------------------------------------------------
9b7421e1bc | reaverb | 2014-06-18 23:52:57 -0400

Remove the dragon slaying brand
Generally it doesn't create interesting decisions because dragons are
such a small group and are mostly a subset of monsters slowed by the
freezing brand. In addition, it has rather arbitrary effects against
players, hitting some for an degenerate amount of damage while ignoring
others.

--------------------------------------------------------------------------------
6e7b783f7d | Neil Moore | 2014-06-18 23:15:42 -0400

Formatting fixes.

--------------------------------------------------------------------------------
f8f402f42f | Neil Moore | 2014-06-18 22:56:58 -0400

Simplify with a macro.
It's less wordy to use than the equivalent template function.

--------------------------------------------------------------------------------
5a5dd8fb19 | Corin Buchanan-Howland | 2014-06-18 22:46:16 -0400

Iashol: Show sacrifice piety desc, improve piety skill divisor
Shows a text description of the magnitude of a sacrifice based on
approximate piety value: piety 0-15: trivial; 16-25: modest;
26-35: significant; 36-50: major; 51+ incredible.

Also changed the divisor for skill points used to calculate extra
piety from 50 to 700. It should be much less abusable now.

(cherry picked from commit f371867482df0e926c3deee9b0a84aea99527883)

--------------------------------------------------------------------------------
9ca1628949 | Corin Buchanan-Howland | 2014-06-18 22:45:44 -0400

Iashol: Fix a typo
(cherry picked from commit dc56b867a9c6b8426e86a5086f9a309e37b180f0)

--------------------------------------------------------------------------------
616f59b995 | infiniplex | 2014-06-18 19:57:12 -0500

Update layout weights and placement (#8610)
commiter's note:

I've applied this without any changes, but I did generate each
effected branch level 5 times or so and saw no outright errors.

See the Excel table in the bug report for a summary:

https://crawl.develz.org/mantis/file_download.php?file_id=5951&type=bug

The following layouts have been disabled, all with notes describing
how they might be reworked, save for layout_waterfall, which may be
removed:

layout_subdivisions, layout_twisted_cavern, layout_overlapping_boxes,
layout_waterfall, layout_gehenna_lava_paths, layout_cellular_growth.

The layout layout_big_grid was enabled in Lair with weight 2.

--------------------------------------------------------------------------------
4aea66124d | Corin Buchanan-Howland | 2014-06-18 20:55:14 -0400

Stop Summon Swarm from looping infinitely.
Summon Swarm tries repeatedly to find a bug that your god doesn't hate.
It tries so hard that it never, ever stops trying. This commit limits
that exuberance.

[Committer's note: adjusted the logic a bit, and increased the loop bounds
 from 20 to 100.  -nfm]

(cherry picked from commit eaab847603a79d2f14261b1b1365691aed26f352)

--------------------------------------------------------------------------------
eaab847603 | Corin Buchanan-Howland | 2014-06-18 20:50:36 -0400

Stop Summon Swarm from looping infinitely.
Summon Swarm tries repeatedly to find a bug that your god doesn't hate.
It tries so hard that it never, ever stops trying. This commit limits
that exuberance.

[Committer's note: adjusted the logic a bit, and increased the loop bounds
 from 20 to 100.  -nfm]

--------------------------------------------------------------------------------
fc9929fd99 | Neil Moore | 2014-06-18 18:53:28 -0400

Staticalisation.

--------------------------------------------------------------------------------
c0acb25f08 | Shmuale Mark | 2014-06-18 17:55:23 -0400

Two new hit messages for LANG_GRUNT (#8348, reaverb).

--------------------------------------------------------------------------------
d26fec2bac | Shmuale Mark | 2014-06-18 17:06:49 -0400

Replace brown oozes in jelly special rooms (MarvinPA).

--------------------------------------------------------------------------------
af43692c91 | Shmuale Mark | 2014-06-18 11:04:47 -0400

Add a failure check in Necronomicon gifting (floatingatoll, #8417).

--------------------------------------------------------------------------------
42f0a7f0bb | Shmuale Mark | 2014-06-18 11:04:45 -0400

Get rid of a few spurious uses of mons_base_char().

--------------------------------------------------------------------------------
4c04b3bc5c | Shmuale Mark | 2014-06-18 11:04:42 -0400

Comment and simplify.

--------------------------------------------------------------------------------
c96ddb718a | Nicholas Feinberg | 2014-06-17 23:30:10 -0700

Refactor some branding code

--------------------------------------------------------------------------------
5fb45b412a | Nicholas Feinberg | 2014-06-17 23:06:29 -0700

Brace.

--------------------------------------------------------------------------------
47cdaedce3 | Nicholas Feinberg | 2014-06-17 21:19:36 -0700

Differentiate teleport trap tiles

--------------------------------------------------------------------------------
c06e81946b | Nicholas Feinberg | 2014-06-17 21:19:36 -0700

Replace randomly-generate teleport traps with 1-shot versions

--------------------------------------------------------------------------------
6f04e5fe9d | reaverb | 2014-06-17 21:00:39 -0400

Let Slimify work on God Gifts
It was a little odd you could polymorph god wrath enemies but not
Slimify them.

--------------------------------------------------------------------------------
38869bdfd2 | ontoclasm | 2014-06-17 17:08:27 -0500

Alphabetize.

--------------------------------------------------------------------------------
dbe329f663 | ontoclasm | 2014-06-17 16:59:46 -0500

Eye of draining title screen (Peileppe/Bloax, 8645)

--------------------------------------------------------------------------------
797ed0dad3 | reaverb | 2014-06-17 16:47:37 -0400

Fix braces for Torpor Snail bands

--------------------------------------------------------------------------------
6e24b1addc | Shmuale Mark | 2014-06-17 14:10:41 -0400

De-rune a vault.

--------------------------------------------------------------------------------
74d4e68c6c | Shmuale Mark | 2014-06-17 13:01:32 -0400

Remove pulsating lumps.
Cigo's now has simple shapeshifters, which seem to work all right.

--------------------------------------------------------------------------------
82d525cfdc | ontoclasm | 2014-06-17 11:19:34 -0500

Demon summoning icons

--------------------------------------------------------------------------------
453527f43a | Shmuale Mark | 2014-06-17 11:49:24 -0400

Remove brown oozes.
The idea behind them seems to be a simple upgrade to a jelly, rather
than getting one of the more complicated and harder monsters like
acid blobs/death oozes/azure jellies. The thing is, they generate only
in Slime, outside vaults, and by then they're not very different from
jellies, being mostly just "weak things that corrode." Even in the Slime
entrance with 4 of them, which is all of them most games will see, they're
already pretty weak. Slime itself has plenty of enemy variety and can
stand the removal.

--------------------------------------------------------------------------------
716c7cbec0 | Shmuale Mark | 2014-06-17 10:45:58 -0400

Ruin some comments.

--------------------------------------------------------------------------------
44f5f4bce3 | Shmuale Mark | 2014-06-17 10:26:15 -0400

Unbreak compilation.

--------------------------------------------------------------------------------
10cfb32cb6 | Shmuale Mark | 2014-06-17 09:58:06 -0400

Make a hit message less buggy.
We're fairly consistent about saying 'bug' to the user meaning there's
something buggy going on. It's not an ironclad rule but I don't think
there's much of a cost to changing it.

--------------------------------------------------------------------------------
1137a02fa7 | Shmuale Mark | 2014-06-17 09:58:02 -0400

Make profane servitors ignore holy wrath, like holy energy (#7089).

--------------------------------------------------------------------------------
23e621cf06 | aj.k.adamson@gmail.com | 2014-06-17 09:57:57 -0400

Message change when putting on ring of teleport when unable to teleport

--------------------------------------------------------------------------------
19f2a35735 | Corin Buchanan-Howland | 2014-06-17 08:00:01 -0400

Iashol: Fix evocable attacks
For players who have sacrificed artifice, stavess and rod of striking
don't do special damage beyond their base type. Recharging scrolls are
useless.

--------------------------------------------------------------------------------
31e2b1e95d | Corin Buchanan-Howland | 2014-06-17 07:50:42 -0400

Iashol: Fix extreme piety gain from arcane sacrifices
Sacrifice Arcana was giving triple base piety (75 instead of 25). This
fixes that to 25 + 0-4.

--------------------------------------------------------------------------------
e97b59b120 | Corin Buchanan-Howland | 2014-06-17 07:50:39 -0400

Iashol: Fix nested div_rand_round

--------------------------------------------------------------------------------
f45dd94da7 | Corin Buchanan-Howland | 2014-06-17 07:50:31 -0400

Iashol: Change -Potion/-Scroll chances
The formula for when -Potion and -Scroll get applied has been changed
from one that almost never applies it to one that applies it more often
as your hp sinks, until it's guaranteed at 15% hp.

--------------------------------------------------------------------------------
89bfc8e862 | Neil Moore | 2014-06-17 04:55:19 -0400

Formatting fixes.

--------------------------------------------------------------------------------
770e5581f6 | Neil Moore | 2014-06-17 04:54:49 -0400

Simplify.

--------------------------------------------------------------------------------
67417a26a1 | Neil Moore | 2014-06-17 04:44:58 -0400

Correct misc item uselessness checks.
Don't mark lantern of shadows or runes as useless for no-artifice chars.
Do mark other misc items as useless.

--------------------------------------------------------------------------------
235eb2827f | Nicholas Feinberg | 2014-06-17 00:00:06 -0700

Remove the book of War Chants (LorrdErnie)
From Arena Sprint.

--------------------------------------------------------------------------------
928a14f975 | Nicholas Feinberg | 2014-06-16 23:33:10 -0700

Remove dart traps from Zot:5

--------------------------------------------------------------------------------
ec9a4c1852 | Nicholas Feinberg | 2014-06-16 22:35:58 -0700

Remove a three-year-old commented-out code block

--------------------------------------------------------------------------------
728ed823ba | Nicholas Feinberg | 2014-06-16 22:35:51 -0700

Remove one of the three lists of trap names

--------------------------------------------------------------------------------
44dca7743a | ontoclasm | 2014-06-16 23:57:04 -0500

A few summoning spell icons

--------------------------------------------------------------------------------
16a3d7487b | ontoclasm | 2014-06-16 23:57:03 -0500

Tloc spell icons

--------------------------------------------------------------------------------
060682be33 | Corin Buchanan-Howland | 2014-06-16 22:24:58 -0400

Iashol: Mark useless items as useless
Marking items as useless if a sacrifice renders them useless.

--------------------------------------------------------------------------------
6b79e0275b | Corin Buchanan-Howland | 2014-06-16 22:24:40 -0400

Iashol: peg damaging abilities to XL
Power Leap and Cataclysm scale from doing slightly more than 2/3rds previous 
damage to slightly more than all of previous damage based on your current 
experience level.

--------------------------------------------------------------------------------
d62f7b747f | Corin Buchanan-Howland | 2014-06-16 22:24:19 -0400

Iashol: make cataclysm loud
Cataclysm now makes as much noise as Shatter.

--------------------------------------------------------------------------------
8fb9090eeb | Corin Buchanan-Howland | 2014-06-16 22:24:00 -0400

Iashol: Turn off Amulet of Faith
Iashol no longer respects the amulet of faith.

--------------------------------------------------------------------------------
3aeb606c5e | Corin Buchanan-Howland | 2014-06-16 22:23:37 -0400

Iashol: Fix No Ability
No Ability was being defaulted in for Sacrifice Love. This fixes that.

--------------------------------------------------------------------------------
002409de61 | reaverb | 2014-06-16 22:17:53 -0400

Revert "Re-add a failure chance for enchanting weapons (Nomi)"
This reverts commit 914a5a54c88097f516b8b673c6976124132b5bf0.

This was intentional (See: 62a6f3cdfa5ad)

--------------------------------------------------------------------------------
914a5a54c8 | Nicholas Feinberg | 2014-06-16 19:14:29 -0700

Re-add a failure chance for enchanting weapons (Nomi)
An unintended byproduct of the ?ew merge.

--------------------------------------------------------------------------------
3fe8390d1a | Nicholas Feinberg | 2014-06-16 18:39:23 -0700

Absolve minmay of his temple-vault-making sins
By removing the worst of them.

--------------------------------------------------------------------------------
8933f9a0ea | Corin Buchanan-Howland | 2014-06-16 18:27:21 -0400

Iashol: Offer monks the first sacrifice right away
Monks get an immediate sacrifice in lieu of free piety.

--------------------------------------------------------------------------------
4ba75ba1bd | Corin Buchanan-Howland | 2014-06-16 18:25:54 -0400

Iashol: Amnesia forbidden schools
This change forcibly amnesias all spells of a school the player sacrifices.

Signed-off-by: Corin Buchanan-Howland <corin@buchananhowland.net>

--------------------------------------------------------------------------------
b42009bcbe | Chris Campbell | 2014-06-16 17:09:27 +0100

Recolour weapons on the HUD while corroded (Patashu)

--------------------------------------------------------------------------------
e962be8d23 | ontoclasm | 2014-06-16 00:21:54 -0500

Some more spell icons (roctavian)

--------------------------------------------------------------------------------
a75cd2984b | Nicholas Feinberg | 2014-06-15 21:00:55 -0700

Don't let torpor snails slow by sight alone

--------------------------------------------------------------------------------
3cbc707216 | Chris Campbell | 2014-06-16 04:57:11 +0100

Update crosstraining information in skill descriptions

--------------------------------------------------------------------------------
fa81b10aaf | Nicholas Feinberg | 2014-06-15 20:38:31 -0700

Update a few vaults to use torpor snails
And change the effect to use LOS_DEFAULT,
so they can unswift you through glass.

--------------------------------------------------------------------------------
4d6b2eaccc | Nicholas Feinberg | 2014-06-15 20:38:27 -0700

Add torpor snails

--------------------------------------------------------------------------------
85e6ef137c | Corin Buchanan-Howland | 2014-06-15 20:57:31 -0400

Iashol: Block skill training from sacrificed skill
This disables skill training and disposes of skill points from skills that have 
been sacrificed.

--------------------------------------------------------------------------------
09ff6b9f23 | Corin Buchanan-Howland | 2014-06-15 20:24:02 -0400

Iashol: Fix Essence mutation description
The MR essence mutation said -20 MR for all levels, but it's -20 per level.

--------------------------------------------------------------------------------
a524473a52 | Corin Buchanan-Howland | 2014-06-15 20:23:56 -0400

Iashol: Fix Missing Hand
This commit fixes the Iashol Sacrifice a Hand ability to disallow shield use 
and properly unequip second ring / disallow reuse of second ring.

--------------------------------------------------------------------------------
3c45d0dbb1 | Pete Hurst | 2014-06-15 15:38:18 -0700

Move some door-opening code to player.cc
In main.cc it was inaccessible anywhere else.

--------------------------------------------------------------------------------
10fad13ead | Corin Buchanan-Howland | 2014-06-15 18:37:34 -0400

[Branch only; omit from trunk] Add minor tag for save changes

--------------------------------------------------------------------------------
41a2877d1a | Corin Buchanan-Howland | 2014-06-15 18:37:33 -0400

Save Iashol variables
This commit moves all Iashol variables into properties so that they're
saved and loaded properly. It also slightly slows Iashol sacrifice
offers and fixes double piety gain for some sacrifices.

--------------------------------------------------------------------------------
6b6da1c93b | Chris Campbell | 2014-06-15 23:10:00 +0100

Don't allow selling items via Gozag wrath
Just give 1 gold per item destroyed, instead of tying it to the item's
value and allowing selling consumables (this could also be used for
price identification!).

The wrath effect is still very problematic in a lot of ways (allowing
dropping and picking up unwanted items repeatedly until they're affected
just to burn off penance, encouraging disabling autopickup especially for
scrolls like acquirement and enchant weapon that are particularly likely
to be affected and unlikely to be immediately needed).

--------------------------------------------------------------------------------
9e5d6a67c2 | Chris Campbell | 2014-06-15 23:09:58 +0100

Fix messaging when enchanting weapons via god blessing

--------------------------------------------------------------------------------
ebcb40d155 | Chris Campbell | 2014-06-15 23:09:57 +0100

Update scroll of enchant armour description for shield changes

--------------------------------------------------------------------------------
62a6f3cdfa | Chris Campbell | 2014-06-15 23:09:55 +0100

Make enchant weapon scrolls always succeed, reduce generation
For consistency with enchant armour, and to remove the breakpoint at +4.

--------------------------------------------------------------------------------
a506aeea43 | Nicholas Feinberg | 2014-06-15 15:07:03 -0700

Add ghost crabs (to the changelog) (wheals)

--------------------------------------------------------------------------------
d652cba005 | reaverb | 2014-06-15 17:43:50 -0400

Fix a typo in the sac hand ability (Lasty)

--------------------------------------------------------------------------------
e1f089e4d8 | reaverb | 2014-06-15 17:22:49 -0400

Rename "vampiricism" to "vampirism" (ChrisOelmueller, #8435)
Chris Oelmueller made an excellent patch for this, but unfortunately it
was rather rotted by the time somebody decided to look at it. It was
easier to recreate than update. I've also added some tiles stuff which
was missed in the original patch.

--------------------------------------------------------------------------------
073eae0ed2 | Nicholas Feinberg | 2014-06-15 14:18:34 -0700

Make the rarest lair monster somewhat less rare
And remove giant spores from lair in the process;
they didn't really exist there anyway.

--------------------------------------------------------------------------------
5ad376de10 | Neil Moore | 2014-06-15 17:02:48 -0400

Don't crash when Jiyvite slimes eat their net (#8692)
Don't destroy the net when breaking free, but only when actually eating
the item later in the function.

--------------------------------------------------------------------------------
a2b9d63d85 | Nicholas Feinberg | 2014-06-15 12:59:17 -0700

Document ctrl-v and new ctrl-t functionality

--------------------------------------------------------------------------------
1b4518714f | Nicholas Feinberg | 2014-06-15 12:54:01 -0700

Various changelog fixes (|amethyst)

--------------------------------------------------------------------------------
74c805e4aa | Nicholas Feinberg | 2014-06-15 12:09:59 -0700

Changelog through 0.15-a0-1526-g60de0e4

--------------------------------------------------------------------------------
1f557d621a | Neil Moore | 2014-06-15 14:36:09 -0400

Try loading dump files from the morgue directory.

--------------------------------------------------------------------------------
7c6d89dd3d | Neil Moore | 2014-06-15 14:21:45 -0400

Give an error message when &# can't find the file (#8580, ActinalWhomp)

--------------------------------------------------------------------------------
f4ed397e11 | Corin Buchanan-Howland | 2014-06-15 13:00:32 -0400

Adding back in support for essence and sanity sacrifices

--------------------------------------------------------------------------------
07f628c4ed | Shmuale Mark | 2014-06-15 12:29:25 -0400

Don't trigger traps when not moving due to confusion (#5090).

--------------------------------------------------------------------------------
3fa685d7ae | Shmuale Mark | 2014-06-15 12:29:22 -0400

Make mummies killed by summons curse the player.
It hardly stretches the imagination, given that enemy zot trap triggers
always hit the player, and it's an indisputable improvement in gameplay.

--------------------------------------------------------------------------------
fa8d16e630 | Shmuale Mark | 2014-06-15 12:29:19 -0400

Try to clean up some mummy death curse code and fix #2624.

--------------------------------------------------------------------------------
60de0e4d68 | Chris Oelmueller | 2014-06-15 09:04:20 -0700

Hide old enchant weapon scrolls in \ autopickup menu
And allow auto-identifying the last scroll to work again.

--------------------------------------------------------------------------------
86dbf4457c | Neil Moore | 2014-06-15 10:13:31 -0400

Don't trigger MUT_NO_{READ,DRINK} on every HP loss.
This was never intended.

--------------------------------------------------------------------------------
9763431adb | Corin Buchanan-Howland | 2014-06-15 10:10:58 -0400

Iashol words/taste poison interaction
Exempting poison damage from the check to apply -scrolls/-potions status

--------------------------------------------------------------------------------
cdce99dfdb | Neil Moore | 2014-06-15 09:13:42 -0400

Make =tele grant evoke teleportation (#8688)
Because of a misplaced parenthesis, ring of protection or ring or regen
was granting the ability instead, depending on whether you have "cannot
use devices".

--------------------------------------------------------------------------------
e22165b402 | Nicholas Feinberg | 2014-06-15 00:32:36 -0700

Remove conservation from the manual

--------------------------------------------------------------------------------
9130b7f7e6 | Nicholas Feinberg | 2014-06-15 00:30:01 -0700

Remove ctrl-t (from the manual) (Roarke)

--------------------------------------------------------------------------------
f3f4057e4f | Nicholas Feinberg | 2014-06-14 23:25:09 -0700

Update the manual

--------------------------------------------------------------------------------
6d5903a5d7 | Nicholas Feinberg | 2014-06-14 23:00:54 -0700

Update an outdated comment

--------------------------------------------------------------------------------
6d2b5baa39 | Chris Oelmueller | 2014-06-14 23:00:53 -0700

Plus2: Attempt to cleanup trove/lua handling of weapon plusses.
[Committer's note: removed handling of plus2 in lm_trove. This
will need to be reverted if anyone ever wants to make troves ask
for rods.]

--------------------------------------------------------------------------------
ccee9314ca | Chris Oelmueller | 2014-06-14 23:00:53 -0700

Plus2: Upgrade old weapons
Their new (single) enchantment is the old to-dam if negative, else the max of
its to-hit and to-dam enchantments. Blowguns already only used to-hit while
setting to-dam to 0, so their levels are unchanged.

In the interest of a simple and consistent upgrade path, this was chosen over
weighted averages of the enchantments and whatnot. For very specific cases,
the change will buff existing items quite a bit; this is a bonus for players.

--------------------------------------------------------------------------------
2ff73b2fa8 | Chris Oelmueller | 2014-06-14 23:00:53 -0700

Plus2: (JEWEL/WPN) Simplify

--------------------------------------------------------------------------------
ff84095d8b | Chris Oelmueller | 2014-06-14 23:00:53 -0700

Plus2: Combine all three enchant weapon scrolls
New item is just called "scroll of enchant weapon".  It increases both accuracy
and damage by 1.

Enchant weapon III scrolls have been converted to stacks of 2 enchant weapon
scrolls where placed in vaults, and if already generated will act like a common
"scroll of enchant weapon" as well for sake of simplicity.

Scroll weights have been adjusted a bit; this almost certainly
needs to be revisited.

[Committer's note: merged a few commits into this, where it seemed sensible.
Also reworked the scroll weights, but yeah, that needs another pass.]

--------------------------------------------------------------------------------
913e1e1b0a | Chris Oelmueller | 2014-06-14 23:00:53 -0700

Plus2: Make weapons only generate with one plus
[Committer's note: Merged a few commits into this.]

--------------------------------------------------------------------------------
c9d9781072 | Chris Oelmueller | 2014-06-14 23:00:53 -0700

Plus2: Merge plusses in items given at new-game setup.

--------------------------------------------------------------------------------
1d2420bf26 | Chris Oelmueller | 2014-06-14 23:00:53 -0700

Plus2: Update unrand weapons
Leech receives a buff to +8 and increased penalties (-2 instead of -1).

[Committer's note: Tweaked some more.]

--------------------------------------------------------------------------------
c7bbdc7eb2 | Nicholas Feinberg | 2014-06-14 23:00:53 -0700

Plus2: Turn .plus into slaying

--------------------------------------------------------------------------------
9d5af20a53 | Chris Oelmueller | 2014-06-14 23:00:53 -0700

Remove two more references to missile enchantment
No longer handle reading enchant weapon on ammo stacks.
This has not been possible for a while: 0.11-a0-1800-gec45d1d

--------------------------------------------------------------------------------
df1f371a6d | Neil Moore | 2014-06-15 01:50:59 -0400

Round more vigorously in ray code.
Aiming cloud cone from (40,41) or (66,23) would crash because of rounding
errors.  See for example:
  http://dobrazupa.org/morgue/Rikonman/crash-Rikonman-20140425-000700.txt

Now consider numbers as large as 5e-5 to be zero, rather than requiring
1e-7 (for geom2d code) or 1e-5 (ray_def code).  This means rays will be
snapped to the diamond grid more frequently, helping to avoid
inconsistencies among different ways of deciding what part of the cell a
ray falls on.

Someone with numerical analysis experience should really look at this
code.

--------------------------------------------------------------------------------
546f9a454f | Neil Moore | 2014-06-14 23:43:16 -0400

Don't acquire manuals of invo under Gozag.

--------------------------------------------------------------------------------
980a894f7a | Neil Moore | 2014-06-14 23:11:26 -0400

Restrict drake breathe message to targeted spells.

--------------------------------------------------------------------------------
040207bd19 | Neil Moore | 2014-06-14 23:08:52 -0400

Fix a wiz duration-editing crash.
I broke this in 0.15-a0-1070-gbaee6d2.  Some refactor.

--------------------------------------------------------------------------------
f4d20f434a | Neil Moore | 2014-06-14 23:07:30 -0400

Make drakes breathe, not throw (hangedman, Grunt)
This was broken when the dragon genus was split.  I didn't restore
the "roars" message, though.

--------------------------------------------------------------------------------
902d722de3 | Neil Moore | 2014-06-14 23:05:51 -0400

Make ghost crabs breathe, not throw (wheals, Grunt)
Also, remove the special case for "Breathe Chaos"; other monsters would
now "throw" the chaos instead, which seems to better fit the way it
actually works for them.

--------------------------------------------------------------------------------
df84790c77 | Corin Buchanan-Howland | 2014-06-14 16:16:05 -0500

Iashol sacrifice: purity
This sacrifice got deleted somehow, and is now re-added. It offers one
of deformed body, deteriorating, slow healing, or screaming. It can also
offer clumsy/weak/dopey for a smaller amount of piety.

--------------------------------------------------------------------------------
7a85e9e7c6 | Corin Buchanan-Howland | 2014-06-14 16:16:05 -0500

Iashol sacrifice: Essence
This sacrifice offers one of -20 MR, -10% MP, or a wizardry penalty.

--------------------------------------------------------------------------------
c90ef46289 | Corin Buchanan-Howland | 2014-06-14 16:16:05 -0500

Iashol Sacrifice: Health
This sacrifice offers one of -3 EV, -3 AC, or -10% HP.

This commit is meant to include all foundational changes for Iashol.

--------------------------------------------------------------------------------
fddc77d70b | Corin Buchanan-Howland | 2014-06-14 16:16:05 -0500

Iashol sacrifice: Arcana
This sacrifice removes the player's ability to cast spells or train the
schools affect. Each sacrifice removes one of {Charms, Conurations,
Summonings, Translocations}, one of {Transmutation, Necromancy, Hexes}
and one of {Air, Earth, Fire, Ice, Poison}.

--------------------------------------------------------------------------------
87250d3f4b | Corin Buchanan-Howland | 2014-06-14 16:16:04 -0500

Iashol sacrifice: Words and Potions
These sacrifices gives the player the -Potions and -Scrolls statuses
when they're damaged. The duration of the status and the likelihood that
it will be applied both increase as damage increases.

--------------------------------------------------------------------------------
12ca0875e1 | Corin Buchanan-Howland | 2014-06-14 16:16:04 -0500

Iashol sacrifice: Sanity
This sacrifice causes the player to fear blood, receiving accuracy,
damage, and wizardry bonuses while bloody tiles are visible.

--------------------------------------------------------------------------------
04975f47be | Corin Buchanan-Howland | 2014-06-14 16:16:04 -0500

Iashol sacrifice: Missing Hand
This sacrifice prevents the player from using a shield or a two-handed
weapon and removes a ring slot. Octopodes still get 7 other rings.

--------------------------------------------------------------------------------
500eb2dc85 | Corin Buchanan-Howland | 2014-06-14 16:16:04 -0500

Iashol sacrifice: Love
This sacrifice makes all monsters hostile to the player, even summons.

--------------------------------------------------------------------------------
2c40b7e547 | Corin Buchanan-Howland | 2014-06-14 16:15:27 -0500

Iashol sacrifices and Sac Evocations/Dodging/Armour/Stealth
Setting up the Iashol sacrifice infrastructure and implementing the
sacrifices which ban all use of evocables, all dodging skill, all armour
skill, and all stealth.

Iashol sacrifice: Armour, Dodging, Stealth

These sacrifices allow you to lock out a basic utility skill completely.

--------------------------------------------------------------------------------
0b91c844a1 | Corin Buchanan-Howland | 2014-06-14 16:14:57 -0500

Iashol ***** power: Cataclysm
This power deals heavy damage and potentially strong statuses to all
enemies within LOS. It costs significant drain and exhaustion.

--------------------------------------------------------------------------------
b86edef8df | Corin Buchanan-Howland | 2014-06-14 16:14:31 -0500

Iashol **** power: Power Leap
This power allows the player to cblink 3 tiles and do damage to every
enemy surrounding the landing tile. Sets exhaustion.

--------------------------------------------------------------------------------
4e24ed678d | Corin Buchanan-Howland | 2014-06-14 16:13:51 -0500

Iashol ***
Iashol's *** power, which restores HP and MP in exchange for drain and 
exhaustion.

--------------------------------------------------------------------------------
83fb20e375 | Corin Buchanan-Howland | 2014-06-14 16:13:50 -0500

Iashol **
Setting up Iashol's ** power, which automatically retaliates with status
effects on monsters that damage the adherent based on the player piety
and the amount of damage.

--------------------------------------------------------------------------------
aebfbc14f9 | Corin Buchanan-Howland | 2014-06-14 16:13:38 -0500

Iashol first star ability
This commit adds Iashol's * ability, which presently causes monsters to
skip turns proportionally to your current piety.

--------------------------------------------------------------------------------
842e948624 | Corin Buchanan-Howland | 2014-06-14 16:13:05 -0500

Improve Iashol's description

--------------------------------------------------------------------------------
7ab5695b90 | Corin Buchanan-Howland | 2014-06-14 16:12:32 -0500

Iashol fundamentals
This commit is meant to include all foundational changes for Iashol that
make the god work at a basic level.

--------------------------------------------------------------------------------
1b030bcbce | Nicholas Feinberg | 2014-06-14 11:02:14 -0700

Fix a crash caused by slaying changes

--------------------------------------------------------------------------------
2f69448c04 | Chris Campbell | 2014-06-14 12:44:28 +0100

Increase Dex and decrease slaying on the Fencer's Gloves

--------------------------------------------------------------------------------
d7db8703a6 | Chris Campbell | 2014-06-14 12:41:28 +0100

Fix slaying descriptions
Something shorter would be good, but "non-spells" is inaccurate.

--------------------------------------------------------------------------------
2fbdc9b8aa | Chris Campbell | 2014-06-14 12:27:42 +0100

Don't let the Singing Sword scream while in a sanctuary
If you leave the sanctuary but a monster remains inside it somehow, it can
still break the sanctuary that way.

--------------------------------------------------------------------------------
7a9398ca67 | Chris Campbell | 2014-06-14 11:53:58 +0100

Recolour meatsprint lost souls (st_)
To avoid overlap with dreads since they're on W now.

--------------------------------------------------------------------------------
fb1f07938f | Chris Oelmueller | 2014-06-13 23:41:47 -0700

Simplify some code now that slaying only uses item.plus

--------------------------------------------------------------------------------
3832802e78 | Chris Oelmueller | 2014-06-13 23:41:47 -0700

No longer consider Dam+ boring on artefacts
Slaying rings are the rarest base type, and the effects of slaying are
definitely large enough now to no longer warrant this special treatment.

--------------------------------------------------------------------------------
161eaca0bb | Chris Oelmueller | 2014-06-13 23:41:47 -0700

Ruin Fencer's Gloves (and adapt the other unrands)
Mostly replaced Dam+x and Acc+y with (x+y)/2. Fencer's record a
significant flavor loss here, and might want to be looked at later.

[Committer's note: ruined Fencer's Gloves slightly further.]

--------------------------------------------------------------------------------
6537abdd85 | Chris Oelmueller | 2014-06-13 23:41:47 -0700

Combine plus/plus2 for rings of slaying, and Acc+/Dam+ on artefacts
Phase out ARTP_ACCURACY, rename ARTP_DAMAGE to ARTP_SLAYING which now
combines both Acc+ and Dam+ bonuses.

Bracers of archery are +4 now instead of +5,+3.

[Committer's note: fixed a description and cleaned up various other
small issues.]

--------------------------------------------------------------------------------
1b4b79b550 | Steve Melenchuk | 2014-06-14 00:24:53 -0600

Don't crash gifting unarmed orcs a shield (SiotWarrior, PleasingFungus).

--------------------------------------------------------------------------------
78b84988da | gammafunk | 2014-06-13 23:29:10 -0500

Reduce the int drain from Summon Horrible Things
Sources of restore abilities are less common now and the effect can no
longer be completely blocked. The int drain is now 1d2 when it occurrs
with no sustain abilities and 1 when it occurrs with sustain
abilities; the chance of int drain is still fixed at 80%.

--------------------------------------------------------------------------------
3e22f27817 | Nicholas Feinberg | 2014-06-13 21:16:01 -0700

Clarify Guardian Golem's effect

--------------------------------------------------------------------------------
9b5f7252e6 | Nicholas Feinberg | 2014-06-13 21:13:45 -0700

Added a note for mutations becoming permanent (Prism)

--------------------------------------------------------------------------------
64ebc5910f | Nicholas Feinberg | 2014-06-13 20:40:08 -0700

Tidy up some web/net behaviour
Monsters should now try to escape from Arachne's
ensnare immediately (on whatever incredibly rare
occasions that is relevant), and shouldn't try to
break out of net traps on the turn they get netted.

This technically breaks save compat with the old
newly_webbed prop, but in a harmless way.

--------------------------------------------------------------------------------
d68dae0310 | Steve Melenchuk | 2014-06-13 20:25:13 -0600

Fix capitalisation of a message (Nomi).
"One of Your potions of coagulated blood[...]"

--------------------------------------------------------------------------------
c9664ec494 | Neil Moore | 2014-06-13 20:04:09 -0400

Be more picky about awarding Song of Slaying bonus (Kramin)
Don't give the bonus for monsters that wouldn't give XP: those created
friendly, those that were neutral, and those with ENCH_ABJ or
ENCH_FAKE_ABJ, even if not summoned (opponents' spectral weapons, for
example).

--------------------------------------------------------------------------------
ca8c18a72f | Neil Moore | 2014-06-13 19:29:44 -0400

Don't autoexclude ice and salt (#8575)

--------------------------------------------------------------------------------
4ea94c40d5 | Neil Moore | 2014-06-13 19:11:10 -0400

Prompt for weapon choice if preselection was bad (#8577)
Previously we just aborted, which made the 'weapon' option kind of
difficult to use (anything except "random" or "viable" would prevent
selecting certain classes).

It would be nice if the player could specify multiple values for
the option, e.g.  weapon = spear, trident, crossbow

--------------------------------------------------------------------------------
e4b89ecd48 | Neil Moore | 2014-06-13 18:24:09 -0400

A quote for hell hounds (#8677)
Sin's uterine hell hounds.

--------------------------------------------------------------------------------
5385ec1942 | Neil Moore | 2014-06-13 18:02:21 -0400

Fix up frost/flame-brand randarts as well.

--------------------------------------------------------------------------------
60ead64bf7 | Neil Moore | 2014-06-13 17:46:12 -0400

Give Punk the correct brand (#8680)

--------------------------------------------------------------------------------
692b94f52a | Neil Moore | 2014-06-13 17:29:05 -0400

Fix whitespace.

--------------------------------------------------------------------------------
a0ae35b5a1 | Neil Moore | 2014-06-13 17:17:25 -0400

Remove description for moth genus.

--------------------------------------------------------------------------------
c301cf7c42 | Neil Moore | 2014-06-13 17:17:01 -0400

Simplify db_lint for DUMMY_GENUS.
We no longer need to list the dummy genus monsters that use the
DUMMY_GENUS macro, since gather_mons doesn't pick them up anymore.

--------------------------------------------------------------------------------
b9644773dc | Neil Moore | 2014-06-13 17:11:11 -0400

Fix sleep spell description.

--------------------------------------------------------------------------------
91dc028910 | Neil Moore | 2014-06-13 17:08:25 -0400

Simplify.

--------------------------------------------------------------------------------
6c00423bc0 | Neil Moore | 2014-06-13 17:05:11 -0400

Actually define the crab genus.

--------------------------------------------------------------------------------
bb605ee8c9 | Neil Moore | 2014-06-13 16:31:26 -0400

Don't give launcher penetration to thrown missiles (#8679)

--------------------------------------------------------------------------------
5438851da1 | Shmuale Mark | 2014-06-13 15:35:02 -0400

Ghost crabs (PleasingFungus, floatingatoll).
They have stats similar to fire crabs but slightly stronger. Instead
of fire clouds, they breathe clouds of ghostly flame, the spell that
revenants have.

I think that they combine two fairly unused monster mechanics -- the
"big cloud" that crabs have and the otherwise-unused ghostly flame --
to create a monster that is fairly understandable based on previous
ones but has interesting gameplay. Unlike revenants, they are not
spellcasters, and the cloud is more about bringing fellow monsters
to beat you up, since it does less damage, their HD being lower. They
also contribute a few more non-undead to Crypt, which I think is good
to have.

I'm not certain about the spawn weight, but in tests they seemed to show
up once or twice a level on Crypt:1 which seems about right. They simply
replace mummies in Tar; this doesn't seem very controversial.

--------------------------------------------------------------------------------
474e196d37 | Neil Moore | 2014-06-13 15:04:43 -0400

Respect M_NO_GEN_DERIVED in a few more places.
Ghostly Flame spectrals, and Crypt level-gen zombies.  For the latter, also
respect M_NO_ZOMBIE just as we respect M_NO_SKELETON.

--------------------------------------------------------------------------------
c271eae855 | Chris Campbell | 2014-06-13 19:27:00 +0100

Make spriggan riders ride wasps instead of mosquitos
Since mixing holinesses on a single monster has some weird results.

--------------------------------------------------------------------------------
fb6485e608 | Shmuale Mark | 2014-06-13 12:03:09 -0400

Make a macro for dummy genus monsters, and use it in most cases.

--------------------------------------------------------------------------------
7030879d1f | Shmuale Mark | 2014-06-13 10:28:44 -0400

Simplify, and correct some messages.

--------------------------------------------------------------------------------
8af576bb84 | reaverb | 2014-06-12 22:13:18 -0400

Remove Holy monsters' death curses
Death curses generally don't work because they discourage directly
killing enemies or add additional waiting after combat. This also
applies to mummies but is easier to remove for holies.

--------------------------------------------------------------------------------
e5469503fe | Neil Moore | 2014-06-12 20:18:38 -0400

Allow giving misc/books to monsters (#8678)
They still won't pick them up, but they can now be explicitly given via
monspecs or mon-gear.cc; in particular, Geryon and Roxanne will once
again get their horn and book, respectively.

--------------------------------------------------------------------------------
7d01089b83 | reaverb | 2014-06-12 16:41:22 -0400

Don't double MUT_CONTEMPLATIVE's "A" description. (logicninja, prism)

--------------------------------------------------------------------------------
9b4a24f477 | Chris Campbell | 2014-06-12 21:21:07 +0100

Fix weapon listing for god blessings
Not sure if there's a better way of doing this but now all valid weapons
are listed for blessing - previously ranged weapons would be listed but
only valid under TSO.

--------------------------------------------------------------------------------
3c3d02167e | Chris Campbell | 2014-06-12 20:16:59 +0100

Allow gods to rebrand blessed weapons again

--------------------------------------------------------------------------------
ae6d43520a | Chris Campbell | 2014-06-12 20:16:38 +0100

Fix -Potion messaging for potionless characters (#8676)

--------------------------------------------------------------------------------
872d5c48c9 | Shmuale Mark | 2014-06-12 14:29:26 -0400

More fixes for temporary brands.
Don't keep the old brand on Tukima's, make ?bw make sense, and don't
allow rebranding a blessed weapon (this includes with the scroll).

--------------------------------------------------------------------------------
62da3a1b50 | Neil Moore | 2014-06-12 14:06:20 -0400

Don't crash when unwielding a temp-branded weapon.

--------------------------------------------------------------------------------
e561a6638b | Shmuale Mark | 2014-06-12 13:41:10 -0400

Allow temporary branding to go over a permanent brand.
Toting around an unbranded weapon just to be able to swap to it
is no fun, and not even that much more of a difficulty; maybe it
just means getting pain out takes 0.7 more turns or so. You still
can't overwrite artefacts, of course.

--------------------------------------------------------------------------------
b80c8152ad | ontoclasm | 2014-06-12 11:41:37 -0500

Diversify our fruit selection.
It could be nice to have a different tile used in inventory screens, but
that might be difficult to implement, so this works fine for now.

--------------------------------------------------------------------------------
717ba34dfa | Neil Moore | 2014-06-12 11:19:02 -0400

Fix whitespace.

--------------------------------------------------------------------------------
ba3409b66c | Shmuale Mark | 2014-06-12 10:57:06 -0400

New command: show weapons in viewport.
If a monster has a weapon, and you press ctrl-t (by default), you
will see, instead of its normal glyph, the glyph for the weapon it
is holding. Since this information is already available with 'x' and
even more easily in tiles, it's just an interface improvement, and as
far as I can tell in my tests there is no information leaked.

--------------------------------------------------------------------------------
0f8d024744 | Shmuale Mark | 2014-06-12 10:01:40 -0400

Make BATTLELUST card use _do_weapon_swap(), remove DUR_BUILDING_RAGE.

--------------------------------------------------------------------------------
25b44b8c3d | Neil Moore | 2014-06-12 02:54:59 -0400

Don't draw shore around mangroves (#8361)

--------------------------------------------------------------------------------
1b874cc483 | Neil Moore | 2014-06-12 02:41:30 -0400

Fix whitespace.

--------------------------------------------------------------------------------
352b8da163 | Neil Moore | 2014-06-12 02:36:19 -0400

Make monsters target lightning/cloud rod reasonably.
We were calculating (with _thunderbolt_tracer or mons_should_cloud_cone)
whether the monster should fire---then ignoring the result for those two
spells and always firing.  Furthermore, mons_should_cloud_cone used a
foe_ratio of zero, meaning it wouldn't care about collateral hits at all.

Always use the result of the tracer to decide whether to zap,
refactoring the surrounding code a bit in the process.  Also, have
mons_should_cloud_cone set a foe_ratio (the default 80), as well as a
few other bolt members used by mons_should_fire.

--------------------------------------------------------------------------------
839c364f86 | Neil Moore | 2014-06-12 01:21:23 -0400

Improve grammar (TR_Muscateer)
The message is still somewhat awkward and could probably be improved.

--------------------------------------------------------------------------------
ae1bf65c9e | reaverb | 2014-06-12 00:53:50 -0400

Contemplative mutation tweaks
1) Give it wieght 6 to match Wild Magic.

2) Make it 3 levels. Almost every other mutation has three levels, no
reason to be inconsistent.

3) Mark it as a good mutation. Every other bad mutation is strictly
inferior to not having that mutation. As has been joked, "good"
mutations are better defined as "mutations which are not necessarily
bad".

--------------------------------------------------------------------------------
ecfd6b488d | reaverb | 2014-06-12 00:44:09 -0400

Add parentheses

--------------------------------------------------------------------------------
ae39b6fc6d | Brendan Hickey | 2014-06-12 04:00:06 +0000

Mutation: Contemplative
Add Contemplative, the inverse of Wild Magic.
Makes spells easier to cast, but with lower power.

I've flagged it as a badmut for now. Perhaps Wild Magic should also be flagged 
as bad.

--------------------------------------------------------------------------------
15d8e20d4b | reaverb | 2014-06-11 23:41:26 -0400

Remove the unused BEAM_DEVOUR_FOOD

--------------------------------------------------------------------------------
a2967a39b4 | Neil Moore | 2014-06-11 21:58:02 -0400

Remove a spare set of braces.

--------------------------------------------------------------------------------
e36b84c4dc | Neil Moore | 2014-06-11 21:57:46 -0400

Colour -Potions grey for mummies (petete)
There were objections to hiding it altogether.  This matches the
indicator for cTele on -cTele levels.

--------------------------------------------------------------------------------
85e90856b0 | Neil Moore | 2014-06-11 21:39:46 -0400

Cap skills at level 27 regardless of aptitude.

--------------------------------------------------------------------------------
7ac96da2e1 | Neil Moore | 2014-06-11 21:39:46 -0400

Fix indentation and improve a type.

--------------------------------------------------------------------------------
76c50c9580 | Brendan Hickey | 2014-06-12 01:27:07 +0000

Update help to reflect crosstraining changes

--------------------------------------------------------------------------------
7c1a5597fd | Brendan Hickey | 2014-06-12 01:21:04 +0000

Convert crosstraining into an enhancer bonus
Remove traditional crosstraining.
Replace it with a 20% skillpoint enhancer bonus.

--------------------------------------------------------------------------------
2e5c74cbc0 | Nicholas Feinberg | 2014-06-11 18:10:32 -0700

Make beams unable to hit monsters in walls
Since there aren't any left, after all.

--------------------------------------------------------------------------------
5337b6389e | Neil Moore | 2014-06-11 21:08:02 -0400

Don't crash when restoring a non-flaming player.

--------------------------------------------------------------------------------
269cbc3872 | reaverb | 2014-06-11 20:36:01 -0400

Fix Forlorn mutation giving less antifaith at high piety
There was an ealier, simpler impelmentation which wasn't changed
correctly.

--------------------------------------------------------------------------------
325df1da17 | Neil Moore | 2014-06-11 20:31:28 -0400

Remove an unused parameter.

--------------------------------------------------------------------------------
01f515ca26 | Neil Moore | 2014-06-11 20:31:28 -0400

Use a constant.

--------------------------------------------------------------------------------
8fe9713fbe | Neil Moore | 2014-06-11 20:31:22 -0400

Avoid an infinite loop in wizmode/Lua piety gain (reaverb)
If you are with Gozag (also No God or Xom with the Lua function).

--------------------------------------------------------------------------------
78ddc6dc79 | reaverb | 2014-06-11 19:25:06 -0400

Give Forlorn mutation additional anti-faith at higher piety
I've talked to some people have gotten this mutation and it seems
Forlorn does almost nothing to the six-star piety, endgame character
which normally encounters mutations. Rather than further harming
characters which are just building up their piety, it seems better to
use this decreasing returns formula.

--------------------------------------------------------------------------------
2e54579080 | reaverb | 2014-06-11 17:35:19 -0400

Rename a couple props to not use 'napalm'

--------------------------------------------------------------------------------
0cb07d7838 | reaverb | 2014-06-11 17:34:05 -0400

Rename AF_NAPALM to AF_STICKY_FLAME

--------------------------------------------------------------------------------
16b496fb29 | reaverb | 2014-06-11 17:34:05 -0400

Rename BEAM_NAPALM to BEAM_STICKY_FLAME

--------------------------------------------------------------------------------
8cb1713251 | Neil Moore | 2014-06-11 16:06:02 -0400

Add method cloud_struct::agent().
To refactor out the several calls to find_agent() in cloud.cc.

--------------------------------------------------------------------------------
2c662eed7b | Neil Moore | 2014-06-11 16:00:29 -0400

Fix compilation.
Given the comment in c95cc8d about distracted monsters, and that
find_stab_type only returns STAB_DISTRACTED for player agents, pass the
cloud's agent (rather than NULL) to res_holy_energy.

--------------------------------------------------------------------------------
838d1a794f | Shmuale Mark | 2014-06-11 15:01:35 -0400

Add whitespace fix.

--------------------------------------------------------------------------------
c95cc8db36 | Shmuale Mark | 2014-06-11 14:58:06 -0400

Clean up holy attacks slightly (#6071).
Mostly this just merges res_holy_energy and res_holy_flames, keeping
Djinn's special-case immunity to the latter but not the former. The only
gameplay change should be that (a) demons will take slightly more damage
from holy flames and (b) distracted monsters will be immune to them.

--------------------------------------------------------------------------------
81d8d5f10c | Shmuale Mark | 2014-06-11 14:24:49 -0400

Tell calling function that mimic pickup was actually successful (#8674).

--------------------------------------------------------------------------------
cafd201989 | Shmuale Mark | 2014-06-11 14:24:47 -0400

Make mutagenic fog give glow instead of bad mutations (#2466).

--------------------------------------------------------------------------------
3de993f02c | Shmuale Mark | 2014-06-11 14:24:44 -0400

Clarify some monster enchant descriptions (#1958).

--------------------------------------------------------------------------------
07fcab1d61 | Chris Campbell | 2014-06-11 17:38:43 +0100

Don't remove monsters behind glass on game start
The check is just to prevent monsters being able to immediately attack the
player. Monsters behind glass are a similar case to monsters immediately
outside the vault, for those purposes

--------------------------------------------------------------------------------
bbcd8840a9 | Shmuale Mark | 2014-06-11 10:57:34 -0400

Move zap_los_monsters and apply it through glass.

--------------------------------------------------------------------------------
2cf4829245 | Shmuale Mark | 2014-06-11 09:54:49 -0400

Merge branch 'mon-pickup'
The problem with monster pickup of the type that this branch removes
is that it encourages tedious behaviour to achieve the optimum result.

While in general people don't bother to pick up every weapon and armour
and stuff it upstairs, that would be a way to prevent monsters from ever
picking up items you've seen. With Apportation, you don't even have to
reach the item, and on a mummy, say, you don't even have to worry about
the infintesimal food cost. People do already do this for chaos and
distortion weapons, and it is not a very good thing.

Not allowing allies to pick up items is related, in that it means that the
code can be simpler, but it also has problems of micromanagement,
weirdnesses with the ctrl-T command, and allies already have their share
of problems. I hope that the compensations for Beogh and mercenaries make
up for what is lost in terms of fun.

Conflicts:
	crawl-ref/source/tag-version.h

--------------------------------------------------------------------------------
e9415a7499 | Shmuale Mark | 2014-06-11 09:05:05 -0400

Replace centaur warrior mercenaries with deep elf conjurers.
Since the former are now MF_HARD_RESET, so their ammo instantly mulches
and can't be replenished.

--------------------------------------------------------------------------------
3208b8c6f1 | Chris Campbell | 2014-06-11 08:42:12 +0100

Fix capitalisation in a branch description

--------------------------------------------------------------------------------
758c5afc2c | Chris Campbell | 2014-06-11 08:41:53 +0100

Adjust messaging for (un)equipping faith under Gozag

--------------------------------------------------------------------------------
4425d19822 | Nicholas Feinberg | 2014-06-10 23:15:41 -0700

Don't ensnare monsters before they're hit by webbing

--------------------------------------------------------------------------------
f7d175ca4c | Nicholas Feinberg | 2014-06-10 23:02:34 -0700

Don't let monsters get free turns when escaping
From nets & webs.

--------------------------------------------------------------------------------
68c895d1a1 | Nicholas Feinberg | 2014-06-10 22:27:53 -0700

Turn 'exclams' into ex-clams!

--------------------------------------------------------------------------------
627f52b43a | Nicholas Feinberg | 2014-06-10 21:14:31 -0700

Actually remove the first person (rchandra)

--------------------------------------------------------------------------------
e6c8f8b119 | Neil Moore | 2014-06-11 00:03:24 -0400

Don't check _accept_mutation in _get_mut_with_use.
Most of the code that was replaced by _get_mut_with_use did not care
whether the mutation was acceptible, and some of the code was broken by
the change.  In particular, _delete_random_slime_mutation indexed
you.mutations directly with the result, causing a crash when the
selected mutation was unacceptible [1]---and even if the crash were
fixed, the behaviour would be wrong because it would never select a
maxed-out slime mutation.

Move the _accept_mutation call out of _get_mut_with_use and into the one
caller that needed it, _get_random_mutation.

[1] For example,
http://crawl.akrasiac.org/rawdata/DreamWalker/crash-DreamWalker-20140611-033210.
txt

--------------------------------------------------------------------------------
f31cd5152f | Nicholas Feinberg | 2014-06-10 20:59:24 -0700

Tweak branch descriptions

--------------------------------------------------------------------------------
3740176435 | Neil Moore | 2014-06-10 23:00:57 -0400

Remove more antitraining.
Including skill descriptions, the skill menu flag, the penalty
multiplier constant, and a comment.

--------------------------------------------------------------------------------
add05a9ee7 | Brendan Hickey | 2014-06-11 02:26:14 +0000

Remove Anti-training
We made the decision a while ago to remove anti-training.
This had come up in discussions about changing
crosstraining and it seemed that no one actually likes
anti-training. Rather than blocking on cross-training,
let's just put this in.

--------------------------------------------------------------------------------
92cf7ad39a | Shmuale Mark | 2014-06-10 16:56:46 -0400

Give mercs better items.
They automatically get their items set as MAKE_GOOD_ITEM, which
might not be enough to make up for the mediocre weapon types they
tend to start with, but it's the simplest solution for now. They're
also marked as MF_HARD_RESET so that you can't not pay and then take
their stuff.

Also, fix compilation: I'll fix this (so that git bisect works) while
merging into master.

--------------------------------------------------------------------------------
2cecdf4344 | reaverb | 2014-06-10 13:47:28 -0400

Revert "Make random_choose_weighted() end on -1 weight"
This reverts commit 7e81480cda18144ff185f5248639a072b654deff.

Turns out I missed some calls to random_choose_weighted(), this change
might not even be worth doing.

--------------------------------------------------------------------------------
7e81480cda | reaverb | 2014-06-10 12:58:57 -0400

Make random_choose_weighted() end on -1 weight
For consistency with random_choose().

--------------------------------------------------------------------------------
dd24ea8036 | Shmuale Mark | 2014-06-10 12:12:57 -0400

Get rid of plate armour of the Archmagi.
And other upgrades of robe-only egos.

--------------------------------------------------------------------------------
37dca8855d | Shmuale Mark | 2014-06-10 12:06:38 -0400

Finish reuniting giant fireflies with their bumblebee cousins.

--------------------------------------------------------------------------------
32226d5866 | Nicholas Feinberg | 2014-06-10 08:11:36 -0700

Tweak rashasa ac slightly downward

--------------------------------------------------------------------------------
ffd391d785 | Shmuale Mark | 2014-06-10 09:36:48 -0400

Combine the frost/flame and freezing/flaming brands.
Elec and venom launchers already use the same brands, and with ranged
code more similar to melee code this change actually simplifies most
code. There should be no gameplay change though some weird brand picking
code for launchers was refactored, which might have some effect.

--------------------------------------------------------------------------------
897c189157 | Nicholas Feinberg | 2014-06-09 23:24:26 -0700

Remove (an instance of) the first person

--------------------------------------------------------------------------------
95bcf00d1e | Nicholas Feinberg | 2014-06-09 22:50:49 -0700

Remove a questionably named/useful function

--------------------------------------------------------------------------------
61c80455bf | Chris Campbell | 2014-06-10 06:46:34 +0100

Add an option for more consistent prompt behaviour when changing jewellery
When enabled, you will always be prompted to choose a hand/tentacle when
equipping a ring, even if you currently have some empty slots, or if one ring
is cursed, etc. As a result, "Px>" should always result in "put ring x on
right hand", and never "put on ring x, then go downstairs", for example.

--------------------------------------------------------------------------------
07b0eb3598 | Nicholas Feinberg | 2014-06-09 22:40:45 -0700

Refactor mutations

--------------------------------------------------------------------------------
7e13d23ab0 | reaverb | 2014-06-10 01:14:43 -0400

Fix some random_choose() calls to not crash
Oops, for some reason the crash disappeared with the old version even
though it apparently didn't solve the problem.

--------------------------------------------------------------------------------
37b922f22f | reaverb | 2014-06-09 23:41:23 -0400

Refactor _determine_weapon_subtype() a bit

--------------------------------------------------------------------------------
4b86065cfe | reaverb | 2014-06-09 23:41:23 -0400

Inline _got_distortion_roll()
Having a one_chance_in() which is later overridden is completely
nonsensical and meaningless, inlining this would be a prerequisite to
any saner weapon brand schemes.

--------------------------------------------------------------------------------
5d615acd57 | Neil Moore | 2014-06-09 22:20:29 -0400

Don't crash on t-r at the map edge (bh)

--------------------------------------------------------------------------------
31f0020e13 | Steve Melenchuk | 2014-06-09 16:44:12 -0600

Allow (ruined) grunt_megastairs_* in Lair.
Mainly so that more extra vaults can place there, diluting the
appearance of e.g. bh_autumn_forest_stairs.

--------------------------------------------------------------------------------
f61802ccd2 | Steve Melenchuk | 2014-06-09 16:35:47 -0600

Re-extrafiy bh_autumn_forest_stairs.
It's not a threatening vault and should not place as a primary vault.

--------------------------------------------------------------------------------
18e8a0549f | reaverb | 2014-06-09 18:10:08 -0400

Reduce bh_autumn_forest_stairs appearances
It appears way too often, possibly because of the lack of Lair stair
vaults. Removes the "extra" tag in addition to changing the weight.

--------------------------------------------------------------------------------
d422dfffc6 | Neil Moore | 2014-06-09 16:08:04 -0400

Minor vault whitespace fix.

--------------------------------------------------------------------------------
5b0dc80f63 | Neil Moore | 2014-06-09 16:07:59 -0400

Don't cycle through corpses with Apportation (#8622)
But still allow x* to cycle through all object stacks.  For now * and +
do the same thing when targetting apportation, but maybe it makes sense
to have * keep the old behaviour.

Note that SPFLAG_TARG_OBJ now uses the new DIR_MOVABLE_OBJECT
targeting_type.  If we add a new object-targetting spell that *can*
affect corpses, we'll have to separate SPFLAG_TARG_OBJ into two flags.

--------------------------------------------------------------------------------
2d75d1c3f8 | Neil Moore | 2014-06-09 13:00:30 -0400

Don't make caught monsters blink.
There was a missing set of parentheses; rather than add them, I
simplified.  The 3/7 comes from 1/7 + (6/7 * 1/3)

--------------------------------------------------------------------------------
3b29f72d67 | Neil Moore | 2014-06-09 12:38:13 -0400

Remove vestiges of Simulacrum-chunk interactions.
Wieldability, usefulness of butchery and chunks, tile wield tip, and
monster food pickup.

--------------------------------------------------------------------------------
9704825b45 | gammafunk | 2014-06-09 11:34:18 -0500

Update the description of the simulacra spell
It no longer uses chunks for player or monsters.

--------------------------------------------------------------------------------
a0303cb041 | Neil Moore | 2014-06-09 10:29:58 -0400

Fix foxfire (MarvinPA)
Avoid a bounds error (which gave me adders in my testing, but it sure
would be fun if you happened to have MONS_CEREBOV in that memory
location).  Also restore the restriction of yellow wasps to power level
1 and red wasps to power level 2.

--------------------------------------------------------------------------------
c201ef4492 | Neil Moore | 2014-06-09 10:29:54 -0400

Fix a vault syntax error.
Even correcting the \\ to a single backslash doesn't fix the
problem: WEIGHT seems not to like backslash continuations.

--------------------------------------------------------------------------------
1dfcc07397 | Shmuale Mark | 2014-06-09 09:35:22 -0400

Show HP/MP percentages in a slightly neater manner.

--------------------------------------------------------------------------------
b03d3d0b07 | Shmuale Mark | 2014-06-09 09:05:42 -0400

Remove giant fireflies.
Outside of vaults, they existed only from spriggan rider death,
and as a fairly rare spawn in Swamp. Their stats were overall very
similar to 'spider,' and their special ability was not too noticeable.

Spriggan riders now ride vampire mosquitoes instead, as a more swampy
substitute.

--------------------------------------------------------------------------------
b59d38d563 | Shmuale Mark | 2014-06-09 09:05:40 -0400

Shuffle halfling stats (crate).
This gives them the same stats as merfolk, though Ha is still
guaranteed Dex on levelup. A point of Kobold str is moved to dex,
to try to keep them still somewhat different.

--------------------------------------------------------------------------------
f1faa11858 | Shmuale Mark | 2014-06-09 09:05:37 -0400

Add wandering mushroom to the default runrest_ignore_monster (#8665).

--------------------------------------------------------------------------------
351649f25c | David Ploog | 2014-06-09 12:08:24 +0200

New vault, a stationary monsters guardian a staircase.
This can specifically happen on Lair:1, Snake:1, Shoals:1 or Depth:1
and will create interesting decisions when it does come up. Monster
selection and numbers are open for debate/change.

--------------------------------------------------------------------------------
78abf485f4 | Nicholas Feinberg | 2014-06-08 23:02:04 -0700

Remove a mysterious metal orb

--------------------------------------------------------------------------------
ca99efe20a | Nicholas Feinberg | 2014-06-08 21:51:58 -0700

Marginally improve some truly MT_BAD code

--------------------------------------------------------------------------------
1c207a585d | Nicholas Feinberg | 2014-06-08 21:30:15 -0700

Fix the ratio of random muts (DrKe)

--------------------------------------------------------------------------------
855d067cd5 | Neil Moore | 2014-06-08 20:08:15 -0400

Don't pause the game for offscreen explosions.

--------------------------------------------------------------------------------
24a81542c7 | Steve Melenchuk | 2014-06-08 17:43:44 -0600

Don't run an altar vault's code twice (MgDark, PleasingFungus, |amethyst).
It was causing strange "Triggerable already removed" messages.

--------------------------------------------------------------------------------
8acf132309 | Neil Moore | 2014-06-08 19:15:39 -0400

Fix a warning.
Making GHOST_LIMIT a size_t would be more intrusive than this cast.

--------------------------------------------------------------------------------
05144c4835 | Neil Moore | 2014-06-08 19:15:39 -0400

Make a few functions static.

--------------------------------------------------------------------------------
6bdb4c3189 | John Olender | 2014-06-08 19:15:39 -0400

Remove PRINTF #define duplication in mingw check.
Fix indentation, remove #define duplication, and correct a comment
about which macro must be defined for enabling mingw-w64's C99
printf.

--------------------------------------------------------------------------------
0fc4e0e3ec | Neil Moore | 2014-06-08 19:15:32 -0400

Add server people to CREDITS.txt
I didn't have everyone's real name :(

--------------------------------------------------------------------------------
4408ba657c | Neil Moore | 2014-06-08 18:55:44 -0400

Add several people to CREDITS.txt
Generally using the version of the nam e in the commit metadata,
resolved in favour of the real name where that information was provided.

Let a dev know if you want us to list you differently, or if one of
your patches or tiles is included in Crawl but you aren't listed.

--------------------------------------------------------------------------------
cd69fb7288 | Nicholas Feinberg | 2014-06-08 15:20:09 -0700

Remove safe_file_writer (unused)

--------------------------------------------------------------------------------
4c720037b9 | Nicholas Feinberg | 2014-06-08 15:20:03 -0700

Add multi-ghost-file support
Previously, only one .bones file (containing potentially
multiple associated ghosts) could be stored per-floor.
This adds support for storing multiple ghost files
per-floor, solving issues where ghosts might be 'lost'
otherwise.

--------------------------------------------------------------------------------
87d8b17cc4 | John Olender | 2014-06-08 17:11:50 -0400

AppHdr.h: Adjust PRINTF macro for use with mingw-w64
When __attribute__((format(printf...)) is used, as is the case with
AppHdr.h's PRINTF macro, mingw-w64 uses the standard windows printf
implementation by default.  The stdio library provided by windows is
typically *not* C99-compliant.  Since crawl uses C99-style PRINTF
calls, many warnings are printed during compilation.

This patch guarantees that, if available, a C99-style printf will
be used for both format checking and actual compiled calls under
mingw-w64.  If the C99-specific printf macro is not set by
including stdio.h (e.g., mingw32 is being used), the standard printf
call for format is used.

[Committer's note: also included the fix-up patch "Makefile: Pass the
 correct mingw C99 stdio define."]

--------------------------------------------------------------------------------
93c65a7066 | reaverb | 2014-06-08 16:18:35 -0400

Redraw player EV after a Str change (#8658)

--------------------------------------------------------------------------------
af201b283f | reaverb | 2014-06-08 15:59:34 -0400

Remove D:1 chaff from the Lair

--------------------------------------------------------------------------------
cb6117e5bd | Shmuale Mark | 2014-06-08 14:52:10 -0400

Display HP/MP as percentages, rather than fake aptitudes.
Also cut away some obsolete (?) information in the aptitudes file.

--------------------------------------------------------------------------------
b9ebe9259b | Shmuale Mark | 2014-06-08 14:52:08 -0400

Frost card -> Hammer card.
Though they both replicate other spells, Hammer is ceratinly simpler
and doesn't have the targetter issues that a card that sometimes has
is_beam == true and sometimes false has.

--------------------------------------------------------------------------------
4dc1c0f483 | Shmuale Mark | 2014-06-08 14:52:03 -0400

Flame card -> Cloud card.
There isn't much linking it to fire specifically now and it makes
a false symmetry with the Frost card, which does rather different
things.

--------------------------------------------------------------------------------
54474545af | Shmuale Mark | 2014-06-08 14:51:57 -0400

Change a hardcoded list to a monster flag.
This also adds a line to the description of monsters with the M_BLINKER
flag. It reuses the spot that M_VIGILANT was at, but I don't think
that should cause any problems.

--------------------------------------------------------------------------------
e4778d96ac | Shmuale Mark | 2014-06-08 14:51:54 -0400

Always print a message when teleporting in the Abyss.

--------------------------------------------------------------------------------
3a02dd4f16 | reaverb | 2014-06-08 13:24:45 -0400

Remove mummy stabbing
Monsters falling asleep tended to promote scumming because it gives an
advantage for simply waiting.  It also had a couple arguably good
effects, like letting players leave a difficult level and come back
later once things have cooled down, but these aren't really significant
enough to make this a good mechanic.

Monsters still begin wandering if enough time passes.

If there are unseen consequences this commit can easily be reverted.

--------------------------------------------------------------------------------
5ae3ab29b1 | reaverb | 2014-06-08 12:51:26 -0400

Remove old, unhelpful comments
Talking about design decisions that have been the status quo for years
as though they were new untested decisions is far more likely to confuse
somebody then help them. The text of these comments should have been in
the commit messages, not the source code.

--------------------------------------------------------------------------------
cdebce7327 | gammafunk | 2014-06-08 02:32:28 -0500

Rework the web effect of sack of spiders
Surrounding the player with webs requires the player to have a
controlled form of blink to use the sack safely in many
instances. Instead of placing nets everywhere within the radius, the
item now only attempts to place them on monsters and then triggers the
web. The chance that the monster will spend a turn trapped in a web
and vulnerable is smaller now, since the web triggers on the turn the
sack is used, instead of when the monster moves onto the web. This
change doesn't seem to be a significant buff to the item overall, so
leaving e.g. chance of web placement and number of uses unchanged for
now.

--------------------------------------------------------------------------------
b0119f4bb6 | Neil Moore | 2014-06-08 01:02:50 -0400

Move steel/silver dart tiles to UNUSED.

--------------------------------------------------------------------------------
1f1de3a74f | Neil Moore | 2014-06-08 01:02:35 -0400

Remove tiledef for Make Dart Trap.
And move the tile to UNUSED/

--------------------------------------------------------------------------------
77199c677e | Neil Moore | 2014-06-08 00:55:58 -0400

Remove Hall of Blade descriptions.

--------------------------------------------------------------------------------
447339177e | Neil Moore | 2014-06-08 00:26:22 -0400

Make Vaults exit stairs a portal.
To match the entry.  The tile is already just as portal-like as the
entry tile, so no change there.

--------------------------------------------------------------------------------
57c10a80ae | reaverb | 2014-06-07 23:51:21 -0400

Remove Hall of Blades
The complaints against the branch are well documented, mostly stating
Dancing Weapons are awful enemies and the Hall of Blades is filled with
them.

--------------------------------------------------------------------------------
b0c9e78927 | gammafunk | 2014-06-07 19:05:38 -0400

Rework monster simulacrum to act like animate dead
Since it now makes simulacra from every corpse in the caster's LOS,
for each corpse it uses a random number with a max that's half as many
max chunks that could have been made from the corpse. It also leaves
skeletons for the appropriate monsters.

--------------------------------------------------------------------------------
3338553014 | gammafunk | 2014-06-07 19:05:37 -0400

Rework the player version of simulacrum
It now behaves like animate skeleton, creating simulacra from the top
corpse the player is standing on and leaving a skeleton (but not a
hide) when appropriate. The number created is based on how many chunks
would be produced, so the result is the same as butchering a corpse
and wielding all the resulting chunks under the old version of the
spell.

--------------------------------------------------------------------------------
c375f20055 | Neil Moore | 2014-06-07 15:32:21 -0400

Remove a now-unused variable.

--------------------------------------------------------------------------------
903d200c73 | Nicholas Feinberg | 2014-06-07 12:30:33 -0700

Make Crawl a little bit more metal
Iron Trolls are back, by popular demand! Now only present
in deep troll shaman packs.

--------------------------------------------------------------------------------
1bbe59b729 | Neil Moore | 2014-06-07 15:10:58 -0400

Don't crash on Gozag-detected underwater gold.
Don't bother detecting it.

--------------------------------------------------------------------------------
c6b3eec578 | Nicholas Feinberg | 2014-06-07 12:05:29 -0700

Remove non-marshalled obsolete enums

--------------------------------------------------------------------------------
606926441a | Nicholas Feinberg | 2014-06-07 11:31:03 -0700

Add recall icon for convokers

--------------------------------------------------------------------------------
4649f99799 | Chris Campbell | 2014-06-07 19:27:34 +0100

Adjust a vampire help message

--------------------------------------------------------------------------------
b8c3a2151d | Chris Campbell | 2014-06-07 19:27:32 +0100

Remove some duplication in monster body weight calculation

--------------------------------------------------------------------------------
59d57ab6f0 | Chris Campbell | 2014-06-07 19:27:31 +0100

Remove the amulet of rage's (very low) chance to extend berserk duration
As it existed it wasn't noticeable at all, and making it more noticeable
would be treading on Trog's more significant extension (and Bloodlust's
unrand effect).

--------------------------------------------------------------------------------
404cd43681 | Chris Campbell | 2014-06-07 19:27:30 +0100

Adjust a message for cancelling Finesse

--------------------------------------------------------------------------------
4c823bc987 | Chris Campbell | 2014-06-07 19:27:28 +0100

Increase the base maxHP loss from Borgnjor's Revivification

--------------------------------------------------------------------------------
8db0f432eb | ontoclasm | 2014-06-07 12:55:48 -0500

Mostly-hand-based spell icons

--------------------------------------------------------------------------------
5a4102b231 | ontoclasm | 2014-06-07 11:55:08 -0500

Corona icon edit (Bloax)

--------------------------------------------------------------------------------
4449aa2d34 | Nicholas Feinberg | 2014-06-07 09:42:22 -0700

Halve the deadly 'changelog manticore' population

--------------------------------------------------------------------------------
9dc0abf1bb | Nicholas Feinberg | 2014-06-07 09:24:09 -0700

Changelog through 0.15-a0-1331-ga052c3c

--------------------------------------------------------------------------------
a052c3cf1c | Neil Moore | 2014-06-07 05:14:47 -0400

Don't claim that monster open portal gates (#8655)
SC_ARCH was added in 0.14-a0-2782-gadab473, but the places that should
have used it used SC_GATE instead.  And of course a gate is not the same
as a gate.

--------------------------------------------------------------------------------
1ff08e9d48 | ontoclasm | 2014-06-07 03:13:58 -0500

A few hex spell icons

--------------------------------------------------------------------------------
d2077ff3d3 | Neil Moore | 2014-06-07 02:37:20 -0400

Handle failure to move when finding a home.

--------------------------------------------------------------------------------
24d630d338 | Neil Moore | 2014-06-07 02:28:32 -0400

Don't ignore rod max charge in stash comparisons.

--------------------------------------------------------------------------------
94533af894 | Nicholas Feinberg | 2014-06-06 23:23:12 -0700

Make monsters avoid traps while climbing stairs (7749, elliptic)
As they would during normal movement. Shouldn't get
allies triggering zot traps while following you up
stairs, etc.

--------------------------------------------------------------------------------
1a204a1fbf | Nicholas Feinberg | 2014-06-06 23:23:12 -0700

Make monsters trigger traps when climbing stairs (7749)

--------------------------------------------------------------------------------
8698f31d88 | Neil Moore | 2014-06-07 02:15:58 -0400

Show visible changes to status of stack toppers.
If two corpses were sitting on a visible square, ctrl-x would never
show the rotting of the visible top corpse; and the stash tracker
itself would show it as "rotten by now" even though we can actually
see the corpse rotting.  This also affects recharging rods since
the previous commit.

Now if the seen item and the remembered top item are "the same"
but not identical (because of rotting, recharging, etc.), we update
the stash anyway.

--------------------------------------------------------------------------------
cdf1dfce16 | Neil Moore | 2014-06-07 02:15:58 -0400

Ignore rod charge in stash comparisons (#8652)

--------------------------------------------------------------------------------
1753d8fc5c | Nicholas Feinberg | 2014-06-06 21:55:37 -0700

Frost ammo no longer causes Dithmenos penance
When fired from a flame launcher, or vice versa.

If someone else wants to refactor the throw.cc code to
check brands at launch-time, feel free!

--------------------------------------------------------------------------------
78da6b61ff | Neil Moore | 2014-06-07 00:41:02 -0400

Mark artefact armour known-uncursed after enchanting (#8653)

--------------------------------------------------------------------------------
bc1ee5ff18 | Neil Moore | 2014-06-07 00:34:49 -0400

Mark weapons as known-uncursed after enchanting (#8653)

--------------------------------------------------------------------------------
2a59467bad | Neil Moore | 2014-06-07 00:34:49 -0400

Fix some infelicities in armour enchantability check.
There was an info leak similar to the one fixed in the previous commit,
but it was masked by the fact that unidentified randarts claimed to be
enchantable even ignoring cursedness.

--------------------------------------------------------------------------------
e7fd3a9769 | Neil Moore | 2014-06-07 00:34:49 -0400

Don't leak randart/rod curse status with EW.

--------------------------------------------------------------------------------
48bd690c46 | Nicholas Feinberg | 2014-06-06 21:25:35 -0700

Give frenzied & roused monsters the 'mighted' icon
Since it's almost exactly the same effect,
especially when created by orc warlords.

--------------------------------------------------------------------------------
c42bd1c293 | Nicholas Feinberg | 2014-06-06 21:25:35 -0700

Update lignification's description

--------------------------------------------------------------------------------
473b6a409c | Nicholas Feinberg | 2014-06-06 21:25:35 -0700

Add exactly one character to a comment

--------------------------------------------------------------------------------
4299ffcff0 | Steve Melenchuk | 2014-06-06 19:37:18 -0600

Whitespace fix.

--------------------------------------------------------------------------------
659675ba45 | Steve Melenchuk | 2014-06-06 19:34:51 -0600

Work around a Gozag shop generation crash.
Lua layouts that use dgn.grid triggered dungeon_terrain_changed, causing
the shop marker for the overview screen to be erased when it wrote a
tile to (0, 0).

This restores the old dgn.grid behaviour specifically for building
dungeon levels.

--------------------------------------------------------------------------------
b6988bd9f2 | Neil Moore | 2014-06-06 18:09:22 -0400

Try to fix 64-bit MSVC builds.
We weren't setting USE_TILE and friends, and were furthermore omitting
the SDL include directory.

--------------------------------------------------------------------------------
2dafdc58d5 | Neil Moore | 2014-06-06 17:47:37 -0400

Don't offend Spellforged Servitors (PleasingFungus)
They will no longer become hostile if hit by one of your spells.
Hitting a servitor with a melee or ranged attack will still anger it.

--------------------------------------------------------------------------------
72ff340091 | Neil Moore | 2014-06-06 17:39:52 -0400

Don't credit the player for ally CBL kills (#8640)

--------------------------------------------------------------------------------
54466c9500 | Neil Moore | 2014-06-06 17:39:52 -0400

Show summoner in wizmode xD.

--------------------------------------------------------------------------------
3520d719e6 | Neil Moore | 2014-06-06 16:07:42 -0400

Allow Natasha to have death messages when confused (#8629)

--------------------------------------------------------------------------------
73c9307dbf | Steve Melenchuk | 2014-06-06 13:04:26 -0600

Allow blowing up an altar vault door (|amethyst).
This is a holdover from the very first version of the vault; this
version functions properly even if you blow up walls and doors.

--------------------------------------------------------------------------------
49c787054d | Steve Melenchuk | 2014-06-06 12:31:25 -0600

An old Xom overflow altar (#5290).
"Xom sends flaming sheep into four corners of the world."

Xom thinks this is hilarious!

This has been adjusted from the last version posted in the mantis entry
to employ the just-added dlua functionality.

--------------------------------------------------------------------------------
da56c8d48c | Steve Melenchuk | 2014-06-06 12:31:24 -0600

A couple of tidbits of dlua functionality.
mons.speak prompts a monster to speak using the specified key.

view.update_monsters calls update_monsters_in_view().

These are both used in a vault that I'll commit in a moment.

--------------------------------------------------------------------------------
86892e867a | gammafunk | 2014-06-06 13:24:36 -0500

A new Pandemonium layout by infiniplex (#8632)
The only changes I've made are some minor header cleanups, a
correction to the name of pan_division_center_altar and a removal of
an erroneous SUBST in that vault, and correct spelling some comments.

--------------------------------------------------------------------------------
fb4c73c6c3 | Neil Moore | 2014-06-06 14:23:18 -0400

Don't place steam clouds on open sea.
See for example:
  http://dobrazupa.org/morgue/Sanddman/crash-Sanddman-20140606-181118.txt

--------------------------------------------------------------------------------
530a46748e | Neil Moore | 2014-06-06 14:07:38 -0400

Properly credit kills from reflected IOOD (#3941)

--------------------------------------------------------------------------------
3b131ac1f0 | Neil Moore | 2014-06-06 13:29:12 -0400

Don't blame the player for reflected jelly kills (#8648)
Use YOU_FAULTLESS as the killer, and furthermore check for that when
deciding whether something is a bad_kill.

--------------------------------------------------------------------------------
911d0713d8 | Neil Moore | 2014-06-06 12:44:40 -0400

Whitespace fixes (doh)

--------------------------------------------------------------------------------
3813c18d1f | Neil Moore | 2014-06-06 12:34:38 -0400

Fix an #ifdef (MarvinPA).

--------------------------------------------------------------------------------
27d8d3e4d6 | Neil Moore | 2014-06-06 12:20:53 -0400

Allow inner flaming allies.

--------------------------------------------------------------------------------
acf1c2352c | Neil Moore | 2014-06-06 12:12:18 -0400

Count friendlies for targets-in-range check of neutral spells.

--------------------------------------------------------------------------------
9c8486b75d | Neil Moore | 2014-06-06 12:10:53 -0400

Don't point cancel-at-self neutral spells at self.

--------------------------------------------------------------------------------
539d7c4a0f | Neil Moore | 2014-06-05 23:03:45 -0400

Include tileweb-text.cc in MSVC builds.

--------------------------------------------------------------------------------
cf2591fd3b | Neil Moore | 2014-06-05 23:03:45 -0400

Add hash.cc to, remove obsolete files from, MSVC project.

--------------------------------------------------------------------------------
6d295321da | Neil Moore | 2014-06-05 23:03:37 -0400

Remove obsolete Visual Studio 2005 project.
It had failed to keep up with changes to the source tree, and we don't
support such an old MSVC anyway.

--------------------------------------------------------------------------------
4a08026405 | Neil Moore | 2014-06-05 17:06:36 -0400

Refactor _find_acquirement_subtype.

--------------------------------------------------------------------------------
3b80b93d35 | Neil Moore | 2014-06-05 16:30:26 -0400

Remove an unused constant and typedef.

--------------------------------------------------------------------------------
3202427a38 | reaverb | 2014-06-05 16:11:49 -0400

Don't purposely avoid acquiring things the player is carrying
So for example, if you had a lamp of fire in your inventory and acquired
misc, this code meant acquirement would purposely avoid giving you
another lamp of fire. If it was in your stash, however, acquirement
didn't care. This is obviously wrong since things like miscellaneous
acquirement assume you can get multiple of a single sub_type, and
violates the "don't make players do silly things before reading
?acquire" rule.

This might alter the standings of staff, misc, and jewellry acquirement,
but none of those are all stars likely to be totally broken by this
change.

I've traced this back to 1d0f57cbceb, with only a couple changes in
between, so this either traces to before stone soup or shortly after.

--------------------------------------------------------------------------------
7971631360 | reaverb | 2014-06-05 14:50:21 -0400

Compare BEAM_DEVASTATION to BEAM_MMISSILE (|amethyst)

--------------------------------------------------------------------------------
f0dc122a9f | Neil Moore | 2014-06-05 09:42:17 -0400

Rename orb slug description.
It should probably be changed further, since it was a Gastronok
reference.

--------------------------------------------------------------------------------
8c3d71b6b0 | Neil Moore | 2014-06-05 09:42:17 -0400

Tell db_lint that elephant slugs are dummy monsters.

--------------------------------------------------------------------------------
066e08af91 | gammafunk | 2014-06-05 06:23:56 -0500

Some vaults from Cheibrodos (#8638)
Some content changes from the original submission:

* cheibrodos_hippocracy: Removed the mirroring limitations (these make
  it harder to place), added a demonic crawler to the loot pile
  blocked by water.
* cheibrodos_swamp_tower_of_moss: Made it have the same wall/floor
  theme as the other "ruined structure" vaults in swamp.
* cheibrodos_crypt_eye_of_stone: Place the granite statues only when
  placing the giant eyeball, since the statues/skull can't be
  disintegrated or otherwise instakilled.
* cheibrodos_slime_lost_civilization_1: Increased open area in the
  vault to not require quite as much potential walking next to slime
  walls.
* cheibrodos_slime_lost_civilization_3: Substituted some of the water
  for floor. Also added a no_monster_gen KMASK for water, since we
  don't want water enemies in slime.

Some other cleanups include removing extra newlines and trailing
whitespace, consistent use of tags, using { or } for the first set of
stone stairs, fixed usage of 'g' to be 'G'.

--------------------------------------------------------------------------------
b308769599 | gammafunk | 2014-06-05 04:22:52 -0500

Fix a path-finding crash in the slime wall connectivity fixup

--------------------------------------------------------------------------------
fea44c3dc8 | reaverb | 2014-06-05 03:34:03 -0400

Enforce  80-char rule in misc acquirement

--------------------------------------------------------------------------------
8540c5e9ec | reaverb | 2014-06-05 03:14:05 -0400

Rename BEAM_NUKE to BEAM_DEVASTATION

--------------------------------------------------------------------------------
f3d99e4422 | reaverb | 2014-06-05 02:56:30 -0400

Rename a local variable

--------------------------------------------------------------------------------
7d2350f868 | reaverb | 2014-06-05 02:53:38 -0400

Rename MMT_NUKED to MMT_TURNED_TO_FLOOR

--------------------------------------------------------------------------------
96369b38a0 | reaverb | 2014-06-05 02:45:01 -0400

Don't use nuke to describe the abyss destorying all terrain.

--------------------------------------------------------------------------------
68c5851c0b | reaverb | 2014-06-05 02:31:29 -0400

Rename nuke_wall() destroy_wall()
and also change a temporary variable name to avoid overshadowing

--------------------------------------------------------------------------------
dd8a537967 | reaverb | 2014-06-05 02:06:24 -0400

Make Doxygen @returns "@return" for consistancy.

--------------------------------------------------------------------------------
4e359b6150 | Nicholas Feinberg | 2014-06-04 22:54:07 -0700

Move go_berserk() out of misc.cc

--------------------------------------------------------------------------------
6f0af88fe6 | Nicholas Feinberg | 2014-06-04 22:29:35 -0700

Don't make Chei slow you if you don't worship him
...when berserking.

Should also prevent the wonderful message "No God
forces you to slow down."

--------------------------------------------------------------------------------
523292d8cf | Nicholas Feinberg | 2014-06-04 22:08:40 -0700

Actually mark +Rage forbidden for Chei

--------------------------------------------------------------------------------
1ac1213cae | Nicholas Feinberg | 2014-06-04 22:08:00 -0700

Don't misleadingly claim Chei hates +Rage/*Rage (geekosaur)
Since he doesn't hate *Rage, and as 4984cdbba notes,
the ability menu can indicate that using a +Rage
ability is a bad idea. Rage amulets are still marked
forbidden since they're not good for much else, and
it seemed more misleading to mark them OK.

--------------------------------------------------------------------------------
1aca2cef82 | Nicholas Feinberg | 2014-06-04 21:32:37 -0700

Remove a dusty & disused spellflag

--------------------------------------------------------------------------------
5eb314e3e4 | reaverb | 2014-06-04 23:15:54 -0400

Move giant slug tiles to /UNUSED
Elephant slug tiles remain to produce corpse tiles for gastronok.
Perhaps somebody better at the tiles stuff can change this.

--------------------------------------------------------------------------------
ceaffaa0d5 | reaverb | 2014-06-04 23:15:53 -0400

Change the spawn range of worms like beetles
Considering both monsters have similar problems, it doesn't make sense
to change one but not the other.

--------------------------------------------------------------------------------
ffd7f2f0d2 | Steve Melenchuk | 2014-06-04 16:33:46 -0600

Show branch bribe totals in the right place (dpeg).

--------------------------------------------------------------------------------
1188800c9d | Neil Moore | 2014-06-04 18:10:39 -0400

Make cold-bloodedness actually go away in transformations.

--------------------------------------------------------------------------------
8ca96ae944 | Neil Moore | 2014-06-04 14:35:34 -0400

Rearrange some comments.

--------------------------------------------------------------------------------
97cf85e3ad | Neil Moore | 2014-06-04 14:19:36 -0400

Allow using Luajit on 64-bit systems (#8641)
64-bit luajit doesn't support lua_newstate or custom allocators, so don't
try to use one there.  However, give a warning if this happens with a
webtiles or dgamelaunch build, because servers probably do want the
memory throttling.

--------------------------------------------------------------------------------
1be7c1f13a | Neil Moore | 2014-06-04 13:17:20 -0400

Be more careful with Lua dgn.grid() (#8646)
Use dungeon_terrain_changed instead of setting the grid directly.  Among
other things, this destroys clouds and destroys or pushes items.

--------------------------------------------------------------------------------
959c368309 | Neil Moore | 2014-06-04 13:17:20 -0400

Fix player location check in trap vaults (#8646)
We were trying to compare result of you.pos() (two numbers) with a point
(a table with fields "x" and "y"), but that was always false.

--------------------------------------------------------------------------------
b6343ccac5 | Chris Campbell | 2014-06-04 16:39:56 +0100

Fix some monspeak comments (#8644)

--------------------------------------------------------------------------------
d2883c70a1 | Nicholas Feinberg | 2014-06-03 23:13:58 -0700

Give Louise some dialogue

--------------------------------------------------------------------------------
aae4844160 | Nicholas Feinberg | 2014-06-03 22:55:10 -0700

Update some outdated character descriptions

--------------------------------------------------------------------------------
2e9f587c8d | Nicholas Feinberg | 2014-06-03 22:19:56 -0700

More Donald

--------------------------------------------------------------------------------
7b5b602f3e | Nicholas Feinberg | 2014-06-03 21:53:08 -0700

Update some Donald lines

--------------------------------------------------------------------------------
f257b78660 | Nicholas Feinberg | 2014-06-03 20:58:47 -0700

Future-proof some shatter code

--------------------------------------------------------------------------------
efcbf97b9c | Nicholas Feinberg | 2014-06-03 19:58:01 -0700

Update the manual to reflect shield ench changes

--------------------------------------------------------------------------------
6ada40ac4f | Nicholas Feinberg | 2014-06-03 19:34:00 -0700

Make shatter actually actually do 1.5x dam vs ice

--------------------------------------------------------------------------------
57d1d0782b | Nicholas Feinberg | 2014-06-03 19:32:28 -0700

Make wisp form immune to shatter

--------------------------------------------------------------------------------
aec7b7d121 | Nicholas Feinberg | 2014-06-03 19:17:44 -0700

Increase shield enchantment limits
Now that shield enchantments are potentially meaningful.
This may make shields & large shields slightly more
attractive.

--------------------------------------------------------------------------------
6cfa8eec0c | Nicholas Feinberg | 2014-06-03 18:38:37 -0700

Make shatter actually do 1.5x dam vs ice

--------------------------------------------------------------------------------
0c40c516c2 | Nicholas Feinberg | 2014-06-03 18:18:19 -0700

Halve displayed SH values (crate)
So that shield enchantments are back to giving 1 (displayed)
SH, and SH generally is somewhat more in line with AC/EV;
1 SH should be very roughly as good as 1 EV, against things
they affect.

This also tweaks the 'bone plates' mutation slightly, for
rounding reasons; the first level is buffed very slightly,
and the third is very slightly nerfed.

--------------------------------------------------------------------------------
15b4f57918 | reaverb | 2014-06-03 17:46:25 -0400

Remove food mutations from Ce description (cheetah7071)

--------------------------------------------------------------------------------
69c048dd31 | reaverb | 2014-06-03 17:28:42 -0400

Modify the vaults which use to have giant slugs a little more.
The original edits weren't really liked, this one is mostly substituting
goliath beetles for worms.

--------------------------------------------------------------------------------
e7229c18fa | reaverb | 2014-06-03 16:01:15 -0400

Don't have Dith call worshippers "shining stars" (TZer0)
or "rising stars".

The new "shadow" messages look fine but if somebody has a better
suggestion I won't miss them.

--------------------------------------------------------------------------------
99cddad356 | reaverb | 2014-06-03 14:58:40 -0400

Modify Goliath Beetle D spawn depth too. (|amethyst)
Removing them from the Lair but leaving them in D:11-16 range didn't
make much sense. I've also changed their pick type to DOWN instead of
SEMI so they spawn in their shallow range more often. If this change is
reverted for whatever reason it would probably make sense to add Goliath
Beetles back to the Lair too.

--------------------------------------------------------------------------------
9c3079238c | reaverb | 2014-06-03 14:11:01 -0400

Revert "Replace some you.mutaiton[] calls with player_mutation_level()"
This reverts commit 51bfb8de72b7fe848c31fa6ce10e2c94b959eb64.

It turns out player_mutation_level() is not just a wrapper for
you.mutation, so this could cause some odd bugs like being transformed
influencing acquirement or not properly updating saves, it's probably
best to just reapply places where we know the usage is correct.

--------------------------------------------------------------------------------
9865e3c832 | Steve Melenchuk | 2014-06-03 11:00:23 -0600

Show branch bribability on ^^ screen (dpeg).
There's just enough room here right now to show all of the bribable
branches in a game where you have both Snake and Shoals. Hooray.

Lair branches only turn up in the display if you know they exist. An
alternative is to always display them, or display them only if you don't
know they don't exist if they don't.

--------------------------------------------------------------------------------
b2ba469682 | Steve Melenchuk | 2014-06-03 10:29:37 -0600

Time out friendly bribed monsters like neutral bribed monsters (dpeg).
Yes, this means they don't demand payment now and again, and stop
following you when the initial bribe expires.

--------------------------------------------------------------------------------
536c3b657d | Steve Melenchuk | 2014-06-03 10:21:41 -0600

Adjustments to Gozag's gold distraction (dpeg).
Monsters are now distracted for 1-5 turns on a 3% chance per pile of
gold in LOS.

--------------------------------------------------------------------------------
d03812fd80 | Steve Melenchuk | 2014-06-03 10:08:00 -0600

Annouce Gozag abilities only if/when you can afford them (dpeg).
This includes the ^ screen.

Probably some of the messages can be reduced in length; some of them go
over 80 characters now.

--------------------------------------------------------------------------------
8bf75c48cd | Neil Moore | 2014-06-03 10:41:55 -0400

Fix the orb beetle.

--------------------------------------------------------------------------------
3bc8b168a1 | reaverb | 2014-06-03 05:52:30 -0400

Simplify Xom's amusement at mutations
Before, there was a giant list of which mutations Xom did and didn't
like. This list was spoilerly and rarely updated for new mutations, so
it has been replaced by just checking if the mutation is good or bad.

--------------------------------------------------------------------------------
2d44f70a2e | reaverb | 2014-06-03 03:50:24 -0400

Remove Goliath Beetles from the Spider's Nest and the Lair
While some people have defended Goliath Beetles as teaching monsters or
early game threats, nobody argued they worked well in their late spawn
range.

--------------------------------------------------------------------------------
1fa230282d | reaverb | 2014-06-03 02:04:08 -0400

Rewrap a comment to 80 char

--------------------------------------------------------------------------------
51bfb8de72 | reaverb | 2014-06-03 01:55:17 -0400

Replace some you.mutaiton[] calls with player_mutation_level()
It's still inconsistant, but at least some more non setting uses are now
using player_mutation_level().

--------------------------------------------------------------------------------
4e31f848ab | Steve Melenchuk | 2014-06-02 22:10:32 -0600

Don't spawn eight manticores in a Shoals entry.
Now you get exactly one of each of the monsters it could spawn before.

--------------------------------------------------------------------------------
488ec72f03 | reaverb | 2014-06-02 23:47:37 -0400

Replace the old elephant slug in Sprint 1 with a yak (magicpoints)

--------------------------------------------------------------------------------
ba203fcf0c | reaverb | 2014-06-02 22:58:31 -0400

Remove Elephant Slugs (actually turn them to dummy monsters)
Basically this has all the effects of a removal, but the elephant slug
"stat block" remains as a dummy so Gastronok has a base type. The slugs
even get swapped out on load for ghosts.

One thing I've considered is turning Elephant Slugs into some other
monsters, such as worms. "Slug" conveys the fact it is slow better than
"Worm".

--------------------------------------------------------------------------------
031d0d796e | ontoclasm | 2014-06-02 17:22:58 -0500

Recall / VD spell icons

--------------------------------------------------------------------------------
5bf09a8456 | ontoclasm | 2014-06-02 17:15:12 -0500

Helmet tiles (roctavian, 8519)

--------------------------------------------------------------------------------
2f773b7a4e | ontoclasm | 2014-06-02 17:15:11 -0500

Spell icons (roctavian, 8519)

--------------------------------------------------------------------------------
949fd7c883 | ontoclasm | 2014-06-02 17:15:10 -0500

Randart weapon tiles (roctavian, 8519)

--------------------------------------------------------------------------------
9d807a285a | ontoclasm | 2014-06-02 17:15:10 -0500

Some undead-ish tiles (roctavian, 8519)

--------------------------------------------------------------------------------
b92899017c | ontoclasm | 2014-06-02 17:15:09 -0500

Remove some unused enums

--------------------------------------------------------------------------------
f41e2931f9 | Steve Melenchuk | 2014-06-01 21:03:23 -0600

Typo fix (ontoclasm).

--------------------------------------------------------------------------------
a0774edbfe | Steve Melenchuk | 2014-06-01 21:01:36 -0600

A popular 4.1ism: Titles for uniques.
Boris, Master of Life and Death comes into view.

Currently displays only on the describe screen and on the unique coming
into view by itself.

Special thanks to the team on ##crawl-dev that helped assemble these.

--------------------------------------------------------------------------------
ba99abefeb | reaverb | 2014-06-01 22:39:43 -0400

Revert "Make some curse skulls patrolling (HangedMan)"
Since they are stationary now

This reverts commit 92f2028361f8467237770e743e776d103a3a676e.

--------------------------------------------------------------------------------
f01764b7ac | reaverb | 2014-06-01 22:09:15 -0400

Remove M_VIGILANT
It's unused now that curse skulls are stationary again.

This reverts commit e381e79d48aaf3bf1e770f58b6abfcf0817f2b81.
This reverts commit 5a745abeb842ba05116320a397ba05de73a94303.

--------------------------------------------------------------------------------
2cfac19f2d | reaverb | 2014-06-01 21:58:20 -0400

Revert "Acquaint Curse Skulls with their inner mushroom"
As the original commit describes, this was experimental. The moving
version wasn't well liked, at least the staionary version can be
ignored.

This reverts commit 2034c5180c8ce08fb2fb3c7955e200c7909a41d0.

Conflicts:
	crawl-ref/source/mon-act.cc
	crawl-ref/source/mon-behv.cc
	crawl-ref/source/mon-data.h

--------------------------------------------------------------------------------
574083af5a | reaverb | 2014-06-01 20:01:02 -0400

Remove Giant Slugs
Slow melee-only monsters are awful, and nobody objected to removing
these. Next to be removed: elephant slugs.

Somebody might want to look over my vault edits, as ususal.

--------------------------------------------------------------------------------
3833f9cc29 | Nicholas Feinberg | 2014-06-01 14:43:35 -0700

Fix Confusing Touch's damage reduction

--------------------------------------------------------------------------------
24cdee3206 | reaverb | 2014-06-01 16:15:55 -0400

Remove Iron Trolls from natural generation
As a slow melee-only monster they didn't work well. Originally the plan
was to keep them in Dis but it turns out they never actually spawned in
Dis. Instead, Iron Trolls are place by a few Dis vaults, and are left
there by this change.

--------------------------------------------------------------------------------
208768decf | reaverb | 2014-06-01 16:15:46 -0400

Remove an unnecessary forward declaration

--------------------------------------------------------------------------------
abb6ffdf6e | reaverb | 2014-06-01 16:14:53 -0400

Wrap a comment properly

--------------------------------------------------------------------------------
697660a17e | Nicholas Feinberg | 2014-06-01 10:33:35 -0700

Remove commented-out code

--------------------------------------------------------------------------------
8d0a50cfbb | Neil Moore | 2014-06-01 11:29:48 -0400

Don't shadow copy awkward throws.
Though we check that the thrown object is a missile, avoiding most
awkward throws, there's still the possibility of throwing an arrow
etc. without a launcher.

--------------------------------------------------------------------------------
4d4ff43f83 | Neil Moore | 2014-06-01 11:27:51 -0400

Make dith shadows throw the correct item (#8623)

--------------------------------------------------------------------------------
3441e6d64d | Neil Moore | 2014-06-01 10:58:24 -0400

Increase the price of enchanted blowguns.

--------------------------------------------------------------------------------
319559a1ef | Neil Moore | 2014-06-01 10:56:53 -0400

Count rod enchantment towards price (minmay)

--------------------------------------------------------------------------------
8da35e98ad | Neil Moore | 2014-06-01 10:43:31 -0400

Avoid a crash when escaping nets.
Update the net in the stash tracker when either you or a monster escapes
the net, so a later ctrl-x (etc.) doesn't try and fail to find the held
actor.

--------------------------------------------------------------------------------
8274541554 | Neil Moore | 2014-06-01 01:41:37 -0400

Mark obsolete brands as obsolete.
In the terse name only (inscriptions, % screen, and wielded/quiver).  This
way it will, I hope, be clearer that the item doesn't do anything special.

--------------------------------------------------------------------------------
dd43c9fbf0 | Neil Moore | 2014-06-01 01:18:19 -0400

Don't mark obsolete-branded weapons as buggy (rchandra)

--------------------------------------------------------------------------------
8ecc765de4 | Neil Moore | 2014-06-01 00:48:41 -0400

Remove pseudo-inscription and description for Preservation (rchandra)
Since it no longer does anything.

--------------------------------------------------------------------------------
66f8c19131 | Neil Moore | 2014-05-31 23:53:57 -0400

Don't crash on time step while siren-mesmerised (#8546)

--------------------------------------------------------------------------------
1c26d996b4 | Neil Moore | 2014-05-31 23:14:29 -0400

Use the correct skill in variable-range rod spells (#8307)
For the purposes of the hostile-in-range check and darken_beyond_range,
we were computing power using the spell schools rather than Evocations.

--------------------------------------------------------------------------------
7ec5335786 | Neil Moore | 2014-05-31 22:44:58 -0400

More carefully chase item links in the pickup menu (#8603)
Moving the item to the player destroyed it; normally that would have set
the non-item's link to NON_ITEM, exiting the loop, but level excursions as
part of pickup could overwrite the link.

--------------------------------------------------------------------------------
41138fff58 | Neil Moore | 2014-05-31 22:12:01 -0400

Only set COPY_FONTS when building tiles (geekosaur).
We only use it inside an ifdef TILES, so this has no real effect.

--------------------------------------------------------------------------------
585d354494 | Neil Moore | 2014-05-31 21:39:57 -0400

Don't blame the player for monster rod of clouds flames (#8621)

--------------------------------------------------------------------------------
3bad1a67f6 | Neil Moore | 2014-05-31 16:35:04 -0400

Allow more than just the fallback hell entry in old late D.

--------------------------------------------------------------------------------
63ae02f08c | Neil Moore | 2014-05-31 16:24:36 -0400

Generate abyss/hell entries in old games with D:27.
This includes generating hell entries on every level as we currently do in
Depths.

--------------------------------------------------------------------------------
e782c1ceca | Neil Moore | 2014-05-31 15:49:33 -0400

Allow make FORCE_CXX=clang++ FORCE_CC=clang
This avoids our custom compiler version selection for all but
crosshosted builds.  Use at your own peril, as using a short compiler
name evades some of our Makefile's detection of changed architectures
etc.

--------------------------------------------------------------------------------
5812d03172 | Neil Moore | 2014-05-31 15:14:52 -0400

Allow util/configure to work with universal builds.
We add arguments to $CXX, so we must allow it to be word-split.

--------------------------------------------------------------------------------
412fe291f1 | Neil Moore | 2014-05-31 14:55:47 -0400

Don't redefine strlcpy if it already exists.
Check for strlcpy at compile time and define our version only if
necessary.

This should fix recurrent warnings on Macs (and probably other BSDs).

--------------------------------------------------------------------------------
48301db052 | Neil Moore | 2014-05-31 13:48:21 -0400

Fix a bad array subscript (#8594)
This has incorrectly been 9 rather than 0 since the function was added
in 0.13-a0-927-g55b8bbf.

--------------------------------------------------------------------------------
0555b25a71 | Neil Moore | 2014-05-31 13:43:29 -0400

Replace a few uses of a <= b <= c (#8594)
One of them was incorrect, and the other correct but confusing.

--------------------------------------------------------------------------------
bc2dfad1e5 | Chris Campbell | 2014-05-31 18:11:44 +0100

Remove some unused handling for Nemelex item sacrifices

--------------------------------------------------------------------------------
e77763ce3d | Neil Moore | 2014-05-31 13:08:45 -0400

Staticalise a function.

--------------------------------------------------------------------------------
8d10a0c494 | Neil Moore | 2014-05-31 13:06:56 -0400

Fix an uninitialised variable (#8620)

--------------------------------------------------------------------------------
c0390336e7 | Neil Moore | 2014-05-31 13:03:21 -0400

Use a distribution instead of several random rolls.

--------------------------------------------------------------------------------
6f8b3a6e36 | Chris Campbell | 2014-05-31 13:38:35 +0100

Fix wizlab_eringya's fruit placement (Lightli)

--------------------------------------------------------------------------------
2d54138088 | Chris Campbell | 2014-05-31 13:00:18 +0100

Adjust TSO rN to use piety breakpoints
50, 100, 160 instead of 50, 100, 150.

--------------------------------------------------------------------------------
0995185e0b | Chris Campbell | 2014-05-31 12:58:54 +0100

Use piety breakpoints in Zin description

--------------------------------------------------------------------------------
02b381b3c5 | Chris Campbell | 2014-05-31 12:55:50 +0100

Remove a reference to Jiyva preventing item destruction

--------------------------------------------------------------------------------
abc592a74a | Chris Campbell | 2014-05-31 12:55:43 +0100

Increase the SH given by bone plates

--------------------------------------------------------------------------------
354ee59d37 | Chris Campbell | 2014-05-31 12:55:37 +0100

Make -faith mutation less common

--------------------------------------------------------------------------------
17eca9ec4e | Chris Campbell | 2014-05-31 12:55:12 +0100

Don't let Demigods gain -faith mutation

--------------------------------------------------------------------------------
707bacbc7d | Chris Campbell | 2014-05-31 11:33:46 +0100

Reduce the shield of Resistance's enchantment
To compensate further for the enchantment rescaling, especially since it's
otherwise just generically good.

--------------------------------------------------------------------------------
b4044005a7 | Chris Campbell | 2014-05-31 11:33:45 +0100

Remove an unused duration

--------------------------------------------------------------------------------
6251032092 | reaverb | 2014-05-31 03:54:35 -0400

Always formally identify the brand of a weapon on rebranding
Since the message gave almost all the information up anyway.

--------------------------------------------------------------------------------
7ad26a9524 | reaverb | 2014-05-31 01:34:23 -0400

New mutation: Forlorn
This mutation acts as an anti-faith, making piety gain slower. This
probably doesn't work well with wretched stars, but it seems like a
good, long term, strategic effect.

This idea has been floated around before as a species mutation. It could
be added to one of the blander species, or given to a new species.

--------------------------------------------------------------------------------
9da5f1d77a | reaverb | 2014-05-31 01:27:21 -0400

Make Gozag actually raise prices when you remove "faith
This also removes some dead code from when Gozag abilities where
cancellable

--------------------------------------------------------------------------------
6b54867221 | reaverb | 2014-05-31 01:27:21 -0400

Move Gozag you.faith() price adjustments to their own function

--------------------------------------------------------------------------------
9381616d1f | Neil Moore | 2014-05-31 00:06:53 -0400

Tag Zig pillars no_exits (#8614)
Many of them were completely impassable, which led to error messages
about being unable to find an exit.  I didn't bother distinguishing
those that could have exits---they all get the tag.

--------------------------------------------------------------------------------
59e6cbfe85 | Nicholas Feinberg | 2014-05-30 20:43:54 -0700

Re-order some dubious code
Would have caused double messages when under Gozag
penance, if that was a thing that existed.

--------------------------------------------------------------------------------
358dd7ecd4 | Nicholas Feinberg | 2014-05-30 20:23:17 -0700

Fix up an out-of-date comment

--------------------------------------------------------------------------------
e35f2c461c | Nicholas Feinberg | 2014-05-30 20:10:28 -0700

Fix wights' drinking problem (LogicNinja)

--------------------------------------------------------------------------------
8837f15a22 | Nicholas Feinberg | 2014-05-30 19:56:32 -0700

Further unrand shield adjustments
Tweak the Shield of the Gong back up a little more
(because it's great), and adjust the Shield of Ignorance
marginally downward. (Ironically, the reason I'd not
touched in the last commit was because I'd forgotten it.)

--------------------------------------------------------------------------------
4755caa66f | Neil Moore | 2014-05-30 21:36:56 -0400

Display "(holding you)" in inventory region tooltips.

--------------------------------------------------------------------------------
6ef17c16ee | Neil Moore | 2014-05-30 21:36:23 -0400

Don't claim corpses can be picked up in tiles (#8618)

--------------------------------------------------------------------------------
6ec9b674dd | reaverb | 2014-05-30 20:29:10 -0400

Fix Jiyva description mentioning burden (Arrhythmia, #8616)

--------------------------------------------------------------------------------
8389a64af8 | Neil Moore | 2014-05-30 17:26:47 -0400

Simplify a range check.

--------------------------------------------------------------------------------
95d9ad379b | Neil Moore | 2014-05-30 17:22:52 -0400

Remove darts from autopickup menu (#8615)

--------------------------------------------------------------------------------
1799391796 | Neil Moore | 2014-05-30 13:51:22 -0400

Fix some vaults (geekosaur)
Some KITEMs were inadvertently changed to ITEM in 0.15-a0-1171-gaafe2f6.

--------------------------------------------------------------------------------
aafe2f6cd5 | Shmuale Mark | 2014-05-30 13:29:22 -0400

Remove darts from vaults.
Most vaults (including the tutorial) get tomahawks or stones instead,
except for one or two which were removed.

--------------------------------------------------------------------------------
8301c1d235 | Shmuale Mark | 2014-05-30 13:29:18 -0400

Remove darts from backgrounds.
Warpers get 5 tomahawks of dispersal instead. Enchanters have their
starting stealth increased to 3.

--------------------------------------------------------------------------------
181ecfb998 | Shmuale Mark | 2014-05-30 13:27:44 -0400

Remove darts.
They don't have much use outside the first level of D (possibly
also the second): popping spores, killing slow things, waking up
sleeping monsters, etc. are all served just as well by stones,
and anybody who really wants to do damage with throwing would be
better served with tomahawks before they find javelins. For one
case where they could be useful (dispersal), tomahawks have been
given a chance at the dispersal brand.

--------------------------------------------------------------------------------
5f570ca36c | Shmuale Mark | 2014-05-30 13:27:44 -0400

Remove dart traps.
They had minimal damage and mechanical traps hardly generate anywhere
anyway. In ossuaries (the only vaults with them, thank god), they've
been mostly replaced with arrow traps or the floor.

--------------------------------------------------------------------------------
82193a2d1c | Shayne Halvorson | 2014-05-30 12:07:59 -0500

Show Fortitude strength increase in blue.
Looks like this was lost in the merge.

--------------------------------------------------------------------------------
5640e7f2d8 | Nicholas Feinberg | 2014-05-30 07:58:15 -0700

Enforce the Iron 80-Character Law

--------------------------------------------------------------------------------
10e107e5aa | Nicholas Feinberg | 2014-05-30 07:53:11 -0700

Arm Iron Devils
Their only remotely distinctive feature was their
love of weapons, so let's play with that.

--------------------------------------------------------------------------------
58571b5d5a | reaverb | 2014-05-30 05:07:26 -0400

Randomize the dragon in the wormcave Lair end
It can now be an ice dragon (50% chance)

--------------------------------------------------------------------------------
7ed7091d7c | reaverb | 2014-05-30 04:37:09 -0400

Fix Vault documentation for reverting to the layout_caves name
oops.

--------------------------------------------------------------------------------
989babb903 | reaverb | 2014-05-30 04:05:33 -0400

Update vault tags for new layout classification system:
This was unfortunately missed by both infiniplex and myself, but luckly
the changes were easy enough to make.

* layout_angular is just a better name for layout_misc, so this is just
  a substitution.
* layout_delve -> layout_anastomotic was also a substitution.
* All vaults with layout_cross already had layout_open, which is the new
  category of layout_cross layouts. The tag has just been removed.
* Same situation as layout_cross and layout_open with layout_basic and
  layout_rooms.
* layout_raniform was not very clear, so I have reverted to the name
  layout_caves for the layouts rather than changing the vaults.

The name of layout_anastomotic should probably also be changed in
retrospect, I have no ideas at the moment of what a new name could be.

--------------------------------------------------------------------------------
b17653da55 | reaverb | 2014-05-30 03:21:03 -0400

Edit a vault which could spawn early iron devils (Basil)
Since it assumed they were slow.

--------------------------------------------------------------------------------
d6509c67db | reaverb | 2014-05-30 02:58:41 -0400

Make Iron devils and Toenail Golems speed 10
Slow melee-only monsters are awful, and there was no reason for these
monsters to be slow. This is a precursor to a possible mass removal of
this design of monster.

--------------------------------------------------------------------------------
3bf3c23cdc | infiniplex | 2014-05-30 02:26:46 -0400

Gave some layouts more descriptive names

--------------------------------------------------------------------------------
e549de3824 | infiniplex | 2014-05-30 02:19:58 -0400

Updated all layouts to use new layout type system

--------------------------------------------------------------------------------
7a813ab0dd | Nicholas Feinberg | 2014-05-29 22:46:05 -0700

Rework Confusing Touch
In its previous state, it was fiddly, misleading, and
kind of overpowered. So:

Raise it to level 2 (& remove it from Cantrips, replacing
it with Corona). Remove the stacking-duration effect &
increase the initial duration. Set damage of all hits to
0, and make the first successful (confusing) hit end the
effect.

This should still be useful, but in a level 2 kind of way.
We'll see how that pans out.

--------------------------------------------------------------------------------
fd0dc405fe | Nicholas Feinberg | 2014-05-29 20:42:41 -0700

Double the SH bonus from shield enchantments
Shield enchantments have been irrelevant ever since
SH was rescaled. This was particularly annoying because
enchant armour scrolls could still be used on them, even
though you'd never want to - a 'newbie trap'. This should
go some way toward fixing that.

(You could halve all other sources of SH and re-do the
calculations, but then you'd have the same problem as before,
that SH isn't on the same scale as AC and EV...)

--------------------------------------------------------------------------------
4f92ec82d3 | infiniplex | 2014-05-29 22:28:04 -0400

Standardized layout header format

--------------------------------------------------------------------------------
ddcb950fa1 | Neil Moore | 2014-05-29 16:39:37 -0400

Be more consistent with doxygen comment style.
Use /** for block comments, /// for short comments, and /**< and ///< for
post-member comments.

The //<! that appeared in a few places wasn't even correct: it should
have been //!< (but is now ///<).

--------------------------------------------------------------------------------
408c133e4b | Neil Moore | 2014-05-29 14:46:01 -0400

Correct a comment I screwed up.
And update another comment to match it.

--------------------------------------------------------------------------------
a9e4b68620 | Neil Moore | 2014-05-29 14:36:40 -0400

Correct some doxygen blocks.
Some of them were missing the /** (or /*!) that makes doxygen consider
the comment in the first place.

--------------------------------------------------------------------------------
08af173fcb | Neil Moore | 2014-05-29 13:52:32 -0400

Doxygenate item_def member documentation.
And expand the documentation for pos and link in particular.

--------------------------------------------------------------------------------
8a4a71836c | Neil Moore | 2014-05-29 13:19:12 -0400

Refactor a bit.

--------------------------------------------------------------------------------
1c38e164c0 | Shmuale Mark | 2014-05-29 13:07:53 -0400

Don't consider hell entrances as going up outside the Hells (N78291).

--------------------------------------------------------------------------------
863110b63a | Neil Moore | 2014-05-29 12:44:40 -0400

Show holdee of stationary nets in item menus.
This includes both the pickup menu "(holding you)" and Ctrl-X "(holding
a kobold)".  If the monster is invisible, "(holding something)".

Adds a few asserts for bad nets: stationary nets not on the ground, or
with no actor or their square.

--------------------------------------------------------------------------------
7958666ef7 | Neil Moore | 2014-05-29 12:39:03 -0400

Move ASSERT_IN_BOUNDS to coord.h
Since its expansion called in_bounds().

--------------------------------------------------------------------------------
5eabb2b486 | Neil Moore | 2014-05-29 11:44:57 -0400

Revert darkgrey pickup colouring of stationary items.
minmay pointed out that this makes corpses look useless, particularly
since the "pickup" colour mode is used pretty much anywhere we list
items on the ground, and since for the time being players still need
to butcher corpses and thus need to know their edibility.

This reverts commit 71ccd60512c5c14285679966a0e374409dbdffde.
This reverts commit 13a1ae8942facfd9c602adafdfc940aeca161e99.

--------------------------------------------------------------------------------
56e65f5c16 | Chris Campbell | 2014-05-29 16:36:30 +0100

Don't make sticky flame melt ice armour twice every tick
It melted ice armour in expose_player_to_element (possibly just reducing
the duration), but then always melted it fully in addition to that.

--------------------------------------------------------------------------------
6221ae0b9b | Chris Campbell | 2014-05-29 16:36:29 +0100

Fix sticky flame using the old formulae for resistance
Broken since 614cdcf042622, oops.

--------------------------------------------------------------------------------
184dc12256 | Shmuale Mark | 2014-05-29 11:05:02 -0400

Reduce fruit amounts, increase nutrition.
It seemed that the amount of fruit generated after the change was
a bit too much, so the average stack size is being reduced while
increasing the nutrition to keep spriggans around the same while
trying to bring Fedhas back to around where things were before.

For reference, this is the old version, with, in order, nutrition,
herbivore III nutrition, occurence out of 100 (times stack size),
and average spriggan nutrition from it per 100 food items generated:

250 | 400  | 10*(d13) | 28000

and now:

850 | 1000 | 10*(d5)  | 30000

--------------------------------------------------------------------------------
40568d41d8 | Neil Moore | 2014-05-29 11:02:00 -0400

Split off armour and shield upgrade code.
And document that enum order matters.

--------------------------------------------------------------------------------
81f32e0507 | Shmuale Mark | 2014-05-29 10:56:10 -0400

Reduce fruit flood in some vaults slightly.

--------------------------------------------------------------------------------
dff2ca7b45 | Shmuale Mark | 2014-05-29 10:18:21 -0400

Give Beogh a chance of upgrading weapon types of orcs.
This is even more hackish in its way than the previous commit, but
there's nothing that I could think of that would improve it. Again,
HD/250 is used.

--------------------------------------------------------------------------------
acbb2f26ce | Shmuale Mark | 2014-05-29 09:59:40 -0400

Give Beogh a chance to upgrade armour of orc friends.
I'm really not sure what a good chance would be, but I think that
given the number of monsters your orcs will kill, a high rate will
get them all wearing large shields and plate too quickly. This might
be paranoia, and HD/250 could end up being way too low.

--------------------------------------------------------------------------------
bfbb4183b8 | reaverb | 2014-05-29 05:27:11 -0400

Changelog through 0.15-a0-1140-g4b0d1de

--------------------------------------------------------------------------------
4b0d1dea3b | Chris Campbell | 2014-05-29 08:36:44 +0100

Don't make rings of stealth especially likely to be cursed

--------------------------------------------------------------------------------
492f3a505a | Chris Campbell | 2014-05-29 08:36:41 +0100

Fix acquirement messages being coloured "dangerous"

--------------------------------------------------------------------------------
9bbef2017b | reaverb | 2014-05-29 03:15:29 -0400

Remove AQ_CARD_GENIE on TAG_MAJOR_VERSION bump
Now that the Genie card is gone it has no reason to exist.

--------------------------------------------------------------------------------
bb107bb376 | reaverb | 2014-05-29 03:15:18 -0400

Remove the Genie card
It was bad for the same reason Experience and such were bad - it's a
strategic card. Who wants to dig through decks just to get a particular
effect? The effect is just 50% acquirement or 50% bad potion effects, so
it isn't worth moving somewhere else.

--------------------------------------------------------------------------------
af34421f15 | Neil Moore | 2014-05-29 03:12:13 -0400

Remove descriptions for two ex-cards.

--------------------------------------------------------------------------------
ada11744e1 | Neil Moore | 2014-05-29 02:36:32 -0400

Fix a potential teleport closet (#8604)

--------------------------------------------------------------------------------
71ccd60512 | Neil Moore | 2014-05-29 02:22:32 -0400

Override food colouring for corpses in pickup menus.

--------------------------------------------------------------------------------
e0ecc805fa | Neil Moore | 2014-05-29 02:22:32 -0400

Allow pickup with only stationary items on the ground.
If pickup_menu is true, display the menu (with nothing selectable).
If it is false, just list the items on the square.

--------------------------------------------------------------------------------
7a68a02bfd | Neil Moore | 2014-05-29 02:22:32 -0400

Skip stationary items in menuless pickup.

--------------------------------------------------------------------------------
2575cb8483 | Neil Moore | 2014-05-29 02:22:32 -0400

Make the menu cursor skip unselectables.

--------------------------------------------------------------------------------
a22ca7f95f | Neil Moore | 2014-05-29 02:22:32 -0400

Omit selection indicator for items with no hotkey.

--------------------------------------------------------------------------------
8ea69f7e86 | Neil Moore | 2014-05-29 02:22:32 -0400

Avoid a bounds error when menu items have no hotkeys.

--------------------------------------------------------------------------------
fd0d25c059 | reaverb | 2014-05-29 01:23:05 -0400

Remove the unused deck_of_enchantments varaible (floatingatoll)

--------------------------------------------------------------------------------
13a1ae8942 | Neil Moore | 2014-05-29 01:20:07 -0400

Colour stationary items darkgrey in pickup menus.

--------------------------------------------------------------------------------
62bc84823e | Neil Moore | 2014-05-29 01:20:00 -0400

Show stationary items in pickup menu (#8611)
But do not assign any hotkeys.

--------------------------------------------------------------------------------
c9b5a15ee7 | Neil Moore | 2014-05-29 01:16:14 -0400

Remove MF_DROP_PICKUP.

--------------------------------------------------------------------------------
01ce88895b | Nicholas Feinberg | 2014-05-28 21:59:19 -0700

Reduce elephant quote length (6331)
We probably do not need two versions of the 'blind
men and the elephant' poem.

Also, combined, the quotes were longer than the screen.

--------------------------------------------------------------------------------
082dc3d54d | Nicholas Feinberg | 2014-05-28 21:33:00 -0700

Make Orbs of Destruction less crashy

--------------------------------------------------------------------------------
46adbadee1 | Nicholas Feinberg | 2014-05-28 21:20:15 -0700

Boulder beetle verisimilitude (7988)

--------------------------------------------------------------------------------
dd45dc13b0 | Nicholas Feinberg | 2014-05-28 21:01:35 -0700

Make the lightning scales a bit more visible (7588)
Not a very good spriting job, but it looks liveable in play.

--------------------------------------------------------------------------------
2fb551e74a | Nicholas Feinberg | 2014-05-28 20:23:07 -0700

Make trampling trigger traps (Jazzimus, 5183)

--------------------------------------------------------------------------------
9b3a599bbd | Shayne Halvorson | 2014-05-28 14:57:55 -0500

Allow a weapon swap when drawing the Illusion.
Now the player illusion won't be deck bashing if the deck was wielded
and evoked.

--------------------------------------------------------------------------------
474ca70ed4 | gammafunk | 2014-05-28 12:50:50 -0500

Rework demonspawn mutation tiers involving conservation
Since scroll/potion conservation is no longer relevant, I've split the
flame/freezing cloud immunities that were part of icemail/fire blood
into their own mutations. We now give these as the second mutation in
both the tier-2 and tier-3 fire/ice mutation sets.

--------------------------------------------------------------------------------
afd1d1232c | gammafunk | 2014-05-28 12:50:50 -0500

Remove jewelry and armour sources of conservation
The amulet of conservation and cloaks of preservation are no longer
necessary without item destruction. Maxwell's patent armour now has
the resistance ego and grants rF+ and rC+.

--------------------------------------------------------------------------------
4412034ca0 | gammafunk | 2014-05-28 12:50:50 -0500

Destroy item destruction
Now that inventory weight and player burden states are gone, item
destruction doesn't serve one purpose it clearly accomplished: help
prevent the player from being at or next to burden capacity at all
times. Outright destruction of strategic consumables encourages more
needless inventory management, so we'd like to exclude these from any
form of destruction and possibly prevent them from taking up inventory
space at all. Denial of tactical consumables, either temporarily or
permanently, is something we're going to look into later on, possibly
in the release after next, since it can create interesting and
generally not frustrating gameplay if done correctly. Needless to say,
item destruction wasn't a player favorite and may have a sparsely
attended funeral. RIP in peace.

For now we aren't adjusting the rate of consumable generation to
compensate for no item destruction, but that balancing will happen
after play-testing shows how much adjustment is necessary.

--------------------------------------------------------------------------------
12a312a68c | Steve Melenchuk | 2014-05-28 11:41:50 -0600

Have clua view. funcs give return vals with out-of-bounds coords (gw).
They didn't have anything specified to return then, leading to undefined
and odd behaviour.

--------------------------------------------------------------------------------
51f68aa8d1 | ontoclasm | 2014-05-28 12:00:04 -0500

Reshape some dragons

--------------------------------------------------------------------------------
220e614035 | Steve Melenchuk | 2014-05-28 10:56:59 -0600

Report clua errors in running ready() (gw).
Should help players debug their fancy Lua scripts.

--------------------------------------------------------------------------------
2ea1588501 | Nicholas Feinberg | 2014-05-28 08:41:51 -0700

Checkwhite & unbrance cleanup

--------------------------------------------------------------------------------
a909be4893 | Nicholas Feinberg | 2014-05-28 08:41:06 -0700

Add a placeholder status icon for Death's Door

--------------------------------------------------------------------------------
b883f3e774 | Shmuale Mark | 2014-05-28 11:16:34 -0400

Stop up an information leak.

--------------------------------------------------------------------------------
b2ae07411e | Shmuale Mark | 2014-05-28 11:01:26 -0400

Add a "Give item to follower" invocation for Beogh (evilmike).
It can only be used once per monster, and only on named followers.
This should hopefully replicate some of the fun of equipping your
friends while not having micromanagement or the problems with letting
them pick up whatever off the ground.

--------------------------------------------------------------------------------
5712dba9fe | Shmuale Mark | 2014-05-28 11:01:26 -0400

Move some of Maurice's stealing code into its own function.

--------------------------------------------------------------------------------
d1b8b352da | Shmuale Mark | 2014-05-28 11:01:26 -0400

Don't let monsters pick up miscellaneous items.
Mimic still can because that's how mimics work, but no monsters can
use any of the misc items.

--------------------------------------------------------------------------------
7f216ff064 | Shmuale Mark | 2014-05-28 11:01:26 -0400

Remove the now-superfluous friendly_pickup command suite.
Including the default_friendly_pickup option.

--------------------------------------------------------------------------------
40715cc413 | Shmuale Mark | 2014-05-28 11:01:26 -0400

Don't let friendlies pick up anything at all.
Since they can't pick up things you've seen, their only chance to
get anything would be some kind of madness with tw, which seems like
a bad thing to encourage. This only affects perma-allies, obviously,
since summons can't pick up anything anyway.

--------------------------------------------------------------------------------
76d6fdf29a | Shmuale Mark | 2014-05-28 11:01:26 -0400

The start: don't let monsters pick up items you've seen.

--------------------------------------------------------------------------------
1e9b5204e7 | Steve Melenchuk | 2014-05-27 23:21:11 -0600

Fix sacrificeable explore (gw, morik, #8608).

--------------------------------------------------------------------------------
3789e07f7c | Shayne Halvorson | 2014-05-28 01:14:22 -0400

Let dowsing show invisible monsters in LOS.
As it already shows them when out of sight.

--------------------------------------------------------------------------------
2c9ca74e82 | Shayne Halvorson | 2014-05-28 01:14:22 -0400

New card: Degeneration
It tries to polymorph monsters into weaker ones.

--------------------------------------------------------------------------------
4940a7320d | Shayne Halvorson | 2014-05-28 01:14:22 -0400

Tweak Elixir card.
Add it to the deck of emergency and remove the deck of enchantments
from the deck of war. Also change the status colours to green
and blue to match the bars.

--------------------------------------------------------------------------------
b48a7715b0 | Shayne Halvorson | 2014-05-28 01:14:22 -0400

Change Velocity card.
It hastes the slow and slows the hasty, with higher power
more likely to benefit the player.

--------------------------------------------------------------------------------
f6e66672eb | Shayne Halvorson | 2014-05-28 01:14:21 -0400

New card: the Illusion
Summons an illusion of the player (like Mara's ability).

--------------------------------------------------------------------------------
1ee73f30e7 | Shayne Halvorson | 2014-05-28 01:14:21 -0400

Reduce Flight card to Shaft card.
The other effects are all duplicated (by other cards, even!), while
shafts have uses both on the player and on monsters.

--------------------------------------------------------------------------------
a2954550f6 | Shayne Halvorson | 2014-05-28 01:14:21 -0400

The Spark -> the Storm
Rain (shallow water), swiftness and a short lived tornado at high power.

--------------------------------------------------------------------------------
2adf8a44e9 | Shayne Halvorson | 2014-05-28 01:14:20 -0400

Replace Hammer card with Fortitude.
It grants damage shaving along with a strength boost, as Battlelust
is likely not to make it into Nemelex's decks.

--------------------------------------------------------------------------------
5d578cf1fb | Shayne Halvorson | 2014-05-28 01:14:20 -0400

Rework the Flame card.
It now creates flame clouds around (but not under) the player.
With higher power it is more likely to place clouds under hostiles.

--------------------------------------------------------------------------------
89ace16763 | Shayne Halvorson | 2014-05-28 01:14:20 -0400

Alter the decks Nemelex gifts.
Decks of war and decks of escape are now Nemelex' decks; decks of
wonders contain the cards that Nemelex doesn't gift. Some cards have
been move to fit this.

Warp (blink) and Portal (teleport) cards are removed.

--------------------------------------------------------------------------------
9820907aeb | Shayne Halvorson | 2014-05-28 01:14:20 -0400

Change peek at two.
Peek at two now reveals the top two cards (no shuffling of the deck);
however, decks that have been peeked cannot be used with Nemelex
abilities. Hopefully this should make it something that isn't used
on every deck, while still being useful early on when you don't have
other abilities.

--------------------------------------------------------------------------------
8f60423816 | Shayne Halvorson | 2014-05-28 01:14:19 -0400

Change Nemelex piety gain to piety from exploration.
Nemelex no longer accepts sacrifices or grants piety for using
decks.

--------------------------------------------------------------------------------
7aedcd24e1 | Neil Moore | 2014-05-28 01:06:04 -0400

Don't carry over sealed featured into the Abyss (#8601)

--------------------------------------------------------------------------------
5ff1a9f2f3 | Nicholas Feinberg | 2014-05-27 21:36:38 -0700

Make Crawl a bit fruitier

--------------------------------------------------------------------------------
6a27ad64b1 | Neil Moore | 2014-05-28 00:35:49 -0400

Ignore monsters behind glass for tension checks (#8543)

--------------------------------------------------------------------------------
2f1ea1acd0 | Neil Moore | 2014-05-28 00:27:25 -0400

Remove SIZE_HUGE.
It's not marshalled anywhere, so there's no need to wait for a
major bump.

Also add a static array size check, and adjust a few variables.

--------------------------------------------------------------------------------
cd548fe2d1 | Chris Campbell | 2014-05-28 04:43:17 +0100

Reduce the base chance of applying corrosion, ignore item enchantment for 
resistance
With temporary corrosion being more abstracted than permanent corrosion,
having items resist individually was a little strange since an artefact
or +9 weapon could still be "corroded" by swapping from something else to
it, or by having your armour be the target of the acid.

Corrosion now just looks at equipped/empty slots to determine the chance
of applying the debuff and how much damage to do with the acid splash,
and is less likely to apply the debuff (compared to low-enchantment
items). Item enchantment (or artefact status, or crystal plate armour-ness)
no longer has an effect. The debuff also now can't be applied multiple times
from one acid splash.

--------------------------------------------------------------------------------
a5e4a985ae | Nicholas Feinberg | 2014-05-27 20:40:59 -0700

Friendly wardens no longer lock players in (crate, 8592)

--------------------------------------------------------------------------------
c540bf1a82 | Neil Moore | 2014-05-27 23:24:11 -0400

Staticalise some functions.
And tweak a comment.

--------------------------------------------------------------------------------
bb433b536b | Nicholas Feinberg | 2014-05-27 20:10:01 -0700

Allow felids to memorize Tukima's Dance

--------------------------------------------------------------------------------
82da913bb1 | Nicholas Feinberg | 2014-05-27 20:08:15 -0700

Reduce Tukima's Dance to level 3
The new effect compared unfavorably to Enslavement. It works
rather a lot better at level 3, and will probably get more use
there, too.

--------------------------------------------------------------------------------
6644165f80 | Nicholas Feinberg | 2014-05-27 19:21:11 -0700

Hauntify Tukima's Dance.
Make Tukima's Dance weapons (almost) only attack their
original owner. Removes the last reason to do fiddly weapon-swapping.

--------------------------------------------------------------------------------
ea3f500ce5 | Jeekaroose | 2014-05-27 19:18:48 -0700

Change Tukima to be a targeted spell
(Committer's note: The old Tukima's Dance was fiddly and
not well-liked. Changing it into something hexier seemed
like a popular & reasonable idea.

I refactored the spell code & fixed a few small issues.)

--------------------------------------------------------------------------------
6d64fec83a | Chris Campbell | 2014-05-28 01:33:20 +0100

Add some missing gods to the Abyss temple

--------------------------------------------------------------------------------
639bcca6ff | Chris Campbell | 2014-05-28 01:33:19 +0100

Remove an Abyss mimic vault
It was distinguishable from actual runes by not being in a vault and
especially by being placeable on Abyss:1-2.

--------------------------------------------------------------------------------
6de567afa1 | Chris Campbell | 2014-05-28 01:33:17 +0100

Mention contamination when cancelling an effect in amulet of stasis desc

--------------------------------------------------------------------------------
99c29ed493 | Nicholas Feinberg | 2014-05-27 17:27:23 -0700

Nerf butterflies
Mainly to reduce the annoyance of fighting one
on D:4, though removing the absurdity of butterflies
being tougher than goblins is another reason.
Shouldn't be a significant nerf to Summon Butterflies,
by the time the spell appears & is useful.

--------------------------------------------------------------------------------
55f8744005 | reaverb | 2014-05-27 19:31:01 -0400

Edit dpeg_arrival_orchard so it does not drop so much fruit
Somebody should probably systematically look over all the fruit vaults
to ensure they are balanced. The arrival vaults in particular could
cause scumming if they drop too much fruit.

--------------------------------------------------------------------------------
b32516e3e8 | ontoclasm | 2014-05-27 16:06:21 -0500

Fedhas invo tiles

--------------------------------------------------------------------------------
d57f71d5c6 | ontoclasm | 2014-05-27 16:06:20 -0500

Gozag Invoc Titles

--------------------------------------------------------------------------------
b6e3c3094c | Neil Moore | 2014-05-27 12:07:48 -0400

Function to open and lock new files only.
Currently unused, but there are plans.

--------------------------------------------------------------------------------
c5af6dabdc | Neil Moore | 2014-05-27 12:07:48 -0400

Remove some unused parameters.

--------------------------------------------------------------------------------
8adfe277d9 | Neil Moore | 2014-05-27 12:07:48 -0400

Fix wizmode duration shortcuts.
Besides making them print as characters again, only assign shortcuts to the
first 26: It was possible to have so many durations that it produced invalid
UTF-8.

--------------------------------------------------------------------------------
7bd0902ce6 | Shmuale Mark | 2014-05-27 11:47:28 -0400

Remove SIZE_HUGE.
Do you know whether it was bigger than SIZE_GIANT or not? Chances
are no (it's bigger, to be clear). There are some small changes to
in constriction, though there aren't any constrictors at either size,
and knockback -- in particular, dragons will be less effective at
knocking back giants.

The other change is that Dragon Form will have slightly better EV,
as will monster dragons (but only while constricted or netted). The
change seems like it is rather minor; I tested it with 15 Dodging and
only had a difference of 3 EV.

--------------------------------------------------------------------------------
f4393d7ca9 | Nicholas Feinberg | 2014-05-27 08:07:37 -0700

Fix a compilation warning

--------------------------------------------------------------------------------
45de02d5c8 | Nicholas Feinberg | 2014-05-27 08:03:20 -0700

Remove an unused parameter.
With 4ad890b14, check_range was unused again. It can easily
be re-added with needed, though I'm not fond of the duplication
with the checks in cast_a_spell().

--------------------------------------------------------------------------------
74d0bc9161 | Neil Moore | 2014-05-27 10:43:09 -0400

Fix console compilation (PleasingFungus)

--------------------------------------------------------------------------------
4f158a6c8d | Neil Moore | 2014-05-27 10:38:49 -0400

Add a missing TAG_MAJOR check.

--------------------------------------------------------------------------------
a2903240b6 | Chris Oelmueller | 2014-05-27 10:16:57 -0400

Recognize '<' key on level map while in hells
The portals are the most intuitive way out, as far as X is concerned.

--------------------------------------------------------------------------------
baee6d24e8 | Neil Moore | 2014-05-27 10:15:52 -0400

Move wizmode duration names to duration_data (reaverb)
And reformat and refactor.  Several of the names should probably
be cleaned up or improved.

--------------------------------------------------------------------------------
500869b1ca | Shmuale Mark | 2014-05-27 09:09:16 -0400

Try to reduce fruit flood a little.

--------------------------------------------------------------------------------
4ad890b147 | Shmuale Mark | 2014-05-27 07:50:38 -0400

Revert "Don't waste time casting Animate Dead, usually."
Because it's very common that corpses will be hidden by items above
them, especially now that that's guaranteed if there are any items
above them, the 'z' behaviour it made was too restrictive.
This reverts commit f040398a199a9f2bda755c0802287558edecba2e.

--------------------------------------------------------------------------------
3f6e43b74e | Chris Campbell | 2014-05-27 12:18:37 +0100

Sync manual from wiki

--------------------------------------------------------------------------------
b21ac4cb88 | reaverb | 2014-05-27 05:12:20 -0400

Remove an outdated slime entry vault
It featured items with negative enchantments, which is outdated now that
corrosion is temporary.

--------------------------------------------------------------------------------
55a2cfcae7 | Nicholas Feinberg | 2014-05-26 22:59:01 -0700

Changelog through 0.15-a0-1064-gdf5a4c5.

--------------------------------------------------------------------------------
df5a4c5138 | gammafunk | 2014-05-27 00:32:30 -0500

Remove obsolete references to item weight and update the changelog

--------------------------------------------------------------------------------
1601e189db | gammafunk | 2014-05-26 23:17:55 -0500

Place carrion below movable items in item stacks
Since we don't reveal items under the top of a pile at a location that
hasn't been visited or has had its contents change, we can't have
apport target the first movable item without leaking information. This
commit prevents newly created carrion from blocking apport by always
placing it below the first movable item, if any.

--------------------------------------------------------------------------------
d148ff1bc6 | Nicholas Feinberg | 2014-05-26 23:17:55 -0500

Tweak a tutorial message

--------------------------------------------------------------------------------
2371adb459 | gammafunk | 2014-05-26 23:17:43 -0500

Make corpses and skeletons stationary items (minmay)
Moving corpses and skeletons to other levels or to other locations
within a level is tedious but may be optimal for corpse rot and god
abilities like Kiku's corpse prayer. This commit prevents the player
from picking up or apporting carrion. It generalizes the code used for
nets being stationary, and cleans up and documents various bits of
related item pickup code.

--------------------------------------------------------------------------------
113be5ec16 | gammafunk | 2014-05-26 22:45:16 -0500

Adjust mulch rates for large rocks and tomahawks
Large rocks now have a higher mulch rate (from 1/50 to 1/30) as modest
balance tweak to account for being able to carry an unlimited
number. Tomahawks are common items that don't need to have such a low
mulch rate (increased to 1/20, same as javelins).

--------------------------------------------------------------------------------
55d1b512e3 | gammafunk | 2014-05-26 22:45:16 -0500

Remove player burden and carrying capacity
Item inventory weights (based on item mass) generally don't lead to
meaningful decisions that justify the inventory juggling and interface
problems that come from having burden states. The 52-slot limit is a
better system for limiting inventory and providing inventory-related
decisions because it's not so fine-grained and doesn't require the
player to examine weights for each slot.  Work is ongoing to improve
the slot system by consolidating food types and handling strategic
consumables in a different way.

--------------------------------------------------------------------------------
b364f15f4e | gammafunk | 2014-05-26 22:44:47 -0500

Don't use inventory weight for the chance of activating a shaft trap
Shaft traps previously considered the actor's total inventory weight
in addition to body weight, but the player burden calculation code
isn't worth keeping for this consideration alone. The chance of a
shaft trap activating now depends only on the actor's body weight.

--------------------------------------------------------------------------------
1ea5aace81 | Shmuale Mark | 2014-05-26 22:44:47 -0500

Make apportation not depend on item mass at all.
The distance formula is now just the same as before if the mass were 0.

--------------------------------------------------------------------------------
959a3ba7cf | Shmuale Mark | 2014-05-26 22:44:47 -0500

Remove two checks based on item mass.
Should be no functional change.

(commiter's note: tweaked the comments.)

--------------------------------------------------------------------------------
fb02dadd07 | Shmuale Mark | 2014-05-26 22:44:46 -0500

Don't make dancing weapon stats dependent on mass.
The reasoning in comments seemed to be that it rewarded investing
in strength to lug around heavy weapons, but if item weight does
not exist there doesn't seem to be much reason to keep that around.

This also nerfs dancing weapon defenses, on the whole, but that
seems fair.

--------------------------------------------------------------------------------
3f3b325408 | gammafunk | 2014-05-26 22:44:46 -0500

Don't have Jiyva tend to reduce strength based on burden
Previously Jiyva stat shuffling would tend to shuffle points away from
or to strength based on whether the player was under or over burden
capacity. We are removing player burden, so this weighting is
unnecessary.

--------------------------------------------------------------------------------
0224c773d0 | Steve Melenchuk | 2014-05-26 21:24:09 -0600

Unbreak layout_falls_marsh.
random_range takes integer arguments, not real number arguments, so
multiply relevant uses by 100 to restore its intended functionality.

This conveniently makes the "huge open room" issue go away.

--------------------------------------------------------------------------------
dfbec284b3 | Steve Melenchuk | 2014-05-26 21:10:45 -0600

Clear out a residual rat nest.
If someone can think of a better idea for what to do with the cheese, be
my guest.

--------------------------------------------------------------------------------
921f36bb38 | Neil Moore | 2014-05-26 22:59:54 -0400

Restore a new reference to FOOD_FRUIT.
0.15-a0-1049-g0c5ebfc accidentally reverted one of the changes
0.15-a0-1048-g48b52eb.

This reverts commit 0c5ebfc60d932d583ef0939c798f642ba3ca340c.

--------------------------------------------------------------------------------
7cbbb86501 | Shmuale Mark | 2014-05-26 22:52:09 -0400

Debuggify old food (#8599).

--------------------------------------------------------------------------------
0c5ebfc60d | Shmuale Mark | 2014-05-26 22:52:09 -0400

Remove an old reference to OBJ_PEAR (reaverb).

--------------------------------------------------------------------------------
48b52eb32c | Neil Moore | 2014-05-26 22:42:13 -0400

Correctly carry over old fruit autopickup.
Use a new tag because there may be incorrectly transferred saves that
forgot their old fruit pickup setting.

--------------------------------------------------------------------------------
8b3ed72c90 | Neil Moore | 2014-05-26 22:30:35 -0400

Add duration-data.h to the MSCV projects.

--------------------------------------------------------------------------------
47a60cec7a | Neil Moore | 2014-05-26 22:23:23 -0400

Constify.

--------------------------------------------------------------------------------
f37cf03dea | reaverb | 2014-05-26 22:14:31 -0400

Move duration data to its own file

--------------------------------------------------------------------------------
a337334a0b | reaverb | 2014-05-26 20:20:36 -0400

Remove some weird, unrelated, subjective comments (minmay)

--------------------------------------------------------------------------------
8c96ce8e92 | Chris Campbell | 2014-05-27 00:54:32 +0100

Adjust Ash prayer message a bit more

--------------------------------------------------------------------------------
4fcdb96aa9 | Nicholas Feinberg | 2014-05-26 16:51:34 -0700

Clarify Ash's prayer ability

--------------------------------------------------------------------------------
629352d897 | reaverb | 2014-05-26 19:25:17 -0400

Don't hardcode durations to create the @ section of a dump

--------------------------------------------------------------------------------
e9c04cbc44 | reaverb | 2014-05-26 19:25:16 -0400

Don't hardcode durations to create the @ message

--------------------------------------------------------------------------------
8f5d047d91 | Neil Moore | 2014-05-26 19:09:24 -0400

Sort Vine Stalker after Vampires in the aptitude list.
We were sorting them under 'S', but that doesn't seem right.

Arguably Hill Orc and Deep Dwarf should be alphabetised by their first
word, too, since there are no longer other races alongside which they
should be listed.

--------------------------------------------------------------------------------
cf58d32862 | Neil Moore | 2014-05-26 19:04:51 -0400

Remove some vestiges of lava orcs.

--------------------------------------------------------------------------------
9da29b5f57 | Neil Moore | 2014-05-26 19:04:51 -0400

Move old food tiles to UNUSED/

--------------------------------------------------------------------------------
106165f934 | Neil Moore | 2014-05-26 19:04:26 -0400

Describe fruit, undescribe individual fruit.
Improvements and a quote would be welcome.

--------------------------------------------------------------------------------
ecf18230d3 | Neil Moore | 2014-05-26 18:51:01 -0400

Remove a leftover reference to sausage.

--------------------------------------------------------------------------------
314f76c77d | Neil Moore | 2014-05-26 18:48:48 -0400

Remove a now-unnecessary field of food_def.

--------------------------------------------------------------------------------
6fec71629f | Shmuale Mark | 2014-05-26 18:30:43 -0400

Randomised text for eating fruit (MarvinPA, PleasingFungus).

--------------------------------------------------------------------------------
a2359c2866 | Shmuale Mark | 2014-05-26 18:11:14 -0400

Removal of old food types in vaults.
Someone who understands food vaults better might want to look over
the food.des changes, though I tried to keep them the same.

This also makes blue_anna_fruit_fields unrand and moves it to food.des,
since there are Lair vaults with fruits anyway.

--------------------------------------------------------------------------------
a59fa48e20 | Shmuale Mark | 2014-05-26 18:08:41 -0400

Remove old food types from saves.
Should prevent spamming "buggy item" on startup.

--------------------------------------------------------------------------------
946bf48157 | Shmuale Mark | 2014-05-26 18:08:41 -0400

Remove some foods.
Sausages, snozzcumbers, oranges, bananas, lemons, pears, apples,
apricots, chokos, rambutans, lychees, strawberries, grapes, sultanas,
and cheese.

--------------------------------------------------------------------------------
e69a1e2440 | Shmuale Mark | 2014-05-26 14:55:51 -0400

Clarify one of the effects of the Majin-bo.
Also mark it as demonic.

--------------------------------------------------------------------------------
5bce1962da | Nicholas Feinberg | 2014-05-26 08:28:13 -0700

Remove an unused parameter & update comments

--------------------------------------------------------------------------------
4eee099655 | reaverb | 2014-05-26 05:05:03 -0400

Remove a trace of Ko disease resistance

--------------------------------------------------------------------------------
2a25520ee4 | reaverb | 2014-05-26 04:15:35 -0400

Always place some statuses first on the status line
It was brought up ##crawl-dev it's important to have some statuses right
where the player can see them. The new list of important statuses is
the result of that discussion, but is by no means final.

--------------------------------------------------------------------------------
2fd031def8 | reaverb | 2014-05-26 02:31:35 -0400

Make status lights iterate over statuses
This removes another place where durations were hardcoded. A light_text
of "" now indicates no status light should be shown, a standard which
was already informally used in the codebase.

--------------------------------------------------------------------------------
45708ce3bb | Nicholas Feinberg | 2014-05-25 22:23:50 -0700

Don't die when encountering 0-byte ghost files

--------------------------------------------------------------------------------
3798112249 | Nicholas Feinberg | 2014-05-25 22:07:58 -0700

Cleanup lk_open()
Remove some redundant checks, add support for 'r+b',
generally clean things up.

--------------------------------------------------------------------------------
33abf97284 | reaverb | 2014-05-25 23:50:22 -0400

A comment explaining why POT_SLOWING is still in potion_effect()

--------------------------------------------------------------------------------
9b48444c62 | reaverb | 2014-05-25 23:50:22 -0400

Remove some old inaccurate comments from potion.cc

--------------------------------------------------------------------------------
6f959b73ab | Nicholas Feinberg | 2014-05-25 20:27:48 -0700

Add the Majin-Bo, a new fixedart that offers power at a terrible price. (It's 
not that terrible!)

--------------------------------------------------------------------------------
f6d44216f8 | drachereborn | 2014-05-25 21:55:21 -0400

Modify unrands Chilly Death and Flaming Death
Chilly Death now has flash freeze
Flaming Death now has sticky flame (1 in 3 chance)

Chilly Death's slaying is also buffed (+8, +10)

[wheals: tweaked chilly death description to make it clear it only
affects movement speed, and used increase_duration on MarvinPA's
suggestion.]

--------------------------------------------------------------------------------
39681b6012 | Shmuale Mark | 2014-05-25 21:55:20 -0400

A better terse message for KILLED_BY_ROLLING (#8589).

--------------------------------------------------------------------------------
33af3f6a99 | reaverb | 2014-05-25 19:56:43 -0400

Make logging file status field iterate over statuses
This means that:
A) More statuses should be searchable with Sequell.
B) We don't have to add durations here every single time we add one.

--------------------------------------------------------------------------------
0d9bb28424 | Steve Melenchuk | 2014-05-25 17:31:14 -0600

Streamers and glitter for PleasingFungus.
Welcome to the devteam!

--------------------------------------------------------------------------------
702813b56b | reaverb | 2014-05-25 15:09:20 -0400

Change Gr +1 melee apts to +0
Uneven melee aptitudes reduce decision space for choosing a weapon.
Since Gr are already fairly powerful, their high aptitudes were nerfed
instead of their lower aptitudes buffed. The original suggestion was for
the +1 aptitudes to be moved to -1, but wheals objected for flavor
reasons. The aptitudes can always be moved to -1 later.

--------------------------------------------------------------------------------
a9f28a483c | Shmuale Mark | 2014-05-25 14:29:11 -0400

A collection of randart names.

--------------------------------------------------------------------------------
51651a60cf | Shmuale Mark | 2014-05-25 10:25:50 -0400

Nudge halfling apts slightly.
The goal is to make them a bit more distinguished from kobolds, by
focusing a bit more on defenses (especially armour more) and lowering
the stealth apt fairly significantly. If Armour +1 is too good it
could be lowered, though.

--------------------------------------------------------------------------------
75153254fa | Shmuale Mark | 2014-05-25 09:59:53 -0400

Flatten some apts.

--------------------------------------------------------------------------------
3e42115de0 | reaverb | 2014-05-25 03:09:50 -0400

Remove Ko recovering from illness faster
Sickness is really rare and might even be removed, and giving a buff to
it's recovery time is unlikely to make players act differantly.  This
mechanic isn't worth the line on the mutations screen.

--------------------------------------------------------------------------------
817b8bcefc | reaverb | 2014-05-25 03:03:22 -0400

Give Foul Stench DS Rot Immunity instead of Saprovore.
They already received it at Foul Stench 1, but Saprovore is a minor
enough effect just moving rot immunity earlier is fine compensation.

--------------------------------------------------------------------------------
e63b8743ae | Chris Campbell | 2014-05-25 04:50:06 +0100

Don't let monsters resubmerge in clouds instead of trying to attack the player
They can still resubmerge, but only if they would have done so anyway
with no cloud (if they can't reach their target for example). Trapdoor
spiders weren't even immune to the clouds while submerged, and so would
previously just stay submerged under a cloud and die.

--------------------------------------------------------------------------------
02a2660fa4 | Chris Campbell | 2014-05-25 04:34:48 +0100

Don't let trapdoor spiders resubmerge randomly
Having them sometimes submerge when they briefly lose you as a target
causes some strange behaviour, and isn't necessary anyway since the main
notable thing about their submerging is just their appearing next to you
initially.

--------------------------------------------------------------------------------
5c6660199c | Chris Campbell | 2014-05-25 04:34:26 +0100

Make entering spider form while stuck in a web free the player

--------------------------------------------------------------------------------
ccb3c91521 | Chris Campbell | 2014-05-25 04:34:24 +0100

Make spider form move at normal speed
Without giving movement speed it's still an easily castable form that
provides a lot of early damage and evasion. The movement speed made it
much stronger by also being a reliable escape, and was problematic in
some of the same ways as old Swiftness.

--------------------------------------------------------------------------------
6b9adf5eed | gammafunk | 2014-05-24 20:24:37 -0500

Remove an unused method for the monster class.

--------------------------------------------------------------------------------
bf4e2e6aaf | reaverb | 2014-05-24 04:45:17 -0400

Turn Gr and VS rot immunity into an innate mutation
It was treated as one for all practical purposes - showing up on the "A"
screen, being an immutable part of the species, etc, but was not
actually a mutation for some reason.

--------------------------------------------------------------------------------
64157391c3 | Neil Moore | 2014-05-24 03:16:39 -0400

Avoid "you." in player:: methods.

--------------------------------------------------------------------------------
ecfd64cfc7 | Neil Moore | 2014-05-24 02:36:11 -0400

Correct a citation (floatingatoll)

--------------------------------------------------------------------------------
db52185689 | Neil Moore | 2014-05-24 02:20:40 -0400

Fix a comment.

--------------------------------------------------------------------------------
2d06bffd5a | reaverb | 2014-05-24 02:06:53 -0400

Chance function(void) to function()

--------------------------------------------------------------------------------
f638c35fa0 | ontoclasm | 2014-05-23 18:49:21 -0500

Ego blades (Bloax)

--------------------------------------------------------------------------------
87a9f2d505 | Chris Campbell | 2014-05-23 23:12:41 +0100

Don't consider wands of healing useless with no device heal
In the same way that wands of hasting/teleport aren't useless with stasis.

--------------------------------------------------------------------------------
71e8f68356 | reaverb | 2014-05-23 18:06:31 -0400

Fix a changelog typo (CKyle)

--------------------------------------------------------------------------------
8b09ff90c4 | reaverb | 2014-05-23 17:05:32 -0400

Remove Xom being amused by hunger in Labs
It took quite a bit of code and was probably scummable by dropping food.

--------------------------------------------------------------------------------
c8af7ebfa2 | Steve Melenchuk | 2014-05-23 14:27:56 -0600

Trigger shoutitis on seeing enemies, not randomly (dck).
This should make it more relevant.

--------------------------------------------------------------------------------
ca111f6cd7 | Steve Melenchuk | 2014-05-23 13:58:51 -0600

De-float some code.

--------------------------------------------------------------------------------
df56bc9af6 | Steve Melenchuk | 2014-05-23 13:58:16 -0600

Really fix Gozag gold detection (#8584).
It was moving the wrong item to the top of the cell - I wanted
item_def::index(), not item_def::link.

Also, if the gold was the second item on the cell, it would get missed, and
if more than one identical item was being generated on the same tile before
and after the gold, it could also get missed.

--------------------------------------------------------------------------------
cc16dbc685 | Steve Melenchuk | 2014-05-23 13:58:16 -0600

When flagging Gozag-detected gold, assert that there's an item there.
Should catch the crash in #8584.

--------------------------------------------------------------------------------
b5a4d5e7b2 | Shmuale Mark | 2014-05-23 15:42:21 -0400

Make no device heal a normal 3-level mutation.

--------------------------------------------------------------------------------
a0261e132e | Steve Melenchuk | 2014-05-23 13:38:31 -0600

Paper over a crash (#8587).
This gets the game to load, but the underlying issue is still at large.

--------------------------------------------------------------------------------
124c70fd32 | ontoclasm | 2014-05-23 12:03:05 -0500

Trog invo icons
BiA isn't done because I still haven't decided what summons should look
like.

--------------------------------------------------------------------------------
c80920707a | Chris Campbell | 2014-05-23 16:56:49 +0100

Don't trigger PbD on gold corpses

--------------------------------------------------------------------------------
f040398a19 | Shmuale Mark | 2014-05-23 11:17:18 -0400

Don't waste time casting Animate Dead, usually.
If there's a visible corpse nearby, the behaviour is the same. If
there are no items, 'z' should not waste time/MP, while you can
still force a cast with 'Z', so that you can animate corpses that
are below other items and you can't see with ^X.

Sadly, this doesn't really work for Yred since there's no way to
force a use of an ability the way there is with a spell.

--------------------------------------------------------------------------------
41d1c4dd61 | Steve Melenchuk | 2014-05-23 08:54:16 -0600

Changelog through 0.15-a0-985-g23b1178.

--------------------------------------------------------------------------------
23b1178b04 | Steve Melenchuk | 2014-05-23 08:41:53 -0600

Change Mark's status light colour to LIGHTRED.
LIGHTMAGENTA is a colour we use for positive status effects such as DMsl
or cTele, so you can completely miss that you're Marked if you have some
of those up.

Also adjust its long description to be more clear.

--------------------------------------------------------------------------------
806a974ea6 | Chris Campbell | 2014-05-23 13:46:32 +0100

Fix non-cherub battlecries working on higher-HD monsters

--------------------------------------------------------------------------------
6a78101f58 | reaverb | 2014-05-23 04:34:39 -0400

Let Cherubs buff higher HD holies (wheals)
Hopefully acutally letting Cherubs use their special ability will show
if they should be removed or not.

--------------------------------------------------------------------------------
22bbcf646e | ontoclasm | 2014-05-22 23:42:14 -0500

Yred invo icons

--------------------------------------------------------------------------------
66385b5c9f | ontoclasm | 2014-05-22 22:32:35 -0500

Chei invo icons

--------------------------------------------------------------------------------
c821bd6a58 | ontoclasm | 2014-05-22 21:54:06 -0500

Beogh/Lucy invo icons

--------------------------------------------------------------------------------
0890f0e403 | reaverb | 2014-05-22 21:45:09 -0400

Remove an ancient comment

--------------------------------------------------------------------------------
9bb3668d38 | reaverb | 2014-05-22 20:57:04 -0400

Disable layout_big_grid
It wasn't really interesting, just making a large amount of wide open
spaces.  Basically anything good about the layout can be replicated by
the city layouts or forbidden_donut.

--------------------------------------------------------------------------------
e4f54c0924 | reaverb | 2014-05-22 19:58:55 -0400

Some scroll generation weight clean-up
Move depth_mod < 7 scrolls to depth_mod < 4, divide item weights by
roughly ten.

--------------------------------------------------------------------------------
2332b8289e | reaverb | 2014-05-22 19:45:20 -0400

Remove the Vorpal special case for branding unbranded weapons.
It didn’t do anything interesting. Otherwise, rebranding branded weapons
would not be randomized either.

--------------------------------------------------------------------------------
6df881bab6 | reaverb | 2014-05-22 19:31:59 -0400

Revert "Make blurry vision mut cause scroll reading to take more time."
Certain issues with player delays make changing you.time_taken an
undesirable system. The random chance version of blurry vision is still
not good, but the consensus is that it's tolerable until these issues
are worked out.

The removal of the effect of blurry vision on trap detection remains.

This reverts commit 94537065d378a10efb3c0ace0ae552999f5b43c4.
This reverts commit 6408390c0a71c47526449d54ecf58905d96b9575.
This reverts commit becff2d3de3a8f051d38f2be104411722b6b89f4.

--------------------------------------------------------------------------------
7150dc495c | Chris Campbell | 2014-05-23 00:28:40 +0100

Improve a wisp form message

--------------------------------------------------------------------------------
b60241965e | Chris Campbell | 2014-05-23 00:28:31 +0100

Remove a check for drowning netted players
It was unused, and monsters don't drown in this way any more either.

--------------------------------------------------------------------------------
e836579ba1 | Chris Campbell | 2014-05-23 00:11:27 +0100

Don't prevent item destruction in wisp form
Since it now can use potions and scrolls.

--------------------------------------------------------------------------------
7ec5f86ad8 | Chris Campbell | 2014-05-23 00:10:18 +0100

Allow wisp form to memorise spells

--------------------------------------------------------------------------------
a23ad50d6a | Chris Campbell | 2014-05-22 22:35:09 +0100

Simplify

--------------------------------------------------------------------------------
a89e4152e9 | reaverb | 2014-05-22 14:49:17 -0400

s/recieve/receive/ in gods.txt (Lasty)

--------------------------------------------------------------------------------
951777943c | reaverb | 2014-05-22 14:39:57 -0400

Make some COMPILE_CHECK() s actually work
Before some arrays were being initialized to size NUM_FOO, which meant
the checks the arrays were the right size did not actually work.  Now if
somebody unknowingly deletes an entry it will fail to compile rather
than crash at runtime.

--------------------------------------------------------------------------------
becff2d3de | Neil Moore | 2014-05-22 09:30:18 -0400

Punctuate (wheals)

--------------------------------------------------------------------------------
6408390c0a | Neil Moore | 2014-05-22 09:24:59 -0400

Fix a typo (magicpoints, CKyle)

--------------------------------------------------------------------------------
65f78419b7 | reaverb | 2014-05-22 03:40:19 -0400

Remove Blurry Vision's effect on trap detection
A) It doesn't really promote interesting decisions

B) If desirable, it could be moved to a new mutation

--------------------------------------------------------------------------------
94537065d3 | reaverb | 2014-05-22 03:40:19 -0400

Make blurry vision mut cause scroll reading to take more time.
Instead of the awful random chance of failure, which made you press r
over and over.

Currently adds a half turn per level, affected by Haste and Slow.

--------------------------------------------------------------------------------
b693d2abaf | reaverb | 2014-05-22 03:14:13 -0400

Fix a crash
I'll fix the documentation errors which caused this in the next day or
so.

--------------------------------------------------------------------------------
5dbbf134ce | Chris Campbell | 2014-05-22 03:43:06 +0100

Fix royal jellies being 6 times more likely from acquirement than rations

--------------------------------------------------------------------------------
fa12db5b08 | Shmuale Mark | 2014-05-21 22:41:44 -0400

Commit item moves (MarvinPA).

--------------------------------------------------------------------------------
fcdf90b9ad | Shmuale Mark | 2014-05-21 22:24:33 -0400

Remove some old documentation.
It's possibly useful for explaining the reason why 'O' is generally
used for the rune in vaults, but it's been so long since these got
removed that they're no more than confusion for the new reader.

--------------------------------------------------------------------------------
df267dbd19 | Shmuale Mark | 2014-05-21 22:18:44 -0400

Rename honeycombs royal jellies (PleasingFungus).
The name works just as well with bee themes, but also fits with the
occasional jelly theme that vaults have. I also feel that it's a bit
more iconic.

Thankfully the bikeshed doesn't even have to change colour -- they
were always both yellow.

--------------------------------------------------------------------------------
b3aa555bb1 | Neil Moore | 2014-05-21 21:22:34 -0400

Sync manual (royal jelly).

--------------------------------------------------------------------------------
c4f4e16df3 | Neil Moore | 2014-05-21 21:20:24 -0400

Remove an ambrosia reference in the moth description.

--------------------------------------------------------------------------------
dee95cb974 | Neil Moore | 2014-05-21 21:20:11 -0400

Remove a royal jelly reference in the docs.

--------------------------------------------------------------------------------
3aea5c34a3 | reaverb | 2014-05-21 20:57:58 -0400

Remove Ambrosia
Not removing DUR_AMBROSIA yet because ideas on ##crawl-dev such as
giving the effect to !magic have been proposed.

Once again, somebody might want to review my vault edits. I mostly
replaced ambrosia with honeycombs.

--------------------------------------------------------------------------------
8e2e937ec5 | reaverb | 2014-05-21 20:57:43 -0400

Remove royal jellies
Somebody else might want to review my vault changes - I mostly replaced
them with honeycombs, which might be a problem, for example, in the
Jiyva vaults.

--------------------------------------------------------------------------------
e45c69eaa1 | reaverb | 2014-05-21 20:53:48 -0400

Remove Ce and Ha special diets
Both of these diets would need to be specially handled by the upcoming
chunk eating removal/food simplification.

Ce diet was far more effective at annoying players than balancing the
species, but if necessary than Ce could easily take a nerf. A simple
solution would be to change their Bows apt to +2

Ha diet was mostly a convenience for all it affected the game. (See:
fdf79a466cf6 removing it from Gr) Hopefully all species will be more
convenient than current Halflings by 0.15's release.

--------------------------------------------------------------------------------
8cfef17bd4 | Chris Campbell | 2014-05-21 23:28:22 +0100

Don't suppress non-physical mutations for thirsty vampires
Since they can now be mutated normally at all levels, also remove the
distinction between physical and non-physical mutations. This was
particularly complicated (specific mutations being suppressed by varying
degrees depending on hunger level).

--------------------------------------------------------------------------------
e6cc52ce78 | Chris Campbell | 2014-05-21 23:28:19 +0100

Allow Vampires to mutate normally at all thirst levels
They're already distinct from other undead in that they can mutate sometimes,
and thematically they're all about changing state and form. They could already
mutate while starving via benefical mutation, even.

--------------------------------------------------------------------------------
5724c68fec | Chris Campbell | 2014-05-21 23:28:17 +0100

Don't reduce potion effects for Vampires at low blood levels
It was an effect that only noticeably applied to a few types of potion, and was
generally fairly overcomplicated (since things like might and resistance had
their duration but not their effect reduced, other potions like magic and
restore abilities were just unchanged, and so on).

--------------------------------------------------------------------------------
3156f6e6e8 | reaverb | 2014-05-21 18:02:46 -0400

Make Corrosion show up in logs, @, and %, (PleasingFungus)

--------------------------------------------------------------------------------
8e04fe2583 | reaverb | 2014-05-21 17:34:47 -0400

Remove parentheses from a return statement

--------------------------------------------------------------------------------
2a05c3e3e8 | Shmuale Mark | 2014-05-21 14:58:51 -0400

Nerf boggart HD slightly (elliptic).
They still have more HP/MR than they did before, and have more
shadow creatures slots.

This also changes Blink Away back to Blink, since the latter at least
gives a bit more of a chance for players without SInv. If the HD
change is enough it could be changed back to Blink Away again.

--------------------------------------------------------------------------------
bf16c80394 | Shmuale Mark | 2014-05-21 14:58:51 -0400

Allow Boris to use weapons (notcluie).
After all, he canonically had a dagger at some point in the past,
and it is in fact his signature weapon in the code.

--------------------------------------------------------------------------------
95b3e8d640 | Neil Moore | 2014-05-21 14:06:09 -0400

Restore calc_to_hit determinism when requested.

--------------------------------------------------------------------------------
f1caba6036 | Steve Melenchuk | 2014-05-21 11:06:46 -0600

Make needles of sleep do something again (bmfx).
They were alerting the attacker on the impact, making the effect
completely useless; thus successfully hitting something with a needle of
sleep does not alert them.

--------------------------------------------------------------------------------
e03bf5a60a | Steve Melenchuk | 2014-05-21 10:57:20 -0600

Let needles of frenzy wake up and thus affect sleeping enemies.
Not that they benefit from blowgun stabbing; it just seems odd.

--------------------------------------------------------------------------------
20a0feea4c | Chris Campbell | 2014-05-21 16:17:58 +0100

Remove a breakpoint for missile gifting from gods
Allows ammo gifts (rarely) with throwing/missile skills below 8, and
also removes an inventory check for launchers. Also reduce the chance
of getting ammo from forced gifts, for wizmode convenience.

--------------------------------------------------------------------------------
6f877a7c7a | Chris Campbell | 2014-05-21 15:24:01 +0100

Don't corrode spectral weapons (again)

--------------------------------------------------------------------------------
fc6b7c844a | Neil Moore | 2014-05-20 23:34:21 -0400

Improve documentation.

--------------------------------------------------------------------------------
a14366856d | Neil Moore | 2014-05-20 23:34:21 -0400

Include "melee" tag on staves and rods.

--------------------------------------------------------------------------------
840db46ab7 | bones | 2014-05-20 23:33:48 -0400

Add "stats" category, "ranged"/"melee" tags, to menu_colour (#8425)

--------------------------------------------------------------------------------
a7e783206a | Neil Moore | 2014-05-20 22:53:35 -0400

Improve indentation.

--------------------------------------------------------------------------------
7cfc2843c4 | Neil Moore | 2014-05-20 22:44:08 -0400

Distinguish artefact from non- when swapping rings (#8062)
If the left ring was a artefact and the right ring a non-artefact of the
same base time, we failed to ask which to swap out.

--------------------------------------------------------------------------------
62ff1c1bac | Sandman25 | 2014-05-20 17:47:39 -0400

Exercise fighting when hit (#8578)

--------------------------------------------------------------------------------
58b8beb64b | Neil Moore | 2014-05-20 16:26:47 -0400

Time-out unintentional Vp bat form normally (#8392)

--------------------------------------------------------------------------------
7321837525 | Neil Moore | 2014-05-20 15:08:43 -0400

Make acquired books the right colour (wheals).

--------------------------------------------------------------------------------
652866374e | Neil Moore | 2014-05-20 14:23:04 -0400

Don't let Donald use 2H weapons.

--------------------------------------------------------------------------------
705479ace8 | Steve Melenchuk | 2014-05-20 12:18:03 -0600

More improvements to layout_onion_interference.
Re-add the xor option; vary the number of rings between the two layers;
vary the size of the patterns a bit more.

Sometimes you still end up with a large solid chunk in the centre, but
in general this is working much better than it was before.

--------------------------------------------------------------------------------
f516d6448d | Chris Campbell | 2014-05-20 18:29:14 +0100

Recolour Abyss portals to ETC_WARP
To make them less likely to overlap in colour with other portals that they
may be on the same level as (enter Hell, Pan or Zig, exit Pan, Pan transit).

--------------------------------------------------------------------------------
159be80bc0 | Steve Melenchuk | 2014-05-20 10:57:03 -0600

Re-enable layout_onion_interference after a lot of rewriting.
I added in the ideas originally specified, which basically resulted in a
large rewrite of everything it does, and added a check to make sure it
can't create really tiny layouts.

--------------------------------------------------------------------------------
8b5c27d78c | Shmuale Mark | 2014-05-20 12:02:15 -0400

Reduce no device heal's weighting somewhat.
The fact that only two levels are needed for a very strong effect
makes this mutation more dangerous than many others.

--------------------------------------------------------------------------------
73458e5577 | Shmuale Mark | 2014-05-20 09:38:00 -0400

Clean up a weird bit of melee damage code (#8390).
I can't imagine that this will have a noticeable effect on gameplay
and otherwise the code around that point is quite nice.

--------------------------------------------------------------------------------
45f4e73c66 | Chris Campbell | 2014-05-20 13:47:29 +0100

More god description changes

--------------------------------------------------------------------------------
cea3ab4c66 | Nicholas Feinberg | 2014-05-20 13:44:23 +0100

Improve god descriptions
God/god change suggested by |amethyst.

[MarvinPA: left out the Ashenzari and Lugonu changes for now.]

--------------------------------------------------------------------------------
2131f39fb7 | Shmuale Mark | 2014-05-20 08:14:44 -0400

Clarify vampire chopping prompt slightly (#8513).

--------------------------------------------------------------------------------
8aeb110228 | Shmuale Mark | 2014-05-20 08:14:44 -0400

Spoil a secret tech (#309).

--------------------------------------------------------------------------------
c4f606c4af | Shmuale Mark | 2014-05-20 08:14:44 -0400

Explain item colours in init.txt (#4043).

--------------------------------------------------------------------------------
f34309edb6 | Shmuale Mark | 2014-05-20 08:14:44 -0400

Synchronize headers of options_guide.txt and init.txt (#6627).
Also some miscellaneous shuffling around.

--------------------------------------------------------------------------------
2f857d4d65 | Shmuale Mark | 2014-05-20 08:14:43 -0400

Revert "In tutorial mode, directly show the special help screen when pressing 
"?"." (#5347).
It's an admirable thought, but as seen in the issue it has problems
with the tutorial text as written, and it doesn't seem too hard to
see where to find the list of commands.
This reverts commit 92505221fd745c28ebeda071dfd818a879f3d594.

--------------------------------------------------------------------------------
6438b78d35 | Chris Campbell | 2014-05-20 10:20:23 +0100

Make classed merfolk more susceptible to bribes

--------------------------------------------------------------------------------
141a0f860a | Steve Melenchuk | 2014-05-19 19:06:04 -0600

Don't announce out-of-sight ranged combat hits (#8526).
Oops.

--------------------------------------------------------------------------------
9adecd8595 | Steve Melenchuk | 2014-05-19 19:05:32 -0600

Condense three functions into one.

--------------------------------------------------------------------------------
5fe76d3cc2 | Steve Melenchuk | 2014-05-19 18:52:33 -0600

Remove mention of ! from tutorial/hints skills screen (#5346).
According to b702f4e, this menu is supposed to be disabled because it
explains advanced commands which aren't available in the simple menu,
yet this mention was added in that same commit...

--------------------------------------------------------------------------------
dde538dc35 | Steve Melenchuk | 2014-05-19 18:28:43 -0600

Allow toggling skill practicing in tutorial/hints mode again.
Broken by ecaf8b2.

It's a sad state of affairs that nobody thought this was a bug for
almost three years.

--------------------------------------------------------------------------------
7d8f6f234b | Shmuale Mark | 2014-05-19 20:03:04 -0400

Mention some 0.13 changes in the changelog (#7000).

--------------------------------------------------------------------------------
bf57c6f876 | Shmuale Mark | 2014-05-19 19:38:15 -0400

Don't allow wielding an item that's too large while transformed.
Not currently relevant, but might be if a SZ_LARGE or greater item-using
form is added.
(cherry picked from commit 0f69f1eb2bc0a8c8596bfd6a9c3515eb4d2a87df)

--------------------------------------------------------------------------------
34edc9d7fc | Steve Melenchuk | 2014-05-19 17:27:26 -0600

Changelog through 0.15-a0-911-gf0b1c87.

--------------------------------------------------------------------------------
f0b1c87bdc | reaverb | 2014-05-19 18:00:13 -0400

Add 78291 to the dev team in CREDITS.txt

--------------------------------------------------------------------------------
f78ccf3f6e | Steve Melenchuk | 2014-05-19 12:48:36 -0600

Don't place 50 jellies in a sewer vault (wheals).

--------------------------------------------------------------------------------
95fbca7486 | KennySheep | 2014-05-19 12:40:53 -0600

Two sewers (#8484).
[Committer's note: only _pipe_town and _door_sewer are here. See Mantis
 for more notes.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
0527d05cdf | Steve Melenchuk | 2014-05-19 12:18:38 -0600

Some old Lair vaults/minivaults from carwin (#3819).
With a lot of modernisation, including some adjustment to the monster
sets.

These were originally submitted as a serial vault, but I feel that
placing them individually will probably help them feel more varied -
you're going to get a lot of "why are there so many of this monster on
this level" with this kind of thing as a serial vault.

Also, our lair layouts are a lot better than when this was first
submitted.

--------------------------------------------------------------------------------
c67c2e8fd3 | Steve Melenchuk | 2014-05-19 11:39:56 -0600

Resurrect old Radiant Caverns layouts as U encompass vaults (#2684).
I needed to do a lot of modernising and give them an almost completely
new monster set, but they seem to be workable in this role - further
editing is probably going to be necessary, but this is a reasonable
enough start to finally getting these used for something.

--------------------------------------------------------------------------------
afd7a0d388 | Steve Melenchuk | 2014-05-19 10:15:56 -0600

Clean up a vault header by giving the vault a sane monster set.
With the introduction of Depths, people have been very surprised to
learn that there is a non-standard monster set for this vault given its
general indistinguishability from the native monster population, and are
even more surprised when they attempt to read what the vault is doing.

In the process, I spotted some now-defunct SUBST:s that have gone away.

I will be surprised if more than one or two people notice this change.

--------------------------------------------------------------------------------
aa172a9e36 | Steve Melenchuk | 2014-05-19 10:03:23 -0600

Adjust grunt_runaround to be able to place on D:$.
Like a couple of other encompass vaults.

Also leverages CLEAR: to make the door subvaults read more cleanly
(CLEAR: didn't exist at the time I first created the vault).

--------------------------------------------------------------------------------
5604f1e69b | Steve Melenchuk | 2014-05-19 09:46:37 -0600

Move a couple of vaults to a more appropriate file.

--------------------------------------------------------------------------------
92077430f9 | Steve Melenchuk | 2014-05-19 09:43:24 -0600

Remove a small bit of old vault cruft.
This vault can no longer place on the same level as the Vaults entry.

--------------------------------------------------------------------------------
3657de49ff | Steve Melenchuk | 2014-05-19 09:32:24 -0600

A Lightli temple (#8576).

--------------------------------------------------------------------------------
701662a0b6 | Nicholas Feinberg | 2014-05-19 09:22:34 -0600

Hell entries (#8574).
[Committer's note: a bit of re-tagging and re-formatting; I've also set
 up the weights such that entries from each branch have a total weight
 of 14.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
4980385985 | Steve Melenchuk | 2014-05-19 09:21:31 -0600

Mostly remove impitis from Dis Hell entries (PleasingFungus).
I'm leaving the token guy on the portal (now an imp).

--------------------------------------------------------------------------------
852b2189dc | Steve Melenchuk | 2014-05-19 09:10:52 -0600

Explicitly specify the weights of (most) Hell entries.
Omitted where weight == 10.

Hiding it away in a function like this was causing some entries to place
a lot more often than expected, in particular the _dis entries.

--------------------------------------------------------------------------------
ed53e02fb0 | Neil Moore | 2014-05-19 09:26:34 -0400

Replace War Chants with Battle in old saves.
Avoids a warning about a book with no spells.

--------------------------------------------------------------------------------
19692ce266 | Chris Campbell | 2014-05-19 01:05:37 +0100

Ignore gold from transferred saves when calculating Gozag's fee (#8567)
Fixes some saves taking a huge time to load or being completely
unloadable when trying to recalculate Gozag's service fee by counting all
the gold on every saved level.

--------------------------------------------------------------------------------
ddce04797b | Shmuale Mark | 2014-05-18 19:50:01 -0400

Make cold-bloodedness go away in transformations (#8496).
This was accomplished by using a new mutation, MUT_COLD_BLOODED,
rather than a simple check for race. There's a bit of a hack to get
it to still be greyed out with rC but that's probably better than
the special case based on genus.

--------------------------------------------------------------------------------
19c7863afd | Shmuale Mark | 2014-05-18 17:30:55 -0400

Don't give red draconians two fire breath abilites (#8323).
Accidentally pushed to the wrong branch at first.

(cherry picked from commit d77aa5ac56878f5807438308b2d1026bd7bc1445)

--------------------------------------------------------------------------------
95380fa57b | reaverb | 2014-05-18 17:18:14 -0400

Rename percent_chance() decimal_chance() (|amethyst)

--------------------------------------------------------------------------------
dddc889b75 | Neil Moore | 2014-05-18 16:25:41 -0400

Use a function (Lasty, wheals)

--------------------------------------------------------------------------------
f75a032ec9 | Neil Moore | 2014-05-18 14:34:12 -0400

Completely waive Gozag's fee for first-god Monks (elliptic)
The 50% discount became less significant when the service fee was
reduced for everyone.

Also, put the fee message on MSGCH_GOD, and simplify the gold formula
by removing some unnecessary casts.

--------------------------------------------------------------------------------
4815abfa33 | elliptic | 2014-05-18 08:28:33 -0400

Make Qazlal's Upheaval AUTOMATIC_HIT and reduce damage slightly at low power.
It felt strange that an area attack like this could be dodged/blocked, and
the accuracy was already extremely high at high invo.

--------------------------------------------------------------------------------
6183af897d | elliptic | 2014-05-18 00:46:41 -0400

Fix magic dart having a tiny chance of being blocked by a shield.
AUTOMATIC_HIT was being treated just like any other accuracy value, so this
would happen very occasionally.

--------------------------------------------------------------------------------
5f4c38d67a | Steve Melenchuk | 2014-05-17 19:19:43 -0600

Use the most powerful applicable Recitation against enemies.
No more "The hellion is awed by your recitation"; they should be getting
blasted to smithereens by the wrath of Zin.

This commit is brought to you by reciting to lemuel_hellion_island and
feeling something was terribly wrong.

--------------------------------------------------------------------------------
883396a6ff | Steve Melenchuk | 2014-05-17 18:52:18 -0600

Remove directional bias from making passages from vault exits.
If the shortest path is a straight line, it'll still be a straight line,
but more diagonal passageways should look somewhat more varied now.

--------------------------------------------------------------------------------
fc790165a2 | Steve Melenchuk | 2014-05-17 18:16:16 -0600

Block non-float/centre Elf endings from placing in halls layouts.
It looks extraordinarily weird.

--------------------------------------------------------------------------------
97b9e02fcf | Steve Melenchuk | 2014-05-17 18:13:57 -0600

Have primary vaults respect nolayout_ tags.
There's some code duplication here between _vault_can_use_layout and
_map_matches_layout_type which should probably go away in the future, if
we can figure out a good way to do so.

--------------------------------------------------------------------------------
3d1b40c24f | Neil Moore | 2014-05-17 14:15:10 -0400

Handle Gozag and Qazlal in tgw_lugonu_bribe.
Gourmand for Gozag was suggested by wheals.  No gift for Qazlal.

--------------------------------------------------------------------------------
1d087e7da7 | ontoclasm | 2014-05-17 10:29:22 -0500

Make art. ring mail more distinct (Brannock)

--------------------------------------------------------------------------------
13115e00e3 | Chris Campbell | 2014-05-17 15:09:01 +0100

Mark ghost moths as having an LOS ability (#8329)

--------------------------------------------------------------------------------
b44670c00b | Chris Campbell | 2014-05-17 15:01:28 +0100

Fix a debug mode reference to a removed delayed action

--------------------------------------------------------------------------------
6f76ed4745 | Steve Melenchuk | 2014-05-16 18:44:49 -0600

Deduplicate a vault Lua function name (possibly #8562).

--------------------------------------------------------------------------------
8b714b4121 | Steve Melenchuk | 2014-05-16 18:43:45 -0600

Some adjustments to Snake layout_concentric_octagons.
Larger hallways so that we can smear the map a bit (this gets it looking
more snake-y).

--------------------------------------------------------------------------------
7a8794f3d9 | Steve Melenchuk | 2014-05-16 18:29:02 -0600

Some experimental variability in layout_big_octagon.
Three major things here:

1) You have a large chance of getting more than one pillar ring; it's an
   even weight of 1-4 pillar rings (so long as they all fit in the
   level).
2) When smearing the map, 50% of the time it places pillars before doing
   the smearing (lots of rock pillars and smearing actually ends up
   being pretty different).
3) 50% of the time, scatter the stairs throughout all the possible
   locations. This may be controversial, but I'm curious to see if this
   helps the layout play any better - the stairs being all in one
   location is either a major headache or a strong feature depending on
   who you're talking to.

The weights of each of these features might need adjusting if any of
them prove to be viable.

--------------------------------------------------------------------------------
ef448c7536 | Steve Melenchuk | 2014-05-16 18:27:37 -0600

Whitespace fix.

--------------------------------------------------------------------------------
29266000b1 | Shmuale Mark | 2014-05-16 13:27:26 -0400

Replace spriggan rider mercenaries with base demonspawn (Roarke).
Spriggan riders have nonobvious item use restrictions, and it's
weird to end up with a giant firefly mercenary. The base demonspawn
can't grow into anything yet since the effects/power of the nonbase
types' on a friendly player would have to be examined.

Also fix a bug where nagas actually grew into mages 100% of the time,
rather than 50%.

--------------------------------------------------------------------------------
8252685d80 | elliptic | 2014-05-16 12:14:21 -0400

Remove mention of Qazlal's storm giving SH from the ^ screen.
This was misleading given that the storm does multiple other things too. If
someone has a good way of describing everything it does on the ^ screen, that
would work too, but it is all on the ^^ screen and various other gods leave
out details on the ^ screen too.

--------------------------------------------------------------------------------
66243133a8 | elliptic | 2014-05-16 12:14:21 -0400

Mention that Qazlal's storm is loud.

--------------------------------------------------------------------------------
a9affb0bd7 | Chris Campbell | 2014-05-16 13:05:10 +0100

Adjust descriptions for rings of stealth/loudness
Just refer to the noise of the wearer's movements, rather than
misleadingly implying that they affect noises in other ways.

--------------------------------------------------------------------------------
8a0cbe868b | Nikhil Addleman | 2014-05-16 10:25:47 +0100

Improve unrand.txt
* corrected a few grammar errors
* improved several descriptions

[MarvinPA: also changed a couple of descriptions to begin with "This
<foo> ..." instead of "It ...", and adjusted Elemental Staff description
some more.]

--------------------------------------------------------------------------------
4733aad084 | Chris Campbell | 2014-05-16 09:59:48 +0100

Remove a god special case from Xom chaos branding
Prevent all god gifts from being rebranded rather than just those from
good gods and Beogh (not that this will ever make any difference in
practice).

--------------------------------------------------------------------------------
5fa4559b8a | Chris Campbell | 2014-05-16 09:57:18 +0100

Remove branded large rocks and missiles of returning from a shop vault
Large rocks aren't usable for most species, as well as being even less
appropriate for giving brands to than the other ammunition. The returning
brand description is specific to throwing, and it doesn't seem appropriate
to change it for one rare vault's occasional use of returning bolts,
arrows and sling bullets.

--------------------------------------------------------------------------------
cc8d26d19c | Chris Campbell | 2014-05-16 09:41:57 +0100

Remove some grates from the centre of wizlab_golubria
This allows the silver statue to summon again, lets the eldritch
tentacles attack without them having to be deliberately let out (there
are still teleporter traps in the middle allowing for escape from them)
and removes the need to guarantee a wand of disintegration in the vault.

--------------------------------------------------------------------------------
3492c09f26 | Samuel Bronson | 2014-05-15 22:27:54 -0400

A python3 fix for our pretty-printers
Hard to say if this is all that needs fixing here until
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748317> gets fixed,
though.

--------------------------------------------------------------------------------
1b697ebc89 | Neil Moore | 2014-05-15 22:12:23 -0400

Spatter rather than splatter blood.
Jellies still make splattering sounds.

--------------------------------------------------------------------------------
4a7a1a8786 | Neil Moore | 2014-05-15 22:05:22 -0400

Doxidise a comment.

--------------------------------------------------------------------------------
2a26d5a21b | Steve Melenchuk | 2014-05-15 17:27:39 -0600

Move a couple of Jiyva altar vaults deeper (elliptic).
This may or may not be as deep as was intended, but it matches the
now-earliest time a Jiyva altar can place (barring one edge-case arrival
vault that may need looking at).

--------------------------------------------------------------------------------
1f9984db1d | Nicholas Feinberg | 2014-05-15 17:22:05 -0600

Add two vaults (#8558).
Slimified temple layouts! One based on a traditional temple layout,
the other a variant of Slime:$. Not labeled more explicitly in the
first line of the commit message in a vain attempt to surprise people.

[Committer's note: converted these into variable-altar temples and made
 a few colour/tile touch-ups. I also weighted these a lot lower based on
 some prior general dev misgivings about early Jiyva altars.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
727b7af61c | Steve Melenchuk | 2014-05-15 17:14:04 -0600

Support for variable-altar-count Temples.
Based on a note about wanting corrupted_temple to support a variable
number of altars; it can now do 6-9. (I left the lower limit at 6
because that's currently the smallest any temple is.)

Inspired by a couple of temple designs I'll probably add shortly.

--------------------------------------------------------------------------------
95e4912249 | elliptic | 2014-05-15 18:01:56 -0400

Remove an extra MSG_OK when cancelling a reaching attack.

--------------------------------------------------------------------------------
ed5a41cd87 | elliptic | 2014-05-15 18:01:56 -0400

Fix reaching attacks sometimes taking no time.
For instance, the killing blow with Wyrmbane did this.

--------------------------------------------------------------------------------
2f358d908a | Steve Melenchuk | 2014-05-15 14:55:53 -0600

Adjust a large number of vaults for the just-made changes.
Mostly tags.

--------------------------------------------------------------------------------
ca0822add2 | Steve Melenchuk | 2014-05-15 14:55:40 -0600

Make mini_float the default; add a no_exits tag instead.
There have been so many problems with minivaults not having exits that
this is an easier solution than the alternative.

You're still allowed to explicitly place exits, of course, in which case
floating exits go away.

There are a couple of other small tweaks to the level documentation here
as well.

--------------------------------------------------------------------------------
41433f0fcd | Steve Melenchuk | 2014-05-15 14:43:13 -0600

Check for exits from maps at DB generation time.
This should prevent this from cropping up as often as it does.

--------------------------------------------------------------------------------
dc07b5ecc0 | elliptic | 2014-05-15 16:15:27 -0400

Remove random amnesia from Sif wrath.
It rarely did anything more interesting than cause the player to ctrl-F for
the spell and relearn it.

--------------------------------------------------------------------------------
a4f4e44c7d | reaverb | 2014-05-15 15:19:37 -0400

Add rings of sustain abilities to autopickup_exceptions.txt (Medar)
Multiples are now useless.

--------------------------------------------------------------------------------
586d8cbae8 | reaverb | 2014-05-15 15:10:02 -0400

Make barb damage use MSGCH_WARN (Serephina)

--------------------------------------------------------------------------------
8aaf36bd61 | Steve Melenchuk | 2014-05-15 12:49:44 -0600

Add entrances to / retag some wizlab entrances (#8559).

--------------------------------------------------------------------------------
cbb52e4a65 | Chris Campbell | 2014-05-15 14:11:50 +0100

Cap sustain abilities at 1 level
Two levels of sustain abilities is very rarely relevant, and isn't something
that makes for an interesting multi-level resist.

--------------------------------------------------------------------------------
5487ac093f | Chris Campbell | 2014-05-15 08:46:45 +0100

Fix indentation

--------------------------------------------------------------------------------
000f67cce8 | Neil Moore | 2014-05-15 03:37:17 -0400

Allow "none" alternatives to work with TILE: and friends.
The level-making documentation gave a few examples using "/ none", but
that did not work correctly and could lead to crashes (depending on
uninitialised variables).

--------------------------------------------------------------------------------
6590ef6419 | Neil Moore | 2014-05-15 03:37:16 -0400

Fix compilation.

--------------------------------------------------------------------------------
edfd7eb519 | reaverb | 2014-05-15 03:24:13 -0400

Clean-up shaft_known() (MarvinPA)

--------------------------------------------------------------------------------
9817b298c4 | reaverb | 2014-05-15 02:45:49 -0400

Remove some bizzare shaft generation code (minmay)

--------------------------------------------------------------------------------
2df4b55dcc | Nicholas Feinberg | 2014-05-14 22:48:19 -0400

Fix slimes being worth less XP when merged (notcluie)

--------------------------------------------------------------------------------
e312512317 | Shayne Halvorson | 2014-05-14 22:11:08 -0400

Replace corrosion with a temporary effect.
If your equipment would have been corroded under the old system, you now
get a temporary (but stacking) -5 AC and -3 weapon damage.  Corrosion
against armour-wearing monsters instead halves their AC.

Committer's notes:

    Fixed whitespace and fit to Trunk

    Added Corrosion entry to hiscores.cc

    The original patch showed the slaying malus on the weapon, which may
    be preferable to a status light.

    gammafunk noted that ouch.cc iterates over equipment when deciding
    when to corrode, this might make less sense under the new system.

-reaverb

--------------------------------------------------------------------------------
3632d78e45 | Shmuale Mark | 2014-05-14 21:56:33 -0400

Make naga monsters grow like tengu (Roarke).

--------------------------------------------------------------------------------
cc162c0e45 | Shmuale Mark | 2014-05-14 21:36:47 -0400

Remove AF_DISEASE.
Sickness does not work very well on melee attacks, and is hard to
make interesting at all. Purple ugly things get bonus melee damage
over their relatives to keep them distinguished.

--------------------------------------------------------------------------------
0deed4fff1 | Neil Moore | 2014-05-14 20:03:42 -0400

Label rotting chunks as rotting again.

--------------------------------------------------------------------------------
1f7a480e8b | David Ploog | 2014-05-15 01:07:51 +0200

A few more orc names.

--------------------------------------------------------------------------------
381fc8f516 | Richard Soderberg | 2014-05-14 18:57:52 -0400

cloud.cc: remove misplaced string parameter to act->drain_exp() in 
CLOUD_NEGATIVE_ENERGY

--------------------------------------------------------------------------------
4212014699 | Neil Moore | 2014-05-14 18:37:29 -0400

Remove some hard-coded 1e38s (floatingatoll, Grunt).
And replace them with DBL_MAX, which could theoretically be as low as 1e37.

--------------------------------------------------------------------------------
a417c40e72 | Neil Moore | 2014-05-14 18:28:30 -0400

Mark a couple of functions as NORETURN (floatingatoll)

--------------------------------------------------------------------------------
7bce4e1303 | Neil Moore | 2014-05-14 18:25:33 -0400

Make a type more correct (geekosaur)

--------------------------------------------------------------------------------
da64724bff | Richard Soderberg | 2014-05-14 18:19:41 -0400

tilepick.cc: change "Invalid tentacle type!" from ASSERT() to die()

--------------------------------------------------------------------------------
b5016f0933 | Neil Moore | 2014-05-14 18:19:12 -0400

Improve a bad NUM_ enumerator.
Cardinals can't be negative, silly!  And it definitely shouldn't overlap.

--------------------------------------------------------------------------------
a22e8573f5 | Neil Moore | 2014-05-14 17:58:17 -0400

Remove an mprf("").

--------------------------------------------------------------------------------
7754ac91bc | Neil Moore | 2014-05-14 17:39:16 -0400

Remove two unused constants (floatingatoll).

--------------------------------------------------------------------------------
d31242b35b | ontoclasm | 2014-05-14 14:49:16 -0500

Merge branch 'spellicons'

--------------------------------------------------------------------------------
e02b2c0f54 | ontoclasm | 2014-05-14 14:48:16 -0500

A few derivative spell icons

--------------------------------------------------------------------------------
e933a1afc7 | ontoclasm | 2014-05-14 14:25:13 -0500

Numerous spell icons (roctavian)

--------------------------------------------------------------------------------
4a43dcc9e6 | Steve Melenchuk | 2014-05-14 13:23:48 -0600

Place less trees and more exits in nicolae_quartered_pool_* (#8554).
Oops.

--------------------------------------------------------------------------------
aec04a413c | reaverb | 2014-05-14 14:37:19 -0400

Use you.innate_mutation rather than you.innate_mutations
Ditto for you.temp_mutation.

--------------------------------------------------------------------------------
4a66bc2554 | Steve Melenchuk | 2014-05-14 11:34:09 -0600

Remove a bad monster spellcasting text key substitution (elliptic).
Since this key isn't in the monster spell database.

Something truer to the original message here would be good.

--------------------------------------------------------------------------------
a22a537c05 | Steve Melenchuk | 2014-05-14 11:26:03 -0600

Changelog through 0.15-a0-824-g4b23974.

--------------------------------------------------------------------------------
4b23974c7b | Steve Melenchuk | 2014-05-14 11:06:13 -0600

Fix some more TAG_MAJOR_VERSION > 34 hiccups.

--------------------------------------------------------------------------------
f79658290c | Steve Melenchuk | 2014-05-14 11:05:04 -0600

Melt away lava orcs.
When you strip away the fundamentally broken tension mechanic, you're
left with a species that is essentially "Hill Orcs WITH FIRE". No effort
has come forward with code to fix either aspect of them despite the
length of time they've been around in trunk, and the code is littered
with a very large number of special cases in their presence.

Current lava orcs should be able to finish their games fine, but new
starts are disallowed.

There are a couple of bits I've left present but which will have no
function for the moment, mostly related to interactions with lava (as
there are a couple of species proposals floating around that benefit
from having those interactions).

--------------------------------------------------------------------------------
edb40d3609 | Shmuale Mark | 2014-05-14 12:24:10 -0400

Remove plague shamblers.
The idea behind the miasma death explosion is interesting, but in
general miasma can be extremely annoying and the cloud rather easy
to avoid. This is especially true in the layout of Crypt, which is
the only place they show up outside of vaults. The retching attack
gave a rare special case that very rarely mattered and didn't help
to distinguish them all that much.

--------------------------------------------------------------------------------
f983490b19 | Shmuale Mark | 2014-05-14 10:24:46 -0400

Comment typo fix.

--------------------------------------------------------------------------------
a75b53014d | Chris Campbell | 2014-05-14 14:08:00 +0100

Don't let sirens pull treeformed players (#8555)
And remove a redundant check, since asleep implies cannot_act.

--------------------------------------------------------------------------------
970d4a50b7 | Chris Campbell | 2014-05-14 13:33:01 +0100

Don't let some uniques place in Tomb
Agnes, Margery, Saint Roka, Wiglaf, Xtahua. Probably others who can still
spawn in Tomb could be adjusted too.

--------------------------------------------------------------------------------
6a45c56980 | Chris Campbell | 2014-05-14 13:31:18 +0100

Remove some references to Crypt:4-5 in unique placement

--------------------------------------------------------------------------------
c8e4a016c1 | Chris Campbell | 2014-05-14 12:08:52 +0100

Reduce the weight of some Gozag shop altar vaults

--------------------------------------------------------------------------------
2d2c9af36e | reaverb | 2014-05-14 04:18:47 -0400

Move the definitions of other -data.h tables into their respective files

--------------------------------------------------------------------------------
6f0653d28d | elliptic | 2014-05-14 04:03:26 -0400

Fix rounding errors with Ashenzari wrath.
This error went in the opposite direction, e.g. the skill screen would
display a skill at 2.5 but it would be treated as 3 for some purposes.

--------------------------------------------------------------------------------
8b15fbdb43 | elliptic | 2014-05-14 04:03:26 -0400

Fix rounding errors with drained skills.
Previously you could have a drained skill display as 10.5 on the m screen but
have you.skill(SK_blah) return 9 for it because of inconsistent rounding.

This fixes that issue, though I wonder if it might be simpler to just use a
fixed large scale during all the skill calculations and then convert to the
requested scale at the end.

--------------------------------------------------------------------------------
5152fba6f8 | reaverb | 2014-05-14 03:43:19 -0400

Move the definition spl-data.h's table into the spl-data.h (|amethyst)

--------------------------------------------------------------------------------
f5d8342362 | reaverb | 2014-05-14 00:51:18 -0400

Clean up _magic_contamination_effects a little
Including renaming it to _handle_magic_contamination and giving its old
name to a helper function.

--------------------------------------------------------------------------------
77be142a81 | ontoclasm | 2014-05-13 23:12:53 -0500

Gozag/Qazlal invo icons

--------------------------------------------------------------------------------
74aec7792b | reaverb | 2014-05-13 23:59:24 -0400

Remove a silly use of else if (_magic_contamination_effects)

--------------------------------------------------------------------------------
12223c06ef | reaverb | 2014-05-13 21:08:36 -0400

Remove Shedu
They never really worked as enemies - their only unique aspect, partner
resurrection, was just annoying.

--------------------------------------------------------------------------------
8e1b895519 | Neil Moore | 2014-05-13 17:39:33 -0400

Don't let Ashenzarites waste ?EW on cursed unenchantables.

--------------------------------------------------------------------------------
9f3982ee91 | Neil Moore | 2014-05-13 17:37:46 -0400

Allow enchanting/recharging/(un)cursing melded equipment (#6841)

--------------------------------------------------------------------------------
c7a9a94001 | Neil Moore | 2014-05-13 16:48:50 -0400

Reduce clouds in a Qazlal altar vault.
 #...
 @...
 #B..
 #AC.
 ###.

If you saw only the cloud at A, autoexplore might wander into B.
Increasing the exclusion radius to 1 would avoid that, too, but would
also exclude the vault entrace @.  Instead, reduce the cloud size to
one so that only A gets a cloud.

It would be nice if cloud generators could autoexclude all the spaces
they might spread to, but that's probably tricky to do.

--------------------------------------------------------------------------------
f1a2a4de5b | Steve Melenchuk | 2014-05-13 14:07:25 -0600

Add exits to a large number of Lair minivaults.
Mostly ones that were transplanted from Forest.

--------------------------------------------------------------------------------
7ebe1377ce | Neil Moore | 2014-05-13 15:11:02 -0400

Don't crash when mousing over remembered-but-gone webs (#8429)

--------------------------------------------------------------------------------
fd921b9b8d | Neil Moore | 2014-05-13 14:39:26 -0400

Improve enchant weapon selection (#8407, #8552)
Now you are not prompted for, or allowed to select, weapons which
are enchantable but not by this scroll---for example, a +9,+0 weapon
with EW_I.  Take care to handle blowguns correctly: they have no +dam,
but EW_II increases their +acc.

The message "You aren't carrying any weapons that can be enchanted."
isn't quite right anymore, but I can't think of a good way to make it
more pendant-friendly without being too wordy.

--------------------------------------------------------------------------------
b9d8caaabe | Neil Moore | 2014-05-13 12:37:48 -0400

Revert "Add support for multiple bones files per-level."
It is full of race conditions and is leaving behind zero-byte files
after apparent failures to rename the .tmp files left by
safe_file_writer.

Some of that could be fixed by having safe_file_writer fdopen the
descriptor returned by mkstemp, but even then there's a race between
opening and locking (and mkostemp, which could solve that, is specific
to glibc).

Also, we don't seed the libc RNG, which probably reduces the efficiency
of mkstemp and makes the races more likely to trigger.

This reverts commit a46b10507c9a1b72007ee48b71116a2005a1fe48.  Bones
generated to bones/ between that commit and this one will be ignored by
subsequent games.  If the feature is reenabled, we need some mechanism
to clean out old zero-byte files without crashing.

--------------------------------------------------------------------------------
74b874d0b5 | Steve Melenchuk | 2014-05-13 10:34:07 -0600

Reduce the constant part of Gozag's service fee.
From 100 to 50, per ##crawl-dev discussion.

Speculation abounds about making this constant 27 or removing it
entirely, but one thing at a time...

--------------------------------------------------------------------------------
2398eb5f41 | Chris Campbell | 2014-05-13 17:05:45 +0100

Don't let monster avatars be distracted by gold

--------------------------------------------------------------------------------
7b41838de5 | reaverb | 2014-05-13 01:38:00 -0400

Credit myself as reaverb rather than reaver on vaults
Since I use the nick for almost everything else now.

--------------------------------------------------------------------------------
736f644b2f | Neil Moore | 2014-05-13 00:37:44 -0400

Actually use old bone files when we find them.

--------------------------------------------------------------------------------
ee78884211 | Steve Melenchuk | 2014-05-12 22:28:30 -0600

Don't print a debug message to the player on loading bones.

--------------------------------------------------------------------------------
c99bbcdc1e | Neil Moore | 2014-05-12 23:33:52 -0400

Move some tiles to UNUSED/.

--------------------------------------------------------------------------------
98828b51fa | Neil Moore | 2014-05-12 23:29:34 -0400

Remove some unused tiledefs.

--------------------------------------------------------------------------------
63754e0a6b | Neil Moore | 2014-05-12 23:26:00 -0400

Correctly ignore prebuilt in unbrace and tag-major-upgrade.
We expected the "prebuilt/" part to be at the beginning, which was only
true if you were sitting in crawl-ref/source/ .

--------------------------------------------------------------------------------
e3603d9cd6 | reaverb | 2014-05-12 23:23:56 -0400

Remove unused variables (Grunt)
Also silences some compiler warnings.

--------------------------------------------------------------------------------
b5c1d9a4e1 | Neil Moore | 2014-05-12 23:07:07 -0400

Allow inscribing rings with =R to not swap them (rwork).
If only one ring is swappable and not marked =R, alway swap that one
out.  Allow selecting the =R rings if all swappable rings are =R, or
if we're an octopode and have to prompt anyway because there are
still two or more swappable rings ignoring the =R ones.

--------------------------------------------------------------------------------
2588c39e29 | Steve Melenchuk | 2014-05-12 20:56:51 -0600

Three Elf endings.
Two of them have several entrances; one is more of a traditional-style
end (though with a lot of randomisation).

After all, a lot of people will be wanting to try out the new Elf
layouts and/or try bribing Elf - might as well add a bit extra for the
end of their trip.

--------------------------------------------------------------------------------
06f0b82c42 | Chris Campbell | 2014-05-13 02:25:21 +0100

Let friendly unintelligent monsters go hostile when attacked from range
They already went hostile when attacked in melee, and making it possible
to attack enslaved zombies with darts without them turning hostile
isn't a behaviour that should be preserved.

--------------------------------------------------------------------------------
87e664445b | Chris Campbell | 2014-05-13 02:25:19 +0100

Don't make bog bodies randomly rot
It's fairly spammy and doesn't do anything interesting.

--------------------------------------------------------------------------------
a46b10507c | Nicholas Feinberg | 2014-05-12 19:10:19 -0600

Add support for multiple bones files per-level.
Previously, ghost files (.bones) were limited to one per level.
This meant that if players died on a level that already had an
associated .bones file (if e.g. the 1/3 'generate ghost' chance
wasn't met), then their ghost would vanish entirely.

This commit allows more than one .bones file to be stored for a
given level, each holding one or more ghosts that will be generated
together, as before. This may lead to an increase in ghost
generation, depending on server dynamics; if this is problematic,
the generation chance can be tweaked.

--------------------------------------------------------------------------------
4495b6d710 | reaver | 2014-05-12 18:46:45 -0600

Some pan vaults (#8443).
[Committer's note: this is only the purely decorative vaults from that
 Mantis issue. I haven't decided yet what to do with the last one.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
087ac9f5ba | Steve Melenchuk | 2014-05-12 18:46:45 -0600

Some experimental changes to layout_rooms.
Namley, the rooms aren't necessarily rectangular, and the corridors
aren't straight angles any more.

I've re-enabled the layout in Elf with a stipulation that the rooms
aren't rectangular to see how it performs without them.

--------------------------------------------------------------------------------
e7378b289f | Steve Melenchuk | 2014-05-12 18:46:45 -0600

Remove random loot rooms from layout_roguey and layout_city.
They're extremely conspicuous and unbalancing.

--------------------------------------------------------------------------------
4949eed6e3 | Steve Melenchuk | 2014-05-12 18:46:40 -0600

Re-weight some Elf layouts (infinplex).
I'm keeping the central-type layouts so that end vaults that use them
still function properly.

--------------------------------------------------------------------------------
ad71c4e294 | infiniplex | 2014-05-12 17:47:45 -0600

Added geoelf layout generator
Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
925dd76bdf | infiniplex | 2014-05-12 17:29:13 -0600

Changed you.depth_fraction to return in full range [0, 1]

--------------------------------------------------------------------------------
10da0d218e | Steve Melenchuk | 2014-05-12 17:28:49 -0600

A layout by infiniplex (#8268).
I have it set to place in Snake, Depths, and Zot for reasons mostly
outlined there; if it turns out to be inappropriate in one of those
places it can be removed.

--------------------------------------------------------------------------------
0d3b86d57e | Steve Melenchuk | 2014-05-12 17:28:43 -0600

Nudge some of the _halls Zot layout type weights.
Mainly to vary Zot:5 a bit more.

--------------------------------------------------------------------------------
c11c5a2b73 | Neil Moore | 2014-05-12 18:41:27 -0400

Remove unused descriptions.
This addresses all of db_lint's complaints.

--------------------------------------------------------------------------------
81a0e0bc35 | Neil Moore | 2014-05-12 18:32:44 -0400

Teach db_lint about Gozag and Qazlal.
Also, don't complain about "$god prayer" godspeak keys.

--------------------------------------------------------------------------------
bc2414e396 | Neil Moore | 2014-05-12 18:25:20 -0400

Enable strict mode in checkwhite.

--------------------------------------------------------------------------------
9bc6d1f085 | Neil Moore | 2014-05-12 18:11:14 -0400

Formatting fixes (add braces).
This fixes all the instances caught by unbrace.

--------------------------------------------------------------------------------
bca6d2d0ab | Neil Moore | 2014-05-12 18:10:54 -0400

Make unbrace add braces by default.
Use -A to disable this functionality.

It's probably time to rename the script.

--------------------------------------------------------------------------------
ebb4a9ff33 | Neil Moore | 2014-05-12 18:10:15 -0400

Fix "if(" and friends.

--------------------------------------------------------------------------------
5ac2fffa88 | Neil Moore | 2014-05-12 18:09:52 -0400

Fix "if(" and friends in checkwhite.
Only for C++ and Javascript at the moment.  Maybe this should be moved
to unbrace instead.

--------------------------------------------------------------------------------
3a4c672bf2 | Neil Moore | 2014-05-12 17:30:58 -0400

Don't remove Saprovore from stinky demonspawn just yet.

--------------------------------------------------------------------------------
17fcb76da4 | reaverb | 2014-05-12 17:18:39 -0400

Remove Saprovorous from Ko, LO, HO, and Og
It didn't really do anything interesting, outside of Gh and Tr conducts.

Also removes Fast metabolism from Ogres as compensation.

--------------------------------------------------------------------------------
11800bfe59 | Steve Melenchuk | 2014-05-12 13:25:20 -0600

Reword Infusion's messaging.
The wording has always struck me as a bit awkward; this makes it sound
more active and threatening (which it is).

--------------------------------------------------------------------------------
17e120260d | Shmuale Mark | 2014-05-12 15:03:20 -0400

Remove an apparently useless bit of code duplication.

--------------------------------------------------------------------------------
0e16bbe4f4 | reaverb | 2014-05-12 11:50:53 -0400

Fix whitespace

--------------------------------------------------------------------------------
e75549e87b | reaverb | 2014-05-12 11:45:29 -0400

Update grunt_gozag_potion_petition to 4 blood potions

--------------------------------------------------------------------------------
491ef444d9 | reaverb | 2014-05-12 01:35:27 -0400

Remove shedu from holy pan (evilmike)
I'm going to remove them from the game entirely soon, pushing this will
at least prevent some ghosts from appearing when that happens.

--------------------------------------------------------------------------------
787b249962 | ontoclasm | 2014-05-12 00:29:57 -0500

Strawberry tile (fusentrap, 8547)

--------------------------------------------------------------------------------
2a13be7ce2 | ontoclasm | 2014-05-12 00:29:56 -0500

Tiles for rings of loudness and stealth

--------------------------------------------------------------------------------
8c09a7f2ed | ontoclasm | 2014-05-12 00:29:55 -0500

Display weapons for ogre magi (Arrhythmia, 8548)

--------------------------------------------------------------------------------
4f0ef79f26 | Chris Campbell | 2014-05-12 05:00:38 +0100

Remove various references to use-IDing jewellery that now identifies on equip
There's probably a bunch more obsolete code for this still lying around.

--------------------------------------------------------------------------------
7e895c2002 | ontoclasm | 2014-05-11 21:12:51 -0500

Good god invoc icons

--------------------------------------------------------------------------------
020cafce59 | Steve Melenchuk | 2014-05-11 19:47:00 -0600

Don't warn on Qazlal worshippers clouding themselves (78291).

--------------------------------------------------------------------------------
af54d60cb9 | Steve Melenchuk | 2014-05-11 18:48:27 -0600

Don't always show "bribing" on @/% screens (#8544).

--------------------------------------------------------------------------------
0fb9ce809d | Steve Melenchuk | 2014-05-11 18:47:32 -0600

Refactor / remove some less important / unnecessary Gozag code.
In particular, the potion and shop lists don't need to be generated in
advance of using the ability altogether; they only last as long as the
ability menu is present (thus they're still stored, as if you get a HUP
in the middle of it we want to present the same choices).

Since shop prices no longer depend on the generated shops, item
generation for the shops is left to the shops. (If we want to preserve
their item quality, we'll need a level_number paramter in shop specs,
but I doubt players will notice the difference at all.)

RIP item_def::to_spec; you will not be missed.

--------------------------------------------------------------------------------
8dfefae696 | Steve Melenchuk | 2014-05-11 18:31:40 -0600

Show usability of Bribe Branch properly in local tiles.
The split here is a bit messy, and it's a good thing the ability does
not have a fail chance as there are still abort conditions after the
fail check right now. Oh well.

--------------------------------------------------------------------------------
18cf5c4f68 | Steve Melenchuk | 2014-05-11 18:21:53 -0600

Don't spam some "unable to use ability" messages in local tiles (#8524).
Whoops.

--------------------------------------------------------------------------------
4b3306195a | Neil Moore | 2014-05-11 19:43:52 -0400

Remove a prototype for a removed method.

--------------------------------------------------------------------------------
76b35fcb50 | ontoclasm | 2014-05-11 17:31:02 -0500

First batch of icons
These include most charms, as well as some Tmut spells and god invocations
for a handful of gods.

--------------------------------------------------------------------------------
319e367b95 | Shmuale Mark | 2014-05-11 17:48:56 -0400

Don't corrode spectral weapons (HilariousDeathArtist).

--------------------------------------------------------------------------------
e3a758f3ca | Steve Melenchuk | 2014-05-11 09:06:32 -0600

Don't place fourteen orc warriors on D:4.
And generally normalise the threat/loot level of the relevant vault.

One orc warrior on D:4 might still be excessive, but who doesn't
remember that one time they fought an out-of-depth orc warrior on D:2 or
D:3 or...

--------------------------------------------------------------------------------
963c9f65ab | Chris Campbell | 2014-05-11 06:08:49 +0100

Only display the Bribe status light while in a branch that is being bribed
Lists of any other bribed branches are still visible on @ and %.

--------------------------------------------------------------------------------
c6d5b38e8a | Chris Campbell | 2014-05-11 06:08:48 +0100

Let elemental evokers weight evocations skill when using automatic training

--------------------------------------------------------------------------------
d51cf91a24 | reaverb | 2014-05-11 00:55:40 -0400

Consistantly use "antimagic" instead of "anti-magic" (MarvinPA)

--------------------------------------------------------------------------------
9b1c3d9a4c | Brendan Hickey | 2014-05-11 04:41:42 +0000

Remove more dead code

--------------------------------------------------------------------------------
ad85dd94b9 | Brendan Hickey | 2014-05-11 04:30:09 +0000

Remove dead code
Delete train_skill, an unused function.

--------------------------------------------------------------------------------
9ddeec1304 | Steve Melenchuk | 2014-05-10 22:27:33 -0600

Don't timeout Gozag bribes over time.
If you're hanging around in a branch, monster generation will eventually
exhaust the bribe, of course.

--------------------------------------------------------------------------------
2f73397497 | Shmuale Mark | 2014-05-11 00:07:46 -0400

Remove residual references re: statue special-cased spells.

--------------------------------------------------------------------------------
986038eb07 | Chris Campbell | 2014-05-11 05:03:58 +0100

Don't bribe branch-native monsters when not in that branch

--------------------------------------------------------------------------------
dab8751561 | Steve Melenchuk | 2014-05-10 21:46:19 -0600

A primitive description for Drain Magic.

--------------------------------------------------------------------------------
09e4f84620 | Steve Melenchuk | 2014-05-10 21:38:22 -0600

Give orange crystal statues a spell set.
Brain Feed, Drain Magic, and Confuse, specifically; this mimics their
previous effects.

The statue of Wucad Mu also picks up these three spells in addition to
its current summoning behaviour.

--------------------------------------------------------------------------------
2a5c544ae8 | Steve Melenchuk | 2014-05-10 21:38:22 -0600

New monster spell: Drain Magic.
It's an antimagic enchantment, borrowing the code from melee antimagic
(which now internally refers to the new beam type).

I have a vague notion that this might remove antimagic effects from the
caster at some point, but that's for later.

--------------------------------------------------------------------------------
551055afaa | Steve Melenchuk | 2014-05-10 21:38:22 -0600

Get silver statues summoning again.
Using a spell list.

Right now this aims to duplicate their old spell set, but less spammily.

Their HD has been bumped up to match orange crystal statues; this is
meant to get them summoning at a reasonable rate. Further adjustment
might be needed.

--------------------------------------------------------------------------------
72ef8b2817 | Steve Melenchuk | 2014-05-10 21:38:22 -0600

Remove the special abilities of OCS and SS.
To be reimplemented more normally.

--------------------------------------------------------------------------------
6cf90bca02 | Steve Melenchuk | 2014-05-10 21:38:21 -0600

Cut OCS/SS HP and AC.
They now have the same numbers as ice statues and the redefinable statue
number.

Since you can't instantly kill them any more, being able to kill them
normally is a good ting.

--------------------------------------------------------------------------------
6e04a13564 | Steve Melenchuk | 2014-05-10 21:38:21 -0600

Remove the interaction between disintegration and statue enemies.
...which turned them into "do you have a wand of disintegration" check
and nothing more.

--------------------------------------------------------------------------------
d546081189 | Steve Melenchuk | 2014-05-10 21:38:07 -0600

Revert "Remove silver statues."
Don't worry; the whole point of this set of commits is to fix the problems
with them and their companion statues.

This partially reverts commit b4c3b502143418fb4fdb3faaa29a2ef6e9eabce5.
This reverts commit e1156a91a6a0b1bb26c7e7ee63710c3eefbd2739.

--------------------------------------------------------------------------------
031a9a43fa | Chris Campbell | 2014-05-11 01:03:37 +0100

Fix Qazlal resistance message appearing while worshipping Fedhas (#8535)

--------------------------------------------------------------------------------
835c25f5bd | Chris Campbell | 2014-05-11 00:27:11 +0100

Reword description for archery ego
For consistency with other ego descriptions.

--------------------------------------------------------------------------------
e79b837607 | reaverb | 2014-05-10 19:11:10 -0400

Stasis description fixes (and into, PleasingFungus)
Note Berserk is blocked and get rid of the awkward word "translocular"

--------------------------------------------------------------------------------
b9c215d3f3 | reaverb | 2014-05-10 18:40:52 -0400

New function: percent_chance()
Designed to make sure things like no god protecting you from miscasts
won't happen again.

Lua could use it in a couple places, if the function was made accessible from 
that environment.

--------------------------------------------------------------------------------
2b8d6ef895 | Neil Moore | 2014-05-10 14:21:41 -0400

Allow random monsters on random monster lists (#8520).

--------------------------------------------------------------------------------
b4c3b50214 | reaverb | 2014-05-10 12:27:37 -0400

Move the tiles of several removed monsters to UNUSED/monsters

--------------------------------------------------------------------------------
aebf29ef1b | reaverb | 2014-05-10 11:39:07 -0400

Standardize some save compact code

--------------------------------------------------------------------------------
423e527b4a | reaverb | 2014-05-10 11:22:33 -0400

State when a file should be removed

--------------------------------------------------------------------------------
8fb6756db1 | gammafunk | 2014-05-10 03:31:59 -0500

A Depths vault from Cheibrodos
I also moved gammafunk_depths_water_palace to float.des, since
larged_themed.des is for orientations other than float.

--------------------------------------------------------------------------------
f6af66c72b | reaverb | 2014-05-10 01:37:03 -0400

s/doodad/acq_item/ in acquire.cc

--------------------------------------------------------------------------------
0b1b752dcf | reaverb | 2014-05-10 01:17:38 -0400

Remove 3 useless functions (|amethyst)

--------------------------------------------------------------------------------
d0bc051500 | reaverb | 2014-05-10 01:01:40 -0400

Remove an odd use of !x_chance_in_y()

--------------------------------------------------------------------------------
15da02fb5d | reaverb | 2014-05-10 00:48:28 -0400

Staticify (_random_real_inc)

--------------------------------------------------------------------------------
681a008b1a | reaverb | 2014-05-10 00:48:28 -0400

Staticify (_random_real_avg)

--------------------------------------------------------------------------------
15795086a8 | Neil Moore | 2014-05-10 00:42:27 -0400

Update a comment and formatting.

--------------------------------------------------------------------------------
c1ca02f0f2 | reaverb | 2014-05-10 00:27:47 -0400

Correct Sif Muna miscast protection probability (|amethyst)
Before, there was a one in a few billion chance that Sif Muna would not
protect you even at max piety.

--------------------------------------------------------------------------------
3a3fbdf580 | reaverb | 2014-05-10 00:00:17 -0400

Quickly fix no god protecting people from miscasts

--------------------------------------------------------------------------------
1b994ee21c | Steve Melenchuk | 2014-05-09 21:20:43 -0600

Add tags to a couple of Shoals vaults.

--------------------------------------------------------------------------------
ba2ec7ee1a | Steve Melenchuk | 2014-05-09 21:20:32 -0600

Don't let Shoals level building overwrite vaults (#8529).

--------------------------------------------------------------------------------
eb650435c2 | Steve Melenchuk | 2014-05-09 21:13:23 -0600

Staticify.

--------------------------------------------------------------------------------
2821b36c4d | drachereborn | 2014-05-09 19:47:38 -0400

Use Sif miscast protection when coloring spell fail chances
(I have pretty severely edited this patch. #8301 on mantis) -reaverb

--------------------------------------------------------------------------------
a3c592f31c | Chris Campbell | 2014-05-09 22:21:29 +0100

Make potions of blood cure rotting for ghouls
To make them somewhat playable under Gozag.

--------------------------------------------------------------------------------
fc1b9ffd4a | Chris Campbell | 2014-05-09 22:21:26 +0100

Give 4 potions of blood to carnivorous players with potion petition
This provides ~4k nutrition, compared to porridge's ~6k.

--------------------------------------------------------------------------------
dd4d53dba7 | Shmuale Mark | 2014-05-09 16:01:05 -0400

Don't pre-id an amulet in Crypt endings.
It's rather confusing for the player.

--------------------------------------------------------------------------------
e1156a91a6 | Shmuale Mark | 2014-05-09 16:01:05 -0400

Remove silver statues.
They have all the usual problems of summoners, stationary monsters,
and special-cased interactions (with disintegration). Almost every
single vault that had them was "OCS / silver statue / ice statue"
or something like that, so fairly few actual changes had to be made.

--------------------------------------------------------------------------------
b5208daa1a | Chris Campbell | 2014-05-09 20:36:48 +0100

Display gourmand instead of saprovore on the % screen
Since gourmand is likely to actually change over the course of a game.
Saprovore is still displayed for species that have it, when they have no
gourmand (but probably doesn't need to be).

--------------------------------------------------------------------------------
ef77213135 | Chris Campbell | 2014-05-09 20:36:47 +0100

Don't randomly generate decks of dungeons (johnny0)

--------------------------------------------------------------------------------
5091ead2ae | reaverb | 2014-05-09 14:21:38 -0400

Remove the "of the Doge" randart name (Sar)
Even though it actually is an obscure medieval political office, it
looks like a silly reference.

--------------------------------------------------------------------------------
df37d7f923 | reaverb | 2014-05-09 14:20:14 -0400

Fix braces
Oops.

--------------------------------------------------------------------------------
16e39faceb | Eduardo Gonzalez | 2014-05-09 13:55:21 -0400

Pass equipment slot to artefact equip/unequip effects
This allows the correct ring slot to be registered for art-func hooks
if we choose to make any such unrands.

--------------------------------------------------------------------------------
6bbddb8b84 | Eduardo Gonzalez | 2014-05-09 13:55:07 -0400

Recalculate cache of equipped unrands with world_reacts on save load
This allows us to more easily add or remove those hooks on existing unrands.
The data type has also been changed to FixedBitVector from unsigned short,
allowing the expanded ring slots to be referenced.

--------------------------------------------------------------------------------
f2248c4d6d | Eduardo Gonzalez | 2014-05-09 12:44:03 -0400

Expose bitset's count function through FixedBitVector...
and use it to speed up counting runes in a few places.
Vaults and Zot entrances report activated runes by name, so weren't updated.

--------------------------------------------------------------------------------
200594107f | Chris Campbell | 2014-05-09 17:13:25 +0100

Add some missing floor to a temple

--------------------------------------------------------------------------------
c74e7dc021 | Chris Campbell | 2014-05-09 17:02:29 +0100

Remove the Shuffle card
It was an interesting effect unlike Experience/Sage etc, but unfortunately
doesn't really work in a deck intended to contain mostly-tactical effects,
and also wouldn't work in a deck like Oddities or Punishment (since in
Wonders it's always a known possibility for willingly blind-drawing from
that deck).

--------------------------------------------------------------------------------
9aa3c08c98 | Chris Campbell | 2014-05-09 16:35:08 +0100

Improve display and messaging for Gozag's item duplication
Give a message if you pray over an unduplicatable item, and specify
that artefacts are not allowed on the ^ screen.

--------------------------------------------------------------------------------
972d1c6c39 | Chris Campbell | 2014-05-09 16:35:07 +0100

Adjust Zin's mutation curing display on the religion screen
Unfortunately this makes the description take up the entire screen with
no empty line again on 80x24 terminals, but previously it implied that
you could only cure mutations at an altar.

--------------------------------------------------------------------------------
1ec5379869 | Steve Melenchuk | 2014-05-09 08:18:42 -0600

Update ^ screen description of Qazlal 6* resistances (qoala).

--------------------------------------------------------------------------------
b40c8e94ac | Florian Diebold | 2014-05-09 15:51:56 +0200

Webtiles: Try to deal better with EAGAIN.
This happens a lot on CAO. Allow more attempts, and increase the wait
time after the first few.

--------------------------------------------------------------------------------
1e7878ba8a | reaverb | 2014-05-09 01:26:13 -0400

Remove the Boots of the Spider
Clinging was their only unique mechanic, now they're barely different
from +2 Jump boots.

--------------------------------------------------------------------------------
bfe212cce2 | ontoclasm | 2014-05-08 23:56:56 -0500

Curare needle tile

--------------------------------------------------------------------------------
6186554951 | Chris Campbell | 2014-05-09 05:30:28 +0100

Remove the Sage effect
Since the card was removed and it only remained as a Zotdef effect.

--------------------------------------------------------------------------------
c4feebf056 | Chris Campbell | 2014-05-09 05:30:25 +0100

Adjust wonders deck weighting
Make the deck slightly more common, make wild magic/focus/shuffle rarer,
especially in legendary decks.

--------------------------------------------------------------------------------
82f6ad17de | Chris Campbell | 2014-05-09 05:30:22 +0100

Remove decks of dungeons and a number of now-unused cards
Decks of dungeons were no longer gifted and only generated very rarely.
Most of the cards in it (as well as some cards just removed from wonders)
were either uninteresting or problematic for various reasons. The removed
cards are Experience, Sage, Water, Glass, Trowel, Minefield.

--------------------------------------------------------------------------------
9e88b4757e | Chris Campbell | 2014-05-09 05:30:18 +0100

Add the Helix card to the deck of oddities

--------------------------------------------------------------------------------
b7accc331c | Chris Campbell | 2014-05-09 05:30:14 +0100

Adjust potion card effects
Power 0: replace paralysis with decay and adjust weighting of curing/
agility/might/brilliance.
Power 1: resistance/haste
Power 2: magic/heal wounds

--------------------------------------------------------------------------------
c6a0166555 | Chris Campbell | 2014-05-09 05:30:10 +0100

Adjust the contents of decks of wonders
Remove experience, helix, sage and trowel. Add dowsing, battlelust, helm
and shadow cards, hopefully making wonders cards significantly less
worth drawing outside of combat and more worth drawing in combat.

--------------------------------------------------------------------------------
791779a493 | Shmuale Mark | 2014-05-09 00:26:42 -0400

Text tweak.

--------------------------------------------------------------------------------
f89b05eaf3 | elliptic | 2014-05-08 23:40:55 -0400

Simplify Gozag shop placement.
Now it chooses from the 4 earliest available levels, with weights 4:3:2:1.
If this doesn't seem to give enough variance, 4 could easily be increased,
but I don't think that having a very small chance of placing your first shop
on Depths:4 is interesting.

--------------------------------------------------------------------------------
a82c57f8d1 | Steve Melenchuk | 2014-05-08 20:46:26 -0600

Revert "Make antimagic bite a normal good mutation"
A furious discussion on ##crawl-dev suggests that this is potentially
too overpowered (it's free antimagic without any drawbacks) and treads
too much on the toes of their normal home of Vine Stalkers.

This reverts commit 714ec68abff0feb91dbe23075ec658c240c9e9e4.

--------------------------------------------------------------------------------
714ec68abf | reaverb | 2014-05-08 22:28:07 -0400

Make antimagic bite a normal good mutation
It works so well on VS there's no reason not to.

--------------------------------------------------------------------------------
151c26771e | Shmuale Mark | 2014-05-08 22:00:43 -0400

Don't claim Cheibriados dislikes +rage items (#8295).
Now that the ability menu marks disallowed abilities as such, there
doesn't seem to be much reason to claim that they are disliked.

--------------------------------------------------------------------------------
01e124b8e5 | Keanan Smith | 2014-05-08 21:58:52 -0400

Remove choosing a book for Recite.
Each monster is affected by exactly one book currently. This commit
changes it so each monster is individually affect by that one book.

--------------------------------------------------------------------------------
8acb02a7b4 | Chris Campbell | 2014-05-09 02:13:09 +0100

Reduce the intelligence bonus on the orange crystal plate
Since the idea is to encourage you to overcome the armour's heavy penalties
yourself, rather than to help you do so.

--------------------------------------------------------------------------------
48ad150b2f | Nicholas Feinberg | 2014-05-09 01:32:34 +0100

Add orange crystal plate armour unrand
Adds a new artefact designed to encourage players to cast in
ultra-heavy armour.

--------------------------------------------------------------------------------
2d6cb6d8e2 | Chris Campbell | 2014-05-09 01:19:29 +0100

Don't distract sleeping monsters with gold either

--------------------------------------------------------------------------------
5691e6de53 | Chris Campbell | 2014-05-09 00:35:34 +0100

Update Gozag ability descriptions

--------------------------------------------------------------------------------
a10edf26d6 | Chris Campbell | 2014-05-09 00:35:33 +0100

Remove a randart name

--------------------------------------------------------------------------------
edf58912ab | Chris Campbell | 2014-05-09 00:35:32 +0100

Update Gozag descriptions

--------------------------------------------------------------------------------
b0bf75c565 | Chris Campbell | 2014-05-09 00:35:30 +0100

Don't distract non-hostile monsters with gold under Gozag

--------------------------------------------------------------------------------
bad39bebbe | elliptic | 2014-05-08 19:30:16 -0400

Increase variance in Gozag shop fees.
To make decisions more interesting.

--------------------------------------------------------------------------------
6f51237865 | elliptic | 2014-05-08 19:23:52 -0400

Runed doors aren't safe (qw, wheals).
This stops autofight/automagic from opening runed doors to get to enemies who
are visible through glass.

--------------------------------------------------------------------------------
8973858003 | reaverb | 2014-05-08 16:45:11 -0400

Make monsters not fall into liquids due to status effects
Paralysis, petrification, and being caught in nets.

monster::apply_location_effects() is the only caller of
mons_check_pool() now, so maybe it should be deleted/moved?

--------------------------------------------------------------------------------
e79590dfc1 | reaverb | 2014-05-08 16:42:33 -0400

Properly format conflicting mutations

--------------------------------------------------------------------------------
291ab9b34b | reaverb | 2014-05-08 16:40:49 -0400

Remove diet mutations from random generation
Including removing them from current saves on load.

Generally diet mutations aren't that interesting, having very minor
effects.

--------------------------------------------------------------------------------
7948ca6b5f | Shmuale Mark | 2014-05-08 15:24:19 -0400

Mark slow heal and no device healing as mutually exclusive (reaverb).

--------------------------------------------------------------------------------
b529265fd9 | Chris Campbell | 2014-05-08 20:13:29 +0100

Fix slow message not being displayed when hitting monsters with curare

--------------------------------------------------------------------------------
38fd0bf7d9 | Shmuale Mark | 2014-05-08 13:46:08 -0400

Add some more shallow water to grunt_lady_of_the_lake.
Since sirens try to move to a place in deep water next to shallow
water, the siren in the vault was acting very strangely. Hopefully
this improves the behavior.

--------------------------------------------------------------------------------
13ffe13d32 | Shmuale Mark | 2014-05-08 13:38:54 -0400

Remove a spriggan defender from a swamp vault.
They're probably as dangerous as an azure jelly (with some rC, i
suppose) and this isn't an end vault.

--------------------------------------------------------------------------------
25991549f4 | reaverb | 2014-05-08 12:59:20 -0400

Add a comment so new dactions don't break the debug build

--------------------------------------------------------------------------------
7905f2f0c7 | Steve Melenchuk | 2014-05-08 10:45:37 -0600

Move one-time god ability descriptions up from the bottom of the screen.
Nobody ever sees them where they were before.

Now they're listed with the rest of the divine abilities.

--------------------------------------------------------------------------------
fbb1a450bc | Steve Melenchuk | 2014-05-08 10:36:53 -0600

Fix debug compilation (again).
Whoops.

--------------------------------------------------------------------------------
f86312ef14 | Steve Melenchuk | 2014-05-08 10:29:58 -0600

Don't trigger berserkitis on ranged attacks (#8516).
Oops.

--------------------------------------------------------------------------------
5fed7dde5e | Steve Melenchuk | 2014-05-08 10:29:48 -0600

Staticify several functions.

--------------------------------------------------------------------------------
c9c7238cd9 | Steve Melenchuk | 2014-05-08 10:20:59 -0600

Extend bribes to all previously-unseen monsters.
Most players intuitively expect it to behave this way and are surprised
when it isn't.

You obviously can't bribe monsters in your LOS or that are chasing you,
so Bribe Branch retains its strategic nature.

--------------------------------------------------------------------------------
8f6a687fee | ontoclasm | 2014-05-08 11:19:14 -0500

Orc tile edits

--------------------------------------------------------------------------------
708210f002 | Chris Campbell | 2014-05-08 16:59:39 +0100

Remove plain octopodes from a vault
They're not intended to be used as regular monsters, just for recolouring
the octopode player glyph.

--------------------------------------------------------------------------------
18e5b6b8b5 | Chris Campbell | 2014-05-08 16:59:37 +0100

Give Dithmenos piety loss when creating fire with the rod of clouds (#8510)

--------------------------------------------------------------------------------
3e2eb95d2b | Chris Campbell | 2014-05-08 16:59:34 +0100

Allow casting Ring of Flames while in a rain cloud

--------------------------------------------------------------------------------
6ea9407c58 | Chris Campbell | 2014-05-08 16:59:30 +0100

Don't make rain clouds act as negative fire enhancers

--------------------------------------------------------------------------------
1e5fbc4d43 | Chris Campbell | 2014-05-08 16:59:27 +0100

Change "haven't" to "don't have" in a few places (|amethyst)

--------------------------------------------------------------------------------
4848dab14f | Chris Campbell | 2014-05-08 16:59:24 +0100

Change "hitpoints" to "health" in a few places
Crawl mostly uses "health" and "magic", with "HP" and "MP" in a few
places where abbreviating is more appropriate.

--------------------------------------------------------------------------------
48a369fa9e | reaverb | 2014-05-08 11:50:34 -0400

Fix debug compilation

--------------------------------------------------------------------------------
66f2601e51 | Nicholas Feinberg | 2014-05-08 10:31:33 -0400

Factor out _place_player() from load_level()

--------------------------------------------------------------------------------
d5aa2acc24 | Nicholas Feinberg | 2014-05-08 10:24:04 -0400

Factor out _make_level() from load_level()

--------------------------------------------------------------------------------
6ce1f16f8c | Nicholas Feinberg | 2014-05-08 10:22:43 -0400

Pull out _leave_level() from load_level()

--------------------------------------------------------------------------------
00b27ffd6d | gammafunk | 2014-05-08 03:35:15 -0500

Some vaults from Cheibrodos

--------------------------------------------------------------------------------
23cdfa8188 | elliptic | 2014-05-08 04:02:53 -0400

Make Gozag shop placement saner.
Not sure this is the best weighting to use, but at least it makes sense now.

--------------------------------------------------------------------------------
203b2536c6 | elliptic | 2014-05-08 01:46:38 -0400

Gozag ability tweaks and interface improvements.
This commit has the following effects, which are sufficiently interconnected
that separating this into multiple commits seemed hard:
* Don't allow players to invoke potion petition unless they have enough gold
  for the guaranteed porridge/blood potion.
* Don't allow players to invoke call merchant unless they have enough gold
  to pay for any shop that might be offered.
* Tweak the formula for shop prices; now it really doesn't depend on the
  shop type at all, and the maximum price will always be a nice round number.
* Display gold requirements in the ability screen. These numbers are slightly
  misleading because the actual gold cost for potion petition or call merchant
  will be a bit different from the displayed cost, but these numbers give the
  player a way to tell whether an ability can be used without committing to
  using it.

--------------------------------------------------------------------------------
1538c87047 | Steve Melenchuk | 2014-05-07 22:58:17 -0600

Properly check Gozag potion affordability on reuse (#8514).
There's a means to abort out here in the event of bugged saves which
should probably change to an ASSERT later.

--------------------------------------------------------------------------------
9218e2df95 | reaverb | 2014-05-08 00:41:53 -0400

Remove a now incorrect Gozag comment

--------------------------------------------------------------------------------
eddedc8ab3 | reaverb | 2014-05-08 00:26:47 -0400

Make MUT_NO_DEVICE_HEAL a normal bad mutation with 2 levels

--------------------------------------------------------------------------------
e99bd4c15d | Steve Melenchuk | 2014-05-07 21:52:31 -0600

Don't put potions of bugginess on Gozag lists (elliptic).

--------------------------------------------------------------------------------
382a147afa | ontoclasm | 2014-05-07 22:10:51 -0500

Orc warlord tile (Thrall, 8511)

--------------------------------------------------------------------------------
b2ce7a1925 | Chris Campbell | 2014-05-08 03:58:06 +0100

Fix temple alignment in Sprint 1
Amongst other missing tags.

--------------------------------------------------------------------------------
a3d40d3a14 | reaver | 2014-05-07 21:45:07 -0400

Revert "Revert "Remove player clinging"."
This reverts commit 65ff1ef470978c29490100d1732bf2b9ce2fb7cd.

Conflicts:
	crawl-ref/source/main.cc
	crawl-ref/source/output.cc
	crawl-ref/source/player.cc
	crawl-ref/source/shout.cc
	crawl-ref/source/status.cc
	crawl-ref/source/status.h
	crawl-ref/source/terrain.cc
    crawl-ref/source/transform.cc

Minor, prerequesite reverts:

    b0d520741c8e9a26e7a786a34285f7a9412d8d10

    Trival removal of clinging from the Boots of the Spider

    3e0928f93c3f8a78ac6327c26986b406f7d7f603
    (conflict in crawl-ref/source/item_use.cc)

Thanks to gammafunk for removing the last bits of clinging code!

To do: Decide what to do about the boots of the spider.

--------------------------------------------------------------------------------
756ac6bdf3 | Chris Campbell | 2014-05-08 02:15:55 +0100

Don't let Gozag duplicate gold

--------------------------------------------------------------------------------
6a79377ab7 | Chris Campbell | 2014-05-08 02:15:54 +0100

Slightly reduce monster simulacrum's message spam

--------------------------------------------------------------------------------
6eae419512 | Steve Melenchuk | 2014-05-07 18:59:53 -0600

Changelog through 0.15-a0-640-g3d343ae.

--------------------------------------------------------------------------------
3d343ae86a | Steve Melenchuk | 2014-05-07 18:51:12 -0600

Don't let Upheaval flood non-floor tiles with magma (Ayutzia).

--------------------------------------------------------------------------------
1b0b24d420 | Steve Melenchuk | 2014-05-07 18:39:25 -0600

Borrow the Summon Elemental icon for Elemental Force.
Probably a temporary thing, but it works for now.

--------------------------------------------------------------------------------
95e669439b | Steve Melenchuk | 2014-05-07 18:27:21 -0600

Rescale base throwing skill damage bonus.
Darts and stones get half bonus; other throwables get the full bonus.

--------------------------------------------------------------------------------
ec6b85c8be | elliptic | 2014-05-07 18:23:34 -0600

Qazlal worshippers don't notice storm cloud noise (Grunt).
The message "Lightning arcs down from a storm cloud!" only indicates to the
player that a loud noise just happened, and Q worshippers can just assume
that loud noises are happening around them very frequently rather than
be distracted by the message every few turns.

This change can be justified by saying that Q worshippers are so used to
being around a storm that they don't notice the thunder and lightning
(unless lightning actually strikes a monster).

--------------------------------------------------------------------------------
9f644f5068 | elliptic | 2014-05-07 18:23:34 -0600

Remove remnants of cloud displacement.

--------------------------------------------------------------------------------
435e51d3e0 | Steve Melenchuk | 2014-05-07 18:23:34 -0600

Warn about Upheavaling yourself/allies (MarvinPA).
Also don't print MSG_OK more than once on various aborts for it.

--------------------------------------------------------------------------------
f25431f1f0 | Steve Melenchuk | 2014-05-07 18:23:34 -0600

Use uncancels for Gozag abilities.
Includes properly splitting the usability checks out of the function
itself.

--------------------------------------------------------------------------------
96155f285f | Steve Melenchuk | 2014-05-07 18:23:34 -0600

Force a selection for Gozag abilities (elliptic, dpeg).
You're prevented from seeing what's available for purchase if you can't
afford anything, and must select something if you can.

HUP behaviour is currently to pick the least expensive item. This may
need to change; the ideal behaviour would be to use an uncancel.

--------------------------------------------------------------------------------
d9529c446b | Steve Melenchuk | 2014-05-07 18:23:34 -0600

Replace Gozag's gold lust with gold distraction (dpeg).
For every fresh pile of gold in LOS of a monster when they're acting,
they have a 5% chance of doing nothing that turn.

--------------------------------------------------------------------------------
6698dc1909 | Steve Melenchuk | 2014-05-07 18:23:34 -0600

More changes to Gozag shop placement (dpeg, elliptic).
Mostly restore the old behaviour, but disallow placement in Orc and Elf,
weight for proximity to an explored level instead of for shallowness,
and keep the new behaviour if there are no new levels.

This partially reverts commit 85663e0109dc32d2f26efbbd4d783958343d8028.

--------------------------------------------------------------------------------
d2ad7c1eea | elliptic | 2014-05-07 18:23:34 -0600

Add a missing period.

--------------------------------------------------------------------------------
ae1d2ea754 | elliptic | 2014-05-07 18:23:33 -0600

More Qazlal storm tweaks.
The corridor check catches corners and corridor mouths now. As compensation,
increase the number of clouds created, especially at lower piety levels.

--------------------------------------------------------------------------------
6190135a35 | elliptic | 2014-05-07 18:23:33 -0600

Clean up a div_rand_round in Qazlal cloud placement.

--------------------------------------------------------------------------------
656b4adf42 | Steve Melenchuk | 2014-05-07 18:23:33 -0600

Rejig Q cloud generation again.
Mainly, don't place clouds in corridors, and don't try to avoid placing
clouds next to each other because it doesn't block autoexplore any
longer.

Since the cloud radius has been reduced, firewood is now eligible for
placement again; since cloud adjacency restrictions are gone, reduce the
number of clouds generated.

--------------------------------------------------------------------------------
6701b1f0ae | Steve Melenchuk | 2014-05-07 18:23:33 -0600

Replace Q cloud displacement with cloud immunity (Bloax, elliptic).
Because getting trampled into your own clouds is terrible.

Also disables this when under penance, which was an oversight for the
former.

--------------------------------------------------------------------------------
bf2d24ebf9 | Chris Campbell | 2014-05-07 18:23:33 -0600

Reduce the number of items in a Gozag altar vault shop

--------------------------------------------------------------------------------
3c73e00398 | Steve Melenchuk | 2014-05-07 18:23:33 -0600

Don't factor in shop type for Gozag shop prices either (elliptic).

--------------------------------------------------------------------------------
2978fa85b1 | Steve Melenchuk | 2014-05-07 18:23:33 -0600

More tweaking to Gozag's potion lists.
Duplicate potions are disallowed altogether; some particular
combinations have been removed; cure mutation is gone; bad potions are
now weighted.

--------------------------------------------------------------------------------
0e9431a57d | Steve Melenchuk | 2014-05-07 18:23:33 -0600

Make Gozag shop prices independent of content (elliptic).
This probably means that a lot of the code for saving and getting item
specs is now unnecessary, but it's still around for now.

--------------------------------------------------------------------------------
86452ac614 | Steve Melenchuk | 2014-05-07 18:23:33 -0600

Place Gozag shops at the player's location (elliptic).
Must still be on a level that allows shops, for now; I'm open to
changing this.

No restrictions on the number of shops called per level, either.

There's some support code left here in case people still have games in
progress on the branch; when it hits trunk the support code will go
away.

--------------------------------------------------------------------------------
a29467d771 | Steve Melenchuk | 2014-05-07 18:23:33 -0600

Nudge Gozag's passive gold detection.
Fix other item being detected in place of gold (#8499); don't show the
message for it (elliptic).

--------------------------------------------------------------------------------
fe8694ce61 | Steve Melenchuk | 2014-05-07 18:23:33 -0600

Gozag: only duplicate one of a stack of items.
The old behaviour was never intentional.

--------------------------------------------------------------------------------
5d29b40853 | Steve Melenchuk | 2014-05-07 18:23:32 -0600

Another item_to_spec special case.
Sigh.

--------------------------------------------------------------------------------
89b5cdbbd1 | Chris Campbell | 2014-05-07 18:23:32 -0600

Don't allow duplicating the orb of Zot or runes

--------------------------------------------------------------------------------
7a33ce8bb7 | Chris Campbell | 2014-05-07 18:23:32 -0600

Track gold paid to Gozag and show it in character dumps

--------------------------------------------------------------------------------
9782ad96da | Chris Campbell | 2014-05-07 18:23:32 -0600

Make a note when duplicating an item under Gozag or gaining Qazlal's resistance 
gift

--------------------------------------------------------------------------------
62419d4766 | Steve Melenchuk | 2014-05-07 18:23:32 -0600

Tone down Qazlal's 6* gift.
Just one pip of the relevant resistances or AC+3, like Elemental
Adaptation in permanent form.

--------------------------------------------------------------------------------
b3229a15c2 | Steve Melenchuk | 2014-05-07 18:23:32 -0600

Don't allow Gozag shops to place in Lair branches.
Two reasons: allowing this causes the efficacy of the ability to depend
on the dungeon structure (i.e. it varies from game to game
considerably), and it leaks information about the dungeon structure if
used sufficiently early.

--------------------------------------------------------------------------------
cfa0bd3949 | Steve Melenchuk | 2014-05-07 18:23:32 -0600

Fix bribing of bands.
The chance should be rolled just for the leader, i.e. you get all of a
band or none of it. This wasn't the case previously; instead everything
got a chance roll, and members of bands were therefore unnaturally
unlikely to get bribed (relevant for draconians).

--------------------------------------------------------------------------------
162a68e86a | Steve Melenchuk | 2014-05-07 18:23:32 -0600

Nudge Gozag bribe chances up again.
You get a more than 50% chance of bribing some enemies now; I hope this
is enough.

--------------------------------------------------------------------------------
a9a44cf284 | Steve Melenchuk | 2014-05-07 18:23:32 -0600

Fixes for Gozag bugs related to level generation.
* Properly unmark off-level shops (#8498).

* Don't deduct bribes for vetoed levels (if, say, Elf:3 vetoed a lot
  you'd notice your bribe running out immediately on entering the
  level).

--------------------------------------------------------------------------------
a4fdc1954e | Steve Melenchuk | 2014-05-07 18:23:32 -0600

Don't let Disaster Area go through walls.
Oops.

--------------------------------------------------------------------------------
13c95eb570 | Steve Melenchuk | 2014-05-07 18:23:32 -0600

Fix Upheaval square effect calculations.
It was never intended to blast entire one or two tile radius as it does
now.

--------------------------------------------------------------------------------
600a082039 | Steve Melenchuk | 2014-05-07 18:23:31 -0600

Don't let Upheaval lava-ify walls temporarily.

--------------------------------------------------------------------------------
7073275ea1 | Steve Melenchuk | 2014-05-07 18:23:31 -0600

Allow running (shift-moving) through Qazlal clouds (MarvinPA).

--------------------------------------------------------------------------------
8a5ab3ef43 | Steve Melenchuk | 2014-05-07 18:23:31 -0600

A couple of dual-god overflow altars containing G or Q.

--------------------------------------------------------------------------------
e1896bdc8c | Steve Melenchuk | 2014-05-07 18:23:31 -0600

A literal Qazlal overflow altar (nicolae).

--------------------------------------------------------------------------------
de9c0a90c8 | Steve Melenchuk | 2014-05-07 18:23:31 -0600

Don't show Bribe light after abandoning Gozag (nicolae).

--------------------------------------------------------------------------------
c77171fbee | Neil Moore | 2014-05-07 18:23:31 -0600

New script util/tag-major-upgrade.
Works like unbrace etc.  Takes a -n option for a dry run, and -t NUM to
pretend the version tag is at a particular number.

--------------------------------------------------------------------------------
311b6308dd | Steve Melenchuk | 2014-05-07 18:23:31 -0600

Adjust Disaster Area target selection.
Weight more towards tiles near the player, and don't trigger an effect
on two adjacent tiles.

The effect should look a lot more spread out now, as it needs to be.

--------------------------------------------------------------------------------
7402d094d8 | Steve Melenchuk | 2014-05-07 18:23:31 -0600

Don't place Gozag shops on levels that can't get them normally.
The chances of players being ready to place shops on D:2-3 are basically
zero right now, but just in case...

--------------------------------------------------------------------------------
8200579beb | Steve Melenchuk | 2014-05-07 18:23:31 -0600

Scale back Gozag shop weight scaling.
Back to cubic, now that e6e75e3 makes it meaningful.

--------------------------------------------------------------------------------
01fccba2b9 | Neil Moore | 2014-05-07 18:23:31 -0600

Actually weight Gozag shops by shallowness; don't crash.
We were accidentally using the same weight for every level.  Even
worse, if there were only one or two candidate levels, we could crash,
because we used the index of the user's choice where we should have used
the index of the level in the candidates list.  See for example:

  
http://crawl.berotato.org/crawl/morgue/FishServ/crash-FishServ-20140504-055915.t
xt

Perhaps it makes sense to adjust that quintic weighting back down to
cubic or lower now (see 0.15-a0-355-gc1687c6).

--------------------------------------------------------------------------------
19fea4a6d0 | Steve Melenchuk | 2014-05-07 18:23:31 -0600

Remove a residual reference to (bene)mut from Gozag lists.

--------------------------------------------------------------------------------
3729c3d519 | Steve Melenchuk | 2014-05-07 18:23:31 -0600

Remove potions of paralysis from Gozag lists (MarvinPA).

--------------------------------------------------------------------------------
cc951abeae | Steve Melenchuk | 2014-05-07 18:23:30 -0600

Make Q's GONNNNG conduct more of an official thing.
To make up for less thunder clouds.

You get 3 noise per action at 1* piety up to 16 noise per action at 6* piety
(about the same as a fireball).

Have fun!

--------------------------------------------------------------------------------
e4cf6b8460 | Steve Melenchuk | 2014-05-07 18:23:30 -0600

More Q cloud generation tweaks.
Generate more clouds (because it's in a smaller area) and don't place
fire clouds next to water at all.

--------------------------------------------------------------------------------
c9cdf154e3 | Steve Melenchuk | 2014-05-07 18:23:30 -0600

Q worshippers get a stealth malus.
A storm is pretty conspicuous, after all.

--------------------------------------------------------------------------------
32bdd78d54 | Steve Melenchuk | 2014-05-07 18:23:30 -0600

Add G/Q to other sprints.

--------------------------------------------------------------------------------
de6f0aed1a | Neil Moore | 2014-05-07 18:23:30 -0600

Add new gods to zigsprint.
Symmetry is broken, but that's okay for testing purposes.

--------------------------------------------------------------------------------
ab73c7311c | Neil Moore | 2014-05-07 18:23:30 -0600

Add Gozag to vim .des syntax highlighting.

--------------------------------------------------------------------------------
e0f46aed7f | Steve Melenchuk | 2014-05-07 18:23:30 -0600

Don't place Q flame clouds over water.
We don't want the player to get too steamed, after all.

--------------------------------------------------------------------------------
40d39615d7 | Steve Melenchuk | 2014-05-07 18:23:30 -0600

Restrict Q cloud generation to a 1 or 2 tile radius (nicolae).
Should cut down on visual spam significantly, though this probably isn't
a complete solution.

--------------------------------------------------------------------------------
a642a8d57d | Steve Melenchuk | 2014-05-07 18:23:30 -0600

Cut "storm around you [strengthen|weaken]s" messages.
Mainly motivated by too much spam on gaining 4* Q piety.

--------------------------------------------------------------------------------
8a18b5e7a1 | Steve Melenchuk | 2014-05-07 18:23:30 -0600

Re-bribing a perma-bribed monsters costs at least 1 gold (MarvinPA).

--------------------------------------------------------------------------------
2d5a51b656 | Chris Campbell | 2014-05-07 18:23:30 -0600

Reword the message for attempting to join Gozag with no gold

--------------------------------------------------------------------------------
1dbf2c0ca6 | Chris Campbell | 2014-05-07 18:23:29 -0600

Give a prompt when bribing branches

--------------------------------------------------------------------------------
bd55e2d573 | Chris Campbell | 2014-05-07 18:23:29 -0600

Redraw AC/EV/SH when gaining or losing Gozag's gold skill bonus

--------------------------------------------------------------------------------
ba6794a638 | Chris Campbell | 2014-05-07 18:23:29 -0600

Fix typo in Gozag description

--------------------------------------------------------------------------------
40b3f46a83 | Chris Campbell | 2014-05-07 18:23:29 -0600

Reduce the amount of gold in an overflow altar

--------------------------------------------------------------------------------
2b239a8254 | Steve Melenchuk | 2014-05-07 18:23:29 -0600

Some G/Q altar overflows courtesy of nicolae.

--------------------------------------------------------------------------------
b519b7d186 | Steve Melenchuk | 2014-05-07 18:23:29 -0600

A few Gozag lines of speech for Donald / ghosts.

--------------------------------------------------------------------------------
caf21cdd81 | Steve Melenchuk | 2014-05-07 18:23:29 -0600

Allow bribing a branch when standing on its entrance (nicolae).

--------------------------------------------------------------------------------
d7e7e32074 | Steve Melenchuk | 2014-05-07 18:23:29 -0600

Remove (bene)mut from Gozag potion lists (MarvinPA).

--------------------------------------------------------------------------------
1504828219 | Steve Melenchuk | 2014-05-07 18:23:29 -0600

Increase the chances of Gozag bribing enemies.
This should make the ability a bit more useful.

--------------------------------------------------------------------------------
d95db4f7c7 | Steve Melenchuk | 2014-05-07 18:23:29 -0600

Cut Qazlal's bonus SH.
It was outstripping TSO's Divine Shield at 27 Invo + Shields, which is
undesirable.

(cherry picked from commit f28fdd92972f01bc44c7c4ec57ee1e0f1c9c92e5)

--------------------------------------------------------------------------------
c272958730 | Steve Melenchuk | 2014-05-07 18:23:29 -0600

Remove Qazlal's DMsl; bump RMsl to 4*.

--------------------------------------------------------------------------------
19306993ee | Steve Melenchuk | 2014-05-07 18:23:29 -0600

Increase Disaster Area's effectiveness.
By increasing the number of squares it hits as a function of
Invocations.

Even at 27 Invocations it was underwhelming previously; now it should
both scale better with Invocations and be properly spectacular at 27.

--------------------------------------------------------------------------------
2145095dfb | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Another really basic 18 god Temple layout.
Since the original version of this hasn't been updated in ages.

--------------------------------------------------------------------------------
232f41e8ae | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Two Qazlal overflow altars.

--------------------------------------------------------------------------------
f2f5197c25 | Steve Melenchuk | 2014-05-07 18:23:28 -0600

A couple of Gozag overflow altars.

--------------------------------------------------------------------------------
f61ac6c740 | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Allow Qazlal displacement of clouds containing allies.
Not allowing this was causing players to autoexplore and end up in their
own clouds.

--------------------------------------------------------------------------------
c57ed0d355 | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Show Gozag on % and dumps overviews properly (78291).

--------------------------------------------------------------------------------
7cbce10c7d | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Fix contam light for TAG_MAJOR_VERSION > 34.

--------------------------------------------------------------------------------
6ce1825852 | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Don't assume Gozag has active wrath.
Because Gozag doesn't have active wrath.

--------------------------------------------------------------------------------
b68f326c9d | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Don't goldify vault corpses.
Causes crashes when trying to place skeletons.

--------------------------------------------------------------------------------
db754f7bc5 | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Drop a now-unused argument to place_monster_corpse.

--------------------------------------------------------------------------------
1fff361b04 | Steve Melenchuk | 2014-05-07 18:23:28 -0600

Weight shallower Gozag shops even higher (dpeg).

--------------------------------------------------------------------------------
11bd2438c1 | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Rewrite Qazlal's 6* elemental protection messages (ChrisOelmueller).
The original version of these were written when the relevant mutation
messages were less clear.

--------------------------------------------------------------------------------
c078d7dcda | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Show the right gold aura in webtiles.
Oops.

--------------------------------------------------------------------------------
405e52f690 | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Handle invalid Gozag shop specs slightly more gracefully.
Fall back to just setting the merchant name and store type.

And give BIG ERROR MESSAGES about the shop spec being invalid, because
it should never happen.

--------------------------------------------------------------------------------
bc8662c128 | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Weight Gozag shop depths heavily towards shallower areas.
So that the player can get there sooner.

--------------------------------------------------------------------------------
2ac370ead4 | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Allow Gozag shops to place in the Dungeon.
Oops.

--------------------------------------------------------------------------------
b6966b2647 | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Don't crash when killing monsters over liquids with Gozag.

--------------------------------------------------------------------------------
0a1c0a61d6 | Chris Campbell | 2014-05-07 18:23:27 -0600

Update some references to Qazlal piety gain

--------------------------------------------------------------------------------
8d2175795c | Chris Campbell | 2014-05-07 18:23:27 -0600

Generate gold from all corpses under Gozag
Don't drop corpses in weird edge cases like monsters being accidentally
killed by other monsters.

--------------------------------------------------------------------------------
1aace79fe5 | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Draw Qazlal's Upheaval properly in tiles.

--------------------------------------------------------------------------------
2d76840678 | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Show Qazlal's temporary AC bonus highlight in webtiles.

--------------------------------------------------------------------------------
06b42404db | Steve Melenchuk | 2014-05-07 18:23:27 -0600

Don't attempt to target out-of-bounds squares with Qazlal abilities.

--------------------------------------------------------------------------------
1d07c7b828 | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Slash Gozag's porridge/blood price.
By a factor of five.

Still overpriced, but less horrendously overpriced.

--------------------------------------------------------------------------------
f7bdeece44 | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Expand most of the 16-god temple layouts to 18 gods.
I reinstated a 15-god version of one layout because its replacement
ended up becoming distinct, and left one 16-god layout alone because
it's based around fourfold symmetry (so it could accomodate 20 but not
18 properly).

--------------------------------------------------------------------------------
3cea9f3ab9 | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Fix a hiccup with Gozag shops and the sleeping ego.
Part of this is really hacky in order to get afflicted saves to load.

--------------------------------------------------------------------------------
91c0a57dfa | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Reinstate collateral Qazlal kill piety.
Oops.

--------------------------------------------------------------------------------
c68c42023e | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Let clua view.is_safe_square interact correctly with Qazlal displacement.
Fixes tab behaviour with Qazlal.

--------------------------------------------------------------------------------
2d10356caf | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Nudge Qazlal's ability page text.
Mention cloud displacement, remove text of an old ability, and mention
Elemental Force.

--------------------------------------------------------------------------------
4f42060698 | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Nudge Gozag's ability description text.
In particular, duplication only works once and isn't charged for.

--------------------------------------------------------------------------------
25e634ccea | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Adjust Qazlal cloud generation behaviour.
Since clouds are displaceable, we don't need to only place them in open
areas; instead we just don't place them next to other clouds (so that if
they place in a corridor you can still autotravel through the corridor).

Also don't place clouds on firewood to reduce spamminess.

--------------------------------------------------------------------------------
deb4de3a7a | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Allow Qazlalites to displace their own clouds.
Should address some of the residual autoexplore issues.

--------------------------------------------------------------------------------
501de5b581 | Steve Melenchuk | 2014-05-07 18:23:26 -0600

Fix Qazlal's RMsl showing the wrong colour (simm).

--------------------------------------------------------------------------------
65f990720c | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Display Qazlal's SH boost properly in webtiles.

--------------------------------------------------------------------------------
c1db373031 | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Allow Gozag's Potion Petition when Starving (Basil).

--------------------------------------------------------------------------------
91cce19e9e | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Don't crash when blasting yourself with Qazlal's Upheaval.

--------------------------------------------------------------------------------
ba3053a85b | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Make Qazlal's Upheaval more usable at low Invocations.
The damage at 27 invocations is identical to the old case, but 3d12 at 0
should be more useful than 3d3.

--------------------------------------------------------------------------------
a07b945e44 | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Spray gold instead of buggy chunks for Gozag disint kills.
The gold doesn't give the gold lust bonus, since it's very easy for it
to spawn multiple piles, and stacking bonuses like that is a bad idea.

Other possibilities: give the bonus for *one* pile; just leave the gold
where the monster was killed and give the bonus for it.

--------------------------------------------------------------------------------
a16808a0c7 | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Don't show a meaningless Gozag piety indicator on webtiles.

--------------------------------------------------------------------------------
4a95e22e7f | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Whitespace fix.
Not sure how this slipped in.

--------------------------------------------------------------------------------
29e1f3179c | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Indicate gold-costing abilities properly on ability ! screen.
Relevant for Gozag.

--------------------------------------------------------------------------------
4ef5e6108e | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Don't let BEAM_FRAG shatter potions in inventory.
Exposed by some Qazlal code.

--------------------------------------------------------------------------------
98c15d3854 | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Fix a Gozag message spacing error (MarvinPA).

--------------------------------------------------------------------------------
60c85639e6 | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Qazlal ability icons.
Hopefully somebody more competent at icon design can take a pass at
these.

--------------------------------------------------------------------------------
40be8b760a | Steve Melenchuk | 2014-05-07 18:23:25 -0600

Qazlal altar tiles (roctavian).

--------------------------------------------------------------------------------
5c1f9e5f93 | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Qazlal wrath.
Three variants:

1) throw some elementals at you, with their HD equal to your XL.

2) Temporarily create lava around you (intended to limit your movement).

3) Temporarily mutate an elemental vulnerability (rF--, rC--, rElec-, or
deformed body i.e. AC-).

More elemental terrain changes could be nice, but this suffices for now.

--------------------------------------------------------------------------------
2ab57e2052 | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Provisions for rElec-.
This will be used for god wrath.

--------------------------------------------------------------------------------
227f87c34b | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Qazlal: one-time-only elemental protection gift at 6*.
Choose from rF++, rC++, rElec, or 5 AC (compare the Elemental Staff).

Goes away permanently if you abandon Qazlal; ineffective while under
penance.

--------------------------------------------------------------------------------
17db3c18ea | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Qazlal: Elemental Adaptation.
Taking damage from an elemental attack sometimes causes you to gain a
temporary point of resistance in that element (overriding the other
temporary resistances). This includes "earth attacks", i.e. physical
damage, which give you a 3 AC boost.

Thanks again to mikee for initially suggesting this idea.

--------------------------------------------------------------------------------
bef5296d49 | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Qazlal: Disaster Area.
Effectively a wide-area Upheaval.

--------------------------------------------------------------------------------
1c445a7113 | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Qazlal: Elemental Force.
Causes clouds arounds you to coalesce into elementals, with friendliness
depending on the source of the cloud.

Thanks to dpeg for suggesting this be an active ability.

--------------------------------------------------------------------------------
6b0dd6438f | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Qazlal: Upheaval.
Smite-targeted attack; blasts a small area with magma, ice, wind, or
rubble. Magma can temporarily create lava; ice flash-freezes enemies;
wind creates storm clouds; rubble can destroy walls.

--------------------------------------------------------------------------------
cfba2b02ac | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Qazlal: Storm Shield.
Starting at * piety, you gain bonuses to SH that increase with piety;
fire/freezing/storm clouds will place near you with radius and frequency
increasing with piety. At *** and ***** you gain RMsl and DMsl
respectively.

Clouds try to place only in relatively open areas so as not to block
autoexplore; this behaviour might need some fine-tuning.

--------------------------------------------------------------------------------
39cf8eb8c7 | Steve Melenchuk | 2014-05-07 18:23:24 -0600

Qazlal: piety gain on (collateral) kills.
Hopefully a more interesting alternative to this will present itself.

--------------------------------------------------------------------------------
f624331317 | Steve Melenchuk | 2014-05-07 18:23:23 -0600

Qazlal: enums, initial descriptions.

--------------------------------------------------------------------------------
a75deefc04 | Steve Melenchuk | 2014-05-07 18:23:23 -0600

Improve messaging for Bribe Branch failure (nrook).

--------------------------------------------------------------------------------
a40780a3aa | Steve Melenchuk | 2014-05-07 18:23:23 -0600

Handling for attacking bribed creatures.
They become un-bribed, and other bribed creatures that can see them also
become un-bribed; a permabribe increment for the creature is deducted
against the branch bribe score for this action.

--------------------------------------------------------------------------------
7de9ec4048 | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Gozag ability icons.
Bribe Branch could use something better, at least.

--------------------------------------------------------------------------------
36e75c1016 | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Gozag altar tiles (roctavian).

--------------------------------------------------------------------------------
6841e2560b | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Gozag: Gold sense.
You passively detect gold on entering a level.

--------------------------------------------------------------------------------
3f3bee6cc5 | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Gozag: try to place called shops near the player.

--------------------------------------------------------------------------------
30abb90c81 | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Don't crash if a Gozag shop level vetoes.
Only unmark the shop in the overview after the level generates.

--------------------------------------------------------------------------------
a8c8bef542 | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Gozag: don't duplicate shop types in the Call Merchant list.
We want to offer the player a reasonable choice, after all.

--------------------------------------------------------------------------------
b21fe00411 | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Gozag: bias against useless items in called merchants.
It's not a 100% chance so shops that place a large number of items that
are potentially useless to the player can still generate; this might
need to be looked at further.

--------------------------------------------------------------------------------
36b3e8333a | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Some additional Gozag prayer responses (dpeg).

--------------------------------------------------------------------------------
4ee74b775d | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Gozag: Don't let bribes take effect until the player spots the monster.
Prevents abuses like clearing out the Orc:$ end entirely offscreen; also
gives the opportunity for some nice dialogue.

--------------------------------------------------------------------------------
370b73db21 | Steve Melenchuk | 2014-05-07 18:23:22 -0600

Gozag: disallow most potions from showing up twice in purchase lists.
Also refactor a lot of the purchase list generation code to avoid
duplicate code.

All in all, disallow a lot of duplication.

--------------------------------------------------------------------------------
0923030c47 | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Gozag: let benemut be represented in the potion lists.

--------------------------------------------------------------------------------
ebedec0a33 | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Gozag: don't prompt on abilities if you can't afford to use them.
It still displays the cost list, but you don't get a prompt; instead you
get a note saying you can't afford any of them.

--------------------------------------------------------------------------------
0c659ac645 | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Fix some issues with Gozag ability messaging.
Prior to this, monks got informed of the first two abilities, and nobody
else did.

This commit announces all the abilities to everyone on worship.

--------------------------------------------------------------------------------
154a4d40c9 | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Gozag: interactions with amulet of faith.
Prices are 2/3 what they would be otherwise, and removing the amulet
counts as two uses of the relevant ability for price purposes.

--------------------------------------------------------------------------------
6c4c28ead3 | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Gozag: increase ability prices with use.

--------------------------------------------------------------------------------
3ae3cdaab2 | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Gozag: monks get a 50% discount on service fee in lieu of 2* piety.

--------------------------------------------------------------------------------
02302a3779 | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Gozag wrath: Gold to stone.
On entering a level with a large amount of gold for the first time,
every pile of gold may be replaced with a single stone.

--------------------------------------------------------------------------------
f8b0735557 | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Gozag: abandon called shops on excommunication.
This needs to be communicated somehow, but only if the player has
actually used the ability; this might happen pending some changes to
track Gozag ability use.

--------------------------------------------------------------------------------
d071c1d24a | Steve Melenchuk | 2014-05-07 18:23:21 -0600

Gozag: Potion Petition: offer blood to vampires and pure carnivores.
Instead of porridge.

--------------------------------------------------------------------------------
2fbcf97363 | Steve Melenchuk | 2014-05-07 18:23:20 -0600

A few extra bits of Gozag messaging.
Mainly to avoid the problem of piety being an unthing for Gozag, but
there's a bit of a bonus here too.

--------------------------------------------------------------------------------
c3ef5ecb81 | Steve Melenchuk | 2014-05-07 18:23:20 -0600

Gozag wrath: Taxation.
Gozag takes 10% of gold you pick up under wrath.

This percentage might need tweaking.

--------------------------------------------------------------------------------
3d55e912dc | Steve Melenchuk | 2014-05-07 18:23:20 -0600

Gozag wrath: counter-bribe.
When you spot monsters, Gozag can incite them against you, granting them
one of a handful of beneficial effects.

--------------------------------------------------------------------------------
ba5a6485e5 | Steve Melenchuk | 2014-05-07 18:23:20 -0600

Gozag wrath: the Curse of Gozag.
Trying to pick up a consumable while under Gozag penance occasionally
turns the consumable to a small amount of gold - more likely with higher
value items.

--------------------------------------------------------------------------------
b9ac4c953e | Steve Melenchuk | 2014-05-07 18:23:20 -0600

Gozag: prelimiary implementation of Bribe Branch.
Spend 3000 gold for a chance of temporarily turning some of the
inhabitants of a branch good neutral, or possibly even friendly. Bribes
are only effective against newly generated monsters (i.e. on level
creation or monsters that spawn afterwards); the fund times out over
time and more quickly with the number of enemies affected, upon which
neutral enemies turn hostile again; friendly followers will continue to
follow the player subject to occasional follow-up payments.

--------------------------------------------------------------------------------
35db536519 | Steve Melenchuk | 2014-05-07 18:23:19 -0600

Don't use missile brand prefixes when asking for dbname.
This was causing issues with Gozag shops and e.g. poisoned bolts.

--------------------------------------------------------------------------------
baeb71daee | Steve Melenchuk | 2014-05-07 18:23:19 -0600

Gozag: Call Merchant.
Pay half the value of items in one of three randomly generated shops to
generate that shop on a level that can generate shops that you haven't
visited yet. This shop appears on the Overview screen with a darkened
level name so you know exactly where it appeared, and is announced (and
its location marked) when you arrive on the level so long as you are
still following Gozag at the time.

--------------------------------------------------------------------------------
8d54771d4b | Steve Melenchuk | 2014-05-07 18:23:19 -0600

Gozag: Duplication.
As a one-time ability, you can drop any non-artefact on a Gozag altar
and pray to be prompted to duplicate the item.

--------------------------------------------------------------------------------
fb2552e5fd | Steve Melenchuk | 2014-05-07 18:23:19 -0600

Gozag: Potion Petition.
Buy a set of potion effects from one of four random lists.

The set of pairs and triples could use some improvement.

Also adjusts ability selection so that Gozag's abilities are all always
available and shown on the ^ screen.

--------------------------------------------------------------------------------
3ef11c3138 | Steve Melenchuk | 2014-05-07 18:23:19 -0600

Gozag: gold lust.
Fighting near the gold piles of recently-defeated enemies boosts your
skills.

--------------------------------------------------------------------------------
9351631d84 | Steve Melenchuk | 2014-05-07 18:23:18 -0600

Gozag: shift gold to top of piles.

--------------------------------------------------------------------------------
50380c4b95 | Steve Melenchuk | 2014-05-07 18:23:18 -0600

Gozag: goldify corpses of defeated enemies.
Ally kills will also goldify corpses.

--------------------------------------------------------------------------------
8269b048b6 | Steve Melenchuk | 2014-05-07 18:23:18 -0600

Gozag: indicate the service fee on join attempts and on ^O.
The ^O columns should be recalibrated at some point, but this doesn't do
that.

--------------------------------------------------------------------------------
ffe63d874a | Steve Melenchuk | 2014-05-07 18:23:18 -0600

Gozag: charge a service fee for joining.
The base portion of the fee is 100 gold, down from 300 in the proposal;
this is based on initial feedback that the fee was too high.

--------------------------------------------------------------------------------
985d96caa0 | Steve Melenchuk | 2014-05-07 18:23:18 -0600

Gozag: enums, descriptions.
Handles some functionality for having a god without piety.

--------------------------------------------------------------------------------
d7d6c261e2 | elliptic | 2014-05-07 20:15:25 -0400

Remove a deadly Xom overflow vault (Infinite_Monkeys).
You can autoexplore into the cloud gen area and die instantly, and I'm not
sure what the point is of the vault anyway.

--------------------------------------------------------------------------------
d37599f8db | elliptic | 2014-05-07 18:17:32 -0400

Remove giant eyeballs from normal monster generation.
I left them in almost all vaults that placed them, and pan lords can still
summon them, but they don't generate normally in D/Depths/Slime/Pan/Abyss any
more.

The monster just doesn't work well as a random spawn, since it will
usually be near the edge of LoS when the player encounters it, there will
usually not be any dangerous monsters around, and the terrain will usually
be such that the player can just step a square or two away upon seeing it.
A lot has to go right for giant eyeball to be an interesting monster, and
mainly they just prey on players who don't notice that one has entered sight
for multiple turns in a row.

I moved giant eyeball spawn weight to other monsters in most cases, but it
isn't a significant weight change anywhere except Slime, where GOoE and
eyes of devastation are a bit over 50% more common now.

I also changed the giant eyeball description to make it clearer how dangerous
their gaze is.

--------------------------------------------------------------------------------
5350d327cc | Chris Campbell | 2014-05-07 21:58:37 +0100

Reduce the number of blademasters and master archers in nooodl_elf_gasket

--------------------------------------------------------------------------------
b511c52d27 | Sage | 2014-05-07 19:36:38 +0000

Remove unnecessary code.

--------------------------------------------------------------------------------
91e2ab7977 | elliptic | 2014-05-07 14:49:47 -0400

Remove gold from the score calculation.
It was insignificant after the early game and led to strange behavior for
the extremely small subset of games that cared about optimizing early game
score (gold acquirement, not purchasing from shops).

--------------------------------------------------------------------------------
3be555590b | Darshan Shaligram | 2014-05-07 14:17:21 -0400

Log CRAWL_VERSION_LONG as vlong.
Log the long version (including git revision) in logfiles and milestones for
Sequell.

--------------------------------------------------------------------------------
f9dfbfbb52 | elliptic | 2014-05-07 13:25:12 -0400

Balance cleaving order better when no walls are adjacent to the attacker.
Previously it would always attack the square directly opposite the target
first, now it targets that either first or last.

--------------------------------------------------------------------------------
167b67a7dc | elliptic | 2014-05-07 13:17:55 -0400

Remove more instances where directing a cleave at empty space is optimal.
c876910 made some progress towards this, but left situations like

o@o
oo.

where the player must attack the empty space in order to be guaranteed to hit
all the monsters.

Now attacking any direction will hit all the monsters in this situation. This
is implemented by making the cleave targetter try to go more than 3-4 squares
around in each direction if the attacker is next to at least one wall.

Walls still stop cleaving as normal, so in the situation

O@o

the player has to choose whether to hit the ogre or the five orcs, as before.

--------------------------------------------------------------------------------
0591e77993 | Chris Campbell | 2014-05-07 17:10:44 +0100

Document a missing wizmode command

--------------------------------------------------------------------------------
56ef91be33 | Chris Campbell | 2014-05-07 16:13:33 +0100

Reword a warning prompt for Slouch
"Harm" rather than "hurt" is already used for a few other similar prompts.

--------------------------------------------------------------------------------
6d285d90e1 | Chris Campbell | 2014-05-07 13:27:42 +0100

Fix spacing

--------------------------------------------------------------------------------
1566fb85ff | Shmuale Mark | 2014-05-07 02:18:20 -0400

Freely allow blinking in the Abyss.
This conditional hadn't been changed since blinking in the Abyss was
changed to cause a blink to occur. Random blinking seems like just
the chaotic thing that fits in well with the chaotic theme of the
place, and it can take the buff.

--------------------------------------------------------------------------------
925f14e1ba | reaverb | 2014-05-07 01:24:54 -0400

Remove the "life force" bit from Dith's description
This was bugging me because Dith is not an evil god. Dith likes killing
things, but so does almost every other god. The description could
probably use a bit more work, but it's better than before.

--------------------------------------------------------------------------------
2867f71d27 | reaverb | 2014-05-07 01:08:18 -0400

Don't lie with "You resist." (PleasingFungus)
Better message when paralysis fails because A) You're already paralyzed
or B) You have paralysis immunity from being paralyzed a couple turns
ago.

--------------------------------------------------------------------------------
9fc3c89b74 | reaverb | 2014-05-07 01:08:17 -0400

Remove Red Wasp chain paralysis
Before, Red Wasps specifically could paralyze players during paralysis
or the cooldown after. This was unlikely to have any significant effect
on the game. Red Wasp paralysis/slow now lasts 1 more turn to
compensate.

--------------------------------------------------------------------------------
43021054d0 | reaverb | 2014-05-07 01:08:17 -0400

Give monsters Necro skill iff they cast Necro spells (Red_Bucket)

--------------------------------------------------------------------------------
561eabc9a8 | Steve Melenchuk | 2014-05-06 22:43:46 -0600

Def out some more phoenix sightings.

--------------------------------------------------------------------------------
dd64979f50 | Steve Melenchuk | 2014-05-06 22:42:22 -0600

Don't inflict AF_FIRE/AF_COLD side effects twice (wheals).

--------------------------------------------------------------------------------
df45d3f719 | reaverb | 2014-05-06 22:16:10 -0400

Remove phoenixes
They were so annoying they were removed from holy zigs, reducing their
appearnces to just a few vaults.

--------------------------------------------------------------------------------
daa30c611e | Steve Melenchuk | 2014-05-06 20:07:57 -0600

Fix some instances of abilities failing when not useful (#8386).
Fixed: Fedhas' Reproduction (as in the Mantis issue) and Evolution.

Not fixed: Fedhas' Growth and anything that needs a target (Makhleb
destructions, breath weapons); that will require more thought.

--------------------------------------------------------------------------------
d7f17abd57 | Chris Campbell | 2014-05-07 00:36:30 +0100

Remove an unused function

--------------------------------------------------------------------------------
f6694988d3 | Chris Campbell | 2014-05-06 21:58:47 +0100

Remove the Summon Elemental spell
It was fairly fiddly and unclear in its mechanics, and elemental
summoning is now covered by the elemental evokers (and possibly the storm
god at some point in the future too)· Moved Summon Forest from the book
of the Warp to replace it in the book of Summonings, and added Dispersal
to replace it in the book of Wizardry.

--------------------------------------------------------------------------------
e292186e37 | reaverb | 2014-05-06 16:55:59 -0400

Remove a couple incorrect comments

--------------------------------------------------------------------------------
a82faf0b3a | reaverb | 2014-05-06 16:46:01 -0400

Make zot.des use !Zot:$ syntax

--------------------------------------------------------------------------------
99c94cd195 | reaverb | 2014-05-06 16:15:12 -0400

Make Prince Ribbit SIZE_MEDIUM (Red_Bucket)
for consistency with every other frog.

--------------------------------------------------------------------------------
72017cd224 | Shmuale Mark | 2014-05-06 16:09:06 -0400

Don't destroy items because of attack flavours.
In addition to the other problems with item destruction in general,
destruction on AF_FIRE/COLD heavily discouraged melee against monsters
with them and made the actual effects of the monsters less memorable.

On a side note, it seemed that item destruction in melee was actually
twice what was intended, and the other effects of AFs (e.g. slowing
draconians) are still being applied twice.

--------------------------------------------------------------------------------
02d5b61e5f | ontoclasm | 2014-05-06 15:02:21 -0500

Switch the default felid tile
The old one was hard to see in many places.

--------------------------------------------------------------------------------
3c64b03449 | reaverb | 2014-05-06 15:38:42 -0400

Remove some D:2 chaff from Lair branches
Weights replaced with MONS_NO_MONSTER except in the swamp, where the effect was 
pretty trivial.

--------------------------------------------------------------------------------
f506fcee23 | reaverb | 2014-05-06 15:25:06 -0400

Remove oozes from the Slime Pits.
They're completely irrelevant. Replaced with MONS_NO_MONSTER because
they make up a surprising portion of the monsters there.

--------------------------------------------------------------------------------
a840274186 | reaverb | 2014-05-06 14:35:11 -0400

Refactor _altar_prayer() a bit

--------------------------------------------------------------------------------
b29b535555 | Chris Campbell | 2014-05-06 14:08:29 +0100

Specify longbow-ness in descriptions of Sharnga and the storm bow

--------------------------------------------------------------------------------
0c3765a752 | Chris Campbell | 2014-05-06 14:06:44 +0100

Remove butterflies from some vaults

--------------------------------------------------------------------------------
5094c6349f | Chris Campbell | 2014-05-06 14:06:16 +0100

De-rune some doors in sprints
Most of these had no need to be runed, and were probably just converted
from secret doors. Added some lua:restrict_door() markers in the one case
where it might be reasonable (preventing the azure jellies from getting
out in sprint III Slime).

--------------------------------------------------------------------------------
aa3bbeabe4 | Chris Campbell | 2014-05-06 14:06:14 +0100

Don't let identify scrolls identify multiple items
In general there's less of a need for lots of identification now that
jewellery identifies on equip.

--------------------------------------------------------------------------------
41b37af680 | Shmuale Mark | 2014-05-06 09:03:37 -0400

Remove some accidentally left-in git merge indicators (plaidman, #8505).

--------------------------------------------------------------------------------
6a80b7c58f | Shmuale Mark | 2014-05-06 07:16:20 -0400

Fix tiles compilation (plaidman, #8504).

--------------------------------------------------------------------------------
45fdd85575 | reaverb | 2014-05-06 00:15:48 -0400

Replace a goto call with an else if
Ideally the other goto here would also be removed, but that bit of
logical structure is more tangled.

--------------------------------------------------------------------------------
ba0cf197de | Sage | 2014-05-06 03:53:33 +0000

Double death channel duration.

--------------------------------------------------------------------------------
30f0b49521 | --global | 2014-05-05 23:42:06 -0400

Use 1000 point scale rather than 10,000 scale for potion weights.
Since only 6 weights or so specified how often they appeared to the 20th
of a percent. In the interests of murdering players, all good potions
have been rounded down and their minor excess weights redistributed to
bad potions.

--------------------------------------------------------------------------------
339c82ad63 | Shmuale Mark | 2014-05-05 23:30:12 -0400

Fix a memory leak (greensnark).
This might also be a better place to put the code, anyway, even
though there's a bit of duplication.

Partially reverts 8b0589b2b84b012d14d5e95f6c54ddbcd71c88db.

--------------------------------------------------------------------------------
533d934331 | Nicholas Feinberg | 2014-05-05 22:56:02 -0400

Refactor _spellcasting_side_effects()
Committer's note: Adapted to apply to Trunk and corrected a flipped
conditional. -reaverb

--------------------------------------------------------------------------------
f043e9ac58 | elliptic | 2014-05-05 22:53:55 -0400

Encompass vault tweaks.
Removed vault sentinel and thorn hunter from hangedman_pleasuredromes; that
vault has enough craziness without stealing those two monsters (which are
exclusive to different branches).

Removed minmay_sea_of_fire, since nobody seems to like it (not even the
creator). It is a pain to explore because of all the disconnected components
and lava smoke, and it breaks autotravel unless you have permaflight or
use one of the escape hatches to go past it.

--------------------------------------------------------------------------------
87d7aae047 | Steve Melenchuk | 2014-05-05 20:52:57 -0600

Fix game startup.
Thanks Basil.

--------------------------------------------------------------------------------
29148e68da | Steve Melenchuk | 2014-05-05 20:37:56 -0600

Hacks to get Hellfire working as intended.
About half of this code is to get the attack to show the flavour as
"hellfire bolt". This could probably be redone by having the attack
class have some kind of projectile name field.

--------------------------------------------------------------------------------
320abf6e43 | Chris Campbell | 2014-05-06 03:17:16 +0100

Don't let necrophages pick up equipment either
Mainly for consistency with the rest of the n-glyph monsters, since it's
not something that is likely to be relevant often.

--------------------------------------------------------------------------------
81b8373c2d | Chris Campbell | 2014-05-06 03:12:19 +0100

Revert "Rename the bow of Krishna to the longbow of Vishnu"
Per greensnark:
<PleasingFungus> I bungled my mythological research & I'm willing to admit it

This reverts commit 8183b86013c63d1e608b77764b1699f4132bfdcb.

--------------------------------------------------------------------------------
3a14522c49 | Chris Campbell | 2014-05-06 03:12:17 +0100

Don't allow controlling teleportitis teleports

--------------------------------------------------------------------------------
919da3eea6 | Chris Campbell | 2014-05-06 03:12:16 +0100

Shorten a spellbook description

--------------------------------------------------------------------------------
c12d191144 | Sage | 2014-05-06 02:05:37 +0000

Make ghouls unable to equip weapons or armour.
That was the worst bit of Yred, and making Yred give them gear is
stepping into Beogh's future domain.

--------------------------------------------------------------------------------
8182b86013 | Nicholas Feinberg | 2014-05-05 21:27:51 -0400

Rename the bow of Krishna to the longbow of Vishnu
Bad Dungeons and Dragons are bad. mm'kay?

This weapon name was an insult to anyone with the slightest clue about
how RL Hinduism works. When it comes to gods, it's all about name-length-
vs-weight. Having two gods attached to a single bow doubles the weight,
makes referring to it clumsy (as the context suddenly matters), increases
air resistance, and all that to... _reduce_ accuracy -- as two mythological
references are less deadly than one deep one, especially if any theology is
involved. Against religion, glancing hits don't really matter, and a double
reference can only do those.

Such arguments about realism might seem like busy work to people brought up
on MMORPGs, but some of us do care.

--------------------------------------------------------------------------------
3da635bd84 | Chris Oelmueller | 2014-05-05 21:27:51 -0400

Rename "bow" to "shortbow"
For a clear distinction of "bows" the skill, and from "longbow" the weapon.

--------------------------------------------------------------------------------
332536bcd7 | Darshan Shaligram | 2014-05-05 20:44:15 -0400

On experimental branches, log explbr=branchname.
Set EXPERIMENTAL_BRANCH and log explbr to logfile and milestones on
experimental branches.

--------------------------------------------------------------------------------
86354defe9 | Neil Moore | 2014-05-05 20:01:06 -0400

Fix place: random monsters for real.
In 0.15-a0-360-gf5e0bc2 I made a monster_type variable that could
sometimes hold a -1... but then the == -1 check was being optimised
away.  I didn't see it locally because I compiled with -O0, where the
code worked as expected.

--------------------------------------------------------------------------------
b4200a85f1 | Sage | 2014-05-05 22:25:13 +0000

Increase regen of undead and nonliving monsters.
By 4x and 5x respectively, to regen rate of normal monsters. Slow regen
was mostly an annoyance to Yredites and didn't add anything good to hostile
monsters.

--------------------------------------------------------------------------------
f5d7e1195c | Shmuale Mark | 2014-05-05 17:47:55 -0400

Abstractify.

--------------------------------------------------------------------------------
8b0589b2b8 | Shmuale Mark | 2014-05-05 17:47:55 -0400

Let draconians grow up.
They will now be able to mature into whatever drac type they can
(i.e. white scorchers will still be disallowed) upon reaching the
appropriate HD. The goal is mostly to make draconian mercenaries
more attractive, since if they can survive they can become rather
strong.

--------------------------------------------------------------------------------
c329b0c705 | Neil Moore | 2014-05-05 17:39:55 -0400

Don't crash on Shadow Creatures in Zigs.
If a random monster list has a place: entry on it, RANDOM_COMPATIBLE_MONSTER
would crash when trying to look up compatibility of (monster_type)-1 .

This extends the MONS_NO_MONSTER fix in 0.15-a0-360-gf5e0bc2.

--------------------------------------------------------------------------------
e19ec05e9b | Corin Buchanan-Howland | 2014-05-05 16:29:11 -0400

Wanderer starting kit tweaks.
Improving wanderer starting kits by:
* Removing invocations starting skill
* Setting all weapons to +2.
* Improving Armour/Dodging/Stealth Good starting items.
* Giving consumables for Decent starting item options that
  previously lacked them.
* Fixing a bug that involved having multiples of a consumable
  in multiple slots.

(Committer's note: refactored consumable granting code to be cleaner.)

--------------------------------------------------------------------------------
c60bd48a68 | Shmuale Mark | 2014-05-05 12:31:03 -0400

Remove two outdated functions from Control Winds.
It previously put out forest fires, which made sense in Forest but
is mostly a rare special case now. It also gave friendlies ENCH_WIND
_AIDED, which was supposed to increase their ranged accuracy. Since
spriggan air mages aren't around fauns and satyrs anymore, there's
no need for it.

I didn't actually remove the code for the effects of ENCH_WIND_AIDED,
since I couldn't find them. Either it was never actually implemented
or I was missing something obvious.

--------------------------------------------------------------------------------
d505f06e73 | Shmuale Mark | 2014-05-05 01:05:31 -0400

Use mons_demon_tier instead of mons_base_char.

--------------------------------------------------------------------------------
5707d59006 | Shmuale Mark | 2014-05-05 00:38:18 -0400

Don't limit the number of volleys a manticore can make.
Has anyone ever noticed one running out in an actual game? Now that
they even have something else to be their defining characteristic,
it just seems weird.

--------------------------------------------------------------------------------
a1a3441246 | Shmuale Mark | 2014-05-05 00:19:40 -0400

Description update (PleasingFungus).

--------------------------------------------------------------------------------
2c9acd7881 | Shmuale Mark | 2014-05-05 00:02:00 -0400

Remove the negative melee slaying on gloves of archery.

--------------------------------------------------------------------------------
a542483345 | Shmuale Mark | 2014-05-05 00:02:00 -0400

Remove spriggan enchanters.
The monster. It didn't really exist anywhere, nor did the idea seem
to add too much to the good-sized danger that spriggans already posed.

--------------------------------------------------------------------------------
2323827026 | ontoclasm | 2014-05-04 22:49:28 -0500

Recolor some dragon armours (tabstorm)

--------------------------------------------------------------------------------
2bb6d35b58 | ontoclasm | 2014-05-04 22:00:01 -0500

Javelin tiles

--------------------------------------------------------------------------------
68d61192d8 | ontoclasm | 2014-05-04 22:00:00 -0500

Crystal plate tiles (Bloax)

--------------------------------------------------------------------------------
6a5a94f4b9 | Steve Melenchuk | 2014-05-04 18:55:10 -0600

Don't apply ranged weapon brand if not using the weapon (MarvinPA).

--------------------------------------------------------------------------------
dbbd74f5e0 | Steve Melenchuk | 2014-05-04 18:38:52 -0600

Nerf throwing (#8493).
i.e. don't consider the weapon the player is using when throwing things.

--------------------------------------------------------------------------------
f66a7a8534 | Shmuale Mark | 2014-05-04 18:27:53 -0400

Remove a no-longer needed special case for Wyrmbane (rast, qoala).
It was obsoleted in 84f1c15 and was actually causing the death effect
to trigger twice overall.

--------------------------------------------------------------------------------
c6111badf8 | Chris Campbell | 2014-05-04 15:11:30 +0100

Adjust altar placement in sprints
In particular, subvault-ify the Sprint 1 temple so that it can define altars
more easily, and make it allow most gods. Most gods now always have an altar in
every map. Ashenzari, Lugonu and Beogh are occasional exceptions (and possibly
Ashenzari doesn't really work and should be unavailable in Sprint entirely?).

--------------------------------------------------------------------------------
ab64676620 | Neil Moore | 2014-05-04 10:06:22 -0400

Correct potion colours on TAG_MAJOR_VERSION bump.

--------------------------------------------------------------------------------
153a95ed17 | Eduardo Gonzalez | 2014-05-04 03:01:04 -0400

Lost soul spectralization retains monster's god (#8487)
Lost souls also now ignore worshippers of good gods, though legal targets
would only be generated by vault definitions.

This should help spectralized death knights using pain mirror make more sense.

--------------------------------------------------------------------------------
90ae437c9b | Eduardo Gonzalez | 2014-05-04 02:59:35 -0400

Fix enchantments on hogs during Kirke death (#8446)
The enchantment list was being preserved, but not the cache of which ones
were active.  Reloading the game would succesfully reset the cache.

--------------------------------------------------------------------------------
9c81f37786 | Shmuale Mark | 2014-05-04 01:58:36 -0400

Fix a crash on hitting yourself with a dart of dispersal (Grunt).
Possibly it shouldn't let you blink either, but that's for another time.

--------------------------------------------------------------------------------
3fb529acba | Shmuale Mark | 2014-05-04 00:35:01 -0400

Don't let lava worms look like worms, either.

--------------------------------------------------------------------------------
f99988b6b9 | Steve Melenchuk | 2014-05-03 21:24:09 -0600

Fix reflection brand for ranged combat.
Oops.

--------------------------------------------------------------------------------
67ee53ac1b | Shmuale Mark | 2014-05-03 22:35:30 -0400

A more fitting colour for the plutonium sword.

--------------------------------------------------------------------------------
c6df229c84 | Shmuale Mark | 2014-05-03 22:35:30 -0400

The triumphant return of the blowgun of the Assassin.
It now has a chance to effect a stab versus a target (with the same
effects as a usual stab with a needle) even when the victim is aware.
Now that being invisible while shooting needles actually helps a bit,
the +Inv isn't quite as weird, either.

--------------------------------------------------------------------------------
6033fda4df | Chris Campbell | 2014-05-04 03:15:11 +0100

Describe monster attack flavours in their descriptions
Adds monster attacks to monster_info and displays a line above monster
spell sets for monsters with attack flavours, such as "It may attack to
cause poisoning and deal extra fire damage." Player ghosts and random
pan lords use brands instead of attack flavours and so aren't described
here (and random pan lords shouldn't be anyway).

--------------------------------------------------------------------------------
1782bbfdc9 | Steve Melenchuk | 2014-05-03 19:38:22 -0600

Changelog through 0.15-a0-402-g0f93d02.
Mainly for the major new thing that has landed.

--------------------------------------------------------------------------------
0f93d02d50 | Steve Melenchuk | 2014-05-03 19:25:42 -0600

Merge branch 'ranged_combat'
The implementation is done; from here on out it's all balance work, and
that's better done in trunk.

Release the ogre hordes!

--------------------------------------------------------------------------------
c25b449330 | Steve Melenchuk | 2014-05-03 14:14:26 -0600

Some fixes related to clumsy bashing.

--------------------------------------------------------------------------------
be1455fe03 | Steve Melenchuk | 2014-05-03 09:28:44 -0600

Don't let portalled returning projectiles return.
Oops.

--------------------------------------------------------------------------------
875a5fb0aa | Neil Moore | 2014-05-03 03:49:13 -0400

Use strict in util/unbrace.

--------------------------------------------------------------------------------
3e21e14229 | Neil Moore | 2014-05-03 03:43:08 -0400

Don't add braces by default.
It makes it hard for people to unbrace their own code without getting
lots of irrelevant changes.  Adding braces can be the default once we
have done so to trunk.

Use unbrace -a to both add and remove braces; this option may be
combined with -n.

--------------------------------------------------------------------------------
60b799e811 | Neil Moore | 2014-05-03 03:40:39 -0400

Don't embrace comments between the condition and a block.
This avoids breaking code that is formatted like:

    if (foo
        || bar)
        // comment about the last line of the condition
    {
        //...
    }

There are examples of this in mon-behv.cc (_mons_check_foe) and religion.cc
(god_likes_items).

--------------------------------------------------------------------------------
ea0369d30b | Neil Moore | 2014-05-03 03:12:50 -0400

Don't unbrace prebuilt sources.

--------------------------------------------------------------------------------
8837b8289f | Neil Moore | 2014-05-03 03:07:40 -0400

Unbrace: automatically add braces.

--------------------------------------------------------------------------------
9514a6a4f6 | Neil Moore | 2014-05-03 01:48:22 -0400

Remove an obsolete comment.
And wrap another comment to 80 characters.

--------------------------------------------------------------------------------
c0af4134ef | Neil Moore | 2014-05-03 01:41:26 -0400

Add a comment to util/unbrace.
With a regexp to match things that need braces.  Unfortunately, there are
some false positives, and we can't tell where the braces are supposed to go.

--------------------------------------------------------------------------------
57c744dcba | Neil Moore | 2014-05-03 00:51:20 -0400

Simplify.

--------------------------------------------------------------------------------
f5e0bc27c3 | Neil Moore | 2014-05-03 00:00:47 -0400

Really don't crash on "nothing" in random monster list.
And preserve the intended "don't spawn anything this time" behaviour.
The previous commit didn't work anyway because it checked the wrong
variable, but were it not for that it would have caused "nothings" to
be rerolled.

--------------------------------------------------------------------------------
c01f284185 | Steve Melenchuk | 2014-05-02 21:35:07 -0600

Don't crash when resolving MONS_NO_MONSTER from vault lists.
Relevant for Shadow Creatures in pitsprint, etc.

--------------------------------------------------------------------------------
3c293e3e1c | reaver | 2014-05-02 23:13:43 -0400

Remove another goto (dungeon.cc)
Note that checking "spec" is not a rune has been moved much farther up
in the function. This can be done because "spec" is not modified during
that time, and control always passed to the continue.

--------------------------------------------------------------------------------
f0ffff9976 | reaver | 2014-05-02 16:48:19 -0400

Use x_chance_in_y() in _place_uniques()
The old code had the same effect but used random2() for the
functionality.

--------------------------------------------------------------------------------
b5bcda95b3 | Neil Moore | 2014-05-02 14:57:56 -0400

Staticalise identify()

--------------------------------------------------------------------------------
82bdbcafbe | Neil Moore | 2014-05-02 14:56:40 -0400

Remove another unused argument to item scroll functions.

--------------------------------------------------------------------------------
4bbc29f47b | Shmuale Mark | 2014-05-02 13:42:47 -0400

Remove an unused argument from identify().

--------------------------------------------------------------------------------
7a836a13e1 | Shmuale Mark | 2014-05-02 10:08:50 -0400

Mark corpses as throwable with Corpse Rot memorised (MiraclePrism).

--------------------------------------------------------------------------------
3e5c9f9a37 | Shmuale Mark | 2014-05-02 10:00:27 -0400

Remove two unused object_selectors.

--------------------------------------------------------------------------------
917d60b990 | Shmuale Mark | 2014-05-02 10:00:27 -0400

Slightly improve a vampire message.

--------------------------------------------------------------------------------
173670c088 | reaver | 2014-05-01 23:44:33 -0400

Make blink frogs SIZE_MEDIUM
for consistency with giant frogs and spiny frogs.

--------------------------------------------------------------------------------
bf76723ced | Steve Melenchuk | 2014-05-01 21:34:04 -0600

Fix returning (78291).

--------------------------------------------------------------------------------
0a3c040dc5 | reaver | 2014-05-01 23:09:10 -0400

Remove a referance to fountain quaffing (#8486, Skrybe)

--------------------------------------------------------------------------------
7504f3367f | Steve Melenchuk | 2014-05-01 21:03:13 -0600

Only print ranged attack wounds if the attack connects.

--------------------------------------------------------------------------------
e859c61e75 | Steve Melenchuk | 2014-05-01 20:52:06 -0600

Fix ranged fsim damage values.

--------------------------------------------------------------------------------
718fc277b9 | Steve Melenchuk | 2014-05-01 20:52:06 -0600

Adjust scaling of throwing damage with throwing skill.
Namely, weapons smaller than large rocks have their bonus nerfed.

No darting Elf:3 to death.

--------------------------------------------------------------------------------
c74132583f | Steve Melenchuk | 2014-05-01 13:58:16 -0600

More fixes for throwing.
In particular, give the damage bonus for skill that was supposed to
happen with the rewrite.

--------------------------------------------------------------------------------
15114c2b39 | Steve Melenchuk | 2014-05-01 13:58:15 -0600

Fix some more weapon checks for throwing purposes.
Wielding a weapon should not influence throwing at all.

--------------------------------------------------------------------------------
6108e0d185 | Steve Melenchuk | 2014-05-01 13:58:15 -0600

Use ranged_attack directly in fsim.

--------------------------------------------------------------------------------
b4299b7061 | Steve Melenchuk | 2014-05-01 13:28:39 -0600

Don't count Finesse twice for ranged attacks.
It's already calculated in attack_delay.

--------------------------------------------------------------------------------
1a861e913f | Steve Melenchuk | 2014-05-01 12:19:44 -0600

Fix some invalid assumptions regarding throwing attacks.
Namely, it was using unarmed combat skill for to-hit calculations, and
even then only if you weren't wielding anything.

--------------------------------------------------------------------------------
7fa0871e93 | Steve Melenchuk | 2014-05-01 11:56:20 -0600

Remove the special-casing for launcher min delay.
This impacts blowguns, whose mindelay goes to 5 (was 7), slings to 5
(was 7), bows to 5 (was 6).

--------------------------------------------------------------------------------
3b46fe60f2 | Steve Melenchuk | 2014-05-01 11:46:16 -0600

De-special-case throwing stone damage.
...by setting sling base damage to 2 and reducing the projectile damages
by 2 each.

With the new code this should be essentially identical to the current
behaviour, but a lot of the damage values might end up changing anyway.

--------------------------------------------------------------------------------
fef1ba5491 | Florian Diebold | 2014-05-01 15:56:18 +0200

Increase hardcoded message window height in Webtiles to 6.
This coincides with the actual client-side height and still fits into
24 lines.  Of course, this still needs a more permanent solution.

--------------------------------------------------------------------------------
be87aab2ab | Chris Campbell | 2014-05-01 13:43:11 +0100

Update/remove some unique speech lines
Remove some obsolete Donald lines and some other over-the-top lines.

--------------------------------------------------------------------------------
5cb63f655e | Shmuale Mark | 2014-05-01 06:34:48 -0400

Allow scroll of brand weapon to rebrand blessed weapons (MarvinPA).
It converts them back to the base type as well. This is possibly
problematic if a worshipper of a good god reads it on the weapon
and suddenly ends up with a weapon they aren't allowed to use, but
it's already possible to screw yourself over with the scroll already.

--------------------------------------------------------------------------------
2115fb4cc8 | Shmuale Mark | 2014-05-01 05:58:59 -0400

Don't claim that blessed weapons are rebrandable (Kvaak).

--------------------------------------------------------------------------------
ce5df928e9 | Chris Campbell | 2014-05-01 10:25:58 +0100

Adjust and remove some speech lines
Remove some now-unused speech (stabbing/traps ghosts, Francis), some
obsolete references and some over-the-top and otherwise questionable
speech lines.

--------------------------------------------------------------------------------
48c22b3bf1 | Chris Campbell | 2014-05-01 10:25:56 +0100

Adjust some speech database entries for glyph changes

--------------------------------------------------------------------------------
68201ab119 | Chris Campbell | 2014-05-01 10:25:55 +0100

Improve some god welcome lines
Mention exit the Abyss more explictly for Lugonu, in particular. The gate
will often be immediately visible so doesn't really need to be mentioned
explicitly.

--------------------------------------------------------------------------------
0efd2300fd | Chris Campbell | 2014-05-01 10:25:54 +0100

Give sewers and ossuaries the same portal timer as most other portal vaults

--------------------------------------------------------------------------------
e177b76e76 | Chris Campbell | 2014-05-01 10:25:52 +0100

Don't place water or lava monsters on the outside of layout_cross
The water/lava version of the layout is still somewhat problematic for
swimming/permaflying races who will end up autoexploring the whole thing.

--------------------------------------------------------------------------------
d3d8f3fc47 | Chris Campbell | 2014-05-01 10:25:50 +0100

Give the player credit for inner flame kills from ?immolation

--------------------------------------------------------------------------------
b2f60b4e04 | Chris Campbell | 2014-05-01 10:25:49 +0100

Ignore bramble/pillar of salt/block of ice timeout messages by default

--------------------------------------------------------------------------------
c876910be4 | Chris Campbell | 2014-05-01 10:25:47 +0100

Make cleave hit 8 squares instead of 7
Hitting 7 squares results in occasional awkwardness where attacking
empty space is the best way to target enemies, and the difference between
7 and 8 isn't a significant factor in cleaving's balance.

--------------------------------------------------------------------------------
efc925526d | reaver | 2014-04-30 18:22:08 -0400

Delete an unused bool argument from _exit_stair_message()

--------------------------------------------------------------------------------
04a2ae65d4 | Steve Melenchuk | 2014-04-30 14:07:16 -0600

Don't let storm clouds leave rain.

--------------------------------------------------------------------------------
32f68ea1a1 | Steve Melenchuk | 2014-04-30 14:05:53 -0600

Use spotty connector for Swamp vaults with a slight tweak.
Namely, in Swamp, some of the floor tiles are shallow water (1/3).

--------------------------------------------------------------------------------
c90e9a45bd | Steve Melenchuk | 2014-04-30 13:59:01 -0600

Treat trees as walls for connecting Swamp vault exits (#8338).
This can produce single tile corridors which look really ugly, but at
least the vault can connect.

--------------------------------------------------------------------------------
151f43d79c | Steve Melenchuk | 2014-04-30 13:17:12 -0600

Remove some residual item race references (#8480).

--------------------------------------------------------------------------------
7638e30f04 | reaver | 2014-04-30 14:38:39 -0400

Move  myself to the dev team list in CREDITS.txt
Since I have commit access now and nobody else has done it.

--------------------------------------------------------------------------------
edd272771a | Steve Melenchuk | 2014-04-30 11:46:56 -0600

Poke a bunch of overflow altar vaults.
I started looking at this because I realised many didn't have exits, and
then noticed that a lot of them should be tagged transparent when they
weren't, and things went from there.

Long story short, a lot of previously largely unplaceable overflow vaults
should now be more placeable.

--------------------------------------------------------------------------------
c276f1587c | Chris Campbell | 2014-04-30 18:09:07 +0100

Update default init.txt for item_stack_summary_minimum change

--------------------------------------------------------------------------------
597f1f92f5 | Chris Campbell | 2014-04-30 18:09:06 +0100

Improve some options_guide wording

--------------------------------------------------------------------------------
6f56ff5307 | Shmuale Mark | 2014-04-30 11:46:54 -0400

Remove a few more references (|amethyst).

--------------------------------------------------------------------------------
3c5714f61b | Shmuale Mark | 2014-04-30 11:39:20 -0400

Remove references to sustenance/hunger rings (geekosaur, #8479).

--------------------------------------------------------------------------------
7b02ddbe62 | Shmuale Mark | 2014-04-30 03:21:11 -0400

Always make amulet of inaccuracy cursed.

--------------------------------------------------------------------------------
18821a0dd6 | Chris Oelmueller | 2014-04-30 03:21:10 -0400

Rework stealth adjective scale to steps of 50
(And one of 100 at the end.)

I'm not yet fully convinced linearity is better than the old progression.
This does however look not too intrusive, and might enable presentation in form
of a meaningful stealth bar at some point.
Rings/artefacts of stealth (new scale) always affect the stealth description
until 400 stealth. Some other sources could be tweaked a bit to fit in as well.

Then of course there are smaller factors like racial stealth (as for MR).
Together with certain multipliers like from being in water, backlit, encumbered
and so on, changing them to fit into one dead-set scale is neither desired nor
in scope of these changes.

--------------------------------------------------------------------------------
f3c7235ddb | Chris Oelmueller | 2014-04-30 03:21:01 -0400

Replace rings of hunger/sustenance with loudness/stealth in-place
Those give one level of -50/+50 stealth each. Stealth is priced at old
sustenance level (but often comes cursed), loudness around 50-60 after curses.

--------------------------------------------------------------------------------
27581562e7 | Chris Oelmueller | 2014-04-30 02:54:56 -0400

Remove ARTP_METABOLISM
Convert existing ones into a negative level of ARTP_STEALTH, or in the case of
Black Knight's barding, to rPois (mostly for flavor reasons).

--------------------------------------------------------------------------------
ce54174c6d | Chris Oelmueller | 2014-04-30 02:54:56 -0400

Account for ARTP_STEALTH when pricing artefacts

--------------------------------------------------------------------------------
dcd822ac70 | Chris Oelmueller | 2014-04-30 02:54:56 -0400

Rework ARTP_STEALTH akin to MR rescale
Now Stlth+ stands for a discrete step of +50 stealth, Stlth- for -50 and so on.

--------------------------------------------------------------------------------
6c4d5f362d | Chris Oelmueller | 2014-04-30 02:54:56 -0400

Rename 'Stlth' status and mutation info to 'Stealth'
Those are not sufficiently pressed for space to explain the obfuscation.

--------------------------------------------------------------------------------
d01b5af2a3 | Shmuale Mark | 2014-04-30 02:37:04 -0400

Lower item_stack_summary_minimum because of min_msg_height change (#8454).
See the Mantis issue for details on the problems it was causing.

--------------------------------------------------------------------------------
44d9bdd35b | Nicholas Feinberg | 2014-04-30 05:31:33 +0100

Improve various unrand descriptions
[MarvinPA: further minor edits to staff of Olgreb, skin of Zhor, shield
of Resistance, armour of the Dragon King.]

--------------------------------------------------------------------------------
e2959ee446 | Chris Campbell | 2014-04-30 05:31:30 +0100

Update some branch native monster lists
Make salamanders native in Snake, eyeballs in Slime, humans in Vaults.

--------------------------------------------------------------------------------
54374eb4aa | Shmuale Mark | 2014-04-29 22:51:17 -0400

Deberserk hell hounds and red draconians (crate, ChrisOelmueller).
Since berserk 'h's and 'd's are actually kind of common, putting
a monster on red on the glyphs is a bad idea. It's unfortunate that
red draconians can't be red but there isn't much choice.

--------------------------------------------------------------------------------
6ead0e2426 | bones | 2014-04-29 22:40:07 -0400

Add the ability to sort by dbname to sort_menus.

--------------------------------------------------------------------------------
7eda9e3a0c | Chris Campbell | 2014-04-30 03:06:50 +0100

Display Leda's and Disjunction haloes over TSO halo
They're more useful information (although Leda's is hard to see on
top of TSO halo). Also only recolour floor with Leda's, not other features
like stairs.

--------------------------------------------------------------------------------
fe3d96ea9e | Chris Campbell | 2014-04-30 02:28:07 +0100

Update Warp Weapon and Excruciating Wounds descriptions (#8469)

--------------------------------------------------------------------------------
d2a92d9eb8 | Eduardo Gonzalez | 2014-04-30 02:28:06 +0100

Disallow summoned and friendly orcs from preaching Beogh to orc players (#8464)

--------------------------------------------------------------------------------
4630a0305f | Eduardo Gonzalez | 2014-04-30 02:28:05 +0100

Mark potions that are preferred food as food for prefix & stash search (#8461)
This affects porridge for most races and blood for vampires, though since
everything in the actual food class is usually irrelevant as "food" for
vampires, they're probably better off searching for blood anyways.

Expose is_preferred_food to lua for the stash annotation code.

--------------------------------------------------------------------------------
65a72bc1f8 | Shmuale Mark | 2014-04-29 20:02:51 -0400

Prevent a potential error (|amethyst).

--------------------------------------------------------------------------------
c4fcbbb638 | Shmuale Mark | 2014-04-29 19:53:13 -0400

Add polar bears in grizzlies' place to Lair (|amethyst).

--------------------------------------------------------------------------------
854206a97f | Shmuale Mark | 2014-04-29 17:38:24 -0400

Remove grizzly bears.
They were almost identical to polar bears, which at least had the
distinguishing (from black bears) to swim and be at home in an ice
cave.

--------------------------------------------------------------------------------
5a3139e65b | Shmuale Mark | 2014-04-29 14:49:33 -0400

Update to 0.14_monster_glyphs.

--------------------------------------------------------------------------------
456473c6ba | Steve Melenchuk | 2014-04-29 12:29:08 -0600

Don't place runed doors by accident in a vault (78291).

--------------------------------------------------------------------------------
247d327136 | Shmuale Mark | 2014-04-29 11:41:26 -0400

Make some lava monsters not the colour of lava (ontoclasm).
Also de-berserk some monsters.

--------------------------------------------------------------------------------
26c693a480 | Shmuale Mark | 2014-04-29 11:40:40 -0400

Remove flaming corpses.
Sticky flame damage is hardly noticeable in D, and basically
non-existent in Crypt -- the only thing an average game noticed
about these monsters was that they liked to destroy scrolls. It was
nice for some vaults to have an undead counterpart to simulacra but
there are plenty of other evil fiery monsters.

--------------------------------------------------------------------------------
5debce609e | Steve Melenchuk | 2014-04-29 09:15:28 -0600

Make needle poisoning consistent with ! display (78291).
That is, if the needle is dealing out poison (causing !s to display),
make sure the enemy is actually poisoned.

--------------------------------------------------------------------------------
7fc395a109 | Steve Melenchuk | 2014-04-29 07:59:36 -0600

Add a missing MONS: to a Tomb subvault (nicolae).

--------------------------------------------------------------------------------
5dfa2e1e9a | Chris Campbell | 2014-04-29 11:07:15 +0100

Don't give piety under evil gods for killing created-friendly/neutral monsters
Such as Pikel's slaves, friendly mercenaries and similar things that
give no experience.

--------------------------------------------------------------------------------
159a03f207 | Neil Moore | 2014-04-29 02:14:06 -0400

Avoid some potential disconnections in wad_lake_hut.

--------------------------------------------------------------------------------
05377e05db | Steve Melenchuk | 2014-04-28 22:31:55 -0600

Make ranged attacks play a bit nicer with fsim.
Report accuracy correctly; don't let some effects like blood splatter
and distortion trigger (as with old melee attacks).

--------------------------------------------------------------------------------
b1d562d986 | Shmuale Mark | 2014-04-29 00:18:58 -0400

Make the AC display update upon wielding an unrand with ARTP_AC (johnny0, 
#8465).
I removed the message since randarts with +/-/AC/EV ARTPs aren't
possible, and accidentally removed the check that tells the screen
to re-generate the AC/EV values.

--------------------------------------------------------------------------------
2659849dd6 | Shmuale Mark | 2014-04-29 00:18:57 -0400

Make fire bats red (MarvinPA).

--------------------------------------------------------------------------------
c13ae0cb0f | Steve Melenchuk | 2014-04-28 20:20:09 -0600

Allow everywhere to place non-extra full vaults again.
Broken by e4f847d.

--------------------------------------------------------------------------------
cbfee4c3e0 | Chris Campbell | 2014-04-29 02:28:43 +0100

Merge U and W monster glyphs into W
Making it a glyph for incorporeal undead generally. Only requires a few
colour changes:
Wraith: white -> lightgrey
Shadow wraith: magenta -> lightmagenta
Eidolon: lightgrey -> brown

--------------------------------------------------------------------------------
4ff5c5a7f8 | drachereborn | 2014-04-29 02:28:41 +0100

Improved messages when Sif or Kiku prevents miscasts. Also improved 
descriptions of Sif and Kiku miscast protection.
Sif prevents both the miscast and associated contam ("effects of miscast")
Kiku prevents Necro miscasts and also death curses

--------------------------------------------------------------------------------
0c658ddcb8 | nagdon | 2014-04-29 02:28:40 +0100

Always announce uniques by name when they come into view.
This commit disallows bundling together uniques with other monsters
of the same genus. (So "A goblin, 11 orcs, an ogre, and Nergalle come into
view." is printed instead of "A goblin, 12 orcs and an ogre come into view.")

Suggested at https://crawl.develz.org/tavern/viewtopic.php?f=8&t=11664.

--------------------------------------------------------------------------------
339348ec42 | ontoclasm | 2014-04-28 20:09:32 -0500

Shield tiles (roctavian, 8460)

--------------------------------------------------------------------------------
560c00287a | Shmuale Mark | 2014-04-28 20:49:52 -0400

Always use the better umbral boost (plaidman, #8463).

--------------------------------------------------------------------------------
e737ae1c93 | Chris Campbell | 2014-04-29 01:27:02 +0100

Improve some more trove messaging

--------------------------------------------------------------------------------
93af19e34b | blackcustard | 2014-04-29 00:44:39 +0100

Make note of the items paid/shown to enter troves.

--------------------------------------------------------------------------------
1947cbca6c | blackcustard | 2014-04-29 00:41:12 +0100

Forbid troves from accepting equipped items.
Also clean up the code a bit and fix some wizmode only glitchiness.

--------------------------------------------------------------------------------
f0d8313a57 | Steve Melenchuk | 2014-04-28 17:40:44 -0600

Handle action counts and exercise properly for ranged (78291).

--------------------------------------------------------------------------------
730cb5fe10 | Steve Melenchuk | 2014-04-28 14:13:10 -0600

Don't crash on throwing flame/frost projectiles without a weapon.

--------------------------------------------------------------------------------
f1bfef0f00 | Shmuale Mark | 2014-04-28 13:25:56 -0400

Fix a problem with randart jewellery (N78291).
The base type showed up as revealed always, which was not the intended
behavior.

--------------------------------------------------------------------------------
89a5294bf5 | Shmuale Mark | 2014-04-28 13:07:45 -0400

Remove some equip/unequip messages.
The ones that tell the player that they can evoke a new ability
don't seem all that useful, given the fairly clear inscription
system on artefacts. The remaining jewellery items that give a
message on equip are mostly ones that are potentially dangerous,
such as ring of fire/ice and amulet of stasis.

--------------------------------------------------------------------------------
93205b7cdb | Steve Melenchuk | 2014-04-28 09:05:56 -0600

Changelong for 0.14.1.
Hooray.

(cherry picked from commit 7225c62f196562aaa461aaba55639fb25dfc82fc)

Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
ad4c9ec8c8 | gammafunk | 2014-04-28 06:49:39 -0500

Redesign of the water palace Depths vault
The previous version began as a forest end vault that I made quickly
when there was a need for these after the introduction of that
branch. This version is a complete redesign from scratch that keeps
the theme of a temple partially submerged with water. It uses depths
beast and humanoid monsters as well as a few of the higher-tier
monsters from lair branches where appropriate. This vault places the
enchantress and will not place if she has already generated.

I've removed the old version from arcadia.des, since this is a far
more interesting vault covering the same theme. The new version lives
in large_themed.des, since it's a complete redesign, and has default
weighting, but still has the Depths:2-,!Depths:$ range.

--------------------------------------------------------------------------------
19d9593722 | Steve Melenchuk | 2014-04-28 00:19:05 -0600

Print monster wounds for ranged attacks.

--------------------------------------------------------------------------------
e5cfea0afb | Steve Melenchuk | 2014-04-27 23:14:59 -0600

Credit attacker, not defender, for attack kills.
Oops.

--------------------------------------------------------------------------------
ee1fdc58e5 | Neil Moore | 2014-04-27 23:10:59 -0600

Don't remind online trunk players about the tournament.
This reverts commit cf478558721339450fdde19ecc78e95896f0ff91.

(cherry picked from commit 5d815eb013a8c19b80f473f628ef6a97ff1360d4)

--------------------------------------------------------------------------------
5d815eb013 | Neil Moore | 2014-04-27 23:59:54 -0400

Don't remind online trunk players about the tournament.
This reverts commit cf478558721339450fdde19ecc78e95896f0ff91.

--------------------------------------------------------------------------------
8eecfe207c | Chris Campbell | 2014-04-28 04:25:43 +0100

Change an imp flavour line (simmarine)
Since they don't really breathe steam.

--------------------------------------------------------------------------------
0ae76fc080 | Shmuale Mark | 2014-04-27 21:18:25 -0400

Remove brand-affixing from scroll of brand weapon.
The only way to get an affixable brand now anyway was Blade card,
and keeping the capability around for just that seems useless.

--------------------------------------------------------------------------------
784817a9d4 | Shmuale Mark | 2014-04-27 21:15:46 -0400

Don't do a distortion unwield effect on rebrand.
Using a rare and valuable consumable seems like a fine loop-hole
for getting around the difficulty of unwielding it.

--------------------------------------------------------------------------------
1c1d20b53d | Shmuale Mark | 2014-04-27 21:15:46 -0400

Remove the book of War Chants.
With the weapon branding spells gone it was in a pretty sad shape.

--------------------------------------------------------------------------------
641c57ee1a | Shmuale Mark | 2014-04-27 21:15:46 -0400

Remove the low-level weapon branding spells.
For the most part they were optimal to cast before every fight,
making them hugely annoying but too useful to simply ignore. They
also encouraged being casted before reading an unidentified scroll,
just in case it might be brand weapon. Warp Weapon and Excruciating
Wounds obviously do not have the latter problem, and since the spells
have noticeable drawbacks they do not have the second problem as
much either.

The books of Ice, Fire, and Necromancy don't get replacements; they
are pretty good anyway. Alchemy and Envenomations get Alistair's.

--------------------------------------------------------------------------------
2d7101b0ab | Chris Campbell | 2014-04-28 01:17:16 +0100

Make Mennas lightcyan
ETC_HOLY overlaps with both other A monsters (even if they are fairly
unlikely to show up together), and generally the glyph is more than
sparse enough for elemental colouring to be unnecessary.

--------------------------------------------------------------------------------
dc6d6fabca | Chris Campbell | 2014-04-28 01:17:15 +0100

Remove silver stars
Both of their spells work by dealing ridiculous amounts of damage to a few,
vulnerable species and little or no damage otherwise, which does not make for
an interesting monster.

--------------------------------------------------------------------------------
0535dfc463 | Chris Campbell | 2014-04-28 01:17:13 +0100

Don't veto holy pan while worshipping a good god

--------------------------------------------------------------------------------
2f8e1e877b | Chris Campbell | 2014-04-28 01:17:12 +0100

Don't turn holies neutral when worshipping a good god
It's almost never relevant (with Mennas being possibly the only edge
case), and has a number of negative effects: dungeon generation depending
on the player's god in Pan, strange interactions with getting additional
chances to convert on piety breakpoints, and generally a lot of code for
a pretty questionable gain. Flavour-wise it seems perfectly reasonable
that the holies in the dungeon just all see you as insufficiently pious,
or some kind of a heretic (as is the case for non-holy religious
monsters).

Kept some of the holy speech for the case where an Elyvilon worshipper
pacifies a holy.

--------------------------------------------------------------------------------
6cdc4f9c37 | Shmuale Mark | 2014-04-27 19:54:46 -0400

Remove the Enchantress's very high weighting.
The tournament demonstrated that it made her overly common and she
still is slightly more common than the default WEIGHT might suggest
(since she can appear in the old Forest ends).

--------------------------------------------------------------------------------
8ed3cfbb11 | Steve Melenchuk | 2014-04-27 17:11:35 -0600

Handle gloves of archery properly with new ranged combat.

--------------------------------------------------------------------------------
ec6fe07510 | Steve Melenchuk | 2014-04-27 17:02:34 -0600

Disallow wearing shields with two-handed launchers.
This renders it unnecessary to try and preserve the impact of shields on
launcher delay.

A fair bit of now-dead code goes away as a result as well.

--------------------------------------------------------------------------------
0ae9f4fba6 | Steve Melenchuk | 2014-04-27 17:02:33 -0600

Let stabbing with blowgun attacks extend effect duration (elliptic).
Poisoned needles deal more poison damage; curare has its effect
amplified; duration-based needles have their durations extended (except
frenzy, possibly for now).

The needle of paralysis hits the stone giant in a vulnerable spot!!!!

This code might have some side effects based on the dur paramater of
enchant_monster_with_flavour being meaningful for the duration-base
needle enchantment types; if so, that'll need fixing.

--------------------------------------------------------------------------------
a2702ba0a5 | Steve Melenchuk | 2014-04-27 17:02:33 -0600

Disable ranged stabbing.
There are a couple of ideas for what could use this, but for now nothing
should do so.

--------------------------------------------------------------------------------
cac142e7fc | Steve Melenchuk | 2014-04-27 17:02:33 -0600

Unnerf deep elf master archers.
0f74bc2 removed their AT_SHOOT which was supposed to provide them with
good ranged damage; this sets their current attack damage back to what
it was before then.

--------------------------------------------------------------------------------
af65ebd5ff | Steve Melenchuk | 2014-04-27 17:02:33 -0600

Give M_ARCHER monsters their acc/dam bonuses back.
Sort of similar to how M_FIGHTER gets a melee accuracy bonus, I think
this has a place here.

The numbers are a bit complicated; the old code gave an ammoHitBonus of
random2avg(HD * 4 / 3, 2) to the beam hit which is later added to the
damage bonus. Since the randomisation here works differently the 4/3 is
straight-up added to the to_hit and randomised when added to the damage.

--------------------------------------------------------------------------------
a0b9eea056 | Steve Melenchuk | 2014-04-27 17:02:33 -0600

Make throwing nets do something on hit again.

--------------------------------------------------------------------------------
51a3c3daa5 | Steve Melenchuk | 2014-04-27 17:02:33 -0600

Ranged attack brands!
Launchers use the equivalent melee brand effects if the missile isn't an
elemental brand (or the attacker is Nessos).

Missiles have their own set of effects; flame, frost, and poison use
effects basically identical to weapon brands, and everything else has
its old effect back.

The lajatang of Order works again. Hooray!

--------------------------------------------------------------------------------
fde016144d | Steve Melenchuk | 2014-04-27 17:02:33 -0600

Ranged weapon delay.
Moves the delay calculations into player and monster respectively so
that it can properly be done at the start of the ranged attack; it
doesn't make sense to have them in attack or ranged_attack.

--------------------------------------------------------------------------------
ec5b00754b | Steve Melenchuk | 2014-04-27 17:02:32 -0600

Basic ranged attack functionality.
Moves a lot of code from melee_attack to attack to be shared with ranged
weapons.

Handles the entire basic attack process - checks to-hit, calculates
damage, prints messages as necessary.

TODO: attack delay, brands.

--------------------------------------------------------------------------------
dcc5a8e748 | Steve Melenchuk | 2014-04-27 17:02:32 -0600

Hook up ranged_attack to the beam code.

--------------------------------------------------------------------------------
dc91ade024 | Steve Melenchuk | 2014-04-27 17:02:32 -0600

A skeleton ranged_attack class, derived from attack.
TODO: tie this up to the beam code; move shared code between melee and
ranged to plain attack; write ranged-specific code.

--------------------------------------------------------------------------------
3d16f3b060 | Steve Melenchuk | 2014-04-27 17:02:32 -0600

Gut most of the core of ranged attacks.
We're going to start fresh with something that makes sense.

Things that are left intact: explosion effects (this is better handled
as a function of the beam, since the ranged attack functionality won't
know when the bolt stops, and explosions should happen even if the
projectile doesn't hit anything); returning efffects (purely a beam
function as well).

Things that are disabled: warning for ranged weapon slowdowns and the
lajatang of Order's silver brand. At least the latter will need to be
re-enabled at some point; the former might be completely unnecessary.

--------------------------------------------------------------------------------
edf1fca867 | Steve Melenchuk | 2014-04-27 16:45:24 -0600

Make nonbase 'd'raconians 'q'raconians.
Previously they were too hard to distinguish from their base brethren.

This is an interim solution to the problem of having too many draconian
types (base and/or nonbase - take your pick); at least you can tell them
apart better now.

--------------------------------------------------------------------------------
7a2bfd24fd | Steve Melenchuk | 2014-04-27 16:37:46 -0600

Make 'q'warves 'g'warves.
This frees up the 'q' glyph...

--------------------------------------------------------------------------------
6095dc63a3 | Shmuale Mark | 2014-04-27 17:20:40 -0400

Fix some reversed 0.14_monster_glyphs.txt entries.

--------------------------------------------------------------------------------
6d60aeaaae | Chris Campbell | 2014-04-27 21:57:03 +0100

Remove piety requirements for Ashenzari identifying pluses on armour/weapons
They're now always identified if that slot is cursed, rather than having
hidden (and differing) piety breakpoints.

--------------------------------------------------------------------------------
4acf371bdd | Chris Campbell | 2014-04-27 21:57:01 +0100

Update some more item handling on god conversion
Don't identify worn amulets of faith on conversion (they'll already be
identified), rename _god_welcome_identify_gear() to
_god_welcome_handle_gear() and move warning messages for forbidden
equipment into it.

--------------------------------------------------------------------------------
f4ec9ec677 | Chris Campbell | 2014-04-27 21:56:54 +0100

Remove unused Ashenzari identification handling

--------------------------------------------------------------------------------
1dd20605e3 | Neil Moore | 2014-04-27 16:47:20 -0400

Correct spelling.

--------------------------------------------------------------------------------
cee9705fc9 | Chris Campbell | 2014-04-27 21:20:46 +0100

Fix compilation

--------------------------------------------------------------------------------
a5c5f62ab8 | Shmuale Mark | 2014-04-27 16:01:08 -0400

Auto-id jewellery on equip.
In the case of rings/amulets that identified themselves when they
had an effect, the player would want to try to put themselves in
a position where the item would identify, which was techincally
optimal but quite annoying. There were a few items that never
would identify, but on the whole it's not worth keeping around
the behavior just for them.

The ID code is pretty confusing and it's quite possible the
implementation is not ideal or there are actual bugs.

--------------------------------------------------------------------------------
9da1fa0942 | reaver | 2014-04-27 15:14:44 -0400

Turn !coinflip() to coinflip()

--------------------------------------------------------------------------------
742a44ab8c | Florian Diebold | 2014-04-27 13:35:55 +0200

Webtiles: Disable compression on Opera.
There seem to appear some errors in inflate.js which I don't really
want to debug any further.

--------------------------------------------------------------------------------
38284ead5c | Chris Campbell | 2014-04-27 03:03:52 +0100

Give a reminder to remove forbidden equipment when joining a god (#8450)
For example boots of running under Chei, the Black Knight's barding under
good gods.

--------------------------------------------------------------------------------
7c7731fea6 | Chris Campbell | 2014-04-27 03:03:51 +0100

Don't re-identify curse scrolls when worshipping Ash
Since they're already always known.

--------------------------------------------------------------------------------
1a36bb299f | Chris Campbell | 2014-04-27 03:03:49 +0100

Only give 1* of extra piety in the tutorial
Since it now uses Trog berserk, not Makhleb minor destruction.

--------------------------------------------------------------------------------
611ab6b376 | Steve Melenchuk | 2014-04-26 18:10:39 -0600

Nudge targetter_cone slightly.
In particular, tiles on the exact diagonal edge of the spread are now
included; you can now always hit at least two and usually three tiles
adjacent to you.

--------------------------------------------------------------------------------
027b8cd0fc | Steve Melenchuk | 2014-04-26 09:05:31 -0600

Mention the previous three commits in the changelog.

--------------------------------------------------------------------------------
131286079d | Steve Melenchuk | 2014-04-26 09:03:33 -0600

Some Tomb subvaults (two complete sets).
Contains a couple of experimental nudges to the enemy set to try to
increase variety.

Right now, each of the subvaults is full weight (so you have a 1/3
chance of getting the original Tomb layout for each subvaulted area);
this may change in the future depending on how well-received the entire
concept is, or as more subvaults are introduced, etc.

--------------------------------------------------------------------------------
593798c0f8 | Steve Melenchuk | 2014-04-26 09:03:33 -0600

Subvault support for Tomb.
Currently four areas are subvaulted: the main Tomb:1 chamber, the main
Tomb:2 chamber, the hallway stairs on Tomb:1, and the main chamber on
Tomb:3.

No subvaults for these yet; this is intended to stir up development
effort for them.

--------------------------------------------------------------------------------
8cb3355adb | Steve Melenchuk | 2014-04-26 09:03:33 -0600

Make Crypt three levels; place Tomb entrance only on Crypt:3 (MarvinPA).
Includes adding the entrance to Crypt:$ encompass vaults.

--------------------------------------------------------------------------------
af14339322 | Florian Diebold | 2014-04-26 12:47:03 +0200

Fix a font problem in Firefox.
Firefox doesn't seem to like "font-family: monospace, monospace".

--------------------------------------------------------------------------------
fcf2c25d3f | Florian Diebold | 2014-04-26 12:34:47 +0200

Ignore msg_min_height for Webtiles games.
Since they are recorded at 80x24, the game could otherwise fail to
start because there's not enough vertical space.

--------------------------------------------------------------------------------
c0ec6cfa46 | Florian Diebold | 2014-04-26 12:23:37 +0200

Make compilation work on Fedora 20 with the distribution lua.
In Fedora 20, lua 5.1 is in the compat-lua package and is called
lua-5.1 in pkg-config.

--------------------------------------------------------------------------------
4f3d0c6879 | Steve Melenchuk | 2014-04-25 22:58:35 -0600

Don't mirror mirrored damage (#4171).
Yredelemnul presumably doesn't want damage bouncing back and forth like
this.

--------------------------------------------------------------------------------
3045f11ac3 | Chris Campbell | 2014-04-26 04:43:57 +0100

Reduce the sizes of plain demonspawn bands

--------------------------------------------------------------------------------
f351d1dcca | Chris Campbell | 2014-04-26 04:43:56 +0100

Make salamanders rarer in the hells

--------------------------------------------------------------------------------
4089521b88 | Chris Campbell | 2014-04-26 04:43:55 +0100

Don't give plain salamanders bands
Leave the bands to the classed salamanders instead.

--------------------------------------------------------------------------------
b7e33c911d | Chris Campbell | 2014-04-26 04:43:54 +0100

Remove Animate Dead from hellwing spell set
It was incredibly rare for it to ever be relevant, except in Pan where
they now have decent odds of animating demonspawn (which are just fodder).
Possibly hellwings should be removed, or given a rethought
(translocations-themed?) spell set instead.

--------------------------------------------------------------------------------
5f15c47da3 | Chris Campbell | 2014-04-26 04:43:53 +0100

Make summoning fire elementals anger Dithmenos
Fiery monsters generally can still be summoned and won't turn hostile,
though (through Dragon's Call, Shadow Creatures, the various demon
summoning spells). Handling fiery monsters in player_angers_monster()
is a possibility but would end up affecting a large number of summoning
spells for pretty dubious benefit, and possibly the conduct isn't worth
keeping anyway.

--------------------------------------------------------------------------------
7c0ad7f946 | Steve Melenchuk | 2014-04-25 21:38:16 -0600

Re-remove an accidentally reintroduced monster entry.
This was breaking compilation with TAG_MAJOR_VERSION > 34.

--------------------------------------------------------------------------------
7dd1917b8e | Shmuale Mark | 2014-04-25 12:26:31 -0400

Add something missed in the last commit.

--------------------------------------------------------------------------------
ac418c794e | Shmuale Mark | 2014-04-25 12:14:10 -0400

Cut some message spam from str/dex/int artefact [un-]equip (ChrisOelmueller).
The comments made it clear the only reason for this was statdeath,
and 0 stats, while bad, are not bad enough to justify telling the
player when he or she has no reason to care.

--------------------------------------------------------------------------------
a6c237be8d | Chris Oelmueller | 2014-04-25 11:40:31 -0400

Clarify artefact un-/equip messages (wheals)
For some properties, these were cryptic enough to confuse players.

--------------------------------------------------------------------------------
a51e621710 | Chris Oelmueller | 2014-04-25 11:39:32 -0400

Clarify some mutation messages related to rF/rC (MiraclePrism)
While somewhat traditional, the old messages just were confusing and caused many
players to look up mutations on the A screen or resists on % just to find out
"which way around" they worked. This should happen less often now.

[Also clarify the rPois mutation, since the message overlapped with
the one for losing deterioration. --wheals]

--------------------------------------------------------------------------------
a4595f383e | Chris Oelmueller | 2014-04-25 11:27:16 -0400

Standardize some MR boosts.
Trog's Hand gets 10 more MR (to 80), and the status line is updated
to account for correct amount of pluses added.

Lich form MR loses 10 MR (to 40).

[squashed commits and combined messages --wheals.]

--------------------------------------------------------------------------------
a45ff42d41 | Shmuale Mark | 2014-04-25 11:15:35 -0400

Rejoin Sojobo with his tengu brethren.

--------------------------------------------------------------------------------
6909acac9c | Shmuale Mark | 2014-04-25 11:13:35 -0400

Remove a reference to Sludge Elves (ChrisOelmueller).

--------------------------------------------------------------------------------
6417b2beb4 | Steve Melenchuk | 2014-04-24 21:50:09 -0600

Fix a changelog typo (reaverb).

--------------------------------------------------------------------------------
37e5796158 | Steve Melenchuk | 2014-04-24 21:42:18 -0600

Changelog through 0.15-a0-235-g6cf6886.
More significant changes than this are probably coming after the
tournament ends; this should help get the ball rolling.

--------------------------------------------------------------------------------
6cf688689b | Steve Melenchuk | 2014-04-24 21:32:20 -0600

De-dwarfify death knights.
Complete with a bad tile, which could/should be replaced ASAP.

--------------------------------------------------------------------------------
216500d13d | gammafunk | 2014-04-24 21:27:48 -0600

Document the monster shape query functions

--------------------------------------------------------------------------------
fc2778f61a | Steve Melenchuk | 2014-04-24 21:27:48 -0600

Move monster shape into monster entries.
There have been a lot of changes made over the years that weren't
reflected in this function; this should help simplify maintenance of it,
and has the added bonus of keeping things up to date with the new glyph
changes.

--------------------------------------------------------------------------------
80bbe4c78d | Steve Melenchuk | 2014-04-24 21:27:38 -0600

The great 0.15 monster glyph migration (#8242).
Amongst other things:
- Immobile plants/fungi all to P;
- Tengu to Q;
- All derived undead to Z;
- Mobile plants/fungi all to f;
- Drakes to k;
- Non-unique humans to p;
- Most flying insects to y;
- Slugs to w.

Thanks to gammafunk, elliptic, MarvinPA, and others who made
contributions to this effort.

--------------------------------------------------------------------------------
a618dc043d | Neil Moore | 2014-04-24 23:22:53 -0400

Avoid a crash parsing bad keymap lines in macro files.
If we encounter a K<char>: keymap definition with an invalid character
(not '0' through '5'), we don't set the key and don't switch to keymap
mode, but we did change the keymap context.  If we were in keymap mode
already, this leads to us making an out-of-bounds access to the Keymaps
array when we later parse the A: line and try to add the macro.

Now the bad K?: line is completely ignored; this means we replace
the action of the previous map or macro, but that's better than
crashing (and happened already if the previous thing was a macro).

An example of a keymap that would cause a crash (the first line is not
necessary if another keymap immediately preceded this one):

K:x
K~:y
A:z

--------------------------------------------------------------------------------
89cd172990 | Shmuale Mark | 2014-04-24 23:06:22 -0400

Remove giant goldfish.
Given the problems with water monsters, the niche for "melee-only
general placement" is already filled out by big fish on the low end
for sewers and such and sharks on the higher end for Lair and Shoals.
The spawn weights and vault placements have been pretty evenly split
between the two.

--------------------------------------------------------------------------------
6ef07e7555 | ontoclasm | 2014-04-24 21:31:54 -0500

Dragon armour doll tiles

--------------------------------------------------------------------------------
8c2e7e4ca9 | Shmuale Mark | 2014-04-24 21:18:19 -0400

Fix Phantom Mirror being able to mirror uniques.

--------------------------------------------------------------------------------
d304b03afc | ontoclasm | 2014-04-24 18:59:35 -0500

Leather armour tiles (Bloax)

--------------------------------------------------------------------------------
2ba32220d9 | Chris Campbell | 2014-04-24 23:23:17 +0100

Adjust a slime wall message when resting is aborted

--------------------------------------------------------------------------------
a4013dfc7d | Shmuale Mark | 2014-04-24 11:00:41 -0400

Remove a special case for plague shambler corpses.
Presumably around from the time that they were rotting hulks.

--------------------------------------------------------------------------------
909e888fd0 | Shmuale Mark | 2014-04-24 11:00:40 -0400

Don't allow getting a hide from a polymorphed monster.
It was prone to spoilery (HD is not told to the player in-game),
somewhat scummy behavior.

--------------------------------------------------------------------------------
8fda2a0803 | Chris Campbell | 2014-04-24 15:43:20 +0100

Don't let teleporters be carried into the Abyss when banished (#8432)

--------------------------------------------------------------------------------
25a9a95263 | Chris Campbell | 2014-04-24 15:43:19 +0100

Fix floor colouring in a trove entry (st_)
And remove some duplicated colouring from another.

--------------------------------------------------------------------------------
b467f004b0 | Sage | 2014-04-24 04:01:16 +0000

Make hidden_temple visible from the outside.
It was spoilery and sort of annoying otherwise.

--------------------------------------------------------------------------------
7f2be80f41 | Steve Melenchuk | 2014-04-23 21:13:08 -0600

A clua hook for MB_RANGED_ATTACK (gw).

--------------------------------------------------------------------------------
1334740c37 | Shmuale Mark | 2014-04-23 23:00:15 -0400

Don't sometimes make a pandemonium lord appear next to the player on D:1.

--------------------------------------------------------------------------------
50329fcc3f | Richard Soderberg | 2014-04-23 17:56:26 -0400

Assert rather than dereference a null in check_your_resists.

--------------------------------------------------------------------------------
70ad64b82a | Shmuale Mark | 2014-04-23 14:35:20 -0400

Tell the player in the notes which wizlab they entered.

--------------------------------------------------------------------------------
8a335da746 | Shmuale Mark | 2014-04-23 11:48:29 -0400

Don't masquerade large rocks as artefacts.
They're now lightgrey instead, still not conflicting with any other
ammo type.

--------------------------------------------------------------------------------
75f1b7e5bf | Shmuale Mark | 2014-04-23 10:43:03 -0400

Correct function use (ChrisOelmueller).

--------------------------------------------------------------------------------
55ab616a87 | Shmuale Mark | 2014-04-23 10:26:32 -0400

Don't log DGL messages twice in certain instances (#8414).
This was accomplished by adding a new message channel, MSGCH_DGL_MESSAGE.

--------------------------------------------------------------------------------
32ba97dc61 | Shmuale Mark | 2014-04-23 08:21:53 -0400

Allow stabbing with rods/staves with the boots of the Assassin (jeanjacques).

--------------------------------------------------------------------------------
405fd41552 | Shmuale Mark | 2014-04-23 03:04:05 -0400

Remove thorn lotuses.
They had many of the same problems as vapours, in that you could
easily just walk away from them and heal any time. In addition to
that, they were water monsters, so they were even more limited in
where they could go.

--------------------------------------------------------------------------------
c3d5cf6d3f | Neil Moore | 2014-04-23 02:04:08 -0400

Revert "Add argument check for check_your_resists (floatingatoll, #8416)"
_print_resist_messages in fact passes the "bad" argument combination.

This reverts commit 940360b8b1c021b547c330e6c9fe1d2f112f8734.

--------------------------------------------------------------------------------
b09f9d74bf | Neil Moore | 2014-04-23 00:14:08 -0400

Remove an unused variable (floatingatoll).

--------------------------------------------------------------------------------
940360b8b1 | Neil Moore | 2014-04-23 00:14:08 -0400

Add argument check for check_your_resists (floatingatoll, #8416)

--------------------------------------------------------------------------------
7a2063a1c8 | Neil Moore | 2014-04-23 00:14:08 -0400

Avoid a theoretical divide by zero (floatingatoll, #8415)

--------------------------------------------------------------------------------
67f9d0461c | Neil Moore | 2014-04-23 00:14:08 -0400

Simplify.

--------------------------------------------------------------------------------
2c29f1d7c6 | Sage | 2014-04-23 04:08:58 +0000

Change Ozocubu's Refrigeration.
Instead of shattering potions, player-cast refrigeration prevents
potion use for 7-15 turns, with duration of repeated casts capped to
15 turns. Monster refrigeration is unaffected.

--------------------------------------------------------------------------------
577fbdc5c3 | Shmuale Mark | 2014-04-22 23:39:02 -0400

Remove some unused assignments (floatingatoll).

--------------------------------------------------------------------------------
4af7b67809 | Sage | 2014-04-23 02:19:56 +0000

Halve Yred animate remains hunger cost.
It is a frequently-used ability, but it costed half as much as Lugonu's
Banish, which is quite high.

--------------------------------------------------------------------------------
ac65f0854c | Sage | 2014-04-23 00:12:53 +0000

Fix a bug in chaos brand polymorph.

--------------------------------------------------------------------------------
087243cc91 | Neil Moore | 2014-04-22 19:29:55 -0400

Fix a potential null dereference in Beoghification (floatingatoll)

--------------------------------------------------------------------------------
b26498d200 | Richard Soderberg | 2014-04-22 19:29:55 -0400

tilepick-p.cc: fix SP_NAGA switch fallthrough

--------------------------------------------------------------------------------
2251764b31 | Richard Soderberg | 2014-04-22 19:29:54 -0400

dgn-proclayouts.cc: fix DNGN_SLIMY_WALL, DNGN_UNSEEN switch fallthroughs

--------------------------------------------------------------------------------
d408608050 | Sage | 2014-04-22 23:15:48 +0000

Prevent firewood poly from Xom and chaos brand.
To prevent silly surprises when resting in Lair as a CK or clearing
random plants with a chaos weapon.

--------------------------------------------------------------------------------
2f4809b3e0 | Steve Melenchuk | 2014-04-22 15:16:28 -0600

Add floatingatoll to CREDITS.txt.

--------------------------------------------------------------------------------
b59056a637 | Steve Melenchuk | 2014-04-22 15:15:29 -0600

Add two unintentionally missing tables to Plane Rend lists (floatingatoll).

--------------------------------------------------------------------------------
942f6c4c27 | Sage | 2014-04-22 04:59:45 +0000

Change Death's Door flavour message.

--------------------------------------------------------------------------------
844f214cef | Sage | 2014-04-22 04:08:29 +0000

Make komodo dragons bite harder, remove sickbite.
Aside from player annoyance, sickbite did next to nothing. Since that
was their primary "thing," their damage was increased from 30 to 34 to
make them a little more than slow spiny frogs. If komodos' current stats
are insufficient for a proper niche, then they could perhaps be buffed
more, have a different attack flavour or mechanic, or they could just be
removed altogether.

--------------------------------------------------------------------------------
5cf84e4825 | Sage | 2014-04-22 02:14:44 +0000

Remove a couple of pointless vaults.

--------------------------------------------------------------------------------
f781f136c3 | elliptic | 2014-04-21 11:59:14 -0400

Fix HP/MP being computed incorrectly while training skills (qw).
This happened when raising a skill past a level in a single large chunk of xp;
you.skills[sk] is not updated until later in the skill code, so you.skill()
was returning incorrect values when called via redraw_skill(). This was
especially noticeable if you trained spellcasting/evocations/invocations
all the way from 0 to 4 by killing a single monster, since you would have
several more MP than you deserved (and then it would go away the next time
MP was recomputed).

This fix involves ugly code duplication, but the alternative is untangling
the skill training code and ensuring that you.skill() is never called in the
middle of it.

--------------------------------------------------------------------------------
11e4eca714 | elliptic | 2014-04-21 11:59:13 -0400

Fix wanderers getting more MP than other backgrounds.
Apparently this was overlooked when the other background-specific MP was
removed.

--------------------------------------------------------------------------------
4e2fb7e335 | Neil Moore | 2014-04-21 10:31:10 -0400

Markup and improve a couple of recite functions.
The difference between returning 0 and -1 is kind of strange for both of
these functions and should probably be simplified.  The only real result
of the difference is the message "There's no appreciative audience"
versus "There's no-one here to preach to!".

--------------------------------------------------------------------------------
dafa99dbf3 | Chris Campbell | 2014-04-21 14:30:52 +0100

Make engulf interrupt recite and word of recall
Also move/update a recite comment.

--------------------------------------------------------------------------------
b12d416045 | Chris Campbell | 2014-04-21 13:46:34 +0100

Fix Zot traps sometimes applying a player-only effect to monsters (Nivim)
A case was removed from the switch (145100d5) but the condition hadn't
changed.

--------------------------------------------------------------------------------
b26a5055fa | Steve Melenchuk | 2014-04-20 22:22:17 -0600

Fix an inconsistency in Phantom Mirror target checking.
mons_is_conjured() wasn't checked when actually casting the spell; thus
rakshasas who could see, say, orbs of destruction or battlesphere while
also seeing another nearby target could clone the former.

--------------------------------------------------------------------------------
0bb430c4f6 | Chris Campbell | 2014-04-20 12:31:24 +0100

Allow entering tree form while in poison/meph clouds, add messaging

--------------------------------------------------------------------------------
fa5bd047d9 | elliptic | 2014-04-20 04:00:51 -0400

Fix not being able to unequip +Fly items over deep water with racial 
permaflight (qw).
This was marked as unsafe even though you would still be flying.

--------------------------------------------------------------------------------
b15286e78a | reaver | 2014-04-19 21:17:24 -0400

Fix hp color not accounting for rot (#5310).
Example: By default, if you have 20 hp and get 10 points of rot, your
current hp number would be yellow all the time even though it cannot go
any higher.

--------------------------------------------------------------------------------
be0cf88d94 | reaver | 2014-04-19 21:08:14 -0400

Fix Tengu perma-flight lvl-up message. (notcluie)
Tengu recieved their perma-flight at level 14 but did not get the
message until level 15. This is because the level species get
perma-flight is special cased in two differant places, once to actually
give the intrinsic and again to give the message.

--------------------------------------------------------------------------------
c0cdb5512b | Chris Campbell | 2014-04-19 17:41:06 +0100

Improve slimify description
It doesn't work on insubstantial undead.

--------------------------------------------------------------------------------
907752e15a | Steve Melenchuk | 2014-04-18 22:50:38 -0600

Fix a typo in a WEIGHT: line.

--------------------------------------------------------------------------------
8fbdb1ddca | Steve Melenchuk | 2014-04-18 19:28:44 -0600

Hopefully avoid a BAND_RANDOM_SINGLE crash (wheals).
I haven't been able to reproduce the crash that was mentioned to me, but
these fields being NULL probably has to do with it.

--------------------------------------------------------------------------------
0f31695dd9 | Steve Melenchuk | 2014-04-18 18:29:55 -0600

Fix compilation with TAG_MAJOR_VERSION > 34.

--------------------------------------------------------------------------------
b770d6204b | Shmuale Mark | 2014-04-18 15:10:50 -0400

Documentation fix (PleasingFungus).
Possibly the fastest-ever outdating of a comment.

--------------------------------------------------------------------------------
5c7c912003 | Shmuale Mark | 2014-04-18 10:27:59 -0400

Make treeform player-sized.
This removes the weirdnesses with lignifying over water, since
treeform can no longer survive there.

--------------------------------------------------------------------------------
23e63a04bb | Nicholas Feinberg | 2014-04-18 10:27:59 -0400

Put an end to magically floating arachno-merplayers
feat_dangerous_for_form() let players transform into any form while
over water, if it was safe for their race (e.g. merfolk, octopodes,
grey draconians). Fixed that & added a doxygen comment.

[Simplified a check further. --wheals]

--------------------------------------------------------------------------------
b130e1375b | Chris Campbell | 2014-04-18 09:19:08 +0100

Fix shambling mangroves not being neutral under Fedhas
There was no clear reason for them not to be when all other 'P' monsters
were.

--------------------------------------------------------------------------------
4f51c470f0 | Steve Melenchuk | 2014-04-17 22:58:05 -0600

Allow BAND_RANDOM_SINGLE to select from vault-defined monster lists.
Mainly so rakshasas in wizlabs can be accompanied by appropriate enemies
without crashing.

Also allows RANDOM_MOBILE_MONSTER and RANDOM_COMPATIBLE_MONSTER to be
resolved properly with vault monster lists.

--------------------------------------------------------------------------------
c8a6302a1e | Steve Melenchuk | 2014-04-17 22:58:05 -0600

Don't allow raskshasa's BAND_RANDOM_SINGLE in monsterless branches.
Like wizlabs, where it was causing crashes.

--------------------------------------------------------------------------------
aeee4a3734 | Chris Campbell | 2014-04-18 05:17:11 +0100

Fix enchant armour messaging (#8385)
It was displaying the "crumbles to dust" message twice when the scroll
was not already known, and never when it was known.

--------------------------------------------------------------------------------
bc957d9aef | Steve Melenchuk | 2014-04-17 20:24:04 -0600

Add exits to an altar minivault (wheals).

--------------------------------------------------------------------------------
e5ebe08aa6 | Shmuale Mark | 2014-04-17 13:29:49 -0400

Replace easy_open with travel_open_doors.
If set to false, travel will stop in front of doors (much like the
previous behavior if easy_open was set to false).

--------------------------------------------------------------------------------
3a74de583e | Shmuale Mark | 2014-04-17 13:29:49 -0400

Remove the level_map_title option.

--------------------------------------------------------------------------------
4e7d99abef | Shmuale Mark | 2014-04-17 13:29:49 -0400

Remove the clean_map option.
It didn't have a very clear use case and if you really want to
reproduce it, you can press ^C every so often.

Also clean up the options documentation a bit.

--------------------------------------------------------------------------------
0f93c8869a | Chris Campbell | 2014-04-16 22:13:06 +0100

Don't let Natasha revive when pacified (#8381)

--------------------------------------------------------------------------------
465e546430 | Chris Campbell | 2014-04-16 22:13:03 +0100

Improve Beogh conversion prompt (#8382)

--------------------------------------------------------------------------------
995ad2b7e9 | Chris Campbell | 2014-04-16 22:12:59 +0100

Improve some targeting failure messages

--------------------------------------------------------------------------------
f5cbe865a0 | Chris Campbell | 2014-04-16 22:12:55 +0100

Don't let Conjure Flame target trees
Since it requires empty space to cast in all other cases.

--------------------------------------------------------------------------------
641b22f909 | Chris Campbell | 2014-04-16 22:12:51 +0100

Adjust some status lights
Change flight colours (blue for normal flight, white for permaflight)
and describe tengu bonuses in the descriptions, make silence magenta
to stand out more from normal "good" buffs (with hostile silence
lightred), use lightred while petrifying, yellow for Dragon Call's
cooldown, other minor tweaks.

--------------------------------------------------------------------------------
90438ce3bd | Chris Campbell | 2014-04-16 22:12:47 +0100

Display status lights for might/brilliance/agility
Since their str/int/dex increase isn't their only (or main) effect.

--------------------------------------------------------------------------------
64f0e6ef8a | Chris Campbell | 2014-04-16 22:11:02 +0100

Replace Invisibility with Dazzling Spray in the book of Maledictions
Invisibility was the last level 6 spell in a starting book, and was
very powerful and game-changing for Enchanters - more so than was
appropriate for a starting spell, considering the strength of the rest of the
book. Dazzling Spray grants them a weaker alternate method of stabs instead.
Added Invisibility to the book of Burglary (replacing Apportation which is
which is already in 3 other books).

--------------------------------------------------------------------------------
bf04de6491 | Chris Campbell | 2014-04-16 22:06:02 +0100

Give Tengu permanent flight at XL14
Instead of 15, so that they don't get it a level later than gargoyles
and black draconians.

--------------------------------------------------------------------------------
55d50cee0f | Chris Campbell | 2014-04-16 22:06:01 +0100

Remove potions of heal wounds from a food vault

--------------------------------------------------------------------------------
9a461cdf6a | Chris Campbell | 2014-04-16 22:06:00 +0100

Increase some piety costs
For Oka Heroism, Makhleb Lesser Servant, Ely Greater Self-Healing and
Fedhas Reproduction.

--------------------------------------------------------------------------------
39028f5fbf | Chris Campbell | 2014-04-16 22:05:59 +0100

Adjust Jiyva's jelly prayer ability
Remove the "Pray" status light, slightly randomise the duration per-jelly,
and improve the messages and description.

--------------------------------------------------------------------------------
1b8d4f65eb | elliptic | 2014-04-16 14:32:28 -0400

Unban Wn -> Fe (Sequell).
You could still select FeWn if you selected Fe first.

--------------------------------------------------------------------------------
25fd16a8d8 | Steve Melenchuk | 2014-04-15 17:17:38 -0600

Sneak a monster tile into UNUSED/ (gammafunk).

--------------------------------------------------------------------------------
2613b33207 | ontoclasm | 2014-04-15 00:32:29 -0500

Ring unrand tiles

--------------------------------------------------------------------------------
0757957483 | ontoclasm | 2014-04-15 00:32:28 -0500

Minotaur tile (Team Impy, 7490)

--------------------------------------------------------------------------------
71a92d4cd5 | ontoclasm | 2014-04-15 00:32:28 -0500

Lich felid tile (Bloax, 5983)

--------------------------------------------------------------------------------
6d8a42cd9a | reaver | 2014-04-14 22:25:16 -0600

Move some main.cc functions to a new file
Specifically player_reacts, decrement_durations, and various helper
functions.

[Committer's note: updated the xcode and MSVC project files too; I don't
 guarantee that they work.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
961a08fe89 | Shmuale Mark | 2014-04-14 09:13:13 -0400

Make manticores speed 10.
There's no obvious reason for them not to be. Their ability to
open doors has been removed, as well.

--------------------------------------------------------------------------------
6a912473a1 | Tobias Rehbein | 2014-04-14 03:29:51 -0400

Remove a superfluous `break;`
[Committer's note: The rest of
   https://github.com/blabber/crawl/commit/944c04b
was made unnecessary by 0.15-a0-147-g248eb57  -nfm]

--------------------------------------------------------------------------------
a73ea9e0ad | Mike Boutin | 2014-04-14 03:20:53 -0400

Corrected commented value of show_inventory_weights.
Changed value from false to the list of (drop_pickup | true | false) to be
consistent with other options and signify that more than true/false can be
specified.

--------------------------------------------------------------------------------
82e4a9b1b9 | Neil Moore | 2014-04-14 03:18:17 -0400

Give the "powerless spirit" message again.
Now for everyone with MUT_MANA_SHIELD, not just vine stalkers.
Also, refactor out the duplicated code.

--------------------------------------------------------------------------------
248eb57cf3 | Neil Moore | 2014-04-14 03:18:12 -0400

Fix NOWIZARD compilation (#8369).
The CLua console and --no-save were partially but not completely
contained in #ifdef WIZARD.  Make them both work without WIZARD.

--------------------------------------------------------------------------------
c0ff181526 | Neil Moore | 2014-04-14 03:18:12 -0400

Adjust formatting.

--------------------------------------------------------------------------------
e9bf03de39 | Shmuale Mark | 2014-04-13 02:49:03 -0400

ID curse scrolls on game start.
Not doing so was messing with the "ID the last item of a type" code.

--------------------------------------------------------------------------------
b6ec3e0c9c | Steve Melenchuk | 2014-04-12 20:49:08 -0600

Let ghosts (but not panlords) cast Tornado.
Some discussion with the other devs suggests the previous concerns with
this (scummability, etc.) are edge cases at best; it's early enough in
trunk that I think we can get away with seeing what happens here.

--------------------------------------------------------------------------------
f9857336ce | Steve Melenchuk | 2014-04-12 20:04:00 -0600

Make gods care about negative energy clouds properly (Lasty).
The conduct number here is consistent with poisonous clouds.

--------------------------------------------------------------------------------
2b5b3f616f | Steve Melenchuk | 2014-04-12 19:56:53 -0600

Blow up a couple of instances of blown up by.
Prevents "blown up by lich" (sic) and "blasted by  (bolt of fire)".

--------------------------------------------------------------------------------
35c0a118fc | Shmuale Mark | 2014-04-12 21:23:58 -0400

Don't give Natasha an item when respawning.
It seems that the item would sometimes overwrite her old one, so
the simplest and most logical thing is to just not give her anything.

--------------------------------------------------------------------------------
f28fa31913 | Shmuale Mark | 2014-04-12 21:10:37 -0400

Remove an unused function that snuck back in with the previous commit.

--------------------------------------------------------------------------------
766729b656 | Shmuale Mark | 2014-04-12 20:51:15 -0400

Move mon death stuff from mon-stuff.cc to mon-death.cc.
Touches a lot of files since their #includes have to be edited.

(Pushing now since it shouldn't break anything and keeping it updated
is nasty.)

--------------------------------------------------------------------------------
53eb3cf6e3 | Shmuale Mark | 2014-04-12 20:42:34 -0400

Move temperature code from mon-stuff.cc to player.cc
Possibly it could be refactored as member functions of the player
class now.

--------------------------------------------------------------------------------
18a2bbc749 | ontoclasm | 2014-04-12 14:10:04 -0500

Amulet of the Air (bloax)

--------------------------------------------------------------------------------
43baa798a0 | Steve Melenchuk | 2014-04-11 21:42:03 -0600

Give several area(-ish) spells tracers.
So that they can be cast without being in LOS of the player under
appropriate circumstances; thus a check for being in LOS of the player
for these and a few other spells are gone.

The major candidate here is Symbol of Torment, which can now be used
against your allies even if you're torment-immune or you're not in LOS;
spells which previously didn't have a tracer of some sort that do now
are Chain Lightning and Chain of Chaos (for whatever good it does), and
spells that can now be cast anywhere are Ozocubu's Refrigeration,
Tornado, and Shatter.

Related is a fix for getting a more if Chain Lightning is cast anywhere
by anyone regardless of if you saw it or not (now you only get the more
if you saw the lightning arc at all).

--------------------------------------------------------------------------------
49da4dfdf6 | Steve Melenchuk | 2014-04-11 20:57:09 -0600

Don't crash VS bites with zero MP.

--------------------------------------------------------------------------------
cf47855872 | Steve Melenchuk | 2014-04-11 13:35:45 -0600

Remind online trunk players about the tournament.
See also a348a51, which is this for the last tournament.

--------------------------------------------------------------------------------
953de009a2 | Shmuale Mark | 2014-04-11 12:51:14 -0400

Remove hammers (ChrisOelmueller).
From Dance card.

--------------------------------------------------------------------------------
7bedf07842 | elliptic | 2014-04-11 11:58:33 -0400

Reduce electrocution brand damage slightly.
From 10-24 to 8-20. This damage only happens on 1/3 of attacks, so this
means 1 less damage per hit on average, or the same as (+0,-2) slaying.

--------------------------------------------------------------------------------
f407f59ebb | Shmuale Mark | 2014-04-11 11:04:59 -0400

Remove a seemingly unintentional problem with the ghost spell code (Patashu).
If spells[3] or spells[4] couldn't be found in the misc list, instead
it looked at the conjuration list. The problem was that it started
over instead of skipping the ones in the list that spells[0] and
spells[1] had taken. This probably led to less spell variety on
ghosts.

This also cleans up the code a lot and documents it.

--------------------------------------------------------------------------------
ccdbe91068 | Neil Moore | 2014-04-11 08:35:09 -0400

Don't give evil-god piety for killing no-XP monsters (#8368)
There was logic to allow giving piety even for killing friendlies, as
long as they are living or holy ("more bloodshed!"; see
0.6.0-a1-1085-g04d3f61); however, it also applied to inherently no-XP
monsters, not just those created friendly.  Change that so that
M_NO_EXP_GAIN monsters (and also phoenices, see 0.11-a0-184-gcb7349d)
do not give piety at all.

This should affect only piety gains for player-killed (or self-killed)
butterflies, program bugs, and phoenices.  All the other inherently
no-XP monsters have a holiness that makes this check irrelevant.

--------------------------------------------------------------------------------
9ca3c7bcac | Eino Keskitalo | 2014-04-11 08:46:26 +0300

Remove references to searching from the init file (message muting).

--------------------------------------------------------------------------------
9b6c994816 | Steve Melenchuk | 2014-04-10 21:22:32 -0600

Give monster warnings their own channel.
People who like setting force_mores on this can thus do so with one line
for all possible variants on the message.

--------------------------------------------------------------------------------
762d21af96 | Shmuale Mark | 2014-04-10 22:53:03 -0400

Remove some more djinn code.
Nothing that changes functionality or that makes the interface looks
too weird. In several of the instances the code would be weird
after moving to TAG_MAJOR_VERSION 35, so it seems worth it to remove
now rather than leaving it around.

--------------------------------------------------------------------------------
36b3b84791 | Chris Campbell | 2014-04-11 03:19:31 +0100

Update hints mode messages

--------------------------------------------------------------------------------
e11d844c9f | Chris Campbell | 2014-04-11 02:27:53 +0100

Remove some references to auto_list

--------------------------------------------------------------------------------
66d6093a99 | elliptic | 2014-04-10 21:08:16 -0400

Fix ranged attacks from invisible monsters not turning off autopickup.
This was most noticeable with vapours, which are thankfully no longer a
thing, but it could happen in other cases too.

--------------------------------------------------------------------------------
effbfde28b | Chris Campbell | 2014-04-10 19:04:30 +0100

Fix some types of hit messages never being used
Some unarmed attacks and forms had HIT_WEAK messages that would never be
used.

--------------------------------------------------------------------------------
fdbdc891e7 | Chris Campbell | 2014-04-10 19:04:28 +0100

Let all forms butcher
Since they all eat normally now.

--------------------------------------------------------------------------------
d95dfcdfcd | Chris Campbell | 2014-04-10 19:04:27 +0100

Remove wisp form's innate blink ability, let it read scrolls
There was no good way of indicating that it had innate blink-on-demand,
and the scroll restriction was another unnecessarily excessive one.

--------------------------------------------------------------------------------
de126d3c96 | Chris Campbell | 2014-04-10 19:04:26 +0100

Make player constriction resistance consistent with monster
Check spininess and insubstantialness, instead of just looking at forms.

--------------------------------------------------------------------------------
7448927f34 | Chris Campbell | 2014-04-10 19:04:24 +0100

Remove the unused jelly form

--------------------------------------------------------------------------------
73a0f20e8f | Chris Campbell | 2014-04-10 19:04:23 +0100

Adjust fungus form's melee attack
Don't handle it like the confusing touch spell (no special accuracy bonus
or damage penalty), don't affect unbreathing monsters. Sadly it doesn't
decrease the player's XL by one on every hit like the monster attack.
Also use XL instead of unarmed skill for melee accuracy.

--------------------------------------------------------------------------------
863e7eee2e | Chris Campbell | 2014-04-10 19:04:22 +0100

Let non-undead forms eat and drink normally
Eating limitations added nothing but complication, and potion
restrictions were excessive for badforms that already had many
significant restrictions.

--------------------------------------------------------------------------------
5872f4ebcd | elliptic | 2014-04-10 13:05:16 -0400

Don't recolour floor squares in a crypt entrance vault for no reason.
None of the other crypt entrances do this sort of thing, so it is just
confusing here.

--------------------------------------------------------------------------------
27e99ba8ff | Chris Campbell | 2014-04-10 17:47:14 +0100

Update the options guide

--------------------------------------------------------------------------------
215effc45a | Chris Campbell | 2014-04-10 17:47:12 +0100

Remove default_target and target_unshifted_dirs options
They just existed to replicate some ancient behaviour that is very unlikely
to actually be desirable now.

--------------------------------------------------------------------------------
0bb9f16e31 | Shmuale Mark | 2014-04-10 11:45:19 -0400

Don't let ranged weapons get Noisy (minmay).
Since it wouldn't do anything in practice.

--------------------------------------------------------------------------------
3b1490a911 | Chris Campbell | 2014-04-10 01:54:48 +0100

Fix fire dragons not granting extra Dith piety

--------------------------------------------------------------------------------
7f0af46a4c | ontoclasm | 2014-04-09 17:25:25 -0500

Add baconkid to the credits

--------------------------------------------------------------------------------
b05c47ca70 | gammafunk | 2014-04-09 14:12:07 -0500

Remove vapour monsters
Always confused, permanently invisible monsters that only know how to
check your electricity resistance are not very fun to fight. For
vaults, I've replaced many instances of vapours with wind drakes where
the "air" is the theme, replaced a couple instances with lightning
spires where the theme was electricity or with thorn hunters if the
theme is merely swamp. Other instances have been outright removed. For
the cloud mage wizlab, I've replaced vapours with wind drakes but have
down-weighted them relative to air elementals and insubstantial wisps.

For the foxfire card, I've moved vampire mosquitos into the position
where vapours were, put insubstantial wisps as lower-power summons
behind fireflies, since the latter got a buff some time ago, and added
killer bees in between insubstantial wisps and fireflies to keep the
number of summon types the same.

--------------------------------------------------------------------------------
01b6a50c17 | Chris Campbell | 2014-04-09 18:50:57 +0100

Fix some warnings

--------------------------------------------------------------------------------
ce8561742c | Chris Campbell | 2014-04-09 18:16:17 +0100

Changelog fixes

--------------------------------------------------------------------------------
43eea485f3 | Chris Campbell | 2014-04-09 18:13:10 +0100

Make skill training restrictions depend on carried instead of equipped items
For Shields in particular, carrying a shield is sufficient for training
purposes. Remove a number of now-unnecessary checks, including some checks
that were already obsolete for curses on wielded weapons.

--------------------------------------------------------------------------------
f14b194d65 | Chris Campbell | 2014-04-09 17:55:18 +0100

Adjust some trap disarming messages

--------------------------------------------------------------------------------
62b11cb347 | Chris Campbell | 2014-04-09 17:55:17 +0100

Remove some now-unused handling for web placement

--------------------------------------------------------------------------------
d1b32bca3e | Chris Campbell | 2014-04-09 17:55:15 +0100

Make mechanical traps not drop ammo

--------------------------------------------------------------------------------
69f77c6c57 | Steve Melenchuk | 2014-04-09 09:46:58 -0600

Touch changelog with release date.
(cherry picked from commit 319925deedf87d49bd578808b3811c47baa25a53)

Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
d85d21ed59 | blackcustard | 2014-04-09 09:44:37 -0600

Fix a corruption / terrain change crash.
When corrupting a level, the contents of certain squares are
sometimes moved to a nearby square instead of being deleted. Sometimes,
dgn_shift_feature would decide to move things onto a square that contained
an actor. This was wrong.

This bug could manifest as a crash in at least one way: using corruption
near a sealed door could displace the contents of the sealed door's square
(including the door itself) on top of the player; because sealed doors are
accompanied by a temporary terrain change marker (MAT_TERRAIN_CHANGE). The
game would crash on the next turn when _move_player detected that the
player was inside a solid object (the door).

Also, in dgn_move_entities_at, assert that the destination square does not
contain an actor.

--------------------------------------------------------------------------------
93aaa8e3e6 | blackcustard | 2014-04-09 09:44:27 -0600

Clarify _corrupt_square.
_corrupt_square is not called on stairs/branch entries/portals, so
preserve_feat has nothing to do with them. The code has not changed, the
comment was just wrong. Also rename preserve_feat to preserve_features to match
the argument in dungeon_terrain_changed.

--------------------------------------------------------------------------------
c427040718 | elliptic | 2014-04-09 04:52:14 -0400

Remove a dangerous-looking block of dead code.
I don't think this code actually could get executed, but if it did then it
would likely break something - "weapon" here is the monster's weapon, not
the player's weapon, and returning early in this function would skip various
things. This sort of functionality for auto_switch isn't documented in
options_guide.txt anyway.

--------------------------------------------------------------------------------
3c24ef6b93 | elliptic | 2014-04-09 04:52:13 -0400

Fix having a you.pet_target blocking autopickup being turned off for invisible 
monsters hitting you (qw).

--------------------------------------------------------------------------------
0c58811758 | Shmuale Mark | 2014-04-08 23:32:21 -0400

Remove a misleading, purely cosmetic message (tank, ChrisOelmueller).

--------------------------------------------------------------------------------
f56ece6c5f | Steve Melenchuk | 2014-04-08 19:36:11 -0600

Make rakshasa defense cloning a fineff and take energy (elliptic).
Prevents crashes related to tornado and monster positioning.

--------------------------------------------------------------------------------
6dece55546 | Steve Melenchuk | 2014-04-08 16:16:14 -0600

Sync manual from wiki.

--------------------------------------------------------------------------------
8c399542cd | Steve Melenchuk | 2014-04-08 16:12:18 -0600

Add exits to a couple of shop vaults.
Based on the no_rtele_into I am assuming these are intended to possibly
be inaccessible, but they shouldn't be completely invisible from the
rest of the level as has been reported a couple of times.

Arguably the transparent vaults could use exits as well, but those will
at least veto the level if placed incorrectly.

--------------------------------------------------------------------------------
674142f8aa | Chris Campbell | 2014-04-08 19:17:24 +0100

Update some FAQ entries

--------------------------------------------------------------------------------
5185eb4ffd | Translators | 2014-04-08 13:51:28 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
44e1c6938d | Raphael Langella | 2014-04-08 13:45:18 +0200

[txc] don't crash when merging a new language.
Also, simplify by removing a useless check.

--------------------------------------------------------------------------------
ca1e12dba1 | Translators | 2014-04-08 13:36:44 +0200

[Transifex] Minor, typography edit (golmschenk, jackwayneright).
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
85a0ca64cb | Chris Campbell | 2014-04-07 22:51:50 +0100

Add a message when casting cloud cone

--------------------------------------------------------------------------------
0c82b0b28d | Chris Campbell | 2014-04-07 19:05:30 +0100

Don't set the default language to system locale for stable versions
Most translations probably aren't ready to be enabled by default.

--------------------------------------------------------------------------------
530a45b4cd | Chris Campbell | 2014-04-07 19:05:26 +0100

Fix some tutorial/hint messages

--------------------------------------------------------------------------------
d7d467d431 | Chris Campbell | 2014-04-07 19:05:22 +0100

Fix the tutorial not loading

--------------------------------------------------------------------------------
da4a0999e3 | elliptic | 2014-04-07 13:56:46 -0400

Let @ (and lua) display negative values for poison_survival().
So that players have a way of guessing whether heal wounds might be enough
to survive.

--------------------------------------------------------------------------------
d827497410 | elliptic | 2014-04-07 13:56:45 -0400

Improve poison_survival() a bit.
The player will still sometimes only drop to N+1 HP even though the game
predicts N HP. The reason for this is that the player's HP is really dropping
to N HP in the middle of the player's action and then increasing back to N+1
by the end. Since actions take variable number of aut, it is difficult to
predict when this will happen.

--------------------------------------------------------------------------------
1c17d5d9f7 | elliptic | 2014-04-07 13:56:45 -0400

Apply poison damage after regeneration, and don't penalize slow movement.
This addresses some issues with poison being unexpectedly lethal.

I don't really like regeneration being slower while walking slowly, but if
regen and hunger are going to be slower, so should poison and sickness
recovery.

--------------------------------------------------------------------------------
e40004f0ac | Chris Campbell | 2014-04-07 16:23:35 +0100

Don't let monster Formicids throw large rocks either

--------------------------------------------------------------------------------
8db4111ab4 | reaver | 2014-04-07 00:10:09 -0400

Fix another goto (in coordit.cc)

--------------------------------------------------------------------------------
e495eb6ae1 | Nicholas Feinberg | 2014-04-07 00:01:42 -0400

Deduplicate feature danger code

--------------------------------------------------------------------------------
deeb9b75cd | Nicholas Feinberg | 2014-04-06 23:57:48 -0400

Generalize & improve error messages for entering water as transformed 
octopodes/grey draconians.

--------------------------------------------------------------------------------
0187f6126c | Steve Melenchuk | 2014-04-06 17:07:47 -0600

A couple of important additions to !!!.

--------------------------------------------------------------------------------
2e17027118 | Steve Melenchuk | 2014-04-06 17:07:39 -0600

Disable multithreaded loading on Windows (#5354).
Until we can identify why it randomly fails to find files, we should not
have the game crash on startup.

--------------------------------------------------------------------------------
44c3f01e58 | Brendan Hickey | 2014-04-06 13:19:52 -0400

Remove Large Rock throwing from Fo
They can't use GSC, so they probably shouldn't be able to
use large rocks either.

See also commit 9a20582491

--------------------------------------------------------------------------------
11025d95a6 | Chris Campbell | 2014-04-06 18:01:06 +0100

Fix clinging monsters "emerging from the water"

--------------------------------------------------------------------------------
8e48d61f45 | Chris Campbell | 2014-04-06 17:35:30 +0100

Don't place 8 elephants in a Lair entry

--------------------------------------------------------------------------------
5dc80da06c | Chris Campbell | 2014-04-06 17:32:40 +0100

Remove a hellephant from a hell entry vault
They're very rare even in hell itself, and probably don't need to be
guaranteed in a vault outside it.

--------------------------------------------------------------------------------
dedc14e7f4 | Chris Campbell | 2014-04-06 17:10:31 +0100

Colour stats on the % screen consistently with HUD colouring (#8353)
Using the stat_colour option if applicable.

--------------------------------------------------------------------------------
31e7b324c0 | Chris Campbell | 2014-04-06 16:08:18 +0100

Fix compilation
Oops!

--------------------------------------------------------------------------------
20579a2dff | Chris Campbell | 2014-04-06 15:56:23 +0100

Don't let Phantom Mirror clone conjured monsters (#8349)

--------------------------------------------------------------------------------
321726ba14 | Chris Campbell | 2014-04-06 15:56:02 +0100

Clean up a check for conjured monsters

--------------------------------------------------------------------------------
5da97b904b | Chris Campbell | 2014-04-06 15:40:48 +0100

Adjust dragon form hit messages
Since it no longer tramples.

--------------------------------------------------------------------------------
4516cbe78c | Chris Campbell | 2014-04-06 15:15:58 +0100

Make a web message more generic

--------------------------------------------------------------------------------
f05f59790b | Chris Campbell | 2014-04-06 15:15:55 +0100

Improve some spellcasting messages
Use normal beam messages for flame tongue, adjust Arachne messages
(PleasingFungus), make Rupert's targeted spells more generic so that they
are still accurate when resisted.

--------------------------------------------------------------------------------
7799525b80 | Chris Campbell | 2014-04-06 15:15:52 +0100

Add a spell description for Phantom Mirror

--------------------------------------------------------------------------------
1405c045ea | Nicholas Feinberg | 2014-04-06 15:15:19 +0100

Revise various unique descriptions
[MarvinPA: more tweaks to Asterion, Mara, Nessos. Removed a couple of Asterion
speech lines to reflect his no longer being one of the "x, cursed and turned
into a y" uniques.]

--------------------------------------------------------------------------------
1aba86f362 | Chris Campbell | 2014-04-06 14:57:14 +0100

Fix Confusing Touch not reducing unarmed damage while transformed

--------------------------------------------------------------------------------
aa0591cf3b | Nicholas Feinberg | 2014-04-06 03:00:09 -0400

Fix lava orc form check code
The code in player_likes_lava() was subtly wrong, with the result that
transformed lava orcs were always able to enter lava. This restores what
appears to have been the intended behavior.

--------------------------------------------------------------------------------
456bd4e601 | Nicholas Feinberg | 2014-04-06 01:14:52 -0400

Make lava (& deep water) lethal

--------------------------------------------------------------------------------
63a232999f | Shmuale Mark | 2014-04-06 01:00:06 -0400

Remove scrambling.
It was something that was almost never relevant but that cluttered
up the code regardless. If it were to be more relevant that would
not really be a good thing since a chance for instadeath is rather
bad design.

--------------------------------------------------------------------------------
2d7d1c5946 | Neil Moore | 2014-04-04 20:04:07 -0400

Tab is for losing weight, not indenting Crawl.

--------------------------------------------------------------------------------
f7e08864e5 | Neil Moore | 2014-04-04 20:02:15 -0400

Don't crash when mapstat vault statistics generation is slow.
We turn on the watchdog during mapstat generation, but writing the log
could take some time because of the calls to mg_find_random_vaults
selecting 10000 random maps per level.  Now we pet the watchdog before
writing each level's stats.

--------------------------------------------------------------------------------
fb3cfe924d | elliptic | 2014-04-04 17:55:50 -0400

Improve display of Nemelex wrath on Ctrl-O.
It now displays red at start, lightred when it gets close to finishing with
active wrath, magenta when partially mollified.

--------------------------------------------------------------------------------
3f1ec01acd | Steve Melenchuk | 2014-04-04 10:26:02 -0600

The final 0.13.2 changelog update.
(cherry picked from commit 42362f24509bfcb152193b526c581096a30ac094)

Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
c5940bd0d3 | elliptic | 2014-04-04 11:13:21 -0400

Fix issues with xv-ing unknown squares.
This crashed if the unknown square was off the level boundary, and it gave an
empty description even if the unknown square was within the level boundary.
Now it just fails silently (which is appropriate given that v isn't listed
as an option in this case).

--------------------------------------------------------------------------------
79b3258f02 | ontoclasm | 2014-04-03 17:48:19 -0500

Old-school exec axe tiles

--------------------------------------------------------------------------------
8a82c96f3c | ontoclasm | 2014-04-03 17:11:13 -0500

Use some old racial weapon tiles for normal weapons

--------------------------------------------------------------------------------
5e01d95c36 | ontoclasm | 2014-04-03 15:27:52 -0500

Grand Avatar tile (roctavian, 8097)

--------------------------------------------------------------------------------
31fe1927d4 | Chris Campbell | 2014-04-03 20:15:06 +0100

Improve amulet of faith description
It causes piety loss/penance to be scaled up in the same way as piety
gain, so "take more notice of" transgressions seems better than "less
likely to forgive" them.

--------------------------------------------------------------------------------
839f2704fe | Shmuale Mark | 2014-04-03 10:51:44 -0400

Remove some of the glass in minmay_eyes.
It was kind of excessive, and G effects don't work through glass
now anyway.

--------------------------------------------------------------------------------
8b78ef2f35 | Shmuale Mark | 2014-04-03 10:51:44 -0400

Don't let monsters behind glass affect characters with slow heal 1/2.
It's inconsistent with most effects.

--------------------------------------------------------------------------------
4983731da6 | Chris Campbell | 2014-04-03 14:23:19 +0100

Replace Xom mass inner flame with mass fireball/corona
Inner flame mostly just encouraged running away until it expired, and
works much better as ?immolation's effect. Instead cause multiple
fireballs with fairly low damage on non-adjacent monsters, or mass
corona for a really impressive display of Xom's destructive might.

--------------------------------------------------------------------------------
4899bd9447 | Chris Campbell | 2014-04-03 14:21:51 +0100

Make some Xom effects not affect monsters behind glass

--------------------------------------------------------------------------------
b999a6f53c | Chris Campbell | 2014-04-03 14:12:54 +0100

Let Xom occasionally give stealth or make noise upon entering a new level
Only rarely, and only upon entering a level for the first time. Randomly
pick between providing a fairly long-duration stealth boost or making a
loud noise.

--------------------------------------------------------------------------------
bb6752c796 | Chris Campbell | 2014-04-03 14:12:52 +0100

Reduce the volume of Xom's noise effect, don't let silence affect it

--------------------------------------------------------------------------------
a62aeb6306 | Chris Campbell | 2014-04-03 14:09:35 +0100

Improve descriptions of artefact jewellery
Instead of giving the base type's verbose description and then short
descriptions for each subtype, give the "It is an ancient artefact" text
and then a short description for each property. This fixes things like
randart rings of {+Inv Str+3} being described differently depending on
which of invisibility and strength happens to be the base type. It also
fixes unrandart jewellery not having its base property described at all.
Randart amulets of warding will now get {Ward rN+} in their inscription,
and Cekugob will correctly display {Ward rN++}. Also fixes some newline
issues/inconsistencies with artefact descriptions.

--------------------------------------------------------------------------------
17ac71f222 | Chris Campbell | 2014-04-03 14:09:33 +0100

Improve description of slaying on non-randart rings
This was updated for randarts but is duplicated here, oops.

--------------------------------------------------------------------------------
9ed74c2132 | Chris Campbell | 2014-04-03 14:09:31 +0100

Move item quotes to the bottom of descriptions
Ideally they should probably be on a separate page, especially since a
lot of quotes are too large to fit on one page alongside descriptions,
even on the hugest of hugeterms. Moving them away from the middle of the
more useful information should still be an improvement though.

--------------------------------------------------------------------------------
f7e6656aba | Chris Campbell | 2014-04-03 11:07:34 +0100

Remove Forest Zig floors
Since the monsters have been redistributed and will now show up in Lair
branch floors as applicable.

--------------------------------------------------------------------------------
38725a92c9 | Shmuale Mark | 2014-04-02 21:57:45 -0400

Remove spriggan assassins.
There doesn't seem to be a very good place for these guys, as
attested to by their rather limited placement (1/4 of the time, in
a high-level spriggan band). They fill a similar niche as spriggan
enchanters, and, absent the Forest branch, aren't common enough
for their differences to be obvious.

--------------------------------------------------------------------------------
daf0e7d930 | Tedronai | 2014-04-02 20:26:38 -0400

Shout "POWER NAP!" when passing out after berserk.
I think this is a good addition to the grunt language :)

--------------------------------------------------------------------------------
424acf8c8f | Shmuale Mark | 2014-04-02 16:30:54 -0400

Allow ghouls to use easy_eat.
While the motivation for not allowing auto_eat makes sense, there's
no reason to force them to use an extra 'e' to eat a chunk.

--------------------------------------------------------------------------------
132c9f3235 | Shmuale Mark | 2014-04-02 11:07:57 -0400

Remove mandatory fun.
You can still get it back with language = grunt, of course.

This reverts commit a771cbda9e4ae13f2207b6dc09030e741865d5c9.

--------------------------------------------------------------------------------
dddaf67503 | Translators | 2014-04-02 14:49:37 +0200

[Transifex] Sync.
Also add swedish language.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
fa90154be0 | Steve Melenchuk | 2014-04-01 20:47:30 -0600

Fix a few !!! oversights/bugs.

--------------------------------------------------------------------------------
a771cbda9e | Shmuale Mark | 2014-04-01 00:04:23 -0400

Make fun the default!!!!
Can't let the people who don't experience nostalgia not have any fun,
after all.

--------------------------------------------------------------------------------
f7238693c8 | pubby | 2014-04-01 00:03:57 -0400

Add a grunt fake language!!!
[Committer's note: You squash Grunt's and pubby's patches like
a feature!!!!!]

--------------------------------------------------------------------------------
a435e27d37 | Cedor | 2014-03-31 21:43:39 +0100

minor adjustement to descriptions:
portals to pan are in U;
way to trigger zot traps (to explicite how mobs can trigger it;
portal to sewer aren't magical;
(flavour?) precision to volcano desc.
[MarvinPA: also adjusted Abyss, Vestibule, Ossuary descs similarly]

--------------------------------------------------------------------------------
543d55b1f7 | Steve Melenchuk | 2014-03-31 14:00:26 -0600

Fix a save/restore inconsistency with TAG_MAJOR_VERSION > 34.

--------------------------------------------------------------------------------
f4f420f849 | Steve Melenchuk | 2014-03-31 13:44:09 -0600

Fix position of some demonspawn class overlays (roctavian, #8097).

--------------------------------------------------------------------------------
098e97f709 | David Ploog | 2014-03-31 20:09:02 +0200

Minor changes to changelog.
Mostly about using "species" rather than "race".

--------------------------------------------------------------------------------
a6b5f5a65f | Steve Melenchuk | 2014-03-30 22:50:31 -0600

Fix some issues with TAG_MAJOR_VERSION > 34.

--------------------------------------------------------------------------------
a1f80c0991 | elliptic | 2014-03-30 22:48:27 -0400

Fix unrand staves being far more common than other unrand weapons.
21d5f32e6 caused any enhancer staff to have a chance at being replaced by
an unrand staff, not just those created by acquirement. Now unrand staves
normally only replace weapons (like every other unrand weapon), though they
are still produced by staff acquirement.

--------------------------------------------------------------------------------
b893b9871a | Chris Campbell | 2014-03-31 02:09:41 +0100

Remove some out-of-date comments

--------------------------------------------------------------------------------
f11ede57ac | Chris Campbell | 2014-03-31 01:44:28 +0100

Improve some help text

--------------------------------------------------------------------------------
cfb352212e | Chris Campbell | 2014-03-31 00:53:47 +0100

Add some missing god lastnames
Dithmenos and Nemelex were consistently referred to with those titles in
various places already. Vehumet and Kiku currently have no title.

--------------------------------------------------------------------------------
47bd15533b | Chris Campbell | 2014-03-31 00:04:22 +0100

Adjust some ossuaries
Don't place guardian mummies, de-rune some more doors, reduce some loot.

--------------------------------------------------------------------------------
fd8676bef1 | Chris Campbell | 2014-03-30 21:35:01 +0100

More item description improvements

--------------------------------------------------------------------------------
c144fa5b39 | Chris Campbell | 2014-03-30 21:35:00 +0100

Don't increase holy word power when worshipping a good god
It was a strange hidden effect, and holy word is very strong at its
regular power anyway. Also remove the fear enchantment which didn't
actually have an effect.

--------------------------------------------------------------------------------
2f27df6003 | gammafunk | 2014-03-30 15:10:30 -0500

Simplify and document a function

--------------------------------------------------------------------------------
1f4831d457 | Neil Moore | 2014-03-30 15:28:34 -0400

Clarify a fall-through (gammafunk)

--------------------------------------------------------------------------------
df4b596b3f | ontoclasm | 2014-03-30 14:24:07 -0500

Crystal ball tile

--------------------------------------------------------------------------------
a329682e06 | Neil Moore | 2014-03-30 12:46:37 -0400

Improvements to checkwhite and unbrace.
Give both programs a -n option to do a dry run (that is, check for
problems without correcting them).  Exit with a nonzero status if the
dry run detected problems, to make it easier to use these in scripts.
However, in order to avoid breaking existing scripts, we do not give an
exit status if things *were* changed.

Also allow unbrace to take a list of files like checkwhite can.

--------------------------------------------------------------------------------
d9c209fe7c | gammafunk | 2014-03-30 11:12:48 -0500

Indent and brace cleanups

--------------------------------------------------------------------------------
55057a331c | Neil Moore | 2014-03-30 10:21:17 -0400

Fix feature shifts from mangrove removal.
We needed to shift the following features so that open sea, orcish idol,
etc. come out correct. We had been turning existing shoals borders, for
example, into lava sea.

--------------------------------------------------------------------------------
03853fe038 | Neil Moore | 2014-03-30 09:55:46 -0400

Further increase affected-cells limit in tiles.
Even the increased limit in 0.14-a0-3527-g55f82b9 wasn't enough for
a 180-degree thunderbolt from rod of lightning.  Increase the limit
so that it covers all of LOS.

--------------------------------------------------------------------------------
b1fb4f348a | Chris Campbell | 2014-03-30 11:48:02 +0100

Update and improve item descriptions

--------------------------------------------------------------------------------
7419762e8b | reaver | 2014-03-30 05:27:09 -0400

Remove a goto

--------------------------------------------------------------------------------
2a34657914 | reaver | 2014-03-30 05:26:47 -0400

Fix a bug in box_level_dp
Which meant that one of the monster sets wasn't being selected.

--------------------------------------------------------------------------------
2d3a842f98 | Chris Campbell | 2014-03-30 09:34:38 +0100

Show full branch descriptions when examining the stairs to a branch
Otherwise, the branch descriptions were only visible through ?/B lookup.
This way they are more visible and don't need to duplicate information
between branch and feature descriptions.

--------------------------------------------------------------------------------
bc4f2d9b2d | Chris Campbell | 2014-03-30 09:31:47 +0100

Improve feature descriptions
Removes extended descriptions from branch stairs, so that the actual
branch descriptions can be used instead.

--------------------------------------------------------------------------------
0adf1751de | Chris Campbell | 2014-03-30 09:22:38 +0100

Improve branch descriptions some more

--------------------------------------------------------------------------------
505f426bff | Chris Campbell | 2014-03-30 07:06:11 +0100

Don't use MSGCH_MULTITURN for recite messages
Since it's a duration rather than a delayed action now. Possibly should
be on some other channel than plain, though.

--------------------------------------------------------------------------------
583097f1c5 | Shmuale Mark | 2014-03-30 01:43:18 -0400

Documentation clarification (reaver).

--------------------------------------------------------------------------------
b95a6918a0 | Shmuale Mark | 2014-03-30 01:13:14 -0400

Make tiles Swamp trees look like mangroves again (gammafunk).

--------------------------------------------------------------------------------
2cf134e077 | Shmuale Mark | 2014-03-30 00:52:32 -0400

Fix some vaults (tenofswords, MarvinPA).

--------------------------------------------------------------------------------
432e2bbe21 | Shmuale Mark | 2014-03-29 23:50:09 -0400

Remove mangroves from vaults.
There may still be some vaults that rely on trees to act like glass.

--------------------------------------------------------------------------------
f57b90b356 | Shmuale Mark | 2014-03-29 23:50:09 -0400

Restore Swamp tree colours; remove ETC_MANGROVE

--------------------------------------------------------------------------------
7a9dbbb8cd | wheals | 2014-03-29 23:49:58 -0400

Remove mangroves, make single trees block LOS.
Trees are in some ways yet another type of transparent wall, and, as
MarvinPA has said, "in general having areas full of trees where you
can see lots of enemies but not target them just plays badly."

There were two differences between trees and mangroves, besides LOS:
the latter didn't start forest fires and left shallow water when
destroyed. That behaviour is kept, instead checking whether
the tree (technically, the player) is in Swamp.

--------------------------------------------------------------------------------
efe43552fe | Chris Campbell | 2014-03-30 04:08:40 +0100

Don't let queen bees cause berserking while confused (#8331)

--------------------------------------------------------------------------------
2dfb4df3e3 | Steve Melenchuk | 2014-03-29 11:42:45 -0600

A 0.15 changelog header.
Nothing else to see here; move along...

--------------------------------------------------------------------------------
90d5cc3356 | Steve Melenchuk | 2014-03-29 11:36:18 -0600

A changelog touch-up to kick off the 0.14 branch.

--------------------------------------------------------------------------------
3331d8b85e | Steve Melenchuk | 2014-03-29 11:36:18 -0600

Purge an extraneous bit from dc-mon.txt.

--------------------------------------------------------------------------------
3b79c12cab | gammafunk | 2014-03-29 12:26:29 -0500

Remove ordinary octopode monster gear code
They were already out of distribution, it turns out.

--------------------------------------------------------------------------------
4aa19395a8 | gammafunk | 2014-03-29 12:26:29 -0500

Remove formicid venom mages and an associated vault
Formicid enemies may get a new implementation in the future, but it
won't be as a venom mage, despite that lovely dress.

--------------------------------------------------------------------------------
cf6aeb2b6b | gammafunk | 2014-03-29 12:26:29 -0500

Remove unneeded references to axed monsters and move related tiles
Remove code references to removed monsters, except where needed for
save compatibility, as well as quotes/descriptions references, and
move the related tiles to UNUSED. RIP gnomes.

--------------------------------------------------------------------------------
cc6d91e596 | tenofswords | 2014-03-29 13:19:49 -0400

Replace Lab catoblepae with Lab earth elementals
Less petrifying, still same worried fleeing for the layout.

--------------------------------------------------------------------------------
347b99035e | tenofswords | 2014-03-29 13:14:58 -0400

Pull together some quick edits to box_level_dp
 * Throw out the liquid monster code, it is extremely excessive
   and spammy while not providing much of a threat compared to
   recently-toned-down liquid monster generation anyway. This does
   at least place a dragon over both lava pond and river, though.
 * Apparently, since the vault was first made, there were some
   intended monster sets in the boxes off to the side of the main
   giant box. Thus, I'm actually using that code as a way to make
   the level less generic while placing stuff more coherent (and
   weaker) than the usual mess of Depths spawns, with random sets of
   either orcs + elves, spriggans + giants, or tengu + salamanders.
 * Actually place a bloody queen bee with the hive while there's
   still a hive stuck in this level and while I can't think of any
   good replacements.

(Also, fix compilation.)

--------------------------------------------------------------------------------
45324f109b | tenofswords | 2014-03-29 12:16:13 -0400

A brief spree of edits on kennysheep's vaults
Most noticeably, kennysheep_town, the D:8-11 encompass vault:
Use a long string of NSUBSTs to heavily control the very random-in-numbers
placements of monsters throughtout the vault, essentially weakening it as
extremes matter most. Also, remove grates due to early orc priest use and
lower overall chance to place due to being so early for an encompass vault.

In other vaults of this guy's: grates reduction, more nsubst sanity work,
depths adjustments, etc. I'm not really meaning to pick on this one person
as much as the bulk of his non-generic vaults landed after I did my last rounds
through varied dat/des/variable/ files, and I would edit as I've done
if I had taken longer.

--------------------------------------------------------------------------------
5f405f55e9 | Steve Melenchuk | 2014-03-29 10:00:13 -0600

Let stone giants throw rocks again.
Justification for stone golem removal: too similar in name to stone
giants.

--------------------------------------------------------------------------------
1f6877fa51 | Steve Melenchuk | 2014-03-29 09:50:50 -0600

Remove gnomes.
The description, that is.

--------------------------------------------------------------------------------
9465d971ba | Steve Melenchuk | 2014-03-29 09:49:37 -0600

Remove some residual clay and stone golem references.

--------------------------------------------------------------------------------
c79f8be073 | Steve Melenchuk | 2014-03-29 09:44:10 -0600

An enum for a Phantom Mirror icon.

--------------------------------------------------------------------------------
3cedf3504f | Steve Melenchuk | 2014-03-29 09:42:52 -0600

Rename some rod enums.

--------------------------------------------------------------------------------
5d7b986e26 | tenofswords | 2014-03-29 10:36:23 -0400

Revive ragdoll_tomb_raider as a regular vault
With the special lua stripped out and the monsters re-arranged,
the original concerns of the vault being a spoilery death trap
should be absolved. Of course, this still features fun early
Tomb mummies, but mummy priests are slow, and there's precedent
in minmay_librarian and lemuel_minitomb for non-Tomb Tomb mummies.
As always, one doesn't have to fight _everything_ immediately, or at all.

--------------------------------------------------------------------------------
c6c45e3368 | David Ploog | 2014-03-29 14:11:48 +0100

Small fix for runrest_safe_poison entry.

--------------------------------------------------------------------------------
a7345d3d1c | gammafunk | 2014-03-29 05:12:28 -0500

Give octopode crushers a hat and chance of a shield

--------------------------------------------------------------------------------
3d30bff765 | gammafunk | 2014-03-29 05:12:27 -0500

Fix equipment and constriction behavior for octopode genus monsters
Although ordinary octopode monsters are probably not long for this
dungeon outside of decorative vaults, they couldn't use their starting
shield. Octopode crushers couldn't use hats nor constrict multiple
enemies. These are fixed and some monster class methods are
documented.

--------------------------------------------------------------------------------
74622d495b | elliptic | 2014-03-29 06:10:40 -0400

Fix runrest_safe_poison and document it.

--------------------------------------------------------------------------------
8f8d78454c | elliptic | 2014-03-29 05:14:12 -0400

Fix poison status incorrectly showing as lethal sometimes.
The HP bar was correct; this just affects the status light and the @ status.

--------------------------------------------------------------------------------
e5bc28c969 | elliptic | 2014-03-29 05:14:12 -0400

Give players the exact poison survival prediction value, through @ or lua.
This addresses issues with different sizes of HP bars giving this value
to different amounts of accuracy (mainly a console vs webtiles thing, I
believe). The extra accuracy is barely useful at all (especially as it is
sometimes off by 1 anyway), but giving it to the player doesn't seem like
a problem - we just don't want to waste space in the main display.

Displays as "You are seriously poisoned (50 -> 19)." in the @ status display.

Also replaced you.poisoning() with you.poison_survival() in the player lua,
since that is the value we are displaying everywhere else.

--------------------------------------------------------------------------------
969c5a3fad | DracoOmega | 2014-03-29 06:30:47 -0230

Buff Salamander Firebrands a little
I am honestly uncertain why AF_FIREBRAND was doing that much less
damage than AF_FIRE, and now it isn't.

--------------------------------------------------------------------------------
b42587663b | DracoOmega | 2014-03-29 06:30:46 -0230

Add Summon Mana Viper to the Book of Hinderance
Replacing Slow (already found in 2 other books, and generally
not very appealing in a non-starter book).

Despite its side-benefits, Mana Viper was rather outshone in the
book of beasts by Monstrous Menagerie which eschews debilitating
things for simply killing them. Putting it in some book that doesn't
also contain a 'better' summon spell might give more chances for
learning it to be appealing to someone.

--------------------------------------------------------------------------------
9da7ed46ab | DracoOmega | 2014-03-29 06:30:45 -0230

Some tweaks to Spider population weights
Throughout much of 0.14, and particularly since forest dispersal,
Spider has consistently lagged behind the other Lair rune branches in
overall threat. With deterministic poison formulas more stable for a
little while now, I think some of this discrepancy can be amended by
making the chance to encounter the higher tier threats in the branch
before the rune vault itself less vanishing (as has now been the case
in other branches for some months).

This is aimed at being a (relatively) conservative way to get a bit
more parity between all 4 branches without any changes to established
monsters or much adjustment to overall population.

--------------------------------------------------------------------------------
9926551560 | DracoOmega | 2014-03-29 06:30:44 -0230

Some last tweaks to poison formulas for 0.14
Raise the flat damage componant of venom weapons (which was overlooked
in past adjustments and effectively much lower overall than 0.13
at the part of the game where it mattered), nudge minimum damage of
poison clouds a little, slightly boost AF_POISON_STRONG damage, and
make needle traps actually equal to poison needles.

--------------------------------------------------------------------------------
99020c5374 | DracoOmega | 2014-03-29 06:30:42 -0230

Properly credit the player for damage done by Forceful Dismissal
Oops.

--------------------------------------------------------------------------------
68b88940fc | DracoOmega | 2014-03-29 06:30:41 -0230

Buff Forceful Dismissal damage a bit

--------------------------------------------------------------------------------
385e1791fa | DracoOmega | 2014-03-29 06:30:39 -0230

Correlate number of liquid monster spawns more directly with liquid quantity
Basically, this removes the constant portion of the formula and makes
the number purely a (randomized) function of how much eligable
water/lava there is on the level. This is aimed at preventing the
frequent situation where having one small pool on the level meant that
it would be practically overflowing with monsters. The number of
spawns on levels full of water should be relatively unchanged.

--------------------------------------------------------------------------------
52d274e059 | DracoOmega | 2014-03-29 06:30:38 -0230

Adjust cloud weights for Rod of Clouds
The three special cloud types unique to this rod were vanishingly
rare until very high evo (impossible until 15, but a minority even
at 22 skill) and since most are not even greatly stronger than
'normal' clouds, I thought it was a shame that it was so hard to see
them without a level of evocations skill that very few characters
would realistically get.

This allows negative energy and acid clouds to show up earlier,
increases their relative weight compared to normal clouds (in
asecending order of general power), makes rain a bit less common and
meph somewhat more common as low-tier clouds. Storm clouds (the
only new cloud type that tends to be more powerful than normal clouds
in absolute terms) are more strongly favored at the highest power,
which seems fine given the investment that represents.

--------------------------------------------------------------------------------
dd35d23968 | DracoOmega | 2014-03-29 06:30:37 -0230

Adjust/normalize Rod of Clouds cloud durations
The way it used shotgun rays meant that clouds placed directly in
front of you could have extremely high durations compared to clouds
just slightly to the side (an average of about 97 turns at 16 evo!).

This commit makes all the clouds in the cone have the same base
duration as each other (individually randomized and lower overall).

--------------------------------------------------------------------------------
52661a8da4 | DracoOmega | 2014-03-29 06:30:36 -0230

Rename Rod of Fiery Destruction to Rod of Ignition
Having rods of both Destruction and Fiery Destruction was a bit
awkward in much the same way that Fiends and Dragons were awkward
before they each discovered their respective adjectives.

--------------------------------------------------------------------------------
dae4556f83 | elliptic | 2014-03-29 03:40:12 -0400

Fix amulet of faith prompting twice sometimes when removing it (qw).
There were two separate issues that could cause this. First, when wearing
at least one ring as well as the amulet, it would give the prompt once when
choosing the amulet to remove and then again when actually removing it.
Second, prompts were sometimes checked right before calling remove_ring()
and then again inside remove_ring(), for instance when swapping to a
different amulet.

I think this fixes it without breaking anything else.

--------------------------------------------------------------------------------
3b3a7b63ad | Neil Moore | 2014-03-29 00:29:07 -0400

Put cursor at end when navigating get_line history in Webtiles.

--------------------------------------------------------------------------------
f98fe4345f | Steve Melenchuk | 2014-03-28 22:07:00 -0600

Nudge changelog.
This will probably need to be updated one more time before branching,
but that can happen when it happens.

--------------------------------------------------------------------------------
dd10857344 | Neil Moore | 2014-03-28 23:55:13 -0400

Give n_spe to mystery-meat renames.
This avoids displaying a unique-style name caption in local tiles.

--------------------------------------------------------------------------------
6275a28756 | Neil Moore | 2014-03-28 23:55:13 -0400

Document tiles side-effect of name_species.
Added in 0.11-a0-2129-gb288258.

Also remove an out-of-date reference to name_species' effect on
articles.

--------------------------------------------------------------------------------
198c3de14e | tenofswords | 2014-03-28 23:53:24 -0400

Catch more loose plain deep dwarf monsters

--------------------------------------------------------------------------------
1d1eca549a | tenofswords | 2014-03-28 23:42:54 -0400

Catch one last plain deep dwarf monster.

--------------------------------------------------------------------------------
a67810d854 | tenofswords | 2014-03-28 23:39:09 -0400

Remove species dummy monsters from vaults (minmay, #8119)
(I wanted to take my own spin on most of these vault changes,
 but the issue served as a base on finding and weeding out
 all of these monsters that shouldn't really spawn in places
 as threats for the sake of simplicity and avoiding redundancy.
 Of course, humans are special due to being too bloody ubiquitious
 to cleanly remove half as easily, and items / display cases are fine.)

(Also, this cuts octopodes, as they've been recently de-spawned,
 fits in a few random dumb hd redefinition clearings, and removes
 not-really-available-for-comparsion formicid, octopode, and deep dwarf
 zombies from the extended zombies player-species list.)

--------------------------------------------------------------------------------
8766f87a67 | Steve Melenchuk | 2014-03-28 21:12:42 -0600

Add reaver to CREDITS.txt.

--------------------------------------------------------------------------------
48b6b74a6b | Steve Melenchuk | 2014-03-28 20:57:43 -0600

Don't randomly generate plain octopode enemies.
This was really only meant as an experiment dating back to before forest
dispersal work, which proved to be about as interesting as a hat farm.

You can still get randomly generated octopode zombies in the late game
(possibly for now, alongside formicid and deep dwarf zombies despite
 their respective base monsters never generating randomly).

--------------------------------------------------------------------------------
6518468885 | tenofswords | 2014-03-28 22:50:20 -0400

Nerf special_room_mythical_zoo
The ones that spam hydra in Depths and fire drakes in Lair, for those
unaware of the name in the code. Manticores were accidentally untouched
in a previous commit meant to push them deeper, while the spawn fodder
of hippogrives were pushed far down instead, making them even meaner.

Wvyerns are used were manticores previously were, hippogrives get their
earlier appearances back, and manticores are now put at hydra depth /
weighting. Also, some phoenix boss chances are replaced with apises.

--------------------------------------------------------------------------------
dd8581276a | Steve Melenchuk | 2014-03-28 20:44:54 -0600

Don't treat storm clouds as harmless for many purposes (DracoOmega).

--------------------------------------------------------------------------------
6d712bf5f9 | Steve Melenchuk | 2014-03-28 20:37:16 -0600

Add harmless storm cloud lightning to runrest_ignore (DracoOmega).

--------------------------------------------------------------------------------
7b3cdf579d | Chris Campbell | 2014-03-29 02:29:49 +0000

Improve Bend Time's base success rate slightly

--------------------------------------------------------------------------------
eebe3c2e0e | Chris Campbell | 2014-03-29 02:29:48 +0000

Re-order a list of god abilities
So that they're vaguely consistently sorted by fail rate, and improve some
comments.

--------------------------------------------------------------------------------
462ffe7752 | Chris Campbell | 2014-03-29 02:29:47 +0000

Don't let the boots of the Assassin work with non-weapons
Sorry :(

--------------------------------------------------------------------------------
a563ede3d2 | Steve Melenchuk | 2014-03-28 20:26:13 -0600

Demolish clay and stone golems.
Now that they no longer place anywhere.

--------------------------------------------------------------------------------
fd39688a3c | tenofswords | 2014-03-28 22:16:36 -0400

Finish up vault/etc removals of stone, clay, (most) iron golems
The golem archetype - slow, omni-resistant, melee-only, and with titanic
defenses and health - hardly needs to be around as much, as exaggerated
as it is, or with as many different types as it currently has.
This forms the last push of vault revisions on vaults containing stone,
clay, or (some) iron golems. The last of these is preserved for the flavour
and function for Dis, where it can have enough ambient support to work;
the other two have been phased out by appropiate other earth-themed monsters.
Earth elementals are still based off of the golem archetype, but already
serve purposes beyond vault placement, and have much less extreme health;
for the most part, they've replaced many of the earth and clay golem uses,
alongside the revamped and equally flimsy gargoyles.

(Also, adjust crystal golem speech and banish iron elementals back to Sprint.)

--------------------------------------------------------------------------------
7a00befb6a | Neil Moore | 2014-03-28 21:55:16 -0400

Simplify.
Also allow nonexistent things like hell-raiju to pluralise correctly.

--------------------------------------------------------------------------------
2e17715767 | Neil Moore | 2014-03-28 21:47:54 -0400

Use a symbolic rather than string properties key.
To catch typos at compile time.

--------------------------------------------------------------------------------
a03f752275 | Neil Moore | 2014-03-28 21:30:00 -0400

Avoid an Ozo's armour crash (gammafunk, MarvinPA)
In the call to _decrement_a_duration, we weren't passing the midmsg
"Your icy armour starts to melt" when we already gave the player a very
similar message "The heat melts your icy armour".  We were still passing
a midloss of 0 or 1; however, 0.14-a0-3521-g8f1b972 added an assert that
there is never a midloss without a midmsg.  See for example:

   
http://dobrazupa.org/morgue/HilariousDeathArtist/crash-HilariousDeathArtist-2014
0328-190508.txt

Instead, don't subtract the midloss in this situation.  Its purpose is
to prevent the player from deducing exact durations from the message,
but that is not an issue if we didn't give the message in the first
place.  This does mean that, if you take fire damage on the same turn
that OA ticks past the 6-turn-duration mark (that is, in those
situations that caused the crash), the duration will last on average
half a turn longer than it would have in the same situation before the
assert was added.

--------------------------------------------------------------------------------
9ea9b7cf4a | Steve Melenchuk | 2014-03-28 18:47:42 -0600

Nudge the title screen header in an important fashion.
Clearly this should be autogenerated.

--------------------------------------------------------------------------------
3b1f5a4a8b | Steve Melenchuk | 2014-03-28 18:44:44 -0600

Make HUPping at a read-ID scroll prompt behave more consistently.
Namely, aborting out in this fashion wastes the scroll, like other means
of aborting out; this was the case with the weapon selection prompt but
not the prompts added afterwards.

Also removes a FIXME comment which prompted this; some discussion on IRC
suggests that this patch generates the desired behaviour.

--------------------------------------------------------------------------------
dad628392b | Steve Melenchuk | 2014-03-28 18:41:13 -0600

Don't let Glaciate blockify insubstantial monsters.
RIP vapour shaped blocks of ice.

--------------------------------------------------------------------------------
270a514a43 | Steve Melenchuk | 2014-03-28 18:30:49 -0600

Enchant armour is also wasted on read-ID with nothing enchantable (qw).
See a7442b6 for a similar bug.

--------------------------------------------------------------------------------
4e207c1efc | Steve Melenchuk | 2014-03-28 18:13:37 -0600

Fix Glaciate's range at 7; don't let Vehumet extend this.
By popular dev demand.

I'm leaving the code for handling varying ranges alone in the event that
we need to revisit this.

--------------------------------------------------------------------------------
07d0f3200e | tenofswords | 2014-03-28 17:23:22 -0400

D, Depths vault depth tweaks
 * Fix some vaults requesting for D:15-, !D:$ placement, and other such
   cases leftover from cutting D and Depths by one level each.
 * Throw out some statue minivaults from Depths, statues are no threat
   compared to their surroundings by that point and are just providing
   essentially-free loot for the depth.

--------------------------------------------------------------------------------
5cbc9ef9f9 | tenofswords | 2014-03-28 17:09:45 -0400

Lair / branch end vault balance edits
 * lair_in_review: Replace an agate snail with a giant slug instead of
   an orange rat band.
 * salamanders_mu: Buff previously-stronger salamanders into mystics,
   but lower the shock serpent numbers slightly for more mana vipers.
 * "swamp", swamp_alternative: Make the explicitly-placed forest-dispersal
   swamp bosses essentially mutually exclusive with the rare Lernaean
   Hydra chance, to take a little bit of the edge off.
 * Shoals:5 : Lower the monster number in Ilsuiw's dais, lower the hut
   numbers from 6-8 and 5-7 to 6-7 and 5-6, force monsters numbers towards
   the average per decoy hut / cave. Shoals has always had the hardest
   branch end of the lair branches, and with Shoals:1-4 having been buffed
   with the forest dispersal plus more Shoals:5 monsters throughout the
   branch, it seems appropiate to tone down the branch end. At the very
   least, this tries to force it away a bit from the extremes.
 * guppyfry_spider_rune: improve some unreliable emperor scorpion chances,
   the vault is now the weakest of Spider:5 due to the monster segmenting,
   plus Spider is the least lethal of the lair branches, stat-wise.
   Likewise, remove the brain worms for more demonic crawlers / wolf spiders.
 * grunt_spider_rune_parallel: very slightly raise average spider numbers,
   due to the forced-near-average being ineffectual here with such scattered
   monster groupings and few reliable murder-spots.
 * Spider:5 should now be using a tile for stone that isn't a tile for
   Shoals:5 rock. (It is used for Crypt rock, but that doesn't exist.)

--------------------------------------------------------------------------------
6fc50d0344 | Shmuale Mark | 2014-03-28 14:03:33 -0400

Remove -str from thin skeletal structure.
Its usefulness is already very character dependent, and the only
other scales with a malus (rough black) provides a very significant
bonus. Also replace "Stlth" with "Stealth".

--------------------------------------------------------------------------------
3cecf4cad8 | elliptic | 2014-03-28 12:16:13 -0400

Improve view.find_deepest_explored().
It now returns 0 rather than 1 if the player hasn't seen the branch yet.

--------------------------------------------------------------------------------
aaf79ab057 | elliptic | 2014-03-28 11:11:35 -0400

Give more warning before a timed portal closes (wheals).
Previously it printed messages like "The crackle of the magical portal is
almost imperceptible now." the same turn that the portal closed. Now it prints
them 100 aut earlier, so you still have the option of entering the portal
before it closes if you are resting in sight of the portal.

--------------------------------------------------------------------------------
2682ccd044 | Chris Campbell | 2014-03-28 07:16:03 +0000

Fix some transformations aborting silently on failure
Willing transformations should display the failure messages to explain
why they're failing. Removes an unnecessary message from lignification.

--------------------------------------------------------------------------------
21463cad35 | Chris Campbell | 2014-03-28 06:53:13 +0000

Lower Call Imp power cap to 100

--------------------------------------------------------------------------------
129420692e | Chris Campbell | 2014-03-28 06:23:45 +0000

Adjust message for vampiric weapon wield failure
Could possibly still do with a mention of the fact that it will hunger
you on wield, but is at least fully clear about the conditions for
wielding.

--------------------------------------------------------------------------------
c453e02086 | Steve Melenchuk | 2014-03-27 21:15:58 -0600

Give thematic crypt loot in lightli_unholy_cathedral (78291).

--------------------------------------------------------------------------------
36e2c84fdc | tenofswords | 2014-03-27 22:48:32 -0400

Make raiju alive, not demonic
There's hardly any benefit, distinction, or flavour for them being demonic,
and while they may be basically Abyss-bound at the moment, lots of other
things in there are still alive. This can count as further weakening for
characters that'd care about raiju anyway, by removing their rN+++ and rPois.

--------------------------------------------------------------------------------
3cb05848d8 | tenofswords | 2014-03-27 22:38:13 -0400

Better insulate lightli_unholy_cathedral
Such thin and cramped quarters made noise a major concern for the vault,
with both sides of the vault spilling out at once: thus, this adds a few
strategic rows and columns, alongside a thicker outside border, to try
and stem the tide a little. The vault is still vicious in its spawns.

(Also, clean-up the horrendous header.)

--------------------------------------------------------------------------------
21426a72ad | tenofswords | 2014-03-27 22:37:38 -0400

Edit some Depths vault giants
 * Make the fire giant Depths entry vault have a lowered weight
   like it used to before encompass vaults were enabled for D:$.
 * Give the rare ettin in three of the old Forest end vaults randart
   giant clubs, so that they're not so relatively weak in their
   KMONS and justifying their random placement some more.
   The Enchanted Forest clearly had magical trees for club-making.
   (If there are objections to potential ettins, remember that
   the ettins are limited, random and diluting spriggan defenders.)

--------------------------------------------------------------------------------
c7c04fc502 | tenofswords | 2014-03-27 21:17:16 -0400

(Mostly) limit ant hill and bee hive vaults to one per game (wheals)
The homogenous monster sets in both vault types tends to blur the
vaults together despite the layout differences, and if it doesn't
succeed once, a second try doesn't have much merit or chance. Thus,
this adds uniq_anthill and uniq_beehive tags to appropiate vaults.

Exceptions:
 * Bee special rooms (i.e. monster boxes like orcs or undead) lack
   the tag due to the finnicky nature of special rooms, but lost
   the allow_dup tag to prevent them being repeated anyway.
 * hangedman_what_comes_after_a is in a different vault category
   from the other bee hives, as a large vault with plenty of
   non-bee enemies in it.
 * Likewise, box_level_dp has a lot more to it than just the
   harmless-at-depth beehive in it.
 * david_nohive_1 is untouched as a food vault to avoid changing
   the average guaranteed food for each game.

In total, this effects 6 anthill vaults and 3 beehive vaults,
limits bee special rooms, and some other tiny involved tweaks.

--------------------------------------------------------------------------------
214fa27da5 | tenofswords | 2014-03-27 20:52:26 -0400

Hall of Blades layout tweaks
Remove some extraneous stuff based around multiple stairs on Branch:1,
make center-stairs placement less common and always with a centered pillar,
push inward one potential stair placement area,
lower chance of no center pillars.

The layout's still mean and open, but it should be a bit more controlled now.

--------------------------------------------------------------------------------
7ea0c74e30 | Chris Campbell | 2014-03-28 00:13:09 +0000

Fix some speech substitutions with noisy weapons (#6476)
A lot of this is duplicated from do_mon_str_replacements(), possibly
that should be cleaned up somehow.

--------------------------------------------------------------------------------
f0edc7083c | Chris Campbell | 2014-03-28 00:13:08 +0000

Fix some angel speech (#7839)
Don't address monsters with "@player_god@", don't let profane servitors
use speech intended for holy angels. Doesn't fix non-good god angels using
the same speech (eg Xom angels in the Abyss).

--------------------------------------------------------------------------------
8cf0a2b35d | Chris Campbell | 2014-03-28 00:13:07 +0000

Fix Singing Sword messages
Broken by 25a9b7f745d6, it was using the same messages for silence and 0
tension and never using the SCREAM messages.

--------------------------------------------------------------------------------
cbe865235f | tenofswords | 2014-03-27 19:34:31 -0400

Abyss rune vault edits, misc. set/vault tweaks
Most prominently center on abyssal rune vaults.
Nearly every abyss rune vault should prominently use some variety of
Abyss-native monster now, instead of some just being a random challenge
in front of the rune in the midst of Abyss:3- being pretty dangerous in
and of itself. The siren has a fellow singing partner, the spatial
vortex shrine gains a maelstrom, the lightning spires get raiju, the
forest has rakshasas, and so on and so forth.

Also, continue the glacial phasing out of clay and stone golems,
and replace the awkwardly-banded super-rare naga mages with mana vipers.
Additionally, update some weird and wide monster sets, and auto-id
some non-random chaos and distortion brands on weapons from some vaults.

--------------------------------------------------------------------------------
7d9ef9ce22 | Steve Melenchuk | 2014-03-27 16:50:50 -0600

Tag some Orc minivaults with mini_float (#8325).
So that they don't spawn isolated from the rest of the level.

--------------------------------------------------------------------------------
aa45e84186 | Chris Campbell | 2014-03-27 18:54:28 +0000

Don't show uninhabitable spaces for Fedhas growth (#8321)
And fix a message for the case where no plants are created somehow.

--------------------------------------------------------------------------------
bf56c496bc | Chris Campbell | 2014-03-27 18:54:26 +0000

Don't show Ziggurats on the travel menu (#8322)

--------------------------------------------------------------------------------
1aa87f9f8d | Shmuale Mark | 2014-03-27 13:19:33 -0400

Remove Forest.
From places where uniques.des.

--------------------------------------------------------------------------------
05b21952b5 | Steve Melenchuk | 2014-03-27 11:10:33 -0600

Changelog through 0.14-a0-3540-g0496ee7.
Really, I could update the header with the expected release date now,
but saving that for the branching commit seems appropriate.

--------------------------------------------------------------------------------
0496ee7bb6 | Shmuale Mark | 2014-03-27 11:59:42 -0400

Remove (buggy) extra noise for electrocution / flaming brands.
noise_factor was being increased in apply_damage_brand, but it was
later reset in adjust_noise anyway. Differing noise doesn't seem
like a particularly interesting way to distinguish between weapon
brands, and it would be totally nonobvious that flaming makes extra
noise but freezing doesn't.

--------------------------------------------------------------------------------
e046828505 | gammafunk | 2014-03-27 07:48:28 -0500

Let Orb run spawns generate in all non-abyss locations
Players have been picking up the Orb and entering a Zig only to
discover that Orb spawns don't generate, thus depriving them of HUGE
GUTS to RIP AND TEAR. Their complaints have been overwhelming, so now
Orb run spawns generate in Pan and all portals. We don't generate the
spawns in the Abyss, since the player can be banished there on the
ascension, whereas entering other places with the Orb is voluntary.

This commit also fixes the monster spawn rate when starting in the
abyss with Lucy, which was being set to the orb run spawn rate instead
of once per five turns as intended, and cleans up and documents some
functions.

--------------------------------------------------------------------------------
669f2b404c | ontoclasm | 2014-03-27 01:34:42 -0500

Add splash screens to webtiles too

--------------------------------------------------------------------------------
3f12094124 | Chris Campbell | 2014-03-27 06:25:10 +0000

Don't allow tripping when being cast deeper into the Abyss (#6975)
Or when Xom reverts your banishment.

--------------------------------------------------------------------------------
c712556825 | ontoclasm | 2014-03-27 01:17:19 -0500

Splash screens (baconkid, by way of khalil)

--------------------------------------------------------------------------------
2325aab470 | Neil Moore | 2014-03-27 00:44:20 -0400

Add a missing break (PleasingFungus)

--------------------------------------------------------------------------------
432ff94ce6 | Shmuale Mark | 2014-03-27 00:38:56 -0400

Empty removed books/rods.
This was causing the problem in 8308.

--------------------------------------------------------------------------------
cc4fd4c892 | Steve Melenchuk | 2014-03-26 22:20:54 -0600

Explicitly invalidate agrid on renouncing TSO / Dith.
And don't implicitly update the agrid every turn with a halo.

Fixes Dith's umbra not going away on renouncing (DracoOmega).

--------------------------------------------------------------------------------
af65664e89 | Chris Campbell | 2014-03-27 04:07:59 +0000

Let Vampires continue bottling blood if reduced below level 6 mid-bottling
Since that should be impossible.

--------------------------------------------------------------------------------
d727d7501f | Chris Campbell | 2014-03-27 04:06:16 +0000

Let Vampires bottle blood in forms that can butcher (#7852)

--------------------------------------------------------------------------------
d0723c5c33 | Chris Campbell | 2014-03-27 04:05:03 +0000

Mention rot immunity on A screen for VS and Gr

--------------------------------------------------------------------------------
b8713981bc | Chris Campbell | 2014-03-27 04:03:47 +0000

Remove a reference to corpse sacrifice by butchery
Obsolete since 7d6de33069!

--------------------------------------------------------------------------------
74404fdfec | Chris Campbell | 2014-03-27 03:08:22 +0000

Show "disrupt" in Undeadhunter's inscription

--------------------------------------------------------------------------------
55f82b9fce | Steve Melenchuk | 2014-03-26 21:02:32 -0600

Increase limit for showing tiles affected by spells (gammafunk, |amethyst).
And ASSERT if we go beyond that limit.

The old limit was being hit for maximum power Glaciate.

--------------------------------------------------------------------------------
78c1940577 | Neil Moore | 2014-03-26 22:38:36 -0400

Abilities cost hunger, not food (twelwe, Grunt)
Among other problems, "Food" could be confusing when listed alongside
the Fedhas abilities which cost "Fruit":
  b - Sunlight         2mp, Food
  c - Growth           2mp, Fruit

Widen the column, and shrink the failure rate column, to compensate.

--------------------------------------------------------------------------------
563cca605a | Steve Melenchuk | 2014-03-26 20:37:12 -0600

Try harder to place abyss rune vaults.
The backup code for placing the rune on its own isn't gone yet, but it
should be needed considerably less now.

--------------------------------------------------------------------------------
2122dce6c8 | Nicholas Feinberg | 2014-03-26 22:12:35 -0400

Natasha description rewrite

--------------------------------------------------------------------------------
53ee057314 | Steve Melenchuk | 2014-03-26 19:52:24 -0600

Disable a vault (possibly pending rebalancing).
Playtesting feedback for this has been uniformly negative; it needs more
reworking before it can be considered usable.

--------------------------------------------------------------------------------
ff0e297143 | Steve Melenchuk | 2014-03-26 19:16:56 -0600

Let Mephitic Cloud be cast as a monster emergency spell.
Relevant for Natasha.

--------------------------------------------------------------------------------
8f1b972f6e | gammafunk | 2014-03-26 19:45:25 -0500

Don't allow a duration to be decremented to a negative value (#8289).
When the player receives a duration midpoint message, for some
durations a randomized delay is added at that point to prevent them
from knowing exactly how much duration is left. This commit fixes a
bug where delay from a very long player turn together with this
midpoint delay can cause a duration to become permanently negative,
allowing it to last forever without certain player interventions. Now
_decrement_a_duration will never set a duration to a negative value,
and we add a few more sanity checks as well as proper documentation to
this function. Thanks to blackcustard for tracking down this bug,
which was difficult to duplicate.

--------------------------------------------------------------------------------
290746a59a | Chris Campbell | 2014-03-26 19:52:27 +0000

Adjust some deck of Punishment cards
Make the Wraith card cause draining based on card power instead of
reducing XL, remove the Portal card, make the Damnation card rarer, reduce the
duration of the Swine card (for the power rescaling).

--------------------------------------------------------------------------------
06ca5bf287 | Chris Campbell | 2014-03-26 19:30:25 +0000

Don't let Nemelex's piety/penance levels affect card power from Punishment draws
Punishment cards now get their own flag, and base their card power on
experience level rather than evocations skill (in order to scale more like
other god wraths). Also makes punishment draws amuse Xom.

--------------------------------------------------------------------------------
25355f4cde | Chris Campbell | 2014-03-26 19:27:16 +0000

Clean up some broken deck identification handling
This check was accidentally unused due to allow_id incorrectly being
set to false for unmarked decks, but it's not really a necessary check
anyway. The existing methods of identification (drawing two cards, or
one card from a gifted deck) work fine. Also don't let Punishment cards
count towards identifying a deck.

--------------------------------------------------------------------------------
ada48b1d80 | Chris Campbell | 2014-03-26 19:27:15 +0000

Close a colour tag

--------------------------------------------------------------------------------
f0e9fa7159 | Chris Campbell | 2014-03-26 19:27:14 +0000

Reduce loot in an ice cave
Replace potions of experience with potions of heal wounds. Also re-subst
some substs in bailey.

--------------------------------------------------------------------------------
3e1e60c28b | Steve Melenchuk | 2014-03-26 13:24:19 -0600

Don't let scrying preserve otherwise-out-of-LOS clouds (simm).
RIP secret tech.

--------------------------------------------------------------------------------
9e948d2023 | Translators | 2014-03-26 11:11:53 +0100

[Transifex] Some formatting fixes and more invalidations.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
cc214943a5 | Raphael Langella | 2014-03-26 11:11:24 +0100

Fix double backslash in files pulled from transifex.

--------------------------------------------------------------------------------
f8746589b9 | Chris Campbell | 2014-03-26 01:12:43 +0000

Reduce loot in a bailey
Don't allow multiple potions of experience or scrolls of acquirement.

--------------------------------------------------------------------------------
e6afcca4b4 | Chris Campbell | 2014-03-26 01:12:39 +0000

Increase the number of curse scrolls from Ashenzari sacrifices
Fixed at 3 (still with random weighting for type), rather than 1-3.

--------------------------------------------------------------------------------
88ed826b63 | Chris Campbell | 2014-03-26 01:11:31 +0000

Rescale Ashenzari piety gain (elliptic)
In particular, slightly increase piety gain at low levels of boundedness, since
it's now harder to reliably get bound early.

--------------------------------------------------------------------------------
488b3d401e | Translators | 2014-03-25 23:54:06 +0100

[Transifex] Sync.
The massive recent description edits have invalidated many translations, so
this commit contains more removal than anything. But, better no translation
than outdated ones.
I'll do another sync before 0.14 release.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
01f32f4e25 | Raphael Langella | 2014-03-25 23:50:26 +0100

Rewrap descriptions.

--------------------------------------------------------------------------------
0d345628b0 | Raphael Langella | 2014-03-25 23:45:03 +0100

Fix and simplify handling of ll_RR format for translations.

--------------------------------------------------------------------------------
64a858d6f0 | ontoclasm | 2014-03-25 17:10:34 -0500

Fix orcish rims

--------------------------------------------------------------------------------
4d4824d9fd | Shmuale Mark | 2014-03-25 14:12:29 -0400

Rework the icemail mutation.
It's been said that the main effect is to turn your AC permanently
red. Although in a branch without fire attacks this wouldn't be as
true, the fact remained that it made optimal play waiting around
for 300 (!) turns after dissipation, the only cost being hunger.

Icemail is now binary, turning off when hit by fire, and after 300
aut (a reasonable rest time after a fight) coming back again with
all 10 AC. While active, it turns the AC display blue, and when
dissipated, normal; displaying like that seems to work well for
Lava Orcs. Casting fire spells will not disrupt it, or Condensation
Shield or Ozocubu's Armour; for the latter two, having to train both
fire and ice is enough of a deterrent to make it not a "no-brainer"
(as the comment called it).

--------------------------------------------------------------------------------
6eebc767a8 | Chris Campbell | 2014-03-25 15:40:48 +0000

Add information to ^! screen for gods that don't use Invocations skill

--------------------------------------------------------------------------------
9cbff625fb | Shmuale Mark | 2014-03-25 11:16:25 -0400

Large opal rings aren't unrandarts.

--------------------------------------------------------------------------------
806dd9276e | Chris Campbell | 2014-03-25 14:04:54 +0000

Update and improve god descriptions
And a missed spell description.

--------------------------------------------------------------------------------
d88e64c68b | Chris Campbell | 2014-03-25 10:58:29 +0000

Uncapitalise some vault names

--------------------------------------------------------------------------------
f5a9605d5a | Andrew Minton | 2014-03-25 04:12:06 -0400

Remove damage traps, ~, ^ from vaults (except Zot:5).
[Committer's note: kept them around in Ossuary and Tomb as well;
they're a pretty iconic feature of the two placecs and confining
the traps to one portal vault and one branch seems fine.]

--------------------------------------------------------------------------------
5545dd3c9d | Steve Melenchuk | 2014-03-24 22:15:59 -0600

Fix arc blade discharge behaviour.
The "new" behaviour is what was intended all along, yet never somehow
made it into the final version of that commit.

Using cast_discharge was using to strange behaviour (especially when
monsters, e.g. Nikola, were using it).

--------------------------------------------------------------------------------
0c216963e8 | Neil Moore | 2014-03-24 22:53:19 -0400

Handle vines in tiledef_lint.
It was reporting as unused all of the tiles except MONS_VINE_N.

--------------------------------------------------------------------------------
06b6985f12 | Chris Campbell | 2014-03-25 00:38:04 +0000

Fix Silence description (wheals)

--------------------------------------------------------------------------------
22f132c697 | Chris Campbell | 2014-03-24 23:36:43 +0000

Update and improve spell descriptions

--------------------------------------------------------------------------------
3e4c6acefe | Chris Campbell | 2014-03-24 21:11:31 +0000

Fix spacing in some descriptions

--------------------------------------------------------------------------------
0fe3354afd | Chris Campbell | 2014-03-24 21:10:44 +0000

Don't let missile brand affect sticks to snakes

--------------------------------------------------------------------------------
8647f4a4d4 | Chris Campbell | 2014-03-24 19:37:47 +0000

Reduce song of slaying noise
As loud as a shouting spider.

--------------------------------------------------------------------------------
de9d9ae91f | Chris Campbell | 2014-03-24 19:35:12 +0000

Rework some checks for player shout volume
Removes a bit of duplication, and makes shoutitis still increase shout
volume if transformed into something noisy/quiet.

--------------------------------------------------------------------------------
b7ac591dc2 | Chris Campbell | 2014-03-24 16:48:13 +0000

Mention Gargoyle flight on %
Since Te and black Dr show it here too.

--------------------------------------------------------------------------------
41e190ba7b | Chris Campbell | 2014-03-24 16:47:33 +0000

List water walking and ring of flames after innate mutations on A screen

--------------------------------------------------------------------------------
69cae2552e | Chris Campbell | 2014-03-24 16:22:44 +0000

Adjust a check for inaccessible items

--------------------------------------------------------------------------------
6c5500c988 | Chris Campbell | 2014-03-24 16:22:43 +0000

Fix Animate Skeleton wasting a turn with corpses hidden in deep water 
(simmarine)
It was finding corpses that were underwater and marking them as possibly
animatable, but then never actually allowing those to be animated (for
non-swimming species).

--------------------------------------------------------------------------------
3bb72f1063 | Neil Moore | 2014-03-24 12:08:31 -0400

Update 0.13.2 changelog.
(cherry picked from commit 052d4d51a16ec75d82d5a761b3a39efe9820aaea)

--------------------------------------------------------------------------------
71ca787205 | Neil Moore | 2014-03-24 12:00:46 -0400

Fix monster rod MP costs.
For single-spell rods, they were always 1MP.  For multispell rods,
monsters were charged for the previous spell in the list (or 1MP
if they picked the first spell).

--------------------------------------------------------------------------------
2570cf5dbe | Chris Campbell | 2014-03-24 15:49:47 +0000

Reduce variance of HP/MP drain from Lugonu's enter abyss ability

--------------------------------------------------------------------------------
36435b43fe | Chris Campbell | 2014-03-24 15:49:42 +0000

Remove some references to nonexistent rod spells

--------------------------------------------------------------------------------
b0a8830624 | Chris Campbell | 2014-03-24 15:49:36 +0000

Cap Summon Swarm at 12 summons
Instead of 99.

--------------------------------------------------------------------------------
bf19594d00 | Chris Campbell | 2014-03-24 15:49:15 +0000

Update some item descriptions

--------------------------------------------------------------------------------
7d9f73436d | Chris Campbell | 2014-03-24 04:34:13 +0000

More skill description tweaks

--------------------------------------------------------------------------------
38b53f5094 | Chris Campbell | 2014-03-24 04:34:12 +0000

Allow all forms to speak
All of these could read scrolls (except wisp) and invoke god abilities,
and tree form could cast spells too. Disallowing those from what are
already some of the most limited forms seems hugely problematic, whereas
allowing speaking is unlikely to change much other than making the list
of form restrictions slightly simpler.

--------------------------------------------------------------------------------
ae7c95981e | Shmuale Mark | 2014-03-23 20:21:34 -0400

Mark some unrands as unholy, not evil.

--------------------------------------------------------------------------------
a85b803316 | Chris Campbell | 2014-03-23 23:46:31 +0000

Tweak some species descriptions
Mainly shortening VS description so it takes 2 lines like all other
descriptions.

--------------------------------------------------------------------------------
84cf0c1edb | Chris Campbell | 2014-03-23 23:46:29 +0000

Fix some command descriptions

--------------------------------------------------------------------------------
f1c13b0800 | Chris Campbell | 2014-03-23 23:46:27 +0000

Improve some branch descriptions

--------------------------------------------------------------------------------
322d0edc83 | Chris Campbell | 2014-03-23 23:46:25 +0000

Update and improve skill descriptions

--------------------------------------------------------------------------------
6c8067094e | Chris Campbell | 2014-03-23 23:46:23 +0000

Update and improve card descriptions

--------------------------------------------------------------------------------
793d233a4a | Chris Campbell | 2014-03-23 23:46:21 +0000

Don't let ravens or eldritch tentacles eat corpses
It only really has an effect on undead which can heal from it (and even
that is probably somewhat questionable).

--------------------------------------------------------------------------------
f2e932fb08 | tenofswords | 2014-03-23 18:45:55 -0400

Volcano edits
 * Don't give out complete trash like potions of poison or flaming daggers
   in the loot, loot is already randomly useless per-build anyway.
 * Tweak and fix some intelligent monster set equipment settings; buff
   Harold / draconian / hell knight equips but nerf some minion equips,
   arm the toenail golem smiths with hammers, always give elves armour.
 * Firespitter statues: Replace fireball with bolt of fire for the same
   damage dice but a chance to avoid, throw out unused code.
   * trial_of_firespitters: Cut statue count by almost half, provide
     a _single_ pre-id'd potion of resistance for suicide-running, block
     off the statues with lava to discourage glacially shooting them down.
 * volcano_aerie: Remove the volcanic fog machine due to extreme oddities
   with large cloud generators in tiny spaces and punishing not closing
   doors on clouds. Place a few more clouds in the lava pools to compensate.

--------------------------------------------------------------------------------
b49671fe04 | tenofswords | 2014-03-23 17:03:49 -0400

Flood Swamp's layouts with more decorative vaults
With some light edits to one of evilmike's drafts to shrink them
as was shown to be the main concern against using it, alongside a
few vaults of my own, this places a decorative vault on every floor
of Swamp:1-4, close to half and half of either rock room ruins or
mangrove passage-ways and clearings. (Most of either type are very
generic and randomized, and there's a passable number of vaults
for each type as of this writing, at 11 and 15 respectively.)

This gives more tactical terrain and freshens up some of the
onerously-homogenous watery layouts with small splashes of more
standard floor per floor. It's more dry land, at any rate.

(Also, organize the .des to put the decorative vaults in a section
seperate from the regular vaults, to aid reading the file.)

--------------------------------------------------------------------------------
1b529ca1a9 | gammafunk | 2014-03-23 15:54:49 -0500

Tweak the monster throw ability scoring function
Increase the score given to monsters before squaring by 2, so that a
location next to a single tough or nasty monster will always score
higher than a location far away near lots of open space.

--------------------------------------------------------------------------------
d73720f461 | Chris Oelmueller | 2014-03-23 16:42:55 -0400

Fix monster_info::res_magic for the recent MR changes

--------------------------------------------------------------------------------
a3591d8548 | Shmuale Mark | 2014-03-23 15:57:39 -0400

Clarify lair roulette branch and Dithmenos descriptions.

--------------------------------------------------------------------------------
25ed632966 | Chris Campbell | 2014-03-23 19:39:21 +0000

Fix spacing in draconian scale descriptions

--------------------------------------------------------------------------------
f1b5b972f2 | Chris Campbell | 2014-03-23 19:25:12 +0000

Update some branch descriptions

--------------------------------------------------------------------------------
846207c17e | Chris Campbell | 2014-03-23 19:25:11 +0000

Fix the piety display sometimes not redrawing when losing piety

--------------------------------------------------------------------------------
c32253135d | Chris Campbell | 2014-03-23 19:25:10 +0000

Update Fighter description

--------------------------------------------------------------------------------
478b61d0b8 | Chris Campbell | 2014-03-23 19:25:10 +0000

Remove an unused paramater from is_feat_dangerous() (|amethyst)

--------------------------------------------------------------------------------
641055a5d1 | Chris Campbell | 2014-03-23 19:25:09 +0000

Fix blinks placing the player over deep water/lava with temporary flight
It should only be possible with permanent flight (or on species that
can swim).

--------------------------------------------------------------------------------
06a901b0f7 | Chris Campbell | 2014-03-23 19:25:08 +0000

Remove MONEAT_FOOD from harpies and Gastronok
They were the only two monsters using it (allowing them to occasionally
eat food or corpses from the floor), and it was very unlikely to ever have
a significant effect.

--------------------------------------------------------------------------------
a29d269e14 | Chris Campbell | 2014-03-23 19:25:07 +0000

Update/improve ability descriptions

--------------------------------------------------------------------------------
b8c3d6f85e | Chris Campbell | 2014-03-23 19:25:07 +0000

Adjust the display of variable-piety abilities
The previous message ("It will drain your piety while it is active.")
wasn't really accurate for either of the abilities that it applied to.

--------------------------------------------------------------------------------
299db0cef6 | Chris Campbell | 2014-03-23 19:25:06 +0000

Make Jiyva's jelly paralysis cost more piety when affecting large numbers of 
slimes
Making it fairly expensive to paralyse large numbers of jellies (since
Jiyva piety is incredibly plentiful).

--------------------------------------------------------------------------------
5801984d23 | Chris Campbell | 2014-03-23 19:25:05 +0000

Monster description improvements continued
Various minor tweaks, re-sort some monsters alphabetically and/or into
the vault monsters section.

--------------------------------------------------------------------------------
24bb9daaa4 | Chris Campbell | 2014-03-23 19:25:04 +0000

Improve draconian and demonspawn descriptions
Such that there are no longer two sections that read like entirely
separate descriptions.

--------------------------------------------------------------------------------
35fe81ed4c | Chris Campbell | 2014-03-23 19:25:04 +0000

Adjust monster constriction resistance
Check for spines generally, not just porcupines, and remove a special
case for flaming corpses.

--------------------------------------------------------------------------------
827a85bfc7 | tenofswords | 2014-03-23 11:31:16 -0400

Depths entry vault, Zot entry vault edit-fest
For vaults that _have_ to be traversed in every successful game, the draconian
numbers in Zot entry vaults have started to become very exaggerated. They've
become a maligned cap-off of the long and ardous journey through Depths, and
such a concern was the impetus for a bit of review and quite a few edits.
 * Reduce what has become a flood of draconians over time in most Zot entries,
   both in some dilution with some appropiate Depths representatives as well
   as a general flattening of Zot entry vault monster numbers.
 * Edits for several other large vaults that also (can) contain Zot entrances:
   * profane_halls's population excesses have been cut down further.
   * spin_cycle and slaughterboxes now place on U:$ and (very rarely) D:$.
   * spin_cycle, crystal_crosses and pleasuredromes got general saner set
     tweaks, plus lost random base draconian placement for the last two.
   * lemuel_castle_with_subvaults got set vs. depth adjustments (including
     a new set of giants) and much less excessive draconian settings.
   * Grunt's floating 098 vaults mostly place much less draconians on Depths:$;
     they're pretending to be Zot entries and thus fall under above standards.
 * Tweak the Depths entrances some more due to population changes past them.
   * Wizlabs no longer have any chance for D:$ placement, due to the significant
     gap between there and the other possible depths combined with being much
     easier to delay than most portal vault locations.

--------------------------------------------------------------------------------
6197578066 | Chris Campbell | 2014-03-23 10:04:53 +0000

Don't let boulder beetles start rolling in shallow water (#8303)
Since they'll just stop immediately.

--------------------------------------------------------------------------------
8a8e0fa861 | Neil Moore | 2014-03-23 00:51:37 -0400

Fix mismatched colour tags in LO mutation list (#8304)

--------------------------------------------------------------------------------
afc2efcec2 | gammafunk | 2014-03-22 23:05:00 -0500

Document some functions and remove some des whitespace

--------------------------------------------------------------------------------
d3e69da935 | gammafunk | 2014-03-22 23:03:00 -0500

Rework the octopode crusher throwing ability
Previously this ability tried to throw victims into a "hard" dungeon
feature for 50% increased damage. This was mostly an excuse add extra
damage, it was almost always applied (hard dungeon features are
abundant), and being next to a single hard feature doesn't have very
much relevance to player strategy. The new version scores each landing
site based on 1) all monsters adjacent to the site scored by the
square of their difficulty and 2) how many adjacent open squares there
are to the site. The end result is that hostile crushers will prefer
to throw the player some place more dangerous. For non-player victims,
the crusher (whether friendly or hostile) considers only distance from
the player as the score, preferring to throw as far from the player as
possible. The final landing site is a random weighted choice (using
distance) on along the throw path from the victim to the site with the
best score, with a random best site chosen if there's a tie in the
scores.

The minimum throw distance has been reduced to 2 squares from the
player, and the damage die size is 4 * monster HD now that the hard
feature check is no longer used.

--------------------------------------------------------------------------------
1b562684dd | Shmuale Mark | 2014-03-22 22:47:02 -0400

Don't lie about the resist chance for some spells.

--------------------------------------------------------------------------------
6695c62c6c | Steve Melenchuk | 2014-03-22 18:03:53 -0600

Changelog through 0.14-a0-3447-g819affa.

--------------------------------------------------------------------------------
819affaf40 | Steve Melenchuk | 2014-03-22 17:42:49 -0600

Make incurring Dith penance more determinstic.
In particular, any particular action either gives penance or doesn't, as
with basically other god actions.

--------------------------------------------------------------------------------
4f71c490e0 | Steve Melenchuk | 2014-03-22 17:36:55 -0600

Don't give Dith piety for gnoll shaman skeletons (MarvinPA).
Or zombies of other illuminating monsters.

--------------------------------------------------------------------------------
2afddda130 | tenofswords | 2014-03-22 17:46:19 -0400

Don't place an Abyss version of a vault outside of the Abyss.
Aside from the obvious content movement unintentionally introduced
and quashed as part of the creation of Depths, this should shush
connection warnings about diagonal entry-ways.

--------------------------------------------------------------------------------
bff944ef8d | Neil Moore | 2014-03-22 13:01:49 -0400

Update 0.13.2 changelog
(cherry picked from commit 5444d2b8d94905183b6b3e86a3f33287ce5f0b2c)

--------------------------------------------------------------------------------
2c333e7c6a | blackcustard | 2014-03-22 11:49:57 -0400

Correctly update the shopping list when (un)identifying items.
Fixes at least one (wizmode) inconsistency and at least one (wizmode and
non-wizmode) crash.

Inconsistency: Add an identified item to your shopping list. Unidentify it
(wizmode). Note that the price in the shopping list has not updated.

This inconsistency does not manifest in normal play because identifiying
items updates the shopping list and you can not unidentify items outside
wizmode.

The crash: Empty your shopping list. Add an unidentified scroll you cannot
afford to your shopping list. This scroll is the only item on the shopping
list. Therefore it is the cheapest item on the shopping list that you
cannot afford. Identify another scroll of the same type, causing its price
to increase. Get enough gold to buy it at the old unknown price, but not
at the new known price. Watch the assertion failure when the shopping list
code concludes that you simultaneously can and can not afford to buy the
cheapest previously unaffordable item on your shopping list.

--------------------------------------------------------------------------------
86c20c6dd8 | Neil Moore | 2014-03-22 11:37:49 -0400

Add missing message channels to options guide TOC.
They were added to the documentation in 0.14-a0-52-gae74471, but not to
the table of contents.

--------------------------------------------------------------------------------
b19ebb8e74 | Chris Campbell | 2014-03-22 11:22:32 +0000

Don't let monsters abjure with a rod of shadows

--------------------------------------------------------------------------------
fb3b2ccdc0 | Chris Campbell | 2014-03-22 11:15:53 +0000

Remove the unused HOLY_LIGHT beam/zap
Confusingly it's not used by silver star's SPELL_HOLY_LIGHT. In theory it
seems to be used by Zin's silver corona recite effect, but since nothing
resists or is vulnerable to it it actually does nothing. Silver corona
still just does sticky flame-levels of damage to all chaotic targets, as
it claims to in the comment. ZAP_HOLY_LIGHT apparently existed just to
make things even more confusing (if a player somehow managed to cast
SPELL_HOLY_LIGHT they would get a completely different effect to the
monster version!).

--------------------------------------------------------------------------------
b668a25087 | DracoOmega | 2014-03-22 02:36:43 -0230

Reduce chance of monsters casting abjuration somewhat

--------------------------------------------------------------------------------
82c2087cf2 | DracoOmega | 2014-03-22 02:36:42 -0230

Don't let monsters abjure using a Rod of the Swarm

--------------------------------------------------------------------------------
779366f74f | Neil Moore | 2014-03-22 01:04:38 -0400

Don't consider walking through clouds to be wanton (#7060)
First fixed in 0.13-a0-816-gb11031e, then broken by 0.14-a0-32-gdbef0e0.

--------------------------------------------------------------------------------
aa30ffd8de | Neil Moore | 2014-03-22 00:44:48 -0400

Don't crash when starting with a shield and no weapon.

--------------------------------------------------------------------------------
739405a8a0 | Chris Campbell | 2014-03-22 04:29:40 +0000

Give VS a low chance of acquiring wands of heal wounds instead of no chance
Similar to hasting and teleportation for Formicids, it's not strictly
useless if you have allies.

--------------------------------------------------------------------------------
34366dd22e | DracoOmega | 2014-03-22 01:41:43 -0230

Make wands acquirement disfavor wands of hasting and teleport for formicids
While these aren't strictly useless for formicids (you can teleport
enemies and haste allies), both are considerably less useful than for
other races due to permastasis, so I think acquirement should reflect
that when handing out items (as it does for vine stalkers).

--------------------------------------------------------------------------------
1040232743 | DracoOmega | 2014-03-22 01:41:41 -0230

Buff rods of (fiery) destruction a bit
Both destruction and fiery destruction felt rather underwhelming in
practice, particularly compared to the traditionally good rods. This
lowers the level of random bolt from 5 to 4 (letting you get more
than 3 shots from a full-capacity rod) and raises the damage on both
(moreso for fiery than non-fiery destruction).

--------------------------------------------------------------------------------
fa59a01f93 | DracoOmega | 2014-03-22 01:41:39 -0230

Reduce explosive bolt message spam just a little
The primary bolt of this effect isn't actually capable of doing
damage itself, but would still print 'X appears unharmed.' whenever
it hit something, which is both needless and a bit misleading.

It unfortunately will still print the monster's wounded state upon
impact, if they were previously wounded (even though this bolt cannot
injure them further). Perhaps attacks that inflict no damage should
simply not do this in general, rather than being special-cased here?

--------------------------------------------------------------------------------
297819c962 | DracoOmega | 2014-03-22 01:41:37 -0230

Fix various tracer issues with the Rod of Destruction
Tracer attack prompts were being printed for the actual beam the rod
produced, rather than the range of beams the rod COULD produce. For
example, if you tried to fire it at a friendly iron golem, you would
get a warning prompt only for quicksilver bolt (which would then let
you abort without spending time or mp, allowing you to reroll a new
beam type from the rod). This was similarly true with bouncing beams
prompting for self-harm in confined spaces and letting you cancel to
make sure you got something else.

Now the tracer should consider the beam both irresistable and
bouncing (since it can be either), independant of whether the type
you actually roll ends up being so (and thus no more free beam
rerolls).

The method to do this feels slightly involved, but I'm not sure a
simpler way, given that no existing damage type both bounces and is
irresistable. (It will also still technically prompt you for harming
rF+++ rC+++ rElec+++ allies you could hit only if the bolt bounced,
which is a situation that can never occur, but this seems a far less
important problem than the one being fixed here - and rather hard to
resolve).

--------------------------------------------------------------------------------
cc756c7349 | DracoOmega | 2014-03-22 01:41:36 -0230

Don't print a duplicate message when cancelling a beam that could hit an ally

--------------------------------------------------------------------------------
70ca01ebf5 | DracoOmega | 2014-03-22 01:41:33 -0230

Don't let summoned shambling mangroves produce permenant fauna
They should now share the same summon duration, if the mangrove
itself is summoned.

--------------------------------------------------------------------------------
037aba7d0e | Neil Moore | 2014-03-21 23:32:50 -0400

Fruit doesn't grow on goblins.

--------------------------------------------------------------------------------
9e17c8a20c | Neil Moore | 2014-03-21 23:32:50 -0400

Use one_chance_in in Lua too (reaverb)

--------------------------------------------------------------------------------
c5d36bef53 | tenofswords | 2014-03-21 23:25:38 -0400

Finish off forest.des movements with heavy edits
The most noticeable part of this is that the previous Forest branch end
vaults are now in Depths, with less spriggans and Forest denizens in
exchange for a bunch of appropiate Depths natives and a little nerfing.
(The same has also been applied to the old spriggan_forest encompass vault.)
There's not a great chance of getting the vaults per-game, and there's only
one vault per game in the Depths:2-4 range, but this seems like enough
variety in homes for the Enchantress to take a hit on her random placement
chance for now. The vaults are veto'd if she appears randomly, anyway,
as a small cap on the amount of Forest one gets per game.

The handful of Forest vaults left are mostly moved to Lair.
Some other vaults dispersed in previous commits got a little editing, too.

--------------------------------------------------------------------------------
6dc7f8d36c | Neil Moore | 2014-03-21 21:39:23 -0400

Reimplement remembered_monster_colour (#8299)
It went missing in 0.1.4 but has been in the documentation ever since.

--------------------------------------------------------------------------------
5348755068 | Shmuale Mark | 2014-03-21 09:41:52 -0400

Some more description fixes.

--------------------------------------------------------------------------------
7f1221ba96 | Chris Campbell | 2014-03-21 11:57:27 +0000

Tweak mana viper description (dck)

--------------------------------------------------------------------------------
39c809c54b | Chris Campbell | 2014-03-21 11:54:57 +0000

Rewrap descriptions

--------------------------------------------------------------------------------
5ee52639f2 | Chris Campbell | 2014-03-21 11:54:56 +0000

More monster description improvements

--------------------------------------------------------------------------------
fbd3073f5e | Nicholas Feinberg | 2014-03-21 02:44:30 -0500

Revised monster descriptions
Mostly grammar fixes, with some improvements in style as well. Pruned
desperate attempts to convey AC/EV info in monster descriptions (e.g
Antaeus); fixed strange singlets (apoc. crab mandible, draconian monk
leg). Improved obsolete descriptions (formicid venom mage, boggart).
Added gameplay info in a few places (e.g. oklob sapling, royal jelly).

Also moved many (all?) vault monsters to the vault monster section.

Tweaked rotten bat description.

--------------------------------------------------------------------------------
db3688e883 | Steve Melenchuk | 2014-03-20 23:12:45 -0600

A few changelog entries for a (soon-to-be?) 0.13.2 release.
Hopefully, this will motivate a few of us with nothing better to do to
go and find commits to cherry-pick back into 0.13 if necessary.

(cherry picked from commit 71f4f6b505eddc5f15dc03f72576a1a8f84c47b1)

Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
7bab918f9f | Neil Moore | 2014-03-20 23:12:17 -0600

A few more 0.13.1 changelog fixes.
(cherry picked from commit 537141362ab7aaa29c701ee1bd021e68df81e2d3)

--------------------------------------------------------------------------------
8c6bfbca7f | Adam Borowski | 2014-03-20 23:12:15 -0600

Changelog for 0.13.1
(cherry picked from commit 52ccdf9c4f80535ad7b9777b14d963496b42f232)

Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
ab2fbe36f9 | Neil Moore | 2014-03-20 23:11:28 -0600

Update 0.13 changelog through 0.13.0-58-ga7b73c1
(cherry picked from commit 13bd910c5135accc2e409a143b345f384eadbc33)

Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
3405a27b0e | Adam Borowski | 2014-03-20 23:10:55 -0600

Remove a bunch of not-0.13 items from the changelog.
(cherry picked from commit 429a20e13a36811f2fa1c7af79850e37a30cefb6)

Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
dc1dcd330b | Steve Melenchuk | 2014-03-20 22:10:37 -0600

Disallow Shadow Mimic under penance (tedric).
Reported here:

https://crawl.develz.org/tavern/viewtopic.php?p=159178#p159178

--------------------------------------------------------------------------------
7a08b247f3 | Chris Campbell | 2014-03-21 03:48:11 +0000

Adjust a fangs mutation message

--------------------------------------------------------------------------------
6a935db230 | Chris Campbell | 2014-03-21 03:48:10 +0000

Remove mummies from an Ashenzari overflow vault
Ash isn't the god of mummies.

--------------------------------------------------------------------------------
d61cf4bbc8 | DracoOmega | 2014-03-21 00:57:57 -0230

Let orange demons, quasits, and chaos spawn open doors
All the other numbered demons already did so (even hell beasts!),
and these exceptions feel sort of arbitrary and unintuitive (and
also don't seem to serve a mechanical purpose).

--------------------------------------------------------------------------------
3595075b7f | DracoOmega | 2014-03-21 00:30:19 -0230

Greatly increase frequency (and reduce variance of) servitor spellcasts
One of the most obvious problems with Spellforged Servitor is that the
normal monster spellcasting frequency is rather low and this is all the
servitor can meaningfully do. Due to this, it was prone to spending long
periods appearing to do nothing (to the point that it wasn't even
obvious to players that it was 'attempting' to attack any monsters at
all, leading more than a few to reissue their attack orders - to no
effect). Even aside from a lack of meaningful feedback, casting a level
7 spell only for it often do nothing is underwhelming (even if it was
quite effective on the ocassions it would decide to cast rapidly).
Given that the servitor's role is purely confined to this spell, I
think it's fine to bend the rules for it.

Instead of the standard chance to cast a spell each action, servitors
will ALWAYS attempt to cast a spell, but the energy cost of this
spell is randomized (from between 10 and 25 energy currently) to
simulate turns spent idling instead of casting, without allowing the
chance of protracted periods where they don't seem to be doing anything
(which even a very high standard frequency would permit on a series of
unlucky rolls). It's arguably a touch on the fast side (but it IS a
level 7 dual-school spell that requires multiple other spells learned
for support), but it feels a lot better and more active in play.

(The implementation is a touch hacky, but in absense of a more full and
adjustable spell frequency system, I'm not sure there's any cleaner
way to do this.)

--------------------------------------------------------------------------------
5a12eb2f96 | DracoOmega | 2014-03-21 00:30:17 -0230

Tweak servitor spell lists
Also only use the fallback list if there's neither primary nor
secondary spells otherwise (or we could end up mixing fireball and
magic dart into one servitor).

--------------------------------------------------------------------------------
e5259cdc02 | DracoOmega | 2014-03-21 00:30:15 -0230

Properly calculate servitor ideal range with non-full spell lists

--------------------------------------------------------------------------------
115e4bb162 | DracoOmega | 2014-03-21 00:30:13 -0230

Lower monster dazzling spray damage / accuracy
On moderately high HD casters, it was roughly as damaging as bolt
of fire/cold while also being considerably more accurate (and
blinding/confusing things!). This lowers its power considerably
to something more in line with what you might expect for its level,
compared to similar monster conjurations.

--------------------------------------------------------------------------------
fbd87cd282 | DracoOmega | 2014-03-21 00:30:11 -0230

Fix some issues with monster dazzling spray tracers
For a couple of reasons, monsters would fail to fire them at other
monsters (only players).

--------------------------------------------------------------------------------
7f0333e25d | Shmuale Mark | 2014-03-20 14:17:12 -0400

Remove gnomes.

--------------------------------------------------------------------------------
faceef94b2 | Nicholas Feinberg | 2014-03-20 05:02:24 -0500

Rewrite Agnes' description and dialogue

--------------------------------------------------------------------------------
1f3bc11509 | Chris Campbell | 2014-03-20 06:30:27 +0000

Reword a Zin message

--------------------------------------------------------------------------------
46baca08c9 | Chris Campbell | 2014-03-20 06:26:53 +0000

Remove deep dwarf berserker descriptions

--------------------------------------------------------------------------------
7074f2d489 | Chris Campbell | 2014-03-20 06:26:32 +0000

Remove a changelog entry from the wrong version

--------------------------------------------------------------------------------
b660a6bcec | Chris Campbell | 2014-03-20 05:06:57 +0000

Shorten war gargoyle description (PleasingFungus)

--------------------------------------------------------------------------------
eec2bc8ca4 | DracoOmega | 2014-03-20 02:27:40 -0230

Don't generate tons of noise upon arrival via formicid self-shafting
The ability already has a lot of risks and drawbacks without immediately
alerting everything nearby to your presence.

(I personally still feel it could do without so long a delay /
interruptibility without being overpowered, since stranding yourself
on an unexplored floor is already a sufficiently huge downside)

--------------------------------------------------------------------------------
66f9e36f75 | DracoOmega | 2014-03-20 02:27:39 -0230

Nudge aquamancer HD down by 1
Unrelated to the previous commit; being much more common at shallow
depth than they used to be, I felt that a very minor power reduction
might be appropriate.

--------------------------------------------------------------------------------
6e4377313a | DracoOmega | 2014-03-20 02:27:38 -0230

Give merfolk aquamancers and water nymphs see invis
To give at least a few threats in Shoals the ability to counter
invisibility (and these felt appropriately magical).

--------------------------------------------------------------------------------
011a96ab30 | DracoOmega | 2014-03-20 02:27:37 -0230

Undo wolf spider melee nerf
While originally intended to help keep their status of having weaker
poison than other spiders in exchange for stronger base melee (by
making application against AC more difficult now that the poison
damage formulas had been changed to HD-based and they could not simply
have less of it), I'm not sure this is an interesting niche to
deliberately maintain in the first place, and the damage reduction was
hurting their effectiveness more generally.

--------------------------------------------------------------------------------
5871f7d3d3 | DracoOmega | 2014-03-20 02:27:36 -0230

Spice up Josephine
Josephine having both the exact same spellset and band as normal
necromancers felt a little lackluster, so this is an attempt to make
her a little more distinctive (and also threatening).

Her new spell list is: ghostly fireball, dispel undead, vampiric
draining, and animate dead. Ghostly fireball combos with her zombie
army and gives earlier exposure to a later mechanic (a bit like a
mini-revenant that cannot readily produce new minions). This also
gives her rN+++, which fits with her description (and also lets
her use ghostly fireball at close range, which otherwise she
generally refuses to do to avoid killing herself with it.)

(This commit also removes dispel undead from Nergalle to move to
Josephine; I'm a bit iffy on two similar-depth uniques having the
same uncommon spell, and Josephine definitely needs it more than she
does, but am not opposed to anyone reverting that if they wish).

--------------------------------------------------------------------------------
4192f577d4 | DracoOmega | 2014-03-20 02:27:35 -0230

Restore Sonja's accidentally-removed curare
She was a very sad kobold without it.

--------------------------------------------------------------------------------
7b405680e6 | DracoOmega | 2014-03-20 02:27:34 -0230

Tweak siren drowned soul mechanics
With sirens much easier to access in general now, I think the ramp-up
time on their drowned soul call is both overly generous and needless
complexity. Now the rate of drowned souls is independant of time and
can start immediately under the circumstances that allow it.

Also provide a message if other allies show up to interrupt the call,
which might make this interaction a bit clearer.

--------------------------------------------------------------------------------
57828fb0b1 | DracoOmega | 2014-03-20 02:27:33 -0230

Move Asterion somewhat deeper
Rather than showing up in late D (but not Vaults and such), give
him the same depth range as Nikola.

--------------------------------------------------------------------------------
13ab599da9 | DracoOmega | 2014-03-20 02:27:32 -0230

Remove the cold-blooded flag from monster octopodes
Player octopodes aren't, and I don't think the correct solution here
is to make them so. They already differ sufficiently from normal octopi
in being able to survive indefinitely on land, so who knows what other
biological differences might exist?

--------------------------------------------------------------------------------
b0bd500754 | DracoOmega | 2014-03-20 02:27:31 -0230

Shock serpent tweaks
Cap the intensity of retribution discharge based on the serpent's
remaining hp (so that you cannot be shocked much more strongly for
excessive overkill - hello, stabbing), weaken it slightly in general,
and also reduce base melee damage slightly.

--------------------------------------------------------------------------------
b2ae9cb582 | DracoOmega | 2014-03-20 02:27:30 -0230

Some tweaks to monster OTR
Make monster OTR last longer, but prevent monsters from refreshing it
while active (which should make them a bit more effective, and also
flash the screen much less). Increase the amount of poison damage
inflicted by it upon players.

--------------------------------------------------------------------------------
b225740e60 | DracoOmega | 2014-03-20 02:27:29 -0230

Boost the duration of monster poison clouds
This creates more parity with monster freezing cloud (which it's
generally weaker than, anyway), instead of often expiring only 2
turns after being placed.

--------------------------------------------------------------------------------
45fbbb30d2 | DracoOmega | 2014-03-20 02:27:28 -0230

Some adjustments to poison damage formulas
This is aimed at addressing a couple places where current poison
damage appears off (based largely on statistical data, augmented
by playtesting).

The scaling for AF_POISON is adjusted to make adders a bit less
dangerous while making some later things a bit more dangerous.
AF_POISON_STRONG in particular is boosted (redbacks seem to have
fared much worse since the change - probably getting lethal poisoning
during normal battles with them was not altogether uncommon in the
old system, but simply masked by a less clear indicator and copious
!curing). Poison needles are nudged up slightly, poison clouds
a decent bit more, and the variance for venom ammo smoothed a little.

--------------------------------------------------------------------------------
4b39ebb7e8 | Steve Melenchuk | 2014-03-19 20:48:43 -0600

Purge a few vault references to Ice Storm.

--------------------------------------------------------------------------------
93d2d49051 | Steve Melenchuk | 2014-03-19 19:33:29 -0600

Sync manual from wiki.
Mainly for races that will / won't be in 0.14.

Hopefully this won't need much more to be changed before 0.14 heads out.

--------------------------------------------------------------------------------
c99d65bffa | Steve Melenchuk | 2014-03-19 19:30:30 -0600

Generate card <-> deck lists on the fly (#8292).

--------------------------------------------------------------------------------
ea929c457e | gammafunk | 2014-03-19 20:03:25 -0500

Make a spell range check for spellforged servitor use r^2 distance
This was previously comparing a grid distance to a spell range for
purposes of setting the firing position.

--------------------------------------------------------------------------------
d1e05d0324 | Chris Campbell | 2014-03-20 00:22:05 +0000

Update Alchemist and Trowel card descriptions

--------------------------------------------------------------------------------
899c59f076 | Steve Melenchuk | 2014-03-19 17:43:49 -0600

Ugly tiles for the new cloud types.
Well, maybe some of them look better than others...

--------------------------------------------------------------------------------
72b0125d6e | Steve Melenchuk | 2014-03-19 17:28:47 -0600

Enums for tiles for the new cloud types.
If someone else doesn't get to this first, I'll probably churn up
something that at least doesn't look like steam.

--------------------------------------------------------------------------------
6d180408ad | Steve Melenchuk | 2014-03-19 17:19:24 -0600

Nudge a 16-altar temple slightly.
As well as its abyssal counterpart.

...because having it not be rectangular looks off.

--------------------------------------------------------------------------------
1faa2b8ede | Steve Melenchuk | 2014-03-19 17:19:04 -0600

Add Dith to levdes.vim.

--------------------------------------------------------------------------------
c9a7ac72a1 | gammafunk | 2014-03-19 02:42:29 -0500

Make all 15-altar temples have 16 altars (Arrhythmia)
These were intended to have all the temple gods, but with the addition
of Dithmenos they are missing one altar.  This commit changes the
three 15-altar vaults to accommodate 16 altars.  I kept the changes in
keeping with the existing vault design, but the original authors are
welcome to submit a patch with their own, updated version.

--------------------------------------------------------------------------------
f173aa4c96 | Neil Moore | 2014-03-19 03:06:50 -0400

Improve doxygen tagging of an enum.

--------------------------------------------------------------------------------
9e04ae6d8e | Neil Moore | 2014-03-19 02:51:16 -0400

Initialise a member.

--------------------------------------------------------------------------------
f421e69a4b | Neil Moore | 2014-03-19 02:41:07 -0400

Show inventory weights only for pickup/drop by default.
Add a third, default, value for show_inventory_weights, to enable
weights for pick-up and drop menus only.

Ctrl-W continues to toggle weight display in the current menu, but is
no longer persistent from one menu to the next.

--------------------------------------------------------------------------------
13ce0bc767 | Neil Moore | 2014-03-19 00:46:08 -0400

Formatting fixes.

--------------------------------------------------------------------------------
3572bd17dd | Neil Moore | 2014-03-19 00:44:15 -0400

Fix bad ikiller for kraken tentacles.

--------------------------------------------------------------------------------
c6433edf40 | Shmuale Mark | 2014-03-18 22:42:38 -0400

Let avatar-type monsters have skills.
The main change is that spectral pain weapons should do damage with
their brand now.

--------------------------------------------------------------------------------
661949f75b | gammafunk | 2014-03-18 19:57:58 -0500

Use blue as a menu highlighting colour instead of dark gray.
Some terminals don't want to display a dark gray background
differently from a black background, and we use blue highlighting by
default elsewhere already.

--------------------------------------------------------------------------------
b71c551ab8 | gammafunk | 2014-03-18 19:57:17 -0500

Improve the colours of the species and background selection menus (dpeg)
The visual distinction between light gray and white isn't very much,
which makes these menus still very busy for new players attempting to
decide upon a character.  We now use white for recommended choices,
dark gray for those not recommended, and simply don't display the
banned choices (e.g. FeAM) at all.

--------------------------------------------------------------------------------
4f4ed03cb6 | Chris Campbell | 2014-03-18 23:29:50 +0000

Make IOODs fizzle instead of exploding when colliding with low distance
Orbs that have only travelled one square will just dissipate. Should
prevent accidental self-explosion with the spell or the Orb card.

--------------------------------------------------------------------------------
7c2a7eb1ad | Shmuale Mark | 2014-03-18 18:51:31 -0400

Fix monster MR from artefacts.

--------------------------------------------------------------------------------
60e41a4e0f | Chris Oelmueller | 2014-03-18 18:36:34 -0400

Rescale MR artefact property from 35-99 range to 40/80 steps
Easier to compare to other MR items, more clear in the interaction with
MR resistance line on %, gets rid of shops approximately leaking the
amount of MR, and also removes a special-cased inscription handling.

{MR+} now indicates 40 MR across the board, {MR++} stands for 80.

Almost all MR unrands had to be adjusted one way or the other. Several
of them had MR in the range 30-50 and were converted to {MR+} (40 MR).
Exceptions and other changes are listed below:

- Bear Spirit: buffed to 80 from 50
- Chilly/Flaming Death: buffed to 40 from 20
- Elemental Staff: buffed to 80 from 60
- robe of Folly: buffed to -80 from -100
- Four Winds: buffed to 120 from 100
- Jihad: loses its 20 MR
- ring of the Mage: buffed to 80 from 50
- Spriggan's Knife: buffed to 40 from 20

--------------------------------------------------------------------------------
50d093e59a | Chris Oelmueller | 2014-03-18 18:36:34 -0400

Slightly buff MR armour and mutation
With the new MR scale, steps of 40 are guaranteed to pretty much always
have an effect showing up on the % screen. Furthermore, rings already
gave 40 as opposed to 30 from armour ego and MR mutation and are now
unified, thus more comparable for players.

--------------------------------------------------------------------------------
79192ce4fd | Shmuale Mark | 2014-03-18 17:43:39 -0400

Fix Book of Beasts order (rchandra).

--------------------------------------------------------------------------------
5be82303a5 | Shmuale Mark | 2014-03-18 13:22:31 -0400

Don't let Wanderers start with a 2h weapon and shield equipped (#7929).

--------------------------------------------------------------------------------
2f6f312294 | Steve Melenchuk | 2014-03-18 10:18:10 -0600

Disable spriggan_forest encompass vault pending a promised rework.
Also make the Forest random monster list assignment for it go away.

--------------------------------------------------------------------------------
b4a4f71ced | Steve Melenchuk | 2014-03-18 10:14:25 -0600

Disperse nicolae's forest vaults (#8067).

--------------------------------------------------------------------------------
b9c08f4895 | Neil Moore | 2014-03-18 08:21:53 -0400

Correct a pronoun.

--------------------------------------------------------------------------------
b37810154a | elliptic | 2014-03-18 02:37:02 -0400

Fix blood coagulation occasionally causing a burden discrepancy.
This could cause autopickup to burden the player with no prompt.

--------------------------------------------------------------------------------
b08d52d42e | gammafunk | 2014-03-18 00:16:40 -0500

Clean up and document the xom life-saving function
This function had three unused arguments, which I've removed.

--------------------------------------------------------------------------------
a18227ede6 | gammafunk | 2014-03-18 00:16:40 -0500

Clean up the player hp change and calculation functions
Move calc_hp() to player.cc, and fix all but a couple instances where
you.hp is changed directly to use set_hp() instead.  We'll eventually
just move these functions to inline methods for the player class, but
this reorganization will do for now.

--------------------------------------------------------------------------------
fbd6e7ded8 | gammafunk | 2014-03-18 00:16:40 -0500

Make the hp bar show the deterministic poison in WebTiles
This adds an yellow hp poison bar to the WebTiles display
("stats_hp_bar_poison") that's show when the player is poisoned and
their calculated hp after poison expires is lower than their current
hp.

--------------------------------------------------------------------------------
a5c58e37d8 | elliptic | 2014-03-18 01:05:16 -0400

Fix repeated messages lacking their x2 in character dumps (crate).

--------------------------------------------------------------------------------
a180b4f40a | Steve Melenchuk | 2014-03-17 22:42:16 -0600

Only check orthogonally for edge-ness of exit glyphs (#8290).
Later code assumes only checks for orthogonal squares; if there are exit
glyphs where the only open space is on a diagonal (cf.  minivault_10),
this would cause them to be picked as exits and then not connect to
anything.

--------------------------------------------------------------------------------
0a65ba9d52 | Chris Campbell | 2014-03-18 02:59:17 +0000

Adjust lugonu_bribe items
Just don't give an item for a few gods with no conducts and no simple
useless item (Makhleb, Oka, Sif), add items for Dith.

--------------------------------------------------------------------------------
a36c9fed35 | Corin Buchanan-Howland | 2014-03-17 21:15:59 -0400

Merfolk Lore
Adding merfolk lore in order to clarify what mermaids and sirens are and why 
they are different species.

--------------------------------------------------------------------------------
5b524ce2c7 | Chris Campbell | 2014-03-18 00:39:19 +0000

Re-sort Metabolic Englaciation in spellbooks (simmarine)
Also remove Ensorcelled Hibernation from the book of Ice.

--------------------------------------------------------------------------------
14ab85716a | Chris Campbell | 2014-03-17 22:10:20 +0000

Describe tree form limitations in !lignification description (#8285)

--------------------------------------------------------------------------------
e4b6bf1007 | Chris Campbell | 2014-03-17 22:10:18 +0000

Don't generate siren zombies
They have no attack.

--------------------------------------------------------------------------------
998ff18f7b | Steve Melenchuk | 2014-03-16 22:37:46 -0600

Deduplicate some altar Lua functionality.

--------------------------------------------------------------------------------
83888059d8 | DracoOmega | 2014-03-16 21:04:39 -0230

Make chunks weigh half as much

--------------------------------------------------------------------------------
1b1818f554 | DracoOmega | 2014-03-16 20:54:11 -0230

Yet more adjustments to unique weapon selection
This fixes a bug with the last commit that caused Donald to generate
with only plain unbranded weapons, restores the guarantee of bonus
plusses to Maud and Frederick's weapons even if they are unbranded,
and adjusts Donald's weapon selection to have a chance for bastard
swords or eveningstars instead of demon blades and whips (as with
Maud and Frederick now).

Also simplify some of Margery's code so as to duplicate less of
hell knights' (the only meaningful difference is she gets more demon
weapons, after all).

--------------------------------------------------------------------------------
9255d236e9 | elliptic | 2014-03-16 17:31:10 -0400

Fix hp bar/status light for poison not updating sometimes (wheals).
These indicators depend on regen rate, which can change in a variety of
ways. So redraw these indicators every turn if you are poisoned - inelegant,
but I don't see a better solution, and it shouldn't be a big deal since
the player usually isn't poisoned.

--------------------------------------------------------------------------------
b3cbc500bd | Steve Melenchuk | 2014-03-16 14:34:29 -0600

Changelog through 0.14-a0-3343-gf50c63c.
If this needs any more major updates between now and branching, I will
be a very unhappy Grunt.

--------------------------------------------------------------------------------
f50c63c7b1 | Shmuale Mark | 2014-03-16 14:08:01 -0600

Make Pandemonium runes increase exit chances.
A major complaint about Pandemonium is the bore of looking for an
exit once all 5 runes have been found and basically no challenge
is left. With 0 runes, the old chances are preserved (5% for a
exit to dungeon and 25% for an exit through the Abyss), but with
all runes it goes to 75% chance of an Abyss exit and 20% chance of
a Dungeon exit.

[Committer's note: the code for counting Pan runes has been split off
 into dlua/vault.lua, which is my doing.]

--------------------------------------------------------------------------------
4de47f9261 | Steve Melenchuk | 2014-03-16 14:01:01 -0600

Fix an off-by-one error (johnnyzero, #8284).

--------------------------------------------------------------------------------
9e1720a57d | Steve Melenchuk | 2014-03-16 13:35:30 -0600

More adjustments to hell knight / unique weapon sets (MarvinPA).

--------------------------------------------------------------------------------
a4e4665dfb | Steve Melenchuk | 2014-03-16 10:34:37 -0600

Reduce Depths demon weapon spam (elliptic).
...both by reducing the weight of hell knights and the chance that they
get demon weapons.

--------------------------------------------------------------------------------
db4ce4559e | Chris Campbell | 2014-03-16 16:17:47 +0000

Don't list curse scrolls on the item knowledge screen (#8282)

--------------------------------------------------------------------------------
1078df6f08 | Shmuale Mark | 2014-03-16 11:55:46 -0400

Make a warning for god-hated abilities (#8076).
The system tries to mimic the current system for spells, with a
red colouring and a mention of the dislike in the description, but
no prompt for actually using the ability. The only forbidden ones
I could think of were poison for TSO and (hell)fire for Dith.

--------------------------------------------------------------------------------
f4615ed73f | Steve Melenchuk | 2014-03-16 09:31:48 -0600

Don't crash baileys (#8283).
Oops.

--------------------------------------------------------------------------------
0242c21c59 | ontoclasm | 2014-03-16 01:48:55 -0500

Fix a rim

--------------------------------------------------------------------------------
f3034f2866 | ontoclasm | 2014-03-16 01:41:30 -0500

Brighten the roach tile

--------------------------------------------------------------------------------
044c1f8dcf | elliptic | 2014-03-16 02:05:58 -0400

Increase the radii of haloes of some items/monsters from N to sqrt(N^2+1).
It looks/plays a bit better and is consistent with spell ranges.

--------------------------------------------------------------------------------
6a60d70b81 | elliptic | 2014-03-16 02:05:58 -0400

Tweak TSO/Dith halo/umbra radii.
The old formula had three issues:
* Smallest radius was 1, meaning that orthogonally adjacent squares were in
  the halo but not diagonally adjacent squares. This meant that TSOites with
  this size halo wanted to avoid meleeing diagonally, which was awkward.
* Largest radius was 8, meaning that it missed a few squares at the edge of
  LOS (those at distance sqrt(65)), which was ugly and confusing for stuff
  like Dith's shadow step ability.
* Largest radius was reached at 170 piety, which was inconsistent with other
  god abilities (which either stop at 160 piety = ****** or go all the way to
  200 piety.

This commit addresses all of these issues: the smallest radius is sqrt(2),
the largest radius is sqrt(65), and the largest radius is reached at 160
piety exactly. This does mean a slight increase in halo size in general, so
it is a (very minor) buff to these gods.

--------------------------------------------------------------------------------
06cfa3b5d8 | Steve Melenchuk | 2014-03-15 22:02:51 -0600

Mark rod of clouds as possibly evil and possibly fiery (johnnyzero).
...since it gives negative energy clouds and clouds of flame.

--------------------------------------------------------------------------------
332c3c91e4 | Steve Melenchuk | 2014-03-15 20:42:00 -0600

Remove SPELL_MELEE from blood saints.
I think this was there originally to prevent Legendary Destruction from
getting spammed too much, but feedback is that they almost never use
either of ther invocations right now.

Let's see if this helps.

--------------------------------------------------------------------------------
e5fc197054 | Steve Melenchuk | 2014-03-15 18:42:37 -0600

Let Lua tag-placed vaults get the tag that placed them.
...so that the shop vault functionality in a previous commit works
properly.

--------------------------------------------------------------------------------
86b2fc4f56 | gammafunk | 2014-03-15 17:16:55 -0500

Rework a forest branch vault for crypt
This makes gammafunk_crypt_yreds_forest, formerly a crossover vault
for the forest branch, and places it in Crypt.  Updated the enemy set,
made the trees all whithered, and cleaned up some decorations.

--------------------------------------------------------------------------------
0963fee4ff | gammafunk | 2014-03-15 17:16:46 -0500

Rework some vaults formerly in the forest branch for lair
This commit makes gammafunk_lair_bear_cave, which now has a
lair-appropriate set of bears, and gammafunk_forest_enchanted_lake,
giving it a proper enemy set, amongst other fixes.  This also removes
gammafunk_forest_sporulate since that vault probably never worked well
and is even less appropriate for lair.

--------------------------------------------------------------------------------
31f22114d7 | DracoOmega | 2014-03-15 16:47:32 -0230

A few gargoyle monster tweaks
For consistency both with player gargoyles and war gargoyles (and
fewer messages), remove the bite and claw aux attacks from plain
and molten gargoyles and buff their primary attack a bit instead.
Improve their starting weapons (no clubs) and raise HD a little.
Also normalize resists among the three types (plain and molten get
their rPois+ upgraded to rPois+++ to match war gargoyles and other
constructs, while plain gargoyles' rElec++ is downgraded to rElec+
to match the others).

--------------------------------------------------------------------------------
1ac5a4c7c0 | DracoOmega | 2014-03-15 15:38:37 -0230

Change formicid stat growth from s/4 to si/4

--------------------------------------------------------------------------------
b70ed343a8 | DracoOmega | 2014-03-15 15:29:54 -0230

Let sack of spiders and box of beasts use autofoe behavior

--------------------------------------------------------------------------------
e55b05b7f0 | DracoOmega | 2014-03-15 15:25:58 -0230

Prevent untargetted ball lightning from mostly wandering to the upper-left

--------------------------------------------------------------------------------
66d9578d96 | DracoOmega | 2014-03-15 15:13:39 -0230

Conjure Ball Lightning adjustments
The reduced CBL duration was so low that the ball lightning would
frequently explode before even being able to reach targets in your
LoS (or before you could step away, even if you did so immediately
on open ground). This commit restores the old duration and makes
a few other changes to reduce power level instead:

Ball lightning conjured with less spellpower explode for less damage
(and their explosion is less likely to be radius 3), the number of
ball lightning conjured per cast has been reduced (and the variance
decreased somewhat), and ball lightning which leave the player's
line of sight immediately dissipate without exploding (so that it
is no longer possible to aim them at things you cannot see and cannot
harm you). The aim is that this will make it impractical against
monsters out of sight, while being less awkward against those IN
sight (and less likely to immediately engulf the caster before being
able to reach anything else).

--------------------------------------------------------------------------------
1b9ad3724c | DracoOmega | 2014-03-15 13:31:45 -0230

Simplify player CBL code
The main function of the code stripped out seems to have been to
buggily fail to place ball lightnings a significant percentage of
the time - otherwise this briefer version appears to function
basically the same.

--------------------------------------------------------------------------------
87ed260aad | Steve Melenchuk | 2014-03-15 08:35:23 -0600

Only place shops in some minivaults if requested (|amethyst).
These can also be used as altar vaults!

--------------------------------------------------------------------------------
eb0b70cff5 | gammafunk | 2014-03-15 01:03:02 -0500

Simplify the miscellaneous item acquirement code (Reaver, #8272)
The old code had unclear chances of acquirement due to items' chances
depending on where they were in a list.  This commit clarifies the
weightings and sets these to better values.

It does the following:
  * only gifts the 4 kinds of decks not gifted by nemelex.
  * reduces the weights for decks overall.
  * for elemental evokables not seen before, gift them with higher
    weight compared to the other evokable types.
  * for evokables other than the disc of storms and lantern of
    shadows, allow gifting at a lower weight even if they have been
    seen before.
  * gifts crystal ball of energy with chance (evocations *
    max(spellcasting, invocations)) out of 27^2.

--------------------------------------------------------------------------------
6de5c0a430 | elliptic | 2014-03-15 01:05:50 -0400

Make acquirement only produce legendary decks.
There's plenty of variation in quality and usefulness even just among
legendary decks, and non-legendary decks aren't good for much unless you
worship Nemelex, who gifts plenty of them anyway.

--------------------------------------------------------------------------------
c75ed29516 | Chris Campbell | 2014-03-15 04:00:49 +0000

Fix Swiftness being uncastable in liquids
Broken by c60660aeeb46ff.

--------------------------------------------------------------------------------
eda97e84d8 | gammafunk | 2014-03-14 21:12:42 -0500

Make invisible monster indicators from stealth checks always accurate.
We were intentionally placing indicators adjacent to the invisible
monster occasionally if the monster failed a secondary check. These
were confusing, especially if the monster was adjacent or close to the
player, who often knew exactly where the monster actually was.  We now
only ever place accurate indicators. Resolves #8270 (tedric).

--------------------------------------------------------------------------------
6bc0a8344e | Chris Campbell | 2014-03-15 00:49:29 +0000

Fix a vault error

--------------------------------------------------------------------------------
09e681a908 | Chris Campbell | 2014-03-14 22:29:02 +0000

Update a comment

--------------------------------------------------------------------------------
27109a2210 | Chris Campbell | 2014-03-14 22:13:44 +0000

Remove trample immunity from boots of the Spider
Spider form doesn't have this, and it made no sense in a lot of cases
anyway (trample immunity while flying over water/lava?).

--------------------------------------------------------------------------------
68e01d929e | Chris Campbell | 2014-03-14 22:13:43 +0000

Remove player blood/web sense of out-of-sight monsters
It was very unlikely to ever trigger - caused by a monster somehow being
made to bleed just out of your LOS in the blood sense case, or a monster
being caught in a web while you are in spider form in the web sense case,
and even less likely to actually be useful if it did somehow trigger.

--------------------------------------------------------------------------------
75cfc520b8 | Neil Moore | 2014-03-14 16:42:41 -0400

Comment (reaverb).

--------------------------------------------------------------------------------
4708aff097 | Neil Moore | 2014-03-14 16:42:09 -0400

Don't allow recolouring dry fountains.

--------------------------------------------------------------------------------
7787664364 | Chris Campbell | 2014-03-14 19:38:31 +0000

Don't give Rakshasas demon weapons

--------------------------------------------------------------------------------
8a5dc35653 | Chris Campbell | 2014-03-14 19:38:30 +0000

Don't recolour doors or stone arches when spattered with blood
It makes regular/sealed/runed doors indistinguishable at a glance, and
makes stone arches look like real portals.

--------------------------------------------------------------------------------
5a5c835153 | Steve Melenchuk | 2014-03-14 10:43:22 -0600

Re-repair a vault.
Oops.

--------------------------------------------------------------------------------
654181c72b | Steve Melenchuk | 2014-03-14 10:39:05 -0600

Repair a vault.
Restores it to its original theme without the objectionable now-dummy
monnster and fixes the plant randomisation so that the goodies aren't
completely hemmed in.

--------------------------------------------------------------------------------
4c8f29a258 | Steve Melenchuk | 2014-03-14 10:35:12 -0600

Fix a vault typo.
This wasn't changed correctly with the removal of deep dwarf berserkers.

--------------------------------------------------------------------------------
b6d89e655d | Steve Melenchuk | 2014-03-14 10:14:38 -0600

Redistribute some vaults.
Move some common functionality to a dlua file so it doesn't appear in
more than one place, and do away with kennysheep.des as a consequence.

Move a floating vault incorrectly placed with the minivaults.

--------------------------------------------------------------------------------
51edafea1d | KennySheep | 2014-03-14 09:45:54 -0600

Simplify some vault functionality (#8273).
[Committer's note: more cleanup.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
4786b1d2a1 | David Speare | 2014-03-13 23:25:58 -0600

A few vaults for a few places (#8273).
[Committer's note: a few adjustments.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
475ccfab6b | David Speare | 2014-03-13 23:25:22 -0600

Various tweaks to vaults (#8273).
[Committer's note: this originally turned the vaults into a serial vault,
 despite not having any unifying theme; most of the cleaup work here is
 actually my own.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
aacd29fda7 | David Speare | 2014-03-13 22:55:46 -0600

A temple-like volcano layout (#8195).
[Committer's note: replaced the grossly overpowered enemy set with the
 random intelligent enemy sets, removed a mostly pointless trap and the
 needlessly runed doors.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
2e50dd50f3 | elliptic | 2014-03-14 00:03:28 -0400

Clean up poison_is_lethal() a little (Grunt).

--------------------------------------------------------------------------------
90beda913c | elliptic | 2014-03-13 23:51:32 -0400

Take regeneration rate into account when displaying poison level.
Previously "lethally poisoned" often didn't actually mean the poison would
be lethal if you rested it off, since it didn't take into account natural
regeneration. This made a lot of the poison display useless in many
situations.

This commit adds functions poison_is_lethal() and poison_survival(), the
latter of which returns the expected lowest that your HP will go based on
your current poison level and regeneration rate. This function is
occasionally off by one, hopefully always in the direction of surviving
with one more HP than expected... so occasionally "lethal" poison will
just leave you at 1 HP.

--------------------------------------------------------------------------------
31db9b4381 | elliptic | 2014-03-13 23:51:32 -0400

New DD poison formula.
This formula effectively just gives DDs immunity to small amounts of poison,
but they take full damage from stronger poison until the poison decreases
below the threshold. This is similar to the old formula, but simpler and
unrandomized.

I could also see simply making poison ignore damage shaving with no
compensation. DDs can easily take the nerf, after all...

--------------------------------------------------------------------------------
340fc0d475 | elliptic | 2014-03-13 23:51:32 -0400

Decrease poison's dependence on duration of actions.
The upper and lower poison speed caps didn't handle actions that were not
10 aut correctly, and there were also some tiny differences aside from
that which could accumulate when taking actions of other durations.

The new code is much less easy to read and maintain, but does handle these
things much better and calculating the duration of poison in aut is
necessary anyway to make determining lethality respect regen rate.

--------------------------------------------------------------------------------
3c027b61f0 | elliptic | 2014-03-13 23:51:32 -0400

Increase the poison scale again.
100 wasn't actually good enough for some changes that need to be made.

--------------------------------------------------------------------------------
3fd807fbee | Chris Campbell | 2014-03-13 22:00:49 +0000

Display number of times used for boxes of beasts and sacks of spiders

--------------------------------------------------------------------------------
830ee6c5f2 | gammafunk | 2014-03-13 12:18:54 -0500

Give spriggan druids stone arrow if they have sunray.
Otherwise it causes a crash.

--------------------------------------------------------------------------------
65a9edfe2f | elliptic | 2014-03-13 11:21:39 -0400

Simplify shopping interface.
Previously the interface for removing items from the shopping list while in
a shop behaved differently depending on whether you could afford to buy the
item. Now it doesn't; instead simply:
* lowercase letters change the status of an item to '+' (selected to buy),
  or change to '-' (unselected and not on shopping list) if it was
  already at '+'.
* uppercase letters change the status of an item to '$' (on shopping list),
  or change to '-' if it was already at '$'.

--------------------------------------------------------------------------------
6b74f4262b | gammafunk | 2014-03-13 02:55:06 -0500

Allow the player to memorize a spell regardless of fail rate (Lasty).
Resolves #8265. This commit also cleans up and documents a few spell
miscast rate calculation functions.

--------------------------------------------------------------------------------
1ed682697c | gammafunk | 2014-03-13 02:09:21 -0500

Make monster throwing properly use ranges and document the function.
It was incorrectly using grid distance instead of a circular range.

--------------------------------------------------------------------------------
5c89200ae6 | gammafunk | 2014-03-13 01:33:48 -0500

Use the correct radius when sensing invisible monsters in LOS (MarvinPA).
Before we were letting the player detect all invisible enemies in LOS
if they had antennae, regardless of mutation level, and were not
checking either Ashenzari's detection radius nor that from the boots
of the assassin at all. This commit also cleans up and documents a few
related functions.

--------------------------------------------------------------------------------
9acb974c36 | Shmuale Mark | 2014-03-13 00:13:08 -0400

Changelog update.

--------------------------------------------------------------------------------
1c3b158976 | Chris Oelmueller | 2014-03-13 00:13:07 -0400

Shopping list: Display possible menu actions

--------------------------------------------------------------------------------
e5dcabecfc | Chris Oelmueller | 2014-03-13 00:13:07 -0400

Clean up shop interface
Remove certain (mostly) unused functionality:
- The \ key no longer pulls up the \ menu
  (Suggested: Leave the shop and press \ instead)
- The ? key no longer pulls up the inventory
  (Suggested: Leave the shop and press i instead)
- The * key no longer inverses item selection
  (This was mostly used to empty a shop, a task rare enough that
   automating it might not be worth the interface clutter)
- The $ key no longer marks items on the shopping list for buying
  (Recent improvements to shopping list handling made it much easier to
   select what you want from shops, this further smoothens the process)

Leaving and re-entering a shop does not use turns, so most of these just
simplify the information a player has to parse in the help section.
To counter losing the pre-selection of items when doing this, shopping
list handling has been improved recently.

The help line now shows actions for all items "a-w" in a shop instead of
trying to be smart about letters of items you can afford.

The optional shopping list help line has been removed in favor of the
much easier to access upper-case shortcuts being explained to players.
You can still move the current selection of items to the shopping list
by pressing $ key, but this is a rather advanced action and added more
to general interface confusion in the help line than it helped.

What hindered players a lot when buying items on the shopping list was
the prompt for "Remove item from shopping list and mark for purchase?".
That one has been removed, instead selecting any such item will now act
as if answering `y` to the prompt.

Local tiles interface has been merged, code-wise, into webtiles+console.

--------------------------------------------------------------------------------
b40561d401 | Neil Moore | 2014-03-13 00:13:06 -0400

Shopping: make uppercase add directly to shopping list.
If the item is already on the list, remove and selected it for purchase
without confirmation (for simplicity, even if it's unaffordable).

Currently undocumented because I'm unsure how to best rearrange things
in the two versions of _list_shop_keys.

--------------------------------------------------------------------------------
aa66c1f329 | Steve Melenchuk | 2014-03-12 22:01:59 -0600

Add an entrance to a vault.
This was seen spawning without an entrance on several occasions.
Hopefully this won't happen again.

--------------------------------------------------------------------------------
d266e26fe3 | Steve Melenchuk | 2014-03-12 22:01:58 -0600

Adjust a couple of portal entry vaults (PleasingFungus).
Hopefully this will not cause them to place separate from the rest of
the level.

--------------------------------------------------------------------------------
b891789e88 | Steve Melenchuk | 2014-03-12 22:01:58 -0600

roctavian's mana viper and spellforged servitor (#8097).
And matching spell tiles.

--------------------------------------------------------------------------------
989c473e22 | Sage | 2014-03-12 20:22:56 -0700

Remove self(poly|shaft) when using chaos weapons.
Shaft has annoying and spoilery behavior (flying or standing on
staircases will prevent it), and poly is one of the offenders for
instant death when playing with chaos (most notably treeform).

--------------------------------------------------------------------------------
702e2796af | Steve Melenchuk | 2014-03-12 20:16:56 -0600

Don't let any uniques generate in both D and Vaults.
This is a vestige of the old absdepth system, and most of these uniques
aren't remotely threatening if they're turning up in Vaults.

--------------------------------------------------------------------------------
3e45fb59fa | DracoOmega | 2014-03-12 23:33:50 -0230

Make rPois properly prevent all normal poison 90% of the time
Instead of reducing the total quantity by 90% (this worked better
when the quantities being applied were often just 1 or 2).

rPois is only 80% effective against curare asphyxiation, which
approximates the chance before deterministic poison changes.

--------------------------------------------------------------------------------
4556c9e0d5 | reaver | 2014-03-12 19:57:09 -0600

Clean up uniques.des (#8269).
Originally this file was split into D and non-D uniques, but over the
years uniques migrated or were added in the wrong places, and then the
Dungeon split completely messed up the ordering.  This commit separates
the file out into D uniques, Depths uniques, and uniques which appear in
neither the Dungeon nor the Depths. It also changes the DEPTH: of
several uniques from "D:foo-16" to "D:foo-", and rephrases some
comments.

No functional changes are intended.

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
b24e9232fd | DracoOmega | 2014-03-12 19:52:21 -0230

Give Fighters a starting potion of might
The bugfix that made heavy armour properly penalize melee weakened
fighters somewhat in comparison to gladiators, and besides: consumables
are fun!

(Plus I think this is a thematic complement to the gladiator's starting
consumable - ie: throwing nets - which could add just a touch further
distinctiveness between the two)

--------------------------------------------------------------------------------
bf4633e106 | DracoOmega | 2014-03-12 19:52:19 -0230

Rescale DUR_POISONING from 4 times damage to 100 times damage
This is aimed at reducing some rounding errors for non-10 aut
actions, and probably makes the scale clearer to read in any case.

--------------------------------------------------------------------------------
c7b2e23013 | DracoOmega | 2014-03-12 19:52:18 -0230

Pre-awaken the forest provided by Summon Forest
This is aimed to reduce those sad situations where your summoned
dryad decides not to bother to do anything for much of the length
of the spell. The awakened forest is still linked to her in the
normal way and ends if she dies (in effect, she just is guaranteed
to cast it as her first action).

--------------------------------------------------------------------------------
b7d8f5a35a | DracoOmega | 2014-03-12 19:52:16 -0230

Remove throwing net degradation, instead mulch probabilistically
Instead of throwing nets accumulating persistent damage as monsters
struggled against them (and then becoming impossible to stack in
your inventory afterward), they are either outright destroyed by
the struggle or remain in normal condition. This should make them
a little less cumbersome to use.

This commit doesn't actually touch any of the escape formulas (which
are an impressive snarl that could definitely use tending to), since
probably they would need rewriting from scratch and I didn't want to
undertake that so close to 0.14, with various other things still in
the air.

--------------------------------------------------------------------------------
cd79464d15 | DracoOmega | 2014-03-12 19:52:14 -0230

Fix missing / odd rakshasa spellcast text

--------------------------------------------------------------------------------
9a20582491 | DracoOmega | 2014-03-12 19:52:13 -0230

Remove Formicid giant club wielding, reduce shield penalties, apt tweaks
Giant spiked clubs were stronger than other weapons to such a degree
that they commonly eclipsed the more unique formicid mechanic of using
a two-hander with a shield. There is already a race whose weapon choice
centers around giant clubs, so I think it better for formicids to lose
this ability so as to hilight the more interesting one.

In the same vein, formicids now recieve the same reduced shield
penalties that large races do (a perk of effectively having more limbs
to juggle everything with), which should make shield usage further
encouraged earlier on, where they have yet to gain enough xp to
otherwise benefit from using them with a two-hander (and the race is
considered weak enough that a few buffs like this feel perfectly safe).

Additionally, there are a couple apt tweaks:

Fighting 0 -> +1
Short Blades +1 -> 0
Armour +2 -> +1
Shields 0 -> +2

--------------------------------------------------------------------------------
b78b54b1c7 | reaver | 2014-03-12 13:38:04 -0400

Use potion_type_name() to note Xom potion effects.
This formerly special cased it, which meant I had to change it when I
renamed potions of speed. This means future changes or additions to the
potions xom used do not have to modify this function.

--------------------------------------------------------------------------------
13ef432e70 | Steve Melenchuk | 2014-03-12 10:01:39 -0600

Use encompass vault portal places for otherwise-floating branch entries.
This is intended to get ziggurat portals to place in nice locations if
the level they're on happens to be an encompass vault.

--------------------------------------------------------------------------------
c3f1c56dbf | Steve Melenchuk | 2014-03-12 09:42:57 -0600

Don't try to place Depths' zig entrance on Depths:6.
Since it only exists for out-of-depth purposes now.

--------------------------------------------------------------------------------
0ebcb40baa | Pekka Lampila | 2014-03-12 03:42:15 +0200

Set more headers when caching is disabled.

--------------------------------------------------------------------------------
895fc63d47 | Pekka Lampila | 2014-03-12 03:42:15 +0200

Add a config.py option for development: no_cache

--------------------------------------------------------------------------------
a4cbddefd0 | David Ploog | 2014-03-12 16:14:31 +0100

Fix typo.

--------------------------------------------------------------------------------
9985a3499d | David Ploog | 2014-03-12 16:04:01 +0100

Bring back some fun in an early Jiyva altar.

--------------------------------------------------------------------------------
75c5171208 | Pekka Lampila | 2014-03-12 02:23:38 +0200

Move JavaScript code out of client.html into a new file.

--------------------------------------------------------------------------------
73f3522d6e | Pekka Lampila | 2014-03-12 01:51:28 +0200

Also handle !* and !D inscriptions better with auto sacrifice.

--------------------------------------------------------------------------------
95de4ddcb2 | Chris Campbell | 2014-03-12 13:43:37 +0000

Fix some jump-attack checks (PleasingFungus)
Don't allow jumping while caught in a net or web, do allow it while
flying over lava (but not while standing in lava as a Lava Orc).

--------------------------------------------------------------------------------
1249a6a407 | Neil Moore | 2014-03-12 09:37:42 -0400

Replace fake summon with phantom mirror on transfers.
Since most of the code for Fake Rakshasa Summon is gone, rakshasa that
were transferred from earlier versions would crash when trying to cast
it.  Prevent this by rewriting spell lists on unmarshalling.

--------------------------------------------------------------------------------
854c38f7b4 | Neil Moore | 2014-03-12 09:37:42 -0400

Schedule more of Fake Rakshasa Summon for removal.

--------------------------------------------------------------------------------
1751823d3f | Pekka Lampila | 2014-03-12 01:36:12 +0200

Improve handling of =p and !p inscriptions with auto sacrifice.

--------------------------------------------------------------------------------
6ecec920f4 | elliptic | 2014-03-12 01:48:06 -0400

Revert "Throttle back god wrath frequency."
This reverts commit fec218c2940d4f2f9f03297ab67a74ce059bf44a.

Frequency was 20x as fast as intended at the time due to a bug.

--------------------------------------------------------------------------------
7d051a235d | elliptic | 2014-03-12 01:45:13 -0400

Fix you.attribute[ATTR_GOD_WRATH_COUNT] not being decremented properly.

--------------------------------------------------------------------------------
c5434703b6 | Chris Oelmueller | 2014-03-11 22:54:41 -0400

Remove `auto_list` option
It has been defaulting to `true` for a while now. That setting provides
a nicer interface overall and there is little reason to support alter-
nate input methods.
Some prompts asking for a letter have not been adjusted, for example
evoking a rod with multiple spells. Those are hopefully gone soon
anyways.

[Committer's note: The option had no known uses except by bots, and
those could work without it. And, of course, multi-spell rods are
gone.]

--------------------------------------------------------------------------------
e1215c86b0 | Shmuale Mark | 2014-03-11 21:53:06 -0400

Allow prayer while silenced (and into).

--------------------------------------------------------------------------------
31b1323368 | Shmuale Mark | 2014-03-11 20:35:26 -0400

Some changelog tweaks.

--------------------------------------------------------------------------------
f83b4f130d | Steve Melenchuk | 2014-03-11 18:33:30 -0600

Mention the Enchantress in the changelog.
Shortest time ever between changelog updates?

--------------------------------------------------------------------------------
714c6fda83 | Steve Melenchuk | 2014-03-11 18:29:21 -0600

Place the Enchantress randomly in Depths.
We had success doing this with Jory; let's see how doing this with one
of our other underappreciated uniques goes over.

I'm leaving the vault that places her enabled for the moment, given that
someone else is apparently working on it; it will veto if the
Enchantress turns up before it, though.

Also moves another unique vault to its rightful place in uniques.des.

--------------------------------------------------------------------------------
9a4106ff46 | Steve Melenchuk | 2014-03-11 18:26:39 -0600

Fix changelog error (DracoOmega).

--------------------------------------------------------------------------------
dc7d9797af | Steve Melenchuk | 2014-03-11 18:00:48 -0600

Changelog through 0.14-a0-3250-g3700e31.
Hopefully this will be the last time I need to touch this significantly
before 0.14 is released.

--------------------------------------------------------------------------------
3700e31f81 | Steve Melenchuk | 2014-03-11 17:59:57 -0600

Re-add worms to a vault.
They can berserk again.

This partially reverts commit eb7f152bf9be14e98587e290ed5bb1ad5e0c364d.

--------------------------------------------------------------------------------
068b9a2639 | Steve Melenchuk | 2014-03-11 17:29:49 -0600

Nudge the D/Depths spawn tables a bit further.
Remove blink frogs from D (this was supposed to happen in the last set
of changes I made); reduce slime creature weight in out-of-depth D
(15% in some out-of-depth ranges!), cap stone giants and ettins at
Depths:8 again instead of :9 (so that we don't get 10% stone giants in
some ranges).

Spreadsheets are still where they were before; see the new sheets for
the latest changes.

--------------------------------------------------------------------------------
73648d1d2c | DracoOmega | 2014-03-11 20:34:41 -0230

Fix an important missing statement in siren movement code
Perhaps someday I will manage to rebase something without SOMETHING
mysteriously vanishing in the process. But that day is not today.

--------------------------------------------------------------------------------
5fd345fd51 | Steve Melenchuk | 2014-03-11 16:57:40 -0600

Move the Vaults entrance up a level (elliptic).

--------------------------------------------------------------------------------
02a44c4bb2 | Steve Melenchuk | 2014-03-11 16:53:31 -0600

Reduce D to 15 levels.
Nobody's really going to miss an extra level of D.

--------------------------------------------------------------------------------
63f152f1fc | Steve Melenchuk | 2014-03-11 16:53:31 -0600

Allow players to continue traversing stairs if they get sealed halfway.
This was never intentional, by all indications.

--------------------------------------------------------------------------------
83c5e769d0 | elliptic | 2014-03-11 18:52:22 -0400

Decrease Mark duration by 25%.
(Numbers also tweaked slightly to make them rounder after the 25% reduction.)

--------------------------------------------------------------------------------
e95c5c8a93 | Neil Moore | 2014-03-11 18:45:49 -0400

Rename !speed in examples, too.

--------------------------------------------------------------------------------
8ba256b04b | DracoOmega | 2014-03-11 20:08:22 -0230

Reduce Depths to 5 floors
Depths contained as much xp as all of 0.13 combined, and it has been
generally agreed that it is better to cut length than dilute the
existing length with fodder monsters to lower its concentration.

(Incidentally, just one floor here has about as much xp as a whole
Lair rune branch).

--------------------------------------------------------------------------------
9ca6a62b48 | DracoOmega | 2014-03-11 20:08:21 -0230

A few misc monster tweaks
Increas kobold demonologist hp and efreet melee base damage (both
of which were pretty low). Replace giant orange brain confuse with
mass confusion (it was hard for them to use the former with their
summons in the way, and this should be a little more distinguishing
compared to the many other users of normal confuse).

--------------------------------------------------------------------------------
486ebd068b | DracoOmega | 2014-03-11 20:08:19 -0230

A few Depths population tweaks
This reduces some of the profusion of deep trolls by shifting some
of their weight back onto a few other generic monsters (at lower
levels than before, however), reduces the frequency of some spriggans
a little, and one or two other minor changes.

--------------------------------------------------------------------------------
9e64f5b6aa | DracoOmega | 2014-03-11 20:08:17 -0230

Some D population adjustments
This is largely to try and slightly spice up the still-awkward
post-Lair section of D. The presence of some generic enemies drops
off more quickly than before, others also appear earlier, where
they might be more impactful, and a few things are added or made
much less rare in the late D range. (Also, some crimson imp weight
has been offloaded onto shadow imps, which seem like a reasonable
monster that never spawns anywhere they might do something - and
are likely better than crimson imps anyway).

--------------------------------------------------------------------------------
a559921a77 | DracoOmega | 2014-03-11 20:08:14 -0230

Allow specifying Phantom Mirror hp mult, nerf for normal copies only
Reduce normal Phantom Mirror hp to 35% of the original's (to hopefully
make it more reasonable to sometimes kill them instead of the rakshasa).
Mara clones and rakshasa low-hp clones remain at 50% of their original.

--------------------------------------------------------------------------------
d18b02d6a3 | DracoOmega | 2014-03-11 20:08:12 -0230

Don't waste time casting Phantom Mirror without suitable targets

--------------------------------------------------------------------------------
e3c60fd8eb | DracoOmega | 2014-03-11 20:08:09 -0230

Let Rakshasa sometimes be accompanied by a single depth-appropriate monster
To give them something to mirror without relying on vaults or mere
chance that something else is nearby them.

--------------------------------------------------------------------------------
ee5dbbc4b7 | DracoOmega | 2014-03-11 20:08:07 -0230

Revamp Rakshasa
Rakshasa were a monster that seemed to have little purpose. They
couldn't really hurt you (barring picking up a rod or something),
yet would duplicate in large numbers and make it rather hard to
make them go away. This is aimed at turning their basic behavior
into something that can present an actual threat, while
simultaneously being less obtrusive.

Rakshasa's new spellset consists of Phantom Mirror, IMB, and (less)
blink. Phantom Mirror can be used only on other monsters - not
themselves - allowing them to perform a support role by duplicating
other threats. When they are reduced to 50% hp, as a one-time effect
they will split into 3, but cannot otherwise copy themselves or do
so continuously (they only regain this ability after recovering to
full hp, which probably means you ran away and rested for a while).

This commit also gives them actual equipment.

--------------------------------------------------------------------------------
6ace9f6982 | DracoOmega | 2014-03-11 20:08:04 -0230

Remove fake Mara/Rakshasa monsters and associated code, refactor to use Phantom 
Mirror
There was quite a bit of special case code for the 'fake' monsters
which Mara and other rakshasa would create that can be subsumed
beneath the general Phantom Mirror effect (which can properly create
fake dummies of any type of monster in a unified way).

The main practical gameplay difference that will result (aside from
bugs introduced by this, of course) is that the true Mara will
actually be disguised when he splits, instead of the player knowing
for sure which one he is (until two of them blink in the same turn,
anyway). This is a Mara buff, but it seems to me that an illusion
spell of this nature shouldn't have been so easy to see through in
the first place and that this is an overall better state of affairs.
(Also, the clones do have less hp than before, if you end up killing
the wrong one first).

--------------------------------------------------------------------------------
5ec54fe066 | DracoOmega | 2014-03-11 20:08:01 -0230

New monster spell: Phantom Mirror
This spell clones a selected allied creature, randomly swapping the
clone and original to disguise which is real and which is fake (and
also not displaying the summon as 'summoned', for the same reason).
The mirrored creature does have the full offensive capabilities of
the original, but only half the hp (all of them are dispelled upon
killing the creator, as you would expect).

This is intended as part of a rakshasa revamp, and will eventually
replace the existing uses of MONS_RAKSHASA_FAKE and associated code.
(And can probably do similar for Mara as well, with a few tweaks,
tidying the various uses of duplication under a simpler codebase).

--------------------------------------------------------------------------------
48e29a3464 | DracoOmega | 2014-03-11 20:07:59 -0230

Attempt to salvage boggarts a little
The abjure-on-death change (on top of several other nerfs) completely
defanged these monsters, which relied wholly on their summons to
present any threat, but were so fragile as to die to a stiff breeze.
In fact, their low HD made the monsters they summoned frequently
consider it fine to shoot through them to get at the player, killing
the boggart in the process and immediately abjuring themselves. This
is a small attempt to make them a little less useless in the current
system.

The commit raises boggart HD a fair bit (and thus also hp). Though
they remain distinctly fragile for their depth, they should be a bit
less prone to being killed by their own summons. Also, Slow and
Confuse are removed from their spellbook in favor of more Shadow
Creatures (they were basically cantrips, and a monster so harmless
doesn't need to be made even MORE harmless), and Blink is replaced
with Blink Away.

In preliminary testing, they're frequently still easily dealt with
(which is fine), but are also sometimes capable of causing an actual
problem to deal with, as opposed to their current very sad state.

--------------------------------------------------------------------------------
e562176b98 | DracoOmega | 2014-03-11 20:07:57 -0230

Fix many summoners swapping past their summons
Code that was originally intended to let intelligent undead swap
past zombies so that they could follow you upstairs was now being
applied to all capped summoned creatures (since they also cannot
take stairs). This meant that same-holiness summoners would
displace their summons (and also be even easier to lure upstairs
away from them). The code now checks the monster's type only, and
ignores whether or not it is summoned.

--------------------------------------------------------------------------------
9eb38f968e | DracoOmega | 2014-03-11 20:07:56 -0230

Salamander tweaks
Increase Salamander hp slightly (all types), nudge up mystic HD,
add a second copy of Haste Other to their spellbook. Make mystics
a bit less rare in Snake.

--------------------------------------------------------------------------------
cf9c439707 | DracoOmega | 2014-03-11 20:07:55 -0230

Let salamander mystics actually haste the naga they spawn with
It was always intended that they be able to do so (this was the point
of them being in the bands at all!), and somehow I thought I actually
saw it work, but I guess not.

--------------------------------------------------------------------------------
03863c37a7 | DracoOmega | 2014-03-11 20:07:54 -0230

Remove shock serpent lightning torrent, adjust discharge / stats
Lightning torrent didn't work as well as hoped, in practice. The intent
was that it be dangerous unless actively controlled by quickly hitting
the serpent, but be much less threatening if you did this. However,
between misses and low damage hits, it was quite possible to be
attacking a serpent continuously and still fail to prevent the torrent.
Even worse, if the serpent was obstructed by other monsters, there was
often no good way to keep it from unleashing the attack the moment you
killed what was in front of it. A fast monster with relatively
threatening attacks is likely already a priority target without the
need for some other specific mechanic to encourage this.

Thus, lightning torrent is removed, and the retribution discharge is
made dependant on the damage inflicted upon it rather than time from
last discharge (with starting hits triggering a larger shock). Also
raise HD (and thus AF_ELEC damage) slightly, while lowering their base
melee, to shift the damage just a touch more from physical to elemental.

This also fixes a bug where the discharge would not trigger on any
attack that actually killed the serpent.

--------------------------------------------------------------------------------
da5242858d | DracoOmega | 2014-03-11 20:07:52 -0230

Slight stat adjustments to some Shoals monsters
Mermaids: +1 HD, +2 damage
Merfolk: -5 hp, -2 damage
Impalers: -6 hp, -1 damage
Fauns: +1 HD, +4 damage
Satyrs: +2 damage, no longer can generate with slings or plain bows

--------------------------------------------------------------------------------
4cdc2eea2d | DracoOmega | 2014-03-11 20:07:50 -0230

Give a clearer message for clarity blocking mesmerisation
It was otherwise undistinguished from an ordinary resist (which
might even make it less obvious to new players that it grants immunity
to mesmerise).

--------------------------------------------------------------------------------
90c8bdd2ab | DracoOmega | 2014-03-11 20:07:49 -0230

A couple mesmerisation tweaks
Reduce mermaid/siren mesmerisation power, increase base duration,
make breaking mesmerisation grant brief immunity to being
remesmerised.

--------------------------------------------------------------------------------
f64fe125f4 | DracoOmega | 2014-03-11 20:07:48 -0230

Spriggan band adjustments
Remove plain spriggans and druids from Depths spriggan bands, reduce
chance of berserkers having a band at all, and reduce size of both
berserker and defender bands slightly. (Riders become proportionally
more common as the 'plain' option).

--------------------------------------------------------------------------------
0b45604d16 | DracoOmega | 2014-03-11 20:07:47 -0230

Various spriggan monster adjustments
Spriggan enemies are changed from speed 16 to move speed 16, act 10.
This is not so much for parity with player spriggans (there are
already multiple exceptions to such things) or power reasons, but to
reduce message spam against packs (as discussed in -dev a little while
ago). This change is compensated for in various ways.

Most spriggans recieve boosts to their base damage, which should result
in damage output that is overall approximately similar to before. Also,
some recieved individual changes.

Riders: Lost blowguns, except where they would have come with curare.
        Chance is probably slightly higher than before (still low),
        but quantity also lower.

Berserkers: Start with better gear, and BiA can produce stronger
            monsters than before. (Seeing as how SpBe BiA already
            could produce things player BiA could not, I continued
            the animal theme. This does result in more things that
            player BiA will not produce, but I don't think this has
            to be an inherant problem).

		These should actually be somewhat stronger than their older
            versions, but they were considered amonst the more harmless
            of their set, so this is intentional.

Air Mages: Gained the Haste spell, and lost cantrip Shock.

           In testing, this seems to come out similar to old threat
           levels, even if it looks on paper like it might be stronger.
	     While a hasted air mage with a less dilute spellset is more
	     dangerous than old air mages, in practice they are often
	     rather delayed in hasting themselves at all, until which
	     point they are definitely less scary - I think it works out
	     similarly in the end.

Enchanters: Gained a copy of Haste.

Defenders: These remain unchanged. I felt that 'rapid attacks' was a
	     more fitting niche for them than simply raising their base
           damage still further with an action speed of 10, but giving
           them 2 attacks and speed 10 polarized their danger against
           low/high AC more than I liked.

	     There are several other examples of monsters with faster
	     attack speeds than other members of their species (ie:
 	     blademasters or impalers), so I think this is probably not
           an inherant problem.

The Enchantress: Did not actually recieve the base damage boost that
		     others did (and already had Haste). Instead, I gave
 		     her rF/rC from the 'protective enchantments' her
		     description says surround her. This should leave her
		     a fair bit slower at stacking disables on you (and
                 dealing less damage in general), but more durable
                 to some of the attacks that were especially good
		     against her.

Also, (almost) all spriggans recieved a cut to their EV and boost to
their hp, sometimes appreciable.

--------------------------------------------------------------------------------
556f4b896d | DracoOmega | 2014-03-11 20:07:45 -0230

Give Spriggan Druids rPois
They were extremely prone to confusing themselves on the breath of
the swamp drakes they would summon (and probably now killing
themselves outright via swamp dragons), and it seems thematically
fine to me that a mystic connected strongly to often-venomous beasts
of its habitat could have built up a resistance to them.

--------------------------------------------------------------------------------
d9a150bf77 | DracoOmega | 2014-03-11 20:07:44 -0230

Remove Sunray
Sunray had a number of quirks that were rather non-transparent if
uninformed about them, and not usually very interesting from a
tactical perspective (namely: it ignored repel missiles, did bonus
damage to vampires and shadows, and couldn't hurt things that were
invisible). There seemed a general agreement that it probably ought
to simply be removed.

Stone arrow replaces it in the spriggan druid spellbook.

--------------------------------------------------------------------------------
6219a54fed | DracoOmega | 2014-03-11 20:07:42 -0230

Slightly change the wording of a message
'Beasts of the land' is perhaps slightly iffy when possibly the most
notable one they're likely to call is amphibious.

--------------------------------------------------------------------------------
897aba9ef8 | DracoOmega | 2014-03-11 20:07:41 -0230

Make Spriggan Druids empower nearby beasts upon death
This is an experimental alternative to providing a copy of
conventional Might Other as their beast support (as has been
otherwise suggested).

When druids are killed (or rather, just before, flavor-wise), they
heal several nearby beasts and frenzy them for a short time. I
expect this is fairly likely to see more effect than Might Other
would, given that called beasts might only just be arriving as the
druid itself dies (thus not giving it a chance to cast it on them,
especially given pending action speed reduction), and might even
sometimes introduce some tension between killing it immediately and
finishing off some other wounded beast you were already engaged with.

Frenzy is a more mild effect than might also, which is possibly good
if applying it is a more consistant thing, though I am slightly
concerned that it is less visible than might (which gets a status
icon).

--------------------------------------------------------------------------------
8a9237d6a6 | DracoOmega | 2014-03-11 20:07:40 -0230

Let Druid's Call recall swamp dragons
They feel like an important 'beast' of the druid's domain (and
they've always been able to recall drakes, which are apparently just
small dragons in the first place in Crawl).

For now I did not enable the other dragons (and fire and ice dragons
do show up in some Swamp ends). Perhaps it would be more uniform if
I did that, but they are also considerably more dangerous than other
eligible things, so I'm not sure if I should.

--------------------------------------------------------------------------------
221ba283fe | DracoOmega | 2014-03-11 20:07:39 -0230

Raise worm and leech intelligence to I_INSECT
Since Elyvilon pacification no longer works on insects anyway, this
has fewer obvious ramifications (though I guess they can now berserk,
for how likely this is to be relevant). But the main reason is that
it means giant leeches become eligable for Druid's Call.

--------------------------------------------------------------------------------
faca637a38 | DracoOmega | 2014-03-11 20:07:38 -0230

Change Druid's Call behaviour
Instead of recalling a single beast near the druid and casting might
on it, Druid's Call now recalls 2-3 (non-mighty) beasts to random
positions outside the target's LoS and causes them to path towards
the target location. This essentially causes a delay before the
reinforcements arrive, but spreads their positions around to
potentially cover multiple vectors.

--------------------------------------------------------------------------------
8d858f76e1 | DracoOmega | 2014-03-11 20:07:37 -0230

Reduce message spam on drowned soul attacks, color unsummon message boring

--------------------------------------------------------------------------------
5f8efc552e | DracoOmega | 2014-03-11 20:07:35 -0230

Make drowned soul touch auto-hit, somewhat increase early spawn frequency
This is intended to make them somewhat more like the flavored
pseudo-projectiles they were envisioned as (if you had high EV/SH,
it was possible for them to continue to pile up as a crowd more
than intended), as well as make them somewhat more threatening to
certain character types, particularly with siren accessibility now
made much easier.

--------------------------------------------------------------------------------
e1b2bb2750 | DracoOmega | 2014-03-11 20:07:34 -0230

Reduce siren pulling frequency
Sirens were unintentionally able to pull more than one space a turn
if they were standing in water at the time, and this reduces the
chance still further (to at-most, once per 10 aut).

--------------------------------------------------------------------------------
bb6088fec9 | DracoOmega | 2014-03-11 20:07:32 -0230

Adjust siren movement behavior
This changes the metric for how sirens select their movement destination
in a couple ways. They no longer try to surround themselves completely
with deep water, but instead prefer at least one neighbouring tile
be shallow water or land. The presence of a single tile of deep water is
valued more highly, but multiples more lowly. Moreover, they will no
longer always reposition if a more optimal spot is visible to them, so
long as their current location is 'okay enough', which should reduce the
distances they move while still trying to give them sufficient terrain
advantage.

In general, this should cause them to make themselves inaccessible far
less often, as well as move away less often, period.

--------------------------------------------------------------------------------
1a18c9ac3d | Shmuale Mark | 2014-03-11 18:29:47 -0400

Allow ENCH_WRETCHED to be removed by TSO's or Beogh's blessing (#8217).
It seems fairly similar to ENCH_ROT, and that's removable.

Also, try to clean up bless_follower() a little.

--------------------------------------------------------------------------------
b9fd09044e | Steve Melenchuk | 2014-03-11 15:30:14 -0600

Octopode crusher tile (Bloax).
Also nudges a few things related to the normal monster octopode.

--------------------------------------------------------------------------------
59a3234402 | Steve Melenchuk | 2014-03-11 15:07:45 -0600

Recolour the old viper tile for use with mana vipers.
This may not be *ideal*, but it's considerably less ugly.

--------------------------------------------------------------------------------
44e9c07710 | Chris Campbell | 2014-03-11 04:09:46 +0000

Update some references to potions of speed

--------------------------------------------------------------------------------
29e27d4c46 | reaver | 2014-03-10 23:52:54 -0400

Potion of speed => Potion of haste
Changes everything, including vaults, the enum (now POT_HASTE) and the
.txt files in /dat/descript (things like hints.txt and foreign language
description files).

--------------------------------------------------------------------------------
4b56c9bb8a | Steve Melenchuk | 2014-03-10 21:04:33 -0600

Adjust a vault (|amethyst).

--------------------------------------------------------------------------------
e1c05c1f34 | Neil Moore | 2014-03-10 22:57:13 -0400

Remove a stray quotation mark.

--------------------------------------------------------------------------------
77088d9902 | tenofswords | 2014-03-10 22:43:32 -0400

Another glyph substitution mistake fix: an elf end with 25 altars
From 61fa7b4fe2191 adding crystal guardians, when I briefly
intended to try out something besides the crystal guardians for
the elf end but forgot to finish changing things when I abandoned it.
Makes minmay_elf_hall_golems not only have a visual mess,
but also makes the end more open than intended or ideal.

--------------------------------------------------------------------------------
5ad025d719 | Steve Melenchuk | 2014-03-10 19:33:47 -0600

Fix a couple of hiccups with amnesia.
Don't burn Sif piety when cancelling out (#8257); print a prompt if
exiting from the menu but not cancelling altogether.

--------------------------------------------------------------------------------
a03d0eb851 | Steve Melenchuk | 2014-03-10 19:10:41 -0600

Add elwin to CREDITS.txt (cf. #8106).

--------------------------------------------------------------------------------
d5731edaad | Steve Melenchuk | 2014-03-10 18:33:17 -0600

Fix a typo in an abyss rune vault.
...which made it have a 1/3 chance of not placing the rune.

--------------------------------------------------------------------------------
d23c60dfcd | Steve Melenchuk | 2014-03-10 18:24:56 -0600

Turn a vault into a minivault.
This was turning up in Lair in basically every game. Now it shouldn't,
given that the tags are there to get it to do the thing that originally
caused it to be a full vault and not a minivault.

--------------------------------------------------------------------------------
1b8ec56804 | Steve Melenchuk | 2014-03-10 18:22:42 -0600

Don't spam layout_gridlike in lair.
Oops.

--------------------------------------------------------------------------------
a5539b2f54 | Steve Melenchuk | 2014-03-10 18:21:00 -0600

Use mons instead of kmons in a couple of layouts (#8227).
I *think* this is what's causing that issue, but I don't know for
certain.

--------------------------------------------------------------------------------
74a43bd367 | Steve Melenchuk | 2014-03-10 18:00:16 -0600

Gargoyle / molten gargoyle tiles (Bloax).
This also takes the opportunity to set the war gargoyle tile to the
correct size.

--------------------------------------------------------------------------------
6852104f54 | Steve Melenchuk | 2014-03-10 18:00:16 -0600

The last of the Lightli vaults (#7307).
Major adjustments made; major adjustments may still be necessary based
on the experiences of people playing through them other than my own.
This should at least be a good starting point for further work if
necessary.

--------------------------------------------------------------------------------
28bf7662ad | Shmuale Mark | 2014-03-10 19:21:55 -0400

Make the Battlelust card a bit better.
Previously, the card's effects were more desirable the lower the
power. This removes the card-specific DUR_SLAYING and moves the
might effect to the higher powers, with agility as well at power 2.

--------------------------------------------------------------------------------
0089908c6c | Chris Campbell | 2014-03-10 22:20:46 +0000

De-rune a sewer

--------------------------------------------------------------------------------
b534822600 | Chris Campbell | 2014-03-10 22:20:45 +0000

Remove Prince Ribbit's sewer vault
It's way out in terms of threat level - giant frogs are typically top-end
threats in sewers, but this one contains multiple giant frogs early, a
large number of adders upon entry, and Prince Ribbit to top it off. Could
perhaps be repurposed elsewhere, but not at sewer depth.

--------------------------------------------------------------------------------
26da8ba7d5 | tenofswords | 2014-03-10 18:16:24 -0400

Make a few more bailey entrances have less, pre-id'd returning tomahawks
For consistency's sake and less free loot spam and whatever,
for both a bailey entrance I missed in the past and a just-added
bailey entrance from before I did such a change.

--------------------------------------------------------------------------------
a69c244851 | Steve Melenchuk | 2014-03-10 16:06:40 -0600

Fix a couple of issues with one of those vaults.

--------------------------------------------------------------------------------
d30648f54d | Steve Melenchuk | 2014-03-10 16:03:38 -0600

Lightli vaults (subset of #7307).
Major adjustments for most of these.

--------------------------------------------------------------------------------
e52642fb0c | tenofswords | 2014-03-10 17:54:09 -0400

Fix reversed glyph logic in ice2_lemuel
Accidentally changed a header without the map in 6913e27016db, placing
16 bosses and 1 minion instead of the other way around. Sorry.

--------------------------------------------------------------------------------
f8e57b6675 | gammafunk | 2014-03-10 16:36:29 -0500

Only miscast summon forest if the spell is castable (MarvinPA).
The spell can fail to find a summoning area, which is nonrandom, so we
shouldn't miscast in that case.

--------------------------------------------------------------------------------
a895f5654f | Steve Melenchuk | 2014-03-10 15:25:36 -0600

One last tweak for that vault which I missed, somehow.

--------------------------------------------------------------------------------
3b45d27903 | Steve Melenchuk | 2014-03-10 15:24:50 -0600

A sewer layout (KennySheep, #7743).
Adjustments as usual, mainly around the boss monsters.

I'm still kind of leery about the vault monster definition, but it does
at least indicate a clear difference in monster function.

--------------------------------------------------------------------------------
91d222c9a4 | gammafunk | 2014-03-10 16:18:13 -0500

Make summon forest check for miscasts (silentsnack, #8259).
This commit also documents cast_summon_forest().

--------------------------------------------------------------------------------
1fb6f520de | Robert Lund | 2014-03-10 15:03:09 -0600

An ossuary vault (#7801) and a tomb entry (#7806).
[Committer's notes:

 - Ossuary: adjusted some of the glyphs; added a message for the walls
   disappearing.
 - Tomb entry: nerfed the enemy set; removed some SUBST:ing and
   subvaulting related to the old overpowered enemy set.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
4b1f55456f | Steve Melenchuk | 2014-03-10 14:28:42 -0600

Extraify a minivault (tenofswords).

--------------------------------------------------------------------------------
a30d3a829b | wheals | 2014-03-10 14:23:57 -0600

Some vaults (#7970).
I made three arrival vaults, a Swamp vault, a Shoals vault, and an
autumn katana guarded vault.

[Committer's note - there were originally a Forest ending and two more
 swamp vaults which aren't here for various reasons. See also the mantis
 entry.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
9a407c6093 | Steve Melenchuk | 2014-03-10 13:58:45 -0600

A large number of Kennysheep vaults (#7433, #7754, #7979).
Adjustments as usual.

See those entries for more details, especially #7433, where only a
subset of vaults have been added.

--------------------------------------------------------------------------------
63820d2a73 | Chris Oelmueller | 2014-03-10 15:52:02 -0400

Item desc: Suppress quotes in all game modes
This applies to all views of item descriptions through not examining the
item itself (like examining a square on the map, or more importantly
hovering inventory items, in local tiles). Quotes are still displayed in
all other cases.

On most resolutions, this means that the important description bits of
armour and weapon descriptions (AC/ER/maxenchant, Acc/Dmg/delay/mindelay)
are now visible in the message area on hovering the item.
With 800x600 and similarly small message areas, they might still be
hidden for items with more verbose descriptions.

--------------------------------------------------------------------------------
02f004d69e | Chris Oelmueller | 2014-03-10 15:52:02 -0400

Remove newline from plate armour item description
The hint should be there, but it does not need to take up two full lines.

--------------------------------------------------------------------------------
3781c67858 | ontoclasm | 2014-03-10 14:03:03 -0500

Fix some weapon placements

--------------------------------------------------------------------------------
264b8f4a5e | ontoclasm | 2014-03-10 13:53:31 -0500

Nergalle tile (roctavian, 8192)

--------------------------------------------------------------------------------
f31e4639ef | ontoclasm | 2014-03-10 13:49:25 -0500

Various monster tiles (roctavian, 8192)

--------------------------------------------------------------------------------
caa155a398 | ontoclasm | 2014-03-10 13:39:16 -0500

Roka edit again (roctavian)

--------------------------------------------------------------------------------
1ea0e81b46 | Steve Melenchuk | 2014-03-10 11:26:30 -0600

Park serial vault by coolio (#8099).
Lots of tag edits and various tweaks in an effort to get things to place
more reliably; the main issue is that a lot of the subvaults are very
large and have a hard time placing properly. Oh well.

--------------------------------------------------------------------------------
0e4da7589f | Steve Melenchuk | 2014-03-10 11:26:29 -0600

Some Shoals entries from elwin (#8106).
Adjustments: normalised the number and type of monsters placed in two of
the vaults; added a validation check to _rooms.

--------------------------------------------------------------------------------
cde0df7d67 | Steve Melenchuk | 2014-03-10 11:26:29 -0600

Temples and Vaults rooms from nicolae (#8110).
I made some small adjustments so that the temples slot in to
pre-existing categories cleanly.

Also includes a couple of fixes for older temples (one old comment no
longer is true and the fix for it is in; some freezing clouds have had
their excl_rad adjusted so that the altars aren't excluded).

--------------------------------------------------------------------------------
6883db6b83 | Neil Moore | 2014-03-10 11:59:38 -0400

Expand documentation of is_*_item functions.

--------------------------------------------------------------------------------
f8235aeeb0 | Chris Campbell | 2014-03-10 15:05:46 +0000

Update a comment

--------------------------------------------------------------------------------
0a811b56cd | Chris Campbell | 2014-03-10 15:05:45 +0000

Check directly for halo removal on monster death
Instead of listing individual things with haloes. Fixes umbra from the
ring of shadows remaining after death, also removes an obsolete reference
to lost soul auras.

--------------------------------------------------------------------------------
fdc5474dfa | gammafunk | 2014-03-09 21:49:15 -0500

Remove an erroneous semicolon (floatingatoll).

--------------------------------------------------------------------------------
c8df72d439 | tenofswords | 2014-03-09 18:00:44 -0400

More scattered vault edits
 * Bailey: Fix a no-loading bug.
 * Sewer: Rune-ify the doors to Ribbit, since he's a little mean here.
 * Ice Cave: Give the rare white draconian a little weapon aide
   to try and be more equal the frost giant it replaces.
 * Trove: Provide disint for the summoners trove,
   and wake up sleeping shining eyes (in a vault that
   provides a lot of cure mutation anyway).
 * Bazaar: Completely defang the mutagenic fog bizarre,
   alongside the oklob and digging/teleport ones. Bazaars
   are meant to be safe places, and none of these are
   greatly interesting or threatening aside from annoyances
   or boring strategic damage.

--------------------------------------------------------------------------------
76e8b85b07 | Steve Melenchuk | 2014-03-09 15:54:58 -0600

Fix message for monsters coming down stairs (wheals).

--------------------------------------------------------------------------------
e0fae01cd0 | tenofswords | 2014-03-09 16:48:08 -0400

Scattered portal vault edits.
 * Sewer: minor header clean-up, slightly reduce the weight of the most
   common and weak sewer layout, lower siren sewer weight.
 * Bailey: Pre-identify most traps, lower returning tomahawk stack sizes,
   actually consistently give basic armour to most soldiers instead
   of mostly polearm ones. Also, improve the loot of the tiniest, least
   consistent-in-reward bailey due to being excessively plain.
 * Trove: Fix a spells-skills check looking for Enchantments and not Charms
   or Hexes, nerf a deep elf summoner behind-grates trove to just ynoxinuls,
   fix accidentally not providing digging at the start for the
   digging-necessary trove, slightly buff the river trove's loot.
 * Volcano: Replace rare minotaur with salamanders, throw out clay golems
   and use non-war gargoyles in their stead, remove some tengu and
   draconian skeletons from a vault, cut a pointless runed door,
   adjust for manticore buffs, lower toenail golem presence slightly.
 * Ice Cave: Cut the hyper-rare phoenix simulacra (and place slightly more
   harpy simulacra instead). Also, make the ice statue gardens easy-depth only.
 * Bazaar: shrink the mutagenic fog's output in minmay_bazaar_mutagenic_fog.
 * Wizlab: Fix some header complaints and remove a currently pointless
   %?monster line to confuse the knowledge bots less.

--------------------------------------------------------------------------------
ff5eb931cb | Shmuale Mark | 2014-03-09 16:23:15 -0400

Remove djinn.
The dummy monster.

--------------------------------------------------------------------------------
0f74bc222c | DracoOmega | 2014-03-09 17:36:16 -0230

Remove misleadingly non-functional AT_SHOOT attacks
AT_SHOOT was intended to provide a damage bonus to selected M_ARCHER
monsters, but due to a mistake in the code, this never actually
functioned. Since the monsters which used it are already plenty
dangerous as-is (eg: deep elf master archers), rather than fixing it
to actually provide the 'intended' bonus, I am simply removing the
misleading attacks, and AT_SHOOT itself.

The one case where AT_SHOOT did actually function was providing an
accuracy bonus to thrown weapons when used by an M_ARCHER (this applied
to merfolk javelineers). This same bonus now applies to any M_ARCHER,
regardless of the presence of an AT_SHOOT attack. In practice, this
just means that javelineers didn't get nerfed, and nothing else should
be noticably affected.

AT_WEAP_ONLY now translates to AT_NONE for enemies using missile
weapons, which is functionally the same as before.

I'm inclined to think that the save compat code here is not actually
necessary, since I don't believe attack_type values this high were
ever persisted anywhere (no ghost_demons seem to use them), but
I'm choosing to err on the side of caution.

--------------------------------------------------------------------------------
5a92590ec1 | DracoOmega | 2014-03-09 17:36:14 -0230

Fix some buggy pathing behavior for low intelligence creatures
For some reason, the check performed to see if a monster can fire at
its target when the path to reach melee range with it was obstructed
was only performed for I_NORMAL or higher creatures... meaning that
eels, hell hounds, and many other things were literally too dumb to
realize they could shoot across water or lava if they could not ALSO
walk straight up to their target. One of the most noticable effects
of this was eels sometimes appearing to retreat or generally move
oddly as they attempted to path to the player's position via some more
circuitous route when you touched against water non-adjacent to them.

I see no reason for an intelligence check here at all (the monster is
clearly smart enough to shoot at you most of the time), and so have
simply removed it.

--------------------------------------------------------------------------------
e36c0c27f0 | tenofswords | 2014-03-09 15:23:19 -0400

More monster tweaks
Give quokkas the one bit of interest from grey rats (speed 12),
make raiju normal speed due to boltblink making them unescapable,
make warmongers try to get out their grand avatars more often,
slightly lower the cap on corrupter's planerend from 8 to 6.

--------------------------------------------------------------------------------
b1a69621d3 | Steve Melenchuk | 2014-03-09 10:41:27 -0600

Disable the "Rearrange the Pieces" monster spell.
And schedule for removal.

People up to and including the original designer have agreed that this
doesn't work well in the slightest; the promised replacement spell has
yet to materialise (probably due to lack of ideas).

The temporary replacement in the chaos champion spell set here is
underwhelming, but better than nothing.

--------------------------------------------------------------------------------
5cc96d46d8 | elliptic | 2014-03-09 01:34:49 -0500

Remove pre-identification of unpossessed scrolls/potions by Ar/Wn.
This behavior is confusing and of very little importance, and these were
the only two offenders.

Ar doesn't get anything in compensation for not having ?recharging IDed.
There was some talk in IRC of actually giving it one at start (and
removing charges from the wands as compensation), which I guess would
work if the wands are sufficiently fully charged still that startscumming
for the turn 1 recharge would be bad.

For Wn, preIDing was replaced by receiving an extra scroll/potion in one
case, and replaced by nothing in the other case.

--------------------------------------------------------------------------------
30f8622fbc | Shmuale Mark | 2014-03-09 01:23:49 -0500

Update the FAQ.
Remove some entries present mostly for historical reasons, consolidate
the contribution section, and try to trim it. A FAQ isn't very useful
if people are scared away by its length, and I'm sure that many of
the question were not frequently asked. The list in ?Q now fits in
one page on 80x24, which is a start.

--------------------------------------------------------------------------------
f92f90f233 | Steve Melenchuk | 2014-03-08 22:00:08 -0700

Consider all demonspawn enemies unholy (78291).
This oversight was allowing TSOites to get demonspawn as shadow creature
summons in Pan.

--------------------------------------------------------------------------------
6913e27016 | tenofswords | 2014-03-08 22:54:39 -0500

Stab randomly at random minivaults.
Depth adjustments, depth scaling, minimal minor loot placements,
header re-organizations and spacing, out-of-date or undesirable
vault tricks updated or replaced, non-random unknown things
pre-identified, definition placement order thrown around,
highly similiar vault consolidation, general "fixes".

Fun highlights: minivaults assuming D:17-27 still exists,
a vault that slipped in from a tutorial example, many golem cuts
and dummy-player-species-monster cuts, runed door reduction,
let lost-purpose late D also have more decorative vaults,
and (for now, while runed doors still block monster movements)
making all doorvault runed doors function as one door for the sake
of making it not so restrictive on opening door vaults.

--------------------------------------------------------------------------------
15be66f726 | Shmuale Mark | 2014-03-08 20:42:05 -0500

Make all abyss teleports shift the Abyss (minmay).
Partly this is to (somewhat) make the Abyss a little easier. Teleports
still take longer than orbrun teleports to kick in on average, and
in general letting the player know what an action will do is a good
thing.

But the main reason is that, due to maprot, same-area abyss teleports
are a pretty awful interface screw. You are prevented from remembering
what monsters were around (this was quite annoying when being marked
was more common in the abyss), and though you can see for one second
what direction you came from, immediately after the screen refreshes
and you can't anymore.

Possibly this could lead to improving/removing altogether maprot.

--------------------------------------------------------------------------------
428849b030 | gammafunk | 2014-03-08 16:19:43 -0600

Make the monster throw ability use a ray path.
Previously the throw would simply do the floor/feature checks and do a
grid move for the victim.  This commit makes the ability consider a
ray so that the victim's landing site won't have them pass through
solid features.  Additionally the hard feature check now looks only at
the position one past the landing site along the ray, instead of at
any adjacent square in LOS of the throw.  This means that a victim
landing on a site e.g. where the only adjacent wall is NW won't count
as the victim hitting something hard when it was thrown generally SW
of the landing site.

This commit also reduces the minimum distance from the thrower to the
landing site from 4 to 3 and cleans up a throw message.

--------------------------------------------------------------------------------
064f5fb3d7 | gammafunk | 2014-03-08 16:19:43 -0600

Make octopode crushers throw what they constrict, not always the player.

--------------------------------------------------------------------------------
1b4a07aabe | Chris Campbell | 2014-03-08 14:46:34 +0000

Don't generate plain formicids
They're not really interesting in bands, either.

--------------------------------------------------------------------------------
a23cdd3435 | Chris Campbell | 2014-03-08 14:46:33 +0000

Remove a reference to spirit wolves

--------------------------------------------------------------------------------
e394c36260 | Chris Campbell | 2014-03-08 14:46:32 +0000

Update some more feature descriptions
Mention the rune requirement in the Zot and Vault gates, mention
Sentinel's mark on alarm traps, improve needle trap.

--------------------------------------------------------------------------------
89d4236a36 | Chris Campbell | 2014-03-08 14:46:30 +0000

Update fountain descriptions (#8248)

--------------------------------------------------------------------------------
25989adbf2 | DracoOmega | 2014-03-08 11:13:14 -0330

Remove no_monster_gen from arena maps
It caused crashes if you ever tried to place more than one monster
on a single team. And it's not like normal monsters spawned in them
anyway.

--------------------------------------------------------------------------------
40b18b1cfc | gammafunk | 2014-03-07 23:55:40 -0600

Reduce the frequency of Asterion's Major Destruction.
His major destruction accounts for over half of his player kills, yet
I'd like his melee together with spectral weapon to play the larger
role in his fights. This commit fills his non-enchant slots with
spectral weapon, which makes him either summon his weapon or fall back
to melee/move if the weapon is already summoned. The end result is
he'll cast major destruction half as frequently as before.

--------------------------------------------------------------------------------
9d36bc65e8 | Steve Melenchuk | 2014-03-07 22:27:06 -0700

Badtiles for the latest unrands.
If only so that they can have *something* to show.

--------------------------------------------------------------------------------
c3ea3b707a | Neil Moore | 2014-03-07 23:51:48 -0500

Formatting fixes.

--------------------------------------------------------------------------------
c20c04649c | Neil Moore | 2014-03-07 23:49:13 -0500

Mark !mutation as useless, not bad, for non-vampire undead.
They are prevented entirely from drinking known potions of mutation or
beneficial mutation, so there's no point marking those potions as bad.

--------------------------------------------------------------------------------
9512724d1a | Neil Moore | 2014-03-07 23:41:35 -0500

Don't mark !exp etc as both good and useless for mummies.
Now they're just useless.  Likewise !benemut on ghouls.  Allow both
prefixes for liches, since good_item ignores temporary conditions.

--------------------------------------------------------------------------------
171a264c5c | Neil Moore | 2014-03-07 23:04:36 -0500

Don't mark !benemut as bad for vampires at all.
It stopped causing rot in 0.14-a0-1124-g6191413.

--------------------------------------------------------------------------------
779472412f | Steve Melenchuk | 2014-03-07 21:01:31 -0700

Improve messaging / logic of a few monster spells.
Mainly, spells that accept targets but printed untargeted messages due
to not having a tracer to figure out where the spell was going.

--------------------------------------------------------------------------------
deb40b50be | Neil Moore | 2014-03-07 22:49:58 -0500

Correct reversed logic for vampire !mut badness (#8246)
We considered mutation potions always temporarily bad for vampires, but
only permanently bad if they were hungry.  Now we instead consider them
temporarily bad if the vampire is hungry, and never permanently bad.

--------------------------------------------------------------------------------
b8ecda177b | Neil Moore | 2014-03-07 22:36:40 -0500

Don't double collateral unholy evil kill piety (78291)
The player case was fixed in 0.10-a0-2348-g20cc63c .

--------------------------------------------------------------------------------
633f8e048e | Steve Melenchuk | 2014-03-07 19:45:57 -0700

De-rim a couple of tiles (roctavian).

--------------------------------------------------------------------------------
d4f2dfe12d | Steve Melenchuk | 2014-03-07 19:36:27 -0700

Nudge FoVM enemies again.
See 65f686f for context; this gives them the spell set of Venom Bolt,
Poison Arrow, and Localized Ignite Poison (i.e. the original idea there
but with a spell set that can't particularly inflict collateral damage,
as was noted with a concern with the original spell set).

Also gives them bands (see previous commit).

I'm not 100% happy with this state of affairs (the spell set still
strikes me as a bit boring, even if it enables the Ignite Poison combo
I've been seeking), but it's more interesting than the status quo and I
think this can eventually turn into something worthwhile.

--------------------------------------------------------------------------------
21dc400cc0 | pubby | 2014-03-07 19:28:43 -0700

Give Formicids bands.
They're useless popcorn on their own.

[Committer's note: this makes the band entirely regular formicids.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
081579c7d6 | Steve Melenchuk | 2014-03-07 19:25:29 -0700

More roctavian tiles (#8097).
New: vine stalker, formicid, formicid venom mage.
Tweaked: crystal guardian, worldbinder.

--------------------------------------------------------------------------------
2c86dbfa7b | gammafunk | 2014-03-07 16:18:40 -0600

Don't draw targeting rays in Tiles if they are out of LOS (#6833).
The three ray tile flags were left in the cell's background, so we
remove those background flags before the now-out-of-los cell is drawn.

--------------------------------------------------------------------------------
c8dfecf3c7 | Pekka Lampila | 2014-03-07 22:38:11 +0200

Fix detected monsters showing up in WebTiles monster list.
Cells with MM_UNSEEN flag instead of UNSEEN were considered visible.

--------------------------------------------------------------------------------
fd0d9f0aef | Chris Campbell | 2014-03-07 16:46:37 +0000

Edit faun and yaktaur descriptions
For consistency with descriptions of other human hybrids (centaur,
merfolk).

--------------------------------------------------------------------------------
8428e3c2da | Chris Campbell | 2014-03-07 16:46:36 +0000

Clean up a useless check in mesmerisation code
Not used for anything since 4a95513685cd.

--------------------------------------------------------------------------------
974d52dcfb | Chris Campbell | 2014-03-07 16:46:35 +0000

Let mesmerisation work on player Merfolk
Since they're not related to sirens or mermaids.

--------------------------------------------------------------------------------
9730105c08 | Neil Moore | 2014-03-07 11:25:31 -0500

Don't imply merfolk are all male.

--------------------------------------------------------------------------------
7eca78f882 | Neil Moore | 2014-03-07 11:21:24 -0500

Make mermaids/sirens unrelated to player merfolk.
Monster mermaids were not related to monster merfolk even at the genus
level, so it seems strange for them to be same-genus to player merfolk
for purposes of pacification, cannibalism, etc.

--------------------------------------------------------------------------------
5fcec126f3 | Neil Moore | 2014-03-07 09:34:01 -0500

Close colour tags in "Items here:".

--------------------------------------------------------------------------------
9185c9f764 | Neil Moore | 2014-03-07 08:39:25 -0500

Also display mismatched closing colour tags.

--------------------------------------------------------------------------------
83871be09f | Neil Moore | 2014-03-07 08:37:46 -0500

Display extra closing colour tags rather than crashing.
The crash was trivially triggerable by any user by calling
crawl.mpr("</red>") from Lua.  It could also trigger, for example, when
printing an error message about Lua code that itself contains a colour
tag.

Now display the unbalanced tag in lightred so it stands out.

--------------------------------------------------------------------------------
91bad65970 | Shmuale Mark | 2014-03-07 05:12:41 -0500

Be friendlier when searching for shops.
Currently, if the player searches for "shop", the stash screen shows
a long list of items in shops, and after Orc there will be a great
deal of junk on the screen. This commit checks whether a search
only returns shops, and nothing on the floor or in shops ("shop" for
example, or "gadget"). If so, it displays the shops in one stack
by default.

--------------------------------------------------------------------------------
96b50902ce | Chris Campbell | 2014-03-07 08:29:12 +0000

Reduce the speed bonus from boots of running for player ghosts

--------------------------------------------------------------------------------
9b9bc38f1e | Chris Campbell | 2014-03-07 08:28:52 +0000

Make non-spellcasting random pan lords rarer
1/4 instead of 1/3 of pan lords.

--------------------------------------------------------------------------------
2c4a4c3f15 | Chris Campbell | 2014-03-07 08:27:41 +0000

Make Pan lords always see invisible
Previously they did 90% of the time.

--------------------------------------------------------------------------------
6e425e4dfe | gammafunk | 2014-03-06 22:57:30 -0600

Fix the monster list is WebTiles and unbreak Arena.
The invis fix in 4a7354f5 causes problems with how WebTiles displays
the monster list for reasons that aren't clear. It would display empty
tiles where monsters had died in the monster list and have an
incorrect monster count. This commit fixes the problem by restoring
the tiles cell draw order so it happens after the map knowledge is
determined for each cell instead of in a final loop after map
knowledge updates are finished.

This commit also fixes Arena, which was broken in the same commit so
that it didn't draw non-terrain cells at all.

--------------------------------------------------------------------------------
48382f717c | Shmuale Mark | 2014-03-06 22:31:27 -0500

Try to make player ghost / pandemonium lord see invisible show up right.
Previously, it simply checked whether the base type had see invisible.
This was worthless in the case of panlords and ghosts, since whether
they could see invisble was based on info they got in their ghost_demon
struct.

--------------------------------------------------------------------------------
fec218c294 | Steve Melenchuk | 2014-03-06 20:18:32 -0700

Throttle back god wrath frequency.
Reports have been that it's been really excessive; my own playtesting
agrees. This makes wrath happen a quarter of its previous frequency.

--------------------------------------------------------------------------------
358dc12610 | Neil Moore | 2014-03-06 21:50:31 -0500

Remove an obsolete comment (wheals)
Obsolete since 0.8.0-a0-516-g000de20.

--------------------------------------------------------------------------------
e04fbb6f91 | DracoOmega | 2014-03-06 21:01:04 -0330

Don't attempt to inflict poison damage of 0
This apparently interrupts spell memorization (and possibly other
things) without any message or indication of why.

(Possibly this is indicative of some wider potential bug in damage
taking and interruptions, but this fixes the most obvious current
issue).

--------------------------------------------------------------------------------
9b374b955c | DracoOmega | 2014-03-06 21:01:02 -0330

Let poison actually expire for Chei worshippers
The rate decrease was eventually rounding down the poison damage to 0,
meaning that it was never cleared from your system (even if it didn't
actually do any damage to you).

--------------------------------------------------------------------------------
fd7a9ef92d | Steve Melenchuk | 2014-03-06 17:21:45 -0700

Beetle zombie tile (benhanson, #8216).

--------------------------------------------------------------------------------
c299523e82 | Steve Melenchuk | 2014-03-06 16:56:46 -0700

Fix _check_abil_skills() for new invocation training (#8237).

--------------------------------------------------------------------------------
25ffa2ba2a | gammafunk | 2014-03-06 17:17:43 -0600

Another 0.14 changelog update.

--------------------------------------------------------------------------------
6ac1a5d282 | gammafunk | 2014-03-06 16:44:22 -0600

Increase frequency of Octopode Crushers in the Depths water population.
This makes them about twice as common as the merfolk, but still only
half as common as sharks and 1/6 the frequency of water elementals.

--------------------------------------------------------------------------------
780002bd2f | gammafunk | 2014-03-06 16:39:41 -0600

Fix a crash due to black mark.
It was applying the melee effects after the monster had died (or was
banished), in some instances.

--------------------------------------------------------------------------------
a7442b6e12 | Steve Melenchuk | 2014-03-06 15:22:59 -0700

Recharging is wasted if you read-ID with nothing to charge (qw).

--------------------------------------------------------------------------------
b916d6f969 | ontoclasm | 2014-03-06 16:06:03 -0600

Saint Roka tile edit

--------------------------------------------------------------------------------
1eacc6a5a2 | Chris Oelmueller | 2014-03-06 16:32:57 -0500

Do not recommend polearm starts for Og
Recommending M&F and restricting everything else feels more sensible.

--------------------------------------------------------------------------------
ea69a50c45 | Steve Melenchuk | 2014-03-06 14:21:03 -0700

Colour spellforged servitors properly (78291).

--------------------------------------------------------------------------------
51c85c92a5 | Steve Melenchuk | 2014-03-06 13:26:55 -0700

Changelog through 0.14-a0-3104-g4f99434.

--------------------------------------------------------------------------------
4f994348c9 | Shmuale Mark | 2014-03-06 15:19:26 -0500

Rename unchivalric_attack_type and friends.
The enum values were never checked in any code relating to chivalry,
except to see that a value wasn't 0 (ie it was a forbidden stab).
A recent bug arose from the bad naming, too.

--------------------------------------------------------------------------------
64060d9ddb | gammafunk | 2014-03-06 13:54:20 -0600

Reduce monster damage from orb of electricity to sane levels.
Asterion (HD 15) was previously doing max damage of 157, or 3d52.5,
with this spell.  This was harmful to our sweet, innocent players.
Reduced the formula to 7 + power / 9, which is 3d27 for HD 15.

--------------------------------------------------------------------------------
7aa12b22b1 | Steve Melenchuk | 2014-03-06 12:53:35 -0700

An enum (no tile) for spellforged servitors.
So that it can be slotted in quickly once we have it.

--------------------------------------------------------------------------------
445dc431b2 | DracoOmega | 2014-03-06 16:20:21 -0330

Don't summon rotting devils with Summon Demon
Since they don't actually exist now.

--------------------------------------------------------------------------------
d75f0597d7 | Steve Melenchuk | 2014-03-06 12:48:42 -0700

Remove a vault.
Most of the enemies here are going to be removed or reworked; the mighty
Agra deserves a better home.

--------------------------------------------------------------------------------
2c3695efaf | Steve Melenchuk | 2014-03-06 12:48:42 -0700

Rename a couple of tiles to their current enemy names.

--------------------------------------------------------------------------------
a9e814646b | Steve Melenchuk | 2014-03-06 12:48:42 -0700

Temporary spell icons and an enum for the new summon spells.
Just an enum for Spellforged Servitor while I wait for a tile for it.

(Please, someone get a new mana viper tile ready so I don't have to use
this one again.)

--------------------------------------------------------------------------------
3c2dbf8733 | Shmuale Mark | 2014-03-06 14:35:23 -0500

Remove Pr.
Also make a few other updates to the rcfile guide.

--------------------------------------------------------------------------------
7b7e27b8a4 | Steve Melenchuk | 2014-03-06 12:05:48 -0700

Increase Glaciate's max range and slightly lessen its falloff.
So that it still does 50% damage at maximum range.

--------------------------------------------------------------------------------
e22cf55c43 | Steve Melenchuk | 2014-03-06 11:59:10 -0700

Use old monster Ice Storm damage figures for monster Glaciate damage.
That is, at or within range 3 it's equivalent to their old Ice Storm
damage.

--------------------------------------------------------------------------------
587b4fded1 | Steve Melenchuk | 2014-03-06 11:56:02 -0700

Don't crash on semicontrolled blink (#8236).
Broken by a5274fd.

--------------------------------------------------------------------------------
6f24510ddd | gammafunk | 2014-03-06 12:27:43 -0600

Octopode Crusher: An octopode warrior that throws your weight around.
This a late-game octopode monster with a new throw ability as well as
throw icicle.  It's meant to be a bit tougher than the late-shoals
merfolk it can spawn with in the Depths water population (it replaces
ordinary octopodes there).

New ability: Throw.  A 2 in 5 chance to hurl a victim that's currently
being constricted by the crusher for undodgable, AC-checking damage,
preferably "into" (i.e. adjacent to) a solid feature for 50% increased
damage.  The base throw damage is currently HD * 3.  The landing site
must be at distance of at least 4 from the thrower, is always
habitable for the victim, and the feature site must be visible to the
thrower if the damage increase is to apply.  If no landing site
adjacent to a solid feature can be found, any habitable landing site
in LOS is used, but then only the base damage applies.

--------------------------------------------------------------------------------
2f0dee958f | gammafunk | 2014-03-06 11:47:33 -0600

Allow ghost casting of dazzling spray (Grunt).
Player ghosts can now have dazzling spray, which sets confusion based
on an XL check that's the same as used when blinding monsters.

This commit is mostly based on Grunt's commit 0d12a004 in the
glaciate-testing branch and cleaned up some for trunk, with some
aspects reorganized.

--------------------------------------------------------------------------------
5a102a04c5 | gammafunk | 2014-03-06 11:47:33 -0600

Generalize and clean up some beam initialization code.
Adds bolt_parent_init() which copies the most useful set of properties
from a "parent" beam to a "child" beam.  Use this in three relevant
places in beam.cc where lots of individual property copying was done.

I've also moved the enchant power setting bits for teleport self and
sleep to a more reasonable place.

--------------------------------------------------------------------------------
4a7354f52e | gammafunk | 2014-03-06 11:42:35 -0600

Fix various issues with invisible monster indicators.
Currently if a monster enters LOS and goes invisible on the same turn,
it can disappear from the screen before the player has a proper
indication of where it was.  This commit makes the following changes:

1. Fixes invisible monster indicators so that they can reliably be set
in the monster map knowledge update code at locations that of the
current monster being processed in this loop.  The previous code tried
to set this indicator, but due to how the old loop cleared all flags
other than MAP_SEEN_FLAG and did tiles cell draws in the same pass as
map knowledge updates, these wouldn't work.  This commit adds a
MAP_INVISIBLE_UPDATE flag to help retain MAP_INVISIBLE_MONSTER when
necessary, as well as a second loop in show_init that loops over a
vector of the updated cells found in the radius_iterator loop.  This
second loop should be fast enough that it doesn't significantly affect
performance.

2. Add 'bool went_unseen_this_turn' and 'coord_def unseen_pos' to the
monster class (with the necessary save compat code) to allow monsters
that go invisible in LOS to always get an invisible indicator.  The
code prefers to use indicators arising from the monster failing
stealth checks if those occur; they are based on the monster's true
position and hence are usually more accurate.

3. Somewhat simplify the stealth check code for invis indicators, and
only ever allow one invis indicator per monster.  The stealth check
logic perhaps could be simplified further (there are multiple checks),
but I've preserved the existing checks for now.  Also turned a
coinflip() in one of the secondary checks into a seeded/hashed
coinflip so it won't change over screen updates.

This commit lets players with antennae always see the location of an
invisible monster through an invis indicator, and sets the invis
indicator on the monster's last position whenever a monster becomes
unseen (e.g. going invis or already being invis but the player removes
sinv).  If the monster fails a stealth check, that potentially more
accurate information is favored over the unseen position.

--------------------------------------------------------------------------------
465263a558 | ontoclasm | 2014-03-06 11:38:48 -0600

Orc knight edit

--------------------------------------------------------------------------------
d5643f5fa6 | elliptic | 2014-03-06 12:37:29 -0500

Give AK a +1 weapon instead of +2 at start.
Same as DK now.

--------------------------------------------------------------------------------
5cb60633da | elliptic | 2014-03-06 12:37:29 -0500

Restrict starting with bow for spriggans.
Since they can't upgrade to longbow.

--------------------------------------------------------------------------------
f7323fe266 | elliptic | 2014-03-06 12:37:29 -0500

Give Fi/Gl more starting weapon upgrades than just trident.
As discussed in IRC, these options don't seem that unreasonable nowadays:
cutlass, flail, war axe, trident, long sword, quarterstaff (Gl only). This
should make trident a less dominant option and make Fi/Gl more competitive
with other backgrounds.

Starting weapon recommendations are the same as with the lower tier weapons.
At some point someone should go and make sure these recommendations actually
make sense...

--------------------------------------------------------------------------------
114b3f6fa9 | DracoOmega | 2014-03-06 13:54:23 -0330

Move a variable inside the only #ifdef that now references it
To avoid unused variable warnings in non-tile builds.

--------------------------------------------------------------------------------
b23e0ecd07 | DracoOmega | 2014-03-06 13:50:20 -0330

Rename runrest_ignore_poison to runrest_safe_poison
The meaning of it (and thus sensible values for it) have changed
enough that existing custom settings people might be currently using
will produce bad (and perhaps mysteriously so) behavior. Renaming it
means that at least old runrest_ignore_poison settings will be ignored.

--------------------------------------------------------------------------------
8c8973db92 | Steve Melenchuk | 2014-03-06 09:58:18 -0700

Change the end of poison message to "You are no longer poisoned."
As agreed upon on IRC.

--------------------------------------------------------------------------------
cc787a9b12 | Steve Melenchuk | 2014-03-06 09:58:17 -0700

Show lethal poisoning in dark red properly.

--------------------------------------------------------------------------------
0491d15626 | DracoOmega | 2014-03-06 09:58:17 -0700

Raise default value for runrest_ignore_poison
In practice I found that you exceeded 50% more than rarely, yet it
wasn't entirely transparent why 5 sometimes failed to work if you
didn't already know.

I'm not even convinced the default needs to interrupt on non-lethal
poison at all, but I'm open to alternate views.

--------------------------------------------------------------------------------
2fa008d7ef | DracoOmega | 2014-03-06 09:58:17 -0700

Refactor some melee poison checks

--------------------------------------------------------------------------------
4de17ae6ea | DracoOmega | 2014-03-06 09:58:17 -0700

Rescale Ignite Poison versus players to new poison system

--------------------------------------------------------------------------------
8420678ff8 | DracoOmega | 2014-03-06 09:58:17 -0700

Adjust thresholds for various poison damage messages downward
(And fix a bug the prevented the most serious one from ever
being printed)

--------------------------------------------------------------------------------
3eae12d311 | DracoOmega | 2014-03-06 09:58:17 -0700

Increase poison damage inflicted by most sources, reduce rate of damage
After several games' playtesting, I feel I was much too conservative
with numbers in several places, given that only a small percentage of
poisonous melee attacks will inflict poison at all. Also, the swift
rate of action combined with small quantities meant that poison damage
was often practically indistinguishable from the melee that applied it.

A larger amount of moderately slower-acting poison (still quicker than
old poison) should make the poison effect more visible where it does
occur, as well as making preemptive !curing a more appealing tactical
choice. I feel it may still be too mild on high HD creatures compared
to other attack flavours, but that this is closer to the mark than
before.

--------------------------------------------------------------------------------
d5b2a9e833 | DracoOmega | 2014-03-06 09:58:17 -0700

Mute low hp warnings from poison damage if not lethally poisoned
Otherwise it becomes impossible to easily rest off known-safe poison
once you fall below your warning threshold (which is a very plausible
scenario following a battle). Given that there are already messages
being printed for it, the health bar is colored, and it is known that
it cannot kill you (plus any damage that CAN will trigger a warning
as normal), I think this is accetable behavior. Possibly some will
disagree; I invite them to suggest a better alternative that still
allows 5 to rest off known-safe poison without hitting it over and
over again.

--------------------------------------------------------------------------------
8651cb8188 | DracoOmega | 2014-03-06 09:58:17 -0700

Change how runrest_ignore_poison works for new poison
Since the full amount of poison can be known in advance, instead of
interrupting based on damage-per-tick and current absolute hp, use
the ratio of poisoning to current and max hp.

The option is now specified as cur_hp_ratio:max_hp_ratio in percent
(ignoring unless the poison is more than cur_hp_ratio of your current
hp and max_hp_ratio of your maximum hp).

I changed the default setting to 50:100, which is fairly arbitrary,
and still likely interrupts on many situations that you'd rather
rest off the poison without interruption (after all, even 90%
poisoning is pretty safe if in a known-safe location). Plus, low hp
warnings will still constantly interrupt if you fall below the
threshold for them, which is also really bad.

Basically, this still needs a lot of work before the idealized
non-obtrusive resting that is one of the main points of deterministic
poison actually functions, but this is at least an improvement over
the current settings, I think.

--------------------------------------------------------------------------------
a396766fc4 | DracoOmega | 2014-03-06 09:58:16 -0700

Block autoexplore and such when lethally poisoned
(And print an appropriate message)

--------------------------------------------------------------------------------
a0041117e7 | DracoOmega | 2014-03-06 09:58:16 -0700

Adjust Deep Dwarves' interaction with poison damage
Damaging shaving interferes with being able to display an accurate
estimate of how much poison is in your system (since you will take
a random amount less than that) which is one of the whole points of
deterministic poison in the first place. Moreover, applying it in
the conventional fashion would cause them to take more damage when
acting slowly than acting quickly.

This is an attempt to approximate the current behavior with regard
to DD poison (effectively ignoring low severity poison completely,
but eventually taking steady damage if enough poison accumulates in
your system at once). It does this by pretending you have less
poison in your system than you actually do, and downscaling per-turn
damage proportionally, while allowing this damage to bypass damage
shaving (as it has already been 'shaved' beforehand). The effect,
gameplay-wise, should be similar to the old system, I believe, while
still allowing accurate shading of your health bar.

I am, however, not entirely happy with it since it feels a bit like
some seperate property to the otherwise-global damage shaving that
players would need to learn and be aware of. I'm not sure what else
to do that allows the health display to be accurate when stochastic
damage reduction would be applied to each tick, though.

--------------------------------------------------------------------------------
a2d5e95f53 | DracoOmega | 2014-03-06 09:58:16 -0700

Adjust some monsters to account for lost differentiation of poison strength
Boost scorpion HD (but not hp), boost plain spider and water
moccasin HD, apply wolf spider poison on their secondary instead of
primary attack and reduce its impact damage somewhat.

--------------------------------------------------------------------------------
f9f564cdb9 | DracoOmega | 2014-03-06 09:58:16 -0700

Remove the various stat-drain poisons
None of them are currently used anymore, there are already
non-poison-based equivalents for each stat (and it's debatable
whether stat drain like this is even a good mechanic in the
first place).

--------------------------------------------------------------------------------
c2fa5e7322 | DracoOmega | 2014-03-06 09:58:16 -0700

Adjust damage from venom weapons (mainly versus players for now)
The poison inflicted by venom weapons is now proportional to the
damage inflicted by the primary blow. Mostly this matters when
the player is being hit by it, though you could technically inflict
more levels of poison on a monster in a single large hit (not that
it would matter)

I would like to do something to make venom-branded weapons less
obviously bad for players to use later in the game, but I'm not
immediately certain how to do that without affecting earlygame
venom-brand power (where it is quite good and I would like to see
it remain so). For now, this at least lets monsters have some effect
with them in the new system.

--------------------------------------------------------------------------------
3025aea163 | DracoOmega | 2014-03-06 09:58:16 -0700

Convert Cure Poison and OTR to the new system

--------------------------------------------------------------------------------
c5e17e5f3e | DracoOmega | 2014-03-06 09:58:16 -0700

Convert various other sources of player poison to the new system
This covers potions of (strong) poison, miscast effects, clouds,
needle traps, missiles, and curare.

Several of the less important ones have fairly arbitrary values that
seemed roughly reasonable. A bit more care was used with some things
whose poison damage could already be genuinely dangerous (such as
early poison needles), but definitely needs testing in a real game.

--------------------------------------------------------------------------------
dcfe0c6302 | DracoOmega | 2014-03-06 09:58:16 -0700

Adjust BEAM_POISON and BEAM_POISON_ARROW player poisoning for new system
Again, there is no clear way to map old poison values directly onto
the new system, even if the intent were to preserve them as close as
possible (which I do not think is even intrinsically desirable), so
these are a first pass at new formulas.

The amount of lingering poison inflicted by poison beams is now based
on a randomized fraction of the pre-AC damage of the beam (meaning
greater naga venom bolt will leave more poison in your system than
deep elf mage venom bolt would). This is probably a buff to venom bolt,
but it was never the scariest spell in the first place, and damage
numbers on either side of the equation can be adjusted after testing.

--------------------------------------------------------------------------------
637b8013f0 | DracoOmega | 2014-03-06 09:58:16 -0700

Display the poisoned portion of a player's HP in their health bar
As a visual aid now possible with deterministic poison, color the
portion of a player's HP that will eventually be lost to poison. This
should allow players to gauge at a glance how serious their situation
is (particularly as it is ramping up in severity) compared to the more
cryptic thresholds in the old system where poison went from trivial
to swift.

The code involved here is rather hacky, but since no other bar but the
hp one should need an additional shaded region, I went with something
more expedient for the moment.

Note that this commit does not enable this for the Android layout,
as I have no way to test whether any code I would write for its display
routines actually worked.

--------------------------------------------------------------------------------
3c092ef947 | DracoOmega | 2014-03-06 09:58:15 -0700

Revamp / simplify monster melee poison application
This removes AF_POISON_MEDIUM, leaving only AF_POISON and
AF_POISON_STRONG as the normal poison attack flavours, but basing
poison damage inflicted by attacker HD instead (AF_POISON_STRONG
inflicts more per HD, but importantly partially ignores rPois as
it presently does). Also it simplifies some of the random checks
for whether poison is inflicted at all.

In effect, this means that high HD monsters should inflict amounts
of poison that are more tactically relevant than present (which
seem generally desirable to me) while simplifying how they do so,
and keeping the poison damage from early creatures lower (as they
also have low HD).

Many creatures seem to fit a natural progression with this new
system, but there are several cases where monsters of the same HD
were explicitly differentiated by poison severity (such as scorpions,
with the same HD as adders but worse poison, or wolf spiders, with
more HD than any other spider but explicitly weaker poison). Some
of these will likely need individual changes.

--------------------------------------------------------------------------------
d0b4e9bb10 | DracoOmega | 2014-03-06 09:58:15 -0700

A first pass at deterministic player poison
Instead of players having 'levels' of poison, which deal differing
damage and decay stochastically, the player's poison level is now
stored as an actual specific quantity of damage that will be dealt
over time.

The damage formula is very much provisional, but currently deals
10% of your total accumulated poison damage per 10 aut (scaling with
time taken), to a maximum of 15 and a minimum of 1/4. DUR_POISONING
stores the total amount of hp worth of poison, multiplied by 4 (to
account for the 1/4 hp damage possible at the low end of the scale).
Possibly it should be changed to an attribute, since it's not really
a duration, but this was equally true of how DUR_POISONING was used
up to now.

This formula deals damage for high values of poison more quickly,
but tends to last less time (sometimes much less). One of the ideas
behind this is to 'compress' heavy poison, so that it can be relevant
within the timeframe of a single combat (as abundant !curing makes
even extreme quantities of lategame poison mean little outside of it),
while also allowing easier resting off of poison when the quantity
is trivial (as the deterministic nature makes it easy to tell the
player is in no danger, and therefore not interrupt them). Ideally,
it allows the poison status to have some lategame tactical relevance,
when currently it generally does not.

This formula is also a lot more smooth than the old one, which would
deal very low damage per turn for a while, then suddenly spike from
3 max damage to 14 when you passed the threshold at 10 levels of poison.
(Also, the variance is substantially less).

Due to the complexities of estimating what the 'average' damage of
a level of poison currently is, conversion of many sources of poison
that I intend to remain similar will be very approximate. While I feel
that lategame poisoning could use a power boost (and plan to give it
one), earlygame sources such as adders were already strong and I do not
mean to affect their balance considerably. Probably this work will need
several passes.

(Note that I am not planning to significantly affect the balance of
the poison status for monsters at the same time. There are ways it
could arguably be improved, but the relevant balance issues at play
are fairly disjoint from those concerning player poisoning, and so I
feel this is more than enough to upheave at once. For now, monsters
will just roughly downscale the true damage values of a poison effect
into something fairly comparable to the old poison degree values -
I expect this is close enough to current values in most places)

--------------------------------------------------------------------------------
d96ee88c72 | Steve Melenchuk | 2014-03-06 09:58:15 -0700

Rename Summon Menagerie to Monstrous Menagerie.
Less boring, at least.

--------------------------------------------------------------------------------
deec9291c5 | DracoOmega | 2014-03-06 09:58:15 -0700

Let Spellforged Servitors also cast Bolt of Draining

--------------------------------------------------------------------------------
ddf16dbc89 | DracoOmega | 2014-03-06 09:58:15 -0700

Reduce Summon Mana Viper's level to 5
It was generally harder to cast than Summon Menagerie, yet less
powerful in many contexts. Mana vipers do provide stronger disabling
support, but this is less needed if you can just kill the target
instead.

The spell might benefit from not being found only in a book that also
has Menagerie, incidentally - maybe it should be put in one of the
hex books?

--------------------------------------------------------------------------------
3b8d1aeae3 | DracoOmega | 2014-03-06 09:58:15 -0700

Make wolves and wargs require more spellpower from CCF

--------------------------------------------------------------------------------
4a04b93b0b | DracoOmega | 2014-03-06 09:58:14 -0700

Don't try to place a second dragon via Dragon's Call if you run out of mp after 
the first

--------------------------------------------------------------------------------
4adeefc5a0 | DracoOmega | 2014-03-06 09:58:13 -0700

Fix a typo

--------------------------------------------------------------------------------
390170b950 | DracoOmega | 2014-03-06 09:58:13 -0700

Mention the role of creature HD in Forceful Dismissal's description
It is fairly non-obvious at first, unless you know the mechanics.

--------------------------------------------------------------------------------
e3a50e0166 | DracoOmega | 2014-03-06 09:58:12 -0700

Reduce Lightning Spire power and spellpower scaling

--------------------------------------------------------------------------------
6c998b530f | Steve Melenchuk | 2014-03-06 09:58:12 -0700

Don't falsely warn players of Forceful Dismissal self-harm.
Also shuts up a compiler warning.

--------------------------------------------------------------------------------
08098647c7 | DracoOmega | 2014-03-06 09:58:12 -0700

Make the Book of Summonings less rare
It was the rarest book outside the 3 high-level books by a nice margin,
and it's unclear to my why this should be the case (nothing in it is
even over level 6, after all). Maybe it dates back from when abjuration
was an extremely powerful spell that tons of characters wanted, and
thus an excellent find on that basis alone? But that hasn't been true
for a long time, and its rarity feels rather disproportionate to its
power.

--------------------------------------------------------------------------------
cb30c9eeb3 | DracoOmega | 2014-03-06 09:58:12 -0700

Some summoning book changes
Add Forceful Dismissal to the Grand Grimoire. Put Spellforged Servitor
in the Book of Wizardry (replacing Fireball, which still shows up in
3 other books). This is maybe too common a location, but I'm not sure
where else to put it right now (Annihilations doesn't feel a good fit
to me) and being common during testing sounds okay. Add Summon
Menagerie and Summon Mana Viper to the Book of Beasts, removing Sticks
to Snakes and Ice Form.

--------------------------------------------------------------------------------
e8428e0f75 | DracoOmega | 2014-03-06 09:58:12 -0700

New spell: Summon Mana Viper
With the aim of creating summons that have more differentiated uses
from each other, this spell summons something that can provide good
anti-caster support while being less directly mighty than other
higher level summons, particularly against enemies where its antimagic
bite contributes little.

It is a level 6 summoning/hexes spell which summons a mana viper (with
a cap of 2) whose antimagic effect scales noticably with spellpower,
but its hp and damage do not. The general idea is that it is less
good at killing many things on its own (and spellpower alone cannot
turn it into something very tanky) but an investment in the relevant
skills can provide a very strong augment against vulnerable enemies.
(It IS still pretty strong even against non-casters, I admit, but also
a level 6 dual-school spell with a less common secondary school, so
maybe is fine as-is).

--------------------------------------------------------------------------------
34a32a6a3c | DracoOmega | 2014-03-06 09:58:11 -0700

New spell: Forceful Dismissal
In the spirit of adding more dynamic options to summon play besides
'make more creatures to throw at things', Forceful Dismissal is a
level 6 summonings spell which violently unsummons all of your nearby
summoned creatures, causing magical explosions around where each of
them were.

The explosion damage is based both on spellpower as well as the HD of
the creature being unsummoned (so imps make much less effective 'bombs'
than a hell sentinel would).

Damage numbers are even more provisional than usual, since it's
somewhat hard to know how this will play outside a real game. The aim
is not to make immediately detonating summons in melee range the
generally optimal thing to do, as the full damage over a summon's
lifetime ought to exceed it in many cases, but rather something you
might use in cases where burst damage was especially important, or
your defensive line looked about to crumble anyway, and so on.

I considered adding a drawback that casting it would temporarily
prevent RE-summoning anything for several turns, making it more
desireable to get further value out of the living summon before
exploding it, but I'm not certain that's necessary, and would like to
see how this version plays out first.

--------------------------------------------------------------------------------
2c78eff9bc | DracoOmega | 2014-03-06 09:58:10 -0700

Allow the draw delay for explosions to be changed (as it can for beams)

--------------------------------------------------------------------------------
760ea11527 | DracoOmega | 2014-03-06 09:58:10 -0700

An attempt at some AI improvements for spellforged servitors
There are two main changes here:

Firstly, given that this summon is more likely to be used by conjurers
than a typical summon, the tendency for them to walk into your line of
fire is more problematic than usual. I have added some fairly 'dumb'
code to try and reduce their chances of doing this. All it does is
refuse to let the servitor step anywhere in the direct line between the
player and the servitor's current enemy target, unless it's already
there (either you stepped behind it, or it acquired this target while
already interposed). This target is not guaranteed to be what the player
wants to fire at themselves, of course, but there's probably a
reasonable chance that it often is.

Secondly, make the servitor likely to hold position once its target is
within range for all of its spells, rather than close further into
melee. It has no melee attack in the first place, and I think that
keeping its distance will help it avoid blocking the player's line of
fire in other cases (as well as help the servitor's own survival).
It will not actually retreat, however - simply not advance.

My hope is that neither of these behaviors will obtrusively apparent
(produce visibly strange behavior) and simply result in it causing
fewer visible problems in actual games.

--------------------------------------------------------------------------------
2a0814e80e | DracoOmega | 2014-03-06 09:58:10 -0700

New spell: Spellforged Servitor
With the idea of introducing more summoning spells that a bit
unique in some way, this is a level 7 Summoning/Conjurations spell
which summons a single golem-like being that possesses a subset of
the caster's own conjurations.

The spell list is assembled deterministically, somewhat similar to
player ghosts (though different in a number of regards). The first
3 spell slots draw from a 'primary' list containing direct
conjurations like bolt of cold or poison arrow, while the next 2
are from a 'secondary' list which tends to contain AoE effects and
cloud spells, as well as things like airstrike. Spells are selected
roughly in order of level and power, with the player's higher spell
skills having a small effect. In practice, I think the servitor
will fairly transparently possess a selection of the player's better
spells, without anyone needing to think much on how it arrived at
this list.

Many of the highest level spells (like fire storm and shatter) are
excluded not only for power reasons, but also because a servitor
using these could be downright dangerous to its caster. The main
exception I made here was CBL, which is allowed (being both
lower-level and often similarly dangerous when the player uses it,
though I open to changing this).

--------------------------------------------------------------------------------
5112a529f8 | DracoOmega | 2014-03-06 09:58:10 -0700

Scale Summon Lightning Spire with spellpower
The damage of the spire's lightning bolt now increases with
spellpower, but the hp of the spire is fixed at 20 and its duration
at 2.

I think that this should make it a sometimes-viable damage augment
beyond its current useful period, while retaining a notable limitation
of fragility later on (which makes the placement range limit
particularly meaningful on top of this, I think)

--------------------------------------------------------------------------------
482083a760 | DracoOmega | 2014-03-06 09:58:10 -0700

Scale chance of 3s over 4s from Summon Demon by spellpower
As another part of making summon spells more affected by spellpower.

3s are not universally stronger than 4s, but are still stronger on
average, so this is a buff at higher power. At low spell power, the
chance of 3s is actually somewhat less than currently (but could
perhaps use to be even lower?)

--------------------------------------------------------------------------------
af7676b698 | DracoOmega | 2014-03-06 09:58:09 -0700

Replace Summon Ugly Thing with Summon Menagerie (pending a better name)
Summon Ugly Thing was never a particularly impressive spell and the
summon cap changes have left it even more underwhelming these days.
Still, there is a need for a solid midrange summon available to good
god worshipers, and this is a shot at assembling one that might be
more interesting than the ubiquitous ugly things.

The spell can summon either a manticore, lindwurm, harpy (multiples
at higher power), or a sphinx (much rarer except at high power), which
I feel are solid midrange creatures with a shared mythological theme
and some relatively unobtrusive gimmicks (and more of an emphasis
on ranged combat than its immediate 'upgrade' in Summon Hydra).

Somewhat similarly to Shadow Creatures, multiple harpies count as a
single creature for the purposes of the spell's cap, and the creatures
also receive a modest HD boost based on high spellpower (I'm still
somewhat divided on this, unlike with Ice Beast, but it does help the
spell scale more strongly with spellpower that it otherwise would;
perhaps there is some higher-tier creature accessible with high power
that could help bridge this gap on its own?)

As a natural consequence of Summon Ugly Thing being replaced, Kirke
also acquires this spell. This is effectively a buff for her, but as
one of the least dangerous midgame uniques, I am sure she can handle it,
and a selection of Greek mythological beasts are surely at least as
suitable things for her to summon as... whatever ugly things are.

--------------------------------------------------------------------------------
f26fde6e9d | DracoOmega | 2014-03-06 09:58:09 -0700

Replace Mass Abjuration with Aura of Abjuration
Mass Abjuration was never an especially popular spell at level 6,
but the recent changes which cause summons to be automatically
abjured upon their caster's death renders its usefulness considerably
lower. This experimental change is aimed at making the spell more
appealing given how readily available this faux-mass-abjuration
already is to everyone.

Aura of Abjuration causes the caster to continuously perform a
lower power version of Mass Abjuration each turn for a reasonably
long duration, sending new summons away shortly after they arrive
(given sufficient power). This version could even be a useful
pre-cast option for battles with summon-focused enemies and provides
tactical options which old Mass Abjuration did not, and might give
the spell some play in the current environment.

--------------------------------------------------------------------------------
319cca669d | DracoOmega | 2014-03-06 09:58:09 -0700

Improve Trog's abjuration protection
Reducing abjuration power by 20% is pretty underwhelming when the
duration of BiA is fairly low to begin with (meaning many things
could still abjure them in one shot). I have increased this to a
50% reduction.

I didn't change the TSO formula (which is different and also HD-based),
since you can also have this alongside spell-based summons, and the
creatures given by TSO invocations are naturally more resistant to
abjuration than BiA due to their far long duration.

--------------------------------------------------------------------------------
d66ee650df | DracoOmega | 2014-03-06 09:58:09 -0700

Simplify monster abjuration code
The code here was pretty ancient, and did a number of things that
were either unapparent or outright buggy.

Abjuration power used to downscale with each monster affected and then
also for how distant they were from the caster, and didn't actually
reach to cover all of LoS (though would pass through opaque walls
just fine!). The power downscaling was very non-obvious and also unlike
player abjuration, and it probably needs no explanation that it
shouldn't affect monsters the caster cannot and has never even seen.

Now, abjuration affects all of the monster's LoS (and ONLY their LoS),
hitting each target for the same power regardless of distance or how
many things are present. I used power roughly equivalent to old radius
3, though possibly this should be examined further (and monster
abjuration is a lot stronger automatically when the top-end summons
have so much less duration now)

I also replaced some custom almost-a-radius_iterator code with an
actual iterator; I assume it predates them being added to Crawl, and
it was only used in this one context.

--------------------------------------------------------------------------------
3813bf0752 | DracoOmega | 2014-03-06 09:58:09 -0700

Remove Demonic Horde
This was neither a popular nor powerful nor especially interesting
spell, which was basically 'Call Imp, except a lot more of them'.
Making the demons more individually powerful only further steps on
the toes of the many other demon summoning spells that already
exist, so I think it is fine to simply trim it.

--------------------------------------------------------------------------------
e724f9623f | DracoOmega | 2014-03-06 09:58:09 -0700

Convert Dragon's Call to Summon Dragon for player ghosts
(Also raise the cap slightly, now that it's monster-only)

--------------------------------------------------------------------------------
b69413d9fd | DracoOmega | 2014-03-06 09:58:08 -0700

Overhaul Summon Dragon for players
Summon Dragon was hit extremely hard by the summon cap, as the effective
strength of a summoned monster is superlinear with their quantity, and
2 dragons simply does not provide even remote offensive or defensive
parity with equal level spells in other schools, such as tornado or
shatter (since killing groups of monsters quickly is a pretty good form
of defense). It is true that it could be used in consort with other
summon spells to increase its impact, but the same is equally true of
pairing tornado with other conjurations.

A level 9 spell is a huge investment and its impact should be equally
huge, which does not seem at all the case at present. When testing it
against other equal-level spells in a range of realistic combat
scenarios, Summon Dragon takes more time to defeat even modest encounters
than its peers (often much more), while generally exposing the player
to more danger in the process (both due to its delay in killing ranged
threats and also that you can no longer form an effective screen of
dragons with only 2 of them lasting more than a couple turns). In many
cases, the difference is extreme. And the fact that the dragons last
forever is of limited practical advantage (except in resisting monster
abjuration).

Raising its summon cap might address this somewhat, but rather than
simply making it more spammable in the old sense, I have decided to give
it behavior which further distinguishes it from common summon spells while
making it suitably impactful for its spell level and the investment that
represents.

Summon Dragon is replaced by Dragon's Call, which gives the player a
temporary status that will continuously summon in dragons adjacent to
and attacking random hostiles within the player's LoS. These dragons have
an individually short duration and will appear only while hostiles are
present (so you cannot build up an army while outside of battle, nor
carry your previous army from battle to battle unless they occur with
only short delay between them). The delay between summoning each new
dragon is proportional to how many you already have, meaning that they
will arrive more quickly when you have none, and much more slowly while
several are already active. Each new dragon summoned costs the caster a
small amount of mp, and the effect will end if you run out. Also, it
generates a continuous amount of noise while the status lasts. Finally,
there is a somewhat lengthly cooldown between times the effect can be
activated.

The effect is definitely strong, as befits a level 9 spell, but
interestingly it also excells at slightly different situations than
other level 9 spells do. It is distinctly less powerful against massed
groups of foes, but potentially stronger against a series of moderate
to small encounters back-to-back due to its duration. And it definitely
(to me, anyway) feels splashy in a way that a level 9 spell ought to.
Of course, numbers are still provisional, as always.

(For now I have retained the original Summon Dragon as a monster spell,
as much of the additional complexity of Dragon's Call does not add much
to a monster version over just summoning a couple more dragons in the
usual manner)

--------------------------------------------------------------------------------
6055efdfb8 | DracoOmega | 2014-03-06 09:58:06 -0700

Don't count hostile summons as part of a summoner's cap
The fact that demons which were summoned hostile still counted as
part of your limit created some odd effects, where casting the
spell again could immediately replace the hostile demon with a new
one, but did so only unpredictably (since it was based on the
internal duration of each summon - something the player cannot know).
Meaning that sometimes a hostile was trivially replaced by one recast,
and other times this would have no effect even if done 4 or 5 times.

I think it's a bit more intuitive if hostiles count as outside the
cap, and rapidly rotating through demons to rid yourself of a hostile
feels like odd behavior to me (particularly when it seems arbitrary
whether this works or not).

One quirk of this change is that friendly summons which you
deliberately make hostile would then no longer count towards your
cap, allowing you summon more, but I cannot think of how you could
reasonably exploit this ('summon, hit, enslave, summon more' sounds
impractically clunky in any real situation). So possibly that's fine.

--------------------------------------------------------------------------------
787896c097 | DracoOmega | 2014-03-06 09:58:04 -0700

Allow temporarily-friendly summons from Greater Demon to work with autofoe
Previously it failed since they are underlying hostile, only charmed.

--------------------------------------------------------------------------------
8775c94ab8 | DracoOmega | 2014-03-06 09:58:04 -0700

Some Summon Greater Demon adjustments
Greater Demon was hit especially hard by the overall summoning
nerfs for reasons that aren't immediately obvious. Given that the
strongest demons are guaranteed to eventually turn hostile, it was
a fairly common tactic to keep your distance from them while they
fought (lest you be tormented or hellfired without warning), but
now not only do you need to stay closer to them for them to continue
fighting, but it is difficult to actually leave them behind if you
try! Even if you tell the demon to wait, if it attempts to engage
a hostile (as it will if any are around) and then loses LoS to you,
it will dutifully run right back after you, even if what you WANTED
was to lose LoS to it. (Also, a small cap means fewer friendly demons
to quickly dispatch any that turn hostile before they can harm you).

The charm duration was extremely low compared to the full summon
duration of the demons, frequently making 1s that were friendly for
only 10 turns and then hostile for 90 turns afterward. Combined with
the noticeable chance of all demons being outright hostile from the
start, I feel that the risk/reward ration of this spell was just not
equitable anymore.

This commit makes three changes aimed at keeping the intent of the
spell while making it more useable under the new summoning conditions:

1) Summoned 1s remain charmed for longer (duration somewhat influenced
   by spellpower)
2) Overall duration of summons is reduced (which should make it easier
   to abjure any hostile demons you end up with, whether they are
   hostile immediately or later)
3) 1s breaking free of charm lose their first action afterward, so that
   they can no longer torment/hellfire the player as the very first
   indication of their becoming hostile.

Ideally this keeps the spell's identity as one with powerful upsides,
but also risks, while tilting the balance more in the player's favor
and making the risks more manageable when forced to maintain proximity
with temperamental fiends.

--------------------------------------------------------------------------------
c60085f66c | DracoOmega | 2014-03-06 09:58:03 -0700

Scale Call Canine Familiar better with spellpower
This commit makes which canine the spell produces more strongly
affected by spellpower. Wolves should be less common at low power
(where they are extremely powerful), while hounds should stop
being the common result at higher power (where they are so weak as
to be useless), eventually phasing out altogether. Newly-buffed
wargs are placed at a tier above wolves, eventually replacing them.

The idea is that which canine you get is more consistant, based on
spellpower, in the hope of giving the spell a little more longevity
without boosting earlygame power (and in fact curtailing it somewhat).

--------------------------------------------------------------------------------
257c1ba7c9 | DracoOmega | 2014-03-06 09:58:03 -0700

Buff wargs a little
This is intended primarily to create a distinct tier above wolves
for Call Canine Familiar (to help with power scaling), but adding
a bit more damage to orc knight bands doesn't sound like it would
be unbalancing. (Also, the description has always described them
as 'bigger wolves', so it seemed a touch odd that they were weaker
than them, following the war dog merger)

(I removed the puny claw attacks since they were unlikely to
actually injure someone with more than a couple AC, and wolves don't
really use their claws to fight, anyway)

--------------------------------------------------------------------------------
6898a1edec | DracoOmega | 2014-03-06 09:58:03 -0700

Scale summoned Ice Beasts' HD with spellpower
A lot of summoning spells in general have scaling problems, being
very strong when they outclass their opponent and extremely weak
when outclassed by them (much moreso than with conjurations), as
well as gaining little real benefit from additional spellpower.
This meant that many would be extremely strong when first castable,
only to quickly become almost obsolete.

This was especially evident with Ice Beast, being the top-end spell
in a background dedicated to summoning, yet having longevity that
was dramatically worse than the top-end spell of nearly every other
book background. This aims to create more parity in that respect by
increasing ice beast HD with spellpower, which will increase both
their durability and their cold damage.

Ideally, I think they should be able to remain a core summoner tool
into midgame (or somewhat beyond), as fireball or LRD or throw icicle
or lightning bolt already do, and which the current non-scaling version
does not. (The numbers assigned here are still provisional, of course).

--------------------------------------------------------------------------------
e2bf042635 | DracoOmega | 2014-03-06 09:58:03 -0700

Greatly reduce the duration of Horrible Things, but increase cap timeout
I think shorter duration summons tend to play better than ones which
stick around for literally one or two hundred turns after being summoned
(which tends to encourage more precasting, among other things).

The increase in the timeout cap is to allow chain-casting the spell in
battle to produce a temporarily heightened effect at extra cost
(particularly given the side-effects of casting this spell). And also
to prevent a recast to replace dead allies from immediately dissolving
your own defensive line and letting hostiles through.

--------------------------------------------------------------------------------
2b973d98b0 | DracoOmega | 2014-03-06 09:58:02 -0700

Simplify and slightly adjust number of creatures produced by Horrible Things
This reduces the variance in the number of things produced somewhat,
lowering the maximum, increasing the chance of a single tentacled
monstrosity (but making it more spellpower-dependent) and generally
making it a little clearer (I hope) so see what the actual formula is.

--------------------------------------------------------------------------------
157743cf2e | DracoOmega | 2014-03-06 09:58:02 -0700

Cap abominations and tentacled monstrosities from Horrible Things separately
The difference in power level between these two results was extreme,
and made using the capped version of the spell awkward; given the
high randomness in quantity produced in one cast, recasting even when
well below the limit was still quite likely to immediately replace a
tmons (or maybe more than one!) with a far weaker abomination.

Now instead of a shared cap of 8 for the spell as a whole, there is
a cap of 6 abominations and 2 tentacled monstrosities.

--------------------------------------------------------------------------------
c0d0271db0 | elliptic | 2014-03-06 11:50:03 -0500

Add player lua to tell whether the player is rooted to the ground.

--------------------------------------------------------------------------------
16c2031d7b | elliptic | 2014-03-06 11:50:03 -0500

Let moninf_get_is_caught() also check webbed status.

--------------------------------------------------------------------------------
b4a22a472f | elliptic | 2014-03-06 11:50:02 -0500

Fix stabbing.
Commit 8afe6cab changed is_unchivalric_attack() without realizing that this
is actually the function that controls whether you get a stab and how strong
the stab is. This commit reverts the part of 8afe6cab that changed that
function, adds a comment cautioning against this, and adds a check for
mons_is_object() in tso_unchivalric_attack_safe_monster() just in case
(though intelligence checks probably already caught this).

--------------------------------------------------------------------------------
7f644f8eae | DracoOmega | 2014-03-06 13:07:51 -0330

Rearrange the shop screen a bit
Right-justifying item prices to the limits of the window meant that
hugeterm and local tiles could list shop prices an almost unparsable
distance away from the items they referred to. This commit rearranges
things to display the price first, followed closely by item name, which
should make it quicker to associate an item with its price, while still
allowing large screens to display the full inscription for long
randarts without being overwritten by the following column.

--------------------------------------------------------------------------------
99c708b618 | DracoOmega | 2014-03-06 13:07:49 -0330

Have Summon Forest place some trees on open floor as well
This allows it to be functional in areas without rock walls (such
as Vaults or quite a number of actual vaults) where previously you'd
just summon a very sad dryad who couldn't use her spells.

The trees are placed such that they do not break connectivity, so it
can never block off passages. Sight lines are sometimes affected, but
not in a predictable way that I expect could be usefully exploited
though.

--------------------------------------------------------------------------------
08114c701e | DracoOmega | 2014-03-06 13:07:48 -0330

Don't print spell enhancer messages for aborted Summon Forest
If you attempt to cast it while the spell is already active.

--------------------------------------------------------------------------------
be4eec3368 | DracoOmega | 2014-03-06 13:07:46 -0330

Apply Weakness damage reduction also to ranged weapons, improve a message

--------------------------------------------------------------------------------
3aa8c9cabb | DracoOmega | 2014-03-06 13:07:44 -0330

Don't sometimes wake the player on MSGCH_SOUND messages being printed
Not only is gameplay code being trigger in message handling kind of
icky, but this was also nearly certain to never be relevant.

--------------------------------------------------------------------------------
f9aa60e162 | DracoOmega | 2014-03-06 13:07:42 -0330

Mark Summon Vermin as unholy
So that good god worshippers won't be able to summon things which
summon drainers via shadow creatures or ?summoning.

--------------------------------------------------------------------------------
b268c21e66 | DracoOmega | 2014-03-06 13:07:41 -0330

Let ?vulnerability remove dimension anchor

--------------------------------------------------------------------------------
8650be35d5 | DracoOmega | 2014-03-06 13:07:39 -0330

Let autofoe behavior work with summoning cards

--------------------------------------------------------------------------------
39ca95ba61 | Chris Campbell | 2014-03-06 15:55:39 +0000

Improve Makhleb servant ability descriptions

--------------------------------------------------------------------------------
5a0c722b90 | Chris Campbell | 2014-03-06 15:53:32 +0000

Add a force_more to the first Beogh conversion prompt by default
It's hard to miss the "Beogh" status light but the details on how to
convert are a bit less obvious.

--------------------------------------------------------------------------------
af06a165cd | Pekka Lampila | 2014-03-06 14:39:19 +0200

Call _send_options after _send_version on spectator join.

--------------------------------------------------------------------------------
41ab900690 | Pekka Lampila | 2014-03-06 14:39:11 +0200

Fix sending inventory item colour if name didn't change.
Most notably cursing an artefact weapon didn't update the HUD.

--------------------------------------------------------------------------------
993d327bd5 | Chris Campbell | 2014-03-06 08:00:49 +0000

Don't weight Nemelex decks based on the item type sacrificed
Instead just have a fixed weighting for deck types (currently:
40% Destruction, 30% Summoning, 20% Escape, 10% Wonders). Removes the
secret tech from Nemelex's ^! screen, and improves the rest of the
description there.

--------------------------------------------------------------------------------
8761da415c | Chris Campbell | 2014-03-06 08:00:48 +0000

Increase player acid spit damage and accuracy
To be similar to fire and cold breaths (but still with the reduced
cooldown).

--------------------------------------------------------------------------------
ee562fa0f8 | Chris Campbell | 2014-03-06 08:00:47 +0000

Remove bonus stealth from flight
It was pretty insignificant.

--------------------------------------------------------------------------------
8c67c54c84 | Chris Campbell | 2014-03-06 08:00:46 +0000

Adjust some Beogh references to racial armour
Since the armour support doesn't depend on orcishness any more.

--------------------------------------------------------------------------------
e06e79622f | Chris Campbell | 2014-03-06 08:00:44 +0000

Fix useless items not being cleared on new game
It was hidden in _racialise_starting_equipment for whatever reason.

--------------------------------------------------------------------------------
8ee228f88a | Chris Campbell | 2014-03-06 08:00:43 +0000

Remove some leftover references to racial equipment

--------------------------------------------------------------------------------
53b8f1dd7b | Chris Campbell | 2014-03-06 08:00:42 +0000

Move racial armour tiles to UNUSED

--------------------------------------------------------------------------------
49e238f2a2 | Chris Oelmueller | 2014-03-06 08:00:41 +0000

Don't generate racial armour
[It had much the same problems as racial weapons, with only very slightly more
significant effects. Some of the old effects of racial armour could potentially
be rethought and made into a new armour ego. Beogh still gives a (slightly
smaller than before) bonus for armour use, without the orcish requirement.
 -MarvinPA]

--------------------------------------------------------------------------------
12b0153de6 | Chris Campbell | 2014-03-06 08:00:39 +0000

Reroll hell effect paralysis instead of doing nothing

--------------------------------------------------------------------------------
5b7f6eae96 | Chris Campbell | 2014-03-06 08:00:38 +0000

Mark Dryads as M_NO_POLY_TO
They're only available from Summon Forest now.

--------------------------------------------------------------------------------
5fc5729971 | gammafunk | 2014-03-06 00:57:32 -0600

Make enslaved Natasha not revive as a permanent friendly (#8223)
Set her revived behavior explicitly to hostile if she's charmed.

--------------------------------------------------------------------------------
fe4543b2ec | pubby | 2014-03-06 01:45:25 -0500

Mark books as throwable when worshipping Trog.
It's somewhat common to throw books when worshipping trog, but the
interface made it annoying.
This change makes books show up when quivering or throwing.

[Committer's note: changed you.religion == to you_worship()]

--------------------------------------------------------------------------------
699017b8ff | Chris Oelmueller | 2014-03-06 01:30:43 -0500

Make slow heal less annoying

--------------------------------------------------------------------------------
b88c41b69b | Sage | 2014-03-06 01:25:07 -0500

Remove paralyse from hell effects.
Usually pointless. Occasionally fatal, and unpreventable, save by
going through hell wearing stasis

--------------------------------------------------------------------------------
145100d5b7 | Sage | 2014-03-06 01:24:56 -0500

Remove poison from Zot trap effects.
If you have curing, it's pointless; if no, you die. Hard to make it anything
but that, given how common potions of curing are.

--------------------------------------------------------------------------------
8b1149591b | Steve Melenchuk | 2014-03-05 21:55:43 -0700

Finish the set of blademaster offhand weapon tiles.
And update the quick blade and short sword tiles.

--------------------------------------------------------------------------------
b9fb697d0e | Neil Moore | 2014-03-05 23:50:26 -0500

Restore randart spear tile; move extra battleaxes to UNUSED.

--------------------------------------------------------------------------------
bc4d0d0735 | Steve Melenchuk | 2014-03-05 21:40:45 -0700

Move some unused tiles and remove references to them.

--------------------------------------------------------------------------------
4c31b69bc5 | Steve Melenchuk | 2014-03-05 21:35:33 -0700

Allow vault monster tiles to overwrite constructed monster tiles.
Motivated by the tiles that were supposed to be - and are - now used in
the wizlab_wucad rewrite.

--------------------------------------------------------------------------------
5c32a58d9d | Steve Melenchuk | 2014-03-05 21:18:19 -0700

Remove some now-unused branch and feature descriptions.
This also touches the Crypt description again to account for its
rotation no longer existing.

This partially reverts commit bf51db4ebc9b45a35d5637a89d46e7a7e375526d.

--------------------------------------------------------------------------------
38a56b4882 | Neil Moore | 2014-03-05 23:12:12 -0500

Remove a now-unused quote.

--------------------------------------------------------------------------------
1142d79024 | Neil Moore | 2014-03-05 22:21:28 -0500

Show * crosstrain marker more often (floatingatoll, #8235)
If the crosstraining-enhanced skill was displayed in the menu for being
trainable, but had less than 1.0 skill levels, the crosstrain-granting
skill would not get the '*' marker (unless the menu was set to show
all).  Now show the marker whenever the menu shows the enhanced skill.

Doing that without duplicating the menu logic from _show_skill in
crosstrain_other required moving crosstrain_other into skill_menu.cc
(which was the only thing that called it).  It could be made static
then, but several utility functions (and a constant) in skills2.cc had
to be made non-static, so perhaps it's a wash.

Also make the same adjustment to antitrain_other, even though currently
that is irrelevant: you must have at least 1.0 skill for antitraining to
have an effect.

--------------------------------------------------------------------------------
e6c7711a3a | Steve Melenchuk | 2014-03-05 20:00:09 -0700

Credit a fungus.
Add PleasingFungus to CREDITS.txt.

--------------------------------------------------------------------------------
a5274fd6dc | Nicholas Feinberg | 2014-03-05 19:59:19 -0700

Refactored random_near_space(); fixed bugs
Cleaned up bugs in random_near_space(). Monsters can no longer blink
through walls, or into lava/deep water. Ball lightning can be summoned
over lava/deep water.

[Committer's note: cleaned up a bit of code formatting and comments.]

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
9259616cc7 | Steve Melenchuk | 2014-03-05 18:14:41 -0700

A couple of adjustments to Shadow Step targeting.
Pass range2 instead of range to the jump targeter for more accurate ties
to the umbra range, and don't allow non-umbraed targets to be targeted
(this disallows haloed monsters from being stepped to, cf. #8016).

--------------------------------------------------------------------------------
ae9c01e6bc | Steve Melenchuk | 2014-03-05 16:02:20 -0700

Improve an error message.
In case invalid shop types happen again.

--------------------------------------------------------------------------------
e7db1d4a9b | Steve Melenchuk | 2014-03-05 16:01:48 -0700

Allow a legendary smithy to space out.
grated_community_mu's smithy caused errors when the name generated had a
space in it. This allows that to be possible.

--------------------------------------------------------------------------------
352617427b | Steve Melenchuk | 2014-03-05 15:53:53 -0700

Handle errors in shop specs with item lists a bit more gracefully.
If there was an item list and a problem with the rest of the shop spec,
it generated a valid shop spec without errors (assuming there were none
in the item list) with shop type -1.

This cropped up in grated_community_mu (which is about to be fixed).

--------------------------------------------------------------------------------
d1872aa6dd | Steve Melenchuk | 2014-03-05 15:01:20 -0700

De-ACTION_ENERGY ugly things; set their speed properly in ghost.cc.
This reverts commit e1cf388e90bd9bfeff688d24233e356a16cfecc5.

--------------------------------------------------------------------------------
3a718c0f03 | Steve Melenchuk | 2014-03-05 14:32:28 -0700

Dith doesn't hate vorpal hand axes.
Or other vorpal weapons, for that matter.

Broken by 1822766.

--------------------------------------------------------------------------------
b6a43b45fb | Steve Melenchuk | 2014-03-05 13:50:02 -0700

A couple of Static Discharge fixes related to monster casting.
The power was a lot lower than intended, and the player always benefited
from reduced damage no matter who was casting it - now the caster gets
the benefit of the reduced damage.

--------------------------------------------------------------------------------
c1536bb781 | Steve Melenchuk | 2014-03-05 13:40:40 -0700

Don't masquerade lightning spires as electric golems, either.
This is a bad (possibly temporary) replacement colour, but at least
different.

--------------------------------------------------------------------------------
766350d57f | Steve Melenchuk | 2014-03-05 13:34:31 -0700

Don't masquerade lightning spires as sensed monsters.
Their glyph is now an 8, since players are moderately likely to see them
in some forms of normal gameplay now.

--------------------------------------------------------------------------------
97a2a5a1ae | Steve Melenchuk | 2014-03-05 12:12:54 -0700

Add some more room for altar enums on TAG_MAJOR_VERSION > 34.
We have a lot of proposed deity concepts floating around; surely at
least one of them will reach a usable state by the time we need these
enums.

With nineteen current gods and eight enums, that's space for 27...

--------------------------------------------------------------------------------
3517332a41 | Steve Melenchuk | 2014-03-05 12:12:54 -0700

Move Depths branch enum on TAG_MAJOR_VERSION > 34.
A lot of things display branches in order of their enums, causing Depths
to be way at the end of the list in those cases (e.g. dungeon
overviews). This puts it in a more appropriate spot when we can do so.

--------------------------------------------------------------------------------
39441b969f | Steve Melenchuk | 2014-03-05 12:12:54 -0700

Fix up some TAG_MAJOR_VERSION > 34 issues.

--------------------------------------------------------------------------------
1a26aba65b | Steve Melenchuk | 2014-03-05 12:12:54 -0700

Rearrange monster enums when TAG_MAJOR_VERSION > 34.
Includes a couple of touch-ups that made this not compile when
TAG_MAJOR_VERSION > 34.

I've gone over the == 34 list with a fine-toothed comb and I'm 99%
certain they're identical, so saves should transfer through this fine.

--------------------------------------------------------------------------------
5b8a3b7716 | Pekka Lampila | 2014-03-05 20:34:50 +0200

Don't disable compression on Opera.
Works fine with version 20.0 on Windows.

--------------------------------------------------------------------------------
cf4d6bf9d7 | Pekka Lampila | 2014-03-05 20:17:38 +0200

Don't use JSON.parse, because old versions send invalid JSON.
Partly reverts: 4f2dacc6f834977f7ff323466cf506b7551ae9df

--------------------------------------------------------------------------------
726ad26053 | gammafunk | 2014-03-05 11:34:03 -0600

Add a monster check to prevent a crash due to grand avatar.

--------------------------------------------------------------------------------
15aa9332fb | Steve Melenchuk | 2014-03-05 09:40:44 -0700

Let fighting skill influence Dith's shadow mimic attacks.
The HD is now the average of fighting and weapon skill.

Also fixes a minmax error causing shadow attacks to always have HD 1.
(Sorry gammafunk!)

--------------------------------------------------------------------------------
a0332e025f | Steve Melenchuk | 2014-03-05 09:37:27 -0700

Rejig base Dith piety gain again.
Full gain at zero piety scales down to 2/3 gain (the current) at 6*
piety, not counting effects such as piety_scale().

This is intended to boost early game piety gains while keeping
mid-to-late game piety gains about the same.

--------------------------------------------------------------------------------
6333f0549c | Pekka Lampila | 2014-03-05 18:14:33 +0200

Clean out all document event handlers when changing game version.

--------------------------------------------------------------------------------
ccfdd9ccdd | Chris Oelmueller | 2014-03-05 13:19:51 +0200

Fix swapped labels in Ctrl-F (minmay, wheals)
Broken by 0.14-a0-2083-gb79a34a - also fix the spacing to align left.

--------------------------------------------------------------------------------
9e7773257a | Chris Campbell | 2014-03-05 03:45:54 +0000

Comment fix

--------------------------------------------------------------------------------
64e4fc4f2f | Chris Campbell | 2014-03-05 03:43:00 +0000

Typo fix in Lugonu description

--------------------------------------------------------------------------------
322860f2f2 | Chris Campbell | 2014-03-05 01:08:10 +0000

Let Ashenzari give multiple curse scrolls earlier
Give 1-3 curse scrolls, not based on piety.

--------------------------------------------------------------------------------
80f81f8a18 | Chris Campbell | 2014-03-05 01:04:51 +0000

Remove a hidden area from a sewer, reduce loot
The hidden area was very rare and spoilery, and the loot (lots of curing
and heal wounds, good chances for beneficial mutation) pretty
inappropriate for the low threat level.

--------------------------------------------------------------------------------
63ea54cbd8 | Neil Moore | 2014-03-04 18:30:59 -0500

Add command for evoking rods without range checks.
You can enable this behaviour with:
  bindkey = [v] CMD_FORCE_EVOKE_WIELDED

--------------------------------------------------------------------------------
6a8981a4e6 | ontoclasm | 2014-03-04 17:28:24 -0600

Orc warlord edit
As noted by a couple of people, the previous warlord was a little to
similar to other orcs in coloring.

--------------------------------------------------------------------------------
8dc6adb78b | ontoclasm | 2014-03-04 16:58:26 -0600

New orc tiles (roctavian, 8192)
I edited these slightly, primarily by lengthening the robes on the
casters.  They're so dangerous early on that they really need to stand
out, and the shorter robes were a little too easy to miss.

--------------------------------------------------------------------------------
e1cf388e90 | Shmuale Mark | 2014-03-04 15:48:19 -0500

Give (very) ugly things ACTION_ENERGY back.
Since their speed was set independently in ghost_demon, 4c9fca9d
made them speed 11 for movement but faster than that for actions.

--------------------------------------------------------------------------------
126f6a084b | Neil Moore | 2014-03-04 11:22:50 -0700

No Dith piety for killing shadows (dialectric)
Not including invisible creatures because that might encourage the
player to try to find a way to backlight them.

(cherry picked from commit 6f4b78644d708b3478e6ad795d29c83d276024f1)

Conflicts:
	crawl-ref/source/godconduct.cc

--------------------------------------------------------------------------------
69b86a6357 | Neil Moore | 2014-03-04 11:21:50 -0700

Split M_SHADOW from M_GLOWS_LIGHT.
Historically, M_GLOWS_LIGHT was originally a hardcoded list of monsters
that can't be backlit: the list was mostly glowing creatures, but also
some inherently shadowy ones.  When the use of the flag was subsequently
expanded, it be

Now shadowy creatures:

 * Can go invisible (even more shadowy)
 * Have a stealth bonus, not malus.
 * Are described as "wreathed in shadows" rather than "outlined in
   light".

Give the flag to shadow fiend, shadow dragon, phantasmal warrior,
spectral weapon, and shadow fiend.  Don't give it to spectral things,
which are explicitly described as glowing.

(cherry picked from commit c9348eb8f6c4cd4f327a8e0eba418e53d0be50d5)

Conflicts:
	crawl-ref/source/mon-flags.h

--------------------------------------------------------------------------------
61501322e2 | Neil Moore | 2014-03-04 11:53:56 -0500

Explain effects of spellpower in battlesphere description.

--------------------------------------------------------------------------------
9e08165d0e | Neil Moore | 2014-03-04 08:33:48 -0500

Fix non-ASCII text and inscriptions.
Maybe we should be using iscntrl() instead of comparing against 0x20,
but at the very least we shouldn't treat all non-ASCII UTF-8 bytes as
control characters.

--------------------------------------------------------------------------------
f36111d499 | Shmuale Mark | 2014-03-04 02:06:51 -0500

Change default of filter_useless back to false (ChrisOelmueller).
It was mostly just causing confusion when the only matching items
were useless, and it was rather annoying when items that were only
temporarily useless were being searched for.

--------------------------------------------------------------------------------
ea69ec1fc7 | Steve Melenchuk | 2014-03-03 19:33:52 -0700

Enums for missing tiles for monster spells/abilities.
See also c5ce8eb, the last time I did this (shortly before 0.13
branched - a sign?).

--------------------------------------------------------------------------------
eff2d49755 | Steve Melenchuk | 2014-03-03 19:19:46 -0700

A couple more rod-related icon tweaks.
This imports the rod of clouds icon from 59d031e, adds in an icon for
Cloud Cone, and renames/moves a couple of files around.

Given the number of rod/monster spells that have no icons, I would not
be worried about creating more of them.

--------------------------------------------------------------------------------
8063b2470d | Steve Melenchuk | 2014-03-03 19:02:54 -0700

Use the Shadow Creature icon for Weave Shadows.
Cloud Cone still needs a spell icon; other than that the only things
needing icons are monster spells (a lot of monster spells, but still).

--------------------------------------------------------------------------------
0334010afa | Steve Melenchuk | 2014-03-03 18:59:57 -0700

Spell icon tiles for the new summoning spells.
Made in the simplest possible fashion, i.e. mashing the icons for their
summons together with the player summoning icon.

--------------------------------------------------------------------------------
009d8da55d | Steve Melenchuk | 2014-03-03 18:40:08 -0700

roctavian's crystal guardian and guardian golem tiles (#8097).
I clumsily edited the crystal guardian slightly to make it look less
"pot-bellied", per roctavian's comments. If this still looks back,
someone more experienced at tile editing will have to fix it.

--------------------------------------------------------------------------------
ed793cfbc9 | Shmuale Mark | 2014-03-03 18:42:22 -0500

Give the ring of Shadows an umbra.
The size is equivalent to Brilliance's halo, and the stealth modifier
is 1.5. It loses +4 EV and -4 Acc since lower accuracy is an inherent
trait of an umbra.

--------------------------------------------------------------------------------
29b03513c5 | Chris Campbell | 2014-03-03 23:09:58 +0000

Reduce storm cloud spamminess
Greatly reduce their chance of triggering with no target, and don't make
them spread further like rain clouds.

--------------------------------------------------------------------------------
be29d66837 | Shmuale Mark | 2014-03-03 16:31:09 -0500

Purge some references to Forest.
In particular, ctrl-O should no longer mention the branch.

--------------------------------------------------------------------------------
1a3bbcab46 | Shmuale Mark | 2014-03-03 16:16:38 -0500

Remove ignises.
They don't spawn anywhere, and there's no clear consensus how to get
them to work: HD 1 means that they have no chance of mattering, and
even if they could affect the player corona has a minuscule effect.

--------------------------------------------------------------------------------
7514cc0676 | Steve Melenchuk | 2014-03-03 11:36:08 -0700

Update a couple of vaults for new species and minor issues.
Includes one old species that was missed (gargoyles).

Borrows the player tile for vine stalkers to give them a tile; these
(and formicid enemies, which actually appear elsewhere) should get real
tiles!

Since felid enemies revive now, they've been removed from a couple of
vaults where they could get killed on D:1 and respawn outside the vault,
killing unaware players; the ideal behaviour here would probably involve
them respawning inside the vault, but figuring out how to do that is a
problem unto itself.

A couple of cases where enemies could spawn with equipment
unintentionally have also gone away.

--------------------------------------------------------------------------------
c9fa8fe190 | Steve Melenchuk | 2014-03-03 11:08:59 -0700

Tone down the opposition further in grunt_vaults_entry_fortified.

--------------------------------------------------------------------------------
f98009f105 | Steve Melenchuk | 2014-03-03 10:48:15 -0700

Nudge monster (molten) gargoyles; give them spells and maces.
They're now basically miniature war gargoyles, exactly as you'd hope.

Gargoyles now reappear in D at a smallish chance in troll depth (D:9-17);
molten gargoyles are now lava spawns in more places.

--------------------------------------------------------------------------------
620cfe93ca | Steve Melenchuk | 2014-03-03 10:00:33 -0700

Zin warns the player of shapeshifters.
Since you can use Recite to pick them out anyway, we might as well just
straight up tell the player.

--------------------------------------------------------------------------------
18227662ff | Brandon Kime | 2014-03-03 11:44:52 -0500

Make fiery attacks with a chaos weapon offend Dithmenos
This is consistent with the good gods' treatment of chaos weapons.
This patch marks chaos weapons as "disapproved" by Dithmenos and adds
piety loss for all flame branded attacks rather than only attacks
with flame branded weapons.

--------------------------------------------------------------------------------
087542d4c1 | Eino Keskitalo | 2014-03-03 12:30:11 +0200

Remove lamp of fire from an abyss vault useless loot.
I assume it doesn't fit the theme anymore.

--------------------------------------------------------------------------------
a6afc0badc | Pekka Lampila | 2014-03-03 09:37:18 +0200

Don't send WebTiles message or flush for delay(0).

--------------------------------------------------------------------------------
9a318786fc | Pekka Lampila | 2014-03-03 09:37:17 +0200

Use json_write_string for glyphs, instead of duplicate code.

--------------------------------------------------------------------------------
2e42f34379 | Pekka Lampila | 2014-03-03 09:37:17 +0200

Escape all control codes in write_message_escaped.

--------------------------------------------------------------------------------
e0b155482b | Chris Campbell | 2014-03-03 06:27:28 +0000

Fix inverted logic for curse armour/jewellery scrolls (Medar)

--------------------------------------------------------------------------------
578dedd548 | Steve Melenchuk | 2014-03-02 20:48:12 -0700

Sort, adjust, clean up Vaults spawn table.
Same basic principle as the other clean-ups - remove ridiculously low
weight or otherwise problematic spawns, weight down extremely high
weight spawns, and generally make distributions less extreme.

Gone: wandering mushrooms, gargoyles, deep elf mages/summoners, naga
warriors/mages, orc sorcerers/high priests, pulsating lumps, elementals,
soldier ants, komodo dragons, trapdoor spiders, blink frogs, basilisks,
shining eyes, vapours, brain worms (all of which were very low weight);
hydras (adequately represented already in late D, Lair, and Swamp);
giant slugs (too low of a threat for the area and appears plenty earlier
on).

No completely new spawns in this set, though you might see a few enemies
more than once in a blue moon now.

For the working spreadsheet, see:
https://docs.google.com/spreadsheet/ccc?key=0AnzBASbyxWI2dDQ1SmdwVjRmc2RXN3BvR0J
0Mk93X2c#gid=3

--------------------------------------------------------------------------------
4e34cb1a75 | Shmuale Mark | 2014-03-02 20:01:15 -0500

Remove insignificant speed-up of corpse rotting with Powered by Death.

--------------------------------------------------------------------------------
9455bd2214 | Neil Moore | 2014-03-02 19:28:47 -0500

Remove unneeded braces.

--------------------------------------------------------------------------------
6a872f12d9 | Neil Moore | 2014-03-02 19:27:43 -0500

Make detected items etc override explore horizon (ChrisOelmueller)
You can always ctrl-c to hide the detected objects.

--------------------------------------------------------------------------------
048af8ec5d | Neil Moore | 2014-03-02 19:25:55 -0500

Eliminate EVP 15 breakpoint for getting Dex from Jiyva.
When we compute the player's target stats, we first meet carrying
capacity and EVP requirements for strength, then decide how much to
target intelligence based on spellcasting skills.  Whatever weight is
left over was being assigned to either str or dex, based on the player's
armour EVP.  If the player was wearing chain or heavier, Jiyva would
happily drop their dex to 9.

Now the stats remaining after assigning Int are divided proportionally
between Str and Dex based on the armour's EVP and the player's Dodging
skill.  The formula is (evp - dodging)/15 (bounded between 0 and 1), so:

 * At 0 dodging skill, chain mail or heavier will give pure strength.
   Even leather will weight towards strength somewhat in the absence
   of dodging.

 * If Dodging is at least as high as the EVP, the extra weight is
   assigned entirely to dexterity.  This means it is possible to weight
   towards pure dexterity even in GDA, once the "minimum" strength of
   25 is reached.

--------------------------------------------------------------------------------
2f3bebc844 | Chris Campbell | 2014-03-03 00:13:44 +0000

Adjust Ashenzari curse scroll weights, sometimes generate multiple scrolls
Look at the number of available armour slots for your species to decide on the
weightings for curse scrolls, and generate 1-3 curse scrolls per remove curse
scroll, based on piety.

--------------------------------------------------------------------------------
0bebd3a1b3 | Chris Campbell | 2014-03-03 00:13:43 +0000

Make curse armour/jewellery always work as if worshipping Ashenzari
Since Ashenzari should be the only way to get hold of them now.

--------------------------------------------------------------------------------
cd1638e14c | Chris Campbell | 2014-03-03 00:13:41 +0000

Remove scrolls of curse foo from vaults

--------------------------------------------------------------------------------
fe7e74c9a5 | Shmuale Mark | 2014-03-02 17:48:52 -0500

Typo fix (AreBrandon).

--------------------------------------------------------------------------------
759d53bbf9 | Shmuale Mark | 2014-03-02 14:21:50 -0500

Don't let lightning spires petrify (#8182).

--------------------------------------------------------------------------------
32c10dbb15 | Shmuale Mark | 2014-03-02 01:08:58 -0500

Make costs for +fog and RMsl artefact properties.
159 gp for cloak of the Thief is just ridiculous.

--------------------------------------------------------------------------------
9cde59c9bb | Steve Melenchuk | 2014-03-01 23:06:42 -0700

Excise some Glaciate targeter code causing strange issues.
See e.g. http://i.imgur.com/KVw4smB.png.

As far as I can tell, other than removing the extraneous extra rays,
targeting is not affected.

--------------------------------------------------------------------------------
20358d8b66 | Nikhil Addleman | 2014-03-02 05:46:54 +0000

Increase the weight of vulnerability scroll generation (decrease remove curse)
The scrolls are rare enough that their utility is largely underexplored.
This patch increases their generation weight from that of other medium level
scrolls to curse weapon levels. [Except not anymore because curse weapon was
removed!]

--------------------------------------------------------------------------------
efee55e9b5 | Steve Melenchuk | 2014-03-01 22:42:32 -0700

Make Glaciate damage fall off linearly, not with square of distance.
With wider playtesting, damage at range has been suggested to be
underwhelming; this should help address that.

--------------------------------------------------------------------------------
8965cfaeaf | Steve Melenchuk | 2014-03-01 22:29:12 -0700

Finish making all scrolls read ID.
This includes identify, enchant armour, and recharging.

A lot of now-unnecessary code goes away with this.

--------------------------------------------------------------------------------
7bbdbfb4c8 | Steve Melenchuk | 2014-03-01 22:29:11 -0700

Make curse scrolls and remove curse read-ID.

--------------------------------------------------------------------------------
b00f7ffce3 | Steve Melenchuk | 2014-03-01 22:29:11 -0700

Don't randomly generate curse scrolls; reduce scroll gen by 10%.
Curse scrolls were roughly 10% of all scrolls placed, so this should
keep the number of useful scrolls generated roughly constant.

--------------------------------------------------------------------------------
f295a2c411 | Shmuale Mark | 2014-03-02 00:24:02 -0500

Remove a pointless runed door.

--------------------------------------------------------------------------------
67a59c3fd9 | Chris Campbell | 2014-03-02 04:14:41 +0000

Improve messaging for EW scrolls
Don't show duplicate id messages, improve the message when no enchantable
weapon is carried.

--------------------------------------------------------------------------------
f20b04788f | Steve Melenchuk | 2014-03-01 21:12:13 -0700

Add an enemy back to depths.
By popular dev demand.

The weight makes it spawn roughly as often as it did before (see
tables).

--------------------------------------------------------------------------------
cf00f6c2d7 | Steve Melenchuk | 2014-03-01 20:56:30 -0700

Depths spawn table overhaul.
Basically, actually crunching the numbers for the current spawn table
showed that a lot of enemies were hugely overrepresented and a lot of
enemies were weighted so low as to be negligible.

These sweeping changes essentially narrow the extremes so that
excessively highly weighted creatures are less common and some of the
previously extraordinarily rare enemies appear a bit more common,
generally making the enemy set more variable over the entire range.

Several enemies have been removed - hydras, giant eyeballs, naga
warriors, naga mages (various concerns have been expressed about the
presence of all of these in Depths), redbacks and wolf spiders
(low tier threats by Depths time that appeared almost never).
Conversely, a couple of slightly higher tier enemies have been
introduced early on on a trial basis for the sake of variety -
manticores (very early and rather low weight), death yaks, catoblepae
(also low weight), dire elephants, and emperor scorpions.

See this page for fancy tables illustrating the changes:
https://docs.google.com/spreadsheet/ccc?key=0AnzBASbyxWI2dFgyVXRWNmUwT1FZdHFWSzN
Ta3NMTVE

--------------------------------------------------------------------------------
c8cdd53d3e | Pekka Lampila | 2014-03-02 04:22:46 +0200

Don't crash if revived Natasha can't be created.
Plus other fixes to mons_felid_revive.

--------------------------------------------------------------------------------
8f76789fba | Steve Melenchuk | 2014-03-01 18:39:59 -0700

Some adjustments to late D and D OOD spawns.
Primarily because several effects (rod of shadows, Yred wrath, Dith
wrath) now employ D OOD creatures.

Extremely low weight creatures are gone; a few low weight creatures have
been nudged up slightly to compensate; excessively weighted creatures
have been weighted down; a couple of new enemies have been added to pad
areas where there wasn't a lot of variety.

--------------------------------------------------------------------------------
1116d75af2 | Steve Melenchuk | 2014-03-01 18:29:14 -0700

Treat rod of shadows bands as one summon (like Shadow Creatures).
This was an oversight; cf. 2c0f318.

--------------------------------------------------------------------------------
fa2d2d73ac | Steve Melenchuk | 2014-03-01 18:14:17 -0700

Modernise some old Vaults room tags (ChrisOelmueller).

--------------------------------------------------------------------------------
c4a67229db | Chris Oelmueller | 2014-03-01 18:41:40 -0500

Remove no_dup tags from sprint_mu
no_dup (or rather, uniq) has been the default for a long while, long
enough that the tag became unsupported in the interim.

--------------------------------------------------------------------------------
787ed994d9 | Chris Oelmueller | 2014-03-01 18:41:40 -0500

Fix typos in vault tags

--------------------------------------------------------------------------------
2fd9f4130f | Pekka Lampila | 2014-03-02 01:00:09 +0200

Change WebTiles crash handling to work by parsing stderr.

--------------------------------------------------------------------------------
8a9724b8bd | Chris Campbell | 2014-03-01 22:32:46 +0000

Remove another reference to Fo poison vulnerability

--------------------------------------------------------------------------------
b4f46d0c3f | Chris Campbell | 2014-03-01 22:32:45 +0000

Remove rods of venom from some vaults

--------------------------------------------------------------------------------
53dfddf21e | pubby | 2014-03-01 22:32:44 +0000

Buff Fo mp apt to 1.
Fo casters have slight MP problems, and the reduction of their EXP apt
from 2 to 1 only made this worse. This commit compensates.

--------------------------------------------------------------------------------
726c8f7a8b | pubby | 2014-03-01 22:32:44 +0000

Remove Fo exoskeleton mutation.
The mutation was added to compensate for their low HP in the early game,
but since they have normal HP now it's not really needed.

--------------------------------------------------------------------------------
5cb1b68c4e | pubby | 2014-03-01 22:32:42 +0000

Allow Fo to get rPois mutation.

--------------------------------------------------------------------------------
6124e914b6 | Pekka Lampila | 2014-03-02 00:26:02 +0200

Do tiles.shutdown() earlier when handling a crash.
Trying to avoid socket being left open, while still sending assert
message and crash log file name to the WebTiles server.

--------------------------------------------------------------------------------
68cb4700d7 | Chris Oelmueller | 2014-03-01 17:06:16 -0500

Fix vault tag typo

--------------------------------------------------------------------------------
0318f1a664 | Chris Oelmueller | 2014-03-01 17:06:16 -0500

Small update for vim syntax file
Recognize a few more tags:
- no_species_*
- abyss_exit
- several V layout tags

--------------------------------------------------------------------------------
d7b41bbef6 | Neil Moore | 2014-03-01 13:12:43 -0500

Let always_corpse work for mutagenic creatures.
They were previously failing to leave corpses 1/3 of the time even when
corpse generation was forced on.  Besides always_corpse, two other cases
are affected, but are even less relevant:

  1. _dgn_item_corpse tried to force generation, but papered over the
     problem with CE_MUTAGEN corpses by retrying up to 200 times.

  2. The currently unused code for zombies turning back into corpses
     now always leaves a corpse, even for mutagenic zombies.

--------------------------------------------------------------------------------
784a1dface | tenofswords | 2014-03-01 12:52:43 -0500

Wake up wizlab_wucad's monks
Kind of weird for summoned creates to not be awake, but anybody with
absurdly high stealth could find this and then stab each monk as they
drop in, which is kind of really, really silly with Dith aiding this.
The monks are normal speed melee threats anyway, and thus hardly
need to be completely defanged by a bizarre interaction with lua.

--------------------------------------------------------------------------------
bed8625043 | tenofswords | 2014-03-01 12:48:06 -0500

Five swamp vaults (Cheibrodos, #8048)
Four minivaults and one large vault. Some significant edits from
the original submission: see said mantis issue for comments of mine
if you wish to see my thoughts. In particular, the mausoleum recieved
quite a few edits to be more appropiate as a non-rune swamp vault.

--------------------------------------------------------------------------------
175aae5ce8 | Steve Melenchuk | 2014-02-28 21:12:13 -0700

Treat Dith's shadow creature wrath like Weave Shadows.
That is, the summons are picked from D:<XL + 5>, similar to the scaling
of the rod of shadows with XL (only out-of-depth like a 9).

--------------------------------------------------------------------------------
072c9d39bc | DracoOmega | 2014-02-28 23:23:34 -0330

Let demonic guardians use autofoe behavior

--------------------------------------------------------------------------------
b2a26d5301 | DracoOmega | 2014-02-28 23:16:01 -0330

Fix some erroneous uses of visible_to in monster abilities
In some cases visible_to seemed to be used where can_see was intended
(and they are not the same thing - visible_to only cares about
invisibility and see-invis, ignoring line of sight). In others, the
check was not only wrong in this way, but incorrectly player-centric.

This biggest effect is that a considerable number of monsters (fire
and ice dragons, red and white draconians, lindwurms, hell hounds,
fire drakes, crabs, electric eels, lava snakes, and some others)
will no longer refuse to use their abilities if the player is invisible
to them - even if the monsters are friendly or they are not even
targeting the player in the first place! Yes, turning invisible would
stop all fire dragons elsewhere in the level from breathing on
anything, whether they even knew the player existed or not.

(This also fixes them never using their breath weapons in the arena,
as well)

--------------------------------------------------------------------------------
11cc5b071b | DracoOmega | 2014-02-28 23:14:34 -0330

Assign blame to druids for monsters recalled via Druid's Call
This is mostly for stat-tracking purposes. Some more druid changes
are planned, but in the meantime it would be nice to have actual
numerical data (too bad this comes so late).

--------------------------------------------------------------------------------
f3fb779bee | DracoOmega | 2014-02-28 23:12:50 -0330

Don't let druids recall the Lernaean Hydra
It's just a little over the top and was never actually intended.

--------------------------------------------------------------------------------
b7ef58a045 | Pekka Lampila | 2014-03-01 03:12:37 +0200

Add some missing options to the default init.txt

--------------------------------------------------------------------------------
e61cbc8dec | reaver | 2014-03-01 02:24:58 +0200

s/x_chance_in_y(1,/one_chance_in(/
This is a pure name change, with no functional changes. I did not change
the cases where x_chance_in_y was called through Lua, presumming that a
macro would be unusuable in Lua.

--------------------------------------------------------------------------------
608f08d4e8 | Pekka Lampila | 2014-03-01 02:10:18 +0200

Wrap more of message_store code within ifdef USE_TILE_WEB.

--------------------------------------------------------------------------------
077b0fa31e | Pekka Lampila | 2014-03-01 02:10:18 +0200

Fix messages sometimes being duplicated in WebTiles. (#8202)
Lines not yet flushed were being sent to the client and in the case
where more text got appended to that line (msg_condense_short) it was
sent again (sometimes).

--------------------------------------------------------------------------------
cbac8daddf | Pekka Lampila | 2014-03-01 02:10:18 +0200

Add tile_font_*_family settings for WebTiles.

--------------------------------------------------------------------------------
bdbfd3480b | ontoclasm | 2014-02-28 17:10:45 -0600

Mummy restoration ability tile (reaver)

--------------------------------------------------------------------------------
61d0ccb1ca | Neil Moore | 2014-02-28 16:53:54 -0500

Add some missing descriptions.

--------------------------------------------------------------------------------
dc7c8162d3 | Neil Moore | 2014-02-28 16:53:21 -0500

Remove unused descriptions and quotes.
Including translations.  Also fix a broken link in the molten gargoyle
quote.

--------------------------------------------------------------------------------
48a8b45199 | Neil Moore | 2014-02-28 16:18:36 -0500

Update Dithmenos' name in db_lint.

--------------------------------------------------------------------------------
e2f36c2bfc | gammafunk | 2014-02-28 02:11:39 -0600

Rework the Horn of Geryon as an xp-charged evocable.
Previously the horn was a nearly useless item after unbarring the hells and
possibly opening a trove.  This version keeps the summon hell beast theme
but turns it into a more useful xp-charging evocable.  Evoking it when it's
charged summons 1-4 hell beasts, depending on evocations, each summon
having a small chance of being hostile, also depending on evocations.  The
chance of getting a hostile hell beast is 7 in evocations * 10 (always
hostile at evocations 0).  Two hell beasts get created 63% of the time at
10 evocations, three 63% of the time at 15 evocations, and 4 66% of the
time at 20 evocations, with always 4 summoned at higher than 23 evocations.

It could perhaps use an additional effect, but it's an always-generated
item that's relatively accessible in a 3-rune game, so some care has to be
taken there.

--------------------------------------------------------------------------------
df76e187f3 | ontoclasm | 2014-02-27 21:48:13 -0600

Snaplasher vine tiles
This involved fixing up some of the tentacle code, which should make it
easier to add more tentacle types (please don't add more tentacle types).

--------------------------------------------------------------------------------
84f1c15857 | Steve Melenchuk | 2014-02-27 18:04:24 -0700

Handle melee unrand effects after normal hit message (usually).
This is meant to deal with some strange effects such as Spellbinder
banishing foes with no other message or seeing the Scythe of Curses'
curses before any other messages.

--------------------------------------------------------------------------------
6a44e583e1 | Shmuale Mark | 2014-02-27 18:19:22 -0500

Allow the player to choose a weapon when reading an enchant weapon scroll.
There isn't really any reason not to (the only cases where this causes
any significant change are the brands with unwield effects). It does
have the positive effect that the scroll-id game is made slightly
less tedious, since you don't have to remember to switch to a weapon you
want enchanted first.

--------------------------------------------------------------------------------
20de70277e | Steve Melenchuk | 2014-02-27 15:49:19 -0700

Fix up some messaging for scroll of summoning / rod of shadows summons.
Namely, the poof message.

Also properly indicates summons from the scroll.

--------------------------------------------------------------------------------
14e1878102 | Steve Melenchuk | 2014-02-27 15:08:53 -0700

Update skill screen help for divine training changes (ChrisOelmueller).

--------------------------------------------------------------------------------
182113f5ca | Steve Melenchuk | 2014-02-27 12:24:58 -0700

Don't randomly generate potions of blood (ChrisOelmueller).
Weight has been distributed proportionally over the other potions, plus
or minus some rounding to 5s, so that that total weight is still 10000.

--------------------------------------------------------------------------------
87dd2e8cf1 | Sage | 2014-02-27 11:01:45 -0800

New artefact: Firestarter
+7 great mace of flaming. rF++, scrollcons, inner flames monsters on hit.

--------------------------------------------------------------------------------
5b3cdf80c6 | Chris Campbell | 2014-02-27 18:58:34 +0000

Fix spacing

--------------------------------------------------------------------------------
c77c54ec80 | Steve Melenchuk | 2014-02-27 11:55:45 -0700

Remove some duplicate item value checks.
These were arificially inflating the value of very negatively enchanted
items (usually armour).

--------------------------------------------------------------------------------
bc91c1a70f | Steve Melenchuk | 2014-02-27 11:28:02 -0700

Make arena_delay available outside of arena as view_delay.
So, if you're running a bot or you're generally annoyed by
ranged/magical animations, you can set this to an appropriately low
value.

This also condenses a lot of code duplication related to arena_delay; a
new function called scaled_delay is used for functions that should be
impacted by this.

--------------------------------------------------------------------------------
e3a43be560 | gammafunk | 2014-02-27 12:03:12 -0600

Changelog updates.
Less detail about jump-attack, mention the linkify change for WebTiles.

--------------------------------------------------------------------------------
e4bcf1a21e | Steve Melenchuk | 2014-02-27 10:53:32 -0700

Merge wand and gadget shops (and allow them to occasionally have rods).
Get all your evokables in once place, folks!

--------------------------------------------------------------------------------
600e0b529e | Steve Melenchuk | 2014-02-27 10:53:08 -0700

minmay's new list of item values.
See: https://crawl.develz.org/tavern/viewtopic.php?f=8&t=10899

--------------------------------------------------------------------------------
475e0ba8f2 | ontoclasm | 2014-02-27 11:38:43 -0600

Gadget shop tile

--------------------------------------------------------------------------------
3cc7c2c337 | Steve Melenchuk | 2014-02-27 10:06:08 -0700

Update revision in changelog header.
I picked the commit just before wheals' updates.

--------------------------------------------------------------------------------
5f331fae78 | Chris Oelmueller | 2014-02-27 02:39:12 -0500

Fix jelly form movement speed

--------------------------------------------------------------------------------
a857ff6353 | Shmuale Mark | 2014-02-27 02:18:40 -0500

Hopefully final changelog changes (for now).

--------------------------------------------------------------------------------
fc05e3605e | Shmuale Mark | 2014-02-27 01:55:02 -0500

Changelog typo fixes (ontoclasm).

--------------------------------------------------------------------------------
39fc9bc134 | ontoclasm | 2014-02-27 00:41:53 -0600

Recenter a bunch of tiles

--------------------------------------------------------------------------------
d4534bd0bf | Shmuale Mark | 2014-02-27 01:32:24 -0500

Changelog updates.

--------------------------------------------------------------------------------
f72b609125 | Brandon Kime | 2014-02-26 23:59:07 -0500

Disable casting of Repel Missiles while wearing the Amulet of the Air.
This fixes #8181. Casting Rmsl while wearing the amulet does nothing but
waste a turn.

[Committer's note: cleaned up the code slightly.]

--------------------------------------------------------------------------------
2280caa48a | Steve Melenchuk | 2014-02-26 21:48:09 -0700

Blast "blasted by (static electricity)" with static electricity.
You now get terse "blasted by themself (static electricity)" and verbose
"Killed by their own static electricity".

This also adjusts the self-LRD death source to "you" to employ this new
handling.

--------------------------------------------------------------------------------
5516d479cd | Steve Melenchuk | 2014-02-26 21:20:33 -0700

Remove the rod of venom.
It had OTR (available through staff of Olgreb), Poisonous Cloud (sort
of available through the rod of clouds), and Poison Arrow. A multi-spell
rod which duplicates effects of other items and whose sole remaining spell
is itself a normal spell does not need to exist.

--------------------------------------------------------------------------------
359569f0a7 | Steve Melenchuk | 2014-02-26 21:20:28 -0700

Rod of demonology -> Rod of shadows.
Weaves shadow creatures roughly from D:<evocations power> (including
out-of-depth D depths).

--------------------------------------------------------------------------------
2c0f31843e | DracoOmega | 2014-02-26 21:19:59 -0700

Consider a band produced by shadow creatures to be one creature for capping 
purposes
This means that each new cast of shadow creatures can replace only
one previous cast of shadow creatures, instead of pulling a band of
green rats and overwriting a hydra and 2 death yaks with them (only
for the band members to dissolve on their own shortly thereafter
anyway). I think this will make it feels a little more 'consistent'
(or at least as much as one can expect from such a random spell)

The whole band is considered both as a single creature when counting
whether the summoner is at their cap, and will also always expire
together when any of them are removed due to capping.

(cherry picked from commit c691567e7861df058035623416a925fc418e11e1)

--------------------------------------------------------------------------------
070f7a974f | DracoOmega | 2014-02-26 21:19:58 -0700

Fix scroll of summoning being capped
The code refactoring that happened when monster summon caps were
added accidentally broke the fact that shadow creatures produced
by the scroll were not supposed to be capped. However, it looks
like it was probably always true that casting shadow creatures
after reading a scroll could remove much of what the scroll
generated and probably shouldn't be doing that either (I wonder if
this ever actually happened?)

Now the scroll and spell are treated as two difference sources, and
the cap for the latter will not affect the former in any way.

(cherry picked from commit 2dda36adbc4ae3e5666489b06bdda8f92ecae781)

--------------------------------------------------------------------------------
75deb85f6e | Steve Melenchuk | 2014-02-26 21:19:58 -0700

Rod of frigid destruction -> Rod of clouds.
Sprays clouds over a cone-shaped area in front of the caster. At low
power it gives rain, mist, or noxious fumes; mid-tier gives flames,
freezing vapour, or poison gas; high-tier gives one of three new cloud
types - acidic fog, negative energy, or storm clouds.

The targeter is from an experimental implementation of a spell called
"Scattershot", hence the name and some of the functionality it provides
which goes unused here.

--------------------------------------------------------------------------------
677420826d | Steve Melenchuk | 2014-02-26 21:19:58 -0700

Hush a compiler warning.

--------------------------------------------------------------------------------
9c1b980416 | Shmuale Mark | 2014-02-26 23:14:48 -0500

Unbreak some things.

--------------------------------------------------------------------------------
1deaadec35 | Shmuale Mark | 2014-02-26 22:58:05 -0500

Remove rotting devils.
They were identical to necrophages in all important respects, their
trailing miasma cloud not one of those. Their generation chances
are generally given to other 4s, except in Tartarus where they are
replaced by their doppelgangers.

--------------------------------------------------------------------------------
a08158df80 | Sage | 2014-02-26 19:54:42 -0800

Make autopickup toggling work for identified books.
...And remove spellbooks from default autopickup.

--------------------------------------------------------------------------------
ca633f67a6 | ontoclasm | 2014-02-26 20:27:40 -0600

Cigotuvi's Monster tile

--------------------------------------------------------------------------------
ffe6da329e | tenofswords | 2014-02-26 20:35:46 -0500

Wizlab balance/etc edits
 * Tukima's: Nerf blink_other statues health, actually give them
   a cast message against their given targets.
 * Eringya: Regulate faun/satyr placement a bit more,
   move the vine coverings from stone golems to earth elementals.
 * Doroklohe: Another large buff to golem set (now constructs set)
   as part of the upcoming golems trimming. Means doroklohe has a
   consistently ridiculous threat, at least.
 * Iskendrun: Fix deep elf mage spellset to properly emulate
   the base monster's spell set, randomize the door into the tower,
   some header clean-up.
 * Zonguldrok: Cut one ancient champion and make a gravestone-champion
   have a much worse chance that also delays his placement.
 * Cigotuvi: fix an unintended potential drop in loot,
   nerf the buffed renamed tentacled monstrosity due to constriction
   buff from ages back, use iron golem as base for flesh golem
   and edit description to explain any potential catches of the base
 * Wucad Mu: Upgrade several monks (iron troll to grey draconian monk,
   human to monstrous demonspawn), let wucad mu summon them and some
   thematic ghosts so it's much harder to kill him, heavily lower
   his health. Also, extend vault exploration length, and lower
   the maximum delay between effects from 400 aut to 300.
   [somewhat annoyingly, this involves quite a hack regarding
   ds bands, some bugs block vault redefinition of ds/dr, and
   the OCS boss is also still mediocre while disint is binary.
   Going to leave things ready for redefining monks again if the above
   bugs are fixed eventually.]
 * Lots of basically important tiny things, like clothing some
   unarmoured wizards.

--------------------------------------------------------------------------------
321e9e9a5b | Shmuale Mark | 2014-02-26 19:54:27 -0500

Make god branding allow choosing a weapon, like the scroll (G-Flex).
There was a prompt, so it was unlikely that a player would accidentally brand
the wrong weapon, but a demonspawn/undead being unable to rebrand a holy
weapon is just cruel.

--------------------------------------------------------------------------------
7827a0295b | Chris Campbell | 2014-02-27 00:23:55 +0000

Don't let eyeballs use their abilities through transparent walls
All other player and monster smiting abilities are blocked by glass, so
there shouldn't be an exception here just because of the flavour as a
"gaze" attack. Only a few vaults still relied on this, changed them to
use grates instead of glass.

--------------------------------------------------------------------------------
a797b2f5bc | Chris Campbell | 2014-02-26 23:50:52 +0000

Make sparkling/blood fountains purely decorative
No quaffing. Probably Vampires refuse to drink blood from fountains
because they're dirty and full of dungeon rubbish or something (or blood
fountains could just be removed).

--------------------------------------------------------------------------------
1d0399b56d | Shmuale Mark | 2014-02-26 15:09:18 -0500

Mark monster demonspawn as chaotic.

--------------------------------------------------------------------------------
1d9be4717a | Sage | 2014-02-26 06:45:44 -0800

Make autosacrifice work with Fedhas.
Whenever the player autoexplores with Fedhas and autoexplore_sacrifice
is on, all corpses in sight are sacrificed.

--------------------------------------------------------------------------------
b5f8330005 | Chris Campbell | 2014-02-26 13:24:17 +0000

Lajatang of Order description fixes
Don't describe the rMut as explicitly from Zin, since it still applies
to those Zin hates (presumably it's just an innate property of the
weapon). Removed the equip message since something like "You feel shielded
from chaos." seemed potentially misleading.

--------------------------------------------------------------------------------
cb805d74da | Chris Campbell | 2014-02-26 13:15:38 +0000

Don't list untrainable skills as studied when carrying a useless manual (#8215)

--------------------------------------------------------------------------------
4f3eef1df5 | Chris Campbell | 2014-02-26 12:23:32 +0000

Fix a Zig loot comment

--------------------------------------------------------------------------------
037f6f4998 | Chris Campbell | 2014-02-26 11:15:29 +0000

Remove ancient bears

--------------------------------------------------------------------------------
00aeda11b0 | Chris Campbell | 2014-02-26 11:15:28 +0000

Remove AF_POISON_NASTY
Nasty poison was a strange extra type of poison (inflicting 2 levels of
poison on every hit) used only on a few monsters. Replaced with whichever
of medium (weaker) or strong (weaker on average but still poisons through
resistance) seemed vaguely more appropriate in each case.

--------------------------------------------------------------------------------
4dd8b08a89 | Chris Campbell | 2014-02-26 11:15:27 +0000

Remove giant centipedes
Replaced with various combinations of adders, worker ants and giant mites
in the places that used them.

--------------------------------------------------------------------------------
246cfd04e3 | Chris Campbell | 2014-02-26 11:15:26 +0000

Remove the =k inscription
It gave some partial squelch functionality, but didn't squelch things
fully or consistently and was unlikely to actually ever be useful.

--------------------------------------------------------------------------------
31ee8e6f2f | Shmuale Mark | 2014-02-26 01:34:10 -0500

Remove old TYPE: line from art-data.txt. (Grunt)

--------------------------------------------------------------------------------
2ad780872f | wheals | 2014-02-26 01:11:57 -0500

The +7,+7 lajatang of Order {silver, rMut}
The code is mostly based off of Grunt's lajatang of the Silver Moon patch.

--------------------------------------------------------------------------------
cbd6d6ad29 | Steve Melenchuk | 2014-02-25 22:45:16 -0700

Add Siegurt to CREDITS.txt.

--------------------------------------------------------------------------------
00493949ad | Steve Melenchuk | 2014-02-25 22:36:16 -0700

Speed up Glaciate animation (gammafunk).

--------------------------------------------------------------------------------
d606b11bf2 | Steve Melenchuk | 2014-02-25 22:36:11 -0700

roctavian's block of ice tiles (#7760).

--------------------------------------------------------------------------------
a674fa1aae | Steve Melenchuk | 2014-02-25 22:26:09 -0700

Fancy animations for Glaciate.

--------------------------------------------------------------------------------
bfda3da51a | Steve Melenchuk | 2014-02-25 22:26:09 -0700

Glaciate.
Level 9 Conjuration/Ice; generates a cone-shaped great blast of ice
around a specified target. The minimum range of the cone is 3, and the
maximum is LOS at maximum spellpower; damage within a minimum-range cone
is equivalent to Ice Storm, and falls off with the square of the distance
for larger cones.

Leaves freezing clouds over the affected area, like Ice Storm; they
dissipate really quickly over large areas, though.

Targets hit with Glaciate are flash-frozen; they are subject to slow
movement for three turns.

Targets killed with Glaciate have a 3/5 chance of becoming a block of
ice (similar to a pillar of salt).

Also contains a monster-castable version of the spell.

Replaces Ice Storm; most of Ice Storm's code disappears (ZAP_ICE_STORM is
TAG_MAJOR_VERSION == 34'd out). Go fight Lom Lobon to see the monster
version.

Large chunks of this either originate from a patch from Keanan Smith
(Siegurt), seen at https://crawl.develz.org/mantis/view.php?id=7760, or
from the following discussion on Tavern:
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=9854

--------------------------------------------------------------------------------
83eb72f014 | Steve Melenchuk | 2014-02-25 21:50:02 -0700

Dissipate player-created clouds faster outside LOS.
This is the oft-discussed and generally accepted solution to cloud
spells being able to kill things too effectively out of LOS. Let's see
how it works!

--------------------------------------------------------------------------------
5342ddda93 | Steve Melenchuk | 2014-02-25 21:32:57 -0700

Don't limit cloud spells to caster's LOS.
Discussion on ##crawl suggests we prefer to treat out of sight tiles as
empty space and dissipate clouds quickly out of LOS.

This partially reverts commit 8ebc43ee9846018f1828a0c757a8a9094db08dc2.

--------------------------------------------------------------------------------
293f72c3f6 | gammafunk | 2014-02-25 20:14:43 -0600

Allow Snorg to generate in the Orcish Mines.
He's already generating in late-lair, and the mines certainly accommodate
unpleasant trolls (are there any other kind?).

--------------------------------------------------------------------------------
592f38b70a | Steve Melenchuk | 2014-02-25 19:04:43 -0700

Adjust Thunderbolt flash delay properly in arena mode.
As with all other beams.

Perhaps a function to do this should exist somewhere? (If I can figure
out *where*, that's easy enough.)

--------------------------------------------------------------------------------
a46dc13d87 | Shmuale Mark | 2014-02-25 20:53:03 -0500

Fix false claim by Random Bolt that no susceptible monsters were in range.

--------------------------------------------------------------------------------
f861ac59fe | Steve Melenchuk | 2014-02-25 18:40:34 -0700

Make nymph flooding consistent with phial flooding (#8078).
That is, the only features it can flood are floors and (for whatever
reason) shallow water; this prevents it from overwriting stairs.

--------------------------------------------------------------------------------
64187b41f7 | Steve Melenchuk | 2014-02-25 18:40:34 -0700

Place player properly when expected stairs are temp changed.
This should generally only happen with water nymphs and possibly vault
wardens (with a very nimble player).

--------------------------------------------------------------------------------
f4bb8976c5 | gammafunk | 2014-02-25 19:10:31 -0600

Don't let Rupert generate in the Slime Pits.

--------------------------------------------------------------------------------
266d581aa1 | gammafunk | 2014-02-25 19:10:02 -0600

Give Asterion a boost.
He has struggled to be provide much danger to the player since the removal
of his large shield.  He now gets a medium shield to give him some blocking
ability, as well as haste.  In my play-testing, he puts up a good fight
against melee chars that have the more well-developed defenses expected
post-lair/orc.  Ranged attackers can still blow him away, but maintaining
distance and escape are now less trivial.  Looking at the difficulty and
spell sets of other uniques with his depth, he should stack up well now.

--------------------------------------------------------------------------------
b5de9b1713 | Sage | 2014-02-25 17:00:33 -0700

Let wandering mushrooms swap with toadstools.
...And not block your exit when you are swapping through toadstools.
Addresses annoyances while playing Fedhasites, after praying in
corridors and blocking off allied mushrooms, or getting blocked in by
mushrooms in a hole in a wall. Other allies are still blocked by
toadstools.

--------------------------------------------------------------------------------
9348787c1f | Neil Moore | 2014-02-25 18:23:36 -0500

Don't crash on empty menus in webtiles builds (#8212)

--------------------------------------------------------------------------------
b196e28e22 | Neil Moore | 2014-02-25 18:08:22 -0500

Don't make visible orb/boulder collisions silent.
The OOD explosion made noise, but less than the collision itself should
have (radius-1 explosion makes 15 noise, out-of-view OOD collision 40).
Boulder beetle collisions made no noise at all when visible to the player.

--------------------------------------------------------------------------------
d1528c4fcc | Shmuale Mark | 2014-02-25 16:20:36 -0500

Mark potion of lignificataion as dangerous (Volteccer_Jack)

--------------------------------------------------------------------------------
5a7a5f3115 | Steve Melenchuk | 2014-02-25 11:55:14 -0700

Greatly reduce CBL timeout.
With the new spore-esque CBL behaviour, it was common to see players
simply conjure up some ball lightnings if they thought enemies were near
and wait an absurdly long time for the balls to wander over to their
targets without necessarily ever seeing them (especially notable in wide
open spaces).

This cuts the timeout to a third of what it once was - you're now
reasonably likely to see them explode even if you're walking in the
opposite direction from their path. Thus, you're more likely to get
caught up in your own blasts if you're not careful.

Hopefully this will bring the spell back from "overwhelmingly powerful"
to just "quite powerful". Time will tell.

--------------------------------------------------------------------------------
684425b75e | wheals | 2014-02-25 11:08:51 -0500

Remove agate snails.
Agate snails were boring damage-sponges, who had an ability
to be even better at sponging in damage. In vaults and monster
generation they've been replaced by giant slugs, which were
otherwise mostly indistinguishable.

--------------------------------------------------------------------------------
6057bb569a | Chris Campbell | 2014-02-25 15:19:46 +0000

Unduplicate an antimagic check
Since it's needed in a bunch of different places now.

--------------------------------------------------------------------------------
34e5dbe409 | DracoOmega | 2014-02-25 05:22:14 -0330

Remove some (hopefully) useless behavior code
This block of code didn't actually seem to do what it claims it does
(since it doesn't set new foe properly and ends up getting reset before
the monster can even take a single action with the new values), and
it seems likely it would be bad if it actually did (allied monsters
randomly wandering off from the player for no reason?).

Behavioral code is convoluted enough as it is, without more bits of
it being maintained when they don't even do anything. (I hope.)

--------------------------------------------------------------------------------
b859c480c2 | DracoOmega | 2014-02-25 05:22:12 -0330

Improve/fix some ally movement behavior via pathfinding
This should fix them sometimes inexplicably attempting to walk
into walls, and hopefully improve their movement in a number of
other situations where you have a clear view of their target, but
they don't.

--------------------------------------------------------------------------------
a15dc20ff3 | DracoOmega | 2014-02-25 05:22:10 -0330

Make friendly summons prefer paths that never leave the player's sight
Sometimes the shortest path that a monster could see to its target
would follow a route the player themselves couldn't see, which would
cause them to oscillate back and forth at the edge of sight, moving
away and then immediately returning once they left your view. Now
they should elect to take longer paths that they can actually follow.

--------------------------------------------------------------------------------
fd33211bd3 | DracoOmega | 2014-02-25 05:22:09 -0330

Make monster pathfinding less player-centric
Most pathfinding checks assumed that the only thing a monster
would be trying to path towards was the player, even though this
was frequently untrue (either hostile monsters targeting player allies
or friendly monsters trying to reach other monsters). A few bugs
existed as a result of this:

When monsters without ranged attacks would check the reachability of
their foe, they would check the reachability of the player instead,
regardless of what was shooting at them or whether the player was
even involved in the battle. This meant that melee-only monsters
would flee from ranged attacks in the arena (where the player is
understandably never reachable) and also could show up occasionally in
normal play - such as retreating from an oklob fort if the player
is behind water.

I expect there are a few other bugs related to similar assumptions,
but moreover, allowing monsters to use proper pathfinding to non-player
foes likely improves ally intelligence somewhat.

As always with fiddly monster behavioral code, there is a non-trivial
chance that some important side-effect has been overlooked, but initial
testing looks good.

--------------------------------------------------------------------------------
ec04de39fa | Steve Melenchuk | 2014-02-25 00:48:10 -0700

Poke a couple of changelog inaccuracies / awkward wordings / misplacements.

--------------------------------------------------------------------------------
d077371d3c | wheals | 2014-02-25 00:39:26 -0500

Add another mystery meat for beef jerky.

--------------------------------------------------------------------------------
474977d740 | wheals | 2014-02-24 23:50:41 -0500

Remove djinn.
Djinn games can't be started (hopefully including using the rcfile),
and djinn code should be removed on save-compat bump.

Also, schedule a few SE things to be removed.

--------------------------------------------------------------------------------
2228498b1c | Steve Melenchuk | 2014-02-24 21:40:54 -0700

One other thing of note for the changelog.
I missed this commit on the first pass.

--------------------------------------------------------------------------------
babb9225ad | Steve Melenchuk | 2014-02-24 21:36:04 -0700

Changelog through 0.14-a0-2807-g7181bdc.

--------------------------------------------------------------------------------
7181bdcd8b | Shmuale Mark | 2014-02-24 19:38:08 -0500

Rod of destruction description fixes (MarvinPA)

--------------------------------------------------------------------------------
7d2fff2b56 | Chris Campbell | 2014-02-25 00:31:54 +0000

Move racial weapon tiles to UNUSED
So that weapons have the same number of tile variations as they used to.

--------------------------------------------------------------------------------
29e713c2ca | Neil Moore | 2014-02-24 19:29:33 -0500

Show tile flag on sleeping/dormant but unstabbable monsters.
Maybe we should have a separate TILE_FLAG_SLEEP for cases where
TILE_FLAG_STAB isn't appropriate (unstabblabe is_object monsters
like dancing weapons and statues).

--------------------------------------------------------------------------------
f3e3021256 | wheals | 2014-02-24 19:18:49 -0500

Revamp rod of destruction.
The rod of destruction {lightning bolt, fireball, iron shot} is pretty boring,
especially compared to the number of rods with unique spells. The new rod of
of destruction has only one (L5) spell, "Random Bolt," which zaps a random
bolt from the list of venom, draining, fire, cold, quicksilver, lightning,
or crystal.

The rod will prompt for self-harm if it could bounce, even if the bolt that
comes out won't bounce (e.g. fire on rock). This isn't optimal but there's
no really other way to do it, as far as I can tell.

--------------------------------------------------------------------------------
322618eb90 | Steve Melenchuk | 2014-02-24 14:53:26 -0700

Treat lava as uninhabitable for derived undead (#8177).

--------------------------------------------------------------------------------
a1a15fe686 | Steve Melenchuk | 2014-02-24 14:13:53 -0700

Avoid a crash when non-Xom deities place random monster types.
This cropped up in the context of Okawaru wrath and the base draconians
it can generate.

--------------------------------------------------------------------------------
31be7039bd | Chris Campbell | 2014-02-24 19:39:08 +0000

Remove a reference to racial weapons

--------------------------------------------------------------------------------
1d919a95a7 | Chris Campbell | 2014-02-24 19:10:35 +0000

Add back a couple of Slime vaults with slime creatures instead of amoebae

--------------------------------------------------------------------------------
53890a5776 | Chris Campbell | 2014-02-24 18:27:26 +0000

Remove an unused variable

--------------------------------------------------------------------------------
a95247c77f | Chris Campbell | 2014-02-24 18:14:44 +0000

Remove extra weapon tile variations, unbreak tiles
Moved the extra ones to UNUSED for the moment, they could be swapped
back around with the existing variations if anyone tilesy prefers some
of the now-unused ones to the current ones.

--------------------------------------------------------------------------------
daa2e14577 | Shmuale Mark | 2014-02-24 12:19:10 -0500

Give deep dwarf berserkers the axe.
So to speak.

--------------------------------------------------------------------------------
c3c125f5b3 | Chris Campbell | 2014-02-24 16:03:34 +0000

Don't generate racial weapons or launchers
The effects of racial weapons were very minimal and unlikely to be
noticed. Even if they were made significant, they would only apply to a
very small subset of races. The only somewhat notable effect was Beogh's
slight slaying bonus (and even that was very minor), this could be
compensated for in some other way if necessary.

Racial armour has slightly more noticeable effects and currently still
remains, but could probably be removed too (potentially replacing the
racial effects with armour egos instead).

--------------------------------------------------------------------------------
cd953f784c | Chris Campbell | 2014-02-24 15:37:17 +0000

Remove giant amoebae
They were almost identical to slime creatures except without the merging
ability, and barely appeared outside of a few vaults anyway. Split their
weight mostly between brown oozes and slime creatures in vaults and Slime
branch spawns. Removed a couple of Slime-only vaults that placed only
giant amoebae, possibly they would be fine with slime creatures instead.

--------------------------------------------------------------------------------
6270b87a6b | Shmuale Mark | 2014-02-24 08:01:24 -0500

Clean up some removed monster code.

--------------------------------------------------------------------------------
86a1cb916b | Chris Campbell | 2014-02-24 12:57:08 +0000

Shorten most portal vault timers, remove the secondary very short LOS timer
One of the benefits of making all portal vaults announced and timed was
encouraging quick exploration for them, but all the existing timers were
far too long for this ever to be an issue. The secondary LOS-only timer's
effects were very unclear and didn't add much.

Shortened most timers to be slightly longer than Labyrinth timers, with
the shallower portals (Sewer, Ossuary) being a bit longer still.

--------------------------------------------------------------------------------
b4e6c92e4c | Chris Campbell | 2014-02-24 12:40:36 +0000

Don't make elementals regenerate health faster while in clouds of their element
Since it's not likely to have any real effect on anything either way.

--------------------------------------------------------------------------------
f5304e5310 | Chris Campbell | 2014-02-24 12:39:51 +0000

Fix shapeshifter simulacra changing forms (#7319)

--------------------------------------------------------------------------------
83cf5beb32 | Chris Campbell | 2014-02-24 11:50:00 +0000

Remove a branch-specific polymorph check
See #8091 - being inside or outside Zot shouldn't make polymorph behave
differently. If polymorphing into coloured draconians is still undesirable
they could just get M_NO_POLY_TO.

--------------------------------------------------------------------------------
c18c9f84a6 | elliptic | 2014-02-24 03:45:58 -0500

A lua function telling when a monster is netted or webbed.

--------------------------------------------------------------------------------
f96493971e | Sage | 2014-02-24 00:28:14 -0800

Repair save compatibility break from book identification patch.
Whoops.

--------------------------------------------------------------------------------
4695f106a8 | Steve Melenchuk | 2014-02-23 22:40:28 -0700

Nudge grand avatar monster description.
It also mirrors ranged attacks, which wasn't true at the time the
description was originally written.

--------------------------------------------------------------------------------
b9cc7c43a0 | Steve Melenchuk | 2014-02-23 22:38:59 -0700

A less silly (but possibly also temporary) grand avatar tile.
This is at least closer to what I originally envisioned the tile looking
like.

--------------------------------------------------------------------------------
b4497b5a1c | Steve Melenchuk | 2014-02-23 22:02:06 -0700

Bloax's Lear's Hauberk doll tile (#8194).

--------------------------------------------------------------------------------
ecc5650ccb | Steve Melenchuk | 2014-02-23 22:02:06 -0700

Bloax's war gargoyle tile (#8194).

--------------------------------------------------------------------------------
1b2e75fb41 | Steve Melenchuk | 2014-02-23 22:02:06 -0700

roctavian's demonspawn enemy tiles (#8097).

--------------------------------------------------------------------------------
adab47361d | Steve Melenchuk | 2014-02-23 22:02:06 -0700

Reduce spamminess on some types of monster generation.
Namely, only print one message when a monster is generated from another
level or in the abyss; i.e. instead of "A kobold comes up the stairs. A
kobold comes into view." you only get the former.

--------------------------------------------------------------------------------
51315a3225 | wheals | 2014-02-23 22:43:04 -0500

Remove spiny worms.
They had very little purpose, being a slow monster with an
annoyance-branded bite that hardly ever mattered outside, perhaps,
wormcave. There are lots of more interesting monsters in Spider.

--------------------------------------------------------------------------------
b93ce5e72c | Steve Melenchuk | 2014-02-23 19:54:17 -0700

Introduce a mons_is_player_shadow() to help with an ASSERT.
If the shadow kills something, it's possible for it to still be around
when the code is called for this assert; this was seen with terrain
change reversions.

--------------------------------------------------------------------------------
909abdbd69 | Sage | 2014-02-23 18:26:47 -0800

Make spellbooks identify like staves.
Now when you identify, e.g., Book of Frost, all other Books of Frost are
automatically identified. There's no risk or strategy to identifying
books, so leaving them all unidentified until pickup annoys players at
inventory burden/space limit, making them juggle objects to learn that
they already had two other copies of that book. This patch does not
change manuals' identification behavior.

--------------------------------------------------------------------------------
c2328442af | Neil Moore | 2014-02-23 20:02:50 -0500

Don't crash when sanctuary shrinks near the map edge
See for example:
  
http://crawl.lantea.net/crawl/morgue/letownia/crash-letownia-20140224-004021.txt

Introduced by 0.14-a0-622-g0c137b5, which replaced radius_iterator with
C_SQUARE by rectangle_iterator.  Unfortunately, the latter did not clip
the iterator to the map.  Add a flag to do so: false by default because
iterated rectangles are not always in map coordinates.

--------------------------------------------------------------------------------
7f5c0d692c | wheals | 2014-02-23 19:34:46 -0500

Stop enslave soul from sometimes wasting resources.
If the monster wasn't valid or was too close to dead.
It's still possible to waste turns if you fail the check for success,
though.

--------------------------------------------------------------------------------
034c422a56 | Shmuale Mark | 2014-02-23 19:20:34 -0500

Give Natasha a quote.
Beware!

--------------------------------------------------------------------------------
7e33cd4c7c | Shmuale Mark | 2014-02-23 19:20:06 -0500

Let Natasha start with a wand, and have her keep her items through death.
There's no longer any need to FeAr that she can't use wands.

--------------------------------------------------------------------------------
8c5f5c25b3 | Sage | 2014-02-23 15:19:13 -0800

Prevent autopickup on chunks dropped with auto_drop_chunks.

--------------------------------------------------------------------------------
ae64810832 | gammafunk | 2014-02-23 16:54:33 -0600

Allow the player to always be visible to friendly monsters.
This prevents allies from wandering away from an invisible player, and
friendly monsters are already always visible to the player.

--------------------------------------------------------------------------------
c5121fcde0 | elliptic | 2014-02-23 15:51:53 -0500

Let Pikel generate with a wand sometimes.
The only other unique with M_NO_WAND was Gastronok (and Natasha, but that's
likely to change now that player felids can use wands), and there's no reason
to deprive Pikel of a chance at a wand.

--------------------------------------------------------------------------------
bf1da8c09a | Neil Moore | 2014-02-23 15:18:22 -0500

Allow building against the system libpcre.
Building with USE_PCRE=y enables and links against the PCRE regexp
engine without building libpcre as a contrib.

--------------------------------------------------------------------------------
a63d31a98f | Neil Moore | 2014-02-23 14:37:15 -0500

Unmask a secret identity.

--------------------------------------------------------------------------------
b544782520 | Chris Campbell | 2014-02-23 18:48:25 +0000

Minor Arachne description tweak
Also move lost soul desc out of the unique section.

--------------------------------------------------------------------------------
2cd3c76d0f | Nicholas Feinberg | 2014-02-23 18:48:23 +0000

Cleaned up some uniques' descriptions.
Replaced lazy 'ugly/beautiful' descriptors with actual character descriptions,
or chopped them. Also gave Fannar's full-length autobio the axe. Save it for
the book deal, Fannar!

--------------------------------------------------------------------------------
1f28cc2a0a | elliptic | 2014-02-23 13:45:26 -0500

Fix non-deterministic lua again.
Hopefully this fix actually works properly.

--------------------------------------------------------------------------------
e267fb2d9c | Chris Campbell | 2014-02-23 18:00:10 +0000

Remove some more references to Fo poison vulnerability

--------------------------------------------------------------------------------
b1475f1eee | Neil Moore | 2014-02-23 12:56:29 -0500

Revert "Keep rPois ring on autopickup even after finding one for Fo"
Thanks to PleasingFungus for pointing out that this was no longer
necessary.

This reverts commit fca55e514a9e92b73664eee87767e8f8a143e971.

--------------------------------------------------------------------------------
dfcd3c34de | Steve Melenchuk | 2014-02-23 10:55:06 -0700

Move some people around in CREDITS.txt.
Because they're part of the devteam now.

As far as I know from asking them, they all wish to continue to be
credited like this.

--------------------------------------------------------------------------------
8486232052 | Chris Campbell | 2014-02-23 14:17:36 +0000

Reduce and randomise ophan holy flame duration

--------------------------------------------------------------------------------
a4b783efdc | Chris Campbell | 2014-02-23 13:11:22 +0000

Remove grey rats
They were barely distinct from plain rats and green rats, and only really
used in sewers. Replaced them with various arbitrary weightings of rat and
green rat.

--------------------------------------------------------------------------------
fc6d5a5dec | Chris Campbell | 2014-02-23 12:29:21 +0000

Give Formicids 0 HP, 1 XP apt and remove poison vulnerability
The poison vulnerability did sometimes encourage unusual equipment choices
but wasn't very interesting otherwise and was often problematic early on.
The stasis is their central feature, and giving them more standard HP and
XP apts lets them be more focused on that.

--------------------------------------------------------------------------------
0facf784ee | Chris Campbell | 2014-02-23 12:19:20 +0000

Improve some unrand descriptions

--------------------------------------------------------------------------------
5bb4bfe515 | elliptic | 2014-02-23 02:27:13 -0500

Revert "Fix some lua being non-deterministic."
This reverts commit f09ee85bc0c3a7c7fc1d75d314a6a45e143ea8f1.

This "fix" apparently worked by vetoing all the layouts using that lua,
which isn't ideal and created some scary error messages.

--------------------------------------------------------------------------------
c3339f3dff | elliptic | 2014-02-23 01:52:17 -0500

Add you.anchored() lua for dimension anchor status.

--------------------------------------------------------------------------------
f9284b99d6 | elliptic | 2014-02-23 00:38:44 -0500

Give lua the information of which squares are forbidden because of mesm/fear.

--------------------------------------------------------------------------------
f09ee85bc0 | elliptic | 2014-02-22 23:14:13 -0500

Fix some lua being non-deterministic.
Only really relevant for doing things with games with a seeded RNG, and
this lua was only called by omnigrid-based layout builders.

--------------------------------------------------------------------------------
b37b61ccac | Pekka Lampila | 2014-02-23 04:21:35 +0200

Cache prepare_flags results to improve performance.
Really the code should be redesigned to not have these performance
issues in the first place, but this quick fix should improve WebTiles
rendering times considerably.

--------------------------------------------------------------------------------
ad24b6b088 | Steve Melenchuk | 2014-02-22 19:00:58 -0700

Rework handle_god_time wrath handling (|amethyst, elliptic).
This avoids some strange edge cases related to inactive god wrath and/or
having more than ten gods angry at you, but should otherwise be
functionally identical to the old behaviour.

--------------------------------------------------------------------------------
213086979e | Pekka Lampila | 2014-02-22 23:08:16 +0200

Make client.html pass W3C HTML validator.

--------------------------------------------------------------------------------
8fe52eb506 | Pekka Lampila | 2014-02-22 23:08:14 +0200

Set text box caret to the end if there is a prefilled value.

--------------------------------------------------------------------------------
a4e4f02dfb | Pekka Lampila | 2014-02-22 21:09:19 +0200

Fix WebTiles hang with Stack Five menu. (#6594)
Also made the card descriptions show up in a menu box when using ?
during triple draw.

--------------------------------------------------------------------------------
99a27f6e4b | Pekka Lampila | 2014-02-22 20:45:37 +0200

Stop capturing keys in WebTiles when showing the close message.

--------------------------------------------------------------------------------
55854e8e9c | Chris Campbell | 2014-02-22 12:29:42 +0000

Don't allow permaflying races to teleport to the outside of wizlab_cloud

--------------------------------------------------------------------------------
957e16101b | Brandon Kime | 2014-02-22 10:33:19 +0000

Added M_WARM_BLOOD flag to ravens

--------------------------------------------------------------------------------
e969822de7 | Steve Melenchuk | 2014-02-22 00:55:45 -0700

Only clear seed when creating a new game_options.
This should stop ghosts from spawning in seeded games.

--------------------------------------------------------------------------------
43b4f9c0ee | Steve Melenchuk | 2014-02-21 20:50:21 -0700

Don't display "Your shadow attacks!".
The type of attack is shown immediately afterwards in those cases, so
it's pure spamminess.

"Your shadow mimicks your spell!" is still present because the
equivalent line isn't shown from the spell code on its own.

--------------------------------------------------------------------------------
309a2e6cd2 | Steve Melenchuk | 2014-02-21 20:50:03 -0700

Give player shadow M_NO_EXP_GAIN.
... so that it doesn't appear in the monster pane.

--------------------------------------------------------------------------------
e597eb97f2 | Steve Melenchuk | 2014-02-21 17:58:31 -0700

Uniq-ify a couple of hell entries (dck, 78291).
It was common for more than one of these to turn up per game (observed
in games by those two).

--------------------------------------------------------------------------------
66479bb170 | Eino Keskitalo | 2014-02-22 00:42:11 +0200

Use the new ice block tiles in ice cave entries.

--------------------------------------------------------------------------------
b4d244a369 | Eino Keskitalo | 2014-02-22 00:41:19 +0200

Adjust ice cave depths to the dungeon structure changes.
Easy caves now appear in D, Lair and Orc. Hard caves appear in Elf and Lair 
roulette branches.

--------------------------------------------------------------------------------
24281500cb | Steve Melenchuk | 2014-02-21 10:40:48 -0700

Restore old blood / porridge item appearances (|amethyst).
Mainly so that blood is always red; it looks weird otherwise.

They're still ID'd automatically, so this is entirely cosmetic.

This partially reverts commit 1111ebd27a4060aa07678e1af2f67a414fff2594.

Conflicts:
	crawl-ref/source/ng-setup.cc

--------------------------------------------------------------------------------
763b3b7df1 | Steve Melenchuk | 2014-02-21 10:37:46 -0700

Let felid enemies see invisible (#8185).

--------------------------------------------------------------------------------
411bbedfe5 | elliptic | 2014-02-21 02:05:36 -0500

Remove -10% pre-AC damage for speed launchers; remove instance of blatant 
monster cheating.
This is for consistency with melee speed brand; they are now both just 2/3
delay and nothing else. Speed launchers only exist as artefacts and were
already only barely better than vorpal (if at all), so this buff seems fine.

Monsters got 1/2 delay instead of 2/3 delay with speed launchers; good thing
they were incredibly unlikely to use one unless given one by a vault...

--------------------------------------------------------------------------------
2c571d7ee1 | elliptic | 2014-02-21 01:48:12 -0500

Speed brand changes (Nethris).
Previously speed brand halved the delay (rounding up) and decreased pre-AC
damage by 10%. Now it just decreases the delay by 1/3, with random rounding.

This is perhaps a bit less interesting, but the 10% decrease was too small
to really affect player decisions anyway and the new system is simpler
and more consistent, both between different weapons (old speed brand was
best on min delay 6 weapons like demon blade/trident because 6 is even)
and with ranged speed brand (which already decreased delay by 1/3).

Powerwise, at min delay this is quite a small change to short blades or
quarterstaff/lajatang of speed. It is a nerf to min delay 6 weapons of speed
(which are randart-only, hence quite rare) and weapons that are not yet at
min delay.

--------------------------------------------------------------------------------
b10a4c8224 | elliptic | 2014-02-20 22:27:18 -0500

Change the walls in sword_in_stone to transparent rock.
Requiring the player to learn LRD just for this purpose (or get cTele and
try to teleport in 9 times on average without giving up) is fiddly and not
really that interesting. The sword does still have monsters around it that
are usually fairly dangerous, so just requiring digging seems better.

(The sword still sits on a teletrap, too, which I'm not that keen on but
is more transparent to the player (and stasis, cTele, -Tele, apportation
all work).

--------------------------------------------------------------------------------
e0f3951b29 | elliptic | 2014-02-20 22:19:07 -0500

Remove a vault.
This vault manages to place a lot of glass (both rock and stone...) without
revealing the one dangerous monster in it, instead just showing some of the
loot. This makes the vault quite spoily, which is already bad... Moreover,
if you dig in and fight the surprise 8, then you get to go memorize LRD to
get the half of the loot that is behind stone after that. You might even
waste a digging charge on the transparent stone because you think it is
rock like the transparent rock that you just dug...

--------------------------------------------------------------------------------
960dfbfcc3 | Pekka Lampila | 2014-02-20 23:07:16 +0200

Fix a crash in is_unchivalric_attack. (gammafunk)

--------------------------------------------------------------------------------
7f0ab476c6 | Chris Campbell | 2014-02-20 15:58:26 +0000

Update Summon Lightning Spire desc

--------------------------------------------------------------------------------
6e8a634f69 | Chris Campbell | 2014-02-20 06:38:59 +0000

Swap spell levels of Battlesphere and Fulminant Prism
Battlesphere 4->5 (it is still incredibly MP-efficient for the damage it
can deal), Fulminant Prism 5->4 (it deals Fireball-ish damage but requires
some setup to work).

--------------------------------------------------------------------------------
a253274b23 | Chris Campbell | 2014-02-20 06:32:57 +0000

More character selection menu colour adjustments
Make unrecommended combos lightgrey-on-blue instead of lightgrey-on-yellow
(which was difficult to read), change the highlighting of the options
at the bottom of the screen (random species/background etc) for legibility
too. Also add full stops to a bunch of help text.

--------------------------------------------------------------------------------
85431affb7 | Chris Campbell | 2014-02-20 04:07:55 +0000

Count lightning spires as objects
No Ely piety loss for their death.

--------------------------------------------------------------------------------
72a29657ee | Pekka Lampila | 2014-02-20 05:54:03 +0200

Add tile_deep_water_col and tile_portal_col.

--------------------------------------------------------------------------------
dec474a8ca | Pekka Lampila | 2014-02-20 05:19:10 +0200

Change default minimap colours. (ontoclasm)
Old defaults were:

tile_player_col       = white
tile_monster_col      = red
tile_neutral_col      = red
tile_peaceful_col     = lightred
tile_friendly_col     = lightred
tile_plant_col        = darkgreen
tile_item_col         = green
tile_unseen_col       = black
tile_floor_col        = lightgrey
tile_mapped_floor_col = lightblue
tile_wall_col         = darkgrey
tile_mapped_wall_col  = blue
tile_door_col         = brown
tile_downstairs_col   = magenta
tile_upstairs_col     = blue
tile_branchstairs_col = magenta
tile_feature_col      = cyan
tile_trap_col         = yellow
tile_water_col        = grey
tile_lava_col         = grey
tile_excluded_col     = darkcyan
tile_excl_centre_col  = darkblue
tile_window_col       = yellow

--------------------------------------------------------------------------------
6d62fe8043 | Pekka Lampila | 2014-02-20 05:19:10 +0200

Improve window.log_messages debugging option.
Old style is still available with: window.log_messages = 2

--------------------------------------------------------------------------------
d04b700b25 | Neil Moore | 2014-02-19 14:10:29 -0500

Formatting fixes.

--------------------------------------------------------------------------------
1837d8f9d7 | Neil Moore | 2014-02-19 14:10:29 -0500

Avoid a defunct battlesphere crash.
If it received a behaviour event after the death of its owner but
before being removed.

--------------------------------------------------------------------------------
8ffe610920 | gammafunk | 2014-02-19 14:10:28 -0500

Convert alignment of a monster avatar when its summoner's alignment changes.
When the alignment of the summoner of a spectral weapon, battlesphere,
or grand avatar changes, previously these avatars were not changing
alignment along with the summoner.  This adds monster::align_avatars()
which is called appropriately in mons_att_changed() and in
monster::add_ench() for the case of ENCH_CHARM.  When summoners go to
any form of ATT_*NEUTRAL, we remove all their avatars.  For grand
avatars, I've added an end_grand_avatar() function to help with this.
Monsters with ENCH_GRAND_AVATAR that change attitude but who are not the
summoner also lose that enchantment.  This also adds
monster::remove_avatars() which is called by ::align_avatars() when
necessary as well as when a monster's soul is enslaved.

There is also a bugfix in setting of ENCH_GRAND_AVATAR upon casting
where it would skip setting enchantment on the summoner if summoner was
charmed.  Always set the enchant on the owner, and never set the enchant
on any kind of avatar to avoid having an avatar of an avatar.

--------------------------------------------------------------------------------
505844037e | Steve Melenchuk | 2014-02-19 11:59:49 -0700

Don't double up on god wrath.
If you hit a one in ten chance for one angry god after triggering a
wrath instance, you could get another wrath on the same turn.

This fixes that behaviour.

--------------------------------------------------------------------------------
dc5d926b7f | Neil Moore | 2014-02-18 17:27:40 -0500

Charge correctly for alchemist MP.

--------------------------------------------------------------------------------
8afe6cab79 | gammafunk | 2014-02-19 00:08:38 +0200

Fix to attack penance warnings.
Currently if you melee an "object" (according to mons_is_object()) such
as a conjured ball lightning, you get a penance warning if worshiping
TSO. This is a "bad attack" and should give a prompt, but will not cause
penance. This commit fixes this by making the necessary call to
god_hates_attacking_friend() to determine if penance would occur. This
also fixes the case when you attack allies/followers under beogh, which
currently doesn't give a penance warning (although it does give a bad
attack warning).

This commit also cleans up is_unchivalric_attack() so that attacking an
object is not reported as unchivalric and attacking a friend that your
god doesn't hate for you attack isn't reported as UCAT_ALLY. These seem
to both be technicalities at this point, but they should avoid some
confusion if conducts change or new gods appear.

--------------------------------------------------------------------------------
4592d88de2 | DracoOmega | 2014-02-18 14:53:49 -0330

Properly expire siren song when off-level

--------------------------------------------------------------------------------
ad7cece1c5 | DracoOmega | 2014-02-18 14:37:19 -0330

Prompt when equipping a known -TELE item while currently teleporting
As opposed to only giving this warning for actual amulets of stasis.

--------------------------------------------------------------------------------
97ceb79f85 | DracoOmega | 2014-02-18 14:01:40 -0330

Don't open malign gateways on the other side of glass

--------------------------------------------------------------------------------
5f19977f4d | Chris Campbell | 2014-02-18 12:48:46 +0000

Don't place mimics in Zig loot

--------------------------------------------------------------------------------
4c230c0ff9 | Chris Campbell | 2014-02-18 12:47:13 +0000

Don't trigger Elyvilon weakness wrath on every apis kill
But use a slightly higher chance to trigger than TSO's cleansing flame
wrath.

--------------------------------------------------------------------------------
192f33b41c | Chris Campbell | 2014-02-18 12:45:35 +0000

Don't place phoenixes on holy Zig floors
They're not threatening in Ziggurats, but are incredibly annoying to clean
up.

--------------------------------------------------------------------------------
f1cf023c62 | Chris Campbell | 2014-02-18 10:59:50 +0000

Remove Death's Door from monster demonspawn spell sets
It's not a particularly appropriate spell for a non-unique/relatively
common Pan spawn.

--------------------------------------------------------------------------------
4052a83a7b | Chris Campbell | 2014-02-18 07:25:28 +0000

Adjust highlighting on species selection menu
Don't highlight the entire column, for consistency with other menus.

--------------------------------------------------------------------------------
da3d5e17ad | Chris Campbell | 2014-02-18 05:16:40 +0000

Revert "Add Summon Forest to the book of Callings (for testing purposes)"
This reverts commit 48ad3987cb9c79ccd8913825c84764c1ab90cf7f.

--------------------------------------------------------------------------------
eee48f0d93 | Chris Campbell | 2014-02-18 05:15:31 +0000

Merge branch 'summon_spells'

--------------------------------------------------------------------------------
a726785d79 | Chris Campbell | 2014-02-18 04:43:52 +0000

Remove the rod of warding
It's one of the various uninteresting multi-spell rods, with Deflect
Missiles as the only notable spell most of the time, and DMsl doesn't work
as a rod spell with its recent changes (and probably shouldn't be a rod
spell even if it did work properly).

--------------------------------------------------------------------------------
997c442b5a | Chris Campbell | 2014-02-18 03:26:08 +0000

Adjust some Zig entry vaults
Rename the "shallow" entries since they're not shallow any more, remove
one entry that had transparent stone rather than rock.

--------------------------------------------------------------------------------
d0153d94fb | wheals | 2014-02-18 03:26:07 +0000

Remove jellyfish.
They're nice decoration, sure, but their main effect is one
of two things - poison or drain strength. Both of those are rather
annoying effects without much real effect.

--------------------------------------------------------------------------------
cdba4ae194 | Chris Campbell | 2014-02-18 03:26:05 +0000

Remove a leftover reference to lava fish

--------------------------------------------------------------------------------
b71fec48c3 | wheals | 2014-02-18 03:26:04 +0000

Remove lemures.
They were basically "that thing that Eustachio summons," except
for the rare time that Xom gave you one or a demonspawn with
demonic guardian 1 got one.

--------------------------------------------------------------------------------
deceb63ae7 | Pekka Lampila | 2014-02-18 05:14:28 +0200

Fix reading -print-webtiles-options output.
Unread output wasn't checked for after returncode was received.

--------------------------------------------------------------------------------
4b556a2e61 | Pekka Lampila | 2014-02-18 05:14:28 +0200

Don't hide_dialog when calling set_ui_state for the first time.
Fixes already open menus not being shown when loading a game. For
example if you closed the game after drinking a potion of experience.

--------------------------------------------------------------------------------
fd03bf8644 | Pekka Lampila | 2014-02-18 05:14:11 +0200

Fix player being sent WebTiles options twice.

--------------------------------------------------------------------------------
d9d4033417 | Pekka Lampila | 2014-02-18 04:19:24 +0200

Don't try to flush messages if the connection is closed.

--------------------------------------------------------------------------------
0655ea8bfd | Chris Campbell | 2014-02-18 00:53:26 +0000

Update card lists in deck descriptions (#8169)

--------------------------------------------------------------------------------
576316504f | Chris Campbell | 2014-02-17 06:29:35 +0000

Add some missing TAG_MAJOR_VERSION checks for removed durations

--------------------------------------------------------------------------------
a90a651d8c | Chris Campbell | 2014-02-17 05:37:00 +0000

Remove the Bargain card
Its effect would probably work better as an attribute (lasting until you buy
something) than a duration, but even then it just acts like a bit of extra
gold, really.

--------------------------------------------------------------------------------
4b3ff9e344 | Chris Campbell | 2014-02-17 05:36:59 +0000

Make Trowel card rarer, remove its plain/ornate effects
Since the legendary effect is the only notable one.

--------------------------------------------------------------------------------
cb94c3d9cb | Steve Melenchuk | 2014-02-16 22:29:02 -0700

Don't _pick_random_dngn_tile on north-facing halo tiles (#8151).

--------------------------------------------------------------------------------
4a9e99f707 | Steve Melenchuk | 2014-02-16 22:09:09 -0700

Grass/dirt tile tweaks (roctavian, #8159).

--------------------------------------------------------------------------------
1d24216582 | Steve Melenchuk | 2014-02-16 22:01:46 -0700

Ice cave floor tiles (roctavian, #8159).

--------------------------------------------------------------------------------
0b9f4d41d0 | ontoclasm | 2014-02-16 22:48:20 -0600

Stone wall tiles (roctavian, 8159)

--------------------------------------------------------------------------------
264886fe65 | ontoclasm | 2014-02-16 22:48:19 -0600

Floor and stone tiles for Vaults (roctavian, 8159)

--------------------------------------------------------------------------------
2dd2319b69 | Pekka Lampila | 2014-02-17 06:03:35 +0200

Fix level map ^F and ^U not updating tiles properly.

--------------------------------------------------------------------------------
f90c3048e6 | Pekka Lampila | 2014-02-17 05:36:07 +0200

Add tile_mapped_floor_col and tile_branchstairs_col options.
Documentation claimed that branch stairs were coloured with upstairs and
downstairs colours, but they were coloured like other non-stair
features. Now branch exits are coloured with tile_upstairs_col and
entrances with tile_branchstairs_col which has the same default as
tile_downstairs_col.

--------------------------------------------------------------------------------
7643984871 | Pekka Lampila | 2014-02-17 04:44:29 +0200

Identify rCorr amulet when splashed with acid. (#8165)

--------------------------------------------------------------------------------
6d263bff17 | Pekka Lampila | 2014-02-17 04:44:29 +0200

Allow minimap colour options to be set with hex codes and used in WebTiles.
This changes the default WebTiles minimap colours to match local tiles.
To get the previous default values use:

tile_floor_col = #a9a9a9
tile_door_col = #a52a2a
tile_item_col = #008000
tile_friendly_col = #ee9090
tile_peaceful_col = #ee9090
tile_plant_col = #006400
tile_upstairs_col = #0000ff
tile_downstairs_col = #ff00ff
tile_excl_centre_col = #00008b
tile_excluded_col = #008b8b

--------------------------------------------------------------------------------
dfe176c6f7 | Steve Melenchuk | 2014-02-16 19:29:17 -0700

Update trainable skills immediately on god worship/abandonment (#8142).
This handles a case of abandoning one god directly for another, in which
case both start_train and stop_train get populated before
update_can_train() is called, which checks start_train before
stop_train - so skills shared between the two gods (usually Invocations)
would get clobbered.

This also moves the skill check for abandonment to after other messaging
so that you get the "You stop training Invocations" (or whatever) after
the rest of excommunication messaging.

--------------------------------------------------------------------------------
8adf81c123 | Steve Melenchuk | 2014-02-16 19:12:08 -0700

Tinker with Kiku's active wrath.
If there aren't any corpses in LOS, Kiku will always send corpses to
reanimate (thus active wrath always does *something*); the chance of
getting tormented or getting a miscast effect goes up with XL.

--------------------------------------------------------------------------------
b3a8c6b5fa | Steve Melenchuk | 2014-02-16 19:12:07 -0700

Tinker with Yred wrath.
The servants and zombies generated by the summoning part now scale with
XL, and the severity of the miscast part has been toned down (it's
really unlikely to get a reaper or soul eater thrown at you at low XLs
now). The chance of either happening is a flat 50% across XLs (though
this might need to be revised).

Some points in Kiku wrath using the same miscast severity as Yred's
miscasts did now use the new miscast severity too; properly fixing up
Kiku's wrath is for another time, though.

--------------------------------------------------------------------------------
940ad1f621 | Chris Campbell | 2014-02-17 00:18:05 +0000

Don't let Jiyva create hostile slimes while under penance
Since killing them will just result in more penance.

--------------------------------------------------------------------------------
fc65818e66 | Chris Campbell | 2014-02-17 00:18:03 +0000

Remove yellow plants from an entry vault

--------------------------------------------------------------------------------
70fb87eca4 | Chris Campbell | 2014-02-17 00:18:02 +0000

Don't allow both repel and deflect missiles to be active at once
DMsl replaces RMsl, RMsl can't be cast if DMsl is active.

--------------------------------------------------------------------------------
f53cafb8e0 | Chris Campbell | 2014-02-17 00:18:01 +0000

Make Zot trap malign gateways generate near the triggerer, not the player
Fixes neutral/friendly monsters elsewhere on the level making malign
gateways appear next to the player (especially under Jiyva, see #8161).

--------------------------------------------------------------------------------
9a36eb589b | Chris Campbell | 2014-02-17 00:18:01 +0000

Make Jiyva less likely to remove slime mutations

--------------------------------------------------------------------------------
477a5e85ac | Chris Campbell | 2014-02-17 00:18:00 +0000

Don't make the jelly growth mutation fall off when taking damage
It's sort of cute but makes the mutation likely to be lost too quickly.

--------------------------------------------------------------------------------
eaae54fd8b | elliptic | 2014-02-16 17:49:56 -0500

Simplify wizardry bonuses.
Staff and ring of wizardry are now equivalent, rather than staff being
slightly better. Also, the formulas are simplified greatly, though they
still end up giving nearly exactly the same result as the old code (except
for staff = ring now).

--------------------------------------------------------------------------------
0b0226187f | elliptic | 2014-02-16 17:12:47 -0500

Increase troll leather armour regen bonus: 30 -> 40.

--------------------------------------------------------------------------------
5dfa5d83bc | elliptic | 2014-02-16 16:53:50 -0500

Decrease encumbrance of the heaviest armours slightly.
This is partly because the heaviest armours already were viewed as a bit
too encumbering, and partly because they were hurt most by the recent bugfix
making body armours actually give melee accuracy penalties.

GDA 27 -> 25, CPA 24 -> 23, plate armour 19 -> 18.

--------------------------------------------------------------------------------
cddf0b1eed | ontoclasm | 2014-02-16 15:04:29 -0600

Lightblue instead of blue for newgame titles

--------------------------------------------------------------------------------
e5381f9991 | elliptic | 2014-02-16 16:04:03 -0500

Fix armour and shield melee accuracy penalties not being applied.
Looks like this was broken by the melee code rewrite in 2011...

--------------------------------------------------------------------------------
5c2d2b7042 | ontoclasm | 2014-02-16 14:51:43 -0600

Change the newgame menu titles to blue

--------------------------------------------------------------------------------
23f6408bb2 | ontoclasm | 2014-02-16 14:51:42 -0600

Singing Sword & Captain's Cutlass tiles (Bloax)

--------------------------------------------------------------------------------
a4a132424a | elliptic | 2014-02-16 15:28:52 -0500

Schedule ATTR_BARBS_MSG for removal at the next save compat bump.

--------------------------------------------------------------------------------
39e539b736 | elliptic | 2014-02-16 15:13:11 -0500

Always display a message when moving while manticore-spiked.
Displaying the message only 1/6 of the time but doing damage every time was
misleading and confusing to players who don't know the exact mechanics
of DUR_BARBS. The message spam is no worse than if you are poisoned and
taking damage every turn while fleeing, so I see no problem with telling
people each time they take the 2d4-2d6 damage that barbs do.

--------------------------------------------------------------------------------
052a78b409 | ontoclasm | 2014-02-16 11:19:00 -0600

Change newgame menu colors
Previously restricted and banned classes were both darkgray, which was
misleading.

--------------------------------------------------------------------------------
66356aac16 | Steve Melenchuk | 2014-02-16 09:16:26 -0700

Extremely minor whitespace fix.
It bothered me.

--------------------------------------------------------------------------------
6f85e54cdc | Steve Melenchuk | 2014-02-16 09:07:06 -0700

Don't credit player for kills by divine wrath conjurations.

--------------------------------------------------------------------------------
45dd198616 | Steve Melenchuk | 2014-02-16 09:00:33 -0700

Scale Trog's berserker wrath monsters better with XL.
If you abandon Trog *really* early, you might still get overwhelmed with
berserk bears, but other than that you can probably expect to only see
berserkers of various sorts shortly before you'd expect to encounter
them in their normal non-berserk versions.

This should make Trog wrath considerably more survivable early on.

--------------------------------------------------------------------------------
0e8058b2ef | Steve Melenchuk | 2014-02-16 09:00:33 -0700

Scale Okawaru's wrath forces with XL; expand list of warriors.
The list might need to be adjusted further - there are some questionable
things lurking there right now, and it might not be scaled exceptionally
accurately in terms of difficulty versus XL. Time will tell, and/or
someone with more design sense than I do.

--------------------------------------------------------------------------------
e1696d99ac | Steve Melenchuk | 2014-02-16 09:00:29 -0700

Makhleb wrath rework.
50% of the time you get Destruction hurled at you - Minor Destruction
early on, Major Destruction in the mid-game, and Legendary Destruction
in the late game. This borrows code from the implementation of Vehumet
hurling conjurations at you to do this.

The other 50% of the time you get servants - the size of the horde
scales with XL and can include greater servants at higher XLs.

This should be more interesting and threatening than it was before.

--------------------------------------------------------------------------------
98df243970 | Steve Melenchuk | 2014-02-16 08:46:45 -0700

Vehumet wrath: employ actual conjurations, not just miscasts.
This hijacks the Dith shadow mimic code to fling monster conjurations at
the player, scaling with XL.

--------------------------------------------------------------------------------
4957692b8a | Neil Moore | 2014-02-16 10:39:52 -0500

Fix a paste-o in the monster speech documentation.

--------------------------------------------------------------------------------
cc8e7640e7 | Steve Melenchuk | 2014-02-15 21:47:03 -0700

Fix saves with non-zero ATTR_GOD_WRATH_XP without penance.
This would have been caused by the bug fixed in 5c5a558.

--------------------------------------------------------------------------------
e52b792612 | Steve Melenchuk | 2014-02-15 21:08:18 -0700

Give grand avatars the same (effective) HD as their caster.
This was the original intent at time of writing, but got missed somehow.

--------------------------------------------------------------------------------
a84e0404ef | Steve Melenchuk | 2014-02-15 21:08:18 -0700

Rename crystal golem tile.
This was missed in the previous commit (probably lost in transmission
between me and the committer).

--------------------------------------------------------------------------------
61fa7b4fe2 | tenofswords | 2014-02-15 22:22:30 -0500

Crystal golem -> Crystal guardian (Grunt, tenofswords).
Implementer's notes (Grunt):

The spell Crystal Bolt is player-castable for possible future use with the
"rod of bolts" (reworked rod of destruction), and crystal golems have been
replaced 1:1 in vaults that used them.

---

Designer's notes (tenofswords):

Not every golem can be cut without scarring many a vault, and golems are
very strongly themed to the point of reluctance with complete cuts.
Still, they're golems, slow melee-only monsters with extreme defenses and
excellent melee that thus encourage annoying tactics due to being unable
to kill patient players but also being very difficult to kill. We certainly
don't need nearly versions of this sort of monster as we currently do
(goliath beetle, slugs and snails, golems, iron trolls, iron imp/devil,
earth elemental); the only time this really works is in Dis, where
there are hell effects and very nasty company to make sure that there's
no time to use the slow strategies of avoiding being hurt much by golems.

This serves as another change to a slow, melee-only monster for preserving
some themes and flavours without outright cutting into the monsters available.
These new crystal guardians once more have good defense and even better
resists in exchange for bad health and zero EV, appear in numbers in most
vaults, are boosted (to normal) speed, and get a ranged option; in this
case, a bolt of fire or cold that happens to bounce off all walls, rather
than just crystal, easily resisted by the caster in ricchoets. This is
modelled off the decent-enough edits on minmay_guarded_unrand_dyrovepreva,
and the name originates from there, too.

Between crystal guardians and war gargoyles as less terrible material,
I've got plans to edit out stone golems, clay golems, and iron golems
out from basically everywhere but Dis:7 vaults, which should pave the
way for essentially removing these three and dealing a decent blow to
the multitudes of slow, melee-only, very difficult to destroy encounters
in sheer differences of monsters, though mostly by changing vault-specific
mediocre monsters rather than significantly impacting overall monster sets.
For now, the patch has a near 1:1 replacement use with crystal golems, aside
from most importantly adjusting (and upping) their use as rare D:12-16 OODs.

Needs a new tile.

--------------------------------------------------------------------------------
5c5a55856d | Steve Melenchuk | 2014-02-15 19:13:24 -0700

Don't count XP towards god wrath in the absence of penance.

--------------------------------------------------------------------------------
59b0af933f | Steve Melenchuk | 2014-02-15 18:50:14 -0700

Shadow Form skill-drains on taking damage.
Basically, think of it splitting damage between HP and skills.

It may still be too powerful.

--------------------------------------------------------------------------------
91d52adc3b | Chris Campbell | 2014-02-15 21:33:12 +0000

Make some trove fees species-specific
Don't ask Felids for weapons or armour, and don't ask Mummies for potions.
Possibly this should be extended further for other useless items
(speed/hasting/blinking/teleportation for Fo, curing/heal wounds for VS?).

--------------------------------------------------------------------------------
88102eba8a | Chris Campbell | 2014-02-15 21:33:10 +0000

Allow undead to use Shadow Form
It's pretty distinct from other transformations by virtue of being a god
ability in particular, and thematically various undead turning into masses
of shadows seems pretty reasonable.

--------------------------------------------------------------------------------
ff1aa09a2e | Chris Campbell | 2014-02-15 21:33:09 +0000

Allow Fe to get wand troves

--------------------------------------------------------------------------------
55eae48bbe | Chris Campbell | 2014-02-15 21:33:07 +0000

Revert "Make Large Rocks penetrating"
The stated aim of this was to make monsters that used large rocks stronger,
but it has very little effect there for the most part, while having a
relatively large effect on players that can use large rocks.

This reverts commit 02ff187.

--------------------------------------------------------------------------------
e3cb86ad4c | tenofswords | 2014-02-15 15:04:02 -0500

Give Depths:1 (a) minivault(s) always, not a vault always
A small step in reducing the sheer size of what by vault and monster
set is the largest branch, but still one that fits the spirit of the
branch without losing much to the identity of always using vaults,
one that allows a small bit of scaling and connects the transition
of D:16's Depths entry to Depths:1's minivault and then Depths:2-6's
larger vaults, and so on and so forth.

The vaults allowed for Depths after the D-Depths split combined with
a change in ambient regular-in-branch difficulty makes this change
somewhat awkward in itself: some attention to each vault is warranted
for later on.

Note that this is merely a change to the dummy vault placement work;
the 1/6 chance for placing a standard vault is still around for Depths:1,
though this obviously is a noticeable difference from the current 1/1.
Likewise, this is only working around the 1/2 chance for a minivault
per floor.

--------------------------------------------------------------------------------
074a5ccda0 | tenofswords | 2014-02-15 11:05:17 -0500

Block liquid monsters in bazaars
The changes in code in handling liquid monsters gave default
liquid monsters to lots of places, so a bunch of fish and worms
started popping up in decorative water for a non-threat portal.
This prevents said liquid inhabitants from appearing in bazaars.

--------------------------------------------------------------------------------
d2f732a1e1 | elliptic | 2014-02-14 22:26:37 -0500

Clarify puff of smoke code.

--------------------------------------------------------------------------------
351238acdf | elliptic | 2014-02-14 22:26:36 -0500

Fix summon placement.
It was calling find_newmons_square twice, changing the monster's position
each time.

--------------------------------------------------------------------------------
9bfa2c6131 | Chris Campbell | 2014-02-15 00:11:46 +0000

Adjust summon caps on demonic horde and summon butterflies
Increase the cap on demonic horde, decrease the maximum summoned per cast
for summon butterflies (to stop a single cast from going over the cap
in both cases).

--------------------------------------------------------------------------------
7bb2d9cc78 | Chris Campbell | 2014-02-15 00:08:51 +0000

Add effects of spellpower to some summon spell descriptions

--------------------------------------------------------------------------------
3acc414d9c | elliptic | 2014-02-14 18:14:26 -0500

New species/background recommendations.
This provides a list of 6-8 (9 for DE) recommended backgrounds for each
species, and also a list of 6-7 species for each background. The lists were
developed in a group effort on IRC involving many players.

We tried to balance two main goals when coming up with this list: picking
strong combos and providing some variety of choices.

--------------------------------------------------------------------------------
ca34044fbe | Neil Moore | 2014-02-14 17:50:26 -0500

Mark ?recharging as non-useless for felids (#8155).

--------------------------------------------------------------------------------
78bc2c4719 | Steve Melenchuk | 2014-02-14 15:08:04 -0700

Pick job first for random characters half the time (elliptic).
Since recommendations are no longer bidirectional.

--------------------------------------------------------------------------------
d32053b2e5 | Steve Melenchuk | 2014-02-14 15:02:37 -0700

Allow job and species recommendations to be independent.
That is, CK -> Tr can be recommended where Tr -> CK might not be.

This functionality is inspired by an impending rewrite of the
recommendation list where it is necessary.

I may have gotten some of the species recommendations wrong, but they're
probably going to all be rewritten shortly anyway.

--------------------------------------------------------------------------------
09b9c0f59b | elliptic | 2014-02-14 14:24:37 -0500

Change claymore to old triple sword stats.
Renames should be renames, and not also change weapon stats at the same time.

--------------------------------------------------------------------------------
5b3f85ae5b | Chris Campbell | 2014-02-14 18:04:55 +0000

De-rune Red Sonja
Presumably these doors were runified when secret doors were removed and
just never changed back to normal. It's pretty safe to assume that there's
something scary behind every door in a Sprint and they certainly don't
need to stop monsters from opening them.

--------------------------------------------------------------------------------
7970c3536d | Chris Campbell | 2014-02-14 18:02:43 +0000

Make it possible to reliably reach the orb in Sprint 3 again
Since the stone of tremors no longer reliably destroys walls.

--------------------------------------------------------------------------------
b862381d69 | Chris Campbell | 2014-02-14 17:54:27 +0000

Remove the Dig spell
Allowing cheap, infinite digging out of combat is problematic, and with
Felids now able to use wands it's possible for them to dig in places
where they really need to for whatever reason, without needing the spell
to still exist.

--------------------------------------------------------------------------------
8340939a0e | elliptic | 2014-02-14 01:33:47 -0500

Revert "Potion of Restore Abilities cures Draining"
This reverts commit c1c92e6949294d220ff375ceeb32bf5059dcaa81.

After some discussion, the consensus seems to be that this is unnecessary
and just makes draining less interesting later on (which is mainly when
draining happens). If early draining is actually a problem, we can add a cap
on the amount you can be drained instead.

--------------------------------------------------------------------------------
6481c046ce | DracoOmega | 2014-02-14 02:49:50 -0330

Allow felids to start as artificers
Since they can actually use the starting kit now.

--------------------------------------------------------------------------------
464c487c3a | DracoOmega | 2014-02-14 02:41:00 -0330

Allow felids to use wands
Wands are an important part of the general Crawl player toolkit,
and felids were hampered considerably by not having access to them -
for certain tasks there was basically no substitute (for instance,
a felid of Trog has no reasonable way to dig anything). Given that
felids are able to draw cards from decks, uncork potions, and carry
a variety of objects in their mouths, it doesn't seem a stretch
that they could hold a stick and wave it in the generally right
direction for it to do something.

This is a definite buff, but felids are certainly not considered
overly powerful at the moment and I doubt this will change that
(also, it means that less of the items you find in the game are
completely irrelevant to you, which seems a good thing).

--------------------------------------------------------------------------------
5301534c84 | elliptic | 2014-02-14 00:35:08 -0500

Fix swapped chances for RANDOM_MUTATION and RANDOM_BAD_MUTATION.
Oops...

--------------------------------------------------------------------------------
93122e0fcb | elliptic | 2014-02-14 00:27:15 -0500

Fix logic in player::malmutate().
Previously, if player::malmutate() hit the 1/5 chance of a random mutation
instead of a random bad mutation and then mutate() failed to give that
mutation, then it would try again, this time with a random bad mutation.

This most often led to "You feel odd for a moment. x2" for characters with
rMut, but it generally meant that rMut was a bit less effective than it
was supposed to be.

It appears that the bad behavior was introduced by 47a9f62.

--------------------------------------------------------------------------------
448cdef655 | Neil Moore | 2014-02-14 00:08:20 -0500

Reduce sticky flame item destruction.
Now, instead of burning scrolls approximately as much as falling into
lava each turn, it's between a bolt of fire and a fireball each turn.
Empirically, a single casting of sticky flame now destroys around 1/6 of
your scrolls, instead of about 1/3 of them.

If this is too low, it can be upped to flame cloud power (from 4 to 7).

--------------------------------------------------------------------------------
0d7bd82a05 | Chris Campbell | 2014-02-14 04:57:51 +0000

Don't place water monsters in Pan

--------------------------------------------------------------------------------
edac3f2819 | DracoOmega | 2014-02-14 01:22:55 -0330

Add missing punctuation (Pacra).

--------------------------------------------------------------------------------
d5b7e08ac7 | DracoOmega | 2014-02-14 00:37:03 -0330

Don't fire lightning torrent if friendlies are in the way

--------------------------------------------------------------------------------
ca0c6ec61b | Steve Melenchuk | 2014-02-13 18:39:16 -0700

Give Nikola a small chance of getting the arc blade (wheals, dck).
cf. Arachne and the staff of Olgreb.

--------------------------------------------------------------------------------
88aaa338ea | DracoOmega | 2014-02-13 22:05:08 -0330

Remove guardian golem's melee attack
It was so weak as to be utterly harmless, yet the fact that the
golem would still attempt to punch things might fool less-informed
players into thinking is was theoretically possible for it to
accomplish something this way. Its work is decidely elsewhere
anyway, so I think it's probably best to just cut this.

--------------------------------------------------------------------------------
a12c500c56 | DracoOmega | 2014-02-13 22:04:54 -0330

Add autofoe behavior to the new summons

--------------------------------------------------------------------------------
8b692751ac | DracoOmega | 2014-02-13 22:01:47 -0330

Merge branch 'master' into summon_spells
Conflicts:
	crawl-ref/source/enum.h
	crawl-ref/source/spl-data.h
	crawl-ref/source/spl-summoning.cc

--------------------------------------------------------------------------------
230ef3e622 | DracoOmega | 2014-02-13 21:51:06 -0330

Make Summon Forest last longer, weaken dryads
The forested terrain effect was far too brief in my opinion,
though it still managed to do a fair bit of work in that time
span (since dryads were originally designed to threaten late-
midgame players). This commit extends the duration a fair bit
(and makes it scale more strongly with power), while nerfing
the damage output of dryads and their vines a fair bit in the
process. (Dryad HD also now scales with spell power.)

The longer duration actually comes with a related drawback: if
the dryad dies early, the player needs to wait a fair bit longer
to be able to recast the spell.

--------------------------------------------------------------------------------
b78098f467 | Neil Moore | 2014-02-13 19:59:40 -0500

Don't prompt for self-hits while targetting \FD.
The secondary exploding beams didn't inherit dont_stop_player from the
original beam.  Targetting sets that flag so that the player isn't
prompted about self-hits until they select a target.

They do now.

--------------------------------------------------------------------------------
d7683599b0 | Neil Moore | 2014-02-13 19:58:59 -0500

Give player-hit warnings for \FD (#8154)
Explosive Bolt fired off a secondary exploding beam at every monster it
hit.  These beams have source == target so that they "start" at their
respective monsters (which might be shielded by other monsters).
However, that very condition marked the beam as "aimed at feet", which
prevented player prompts.

Now, instead of firing the secondary beams, make them explode directly,
skipping the initialise_fire step that would mark them as aimed at feet.

--------------------------------------------------------------------------------
28b0058d48 | DracoOmega | 2014-02-13 20:05:04 -0330

Reduce water created by Summon Forest, change form
Instead of randomly converting many scattered floor squares into
shallow water (and a rather excessive number of them), Summon Forest
now has a 50% chance to produce a single small-medium sized pond
somewhere within the effect radius.

Currently neither the chance nor size of the pond scale with
spellpower, and possibly they should (as the number of trees do),
but it's unclear to me that generating more water as the spell
becomes more powerful is actually a desirable thing.

--------------------------------------------------------------------------------
9569ea0ce2 | Chris Campbell | 2014-02-13 21:58:33 +0000

Don't give Ds monsters giant clubs (#8149)

--------------------------------------------------------------------------------
323ca680e6 | DracoOmega | 2014-02-13 18:09:23 -0330

Attempt to expire the dryad from Summon Forest at the same time as the forest 
itself
I think it looks tidier that way than it lingering for several turns
afterward.

--------------------------------------------------------------------------------
8827e6af11 | tenofswords | 2014-02-13 16:38:20 -0500

V:$ Experiment 2.0: reinstate outside rim, open subvault corners (crate)
Fleeing from the starting ambush is now more extended in that monsters
from the subvaults' corners will join in, but there is more space that
can be fought through into, and more terrain in corners/etc to work with.
No spots are guaranteed safe, especially with a lone enemy always placed
at the corners and at the ends of the cross, but the outside corridors
still provide much safer areas compared to the very open center or at
the end of the blocked-off cross.

Patrolling the outside rim to fight from each subvault's most distant
corner is now valid and minimizes sound concerns while providing automatic
avoidance of overlap between quadrants, but the combination of subvaults
being more open, the side-corners already overlapping, and the overall
scattering effect the initial escape may have may make up for this.
It shifts over the dynamic of the level to something very different from
and what may be better than the old or previous version of V:$.

I am not fully satisified with this replacement change, though it does
fulfill the original purpose of amplifying a defanged ambush and also
the much-argued point of providing terrain and potential escape in a much
less heavy-handed way than the state before this or the rim-less version.
Some vault layouts were heavily mangled in this experimental change,
with opening up all corners damaging vaults that were sculpted around
singlular paths, an inevitable consequence of the experiment. In particular,
I'm rather unsatisfied with my quick edits to _mu_corners, _grunt_zigzag,
_minmay_cup_spider, and _classical_rooms; I may edit those further later.

--------------------------------------------------------------------------------
8732b4a5ac | Chris Campbell | 2014-02-13 21:29:36 +0000

Don't suppress green draconian stinger in dragon form

--------------------------------------------------------------------------------
61c93ed9b4 | DracoOmega | 2014-02-13 17:56:57 -0330

Change Summon Forest openness criteria, always center on caster
The old method for deciding whether an area was open enough for this
spell to work also resulted in picking focal points that were
sometimes fairly distant from the player, and then having half or more
of the effect occur outside the player's los (possibly including
where the dryad herself shows up!).

Now the effect is always centered on the player, and the criteria
is 'at least one adjacent space which is itself completely surrounded
by open space' which I find tends to line up reasonably in practice
with what one expects as 'not extremely confined', though possibly
some other measure might be superior.

--------------------------------------------------------------------------------
5a745abeb8 | elliptic | 2014-02-13 15:24:26 -0500

M_VIGILANT changes.
The flag no longer makes the monster automatically notice the player as soon
as the player enters sight. Instead, it divides the chance of the monster
forgetting about an out-of-sight player by 3. (The flag also still has the
effect of making the monster's foe_memory not decrease with time.)

This affects only one monster currently: curse skull. The purpose of the flag
is to make the monster handle being out of the player's sight better, so
possibly wandering mushroom should gain it too.

--------------------------------------------------------------------------------
fd2042da07 | DracoOmega | 2014-02-13 16:13:10 -0330

Increase Summon Lightning Spire's range to 2
To give it just a touch more flexibility than only creating it
immediately adjacent.

--------------------------------------------------------------------------------
74a666722c | DracoOmega | 2014-02-13 16:10:47 -0330

Improve guardian golem defenses, scale hp with spell power
Also give it some resists. For a monster whose primary job is to
defend things, it tended to die curiously easily.

--------------------------------------------------------------------------------
5f9f4c6109 | Steve Melenchuk | 2014-02-13 10:05:13 -0700

Fix some typos in monster energy descriptions (#8150).

--------------------------------------------------------------------------------
acd4404d41 | DracoOmega | 2014-02-13 05:20:22 -0330

Properly expire injury bond from friendly sources
Previously, injury bonds would remain on friendly monsters after the
golem's death, and even continue to cut incoming damage in half,
despite there being no source for the damage to be redirected to.

--------------------------------------------------------------------------------
fe507cf78a | DracoOmega | 2014-02-13 05:18:45 -0330

Automatically apply injury bond from guardian golems
Waiting for them to choose to cast it was too slow and unreliable
for the effect, and wouldn't apply to any new creatures summoned
afterward. Now it is simply automatically applied to all appropriate
creatures immediately upon the golem's creation and each turn
thereafter.

--------------------------------------------------------------------------------
6f603d6d79 | elliptic | 2014-02-12 22:45:29 -0500

Let Dith worshippers use Shadow Step on vampires.
This special case was just confusing and unnecessary.

--------------------------------------------------------------------------------
0c1444472b | Chris Campbell | 2014-02-13 01:12:11 +0000

Don't name flaming randarts after Dithmenos

--------------------------------------------------------------------------------
f199eee578 | Chris Campbell | 2014-02-13 01:12:10 +0000

Adjust Ds Warmonger weapons
To leave claymores and executioner's axes as unique-only weapons.

--------------------------------------------------------------------------------
d3d69d6f03 | DracoOmega | 2014-02-12 20:45:08 -0330

Don't let tentacles pull back stationary monsters

--------------------------------------------------------------------------------
52af45fe57 | DracoOmega | 2014-02-12 20:45:06 -0330

Reduce Metabolic Englaciation to level 5
While seemingly useful, this spell very rarely got actual use (at
least some of which is the awkward schools). I believe the slow
stacking change will help a fair bit, but that another nudge mightn't
hurt.

Note that the spell is heavily power-based, so this doesn't
automatically open full useage to a lot more people. If you want it
to have an appreciable effect on higher HD things, you will still
want to train the appropriate skills more.

--------------------------------------------------------------------------------
32af723411 | DracoOmega | 2014-02-12 20:45:04 -0330

Slightly lower the delay on an eldritch tentacle being produced by Malign 
Gateway
More from the top than bottom end (and only 1.5 turns on average),
but I felt a slight nudge in that direction could be reasonable.

--------------------------------------------------------------------------------
6ba0e6fa84 | DracoOmega | 2014-02-12 20:45:03 -0330

Slightly adjust cold-blooded slow duration (generally down)
But keep in mind that continuing to hit that cold-blooded monster
with a freezing weapon will now be able to extend that duration
without waiting for the effect to completely wear off first, so
probably this is a mild overall buff.

--------------------------------------------------------------------------------
255a0ad151 | DracoOmega | 2014-02-12 20:45:01 -0330

Allow slow to stack duration on monsters
I think it was a little odd that it did not, given that it not only
stacks duration against the player, but other effects like confusion
will stack duration against monsters just fine. Whereas trying to slow
a monster that was already slowed simply did nothing (though could be
resisted in a way that suggested that it WOULD do something if only
it could pass their MR)

Additionally, I think that the fact that it was impossible to extend
the duration if even 1 aut of slow remained was detrimental to effects
like Metabolic Englaciation, since the durations applied to monsters
was highly variable and recasting it to slow one monster would have
no effect at all on the other half-dozens monsters whose slow was just
about to expire.

--------------------------------------------------------------------------------
ea613a1c1f | DracoOmega | 2014-02-12 20:44:59 -0330

Make the various summoning spells use MG_AUTOFOE
This enables them to use the automatic foe-seeking behavior just
implemented. Probably I have missed something which should have it,
but this does seem to cover most of the bases.

--------------------------------------------------------------------------------
6f4d3be32a | DracoOmega | 2014-02-12 20:44:58 -0330

Don't reset the foes of allied monsters if the player can see their foe
This is another issue with allied monsters being out of los of their
foe, while the player is not, and it being non-obvious that the allied
monster actually cannot see their target's position. Since summon creation
position is randomized, it was not uncommon for them to spawn out of sight
of a target you had assigned as the pet target, and thus sometimes they
would appear to simply ignore the pet target and stand around doing nothing
(this applies to both ta and also autofoe as assigned by the previous commit).

Now they will use the player's ability to see their foe to allow them
to preserve their own target lock, allowing more intuitive ally behavior
when commanded to attack things.

--------------------------------------------------------------------------------
1d5a4174a9 | DracoOmega | 2014-02-12 20:44:57 -0330

Allow nearly created allies to automatically choose appropriate foes
Having to repeatedly pause to tw after summoning new allies in a
battle-in-progress (lest they simply stand around doing nothing)
makes the pure summoner playstyle a bit more tedious than necessary.
Also, it is not always intuitive to new players why allied monsters
will sometimes appear to engage on their own and other times ignore
obvious threats (say, if those threats simply missed you with their
attacks on the previous turn).

This adds the capacity for newly created summons to automatically
choose valid nearby foes similar to if tw had been used just after
making them. If there are no valid nearby foes, they will simply
follow alongside the player as normal (no change to their general
AI behavior has been made).

(I did this by repurposing the apparently unused M_PLAYER_MADE flag.
Hopefully there wasn't some reason for its existence that was not
clear to me.)

There is one caveat that is slightly different from tw: they will
choose only foes that the player is also in los of (so as to not
run off after monsters the player is not yet even aware of) and will
even choose a foe that they are not in los of, but the player is, if
no other one is available). This last property is particularly because
often summons will be created slightly more distant from a monster
you are fighting than the player is, and it is often very unclear
that the monster cannot actually see the target from that spot. So
when they do not engage and simply stand around the player, it
appears moreso that the AI has failed to work properly, rather than
the monster cannot see any target. We will assume that the player
passes along some indication of its foes' positions that allies can
use - in practice, the fact that this is even happening is not obvious;
things simply just appear to move towards obvious enemies.

--------------------------------------------------------------------------------
48ad3987cb | Chris Campbell | 2014-02-12 20:04:13 +0000

Add Summon Forest to the book of Callings (for testing purposes)
It very likely shouldn't be in the starting book ultimately, but since
the purpose of the experimental branch is to test the spells, this makes
it easier to do so without needing to find the book of the Warp.

--------------------------------------------------------------------------------
58eacce2df | Chris Campbell | 2014-02-12 19:35:16 +0000

Don't target Summon Lightning Spire on monsters

--------------------------------------------------------------------------------
f635930c6c | Neil Moore | 2014-02-12 09:38:36 -0500

Don't crash when a KILL_MISC beam de-fears a monster.
If the beam was KILL_MISC, the source for the behaviour event will be
null (maybe that should be fixed?  See beam_source_as_target).  Looking
up the name of the source of the attack, as happens when stripping
ENCH_FEAR, would then cause a crash.

See for example:
  http://crawl.lantea.net/crawl/morgue/dck/crash-dck-20140212-132407.txt
where the spell causing the crash was the self-affecting portion of
Chaotic Mirror.

Make this case of behaviour_event handle a null src, like everything
else in that function.  Say "The attack" rather than "Its attack".

--------------------------------------------------------------------------------
262d02f475 | tenofswords | 2014-02-11 22:49:25 -0500

Adjust some vaults due to just-now wraith changes
Only a few vaults really need touch-ups after buffing freezing
and shadow wraiths, really; most vaults using them are using them
as miscellaneous general "ghost" monsters at late depths.
This reduces the one particularly excessive case in ice caves,
temporarily cuts some from Labs until a replacement is found,
and does some general edits to the ancient and weird due_megacathedral.

--------------------------------------------------------------------------------
f77d330d3b | DracoOmega | 2014-02-12 00:12:58 -0330

Raise shadow wraith damage somewhat
These also did very little damage for the time you run into them
(and this probably won't change that very much, admittedly, but
it's something)

--------------------------------------------------------------------------------
6c4715db9a | DracoOmega | 2014-02-12 00:12:56 -0330

Buff freezing wraiths
Slow melee-only monsters have a tendency to be uninteresting, and
these were pretty much wholly unthreatening outside of one ice cave
that used large numbers of them early on.

Raise speed to 10, and give them the speed-draining touch that all
other wraiths already had (which is tactically relevant as well as
thematically appropriate). Reduce the physical damage on their
AF_COLD attack, so that it triggers less often, to lower their
overall damage output somewhat in compensation.

--------------------------------------------------------------------------------
be2acf0207 | tenofswords | 2014-02-11 22:42:35 -0500

Experimental, incomplete new Swamp layout
This layout mashes together layout_waterfall and layout_pools
with a bunch of hacky tweaks and some depth-scaling water
to produce some long, wavering, dripping strands with
centered pools and occasional ground islets. Occasionally,
the strands twist together into large splattered archs and hooks.
The focus from tactical coverage switches from columns and ridges
into large corners and distant corridors, the levels are more
sectioned-off, and the pools are less intrusive in area and
section through isolation by being centered.

This is incomplete in that somebody more advanced in the use
of noise generators should step in and fix an artefact of the
base layout's results, the occasional thin, blocky corridor
left at the end of some strands; it's very unnatural looking.
To this end, the layout is at a 2/7 chance compared to the current
Swamp's layout, and is blocked from Swamp:5 for trivially producing
corridors leading into isolated Swamp:$ vaults. Still, for now,
the more centered approach to pools and less shallow water for
land and deep water should make a less frustrating and more
interesting layout for the branch.

--------------------------------------------------------------------------------
7065d4e766 | Neil Moore | 2014-02-11 22:09:03 -0500

Don't issue stop-attack prompt when targetting Explosive Bolt (#8140)

--------------------------------------------------------------------------------
b757ec448c | Neil Moore | 2014-02-11 21:27:41 -0500

Don't crash when Malign Offering kills something (#8135)
We were falling through to the next case in the switch statement,
and crashing when looking up MR for the dead monster.

--------------------------------------------------------------------------------
05a45dfc25 | DracoOmega | 2014-02-11 21:10:53 -0330

A few small tweaks to Shoals population weights

--------------------------------------------------------------------------------
c98ed0122a | DracoOmega | 2014-02-11 21:06:03 -0330

Reduce merfolk aquamancer band size a bit

--------------------------------------------------------------------------------
3748a153bb | DracoOmega | 2014-02-11 21:00:50 -0330

Fix orb spider charging not producing a message

--------------------------------------------------------------------------------
9b0eb917c7 | DracoOmega | 2014-02-11 20:58:15 -0330

Somewhat unnerf orb spiders
When cantrip was removed (for apparently aesthetic rather than
balance reasons) and replaced with requiring them to cast iood
twice to get one orb, the actual frequency of their shots fell
considerably (as well as guaranteeing that they can never use it
on two consecutive actions)

This commit nudges up their HD in compensation, so that the orbs
you do get will be somewhat more powerful (and lowers per-HD hp
a bit)

--------------------------------------------------------------------------------
7bda2e53d8 | DracoOmega | 2014-02-11 20:34:40 -0330

Somewhat unnerf deep elf summoners
These were hit especially hard by both the summon cap and the
abjure-on-death change, since they are squishy and rely on their
summons for all of their threat (and their summons were of a
somewhat swarming style that was hard to achieve with a cap of
only 3)

For comparison, they were about on parity with deep elf conjurers
in 0.13, yet score less than 1/4 of their kills in 0.14 so far (and
less than even fighters, who are the weakest of all deep elves,
supposedly).

This raises the cap to 5, adds an extra slot of summon vermin,
gives them some more hp, and very slightly adjusts summon weightings.
I expect they will still be much weaker than in 0.13 anyway, but
this might help a little.

--------------------------------------------------------------------------------
b750380a6a | DracoOmega | 2014-02-11 19:10:46 -0330

Nerf spriggan druids a little
Reduce Sunray damage somewhat, remove Haste Plants (since druids
no longer spawn alongside plants, making its use more rare, and the
few that it might run across in Swamp are comparatively more
threatening even when unhasted than they were in Forest), and make
Druid's Call only have a 50% chance of calling an additional low-HD
monster if the first is low-HD (which will also dilute its chances
of summoning high-HD things across multiple casts).

I have left the code for Haste Plants at the moment, even though it
is unused. There might well be some other situation it could fit.

--------------------------------------------------------------------------------
6b13c70ea2 | DracoOmega | 2014-02-11 19:10:45 -0330

Revert global spriggan monster nerf
Seperating monster spriggan move/action speeds ostensibly for parity
with player spriggans is also a massive damage nerf to an entire class
of monsters, many of which do not seem to warrant one. And if some do,
that is better handled on a case-by-case basis, addressing specific gameplay
issues. This change was both overly broad and harsh.

This reverts commits 6f0844da8a28793ebe3b81f9762de0869deccb96
and c004371e41787b2844a6433cd44f2b96e22d98c0.

--------------------------------------------------------------------------------
273153d141 | Pekka Lampila | 2014-02-12 00:27:40 +0200

Remove an unused variable.

--------------------------------------------------------------------------------
9e16a7c43e | tenofswords | 2014-02-11 16:57:29 -0500

Prevent trove portals from appearing nearly anywhere(?) super-rarely.
Placing the CHANCE line in the function made the trowel card gateway
possibly appear when it shouldn't have, and said portal due to the
weird implementation and it overwriting space could appear anywhere
at a rather low chance. I spotted this in V:$.

--------------------------------------------------------------------------------
6f0844da8a | Steve Melenchuk | 2014-02-11 13:06:36 -0700

Un-nerf Agnes.

--------------------------------------------------------------------------------
ef7877543a | Chris Oelmueller | 2014-02-11 12:36:23 -0700

Make ice beast swim delay consistent with (original) ice form.
This reverts commit fc2badc080d5990d64dbe3739cf2c524b807a8e4.

--------------------------------------------------------------------------------
bb5a145c8e | Chris Oelmueller | 2014-02-11 12:33:54 -0700

Change speeds of several speed 9/11 enemies.
* Change azure jelly speed to 12 (was: 11)
  - In line with death ooze and acid blob.
* Change balrug speed to 12 (was: 11)
* Change speed of some '2' tier demons to 10 (was: 11)
  - Affected monsters are shadow demon, green death and blizzard demon.
* Change crab monster speed to 10 (was: 11)
  - Affected monsters are fire crab and gimmick crab.
* Change eidolon speed to 10 (was: 11)
* Change swamp drake speed to 10 (was: 11)
* Change chaos spawn speed to 10 (was: 11)
* Speed 10 for smoke demons (was: 9)
* Speed 10 for tentacled starspawns (was: 9)
  - Not like anyone should notice a huge difference in the abyss here.

[Committer's note - this has been condensed from nine separate patches.]

--------------------------------------------------------------------------------
c004371e41 | Steve Melenchuk | 2014-02-11 12:31:10 -0700

Make enemy spriggans move like player spriggans.
That is, move delay 0.6 in most cases and normal action speed.

Agnes, who was speed 18, gets move delay 0.5 so she stays faster than
other spriggans. (This might be up for debate.)

--------------------------------------------------------------------------------
4c9fca9d67 | Steve Melenchuk | 2014-02-11 12:30:45 -0700

Clean up / adjust mostly spurious uses of ACTION_ENERGY.
It's never really been used other than as a hacky way to increase the
monster speed without increasing their action speed.

Enemy nagas also now move like player nagas do; this is a slight nerf
(not that they really need it). Related is a small adjustment to
salamander firebrand movement energy.

This leaves the weird case of ugly things having a 0.9 move delay alone
for now; what exactly to do with that needs further discussion.

--------------------------------------------------------------------------------
af2634a3aa | Steve Melenchuk | 2014-02-11 12:18:40 -0700

Describe monster energy usage in xv and ?/M screens.
e.g.

"A felid. [...] It covers ground quickly."

"A hydra. [...] It swims extremely quickly."

"An orb spider. [...] It is fast, but uses natural abilities extremely
slowly."

--------------------------------------------------------------------------------
a65bd4252d | Chris Campbell | 2014-02-11 18:33:00 +0000

Improve Repel/Deflect Missiles descriptions

--------------------------------------------------------------------------------
0c93fee5ae | Chris Campbell | 2014-02-11 18:32:58 +0000

Replace Natasha's minor demon with call imp

--------------------------------------------------------------------------------
2b21410292 | Chris Campbell | 2014-02-11 18:32:57 +0000

Adjust RMsl/DMsl scaling

--------------------------------------------------------------------------------
63a4c57a0e | Chris Campbell | 2014-02-11 18:32:56 +0000

Base RMsl/DMsl expiry on current power rather than power at cast time
Also expire them immediately when they fail, rather than still having a
short duration afterwards.

--------------------------------------------------------------------------------
ff81b0386e | ontoclasm | 2014-02-11 10:44:05 -0600

GONNNG tiles (Bloax)

--------------------------------------------------------------------------------
810d2b3087 | Steve Melenchuk | 2014-02-10 22:41:03 -0700

Expire stored god wraths if there aren't any angry gods left.
Otherwise they get saved for the next god you anger.

Also adds some handling to hopefully render a "tries" loop unnecessary.

--------------------------------------------------------------------------------
fbf5f54b51 | Steve Melenchuk | 2014-02-10 22:29:49 -0700

Be less hyperactive with god wrath.
With the previous code, 1% of an XL gained would guarantee wrath at some
later date, i.e. the timer code wouldn't count failing the 10% check
against the stored wrath counter.

The relevant code was intended to check for gods for which
divine_retribution returns false (dead Jiyva, Ashenzari), which it does
now.

--------------------------------------------------------------------------------
94087c3e43 | Steve Melenchuk | 2014-02-10 21:25:38 -0700

Tag naga ritualists with M_ACTUAL_SPELLS.
I'm assuming this was missed somewhere along the line; like every other
spell-user in the branch they seem like they are supposed to be the
arcane sort.

--------------------------------------------------------------------------------
8ac5a44c68 | Steve Melenchuk | 2014-02-10 19:53:52 -0700

s/Dithmengos/Dithmenos/ (dpeg).
At least three devs are probably waiting for this to be pushed if
they're not about to push it themselves. So now it's done.

--------------------------------------------------------------------------------
5358f5b16d | Steve Melenchuk | 2014-02-10 18:59:01 -0700

Spellbinder floor tile (Bloax) and hand tile (mine).
Or, "how to draw better art at 2AM than Grunt can at 6PM".

--------------------------------------------------------------------------------
d8d35f4980 | Steve Melenchuk | 2014-02-10 18:59:00 -0700

Arc blade tiles.

--------------------------------------------------------------------------------
57c1fdd2a4 | Steve Melenchuk | 2014-02-10 18:59:00 -0700

Unrand: the +3,+6 demon whip "Spellbinder" {antimagic, MR+}.
It inflicts miscast effects related to the target's spells on hit.

--------------------------------------------------------------------------------
ba0e3a01b7 | Steve Melenchuk | 2014-02-10 18:59:00 -0700

Accept MHITYOU as a miscast source.
This is so that miscasts caused by the player (Spellbinder) that kill
the monster get attributed correctly to the player.

--------------------------------------------------------------------------------
d136198950 | Steve Melenchuk | 2014-02-10 18:59:00 -0700

Unrand: the +3,+5 arc blade {discharge, rElec}.
It is a cutlass that casts Static Discharge centred on the target on one
in three melee hits - effectively an amplified electrocution brand.

--------------------------------------------------------------------------------
669e26a255 | Pekka Lampila | 2014-02-11 02:53:21 +0200

Handle quitting before character creation for WebTiles exit dialog.

--------------------------------------------------------------------------------
4ea431d028 | Steve Melenchuk | 2014-02-10 17:06:58 -0700

Allow training all skills for all divine abilities for current god.
That is, Invocations for gods that use it, Shields for TSO (Divine
Shield), Evocations for Nemelex, and Necromancy for Kiku can all be
trained at any time when following that respective god.

--------------------------------------------------------------------------------
f0b5a6fa7a | Pekka Lampila | 2014-02-11 01:19:20 +0200

Fix item colours not being sent with a full update.

--------------------------------------------------------------------------------
601dbb0399 | Steve Melenchuk | 2014-02-10 16:00:33 -0700

Dith active abilities depend on Invocations.
For Shadow Step it's just a (fairly low) fail rate check; for Shadow
Form it's a rather high threshold and also determines the duration of
the transformation.

All your favorite passive abilities are still entirely piety-based -
rejoice!

--------------------------------------------------------------------------------
02ec649b3a | Steve Melenchuk | 2014-02-10 15:10:06 -0700

Scale umbra stealth bonus with piety for gods that can generate umbra.
...that is, directly (Dith) or indirectly (Yred, through profane
servitors).

At 200 piety you get the old double stealth bonus; at 0 piety you get no
bonus; in between it scales linearly.

--------------------------------------------------------------------------------
7068e7fc42 | Steve Melenchuk | 2014-02-10 15:08:08 -0700

Adjust shadow mimic HD / damage calculations.
The base attack damage is 0 unless you're unarmed, in which case it's
the greater of 1 or half your unarmed combat skill; that is, all of the
damage comes from the weapon type.

Also, its melee/ranged HD is now half your skill value in the relevant
weapon. (This may be too low.)

--------------------------------------------------------------------------------
84bc4f3cfa | Steve Melenchuk | 2014-02-10 14:56:22 -0700

Don't shadow mimic Dith-hated spells.
The only weird case left for this that I can think of is Ice Storm, but
Ice Storm may not be around for a heck of a lot longer anyway.

--------------------------------------------------------------------------------
5b32d56375 | Steve Melenchuk | 2014-02-10 14:54:27 -0700

Don't directly shadow mimic conjurations; use shadow spells.
For beams, you get Shadow Bolt; for non-beams, you get Shadow Shard.

There are a couple of weird cases with this that should go away with the
next commit.

--------------------------------------------------------------------------------
4fb377143d | Chris Campbell | 2014-02-10 21:02:55 +0000

Remove Summon Scorpions
It's already been replaced in the Summoner starting book, and is one of
the summon spells that mostly just relies on spamming large numbers of
monsters. Alistair's Intoxication is shuffled around in a couple of books
to replace it in Envenomations.

--------------------------------------------------------------------------------
7517bb3cc0 | Shayne Halvorson | 2014-02-10 21:02:54 +0000

Tweak some of the new spells.
Summon Guardian Golem to level 4 (was 3), move Summon Forest from Callings
to Warp. Recall was removed from Warp to make room; it could move to Control
if needed.

--------------------------------------------------------------------------------
f995b71d04 | Shayne Halvorson | 2014-02-10 21:02:53 +0000

New spell: Summon Guardian Golem (L4 Summ/Hex)
The guardian golem is an ally with little attack power, but it can cast
injury bond to protect its allies. When below half health it can overheat,
causing it to explode on death.

--------------------------------------------------------------------------------
8caa7c39de | Shayne Halvorson | 2014-02-10 21:02:52 +0000

New spell: Summon Lightning Spire (L4 Summ/Air)
Replaces Summon Scorpions in the Book of Callings.

--------------------------------------------------------------------------------
3fcccda608 | Shayne Halvorson | 2014-02-10 21:02:51 +0000

New spell: Summon Forest (L5 Summ/Tloc)
It temporarily changes nearby terrain to trees and water and summons a dryad.

--------------------------------------------------------------------------------
a8f07b1d7f | Chris Campbell | 2014-02-10 20:12:28 +0000

Add argonaut to CREDITS.txt

--------------------------------------------------------------------------------
142965bd79 | Chris Campbell | 2014-02-10 20:11:30 +0000

Remove some references to racial ammunition

--------------------------------------------------------------------------------
052d36c0c4 | Chris Campbell | 2014-02-10 20:11:29 +0000

Let some new effects be dispelled by vulnerability

--------------------------------------------------------------------------------
b818ab23ff | Chris Campbell | 2014-02-10 20:11:28 +0000

Don't list Ziggurats under "Branches" on the overview screen

--------------------------------------------------------------------------------
d7857ab503 | Chris Campbell | 2014-02-10 20:11:27 +0000

Fix cursed rings message for cases with the macabre necklace

--------------------------------------------------------------------------------
e03b0eb1dc | Tommy | 2014-02-10 15:02:13 +0200

Check for monsters in range when evoking a wielded rod using "v".
Rods can be evoked regardless using "V" (similar to spells with z and Z).

--------------------------------------------------------------------------------
45c052ce27 | Pekka Lampila | 2014-02-10 14:11:04 +0200

Fix WebTiles exit dialog showing up for player when it shouldn't. (#8131)

--------------------------------------------------------------------------------
51e44bb4bf | Neil Moore | 2014-02-10 02:57:31 -0500

Set timers properly when transferring old saves.
We were using you.elapsed_time before unmarshalling it, leading to
triggers scheduled for 0.  As a result, in a sufficiently long
transferred game, monsters would no longer leave corpses (rather, they
would rot away immediately).

Besides filling in missing timers with the correct time, also fix up any
next-trigger-in-past timers that resulted from this problem.  If the
save did not come from a version with the buggy unmarshalling, assert
instead (as that indicates an unknown problem that should not be papered
over).

--------------------------------------------------------------------------------
119c114599 | ontoclasm | 2014-02-10 00:59:09 -0600

Lignification potion tile
Also incidentally fix some mis-centered potion icons.

--------------------------------------------------------------------------------
a8cbd8820c | Steve Melenchuk | 2014-02-09 20:34:27 -0700

Fix some enemy battlesphere-related crashes.

--------------------------------------------------------------------------------
61b4c5010b | tenofswords | 2014-02-09 20:49:41 -0500

Do something of little consequence.

--------------------------------------------------------------------------------
399d05bdfd | ontoclasm | 2014-02-09 19:33:17 -0600

Recolor floor_frozen to fit the new Coc walls

--------------------------------------------------------------------------------
489902cbdd | ontoclasm | 2014-02-09 19:18:42 -0600

Icy walls and stone for Cocytus (Bloax)

--------------------------------------------------------------------------------
e60bb15a15 | ontoclasm | 2014-02-09 18:59:02 -0600

Singing sword tile (Bloax)

--------------------------------------------------------------------------------
f80c5e0639 | ontoclasm | 2014-02-09 17:09:48 -0600

Ice block walls for ice caves (Bloax)

--------------------------------------------------------------------------------
53155d8435 | Steve Melenchuk | 2014-02-09 15:45:30 -0700

Fix salamander weapon and shield positioning.
Oops. (x2)

--------------------------------------------------------------------------------
20145e74ef | Steve Melenchuk | 2014-02-09 15:39:29 -0700

Re-shadow and reposition ritualist tile.
Meant to do this before it landed, but somehow missed it.

--------------------------------------------------------------------------------
4a0e27893c | Steve Melenchuk | 2014-02-09 15:31:21 -0700

Salamander tile tweaks (roctavian, #8097).

--------------------------------------------------------------------------------
57edba8431 | Steve Melenchuk | 2014-02-09 15:31:17 -0700

An adjusted version of coolio's naga ritualist tile (#8097).

--------------------------------------------------------------------------------
de5cf9be2e | Steve Melenchuk | 2014-02-09 15:01:08 -0700

Worldbinder tile (roctavian, #8097).

--------------------------------------------------------------------------------
9c84cb5c0b | Steve Melenchuk | 2014-02-09 14:39:50 -0700

Fix changelog typo (wheals).

--------------------------------------------------------------------------------
6c5b808c4b | Steve Melenchuk | 2014-02-09 14:36:30 -0700

Changelog through 0.14-a0-2527-g57e2a1b.

--------------------------------------------------------------------------------
57e2a1b88c | Steve Melenchuk | 2014-02-09 14:09:06 -0700

Make divine wrath contingent on XP gain.
For every 1% of an XL you gain, there's a 10% chance of any particular
god angry at you attempting divine retribution on the next "every 20
aut" timer (i.e. 100% chance of *someone* throwing wrath at you if you
have ten angry gods; less for less gods). This translates into ten
wraths per XL, which, on an average of 2 penance lost per wrath, means
20 penance is on average equal to one XL worth of wrath.

For perspective, the following penance values are used on abandonment:
- 25: Cheibriados, Dith, Makhleb, Vehumet, Zin
- 30: Elyvilon, Fedhas, Jiyva, Kiku, Yred, TSO
- 50: Beogh, Dithmengos, Lugonu, Sif Muna, Trog
- 150: Nemelex Xobeh (but only active above 100 penance)

...so for the "normal" wraths (Ashenzari wrath is already special), you
can expect wrath to last either 1.25 XL, 1.5 XL, or 3 XL (or an equivalent
amount of experience).

In practice, because wraths still - at their core - happen on a timer,
you end up with wrath either during or after significant battles, when
the player is depleted - exactly when an angry god would try to kill
you.

These numbers can probably be fudged further; I think this may make
wrath happen too often (even if it's at relevant times), but time will
tell.

--------------------------------------------------------------------------------
b5a132a165 | Steve Melenchuk | 2014-02-09 14:09:02 -0700

Make "every 20 turns" effects happen less predictably.
This introduces event timers that schedule the next time the code
handling one of these effects - including such things as hell effects,
glowsplosions, and divine retribution - to happen a random amount of
time after the current time the event runs.

Most things are called every 100-300 aut (or a multiplier thereof); a
minimum delay between instances seems appropriate, as does a maximum.

I'm not completely satisfied with this implementation, but it gets the
job done.

--------------------------------------------------------------------------------
b6c2c79774 | tenofswords | 2014-02-09 20:08:46 +0000

Remove Vaults:$'s outside border ring
The ambush doesn't mean anything when even the slightest speed boost
lets you run off to some thin, safe corridors far away from quadrant
entrances and pick away at the group or flee for long enough to scatter
them across the border instead. The ends of the cross in-between the
quadrants are still "fine" places to fight in for most characters
about to do V:$, and it's still potentially better than stairdancing
the ambush anyway due to still having some safe distance from the
quadrant entrances for noise to travel.

This does make fleeing and uncontrolled teleports after the ambush,
during quadrant clearing a bit more dangerous, yes. Most of V:$'s
threats already kill during a too-late escape rather than by running
into more trouble, anyway, and a successful escape is still plausible
when the ambush is taken care of or with all the escape tools a
character should have by the depth.

This should, overall, reduce a bit of degeneracy, continue to make
V:$ more distinct from regular levels and other branch ends in
having no "extraneous" safe level space, and only add the slightest
amount more of danger to what is possibly the best-designed,
branch end vault besides Zot:5.

--------------------------------------------------------------------------------
592e02136c | Chris Campbell | 2014-02-09 19:38:06 +0000

Turn Portal Projectile into a duration
While active, all shots are portalled at the cost of 1MP per shot.

--------------------------------------------------------------------------------
0aaafda474 | Chris Campbell | 2014-02-09 19:37:47 +0000

Make an octopode-specific jewellery message octopode-specific again
At some point it was (presumably accidentally) changed to display even
for normal races with 2 cursed rings.

--------------------------------------------------------------------------------
c787378166 | wheals | 2014-02-09 19:37:46 +0000

Remove arbitrary gear slot connections.
Specifically, body armour does not require taking on/off cloaks, and putting on
and removing rings with cursed gloves is allowed.

This was a constant source of nonsense: why can you not put on rings with
cursed gloves, but you can put on gloves with cursed two-handers? Why do cloaks
block armour but gloves don't block full plate? The only possible motivation
was "realism," but that's a weak argument in general and having the slots not
being connected is not particularly unrealistic.

[MarvinPA: The one place this was occasionally relevant was under Ashenzari,
but even there the result was just that you would always prefer to curse
boots/helmets/body armour over cloaks/gloves to avoid the extra
micromanagement.]

--------------------------------------------------------------------------------
2167526f64 | Chris Campbell | 2014-02-09 19:37:45 +0000

Adjust missile acquirement, don't look at inventory items
The check for whether to include needles as a possibility checks stealth
skill rather than the presence of a blowgun. Not sure that this check is
great either but it's an improvement over checking for specific carried
items (since that has been removed from all other types of acquirement).

--------------------------------------------------------------------------------
2b0288b017 | Chris Campbell | 2014-02-09 19:37:44 +0000

Don't arc electricity when attacking with an elec weapon in water
The main thing it did was cause annoying prompts when you could hit
yourself or an ally with the arc. It was rarely relevant other than that,
and just made elec brand a bit more complicated unnecessarily.

--------------------------------------------------------------------------------
2294cc43dd | Chris Campbell | 2014-02-09 19:37:43 +0000

Don't draw random Abyss spawns from other branches
Worldbinders work a lot better for this with their hand-picked lists of
summons, rather than just grabbing random monsters that are very often
inappropriate or ignorable in the Abyss.

--------------------------------------------------------------------------------
c817209be3 | tenofswords | 2014-02-09 14:24:29 -0500

Set most 'excl_rad = -1' to 0
I'm not convinced that this is full necessary in terms of function,
considering how most of these vaults are in places questionable
to autoexplore and most of these generators would only avoid a prompt
into a cloud if the cloud was directly disturbed by e.g. ice/fire
or fan of gales, but whatever. Cloud machines are already awkward
in a lot of ways, with being mostly tied to item destruction instead
of damage past Lair, not providing something to directly confront
in an inconsistent fashion against Crawl's main focus of fighting
monsters, not an easily automated process, etc; I'm hardly about
to defend these vaults using them for flavour purposes.

--------------------------------------------------------------------------------
6f90349bad | Neil Moore | 2014-02-09 12:28:55 -0500

Don't leak information on out-of-sight squares in xv (#8109)
This allowed you to identify altars and portals detected by magic
mapping, even though map_knowledge explicitly had DNGN_UNKNOWN_ALTAR.
Even worse, xv on an unseen (even unmapped) region of the level would
tell you exactly what feature was that that spot.

This used to be prevented by xv only working in LOS.  Now we check
whether the real feature is the same as the remembered one, and if
not use the base description for the remembered feature.  If they
were the same, we look up the raw_feature_description for the
location, so that vault feature renames are applied.

The solution isn't perfect: it still can still leak whether a remembered
square has changed, detectable by the lack of feature renames (so only
in a few rare locations).  Probably map_knowledge needs to store the
rename as well to fix that issue.

--------------------------------------------------------------------------------
151ae2ed11 | Chris Oelmueller | 2014-02-09 11:43:09 -0500

Remove unused code writing to spell descriptions
Monster spells for instance have been available in ?/s for a while now,
but this code hadn't been called for spell lookups in the first place.
Not even the command &Z survived from back when this did something.

--------------------------------------------------------------------------------
8afba6d1b6 | Chris Oelmueller | 2014-02-09 11:43:08 -0500

A bit of padding for known items in \ autopickup screen
This looks much better, and is consistent both with inventory menus
and the "unknown" section of the very same menu.

--------------------------------------------------------------------------------
d9dbeb1a41 | Chris Oelmueller | 2014-02-09 11:43:07 -0500

Remove special message handling for book+rod spells
This was pretty much duplicated code for no gain, and the message didn't
even look better in the special-cased version. There is enough space for
the extra newline.

--------------------------------------------------------------------------------
915b839501 | Chris Oelmueller | 2014-02-09 11:43:06 -0500

A bit of padding for book/rod names in ?/s
This looks much better.

--------------------------------------------------------------------------------
99fcc2ecab | gammafunk | 2014-02-09 11:43:06 -0500

Lose Asterion's shield and designate signature weapons.
Asterion has a lot of HP, hits pretty hard already, and players complain
about monsters with shields.  There's patch to fix the HD of his
spectral weapon that will help make that spell more effective in
compensation.  Also set demon weapons to be his signature weapon so he
doesn't try to swap weapon types.

--------------------------------------------------------------------------------
a0d116cb56 | gammafunk | 2014-02-09 11:43:05 -0500

Don't penalize monster's spectral weapons with half hd.
Currently monster::skill() reports weapon skill as half of hd for
non-fighter monsters.  This is only used for spectral weapon, where it
results in specters with half-monster-hd and hence poor to-hit.  This
changes monster::skill() to not penalize based on M_FIGHTER.  This
doesn't affect damage or other aspects of spectral weapons, which are
based on the weapon properties.  A boost for M_FIGHTER monsters using
spectral weapon (or otherwise somehow using monster::skill()) can be
given in the future if need arises.

This commit also cleans up a comment.

--------------------------------------------------------------------------------
5c913e8865 | gammafunk | 2014-02-09 11:13:00 -0500

Fix seek/wandering behaviour of spectral weapons and battlespheres.
The monster versions of these spells were misbehaving differently
depending on whether they are friendly or hostile due to assumptions in
handle_behaviour().  Some changes that let these "avatars" behave
properly when both friendly and hostile, regardless of caster:

0.  I added a mons_is_avatar() function that returns true if the given
    monster type is a battlesphere, spectral weapon, or grand avatar.
    The behaviour changes only affect spectral weapons and
    battlespheres, and the function is currently only used for code
    relative to those two, but they're all in the class of "magical
    constructs attached to the caster".

1.  Spectral weapons and battlespheres seek their owner upon creation.

2.  Avatars now always know the location of their owner and will attempt
    to seek to their owner if they fail to seek their current target.

3.  Avatars not created by the player see their owner as the "foe" to
    fall back to instead of the player.  Using the owner for mon->foe
    when the avatar cannot attack (in the case of spectral weapons) is
    perhaps not the best system, but it's how non-avatar player-friendly
    monsters are currently able to track the player, so we use the
    analogous approach now.

4.  Spectral weapons are all properly "leashed" to their owner and fall
    back to seeking owner if they are out of their two-distance leash.
    Battlespheres also seek back to their owner if said owner is
    teleported away.

--------------------------------------------------------------------------------
6a3835bcdb | Neil Moore | 2014-02-09 10:54:45 -0500

Make Ignite Poison affect poison clouds again (#8115)
Some unprecedented logic in fa88923 made ignite poison think it was
just a tracer whenever it processed a poison cloud (noxious was fine).

--------------------------------------------------------------------------------
6abd75bc2e | Neil Moore | 2014-02-09 10:38:50 -0500

Allow Nemelex worshippers to sacrifice misc items again.

--------------------------------------------------------------------------------
2a6e878bc9 | Pekka Lampila | 2014-02-09 13:50:36 +0200

Fix Snakebite curare affecting the user instead of target. (wheals)

--------------------------------------------------------------------------------
c7bb7542b9 | tenofswords | 2014-02-08 21:35:53 -0500

More abyss set tweaks.
Give and take approach to the weightings, mostly, as before.

--------------------------------------------------------------------------------
3790cdf347 | tenofswords | 2014-02-08 21:08:51 -0500

Change three lines instead of deleting a vault.

--------------------------------------------------------------------------------
1bbbf9baf2 | Brendan Hickey | 2014-02-08 17:48:31 -0800

Remove hangedman_stone_soup
This vault has an inappropriate spawn list for its location.

--------------------------------------------------------------------------------
52462b13bd | Neil Moore | 2014-02-08 19:14:02 -0500

Don't crash when sirens sing near occupied water.
If there is deep water in LOS radius of the siren, but all the cells
have an actor, siren_song would crash as it tried to access element 0 of
the empty deep_water array.  Likewise if there were unoccupied cells but
we tried to place more drowned souls than there were cells.

See for example:
  http://dobrazupa.org/morgue/johnnyzero/crash-johnnyzero-20140208-225441.txt

--------------------------------------------------------------------------------
56b5fcd115 | Chris Campbell | 2014-02-08 23:54:47 +0000

Add a player version of the Demonspawn Black Mark spell to the negative energy 
facet
It replaces the second level of rN+ in that facet, giving melee attacks a
chance to apply antimagic/weakness/draining and a vampiric effect.

--------------------------------------------------------------------------------
338a552c72 | Chris Campbell | 2014-02-08 23:54:46 +0000

Adjust some mutation names on %

--------------------------------------------------------------------------------
dc1dc17bba | Chris Campbell | 2014-02-08 23:54:45 +0000

Slight adjustments to power, timeouts and messages for RMsl/DMsl
Use the same formula for chance of expiry for RMsl/DMsl (the power cap
and chance to actually succeed differentiates them), slightly randomise
the timeout when expiring (possibly they should just expire immediately?).

--------------------------------------------------------------------------------
8db4b04990 | argonaut | 2014-02-08 23:54:44 +0000

Give Repel/Deflect missiles a chance to expire per deflection instead of a 
duration
They are kept as (short) durations but don't decrement while the corresponding
attribute is set. Each deflection has a chance to clear the attibute -
starting the duration countdown.

--------------------------------------------------------------------------------
4865464902 | Chris Oelmueller | 2014-02-08 23:54:42 +0000

Remove `drop_mode` setting and in-game toggle for `single` behavior
The setting itself went largely unused with a few exceptions for bot
configurations, and the toggle (either @ or Ctrl-D in the drop menu)
added nothing to the interface: It was intransparent and probably not
known to a single player out there. Like with the pickup menu, what was
old `multi` is the far superior interface, and unlike with pickup it
also has been the default for a long time.
For quickly (interface-wise) dropping items, there still exists `D` to
drop your last pickup, but even that is rather prone to input errors.

--------------------------------------------------------------------------------
99f2d0bf9d | Nikhil Addleman | 2014-02-08 23:54:41 +0000

alphabetize monsters.txt

--------------------------------------------------------------------------------
528393db6b | Chris Campbell | 2014-02-08 23:54:40 +0000

Don't give distortion effects when rebranding a distortion weapon under Lugonu 
(#8116)

--------------------------------------------------------------------------------
45e8be8d7f | Chris Campbell | 2014-02-08 23:54:39 +0000

Reduce Nemelex's wonders weighting
Since now items that used to give dungeons weighting give wonders weighting
instead.

--------------------------------------------------------------------------------
8293e19bb6 | Chris Campbell | 2014-02-08 23:54:38 +0000

Allow sacrificing the horn of Geryon to Nemelex
Since it's not used to open Hell portals now.

--------------------------------------------------------------------------------
ac2630498c | Chris Campbell | 2014-02-08 23:54:37 +0000

Don't give XP for clearing out ballisto colonies
200 XP was often a significant amount of experience early on, which was
problematic as a reward for something with no real risk attached. Most of
the time, clearing out the fungal colony would just mean killing a single
spore and one or two ballistos nearby, and even on occasions where a
larger number of ballistos spawned, clearing them out could be safely done
after other nearby monsters are dead.

--------------------------------------------------------------------------------
67f2127344 | Steve Melenchuk | 2014-02-08 16:52:31 -0700

Credit drowned soul deaths properly.
"Slain by" just doesn't cut it, much like "blown up by" didn't.

--------------------------------------------------------------------------------
b6eccc4df8 | Steve Melenchuk | 2014-02-08 16:38:17 -0700

Some Hell entries and Vestibule subvaults.
The Hell entries are a bit old, but still workable.

--------------------------------------------------------------------------------
2744279030 | Steve Melenchuk | 2014-02-08 16:37:40 -0700

Turn vestibule_of_hell into subvaults for the other map.
...now called vestibule_of_hell_subvaulted (formerly
vestibule_of_hell_mu).

The Geryon area and vestibule_of_hell_coc needed to be condensed
slightly to fit into this layout (in the former case two of the stairs
were moved inward slightly and in the latter case some water was
removed).

--------------------------------------------------------------------------------
095d98055d | tenofswords | 2014-02-08 15:22:23 -0500

Block plain/base demonspawn from polymorph/shapeshifters.
The unholy mix of demons and mortals is already a holiness swap
that polymorph cannot cross, and their weird hybrid state as well
as the whole current MH_LIVING status does not make it plausible
that shapeshifters could just instantly copy them; the status
is more mechanical than functional for this particular bit.

Blocking not-actually-used player-species-dummy-monsters from
vault use or polymorph is a worthwhile idea, but it's muddled
a bit by this most recent incursion of Ds onto shapeshifters;
this should make the overall change easier to go through,
especially with confusion over fasceted-demonspawn as monsters
or not compared to the non-fasceted, dummy "demonspawn" enemy.

--------------------------------------------------------------------------------
ac4717480a | tenofswords | 2014-02-08 15:09:47 -0500

Padding for Hell/Gehenna lava monsters, original Vestibule buff
Since exactly two monsters is awkward, throw in smoke demons
(which aren't actually placed in hells and shouldn't be terrible
when Gehenna will already destroy all scrolls) and molten
gargoyles into the lava set, alongside MONS_NO_MONSTER for
a bit of padding against absolutely flooding Gehenna with
fire elementals. Likewise, use a simulation lua function
for the lava pools in Vestibule in the same style as its water
monsters.

Also, since the subvaulted Vestibule places a lot of distinct
monsters per section, the original vestibule looks rather
weak in comparsion. Giving it just thematic "boss" enemies
from each section, to up the threat in a minimally-intrusive
manner.

--------------------------------------------------------------------------------
6d66493801 | tenofswords | 2014-02-08 14:23:23 -0500

Edit corrupter summons further
Some better branch reps with nicely nasty effects have come up
recently, so corrupters might as well get a few more ways try
and be dangerous jerks for extended/orbrun.

--------------------------------------------------------------------------------
5ab8ab6544 | Steve Melenchuk | 2014-02-08 11:40:30 -0700

Ultra-basic Hell lava enemy set (tenofswords).
Probably could use more enemies.

--------------------------------------------------------------------------------
d521b48419 | Steve Melenchuk | 2014-02-08 11:40:30 -0700

Don't attempt to make simulacra in lava in Hell.
Or other undead types - they're no longer fire-resistant.

--------------------------------------------------------------------------------
ecf3de2af8 | Steve Melenchuk | 2014-02-08 11:40:30 -0700

Nudge Snake lava spawn list.
Since base salamanders aren't greater naga threat level any longer, and
fewer lava snakes is probably a good thing.

--------------------------------------------------------------------------------
211950a05e | Steve Melenchuk | 2014-02-08 11:19:45 -0700

Let non-Natasha monster felids revive as well.
Contains handling to make sure they revive exactly twice (three lives in
total).

This is intended to be on hand for if one of the suggested uses of
monster felids goes through.

The code for this will need updating if/when we get other enemy felids.

--------------------------------------------------------------------------------
e27c932d66 | Steve Melenchuk | 2014-02-08 11:18:56 -0700

Pad the lava enemy spawn lists a bit.
These are enemies that have been suggested for this by others (mostly
tenofswords for fire bats and fire elementals) or appear in this context
in vaults (fire elementals and fire vortices).

This should be less boring than lava worms and lava snakes everywhere.

--------------------------------------------------------------------------------
0f8acbfc5e | tenofswords | 2014-02-08 13:16:12 -0500

Modernize river_lethe
Aside from having one of the messiest headers I've ever read, Lethe
is very awkward nowadays, with a lot of weakling "annoyance" monsters
interspersed around the level (aside from a few buffed seperately) and
now reliably has more dangerous generic floor spawns than vault
content due to the push from the minimum D:16 depth to essentially D:22.

This gives it a set revamp, most-deserving-of-explanation a shift
from simulacra to mostly spectrals due to simulacra starting to
be overused in vaults, and mostly buffs for the depth.
There's also a few NSUBST uses to guarantee some min/max average
of specific spawns, including (slightly) less regular floor spawns
without OODs and more-thematic weaker water monsters: this should
thus tip the scales over to the vault's content being dangerous
alongside regular (mean) spawns instead of just regular monsters
supported by mostly "annoyances".

The vault header reorganization also includes catching some long-lost
intended concepts for the map, like the second OCS behind plants
as was mentioned by the header and crystal in the lich/fiend room.

Finally, I've tweaked the vault's overall item, terrain, and monster
placements, while I'm here and being picky. Most generously,
there's always some restore abilities in the vault.

--------------------------------------------------------------------------------
55717bb55b | ontoclasm | 2014-02-08 12:00:13 -0600

Fix some rims

--------------------------------------------------------------------------------
f14a738534 | Steve Melenchuk | 2014-02-08 10:42:57 -0700

Tiles: show shields on vault guards and most related enemies (dck).
Not vault sentinels, because their tile has a horn in the off hand.

--------------------------------------------------------------------------------
095580861b | ontoclasm | 2014-02-08 11:42:09 -0600

MEATLORD was actually THE UNSPEAKABLE

--------------------------------------------------------------------------------
ab90ceb25b | ontoclasm | 2014-02-08 11:32:22 -0600

Move tall tiles to the beginning of player.png
This saves a bit of wasted space by putting them all together on one line.

--------------------------------------------------------------------------------
7c074881b7 | ontoclasm | 2014-02-08 11:23:59 -0600

MEATLORD tile (Bloax)

--------------------------------------------------------------------------------
ac10382eb9 | Steve Melenchuk | 2014-02-07 22:52:56 -0700

Make Dith's base piety gain 2/3 other gods (was 1/2).
Again, bonus from fiery/illuiminating has been kept.

--------------------------------------------------------------------------------
7d54a282b9 | Pekka Lampila | 2014-02-08 04:55:10 +0200

Fix a missing escape in chat linkify

--------------------------------------------------------------------------------
ccdc6b2fd1 | Steve Melenchuk | 2014-02-07 19:07:46 -0700

Fix DGL compilation.
Broken by b36e17b.

--------------------------------------------------------------------------------
1408ae1a8c | Pekka Lampila | 2014-02-07 23:30:18 +0200

Add a missing Drowned Soul entry to dc-mon.txt

--------------------------------------------------------------------------------
1f906af091 | ontoclasm | 2014-02-07 12:59:48 -0600

Drowned soul tile

--------------------------------------------------------------------------------
d48d846bc5 | elliptic | 2014-02-07 12:01:15 -0500

Fix off-by-one error in automagic.lua.
It didn't recognize 'z' as a valid spell slot.

--------------------------------------------------------------------------------
1f1d14c5a1 | Steve Melenchuk | 2014-02-07 09:53:57 -0700

Let Xom Chain of Chaos properly (#8112).
Oops.

--------------------------------------------------------------------------------
8ba11afe39 | Pekka Lampila | 2014-02-07 14:07:14 +0200

Run cheaper test first in WebTiles monster list update.

--------------------------------------------------------------------------------
0345eb9e46 | Pekka Lampila | 2014-02-07 13:50:23 +0200

Remove a pointless and expensive test from WebTiles minimap update.
In a quick test this cut the rendering time by a third when switching
between two fully mapped Shoals levels.

--------------------------------------------------------------------------------
00bf170dbd | Pekka Lampila | 2014-02-07 12:53:24 +0200

Disable tile_water_anim on WebTiles by default.
Hopefully this helps with the sluggishness of heavy water areas, like
Shoals and Swamp.

--------------------------------------------------------------------------------
48e56a8bf1 | Pekka Lampila | 2014-02-07 12:53:23 +0200

Add tile_misc_anim option for both local tiles and WebTiles.

--------------------------------------------------------------------------------
ea8347c74b | Pekka Lampila | 2014-02-07 12:53:23 +0200

Fix tile_water_anim to actually only affect liquids.

--------------------------------------------------------------------------------
dcb1a19624 | Pekka Lampila | 2014-02-07 12:53:23 +0200

Add support for tile_water_anim in WebTiles

--------------------------------------------------------------------------------
73f4e9bb2d | Chris Campbell | 2014-02-07 06:04:16 +0000

Move key_changes.txt into docs/obsolete
It dates from 0.4/0.5 and is pretty unlikely to be relevant information to
anyone browsing the docs.

--------------------------------------------------------------------------------
5fe3fd9120 | tenofswords | 2014-02-06 19:32:11 -0500

Remove plain merfolk bands from Depths mf impalers, javelineers
A bit of a hack, but this should avoid the mundane-by-this-depth
plain merfolk band members wandering away from the water in the
first place to get some of the original design intent back and
also reduce Depths water monsters in numbers a bunch.

--------------------------------------------------------------------------------
910d4a943b | Steve Melenchuk | 2014-02-05 22:00:32 -0700

Draconian monks don't try to use weapons (tenofswords).

--------------------------------------------------------------------------------
ae565b31b5 | Steve Melenchuk | 2014-02-05 21:41:47 -0700

Remove an apparently spurious and issue-causing handle_seen_interrupt().
Having this here causes groups of monsters that spawn in LOS, such as
those from divine wrath, hell effects, or occasional orb run spawns,
print one "comes into view" message per monster.

If this turns out to cause problems, we can easily add it back in.

--------------------------------------------------------------------------------
7453b3a2eb | tenofswords | 2014-02-05 22:18:06 -0500

Buff, speed up, move around metal gargoyles, rename to war gargoyles
For monsters partially representative of one of the strongest current
races plus primarily Dis:$ spawns, metal gargoyles are quite weak.
While low health and few resists lets them be much more palatable
as part of the group of slow, high defense pure-melee monsters, said
group is very full and these serve as autofight-material at best.
Thus, this patch gives them buffs to fit into a particular niche:
fast, high ac, low hp, nasty ranged.

This renames metal gargoyles and uses a flavour of explicit
smithing preperation to buff their speed, give them maces, and lets
them use a slightly weaker form of iron dragon metal splinters.
Of course, there are also a few general stat buffs: rough health
of deep troll shamans, the damage of merfolk impalers, see invisible.
Imagine them as stone giants with halved health and less melee damage
in exchange for haste, mild resists, weapons, and golem-level AC.

It also adjusts their vault uses, and puts them as rare Vaults OOD
spawns for both more V to D distinction and extra flavour.

Further monster gargoyle changes echoing this would be appropiate;
molten gargoyles with lava breath and higher HD for AF_FIRE to
address the low focus on fire damage in Gehenna, rare occasional
plain gargoyles a little harder hitting. Using these gargoyles to
replace most iron golem uses would also be worthwhile; this was
recently prompted by getting something to replace some vault golems
with.

TODO: Get a new tile that can show weapons or at least _a_ weapon.

--------------------------------------------------------------------------------
b2abc3bc88 | Steve Melenchuk | 2014-02-05 17:54:59 -0700

Normalise Makhleb's Destruction ranges (elliptic).
All of Minor Destruction's zaps go out to range 8 (this only impacts
Stone Arrow), and all of Major Destruction's zaps go out to range 6
(roughly the average of all the old zaps).

Partly inspired by this tavern thread:
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=10836

--------------------------------------------------------------------------------
b3f1a01d63 | tenofswords | 2014-02-05 18:06:03 -0500

serial_magic_research edits
 * Use stone glass over grates, remove room windows.
   Grates are too weird for the minimal flavour benefits involved,
   mechanics-wise, and there are some awkward combinations between
   dangerous rooms spread throughout a level and peek-in glass.
 * Monster tweaks, including cuts and replacements for many immobiles,
   some golems, some spiny worms, plain jellies, and reductions to
   eidolon and golden eye use. Some newer monsters are used in their stead.

--------------------------------------------------------------------------------
cc99c7caf7 | Pekka Lampila | 2014-02-05 21:11:13 +0200

Stop timers in menu.js on game cleanup.
This caused the exit game dialog to be closed immediately if in-game
menu was open during a crash.

--------------------------------------------------------------------------------
44d8542348 | Pekka Lampila | 2014-02-05 20:22:27 +0200

Include assert message and crash log in WebTiles exit dialog.

--------------------------------------------------------------------------------
c31a69ddf4 | Pekka Lampila | 2014-02-05 11:13:17 +0200

Mention morgue_url and autologin in config.py

--------------------------------------------------------------------------------
673455c31a | Pekka Lampila | 2014-02-05 11:13:16 +0200

Add URL to chat when a manual character dump is done.

--------------------------------------------------------------------------------
002eafddd1 | Pekka Lampila | 2014-02-05 11:13:15 +0200

Include a link to character dump/morgue in exit game dialog.

--------------------------------------------------------------------------------
b36e17b1ac | Pekka Lampila | 2014-02-05 11:04:10 +0200

Display a dialog on WebTiles after the game ends.
For players this is displayed in a case of a crash/error/unexpected end.
For watchers the dialog is displayed regardless of how the game ended.

--------------------------------------------------------------------------------
c8a42037c7 | Chris Campbell | 2014-02-05 07:02:16 +0000

Improve explosive bolt damage and scaling with power

--------------------------------------------------------------------------------
ec27df6146 | Chris Campbell | 2014-02-05 07:00:57 +0000

Add a targeter for explosive bolt

--------------------------------------------------------------------------------
1805ccd11c | Chris Campbell | 2014-02-05 06:22:08 +0000

Reduce explosive bolt's level to 6
Level 7 makes it fairly rare to be able to get 2 shots out of a fully
charged rod.

--------------------------------------------------------------------------------
cac39d8126 | Chris Campbell | 2014-02-05 06:22:01 +0000

Replace rod of fiery destruction spells with explosive bolt

--------------------------------------------------------------------------------
78350313b4 | Chris Campbell | 2014-02-05 06:20:39 +0000

Revert "Adding Over 100 percent fails to spell descriptions"
This information was much more likely to just be confusing than to ever be
helpful, with spells above 100% fail rate being so far away from being usable.

This reverts commit d8f276cafa12f398840a0ddaa43c9495a76d16e5.

--------------------------------------------------------------------------------
a72d94a27c | Chris Campbell | 2014-02-05 04:48:58 +0000

Don't randomise the Serpent of Hell's HP
Fix it at 160.

--------------------------------------------------------------------------------
5aee7720d2 | Neil Moore | 2014-02-04 20:15:45 -0500

Don't crash when cycling features near the map edge with LRD.
See for example:
  
http://crawl.akrasiac.org/rawdata/hustleandflow/crash-hustleandflow-20140205-004
513.txt

To reproduce: memorise LRD, go near the edge of the map away from any
portals, start to cast LRD and press <Tab> in the targetter.  It doesn't
seem to happen with other spells, even Conjure Flame.

--------------------------------------------------------------------------------
ffe09b4066 | Steve Melenchuk | 2014-02-04 14:21:53 -0700

Fixup a couple of SoH inconsistencies in mon-info.
This was causing the name to sometimes display with the "the" in monster
and sometimes not; now it consistently does not.

--------------------------------------------------------------------------------
9bc3f90c7b | Steve Melenchuk | 2014-02-04 14:21:53 -0700

Allow specifying Serpent of Hell subtype in spec again.
Instead of using soh_flavour:, just specify the branch immediately after
"serpent of hell" either in full or abbreviation, e.g. "serpent of hell
tartarus" or "serpent of hell coc".

Mostly for use with the monster program, but vault makers needing a
specific Serpent (sprint, anyone?) can do so now.

--------------------------------------------------------------------------------
99f7917a84 | elliptic | 2014-02-04 15:31:06 -0500

Make failure_rate_to_int return more sane values.
The only effect of this is that the "failure rate" shown when examining a
100% fail spell should be a bit more useful now, since it is now linear
in stuff like intelligence and skills rather than cubic. Also, the cubic
formula overflowed an int and gave garbage like "Guaranteed Fail: 1%"
in extreme cases.

I still don't much like displaying >100% failure rates in the first
place, though. It's intrinsically nonsensical and of very limited use to
the player.

--------------------------------------------------------------------------------
44befe3f36 | Steve Melenchuk | 2014-02-04 12:59:03 -0700

Set natural_leader for Vashnia's band.
Oops.

--------------------------------------------------------------------------------
9e330ec840 | Steve Melenchuk | 2014-02-04 11:27:08 -0700

Magically-penetrating projectiles pierce through shields.
Thus, bolts of penetration (and arrows of penetration from Piercer), but
not large rocks.

In my brief testing this is not extremely noticeable, but the times when
it is should make all the difference.

--------------------------------------------------------------------------------
45efeda419 | Steve Melenchuk | 2014-02-04 10:36:24 -0700

Halve base Dith piety gain from kills.
i.e. the additive modifier for fiery/illuminating enemies is still the
same, but the base gain for kills is cut in half.

Prior to this it's been too easy to earn and maintain Dith piety, which
is bad in light of the power of some of Dith's abilities.

This may be *too* much of a nerf - we'll have to see how this pans out.

--------------------------------------------------------------------------------
94aeabdc11 | Steve Melenchuk | 2014-02-04 10:17:47 -0700

Salamander enemy tiles (roctavian, #8097).

--------------------------------------------------------------------------------
d1821b33a7 | Steve Melenchuk | 2014-02-04 10:17:47 -0700

Natasha tile (roctavian, #8087).

--------------------------------------------------------------------------------
cb2a55af3d | Pekka Lampila | 2014-02-04 18:58:16 +0200

Fix two typos in the changelog (alefury)

--------------------------------------------------------------------------------
4669791123 | Pekka Lampila | 2014-02-04 13:23:29 +0200

Avoid sending extra go_lobby message to the server

--------------------------------------------------------------------------------
6b3afca1b3 | Pekka Lampila | 2014-02-04 08:43:40 +0200

Fix curare source and target being switched. (wheals)

--------------------------------------------------------------------------------
1d11b85fce | ontoclasm | 2014-02-03 22:56:07 -0600

Drop the BOM

--------------------------------------------------------------------------------
48f466c3fb | Steve Melenchuk | 2014-02-03 21:46:23 -0700

Show shields on Asterion in tiles.

--------------------------------------------------------------------------------
4d8aab60e2 | ontoclasm | 2014-02-03 22:36:14 -0600

Fix an Asterion typo

--------------------------------------------------------------------------------
f3bcadf8f1 | Steve Melenchuk | 2014-02-03 21:27:30 -0700

Don't let cold beams slow hydras (78291).
Accidentally introduced by 25c0530.

This is consistent with their lack of effect against the player (if
they're a draconian) and their behaviour before this commit.

--------------------------------------------------------------------------------
fcb018f3d6 | ontoclasm | 2014-02-03 22:21:46 -0600

Asterion Tile
Heavily based on the tile submitted by lingerstink in issue 4032.  Thanks
lingerstink!

--------------------------------------------------------------------------------
82bc141d34 | gammafunk | 2014-02-03 19:39:46 -0700

Give Frances an armour class upgrade.
Her base AC is 0 and she currently always gets a good_item robe.  This removes
the good_item but gives her equal chances of leather armour, ring mail, scale
mail, or chain mail without always good_item.  Having a bit more AC should help
her survive melee better than she has been, and her tile certainly suggests that
she has heavier armour.

--------------------------------------------------------------------------------
4d98f7e0bf | gammafunk | 2014-02-03 19:39:45 -0700

Give Asterion a little better armour.
Before he was generated with an always good_item robe, now he gets the same as
Rupert: equal chances of leather armour, ring mail, scale main, and chain mail
with no guaranteed good_item.  His HP was increased by 25% recently, which will
help him survive a few more successful melee attacks, but giving him a
(variable) AC increase should modestly extend his staying power as well.

--------------------------------------------------------------------------------
fa6e5f1da1 | Steve Melenchuk | 2014-02-03 19:38:39 -0700

Nonbase draconians also inherit base aux attacks.
This impacts green and grey draconians.

--------------------------------------------------------------------------------
4fb204cdc7 | Steve Melenchuk | 2014-02-03 19:16:52 -0700

Derive nonbase draconian AC, EV, MR from base types.
It was odd that grey draconian annihilators didn't have more AC than red
draconian annihilators, and the same MR as purple draconian annihilators.

Now they have the AC, MR, etc. that you'd expect.

--------------------------------------------------------------------------------
3f81d65cb1 | Chris Campbell | 2014-02-04 01:59:13 +0000

Typo fix in Natasha description

--------------------------------------------------------------------------------
4c75a1cb04 | Chris Campbell | 2014-02-03 21:12:50 +0000

Tweak an Axe of Woe message

--------------------------------------------------------------------------------
816072234f | Chris Campbell | 2014-02-03 20:58:29 +0000

Remove trove_artefacts
It was very awkward to keep up-to-date, and originated in a time when
unrands were a lot rarer than they are currently.

--------------------------------------------------------------------------------
9631014b76 | Chris Campbell | 2014-02-03 20:58:28 +0000

Additional unrand tweaks to Snakebite and Leech
Make Snakebite a regular whip again, but increase to-dam and apply curare
on 2/5 hits, and reduce Leech's to-dam in exchange for the guaranteed
vampiric effect.

--------------------------------------------------------------------------------
d2e94d32f2 | wheals | 2014-02-03 20:58:26 +0000

Make some unrands more interesting, bring back two
* Make Zhor have rC+++ (as it is it has some trouble competing with a robe of
resistance)
* Make Leech drain hp on all hits, rather than 3/5ths like other vampiric
weapons
* Bring back Sniper: it's a +15 vorpal crossbow with slower fire (ranged dark 
maul)
* Bring back Snakebite: it's a +5 venom dwhip that curares the defender on 1
out of 5 hits
* Make the Singing Sword a bastard sword (this is fairly big buff, but it still
has no brand)
* Remove Bullseye, give Gong 21 more SH and 5 less EV (remaining a normal-sized 
shield)

--------------------------------------------------------------------------------
f745ed05d1 | Steve Melenchuk | 2014-02-03 13:22:02 -0700

Fix ridiculous salamander firebrand energy entry.
It was effectively speed 10 for everything but moving and swimming,
so now it actually is speed 10 for everything but moving and swimming.

I've tried to keep move/swim speed roughly the same, but (10/(8/7)) =
8.75 and (10/(8/6)) = 7.5 are hard to represent properly for moving and
swimming respectively; I've assigned them values 9 and 7 respectively
for now.

--------------------------------------------------------------------------------
8b25d41420 | Neil Moore | 2014-02-03 14:58:21 -0500

Do show enchantment for hides that aren't +0 (Implojin)
I neglected to consider corrosion, which could bring a hide down to -1
even if that's not very likely.

--------------------------------------------------------------------------------
1c17fde894 | Neil Moore | 2014-02-03 14:37:03 -0500

Display rN in xv even for nonliving monsters (#8098)
monster_info objects did not property take into account the negative
energy immunity inherent in being anything but MH_NATURAL.

--------------------------------------------------------------------------------
296184e759 | Neil Moore | 2014-02-03 13:30:43 -0500

Add a warning to the save compatibility documentation.
An entire section warning people to be careful around merges.
Merge-related enum problems have happened at least twice in the past
year and can be very tricky to fix once they are caught.  Sometimes
git is too smart for us.

At some point we should develop a protocol (and git hooks) for detecting
and preventing accidental reordering of saved enums.

--------------------------------------------------------------------------------
186583a246 | Steve Melenchuk | 2014-02-03 11:03:57 -0700

Let Natasha reviving work properly in arena.
If she's on the friendly side she respawned on the wrong side.

--------------------------------------------------------------------------------
5b26dac504 | Steve Melenchuk | 2014-02-03 10:56:44 -0700

Changelog through 0.14-a0-2411-g037c4a0.
The usual disclaimers apply.

--------------------------------------------------------------------------------
037c4a069b | Steve Melenchuk | 2014-02-03 10:23:15 -0700

Fixup a spell description (wheals).

--------------------------------------------------------------------------------
380a7a57cc | Steve Melenchuk | 2014-02-03 10:15:48 -0700

Increase the chance for Aizul to appear in Snake.
He *is* based on an enemy that appears primarily in Snake, outcast or
not.

--------------------------------------------------------------------------------
03e8a7adeb | Steve Melenchuk | 2014-02-03 10:14:54 -0700

Touch-up to Vashnia tile (þuþþy).

--------------------------------------------------------------------------------
c38a8f9b01 | Steve Melenchuk | 2014-02-03 10:14:54 -0700

Unique: Vashnia, leader of the elite marksnaga squad.
An HD 16 naga sharpshooter who also comes with various Blink spells,
inherent Phase Shift, and a Shroud of Golubria that she can renew if it
gets broken.

Appears on Snake:2-.

Historical note: Vashnia's original design had Disjunction as an escape
spell; currently the escape spell is Blink Other, which accomplishes
basically the same thing but with less visual impressiveness. Perhaps at
a later date the possibility of this can be revisited.

--------------------------------------------------------------------------------
0d6a4c4d1c | Steve Melenchuk | 2014-02-03 10:14:54 -0700

Monster Shroud of Golubria spell, effect and M_SHROUD.
The spell is infinite duration for monsters; M_SHROUD starts the monster
with one.

The ability to cast the spell is only really intended for monsters that
start with the spell so that they can renew it.

--------------------------------------------------------------------------------
68e4d12a99 | Steve Melenchuk | 2014-02-03 10:14:54 -0700

Monster spell: Blink Allies Away.
Blinks allies near the monster's opponent to be less near the opponent.

Great for ranged packs.

--------------------------------------------------------------------------------
b782f2db74 | Neil Moore | 2014-02-03 12:13:22 -0500

Don't show enchantment on hides (XuaXua, galehar)
Since it's always +0 and always known.

--------------------------------------------------------------------------------
e212a5497d | Neil Moore | 2014-02-03 12:09:35 -0500

Also identify hides generated on the ground.

--------------------------------------------------------------------------------
3e27d548ba | Implojin | 2014-02-03 12:04:11 -0500

Automatically identify chopped hides.
Add an extra step in _create_monster_hide to automatically identify
chopped dragon and troll hides. Hides are already always generated as +0
uncursed, so identifying them automatically removes both a spoiler and an
unnecessary step of forcing the player to wear or ?identify dragon
armours that they have created specifically to enter a trove.

--------------------------------------------------------------------------------
e836774619 | Steve Melenchuk | 2014-02-03 09:40:21 -0700

Buff Asterion's HP.
Up to 150 from 120.

It seemed really odd that a unique born and bred for killing and
inherently more robust than humans only had as much HP as similarly
fighty humans with about the same HD (cf. Maud, HD 13 and 118 HP, or
Frances, HD 14 and 121 HP); 120 HP is also at the top end of the range
for fire giants or frost giants (both HD 16).

This is partially motivated by initial reports that Asterion isn't very
interesting to fight (yet?). If this proves to be wrong, and/or this
goes too far in the other direction, we can always tinker with him
further.

--------------------------------------------------------------------------------
9859aaebbf | Steve Melenchuk | 2014-02-03 09:28:45 -0700

Touch-ups to Natasha.
Lower her HP (in her normal state she started with 21 HP - more than
Crazy Yiuf! - so now she starts with 15 HP and goes down to 10 and 5 on
her successive incarnations), and have her only *move* quickly rather
than act quickly like player Fe (move delay 0.8 like players).

--------------------------------------------------------------------------------
b2944a8389 | tenofswords | 2014-02-02 22:30:19 -0500

Give pan lords rare quicksilver bolt, orb of elec
Hand newly-spellified orb of electricity to pan lord in the same
slot they get extra rare chances for storms and hellfire. It's still
highly damaging and direct even with the collateral damage, so
it should be fine compared to the blocked Conjure Ball Lightning
and Ozocubu's Refrigeration; ice storm is still in the list, etc.

Also, since extra IMB is really silly on a Pan Lord, give them
one of the few nasty "spare" monster spells left, quicksilver
bolt, for extra rather rare terror, instead.

--------------------------------------------------------------------------------
bf99bd3d0d | Steve Melenchuk | 2014-02-02 18:10:10 -0700

Don't let player spell-like abilities trigger Sap Magic (tenofswords).
This includes rods, Beogh smiting, and demonspawn hellfire.

--------------------------------------------------------------------------------
2a327616d6 | tenofswords | 2014-02-02 19:35:20 -0500

Fix accidental permarock placements (wheals)
Forgot some commas, which ends up placing permarock due to
using X as a substitution glyph. Tisk tisk, self.

--------------------------------------------------------------------------------
b28c355a07 | tenofswords | 2014-02-02 19:16:56 -0500

Fix compilation, five vaults (Cheibrodos, #8009).
An overflow altar for Chei and another for Ash,
a minivault with a gnoll and a minivault with an orc knight,
a 098 ORIENT: float vault. Minor edits from the submission
for most, but the floating vault gets a big NSUBST to prevent
it from placing something like 70 monsters for one D:14 vault.

Also, fix placing 'treants' instead of 'shambling mangroves', whoops.

--------------------------------------------------------------------------------
dda7ece93b | tenofswords | 2014-02-02 17:59:14 -0500

Buff the two plain no-Lernaean Swamp:$ vaults with new Swamp jerks
It is somewhat sad that the least gimmicked, no-outsiders
Swamp:$ rune vaults are the weakest of the lot by far considering
said context of most of Swamp:$s relying on monsters that don't
even spawn in Swamp. As such, with newly-buffed spawns throughout
the branch, grab the three of the most dangerous ones (thorn hunter,
spriggan druid, and treant) and put in two of any combination of
these for "swamp" and swamp_alternative alongside the default
mess of hydras and swamp dragons. Each is not only a mean threat
by itself but also synergize well with company, so it should
play fine.

--------------------------------------------------------------------------------
0a5c2a88cd | Raphael Langella | 2014-02-02 21:47:31 +0100

Don't prevent autoexplore to stop at altars in the temple.

--------------------------------------------------------------------------------
668c098881 | Raphael Langella | 2014-02-02 21:46:56 +0100

Display the monster and any weapon change in fsim.

--------------------------------------------------------------------------------
2e94a5d373 | tenofswords | 2014-02-02 13:52:06 -0500

Zigs: More recently added/tweaked monsters, new conjurers set
White draconian knights for ice set, naga sharpshooters for ranged,
shock serpents for air, super-rare corrupters for Abyss, extra
water nymphs for Shoals. Also, shove into Lair zig what should
round out into representing every current lair end vault besides
frog_pond (which gets inherent rep anyway) and the fire dragons
(which clearly were upgraded into hellephants here).

Also, another new set, of the game's main conjurations-focused
enemies. Weird, but a coherent threat with lots of variety.

--------------------------------------------------------------------------------
356f176847 | Neil Moore | 2014-02-02 12:42:46 -0500

Don't subtract then re-add gold with Alchemist card (#8065)
However, don't wait until the end to subtract it, or a well-timed HUP
could give the benefit (HP or MP) for free.  Instead, subtract the gold
immediately on giving each benefit.

--------------------------------------------------------------------------------
d8f276cafa | Keanan Smith | 2014-02-02 12:41:02 -0500

Adding Over 100 percent fails to spell descriptions

--------------------------------------------------------------------------------
4035d9372d | pubby | 2014-02-02 12:21:09 -0500

Fix make_irregular_box door glyph.
It was always using '+' instead of the door_glyph parameter.

--------------------------------------------------------------------------------
fca55e514a | Pekka Lampila | 2014-02-02 17:38:48 +0200

Keep rPois ring on autopickup even after finding one for Fo

--------------------------------------------------------------------------------
91fcd9b424 | Neil Moore | 2014-02-02 02:45:25 -0500

Adjust formicid enemy digging speed.
Unlike the player version, this does scale with speed.

--------------------------------------------------------------------------------
6cbae86d68 | pubby | 2014-02-02 02:43:24 -0500

Give Fo dig noise and hunger cost.
The noise is necessary to prevent extremely easy stabbing and escapes.
The hunger cost prevents players from digging out entire levels, but
also cancels the behavior properly when trying to dig while starving.

--------------------------------------------------------------------------------
7677c09424 | pubby | 2014-02-02 02:43:24 -0500

Make Fo digging faster.
0.2 AUT makes it closer to the power of the old dig.

Additionally, the extra AUT was made independant of movement speed,
which means Chei Fo can dig at 2.2 rather than 2.4

--------------------------------------------------------------------------------
3f6747c8e6 | Neil Moore | 2014-02-02 02:20:34 -0500

Formatting fixes.

--------------------------------------------------------------------------------
8eed16d19c | wheals | 2014-02-02 02:06:30 -0500

A felid unique, Natasha.
She is the familiar of a lost mage (Boris) who wandered into the dungeon in
search of the orb. She's effectively a XL3 FeWz, though I'm not sure if one
could actually get all the spell slots she does. As you might guess, she comes
back to life after she dies, losing 1 HD each time (blame Grunt for that idea).

--------------------------------------------------------------------------------
cf3e8c84c9 | wheals | 2014-02-02 01:55:36 -0500

Fix a bug where felids were speed 11 instead of 12.

--------------------------------------------------------------------------------
76ac57fb6f | Neil Moore | 2014-02-02 01:50:35 -0500

Actually count demonspawn as demonic for piety purposes.

--------------------------------------------------------------------------------
4cacdb496a | gammafunk | 2014-02-01 21:42:13 +0000

Rename all instances of "Orb of Electrocution" to "Orb of Electricity"
There were inconsistent uses of electrocution versus electricity in various
places.  This bike shed wasn't nearly as popular as overhauling monster glyphs,
but there was one vote for "electricity."  The enums, description strings, and
spell descriptions have all been updated accordingly.

--------------------------------------------------------------------------------
f2982066bf | Chris Campbell | 2014-02-01 20:21:05 +0000

Fix the @player_genus_plural@ speech key
It used its own (very out of date) pluralisation.

--------------------------------------------------------------------------------
d299ed19f6 | Chris Campbell | 2014-02-01 20:19:28 +0000

Add some Grum and Urug speech (coolio)

--------------------------------------------------------------------------------
a54fd10ecd | Chris Campbell | 2014-02-01 19:08:36 +0000

Replace a Donald speech line (ontoclasm)

--------------------------------------------------------------------------------
f038af6940 | tenofswords | 2014-02-01 13:21:46 -0500

Condense Dr knight spell sets into ice+necro+misc, buff damage
Draconian knights are the oddballs of the draconian classes; their
melange of spells from the set choice of deep elf conjurers, hell
knights, and necromancers may have been intended to be a stronger
version of the basics in hexes, buffs, and conjurations in orc
wizards and beyond, but over time with varied changes this mostly
amounts to inconsistent and weird spreads of conjurations, rare
charms, necromancy spells, and other oddities. They also were
weaker than orc knights in melee, which is a staggering comparsion
point when thus comparing something from Zot with a reference point
from Orc.

As such, I'm condensing the five spell sets into three mixed ones.
With Zot containing more than enough forms of fire, rather than focus
on the fire bias from hell knights, these knights now all have ice
conjurations, a necromancy spell, and self-aide in one of three sets:
 * bolt of cold, throw icicle, animate dead, bolt of draining, invis,
 * bolt of cold, throw icicle, agony, lightning bolt, vampiric draining,
 * bolt of cold, throw icicle, simulacrum, haste, ozocubu's armour.
Their melee is also buffed, but their highest-of-any-class-health
is cut into in its stead.

Draconian classes are odd cases in general, with high-health dangers
managing to blend together despite themselves due to their placement
amongst each other, somewhat interchangable and potentially
annoying bases, and in some cases rather generic forms of threat.
While making draconian knights not such a mess of random spells
is worthwhile in and of itself, the overall situation for Zot:1-4
still warrants more attention.

--------------------------------------------------------------------------------
4f2dacc6f8 | Pekka Lampila | 2014-02-01 09:59:26 +0200

Use JSON.parse instead of eval if available.
Also improve some error messages.

--------------------------------------------------------------------------------
91fe16b3ed | Pekka Lampila | 2014-02-01 09:59:23 +0200

Only send spectator JSON options after sending game client.

--------------------------------------------------------------------------------
e879b5e31c | Steve Melenchuk | 2014-01-31 20:33:12 -0700

s/hit_dice/spell_hd(...)/ in a few places.

--------------------------------------------------------------------------------
b513e8cf08 | Steve Melenchuk | 2014-01-31 20:33:12 -0700

Formatting fixes for some band code.

--------------------------------------------------------------------------------
b50788b52c | Steve Melenchuk | 2014-01-31 20:33:11 -0700

Refactor a bit of stabbing code.
The goto is completely necessary with the boots of the Assassin
functionality on hand.

--------------------------------------------------------------------------------
7728b38d72 | Pekka Lampila | 2014-02-01 05:16:10 +0200

Fix haste items not considered emergency items for VS (#8082)

--------------------------------------------------------------------------------
43a02e5b76 | Sage | 2014-02-01 03:47:03 +0200

Prevent /haste or haste spell from wasting your turn under stasis.
...Provided you know you are static (Fo or identified amulet of stasis).
Otherwise, the amulet whistles as usual and contaminates you a bit.

--------------------------------------------------------------------------------
9744063e7d | tenofswords | 2014-01-31 18:31:37 -0500

Make a custom generic zombie set for Crypt vaults, extended
The previous method of zombie creation, based on in-branch spawns
as are valid for zombies followed by whatever matches the same
absdepth, is inherently not going to work well when it means most
hells are stuffed with dragon zombies and Gloorx's level has only
demonspawn skeletons. This set-up will serve as the general zombie
base set for such spawns in Hells, Pan, Abyss, Tomb, and vault-placed
zombies in Crypt.

The weighting of monsters as bases is 26.25% giants, 28.75% dragons,
37.5% Lair and Lair roulette representatives (with three bases
alotted per branch), and 7.5% mostly-harmless player species
aside from the four with zero non-vault representation or the
six that aren't living (for flavour purposes). This should be
a reasonable enough and understandable enough set-up for what
one can find as a zombie in most of extended, and represents
most of the workable zombies.

(Cocytus thus has some weird settings where some zombies will
be patrolling water and some won't, but it'd be quite difficult
to ever notice this in-game considering it's Cocytus and thus
a Hell to be dived quickly through.)

--------------------------------------------------------------------------------
6b7c0aeb27 | Neil Moore | 2014-01-31 17:02:27 -0500

Don't crash when checking veto of MONS_NO_MONSTER (gammafunk)
Now pick_monster with a veto function rejects invalid monster types,
including the MONS_NO_MONSTER introduced in 0.14-a0-2238-g1766415 and
later to dilute monster spawning.  Ordinary spawns without the veto
are unaffected.

This fixes a crash with  "place:Shoals:3 zombie", and casting Shadow
Creatures in Shoals etc.

--------------------------------------------------------------------------------
d820172923 | Chris Campbell | 2014-01-31 19:39:34 +0000

Fix some Asterion speech lines

--------------------------------------------------------------------------------
66f6612f2a | Chris Campbell | 2014-01-31 19:34:34 +0000

Remove the unused Fumes mutation
Just creating clouds at random times was problematic, and a more
reasonable version of this now exists as a passive Dithmengos ability
instead (emit smoke when taking damage).

--------------------------------------------------------------------------------
6ec12ba372 | Neil Moore | 2014-01-31 14:11:30 -0500

Give Major Destruction SPFLAG_CHAOTIC.

--------------------------------------------------------------------------------
e2f114357d | gammafunk | 2014-01-31 14:11:29 -0500

Asterion, a late-game unique minotaur of Makhleb
He is themed as a bloodthirsty ruler cursed to become a minotaur who now
wanders the dungeon in the service of Makhleb and hoping to establish a
new kingdom in its depths.

The name is taken from ancient greek mythology, which was either the
name of the minotaur itself or of a king related to the minotaur:

http://en.wikipedia.org/wiki/Asterion

Thanks to SGrunt (the S is silent) for the idea of the name.

Stat-wise, Asterion is a minotaur, but with 15 HD, 120 HP, a 1d40
primary attack (instead of 1d35), and the only resistances I've added
are Sinv and high MR.  Experience and placement-wise he's the same as
Frances. He always gets a good demon weapon, large shield, and a robe.

Spell-wise, he has Makhleb's major destruct and spectral weapon.  The
major destruct code is basically identical to the player version: it
chooses randomly from 7 beam types, including orb of electricity, with a
range of 7.

[committer's note: Changed to ETC_FIRE (Makhleb altar colour) to
distinguish from plain minotaurs. There is a proposal to move tengu
thereby freeing up space on 'H', but I didn't want to tie this commit
to that change. Also improved the quote formatting and citation. -nfm]

--------------------------------------------------------------------------------
74625fffcf | Steve Melenchuk | 2014-01-31 11:40:56 -0700

Rework the monster Ozocubu's Armour effect and give back to Fannar.
Primarily, this introduces an M_OZOCUBUS_ARMOUR that pre-generates
tagged monsters with the enchantment already in effect and that does not
time out. The spell still exists, and also gives armour that doesn't
time out; this would be most likely to be used a monster that has
M_OZOCUBUS_ARMOUR.

Since the original implementation was for Fannar, it makes sense that
he's the first to get it back. I haven't touched his current spell set
because he's probably still going to die quickly enough that he won't
waste a turn casting it again.

--------------------------------------------------------------------------------
25c0530329 | Steve Melenchuk | 2014-01-31 11:40:55 -0700

Let beams melt monster icemail / Ozocubu's properly.

--------------------------------------------------------------------------------
2bf61e5745 | Neil Moore | 2014-01-31 12:30:59 -0500

Don't crash on debug scan when an exit feature is covered.
See !lm EightySix fofi crash -log  for an example.  Now we also check
the terrain change markers for the desired feature.

--------------------------------------------------------------------------------
192af8142f | Steve Melenchuk | 2014-01-30 22:37:27 -0700

Fix a minmax error with Blink Allies Encircling.
Probably introduced by yours truly.

It caused all uses to blink exactly one ally, so if shifters seemed less
threatening this is why.

--------------------------------------------------------------------------------
1e808ab244 | Chris Campbell | 2014-01-31 04:57:54 +0000

Give Flash Freeze a better damage calculation
To deal a little less damage than bolt of cold (since it's partially
irresistible and comes with the slowing effect, might need to be still
lower), instead of having Antaeus' flash freeze always deal 66d1 damage.

--------------------------------------------------------------------------------
d3235aa2e9 | Chris Campbell | 2014-01-31 04:57:53 +0000

Don't shadow mimic rod spells
Since no other evocables are mimicked.

--------------------------------------------------------------------------------
08548d2bf3 | Steve Melenchuk | 2014-01-30 21:03:27 -0700

Functionality for branch zombie lists (currently unused).
This is designed with the Hell zombie problem in mind, though recent
tweaks have also caused, say, Crypt to have problems with generating
zombies outside of _place_assorted_zombies() - right now it only
naturally generates deep dwarf zombies and elf zombies.

If you don't want to use it for a branch, just set the zombie list to
the basic monster list and the current behaviour is retained. That's the
case for all branches currently.

--------------------------------------------------------------------------------
c3eaa25662 | tenofswords | 2014-01-30 22:29:18 -0500

Don't double the chance of vamp quickblades in Crypt:$
Man, I make nothing but mistakes everywhere.

--------------------------------------------------------------------------------
c815b64430 | tenofswords | 2014-01-30 22:13:29 -0500

Don't place 68 vampiric weapons in evilmike_haunted_forest
Whoops, my bad.
Probably a little too good as an incentive for doing Crypt, heh.

--------------------------------------------------------------------------------
67a49ddb5e | tenofswords | 2014-01-30 21:06:20 -0500

New Zig Set: negative energy!
It's as much an element as fire, ice, and air, and this gets to
spam some current side-attractions for some interesting gains:
slowing-melee mp-draining-melee profane servitors and some
wonderful shadow fiend numbers. Use your damn rN+ already.

(If you're undead, this still isn't a breeze:
 three monsters serious monsters here have dispel undead.
This could really use a tiles icon for black mark, but whatever,
it's good enough to just always assume that servitor has it.)

--------------------------------------------------------------------------------
dfd5e5797c | tenofswords | 2014-01-30 20:23:29 -0500

Buff demonspawn enemy melee damage
Even if they're meant to be 'simple' fodder, the base demonspawn
generally had weaker melee than some (melee-focused) 4s, which is
silly when they're supposed to dillute Pan's slice of 3s and come
in bands with monsters that explicitly want good melee accompanying;
this gives just a minor buff to be able to approximate those melee 4s.
Also buffing the melee damage of the classes due to some non-melee
2s dangerous by spells still having better damage; most notably,
this should help black suns and chaos champions have a bit more
raw threat to themselves and further up warmongers to approximate
something of stone giant damage or whatever. Extended can take it.

--------------------------------------------------------------------------------
7e7b4d2297 | Neil Moore | 2014-01-30 17:38:37 -0500

Don't crash when a monster dies to barb damage.
We were looking up the monster's position after it died, and asserting
when we didn't like the (0,0) we received.

--------------------------------------------------------------------------------
34782b60df | tenofswords | 2014-01-30 13:18:51 -0500

Buff deep elf demonologists; swap summon 5 for another summon 2/1 slot
Deep elf demonologists were one of the hardest hit when the abjure-on-
summoner-death change happened, and while said change was good
these previous terrors have lost a bit of their lustre when they
don't even reliably get off a few turns of having a hellion around
before said hellion gets sent away again. As such, I'm removing their
cantrip-esque summon minor demon for another greater demon slot,
which should at least give them more of a chance.

--------------------------------------------------------------------------------
1ce7209620 | Chris Campbell | 2014-01-30 16:35:03 +0000

Remove training dummies from some vaults
These shouldn't be used outside the tutorial, since they're treated as
real monsters rather than firewood (autofight targets them, they prevent
autoexplore/travel, etc).

--------------------------------------------------------------------------------
d099a18359 | Chris Campbell | 2014-01-30 16:25:57 +0000

Use a regular y/n prompt for penance attacks, add message colouring
The full typed "yes" probably isn't necessary with the addition of the
extra warning and colouring of the message.

--------------------------------------------------------------------------------
140b27ce5d | Sage | 2014-01-30 11:10:22 +0200

Make warnings against penance-causing attacks more prominent.
The prompt to hit an enslaved creature differs very little regardless of
your god, even if it would cause penance with that god. This patch makes
such attacks require yes_or_no like walking into a Zot trap instead of
yesno, and explicitly states that it will cause penance with your god.
For reference, only betrayal attacks under Okawaru and the good gods,
attacking neutral creatures under Elyvilon or TSO, unchivalric attacks
under TSO, and plant betrayal under Fedhas is affected; attacks with
brands offensive to your god are not, and neither are attacks which
only cause piety loss.

--------------------------------------------------------------------------------
4067f67b76 | gammafunk | 2014-01-30 09:55:18 +0200

Add Wizard mode commands to identify/unidentify item types and level items.
This binds the commands to & y/Y.  We have & i/I, but that only affects
inventory items.  For various testing purposes, it's nice to be able to
mass-identify/unidentify all item types.  This command also
identifies/unidentifies all inventory items on the level, since items can refuse
to unidentify if they exist on the floor, and because level-item identification
is also a convenient thing to have.  We don't change the identification status
of off-level items.

--------------------------------------------------------------------------------
fb55b4fec7 | blackcustard | 2014-01-30 09:16:20 +0200

Document initfile.cc a little bit better.

--------------------------------------------------------------------------------
b8e70cca91 | blackcustard | 2014-01-30 09:16:17 +0200

Fix an example in the default configuration file.
Changing the variables used by the default options files after they have
loaded does nothing. So stop telling people to do it.

--------------------------------------------------------------------------------
5885d96ce7 | Pekka Lampila | 2014-01-30 08:54:18 +0200

Fix double "Okey, then." when canceling a throw

--------------------------------------------------------------------------------
c2bc827ef2 | blackcustard | 2014-01-30 08:51:23 +0200

Confirm Portal Projectile attacks against allies etc.

--------------------------------------------------------------------------------
8aec01e85e | Pekka Lampila | 2014-01-30 08:09:17 +0200

Allow training evocations when carrying the Elemental Staff

--------------------------------------------------------------------------------
c799e943ee | BlackSheep | 2014-01-30 07:57:48 +0200

Let elemental staves enable training Evocations
Also fix unknown staves allowing Evocations training.

--------------------------------------------------------------------------------
8df0fbc07b | Sage | 2014-01-30 06:47:03 +0200

Prevent Yred servants from becoming hostile for reading ?HW.
...Provided that you didn't know the scroll beforehand. Hostility on
unidentified ?HW encourages sending your mob away whenever you want
to read-ID, which is sort of silly.

--------------------------------------------------------------------------------
ddb3780110 | Pekka Lampila | 2014-01-30 06:11:15 +0200

Make Zot unlocking flash colour depend on the inserted rune

--------------------------------------------------------------------------------
246cc6c795 | Chris Oelmueller | 2014-01-30 05:51:26 +0200

Force a --more-- on picking up runes in default config
Finding and acquiring a rune conveys a sense of progress much like
reaching a new level does, and after pickup being "automated" in
0.14-a0-2073-gb3a1a26 and 0.14-a0-2076-g8d50028 I feel this is an event
important and rare enough in a given game of crawl to warrant --more--.

--------------------------------------------------------------------------------
1019b623cb | Pekka Lampila | 2014-01-30 05:51:24 +0200

Add a coloured flash when picking up a rune

--------------------------------------------------------------------------------
26bf1382e7 | Pekka Lampila | 2014-01-30 04:32:30 +0200

Don't consider artefacts in maybe_identify_base_type

--------------------------------------------------------------------------------
48446ad2b2 | Chris Campbell | 2014-01-30 01:22:06 +0000

Move Frances shallower
To late D and anywhere in the Lair sub-branches. By Depths/Crypt/Tomb(?!)
she wasn't notable.

--------------------------------------------------------------------------------
9b33a1157a | Pekka Lampila | 2014-01-30 01:21:33 +0200

Pass crawl more arguments when using -print-webtiles-options

--------------------------------------------------------------------------------
8b471c0e06 | Steve Melenchuk | 2014-01-29 15:04:42 -0700

Count demonspawn kills as demonic kills for piety purposes.
They already count as demons in most other non-holiness ways that count.

--------------------------------------------------------------------------------
2ba73aebe1 | tenofswords | 2014-01-29 16:50:53 -0500

Reduce chaos champion spell spam, band size.
The spells are dangerous enough without making them constantly use
them, and with Rearrange Pieces, the less chaff, the better
to emphasize the swap's effects.

--------------------------------------------------------------------------------
f5b0d8659c | tenofswords | 2014-01-29 15:57:51 -0500

Fix Antaeus occasionally disappearing from coc_dpeg (#8072)
In some previous cocytus edits I changed part of a SHUFFLE's glyph
set without properly adjusting the map itself, which leads to
occasional Antaeus disappearances with said set-up; this fixes it.

--------------------------------------------------------------------------------
a41801092b | Chris Campbell | 2014-01-29 17:54:37 +0000

Update default message colouring for it -> something rename

--------------------------------------------------------------------------------
6319e4977d | Chris Campbell | 2014-01-29 17:52:55 +0000

Don't shadow mimic spells that don't target monsters
Which is currently just Dig, out of the previous set of mimicable spells.

--------------------------------------------------------------------------------
18f63ac068 | ontoclasm | 2014-01-28 23:49:39 -0600

Phantasmal warrior tile

--------------------------------------------------------------------------------
5ff15cf290 | Steve Melenchuk | 2014-01-28 19:34:11 -0700

Unmarshall draco_type properly from demonspawn from old saves.
This was causing tiles crashes.

--------------------------------------------------------------------------------
bc532f462c | Steve Melenchuk | 2014-01-28 19:13:17 -0700

Add cases for a couple of monsters missed in previous commit.

--------------------------------------------------------------------------------
f687a291e6 | Steve Melenchuk | 2014-01-28 18:03:34 -0700

Fix saves broken by enum bump in demonspawn-enemies merge.
This code is too too ugly to live, and I hope we can get it to go away
soon.

--------------------------------------------------------------------------------
f7df7db435 | Chris Campbell | 2014-01-28 22:23:35 +0000

Reword an enchantment resistance message

--------------------------------------------------------------------------------
93de46b554 | tenofswords | 2014-01-28 15:37:03 -0500

Antaeus buff: give him the new Flash Freeze.
He may have had the scariest melee in the game, but anybody in extended
would be able to run circles around him without him doing much, making
him rather underwhelming for the lord of the already most boring Hell.

Flash Freeze, one of the Legendary Destruction spells, is a instant-hit
line-of-fire beam with decent partially irresistable cold damage that
gives a status that both slows player movement for a short bit
and blocks monsters from casting the spell again.

A perfect match, even if he still can't necessarily catch up to hasted
characters; the slow and damage are serious enough with the ice fiends
and other jerks around most Cocytus:$ vaults.

--------------------------------------------------------------------------------
d3498fccb9 | Steve Melenchuk | 2014-01-28 12:56:38 -0700

Add Chain of Chaos to Xom's tension spell list.
Just so it doesn't go completely unused.

--------------------------------------------------------------------------------
dab6825aa2 | Steve Melenchuk | 2014-01-28 12:52:55 -0700

Merge branch 'demonspawn-enemies'
With the forest dispersal work done, and with everything working up to
the original designer's standards, this is ready for trunk.

Conflicts:
	crawl-ref/source/beam.cc
	crawl-ref/source/dat/des/branches/pan.des
	crawl-ref/source/enum.h
	crawl-ref/source/hiscores.cc
	crawl-ref/source/melee_attack.cc
	crawl-ref/source/mgen_enum.h
	crawl-ref/source/mon-cast.cc
	crawl-ref/source/mon-data.h
	crawl-ref/source/mon-ench.cc
	crawl-ref/source/mon-info.cc
	crawl-ref/source/mon-info.h
	crawl-ref/source/mon-place.cc
	crawl-ref/source/mon-spll.h
	crawl-ref/source/mon-stuff.cc
	crawl-ref/source/mon-util.cc
	crawl-ref/source/mutation.cc
	crawl-ref/source/output.cc
	crawl-ref/source/player.cc
	crawl-ref/source/spl-data.h
	crawl-ref/source/status.cc
	crawl-ref/source/wiz-you.cc

--------------------------------------------------------------------------------
7ad9fedfe6 | DracoOmega | 2014-01-28 05:20:50 -0330

Let siren song actually trigger
Somehow the code block that would cause the drowned soul call to
begin mysteriously vanished between the effect originally being coded
and tested and now. Even I am not sure what happened to it, and the
reflog hasn't helped. My best guess is that somehow it was accidentally
deleted along with nearby debugging code, maybe?

I think the original code determining song duration here was more
involved, but I cannot remember it. This will at least allow it to
function, and might well be good enough as-is.

--------------------------------------------------------------------------------
4f3d528f98 | Neil Moore | 2014-01-28 03:41:44 -0500

Properly credit barbs deaths to NON_MONSTER.

--------------------------------------------------------------------------------
8eb4e64a35 | DracoOmega | 2014-01-28 04:19:02 -0330

Fix an overlooked monster rename in vaults
Apparently des cache is tricksy...

--------------------------------------------------------------------------------
c4afc85cc0 | DracoOmega | 2014-01-28 03:23:46 -0330

Remove harpy food stealing attack
Unlike potion and scroll destruction, there is scarcely any plausible
way this could deprive someone of a needed item - food is simply far
too abundant for it to matter, and individual food items almost
completely interchangeable. Yet, despite having essentially no
mechanical benefit, it caused frustration and annoyance to many people.

This combination of trivial gameplay impact and widespread annoyance
seem to me a good reason to remove this superfluous gimmick from what
is otherwise a solid and threatening monster; harpies will be plenty
notable without it.

--------------------------------------------------------------------------------
0d02e00fb5 | DracoOmega | 2014-01-28 03:12:16 -0330

Nudge manticores deeper
Since they're scarier now.

--------------------------------------------------------------------------------
17664159b6 | DracoOmega | 2014-01-28 03:06:52 -0330

Salamander populations for Depths
This adds both plain salamanders as well as mystics and firebrands
to the lava tables for Depths, with liberal use of MONS_NO_MONSTER
to thin overall numbers quite a bit, given that individual monsters
will be much stronger than worthless lava worms and such.

(Lava population adjustments for elsewhere will come later)

--------------------------------------------------------------------------------
f2fb3806c8 | DracoOmega | 2014-01-28 03:06:51 -0330

Experimental band and population adjustments for Snake
This deploys the new and revamped monsters into their home.

Naga mages and warriors show up more often, but on shallow floors have
a chance to spawn alone instead of in a band. Salamanders are able to
show up in naga bands in place of plain naga (with low frequency).
Guardian serpent bands focus moreso on melee-capable creatures than
ranged ones and are larger (but the serpents themselves rarer).
Sharpshooters get smaller bands that often contain other sharpshooters
instead of other professional naga (but can still show up as a support
in other bands). Ritualists get bands of snakes instead of naga (with
more common use of mana vipers than elsewhere). Anacondas are more
common in general, and greater naga somewhat more common outside of
the rune vault (though they still do not come with a band). Salamander
mystics will sometimes accompany a naga band (though are the rarest
support) and even more rarely spawn alone with a couple salamanders.
Shock serpents are also a mid-range encounter at moderate frequency.

Since there is a lot of experimental content at work here at once, these
weights are most definitely provisional. I fully expect them to need
some revisions in fairly short order (along with some of the monsters
themselves, perhaps), but this is a least a starting point.

--------------------------------------------------------------------------------
e7ee5c1e24 | DracoOmega | 2014-01-28 03:06:49 -0330

Remove lava fish
Stat-wise, they were extremely similar to lava worms (just slightly
weaker) - so much so that I see no reason for them to exist given that
they don't even really show up in the very narrow earlygame window
where you might be able to even notice the differences between the two.

Where lava fish occured, I have mostly replaced them directly with worms,
barring a minor exception or two.

--------------------------------------------------------------------------------
a7736ecfa0 | DracoOmega | 2014-01-28 03:06:48 -0330

Remove friendly fire from monster OTR
Even in a branch where most of the monsters naturally resist it, the
friendly fire can be problematic (around, say, anacondas, and now also
salamanders and shock serpents), and without being able to liberally
use this spell, naga ritualists suffer greatly. Let's just assume that
their explicitly esoteric magics have found an answer to this problem,
and go with an implementation that plays better.

This also simplifies tracer logic, since it can simply check only
for the presence of susceptible hostiles and not the balance between
those and friendlies.

--------------------------------------------------------------------------------
50cabbc568 | DracoOmega | 2014-01-28 03:06:47 -0330

Salamander Mystics
These are offense/support casters intended for use both in a revised
Snake population and in Depths salamander bands. They currently
possess bolt of magma, haste other, single-target ignite poison, and
mystic blast (though I am less sold on the last spell; I simply haven't
found a better replacement yet - and hey, the name fits!).

Their ability to haste allies partially replaces the former Naga
Enchanters's role in Snake, while also working to aid the slow-moving
salamanders in other deep lava encounters. Localized ignite poison is
a potentially interesting combo for their placement in Snake, being
able to inflict decent AC/EV-ignoring damage if you've let yourself get
poisoned by some other source. Bolt of magma and IMB round out the
package with some simple direct damage. (Physically, they are much
weaker than basic salamanders.)

--------------------------------------------------------------------------------
b2eb5936f1 | DracoOmega | 2014-01-28 03:06:45 -0330

A single-target variant of Ignite Poison for monsters
This is basically what it says on the tin: Ignite Poison delivered
to a single location via a (non-resistable) enchantment beam. The
damage inflicted is greater at the same power compared to normal
Ignite Poison, but making it non-smite-targeted is a considerable
limitation in the player's favor, of course.

Intended for Salamander Mystics.

--------------------------------------------------------------------------------
74110c2ed7 | DracoOmega | 2014-01-28 03:06:44 -0330

Revert accidentally nerfed monster Refrigeration
When the LoS attack spell code was cleaned up and merged, refrigeration
damage when cast by monsters seems to have been unintentionally reduced
(the power argument was used in two different fashions in the merged
functions). This made Fannar's damage go from 3d10 to 3d6, and the
Cocytus Serpent's from 3d15 to 3d7. This commit restores their old
levels of damage.

--------------------------------------------------------------------------------
fa889232a6 | DracoOmega | 2014-01-28 03:06:43 -0330

Make Ignite Poison properly useable by monsters, overhaul effect on players
This finishes some of the generalization made previously to this code
to make it less player-centric and adds tracer-like checks to allow
monsters to guess when it's worth casting (ie: will do more to their
enemies than their allies).

A lot of the player damage code left over from when it could hurt the
caster wasn't really suitable for a monster effect and so has been
removed or changed. It can no longer destroy items in your inventory
(including 100% of all poison ammo carried!) nor create flame clouds
based on this. Damage for higher levels of poisoning has been greatly
stepped down and poisoning no longer stacks with naturally poisonous
physiology (ie: being a naga or kobold) in terms of damage inflicted
on players.

I don't actually have a home in mind for this code directly, but I
plan to use it as the base for a single-targeted version of this
effect, and maybe it would be okay on player ghosts?

--------------------------------------------------------------------------------
8d9c36ec03 | DracoOmega | 2014-01-28 03:06:27 -0330

Salamander Firebrands
These are intended as the new top-tier lava monster, replacing and
exceeding old salamanders. Their melee strikes create a ring of
flame clouds surrounding their target's position (but not actually
beneath their target) and their melee damage is considerable. Further,
unlike their lesser cousins, their movement speed is high enough that
even on land they are faster than average (and even faster than that
in their native lava).

Unlike lesser salamanders, they deliberately do not spawn with
reaching weapons, so that any player can melee them down without
being forced to stand in a flame cloud, however the ring does
synergize nicely with any other salamanders they might appear
alongside them and poke at you from range. (For the benefit of allies,
the firebrand has enough control over its flames to keep from placing
them beneath non-resistant allies, but will happily place them under
hostile creatures that are not its primary target).

Outside of Depths, I think they would also make a very suitable
monster for Gehenna.

--------------------------------------------------------------------------------
10a3214abc | DracoOmega | 2014-01-28 03:02:01 -0330

Nerf/adjust Salamanders
The difference in power between salamanders and the next-strongest
lava creatures is immense (and lava fish and worms are so similar
as to be nearly identical), leaving a potential threat gap that could
be filled (and a new high end created in its place). Also, thematic
association could allow them to introduce more variety in Snake's
monster set at somewhere other than the top-end, provided they didn't
hit quite so hard.

Salamanders recieve a considerable HD nerf, cutting their AF_FIRE
damage considerably. Also, they no longer always recieve flame-branded
weapons with decent plusses - the weapons are instead always unbranded
(they already do fire damage in melee anyway), with only a chance of
plusses. They will now never spawn with a bow and melee weapon at the
same time (but the chance of a bow is somewhat increased and the bow is
still flaming) and only with reaching weapons. They also recieve a small
boost to their defenses and MR factor.

--------------------------------------------------------------------------------
58153df858 | DracoOmega | 2014-01-28 03:02:00 -0330

Actually rename sharpshooters and ritualists in vaults

--------------------------------------------------------------------------------
2da5d474e6 | DracoOmega | 2014-01-28 03:01:58 -0330

Replace Naga Enchanters with Naga Ritualists
While I don't consider enchanters as problematic as many of the
monsters I've revamped, the value of yet more sources of confusion is
questionable and I think invis other risks being more obtrusive than
the mechanical value it adds here (particularly when it will be used
primarily upon melee monsters, many of whom will still be slow). Elf
already has its early floors populated by a multitude of things that
like going invisible on you.

Enchanters' role as a speed buffer for low tier naga bands is a valid
one, but I am considering the same spell on a different rarer monster
and wouldn't want it used twice in the same place. Early naga bands
can be addressed in other ways (like more common use of naturally fast
or ranged monsters).

As for ritualists themselves, they are esoteric mystics focusing around
poison magic in ways that other naga do not. They possess virulence and
OTR (as well as one slot of force lance for direct damage), enabling them
to support other naga's poison attacks as well as be supported by them,
with damage output that is hopefully suitable for stronger encounters of
shallow floors and also deeper in a more supportive role.

--------------------------------------------------------------------------------
e0bd77ff09 | DracoOmega | 2014-01-28 03:01:57 -0330

Adjust OTR damage formula when cast by monsters
While effective and apparently balanced as a player spell, when used
against the player, OTR is underwhelming - in definite part due to
player's greater hp, ready access to !curing, and the fact that players
can kite with the spell while monsters will not. Overall it does little
direct damage while potentially poisoning too heavily (though all this
often amounts to is costing you a !curing after the battle is over).

With that in mind, I have rebalanced the effect against players in 3 ways:

1) It inflicts considerably more direct damage
2) It inflicts only half as much poisoning
3) The damage falloff by distance is greatly reduced for monster casters
   in general. (It made the effect too trivial if not engaged in melee with
   the caster, and monsters do not require any extra mechanisms to discourage
   engagement with the player)

Overall it should be be more threatening against players in an immediate
sense, while being less likely to leave you in the deep red afterward.

--------------------------------------------------------------------------------
1b3431abdc | DracoOmega | 2014-01-28 03:01:55 -0330

Fix some issues with a few enchantment durations on monsters
Several effects were lasting much less time on monsters than
intended and/or never wearing off with time at all. This includes
mostly things likely to never be relevant (dimension anchor and
retching), but also notably the -MR effect from ?vuln versus
monsters. Due to what looks like confusing aut with turns, it lasted
only 1/10th as long against monsters as players!

--------------------------------------------------------------------------------
b13491cb91 | DracoOmega | 2014-01-28 03:01:54 -0330

New monster spell: Virulence
This is a hex whose effect is twofold. First, it multiplies the amount
of poison already in the target's system (this cannot be resisted), then
attempts to apply a level of poison vulnerability (which can be resisted
via MR)

--------------------------------------------------------------------------------
494c5fece2 | DracoOmega | 2014-01-28 03:01:52 -0330

Revamp shock serpents
While the original version may have been conceptually interesting, it
had multiple mechanical problems. Even putting aside the bugs in the
implementation of monster static discharge, frying its allies when
injured doesn't seem like a good mechanic to me, and the way static
discharge jumps means that many messages are generated for every single
event (for similar reasons I don't think it works very well as an active
spell for them either). Also, shock's damage scaling meant it was
basically harmless on a monster of this tier - a cantrip as best.

This commit attempts to take the central concepts of the original
design and make it a more effective and workable monster. Shock
serpents now passively gather charge when in combat. After multiple
turns of building charge, they can unleash it as an unavoidable arc
of lightning aimed at their primary target (and nearby allies, in the
style of dazzling spray) which does substancial damage. However,
injuring the shock serpent discharges ALL of the sustained charge
as a (much weaker) reprisal effect. The idea is that the player will
be encouraged to suffer through the reprisal to avoid a worse attack
and that it might sometimes change target priorities in a large melee
or affect retreat tactics employed.

In addition, I have replaced shock with a stronger electrical bolt
styled after electric eels. The code duplication involved here bugs
me, but shocks if far too weak and lightning bolt too strong and the
electric eel bolt cannot just be made into a spell and given to both
of them without reducing eel fire rate significantly.

Finally, they get slight hd and melee boost, and lose the poison
resistant and poisonous corpses. So much of Snake already leaves
poison corpses and it doesn't seem to me that there's much need for
any poison association here.

Note that a great many numbers here are quite provisional, particularly
charge rate and the power of lightning torrent itself.

--------------------------------------------------------------------------------
b60b56d1d5 | DracoOmega | 2014-01-28 03:01:51 -0330

Prevent some monsters from spawning with cursed weapons
I've been conservative with this functionality for the moment, and
applied it mainly to cases where switching between weapons is
critical to a monster's overall functioning. This includes satyrs
and naga snipers (who are archers that spawn wielding a melee weapon
and thus cannot even use their ranged focus at all if it happens to
be cursed), spriggan assassins (who rely on using their blowguns),
and Sonja (whose blowgun can I THINK start out cursed, which seems
a shame). There are maybe a couple other things that could benefit
from this, but it seems clear that archers shouldn't randomly be
deprived of their ranged weapons on generation.

The exact method of simply uncursing whatever item is generated,
after the fact, strikes me as somewhat hacky, but it is how vault
code to generate uncursed items currently works and the alternative
seems significantly more complex, so....

--------------------------------------------------------------------------------
1df55a2638 | DracoOmega | 2014-01-28 03:01:49 -0330

Don't deduct energy twice when monsters cast portal projectile
It was charging them both for firing a ranged attack and casting a
spell.

--------------------------------------------------------------------------------
964fbc2a73 | DracoOmega | 2014-01-28 03:01:32 -0330

Marksnaga adjustments
Remove both corona and slow from their spellset. The former doesn't
do much, the latter already has a caster in the zone, and overall
this differentiates them more from fauns as well as focusing on
their unique spell: portal projectile. (It also raises their damage
potential overall)

Also nudge up HD and hp, remove chance of sling (which does notably
less damage).

Finally, I renamed them to something I consider a little less silly
than 'marksnaga' (ie: Naga Sharpshooter), though if anyone is truly
attached to the original, feel free to rename it back.

--------------------------------------------------------------------------------
b83c81532b | DracoOmega | 2014-01-28 02:31:47 -0330

Sapper snake adjustments / renaming
Base damage is increased a decent bit, which should hopefully make
them a bit less harmless to things not purely relying on their mana.
Speed is decreased somewhat (though they are still fast) to give
vulnerable people a little more room to get away.

I removed the 'heal on mana drain' effect, since I'm not sure it
really adds anything of substance to them, as their longevity can be
increased via more hp and if they're draining that much mana from you,
you have other problems already. I wouldn't be adverse to putting it
back if anyone especially cares, though; I'm more neutral than opposed.

Also renamed from 'sapper snake' to 'mana viper'. I have to admit
personal bias in not really liking the original name, but this is
also something of a shout-out to the old and long-removed snake that
used to call Snake its home.

--------------------------------------------------------------------------------
d645ae5738 | DracoOmega | 2014-01-28 02:31:46 -0330

Adjust antimagic mp drain against players (especially AF_ANTIMAGIC)
The amount of mp lost to antimagic attacks was highly erratic, being
based both on the melee damage inflicted as well as a large random
range. This was additionally somewhat problematic from a design
perspective as it was difficult to make an antimagic monster that
inflicted reasonable damage without completely draining your mana pool
in a hit or two.

AF_ANTIMAGIC now drains mp based on the attacker's HD instead of damage
done (provided the attack does pass AC, like many other AFs), and the
mp drain is more normalized, so the extreme highs and lows will happen
less often. The idea is that some mp loss will happen more regularly,
but this loss will be somewhat less spiky. Lom's melee might have gotten
a buff, but probably he can handle that.

I didn't adjust how antimagic WEAPONS work, as those involve more questions
of symmetry with the player, where damage inflicted might indeed be the
better baseline for the severity of the antimagic applied, but possibly
their mp drain versus players could be adjusted similarly, too.

--------------------------------------------------------------------------------
c5ac3ddaa7 | DracoOmega | 2014-01-28 02:31:45 -0330

Don't bother to inflict staff damage of 0 for weapons without any

--------------------------------------------------------------------------------
e94eb2fb6b | DracoOmega | 2014-01-28 02:31:44 -0330

Don't let monsters cast a summon spell if it's already at its cap
Not only is doing so generally a complete waste of time, it's often
directly counterproductive to the summoner, as it will erase monsters
that have moved to engage the player and replace them with ones around
the summoner (who is often further away, especially if the summons
are fast).

--------------------------------------------------------------------------------
732301385d | Steve Melenchuk | 2014-01-28 02:31:43 -0330

Sapper snake tile.
Didn't turn out anywhere near as well as some of my other recent
creations, but it's better than nothing.

--------------------------------------------------------------------------------
14dc4adf2e | Steve Melenchuk | 2014-01-28 02:31:41 -0330

Shock serpent tile.

--------------------------------------------------------------------------------
14f5202df6 | Steve Melenchuk | 2014-01-28 02:31:40 -0330

Let most naga tiles show shields.
Naga enchanters don't, at the moment, thanks to the arm pose. If they
get a better tile perhaps this can change.

--------------------------------------------------------------------------------
8a6592779e | Steve Melenchuk | 2014-01-28 02:31:39 -0330

Badtiles for marksnagas and naga enchanters.

--------------------------------------------------------------------------------
5b6e87f133 | Steve Melenchuk | 2014-01-28 02:31:38 -0330

Experimentally replace a few of the rune vault enemies with the new guys.
The numbers for these might need more work, if this is warranted at all.

--------------------------------------------------------------------------------
af0a5ddbd4 | Steve Melenchuk | 2014-01-28 02:31:36 -0330

Give marksnagas a chance of a sling and shield (|amethyst).

--------------------------------------------------------------------------------
6f26326460 | Steve Melenchuk | 2014-01-28 02:31:35 -0330

Implement Portal Projectile for marksnagas in place of Leda's.
For whatever reason, extra-stable footing doesn't apply to liquefied
ground, so that part of the original rationale fails; the new
replacement is partly motivated by my observation that in a lot of
scenarios where marksnagas turn up, the rest of the nagas in the pack
tend to block their lines of fire - so this helps make them effective
even in those scenarios.

This is a variation of the implementation I've had floating around for a
while (20f9716) updated for more modern Crawl.

--------------------------------------------------------------------------------
f2ee404171 | Steve Melenchuk | 2014-01-28 02:31:34 -0330

Two new professional nagas: naga enchanters and marksnagas.
Naga enchanters are a sort of naga shaman - they can confuse you, haste
themselves and their allies, and cast Invisibility Other (a new spell
which is exactly what it sounds like).

Marksnagas deal with ranged weaponry and cast Corona, Slow, and Leda's
Liquefaction. (I'm not convinced the latter is the best idea, but nagas
have stable footing - thus if, say, courtesy of a guardian serpent
they're surrounding their foe, they have the edge in melee; plus they
all can spit poison at the very least, and should be able to volley at a
fleeing foe).

I can envision quite a few tactical combinations of abilities between
the spell sets of these enemies, the reworked guardian serpents, and the
garden variety nagas; this should hopefully make Snake less of a slog.

--------------------------------------------------------------------------------
577cd62528 | Steve Melenchuk | 2014-01-28 02:31:32 -0330

Sapper snakes.
A mid-tier Snake denizen, they have an anti-magic bite which heals them
proportionally to MP drained. Wizards beware!

--------------------------------------------------------------------------------
37506b97f6 | Steve Melenchuk | 2014-01-28 02:31:31 -0330

Shock serpents.
These are a mid-to-high-tier Snake enemy (at the moment), intended to be
more interesting than the current variety of fast physical / venom
damage plain snakes and slow but hard-hitting nagas.

They deal mainly electrical damage in one of three (or four) ways -
directly through their bite, at a distance with Shock, or at melee range
through Static Discharge - invoked by them directly or as a response to
taking damage.

Tactical management of shock serpents could be interesting - hitting
them when they're surrounded by enemies will damage those enemies
courtesy of the discharge effect.

--------------------------------------------------------------------------------
55b71c2b74 | Steve Melenchuk | 2014-01-28 02:31:30 -0330

Let monsters cast Static Discharge; support for arbitrary start points.
Right now it's just ghosts that will cast it, but I have at least two
seemingly viable ideas for this functionality - one involving a new
enemy and one involving an unrand.

--------------------------------------------------------------------------------
1af1fca8f0 | DracoOmega | 2014-01-28 02:31:29 -0330

Depths population table adjustments
Much less sweeping than Swamp and Forest, understandably. This adds
spriggan air mages and berserkers as mid-tier encounters, and defenders
as rarer high-tier ones, as well as making a few other adjustments
here and there. Deep trolls are rarer, flayed ghosts are somewhat more
common, and modest changes to a few other things I felt were a bit too
common or rarer.

(Defenders were added to the list twice with different ranges and
weights. I am not sure how better to reconcile the fact that all
weights in the OOD range are so incredibly low (and defenders make
sensible solo vault spawns from this list) with wanting them to
sometimes spawn OUTSIDE of vaults, as their band is a point of interest
for them. Possibly it would make more sense if the scale for depths
greater than 6 were not so different than depths 6 or below, but
adjusting this would be a lot more work right now)

--------------------------------------------------------------------------------
f6f1125b11 | DracoOmega | 2014-01-28 02:31:28 -0330

Replace plain tengu with buffed ravens in tengu warrior/conjurer bands
Plain tengu are pretty worthlessly weak, especially given the depth.
Ravens are quite a lot stronger than them now, and there is a long
narrative association between tengu and crow familiars.

--------------------------------------------------------------------------------
af21f3db3e | DracoOmega | 2014-01-28 02:31:26 -0330

Somewhat reduce the number of professional deep trolls in deep trolls bands
They were probably slightly too common overall.

--------------------------------------------------------------------------------
6e871df78c | DracoOmega | 2014-01-28 02:31:25 -0330

Adjust Shoals spawn table
A similar edit as with Swamp: monsters from the forest dispersal
are introduced and the weights of some others adjusted. Bats are
far less common, hippogiffs are replaced with griffons increasingly
by depth, high tier merfolk are much more common outside of Shoals:5
itself. Water nymphs are added as a mid-tier spawn, with rarer fauns
as low ones and then even rarer satyrs deeper. Water elementals can
spawn randomly to break up some of the monotony of filler spawns,
along with an ocassional wind drake.

For a few reasons I am somewhat less pleased with this than the
Swamps weights, potentially because Shoals had a larger band lacking
in many meaningful encounters and with fewer things to fill it with.
I expect there will be more changes to come in future.

--------------------------------------------------------------------------------
811f4f39a1 | DracoOmega | 2014-01-28 02:31:24 -0330

Make impalers and javelineers sometimes spawn without a band on shallow Shoals 
depths
This is so they can be used even more often earlier on without involving
the same kinds of numbers seen on Shoals:5.

--------------------------------------------------------------------------------
c539712b13 | DracoOmega | 2014-01-28 02:31:23 -0330

Adjust Swamp population tables
This commit does some considerable refiguring of the Swamp population,
working in the Forest refugees slated for it and making several other
changes.

Shambling mangroves and smaller spriggan rider bands have been added
as moderately rare midrange encounters, with spriggan druids and thorn
hunters as rarer deep ones. Ravens are made much more common (now that
hopefully they're a bit more meaningful). Vampire mosquitoes are less
common, shadows replace hungry ghosts (and are more common), multiple
incredibly weak monsters no longer show up on deep floors. Water
monsters are much less frequent overall and eels removed, with thorn
lotuses added (less common overall than in their original homes). And
probably several other tweaks I have forgotten to mention here.

As always, such changes are provisional and will need to see real
playtesting.

--------------------------------------------------------------------------------
c219c26bfb | DracoOmega | 2014-01-28 02:31:22 -0330

Slightly reduce wisp band size, rarely spawn vapours with them
Pairing vapours with wisps is an idea that was tried a while back,
and then canned due to the forest fires vapours were prone to starting.
With that now made less of a problem (and vapours overall improved from
their old state back then, too), I think it's worth trying again.

--------------------------------------------------------------------------------
0685f9efc0 | DracoOmega | 2014-01-28 02:31:21 -0330

Reduce extreme (buggy) steam spread rate from fire clouds over water
Not only are the absolutely massive explosions of steam created by flame
clouds over water somewhat annoying to have to sit through whenever you
(maybe inadvertently) cause them, but it looks like they were probably
unintentional in the first place. The steam cloud's spread rate (in just
this one context) is left unfilled at a default of -1. Of course, spread_rate
is an unsigned 8-bit integer.... (it should be noted that steam's NORMAL
spread rate is 22)

If you use wizmode, you can see that even a single flame cloud can produce
steam at up to 15 or so spaces away from the original source, which is rather
insane. I have reduced the spread rate to normal (and increased the generation
rate just a touch), which I think produces far less intrusive effects.

I'm not fully sure of the numbers, which might need further adjusting, but
combined with the last commit, I think it's a definite quality-of-life
improvement in Swamp for both people being attacked by vapours and those using
fire and lightning themselves.

--------------------------------------------------------------------------------
0dbf6e2f6a | DracoOmega | 2014-01-28 02:31:20 -0330

Don't let burning mangroves start forest fires
This was mechanically somewhat problematic in Swamp, when vapours were
prone to causing LoS-filling explosions of steam just by doing their
normal thing, and players using lightning and fire attacks primarily
tended to contend with the same issue a lot of the time as well.

Given that mangroves are actually notably less prone to wildfires than
many trees (especially in such a watery environment!), just make them
produce a shorter flame cloud instead of a full forest fire. I think this
will probably play better in the branch they show up in.

--------------------------------------------------------------------------------
fc2dd07f6a | DracoOmega | 2014-01-28 02:31:19 -0330

Make shark blood frenzy message more specific
So that players will understand what is actually triggering it without
already knowing.

--------------------------------------------------------------------------------
dd4bd0d329 | DracoOmega | 2014-01-28 02:31:17 -0330

Add a simple monster implementation of manticore barb damage
I'm not sure this is really necessary and cannot operate the same as
the player's in any case, since monsters don't really know how to
stand still. Thus theirs will wear off even when stationary (though
moving accelerates the process as they take damage).

It might just be simpler to make the monster bleed or something, instead
of this extra code for an effect that will rarely happen or be meaningful
(though manticores have already been suggested as a possible player
summon several times, so....)

--------------------------------------------------------------------------------
487b75a77a | DracoOmega | 2014-01-28 02:31:16 -0330

Revamp manticores
These were a fairly unnotable monster, especially so in Shoals
(though usually barely worth noticing in D, either). They now fly
(which one might expect from the wings, and helps them become stranded
less frequently in Shoals), move at speed 8 instead of 7 and act at
normal speed. Their melee is considerably improved, as well as the
accuracy of their spikes.

The spikes get a new effect. When they hit the player and inflict damage,
the barbed spikes become embedded in your body and will cause further
damage with every step you move. Resting for a few turns will remove the
spikes, but other actions will not (nor will thet wear off while asleep/
paralyzed/etc.). Moving will eventually cause them to snap off, but this
is much less quick than resting (and incurs non-trivial damage during that
length of time).

The idea is to create an impairment that limits the player primarily via
damage and is overwise inobtrusive. If you are in no danger, then you can
simply charge the manticore and accept the extra damage. But in more dicey
situations, it makes running away not so automatically a correct answer
and could hopefully cause tension between flight and standing your ground.

Numbers are provisional and will likely need further adjustment following
playtesting.

--------------------------------------------------------------------------------
3b67154113 | DracoOmega | 2014-01-28 02:31:14 -0330

Let blood scent trigger if blood would be spilled over ineligible squares
Most particularly this applies to water, when cannot be bloodied. But
it seems curious that sharks have a gimmick that involves reacting to
blood, when combat in their native terrain can never produce anyway. Since
there are good reasons not to recolor water red all the time, instead
merely trigger blood scent when blood would otherwise have been created,
but do not bloody the square itself.

Something similar could arguably be done for Ignite Blood, though I am
uncertain of the implications of creating massive clouds of steam whenever
you fight over water.

--------------------------------------------------------------------------------
bfa2403b7f | DracoOmega | 2014-01-28 02:31:13 -0330

Unbreak monster blood scent and web sense
It looks like it was assuming everything was out of range if it had
any distance at all.

--------------------------------------------------------------------------------
a4782071bd | DracoOmega | 2014-01-28 02:31:12 -0330

Make siren/mermaid mesmerisation scale with HD
It previously had flat power, regardless who was using it. The net
effect of this change is that sirens become slightly harder to resist,
mermaids stay the same, and the low-HD sirens/mermaids in that Sewer
vault become much easier to resist.

--------------------------------------------------------------------------------
0d6be078a4 | DracoOmega | 2014-01-28 02:31:10 -0330

A few more siren behavioral tweaks
Make sirens even more likely to prefer deep water than before (to
the point of being willing to move past the player to reach some, when
previously they never would if shallow was available closer to them).
Given how key it is to their offense, it seems important to prioritize
it further.

Also adjust siren pathfinding slightly so that they will attempt to
move around the player instead of stopping in front of them, if you
happen to bar their path.

Finally, remove siren's melee attack altogether. It almost never
works anyway and was harmless even when it did. It is better not to
give the illusion that she will actually hit something when she so
rarely does, I think.

--------------------------------------------------------------------------------
4a95513685 | DracoOmega | 2014-01-28 02:31:09 -0330

Teach sirens a new offensive trick
A long-acknowledged problem with sirens is that while their
mesmerisation can be powerful and relevant when supported by dangerous
allies, they are completely harmless on their own yet can still camp
out where you can't reach them and prevent you from leaving as well.
The solution I propose to these staring matches is to make lone sirens
actually dangerous and so I am giving them a powerful and thematic form
of offense: calling up the spirits of the drowned to inflict the same
fate on their captive audience.

When a siren starts to sing, it starts a counter that will (after a
short time) start to continuously call up drowned souls from nearby
deep water. These drowned souls have very short duration and die upon
hitting something, but their touch inflicts considerable AC-ignoring
drowning damage.

Since mesmerisation can already be powerful in the presence of allies,
said counter will not be incremented in the presence of more than a few
HD worth of them (and thus sirens with existing support will not call
up drowned souls). This ability is intended foremost to give threat to
the many sirens one encounters WITHOUT any backup to speak of without
making all others much more dangerous.

I think requiring deep water to perform this ability could work well with
their already-existing behavior to pull the player towards this terrain
and gives a powerful incentive to try and not let that happen.

Most of the numbers involved here are provisional, including rate of
soul calling, damage of individual souls, number of allies required to
inhibit using it, etc. The idea is that it should be quite dangerous on
its own without making situations where a siren's presence is already
dangerous far moreso, but nor should one or two harmless monsters prevent
it outright.

Let's see how it plays.

--------------------------------------------------------------------------------
df4788baaa | DracoOmega | 2014-01-28 02:31:08 -0330

Adjust siren pulling behavior
Siren pulling is now irresistible if you are already mesmerized and
happens passively each turn (without her needing to renew her song),
but only triggers if the player did not themselves approach the siren
that turn. (The idea is that this prevents you sometimes jumping
multiple spaces in a single turn and makes the pulling behavior more consistent 
but also
more powerful).

--------------------------------------------------------------------------------
793613a410 | DracoOmega | 2014-01-28 02:31:06 -0330

Remove a pointless special case
Mesmerisation only worked if the player can see the monster mesmerising
or was already mesmerised by them previously, so this ends up merely
reducing the frequency that invisible (but seen!) mermaids at low hp
will mesmerise. And considering they have no way to go invisible on their
own anyway....

--------------------------------------------------------------------------------
ca45539f9b | DracoOmega | 2014-01-28 02:31:05 -0330

Fix failed siren/mermaid mesmerisation attempts consuming no energy

--------------------------------------------------------------------------------
c1d4bd84cf | DracoOmega | 2014-01-28 02:31:04 -0330

Improve siren pulling behavior
Sirens will no longer pull you into positions that cannot see them
(and thus break mesmerisation in the process) and will not be completely
confounded by many apparently non-obstructing walls, but rather pull
you forward along the beam path between your position and theirs (instead
of only in the direction of the sign difference between your two
positions, which might be occupied).

--------------------------------------------------------------------------------
e5de0d2f62 | DracoOmega | 2014-01-28 02:31:03 -0330

Fix a few issues with siren movement behavior
Sirens should now be less likely to voluntarily break LoS with a
mesmerised player, either by stepping away or ducking around a
corner. Hitting a siren will no longer sometimes cause it to start
dancing or run off to the top-left of the map. Also sirens should
more properly maintain a target lock on the player, even while
moving away (this would affect ranged attacks if they had any).

Unfortunately, it seems there's no clear good way to go about fixing
the fact that under almost no circumstances will a mesmerising siren
actually use its melee attack. The best solution I could find causes
the siren to oscillate back and forth around the spot it wants to
stand, which I don't consider an improvement. But given that siren
melee is pathetic and irrelevant anyway, I consider this relatively
unimportant (and plan to give them something better to replace it
anyway)

--------------------------------------------------------------------------------
d0dc3288d8 | DracoOmega | 2014-01-28 02:31:01 -0330

Don't consider rDrown- monsters the same as rDrown+ for engulfing

--------------------------------------------------------------------------------
7380c6ef4b | DracoOmega | 2014-01-28 02:31:00 -0330

Give nymphs a drowning touch (and minor stat tweaks)
Unlike water elemental engulfing, this does not silence or cause any
lasting effects, but is simply water-based direct drowning damage applied
with their touch attack (AC-ignoring).

Also reduce their hd slightly, base melee damage slightly, and waterstrike
damage slightly.

--------------------------------------------------------------------------------
806f4fe5a7 | DracoOmega | 2014-01-28 02:30:59 -0330

Rename AF_DROWN to AF_ENGULF
It's a bit more fitting with what it does (and I'm about to reuse
AF_DROWN for something else)

--------------------------------------------------------------------------------
bc8360aaf3 | DracoOmega | 2014-01-28 02:30:58 -0330

Reduce strange interactions between Shoals tides and temp water
When a tidal change happened, sometimes large chunks of temp water
would be outright removed (even when they were far from the shoreline),
and without actually removing the terrain change marker (which caused
bits of land that were curiously immune to being flooded again).

I have to admit that I don't entirely understand all the tidal code
so it's possible this fix doesn't do exactly what I think it does, but it
does seem to address the visible issue - temp water is preserved
regardless of tidal movement, which continues to operate normally around
it.

--------------------------------------------------------------------------------
61e05370bc | DracoOmega | 2014-01-28 02:30:56 -0330

Give water nymphs a passive aura of water which follows them around
This power performs some of the same functions as waterport touch
(forcing melee confrontations to be in range of waterstrike), without
directly throwing the player around. Their new home will have plenty
of water to use anyway, but this serves as a failsafe when lured onto
land (and can also synergize with other nearby creatures).

--------------------------------------------------------------------------------
c2945490eb | DracoOmega | 2014-01-28 02:30:55 -0330

Don't add terrain change markers when changing a terrain from itself to itself
You could instead just, y'know, leave it what it already is.

--------------------------------------------------------------------------------
ac6ca4548c | DracoOmega | 2014-01-28 02:30:54 -0330

Remove nymph waterport touch
While I still feel like the attack could create a number of interesting
tactical problems, the mostly-irresistable player relocation was fairly
unpopular, so let's try giving them something else instead.

(I'm pretty sure outright removing an AF type doesn't cause save compat
issues if it couldn't occur in a ghost_demon struct, right?)

--------------------------------------------------------------------------------
4d157780a4 | DracoOmega | 2014-01-28 02:30:53 -0330

Nudge a couple early merfolk vaults slightly deeper

--------------------------------------------------------------------------------
4077693112 | DracoOmega | 2014-01-28 02:30:51 -0330

Buff monster merfolk and mermaids somewhat
Merfolk were the most common 'standard' monster in most of Shoals, but
pretty underwhelming - similar in stats to an orc warrior and losing in
melee against a lone elephant, when elephants themselves spawn in packs
from a much earlier floor and aren't even major powerhouses then.

This boosts their damage, hd, and hp, as well as making sure they always
actually spawn with a weapon. Mermaids are now also guaranteed a (lesser)
weapon and get a melee damage boost. Neither is liable to be too much
scarier, but hopefully just a little less ignorable.

(The size of bands involving merfolk were nudged down slightly in
compensation, since the elite merfolk are actually dangerous)

--------------------------------------------------------------------------------
c301332802 | DracoOmega | 2014-01-28 02:30:44 -0330

Adjust fauns and satyrs for Shoals
Generally this is an overall power reduction, with a few other tweaks.

Faun and satyr hd and hp are reduced - notably the satyr hd reduction
also cuts the power of their rouse effect and prevents it from affecting
impalers. Fauns however also recieved a tiny melee buff and slightly better
melee weapons.

Accounting for the much lower expected player MR when first encountering
them, faun spells are diluted so that slow will be somewhat less common
and confusion much less common. (The method this is accomplished is
unpleasantly hacky, but without more fine-grained control of spell
frequency within a single set, I am not sure how to reduce it low enough
without removing it entirely). Satyr overall cast frequency is also
somewhat reduced.

Faun bands are now a little smaller, and fauns and satyrs both have a
1 in 3 chance to spawn without a band, however their bands now have a
chance of containing a single mermaid. Accompanying other monsters that
can actually harm you will give mermaid mesmerize more of a chance to
do work, and would a faun really turn away the company of such a charming
maiden?

--------------------------------------------------------------------------------
1437299f7f | Steve Melenchuk | 2014-01-27 22:52:48 -0700

Get nonbase monstrous demonspawn to SInv properly.

--------------------------------------------------------------------------------
c79516800e | Steve Melenchuk | 2014-01-27 22:47:16 -0700

Stack nonbase demonspawn HD sizes, AC, EV on base demonspawn values.
Previously the size of hit dice used for nonbase demonspawn was taken
directly from their base type; the values given for those specific types
were now meaningless.

This changes the previously-unused numbers to be bonuses on top of the
base demonspawn type, so that, say, warmongers get their intended HP
bonus on top of other nonbase types (cf. e7a4d24).

This is also taken into account for the average HP calculation used for
ordering monsters in the monsters list.

--------------------------------------------------------------------------------
eee81776fc | DracoOmega | 2014-01-28 01:44:18 -0330

A few tweaks to monster Cause Fear
Don't flash the screen and print messages unless you can see the source
square of the effect. Don't cast if all possible targets are already
afraid (and don't reapply to already-feared targets, just as the player
version already does). Reduce the duration against the player to something
more sane.

--------------------------------------------------------------------------------
3ed202c3d9 | DracoOmega | 2014-01-28 01:44:16 -0330

Some spriggan band adjustments for Swamp
Druids now have a 1 in 3 chance of coming with a small band of either
plain spriggans or an ocassional rider. Riders themselves now only have
a 1 in 3 chance of their band, and it is smaller. Shambling mangroves
no longer can come with a druid (a hasted mangrove sounds excessive for
a mid-tier Swamp encounter) but sometimes a single rider accompanies
them instead.

--------------------------------------------------------------------------------
557bad80a2 | DracoOmega | 2014-01-28 01:44:14 -0330

Nerf spriggan druids slightly
A little reduction to their HD, melee, and a bit more to their EV.
Druid's call threatens to be pretty scary in Swamp, so let's weaken
them just a little in other ways.

--------------------------------------------------------------------------------
9d7b9d09aa | DracoOmega | 2014-01-28 01:44:11 -0330

Adapt thorn hunters and lotuses to a marshy home
Both monsters recieve some stat nerfs to themselves and thorn volley's
scaling formula (though lesser than treants did, as thorn hunters were
comparatively less scary in their original homes and intended for a
higher-tier threat slot here than shambling mangroves).

Briar patches are made amphibious so that they can be spawned across
water, and thorn hunters likewise gain the ability to swim, though at
a reduced speed compared to their land movement.

--------------------------------------------------------------------------------
3ddfe14736 | DracoOmega | 2014-01-28 01:44:10 -0330

A new description for Shambling Mangroves
The old treant description references a few things that aren't entirely
true anymore.

--------------------------------------------------------------------------------
d0431c8b13 | DracoOmega | 2014-01-28 01:44:07 -0330

Buff ravens' damage a bit, make them spawn in small bands
They're likely still not very notable, but maybe not always completely
irrelevant when they spawn in Swamp (or, now, from Shambling Mangroves).

--------------------------------------------------------------------------------
7d24744dde | DracoOmega | 2014-01-28 01:44:05 -0330

Don't spam rooted characters with a ton of needless messages when rooted and 
moving through shallow water.

--------------------------------------------------------------------------------
5637cb1e08 | DracoOmega | 2014-01-28 01:44:03 -0330

Adjust grasping roots
The roots can now impede targets in shallow (but not deep) water as well as
land, but their movement slowing and EV-reducing effects are reduced in power.

--------------------------------------------------------------------------------
68bd4261cb | DracoOmega | 2014-01-28 01:44:01 -0330

Let shambling mangroves sometimes nest ravens instead of wasps
Intended as part of another overall nerf compared to old treants.

I wouldn't mind seeing a 3rd option for what kind of fauna might
be hiding in their foliage, but I'm not sure what a sensible choice
might be (there seem to be few options that are both thematically
plausible and mechanically reasonable).

--------------------------------------------------------------------------------
82ffb2bf21 | DracoOmega | 2014-01-28 01:44:00 -0330

Treants -> Shambling Mangroves
In preparation for the Forest migration, treants have been replaced with
their marshy cousins. Moving to a lower-level branch, there are nerfs all
around (and more to come). They have lower HD, hp, damage, and AC, and
also contain fewer wasps. However, they also lose their fire vulnerability
and become amphibious, as suits their new waterlogged home.

--------------------------------------------------------------------------------
062a2ce7d3 | ontoclasm | 2014-01-27 21:00:07 -0600

Shadow & mushroom form tiles

--------------------------------------------------------------------------------
cfacb1039c | Steve Melenchuk | 2014-01-27 16:23:58 -0700

Harshen piety hits for Dith firestarting; fix some edge cases.
Forest fires, Conjure Flame, and Ring of Flames now incur piety hits
properly, and the piety hits for everything else are much harsher
(you're probably going to get penance for trying to do anything
fire-related).

--------------------------------------------------------------------------------
c7e39278c0 | Steve Melenchuk | 2014-01-27 16:13:32 -0700

Revert "Revive a monster Ignite Poison implementation for FoVM enemies."
Apparently someone else is going to do something similar in the
immediate future.

This reverts commit 65f686f80ba4bcb81cbe48947271143fe96d4b20.

--------------------------------------------------------------------------------
2beed7a36f | Steve Melenchuk | 2014-01-27 15:56:56 -0700

Make vine stalker enemies less of a dummy.
They get a normal attack in addition to the bite; if they're used as
spellcasting enemies, they can remove the effects of antimagic through
their antimagic bite just as the player version can. This will probably
be more relevant if/when there's a version of the enemy that can cast
spells

Actually, this will be more relevant in general if/when they actually
spawn somewhere (Swamp and/or Snake have been suggested for good
candidates for this, probably moreso Swamp).

--------------------------------------------------------------------------------
65f686f80b | Steve Melenchuk | 2014-01-27 15:56:55 -0700

Revive a monster Ignite Poison implementation for FoVM enemies.
The relevant old commit is ab7eb6992d0672e1189193d82656b790ddd6dc9a;
this is cleaned up and modernised a lot from its original
implementation (mainly it has a tracer whereas the original
implementation did not).

The new FoVM spell set is Venom Bolt, Poisonous Cloud, and Ignite
Poison. This might benefit from some more adjustment - it's a spell set
that can potentially generate a lot of collateral damage if you get too big
of a swarm of nearby poisonous enemies; some other ideas I've had
including replacing one of the two damage spells with Poison Arrow (one
shot, one target) or Mephitic Cloud (low area of effect, can still be
ignited semi-reliably).

--------------------------------------------------------------------------------
23fb7deecf | Steve Melenchuk | 2014-01-27 15:56:55 -0700

Make formicid enemies dig like player Fo.
i.e. like boring beetles, only with 50% more delay.

--------------------------------------------------------------------------------
f6e0bd55ed | Neil Moore | 2014-01-27 17:08:50 -0500

Put more penance-related messages on MSGCH_GOD (wheals, Grunt)

--------------------------------------------------------------------------------
dc1a5679a1 | Steve Melenchuk | 2014-01-27 11:34:26 -0700

Planerend -> Plane Rend (|amethyst).
Right now it's just the displayed name; the enum and internal names are
still the same.

This should at least be readable until/if a better name comes along.

--------------------------------------------------------------------------------
e8842d2f45 | Steve Melenchuk | 2014-01-27 09:44:46 -0700

Don't melt Frozen status on fiery damage/actions (tenofswords).

--------------------------------------------------------------------------------
cdf6521e1c | Chris Campbell | 2014-01-27 15:12:49 +0000

Improve messaging for Formicid digging

--------------------------------------------------------------------------------
0b33d52fda | Adam Borowski | 2014-01-27 14:18:31 +0100

Don't generate caps in makeitem tests.

--------------------------------------------------------------------------------
affd9c20f5 | Adam Borowski | 2014-01-27 14:10:53 +0100

Don't claim guardian spirit is "protective" for vine stalkers.

--------------------------------------------------------------------------------
9ccd92488b | Adam Borowski | 2014-01-27 14:10:53 +0100

Formicid updates in the manual.

--------------------------------------------------------------------------------
22ce15f341 | Adam Borowski | 2014-01-27 14:10:53 +0100

Reduce the chance for Roka in pubby_orc_utopia, to match 3f2b1c5.

--------------------------------------------------------------------------------
0e8c331001 | Adam Borowski | 2014-01-27 14:10:53 +0100

Place the Elf entrance in pubby_orc_utopia only when appropriate.

--------------------------------------------------------------------------------
ee4c0d4aa3 | Adam Borowski | 2014-01-27 14:10:53 +0100

Don't give formicids a remote digging ray, let them dig in person.
The ability merely "extends your mandibles" and gives a status light,
once you got the light you can walk through diggable rock. Digging takes
15 aut per square (ie, is 1.5× slower than walking).

--------------------------------------------------------------------------------
7384a70982 | pubby | 2014-01-27 14:10:53 +0100

Add vi keyboard bindings for colemak users.
Only two key pairs needed swaping:
(e) with (u)
(i) with (y)

--------------------------------------------------------------------------------
03b699e6a8 | Adam Borowski | 2014-01-27 14:10:53 +0100

Sort last_pickup together with other variables.

--------------------------------------------------------------------------------
505d3362e0 | Adam Borowski | 2014-01-27 14:10:52 +0100

An encompass Orc ending, by pubby.

--------------------------------------------------------------------------------
31d740229a | Adam Borowski | 2014-01-27 14:10:52 +0100

A whitespace fix.

--------------------------------------------------------------------------------
20fe848406 | Robert Lund | 2014-01-27 14:10:52 +0100

Add a sewer vault

--------------------------------------------------------------------------------
cd529e1bfb | Adam Borowski | 2014-01-27 14:10:52 +0100

Don't spawn Trowel in plain and ornate wonders.
Plain and ornate versions retain their full weight in decks of dungeons,
though.  These are utterly boring, and probably should be removed outright:
a redundant altar gives you 7% chance of shaving a couple hundred turns from
that trip to Temple if you want to change gods, walking away from a pair of
summoned statues is not exciting either.

--------------------------------------------------------------------------------
040c2390e8 | Adam Borowski | 2014-01-27 14:10:52 +0100

Move the alchemist card from wonders to escape.
(Also, per "archetype" code, from changes to war and defence.)

Unlike other cards in wonders, alchemist has a tactical rather than strategic
effect.  It's also obviously an "emergency" card, ie, it belongs into that
archetype.

--------------------------------------------------------------------------------
41b145a6ef | wheals | 2014-01-27 14:10:52 +0100

Remove decks of dungeons from Nemelex's gifting.
Not every deck has to be gifted by Nemelex, and while dungeons did have a
coherent flavour it did not have an obvious use, at least compared to the other
four. In particular, it was never well differentiated from wonders, and neither
were the items that increased its weight vis-a-vis the items that increased
wonders'.

Trowel, the one memorable thing about the deck, is added to wonders. Dungeons
is made more common as a random spawn to compensate for not being a gift.

Minor save bump.

--------------------------------------------------------------------------------
1b0a304132 | Adam Borowski | 2014-01-27 14:10:52 +0100

Disperse away elemental illsprings, to /dev/null
After spirit wolves, they were the worst monster in the Forest (and beyond).
Other proposed removals: water nymph, treants.

--------------------------------------------------------------------------------
2359b9c5b5 | Adam Borowski | 2014-01-27 14:10:52 +0100

Don't use "hp" in a player-visible description.

--------------------------------------------------------------------------------
9b0868a5d1 | Adam Borowski | 2014-01-27 14:10:52 +0100

Desc the vine stalker dummy monster.
It can't place, the desc is mostly to shut up db_lint.

--------------------------------------------------------------------------------
5daeeddd81 | Adam Borowski | 2014-01-27 14:10:51 +0100

Add Fo to kb_arrival_jail.
No Dj, LO and VS for now, as their dummy monsters are not fully functional.
Dj work except for no tile, LO and VS have none of their expected properties.

--------------------------------------------------------------------------------
dd3d4e257d | Adam Borowski | 2014-01-27 14:10:51 +0100

Generate no Forest in the Vaults.
In neither of proposed destinies for the Forest (removal and replacement of
Vaults), it is a Vaults subbranch.

--------------------------------------------------------------------------------
ad6e923487 | Adam Borowski | 2014-01-27 14:10:51 +0100

Don't place two pan lords in rand_demon_1.

--------------------------------------------------------------------------------
44f6157c83 | pubby | 2014-01-27 14:10:51 +0100

Fix a few more diggable arrival vaults.
Missed a few in 84aeff39740f751c0f066a1c58a8fe91273376a4

--------------------------------------------------------------------------------
f2466d371d | Adam Borowski | 2014-01-27 14:10:51 +0100

Move nicolae_whirpool deeper.
Early on, it's an unfun exercise in making exclusions.

--------------------------------------------------------------------------------
fc2badc080 | Adam Borowski | 2014-01-27 14:10:51 +0100

Make ice floating over water slow, same as monster ice beasts.

--------------------------------------------------------------------------------
1d589cdceb | Adam Borowski | 2014-01-27 14:10:50 +0100

A quote for the Flight spell (Arrhythmia)

--------------------------------------------------------------------------------
e3a0bba8db | Adam Borowski | 2014-01-27 14:10:50 +0100

Inline a now degenerate function.

--------------------------------------------------------------------------------
edd95e3662 | Adam Borowski | 2014-01-27 14:10:50 +0100

Partially revert "Fix Pan stair logic broken by 0004888."
I added another special case for now, but it at least is smaller in scope.
With some clean-up, even that could get removed.

--------------------------------------------------------------------------------
9fe28740f6 | Adam Borowski | 2014-01-27 14:10:50 +0100

Paint Sewer walls blue.

--------------------------------------------------------------------------------
d317749e19 | Neil Moore | 2014-01-27 02:04:55 -0500

Fix a citation's spelling.

--------------------------------------------------------------------------------
03b8353fa9 | Neil Moore | 2014-01-27 02:00:36 -0500

Add a detranslated French quote.

--------------------------------------------------------------------------------
2b13bce6a3 | Neil Moore | 2014-01-27 01:34:23 -0500

Fix a quote in a quote.

--------------------------------------------------------------------------------
43d7d9a625 | Neil Moore | 2014-01-27 01:31:30 -0500

Fix citation and formatting of a quote.

--------------------------------------------------------------------------------
56c927da22 | Steve Melenchuk | 2014-01-26 23:02:50 -0700

A completely unserious and temporary grand avatar tile.
<tenofswords> the 'real' tiles should obviously be cycling impossible
              weapons covered in blood

--------------------------------------------------------------------------------
4968c94996 | Pekka Lampila | 2014-01-27 08:02:15 +0200

Give a message when inventory item is identified in certain ways
Those ways being figuring out the last targeted scroll or what a potion
tried by a monster must be.

Also a minor clean up for set_ident_type code.

--------------------------------------------------------------------------------
d6ccac1efd | Steve Melenchuk | 2014-01-26 22:41:57 -0700

A rudimentary worldbinder tile.

--------------------------------------------------------------------------------
03caa304e1 | Steve Melenchuk | 2014-01-26 22:34:20 -0700

Grand avatar glyph is now magenta 'R' (tenofswords).

--------------------------------------------------------------------------------
d764f22516 | Steve Melenchuk | 2014-01-26 22:13:01 -0700

Temporary tiles for the demonspawn enemies.
Nothing for the worldbinder or grand avatar as yet.

--------------------------------------------------------------------------------
a16377748f | Pekka Lampila | 2014-01-27 07:00:10 +0200

Fix setting needs_autopickup prop in maybe_identify_base_type

--------------------------------------------------------------------------------
f9f55e972c | Sage | 2014-01-27 06:07:19 +0200

Automatically identify the last unknown item in relevant base types.
'Relevant base types' are wands, staves, scrolls, potions, rings, amulets.

(Various tweaks and cleanups by Medar)

--------------------------------------------------------------------------------
85eebba965 | Pekka Lampila | 2014-01-27 05:22:20 +0200

Set removed item types as ID_KNOWN_TYPE
Mainly useful for auto identifying the last item of each type.

--------------------------------------------------------------------------------
94ac2d2697 | Steve Melenchuk | 2014-01-26 19:49:31 -0700

Chaos champions: Rearrange the Pieces.
This is a close analogue of Xom's "rearrange the pieces" effect, only it
selects pairs of nearby creatures randomly to swap around rather than
swapping you with a nearby target first and then swapping nearby
monsters indiscriminately; every nearby creature here is guaranteed to
be repositioned (unless there are an odd number of creatures in view, in
which case one will be left out). There are also no confusion effects.

Chain of Chaos is now unused; it's been suggested it be used for a Xom
effect, but I'll leave that to others to figure out.

--------------------------------------------------------------------------------
fd4a9a8757 | Steve Melenchuk | 2014-01-26 19:32:00 -0700

Remove Polymorph from corrupters (tenofswords).

--------------------------------------------------------------------------------
ceabd1f78e | Steve Melenchuk | 2014-01-26 19:30:30 -0700

Give Chaotic Mirror its own beam type / hex list (tenofswords).

--------------------------------------------------------------------------------
13acf99198 | Steve Melenchuk | 2014-01-26 19:19:45 -0700

Halve Sap Magic's -Wiz penalties (tenofswords).

--------------------------------------------------------------------------------
204048d8f7 | Steve Melenchuk | 2014-01-26 19:18:00 -0700

Flatten Sap Magic and Chaotic Reflection effect chances (tenofswords).
Sap Magic is 70%; Chaotic Reflection is 40%.

--------------------------------------------------------------------------------
9cd44196e3 | Pekka Lampila | 2014-01-27 02:42:44 +0200

Make items needing autopickup prompt for sacrifice (#7838)
Same as =p inscription. Also don't count them as greedy sacrificable
(for auto_sacrifice).

--------------------------------------------------------------------------------
3f2b1c59b4 | Chris Campbell | 2014-01-26 21:16:19 +0000

Place uniques less frequently in Orc endings

--------------------------------------------------------------------------------
bee4d0a01b | tenofswords | 2014-01-26 13:21:38 -0500

Buff corrupter's planerend summons
The pile of flat chances making an already random enough threat weaker
were getting on my nerves, and Pan should try to kill people
with a little less chance to drop in death yaks or whatever.
There are a lot of tweaks I'd like to make to the set still in the
wake of the Forest dispersal project, but for now this should *try*
to be a little more scary.

--------------------------------------------------------------------------------
e69afc6acb | Chris Campbell | 2014-01-26 17:01:01 +0000

Reduce ponderous penalty for monsters, too

--------------------------------------------------------------------------------
8230723e9b | Neil Moore | 2014-01-26 11:51:07 -0500

Reduce ponderous penalty to 1.
As suggested by minmay, ChrisOelmueller, and probably others. This
reflects the change to the running ego.

--------------------------------------------------------------------------------
fca2108537 | Neil Moore | 2014-01-26 11:51:06 -0500

Rearrange species selection; remove obsolete comment.

--------------------------------------------------------------------------------
630f14a7d9 | Neil Moore | 2014-01-26 11:25:17 -0500

Formatting fixes.

--------------------------------------------------------------------------------
202e82eb40 | Sage | 2014-01-26 11:15:41 -0500

Make vine stalker bite's mana drain key off of current mana.
...and remove int's effect on vine stalker bite damage.
0.25 * 1dDamage at mp == max_mp, 1.25 * 1dDamage at 0 mp.
This should solve the problem that vine stalker bite was more
useful for melee backgrounds solely as a source of extra hp
than it was for magical backgrounds as a source of mana
replenishment.

--------------------------------------------------------------------------------
4003b41f43 | Sage | 2014-01-26 11:15:41 -0500

Delay regen II to xl6, and regen III to xl12.
The early game should be harder now that creatures can damage vine stalkers
through their regeneration, and this shouldn't contribute to run-
regeneration tedium since, if a vine stalker tangles with an orc warrior or
ogre early on, they'll likely be smashed.

--------------------------------------------------------------------------------
d76074c76a | Sage | 2014-01-26 11:15:41 -0500

Reduce vine stalker Fighting aptitude by 1.

--------------------------------------------------------------------------------
67e710a28f | Sage | 2014-01-26 11:15:41 -0500

Make vine stalker bite manadrain all creatures for 1dDamage.

--------------------------------------------------------------------------------
ce1a58ae8d | Sage | 2014-01-26 11:15:41 -0500

Add 'int/2 - 6' to vine stalker bite formula, and cap damage to 24.
This should make it more attractive as a way to replenish mana for book
backgrounds, and somewhat less powerful with melee backgrounds.
Specifically: Fi gets -2 damage, Mo -1, *K +0, Ne +1.5, Wz +3.

--------------------------------------------------------------------------------
84dddcc57f | Sage | 2014-01-26 11:15:41 -0500

Halve vine stalker manavamp across the board.

--------------------------------------------------------------------------------
1853da09c5 | Sage | 2014-01-26 11:15:41 -0500

Reduce vine stalker starting regen to II, upgrades to III at xl8.

--------------------------------------------------------------------------------
1136ad59c4 | Sage | 2014-01-26 11:15:40 -0500

Add Plane Stalker.

--------------------------------------------------------------------------------
8ddf05a6b6 | Neil Moore | 2014-01-26 11:15:40 -0500

A few tweaks to VS monster.
No corpse or zombie, and no blood.  Also move it to the Ps.

--------------------------------------------------------------------------------
d62e238a84 | Sage | 2014-01-26 11:15:40 -0500

Reduce vine stalker experience apt by 1.

--------------------------------------------------------------------------------
452658bda2 | Sage | 2014-01-26 11:15:40 -0500

Add adjective and genus for vine stalker naming.

--------------------------------------------------------------------------------
342daa02e8 | Sage | 2014-01-26 11:15:40 -0500

Add MONS_VINE_STALKER.
This shouldn't place. Mainly it is for the player vine stalker glyph.

--------------------------------------------------------------------------------
321c037b67 | Sage | 2014-01-26 11:15:40 -0500

Change 'magic' to 'power' for non-spellcaster manadrain message.
In case people are wondering what vine stalkers get when biting e.g. geckos.

--------------------------------------------------------------------------------
cb62a7f8bf | Sage | 2014-01-26 11:15:39 -0500

Prevent vine stalker bite from draining firewood or summons.
Summons still get antimagic applied, though.

--------------------------------------------------------------------------------
c7943516ac | Sage | 2014-01-26 11:15:39 -0500

Vine stalkers added.
Weirdness and Mutations:
- Fangs II (Becomes III at xl8)
- Antimagic bite (Much stronger than standard bite, bites every turn,
  applies antimagic brand, and restores your mana)
- Potions and wands cannot restore your HP
- Regen III
- Unbreathing
- Spirit shield
- HP -3
- MP +1

--------------------------------------------------------------------------------
3cf34dd112 | Steve Melenchuk | 2014-01-25 22:15:29 -0700

Don't share spectral weapon damage from shadow mimic attack (#7995).
Attempting to do so causes a crash.

--------------------------------------------------------------------------------
7c294fe32e | Steve Melenchuk | 2014-01-25 22:04:25 -0700

Fix shadow mimic spellcasting power (#8026).
Using min instead of max was causing your shadow's HD to always be 1
unless you yourself were XL1, in which case its HD was 0 and causing its
spellpower to be 0.

--------------------------------------------------------------------------------
343cedf607 | Steve Melenchuk | 2014-01-25 21:53:22 -0700

Print a different message if Shadow Step is blocked by unseen enemy.
Related to #8028; I'm not sure what the best behaviour is here.

--------------------------------------------------------------------------------
fbeb56b292 | Steve Melenchuk | 2014-01-25 21:37:52 -0700

Fallback to species properly in zombie_picker (#8046).
For branches primarily made up of derived enemies (Elf), corpses can now
be generated properly from e.g. Kiku's Receive Corpses.

--------------------------------------------------------------------------------
d2bf02084f | Steve Melenchuk | 2014-01-25 21:36:29 -0700

Check that monsters can actually cast fire spells for Dith (#8023).
...rather than that they have the spell slots filled, even if they can't
cast them.

This was causing e.g. mottled dragon zombies to give extra piety.

--------------------------------------------------------------------------------
e23831b124 | Steve Melenchuk | 2014-01-25 21:14:28 -0700

Don't shadow-mimic needle attacks (#8010, 78291).
Needles are all about the effects they impact, so shadow-firing a plain
needle is useless if not counterproductive.

--------------------------------------------------------------------------------
829a5c4a4e | Steve Melenchuk | 2014-01-25 21:12:44 -0700

Reword a previously reworded Dith piety gain message.
Both to make it consistent with the other relevant message, and to
introduce a subtle play on "extinguishing" (always a plus in my books).

--------------------------------------------------------------------------------
254624c905 | Chris Campbell | 2014-01-25 09:38:30 +0000

Adjust the description of slaying
To hopefully clarify that it affects melee attacks and ranged weapons, but
not spells.

--------------------------------------------------------------------------------
3e9b1976cf | Chris Campbell | 2014-01-25 09:38:29 +0000

Adjust some god ability gain/loss messages (#8046)
Make loss of Trog's Hand a little clearer, and say "You sometimes bleed
smoke" instead of "You can sometimes bleed smoke" under Dith to make it
sound more passive.

--------------------------------------------------------------------------------
ca92d1a386 | elliptic | 2014-01-24 22:21:09 -0500

Split the note_chat_messages option into note_chat_messages and 
note_dgl_messages.
Webtiles chat and DGL messages have different functionality and are used in
completely different ways. Webtiles chat doesn't necessarily involve the
player of the game being spectated (and indeed it often seems not to have
anything to do with the game), while DGL messages are invisible unless the
player chooses to read them and thus usually consist of a conversation
between the player typing in notes and a spectator. Not logging DGL
messages (which was recently made default) is thus usually undesirable
because it means logging only one side of a conversation (the player's).

The new option note_dgl_messages defaults to true.

--------------------------------------------------------------------------------
aee9c71329 | Steve Melenchuk | 2014-01-24 18:50:02 -0700

Putrid DS PBD triggers on all nearby corpse-leaving deaths (tenofswords).

--------------------------------------------------------------------------------
22cd082389 | tenofswords | 2014-01-24 20:22:12 -0500

New demonspawn class descriptions (still drafts)
The phrasing could use work, but these extended descriptions
should explain a bit about the classes through connecting each to
some of Crawl's gods plus speak indirectly of each class's natures.

Demonspawn and draconian class/base descriptions could probably
be moved out of describe.cc entirely, somehow, but whatever,
that's for others to handle.

(Also, torturous Ds should get a small bit about their augmentation
and powered by pain, but that seems quite difficult to fit in.)

--------------------------------------------------------------------------------
9ac9943256 | ontoclasm | 2014-01-24 19:01:39 -0600

Metal wall tile edits
Hopefully these will make them a bit more varied and metallic-looking.

--------------------------------------------------------------------------------
8ed35d27c8 | Chris Oelmueller | 2014-01-25 01:00:40 +0200

Check for harmful monsters or clouds before easy-eating (wheals)
Now prompt in those cases even if `easy_eat = true`.

--------------------------------------------------------------------------------
23562a0c5d | Pekka Lampila | 2014-01-25 00:51:21 +0200

Allow mutagenic chunks to be eaten when satiated
They don't give nutrition and player can usually get hungry by spamming
spells/rods/abilities anyway.

--------------------------------------------------------------------------------
63e917aaf1 | elliptic | 2014-01-24 17:19:23 -0500

Add a milestone at game start.
This lets Sequell, tourney scripts, CAO scoring pages, etc know about the
existence of every game that is in progress, not just the ones with a real
milestone.

It is currently not announced by any IRC bot except Ruffell, and RHF doesn't
seem to have enough games started per day for this to be a block (though
of course hopefully Ruffell will start muting them sometime soon).

--------------------------------------------------------------------------------
b71ebd8afe | tenofswords | 2014-01-24 15:22:53 -0500

Throw Ds into random pan lord vaults, pan.des tweaks
Through functionizing up some basic chunks of to ostensibly also
serve as a clean-up in making a varied number of vault header styles
consistent and abbreviated, throw in some minor chances for demonspawn
to infiltrate the random pan lord vaults. The chances may be in fact
too low, but avoiding gimmick overload is just as important as
making sure each floor and the branch overall is unique with
these new branch-specific monsters. Further tweaking may be necessary.

(The stairs code management here is not playing greatly nicely
through inconsistency between four or three transit_pandemonium
a level in a way that seems to be seperate of how each vault
places a stair, so some further investigation may be warranted.
It should at least be much easier to address such a problem,
or the weights of inserted demonspawn or whatever.)

Also, slightly buff the weakest of the unrand pan lord vaults, and
throw in tiny chances for some guests into each unrand pan lord set.

--------------------------------------------------------------------------------
56eb5f9734 | Neil Moore | 2014-01-24 12:48:29 -0500

Don't list insects as "mindless" in xw (thedefinite)
There are clear behaviour differences between mindless and
insect-intelligence creatures, particular with regards to clouds.

Since insect versus animal intelligence is important to Elyvilon,
provide a different wording for insects, but only for Elyvilites.

--------------------------------------------------------------------------------
62b873ff24 | tenofswords | 2014-01-24 09:32:34 -0500

Merge branch 'demonspawn-enemies' of gitorious.org:crawl/crawl into 
demonspawn-enemies

--------------------------------------------------------------------------------
6d54aa7fd2 | tenofswords | 2014-01-24 09:16:01 -0500

Adjust DS bands, throw into pan spawn slots, zigs
Directly copying draconian bands mostly makes melanges and also floods
Pan with swarms of Ds, and as such I'm lowering their minimum and maximum
band sizes while also including some (somewhat weird) thematic demons and
repeats per given Ds spawn. A little experimental, but effective enough.
As such, they can be thrown into the pan level spawn slot generator thing,
for both fodder and weird unique greater threats (give or take lowering
the overall chances for placing them). They're not super-common, but it's
important to not flood the branch with these complicated jerks.
Also, do some initial zig placement.

Still have to put them into pan lord vaults, though.

--------------------------------------------------------------------------------
e7a06b06df | Chris Campbell | 2014-01-24 13:45:04 +0000

Capitalise "The Shining One" on the overview and in character dumps
Since it's the start of a sentence in those places.

--------------------------------------------------------------------------------
81aee59235 | Chris Oelmueller | 2014-01-24 13:26:52 +0000

Change defaults of show_as_stacks and filter_useless in Ctrl-F
show_as_stacks used to hide some items behind rather unintuitive parens,
and this has come up as actual problem more than once.
filter_useless on the other hand used to spam you with many mostly
irrelevant items and similarly suffered from the weird help line.

The new settings are: show_as_stacks = false, filter_useless = true.

--------------------------------------------------------------------------------
b79a34a563 | Chris Oelmueller | 2014-01-24 13:26:50 +0000

Slightly revamp help header in Ctrl-F
The old one did really not help any player whatsoever, I tested with
several new ones. Nobody was able to find out what it tried to convey.

Hopefully this layout gets the important points across better now.
What should also be changed are some of the defaults themselves. This
might be addressed in a subsequent commit.

--------------------------------------------------------------------------------
15733ccd86 | Chris Oelmueller | 2014-01-24 12:34:30 +0000

Exclude firewood from Ctrl-V except for Fedhas worshippers
Those might frequently need to check plant HP for retreating, and Ctrl-V
is a convenient way of doing so. Everybody else just doesn't care about
stuff enough to flash it in (usually) green all over their screen.

--------------------------------------------------------------------------------
148ea59f5f | Chris Campbell | 2014-01-24 12:33:40 +0000

Reword jump ability description to be clearer about targeting a monster

--------------------------------------------------------------------------------
e7ec943b52 | Steve Melenchuk | 2014-01-23 20:15:16 -0700

Grand avatars hang out near the last target they attacked (tenofswords).
This is instead of blinking back to their summoner after attacks.

--------------------------------------------------------------------------------
5dc32985b7 | Steve Melenchuk | 2014-01-23 17:21:53 -0700

Fix tiles compilation.

--------------------------------------------------------------------------------
85d3b5d8a6 | Steve Melenchuk | 2014-01-23 15:29:56 -0700

Fix a grand avatar-related crash.
grand_avatar_reset() can dismiss the avatar; trying to do things with it
afterwards will cause crashes.

--------------------------------------------------------------------------------
5820b63040 | Steve Melenchuk | 2014-01-23 15:24:21 -0700

"Fix" monspec for specific faceted nonbase demonspawn.
That is, "torturous warmonger" is a valid monspec again.

--------------------------------------------------------------------------------
282e352884 | Steve Melenchuk | 2014-01-23 15:19:04 -0700

Only print one cast message for Legendary Destruction.

--------------------------------------------------------------------------------
6092615bac | Steve Melenchuk | 2014-01-23 15:16:37 -0700

Reroll out-of-range Legendary Destruction spells.
This doesn't strike me as ideal, but it's the best solution I can
immediately think of that doesn't require refactoring huge chunks of
code.

--------------------------------------------------------------------------------
d39c9245b9 | Steve Melenchuk | 2014-01-23 15:07:32 -0700

Actually render targets immune to consecutive Flash Freezes.
Monsters won't cast the spell deliberately if you're already frozen, but
Legendary Destruction can roll Flash Freeze even if you're already
frozen and it shouldn't have a further impact if you're already frozen.

There's probably a better way to do this, but, well, beam code...

--------------------------------------------------------------------------------
f6a566e508 | Steve Melenchuk | 2014-01-23 14:54:23 -0700

Add a couple of the demonspawn spells to exper_value().
It's really hard to tell what deserves to be here and what doesn't -
right now it mostly seems to be "big scary conjurations" at the top of
the list with "big scary summons" a few steps behind, so the spells that
fit those descriptions are here now.

--------------------------------------------------------------------------------
70c693166f | Steve Melenchuk | 2014-01-23 14:47:50 -0700

Fix staves of fire and cold not calling expose_to_element().
Mainly so that staves of fire can melt icemail.

--------------------------------------------------------------------------------
94aee4ab19 | Steve Melenchuk | 2014-01-23 14:25:56 -0700

Adjust handling of enemy Icemail melting.
This moves the code to monster::expose_to_element() (where it should be)
and adjust cloud code to also call that function for monsters (not just
players).

Still to fix: enhancer staves not exposing targets to elements.

--------------------------------------------------------------------------------
c21c0b0539 | Steve Melenchuk | 2014-01-23 14:16:20 -0700

Monstrous demonspawn prefer not to use weapons (tenofswords).
They'll still gladly armour up.

--------------------------------------------------------------------------------
e317583087 | Neil Moore | 2014-01-23 16:10:11 -0500

Fix swapped keybindings in documentation (Kron, #8036)

--------------------------------------------------------------------------------
d4ef825fcd | Neil Moore | 2014-01-23 11:50:35 -0500

Re-add *.stat to .gitignore.
The old fsim output wasn't the only instance: both acquirement
statistics and Xom debugging also use this filename extension.

--------------------------------------------------------------------------------
62f23800c1 | Neil Moore | 2014-01-23 11:46:08 -0500

Don't repeat ID message for holy wrath artefacts either.
Even if only the {holy} part is known.

--------------------------------------------------------------------------------
365d83e9a0 | Chris Oelmueller | 2014-01-23 11:35:51 -0500

Only print identification message once when repelling curses
Pretty annoying in tomb, sorry for not testing 0.14-a0-750-g6de8feb as
I should have!

--------------------------------------------------------------------------------
8d50028c33 | Chris Campbell | 2014-01-23 13:34:08 +0000

Use autopickup_exceptions for rune autopickup
To allow the default to be changed, instead of forcing it always.

--------------------------------------------------------------------------------
00d674960a | Raphael Langella | 2014-01-23 13:45:03 +0100

Update git ignore to account for the change to fsim output file name.

--------------------------------------------------------------------------------
cff5ce532a | Raphael Langella | 2014-01-23 13:44:02 +0100

Change the fsim csv separator to tab.

--------------------------------------------------------------------------------
b3a1a26f5b | Raphael Langella | 2014-01-23 11:56:24 +0100

Autopickup runes by default.
Is it really the proper way to set it?

--------------------------------------------------------------------------------
81181cc251 | Raphael Langella | 2014-01-23 11:08:14 +0100

Autopickup rods by default.

--------------------------------------------------------------------------------
0134c9779a | Steve Melenchuk | 2014-01-22 23:14:20 -0700

Actually have Flash Freeze on Legendary Destruction list.
Oops.

--------------------------------------------------------------------------------
aeee12662d | Chris Campbell | 2014-01-23 05:56:43 +0000

Replace explosive bolt with fireball in monster legendary destruction
Explosive bolt is very likely to be functionally the same as fireball
when cast by monsters - the "beam of explosions" effect is something that
could perhaps be re-used as a player effect.

--------------------------------------------------------------------------------
81f1494012 | Chris Campbell | 2014-01-23 05:56:42 +0000

Reword a monster casting message

--------------------------------------------------------------------------------
81aa9c934e | Steve Melenchuk | 2014-01-22 22:50:40 -0700

Grand avatar blinks near target out of line-of-fire (tenofswords).

--------------------------------------------------------------------------------
934f89028e | Steve Melenchuk | 2014-01-22 22:06:56 -0700

Trigger grand avatar on ranged attacks (tenofswords).
Also contains some merging of duplicate code.

--------------------------------------------------------------------------------
317cdd5a35 | Steve Melenchuk | 2014-01-22 21:49:08 -0700

Tune-ups to Corrupt Body (tenofswords).
* Print a different message if the mutation didn't go through.
* Stat drain mutations are no longer bestowed; instead there are new
  MUT_HEAT_VULNERABILITY and MUT_COLD_VULNERABILITY to match
  MUT_HEAT_RESISTANCE and MUT_COLD_RESISTANCE.
* Corruption mutations will attempt to grant two levels of the mutation
  where possible.

--------------------------------------------------------------------------------
10c7741436 | Steve Melenchuk | 2014-01-22 21:28:55 -0700

Remove stat drain from Black Mark-influenced melee (tenofswords).

--------------------------------------------------------------------------------
c8db3d07e1 | Steve Melenchuk | 2014-01-22 21:24:19 -0700

Disallow banishment and polymorph from chain of chaos (tenofswords).
Perhaps this would be better served with its own beam type so as to be
able to define the effects precisely?

--------------------------------------------------------------------------------
f420a50a0d | Steve Melenchuk | 2014-01-22 21:17:42 -0700

Reset chain of chaos' flavour to BEAM_CHAOS per beam.
Cursory testing suggests this fixes having the same effect turn up for
beam, which is undesirable.

--------------------------------------------------------------------------------
8dbb594d5b | Steve Melenchuk | 2014-01-22 21:10:56 -0700

Don't assign both M_ACTUAL_SPELLS and M_PRIEST to black suns.
They're supposed to be mutually exclusive (todo: assign separate spell
sets for spells, invocations, and natural abilities so they can be
treated differently).

This is mainly a compilation fix.

--------------------------------------------------------------------------------
d6014ade42 | Chris Campbell | 2014-01-23 03:44:50 +0000

Don't give random demonspawn rare armours
GDA, PDA and crystal plate should probably be reserved for uniques.

--------------------------------------------------------------------------------
3e4375b6e9 | tenofswords | 2014-01-22 22:36:09 -0500

Another description edit (minmay)

--------------------------------------------------------------------------------
d8cd4a06b4 | tenofswords | 2014-01-22 22:34:46 -0500

Typo fix.

--------------------------------------------------------------------------------
e7a4d24fe7 | tenofswords | 2014-01-22 22:25:21 -0500

Edit misc demonspawn stats, gear, description
 * Give SInv to monstrous demonspawn (implied by sometimes antennae)
   and black suns (implied by their weird radiance), but not
   to the others. This might be interestingly generous when paired
   with overall mediocre demonspawn MR and against other demons...
 * Cut into torturous / putrid ds blood saint / black sun health.
   They either already heal themselves or like being hurt.
 * Buff warmonger health, to go with their theme and what not.
 * Don't annoy players with non-lethal threats: take away base
   demonspawn shields and lower black sun / corrupter shield quality.
 * Edit the base ds description to be less awkward with
   the appended base and class descriptions and in general.
 * Baudlaire quote, because.

--------------------------------------------------------------------------------
704b42257f | Steve Melenchuk | 2014-01-22 12:51:51 -0700

Fix a typo in ENCH_AGILE expiry (ChrisOelmueller).

--------------------------------------------------------------------------------
a53592e889 | Steve Melenchuk | 2014-01-22 11:40:05 -0700

Properly pick locations for arena random demons/draconians/demonspawn.

--------------------------------------------------------------------------------
14036b1677 | Steve Melenchuk | 2014-01-22 11:03:28 -0700

Properly name Legendary Destruction description entry (|amethyst).

--------------------------------------------------------------------------------
eb3cb48f17 | Steve Melenchuk | 2014-01-22 09:56:24 -0700

A spell for corrupters: Corrupt Body.
It introduces one (occasionally two) temporary mutations picked from a
list supposed to represent bodily corruption. (List subject to change.)

--------------------------------------------------------------------------------
0264f3d967 | Steve Melenchuk | 2014-01-22 09:50:16 -0700

Fix a typo in the Planerend description (ChrisOelmueller).

--------------------------------------------------------------------------------
7172c926b8 | Chris Campbell | 2014-01-22 11:35:33 +0000

Remove another reference to umbra being unholy (#8025)

--------------------------------------------------------------------------------
49a5acb71d | DracoOmega | 2014-01-22 04:16:28 -0330

Fix ghouls and mummies being unable to use finesse
And defensively guard against something similar happening to the
next ability added in this function.

--------------------------------------------------------------------------------
2cbbc919f0 | Steve Melenchuk | 2014-01-21 22:32:23 -0700

Remove "demonspawn" from nonbase demonspawn names.
"torturous demonspawn chaos champion" is excessively long for a monster
name; ##crawl-dev agrees.

--------------------------------------------------------------------------------
eda6659c10 | Steve Melenchuk | 2014-01-21 22:32:08 -0700

Fix a Black Mark crash.
Oops.

--------------------------------------------------------------------------------
787102109e | Steve Melenchuk | 2014-01-21 22:11:40 -0700

Add Dispel Undead to the demonspawn black sun spellbook.
I meant to do this on the first pass but somehow forgot about it.

--------------------------------------------------------------------------------
f63b8a728b | Steve Melenchuk | 2014-01-21 22:11:39 -0700

Spawn locales for the new enemies.
The demonspawn obviously spawn in Pan; base demonspawn have 1000 weight
each (same as 3s and 2s) and nonbase have 800 weight (80% of the base
weight, as with nonbase vs base draconians in Zot). They appear in bands
- 2-4 for base draconians, 4-7 for those led by nonbase (of which the
first follower has a 50% chance of being nonbase, the second has a 25%
chance of being non-base, and the remainder are base).

This also sneaks the worldbinder into Abyss, stealing 1/3 of the weight
of ynoxinuls per the original proposal.

The weights may need to be adjusted further.

--------------------------------------------------------------------------------
50d6c27ca7 | Steve Melenchuk | 2014-01-21 22:11:39 -0700

Fix holy wrath et al not working against demonspawn enemies.

--------------------------------------------------------------------------------
8bc706802c | Steve Melenchuk | 2014-01-21 22:11:39 -0700

Group demonspawn in monster display like draconians.

--------------------------------------------------------------------------------
2cf8d755b1 | Steve Melenchuk | 2014-01-21 22:11:39 -0700

Demonspawn warmonger: Sap Magic.
Based on Punishment of Excess from the proposal.

Casting spells while afflicted by this hex progressively hinders your
spellcasting success (or adds antimagic enchantment levels if you are a
monster).

Technically this could be extended to have an effect specific to
individual spell schools, but that would result in a lot of duplication
of durations and the like.

--------------------------------------------------------------------------------
ce86bbf137 | Steve Melenchuk | 2014-01-21 22:11:39 -0700

Demonspawn warmongers: Grand Avatar.
Listed in the proposal as Icon of Greatness.

A grand avatar behaves similarly to both a spectral weapon and a
battlesphere in that it attacks targets the caster and its nearby allies
either attack in melee or by battlesphere-triggered conjurations; it
is only guaranteed to attack if the triggerer does at least 15 damage,
though it may trigger randomly below that threshold.

--------------------------------------------------------------------------------
889f32d1af | Steve Melenchuk | 2014-01-21 22:11:39 -0700

Demonspawn black suns: Black Mark.
Originally Black Hole in the proposal, but with a Singularity spell
in the works that's too misleading a name.

This spell empowers the caster and its allies to randomly drain speed,
skills, abilities, or magic on successful damaging melee attacks,
healing the ally making the attack.

This commit also gives black suns a (temporary?) spell set loosely based
in the proposal; they also get Malign Offering, which I see as fitting
both the necromancy theme and the ability of the caster to heal their
allies (through Black Mark).

--------------------------------------------------------------------------------
9bf2e4835f | Steve Melenchuk | 2014-01-21 22:11:39 -0700

Demonspawn chaos champions: Chaotic Mirror.
Xom thinks HD-check chaos smiting is hilarious!

--------------------------------------------------------------------------------
e2db22773f | Steve Melenchuk | 2014-01-21 22:11:38 -0700

Demonspawn chaos champions: Chain of Chaos.
This blatantly hijacks the chain lightning code for its own purposes,
but it works somehow.

Xom roars with laughter!

--------------------------------------------------------------------------------
787699c571 | Steve Melenchuk | 2014-01-21 22:11:38 -0700

Mark demonspawn corrupters as spellcasters.
Oops.

--------------------------------------------------------------------------------
3abecfcfe7 | Steve Melenchuk | 2014-01-21 22:11:38 -0700

Temporarily give Polymorph to demonspawn corrupters.
Until a better spell for them to use apart from Planerend can be designed.

--------------------------------------------------------------------------------
6b95421126 | Steve Melenchuk | 2014-01-21 22:11:38 -0700

Don't try to generate nonbase demonspawn zombies.

--------------------------------------------------------------------------------
7a4bcc84a7 | Steve Melenchuk | 2014-01-21 22:11:38 -0700

Worldbinders, Forceful Invitation, Planerend.
These are all interrelated - worldbinders being an abyssal enemy design
which casts Forceful Invitation and is itself summoned by Planerend.

The two spells summon lesser and greater creatures from other branches
in the dungeon. Forceful Invitation fixates on one branch and summons
lesser enemies; Planerend draws from all branches and summons greater
enemies.

--------------------------------------------------------------------------------
a9049cb8c5 | Steve Melenchuk | 2014-01-21 22:11:38 -0700

Demonspawn blood saint: Ephemeral Infusion.
Heals allies in LOS temporarily for an average of (2 * HD) hit points,
lasting an average of (HD * 10) aut; expiry never kills the
beneficiaries.

--------------------------------------------------------------------------------
aed014cc4c | Steve Melenchuk | 2014-01-21 22:11:38 -0700

Demonspawn blood saint: Legendary Destruction and support spells.
The support spells are Orb of Electrocution (as a monster spell),
Explosive Bolt (seen on the proposal as Bolt of Fireball), and Flash
Freeze.

The monster takes 10 damage to cast one of Orb of Electrocution, Crystal
Spear, Orb of Destruction, Ghostly Fireball, Explosive Bolt, or Flash
Freeze (not all equally weighted).

Some of the messaging could be improved, but the underlying framework is
present and accounted for.

--------------------------------------------------------------------------------
b9d1c37d13 | Steve Melenchuk | 2014-01-21 22:11:07 -0700

Assign attack base damages to nonbase demonspawn types.
Rather than having them be all be clones of one another, this is the
first step to making them distinct.

--------------------------------------------------------------------------------
a3555fdd99 | Steve Melenchuk | 2014-01-21 22:11:07 -0700

Putrid demonspawn always leave corpses.

--------------------------------------------------------------------------------
1f1a85a004 | Steve Melenchuk | 2014-01-21 22:11:07 -0700

A very exaggerated Powered by Death for putrid demonspawn.
Rather than regen-over-time, it's a one-time healing bonus for killing
something that leaves a corpse.

--------------------------------------------------------------------------------
5cd3e4e3e1 | Steve Melenchuk | 2014-01-21 22:11:07 -0700

Augmentation for torturous demonspawn.
Melee-wise, this adds a 15% damage bonus per augmentation tier;
spell-wise, it adds an effective 2 HD per tier.

There's a framework here to allow for other monster spell enhancers if
we decide we want to go down that road at some future date.

--------------------------------------------------------------------------------
f2c9da4351 | Steve Melenchuk | 2014-01-21 22:10:13 -0700

A BEAM_AGILITY for various purposes.
...now that there's an ENCH_AGILE to power it.

No spells use it directly, though it crops up in chaos effects and
allows monsters to drink potions of agility.

--------------------------------------------------------------------------------
f8cb75a49f | Steve Melenchuk | 2014-01-21 22:10:13 -0700

Powered by Pain for torturous demonspawn.

--------------------------------------------------------------------------------
fe637a9830 | Steve Melenchuk | 2014-01-21 22:10:12 -0700

A super-basic icemail effect for gelid demonspawn.
They come with an ENCH_ICEMAIL which gives them 10 AC; if they take fire
damage they permanently lose the ENCH_ICEMAIL.

Whether we want to have this regenerate or not I leave up in the air for
the moment.

--------------------------------------------------------------------------------
1bfb6b331a | Steve Melenchuk | 2014-01-21 22:10:12 -0700

Gear up demonspawn enemies.

--------------------------------------------------------------------------------
678a640e4d | Steve Melenchuk | 2014-01-21 22:10:12 -0700

Demonspawn enemies: underlying base/non-base monster work.
See:
https://crawl.develz.org/wiki/doku.php?id=user:hangedman#faceted_classed_demonsp
awn_for_pan
for explanations.

This includes a move of the demonspawn glyph to '6'; this is intended to
make the glyphs for each of the enemies unique, which wouldn't really be
possible with the overloaded '@' glyph.

A lot of the functionality that varies for base demonspawn is present,
including attack flavours and spininess; the base monsters differ
slightly to reflect this. The nonbase enemies are all currently
identical; further, nothing places anywhere yet.

Differentiation to come in following commits.

--------------------------------------------------------------------------------
f689adf1dc | DracoOmega | 2014-01-21 17:58:55 -0330

Actually make netted winged fliers fall to the ground
Despite messages saying that they 'fall like a stone!', they didn't
actually fall at all - you could net a harpy over water and it would
happily sit upon the water for several turns until it could free itself.

--------------------------------------------------------------------------------
45c03679f2 | DracoOmega | 2014-01-21 17:58:53 -0330

Don't making flying creatures/monsters completely immune to being netted
Not only does this seem rather unintuitive, there's actually specific
code to handle what happens when flying creatures get netted, except
that can never actually happen normally. (Well, they CAN get netted if
confused, but even then sometimes 'dart out from beneath the net')

The logic looked to me like it might have meant to give them a CHANCE
to evade due to flight, unless confused, rather than always evade due
to flight and sometimes do it even WHEN confused. At any rate, I don't
think it never working against flying things is very clear or a good idea.

--------------------------------------------------------------------------------
7281e07c72 | DracoOmega | 2014-01-21 17:58:52 -0330

And now let those monsters actually throw the items they've been given
Just as monsters with ranged spells would refuse to pick up throwing
ammo, they would also refuse to throw any ammo they somehow possessed.

I think this was originally meant to stop conjurer monsters from throwing
their melee weapons away, back when spears and daggers and such were
possible to throw. Since that's no longer an issue, and they cannot
actually pick up throwing ammo on their own, I don't see the need of this
check. If we specifically give them a throwing item, presumably we want
them to use it.

Maybe the learndb entry claiming Harold uses nets will finally be
accurate for the first time in years?

--------------------------------------------------------------------------------
eaa420e7ea | DracoOmega | 2014-01-21 17:58:51 -0330

Actually give monsters their intended ammo on creation
Because it checked the same code that governs whether a monster will
stop to pick something off the ground, monsters with ranged spells
would refuse to accept ammo given to them deliberately on creation.
Notably, this means that Harold never got any of the nets he was
supposed to have (and hasn't for years).

I don't really see why this code should be involved here, since
presumably if mon-gear tries to give a monster a specific item, it
does mean for the monster to have it, even if it would not otherwise
pick that item off the ground.

--------------------------------------------------------------------------------
9efeb9daea | DracoOmega | 2014-01-21 17:58:49 -0330

Don't have monsters cast beneficial spells on firewood

--------------------------------------------------------------------------------
83fed73ead | DracoOmega | 2014-01-21 17:58:46 -0330

Don't let convokers consider nearby plants to be allies
The presence of a plant clump would make them think they had enough
reinforcements that they didn't need to bother casting recall. (And
then they would cast might on those plants).

--------------------------------------------------------------------------------
e7b4354f35 | DracoOmega | 2014-01-21 17:58:43 -0330

Fix a few issues with the mesmerisation spell
Due to an apparent logic error, you would always resist mesmerisation
if you were already mesmerised (unlike mermaid/siren mesmerisation
which you inversely can never resist once already mesmerised). And,
in fact, the spell would just outright fail 50% of the time anyway.
From a comment, I get the impression it simply meant to make it cast
against you less often if you're already mesmerised, though this isn't
at all what it did - I have made it actually do this and otherwise be
more consistent with the more common form of mesmerisation.

This is a bit of a Jory buff, but I think he can take it (and I reduced
the spell power a little in compensation anyway).

--------------------------------------------------------------------------------
457a7b7d51 | Pekka Lampila | 2014-01-21 21:30:40 +0200

Don't make links in WebTiles chat bold (gammafunk)

--------------------------------------------------------------------------------
6c6fb9c48e | Neil Moore | 2014-01-20 22:54:52 -0500

Don't print a blank line on killing Pikel or Kirke away from band.
We were passing an empty string to the fineff in that case, but
should have passed null instead.

--------------------------------------------------------------------------------
5ab5b49a96 | Chris Campbell | 2014-01-21 02:51:08 +0000

Adjust monster MR display for the changes to adjective thresholds

--------------------------------------------------------------------------------
256b2eebc5 | tenofswords | 2014-01-20 21:31:02 -0500

Allow some Lair uniques further in Lair but not S:1, adjust uniq_dummy
As another small artefact of uniques being placed by absdepth, some
uniques are allowed into Snake/Swamp/Shoals/Spider:1 but not Lair:6-8,
which is a pretty backwards assumption of difficulty versus player power.
Thus, allow a few more uniques into late Lair and less into S:1, which
should probably equal out between the floor gained, the earlier
appearances, and the larger Lair dummy weight.

Also, tweak uniq_dummy's weight up just a bit.
The many uniques added over time have inherently meant more uniques
per game, especially worth considering with trends of removing or
revamping plain uniques and adding in more complex ones over time;
it's not a particularly major thing to adjust the placement of the dummy
up to compensate, especially when it avoids uniques spam per game.
Putting it up in a more meaningful amount should wait for some precise
per-version data of uniques chances per time, especially since the game
has been shortened over time too with so many floor cuts.
This will mainly serve as a reminder to address this again later.

--------------------------------------------------------------------------------
bf9ce7a71f | Neil Moore | 2014-01-20 21:25:27 -0500

Adjust and widen inter-column spacing in the ^o god list.
I neglected to adjust the column size when changing the number of
columns in 0.14-a0-2056-g4f2c7e8, so the layout accounted neither for
long god names having moved to different columns, nor for the extra
space left by the removed column.

Really this formatting should be done programmatically.

--------------------------------------------------------------------------------
5c5adc56c6 | tenofswords | 2014-01-20 16:09:17 -0500

Somewhat buff Cocytus, Vestibule, etc. water monsters
There's no point to spawning a big fish in Vestibule's Cocytus entry
or a big fish zombie in Cocytus itself, but it makes reasonable sense
to have some water monsters in these areas noticably defined by water.
As a result, this replaces the weakling water monsters and their zombies
with somewhat stronger monsters that still serve as fodder for their depth,
enough to be worth spawning but not enough to threaten, aside from lucky kraken.
The choices are also amphibious rather than water-bound, but kiting zombies
is again a non-issue for the depth.

Though there is almost no water in the other hells and almost all of said
water is flagged for no monster spawning, they too would get these zombies
if water spawns are permitted for any reason.

This also explicitly restrains the number of water monsters than spawn
within Vestibule's Cocytus entry, using a function to fake spawn weights.

The real solution would be custom zombie lists for hells to accompany
these random picks instead of just floors of dragon skeletons, due to some
underlying brokenness, but whatever.

--------------------------------------------------------------------------------
4f2c7e8d3a | Neil Moore | 2014-01-20 15:54:43 -0500

Print god list in ^o in four columns.
Was five. This doesn't change the total number of rows at the moment,
because the sixteenth temple god was already on its own row, and there
are only three non-temple gods.

--------------------------------------------------------------------------------
7ca72ca5ae | Steve Melenchuk | 2014-01-20 11:24:39 -0700

Guarantee a demonic rune or Pan exit in evilmike_holy_pan.
It's in the heart of the fortress with the main loot pile - you'll need
to get past the seraph to get there.

This has been brought up on several occasions and I think it's worth
trying out for the moment; at the very least it should help get us more
feedback with respect to what to do with the problematic holy monsters.

--------------------------------------------------------------------------------
5511118d09 | Steve Melenchuk | 2014-01-20 11:24:34 -0700

Place Pan transit gates in minor panlord vaults.
This should give players an incentive to fight through them if they
already have the demonic rune and aren't looking for a way out yet.

There are a few cases where the gate is placed in place of an item; in
those cases I'm placing the item on top of the gate. This may not be
necessary.

Some of the gate placements might be a bit questionable, and these
changes are turning up a lot of vault syntax that could probably be
improved in these vaults; hopefully this should encourage a further look
at the vaults in question.

--------------------------------------------------------------------------------
b6dcf777f9 | Steve Melenchuk | 2014-01-20 11:23:28 -0700

Guarantee a pan lord vault on a pan level.

--------------------------------------------------------------------------------
b76ddfeb13 | Steve Melenchuk | 2014-01-20 11:13:51 -0700

Re-fix labs.
Somehow the code I wrote wasn't the code I committed.

--------------------------------------------------------------------------------
57445f6d1e | Neil Moore | 2014-01-20 12:48:37 -0500

Capitalise evoker names in action count dump (ChrisOelmueller)
Both ordinary evokers and evocable unrands failed to have their
first letter capitalised, inconsistently with everything else
in the table.

--------------------------------------------------------------------------------
899f469b23 | Neil Moore | 2014-01-20 12:37:04 -0500

Change a few % screen labels.
Rename "RndTele" to "Rnd*Tele" to tie it visually to the inscription
while also perhaps helping to teach users what that "*" means.

"Angry" is the internal artefact property name, but is never shown to
players other than here: change it to "Rnd*Rage" instead.

--------------------------------------------------------------------------------
9372f5ec3b | Neil Moore | 2014-01-20 12:37:04 -0500

Simplify and improve formatting.

--------------------------------------------------------------------------------
12348454a0 | Dom Light | 2014-01-20 12:37:03 -0500

Added Angry indicator to the % screen.
This replaces the clarity indicator if you have a *Rage item or
berserkitis, but don't have clarity or stasis.

--------------------------------------------------------------------------------
6e5730344c | Neil Moore | 2014-01-20 12:36:04 -0500

Ignore javascript contribs in checkwhite.
Though we would save one byte off the ba-linkify.min.js (removing two
spaces from the header comment and adding a newline at the end).

--------------------------------------------------------------------------------
7cb5c5c1de | Steve Melenchuk | 2014-01-20 10:28:36 -0700

Fix Pan stair logic broken by 0004888.
No other portal branch uses stone stairs to mark exits, and changing the
logic for handling that for one specific portal branch is questionable
to me, and I'd rather make labs consistent with the other portal
branches rather than saving a few lines in vault syntax at the expense
of breaking a lot of other logic, but until I hear why labs need to use
stairs rather than an exit feature I'm going to work around it in this
fashion (which probably lends itself to other Pan stair placement
adjustments I've been considering for a while anyway).

The adjustment to evilmike_holy_pan here prevents a fourth exit from
being generated with this adjusted logic.

This partially reverts commit 0004888ada36e8321b0f200ab637069d30dd32f0.

--------------------------------------------------------------------------------
a711b3e17d | Steve Melenchuk | 2014-01-20 09:38:58 -0700

Set shadow clone weapon colour.
This was causing invalid item crashes when the colour was black.

--------------------------------------------------------------------------------
a5f20ec474 | pubby | 2014-01-20 12:40:25 +0100

Buff Formicids.
HP to -1 and Spellcasting to 0.
Because of this change, their exoskeleton mutation no longer provides
extra HP.

--------------------------------------------------------------------------------
e4ac22e01a | Adam Borowski | 2014-01-20 12:40:15 +0100

Fix build.

--------------------------------------------------------------------------------
84aeff3974 | pubby | 2014-01-20 12:27:33 +0100

Don't place arrival monsters behind clear rock.
Instead place them behind clear stone.

Formicids can dig into these at level 1 and potentially get some easy
kills.
I've gotten to level 10 before from doing this.

--------------------------------------------------------------------------------
2817c6a9db | pubby | 2014-01-20 12:27:33 +0100

Fo abilities aren't zot-def abilities.
This is a comment fix. Doesn't affect gameplay.

--------------------------------------------------------------------------------
6fb625bbdd | Adam Borowski | 2014-01-20 12:26:38 +0100

Drop some pointless costly conversions.

--------------------------------------------------------------------------------
4bcaca23e5 | Adam Borowski | 2014-01-20 12:22:31 +0100

Don't skewer Dithmengos' shadow on porcupine/hell sentinel spines.
It ignores damage anyway, the message was pure spam.

--------------------------------------------------------------------------------
a0eb6aff33 | Adam Borowski | 2014-01-20 12:17:12 +0100

Fix Lab loot not being placed.

--------------------------------------------------------------------------------
dc2749fde2 | Pekka Lampila | 2014-01-20 11:38:29 +0200

Tweak WebTiles chat CSS style

--------------------------------------------------------------------------------
dc57c81359 | Pekka Lampila | 2014-01-20 11:38:29 +0200

Linkify URLs in chat
Thanks to araganzar for the original patch.

--------------------------------------------------------------------------------
2addead79d | Pekka Lampila | 2014-01-20 11:38:29 +0200

Add JavaScript Linkify script by Ben Alman to contrib
https://github.com/cowboy/javascript-linkify
Dual licensed under the MIT and GPL licenses

--------------------------------------------------------------------------------
d6cb3faa34 | Steve Melenchuk | 2014-01-19 18:51:23 -0700

Don't mark monster-conjured ball lightnings as summons.
This is consistent with the player treatment of the spell, and also
causes the death message to appear as "created by Lom Lobon" instead of
"summoned by Lom Lobon".

--------------------------------------------------------------------------------
c3f86ab7a9 | Steve Melenchuk | 2014-01-19 18:46:50 -0700

Correctly credit conjured ball lightning kills (#8007).

--------------------------------------------------------------------------------
0b2097da57 | ontoclasm | 2014-01-19 18:53:49 -0600

Obsidian axe tiles (Bloax, 8005)

--------------------------------------------------------------------------------
d84ec6f259 | Chris Campbell | 2014-01-19 23:09:52 +0000

Make umbra/corona's effects on stealth independent of current LOS radius
Not many things change LOS radius, so it's mainly just a weird hidden
interaction.

--------------------------------------------------------------------------------
2f83286ccc | Neil Moore | 2014-01-19 17:34:17 -0500

Fix whitespace.

--------------------------------------------------------------------------------
3f00247d65 | Neil Moore | 2014-01-19 17:33:27 -0500

Don't bring stones to a bullet fight.

--------------------------------------------------------------------------------
fbf173ca75 | Neil Moore | 2014-01-19 17:31:51 -0500

Allow sling-wielding monsters to pick up sling bullets.

--------------------------------------------------------------------------------
0695ac197c | Neil Moore | 2014-01-19 17:30:23 -0500

Show monster path as travel trail in wizmode xw.

--------------------------------------------------------------------------------
4fcad2e16e | DracoOmega | 2014-01-19 15:32:04 -0330

Make monsters going berserk break fear and stop fleeing
As amusing as it is to see angry bears tear off in the opposite direction.

--------------------------------------------------------------------------------
e99595fa41 | DracoOmega | 2014-01-19 15:32:02 -0330

Don't snap monsters out of wounded fleeing by attacking (only actual magical 
fear)

--------------------------------------------------------------------------------
bad0f68e46 | tenofswords | 2014-01-19 13:01:49 -0500

Buff Crypt:$ loot with thematic extra stuff
With the awkward position of late-game optional branch without a rune,
and thus an implied struggle to get people to do the branch when it is
rightfully dangerous but without much of an incentive, Crypt could use
another incentive or two to get people to peek in. Forest, regardless
of its status, at least has sling bullets, lajatangs, quickblades,
and a weird artefact mottled dragon armour; Crypt should mirror this.

Every crypt end now has, in very randomized placement, one of the following:
 * One hall of blades weapon with good pluses and (only) draining brand,
 * One decent but not great weapon with pain or vampiricism, or
 * Two or three randart rings of rN+ or amulets of warding.
Plus, they also have one of the following:
 * Death-themed weapon unrand: Vampire's Tooth, Morg, Doom Knight's, Bloodbane,
   Leech, Zonguldrok, Botono, Finisher, Scythe of Curses, Undeadhunter, or
   the Sceptre of Torment;
 * The necronomicon (1/15 chance) or necro randbook with one necronomicon spell;
 * Evokables stack: one elemental evoker or rod, crystal ball or staff of 
energy,
   staff of death/power/wizardry/whatever.
Some of these are very valuable, if unreliable, drops, but their placement in a
buffed Crypt should avoid making characters visibly more overpowered when
more characters are killed anyway.

There are also some minor edits in added junk loot for david_glass_crypt and
a reformatting in map defintiion for grunt_crypt_end_deaths_head to adapt to 
this.

--------------------------------------------------------------------------------
53e1015748 | Adam Borowski | 2014-01-19 14:34:12 +0100

A couple of missing #ifdefs.

--------------------------------------------------------------------------------
0004888ada | Adam Borowski | 2014-01-19 12:32:35 +0100

Don't special-case Lab exits, place them normally (as {).

--------------------------------------------------------------------------------
066e39978e | Adam Borowski | 2014-01-19 12:28:05 +0100

Unspoil a lab vault.

--------------------------------------------------------------------------------
9a783baf3e | Neil Moore | 2014-01-19 01:58:45 -0500

Fix another bad lab exit.
SamB suggests this be factored out, and he's probably right.

--------------------------------------------------------------------------------
d9bc7f0b76 | Adam Borowski | 2014-01-19 05:10:16 +0100

Don't show "Umbra" on the HUD.
Halo isn't shown either.

--------------------------------------------------------------------------------
7bb5492b89 | Adam Borowski | 2014-01-19 03:22:30 +0100

Untrap a vault.

--------------------------------------------------------------------------------
4a4604d117 | tenofswords | 2014-01-18 10:30:46 -0500

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
c81737ebbf | tenofswords | 2014-01-18 10:18:13 -0500

(Slightly) tweak/buff Swamp/Shoals:1-4 spawns, Depths OOD monsters
  * Swamp dragons and hydras actually go slightly down with Swamp depth
    due to the predominant weight shift being upwards in slime creatures,
    so do a little hack and let them go just slightly upwards in the water
    monsters population, while cutting into jellyfish spawns.
  * Shoals:1-4 have few challenges, and one of the predominant influences on
    that probably involves the ridiculous bat spawn weight that starts at
    7.21% for Shoals:1, completely pointless as spawns for the depth;
    the numbers tweak here preserves spawn balance for Shoals:5 but
    cuts into the rates for all previous floors, so more Shoals-specific
    actual-monsters can be placed.
  * Since Depths OODs have countless numbers of high-health blobs,
    permit the support-monster flayed ghost and previously-common liches
    to join the Depths:2-5 OOD lists for variety in threat and what not
    for all those large 0/9/8 vaults.

--------------------------------------------------------------------------------
142ad28fbd | tenofswords | 2014-01-18 10:10:21 -0500

(actually, Actually) Fix Labyrinth stuff
Note to self, make much more sure of functionality of old patches.

--------------------------------------------------------------------------------
e698f97e4a | Adam Borowski | 2014-01-18 09:18:26 +0100

Make shadow melee immune to acid.

--------------------------------------------------------------------------------
dffce27c44 | Adam Borowski | 2014-01-18 09:18:26 +0100

Make Dithmengos' melee shadow a monster type on its own.

--------------------------------------------------------------------------------
c82f4830e3 | Adam Borowski | 2014-01-18 08:44:56 +0100

Update ZotDef branch distribution.

--------------------------------------------------------------------------------
dc698e96ce | Adam Borowski | 2014-01-18 08:44:56 +0100

Slightly refactor.

--------------------------------------------------------------------------------
47bb4e8fd6 | Adam Borowski | 2014-01-18 08:44:56 +0100

Deindent.

--------------------------------------------------------------------------------
40b02585ee | Adam Borowski | 2014-01-18 08:44:56 +0100

Mark a couple Saint Roka lines as internal.

--------------------------------------------------------------------------------
5b0b6f6013 | Adam Borowski | 2014-01-18 08:44:56 +0100

Remove an ancient series of ridiculous comments.

--------------------------------------------------------------------------------
d49803f2b8 | Adam Borowski | 2014-01-18 08:44:56 +0100

Remove an impossible line from Mennas' speech.
Non-visual speech is suppressed when silenced.

--------------------------------------------------------------------------------
c136d05d4f | Adam Borowski | 2014-01-18 08:44:55 +0100

Don't pretend there are generic monster names.
They'd not make sense even if we added some.

On the other hand, you may add some names for types other than orcs.  Ie,
if you want a chance for that mermaid mercenary to be named "Helvetica".

--------------------------------------------------------------------------------
34f7df8377 | Adam Borowski | 2014-01-18 08:44:55 +0100

Mark some orc name keys as internal.

--------------------------------------------------------------------------------
84bb0ee178 | Adam Borowski | 2014-01-18 08:44:55 +0100

Remove an unused monster class flag.
Was used only by spirits, who themselves never hit the game.

--------------------------------------------------------------------------------
e2b55cde40 | Adam Borowski | 2014-01-18 08:44:55 +0100

A whitespace fix and parentheses removal.

--------------------------------------------------------------------------------
23d0e901ab | Brendan Hickey | 2014-01-17 22:05:53 -0800

Fixup CREDITS.txt

--------------------------------------------------------------------------------
390038d8c0 | DracoOmega | 2014-01-18 01:42:24 -0330

Unbreak monster retreating (which is not fleeing (which is not the retreat 
command))
Apparently I preserved the wrong one of the two synonyms in one of the 'useless'
bits of code I just removed. Gee, I wonder how that happened....?

--------------------------------------------------------------------------------
1ce8f80fd1 | DracoOmega | 2014-01-18 00:17:16 -0330

Cleanup some apparently useless code
These are checks for conditions that either don't seem to matter or
outright can never happen (despite comments speaking explicitly as
though they can!)

Hopefully I have not missed something that performs an actual purpose
here.

--------------------------------------------------------------------------------
2e590b64dd | DracoOmega | 2014-01-18 00:17:15 -0330

Only break fear on player melee attacks that hit, reorder a message
This is a touch hacky, in that monster vs. monster melee sometimes WILL
break fear even if it does NOT hit (but already it sometimes does not
break it even if it DOES hit).

This also makes player misses versus feared friendly monsters not change
their attitude, but that seems an incredibly marginal situation given that
you can't even fear them yourself without making them hostile FIRST, and
you can't actually damage them this way either.

(Overall, maybe fear should be handled slightly differently, and simply
reduce fear duration directly with damage inflicted and otherwise not have
melee hits immediately cancel it?)

--------------------------------------------------------------------------------
f961c8d6bc | DracoOmega | 2014-01-18 00:17:13 -0330

Actually remove ENCH_FEAR when hitting a fleeing monster (and give a better 
message)
Performing a melee attack against a fleeing monster has always made it
stop fleeing, but didn't remove the fear enchant at the same time, which
made it fear-immune for a while (it also didn't give any message at all).
Now a suitable message is explicitly given and fear properly removed.

It's arguable that a mere attack attempt shouldn't automatically break
it - at the very least, perhaps it shouldn't happen if you miss?

--------------------------------------------------------------------------------
0b9d51a0ed | DracoOmega | 2014-01-18 00:17:11 -0330

Prevent fleeing monsters from stopping to attack with ranged or reaching weapons
The fact that ranged monsters could not only keep shooting at you, but
would completely break their fear effect to do so (and even become
temporarily immune, until recently) made ?fear unpleasantly unreliable
against a multitude of good targets for it (such a centaurs) and contributed
to masking how feared monsters actually behaved. Instead of it being clear
how cornered monsters would stop running, fear could appear to simply vanish
randomly (regardless of its duration).

It was also pretty awkward that many monsters could get lasting fear-immunity
by picking up a random stone to chuck at you at some point.

--------------------------------------------------------------------------------
6ee075878c | DracoOmega | 2014-01-18 00:17:10 -0330

Prevent fleeing monsters pushing past other fleeing monsters
This helps somewhat to avoid traffic jams in confined spaces.

--------------------------------------------------------------------------------
327c157312 | DracoOmega | 2014-01-18 00:17:09 -0330

Describe fleeing monsters as 'fleeing' rather than 'retreating'
BEH_FLEE and BEH_RETREAT both existing and being subtly different is
bad enough without being inconsistent on top of it (and neither of
these is what happens when you command something to retreat, either!)

--------------------------------------------------------------------------------
e25714242b | DracoOmega | 2014-01-18 00:17:08 -0330

Repurpose BEH_CORNERED to adjust monster fleeing behavior, plus code cleanup
After detailed scrutiny, it was unclear that BEH_CORNERED was actually
serving any real purpose. When a monster was told to stop fleeing (maybe it
hit a wall), it would briefly enter BEH_CORNERED, but then immediately exit
it again unless at low health. But even in BEH_CORNERED, there seemed to
be few meaningful logic differences from a stripped down BEH_SEEK against
a visible foe. (There were also some other checks that seemed to serve no
function.)

Now BEH_CORNERED has a distinct purpose from other behaviors. When a monster
is fleeing and its path is obstructed by a monster or terrain obstacle, instead
of immediately stopping fleeing (and incidentally becoming invisibly immune to
fear for some time!), it will pause one turn in place in the hope that a path
will open up next turn. This actually happens frequently when multiple monsters
are fleeing in a confined space (say you read a scroll of fear in a corridor);
instead of many of them breaking fear immediately, they will wait just a moment
to give outer monsters a chance to move and thus give space to move themselves.
In practice, this means that fear tends to operate in a more intuitive manner
when playing, instead of sometimes appearing to have no practical effect.

It should be noted that breaking fear due to being stuck did not actually remove
ENCH_FEAR from a monster, even if it acted in all ways as though this 
enchantment
was not present. However, since cause fear would not apply ENCH_FEAR to a 
monster
that already had it, if any monster broke fear prematurely, it would remain
invisibly immune to further fear until the effect on them wore off. (It would 
even
give a message later on about the monster 'recovering its courage', which seems 
a
little odd if it's just been chasing you for several turns already). Now fear is
properly removed if the monster actually stops fleeing.

This commit also adds a few comments to try and explicate the difference
between 'fleeing' and 'retreating', where the former implies a disorderly
run away from a target (such as when afflicted by fear) while the latter
subsumes any case where the monster wants to move AWAY from its target pos
instead of towards it (which includes backing away from a player with a
reaching weapon that it cannot retaliate against)

Note that BEH_CORNERED is subsumed beneath mons_is_fleeing() since the monster
still WANTS to flee, even if it currently cannot move, and this is often 
relevant
when fleeing status is checked.

--------------------------------------------------------------------------------
2cbd564df6 | DracoOmega | 2014-01-18 00:17:06 -0330

Remove redundant checks for M_FLEEING
It was only ever checked at the same time as mons_is_fleeing(), which
itself already checked for this flag.

Moreover, the flag doesn't seem to ever be used by anything, so maybe
it should just be removed itself?

--------------------------------------------------------------------------------
99368b90bd | DracoOmega | 2014-01-18 00:17:05 -0330

Remove apparently unused BEH_PANIC
While several parts of code checked if a monster WAS 'panicking' (described
in a comment as 'fleeing without running away'), it was never actually
possible for a monster to enter this state, nor did there seem to be any
behavioral code associated with being in it. The flee-based behavioral
code is convoluted enough already without mysterious unused things cluttering
it up, so I have pruned it.

(Hopefully I am not overlooking anything)

--------------------------------------------------------------------------------
622d1973ab | ontoclasm | 2014-01-17 20:03:35 -0600

White metal tiles for evilmike_silver_temple

--------------------------------------------------------------------------------
ae21203de3 | ontoclasm | 2014-01-17 19:43:02 -0600

Remove the unused metal_wall_cracked

--------------------------------------------------------------------------------
1576e7655a | ontoclasm | 2014-01-17 19:37:59 -0600

Metal walls (Bloax)

--------------------------------------------------------------------------------
7b112039be | tenofswords | 2014-01-17 20:05:29 -0500

(actually) Fix compilation
The lab edits commit was before 45df7d91 and I didn't re-base, so of course
something stupid like this would happen. Re-update some lua into functionality
instead of getting caught in small mis-directions.

--------------------------------------------------------------------------------
08a0dfb827 | tenofswords | 2014-01-17 19:30:23 -0500

Fix complitation
No idea if or when or why I would have changed this,
but it happened, so.

--------------------------------------------------------------------------------
11f36c0aea | ontoclasm | 2014-01-17 17:13:30 -0600

Dithmengos altar tiles
With thanks to Bloax

--------------------------------------------------------------------------------
8192e1e528 | tenofswords | 2014-01-17 17:46:22 -0500

Replace pointless Killer Klown brands (and thus buff them)
For a Zot-exclusive monster with a nearly-unique gimmick, the brands chosen
are very boring and stuck in older times of attack flavour variety; they're
basically higher-health elemental orb guardians with blink, some raw
annoyances with inconsistent xp-draining or rot, and most of
their kills are connected to AF_COLD. Pretty plain for a klown.

Since part of their boringness is simply in the brands themselves, this
changes their brands into some horribly nasty choices; the original set
was nasty poison, rot, drain xp, fire, cold, blink, antimagic, and the
new set is strong poison, pain, drain speed, fire, cold, elec, antimagic.

--------------------------------------------------------------------------------
836894528a | Chris Campbell | 2014-01-17 22:23:31 +0000

Don't let ?brand weapon rebrand to flaming under Dithmengos

--------------------------------------------------------------------------------
ec7e23808a | tenofswords | 2014-01-17 17:03:54 -0500

Small decorative vault batch.
Six decorative vaults total: two for Swamp, two for Elf,
one for Zot, and one for Dis.

--------------------------------------------------------------------------------
c1506c0182 | tenofswords | 2014-01-17 16:27:52 -0500

New zig set: "Lair roulette branches".
Set only appears on Zig:14, with half weight.
Enjoy the guardian serpents blinking-close alligator snapping turtles
and tentacled monstrosities while ghost moths eat your MP.
(The set may seem rather messy to anybody first seeing it, admittledly.)

--------------------------------------------------------------------------------
ff1b71fbce | tenofswords | 2014-01-17 15:45:11 -0500

Lab revision: "add" threat/loot minivaults, wake up minotaur
While Labyrinths offer a unique threat/layout for portal vaults and
levels as a whole, they have an insubstantial threat in hunger
and tedium of manual travel that potentially takes longer than is
interesting; overall, the non-minotaur parts are homogenous,
uncontrolled, repetitive over many games, and rely on a weak part of
Crawl (not fighting). The flavour and uniqueness of labyrinths,
alongside their age, do make many unwilling to cut them, though.

Thus, I'm using a function to place some vaguely-thematic monsters
of varying numbers and threat in most of the furniture vaults that
already exist for labs, alongside some loot. The monsters cover
rarely-used earth themes, some undead as fallen adventurers, and
other oddities, chosen as vaguely working within the pretext of
a labyrinth. The loot is weighted roughly like the minotaur's stash,
but with gold replacing books, staves, rods, and misc evokables, and
also have no innate quality boosts. Most of the time it's not worth
extending visits to find extra loot without guidance or guarantee
of existence, especially considering the piety clock is most effective
around lab depth, but it potentially gives a little extra ontop of the
normal minotaur fight and rewards.

Also, to allow more surprise and less prep for minotaurs in recognizing
bordered, different-wall-material vaults, and aide them in picking up
their loot to make them distinct threats, nearly-always tag them with
generate_awake. The patrolling behaviour and vault shapes still confine
minotaurs, so it's difficult to outright sneak past.

There's no guarantee that such minivaults even place in a lab at all,
much less that players will find them on the way to the minotaur, so
certainly more should be done to re-invigorate labs. Still, this is
good in lieu of changing vault placement/integration or map size,
especially in giving a little more combat. People may continue to call
for labyrinth removal, but it's important to at least try to improve
them a little, first.

--------------------------------------------------------------------------------
ca903ef09a | Steve Melenchuk | 2014-01-17 10:29:41 -0700

Don't let shadow mimic projectiles glow with a rainbow of weird colours.

--------------------------------------------------------------------------------
dc9f810445 | Chris Campbell | 2014-01-17 15:40:08 +0000

Don't describe umbra as unholy
The things that cause it can be unholy (profane servitors) or not
(Dith worshippers).

--------------------------------------------------------------------------------
f7e2a9fc34 | Chris Campbell | 2014-01-17 15:40:06 +0000

Remove a special case for level 1 spellcasting skill in acquirement (#7991)

--------------------------------------------------------------------------------
0d579d91bf | Adam Borowski | 2014-01-17 09:01:20 +0100

Use a human monster for the shadow dummy.
Using a monster with the same name as the player's species uses that
monster's attacks.  And there's a big difference between a 4 dam kobold
vs a 30(rot) ghoul, or a 10+6+6 gargoyle that can't use weapons.

Also, the monster being undead had a large effect for weapons of pain.

--------------------------------------------------------------------------------
0acbe5bd5b | Neil Moore | 2014-01-17 01:51:26 -0500

Magenta is boring, one might even say domestic (ChrisOelmueller)
So remove it from randart _exciting_colour().

--------------------------------------------------------------------------------
dde664e211 | Neil Moore | 2014-01-17 01:13:50 -0500

Split some prototypes etc off to mon-book.h
All the ones that reference mon_spellbook_type, so that the users
of mon-util.h don't all require a rebuild whenever mon-spll.h is
touched and mon-mst.h regenerated.

For the same reason, change the 'sec' field mon monster_entry back to an
int, and make get_spellbooks a function rather than a method of
monster_info.

I did not split the implementations off into a new .cc file, but that
wouldn't be unreasonable.

--------------------------------------------------------------------------------
db6e4539e6 | Translators | 2014-01-17 00:43:12 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
12a8f03117 | Raphael Langella | 2014-01-17 00:32:27 +0100

Fix the transifex interface broken by e8b8e78b.

--------------------------------------------------------------------------------
a7d197752c | Pekka Lampila | 2014-01-16 09:33:19 +0200

Reflect show_inventory_weights default change in options guide and init.txt

--------------------------------------------------------------------------------
c908b75f16 | Brendan Hickey | 2014-01-15 23:12:53 -0800

Show inventory weights by default.

--------------------------------------------------------------------------------
24603a6227 | Pekka Lampila | 2014-01-16 08:21:09 +0200

Disable two WebTiles debug messages

--------------------------------------------------------------------------------
2c76abe95d | ontoclasm | 2014-01-15 23:17:38 -0600

De-rim

--------------------------------------------------------------------------------
d8f2377ddf | ontoclasm | 2014-01-15 23:17:37 -0600

Open/closed tiles for the Vaults entrance

--------------------------------------------------------------------------------
b6ebc8de6d | Steve Melenchuk | 2014-01-15 22:00:28 -0700

Note range in Shadow Step description.
This is approximate, but a good enough guideline to use for now.

--------------------------------------------------------------------------------
43da81b7ef | Steve Melenchuk | 2014-01-15 21:52:22 -0700

Credit mikee, for various ideas stolen over the years.

--------------------------------------------------------------------------------
66ec992555 | Steve Melenchuk | 2014-01-15 21:39:32 -0700

Don't consider Dith evil.
The good gods only really hate Dith because of the love of extinguishing
their halos.

--------------------------------------------------------------------------------
2379df1fd6 | Pekka Lampila | 2014-01-16 05:58:18 +0200

Fix Invis status light not showing up in WebTiles

--------------------------------------------------------------------------------
381591aa16 | Adam Borowski | 2014-01-16 03:44:25 +0100

Murdering a fire-using guy is not "putting out a fire".

--------------------------------------------------------------------------------
3565d771df | Adam Borowski | 2014-01-16 03:31:11 +0100

Manual update: lava orcs can read hot books.

--------------------------------------------------------------------------------
34e3846e5a | Adam Borowski | 2014-01-16 03:30:27 +0100

Bracecide.

--------------------------------------------------------------------------------
75a357fe59 | Chris Campbell | 2014-01-16 02:18:03 +0000

Fix formatting

--------------------------------------------------------------------------------
489e3ab82f | Chris Campbell | 2014-01-16 02:14:42 +0000

Shorten shadow form desc on religion screen to fit on tinyterms

--------------------------------------------------------------------------------
787e0f3438 | Chris Campbell | 2014-01-16 01:55:24 +0000

Simplify illumination conducts
Don't care about minor sources of glow (mutagenic glow, glowing unrands).
For illumination conducts, just look for halos and spells (corona, sunray,
etc).

--------------------------------------------------------------------------------
66edf1ddf6 | Steve Melenchuk | 2014-01-15 18:28:03 -0700

Consider staff of fire and its attacks fiery (78291).

--------------------------------------------------------------------------------
e5babb39c1 | Chris Campbell | 2014-01-15 17:39:03 +0000

Add a wizmode command (&p) to list player props

--------------------------------------------------------------------------------
183dc64167 | Chris Campbell | 2014-01-15 17:39:02 +0000

Cap the number of bone dragons/profane servitors in Yredelemnul armies
Lets Yred gift 3 combined bone dragons and profane servitors at a time. This
could possibly be extended to allow more fine-grained control of Yred gifts.

--------------------------------------------------------------------------------
544e08629d | Chris Campbell | 2014-01-15 17:39:01 +0000

Replace Yred freezing wraiths with vampires
Now that vampires no longer summon they're not problematic as Yred allies,
and replacing freezing wraiths makes all Yred allies (other than mummies,
which stop being gifted fairly quickly) speed 10 or more.

--------------------------------------------------------------------------------
e519c7a3f6 | Steve Melenchuk | 2014-01-15 08:28:40 -0700

Consider phoenixes fiery (#7987).

--------------------------------------------------------------------------------
51dd120b20 | gammafunk | 2014-01-15 10:09:54 +0200

Make WebTiles spectator list sorting case-insensitive

--------------------------------------------------------------------------------
4ccb52de61 | Adam Borowski | 2014-01-15 07:37:23 +0100

Don't mention spirit wolves in the changelog.
They never have been a part of a stable release (excluding wizmode).

--------------------------------------------------------------------------------
711395cf91 | Adam Borowski | 2014-01-15 07:36:06 +0100

Desc checker amends.

--------------------------------------------------------------------------------
fab70a36f5 | Steve Melenchuk | 2014-01-14 21:51:43 -0700

Changelog through 0.14-a0-1948-g9be20ec.
The usual disclaimers apply.

--------------------------------------------------------------------------------
9be20ec689 | Adam Borowski | 2014-01-15 05:44:29 +0100

A manual update wrt Howl (wheals)
From the wiki:
Edit Summary: Spirit wolves are gone (thank god)

Judging from this and ##crawl comments, spirit wolves did not garner much love.

--------------------------------------------------------------------------------
2ddca77fa1 | Adam Borowski | 2014-01-15 05:44:29 +0100

Fix debug build.

--------------------------------------------------------------------------------
4d23bc512f | Pekka Lampila | 2014-01-15 06:01:21 +0200

Cancel allies retreat when ordered to attack (#7972)

--------------------------------------------------------------------------------
6f3e3283ed | Pekka Lampila | 2014-01-15 06:01:21 +0200

Make stationary allies ignore the retreat command

--------------------------------------------------------------------------------
0bca5b1567 | Sage | 2014-01-15 06:01:21 +0200

Make oklobs fire automatically when they have no preassigned target.

--------------------------------------------------------------------------------
58d5a39bc2 | Steve Melenchuk | 2014-01-14 20:58:51 -0700

Merge branch 'shadow-god'
With bugfixes and more general balancing out of the way, and with the
generally positive reception this has had to this point, it's time for
fine-tuning the balance by way of the widespread feedback bringing this
to trunk will yield.

--------------------------------------------------------------------------------
7782a6fd92 | Steve Melenchuk | 2014-01-14 20:45:52 -0700

Move handling of fiery/illuminating armour to be closer to unrands.
Apart from Chei's hatred of running, no normal armour brand is hated by
a god currently, but plenty of unrands are; it makes sense to be hated
for just wearing the item (as with unrands) instead of merely running
around with them (as with running boots).

Plus, this should allow for more gods to hate particular armour brands
if necessary.

--------------------------------------------------------------------------------
958ac0acf9 | Adam Borowski | 2014-01-15 04:36:29 +0100

A mid-D encompass vault by kennysheep.

--------------------------------------------------------------------------------
7e00e7ab19 | Adam Borowski | 2014-01-15 04:36:29 +0100

Restore the default-depth after Grunt's profanity.

--------------------------------------------------------------------------------
9ef1149574 | Adam Borowski | 2014-01-15 04:18:13 +0100

Update the comments and use default_depth: in depths_encompass.
That D:12- was unused.

--------------------------------------------------------------------------------
2b1dc5aa41 | Adam Borowski | 2014-01-15 04:16:01 +0100

Move encompass.des to branch/depths_
Every single vault there is "DEPTH:Depths:2-5" or "DEPTH:Depths:2- 
PLACE:Depths:$"

--------------------------------------------------------------------------------
a5145f6255 | Adam Borowski | 2014-01-15 04:07:57 +0100

A bunch of kennysheepized decor vaults.

--------------------------------------------------------------------------------
e2fcf9ba03 | Adam Borowski | 2014-01-15 03:34:34 +0100

Don't recharge rods on ground faster based on your Evoc skill.

--------------------------------------------------------------------------------
735c0d0279 | Adam Borowski | 2014-01-15 03:33:51 +0100

Revert "Cut Geryon's wings, to let the tile match behaviour."
This reverts commit dba91a8122e1ec766937024dae91ffd8bcadd54a.

--------------------------------------------------------------------------------
e0a02a1171 | Adam Borowski | 2014-01-15 03:33:51 +0100

Revert "Don't let Geryon fly"
If you lose the horn, all you forfeited was that trove.  And Geryon's
description still says "winged".

This reverts commit 9028046554a4e16c21223c7bda2429f193e88c76.

--------------------------------------------------------------------------------
5c01cd831c | Adam Borowski | 2014-01-15 03:10:32 +0100

Don't require playing the horn of Geryon to enter proper hells.
It was just a spoily ritual with no balance effect other than "don't use
Tornado, and remember to unwield distortion for this fight".

--------------------------------------------------------------------------------
298e3e9e4b | Adam Borowski | 2014-01-15 02:40:39 +0100

Don't close portals upon picking up the Orb.

--------------------------------------------------------------------------------
b94c3af312 | Adam Borowski | 2014-01-15 01:41:21 +0100

End the spirit howl.  Permanently.
They're on every list of problematic Forest monsters, and neither of Forest
proposals has a place for them.  Plus, even worse, they're summoners.

--------------------------------------------------------------------------------
9cdec30537 | Steve Melenchuk | 2014-01-14 16:46:06 -0700

Properly punish Dith followers for wearing glowy/fiery equipment.
Also add Starlight to the list of hated items.

--------------------------------------------------------------------------------
9febb93398 | Raphael Langella | 2014-01-15 00:31:36 +0100

New option: fsim_csv
Unsurprisingly, it outputs the fsim data in csv format, for easier processing.
Also rename the output file to fsim.txt (or fsim.csv).

--------------------------------------------------------------------------------
82ebfd5c76 | Raphael Langella | 2014-01-15 00:31:36 +0100

Fix a typo.

--------------------------------------------------------------------------------
1d7ebc0e06 | Raphael Langella | 2014-01-15 00:31:36 +0100

Don't warn about fsim_kit possibly burdening the player in fsim doc.
Burdened actually has no effect on melee anyway (appart from unarmed, but
this is obviously irrelevant to fsim_kit).

--------------------------------------------------------------------------------
4fe1826d6b | Raphael Langella | 2014-01-15 00:31:35 +0100

Don't use terse descriptions for weapons in fsim output file.
There's plenty of room and terse descriptions are especially ugly with
racial weapons.

--------------------------------------------------------------------------------
0742851721 | Adam Borowski | 2014-01-14 23:29:11 +0100

A quote for "tomahawk" (BlastHardCheese).

--------------------------------------------------------------------------------
9e9b3b73c1 | Adam Borowski | 2014-01-14 23:23:46 +0100

Revert "A temple with a massive amount of doodads and decor."
After a thought, this joke is not so funny.

This reverts commit 54cbe9b7318e5363a2f6863dad6b99a1af0c8e45.

--------------------------------------------------------------------------------
0e7a2f5f6f | Steve Melenchuk | 2014-01-14 11:59:57 -0700

Add Dithmengos altars to sprint maps as warranted.

--------------------------------------------------------------------------------
2aae5eab82 | Steve Melenchuk | 2014-01-14 10:17:18 -0700

Don't shadow mimic self-aimed spells.
This is intended to stop excess glow from Haste and Invisibility from
your shadow casting it on you; if you're casting most other spells at
yourself you probably don't want your shadow doing the same (it's going
to kill you in other ways).

--------------------------------------------------------------------------------
f3df222d40 | Steve Melenchuk | 2014-01-14 10:11:35 -0700

Let shadow mimic actions target haste/invis at other monsters (78291).

--------------------------------------------------------------------------------
c2a072bace | Steve Melenchuk | 2014-01-14 10:09:02 -0700

A (hopefully very temporary) approach to Shadow Form player tiles.
Namely, displaying as the "shadow" enemy, no matter how unrelated the
two are.

--------------------------------------------------------------------------------
f86e49a7d8 | Steve Melenchuk | 2014-01-14 09:55:10 -0700

Fix a case where Shadow Form's extra status might not be displayed.

--------------------------------------------------------------------------------
73ab735ae6 | Steve Melenchuk | 2014-01-14 09:39:21 -0700

Refactor illuminating / fiery monster checks.
M_GLOWS_LIGHT is no longer checked (there are too many weird cases with
it right now), and breath weapons are now accounted for (in an extremely
messy fashion that just highlights how we need to fix breath weapon
checking).

--------------------------------------------------------------------------------
83766a38d9 | Steve Melenchuk | 2014-01-14 09:20:33 -0700

Split tracking of "illuminating" and "fiery" conducts.
This should be a little more clear for players, besides which there's
been some hesitation expressed about the latter.

--------------------------------------------------------------------------------
ef4b2d2b8e | Chris Campbell | 2014-01-14 14:05:15 +0000

Remove accidental permarock (wheals)

--------------------------------------------------------------------------------
9db5db5078 | Chris Campbell | 2014-01-14 13:47:03 +0000

Don't consider OTR illuminating
It's weird magical toxic energy, not light.

--------------------------------------------------------------------------------
7e2161157f | Chris Campbell | 2014-01-14 13:31:50 +0000

Recolour umbra to magenta
Instead of darkgrey/magenta. Having a single colour makes it less distracting
when surrounded by umbra for long periods of time, and recolouring things to
darkgrey should be avoided.

--------------------------------------------------------------------------------
dd9d5814f7 | Steve Melenchuk | 2014-01-13 21:02:16 -0700

Hibernating a sleeping monster no longer awakens it (#7978, tabstorm).
This is intended to address shadow casting of the spell; I can't think
of any other relevant uses of this logic.

--------------------------------------------------------------------------------
927fc3aeb6 | Adam Borowski | 2014-01-14 03:38:12 +0100

Don't throw an error on malign tentacles in eldritch gateways.

--------------------------------------------------------------------------------
4d15e7dfc1 | Adam Borowski | 2014-01-14 03:04:37 +0100

Use a bit flag rather than allocating a prop for every single monster.
Also, go through a number of checks just once.

--------------------------------------------------------------------------------
ad30c03063 | Adam Borowski | 2014-01-14 02:00:59 +0100

Optimize some tiles.
As this makes git checkouts bigger (there's fully history...), and there's
only relatively few users of tarballs, this commit touches only tiles where
the size was reduced by a factor of 2 or more.

--------------------------------------------------------------------------------
d339d3678c | Adam Borowski | 2014-01-14 01:36:27 +0100

Kill the Invisible Pink Unicorn.
Clearing the colour from fully transparent areas in tilesheets allows
compressing them 2% better.

Thanks Bloaxor for suggesting this.

--------------------------------------------------------------------------------
dfc49a7c5a | Adam Borowski | 2014-01-14 01:26:31 +0100

Drop an useless tool that converts BMPs to PNG.
There's so many ways to do that, and we got rid of BMP ages ago anyway.

--------------------------------------------------------------------------------
0e571ff05e | Adam Borowski | 2014-01-14 00:09:42 +0100

Hush a warning.

--------------------------------------------------------------------------------
54cbe9b731 | Adam Borowski | 2014-01-14 00:07:27 +0100

A temple with a massive amount of doodads and decor.

--------------------------------------------------------------------------------
8bf42545b3 | Steve Melenchuk | 2014-01-13 13:34:29 -0700

Fix various bugs with shadow ranged attacks.
Most notably handling returning projectiles properly, but other
miscellaneous issues such as using F to fire/throw something specific
never triggering shadow actions have been fixed.

--------------------------------------------------------------------------------
612a313576 | Neil Moore | 2014-01-13 15:00:42 -0500

Optimise title screens (Bloax)
Reduce the colour depth somewhat and optimise with ScriptPNG.  I can't
tell a difference visually, but several images are significantly smaller
now.

This increases repository size, but the reduction in binary download
size and webtiles traffic is worth it I think.

--------------------------------------------------------------------------------
7851bccfef | araganzar | 2014-01-13 12:59:00 -0500

Make watchers in spectator list normal weight

--------------------------------------------------------------------------------
5b55b38664 | Steve Melenchuk | 2014-01-13 10:52:42 -0700

Tie Shadow Step range to umbra radius.
It's not a 1:1 match right now (this might need to be further tweaked),
but it's a good way to have a sense of how far you can shadow step.

--------------------------------------------------------------------------------
471d3ddc29 | Steve Melenchuk | 2014-01-13 10:45:06 -0700

Don't let shadow actions trigger at less than 4* piety (Bloax).

--------------------------------------------------------------------------------
b7d98d8d06 | Steve Melenchuk | 2014-01-13 09:06:50 -0700

Update Shadow Form's ability description.

--------------------------------------------------------------------------------
74961bfa77 | Steve Melenchuk | 2014-01-13 08:52:04 -0700

Adjustments to Shadow Form.
Miasma is gone; miasma is more strongly associated with necromancy
than anything related to darkness or shadows - see e.g. Corpse Rot,
death drakes, etc. Fog still fires on every form of taking damage.

Instead, the player is invisible when they are in shadow form (there's
no glow cost for this; the costs of activating/maintaining the ability
are supposed to be a sufficient counterbalance, but they might need to
be adjusted further to make this so).

The transformation power has been halved; on average now it lasts around
70 turns instead of lasting around 100 turns. This may need to be
adjusted downwards further.

--------------------------------------------------------------------------------
83fd2d1517 | Neil Moore | 2014-01-13 10:13:20 -0500

Remove include_items parameter of enough_mp.
It was only false when called from activate_talent for a permanent-MP
ability, and only affected whether we would get the "magic capacity" or
"magic at the moment" message.  Now that we have an actual innate-MP
check for permanent-MP abilities, we can eliminate that one.

This does change the message for a player using (say) DD recharaging
with 0/10 MP, when those 10 MP came from an item: it was "You haven't
enough magic capacity", and now "... magic at the moment".  The message
at 1/10 MP is about "innate magic capacity to sacrifice"; at 0/0 MP it
is just "magic capacity".

--------------------------------------------------------------------------------
be8803360c | Neil Moore | 2014-01-13 10:09:52 -0500

Improve a message.
Make the not-enough-max-MP message for permanent-MP abilities more like
the messages in enough_mp, and use "innate" instead of "personal".

--------------------------------------------------------------------------------
b9d2de159c | Neil Moore | 2014-01-13 09:58:17 -0500

Use ability cost, not 1, in permanent MP check.
In case we add a new and more expensive ability.

--------------------------------------------------------------------------------
6e63e72083 | Cedor | 2014-01-13 09:48:27 -0500

Remove mp rotting ability abuse
When trying to use a MP roting ability (DD recharging, or mummy
restoration), check if the player really has 1 max MP available without
possible ring/staff of power.

--------------------------------------------------------------------------------
a8837e0b6c | Steve Melenchuk | 2014-01-12 22:42:57 -0700

Dithmengos no longer accepts corpse offerings.
Several people have noted that it's too easy to gain Dith piety right
now, and that this particular method of piety gain is both out of place
and frowned upon these days.

So, out it goes.

--------------------------------------------------------------------------------
b9a5e9b5b7 | Steve Melenchuk | 2014-01-12 21:34:11 -0700

Only try to mimic throwing/firing actual missiles.
The monster throwing code assumes that only these can be thrown/fired by
monsters, and asserts fail otherwise.

--------------------------------------------------------------------------------
bf57d274de | Steve Melenchuk | 2014-01-12 19:24:16 -0700

Use WPN_ROD instead of WPN_CLUB for shadow mimicking rod melee.

--------------------------------------------------------------------------------
703a23b28e | Steve Melenchuk | 2014-01-12 18:15:01 -0700

Don't let your shadow die (ontoclasm, 78291).
Perhaps there's a better way to do this, but this is the easiest way I
can think of to make it happen.

--------------------------------------------------------------------------------
dfd2359681 | Steve Melenchuk | 2014-01-12 18:08:01 -0700

Mark immolation and random effects as disliked for Dith (78291).

--------------------------------------------------------------------------------
cc20582a5d | Pekka Lampila | 2014-01-13 03:00:02 +0200

WebTiles options to hide/show messages/sidebar when using level map
Sidebar is no longer hidden by default, so that minimap remains visible.
To get old behaviour use: tile_level_map_hide_sidebar = true

--------------------------------------------------------------------------------
c0dc10919b | wheals | 2014-01-12 18:03:02 -0500

Correct some item descs.
[Committer's note: updated the bastard sword desc further, since it
is tied with eveningstar for most damaging, and is lighter than a
broad axe -nfm]

--------------------------------------------------------------------------------
a516334f6a | Neil Moore | 2014-01-12 17:25:28 -0500

Unbrace yourselves, winter is here.

--------------------------------------------------------------------------------
d4fd89cd4d | Neil Moore | 2014-01-12 17:21:42 -0500

Don't give TSO piety when seeing a polymorph (#7977)
Not using MF_SEEN here because that has other effects, and in particular
could leak that a monster that just came into view is a shifter.

--------------------------------------------------------------------------------
f8fef55cd2 | Neil Moore | 2014-01-12 17:21:00 -0500

Allow null killer in five-argument monster_die.

--------------------------------------------------------------------------------
ee3e194ced | Neil Moore | 2014-01-12 17:06:28 -0500

Don't crash when moving after &(rock_wall

--------------------------------------------------------------------------------
67f510594a | Neil Moore | 2014-01-12 13:12:13 -0500

Update a comment.

--------------------------------------------------------------------------------
0d6ffeefa7 | Neil Moore | 2014-01-12 13:10:02 -0500

Fix compilation, merge caps/hat doll tiles.

--------------------------------------------------------------------------------
8887ba10ca | Pekka Lampila | 2014-01-12 20:07:31 +0200

Fix a warning

--------------------------------------------------------------------------------
0526c8fe5f | Adam Borowski | 2014-01-12 16:46:12 +0100

Delete translations of "hat".
These came from "wizard hat" and do not fit any more.  I can tell all of them
I can read[*] (ie, non-CJK) talk about the hat being conical.

[*]. Not 100% sure what that "kegel" in German means, but at least it's
"kegel"-form.

--------------------------------------------------------------------------------
36339432a6 | Chris Campbell | 2014-01-12 13:09:46 +0000

List large rocks in the wield menu for Formicids with Sandblast memorised

--------------------------------------------------------------------------------
9e525cf683 | Chris Campbell | 2014-01-12 12:37:19 +0000

Remove cap descriptions, resort hat descriptions

--------------------------------------------------------------------------------
711b1061bd | wheals | 2014-01-12 12:36:29 +0000

Reweight hat brands.
3/8 MR, 1/4 SInv, 1/4 Int+3, 1/8 spirit shield.

Also fix a few other things related to cap removal.

--------------------------------------------------------------------------------
13f5ae3d6d | wheals | 2014-01-12 12:09:04 +0000

Remove caps; rename wizards hats "hats."
In the spirit of the glove/gauntlet and helmet types distinction removal, there
doesn't seem to be much reason to have both caps and wizard hats. Hats are more
common among unrands and wizards starting with hats is more "thematic" than
some gladiators starting with caps. on the other hand, those gladiators starting
with wizard hats would be pretty weird, so wizard hats are just hats now.

Caps not removed:
- Caps existing in old saves
- Summon cap
- Level cap

This changes the percentages of hat brands from 2/3 MR and 1/3 int to 1/3 MR,
1/3 int, and 1/3 spirit shield.

--------------------------------------------------------------------------------
414460573f | Cedor | 2014-01-12 11:40:36 +0000

MR stat bar
Added bars for magic resistance into the % screen. Five level, and adjectives
revamped.

(Edited the magic resistance adjectives so that the breakpoints for pips on the
bar are the same as the adjective breakpoints - MarvinPA).

--------------------------------------------------------------------------------
c74a36d425 | Cedor | 2014-01-12 11:40:35 +0000

Rewriting of _itosym
_itosym1, _itosym2, _itosym3 rewrited to a more generic function : _itosym.
Plus rewriting of resist view with strings instead of char[].

--------------------------------------------------------------------------------
221eceeb5c | Steve Melenchuk | 2014-01-11 22:00:28 -0700

Lift restriction on Dith followers using freezing melee weapons.
I'm going to say it's not enough of of a glow for Dith to care.

Holy weapons are another matter entirely.

--------------------------------------------------------------------------------
bc72a1ff31 | Steve Melenchuk | 2014-01-11 21:58:44 -0700

Disallow fiery beings from worshipping Dithmengos.
This is currently djinni and lava orcs.

--------------------------------------------------------------------------------
aadba846f2 | Steve Melenchuk | 2014-01-11 21:12:43 -0700

Dithmengos hates the light.
Dithmengos hates items, spells, and monsters that cause illumination,
and particularly appreciates kills of the latter. This hatred extends to
most forms of fire (enemy of the darkness since ancient times).

There's a few questionable things in here which could stand to be looked
at (I'm including items that only glow through their description, most
notably freezing-brand melee weapons).

--------------------------------------------------------------------------------
f1be0332a6 | Neil Moore | 2014-01-11 21:01:24 -0500

Don't pretend to extend Static Discharge (#7974)

--------------------------------------------------------------------------------
f89dd6c53e | Adam Borowski | 2014-01-11 17:46:31 +0100

Re-allow Fo^Yred to recall followers; fix indentation.
This commit also allows Fo^Beogh to recall followers, too, but I somehow
don't think this matters in non-wizmode games.

--------------------------------------------------------------------------------
ce14469f1b | Brendan Hickey | 2014-01-10 21:47:22 -0800

Don't show berserk for species that can't use it.

--------------------------------------------------------------------------------
de8330d93d | Steve Melenchuk | 2014-01-10 22:43:47 -0700

Monster Haunts fixate on target like player Haunts.
Mainly relevant for shadow Haunt.

--------------------------------------------------------------------------------
8283a67381 | Adam Borowski | 2014-01-11 02:38:35 +0100

Compat settings: demonspawn were darkgrey as well.

--------------------------------------------------------------------------------
71426fa34d | Adam Borowski | 2014-01-11 02:37:33 +0100

Blue cats.

--------------------------------------------------------------------------------
e14b453523 | Adam Borowski | 2014-01-11 02:32:26 +0100

Remove unused god placeholder descriptions.

--------------------------------------------------------------------------------
c1a7223c63 | Adam Borowski | 2014-01-11 02:32:26 +0100

Teach db_lint how to check gods.txt

--------------------------------------------------------------------------------
3ce0962849 | Adam Borowski | 2014-01-11 02:31:58 +0100

Don't say that MuBe can go berserk.

--------------------------------------------------------------------------------
cc64d84d12 | Steve Melenchuk | 2014-01-10 18:29:34 -0700

A few lines of ghost and Donald dialogue for Dithmengos.

--------------------------------------------------------------------------------
4123e940d5 | Steve Melenchuk | 2014-01-10 16:14:46 -0700

Disallow constriction by shadow actions.
I can't think of any graceful way to handle this, and it can cause
crashes otherwise.

--------------------------------------------------------------------------------
8169e4e5bd | Steve Melenchuk | 2014-01-10 15:26:28 -0700

Halve spellcasting HD of shadow mimic.
Really, how powerful or not it is is something which will be determined
by extensive testing - but right now it doesn't *feel* overpowered,
barring strange special cases that I haven't found yet.

--------------------------------------------------------------------------------
d655bc3f8f | Steve Melenchuk | 2014-01-10 15:22:23 -0700

Special-case death message if your shadow action kills you.
"Killed by their own shadow" is a death message everyone should strive
for!

--------------------------------------------------------------------------------
6085916ba5 | Steve Melenchuk | 2014-01-10 15:18:21 -0700

Special case LRD targeting for shadow casts.
Your shadow always targets the same square you do; if you already blew
up the target, nothing happens.

--------------------------------------------------------------------------------
ef63f67387 | Steve Melenchuk | 2014-01-10 15:11:12 -0700

Fix targeting for shadow Airstrike (MarvinPA).
There are probably other spells this fixes too.

--------------------------------------------------------------------------------
2a44a3912a | Steve Melenchuk | 2014-01-10 12:06:46 -0700

Remove umbra acc penalty from Dith followers with an umbra (MarvinPA).

--------------------------------------------------------------------------------
1641b8d743 | Steve Melenchuk | 2014-01-10 11:27:25 -0700

Basic tiles for Dithmengos' active abilities.

--------------------------------------------------------------------------------
69a78eed23 | Steve Melenchuk | 2014-01-10 11:27:25 -0700

Some basic Dithmengos overflow altar vaults.

--------------------------------------------------------------------------------
1234fb6ced | Steve Melenchuk | 2014-01-10 11:27:24 -0700

Give the shadow god a non-placeholder name: Dithmengos.

--------------------------------------------------------------------------------
6de48f8559 | Steve Melenchuk | 2014-01-10 11:27:24 -0700

Shadow god - Mark as a wrath effect (Lasty).

--------------------------------------------------------------------------------
6e6ea4d27d | Steve Melenchuk | 2014-01-10 11:27:24 -0700

Adjust ^O god name spacing again.
The addition of a new god bumped TSO to a column too small for him,
besides which the spacing was all thrown off again anyway. It now
matches the comment again (five spaces' worth of padding).

Surely there must be an automagic way to generate these numbers.

--------------------------------------------------------------------------------
c9e202c6a0 | Steve Melenchuk | 2014-01-10 11:27:24 -0700

Shadow god wrath.
Three options here:
- summon hostile shadows; at higher XLs this gives way to occasional
  shadow demons and Shadow Fiends (heh).
- summon hostile Shadow Creatures (natch).
- put the player to sleep (???).

I'm open to further suggestions here.

--------------------------------------------------------------------------------
2646bce0e9 | Steve Melenchuk | 2014-01-10 11:27:24 -0700

An altar tile for the shadow god.
Pretty obviously based on the generic altar, but it'll suffice for the
moment.

--------------------------------------------------------------------------------
90d4682d8f | Steve Melenchuk | 2014-01-10 11:27:24 -0700

Recolour the shadow god's altar.
It was too readily confused with Zin and Kiku altars previously.

Hopefully this will end up being a bit more distinctive.

--------------------------------------------------------------------------------
571dd195bb | Steve Melenchuk | 2014-01-10 11:27:24 -0700

Shadow god: Shadow Form.
For 9 MP, 10 piety, and skill drain, you transform into a swirling mass
of dark shadows with immunity to poison, draining, torment, and hostile
enchantments as well as 50% damage reduction and a transformation of
your bled smoke into miasma (guaranteed on hit). However, you also only
deal 50% melee damage and suffer a double-strength spell anti-enhancer.

--------------------------------------------------------------------------------
c961fcdee6 | Steve Melenchuk | 2014-01-10 11:27:23 -0700

Shadow god: Shadow Mimic.
At a 10% chance at 4* piety up to 50% at 200 piety, you get an extra
"shadow action" on melee, ranged attacks, or spells, where a shadow of
your species and HD equal to your XL attacks with a +0 plain version of
the relevant weapon or casts the relevant targeted spell.

Having the full-powered version of the spell get cast here probably
should be toned down somehow; it's significantly better than the other
possible mimicked actions.

--------------------------------------------------------------------------------
a3a0f48aab | Steve Melenchuk | 2014-01-10 11:27:23 -0700

Shadow god: Bleed Smoke.
Always triggers on a 50%-mhp ("Ouch!") attack; the lower bound goes down
linearly to 0 damage at 200 piety, with a linearly-scaling maximum
chance over that range (so at 200 piety a 25%-mhp attack has a 50%
chance to trigger fog).

The cloud is half the size as you get with a scroll of fog or the Cloak
of the Thief (though it seems to spread fairly rapidly).

The specific numbers here might need to be adjusted more to balance it
out properly.

--------------------------------------------------------------------------------
d3e7f67982 | Steve Melenchuk | 2014-01-10 11:27:23 -0700

Shadow god: Shadow Step.
Within a piety-dependent range (3 at 2* up to LOS at 6*), you can move
into the shadow of a nearby creature assuming it has a shadow (i.e. not
invisible and one other condition) and that it's sufficiently still for
you to target it - i.e. the target is immobile in one form or another.

This is basically a jump attack without the attack and additional
conditions, and apes a lot of the code thereof.

Cost is currently 4 MP and 4 piety (piety cost is the same as Finesse,
Imprison, and Rain amongst other abilities).

--------------------------------------------------------------------------------
e3c0bc122d | Steve Melenchuk | 2014-01-10 11:27:23 -0700

Move some non-god-specific abil enums out of that space.
To make room for shadow god ability enums.

--------------------------------------------------------------------------------
01b9f1c510 | Steve Melenchuk | 2014-01-10 11:27:23 -0700

Shadow god - umbra.
This works exactly like TSO's halo, only it's an umbra.

--------------------------------------------------------------------------------
d9cdcdcceb | Steve Melenchuk | 2014-01-10 11:27:23 -0700

Shadow god - initial enums, features, descriptions, basics.
This will be based largely on mikee's proposal on Tavern here:
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=10117

Right now the name is "Dsomething". This obviously needs to be replaced
with something else (heh) before prime time.

--------------------------------------------------------------------------------
698cb9ceb7 | Adam Borowski | 2014-01-10 09:05:13 +0100

Let people choose old monster colours.
Like in previous versions.

--------------------------------------------------------------------------------
9795d00e21 | Chris Oelmueller | 2014-01-10 01:55:43 -0500

Recolor elephant slugs to white (was: lightgrey)
The old color looked way too much like a fungus. And they both hit harder and
move faster than those.

--------------------------------------------------------------------------------
7fb86952a9 | Neil Moore | 2014-01-09 22:47:37 -0500

Make pickup_menu_limit = 0 disable the menu altogether.

--------------------------------------------------------------------------------
cabd7f2c33 | Cedor | 2014-01-09 22:47:36 -0500

Menu for pickup : new option 'pickup_menu_limit'
'pickup_menu' option behavior adjusted:
* true : same behavior
* false : like the old auto:X, X is given with a new option:
          'pickup_menu_limit', default 4, negatives value considered
          as item_stack_summary_minimum.

Why 4? starting to 4 questions, you got a --more-- prompt, and starting to
6 items on the square, items are displayed with glyphs instead of full names.

[Applied a few minor fixes and simplifications -nfm]

--------------------------------------------------------------------------------
f1da993dbd | Neil Moore | 2014-01-09 22:47:36 -0500

Use ego:frenzy, not ego:wrath, for needles of frenzy.

--------------------------------------------------------------------------------
6a6b6ddf51 | Neil Moore | 2014-01-09 19:49:30 -0500

Correct the case of a pronoun.

--------------------------------------------------------------------------------
85748914e4 | Adam Borowski | 2014-01-10 01:39:50 +0100

Replace it with something.

--------------------------------------------------------------------------------
02ac60f292 | Adam Borowski | 2014-01-10 01:27:08 +0100

Fix non-neuter pronouns for those hit by a treant's roots.

--------------------------------------------------------------------------------
ce954e8741 | Adam Borowski | 2014-01-10 01:27:08 +0100

Deindent.

--------------------------------------------------------------------------------
b64af17f7a | Adam Borowski | 2014-01-10 01:27:07 +0100

Give a message when someone invisible gets hit by your spines.
You'd feel that.

--------------------------------------------------------------------------------
24a3214df1 | Adam Borowski | 2014-01-10 01:27:07 +0100

Remove redundancy: {attack,defend}er_visible vs {attack,defend}er_invisible.
They could go out of sync only if a monster somehow managed to make a
reaching attack through three clouds: impossible because a) current max reach
is 2, b) no one can attack out of LOS.  And while a) may change, I don't see
b) ever getting allowed.

And even if they did go out sync, the only result would be an
attacker/defender showing up as "something" rather than "it".

--------------------------------------------------------------------------------
3799b74068 | Adam Borowski | 2014-01-10 01:27:07 +0100

Make a function non-virtual.

--------------------------------------------------------------------------------
08cb1a4dcf | Adam Borowski | 2014-01-10 01:27:07 +0100

Drop some useless parentheses around comparisons.

--------------------------------------------------------------------------------
a735ae8250 | Raphael Langella | 2014-01-10 01:24:48 +0100

Generate the items in fsim_kit if they are not in the player's inventory.

--------------------------------------------------------------------------------
ea225a9039 | Neil Moore | 2014-01-09 18:38:34 -0500

Capitalise two sentences in dumps (#7969)
They were uncapitalised when the player worshipped TSO, as that god's
name does not begin with a capital letter.  The in-game messages were
fine, because mprf did the capitalisation.

--------------------------------------------------------------------------------
649a3f9251 | Neil Moore | 2014-01-09 14:18:10 -0500

Remove redundant declaration for fdatasync on Windows (#7884)

--------------------------------------------------------------------------------
dbdfa17b32 | Neil Moore | 2014-01-09 10:44:46 -0500

Remove some newly-dead geometry code.
The {get,set}_degrees methods of ray_def were only used by the chaos
bouncing code, removed in 0.14-a0-1819-g38ea213.  The functions
geom::degrees and geom::degree_to_vector were only used by those
ray_def methods.

--------------------------------------------------------------------------------
4ba8154abe | Adam Borowski | 2014-01-09 13:24:59 +0100

Drop the token black lady's tile.

--------------------------------------------------------------------------------
4f01dfc503 | Adam Borowski | 2014-01-09 13:23:03 +0100

Ensure the player doesn't end up in a wall on abyss shifts.
Somehow, _write_abyssal_features() did that in one case.  Not sure why, as
the terrain is supposed to come from around the player.

--------------------------------------------------------------------------------
9e3a7cbb36 | Adam Borowski | 2014-01-09 13:23:03 +0100

Assert-crash if the player somehow ends up in a wall.
Wizmode XT is explicitely allowed: if we banned that, there's currently no
good replacement for going into a wall and &(

--------------------------------------------------------------------------------
38ea213ded | Adam Borowski | 2014-01-09 13:23:02 +0100

Don't let apocalypse crab breath bounce at weird angles.
It causes no end of obscure crashes.  Fixing them would be an option, but
then, these bounces are so rare that people won't notice all this work.
Regular bounces are good enough.

--------------------------------------------------------------------------------
eb8fa0b6bb | Adam Borowski | 2014-01-09 13:23:02 +0100

Fix a crash with dispersal missiles in a crowded area.
150 tries is little compared to 213 squares in LOS, it's possible to fail
to notice a valid spot -- currently random blink is not guaranteed due to
other quirks in the code so that's probably ok.  Yet this means finding
the first of two spots dispersal wants succeeds but the second fails.

--------------------------------------------------------------------------------
b992dfe8f2 | gammafunk | 2014-01-09 07:08:48 +0200

Sort spectator names and link them to player pages in webtiles chat.
This lists the player first, followed by all other non-anonymous spectators
alphabetically sorted.  Spectator names are now hyperlinks based off a
player_url variable in the webserver configuration.  Thanks to CursedNobleman
for the idea.

--------------------------------------------------------------------------------
c9fd7b2bf6 | Pekka Lampila | 2014-01-09 06:32:06 +0200

Fix a WebTiles loading error (#7965)

--------------------------------------------------------------------------------
7b44d58abb | Pekka Lampila | 2014-01-09 05:49:36 +0200

Fix a WebTiles log message

--------------------------------------------------------------------------------
feb5b5c398 | Neil Moore | 2014-01-08 15:19:47 -0500

Remove another vestige of Pan (Hangedman)

--------------------------------------------------------------------------------
c2b93a613c | Neil Moore | 2014-01-08 15:07:48 -0500

Restore acq weight for manual of necro under Fedhas (wheals)
Fedhas worshippers can use a substantial number of necromancy spells.

Another option would be to revert but also, for consistency, mark poison
as "useless" for TSO in this function.

Note that this check only affects acquirement weights for manuals, not
the actual "useless" item flag and not spellbook acquirement.

--------------------------------------------------------------------------------
f4d1516930 | Neil Moore | 2014-01-08 15:07:48 -0500

Reduce manual of Invo acq weight for Jiyva worshippers (wheals)
Jiyva hasn't used Invocations since 0.14-a0-988-ge43bbd0.

--------------------------------------------------------------------------------
dc2d5afaf6 | Chris Campbell | 2014-01-08 00:59:08 +0000

Remove a Xom trap vault
It's incredibly spoilery: if you go near it with a monster in LOS, the
item is destroyed, presumably to prevent monsters being used to pick up
the wand and move it away from the trigger? Even if the item were marked
no_pickup to solve this, handing out items like wands of teleportation in
a spoilery way isn't great.

--------------------------------------------------------------------------------
53ace98f7d | Chris Campbell | 2014-01-08 00:27:22 +0000

Reword some ARTP_ descriptions (wheals)

--------------------------------------------------------------------------------
8a16899ae0 | Adam Borowski | 2014-01-07 19:51:55 +0100

Fix job abbrevs and names getting out of sync on save bumps.
Also #ifdef out a sighting of Priests.

--------------------------------------------------------------------------------
9e23fff017 | Adam Borowski | 2014-01-07 19:36:21 +0100

Teach db_lint how to check backgrounds.txt

--------------------------------------------------------------------------------
29eb587052 | Adam Borowski | 2014-01-07 19:30:57 +0100

Purge the desc for Sludge Elves.

--------------------------------------------------------------------------------
d418f81654 | Adam Borowski | 2014-01-07 19:30:19 +0100

Teach db_lint how to check species.txt

--------------------------------------------------------------------------------
a3d096c09f | Adam Borowski | 2014-01-07 18:42:06 +0100

Validate all of godspeak.txt, not just Xom lines.

--------------------------------------------------------------------------------
89dae3b81b | Adam Borowski | 2014-01-07 17:50:46 +0100

Drop pointless redirection for god welcome speech.

--------------------------------------------------------------------------------
6e8744332d | Neil Moore | 2014-01-07 00:07:50 -0500

Nerf blowguns in old saves.
To remove the hidden +dam enchantment.

--------------------------------------------------------------------------------
d8ce012f37 | Neil Moore | 2014-01-07 00:07:50 -0500

Don't generate blowguns with nonzero to-dam enchantment.
The enchantment worked but was hidden, revealed only by the chance of
the item having a runed appearance.

Also fix up the slated-for-removal blowgun of the assassin, just in
case someone gets ideas.

--------------------------------------------------------------------------------
f9b759332c | Adam Borowski | 2014-01-07 04:46:56 +0100

Repaint demonspawn brown.
Not that they really exist outside of show_player_species.

--------------------------------------------------------------------------------
95383443fb | Neil Moore | 2014-01-06 22:35:58 -0500

Give Duvessa plain blue hair (minmay)

--------------------------------------------------------------------------------
e4552187d6 | Adam Borowski | 2014-01-07 04:31:19 +0100

Reduce Forest guests on shallow Abyss.
They include plenty of fast deadly monsters, nasty vs early banishments.

--------------------------------------------------------------------------------
4c7263ade3 | Adam Borowski | 2014-01-07 04:17:51 +0100

Repaint naga mages magenta.
Consistent with greater nagas -- the only other spellcasting nagas.  Also
consistent with every single monster with "wizard" or unqualified "mage"
in its name.

--------------------------------------------------------------------------------
fca41778bc | Adam Borowski | 2014-01-07 04:17:51 +0100

Remove Lamia.

--------------------------------------------------------------------------------
1ce0708229 | Adam Borowski | 2014-01-07 04:17:51 +0100

Guarantee the Forest, for now.
There hasn't been any changes to Crypt recently, and we know it works.  On
the other hand, Forest needs quite a lot of balancing if it's to feature in
0.14.

--------------------------------------------------------------------------------
8c28bbf39e | Steve Melenchuk | 2014-01-06 18:59:12 -0700

Salamanders move like nagas on land.
<kilobyte> since they're lava nagas, obviously...

They still swim at speed 10, though.

--------------------------------------------------------------------------------
2c1767037a | Adam Borowski | 2014-01-07 02:49:57 +0100

Let salamanders drop corpses.

--------------------------------------------------------------------------------
0acfe2faf2 | Adam Borowski | 2014-01-07 02:44:55 +0100

Move salamander tiles back out of aquatic/

--------------------------------------------------------------------------------
6cc893776b | Adam Borowski | 2014-01-07 02:44:39 +0100

Unbreak.

--------------------------------------------------------------------------------
911af47f0a | Steve Melenchuk | 2014-01-06 18:39:01 -0700

Make salamanders amphibious wrt lava / spawn occasionally in late Snake.
This has been suggested a few times. Gameplay-wise, they're not very
challenging to avoid (except for the Snake ending that places them)
thanks to the constraint of being stuck in a pool of lava; flavour-wise,
the mythological creature it's based on is amphibious in many
representations.

Snake could use a slightly more diverse enemy set anyway (see
snake-enemies branch).

This introduces an HT_AMPHIBIOUS_LAVA, which is exactly what it sounds
like; perhaps a better name could be found for it.

--------------------------------------------------------------------------------
6e8320a233 | Adam Borowski | 2014-01-07 02:31:24 +0100

Update .pl Xomspeak.

--------------------------------------------------------------------------------
29d148a2b9 | Adam Borowski | 2014-01-07 02:31:06 +0100

Let db_lint check Xommy parts of godspeak.txt.

--------------------------------------------------------------------------------
070ca00bc4 | Adam Borowski | 2014-01-07 01:53:54 +0100

Drop a few no longer used .pl Xomspeak translations.

--------------------------------------------------------------------------------
e8b8e78ba2 | Adam Borowski | 2014-01-07 01:45:16 +0100

Revert "Rename languages to ll_CC"
The database handling cannot use gettext anyway, so even if we somehow used
gettext for in-game messages, the database won't use it too.  So, the only
results of such a rename are:
* longer typing when editing files
* tools like transifex or db_lint need to be teached area codes
* more complex handling of locale names

This reverts commit 31d50edb7a7a33156b8ced5b7ec3bb577d54a1ed.

--------------------------------------------------------------------------------
c51b6860fc | Adam Borowski | 2014-01-07 01:31:55 +0100

Accept non-standard Microsoftesque "en-US".
It's not needed for locale parsing as that part of the code is not used on
Windows, but someone can still write this in init.txt language=.

--------------------------------------------------------------------------------
30d5508cd4 | Adam Borowski | 2014-01-07 01:29:47 +0100

Revert broken parsing of locale names.
The old code could already understand aa_BB, the new one will happily accept
aaa when inappropriate.  This means that for example "latvian" will be taken
for "la"tin.

--------------------------------------------------------------------------------
31d50edb7a | Raphael Langella | 2014-01-07 01:17:05 +0100

Rename languages to ll_CC
To make it compatible with gettext (see ChrisOelmueller's i18n branch on github)

--------------------------------------------------------------------------------
530e0c4fa6 | Adam Borowski | 2014-01-06 23:24:44 +0100

Move some non-demons (unseen horror, uglies) away from mon/demons/
It's a common mistake for players, too -- nothing tells you you can vamp
drain or agony these, and learning that is quite a surprise.  I guess we'd
better use that proposed "eldritch" holiness for them, making them
undrainable.

The directory name sucks and is a D&Dism -- sadly, "eldritch" is still not
right as without the word having an in-game meaning it's mostly a synonym
for "abyssal" which these critters are not.

--------------------------------------------------------------------------------
6ce00c4318 | Adam Borowski | 2014-01-06 23:24:44 +0100

Move fish tiles from mon/animals to mon/aquatic.
They feel out of place there, and that directory is stuffed.

--------------------------------------------------------------------------------
b3ccc6bd9c | Adam Borowski | 2014-01-06 23:24:44 +0100

Drop a pointless comment file.
It tends to go out of sync, and the contents are easy to guess.

--------------------------------------------------------------------------------
764ba6b591 | Adam Borowski | 2014-01-06 23:24:44 +0100

Simplify the config file header for translations.

--------------------------------------------------------------------------------
115aa3dca4 | ontoclasm | 2014-01-06 14:47:59 -0600

Brighten some ugly things

--------------------------------------------------------------------------------
c541121166 | ontoclasm | 2014-01-06 14:41:21 -0600

Brighten some vermin

--------------------------------------------------------------------------------
79536520ca | Adam Borowski | 2014-01-06 17:39:43 +0100

Manual: remove long gone '}' (MarvinPA)

--------------------------------------------------------------------------------
6cb0bb7213 | Adam Borowski | 2014-01-06 17:39:43 +0100

A typo fix.

--------------------------------------------------------------------------------
c0900f2698 | Raphael Langella | 2014-01-06 16:24:09 +0100

More localization of quotation marks.

--------------------------------------------------------------------------------
9555070686 | Translators | 2014-01-06 16:24:09 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
e500af7295 | Neil Moore | 2014-01-05 22:53:56 -0500

Convert some stray tabs in options_guide.txt

--------------------------------------------------------------------------------
86b63b8992 | Neil Moore | 2014-01-05 22:53:16 -0500

Leak an option secret tech.

--------------------------------------------------------------------------------
5496fc2268 | Neil Moore | 2014-01-05 22:22:51 -0500

Allow monsters to dig through iron grates.

--------------------------------------------------------------------------------
ddc40aeaad | Neil Moore | 2014-01-05 22:18:22 -0500

Keep original capitalisation in user_note_prefix (#7925)
Spaces are still stripped, though, because I'm not sure of the best way
to do that.

--------------------------------------------------------------------------------
df6c89a4af | Marbit | 2014-01-05 18:49:48 -0500

Ijyb monspeak new line

--------------------------------------------------------------------------------
2a55ee8b3c | Adam Borowski | 2014-01-06 00:17:09 +0100

Don't spawn kennysheep shops on D:1-3.

--------------------------------------------------------------------------------
112ad64ef9 | Adam Borowski | 2014-01-06 00:15:30 +0100

Drop one more white statue.

--------------------------------------------------------------------------------
7a97ba40ff | Chris Campbell | 2014-01-05 12:13:49 +0000

Redraw AC/EV/SH when being drained or recovering from draining (#7957)

--------------------------------------------------------------------------------
49ce88036c | Neil Moore | 2014-01-04 19:04:19 -0500

Add wheals to CREDITS.txt

--------------------------------------------------------------------------------
73aa22b3d0 | Neil Moore | 2014-01-04 14:50:03 -0500

Add þuþþy to CREDITS.txt

--------------------------------------------------------------------------------
b71b72513a | Neil Moore | 2014-01-04 14:40:23 -0500

Add badplayer to CREDITS.txt

--------------------------------------------------------------------------------
1e95d3e694 | Neil Moore | 2014-01-04 12:49:53 -0500

Thank a spice rack in CREDITS.txt
Are you going to Scarborough Fair?
Basil, Sage, occasionally Thyme

--------------------------------------------------------------------------------
dbd231b156 | Steve Melenchuk | 2014-01-03 19:49:47 -0700

Tune CBL, mainly through ball lightning behaviour changes.
They behave like giant spores now - they can't be controlled directly,
instead seeking out the nearest target and exploding when sufficiently
near. (Yes, this means they aren't permanently confused any longer.)

I've also made the distribution of how many ball lightnings are summoned
a little bit smoother, and put a cap on how many monsters can summon at
once.

In my testing, CBL is a little less suicidal to use now, but I think
further tweaks that I've previously toyed with such as reducing the
explosion radius might still be warranted.

Also, try fighting Lom Lobon now; CBL is much more effective in his
hands, too!

--------------------------------------------------------------------------------
de08443c12 | Neil Moore | 2014-01-03 20:34:09 -0500

Update guide.txt (ChrisOelmueller)

--------------------------------------------------------------------------------
73ea2081f6 | Neil Moore | 2014-01-03 18:03:01 -0500

Don't unmark Shadow Creature re-rolls as summoned (#7842)

--------------------------------------------------------------------------------
fe0462945a | Neil Moore | 2014-01-03 18:01:13 -0500

Avoid a doll editor crash (#7953)
Trying to scroll left though the parts failed when there was just a single
choice for the part.  In particular, this happened for formicids, which
have just one base tile.

--------------------------------------------------------------------------------
d40e860721 | Neil Moore | 2014-01-03 15:05:30 -0500

Allow X\ and X_ to find unknown portals/altars.
Useful, for example, after using magic mapping.

--------------------------------------------------------------------------------
7239af937a | Neil Moore | 2014-01-03 14:40:08 -0500

Make \ cycle through portals when targeting, too.
Don't add it to the help, though, because there is no room :(

--------------------------------------------------------------------------------
dbe6e7264a | Neil Moore | 2014-01-03 14:39:54 -0500

Add \ to view-map help (Medar)
And reformat to match.

--------------------------------------------------------------------------------
771bc49063 | Neil Moore | 2014-01-03 14:23:03 -0500

Simplify X\, make it match feat_is_gate.
Now it finds precisely shops and those features for which feat_is_gate()
is true.

--------------------------------------------------------------------------------
1a0f12267a | Neil Moore | 2014-01-03 14:23:03 -0500

Consider Vaults entrance a gate.

--------------------------------------------------------------------------------
16c4a21957 | Chris Campbell | 2014-01-03 19:17:36 +0000

Clarify is_spellcaster vs is_caster in monster_info

--------------------------------------------------------------------------------
e89080694b | Chris Campbell | 2014-01-03 19:17:35 +0000

Don't crash on vault-defined spellcasters that aren't priests/actual casters

--------------------------------------------------------------------------------
be324a1e5c | Chris Campbell | 2014-01-03 19:17:35 +0000

Fix missing handling of fake spells in monster spell lists

--------------------------------------------------------------------------------
67e62b1a32 | Cedor | 2014-01-03 19:17:34 +0000

Added spell list to monster description for player ghosts and vault monsters

--------------------------------------------------------------------------------
ff7ed8f24b | Chris Campbell | 2014-01-03 19:17:33 +0000

Adjust/remove some Sprint map headers
Typo fixing, and removing some obsolete headers.

--------------------------------------------------------------------------------
377e190e4f | Adam Borowski | 2014-01-03 20:06:17 +0100

Make a function's argument less confusing.
It holds a glyph rather than a feature.

--------------------------------------------------------------------------------
89b3a041c7 | Adam Borowski | 2014-01-03 20:04:24 +0100

Fix < > not finding portals and exits on X.

--------------------------------------------------------------------------------
b59eb84e37 | Neil Moore | 2014-01-03 13:27:53 -0500

Prevent a few abyss entries from being disconnected

--------------------------------------------------------------------------------
cd66a63a80 | Chris Oelmueller | 2014-01-03 12:12:19 -0500

Fix two D arrival vaults with multiple upstairs
Namely elethiomel_arrival_maze and onia_arrival_mini_maze_b.

--------------------------------------------------------------------------------
fb1c10be7d | Chris Oelmueller | 2014-01-03 12:11:28 -0500

Few more vim syntax file updates
Zig tags, `entry`=>`arrival` rename, portal branch feature expansion,
desProperty fixes for apostrophized spell names and empty spell slots.

--------------------------------------------------------------------------------
c2b4db42b8 | Chris Oelmueller | 2014-01-03 12:11:16 -0500

Less awkward line continuation

--------------------------------------------------------------------------------
88ecc806f9 | Chris Oelmueller | 2014-01-03 12:11:10 -0500

Fix grasping roots message
This used to print `and drag you backto the ground.`

--------------------------------------------------------------------------------
e81dafda9b | Chris Oelmueller | 2014-01-03 12:10:23 -0500

Documentation fixes.

--------------------------------------------------------------------------------
6c2808eed2 | Adam Borowski | 2014-01-02 22:52:49 +0100

Don't use languages by default on Windows console.
This doesn't really work for those not in CP437, such as German, French or
Danish.  We could special case these languages; for now I'm simply disabling
setting any locale by default.  The user can manually set language=klingon
in their config which will work after switching the console to a _truetype_
font with klingon glyphs.  This AFAIK can't be controlled by a process
running inside the console in a sane way.

Better solutions welcome.

--------------------------------------------------------------------------------
6e19835d51 | Adam Borowski | 2014-01-02 22:52:48 +0100

Drop remarks about wielding a knife from the desc of Bottle Blood.
Using the word "wield" suggests you can't do so while wielding a cursed
blunt weapons, which doesn't preclude bottling anymore.  Only certain forms
without appendages can't bottle blood, at most drink the corpse directly.

--------------------------------------------------------------------------------
2642df196d | Adam Borowski | 2014-01-02 22:52:48 +0100

Purge away HT_ROCK and HT_INCORPOREAL.

--------------------------------------------------------------------------------
d1f8b20219 | Adam Borowski | 2014-01-02 22:52:48 +0100

Shove monsters out of walls on save load.
In an ideal world, this would apply only to rock worms and dryads, but
there's still an unfixed Vaults generation bug.

--------------------------------------------------------------------------------
d52769fc60 | Adam Borowski | 2014-01-02 22:52:48 +0100

Revert "Let ghosts of axed monsters walk through walls."
Let's force them out of walls instead.

This reverts commit 50fbbe9abb61ba0997067f1905975871b1e76aa5.

--------------------------------------------------------------------------------
a613e77594 | Adam Borowski | 2014-01-02 22:52:48 +0100

Use the burrowing code for spatial maelstroms.
Getting rid of HT_INSUBSTANTIAL will mean nothing ever can stand in a wall,
which can simplify code that tends to lead to very obscure crashes.

--------------------------------------------------------------------------------
7e31c9e48d | Adam Borowski | 2014-01-02 22:52:48 +0100

Deindent.

--------------------------------------------------------------------------------
9b7dc53a97 | Adam Borowski | 2014-01-02 22:52:48 +0100

A desc for big kobold necromancers.

--------------------------------------------------------------------------------
a7bed8caf5 | Pekka Lampila | 2014-01-02 17:36:37 +0200

Allow setting tile_font_*_size to 0 (base on screen size)
It was the default value already.

--------------------------------------------------------------------------------
21c2dfefda | Pekka Lampila | 2014-01-02 17:36:31 +0200

Support tile_font_*_size in WebTiles
Except for tile_font_tip_size, since there are no tooltips.

--------------------------------------------------------------------------------
71400eb16e | Pekka Lampila | 2014-01-02 16:38:31 +0200

Add tile_realtime_anim and tile_display_mode to init.txt

--------------------------------------------------------------------------------
9aea613c99 | Pekka Lampila | 2014-01-02 16:20:05 +0200

Remove remaining traces of WebTiles settings window

--------------------------------------------------------------------------------
a3a7cb9149 | Pekka Lampila | 2014-01-02 16:20:05 +0200

Move WebTiles animations setting to rc file

--------------------------------------------------------------------------------
71653c31d6 | Pekka Lampila | 2014-01-02 16:20:05 +0200

Add a JavaScript function for testing changing options

--------------------------------------------------------------------------------
b67c0d2925 | Pekka Lampila | 2014-01-02 16:18:51 +0200

Move WebTiles glyph mode setting to rc file
Also axe a tile_force_regenerate_levels sighting.

--------------------------------------------------------------------------------
fce588a4f1 | Pekka Lampila | 2014-01-02 14:41:39 +0200

Use rc settings for tile scaling in WebTiles
tile_cell_pixels and tile_filter_scaling

--------------------------------------------------------------------------------
4d8bd4c4b8 | Pekka Lampila | 2014-01-02 13:08:51 +0200

Hopefully fix reST syntax

--------------------------------------------------------------------------------
f944105c90 | Pekka Lampila | 2014-01-02 09:08:09 +0200

Message for restore abil partially curing draining

--------------------------------------------------------------------------------
84c87b2856 | Neil Moore | 2014-01-01 23:37:17 -0500

Fix special_room_morgue for delayed_decay changes.
Use a few substitutions instead of having / nothing in the decayed_delay
spec.  For simplicity, we no longer place corpses on the stairs.

Also fix a stray whitespace in the delayed_decay implementation.

--------------------------------------------------------------------------------
50fbbe9abb | Neil Moore | 2014-01-01 13:30:17 -0500

Let ghosts of axed monsters walk through walls.
They may have been rock worms in a previous life.  Hopefully with the
removal of wall shielding this won't be too annoying.

--------------------------------------------------------------------------------
a7e7698612 | Neil Moore | 2013-12-31 21:45:50 -0500

Document delayed_decay changes.

--------------------------------------------------------------------------------
881850a45f | Neil Moore | 2013-12-31 21:28:53 -0500

Use delayed_decay in sewer_kobold_necro_badplayer.

--------------------------------------------------------------------------------
45df7d9174 | Neil Moore | 2013-12-31 21:28:53 -0500

Allow delayed_decay to work with , and / itemspecs.
Several existing calls used something like:
  dgn.delayed_decay(_G, '%', 'human corpse / human skeleton')
But that actually only added never_decay to the corpse, not the
skeleton.  Now add delayed_

Also add a new function dgn.delayed_decay_extra, like delayed_decay
but taking one additional argument: a string listing additional
non-corpse items to place on the spot.  If the argument is not nil,
it is appended to the itemdef with a comma.  Use this for cases
like 'human corpse, battleaxe'.

Finally, for the few cases that used something like "human corpse / nothing",
use a SUBST to get the same weights.

--------------------------------------------------------------------------------
64942016d4 | Robert Lund | 2013-12-31 21:28:52 -0500

Add a Kobold Necromancer sewer vault
[Committer's note: made the following changes:
 * Named the monster "big kobold necromancer".
 * Set the weight fairly low.
-nfm]

--------------------------------------------------------------------------------
9fadcd109c | Robert Lund | 2013-12-31 21:28:13 -0500

Add Ribbit sewer vault.
[Committer's node: made the following changes:
 * Removed some stray permarock (where giant frogs would be).
 * Removed the PLACE: D:6
 * Fixed some stray whitespace
-nfm]

--------------------------------------------------------------------------------
03060e9e48 | Samuel Bronson | 2013-12-31 20:23:08 -0500

libunix: drop now-unneeded "#pragma GCC diagnostic" junk

--------------------------------------------------------------------------------
e84909d808 | Samuel Bronson | 2013-12-31 20:18:05 -0500

Use -isystem instead of -I for (what should be) system libraries
This includes contribs.

We don't do this for system sqlite, though, since that's expected to
be either in /usr/include et al or from contribs, and explicitly
passing "-isystem /usr/include" screws up the include path ordering.

(Instead, we drop the -I flag for sqlite entirely.  If it turns out to
be needed somewhere, the comments were wrong ...)

--------------------------------------------------------------------------------
905e27af4c | Steve Melenchuk | 2013-12-31 14:19:56 -0700

Suppress distortion unwield effects for Lucy followers.
In my observations of relatively recent wins by Lucy followers, very few
actually bother to take advantage of the 6* gift; this might partially
be on account of the limitations of the brand itself, but even for
weapons which pair well with it (fast-hitting weapons, axes, and the
like) players prefer other brands. I theorise this is partially on
account of being effectively restricted to use of the one weapon if the
player doesn't want to be subject to extreme negatives.

I've run this idea by quite a few people and there doesn't seem to be
any negative feedback on it as yet, so I think it's worth giving a try.

--------------------------------------------------------------------------------
92186bdbb7 | Neil Moore | 2013-12-31 14:31:26 -0500

Improve flavour of reanimated macropods.

--------------------------------------------------------------------------------
3974a1938a | Chris Campbell | 2013-12-31 18:54:23 +0000

Unhide a hidden item in due_jungle_book
The item surrounded by trees is now at least visible without reading the
vault desc.

--------------------------------------------------------------------------------
a85e0a96c3 | Pekka Lampila | 2013-12-31 10:59:53 +0200

Allow breaking long words in the chatbox

--------------------------------------------------------------------------------
79f50bad92 | Pekka Lampila | 2013-12-31 10:59:53 +0200

Actually disable chatbox horizontal scroll

--------------------------------------------------------------------------------
75daffb884 | Adam Borowski | 2013-12-31 05:27:27 +0100

Shunt the player to (0,0) during map validity checks.
In case there's a monster on the player's position -- which often refers to
a different level.

--------------------------------------------------------------------------------
c9884c8c10 | Adam Borowski | 2013-12-31 05:24:57 +0100

Revert "Don't check monster validity when loading a level."
A good part of bogosity comes from invalid monsters, so we do want to assert
on them.

This reverts commit b80bb099385e7d0e70b058492140caa7afc4abbc.

--------------------------------------------------------------------------------
b80bb09938 | Neil Moore | 2013-12-30 21:52:39 -0500

Don't check monster validity when loading a level.
During a level excursion, the player's position isn't correct, so they
might appear to be standing on top of a monster.

--------------------------------------------------------------------------------
849d06bd9a | Pekka Lampila | 2013-12-31 04:10:27 +0200

Prompt for dangerous moves before trying to escape constriction

--------------------------------------------------------------------------------
c35aa6e90b | Pekka Lampila | 2013-12-31 01:35:15 +0200

Give 0.0 skill the same boost as 0.1 skill by Ash
This way you can always see what skills are boosted in the skill menu.

--------------------------------------------------------------------------------
84dc8f1d85 | Pekka Lampila | 2013-12-31 01:35:15 +0200

Fix display of enhanced skills that didn't break level boundary
Same goes for reduced skills

--------------------------------------------------------------------------------
926f6aa1ad | Neil Moore | 2013-12-30 17:18:56 -0500

Suppress Formicid rP- in forms (#7886)
It's only fair, since we do the same thing to Nagas' rP+.

Also, display it as suppressed in statue and lich form, even though
that's not exactly the same thing (it is not suppressed, but is
overridden entirely by the form's poison-immunity).

--------------------------------------------------------------------------------
e466b19865 | Neil Moore | 2013-12-30 16:58:09 -0500

Add spaces after switch and catch keywords.

--------------------------------------------------------------------------------
31843b9fba | Neil Moore | 2013-12-30 16:50:46 -0500

Remove extra parentheses.

--------------------------------------------------------------------------------
5c0f9e6d2f | Chris Oelmueller | 2013-12-30 16:33:36 -0500

Remove `pickup_mode` option, introduce `pickup_menu`
End result is that:
* `pickup_menu = true` is old `pickup_mode = multi`, and new default
* `pickup_menu = false` is old `pickup_mode = single`
* `pickup_mode = auto:X` is gone without replacement for being of little use

Recognizing the old option in initfile did not make much sense either
because the default changed: Old `multi` was the only setting that
anybody would include in their rcfile, and that one is now meaningless.

So if your config until now included a line like the following:
    pickup_mode = multi
you can now safely remove this.
If you prefer the old default behavior, use this option from now on:
    pickup_menu = false

--------------------------------------------------------------------------------
0f97eb19f4 | Immotian | 2013-12-30 16:32:08 -0500

Identify last unknown targetted scroll and healing potion
... when you know what they are.

Specifically, you know what they are when it has been tried (so you know it
is in one of those categories) and when all the others in that category are
identified. This should probably be extended to nontargetted scrolls, mainly
for ?CW for Mo, and for the last unidentified scroll and last unidentified
potion.

[With spelling changes to reflect 0.14-a0-1407-g9ff65a6 -nfm]

--------------------------------------------------------------------------------
06d0eecfd7 | Neil Moore | 2013-12-30 15:36:42 -0500

Add missing branch entries before checking validity.
Also, improve a comment (SamB).

--------------------------------------------------------------------------------
3faffb6e9b | Neil Moore | 2013-12-30 15:36:36 -0500

Don't check for missing portals while ascending (#7941)

--------------------------------------------------------------------------------
5c7722d155 | Pekka Lampila | 2013-12-30 22:05:23 +0200

Allow specifying a separator for WebTiles game links

--------------------------------------------------------------------------------
55deb87d35 | Adam Borowski | 2013-12-30 19:14:01 +0100

Brace removal.

--------------------------------------------------------------------------------
f5bcc7ff0d | Adam Borowski | 2013-12-30 19:14:01 +0100

Get rid of a couple of pointless wall recolourings.

--------------------------------------------------------------------------------
0a5ed41f8f | Adam Borowski | 2013-12-30 19:14:01 +0100

Don't let granite statues masquerade as actual monsters by recolouring.

--------------------------------------------------------------------------------
635c65f0f6 | Adam Borowski | 2013-12-30 19:08:55 +0100

Fix a crash with Xom swapping you with a monster.
It's possible there's a monster on the same square as the player,
if submerging or Fedhas are involved.

--------------------------------------------------------------------------------
99b8db21f8 | Neil Moore | 2013-12-30 11:10:57 -0500

Don't crash on banishment (#7938)

--------------------------------------------------------------------------------
49e8e1e2f2 | Neil Moore | 2013-12-30 10:44:06 -0500

Don't exclude safe squares in lexackson_kobold_supper.

--------------------------------------------------------------------------------
557a13a0c8 | Samuel Bronson | 2013-12-30 01:27:44 -0500

manual: Fix typos introduced in the recent flurry of updates

--------------------------------------------------------------------------------
0e827d113c | Samuel Bronson | 2013-12-30 00:16:34 -0500

Fix spelling in "potion of poison" quote

--------------------------------------------------------------------------------
0be786fb0d | Samuel Bronson | 2013-12-30 00:15:24 -0500

link_items() *before* tag_read_level_tiles() to avoid Lua crashes ...
Hopefully this makes things at least a *little* better for Sky.

--------------------------------------------------------------------------------
1d962ef99c | Adam Borowski | 2013-12-30 01:36:15 +0100

Drop MUT_SLOW and MUT_FAST as random mutations.
Too bad/good to give randomly.  Also, a blocker for time-based scoring.

--------------------------------------------------------------------------------
3564cdc4e8 | Adam Borowski | 2013-12-30 01:36:15 +0100

Generate rods of striking as same maxmp as other rods.
They're a starting item no more.

--------------------------------------------------------------------------------
2c1f11bc7a | Sage | 2013-12-29 23:56:20 +0000

Add an indicator and identify sustain abilities on partial protection.

--------------------------------------------------------------------------------
dc6548d80e | ontoclasm | 2013-12-29 12:36:51 -0600

Bastard sword tiles (pubby)

--------------------------------------------------------------------------------
dbebbfd3a6 | Adam Borowski | 2013-12-29 19:11:40 +0100

Don't announce or list on the god help screen abilities unusable by Fo.

--------------------------------------------------------------------------------
9ad3538a1a | Adam Borowski | 2013-12-29 19:06:20 +0100

Don't list other abilities that are perma-useless for Fo, either.

--------------------------------------------------------------------------------
33943c6af0 | Adam Borowski | 2013-12-29 18:57:07 +0100

Don't talk about Finesse for dwants of Oka.
Other abilities that are perma-useless are not even listed, so this
shouldn't be either.

--------------------------------------------------------------------------------
c2680e791f | Neil Moore | 2013-12-29 11:53:29 -0500

Change a 0 to nullptr (SamB)

--------------------------------------------------------------------------------
ce4e046c10 | Brendan Hickey | 2013-12-28 22:51:47 -0800

Disable chatbox horizontal scroll

--------------------------------------------------------------------------------
2890da7b86 | ontoclasm | 2013-12-28 23:16:19 -0600

Claymore tiles (pubby, 7891)

--------------------------------------------------------------------------------
3b7ee2e014 | Brendan Hickey | 2013-12-28 14:47:56 -0800

Check res_rotting, rather than species for !decay.

--------------------------------------------------------------------------------
ec4be5300b | Brendan Hickey | 2013-12-28 14:43:10 -0800

Reduce Experience mod for high level summons
Summons-abjure-on-death has made summoners less dangerous.
This patch slightly reduces the experience modifier for
knowing high level summon spells.

--------------------------------------------------------------------------------
b38bd30843 | Brendan Hickey | 2013-12-28 14:42:50 -0800

Don't label decay as dangerous for gargoyles.

--------------------------------------------------------------------------------
e9fde754fa | Chris Campbell | 2013-12-28 22:35:46 +0000

Fix potions of blood being considered useless with Sublimation memorised

--------------------------------------------------------------------------------
53291962a2 | Chris Campbell | 2013-12-28 22:35:36 +0000

Fix serial_ice recolouring statues to look like silver statues

--------------------------------------------------------------------------------
9b25c0fb4a | Brendan Hickey | 2013-12-28 14:23:40 -0800

Tone down ReStab
Decrease the frequency of ReStab, redistributing the weight among
might, brilliance and agility. ReStab now reduces draining by half.

I want to avoid dead-man-walking situations without significantly
nerfing draining.

--------------------------------------------------------------------------------
5d474e4e74 | Adam Borowski | 2013-12-28 22:40:33 +0100

Give everyone the same nutrition for drinking blood.
Ie, 1000 for fresh blood, 800 for coagulated.

Also, add back the missing 40 nutrition that used to be granted for drinking
a potion.

--------------------------------------------------------------------------------
9518ca97ab | Neil Moore | 2013-12-28 12:41:11 -0500

Don't trap players in nicolae_good_shop (#7927)

--------------------------------------------------------------------------------
a43c125842 | Neil Moore | 2013-12-28 11:55:36 -0500

Show abandoned shops again.
Also introduced by 0.14-a0-1544-gcabeb52.

--------------------------------------------------------------------------------
f4cfba611b | Neil Moore | 2013-12-28 11:55:12 -0500

Show Pan entrances again.
They had no glyph, and furthermore weren't marked as notable so didn't
show up in ctrl-o.  Introduced by 0.14-a0-1544-gcabeb52.

--------------------------------------------------------------------------------
9d5a29e996 | Neil Moore | 2013-12-27 18:26:40 -0500

Improve indentation.

--------------------------------------------------------------------------------
0b35444cef | Chris Campbell | 2013-12-27 23:10:05 +0000

Fix a typo

--------------------------------------------------------------------------------
737b276afe | Chris Campbell | 2013-12-27 23:10:03 +0000

Add some braces

--------------------------------------------------------------------------------
21dd7f6277 | Adam Borowski | 2013-12-27 21:15:40 +0100

Further manual updates.

--------------------------------------------------------------------------------
cc05e5891b | Adam Borowski | 2013-12-27 20:46:32 +0100

Manual updates (wheals)

--------------------------------------------------------------------------------
a5703a3576 | Neil Moore | 2013-12-27 14:40:57 -0500

Make stabbers use curare against rP- foes (nagdon, #7887)
And not against sleepable rP foes.

--------------------------------------------------------------------------------
d2095440b0 | Neil Moore | 2013-12-27 14:22:59 -0500

Display correct min delay for launchers.

--------------------------------------------------------------------------------
73d0e88602 | Neil Moore | 2013-12-27 13:43:22 -0500

Don't infinite loop on corrupt ATTR_TEMP_MUTATIONS (#7910)
Now instead of picking a random mutation until we find a transient one,
we choose randomly from the player's transient mutations.  If we don't
find one, clear ATTR_TEMP_MUTATIONS to partially fix saves corrupted
by transferring across 0.14-a0-1589-g48c4fed.  Once save compat is
bumped and we don't have to handle such saves, just give an assert
instead.

--------------------------------------------------------------------------------
5434211ce0 | Neil Moore | 2013-12-27 13:02:01 -0500

Correctly display min delay of the dark maul.
Now the mindelay code accounts for the fact that skill level 27 is the
maximum.  This shouldn't change the actual calculation in melee_attack,
and it is a bug if it does.

--------------------------------------------------------------------------------
28267cdae2 | wheals | 2013-12-27 12:35:14 -0500

Display minimum delay in a weapon's description.
It could be easily calculated, and it was usually considered extremely
important while only being mentioned in passing in the manual. Thus, all
three important delays are visible now: mindelay, current delay (by
swinging your weapon), and base delay. Like other things on the screen,
it's a base property of the weapon, so there is no reason not to show
it.

The screen had to be condensed a little to fit in 80 chars, but even the
dark maul made it.

--------------------------------------------------------------------------------
a75cc6c941 | wheals | 2013-12-27 11:47:54 -0500

Make base attack delay be displayed as a decimal
Instead of a percentage. This goes with a change to the manual to make
mindelay and base delay more clear.

--------------------------------------------------------------------------------
0ad7a2c602 | Adam Borowski | 2013-12-27 05:51:37 +0100

Default language to the system locale [Windows].

--------------------------------------------------------------------------------
0b9f37a41b | Adam Borowski | 2013-12-27 05:51:37 +0100

Default language to the system locale [Unix].
This should increase the amount of players who actually get to see
translations by 2-3 orders of magnitude.  I did not do this initially
on purpose, not wanting to make push jarring work in progress.  The
progress of translating goes way, way slower than anticipated, though,
so enabling just descriptions is not that bad.

There are three platforms that need to be handled
* Unix (this commit)
* Windows
* webtiles

--------------------------------------------------------------------------------
65c7e164d1 | Adam Borowski | 2013-12-27 05:51:14 +0100

A manual update (wheals).

--------------------------------------------------------------------------------
1c137f9d11 | Pekka Lampila | 2013-12-27 05:46:21 +0200

Handle missing spell in ===hit_magic(_nomove)

--------------------------------------------------------------------------------
c1c92e6949 | Brendan Hickey | 2013-12-26 19:25:26 -0800

Potion of Restore Abilities cures Draining
Apart from killing stuff, there's no way to get rid of Draining.
This is at odds with other status effects in the game (which isn't
necessarily a bad thing).

This also gives an additional use to restab, apart from "aw drat,
an orange crystal statue."

--------------------------------------------------------------------------------
eaf92df6b4 | Brendan Hickey | 2013-12-26 19:22:09 -0800

Change Potion of Poison Quotations

--------------------------------------------------------------------------------
621f0af5b8 | Adam Borowski | 2013-12-27 03:44:30 +0100

Make expiration messages work.

--------------------------------------------------------------------------------
b977035ac9 | Adam Borowski | 2013-12-27 03:41:28 +0100

Take away xmas.
This reverts commit b0c9531a8997436f0bddfa218105d2e67c16f2ce.
This reverts commit 054e7ae2f5fb42c12dc169898259e58f2dc5a77b, reversing
changes made to 1ddc8957bd848179aac795187f07496f02932644.

--------------------------------------------------------------------------------
fef21cf895 | Raphael Langella | 2013-12-26 23:32:52 +0100

Tide pushes player if their flight (or form) is expiring.
Another insta-drown safety.

--------------------------------------------------------------------------------
f99021430d | Raphael Langella | 2013-12-26 23:03:03 +0100

Don't trample player with expiring flight over deep water.

--------------------------------------------------------------------------------
27775bd9ed | Chris Oelmueller | 2013-12-26 11:18:28 -0500

Fix a few more oversights of snake genus rename in 0.14-a0-1201-gd0ec0a5
Sorry again ._.

--------------------------------------------------------------------------------
c5fb880d16 | Adam Borowski | 2013-12-26 10:55:29 +0100

A trove entry.

--------------------------------------------------------------------------------
b1df9b4468 | Adam Borowski | 2013-12-26 10:55:29 +0100

Make the floor in trove entries blue again.

--------------------------------------------------------------------------------
86e56c2464 | Adam Borowski | 2013-12-26 10:55:29 +0100

A bunch of D+Depths vaults by kennysheep.
Putting them into a separate file, because of complex randomization and
substitution that's common to all vaults here.

--------------------------------------------------------------------------------
224314a15c | Adam Borowski | 2013-12-26 10:55:28 +0100

Revert "Disable an assert."
The chance to trigger the deleted-level-on-exiting-a-Zig bug was quite small,
thus I believe all affected games should have moved on already.

This reverts commit 7d816dcee34cf224c9f77a0d99a75f1ef375b05a.

--------------------------------------------------------------------------------
d7f04c92c0 | Samuel Bronson | 2013-12-26 00:28:05 -0500

hiscores: Read killer_flags back in

--------------------------------------------------------------------------------
d423c14479 | Steve Melenchuk | 2013-12-25 22:08:54 -0700

A small vault batch.
A floating vault for Depths use (though it's generic enough that it
could probably appear elsewhere), two Vaults:$ quadrants, a minor
panlord vault and a matching Pan entry.

This is what happens when patterns appropriate for vaults pop into my
head...

--------------------------------------------------------------------------------
acc6684cbc | Steve Melenchuk | 2013-12-25 18:13:40 -0700

Vaults fresh from nicolae's vault mines (#7844).
There are a couple of tweaks and omissions as usual.

--------------------------------------------------------------------------------
802ce16c39 | Steve Melenchuk | 2013-12-25 18:13:39 -0700

Place minivaults properly in Pan.
Probably broken by db379c4 and unnoticed up until now.

--------------------------------------------------------------------------------
108ffb468b | Samuel Bronson | 2013-12-25 19:10:27 -0500

hiscores: log whether killer is a unique

--------------------------------------------------------------------------------
a19d258bbb | Raphael Langella | 2013-12-25 23:22:47 +0100

Remove redundant code.

--------------------------------------------------------------------------------
6d37494af9 | Adam Borowski | 2013-12-25 17:28:32 +0100

Silence a non-debug warning.

--------------------------------------------------------------------------------
4825f5ac64 | Adam Borowski | 2013-12-25 14:39:41 +0100

Don't spawn multiple stairs in oldest sprints.

--------------------------------------------------------------------------------
d3bfd29099 | Adam Borowski | 2013-12-25 14:34:15 +0100

Drop some redundant lowercasing.

--------------------------------------------------------------------------------
fbadf600c5 | Adam Borowski | 2013-12-25 14:25:27 +0100

Fix two off-by-one errors.
A value of 256 can't be marshalled as an ubyte.

--------------------------------------------------------------------------------
b0c9531a89 | Adam Borowski | 2013-12-25 14:19:03 +0100

Fix arenasprint wrt Sigmund's xmas rename.
When reverting: let's spell him with a first cap letter, like everywhere
else.

--------------------------------------------------------------------------------
be292b081e | Samuel Bronson | 2013-12-25 03:02:24 -0500

Don't leave player empty-handed on unexpected wield failure
i.e. un-IDed vamp, holy as undead ...

--------------------------------------------------------------------------------
054e7ae2f5 | Adam Borowski | 2013-12-25 00:21:20 +0100

Merge branch 'xmas'
Happy Dies Natalis Solis Invicti, everyone!

--------------------------------------------------------------------------------
b8d3063bab | Adam Borowski | 2013-12-24 15:10:19 +0100

Speech for Satan Claus.
Obviously, not that inspired...

--------------------------------------------------------------------------------
43962d4a5b | Adam Borowski | 2013-12-24 15:09:02 +0100

A childishly drawn Sa{nta,tan} Claus tile.

--------------------------------------------------------------------------------
f44da2a82c | Adam Borowski | 2013-12-24 14:44:53 +0100

Fugly tiles for reindeers of both nose colours.

--------------------------------------------------------------------------------
ce5f64336d | Adam Borowski | 2013-12-24 14:37:08 +0100

Sigmund -> Satan Claus.
Wields a hooked quarterstaff, throws snowballs.

--------------------------------------------------------------------------------
bb5b5a9db2 | Adam Borowski | 2013-12-24 14:04:40 +0100

Yak -> reindeer, death yak -> red-nosed reindeer.

--------------------------------------------------------------------------------
1ddc8957bd | Adam Borowski | 2013-12-24 11:53:15 +0100

A lot of typos in the documentation.

--------------------------------------------------------------------------------
6d2885397e | Adam Borowski | 2013-12-24 07:16:49 +0100

Another batch of typos.

--------------------------------------------------------------------------------
68ef7df5f2 | Adam Borowski | 2013-12-24 06:50:11 +0100

A typo. (wheals)

--------------------------------------------------------------------------------
ae0b70f8ce | Adam Borowski | 2013-12-24 06:38:30 +0100

Deindent.

--------------------------------------------------------------------------------
60cab3d173 | Adam Borowski | 2013-12-24 06:36:45 +0100

Avoid a searing ray crash on broken saves.

--------------------------------------------------------------------------------
9fb95cf908 | Adam Borowski | 2013-12-24 06:31:08 +0100

Rename the directory as well.
Committing this separately to help "blame" track the old files.

--------------------------------------------------------------------------------
fb5ed3c6cd | Adam Borowski | 2013-12-24 06:26:12 +0100

Rename D:1 "entry" vaults to "arrival".
Everywhere else, the word "entry" is the vault outside a branch, "arrival"
being on inside.

--------------------------------------------------------------------------------
d720e3ed6b | Adam Borowski | 2013-12-24 06:04:36 +0100

An entry vault, by Lightli.

--------------------------------------------------------------------------------
0c55485745 | Adam Borowski | 2013-12-24 05:28:58 +0100

Get rid of death dwarves.

--------------------------------------------------------------------------------
861dd2b040 | Brendan Hickey | 2013-12-23 17:31:53 -0800

Default 'note_chat_messages' to false.
I believe that most players actually want this option disabled by default.
With it on, chat messages get written out into morgues. This leads to a lot
of banal chatter getting dumped. The last time I killed this feature off it
was because at least one person was being creepy with the chat logs. While
players can log whatever shows up if they so desire, I think there's a
significant difference between this behavior and the server logs attesting
to the authenticity of a message by writing it into the morgue.

--------------------------------------------------------------------------------
23c85f4a56 | Adam Borowski | 2013-12-24 02:18:48 +0100

Stop db_lint screaming about screaming and sulking swords.

--------------------------------------------------------------------------------
f3a2bd25f4 | Adam Borowski | 2013-12-24 02:06:00 +0100

Remove support for "highlevel author".
After purging of pan lords, all that was left was Conj, and authors of
regular Conj are Lehudib, Iskenderun and w:2 Lee, the first two being for
sure valid for high-level as well, while there's no data that would preclude
Lee from not being a newbie, too.

--------------------------------------------------------------------------------
aec5c4ad5f | Adam Borowski | 2013-12-24 02:00:23 +0100

Reduce the chance for Lee being chosen as a Conj author.
His only spell in the game is pure Earth with no Conj...

--------------------------------------------------------------------------------
8f19928e55 | Adam Borowski | 2013-12-24 01:54:25 +0100

Remove pan lords from randbook author names.
They don't strike me as individuals who would devote any significant effort
towards teaching mortals.  In fact, the only who does, Lom Lobon, is
specifically described to charge your soul for any information.

"Knowledge is power, hide it well."

--------------------------------------------------------------------------------
654a7c02b7 | Adam Borowski | 2013-12-24 01:43:32 +0100

Rename a vestige of "transmigrations".

--------------------------------------------------------------------------------
05a8efd7b9 | Adam Borowski | 2013-12-24 01:40:09 +0100

Rename abl-show.{cc,h} to ability.{cc,h}
The old name was quite puzzling...

--------------------------------------------------------------------------------
40af2d839e | Adam Borowski | 2013-12-24 01:30:17 +0100

Repair saves broken by 0.14-a0-1589-g48c4fed.
This commit handles the following:
* saves started on version >= 0.14-a0-1589-g48c4fed
* saves from earlier versions that haven't been transferred yet
but doesn't fix those which have been transferred to such a version.
Recovering them is quite hard as we don't know which attributes have
been written before the transfer, and which after.

--------------------------------------------------------------------------------
fc4e5a6968 | Adam Borowski | 2013-12-24 01:20:50 +0100

Axe one more out-of-ossuary mechanical trap.
It was hidden behind a conditional.

--------------------------------------------------------------------------------
b22a2b4d76 | Samuel Bronson | 2013-12-23 19:15:01 -0500

chaos: Check target visibility *before* zapping (#7898)
(This is presumably why chaos brand was not automatically IDed on
turning something invisible.)

--------------------------------------------------------------------------------
1b957a7bb9 | Adam Borowski | 2013-12-23 16:55:15 +0100

Don't try to place shafts in a Zot entry vault.

--------------------------------------------------------------------------------
615f4830b9 | Adam Borowski | 2013-12-23 16:54:43 +0100

Drop mechanical traps from an ossuary.

--------------------------------------------------------------------------------
a6a76bdb4e | Adam Borowski | 2013-12-23 16:17:07 +0100

Purge mechanical traps (not done yet: ossuary, sprint, zotdef).

--------------------------------------------------------------------------------
60b2bc85ee | Adam Borowski | 2013-12-23 16:17:07 +0100

Get rid of a redundant list of altars.

--------------------------------------------------------------------------------
bf2d2b7726 | Adam Borowski | 2013-12-23 16:17:07 +0100

Drop some rock worm support code.

--------------------------------------------------------------------------------
8e97f25156 | Adam Borowski | 2013-12-23 16:10:30 +0100

Don't claim that weapons of speed are twice as fast.
Delays are rounded up, which has a significant effect anywhere near
mindelay.  Ranged weapons try to have 2/3 delay instead of half, and
likewise, they fail.

--------------------------------------------------------------------------------
338667c39e | Adam Borowski | 2013-12-23 16:10:30 +0100

Slightly sanitize.

--------------------------------------------------------------------------------
979e23a1b8 | Chris Campbell | 2013-12-23 15:02:34 +0000

Adjust message when Airstrike deals increased damage to flying monsters

--------------------------------------------------------------------------------
e7f63ed406 | Chris Campbell | 2013-12-23 14:20:59 +0000

Fix snake zombies walking instead of slithering (#7907)

--------------------------------------------------------------------------------
6f23155c6c | Sage | 2013-12-23 10:25:57 +0000

Prompt to continue wearing/unwearing armour when a monster comes into view.
Without this, you can easily die if a hydra or other nasty thing comes
into view after you start equipping or removing heavy body armour.
Regardless of whether this is an rcfile option, it is apparently
not very well-known, and it is a better default than the one in place.
I tried to fix memorization and multidrop in a similar fashion, but
adding monster to the relevant places prevented you from attempting
either action, even if a only a goblin came into view.

--------------------------------------------------------------------------------
1b91c23480 | Chris Campbell | 2013-12-23 09:20:37 +0000

Fix Singing Sword descriptions (#7903)

--------------------------------------------------------------------------------
25a9b7f745 | Chris Campbell | 2013-12-22 18:43:26 +0000

Make the Singing Sword's low tension speech cosmetic only (no noise)
Since otherwise it's easier and safer to just unwield while travelling
anyway. When monsters are around it is noisy as usual.

--------------------------------------------------------------------------------
48c4fedd08 | Chris Campbell | 2013-12-22 18:43:16 +0000

Make noisy randarts only make noise when hitting things
They now don't give messages or make noise at all when just travelling or
exploring, only when hitting things. Also reduce their noise level slightly.

--------------------------------------------------------------------------------
bfa08eb324 | Steve Melenchuk | 2013-12-22 09:47:44 -0700

Bring back "Blademaster" title specifically for elves.
You can now once again be a deep elf blademaster in addition to a deep
elf master archer (Short Blades 27 and Bows 27, respectively).

--------------------------------------------------------------------------------
abf99355d8 | Neil Moore | 2013-12-22 10:41:19 -0500

Make no-evokables message clearer.
If the player has an item that is only evokable when wielded (including
polearms), indicate that in the message.

--------------------------------------------------------------------------------
3e71587fce | Samuel Bronson | 2013-12-22 01:57:26 -0500

Clarify auto-ID of beam-based chaos effects in the code

--------------------------------------------------------------------------------
835621a3c6 | Samuel Bronson | 2013-12-21 23:15:34 -0500

Fix sensed monster descriptions for my antennae change ...
I made 0.12-a0-2982-g3b129d7 in ignorance of the fact that "xv" can
show the descriptions for sensed monsters, so I left them in somewhat
innacurate state.

Now that I know this fact, I have fixed them.

--------------------------------------------------------------------------------
437c10e4b4 | Samuel Bronson | 2013-12-21 23:08:37 -0500

Show correct descriptions for sensed monsters (#7896)
Thansk to Cedor, Basil and |amethyst for their help in deciphering how
monster_info for detected monsters is supposed to work.

--------------------------------------------------------------------------------
c53f02819c | Adam Borowski | 2013-12-21 14:44:33 +0100

Optimize.
This gets rid of 0.55% of qw CPU time.

The ugly list here could be avoided by sorting feature enums, something
that's very tempting with branch entrances/exits in mind.

--------------------------------------------------------------------------------
b7524afb08 | Adam Borowski | 2013-12-21 14:08:12 +0100

Forbid recolouring a bunch of features, optimize.
Recolouring includes COLOUR: in vaults, blood, mold, slime.

This commit affects:
* active fountains
* shops, abandoned or not
* teleporters
* sealed doors

Removing this call to is_critical_feature() also gets rid of 0.25% of CPU
use in qw profile, as 15M out of 50M calls come from here, in a tight loop.
is_critical_feature() is surprisingly slow, due to hundreds of pointless
ifs, especially inside feat_stair_direction().

--------------------------------------------------------------------------------
6430f033a2 | Adam Borowski | 2013-12-21 14:03:27 +0100

Fix a broken fountain rename.
Also, ensure this won't happen again -- removed features must have their
names changed so we can be certain they're indeed gone.

--------------------------------------------------------------------------------
b00b0443af | Adam Borowski | 2013-12-21 13:16:02 +0100

Remove a redundant check.

--------------------------------------------------------------------------------
a7b66b498e | Adam Borowski | 2013-12-21 10:22:15 +0100

Drop pointless empty lines after or before a brace.
I left them only where the contents is not indented, like in a namespace
or a template.

--------------------------------------------------------------------------------
f62db547df | Neil Moore | 2013-12-21 04:13:08 -0500

Don't recolour altars or wet fountains in column_ruins.

--------------------------------------------------------------------------------
47ac133537 | Pekka Lampila | 2013-12-21 10:52:52 +0200

Make "Stay logged in" a label for the checkbox

--------------------------------------------------------------------------------
f4c5cb98bb | Adam Borowski | 2013-12-21 00:28:13 +0100

Ignore brentry when returning from a ziggurat.
The code checked this before the level stack, thus if you returned from Pan,
a trovel or (in transferred saves) D, you got placed in Depths instead.
For extra fun, try this in a pre-Depths save! :þ

We could just check the stack first, but the current code allows for a
regular subbranch of the Abyss, etc.

--------------------------------------------------------------------------------
d5abc4ae04 | Adam Borowski | 2013-12-21 00:28:00 +0100

Unify an if.

--------------------------------------------------------------------------------
cab063e5e3 | Adam Borowski | 2013-12-21 00:12:45 +0100

Drop double newlines where they seem to serve no purpose.
Sometimes, they're there to emphasize a break between two sections of code,
which is good.  In a majority of cases, though, they're just inconsistent.

--------------------------------------------------------------------------------
d2bcb779dd | Adam Borowski | 2013-12-20 23:45:08 +0100

Use feat enum instead of string search for portal hints.
Also, drop the message for Ziggurats (can't see them in hints mode anymore).

--------------------------------------------------------------------------------
1336e60c4a | Adam Borowski | 2013-12-20 23:45:08 +0100

Drop unused weights.

--------------------------------------------------------------------------------
2faee9f8e6 | Keanan Smith | 2013-12-20 22:36:22 +0100

Resist messages based off chance of resisting rather than roll
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

I fixed whitespaces and formatting and did some minor simplifications.

--------------------------------------------------------------------------------
671a4b6362 | Adam Borowski | 2013-12-20 02:31:06 +0100

Don't use darkgrey for Tar entrance and Sewer exit.

--------------------------------------------------------------------------------
f2df6096df | Adam Borowski | 2013-12-20 02:10:19 +0100

Don't turn invalid in-branch stairs into mimics.
They'd get removed a bit later, and they trigger an assert.

--------------------------------------------------------------------------------
7d816dcee3 | Adam Borowski | 2013-12-20 01:36:03 +0100

Disable an assert.
It's not a proper fix, but it at leasts allows affected games to continue.

--------------------------------------------------------------------------------
94360e1738 | Adam Borowski | 2013-12-19 06:23:22 +0100

Drop a hard-coded number and a bizarre comment.

--------------------------------------------------------------------------------
2ba124db8f | Adam Borowski | 2013-12-19 04:35:42 +0100

Axe two triple sword sightings.

--------------------------------------------------------------------------------
54b22325d5 | Adam Borowski | 2013-12-19 04:35:36 +0100

Axe a Pan sighting (tenofswords).

--------------------------------------------------------------------------------
9ca105e1e2 | Adam Borowski | 2013-12-19 04:28:48 +0100

Generate exactly 0 zig portals in D, and 1 in Depths.

--------------------------------------------------------------------------------
07949ec7b9 | Adam Borowski | 2013-12-19 04:28:48 +0100

Replace Ziggurat fees with a 3-rune lock.
This way you need a good deal less scumming if you want to try multiple
Ziggurats -- completely or not.  The number of runes required comes from
historic data of people who left Ziggurats at particular urune count:
 0:   7
 1:   7
 2:  19
 3: 117 (earliest completion)
 4: 175
 5: 224
 6: 164
 7: 134
 8: 112
 9: 162
10: 177
11: 164
12: 106
13:  56
14: 100
15: 329

--------------------------------------------------------------------------------
aa5c47c9a8 | ontoclasm | 2013-12-18 20:58:06 -0600

Octopode statue tile (Bloax)

--------------------------------------------------------------------------------
6b568a2ccf | ontoclasm | 2013-12-18 20:58:06 -0600

Fix centaur rims

--------------------------------------------------------------------------------
17875e8c74 | Adam Borowski | 2013-12-19 02:22:10 +0100

Fix odditiies with statue/lich form for merfolk and octopodes.
Changes in this commit:
* lich Mf/Op retain full swimming
* lich GreyDr, statue Mf/Op/GreyDr can walk through water GreyDr-style

--------------------------------------------------------------------------------
6372d9d7df | Adam Borowski | 2013-12-19 01:24:00 +0100

Paper over a Ziggurat shopping list regression.
This just hard-codes the toll portal code to Ziggurats only; the idea that
a portal vault requires gold to enter doesn't appear good enough to reuse
elsewhere, and I personally think even Ziggurats should drop the fee: all
it causes is forcing people to scum Pan for gold if they want to do another
Zig: even with all skills at 27 and great gear, a mummy/holy/pan lord Zig:27
is a tough challenge, while it's implausible such a person could die in
regular Pan due to anything other than scum-caused boredom.

This code could use great simplification, I'm not doing this right now
because it's unclear whether it would be possible to remove it outright
(per the above reasoning).

--------------------------------------------------------------------------------
5e08181a80 | Adam Borowski | 2013-12-19 00:46:56 +0100

Fix three tag>34 issues.

--------------------------------------------------------------------------------
f933c8c3d6 | Adam Borowski | 2013-12-19 00:19:24 +0100

Schedule DNGN_ENTER_PORTAL_VAULT for removal; other related fixes.

--------------------------------------------------------------------------------
56402a2701 | Adam Borowski | 2013-12-18 22:07:52 +0100

Drop "&p".
Redundant with &G for most uses, and &( if you want the feature.

--------------------------------------------------------------------------------
5a5905d6aa | Adam Borowski | 2013-12-18 22:04:09 +0100

Drop a doubly untrue comment and a check.

--------------------------------------------------------------------------------
b143e4d7bb | Adam Borowski | 2013-12-18 21:02:54 +0100

A formatting fix.

--------------------------------------------------------------------------------
d6e6ad463a | Neil Moore | 2013-12-18 10:57:53 -0500

Sync manual from wiki.
Includes wheals' updates to the list of status lights, as well as
several other updates and fixes.

--------------------------------------------------------------------------------
b639169e29 | Pekka Lampila | 2013-12-18 15:32:07 +0200

Retry sending to WebTiles socket on EINTR

--------------------------------------------------------------------------------
e850d6cf28 | Pekka Lampila | 2013-12-18 15:09:29 +0200

Avoid a long message loop with curse card and holy brand weapons

--------------------------------------------------------------------------------
f2134fc0af | Neil Moore | 2013-12-18 01:16:40 -0500

Improve Corpse Rot messaging.
It previously gave the "you smell decay" line if you could smell, and
could see the caster.  That means that if you were invisible and cast
the spell, there would be no message.

Now give the message whenever you are the caster, can see the caster, or
can see a resulting miasma cloud.  If you can't smell, give a message
that doesn't involve smell.

--------------------------------------------------------------------------------
59b21feb4a | Neil Moore | 2013-12-18 01:06:10 -0500

Don't credit the player for Kiku wrath corpse rot (#7878)

--------------------------------------------------------------------------------
09a3b55cb8 | BlackSheep | 2013-12-18 01:00:14 -0500

Allow retreating allies to go hostile when attacked

--------------------------------------------------------------------------------
38b6ab9a54 | Steve Melenchuk | 2013-12-17 22:38:36 -0700

Display the Dj contam bar correctly in webtiles.
c56f784 didn't update the webtiles interface for this, so it's updated
now.

--------------------------------------------------------------------------------
4b4961f573 | Adam Borowski | 2013-12-18 05:01:29 +0100

Drop uniq_$BRANCH for all branch entry mimics.

--------------------------------------------------------------------------------
6839ac45f0 | Adam Borowski | 2013-12-18 04:52:54 +0100

Show new-style portals on ^O.

--------------------------------------------------------------------------------
cabeb528c4 | Adam Borowski | 2013-12-18 04:38:15 +0100

Refactor colouring of features.
This allows defining just the colour without having to repeat all other
properties.  Apply such colours to portal vault entrances and exits -- using
whatever the old code tried to get.  This commit merely restores that intent,
it would be nice to colour missing ones in a way that makes sense.

Only entrances and exits are deduplicated, it would be nice to apply this
to other features too.

--------------------------------------------------------------------------------
12ce0c095a | Adam Borowski | 2013-12-18 04:38:15 +0100

Make portal entrances and exits proper features on their own.
Overloading made it impossible to redefine them, assign colours, made it
hard to do stuff on C++ side, and stank of elderberries.

--------------------------------------------------------------------------------
ef46e71c1a | Adam Borowski | 2013-12-18 02:19:58 +0100

Correct a comment.

--------------------------------------------------------------------------------
760fa4c071 | Adam Borowski | 2013-12-18 02:15:23 +0100

Bastardize double swords.
Bad Star Wars are bad. mm'kay?

These multiple swords were an insult to anyone with the slightest clue about
how RL weapons work.  When it comes to swords, it's all about length-vs-weight.
Having two blades attached to a single hilt doubles the weight, makes handling
clumsy (as the orientation suddenly matters), increasing air resistance, and
all that to... _reduce_ damage -- as two shallow cuts are less deadly than one
deep one, especially if any armour is involved.  Against armour, glancing hits
don't really matter, and a double sword can only do those.

Such arguments about realism might seem like busy work to people brought up
on MMORPGs, but some of us do care.

--------------------------------------------------------------------------------
41e8ddd14f | Adam Borowski | 2013-12-18 02:15:23 +0100

Greatly reduce the availability of great maces.
Although that's less important now that they have been ruined.

--------------------------------------------------------------------------------
de8427a2e3 | Adam Borowski | 2013-12-18 02:15:23 +0100

Bring back the old plutonium sword tile, edit description.
'cuz it's triple no more.

This reverts parts of commit 8a57380eb4a6e4193305cb532f87566e06533ac4.

--------------------------------------------------------------------------------
27d34cdd6c | Adam Borowski | 2013-12-18 02:15:23 +0100

Drop seventuple swords.
Oy vey...

--------------------------------------------------------------------------------
2e6abea28a | Adam Borowski | 2013-12-18 02:15:23 +0100

Drop a couple of unused monster descriptions.

--------------------------------------------------------------------------------
9b230b7206 | Adam Borowski | 2013-12-18 02:15:23 +0100

Triple swords are dead, long live claymores!
20 dam, -4 acc, 20 delay.

--------------------------------------------------------------------------------
314083463b | Adam Borowski | 2013-12-18 02:15:23 +0100

Dewing dehorn deplume helmets.
Note: currently, worn and in-inv tiles are out of sync.

--------------------------------------------------------------------------------
e821d4b61d | Adam Borowski | 2013-12-18 02:15:22 +0100

Djinn: berserkitis does nothing, so don't give it.

--------------------------------------------------------------------------------
809e20ce69 | Adam Borowski | 2013-12-18 02:15:22 +0100

Drop 'l' monsters from Snake again.
It appears that they're merely an annoyance, while not bringing anything
new.  Neither komodo dragons, lindwurms nor basilisks are snakes of any
kind, so they don't fit in theme-wise as well.

During the discussion on ##crawl, the reason they were added was quoted
as "because one vault has lindwurms", to which people responded that the
vault in question (snake_pit_salamanders_mu) feels problematic by itself.

--------------------------------------------------------------------------------
e2886f9082 | Chris Campbell | 2013-12-18 00:16:44 +0000

Don't let monster Octopodes spawn with demon tridents

--------------------------------------------------------------------------------
06eea80e5d | Chris Campbell | 2013-12-18 00:15:55 +0000

Display : instead of + for bookshops on the overview screen
: is the default symbol for books in most character sets.

--------------------------------------------------------------------------------
37d21f2005 | Chris Campbell | 2013-12-17 23:52:28 +0000

Reword Tarantella description
If its attack is "venom" then poison immunity should prevent it even if
resistance doesn't, but it's intended to just not interact with rPois at
all. Presumably it's just magical confusion of some description.

--------------------------------------------------------------------------------
84beffa3c7 | Raphael Langella | 2013-12-17 23:39:10 +0100

Revert "Buff great maces to 18 damage."
They were buffed to differentiate them from battleaxes which have been given
cleaving and nerfed damage since. Now, they are common and strong making
M&F the dominating weapon class. Probably other tweaks are needed to better
balance the different weapon classes, this is just the most obvious one.

I think we should try to differentiate M&F and Long Blades by having the
former one more common and the latter stronger.

This reverts commit 2c5bfce81f50a006422a0d0f95f5fc060debbfd8.

Conflicts:
	crawl-ref/source/itemprop.cc

--------------------------------------------------------------------------------
95ec8bcdb9 | Pekka Lampila | 2013-12-17 21:00:33 +0200

Reference mcache entries used by WebTiles
This should fix #6644 which was caused by mcache entry being destroyed
and a new one made with the same number between updates.

--------------------------------------------------------------------------------
89529d69ea | Neil Moore | 2013-12-17 11:10:24 -0500

Unseal stairs too when warden seal expires (#7874, #7875)
Games saved with a perma-seal should fix themselves on player's next
turn when run_environment_effects is called.

--------------------------------------------------------------------------------
e61f08ba6e | Raphael Langella | 2013-12-17 16:22:51 +0100

Add missing whitespace before punctuation in french tranlation.

--------------------------------------------------------------------------------
7975071461 | Translators | 2013-12-17 16:17:26 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
82e69f0441 | Raphael Langella | 2013-12-17 16:05:10 +0100

Remove mislead description.

--------------------------------------------------------------------------------
63914cfeb6 | Raphael Langella | 2013-12-17 11:54:38 +0100

[txc] auto_fix adds missing space before french punctuation.

--------------------------------------------------------------------------------
6c286a4f22 | Adam Borowski | 2013-12-17 03:35:55 +0100

Don't unseal destroyed doors.
This caused crashes, and was weird: a closed door would appear out of
nowhere.

--------------------------------------------------------------------------------
2fc5fa92fe | Adam Borowski | 2013-12-17 02:24:09 +0100

Simplify starting stat assignments.

--------------------------------------------------------------------------------
0169b8535b | Raphael Langella | 2013-12-16 17:23:54 +0100

Fix a broken lua string in german translation.

--------------------------------------------------------------------------------
c5e2f7f032 | Neil Moore | 2013-12-15 23:50:50 -0500

Fix a few walking messages.
For the purposes of check_move, nagas are now considered to "slither"
even in lich and statue form (previously it was only blade and appendage
form).

Also, use the same verb for the Fedhas "carefully through the plants"
message, and constify a variable.

--------------------------------------------------------------------------------
960936a8db | ontoclasm | 2013-12-15 20:02:22 -0600

Lemure tile (Bloax)

--------------------------------------------------------------------------------
9477f2fa41 | ontoclasm | 2013-12-15 20:02:21 -0600

Komodo dragon tile (Bloax)

--------------------------------------------------------------------------------
294bb3280f | Adam Borowski | 2013-12-16 02:28:19 +0100

Axe drones from a couple vaults.
One needs to delete the cache to spot issues like this.

--------------------------------------------------------------------------------
ba48e700c2 | Adam Borowski | 2013-12-16 02:11:25 +0100

Apply some formicide to drones, buff vanillas.

--------------------------------------------------------------------------------
78389bb46f | Adam Borowski | 2013-12-16 02:01:07 +0100

A bunch of vaults by kennysheep.
I dropped ORIENT: and/or added "extra" in a few places.

--------------------------------------------------------------------------------
cb37d2e5e1 | Adam Borowski | 2013-12-16 01:41:00 +0100

An overflow Kikubaaqudgha altar by kennysheep.

--------------------------------------------------------------------------------
afc6cdbb13 | Adam Borowski | 2013-12-16 01:33:28 +0100

Don't let fake raksasas/Maras show as "summoned".
Also, don't mark illusory rakshasas as mindless.

--------------------------------------------------------------------------------
aa44ba7726 | Kurper | 2013-12-16 00:33:33 +0100

Made fake rakshasas more similar to real rakshasas - both now can see invisible.
[I switched both roaring to neither roaring -- 1KB]

--------------------------------------------------------------------------------
4fabb49d17 | Adam Borowski | 2013-12-15 23:58:56 +0100

Change Mara's description.
While the mention of mislead could be left as mere fluff, it was misleading
to describe Mara's power as illusions when they can cast and fight.

--------------------------------------------------------------------------------
0a4ce06284 | Adam Borowski | 2013-12-15 23:34:45 +0100

Further simplify Mislead/Mara/Rakshasa code.

--------------------------------------------------------------------------------
8ebc43ee98 | Adam Borowski | 2013-12-15 23:16:51 +0100

Limit cloud spells to caster's LOS.

--------------------------------------------------------------------------------
3381686bf6 | Adam Borowski | 2013-12-15 23:16:51 +0100

Fix Mara link going out of sync if you save+reload.
As a side effect, setting fake->summoner allows the clones to poof when you
kill the original.

--------------------------------------------------------------------------------
f81fc34f7f | Adam Borowski | 2013-12-15 23:16:43 +0100

Remove Mislead.
It was a pure interface screw, and even worse, required a large amount of
support code that's a maintenance burden, causing crashes we need to fix
from time to time.

--------------------------------------------------------------------------------
02256d318a | Pekka Lampila | 2013-12-15 23:18:59 +0200

Support <w> and <h> formatted string tags in WebTiles
Also disable logging of unknown tags.

--------------------------------------------------------------------------------
3f0416d3c3 | Adam Borowski | 2013-12-15 21:53:37 +0100

Explicitely list branches in lemuel_statue_altar.
Using unqualified depth without a negation is a no-no.

--------------------------------------------------------------------------------
fcfcbb18f5 | Adam Borowski | 2013-12-15 21:53:37 +0100

Make a few symbols static.

--------------------------------------------------------------------------------
c042693918 | Neil Moore | 2013-12-15 13:50:44 -0500

Prioritize unidentified message colour over uncursed.
This also lets us eliminate the "tried on uncursed" override, since
a scroll with that inscription is not identified yet.

--------------------------------------------------------------------------------
5834675f02 | Samuel Bronson | 2013-12-15 00:59:40 -0500

Comment out the decks bit since it's wonky (simmarine)

--------------------------------------------------------------------------------
6a017cbd81 | Samuel Bronson | 2013-12-15 00:54:58 -0500

Switch to lightblue, also do jewels (&decks w/Neme) (1KB, simmarine)

--------------------------------------------------------------------------------
388a1026f4 | Samuel Bronson | 2013-12-14 23:49:41 -0500

Color un-IDed potions/scrolls/wands brown. Thanks wheels & crate!
(Also MarvinPA, I hear.)

--------------------------------------------------------------------------------
abb0503b62 | Steve Melenchuk | 2013-12-14 20:55:40 -0700

Consider potions of beneficial mutation to be "good items".
Just like the potions of gain foo they replaced.

This is mainly so that (by default) they show up as cyan.

--------------------------------------------------------------------------------
d0d9e2db77 | gammafunk | 2013-12-14 19:49:27 -0500

Remove an extra newline in death descriptions under certain conditions.

--------------------------------------------------------------------------------
7c3aa6d537 | Pekka Lampila | 2013-12-14 18:54:52 -0500

Fix a client-side webtiles error.

--------------------------------------------------------------------------------
033cea43e6 | Chris Oelmueller | 2013-12-14 18:15:27 -0500

Whitespace (cherry picked from commit 90afa1c4158637a5295dd5acd33c680158db0885)

--------------------------------------------------------------------------------
f2f48c5839 | Neil Moore | 2013-12-14 18:15:26 -0500

Comment an unintuitive backslash.

--------------------------------------------------------------------------------
27cf72f2ae | Chris Oelmueller | 2013-12-14 18:04:05 -0500

Shorten a colour tag in hints mode formatted string

--------------------------------------------------------------------------------
5cab4caea2 | Chris Oelmueller | 2013-12-14 17:58:41 -0500

Remove message that was special-cased for little gain
The remaining one is sufficiently generic to warrant string extraction
for translation purposes.

--------------------------------------------------------------------------------
d685df5192 | Chris Oelmueller | 2013-12-14 17:58:02 -0500

Simplify

--------------------------------------------------------------------------------
557b64fc5d | Neil Moore | 2013-12-14 17:45:11 -0500

Fix compilation (oops)

--------------------------------------------------------------------------------
45d68bea24 | Chris Oelmueller | 2013-12-14 17:42:37 -0500

Remove another vestige of racial ammunition.

--------------------------------------------------------------------------------
669c75b863 | Raphael Langella | 2013-12-14 22:37:04 +0100

A french quote for simulacrum.
I tried to find the original version of the one translated in english, but I
keep finding this one instead. It seems to be more known and is appropriate.

--------------------------------------------------------------------------------
d1286f78e3 | Pekka Lampila | 2013-12-14 22:19:39 +0200

Run game_data JavaScript in strict mode
Also fixed a few issues uncovered by using it.

--------------------------------------------------------------------------------
37fbb75470 | Pekka Lampila | 2013-12-14 20:53:51 +0200

Remove remaining traces of tile_force_regenerate_levels

--------------------------------------------------------------------------------
4fae1cc02d | Pekka Lampila | 2013-12-14 20:53:51 +0200

Fix HP/MP being displayed as increase on join

--------------------------------------------------------------------------------
31eb1322e6 | Pekka Lampila | 2013-12-14 20:53:51 +0200

Support show_game_turns in WebTiles

--------------------------------------------------------------------------------
89593df699 | Adam Borowski | 2013-12-14 18:11:45 +0100

Move sources for floor sigils to UNUSED/
Preferably, we'd build them instead of using pre-combined ones (it's red
pebble + these sigils), but that would require some work.

--------------------------------------------------------------------------------
812152b0f2 | Adam Borowski | 2013-12-14 17:56:53 +0100

Enable two apparently forgotten pan lord variants.

--------------------------------------------------------------------------------
3a094f2335 | Adam Borowski | 2013-12-14 17:39:50 +0100

Deuglify and enable a tile variant.

--------------------------------------------------------------------------------
d6e826f6ea | Adam Borowski | 2013-12-14 17:37:16 +0100

Delete / move to UNUSED/ a bunch of tiles.

--------------------------------------------------------------------------------
479134f87f | Adam Borowski | 2013-12-14 12:56:59 +0100

Move the tavern tile to UNUSED/, drop spell school "tiles".
The latter were mere squares of a solid colour gradient, with an ugly dither.

--------------------------------------------------------------------------------
e60c47f81c | Adam Borowski | 2013-12-14 12:44:35 +0100

Rename the tile for dragon to fire_dragon.

--------------------------------------------------------------------------------
e16750637c | Adam Borowski | 2013-12-14 12:39:53 +0100

Link the tile for Trog's Hand.

--------------------------------------------------------------------------------
c0f1bd7098 | Adam Borowski | 2013-12-14 12:36:45 +0100

Delete the tile and def for Extension.

--------------------------------------------------------------------------------
695696114f | Adam Borowski | 2013-12-14 12:29:07 +0100

Teach tiledef_lint about TILEG_ defs.

--------------------------------------------------------------------------------
1105da3b3a | Adam Borowski | 2013-12-14 03:29:35 +0100

Make a wad vault fully autoexplorable.

--------------------------------------------------------------------------------
72a172d54a | Adam Borowski | 2013-12-14 02:08:31 +0100

Brace and doublespace removal.

--------------------------------------------------------------------------------
f145d66dd3 | gammafunk | 2013-12-13 19:12:41 -0500

Always identify an amulet of clarity when wearing it and resisting confuse.

--------------------------------------------------------------------------------
b0fca04b07 | Neil Moore | 2013-12-13 19:12:20 -0500

Improve a citation.

--------------------------------------------------------------------------------
f8a00315f9 | Raphael Langella | 2013-12-14 00:23:14 +0100

Restore glyph quotes which were lost in 45418d04c.

--------------------------------------------------------------------------------
db561475d5 | Pekka Lampila | 2013-12-13 23:16:22 +0200

Handle tile_show_demon_tier on client side in WebTiles

--------------------------------------------------------------------------------
123f7d42d5 | Pekka Lampila | 2013-12-13 22:58:44 +0200

Fix issues with minimap size changing in WebTiles

--------------------------------------------------------------------------------
e4c83c7043 | Pekka Lampila | 2013-12-13 21:54:35 +0200

Allow settings tile_map_pixels to 0
It was already the default value. Also document what that does.

--------------------------------------------------------------------------------
649c00982e | Pekka Lampila | 2013-12-13 21:54:35 +0200

Support tile_map_pixels in WebTiles

--------------------------------------------------------------------------------
43b2549c5f | Pekka Lampila | 2013-12-13 21:54:35 +0200

Fix detecting missing options in WebTiles

--------------------------------------------------------------------------------
6c2462a210 | Neil Moore | 2013-12-13 14:31:24 -0500

Unbreak games with serial_teleporters.

--------------------------------------------------------------------------------
2a9a87eb94 | Raphael Langella | 2013-12-13 19:39:43 +0100

And again more formatting and unicode fixes.
That's all for now.

--------------------------------------------------------------------------------
f28d413535 | Raphael Langella | 2013-12-13 17:57:56 +0100

More formatting fixes and unicode replacement in descriptions.

--------------------------------------------------------------------------------
89382b1695 | Raphael Langella | 2013-12-13 17:13:26 +0100

[txc] Several improvements to auto_fix and wrapping.

--------------------------------------------------------------------------------
2ea3763325 | Samuel Bronson | 2013-12-12 21:53:41 -0500

Start using -Wredundant-decls; fix all the instances I get
That is, unless you count the ones in ncurses' headers, which I can't
do anything except suppress.

--------------------------------------------------------------------------------
f72215e01c | Steve Melenchuk | 2013-12-12 19:48:28 -0700

Remove another badly designed teleporter vault.
I've never been very happy with this; I'm still not happy with the way
there'll still be some code for it left over just to guarantee that it
doesn't screw up level connectivity.

--------------------------------------------------------------------------------
79dd6a1b8e | Steve Melenchuk | 2013-12-12 19:35:42 -0700

Banish serial_teleporters.
As written, it's terribly gimmicky, very spoilery, and generally
considered annoying.

There are probably good uses for this concept (see e.g.
wizlab_golubria), but these aren't it; I'd probably welcome a better
set of vaults that make use of them properly.

--------------------------------------------------------------------------------
e3def9c808 | Raphael Langella | 2013-12-13 01:02:22 +0100

Replace ascii by localized unicode for dash and quotation marks.
Done all languages from ability to monsters and quotes in english.

--------------------------------------------------------------------------------
44b79fed5a | Raphael Langella | 2013-12-13 00:57:13 +0100

[txc] Don't break danish quotes when autofixing french ones.

--------------------------------------------------------------------------------
c22c6b513e | Adam Borowski | 2013-12-12 23:53:22 +0100

[txc] Polish quotation marks.
I guess »« shouldn't be used by default, they're very rare and used
practically only when nested inside „”.

If you want a good degree of completeness, there's:
https://en.wikipedia.org/wiki/International_variation_in_quotation_marks

--------------------------------------------------------------------------------
074feabf3f | Adam Borowski | 2013-12-12 23:44:35 +0100

Merge Lightli and Grunt's E3M8 maps.
I'd say Lightli's was a good deal better, but Grunt's doesn't have issues
with placement (not the vault's fault, it's because of Dis layout), has
non-decorative purposes, and is allowed to have loot.

It's disputable what "better" means, as we can't represent the walkway.

--------------------------------------------------------------------------------
d712b6388c | Translators | 2013-12-12 23:37:23 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
34c18d0b19 | Raphael Langella | 2013-12-12 23:37:23 +0100

[txc] Don't try to remove whitespaces around punctuation in ja and zh.
Probably I introduced some of them, but I'm afraid an automated fix might
do more harm than it fixes. The script shouldn't mess with whitespaces anymore.

--------------------------------------------------------------------------------
dea2a6613b | Raphael Langella | 2013-12-12 23:37:23 +0100

Rewrap descriptions.
And a couple of minor fixes.

--------------------------------------------------------------------------------
f44b2e128b | Raphael Langella | 2013-12-12 23:37:01 +0100

[txc] Allow breaking lines between 2 tags.
This helps readability quite a lot. Although it means that putting a whitespace
between 2 tags should be avoided when possible, because it might be removed
on unwrap (both by txc and crawl), if the line break happens to be on this
specific whitespace. Quite unlikely, but if it does happen, it can be fixed by
using a non-breaking space (0xA0).

Note that it works by inserting a line feed (\f) between tags which is later
removed. This makes lines containing consecutive tags to have a slightly
shorter maximal length.

--------------------------------------------------------------------------------
b10374be2a | Raphael Langella | 2013-12-12 22:31:26 +0100

[txc] autofix replaces ascii quotes by unicode.
Handle english, german and french. Other languages default to english quotes
but it's easy to fix.

It won't touch text containing any lua otherwise it messes the strings.
It could fix text outside lua, but it currently doesn't.

--------------------------------------------------------------------------------
3fc6985713 | Chris Oelmueller | 2013-12-12 15:50:02 -0500

Make warning in skill menu stand out more
When attempting to leave skill menu while not having any skill selected.

--------------------------------------------------------------------------------
b34792e09e | Chris Campbell | 2013-12-12 14:59:21 +0000

Remove some loot from a hell vault
Hell vaults other than the branch ends don't contain loot, currently.

--------------------------------------------------------------------------------
a7e5483f31 | Cedor | 2013-12-12 12:39:53 +0200

Clean up item eating code
Remove eat_item() from l_food.cc (code inserted in unique caller
food_eat()), and use it in food.cc in place of the 2 duplicated
functions eat_floor_item() and eat_inventory_item()

--------------------------------------------------------------------------------
6cbad44a34 | Pekka Lampila | 2013-12-12 11:39:11 +0200

Fix any status making HP/MP blue in WebTiles

--------------------------------------------------------------------------------
21dc12dab7 | Neil Moore | 2013-12-12 00:09:44 -0500

Don't get stuck in autoexplore (#7855)
If the player is standing on an autopickup item and greedy explore is
on, the following situation (where ? is unexplored) reliably causes
autopickup to report "Can't reach some places".

 ####
 ##.#
 #@#?
 .###

We decide in the pathfinding code that NE (being adjacent to an
unexplored square) is a reasonable exploration destination, so return
true from path_examine_point for that square.  This happens before we
explore back to our starting square, even though greedy_place is already
set to that location (by point_traverse_delay?!).  Since the greedy
square is closer, explore_target() and thus pathfind() returns that
square (the player's location).  But then _explore_find_target_square
rejects the square because it wasn't actually visited by pathfind and
thus appears to be unreachable.

Avoid this situation by special-casing the player's location in
_explore_find_target_square, so that it isn't considered unreachable.
That might not be the ultimately best approach, but it seems the safest
for now because it doesn't risk subtly breaking other uses of pathfind.

--------------------------------------------------------------------------------
f1aa33a675 | elliptic | 2013-12-11 23:20:53 -0500

Remove M_FLEES from crabs.
They had it for the same reason as dragons/drakes.

Now only bears and kraken have M_FLEES, and at least they both do something
special while fleeing.

--------------------------------------------------------------------------------
69b8f3601d | Adam Borowski | 2013-12-12 03:29:17 +0100

A Dis vault.  Darkli's fault!
The demonic crawler is rather underwhelming here...

Note that due to Dis' layout generators, primary vaults have only a miniscule
chance of being placed.

--------------------------------------------------------------------------------
363026179d | Adam Borowski | 2013-12-12 00:47:17 +0100

Re-rune a Lair end door.
It's unlikely to be an autoexplore trap, but that was never the purpose
here: spoiled players know there's a nasty monster behind this door, while
new ones will stroll there haplessly.  Thus, the door is a marker.

Dragons don't open doors, so there's no balance issue here, too.

--------------------------------------------------------------------------------
288d735ba5 | Adam Borowski | 2013-12-12 00:17:15 +0100

Correct the Vehumet message if there's but one final gift offered.
This is unlikely unless you convert to him late (probably for zigging).

--------------------------------------------------------------------------------
9e4add2f0c | Adam Borowski | 2013-12-12 00:17:15 +0100

Replace a magic number by #define.

--------------------------------------------------------------------------------
5ac4823ac2 | Adam Borowski | 2013-12-12 00:17:15 +0100

Simplify.

--------------------------------------------------------------------------------
188663e25c | Jason Van | 2013-12-11 17:37:06 -0500

Update special_room_morgue, special room depths/weights
The monsters in morgues weren't touched since the Crypt renewal,
zombies in hells are currently screwed up, and the special room
weights per depth weren't really changed in the dungeon split.
As such, morgues have monster re-weighting and re-shuffling
(including, as some will be happy to see, no guardian mummies
and nearly no plague shamblers, but also included buffed / new
undead), and some of the special rooms were adjusted for an earlier
Lair and Orc maximum depth as well as Depths.

--------------------------------------------------------------------------------
5307ca9eb9 | Neil Moore | 2013-12-11 17:37:06 -0500

Fully resolve random demons on the random monster list.
This was causing a crash when the player or a monster casts Shadow
Creatures on a pan lord Zig level.

--------------------------------------------------------------------------------
34c983c022 | Adam Borowski | 2013-12-11 22:25:36 +0100

Revert "Revert the removal of translations for "strange machine"."
There is some mess wrt them being feature vs monster descriptions, going
back to initial commit by due.  Also, the descriptions are slightly modified
in a recent change.  Thus, even if it puts a bit of extra burden on
translators, I guess they can handle having to translate three extra descs.
This way we can be more sure everything is ok.

This reverts commit 250cf21fd0d13af38329c5d6fdf7ee592de3c09f.

--------------------------------------------------------------------------------
5058716c22 | Pekka Lampila | 2013-12-11 21:30:27 +0200

Reverse no_json_options logic and rename
Now called send_json_options, defaulting to False at least for now.

--------------------------------------------------------------------------------
ef88b8e100 | Pekka Lampila | 2013-12-11 21:30:27 +0200

Add support for a few config variables in WebTiles
hp/mp/stat_colour and tile_show_mini(health/magic)bar

--------------------------------------------------------------------------------
1efe4d44ae | Pekka Lampila | 2013-12-11 21:30:27 +0200

Update display when getting new WebTiles options
Also make sure that the watcher's options are preferred

--------------------------------------------------------------------------------
7b1756b2f2 | Pekka Lampila | 2013-12-11 21:30:27 +0200

Handle versions that don't have WebTiles options
Add no_json_options option to disable using --print-webtiles-options for
certain version.

Fail silently if --print-webtiles-options returns 1.

--------------------------------------------------------------------------------
bbbd08c43b | Florian Diebold | 2013-12-11 21:30:27 +0200

Make the --print-webtiles-options call asynchronous.

--------------------------------------------------------------------------------
8c392e7901 | Pekka Lampila | 2013-12-11 21:30:27 +0200

Send some rc file options to the WebTiles client
Player's options are always sent on the game start, by the process
itself. They are also sent to any joining spectators.

Spectators also receive their own config which is generated by running
--print-webtiles-options.

Also added a simple options module to JavaScript. Since all the options
are received on game start the code can assume that the values are
always there and have been validated by the server side code.

--------------------------------------------------------------------------------
250cf21fd0 | Adam Borowski | 2013-12-11 19:31:14 +0100

Revert the removal of translations for "strange machine".
Not sure why removal then addition of the original could confuse Transifex,
but in ad534d4a it removed it instead of adding.  Perhaps the removal of
the original got pushed in the previous sync, having the addition and removal
pass themvelves in the door?

--------------------------------------------------------------------------------
f73237ab5c | Neil Moore | 2013-12-11 13:28:33 -0500

Use history in &(

--------------------------------------------------------------------------------
2d3e126591 | Neil Moore | 2013-12-11 13:26:48 -0500

Don't crash when IDing an off-level shopping list item (#7850)

--------------------------------------------------------------------------------
ad534d4a29 | Translators | 2013-12-11 19:20:42 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
c52bd50e40 | Translators | 2013-12-11 19:20:42 +0100

[Transifex] english monster descriptions (tenofswords).
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
480ceb4a0c | Raphael Langella | 2013-12-11 19:20:42 +0100

Don't put chinese punctuation after newline when wrapping text.

--------------------------------------------------------------------------------
20bcdcfcf4 | Adam Borowski | 2013-12-11 19:19:46 +0100

A quote for the Shoals.

--------------------------------------------------------------------------------
745e1e2732 | Adam Borowski | 2013-12-11 19:08:50 +0100

Sort the ex-sabre quote into the right place.

--------------------------------------------------------------------------------
795142ca3c | Steve Melenchuk | 2013-12-11 10:24:06 -0700

A couple of small adjustments to Depths monster set.
Orcs are gone, and some monsters have had their depths ranged padded out
for the purposes of OOD generation (most notable for zombies - there
should be considerably fewer dragon and titan undead with this, not that
they generate outside of necromancer bands and the occasional extremely
annoying special_room_morgue).

--------------------------------------------------------------------------------
2e2cdf5d56 | David Lawrence Ramsey | 2013-12-11 12:01:17 -0500

Make aboms from twisted resurrection heal from corpses, version 2.
Done using khalil's code in Mantis 6871, version 2 (slightly tweaked).

[Committer's note: I had concerns about removing regen from monster
abominations, but Grunt points out that in their natural habitat (the
abyss) you're generally either running away from them or killing them
quickly.  Vaults that use abominations, including Cigotuvi's wizlab,
probably need to be revised, though. -neil]

--------------------------------------------------------------------------------
9d082e1e35 | Neil Moore | 2013-12-11 11:55:24 -0500

Allow non-adjacent non-religious followers to take stairs.
This allows abominations from Twisted Resurrection to follow you en
masse, without the tedium of tf>tw...<tf>tw... etc.  It also affects
mercenaries and other stair-taking allies.

TR is, despite changes in 0.10, still one of those spells that is
overpowered but rarely-used because of tedium.  Let's reduce the tedium,
then nerf in other ways as necessary.  Non-healing will be one part of
the nerf, but we probably also need a cap on the total number of
abominations.

--------------------------------------------------------------------------------
62711b3f95 | Adam Borowski | 2013-12-11 15:17:23 +0100

Auto-enable boots of flying when you wear them.
You can still disable them later when that titan waltz by, saving you that
precious 10 aut over just removing the boots.

--------------------------------------------------------------------------------
d9400cdbbf | Adam Borowski | 2013-12-11 14:01:38 +0100

Rename armour brand abbreviations to +Jump, +Inv.

--------------------------------------------------------------------------------
e301bcbbad | Pekka Lampila | 2013-12-11 11:20:43 +0200

Fix line entries on old Firefox versions (#7816)
Anything before Firefox 25 to be exact:
https://bugzilla.mozilla.org/show_bug.cgi?id=501496
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/keydown#preventDef
ault%28%29_of_keydown_event

--------------------------------------------------------------------------------
846016ad5d | Pekka Lampila | 2013-12-11 10:34:01 +0200

Update shopping list price when item is identified

--------------------------------------------------------------------------------
94b8a5ead3 | Raphael Langella | 2013-12-11 00:28:53 +0100

More tutorial text fixes in translations.
I fixed the formatting as best as I could, but not understanding the
languages, I surely did some mistakes. I especially didn't try to fix the
"tutorial1 levelmap" entry as I would probably just make it worse.

For the languages with weird whitespace rules (ja, ko and zh), I only tried
to make sure that there was no broken tag, but I didn't fix the whitespaces.
The result is a bit ugly and inconsistent, but (hopefully) not buggy.
I leave it to translators to finish the formatting properly.

The wrapper still has some quirks with those languages (adding whitespace,
putting a dot alone on a line,...) but at least it seems it doesn't break
tags anymore.

--------------------------------------------------------------------------------
5473b5d711 | Raphael Langella | 2013-12-10 22:56:35 +0100

Fix transifex interface setup.
It called a variable which has been renamed.

--------------------------------------------------------------------------------
a760336762 | Pekka Lampila | 2013-12-10 21:43:03 +0200

Add Cedor to CREDITS.txt

--------------------------------------------------------------------------------
63f32dc8ef | Pekka Lampila | 2013-12-10 20:24:01 +0200

Remove dead code for eating poisoned chunks
Without poison resistance that is.

--------------------------------------------------------------------------------
bac4b0ed97 | Cedor | 2013-12-10 19:34:53 +0200

When butchering only check for known poison resist
Added a parameter to _determine_chunk_effect to check unided poison
resist (default case for eating) or not. Plus increased badness for
poisoned corpse because poisoned corpse got same badness as contam
corpses.

--------------------------------------------------------------------------------
e6af5e3373 | Neil Moore | 2013-12-10 11:02:54 -0500

Add the newer title screens to webtiles.
Apparently we have to hard-code them in two different places :(

--------------------------------------------------------------------------------
9ff65a6a82 | Chris Campbell | 2013-12-10 15:37:22 +0000

Fix spelling of "targeting" (#7837)
See Mantis for discussion.

--------------------------------------------------------------------------------
8fe954617d | Chris Campbell | 2013-12-10 12:05:08 +0000

Make Xom's invisibility uncancellable (#7841)

--------------------------------------------------------------------------------
2347962aa2 | elliptic | 2013-12-10 05:13:11 -0500

Don't process several things for 0 damage attacks.
For example, don't print a LOW HITPOINT WARNING or record a "HP change" note.

--------------------------------------------------------------------------------
2551bb2c09 | elliptic | 2013-12-10 03:35:58 -0500

Use double sword as fallback instead of long sword in Zonguldrok vaults.
Since that's Zonguldrok's base type nowadays.

--------------------------------------------------------------------------------
5d3c58f3e0 | elliptic | 2013-12-09 21:56:39 -0500

Use the correct title in scorefile_entry stuff.
This fixes issues with the wrong UC title appearing sometimes if str > dex
but base str < base dex (or the reverse).

--------------------------------------------------------------------------------
0234849a94 | ontoclasm | 2013-12-09 17:11:33 -0600

Troll hide tiles (Bloax)

--------------------------------------------------------------------------------
578ed4a0bd | ontoclasm | 2013-12-09 17:02:41 -0600

Spider boot doll tile

--------------------------------------------------------------------------------
7bed74665b | ontoclasm | 2013-12-09 16:20:11 -0600

TLA and MTLA tiles (Bloax)

--------------------------------------------------------------------------------
de2aa148a1 | ontoclasm | 2013-12-09 16:10:44 -0600

RATS (Bloax)

--------------------------------------------------------------------------------
95f726f391 | Adam Borowski | 2013-12-09 13:12:28 +0100

Use consistent spelling of "liquefied".

--------------------------------------------------------------------------------
8dd96673a0 | Adam Borowski | 2013-12-09 12:55:01 +0100

Fix an US spelling.

--------------------------------------------------------------------------------
96a4fb5e29 | Chris Campbell | 2013-12-09 10:11:13 +0000

Re-fix a vault tag

--------------------------------------------------------------------------------
78ea959885 | Neil Moore | 2013-12-09 02:15:01 -0500

Avoid "explosion of exploding dart fragments" (minmay)

--------------------------------------------------------------------------------
f10083366a | Chris Oelmueller | 2013-12-09 00:56:27 -0500

Coding style

--------------------------------------------------------------------------------
2b1062468f | Chris Oelmueller | 2013-12-09 00:56:27 -0500

Remove unused parameter from prompt_failed

--------------------------------------------------------------------------------
d36705e9f3 | Chris Oelmueller | 2013-12-09 00:56:26 -0500

Fix typo

--------------------------------------------------------------------------------
1d8803ccf9 | Chris Oelmueller | 2013-12-09 00:56:26 -0500

Update some rather ancient comments

--------------------------------------------------------------------------------
4299833737 | Chris Oelmueller | 2013-12-09 00:56:26 -0500

Semantics treatment for yes_or_no

--------------------------------------------------------------------------------
e740b03a1f | Chris Oelmueller | 2013-12-09 00:56:26 -0500

Alter string punctuation
This version is already present elsewhere, so reduced translation burden.

--------------------------------------------------------------------------------
200237c43a | Neil Moore | 2013-12-08 22:48:16 -0500

Increase the summon small mammals cap slightly.
To where it was between 0.14-a0-1164-g531d946 and 0.14-a0-1386-g551047e.

--------------------------------------------------------------------------------
98f7a91824 | Neil Moore | 2013-12-08 22:43:42 -0500

Up the scorpion cap.
Getting swarms is kind of the point of this spell.

--------------------------------------------------------------------------------
551047e547 | Neil Moore | 2013-12-08 22:36:57 -0500

Lower summoning caps by 1 to where they should be.
They were, apparently inadvertently, increased in 0.14-a0-1164-g531d946,
when the summon cap loop was made to skip the new summon (so that "3"
meant "3 plus the new one").  Add one to the count to compensate.

Also, revert the part of 0.14-a0-1339-gd040c24 that worked around this
problem for CCF.

--------------------------------------------------------------------------------
e49251448d | Neil Moore | 2013-12-08 21:26:49 -0500

Trim some extra spaces (ChrisOelmueller)
Maybe the argp was supposed to line up with the next line, but that
seems silly, and is inconsistent with the majority of our uses of
va_list.

--------------------------------------------------------------------------------
3110700ea6 | Neil Moore | 2013-12-08 21:15:47 -0500

New title screen featuring Roxanne (Psiweapon, #7832)

--------------------------------------------------------------------------------
69e08ef831 | Neil Moore | 2013-12-08 19:47:16 -0500

Don't double-announce artefact weapons.

--------------------------------------------------------------------------------
0f67edb679 | Jason Van | 2013-12-08 15:53:31 -0500

Vault patch clean-up patch
Highlights
 * Put back in kennysheep's vaults, with some slight edits
 * Somewhat lower orc zig low-tier orc numbers,
   both as bands and as slots for floor spawns.
 * Buff chaos zigs more with depth.
 * Rename the dancing weapon generator in Tukima's wizlab,
   to avoid overlap with the blink statues.

--------------------------------------------------------------------------------
d382354b39 | Neil Moore | 2013-12-08 15:41:29 -0500

Don't randomly turn runes into mimics (#7831).
Also, though not currently relevant, the horn of Geryon and the Orb.

Explicitly-placed rune mimics are still allowed.

--------------------------------------------------------------------------------
31fcc813e9 | Chris Campbell | 2013-12-08 19:13:12 +0000

Don't give a message when a forced appendage transformation fails

--------------------------------------------------------------------------------
74b6bc2130 | elliptic | 2013-12-08 01:21:40 -0500

De-rune two doors.

--------------------------------------------------------------------------------
f8e6a88c51 | Adam Borowski | 2013-12-08 02:50:15 +0100

Don't let Bailey rock masquerade as stone.
The new colour is ugly, but at least doesn't require using 'x' in the
default config.

--------------------------------------------------------------------------------
17b3b5fd33 | Adam Borowski | 2013-12-08 02:30:56 +0100

Disallow drinking from regular fountains.

--------------------------------------------------------------------------------
4d7012a27b | Adam Borowski | 2013-12-08 01:03:32 +0100

Bump up fire bats further.
As primary Abyssal denizens, being total popcorn is bad.  Weak is ok, with
their speed and batty behaviour they're can still harass people, unlike
a typical weak monster.  And after this update they can sometimes kill
unseen horrors (arena: 20% solo, 85% band).

Also (rarely) spawn them in Geh, for theme.  They'd be one of rare sources
of actual fire there...

--------------------------------------------------------------------------------
20e006e609 | Jason Van | 2013-12-07 18:44:48 -0500

Further lower weakling Abyss monsters by depth
Abyss depth needs harder scaling, so this stops even more
nearly harmless monsters from trying to be threats
past the initial Abyss:1 balance. Most noticeably,
this makes the large and small abomination exchange
less extreme so that earlier floors of abyss still get
quite a few more large abominations and less smalls.

Also, cut the scummable pearl dragons, boring tengu,
and move some weight over from ynoxinul to blink frogs.

--------------------------------------------------------------------------------
a57ff3c274 | Adam Borowski | 2013-12-08 00:40:17 +0100

Make the abyssal stair chance fixed.
It increased with depth, we'd expect the reverse.

--------------------------------------------------------------------------------
41f0587362 | Adam Borowski | 2013-12-08 00:29:29 +0100

Drop the base type redefine for captain's cutlass.
It would be tempting to rename it to something else, but that would break
the pirate theme.  So we can have another unrand with some fancy base type
instead.

--------------------------------------------------------------------------------
ab21395712 | Adam Borowski | 2013-12-08 00:24:18 +0100

Rename "sabre" to "cutlass".
Sabres are a massive category that, while including even short stuff (like
cutlasses!), is nowhere near the low end of "long blades" on the average.
So we had a "short blade" item whose name included the longest 1-handed
long blade...

--------------------------------------------------------------------------------
7c58881104 | Adam Borowski | 2013-12-08 00:24:17 +0100

A whitespace fix.

--------------------------------------------------------------------------------
1101b23c15 | Brendan Hickey | 2013-12-07 15:09:30 -0800

Increase Abyssal Stair Chance
This increases the abyssal stair chance. On one hand, stairs provide
the player with an opportunity to escape danger. On the other, you're
more likely to get a nasty party patrol on a deeper level.

Ultimately I think this will be a wash in terms of difficulty.

--------------------------------------------------------------------------------
87da522de9 | Chris Campbell | 2013-12-07 19:56:45 +0000

Make armours one-handed
(You can't wield armour.)

--------------------------------------------------------------------------------
07c95271ab | Chris Campbell | 2013-12-07 16:02:17 +0000

Arenasprint fixes (#7823)
Fix a reference to D:19 and some out-of-date comments.

--------------------------------------------------------------------------------
8f0a072023 | David Ploog | 2013-12-07 13:47:49 +0100

An attempt to improve the Ctrl-F help screen.

--------------------------------------------------------------------------------
cf2f55ba06 | Pekka Lampila | 2013-12-07 11:40:44 +0200

Annotate ranged and melee weapons for search
Instead of {weapon} it's now either {ranged weapon} or {melee weapon}.
Throwable weapons, magical staves etc. are not included.

--------------------------------------------------------------------------------
8948931c81 | Pekka Lampila | 2013-12-07 11:08:14 +0200

Handle invalid login cookie more gracefully

--------------------------------------------------------------------------------
7eec19c4e8 | Neil Moore | 2013-12-07 01:58:25 -0500

Fix a sporadic error in validating the frog pond.
There might not be a | glyph to check connectivity to, but there will
always be a d.

--------------------------------------------------------------------------------
4cf50910d0 | Chris Campbell | 2013-12-07 06:48:51 +0000

Fix Ziggurat default-depth

--------------------------------------------------------------------------------
6b180f8e41 | Chris Campbell | 2013-12-07 06:21:18 +0000

Remove more Lair runed doors
Neither of these need to be runed: they're right in the middle of the end
vault, so unlikely to be autoexplored into, and it's possible to just
close the door and walk away again if you don't feel like dealing with
an anaconda/dragon.

--------------------------------------------------------------------------------
0512ea07dc | Adam Borowski | 2013-12-07 05:06:13 +0100

Initialize invis_fd and cloud_fd in the code rather than statically.
They're non-const and get amended already.

--------------------------------------------------------------------------------
aae85d3ce5 | Adam Borowski | 2013-12-07 04:49:16 +0100

Drop unused feature descriptions.

--------------------------------------------------------------------------------
6535757be7 | Adam Borowski | 2013-12-07 04:49:16 +0100

Uncolour permaglass in the Cloud Mage wizlab.

--------------------------------------------------------------------------------
aedcd89ea1 | Adam Borowski | 2013-12-07 04:49:15 +0100

Re-add the seemingly unused copy of Zonguldrok's lich definition.
It's needed for gather_mons (db_lint, listing monsters) and for Gretell's
"monster"; hard-coding it in the former would be easy, in the latter not
so much.

--------------------------------------------------------------------------------
780040e8a7 | Adam Borowski | 2013-12-07 04:49:15 +0100

Unsplit an URL.
I do need to scroll to copy it in chunks (or cat it first), but that's
hardly any more work when it's in one piece as compared to being chopped.
Those with a GUI editor, on the other hand, can now click it directly.

Also, write those accents in random directions inline -- I don't think
anyone these days can be expected to have problems with non-ASCII.

--------------------------------------------------------------------------------
93bbb45fa3 | Adam Borowski | 2013-12-07 04:49:15 +0100

Fix "a" frost-covered floor.
That capitalization wasn't a typo.

--------------------------------------------------------------------------------
f6e1d740be | Adam Borowski | 2013-12-07 04:49:15 +0100

Remove a bogus character escape.

--------------------------------------------------------------------------------
d8c18984e0 | Pekka Lampila | 2013-12-07 05:08:04 +0200

Fix glyph for detected monsters in unseen squares
It was a line break, which broke WebTiles messages causing a black
screen.

--------------------------------------------------------------------------------
8e2ef8a400 | Neil Moore | 2013-12-06 21:16:29 -0500

Let fruiting_plant spawn in D.
This is necessary for the food vaults that use it as a subvault.

--------------------------------------------------------------------------------
952572735e | Pekka Lampila | 2013-12-07 03:41:23 +0200

Add send timeouts to game<->webtiles server socket
If timeout is hit, the game is killed/stopped. But at least it shouldn't
deadlock the whole server.

--------------------------------------------------------------------------------
86ce660178 | Neil Moore | 2013-12-06 19:21:38 -0500

Fix whitespace.

--------------------------------------------------------------------------------
9b21bd56be | Jason Van | 2013-12-06 19:21:38 -0500

Small vault batch
Decorative vaults for Snake, Elf, and Dis,
plus a vault each for Swamp, Crypt, and Tar.

Also, sneak in a small dis_hangedman nerf.

--------------------------------------------------------------------------------
ba891f5e56 | Jason Van | 2013-12-06 19:21:38 -0500

Further ziggurat set buffs, new pillar vaults
Highlights
 * re-organize the sets a little (again)
 * Slightly up the hd pool, not enough to really matter later on
   but prevent the first few floors from having next to nothing.
 * Shoals: lower weight of set, re-balance classed merfolk.
 * Crypt: use different monsters due to the branch change;
   focus on the potential nastiness of silence.
 * Dragons: add in wind drakes, weighted lower than any spawn
   due to their enemy-disruptive nature.
 * Air: add in raiju, remove always-lost vapours.
 * Ranged: add in rare fauns, thorn hunters, and satyrs.
 * Orc: put the extra orc knight weighting into orc high priests,
   for a little more variety and less set obsolescence/repetition.
 * Swamp: scale down swamp:$ spawns and scale up tentacled monstrosities
   with depth, lower death drakes, sneak in very rare golden dragons
 * Snake: heavily scale up greater naga with depth,
   sneak in very rare quicksilver dragons
 * Vaults: Lower ancient lich chance, but introduce scaling
   additions of titans and golden dragons, plus start using V:$ 9s.
 * Pan lords: due to overshadowing plain Pan, convert to Chaos theme:
   ugly things, shapeshifters, chaos spawn, apocalypse crabs, and klowns
   replace the place:Pan, but still same huge odds for pandemonium lords.
 * Pan: Add extra greater demons, to respect the change to Pan Lords.
 * Draconians: Scale up nonbase draconians versus base draconians with depth,
   allow for all depths instead of cutting them off before Zig:7.
 * Combine and otherwise clean-up varied pillar vaults.
 * Add a few more pillar vaults, including one with a teleport trap
   and one with treants or thorn hunters.

--------------------------------------------------------------------------------
2099b53b34 | Jason Van | 2013-12-06 19:21:38 -0500

Cocytus end balance edits, new end
 - new cocytus end, more in the style of coc_dpeg and geh_evilmike than coc_old.
 - for all other cocytus ends, throw down some blizzard demons.
   cocytus is pretty weak for a hell nowadays, more airstrike should help.
 - coc_old: rotate and mirror-double the center-island,
   randomize the layer connections, place a lot more resistance
   from other cocytus ends. vault is (still) very plain,
   but minimal randomization should help.
 - coc_mu: reduce permarock border, since shatter's no longer a real concern.
   also, lower rewards to get closer to other cocytus end loot amounts.
 - coc_grunt: rotate vault, move stairs into the center, put one shortcut
   that also becomes a big potential battleground, make one dead-end
   potentially have the rune, swap out imps for bog bodies.
   vault really needed to not be samey and non-dangerous with lots of
   isolated tiny monster groups over a really long stretch:
   as good as forcing hell effects is, space-filling paths make boring levels.

--------------------------------------------------------------------------------
9ae1ffb695 | Jason Van | 2013-12-06 19:21:38 -0500

Wizlab modernizing edits
Highlights
 - Reorganize/update silly file header, and most notes.
 - Enable entrances spawning in Forest, it thematically fits about
   as well as it does for Crypt placement.
 - Tukima's: bring back blink_other strange machines, but better place
   them to be much more hostile and relevant. also, remove most doors,
   and replace the acquirement with a stack of blinking scrolls.
 - Eringya's: twist out the layout and evenly distribute loot
   to freshen-up the level. Shove in a minor amount
   of forest monsters: fauns and satyrs accompanying centaurs,
   rather flavourful thorn hunter placement. Bring back fruit traps
   (one time only), and give toadstool traps rare wandering mushrooms.
 - Cigotuvi's: make the majority of pulsating lumps glowing shapeshifters,
   randomize the loot placement to lessen just rushing for one spoiler spot.
 - Iskenderun's: give deep elf mages their conjurations spell set instead
   of just IMB, round out the level with less space/fog/orb-blocking stone
   to hide in, add more orb statues with more orbs and control draconians spawns
 - Zonguldrok: make the initial awakening graveyard more dangerous:
   have an steadily more dangerous set, shorten spawning interval,
   and require proportionally more spawns to graves left to kill to "enter".
   The wizlab may be the most dangerous of any due to the ancient lich rename,
   but it shouldn't be so trivial up to that point.
 - Golubria: shrink number of teleporter chambers and level size, rebalance
   according, add new abyss monsters and lower the weight of old ones
 - Cloud Mage: lower vapour weight and sneak in rare wisps.
   Vapours directly targetting players makes them a lot more dangerous now.
 - Hellbinder: monster set / spawns re-balance to be less absurd,
   slightly open up and connect select chambers, sprinkle rock throughtout
   the layout for cacodemon dig use.

--------------------------------------------------------------------------------
bee4e73e5d | Jason Van | 2013-12-06 19:21:38 -0500

Lair.des clean-up, lair end interest edits
 - combine all of the fruiting minivaults, let it spawn in Lair
   occasionally
 - avoid some teleport closets and adjust outdated absdepth use, plus
   have a bunch of vaults contain some bare minimum of loot
 - wad_woods[_foo]: define a big chunk of header contents in a function,
   adjust a lot more by depth, replace ugly floor tiles with a branch
   exchange, increase low weights [but not for Forest, where they don't
   necessarily fit] but use some tiers of unique tags. also, remove
   non-random trap use.
 - bearwithus, kennels: literally combine the both. both vaults are
   about a mess of mostly-samey not greatly interesting monsters, so
   sharing the mix of the both of them should help their variety, and
   also up the combined threat / loot to approach other small end
   levels. (also, have a rather rare chance for a raiju to visit.)
 - evil_forest: add more randomization and variety, up loot a little
 - worms_lemuel: clear spiny worms as entry guards, keep as accompanied
   bosses; use snails and slugs to introduce instead. also, up
   non-dragon-guarded loot. as a little compensation for difficulty loss
   and more loot, distribute out threat through end-chambers and
   randomize them more.
 - enchanted_forest: spread a tiny number of fireflies/yellow wasps
   throughout
 - new lair end to keep small lair ends numbers the same. centers around
   fast (poisonous) things and being more open to the level than most
   small ends.

--------------------------------------------------------------------------------
21a8b93a2a | Raphael Langella | 2013-12-07 01:10:27 +0100

Many fixes to tutorial texts.
Mostly german, but also some tweaks and simplifications to english and french.

--------------------------------------------------------------------------------
df2cf3a951 | Raphael Langella | 2013-12-07 01:09:23 +0100

[txc] Try to not break long words.
Doesn't always work though, so :nowrap is still sometimes necessary.

--------------------------------------------------------------------------------
e3bebaeb89 | Raphael Langella | 2013-12-07 01:09:23 +0100

Add a <nomouse> tag to avoid duplicating text for console and webtiles.

--------------------------------------------------------------------------------
297bf63778 | Raphael Langella | 2013-12-07 01:09:23 +0100

No enchantment for the starting mace in god tutorial.

--------------------------------------------------------------------------------
2c1bf0a2a8 | Raphael Langella | 2013-12-07 01:09:23 +0100

Don't generate mimics in tutorial.
Getting one when playtesting tutorial was hilarious though :)

--------------------------------------------------------------------------------
53644909c4 | Neil Moore | 2013-12-06 17:17:16 -0500

Inform player about permanence of Veh's last gift (minmay)

--------------------------------------------------------------------------------
d040c24e27 | Neil Moore | 2013-12-06 17:06:26 -0500

Actually cap CCF at one.
The cap is on the number of summons not counting the new one.

Also, make the old ones expire more or less immediately, and update
the description.

--------------------------------------------------------------------------------
23611700cf | Adam Borowski | 2013-12-06 20:13:09 +0100

Allow butchering in bat and porcupine form.
This doesn't apply to bottling blood, though.

Rationale: these forms are far more capable of butchery than spiders, and
need to eat.

Forms that still can't butcher are:
* wisp, fungus (no hunger, no appendages)
* jelly (no appendages, can eat everything but rocks)

--------------------------------------------------------------------------------
1537c4c4cc | Chris Campbell | 2013-12-06 16:19:11 +0000

Let spider form butcher again
Allowing it in the butchery simplification was intentional, for the same
reason that ice form is able to butcher: blocking it doesn't add anything
and makes for very annoying play on Transmuters, having to frequently
manually cancel the form.

--------------------------------------------------------------------------------
0943329075 | Adam Borowski | 2013-12-06 14:34:13 +0100

Deindent.
Linus often shouts at people for functions like:
{
    if (foo)
    {
        long, massively indented code;
    }
}
instead of:
{
    if (!foo)
        return;

    long, massively indented code;
}
and I think he's right -- the latter is quite a bit more readable.

--------------------------------------------------------------------------------
047c89b307 | Adam Borowski | 2013-12-06 14:34:13 +0100

Don't wastefully process tentacle info for non-hentai monsters.
Also, use a const string ref instead of copying it.

Not sure why this checks only mon.type without heeding zombies, but the main
user of this data has an assert that would fails for zombies.

--------------------------------------------------------------------------------
0ad88617b7 | Adam Borowski | 2013-12-06 14:30:17 +0100

Fix spider and porcupine forms being able to butcher.
Apparently dd49da7c negated that expression wrong.

--------------------------------------------------------------------------------
6078aa58fa | Pekka Lampila | 2013-12-06 09:57:49 +0200

Fix WebTiles formatted_string_to_html on Chrome
And potentially some other browsers too.

--------------------------------------------------------------------------------
dd49da7c5f | Chris Campbell | 2013-12-06 06:53:11 +0000

Simplify butchery handling
Butchery is always allowed except in a few forms (bat, wisp, fungus).
Removes a lot of unnecessary/unused code for swapping weapons and removing
equipment when butchering.

--------------------------------------------------------------------------------
1575af7ce3 | Pekka Lampila | 2013-12-06 08:31:54 +0200

Add Kyle Fox to CREDITS.txt

--------------------------------------------------------------------------------
3eed20653d | Steve Melenchuk | 2013-12-05 21:58:49 -0700

Ensure an accessible path through hall_of_Zot.
This is intended to address reports of having two Zot traps blocking the
two lungs off; I'm not convinced that this is a good solution, or how
much of a problem this is to begin with, but it's here for now.

Note: this doesn't prevent mechanical traps from placing across both
entrances, but having it completely blocked off by two teleport traps,
Zot traps, etc. should no longer be possible.

--------------------------------------------------------------------------------
2e84db77a2 | Steve Melenchuk | 2013-12-05 21:53:02 -0700

Place traps before checking level connectivity (#5585).
In particular, place traps before checking if branch entrances are
accessible, so they should always be accessible.

--------------------------------------------------------------------------------
5da5bad263 | Chris Campbell | 2013-12-06 04:00:34 +0000

Update some hints mode messages

--------------------------------------------------------------------------------
a30516ea31 | Neil Moore | 2013-12-05 22:42:43 -0500

No jackals from CCF, but cap it at one (crate, nonethousand)
For now, just give jackals' weight to hounds.  Probably we'll need to
adjust the weights further, since at higher power it's easy but tedious
to recast until you get a better dog.

--------------------------------------------------------------------------------
c9c663e6f2 | Adam Borowski | 2013-12-06 04:00:23 +0100

Optimize get_feature_def().
This bizarre map took around 4% of qw CPU.  Separating the defs into
something directly addressable costs nothing but a minor duplication during
initialization that could be put into a function.

--------------------------------------------------------------------------------
f6a881ee62 | Adam Borowski | 2013-12-06 04:00:23 +0100

Don't check feat values twice (switch + if).

--------------------------------------------------------------------------------
8c40eb4660 | Adam Borowski | 2013-12-06 04:00:23 +0100

Simplify.
SHOW_ITEM_NONE was uninitialized, will reuse whatever glyph comes at the
previous enum (currently "invis exposed"), probably should assert.

--------------------------------------------------------------------------------
dd1b85962a | Adam Borowski | 2013-12-06 04:00:23 +0100

Deindent.

--------------------------------------------------------------------------------
85c66a120e | Kyle Fox | 2013-12-06 03:55:58 +0200

Fixed use of arrows and other special keys in OS X versions of webtiles.
The code was written assuming wint_t's are unsigned and therefore
positive if not 0. This is not necessarily true for all environments.

--------------------------------------------------------------------------------
8511db5fb3 | Kyle Fox | 2013-12-06 03:55:58 +0200

Fix a crash when running a webtiles server in OS X.
Fixes #6083. The crash would occur when sending datagrams from crawl to
the python webserver. In OS X, there is very little space in memory to
send datagrams and drawing menus such as the list of commands would
exceed this memory. The crawl process would then die after receiving too
many ENOBUFS errors from sendto.

ENOBUFS will still occur unless we add artifical sleeps to the datagram
sending loop. Sleep responses to ENOBUFS have been changed to reduce the
lag this causes.

--------------------------------------------------------------------------------
d75cff3dac | Adam Borowski | 2013-12-06 00:53:51 +0100

Remove formicid skeletons.
Technically, they do have one (on the outside), but our notion of skeletons
assumes an internal one.  This is what applies to other bugs we have.

--------------------------------------------------------------------------------
bc28bc3301 | Adam Borowski | 2013-12-06 00:53:50 +0100

Fix up saves with innate+temp mutation > total.
This does not solve the underlying issue, though.

--------------------------------------------------------------------------------
b132953578 | Pekka Lampila | 2013-12-06 01:31:56 +0200

Don't use .html() for no reason

--------------------------------------------------------------------------------
9f1f8ef8ae | Pekka Lampila | 2013-12-06 01:11:40 +0200

Improve formatted string handling in WebTiles

--------------------------------------------------------------------------------
b9c2908a64 | Adam Borowski | 2013-12-05 14:18:02 +0100

Eradicate all other lone statics.
Other than MSVC junk.

--------------------------------------------------------------------------------
2bff3cf615 | Chris Campbell | 2013-12-05 11:16:35 +0000

Fix a newline

--------------------------------------------------------------------------------
2036164b62 | Chris Campbell | 2013-12-05 07:05:24 +0000

Fix a Ziggurat loot chamber

--------------------------------------------------------------------------------
b2df4efc7f | Pekka Lampila | 2013-12-05 04:43:56 +0200

Don't save empty strings to WebTiles input history

--------------------------------------------------------------------------------
6b6341e3a9 | Pekka Lampila | 2013-12-05 04:40:37 +0200

Save input history for the stash search prompt
Has been gone since aa300c, 6 years ago.

--------------------------------------------------------------------------------
354b93fee6 | Chris Oelmueller | 2013-12-04 20:13:57 -0500

Remove a silly message.

--------------------------------------------------------------------------------
fe7cae915b | Raphael Langella | 2013-12-05 01:33:24 +0100

Tutorial: fix formatting and rewrite some of the french translation.
Also, a couple of minor tweaks to english.

--------------------------------------------------------------------------------
ec22645358 | Raphael Langella | 2013-12-05 01:33:23 +0100

Fix escaped < not being unescaped if it is on line end.

--------------------------------------------------------------------------------
6514eeee62 | Raphael Langella | 2013-12-05 01:33:23 +0100

[txc] Add an option to replace some ASCII punctuation with unicode.
Handles replacing hyphens and en dashes with em dashes. Also, put non-breaking
spaces where needed. Might add support for handling quotes (“”, „“, 
«»).

--------------------------------------------------------------------------------
d1885e8d78 | blackcustard | 2013-12-04 18:54:18 -0500

Assert when trying to transit dead monsters (#7146)
Also, give a warning and ignore unmarshalled dead monsters on transit
lists.

[Committer's note: Changes from blackcustard's patch:
  * Remove the testing hack in Cure Poison.
  * Change the warning message in _abyss_wipe_square_at into an ASSERT,
    since we have fixed the known bugs that could leave dead starcursed
    masses in the grid.
  * Use MSGCH_ERROR rather than the in-character MSGCH_WARN for the
    warning message in unmarshall_follower_list.
  * Make a minor formatting tweak in unmarshall_follower_list.
  * Rewrite the commit message.  -neil]

--------------------------------------------------------------------------------
f0ae6098ef | Neil Moore | 2013-12-04 17:36:55 -0500

Remove monsters from the transit list when dactions kill them.
This could happen with when DACT_END_SPIRIT_HOWL resets the remaining
spirit wolves that are not in LOS.  See for example !lg Apol crash 1

There still may be other situations that put or leave dead monsters in
the transit list: see #7146.

--------------------------------------------------------------------------------
0a0213c784 | Steve Melenchuk | 2013-12-04 12:56:20 -0700

Fatigue timer for monster Death's Door.
For some reason, I thought this existed already, but it didn't.

Right now it's the same length as the player's, but this might need to
be padded out more.

--------------------------------------------------------------------------------
ff921f5e14 | Adam Borowski | 2013-12-04 18:06:10 +0100

Drop map_shadow, use a bitmap and update it incrementally.
Copying the whole map_knowledge every turn was really costly.  We don't care
about any fields of the map other than the "seen" flag, too.  Thus, we can
move it into a bitmap and update only changes rather than everything.

This means we need to update the entire bitmap once exploration starts, but
that's a small fraction of the cost:

qw profiles:
before:
9.55%     check_for_interesting_features()
0.18%     start_explore(bool)
after:
0.29%     start_explore(bool)
0.10%     check_for_interesting_features()

--------------------------------------------------------------------------------
9bf71eb23e | Adam Borowski | 2013-12-04 14:03:38 +0100

Tell db_lint it doesn't need to complain about "snake".

--------------------------------------------------------------------------------
874b35f8dc | Adam Borowski | 2013-12-04 14:01:15 +0100

Indentation fixes.

--------------------------------------------------------------------------------
8f5ef8ea80 | Brendan Hickey | 2013-12-03 23:54:24 -0800

A zig vault that will place

--------------------------------------------------------------------------------
29a0c8ff29 | Brendan Hickey | 2013-12-03 23:38:21 -0800

Zig vault fixup
Jellies can swim

--------------------------------------------------------------------------------
a3ba1ff4bf | Brendan Hickey | 2013-12-03 23:33:51 -0800

Some Zig Vaults
A few loot chambers.
A couple of centre pillars, some dangerous, others decorative.

--------------------------------------------------------------------------------
f09a2afb18 | Chris Campbell | 2013-12-04 07:07:14 +0000

Actually stop bottled efreets from generating

--------------------------------------------------------------------------------
3d87a2aa3b | Chris Campbell | 2013-12-04 04:41:37 +0000

Adjust some shop vaults
Remove pre-identified loot from a couple of shops, adjust an absdepth
check, remove the "Hardware" store since it's now somewhat redundant with
gadget shops.

--------------------------------------------------------------------------------
69087e4769 | Chris Campbell | 2013-12-04 04:41:36 +0000

Remove bottled efreets
They're very rarely useful, and there are now plenty of other much more
interesting misc items.

--------------------------------------------------------------------------------
809a068d01 | Neil Moore | 2013-12-03 23:14:04 -0500

Update a comment (HangedMan)

--------------------------------------------------------------------------------
70db396d95 | Jason Van | 2013-12-03 22:44:15 -0500

Somewhat un-nerf D:9-16 OODs/vaults, change OOD-only D spawns
When dungeon-split was first started, it cut off a large part of D out-of-depth
spawns both due to obsolescence and helping distinguish Depths from D, but
this (inadvertently?) heavily nerfed any of the many, many traditional vaults
using 098, as well as out-of-depth spawns per floor.
For the most obvious example, the four most common spawns of the lowest OODs for
D:14-16 were yaktaur captain, stone giant, glowing shapeshifter, and ettin, but
in the interim period between before the creation of Depths and this patch
the same tier has four most-common spawns of zombies, hill giants, ugly things,
and centaur warriors.

This expands the ood-cap to make the super-ood 8s for D:8-16 dangerous
again, but not going far enough to spawn some (now) Depths and Vaults only
terrors like titans and golden dragons, thus still distinctly splitting
D, Vaults, and Depths from each other.
The old-D:1-27 monster set was thus rebased around that ood-cap, adjusted
for monsters that mostly only spawn as oods, and then edited further
for organization purposes. The patch also has some experimental rare new
super-ood spawns to compensate for the biggest danger cut-offs.

--------------------------------------------------------------------------------
c3a83af8d9 | Neil Moore | 2013-12-03 22:44:14 -0500

Correct some stray commas.

--------------------------------------------------------------------------------
864a66ab42 | Neil Moore | 2013-12-03 22:40:35 -0500

Fix whitespace.

--------------------------------------------------------------------------------
95fcdb712f | Steve Melenchuk | 2013-12-03 19:25:41 -0700

Clear up a few strange vault depth quirks arising from Depths.
Some vaults had "DEPTH: [...] Depths, Depths [...]" which are now gone,
and some grunt_ministairs functionality intended to apply in Depths as
well as D now properly works in Depths.

--------------------------------------------------------------------------------
66358bb956 | Steve Melenchuk | 2013-12-03 19:22:20 -0700

Some mostly decorative stair vaults.
These are intended to be "extra" vaults (too large to be minivaults),
mainly for areas that don't have very many extra vaults at present.

--------------------------------------------------------------------------------
17fb3040b4 | Steve Melenchuk | 2013-12-03 17:46:08 -0700

Don't spam elevators and Zot-trapped stairs in Zot (minmay, tenofswords).
To be fair, minmay didn't actually point this out to me; I just noticed
it while watching a recent Zot clear of his.

--------------------------------------------------------------------------------
1da7edb092 | Pekka Lampila | 2013-12-04 01:12:36 +0200

Support for get_line history in WebTiles

--------------------------------------------------------------------------------
e81ac713d0 | Adam Borowski | 2013-12-03 23:19:09 +0100

A lame name for djinni "feet".
"underside" is awfully generic, but "taper" takes a while to understand.

--------------------------------------------------------------------------------
0234259b16 | Pekka Lampila | 2013-12-03 23:30:02 +0200

Add compile time size check for s_equip_slot_names

--------------------------------------------------------------------------------
c1ddd44d04 | Adam Borowski | 2013-12-03 16:29:35 +0100

Draw the HUD upon game start / level load.
This solves most of what galehar's just reverted change intended to fix,
except for the game area in tiles, which currently shows just the player.
At least it doesn't appear broken.  Still, it would be nice to have the
initial view there.

--------------------------------------------------------------------------------
8c39b8ecec | Adam Borowski | 2013-12-03 13:18:31 +0100

Revert "Delay more prompt until level has finished loading."
While the problem this commit attempts to fix is real, I'm afraid it causes
more breakage:
* it removes debug messages from map generation
  * especially, infinite loops become extremely hard to debug
* loses output that overflows
* has issues with force_more
* portal vault announcements are lost

For example, a level with both a Lab and an Ice Cave shows just:
"There is an entrance to an ice cave on this level. Hurry and find it before 
the portal melts!"
even though there's no overflow.  The rest (the main "wave of frost" message
and anything about the Lab) are gone.

I'm afraid some other approach is needed.  Perhaps forcing a screen draw?

This reverts commit 8471a022e76bae39918ba6eaa1fbbab5c7ceb64f.

--------------------------------------------------------------------------------
a7eb7c7356 | Adam Borowski | 2013-12-03 12:54:47 +0100

Drop pointless parentheses.

--------------------------------------------------------------------------------
6378b71d3d | Adam Borowski | 2013-12-03 12:49:40 +0100

Show monster habitats in a ways that allows compile checks.

--------------------------------------------------------------------------------
a248abcac0 | Adam Borowski | 2013-12-03 11:02:04 +0100

Use a scalar range for find_ray() and friends instead of a circle_def object.

--------------------------------------------------------------------------------
ada52c5036 | Adam Borowski | 2013-12-03 11:02:04 +0100

Drop an unused variable.

--------------------------------------------------------------------------------
6cff2d6a80 | Adam Borowski | 2013-12-03 11:02:04 +0100

Simplify a very convoluted way of checking c.abs().

--------------------------------------------------------------------------------
492f6862c2 | Chris Campbell | 2013-12-03 06:26:34 +0000

Remove an unnecessary treeform message
The "cannot move" canned message already gets displayed when failing to
swap places with a monster.

--------------------------------------------------------------------------------
26b5dca61b | Chris Campbell | 2013-12-03 06:26:33 +0000

Don't let Dryads walk through trees
Being able to awaken trees and pull you next to them is a strong
combination on its own, it's not necessary for them to also hide in the
trees while doing so.

Removes a lot of code for handling wall movement since rock worms are gone
too, but leaves HT_ROCK - it appears that spatial maelstroms sort-of-use
it (not sure if they actually need it, though).

--------------------------------------------------------------------------------
5517a7c3cf | Chris Campbell | 2013-12-03 06:26:32 +0000

Add a missing habitat type to wizmode monster debug

--------------------------------------------------------------------------------
900ae755d1 | Chris Campbell | 2013-12-03 06:26:32 +0000

Replace thrashing horror frenzy with might
Frenzy doesn't work as an escape spell in many ways, in particular that it
prevents worshippers of good gods from even being able to kill them
without piety loss/penance.

--------------------------------------------------------------------------------
d83fb5e799 | Chris Campbell | 2013-12-03 06:26:31 +0000

Give one manual instead of two as loot in wizlab_wucad

--------------------------------------------------------------------------------
43865cb57e | Chris Campbell | 2013-12-03 06:26:30 +0000

Don't randomly generate zombies/skeletons in Vaults
They're mostly just fairly poor examples of melee-only monsters, and are
very unlikely to be threatening or interesting at this point.

--------------------------------------------------------------------------------
173488860e | Pekka Lampila | 2013-12-03 08:02:29 +0200

Handle line entry box losing focus in WebTiles

--------------------------------------------------------------------------------
270c2e5ec4 | Pekka Lampila | 2013-12-03 07:35:02 +0200

Hide WebTiles get_line dialog when it's sent
Instead of waiting for server response

--------------------------------------------------------------------------------
df150e2338 | Pekka Lampila | 2013-12-03 07:31:21 +0200

Special handling for WebTiles travel depth prompt
Allows using <, >, $ etc.

Dead keys aren't handled properly (at least not in Firefox on Linux).

--------------------------------------------------------------------------------
a637296d9d | Pekka Lampila | 2013-12-03 07:05:11 +0200

Allow using ? for stash searches in WebTiles
Only show help if ? is the first character, just like in other versions.

--------------------------------------------------------------------------------
4179fa4373 | Pekka Lampila | 2013-12-03 07:04:35 +0200

Special handling for repeat cmd prompt in WebTiles
Previously it was simply broken.

--------------------------------------------------------------------------------
2d023e691c | Pekka Lampila | 2013-12-03 05:17:41 +0200

Add MSG_OK when canceling search prompt

--------------------------------------------------------------------------------
856eec98eb | Pekka Lampila | 2013-12-03 02:36:10 +0200

Fix slime creature being described as buggy in ?/M

--------------------------------------------------------------------------------
6ab7b50ce2 | Pekka Lampila | 2013-12-03 02:19:58 +0200

Fix describe menus always displaying --more--

--------------------------------------------------------------------------------
70d41d2457 | Pekka Lampila | 2013-12-03 02:04:36 +0200

Avoid a double exception in WebTiles server code

--------------------------------------------------------------------------------
6a8b99b60f | Pekka Lampila | 2013-12-03 02:01:00 +0200

Fix sorting describe monster list (?/M)

--------------------------------------------------------------------------------
224852c146 | Pekka Lampila | 2013-12-03 01:47:15 +0200

Add missing include (oops)

--------------------------------------------------------------------------------
5d0fbb196f | Pekka Lampila | 2013-12-03 01:17:50 +0200

Fix Djinnies getting some hunger related messsages

--------------------------------------------------------------------------------
7f6180495c | Samuel Bronson | 2013-12-02 15:52:07 -0500

Note code duplication in maybe_abort_ignite() (ChrisOelmueller)

--------------------------------------------------------------------------------
7eb06c6a87 | Neil Moore | 2013-12-02 13:58:49 -0500

Allow radius_iterator to iterate over the top/left map edge (#7809)
Valid map coordinates fall in the range [0, GXM-1] x [0, GYM-1], but we
were excluding x and y coordinates of zero from the iterator check.
That caused these edges of the map not to be drawn, and probably other
problems.

--------------------------------------------------------------------------------
4339e4d4c4 | Chris Oelmueller | 2013-12-02 07:17:00 -0500

Fix reversed ternary statement
Of course nobody noticed ever since these were introduced, so maybe
this is actually a feature and not a bug... More symmetry with other
potions is not bad though.

--------------------------------------------------------------------------------
254fb5e9a1 | Samuel Bronson | 2013-12-02 01:34:49 -0500

call_gdb(): Fix last commit for older GDB -- oops

--------------------------------------------------------------------------------
4f7e31c2b1 | Samuel Bronson | 2013-12-02 01:29:09 -0500

call_gdb(): Do "show version" before anything else
This is helpful when trying to diagnose problems with the GDB output.

--------------------------------------------------------------------------------
978b6e48b9 | Samuel Bronson | 2013-12-02 00:07:38 -0500

call_gdb(): put flags and their args on the same line

--------------------------------------------------------------------------------
249fea6d6f | Pekka Lampila | 2013-12-02 06:40:20 +0200

Fix another weapon name format error I just added
There was extra " of " for vampiric and anti-magic weapons.

--------------------------------------------------------------------------------
1c59dcc343 | Pekka Lampila | 2013-12-02 06:10:28 +0200

Scroll chat to bottom on send/open

--------------------------------------------------------------------------------
9d18a2da49 | Nabalzbhf | 2013-12-02 06:09:21 +0200

Webtiles chat now only scrolls when at the bottom of the chatbox.

--------------------------------------------------------------------------------
4e2fb71eca | Adam Borowski | 2013-12-02 05:01:40 +0100

Revert "The Slimy Ring of Jiyva"
It broke save compat, and has some other issues, like using a fake ring type
that causes problems with tiles and creating the item in wizmode.

This reverts commit 5ab011e9deb7a9e8b6d522446911319bdea28658.
This reverts commit 2b49d2d24af5cf060a8476369b60fc6d3bbd6fe7.

--------------------------------------------------------------------------------
5ef7575d17 | Pekka Lampila | 2013-12-02 05:50:57 +0200

Fix shop menu not shown after inventory (#7706)
Happened in WebTiles only.

--------------------------------------------------------------------------------
5ab011e9de | Brendan Hickey | 2013-12-01 19:17:55 -0800

Bring Ring of Jiyva in line with rings of MR

--------------------------------------------------------------------------------
2b49d2d24a | Brendan Hickey | 2013-12-01 19:05:51 -0800

The Slimy Ring of Jiyva
An unrand ring: {rMut contam MR}
rMut ceases to function if you murder Jiyva.

--------------------------------------------------------------------------------
d552c381c4 | Pekka Lampila | 2013-12-02 05:00:42 +0200

Fix a weapon name error I just introduced
So no more "flail of ".

--------------------------------------------------------------------------------
4d7fd431a2 | Neil Moore | 2013-12-01 21:57:43 -0500

Don't list potions of slowing in \- (78291)

--------------------------------------------------------------------------------
6e0cc204e1 | Adam Borowski | 2013-12-02 02:36:58 +0100

Make los_def not use virtual methods.
They don't belong in performance sensitive code... and the only other class
derived from los_base just became 404-compliant.

--------------------------------------------------------------------------------
8cdf243305 | Adam Borowski | 2013-12-02 02:34:07 +0100

Drop los_glob.

--------------------------------------------------------------------------------
4eca7f7cfa | Adam Borowski | 2013-12-02 02:31:05 +0100

Drop the now unused circle_iterator.
It turns out it was only an implementation detail of radius_iterator.

--------------------------------------------------------------------------------
186c111b3f | Adam Borowski | 2013-12-02 02:22:08 +0100

Rewrite the radius_iterator.
No rectangle_iterator, no circle_iterator nor circle_def, no los_glob with
an internal radius_iterator then los_base; not even a single multiplication
inside a loop (although the last part is negligibly small compared to a
typical user).

And lookie at this such simple code.  It is simple, without nothing naughty
behind these macros, right?  Right???

--------------------------------------------------------------------------------
6fd8ddcea0 | Adam Borowski | 2013-12-02 02:22:08 +0100

Plug one case that relied on the exact order of radius_iterator.
This plugging is quick and dirty, we can optimize it later.  This part
of the code is performance sensitive.  Even this plugging is much faster
than the old radius_iterator though: it did the full square, did double
squaring for every position in it, etc.

--------------------------------------------------------------------------------
0ffbeb2a50 | Pekka Lampila | 2013-12-02 02:58:29 +0200

Don't prepend " of " in weapon_brand_name

--------------------------------------------------------------------------------
266f92a4cf | Pekka Lampila | 2013-12-02 02:50:23 +0200

Annotate items with terse description of their ego
Purpose of this is allow finding for example helmet of see invisible by
searching for "SInv".

--------------------------------------------------------------------------------
a933582500 | Pekka Lampila | 2013-12-02 02:01:43 +0200

Minor tweak to armour_ego_name/weapon_brand_name
Don't include brackets for the terse version. Easier to add on calling
side when required than to remove when not required.

--------------------------------------------------------------------------------
6f3e6ea69b | Neil Moore | 2013-12-01 15:30:12 -0500

Avoid a beholder/fearmonger crash (#6547)
When removing the last beholder or fearmonger, we could print a message
before setting DUR_MESMERISED|AFRAID to zero.  If that triggered a
redraw of the status area, the inconsistent state would trigger an
assertion.

Now quietly remove the status before messaging about losing the
beholder.

--------------------------------------------------------------------------------
62c0bb9346 | Neil Moore | 2013-12-01 15:30:12 -0500

Enable pooryurik_knight title screen too.
Unlike the others, it was intentionally not enabled (see
0.12-a0-273-g5c8ac43), but since do-it-yourself trunk players have been
seeing it for a while anyway, I think there's no point to keeping it
disabled.

--------------------------------------------------------------------------------
4e756f5a04 | Neil Moore | 2013-12-01 15:30:11 -0500

Enable several splash screens accidentally omitted from builds.
You already saw them if you played from your build directory, so many of
us thought they were already enabled.

--------------------------------------------------------------------------------
31edfb4f21 | Neil Moore | 2013-12-01 15:30:05 -0500

Don't go out-of-bounds in wrapcprintf (#7637)
And constify, lift things out of loops, etc.

--------------------------------------------------------------------------------
a603cdd6d1 | Neil Moore | 2013-12-01 14:39:05 -0500

Simplify.

--------------------------------------------------------------------------------
dc46223bc1 | Brendan Hickey | 2013-12-01 11:06:12 -0800

Smarter Blinkbolt
Don't blink blinkbolt users into lava or other leathal
squares. If blink can't find a place to put the caster,
traverse the lightning path backward until you find a
safe square.

--------------------------------------------------------------------------------
a14febbd76 | Brendan Hickey | 2013-12-01 10:52:30 -0800

Rebalance mid-tier abyss monster weight
Split the weight between some mid-tier abyss monsters:
raiju, smoke demons and that unspellable mutator demon.

--------------------------------------------------------------------------------
06104fcfc0 | Brendan Hickey | 2013-12-01 10:47:43 -0800

Raiju Tweaks: Damage and HD
Adjust Raiju HD upward while nudging its damage downward.
I'd like them to be roughly on par with Smoke Demons. At
the moment, their kills seem to exclusively be low level
abyss knights wandering around when they shouldn't, or
simply incidental to players getting mobbed. This isn't
to say that player kills is a good metric for judging
monsters, but I want to ensure that they're a threat
worth taking seriously.

--------------------------------------------------------------------------------
bab3cc8135 | Brendan Hickey | 2013-12-01 10:38:14 -0800

Remove Nagas from Guardian Serpent bands
There's apparently a push to reduce the number of chaff
nagas from Snake. This removes ordinary nagas from Guardian
bands and replaces them with professional nagas.

This idea comes from HangedMan, so throw vegetables at him
if it isn't to your liking.

--------------------------------------------------------------------------------
6f272ffe4b | Brendan Hickey | 2013-11-30 23:25:22 -0800

Remove Dragonform Knockback
Conceptually knockback is a cool idea. It's consistent with
the monster behavior, it's thematic, it makes you feel like
a tough guy (for about three hits). After that, it starts
to become a massive inconvenience. We could add a kludge to
allow toggling it, but I don't see how this would improve
gameplay.

Monster dragon knockback is mostly useful for blundering
players off of stairs. Since monsters don't stairdance you,
this is mostly useless as a player ability.

Here are a couple of ideas if we want to retain the flavor
of dragons being tough and awesome:
* Knockback _without_ following (perhaps with stun?)
* Stunning
* A chance to do massive damage

--------------------------------------------------------------------------------
1ac6d2f729 | Adam Borowski | 2013-12-01 08:18:41 +0100

Give acid blobs the dragon treatment.
As mindless creatures, them fleeing in the first place was weird.

--------------------------------------------------------------------------------
13c00676f0 | Brendan Hickey | 2013-11-30 22:41:29 -0800

Remove M_FLEES from dragons and drakes
This behavior makes this monsters annoying to fight.
I believe the intention behind this flag is to cause them to step
back and blast you with their breath weapon. In practice this
doesn't happen. Instead the player is forced to run them down. If
you aren't speed 10, this is really no fun.

If we want to put this behavior back in, I strongly recommend
that we modify it so dragons would quit fleeing as soon as they
can get a good blast off at the player.

--------------------------------------------------------------------------------
50d584ee7e | Brendan Hickey | 2013-11-30 22:11:31 -0800

Guardian Serpent Tweaks
Remove word of recall.
Give them a band.

--------------------------------------------------------------------------------
91eb3062e8 | Adam Borowski | 2013-12-01 07:05:10 +0100

Give Invoc a small linear factor too.
So DKs can animate dead at the game start.

--------------------------------------------------------------------------------
069016978b | Adam Borowski | 2013-12-01 07:05:10 +0100

Store unmodified hp as 0.

--------------------------------------------------------------------------------
1ce52bf935 | Adam Borowski | 2013-12-01 06:19:15 +0100

Give hp/mp from Spc/Fgt a linear factor, remove class-based bonuses.
This means your class determines only your starting package, instead of
having permanent effects.  For example, at XL 27 Fgt 27, HuFi had 252 hp,
HuFE 246 -- both now get 249 hp.

The formulas for Fgt and Spc are somewhat flatter now, making the usual
advice to postpone training Fgt until at least level 8 less wise.  Spc has
massive stepdown, so these changes are less pronounced there.

Not sure what to do with Invoc/Evoc.

--------------------------------------------------------------------------------
956abdafcd | Adam Borowski | 2013-12-01 05:51:16 +0100

Give CK same starting hp as other Fgt 3 classes get.
This is a +2 hp buff!

--------------------------------------------------------------------------------
b4074ed9d8 | Adam Borowski | 2013-12-01 05:47:30 +0100

Nerf He starting Invo: 4->3.

--------------------------------------------------------------------------------
7fe58bca19 | Adam Borowski | 2013-12-01 05:42:48 +0100

Don't give Vp and Dg +1 mp beyond their mp apt.

--------------------------------------------------------------------------------
06a8a9bf2f | Adam Borowski | 2013-12-01 05:39:39 +0100

Give primary spellcaters 2 Spc.
It made no sense hybrids like Sk or Wr got more than them.
Wz remain at 3.

--------------------------------------------------------------------------------
9e745da709 | Neil Moore | 2013-11-30 22:41:28 -0500

Don't try to spawn kraken tentacles out of bounds.

--------------------------------------------------------------------------------
79ee531a0e | Adam Borowski | 2013-12-01 03:18:15 +0100

Make the clua console available outside wizmode.
Avoids having to exit the game to edit the config every single time.

Currently, you need to edit the config in the first place to add these
oh-so-obvious runes:
bindkey += [~] CMD_LUA_CONSOLE

--------------------------------------------------------------------------------
a2412da067 | Adam Borowski | 2013-12-01 02:20:36 +0100

Fix ui_random() using the main random generator.

--------------------------------------------------------------------------------
9eb20e42e6 | Chris Campbell | 2013-12-01 01:00:28 +0000

Replace bracers with gloves
Bracers of archery become gloves of archery, and are identified on equip
instead of on sight.

--------------------------------------------------------------------------------
2a3846fe12 | Chris Campbell | 2013-12-01 01:00:26 +0000

Fix magic immune enemies appearing "unaffected" when resisting Bend Time

--------------------------------------------------------------------------------
80e0dd2845 | Adam Borowski | 2013-12-01 01:34:48 +0100

Don't load ghosts if --seed is specified.
Kills the reproducibility.

--------------------------------------------------------------------------------
a3da613822 | Raphael Langella | 2013-12-01 00:03:09 +0100

Tutorial improvements to french translation.

--------------------------------------------------------------------------------
2fe4a5dccc | Raphael Langella | 2013-12-01 00:03:09 +0100

Add a missing tag.

--------------------------------------------------------------------------------
586b741d49 | Raphael Langella | 2013-12-01 00:03:09 +0100

Remove a reference to searching in the rest command description.

--------------------------------------------------------------------------------
6b0f1e84ca | Adam Borowski | 2013-11-30 22:40:16 +0100

Throw the gauntlets.
This reverts commit 7f8b6d85697774a182b3f40aca21e2286d5c32a3.

--------------------------------------------------------------------------------
e1f20ff603 | Pekka Lampila | 2013-11-30 23:36:46 +0200

Fix a crash in equip_name_to_slot

--------------------------------------------------------------------------------
1e49a1b77a | elliptic | 2013-11-30 16:23:31 -0500

Decrease encumbrance for StormDA: 17 -> 15.
To make it more competitive with FDA/plate armour.

--------------------------------------------------------------------------------
4fbcd77ec7 | Neil Moore | 2013-11-30 15:35:53 -0500

Remove another extra space (elliptic)

--------------------------------------------------------------------------------
c06e44e66f | Chris Campbell | 2013-11-30 18:42:19 +0000

Let small species use throwing nets
They could in fact already use them by throwing with F* instead of f, it
seems reasonable to allow them to use nets properly anyway rather than
block them. All gladiators now start with nets, and hunters that pick
throwing weapons also all get nets (small species were in fact already
given nets and had them marked for autopickup, but their nets would then
be deleted on game start since they were marked as useless).

--------------------------------------------------------------------------------
376195314e | Neil Moore | 2013-11-30 12:34:42 -0500

Make dummy monster comments more consistent.
This allows searching for the word "dummy" and more specifically "dummy
genus monster".  Remove ", never spawns" since M_CANT_SPAWN is right
there, and at the end of its line even.  Likewise the name of the genus,
which is on the very next line.

--------------------------------------------------------------------------------
91c53af680 | Neil Moore | 2013-11-30 12:33:51 -0500

Move around genus monster enums on compat bump.
Put the genus-only monsters with the bulk of their members.  This
commit doesn't move any of the newly-added species that might be
out of place.

--------------------------------------------------------------------------------
d0ec0a5c83 | Chris Oelmueller | 2013-11-30 12:33:50 -0500

SNAKE genus (was: ADDER)

--------------------------------------------------------------------------------
45d4b3cc52 | Steve Melenchuk | 2013-11-30 10:12:12 -0700

Dummy balancer for extra vaults.
Currently we have very few extra non-D, non-Depths vaults, and they were
getting spammed.

If/when we add more extra vaults in non-D, non-Depths branches, this
should help stop them from being spammed.

--------------------------------------------------------------------------------
b4cf04c5a3 | Neil Moore | 2013-11-30 11:43:47 -0500

Trim long inscriptions in inventory, handle unicode (#5675)
We were trimming inscriptions to fit only if show_inventory_weights was
on.  The excess was usually being overwritten by the next line, but not
if that line was sufficiently short.

Also, count and trim by width, not bytes, both with and without
show_inventory_weights.

--------------------------------------------------------------------------------
82f56c9d7c | Neil Moore | 2013-11-30 11:06:33 -0500

Improve formatting of recite monster list.
Now that we get a list of who is affected, the parenthetical string in
the book description isn't necessary.  Removing it lets us spend the
space on the monster list.

Also, indent continuation lines of the recite monster list so that
the menu key stands by itself.

--------------------------------------------------------------------------------
9048939726 | Neil Moore | 2013-11-30 11:05:31 -0500

Combine similar monsters in recite list.
This commit also removes the line length restriction; the next commit
will reduce the amount of space required.

--------------------------------------------------------------------------------
2214da51fa | Sandman25 | 2013-11-30 11:04:33 -0500

Display number of affected monsters for recite (Sandman25, #7789)
With formatting cleanup and a few bugfixes related to array size and
initialization.

--------------------------------------------------------------------------------
252c9087c9 | Neil Moore | 2013-11-30 10:56:31 -0500

Add mprf_nojoin().

--------------------------------------------------------------------------------
338e2d3e33 | Neil Moore | 2013-11-30 10:56:31 -0500

Make msgwin_line_length non-static.

--------------------------------------------------------------------------------
0c4d95b344 | Neil Moore | 2013-11-30 10:56:30 -0500

Fix formatting.

--------------------------------------------------------------------------------
192f278052 | elliptic | 2013-11-29 23:44:06 -0500

Apply swiftness on the turn that you step out of water (magicpoints).
And in general, be consistent about checking the destination square terrain
rather than the source square terrain. Previously, the movement penalty for
walking in shallow water looked at the destination square but other factors
looked at the source square.

--------------------------------------------------------------------------------
c4266c0c4a | Neil Moore | 2013-11-29 22:58:29 -0500

Fix a double-spaced message (78291)

--------------------------------------------------------------------------------
8d5ecc13d7 | Neil Moore | 2013-11-29 20:54:25 -0500

Preserve awaken forest ownership on polymorph, too.

--------------------------------------------------------------------------------
3e3869ede0 | Naruni | 2013-11-29 20:51:45 -0500

Ownership of awaken vines after polymorph
Since the polymorph did not copy ENCH_AWAKEN_VINES, the function
void monster_cleanup(monster* mons) from mon-stuff.cc was not told to do
anything about the vines.

--------------------------------------------------------------------------------
3da172073c | Neil Moore | 2013-11-29 20:34:30 -0500

Include a header (geekosaur)
It's needed for access() in the GDB check.  I didn't make it depend
on !defined(DEBUG_DIAGNOSTICS), in case that logic changes.

Non-Windows, non-Unix systems might be a problem, if we supported them.

--------------------------------------------------------------------------------
bc885c9053 | Steve Melenchuk | 2013-11-29 18:30:14 -0700

Don't place serial vaults on encompass levels either (tenofswords).
Some of them already had layout_ tags, meaning they won't place on
encompass vault levels anyway; I've left those alone.

--------------------------------------------------------------------------------
7bcb92e4ff | Steve Melenchuk | 2013-11-29 18:19:31 -0700

Don't place dungeon_decor on encompass vault levels.

--------------------------------------------------------------------------------
6ad42390c3 | Steve Melenchuk | 2013-11-29 18:15:35 -0700

Also drop the "minotaur" and "lab" tags.
The primary vault in Lab is now the minotaur vault; minivaults in Lab
are now taken from minivaults in-depth for Lab.

--------------------------------------------------------------------------------
db379c4e17 | Steve Melenchuk | 2013-11-29 18:15:35 -0700

Remove the "pan" vault tag; improve Pan builder handling of vaults.
The primary vault on a Pan level is now always a pan lord vault, whether
that be a major or minor pan lord. Pan lord vaults thus get ORIENT: tags
(and no extra tag).

This depends on the handling of the previous commit - previously it was
possible for picking a map by depth to return a map tagged "extra"; we
don't want that here.

--------------------------------------------------------------------------------
e4f847d599 | Steve Melenchuk | 2013-11-29 18:15:34 -0700

Rework the "extra" tag for non-minivaults.
Instead of mixing extra vaults in with primary vaults, a primary vault
without the extra tag is placed first, and vaults with ORIENT: tags and
the extra tag are placed last in a manner similar to how abyssal vaults
are handled

Handling of minivaults is unaffected.

This is intended to prevent Depths from placing two huge scary primary
vaults on one level, but it also has handling relevant for upcoming
tweaks to areas of the dungeon currently dependent on tagged vaults.

--------------------------------------------------------------------------------
1e5510f4c6 | Neil Moore | 2013-11-29 20:07:02 -0500

Make room for more unrands.

--------------------------------------------------------------------------------
ab0bbcde68 | Chris Campbell | 2013-11-30 01:01:49 +0000

Allow jellies to split again (#7708)
Previously their maxhp cap when eating items stopped them from being able
to split (unless they ate lots of doors!). Also adds the same maxhp cap
from item-eating to door-eating, also renames base_max to avg_hp, to be a
little less misleading.

--------------------------------------------------------------------------------
7ac3f12e36 | Neil Moore | 2013-11-29 19:47:21 -0500

Correct mons_avg_hp calculation.
We were rounding too early, causing low numbers for monsters with an odd
hit die size (1 HP too low for every 2 HD).

We still round down rather than randomly so the function remains
deterministic.

--------------------------------------------------------------------------------
459e3e1e9a | Raphael Langella | 2013-11-30 00:41:16 +0100

More minor tutorial fixes.

--------------------------------------------------------------------------------
8471a022e7 | Raphael Langella | 2013-11-30 00:41:16 +0100

Delay more prompt until level has finished loading.
Getting a more prompt during level load results in a screen only partially
updated and looking really bugged. It's especially bad since it happened
during loading tutorial levels which is the very first thing many new player
see. It also happened when entering a level with an announce portal. If there
are more cases, I didn't test them.

--------------------------------------------------------------------------------
cf2260f169 | Robert Lund | 2013-11-29 17:16:04 -0500

Add a Sigmund/Edmund minivault.
[Made the weaponry in Edmund's closet more specific. -nfm]

--------------------------------------------------------------------------------
953bfd3936 | Chris Campbell | 2013-11-29 21:37:46 +0000

Don't let statdrain from god wrath bypass sustain ability
Similar to confusion+clarity.

--------------------------------------------------------------------------------
250bfc521e | Neil Moore | 2013-11-29 16:32:12 -0500

Don't try to replace Abyss, Pan entries on the orbrun.

--------------------------------------------------------------------------------
ecd341db79 | Adam Borowski | 2013-11-29 22:27:51 +0100

Allow setting you.gold(x) in dlua.
Even if the game is not in wizmode, like vaults could want to.

--------------------------------------------------------------------------------
49a6c400b1 | Adam Borowski | 2013-11-29 22:21:50 +0100

Don't overload lua you.gold().
It's safer to have the same function be available in clua and dlua, and
allow setting the amount only in wizmode.  This way, we have only C++-like
overloading (number of arguments) but no two distinct versions depending
on which interpreter you're in.

--------------------------------------------------------------------------------
f91b3e456d | Neil Moore | 2013-11-29 16:14:35 -0500

Rename a function for clarity.

--------------------------------------------------------------------------------
178237010a | gammafunk | 2013-11-29 16:08:35 -0500

Allow you.gold to be read in clua

--------------------------------------------------------------------------------
917cfcaed4 | Steve Melenchuk | 2013-11-29 10:40:41 -0700

Changelog through 0.14-a0-1169-g4815781.
Usual disclaimer applies.

--------------------------------------------------------------------------------
48157817a3 | Adam Borowski | 2013-11-29 16:26:52 +0100

Simplify find_newmons_square(), make it not crash.
After the first failure, it kept calling find_newmons_square_near() (and
that in turn radius_iterator) with an invalid starting spot which would
then always fail.

Passing the monster that's to be checked for clouds to inside functions
removes the need to make many random tries.

--------------------------------------------------------------------------------
f5005bf1b3 | Adam Borowski | 2013-11-29 04:26:40 +0100

Check that nothing uses a radius_iterator centered outside the map.
If I'm wrong, please revert.

--------------------------------------------------------------------------------
f87f3a4e41 | Adam Borowski | 2013-11-29 04:26:40 +0100

Drop the rock worm tile.

--------------------------------------------------------------------------------
2db2a32d38 | Steve Melenchuk | 2013-11-28 20:20:52 -0700

Generate a raiju corpse tile.

--------------------------------------------------------------------------------
e003e83a09 | Steve Melenchuk | 2013-11-28 20:15:11 -0700

Correctly pluralise raiju as raiju.

--------------------------------------------------------------------------------
531d946fa3 | Steve Melenchuk | 2013-11-28 20:12:05 -0700

Cap monster summons.
This has most noticeably been an issue with, say, Ilsuiw's water
elementals (or old-and-then-new-again elemental wellsprings) and
Sojobo's air elementals; it tended to get extremely spammy and tedious.

There are some monster spells for which I've set the cap fairly high -
perhaps unnecessarily so; these can be tinkered with as necessary.

--------------------------------------------------------------------------------
4f8b3e73b3 | Adam Borowski | 2013-11-29 03:35:24 +0100

Axe "without limit" from wellspring description.

--------------------------------------------------------------------------------
ce3e2dbb71 | Adam Borowski | 2013-11-29 03:28:04 +0100

Make elemental badsprings summon (via the primal wave) instead of having a band.
That's what DracoOmega suggests.  Should be less annoying now that the
wellspring can get used up.  Also, note that they don't have two separate
spells: their Primal Wave does damage, spawns water and summons the
elementals, all in one package.

--------------------------------------------------------------------------------
5a9b21002b | Adam Borowski | 2013-11-29 02:50:08 +0100

Make wellsprings use their hp as mana for casting their spells (tenofswords).

--------------------------------------------------------------------------------
9cd30e7cf8 | Adam Borowski | 2013-11-29 02:09:58 +0100

Fix a crash on acid splash.

--------------------------------------------------------------------------------
f979edf64d | Adam Borowski | 2013-11-29 02:01:51 +0100

Remove rock worms.

--------------------------------------------------------------------------------
d9be2f7fbd | Adam Borowski | 2013-11-29 01:22:04 +0100

Automated brace removal.

--------------------------------------------------------------------------------
97409c24b3 | Adam Borowski | 2013-11-29 01:22:04 +0100

Fix a warning in optimized builds.

--------------------------------------------------------------------------------
324c14e7dd | elliptic | 2013-11-28 19:20:40 -0500

Add hit_(non)magic(_nomove) functions, rename hit_adjacent to 
hit_closest_nomove.
One issue with the recently added automagic functionality is that it
displaces the regular tab autofight, making it painful to use for characters
who would still like to melee weak monsters.

For now, I'm leaving the default automagic behavior as it is for a bit more
testing and feedback. This commit makes it easier for players to put autofight
and automagic on two different keys, by macroing one to ===hit_nonmagic and
the other to ===hit_magic. (I plan to use tab and capslock, personally.)
There are also non-moving versions at hit_nonmagic_nomove() and
hit_magic_nomove().

For more consistent and correct naming, hit_adjacent() (shift-tab by default)
was renamed to hit_closest_nomove().

--------------------------------------------------------------------------------
384ea2dcbb | Adam Borowski | 2013-11-29 01:16:04 +0100

Unbreak tiles.

--------------------------------------------------------------------------------
43e8c26a32 | Adam Borowski | 2013-11-29 01:07:36 +0100

Drop tagstring.{cc,h}
A whole file for four lines of code.

--------------------------------------------------------------------------------
0fb30d88f3 | Adam Borowski | 2013-11-29 01:07:36 +0100

Don't convert the argument to stop_attack_prompt() back and forth.

--------------------------------------------------------------------------------
ec5babf524 | Adam Borowski | 2013-11-29 01:07:36 +0100

Restrict mpr() to literals only.
The translation project is stalled, but this makes all of such static strings
trivially gatherable without any extra work.

--------------------------------------------------------------------------------
c433d949e7 | Adam Borowski | 2013-11-29 01:07:35 +0100

Remove mpr_nocap().
No particular reason, other than consistency.  And all but two used wasteful
double-conversion, so this is not a speed regression.

--------------------------------------------------------------------------------
dcc0ed19d0 | Adam Borowski | 2013-11-29 01:07:35 +0100

Reverse the order of arguments in mpr_nojoin().
The old one was quite bizarre, inconsistent with mprf().

Only two cases used the default channel (mpr_nojoin() is quite special...),
so I did not add an overload with the default.

--------------------------------------------------------------------------------
f6a14d95cd | Adam Borowski | 2013-11-29 01:07:35 +0100

Remove the multi-argument version of mpr().

--------------------------------------------------------------------------------
5f4ae1ef05 | Adam Borowski | 2013-11-29 01:07:35 +0100

Replace `mpr(s, ch)` with `mprf(ch, s)`
Also simplify quite a few cases.

It turns out in >90% cases of non-literals the argument had .c_str(),
which meant it was pointlessly malloc()ed and converted from and to
std::string.  I believe a sprintf is faster, so even the argument of
miniscule speed-up doesn't apply.

--------------------------------------------------------------------------------
2965f04181 | Adam Borowski | 2013-11-29 01:07:35 +0100

Revert "Replace `mprf(ch, s)` with `mpr(s, ch)`"
It trades readability and consistency for an utterly negligible bit of
speed.  With the amount of further processing mpr() does, a single sprintf
is nothing.

This reverts commit d9dfa8fc9755fb0a4e8954c7eb94f32fe97b82e0.

--------------------------------------------------------------------------------
dbdbaf16e9 | Steve Melenchuk | 2013-11-28 17:06:16 -0700

Place fallback chance tag vaults when main vault is blocked by [l]uniq tag.
This was occasionally causing hellpanabyss entries to not place.

--------------------------------------------------------------------------------
ab3866a3ce | Adam Borowski | 2013-11-29 00:54:58 +0100

Don't produce twice as many zombies on D:12-15.
A quirk of dropping the small/large restriction.

--------------------------------------------------------------------------------
d25e103a22 | Adam Borowski | 2013-11-29 00:54:02 +0100

Correct a comment.

--------------------------------------------------------------------------------
20e051e6ac | Chris Campbell | 2013-11-28 23:00:30 +0000

Clarity breathe flame ability description (magicpoints)

--------------------------------------------------------------------------------
873d284b82 | Chris Campbell | 2013-11-28 23:00:29 +0000

Revert "Remove linesprint (st_)"
This reverts commit ccf31d4db4ab08536c2fa1aaaac39570039dca73.
This reverts commit 9c081e9989210999fec13828c7766572d8f5ccdd.

I have no strong opinion on whether it should be rotatable or not but
hopefully it's possible to come to some agreement on it without removing
the map.

--------------------------------------------------------------------------------
60839e1ffe | Steve Melenchuk | 2013-11-28 13:58:13 -0700

Shatter "The shillelagh engulfs you!"
Don't display engulfs messages for visual beams.

--------------------------------------------------------------------------------
ccf31d4db4 | Neil Moore | 2013-11-28 12:08:07 -0500

Remove linesprint (st_)

--------------------------------------------------------------------------------
9c081e9989 | Rahul Chandra | 2013-11-28 12:02:06 -0500

Orient linesprint horizontally only.
On most console and many tiled displays, there is more map room
horizontally, so this makes it easier to see the relevant area.

--------------------------------------------------------------------------------
4e1645e8c2 | Chris Oelmueller | 2013-11-28 11:16:43 -0500

Can "You die..." message

--------------------------------------------------------------------------------
4f4079f8b0 | Chris Oelmueller | 2013-11-28 11:16:43 -0500

Rename mprnojoin to mpr_nojoin
For consistency with mpr_nocap, mpr_comma_separated_list and friends.

--------------------------------------------------------------------------------
d9dfa8fc97 | Chris Oelmueller | 2013-11-28 11:16:38 -0500

Replace `mprf(ch, s)` with `mpr(s, ch)`
Scripted, then manually reviewed.

--------------------------------------------------------------------------------
72c2b335f2 | Chris Oelmueller | 2013-11-28 11:16:38 -0500

Replace `mprf(s)` with `mpr(s)`
Scripted, then manually reviewed.

--------------------------------------------------------------------------------
13de943e3c | Chris Oelmueller | 2013-11-28 11:16:37 -0500

String semantics

--------------------------------------------------------------------------------
0a690018ae | Chris Oelmueller | 2013-11-28 11:16:37 -0500

Remove hardcoded ENDOFPACK from a message

--------------------------------------------------------------------------------
22d9e7391d | Raphael Langella | 2013-11-28 16:18:47 +0100

Remove double spaces.

--------------------------------------------------------------------------------
d9906b209d | Adam Borowski | 2013-11-28 13:32:04 +0100

Don't waste potions of speed, flight or invis.
Invis can be drank while contaminated which isn't going to do anything good,
but it has a non-zero effect.

--------------------------------------------------------------------------------
258349bf42 | Raphael Langella | 2013-11-28 10:54:37 +0100

Formatting and tag improvements to tutorial.
Especially the end screens. I've tested all 5 of them across the 3 interfaces.

--------------------------------------------------------------------------------
a687c1e5f8 | Raphael Langella | 2013-11-28 10:54:37 +0100

Don't remove double newlines when printing tutorial messages.
And don't strip lines. This should simplify formatting them.

--------------------------------------------------------------------------------
f33295874f | Neil Moore | 2013-11-27 22:28:47 -0500

Fix some anachronisms in the level-building docs (rchandra, HangedMan)

--------------------------------------------------------------------------------
5f33da9013 | Chris Campbell | 2013-11-28 01:05:57 +0000

Don't allow wasting potions of curing/heal wounds while under DDoor

--------------------------------------------------------------------------------
2967930014 | Adam Borowski | 2013-11-27 23:35:20 +0100

Don't give any nutrition for potions other than porridge.
That's a weird gimmick that doesn't seem obvious to players other than those
who came from Nethack.

--------------------------------------------------------------------------------
5d6eb580c3 | Adam Borowski | 2013-11-27 23:35:20 +0100

Abort drinking known potions of a few types when they'd have no effect.
Only a few types of potions for the moment ({cure ,,beneficial }mutation,
berserk, lignify) as I suspect this commit might be reverted.

Mostly, I'd want to hear if this is a good idea.

--------------------------------------------------------------------------------
6191413d03 | Adam Borowski | 2013-11-27 23:35:20 +0100

Don't rot vampires by potions of beneficial mutation.
It had a weird spoily special case of always passing the mutation through if
satiated or higher, explained as convenience (you would need to get fully
tanked to quaff otherwise).  Thus, extend the logic to remove that magic
threshold.

--------------------------------------------------------------------------------
1a54a13a9f | Adam Borowski | 2013-11-27 23:35:19 +0100

Simplify potion quaff-id.

--------------------------------------------------------------------------------
3f9f1092ff | Adam Borowski | 2013-11-27 23:35:19 +0100

Fix gargoyles and black dracs not resuming flight upon ending tree form.

--------------------------------------------------------------------------------
1b66571fcb | Adam Borowski | 2013-11-27 23:35:19 +0100

Make sure potions of lignification don't work in water if you can't permafly.

--------------------------------------------------------------------------------
db05fb10af | Adam Borowski | 2013-11-27 23:35:19 +0100

Axe a bunch of redundant arena sprint renames.
Especially boring ones that come together with an interesting one, such as
the succubus or the witch (a novel name, a set of spells, a desc and a
tile).  It's rare anyone gets that far, so they just watered down better
renames that already compete with regular uniques.

Even with this culling, your chances to meet a succubus are 1/6 for a game
that's already most of its way towards winning.

--------------------------------------------------------------------------------
9f411cca23 | Neil Moore | 2013-11-27 16:21:31 -0500

Show -Swift light in darkgrey while in liquid.

--------------------------------------------------------------------------------
5cc957e5e9 | elliptic | 2013-11-27 15:56:36 -0500

Let more uniques generate on D:14-16.
Azrael, Kirke, Louise, Roxanne, Rupert, and Snorg now generate on D:14-16
instead of Depths, and Snorg also generates on Lair:3-.

--------------------------------------------------------------------------------
67152d2d49 | elliptic | 2013-11-27 15:56:36 -0500

Add comment.

--------------------------------------------------------------------------------
4c3d7924ca | elliptic | 2013-11-27 15:56:35 -0500

Swiftness changes.
A L2 buff that could easily be kept up permanently and gave a very powerful
effect for the entire game was problematic for a few reasons. The stealth
and trapfinding penalties were supposed to help with this, but they didn't
really succeed, so let's try something else.

Now Swiftness has two stages, of equal duration. In the first stage it
decreases movement delay by 25% and in the second stage it increases
movement delay by 50%. This has the effect that the spell is speed-neutral
over the two stages combined if you are moving the entire time, so you
cannot simply use the spell to kite monsters forever. It still provides a
powerful short-term boost to movement speed and the balance between the
two stages can be broken in a few ways, including simply taking more
non-movement actions during the second stage.

Of course, the spell cannot be recast while either stage is in effect.

The penalties to stealth and trapfinding have been removed and the spell
is now castable by Formicids.

--------------------------------------------------------------------------------
ab5b2a2266 | Jason Van | 2013-11-27 13:50:34 -0700

Hell, Pan, Abyss entry vault dampening
 * Function-ify quite a few lines for hell entries and pan entries.
 * Use a luniq tag limiting noticeable threats from one hell/pan/abyss
   themed entry vault per floor, to moderate content use and over-use,
   and limit potential extremes of demon presence in Depths.
Hells
 * Buff lemuel_hellmouth vaults: placing mostly melee-only monsters stuck
   over a lava moat is pretty weak for such late vaults.
 * Only place one huge threat vault per game, if hell entries are going
   to place on every floor of Depths.
 * Three new hell entry vaults, essentially decorative, each based off a hell.
Pan
 * Have a low, depth-scaling-down chance to place almost no demons
   in each entry vault, doubling threat entries as previously-missing
   decorative entries.

--------------------------------------------------------------------------------
88595bdc03 | Neil Moore | 2013-11-27 14:45:24 -0500

Webtiles: allow multiple IP/port combinations.
There is not yet a way to specify a different cert for each SSL address,
but that would be nice.

--------------------------------------------------------------------------------
481a9a3d94 | Raphael Langella | 2013-11-27 16:15:17 +0100

[txc] Improve the wrapping for languages without spaces.
Punctuation is less likely to end up at the beginning of a line (but it still
can happen). Tags are also less likely to be broken.

--------------------------------------------------------------------------------
81894dfcda | Raphael Langella | 2013-11-27 16:15:17 +0100

Formatting improvements and tag fixing in hints.
Also remove an obsolete reference to knives.

--------------------------------------------------------------------------------
4776522910 | Cedor | 2013-11-27 08:07:26 -0500

Give ogre magi their own spellbooks (no functional change).
[Original title: add spell books for ogre mages and removing the special
in spell loading and monster description (replacing first spell by
SPELL_HASTE_OTHER) -neil]

--------------------------------------------------------------------------------
7149c535b5 | Brendan Hickey | 2013-11-26 19:34:20 -0800

Homogenize the Abyss Party Patrol
Draw more abyss spawns from the abyss and fewer from outside the abyss.

--------------------------------------------------------------------------------
2bd4e382d1 | Adam Borowski | 2013-11-27 02:00:10 +0100

Unmark actor::pos() as virtual.
This prevented inlining this trivial function, and it gets called ~15M times
per gprof's virtual second:
  %time              self #called
  0.81      6.25     0.12 160842498     0.00     0.00  actor::pos() const

--------------------------------------------------------------------------------
1d34a95850 | Adam Borowski | 2013-11-27 01:54:40 +0100

Encapsulate clearing monster flags into a function on their own.
Just so it can show up on (unoptimized) profiles.

--------------------------------------------------------------------------------
368921c44c | Adam Borowski | 2013-11-27 01:17:30 +0100

Don't compute slime neighbours on levels with no slime.
2% of a qw profile was spent there.

Might be better to optimize it for levels with actual slime on them as well:
we call set_terrain_changed() which can update slime neighbour counts,
removing the need to compute them repeatedly.  Not doing this right now only
because I'm not sure about all cases vault placement can alter the terrain.

--------------------------------------------------------------------------------
e9f04152f6 | Adam Borowski | 2013-11-27 00:51:03 +0100

Make ENCH_SLEEPY a flag rather an enchantment.
This way it can get cleared a lot faster: we have a loop to remove it from
every monster every turn, which shows up this prominently on qw profiles:

[4]     59.6    0.07   14.57   21662         handle_monsters(bool) [4]
                0.31    9.15 1263185/2072593 monster::del_ench(enchant_type, 
bool, bool)

This commit merely optimizes it without improving the complexity: inventing
some field last_slept could allow setting this only when the monster gets
hibernated.  For now I went the easy but lame way; having the query
encapsulated means a stronger optimization can be done easier.

--------------------------------------------------------------------------------
21bfb98905 | Neil Moore | 2013-11-26 17:38:44 -0500

Fix indentation.

--------------------------------------------------------------------------------
9fb07aff4e | Neil Moore | 2013-11-26 17:08:36 -0500

Don't let Ozo's armour prevent spriggan rider dismountal.
Not that they can actually have Ozo's armour, but still.  To
demonstrate, create a spriggan rider perm_ench:ozocubus_armour and kill
it with fire.

Introduced in 0.13-a0-2683-geefce6b.

--------------------------------------------------------------------------------
40d9199c8a | Neil Moore | 2013-11-26 15:57:49 -0500

Give handle warnings for known-cursed weapons of unknown brand.
Spotted by simmarine.

--------------------------------------------------------------------------------
6369efee3f | Chris Campbell | 2013-11-26 14:55:42 +0000

Remove unused Xom greater demon summoning code
Per #7321, Xom can't ever actually summon holies or greater demons, and
this appears to have been the case for years (9e6fb5de4cf9 is the culprit
as far as I can tell). It might be good to expand Xom's list of summons
from just demons, but it's probably better to just do so from scratch
rather than attempt to re-use ancient code for it.

--------------------------------------------------------------------------------
47d355aaa3 | Chris Campbell | 2013-11-26 14:53:48 +0000

Don't start VM and As with knowledge of potions of poison
It's unlikely to achieve much other than maybe saving a scroll of identify,
unlike Ar's knowledge of scrolls of recharging which is likely to be somewhat
meaningful.

--------------------------------------------------------------------------------
7ffe460e6b | Chris Campbell | 2013-11-26 14:27:50 +0000

Identify starting items before checking them for uselessness
Fixes FoWr being given scrolls of blinking. Still lets them recognise the
item type, which is probably fine but has some slightly weird results in
Sprint and Zotdef (Mummies recognising a bunch of potion types).

--------------------------------------------------------------------------------
94d710e09b | Adam Borowski | 2013-11-26 14:46:23 +0100

Remove runelock tile changes for Depths.

--------------------------------------------------------------------------------
c1815eb64f | Chris Campbell | 2013-11-26 12:53:16 +0000

Remove ?immolation's depth restriction
Read-identifying it is no longer likely to be lethal to low-level characters.

--------------------------------------------------------------------------------
c7db7fc652 | Adam Borowski | 2013-11-26 03:32:45 +0100

Fix a cloud crash during banishment.

--------------------------------------------------------------------------------
6313ea665a | Translators | 2013-11-26 01:05:34 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9a498f0a92 | Raphael Langella | 2013-11-26 01:05:34 +0100

Update descriptions of branches to match the rune lock changes.

--------------------------------------------------------------------------------
a543a73be8 | Raphael Langella | 2013-11-26 01:05:34 +0100

Change <w> tags to <input> in translations.
To follow the change in english (b487bcecc).

--------------------------------------------------------------------------------
cf34ddb410 | Adam Borowski | 2013-11-26 00:27:31 +0100

Ensure that yesno() calls input under HUP at most once.
In some scenarios, injecting a single escape is not enough; this flow
should be race-free now.

--------------------------------------------------------------------------------
e956a16406 | Adam Borowski | 2013-11-25 23:53:02 +0100

Remove sighup_save_and_exit().
As the comment said, every single use of this function was a save-corrupting
bug.

Too bad, there's one case left: on Unix, HUP will fclose(stdin), which can
immediately fail due to fclose() using malloc (free() to be exact), and then
it still relies on undefined behaviour which sometimes works only because
ncurses does weird things behind our back.

--------------------------------------------------------------------------------
c3b6d548cd | Adam Borowski | 2013-11-25 23:49:57 +0100

Unbreak win32 tile builds.
Sadly, if this pseudo-signal ever happens, it will kill a game without saving.

--------------------------------------------------------------------------------
5f077547fa | Adam Borowski | 2013-11-25 23:47:49 +0100

Allow graceful shutdown rather than a forced save (win32 console).
This injects a fake key code into the input stream, making the syscall
return.  The pseudo-signal handler thread will then wait forever (for a
value of "forever" of 15 seconds).

--------------------------------------------------------------------------------
836b35dd65 | Adam Borowski | 2013-11-25 23:40:33 +0100

Hopefully work around recent mingw linking libwinpthread-1.dll dynamically.

--------------------------------------------------------------------------------
2dbd2a41df | Adam Borowski | 2013-11-25 23:35:34 +0100

Allow graceful shutdown rather than a forced save (tiles, Android).
Android is NOT tested!

Also, this will end in an infinite loop if some code keeps asking for input
even though seen_hups is set; yesno() did this until recently.

--------------------------------------------------------------------------------
414e65c01c | Adam Borowski | 2013-11-25 23:04:06 +0100

Fix an infinite loop.

--------------------------------------------------------------------------------
d4e551676c | Adam Borowski | 2013-11-25 22:53:34 +0100

Force a "no" answer when yesno() gets cancelled by a HUP.
This is wrong: if there's indeed no correct default answer, the caller
should reissue the question when the game is loaded.  Not every caller
does, but it seems all cases yet unhandled are:
* unidentified scroll of brand weapon
* unidentified scroll of ID/EA/charging
* any scroll of ID on 2nd or 3rd item

It's likely the player will start thinking, read learndb/spoilers, etc,
when he gets branding, which can result in a HUP -- but that's still
better than corrupting saves and/or allowing cheats.

--------------------------------------------------------------------------------
0297d166fd | Adam Borowski | 2013-11-25 22:53:34 +0100

Give a number of yesno() prompts default answers for HUP.

--------------------------------------------------------------------------------
3f44feb22f | Adam Borowski | 2013-11-25 22:53:34 +0100

Replace the quote for substantial wisps.
Less fitting than the old one, except for the wee detail of the old one
being in a language hardly anyone knows.  I can't translate poetry myself,
sorry.

(There's a technical reason: due to transifex problems, you can't have
a quote in non-.en without .en existing.)

--------------------------------------------------------------------------------
e125b20745 | Adam Borowski | 2013-11-25 17:43:49 +0100

Shorten DNGN_ENTER_FOO/DNGN_RETURN_FROM_FOO enums.

--------------------------------------------------------------------------------
35a38c2467 | Adam Borowski | 2013-11-25 15:44:53 +0100

Repair saves with abyssal guests from a negative depth.

--------------------------------------------------------------------------------
7e585a6e74 | Neil Moore | 2013-11-25 09:37:22 -0500

Correct abyssal guest level picking formula.
The old formula chose Branch:0 starting on Abyss:3 (or earlier for
shallow branches), and divided by zero immediately on entering Abyss:5.
Make the formula match the comment: linearly interpolate between
Branch:⌈brlen/2⌉ at Abyss:1 and Branch:brlen at Abyss:5.

--------------------------------------------------------------------------------
1ee9a7d778 | Raphael Langella | 2013-11-25 11:35:16 +0100

Fix the Vaults entry range in the description.

--------------------------------------------------------------------------------
bc7b35dd03 | Raphael Langella | 2013-11-25 11:35:16 +0100

Apply Vaults entrance rename to translations.

--------------------------------------------------------------------------------
f6a708389a | Chris Campbell | 2013-11-25 10:30:33 +0000

Remove some unnecessary runed doors
Mostly from ossuaries. Also remove a couple of Lua restrict_door()s in Pan.

--------------------------------------------------------------------------------
ab1a9ec703 | Chris Campbell | 2013-11-25 10:30:31 +0000

Remove unnecessary/unintentional permarock from some vaults

--------------------------------------------------------------------------------
ee4852e1cc | Steve Melenchuk | 2013-11-24 22:17:05 -0700

Have ENCH_BREATH_WEAPON interrupt / prevent Word of Recall.
Also add ENCH_BREATH_WEAPON after using Word of Recall.

It's a long recitation; similar to the player's use of Recite it makes
sense for it to wind the caster.

The two immediate gameplay impacts are that 1) it can't be spammed (if
a monster capable of doing so ever comes into existence) and 2) curare
interrupts Word of Recall.

--------------------------------------------------------------------------------
8467a6141c | Steve Melenchuk | 2013-11-24 22:17:05 -0700

Do away with a magic number in vault sentinel's horn code.
BASELINE_DELAY == 10; I'm assuming that's what was meant here.

--------------------------------------------------------------------------------
835b84a066 | Steve Melenchuk | 2013-11-24 22:17:05 -0700

Fix curare's breath weapon duration against monsters.
It was out by a factor of 10.

--------------------------------------------------------------------------------
a37dd589bb | Adam Borowski | 2013-11-25 05:11:38 +0100

Implement adjacent_iterator on its own, rather than via radius_iterator.
This hardly speeds up things, which I did not know as profile runs did not
help to tell these two apart and it turns out adjacent_iterator is not that
prominent...  but hey, a 0.1% speedup for two pages of code might still be
better committed than not.

This speedup might disappear when I get around to the actual rewrite of
radius_iterator, though.

--------------------------------------------------------------------------------
24c2e89fad | Adam Borowski | 2013-11-25 03:31:16 +0100

Refactor an abuse of goto.
Sometimes, Dijkstra is right.

This fixes water count being used for laval placement.

--------------------------------------------------------------------------------
12db857025 | Adam Borowski | 2013-11-25 03:16:35 +0100

Simplify, optimize and fix liquid counting.
Open sea and mangroves are not eligible for water monsters, yet they did
increase the number of fish.

--------------------------------------------------------------------------------
f337e59f1d | Adam Borowski | 2013-11-25 03:09:50 +0100

Don't recompile world when random-pick.h gets changed.
Also, drop one copy of monster distribution data.

--------------------------------------------------------------------------------
9b633406da | Adam Borowski | 2013-11-25 02:04:07 +0100

A primitive picker for Abyss guest monsters.
The data hasn't seen much thought, as we probably need explicit branch:depth
pairs.  This could be done for example as strings "Bedlam:3", lamely parsed
at runtime...  or perhaps a full-blown Zig-like list that just happens to
have "place:" prepended to the first entry, and can include just anything
including completely made-up monster sets.  Not sure what would be best.

--------------------------------------------------------------------------------
91acb9d46d | Adam Borowski | 2013-11-25 01:59:05 +0100

Allow the random picker to choose enums with a valid value of 0.

--------------------------------------------------------------------------------
1f2cbd1482 | Neil Moore | 2013-11-24 17:12:44 -0500

Display RING_AMULET in % screen (#7781).
We were displaying it only for octopodes.

--------------------------------------------------------------------------------
4efae8f9df | Adam Borowski | 2013-11-24 22:11:16 +0100

db_lint: check @foo@ in monspeak-like databases.

--------------------------------------------------------------------------------
f95827a63a | Adam Borowski | 2013-11-24 21:26:19 +0100

Fix a forward save bump issue.

--------------------------------------------------------------------------------
2260632073 | Adam Borowski | 2013-11-24 21:25:09 +0100

Give evokeable abilities more enum room.

--------------------------------------------------------------------------------
c82e013c2e | Adam Borowski | 2013-11-24 21:25:09 +0100

Shorten some compat code.

--------------------------------------------------------------------------------
6d2ef39287 | Adam Borowski | 2013-11-24 21:25:09 +0100

Sort item.txt and quotes.txt
We keep only a few descript files sorted, but as these two were sorted
save for some regressions (mostly due to renames), we may as well keep
them sorted.

This commit moves the comments of two cases until after the header, which
feels awkward but lets util/descript-sort.pl handle it automatically.

--------------------------------------------------------------------------------
2968064d20 | Chris Campbell | 2013-11-24 20:16:34 +0000

Fix enchantments going through bushes (xw)

--------------------------------------------------------------------------------
e7fcb48164 | Jason Van | 2013-11-24 20:29:20 +0100

Sort out float.des
Solely code re-organization here, no conscious content changes.
Split the vaults like mini_monsters.des and mini_features.des,
using the split of large_abstract.des and large_themed.des.
Additionally, update some comments and headers.

--------------------------------------------------------------------------------
25d357c349 | Adam Borowski | 2013-11-24 20:29:19 +0100

Simplify away an argument.
The only reason to get away from identifying clarity is it not giving a
message when it fails.

--------------------------------------------------------------------------------
06c1ea6c66 | Adam Borowski | 2013-11-24 20:29:19 +0100

Don't let some sources confuse you through clarity.

--------------------------------------------------------------------------------
61e6cea48e | Adam Borowski | 2013-11-24 20:29:19 +0100

Revert "Make confusion from overwhelming wrath irresistible"
Cases ignoring clarity are compatibility with what appears to be old
unintentional behaviour, that has somehow been kept over a refactoring.

This reverts commit 00c39a0b14c22ffd8c94ac43178b715eac614cc8.

--------------------------------------------------------------------------------
fe8841e97c | Chris Campbell | 2013-11-24 17:58:35 +0000

Fix quaffing potion of lignification not being chaotic
Zin just blocks it a lot of the time anyway, though - probably he
shouldn't block intentional transformations (but simply checking
involuntary doesn't work currently as monster zaps of polymorph aren't
marked as involuntary).

--------------------------------------------------------------------------------
6fb51a068c | Adam Borowski | 2013-11-24 18:12:48 +0100

An .en quote for gourmand.
(A different one that the .pl one I just added.)

--------------------------------------------------------------------------------
9dcb54afaa | Adam Borowski | 2013-11-24 18:12:48 +0100

Re-add a quote, lost during a transifex sync.
Looks like there are still problems with quotes in languages other than
English.

--------------------------------------------------------------------------------
8827f8c2f8 | Adam Borowski | 2013-11-24 18:12:48 +0100

A .pl quote for gourmand.

--------------------------------------------------------------------------------
26789ad4b5 | Adam Borowski | 2013-11-24 18:12:48 +0100

Drop an untranslated part of a quote.
The original has no special place in English-speaking culture.  And even
"lasciate ogne speranza" which does is included no more.

--------------------------------------------------------------------------------
ca664d9f73 | Adam Borowski | 2013-11-24 18:13:13 +0100

Teach db_lint about sealed big doors.

--------------------------------------------------------------------------------
5bb11d7f7d | Adam Borowski | 2013-11-24 18:13:13 +0100

Fix descs for sealed gates.

--------------------------------------------------------------------------------
837ca82679 | Jason Van | 2013-11-24 11:31:27 -0500

Edit Depths entries to connect better to Depths, add new ones
Depths entry vaults should be iconic warnings, representative of
the high jump in difficulty beyond the stairs and the end of
D. Monsters chosen should directly represent the Depths monster set,
and consistent high threats are acceptable for D:16 (and D:$) vaults.

List of changes
 * grunt_enter_depths_snipers:
    Replace the vault guard with a yaktaur captain or frost giant;
    Vaults has no connections to Depths anymore. Also, reduce the
    moat gimmick, allowing trivial exclusion and escape is boring.
 * grunt_enter_depths_giant_problem:
    Replace the stone giant with a fire giant, since it's very easy
    to make the stone giant run out of ammo here. Also, make the lava
    randomization prettier, and lower the weight due to the danger/gimmick.
 * grunt_enter_depths_hoard:
    Place two dragons instead of merely one,
    to be more distinct from other dragon vaults.
 * grunt_enter_depths_magical_seal:
    Somewhat buff up the monster set involved.
 * gammafunk_enter_depths_forms, _critters:
    Somewhat combine the two vaults, since Depths has almost none
    of the monsters from _critters, and place a glowing shapeshifter.
 * gammafunk_enter_depths_grave:
    Lower numbers of low/middle tier threats, emphasize dangerous
    Depths undead, use place:Depths:1 zombies over [place:D:16] zombies.
 * Cut kb_enter_depths_archers, there's too much design overlap with
   other entries and too little connection to Depths
   (much less any arguments over the validity or use of vault renames).
 * Two new entries, focused on wide representations of Depths monster set.

--------------------------------------------------------------------------------
e41e28fcfc | Neil Moore | 2013-11-24 11:29:53 -0500

Mark a decorative branch entry vault 'extra' (HangedMan)

--------------------------------------------------------------------------------
6c4a90e7ed | Chris Campbell | 2013-11-24 16:22:38 +0000

Don't give bonus resistances when in treeform with Fedhas
It's a very niche bonus and doesn't add much other than unneccessary
complication.

--------------------------------------------------------------------------------
f05d7b75ba | Chris Campbell | 2013-11-24 12:02:37 +0000

Allow training invocations immediately when converting to Chei (#7766)
A better solution to this would be to always allow training Invocations
when worshipping a god that uses the skill at all.

--------------------------------------------------------------------------------
96e2680ce7 | Chris Campbell | 2013-11-24 11:52:22 +0000

Cap Xom player confusion at 20 turns
20 is still a pretty huge amount, but it's more reasonable than the
previous potential of upwards of 30-40 turns (or more in extreme cases).

--------------------------------------------------------------------------------
04be65d049 | Chris Campbell | 2013-11-24 11:48:20 +0000

Remove the small chance of draining strength when spawning Jiyva jellies

--------------------------------------------------------------------------------
00c39a0b14 | Chris Campbell | 2013-11-24 11:46:17 +0000

Make confusion from overwhelming wrath irresistible
Lots of existing wrath confusion effects already ignore clarity, so it
seems reasonable that overwhelming wrath effects would do also.

--------------------------------------------------------------------------------
091dd8e013 | Chris Campbell | 2013-11-24 11:43:00 +0000

Make Xom respect clarity and sustain abilities (when not feeling nasty)
He can still ignore them when bored or during penance. Also fixes the
message order when confusing the player (Xom speaks before the confusion
happens).

--------------------------------------------------------------------------------
2d99d80e7e | Chris Campbell | 2013-11-24 10:52:41 +0000

Further adjustments to % screen
Spread out the columns a little more, fix gourmand display, adjust some
colours, display Stasis/-Tele before NoCast, don't display silence.

--------------------------------------------------------------------------------
2f644b869b | Chris Oelmueller | 2013-11-24 09:56:41 +0000

Relayout resistance section in % screen
First two columns feel a bit more terse now. Second column regrouped.
rRot moved to second column (only one level, pretty meaningless).
Flight removed - there are status lights for it that work better.

Rename many properties and resistances for more alignment.
However instead of `-Tele` and `-Cast` use `NoTele` and `NoCast`.

A great match for the clarity line would be showing *Rage as well,
but unfortunately there seems to be no good interface of polling
whether the player is under the influence of *Rage currently.

--------------------------------------------------------------------------------
657136525a | gammafunk | 2013-11-24 09:44:23 +0000

Make player confusion affect all targeted evocables.
All damaging targeted evocables now have target fuzzing when the player is
confused.  This commit adds target fuzzing to the lamp of fire, phial of floods,
and the targeted damage cards from the deck of destruction.  Also, the warp card
now always does a random blink when the player is confused.

--------------------------------------------------------------------------------
51a1bb2589 | Chris Campbell | 2013-11-24 08:58:37 +0000

Remove the moat from an Elf vault
It mostly just makes it easier to escape from the vault without being chased
by high-level elves.

--------------------------------------------------------------------------------
f56133eba9 | Brendan Hickey | 2013-11-23 23:56:06 -0800

Autumnal Forest Stairs
A simple autumnal forest stair vault.

--------------------------------------------------------------------------------
6cac21b58b | Brendan Hickey | 2013-11-23 19:33:00 -0800

Abyss: Up weight Raiju. Down weight Smoke demons.

--------------------------------------------------------------------------------
c50bab28f8 | Steve Melenchuk | 2013-11-23 10:52:36 -0700

Move a misplaced monster description.

--------------------------------------------------------------------------------
eb01a0e98a | Chris Campbell | 2013-11-23 09:30:52 +0000

Improve Ozo's failure message for too-heavy armour

--------------------------------------------------------------------------------
0f4db457db | Chris Campbell | 2013-11-23 09:25:52 +0000

Increase mottled dragon armour's encumbrance rating from 4 to 5
Making it incompatible with Ozo's armour.

--------------------------------------------------------------------------------
cdd98c7d42 | Chris Campbell | 2013-11-23 09:17:01 +0000

Move the threshold for "light armour" (for Ozo's) from 6 to 5 encumbrance
This doesn't actually change any armours (yet).

--------------------------------------------------------------------------------
234db21c60 | Chris Campbell | 2013-11-23 09:15:46 +0000

Update dire flail desc to not refer to spiked flails

--------------------------------------------------------------------------------
d483a8c166 | Chris Campbell | 2013-11-23 09:00:04 +0000

Remove an obsolete absdepth check

--------------------------------------------------------------------------------
9530a8b1e7 | elliptic | 2013-11-22 23:08:58 -0500

Add a comment.

--------------------------------------------------------------------------------
fdf79a466c | elliptic | 2013-11-22 22:56:00 -0500

Decrease Gr mutation spam, modify Gr GDR formula.
They had too many mutations of marginal utility, so remove a few that are
less controversial than rElec: fangs 1 (very little damage), talons 2 (does
nothing while wearing boots anyway), slow metab 1.

Also use a more sane formula for their extra GDR: now their GDR is calculated
by treating their body armour as if the base AC value is 5 higher, which
means that the average damage prevented by the extra GDR is the same with
light armour and with heavy armour.

--------------------------------------------------------------------------------
0e3b38cc2f | Neil Moore | 2013-11-22 22:11:53 -0500

Make sure a vault gets an exit.
bh spotted hallowed_hall disconnected from the rest of the level, with
what is in the MAP its south edge touching the main part of the level.
Tag it mini_float so it gets an exit

--------------------------------------------------------------------------------
f9e557e47b | Neil Moore | 2013-11-22 21:13:28 -0500

Fix grammar.

--------------------------------------------------------------------------------
ab67fc790f | Neil Moore | 2013-11-22 21:07:32 -0500

Fix DUR_TROGS_HAND save-compat code.
The code to fix up ATTR_DIVINE_REGENERATION and DUR_REGENERATION to
the new DUR_TROGS_HAND was apparently misplaced: it was in the
marshalling, not unmarshalling, code, and after the old values were
already saved.

--------------------------------------------------------------------------------
a17482e05f | Neil Moore | 2013-11-22 21:05:52 -0500

Fix formatting.
I'm not convinced we should allow do-while loops without braces, but
util/unbrace wants to remove them, and we do already have some braceless
do-whiles.

Also fix some stray spaces I added.

--------------------------------------------------------------------------------
91473d18da | Adam Borowski | 2013-11-23 00:19:08 +0100

Merge branch 'wood'.

--------------------------------------------------------------------------------
929393845b | Adam Borowski | 2013-11-23 00:18:45 +0100

Axe obsolete remarks in weapon description.
They referred to either 1.5-handedness or throwing.

--------------------------------------------------------------------------------
5880830917 | Neil Moore | 2013-11-22 18:16:30 -0500

Fix chimera enchantments, including summon duration.
We were calling define_monster from ghost_demon::init_chimera,
which cleared things like the ENCH_ABJ set by mark_summoned.

Chimeras from box of beasts are now considered summoned again, as was
intended.

--------------------------------------------------------------------------------
b5770a5f2a | Chris Campbell | 2013-11-22 22:59:14 +0000

Reduce Bolt of Draining to level 5
It does less damage than the elemental bolts, in addition to being a much
more awkward combination of spell schools.

--------------------------------------------------------------------------------
7bac31ae84 | Neil Moore | 2013-11-22 16:11:32 -0500

Remove an error-prone dice_def constructor.
It had a constructor with two optional ints, defaulting to zero.
Unfortunately, since we can't rely on C++11's explicit keyword,
this meant that  dice_def foo = 7;  would "work", rolling 7d0.
The user probably expected 7d1, but rather than doing that just
remove the argument defaults altogether, and add a separate
default constructor.

One replaced call used beam.damage = INSTANT_DEATH as a "convenient
non-zero", but since INSTANT_DEATH is negative, even something like
dice_def(INSTANT_DEATH, 1) would result in a negative roll.  Use
42d1 instead.

--------------------------------------------------------------------------------
1a95c093fc | Neil Moore | 2013-11-22 16:10:36 -0500

Fix friendly IOODs again.
They were broken by 0.13-a0-2954-g31530a2.  bolt::damage is a dice_def,
so assigning 42 to it calls dice_def::dice_def(42), which made the
damage 42d0.  No damage from the tracer meant no attempts to fire.
Change the damage to 42d1 instead.

Thanks for crate for noticing the problem.

--------------------------------------------------------------------------------
027cf9e959 | Neil Moore | 2013-11-22 11:36:39 -0500

Apply item override colours to revealed mimics.
To prevent the mimic changing colours when it is revealed, have the
monster take the colour of the item_glyph override if one is present.
The mimic still won't track changes glyph colours *after* it is
revealed, but players usually don't change those in game.

--------------------------------------------------------------------------------
a8d7b1d2c6 | Chris Campbell | 2013-11-22 14:34:53 +0000

Revert "Add Prince Ribbit Vault"
I haven't actually looked at this properly, was pushed accidentally.

This reverts commit 1096e78e9e313481be161d00d84d80c2bb60b4d6.

--------------------------------------------------------------------------------
0c13c09abb | Chris Campbell | 2013-11-22 14:33:21 +0000

Clarify the help line for toggling between descriptions/quotes

--------------------------------------------------------------------------------
1096e78e9e | Padre Antonio Soler | 2013-11-22 10:15:38 +0000

Add Prince Ribbit Vault

--------------------------------------------------------------------------------
acdcbbebe0 | blackcustard | 2013-11-22 00:17:46 -0500

Fix an unlinked items bug with corruption and door sealing.
move_items in items.cc was mishandling the special case in which the
source square is empty. In this case, it would delink all the items in the
destination square.

There are several parts of the code that call move_items, but only the
corruption code and the vault warden door sealing code call it without
first ensuring there are items to move.

To trigger this bug: 1. Use corruption in such a way that a monster standing
on an empty square gets displaced by a forming wall onto a square with an
item in it. 2. Stand on a door, make sure there are no items under you,
have the warden seal the door, displacing you onto an item.

--------------------------------------------------------------------------------
34c03c4652 | blackcustard | 2013-11-22 00:17:46 -0500

Fix runed door hint. It was never being triggered.

--------------------------------------------------------------------------------
8a45347cdd | blackcustard | 2013-11-22 00:17:45 -0500

Fix an old and harmless mistake.
There is no point in testing the same conditional three times. This
weirdness appears to be an artefact of an earlier change: no one noticed
that the loop body had become independent of the loop index.

--------------------------------------------------------------------------------
846501a2c2 | blackcustard | 2013-11-22 00:17:45 -0500

Do not stash track sealed staircases.

--------------------------------------------------------------------------------
af334cebb3 | blackcustard | 2013-11-22 00:16:11 -0500

Remove "convenience" function connected_doors.
At one time, before runed doors were added, connected_doors was almost
nice shorthand for find_connected_identical(position, DNGN_CLOSED_DOOR,
all_door). Now its just a pointless and inconsistently applied layer of
indirection.

Also refactor find_connected_identical a bit.

[Also updated the remaining f_c_i calls to the new parameter list,
 and made the _f_c_i helper static. -neil]

--------------------------------------------------------------------------------
b7b8715484 | blackcustard | 2013-11-22 00:02:22 -0500

Add feature descriptions for sealed gates.

--------------------------------------------------------------------------------
dedc6d8c29 | blackcustard | 2013-11-22 00:02:22 -0500

Let shoals tides lap past all closed doors sometimes.
For consistency. This code predates runed and sealed doors.

--------------------------------------------------------------------------------
96fe80a086 | Steve Melenchuk | 2013-11-21 20:29:54 -0700

Equip minotaurs that naturally appear outside of labyrinths.
They appear as mercenaries, in a handful of vaults and are currently
spawning in Depths; in those circumstances, you'd expect them to bring
their own combat equipment.

Right now they're equipped similarly to orc warlords, vault wardens, and
other high-tier equipment-using monsters, though this borrows the idea
originating in a2e80fb to occasionally give them a rod to use (as though
they picked it up in a labyrinth). It is really low weight right now and
might go away entirely if it doesn't prove to be very interesting and/or
generates too many rods to balance their power.

--------------------------------------------------------------------------------
c9c1fed040 | Adam Borowski | 2013-11-22 03:18:10 +0100

Finish degateization of Depths stairs.

--------------------------------------------------------------------------------
353527ff44 | Adam Borowski | 2013-11-22 03:04:08 +0100

Make fire bats a bit more adequate.

--------------------------------------------------------------------------------
d0a9304e0f | Steve Melenchuk | 2013-11-21 18:55:11 -0700

Fill in diagonal empty spaces on grunt_zot_entry_funnels.
This was causing strange issues with layout_basic (fixed in the previous
two commits, but adjusting the vault still strikes me as a good idea).

--------------------------------------------------------------------------------
a2f29cb57b | Steve Melenchuk | 2013-11-21 18:53:57 -0700

Don't try to _make_trail from a boxed-in start location.

--------------------------------------------------------------------------------
02ba3863ce | Adam Borowski | 2013-11-22 02:45:31 +0100

Let _make_trail() fail if it painted itself into a corner.

--------------------------------------------------------------------------------
2ade8afc15 | Adam Borowski | 2013-11-22 01:24:47 +0100

Fix some more absdepth issues in hangedman_pleasuredromes.
I should have checked other depths as well.

--------------------------------------------------------------------------------
0bc0d71566 | Adam Borowski | 2013-11-22 01:13:07 +0100

Fix an off-by-1 assert failure.
It's ok to have exactly MAX_MONSTERS there, it just means the table is full.

--------------------------------------------------------------------------------
425ad7ff8e | Adam Borowski | 2013-11-22 01:01:49 +0100

Axe an obsolete comment.

--------------------------------------------------------------------------------
0cd0df5e57 | Adam Borowski | 2013-11-22 00:51:15 +0100

Fix a lua crash in hangedman_pleasuredromes.
One reference used in-branch depth, the other absdepth, and they got out of
sync.  Before, this clause matched -D:20.

--------------------------------------------------------------------------------
da701410d9 | Adam Borowski | 2013-11-22 00:21:28 +0100

Move Sojobo from D:20- to Depths.

--------------------------------------------------------------------------------
a90c1d6a1a | Chris Campbell | 2013-11-21 06:46:05 +0000

Improve some status messages for Jiyva's jelly paralyse ability

--------------------------------------------------------------------------------
e43bbd017f | Chris Campbell | 2013-11-21 06:07:25 +0000

Don't use invocations skill for Jiyva abilities
Slimify was the only ability that used it for anything other than success
rate, and even then power was only of very marginal use and more than a
few points of invocation was never necessary. Base success rate and
slimify power on piety instead.

--------------------------------------------------------------------------------
c8002fabcd | Neil Moore | 2013-11-20 22:44:55 -0500

Remove IOOD from the correct book (doh)
This reverts commit 99e57c105cffc2f381a9b3517fa39663075e3959.

--------------------------------------------------------------------------------
24727acb54 | Jason Van | 2013-11-21 01:29:46 +0100

Balance Vaults entry vaults
Since V is the new owner of the rune lock, and has a narrow,
earlier depth, avoid some of the meanest of spawns sometimes,
but make sure there's always something of interest nearby.
(Also, do a little code clean-up.)

--------------------------------------------------------------------------------
a4c5d349fc | Jason Van | 2013-11-21 01:29:46 +0100

Standardize plain human, elf, draconian monsters
The randomized HD and defenses were bizarre and pointless,
especially since it doesn't even hide shapeshifter HD anymore.
Give said plain human, elf, and draconian monsters an average
slightly higher than before, for all the silly vaults using them.

--------------------------------------------------------------------------------
a1c863488b | Adam Borowski | 2013-11-21 01:13:08 +0100

Clean up the mid cache during failed attempts to place a monster.
Looks like all of those cases are impossible except for spectral weapon
creation failing due to the item limit being exceeded, but I plugged them
as well just in case.

--------------------------------------------------------------------------------
12c7133bd1 | Adam Borowski | 2013-11-21 01:13:08 +0100

An extra debug #define.
Might be good to make this switchable via &^Q, although that can't be
currently toggled other than manually, and my workflow has automated crash
reproducers that don't take input.

--------------------------------------------------------------------------------
d68e619434 | Adam Borowski | 2013-11-21 01:13:08 +0100

Make a few mid cache asserts more informative.

--------------------------------------------------------------------------------
0673ff4bca | Adam Borowski | 2013-11-21 01:06:04 +0100

Don't allow monsters to be submerged without ENCH_SUBMERGED.

--------------------------------------------------------------------------------
84c9a0c45f | Adam Borowski | 2013-11-20 23:54:42 +0100

Fix cmdline --gdb not working outside of --test and friends.
It can't be stored in the options struct, as it's re-initialized when a game
starts, overwriting whatever came from the command line.

--------------------------------------------------------------------------------
c13c245893 | Adam Borowski | 2013-11-20 23:54:41 +0100

Drop a literal.
It may break if we add 256 colour support.

--------------------------------------------------------------------------------
5c1a9190c6 | Adam Borowski | 2013-11-20 23:54:41 +0100

Don't claim that tome of destruction explosion is "immolation".

--------------------------------------------------------------------------------
9a7e074a0e | Neil Moore | 2013-11-20 17:37:52 -0500

Allow setting negative or zero base stats with &@ (#7761)
You can still set them to any value that fits in an int8_t [-128, 127].
The *modified* stat can never exceed 72, but there is no such cap on the
low end.

--------------------------------------------------------------------------------
99e57c105c | Neil Moore | 2013-11-20 17:17:43 -0500

Remove IOOD from Annihilations.
It was the only rare-book spell that also occurred in an easy book,
since it was added to Book of Power in 0.8.0-a0-5883-gf4d2e18.

--------------------------------------------------------------------------------
294aa0f187 | Adam Borowski | 2013-11-20 23:12:35 +0100

Poof revenant's summons spawned via ghostly flames upon summoner's death.

--------------------------------------------------------------------------------
edbe3ab0d4 | Adam Borowski | 2013-11-20 22:55:05 +0100

Fix dragon slaying not working on drakes.

--------------------------------------------------------------------------------
a15c02f519 | Adam Borowski | 2013-11-20 22:21:21 +0100

A Depths entry vault.

--------------------------------------------------------------------------------
d00f1ea6e2 | Adam Borowski | 2013-11-20 21:16:27 +0100

Purge some now-unused blood id code.

--------------------------------------------------------------------------------
1111ebd27a | Adam Borowski | 2013-11-20 21:11:30 +0100

Make potions of blood and porridge always identified.
Them having obvious descriptions was a spoily thing.

--------------------------------------------------------------------------------
cc527f1a84 | Adam Borowski | 2013-11-20 21:00:48 +0100

Allow temperature giants to have items not at +0,+0.
They go through the normal generation, which can make them enchanted
or possibly cursed.  The brand is still fixed.

--------------------------------------------------------------------------------
9bdcb065fc | Adam Borowski | 2013-11-20 20:50:05 +0100

Pre-identify the blood potion held by monster vampires.

--------------------------------------------------------------------------------
2d28b4919d | Adam Borowski | 2013-11-20 20:37:57 +0100

Give a nazi medal to /dev/null.

--------------------------------------------------------------------------------
9995aa1960 | Adam Borowski | 2013-11-20 20:37:35 +0100

Push the "O harder than L" thing.

--------------------------------------------------------------------------------
0df41456e2 | Adam Borowski | 2013-11-20 20:30:35 +0100

Limit the Lair entrance to D:8-11.
There's a huge difference between D:8 Lair and D:13 one.

--------------------------------------------------------------------------------
a976ef1a13 | Adam Borowski | 2013-11-20 20:28:22 +0100

Move the rune lock to Vaults rather than Depths.
I can't quite fathom the reason to not moving it to /dev/null instead, but
here you go.

--------------------------------------------------------------------------------
ad36ceb063 | Adam Borowski | 2013-11-20 20:19:47 +0100

Move the Vaults entrance to D:14-15.

--------------------------------------------------------------------------------
283eb99bda | Adam Borowski | 2013-11-20 20:14:08 +0100

Don't claim that Vaults spawn on D:2-6.
In transferred saves, we don't have information about the depth range used,
so the range comes from the current version of the game -- ie, it describes
what would happen if you started a new game right now.  On the other hand,
the parent branch came from the old version.  Be consistent and knowingly
provide false data -- this is less jarring than being truthful for the
branch but wrong about depths.

--------------------------------------------------------------------------------
ad4f7579b7 | Adam Borowski | 2013-11-20 19:33:40 +0100

De-woodify the enum.

--------------------------------------------------------------------------------
27e6458ec4 | Adam Borowski | 2013-11-20 19:31:53 +0100

Generate potions of wood^Wlignification instead of slowing.
The potion itself is used for several purposes (card, fountains, wand of
slowing) so I'm not removing the enum yet.

--------------------------------------------------------------------------------
fd8a13e96d | Adam Borowski | 2013-11-20 19:22:06 +0100

Drop a no longer true comment.

--------------------------------------------------------------------------------
bce0512081 | Chris Campbell | 2013-11-20 14:38:44 +0000

Make Chei's Bend Time available from 0* piety

--------------------------------------------------------------------------------
88b8fadeb8 | Adam Borowski | 2013-11-20 12:35:04 +0100

Drop the tree form slowdown at low levels as well.
Before, level 1-4 players were speed 15, getting to 10 only by XL 25.
It's simpler and farther from statue form this way.

--------------------------------------------------------------------------------
2331b06ded | Adam Borowski | 2013-11-20 12:22:48 +0100

Rename potions of wood to that of lignification.
The new name sucks, but the first reaction the old one evoke was a Viagra
reference, and saying it "lasts longer" wasn't safe either.

--------------------------------------------------------------------------------
5954721b74 | Chris Oelmueller | 2013-11-20 01:50:52 -0500

Fix typos, "Che" -> "Chei"
Committer's note: Solo vas a matar a un hombre.

--------------------------------------------------------------------------------
89a65913d3 | Chris Oelmueller | 2013-11-20 01:50:43 -0500

Don't require "ego:ice" to make missiles of frost.
More consistent with launcher egos and other missile ego names like
"flame" this way.

--------------------------------------------------------------------------------
5852db96fc | Brendan Hickey | 2013-11-19 22:36:26 -0800

Revert Oka's demonic guardian suppression.
This reverts two dependent commits.

Revert "Give a message about Oka's suppression of demonic guardian."
This reverts commit ddc62b8f65ad7f1aed57347b4ee1691a4156019e.

Revert "Don't spawn demonic guardians when worshipping Oka."
This reverts commit b325f1192e333a32ffe218480a105306f7e3bc28.

Conflicts:
	crawl-ref/source/mutation.cc
	crawl-ref/source/religion.cc

--------------------------------------------------------------------------------
08bf1edeba | Brendan Hickey | 2013-11-19 22:26:25 -0800

Clarify conduct messages for Zin and OkiE.

--------------------------------------------------------------------------------
752d673ba7 | Brendan Hickey | 2013-11-19 22:14:20 -0800

Remove ally death penalty for Zin and Okie
This is a tedious conduct. It isn't particularly fun, limits
playstyles and penalizes players frivolously:
  Oh no, my butterfly died!

Neither of these gods is overpowered within our pantheon. I
expect balance implications to be negligible, while allowing
combinations that were previously foolhardy: Summoner of Zin,
for example.

--------------------------------------------------------------------------------
2c70c214a8 | Neil Moore | 2013-11-20 00:58:16 -0500

Change a not-currently-satisfiable check to an assert.

--------------------------------------------------------------------------------
2ef408f8b4 | Neil Moore | 2013-11-20 00:52:04 -0500

Make the breath timer apply to drakes and lindwurms again.
It stopped working in 0.12-a0-2074-gb2eacf2, when these monsters moved
from the dragon genus to their own genus.

Wind drakes have some special-casing, as they are the only drakes (or
dragons) to have non-breath spells.

--------------------------------------------------------------------------------
0a1cc8e7a7 | Neil Moore | 2013-11-20 00:51:54 -0500

Remove a no-longer-correct comment.

--------------------------------------------------------------------------------
f40d9dc859 | Adam Borowski | 2013-11-20 03:19:17 +0100

Add 'potion of wood'.
It allows voluntarily assuming the tree form. Like berserk, this usually
enhances one's combat ability, while limiting options. In this case, it makes
you pretty bad at running away.

--------------------------------------------------------------------------------
9e7f188a00 | Adam Borowski | 2013-11-20 02:28:08 +0100

Add a ground/inv tile for boots of the spider (Bloax).
The worn tile is still missing.

--------------------------------------------------------------------------------
9b3fadae09 | Adam Borowski | 2013-11-20 01:21:51 +0100

Purge an unused tomb_raider desc.

--------------------------------------------------------------------------------
7baad9e5f7 | Adam Borowski | 2013-11-20 01:20:28 +0100

Add cases for formicids in Azarael and friendly imp speech.

--------------------------------------------------------------------------------
1edd869b14 | Adam Borowski | 2013-11-20 01:11:34 +0100

Use french spacing.

--------------------------------------------------------------------------------
d5a4f9aa19 | Rahul Chandra | 2013-11-19 21:48:59 +0100

Temple speech for Donald

--------------------------------------------------------------------------------
2caff74e94 | Adam Borowski | 2013-11-19 21:37:01 +0100

Update a Donald line: eyeballs are no longer edible.

--------------------------------------------------------------------------------
dd483eda1b | Adam Borowski | 2013-11-19 20:58:13 +0100

Slow the metabolism and damage of poison for hungry vampires.
The rates are:
100% satiated+
 75% thisty
 50% very thirsty
 25% near bloodless
  0$ bloodless

--------------------------------------------------------------------------------
0fe9ba420d | Adam Borowski | 2013-11-19 20:54:46 +0100

Let Zin's vitalization and the staff of Olgreb to slowly neutralize poison.
The rate is same as regular metabolism.

--------------------------------------------------------------------------------
13cbacee03 | Adam Borowski | 2013-11-19 17:33:28 +0100

Let the staff of Olgreb grant total poison immunity.
Seems easier to explain than just OTR immunity.  Simplifies the code, too.

There is one weird quirk, though: wielding it while poisoned gets you a
darkgrey "Pois" status light that doesn't go away until you unwield the
staff, when the poison resumes to damage you. I wonder if that's ok.

--------------------------------------------------------------------------------
55d2fedf08 | Adam Borowski | 2013-11-19 17:13:16 +0100

Make a couple of functions static.

--------------------------------------------------------------------------------
859395c47d | Brendan Hickey | 2013-11-18 21:57:25 -0800

Remove Tomb Raider Vault
This is a thoughtful, well made vault. I wish all vaults
were on par with this one. Unfortunately, it is a very
spoily vault.

It's a death trap for unspoiled players and a triviality
for those who are spoiled.

--------------------------------------------------------------------------------
bd853f2b41 | Steve Melenchuk | 2013-11-18 22:12:48 -0700

Scale Blink Allies Encircle's target count by HD.
This is calibrated to preserve the old number for HD 16 (HD of shifters
at time of writing), while having a monster with HD 8 (guardian
serpents) blink only 1-2 monsters at most.

--------------------------------------------------------------------------------
cf7f6d0d70 | Adam Borowski | 2013-11-19 05:47:34 +0100

Use Depths rather than D for Ziggurat zombies.

--------------------------------------------------------------------------------
cb8aab065b | Adam Borowski | 2013-11-19 05:01:49 +0100

Fix summoned_monster() not working for monster summons.

--------------------------------------------------------------------------------
cd7827d3a5 | Adam Borowski | 2013-11-19 02:01:17 +0100

Simplify some Snake monster distributions.
A FLAT rectangle plus PEAK of the same amplitude is exactly same as SEMI
with amplitude of the sum of those two.  FLAT + UP/DOWN with a peak at
an end of the range is same as SEMI with some irrelevant junk outside the
range.

What's the point of guardian serpents having a miniscule FLAT in addition
to a PEAK almost ten times larger?  It's not like people really see minor
details like this.

--------------------------------------------------------------------------------
c7f40b562f | Translators | 2013-11-18 23:37:40 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
db87d4316f | Chris Oelmueller | 2013-11-18 12:44:38 -0500

Use `spectral mon` instead of `mon spectre`
These were the last remaining spectres. No functional change.

--------------------------------------------------------------------------------
c9d7b6cca2 | Neil Moore | 2013-11-18 12:27:08 -0500

Rename @God@ to @a_God@, allow capitalisation.
Also, allow capitalisation of @Possessive_God@.

--------------------------------------------------------------------------------
f09bcb372a | Neil Moore | 2013-11-18 12:16:43 -0500

Fix another bad variable in monster_speech.txt (ChrisOelmueller)

--------------------------------------------------------------------------------
75ae368ec0 | Neil Moore | 2013-11-18 12:09:31 -0500

Update variable list in monster_speech.txt (#7758)
Also mention some caveats of @feet@, @God@, etc.

--------------------------------------------------------------------------------
5ded1f09ef | Steve Melenchuk | 2013-11-17 22:54:12 -0700

An experimental new spell set for guardian serpents.
Teleport Other is removed altogether and replaced with two spells
intended to work together: Word of Recall and Blink Allies Encircling.
Basically, the guardians of the hoard know how to call for the guards
now, and can put them next to you (the one place you especially don't
want a naga to be).

Minor Healing is also gone completely (partly at MarvinPA's suggestion,
but I'd had the same thought originall).

This might turn out to be too evil, but it should at least be more
interesting.

There's been some concerns raised here with respect to nrook's guardian
serpent (mini)vaults - the three that place on D:9-. For the moment I'm
leaving those vaults alone, but I can envision moving them deeper if
necessary.

--------------------------------------------------------------------------------
154aecad26 | pubby | 2013-11-18 00:06:24 -0500

Consider Formicid-made shafts known.
This affects the distance they fall; known shafts fall less floors than
unknown ones.

--------------------------------------------------------------------------------
e3c4986a89 | Samuel Bronson | 2013-11-17 23:40:21 -0500

Indicate how far players get shafted on-screen (and in notes)

--------------------------------------------------------------------------------
b240ed3178 | Samuel Bronson | 2013-11-17 23:04:33 -0500

Replace an "if (x); if (!x);" by "if (x); else;"

--------------------------------------------------------------------------------
5f6f6a02dc | Samuel Bronson | 2013-11-17 23:04:32 -0500

Add a note about note_messages being in misc.txt to messages.txt

--------------------------------------------------------------------------------
b834acca23 | Steve Melenchuk | 2013-11-17 20:51:33 -0700

Don't allow mimics in the guaranteed food supply.
Food mimics have been possible since 6afc5a2, making the "guarantee" a
very small chance of being a guarantee.

I haven't heard any reports of this directly affecting anyone, but I
want to be sure it won't be a problem.

--------------------------------------------------------------------------------
a4da013b88 | Steve Melenchuk | 2013-11-17 20:02:51 -0700

Lower a couple of monster weights.
There were too many octopodes in Shoals and too many boggarts in Depths.
So now there are fewer.

--------------------------------------------------------------------------------
6e2ecf9479 | Steve Melenchuk | 2013-11-17 20:00:04 -0700

Adjust another band makeup.
Since the lesser tengu professionals are spawning for the moment, I'm
borrowing the idea from Snake of having a 50% chance of professionals
spawning in pairs. Basic tengu get no band (like basic nagas), but
they're not spawning anywhere important right now, so this shouldn't
really change anything.

--------------------------------------------------------------------------------
b5b77e2063 | Steve Melenchuk | 2013-11-17 20:00:04 -0700

Adjustments to Snake monster generation.
Less threatening monsters appear earlier; tougher monsters appear later.

Professional nagas get a smaller band of followers; for someone
prepared to tackle Snake, plain nagas are mostly just fodder. Instead,
there's a 50% chance that a band for a professional naga includes
another professional naga.

Guardian serpents appear more often in late Snake - they're different
enough to fight than most of Snake's standard fare that I hope this
proves to be more interesting. (I also envision a change in their spell
set in the near future involving calling in backup - if so, having them
generate outside the Snake:5 vault will be even more interesting.)

This includes a couple of rare reptilian additions - komodo dragons and
basilisks earlier and lindwurms later (the first may not work very well,
but the latter two probably fit thematically).

Really, we could use some new enemy designs for the area.

--------------------------------------------------------------------------------
e159610a26 | Neil Moore | 2013-11-17 21:09:06 -0500

Add compile-time checks for water and lava population tables.

--------------------------------------------------------------------------------
8017fe698d | Chris Campbell | 2013-11-18 01:46:07 +0000

Remove a reference to Dryads being 7s

--------------------------------------------------------------------------------
6f265b7550 | Steve Melenchuk | 2013-11-17 18:41:15 -0700

Nudge Snake's water and lava monster generation.
Mainly, Snake can generate sea snakes in water, and primarily lava
snakes in lava with an increasing weight of salamanders towards Snake:5.

There are enough watery vaults that place in Snake that this should make
the presence of sea snakes obvious. Lava vaults (outside salamanders_mu,
which prohibits lava monster generation anyway) aren't particularly
common there, but in the unlikely event that they do we're ready for
them.

--------------------------------------------------------------------------------
68385de329 | Steve Melenchuk | 2013-11-17 18:37:49 -0700

Also pick lava monsters from tables.
In case we want to tinker with lava monster selection.

This also lets me remove a couple of now-unused functions, merging the
functionality back into a function that basically acted as a stub.

--------------------------------------------------------------------------------
8f5a87b231 | Steve Melenchuk | 2013-11-17 18:14:42 -0700

Use weight tables for all aquatic monster placement.
There is a pop_water_generic table which emulates the old behaviour, and
branches formerly with special handling have tables to handle this.

--------------------------------------------------------------------------------
07bc86d60f | Steve Melenchuk | 2013-11-17 09:29:21 -0700

Don't place 1s in the Depths through Pan/Hell entries.
This fixes the chance of Pan entries spawning anything from imps to
Fiends; instead it picks a 2 to place over the gate (tougher than the
rabble that surrounds it, but hopefully not insurmountably difficult).

This also forces a monster set for a Hell entry so that it doesn't spawn
randomly excessive creatures.

--------------------------------------------------------------------------------
5129fb9594 | Adam Borowski | 2013-11-17 15:14:03 +0100

Fix jewelry resists not getting identified if you are vulnerable.
It's ok to attempt identification even if you're not resistant: this
will succeed only if you have something to identify, and that implies
you were vulnerable.  The lack of "foos you terribly" is telling.

--------------------------------------------------------------------------------
b85b6cc428 | Adam Borowski | 2013-11-17 12:48:23 +0100

Spam about the reason GDB is disabled.

--------------------------------------------------------------------------------
32c58ffec6 | Neil Moore | 2013-11-17 04:06:02 -0500

Finish adding raiju tile.

--------------------------------------------------------------------------------
dd4b0fc751 | Brendan Hickey | 2013-11-16 22:50:46 -0800

Give Raiju rElec+++

--------------------------------------------------------------------------------
da6cdd5bac | Chris Campbell | 2013-11-17 03:18:08 +0000

List all mutations by name on the % screen
For example, instead of "horns 2, AC+14, rPois" show "horns 2, slimy green
scales 3, icemail". This gets rid of a bunch of duplicated code and stops
the % display from getting out of sync when mutations change.

--------------------------------------------------------------------------------
6ff3556b00 | Neil Moore | 2013-11-16 21:50:49 -0500

Allow prepending command-line options for webtiles launchers.
This is needed by the stable launcher scripts of CSZO et al., which
wants the stable version number first, before even the -name option.

--------------------------------------------------------------------------------
9eb8d5def7 | Steve Melenchuk | 2013-11-16 19:39:36 -0700

Tinker with Depths monster spawn weights.
This is intended to shuffle some of the exp to later in Depths; some of
the mid-tier monsters for the area (mostly giants) are weighted to
appear more in mid-Depths than have a flat spawn rate, and some of the
lower-tier monsters are weighted to appear more and earlier. Overall
there's a slight reduction in the amount of exp available overall, but
it's only a 1-2% change on average.

There are a couple of additions here (suggested by |amethyst) that I'm
not exactly convinced about yet, but we'll see how these fly (heh).

--------------------------------------------------------------------------------
76d23323fa | Steve Melenchuk | 2013-11-16 19:39:35 -0700

Don't deliberately place a Hell Sentinel in Depths.

--------------------------------------------------------------------------------
6e8aceba79 | ontoclasm | 2013-11-16 19:39:17 -0600

Freezing wraith tile (Bloax)

--------------------------------------------------------------------------------
9deeed69da | ontoclasm | 2013-11-16 19:39:16 -0600

Raiju tile

--------------------------------------------------------------------------------
55da84eca8 | Adam Borowski | 2013-11-17 02:33:03 +0100

Fix badness when a raijū dies mid-bolt.

--------------------------------------------------------------------------------
1cc53ffcb7 | Steve Melenchuk | 2013-11-16 18:27:34 -0700

Don't spawn a centaur warrior on D:1 (78291).
Also don't spawn multiple centaurs as early as D:2.

D:3 might still be too soon.

--------------------------------------------------------------------------------
476a4cf42a | Adam Borowski | 2013-11-17 01:42:22 +0100

Typo fix.

--------------------------------------------------------------------------------
72888af70a | Adam Borowski | 2013-11-17 01:41:21 +0100

Generalize the Dwarf check for any future unfinished branch.

--------------------------------------------------------------------------------
7f6b743bca | Adam Borowski | 2013-11-17 01:41:04 +0100

Revert "Revert "Revert "Don't give Gargoyles innate rElec"""
Back to the 0.13 state.

[After-rebase edit: rRaiju!]

This reverts commit 9a5cc34cc2c6e5e3bbbeb98683be4eeff7bf663d.

--------------------------------------------------------------------------------
f169d3a359 | Brendan Hickey | 2013-11-16 16:23:10 -0800

Recolor Raiju

--------------------------------------------------------------------------------
18b30b8830 | Brendan Hickey | 2013-11-16 16:22:35 -0800

Replace Smoke Demon weight with Raiju
Rob some weight from Smoke Demons to make room for Raiju in the Abyss.

--------------------------------------------------------------------------------
07724e07e0 | Brendan Hickey | 2013-11-16 16:08:09 -0800

Raiju descriptions

--------------------------------------------------------------------------------
021797124b | Brendan Hickey | 2013-11-16 15:48:33 -0800

Unbreak all beams

--------------------------------------------------------------------------------
6559f0c1c1 | Brendan Hickey | 2013-11-16 15:43:57 -0800

Raiju: Lightning Beasts
An abyssal lightning beast. Transforms itself into a light and blinks.

--------------------------------------------------------------------------------
aa5c9c60e8 | Brendan Hickey | 2013-11-16 14:16:35 -0800

Don't pick abyss mobs from Dwarf
Dwarf isn't a valid branch, so veto it for abyss monster selection.
Fix saves where Dwarf has gotten baked into the abyss branch.

--------------------------------------------------------------------------------
166d3c9949 | Neil Moore | 2013-11-16 14:50:47 -0500

Shorten the last &? straggler.

--------------------------------------------------------------------------------
fb2ed50aae | Neil Moore | 2013-11-16 14:50:29 -0500

Improve &^[TU] description (ChrisOelmueller)

--------------------------------------------------------------------------------
6faf500b7f | Chris Oelmueller | 2013-11-16 14:44:32 -0500

Remove colons in wizmode command overview
Should now fit on 80x24 again, with the exception of `|`.

--------------------------------------------------------------------------------
b470dc0899 | MDvedh | 2013-11-16 13:40:20 -0500

Fixed "FTILE: " displayed incorrectly after reload (#7748)

--------------------------------------------------------------------------------
072d481954 | Adam Borowski | 2013-11-16 19:36:21 +0100

Make Depths exit a regular branch stair.
This might be a bit debatable, but to me having a portal both ways suggests
you're magically transported somewhere.  A mundane stair protected by a gate
would have a gate on one side and a regular stairway on the other -- a pair
of gates is possible but would be unnecessary expense on part of the
dungeon's builders.

--------------------------------------------------------------------------------
e13d3ce546 | Adam Borowski | 2013-11-16 19:36:21 +0100

Drop a pointless variable.

--------------------------------------------------------------------------------
97aa533c25 | Adam Borowski | 2013-11-16 19:36:21 +0100

Refactor pairs of asserts to ASSERT_RANGE.
More readable, and failures give more informative messages.

--------------------------------------------------------------------------------
996e7c2291 | Neil Moore | 2013-11-16 11:07:17 -0500

Update a comment for new topology.

--------------------------------------------------------------------------------
6c4f67eba0 | Adam Borowski | 2013-11-16 17:05:25 +0100

Fix missing Hell, Abyss and Pan entries as well.

--------------------------------------------------------------------------------
6d24305edd | Chris Oelmueller | 2013-11-16 16:59:32 +0100

Fix setting {Regen} randart property in wizmode
This was changed from bool (add 40 to rate or not) to a number in
180ebbfc23cde438bae5f78af1c326cab8ce24a5.
Not changing the property type (from bool) however meant this number
was either 0 or 1 up until now, which is rather different from 40.

Why does this property never generate "in the wild" by the way?

--------------------------------------------------------------------------------
6233028bcd | pubby | 2013-11-16 10:07:28 -0500

Fix a typo in exoskeleton mutation message.

--------------------------------------------------------------------------------
c5239a2893 | pubby | 2013-11-16 10:07:28 -0500

Don't allow Fo to get acute vision.
They have SInv from antennae 3 and so the mutation is pointless.

--------------------------------------------------------------------------------
02ff6a7dff | Neil Moore | 2013-11-16 09:50:47 -0500

Make statue-form vampires poison-immune.
Wishful indentation doesn't change the fact that || has higher
precedence than ?:

This would theoretically also affect vampires with divine stamina, if
Zin weren't such a racist.

--------------------------------------------------------------------------------
88d061b745 | Brendan Hickey | 2013-11-15 22:23:40 -0800

Refactor ASSERT(a && b) again
This commit converts ASSERT(a && b) to ASSERT(a); ASSERT(b);
Assertions of the form !(a && b) are left intact, since there isn't an
obvious readability gain over (!a || !b).

--------------------------------------------------------------------------------
02d7e00d42 | Chris Oelmueller | 2013-11-15 21:52:26 -0800

Fix typo

--------------------------------------------------------------------------------
dff4d4763e | Steve Melenchuk | 2013-11-15 20:33:08 -0700

Do allow abilities without an HP cost to be used under ddoor.
Broken by 109c0d6, which inadvertently disallowed all abilities from
being used while under ddoor.

--------------------------------------------------------------------------------
3257e988d2 | Steve Melenchuk | 2013-11-15 18:44:13 -0700

Cut tengu reaver spawn rates in Depths to one fifth their present rate.
This might still be too much; time will tell.

--------------------------------------------------------------------------------
29e6c80b9c | elliptic | 2013-11-15 20:21:00 -0500

Have automagic use 'f' instead of '.' to fire.
This is quite a bit superior in most situations (any situation in which the
spell could miss and hit another monster).

--------------------------------------------------------------------------------
acfe1bc02a | elliptic | 2013-11-15 20:21:00 -0500

Copy autofight monster prioritization code over to automagic.
If it works for ranged combat, it should work for magic. The code duplication
isn't great, but perhaps we can merge autofight.lua and automagic.lua at some
future point in time when automagic is more tested and stable.

--------------------------------------------------------------------------------
3a7a1e580a | elliptic | 2013-11-15 20:21:00 -0500

Automagic documentation edits.

--------------------------------------------------------------------------------
dbbacd7759 | elliptic | 2013-11-15 20:21:00 -0500

Make the automagic spell slot persistent through saves.
Also allow choosing a different initial slot via rcfile, for players who don't
like 'a'.

--------------------------------------------------------------------------------
1668057e57 | elliptic | 2013-11-15 20:21:00 -0500

Minor bugfixes and cleanup for automagic.lua.
The only change here to the intended behavior of the file is that now changing
the spell slot with am_set_spell() to a slot that doesn't currently contain a
spell doesn't fail or disable automagic; instead, automagic is still enabled
but won't do anything until you actually put a spell in that slot.

--------------------------------------------------------------------------------
f530a92577 | Naruni | 2013-11-15 20:20:59 -0500

Autofight for conjurers.
This patch adds 3 options to init.txt:

Automagic_enable (Default: false)
When the player presses tab (or whatever is bound to hit_closest), if automagic
is enabled and there is a spell in slot "a" automagic will attempt to attack by
spell.

automagic_stop (Default: 0)
If the player's magic points are below this number (percentage of total), this
prevents casting. What happens is dependent on behavior setting.

automagic_fight (Default: false)
If automagic cannot attack by magic, a message will be printed (not enough magic
or magic below threshold) by default. If this is true, a melee attack will be
called.

If a key is macroed to ===am_set_spell, it can be used to change the spell
slot letter used by automagic.

There are measures to catch any unintended keypresses being sent. Out of magic
and no target are handled. I can't think of any other situations that could
cause the sendkeys command to actually happen under false situations.

--------------------------------------------------------------------------------
cda080b8be | Adam Borowski | 2013-11-16 01:55:19 +0100

Fix evokable unrands not getting counted in evoke counts.

--------------------------------------------------------------------------------
1e933dd424 | Adam Borowski | 2013-11-16 01:55:19 +0100

Don't bundle all evokables as "miscelanneous" in action counts.

--------------------------------------------------------------------------------
649b689868 | Adam Borowski | 2013-11-16 01:55:19 +0100

Add (unused) support for renamed base types of launchers.
It's weird it was read but not saved.

So now you can make a fustibalus fixedart, a machine-gun crossbow or that
recurve bow you always dreamt about.

--------------------------------------------------------------------------------
02c73ab2fc | Chris Oelmueller | 2013-11-15 19:49:19 -0500

Minor update for .des vim syntax file
* Add Depths branch
* Update color keywords
* Recognize two recently added tags

--------------------------------------------------------------------------------
7fb6798db9 | Neil Moore | 2013-11-15 18:45:14 -0500

Fix a jump-attack assert (gammafunk)
It doesn't help to set the blocked landing reason *after* returning.

--------------------------------------------------------------------------------
7994df1730 | Neil Moore | 2013-11-15 18:00:25 -0500

Improve a complaint.

--------------------------------------------------------------------------------
32c45a7418 | Neil Moore | 2013-11-15 17:53:17 -0500

Manually fix a few more instances of return (...)
These weren't caught by util/unbrace because they weren't at the
beginning of the line.

--------------------------------------------------------------------------------
e7b96ffa70 | Neil Moore | 2013-11-15 17:26:11 -0500

More formatting fixes for return (...);

--------------------------------------------------------------------------------
b65bf4d519 | Neil Moore | 2013-11-15 17:22:58 -0500

Handle more return() forms in util/unbrace
In particular, we now handle cases where there was a second-level
parenthesis at the beginning or end of the outer parentheses, and
also where the outer parentheses contain more than one parenthesised
subexpression.

Also, take advantage of /x and format the RE a little more nicely.

--------------------------------------------------------------------------------
0de37655ef | Neil Moore | 2013-11-15 16:31:17 -0500

Fix grammar and add one more example.
Include an example of the kind of return statement people might still
be inclined to (wrongly) parenthesise.

--------------------------------------------------------------------------------
adbefe88a5 | Adam Borowski | 2013-11-15 21:03:44 +0100

Change the coding conventions to forbid "return (x);" instead of "return x;".

--------------------------------------------------------------------------------
0b023e03c5 | Adam Borowski | 2013-11-15 21:03:44 +0100

Teach util/unbrace that "return" is not a function.

--------------------------------------------------------------------------------
774998e023 | Adam Borowski | 2013-11-15 21:03:44 +0100

Automated brace removal.

--------------------------------------------------------------------------------
04ab49bde8 | Adam Borowski | 2013-11-15 21:03:43 +0100

Drop unnecessary parentheses from return statements.

--------------------------------------------------------------------------------
51aa1dcc06 | Adam Borowski | 2013-11-15 21:03:43 +0100

Drop a few return () cases that confuse my sed.

--------------------------------------------------------------------------------
cede7d61d9 | Adam Borowski | 2013-11-15 21:03:43 +0100

Don't allocate pointless iterators.
map or set.count() can test the presence of a given key and return 0 or 1
outright.

--------------------------------------------------------------------------------
1eb5ba87ee | Adam Borowski | 2013-11-15 21:03:43 +0100

Use equality rather than a prefix match for enabling tests.
So you can run "unique" without "uniquegen".

--------------------------------------------------------------------------------
82d523b668 | Adam Borowski | 2013-11-15 20:42:47 +0100

Fix ugly looking lone slabs of limestone in holy_pan tiles.
Also, purge the definition 3 = nothing (was "paladin" once), it wasn't
removed earlier because MONS definitions, unlike KMONS, are hard to remove
easily.

--------------------------------------------------------------------------------
b914cbecbc | Adam Borowski | 2013-11-15 19:58:34 +0100

Mark strings that must retain their current format even after a save break.

--------------------------------------------------------------------------------
0b10bd3b8a | Neil Moore | 2013-11-15 03:30:37 -0500

Wizmode command &^U for a clua prompt.
Works just like &^T, but uses clua instead of dlua.

--------------------------------------------------------------------------------
5f91bcc093 | Neil Moore | 2013-11-15 02:27:46 -0500

Fix gearset saving problem.
It was broken about 3 years ago (0.8.0-a0-739-ga2f257a).

--------------------------------------------------------------------------------
caeb28a626 | Steve Melenchuk | 2013-11-14 23:06:39 -0700

No horde of dire elephants in mu_elephants_graveyard in Lair.
Typo on my part. Oops!

--------------------------------------------------------------------------------
0ba292f8fe | Chris Campbell | 2013-11-14 20:16:25 +0000

Remove Contam from the Hat of the High Council
It makes it difficult to see the effect of -Wiz, and the hat still has a
noticeable tradeoff without it.

--------------------------------------------------------------------------------
c24d831ea1 | Chris Campbell | 2013-11-14 18:15:26 +0000

Tweak Undeadhunter's description
Be a little vaguer in the references to disruption removal, don't describe
the brand as necromancy (since good gods don't care about it).

--------------------------------------------------------------------------------
dd4fd8cea0 | Chris Campbell | 2013-11-14 16:14:31 +0000

Update Dungeon description

--------------------------------------------------------------------------------
1626a5bad5 | David Ploog | 2013-11-14 12:34:39 +0100

Restrict Bailey range to D:7-13, Orc:1-3.

--------------------------------------------------------------------------------
57a047c5aa | Steve Melenchuk | 2013-11-13 20:51:59 -0700

Allow for Vaults entrances in grunt_profane_halls.
This isn't an ideal solution - sometimes the Vaults entry will be
opposite an escape hatch. I'll need to tinker more with it.

--------------------------------------------------------------------------------
2395623e32 | Steve Melenchuk | 2013-11-13 20:44:02 -0700

Change up a couple of absdepth checks in vaults.
A lot of these seem to be based on the premise that D is 27 levels, so
they need to be changed.

--------------------------------------------------------------------------------
9b5d3a5331 | Steve Melenchuk | 2013-11-13 20:43:16 -0700

Bump Depths' absdepth.
This is mostly for vault functionality.

--------------------------------------------------------------------------------
ecfe5d8b4e | Steve Melenchuk | 2013-11-13 20:31:41 -0700

Move Vaults entry to Depths:1-3 (was 2-5).
Consensus is that Depths is pretty scary, and having the entrance appear
in a place that could be considered the equivalent of D:26 is too deep.

--------------------------------------------------------------------------------
7e7dc6c928 | Adam Borowski | 2013-11-13 13:01:41 +0100

Recover games with missing Vaults/Zot entrances.

--------------------------------------------------------------------------------
92933b3920 | Adam Borowski | 2013-11-13 09:02:14 +0100

Teach Xom how to undo a fatal transformation.

--------------------------------------------------------------------------------
fad824424e | Adam Borowski | 2013-11-13 09:02:14 +0100

Clean clouds when placing a vault during "map generation".
Normally there can't possibly be any clouds at that time, except that Abyss
briefly turns on this flag when placing a vault, to have everything come
into view at once.  This in turn can place walls atop a cloud.  This
sometimes caused graphic errors and extremely rarely a crash -- that is,
until my assert which reliably causes crashes nowadays.  I only wonder why
the abyss stress test bot didn't catch this likely scenario until today
(ok, I came back to that machine only after a few days).  Did the tag change
affect something more?

--------------------------------------------------------------------------------
52f2a1d1f1 | Adam Borowski | 2013-11-13 09:01:36 +0100

Make getting reduced to <= 0 maxhp by {,un)}transforming fatal.
This is possible if you're heavily rotted, get transformed, get rotted
further, then untransform.

Yes, it dawned on me that some crashes found by the stress test bot might
be not very likely to happen during normal play.

--------------------------------------------------------------------------------
06343e30e0 | Neil Moore | 2013-11-12 21:06:08 -0500

Use default parents for nonexistent branches.
If we don't per-game brentry data, make parent_branch return what would
be the parent, rather than NUM_BRANCHES.  Among other things, this
avoids leaking random branch choices in the ctrl-o screen (branches not
in the current game were never listed).

Also revert two piecemeal fixes that are now handled by the more general
code:
This reverts commit 259fcac8a0cba227ee4dc49cf5a7d5d2718cdc9c.
This reverts commit 81f5e101725dc1c0d5e96fc068a7b2b8d72b12ba.

--------------------------------------------------------------------------------
e5e675a5d2 | Chris Campbell | 2013-11-12 17:35:38 +0000

Make weapon branding effects purely cosmetic

--------------------------------------------------------------------------------
9cfafb29f8 | Chris Campbell | 2013-11-12 17:19:20 +0000

Add a newline after the summon cap in spell descriptions (#7737)

--------------------------------------------------------------------------------
ad1da23008 | Chris Campbell | 2013-11-12 16:12:06 +0000

Give Storm and Gold dragon hides the same encumbrance rating as their armours
Every other dragon hide works this way.

--------------------------------------------------------------------------------
5210f43197 | Steve Melenchuk | 2013-11-12 08:41:18 -0700

Properly try to place branch entrances in old games.
In particular, those where the branch entrance has moved to another
branch.

--------------------------------------------------------------------------------
16eb35d1fe | Adam Borowski | 2013-11-12 16:06:10 +0100

Don't say "many weapons" in formicid changelog entry (alefury).
This sounded like they could wield multiple weapons.  Our bugs lack the
coordination to multi-wield, unlike D&D where they can wield four...

--------------------------------------------------------------------------------
6d5756594c | Adam Borowski | 2013-11-12 07:27:19 +0100

Fix handling of hash tables bigger than 65535 elements.
You can get to 2147483647 if you wish.  I added no range check -- 2147483647
should be enough for anybody, right?  At least the old limit of 255 did not
cause problems in cases that weren't broken for other reasons already.

--------------------------------------------------------------------------------
41c3f7e50b | Adam Borowski | 2013-11-12 07:27:18 +0100

Drop a couple of outdated comments.
Hash tables have no limit other than available memory anymore; details of
space used for marshalling are uninteresting: all that matters is that the
overhead of an empty table is 1 byte: which is the smallest amount expected
anyway.

--------------------------------------------------------------------------------
11d3004b74 | Steve Melenchuk | 2013-11-11 22:52:51 -0700

Nudge changelog again.
Partly because of a typo in the new entries, and partly because of the
essence of dungeon-split landing.

--------------------------------------------------------------------------------
318680c9cc | Steve Melenchuk | 2013-11-12 06:44:05 +0100

Pick Depths water monsters from a table, like D.
There are a couple of low-weighted monsters on the list of an
experimental nature. If they work well, I may weight them higher
relative to the current fare.

--------------------------------------------------------------------------------
a135d0e02d | Adam Borowski | 2013-11-12 06:41:07 +0100

Fix a vault's bad reference to the current level.
It worked only within D.

--------------------------------------------------------------------------------
c0a4731c08 | Adam Borowski | 2013-11-12 06:41:07 +0100

Adjust the test suite.

--------------------------------------------------------------------------------
00f784b62b | Steve Melenchuk | 2013-11-12 06:41:07 +0100

Split some layouts between D and Depths.
I'm aiming at having the more straightforward layouts place primarily in
D, whereas the more unusual layouts place in Depths.

There are some I haven't really decided on as yet, such as
layout_loops_* (which should probably place less often than they do
everywhere except possibly D).

--------------------------------------------------------------------------------
b43d3ddbe0 | Steve Melenchuk | 2013-11-12 06:41:06 +0100

Split D tile themes between D and Depths.

--------------------------------------------------------------------------------
24f19a42bb | Steve Melenchuk | 2013-11-12 06:41:06 +0100

Theatrics when entering the Depths for the first time.
Minor at this point, and may become irrelevant in the future.

--------------------------------------------------------------------------------
b254b3d788 | Steve Melenchuk | 2013-11-12 06:41:06 +0100

ontoclasm's tiles for Depths entry/exit.

--------------------------------------------------------------------------------
cab08949ff | Steve Melenchuk | 2013-11-12 06:41:06 +0100

Don't place encompass vaults on Depths:1.
Most of them make use of three up and down stairs; limiting them to one
potentially breaks a lot of these vaults - and thrusting players into an
impassable situation with no alternate entrances isn't a good idea.

--------------------------------------------------------------------------------
1fe76e4074 | Steve Melenchuk | 2013-11-12 06:41:06 +0100

Save compat for pre-dungeon-split.
This makes sure the Abyss/Hell/Pan portals on D:21- appear properly in those
games.

[1KB: I removed 95% of this commit, as it shipped an entire copy of old D
population.  Without it, transferred games simply get somewhat less variety
in monsters that can be found there.]

--------------------------------------------------------------------------------
7c01be7f4f | Steve Melenchuk | 2013-11-12 06:41:06 +0100

Adjust primary vault dummy chances to account for Depths.
Right now I'm guaranteeing a primary vault on each level of Depths. This
may or may not change.

--------------------------------------------------------------------------------
88e7b8acfe | Steve Melenchuk | 2013-11-12 06:41:06 +0100

First pass at a Depths monster set.
I'm mostly aiming for monsters emblematic of the former late D at the
moment; if there are more monsters of that nature that I've missed here,
they can easily be added in. (There are a couple of exceptions to that
in this list which I'm hoping will stir up some interest.)

Yes, "late D" - ideally this works out to be as difficult as D:21-27 if
not slightly more so so that players have a good motivation to stay away
until they're ready.

This isn't intended to be a final list so much as a prompt for further
discussion as to what we want to have here.

--------------------------------------------------------------------------------
1b62a5d561 | Steve Melenchuk | 2013-11-12 06:41:06 +0100

Transform the lower half of D into a new branch: the Depths.
D is now 16 levels (the unsealed part was 14 levels previously), and the
Depths are six levels.  Vaults is enterable from Depths:2-5; Abyss, Hell,
and Pan portals are available for the entire length of the branch.

Right now the monster set is identical to Vaults except for the absence
of Vaults-specific humans.  D's monster set has also been truncated,
mainly on the out-of-depth front. It's my intent that this serve as a
starting point for figuring out what monsters we want to split between
the two branches.

--------------------------------------------------------------------------------
c7c129ded1 | Steve Melenchuk | 2013-11-12 06:41:06 +0100

Re-letter the Vestible to 'H' (was: 'U').
So you can (G)o to 'H'ell.  Hooray.

--------------------------------------------------------------------------------
0b088e9c8c | Neil Moore | 2013-11-12 00:29:37 -0500

Don't recommend FoBe (SamB)

--------------------------------------------------------------------------------
3f7b0b16b5 | Steve Melenchuk | 2013-11-11 21:46:44 -0700

Changelog through 0.14-a0-816-ge4a7683.
The usual disclaimers apply.

--------------------------------------------------------------------------------
e4a7683b2f | Adam Borowski | 2013-11-12 04:29:03 +0100

Ask for never squashing TAG_MAJOR_VERSION clean-up with intentional changes.
It makes such changes next to impossible to review.

--------------------------------------------------------------------------------
6777cb6869 | Adam Borowski | 2013-11-12 04:28:57 +0100

Increase the max size of CrawlVector/CrawlHashTable to 65535 (SamB).

--------------------------------------------------------------------------------
1bc176067e | Adam Borowski | 2013-11-12 04:27:09 +0100

A bunch of Lair vaults (KennySheep)

--------------------------------------------------------------------------------
d70054aebf | Adam Borowski | 2013-11-12 04:27:09 +0100

Make it easier to test compat bumps automatically.

--------------------------------------------------------------------------------
33952b5ebd | Adam Borowski | 2013-11-12 04:27:09 +0100

Fix a number of inconsistencies in wizmode artefact handling.
Also add a couple of asserts so these are less likely to go out of sync
in the future.

--------------------------------------------------------------------------------
76cd1e1177 | Adam Borowski | 2013-11-12 04:27:09 +0100

Unbreak formicid aptitudes for versions > 34.

--------------------------------------------------------------------------------
34c0606fae | Steve Melenchuk | 2013-11-11 18:16:56 -0700

Tag FoVM monster with M_ACTUAL_SPELLS (Flex).

--------------------------------------------------------------------------------
99a94983c3 | Chris Campbell | 2013-11-11 22:30:44 +0000

Remove another instance of Leda's affecting action speed

--------------------------------------------------------------------------------
8a23a7a801 | pubby | 2013-11-11 15:31:17 +0000

Allow _check_ability_possible to be truly quiet.
Certain abilities were printing messages despite being asked not to.
This commit adds additional !quiet checks before printing.

--------------------------------------------------------------------------------
c4cf7a53d5 | Neil Moore | 2013-11-11 01:57:34 -0500

More waterport message improvements.

--------------------------------------------------------------------------------
7df33cce1f | Neil Moore | 2013-11-11 00:36:47 -0500

Don't crash when removing Formicid hats on save transfer.
We can't remove the hat until the player's equipment has been
unmarshalled, which happens in a completely different function.

Also, remove the hat even if it was melded.

--------------------------------------------------------------------------------
c239e29990 | Samuel Bronson | 2013-11-10 23:55:37 -0500

Make the .o files depend on the PCH where relevant.
I'm surprised I didn't notice this before now ...

--------------------------------------------------------------------------------
434b8f6cb0 | Adam Borowski | 2013-11-11 03:57:16 +0100

Assign octopodes some stats.
When they were a mere dummy for recolouring and a single vault, their stats
did not matter.  If they're to spawn, they need something that's not identical
to a crowd of unstatted player races.  They were nearly identical to base
merfolk, which was especially ridiculous when comparing the quality of gear
they get.

I bumped them only a small bit, to allow adjusting new spawn places.  I think
it might be good to make them closer to draconians than popcorn, as the latter
niche is pretty full.

--------------------------------------------------------------------------------
723b4fa0c2 | Chris Campbell | 2013-11-11 03:54:06 +0100

Remove moths of suppression
Suppression is a hugely complicated and inconsistent mechanic. Its
original purpose was to be a way of overriding rPois in Spider but
there are now plenty of monsters that do this effectively (and much more
simply).

[1KB: I moved this to trunk, as it made an already extremely hard to review
branch massively more so.  There's nothing but a single enum to preserve,
so compat break doesn't make this removal any easier or harder.]

--------------------------------------------------------------------------------
d12a4ba87f | Steve Melenchuk | 2013-11-10 19:38:52 -0700

Adjustments to old encompass vaults, mainly for branch access.
This leverages the relatively recent functionality for detecting branch
entrance levels and portal location tagging to place the Vaults entrance
and Hell/Abyss/Pan portals in relatively sane locations on
lemuel_river_lethe, minmay_sea_of_fire, and dp_box_level. (There is one
portal location on lemuel_river_lethe that's inaccessible without
flight, but there is precedent for those portals to be inaccessible in
this fashion in some of the other portal entrances.)

I'm also taking the opportunity to adjust dp_box_level a bit further.
Mainly, there's no more electric eel spam in favour of the current set
of late D water monsters, plus a couple of surprises that I'm pulling in
from dungeon-split (which hopefully will land soon anyway), and the
teletrap gauntlet is replaced by three teletraps at three of the four
access points to the central area - the fourth is left open because the
portal placements are in the central vault areas.

This leaves one encompass vault that doesn't employ at least some of
this functionality and/or isn't intended to use it - spriggan_forest.
I don't really have an approach in mind for the Vaults entrance or
portal locations for it at this point in time.

--------------------------------------------------------------------------------
e66dd7be21 | Adam Borowski | 2013-11-10 23:47:01 +0100

Give permarock a different default glyph.
In some cases it appears somewhat goofy, but at least marks places that
masquerade as regular rock.  An alternative would be reserving a colour
for permarock and not using it anywhere else.

--------------------------------------------------------------------------------
ec83298395 | pubby | 2013-11-10 22:38:26 +0100

Formicids are humanoid shape.

--------------------------------------------------------------------------------
a070bb19e2 | Chris Campbell | 2013-11-10 20:22:42 +0000

Add a cast message for elemental wellspring's primal wave

--------------------------------------------------------------------------------
6205d3c004 | Adam Borowski | 2013-11-10 21:14:21 +0100

Include the CP437 chart with a note about characters that don't work.
The chart itself is easier to get than the WGL-4 list, the worth of having
it in the source tree is mostly in documentation and assurance that only
▶ and ◀ cause any problems.

--------------------------------------------------------------------------------
4c748fdb6a | Adam Borowski | 2013-11-10 20:41:54 +0100

Add missing U+00A0 to WGL-4.
Misquoting Larry Wall, you can't say there isn't a bit of difference
between this character and space, because that's exactly how much
difference there is.

--------------------------------------------------------------------------------
2b8a6b1b17 | Adam Borowski | 2013-11-10 20:40:07 +0100

Add "dragon" to db_lint's list of monster that need no desc.

--------------------------------------------------------------------------------
74b766a41d | Adam Borowski | 2013-11-10 20:40:07 +0100

Show Zin's poison immunity on the '%' screen.
Its omission made sense when it was not absolute.

--------------------------------------------------------------------------------
b9843ce940 | Adam Borowski | 2013-11-10 20:40:07 +0100

Simplify.

--------------------------------------------------------------------------------
6092b33c03 | pubby | 2013-11-10 20:40:07 +0100

Make all shaft falls a milestone.
Shafting only 1 floor wasn't being considered a milestone.

--------------------------------------------------------------------------------
82cd9f8614 | pubby | 2013-11-10 16:54:23 +0000

Give Trog's Hand its own duration.
Trog's hand was using DUR_REGENERAITON, and setting
ATTR_DIVINE_REGENERATION to true to specify it was the god ability and
not the spell.
This was silly, so this commit gives trog's hand its own duration:
DUR_TROGS_HAND.

This also fixes a very minor bug: previously if you had trog's hand
active and you tried to cast regen, you got penance but the spell was
immediately canceled. Other duration spells were not canceled.

--------------------------------------------------------------------------------
343fe796a6 | pubby | 2013-11-10 15:54:14 +0000

Make vitalization provide poison immunity.
All of vitalization's effects are immunities, so it makes sense for the
poison resistance it provides to be an immunity too.

--------------------------------------------------------------------------------
ef78db4d1c | Adam Borowski | 2013-11-10 14:56:52 +0100

Recharge the evoker closest to full first.
This removes the spoilery incentive to reassign their letters.

Also, make the loop work in O(n) rather than O(n²), for certain Tomb raiders
it would take forever...

--------------------------------------------------------------------------------
b96a3b8d6b | Chris Campbell | 2013-11-10 12:22:32 +0000

Only recharge one of each type of elemental evoker at a time

--------------------------------------------------------------------------------
14b720ca31 | pubby | 2013-11-10 04:34:27 +0100

Add shaft-self and dig tiles.

--------------------------------------------------------------------------------
5a7b4afb56 | pubby | 2013-11-10 04:34:21 +0100

Change recommended Formicid classes.
FoBe is very good, while FoMo is not.

--------------------------------------------------------------------------------
ac0ec0c7c6 | pubby | 2013-11-10 04:34:16 +0100

Change Formicid EXP apt to 2.
This is intended to give them a little more/faster natural HP.
Flavour-wise, insects mature really really fast.

--------------------------------------------------------------------------------
cb883b1930 | pubby | 2013-11-10 04:34:08 +0100

Start Formicids off with antennae 3.
The transition from antennae 2 to 3 was too weird.

--------------------------------------------------------------------------------
449417009e | Adam Borowski | 2013-11-10 04:25:54 +0100

Remove the hydrataur.
There's sadly a number of problems, caused by chimera code assuming every
constituent creature is one-headed, and that the result has a _head_ of each
of those.  The hydrataur instead is supposed to have a variable (not three
unless cut) number of heads, all of them identical -- as opposed to chimeras
with exactly three distinct heads.  The centaur and thrashing horror parts
are not supposed to bring their heads, either.  Thus, we get each of them
having a chance to be the "acting head", messages talk about "the" hydra
head, etc.  And the description includes:

"[...] It has the head of a hydra, the head of a thrashing horror, and the
head of a yaktaur. [...]"

Chimera code doesn't support vault redefinitions at all (name:, n_rpl, etc).
The fastest way to fix would be thus making the hydrataur a proper monster
on its own, based on a hydra: if the genus is MONS_HYDRA, it seems to work
without further additions.  It can then toss those javelins, spray hellfire,
etc, as in the joke learndb entry.

bh doesn't seem to think it's worth the effort, so I'm removing it; please
revert if you want to improve it instead.

--------------------------------------------------------------------------------
42ce3de744 | Adam Borowski | 2013-11-10 04:25:54 +0100

A tile and a non-working desc for the hydrataur.
Committing this to put these into the git history.

--------------------------------------------------------------------------------
ee1d45fd69 | Adam Borowski | 2013-11-10 04:25:54 +0100

Include the WGL-4 glyph list for reference.
For choosing something, Wikipedia is enough, but when you want to find the
intersection of it and some other set...

--------------------------------------------------------------------------------
915da6063d | Adam Borowski | 2013-11-10 04:25:54 +0100

Fix the sword of Jihad not working for monsters.

--------------------------------------------------------------------------------
173681b44a | Adam Borowski | 2013-11-10 04:25:54 +0100

Inline a function.

--------------------------------------------------------------------------------
6da28f8bae | Adam Borowski | 2013-11-10 04:25:54 +0100

Deindent a line.

--------------------------------------------------------------------------------
28cf4adbc6 | Adam Borowski | 2013-11-10 04:25:54 +0100

A missing period.

--------------------------------------------------------------------------------
4b91623d35 | Steve Melenchuk | 2013-11-09 20:17:13 -0700

Prohibit monster weapon swapping while berserk (#7699).
Since this is now impossible, monsters intentionally berserking will
wield melee weapons just before they berserk.

--------------------------------------------------------------------------------
e14b6fbfc5 | Neil Moore | 2013-11-09 16:05:06 -0500

The dead are crawling!
Also, make giant leeches slither.

Giant amoebae can't be zombified currently, but if that changes they
should probably crawl rather than walk.

--------------------------------------------------------------------------------
e413633c03 | Neil Moore | 2013-11-09 16:01:56 -0500

Don't "cling into" dangerous clouds (#7725).
We now use "crawl" for spider form, and "walk" for suction cups.

--------------------------------------------------------------------------------
9d0880a04f | Chris Oelmueller | 2013-11-09 11:38:03 -0500

Fix 0.14-a0-766-g558a4af - ziggurats were still asking for "dragon"
Fixes #7722

--------------------------------------------------------------------------------
6b455ae6f9 | Steve Melenchuk | 2013-11-09 08:17:16 -0700

Finish tagging abyss rune vaults with unrand (#7721).
Oops.

--------------------------------------------------------------------------------
6bed6dddd0 | Neil Moore | 2013-11-09 00:55:19 -0500

Correct waterport message when the nymph or victim is unseen (#7720).
It draws it back to her home!

--------------------------------------------------------------------------------
53edcdbca4 | Neil Moore | 2013-11-09 00:55:06 -0500

Correct water nymph gender.

--------------------------------------------------------------------------------
009d3a2503 | Neil Moore | 2013-11-08 21:57:30 -0500

Another political randart name.

--------------------------------------------------------------------------------
28bb301f2f | Neil Moore | 2013-11-08 18:43:37 -0500

Don't shaft stationary nets (#7714)

--------------------------------------------------------------------------------
e1ee01b3b0 | Neil Moore | 2013-11-08 17:16:46 -0500

Fix fire dragon description.

--------------------------------------------------------------------------------
af97a73d44 | Chris Oelmueller | 2013-11-08 17:01:56 -0500

Attempt to improve fire dragon breath message
Was:
  The fire dragon breathes fire at you.
  The blast of flame misses you.

Now:
  The fire dragon breathes flames at you.
  The blast of flame hits you!

--------------------------------------------------------------------------------
558a4af2b3 | Chris Oelmueller | 2013-11-08 17:01:54 -0500

Rename "dragon" to "fire dragon"
DRAGON now genus-only.

Brief discussion history in 4d5c11a304968c3635d8b60075a0ab9b39d71d43.

Summary of current brainstorm session:
"Dragon" means "fire-breathing dragon" in European mythology because
the other kinds never existed. In the world of Crawl however, there
are many kinds of dragons - so it seems that people would have given
the fire-breathing one a more distinctive name.
Producing "fire dragon armour" from "fire dragon hide" also means less
player confusion if a "fire dragon" dropped that hide.
Red draconians and fire drakes also both get a fire-y qualifier.

--------------------------------------------------------------------------------
86364106a3 | Neil Moore | 2013-11-08 17:01:10 -0500

Copy spell list into item_infos of identified randbooks (#7718)

--------------------------------------------------------------------------------
ce868cedf9 | Adam Borowski | 2013-11-08 21:11:58 +0100

Make the sword of Jihad mass-zerk all friends in LOS when you go berserk.
Any source of berserk will do, as long as you're wielding the sword.

--------------------------------------------------------------------------------
422d541927 | Chris Campbell | 2013-11-08 19:38:19 +0000

Don't slow monster action speed on top of slowing movement speed with Leda's

--------------------------------------------------------------------------------
4376ebcdb7 | Steve Melenchuk | 2013-11-08 11:12:21 -0700

Always place exactly one rune on guppyfry_spider_rune.
A bad SUBST was allowing the possibility of zero runes.

--------------------------------------------------------------------------------
2118153786 | Chris Campbell | 2013-11-08 07:11:16 +0000

Remove a duplicate randart name

--------------------------------------------------------------------------------
a3a1d79852 | ontoclasm | 2013-11-08 00:00:16 -0600

Zot gate tile

--------------------------------------------------------------------------------
26e2352913 | Brendan Hickey | 2013-11-07 21:12:00 -0800

Don't capricious abyss the player with rebranding
Only inflict a distort unwield effect on rebranding if the player was actually
holding the weapon in question. I still think this behavior is questionable.

Branding scrolls aren't particularly common, and once you convert a distortion
weapon with one, you can't get the distort weapon back. I think there's a
plausible case for giving players this out.

--------------------------------------------------------------------------------
5b0bf9bf79 | Steve Melenchuk | 2013-11-07 19:35:50 -0700

No lava critters in grunt_runelock_giant_problem (LexAckson).
These weren't supposed to be there to begin with.

--------------------------------------------------------------------------------
215394b6f5 | David Ploog | 2013-11-08 00:32:50 +0100

Add missing newline.

--------------------------------------------------------------------------------
a896d5fd11 | Steve Melenchuk | 2013-11-07 08:28:56 -0700

Don't generate sleeping monsters at level build time in Pan (MarvinPA).
This was unintentionally introduced by c575ec7.

--------------------------------------------------------------------------------
61d6021228 | Chris Campbell | 2013-11-07 12:30:06 +0000

Make elec brand from Pikel rarer

--------------------------------------------------------------------------------
871c22291d | Chris Campbell | 2013-11-07 12:24:30 +0000

Block Swap effects with stasis (#7713)

--------------------------------------------------------------------------------
f92ac37f3d | Chris Campbell | 2013-11-07 12:23:46 +0000

Adjust finesse/stasis interactions depending on amulet ID status
Trying (and failing) to use finesse with an identified amulet of stasis
no longer makes noise. Using finesse with an unidentified amulet of stasis
now costs a turn instead of being instant (and still identifies the amulet
so that future attempts will be aborted for free).

--------------------------------------------------------------------------------
0792e7ae01 | Chris Campbell | 2013-11-07 11:06:10 +0000

Redraw evasion when freed from a net via Swap card

--------------------------------------------------------------------------------
f5c3712d22 | Chris Campbell | 2013-11-07 10:59:15 +0000

Don't allow self-shafting while netted/webbed, improve failure messages

--------------------------------------------------------------------------------
6de8feba6c | Chris Oelmueller | 2013-11-07 10:21:53 +0000

Identify weapons of holy wrath that repel a curse
Your runed dagger glows black briefly, but repels the curse.

--------------------------------------------------------------------------------
134473ae3e | Chris Campbell | 2013-11-07 10:12:42 +0000

Remove some more runed doors
Abyss vaults are unlikely to be autoexplore traps.

--------------------------------------------------------------------------------
6e160c2ffa | Chris Campbell | 2013-11-07 10:12:25 +0000

Don't mess with the OOD timer when self-shafting
It enables things like shafting to a floor repeatedly to stop all monster
spawns there. If self-shafting needs to have additional penalties, there
are probably better ways of doing it.

--------------------------------------------------------------------------------
5b2302d164 | Chris Campbell | 2013-11-07 09:37:12 +0000

Remove monster self-shaft spell
Monsters generally don't flee unless there's a good reason for them to
do so. Self-shafting is similar to this (or to having teleport self in the
escape slot), and is only on some weak monsters, making it even more
unlikely to be relevant.

--------------------------------------------------------------------------------
1216ab27af | Chris Campbell | 2013-11-07 09:33:13 +0000

Update formicid venom mage description

--------------------------------------------------------------------------------
f3dd61e65b | Chris Campbell | 2013-11-07 09:32:52 +0000

Give formicid drones the fighter tag, not plain formicids

--------------------------------------------------------------------------------
d002504ab5 | Chris Campbell | 2013-11-07 09:31:57 +0000

Typo fix

--------------------------------------------------------------------------------
260666bd96 | Brendan Hickey | 2013-11-06 22:11:19 -0800

Add the Hydrataur, guardian the abyssal stair
"One of four possible unique guardians at lvl 3 of the abyssal stair.
Each of his nine necks ends in a javelin throwing humanoid torso, and he also 
buffs, heals and sprays hellfire.
Carries the madness rune."
  -- Knowledgebot

An abyssal 'downstairs' vault guarded by a mean chimera.

--------------------------------------------------------------------------------
1425151f73 | Jason Van | 2013-11-06 21:48:57 -0800

Shoals end edits
 * Add another Ilsuiw vault shaped like the newer caves end,
   without attaching it to said vault, for a little more randomization
   (and to give Ilsuiw a little easier vault sometimes).
 * Add a tiny chance of a second door to the original style of end huts,
   to bring back some of the rare connectivity dangers back from when
   the vaults had tiny chances for secret doors.

Signed-off-by: Brendan Hickey <brendan@bhickey.net>

--------------------------------------------------------------------------------
074c749307 | Jason Van | 2013-11-06 21:48:56 -0800

Spider end edits
 * Remove random shallow water in open floors of vaults. It's not
   showing off clinging, and it's making advancing/retreating
   worse when nearly all monsters are faster than average already.
 * Pre-identify _extra_ webs placed in branch ends. Moving forward is already
   risky enough without spoiler trap chance presence, and pre-known webs
   still serve as interesting terrain in practice anyway.
 * grunt_spider_rune_parallel: Change the stucture of the vault
   to let "lines" converge more for swarms and less for chances
   to skip big chunks of the vault, reduce trapdoor spider spam, trim size.
 * grunt_spider_rune_island: Trim massive vault size, put in rare columns,
   try a more set-based approach to the monster clusters,
   place some emperor scorpions/ghost moths outside of the center.

Signed-off-by: Brendan Hickey <brendan@bhickey.net>

--------------------------------------------------------------------------------
ee54e6c3f0 | Jason Van | 2013-11-06 21:48:56 -0800

Snake end edits
 * snake_hunt: Rather than leave the stairs status of ambush up to chance,
   let one of the stairs randomly be far out in the entrance instead.
 * snake_pit: Slightly push away and around the monsters away from the center,
   border the vault with stone to discourage easy digging tactics.
 * minmay_snake_end_coiled: Clump heavily-scattered monsters together,
   the vault is already stretched out enough without trivial luring.
   As compensation, [further] lower averages of nagas placed.
 * snake_pit_salamanders_mu: Remove purely-annoyance lava snakes and lower
   salamander numbers, but add some lindwurms (which are pretty serpentine
   and less frustratingly lava bound). Also, weaken one of many encounters
   in the vault, and lower greater naga presence.
 * grunt_snake_rune_pools: Replace glass with walls, some doors with floor.
   Should allow more swarming without using glass in a lair branch end.

Signed-off-by: Brendan Hickey <brendan@bhickey.net>

--------------------------------------------------------------------------------
d131b1cb6d | Jason Van | 2013-11-06 21:48:56 -0800

Swamp end edits
 * Add a 1/11 chance for the Lernaean Hydra
   into some non-elemental ends. He _is_ the branch unique.
 * "swamp"/swamp_alternative: single tiny fire/ice dragon chance for variety.
 * swamp_alternative: Always place a pair of fire drakes or bog bodies.
 * swamp_old_school: remove a single block to widen the easily-abused
   chokepoint entrance, push some starting monsters further back into the vault.
 * swamp_fiery: Monster set rebalance, this end is much weaker than most.
   Use swamp dragons over a main threat of mottled, place more
   lindwurms/fire crabs, less steam dragons, extra dragon.
   Also, widen both entrance chokepoints.
 * swamp_icy: Add an earlier dragon/jelly in the starting bit to mingle
   with the starting straightforward hydra simulacrum spam, randomize
   hydra simulacrum numbers downwards. Also, push the freezing vapour
   generator off to the side and slightly shrink it.
 * swamp_pestilence: Revamp miasma generator: instead of one large,
   unpredictable, always-present cloud, have several with visible starting
   points for "gates" possible to time passage through, still preserving a
   retreat blockade without the frustration of forced rot. Also, heavily reduce
   phantom/useless zombie spam, but use phantasmal warriors and more wisps.
 * swamp_vile: Remove rotting demon use, make very ugly things more common,
   use some thrashing horrors, lower shallow water presence and weakest spawns.
 * grunt_swamp_rune_castle: Put in more walls and less water on average,
   push the random monster placement towards the center of the vault,
   add to the presence of doors. Vault still seems too open...

Signed-off-by: Brendan Hickey <brendan@bhickey.net>

--------------------------------------------------------------------------------
78ee134b51 | Steve Melenchuk | 2013-11-06 22:37:18 -0700

Minor monster additions to a couple of Lair branches.
Formicid enemies now spawn in Spider (seemingly fairly rarely);
octopodes now spawn in Shoals and as late D water monsters.

--------------------------------------------------------------------------------
8c87c453f4 | Brendan Hickey | 2013-11-06 21:33:29 -0800

Revert badly merged vaults.
This reverts commits:
* df5ae8eb8c782b1b686ecd8d521e3c0fce7b6653.
* d6f0222991807be74206601cbc7cc772f88c15dd.
* e335dfc8ea4ae67eb0825f694a8777ab0604efd8.
* 61a36874f95121778117136dae1034f201156550.

--------------------------------------------------------------------------------
2a712717ef | Brendan Hickey | 2013-11-06 21:01:10 -0800

Database: More content
Add some names for the random name generators.
Add dialog for the Singing Sword.

--------------------------------------------------------------------------------
7a693da18f | Samuel Bronson | 2013-11-06 23:38:52 -0500

Ensure evokable abilities get breathing room next bump

--------------------------------------------------------------------------------
df5ae8eb8c | Jason Van | 2013-11-06 20:06:16 -0800

Shoals end edits

--------------------------------------------------------------------------------
d6f0222991 | Jason Van | 2013-11-06 20:03:45 -0800

Spider end edits

--------------------------------------------------------------------------------
e335dfc8ea | Jason Van | 2013-11-06 20:02:53 -0800

Snake end edits

--------------------------------------------------------------------------------
61a36874f9 | Jason Van | 2013-11-06 20:01:48 -0800

Swamp end edits

--------------------------------------------------------------------------------
57ef5c744e | Brendan Hickey | 2013-11-06 19:42:51 -0800

Veto more terrain types in abyss level generation.

--------------------------------------------------------------------------------
81f5e10172 | Neil Moore | 2013-11-06 21:38:25 -0500

Fix wizmode returning from a non-existent branch.

--------------------------------------------------------------------------------
259fcac8a0 | Neil Moore | 2013-11-06 21:38:25 -0500

Restore "Branch not generated this game" prompt.
We needed to check whether its *default* parent was Lair, not whether
its parent was Lair in this game.

--------------------------------------------------------------------------------
26f33bf2d3 | Neil Moore | 2013-11-06 21:38:25 -0500

Fix a crash on interlevel travel (#7705).
We were deferencing a past-the-end iterator when stair_level[br] was
empty.  Unfortunately, this happened whenever specifying a branch whose
parent was unvisited, even D.  That resulted in an uninitialised value
for depth, causing _get_nearest_level_depth to iterate up to
NUM_BRANCHES and then crash.

This happened to not occur on the servers, but my 32-bit NO_OPTIMIZE
build crashed every time on GD or &~<any letter>.

--------------------------------------------------------------------------------
75656b843f | elliptic | 2013-11-06 18:54:48 -0500

Don't leak information about underwater items to lua.

--------------------------------------------------------------------------------
9aaf361970 | Adam Borowski | 2013-11-07 00:42:35 +0100

Fix missing formicid zombie settings.
Also, soldier ants -- why has this been changed?  If you set it to
Z_NOZOMBIE, you need to either disable corpses (mass of 0), or to set
the species to something else.

--------------------------------------------------------------------------------
54aa884953 | Adam Borowski | 2013-11-06 23:38:53 +0100

Potions of slowing and paralysis are merely useless for Fo, not bad.
Not that this makes any difference...

--------------------------------------------------------------------------------
9599b19c72 | Adam Borowski | 2013-11-06 23:14:51 +0100

Don't mark a number of items as "emergency" for Formicids.

--------------------------------------------------------------------------------
c60660aeeb | Chris Campbell | 2013-11-06 21:06:28 +0000

Revert "Negate swiftness with stasis."
Formicids shouldn't change how stasis works for all other species. If this is
to be changed for everyone it shouldn't be hidden as part of the merge.

This reverts commit c1a2e1451a6ea5a45cc18280012de944af2e1284.

--------------------------------------------------------------------------------
5b5c7e557e | Chris Campbell | 2013-11-06 21:06:26 +0000

Re-implement ABFLAG_DELAY, use it for self-shaft ability

--------------------------------------------------------------------------------
135fbebd5d | Chris Campbell | 2013-11-06 21:06:24 +0000

Give Formicids normal antennae

--------------------------------------------------------------------------------
19ea242a69 | Chris Campbell | 2013-11-06 21:06:22 +0000

Don't give Formicids free curing
They already have bonus HP to help against poison.

--------------------------------------------------------------------------------
d008b17890 | Adam Borowski | 2013-11-06 22:02:02 +0100

Stop spam about stasis when wearing a cursed ring of teleport as a Fo.

--------------------------------------------------------------------------------
c32513d8bb | Adam Borowski | 2013-11-06 18:39:54 +0100

Link the monster Shaft Self's desc to the player ability.

--------------------------------------------------------------------------------
415669d7ad | Adam Borowski | 2013-11-06 18:39:02 +0100

Merge branch 'dwants'.  Bring some Raid.

--------------------------------------------------------------------------------
ed4c75b69a | Adam Borowski | 2013-11-06 18:26:02 +0100

Don't even list Shaft Self in ZotDef or single-level sprints.

--------------------------------------------------------------------------------
e317eff64e | Adam Borowski | 2013-11-06 18:23:22 +0100

Drop some pointless braces.

--------------------------------------------------------------------------------
d02ecf8f17 | Adam Borowski | 2013-11-06 18:13:04 +0100

Reword another case of "sense of stasis".

--------------------------------------------------------------------------------
a9cff306ef | Adam Borowski | 2013-11-06 18:10:32 +0100

Inline the exoskeleton hp bonus.
While this duplicates the code (but not lines...), no other similar mutation
is special-cased this way.

--------------------------------------------------------------------------------
acaead0da8 | Adam Borowski | 2013-11-06 17:36:23 +0100

Reword Formicid short description.
A "sense of stasis" means only that you perceive it.

--------------------------------------------------------------------------------
f87b22a447 | Adam Borowski | 2013-11-06 17:35:15 +0100

A typo fix.

--------------------------------------------------------------------------------
bfecef21db | Adam Borowski | 2013-11-06 17:33:29 +0100

Remove a strange check.

--------------------------------------------------------------------------------
9b8bc9438e | pubby | 2013-11-06 16:46:45 +0100

Revert "Increase digging loudness."
This reverts commit 0f4a723449ffb7515f1ae6b85c5b94fa5ff7ce35.

--------------------------------------------------------------------------------
38ac950b50 | pubby | 2013-11-06 16:46:42 +0100

Revert "Make dig carve-out more adjacent tiles to player."
This reverts commit c7687b137062698118e98d525a0a7e5342262a9a.

--------------------------------------------------------------------------------
1c771228a3 | pubby | 2013-11-06 16:45:44 +0100

Set formicid MP to average.
There isn't a good reason why MP was at -1 before.

--------------------------------------------------------------------------------
9c199ebd5f | Adam Borowski | 2013-11-06 15:42:38 +0100

A manual update via the wiki.

--------------------------------------------------------------------------------
98651f969f | Adam Borowski | 2013-11-06 15:42:38 +0100

Automated brace fixes.

--------------------------------------------------------------------------------
cf950f9022 | Adam Borowski | 2013-11-06 15:42:38 +0100

Drop an unused quote.

--------------------------------------------------------------------------------
cbffeeac4c | Adam Borowski | 2013-11-06 15:40:26 +0100

Don't let spirit shield stop non-hp deaths.

--------------------------------------------------------------------------------
e3b759ff71 | Adam Borowski | 2013-11-06 15:40:26 +0100

Give a debug message when calc_hp() changes something.

--------------------------------------------------------------------------------
ce6eb1ef53 | Adam Borowski | 2013-11-06 15:40:25 +0100

Use --gdb for automated runs of the abyss bot.
Unlike being run by hand during actual debugging, during stress testing you
almost always want to get the backtrace.  This also helps solving recent
crop of mysterious pthread_join segfaults.

--------------------------------------------------------------------------------
fea74519f5 | Chris Campbell | 2013-11-06 10:58:44 +0000

Remove more runed doors

--------------------------------------------------------------------------------
09c5d6d3e5 | Chris Campbell | 2013-11-06 09:32:14 +0000

Use a canned message when aborting recite

--------------------------------------------------------------------------------
fc7c37ebb6 | Chris Campbell | 2013-11-06 09:32:12 +0000

Increase evokable jump range by 1
To put it in the middle of the ranges that the mutation can get (and in
the middle of the ranges it could previously get when evoc skill increased
the range).

--------------------------------------------------------------------------------
ffde107490 | Chris Campbell | 2013-11-06 09:32:10 +0000

Make individual monsters only ever be affected by one recite type
Only use the first type that they are eligible for, in order: chaos,
impure, unholy, heretic. Also reword the prompt to be slightly clearer.

--------------------------------------------------------------------------------
1e84d7c4f8 | Chris Campbell | 2013-11-06 09:32:09 +0000

Don't make demons in hell/abyss worship Makhleb/Lugonu
It's purely for flavour but has negative gameplay effects in that it
makes them all vulnerable to chaotic recite effects from Zin, when they're
not really chaotic at all - it's completely unclear why they would be
chaotic, since they're not visibly priests in any way.

--------------------------------------------------------------------------------
aaf46b92c9 | Chris Campbell | 2013-11-06 09:32:07 +0000

Remove some unused recite code

--------------------------------------------------------------------------------
14990cb9db | elliptic | 2013-11-06 00:43:52 -0500

Move demonic guardian 2 and 3 earlier on average (simmarine).

--------------------------------------------------------------------------------
fc8c466e35 | Steve Melenchuk | 2013-11-05 20:10:29 -0700

Derive some Pan entry vaults from the just-added mini panlord vaults.
Might as well...

--------------------------------------------------------------------------------
ef5ebcae41 | Steve Melenchuk | 2013-11-05 20:03:39 -0700

A handful of minor panlord vaults.

--------------------------------------------------------------------------------
29626268ec | Steve Melenchuk | 2013-11-05 18:52:06 -0700

Add some low-weight spawns to major Panlord levels.
These are taken from the vaults to try to tie things together a little
more tightly.

--------------------------------------------------------------------------------
a6557fe2ad | Steve Melenchuk | 2013-11-05 18:48:39 -0700

Draw random demon types in Pan from the local pools first.
This is primarily intended for vaults, but it also impacts the demon
summoning spells.

--------------------------------------------------------------------------------
c575ec780f | Steve Melenchuk | 2013-11-05 18:25:24 -0700

Prune and simplify Pan monster generation logic.
There's not much preventing normal monster generation algorithms from
being used here, so they're used now; this has the benefit of
simplifying some vault syntax as well.

--------------------------------------------------------------------------------
f07a810f8e | elliptic | 2013-11-05 19:41:19 -0500

Fix view.feature_at() not handling unseen squares properly.
It returned garbage, now it returns "unseen".

--------------------------------------------------------------------------------
be5af28284 | Adam Borowski | 2013-11-06 00:32:59 +0100

Hush a warning.

--------------------------------------------------------------------------------
c48e75bd65 | Steve Melenchuk | 2013-11-05 16:22:52 -0700

Tiles: display the off-hand weapon for two-headed ogres and ettins.
This also allows deep elf blademasters to be able to display two
different weapons, if that ever becomes a thing.

--------------------------------------------------------------------------------
ff3ae3e07d | Adam Borowski | 2013-11-05 23:14:16 +0100

More runelock shaft clean-up.

--------------------------------------------------------------------------------
d679754414 | Raphael Langella | 2013-11-05 23:08:28 +0100

Revert "Allow D:14 shafts, make them known; try to always place one."
This reverts commit 3c177f47aa1bbf47db5dea54bdaa4f770a0220b4.
This reverts commit e1004a1d0131a735b2b9be1c87b1fd27e09bf81f.
This reverts commit 930d8ed00efae890e3899670ae87cfdc07eda236.
This reverts commit 637089748731402da6c33483b30118d2eebdcc73.

--------------------------------------------------------------------------------
a3bdc66f9e | Adam Borowski | 2013-11-05 22:13:28 +0100

Update the desc of "Burn Spellbooks".
It doesn't care about the book being non-ided since 0.12-a0-2232-g3327b90.

--------------------------------------------------------------------------------
25ffe6c635 | Adam Borowski | 2013-11-05 21:12:01 +0100

Hush a warning on 32 bit.

--------------------------------------------------------------------------------
fcf5eff77a | Adam Borowski | 2013-11-05 21:08:56 +0100

Fix a monster-in-a-wall crash on banishment.
When a mockup of your current pre-banishment surroundings is written into
the abyss, regular monster generation hasn't happened yet, but banished
and/or left from a previous visit monsters are already there.  Thus, we
need to displace them if needed.

--------------------------------------------------------------------------------
397eda1b80 | Adam Borowski | 2013-11-05 21:08:56 +0100

Fix a brown-paper-bag bug in Xom lifesaving.

--------------------------------------------------------------------------------
c978a3052d | Neil Moore | 2013-11-05 11:20:56 -0500

Add the dark maul to zigsprint (Bloax)
Alongside the other heavy-downside items.

--------------------------------------------------------------------------------
e52b86ba6e | Adam Borowski | 2013-11-05 17:08:54 +0100

Add an assert against the walking dead.
I've just had the abyss bot running around with hp:-2 maxhp:-2 for ages
before finally crashing (real reason: Xom revival not handling MUT_FRAIL
while mutation resistant and inhibitting real death).

--------------------------------------------------------------------------------
5dd52e4779 | Adam Borowski | 2013-11-05 16:58:57 +0100

Don't protect the Abyss bot from wretched stars.
While testing while having a full complement of all bad mutations (due to
the Great Land of Neqoxecs and Cacodemons) is not funny, and none of bad
muts is really interesting for stress tests, adding/removing them repeatedly
is nice.

--------------------------------------------------------------------------------
124d22f310 | elliptic | 2013-11-05 09:15:22 -0500

Add some player-usable item lua: fully_identified, plus, plus2.

--------------------------------------------------------------------------------
b9975d15a4 | Adam Borowski | 2013-11-05 14:52:51 +0100

An cmdline option: -no-gdb.
In release builds it's on by default, this option allows disabling it.

--------------------------------------------------------------------------------
80c6c4d321 | Chris Campbell | 2013-11-05 09:41:54 +0000

Shrink a statue vault

--------------------------------------------------------------------------------
ceeb0d94d3 | Chris Campbell | 2013-11-05 09:41:31 +0000

Remove another dispelling + lava vault

--------------------------------------------------------------------------------
3098da740d | Chris Campbell | 2013-11-05 09:33:50 +0000

Don't place clouds over the lava in layout_cross

--------------------------------------------------------------------------------
41ab9386bf | Chris Campbell | 2013-11-05 09:31:22 +0000

Remove a runed door

--------------------------------------------------------------------------------
15b01f7d3f | Chris Campbell | 2013-11-05 07:35:49 +0000

Remove a labyrinth vault

--------------------------------------------------------------------------------
1b7c251a9c | Chris Campbell | 2013-11-05 07:35:48 +0000

Reveal traps in a labyrinth vault

--------------------------------------------------------------------------------
7e7ad92fa9 | Chris Campbell | 2013-11-05 07:35:45 +0000

Apply antimagic recite effect more often, but only to spellcasting monsters
Using the same restrictions as the weapon brand.

--------------------------------------------------------------------------------
c45bec61d0 | Chris Campbell | 2013-11-05 07:35:43 +0000

Remove the Fear effect from Recite
The other effects mostly make it easier to kill enemies, fear tends more
towards just being annoying. Also remove the (unused) sleep effect.

--------------------------------------------------------------------------------
185d426d3e | Adam Borowski | 2013-11-05 08:23:55 +0100

Regression tests for adjacent_iterator.

--------------------------------------------------------------------------------
855aa56ea2 | Adam Borowski | 2013-11-05 08:06:45 +0100

Regression tests for distance_iterator.

--------------------------------------------------------------------------------
17f817766b | Adam Borowski | 2013-11-05 07:56:45 +0100

Regression tests for radius_iterator (w/o LOS checks).

--------------------------------------------------------------------------------
3bc35ec9ab | Adam Borowski | 2013-11-05 07:06:53 +0100

Unbreak Windows.

--------------------------------------------------------------------------------
33db154a4c | Adam Borowski | 2013-11-05 07:03:13 +0100

Don't attach gdb in debug builds unless --gdb is given on cmdline.

--------------------------------------------------------------------------------
771ae3aa73 | Adam Borowski | 2013-11-05 07:03:13 +0100

Simplify a #define logic.

--------------------------------------------------------------------------------
a64525a6ad | Adam Borowski | 2013-11-05 07:03:12 +0100

Get rid of a strange accessor.

--------------------------------------------------------------------------------
748cab26b7 | Chris Campbell | 2013-11-05 04:58:45 +0000

Remove some statues from wizlab_tukima
The blink other statues didn't appear to achieve much, replaced them with
dancing weapons. Also remove some doors, to prevent it being possible to
get all of the loot without even seeing more than a few of the weapons.

--------------------------------------------------------------------------------
4c9e008da4 | Chris Campbell | 2013-11-05 04:25:27 +0000

Make dancing weapons outside of Blade higher-quality
Non-Blade dancing weapons tended to be unbranded and weak. This was
especially noticeable in the Tukima wizlab, for example.

--------------------------------------------------------------------------------
636cfe40f2 | Adam Borowski | 2013-11-05 05:14:17 +0100

Re-implement xray vision.

--------------------------------------------------------------------------------
a47b16fb3e | Adam Borowski | 2013-11-05 05:14:17 +0100

Less los_def usage.

--------------------------------------------------------------------------------
75e84aa610 | Adam Borowski | 2013-11-05 05:14:17 +0100

Eradicate C_SQUARE/SH_SQUARE.
circle_def can now be replaced by just a center + radius instead of a
complex object.

--------------------------------------------------------------------------------
5114b4b827 | Adam Borowski | 2013-11-05 05:14:16 +0100

Get rid of the radius_iterator "legacy" constructor.
It was really weird: working on a square, but in almost all cases
restricting it to your view (a circle).  Note this is _your_ view rather
than from the iterator's center -- which hasn't been used once in the
obvious interesting way.

As usual, this commit fixes a load of "act through glass" bugs, ando/or
using los modes that don't make sense in the context.

--------------------------------------------------------------------------------
1f1809d279 | Adam Borowski | 2013-11-05 05:14:16 +0100

Separate two orc follower search functions.
It costs less code even with some minor duplication, than to try to share
them.  And it's less complex this way.

--------------------------------------------------------------------------------
0c137b56e7 | Adam Borowski | 2013-11-05 05:14:16 +0100

Squares are rectangles, not circles.
So use the correct iterator.  No functional changes.

--------------------------------------------------------------------------------
b83897c22d | Adam Borowski | 2013-11-05 05:14:16 +0100

Make big plant clumps round.
Also a bit smaller, as a circle of radius 4 is smaller than a square of
halfside 4.  Can compensate by making it 5.  Or possibly use
rectangle_iterator instead.  All I really care about is getting rid of
C_SQUARE.

--------------------------------------------------------------------------------
6a5413c7e6 | Adam Borowski | 2013-11-05 05:14:16 +0100

Remove radius_iterator(coord, r, c_type, los_base).

--------------------------------------------------------------------------------
96d8e707a3 | Adam Borowski | 2013-11-05 05:14:16 +0100

Remove radius_iterator(los_base).

--------------------------------------------------------------------------------
6034a6cd95 | Adam Borowski | 2013-11-05 05:14:16 +0100

Remove get_los().

--------------------------------------------------------------------------------
076266abdc | Adam Borowski | 2013-11-05 05:14:16 +0100

Get rid of one remaining use of get_los().

--------------------------------------------------------------------------------
c85d5d303f | Adam Borowski | 2013-11-05 05:14:16 +0100

Update the whole arena.
It was the only user of non-standard get_los().

--------------------------------------------------------------------------------
bfccd69dc6 | Adam Borowski | 2013-11-05 05:14:16 +0100

Get rid of all external uses of get_los().
This also fixes a bunch of "act through glass" or "doesn't obey nightstalker/
lantern of shadows" bugs.

--------------------------------------------------------------------------------
5fd963b57e | Adam Borowski | 2013-11-05 05:14:15 +0100

Satisfy a comment's request.

--------------------------------------------------------------------------------
449c8ffbc5 | Adam Borowski | 2013-11-05 05:14:15 +0100

Drop a redundant check.
LOS_NO_TRANS implies LOS_SOLID.

--------------------------------------------------------------------------------
845b7253b7 | Adam Borowski | 2013-11-05 05:14:15 +0100

Drop "soul auras".
They costed us complex bookkeeping every turn if there were any lost souls on
the level.  Instead, just check the "hard way" (faster than one turn worth
of aura processing) whenever a monster dies.

No functional changes.

--------------------------------------------------------------------------------
7e637e9795 | Adam Borowski | 2013-11-05 05:14:15 +0100

Assign reasonable los types to auras.
It makes no sense for liquefaction to be stopped by clouds, or for some to
work through glass.

--------------------------------------------------------------------------------
d339b15e38 | Adam Borowski | 2013-11-05 05:14:15 +0100

Implement a prototype for a new version of radius_iterator.
During conversion, use the old code.

My target will have only two types of functionality:
* iterating over a circle of a given radius
* as above, with a LOS check towards the center

The current radius_iterator/circle_def/los_base tangle either takes a
majority of CPU time or at least a sizeable chunk in profile runs, due to
a bad case of OOP abuse in tight loops.  This badly needs a rewrite.  The
ability to pass it a square or someone else's los can be done using a
different iterator or checking los manually later, respectively.

--------------------------------------------------------------------------------
e9ffe704a2 | Adam Borowski | 2013-11-05 05:14:15 +0100

Drop an always true check.
In a virtual method, you can be quite certain we're of the correct type.

--------------------------------------------------------------------------------
672275374d | Adam Borowski | 2013-11-05 05:14:15 +0100

A few more sub-ruler names for randarts.

--------------------------------------------------------------------------------
c3d485bc8d | Steve Melenchuk | 2013-11-04 19:31:13 -0700

Remove a couple of stair vaults.
To paraphrase elliptic, they don't really do anything except in cases
where they cover all the entrances/exits, in which case it blocks
autotravel and thereby annoys players greatly.

--------------------------------------------------------------------------------
f55fcea328 | elliptic | 2013-11-04 19:12:35 -0500

De-rune some doors.
Neither of these vaults is particularly bad to open, and autoexplore shouldn't
fail to find runes or branch entrances.

--------------------------------------------------------------------------------
a81ed439e2 | Adam Borowski | 2013-11-04 08:23:13 +0100

Fix build on ancient compilers.

--------------------------------------------------------------------------------
2d5c4bb273 | elliptic | 2013-11-04 00:55:36 -0500

Don't waste a turn failing to hit a rock worm in a wall with an axe.
Cleave is blocked by the wall also, so it really is a null action.

--------------------------------------------------------------------------------
8f2d35a366 | Chris Campbell | 2013-11-04 05:11:38 +0000

Don't allow using Vitalisation while confused
Since it no longer actually cures confusion, this isn't very useful. In
general it's supposed to be used pre-emptively.

--------------------------------------------------------------------------------
5448299038 | elliptic | 2013-11-03 23:58:42 -0500

Fix weapon egos not identifying properly on failed wields.
This was broken a few days ago by 58b199c.

--------------------------------------------------------------------------------
9c7513855e | Steve Melenchuk | 2013-11-03 19:47:13 -0700

Do away with the "abyss" tag in favour of DEPTH specifications.
If we want selectability by Abyss depth, the Abyss vaults all need DEPTH
tags anyway, so we don't need an "abyss" tag to go with that.

--------------------------------------------------------------------------------
148cdeebf9 | Brendan Hickey | 2013-11-03 18:04:39 -0800

Use depth in Abyss vaults

--------------------------------------------------------------------------------
4cb63b45ef | elliptic | 2013-11-03 20:53:26 -0500

Only apply the contam -Wiz effect to Djinn.
This effect seems analogous to not being able to cast spells at starving with
normal species, so it makes sense to limit it to the one species that gains
contamination instead of losing nutrition when casting spells.

In addition, this penalty gives fairly precise information about contam
level if you have a spell memorized, and only Dj already has such
information (on the contam bar). Other species would check their failure
rates all the time when at yellow glow, both to get a sense of how bad the
glow is and to know whether the penalty is +25 or +200 (and thus whether
spells are usable).

--------------------------------------------------------------------------------
b6024cc74c | elliptic | 2013-11-03 20:53:26 -0500

Enable automatic bypassing of the skill menu for potions of experience via lua.
If the player defines a lua function auto_experience(), this function will
be called when the player uses a potion or card of experience and the skill
menu will be skipped (distributing exp to the skills that are currently
turned on) if the function returns true.

--------------------------------------------------------------------------------
0e91adf896 | elliptic | 2013-11-03 20:53:26 -0500

Let choose_stat_gain work by returning a string.
It used to be that to use this lua hook to automatically choose a stat at
level-up, the function choose_stat_gain had to call crawl.sendkeys('s') or
some such. This still works, but now the function can return a string
instead and the first character will be used.

--------------------------------------------------------------------------------
612243dca4 | Steve Melenchuk | 2013-11-03 17:41:46 -0700

Display Orb on } screen, % screen, and dumps.

--------------------------------------------------------------------------------
aa148b9adb | Neil Moore | 2013-11-03 14:30:38 -0500

Make a pointer parameter const.
It was made non-const in 0.13-a0-3070-g24746d4, but as of
0.14-a0-494-gc6935ab it can be const again.

--------------------------------------------------------------------------------
0ab4eda94b | Neil Moore | 2013-11-03 12:22:36 -0500

Fix unknown shaft traps (#7680)

--------------------------------------------------------------------------------
2d1e76ee49 | Adam Borowski | 2013-11-03 17:25:51 +0100

Axe a buttload of useless #includes.
Can't test Android, MSVC or Mac, but a very brief glance at the diff suggests
it's unlikely they're affected.

--------------------------------------------------------------------------------
2999d4af36 | Adam Borowski | 2013-11-03 15:38:21 +0100

Move set_terrain_changed() away from map_knowledge.cc
It hardly deals with remembered map.

--------------------------------------------------------------------------------
2770e68c98 | Adam Borowski | 2013-11-03 15:33:08 +0100

Fix Labyrinth changes not registering the terrain change.
It did call only los_terrain_changed(), which is one of many things
set_terrain_changed() does.

--------------------------------------------------------------------------------
79d8b45db1 | Adam Borowski | 2013-11-03 15:23:59 +0100

Abyss bot: don't override the monster set.

--------------------------------------------------------------------------------
7047b33b27 | Adam Borowski | 2013-11-03 13:01:25 +0100

Shorten branch enums.
Seriously, even preparing this commit gave me a pain in the triangle between
the thumb and index finger's bases and the wrist.

--------------------------------------------------------------------------------
e06bfaaf86 | ontoclasm | 2013-11-03 01:15:26 -0500

Shift some D tiles; add recolored floor for low D
The floor and torches shift noticeably once you're past D:14 (and thus the
rune-lock).

--------------------------------------------------------------------------------
abf5573380 | Neil Moore | 2013-11-03 01:45:22 -0400

Another randart name.
Such canals, so leader.

--------------------------------------------------------------------------------
2535b90fef | Neil Moore | 2013-11-03 01:09:41 -0400

Don't make rF++++ better than rF+++ versus Cerebov.
We now apply DUR_FIRE_VULN after capping.

--------------------------------------------------------------------------------
a8b4f1c505 | Chris Campbell | 2013-11-03 04:01:22 +0000

Allow Naga breathe poison mutation upgrade to be removed
Previously it was only given out as a replacement for spit poison and
could never be removed. Now it is treated more like a normal (species-
unique) mutation.

--------------------------------------------------------------------------------
3a59dc6fc9 | Samuel Bronson | 2013-11-02 23:36:09 -0400

Pack some store fields & fiddle with comments

--------------------------------------------------------------------------------
330552f8ea | Samuel Bronson | 2013-11-02 23:33:06 -0400

Clear some buffers prominent in crash traces
This lets GDB avoid having to print out all that extraneous garbage.

--------------------------------------------------------------------------------
315f20b8f6 | Samuel Bronson | 2013-11-02 23:28:57 -0400

Don't tell GDB where the executable is, it knows how to find it ...

--------------------------------------------------------------------------------
c0596bc792 | Samuel Bronson | 2013-11-02 23:15:15 -0400

Lengthen the crash timeout to work on my PII, even calling GDB

--------------------------------------------------------------------------------
47f77d041e | Adam Borowski | 2013-11-03 02:42:35 +0100

... and flush when you're done with the dump.

--------------------------------------------------------------------------------
31787ae2ff | Adam Borowski | 2013-11-03 02:40:24 +0100

Print gdb error messages to the correct descriptor.
At that point, the crash dump is dup2()ed to stdout+stderr and the original
closed.

--------------------------------------------------------------------------------
6370897487 | Chris Campbell | 2013-11-02 23:37:25 +0000

Prompt before taking a runelock shaft
This will also prompt for unknown shafts, such as from chaos weapons.
Obviously these shouldn't even be possible, but in the meantime having the
incorrect prompt is better than forcing people past the runelock
accidentally.

--------------------------------------------------------------------------------
930d8ed00e | Chris Campbell | 2013-11-02 23:00:30 +0000

Make the D:14 shaft always go to D:15, reveal non-vault shafts if any are placed

--------------------------------------------------------------------------------
212af19d9c | Adam Borowski | 2013-11-02 23:18:16 +0100

Document & ^C

--------------------------------------------------------------------------------
12c5a8a6d5 | Adam Borowski | 2013-11-02 22:22:49 +0100

Hush a bogus warning on old compilers.
Their flow analysis is not smart enough to notice the variable is
initialized in all cases.

--------------------------------------------------------------------------------
06db4ab9fb | Adam Borowski | 2013-11-02 22:08:52 +0100

Be more brutal while suiciding when sad about the lack of gdb.
Since it's a crash, unwinding might fail, and there's another copy of
our process doing the same already.  Heck, we could go for the nuclear
option and raise(9).

--------------------------------------------------------------------------------
141deab41a | Adam Borowski | 2013-11-02 21:49:46 +0100

Don't allow the crash handler go twice if ther's no gdb.

--------------------------------------------------------------------------------
92b54d82f0 | Adam Borowski | 2013-11-02 21:24:31 +0100

Attach and run gdb during crashes.
Its usefulness varies depending on existence of debug info, although in
every case I got at least one more symbol resolved than without it.  Only
unstripped builds are fun, of course.

--------------------------------------------------------------------------------
ab40554ef1 | Adam Borowski | 2013-11-02 20:25:00 +0100

Another meme-based randart name.

--------------------------------------------------------------------------------
017865323d | Adam Borowski | 2013-11-02 20:08:16 +0100

Whitespace and brace fixes.

--------------------------------------------------------------------------------
fc36ad2eb9 | Adam Borowski | 2013-11-02 19:54:27 +0100

Use regular item generation for "unfilled slot" armour acquirement.
Getting a +0 cap is near-wasted acquirement (Ashenzari aside).  Getting a
meh brand or a bad randart at least looks like the code is trying.

This commit also removes the guarantee of non-negative enchantment.  Thus,
you won't get +0 gloves of nothing, but may get -2 bracers of archery
or -23 crystal plate mail "fgsfds" {Contam Str-5 Dam-4 -CAST Curse}.

--------------------------------------------------------------------------------
f7a0474bae | Adam Borowski | 2013-11-02 19:12:51 +0100

Drop Okawaru's chance for plain aminal skins.

--------------------------------------------------------------------------------
39b2da4f5f | Adam Borowski | 2013-11-02 18:49:09 +0100

Set aptitudes for removed skills to -99 (N/A).

--------------------------------------------------------------------------------
6f7014e57d | Adam Borowski | 2013-11-02 18:40:01 +0100

Make clang sated and old gcc intact.

--------------------------------------------------------------------------------
1b5a2c568c | Adam Borowski | 2013-11-02 17:52:26 +0100

Unbreak clang builds (broken by 0.14-a0-376-gd247091).
Not sure if oldest supported gcc has the .field=value syntax; if not,
we can either #ifdef it with field:value, or sacrifice that pointer per
unrand and just have them separate.

--------------------------------------------------------------------------------
540a5263df | Adam Borowski | 2013-11-02 17:18:37 +0100

Apply a cursed scroll of gold detection to an Orc entry.
'cuz that gold must be fake, right?

--------------------------------------------------------------------------------
00b39f2715 | Steve Melenchuk | 2013-11-02 08:35:53 -0600

Slightly adjusted version of gammafunk's D:14 stair vaults (#7691).
Mostly, this reduces the number of monsters they place; it also
prohibits _grave from placing a ghoul (too late-game of a monster in my
opinion).

--------------------------------------------------------------------------------
1e4988505e | Adam Borowski | 2013-11-02 13:44:54 +0100

Actually change thrashing horror's escape spell to Frenzy.
Also, tighten checks on whether it's allowed to fire.

--------------------------------------------------------------------------------
df267874d2 | Adam Borowski | 2013-11-02 13:44:54 +0100

A desc for monster frenzy.

--------------------------------------------------------------------------------
6a31aa9e10 | Adam Borowski | 2013-11-02 13:44:54 +0100

Store the entry level for every branch (rather than just depth).
This allows moving branches around without breaking save compat or at least
serious hacks.

The portal stack can be probably dropped now: two copies of the same level
can't exist anyway.

--------------------------------------------------------------------------------
ea129f0f56 | Adam Borowski | 2013-11-02 13:44:54 +0100

Repair the "no OODs in hells" rule.
Not sure if it's still needed, it didn't work since 0.11.

--------------------------------------------------------------------------------
3cb550a0a0 | Adam Borowski | 2013-11-02 13:44:54 +0100

Rename the "staircase back to the Crypt/Forest".
It could refer to its exit dynamically, but that's not worth the effort.
Having different features for branch exits in the first place is dubious
to me, having them vary their names is worse.

--------------------------------------------------------------------------------
e1004a1d01 | David Ploog | 2013-11-02 13:18:49 +0100

Guarantee D:14 shaft vault.
The trick is to use DEPTH: D:14 and CHANCE: 100% instead of PLACE: D:14. (Grunt)

--------------------------------------------------------------------------------
3c177f47aa | David Ploog | 2013-11-02 12:15:15 +0100

Allow D:14 shafts, make them known; try to always place one.
This is supposed to give players a one-way chance to bypass the rune lock.
When doing so, they have to procure a rune from Vaults or Hells or so in
order to be able to go back up to D:14.

--------------------------------------------------------------------------------
5befbcee01 | David Ploog | 2013-11-02 11:38:51 +0100

Also require a rune to go from D:15 to D:14.
In case you somehow ended up there (for example early portal to Hell).

--------------------------------------------------------------------------------
d5b0bda862 | Chris Campbell | 2013-11-02 09:12:49 +0000

Don't give Yred piety for desecrating holy remains
You already get piety from the kill itself, and it leads to degenerate
behaviour (casting Sublimation of Blood on every single holy chunk for
maximum piety gain, etc).

--------------------------------------------------------------------------------
3dc45ab3c3 | Naruni | 2013-11-02 00:43:04 -0400

Prevent copies of spectral weapons
Destroy spectral weapon when leaving a level and it did not follow.

--------------------------------------------------------------------------------
e4f419b36e | Steve Melenchuk | 2013-11-01 21:13:33 -0600

Fix a slightly larger problem with a giant problem (|amethyst).

--------------------------------------------------------------------------------
f657b8ea11 | Steve Melenchuk | 2013-11-01 21:10:57 -0600

Fix a small problem with a giant problem.
Oops.

--------------------------------------------------------------------------------
dd622f383d | David Ploog | 2013-11-02 03:58:02 +0100

Enable some other uniques on Swamp/etc branch ends.
These are all those which could spawn on Snake/etc:4 already:
Kirke, Louise, Nessos, Nikola, Norris, Roxanne, Rupert, Snorg.

--------------------------------------------------------------------------------
f5560fb25b | David Ploog | 2013-11-02 03:42:55 +0100

Exclude certain uniques from Swamp/Snake/Shoals/Spider ends.
This addressed precisely which could only appear on the last level:
Boris, Frederick, Jory, Margery, Mennas, Sojobo, Xtahua.

--------------------------------------------------------------------------------
da64e55173 | Adam Borowski | 2013-11-02 02:35:55 +0100

Show HOSTCC of fake_pty nicer.

--------------------------------------------------------------------------------
9cfcea48e4 | Adam Borowski | 2013-11-02 02:32:35 +0100

Fix fake_pty not passing return codes correctly.

--------------------------------------------------------------------------------
43343b9b51 | Adam Borowski | 2013-11-02 02:32:22 +0100

Check the right spot for solidity.

--------------------------------------------------------------------------------
878874954a | Steve Melenchuk | 2013-11-01 19:05:46 -0600

Four small vaults to place around the D:14 stair.
The idea I have here is to make them representative of what to expect
later in D.

More submissions to this effect are welcome.

--------------------------------------------------------------------------------
d494c005ca | Steve Melenchuk | 2013-11-01 18:58:50 -0600

Place exactly one downward/upward stair between D:14 and D:15.
If we want a clear separation between the two, it helps to have a single
point of entry/exit.

A lot of the special casing would be better handled by having lower D be
a separate branch.

--------------------------------------------------------------------------------
0b302e991e | Adam Borowski | 2013-11-02 00:52:27 +0100

Remove a pointless vault.
All it does is annoying and corroding people who:
1. happened to use mmap just on that particular level
2. are aware enough to notice
3. have tele+cTele
4. are unspoiled and don't know this particular trap

--------------------------------------------------------------------------------
9f27213edb | pubby | 2013-11-01 13:55:02 -0400

Fix formicid ability descriptions.
Was missing 'ability' after their name.

--------------------------------------------------------------------------------
bc5fafc588 | Adam Borowski | 2013-11-01 18:24:42 +0100

Merge branch 'master' into dwants

--------------------------------------------------------------------------------
3bf288448a | Adam Borowski | 2013-11-01 18:01:37 +0100

Assorted formatting fixes.

--------------------------------------------------------------------------------
8d0e104661 | Adam Borowski | 2013-11-01 17:30:41 +0100

Typo fix.

--------------------------------------------------------------------------------
d201e361ea | Adam Borowski | 2013-11-01 17:16:41 +0100

Dj: double the glow cost of Regeneration.
As a sustained effect, what counts is its relation to dissipation, and
although hunger costs were scaled down, dissipation wasn't.

--------------------------------------------------------------------------------
fe202b0ca5 | Adam Borowski | 2013-11-01 17:16:41 +0100

Dj: turn hover into regular permaflight.

--------------------------------------------------------------------------------
6718f45253 | Neil Moore | 2013-11-01 11:54:19 -0400

Remove a few in-code references to LO acceleration.

--------------------------------------------------------------------------------
1d816f89d8 | Neil Moore | 2013-11-01 11:51:36 -0400

Remove references to LO movement speed changes.

--------------------------------------------------------------------------------
d8b5a56b2d | Adam Borowski | 2013-11-01 13:20:38 +0100

Dj: say "Glow" rather than "Hunger" on the I screen.

--------------------------------------------------------------------------------
7b62364771 | Adam Borowski | 2013-11-01 13:07:52 +0100

Dj: allow using Death's Door.
The spell is notably worse than for other races, but here you go.

--------------------------------------------------------------------------------
074ac2fdc1 | Adam Borowski | 2013-11-01 13:05:23 +0100

Use enough_mp() in more cases.
This makes MP/EP more transparent, and allows "MP shutdown" effects.

--------------------------------------------------------------------------------
109c0d635f | Adam Borowski | 2013-11-01 12:45:10 +0100

Disallow using abilities with a hp cost while under DDoor.

--------------------------------------------------------------------------------
d83426aef5 | Adam Borowski | 2013-11-01 12:36:44 +0100

A better fail message for self-Sublimation for bloodless races.
Also, don't allow using the spell in bloodless forms.

--------------------------------------------------------------------------------
b797c15903 | Adam Borowski | 2013-11-01 12:08:39 +0100

Dj: apply the hover speed penalty only when moving.
The point was to hiding over liquid and/or using reaching/ranged from there
not a viable strategy.  I guess this is why gargoyles, tengu and black dracs
can't fly at XL1.  But then, merfolk, octopodes and grey dracs can do this
in water and lava orcs in lava, and the sky is not falling.

I wonder, perhaps even turning hovering into full flight would be ok?
That'd still be worse than for other fliers as you can't land when a titan
or a blizzard demon waltz close.

--------------------------------------------------------------------------------
75efcb1b9c | Adam Borowski | 2013-11-01 11:51:22 +0100

Dj: strongly nerf Invo aptitude (+1 -> -1).
Theme: even in the Koran they don't strike me as overly religious beings,
and the top bad guy, Iblis, happens to be a djinni.  In secular fiction,
they tend to be obsessed with magic instead.

Balance: healers are all about food, going wild with Makhleb is
food-intensiveas well.  It's a pity to hurt TSO and Lugonu, but they'll
manage.  Dj^Sif sucked even before this series of commits but that can
be quite easy to adjust.

--------------------------------------------------------------------------------
6762ad68fc | Adam Borowski | 2013-11-01 11:44:38 +0100

Make magical contamination grant -Wiz.
For everyone, although only Dj are likely to knowingly go into yellow.

The formula is cubic, thus it has little effect for safe amounts of glow
but goes really harsh as you go into harmful regions.

Should we compensate somehow?

--------------------------------------------------------------------------------
9c63442f6f | Adam Borowski | 2013-11-01 11:10:21 +0100

Dj: make the contam bar show finer details.
After scaling the values down, interesting things tend to happen in
the darkgrey region.  Thus, split it into three parts: dark grey,
light grey and yellow (warning).  This makes the colours inconsistent
with the status light, though -- ideas welcome.

As going into actual harmful contamination still isn't as bad as for
other races, thus this commit has the gauge's limit calibrated at
8000 rather than 5000.  We could put it farther, but then, it would
end up as your typical car gauge where on some models if you get to
halfway of the scale, there's a police chase after you.

--------------------------------------------------------------------------------
045af86263 | Adam Borowski | 2013-11-01 10:13:43 +0100

Dj: rescale glow to same levels as everyone else.
Food glow remains at the same relative level, glow glow is tripled.

Sadly, this means we won't see such pretty glowsplosions.  And with
glowsplosions using a random beam types, cold ones could cull excess
Dj population.

--------------------------------------------------------------------------------
d931115f92 | Adam Borowski | 2013-11-01 10:13:43 +0100

Dj: forbid wielding antimagic weapons.
You see, an item that blocks magic, used by a being made of magic...
Also, it exposes weirdness in the max_ep formula: if we went the intuitive
way, max_ep would be cut to 1/3.  Which would make the item useless.

--------------------------------------------------------------------------------
58b199c81e | Adam Borowski | 2013-11-01 10:13:43 +0100

Deduplicate.

--------------------------------------------------------------------------------
0ed792ff48 | Adam Borowski | 2013-11-01 10:13:43 +0100

Dj: satisfy nitpickers wrt that message about blood.

--------------------------------------------------------------------------------
73b55956c3 | Adam Borowski | 2013-11-01 10:13:43 +0100

Dj: disallow berserk.
Angels and demons can't zerk, and here we got an excuse.  Balance reasons
for Trog are obvious (no hunger).

Perhaps Trog should be forbidden outright (made of magic)?

--------------------------------------------------------------------------------
e73499daab | Adam Borowski | 2013-11-01 10:13:43 +0100

Use frenzy rather than berserk on thrashing horrors, as the latter didn't work.
Only stuff of natural holiness can 'zerk.  It can be debatable whether that
restriction makes sense, but that's how current code works.

--------------------------------------------------------------------------------
98e66c8d7d | Neil Moore | 2013-11-01 03:28:20 -0400

Allow actions from item description even if there is no room (#7484)
This might not be quite right on Android; the menu is still displayed,
and will probably cover some of the real text.  I am unable to test
on Android, though.

--------------------------------------------------------------------------------
65f1306753 | Chris Campbell | 2013-11-01 06:59:31 +0000

Fix the Tome of Destruction being usable multiple times for free
Reading it from its description screen now correctly redraws the screen
and exits the inventory when finished.

Possibly this can be fixed in a neater way since the Tome is now the only
book that can be (r)ead from the description menu, with manuals being used
automatically and spellbooks being identified on pickup?

--------------------------------------------------------------------------------
585ccf556f | Chris Campbell | 2013-11-01 06:59:30 +0000

Increase Borgnjor's Revivification to level 8

--------------------------------------------------------------------------------
79a0f274ab | Neil Moore | 2013-11-01 02:40:44 -0400

Set summoner when copying monster objects (#7521, #7536)
Monsters lost track of their summoners when moving between different
monster lists.  This caused spectral weapons to flee to the northeast
(towards (0,0)), as handle_behaviour did not know to set their new
target to the player's position.  The lack of summoner also caused
battlespheres to dissipate on their next action after taking stairs.

--------------------------------------------------------------------------------
334afa25fe | Neil Moore | 2013-11-01 00:02:55 -0400

Use cell_is_solid where appropriate.

--------------------------------------------------------------------------------
b7236c5810 | Neil Moore | 2013-11-01 00:02:17 -0400

Prevent a few more potential clouds in solid features.
Some wizmode-only until we get a wall-swimming form.

--------------------------------------------------------------------------------
2cbfbd65a6 | Neil Moore | 2013-10-31 23:44:32 -0400

Fix a disc of storms rain-placement crash.

--------------------------------------------------------------------------------
60ee58ef75 | Brendan Hickey | 2013-10-31 20:34:39 -0700

Revert "Revert Abyss/Thrashing horror changes"
This reverts commit 6485c99bb781b308f116e1a5ed974bd43843adc9
in part. Thrashing Horror bands are restored with berserk escape.

--------------------------------------------------------------------------------
b6cafcdeea | Jason Van | 2013-10-31 19:25:06 -0700

Abyss monster set revisions
There’s sort of an idea that Abyss has too many redundant, boring monsters,
that the demons overlap heavily with other branches, that variety will help.
However, using randomized floors as bases for spawns rarely gets
the more interesting parts of a given floor, instead mingling in more fluff.

As an alternative path, this patch weighs on and off monsters across
the current set to insert thematic, interesting branch representatives,
reducing less interesting currently-in monsters and demonic presence,
without heavily changing the balance of threats.

 * Cut and effectively replace in weight: mummy, necrophage, ugly thing,
   naga warrior, spiny worm, plain deep dwarf, and fungus for shapeshifter,
   orb spider, water elemental, orc sorcerer, basilisk, and wandering mushroom

 * Redistribute weight from draconians, golems, brain worm, bone dragon,
   freezing wraith, and flaming corpse to insert into the set
   deep elf sorcerer/demonologist, ophan, blink frog, and revenant

 * Put back in 3s because they're solid threats for the branch...
   but to reflect reducing overly-common demons of the branch,
   reduce the arbitrarily-common orange demon and reduce annoyance from
   neqoxecs. Likewise, redistribute weight from rare 3s and weaker 2s for
   ghost moth, quicksilver dragon, pearl dragon, spriggan enchanter,
   and glowing shapeshifter.

 * Scaling up by depth, place more: spatial maelstrom, shadow demon,
   hellephant, tentacled monstrosity, giant eyeball,
   flayed ghost, profane servitor.

 * Scaling down by depth, place less: Wight, Fire bat, ice beast,
   sky beast, iron devil, blue devil

The abyss is probably excessively dangerous by the bottom, though, now,
and could probably reduce the extra spawning shown on deeper floors,
or cut off some extreme threats (hell sentinel, ancient lich) until
at abyss rune depth.

While this makes the rarer monsters much stronger in theme and unique
danger, I can still see arguments on common thematic monsters.
I strongly discourage trying to make those more common thematic monsters
try to replace the currently solid set of abyss-unique monsters,
or place dozens of first-tier orcs, or yaks, slugs, snails, naga, bats, etc
with the excuse that they were pulled in too.

--------------------------------------------------------------------------------
5ac3e2fedb | Jason Van | 2013-10-31 19:21:23 -0700

Organize Abyss monster set list
Organize Abyss's monster list
Seriously, the list has nothing resembling order or grouping.
This sorts monsters into groups of natives, demons, miscellanous undead,
"outsider" branch representatives, and further miscellanous,
which should make it easier to assess the set as a whole.

--------------------------------------------------------------------------------
ae8d2e55d5 | Chris Campbell | 2013-10-31 22:55:31 +0000

Just check stone stairs/escape hatches on D:14
In case a branch entry or similar were to be added to D:14, for example.

--------------------------------------------------------------------------------
3d3b05d512 | Chris Campbell | 2013-10-31 22:41:10 +0000

Allow entering portal vaults and being banished on D:14

--------------------------------------------------------------------------------
633cbe5847 | Chris Campbell | 2013-10-31 22:08:06 +0000

Remove runed doors from a vault
There's only loot behind them...

--------------------------------------------------------------------------------
53a4035a3e | Chris Campbell | 2013-10-31 22:08:05 +0000

Revert "Purge '3' from the Abyss"
There's no good reason to exclude just one tier of demons, especially with
Abyss spawns now being drawn from more varied places and diluting the number
of demons generally.

This reverts commit c2eccffead06be99803836d85a963bb6d21b47fd.

--------------------------------------------------------------------------------
1a2730b044 | Neil Moore | 2013-10-31 18:00:48 -0400

Handle invalid abyssal levels on game load (Grunt)

--------------------------------------------------------------------------------
9d7bf75a23 | Neil Moore | 2013-10-31 17:45:48 -0400

Include abyssal level in assertion dumps.

--------------------------------------------------------------------------------
88b655898e | Raphael Langella | 2013-10-31 22:40:51 +0100

Use RUNE_LOCK_DEPTH instead of a magic number.

--------------------------------------------------------------------------------
7cd3ab65b1 | Adam Borowski | 2013-10-31 21:58:38 +0100

Provide more information in an assert.

--------------------------------------------------------------------------------
d5f0ba7bf9 | elliptic | 2013-10-31 12:56:00 -0400

Move the br.mid milestone to D:15.
To match the rune lock depth.

--------------------------------------------------------------------------------
f2529f3760 | Raphael Langella | 2013-10-31 17:23:24 +0100

Rune lock.
You need a rune to go to D:15. Downstairs of D:14 could be recoloured or
replaced by a portal (maybe more consistent with D:27 zot portal).

--------------------------------------------------------------------------------
2e89b76ebc | Adam Borowski | 2013-10-31 16:57:54 +0100

Fix a banished eldritch tentacle crash.

--------------------------------------------------------------------------------
263ca91b08 | Adam Borowski | 2013-10-31 16:57:54 +0100

Rewrite monster_iterator.
It degenerated to a simple loop over menv, hardly worth any syntactic sugar.
I kept it for now, though.

--------------------------------------------------------------------------------
a57962fa19 | Adam Borowski | 2013-10-31 16:57:54 +0100

monster_near_iterator
Does the "in view" part of functionality of monster_iterator, is simpler,
allows using los models other than LOS_DEFAULT, and gets rid of a lot of
uses of get_los().

The code is nearly identical as actor_near_iterator, but the old delegation
used more code than either of those.  Still, perhaps templating could work?

This commit also fixes a buttload of ignoring invis / see invis / sense invis
(ie, visible_to()) and act-through-glass bugs.

--------------------------------------------------------------------------------
b5aec581b1 | Adam Borowski | 2013-10-31 16:57:54 +0100

Rare insects, polymoths, chaos butterflies and bumblebees, back together!

--------------------------------------------------------------------------------
ec5ad0e6cc | Adam Borowski | 2013-10-31 16:57:54 +0100

Don't let Xom swap weapons with something in water/lava.
This often ends in the weapon destroyed unless you lure that merfolk onto
dry land, or without real recourse if that's a salamander.

--------------------------------------------------------------------------------
02d62bf907 | Adam Borowski | 2013-10-31 16:57:54 +0100

Simplify actor_iterator and some of its users, rename to actor_near_iterator.

--------------------------------------------------------------------------------
ec9c540f29 | Adam Borowski | 2013-10-31 16:57:53 +0100

Fix wind drake/Sojobo breath not working away from the player.

--------------------------------------------------------------------------------
8f059811dc | Adam Borowski | 2013-10-31 16:57:53 +0100

Eject some cases outside loops.
They are:
for (actor_iterator ai ...)
    if (ai->is_player())
        AAA
    else
        BBB

which can be written simpler as:
AAA
for (monster_iterator mi ...)
    BBB

as actor_iterator does some quirky encapsulation of monster_iterator.

--------------------------------------------------------------------------------
2471b96f47 | Adam Borowski | 2013-10-31 16:57:53 +0100

Dump an useless vector.
Also, drop support for starcursed mass players joining a monster chorus.

--------------------------------------------------------------------------------
c6935ab59b | Adam Borowski | 2013-10-31 16:57:53 +0100

Make actor->get_los() const.
Really, I'd like to make it nonexistant instead...

--------------------------------------------------------------------------------
d0b9e0fa3f | Adam Borowski | 2013-10-31 16:57:53 +0100

Get rid of most types of actor_iterator.

--------------------------------------------------------------------------------
57c8949bf5 | Adam Borowski | 2013-10-31 16:57:53 +0100

Simplify.

--------------------------------------------------------------------------------
1c218013da | Adam Borowski | 2013-10-31 16:57:06 +0100

Fix a crash when a monster dies to own water-elec discharge.

--------------------------------------------------------------------------------
96e2432250 | Steve Melenchuk | 2013-10-31 09:28:53 -0600

Consider Archmagi a non-strict valid brand for item types (ackack).
This doesn't generate it on any more items than it currently does, but
it does prevent the hat of the High Council from being invalidated.

--------------------------------------------------------------------------------
318bc0b365 | Adam Borowski | 2013-10-31 16:24:12 +0100

Don't crash on "?/m spectral" in tiles.

--------------------------------------------------------------------------------
ed9a349f68 | Adam Borowski | 2013-10-31 16:12:27 +0100

Do try to pick Place:$ for abyss layout/spawn purposes.

--------------------------------------------------------------------------------
a39c1b650b | Steve Melenchuk | 2013-10-31 09:08:12 -0600

Don't try to pick Place:0 for abyss layout/spawn purposes.

--------------------------------------------------------------------------------
9e7b93ed6e | Raphael Langella | 2013-10-31 15:32:41 +0100

Don't install transifex files.

--------------------------------------------------------------------------------
8b6206d0ad | Brendan Hickey | 2013-10-30 23:32:50 -0700

Add Ignis, a lantern monster
The Ignis will be a new abyss denizen.

It's slightly fast, maintains its distance and spams you with corona.
It requires some fiddling, requiring greater HD so everything doesn't
resist the attack, without being just a sack of experience.

ontoclasm and I also discussed making it noisy or mark you. Mark is
probably highly undesirable in the abyss.

--------------------------------------------------------------------------------
ae2d0ec29a | Steve Melenchuk | 2013-10-30 22:33:40 -0600

Random level selection for out-of-Abyss spawns (bh).

--------------------------------------------------------------------------------
daa046bf58 | Steve Melenchuk | 2013-10-30 22:21:08 -0600

Have the one-in-three out-of-Abyss mons chance always apply (bh).
That is, there's a one in three chance that any given Abyss spawn is
from somewhere else in the dungeon - the rest of the implementation of
what ba20e99 was meant to do.

--------------------------------------------------------------------------------
ba20e991ad | Brendan Hickey | 2013-10-30 20:54:51 -0700

Draw some abyssal spawns from outside the abyss.

--------------------------------------------------------------------------------
de00065791 | Steve Melenchuk | 2013-10-30 21:36:24 -0600

Don't have monsters consider blinking if Tornadoing.
Presumably they want to get the full effect of the spell (and the
translocation nerf doesn't apply to them yet).

This is more of a short-term solution while I figure out a reasonable
way to get the translocation nerf to apply.

--------------------------------------------------------------------------------
ddbf9c55cd | Steve Melenchuk | 2013-10-30 21:31:27 -0600

Shut up a compiler warning.

--------------------------------------------------------------------------------
3158a90de0 | Steve Melenchuk | 2013-10-30 21:31:27 -0600

Tornado as a monster spell for the sole use of Lom Lobon.
This takes the place of one instance of Blink Range and instead of the
emergency Ice Storm.

Currently this isn't nerfed by monster translocations; I question if we
really want to have Blink Range on Lom anyway (it makes him extremely
easy to avoid).

If there's another scenario in which this is likely to work, well, it's
here now.

--------------------------------------------------------------------------------
630d5cd27f | Steve Melenchuk | 2013-10-30 21:31:26 -0600

Have the Orb not take up an inventory slot.
It still, however, costs 60 aum to carry, and has all of its other
effects.

--------------------------------------------------------------------------------
04def9691e | Neil Moore | 2013-10-30 23:30:28 -0400

Simplify.

--------------------------------------------------------------------------------
2b582ab0e9 | Brendan Hickey | 2013-10-30 20:07:19 -0700

Set Abyssal sub-branch when initializing.

--------------------------------------------------------------------------------
49613050f7 | Brendan Hickey | 2013-10-30 20:00:34 -0700

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

--------------------------------------------------------------------------------
432c5703d0 | Translators | 2013-10-30 23:11:05 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
77d7be995a | Adam Borowski | 2013-10-30 20:56:15 +0100

Use French spacing in jump attack descs.
We standardize on just a single space after full stop (yeah, I hate this
myself, but let's be consistent).

--------------------------------------------------------------------------------
686ff28836 | gammafunk | 2013-10-30 20:53:57 +0100

Remove reference to increased jump-attack damage and indicate that it uses 
melee.

--------------------------------------------------------------------------------
2f2f0fec46 | Adam Borowski | 2013-10-30 20:39:25 +0100

De-noise Elemental Staff.

--------------------------------------------------------------------------------
5fe5df5e3e | Steve Melenchuk | 2013-10-30 13:36:27 -0600

Properly enumerate High Council's player doll tile.

--------------------------------------------------------------------------------
21eefe3ef3 | Steve Melenchuk | 2013-10-30 13:33:29 -0600

Don't space out on unrand inscriptions (#7685).
This was being caused by INSCRIP being generated as "" instead of NULL
by default.

--------------------------------------------------------------------------------
9632486ad5 | Steve Melenchuk | 2013-10-30 13:32:03 -0600

De-noise High Council.
This was mostly a relic of its original design.

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

--------------------------------------------------------------------------------
1920e20628 | Adam Borowski | 2013-10-30 20:04:45 +0100

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

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

--------------------------------------------------------------------------------
d938c59583 | Raphael Langella | 2013-10-30 17:55:39 +0100

Increase the size of the description box in species/job selection menu.
Most languages are not as concise as english, it's quite hard to fit
translations on 2 lines. Besides, there's plenty of room on the screen.

--------------------------------------------------------------------------------
5bf649e60a | Neil Moore | 2013-10-30 06:43:41 -0400

Don't mandate uniqueness of custom inscriptions (pubby)

--------------------------------------------------------------------------------
bd5e84544f | Neil Moore | 2013-10-30 06:32:55 -0400

Fix whitespace.

--------------------------------------------------------------------------------
ded89c18c7 | Neil Moore | 2013-10-30 05:47:39 -0400

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

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

--------------------------------------------------------------------------------
04546ee12f | Neil Moore | 2013-10-30 05:47:23 -0400

Don't crash on agentless refrigerate.
This could happen, for example, if an unknown scroll of brand weapon
bestows the freezing brand.  See for example:
  http://dobrazupa.org/morgue/Nordon/crash-Nordon-20131030-085130.txt

--------------------------------------------------------------------------------
d2e2345601 | ontoclasm | 2013-10-29 23:29:02 -0500

Brighten centaur tiles

--------------------------------------------------------------------------------
5704405f15 | Steve Melenchuk | 2013-10-29 17:27:10 -0600

Unrand: the +2 hat of the High Council {Archmagi, Wiz- Noisy Contam Stlth-}.
It has an anti-wizardry effect, e.g. it negatively impacts spell success
rates - on the whole, it's basically a hat of wild magic.

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

--------------------------------------------------------------------------------
8de7c5b38b | Steve Melenchuk | 2013-10-29 17:14:26 -0600

Allow unrands to have a special string added to their inscription.
For example, Hellfire gains a fake "hellfire" brand inscription.

--------------------------------------------------------------------------------
fcde9f1bc4 | Steve Melenchuk | 2013-10-29 17:14:26 -0600

Use dbname for mimic_name() instead of basename.
Previously, you'd get randart mimics such as "ravenous distressingly
furry chain mail mimic".

--------------------------------------------------------------------------------
7e64cc4a4b | ontoclasm | 2013-10-29 17:44:32 -0500

Macabre finger tile (pubby, 7642)

--------------------------------------------------------------------------------
8452be9eac | Adam Borowski | 2013-10-29 22:51:26 +0100

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

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

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

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

* same for tiles and Android.

* yesno() without a safeanswer will loop forever

--------------------------------------------------------------------------------
15fdb53f75 | Adam Borowski | 2013-10-29 20:32:30 +0100

Join Snakebite with Sniper, blowgun Assassin, Accuracy and LCS.

--------------------------------------------------------------------------------
7477395d9c | Neil Moore | 2013-10-29 08:40:30 -0400

Correct a renamed spell in two Sprints (#7678).

--------------------------------------------------------------------------------
e08f65cd33 | Neil Moore | 2013-10-29 08:34:04 -0400

Use a member, not a constructor parameter.

--------------------------------------------------------------------------------
b732830a72 | Neil Moore | 2013-10-29 08:20:03 -0400

Suppress Elemental Staff brands.

--------------------------------------------------------------------------------
b6717e1276 | Neil Moore | 2013-10-29 08:18:59 -0400

Suppress monster weapon brands.

--------------------------------------------------------------------------------
c9b3623f6e | Adam Borowski | 2013-10-29 12:50:57 +0100

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

--------------------------------------------------------------------------------
c50ef73cf1 | Adam Borowski | 2013-10-29 12:46:54 +0100

Specify upgrade inhibition in art-data.txt

--------------------------------------------------------------------------------
c86e462775 | Adam Borowski | 2013-10-29 12:34:18 +0100

Update unrands on game load.
It's frustrating to recreate them over and over when you're messing with one.

--------------------------------------------------------------------------------
d18ad990de | Adam Borowski | 2013-10-29 12:17:31 +0100

Shorten the inscription on Elemental Staff a bit.
Using ARTP_AC instead of a brand saves 4 characters, having both pluses
equal another 3.

--------------------------------------------------------------------------------
e4af814b00 | Adam Borowski | 2013-10-29 12:15:18 +0100

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

Randart noises seem to not fit it at all.

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

--------------------------------------------------------------------------------
388476e88d | Brendan Hickey | 2013-10-28 21:18:09 -0700

Merge branch 'banish'
Conflicts:
	crawl-ref/source/mon-pick-data.h

--------------------------------------------------------------------------------
c31db72ae9 | Neil Moore | 2013-10-28 22:00:48 -0400

Don't wind blast monsters through walls (Naruni, #7434)
Consider the following situation, with a monster at m and
a wall at %.

....^%##
....m#!
...*.#
...*.#
..*..#
.@...#

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

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

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

--------------------------------------------------------------------------------
e8c3188646 | Steve Melenchuk | 2013-10-28 19:54:38 -0600

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

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

--------------------------------------------------------------------------------
a52d9e0c09 | Steve Melenchuk | 2013-10-28 19:18:02 -0600

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

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

--------------------------------------------------------------------------------
f4e7ac1b5d | Adam Borowski | 2013-10-28 17:48:01 +0100

Replace a weird use of distance_iterator by adjacent_iterator.
Not any more efficient (radius_iterator is notoriously slow), but
easier to read.

--------------------------------------------------------------------------------
cb884c0d04 | Adam Borowski | 2013-10-28 16:38:38 +0100

Allow viewing remembered info about out of LOS stuff.

--------------------------------------------------------------------------------
7677ce75e7 | Adam Borowski | 2013-10-28 16:37:04 +0100

Point out the location of monsters in wall if DEBUG_FATAL is set.
Although the "highlight" consisting of a mere '?' is hard to find.

--------------------------------------------------------------------------------
023f6cc27b | Neil Moore | 2013-10-28 10:27:30 -0400

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

This reverts commit 9cddb8dbda336f4ed1ff9473e3800859b5960691.

--------------------------------------------------------------------------------
3d36308c26 | Adam Borowski | 2013-10-28 13:14:47 +0100

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

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

--------------------------------------------------------------------------------
9232e2cf62 | Adam Borowski | 2013-10-28 13:01:03 +0100

Don't impose TSO penance for reflecting poison/draining (you still get xp).
This introduces a new pseudo-agent, akin to ANON_FRIENDLY_MONSTER.

--------------------------------------------------------------------------------
3e13463582 | Adam Borowski | 2013-10-28 10:15:59 +0100

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

--------------------------------------------------------------------------------
e315b49f66 | Adam Borowski | 2013-10-28 09:36:16 +0100

Drop a token file into test/big/
git would remove the directory otherwise.

--------------------------------------------------------------------------------
26e177c896 | Adam Borowski | 2013-10-28 09:36:16 +0100

Vastly shorten test/big/abyss_shift.lua, enable it by default.
Although, it doesn't do anything stress tests wouldn't catch.

--------------------------------------------------------------------------------
f9337f212a | Adam Borowski | 2013-10-28 09:33:19 +0100

"./crawl -test list" to enumerate available internal tests.
(We also got "canned" tests which are scripted using regular arena or game.)

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

--------------------------------------------------------------------------------
2cbfb5cbfe | Adam Borowski | 2013-10-28 08:28:43 +0100

A couple more test cases.

--------------------------------------------------------------------------------
b52781e70f | ontoclasm | 2013-10-27 20:49:32 -0500

Additional gargoyle base tiles (Xion350, 7631)

--------------------------------------------------------------------------------
67f566f1b1 | ontoclasm | 2013-10-27 20:49:31 -0500

Icon for durably-summoned monsters

--------------------------------------------------------------------------------
cf0012fa80 | Steve Melenchuk | 2013-10-27 18:52:44 -0600

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

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

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

--------------------------------------------------------------------------------
2f15708686 | Adam Borowski | 2013-10-28 00:33:20 +0100

Actually init per-game seeds outside save transfers.

--------------------------------------------------------------------------------
3660ee2c86 | Adam Borowski | 2013-10-28 00:33:20 +0100

Make -test NORETURN and easier to valgrind.

--------------------------------------------------------------------------------
5ae7897769 | Adam Borowski | 2013-10-28 00:33:20 +0100

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

--------------------------------------------------------------------------------
bd1df2a5a7 | Chris Campbell | 2013-10-27 22:11:55 +0000

Remove some unused commands
CMD_EXAMINE_OBJECT, CMD_DISARM_TRAP and CMD_DESTROY_ITEM.

--------------------------------------------------------------------------------
60082f27ef | Adam Borowski | 2013-10-27 23:01:39 +0100

Use a COMPILE_CHECK instead of an ASSERT.

--------------------------------------------------------------------------------
f86944d2a8 | Adam Borowski | 2013-10-27 22:56:48 +0100

Use the proper #define for berserk hunger boundary.

--------------------------------------------------------------------------------
716d9f248d | Neil Moore | 2013-10-27 15:26:02 -0400

Improve a variable name.

--------------------------------------------------------------------------------
34af19d381 | Neil Moore | 2013-10-27 15:00:18 -0400

End the tournament.

--------------------------------------------------------------------------------
69e7fb98dc | Adam Borowski | 2013-10-27 19:45:27 +0100

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

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

--------------------------------------------------------------------------------
ede5a845fb | Adam Borowski | 2013-10-27 19:42:38 +0100

Don't consider a hard_reset dismissal on the arena to be an error.

--------------------------------------------------------------------------------
afa3d1883c | Neil Moore | 2013-10-27 14:35:23 -0400

Sync manual from Wiki.

--------------------------------------------------------------------------------
c0cc29d996 | Chris Campbell | 2013-10-27 18:21:45 +0000

Remove the =s inscription
It does nothing, since stash tracking is always enabled.

--------------------------------------------------------------------------------
eca39fc5a5 | Adam Borowski | 2013-10-27 19:07:26 +0100

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

--------------------------------------------------------------------------------
0052189f9e | Chris Campbell | 2013-10-27 16:54:24 +0000

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

--------------------------------------------------------------------------------
aecfd6b6c9 | Chris Campbell | 2013-10-27 16:54:23 +0000

Don't allow Vampires to be lichformed

--------------------------------------------------------------------------------
6c2f7d2fff | Adam Borowski | 2013-10-27 16:58:50 +0100

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

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

--------------------------------------------------------------------------------
c6b2cad466 | Adam Borowski | 2013-10-27 16:58:49 +0100

Kill the player upon gaining frail / losing robust / etc mutations.

--------------------------------------------------------------------------------
9cddb8dbda | Steve Melenchuk | 2013-10-27 08:30:47 -0600

Veto on failure to place a 100% chance vault.
This is intended to preserve the chance that important vaults such as
Hell entries place properly.

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

--------------------------------------------------------------------------------
b95792fc17 | Adam Borowski | 2013-10-27 01:53:01 +0200

Refactor additional messages for new monsters spawning.
Not sure why do we need both these and "comes into view".

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

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

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

--------------------------------------------------------------------------------
1b0b748f7c | Adam Borowski | 2013-10-27 01:53:01 +0200

As abyss monster creation messages imply visible, simplify.

--------------------------------------------------------------------------------
b093188c13 | Adam Borowski | 2013-10-27 01:53:01 +0200

Shorten.

--------------------------------------------------------------------------------
679d65df80 | Adam Borowski | 2013-10-27 01:53:01 +0200

Rebase hunger values at 0 (from 100).
Also, get rid of a number (but not all) literal values, replacing them with
defines.

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

--------------------------------------------------------------------------------
38e8f2dd12 | Adam Borowski | 2013-10-27 01:51:10 +0200

Allow +Rage, *RAGE, -TELE and Contam on faerie dragon armour.
Also, make the enchantment more random.

--------------------------------------------------------------------------------
d361449565 | Neil Moore | 2013-10-26 18:24:46 -0400

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

--------------------------------------------------------------------------------
a3ed00e249 | Neil Moore | 2013-10-26 18:04:58 -0400

Reundeadify vampires on game load (#7668)

--------------------------------------------------------------------------------
2ef00a3eea | Neil Moore | 2013-10-26 17:56:14 -0400

Don't enliven vampires when leaving lich form (#7668).
It could happen through chaos brand, metamorphosis card, etc.

--------------------------------------------------------------------------------
12b34a6fa6 | Neil Moore | 2013-10-26 17:39:15 -0400

Fix cygwin (and maybe other) rltiles tool builds.
0.14-a0-211-g2268ef7 removed the #include <stdio.h> in tile.h, but
left the use of FILE in tile_list_processor.h.

--------------------------------------------------------------------------------
a4f7eae994 | Neil Moore | 2013-10-26 17:36:43 -0400

Simplify.

--------------------------------------------------------------------------------
9047ce00ae | Chris Campbell | 2013-10-26 22:02:42 +0100

Don't deal Awaken Forest damage to sanctuaried players (#7669)

--------------------------------------------------------------------------------
4767b33aea | Chris Campbell | 2013-10-26 17:15:36 +0100

Make Xom's draining effect only drain once

--------------------------------------------------------------------------------
3a26ff0575 | Adam Borowski | 2013-10-26 15:30:52 +0200

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

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

--------------------------------------------------------------------------------
c6333709a0 | Steve Melenchuk | 2013-10-25 21:38:30 -0600

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

--------------------------------------------------------------------------------
d3462e6f0f | Adam Borowski | 2013-10-26 05:23:14 +0200

Typo fixes.

--------------------------------------------------------------------------------
131d11a7c2 | Adam Borowski | 2013-10-26 05:20:22 +0200

Rewrite (x*y)/z as x*y/z
Also, simplify an expression such removal of parentheses revealed.

--------------------------------------------------------------------------------
6b76d92827 | Adam Borowski | 2013-10-26 05:20:22 +0200

A bunch of decorative abyss entry vaults.

--------------------------------------------------------------------------------
4756083227 | Steve Melenchuk | 2013-10-25 19:21:26 -0600

Handle messages for exploding projectiles at walls / edge of LOS properly.
Previously you could fire explosions to the edge of LOS and have the
game think you'd only heard them, not seen them.

--------------------------------------------------------------------------------
df6160b6ef | Neil Moore | 2013-10-25 20:54:51 -0400

Don't give malformed messages for invis abyss spawns (#7664)
In fact, don't give any message at all.

--------------------------------------------------------------------------------
917dc0c447 | Steve Melenchuk | 2013-10-25 18:46:54 -0600

Changelog through 0.14-a0-385-gada9c99.
Usual "I may have missed something" disclaimer applies.

--------------------------------------------------------------------------------
ada9c99c82 | Steve Melenchuk | 2013-10-25 18:32:28 -0600

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

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

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

--------------------------------------------------------------------------------
9d11bedcde | Steve Melenchuk | 2013-10-25 17:50:05 -0600

Spruce up abyss entries (incl. #6921).
This is one vault appropriation and one vault from Mantis, as well as
the functionality seen in f07e438 applied to Abyss entries.

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

--------------------------------------------------------------------------------
3207b833c2 | Chris Campbell | 2013-10-26 00:07:16 +0100

Remove now-unnecessary no_rtele_into from a vault

--------------------------------------------------------------------------------
9abd8898d0 | Chris Campbell | 2013-10-26 00:03:24 +0100

Make some portal vaults easier to enter
Don't block off bailey_axe_3 with water, always generate some source of
flight in bailey_axe_4, always generate a path to the portal in
enter_volcano_4.

--------------------------------------------------------------------------------
f07e438b2e | Steve Melenchuk | 2013-10-25 16:56:19 -0600

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

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

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

--------------------------------------------------------------------------------
c5deab54c8 | Steve Melenchuk | 2013-10-25 16:55:19 -0600

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

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

--------------------------------------------------------------------------------
16e8c2b310 | Steve Melenchuk | 2013-10-25 16:54:13 -0600

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

--------------------------------------------------------------------------------
8d2b60c049 | Steve Melenchuk | 2013-10-25 16:49:22 -0600

Fix portal vault chance tagging.
dgn.chance takes an absolute chance number, not a string.

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

--------------------------------------------------------------------------------
fd018d8dad | Steve Melenchuk | 2013-10-25 09:36:25 -0600

Don't freeze fsim on spurious ranged combat prompts.
Such as the ones caused by some of the proposed unrand changes.

--------------------------------------------------------------------------------
d24709164a | Steve Melenchuk | 2013-10-25 09:36:24 -0600

Properly handle ranged unrands affecting their ammo.
Previously this functionality didn't operate at all; it should now
be able to work as expected.

--------------------------------------------------------------------------------
e732ba084a | Steve Melenchuk | 2013-10-25 09:32:41 -0600

Tag the noncrumbling statue vaults as extra.
This is the case for everything else in the section, and I don't see the
harm in disallowing these in particular from taking the full minivault
slot.

--------------------------------------------------------------------------------
e9336d9739 | Adam Borowski | 2013-10-25 16:52:43 +0200

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

--------------------------------------------------------------------------------
80452e7648 | BlackSheep | 2013-10-25 15:42:46 +0100

Make ^ toggle god screen

--------------------------------------------------------------------------------
8131501abe | Chris Campbell | 2013-10-25 15:42:45 +0100

Always use untransformed body weight to determine carrying capacity
Smaller forms already do this to avoid frequently encumbering the player.
Doing the same for larger forms prevents ice formed characters, for
example, from automatically picking up larger numbers of chunks which will
then encumber the player on untransforming.

--------------------------------------------------------------------------------
fff5158186 | Chris Campbell | 2013-10-25 15:42:44 +0100

Remove the blowgun of the Assassin
It's another highly underwhelming unrand - it doesn't do anything unique,
and can sometimes even be worse than a plain blowgun since it can't be
enchanted up to +9.

--------------------------------------------------------------------------------
d6a04bcbdd | Adam Borowski | 2013-10-25 16:09:00 +0200

Fix the statues in four dk's vaults.  They tended to crumble!
It appears they served no purpose other than confusing unspoiled players
with regard to what the strange messages are supposed to mean, and what kind
of nasty critters will jump at them from behind.

Sadly, such kinds of flavour tends to be completely lost on players who
either not notice it at all (mashing 'o') or waste time rooting for loot.

--------------------------------------------------------------------------------
7bd5468191 | Adam Borowski | 2013-10-25 15:35:27 +0200

Simplify; support Unicode.

--------------------------------------------------------------------------------
0929d457a0 | Adam Borowski | 2013-10-25 15:09:53 +0200

Don't let Jiyva permanently drain stats if one reaches 72.

--------------------------------------------------------------------------------
aa88e2029d | Adam Borowski | 2013-10-25 14:52:38 +0200

Don't penalize Spellcasting for Jiyva weighting.
Victory dancing scrolls is gone ages away.

--------------------------------------------------------------------------------
04b2b64851 | Adam Borowski | 2013-10-25 14:29:43 +0200

Fix an arena bookkeeping crash when a slime creature/mass splits.
This requires working around a hack in mgen_data.

--------------------------------------------------------------------------------
2883480304 | Steve Melenchuk | 2013-10-24 07:49:25 -0600

Piercer gets the penetration brand (was vorpal).
Current consensus is that before this change, Piercer is boring (not
useless like some other recently removed unrands, though). Having a
weapon and brand combination not attainable any other way should be more
interesting.

Also, it seems appropriate for a weapon named Piercer to pierce things.

--------------------------------------------------------------------------------
d3b3d37f97 | Adam Borowski | 2013-10-24 04:11:22 +0200

Document that the lowest possible you.hunger is 100 rather than 0.
This could be probably changed, but we got a couple of non-relative cases:
Zin's wrath halves you.hunger, hungry ghost melee reduces it by 1/4.

--------------------------------------------------------------------------------
9a5cc34cc2 | Adam Borowski | 2013-10-24 03:42:02 +0200

Revert "Revert "Don't give Gargoyles innate rElec""
Not before some discussion.  I do think having Gr be different from any
other "living stone" in the game is a bad idea, but this definitely
shouldn't have been pushed before we agree on it.  I just had a pile of
commits atop it and forgotten why I did not push earlier.

This reverts commit cff28afa16543736eb43eb14f8ffb017cddfddc4.

--------------------------------------------------------------------------------
030a9692ab | Adam Borowski | 2013-10-24 01:16:23 +0200

Fix a crash when a boulder beetle dies to its own first move.
Besides, why should they even get to start rolling if there's an enemy
next to them?  Isn't rolling damage supposed to require some space to
gain momentum?  They can keep biting when up close.

--------------------------------------------------------------------------------
1d578dda6f | Adam Borowski | 2013-10-24 00:30:34 +0200

Drop a lot of superfluous parentheses.
These can be really confusing, especially if there are operators of different
priorities, or multiple levels of parentheses, nearby.

--------------------------------------------------------------------------------
19c3e5f86f | Adam Borowski | 2013-10-24 00:30:34 +0200

Staticalize.

--------------------------------------------------------------------------------
36a65b26fc | Adam Borowski | 2013-10-24 00:30:34 +0200

Inline.
Really, that blink/jump hack should go.

--------------------------------------------------------------------------------
de479db4a7 | Adam Borowski | 2013-10-24 00:30:34 +0200

Drop useless null termination.

--------------------------------------------------------------------------------
0693e2c148 | Adam Borowski | 2013-10-24 00:30:34 +0200

Dealtarify a Blade entry (nicolae)

--------------------------------------------------------------------------------
300c4468aa | Adam Borowski | 2013-10-24 00:30:34 +0200

Fix a (marshalled!) infinite leak in the Abyss.
For added insult, nothing used that list anymore.

--------------------------------------------------------------------------------
79f717c01b | Adam Borowski | 2013-10-24 00:30:34 +0200

Fix a wizmode player teleport crash.

--------------------------------------------------------------------------------
6c6489ef1a | Adam Borowski | 2013-10-24 00:30:33 +0200

Don't force --test to try to generate items of removed brands umpteen times.

--------------------------------------------------------------------------------
75a32772cc | Adam Borowski | 2013-10-24 00:30:33 +0200

Fix a "can't happen" message.

--------------------------------------------------------------------------------
22a9d0ca82 | Adam Borowski | 2013-10-24 00:30:33 +0200

Stop a poison miscast when in a wall.
Unlike big_cloud ones (which can spill), a size 1 cloud shouldn't even give
a message if it can't spawn the cloud.

--------------------------------------------------------------------------------
1a70311687 | Adam Borowski | 2013-10-24 00:30:33 +0200

Drop support for explicit string length limits.
All that's left is 32K for marshallString() and 2G for marshallString4().

This also fixes a game-breaking crash when marshallString() saves one of
1000 bytes or longer -- it would fail on restore.

--------------------------------------------------------------------------------
5826b08da9 | Adam Borowski | 2013-10-24 00:30:33 +0200

Fix inscriptions and pghost names getting truncated on saving.
Inscriptions above 80 bytes make quite little sense, but any bad effects
would affect the session they were created in just as well.

Player ghosts, on the other hand, have a max length of 30 rather than 20
that was hard-coded here.  And that's 30 width vs 20 bytes.

--------------------------------------------------------------------------------
23bff0a804 | Adam Borowski | 2013-10-24 00:30:33 +0200

Fix the desc for "floor" not being shown.

--------------------------------------------------------------------------------
cff28afa16 | Adam Borowski | 2013-10-24 00:30:33 +0200

Revert "Don't give Gargoyles innate rElec"
There is not a single reason for this change provided, other than a vague
feeling that "this feels weird".  On the other hand, there are multiple
reasons for them to do have rElec:
* stone
* consistency with monster gargoyles
* player confusion about which monster has which resistance
* the closer races are to each other, the more boring they are
* consistency with statue form

This reverts commit 1c54f6e1cd9b1963f74873faaf739c088f791bfd.

--------------------------------------------------------------------------------
b5ff38ebc8 | Steve Melenchuk | 2013-10-23 13:22:06 -0600

Make chaos beam effects irresistible.
This matches chaos ranged weapons to chaos melee weapons in terms of
resistibility.

Xom thinks this is hilarious!

--------------------------------------------------------------------------------
345611fe4c | Steve Melenchuk | 2013-10-23 13:22:05 -0600

Don't generate Sniper.
We tried a similar gimmick with the +27,-1 knife of Accuracy; it just
doesn't work very well.

--------------------------------------------------------------------------------
780d593905 | Steve Melenchuk | 2013-10-23 13:22:04 -0600

Fix typo in a vault (nicolae, #7569).
Oops.

--------------------------------------------------------------------------------
df4068cd40 | Chris Campbell | 2013-10-23 16:20:04 +0100

Don't let flaying ghosts flay sanctuaried targets (#7657)

--------------------------------------------------------------------------------
fc043ae552 | Chris Campbell | 2013-10-23 16:19:32 +0100

Use existing spellpower breakpoints for LRD wall destruction
And add a mention of when each wall can be destroyed to the spell
description.

--------------------------------------------------------------------------------
e09574f14b | Chris Campbell | 2013-10-23 15:08:45 +0100

Simplify LRD's damage and radius across different target types
Ice, bone, stone and rock (including partial and full petrification) now
all have the same type of explosion: radius 1, 3 damage dice. Mostly this
just means slightly more damage across the board for a few target types.

The chance to instantly kill skeletal creatures and statues is also
removed. The main notable special case remaining is the reduced damage to
player Gargoyles.

--------------------------------------------------------------------------------
de3bacb8c1 | Chris Campbell | 2013-10-23 14:19:17 +0100

Remove the Polymorph spell
The wand works fine as a fairly plentiful source of polymorph for players,
and the spell is hardly used.

--------------------------------------------------------------------------------
4dbb6ee0fb | Adam Borowski | 2013-10-22 23:18:04 +0200

Likewise, remove orc slaying.
Such weapons retained the brand, yet it did nothing.

--------------------------------------------------------------------------------
6d63218842 | Adam Borowski | 2013-10-22 23:18:04 +0200

Remove reaching from weapons when upgrading saves; misc cleanup.
The brand merely got its name hidden, resulting in strange results in tiles
and wizmode.

--------------------------------------------------------------------------------
61e19db39a | Adam Borowski | 2013-10-22 23:06:39 +0200

Fix a dryad simulacrum crash.

--------------------------------------------------------------------------------
8fb7a5d7a0 | Chris Campbell | 2013-10-22 19:50:01 +0100

Rework the slow healing mutation
Levels 1 and 2 halve and stop your natural healing respectively, but only
when hostile monsters are visible. This should make resting in safe places
less annoying, while giving the mutation a noticeable effect when in
combat.

Level 3 is unchanged, as is the mutation's effect on stat drain recovery
(slowed by 1/3 per level).

--------------------------------------------------------------------------------
118bf1a1ac | Chris Campbell | 2013-10-22 15:32:48 +0100

Remove Song of Shielding
Just mimicking guardian spirit, even if it works a bit differently, isn't
very interesting, and it appears to not be useful anyway. It's also
inconsistent in terms of not behaving as a "song" in the same way as Song
of Slaying (and making the two songs exclusive would make it even worse).

--------------------------------------------------------------------------------
20f95d8413 | Chris Campbell | 2013-10-22 15:32:10 +0100

Fix noise display in Song of Slaying description (#7627)

--------------------------------------------------------------------------------
32aaa6d603 | Chris Campbell | 2013-10-22 15:32:02 +0100

Adjust Song of Slaying
Randomise (and increase on average) the duration, reduce the power cap
to 100, and slightly loosen the requirements for monster difficulty
(each monster difficulty tier can provide 1 more slaying than before).

--------------------------------------------------------------------------------
a2f7d0d50f | Chris Campbell | 2013-10-22 15:31:24 +0100

Rework the Elixir card
Restore HP or MP over time (10% of max HP/MP per turn for a variable
number of turns) instead of instantly.
Power 0: restore HP or MP on a coinflip
Power 1: restore HP if at <50% HP or MP otherwise
Power 2: restore both HP and MP

Still fully restores HP and MP at power 2, but over 10 turns instead of
instantly.

--------------------------------------------------------------------------------
8ff3f95647 | Chris Campbell | 2013-10-22 14:57:41 +0100

Reduce Shadow Creatures summon cap, don't cap band members
Band members already have a very short duration, capping them along with
the band leaders results in the entire pack getting capped and timing out
immediately.

--------------------------------------------------------------------------------
b0ee51420f | Chris Campbell | 2013-10-22 14:57:40 +0100

Don't place additional webs over time in Spider
There are more than enough between the initial amount and those from
jumping spider attacks. Placing even more over time makes autotravel
through the branch much more difficult than it needs to be.

--------------------------------------------------------------------------------
c7ef5b85fb | Chris Campbell | 2013-10-22 14:57:39 +0100

Always identify wands on zap
It was easy but tedious to reliably identify any wand with the strategy of
"zap a hurt, low-MR natural monster that's standing in front of a wall".
Identifying after one zap keeps the slight tradeoff of using up a charge
if you choose not to scroll-ID. Monster zaps still have to have a visible
effect to be identified, potentially this could be changed to always ID
after seeing a zap too (and then beam.obvious_effect would no longer be
necessary?).

--------------------------------------------------------------------------------
7c54ee0de6 | Chris Oelmueller | 2013-10-21 14:34:01 -0400

Allow querying \ screen when reading scrolls of identify
Somehow this only worked when the scroll was not identified before.

--------------------------------------------------------------------------------
c72be133ee | Chris Campbell | 2013-10-21 13:48:38 +0100

Remove the reaching brand
It only appeared on whips, so was hardly ever relevant. Reaching as a polearm-
only effect works just fine.

--------------------------------------------------------------------------------
f1e46e676c | Chris Campbell | 2013-10-21 13:43:53 +0100

Fix Mephitic Cloud and Poisonous Cloud never prompting when aimed at self
Spells with SPFLAG_ALLOW_SELF are sometimes useful to aim at the player's
square, but that doesn't mean that they should do so with no prompt, since
they are still more likely to be harmful than not.

The ALLOW_SELF flag now just allows such spells to be self-targeted (with
a prompt) even when Options.allow_self_target is set to CONFIRM_CANCEL.
Currently the spells affected are Mephitic Cloud, Poisonous Cloud,
Freezing Cloud. Other AoE spells like Fireball, Fire Storm, Ice Storm
might feasibly be self-targeted but these seem significantly less likely
to be used in that way.

--------------------------------------------------------------------------------
ca6a771597 | Chris Campbell | 2013-10-21 13:43:52 +0100

Allow aborting the staff of Olgreb's OTR without wasting a turn
For example when allies are nearby and the player is prompted to avoid
poisoning them.

--------------------------------------------------------------------------------
0c2224356d | Chris Campbell | 2013-10-21 13:43:51 +0100

Don't trigger backlash effects when failing to rebrand a weapon
Really the scroll should just abort without being used up.

--------------------------------------------------------------------------------
2deea36682 | Chris Campbell | 2013-10-21 13:43:51 +0100

Increase the cost of scrolls of immolation slightly

--------------------------------------------------------------------------------
fd89fcf890 | Chris Campbell | 2013-10-21 13:43:50 +0100

Remove a special case that didn't appear to do anything
Since you die at <= 100 hunger.

--------------------------------------------------------------------------------
09256f04c5 | Adam Borowski | 2013-10-21 09:35:40 +0200

Fix lava orcs in water spawning steam in nearby walls.

--------------------------------------------------------------------------------
b54d7c0210 | Adam Borowski | 2013-10-21 08:41:11 +0200

Fix malign gateway not registering its terrain change.

--------------------------------------------------------------------------------
ac82fe46d6 | Chris Campbell | 2013-10-20 19:55:38 +0100

Remove bonus damage from jump attacks
As a cheap positioning tool it'll still be effective, but hopefully not
necessarily used to start every single fight.

--------------------------------------------------------------------------------
1c54f6e1cd | Chris Campbell | 2013-10-20 19:55:37 +0100

Don't give Gargoyles innate rElec
They have so many innate resistances and abilities already. rElec is one of the
least relevant and they still fit the weird-partially-non-living theme without
it.

--------------------------------------------------------------------------------
6c9b36f7fa | Chris Campbell | 2013-10-20 19:55:36 +0100

Reflavour boots of the Assassin's special stab attack
To be caused by the boots making you more perceptive of monster
vulnerabilities - stabs with a concealed dagger still using axes skill,
for example, didn't really make much sense.

Maybe they should still have a special message of some sort when stabbing?

Also possibly these effects would make more sense on a hat or something,
rather than on boots.

--------------------------------------------------------------------------------
61870f32c3 | Chris Campbell | 2013-10-20 19:55:34 +0100

Always turn slimes neutral for Jiyva worshippers when they enter LOS
Waking them up if necessary.

--------------------------------------------------------------------------------
f298866b72 | Neil Moore | 2013-10-20 13:30:17 -0400

Don't crash on over-long god abilities in ^
We tried to take a negative-length substring.  This happened with
Nemelex's stack five ability on a 79-column screen.  Now we chop
off excess characters from the end of the ability description,
which in this particular case loses the full stop.

--------------------------------------------------------------------------------
ce4801bb51 | Chris Campbell | 2013-10-20 05:37:56 +0100

Update Gargoyle manual entry (nicolae)

--------------------------------------------------------------------------------
3e3f6160ba | Taylor Hedberg | 2013-10-19 21:01:45 -0400

Correct inverted fast regeneration check

--------------------------------------------------------------------------------
982c3f3fd3 | Adam Borowski | 2013-10-20 01:04:36 +0200

Extinguish sticky flame when a water elemental engulfs someone.
Unlike partial immersion, this also provides immunity to new flames:
standing in shallow (deep for giants) water or swimming as a merfolk
involves having a sizeable part above the surface.

--------------------------------------------------------------------------------
b8a6f581a7 | Adam Borowski | 2013-10-20 00:40:52 +0200

A yet another rock worm + cloud fix.

--------------------------------------------------------------------------------
d782aa2803 | Taylor Hedberg | 2013-10-20 00:08:22 +0200

Correct reversed logic for displaying enemy health bars
This was flipped from what it should be: undead are not supposed to have
visible wounds; other monsters should.

--------------------------------------------------------------------------------
bd08a7f360 | Adam Borowski | 2013-10-19 19:38:47 +0200

Unify some duplicated monster regen code.
Note that for some reason monsters that get recalled with Beogh's/Yred's
ability get healed ten times as fast as they would normally.  This doesn't
strike me as intentional.

--------------------------------------------------------------------------------
6f9563e636 | Adam Borowski | 2013-10-19 19:38:47 +0200

Make monster fast regeneration a flag rather than a list.
Consistent with M_NO_REGEN, and makes it far easier to notice.

--------------------------------------------------------------------------------
9384bbde4e | Adam Borowski | 2013-10-19 19:38:47 +0200

Separate monster_descriptor() into proper functions.

--------------------------------------------------------------------------------
11d5d5e26e | Adam Borowski | 2013-10-19 19:38:47 +0200

Slightly simplify.

--------------------------------------------------------------------------------
0752fc5851 | Chris Campbell | 2013-10-19 18:01:57 +0100

Update manual from wiki

--------------------------------------------------------------------------------
056651fa57 | Adam Borowski | 2013-10-19 04:14:55 +0200

Dark maul tiles (Bloax)

--------------------------------------------------------------------------------
1acac85201 | Adam Borowski | 2013-10-19 01:11:35 +0200

Translate a quote's book name; add the original to .pl.

--------------------------------------------------------------------------------
d11fbc0dba | Adam Borowski | 2013-10-19 00:31:29 +0200

A new unrand: "dark maul".  2h mace, usable by humans, a swing takes a week.
No tiles.

--------------------------------------------------------------------------------
ab4da77e8b | Adam Borowski | 2013-10-18 21:34:39 +0200

Don't place a cloud when teleporting off a wall (rock worms/maelstroms).

--------------------------------------------------------------------------------
8930be41e6 | Adam Borowski | 2013-10-18 21:28:08 +0200

Fix all uses of apply_area_cloud(), if the origin is solid.
Some cloud generators have the cloud flow from a wall or a statue.  They
use targetter_cloud which doesn't allow that, except they don't use the
regular interface but read the targetter's internal data, which skips some
validation.

--------------------------------------------------------------------------------
a5d3c69d95 | Pekka Lampila | 2013-10-18 22:12:57 +0300

Revert "Only send the game state to the joining spectator"
This reverts commit 06ee7f8badf1e19f333e918a572bafb5a23317f8.

Conflicts:
	crawl-ref/source/webserver/process_handler.py
	crawl-ref/source/webserver/ws_handler.py

My approach here was flawed, and joining spectators could cause
glitches for the player and existing spectators.

--------------------------------------------------------------------------------
49704efeba | Adam Borowski | 2013-10-18 15:11:15 +0200

Use the correct behaviour event for Refrig and OTR.
Zombies and objects (like dancing weapons) are supposed to allow hitting
them from afar.  This enables some interesting tactics.

--------------------------------------------------------------------------------
db7dcdd94b | Adam Borowski | 2013-10-18 15:01:10 +0200

Remove clouds when terrain is changed to something that precludes one.

--------------------------------------------------------------------------------
1610093c16 | Adam Borowski | 2013-10-18 15:01:10 +0200

Don't let red draconian breath create clouds in a wall.

--------------------------------------------------------------------------------
aec14dfe81 | Neil Moore | 2013-10-18 08:51:00 -0400

Colour harpy devourment as item destruction (xFleury)
This was originally the case, but the text of the message changed
to include the item name, without a corresponding change to the
message_colour.

--------------------------------------------------------------------------------
62321204cc | Chris Campbell | 2013-10-18 12:19:41 +0100

Fix OTR and Ozo's Refrigeration not turning allies hostile
Also fixes them not waking up sleeping enemies.

--------------------------------------------------------------------------------
dd890a1806 | Chris Campbell | 2013-10-18 11:36:47 +0100

Remove rock worms from monster Summon Vermin
They're really annoying to kite into a place where you can actually kill
them in Elf.

--------------------------------------------------------------------------------
df7c8acfd1 | Adam Borowski | 2013-10-18 06:49:40 +0200

Don't blow clouds into mangroves, either.  Simplify.

--------------------------------------------------------------------------------
548a4c655c | Adam Borowski | 2013-10-18 06:34:48 +0200

Don't place a cloud covering the malign gateway itself, just next to it.

--------------------------------------------------------------------------------
b04d185340 | Adam Borowski | 2013-10-18 05:14:53 +0200

A yet another mangrove+cloud fix: tornado.

--------------------------------------------------------------------------------
f360d94093 | Adam Borowski | 2013-10-18 05:02:55 +0200

Don't make a cloud when a summoned rock worm poofs.

--------------------------------------------------------------------------------
2588e57301 | Adam Borowski | 2013-10-18 04:40:11 +0200

Don't place steam under mangroves.
They are somehow "solid", unlike regular trees.

--------------------------------------------------------------------------------
3e30f2115e | Adam Borowski | 2013-10-18 04:40:10 +0200

Add more cloud assertions.

--------------------------------------------------------------------------------
b1ba237af9 | Samuel Bronson | 2013-10-17 22:25:03 -0400

Shave some words off a few datatypes.
(I wonder if this saves even one kilobyte?)

--------------------------------------------------------------------------------
0cc09970ba | Adam Borowski | 2013-10-18 00:21:41 +0200

Skip abyssal clouds when placing a rock worm or a malestorm.

--------------------------------------------------------------------------------
b003fc1cb5 | Adam Borowski | 2013-10-18 00:21:40 +0200

Clear clouds when the abyss morphs a wall.

--------------------------------------------------------------------------------
238c344a1a | Adam Borowski | 2013-10-18 00:21:40 +0200

Clear invalid clouds when loading a save.

--------------------------------------------------------------------------------
1413a00cdd | Adam Borowski | 2013-10-18 00:21:39 +0200

Assert that no cloud is inside a wall.
This makes the abyss crash nearly instantly...  Before, apparently only
ghostly flame had immediately harmful effects (an infinite loop).

--------------------------------------------------------------------------------
0b0477452d | Naruni | 2013-10-17 17:14:46 -0400

Fix scythe of curses
Check to see if the monster died before checking to see if it has/had
lifeforce to prevent assert crash.

--------------------------------------------------------------------------------
d869e3b773 | Adam Borowski | 2013-10-17 22:28:24 +0200

Greatly reduce the price of Tomes of Destruction.
The value is what dpeg suggested two years ago, might be too low, but it
sadly represents the vault of tomes quite well.  It might be good to make
them worth using instead...

--------------------------------------------------------------------------------
df690be638 | Adam Borowski | 2013-10-17 22:25:38 +0200

Use vector.empty() for emptiness tests.
Unlike some other containers, it's unlikely it's faster than checking size()
anywhere, but let's be consistent.

--------------------------------------------------------------------------------
4f4fca30c5 | Chris Oelmueller | 2013-10-17 15:34:40 -0400

Fix Jiyva off-by-one error on Slime:$
Previously used 161 despite d703f4dc02d0d08642f20f5d14f471127b4255df.
piety_rank should be a bit more stable than numeric piety values.

--------------------------------------------------------------------------------
24edc4cae9 | Neil Moore | 2013-10-17 01:11:42 -0400

Avoid an MSVC crash on dry fountains etc (xFleury)
map_cell has a bit field "dungeon_feature_type _feat:8", which MSVC
makes signed.  However, some dungeon_feature_type enumerators are
greater than 127 (beginning with DNGN_DRY_FOUNTAIN = 128).  That results
in some bounds errors when encountering one of those features.

According to the C++ standard, 8 bits should be large enough to hold the
enum (§7.2 [dcl.enum] paragraph 7), so the values in the bit field
should compare equal to the corresponding enumerators (§9.6 [class.bit]
paragraph 4). So it sounds like MSVC is in the wrong. Still, work around
it by casting to uint8_t and then to the full enum type.

At this point maybe we should just use a uint8_t instead of a bit field
(since we have to cast anyway).  However, that doesn't look as nice in gdb...

--------------------------------------------------------------------------------
660d43f70c | Adam Borowski | 2013-10-17 04:52:54 +0200

Move maps used by the test suite to dat/des/test
This means there's no dynamic loading of maps anymore.

Also, delete unused regression tests for the long gone old LOS code.
We had copies of both the old and current version.

--------------------------------------------------------------------------------
3c6a2862f5 | Adam Borowski | 2013-10-17 04:52:54 +0200

Remove a test case for old-style portal vaults.

--------------------------------------------------------------------------------
9841f3fb73 | Adam Borowski | 2013-10-17 04:52:54 +0200

Staticalize and simplify.

--------------------------------------------------------------------------------
5554bc657c | Adam Borowski | 2013-10-17 04:52:54 +0200

Inline a function.

--------------------------------------------------------------------------------
fbf0dc1ee1 | Chris Campbell | 2013-10-17 03:37:45 +0100

Remove some trapped loot vaults

--------------------------------------------------------------------------------
085050246d | Neil Moore | 2013-10-16 22:03:46 -0400

Fix some assignment operators.
These three did not properly handle self-assignment.

--------------------------------------------------------------------------------
6aec31b66f | Neil Moore | 2013-10-16 18:48:38 -0400

Remove an unused member variable (kilobyte)

--------------------------------------------------------------------------------
fc2aeb4d59 | Adam Borowski | 2013-10-16 19:14:56 +0200

Fix unrand tile mismatches between architectures.
They were written in hash order, which is not supposed to be stable.

--------------------------------------------------------------------------------
4ceef457b6 | Adam Borowski | 2013-10-16 19:14:56 +0200

A quote for SpAs.

--------------------------------------------------------------------------------
ffff52d872 | elliptic | 2013-10-16 12:06:17 -0400

Fix vampire knights coming with water elementals 3/4 of the time (N78291).

--------------------------------------------------------------------------------
f2b8b55cca | Neil Moore | 2013-10-16 11:55:48 -0400

Don't crash when shuffling length-0 vectors (xFleury)
If the vector is empty, &vec[0] is undefined behaviour, and MSVC does
bounds-checking by default.

--------------------------------------------------------------------------------
978670c681 | Neil Moore | 2013-10-15 20:11:08 -0400

Don't fumble jump attacks that land in water (Whales, #7635)
It's supposed to be a mid-air attack, so it shouldn't matter that
you'll be splashy when you land.

--------------------------------------------------------------------------------
3275460c99 | Neil Moore | 2013-10-15 12:10:44 -0400

Don't randomly generate unfinished derived undead.

--------------------------------------------------------------------------------
4844ac9012 | Neil Moore | 2013-10-15 08:34:23 -0400

Limit self-sublimation to 90% of current HP.

--------------------------------------------------------------------------------
68a9d9cdcc | ontoclasm | 2013-10-14 22:13:17 -0500

Centaur tiles (Bloax)

--------------------------------------------------------------------------------
c3caa5d9d4 | elliptic | 2013-10-14 10:25:06 -0400

Clean up checks for disabled species/jobs when starting a new game.
It was possible to get around these checks in various ways. Hopefully this
stops all of those ways and will make it easier to maintain this code in the
future, since only is_species_valid_choice and is_job_valid_choice need
to be modified now.

--------------------------------------------------------------------------------
c56989d618 | Raphael Langella | 2013-10-14 14:07:58 +0200

[txc] Don't ever create empty desc files, even with -f.

--------------------------------------------------------------------------------
815585cd3d | Raphael Langella | 2013-10-14 12:17:50 +0200

Remove empty description files.

--------------------------------------------------------------------------------
c6278510be | Adam Borowski | 2013-10-14 05:53:52 +0200

Drop some redundant item sanitizing code.
It resulted in mummies/etc acquiring more vorpal items, spriggans and
kobolds getting fewer dwhips/eveningstars, and so on.

--------------------------------------------------------------------------------
cb1fa44663 | Adam Borowski | 2013-10-14 05:53:51 +0200

Do something with a brown paper bag.
You don't see this commit...

--------------------------------------------------------------------------------
09e2829bc6 | Adam Borowski | 2013-10-14 05:28:56 +0200

Don't produce animal skins outside starting gear and acquirement.

--------------------------------------------------------------------------------
7b23531bef | Adam Borowski | 2013-10-14 05:04:24 +0200

Drop a leading underscore.

--------------------------------------------------------------------------------
1588953502 | Samuel Bronson | 2013-10-13 22:53:51 -0400

Make _crash_signal_handler() non-static to elucidate stack traces
Not a big deal, but I found it stashed from ages ago and why not ...

--------------------------------------------------------------------------------
2d0d980657 | Samuel Bronson | 2013-10-13 22:28:58 -0400

When cleaning in util/, remove .d files

--------------------------------------------------------------------------------
7c77362af5 | Samuel Bronson | 2013-10-13 20:54:01 -0400

Regenerate parser AGAIN

--------------------------------------------------------------------------------
f13209215f | Samuel Bronson | 2013-10-13 20:54:00 -0400

Generate levcomp.tab.h, not .hh (gammafunk)

--------------------------------------------------------------------------------
fbb75a6e53 | Chris Campbell | 2013-10-13 23:03:52 +0100

Identify the flame ego on Volcano loot

--------------------------------------------------------------------------------
43d573f422 | Chris Campbell | 2013-10-13 23:03:51 +0100

Remove some runed doors from Lair vaults
There's no autoexplore trap if you've already explored the majority of the
vault.

--------------------------------------------------------------------------------
542cb84a64 | Samuel Bronson | 2013-10-13 16:44:35 -0400

Regenerate prebuilt parser

--------------------------------------------------------------------------------
4835f49795 | Samuel Bronson | 2013-10-13 16:44:34 -0400

YACC straight to levcomp.tab.cc so #line directives are valid (xFleury)

--------------------------------------------------------------------------------
796714c9d6 | Adam Borowski | 2013-10-13 16:21:06 +0200

Leak the identity of unfinished monsters spawning in real games.
Saying that 'it' is not yet fully coded is quite cryptic.

--------------------------------------------------------------------------------
36c3058851 | Adam Borowski | 2013-10-13 16:07:23 +0200

Fix no longer supported tags appearing in .pl hell effect messages.

--------------------------------------------------------------------------------
93e91faddf | Adam Borowski | 2013-10-13 03:27:21 +0200

Allow easily aborting mapstat.
Ctrl-C should probably be enabled during database rebuild, too.

--------------------------------------------------------------------------------
cc301ba6b6 | Adam Borowski | 2013-10-13 03:27:21 +0200

Don't blank the screen during --mapstat.
Not being in curses should allow providing some output.

--------------------------------------------------------------------------------
fbc51d48fe | Adam Borowski | 2013-10-13 03:27:21 +0200

Be more realistic about Win98 builds.

--------------------------------------------------------------------------------
0d450b6ee8 | Chris Campbell | 2013-10-12 21:32:23 +0100

Remove darkgrey floor from a serial vault

--------------------------------------------------------------------------------
bd576e3fb7 | Chris Campbell | 2013-10-12 05:26:44 +0100

Fix placeholders in randbook owners (#7628)

--------------------------------------------------------------------------------
07e69d70c1 | Steve Melenchuk | 2013-10-11 18:47:56 -0600

Procedurally generate a maze in tar_grunt_ereshkigal.
This uses the same code as the maze in tar_mu. It generally ends up
having more than one path and is smaller than tar_mu's maze, so it
should be less of a hassle and yet more interesting than what
tar_grunt_ereshkigal had before.

--------------------------------------------------------------------------------
a7c14a4424 | Neil Moore | 2013-10-11 17:49:52 -0400

Fix a bad Lua string (hasufell)
Latest luajit reports: "invalid escape sequence" for "\/".

--------------------------------------------------------------------------------
a348a51721 | Neil Moore | 2013-10-11 16:22:45 -0400

Remind online trunk players about the tournament.
If you run a dgamelaunch crawl server that isn't participating in the
tournament, use  make EXTERNAL_DEFINES=-UTOURNEY

--------------------------------------------------------------------------------
45e12aef8b | Samuel Bronson | 2013-10-10 23:34:20 -0400

Revert "Run dwz over the binary ..."; dwz insists on ELF binaries :-(
This reverts commit 062f7eb415bf83ff65dd16cf75ec8d66c86d4895.

--------------------------------------------------------------------------------
062f7eb415 | Samuel Bronson | 2013-10-10 23:21:50 -0400

Run dwz over the binary when available to save space
This almost cut my binary in half (something like 70MB -> 40MB).
That's about 30MB less DWARF, and will probably make GDB happy.

--------------------------------------------------------------------------------
0784b6c54c | Adam Borowski | 2013-10-11 02:43:50 +0200

Don't process enchantments that have just been deleted.
Processing any ench can add, modify or remove any other, including itself.

This code includes a lame loop through all possible enchantments, but since
we're going through a bit array of size ~100, that's still better than the
old code which, with a better theoretical complexity, did multiple mallocs.

Had we not replaced our NIH implementation with a bitset<>, we'd be able
to make this search lightning-fast using asm BSF or gcc's __builtin_clzl,
but I guess you guys would smack me hard for even thinking about that :p

--------------------------------------------------------------------------------
6bae9edd6d | Adam Borowski | 2013-10-11 01:20:04 +0200

Heal forcibly converted orcs before registering them as companions.
Also, add some assertions, just in case.

--------------------------------------------------------------------------------
b2ca2989d9 | Adam Borowski | 2013-10-11 01:20:04 +0200

Get rid of grid_appearance().

--------------------------------------------------------------------------------
7b404eaea9 | Adam Borowski | 2013-10-11 01:20:04 +0200

Short-circuit another sighting of slimy walls.

--------------------------------------------------------------------------------
b78d8b4610 | Chris Campbell | 2013-10-10 16:51:46 +0100

Fix Zot traps being invoked against the player when visible through scrying

--------------------------------------------------------------------------------
aef027da45 | Chris Campbell | 2013-10-10 16:51:45 +0100

Remove a trap vault
Showing the quicksilver dragon through glass is nice in theory but in practice
players often don't have any idea how quicksilver breath works when they reach
the vault, and this is probably not the best way of teaching them.

--------------------------------------------------------------------------------
ec142522d7 | Translators | 2013-10-10 15:17:44 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
7d84c0680f | Raphael Langella | 2013-10-10 14:25:39 +0200

Remove an unused desc.

--------------------------------------------------------------------------------
409d890d8e | ontoclasm | 2013-10-09 23:34:51 -0500

Tmons tile (Bloax)

--------------------------------------------------------------------------------
cf818b197f | Adam Borowski | 2013-10-08 23:10:44 +0200

Fix a crash if a monster dies because of its own ability.

--------------------------------------------------------------------------------
f1709f1f1f | Adam Borowski | 2013-10-08 15:08:11 +0200

Slightly improve mon_can_move_to_pos().
Check local variables before calling functions, don't check things twice.

This function gets called thousands of times per turn, and is not that cheap,
so more optimizations would be nice.

--------------------------------------------------------------------------------
c28a4ae031 | Adam Borowski | 2013-10-08 13:42:55 +0200

Axe a bogus check for water.
But, wasn't this supposed to block fire elementals?  In any case, they don't
blunder into water, so this would be redundant even if it worked.

--------------------------------------------------------------------------------
860b23aa67 | Adam Borowski | 2013-10-08 13:38:07 +0200

Fix monsters wandering next to slimy walls outside Slime.
A few vaults contain these.

--------------------------------------------------------------------------------
50f540471f | Adam Borowski | 2013-10-08 13:27:17 +0200

Cache whether any slimy wall exists on the level.

--------------------------------------------------------------------------------
eb5bc06c58 | Adam Borowski | 2013-10-08 13:09:00 +0200

Don't en-/de-capsulate coord_def over and over in set_terrain_*()
All callers, and all but one internal use, want it as a struct.

--------------------------------------------------------------------------------
c71e4c71ab | Adam Borowski | 2013-10-08 12:46:28 +0200

Reorder checks in forget_map.
An expensive LOS check was done first, while most of the map can be rejected
on the account of it being not known in the first place, or being too close
to the player.

On a profiler run, this managed to score 10%.

--------------------------------------------------------------------------------
953848e730 | Neil Moore | 2013-10-08 01:56:56 -0400

New option autofight_caught to escape webs with tab.

--------------------------------------------------------------------------------
24e112a36b | Adam Borowski | 2013-10-08 03:55:23 +0200

Hush a warning on 32 bit.

--------------------------------------------------------------------------------
c8849e1a6c | Adam Borowski | 2013-10-08 03:52:55 +0200

Fix a crash with magic shield if rotting kills you.
Sounds extremely niche?  ZotDef at least.

--------------------------------------------------------------------------------
4c7f5a82f8 | Adam Borowski | 2013-10-08 02:00:03 +0200

Make ground item destruction an unthing.
Unlike in-inventory destruction, which, controversially, causes meaningful
decisions (have consumables that can save your life with you or not),
on-ground destruction merely requires paying constant attention if you
use spells that can do so.

--------------------------------------------------------------------------------
41d041dbf1 | Adam Borowski | 2013-10-07 17:35:41 +0200

Override monster spawns in the abyss bot.
The setting is applied only on reload, every 1000 time turns.  This means
that after a newarea shift you'll get only ordinary abyssal monsters, but
that's good enough.

Why Forest and newCrypt got such a huge weight is left as an exercise to
the reader.

--------------------------------------------------------------------------------
221f82edb2 | Adam Borowski | 2013-10-07 16:39:10 +0200

Fix equipment properties getting truncated.
Again, another case of "80 characters should be enough for anybody".

It was wrong both in the game (except for tinyterms) and in character
dumps.

--------------------------------------------------------------------------------
cee83027a3 | Adam Borowski | 2013-10-07 16:08:03 +0200

Enlarge a criminally low line length limit in the lua interpreter.
It turns out 80 characters is not enough for anybody.

--------------------------------------------------------------------------------
dbf4cd2fda | Adam Borowski | 2013-10-07 13:23:24 +0200

Axe an obsolete comment.
Abyss spawns don't come every 5th turn anymore.

--------------------------------------------------------------------------------
2268ef7e29 | Adam Borowski | 2013-10-07 11:25:28 +0200

Revert "A way to check which tiles are not included in the textures."
This required a lot of extra work every run (you needed to compare the list
of files manually), and had the option hidden deep enough that I forgotten
it and reimplemented the functionality a year later.

And the latter implementation doesn't require a line of code in rltiles,
running it with a special option, building with tiles nor manual comparisons.

This reverts commit 0139a993d00114e506a4362e355b7a6adeb65b1d.

--------------------------------------------------------------------------------
13606e5598 | Adam Borowski | 2013-10-07 05:55:19 +0200

Fix Harold mouthing off if killed while asleep.
Being paralyzed or petrified makes it hard to speak too.

--------------------------------------------------------------------------------
e550c15931 | Brendan Hickey | 2013-10-06 22:17:16 -0400

Circular Ruins Fixup
The Circular Ruins vault shouldn't be a free book of Dreams.
Make it riskier to get.

--------------------------------------------------------------------------------
3775fc1cf2 | Brendan Hickey | 2013-10-06 21:30:18 -0400

Solidify Lava Orc speed
Make Lava Orcs speed 10.

Fluctuating speed essentially allows
Lava Orcs to either kite any serious threat, or Naga-style threats
that aren't quite 'serious' enough.

This is not a nerf.

--------------------------------------------------------------------------------
2552120644 | Neil Moore | 2013-10-06 19:49:14 -0400

Don't make statue form self-LRD weaker for gargoyles than others.
They were doing the same explosion damage in statue form as in their
normal form, while statue form for other races did 50% more than that.

--------------------------------------------------------------------------------
2b5c1a75f6 | Neil Moore | 2013-10-06 19:44:44 -0400

Update 0.14 changelog.

--------------------------------------------------------------------------------
13084f7356 | Neil Moore | 2013-10-06 17:53:40 -0400

Be even more careful about what pops when its "summoner" dies.
In particular, don't time out animated objects, conjured monsters like
fire vortices (from fire storm), and so on.

--------------------------------------------------------------------------------
196aa4a2a5 | Neil Moore | 2013-10-06 17:40:53 -0400

Remove old gargoyle desc from 0.14 changelog (Flex)

--------------------------------------------------------------------------------
c45c64e77c | Neil Moore | 2013-10-06 16:21:06 -0400

Fix Windows and probably other builds (MIC132_)

--------------------------------------------------------------------------------
3afabacf81 | Neil Moore | 2013-10-06 16:08:34 -0400

Use the correct border fill (#7584)
We were taking the border_fill_type from the original vault, but
should have used the copy in vault_placement, which is what
the dgn.set_border_fill_type() actually changed when called in-game
(as opposed to at index-building time).

--------------------------------------------------------------------------------
a867f9c591 | Adam Borowski | 2013-10-06 21:55:02 +0200

After a save bump, rename save file chunk names.
DOS is dead.  The old save scheme had character names of length 8, then
chunk names as 3-letter extensions.

--------------------------------------------------------------------------------
431fc43b0b | Adam Borowski | 2013-10-06 21:55:02 +0200

Get rid of a dry_fountain_blue sighting.

--------------------------------------------------------------------------------
8cd24cffe7 | Adam Borowski | 2013-10-06 21:55:02 +0200

Fix broken wizmode item tweaking.

--------------------------------------------------------------------------------
2ee1d2ac89 | Adam Borowski | 2013-10-06 21:55:02 +0200

s/random3/ui_random/
Blame SamB for the name!  It's all his fault.

--------------------------------------------------------------------------------
87bc3525b3 | Neil Moore | 2013-10-06 14:57:11 -0400

Don't abjure unsummoned band members (CommanderC, #7612)

--------------------------------------------------------------------------------
b82e7e557a | Adam Borowski | 2013-10-06 20:53:17 +0200

Fix amulet ring slot showing on '"'.

--------------------------------------------------------------------------------
e32b9cf8be | Adam Borowski | 2013-10-06 18:03:36 +0200

Add a couple of assertions in low-level save file handling.
Over the years, there were only two unexplained corruptions, and I have
a hunch there's a hardware/OS error too: something that zeroes a part
of the file.  Hard to tell without knowing more, so let's introduce
these checks.

--------------------------------------------------------------------------------
74ff12fab8 | Adam Borowski | 2013-10-06 17:40:40 +0200

Spacing fixes.

--------------------------------------------------------------------------------
be10f00f4b | Adam Borowski | 2013-10-06 17:39:12 +0200

A whitespace fix.

--------------------------------------------------------------------------------
1758c0df4e | Adam Borowski | 2013-10-06 17:32:13 +0200

Use random3() for colour flicker and tile animations.
These get called a different number of times if the window size changes,
breaking reprocibility of games with the same random seed.

--------------------------------------------------------------------------------
ba44991f06 | Adam Borowski | 2013-10-06 17:18:39 +0200

random3(), with a different RNG state.
Works same as random2().

Also, stops valgrind from kvetching about unfreed asg state.

--------------------------------------------------------------------------------
c47ee9af64 | Adam Borowski | 2013-10-06 17:13:27 +0200

Rename rng.cc to hash.cc
As that's all that's left.

--------------------------------------------------------------------------------
4ee4bd8e32 | Adam Borowski | 2013-10-06 17:00:22 +0200

Don't wrap low-level RNG calls twice.
random.cc wrapped rng.cc, rng.cc wrapped asg.cc.  The middle level did
nothing but pass calls as-is.

--------------------------------------------------------------------------------
6cfc1f2ff4 | Adam Borowski | 2013-10-06 15:33:09 +0200

Remove unused code for a RNG stack.
Nothing uses it as a hash anymore; and if it did, you can have more than
one RNG object at once.

--------------------------------------------------------------------------------
03bfcc8f82 | Adam Borowski | 2013-10-06 15:30:04 +0200

Fix an info leak with passive mapping.
By comparing the mapped/non-mapped pattern you could tell where on the
level are you, if boundaries are not yet known.

This commit introduces per-game hash seeds.  Weak monster invisibility
already uses something similar, except for it being per-turn.

--------------------------------------------------------------------------------
f844dbe31f | Adam Borowski | 2013-10-06 15:30:04 +0200

Use a hash rather than the RNG for deterministic passive mapping.  Refactor.

--------------------------------------------------------------------------------
8b63c98e9b | Adam Borowski | 2013-10-06 15:30:04 +0200

Use more pghost fields than the name for "randomizing" its appearance.
This is probably not enough: bad players like me tend to try the same build
and splat early a number of times in a row; this will give pghosts with the
same name, god, species, class, best skill while best_skill_rank, xl_rank,
damage and ac depend on xp which is likely to match for early ghosts as well.

We can't use mid here: if that ghost kills you, it should look the same in
its next showing.

--------------------------------------------------------------------------------
e9ceca1b6b | Adam Borowski | 2013-10-06 15:30:04 +0200

Use a hash rather than the RNG for hashing.
The latter works, but is quite confusing, making it look like there is some
actual randomness involved.

Also, that's a pretty heavyweight solution that requires saving, building
and restoring the whole RNG state, for something that has no more state than
32 bits (likely with less entropy) anyway.

Using hash32() (MurmurHash) for mixing a single 32 bit number with an unique
marker is overkill as well -- what function should we use?

Use ids look unightly as numbers written by hand; using __LINE__ would make
pan lord descs and pghost tiles change when a save is transferred though.

--------------------------------------------------------------------------------
8a9558196c | Adam Borowski | 2013-10-06 15:30:04 +0200

Fix pan lord descriptions often repeating themselves.
The space of sums of letters in their names is pretty small, far smaller than
the randomness we try to derive from that.  Just use a regular hash instead.

--------------------------------------------------------------------------------
bf86b4420e | Brendan Hickey | 2013-10-06 00:11:48 -0400

Abjure summons upon summoner death.
Let's make summoners a little more tactically interesting.

When a summoner dies, abjure its pals. For the sake of simplicity,
I'm popping the summons on their own tick, rather than searching through
every monster every time something gets killed.

This might not be thematically appropriate for *all* summons, like holy
summons. For now, I'd prefer to keep things simple and treat things
uniformly.

--------------------------------------------------------------------------------
f6fe0c6fb6 | gammafunk | 2013-10-05 23:30:59 -0400

Fix jump-attack to not allow forcing targets outside the attack range.
Also make shift+dir movement move the cursor instead of trying to
jump-attack in a direction.  This commit also removes a forced redraw
dating from early versions of the ability.

--------------------------------------------------------------------------------
1ffa8632b4 | gammafunk | 2013-10-05 23:30:59 -0400

Some cleanups and simplifications for jump-attack code.
Remove the allow_harmful argument from ::has_additional_landing_sites() and make
_check_moveto_dangerous back into a static function now that we don't need to
call it directly.  The allow_harmful argument allowed direction_chooser to only
find a default jump-attack target with landing sites that are all non-harmful
and within-conduct, but we have proper prompting to the player for such sites
now.  This is consistent with the targetting behaviour for other
spells/abilities.

Also cleanup some comments and simplify related code based on previous fixes.

--------------------------------------------------------------------------------
05b9689aec | Adam Borowski | 2013-10-06 00:22:22 +0200

Give a message when clearing an item away.

--------------------------------------------------------------------------------
5391079754 | Adam Borowski | 2013-10-06 00:17:43 +0200

Clear all no longer valid slots on wizmode racechange.
I intentionally skip unequipping effects: they can lead to a string of
effects (especially for flight) while the player is not fully setup yet.

--------------------------------------------------------------------------------
abb87df851 | Adam Borowski | 2013-10-06 00:13:17 +0200

Fix you_can_wear() thinking humans have tentacles.
I'm not an expert on hentai, but I believe most humans lack those.  If I'm
wrong, please tell me how to sprout one.

--------------------------------------------------------------------------------
efb3404607 | Adam Borowski | 2013-10-06 00:08:09 +0200

Narrow the scope of loop indices in a function.

--------------------------------------------------------------------------------
ceae61f6b9 | pubby | 2013-10-05 22:02:10 +0200

Fix a possible bug in macabre finger necklace.
The check for it in you_can_wear was being skipped for octopodes and
felids.
I'm not sure if this really mattered though.

--------------------------------------------------------------------------------
fb5e2bdf93 | Adam Borowski | 2013-10-05 21:13:35 +0200

Fix a wizmode crash when racechanging to/from octopode then melding rings.

--------------------------------------------------------------------------------
78dfbdf27c | Adam Borowski | 2013-10-05 16:49:05 +0200

Cull young'uns from the list of "ancient artifact" book authors.
Even if we dropped that tag, current uniques are unlikely to not only have
authored a book (remember the barrier of entry for medieval publishing)
but also have it find its way to a remote dungeon.  I don't think a young
thief who happens to know a low-level spell or two would be prone to
writing books about that.  And Gastronok is physically incapable of doing
that; the wizard he ate obviously had a different name.

This commit leaves hell/pan lords, Khufu and Roxanne who might be old enough
to be such authors.  And even there, I somehow find them to be far from
scholar types.  Roxanne could be, but she already holds her personal
spellbook, which might be enough.  I'd thus like to cull the list further,
let's discuss tha first.

--------------------------------------------------------------------------------
bc9b735b08 | Adam Borowski | 2013-10-05 14:03:46 +0200

Reformat multi-line array literals.

--------------------------------------------------------------------------------
a98f0842a6 | Adam Borowski | 2013-10-05 08:49:00 +0200

Purge a bunch of unused tiles and descs.

--------------------------------------------------------------------------------
c5bf443d8e | Adam Borowski | 2013-10-05 08:42:36 +0200

Brace removal.

--------------------------------------------------------------------------------
3e0928f93c | Adam Borowski | 2013-10-05 08:40:13 +0200

Properly start/stop clinging when wearing/removing boots.
Also, warn when removing them over lava.

--------------------------------------------------------------------------------
85235d5aad | Adam Borowski | 2013-10-05 08:23:52 +0200

Make the boots suck less.

--------------------------------------------------------------------------------
ef458e6a90 | pubby | 2013-10-05 08:15:28 +0200

Boots of Ultimate Suction
Lets you cling to walls and provides trample resistance.

--------------------------------------------------------------------------------
9007a61120 | Adam Borowski | 2013-10-05 07:30:18 +0200

Remove ARTP_JUMP, redundant with the armour brand.
It never had been fully implemented: art-data would break if you tried to
use it.

--------------------------------------------------------------------------------
a121aec9f2 | Adam Borowski | 2013-10-05 07:20:43 +0200

Make Summon Twister an unspell.

--------------------------------------------------------------------------------
ae75991e10 | Adam Borowski | 2013-10-05 07:14:19 +0200

Collect away chaos butterflies.

--------------------------------------------------------------------------------
6f2a0905c2 | Neil Moore | 2013-10-04 22:49:16 -0400

Don't evolve things on the player's square.
It wouldn't be a problem for plants, but players can't pass through
wandering mushrooms because they're not stationary.  Evolving a
toadstool under oneself would lead to a crash if flight expired (etc)
while the player was still sharing the square.  See for example
http://crawl.akrasiac.org/rawdata/ipooo2001/crash-ipooo2001-20131005-013905.txt

--------------------------------------------------------------------------------
527a035632 | BlackSheep | 2013-10-04 19:08:03 -0400

Stop spammy messages from melee attacks in water

--------------------------------------------------------------------------------
f81a4feda3 | ontoclasm | 2013-10-04 10:14:05 -0500

Recenter and optimize some ammo

--------------------------------------------------------------------------------
5ca5bf3e17 | ontoclasm | 2013-10-04 09:23:50 -0500

Jump ability and brand icons

--------------------------------------------------------------------------------
e4b9b5ee5c | Chris Campbell | 2013-10-04 14:06:32 +0100

Add an escape hatch to an altar vault

--------------------------------------------------------------------------------
12828f2483 | Chris Campbell | 2013-10-04 14:06:30 +0100

Reword monster flight descriptions
To be less awkward (not that there's really any good reason for the
distinction to still exist).

--------------------------------------------------------------------------------
00b68ed7ed | Chris Campbell | 2013-10-04 14:06:28 +0100

Don't put +Jump on randarts
It's fine for it to be a rare property like running, there's no need for it to
be obtainable for every species and a possibility on almost all randarts.

--------------------------------------------------------------------------------
6afc5a2a84 | Brendan Hickey | 2013-10-03 22:39:59 -0700

Add more mimic types
This change adds food, misc and jewellery mimics. I'm not sure why these
weren't included in the first place, and don't see rationale after trawling
through several years of commit logs.

9e666ba7f mentions that adding additional item type is trivial (as this commit
aptly demonstrates).

--------------------------------------------------------------------------------
d98901741d | ontoclasm | 2013-10-03 23:28:12 -0500

Disc of storms tile

--------------------------------------------------------------------------------
b4c01a2901 | ontoclasm | 2013-10-03 23:28:12 -0500

Recenter and optimize some foodstuffs

--------------------------------------------------------------------------------
10935379c9 | Neil Moore | 2013-10-03 22:15:51 -0400

Add gammafunk to CREDITS.txt.

--------------------------------------------------------------------------------
5737bc639d | Neil Moore | 2013-10-03 22:08:02 -0400

Avoid a pointless message variation.

--------------------------------------------------------------------------------
d5000a54ec | Neil Moore | 2013-10-03 22:05:57 -0400

Improve a comment.

--------------------------------------------------------------------------------
07cbc55c19 | Neil Moore | 2013-10-03 21:59:29 -0400

Don't allow jumping through grates or over statues.

--------------------------------------------------------------------------------
8630c34145 | Neil Moore | 2013-10-03 21:46:11 -0400

Handle two missing no_landing_reasons.

--------------------------------------------------------------------------------
427093f47f | Neil Moore | 2013-10-03 21:39:51 -0400

Simplify and fix formatting.

--------------------------------------------------------------------------------
bdb8dd0d34 | gammafunk | 2013-10-03 21:37:46 -0400

Make the jump-attack stab nerf constant across categories.
Instead of +2 nerf to stab_bonus for all except the worst category, which made
the last two categories the same under jump attack, just give +1
unconditionally.  The player has to be closer to jump-stab now that the attack
range has been reduced by two.

--------------------------------------------------------------------------------
dfda80f563 | gammafunk | 2013-10-03 21:37:46 -0400

Give a proper message when you attempt to target yourself with jump-attack.

--------------------------------------------------------------------------------
d861f57d61 | gammafunk | 2013-10-03 21:37:46 -0400

Make the jump landing sites not have a range restriction.
Previously the landing sites had a movement range of one less than the attack
range, which mean fewer possible landing sites at further attack distances.
This meant it was less favourable to jump attack closer enemies in the sense
that there were more possible landing sites, and the furthest diagonal attacks
were most favourable since they had one landing site.  Now the number of landing
sites isn't a function of attack distance, so closer jumps aren't penalized.

--------------------------------------------------------------------------------
1b3843c879 | gammafunk | 2013-10-03 21:37:46 -0400

Remove an unecessary range modification when finding jump attack targets.

--------------------------------------------------------------------------------
33dbfe7a30 | Adam Borowski | 2013-10-04 02:05:30 +0200

Deal with some less+libvte weirdness.

--------------------------------------------------------------------------------
bda2bd4705 | Adam Borowski | 2013-10-04 02:05:29 +0200

Revert "Don't make sole branch exits into mimics."
Not needed now that branch exits are outright ineligible.
This reverts commit 1978db2d876102677b5d634f5ee3b7858dd00ecb.

--------------------------------------------------------------------------------
aed4eeaf4d | Adam Borowski | 2013-10-03 23:00:16 +0200

Fix a crash when a red devil pokes a porcupine of ball lightning.

--------------------------------------------------------------------------------
ba8f219979 | Adam Borowski | 2013-10-03 22:53:29 +0200

A new build flag: COLOURED_DUMPS.
If set, maps will be colour-coded to show what vaults were placed, and where.
Such dumps are fit for viewing on a terminal (via cat or less -R), but not
with GUI text viewers.  For HTML, you probably want ansi2html.

--------------------------------------------------------------------------------
298c0bfce8 | Adam Borowski | 2013-10-03 22:53:29 +0200

Disallow branch exit mimics.
This turns out to be the cause of elusive "multiple exits" faults.
The check could be amended to ignore mimics, but as the player already
knows which exit is the real one (he entered through it!), such mimics
have no chance to fool anyone.

--------------------------------------------------------------------------------
9fbd006062 | Adam Borowski | 2013-10-03 22:35:59 +0200

Unbreak Windows.
The watchdog will now use real time, and kill the game after 60 seconds,
but since DGL doesn't work on Windows anyway, this is not a problem.

If it is, just make the watchdog no-op.  Windows users are not going to
run mapstat headless.

(And the infinite loop, while rare, is still definitely still here.)

--------------------------------------------------------------------------------
d4ba563f5e | Neil Moore | 2013-10-03 12:49:13 -0400

Don't try out-of-range targetting if it won't work.
Two different issues, both introduced by 0.14-a0-84-gc80f2be .

--------------------------------------------------------------------------------
f6fb48e07a | Steve Melenchuk | 2013-10-03 09:28:05 -0600

Place tar_grunt's soul eaters and shadow imps after subvaults (#7598).
Hopefully this should allow all the subvaults to place properly.

--------------------------------------------------------------------------------
c27e88cd9d | Adam Borowski | 2013-10-03 16:53:28 +0200

Put the Generating_Level global into crawl_state.
Also, drop the caps.

--------------------------------------------------------------------------------
4eb1f02097 | Adam Borowski | 2013-10-03 16:53:28 +0200

If a crash happens during map generation, dump the whole grd.
Rather than just some useless screenshot, usually from (0, 0).

--------------------------------------------------------------------------------
52fd99ff6e | Adam Borowski | 2013-10-03 16:53:28 +0200

List the vault[s] that placed a monster in a wall.

--------------------------------------------------------------------------------
37da3a6f04 | Adam Borowski | 2013-10-03 16:53:28 +0200

Fix st_'s stair vaults producing multiple upstairs.

--------------------------------------------------------------------------------
52d390ae80 | Adam Borowski | 2013-10-03 16:53:28 +0200

Don't waste electricity for mapstat infinite loops.
A hard limit of 60 seconds of CPU time per level.

--------------------------------------------------------------------------------
2dca142417 | Neil Moore | 2013-10-03 08:14:22 -0400

Include the font in Mac bundles (frogor)

--------------------------------------------------------------------------------
a60315f1fa | Adam Borowski | 2013-10-03 13:28:14 +0200

Fix two uses of the player during map generation.

--------------------------------------------------------------------------------
58d65357df | Adam Borowski | 2013-10-03 13:28:14 +0200

Repaint alarm traps, for those suffering from a lack of 8th bit.

--------------------------------------------------------------------------------
ca19122d8e | Adam Borowski | 2013-10-03 13:28:14 +0200

Fix a mapstat hang due to dying to a tornado obelisk.
It calls ouch() for 0 during the initial setup; during mapstat the player
is actually placed inside the map at some position that can be close to
the obelisk.  And maxhp is 0, so 0 damage can be fatal...

--------------------------------------------------------------------------------
62ee6bcbdc | Chris Campbell | 2013-10-03 11:14:16 +0100

Change cTele inscription to +cTele
Since it's now evokable rather than passive.

--------------------------------------------------------------------------------
280d0166af | Chris Campbell | 2013-10-03 10:55:38 +0100

Tweak jump mutation gain messages

--------------------------------------------------------------------------------
a432331b2d | Chris Campbell | 2013-10-03 10:41:41 +0100

Make evokable jump weight evocations in auto skill mode

--------------------------------------------------------------------------------
cfb487be45 | Chris Campbell | 2013-10-03 10:40:47 +0100

Adjust Jump mutation success rates
As a Felid-only mutation it doesn't need to be dependent on both XL and
mutation level, since mutation level goes up with XL anyway.

--------------------------------------------------------------------------------
daa12007be | Chris Campbell | 2013-10-03 09:09:39 +0100

Don't randomly give out the Jump mutation
Having it be potentially available in both item and mutation form results
in weirdness where, for example, using the lower-ranged version can be
better, to minimise the number of landing positions available. Being
available as a boots ego and artefact property should be plenty (Felids
can still get it in both forms this way, unfortunately).

--------------------------------------------------------------------------------
8eacb4ddf9 | Chris Campbell | 2013-10-03 09:09:38 +0100

Fix the range of evoked jump attacks
Removes the hard skill breakpoints.

--------------------------------------------------------------------------------
74a29d44f3 | Neil Moore | 2013-10-03 01:10:55 -0400

Simplify player's copy constructor.
Since 0.8.0-a0-391-g85ef844 (which made player::init() initialise
kills), the copy constructor has special-cased all the same things as
copy_from, though in a slightly different way (in particular, freeing
and re-initialising kills one extra time).  Have it call copy_from()
now, as was first suggested long ago (a0065e7).

--------------------------------------------------------------------------------
4e89e7063d | Samuel Bronson | 2013-10-03 00:25:19 -0400

Explain why player::copy_from is not called operator=

--------------------------------------------------------------------------------
5e1fb2db7c | Neil Moore | 2013-10-02 19:40:03 -0400

Ignore most traps in connectivity checks.
Only teleport and shaft traps break connectivity.  Also, don't ignore
zot and alarm traps for running/travel checks.

--------------------------------------------------------------------------------
c4feb4ae94 | Neil Moore | 2013-10-02 19:27:39 -0400

Use RMODE_CONNECTIVITY for flood find.
We started using RMODE_CONNECTIVITY in find_first_from in
0.10-a0-3058-gb8177da.  Extend that to also use it in the other methods.

--------------------------------------------------------------------------------
3b2d4cbffc | Neil Moore | 2013-10-02 19:14:18 -0400

Use RMODE_CONNECTIVITY for monster placement.

--------------------------------------------------------------------------------
49fe655fa5 | Neil Moore | 2013-10-02 18:20:13 -0400

Remove weapons from the default fire_order.
In both the init code and options_guide.txt.  The default config comment
and the add_fire_order function itself were already up-to-date.

--------------------------------------------------------------------------------
2be2ae1114 | Neil Moore | 2013-10-02 18:13:18 -0400

Autopickup more starting ammo.
Throwing nets and tomahawks for all backgrounds that start with them.
Not forcing on autopickup of darts for Warper and Enchanter: that would
annoy a lot of players, because unbranded darts are so weak.

--------------------------------------------------------------------------------
d0f2ebdc69 | Neil Moore | 2013-10-02 18:12:52 -0400

Correctly handle autopickup_starting_ammo for tomahawk throwers.
We were turning it on for darts instead.

--------------------------------------------------------------------------------
44b3cb9048 | Adam Borowski | 2013-10-02 16:20:33 +0200

Add gentleorcs to the list of grandiloquent stuff.

--------------------------------------------------------------------------------
6280027c40 | Translators | 2013-10-02 15:37:57 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
14d3ce9d38 | Chris Campbell | 2013-10-02 14:33:55 +0100

Typo fix in the other jump attack desc

--------------------------------------------------------------------------------
b1eef20fda | Chris Campbell | 2013-10-02 14:27:38 +0100

Always identify evokable artefact properties on equip
Not identifying them just results in equipment juggling, and weirdness when
removing items - removing an item with, say, +Blink identified won't reveal
+Blink on other equipped items, even though the ability will still be
available.

--------------------------------------------------------------------------------
d0c5b13914 | Chris Campbell | 2013-10-02 14:27:29 +0100

Separate evokable and mutation-based jump attack abilities
One shouldn't prevent the other from being available - the mutation doesn't
cost MP, and sometimes even having a lower range will be desirable, for
example (another reason that the mutation just shouldn't be randomly
acquirable).

--------------------------------------------------------------------------------
cff566dc10 | Chris Campbell | 2013-10-02 12:41:40 +0100

Fix a targeting message
It shows up when aiming a jump attack at yourself, which also seems wrong.

--------------------------------------------------------------------------------
43f3d9f700 | Chris Campbell | 2013-10-02 12:40:28 +0100

Typo fix in jump attack desc

--------------------------------------------------------------------------------
a6db85e736 | Chris Campbell | 2013-10-02 12:40:02 +0100

Fix spacing

--------------------------------------------------------------------------------
a60a766434 | Chris Campbell | 2013-10-02 12:08:11 +0100

Don't generate infinite fruit in Eringya's wizlab

--------------------------------------------------------------------------------
5f54639a62 | gammafunk | 2013-10-02 12:01:27 +0100

Fix the jump attack ability from the mutation not having an ability description

--------------------------------------------------------------------------------
2341383644 | Neil Moore | 2013-10-02 00:16:23 -0400

Correct a typo.

--------------------------------------------------------------------------------
dd5ec2acd3 | Adam Borowski | 2013-10-02 05:16:27 +0200

Fix a convoluted crash when an abyss-pushed item stacks.
This does change its index, and since _push_items() used a pointer to its
loop index as an argument to move_item_to_grid(), if that index changes,
we skip pushing some items.

--------------------------------------------------------------------------------
f2cc89b0df | Adam Borowski | 2013-10-02 05:16:26 +0200

Look for monsters in wall during dbg_scan.
This doesn't check habitability, because being in deep water is somewhat
more complex.

--------------------------------------------------------------------------------
a239847db7 | Neil Moore | 2013-10-01 21:27:32 -0400

Fix ordering of SPARM_* name arrays and tile enums.

--------------------------------------------------------------------------------
c9c39b4577 | gammafunk | 2013-10-01 21:27:30 -0400

Fix conduct prompting for jump attacks with elec/devastator.
Warnings were not being generated for non-adjacent jump attacks and some
double-prompting occured for adjacent ones.

--------------------------------------------------------------------------------
242c44385c | gammafunk | 2013-10-01 21:27:29 -0400

Simplify conduct checks and fix prompting with elec/devastator for jump-attack
Instead of trying to differentiate sanctuary vs. other conduct issues, just
count them equally as a conduct violation, which seems the intention of
bad_attack() anyways.  Elec attacks for targets in water and devastator also
give conduct prompts now with no double-prompting.

--------------------------------------------------------------------------------
5215da038d | gammafunk | 2013-10-01 21:27:27 -0400

Allow jump attack to target an empty square
The player can target an in-range empty square for jump attack.  If it turns out
that the square is empty, the jump-attack fails and the player rebounds to their
original position, losing the turn.

--------------------------------------------------------------------------------
956008587f | gammafunk | 2013-10-01 21:27:26 -0400

Include a header to use a canned message in the player class

--------------------------------------------------------------------------------
46d8b22073 | gammafunk | 2013-10-01 21:27:25 -0400

Disable jump in tree and wisp forms

--------------------------------------------------------------------------------
9c487fd511 | gammafunk | 2013-10-01 21:27:24 -0400

Fully set the jump mutation in the Felid save compatibility code

--------------------------------------------------------------------------------
44f7868c8e | gammafunk | 2013-10-01 21:27:23 -0400

Don't do an erroneus check_moveto() on the monster target, cleanups and 
documentation for targetter_jump

--------------------------------------------------------------------------------
cc16c311df | gammafunk | 2013-10-01 21:27:22 -0400

Fix movement range not being properly checked

--------------------------------------------------------------------------------
7cf365950e | gammafunk | 2013-10-01 21:27:21 -0400

Give felids the jump 1 mutation at start.
Increasing the mutation level at XL 6 and XL12.

--------------------------------------------------------------------------------
accb635029 | gammafunk | 2013-10-01 21:27:20 -0400

Jump-related save compatibility
The jump enums (two abilities, arte prop, mutation) were previously not added to
the proper location, which would break save compat with trunk.  Also add a bit
of save compat code to give Fe innate jump if loading from a save where they
don't have it.

--------------------------------------------------------------------------------
af6fa54ed6 | gammafunk | 2013-10-01 21:27:19 -0400

Add a player mutation granting the jump ability
* Starting attack range is 3, like the evokations ability, increasing by one for
  each level of the the mutation to a max of 5.
* Cost of ability is only hunger and exhaustion (same hunger cost as evokations
  ability).
* The mutation ability otherwise functions exactly the same as the evokations
  ability.

--------------------------------------------------------------------------------
411ff6d853 | gammafunk | 2013-10-01 21:27:18 -0400

Add a jump artefact property giving the evoke jump ability
* Can be added to anything that's not a ranged weapon with same frequency code
  as used for fly/blink/rage (occurs after rage)
* Shops appraise this for same value as +Rage.

--------------------------------------------------------------------------------
c1653bd6c0 | gammafunk | 2013-10-01 21:27:17 -0400

Generate boots of jumping with same frequency as boots of running.

--------------------------------------------------------------------------------
a9ea159001 | gammafunk | 2013-10-01 21:27:17 -0400

Add SPARM_JUMPING ego. Wearing this grants the evoke jump attack ability.

--------------------------------------------------------------------------------
c80f2bed60 | gammafunk | 2013-10-01 21:27:12 -0400

Evokable Jump attack ability
* Player chooses a monster target within range where there's at least one valid
  landing site adjacent to the target.
* There must be a monster to target to use the ability, but the monster can be
  friendly or neutral.
* A random valid landing site is chosen, the player is moved to that square, and
  weapon melee occurs against the target at the landing site.
* Jump attacks are melee with the wielded weapon and get a 20% damage bonus
* Valid landing sites are always habitable squares with no monster and no
  thing that's dangerous to the player.
* Flying monsters or giant monsters not standing in deep water or lava can
  'block' the path of a landing site by being in the ray path from the player to
  the landing site.
* If a visible monster blocks the path to a landing site, it won't be considered
  as a valid landing site.
* If something invisible blocks a landing site, the site will be shown as valid
  and can be randomly chosen, in which case the player 'rebounds off something
  unseen' and never leaves the starting square, but wastes a turn (delay 10aut).
* If the player is adjacent to the monster, sites adjacent to the player are not
  valid; you have to 'jump over' the monster in this case.
* Player can't jump if exhausted or standing in water/lava/liquefied ground
* Exhaustion duration is set after jump (regardless of success) to prevent a
  second jump, with a duration formula that's the same as the breath duration.
* The usual melee checks wielded weapon/friendly etc. checks are performed for
  the jump melee.
* If any of the valid landing sites would cause problems with self-electrocution
  or sanctuary violation, the player is warned first.
* Range is determined by evocations training; starting attack range is 3
  (movement 2), and it increases by one at evocations 5 and 10.
* The cost of the jump is 2MP and a hunger cost using the same calculation as
  for flame breath.
* The delay of a successful jump is the same as melee delay.
* Fail rate for the ability calculation based on evoke taken from breath fail
  rate code

--------------------------------------------------------------------------------
60d7bcd0fc | pubby | 2013-10-01 17:40:52 -0500

Permit monster formicids to throw large rocks.

--------------------------------------------------------------------------------
ab2918a6cb | pubby | 2013-10-01 17:33:16 -0500

Remove dig from orc sorcerers.

--------------------------------------------------------------------------------
2057b86a74 | pubby | 2013-10-01 17:32:34 -0500

Merge branch 'master' into dwants
Conflicts:
	crawl-ref/source/dat/des/variable/mini_monsters.des
	crawl-ref/source/enum.h
	crawl-ref/source/itemprop.cc
	crawl-ref/source/main.cc
	crawl-ref/source/mutation-data.h
	crawl-ref/source/mutation.cc
	crawl-ref/source/newgame.cc
	crawl-ref/source/ng-restr.cc
	crawl-ref/source/rltiles/dc-player.txt
	crawl-ref/source/spl-selfench.cc
	crawl-ref/source/throw.cc
	crawl-ref/source/tilepick-p.cc
	crawl-ref/source/wiz-you.cc

--------------------------------------------------------------------------------
e7b95c8c9b | Samuel Bronson | 2013-10-01 16:36:50 -0400

We still have missiles of confusion, too ...
(Also tweak the comment for returning a bit.)

--------------------------------------------------------------------------------
f6e59af0b3 | Samuel Bronson | 2013-10-01 15:37:23 -0400

"save compatibility is broken" -> "TAG_MAJOR_VERSION > 34"

--------------------------------------------------------------------------------
f139769661 | Samuel Bronson | 2013-10-01 15:37:22 -0400

More "must be in same order" warnings in dc-item.txt

--------------------------------------------------------------------------------
86008e52d5 | Adam Borowski | 2013-10-01 17:13:49 +0200

Fix a crash on melding the macabre finger necklace.
Also, fix the assert being not picky enough.

--------------------------------------------------------------------------------
6d5717d138 | Chris Campbell | 2013-10-01 07:31:14 +0100

Add a Pan lord to pan_disco_hall

--------------------------------------------------------------------------------
d3966a996d | Chris Campbell | 2013-10-01 07:31:13 +0100

Generalise some flight checks, fix inconsistencies
Flight from innate ability, potion, evokable item or spell is now
consistently prevented by tree form, liquefaction and grasping roots.

Most cases also correctly abort without costing a turn, potions are still
wasted at the moment though.

--------------------------------------------------------------------------------
9a1e88313e | Samuel Bronson | 2013-09-30 22:40:49 -0400

We don't want to remove the returning tile on bump, just move it down

--------------------------------------------------------------------------------
3aa275aa91 | Neil Moore | 2013-09-30 22:14:24 -0400

Comment tile enums that need to be removed on major bump.

--------------------------------------------------------------------------------
63b663fad4 | Neil Moore | 2013-09-30 22:14:24 -0400

Use some constants as they were intended (SamB).

--------------------------------------------------------------------------------
3aa8b6131b | Neil Moore | 2013-09-30 22:14:24 -0400

Add a note about tile enum ordering (gammafunk, SamB)

--------------------------------------------------------------------------------
57e1ccf0ea | Adam Borowski | 2013-10-01 02:05:21 +0200

Set Arga's racial make to "dwarven".

--------------------------------------------------------------------------------
a0bc75126e | Adam Borowski | 2013-10-01 01:57:33 +0200

s/permadry_fountain/dry_fountain/g
No more restarting, let's have the name reflect it.

--------------------------------------------------------------------------------
0b75bbd0f2 | Adam Borowski | 2013-10-01 01:37:51 +0200

Fix a couple of major save tag bump bugs.

--------------------------------------------------------------------------------
b2fff599c8 | Adam Borowski | 2013-10-01 01:22:14 +0200

Fix reversed feature names for sealed stairs.

--------------------------------------------------------------------------------
b08a49a5e2 | Adam Borowski | 2013-10-01 01:19:24 +0200

A quote for crocodile.

--------------------------------------------------------------------------------
331f5bf6f4 | Neil Moore | 2013-09-30 15:19:53 -0400

Don't break chaos and evasion brands in mapdefs on major tag bump.

--------------------------------------------------------------------------------
3a9d587560 | Neil Moore | 2013-09-30 15:19:19 -0400

Add reminder comments about some arrays that parallel enums.

--------------------------------------------------------------------------------
560282b6d4 | Adam Borowski | 2013-09-30 19:11:24 +0200

Colour large rocks differently than stones and sling bullets.
Hardly ever the same character will want both.

--------------------------------------------------------------------------------
011cccd8b0 | Adam Borowski | 2013-09-30 19:11:24 +0200

Delete three empty description files.
They had only quotes.

--------------------------------------------------------------------------------
11c248451e | Adam Borowski | 2013-09-30 19:11:24 +0200

Get rid of traps in a number of vaults.
This is a step towards complete removal of mechanical traps.  The few traps
that are supposed to remain don't work well in the niche once filled by
mechanical ones.  And, most vaults placed them in fixed or almost fixed
places.

This is only a start of the work, there are some cases that need discussing.

--------------------------------------------------------------------------------
b88737e909 | Adam Borowski | 2013-09-30 19:11:24 +0200

Move the handling of 'B' vault altars to the proper function.
That's what the comment requested.  I think 'C' should be moved, too --
it is random, unlike anything else in that function.

--------------------------------------------------------------------------------
96a4fb3f24 | Adam Borowski | 2013-09-30 18:38:16 +0200

Remove a crashy trap from an abyssal vault.
I guess I could instead make such traps not crash, but since the only trap
in the Abyss comes from a single vault, and is a mechanical one to boot,
here it goes.

--------------------------------------------------------------------------------
8b588dfb2c | Adam Borowski | 2013-09-30 18:38:16 +0200

Fix a crash if a boulder beetle dies due to damage it deals.
In this case, this was an inner flame explosion, which we really should
make a fineff.

--------------------------------------------------------------------------------
99e328b810 | Adam Borowski | 2013-09-30 18:38:16 +0200

Fix an infinite loop with insane friendlies attacking the player.
mon-act thinks the attack will succeed, melee_attack denied it.  Since
insanity is a form of confusion, let's allow the monster to attack you.

Also, don't set the foe to the player in such a case: attack just once,
like it's done against monsters.

--------------------------------------------------------------------------------
c2eccffead | Brendan Hickey | 2013-09-29 22:04:26 -0700

Purge '3' from the Abyss
Remove 3s (Chaos Spawn excepted) from the abyss.

--------------------------------------------------------------------------------
2080303d44 | Brendan Hickey | 2013-09-29 21:44:21 -0700

Add Chimeras to the Abyss.

--------------------------------------------------------------------------------
3a0c7a42a6 | Brendan Hickey | 2013-09-29 21:11:59 -0700

Merge branch 'master' into banish

--------------------------------------------------------------------------------
d5eeb803e6 | Neil Moore | 2013-09-29 23:26:04 -0400

Constify, simplify, fix some types, and reformat.

--------------------------------------------------------------------------------
4236123ae6 | Neil Moore | 2013-09-29 21:29:05 -0400

Suppress detection from Boots of the Assassin.
Since the stab enhancement is flavoured as non-magical, allow it to work
even while suppressed.

--------------------------------------------------------------------------------
a934effbb3 | Chris Campbell | 2013-09-29 23:39:25 +0100

Update options_guide's advice on where to ask for help

--------------------------------------------------------------------------------
8eed426e8d | Shayne Halvorson | 2013-09-29 23:39:24 +0100

Reworked boots of the Assassin
Allows you to stab with short blade level bonuses, and provides radius 4
monster detection.

--------------------------------------------------------------------------------
908533aa02 | Neil Moore | 2013-09-29 17:14:00 -0400

Add frogor to CREDITS.txt

--------------------------------------------------------------------------------
2c3290b9f3 | Neil Moore | 2013-09-29 14:36:25 -0400

Add Naruni and BlackSheep to CREDITS.txt

--------------------------------------------------------------------------------
f4aae922b9 | Neil Moore | 2013-09-29 12:32:02 -0400

Fix red devil hop attack order and messaging (#7573)
Have them strike just before the hop, when they are adjacent to the foe
and therefore guanteed to have line of effect.  Furthermore, print the
"hops backward" message (which should only happen for successful hops)
with the correct non-"it" noun whenever the monster was visible at
*either* end of the hop, not just the destination.

--------------------------------------------------------------------------------
ae74471aa0 | Neil Moore | 2013-09-29 12:00:00 -0400

Add missing message channels to options_guide.txt

--------------------------------------------------------------------------------
38aedc8ba7 | Neil Moore | 2013-09-29 00:36:24 -0400

Don't leave space for disabled races.

--------------------------------------------------------------------------------
c6ee670600 | Neil Moore | 2013-09-28 23:49:11 -0400

Remove en dashes from quotes.
Most of them were used interchangeably with em dashes.  The one used
for a numeric range was inconsistent with the hyphens we usually use
for those cases.  I wouldn't mind switching the hyphens to en dashes
instead, but hyphens might look better there in many monospace fonts.

--------------------------------------------------------------------------------
15b6f09304 | Neil Moore | 2013-09-28 23:48:56 -0400

Make biblical citations more consistent.

--------------------------------------------------------------------------------
988636aa02 | Neil Moore | 2013-09-28 23:38:22 -0400

A quote for Mass Confusion.

--------------------------------------------------------------------------------
5c3fee8af3 | Neil Moore | 2013-09-28 21:44:21 -0400

Use qualname, not basename, in stash annotation (#3062)
This was supposed to match singulars when the item was plural, but
scrolls and potions did not include their subtype in DESC_BASENAME.

This still won't let you search for "arrow of flame", since
DESC_QUALNAME does not include brands.

--------------------------------------------------------------------------------
c437711bc0 | Neil Moore | 2013-09-28 21:16:04 -0400

Prompt for drinking blood as a worshipper of a good god (#6465)

--------------------------------------------------------------------------------
88141c34e0 | Neil Moore | 2013-09-28 16:16:00 -0400

Remove permarock from nicolae_slime_phagocytosis (78291)

--------------------------------------------------------------------------------
b49127b832 | Neil Moore | 2013-09-28 14:59:03 -0400

Fix grammar in a few comments.

--------------------------------------------------------------------------------
09a686ef6f | Neil Moore | 2013-09-28 14:20:27 -0400

Simplify.
I forgot that missile brands are known on sight.

--------------------------------------------------------------------------------
ff9924398a | Neil Moore | 2013-09-28 12:36:50 -0400

Improve webtiles text inputs.
Make them larger when there is already text to be edited (15 characters
plus the old length of the text), and cap the maximum input length at
the buffer size (minus one for the NUL).

--------------------------------------------------------------------------------
dab1886bb6 | Neil Moore | 2013-09-28 12:20:29 -0400

Make cprintf() work outside GOTO_CRT (#7509)
It was switching to GOTO_CRT after the first line, which in tiles
changed the screen layer, hiding the first line (and everything else,
unless we were already in GOTO_CRT).  That was particularly noticeable
during line editing (#7509).

--------------------------------------------------------------------------------
75911bd868 | ontoclasm | 2013-09-27 20:47:31 -0500

Display correct tiles for ego-bearing throwables

--------------------------------------------------------------------------------
4981a6cfda | ontoclasm | 2013-09-27 20:38:16 -0500

Tomahawk tiles

--------------------------------------------------------------------------------
c56614be20 | ontoclasm | 2013-09-27 13:49:01 -0500

Rod tiles

--------------------------------------------------------------------------------
083b54a625 | Neil Moore | 2013-09-27 12:09:42 -0400

Display transformed player on webtiles minimap.

--------------------------------------------------------------------------------
04046fc0d1 | Adam Borowski | 2013-09-27 17:48:27 +0200

Drop unused descs for magical and natural traps.

--------------------------------------------------------------------------------
47535e98ce | Adam Borowski | 2013-09-27 17:45:38 +0200

Use the same name for teleport traps everywhere.

--------------------------------------------------------------------------------
cb06391783 | Adam Borowski | 2013-09-27 17:43:00 +0200

Fix alarm traps going magenta out of LOS.

--------------------------------------------------------------------------------
c33d6c8e43 | Neil Moore | 2013-09-27 11:29:52 -0400

Treat Lear's Hauberk as useless for those with mutated horns etc (#7579)
Talons and hooves were already checked thanks to player_has_feet().
It might make sense instead to check for innate mutations only; this
would also require changes to the player_has_feet call.

--------------------------------------------------------------------------------
dbef0e0e92 | Neil Moore | 2013-09-27 10:24:34 -0400

Blame the player for effects from known /RE and chaos (#7576)
If the effect was unpredictable but the source was known to be
unpredictable, set beam.effect_wanton, and use that instead of just
effect_known to determine whether gods should assign blame.

There are only a few remaining direct uses of effect_known; perhaps
they are no longer needed?

Also, don't treat contamination from haste or invis as intentional
unless it was the player who cast the spell.

--------------------------------------------------------------------------------
d41c7c30d3 | Neil Moore | 2013-09-27 10:22:31 -0400

Don't cancel hydra damage death when cauterized by same monster hit (#7580)
Really we should try to make monster and player melee attacks do things
in the same order, but this change fixes the immediate issue.

--------------------------------------------------------------------------------
1d6a0fd997 | Brendan Hickey | 2013-09-25 23:20:57 -0700

Tinker with Abyss Spawns
1. Make non-abyssy things spawn less the deeper you go.
2. Spawn fewer small abominations deeper and more large abominations.
3. Reduce the rate of chaff (imps) with depth.

This is part of a longer term change to move the Abyss away from that place
you go to get stat drained and mutated by demons.

--------------------------------------------------------------------------------
f0b6e91ee5 | Steve Melenchuk | 2013-09-25 14:19:33 -0600

Unify NG thrown weapon handling; give small throwers tomahawks.
That is, small species that would otherwise get javelins for a throwing
weapon now get tomahawks instead of darts; this impacts spriggan,
halfling, and kobold hunters, arcane markspeople, and gladiators.

Enchanters and warpers still get darts.

Where the base class would get five javelins, small throwers get eight
tomahawks (~= 10/6 * 5, the 10 and 6 being the damage of javelins and
tomahawks respectively), and where the base class would get six
javelins, the small thrower gets ten. Gladiators get six (they used to
get 15 darts, whereas the base amount was 20, so this keeps it as 3/4
the base amount).

--------------------------------------------------------------------------------
cabdcbae2c | Adam Borowski | 2013-09-25 20:45:16 +0200

Unbreak tiles.

--------------------------------------------------------------------------------
029466689f | Adam Borowski | 2013-09-25 20:38:00 +0200

Recolour "magical" traps based on their type.
Suggestions for colours welcome.

--------------------------------------------------------------------------------
5f5ef2decf | Adam Borowski | 2013-09-25 20:27:41 +0200

Squash four types of dry fountains into one.  Reflowing is gone...

--------------------------------------------------------------------------------
c3af15acd9 | Adam Borowski | 2013-09-25 20:17:28 +0200

Rename "natural traps" to "shafts".

--------------------------------------------------------------------------------
0ea719b7a5 | Adam Borowski | 2013-09-25 20:02:29 +0200

Split the "magical" trap category, to allow recolouring.

--------------------------------------------------------------------------------
a6373e255e | Adam Borowski | 2013-09-25 18:34:54 +0200

Fix empty rings slots covered by gloves not being counted.

--------------------------------------------------------------------------------
e2574ea7dd | Adam Borowski | 2013-09-25 18:26:18 +0200

Mark an obvious typo as a non-typo.

--------------------------------------------------------------------------------
a0bf153395 | Adam Borowski | 2013-09-25 10:08:14 +0200

Drop superfluous exits from "twisted" entry vaults.

--------------------------------------------------------------------------------
d5145817d6 | Adam Borowski | 2013-09-25 09:32:16 +0200

Fix the player being placed in a wall on area shifts.

--------------------------------------------------------------------------------
2c5e915490 | Steve Melenchuk | 2013-09-24 22:29:43 -0600

Drop three gratuitous uses of Petrify from monster spell sets.
Deep Elf Mage II looks kind of sparse with this change, but we can think
of something to replace it sooner or later.

--------------------------------------------------------------------------------
3ffea203fb | elliptic | 2013-09-25 00:13:25 -0400

Conjure Ball Lightning: L7 -> L6.
It might be too strong at L6 or it might still not see much use for reasons
unrelated to power level... so let's find out.

--------------------------------------------------------------------------------
94e1b8560f | Adam Borowski | 2013-09-25 06:00:13 +0200

Merge branch 'next'

--------------------------------------------------------------------------------
9ca6e02b50 | ontoclasm | 2013-09-24 22:17:08 -0500

Distinct manual tiles
Manuals are now distinct from other books in console, so they should be in
tiles as well.

--------------------------------------------------------------------------------
a16bb39190 | Steve Melenchuk | 2013-09-24 20:43:27 -0600

Restore trunk changelog entries removed by 673ecc60.
They didn't make 0.13, but they're in trunk at present, so...

--------------------------------------------------------------------------------
1d9921b787 | Steve Melenchuk | 2013-09-24 20:36:18 -0600

Touch the 0.13 changelog header with the tentative release date.
Of course, this is subject to change, but we can hope, yes?

--------------------------------------------------------------------------------
10b3f5141b | Adam Borowski | 2013-09-24 20:19:17 -0600

Changelog for 0.12.3
(cherry picked from commit 107d6e7dc110cc01536a4ff02767f0073d6501ca)

Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
c239fa7784 | Steve Melenchuk | 2013-09-24 20:14:00 -0600

Remove TURN_ZERO_WIZARD (elliptic, bh).
It's been pointed out that this functionality can be duplicated as
intended by providing a robin account with wizmode access, and that the
code as written doesn't even do what was intended - it's supposed to
allow entering wizmode on turn zero for the duration of a game, but
instead it only allows wizmode commands on turn zero altogether.

This reverts commit f826be5e99a2e906bc381158a74a5cff1837cca0.

--------------------------------------------------------------------------------
f095ba30ab | Neil Moore | 2013-09-24 12:21:52 -0400

Improve a comment.

--------------------------------------------------------------------------------
09e1df4707 | Neil Moore | 2013-09-24 11:31:09 -0400

Improve a comment.

--------------------------------------------------------------------------------
ea3c308993 | Translators | 2013-09-24 14:33:28 +0200

[Transifex]
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
860433ecd0 | Neil Moore | 2013-09-24 08:08:19 -0400

Correct inverted TURN_ZERO_WIZARD logic.

--------------------------------------------------------------------------------
ecd93e60f7 | Adam Borowski | 2013-09-24 10:46:44 +0200

Take the "error" tile from the correct dir.

--------------------------------------------------------------------------------
189c592e0a | Steve Melenchuk | 2013-09-23 22:42:37 -0600

Some monster spell tiles.
These are mainly the ones that I can come up with at a glance by
overlaying icons on other readily available tiles.

--------------------------------------------------------------------------------
c5ce8eb633 | Steve Melenchuk | 2013-09-23 22:23:18 -0600

Enums for the monster spells/abilities missing tiles.
These turn up in ?/S, and use question marks until we get actual tiles
for them (fortunately a lot of them are low-hanging targets).

Some spells that were formerly player spells (Berserker Rage, Symbol of
Torment) still have old tiles; this re-enables those tiles. Also, some
monster spells duplicate divine abilities, and the enums for those point
at the appropriate invocation icons.

--------------------------------------------------------------------------------
45a2003d04 | Neil Moore | 2013-09-23 23:05:28 -0400

Fix citation formatting.

--------------------------------------------------------------------------------
6acb06451d | Neil Moore | 2013-09-23 23:02:01 -0400

Add a (more contemporary) quote.

--------------------------------------------------------------------------------
92c452ffb8 | Neil Moore | 2013-09-23 22:52:13 -0400

Display quotes in ability descriptions.

--------------------------------------------------------------------------------
9551af0c68 | Neil Moore | 2013-09-23 22:38:17 -0400

More Eliot, less 4chan.

--------------------------------------------------------------------------------
ee0cc3aebb | Brendan Hickey | 2013-09-23 19:16:05 -0700

Add quotes

--------------------------------------------------------------------------------
497d563dde | Adam Borowski | 2013-09-23 03:09:50 +0200

A manual update from the wiki.

--------------------------------------------------------------------------------
13770f7c1e | Adam Borowski | 2013-09-23 02:43:03 +0200

Special-case fake Mara and rakshasas to not show up on ?/mR

--------------------------------------------------------------------------------
57470556cd | Adam Borowski | 2013-09-23 02:32:30 +0200

Disallow mimics to mess with runed doors.

--------------------------------------------------------------------------------
3c9feb00dd | Neil Moore | 2013-09-22 20:00:39 -0400

Add a hatch to hangedman_what_comes_after_a

--------------------------------------------------------------------------------
363c294f82 | Neil Moore | 2013-09-22 19:57:34 -0400

Move a vault to a more correct file.

--------------------------------------------------------------------------------
c5bb99fb6c | Adam Borowski | 2013-09-23 01:31:22 +0200

Fix flay effect not ending if the ghost is killed out of sight.

--------------------------------------------------------------------------------
0f3190c279 | Adam Borowski | 2013-09-23 00:34:37 +0200

Some documentation for the abyss bot.

--------------------------------------------------------------------------------
44f78730ef | Adam Borowski | 2013-09-22 23:31:26 +0200

Two new quotes.

--------------------------------------------------------------------------------
a98d4f6fc7 | Adam Borowski | 2013-09-22 23:09:06 +0200

Fix a warning.

--------------------------------------------------------------------------------
ffb8eab3c4 | Adam Borowski | 2013-09-22 22:53:09 +0200

Shorten the abyssal generator depth to 32 bits (fixes an infinite loop).
A good enough fix would be to re-cast the depth to unsigned during
unmarshalling so it doesn't get sign-extended before putting into an
uint64_t variable.  Bits above 32 can't be ever used, though -- even
bits over 31 hardly ever do (initial value is < 0x80000000 but increases
with time).

--------------------------------------------------------------------------------
9312efc0eb | Adam Borowski | 2013-09-22 22:31:14 +0200

Don't generate Lehudib's crystal spear the unrand.
Without returning, it doesn't work anymore.

--------------------------------------------------------------------------------
9d4b07a3b8 | Adam Borowski | 2013-09-22 16:17:03 +0200

If checkpointing is disabled, don't ever commit saves when not leaving.
This means such a game will be completely reset to the state at start
if something bad happens.  This should help debugging crashes that involve
a level_excursion, like those I recently get in the Abyss.

--------------------------------------------------------------------------------
518382ad07 | Chris Campbell | 2013-09-22 14:46:15 +0100

Make Sticks to Snakes only work on missiles
Working on weapons makes for a more awkward interface and the possibility of
accidentally destroying things. As a level 2 spell its power level is fine
with just missiles being permitted.

--------------------------------------------------------------------------------
6e8ccac462 | Chris Campbell | 2013-09-22 14:45:54 +0100

Let monsters pick up Elf:$ loot
Unlike loot in Ziggurats, there's at least a slight chance that the
monsters here can get some relevant use out of the equipment (rods,
randart weapons and armour, etc).

--------------------------------------------------------------------------------
6485c99bb7 | Chris Campbell | 2013-09-22 14:40:57 +0100

Revert Abyss/Thrashing horror changes
These shouldn't be changed so soon before 0.13. Frenzy also no longer exists
as a spell.

This reverts commit f9558cffac70bb8210ce7da55b14fe73de9138df and
c0fda6b406a43fcf7e83bbfb0278cf3103afc5ba.

--------------------------------------------------------------------------------
fd9eaa9e2c | Adam Borowski | 2013-09-22 13:36:37 +0200

Abort rather than loop infinitely if all layouts fail.

--------------------------------------------------------------------------------
2b24b8832a | Adam Borowski | 2013-09-22 00:30:08 +0200

Fix the amulet ring not showing on ".

--------------------------------------------------------------------------------
94ed2b255f | Adam Borowski | 2013-09-22 00:30:08 +0200

Drop capitalization from the macabre finger necklace.

--------------------------------------------------------------------------------
7d7ec04861 | pubby | 2013-09-22 00:30:08 +0200

Macabre Finger Necklace
A warding amulet that provides you with another ring slot.

I rewrote some of the jewellery code, but never re-added the
TOUCH_UI code I removed in _prompt_ring_to_remove. Note that octopodes
never had TOUCH_UI code for their jewellery in the first place. This
should probably be looked at.

Also, the player dumps do not show the amulet
ring on the top, but I do not consider this a problem.

--------------------------------------------------------------------------------
20b3437a0c | Adam Borowski | 2013-09-22 00:30:08 +0200

Always id weapons on wield.
Calculating pluses is a matter of hitting anyone several times and using
a script to analyze the results.  Plus, this is what armour does already.

--------------------------------------------------------------------------------
2da1b722c7 | Adam Borowski | 2013-09-22 00:30:08 +0200

Purge the code for throwing (rather than fumbling) weapons.

--------------------------------------------------------------------------------
7b201d5282 | Adam Borowski | 2013-09-22 00:30:08 +0200

Purge a small part of monster thrown weapon AI.

--------------------------------------------------------------------------------
fabd5e008e | Adam Borowski | 2013-09-22 00:30:07 +0200

Remove the returning brand for weapons.

--------------------------------------------------------------------------------
6cbcb2d290 | Adam Borowski | 2013-09-22 00:30:07 +0200

Purge obsolete code for quivering weapons.

--------------------------------------------------------------------------------
df89f4c26e | Adam Borowski | 2013-09-22 00:30:07 +0200

Mark all weapons as non-throwable.  Can still be fumble-thrown.

--------------------------------------------------------------------------------
8394718f4d | Adam Borowski | 2013-09-22 00:30:07 +0200

Generate monsters with tomahawks rather than throwing weapons.

--------------------------------------------------------------------------------
7dd46eaea7 | Adam Borowski | 2013-09-22 00:30:07 +0200

Change hand axes of returning in baileys to tomahawks.

--------------------------------------------------------------------------------
2c076aff36 | Adam Borowski | 2013-09-22 00:30:07 +0200

A new throwing missile, tentantively named "tomahawk".
The name is somewhat problematic, as real tomahawks were fit for melee
(just like hand axes...).  It's mostly because a few bailey_axe vaults
want something that resembles an axe, but I'd rather axe or redesign
those vaults than have them block better alternatives.

The balance purpose is to have something between darts (damage 2) and
javelins (damage 10), for use by orcs, orc warriors and merfolk.

--------------------------------------------------------------------------------
1c94edbbae | Adam Borowski | 2013-09-22 00:30:06 +0200

Purge some racial missiles code.

--------------------------------------------------------------------------------
bdcfb354d7 | Adam Borowski | 2013-09-21 23:02:02 +0200

Repaint the ^O bikeshed less brightly.

--------------------------------------------------------------------------------
e8a6590d3b | Neil Moore | 2013-09-21 15:58:09 -0400

Clear held and escape_attempts when resetting constrictions.

--------------------------------------------------------------------------------
b0278798d5 | Neil Moore | 2013-09-21 21:34:48 +0200

Fix existing bad constrictions as well as new ones.
This reverts commit ec0fa00cfee16130cd57b80c48cf5ca3bcd2fcf1.

--------------------------------------------------------------------------------
37d18c2281 | Adam Borowski | 2013-09-21 20:33:24 +0200

Revert "Revert "Actually marshall the constricting map.""
This reverts commit ec0fa00cfee16130cd57b80c48cf5ca3bcd2fcf1.

The fix was correct, just incomplete.

--------------------------------------------------------------------------------
46b432c1ad | Adam Borowski | 2013-09-21 20:29:54 +0200

Don't trample constriction when a level gets unloaded.
It doesn't matter for monster-vs-monster as both get reset together,
but mon.stop_constricting_all() and mon.stop_being_constricted()
will stop constriction that affects the player.  The monster got
saved properly just before that, though, so when it comes back we
have constriction out of sync.

--------------------------------------------------------------------------------
0e48b78f42 | Adam Borowski | 2013-09-21 20:20:48 +0200

Include mon-spll.h just once.
This sadly doesn't fix the "rebuild world" problem, as mon-mst.h derived
from it is still included globally.

--------------------------------------------------------------------------------
c6de1386fa | Chris Oelmueller | 2013-09-21 01:30:51 -0400

Condense some duplicated menu code for formatted_scroller
Also re-align, and highlight input keys as in lots of other places.
Show this improved -more- line for viewing character notes, too.

The TODO was removed as well because the only effect of dynamically
changing displayed "help" information like this is player confusion.
Static information works better when it comes to legends.

--------------------------------------------------------------------------------
ec0fa00cfe | Neil Moore | 2013-09-20 23:24:46 -0400

Revert "Actually marshall the constricting map."
This reverts commit 325bb3156a4516131a2a945a34169fb7a81f56fd.

--------------------------------------------------------------------------------
325bb3156a | Neil Moore | 2013-09-20 23:20:12 -0400

Actually marshall the constricting map.

--------------------------------------------------------------------------------
aed1a2037b | Chris Campbell | 2013-09-20 23:49:57 +0100

Fix monster acid spit messaging (#7569)

--------------------------------------------------------------------------------
1102b4cccd | Neil Moore | 2013-09-20 18:23:33 -0400

Don't claim spells described from rods are Trog-offending (ogaz)

--------------------------------------------------------------------------------
51873b8420 | Translators | 2013-09-20 22:50:33 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
ca089a7c4b | Neil Moore | 2013-09-20 13:57:56 -0400

Refactor.

--------------------------------------------------------------------------------
2c5c58555c | Neil Moore | 2013-09-20 13:49:54 -0400

Remove no-monster-pickup flag when the player picks up an item.

--------------------------------------------------------------------------------
b921193f49 | Chris Campbell | 2013-09-20 17:00:25 +0100

Remove removed unrands from trove_artefacts

--------------------------------------------------------------------------------
50ac8cca7d | Chris Campbell | 2013-09-20 17:00:24 +0100

Remove a weapon noise line
It duplicates the Sewer timeout message.

--------------------------------------------------------------------------------
0ee2ce193c | elliptic | 2013-09-20 01:41:42 -0400

Fix use of 161 instead of 160 for ****** piety for titles.
Also use piety_breakpoint.

--------------------------------------------------------------------------------
e268cfe7a6 | elliptic | 2013-09-20 01:34:51 -0400

Use piety_breakpoint for piety level messages, add a new message.
Previously the same message was used for both ***** and ******, so needed to
come up with new messages (with IRC's help).

--------------------------------------------------------------------------------
2f92b2c200 | elliptic | 2013-09-20 01:34:22 -0400

Fix piety_breakpoint(5) returning 255.

--------------------------------------------------------------------------------
f5f2054568 | Chris Oelmueller | 2013-09-20 00:50:40 -0400

Use piety_breakpoint in scorefile
Champion shifts from 161 to 160.

--------------------------------------------------------------------------------
0b93d47875 | Chris Oelmueller | 2013-09-20 00:49:34 -0400

Use piety breakpoint in chei godpassive

--------------------------------------------------------------------------------
b151e97c2d | Chris Oelmueller | 2013-09-20 00:43:36 -0400

Use piety_breakpoint(5) for one-time god abilities
And for Jiyva jellies on hard ouch.

--------------------------------------------------------------------------------
54ef739303 | Chris Oelmueller | 2013-09-20 00:42:06 -0400

Use piety_breakpoint(5) for BiA

--------------------------------------------------------------------------------
4b64df08c5 | Chris Oelmueller | 2013-09-20 00:41:04 -0400

Trog protection from passing out: guaranteed at piety 160 (was: 150)

--------------------------------------------------------------------------------
2891468960 | Chris Oelmueller | 2013-09-20 00:39:58 -0400

Kiku miscast protection: Reduce chance

--------------------------------------------------------------------------------
2b7a510ae3 | Chris Oelmueller | 2013-09-20 00:39:29 -0400

Piety requirements for gifting: 151 -> 160

--------------------------------------------------------------------------------
3bbf988bf5 | Chris Oelmueller | 2013-09-20 00:38:31 -0400

Sif miscast protection: Reduce chance

--------------------------------------------------------------------------------
7a2e4053ca | Chris Oelmueller | 2013-09-20 00:37:41 -0400

Change checks for piety 161 to new piety_breakpoint(5) = 160

--------------------------------------------------------------------------------
d703f4dc02 | Chris Oelmueller | 2013-09-20 00:35:09 -0400

Add new piety_breakpoint at 160
The implementation itself is more of a hack, but coupling piety
breakpoints to god abilities doesn't make all that much sense either.
There are so many checks for piety over 160 or 161 in the code that
introducing this new one most definitely makes a lot of sense.

Of course just slapping a `+1` on top of that rather unrelated size
is just a magic number and two wrongs don't make a right. I went with
what works for me, right now, but am happy to see this code improved.

The piety_rank checks shift from 161 to 160 for consistency as well.

--------------------------------------------------------------------------------
01f363d584 | Chris Oelmueller | 2013-09-20 00:32:35 -0400

Let godprayer messages and ^ description coincide with piety ranks
Using anything else than the piety breakpoints which are displayed to
players as `*` rank is just a tedious way of approximating your actual
amount of piety better. The initial difference between 5 (for prayer)
and 1 (for breakpoint) was kept because seeing a new message early on
tells players that they're doing the right things, if they are.

--------------------------------------------------------------------------------
f6e36dccb3 | Neil Moore | 2013-09-20 00:15:31 -0400

Coordinate (Grunt)

--------------------------------------------------------------------------------
f0be161f9d | cjo | 2013-09-20 00:07:23 -0400

Alter descriptions for some evoker staves and for ring of fire and ice.

--------------------------------------------------------------------------------
c0fda6b406 | Brendan Hickey | 2013-09-19 20:21:25 -0700

Thrashing Horror Bands
Thrashing Horrors turn up in bands based on how deep in the abyss you are.
Since they appear in groups, I've restored Frenzy as their escape slot, as 
they'll typically have something available to maul.

--------------------------------------------------------------------------------
f9558cffac | Brendan Hickey | 2013-09-19 18:25:38 -0700

Reweight some abyss monsters
Downweight golden eyes and thrashing horrors.

--------------------------------------------------------------------------------
fc3ad55ee7 | Chris Campbell | 2013-09-19 16:54:11 +0100

Minor updates to quickstart.txt
Removing references to secret doors, and the recommendation to start with
a dwarf fighter.

--------------------------------------------------------------------------------
4861a22fd9 | BlackSheep | 2013-09-19 16:25:17 +0100

Make gargoyles forget to exist when dying from int loss

--------------------------------------------------------------------------------
b5885e99a1 | Steve Melenchuk | 2013-09-18 21:17:50 -0600

Fire fineffs after individual monster attacks (#6936).
This also fixes player::is_banished() for a target validity check, so if
Sonja's first attack banishes the player, the player is banished
instantly and isn't subject to Sonja's remaining attacks.

--------------------------------------------------------------------------------
6e2730e86e | Steve Melenchuk | 2013-09-18 20:50:51 -0600

An old vault design of mine (by request of kilobyte).
We're all doomed now.

--------------------------------------------------------------------------------
ecdd57c506 | Steve Melenchuk | 2013-09-18 20:49:37 -0600

nicolae's "handful of vaults" (#7478).
nicolae_hardware_store was in the game already, but everything else is
in.

--------------------------------------------------------------------------------
e47661c8a7 | Steve Melenchuk | 2013-09-18 20:27:45 -0600

A briar patch tile.
I'm not really happy with how this turned out, but it's better than the
nothing we have right now.

Hopefully this will serve as motivation to get something better?

--------------------------------------------------------------------------------
fb15e4223e | Steve Melenchuk | 2013-09-18 18:57:07 -0600

Functionality for attempting to treat/diagnose #7501.
Games crashing before should load now, and the ASSERT should prevent
invalid saves from being generated.

--------------------------------------------------------------------------------
dd35ad357b | elliptic | 2013-09-18 20:42:57 -0400

FAQ change: nobody asks what an egoitem is anymore.

--------------------------------------------------------------------------------
c4458fef98 | Adam Borowski | 2013-09-19 02:09:12 +0200

Remove a reference to nausea.

--------------------------------------------------------------------------------
ac153561d6 | Adam Borowski | 2013-09-19 02:09:12 +0200

A quote for Corruption.

--------------------------------------------------------------------------------
0ee1b69e00 | Steve Melenchuk | 2013-09-18 17:46:54 -0600

Reduce the number of monsters a Zot trap can recall.
It's now 2-4, down from 3-7.

Convokers still convoke 3-7.

--------------------------------------------------------------------------------
bbf1b48450 | Steve Melenchuk | 2013-09-18 15:11:50 -0600

Manuals always get a white glyph (dpeg).
Regular books can no longer get a white glyph as a consequence.

Console players can now see if a book is a manual at a quick glance.

--------------------------------------------------------------------------------
d6c3d1bc1c | Steve Melenchuk | 2013-09-18 15:07:43 -0600

Make misc item glyphs distinct (simm, dpeg).
We have fourteen misc items that appear in the normal game (the quad
damage doesn't count for this) and fourteen colours to pick from, so
it's just a matter of picking what goes with what. I went with:

BLUE         - lantern of shadows (was LIGHTGREY)
GREEN        - plain deck (was 25% of LIGHTBLUE, GREEN, CYAN, RED)
CYAN         - fan of gales (was LIGHTGREY)
RED          - bottled efreet (was BROWN)
MAGENTA      - ornate deck (was 50% of MAGENTA or BROWN)
BROWN        - stone of tremors (unchanged)
LIGHTGRAY    - disc of storms (unchanged)
LIGHTBLUE    - phial of floods (was CYAN)
LIGHTGREEN   - box of beasts (was BLUE)
LIGHTCYAN    - crystal ball of energy (was LIGHTGREY)
LIGHTRED     - horn of Geryon (was LIGHTGREY)
LIGHTMAGENTA - legendary deck (unchanged)
YELLOW       - lamp of fire (unchanged)
WHITE        - sack of spiders (unchanged)

Feel free to bikeshed further about this.

--------------------------------------------------------------------------------
673ecc600b | Steve Melenchuk | 2013-09-18 14:34:00 -0600

Changelog through 0.13-a0-3092-g1832de8.
I'm poring through over 1700 commits when making this update, so I'm
certain things are going to get missed. Please fix things up as
necessary.

--------------------------------------------------------------------------------
1832de8fca | Chris Oelmueller | 2013-09-17 19:37:52 -0400

Use piety_breakpoint 100 in miscast code

--------------------------------------------------------------------------------
fa329ecffc | Chris Oelmueller | 2013-09-17 19:36:46 -0400

Use piety_breakpoint 30 in good god code
This is the first legit > comparison as opposed to >= which breakpoints
usually compare to. Anything that should be done?

--------------------------------------------------------------------------------
77324f1d65 | Chris Oelmueller | 2013-09-17 19:34:57 -0400

Use piety_breakpoint 100 in gifting code
This is a factual change from 101 to 100 for consistency reasons.

--------------------------------------------------------------------------------
bf20af9d5b | Chris Oelmueller | 2013-09-17 19:34:16 -0400

Trog's Hand failure chance: guarantee success at 75 piety (was: 80)

--------------------------------------------------------------------------------
bf69271434 | Chris Oelmueller | 2013-09-17 19:32:11 -0400

Convert Beogh armor bonuses to piety_breakpoint

--------------------------------------------------------------------------------
197bf0fafb | Chris Oelmueller | 2013-09-17 19:18:31 -0400

Buff Trog and Oka: gifts can happen earlier
In reality, they probably won't due to the random2 check.

--------------------------------------------------------------------------------
4ed087b9a0 | Chris Oelmueller | 2013-09-17 19:17:29 -0400

Buff Beogh: orcish armour is better
More comparable preparation for switching to piety breakpoints

--------------------------------------------------------------------------------
4498b33771 | Chris Oelmueller | 2013-09-17 19:16:06 -0400

Buff Beogh (orcish weapons are 6 piety better)

--------------------------------------------------------------------------------
6dc076b052 | Chris Oelmueller | 2013-09-17 19:15:14 -0400

Use piety_breakpoint in gift code
This is 75 instead of 80. and also >= instead of >.
Note the rather high checks against another random2.

--------------------------------------------------------------------------------
f616a95481 | Chris Campbell | 2013-09-17 20:12:43 +0100

Don't generate the knife of Accuracy or boots of the Assassin
The knife of Accuracy just isn't ever really useful.
The boots of the Assassin don't do anything that isn't already done in a
more interesting way by one or more of the cloak of the Thief, robe of
Night or ring of Shadows.

--------------------------------------------------------------------------------
f5855ac9ac | Chris Campbell | 2013-09-17 20:12:02 +0100

Adjust Bullseye and the shield of the gong
Change Bullseye from a shield to a large shield.
Remove guardian spirit from shield of the gong - the important part is the
noise, and spirit shield is already on a few other unrands.

--------------------------------------------------------------------------------
0483380d38 | Neil Moore | 2013-09-17 12:30:32 -0400

Revert "Prompt for snaking stick weapons."
No one seems to like that approach.

This reverts commit 051f3a5c15f436f1d3b5f7b2666ae4b8bbd7504c.

--------------------------------------------------------------------------------
98ea790a5a | Neil Moore | 2013-09-17 11:42:22 -0400

Don't let mute creatures speak (Reaver, #7559).
This includes offers of Beogh worship.

We don't distinguish between vocalisations and other sounds, so this
will block some messages it really should not, for example the
catoblepas "speech":
  @The_monster@ stomps on the ground.
  WARN: You hear tremors.

--------------------------------------------------------------------------------
8ee74395fa | Neil Moore | 2013-09-17 11:25:42 -0400

Improve a speech line (ontoclasm)

--------------------------------------------------------------------------------
0b54694bad | Chris Oelmueller | 2013-09-17 11:24:38 -0400

Rename `che_stat_boost` to `chei_stat_boost`

--------------------------------------------------------------------------------
d7f3ed55fe | Steve Melenchuk | 2013-09-16 20:37:57 -0600

Zot trap effect: Word of Recall.

--------------------------------------------------------------------------------
221303f12f | Steve Melenchuk | 2013-09-16 19:23:15 -0600

Give wellsprings a small band of water elementals instead of summons.
This was suggested on IRC as a means to make them less aggravating to
fight. This might not be the ultimate solution here, but I want to see
how it works out in practice.

--------------------------------------------------------------------------------
412d76f250 | Neil Moore | 2013-09-16 13:14:33 -0400

Correct the webtiles chat background.

--------------------------------------------------------------------------------
49f4680eb2 | ontoclasm | 2013-09-16 10:23:18 -0500

Add a background to the webtiles chat window (Somer, 7558)

--------------------------------------------------------------------------------
a7cf4aec0e | Neil Moore | 2013-09-15 23:11:00 -0400

Grammatify.

--------------------------------------------------------------------------------
ac325eca50 | Neil Moore | 2013-09-15 23:07:44 -0400

Fix formatting.

--------------------------------------------------------------------------------
d88de33e94 | ontoclasm | 2013-09-15 21:56:20 -0500

Darken sand tiles
This maybe makes them a little less beach-like, but at least you'll be
able to see items in the Shoals now.

--------------------------------------------------------------------------------
24746d445f | Neil Moore | 2013-09-15 18:51:26 -0400

Don't let moths of wraths operate through walls (#7555)
That includes transparent walls.  Grates are still fine of course, so
tgw_trog still works.

--------------------------------------------------------------------------------
8567ab0805 | Neil Moore | 2013-09-15 18:51:04 -0400

Don't spend time casting S2S on an unsnakable or no weapon.
Do continue to waste the turn if the item was snakable but the spell had
no effect (e.g. the snake could not be placed).

Maybe the messaging could be improved to make more clear why it
failed, or at least to distinguish between an abort and a successful
cast with no snakes.

--------------------------------------------------------------------------------
051f3a5c15 | Neil Moore | 2013-09-15 18:51:04 -0400

Prompt for snaking stick weapons.
The prompt can be avoided by inscribing the weapon with "+S".  !D is
checked first.

--------------------------------------------------------------------------------
38d80603b0 | Brendan Hickey | 2013-09-15 10:45:01 -0700

Disable Fumes
Fumes is being pulled from the 0.13, but kept in trunk.
Set the frequency to zero until after we branch.

--------------------------------------------------------------------------------
d1802da962 | MarvinPA | 2013-09-15 18:03:49 +0100

Add no_rtele_into to a temple entry vault with flame clouds

--------------------------------------------------------------------------------
806dfee9e8 | Brendan Hickey | 2013-09-15 10:02:56 -0700

Make Penetrating Rocks trunk only.

--------------------------------------------------------------------------------
f0ae9ddb47 | Adam Borowski | 2013-09-15 18:56:18 +0200

Make the Forest trunk-only.
It's in a better shape than LO or Dj, but the consensus seems to be that
it still needs a lot of polishing and balancing.

--------------------------------------------------------------------------------
69fad1d419 | Adam Borowski | 2013-09-15 18:56:18 +0200

Make Dj and LO trunk-only.

--------------------------------------------------------------------------------
7cc1082958 | Adam Borowski | 2013-09-15 18:56:18 +0200

Fix a reversed debug message.
It still fails just the same...

--------------------------------------------------------------------------------
9e296d333b | Neil Moore | 2013-09-15 12:21:23 -0400

Properly extend Dazzling Ray with Vehumet (#7553)
We were hard-coding the unextended range in a couple of places,
particularly in the targetter.  This meant that the "any hostiles in
range" check could find a target while the targetter itself could not
(leaving the cursor on the player); and the primary beam could hit
monsters that appeared to be out of range (for example, if the player
presses ! or shift-direction).  Use the correct extended range instead.

Also, Vehumet now extends the secondary beams to the same range as
the primary.

--------------------------------------------------------------------------------
5a62039309 | ontoclasm | 2013-09-14 20:45:19 -0500

Ugly things (Bloax, 7483)

--------------------------------------------------------------------------------
1d58cb504a | Neil Moore | 2013-09-14 21:33:13 -0400

Improve some citations.

--------------------------------------------------------------------------------
1160cc8812 | ontoclasm | 2013-09-14 18:07:15 -0500

Fix dwhip doll tile

--------------------------------------------------------------------------------
c8ee00c962 | ontoclasm | 2013-09-14 18:07:14 -0500

Fix djinn player doll tiles

--------------------------------------------------------------------------------
305a040654 | ontoclasm | 2013-09-14 18:07:14 -0500

Djinn hair tiles

--------------------------------------------------------------------------------
bc0cfd3c41 | ontoclasm | 2013-09-14 18:07:13 -0500

Tengu tile tweaks (pubby, 7545)

--------------------------------------------------------------------------------
7c3917f37e | ontoclasm | 2013-09-14 18:07:12 -0500

Player doll tiles (Team Impy, 7490)

--------------------------------------------------------------------------------
00ae5afe4c | Adam Borowski | 2013-09-14 23:28:32 +0200

A bunch of quotes.

--------------------------------------------------------------------------------
529821a1da | Adam Borowski | 2013-09-14 23:28:32 +0200

Move "Gram" to _real_weapon_name_.
Not that separating _real and _joke has any meaning, but as long as it
is here, come on, this was the sword of Sigmund himself.

--------------------------------------------------------------------------------
7022c28305 | Brendan Hickey | 2013-09-14 13:57:10 -0700

Make polymoths not spawn
They might have a place in Sprint.

--------------------------------------------------------------------------------
a76b329b3f | Neil Moore | 2013-09-14 16:43:00 -0400

Simplify.

--------------------------------------------------------------------------------
46925459ec | Neil Moore | 2013-09-14 16:29:07 -0400

Be more careful about checking a base type.
Bad behaviour can't actually happen currently (no weapons etc. are
penetrating, and WPN_ROD doesn't even really exist), but better safe
than sorry.

Also fix up formatting.

--------------------------------------------------------------------------------
02ff1875cf | Brendan Hickey | 2013-09-14 12:44:59 -0700

Make Large Rocks penetrating
Silently brand all large rocks as penetrating.
This is mostly a buff to Stone Giants and Cyclopses.
I considered accompanying this change with a reduction to damage,
but I'm ambivalent on that.

--------------------------------------------------------------------------------
0169dd3a16 | Neil Moore | 2013-09-14 15:30:35 -0400

Fix = key in Webtiles in Opera.
Sadly, this breaks numpad + on Opera: there doesn't seem to be a way to
distinguish it from the = key (both are keydown 107, keypress 43, with no
shift).

--------------------------------------------------------------------------------
2036e7f65f | Neil Moore | 2013-09-14 11:08:43 -0400

Don't prompt for friendly fire when targetting Dazzling Spray (#7552)

--------------------------------------------------------------------------------
927dcb7de7 | Translators | 2013-09-14 15:09:53 +0200

[Transifex]
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
d516d2d309 | Raphael Langella | 2013-09-14 15:03:52 +0200

Restore the functionality of submitting new quotes from transifex.
by adding a line :quote at the end of a description followed by the quote.
Works both for english and foreign quotes.

--------------------------------------------------------------------------------
225e97d235 | Neil Moore | 2013-09-14 03:56:58 -0400

Fix Windows console compilation.

--------------------------------------------------------------------------------
dae78c358d | Neil Moore | 2013-09-14 00:41:43 -0400

Fix Mac universal builds.
Turn off inline depgen, and furthermore don't build tilegen etc as
universal binaries.

This still doesn't work on ppc, because we hardcode i386 :(

--------------------------------------------------------------------------------
341fab92c2 | Adam Borowski | 2013-09-14 02:17:56 +0200

Fix water nymphs teleporting people through walls.

--------------------------------------------------------------------------------
ccdc2b5da7 | Adam Borowski | 2013-09-14 02:06:46 +0200

db_lint: don't whine about translated quotes for untranslated descs.

--------------------------------------------------------------------------------
f4bb708d1c | Adam Borowski | 2013-09-14 01:45:41 +0200

Revert "db_lint: support :quote quotes"
They're back to where they were...

This reverts commit 93da687206d490830b04e22f7688a4fde96cae9e.

--------------------------------------------------------------------------------
d2aabe6624 | Adam Borowski | 2013-09-14 01:43:05 +0200

Axe a historic comment.
It probably just clouds things, it hasn't been relevant in ages.

--------------------------------------------------------------------------------
e29d0929b9 | Neil Moore | 2013-09-13 19:39:57 -0400

Consider fcloud harmless to icemailed players (Naruni, #4804)

--------------------------------------------------------------------------------
8dd770e0c9 | Adam Borowski | 2013-09-14 01:15:08 +0200

Fix a crash with a near-dead slime creature splitting.
Slime creatures rarely go near fancy monsters as starcursed masses do,
so related crashes hardly ever happened, until I added an assertion in
eee27880.

--------------------------------------------------------------------------------
8d5db09989 | Adam Borowski | 2013-09-14 01:13:07 +0200

Use adjacent_iterator in one place.
It currently reuses radius_iterator anyway but this should be optimized one
day.

--------------------------------------------------------------------------------
2946308cae | Adam Borowski | 2013-09-13 23:53:14 +0200

Use [foo|bar|baz|quux] to inline a bunch of monster speeches.
This shorthand syntax makes them quite a bit more readable.

Alternatives used multiple times, or those with more versions, stay as
internal keys.

--------------------------------------------------------------------------------
e5f0be7142 | Adam Borowski | 2013-09-13 07:13:30 +0200

Move mons_is_stationary() to struct actor.
Simplifies code in a number of places, and also fixes a few tree-moving bugs.

--------------------------------------------------------------------------------
a2d0eab8a2 | Adam Borowski | 2013-09-13 06:51:34 +0200

Describe the rest of monster spells.

--------------------------------------------------------------------------------
409c1b2849 | Adam Borowski | 2013-09-13 04:31:01 +0200

Simplify.

--------------------------------------------------------------------------------
113998cf2a | Adam Borowski | 2013-09-12 18:53:41 +0200

Axe an obsolete comment.

--------------------------------------------------------------------------------
4276b65abe | Adam Borowski | 2013-09-12 17:23:22 +0200

Fix druids and dryads trying to awaken the forest against Fedhasites.
Trees are quite obviously plants...

--------------------------------------------------------------------------------
4eabf5647e | Adam Borowski | 2013-09-12 05:59:30 +0200

Remove two totally pointless vaults.
If you do magic mapping _and_ you have digging early, you may get a
redundant altar.

--------------------------------------------------------------------------------
f5e63f43c5 | Raphael Langella | 2013-09-11 22:11:27 +0200

Move quotes back to their own resource file.
This commit partially reverts 45418d04c5e6913acaf493027d765c495609bdd

--------------------------------------------------------------------------------
0b360abc9b | Neil Moore | 2013-09-11 11:00:29 -0400

Don't close opened doors when reverting a door seal.
There might be a monster underneath.

--------------------------------------------------------------------------------
d06b3baba1 | Neil Moore | 2013-09-11 11:00:28 -0400

Don't let charmed monster open sealed doors.
Normal friendlies were already prevented.

--------------------------------------------------------------------------------
7710137f8d | Brendan Hickey | 2013-09-11 00:14:18 -0700

Cosmetic temple vault changes

--------------------------------------------------------------------------------
d50ca8e0b8 | Brendan Hickey | 2013-09-10 23:55:10 -0700

Add a temple layout

--------------------------------------------------------------------------------
cfa97cc059 | Adam Borowski | 2013-09-10 18:07:48 +0200

Fix a couple of initialized variables.
you.redraw_temperature has no possible problems (beyond valgrind spam),
monster.summoner was likely to cause some in the future.

--------------------------------------------------------------------------------
883680b4d8 | Adam Borowski | 2013-09-10 18:07:48 +0200

Let a string get out of scope in end(), for valgrind's sake.

--------------------------------------------------------------------------------
3ce4a4bd1e | Neil Moore | 2013-09-10 11:16:46 -0400

Fix a rare error in hangedman_glass_garden.
There was an extra M, not on the map edge, that could be the only
door to the vault.  That could have resulted in the error:
  Unable to find exit from hangedman_glass_garden

The relative placements of doors and lava could still cause a
disconnection, but that should result in a veto rather than a
user-visible error message.

--------------------------------------------------------------------------------
77db7acd7d | Adam Borowski | 2013-09-10 13:37:55 +0200

Check for constriction out of sync for monsters too.

--------------------------------------------------------------------------------
d23e3647df | Adam Borowski | 2013-09-10 13:37:55 +0200

Constify and reduce scope.

--------------------------------------------------------------------------------
30670662ab | Adam Borowski | 2013-09-10 13:35:07 +0200

Get rid of random_shuffle().
This should hopefully make games from the same seed proceed the same on all
architectures[1], as I can't think of anything else that behaves differently
based on pointer size, endianness or exact pointer values.

I used a NIH implementation instead of passing a third argument to
random_shuffle, as the interface is so much nicer.

[1]. This will be affected by terminal size (elemental colours are not
resolved outside the screen), tile windows size (random animations),
tiles/non-tiles and possibly others.

Also, I don't think we use STL hashes anywhere, but if we'd do, the STL
implementation will matter.  Please don't make this stop you: this commit
is only to make test cases from my stress tests portable which is a small
benefit, perhaps even smaller than the nicer call interface.

--------------------------------------------------------------------------------
cb2faac032 | Neil Moore | 2013-09-09 20:33:57 -0400

Don't leak RNG states in the AK Abyss.
_get_real_level (used for finding a real Dungeon level to copy) pushes
the RNG state, but failed to pop it if there were no real levels.  This
resulted in two extra states on the RNG stack for AKs, and possibly
more if they explored long enough.

--------------------------------------------------------------------------------
b5c6b3af72 | Neil Moore | 2013-09-09 18:42:25 -0400

Remove unused PSIZE_PROFILE.
It was intended for the stealth modifier, but that is handled as
a racial modifier instead (and doesn't strictly follow profile
size, anyway: witness minotaurs and djinn).

--------------------------------------------------------------------------------
f62eb07509 | Adam Borowski | 2013-09-09 21:28:52 +0200

Remove teleport-trap bubbles in gup_sewer_entry_bubbles.

--------------------------------------------------------------------------------
b40361279b | pubby | 2013-09-09 19:56:37 +0200

Fix shafting with items bugs.
First, the down_stairs function called handle_items_on_shaft,
but it called it after changing you.depth.
This meant it shafted the items you LANDED on, rather than the items you
were standing on at the time of shafting.

Second, the stash and map knowledge weren't being cleared despite the
items being obviously moved.

Third, place_transiting_items wasn't handling stacks properly.
If you shafted a stack of ammo, only 1 ammo would exist afterwards.
This also fixes also applies to any other usage of place_transiting_items.

--------------------------------------------------------------------------------
9b01effd8b | Neil Moore | 2013-09-09 07:24:06 -0400

Improve formatting.

--------------------------------------------------------------------------------
783dc900f3 | Translators | 2013-09-09 09:58:51 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
bcce9b2c4d | Raphael Langella | 2013-09-09 09:58:51 +0200

[txc] Improve handling of removed keys being edited back in.

--------------------------------------------------------------------------------
495aae6f02 | MarvinPA | 2013-09-09 08:11:05 +0100

Correctly end searing ray when paralysed/petrified/put to sleep

--------------------------------------------------------------------------------
2a6619c0b4 | ontoclasm | 2013-09-08 22:04:55 -0500

Merge branch 'shoals-tiles'

--------------------------------------------------------------------------------
85af8c710e | ontoclasm | 2013-09-08 22:03:56 -0500

Display Shoals' ETC_WAVES in tiles

--------------------------------------------------------------------------------
b7f77a669b | Adam Borowski | 2013-09-09 03:27:15 +0200

Make dbg-scan look for a constriction problem.
Too bad, the save I got has it already corrupted.

--------------------------------------------------------------------------------
5e3d511fab | Adam Borowski | 2013-09-09 03:27:14 +0200

Fix a potential heat aura crash.

--------------------------------------------------------------------------------
242e861bad | ontoclasm | 2013-09-08 19:30:41 -0500

Shoals water variations and disturbance tiles

--------------------------------------------------------------------------------
accbb5d310 | Adam Borowski | 2013-09-09 01:50:37 +0200

Don't use enum numbers for mutations in crash dumps.
Also, include temporary ones.

Also, don't call all innates "demon".

--------------------------------------------------------------------------------
7b6d41b551 | Adam Borowski | 2013-09-09 01:25:56 +0200

Let mutation_name() return the short name.
It's internally named "wizname" but is accessible to the player, for example
via the lua interface.  We also have a "short desc" that often differs, but
that's used only on the % screen.

--------------------------------------------------------------------------------
c13fa1dade | Adam Borowski | 2013-09-09 00:49:07 +0200

s/mutation_name()/mutation_desc()/
It returns a whole-sentence description.

--------------------------------------------------------------------------------
60d75a9666 | Adam Borowski | 2013-09-08 23:09:57 +0200

Give double (fictional and real) attribution to M:tG quotes.

--------------------------------------------------------------------------------
727e15e54c | Neil Moore | 2013-09-08 12:02:37 -0400

Fix temple_pool entrances.
Both variants could leave one of the quadrants outside the pool
disconnected from the level. Prevent this by continuing the floor
border along all four sides, not just two.

Also, temple_pool_b would not place: it relied on pool_fixup to
make the path connected, but connectivity is checked well before
the pool fixup is applied.  Now we guarantee one diagonal path,
and furthermore add a 1/3 chance of no_pool_fixup, so that sometimes
that is the only path.

--------------------------------------------------------------------------------
1ebb5413be | Brendan Hickey | 2013-09-08 00:41:30 -0700

Revert "Disable DGL/Webtiles chat logging by default."
This reverts commit 7a73ffc9a556fc946c10542372d2b29ea3d43486.

Disabling chat logging seems to also disable notes to self and other good 
things.

--------------------------------------------------------------------------------
7a73ffc9a5 | Brendan Hickey | 2013-09-08 00:07:30 -0700

Disable DGL/Webtiles chat logging by default.
People have been scraping the morgues and being creepy.
I don't think players are widely aware that logging even occurs.

--------------------------------------------------------------------------------
44303320cb | ontoclasm | 2013-09-08 01:10:24 -0500

Shoals water tiles
Note that these currently lack any sort of variation.

--------------------------------------------------------------------------------
9a84c3dc26 | Brendan Hickey | 2013-09-07 20:22:03 -0700

Remove grunt_twisty_little_passages
Space-filling layouts seem to make for very poor gameplay.
I watched a player spend over an hour and several thousand turns attempt to 
clear it.
With apologies to Grunt.

--------------------------------------------------------------------------------
7f9519339e | Adam Borowski | 2013-09-08 02:44:20 +0200

Partially fix Lear's hauberk melding woes.
Fixed:
* merfolk leaving water (a side slot getting unmelded)
* Blade Hands (a side slot getting melded)
NOT fixed:
* merfolk leaving water while blade-handed

I have a feeling adding a multi-slot armour wasn't the best idea...

--------------------------------------------------------------------------------
997da1ad7d | Adam Borowski | 2013-09-08 02:44:19 +0200

Drop some useless parentheses.

--------------------------------------------------------------------------------
83fa91821c | Neil Moore | 2013-09-07 20:39:30 -0400

Place plant clumps after vaults (gammafunk)
They were preventing larger vaults from placing in Forest (and
presumably Vaults too), because vaults don't like to overwrite
monsters, even plants.

--------------------------------------------------------------------------------
57e1e64dba | Neil Moore | 2013-09-07 16:03:05 -0400

Don't prevent casting swiftness in liquids.
It still doesn't make you faster, and continues to give the "water
foams" message, as well as a replacement for "You feel quick.",
to convey that to the player.

--------------------------------------------------------------------------------
969218fafc | Neil Moore | 2013-09-07 15:39:50 -0400

Make lava block swiftness as water does.

--------------------------------------------------------------------------------
64c4809336 | Adam Borowski | 2013-09-07 18:42:02 +0200

Avoid round-off errors when checking for minimal mass hp.
A 2 hp mass might split not exactly equal.  4 hp should be always enough,
I'm making this 8 just to be safe.

--------------------------------------------------------------------------------
088dd14d1f | Adam Borowski | 2013-09-07 18:33:07 +0200

Fix a slime/mass blame crash...
Go fetch me a brown paper bag, please.

--------------------------------------------------------------------------------
83d4554714 | Adam Borowski | 2013-09-07 18:04:52 +0200

Don't allow 1 hp starcursed masses to split.
Because, you know, the assert from the last commit... and some obscure
crashes here and there...

--------------------------------------------------------------------------------
eee2788050 | Adam Borowski | 2013-09-07 18:01:06 +0200

Assert that slimes/masses are alive both before and after split.

--------------------------------------------------------------------------------
a75386fb68 | Adam Borowski | 2013-09-07 18:00:09 +0200

Properly copy summoner and blame chain for slimes/masses.

--------------------------------------------------------------------------------
e7ea338c4f | Adam Borowski | 2013-09-07 17:54:55 +0200

Use MSGCH_ERROR for a scan failure.
Should probably assert-out immediately, it often leads to crashes.

--------------------------------------------------------------------------------
961e62754b | Adam Borowski | 2013-09-07 11:12:20 +0200

Disable compiler optimization on Apple's gcc altogether.
Not even -O1 works well enough.

--------------------------------------------------------------------------------
5ba7f9e077 | Adam Borowski | 2013-09-07 11:12:20 +0200

Schedule the blinding brand for removal.

--------------------------------------------------------------------------------
bc49bdd7d5 | Adam Borowski | 2013-09-07 11:12:20 +0200

Stale pies are inedible.

--------------------------------------------------------------------------------
0d68f5dc11 | Neil Moore | 2013-09-07 01:52:33 -0400

Fix grammar and improve wording.

--------------------------------------------------------------------------------
b6a86b3bbb | Neil Moore | 2013-09-07 00:26:53 -0400

What do you mean I can't say "BOM" on an airplane?

--------------------------------------------------------------------------------
d3d37a4ad2 | ontoclasm | 2013-09-06 23:24:22 -0500

Tiles for various monster spells

--------------------------------------------------------------------------------
0ca8910a35 | ontoclasm | 2013-09-06 23:24:21 -0500

Rename SPELL_POISON_SPLASH to SPELL_SPIT_POISON

--------------------------------------------------------------------------------
d5d8a818bb | Neil Moore | 2013-09-06 23:41:56 -0400

Fix a chaos bounce crash (#5892).
It wasn't safe to change the angle of a ray that was on a corner of
the 45-degree diamond grid: if the new angle pointed inside the cell,
we would violate the _valid() checks.  Have set_degrees (only called
for chaos bouncing currently) nudge the ray inside the diamond to
avoid this problem.

--------------------------------------------------------------------------------
d60a8dff6c | Adam Borowski | 2013-09-07 04:31:57 +0200

Assert that a follower being marshalled is alive.
Due to marshallMonster() handling dead ones specially, there's a crash on
restore.  I don't see any reason why dead monsters should be unmarshallable,
but dead followers have no reason to [non-]live either.

And saves are quite worthless for finding the cause here...

--------------------------------------------------------------------------------
ac9686f817 | Adam Borowski | 2013-09-07 02:31:23 +0200

Fix a crash on same-area abyss shifts.
If an abyssal teleport places you exactly at the center (from which you may
have moved away), the shift will move entities by (0,0).  Quite a lot of
code looks like:
  arr[dst] = arr[src]
  arr[src] = 0

Such shifts are not no-op otherwise, so let's skip just the entity moving part.

--------------------------------------------------------------------------------
137b2f22da | Neil Moore | 2013-09-06 20:08:56 -0400

Same text, more improvements (reaver, ontoclasm)

--------------------------------------------------------------------------------
c65c1d3289 | Neil Moore | 2013-09-06 18:53:28 -0400

Further improve wording.

--------------------------------------------------------------------------------
22babcb0ca | Adam Borowski | 2013-09-07 00:39:40 +0200

Fix a friendly water nymph crash.

--------------------------------------------------------------------------------
fc16b252c2 | Adam Borowski | 2013-09-07 00:39:40 +0200

Don't show a particularly spammy Xom note by default.

--------------------------------------------------------------------------------
c573ff3bad | Adam Borowski | 2013-09-07 00:39:40 +0200

Wording fix.

--------------------------------------------------------------------------------
277174a8ad | elliptic | 2013-09-06 15:16:43 -0400

Don't display Zin rMut on the % screen.
It isn't 100% protection unless you are actually at 200 piety, and it starts
(at low probability) as soon as you start worshipping Zin. Beginning to
display it at some arbitrary piety breakpoint just obscures other sources.

--------------------------------------------------------------------------------
7028ba0a94 | Neil Moore | 2013-09-06 15:09:49 -0400

Don't pretend ending flight is fatal for hoverers.
Thanks to Bcadren for pointing out the bug.

The messaging is still a bit funny:
  You float gracefully downwards. You heave yourself high above the lava.

--------------------------------------------------------------------------------
f2fead23ac | ontoclasm | 2013-09-06 12:11:41 -0500

Discord tile

--------------------------------------------------------------------------------
580dee5c93 | Raphael Langella | 2013-09-06 16:08:05 +0200

[txc] Remove the invalidate option
Makes it the default behaviour except it should work better now.

--------------------------------------------------------------------------------
c7e8f6b079 | Raphael Langella | 2013-09-06 14:59:57 +0200

Remove pie description and quote.
I don't want those in transifex and got bored of deleting them before
pushing. If someone still has an unfinished jester game, I'm sure they can
finish it just fine without the pie description.

--------------------------------------------------------------------------------
a18ca80a16 | ontoclasm | 2013-09-06 00:55:48 -0500

Polymoth tile

--------------------------------------------------------------------------------
24fbf643f8 | MarvinPA | 2013-09-06 06:35:58 +0100

Rework the Sword of Cerebov's -rF effect
Instead of just reducing rF during melee attacks (where the fire damage
dealt is relatively small), it reduces rF by one level for a duration
(something that Cerebov will likely take more advantage of than the
player). Increase its base damage and accuracy by 1 each to make it a
little more attractive as a player weapon too, and reinstate its evil flag
(like demon weapons, it's just innately evil, and the resistance reduction
can be flavoured as a vaguely demonic effect).

--------------------------------------------------------------------------------
081699f43a | ontoclasm | 2013-09-05 23:50:31 -0500

Add some hatches to lemuel_river_lethe

--------------------------------------------------------------------------------
2f00e6de5b | Brendan Hickey | 2013-09-05 21:00:38 -0700

Take MP before casting spells.
MP should be taken before spells are cast.
Take it silently, return it if the spell is aborted.

--------------------------------------------------------------------------------
84c9098b26 | Adam Borowski | 2013-09-06 03:33:33 +0200

Don't forbid using the Sword of Cerebov for good god worshippers.
There's nothing specifically evil about it.

--------------------------------------------------------------------------------
fa2c9bc391 | Adam Borowski | 2013-09-06 03:33:33 +0200

Don't list a part of monster spells as tileless.

--------------------------------------------------------------------------------
c88c1bbf66 | Adam Borowski | 2013-09-06 03:33:33 +0200

Rename Acid Splash to Spit Acid.
To match the player version.

--------------------------------------------------------------------------------
5af94b2ffb | Adam Borowski | 2013-09-06 03:33:33 +0200

Describe "Cantrip".
These look like real spells rather than monster speech, yet lack any
documentation whatsoever. Spoiled players know what's going on, unspoiled
ones should see this in monster descriptions.

--------------------------------------------------------------------------------
b379467d04 | Adam Borowski | 2013-09-06 03:33:32 +0200

Require orb spiders to charge the orb before using.
They used Cantrip to water them down before, which didn't look right.

--------------------------------------------------------------------------------
31530a2d32 | Adam Borowski | 2013-09-06 03:33:32 +0200

Drop the pretense that the damage on monster IOOD tracers is real.

--------------------------------------------------------------------------------
6a7101f842 | Adam Borowski | 2013-09-06 03:33:32 +0200

Remove an unused spell "Frenzy".

--------------------------------------------------------------------------------
915479f068 | Adam Borowski | 2013-09-06 03:33:32 +0200

Descs for a lot of monster spells.

--------------------------------------------------------------------------------
842f4359e8 | Adam Borowski | 2013-09-06 03:33:32 +0200

Let Primal Wave deal extra damage to fire-based monsters as well.
Vulnerability to cold is not enough, they need to be innately flaming.
I have doubts if balrugs and brimstone fiends should be included, they are
for now.

This damage type comes up rarely enough that mentioning it in monster
descriptions would be spam; let's have it only in the spell's description.

--------------------------------------------------------------------------------
21535cf670 | MarvinPA | 2013-09-06 02:14:03 +0100

Allow food acquirement to give ambrosia
Also don't base any of the decisions on whether rations are being carried.

--------------------------------------------------------------------------------
26c9fab530 | Neil Moore | 2013-09-05 19:22:43 -0400

Document ORDER:

--------------------------------------------------------------------------------
7837b11366 | Neil Moore | 2013-09-05 19:09:23 -0400

Regenerate prebuilt yaccage.
And back to Bison 2.5.

--------------------------------------------------------------------------------
4047cdca5f | Neil Moore | 2013-09-05 19:09:23 -0400

Add ORDER: headers to sprint/zotdef/tutorial maps (#7383)
It's not yet necessary for zotdef and tutorial, but will be when they
get to have 9 and 10 maps, respectively.

--------------------------------------------------------------------------------
f94d332ad4 | Neil Moore | 2013-09-05 19:08:19 -0400

Add a new "ORDER:" map header for sorting game-mode maps.
The first step towards fixing #7383.  Defaults to INT_MAX, so things
that do not set it explicitly will be last.  If two maps have the
same ORDER:, they will be sorted by description/name as before.

Also change the des cache index format to store ORDER (necessitating a
minor version bump).  Rather than leaving ORDER at its default value
when loading an des cache index from earlier versions, we throw out
the entire index so that it can be regenerated.

--------------------------------------------------------------------------------
2e0ee8d010 | MarvinPA | 2013-09-05 21:54:33 +0100

Rename scroll of vorpalise weapon to scroll of brand weapon (Soner)

--------------------------------------------------------------------------------
1662485a73 | Neil Moore | 2013-09-05 16:51:07 -0400

Correctly add last-place score entries (#2834)
If the score file was full and the new score was just high enough
to push off the very last entry, we replace that entry with the
new one.  However, that wasn't resetting the cached raw line, so
we were dumping the *old* line when re-writing the scores line.

Now we copy and reset raw_line with the other fields of class
scorefile_entry.  It would also work to reset raw_line entirely
when copying an entry, but keeping the cached value works as
well; in this particular case, there is no cached line anyway.

--------------------------------------------------------------------------------
0a0b9e9c0c | Translators | 2013-09-05 17:05:46 +0200

[Transifex]
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
3a822f816b | MarvinPA | 2013-09-05 02:41:39 +0100

Fix the Cloud Mage not getting spells

--------------------------------------------------------------------------------
c637263158 | Translators | 2013-09-04 15:51:06 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
ab4462479e | Adam Borowski | 2013-09-03 23:50:29 +0200

Formatting/brace/trivial returns fixes.

--------------------------------------------------------------------------------
6e116258be | David Ploog | 2013-09-03 23:46:23 +0200

Move the entry of one temple map, for higher symmetry.

--------------------------------------------------------------------------------
3977b14f01 | MarvinPA | 2013-09-03 22:38:39 +0100

Fix fungus form being prevented from moving with allies present

--------------------------------------------------------------------------------
ed52999f57 | MarvinPA | 2013-09-03 21:24:08 +0100

Add no_rtele_into to jelly entry vault

--------------------------------------------------------------------------------
9af37b1011 | Adam Borowski | 2013-09-03 21:55:54 +0200

Give all Temple maps only one exit.
There's surprisingly little damage: almost all had exits either clustered or
easily replaceable.

--------------------------------------------------------------------------------
a26970126c | Adam Borowski | 2013-09-03 21:39:52 +0200

Use same marker for attributions as elsewhere.

--------------------------------------------------------------------------------
a64439fdc1 | Adam Borowski | 2013-09-03 21:33:07 +0200

A quote for kobolds.

--------------------------------------------------------------------------------
2432c44e5e | Adam Borowski | 2013-09-03 21:33:07 +0200

A quote for Fire Storm.  Vehumet approves.

--------------------------------------------------------------------------------
82e0a191bb | Adam Borowski | 2013-09-03 21:33:07 +0200

Add Discord to the list of Xom tension spells.
It looks like something that has a special place in the banana Xom has for
heart.  Perhaps even it should get its own effect, rather than being one of
a long list in a rare "Xom makes you cast a spell" effect.

--------------------------------------------------------------------------------
d9674dfee0 | Adam Borowski | 2013-09-03 21:33:07 +0200

A too ugly to live hack for a mapstat failure.
A real fix would be to skip disabled roulette branches, but I think a full
coverage in a single iteration might be worth such a workaround.

There's just one vault with this problem, as far as I know.

--------------------------------------------------------------------------------
32698bfae1 | Adam Borowski | 2013-09-03 21:33:07 +0200

Re-roll active Lair/Vaults sub-branches after every mapstat iteration.
All branches are checked anyway, but some vaults check branch state.

--------------------------------------------------------------------------------
a40525a788 | Adam Borowski | 2013-09-03 21:33:07 +0200

Partially revert "Better behaviour if _fixup_branch_stairs() sees multiple 
branch exits."
Only in debug builds, and fatal only if compiled with -DDEBUG_FATAL.

Erroneous behaviour should be fixed rather than worked around.  This is not
bad enough to warrant a crash in a normal game, although at least one person
got trapped on D:1 due to this recently.

--------------------------------------------------------------------------------
eba34da768 | Adam Borowski | 2013-09-03 14:34:18 +0200

End a starcursed mass' turn when it uses its ability.
It caused no end of various strange crashes.

If you somehow insist for splits or screams to be free actions, please at
least validate that the monster is still alive (and not replaced with
something else at its mindex/pointer) upon ending the split or scream.
Both can start quite a chain of events.

The particular crash I debugged this time had a scream set off a large
inner flame chain reaction -- it might better be turned into a final action,
but there's more possibilities.

--------------------------------------------------------------------------------
373a2cc989 | Adam Borowski | 2013-09-03 14:34:17 +0200

Look for bogus monster types in dbg-scan.cc

--------------------------------------------------------------------------------
9203b688c6 | Neil Moore | 2013-09-02 11:07:40 -0400

Simplify.
Now that you.stat_zero[] is unsigned, test for nonzero rather than
greater than zero in a number of places.

Also replace a += (conditioned on the initial value being zero) with
plain assignment.  This helps to clarify that we don't have to worry
about overflowing the cap there.

--------------------------------------------------------------------------------
7150391ffd | Neil Moore | 2013-09-02 11:07:12 -0400

Cap stat_zero time, don't save it as a negative number.
Recovery is now limited to at most 200 turns. Previously it was
unlimited, but after a save and restore it would either take 127 or
fewer turns, or take forever as the time was restored as a negative
number.  Besides the cap on recovery time, we marshall as an
unsigned byte, not signed.

The cap could be increased, but anything larger than 255 will
require a minor tag and a change to the marshalling format.

--------------------------------------------------------------------------------
931e27026d | Neil Moore | 2013-09-02 09:32:59 -0400

Improve grammar.

--------------------------------------------------------------------------------
04ac8d103e | ontoclasm | 2013-09-01 20:28:38 -0500

MTLA tile

--------------------------------------------------------------------------------
6ab8498c2c | Adam Borowski | 2013-09-02 02:52:40 +0200

Remove an unused spell Summon Rakshasa.
As opposed to 'Rakshasa Summon'.

--------------------------------------------------------------------------------
497e1c545d | Adam Borowski | 2013-09-02 02:40:25 +0200

Desc monster summoning spells.

--------------------------------------------------------------------------------
178d895b6c | Adam Borowski | 2013-09-02 02:40:24 +0200

Rename Summon Beast to Summon Hell Beast.

--------------------------------------------------------------------------------
3ae9d050cd | Adam Borowski | 2013-09-02 02:40:24 +0200

Descs for blink spells.
A question: why do we have both Blink Away and Blink Range?

--------------------------------------------------------------------------------
39b226bcf4 | Steve Melenchuk | 2013-09-01 18:37:15 -0600

Decaptialise the new unrand and give it a better description.
We have "faerie dragon armour", also named for a species, which doesn't
have the capital letters; thus, "moon troll" should also be in
lowercase.

The expanded description is entirely my own creation.

(I maintain that something bearing the name "moon troll" should get
 evokable invisibility and perhaps a radius 1 tornado effect, but that's
 neither here nor there.)

--------------------------------------------------------------------------------
4136324fea | Adam Borowski | 2013-09-02 01:08:34 +0200

Document tile_water_anim.

--------------------------------------------------------------------------------
9cb1550249 | Adam Borowski | 2013-09-02 01:06:32 +0200

Combine a doubled check.

--------------------------------------------------------------------------------
180ebbfc23 | Adam Borowski | 2013-09-02 01:03:21 +0200

Make the REGEN artefact property an int.
A bool allowed you to specify only 40.

A list of regen values:
* the spell and Trog's hand    100
* ring                          40
* troll leather (!troll)        30
* moon troll leather (!troll)   70
* moon troll leather (troll)    40
* fastheal mutation             20 per degree
  (trolls start with degree 2)

This commit also removes extra hunger from mooner: it had 4.5 compared
to regular troll leather 1.5.  Having the prop an int means we'd need
a formula of some kind, and the unrand can survive a buff.

--------------------------------------------------------------------------------
422cbf229f | pubby | 2013-09-02 00:49:50 +0200

Moon troll leather armour
Double troll armour regen branded with spirit shield.

--------------------------------------------------------------------------------
e589619981 | Adam Borowski | 2013-09-02 00:26:46 +0200

Add an option, tile_water_anim=false, to disable animation of liquids.
No docs yet.

--------------------------------------------------------------------------------
c2056710e7 | ontoclasm | 2013-09-01 17:01:38 -0500

Fix undead draconian tiles

--------------------------------------------------------------------------------
4e06f6f60f | Pekka Lampila | 2013-09-01 15:19:10 -0400

Don't autotravel through monsters caught in nets
Fixes an infinite loop, caused by endlessly trying to swap with an
allied monster caught in a net/web.

--------------------------------------------------------------------------------
7a74111b20 | Adam Borowski | 2013-09-01 02:15:23 +0200

Fix Abyss morphing being for all practical purposes disabled.
Well, it did fix that crash...

--------------------------------------------------------------------------------
70bbdf6cf8 | Adam Borowski | 2013-09-01 02:07:58 +0200

Fix an obscure crash with submerged non-swimmers in the Abyss.
Certain monsters won't drown when dunked into deep water, usually via
confusion.  This marks them as "submerged" but without the ench.  As for
any kind of submerging, the player can then enter that place.  If then the
Abyss morphs into anything but deep water, you'll end up with a monster
on top of you.  This in turn can cause some unobvious crashes.

--------------------------------------------------------------------------------
f214540b71 | Adam Borowski | 2013-09-01 02:07:57 +0200

Check for monsters invading a player's personal space.

--------------------------------------------------------------------------------
65c58ed6cc | pubby | 2013-08-31 16:49:50 -0500

Merge branch 'master' into dwants
Conflicts:
	crawl-ref/docs/crawl_manual.reST
	crawl-ref/source/abl-show.cc
	crawl-ref/source/dat/descript/ability.txt
	crawl-ref/source/delay.cc
	crawl-ref/source/enum.h
	crawl-ref/source/main.cc
	crawl-ref/source/mon-cast.cc
	crawl-ref/source/mon-gear.cc
	crawl-ref/source/mon-spll.h
	crawl-ref/source/mutation-data.h
	crawl-ref/source/mutation.cc
	crawl-ref/source/ng-restr.cc
	crawl-ref/source/ng-setup.cc
	crawl-ref/source/output.cc
	crawl-ref/source/player-act.cc
	crawl-ref/source/player.cc
	crawl-ref/source/species.cc
	crawl-ref/source/spl-data.h
	crawl-ref/source/wiz-you.cc

--------------------------------------------------------------------------------
c4b51221cd | pubby | 2013-08-31 14:51:42 -0500

Remove FoVM monster's toxic radiance.
Toxic radiance was changed in trunk, and the new version was problematic
for Formicids to use.

Because radiance was removed from their spell list, there was no reason
for the spell 'mass cure poison' to exist, and thus it was removed.

As a replacement, venoma mages get parrow, poison bolt, and stone arrow.

--------------------------------------------------------------------------------
c7687b1370 | pubby | 2013-08-31 14:28:34 -0500

Make dig carve-out more adjacent tiles to player.
This is a nerf to prevent players from digging twice to break LOS.
While it's still possible to create single tile corridors, you won't be
able to use digging to completely block LOS.

--------------------------------------------------------------------------------
53ae181d62 | pubby | 2013-08-31 14:12:18 -0500

Add new formicid vault and improve old one.
The new vault is much easier and can go in lair.
The old one was moved to an earlier depth.
Both weights were set to the default value.

--------------------------------------------------------------------------------
2dd0ec917b | pubby | 2013-08-31 13:47:14 -0500

Improve formicid monster gear.
They now get shields and their weapon variety is improved slightly.

--------------------------------------------------------------------------------
b424dccd47 | pubby | 2013-08-31 13:05:34 -0500

Replace Formicid mon flags with genus checks.
There's no point in taking up flag space when genus checks work fine.

--------------------------------------------------------------------------------
c1a2e1451a | pubby | 2013-08-31 00:34:46 -0500

Negate swiftness with stasis.
Negating swiftness is an important design choice of Formicids.
Unfortunately, the stasis amulet will suffer slightly, although it is a
very uncommon effect.

--------------------------------------------------------------------------------
70ca29ee15 | Neil Moore | 2013-08-30 18:33:14 -0400

Actually try to prevent wind blast crashes (#7445)
The logic added in 0.13-a0-2778-g5436301 was exactly backwards
due to bad copy-paste.

--------------------------------------------------------------------------------
0a02c0268f | pubby | 2013-08-30 16:41:42 -0500

Replace chitin skin mutation with exoskeleton.
Exoskeleton provides HP +5, AC +1. This is to make the game easier in
the beginning.

--------------------------------------------------------------------------------
58222c5086 | Neil Moore | 2013-08-30 17:20:18 -0400

Add Dante's original gate quote to the Italian translation.

--------------------------------------------------------------------------------
6647b63a9d | Neil Moore | 2013-08-30 16:48:59 -0400

Move de/pl temple stair quote to Temple proper.
To match the convention used in the English branch quotes.  The English
quote for the stair is just a redirect to the quote for the branch, so
doesn't need to be overridden.

--------------------------------------------------------------------------------
854400c337 | Neil Moore | 2013-08-30 16:44:48 -0400

Add a quote for the Temple.  Vials of wrath!

--------------------------------------------------------------------------------
2dd467ec3b | Adam Borowski | 2013-08-30 22:39:57 +0200

Revert the removal of two quotes.
Transifex can't handle a quote being present in languages other than English
when the "original" is not present.  In this case, it should be enough to
add a quote for the temple; I'm thus putting back the pl and de versions.

--------------------------------------------------------------------------------
698c47cbea | Neil Moore | 2013-08-30 15:43:15 -0400

Set travel destination with enemies nearby.
We were checking i_feel_safe quite early in the travel process (before
prompting for a destination), and aborting if it returned false.  That
meant the player couldn't set a travel target: either they weren't
prompted for one at all (G), or they were prompted but the selection was
thrown out.

Instead, set the target and only abort when we are actually about to
start the travel.  That way the player doesn't have to spend as much
effort to remember what they were doing when the battle started.  As a
side effect, trying to travel with G, X, or x while confused now prints
a message instead of failing silently.

This doesn't work 100% correctly on no-interlevel-travel levels.

--------------------------------------------------------------------------------
1ec9ea86f5 | Translators | 2013-08-30 18:06:16 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
41bd381cb9 | Raphael Langella | 2013-08-30 17:08:22 +0200

[txc] Add a new unicode char for splitting chinese lines.

--------------------------------------------------------------------------------
c7fce8a9ca | Neil Moore | 2013-08-29 21:18:53 -0400

Avoid a rare travel/explore loop in door-challenged forms (#7523)
We ignored the impassibility of doors by bats etc. when try_fallback was
on (for example, when exploring after everything not behind a door has
been visited and the door was out of sight).  This could lead to an
autoexplore loop as we try an alternative path when the door is in
sight, but switch back to the path through the door when it goes out of
sight.  Even if the try_fallback override applied only to runed doors,
bats could still try to path up to runed doors even if there was a
passable but longer route.

Remove this particular override altogether.  This means bats will no
longer path up to runed doors, instead getting the "can't reach some
places" message.

--------------------------------------------------------------------------------
bd752d90a0 | Neil Moore | 2013-08-29 20:27:00 -0400

Don't leak offscreen animated dead motions (#7524)

--------------------------------------------------------------------------------
429900ec8d | Adam Borowski | 2013-08-30 01:56:12 +0200

Fix monsters sometimes blinking through a rock-glass boundary.
Instead of using LOS_NO_TRANS, the code first checked LOS_DEFAULT, then ran
a second check but for glass only.  In some configurations the rays checked
would be different.

--------------------------------------------------------------------------------
572012ac31 | Adam Borowski | 2013-08-30 01:30:11 +0200

Save the Abyss bot at 1000 time boundaries, rather than after 1000 turns.
Easier to predict when the time chunk will end.

--------------------------------------------------------------------------------
1832f94891 | Adam Borowski | 2013-08-30 01:08:23 +0200

Don't crash on dont_place monsters in the Abyss.
Mimic awakening is one such case, there might be more.

--------------------------------------------------------------------------------
e46c15636c | Adam Borowski | 2013-08-29 23:25:29 +0200

Schedule MUT_STRONG_STUFF and MUT_FLEXIBLE_WEAK for removal.

--------------------------------------------------------------------------------
10cd9e4522 | Adam Borowski | 2013-08-29 23:14:07 +0200

Add a missing #ifdef for gas traps.

--------------------------------------------------------------------------------
98ffca298f | Adam Borowski | 2013-08-29 23:06:20 +0200

Show proper numbers for ±STR/DEX/INT mutations on the % screen.

--------------------------------------------------------------------------------
bf6a43de30 | Adam Borowski | 2013-08-29 22:43:57 +0200

Breathe some text into breath spell descs.

--------------------------------------------------------------------------------
3da50d42dc | Adam Borowski | 2013-08-29 22:41:30 +0200

Make util/descript-sort replace the input file.
It's tempting to replace these three pages with join '%%%%\n', sort split 
'%%%%\n'

--------------------------------------------------------------------------------
ea7bf1d5d3 | Adam Borowski | 2013-08-29 22:41:30 +0200

Make SoH[Coc] cold breath consistent with white dracs wrt knockback.
They use the same spell but due to different beam names (an artifact of the
way they're assigned, I guess) one had knockback, one didn't.

Also, get rid of a <censored> use of beam name in one case.  Let's purge
them all!

--------------------------------------------------------------------------------
a27dace905 | Adam Borowski | 2013-08-29 22:41:30 +0200

Reorder renamed spell descs.
Keeping the file sorted makes some scripts easier, and unlike monsters.txt
there is no reason against it -- and it was almost sorted already (save for
Bolt of Iron -> Iron Shot and other renames).

--------------------------------------------------------------------------------
d74310810f | Naruni | 2013-08-29 08:15:26 -0400

Add clua function spells.fail
Returns fail rate as a number.

--------------------------------------------------------------------------------
b53826c5c3 | Neil Moore | 2013-08-29 08:12:02 -0400

Don't let IOOD circle submerged creatures (#7520).

--------------------------------------------------------------------------------
843eb5efb9 | BlackSheep | 2013-08-29 01:12:43 -0400

Make eating, drinking from fountains and donating at an altar interrupt recite

--------------------------------------------------------------------------------
bbf8bdff44 | Neil Moore | 2013-08-28 21:09:42 -0400

Fix misalignment with show_inventory_weights in ctrl-x.
The alignment of inventory weights adjusted for the width of the colour
tags around the item glyph, but incorrectly used the item's natural
colour where the tags themselves used the item_glyph override if
present.  Furthermore, even without the override, we neglected to adjust
for the colour tags when truncating the item name to fit.

--------------------------------------------------------------------------------
95eee32b6d | Neil Moore | 2013-08-28 20:30:50 -0400

Improve death message from Awaken Forest (#7519)
This does change the kaux slightly; old games might appear funny
in the verbose scores list.

--------------------------------------------------------------------------------
bb2017b97b | Neil Moore | 2013-08-28 18:37:22 -0400

Enable ?/S menu colours in console (oops)
This reverts commit b70df63a4c98f05b7750d01c47e82eb0ee31c8df.

--------------------------------------------------------------------------------
87ccdbe446 | Neil Moore | 2013-08-28 18:26:26 -0400

Improve wording.

--------------------------------------------------------------------------------
0e1e598127 | Adam Borowski | 2013-08-29 00:10:59 +0200

Fix a crash if the player constricts anyone.
Oops.  I still need to find out what causes disappearing constrictors, though.

--------------------------------------------------------------------------------
b70df63a4c | Adam Borowski | 2013-08-28 23:54:55 +0200

Hush a warning.

--------------------------------------------------------------------------------
d272530a87 | Adam Borowski | 2013-08-28 23:42:47 +0200

Extend descs of sceptres of Dispater and Asmodeus.
It's really unobvious which one is which.

--------------------------------------------------------------------------------
1e224d6e42 | Neil Moore | 2013-08-28 17:22:56 -0400

Fix whitespace.

--------------------------------------------------------------------------------
80acbcddc9 | pubby | 2013-08-28 17:21:06 -0400

Tweak formicid aptitudes.
Lessened armour and shields by one as their defences were too high.
Set tloc to -1 because it makes sense flavor-wise.

--------------------------------------------------------------------------------
102a08748a | pubby | 2013-08-28 17:21:06 -0400

Mention that shafting changes OOD timer.

--------------------------------------------------------------------------------
b722056c4f | pubby | 2013-08-28 17:21:06 -0400

Display message when removing helmets as Formicid.
It isn't obvious that your antennae extend slowly on console.

--------------------------------------------------------------------------------
5f151d0350 | pubby | 2013-08-28 17:21:06 -0400

Remove the delay of formicids removing helmet.
The delay remains for wearing helmets, but it was redundant to have it
also happen when removing.

--------------------------------------------------------------------------------
7b4c43a736 | pubby | 2013-08-28 17:21:06 -0400

Add some placeholder formicid tiles.
Since all 3 formicid monsters appear together they needed tiles to
separate them.
These are absolutely terrible graphics, but should suffice for testing purposes.

--------------------------------------------------------------------------------
588dc4c0cf | pubby | 2013-08-28 17:21:06 -0400

Add a formicid monster vault.
The vault's weight is set very high for purposes of testing.

The depth may be wrong for the difficulty.

--------------------------------------------------------------------------------
f54b9d3bef | pubby | 2013-08-28 17:21:06 -0400

Give SPELL_DIG to orc sorcerers.
It was brought up that formicid's infinite digging was problematic on
orc:4, as you could easily break los with a bent tunnel.
By giving orc sorcerers the dig spell, it makes formicid digging less
effective.

Obviously sorcerers didn't need this spell before, and if this addition
negatively affects the game then it should be removed later.

--------------------------------------------------------------------------------
cf7f88e15e | pubby | 2013-08-28 17:21:06 -0400

Imporve formicid ability descriptions.
Digging needed a mention of the noise.

Shafting needed mention of the turn delay and landing noise.

--------------------------------------------------------------------------------
a43c2ad78f | pubby | 2013-08-28 17:21:06 -0400

Mention that Formicids can wield 2h with shield.
It wasn't obvious without reading the manual.
The new message isn't perfect, but should prompt players to look into
the 2h + shield deal better.

--------------------------------------------------------------------------------
acff6051fd | pubby | 2013-08-28 17:21:06 -0400

Mention that shafting takes turns when being used.
It wasn't obvious enough, and the message had room in the prompt.

--------------------------------------------------------------------------------
1fedd61ece | pubby | 2013-08-28 17:21:05 -0400

Lessen the noise of self-shaft.

--------------------------------------------------------------------------------
0f4a723449 | pubby | 2013-08-28 17:21:05 -0400

Increase digging loudness.

--------------------------------------------------------------------------------
87f3891fcf | Neil Moore | 2013-08-28 12:09:12 -0400

Update sunray description.

--------------------------------------------------------------------------------
803ca199b9 | Neil Moore | 2013-08-28 12:07:24 -0400

Don't include enchantment/charge in ?/S rod names.

--------------------------------------------------------------------------------
962e9e2971 | Neil Moore | 2013-08-28 12:07:23 -0400

Slightly colour-code spells in ?/S
White for book spells, lightgrey for non-book rod spells, and darkgrey
for monster-only spells. This bikeshed probably needs painting.

--------------------------------------------------------------------------------
7239bd2f8c | Adam Borowski | 2013-08-28 18:05:13 +0200

Let dbg_scan look for missing constrictors.

--------------------------------------------------------------------------------
898b426e3f | Adam Borowski | 2013-08-28 18:05:13 +0200

Purge removed ZotDef teleport traps.

--------------------------------------------------------------------------------
178aa9f341 | Adam Borowski | 2013-08-28 18:05:13 +0200

Use same caps in abl-show as for descs, axe an obsolete description.

--------------------------------------------------------------------------------
f95f3702a4 | Adam Borowski | 2013-08-28 18:05:13 +0200

Let db_lint check abilities.

--------------------------------------------------------------------------------
b1be29d7e2 | Adam Borowski | 2013-08-28 18:05:13 +0200

Make shadows get hurt extra by Sunray.
Perhaps a gimmick, but makes sense theme-wise.  And the new lantern is not
as bad as before so it's plausible someone will play with it in the Forest.

--------------------------------------------------------------------------------
c3007db5a1 | Neil Moore | 2013-08-28 11:45:42 -0400

Don't claim monster-only spells are found in "the following rod:"

--------------------------------------------------------------------------------
fb593baf31 | Neil Moore | 2013-08-28 10:16:42 -0400

Monster spell description improvements.
Mostly stylistic changes, with a few content tweaks to Porkalator.
In particular, don't refer to pigs as "unclean", since they are neither
CE_CONTAM nor hated by Zin.

--------------------------------------------------------------------------------
3e1dcb8e35 | Neil Moore | 2013-08-28 09:17:29 -0400

Fix alignment of stash search header, cut two spaces.
It should now fit into 80 and even 79 columns with up to 999 items.

--------------------------------------------------------------------------------
14ff9bd6f7 | Neil Moore | 2013-08-28 09:05:21 -0400

Fix whitespace.

--------------------------------------------------------------------------------
7a3ef1bae7 | BlackSheep | 2013-08-28 09:05:06 -0400

Restore match count to search results and move toggle status into help text

--------------------------------------------------------------------------------
8398dde4d4 | BlackSheep | 2013-08-28 09:05:02 -0400

Variable width menu title for stash search results

--------------------------------------------------------------------------------
2b775c0f2f | BlackSheep | 2013-08-28 09:04:58 -0400

Add toggle to filter useless items from search results

--------------------------------------------------------------------------------
da20c9c950 | Neil Moore | 2013-08-28 08:56:45 -0400

Mention "viable" in the options guide.
It was already supported but undocumented for species and jobs.
Mention that, and also the caveats.

--------------------------------------------------------------------------------
82dade2526 | BlackSheep | 2013-08-28 08:41:40 -0400

Store and read random viable weapon choice in default prefs

--------------------------------------------------------------------------------
16f307e479 | Naruni | 2013-08-28 08:31:57 -0400

New clua functions spells.range and spells.mana_cost

--------------------------------------------------------------------------------
b62c5ab809 | Neil Moore | 2013-08-27 23:44:21 -0400

Remove draining on resurrection (karphead)

--------------------------------------------------------------------------------
8d7212f5ff | Adam Borowski | 2013-08-27 23:28:18 +0200

Forbid druids from calling shapeshifters.

--------------------------------------------------------------------------------
ee10defc91 | Adam Borowski | 2013-08-27 23:13:43 +0200

Reformat a script and make it work.
Should we keep desc entries sorted?  Seems tempting.

--------------------------------------------------------------------------------
899a923979 | Adam Borowski | 2013-08-27 22:49:19 +0200

Properly suffix "Evoke Blink".
Also, dedup it to an identical copy.

--------------------------------------------------------------------------------
1aa606312f | Adam Borowski | 2013-08-27 22:28:51 +0200

Allow the bot to disable checkpoint saves on newarea shifts.
Restarting from such a save would reset the random seed, while the first run
had a random generator hold a different state.

This doesn't handle real level transition (ie, the initial banishment and
being thrown deeper into the Abyss).  That's doable if we would inhibit the
commit somehow, but for now, I don't care much about those 5000 turns.

--------------------------------------------------------------------------------
75ea027c76 | Adam Borowski | 2013-08-27 22:20:00 +0200

Save the Abyss bot every 1000 turns.  Use a per-game --seed.
Because, you know, being able to reproduce crashes without having to run a
random bot for days, might be of some use.

--------------------------------------------------------------------------------
bb6b2d10dd | Adam Borowski | 2013-08-27 22:20:00 +0200

Don't fsync in debug builds.
All it protects against is save corruption during power loss.

--------------------------------------------------------------------------------
a9b17d1108 | Adam Borowski | 2013-08-27 22:20:00 +0200

Give the abyss bot a ring of sustain ability.
After stat death has been removed, it stays all the time with negative stats,
even with living races.  There's just that much stat drain in the newabyss,
especially int.

--------------------------------------------------------------------------------
7977622287 | Adam Borowski | 2013-08-27 22:20:00 +0200

Turn transform(force) into transform(involuntary).
There's no use for force, and there was confusion between these two.

--------------------------------------------------------------------------------
ebad98cc83 | Adam Borowski | 2013-08-27 22:20:00 +0200

Rename death drake spell: Miasma -> Miasma Breath.
Consistency; also the name was confusing wrt how the miasma is delivered.

--------------------------------------------------------------------------------
3ac9ee6c1f | Adam Borowski | 2013-08-27 22:20:00 +0200

Descs for a few enchanter type spells.

--------------------------------------------------------------------------------
ce6306ee7b | Adam Borowski | 2013-08-27 22:20:00 +0200

Desc druidic spells.

--------------------------------------------------------------------------------
96e254584b | Adam Borowski | 2013-08-27 22:20:00 +0200

Restore descs for a few removed spells.

--------------------------------------------------------------------------------
1b2b206ea5 | Adam Borowski | 2013-08-27 22:20:00 +0200

Rename Mirror Damage to Injury Mirror, to match the player ability.

--------------------------------------------------------------------------------
09800165a2 | Adam Borowski | 2013-08-27 22:19:59 +0200

Extend the desc for Hellfire.

--------------------------------------------------------------------------------
16e784a6a8 | Adam Borowski | 2013-08-27 22:19:59 +0200

Link monster spells to player abilities where they match.

--------------------------------------------------------------------------------
b9032daffd | Adam Borowski | 2013-08-27 22:19:59 +0200

Store ability descs with an " ability" suffix.
This was already done as a hack for Blink and Animate Dead.

--------------------------------------------------------------------------------
608c23fd62 | Adam Borowski | 2013-08-27 22:19:58 +0200

Fix a misalignment on Djinn a ? <letter> screen.

--------------------------------------------------------------------------------
b94ead36cb | Adam Borowski | 2013-08-27 22:19:58 +0200

Check the descs of spells in db_lint.
This includes monster spells!

--------------------------------------------------------------------------------
dd8d853530 | Adam Borowski | 2013-08-27 22:19:58 +0200

Don't mark scrolls of immolation as an "emergency item" for Djinn.

--------------------------------------------------------------------------------
77b4e8e3be | Adam Borowski | 2013-08-27 22:19:58 +0200

Brace/formatting fixes.

--------------------------------------------------------------------------------
cc0de464e8 | Adam Borowski | 2013-08-27 22:19:58 +0200

Djinn: give only max(hp_heal, mp_heal) rather than sum under TSO.

--------------------------------------------------------------------------------
b6a45de330 | Adam Borowski | 2013-08-27 22:19:58 +0200

Unify hp-on-kill with mp-on-kill.

--------------------------------------------------------------------------------
c47fba5b47 | Adam Borowski | 2013-08-27 22:19:58 +0200

Don't give Djinn any positive weapon aptitudes.
Being bad as some weapon types doesn't mean you're good at others.

--------------------------------------------------------------------------------
2210f32492 | Neil Moore | 2013-08-27 13:52:24 -0400

Don't refer to sickness from food (ogaz).

--------------------------------------------------------------------------------
fc4dfcf5f2 | elliptic | 2013-08-27 01:04:29 -0400

Speed up monster recovery from antimagic.
Previously the duration increase from a single antimagic attack was
proportional to the damage dealt, and the effects of antimagic depended on
both the current duration and the HD of the monster. This was problematic
because it meant that antimagic tended to last extremely long against late
enemies; you would stack 500 turns of antimagic on Cerebov in a typical fight
using just that weapon. More effectively, you could stack 100 turns in a few
hits and then switch to a holy wrath or speed weapon for more damage.

Now the duration increase is proportional to the damage dealt divided by the
HD of the monster, and the effects just depend on the duration. Effectively
this just means that monsters recover from antimagic HD/4 times faster.

--------------------------------------------------------------------------------
3f1271563f | Brendan Hickey | 2013-08-26 22:00:49 -0700

Add mutate 'Fumes'
Emit smoke at random intervals.
Two-tiers, increased frequency at the higher tier.

--------------------------------------------------------------------------------
473017b697 | Neil Moore | 2013-08-27 00:04:33 -0400

Allow tweaking the last artefact property in wizmode.
(Currently +Fog)

We are at 36, just over the number of letters plus nonzero digits.
Allow zero, and also allow keypresses for ASCII characters between the
numbers and uppercase letters (:;<=>?@).  This will allow seven
more properties; after that, or perhaps before, we should move to
uppercase/lowercase.  If we do exceed the limit, use '-' to indicate
that the later properties aren't selectable (instead of re-using
letters).

--------------------------------------------------------------------------------
e0b6379050 | Neil Moore | 2013-08-26 23:36:16 -0400

Don't break wizmode artefact editing on the next major save increment.
Also, use "+Fog" instead of "Fog".

--------------------------------------------------------------------------------
fdac0543c5 | elliptic | 2013-08-26 21:43:25 -0400

Remove a magic number for pain brand.
The chance of pain brand "proc"ing is now skill/(skill+1) instead of
(skill+1)/8. This is a slight nerf for skill >= 7 and means that there is no
longer a breakpoint at skill 7.

--------------------------------------------------------------------------------
063c240a11 | elliptic | 2013-08-26 21:02:50 -0400

Make vampiric weapons only trigger on 3/5 of attacks (instead of 4/5).
It will still be very powerful at 3/5.

--------------------------------------------------------------------------------
44efbc97f7 | elliptic | 2013-08-26 20:11:01 -0400

Increase enchantment on weapon randarts.
It was generally agreed that weapon randarts are a bit weaker than non-weapon
randarts on average. This commit buffs them by increasing their accuracy and
damage enchantment by about 3 each on average (while maintaining the same
[-6,+12] range of possibilities).

--------------------------------------------------------------------------------
04e3a93a1f | Neil Moore | 2013-08-26 16:18:52 -0400

Move spells to the end of the monster description (dpeg)
And pull the logic out into a separate function for readability.

--------------------------------------------------------------------------------
28a6821a50 | Neil Moore | 2013-08-26 16:18:52 -0400

Describe M_FAKE_SPELLS as "special", not "magical" abilities.

--------------------------------------------------------------------------------
2f028f1e30 | DracoOmega | 2013-08-26 16:38:39 -0230

Decrease Lost Soul speed and hp slightly

--------------------------------------------------------------------------------
e8be298d65 | DracoOmega | 2013-08-26 16:38:38 -0230

Make lost souls less attracted to extremely high HD creatures
The considerable gap between ancient lich HD and the HD of any other
high-tier Crypt threat meant that every lost soul would always be attracted
to them and only them, should one be on the level. HD is now capped for
purposes of this effect, which should better spread the lost souls among
other high-end threats on the level, even if an ancient lich is also present.

--------------------------------------------------------------------------------
40650c192c | DracoOmega | 2013-08-26 16:38:37 -0230

Reduce default Inner Flame duration to something more sane
The old duration ranged from 75 to 125 turns, which was rather extreme
(and often harmful and annoying to the caster, since if you fail to kill
the hexed enemy in a short span of time, probably they are in your face
and you would LIKE it to wear off instead of lasting forever.)

It now only lasts 25-35 turns, which is still a decent bit, but less
excessive.

--------------------------------------------------------------------------------
388d670c25 | DracoOmega | 2013-08-26 16:38:36 -0230

Experimentally revamp scrolls of immolation
Scrolls of immolation are around the most purposeless scrolls in the game
at the moment. They're supposedly double-edged, yet don't do enough damage
to virtually ever be useful offensively (even if they didn't hurt the player
at the same time), and are deliberately generated deep enough that it's
incredibly unlikely any player will kill themselves with one (not that it
would be particularly good design if this was untrue). Nearly all the time,
one will read-ID it in a safe place, take some piddling damage, and then
never pick up or read another for the rest of the game. Worse, they're a
hazard to read around allies (either turning Yred servants hostile, or
angering Beogh and all your horde directly), encouraging tedious behavior
of sending all your allies away whenever you read-ID, until you have found
?immolation.

Instead of their old effect, ?immolation now enchants all susceptible monsters
in LoS with inner flame. This does include friendly monsters, but this does
not anger them or your god, meaning that there is no longer any need to
repeatedly send allies away before read-IDing scrolls. I hope that inner flame
will also convey the supposed double-edged intent of the scroll better than the
original, by granting a potentially powerful and useful effect that also has a
non-negligible risk of getting the player caught up and injured in it. For some
characters, I can even see these being rather good (rarity and such can
be adjusted if they are too much so, of course).

--------------------------------------------------------------------------------
87b9d2dc97 | DracoOmega | 2013-08-26 16:38:35 -0230

Reduce the recharge rate bonus from high evocations for elemental evokers
With high evocations skill in lategame, it was common for an elemental
evoker to recharge only a battle or so after being used, which I feel
is more quickly than intended.

I still feel like the recharge formula is wonky and could use work, but
it seems to be overall in a better place since the general xp changes.

--------------------------------------------------------------------------------
c25e8eee38 | DracoOmega | 2013-08-26 16:38:34 -0230

Reduce elemental evoker power (especially at low evocations)
While I'm overall happy with the new evokers, I feel like they're a bit
too effective with next to no investment in evocations (and thus have
become something that nearly every character wants to have along with
them). This commit is aimed at making them a little worse with low
evocations without reducing their power by much at higher evocations.

The thresholds to get a second and third elemental have been raised (and
by extension, a second and third flame trail from the lamp of fire). The
power of the phial's primal wave have been reduced a bit at lower evocations,
and the HD scaling of water and especially fire elementals have been reduced,
as the latter in particular benefited much more from it than the other
elementals due to its AF_PURE_FIRE melee. However, impact damage of the lamp
has been slightly increased, and minimal cloud duration raised slightly.
Aside from the elemental thresholds, the fan of gales is untouched.

--------------------------------------------------------------------------------
7cf6d9d9c7 | DracoOmega | 2013-08-26 16:38:33 -0230

Revamp Stone of Tremors
Of the revised elemental evokers, the stone was definitely the least-used
and least useful; it required both the player and their targets to be
adjacent to the same wall and didn't work at all with stone or permarock,
further limiting the places it could operate. And for all that, its damage
output was often less than the lamp of fire and provided little further
utility.

Instead of its old effect, the stone now causes rubble to fall from all
rock, stone, or permarock walls within the player's LoS, damaging anything
adjacent to these, regardless of where the player is standing (it will not
hit your own location, however). Additionally, the chance of shafting
monsters has been increased somewhat and does not require them to be adjacent
to a wall, either.

--------------------------------------------------------------------------------
b8a6fbb928 | Brendan Hickey | 2013-08-25 22:20:14 -0700

Formatting fixes

--------------------------------------------------------------------------------
df70192d51 | Brendan Hickey | 2013-08-25 22:10:01 -0700

Make stat mutations less boring.
Replace 14 levels of stat mutations with 2.
Each tier conveys +/-2.
If a player happened to have +14 strength, for example,
convert the excess strength to base strength.
Be conservative in converting bad stat mutations to avoid
splatting players.

--------------------------------------------------------------------------------
d8154f07b2 | Neil Moore | 2013-08-25 22:41:45 -0400

Don't crash on p{ghost,illusion,anlord} xv (#7514)

--------------------------------------------------------------------------------
d1bfc82c70 | Neil Moore | 2013-08-25 22:41:45 -0400

Remove an obsolete spell description.

--------------------------------------------------------------------------------
3bcad43c5d | Brendan Hickey | 2013-08-25 19:15:54 -0700

Set boring stat mutation probabilities to zero.
MUT_STRONG_STIFF and MUT_FLEXIBLE_WEAK probabilities are hereby
set to zero in preparation for removal.

--------------------------------------------------------------------------------
0b72a8e84c | Adam Borowski | 2013-08-25 22:34:27 +0200

Store spectral weapon's owner in monster.summoner.

--------------------------------------------------------------------------------
0d63de4f1a | Adam Borowski | 2013-08-25 22:34:27 +0200

Store IOOD's caster in monster.summoner.

--------------------------------------------------------------------------------
2c4599aed9 | Adam Borowski | 2013-08-25 22:34:27 +0200

Store battlesphere's owner in monster.summoner.

--------------------------------------------------------------------------------
19a70210ad | Adam Borowski | 2013-08-25 22:34:26 +0200

Store the summoner in struct monster.
Nothing queries it yet -- the blame chain uses a string resolved at monster 
creation time.

--------------------------------------------------------------------------------
04436d7238 | pubby | 2013-08-25 22:34:26 +0200

Prevent wanderers from wielding 2h + shield.
Added a few checks to newgame_make_item to prevent this. I only did the
minimum required to prevent this bug - it could reappear if exotic
wanderer items are added.

--------------------------------------------------------------------------------
da3a3b1251 | Neil Moore | 2013-08-25 04:28:45 -0400

Don't drain monsters to 0 HD.
Monsters with 0 HD crash when they try casting spells.

Also fix up 0 HD monster to 1 HD on game load to correct existing saves.

--------------------------------------------------------------------------------
9c95cb4128 | Neil Moore | 2013-08-25 04:28:44 -0400

Don't crash when doing xv on a siren.
A few monsters have M_SPELLCASTER and no spell lists.  Handle that
case rather than trying to access the spells in the MST_NO_SPELLS
"book".

--------------------------------------------------------------------------------
1349002da3 | Neil Moore | 2013-08-25 04:28:37 -0400

Don't crash when foeless monsters consider casting hexes (#7512)
Also, don't make them believe that unsleepable foes are immune to all
hexes.

--------------------------------------------------------------------------------
2211e5ff2f | pubby | 2013-08-25 00:12:25 -0400

Create Formicid species and monsters.
Tavern post:
https://crawl.develz.org/tavern/viewtopic.php?f=8&t=8298

Wierdness & mutations:
- poison weakness
- retractable antennae (can wear headgear and ignore mutation)
- chitin skin (+3 AC)
- most weapons 1-handed, big weapons 2-handed
- permanent stasis
- ability to shaft self
- ability to dig
- Starts with 2 curing pots

3 monster versions of formicids were added:
formicid, a weak fighter
formicid drone, a stronger fighter
formicid venom mage, a magician with olgreb's and mass cure poison

[ Pushing to a branch for experimental playtesting on CSZO.
  Also optimised the new tiles. -nfm ]

--------------------------------------------------------------------------------
83f2281937 | pubby | 2013-08-25 01:15:38 +0200

Fix do_shaft: allow it to work anywhere.
A bug in down_stairs was preventing players from getting shafted when
not standing over a shaft trap (such as from chaos brand). This function had an
option for players to get shafted this way, but it wasn't being properly
checked in the function body.

--------------------------------------------------------------------------------
abbf0c00e7 | Jason Van | 2013-08-24 20:09:07 -0230

encompass tweaks
lower weights of psychologically-damaging monsters, introduce new ones,
slightly weigh down extreme dangers and spoilery gimmicks.

--------------------------------------------------------------------------------
8da780b887 | DracoOmega | 2013-08-24 20:01:18 -0230

Fix spriggan enchanters and assassins never getting high-quality weapons
This has apparently been broken for some time now.

--------------------------------------------------------------------------------
a487755518 | DracoOmega | 2013-08-24 20:01:16 -0230

Give spriggan enchanters increased chance to cast a spell while holding position
Normal ranged attack behavior meant that assassins already would use their
stationary turns to fire at you, but enchanters would often spend many of
them just standing around. Now they should be more likely to use those turns
to try and set up a stab attempt.

The code looks a little ugly to me - it would be nice (for more reasons than
just this) if there was a generalized means to adjust casting frequency on a
per-monster or per-spell basis.

--------------------------------------------------------------------------------
71cfae93fa | DracoOmega | 2013-08-24 20:01:14 -0230

Give players a 1-turn immunity to sleep after being put to sleep
This guarantees that a player will get one turn to act between sleep
stabs, avoiding the situation where an enchanter could stab and resleep
a player several times in a row, due to their high speed.

--------------------------------------------------------------------------------
d477a2b758 | DracoOmega | 2013-08-24 20:01:13 -0230

Replace EH in the Spriggan Enchanter spellset with Sleep
While EH has more parity with the player character these were originally
patterened after, being useless against any player who possesses rC makes
them overly easy to neutralize (many players would be wearing some by this
point in the game without even a conscious effort). Sleep will allow them
to remain functional against a wider range of players.

--------------------------------------------------------------------------------
74b6ab59c7 | DracoOmega | 2013-08-24 20:01:11 -0230

Mark sleep and hibernation as useless against targets inherantly immune to sleep

--------------------------------------------------------------------------------
fe596732d2 | DracoOmega | 2013-08-24 20:01:10 -0230

Increase M_STABBER stab effectiveness
Attacks made by stabbers against sleeping targets now always hit, and are
guaranteed to have a base damage of at least 50% of what the monster is
capable of, rather than still sometimes rolling trivial damage.

Given the relative difficulty of these monsters getting frequent stabs, I
felt their impact was still too small, yet shy away from increasing their
top-end damage too much either. This should hopefully make them a little
more threatening while the previous commit makes them less annoying.

--------------------------------------------------------------------------------
3996bf4810 | DracoOmega | 2013-08-24 20:01:08 -0230

Adjust M_STABBER movement behavior
One of the greatest issues with the range-maintaining behavior of
spriggan assassins and enchanters is that they are the most likely to
play keep-away against the players they are the most harmless to. This
is especially true of enchanters, since a player that falls easily prey
to hibernation will have the enchanter quickly get into melee where it
can be dealt with, while those characters outright immune to it (and
there are many) will have the enchanter continuously refuse to stop
running away until cornered, even though their main offense cannot
theoretically affect you. This was somewhat less problematic for
assassins, since they would simply run out of ammo in a few turns, but
these suffered an inverse problem: they would only ever get a single
stab attempt, then remain locked in melee and refuse to use any remaining
needles they might possess). Moreover, the fact that enchanters would
close range if you could not see them caused other odd behavior; sometimes
it was advantageous to NOT be able to see invisible creatures, so that
they would stop running away, even though being invisible did not grant
them any special stabbing bonuses against you).

Assassins and enchanters are now able to appraise whether you are inherently
immune to their abilities or not, and if you are, will not bother to maintain
range at any point. (This only applies to immunity granted through obvious
sources, so undead vs. sleep, but not clairity vs. confusion, for example).

Moreover, they will now prefer holding their position rather than actively
retreating from their target, if they are already within several spaces of it.

Finally, assassins will switch back to their blowguns in melee range if they
still possess ammo that can incapacitate the player, alternating between
incapacitation and stab attempts.

--------------------------------------------------------------------------------
64044f6b30 | Adam Borowski | 2013-08-25 00:23:20 +0200

Nerf boots/bardings of running for monsters.

--------------------------------------------------------------------------------
69e1afcd03 | Adam Borowski | 2013-08-25 00:21:58 +0200

Fix ponderousness not affecting monsters.

--------------------------------------------------------------------------------
886f42b68f | Adam Borowski | 2013-08-24 23:17:42 +0200

Brace and parenthese fixes.

--------------------------------------------------------------------------------
9603c99af4 | Adam Borowski | 2013-08-24 23:09:04 +0200

Cancel an american speling.
Looks like, unlike "target[t]ing" where a single t is used by many brits and
even some aussies, "cancel[l]ing" has double l even for a good deal of
americans.

--------------------------------------------------------------------------------
f9e8197bc4 | Adam Borowski | 2013-08-24 22:48:41 +0200

A script to detect unused tiledefs: mon tiles only for now.

--------------------------------------------------------------------------------
608ec734a1 | Adam Borowski | 2013-08-24 22:48:40 +0200

Purge the tile for rods of smiting.

--------------------------------------------------------------------------------
a02a5217f1 | Neil Moore | 2013-08-24 14:57:07 -0400

Don't crash on ?/morc wizard
We were trying to get a monster from the monster_info, but that doesn't
work when there was no monster (or in general when the monster_info
doesn't have a location).  Change mons_spellbook_list to take the
monster type instead.

Thanks to ChrisOelmueller for pointing out the bug.

--------------------------------------------------------------------------------
125a928f92 | Neil Moore | 2013-08-24 14:43:23 -0400

Restore the new deep elf mage book list (DracoOmega)
And remove soldiers again.

--------------------------------------------------------------------------------
d321ce13d3 | Neil Moore | 2013-08-24 14:30:14 -0400

Handle non-actual "spell" lists better.
Refer to them as "divine" abilities, and fix a potential missing message
if we ever have a non-actual-caster monster with multiple spellbooks.

Also improve formatting and simplify in a few places.

--------------------------------------------------------------------------------
d21fcde7df | Neil Moore | 2013-08-24 13:53:45 -0400

Rename a no-longer-static function.

--------------------------------------------------------------------------------
2774ec9060 | cjo | 2013-08-24 13:47:01 -0400

Display monster spells and magical abilities with x-v
Decrease the need for spoilers by showing monster spells and magical
abilities when examining a monster with the command x-v. If monsters
have multiple possible spellbooks, all of them are listed.

--------------------------------------------------------------------------------
27b40443b5 | Neil Moore | 2013-08-24 05:22:49 -0400

Handle pre-filled get_lines in webtiles (#7509)

--------------------------------------------------------------------------------
c5a4dfa07f | Neil Moore | 2013-08-24 04:04:54 -0400

Avoid menus by re-editing annotations and inscriptions.
Now we pre-fill the input line with the old value.  This should satisfy
many of the objections to both the menu (it requires stopping to read
before deciding whether to press r or keep typing) and the old annotate
always-replace behaviour (it makes it hard to append). Pre-filling also
makes it a lot easier to fix a typo than with the other approaches.

If you want to replace, it's as simple as ctrl-u (or holding down
backspace if you aren't familiar with Unix). If you want to append, just
keep typing (and add the comma yourself).

This reverts commit bcad30dabc11467b13ad0a8caa445acccbd6b412.
This reverts commit f297046efa082d87c167dad729b4cb283e18c812.

--------------------------------------------------------------------------------
f8c068ad83 | Neil Moore | 2013-08-24 03:56:01 -0400

Allow specifying pre-filled text for {msgwin,cancelable}_get_line.
Also remove an unused parameter.

--------------------------------------------------------------------------------
d1430c45d1 | Neil Moore | 2013-08-24 02:11:20 -0400

Fix alignment when changing action in shopping list (ChrisOelmueller)

--------------------------------------------------------------------------------
bcad30dabc | Neil Moore | 2013-08-24 02:04:30 -0400

Improve a type.

--------------------------------------------------------------------------------
f297046efa | Chris Oelmueller | 2013-08-24 01:51:41 -0400

Allow (add, replace, clear) for level annotations
Fixes #884 [Level annotations could use inscription functionality]

Legacy code to clear annotations by empty replace still kept, including
the confirmation. Note that using `c` directly has no such confirmation.

--------------------------------------------------------------------------------
ee33656166 | Neil Moore | 2013-08-24 01:08:14 -0400

Don't prevent clouds with player AC.
Introduced by 0.13-a0-2694-ge97dbc3, but the real bug seems to be that
we were using affects_items to determine whether to place clouds.  Since
the only places that set affects_items to false (prior to that commit)
were immolation and electricity conduction, neither of which places
clouds, remove that logic.

--------------------------------------------------------------------------------
5436301d31 | Neil Moore | 2013-08-24 01:00:58 -0400

Try harder to avoid a wind blast crash (#7445)
We reuse the same beam, but that is not safe to do if it was ever
aimed_at_feet (that is, source == target).  Even if we reset that
particular flag, several other flags like auto_hit are set in that
situation and never reset.  Instead, avoid the one case that still
appears to allow firing a beam at the caster.

Also, change an instance of you.pos() that looks like it should have
been agent->pos() .

--------------------------------------------------------------------------------
c6a16679a6 | Neil Moore | 2013-08-24 00:12:42 -0400

Improve formatting.

--------------------------------------------------------------------------------
5b28ffd06f | Chris Oelmueller | 2013-08-23 19:17:16 -0400

Color overhaul for Ctrl-O, section Shops
Supposed to reduce visual noise and achieve a more consistent experience.

Changes in a nutshell:
- Level names now lightgrey (was: brown)
- Plain shop items now white (was: lightgrey)
- Losing one colon:   D:8 (   instead of the old   D:8: (
- Shop padding increased by one (3 spaces instead of 2)

The most important part probably was getting rid of the duplicate colons
everywhere, which together with the brown-grey mixed lines did not read
very well at all. Instead, groups are now visualized by larger padding.

--------------------------------------------------------------------------------
2ff8484498 | Chris Oelmueller | 2013-08-23 19:17:16 -0400

Color overhaul for Ctrl-O
Supposed to reduce visual noise and achieve a more consistent experience.
Changes in a nutshell (in parens: old layout):
- Section headings are lightblue (green).
- Portal branch entries are all yellow (many different weird colors)
- Level names in Annotations section are yellow (yellow/lightgrey mix)
- Player-written annotations are white (magenta)

Also fixes a missed colon after the last section heading.

The "Portals" branch colors did not make much sense: the different portals
are newline-separated anyways. Yellow was the obvious replacement, as it
has been established as focus color already (in "Branches" resp. "Shops").

--------------------------------------------------------------------------------
869a57a6b2 | Chris Oelmueller | 2013-08-23 19:17:16 -0400

Fix god name alignment in Ctrl-O
Should now match the comment again, i.e. padding of five spaces.

--------------------------------------------------------------------------------
7c82b3631c | Raphael Langella | 2013-08-24 00:50:15 +0200

Don't activate Beogh's conversion before the priest makes his offer.
It was possible to convert to a wandering priest and get the conversion message
after joining Beogh.

--------------------------------------------------------------------------------
9cbdda83df | Chris Oelmueller | 2013-08-22 19:52:36 -0400

Spell overview: Highlight toggle input keys
Should be more consistent with the rest of the game now.

--------------------------------------------------------------------------------
403a032a93 | Chris Oelmueller | 2013-08-22 19:52:36 -0400

Fix code layout

--------------------------------------------------------------------------------
8ef8ee4989 | Chris Oelmueller | 2013-08-22 19:52:36 -0400

Fix a comment
This sort of curse was removed in
46225c2f2e48ff7e4c4e9b219ee4198722fa406c.

--------------------------------------------------------------------------------
673307ef26 | Chris Oelmueller | 2013-08-22 19:52:36 -0400

Fix some typos in comments and docs
Also clarify one comment about weapon egos.

--------------------------------------------------------------------------------
5dd9ceac74 | Chris Oelmueller | 2013-08-22 19:52:36 -0400

Fix some book names in comments
The "special" apparently was missed in
ba7d4b7e00b62146a6ee2a2addbb6033ae714127.

--------------------------------------------------------------------------------
0776aa4944 | Neil Moore | 2013-08-22 19:52:36 -0400

Improve a comment (ChrisOelmueller)

--------------------------------------------------------------------------------
c23b3016c0 | Samuel Bronson | 2013-08-22 19:04:53 -0400

Falchion no longer OP; don't ban as a starting weapon for anyone.

--------------------------------------------------------------------------------
ac96337c86 | Neil Moore | 2013-08-22 18:56:22 -0400

A dingo ate my newline!

--------------------------------------------------------------------------------
d893c7e210 | Neil Moore | 2013-08-22 18:53:11 -0400

Don't duplicate stolen blood (#4414).
If a monster with AF_STEAL took a partial stack of blood potions, the
coagulation timers would no longer match the stack quantities; at the
next coagulation check, the user would get two error messages and both
stacks would be reset to full.

Don't do that.

--------------------------------------------------------------------------------
f821f08e65 | DracoOmega | 2013-08-22 17:20:27 -0230

Slightly boost xp drain per hit, make it take more xp gain to overcome
Even without rN+, it was very common to cure yourself of draining in
the very same battle that caused you to become drained in the first
place. Originally I had hoped the effect would be spread over a somewhat
longer period of time, without necessarily being extremely acute during
all that time. This should at least make it last a little longer (but the
accellerated recovery from heavy drain should keep it from stacking too
much higher, I think)

--------------------------------------------------------------------------------
829c9b84dd | DracoOmega | 2013-08-22 16:41:35 -0230

Don't let young spriggan druids call more than one beast with Druid's Call
In Lair in particular, most everything will fall beneath the HD threshold
for a double summon and even a single one of them could be very strong on
its own here.

--------------------------------------------------------------------------------
ef09625c4e | DracoOmega | 2013-08-22 16:40:29 -0230

Replace a spriggan druid in Lair with a young druid
After the other recent druid changes, this is probably even more
dangerous than previously.

--------------------------------------------------------------------------------
5bfe583a0c | DracoOmega | 2013-08-22 15:48:02 -0230

Increase dryad HD (but not hp) for Awaken Forest parity with druids
Also nudge up snaplasher vine melee damage slightly.

--------------------------------------------------------------------------------
a750908c55 | DracoOmega | 2013-08-22 15:48:01 -0230

Properly color some Awaken Forest 'miss' messages darkgrey

--------------------------------------------------------------------------------
6519f1c097 | DracoOmega | 2013-08-22 15:47:59 -0230

Increase Awaken Forest damage
A lot of this spell's bite was taken away when defenses were (logically)
made to properly apply against it, but now that it is a large element of
a later-game branch (and the core of dryad's offense), I feel it's just not
scary enough against the amounts of AC that many characters have by that
point.

This affects Forest creatures much more than the young druids that can
appear in Lair (due to HD scaling), though probably they didn't need any
boosting at all (and Druid's Call has likely already done that). But their
presence in any early zone can be evaluated separately.

--------------------------------------------------------------------------------
b82b49dd51 | DracoOmega | 2013-08-22 15:47:58 -0230

Remove minotaurs from Forest, adjust other monsters weights a little
While it was originally hoped that they would provide some diversity
among low-EV threats in the branch, even with equipment and sometimes
rods, they seem to have been scarcely worth noticing.

The old minotaur weight has been spread around primarily to other
high-tier beasts, several of which are probably at least as dangerous,
and moreover give Druid's Call some greater ammunition to work with.

--------------------------------------------------------------------------------
74236c541d | DracoOmega | 2013-08-22 15:47:57 -0230

Replace Caniforms with Druid's Call
Even after being buffed somewhat, Caniforms summoned only virtually
harmless monsters for the druid's depth, and worse, the druid's speed
meant summoning them in large numbers. Possibly these were originally
intended to provide movement constraints to block the player from
escaping angry trees, but dryads already focus upon this angle.
Instead, let's replace the spell with something thematically similar,
but which hopefully sidesteps the problems the original suffered.

Druid's Call summons wild beasts from elsewhere on the level to
the druid's location and grants them might in the process. Each cast
will summon either 2 lower-HD monsters (HD<10) or a single higher-HD
monster.

The definition of 'beast' here is hoped to be somewhat intuitive to
players (ie: wild animals of various kinds), but admittedly has some
fuzzy lines to it. Currently it is defined as any natural holiness
creature of insect, reptile, or animal intelligence, excluding dragons,
ugly things, ice/sky beasts, spirit wolves, and butterflies. And apises
(which are still bulls, despite being holy). Possibly these criteria
can use further adjustment.

--------------------------------------------------------------------------------
04d794b206 | DracoOmega | 2013-08-22 15:47:56 -0230

Remove minor demon from a deep elf mage spellbook, replace with venom bolt
While the deep elf mage spellbooks were intended as thematic parallels to
player starting books (the wizard book in this case), it's true that this
spell couldn't really hope to accomplish much in Elf. Instead, give them
what is nearly the only standard conjuration that neither deep elf mages
nor conjurers already had. Less symmetry, but perhaps (a little) more
effectiveness.

--------------------------------------------------------------------------------
a851570d49 | DracoOmega | 2013-08-22 15:47:55 -0230

Remove plain spiders from Summon Vermin, reduce average creatures per cast
These were intended as filler creatures to pad out more dangerous summons,
but instead this attempts to just make them summon fewer things with a
slightly higher average danger.

However, I disagree with the repeated assertion that what they summon is
otherwise mostly harmless. Since the changes to Elf, summoners are
essentially tied with conjurers and knights for kills, despite being
appreciably less common than either (and conjurers also recieved a noticable
buff at the same time). This is substancially higher than back when they
summoned demons (in 0.12, knights had nearly 10 times as many kills as
summoners, who were actually more common at that time). And this additionally
ignores deaths indirectly caused by the impairment effects of their summons,
which could easily account for at least a couple more.

--------------------------------------------------------------------------------
ceaa82b55e | DracoOmega | 2013-08-22 15:47:53 -0230

Treant stat tweaks
Increase speed to 8, reduce hp a little, increase chance of containing
wasps slightly, and reduce the chance of a druid ally to original levels.

--------------------------------------------------------------------------------
fa96e05e00 | DracoOmega | 2013-08-22 15:47:52 -0230

Properly show penalized EV in red
This applies to grasping roots, but also already applied to in-progress
petrification.

--------------------------------------------------------------------------------
f41c9ff8e5 | DracoOmega | 2013-08-22 15:47:51 -0230

Give treants a 'grasping roots' ability
With this ability, the treant causes the network of gnarled roots running
beneath the whole of the earth to rise and shift and otherwise impede the
footing of any hostile creatures near it, turning it into a shifting and
unstable undergrowth.

In practical terms, this applies a 5 aut movement speed penalty and halves
the EV of any hostile creature standing on solid ground within sight of the
treant, while the effect is active. Creatures above lava and water (even
shallow) are unaffected. Flying creatures are also unimpeded, but the roots
have a high chance of rising up and pulling them back to the ground (though
this can be evaded).

The aim of this is to provide an alternate mechanism (following the reduction
in ally production) to prevent them being trivially kitable, while themselves
remaining slow, and also to offer a support mechanism to other nearby creatures.

The flavor messages could probably use more variety.

--------------------------------------------------------------------------------
b0eebf247c | DracoOmega | 2013-08-22 15:47:49 -0230

Revise treant bee-keeping
Rather than a larger pool of slowly-replenshing durably-summoned bees
and wasps, a treant now has a fixed 50% chance of spawning with 2-4
wasps inside it. These count as normal monsters for experience purposes,
are not replenished, and will be released as a free action once the treant
is reduced below 50% hp.

Admittedly this makes them somewhat similar to normal band members, but
the presence or absense of the band is concealed until the player has
already commited to the battle (and may well be in melee range of the
'band leader'), making it harder to seperate the two of them.

--------------------------------------------------------------------------------
2ed80a31b3 | Neil Moore | 2013-08-21 18:16:43 -0400

Improve formatting.

--------------------------------------------------------------------------------
ab8f36f9d9 | Chris Oelmueller | 2013-08-21 17:59:58 -0400

Shopping list: Do not prompt for removing manuals
As the comment said, but the logic not really supported, those are
consumables and as such it is very feasible to continue being interested
in them after identifying one of their kind.

Tomes of destruction technically also fit that description, but instead
of prompting for removal they are just automatically removed now when
another tome is encountered. Whyever they ended up on a shopping list at
all will remain a mystery though.

--------------------------------------------------------------------------------
6459ca0701 | Chris Oelmueller | 2013-08-21 18:23:51 +0100

No Jiyva penance for slime kills by confused monsters
Yes, this includes confusion sources that are not "eyeballs" mutation.
I do not see any potential of abuse here though, so an even more verbose
special case is probably not necessary.

Fixes #5112 [confused monsters killing jellies trigger jiyva penance]

--------------------------------------------------------------------------------
257cea3a86 | MarvinPA | 2013-08-21 18:15:31 +0100

Let Naga upgraded poison breath work in all forms
Breathe flames and spit poison already work in all forms, so breathe poison
should also (instead of only working in spider form).

--------------------------------------------------------------------------------
774f22a188 | MarvinPA | 2013-08-21 18:09:30 +0100

Let yellow draconians keep their acidic bite in dragon form (#7499)

--------------------------------------------------------------------------------
68447049c7 | MarvinPA | 2013-08-21 15:19:42 +0100

Fix spell hunger tutorial message, more minor tweaks

--------------------------------------------------------------------------------
444c8b4569 | Chris Oelmueller | 2013-08-21 15:19:41 +0100

Improve gameplay flow of spellcasting tutorial
Redefined training dummies will give enough XP to reliably reach XL3
here now - the level is designed such that the chance of you still being
XL1 when you encountered the potion of experience was rather high. This
instantly broke all subsequent hints assuming Meph was learned - ew.

Split into two dummies to
  (a) not recolour the difficulty indicator to deterring red
  (b) allow hints mode message about skill increase before XL3-spam

The latter still does happen occasionally if default skill training is
not changed by the player (definitely possible for the tutorial).

Also identify the scroll of amnesia as such.

--------------------------------------------------------------------------------
43302fd6ef | Chris Oelmueller | 2013-08-21 09:48:07 -0400

Autopickup otherwise inedible or bad chunks for Simulacrum/Sublimation
This duplicates some of the `wants_any` logic used in food.cc, but it
works for now. Hard checks for either spell exist in more places, too.

Fixes #5006 [Mutagenic chunks not autopickuped with sublimation of blood
memorized]

--------------------------------------------------------------------------------
6ff2382b70 | Adam Borowski | 2013-08-21 15:46:28 +0200

Doc update: the Shields skill doesn't help with magical ones.
(Condensation Shield, Helm card)

It still does help with TSO's invocation, though.

--------------------------------------------------------------------------------
383c101862 | MarvinPA | 2013-08-21 14:26:33 +0100

Remove leftover line for Armour training from skill help screen (alefury)

--------------------------------------------------------------------------------
ace2dc1f0b | MarvinPA | 2013-08-21 02:43:15 +0100

Update skill training help for Traps removal
Also mention that Armour can always be trained.

--------------------------------------------------------------------------------
6dfddf1c4d | MarvinPA | 2013-08-21 01:41:27 +0100

Make scrolls of vorpalise weapon target a weapon without having to wield it
Makes it more easily and obviously cancellable, and allows cancelling the
scroll without spending a turn and losing it (if it was already
identified). Doesn't use the same selection menus as enchant armour,
identify and recharging - since it tends to show up much later it'd almost
always be known anyway (and the point here is to make it harder to
accidentally remove a brand you want).

--------------------------------------------------------------------------------
440019e619 | Zannick | 2013-08-20 22:45:28 +0200

Don't contaminate the arena.
Fixes arena crash caused by c56f7848.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
2060d6ecf6 | Neil Moore | 2013-08-20 13:57:18 -0400

Remove armour_def::light (fmul)

--------------------------------------------------------------------------------
ef417d5da9 | MarvinPA | 2013-08-20 14:11:53 +0100

Adjust some more randbook owner lists
Adds Sojobo to Air, Fannar and Ilsuiw to Ice, removes Frances from
Necromancy.

--------------------------------------------------------------------------------
7cb690dbb7 | MarvinPA | 2013-08-20 14:11:52 +0100

Fix Hex/Charm randbooks never getting unique owners
The database entry was still listed as "Enchantment". I'm not entirely
convinced by the new Charms list, but not many uniques cast Charms in a
notable way.

--------------------------------------------------------------------------------
5d3b754943 | Neil Moore | 2013-08-20 00:13:16 -0400

Disfavour mutagenic corpses for confirm_butcher = never (#7491)
We should probably use the same ranking as we use for offering chunks.

--------------------------------------------------------------------------------
3c279cd41e | Adam Borowski | 2013-08-20 01:27:13 +0200

Remove Pan.
Yes, once again.

--------------------------------------------------------------------------------
89f6774ec0 | Adam Borowski | 2013-08-20 01:27:13 +0200

A script to find tiles not used by any tiledef.

--------------------------------------------------------------------------------
b4c19fcc94 | Adam Borowski | 2013-08-20 01:27:13 +0200

Fix skeleton toad tiles not being used.

--------------------------------------------------------------------------------
5049a3621d | Adam Borowski | 2013-08-20 01:27:13 +0200

Purge unused generated vine statue tiles.

--------------------------------------------------------------------------------
ea19f57a82 | Adam Borowski | 2013-08-20 01:27:13 +0200

Purge two unused bat tiles.
Ice bats use new simulacra tiles (blue rather than white).
Fruity bats have been given the axe.

--------------------------------------------------------------------------------
a71f541a3c | Adam Borowski | 2013-08-20 01:27:13 +0200

Don't double the tiles for Mara and rakshasas.
There might have been an info leak here, too.

--------------------------------------------------------------------------------
fc9ecc9c44 | Neil Moore | 2013-08-19 16:07:09 -0400

New Lua methods you.ability_table(), you.spell_table().
These return a table with letters as keys and spell/ability names as
values.  Previously, finding the spell on a given letter required
cross-referencing the results of you.spells() and you.spell_letters().
Now it is as simple as  you.spell_table()["a"]

--------------------------------------------------------------------------------
fd4ef7346c | Neil Moore | 2013-08-18 23:09:36 -0400

Wrap level-building docs to 80 chars.
I left a few sample map lines that went slightly over the limit.

--------------------------------------------------------------------------------
bb2be8b47d | Neil Moore | 2013-08-18 20:04:30 -0400

Offer rotten chunks first to those who can eat them.
Since rotten chunks pose no negative side effects to saprovores, don't
disfavour them when offering to eat chunks.  The end result is that
rotten chunks will be offered first, since they are by definition less
fresh than unrotten ones.

--------------------------------------------------------------------------------
9d29fcb8fd | MarvinPA | 2013-08-18 20:51:50 +0100

Remove some obsolete food-related options
easy_eat_contaminated, easy_eat_gourmand and prefer_safe_chunks are all
unnecessary now that contaminated chunks just give less nutrition.

--------------------------------------------------------------------------------
24cb6617be | Chris Oelmueller | 2013-08-18 14:12:13 -0400

Make &( call &T instead when invoked for trap feature
debug_make_trap now has a return value and pos argument to match other
debug_make_* utilities that also do not use it.
Support "any" and "random" as trap name.

This also fixes #4734 [moving after &( undiscovered_trap crashes].

--------------------------------------------------------------------------------
e9e13ee355 | Neil Moore | 2013-08-18 13:52:39 -0400

Don't message when beams don't hurt unseen rock worms (#4009)

--------------------------------------------------------------------------------
72edf9b8da | Neil Moore | 2013-08-18 00:47:21 -0400

Reformat a block comment.
Wrap to 80 characters, add some more blank lines, and single-space
sentences.

--------------------------------------------------------------------------------
654be61b15 | gammafunk | 2013-08-17 12:00:17 +0200

Purge all of Pan from our midst
Our dear brother Sir Kilobyte fought long and true to remove all of the demonic
realm...but he did not strike the finishing blow!  Pan lives on, biding its
time, hiding in forgotten reaches of our Holy Tree.  We must truly Remove All of
Pan, lest this unholy menace rise up to destroy us all.  In the name of The
Shining One, I cast you out, unclean spirit!

--------------------------------------------------------------------------------
6d3677f0fb | Adam Borowski | 2013-08-17 12:00:01 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
bf0fda6bea | Neil Moore | 2013-08-17 02:22:05 -0400

Fix indentation.

--------------------------------------------------------------------------------
c56f7848c2 | Raphael Langella | 2013-08-16 23:19:42 +0200

Use a finer scale for magic contamination.
It's now updated every turn instead of every 20 turns and it's almost
deterministic (only the time scaling use randomized rounding).
The bad effects still happen every 20 turns though (just like hell effects and
other stuff).
It has been scaled by 1000. I tried with 100, but I still had some significant
rounding issues, especially with scaling to time_taken.
It shouldn't be possible anymore to gain yellow glow from a single cast of
invisibility even at max power. Although, in theory, it has a slight chance
of putting you just 1 point short of yellow (4999).

--------------------------------------------------------------------------------
bdd80194b7 | Neil Moore | 2013-08-16 16:47:04 -0400

Fix an overly long line in the docs.

--------------------------------------------------------------------------------
7a18f5a6b8 | Chris Oelmueller | 2013-08-16 15:49:57 -0400

More updates for .des vim syntax file
* highlight `q:` like `w:`
* generic recognition of attribute:property modifiers
* fancy highlights for valid branch names in tags, and also
  for valid colour names in COLOUR: and L[ROCK|FLOOR]COL:
* display vault name prominently
* condense several *Dec keywords (desDec)
* fix order of one tag line to match syntax.txt
* remove `rotting` tag because of rotting devils, keep `spectre`
* fix `transparent` being mis-recognized in e.g. TILE directives

In particular, highlights for all kinds of `Branch:...` DEPTH arguments
work correctly now, including the previously unsupported `D:` parts.
Plain `D` still is not highlighted in DEPTH and CHANCE, however.

While I did pretty exhaustive tests for false positives, it is of course
possible that funny corner cases accidentally match these new expressions.
In the interest of general readability improvements I am fine with that.
Examples:
- the exit_* one also highlights `abyss` in `exit_through_abyss`
- the tutorial exit lua markers highlight `tutorial` (see below)

An exclamation mark as in `!Branch:$` was briefly supported for DEPTH
purposes, but would not work in `!Branch` (due to being coupled to the
attribute:property magic) and thus be pretty inconsistent, so I decided
not including that was probably the better way: `\(!\)\=\w*:`...

Note that `lua:<dlua_function>` lines are also matched by the current
regular expression, which should not be a huge problem because they
received no coloring at all before. Ultimately those should be fixed
just as all other lua inclusions, but that doesn't seem to be trivial.

Known issues:
- randbooks with `|` separation for `spells` still bug out after one spell
- col: and god: attributes are not validated, place: could possibly be too

[Also applied chris's fix for luniq_* -nfm]

--------------------------------------------------------------------------------
38ee6f98f5 | Neil Moore | 2013-08-16 15:08:26 -0400

Give up if we can't find a spot for player teleport (#7472)
If there were no rtele-permitting safe squares within range, a
limited-range teleport would go into an infinite loop.  Now break
the loop after 500 tries.  Since all limited-range teleports are
currently involuntary, we do not print a message when this happens.

--------------------------------------------------------------------------------
07f05f3c36 | Chris Oelmueller | 2013-08-15 19:51:37 -0400

Update vim syntax file for .des files
This includes:
* recognizing WELCOME: and DESC: directives (the former unused)
* updating branches to include Spider, Zot, Forest, portal branches
* updating literally all the keywords (regrouped and commented)
  - many new modifiers and groups have been added
    * no longer recognizing the old wax wall glyph `a`
    * adding permarock, stairs, and glass (all types same for now) highlight
    * regrouping `hi` and `syn cluster` sections to match syntax.txt order
    * recognizing `weight:7` like `w:7`
    * recognizing `~` as trap glyph
    * removing the `O` glyph special cases for runes gone in 3bd72f5bf1f8
    * fancy god name highlights inside certain tags

Further TODO list with stuff that seems p.hard:
* recognizing `\` line continuations where applicable
* repairing the pretty broken lua handling, both `:inline` and {{blocks}}
* recognizing foo:bar modifiers and valid arguments for several directives
* expanding god name highlights to also cover e.g. branches
* maybe doing something about SHUFFLE: highlights similar to (N)SUBST

--------------------------------------------------------------------------------
28b7e52d60 | Adam Borowski | 2013-08-15 22:12:10 +0200

Give feedback on 'fg'.

--------------------------------------------------------------------------------
7c3874885d | Neil Moore | 2013-08-15 13:34:38 -0400

Document the "decor" tag, move dungeon_decor into des/builder/

--------------------------------------------------------------------------------
fa7af9c29f | Neil Moore | 2013-08-15 13:04:18 -0400

Document a few missing kprops (ChrisOelmueller)
Most of them shouldn't be used, but we should at least list time so
that no one accidentally turns them on for a whole vault with something
like TAGS: mold .

Also mention the allow_uniq itemspec tag, though it seems to only have
the effect of cancelling no_uniq.

--------------------------------------------------------------------------------
a00e031a28 | Neil Moore | 2013-08-15 12:24:17 -0400

Mention uniq_d_encompass in level-building docs.

--------------------------------------------------------------------------------
4577a5b98d | Chris Oelmueller | 2013-08-15 12:21:57 -0400

Tone down another early jelly vault
Cutting down weight because this is a rather specific flavour vault.
Early placement will also reduce the number of jellies even further.
Also can somebody go fix randomly coloured toadstools already please.

--------------------------------------------------------------------------------
ac451b53ba | MarvinPA | 2013-08-15 17:16:04 +0100

Tweak Tornado description (#7366)

--------------------------------------------------------------------------------
933a684718 | MarvinPA | 2013-08-15 17:16:04 +0100

Update Searing Ray description
Waiting in place to continue the spell isn't really ideal though, a lot of
people seem to try and use it like the lightning rod and recast the spell.

--------------------------------------------------------------------------------
a2b63b94b9 | MarvinPA | 2013-08-15 17:16:03 +0100

Give late D encompass vaults a uniq_ tag so only one is generated per game

--------------------------------------------------------------------------------
5bd2c8c1e4 | Neil Moore | 2013-08-15 12:10:40 -0400

Allow clinging in the abyss (#7469)
Still not perfect:

 * If you are clinging over deep water or lava and the the wall next to
   you morphs away, you will be shoved to a new square with no message.

 * If you are clinging over *shallow* water and the wall morphs, you
   will remain clinging in midair until your next move (at which point
   you splash).

--------------------------------------------------------------------------------
15019780a2 | Raphael Langella | 2013-08-15 16:06:10 +0200

Don't allow clingers to be trampled to death (#7454).

--------------------------------------------------------------------------------
b0d520741c | Raphael Langella | 2013-08-15 15:56:10 +0200

Fix stumbling into deep water while clinging and confused not drowning (#7453).

--------------------------------------------------------------------------------
8dc47299d4 | Chris Oelmueller | 2013-08-14 17:11:50 -0400

Speed 10 for jellies (was: 9)
With speed 9, very tedious tactics like kiting the jelly around and tossing
a bunch of stones at it over and over again was pretty much "optimal", but
took a long time due to their HP and the small difference in movement speed.
The summary is that they now are speed 10 (same as normal speed players,
and most other monsters) but other attributes have been changed to account
for this.

A brief overview of those compensations:
- reduce their base damage to 3 (was: 8)
- lower their HP to 12-21 (was: 15-30)
- increase their experience value to 42 (was: 22)
- make them slightly less common in D (rarity 514, was: 690).

Another change I considered was reducing their acid damage from the quite
high 7d3 to 7d2. That change however required yet another special case in
handling AF_ACID attacks which I could not quite convince myself to do.
If somebody else either improves AF_ACID or hacks in the special case, it
might make sense to increase jelly base damage a bit again.

Expanding on the "why" a bit more:
- generally agreed upon that kiting should not be encouraged
- speed 9 is the worst offender in that it takes forever to open up gaps
- fleeing, i.e. not engaging, monsters in the current situation also is a
  form of kiting that is more tactically interesting with speed 10

--------------------------------------------------------------------------------
dfdf40d4b0 | David Ploog | 2013-08-14 22:14:18 +0200

Number of jellies for early Jiyva altar now depth dependent.

--------------------------------------------------------------------------------
0637cf79f2 | Neil Moore | 2013-08-14 15:53:44 -0400

Simplify.

--------------------------------------------------------------------------------
9889596317 | blackcustard | 2013-08-14 15:53:23 -0400

Level Wyrmbane when an auxiliary attack last hits.
Changed wording. Refactored melee_attack.cc. Changed the Wyrmbane level
up message to use the monsters name. "skewers the body" was a bit weird.
Especially when Wyrmbane didn't get the last hit.

There is a subtle implication now that Wyrmbane acts autonomously and
always gets the last hit.

--------------------------------------------------------------------------------
43a3b10c15 | blackcustard | 2013-08-14 15:35:55 -0400

Improve Wyrmbane's description.
Wyrmbane can only gain enchantment when it kills a dragon who's HD are
higher than Wyrmbane's current enchantment level. The description should
hint at this.

--------------------------------------------------------------------------------
02e9c6e205 | Neil Moore | 2013-08-14 13:28:31 -0400

Don't let resists reduce item destruction chance.
Adjust the previous commit to look at the post-AC damage rather than the
final damage.  Also, use pre-AC damage as the denominator, so that
damage_funcs don't reduce the apparent effect of AC.

--------------------------------------------------------------------------------
e97dbc3126 | Chris Oelmueller | 2013-08-14 13:17:59 -0400

Reduce item destruction chance for AC characters
Elemental beams hitting the player now only destroy items when players
fail (damage after AC and resists) chance_in random2avg(raw damage, 2).
This does not apply to acid attacks or sticky flame, even if the latter
could definitely use some clever stuff to make it less annoying.

High-EV characters can often avoid the destruction blows entirely.
This change tries to address a perceived imbalance which means that you
hopefully now will see messages like
    The puff of flame hits you!
   _Five of your 7 scrolls of immolation catch fire!
less often when taking no substantial damage from the beam.

--------------------------------------------------------------------------------
56e1ae0089 | MarvinPA | 2013-08-14 17:57:44 +0100

Fix ?vorpalisation and the Blade card taking less time when swapping weapons

--------------------------------------------------------------------------------
d37f1c3cff | MarvinPA | 2013-08-14 17:30:04 +0100

Don't allow cancelling the refrigeration effect from ?vorpalise
None of the other explosions are cancellable in this way, and they can
all now be avoided if allies are nearby by cancelling the scroll when
asked to select a weapon, anyway.

--------------------------------------------------------------------------------
38bf203fdf | MarvinPA | 2013-08-14 17:10:49 +0100

Allow selecting a weapon when reading ?vorpalise
This allows cancelling the scroll by swapping to a non-weapon, or choosing
a desired weapon to vorpalise.

--------------------------------------------------------------------------------
97dada43bd | MarvinPA | 2013-08-14 16:29:48 +0100

Identify scrolls of amnesia if read with no spells memorised
It was unlikely to be ambiguous very often anyway since almost all scrolls that
don't target an item are always identified on-use anyway.

--------------------------------------------------------------------------------
2efa58e322 | Neil Moore | 2013-08-14 01:40:17 -0400

Make rings and armour of see invis work for monsters.
Monsters without innate SInv already valued the rings, and the
corresponding artefact property already worked (though it did
not respect suppression; this is also fixed).

--------------------------------------------------------------------------------
fd9909a904 | Neil Moore | 2013-08-13 22:22:50 -0400

Don't give Confusing Touch when Zin prevents fungus form (#7461)

--------------------------------------------------------------------------------
12a1127eba | Neil Moore | 2013-08-13 17:42:48 -0400

Remove boring beetles from Vaults spawn list (ontoclasm)
There's not much boring for them to do there.

--------------------------------------------------------------------------------
8b259a4f48 | Neil Moore | 2013-08-13 17:27:18 -0400

Make a randbook phrase more idiomatic.

--------------------------------------------------------------------------------
cb56100b45 | Neil Moore | 2013-08-13 17:26:16 -0400

Remove an in-game use of gamer slang (VolteccerJack)

--------------------------------------------------------------------------------
1de163a987 | Neil Moore | 2013-08-13 13:13:27 -0400

Unmeld boots when fishtail merfolk transform (#7456)

--------------------------------------------------------------------------------
eefce6b009 | Neil Moore | 2013-08-13 11:03:10 -0400

Allow tentacle kills to damage their parent (#7455)
We were failing to pass the damage up if the tentacle died.  That could
have encouraged trying to damage the tentacle for slightly less than its
current hit points.

The damage was already capped at the tentacle's remaining HP.

--------------------------------------------------------------------------------
b26bf1a109 | Steve Melenchuk | 2013-08-12 09:49:22 -0600

Reduce the weight of encompass vaults on D:$.
By all indications, they're turning up way too often there with the
changes that treat Zot entries as D branch endings.

Either that or people remember profane_halls and pleasuredromes a lot
better than the other Zot entries.

--------------------------------------------------------------------------------
ff71269090 | Adam Borowski | 2013-08-12 17:21:45 +0200

Don't let unborn drop invalid corpses.

--------------------------------------------------------------------------------
65ff1ef470 | Adam Borowski | 2013-08-12 17:21:45 +0200

Revert "Remove player clinging".
Minus gargoyle clinging, of course.

With monster clinging back, it would be inconsistency for inconsistency sake.

Player clinging:
* is what people expect spiders to be able to do (if monsters can).  Count on
  bug reports about this.
* allows people to learn monster mechanics on their own
* is useful in the early game, or later if you don't have that particular
  spell.  People don't tend to lug heavy potions of Flight either.
* is actually fun

--------------------------------------------------------------------------------
a2beab4cc4 | Adam Borowski | 2013-08-12 17:21:45 +0200

Axe an unused function.

--------------------------------------------------------------------------------
5ee1dac2f0 | Steve Melenchuk | 2013-08-12 09:18:05 -0600

Add a missing NSUBST to grunt_vaults_end_simple_division (#7403).
Oops.

--------------------------------------------------------------------------------
40eb210485 | Raphael Langella | 2013-08-12 15:49:00 +0200

Revert "Bye bye clinging."
Clinging might be a minor feature, but it's a distinguishing one, it's thematic
and it's working quite well.
Player/monster symmetry has never been a goal, so it seems dubious to invoke it
as the reason to throw away all the work that has been put into clinging. We
can always say that the player turns into a different kind of spider which is
unable to cling for some reason.

This reverts commit bdc56382eacf7af1b2330dc6444916d368741fec.
This reverts commit d689486464fcaaac025a6f469ab69674a2f4d173.
This reverts commit 1addaaf8ee92de5060fdb436f93251843abd2035.

--------------------------------------------------------------------------------
d993d8a94e | ontoclasm | 2013-08-11 16:03:26 -0500

Remove a rim

--------------------------------------------------------------------------------
998420c2a7 | Neil Moore | 2013-08-11 16:51:14 -0400

Improve a comment.

--------------------------------------------------------------------------------
157d67efa3 | Pekka Lampila | 2013-08-11 19:42:24 +0300

Fix a problem going directly to #play- or #watch-
This would throw the user back to the lobby if he logged in using a cookie

--------------------------------------------------------------------------------
4d1be6e665 | Neil Moore | 2013-08-11 11:55:12 -0400

Change title of some spell list screens.
When adjusting or forgetting spells, remind the user in the title why
they're there.  This is especially important now that Amnesia brings
up the spell list by default: the player won't see the amnesia prompt
first, so won't know why they're looking at a spell menu.

--------------------------------------------------------------------------------
649a1be52b | MarvinPA | 2013-08-10 21:48:09 +0100

Fix an area in lemuel_river_lethe that could trap teleporting players
Also remove a comment about turning it into an unmappable portal vault.

--------------------------------------------------------------------------------
4d723760e7 | Neil Moore | 2013-08-10 11:33:08 -0400

Don't leak unknown shapeshifters through chivalry (moxian)

--------------------------------------------------------------------------------
662fae26a5 | Neil Moore | 2013-08-10 04:49:42 -0400

Don't treat preserved meat as sublimable.
But do continue to treat it as simulacrable.

--------------------------------------------------------------------------------
47f5d088a5 | Neil Moore | 2013-08-10 04:28:57 -0400

Let auto_list = false work with amnesia.

--------------------------------------------------------------------------------
8dad8c8a64 | Neil Moore | 2013-08-10 04:28:56 -0400

Fix whitespace.

--------------------------------------------------------------------------------
ba29f88f49 | BlackSheep | 2013-08-10 04:28:56 -0400

Make scrolls of amnesia display the spell list immediately instead of just a 
message prompt.

--------------------------------------------------------------------------------
b8a0f35253 | Neil Moore | 2013-08-10 04:27:53 -0400

Refactor out finesse delay adjustment code.
As a side effect, make the one case that used /= 2 (namely,
launcher_final_speed()) use div_round_rand() like the others.

--------------------------------------------------------------------------------
a9403497d9 | Neil Moore | 2013-08-10 03:54:01 -0400

Fix whitespace.

--------------------------------------------------------------------------------
0922e124a7 | BlackSheep | 2013-08-10 03:51:38 -0400

Make finesse apply to throwing attacks

--------------------------------------------------------------------------------
065a63a015 | BlackSheep | 2013-08-10 03:50:15 -0400

Exclude shapeshifters from unchivalric attack determination

--------------------------------------------------------------------------------
e69dee32c5 | Neil Moore | 2013-08-10 03:49:13 -0400

Show all meat in the wield inv list for sub/simul users.

--------------------------------------------------------------------------------
68dec2b60e | Neil Moore | 2013-08-10 03:44:24 -0400

Lua functions food.ismeaty(), food.isveggie().

--------------------------------------------------------------------------------
972246da04 | Neil Moore | 2013-08-10 03:33:16 -0400

Allow sublimation/simulacrum users to swap to and mouse-wield all meat.

--------------------------------------------------------------------------------
6d81010498 | Neil Moore | 2013-08-10 03:27:35 -0400

Fix formatting.

--------------------------------------------------------------------------------
2178ea5dcf | BlackSheep | 2013-08-10 03:24:58 -0400

Let knowledge of Simulacrum enable wielding via mouse

--------------------------------------------------------------------------------
c1edc7049b | Zannick | 2013-08-09 23:18:20 -0400

Clear the subvault stack on each placement attempt
This fixes a rare corner case (#7435) where a vault's subvaults could be
placed correctly while the vault itself is not, causing the builder to
fail to place its subvaults on subsequent attempts.

Also add a debug message for when the validate lua call fails.

--------------------------------------------------------------------------------
38856ef5bb | Steve Melenchuk | 2013-08-09 20:46:10 -0600

Small adjustments to a couple of encompass vaults.
Namely, grunt_twisty_little_passages and grunt_runaround.

From what I've heard, the vaults play well when players are clearing
them, but it becomes a tremendous hassle to navigate back through them
after they've been cleared. (This was part of the original motivation
for twisty_little_passages; no, I don't know why I thought it was a good
idea at the time.)

twisty_little_passages now contains two rock chunks across from the
respective pairs of up stairs, and one wand of digging on the interior
side of one of the two pairs of rocks - the idea being that once you've
cleared to that point in the vault, you can just dig through the rock
for a much faster exit. (Of course, players prepared enough to be able
to dig when entering the vault can have a much easier time if they just
want to get to a downstair as soon as possible).

runaround now has each tier generate two doors to the next tier, except
leading into the central chamber, which still only has one door. This
should help make the map more tactically interesting and reduce the
average distance a player needs to travel from stair to stair.

--------------------------------------------------------------------------------
b2bc1a6fda | Neil Moore | 2013-08-09 22:16:42 -0400

Fix a raging bat crash (GrandiloquentGentleman, Zannick)
My fault; in 0.13-a0-1687-gbb2f8db I failed to notice that I was making
the interrupted swap check an alternative to the null check.

--------------------------------------------------------------------------------
77aadb4adf | MarvinPA | 2013-08-09 22:44:13 +0100

Don't restore strength on Ghouls by eating chunks
It's flavourful but not actually a noticeable effect, healing and unrotting
from chunks is the main thing.

--------------------------------------------------------------------------------
1f5cbb7e07 | Chris Campbell | 2013-08-09 18:28:51 +0100

Remove an unnecessary pluralisation case

--------------------------------------------------------------------------------
0ac5afdac4 | Chris Campbell | 2013-08-09 18:28:47 +0100

Rename unborn deep dwarf to unborn, change glyph to L
The notable thing about them is being undead with scary spells (making
L an appropriate glyph) - they don't make any sense as deep dwarves
since they have no way to heal.

--------------------------------------------------------------------------------
f61ad0bcab | Chris Campbell | 2013-08-09 18:28:26 +0100

Remove deep dwarf scions, artificers and necromancers
None of them did anything interesting or spawned anywhere outside of a
small number of vaults.

--------------------------------------------------------------------------------
174dd5a0a2 | Neil Moore | 2013-08-09 11:26:47 -0400

Don't send empty webtiles chat messages (#7448)
This doesn't prevent intentional spamming, but it does reduce the danger
posed by a cat stepping on the enter key.

--------------------------------------------------------------------------------
928cd1f55e | Neil Moore | 2013-08-09 09:26:33 -0400

Add option 'autofight_fire_stop'.
Suggested by bmfx: makes autofight firing use f. rather than ff .
It might be nice if we had an easy way to overrode this for missiles
of penetration,

--------------------------------------------------------------------------------
56e3d78c6f | ontoclasm | 2013-08-09 00:58:23 +0100

Use Beogh's altar tile for the conversion ability

--------------------------------------------------------------------------------
3c835ff962 | Chris Oelmueller | 2013-08-08 15:19:46 +0100

Prefer `Branch` over `Branch:*` in vault syntax docs
The :* case was recently purged from vaults.

--------------------------------------------------------------------------------
971d362d42 | MarvinPA | 2013-08-08 13:44:40 +0100

Don't give PbD regen for corpses from Kiku's ability
It doesn't make much sense to be able to get lots of extra regen from things
that you didn't even kill.

--------------------------------------------------------------------------------
19321e5dea | Chris Oelmueller | 2013-08-08 13:01:39 +0100

Fix a comment
This vault has not had an orc defined in it since 
879f22f4a48dc9ac24154e3e8f5baca91b63ab7b.

--------------------------------------------------------------------------------
085b360032 | Chris Oelmueller | 2013-08-08 13:00:01 +0100

Fix some typos

--------------------------------------------------------------------------------
ffe6e9f329 | ontoclasm | 2013-08-07 21:21:47 +0100

Hellfire tile

--------------------------------------------------------------------------------
82273e062f | Chris Campbell | 2013-08-07 12:21:12 +0100

Fix wanderers being able to start with the book of War Chants (|amethyst)
Give them the book of Battle instead.

--------------------------------------------------------------------------------
c68e7bdaf3 | Adam Borowski | 2013-08-06 23:22:12 +0200

Use-id amulets of resist corrosion on getting hit by acid.

--------------------------------------------------------------------------------
eebf78d342 | ontoclasm | 2013-08-05 20:41:56 +0100

Beogh altar
With thanks to Bloax.

--------------------------------------------------------------------------------
160563f779 | ontoclasm | 2013-08-05 20:41:53 +0100

Adjust some wall tile weights

--------------------------------------------------------------------------------
77f44e5690 | Adam Borowski | 2013-08-05 17:40:52 +0200

Djinn: duplicate innate resistances on '%'.
I fail to see the point, though.

--------------------------------------------------------------------------------
b29bb13689 | Adam Borowski | 2013-08-05 15:37:48 +0200

Djinn: convert innate rN+++ to a mutation.
The mutation disabling itself when transformed was not an issue for
mummies and ghouls as they can't transform at all.  With it working
all the time, we don't need to handle demonic/angelic spiders/etc
losing their rN+++.

--------------------------------------------------------------------------------
9f49c38792 | Adam Borowski | 2013-08-05 15:32:41 +0200

Let the rN mutation work when transformed.
It's not a physical attack, so I'd expect it to work the same on all
forms that don't get rN by themselves.  Also, torment resistance works
when transformed already.

--------------------------------------------------------------------------------
535433d1fe | Adam Borowski | 2013-08-05 14:43:00 +0200

Djinn: no contact with the ground means less Shatter damage.
Same as Airstrike.

--------------------------------------------------------------------------------
39f7220e9a | Adam Borowski | 2013-08-05 13:01:11 +0200

Drop some randart power_level oddities.

--------------------------------------------------------------------------------
aae68d51e9 | Adam Borowski | 2013-08-05 12:42:16 +0200

Sort artefact brands by their chance rather than enum.

--------------------------------------------------------------------------------
2f0fc1f422 | Neil Moore | 2013-08-05 00:38:17 -0400

Simplify and constify.

--------------------------------------------------------------------------------
20ac6532cc | Adam Borowski | 2013-08-05 06:24:44 +0200

Don't prompt about irrelevant transformations while in stat death.
Not sure if a transform that worsens your state should prompt, but since
for purposes other than recovery stats are floored at 0, it's probably
ok without a prompt -- and this doesn't require handling extra wording.

--------------------------------------------------------------------------------
c2a47cada2 | Adam Borowski | 2013-08-05 05:12:28 +0200

Refactor melee randart brand selection.
The chained pile of enum arithmetic was hard to read and hard to modify.
There should be no functional change wrt old code (other that slight
rounding errors in probabilities).  I preserved calculations of
"power_level" as well, even if its behaviour for demon items and
distortion looks strange.

--------------------------------------------------------------------------------
9605ba8ac5 | Adam Borowski | 2013-08-05 05:12:27 +0200

Don't pointlessly reroll melee randarts.

--------------------------------------------------------------------------------
7b869e6c33 | Adam Borowski | 2013-08-05 05:12:27 +0200

Use gold instead of bfd if possible.
In Debian, gold used to be the default linker when both were installed; after
a recent upload of binutils this is no more.  That's a big regression, as
bfd is slower by a factor of 3-4 in most cases, and over 80 times when bfd's
massive memory use makes it hit the swap.

On the other hand, gold is now installed in the base binutils package, and
can be switched to with -fuse-ld=gold.  That's said to be the "upstream
default".  This syntax is not recognized by older gcc nor clang and thus
has to be detected on runtime.

--------------------------------------------------------------------------------
6f4baa5f3e | Neil Moore | 2013-08-04 23:11:06 -0400

Fix compilation (oops).

--------------------------------------------------------------------------------
ed787401f7 | Neil Moore | 2013-08-04 22:26:36 -0400

Move autopickup_starting_ammo in options_guide, add to TOC.
It is a "starting screen" option, so list it there. In particular,
and unfortunately, it cannot be conditionalised on the player's
race/class, because options aren't re-read until after ng-setup is
complete and the force_autopickups already have (or haven't) been
applied.

--------------------------------------------------------------------------------
8d22a55ae2 | Neil Moore | 2013-08-04 22:19:49 -0400

Don't autopickup arrows for transmuters (SamB)

--------------------------------------------------------------------------------
2f44106807 | Neil Moore | 2013-08-04 22:19:09 -0400

Allow setting autopickup_starting_ammo = false.

--------------------------------------------------------------------------------
49afce12fe | Neil Moore | 2013-08-04 22:13:53 -0400

Refactor.

--------------------------------------------------------------------------------
ccb6aaa35b | Neil Moore | 2013-08-04 22:13:52 -0400

Enable autopickup for wanderer starting ammo (#7429).

--------------------------------------------------------------------------------
615ae38e8b | Neil Moore | 2013-08-04 22:13:52 -0400

Fix whitespace.

--------------------------------------------------------------------------------
9c1726f6c4 | Captain Haddock | 2013-08-04 20:09:37 -0400

Throwing Hunters now have autopickup starting ammo (#7428)
Hunters which selected throwing weapons to start with did not have
that weapon selected to autopickup. This is a small quality of life
change.

--------------------------------------------------------------------------------
bd0b72963f | Neil Moore | 2013-08-04 20:05:49 -0400

Don't render gates as doors after sealing/unsealing.
We were sealing one door cell at a time; tile_init_flavour considered
the just-sealed door to be separate from the not-yet-sealed ones.
Saving and restoring re-initialised the tile flavour, correcting the
rendering bug (until the gate unsealed and the same thing happened).

Correct this by considering a sealed door to be the "same door" as an
adjacent closed or runed door (and vice versa).  Another option,
suggested by DracoOmega, would be to make a separate tile_init_flavour
pass after we finish sealing/unsealing.

--------------------------------------------------------------------------------
3fe8869762 | Neil Moore | 2013-08-04 19:16:01 -0400

Display flv.special in the wizmode tiles tooltip.
Even if it is usually uninitialised, sometimes it's handy to know.

--------------------------------------------------------------------------------
9d0e715c0b | Neil Moore | 2013-08-04 19:14:27 -0400

Don't treat stone arches as having door tile variants (#7402)
This caused arches to display the snail statue tile, or very rarely an
orcish idol or a different statue tile.

--------------------------------------------------------------------------------
3970fff687 | DracoOmega | 2013-08-04 16:43:54 -0230

Greatly raise The Enchantress's xp value
She is now worth something more consistent with other deep uniques,
instead of vastly less.

--------------------------------------------------------------------------------
6c3e8923b7 | DracoOmega | 2013-08-04 16:40:14 -0230

Unnerf Spriggan Defenders a little
With the old cuts to their EV, damage, and weapon threat value, I
think I may have gone slightly to far. This commit restores their
old damage and raises their hp somewhat (instead of restoring their
ridiculous EV)

--------------------------------------------------------------------------------
6501aa98c5 | DracoOmega | 2013-08-04 16:36:46 -0230

Fix a missing period. (ontoclasm)

--------------------------------------------------------------------------------
36641acba3 | Chris Campbell | 2013-08-04 19:18:47 +0100

Remove Gloorx Vloq's emergency invisibility
He rarely casts it and when he does it's unlikely to do anything.

--------------------------------------------------------------------------------
828ae68090 | Chris Campbell | 2013-08-04 19:18:02 +0100

Add the royal jelly to Pitsprint (st_)

--------------------------------------------------------------------------------
ddb5f4a2b2 | Chris Campbell | 2013-08-04 19:17:47 +0100

Remove unnecessary no_monster_gen from Sprint maps
Fixes TRJ spawns not being placed.

--------------------------------------------------------------------------------
b88d460d19 | MarvinPA | 2013-08-04 17:49:20 +0100

Linesprint whitespace fixes

--------------------------------------------------------------------------------
b692f24c6d | Chris Campbell | 2013-08-04 17:40:42 +0100

End Ozocubu's Armour when casting Statue Form (#7426)

--------------------------------------------------------------------------------
6315843d78 | Chris Campbell | 2013-08-04 17:40:42 +0100

Prevent orb apportation in Sprint
Since it turns out to be a good idea to apport the orb all the way
across the map after clearing out earlier areas, if possible. This
isn't so much the case in the regular game where Zot:5 enemies might
still show up but maybe it'd be simpler/more consistent to just make
the orb always apportation immune.

--------------------------------------------------------------------------------
0add7a92c5 | ontoclasm | 2013-08-04 12:27:17 +0100

More outlining fixes

--------------------------------------------------------------------------------
170388bd94 | Neil Moore | 2013-08-03 23:47:45 -0400

Copy some flags when splitting half-coagulated stacks (#7378)
Besides the autopickup problem mentioned in #7378, not copying the
summoned flag from the old stack could theoretically cause problems,
if a summoned monster somehow started with a stack of blood with
different ages.

Also copy the inscription, since it is preserved when the whole stack
coagulates at once.

--------------------------------------------------------------------------------
a0a96f5d04 | Neil Moore | 2013-08-03 23:35:48 -0400

Merge some duplicated code.

--------------------------------------------------------------------------------
a85b073bc7 | Neil Moore | 2013-08-03 22:54:07 -0400

Remove ISFLAG_BEEN_IN_INV.
It was once used for tracking lost runes (4ba5811), but that's been
irrelevant for a while now.  The vestigial code:

 * Only checked the flag for unrandom artefacts, or to determine
   whether to destroy an item with wizmode &G.
 * Only set the flag for items the player started with (or, prior to
   this commit's parent, blood that coagulated in the inventory).

Since players don't start with unrands, it was relevant exactly never
in normal games.  It was only rarely relevant for &G, since monsters
aren't likely to have player starting inventory that wasn't also
ISFLAG_DROPPED or ISFLAG_THROWN (both of which are still checked).

--------------------------------------------------------------------------------
7fa54447bd | Neil Moore | 2013-08-03 22:49:17 -0400

Don't pretend to set flags on inventory-coagulated blood.
Spot the bug in the removed code: it's been around for four years.

Using zero because these two flags are unnecessary anyway:
ISFLAG_KNOW_TYPE is irrelevant because we also set_ident_type to
ID_KNOW_TYPE; and ISFLAG_BEEN_IN_INV is not used anywhere that would
care about potions.

--------------------------------------------------------------------------------
0e7cc690e7 | ontoclasm | 2013-08-03 23:12:11 +0100

Searing ray tiles

--------------------------------------------------------------------------------
9bd4eb8608 | ontoclasm | 2013-08-03 18:37:43 +0100

Fix some bad outlining

--------------------------------------------------------------------------------
811f1deea9 | Chris Campbell | 2013-08-03 05:21:46 +0100

Make the initial noise of Song of Slaying the same as the per-turn noise

--------------------------------------------------------------------------------
94c4477e3d | Chris Campbell | 2013-08-03 05:13:38 +0100

New sprint map by st_: linesprint
Currently sorted wrongly on the Sprint menu, due to the sorting being
alphabetical and the maps using roman numerals.

--------------------------------------------------------------------------------
4d1f75f480 | Chris Campbell | 2013-08-03 03:22:04 +0100

Don't use spirit wolves in chimeras
As pointed out in #7385, it's sort of weird for a "spirit" creature to be part
of a chimera.

--------------------------------------------------------------------------------
f66cb844ab | Chris Oelmueller | 2013-08-03 03:08:12 +0100

More padding fixes for ternary operator

--------------------------------------------------------------------------------
a588b26c5e | cjo | 2013-08-03 03:02:28 +0100

Allow use-id of rPoison when hit by needles
This patch allows rings of resist poison to be identified when
the player is hit by curare or poisoned needles.

--------------------------------------------------------------------------------
1ff05fd672 | cjo | 2013-08-03 03:01:07 +0100

Allow lava orcs to turn off boots of flying while over lava
Added a check so lava orcs can turn off boots of flying while
over lava.

--------------------------------------------------------------------------------
e27a2034d2 | cjo | 2013-08-03 02:59:35 +0100

Recalculate mp when rebranding an antimagic weapon
MP needs to be recalculated when rebranding an antimagic weapon.
I also moved the recalculation for AC and evasion so it only
happens if the rebranding succeeds.

--------------------------------------------------------------------------------
287f5fb8ea | Chris Campbell | 2013-08-02 21:16:01 +0100

Remove unnecessary no_ctele_into and runed doors from a vault

--------------------------------------------------------------------------------
02992bf198 | Neil Moore | 2013-08-02 11:17:36 -0400

Recognise property names in the vim levdes syntax.

--------------------------------------------------------------------------------
a934a44a1e | Neil Moore | 2013-08-02 11:10:35 -0400

Allow kprops to be used as vault-wide tags (#7423)
We'd been assuming that to be the case for a while. The following
vaults all tried unsuccessfully to use TAGS: no_rtele_into , leading
to unexpected teleport closets (see for example the referenced bugs):
  bh_abyss_bestiary
  grunt_vaults_entry_tiered
  vaults_dpeg_emergency_exit
  shop_statue
  shiori_entry_elements
  grunt_hell_entry_demonic_statue
  grunt_house_of_mirrors
  lemuel_flame_loot_1

Also, lightli_eight_chambers used no_ctele_into. These should all work
as designed now.

--------------------------------------------------------------------------------
8c1459108a | Chris Oelmueller | 2013-08-01 18:00:08 -0400

Make Trog hate all spells but not spells in rods
This should display them as "forbidden" in the M screen, fixing 0001588.
Still maintaining that a proper fix here would be to make Trog hate rod
spells though.

--------------------------------------------------------------------------------
0090880044 | Neil Moore | 2013-08-01 16:52:42 -0400

Allow Full and higher vampires to berserk (#7419)
Broken by 0.13-a0-2349-g39398e7 .

--------------------------------------------------------------------------------
a91774f082 | Neil Moore | 2013-08-01 16:51:53 -0400

Refactor out some vampire logic.
It's only used twice now, but it's about to be used a third time.
Maybe it would be useful to take the maximum hunger as a parameter;
that would allow replacing a few more checks, because there are
a number that use < HS_SATIATED instead of <=

--------------------------------------------------------------------------------
7004df4c0b | cjo | 2013-08-01 16:27:14 -0400

Fix spectral wolf pacification bug
Spectral wolves continue attacking after being pacified because in
mon-behv.cc, behavior due to haunting overrides behavior due to
paficication. I added a line to mons_pacify to remove the haunting
enchantment. (Haunting causes a monster to move toward and attack
the source of the enchantment, so it should never be relevant once
a monster is pacified.)

--------------------------------------------------------------------------------
d3544abd7c | ontoclasm | 2013-07-31 22:48:05 +0100

Undead ugly things

--------------------------------------------------------------------------------
68e23464dc | Chris Oelmueller | 2013-07-31 12:21:04 -0400

Rename some item properties in &t mode
Mostly modernizing and unifying the abbreviations to kind-of match
current inscription policies. Notable changes are adding 'r' in front
of a bunch of stuff, renaming 'Mag' to 'MR' and introducing the "-+*"
modifiers.

--------------------------------------------------------------------------------
2e76cfd839 | Adam Borowski | 2013-07-31 04:12:23 +0200

Let the compiler inline new trivial accessors.
Not sure if religion is queried from any tight loops, but this doesn't hurt,
and servers don't use LTO yet.

--------------------------------------------------------------------------------
5e2a970f14 | Adam Borowski | 2013-07-31 04:12:23 +0200

Indendation & brace fixes.

--------------------------------------------------------------------------------
f132148637 | Adam Borowski | 2013-07-31 04:11:37 +0200

Drop an unused variable.

--------------------------------------------------------------------------------
07a0b80f94 | Adam Borowski | 2013-07-31 04:01:02 +0200

Fix reversed logic in a test.

--------------------------------------------------------------------------------
6d5fa6932a | Adam Borowski | 2013-07-31 04:01:02 +0200

Unbreak build.
Guys, actually trying to compile after a pull --rebase would be nice;
there's 16 commits in a row which don't even build.

--------------------------------------------------------------------------------
9c9ad2be82 | Neil Moore | 2013-07-30 16:44:19 -0400

Tweak formatting and fix a typo.

--------------------------------------------------------------------------------
ed92a994f6 | blackcustard | 2013-07-30 16:36:15 -0400

Fix a Kirke crash by deporkalating transiting hogs correctly.
Normally, monsters are stored in a list (env.mons or menv for short).
There is a grid (env.mgrid or mgrd for short) which maps the position (x,
y) of the monster to its index in the list. Transiting monsters, however,
exist outside both the monster list and the monster grid. They are stored
separately, and they do not really have positions.

The deporkalation code inside dactions.cc was not transiting-monster
aware. It would call monster::move_to_pos on transiting hogs, just as on
non-transiting hogs. When it did so, it would write their index inside the
monster list into the monster grid. Of course, since these hogs were not
in the monster list in the first place, this "index" was bogus.

Within a few turns one of several unrelated parts Crawl would try to
investigate the monster grid and trip over the bogus entry, triggering this
assertion in monster_at inside mon-util.cc:
    ASSERT(mindex <= MAX_MONSTERS);

Changes:
1. Make the deporkalation code transiting-monster aware. Do not call
monster::move_to_pos on transiting monsters. (Fixes the crash.)
2. Add some informative comments.
3. Make an implicit type conversion from monster to follower explicit.

--------------------------------------------------------------------------------
c67cb32cf6 | Neil Moore | 2013-07-30 16:29:37 -0400

Forbid Cure Poison for Gargoyles.
They are completely immune to poison, even across changes of form.

--------------------------------------------------------------------------------
83314a393d | DracoOmega | 2013-07-30 16:26:06 -0230

Fix some issues relating to LoS attack spells
This corrects Ozocubu's Refrigeration and Olgreb's Toxic Radiance not
affecting invisible creatures which you cannot see. Also, such things
as grates no longer function as impenetrable thermal insulation (ie:
you can refrigerate things on the other side of them)

--------------------------------------------------------------------------------
28e5a1086e | DracoOmega | 2013-07-30 15:08:31 -0230

Make spirit wolves invalid polymorph targets

--------------------------------------------------------------------------------
f6483b8b96 | DracoOmega | 2013-07-30 15:08:30 -0230

Remove Olgreb's Toxic Radiance from the effect list for Venom cards
It could be a bit obnoxious repeatedly (and sometimes heavily) poisoning
yourself this way, especially earlier on (and was still a 50% chance even
with plain venom cards). Admittedly sting/venom bolt/poison arrow is
a touch boring, but no moreso than several other damaging cards.

--------------------------------------------------------------------------------
466a8a3a5a | DracoOmega | 2013-07-30 15:08:29 -0230

Slightly adjust some Forest spawn chances

--------------------------------------------------------------------------------
afaf2447a5 | DracoOmega | 2013-07-30 15:08:27 -0230

Buff Thorn Hunters
Increase defenses, HD, and melee damage.

For something intended to be one of the more 'noticable' monsters in
the branch, they have been distinctly ineffective at actual threatening
players. Perhaps this is still too conservative, but we'll see.

--------------------------------------------------------------------------------
386241e36d | DracoOmega | 2013-07-30 15:08:26 -0230

Slightly increase chance of Spriggan Berserkers having an antimagic weapon

--------------------------------------------------------------------------------
b82d040b36 | DracoOmega | 2013-07-30 15:08:25 -0230

Remove deflect missiles from Tengu Reavers, nudge a little deeper in D

--------------------------------------------------------------------------------
98f3daa54e | DracoOmega | 2013-07-30 15:08:24 -0230

Reduce elemental wellspring hp slightly, reduce chance of summoning elementals

--------------------------------------------------------------------------------
5f5b25ea26 | DracoOmega | 2013-07-30 15:08:23 -0230

Boost statue form's defenses for gargoyles
Even with these considerable boosts, it's dubious whether it's actually
more durable than their base form, due to rendering their already bad EV
even worse (and melding body armour), but this should hopefully at least
make it somewhat competitive in that regard.

Though to be honest, I'd be just as happy to disable statue form for
gargoyles, since they're kind of already a living statue (even if one that
lacks the strong offensive boost it gives). I mentioned this before, but I
seem to recall opposition.

--------------------------------------------------------------------------------
95d56f92b4 | DracoOmega | 2013-07-30 15:08:22 -0230

Adjust Gargoyle defenses
While the massive racial AC bonus looks extremely good on paper (perhaps
even too large), in practice it still leaves them a lot squishier than one
might expect. In fact, when compared to other -2 hp races, even tengu (a
race hardly known for its durability) with similar xp investment in defensive
skills and dex, take less average melee damage than gargoyles in a variety of
situations beyond earlygame, and kobolds take noticably less than even that.
This is especially true in lighter armour, or against hard-hitting ranged
attacks (which tend to be the most dangerous things anyway).

Inversely, gargoyles start with an almost silly level of AC for the first few
floors, making them an incredibly durable start (which then becomes unusually
fragile a little later on).

This commit adjusts the AC curve, making them have noticably less AC at the
start of the game, though eventually catching up to the same levels by the end.
In addition, gargoyles gain a noticable passive GDR bonus, intended to shore up
their durability against common melee threats (where they really ought not to
be taking more damage than tengu, in my opinion). Their greater resiliance in
melee is likely offset, compared to other low hp races, by their increased
vulnerability to hard-hitting ranged attacks, but I think this could be a viable
niche.

--------------------------------------------------------------------------------
7452920363 | DracoOmega | 2013-07-30 15:08:20 -0230

Thin giant fireflies a little from some early vaults

--------------------------------------------------------------------------------
f504fa9b7a | DracoOmega | 2013-07-30 15:08:19 -0230

Increase spriggan rider hp, raise EV to match that of their mounts
Note that this still leaves them with noticably lower EV than other
spriggans.

--------------------------------------------------------------------------------
6f007d93b9 | DracoOmega | 2013-07-30 15:08:17 -0230

Buff Giant Fireflies
Giant fireflies now gain the ability to flash a signal beacon. This is
somewhat similar to generating noise, though with a few significant
differences. Firstly, it alerts only creatures which are already awake,
with the exception of other fireflies and spriggan riders, who are keyed
to be alerted by these signals. Secondly, the signal gives more precise
locational information than noise does, making it easier for monsters to
hone in on the specific position it occurs.

Also, double their pathetic melee damage and increase hp somewhat.

The hope is that this will make the fact that spriggan riders sometimes
leave a firefly upon death ocassionally meaningful (as opposed to
completely meaningless at present)

--------------------------------------------------------------------------------
20a8841cf3 | DracoOmega | 2013-07-30 15:08:16 -0230

Change how Spirit Wolves work somewhat
While the very low per-turn chance of the wolves using their spirit howl
was intended to mean that a majority of packs would not use it at all
before being killed, in practice the randomness involved meant that
sometimes a player could be afflicted by the status several encounters in
a row. Worse, for a player with good defenses, the wolf attacks presented
little danger, but still took a very long time to stop. In general, this
could lead to them being an irritating encounter that nonetheless presented
little danger. This commit is aimed at trying to address this.

Spirit howl now lasts less time, but the spawning of packs within it happens
somewhat more rapidly. Spirit wolves themselves hit noticably harder and are
a little more accurate.

The wolves attracted by spirit howl no longer count as summons, but are
finite in number across all uses of spirit howl (ie: they represent the
rest of the spirit pack, attracted from outside the waking world). This has
a couple ramifications: there is now some reward for actually fighting them
instead of running away until they time out (yet one that cannot be farmed)
and (significantly) there is an upper limit on how many times the player has
to deal with this effect, instead of potentially having to deal with it over
and over and over again as one clears Forest.

Wolves within sight of the player no longer disappear when the howl ends,
though those out of view do (and are thus eligable to be called again by a
subsequent spirit howl), providing another tangible strategic advantage to
killing them instead of running away until they stop showing up.

Finally, there is also a lengthly cooldown after the effect ends before any
wolf can use it again (so there is no longer any chance for one to howl the
moment the first one expires)

Overall, the aim is that spirit howl occur less times in total, take up less
of the player's overall time, be a little less annoying in some ways, and also
provide more actual threat when it occurs.

This commit also fixes multiple bugs with the original implementation:
non-hostile wolves will no longer howl, placement will more properly respect
LoS instead of sometimes spawning them immediately in view, and some
pathfinding bugs that could cause wolves to not properly pursue the player
have been fixed.

--------------------------------------------------------------------------------
fd23a31914 | ontoclasm | 2013-07-30 10:31:21 +0100

Lighten up umbra tiles

--------------------------------------------------------------------------------
e34089980d | Chris Campbell | 2013-07-29 19:54:01 +0100

Fix an infinite loop when rebranding

--------------------------------------------------------------------------------
2b2dd30841 | ontoclasm | 2013-07-29 19:01:29 +0100

Differentiate noxious fumes in tiles

--------------------------------------------------------------------------------
10fbfae4d8 | Neil Moore | 2013-07-29 10:38:25 -0400

Avoid some unused-static warnings with NO_LUA_BINDINGS.
Using UNUSED() rather than #ifdef'ing out their definitions, because
the latter is somewhat more fragile if someone does make them
not-unused.

--------------------------------------------------------------------------------
0cca98f75e | Adam Borowski | 2013-07-29 15:10:47 +0200

Unbreak tiles.

--------------------------------------------------------------------------------
7ea04537d5 | Chris Campbell | 2013-07-29 02:38:53 +0100

Remove a special case for Minotaurs amusing Xom in Labs

--------------------------------------------------------------------------------
5c2f3ca684 | Brendan Hickey | 2013-07-28 16:44:21 -0700

Dispatch to std::bitset for FixedBitVector.
This patch reimplements 1D and 2D FixedBitVectors in terms of std::bitset.
The 1D FixedBitVector can probably be deleted in its entirety.

bit_vector could be replaced with boost::dynamic_bitset, if we were willing
to introduce a dependency on Boost.

Stress tests demonstrate a tiny improvement in timings.

--------------------------------------------------------------------------------
23a74840f4 | Neil Moore | 2013-07-28 18:29:20 -0400

Fix webtiles compilation.
The change of player_under_penance from returning a bool to an int
broke a template instantiation that required two arguments to be
the same type.

--------------------------------------------------------------------------------
1cebcb06b4 | Chris Campbell | 2013-07-28 22:58:51 +0100

Don't rebrand to brands that your god hates

--------------------------------------------------------------------------------
beff8de9a4 | Chris Campbell | 2013-07-28 22:39:02 +0100

Increase vorpal brand damage to from 1/8 to 1/6 on average
Still weaker than elemental brands against non-resistant enemies, but
stronger against enemies with 1 level of resistance.

--------------------------------------------------------------------------------
026feb9927 | Chris Campbell | 2013-07-28 22:05:42 +0100

Fix vorpalisation explosion colours being random

--------------------------------------------------------------------------------
cb1013aeb5 | Chris Campbell | 2013-07-28 22:04:47 +0100

Let vorpalise weapon rebrand weapons (argonaut)

--------------------------------------------------------------------------------
40d0fac4d0 | Chris Campbell | 2013-07-28 20:58:00 +0100

Don't reduce dragon breath accuracy when wielding dragonslaying
It's a strange, minor effect that doesn't make much sense (the
justification that the monster avoids looking at the foe doesn't seem
to hold up since they cope in melee just fine).

--------------------------------------------------------------------------------
d93e8f602c | Chris Campbell | 2013-07-28 20:58:00 +0100

Don't generate scythes of reaping
Nobody would use one anyway, and this way reaping is unique to
the Sword of Zonguldrok.

--------------------------------------------------------------------------------
99c7b41c8c | Chris Campbell | 2013-07-28 20:57:59 +0100

Adjust Gargoyle air/earth apts to -2/+2

--------------------------------------------------------------------------------
d34c657c4e | Brendan Hickey | 2013-07-28 12:11:41 -0700

Replace 'you.penance' checks with function calls
Replace you.penance[FOO] with player_under_penance[FOO].

--------------------------------------------------------------------------------
92a6f35f33 | Chris Oelmueller | 2013-07-28 14:35:54 -0400

Do not generate hammers unless defined in a vault
This sets their item rarity to 0 and disallows monsters to spawn with a
hammer as weapon. Yiuf was not harmed in the process.

Their weight of 20 has been redistributed to 19 as follows:
- hand axes (+6) which have the exact same stats
- clubs (+5)
- whips (+5)
- flails (+3)

I also considered a mapping like clubs (+10), maces (+5), flails (+3),
whips (+2) instead but ultimately went for hand axes as suitable filler
because of the exact same stats.

--------------------------------------------------------------------------------
d8946ff53f | Chris Oelmueller | 2013-07-28 14:34:39 -0400

Make a cantrip message substantially less confusing
The monster "looks stronger" actually has a meaning in crawl too, and
many players have asked about what it would mean when used as cantrip.

--------------------------------------------------------------------------------
cce9a79def | Neil Moore | 2013-07-28 12:53:30 -0400

Don't pretend &=~ is a single operator.

--------------------------------------------------------------------------------
a2406f0aad | Chris Oelmueller | 2013-07-28 12:52:45 -0400

Pad some ternary operators with spaces on the left
While this is not explicitly mentioned as a rule in coding_conventions,
all examples listed there apply it as well. The dungeon.cc chunk did
overflow max. columns before already, but could still be looked at.

--------------------------------------------------------------------------------
f61e71f529 | Neil Moore | 2013-07-28 12:16:33 -0400

Don't crash when returning to an level with scrying active (#7387)
The player position is (0,0) in this case, while vlos still uses the
location from the last level.  This caused tile_draw_map_cell (called
from level load) to refer to locations far outside the show area.
Rather than forcing you.pos() and vlos to be in sync at this point
during level load (which could e.g. reveal the upper left corner of the
map), we take the easy way out and prevent a player at (0,0) from seeing
anything (outside arena of course).

--------------------------------------------------------------------------------
cc0fb03b9e | Brendan Hickey | 2013-07-28 00:37:53 -0700

Refactor 'you.religion' checks.
Pull 'you.religion [!=]= FOO' checks into a function: you_worship(FOO).
This change is part of a large plan to clean up religion.

--------------------------------------------------------------------------------
772cbec247 | Adam Borowski | 2013-07-28 07:30:48 +0200

Remove a 402 years old fart joke.
(Purging now unused desc.)

--------------------------------------------------------------------------------
76fc0d8475 | Adam Borowski | 2013-07-28 07:30:48 +0200

Whitespace/brace fixes.

--------------------------------------------------------------------------------
c238810542 | Florian Diebold | 2013-07-27 22:02:52 +0200

Fix the Webtiles monster list (#7332).
last_client_id is a static variable (used to determine the next client
id to assign), it shouldn't be reset for every monster.

--------------------------------------------------------------------------------
1f6edf497f | Adam Borowski | 2013-07-27 02:31:17 +0200

Add item_rune to the options guide.

--------------------------------------------------------------------------------
e89d11f4f0 | Adam Borowski | 2013-07-26 21:52:26 +0200

Make spiny worms, snapping turtles, guardian mummies speed 9 (ChrisOelmueller)
I have doubts about guardian mummies: perhaps speed 10 instead would be
better?

I dislike other changes in that patch:
* no caster effectively have their listed speed
* I like speed 11 more than 12: doesn't stand out vs 10 that much, yet kills
  pillar dancing dead
* tentacled starspawn live in a place that doesn't allow any long kiting,
  their speed is actually meaningful

--------------------------------------------------------------------------------
6143d70c89 | Adam Borowski | 2013-07-26 21:16:12 +0200

Remove gas traps.
They spawned only randomly (never inside designed vaults), and required lua
part is already gone.

They were actually the best among mechanical traps, making them least
deserving of getting axed -- but then, they don't fit in ZotDef.

--------------------------------------------------------------------------------
eb4a094e96 | Adam Borowski | 2013-07-25 14:45:49 +0200

SDL 2.0 always obeys system key repeat settings.
The option to set it is neither needed nor supported.  Which is good if
you want consistency with about every other program on your box, and bad
if you want to fine-tune Crawl differently.

--------------------------------------------------------------------------------
5780157ce8 | Adam Borowski | 2013-07-25 14:45:49 +0200

No need to enable Unicode in SDL 2.0.
We need to adjust keyboard input to not use dropped interfaces, though.

--------------------------------------------------------------------------------
ca954cca6d | Adam Borowski | 2013-07-25 14:45:48 +0200

Let rltiles work with SDL2.
(Makefile changes not included for now.)

For android, we currently use a modified copy of a random alpha version of
SDL trunk, which needs a separate code path.  I have no such toolchain to
test; if it identifies itself as 2.0 rather than 1.3 then we have a problem.

Note that this is merely the "rltiles" tool rather than Crawl itself;
the latter seems to require quite significant porting.  The two next
commits are but a start of that task.

--------------------------------------------------------------------------------
2ad93012e7 | ontoclasm | 2013-07-25 12:47:52 +0100

Mosaic tiles
These likewise don't appear anywhere yet.  Maybe Temple?

--------------------------------------------------------------------------------
38c1deb8c6 | ontoclasm | 2013-07-25 12:47:48 +0100

Etched floor tiles
These currently aren't used anywhere, but could be used for vaults and so
on.

--------------------------------------------------------------------------------
f826be5e99 | Brendan Hickey | 2013-07-24 22:24:10 -0700

Add option to allow entering wizmode on turn 0.
This option allows players to enter wizmode on turn 0, even if they normally
wouldn't be able to use wizmod (e.g. dgl).

--------------------------------------------------------------------------------
340e5967f6 | Neil Moore | 2013-07-25 00:59:55 -0400

Prompt for exiting a unique panlord level through the Abyss (#7393)
And don't prompt when taking a normal abyss portal, since you will
return to the same level of Pan.

--------------------------------------------------------------------------------
93fcdc43ee | blackcustard | 2013-07-25 03:02:37 +0100

Fix a tiles crash by disallowing look up of unspawnable monsters.
The command /?M lets players look up monsters by name and description. Due
to an oversight, _find_description in command.cc sometimes returned the
dummy monster entries for sensed monsters (MONS_SENSED,
MONS_SENSED_FRIENDLY, etc.). When _find_description finds more than one
match, the matches are presented in a menu.

On console, this was strange but functional.

On tiles this resulted in a crash. The menu handling code in menu.cc
expects that all monster tiles are stored in the texture (sprite sheet)
player.png. The tiles for the sensed monster dummies are actually stored
in main.png. When the menu attempted to draw itself, it would essentially
look for the tile in the wrong place and trip this assertion in
tile_player_info in rltiles/tiledef-player.cc: "ASSERT(idx >=
TILE_MAIN_MAX && idx < TILEP_PLAYER_MAX)"

Change: _find_description now filters out all M_CANT_SPAWN monsters from
the results. The monsters with M_CANT_SPAWN are: M_PROGRAM_BUG (which was
already being explicitly filtered), axed monsters who's data is being
preserved for save compatibility (which were being implicitly filtered
because they did not have descriptions), and base type monsters like
MONS_DRAKE, MONS_MERGED_SLIME_CREATURE and MONS_PLAYER (which also lacked
descriptions).

--------------------------------------------------------------------------------
aa0373c70c | Chris Campbell | 2013-07-25 03:00:34 +0100

Replace Elf:3- with Elf:$

--------------------------------------------------------------------------------
b85c790b57 | Chris Oelmueller | 2013-07-25 03:00:19 +0100

Replace `D:x-27` with `D:x-`
More flexible wrt. changes regarding branch length.

--------------------------------------------------------------------------------
a427279f60 | Chris Oelmueller | 2013-07-25 02:48:20 +0100

Replace `Branch:x-e` with `Branch:x-` if e == $
More flexible wrt. changes regarding branch length. Branches involved:
  Elf (still was -5 for whatever reason, good example)
  Orc (-4)
  Lair
  Shoals
  Slime (-6)
  Snake
  Spider
  Swamp
  Zot

--------------------------------------------------------------------------------
beef01b5da | Chris Oelmueller | 2013-07-25 02:13:10 +0100

Replace `Branch:1-e` with `Branch` if e == $
More flexible wrt. changes regarding branch length. Branches involved:
  D (:1-27)
  Lair (:1-8)
  Orc (:1-4)

--------------------------------------------------------------------------------
10448ef86e | Chris Oelmueller | 2013-07-25 02:13:10 +0100

Replace `Branch:e` with `Branch:$` if e == $
More flexible wrt. changes regarding branch length. Branches involved:
  D (:27)
  Lair (:8)
  Coc Dis Geh Tar (:7)
  Slime (:6)
  Crypt Forest Shoals Snake Spider Swamp Zot (:5)
  Orc (:4)
  Tomb (:3)

--------------------------------------------------------------------------------
b109078f32 | Chris Oelmueller | 2013-07-25 02:13:09 +0100

Replace `Branch:*` with `Branch`
More flexible wrt. changes regarding branch length.

--------------------------------------------------------------------------------
48c4ea5e39 | ontoclasm | 2013-07-25 00:35:45 +0100

Crypt floor tile edits

--------------------------------------------------------------------------------
3c5fe84942 | ontoclasm | 2013-07-23 21:24:30 +0100

Merge branch 'crypt-tiles' into mct

--------------------------------------------------------------------------------
84b5ae858a | Chris Campbell | 2013-07-23 17:38:36 +0100

Another tutorial typo fix (ChrisOelmueller)

--------------------------------------------------------------------------------
f66bc74574 | Chris Campbell | 2013-07-23 17:27:52 +0100

Make negative levels of rF consistently give steam vulnerability (#5998)
Instead of only giving it at rF---.

--------------------------------------------------------------------------------
88fee0929b | Chris Campbell | 2013-07-23 17:27:52 +0100

Mark Discord as hasty for Chei

--------------------------------------------------------------------------------
f375626fc5 | Chris Oelmueller | 2013-07-23 17:27:51 +0100

Fix typo breaking a LOS test

--------------------------------------------------------------------------------
dd4c0038fd | Chris Oelmueller | 2013-07-23 17:27:50 +0100

Fix typos in tutorial/hints mode messages

--------------------------------------------------------------------------------
1e8a74ea0b | Chris Oelmueller | 2013-07-23 17:27:50 +0100

Fix lots of typos

--------------------------------------------------------------------------------
925c3d30d6 | Chris Oelmueller | 2013-07-23 17:27:49 +0100

Correct a few comments misguided about Elf and Vaults depth

--------------------------------------------------------------------------------
ad7eb8fa26 | Florian Diebold | 2013-07-23 17:14:59 +0100

Don't draw wall shadows on open doors.
A better solution would be drawing the wall shadow under the door
tile.

--------------------------------------------------------------------------------
1ea5b6bca5 | Florian Diebold | 2013-07-23 17:14:56 +0100

Special door tiles for crypt (white_noise, #6073).

--------------------------------------------------------------------------------
cbec45d423 | Florian Diebold | 2013-07-23 17:09:50 +0100

Make wall shadows darker in crypt.

--------------------------------------------------------------------------------
5ce3bfb789 | Florian Diebold | 2013-07-23 17:09:43 +0100

white_noise's recolored crypt tiles (#6073).

--------------------------------------------------------------------------------
688a8de092 | ontoclasm | 2013-07-23 16:12:45 +0100

Bog body (bloax)

--------------------------------------------------------------------------------
18f770e2b0 | ontoclasm | 2013-07-23 16:12:42 +0100

Alter some abyss wall/floor tile colors

--------------------------------------------------------------------------------
5f0fbe26ea | Neil Moore | 2013-07-22 23:14:27 -0400

Fix formula for footless Fedhas faithful (#7389)

--------------------------------------------------------------------------------
c40e354919 | Neil Moore | 2013-07-22 22:58:37 -0400

Call cat feet "paws" (CreepingCrawled)
It seemed somewhat inconsistent to use the word for their front feet but
not their hind ones.

--------------------------------------------------------------------------------
98e2d983b6 | ontoclasm | 2013-07-23 02:36:01 +0100

Deathcap tile

--------------------------------------------------------------------------------
6be106094e | Chris Campbell | 2013-07-22 18:56:02 +0100

Mention draining on the m help screen (#7379)

--------------------------------------------------------------------------------
58c4dee878 | Chris Campbell | 2013-07-22 10:38:34 +0100

Make corporeal undead only eligible for one recite type
Reduces the annoyance of having to pick recite types when reciting
to lone zombies (at the minor cost of being unable to affect both
corporeal/incorporeal undead at the same time with the weaker
recitation).

--------------------------------------------------------------------------------
6b822ec8f2 | Chris Campbell | 2013-07-22 10:38:34 +0100

Mark AF_PLAGUE as an unclean attack flavour

--------------------------------------------------------------------------------
6737e4e6b8 | Chris Campbell | 2013-07-22 10:38:33 +0100

Don't let Dissolution abjure
Since his casting message is something about "gurgling a call to fellow
slimes".

--------------------------------------------------------------------------------
7ea49801ec | Brendan Hickey | 2013-07-21 23:00:18 -0700

Er, um. Fix abyssal stair chance

--------------------------------------------------------------------------------
bd5b6ca918 | Brendan Hickey | 2013-07-21 22:39:48 -0700

Increase Abyssal Stair chance by ~30%

--------------------------------------------------------------------------------
11650ddb26 | ontoclasm | 2013-07-21 23:48:26 +0100

Grody undead tiles (bloax)

--------------------------------------------------------------------------------
22647aa256 | Adam Borowski | 2013-07-21 23:04:35 +0200

Use a strict type, remove dead code.

--------------------------------------------------------------------------------
b2c1e2a065 | Adam Borowski | 2013-07-21 21:38:46 +0200

Use a strict type.
This reveals that bogus values were passed to ouch(), fortunately negative
and thus harmless.

--------------------------------------------------------------------------------
dc2f9413d6 | Adam Borowski | 2013-07-21 21:27:03 +0200

Fix a critically important (perhaps) misalignment of comments

--------------------------------------------------------------------------------
11d11102b6 | Adam Borowski | 2013-07-21 21:20:39 +0200

Unmarry rods and clubs.
Rods now have a dedicated base item, like staves.  It has the same stats as
a club but doesn't have stab nor stun (not a change; more obvious this way),
for now the only benefit is rod melee being listed correctly in character
dumps.

--------------------------------------------------------------------------------
20bd4eced6 | Adam Borowski | 2013-07-21 21:20:39 +0200

Give the desc of Traps a grep attractor.
Not sure if it's even needed anymore.

--------------------------------------------------------------------------------
de561d620e | Adam Borowski | 2013-07-21 21:20:39 +0200

Axe a comment about a rejected food idea.
It would lead to complexity for no gain.
The relation between size and hunger is:
-2: 1, 2
-1: 2, 3
 0: 0, 2, 3
+1: 4, 8
which can't be written as a simple formula (it's not even a bijection),
while hunger description would need to be special-cased.

--------------------------------------------------------------------------------
42ac50ae65 | Neil Moore | 2013-07-21 02:41:38 -0400

Fix formatting.

--------------------------------------------------------------------------------
1078ce87f6 | Steve Melenchuk | 2013-07-20 22:46:48 -0600

Several Vaults:$ quadrants.
The majority of these contain quite a few doors for maximum
warden-fighting interest.

--------------------------------------------------------------------------------
8cb4bbe1a1 | Steve Melenchuk | 2013-07-20 22:45:44 -0600

Fix an inaccurate comments about Vaults quadrant size.
They're 27x23, not 27x24.

Amusingly, this comment has been inaccurate ever since subvaults were
introduced in 4fe67e14, which hasn't stopped vaultmakers in the
slightest.

--------------------------------------------------------------------------------
bff2c5ad3e | Steve Melenchuk | 2013-07-20 22:43:19 -0600

Fix a typo in a Vaults:$ quadrant vault.
This probably prevented the rune from ever being placed in said
quadrant.

--------------------------------------------------------------------------------
242ae62b95 | Neil Moore | 2013-07-20 10:22:54 -0400

Mention how to destroy trees in their descriptions (felli)

--------------------------------------------------------------------------------
c765b08ad9 | Steve Melenchuk | 2013-07-19 19:41:27 -0600

Allow slime creatures to merge and split again.
Oops.

--------------------------------------------------------------------------------
b55b161e8c | Adam Borowski | 2013-07-20 02:02:57 +0200

Remove a claim that Heroism improves your skill with traps.

--------------------------------------------------------------------------------
2cb6485c01 | Adam Borowski | 2013-07-20 01:58:06 +0200

Purge descs for removed stuff.
Note: the incantation to do so is:
for x in `ls dat/descript/|grep -v txt`;do util/db_lint "$x";done|
  grep Unused|while IFS=: read f w;do i=`echo "$w"|cut -d"'" -f 2`;
  echo "[$f] [$i]";sed -i "/$i/,/%%%%/d" "$f";done

--------------------------------------------------------------------------------
412eae1ab4 | Adam Borowski | 2013-07-20 01:44:45 +0200

Formatting fixes.

--------------------------------------------------------------------------------
5769dcec22 | Neil Moore | 2013-07-19 18:53:05 -0400

Give a better message when the terminal is too small for the layout.
It was possible to get e.g. "Terminal too small (80,25); need at least
(79,24)".  Now we have a slightly different message when the problem
is the layout rather than the absolute (79,24) limit; and we include
the actual required size.

The required size reported by this commit isn't perfect because there
doesn't seem to be a good way of asking for the true minimum size along
a sufficiently-large axis (leftover_x() is zero even though things could
be shrunk).  We currently report the absolute minimum for such axes,
even though the true limit could in fact be somewhere between that and
the current size.

--------------------------------------------------------------------------------
530eb38130 | Steve Melenchuk | 2013-07-19 11:54:55 -0600

nooodl-y vaults (#7353).
This isn't the complete set (in particular the Slime vaults are
excluded), and some tweaks have been made to the others.

--------------------------------------------------------------------------------
3d5b449c0f | Steve Melenchuk | 2013-07-19 11:44:51 -0600

Remove a Dwarf reference from Zigsprint.
This was occasionally preventing the game from starting.

--------------------------------------------------------------------------------
eaae11492e | DracoOmega | 2013-07-19 01:32:35 -0230

Adjust the list of spells which trigger battlesphere
Several times it has been suggested that it work with directed damaging
spells in general and not just directed CONJURATIONS (which had previously
excluded such conjuration-like things as sandblast and non-damaging things
like mephitic cloud).

This commit makes meph no longer trigger it, but adds sandblast, freeze,
airstrike, and sticky flame to the list.

Also I have additionally removed orb of destruction, since I feel the
delayed nature of the large orb is sort of awkward in consort with the
immediate battlesphere blast, but I am quite open to reverting this if
someone disagrees.

--------------------------------------------------------------------------------
d9a9de8a07 | DracoOmega | 2013-07-19 01:24:56 -0230

Allow Searing Ray to trigger Battlesphere with each successive attack

--------------------------------------------------------------------------------
4c86f189f6 | Chris Campbell | 2013-07-18 19:43:34 +0100

Fix some error messages on startup

--------------------------------------------------------------------------------
552a4722a1 | Adam Borowski | 2013-07-18 01:25:53 +0200

Correct a widespread typo.

--------------------------------------------------------------------------------
19e1bf6eeb | Adam Borowski | 2013-07-18 01:25:53 +0200

Don't let --mapstat try to build Dwarf maps.
With all layouts being opt-in, there's none for it, which causes a crash.

--------------------------------------------------------------------------------
0d6b90aed9 | Captain Haddock | 2013-07-17 22:37:23 +0100

Corrosion msg now uses correct enchantment level
The corrosion message displays current enchantment level rather than old
enchantment level.
e.g When a jelly corrodes your +1 robe to a +0 robe, you see
"The acid corrodes your +1 robe" instead of "The acid corrodes your +0"

--------------------------------------------------------------------------------
f2498f4b3b | Adam Borowski | 2013-07-17 22:44:41 +0200

Add a compat lua callback for removed cloud traps.

--------------------------------------------------------------------------------
6040625265 | Chris Campbell | 2013-07-17 20:40:37 +0100

Remove some plain damage Zot trap effects, add draining

--------------------------------------------------------------------------------
3b61b3c9b3 | Chris Campbell | 2013-07-17 20:40:36 +0100

Remove traps from entry vaults

--------------------------------------------------------------------------------
78e597d2eb | Chris Campbell | 2013-07-17 20:40:35 +0100

Do place random Zot traps
They have their own list of effects which is much easier to tweak now
if necessary (and already contains plenty of relevant bad effects such
as item destruction, mutation, monster summons). Possibly the plain
damage effects should be removed.

--------------------------------------------------------------------------------
60ee9b898e | Adam Borowski | 2013-07-17 19:46:08 +0200

Axe an ebony casket sighting...

--------------------------------------------------------------------------------
8ce32190ae | Adam Borowski | 2013-07-17 19:16:23 +0200

Halt recite on abandoning Zin.

--------------------------------------------------------------------------------
eb1759256f | Adam Borowski | 2013-07-17 18:26:25 +0200

Halt recite on voluntary shouts, Zin abilities and quaffing.
A sad thing the invocation flag is not available when you actually start
using an ability so I invoke the recite stop by hand... but then, it's
not like you can use other gods' invocations while reciting.

The list is probably woefully incomplete...

--------------------------------------------------------------------------------
d6d3c1c715 | Adam Borowski | 2013-07-17 17:56:53 +0200

Ensure no more sightings of spiked flails and empty ebony caskets.
Spiked flail tiles can be reused for randart regular flails, thus moving
them to UNUSED/ for now, for ortoslon's and co decision.

--------------------------------------------------------------------------------
45dcbe7e47 | Adam Borowski | 2013-07-17 17:41:33 +0200

Remove a crapload of references to removed things.
The Dwarf branch, traps skill, recite, even a spiked flail sighting.

--------------------------------------------------------------------------------
aca0573f56 | Adam Borowski | 2013-07-17 17:26:18 +0200

Let cloud traps follow their mechanical brethren.
What with the spider basket and rats?

--------------------------------------------------------------------------------
0deee0c0e4 | Adam Borowski | 2013-07-17 17:26:18 +0200

Don't place boring traps randomly.
"Boring" is defined here as without a strategic meaning.  Teleport is
good as it's likely to put you in trouble, shafts move you to a whole
new level.  Not sure about alarm traps: out of vaults, they might still
be mostly meaningless.

For now, all traps still exist, for placing in vaults and for ZotDef.
Removal in the future would be good...

--------------------------------------------------------------------------------
51611e4443 | Adam Borowski | 2013-07-17 17:12:24 +0200

Remove the Traps skill.

--------------------------------------------------------------------------------
b83a2bb2b9 | Adam Borowski | 2013-07-17 17:12:10 +0200

Add a missing pair of braces.
Sticking to a strict formatting scheme is good -- faster parsing -- but then,
if you deviate, people can get confused.

--------------------------------------------------------------------------------
2eac45d2c7 | Adam Borowski | 2013-07-17 17:12:10 +0200

Don't give wanderers the Traps skill.
It was used in a number of places as a fallback.

--------------------------------------------------------------------------------
db1b99369f | Adam Borowski | 2013-07-17 16:48:14 +0200

Let everyone spot traps, at XL/3 skill.
With 4chan folks around, we must be careful.

--------------------------------------------------------------------------------
85e2785f6f | Adam Borowski | 2013-07-17 16:48:14 +0200

Simplify a few distributions.
I wonder why I care to preserve them exactly.  Anyway, none of these has
changed, they're merely written in a more readable way.

--------------------------------------------------------------------------------
f42256aab9 | Adam Borowski | 2013-07-17 16:48:14 +0200

Purge Pan's desc.

--------------------------------------------------------------------------------
7a6aca0ad3 | Adam Borowski | 2013-07-17 15:29:31 +0200

Make enhancer staves and rods of striking obey suppression.
Neither weapon brands nor evokables work there.

--------------------------------------------------------------------------------
9d5dfd766d | Chris Campbell | 2013-07-17 14:17:45 +0100

Rewording cont'd

--------------------------------------------------------------------------------
1250404b1e | Chris Campbell | 2013-07-17 13:28:46 +0100

Adjust rod of striking messages

--------------------------------------------------------------------------------
031566bca7 | Brendan Hickey | 2013-07-16 22:30:51 -0700

Fix enum versioning error in 409f2ac

--------------------------------------------------------------------------------
a447c6a39a | Steve Melenchuk | 2013-07-16 22:42:42 -0600

Handle setting absurd recite durations in wizmode more gracefully.
Pithy debugging text to follow at some point if I can think of something
sufficiently pithy.

--------------------------------------------------------------------------------
11dc6ff47a | Steve Melenchuk | 2013-07-16 22:34:12 -0600

Disallow reciting again when you're already reciting.

--------------------------------------------------------------------------------
e048cbf1f5 | Steve Melenchuk | 2013-07-16 22:33:59 -0600

Breath weapons also interrupt recitation.

--------------------------------------------------------------------------------
8dda2b7e6c | Steve Melenchuk | 2013-07-16 22:29:36 -0600

Don't display Breath when reciting; just Recite.
Also fixes the breath timer getting set twice.

--------------------------------------------------------------------------------
18489159b6 | Steve Melenchuk | 2013-07-16 21:52:26 -0600

Turn Recite into a duration instead of a delay.
It triggers three times over 30 aut, just as the current implementation
does, only the player can otherwise act during that time.

Reading a scroll or casting a spell interrupts the recitation - you
can't pronounce two things at once, after all.

--------------------------------------------------------------------------------
334f978988 | Adam Borowski | 2013-07-17 02:05:44 +0200

Replace @a_player_genus@ in weapon noises.
Yay for monster speech having a list of replacements on its own.

--------------------------------------------------------------------------------
33d5514f9e | Adam Borowski | 2013-07-17 02:00:51 +0200

Revert accidental unconstification.
An interface to allow choosing between charged/empty/recharging would be
nice but I don't volunteer here: one-off code was enough for my purposes.
I just failed to restore this single line.

--------------------------------------------------------------------------------
0e7fb94969 | Adam Borowski | 2013-07-17 01:29:11 +0200

Give the rod of striking SPELL_MELEE.  It's clobberin' time!
Note: a +9 rod with 27 Evoc recharges 0.52 mana per 10 aut, ie,
0.312 per 6 aut (a club and thus rod's mindelay).

Should be roughly balanced all the way from D:1 (but not as a starting
weapon) to endgame, although its usefulness depends on the character.
The sweet spot is 14 M&F 27 Evoc 0 Earth, where it beats all regular
competition.  For other builds, other top-end choices (dwhip, 2-handers,
enhancer staves) are a no-brainer, but having one niche where it shines
looks right.

Obviously, it's possible I'm on crack, so here are some numbers:
+9 dwhip {nothing}       21
+9 great mace {nothing}  23
+9 rod [charged]         32 (short fight)
+9 rod [empty]            8
-- sustained             15
staff of earth           34
staff of non-resisted    42

--------------------------------------------------------------------------------
86761251c6 | Steve Melenchuk | 2013-07-16 14:38:18 -0600

A couple of abstract vaults.
Two of these can also place as Zot entries.

--------------------------------------------------------------------------------
57b46543c2 | Adam Borowski | 2013-07-16 21:35:50 +0200

s/berserk// in the desc of needles of frenzy as well.

--------------------------------------------------------------------------------
cd8fa31a16 | Adam Borowski | 2013-07-16 21:31:03 +0200

Don't let gargoyles become resistant to poison via mutating.
Drop the mutation in old saves as well.

--------------------------------------------------------------------------------
b4ab1ab577 | Adam Borowski | 2013-07-16 20:55:19 +0200

Deprive cpt. Obvious of some comments.

--------------------------------------------------------------------------------
450ae40ee5 | Adam Borowski | 2013-07-16 20:55:19 +0200

Don't call needles of frenzy "berserk".

--------------------------------------------------------------------------------
7d6dd4ae4f | Adam Borowski | 2013-07-16 20:55:18 +0200

Remove Pan.
With infinite levels, it leads to too much scumming.
Oh, wait...

--------------------------------------------------------------------------------
409f2aceb6 | Adam Borowski | 2013-07-16 20:55:18 +0200

Let homunculi and souplings fizz away.
Easy to revert if anyone feels like actually implementing them.

--------------------------------------------------------------------------------
8f5de329af | Chris Campbell | 2013-07-16 18:10:24 +0100

Cancel Searing Ray when resting

--------------------------------------------------------------------------------
a0ae0798b3 | Chris Campbell | 2013-07-16 17:31:10 +0100

Remove gloom
Functionally it wasn't very different from regular fog, except that it
had an annoying interface (no glyph, recolouring things that were
standing in it).

--------------------------------------------------------------------------------
e8bf1fdf90 | Adam Borowski | 2013-07-16 16:45:20 +0200

A .de quote for the Temple, erase a copy of .pl misplaced as .en.
Thanks for MagicTigger for finding a good .de translation; I've been
unable to find an .en one, and I'm unable to translate poetry myself,
especially if one wants an archaic feel.  (Yeah, yeah, when Krasicki
wrote it, it was not archaic.)

Not sure why it landed in .en, there might be a problem with Transifex
sync process when a quote exists in a language but not in .en.

--------------------------------------------------------------------------------
5caa1cca98 | Adam Borowski | 2013-07-16 16:33:58 +0200

Revert djinn not having hair.
I can't recall seeing a single depiction without facial hair of some kind.
For example, while the first several hundred of google images include some
bald ones, all who are bald have a beard instead.

--------------------------------------------------------------------------------
ed3b67e992 | Adam Borowski | 2013-07-16 16:07:03 +0200

Axe two uses of los_glob.
They hinder attempts of untangling the iterator/los mess.

--------------------------------------------------------------------------------
c8a444dcd6 | Adam Borowski | 2013-07-16 16:07:03 +0200

Fix the player not getting hit by collateral sticky flame splash.
This is not yet used because monster sticky splash being broken.  Fixing it
is a matter of a single line (added, commented out) but I'm not enabling it
yet because of tracer inadequacies.

--------------------------------------------------------------------------------
7dda1f6470 | Adam Borowski | 2013-07-16 16:07:03 +0200

Drop a pointless fountain rename.
It had no description either.

--------------------------------------------------------------------------------
a2c6faf58c | Adam Borowski | 2013-07-16 16:07:03 +0200

Drop buggy pointless statue renames.
They left lingering names even after being destroyed.  We could use
set_feature_name() instead, but they served no purpose other than blocking
autoexplore from blundering into flames in the past.

--------------------------------------------------------------------------------
7d30827743 | Chris Campbell | 2013-07-16 15:05:58 +0100

Add wand charge draining as a Zot trap effect
Has a 50% chance to affect each wand carried and drains charges based
on the maximum capacity of the wand (from 1-3 for healing, hasting etc
up to 1-8 for magic darts, confusion etc).

--------------------------------------------------------------------------------
0223529bb4 | Chris Campbell | 2013-07-16 15:05:58 +0100

Remove bonus strength from Lichform
Having carrying capacity change frequently when switching in and out
of such a form is more annoying than helpful. Also remove the (tiny)
stealth bonus.

--------------------------------------------------------------------------------
80d31a4233 | Chris Campbell | 2013-07-16 15:05:57 +0100

Reword a statue form message
"Ponderous" specifically refers to slowed movement (even if the ego
mostly doesn't exist now), whereas statue form slows all actions.

--------------------------------------------------------------------------------
f0e8d29340 | Chris Campbell | 2013-07-16 15:05:56 +0100

Djinni, gargoyles, lava orcs (???) don't have hair
Probably.

--------------------------------------------------------------------------------
d1fab9126b | Chris Campbell | 2013-07-16 15:05:56 +0100

Fix gods not caring about deaths of elementals and other nonliving creatures
Deaths of "objects" (dancing weapons mainly) are stil fine.

--------------------------------------------------------------------------------
ed6c583e51 | Steve Melenchuk | 2013-07-15 22:41:16 -0600

New spell: Discord.
Level 8 Hexes; mass-frenzies everything in LOS.

Found in Book of Enchantments.

--------------------------------------------------------------------------------
905040bb94 | Steve Melenchuk | 2013-07-15 22:41:16 -0600

Don't de-neutral frenzied monsters on player attacks.
This behaviour made it hard to track what was frenzied and what wasn't.

The interface for this could probably be presented better, anyway.

--------------------------------------------------------------------------------
0d004d7d18 | Steve Melenchuk | 2013-07-15 22:41:11 -0600

Don't equate frenzy with berserk; let non-natural monsters frenzy.
This removes the implicit haste, might, and HP boost associated with
frenzy.  Frenzying a natural monster also hastes and mights them;
frenzying a non-natural monster will simply make them attack nearby
monsters indiscriminately without any combat enhancements.

--------------------------------------------------------------------------------
e4b7ec4c85 | Steve Melenchuk | 2013-07-15 21:56:27 -0600

Credit player for frenzy kills.
Similar to confusion in that respect.

--------------------------------------------------------------------------------
80827d57a2 | Steve Melenchuk | 2013-07-15 21:56:22 -0600

Make frenzied monsters indiscriminately attack any opponent they see.
This includes the player, of course.

--------------------------------------------------------------------------------
818e1a6594 | DracoOmega | 2013-07-15 23:23:37 -0230

Let wizmode super-heal cure draining
This doesn't fix fsiming against something with draining melee giving
bad data, but at least you can recover afterward without having to
create a ton of monsters and then kill them.

--------------------------------------------------------------------------------
b835d1fe7e | DracoOmega | 2013-07-15 23:23:00 -0230

Adjust OTR description and messages a little

--------------------------------------------------------------------------------
2244ca4d3f | DracoOmega | 2013-07-15 23:14:01 -0230

Interrupt Searing Ray when afflicted by a number of effects
Currently paralysis, confusion, petrification, sleep, banishment,
berserking, and being moved from your current position in some manner
(ie: blinking, teleport, knockback)

--------------------------------------------------------------------------------
4bf294a597 | DracoOmega | 2013-07-15 21:49:16 -0230

Cap Fulminant Prism at 200 power instead of 100
I doubt this will make much practical difference to many people, but
200 seems to be more the norm than 100 for a level 5 damage spell
and the spell itself hasn't shown any sign of being overly dominant.

--------------------------------------------------------------------------------
97d3840377 | DracoOmega | 2013-07-15 21:49:15 -0230

Spellbook adjustments
Swap Force Lance for Searing Ray in the Book of Conjurations, add
upgraded Force Lance to the Book of Wizardry, replacing Lightning Bolt.

Also add Fulminant Prism to the Book of Power, replacing Poisonous
Cloud (which already has two other sources). This is a fun spell that
still has midgame usefulness, so it may see a bit more play if it's
more common.

--------------------------------------------------------------------------------
276d7396d4 | DracoOmega | 2013-07-15 21:47:09 -0230

Raise Force Lance to level 5, buff accordingly
Let's see if the spell can see a little more general utility use at
a higher level. Range is increased from 3 to 4, and damage is boosted
considerably (though it is still noticably lower than similar level
conjurations).

It's possible it will still be underwhelming and/or impractical
compared to other options, but we'll consider it provisional, pending
actual playtesting.

--------------------------------------------------------------------------------
f70f79a1d8 | DracoOmega | 2013-07-15 21:45:43 -0230

New player spell: Searing Ray
This is a level 2 pure conjurations spell, intended to replace Force
Lance in the conjurer starting book.

While Force Lance had a decent concept, its role in the book was sort
of awkward. Its effect was unreliable, usable only at extreme close
range, and cost twice as much as magic dart at a time where mp is at
a premium, yet didn't actually hurt twice as much (and could miss).
For many characters, by the time you would have enough mp and spellpower
to make good use of it, you had already outgrown it for better spells.
This spell is aimed to better fill a transitional niche between magic
dart and the stronger conjurations, without rendering the former
obsolete, either.

Searing Ray is a close range spell (though not quite AS close range)
which fires a continuous ray of energy that starts out weak, but grows
in power over time as it is channelled. Mechanically, the caster gains
a 'Ray' status once they fire it, and each subsequent turn that they
perform no other action, the searing ray refires along the original beam
path. It will do this 3 times, each more powerful than the last, and at
the most powerful stage, the ray becomes a penetrating beam.

1 mp is charged for each turn the ray is maintained (and it will end
prematurely if you run out), and the player is offered a warning prompt
and chance to cancel if the beam path becomes unsafe (ie: an ally wandered
into it) but it cannot be reaimed without starting the channeling from
the beginning.

The final stage is quite powerful for a level 2 spell, but it also
requires remaining stationary at a close range to your target for 4 turns,
and for them not to move out of the beam path during this (and also costs
5 mp in total). The initial stages, in contrast, are weaker than other
level 2 conjurations like throw frost or flame.

Numbers probably need more adjusting, but I think the basic concept fills
the level 2 slot in the Book of Conjurations better than Force Lance did.

--------------------------------------------------------------------------------
94e50615ac | DracoOmega | 2013-07-15 21:45:42 -0230

Nerf the Staff of Olgreb a little
Reduce the power with which OTR and Venom Bolt are cast, and make
it require notably more skill to get consistant venom bolts from
the staff. (This is at least partially in compensation for the
OTR component of the staff being much better now.)

--------------------------------------------------------------------------------
2f374a45d8 | DracoOmega | 2013-07-15 21:45:40 -0230

Reduce OTR self-poison, let Staff of Olgreb provide immunity to it
With the self-poison bypassing rPois and being as severe as it was,
it was fairly impractical to use it without cure poison, which made
the Staff of Olgreb awkward to use at all. It seems thematic that
Olgreb's own staff could provide shelter from his signiture spell,
so it now prevents all self-poisoning from your own OTR (but only
normal rPois against anyone else's).

Reducing poison severity should make OTR from things like venom cards
or a rod of venom a little less dangerous, as well.

--------------------------------------------------------------------------------
f5b38a3af6 | DracoOmega | 2013-07-15 21:45:39 -0230

Make new OTR properly violate sanctuary

--------------------------------------------------------------------------------
f46952a8f5 | DracoOmega | 2013-07-15 21:45:38 -0230

Purge some code for old OTR

--------------------------------------------------------------------------------
c2f50191af | DracoOmega | 2013-07-15 21:45:36 -0230

Revamp Olgreb's Toxic Radiance
OTR was a very lackluster spell, even in the venom mage starting book,
where it had a relatively captive audience. This is aimed to improve
that situation without directly turning it into 'refridge, except
poison'.

OTR now causes the caster to radiate a toxic aura over the course of
several turns after casting (extendable by recasting), and inflicts
a small amount of impact damage in addition to a (weaker) lingering
poison. The damage done decreases with distance from the caster, doing
around 35% damage at the very edge of LoS.

While it inflicts no impact damage upon a player casting it, the poison
status thus inflicted now bypasses rPois. This makes it somewhat more
hazardous to some people's health (perhaps commensurate with its
increased power) but also synergizes more nicely with cure poison.

Finally, OTR no longer has the curious property of being unable to
hit invisible creatures, even when you can see them.

--------------------------------------------------------------------------------
645dfb413e | Chris Campbell | 2013-07-15 23:49:54 +0100

Correctly display whether oklobs, statues etc are stabbable (#7338)
There doesn't seem to be any reason to hide the information, and
presumably oklobs do something with their acid-spitty bits that makes
it clear when they've noticed you.

--------------------------------------------------------------------------------
211ab955ad | Neil Moore | 2013-07-15 15:54:59 -0400

Don't crash on Malign Offering a monster to death.
... and don't make the healing depend on blindness and invisibility.

We were using an actor_iterator around the victim, but after the victim
took (perhaps lethal) damage.  If the caster was invisible, this meant
checking whether the dead victim can see invisible and thereby
triggering an assertion.  See for example:

  http://dobrazupa.org/morgue/dialectric/crash-dialectric-20130715-183112.txt
    !lm dialectric sprint crash 1 -log

Instead, pass in the victim's los_no_trans.  This is the usual line-of-
effect check, blocked by glass and smoke but still counting invisible
monsters.  This should not only fix the crash, but also make MO's
healing a little more consistent with other effects.

If it really is desired to allow soul juice to pass through glass,
change victim->get_los_no_trans() to victim->get_los().

--------------------------------------------------------------------------------
be12424dbf | Adam Borowski | 2013-07-15 16:41:41 +0200

Fix a memory+speed leak if features are redefined over and over.
A map can recycle overwritten keys, a vector can't.

--------------------------------------------------------------------------------
6981088144 | Adam Borowski | 2013-07-15 16:11:19 +0200

Nerf Dj slings and crossbows apts.
No reason for them to be superior crossbowmen.

My theme is for them to be non-dextrous, which makes them bad at bows
and throwing, but this doesn't mean they should be better at crossbows
than humans.  An elevated position might help, but not by much.

--------------------------------------------------------------------------------
c2e9c25071 | Neil Moore | 2013-07-15 07:51:08 -0400

Correct syntax.txt corpse item spec examples.
Because of vagaries of itemspec parsing, "corpse", "chunk", etc. must
be at the end of the spec. Place the never_decay and rotting tags at
the beginning of their example itemspecs instead of the end.

--------------------------------------------------------------------------------
2bedc1c0da | Neil Moore | 2013-07-15 07:43:00 -0400

New tag "rotting" for corpse/chunk itemspecs.
Places an already-rotten item; can be combined with never_decay (or
dgn.delayed_decay()) to keep it from decaying further.

--------------------------------------------------------------------------------
6e46766024 | Pete Hurst | 2013-07-15 07:38:45 +0100

Actually don't cap shadow creatures from the scroll

--------------------------------------------------------------------------------
fa67c8a921 | ontoclasm | 2013-07-15 02:22:26 +0100

Better sealed upstair tile

--------------------------------------------------------------------------------
86b8914abd | ontoclasm | 2013-07-15 02:11:09 +0100

Sealed stair tiles

--------------------------------------------------------------------------------
65d0251271 | ontoclasm | 2013-07-15 01:10:35 +0100

Wellspring tile

--------------------------------------------------------------------------------
6e24c03402 | Adam Borowski | 2013-07-15 01:55:52 +0200

Show all forgotten map data as magic-mapped.
It is enough to both force re-autoexplore, and to show the player
old vs new areas.  I see no reason to keep a method of forgetting
the map completely.

--------------------------------------------------------------------------------
2f64357b89 | Adam Borowski | 2013-07-15 01:55:52 +0200

Save forgotten maps when saving/restoring.

--------------------------------------------------------------------------------
c50a79afaf | Adam Borowski | 2013-07-15 01:55:52 +0200

Allow map forgotten via X^F to be restored with X^U.

--------------------------------------------------------------------------------
620b36ed2e | Adam Borowski | 2013-07-15 01:55:51 +0200

Don't use + on a bitfield.

--------------------------------------------------------------------------------
733bdaab6e | Neil Moore | 2013-07-14 15:30:10 -0400

Don't crash on vampire blood acquirement.
We were checking whether the object was useless while it still had
base_type OBJ_FOOD but sub_type POT_BLOOD; the latter subtype (27)
is out of bounds for food, causing a crash. See for example:
!lm okayed vpas crash 1 -log (this was Xom "acquirement").

Fix this by overriding the object's base class in a different location.

This will need to be revisited if vampires are ever able to worship
a god who hates blood: currently blood acquirement would give random
potions in that situation.

--------------------------------------------------------------------------------
e1b3e47fc3 | blackcustard | 2013-07-14 15:02:19 -0400

Do not make monsters with resistances immune to acid on reload.
Due to a logic error, any monster that had any amount of any of the
resistances stored in monster_info.mresists or ghost_demon.resists
would get acid resistance for free during unmarshalling.

No one noticed because player acid attacks basically don't exist.

[Commiter note:
Another reason no one noticed was that this affected only ghost_demons
and monster_infos, not most monsters themselves: oklobs would stop
firing at a ghost but not another monster, even though that monster
might appear to be rAcid to the player (because of the monster_info).

Games that have been restored between 0.12-a0-1564-g53fb3a2 and parent
of this commit will still have extra rAcid for existing ghosts and on
existing saved monster_infos; this commit only affects future loads.
-neil]

--------------------------------------------------------------------------------
7eddac7bfc | Adam Borowski | 2013-07-14 17:09:51 +0200

Fix cure mut not being auto picked up by Gr/Te/Black Dr.

--------------------------------------------------------------------------------
274433d64c | Adam Borowski | 2013-07-14 17:00:30 +0200

Let potions of strong poison partially override rPois.
It's strange that many effects do so but this potion does not.
With Evaporate gone, it has no other purpose anyway.

--------------------------------------------------------------------------------
26a4de87d8 | Adam Borowski | 2013-07-14 16:49:41 +0200

Give gargoyles and statue form poison immunity.
Matches monsters; also, it feels weird to get poisoned as a stone creature.

--------------------------------------------------------------------------------
a6c3f53fc1 | Adam Borowski | 2013-07-14 16:44:17 +0200

Typo fix.

--------------------------------------------------------------------------------
0394141ca8 | Adam Borowski | 2013-07-14 16:44:17 +0200

Don't trap players in minmay_lindwurm_lava.
On D:8 or early Lair, it's likely they used a potion of flight without
realizing something is amiss.

--------------------------------------------------------------------------------
992b9cfa9f | DracoOmega | 2013-07-14 02:08:38 -0230

Allow vault wardens to seal stairways in addition to doors
Among other things, this allows their ability to have some effect
when encountered in Vaults:$.

It currently works on all non-portal stairs and hatches (including
branch entrances and exits)

--------------------------------------------------------------------------------
15f2d5cd78 | DracoOmega | 2013-07-14 02:04:12 -0230

Fix vault wardens being accidentally unable to seal runed doors

--------------------------------------------------------------------------------
bc6a47dfa3 | DracoOmega | 2013-07-14 00:57:36 -0230

Fix gargoyles accidentally missing their poison resistance

--------------------------------------------------------------------------------
a73245feea | Brendan Hickey | 2013-07-13 16:44:22 -0700

Don't frighten Fungus-form around unseen monsters

--------------------------------------------------------------------------------
4fa172de04 | DracoOmega | 2013-07-13 18:10:16 -0230

Tweak Elven Halls spawn weights
Mostly no major changes here, but low tier orcs have been removed,
higher ones made a touch more common, a few small changes to common
elf rarities (eg: summoners rarer, conjurers more frequent). High tier
elves should also be a small degree more common outside the end vault.

--------------------------------------------------------------------------------
257cfa1eb0 | DracoOmega | 2013-07-13 18:10:15 -0230

Adjust some deep elf monster XP modifiers
In response to changes to these monsters.

--------------------------------------------------------------------------------
3d286aa69a | Pete Hurst | 2013-07-13 18:10:14 -0230

Marshall spell types as short instead of byte
The number of spells has reached 256 so bytes are no longer cutting it.

Monster spells were already marshalled as short, but the first byte was
being dropped on unmarshall; some slightly ugly #ifs have been wrapped
around a function parameter to differentiate between monster and player
spell unmarshalling so this can be worked around during version 34.

--------------------------------------------------------------------------------
b991b93f2e | DracoOmega | 2013-07-13 18:10:13 -0230

Deep Elf Conjurer tweaks
The commit removes the secondary spellset for conjurers (the nuissance
version with invis and sticky flame), and then removes the somewhat
odd presence of cantrip from the first set, along with increasing
their HD from 6 to 9.

This is aimed to make conjurers a more clear middle ground in danger
level between mages and annihilators, by improving their spellpower
and focusing more on their stronger conjurations (and one mage book
has already gained sticky flame now, too).

--------------------------------------------------------------------------------
52968190ec | DracoOmega | 2013-07-13 18:10:11 -0230

Remove Deep Elf Soldiers (plus band/vault adjustments)
Stat-wise, these were virtually identical to orc wizards in every
way (except for somewhat better equipment), very weak for the branch
they appeared in, and simply a plain worse version of another common
(and not-so-scary) monster already in that same branch.

Vault-wise, most uses of soldiers have been replaced with fighters.
Sometimes the total number of them was decreased a little, and in one
case a very early vault was shifted deeper, though most cases seem
like they could handle an outright buff without much of consequence
changing.

The contents of the deep elf bands that used them has been altered
somewhat. Fighter and knight bands are somewhat smaller, with fighters
taking up the largest part of the slack for the missing soldiers, but
there is also an increased presence of (improved) mages, along with a
few other tweaks. On the whole, there should be somewhat fewer elves
together, but the ones that are present should be more notable.

--------------------------------------------------------------------------------
842e249095 | DracoOmega | 2013-07-13 18:10:09 -0230

Revamp Deep Elf Mage spellbooks
Deep elf mages were kind of weird. They had lower HD than nearly
anything else in the branch, yet every now and again, much more
powerful spells than most of them (including, say, crystal spear
and banishment). This, of course, comes from having the exact same
spells as wizards and ogre mages (and Erolcha), but their HD meant
that banishment and paralysis were normally irrelevant on anything
with enough MR for Elf in general, and they tended to die before
doing anything else of consequence, and were generally a bit awkward
to use in vaults as well; they weren't strong enough to normally
threaten outside of fairly early on, yet possessing a few spells
perhaps too mean to want to toss early characters up against.

To differentiate their spellset from the (more common and much more
functional) ogre magi and give them a little more cohesion and
functionality, I have given them a set of five replacement books,
each modelled roughly after a player starting book (with some
consessions to spells that are either overly flashy or non-functional
on monsters). They are:

{Freeze, Throw Icicle, Summon Ice Beast}
{Bolt of Magma, Stone Arrow, Petrify}
{Mystic Blast, Slow, Summon Minor Demon, Blink}
{Flame Tongue, Throw Flame, Sticky Flame, Fireball}
{Magic Dart, Force Lance, Mystic Blast, Battlesphere}

And also raised their HD from 4 to 6. Together, these changes
should improve their overall average performance while reducing
the spikiness of random paralysis or banishment.

--------------------------------------------------------------------------------
95ba3b235b | DracoOmega | 2013-07-13 18:10:08 -0230

Unlink Draconian Zealot and Deep Elf High Priest spellbooks
This restores the zealot spellbook to its state prior to the last
commit, and additionally replaces Twisted Resurrection with Animate
Dead. Even aside from differentiation concerns, animate dead produces
far more notable obstructions in Zot than twisted rez can, and so I
think it plays better there.

--------------------------------------------------------------------------------
d59f610a27 | DracoOmega | 2013-07-13 18:10:07 -0230

Make deep elf priests more distict
In the same vein as the last commit, this gives deep elf priests a
unique spell to further differentiate themselves from 'orc priests
who sometimes have a bow'.

Malign Offering is a new spell that offers up the life force of the
target to heal nearby allies of the caster. It is resisted with rN
and requires line of fire, but ignores AC in the manner of drain life.
Allies of the caster within LoS of the target are healed proportional
to the damage inflicted.

While deep elf high priests don't necessarily need any similar boosts,
I have given them the spell as well, for consistency's sake. Both
priests lose their minor healing spell in the process (and normal
priests also lose cantrip)

(Also give plain priests a very slight HD boost)

--------------------------------------------------------------------------------
cbe0904a93 | DracoOmega | 2013-07-13 18:10:05 -0230

Make deep elf summoners more distinct
Demons are one of the very most common things summoned by monsters in
this game, and in fact are already summoned by no less than 3 other
(more notable) monsters in the very same branch. For that matter,
deep elf summoners were basically just kobold demonologists who could
blink.

This commit replaces their demon summons with 'Summon Vermin', a spell
which summons a mix of orange rats, spiders, and a couple other things.
Orange rats were one of their previously most dangerous summons (sadly
removed alongside the other junk spammals would produce), several of
the spiders have interesting support effects to play alongside other
deep elf threats (ie: tarantellas and jumping spiders), and all of them
are faster-than-average (making it less trivial to simply walk away when
the summoner is dead). Hopefully this should make them feel more distinct
among the plethora of demon summoners in the game.

Also, boost their HD slightly.

--------------------------------------------------------------------------------
088829fc2f | DracoOmega | 2013-07-13 18:10:04 -0230

A monster implementation for Freeze
Also make it eligable for player ghosts to cast.

It doesn't inflict a ministun on players, like it does against
monsters, but I am unsure how such an effect could be sensibly
rigged to happen with the current turn framework.

--------------------------------------------------------------------------------
3825490919 | ontoclasm | 2013-07-13 14:18:13 +0100

Make satyr tiles stand out even more

--------------------------------------------------------------------------------
ab64e76da1 | Adam Borowski | 2013-07-13 14:12:01 +0200

Fix Mennas losing his halo.
I'm not changing suspiciously low radius for now -- it there was some talk
about it vs silence radius before.

--------------------------------------------------------------------------------
1f063cc540 | Chris Campbell | 2013-07-13 03:57:26 +0100

Remove Lamia's band
She's strong enough without needing to be accompanied by multiple
greater nagas (and it's not like there will be any lack of nagas nearby
when she spawns anyway).

--------------------------------------------------------------------------------
e81748d16f | Adam Borowski | 2013-07-13 04:39:11 +0200

Add "of Yendor" to randart jewelry names.

--------------------------------------------------------------------------------
a71b95b7f8 | Adam Borowski | 2013-07-13 04:36:04 +0200

Explain why @divine_esteem@ is not just an internal key.

--------------------------------------------------------------------------------
0be616e74f | Adam Borowski | 2013-07-13 04:19:15 +0200

Don't mark potions as perm-useless when in lich form.

--------------------------------------------------------------------------------
0ccec6c07c | Adam Borowski | 2013-07-13 04:07:08 +0200

Mark beneficial mutation as bad rather than useless for the undead.

--------------------------------------------------------------------------------
13ea16426e | Adam Borowski | 2013-07-13 04:02:50 +0200

Re-add the message for [un]beneficial mutation for undead.
The message order isn't fully fixed, although it was jarring only
in the undead case.

ontoclasm's message is back: might be not that fitting, but the
reference is worth it.

--------------------------------------------------------------------------------
f66529f1ee | Adam Borowski | 2013-07-13 03:53:43 +0200

Revert "Messages for undead who drink potions of mut or bmut."
Breaks message order, and since vampires special-case beneficial mutation
already, it's 100% deterministic so can be coded without special return
values.
This reverts commit 9b06fafd7d31d8775373ecf524e448a06fda836d.

--------------------------------------------------------------------------------
c31f49fed7 | Adam Borowski | 2013-07-13 03:39:08 +0200

Axe the branch desc as well.
Branches marked as unfinished don't show up there.

--------------------------------------------------------------------------------
07129d786b | Adam Borowski | 2013-07-13 03:37:08 +0200

Axe Dwarf Hall descs.
Except for the branch's description, it can show up in the branch lookup.

--------------------------------------------------------------------------------
4c6f272169 | ontoclasm | 2013-07-13 02:33:09 +0100

Water nymph tile

--------------------------------------------------------------------------------
f7e0b2bf65 | ontoclasm | 2013-07-13 00:55:22 +0100

Base tiles for player gargoyles

--------------------------------------------------------------------------------
c9f81e6cff | Chris Campbell | 2013-07-12 20:08:14 +0100

Add some Lua functions by rwbarton to advanced_optioneering.txt
This file was sort of forgotten about, but these seem reasonably
useful (and it seems better to let people know about the Lua functions
than to add an option just for opening the skill menu on game start,
per #7316).

--------------------------------------------------------------------------------
bdc56382ea | Chris Campbell | 2013-07-12 20:06:16 +0100

Remove some water from Spider vaults
Since spiders don't cling anymore, and we already have two Lair
branches with plenty of water.

--------------------------------------------------------------------------------
3ca5c6ee54 | Chris Campbell | 2013-07-12 01:12:00 +0100

Fix suppression blocking armour stealth penalties

--------------------------------------------------------------------------------
a55462b656 | Adam Borowski | 2013-07-11 22:28:06 +0200

Restore non-liquefying descs for Dig/wands of digging.

--------------------------------------------------------------------------------
593a4386a8 | ontoclasm | 2013-07-11 20:05:10 +0100

Exec axe tile

--------------------------------------------------------------------------------
42345e1428 | ontoclasm | 2013-07-11 20:03:52 +0100

Doom Knight tile (bloax)

--------------------------------------------------------------------------------
9b06fafd7d | ontoclasm | 2013-07-11 14:58:31 +0100

Messages for undead who drink potions of mut or bmut.

--------------------------------------------------------------------------------
4422b0a2ad | Steve Melenchuk | 2013-07-10 18:44:03 -0600

A hopefully not-too-unbearable, possibly temporary ancient bear tile.

--------------------------------------------------------------------------------
39398e79a8 | DracoOmega | 2013-07-10 20:04:23 -0230

Don't forbid gargoyles (and statue form!) from berserking

--------------------------------------------------------------------------------
42d4ca8135 | Chris Campbell | 2013-07-10 22:36:18 +0100

Remove trampling resistance
Since gargoyles now have some hopefully more interesting features, and
trample resistance doesn't do much at all.

--------------------------------------------------------------------------------
11aa6ae47e | DracoOmega | 2013-07-10 18:39:27 -0230

Adjust gargoyle class recommendations
In light of apt and other changes, recommend fighter, gladiator, and
berserker, and unrecommend transmuter.

--------------------------------------------------------------------------------
7cd7ebd1a9 | DracoOmega | 2013-07-10 18:39:26 -0230

Gargoyle apt adjustments
To go with their AC defensive focus, give them good armour and shield
apts, but worse dodging. Also make them a little better at charms and
necromancy, while worse at transmutations, and make fire and ice apts
neutral.

There are a few more changes I might consider making, but I think this
is enough for the moment.

--------------------------------------------------------------------------------
7eb6d65cce | DracoOmega | 2013-07-10 18:39:25 -0230

Update the other mutation screen too

--------------------------------------------------------------------------------
86ead04141 | DracoOmega | 2013-07-10 18:39:24 -0230

Update the mutations screen for gargoyle pseudomutations

--------------------------------------------------------------------------------
505d25ba14 | DracoOmega | 2013-07-10 18:39:23 -0230

Adjust Statue Form for gargoyles
Mostly this means that they get to keep (some) of their natural AC
in statue form, like draconians do in dragon form (it doesn't make
a lot of sense for stone to turn into harder stone and become less
resilient in the process).

Also adjust a message for the form ending (you're not very fleshy).

--------------------------------------------------------------------------------
4c17537119 | DracoOmega | 2013-07-10 18:39:22 -0230

Give gargoyles hefty natural AC, but very low HP
Good natural AC but low HP is a combination that does not occur on
any current player race, and I think might be an interesting point of
distinction for gargoyles. (Nearly all low hp races are EV-focused,
and both draconians and naga have very good hp). Plus the natural AC
should help make them feel more genuinely stone-like.

For the time-being I am erring on the side of 'probably too good' and
possibly either their AC or HP could use further reducing (but it is
worth pointing out that at spriggan HP levels, the spriggan's EV focus
actually results in lower average damage taken than gargoyle's AC would,
in addition to them being much better at fleeing harm)

--------------------------------------------------------------------------------
5f8dac56ac | DracoOmega | 2013-07-10 18:39:20 -0230

Make player gargoyles vulnerable to LRD and shatter
The damage they take from LRD is reduced compared to statue form,
despite being made of ostensible the same sort of material, since
statue form at least presents the player with the option of leaving
it; gargoyles are stuck that way, and direct LRD is extra-nasty as
it is.

--------------------------------------------------------------------------------
cc7316a462 | DracoOmega | 2013-07-10 18:39:19 -0230

Remove some dead code regarding gargoyle petrification
With self-petrify removed and their natural petrification immunity,
it was impossible for any of this code to actually do anything.

--------------------------------------------------------------------------------
c018806cb4 | DracoOmega | 2013-07-10 18:39:18 -0230

Prevent nonliving players from bleeding
This includes gargoyles, but also wisp form! Funny how something
without any solid flesh managed to bleed....

--------------------------------------------------------------------------------
501ad9a7b6 | DracoOmega | 2013-07-10 18:39:17 -0230

Adjust gargoyle resists
They lose rC+ and gain rElec and rRot (as statue form and virtually
every 'statue-like' monster has)

--------------------------------------------------------------------------------
4080c90117 | DracoOmega | 2013-07-10 18:39:16 -0230

Make gargoyles take 1/2 torment damage (like statue form does)
As a step towards consistency with the already-established mechanics
of 'living stone'.

--------------------------------------------------------------------------------
bf956beb6f | DracoOmega | 2013-07-10 18:39:14 -0230

Give player gargoyles permaflight at xl 14 (like black draconians)
And like black draconians, it does not provide any other benefits
aside from the benefit of flying.

--------------------------------------------------------------------------------
d9a66ce743 | Adam Borowski | 2013-07-10 22:56:41 +0200

Axe a wrong tag on blue_anna_dwarven_crypt (Grunt)

--------------------------------------------------------------------------------
28ae86c914 | Adam Borowski | 2013-07-10 22:43:09 +0200

Add a bunch of missing #ifdefs.

--------------------------------------------------------------------------------
fcdd86e17c | Adam Borowski | 2013-07-10 22:32:15 +0200

Axe an invalid comment.

--------------------------------------------------------------------------------
d689486464 | Adam Borowski | 2013-07-10 22:26:23 +0200

Purge a function.
It degenerated away with clinging removal.

--------------------------------------------------------------------------------
1e523561e6 | Adam Borowski | 2013-07-10 22:23:13 +0200

Return (#ifdefed) a prematurely purged use of orc slaying.

--------------------------------------------------------------------------------
f5a913ea86 | Adam Borowski | 2013-07-10 22:21:20 +0200

Remove the Dwarven Hall.
It's easy to re-add it if we'd have a better idea for it after all.

--------------------------------------------------------------------------------
9e2e7ff7df | Adam Borowski | 2013-07-10 22:18:39 +0200

Move a Dwarf entry vault to be an Okawaru altar.
Somehow, with vanilla dwarves; probably ok.

--------------------------------------------------------------------------------
24dd11255c | Adam Borowski | 2013-07-10 22:18:39 +0200

Move a Dwarf entry vault to the Crypt.

--------------------------------------------------------------------------------
e13e7da024 | Adam Borowski | 2013-07-10 21:28:56 +0200

Make monster paladins consistent with player ones.
Ie, 404 compliant.

--------------------------------------------------------------------------------
2d0226fa41 | Adam Borowski | 2013-07-10 21:28:56 +0200

Ghostbusterize the holy spirit.

--------------------------------------------------------------------------------
0763e4ba1f | Adam Borowski | 2013-07-10 21:28:56 +0200

Purge lack of special shouts for Pa/Th/Pr/Re/St ghosts.

--------------------------------------------------------------------------------
405c76ce05 | Chris Campbell | 2013-07-10 19:35:42 +0100

Remove the orc slaying brand
It only ever generates on artefacts and is very unlikely to be relevant
even when it does.

--------------------------------------------------------------------------------
1addaaf8ee | Adam Borowski | 2013-07-10 19:26:42 +0200

Bye bye clinging.
With player clinging removed, monster doesn't make much sense.

Note that I personally somehow like clinging -- even if it's rarely useful
except early on, it was quite harmless.  However, I'm strongly against
having players and monsters inconsistent when there's no very good reason.

Thus, reverting this and MarvinPA's change is an option.  Just please keep
or revert them together.

--------------------------------------------------------------------------------
1bc77d242c | Adam Borowski | 2013-07-10 16:10:25 +0200

Make vampire bats magenta.
They hardly exist outside of vampire bat form, but still...

--------------------------------------------------------------------------------
99da39b065 | Pekka Lampila | 2013-07-10 16:36:03 +0300

Fix hints mode text about item heaps
The tile is no longer a question mark, so just refer to it as a symbol.
Fixes #7323

--------------------------------------------------------------------------------
89f376a02c | ontoclasm | 2013-07-10 10:58:18 +0100

Flaming death (bloax)

--------------------------------------------------------------------------------
50c6e8700d | Steve Melenchuk | 2013-07-09 22:50:01 -0600

A couple of Abyss rune vaults.
One of these is an older design, but I think it still works sufficiently
well.

--------------------------------------------------------------------------------
f5ad1f9152 | Steve Melenchuk | 2013-07-09 22:02:58 -0600

Rework and re-enable two Forest endings.
They were originally designed to place uniques which have been removed
or moved elsewhere, but I think with some rejigging of the monster sets
they can still be usable (given the severe lack of other Forest endings
at the moment).

--------------------------------------------------------------------------------
e9fcc15c4a | gammafunk | 2013-07-09 22:02:58 -0600

New forest vaults, including a forest end, and a generic overflow temple
Committer's note: I've made some very minor adjustments, mainly an
apparently unintentional restriction for grammafunk_forest_enchanted_lake
to Forest:$, but also some stray _s et al.

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
f0551e90a3 | Brendan Hickey | 2013-07-09 20:59:36 -0700

Negative space decorative Abyss vaults

--------------------------------------------------------------------------------
335855a4f9 | Chris Campbell | 2013-07-09 23:03:56 +0100

Revert monster gargoyle clinging/holiness changes
The holiness changes made no sense - player gargoyles are nonliving, so it
made the monsters more "alive" than the players. Removing flight and replacing
it with clinging did not factor in that some vaults place gargoyles above lava,
and assume that they are able to fly. Making such changes to the monster just
on the basis of symmetry when the player species does not yet have a final
concept seems like a bad idea, and we should probably keep the two separate
until that point.

This reverts commits 959fb166256fd6ea7, 4050f98598dd9164, 02a3e516c11f06997ac.

--------------------------------------------------------------------------------
13e74c75a2 | Chris Campbell | 2013-07-09 22:51:49 +0100

Remove player clinging
As a player mechanic, it's almost never relevant and in the few cases
where it can be relevant it's quickly obsoleted by fairly common
sources of flight, as well as being unnecessarily complicated (no
diagonal clinging for some reason?). As a race-specific mechanic it
also results in a lot of annoying message spam ("You open the door. You
fall off the door.").

--------------------------------------------------------------------------------
b6558daefe | Chris Campbell | 2013-07-09 22:50:56 +0100

Fix some mutations being removed in the wrong place (elliott)

--------------------------------------------------------------------------------
ffa3a4702f | DracoOmega | 2013-07-09 15:45:30 -0230

Make player gargoyle trample resistance 100%
It's a marginal enough effect as it is; it may as well be reliable.

--------------------------------------------------------------------------------
a57ec2b243 | DracoOmega | 2013-07-09 15:45:13 -0230

Don't crash when the player is trampled

--------------------------------------------------------------------------------
959fb16625 | Brendan Hickey | 2013-07-08 22:44:14 -0700

Fixup Gargoyle monster stats
Nonliving -> Natural. Retain artificial.
Provide rC+ to metal and vanilla gargoyle.
Provide rN+ to all gargoyles.

--------------------------------------------------------------------------------
aad995f91e | Neil Moore | 2013-07-09 01:40:31 -0400

Don't message about offscreen Twisted Resurrection.
Now you only hear about corpses whose squares you could see.  This
matters for monster-cast TR only, since TR already requires LOS from
the caster to the corpse.

There is no check for whether you can actually see the created crawlie.
There probably should be, since the crawlie might be on a different
square (for example, if the corpse was beneath a monster already).

--------------------------------------------------------------------------------
4050f98598 | Brendan Hickey | 2013-07-08 22:29:25 -0700

Remove reference to gargoyle wings.

--------------------------------------------------------------------------------
d96d039ee5 | Brendan Hickey | 2013-07-08 22:27:10 -0700

Prevent Trampling of Monster Gargoyles!
The elephant tramples the gargoyle. The gargoyle holds its ground!

--------------------------------------------------------------------------------
02a3e516c1 | Brendan Hickey | 2013-07-08 21:57:49 -0700

Remove monster Gargoyle wings. Make them cling.

--------------------------------------------------------------------------------
e00d11d18c | Adam Borowski | 2013-07-09 02:00:21 +0200

Avoid hard-coding a couple more sizes.

--------------------------------------------------------------------------------
3f20ba38bf | Neil Moore | 2013-07-08 17:51:48 -0400

Avoid hard-coding a size.

--------------------------------------------------------------------------------
37682584b8 | Adam Borowski | 2013-07-08 22:22:35 +0200

Fix an abyss crash.

--------------------------------------------------------------------------------
c9c28e2913 | Chris Campbell | 2013-07-08 12:10:45 +0100

End constriction when pacifying monsters

--------------------------------------------------------------------------------
23820b6e44 | Neil Moore | 2013-07-07 17:38:37 -0400

Don't crash when a dead monster hurts a spectral weapon.
See for example !lm simm crash 8 -log .  The deferred_damage_fineff that
this created no longer had access to the dead monster (it was cleaned up
already, so not in the mid cache), so passed NULL as the agent to hurt().
That was handled "properly" (without crashing) by monster::hurt, but not
by player::hurt.

For now, avoid the crash at the expense of a less-than-descriptive death
message ("Slain by posthumous revenge").  For now the only
deferred_damage_fineff that can affect a player (spectral weapon damage
sharing) is non-fatal, so the message shouldn't actually happen.
Handling this situation properly would probably require postponing
cleanup of dead monsters until after fineffs run, and that sounds quite
likely to cause many new bugs.

--------------------------------------------------------------------------------
c81b0c84f0 | Chris Campbell | 2013-07-07 21:57:24 +0100

Don't restore MP when forgetting spells via amnesia scroll/ability
Forgetting via book doesn't use it, and it was a weird hidden feature
(even if very occasionally useful in highly complicated emergencies!).

--------------------------------------------------------------------------------
dd84641bdd | Neil Moore | 2013-07-07 15:50:43 -0400

Fix formatting.

--------------------------------------------------------------------------------
6a29ee0344 | DracoOmega | 2013-07-07 17:18:07 -0230

Simplify skill draining formula (|amethyst)

--------------------------------------------------------------------------------
61f4f5ff78 | DracoOmega | 2013-07-07 16:48:30 -0230

Fix draining skill reduction formula
Due to a slight error, spell success rates (and probably many other
things) were being affected to a much larger degree than reported
skill would indicate (possibly 10 times as much or more!)

--------------------------------------------------------------------------------
ec8001807c | Adam Borowski | 2013-07-07 18:37:29 +0200

Let the tree form and statues follow feature glyphs.
By default, trees are '♣' not '7', so the form using '7' looks odd.

--------------------------------------------------------------------------------
facd4dceb1 | Adam Borowski | 2013-07-07 18:03:53 +0200

Fix dryads masquerading as merfolk.
This is bad for at least two reasons:
* there's plenty of water in the Forest
* there are actual water monsters (water nymphs) in the same branch

'R' is problematic, I'd prefer '7' like before but some people hate that.
Other glyphs are '@', 'P', 'Q', 'e'.

--------------------------------------------------------------------------------
1d46104da4 | Adam Borowski | 2013-07-07 18:03:53 +0200

Increase the plus on lightning scales a bit more.
Decreasing move delay from 1.4 to 1.2 isn't that noticeable, what matters
is mostly moving <10 : 10 : >10.  The scales were still good, but unrands
are expected to be more noticeable than your average randart.

--------------------------------------------------------------------------------
c39069494f | Steve Melenchuk | 2013-07-07 10:00:36 -0600

Fix a broken Slime entry.
Using slimy walls here blocks all safe paths to the stairs, breaking
autotravel, etc.

--------------------------------------------------------------------------------
dd7d5eff79 | DracoOmega | 2013-07-07 13:27:05 -0230

Reduce The Enchantress's EV, increase hp
This should ideally make fighting her in melee less spikey (either
you miss constantly or squash her) while slightly shoring up defenses
against auto-hit attacks (though they will still be very strong
against her, and this is fine)

Meleeing her with only average skills in particular should no longer
feel quite so futile, I hope.

--------------------------------------------------------------------------------
c8ebcb5325 | DracoOmega | 2013-07-07 12:58:48 -0230

Also note draining in the logfile

--------------------------------------------------------------------------------
f910f181bf | DracoOmega | 2013-07-07 12:58:45 -0230

Give draining a status light, proportional to how heavily you are drained
Sure, you can already find this out from the skill screen, but it is
probably good to have a reminder of your condition, especially when it
could make some of your spells nearly uncastable.

--------------------------------------------------------------------------------
a4b57208ae | DracoOmega | 2013-07-07 12:58:43 -0230

Increase damage of monster Bolt of Draining
This did appreciably less damage than other high level monster bolts
(by a margin greater even than the player spell), to the point that
mystic blast was equivalent in damage (yet much more accurate!). With
the buff to rN's effect against it, I have increased the base damage
of the spell a little in compensation.

Also, reduce the damage-scaled component of the resulting player xp
drain so that this does not boost that aspect of the spell.

--------------------------------------------------------------------------------
4c1a2ab0d2 | DracoOmega | 2013-07-07 12:58:42 -0230

Rename Rings of Life Protection to Rings of Positive Energy
Life Protection was a somewhat misleading name (especially for beginners)
since it implies it might help save you from dying when in fact it does
very little on that front in general. Moreover, it was named very
differently from the armour ego which has the exact same effect. And
now it is not.

--------------------------------------------------------------------------------
fd1d202af0 | DracoOmega | 2013-07-07 12:58:41 -0230

Remove some apparently redundant code
Draining beams were special-cased to check TSO piety directly before
looking at your rN, but since TSO grants you rN directly, this seems
unnecessary and slightly confusing.

--------------------------------------------------------------------------------
72a859c909 | DracoOmega | 2013-07-07 12:58:39 -0230

Adjust rN resist scaling, fix numerous inconsistencies
Instead of rN granting 33/66/100% resistance to negative energy damage,
it now provides 50/75/100%. The relatively smaller benefit of low levels
of rN compared to other resists, combined with negative energy attacks
themselves inflicting less damage than many attacks of other elements,
meant that wearing an item of rN+ was almost never worth caring about,
even against monsters who focused on negative energy attacks. Rings of
life protection in particular were nearly junk (while rings of rF and rC
were desireable swaps against many creatures). This, combined with the
previous draining change, should hopefully make them a little better.

Also, it turned out that rN didn't actually function the way it would
be expected to in numerous cases. Player rN did reduce the damage from
draining bolts by 33/66/100%, but monster rN did not affect base damage
taken at all, unless they had rN+++ (ie: a monster with rN+ took just
as much damage as one without) although it DID affect the HD-loss
component. Moreover, it did not reduce the additional damage from drain-
branded melee by 33/66/100 for either player or monster defenders.
Instead, it was something like 33/50/60%, meaning that draining weapons
actually DID inflict bonus damage against living players with rN+++
(but the message for them doing so was supressed). All of these should
now behave consistently and as expected.

--------------------------------------------------------------------------------
bba810b676 | Chris Campbell | 2013-07-07 15:02:07 +0100

Don't randomly give out innate Gargoyle mutations
They're meant to be due to species-specific stuff and aren't very
interesting as random mutations.

--------------------------------------------------------------------------------
b0b3ef27cc | Chris Campbell | 2013-07-07 15:02:06 +0100

Give Skalds +1 MP, -1 HP
To make a bit easier for them to get use out of Infusion early.

--------------------------------------------------------------------------------
4fcd4fcd65 | Neil Moore | 2013-07-07 00:26:45 -0400

Fix a broken comment.
I don't remember what I was originally trying to say in
0.10-a0-2650-g0266f29, probably "We must not return yet".

--------------------------------------------------------------------------------
1123ea1e9a | Neil Moore | 2013-07-07 00:23:17 -0400

Constify.

--------------------------------------------------------------------------------
e1c0d72385 | DracoOmega | 2013-07-06 22:48:15 -0230

Correct a message on the skill screen when you have drained skills

--------------------------------------------------------------------------------
e250b60d2c | DracoOmega | 2013-07-06 22:48:14 -0230

Revamp player xp draining
Instead of permanently reducing player xp (and xl), draining attacks
now inflict a temporary reduction in all skill levels (similar to Ash
wrath) which is worked off by gaining xp. The xp used to overcome the
penalty is not actually deducted, so draining does not reduce long-term
xp totals. Draining causes both a flat and (smaller) percentile reduction
(meaning that higher level skills are somewhat more strongly affected
than low ones).

The amount of draining inflicted by an attack scales with the damage
taken, meaning that low EV, high AC characters will be less
proportionately vulnerable to draining than their inverse counterparts,
at least compared to the present situation.

The xp cost of removing a point of draining decreases the more heavily
drained the player is, so that it is a bit easier to dig yourself out
of a deep hole if you manage to end up in one.

The numbers are provisional, but should hopefully be fairly sane. Ideally,
I think it would be good if draining had a noticable enough impact to
encourage wearing rN more often than is presently done, as a counter to
it, but let's see how it plays.

For the time-being, draining still works the same against monsters as
it always has.

--------------------------------------------------------------------------------
9d2c972627 | Chris Campbell | 2013-07-06 19:06:11 +0100

Use different godless prayer messages for nonliving and undead players

--------------------------------------------------------------------------------
b3572db00b | Chris Campbell | 2013-07-06 19:06:10 +0100

Increase lightning scales' AC
Since speedy slithering + swiftness no longer gives < 1.0 move delay,
although it's probably still a pretty good barding.

--------------------------------------------------------------------------------
2eee64ba8a | Chris Campbell | 2013-07-06 19:06:10 +0100

Reduce boots of running ego bonus
Even just -1 move delay is strong.

--------------------------------------------------------------------------------
90cba503bd | Chris Campbell | 2013-07-06 19:06:09 +0100

Apply AC to infusion damage, don't reduce MP when no damage is dealt
Infusion shouldn't be anywhere near as useful as it is past the first
few floors.

--------------------------------------------------------------------------------
2337ef626b | Chris Campbell | 2013-07-06 19:06:08 +0100

Reduce Song of Shielding to level 4

--------------------------------------------------------------------------------
565aecc77c | Chris Campbell | 2013-07-06 19:06:08 +0100

Make Dragon Form pure Tmut for all species
The massive difference in usefulness for the spell for Draconians and
non-Draconians was pretty silly. Draconians even now still have the
noticeable advantage of keeping their scale AC.

Non-dracs still always turn into fire dragons, possibly this could
be changed somehow but randomising it per-cast sounds annoying in
situations where some resist is particularly desirable, and basing it
on elemental skills seems fiddly.

--------------------------------------------------------------------------------
49e87db66d | Chris Campbell | 2013-07-06 19:06:07 +0100

Slightly reduce the noise-per-turn of Song of Slaying

--------------------------------------------------------------------------------
31b0d63517 | Chris Campbell | 2013-07-06 19:06:06 +0100

Add no_rtele_into to minmay_lindwurm_lava

--------------------------------------------------------------------------------
29130549fe | DracoOmega | 2013-07-06 14:58:46 -0230

Remove random guardian mummies from Zot
They were rather strange and out of place, even for Zot, and also
basically did nothing.

Though if anyone actually misses them somehow, I won't fight putting
them back.

--------------------------------------------------------------------------------
4afe3df08c | DracoOmega | 2013-07-06 14:57:48 -0230

Make Curse Toes a bit more common in Zot
Arguably too much so, but it could just be considered a testing
weight in that case.

--------------------------------------------------------------------------------
92f2028361 | DracoOmega | 2013-07-06 14:52:14 -0230

Make some curse skulls patrolling (HangedMan)
This is aimed to preserve the guarding behavior of old curse skulls
in a few specific places. In many other vaults, being more mobile
functions just as well or arguably even better than stationary curse
skulls did.

--------------------------------------------------------------------------------
5c1132916d | DracoOmega | 2013-07-06 14:44:52 -0230

Don't let rPois grant immunity to mushroom confusion melee
It was a little odd since it didn't actually protect against
confusion from spores that explode OR the other monster with
confuse-branded melee (ie: tarantellas).

--------------------------------------------------------------------------------
a947c05eb8 | DracoOmega | 2013-07-06 14:35:58 -0230

Rework Curse Toes
With curse skulls made mobile, curse toes sort of lost their main
shtick (ie: a curse skull that moves). In fact, they were probably
easier to kill than one, despite their defenses, as they could be
easily lured around corners and mushrooms were a waste of their
time to use.

This commit differentiates them further from curse skulls by removing
summon undead (many other monsters already use this, after all) and
focusing on improving the fungi aspect of their spellset, as this is
unique to them.

Summon Mushrooms now summons the mushrooms adjacent to the caster's
target, rather than the caster itself, giving the effectively
immobile monsters a better chance to run interference and/or confuse
someone. Also, the mushrooms have a 1 in 3 chance of being a deathcap
instead, which should be strong enough to have an impact even by the
time you are running into curse toes (especially when summoned in
large numbers)

Additionally, curse toe movement speed is increased slightly, action
speed decreased slightly (no double torments), but less time will be
spent doing nothing in melee range. Finally, their extreme AC is cut
in half, but hp increased by about 30%.

--------------------------------------------------------------------------------
20a9065099 | DracoOmega | 2013-07-06 14:22:44 -0230

New monster: Deathcap
These are stronger undead wandering mushrooms with the ability to
use drain life (so that they can actually do something if you're out
of melee range).

Intended for use by Curse Toes.

--------------------------------------------------------------------------------
60daf7443b | DracoOmega | 2013-07-06 11:48:45 -0230

Distinguish water elemental drowning from conventional drowning in the score 
list

--------------------------------------------------------------------------------
526961a5c5 | Neil Moore | 2013-07-06 09:51:19 -0400

Don't capitalise inventory letters in describe title (#7306).

--------------------------------------------------------------------------------
c4bd1bdd8c | Pekka Lampila | 2013-07-06 08:02:51 +0300

Make sure to check selected skills after training
Hopefully fixes #7275

--------------------------------------------------------------------------------
bcf3ac4449 | Pekka Lampila | 2013-07-06 07:45:01 +0300

Give MUT_CLING wizname to avoid a wizmode crash

--------------------------------------------------------------------------------
830e84eef4 | DracoOmega | 2013-07-06 00:48:06 -0230

Dryads are not trees
And apparently them masquerading as one has caused much consternation.

Now if only the tile could blend in a little less, too....

--------------------------------------------------------------------------------
8b2c73cb4c | DracoOmega | 2013-07-06 00:24:06 -0230

Correct a comment even more

--------------------------------------------------------------------------------
dab8f93784 | DracoOmega | 2013-07-05 23:53:06 -0230

Update a comment

--------------------------------------------------------------------------------
2adeeb359e | DracoOmega | 2013-07-05 23:53:04 -0230

Adjust the xp values of certain monster spells
This is fairly incomplete and the overall formula used is kind of
bad anyway, but this should fix a few strange quirks - for example,
venom bolt and teleport self were considered more dangerous than
fireball and just as dangerous as chain lightning, and some spells
like tornado and shatter were not considered unusually dangerous at
all.

--------------------------------------------------------------------------------
21d67d4191 | DracoOmega | 2013-07-05 23:53:03 -0230

Adjust numerous monster xp values
As the third facet of the xp distribution adjustments, several monsters
which offered either curiously low or curiously high xp for their threat
level have been adjusted (sometimes considerably), and more minor
adjustments made to numerous other monsters to try and bring them more
in line with how dangerous they are relative to several common monsters.
Additionally, a few monsters which dominated the xp totals of D and V
have been reduced somewhat.

Conveniently, this boosts a number of high-tier monsters in the Lair rune
branches, which does a little more to make them proportionately more
rewarding compared to late D than they used to be (and perhaps might
incentivize doing them earlier, in consort with the slowed xl gains)

As a side-benefit, since monster threat tiers are based upon xp value,
this may help several monsters be assessed more accurately.

--------------------------------------------------------------------------------
f54e3ca8c7 | DracoOmega | 2013-07-05 23:53:01 -0230

Increase xp required for higher levels, smooth out mid levels
As a second facet of the attempt to reduce player power growth into
mid and lategame, the xp requirement of experience levels above 15
is steadily increased, with xl 16 requiring 3% more xp than previously
while xl 27 requires 25% (xl 13-15 cost slightly less than before).

Skill point costs are also increased in tandem, though the reduction
in skill growth should be somewhat less than the one in xl.

This also smooths out skill gain in the mid-teens, where the old values
led to a sudden spike of growth which then sharply trailed off shortly
after Lair (or thereabouts). The rate of change in growth should hopefully
feel more continuous, instead of a noticable stall as one proceeds into
midgame.

--------------------------------------------------------------------------------
4a2d53dfab | DracoOmega | 2013-07-05 23:53:00 -0230

Scale down xp from high tier monsters, further reduce zombie xp
This is part of a multi-pronged approach to curbing xp through midgame,
particularly the later parts of it. The amount of xp available in a normal
3-rune game has increased substancially over the last several versions (by
30% or more) and much of this is concentrated in late D. A major factor in
this is the greater frequency of major vaults, but these vaults are a source
of considerable tactical interest and challenge, so it seems bad to address
the growth in average player power by simply pruning them. Moreover, it also
seems a bad thing to dilute interesting threats in branches with chaff simply
to avoid giving too much xp (somthing which is currently done in several
places)

Uniformly increasing the (already existing) diminishing returns on xp from
larger threats reduces the total xp in the game by a noticable amount (though
it is still higher than it used to be) and moreso affects late D and V more
than Lair rune branches, and earlygame very little at all.

Midgame is generally rendered less interesting by an excess of player power,
so the aim of these commits is to curtail it (reasonably so) without affecting
earlygame (which is already plenty hard), and also to make doing Lair rune
branches earlier more desireable, as they become proportionally more rewarding
at the same time that reduced player power makes late D more dangerous.

--------------------------------------------------------------------------------
589df97ad7 | pubby | 2013-07-06 01:11:16 +0200

Turn autopickup back on when gaining antennae 3.
Autopickup was turned on for acute vision, so it seemed natural to also
do this for antennae 3.

--------------------------------------------------------------------------------
d2330eac16 | Adam Borowski | 2013-07-06 00:58:20 +0200

Make "make test" work around a severe race condition wrt --builddb.
It can happen on actual servers, too -- if two players start their games
at the same time, being the first after an upgrade.  The time window is
fortunately small enough so it didn't happen yet; make -j triggers the
failure apparently every time, though.

--------------------------------------------------------------------------------
428ed1d0dc | Adam Borowski | 2013-07-06 00:58:20 +0200

Make sure to reset all fields of struct monster.
Because of the recent spells brouchacha.  The only one that looks likely
to cause problems is god, but it's better to overinitialize than to
underinitialize.

--------------------------------------------------------------------------------
a8198daa8a | Adam Borowski | 2013-07-06 00:58:20 +0200

Update a .pl desc for book of the Sky.
Many more are left as translations of the old boring text, but this one
was also wrong: there's but one elec related spell in the book.

--------------------------------------------------------------------------------
b3314a156e | Adam Borowski | 2013-07-06 00:58:20 +0200

Mark Delayed Fireball as temp-useless when it's on.

--------------------------------------------------------------------------------
2e4c7b943f | Adam Borowski | 2013-07-06 00:58:20 +0200

Move shield_blocks from monster+player to actor.
Also, fix an uninitialized use for monsters.

--------------------------------------------------------------------------------
5c148d925d | ontoclasm | 2013-07-05 17:47:35 -0500

Change lab floor tile weights

--------------------------------------------------------------------------------
e1c5d4310a | ontoclasm | 2013-07-05 01:01:11 -0500

Orc walls (roctavian, 7278)

--------------------------------------------------------------------------------
5d9582c8a6 | ontoclasm | 2013-07-05 00:01:42 -0500

GOB and player spiderform tiles (Bloax)

--------------------------------------------------------------------------------
bf547e5834 | ontoclasm | 2013-07-04 23:46:52 -0500

Various monster tiles (roctavian, 7278)

--------------------------------------------------------------------------------
236abbe867 | Steve Melenchuk | 2013-07-04 18:41:40 -0600

Don't pointlessly use permarock in volcano entrances (HangedMan).

--------------------------------------------------------------------------------
f5357c2eb0 | Steve Melenchuk | 2013-07-04 18:39:29 -0600

Evoke Teleport Control icon (reaver, #6896).

--------------------------------------------------------------------------------
b5bcb6a6ed | Brendan Hickey | 2013-07-04 13:22:22 -0700

Mutation'ify Gargoyle Clinging
Convert the Gargoyle cling ability into a mutation.

--------------------------------------------------------------------------------
96d22f58f3 | Brendan Hickey | 2013-07-04 12:27:35 -0700

Gargoyle Clinging
Gargoyles wall cling and receive a stealth bonus for doing so.

--------------------------------------------------------------------------------
f439ca8676 | Pete Hurst | 2013-07-04 19:03:23 +0100

Placeholder tile for Sack of Spiders (Bloax)
It doesn't look a lot like the description (actually "a woven silk bag")
but this is good for a placeholder.

--------------------------------------------------------------------------------
315986e51b | Raphael Langella | 2013-07-04 16:32:21 +0200

Purge some obsolete transifex config.
Those are not generated from the Makefile anymore.

--------------------------------------------------------------------------------
280b7835a7 | James Ravn | 2013-07-04 07:03:35 -0400

Fixes help menu scrolling when at the first line
The menu code was jumping to the previous entry instead of the actual
hotkey'd entry. This could be a MEL_TITLE which leads to some broken
behavior in the help menu.

The most noticeable is in webtiles, where you couldn't use the down arrow
to scroll when at the top of a help menu.

In console a blank line showed up at the top of the help page, but you
couldn't scroll back to it.

This patch fixes it by jumping to the correct entry (the entry after the
MEL_TITLE).

--------------------------------------------------------------------------------
8b27fd8d3b | Pete Hurst | 2013-07-04 09:20:57 +0100

Suppress a compiler warning

--------------------------------------------------------------------------------
7be3fc8e57 | DracoOmega | 2013-07-04 00:06:00 -0230

Adjust some Crypt monster weights
In general, nudge up some of the more threatening / notable things
and reduce the weights of a few of the less threatening things.

--------------------------------------------------------------------------------
61774292a0 | DracoOmega | 2013-07-04 00:05:59 -0230

Increase snaplasher vine damage

--------------------------------------------------------------------------------
f729d7e116 | DracoOmega | 2013-07-04 00:05:57 -0230

Make snaplashers shake their victims back and forth a little less
Now they will no longer attempt to shift their constrictee against
a tree if they are already adjacent to a tree at their current
position.

--------------------------------------------------------------------------------
8aa93647c5 | DracoOmega | 2013-07-04 00:05:56 -0230

Make Thorn Lotuses more likely to actually fire at you
It is really rather ugly to have to do it this way. It would be
nice if you could adjust spell usage frequencies in some clean and
generalizable way.

--------------------------------------------------------------------------------
c7c3ad01ef | DracoOmega | 2013-07-04 00:05:55 -0230

More Crypt monster tweaks
Improve Ancient Champion damage and HD, make Jiangshi more accurate,
restore old Jiangshi band chance.

--------------------------------------------------------------------------------
d7c8c6630c | DracoOmega | 2013-07-04 00:05:54 -0230

Make deep dwarf death knights somewhat more likely to have a flayed ghost
And a touch less likely to have a ghoul.

--------------------------------------------------------------------------------
9068a2344b | DracoOmega | 2013-07-04 00:05:52 -0230

Revenant tweaks
Tighten revenant hp range (mostly raising the low end), increase AC
slightly and reduce EV slightly, increase ghostly fireball damage.
It is fairly nasty, but given that it is resistable it is probably
quite reasonable for players not to want to tank them without it.

--------------------------------------------------------------------------------
9f123c134f | DracoOmega | 2013-07-04 00:05:51 -0230

Give Agony to necromancer monsters
The necromancer spellsets are a little odd, especially in their most
common home (Crypt), where their corpse-based spells do little, and
somehow they are mostly modest powered conjurers. I did keep those
spells as I don't think Crypt needs any more conjurers that use bolt
of draining as a primary attack, but this at least gives them a
noticable necromantic attack, and hopefully gives them a little more
relevance than they currently have (which isn't much at all).

--------------------------------------------------------------------------------
eee27dd686 | DracoOmega | 2013-07-04 00:05:50 -0230

Give monster Agony a little power boost
It doesn't get anywhere near the multiplier player agony does, mind
you.

--------------------------------------------------------------------------------
8b69c815a9 | DracoOmega | 2013-07-04 00:05:49 -0230

Make wrath-type slowing touch a little stronger
It is more likely to trigger, and lasts a bit longer.

--------------------------------------------------------------------------------
b7d1531b0d | DracoOmega | 2013-07-04 00:05:47 -0230

Improve dryad and rock worm pathing behavior slightly
They will now shift into shielded terrain if they are adjacent to
their target, unshielded, and a shielded spot is also adjacent to
both them and this target. (Also, they should zigzag slightly less
in some other situations)

--------------------------------------------------------------------------------
218fa2e2c9 | DracoOmega | 2013-07-04 00:05:46 -0230

Allow rock worms and dryads to pathfind through their native terrain
Pathfinding was vetoing all solid squares before it ever bothered to
ask the monster if they could walk through them.

--------------------------------------------------------------------------------
d7fce62bf7 | DracoOmega | 2013-07-04 00:05:45 -0230

Nudge down the depth of a bear vault slightly

--------------------------------------------------------------------------------
0ca1e8ade9 | DracoOmega | 2013-07-04 00:05:43 -0230

Remove some tengu (and centaurs) from Forest vaults
And also correct a broken NSUBST line.

This does mean a bit less variety in some vaults; perhaps some should
sometimes use non-humanoid monsters instead of mostly just spriggans
now?

--------------------------------------------------------------------------------
4192bdfc47 | DracoOmega | 2013-07-04 00:05:42 -0230

Some adjustments to wad_woods monster sets
Most importantly, don't place porcupines as early as D:2. Since the
spine change, it is unreasonable to expect many characters of that
level to kill one. Now the vaults instead place green rats before
absdepth 8. Also remove the chance of low tier tengu when it shows
up in Forest, and give a smaller chance for some other monsters to
appear there.

This is probably more a bandaid than anything else, as gnolls in
Lair is still rather odd (and irrelevant) so I think the spawn lists
could use a more thorough look, but at least this should stop certain
unkind earlygame deaths.

--------------------------------------------------------------------------------
1ee8418703 | Steve Melenchuk | 2013-07-03 19:18:59 -0600

Specify correct path for arena.des in documentation (Undo).

--------------------------------------------------------------------------------
865202cdd9 | Steve Melenchuk | 2013-07-03 18:42:23 -0600

Minor adjustment to a just-added vault.

--------------------------------------------------------------------------------
4f0ecc2464 | Zannick | 2013-07-04 02:28:38 +0200

Clear the spell list on monster init.

--------------------------------------------------------------------------------
2cbecd9a16 | Adam Borowski | 2013-07-03 23:21:56 +0200

Make the pillars marble.

--------------------------------------------------------------------------------
c130323e1a | Adam Borowski | 2013-07-03 23:13:48 +0200

Drop a testing weight.

--------------------------------------------------------------------------------
cb0929a9eb | Adam Borowski | 2013-07-03 23:11:54 +0200

A vault by Lightli that will be your doom.
It sucks in D, though: a stone giant is a push-over here.

--------------------------------------------------------------------------------
135004ab63 | Adam Borowski | 2013-07-03 21:59:49 +0200

Stop ironheart preservers from taking damage for former allies.
The enchantment lingers, in case the other side changes allegiance as well.

--------------------------------------------------------------------------------
11ebcbd3e7 | Adam Borowski | 2013-07-03 20:16:42 +0200

Don't talk about losing power when the guardian spirit can't work.
It would be probably better to not identify the amulet in such a case,
but this leads to trouble with the armour brand and artefact properties.

--------------------------------------------------------------------------------
cdc4683f6e | Adam Borowski | 2013-07-03 20:16:42 +0200

Don't claim that you're "not hungry enough" if you can't hunger.

--------------------------------------------------------------------------------
efd11ec6aa | Pete Hurst | 2013-07-03 19:15:17 +0100

Make sure acting_part is initialised to MONS_0 to avoid occasional crashes

--------------------------------------------------------------------------------
62e0c54850 | Steve Melenchuk | 2013-07-03 09:24:10 -0600

A tile for the Pan disco ball (from #5385, by ontoclasm).
Personally, I think this could be animated, but that we have an old tile
for it that isn't in the game yet is sufficient reason to replace the
statue tile with it for now, I think.

--------------------------------------------------------------------------------
26cee099eb | Ed Gonzalez | 2013-07-03 11:39:37 +0100

Unbreak Spectral Weapon damage sharing.
Because sharing is caring.

--------------------------------------------------------------------------------
502087348b | Neil Moore | 2013-07-03 02:34:31 -0400

Don't crash when loading player ghosts.
The change to ghost_demon_init in 0.13-a0-2207-g455e83b requires that
the monster's type be set, so we can look up the attack spec as part
of checking its weapon.  ghost_init was the only call that didn't set
the type first.

--------------------------------------------------------------------------------
9e71e4407b | ontoclasm | 2013-07-03 00:32:45 -0500

Brighten fire vortices

--------------------------------------------------------------------------------
455e83b55d | Ed Gonzalez | 2013-07-03 00:40:00 +0100

Fix animated weapons of protection/evasion not getting their bonuses.
The bonus was getting overwritten when the spectral weapon or
dancing weapon code set the AC and EV for the monster, since the weapon
was already given and its benefit applied. Now the weapon is silently
unwielded prior to the stat modifications, and rewielded once that's
done.

--------------------------------------------------------------------------------
e5352be015 | Adam Borowski | 2013-07-02 22:29:17 +0200

Marshall monster constriction, items and spells only if non-empty.
This cuts down the size of monsters in saves roughly by half.

--------------------------------------------------------------------------------
a55e7016fe | Steve Melenchuk | 2013-07-02 14:00:38 -0600

Reinstate a DEPTH: for one of the just-moved altars.

--------------------------------------------------------------------------------
9de0b46a1f | Steve Melenchuk | 2013-07-02 13:56:18 -0600

Allow a lot of single-altar vaults from altar.des to place as overflows.
We're rather short on generic single-altar overflow vaults, and this is
my way of getting some more usable without too much more work.

The ones I moved over are ones that are mostly plain feature layouts,
and they should still be placeable in their original forms.

I also used some of the recently-added functionality for checking
overflow map tags to adapt lightli_temple_of_fire into an overflow
vault.

--------------------------------------------------------------------------------
99bf47b3d0 | Steve Melenchuk | 2013-07-02 13:37:08 -0600

Vaults from nicolae (#7295).
As usual, I've made some minor adjustments here and there.

--------------------------------------------------------------------------------
857913dbab | Adam Borowski | 2013-07-02 03:48:52 +0200

Actually use the minor tag introduced above.

--------------------------------------------------------------------------------
c288f2576e | Adam Borowski | 2013-07-02 03:37:10 +0200

Store the presence of ghost_demon when marshalling monsters.
Any high-level moving parts are just too fragile.

We can assert their presence after adjustments have been made.
This makes save shims easier to do.

--------------------------------------------------------------------------------
4a34552a04 | Adam Borowski | 2013-07-02 03:37:10 +0200

Abort when trying to marshall a string above 32K.
Silent data loss is never nice.  We currently never store strings that long
in the save file, but if a need arises, it's better to know we should extend
the limit rather than face hard to debug truncation.

--------------------------------------------------------------------------------
01ad4e3bea | Adam Borowski | 2013-07-02 03:37:10 +0200

Make chimera upgrades slighly more readable.
Uing #ifdefs inside an expression works but is unsightly.

--------------------------------------------------------------------------------
19f42865ef | pubby | 2013-07-02 03:31:06 +0300

Show nothing for 0 webtiles spectators in lobby.
Showing a blank instead of the number 0 makes it a lot easier for
players to see which games have spectators or not. No more needing to
scan the entire page carefully for spectators!

--------------------------------------------------------------------------------
fd97f7f4e8 | Neil Moore | 2013-07-01 20:01:20 -0400

Fix a typo in a comment (ChrisOelmueller)

--------------------------------------------------------------------------------
d04f6d48e6 | Pete Hurst | 2013-07-02 00:56:48 +0100

Formatting fix

--------------------------------------------------------------------------------
46145f21a9 | Pete Hurst | 2013-07-02 00:56:47 +0100

Tweak chimera name display
Allow a single head to temporarily act by setting ghost.acting_part;
this allows the introductory shout messages to actually reference
the three monster types. Improved the chimera name display slightly
by changing it to "chimera (foo, bar, baz)".

--------------------------------------------------------------------------------
109bb7a77d | Pete Hurst | 2013-07-02 00:56:47 +0100

Make chimera more talkative
Causes the three heads to announce themselves when the chimera
is released; gives you a flavourful hint as to what the components
are without specifically checking.

--------------------------------------------------------------------------------
fade5f1748 | Pete Hurst | 2013-07-02 00:56:46 +0100

Properly set chimera speed and flight
Since these values are now controlled by the ghost structure, the
logic for setting and retrieving them has changed.

--------------------------------------------------------------------------------
cb3a61df76 | Adam Borowski | 2013-07-02 01:48:05 +0200

Don't let summons from the rod of the swarm use stairs.
For consistency with other summoning spells.

No cap for now, mumra proposed one of 10.

--------------------------------------------------------------------------------
36574597fe | Adam Borowski | 2013-07-02 01:05:12 +0200

Put the second clause of "if" in another line.
It can be misleading otherwise, especially if we write it separately
in all other cases.

--------------------------------------------------------------------------------
5fbfbfd9c9 | Adam Borowski | 2013-07-02 00:56:25 +0200

Don't include MSVC dirent emulation.
We don't actually use it.  Two of contribs, pcre and sdl, reference it from
their autoconfage, so I'm not sure if it's optional or mandatory, and can't
check myself -- not deleting it yet.  In any case, even a cursory look shows
at least two bugs, but I can't think of a case we could call this code,
even not directly.

--------------------------------------------------------------------------------
ace084bbed | Adam Borowski | 2013-07-02 00:56:25 +0200

Purge a never used desc for "iron tree".

--------------------------------------------------------------------------------
862ac03750 | Samuel Bronson | 2013-07-01 17:44:29 -0400

Give runes their own default glyph (φ for now)

--------------------------------------------------------------------------------
158fd6b372 | Neil Moore | 2013-07-01 15:40:06 -0400

Add two joke monster tiles to UNUSED/ (ontoclasm).
Tiles by ontoclasm.  These were originally going to be used for April 1,
but maybe they will inspire someone before next year rolls around.

The Giaggostuono is based on a design by minmay:
  http://www.cowmuffins.net/stuff/THEGIAGGOSTUONO.png

--------------------------------------------------------------------------------
a717e1dbf8 | Pete Hurst | 2013-07-01 09:13:18 +0100

Fix ghost demon version upgrade

--------------------------------------------------------------------------------
ca4d145785 | Pete Hurst | 2013-07-01 09:12:58 +0100

Tweak box of beast spawns
Added ancient bears, spirit wolves. Swap wolf and warg.
Added some very high-tier rare monsters: apis, hellephant, golden dragon.

--------------------------------------------------------------------------------
d9ab3cbd74 | Pete Hurst | 2013-07-01 08:45:12 +0100

Change chimera to use ghost_demon object and implement resists
Currently resists are additive between the three different
parts. Also the chimera now gets SInv if one of the parts has it.

--------------------------------------------------------------------------------
fed54df21d | Eino Keskitalo | 2013-07-01 10:38:29 +0300

Document print_hint further.

--------------------------------------------------------------------------------
9836616a9d | Neil Moore | 2013-07-01 03:33:40 -0400

Further update a comment.

--------------------------------------------------------------------------------
c4c8586323 | Eino Keskitalo | 2013-07-01 10:23:18 +0300

Make print_hint function non-static, and make it accessible in dlua.
It can now be used to quickly test hint messages from the database.

--------------------------------------------------------------------------------
8ee3a633c9 | Eino Keskitalo | 2013-07-01 10:23:18 +0300

Use <input> tags in hints database, and some other edits (such as removing a 
reference to searching).

--------------------------------------------------------------------------------
9d83c65ba2 | Eino Keskitalo | 2013-07-01 10:23:18 +0300

Capitalization fix.

--------------------------------------------------------------------------------
9525326972 | Neil Moore | 2013-07-01 02:54:50 -0400

Don't let elemental wellsprings abjure.
Their casting messages are flavoured as the water rising up and taking
form, which doesn't make sense for abjuration.

--------------------------------------------------------------------------------
d6f9700345 | Neil Moore | 2013-07-01 01:18:37 -0400

Fix a comment typo.

--------------------------------------------------------------------------------
29d122ce6f | Neil Moore | 2013-07-01 01:08:40 -0400

Don't buffer overflow when unmarshalling a negative-length string.
This could happen because of save corruption, or if we tried to
marshall a string bigger than SHORT_MAX.

Also, truncate very long (>= 32K) strings when marshalling, rather than
writing a bad length.

--------------------------------------------------------------------------------
a079a5cb2e | Neil Moore | 2013-07-01 00:42:29 -0400

Recover saves with bad spectral weapons/wellsprings (kilobyte).
MONS_SPECTRAL_WEAPON was inserted before two other enumerators
(0.13-a0-1964-g2fab1c1) and then had a ghost_demon structure added
(0.13-a0-2055-g6cfaa00), both without a tag.  Use the speed to
tell which monster is which; see the comments in unmarshallMonster
for more details.

kilobyte did the first version of the ghost_demon handling, which did
read-ahead to try to guess whether there was actually a ghost_demon
struct in the save.  qoala pointed out that the commit that gave
spectral weapons speed 30 immediately preceded the one that added the
ghost_demon structure (and was pushed at the same time), meaning we can
check use the speed for this, too.

--------------------------------------------------------------------------------
3a0f4b0643 | Neil Moore | 2013-06-30 19:31:02 -0400

Spell qoala's name correctly (mea maxima culpa).

--------------------------------------------------------------------------------
faf8416790 | pubby | 2013-06-30 18:49:12 -0400

Remove use of 'you' inside player member functions
'you' seemed to be pointless in such context anyways, and lead to some
const correctness bugs since '*this' could have a different const-ness
from 'you'.

--------------------------------------------------------------------------------
3dbd8d124c | Neil Moore | 2013-06-30 16:43:59 -0400

Make trap_god_beogh welcome Lava Orcs.

--------------------------------------------------------------------------------
6558d3f7e4 | Neil Moore | 2013-06-30 16:33:43 -0400

Correct a few comments.

--------------------------------------------------------------------------------
c3cec7c6d9 | Neil Moore | 2013-06-30 16:32:53 -0400

Update a translation whose key changed.

--------------------------------------------------------------------------------
d69006466f | Neil Moore | 2013-06-30 16:30:09 -0400

Manual sync from the wiki (LO^Beogh).

--------------------------------------------------------------------------------
6c4f43570a | Neil Moore | 2013-06-30 16:25:23 -0400

Account for LO^Beogh in the changelog.

--------------------------------------------------------------------------------
312673711a | Neil Moore | 2013-06-30 16:20:06 -0400

Correct a few more related orc speech lines.

--------------------------------------------------------------------------------
9b1ab93b46 | Neil Moore | 2013-06-30 15:45:07 -0400

Correct a St Roka line.

--------------------------------------------------------------------------------
cd744e6bb1 | Neil Moore | 2013-06-30 15:44:36 -0400

Rename a misleading function.
Except for ghouls, is_player_same_species checked *genus*, not species.

--------------------------------------------------------------------------------
75d496b77f | Neil Moore | 2013-06-30 15:06:55 -0400

Turn off heat aura for Lava Orcs of Beogh.

--------------------------------------------------------------------------------
e10018555c | Neil Moore | 2013-06-30 14:45:19 -0400

Allow Lava Orcs to worship Beogh.

--------------------------------------------------------------------------------
d41a293a30 | Neil Moore | 2013-06-30 14:42:46 -0400

Remove dead code.

--------------------------------------------------------------------------------
6885dd52b8 | Neil Moore | 2013-06-30 14:42:18 -0400

Give lava orcs bonuses with orcish launchers.

--------------------------------------------------------------------------------
3de87067b4 | Neil Moore | 2013-06-30 11:40:24 -0400

Fix saves with players stuck in their base form.

--------------------------------------------------------------------------------
170a2cef99 | Neil Moore | 2013-06-30 11:39:06 -0400

Don't set transform_uncancellable when checking pig form.
You could wind up stuck in your base form and unable to transform
again.

There might be other situations that trigger the same bug.

--------------------------------------------------------------------------------
cbca8596bb | Adam Borowski | 2013-06-30 15:22:29 +0200

Don't use exceptions for short reads.
They make stack traces worthless.

Throwing an exception is useful only when failure is not fatal, ie,
in the save browser and for ghosts.

--------------------------------------------------------------------------------
fb30ef67ae | Brendan Hickey | 2013-06-29 22:22:28 -0700

Make Polymoth remains mutagenic

--------------------------------------------------------------------------------
a9a2eb8abc | Pete Hurst | 2013-06-30 03:56:40 +0100

Mention compiling Contribs.sln in MSVC build instructions
This is an essential step the first time you compile and I
omitted it from INSTALL.txt. Amended.

--------------------------------------------------------------------------------
0bb85b4f14 | Ed Gonzalez | 2013-06-29 13:06:30 +0100

Make Spectral Weapon damage sharing use a fineff.
This way the order of targets in an AoE shouldn't matter for the damage
sharing leaving you with at least 1hp.

--------------------------------------------------------------------------------
6382b9ac15 | Ed Gonzalez | 2013-06-29 13:06:29 +0100

Fixed issue with merging deferred_damage_fineff.
Merging now checks that both have the same state for attacker_effects.

--------------------------------------------------------------------------------
57ea70d0b7 | Ed Gonzalez | 2013-06-29 13:06:28 +0100

Halve Spectral Weapon damage sharing.

--------------------------------------------------------------------------------
f7d185e991 | Ed Gonzalez | 2013-06-29 13:06:28 +0100

Fixed some effects being applied twice to damage.
When a deferred_damage_fineff is used, ::hurt is called twice.  Once for
the original target, and a second time for the shared target.  Both
calls would apply effects such as weakening from wretched and QUAD
DAMAGE.  While SIXTEEN TIMES damage is funny, the attacker's effects
should only be applied once.

Now ouch/hurt functions and the deferred_damage_fineff have an
'attacker_effects' parameter, which defaults to true.  If false, then
damage effects from the attacker are assumed to have already been
applied.  All existing uses of deferred_damage_fineff have been
appropriately updated.  Also applied to spectral weapon damage sharing.

--------------------------------------------------------------------------------
3bbf07e665 | Ed Gonzalez | 2013-06-29 13:06:27 +0100

Modify Spectral Weapon damage sharing.
Moved the code from monster::hurt into monster::react_to_damage.  This
has the effect of using the actual damage received, after such things as
capping at the weapon's current health and applying any wretched status
the attacker may have.

Additionally, less properties of the attack are passed to the owner.
How the caller intended to use the weapon (cleanup_dead) and the attack
flavour could've only caused bugs or misleading effects.

--------------------------------------------------------------------------------
fb912d7d03 | Ed Gonzalez | 2013-06-29 13:06:26 +0100

Buff Spectral Weapon defenses (AC, EV)
Instead of simply having 2-10AC, 2-10EV linearly over the range of 100
power, it now has 2-12AC, 10-20EV over that range.

In particular, giving it hopefully reasonable EV should make it take
less hits to share with the player.  These numbers are probably still
not enough, but it should be a start.

Also, now it's hit dice are bounded below by 1.  A monster with HD0 has
a number of special cases, such as dying to any hit.  Some of these
might be appropriate for a no-weapon-skill spectral weapon, but I don't
want to figure out all the other side effects it might have.

--------------------------------------------------------------------------------
bc1fa23b6f | Ed Gonzalez | 2013-06-29 13:06:25 +0100

Buff Spectral Weapon (Gain immunity to allied beams)
Like battlesphere, one can now throw/cast/evoke past allied spectral
weapons, as if they weren't there.

--------------------------------------------------------------------------------
81e2a4a95a | Ed Gonzalez | 2013-06-29 13:06:24 +0100

Buff Spectral Weapon damage (scales with weapon skill)
Spectral Weapon damage now scales with weapon skill similarly to how
player and player ghost damage does.  However, the effective skill is
reduced by spell power.

At 0 power, weapon skill is 1/3 as effective.
At max (100) power, weapon skill is fully as effective as on the player.
In between, the effect on skill scales linearly with power.

There's a table in the comments of the code, showing some values.

The numbers might need tweaking, since getting comparable damage at max
power is likely desirable.  However, encouraging players to train more
charms is a good thing.

--------------------------------------------------------------------------------
6e982ffe8c | Neil Moore | 2013-06-29 03:56:41 -0400

Don't crash on ia=<up>

--------------------------------------------------------------------------------
016b04f923 | Neil Moore | 2013-06-29 03:56:06 -0400

Eliminate an unused variable.

--------------------------------------------------------------------------------
98d8517600 | Brendan Hickey | 2013-06-28 22:11:16 -0700

Change Polymoth behavior.
Remove same genus polymorph.

Introduce polymorph tougher: morph a monster into something with one more HD.
Track what the moth has polymorphed and veto high HD monsters that have
already been polymorphed to prevent runaway morphing.

--------------------------------------------------------------------------------
f0858a56f2 | Pete Hurst | 2013-06-29 03:38:27 +0100

Let the temporarily foodless still acquire food (Mantis #7283)
Adds an is_foodless_normally() call for other such uses.

--------------------------------------------------------------------------------
6b712aaa90 | Adam Borowski | 2013-06-29 00:26:47 +0200

Don't spam fail messages when checking form validity.
Any dry runs, including but not limited to the previous commit, would
produce "You would burn in your new form.", etc.

--------------------------------------------------------------------------------
9ce8883994 | Adam Borowski | 2013-06-29 00:26:47 +0200

Roll Zin's protection against polymorph only once.

--------------------------------------------------------------------------------
b487634b5f | Adam Borowski | 2013-06-28 23:45:12 +0200

Pepper "you" and level chunks of save files with canaries.
They should make debugging marshall/unmarshall errors a good deal easier:
baring a lucky failed assert, subsequent reads will accept garbage until
the end of file.

--------------------------------------------------------------------------------
111a51c599 | Adam Borowski | 2013-06-28 23:45:12 +0200

Axe a stray comma.

--------------------------------------------------------------------------------
d27db1ede3 | Adam Borowski | 2013-06-28 23:45:12 +0200

Reformat some perl.
Mostly so I don't get spammed when forgetting to restrict a search to *.cc
*.h files only.  There's too much idiosyncratic formatting to force a
standard without thinking about it first.

We seem to have a bunch of unused scripts, perhaps some should get pruned
away?

--------------------------------------------------------------------------------
5623267e12 | Adam Borowski | 2013-06-28 23:45:12 +0200

Reformat perlin.cc
I left it aside in the past, but it stands in the way of automated checks.

--------------------------------------------------------------------------------
072dbc411b | ontoclasm | 2013-06-28 02:42:46 -0500

Silver wall tile.

--------------------------------------------------------------------------------
1a4dbc55a1 | Pete Hurst | 2013-06-28 06:50:58 +0100

Clean up layout_forest
There were some WIP versions intended for different branches
which are pretty redundant now this layout has a proper home.
Stopped it spawning at all in D/Lair. Left in some still
unused code for a possibly more interesting Crypt version.

--------------------------------------------------------------------------------
30a82c2f1e | Pete Hurst | 2013-06-28 06:50:57 +0100

Rename layout_woods -> layout_forest for clarity

--------------------------------------------------------------------------------
94441c8f0a | ontoclasm | 2013-06-28 00:28:35 -0500

Spirit wolf tile

--------------------------------------------------------------------------------
e955d0971c | Brendan Hickey | 2013-06-27 20:43:38 -0700

Revert "Demonic Taxonomy"
This reverts commit f2d916f53646c573646c5c00db4cb96d3c2cc20f.

--------------------------------------------------------------------------------
293a9bd91f | Pekka Lampila | 2013-06-28 04:26:59 +0300

Fix tiles rendering issue changing between levels
When in level map mode (X) items/monsters/clouds from another level
could show up in your LOS when switching back to your level.

--------------------------------------------------------------------------------
f2d916f536 | Brendan Hickey | 2013-06-27 18:14:38 -0700

Demonic Taxonomy
Give most demons a general genus, one of:
imp, devil, demon, fiend.

--------------------------------------------------------------------------------
5407d3d89c | Pekka Lampila | 2013-06-28 02:55:37 +0300

Fix the minibar bug on WebTiles too
Minibars showing on levels when player isn't there.

--------------------------------------------------------------------------------
5d39a2d61c | Pekka Lampila | 2013-06-28 02:38:14 +0300

Fix minibars showing on levels without the player
Fixed for local tiles only.

--------------------------------------------------------------------------------
930cbe78ba | Pekka Lampila | 2013-06-28 01:01:59 +0300

Allow logging in while watching someone

--------------------------------------------------------------------------------
387bd6833a | Pekka Lampila | 2013-06-28 01:01:59 +0300

Ask login if necessary when starting WebTiles game
Previous behaviour was redirecting to lobby if anonymous user navigated
to #play... URL directly.

--------------------------------------------------------------------------------
048af079fd | Neil Moore | 2013-06-27 17:12:44 -0400

Add blackcustard, elliott, qoala, infiniplex, and lainiw to CREDITS.txt.
If you want to be listed differently, let us know; real names or handles
are fine, but "Remove cTele MarvinPA" is not :P

--------------------------------------------------------------------------------
33c7f1cf6d | Neil Moore | 2013-06-27 16:07:40 -0400

Mark unknown scrolls as useless for hot lava orcs (SamB)

--------------------------------------------------------------------------------
4073216d89 | Adam Borowski | 2013-06-27 12:11:38 +0200

A desc for the book of battle.

--------------------------------------------------------------------------------
f5f1ecf758 | Adam Borowski | 2013-06-27 12:11:38 +0200

Brace fixes.

--------------------------------------------------------------------------------
d9bcf15909 | Neil Moore | 2013-06-27 03:48:41 -0400

Fix formatting.

--------------------------------------------------------------------------------
be8bae766e | Neil Moore | 2013-06-27 03:48:23 -0400

Correct Grinder's genus.
This was a holdover from when crimson imps were less crimson, and all
imps shared a genus.

--------------------------------------------------------------------------------
f858f51a72 | Brendan Hickey | 2013-06-27 00:20:17 -0700

Add Polymoth to the Lair

--------------------------------------------------------------------------------
b41e2e4416 | Brendan Hickey | 2013-06-27 00:03:46 -0700

Disable Polymoth Downgrades
Downgrades pose a problem with monsters that are at the peak of their genus.

--------------------------------------------------------------------------------
d404acea72 | Brendan Hickey | 2013-06-26 23:43:27 -0700

Further restrict polymoth's polymorph.
Introduce a level restriction on polymoth.
-2 HD to +6 HD, with peak weight on +2 HD.
Don't polymorph things that the moth can't see, or things that are
out of the player's view.

--------------------------------------------------------------------------------
3d753450ac | Brendan Hickey | 2013-06-26 23:21:32 -0700

Polymo{th,rph} tweaks.
1. Don't polymorph godless monsters into priests.
2. Add a flag to monsters that have been polymorphed.
3. Don't allow the polymoth to upgrade a monster more than once.

--------------------------------------------------------------------------------
5cefd36564 | DracoOmega | 2013-06-27 01:49:07 -0230

Note Flayed and Engulfed in the logfile

--------------------------------------------------------------------------------
0f126f1a82 | Pekka Lampila | 2013-06-27 06:49:33 +0300

Show hp/mp minibars in WebTiles while transformed
Also remove two function calls that did nothing.

--------------------------------------------------------------------------------
0759d6088d | Pete Hurst | 2013-06-27 04:42:27 +0100

Clarify wording of changelog for summons cap
The nerf affects temporary summons; I did not mean to
imply that the nerfs were intended to be temporary.

--------------------------------------------------------------------------------
f055fc9312 | Steve Melenchuk | 2013-06-26 21:31:22 -0600

RANDOM_SAME_GENUS polymorph fixes.
_valid_morph was silently redefining the monster it was checking for,
allowing uniques to slip through the cracks; the second _valid_morph
call in monster_polymorph was also losing valid RANDOM_SAME_GENUS
targets to this kind of check.

Polymorphs using this target should operate fine now.

--------------------------------------------------------------------------------
21574ffe55 | ontoclasm | 2013-06-26 20:37:13 -0500

Display spectral sacred scourges correctly.

--------------------------------------------------------------------------------
27446dabdf | Neil Moore | 2013-06-26 20:53:13 -0400

Make spell list indentation more consistent.

--------------------------------------------------------------------------------
b3842a7360 | Neil Moore | 2013-06-26 20:51:45 -0400

Make Spectral Weapon Charms/Hexes, not Conj.
No more Vehumet support or gifting.

--------------------------------------------------------------------------------
08e2697027 | Neil Moore | 2013-06-26 20:08:15 -0400

Allow vampires to Cure Poison whenever they have blood (#7261).
Still prevent it when they are bloodless and therefore poison-immune,
for consistency with liches.  There may be residual (grey) poison,
but Cure Poison won't touch it.

--------------------------------------------------------------------------------
1baffba3f7 | Neil Moore | 2013-06-26 19:20:41 -0400

Don't crash when a monster instakills another with LRD.

--------------------------------------------------------------------------------
8f3e77d901 | Neil Moore | 2013-06-26 19:20:34 -0400

Let monster_die take a const killer.

--------------------------------------------------------------------------------
baa47d0fd4 | Neil Moore | 2013-06-26 16:21:43 -0400

Fix display of HP costs (#7267).
Broken by 0.13-a0-548-g832c960.

--------------------------------------------------------------------------------
b463ac89eb | Chris Campbell | 2013-06-26 19:22:42 +0100

Increase cap and timeout of demonic horde

--------------------------------------------------------------------------------
78cd2d8914 | Neil Moore | 2013-06-26 13:43:37 -0400

Fix spelling (elliott)

--------------------------------------------------------------------------------
bcb461393b | Adam Borowski | 2013-06-26 19:40:48 +0200

Multiply before division, not after.

--------------------------------------------------------------------------------
e7f48cfcf7 | Neil Moore | 2013-06-26 13:32:49 -0400

Revert "Fix compilation with old (4.1) GCC and libstdc++"
Since we have removed the ambiguous calls; and since there are other
toolchains where pow(int,int) is a problem (see #7265).

This reverts commit cae46e358690cf86f43a5743b5b048be0652072e.

Conflicts:
	crawl-ref/source/skills.cc

--------------------------------------------------------------------------------
e6f16a25c2 | Adam Borowski | 2013-06-26 19:30:04 +0200

Revert "Reduce giant mites' range a mite."
So here you go, you still have a chance to summon one at 10 Evoc, once in
a blue moon.

This reverts commit de8e8e0bc01e85ea6c1f5c3a9b9f243371f7bf1e.

--------------------------------------------------------------------------------
afa23c3528 | Adam Borowski | 2013-06-26 19:25:51 +0200

Scale the calculations in mon-pick by 2520.
The algorithm was designed with values based at 10000 in mind so numbers
small enough to zero off were not a concern, they could be avoided by scaling
up the data in other users of that code, but it's probably better to get rid
of gotchas rather than to document them.

--------------------------------------------------------------------------------
de8e8e0bc0 | Adam Borowski | 2013-06-26 19:06:42 +0200

Reduce giant mites' range a mite.
They had so small a chance that with 10 skill their effective chance was 0
because of round-offs.  It's debatable what should be done; it was not an
issue for mon-pick because the scale there is based on 10000 so rounding
is not noticeable (and was present in the old code too).

--------------------------------------------------------------------------------
cb18715fad | Adam Borowski | 2013-06-26 19:03:44 +0200

Revert "Don't fail random pick on 0 rarity"
If this assertion triggers, the data is invalid (a monster with a chance of 0),
which is exactly what it was supposed to guard against.

This reverts commit 2b2fa887ae752b55d2232950b11acaf50caf1d26.

--------------------------------------------------------------------------------
de9a4ab739 | Adam Borowski | 2013-06-26 19:02:26 +0200

Write pow(x, 0.5) as sqrt(x), for readability.

--------------------------------------------------------------------------------
e3667d170d | Adam Borowski | 2013-06-26 18:57:59 +0200

Don't use floating point pow() for squaring an int.
It's put back into an int variable right after, so range is not an issue.

--------------------------------------------------------------------------------
4cc4775752 | Ed Gonzalez | 2013-06-26 17:31:32 +0100

Leash Spectral Weapon to a range of 2, let it attack retreating targets.
Instead of only going after targets that could still be attacked by the
owner, it now chases after retreating/batty targets as long as it can
reach them while staying within 2 squares of its owner.

This makes it more likely to attack such targets, but also runs the risk
of putting itself (and thus the owner) at more risk.

--------------------------------------------------------------------------------
a9b6166ebe | Ed Gonzalez | 2013-06-26 17:31:32 +0100

On reset of a Spectral Weapon, remove the target if we're not tracking.

--------------------------------------------------------------------------------
9df61e6a4e | Ed Gonzalez | 2013-06-26 17:31:31 +0100

Prefix spectral weapon properties with "sw_" and use #define for them.
This allows easier understanding of what code uses the properties,
reduces chances of conflicts, and helps catch mispellings.

--------------------------------------------------------------------------------
84cbdbc3d4 | Ed Gonzalez | 2013-06-26 17:31:31 +0100

Make Spectral Weapon reset on player's next turn for real this time.
If the Spectral Weapon hasn't attacked by the player's next turn, it
gets reset.  This occurs either right before the next order is given to
the weapon, or (if the player did something else) after the player's
turn.

Unlike 04540f5, this reset mechanism doesn't prevent the spectral weapon
from ever attacking.

--------------------------------------------------------------------------------
2b2fa887ae | Pete Hurst | 2013-06-26 17:27:09 +0100

Don't fail random pick on 0 rarity
It can happen, seen at the lower bound of "DOWN" distribution
types, but can probably for others too.

--------------------------------------------------------------------------------
1fea7b84a6 | Pete Hurst | 2013-06-26 17:10:42 +0100

Revert "Fix previously broken but moot polymorph validity check for M_UNIQUE"
This reverts commit 6e1df92eca0744543f6cbea42e50e11d4b57f691.

--------------------------------------------------------------------------------
25ff00942c | Adam Borowski | 2013-06-26 11:45:51 +0200

Fix a build failure on OS X.
Unlike Grandiloquent Gentleman (the bug report submitter)'s patch, let's
just use integer multiplication instead of mucking with pow() and casts.

--------------------------------------------------------------------------------
41e6c147ee | Adam Borowski | 2013-06-26 11:37:39 +0200

std::cide.

--------------------------------------------------------------------------------
94868c548c | Adam Borowski | 2013-06-26 11:32:14 +0200

Sync manual from the wiki.

--------------------------------------------------------------------------------
6e1df92eca | Pete Hurst | 2013-06-26 09:03:51 +0100

Fix previously broken but moot polymorph validity check for M_UNIQUE
Normal random polymorph only worked on base classes anyway so this
was irrelevant; but since with RANDOM_SAME_GENUS we're actually working
with proper monster types, checking M_UNIQUE became important,
revealing this flaw.

--------------------------------------------------------------------------------
dfd74346f1 | Pete Hurst | 2013-06-26 08:53:56 +0100

Don't let random polymorph rarely produce unvalidated monster types

--------------------------------------------------------------------------------
446ab8583d | Brendan Hickey | 2013-06-26 00:23:14 -0700

Prohibit polymothing firewood.

--------------------------------------------------------------------------------
efe6ee7f08 | Neil Moore | 2013-06-26 03:20:56 -0400

Revert "Make Spectral Weapon reset on player's next turn if it hasn't attacked."
It was preventing them from attacking at all.  qoala is working on a
better solution to the original problem ("saving up" a SW attack).

This reverts commit 04540f58001281626c71620fdd56ef4cf216de79.

--------------------------------------------------------------------------------
e7efbb0ace | Brendan Hickey | 2013-06-26 00:12:52 -0700

Nerf Polymoth

--------------------------------------------------------------------------------
6496115bf4 | Brendan Hickey | 2013-06-26 00:07:13 -0700

Merge branch 'madness'

--------------------------------------------------------------------------------
b1b9bc4e78 | Brendan Hickey | 2013-06-26 00:00:19 -0700

Merge branch 'madness'
Conflicts:
	crawl-ref/source/enum.h

--------------------------------------------------------------------------------
f1b15bb12c | Pete Hurst | 2013-06-26 07:46:13 +0100

Reference the same mc variable for the valid check and the actual poly

--------------------------------------------------------------------------------
fac9540dfc | Pete Hurst | 2013-06-26 07:42:53 +0100

Formatting fixes

--------------------------------------------------------------------------------
bfd7fd8dd3 | Neil Moore | 2013-06-26 02:36:11 -0400

Fix overflow in curse skull monster energy pickup_percent.
Curse skulls got an action energy of 15, meaning their pickup_percent
was 150, outside the range of the int8_t that stores it.  Since none
of the energy usage numbers should be negative, make that a uint8_t
instead.  Also change the other members to uint8_t so we don't need
duplicate overloaded versions of combine().

This wasn't actually relevant to curse skulls, since they had
MONUSE_NOTHING, but it was producing a compiler warning and more
importantly could turn up with some future monster.

--------------------------------------------------------------------------------
56ebb6fef7 | Brendan Hickey | 2013-06-25 23:31:31 -0700

Add a polymoth quote.

--------------------------------------------------------------------------------
2325c62cd8 | Brendan Hickey | 2013-06-25 23:09:29 -0700

Moth of Madness -> Polymoth

--------------------------------------------------------------------------------
cae46e3586 | Neil Moore | 2013-06-26 02:09:21 -0400

Fix compilation with old (4.1) GCC and libstdc++
We use GCC version <= 4.1 as the criterion for the fix (which is the
same as the similar Solaris fix).  Probably we could use __GLIBCXX__
and/or __GLIBCPP__ to detect this better, but I haven't been able
to test that (in particular, old g++ with a different libstdc++).

This reverts commit 0e1e71dfe8e254a2d925fcb0a7ee6905c4175dd1.  We still
have to do some kind of casting for that particular case, though,
because the first argument is unsigned.

--------------------------------------------------------------------------------
f7884f7272 | DracoOmega | 2013-06-26 02:27:12 -0230

Adjust lost soul sacrifice behavior
Instead of always sacrificing themselves for the first valid ally
killed within range of them, lost souls will prefer to ignore the
deaths of low HD allies, so long as at least one other valid ally
is near them. If several lost souls are clustered together, they
will be more likely to sacrifice themselves for weaker things.

I am somewhat less sure of this commit than the last one, as I
wonder if it might be unintuitive for souls to sometimes trigger
and sometimes not, but the hope is that they will waste their
ability on junk like wights and flying skulls less often, where
its gameplay effect is virtually unnoticable.

--------------------------------------------------------------------------------
f6b079455c | DracoOmega | 2013-06-26 02:27:11 -0230

Adjust lost soul ally teleport behavior
Instead of teleporting to a random revivable ally when solitary, they
will now prefer to teleport towards allies with high HD (randomized
somewhat). Moreover, they will consider this ally they teleported to
to be their band leader, so they will follow it around instead of possibly
wandering away again.

Hopefully this will cause them to show up in relevant spots more often
and spent less time running into the player while isolated, and disappearing
again.

--------------------------------------------------------------------------------
14ef7167d7 | DracoOmega | 2013-06-26 02:27:10 -0230

Give vampire knights a 1-in-4 chance of coming with a pair of phantasmal 
warriors

--------------------------------------------------------------------------------
e381e79d48 | DracoOmega | 2013-06-26 02:27:09 -0230

New monster flag M_VIGILANT
This flag makes a monster always wake up when the player comes into
LoS and never naturally forget about them (though stairs and teleports
and such still work)

This is intended at the moment for curse skulls, to simulate their
previous behavior of generating awake, but also to keep them from
simply wandering off if you wait long enough while one is outside your
LoS. Possibly it could eventually make sense for other magical sentinels
(eg: golems, once golems are better)

--------------------------------------------------------------------------------
2034c5180c | DracoOmega | 2013-06-26 02:27:08 -0230

Acquaint Curse Skulls with their inner mushroom
This commit experimentally gives curse skulls a variant on wandering
mushroom AI, making them no longer strictly stationary. Like mushrooms,
they cannot move while the player can see them, however they do not
simply close as close as possible while unseen, since this allows
players to trivially lure them around corners and enter into melee
range the first turn they come into LoS (and they're not very scary in
this case).

Instead, the curse skull will attempt to maintain a maximal distance
from whichever spot the player would need to move to approach them,
while maintaining LoS to this spot. In effect, when you round a corner,
they should be waiting at the end of the corridor instead of right next
to you.

This tracking behavior is player-centric, but since their movement
restrictions (as with mushrooms) are ALSO player-centric, I felt that was
fine. It does make them slightly omniscient when you are near them (and
they are awake and tracking you), but I figure that can be flavorfully
explained by the manner in which they are a 'curse' upon you.

They move at the same speed as flying skulls (15), but have normal action
speed. At the same time I have also greatly reduced their AC, and reduced
their hp somewhat as well. Now that players will be more forced to confront
them, I wanted to make it more reasonable for certain players to actually
kill them (as previously, the only good answer some characters had to them
was to ignore them)

Possibly they are too scary now, but I think it's worth seeing how they
play out this way, and the fact that they cannot approach you while resting
gives you a number of options for positioning them, even if you can't simply
ignore them either.

--------------------------------------------------------------------------------
e9985e14a0 | DracoOmega | 2013-06-26 02:27:06 -0230

Don't give tengu reavers a chance for crossbows and longbows
Also correct vault wardens getting orcish equipment by default

--------------------------------------------------------------------------------
cd53f8bb63 | DracoOmega | 2013-06-26 02:27:05 -0230

Tengu reaver tweaks
Increase their HD, lower hp a little, increase damage of primary melee attack
but lower aux damage slightly, replace sense invis with see invis (sense is
supposed to be reserved for primarily non-visual detection). Remove emergency
blink, and add a second copy of a direct conjuration (which can trigger
battlesphere) to each book that had only one.

--------------------------------------------------------------------------------
32214089a7 | DracoOmega | 2013-06-26 02:27:04 -0230

Correct a major timing issue with monster battlespheres
Since the change to how monster turns are ordered (being interleaved
based on speed/energy instead of consecutively based on index), monster
battlesphere are no longer nearly guaranteed to act after their caster.
This meant that, from the player's perspective, the battlesphere would
fire one turn AFTER the spell that triggered it. Worse, it would be
aimed at where the player was standing that turn, so it was possible
to dodge by moving.

I have addressed this by making monster battlesphere triggering reset
the battlesphere to a full turn's worth of energy, and then reinsert
it into the monster action queue. (This reinsertion is necessary since
it is quite likely it would not be otherwise examined until the following
turn, no matter how much energy it had.) I do not think that cases where
two copies of the same monster end up in the queue at once will have
any effect, as popped monsters with unsufficient or modified action
energy are simply ignored.

--------------------------------------------------------------------------------
3a60844e6e | DracoOmega | 2013-06-26 02:27:03 -0230

Correct an alarming message when waterstrike is cast on a monster out of LoS

--------------------------------------------------------------------------------
975aacb29f | Steve Melenchuk | 2013-06-25 22:39:33 -0600

Give Ogres previously forced to start with a short sword a club instead.
This covers OgHus and OgArs.

No slightly sane ogre is going to take a short blade with them as a
backup (or primary) weapon when going on an adventure; they're going to
take a big stick to hit things with, which is what they do best. OgAses
and OgEns are already intelligent enough to do this - they got clubs
instead of daggers (so do TrAses and TrEns; TrHus and TrArs don't get
weapons, so they're not covered by this change).

Slightly more controversially, I'm making this a +1 club instead of a +0
short sword. I don't think anyone will dispute that clubs are terrible
weapons; it's possibly mechanically equivalent to swap out clubs for
daggers and expect them to perform similarly (not for stabbing
purposes), but a club is going to perform noticeably worse than a short
sword. Really, I think it would make more sense for this to be another
weapon type, but I don't think whips or hammers (the maces classed
between clubs and, well, maces) make thematic sense (and hammers are
used essentially nowhere anyway).

--------------------------------------------------------------------------------
163e2c0a6e | Steve Melenchuk | 2013-06-25 22:27:56 -0600

Adjustments to layout_grid_shapes.
The individual areas can now have different shapes from each other, and
there are a few more shapes to choose from.

Pan gets the cavey version of the layout half the time.

Finally, the layout's enabled for Zot, where it gets a slightly
distorted version of the shapes.

--------------------------------------------------------------------------------
ccfd96d8f9 | Chris Campbell | 2013-06-26 05:19:34 +0100

Update Infusion description
It no longer has an effect with 0 MP.

--------------------------------------------------------------------------------
01b5d9323c | Pete Hurst | 2013-06-26 04:55:29 +0100

Adjust Box of Beasts probabilities
Wargs/wolves needed swapping around and some higher-level monsters
have been made available at lower power levels.

--------------------------------------------------------------------------------
5527b47284 | Pete Hurst | 2013-06-26 04:42:30 +0100

Fix formatting and simplify (Spectral Weapon)

--------------------------------------------------------------------------------
377061b7f7 | Pete Hurst | 2013-06-26 04:42:29 +0100

Don't cap Makhleb demons

--------------------------------------------------------------------------------
43dcbeda25 | Ed Gonzalez | 2013-06-26 04:42:29 +0100

Add spectral weapons to more shared special cases with dancing weapons.
They can no longer be disarmed or self-unwielded.  Nor should they have
a body.

--------------------------------------------------------------------------------
6cfaa00009 | Ed Gonzalez | 2013-06-26 04:42:28 +0100

Moved the setting of Spectral Weapon stats to ghost code, like dancing.
By initialising the weapon's stats using a ghost, more properties can be
easily set.  Also vault/wiz-mode placed spectral weapons now get
appropriate stats, as if the spell had been cast at max power and max
weapon skill.

Spectral weapons still shouldn't be placed directly in normal games.

--------------------------------------------------------------------------------
f0fb5c9c8b | Ed Gonzalez | 2013-06-26 04:42:28 +0100

Make spectral weapon speed 30.
For the moment, it still won't follow every attack from a hasted quick
blade user attacking at the minimum delay cap, but this is as fast as a
monster can get without funny energy usage tweaks.

--------------------------------------------------------------------------------
e24769a334 | Ed Gonzalez | 2013-06-26 04:42:27 +0100

Allow spectral weapons to be placed by mons spec, like dancing weapons.
The syntax is 'spectral weapon ; (weapon)'.  Note that the AI is
non-functional when placed by anything but the spell.  No vault should
place a bare spectral weapon and expect it to do anything useful.

This change is mostly so that the monster utility can generate spectral
weapons.  However, the stats are currently only set properly by the
actual casting code.

--------------------------------------------------------------------------------
04540f5800 | Ed Gonzalez | 2013-06-26 04:42:27 +0100

Make Spectral Weapon reset on player's next turn if it hasn't attacked.
This parallels how battlesphere already resets if it couldn't carry out
the order.  Now a trapped spectral weapon won't still have an attack
order if it is later freed.

--------------------------------------------------------------------------------
a819e60027 | Steve Melenchuk | 2013-06-25 21:12:00 -0600

A minor adjustment to coc_grunt.
I originally intended for pairs of adjacent islands to be within LOS of
each other so that players could Blink across (or similar); this wasn't
the case early on in the chain.

Thus, a couple of the early islands are larger to make this possible.

--------------------------------------------------------------------------------
8e19f4f71f | Steve Melenchuk | 2013-06-25 21:12:00 -0600

Get dlua set_border_fill_type() working again.
This was introduced in 550af32 with the intent that it be used in portal
vaults, and (possibly unintentionally) disabled in c346361.

Three vaults that were intended to use this functionality now do so; the
original vault that used it, trove_treasure_island, never had the call
removed, so it's now working as 550af32 intended it to look.

--------------------------------------------------------------------------------
4b63c23585 | Samuel Bronson | 2013-06-25 22:39:43 -0400

MuSu be hard now (Lightli)

--------------------------------------------------------------------------------
e7ba346534 | Pekka Lampila | 2013-06-26 05:22:14 +0300

Revert "Fix a rare case of WebTiles game not loading right"
This reverts commit d7ebfe9bcc03e64bdcbc335f2d79b4bfe65aa5f5.

Causes issues with older game versions.

--------------------------------------------------------------------------------
2d69a081cf | Pete Hurst | 2013-06-26 03:06:39 +0100

Simplify

--------------------------------------------------------------------------------
01a62397e1 | Pete Hurst | 2013-06-26 03:04:36 +0100

Improve grammar

--------------------------------------------------------------------------------
1c05258250 | Pete Hurst | 2013-06-26 03:03:30 +0100

Correct "mindless thrall" message for normal summons

--------------------------------------------------------------------------------
cca2df18b6 | Neil Moore | 2013-06-25 21:26:16 -0400

Check ranges in data_index directly.
Also, have operator[] take a key rather than a raw integer.

--------------------------------------------------------------------------------
9c62d115c6 | Neil Moore | 2013-06-25 21:26:02 -0400

Fix one more potential summon cap crash.

--------------------------------------------------------------------------------
e456207866 | Pete Hurst | 2013-06-26 02:16:49 +0100

Fix assert due to negative spell type special values

--------------------------------------------------------------------------------
e0cc749858 | Pete Hurst | 2013-06-26 02:08:32 +0100

Let scroll of summoning ignore the summons cap

--------------------------------------------------------------------------------
91d4c8fd38 | Pete Hurst | 2013-06-26 02:05:52 +0100

Prevent segmentation faults
Some non-spell_type values sometimes get used for the spell
type of summons, this was causing an illegal value to get
looking up in the index array.

--------------------------------------------------------------------------------
7e562a13fb | Pekka Lampila | 2013-06-26 03:57:46 +0300

Fix moving directly from playing to watching
This only matters when manually changing the URL hash.

--------------------------------------------------------------------------------
30db7bbd8c | Pekka Lampila | 2013-06-26 03:10:42 +0300

Go to the lobby if URL hash is not recognised

--------------------------------------------------------------------------------
d7ebfe9bcc | Pekka Lampila | 2013-06-26 03:06:01 +0300

Fix a rare case of WebTiles game not loading right

--------------------------------------------------------------------------------
3d7cb1c156 | Pete Hurst | 2013-06-25 23:39:55 +0100

Give dragons a higher timeout
This gives dragons the highest post-cap timeout; you can
bump up your numbers very briefly in a fight but it has
a huge MP cost.

--------------------------------------------------------------------------------
34af3d884e | Pete Hurst | 2013-06-25 23:39:54 +0100

Add missing hydra cap (MarvinPA)

--------------------------------------------------------------------------------
de968b40ac | Pete Hurst | 2013-06-25 23:39:54 +0100

Updated changelog for summons changes

--------------------------------------------------------------------------------
c9aeb2f76b | Pete Hurst | 2013-06-25 23:39:54 +0100

Add missing cap for Call Canine Familiar

--------------------------------------------------------------------------------
76eb256cec | Pete Hurst | 2013-06-25 23:39:54 +0100

Report summons limit in spell descriptions

--------------------------------------------------------------------------------
7ee24ace8f | Pete Hurst | 2013-06-25 23:39:53 +0100

Generate big XXX's first
Because more can be cast than the summon limit allows, the small ones
might have overwritten the big ones. This way, you're more likely to
end up with just the big ones at higher power.

--------------------------------------------------------------------------------
34d2006a2b | Pete Hurst | 2013-06-25 23:39:53 +0100

Tweak summon cap values

--------------------------------------------------------------------------------
9c9822334f | Pete Hurst | 2013-06-25 23:39:53 +0100

Report MB_SUMMONED_CAPPED in more contexts

--------------------------------------------------------------------------------
45ee3ac0a2 | Pete Hurst | 2013-06-25 23:39:53 +0100

Expire off-level temporary summons
This prevents the tactic of making an army, then pulling monsters from another
floor back into the middle of it. It also slightly reduces summons stair
management annoyance by making it only possible for permanent summons.

--------------------------------------------------------------------------------
cd5cde088e | Pete Hurst | 2013-06-25 23:39:52 +0100

Notify which monsters are expiring due to the summons cap
This needs a status icon (for MB_SUMMONED_CAPPED).

--------------------------------------------------------------------------------
7e50c859fa | Pete Hurst | 2013-06-25 23:39:52 +0100

Allow non-capped temporary summons to use stairs too
It might otherwise require lots of special-casing because certain
temporary summons (e.g. Box of Beasts) probably should be allowed
to use stairs. This might need further review however.

--------------------------------------------------------------------------------
a989e5d4f7 | Pete Hurst | 2013-06-25 23:39:52 +0100

Notify summon stair usage in monster description

--------------------------------------------------------------------------------
cf90cb503b | Pete Hurst | 2013-06-25 23:39:52 +0100

Prevent temporary summons using stairs

--------------------------------------------------------------------------------
f4ea62d10a | Pete Hurst | 2013-06-25 23:39:51 +0100

Fix a bug and simplify
Enemy summons could have been counted as yours.

--------------------------------------------------------------------------------
178395be99 | Pete Hurst | 2013-06-25 23:39:51 +0100

Limit number of summons per spell type
For each summoning spell there is a limit of how
many summons can be created. Going over this limit
means that the older ones will time out in a turn
or two.

Currently this is applied only to non-necromantic
non-permanent player summons.

This summonsdata[] array can be modified to change
the cap and timeout (i.e. how long old summons last
when they are replaced by new ones) per spell type.

To support a new spell, a called to summoned_monster
is required after the monster has been created, and
the spell needs to be listed in summonsdata[].

--------------------------------------------------------------------------------
3273a34d98 | Pete Hurst | 2013-06-25 23:39:51 +0100

A data indexer template
This takes some coding out of creating an enum-indexed data list (existing
examples would include lists of player status data, spell data, etc.)

--------------------------------------------------------------------------------
358542fc07 | Steve Melenchuk | 2013-06-25 15:55:18 -0600

Idiomise an artefact wield message.

--------------------------------------------------------------------------------
c32c622934 | Adam Borowski | 2013-06-25 23:17:28 +0200

Brace fixes.

--------------------------------------------------------------------------------
616bb86544 | Pete Hurst | 2013-06-25 20:10:19 +0100

Consistent spelling of artefact

--------------------------------------------------------------------------------
a1e108d6b5 | Pete Hurst | 2013-06-25 20:03:49 +0100

Clarify the reason for Spectral Weapon to not work on special unrands
"Certain powerful named artifacts possess too strong a spirit for this spell
to be able to draw them out."

--------------------------------------------------------------------------------
98e7e58286 | Neil Moore | 2013-06-25 14:07:53 -0400

Fix an obsolete comment.

--------------------------------------------------------------------------------
9f0588190d | Neil Moore | 2013-06-25 14:05:57 -0400

Don't crash on reflected needles.
We were checking the weapon of the beam's agent(), but reflected beams
returned the reflector, not the original agent.  Add a new parameter
to bolt::agent() to handle this.

--------------------------------------------------------------------------------
5898b77cf4 | Chris Campbell | 2013-06-25 19:01:12 +0100

Don't allow creating spectral weapons from special unrands

--------------------------------------------------------------------------------
11b27dd320 | Chris Campbell | 2013-06-25 18:33:31 +0100

Don't start Sk with a potion of berserk rage
They shouldn't need it anymore.

--------------------------------------------------------------------------------
e7a2ba69b8 | Chris Campbell | 2013-06-25 18:33:30 +0100

Remove a useless check (#7256)

--------------------------------------------------------------------------------
022f7ff42b | Pete Hurst | 2013-06-25 18:10:53 +0100

Update Box of Beasts due to war dog removal
Wolves instead of war dogs, and wargs now are used
at higher tiers.

--------------------------------------------------------------------------------
5476c2e176 | DracoOmega | 2013-06-25 10:00:40 -0230

Fix Infusion granting a free turn to any monster you hit with it.

--------------------------------------------------------------------------------
d24a36bb0b | Adam Borowski | 2013-06-25 12:58:09 +0200

Unrecommend DjSk.
Spirit Shield doesn't work, Infusion serves no purpose but killing yourself,
other spells are no better than for other races.

--------------------------------------------------------------------------------
835603786c | Adam Borowski | 2013-06-25 12:11:38 +0200

A mandatory quote for water nymphs.

--------------------------------------------------------------------------------
9abb773f6a | Adam Borowski | 2013-06-25 11:40:13 +0200

Fix build: use the correct file name for spectral spear.

--------------------------------------------------------------------------------
1ac67ab660 | Adam Borowski | 2013-06-25 11:26:54 +0200

Fix a typo in Kikubaaqudgha's name.

--------------------------------------------------------------------------------
ec64162d13 | ontoclasm | 2013-06-25 02:07:04 -0500

Make spectral short blades actually short

--------------------------------------------------------------------------------
be9a32c9e8 | ontoclasm | 2013-06-25 02:01:07 -0500

Spectral weapon tiles

--------------------------------------------------------------------------------
f800a4aa50 | ontoclasm | 2013-06-24 23:28:45 -0500

Tile for STOP_SINGING

--------------------------------------------------------------------------------
23c04d06ed | ontoclasm | 2013-06-24 23:20:31 -0500

New Skald spell icons.

--------------------------------------------------------------------------------
039544c735 | Pekka Lampila | 2013-06-25 07:07:59 +0300

Gray out abils that can't be used due to confusion

--------------------------------------------------------------------------------
43d52695af | Pekka Lampila | 2013-06-25 06:56:10 +0300

Add few missing crawl_state.zero_turns_taken calls

--------------------------------------------------------------------------------
9434574a16 | Pekka Lampila | 2013-06-25 06:46:16 +0300

Don't allow using abilities in tiles while berserk

--------------------------------------------------------------------------------
472aeb62aa | Pekka Lampila | 2013-06-25 05:25:49 +0300

Unload old game data on version change in WebTiles
This uses internal requirejs API onResourceLoad:
https://github.com/jrburke/requirejs/wiki/Internal-API:-onResourceLoad

Not totally sure if this gets rid of all the references (via events and
such), but at least the obvious bugs are fixed.

--------------------------------------------------------------------------------
223db2b65c | Pekka Lampila | 2013-06-25 05:25:49 +0300

Update to the latest require.js version (2.1.6)

--------------------------------------------------------------------------------
7af579ed5e | Steve Melenchuk | 2013-06-24 20:05:33 -0600

Functionality for allowing overflows to place variable altar counts.
This leverages the map_parameters functionality rediscovered in the
previous commit to pass the tag (or tags) used to select the map when
placing overflow vaults; generic overflow vaults get a
"temple_overflow_generic_#" tag where # corresponds to the number of
vaults the vault is supposed to place. To indicate that the vault
supports a variable number of altars, it can be tagged with all of the
relevant

An ancient vault - minitemple, once upon a time known as minivault_3 -
has been resurrected here to illustrate the concept; it can place up to
fourteen(!) altars, but of course normally places far less than that.

Another more interesting variation on the theme is presented in the new
grunt_overflow_temple_open; it places up to eight altars in patterns
surrounding a central feature.

--------------------------------------------------------------------------------
2060552ae5 | Steve Melenchuk | 2013-06-24 20:05:33 -0600

Fix layout_cathedral_of_symmetry unintenionally always being polar.
It's supposed to be polar only when placing a central map, but this was
being detected very, very incorrectly.

This leverages functionality first introduced in 5a78294 and
subsequently unused since 075a39c - dgn.map_parameters(), which is
passed as "layout" if the map is being generated as a layout or
"central" if it's specifically being used for a central vault.

I'll have another use for that in another commit or two.

--------------------------------------------------------------------------------
83703f7aa9 | Pekka Lampila | 2013-06-25 04:44:04 +0300

Fix a typo

--------------------------------------------------------------------------------
e9328fb77a | Pete Hurst | 2013-06-25 02:39:57 +0100

There are four spells not three

--------------------------------------------------------------------------------
0c6d868b61 | Pete Hurst | 2013-06-25 02:35:03 +0100

Missed Spectral Weapon in changelog

--------------------------------------------------------------------------------
be96d22e09 | Adam Borowski | 2013-06-25 02:40:24 +0200

Formatting fixes.

--------------------------------------------------------------------------------
15ad2c855d | Pete Hurst | 2013-06-25 01:25:56 +0100

Prevent plants generating in walls in Forest layout
Adding the vault flag should stop any vaults overwriting
these squares.

--------------------------------------------------------------------------------
b629d907d1 | Pete Hurst | 2013-06-25 01:13:24 +0100

Fix changelog entry (qoala)

--------------------------------------------------------------------------------
861dd1520d | Pete Hurst | 2013-06-25 01:09:10 +0100

Mention MSVC compilation in changelog

--------------------------------------------------------------------------------
59976b1493 | Pete Hurst | 2013-06-25 01:04:42 +0100

Updated changelog for Skalds

--------------------------------------------------------------------------------
40bf766be1 | Pete Hurst | 2013-06-25 01:04:41 +0100

Formatting fixes

--------------------------------------------------------------------------------
36317e3f87 | Chris Campbell | 2013-06-25 00:22:26 +0100

Rename the Spirit Shield spell to Song of Shielding
Since it has a different mechanic to the already-existing spirit shield
(fully absorbing damage instead of splitting it between health and
magic), it needs a different name! Also add a description.

--------------------------------------------------------------------------------
f69dcf3ff6 | Pete Hurst | 2013-06-25 00:21:02 +0100

Remove leftover debug message

--------------------------------------------------------------------------------
bb5e906496 | Pete Hurst | 2013-06-24 23:30:06 +0100

Fixed ineffectual statements

--------------------------------------------------------------------------------
8b591903e2 | DracoOmega | 2013-06-24 19:57:47 -0230

Prevent monsters from using BiA more than twice between berserks
While unlikely (and mostly a concern for deep dwarf berserkers and
not spriggan ones) sometimes a berserker might get it into its head
to spam berserk hill giants at you, which is a little silly. Now
they can use BiA only twice until the next time they berserk, which
should still allow the ability to see play without getting over the
top.

--------------------------------------------------------------------------------
9e80fb2a09 | Pete Hurst | 2013-06-24 23:26:28 +0100

Merge branch 'newskald'

--------------------------------------------------------------------------------
1da4266807 | Pete Hurst | 2013-06-24 23:24:53 +0100

Give chimera proper AC/EV
Previously it was taking the (dummy) AC/EV from the MONS_CHIMERA base
class. Now it takes it from the first part and possibly the EV from
spider legs.

--------------------------------------------------------------------------------
8d1221bb49 | Ed Gonzalez | 2013-06-24 22:53:14 +0100

Removed some temporary mpr statements left over from debugging.

--------------------------------------------------------------------------------
b8ea8b7003 | Ed Gonzalez | 2013-06-24 22:52:37 +0100

Fixed crash where spectral weapon's owner no longer existed.
Now the check that the owner exists and is alive surrounds all other
work for spectral weapon damage sharing.

--------------------------------------------------------------------------------
dbd953a368 | Ed Gonzalez | 2013-06-24 22:52:37 +0100

Fixed bug with damaging one's own spectral weapon.
The test for the agent also being the player caused execution to fall to
the 'else if' block that confirmed that the non-player owner was alive,
then promptly crashed on attempting to print a monster message about the
player.

Now the check that the owner isn't damaging itself is generalized to
monsters as well as players, and is checked outside the is_player check.

--------------------------------------------------------------------------------
2dedd9c620 | Chris Campbell | 2013-06-24 20:59:43 +0100

Replace a Donald speech line (qoala)

--------------------------------------------------------------------------------
c8a6649471 | Chris Campbell | 2013-06-24 19:50:35 +0100

Revert "Don't mark invisibility as useless while corona'd"
Obsoleted by 07cc2af46d34f27.

This reverts commit 8523f043be4ce9606a3e27ecfa50fd1a2033e9d4.

--------------------------------------------------------------------------------
8bcbd07061 | Steve Melenchuk | 2013-06-24 09:18:49 -0600

More tinkering with overflow temple selection scheme.
This only computes the weight of generic overflow temples once
(previously it calculated this for every multi-god temple the game
wanted to place), and re-weights specialised overflow temples to be
placed on a (weight of applicable specialised temples) / (combined
weight of above and generics of the appropriate size).

--------------------------------------------------------------------------------
c1f1d8eb8f | Adam Borowski | 2013-06-24 15:22:33 +0200

Remove the buried loot from minmay_entry_loop.
Only spoiled players would know to dig there.

--------------------------------------------------------------------------------
687cadbd9a | Adam Borowski | 2013-06-24 15:21:11 +0200

Make all "small" entry vaults produce only one exit.

--------------------------------------------------------------------------------
2fab1c1e1f | Pete Hurst | 2013-06-24 13:58:46 +0100

Post-merge Skald cleanup
Numerous tweaks and code review:

 * Fix errors and save compat issues introduced by the merge

 * Formatting fixes

 * Some text and capitalisation tweaks

 * Clean up some leftover comments / code

 * Change some debugging messages to dprf

 * Move some bits of code to match enum positions

--------------------------------------------------------------------------------
e19fa701fa | Adam Borowski | 2013-06-24 14:05:14 +0200

Let LTO=y support clang.
Beware, I haven't seen a single successful build yet.  Versions of clang
prior to 3.3, including 3.3 without a recent patch, fail early, while
current 3.3 swapped for hours before OOMing (8GB ram + 6GB swap).

In comparison, gcc-4.7 on 256MB raspi swaps for 124 minutes before
succeeding.  But hey, it's still a step forward.

--------------------------------------------------------------------------------
356a7c0c03 | Pete Hurst | 2013-06-24 12:50:10 +0100

Merge branch 'newskalds' of git://gitorious.org/~lainiw/crawl/lain-crawl into 
newskald
Conflicts:
	crawl-ref/source/mon-stuff.cc
	crawl-ref/source/ouch.cc
	crawl-ref/source/spl-book.cc

--------------------------------------------------------------------------------
dc940a1eb3 | Adam Borowski | 2013-06-24 13:20:05 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
5e95b695c9 | Adam Borowski | 2013-06-24 13:20:45 +0200

Don't allow wizmode to set skills above 27.
There's some special-casing strewn around the code, this commit doesn't
purge most such places yet.

--------------------------------------------------------------------------------
7ad6237578 | Adam Borowski | 2013-06-24 13:20:45 +0200

Fix silver statues and curse skulls not doing anything useful out of LOS in 
ZotDef.
Broken by the summon nerf.

This fix is crude and affects stuff summoned by the player himself.  Perhaps
summons should track their summoner rather than the player?  This would
allow not only not special-casing ZotDef and the arena, but perhaps even
getting rid of the friendly/hostile inconsistency?

--------------------------------------------------------------------------------
19a8c66271 | Adam Borowski | 2013-06-24 13:20:45 +0200

Don't make wizmode stealth above 27 special.
This functionality is currently on disable(mon_sight), although I seriously
doubt anyone uses it.  If you can stop mon_act altogether, why would you
muck with stealth?

--------------------------------------------------------------------------------
294732f592 | Adam Borowski | 2013-06-24 13:20:44 +0200

Adjust monster detection during Ashenzari wrath wrt I_REPTILE.

--------------------------------------------------------------------------------
465755622d | DracoOmega | 2013-06-24 06:19:36 -0230

Prevent a labyrinth crash
It seems monster_pathfind really CAN be called without a monster (for
determining traversibility for labyrinth shifts, in this case). Oops.

--------------------------------------------------------------------------------
ea6b2e385d | Pete Hurst | 2013-06-24 07:47:37 +0100

Adjust box of beasts description
"Gestalt" has a certain nuance to its meaning;
"hybrid" is simply more accurate.

--------------------------------------------------------------------------------
766dd70442 | Pete Hurst | 2013-06-24 06:57:09 +0100

Don't crash wizmode spawning monsters in ungenerated branches
This only happened in branches that didn't generate "naturally"
when monsters tried to spawn from the upstairs. An easy fix
is to just prevent those kind of spawns.

--------------------------------------------------------------------------------
1cb780cd27 | ontoclasm | 2013-06-24 00:35:32 -0500

Thorn lotus tile

--------------------------------------------------------------------------------
d5cc3db7b4 | Pete Hurst | 2013-06-24 06:30:11 +0100

Initialise a variable

--------------------------------------------------------------------------------
3a57c8daa0 | DracoOmega | 2013-06-24 02:21:57 -0230

The great tengu migration
With their kin departing the forest for parts unknown, relocate Tengu
Reavers to late D and V (comparable to deep troll earth mage range),
and give Sojobo the same spawn locations as Frederick and similar
deep uniques.

For now I have simply disabled the Forest:$ vault that used him, but
perhaps someone else can repurpose it.

--------------------------------------------------------------------------------
163f81ea03 | DracoOmega | 2013-06-24 02:21:56 -0230

Adjust interaction between snaplasher vines and Fedhas worshippers
It is an open question whether all plant-based attacks should cease
to work against a Fedhas worshipper, but Awaken Trees has done so for
a long time, so continuing to operate under the assumption that plants
under someone else's direct control can still be hostile, this commit
adjusts snaplasher vines to be unneutralizable and also to stop the
player swapping with them, and Fedhas complaining when you hit them.

Possibly the overall behavior of dryads and Fedhas worshippers will
be changed in future, at which point this commit should be revisited.

(As a comedy note, prior to this commit, dryads would cast Awaken Vines
against a Fedhasite, then the vines would immediately start to attack
the dryad, while at the same time Awaken Trees would be attacking and
killing the vines in a perpetual chaotic melee)

--------------------------------------------------------------------------------
3d38150707 | DracoOmega | 2013-06-24 02:21:55 -0230

Make melee attacks against targets you are afraid of sometimes fail
While Cause Fear against the player can sometimes provide useful tactical
control of player movements, quite frequently the monster will just
charge on into melee anyway, rendering their own spell pointless. The aim
of this change is to make being hexed in that manner more often relevant
instead of ignorable, but continuing to inflict a restrictive effect even
in melee range.

--------------------------------------------------------------------------------
9d38e2d9f8 | DracoOmega | 2013-06-24 02:21:55 -0230

Make Minor Healing a little less minor
While the code to handle this effect uses a damage roll, the beam
setup code never actually specifies anything in this field, meaning
that minor healing heals exact 5 hp, regardless of monster HD or
anything else. On many monsters beyond the earlygame, this is
tantamount to a wasted turn and probably a lot more minor than anyone
would expect.

This commit makes it scale noticably with HD while hopefully still
keeping its overall power from being too high. Of particular notice
are titans, though I don't expect this to be excessive on even them
(and power on earlygame creatures should be similar to present).

--------------------------------------------------------------------------------
7cd8c6fcfb | DracoOmega | 2013-06-24 02:21:54 -0230

Heavily adjust Forest population weights
Weights of the various Forest inhabitants have been considerably
rebalanced, and all of the new monsters added. Various things like
death yaks and elephants have been removed (I felt they were too
iconic of Lair to use as filler, and also not terribly threatening
on their own by this depth), though a number of weaker beasts do
remain in that role. I included a few other denizens appearing
elsewhere that I felt both sufficiently 'forest-y' and powerful.

In general there should be fewer plain spriggans, a greater variety
of encounters, and more creatures which are durable and stoid as
a contrast to the spriggans.

Notable specific changes:

1) Tengu are removed from Forest. Plain tengu and tengu warriors
   were both very vanilla and generally weak, and tengu conjurers
   as well tended to be harmless while simultaneously being a forest
   fire risk with their fire and lightning spells. The presence of
   that kind of magic makes a lot of sense for tengu, but I don't
   feel they're a good fit for the terrain, and there are plenty of
   other things to fill up the bulkier end of the spectrum (as tengu
   themselves were also on the evasive end of things, if to less of
   an extreme than spriggans).

   Reavers were by far the best of the tengu monsters, in my opinion,
   and will be relocated elsewhere, along with Sojobo.

2) Two potentially controversial inclusions: minotaurs and apises.
   While Forest isn't a literal labyrinth, I felt minotaurs had a
   close enough thematic connection and could make decent encounters to
   shore up the beefier side of things. And apises, as with many other
   holies, are extremely underused and I felt fit both the idea of Forest
   being the 'life' contrast to Crypt's 'death', as well as being a wild
   animal, of which Forest can use as many as it can get. Plus I hope the
   new weakness mechanic can give them more interest here.

--------------------------------------------------------------------------------
f307f7648c | DracoOmega | 2013-06-24 02:21:53 -0230

Adjustments to Forest bands
Faun and spriggan defender bands are slightly smaller. Spriggan air
mages now come with a band of air elementals instead of other spriggans.
Spriggan riders come with a band of other riders instead of mixed
spriggans. Druids and berserkers retain their mixed bands, but have a
1 in 3 chance of spawning without a band at all. Mixed spriggan bands
have a larger chance of placing non-plain spriggans, and this list is
weighted to favor air mages (for cloud protection) and disfavor druids
and riders. The Enchantress's band also comes with a gaurenteed air
mage for the same reason. Finally, spirit wolves come in bands of
up to 3, and treants have a 1 in 4 chance of being accompanied by
a druid (who can haste them).

--------------------------------------------------------------------------------
a4d83cb4c6 | DracoOmega | 2013-06-24 02:21:52 -0230

Nerf spriggan defenders a little
30 EV was almost hilariously difficult to hit (they even come with
shields on top of it!) and they are quite deadly on top of it. This
commit reduces their EV to 25 and their melee by a smaller degree;
I expect they are still quite dangerous, which is good.

--------------------------------------------------------------------------------
16cd0f3c9e | DracoOmega | 2013-06-24 02:21:51 -0230

Remove black bears from the spriggan berserker BiA list
Even berserking and buffed, they're still extremely tame for this
depth.

--------------------------------------------------------------------------------
7b39983bd0 | DracoOmega | 2013-06-24 02:21:50 -0230

Make caniforms slightly less spammy
It summons a smaller quantity of wolves per cast, black bears are
eliminated at standard HD (though the young spriggan druid will
still summon them), and a summons last less time than before.

--------------------------------------------------------------------------------
55a826a49d | DracoOmega | 2013-06-24 02:21:50 -0230

Strip halos from some animal holies
It seems a bit unnecessary and even boring that literally EVERY holy
creature has a halo, especially when this seems more of a crusder/TSO
shtick and some of these creatures explicitly belong to someone else.

I have removed them from phoenix, apises, and pearl dragons. I would
have done so from Shedu as well, except their cast text specifically
mentions The Shining One. I left the one on holy swine for now, since
that is at least amusing (and they're basically joke monsters anyway).

--------------------------------------------------------------------------------
a2e80fb159 | DracoOmega | 2013-06-24 02:21:49 -0230

Experimentally give some starting equipment to Forest minotaurs
Even their presence in Forest is experimental, though I feel there
is a potential thematic connection there, and the branch could use
more sturdy low-EV creatures to counterbalance the spriggans.

They are given a good weapon or more rarely a rod (for now, limited
to ones without spells that would burn down trees), meant to simulate
the items they often pick up from their labyrinth caches to deal with
intruders there.

--------------------------------------------------------------------------------
f7e3f385c8 | DracoOmega | 2013-06-24 02:21:48 -0230

Unbreak Thorn Hunter bunkering behavior
It is a somewhat alarming sign of how brittle it might be that it
managed to stop working across just the commits in this branch,
and the 'solution' feels like major hack to me as well.

Fixing general monster pathfinding around briar patches meant that
thorn hunters would no longer bother to fire through them, but
instead simply walk around. Now pathfinding opacity is special-cased
so that thorn hunters will consider briar patches transparent (and
thus attempt to move into them, triggering their firing behavior).

If someone can think of a better way to implement this, I'm all ears.

--------------------------------------------------------------------------------
489f5c15f9 | DracoOmega | 2013-06-24 02:21:47 -0230

Make AF_HOLY consistant with holy wrath weapons
Confusingly (and contrary to most assumptions), holy-flavored melee
attacks inflicted full bonus damage on any being that was evil or
unholy, and not simply undead or demonic. Importantly, this meant
that players worshipping evil gods were affected by them as strongly
as if they were undead, which seems both unexpected and a little odd.
Now they inflict damage upon targets consistant with the weapon brand
only.

--------------------------------------------------------------------------------
da06b6271d | DracoOmega | 2013-06-24 02:21:46 -0230

Properly pass along the victim on allied kills of holies
Previously, Elyvilon retribution on apis kills could never actually
happen.

--------------------------------------------------------------------------------
4adb9175de | DracoOmega | 2013-06-24 02:21:45 -0230

Change the Apis death effect
Instead of Ely's retribution for killing an apis being minor healing
to nearby hostiles, have her inflict weakness upon you and all nearby
allies.

The healing rarely actually happened (since often if you are killing
an apis, you are not simultaneously injuring other monster) and was
essentially inconsequential when it did. Weakness, on the other hand,
is likely to remain relevant for many characters in a much wider range
of situations while staying true to the spirit of Elyvilon - she is
rebuking you by reducing your own ability to do harm to others.

--------------------------------------------------------------------------------
015f77fd5d | DracoOmega | 2013-06-24 02:21:44 -0230

Make unintelligent monsters respect patrol points
Unintelligent hostile monsters would reset their patrol point
whenever the time came to return to it from out of sight, which
meant that setting them as patrolling did nearly nothing at all.
Friendly unintelligent monsters (most likely zombies) behaved
somewhat differently, but still tended to wander greatly instead
of staying put. Unintelligent does not necessarily mean bad at
following orders, though (one would expect a golem set to guard
a specific spot wouldn't forget about it immediately once
distracted), and several vaults function with the assumption
that telling a monster to patrol will actually do this.

Now there is no longer an intelligence distinction to this
behavior and patrolling monsters will all patrol as they should.
On the player side, this means that zombies told to wait will do
a better job of actually staying put and not wandering the level
- probably this is an okay and perhaps even more desireable
behavior than the old, though it could easily be restored without
affecting hostile monster behavior, should someone wish to.

--------------------------------------------------------------------------------
56da53a445 | DracoOmega | 2013-06-24 02:21:44 -0230

Preliminary revisions to water monster placement (to D and Forest for now)
This commit contains a new method for water monster placement that has
a few properties which the old one lacked:

a) Amphibious monsters placed as part of water populating will now always
   be placed on water, instead of more or less anywhere else on the level
   (eg: the random water elementals you would sometimes find in a late D
   level containing water)

b) Amphibious monsters so placed will be flagged patrolling, and thus
   remain close to the water unless otherwise engaged. I feel this helps
   enforce their terrain relationship.

c) Monster selection can be done using properly weighted pop_entry tables,
   instead of the very simple prior method in which all monsters weights
   were essentially equal at all depths.

Only a small amount has been done with this new weighting capability, since
Crawl currently lacks enough spread of interesting water monsters to support
gradated challenges across most depths. Water elementals and elemental
wellsprings have been added to later D, sharks are given a higher weight
than weaker fish beyond shallow depths, eels drop off more sharply past the
point where they are relevant, but otherwise things are similar to before.
Forest has a more specifically adjusted set, though still contains a number
of the basic weak fish (no eels though)

For now this only applies to D and Forest, and all other branches (and lava)
use the old method, as I did not feel there was a need to disrupt this until
a more thorough analysis and revamping of them can take place.

--------------------------------------------------------------------------------
2b09c4aaa6 | DracoOmega | 2013-06-24 02:21:42 -0230

Show patrol point when listing monster debug information in wizmode

--------------------------------------------------------------------------------
4fc3016435 | DracoOmega | 2013-06-24 02:21:41 -0230

Have monsters avoid attacking briar patches when hazardous to their health
Spriggans especially could be fond of impaling themselves on their
thorns. Now monsters will consider both their AC and current health
when deciding whether to cut through them, accepting the damage if
they figure it will be inconsequential.

--------------------------------------------------------------------------------
2a04a4813f | DracoOmega | 2013-06-24 02:21:40 -0230

Allow ranged attacks to damage bushes and briars if aimed directly at them
While it makes sense for creatures to be able to shoot OVER bushes (and,
in fact, this is main point of their existance), it's a little more silly
that you can never injure the bush with a crystal spear even if that is
what you WANT to do.

Aiming beyond a bush should work as it always has, but any ranged attack
aimed specifically at the bush's location will actually hit the bush (or
at least attempt to do so, at any rate)

--------------------------------------------------------------------------------
e7f9b83538 | DracoOmega | 2013-06-24 02:21:39 -0230

Make pathfinding consider all stationary monsters as obstacles
Instead of a specific list of (only some!) stationary plants.
This would cause monsters to sometimes hang around behind other
plants, or statue monsters, rather than take an obvious path to
their target only slightly beside them.

Hopefully there is nothing else important that relies on the
previous assumptions.

--------------------------------------------------------------------------------
8ac21e4022 | DracoOmega | 2013-06-24 02:21:38 -0230

Having taught The Enchantress his best trick, Pan (the unique) departs for 
parts unknown
Pan's two gimmicks (aside from his confusing name) were Mass Confusion
and Metabolic Englaciation. Unfortunately, only one of these actually
plays extremely poorly with his own band, slowing all of them (with a
greatly liklihood than the player, since you could opt to wear rC!). I
expect that perhaps this wasn't noticed since their Leda's was ALREADY
slowing them. With that gone, he's left with Mass Confusion, which is
now shared by The Enchantress, who I feel is the more important unique
in the zone in any case, and works well with her primary means of action.

At this point, this leaves Pan to be basically a beefier satyr, without
much other differentiation. I am not opposed to the idea of a unique
satyr, but I feel his uniqueness and 'function' should be much stronger
than this if he is to have such a conflated name on top of it. So for
now I am electing to disable him (and the Forest:$ vault that featured
him) until a better name and concept can be found.

--------------------------------------------------------------------------------
d4b9760a5b | DracoOmega | 2013-06-24 02:21:38 -0230

Change The Enchantress's spell set, make her magic immune
Her old spellset was a little odd, threatening mostly with banishment
(a rather annoying threat on something so fast, even if you had good
MR). I don't feel like banishment makes a good focus for the primary
risk of a later-game unique (and it was not uncommon for people to end
up banished more than once before managing to kill her) and there is
plenty of sleep already in the branch. So instead I have borrowed a
few new trick from other things to create a unique whose spellset
focuses primarily around debilitation - something very dangerous given
the melee threats with which she spawns.

Her new spellset is: Dimension Anchor, Slow, Haste, Mass Confusion,
Strip Resistance, and Invisibility. Strip Resistance will help her deal
with people stacking MR (which would otherwise leave her doing very
little at all), while the others can cripple the player and also leave
them unable to ?tele to escape. I hope this doesn't leave her too nasty,
but she often takes a fair bit of time to set up a heavily crippled
situation and has very little hp, so I expect she is manageable with
careful tactics (and it is fine if she is sometimes very mean when those
are lacking).

Also, her MR was no higher than the average spriggan, when you would
expect a high level unique to be such (in fact, she had no more MR than
many lategame human uniques). This is mostly an academic concern, since
she already had too much MR to make hexes practical, but I have made
her magic immune just the same.

--------------------------------------------------------------------------------
80ca3a2ed5 | DracoOmega | 2013-06-24 02:21:37 -0230

Make monster Mass Confusion's duration against players sane
Because at the moment, Pan attempts to confuse the player for 200
turns in one cast, and is only stopped by the maximum confusion
duration being 40. Not that 40 is a very sane duration for a single
casting of confusion, either (and even an HD 4 caster could achieve
this!)

This commit reduces it to be slightly briefer than plain confusion,
and also decreases the overall power multiplier of the spell, which
was quite high for a monster hex.

As a side note, it sems that actor::confuse and the like have
misleading parameters, since the power argument equates to duration
when applied to players, but does literally nothing when applied
to monsters. There are multiple places that call monster::confuse
with specific formulae for duration, which are all them completely
ignored by the ensuing code. Probably something should be done
about this....

--------------------------------------------------------------------------------
4e0959e06e | DracoOmega | 2013-06-24 02:21:36 -0230

Don't have monsters try to cast sleep on already sleeping targets
The existing check convered Ensorcelled Hibernation, but not the
plain Sleep spell.

--------------------------------------------------------------------------------
29b6173724 | DracoOmega | 2013-06-24 02:21:35 -0230

Give a better message when dimension anchor is extended

--------------------------------------------------------------------------------
26aa67253a | DracoOmega | 2013-06-24 02:21:34 -0230

Make dryads prefer to move through trees (as rock worms do for rock)
It looks like this was the original intention (there are even commit
messages to that effect), but it didn't actually work, and dryads
only ever ended up within the trees by accident. Now they should try
to move via a shielded path when possible, as rock worms do.

--------------------------------------------------------------------------------
f20a69c219 | DracoOmega | 2013-06-24 02:21:34 -0230

Make M_STABBER monsters bypass half the target's AC on stabs
Even when able to set up proper stabbing conditions, the stab damage
on enchanters and assassins was rarely threatening, due to their low
base damage. Yet increasing the damage multiplier could lead to
potentially unfair or unfun amounts of damage on a rare lucky roll.
This should increase the average effectiveness of their stabs noticably
without actually raising the theoretical max.

--------------------------------------------------------------------------------
5da26b0969 | DracoOmega | 2013-06-24 02:21:33 -0230

Spriggan Enchanter (the monster) changes
Spriggan enchanters are a problematic monster. Unlike assassins, their
debilitation attempts are highly likely to repeatedly fail (especially
against high MR races) and yet they also have unlimited ammo with which
to keep trying. This, coupled with their hasted speed could make them
extremely tedious to catch, while also presenting no credible threat.
Assassins will either land their debuffs on you (likely), or fail a few
times, run out of ammo, and then enter melee anyway. These changes will
hopefully make enchanters both more threatening, and less irritating.

Firstly, they gain a key new spell in their repertoire: Strip Resistance.
This is a hex which inflicts -MR on the target, and has itself a chance
of bypassing the target's magic resistance. Due to the way MR resist
formulas work in Crawl, most races with above-average MR would be
virtually immune to an enchanter's hexes by the time they are first
encountered - sometimes literally so, especially when even a single item
of MR gear was involved. This should allow them to threaten a wider range
of players, and also play a synergistic role with other hexes in the zone.

Next, they lose Confuse and Haste. Confusion does not assist with monster
stabbing, and several other things in the zone already confuse. Haste
contributes greatly to their being hard to catch, and may also make them
too dangerous when they perform chain stabs or acquire a ranged weapon
(turning them into a speed 22 archer determined to maintain range against
you).

Finally, they lose 5 EV, hopefully making them a little easier to kill once
they have set up stabbing conditions.

--------------------------------------------------------------------------------
478372a2d3 | DracoOmega | 2013-06-24 02:21:32 -0230

Don't wake up sleeping players by passive poison damage
The net result of it doing so was that poisoned players were nearly
immune to being put to sleep - immediately after falling asleep, they
would take a tick of poison damage and then wake up again. Even if
a stabber was already in melee range, it would not normally have time
to attack even once. There is a decent number of poisoners in Forest
and the stabbers themselves not-infrequently have venom weapons, but
moreover it is bad that deliberately poisoning yourself was a very
effective (if little-known) way to obtain sleep protection.

This is probably something of an Aizul buff, and he is already fairly
scary, but I still think the present behavior is rather bad here and
should be changed.

--------------------------------------------------------------------------------
525f0f8e6a | DracoOmega | 2013-06-24 02:21:31 -0230

Don't consider monsters to have useable ranged weapons while wielding cursed 
melee weapons
Previously, merely possessing a valid ranged weapon with ammunition was
enough for the game to consider the monster as having a ranged attack,
even if it was impossible for them to actually swap to this weapon.

This probably results in minor improvements in behavior in general
circumstances (such monsters with unuseable ranged weapons not trying
to maintain firing positions when moving around corners), but the most
obvious change is that spriggan assassins who are wielding a cursed
melee weapon, but still in possession of ranged ammo, will continue
to dance away from the player while doing literally nothing at all.

--------------------------------------------------------------------------------
f9ac0ffcc3 | DracoOmega | 2013-06-24 02:21:30 -0230

Adjust spriggan assassin/enchanter starting weapons
The chance for a quick blade has been greatly reduced, but instead
they have a 1-in-3 chance of their weapon's quality being good.

--------------------------------------------------------------------------------
46202c4ac2 | DracoOmega | 2013-06-24 02:21:29 -0230

Adjust spriggan assassin needle distribution
Spriggan assassins no longer spawn with basic poison needles (these
are less interesting on them) and the chance of curare has been
incorporated into their normal selection formula. Needle quantity
has been reduced on average, and they can now (rarely) spawn with
needles of frenzy as well.

--------------------------------------------------------------------------------
e5c7bbc342 | DracoOmega | 2013-06-24 02:21:29 -0230

Adjust effectiveness of needle brand when used by monsters
The uncommon needle brands had really wonky formulae when used by
monsters (a fact I expect no one noticed since, until recently, this
scenario virtually never occured). They worked 100% of the time, and
generally with very high duration. A spriggan assassin using needles
of paralysis, for example, would paralyze the player for an average
of 10 turns on hit, and as many as 13. This is obviously a bit...
excessive.

Needles no longer have guaranteed success when fired by monsters,
but instead use a formula based on attacker HD and target HD/XL.
Success rate also varies by brand, with some more dangerous brands
(eg: paralysis) having a lower chance of success. Additionally, the
duration of effect is reduced against players on a brand-by-brand
basis, with paralysis lasting a briefer time than slow, and such.

Finally, a curious special-casing involving reflected needles has
been removed (they used to have 100% success, even when fired by
the player, but also have greatly reduced duration of effect.)

--------------------------------------------------------------------------------
07cc2af46d | DracoOmega | 2013-06-24 02:21:28 -0230

Adjust corona's interaction with invisibility
Since one of corona's main benefits is being able to make invisible
things visible, it is rather odd that they can simply cast invisibility
again to dispel the corona. Now corona acts similarly to other backlight
effects (like sticky flame), making invisible things visible for as long
as it lasts. This commit also removes an odd special-casing that made
corona's duration against invisible things extremely brief and prevented
extending with upon recast.

Finally, this also gives more informative messages in some cases where
the player casts invisibility, but does not turn invisible due to being
backlit (this was only handled for magic contamination and not sticky
flame, and now is handled for both of these and corona additionally)

--------------------------------------------------------------------------------
84a54eac1c | DracoOmega | 2013-06-24 02:21:27 -0230

Tweak the number of elementals created by monster summon elemental spells
Mostly this reduces variance by raising the minimum and lowering the
maximum number that can be created with a single cast somewhat. (Sojobo,
for example, now summons 2-4 per cast instead of 1-5)

--------------------------------------------------------------------------------
f909d7cdf6 | DracoOmega | 2013-06-24 02:21:26 -0230

Don't make things with rWind immune to being pushed back by it
This was originally done since I thought they were unaffected by
tornado, but air elementals are in fact blown around by it, simply
not injured. And it does make sense that beings of wind could be
carried around by it.

More topically, it is somewhat awkward that creatures cannot be
blown back if there is an air elemental standing behind them, which
for the purposes of a fan of gales, or wind drake, or Sojobo would
be a more sturdy thing to brace yourself against than a solid wall
(where you might just be knocked around the corner).

--------------------------------------------------------------------------------
2977a1b820 | DracoOmega | 2013-06-24 02:21:25 -0230

Multiple changes to Sojobo
Sojobo's current implementation has some coherency issues. He comes
with a large band, yet casts chain lightning freely (which is pretty
good at killing them), and some of his spellset focuses around aiding
his allies (blink other encircling, haste other), yet many of the band
members are weak and unnotable which makes turns spent trying to help
them rather wasteful (and then he might just kill them himself afterward).

This commit makes 4 seperate changes to Sojobo and company:

1) Sojobo's spellset is overhauled. It now consists of Lightning Bolt,
   Airstrike, Summon Air Elementals, and Wind Blast (like the wind drake
   breath). The air elementals provide screening (and thematically fit
   with the tengu's superb summoning aptitude as well) and both of his
   attack spells can operate freely through them without being impeded
   or injuring them. Wind blast combos by creating distance, allowing
   the speedy elementals to form up in front of him and giving Sojobo
   room to cast other magics.

2) Several stat changes to Sojobo. His melee is weakened a little, but
   he gains a couple HD for higher spell power. His MR is also raised
   to levels comparable to similar uniques, instead of being oddly low.
   Sense invis is replace with see invis, since the former is generally
   reserved for creatures using primarily non-visual senses.

3) Sojobo now comes with a triple sword less often, and the intended 2
   in 3 chance of it being electrocution-branded now actually functions
   (it was broken before, giving him a random brand all of the time instead)

4) Sojobo's band has been greatly thinned, now coming only with 2 reavers
   instead of of 2 reavers and a bunch of filler.

--------------------------------------------------------------------------------
0ed3e25c85 | DracoOmega | 2013-06-24 02:21:24 -0230

Don't give spriggan defenders a noticable chance of distortion weapons
Also reduce The Enchantress's chance of same. They're painful enough
without also being awful.

--------------------------------------------------------------------------------
9ce0fe7b1e | DracoOmega | 2013-06-24 02:21:23 -0230

Give spriggan berserkers a moderate chance of an antimagic weapon
All the base types they can spawn with are junk, so there's no concern
about this being too generous a find for the player, post-battle.

--------------------------------------------------------------------------------
a41157d15a | DracoOmega | 2013-06-24 02:21:23 -0230

Allow spriggan (and deep dwarf) berserkers to use BiA before berserking
The rationale given in the comments that calling for brothers before
berserking is 'too complex a thought' doesn't really hold water and
more importantly doesn't play well - it is a rarity that any berserker
will survive through a whole berserk if the player they are attacking
remains alive, and so this ability was virtually never seen. Now they
should actually use it sometimes.

--------------------------------------------------------------------------------
6e7ec6555f | DracoOmega | 2013-06-24 02:21:22 -0230

Buff black bears, make them actually spawn in early D
Current black bear stats were oddly pathetic, essentially being harmless
to anyone and everyone on the rare chance you might actually bump into
one. But I think the low-hp berserk is an interesting enough mechanic
that these could make decent earlygame enemies, and so I have made their
attack more respectable and placed them there (currently a touch deeper
than ice beasts).

--------------------------------------------------------------------------------
a7804997eb | DracoOmega | 2013-06-24 02:21:21 -0230

Unnerf angry bears
When monster fleeing was removed, it has the (likely unintentional)
side-effect of making bears far less likely to berserk at low health.
Not only does being afraid greatly increase their chances of going
berserk each turn, compared to merely being highly injured, stepping
away tended to give them a turn or two extra time to cast it.

This commit restores bears' fleeing behavior in the hope that they
may once again be given the chance to better maul unwary adventurers.

--------------------------------------------------------------------------------
ae4169705d | DracoOmega | 2013-06-24 02:21:20 -0230

Faun and Satyr gear and spellset adjustments
Remove Cause Fear from fauns. I think how fear plays with ranged
attackers is interesting, and Forest offers plenty of cover to duck
around and lure them in, but it was too common occuring on monsters
coming in large bands. Also remove Leda's from satyrs. While clearly
meant to give the ranged attackers more time to fire as the player
approached, the fact that it slowed their own attacks by more than
it slowed the player's approach (even if they weren't flying and
ignoring it altogether) cause it to play poorly, I think. Assuming
fear was even letting you approach in the first place, since certainly
Leda's made your own retreat considerably safer with the monster's
pursuit speed crippled.

The three faun spellsets have also been merged into a single one,
since they differed only in choice of secondary hex, yet came in
bands that would likely have all hexes represented between them,
and so there was little pratical difference since you couldn't
determine which faun had which spell in the first place. Their new
spells consist of: Corona, Slow, and Confusion (also losing blink
in their emergency slot)

Satyrs also received other spellset adjustments, losing confusion
but gaining the sleep which fauns lost.

In terms of gear, fauns now always spawn with slings instead of
a chance of 4 seperate ranged weapons. Throwing spears are a lousy
weapon for anything to spawn with, and bows are already well-covered
by other monsters. I felt it was more interesting for them to focus
on the weapon type not already represented elsewhere in the game.
Satyrs still tend to spawn with longbows, though (retaining the
option for a sling or plain bow, too)

Finally, fauns lost the M_ARCHER flag. Probably it is more interesting
if you can force a weapon change by positioning, especially since
approaching them can be complicated by fear, although their melee is
a fair bit better than either centaurs or yaktaurs so perhaps this
does not matter much.

--------------------------------------------------------------------------------
824ed40c2d | DracoOmega | 2013-06-24 02:21:19 -0230

New spell for spriggan druids: Haste Plants
This spell hastes 2-4 allied plant-type monsters within LoS of the
druid (ignoring firewood and snaplasher vines).

Currently druids do not actually spawn alongside any valid targets
for the spell, but I plan to add a chance for this to happen
sometimes, and also there are vaults and incidental encounters and
so on.

--------------------------------------------------------------------------------
cb1ec56749 | DracoOmega | 2013-06-24 02:21:18 -0230

New water monster for late D (and Forest): Elemental Wellspring
These are confluxes of elemental water which can cast primal wave
and summon water elementals. They are intended to be relatively
strong and uncommon water creatures for later in the game. In Forest
additionally, creating remote water should combo interestingly with
water nymph's waterporting abilities.

While elemental wellsprings cannot move on land, they will always
generate (temporary) swallow water beneath themselves, so it is
impossible to strand them and make them flop around (as hilarious
as this is). This is particularly important, as they sometimes will
move into the temporary water created by primal wave, which will
eventually otherwise disappear.

--------------------------------------------------------------------------------
defe72f08c | DracoOmega | 2013-06-24 02:21:17 -0230

Give satyrs a battlecry-like effect on their allies, refactor battlecry code
Satyrs can now playing a rousing tune on their pipes, inspiring their
listeners to great feats of daring and pluck (ie: they hit harder).
It is functionally the same as an orcish warcry or cherub hymn except
that it affects any living ally of lower HD than the satyr rather than
any particular genus.

At the same time, the code for this effect has been refactored. The
functions for the cherub and orc version of the effect were 95% identical
and are now combined and parameterized (along with this 3rd source).

The cherub hymn still doesn't DO anything, since there are no lower HD
holies for it to affect (making the code duplication all the more silly),
and this is a seperate problem that ought to be addressed later (perhaps
by removing the HD limitation on their hymn altogether).

--------------------------------------------------------------------------------
ed33691fa2 | DracoOmega | 2013-06-24 02:21:17 -0230

Reduce vapour HD and chance of casting lightning bolt
With the changes to vapour targetting (ie: making them have more
than a vanishing chance of doing something) I feel they are too
strong. Now they should inflict less damage and do so less often
(though still much more than before).

Probably I may do something more with them after this project is
finished, but hopefully this will be okay for now.

--------------------------------------------------------------------------------
5ca2590c59 | DracoOmega | 2013-06-24 02:21:16 -0230

New water monster for Forest: Thorn Lotus
These are very slow moving (but faster acting) aquatic plants that
can fire volleys of thorns, intended to fill a lower-tier support
role for water encounters. They are permaconfused, with the intent
of this randomized movement being to simulate 'drifting' along the
currents of the water.

--------------------------------------------------------------------------------
2bc9049610 | DracoOmega | 2013-06-24 02:21:15 -0230

Make permaconfused monsters more able to actually cast targetted spells
Due to confused monsters choosing a random target location each turn,
there was only a very remote chance of permaconfused monsters actually
picking anything valid to aim at. As a result, vapours would mostly
drift around and never fire lightning at things except by dumb luck.

This commit is, at best, a band-aid for that problem. It provides the
spell targetter for a permaconfused monster with the position of that
monster's foe, if it has one and can see it, which ignores all number
awareness checks (since confused monsters skip those altogether).
Unfortunately, this means that vapours will rarely be unaware of a player
near them, even if they are very stealthy. More unfortunately, since
the code is deliberately mean to players here, allied vapours will still
not bother to shoot at things unless that thing bumps into them first.

In my opinion, the way M_CONFUSED is handled in code is generally a bit
awkward overall and bears changing. Currently it just gives ENCH_CONFUSION
to a monster, and then is special-cased in a number of places to not allow
this ench to be removed. And then there are different ways to query
confusion, some of which (monster->has_ench(ENCH_CONFUSION)) return true
for butterflies/vapours/etc. and some of which (mons_is_confused(mons))
do not, and probably these are used inconsistently.

What I think would be best is if the monster flag simply meant that the
monster MOVED randomly, and not count as confusion in other respects, which
could enable vapours and similar monsters to handled ranged attacks and
target selection like normal monsters, reduce numerous instances of
special-casing related to ENCH_CONFUSION, handle foe awareness properly, and
so on. But this is a rather more involved fix and so I am deferring it for
later. For now, this should at least make vapours somewhat more effective
in their normal role (and more topically, allow the subject of the following
commit to work properly)

--------------------------------------------------------------------------------
63610bdbfd | DracoOmega | 2013-06-24 02:21:14 -0230

Don't describe permaconfused monsters as 'bewildered and confused'
While internally, permaconfused monsters (ie: butterflies, vapours,
twisters, etc.) may share the same confusion effect as any other
confused monster, this is just their normal state, and it's a little
strange to describe it to the player this way. Random wandering
around doesn't indicate that a inanimate tornado of fire is
suffering from a particular lack of mental clarity, for example, and
that butterfly was probably having an ordinary life until some cruel
adventurer threw it in the way of a hell sentinel.

--------------------------------------------------------------------------------
990aba0207 | DracoOmega | 2013-06-24 02:21:13 -0230

New monster: Treant
Another plant monster for Forest, these are hard-hitting, durable,
but slow creatures vulnerable to fire. However beyoned this, within
their branches rest hives of aggressive insects who will fly forth
to defend their homes when the treant is threatened.

In combat, bees, queen bees, yellow wasps, and red wasps may issue
from the treant (this costs no energy on the part of the treant
itself). These are not actually summoned creatures, and will not
time out (since they are actually physically nesting within the
treant's branches) though are worth no xp, similar to royal jelly
spawns.

Each treant is created with a certain number of insects that can
appear from it, and these charges are slowly replenished over time
if below a certain level. Insects released consider the treant their
band leader, so if one kites and flees the treant, those insects will
still be swarming around to defend it later. The fact that they can
recharge (though not fast enough to strongly affect a single battle)
is intended to counter a tendancy to lure all the insects out first
and then return later, rendering the treant kitable in the traditional
manner of slow melee monsters.

Killing the treant outright before all the bees and wasps are released
will effectively 'kill' them, meaning that there should be no temptation
to draw the fight out unnecessarily.

--------------------------------------------------------------------------------
27e1afb293 | DracoOmega | 2013-06-24 02:21:12 -0230

Self water teleport for water nymphs
If a water nymph's foe is not in water, but there is water nearby
which is closer to it than the nymph herself currently is, she has
a chance of 'teleporting' into this water as a way of closing
distance. It probably could use a better message though.

This commit also reduces her movement speed to normal.

--------------------------------------------------------------------------------
5a735e5e42 | DracoOmega | 2013-06-24 02:21:11 -0230

New water monster for Forest: Water Nymphs
In an effort to create more flavorful pond-dwellers for the branch
than electric eels and goldfish come water nymphs (who will not try
to steal anything from you, thank goodness).

They are speed 10 (move 80%) amphibious, moderately fragile creatures
with weak melee, but two tricks that interact with the water.

Firstly, they have a waterstrike spell. This is a smite-targetted
water attack, and notably stronger than airstrike, though with the
important caveat that it can only be used if the target is in/above
water at the time.

Secondly, to give them opportunity to use this (since who would
voluntarily enter the water against such a monster?), they have a
touch attack that can instantly transport both themselves and the
touched creature back to the water. If the nymph has a patrol point
(as I intend normally generated ones to have, at their own water
source) they will try to teleport to that body of water specifically,
though any nymphs that lack one will attempt to use whatever body
of water is closest.

--------------------------------------------------------------------------------
4e5bd8880c | DracoOmega | 2013-06-24 02:21:10 -0230

Make haunting creatures better at tracking their targets
Primarily this is for spirit wolves, since player haunt summons out
of LoS aren't going to be attacking anything anyway, and monster
haunt summons don't actually use the 'haunt lock' effect currently.

--------------------------------------------------------------------------------
1896d8223e | DracoOmega | 2013-06-24 02:21:09 -0230

New Forest monster: Ancient Bear
This one is pretty much what it says on the tin: a powerful
depth-appropriate bear (who has gained rF+ from all the centuries
of basking in the enchanted sunlight of its forest home). The
berserk mechanic is simple, already familiar and guessable by the
name, and I think they can make a suitable plain threat for the branch.

The rF is a mechanical design choice (which I hope the description
justifies passingly) since several major threats in the zone are
rF- and spriggans might as well be due to how well fireball works
on them, so I think it is good to have an appreciable melee threat
be more durable to fire as a counterbalance.

--------------------------------------------------------------------------------
2f115a6965 | DracoOmega | 2013-06-24 02:21:08 -0230

New monster: Spirit Wolves
These are a stronger wolf monster for Forest, with a few quirks.

Ocassionally non-summoned wolves can howl for their pack, which
causes summoned spirit wolves to appear continously at intervals
from outside the player's LoS and track towards them, until the
effect ends. They have a very small chance of using this each turn,
rising considerably while at low health, encouraging players to
kill them quickly lest they be forced to deal with the rest of
their pack.

Additionally, the wolves' partially spiritual nature gives them
immunity to poison and negative energy, though they otherwise
count as living creatures.

As usual, I suspect the duration/frequency/number of summons will
need further adjustment once it has been seen in real games. It is
a bit tricky to preserve the feeling of a pack slowly converging
upon you without making the duration long enough to be obnoxious
or making the moment-to-moment density high enough to be overwhelming.

--------------------------------------------------------------------------------
c2ce03562a | DracoOmega | 2013-06-24 02:21:07 -0230

Bump up wolf stats to match war dogs, replace war dogs with wolves
Wolves were sort of in an awkward position of being very similar to
other canine monsters in a similar depth range, yet being less notable
than either war dogs or wargs, and also rarely appearing. Yet, in
discussion in ##crawl-dev, it was generally agreed that wolves were
far more thematic in ice caves (one of the only places they occur
commonly) than war dogs would be, and also that war dogs primarily
occuring wild (ie: in Lair), despite their description indicating
otherwise was itself a little odd.

Following that discussion, in merging the monsters together I have
elected to keep wolves, but promoted them to the more notable war
dog stats. Hopefully this won't cause player confusion for too long.

Wolves replace war dogs in all places the latter could previously
spawn. Vaults that previously placed wolves now sometimes place
fewer of them than before, or at a lower weight. Call Canine Familiar
now summons wargs in place of old wolves (which it sometimes already
did).

--------------------------------------------------------------------------------
9954c75e96 | DracoOmega | 2013-06-24 02:21:06 -0230

New monster: Thorn Hunter (and Briar Patches)
These are swift-moving predatory plants of rudimentary intelligence, able to
fire volleys of sharp thorns at their targets and raise barricades of thorny
briars. The brairs are fragile fire-vulnerable plants (that crumble shortly
after being created), but are also spiny and will inflict damage upon a
player trying to clear them. They can, however, be fired past in the same
manner as bushes.

The Thorn Hunter will raise wide walls of briars in arcs in the distance
beyond the player in an attempt to cut off retreat and movement in those
directions, and also as closer range barriers to protect itself from hostile
movement towards it while remaining able to fire its projectiles past them.

Some parts of the code for this is... somewhat unpleasant. The briars
themselves are drawn using arcs of a circle of randomized radius and center
(based upon distance between its target, and whether it is using the briars
defensively or offensively) but done in what I suspect is a very ineffecient
manner.

Probably worse are several points of code where the thorn hunter is
special-cased to 'cache' information about where its foe was the previous
turn (to guess whether it is approaching or retreating, and thus which type
of barrier to form, should it choose to do so), and also where it WILL be
moving, should it choose not to use an ability. The 'bunkering' behavior,
where the thorn hunter will fire from behind a defensive barrier, is
accomplishd by checking in mon_special_ability what space the hunter is
about to move in, and then if that space contains a briar, giving it a
high chance to fire instead (otherwise it mostly just spends turns meleeing
its own wall immediately after raising it).

I believe the net effect in visible behavior and tactics is interesting, but
a lot of it feels a bit 'hacky', since it needs to analyze information that
the monster AI framework does not generally have access to. Perhaps there is
a better way to have gone about all this, but I hope at least that the way
I have done it is clean and clear, even if rather special-casey.

--------------------------------------------------------------------------------
de39109420 | DracoOmega | 2013-06-24 02:21:05 -0230

Give porcupines a couple more HD to go with their improved spines

--------------------------------------------------------------------------------
748aa1f30b | DracoOmega | 2013-06-24 02:21:04 -0230

Rewrite spine damage formula (both player and monster)
Due to the disparity between monster and player defensive stats, Hell
Sentinel spines were many times more lethal to other monsters than
players, often to a silly degree (it was common to see dragons kill
themselves with nothing but spine damage in 3-4 rounds, for instance).
Secondary, and rather counterintuitively, evasion was substancially
more effective at reducing the impact of punching spiny things than
AC was (to the point that good EV virtually guaranteed taking no damage
from them ever, while even superb AC did not). It is a little strange
to visualize one 'dodging' things that are stationary, too....

Evasion now has no effect on being hit by spines, though the effect of
AC is increased. Also, monsters that get multiple attacks per round will
now only trigger spines with the first (which is consistent with player
aux attacks and prevents certain monsters taking vastly more damage than
others of similar speed and stats). This has the pleasant side-effect of
greatly reducing message spam when the player has spines. The power of
said demonspawn spines has also been increased, significantly so at low
levels (where they were virtually useless before).

Monster spine damage has been decoupled from HD. It turns out that it's
hard to write a formula that allows porcupine spines to actually do
something at Lair depth without making Hell Sentinels overly lethal,
when one has 2 HD and the other 19. (Plus, I think it is better if the
spiny aspect of a monster can be tweaked independently over the other
factors that HD affects).

Though the aim was not to make hell sentinels stronger overall (they're
scary enough as-is), their spines will inflict more damage to low AC
characters than previously (and less to high AC / low EV characters).
This probably needs further adjusting. Porcupines and low level
demonspawn should hopefully at least be able to hit something with their
spines now, though.

--------------------------------------------------------------------------------
f5d08b87c3 | DracoOmega | 2013-06-24 02:21:03 -0230

Give spriggan air mages Control Winds. Remove Haste from their emergency slot.

--------------------------------------------------------------------------------
987185a6b7 | DracoOmega | 2013-06-24 02:21:02 -0230

Dryad adjustments
Remove slow movement (they are now normal speed 10 monsters), adjust
spell set. Dryads can now cast Awaken Vines, Awaken Forest, and have
Minor Healing in their emergency slot.

--------------------------------------------------------------------------------
581bb0a678 | DracoOmega | 2013-06-24 02:21:01 -0230

Secondary effect for Control Winds: boost ally missile accuracy
Allies monsters within a few squares of someone with Control Winds
active now get a boost to their accuracy with missile and thrown
weapons, so long as the enchantment lasts.

This doesn't currently affect spells, and I'm not sure it should.
Somewhat awkwardly, it also doesn't affect things like manticore
spines, due to seperate codepaths. Perhaps this effect should
actually be checked in the beam code itself?

--------------------------------------------------------------------------------
4b864096be | DracoOmega | 2013-06-24 02:21:00 -0230

New monster spell: Control Winds
This spell allows the caster to continously manipulate the winds to
aid them and their allies. It is a self-enchant that will act
continuously for a decent number of turns after being cast, with the
following effects:

Firstly, it will immediately extinguish any forest fires in LoS of
the caster (both acting as a fire suppressor against the player's
actions as well as stray lightning bolts of the caster's own)

Secondly, it will blow clouds away from the caster. The path taken
by them is primarily direct repulsion from the caster, but with
three caveats:

a) A cloud will never be blown onto an ally. Alternate paths will be
   used instead, where possible.
b) A cloud currently engulfing a hostile will not be moved at all.
c) If there is no possible path to move a cloud engulfing an ally,
   instead greatly reduce that cloud's remaning duration.

This will allow spriggan air mages to stop starting raging forest
fires in their own home, prevent the player from doing likewise, and
generally provide protection for others against cloud spells, which
spriggans are highly vulnerable to.

--------------------------------------------------------------------------------
fae8dea45f | DracoOmega | 2013-06-24 02:20:59 -0230

Fix a display issue with snaplasher vines
This was caused by starspawn tentacles having fewer images in their
set than the other tentacle types (those configurations cannot come
up for actual starspawn, though). So for now, the vines will use
kraken tiles instead. They look unpleasantly fleshy, but at least
the base tile doesn't end up as random gibberish.

What is really needed is some logic to make the tile look like it's
coming from the adjacent tree rather than the ground, which should be
as 'simple' as making the final vine segment think it is attacked to
another segment whose location is that tree. But that's something for
later....

--------------------------------------------------------------------------------
ddeb860c85 | DracoOmega | 2013-06-24 02:20:59 -0230

New monster spell: Awaken Vines
This spell summons 1-3 snaplasher vines at spots adjacent to trees
within the LoS of both the caster and their target.

A single caster can animate no more than 3 vines in total at once.
No vine can be placed such that connectivity is blocked, nor within
several squares of any existing vine. Moreover, no one will cast the
spell if several vines are already in LoS, even if those vines do not
belong to them. Additionally, the vines will die on their own when
the caster leaves LoS of them (or dies).

Ideally, this means that the vines will attack the player from multiple
angles at once, without ever completely blocking off routes or flooding
the screen when multiple casters are present.

--------------------------------------------------------------------------------
3e8460adbc | DracoOmega | 2013-06-24 02:20:57 -0230

Make the Lair plant placement connectivity checks public and relocate
The next commit will be making use of them.

--------------------------------------------------------------------------------
bb50110ec1 | DracoOmega | 2013-06-24 02:20:57 -0230

Snaplasher Vines (for later use)
These are eldritch tentacle-style solo tentacle monsters, swift-moving
and with damageless constriction and a mild melee attack. More
significantly, like starspawn tentacles, they will pull a constricted
enemy backwards, and in this case specifically attempt to hold them
next to any adjacent trees.

Intended for use with dryads.

--------------------------------------------------------------------------------
44e527ac20 | Brendan Hickey | 2013-06-23 20:55:17 -0700

Moth of Madness Fixes
Properly handle same genus polymorph.
Add text indicators of what's going on.
Don't polymorph friendly monsters.

--------------------------------------------------------------------------------
486adc75ae | Steve Melenchuk | 2013-06-23 21:29:41 -0600

Three multi-altar generic overflows.
One each of three altars, four altars, and seven(!) altars.

The chances are really against ever being able to place a seven-altar
overflow, but it's there if it's needed.

--------------------------------------------------------------------------------
a435f26a9f | Pete Hurst | 2013-06-24 03:58:07 +0100

Slightly creepier message for evoking the bag
Credit goes to ProzacElf

--------------------------------------------------------------------------------
d8202e979d | Steve Melenchuk | 2013-06-23 20:57:36 -0600

Some generic multi-altar overflow vaults (gammafunk).
I've made a couple of adjustments, mostly related to simplification of
feature/monster selection.

Some other overflow vaults had unnecessary ORIENT: floats which I've
removed.

--------------------------------------------------------------------------------
ff4973d4d6 | Steve Melenchuk | 2013-06-23 20:57:35 -0600

Make themed multi-overflow altars less common; generic more common.
This also adds a primitive version of selection by weight for the
generic multi-overflow size.

Along with some tweaks made previously, it's possible to have more than
one generic multi-overflow per game; the weighting of this might need to
be adjusted if they turn out to be too common.

--------------------------------------------------------------------------------
f304e37ea8 | Steve Melenchuk | 2013-06-23 20:57:35 -0600

Remove a header entry for a long-gone function.
This has been gone since 9e6e691 (two and a half years ago!).

--------------------------------------------------------------------------------
b6fc1b2e35 | ontoclasm | 2013-06-23 21:57:14 -0500

Erolcha tile edit

--------------------------------------------------------------------------------
8ce0c12258 | Pete Hurst | 2013-06-24 03:49:49 +0100

Don't crash with Sack of Spiders at 0 Evo

--------------------------------------------------------------------------------
3fa853d4f8 | Pete Hurst | 2013-06-24 03:49:49 +0100

A slightly more descriptive ASSERT for random-pick

--------------------------------------------------------------------------------
f3b8f8be51 | ontoclasm | 2013-06-23 21:36:37 -0500

Let ogres show their weapons

--------------------------------------------------------------------------------
4beadb95dd | ontoclasm | 2013-06-23 20:57:56 -0500

Differentiate two-headed ogres from their cousins

--------------------------------------------------------------------------------
d8cc944761 | Steve Melenchuk | 2013-06-23 19:14:27 -0600

Handle wizmode reporting of multi-god overflow temples better.
Instead of just listing all of the gods on the level in a
comma-separated list, comma-separated lists are printed for each temple,
and temples are separated with semicolons (so, "Elyvilon, Zin, and the
Shining One; Trog and Okawaru; Ashenzari").

--------------------------------------------------------------------------------
1cc1d03c18 | Pete Hurst | 2013-06-24 00:42:11 +0100

Add missing spell_picker files

--------------------------------------------------------------------------------
57d3b8a80f | Pete Hurst | 2013-06-23 23:06:29 +0100

Let chimera sometimes use the mon_nearby_ability of base parts
The only monsters from this list that seems remotely reasonable
to use for chimera are ghost moths but it's nice to have the
support and other monsters might have abilities added here in
the future.

--------------------------------------------------------------------------------
2e368e51e5 | Pete Hurst | 2013-06-23 22:27:02 +0100

Implement a random spell picker
This works in an identical fashion to monster_picker
using the same format of distribution tables.

--------------------------------------------------------------------------------
f77092d456 | Pete Hurst | 2013-06-23 21:28:23 +0100

Simplify chimera flight description
This also fixes unseen horrors which don't have wings but still
get batty movement (HangedMan).

--------------------------------------------------------------------------------
a98cfa39ac | Pete Hurst | 2013-06-23 21:04:24 +0100

Let all chimera properly use spells
The MF_SPELLCASTER flag wasn't getting set for subsequent parts, so no matter
what book they had they weren't using it (unless the first
monster happened to be a spellcaster).

--------------------------------------------------------------------------------
70a65ab34f | Pete Hurst | 2013-06-23 21:04:24 +0100

Implement chimera legs
This allows the chimera to take the legs of one of their parts.
This can give them the base speed of the legs monster,
also enables clinging, and for jumping spiders, will flavour a
self-blink as a jump instead of a blink.

--------------------------------------------------------------------------------
cb3ad29144 | Pete Hurst | 2013-06-23 21:04:23 +0100

Refactor monster jumpiness check
Following other instances of class/monster checks

--------------------------------------------------------------------------------
5950448843 | Pete Hurst | 2013-06-23 21:04:22 +0100

Add a virtual deconstructor for random_picker (|amethyst)
Makes GCC happy.

--------------------------------------------------------------------------------
1d7ac22ab8 | Pete Hurst | 2013-06-23 21:04:22 +0100

Handle jumping spider jumpiness slightly better
This solves a strange case where using disjunction on a jumping
spider would still cause it to jump, and where a humanoid-jumping spider
hybrid could read a blink scroll which would cause them to jump.

The jump check is moved into its own function on the monster class.

--------------------------------------------------------------------------------
d56d9b1fec | ontoclasm | 2013-06-23 11:51:09 -0500

De-rim demigods

--------------------------------------------------------------------------------
f25af5a32d | ontoclasm | 2013-06-23 11:32:00 -0500

Louise tile (Bloax)

--------------------------------------------------------------------------------
7f73827a3f | ontoclasm | 2013-06-23 10:53:49 -0500

Drake tile edits
Including a new steam dragon courtesy of Bloax.

--------------------------------------------------------------------------------
747d3cad1e | Pete Hurst | 2013-06-23 10:04:54 +0100

Let place: syntax work for chimera
This allows e.g.:

place:Zot:5 chimera

--------------------------------------------------------------------------------
ad4adc2651 | Pete Hurst | 2013-06-23 08:13:34 +0100

Zin hates the new Box of Beasts
It's chaotic and magical; this flags it as such and
causes penance if you use it. The chimera will also
become unfriendly.

--------------------------------------------------------------------------------
470e7f1a3f | Pete Hurst | 2013-06-23 07:30:16 +0100

Support mons_base_type for chimera
This results in the base monster (i.e. the first chimera part) getting
inspected for many checks, instead of MONS_CHIMERA. This should allow
chimera to do several more things.

--------------------------------------------------------------------------------
0a67144d22 | Pete Hurst | 2013-06-23 07:22:37 +0100

Add M_HYBRID flag to pandemonium lords
They tend to be composed of a lot of weird parts,
I think this qualifies as a hybrid.

--------------------------------------------------------------------------------
0cf125be2a | Pete Hurst | 2013-06-23 06:59:02 +0100

Update changelog with some new additions
Box of Beasts, Sack of Spiders, and also detail some of the layout changes.

--------------------------------------------------------------------------------
25c6a20f20 | Pete Hurst | 2013-06-23 06:24:07 +0100

Update Box of Beasts description
"Macabre" implies something death-related so changed this to
"bizarre" (DracoOmega). Other slight tweaks to make it more obvious
the chimera is always friendly.

--------------------------------------------------------------------------------
6c024bad6f | Pete Hurst | 2013-06-23 05:01:11 +0100

Add new random functions random_real_inc, random_real_avg, random_range_real
random_real_inc

  Returns a value [0..1]. random_real() was not inclusive of 1.0.

random_real_avg

  Returns a real value taking the average of a given number of rolls.

random_range_real

  Returns a real value in a given range (with optional number of rolls).

--------------------------------------------------------------------------------
c8ffa77dd4 | Pete Hurst | 2013-06-23 03:34:47 +0100

Let chimera wings affect its speed
If parts 2 or 3 have wings, take an average of the winged monster's
speed and the base monster's speed.

--------------------------------------------------------------------------------
1bc6fd00ee | Pete Hurst | 2013-06-23 02:56:55 +0100

Change chimera mons syntax
The syntax was chosen to be consistent with "n-headed hydra".

The syntax is now:
rat-rat-rat chimera

This also works for monsters with more words e.g.:
hell hound-death yak-holy swine chimera

--------------------------------------------------------------------------------
e8f0d9d3fc | Pete Hurst | 2013-06-23 02:43:30 +0100

Refactor box of beasts code
This slightly simplifies the code and prevents
pick_monster_from being called pointlessly when
the box has failed anyway.

--------------------------------------------------------------------------------
799380530f | Pete Hurst | 2013-06-23 02:43:30 +0100

Allow random chimera to be created with MONS syntax
This enables a MONS spec to just be "chimera" and three depth-
appropriate monsters will be used. This can produce bizarre
results but might be useful. It should also allows things
like "place:Zot:5 chimera vs place:Pan chimera" in Arena.

The filters could be refined further to allow random chimera
to not be completely ridiculous.

--------------------------------------------------------------------------------
151d926e33 | Pete Hurst | 2013-06-23 02:43:29 +0100

Reinstate veto parameter for pick_monster

--------------------------------------------------------------------------------
03263390a7 | Pete Hurst | 2013-06-23 02:43:29 +0100

Add missing call to positional monster veto

--------------------------------------------------------------------------------
ea6f5a6ac3 | Pete Hurst | 2013-06-23 02:43:28 +0100

Refactor random-pick eliminating two globals from mon-place.cc
This provides support for using custom subclasses of monster_picker
in the main mon-pick routines.

It could perhaps be cleaned up further by refactoring a few
places where it's used, but this avoids having to change any
old code, whilst support a couple of new scenarios.

--------------------------------------------------------------------------------
0e5d462272 | Pete Hurst | 2013-06-23 02:43:28 +0100

Rework mon-pick algorithm as a class template
This enables the distributions to be easily used for picking over
enums other than monster_type, and even for arbitrary objects.

The new template is contained in random_pick. It can be used
simply by creating a random_picker<T> and calling its pick
method, or can be subclassed if more complex veto behaviour
is required.

--------------------------------------------------------------------------------
94225b818f | Pete Hurst | 2013-06-23 02:43:27 +0100

Support chimera in monster spec syntax
Currently the syntax as implemented is

chimera:foo,bar,baz

But this will most likely change.

--------------------------------------------------------------------------------
e0e4bba4ed | Steve Melenchuk | 2013-06-22 12:15:29 -0600

A few vaults.
Two new themed temple overflows, a late-D minivault, and an Elf ending
leveraging ORIENT: centre.

This also fixes up a few Elf minivault depth tags.

--------------------------------------------------------------------------------
59dd3dff5a | Steve Melenchuk | 2013-06-22 12:14:30 -0600

Set themed overflow size limit to 3, not 2.
The previous cap was an error.

I'm not convinced the cap is necessary at all, but it's there for the
moment.

--------------------------------------------------------------------------------
5ce7dd4662 | Neil Moore | 2013-06-22 00:33:23 -0400

Don't give chimeras the colour of the base monster.
I like the effect, but it causes collisions with other H monsters.
Apparently it was unintentional.  It has been suggested to put chimeras
on 'Q', or to make them flicker between all the base type colours; that
would avoid this problem.

--------------------------------------------------------------------------------
c06daff8dc | Pete Hurst | 2013-06-22 02:20:47 +0100

Fix an occasionally wrong chimera description
Only certain combinations of heads would have triggered this.

--------------------------------------------------------------------------------
3bc9d533b1 | Steve Melenchuk | 2013-06-21 18:15:10 -0600

A bit of speech for the angel in _order_and_chaos_1.
Previously, it could lecture you in spite of its confused and/or mute
status; now it acts appropriately for those statuses.

--------------------------------------------------------------------------------
bd9457c569 | Neil Moore | 2013-06-21 20:04:01 -0400

Separate chimeras of different compositions in the monster list.

--------------------------------------------------------------------------------
8ea21dfe3e | Neil Moore | 2013-06-21 20:03:05 -0400

Don't stack known shifters with non- in the monster list (#3541)

--------------------------------------------------------------------------------
c936c7f8c3 | Steve Melenchuk | 2013-06-21 18:01:21 -0600

De-teleport-closet a couple of vaults.
This was really only a problem with escape hatches, given the occupancy
of the relevant squares, but it's come up once already.

--------------------------------------------------------------------------------
94b74ff007 | Neil Moore | 2013-06-21 18:43:43 -0400

Name the root branch when prompting about escape.
Namely, "Are you sure you want to leave the Realm of Zot?" in ZotDef.

--------------------------------------------------------------------------------
5758f6bea1 | Neil Moore | 2013-06-21 18:40:02 -0400

No parent for the root branch.
Among other things, this prevents G ctrl-p in zotdef from showing
"Dungeon".

--------------------------------------------------------------------------------
a9216541b5 | Neil Moore | 2013-06-21 18:29:59 -0400

Don't crash on G ctrl-p from the dungeon.

--------------------------------------------------------------------------------
6513905017 | Pete Hurst | 2013-06-21 23:18:53 +0100

Differentiate flying and levitating chimera
Specify wings or just hovering a similar way.

--------------------------------------------------------------------------------
ca96b1605c | Pete Hurst | 2013-06-21 23:10:57 +0100

Make chimera descriptions more grammary
This slightly improves the the description which now
says things like "The head of a rat, the head of another
rat, and the head of yet another rat." This sounds
slightly less awkward than the previous output. It still
sounds a bit strange sometimes and could probably
be made much more natural with some work.

--------------------------------------------------------------------------------
51ba545f18 | Chris Campbell | 2013-06-21 20:24:12 +0100

Cap needle paralysis at 7 turns
Regular paralysis is usually 2-7 turns. The duration for needles still
depends on power, so probably this formula makes no sense and is almost
always 7 for high-end monsters now, but at least this means no more
13-turn paralysis.

--------------------------------------------------------------------------------
b133d3ed9c | Pete Hurst | 2013-06-21 20:16:21 +0100

Don't let Box of Beasts crash on 0 Evo

--------------------------------------------------------------------------------
f78b372d28 | Neil Moore | 2013-06-21 15:15:29 -0400

Change a quote.

--------------------------------------------------------------------------------
f4a2ba3aa3 | Pete Hurst | 2013-06-21 20:14:36 +0100

Handle chimera noises
In monster data it changes to S_RANDOM; this is fine for most purposes
for which this is used, e.g. determining whether or not a monster is
silent.

In handle_monster_shouts itself, the shout type is substituted for the
shout of one of the constituent parts.

There is a question mark over do_mon_str_replacements -- in most of the
places it's called from, chimera are irrelevant, and when it's called
from handle_monster_shouts the shout type we already determined is
passed in. So there shouldn't be any strange cases, unless perhaps
someone made something new that used sentient monsters as chimera
components. Would need to refactor mons_shouts to accept a monster
instead of a monster_type to make this any better.

--------------------------------------------------------------------------------
4eb2b4fe26 | Pete Hurst | 2013-06-21 19:52:14 +0100

Move chimera to magenta 'H' (like other hybrids)

--------------------------------------------------------------------------------
834c252294 | Pete Hurst | 2013-06-21 19:19:10 +0100

Construct chimera spell books more sensibly
Rather than filling any available slots with any old spells,
this uses the misc slots for potential bolt spells, and
correctly copies spells from special slots (enchant, self-ench,
emergency).

This provides for situations like bear chimera using berserk
properly as an escape spell.

--------------------------------------------------------------------------------
11fb7f4099 | Neil Moore | 2013-06-21 14:10:55 -0400

Don't crash when the branch exit has a kmask

--------------------------------------------------------------------------------
373a9dbf31 | Chris Campbell | 2013-06-21 19:03:35 +0100

Remove references to racial ammo from throw.cc
This also incidentally removes a free +1 to-hit and to-damage that
almost all ranged monsters got for using "matching" racial launchers
and ammunition (with the race in question being "none"). Also made
monsters only get a bonus to-hit from elven launchers if they are
actually elves.

Racial tags on launchers still look very inconsistent and unintuitive,
and could probably just be removed.

--------------------------------------------------------------------------------
61733ca554 | Pete Hurst | 2013-06-21 18:26:20 +0100

Support spell lists of 2nd and 3rd chimera parts

--------------------------------------------------------------------------------
2eb7d383bc | Pete Hurst | 2013-06-21 18:26:20 +0100

Chimera support for special abilities
Currently this will only apply to dragon breath, but
will potentially support some other monsters as chimera too.

--------------------------------------------------------------------------------
a03ade298d | Pete Hurst | 2013-06-21 18:26:19 +0100

More webs and less spiders (Sack of Spiders)
The web formula has been simplified and provides
a better progression from skill 1-27. The webs
have been made more prominent and the number of
spiders more limited.

--------------------------------------------------------------------------------
1f8f123fb4 | Pete Hurst | 2013-06-21 18:26:19 +0100

Standardise charges for Sack of Spiders too

--------------------------------------------------------------------------------
292bf21c33 | Pete Hurst | 2013-06-21 18:26:19 +0100

Standardise number of beasts in Box

--------------------------------------------------------------------------------
b49e8cfc3a | Pete Hurst | 2013-06-21 18:26:19 +0100

Reduce summon duration of chimera

--------------------------------------------------------------------------------
e8f99bc679 | Pete Hurst | 2013-06-21 18:26:18 +0100

Allow chimera to fly if any base creatures are winged

--------------------------------------------------------------------------------
92e1606352 | Pete Hurst | 2013-06-21 18:26:18 +0100

Allow chimera to be batty
If they have a batty component they'll now
have bat wings.

--------------------------------------------------------------------------------
06883c5292 | Pete Hurst | 2013-06-21 18:26:18 +0100

Improve chimera descriptions
Comma-separated the short description,
and clarified the three-headed situation.

--------------------------------------------------------------------------------
71f5118625 | Pete Hurst | 2013-06-21 18:26:18 +0100

Pick 2nd and 3rd chimera components from lower levels sometimes

--------------------------------------------------------------------------------
b8fc669043 | Pete Hurst | 2013-06-21 18:26:17 +0100

Tweak the beasts monster list
Removed most of the more fantastical and aligned creatures
since the results seemed a little incongruous. Chimera are
already fantastical when composed of mundane beasts. Dragons
are possible at top levels now.

--------------------------------------------------------------------------------
02284b115a | Pete Hurst | 2013-06-21 18:26:17 +0100

Prevent evokers counting as an action when they didn't work

--------------------------------------------------------------------------------
aa113e5759 | Pete Hurst | 2013-06-21 18:26:17 +0100

New item "Sack of Spiders"

--------------------------------------------------------------------------------
6e93027b9e | Pete Hurst | 2013-06-21 18:26:16 +0100

Start wizmode Box of Beasts with 50 charges

--------------------------------------------------------------------------------
d3bc6e3250 | Pete Hurst | 2013-06-21 18:26:16 +0100

Updated description for Box of Beasts

--------------------------------------------------------------------------------
5f1c69c4a1 | Pete Hurst | 2013-06-21 18:26:16 +0100

Box of Beasts produces chimera instead of individual beasts

--------------------------------------------------------------------------------
449020270a | Pete Hurst | 2013-06-21 18:26:16 +0100

Implement Chimeric monsters
After creating the monster, the make_chimera function
in mon-chimera.cc can be used to set its component
creatures.

--------------------------------------------------------------------------------
e9ecdcbda8 | Pete Hurst | 2013-06-21 18:26:15 +0100

Increase shop value for Box of Beasts

--------------------------------------------------------------------------------
b63a672052 | Pete Hurst | 2013-06-21 18:26:15 +0100

Increase shop value for elemental evokables

--------------------------------------------------------------------------------
9d103ec450 | Pete Hurst | 2013-06-21 18:26:15 +0100

Add a gadget shop for miscellany/evokables

--------------------------------------------------------------------------------
c27a74e659 | David Lawrence Ramsey | 2013-06-21 18:26:14 +0100

Fix spacing.

--------------------------------------------------------------------------------
a1eaa04b93 | David Lawrence Ramsey | 2013-06-21 18:26:14 +0100

Fix inaccurate comment.

--------------------------------------------------------------------------------
77371fb7e2 | Pete Hurst | 2013-06-21 18:26:14 +0100

Don't let Box of Beasts create ravens at low Evo

--------------------------------------------------------------------------------
abed1aa539 | Pete Hurst | 2013-06-21 18:26:14 +0100

Further tweaks to Box of Beasts
- Added more monsters to the spawn list
- Gave a chance for up to 3 beasts
- Shuffled tougher monsters further up the Evo rankings
- Reduced the maximum number of charges

--------------------------------------------------------------------------------
c6589456a6 | Pete Hurst | 2013-06-21 18:26:13 +0100

Give Box of Beasts a fixed 2/3 chance of success
Failure doesn't use up a charge though.

--------------------------------------------------------------------------------
bdcc6e9685 | Pete Hurst | 2013-06-21 18:26:13 +0100

Migrate existing Boxes of Beasts with some charges
Otherwise they would expire immediately on first use.

--------------------------------------------------------------------------------
3052883e0e | Pete Hurst | 2013-06-21 18:26:13 +0100

Improvements to Box of Beasts
It's now guaranteed to produce a friendly monster,
and the number of charges are decided when the box is generated
(between 6 and 26). The quality of beasts generated is linked
to your Evocations skill and the list is specified by a pop_entry
table (i.e. uses mon-pick). Might need scaling back.

--------------------------------------------------------------------------------
caba246645 | Pete Hurst | 2013-06-21 18:26:13 +0100

Allow mon-pick to be used with arbitrary pop_entry lists
The pick_monster_from function can now be called with a pop_entry
table and a depth to allow reuse of the mon-pick algorithm
in other situations (e.g. spawn lists for summoning effects).

--------------------------------------------------------------------------------
6f4e5b9996 | Adam Borowski | 2013-06-21 15:37:53 +0200

Strip pointless channel prefixes from hell effects.

--------------------------------------------------------------------------------
78e20ae97a | Adam Borowski | 2013-06-21 15:21:42 +0200

Give hell effects their own message channel.
There's too many of them do comfortably list in your config, some
include "," which is a separator.  Also, it's better to have them
all on one colour rather than four.

--------------------------------------------------------------------------------
edaffbec1d | Adam Borowski | 2013-06-21 13:52:51 +0200

Assert that $BRANCH:1 always has an exit.

--------------------------------------------------------------------------------
11135592c4 | Adam Borowski | 2013-06-21 13:39:34 +0200

Let vault code work normally during --mapstat and --test.
Some layouts and vaults are lazy buggers who skip work during initial
validation.

--------------------------------------------------------------------------------
b35ddcec3c | Adam Borowski | 2013-06-21 12:47:15 +0200

Properly set the enums for proper hell branch exits.
This is mostly to let us more easily assert the existence of a portal
back home, although it has a side effect: there's only one entry.

--------------------------------------------------------------------------------
debd2d6947 | Brendan Hickey | 2013-06-21 00:32:41 -0700

Moth of Madness
A nasty moth that polymorphs monsters into monsters of the same genus.
For reasons that aren't immediately clear to me, some of the validation
checks are failing so uniques might be generated.

The poly distribution should probably be based on the delta between the
monster's HD and the target HD with a bias toward making it stronger.
Thus an orc is much more likely to become an orc warrior than an orc warlord.

Currently hilarious.

--------------------------------------------------------------------------------
600186514c | Neil Moore | 2013-06-21 01:00:05 -0400

Rename a potentially misleading function.
We usually use "place" to mean putting something into the grid, which
isn't what's happening here.

--------------------------------------------------------------------------------
777f8315b6 | Steve Melenchuk | 2013-06-20 21:58:06 -0600

Try harder to use available thematic multi-altar temple overflow vaults.
Right now, if there's a combination of overflow gods that has such a
vault available, the associated vault (or one of the associated vaults
if there are multiple vaults that satisfy the condition) is guaranteed
to be placed; this might need to be changed up later if we end up with a
large number of multi-god overflow vaults.

--------------------------------------------------------------------------------
2058615561 | Steve Melenchuk | 2013-06-20 21:58:01 -0600

Some vaults; mostly thematic multi-god temple overflows.
This is mostly to illustrate the concept thereof.

A couple of vaults designs I've had kicking around are also in this
commit.

--------------------------------------------------------------------------------
0eca6cb426 | Steve Melenchuk | 2013-06-20 21:33:36 -0600

Allow overflow temples to have specific combinations of deities.
This changes up the temple overflow tag syntax thus:

- Generic overflow temples now use the tag "temple_overflow_generic_N".
- Specialised overflow temples use "temple_overflow_N" and tags for
  the deities they place; this includes single-altar overflow temples
  (so the existing overflow vaults have been re-tagged).

The overflow vaults are now collected in dat/des/altar/overflow.des
(generic ones have been moved from dat/des/branches/temple.des).

The "good god temple" vaults (the ones that place altars to the three
good gods) have been assigned tags using the new format as an
illustration of this.

--------------------------------------------------------------------------------
4102959e55 | Steve Melenchuk | 2013-06-20 21:33:36 -0600

Allow has_tag to function with multiple tags.
If you pass it more than one tag, it checks for all of them.

--------------------------------------------------------------------------------
50964496a3 | Neil Moore | 2013-06-20 22:27:15 -0400

Fix spelling of a function name (ChrisOelmueller)

--------------------------------------------------------------------------------
a468ff4ce8 | Steve Melenchuk | 2013-06-20 18:04:44 -0600

Adjust probability of an ice cave boss setup (HangedMan).

--------------------------------------------------------------------------------
2be2798b88 | Neil Moore | 2013-06-20 19:57:45 -0400

Fix ice_cave_small_demon.

--------------------------------------------------------------------------------
2022e05c54 | ontoclasm | 2013-06-20 17:21:55 -0500

Updated projectile tiles (roctavian, 7229)

--------------------------------------------------------------------------------
228ef318a5 | Neil Moore | 2013-06-20 17:04:41 -0400

Improve grammar and style.

--------------------------------------------------------------------------------
989e0c7c84 | Adam Borowski | 2013-06-20 22:27:07 +0200

Reset default_depth for Dis endings.
We don't want them earlier.  Having folks lose the nice sightseeing trip
through hell would be nasty...

--------------------------------------------------------------------------------
6f9768521c | Adam Borowski | 2013-06-20 22:08:40 +0200

Do extra Airstrike damage to floating djinn.
Because Eino said so.

The only ways for a djinni to be not considered floating are:
* be a tree
* be a spider next to a wall

We assume that djinni pigs fly -- for consistency with chicken^Wtengu pigs.

--------------------------------------------------------------------------------
165018c0bb | Adam Borowski | 2013-06-20 16:45:07 +0200

Do extra Airstrike damage to hovering djinn.
Why exactly does Airstrike hurt fliers more?  By my understanding, it's
because of not being able to brace yourself against the ground, so it
should apply to djinn even if they're centimeters above it, as usually.

This commit applies only to djinn over liquid, as folks on IRC seem to
prefer this way, but having this (minor) unavoidable vulnerability could
be an interesting way to make titans, wind drakes and blizzard demons
more of a threat.

--------------------------------------------------------------------------------
6cba5e28d7 | Pete Hurst | 2013-06-20 07:42:13 +0100

Properly fill lava pools on infiniplex's Gehenna layouts

--------------------------------------------------------------------------------
df3dd1a0a3 | Pete Hurst | 2013-06-20 07:27:31 +0100

Increase weights of infiniplex's Gehenna layouts
For some reason they were set far lower than my ones and
hardly ever showed up. They should now be just as common
overall.

--------------------------------------------------------------------------------
eea9de9276 | Pete Hurst | 2013-06-20 07:23:42 +0100

layout_pools.des improvements (infiniplex)
From Mantis #7153, numerous changes to Gehenna layouts.

--------------------------------------------------------------------------------
e1066d0377 | Pete Hurst | 2013-06-20 07:22:33 +0100

Add whitespace fixes

--------------------------------------------------------------------------------
ca4ca0801f | infiniplex | 2013-06-20 07:20:07 +0100

Added LUA make_round_box function

--------------------------------------------------------------------------------
8ac13c1f13 | Chris Campbell | 2013-06-20 02:44:33 +0100

Repurpose nicolae_zot_lich_garden as a Forest vault
The theme of Zot is general weirdness but grass and trees in Zot
unfortunately just look very ugly. Repurposed as a mostly-decorative
Forest vault instead (with butterfly spam removed).

--------------------------------------------------------------------------------
2ce31fa8c3 | ontoclasm | 2013-06-19 20:11:04 -0500

Brighten the Lorocyproca tile

--------------------------------------------------------------------------------
5b7c794d33 | Neil Moore | 2013-06-19 19:52:53 -0400

Add a new two-altar overflow temple.

--------------------------------------------------------------------------------
4b7eaaa9b9 | Neil Moore | 2013-06-19 19:45:24 -0400

Enable large overflow temples.
There are currently only three possible maps (one each of sizes 3, 5,
and 6), so the 10% chance might be too high.  On the other hand, given
how many times we see general_overflow_altar, maybe 10% is fine.

Only one multi-god overflow temple will be used per game.  Changing that
is possible but avoiding duplicates is notrivial, particularly when
there is only a single map for a given size.

The selection of overflow temple size should eventually be improved to
take map weights into account; currently it chooses uniformly from among
the possible overflow temple sizes.

--------------------------------------------------------------------------------
e2abcdf359 | Neil Moore | 2013-06-19 16:47:43 -0400

Warn on berserking with a weapon inscribed !a (#7231)

--------------------------------------------------------------------------------
1877ec72fe | Neil Moore | 2013-06-19 16:47:28 -0400

Simplify.

--------------------------------------------------------------------------------
bb2f8dbb09 | Neil Moore | 2013-06-19 16:43:41 -0400

Don't copy the player's weapon in the berserk check.

--------------------------------------------------------------------------------
2c01c8d835 | Neil Moore | 2013-06-19 16:41:17 -0400

Simplify is_melee_weapon and move it out of fight.cc
Also, make it take a reference rather than a pointer (like
is_{,ranged_}weapon) and use it in the berserk check.

--------------------------------------------------------------------------------
51996ca5c7 | Chris Campbell | 2013-06-19 20:48:04 +0100

Remove some Jory speech lines
Since he's no longer always silenced. Also adjust description since he
doesn't always live in the tower vault.

--------------------------------------------------------------------------------
30b086b342 | Neil Moore | 2013-06-19 15:02:31 -0400

Fix Enchantress, TRJ, etc in "You can see".
Now the Lernaean hydra, royal jelly, and SoH are handled correctly
(i.e. receive "the") when there is no attitude adjective; and the
Enchantress is handled correctly when there is an adjective.

--------------------------------------------------------------------------------
adfe588582 | Neil Moore | 2013-06-19 14:39:16 -0400

Avoid "your ally the Terence" (#7232)
To avoid code duplication, we let monster_info handle the logic of who
needs a determiner.

--------------------------------------------------------------------------------
9a5bc4b55e | Neil Moore | 2013-06-19 13:54:39 -0400

Avoid "friendly 9 bone dragons" in "You can see" dump.
There are still some problems: *"the neutral the Enchantress" (but
"the neutral Lernaean hydra"); and *"Lernaean hydra" (but "the
Enchantress").

--------------------------------------------------------------------------------
97b0cfd0a3 | Chris Campbell | 2013-06-19 18:09:26 +0100

Fix skill display in auto_training character dumps

--------------------------------------------------------------------------------
0d0634c8b3 | Adam Borowski | 2013-06-19 13:01:16 +0200

Actually change TELE to Tele in inscriptions.
This is what the status light was purported to be consistent with.

--------------------------------------------------------------------------------
dbe541c19b | Adam Borowski | 2013-06-19 12:56:57 +0200

Update a comment to the new spelling.

--------------------------------------------------------------------------------
db0eedb4cc | Neil Moore | 2013-06-19 03:02:20 -0400

Don't add a full stop after features in ctrl-x
Besides being inconsistent with monsters and items, the full stop
came before "(not visited)".

--------------------------------------------------------------------------------
5a9893dc9f | Neil Moore | 2013-06-19 02:56:49 -0400

Capitalise first line of item descriptions.
For consistency with monsters and features.

--------------------------------------------------------------------------------
b9ab53bc40 | Neil Moore | 2013-06-19 02:56:15 -0400

Fix capitalization of monster mouseover.
Also make a complete sentence out of the constriction description,
for consistency with the rest of the mouseover.

--------------------------------------------------------------------------------
413a5517ec | Neil Moore | 2013-06-19 02:26:09 -0400

Mark frenzied monsters in ctrl-x as (insane), not (neutral).

--------------------------------------------------------------------------------
4aecbced31 | Neil Moore | 2013-06-19 02:25:57 -0400

Don't describe frenzied and insane monsters as "indifferent".
The "insane" part is enough to capture the attitude change, and
"indifferent" sounds contradictory with "frenzied".

--------------------------------------------------------------------------------
f59dc81748 | Steve Melenchuk | 2013-06-18 22:58:05 -0600

-TELE -> -Tele in status lights.
This is consistent with the inscription, for what it's worth, but it's
mainly because no other indicator is in all caps (except MR, but that's
an acronym).

Apparently this was caused by old memories of the -Tele inscription
being -TELE.

--------------------------------------------------------------------------------
2e244fd37d | Adam Borowski | 2013-06-19 04:53:07 +0200

Make Ozocubu's Armour unmemorizable for Lava Orcs.
They either have stoneskin or are too hot, so there's no case they can
actually use it.

--------------------------------------------------------------------------------
f168501682 | Adam Borowski | 2013-06-19 04:51:52 +0200

Be more verbose and consistent about Ozo Armour failures.
Statue form grants lots of AC and GDR, so it should act like heavy armour
here.  Lava Orc stoneskin being different from that from other sources is
surprising, also casting Ozo Armour is mostly pointless as it'd melt when
it becomes useful.

--------------------------------------------------------------------------------
1037f5c5ca | Adam Borowski | 2013-06-19 04:51:46 +0200

Fix fruit acquirement for foodless races.

--------------------------------------------------------------------------------
d0268033c6 | Adam Borowski | 2013-06-19 03:51:31 +0200

Put Zin's ability to cure all mutations onto 'W'.
Someone managed to use it accidentally, and it's indeed quite easy
to do so.

--------------------------------------------------------------------------------
f4a4d883ff | Adam Borowski | 2013-06-19 02:45:36 +0200

Give rods of destruction more descriptive names.
I wonder, perhaps even "rod of flames" could be better?

--------------------------------------------------------------------------------
37ef2b3beb | Adam Borowski | 2013-06-19 02:45:35 +0200

Fix spectral/simulacrum shapeshifters always having 0 maxhp.

--------------------------------------------------------------------------------
adafc8040e | Neil Moore | 2013-06-18 18:25:54 -0400

Don't complain in checkwhite about empty files.
In particular, webserver/templates/footer.html is empty.  There isn't a
newline, but that's okay because there aren't any lines at all.

--------------------------------------------------------------------------------
4d0a0040f2 | Neil Moore | 2013-06-18 18:16:52 -0400

Whitespace fix.

--------------------------------------------------------------------------------
4f38b208ed | Neil Moore | 2013-06-18 18:15:29 -0400

Fix Lava Orc zotdef in SDL tiles too (#7224)

--------------------------------------------------------------------------------
db0e52b4f1 | Neil Moore | 2013-06-18 17:37:55 -0400

Reformat credits
At SamB's suggestion, the lists are now all one name per line.  The
devteam list is moved to the bottom so the thanks start on the first
page.

--------------------------------------------------------------------------------
693418d45b | Neil Moore | 2013-06-18 02:55:13 -0400

Clarify that only active ballistomycetes sporulate.
This addresses a comment from #6318, but not the main issue.

--------------------------------------------------------------------------------
683d0738e7 | Neil Moore | 2013-06-18 02:16:41 -0400

Document the want_move parameter for i_feel_safe and friends.

--------------------------------------------------------------------------------
a2b9f94b90 | Neil Moore | 2013-06-18 00:02:16 -0400

Look around when selecting items and features from ctrl-x, too.
Sometimes you don't want to (or can't) travel to the location
immediately, but would still like to know exactly where that item is.

If the player does want to travel, <enter> or <.> will do so.  The menu
header still says "view/travel", in part to be more distinct from
"examine" and in part to hint to the player that look-around does allow
travel.

--------------------------------------------------------------------------------
06e73ba740 | Neil Moore | 2013-06-18 00:02:01 -0400

When selecting a monster from ctrl-x, view its square.
Instead of printing the terse description---that was buggy anyway
because of a missing mesclr().

--------------------------------------------------------------------------------
76349d855f | Ed Gonzalez | 2013-06-17 22:03:05 -0400

Fix monsters showing up in ctrl-x on top of features in console. (#7203)

--------------------------------------------------------------------------------
1484bc5fa1 | Neil Moore | 2013-06-17 21:56:26 -0400

Don't exclude through double rows of trees.

--------------------------------------------------------------------------------
982866be88 | Neil Moore | 2013-06-17 20:58:41 -0400

Consider ghostly fireball/flames harmless to undead.
It's irrelevant for now, since bolt::is_harmless is only used for
the stop_attack_prompt, which wouldn't happen for non-player spells
like this one.

--------------------------------------------------------------------------------
26e3e4477b | Neil Moore | 2013-06-17 20:58:41 -0400

Consider meph harmless to rPois and unbreathing monsters.
In particular, this affects the stop attack prompt.

--------------------------------------------------------------------------------
8be95cd7c0 | Jason Van | 2013-06-17 19:22:13 -0400

crypt.des tweaks, clean-up, end-set re-balance
Function together the repeated lines in crypt entry vaults,
mark some vaults that should count as extra, with extra,
muck around with crypt ends after most had been buffed;
fit in new (or newly functional) enemies into most,
minimize some particularly-strong gimmicks.
Also of note: avoid teleport closets in evilmike_haunted_forest,
thicken select walls in due_elkab (for noise),
reduce all trap use,
nsubst some lost souls into the crypt ends
so they can respect no_monster_gen without being conspiciously absent.

--------------------------------------------------------------------------------
a74c840a97 | Chris Campbell | 2013-06-18 00:11:00 +0100

Don't deal stat loss damage when first hitting zero
Intended it to only occur on subsequent draining and accidentally
changed that when fixing it.

--------------------------------------------------------------------------------
73abbcd753 | Chris Campbell | 2013-06-17 23:48:26 +0100

Only deal stat loss damage on actual stat loss
Including stat loss while still recovering from draining, now.

--------------------------------------------------------------------------------
f8b3364d7c | Neil Moore | 2013-06-17 18:24:59 -0400

Remove a useless (and wrong) comment.

--------------------------------------------------------------------------------
516be57829 | Neil Moore | 2013-06-17 18:24:58 -0400

Simplify.

--------------------------------------------------------------------------------
99e16b97da | Neil Moore | 2013-06-17 18:24:57 -0400

Don't blame racial spell prohibitions on lich/wisp form.

--------------------------------------------------------------------------------
f8f256a78b | Neil Moore | 2013-06-17 18:24:57 -0400

Prevent Djinn from memorising Leda's (#7221)
They never touch the ground, so can never cast it.

--------------------------------------------------------------------------------
7320843306 | Neil Moore | 2013-06-17 18:24:56 -0400

Fix arena across restart_after_game (#2962)
The score and number of rounds, the "was cancelled" state, the unique
list, and various arena options were not being reset.

--------------------------------------------------------------------------------
e76f62175c | Neil Moore | 2013-06-17 18:24:56 -0400

Allow training Evocations with ring of teleport control.

--------------------------------------------------------------------------------
095ef86229 | Chris Campbell | 2013-06-17 23:18:26 +0100

Remove stat death, have stat loss below 0 cause damage instead
Death after spending a while with a stat at 0 no longer occurs, but the
negative effects (slowing, significant stat-dependent restrictions)
and the recovery period after restoring from 0 still exist, and
additional stat loss when below 0 causes some irresistible damage.
Actual stat death was rare, slightly spoilery in implementation (in
particular the death timer being precisely 90 actions) and the stat
zero restrictions remain a pretty good reason to not want to have your
stats at zero for any length of time.

--------------------------------------------------------------------------------
f51affd27a | Chris Campbell | 2013-06-17 22:18:27 +0100

Track deaths by spines

--------------------------------------------------------------------------------
842b776177 | Mu | 2013-06-17 21:37:53 +0100

Correct a minor error in due_elkab
The 'KMONS: 2 = ...' statement was being immediately overwritten
by the 'MONS' line underneath it, leading to the unintended
consequence of about a dozen generate_awake vampire mages.

--------------------------------------------------------------------------------
c8c6743db2 | Steve Melenchuk | 2013-06-17 13:51:14 -0600

Mark Leda's as useless when it can't be cast (#7221).
The prerequisites are that the player's standing on solid ground and
that the ground's not already liquefied, which are mirrored in the
uselessness check.

--------------------------------------------------------------------------------
e3678806b6 | Steve Melenchuk | 2013-06-17 12:54:17 -0600

Broaden Arga's horizons.
Arga is now a broad axe (was a war axe).

fsim suggests it deals about 10 more damage per 10 aut with this change;
hopefully it will no longer be as underpowered as our expert players
made it out to be before this change.

--------------------------------------------------------------------------------
75ee6c34c1 | Steve Melenchuk | 2013-06-17 12:24:39 -0600

Make melee combat more exciting!!!!
This logarithmically adds more exclamation marks for each doubling of
the HIT_STRONG threshold - 72 damage yields !!!!, 144 damage yields
!!!!!, etc.

The most pathological cases I can come up with that are still remotely
likely to come up in normal gameplay only yield up to about !!!!!!!!, so
this doesn't get *too* spammy (unlike, say, Sil sneak attacks) while
being extremely therapeutic at the same time.

Try playing a stabber now! Xom thinks this is hilarious!

--------------------------------------------------------------------------------
c9da7b31df | Steve Melenchuk | 2013-06-17 12:16:09 -0600

Critical hit messages for plain unarmed combat (not claws/tentacles).
Using "pummel" for both medium and strong tiers was just boring, so this
expands the repertoire considerably.

This rearranges the logic a little to unify both instances of the
unarmed combat attack verbs; there's still some duplication for the
claws and tentacle cases which hopefully can go away soon as well.

--------------------------------------------------------------------------------
9943704e9f | Neil Moore | 2013-06-16 22:42:26 -0400

Grammar fix.

--------------------------------------------------------------------------------
d581f763a9 | Jason Van | 2013-06-16 22:41:17 -0400

icecave.des tweaks, clean-up, simulacrum variety
Use specific definitions of more interesting-than-default simulacra,
pre-identify the egos of almost all freezing/cold_res equipment,
put in slightly more variety for some cave bosses,
variate or guarantee or push around varied bits of loot.

--------------------------------------------------------------------------------
3307a2dca8 | Steve Melenchuk | 2013-06-16 20:35:08 -0600

One last piece of Donald dialogue.
I meant to add this in on the first pass, but forgot it somehow.

I hate that.

--------------------------------------------------------------------------------
1d333ba3f2 | Steve Melenchuk | 2013-06-16 20:18:36 -0600

Donald Forest/Vaults/Abyss dialogue (#7197).
Lines by me, HangedMan, gammafunk, and nicolae (with a bit of
editorialising on my part).

Since Donald has more Vaults dialogue, he can turn up in Vaults again. I
hate that.

--------------------------------------------------------------------------------
544dfc761d | Steve Melenchuk | 2013-06-16 20:02:56 -0600

Try to make tar_grunt less empty and spoilery.
The small loot vaults are mostly stone with three rock spaces and a
translucent rock space (this might get removed if it seems too out of
place); the decoy pillars are now just standard decor and vary in size
(they're still completely rock).

The border of the level isn't a plain square any more; there are a few
more decor vault definitions and more decor vaults are placed.

This also tags the tar_mu subvault with unrand, which I missed on the
first pass.

--------------------------------------------------------------------------------
69bd591fa3 | Steve Melenchuk | 2013-06-16 19:27:00 -0600

Procedurally generate tar_mu's maze.
Yes, Mu asked me to look into this, so it's done now.

I've moved the maze's right boundary in by one tile and padded the
bottom non-room area with an extra bit of rock wall to satisfy the
constraints of this algorithm that the dimensions be odd.

Anyway, it works well enough for my liking!

--------------------------------------------------------------------------------
3cf9222d30 | Pete Hurst | 2013-06-17 00:46:29 +0100

Fix a probability using enum's value rather than duration value

--------------------------------------------------------------------------------
7b21ce736d | Mu | 2013-06-16 14:22:56 +0100

Tweak wizlab_cigotuvi slightly
Since people still apparently just skip this portal rather
than play through it, I've removed the worst room.
A single potion of beneficial mutation and single potion
of cure mutation are now guaranteed. I'm never tweaking this
again.

--------------------------------------------------------------------------------
20840b5542 | Mu | 2013-06-16 13:09:18 +0100

Fix tar_mu not being annoying enough
tar_mu needed a rework ever since secret doors were removed.

Ereshkigal's pyramid of secret doors has been transformed
into a labyrinth. It's a large rectangle to make it easy
for people to subvault-ize it should the urge strike them.

It all looks to be in order, but when you overwrite one
vault with a new vault there are occasionally little mistakes
left over ...

--------------------------------------------------------------------------------
d65f83e9e8 | Chris Campbell | 2013-06-16 09:09:48 +0100

Don't place draconians in D:24-26 profane_halls
They shouldn't venture so far out from Zot.

--------------------------------------------------------------------------------
8987dc3f3a | Adam Borowski | 2013-06-15 23:43:59 +0200

Don't special-case destroying Sif gifts at all.
Not sure what was the purpose of that; in any case, the player has both her
invocation and scrolls so there's little point keeping this complex.

--------------------------------------------------------------------------------
e473d029e9 | Adam Borowski | 2013-06-15 23:38:07 +0200

Add Bloax' sweet cacodemon tile to UNUSED/.
Here's a progress report about how doomed we are:

✓ various weapon-using zombies
✓ imp
    slightly hindered by 0.10-a0-1355-g43440df
✗ demon
    definable: a simple melee-only animal.  The name is too generic.
└ spectre (perm_ench:invis)
✓ lost soul
    flying skulls (more faithful) and lost souls (name).
✓ cacodemon
    spells are definable, inertia on being shot not.
✓ hell knight
└ baron of hell (exact rename with +hd)
✓ arachnotron
    orb spiders (could use a rapid-fire weapon)
✗ pain elemental
    definable: some eye spells:call_lost_soul
✓ revenant
    IOOD is a direct implementation of their weapon
✗ mancubus
✗ arch-vile
✗ spider mastermind
✗ cyberdemon
✓ some bastard that runs around and kills folks

--------------------------------------------------------------------------------
a1f28ff2f1 | Adam Borowski | 2013-06-15 23:37:41 +0200

Revert "Track who destroys an item; incur Nemelex penance for deck destruction."
This follows removal of documentation in 747b1a2d.

Giving penance for a pointless act you need to go out your way for is quite
strange -- it doesn't in any way restrict the player and thus has no balance
gains, and there's a cost of making an already long god description even
longer.  Plus, you can get rid of decks simply by dropping them; on a
non-permanent level if you really want to keep ^F clean.

Not sure if the source tracking should be kept; for now I reverted it to
keep things simple and to avoid an use of deprecated mindex (let's get rid
of it already!), but if there's an use, please unrevert this part.

This reverts commit 46bfda39a8d584164fa475188367f331314a644d.

--------------------------------------------------------------------------------
f55ef6b5f2 | Adam Borowski | 2013-06-15 23:26:12 +0200

Don't give extra penance for non-gift books that happen to have Sif in their 
name.

--------------------------------------------------------------------------------
2330e67aaf | Adam Borowski | 2013-06-15 23:26:12 +0200

Revert "Handle destroyed spellbooks the same as destroyed decks."
Allows simplifying the code by removing destruction tracking.

This reverts commit 4f93a5e51cadaae03a09be0f2ee82510a902e193.

--------------------------------------------------------------------------------
b3c1dae776 | Adam Borowski | 2013-06-15 23:26:12 +0200

Revert "Unify handling of spellbook destruction for god purposes."
It's weird to grant Trog piety for eating spellbooks in jelly form, etc.

This reverts commit daaddd0ef6bee09027348bc5d16de23389ff7a30.

--------------------------------------------------------------------------------
3c4ea9ef4c | Adam Borowski | 2013-06-15 23:26:12 +0200

Make hellfire explosions look slightly different from fire ones.

--------------------------------------------------------------------------------
40bfca1178 | Adam Borowski | 2013-06-15 23:26:11 +0200

Indentation/brace fixes.

--------------------------------------------------------------------------------
d7423846ba | Neil Moore | 2013-06-15 17:23:23 -0400

Identify one more Sprint III item.
There are also many monsters with equipment egos that can be deduced
by spoiled players, but I have left those alone.

--------------------------------------------------------------------------------
06244c5be5 | Rahul Chandra | 2013-06-15 17:13:57 -0400

Pre-ID items in sprint III that are known to spoiled players.

--------------------------------------------------------------------------------
f357897535 | Pete Hurst | 2013-06-15 15:39:55 +0100

Fix a testing weight

--------------------------------------------------------------------------------
2f11a74de5 | Jason Van | 2013-06-15 15:34:24 +0100

dis.des clean-up, tweaks; new Dis end

--------------------------------------------------------------------------------
c4875c4b34 | lain | 2013-06-15 05:38:54 -0700

make the spectral weapon disappear when the player's weapon is melded

--------------------------------------------------------------------------------
50fe1c5c65 | Neil Moore | 2013-06-15 02:44:28 -0400

Remove obsolete BFLAGS: documentation.

--------------------------------------------------------------------------------
747b1a2d7d | Neil Moore | 2013-06-15 02:11:33 -0400

Undocument Nemelex deck destruction penalty.
It's hiding actually relevant information on 80x24 terminals.  MarvinPA
argues that the penalty should be removed entirely.

This reverts commit 68e6ee8d9022a74db510756b727402b40379524f.

--------------------------------------------------------------------------------
d69a504dac | Chris Campbell | 2013-06-14 23:40:24 +0100

Don't spam Abyss messages when placing god wrath monsters
Possibly messages still appear inappropriately for some other forms
of monster generation (miscasts?) - should these messages just be
removed?

--------------------------------------------------------------------------------
49bb25104d | Chris Campbell | 2013-06-14 22:09:28 +0100

Remove misleading spell colours
Don't mark Vehumet-supported spells as "empowered" - their power isn't
increased and the success boost is already indicated elsewhere.
Duration spells aren't useless when you can extend the duration.

--------------------------------------------------------------------------------
060506114a | Pekka Lampila | 2013-06-14 22:33:57 +0300

Remove a pointless footer from WebTiles

--------------------------------------------------------------------------------
0407d63d9b | Neil Moore | 2013-06-14 13:46:37 -0400

Idiomize (anthem)

--------------------------------------------------------------------------------
3e32d0a687 | Pete Hurst | 2013-06-14 11:16:59 +0100

Whitespace fix

--------------------------------------------------------------------------------
3ac5259df0 | Pete Hurst | 2013-06-14 11:15:55 +0100

Make layout_city rooms more interesting (infiniplex)
From Mantis #7153

--------------------------------------------------------------------------------
94ba866206 | Pete Hurst | 2013-06-14 11:15:54 +0100

Move a wide open layout further down in D

--------------------------------------------------------------------------------
164a639f79 | Neil Moore | 2013-06-14 01:08:11 -0400

Don't segfault on "MONS = ;".

--------------------------------------------------------------------------------
53bcbbc315 | Adam Borowski | 2013-06-14 05:39:45 +0200

Fail when asked to find a monster by an empty string.

--------------------------------------------------------------------------------
c1ef620d05 | Adam Borowski | 2013-06-14 05:27:14 +0200

Unrecommend DjTm, recommend DjDK.
Djinn suck at unarmed and their Tmut is at 0.
They're good with some weapons, have good armour and ok invoc.

--------------------------------------------------------------------------------
0575fc830e | Adam Borowski | 2013-06-14 05:17:56 +0200

A whitespace fix.

--------------------------------------------------------------------------------
c48fbbd3ef | Adam Borowski | 2013-06-14 05:13:57 +0200

Remove include guards from *-data.h
Their content results in actual code (rather than prototypes or templates)
and thus trying to include them twice should result in a fatal error.

--------------------------------------------------------------------------------
8b0bc899ae | Pete Hurst | 2013-06-14 00:43:13 +0100

Restrict layout_cross from Pan
When it generated alongside some Pan lord vaults
it looked pretty strange, it doesn't seem like a
bizarre enough layout for Pan anyway.

--------------------------------------------------------------------------------
d18c960d70 | infiniplex | 2013-06-14 00:38:15 +0100

Added thick walls to some layout_city rooms

--------------------------------------------------------------------------------
e4fc2b89ce | infiniplex | 2013-06-14 00:38:13 +0100

Added LUA you.depth_fraction function

--------------------------------------------------------------------------------
0421724b39 | infiniplex | 2013-06-14 00:38:12 +0100

Reimplemented LUA dgn_make_box_doors: more options

--------------------------------------------------------------------------------
0ec28337ac | Neil Moore | 2013-06-13 14:21:45 -0400

Consolidate and simplify job and species validity checks.

--------------------------------------------------------------------------------
6cbdf9d592 | Neil Moore | 2013-06-13 14:21:45 -0400

Don't disable LO on release (gammafunk)
Maybe they need to be, but it causes problems for people who have
made funny tags in their local repositories.

--------------------------------------------------------------------------------
6e70c5315e | Chris Campbell | 2013-06-13 19:18:13 +0100

Reinstate Gargoyle stat gain on levelup

--------------------------------------------------------------------------------
1cbca4fc8f | Reid Barton | 2013-06-13 19:17:53 +0100

Remove an unnecessary const_cast

--------------------------------------------------------------------------------
f653fd7ca5 | Reid Barton | 2013-06-13 19:17:52 +0100

Include skills being trained in the dump even if they're at 0

--------------------------------------------------------------------------------
8f7d80ff4c | Chris Campbell | 2013-06-13 18:17:02 +0100

Let Jory spawn as a normal unique
To give him a chance to finally get some kills. Same depth as Frederick.

--------------------------------------------------------------------------------
b9f410d6dd | Pete Hurst | 2013-06-13 14:33:46 +0100

Update some outdated references to tiles_options.txt

--------------------------------------------------------------------------------
8cc4028731 | lain | 2013-06-13 01:06:39 -0700

make the spectral weapon damage sharing depend on the owner's hp rather than 
just the player's

--------------------------------------------------------------------------------
b5f3816a7c | lain | 2013-06-13 00:42:23 -0700

Merge remote-tracking branch 'qcrawl/newskalds-qoalamod' into newskalds
Conflicts:
	crawl-ref/source/monster.cc

--------------------------------------------------------------------------------
03ffd2dd39 | Ed Gonzalez | 2013-06-13 00:32:14 -0700

Revert "Don't let spectral weapon reach past features."
The new spectral weapon AI handles things much better.
No longer need to expose functions from mon-act.cc.

This reverts commit 39ff108d3a4bdebfed750e05b89eecdc3c10cc0f.

Conflicts:
	crawl-ref/source/spl-summoning.cc

--------------------------------------------------------------------------------
b9bf1a2df0 | Ed Gonzalez | 2013-06-13 00:15:50 -0700

Don't attribute allied non-player spectral weapons to the player.
Now exp and kills are fully attributed to the player only if the
weapon's owner is the player.

--------------------------------------------------------------------------------
f9943bac06 | Ed Gonzalez | 2013-06-13 00:00:02 -0700

Rework spectral weapon AI to attack on its own turn.
The spectral weapon no longer attacks immediately following its owner's
attack.  On its own turn, it attempts to path towards the target and
attacks exactly once when first able.  (Internally, its owner attacking
triggers a "ready" flag, which is consumed on attack.)
This should better mirror battlesphere, and fixes a number of issues
with non-player spectral weapon (not) attacking when it wasn't supposed
to.

It seems to work properly for:
* player SW attacking monster
* allied non-player SW attacking monster
* monster SW attacking player

There are issues (see below) with:
* monster SW attacking (or at least signaled to attack) allied monster

Known issues:
* Sometimes an enemy spectral weapon that is told to target an ally will
  path towards the player instead.
* Spectral weapon still attributes all its kills and damage to the player.
* Spectral weapon doesn't listen to charm/end charm on its owner.
* Spectral weapon needs to be reset at an appropriate time.
* Allied spectral weapon with an invisible target might leak information
  in summon_can_attack?

--------------------------------------------------------------------------------
26e1ed518d | Neil Moore | 2013-06-13 01:53:42 -0400

Unrestrict staves for gargoyles.

--------------------------------------------------------------------------------
33f0eee90e | Samuel Bronson | 2013-06-12 23:36:25 -0400

Stop on alarm traps/sentinel's mark (rchandra)

--------------------------------------------------------------------------------
92775cd180 | Neil Moore | 2013-06-12 19:25:01 -0400

Fix formatting and add comment.

--------------------------------------------------------------------------------
38f81d3ead | Steve Melenchuk | 2013-06-12 17:21:12 -0600

Don't trip up on connectivity checking for Pan encompass vaults.
This allows holy Pan (and possibly other future Pan encompass vaults) to
place properly again.

--------------------------------------------------------------------------------
f77dbd77ca | Ed Gonzalez | 2013-06-12 15:52:13 -0700

Monster AI for spectral weapon, and monster weapon skills
Casting spectral weapon works just like battlesphere, except that any
slots for SPELL_SPECTRAL_WEAPON get replaced with SPELL_MELEE when the
monster considers spells and it already has one.  This should lead to
the caster spending more time triggering the spectral weapon.

Monsters now have weapon skills:
Fighters get hd, non-fighters get hd/2.
If wielding their signature weapon, they get *5/4.

Also, if a monster unwields its spectral weapon, the weapon fades away.

Note: enemy spectral weapon still attacks freely.
      This will probably require a rewrite of how a spectral weapon
      attacks, in order to fix.

--------------------------------------------------------------------------------
39ff108d3a | Ed Gonzalez | 2013-06-12 14:53:31 -0700

Don't let spectral weapon reach past features.
This is a bandaid on the attack portion of the code only.  Doesn't
affect the movement AI, so it'll happily stand where it can't reach.

If the attack code is ever changed to not use this,
handle_monster_reaching should be renamed back to _handle_reaching and
made static again.

--------------------------------------------------------------------------------
2895fcecf5 | Ed Gonzalez | 2013-06-12 13:43:22 -0700

Fixed allied monster spectral weapon not attacking and related crashes.
Now the SW dissipates with its owner, and doesn't crash if orphaned.

The SW follows its owner (mostly), instead of the player.

Unified monster and player code for triggering SW to attack, and
disabled triggering if running an fsim.

Fixed crash on attacking own spectral weapon.

--------------------------------------------------------------------------------
e19c6d6250 | Steve Melenchuk | 2013-06-12 14:30:52 -0600

Adjustments to a vault.
The pattern in the middle of the left side was intended to be symmetric,
which it wasn't; it is now. The hallway on the entry side looked odd
being two spaces wide when the other hallways were three spaces wide, so
now it's three spaces wide (room for it has been made by moving the hall
one tile to the left, also allowing for the symmetric pattern), and has
pillars like the other hallways.

It just looks better now.

--------------------------------------------------------------------------------
b6e942d54b | Ed Gonzalez | 2013-06-12 12:06:32 -0700

Temporarily moved book of Battle enum until next major version.
To allow save compatibility, the book of Battle now occupies the old
enum of book of Morphology, until the next major version bump.  Once
that happens, it can take its place near the other starter books.

Note that there are two places in book-data.h specifying spells in the
book of Battle (one for now, one for after the version bump), which must
be kept synced.

--------------------------------------------------------------------------------
00169f9a1d | lain | 2013-06-12 07:44:27 -0700

reduce rc and rf resistances of spectral weapon monster, limit the maximum 
damage shared to be the spectral weapon monster's current hp

--------------------------------------------------------------------------------
8e3e18e889 | Ed Gonzalez | 2013-06-12 03:13:51 -0700

Initial casing for monster spectral weapon.
There's no way for a monster to cast it, even if it were on its spell
list, but the spectral weapon code largely is aware of its owner now.

Known issues:
- The spectral weapon doesn't fade following the defeat of its owner.
- Enemy monster spectral weapon attacks freely.
- Allied monster spectral weapon never attacks.
- Spectral weapon doesn't follow charming/uncharming of its owner.

--------------------------------------------------------------------------------
8793e2d34f | Ed Gonzalez | 2013-06-12 01:41:07 -0700

Encapsulate some spectral weapon code in functions in spl-summoning.h
Finding the spectral weapon now has its own function, which is reused in
a number of places.

Ending the spectral weapon is handled similar to battlesphere, and now
clears the player property pertaining to the spectral weapon.

--------------------------------------------------------------------------------
d8a42ea553 | Ed Gonzalez | 2013-06-11 22:51:00 -0700

Cleaned up range-checking for Spectral Weapon
adjacent(...) just checks (grid_distance(...) <= 1), so replaced the
double check with a single query to grid_distance compared against a
ternary expression contingent on reach_range().

Likewise for checking if the player can still reach the target.

--------------------------------------------------------------------------------
79acb00ec7 | Ed Gonzalez | 2013-06-11 22:36:32 -0700

Spacing fixes.

--------------------------------------------------------------------------------
86beeefa62 | Ed Gonzalez | 2013-06-11 22:34:44 -0700

Added reach_range() to actor and player classes.

--------------------------------------------------------------------------------
d7bbba8df1 | Steve Melenchuk | 2013-06-11 23:07:32 -0600

Let stone wall tiles vary by console colour.
It might not be the best idea to be varying stone wall colours to begin
with, but at the very least doing this will help us identify vaults that
need changing.

--------------------------------------------------------------------------------
6f4f7989e7 | Steve Melenchuk | 2013-06-11 21:30:02 -0600

Move the upper bound of a vault to D:17 from D:14.
The uniques that can spawn there only spawn starting at D:17; placing
them before then is insane.

(I'm convinced the original depth was a typo.)

--------------------------------------------------------------------------------
0f9dadd421 | Steve Melenchuk | 2013-06-11 20:36:37 -0600

Prefer WALL_ABYSS for Abyss walls (and Corrupt walls).

--------------------------------------------------------------------------------
05bc3ef6be | lain | 2013-06-11 19:26:40 -0700

make the spectral weapon summon unable to regenerate

--------------------------------------------------------------------------------
24ccec0a68 | Steve Melenchuk | 2013-06-11 20:22:29 -0600

Match Abyss tile colours to console's (and provide tile variants).
Abyss now looks considerably less boring in tiles (in a good way).

Sadly, the wall_abyss tiles vary too much in hue to easily recolour
from just dc-wall commands, so a complete re-hued set is included - all
for the sake of ensuring it can display in any colour!

--------------------------------------------------------------------------------
c2eaf69b20 | lain | 2013-06-11 19:21:24 -0700

give the spectral weapon some intial resists
this is intended to limit the damage shared by the spectral weapon when it is 
hit by powerful conjurations like fireball --- the summon now has rf++, rc++, 
re, rp.

--------------------------------------------------------------------------------
0e3f94fd7d | lain | 2013-06-11 17:24:30 -0700

make spectral weapons approach what is being attacked when the player is using 
a reaching weapon

--------------------------------------------------------------------------------
4d73cd2944 | lain | 2013-06-11 17:01:09 -0700

fix a crash when the spectral weapon was damaged by a non-actor source
ideally in the future the spectral weapon properly shares damage from all 
sources; for now, this just fixes a crash that can occur when it is damaged by 
things like slime walls.

--------------------------------------------------------------------------------
6362fb295b | lain | 2013-06-11 08:02:04 -0700

let spectral weapons always cut off hydrae heads

--------------------------------------------------------------------------------
6a9a77e7ee | lain | 2013-06-11 07:05:44 -0700

make spectral weapon not fragile again, reintroduce damage sharing
playing with the fragile spectral weapon was not fun at all, so i think going 
back to the damage-sharing-strong-spectral weapon is worthwhile. the shared 
damage has been upped to 66% but also can never actually kill you (ideally) --- 
if you are at 1 hp, you shouldn't take any shared damage (although you are 
probably going to die from other sources).

--------------------------------------------------------------------------------
e08384efb6 | lain | 2013-06-11 03:34:44 -0700

improve spectral weapon movement behavior
now the weapon will only move around if it cannot attack the monster being
attacked by the player. this means spectral spears and tridents wont usually
move adjacent to far-away enemies, and prevents the weird dancing that would
occur when engaging in combat with a spectral weapon summon.

--------------------------------------------------------------------------------
9c1491e134 | Neil Moore | 2013-06-11 03:27:45 -0400

Remove one more vestige of temp_pacif.
The stray entry in enchant_names would have caused problems when a
major bump removes the enum.  Schedule the enchant_names entry for
removal at the same time.

--------------------------------------------------------------------------------
66217fb6ad | Neil Moore | 2013-06-11 03:17:52 -0400

Add a section on #if TAG_MAJOR_VERSION to the save compat docs.

--------------------------------------------------------------------------------
078c03fe54 | Pekka Lampila | 2013-06-11 09:39:40 +0300

Remove unused ENCH_TEMP_PACIF code

--------------------------------------------------------------------------------
36d089cf0d | Pekka Lampila | 2013-06-11 09:06:03 +0300

Make enslaved priests neutral on Beogh conversion
The enslavement now instantly ends, because being charmed and neutral at
the same time doesn't really work well.

--------------------------------------------------------------------------------
e26ce9e59c | Pekka Lampila | 2013-06-11 08:42:06 +0300

Beogh convert: Priest must be awake, not-confused

--------------------------------------------------------------------------------
5426a81b73 | lain | 2013-06-10 15:47:33 -0700

increase base duration and maximum duration of spectral weapon

--------------------------------------------------------------------------------
2bae144ca5 | Neil Moore | 2013-06-10 18:13:35 -0400

Sync manual from the wiki.

--------------------------------------------------------------------------------
5f25d29f6a | Neil Moore | 2013-06-10 18:12:07 -0400

Assert if we randomly choose a removed job.
Removed jobs should be marked as banned for all races. If they were not
banned, it would have been possible to get that job by choosing a race
and then requesting a random background, or by requesting a random
character.

--------------------------------------------------------------------------------
d56ea20091 | Neil Moore | 2013-06-10 18:08:36 -0400

More completely remove priests.

--------------------------------------------------------------------------------
ab48cd3120 | Adam Borowski | 2013-06-10 22:06:28 +0200

Make elven walls even more eye-gouging, but less stony.
This shed next repainting, badly.  This is the least change from status
quo, which doesn't make it good.

--------------------------------------------------------------------------------
75fae4535c | Adam Borowski | 2013-06-10 22:05:52 +0200

Forget about Maud being slightly weaker.
She should be at least as hard as some _herd_ animals who come at her depth.
Still, she's not Jory or Polyphemus, and at least kills people sometimes.

--------------------------------------------------------------------------------
c8c84faf5d | Adam Borowski | 2013-06-10 21:26:27 +0200

Eradicate laboratory rats.
Unlike st_'s purge which removed harmless renames because they had no
C++-side code, these are bad precisely because they have C++ side code,
and lots of it -- with a custom structure that's worse than if each of
10 labrat flavours had a separate mon-data entry, and none have a special
ability to show for it.

A rename costs a description and perhaps a tile, there's no maintenance
burden.

--------------------------------------------------------------------------------
b263bc3d72 | Adam Borowski | 2013-06-10 21:26:27 +0200

Eradicate two silliest bat species.
The great bat war is a part of Crawl's history, yet fruity bat were never
a part of it, and pun-based monsters (as opposed to flavour text) belong
together with subtractor snakes.

--------------------------------------------------------------------------------
43957d5ad2 | Adam Borowski | 2013-06-10 21:26:27 +0200

Eliminate darkgrey wands and randart jewelry.

--------------------------------------------------------------------------------
db7fac090f | Adam Borowski | 2013-06-10 21:26:27 +0200

Use something static for unhandled item type colours.
Assert-crashing instead would work too, but it's probably better to leave
it as something eye-burning to make coding new items minutely easier.

--------------------------------------------------------------------------------
74d22b2707 | lain | 2013-06-10 10:51:50 -0700

slightly increase hp and base damage of spectral weapon

--------------------------------------------------------------------------------
4b2a5bb926 | Neil Moore | 2013-06-10 13:14:39 -0400

Correct alphabetisation.

--------------------------------------------------------------------------------
f37f0c7677 | Neil Moore | 2013-06-10 13:05:40 -0400

Move retired developers from thankers to thankees.
I went by who is in the "Former Developers" section of the dev wiki's
dcss:admin:devteam page.  If you think you're in the wrong section,
let us know.

--------------------------------------------------------------------------------
7888ebb583 | Neil Moore | 2013-06-10 12:51:45 -0400

Simplify.

--------------------------------------------------------------------------------
5d73c5f294 | Steve Melenchuk | 2013-06-10 09:58:10 -0600

Recolours for WALL_HALL (Elven Halls wall) tiles.
This is mostly lazy, taking inspiration from the way stone walls and Zot
walls get recoloured (spot the similarities!).

It's enough to get Elf to display the way it should be shown in tiles,
though!

--------------------------------------------------------------------------------
85b6518050 | Steve Melenchuk | 2013-06-10 09:52:25 -0600

Allow ETC_ tile colouring to work on base wall/floor tiles.
This will give us the opportunity to display the Elven Halls in its full
technicolour glory once the tiles are in place for it.

--------------------------------------------------------------------------------
c73e592007 | lain | 2013-06-10 07:32:34 -0700

set the maximum hp of the spectral weapon when creating it

--------------------------------------------------------------------------------
42cdf3c869 | lain | 2013-06-10 07:10:33 -0700

reduce sos noise from 15 to 12

--------------------------------------------------------------------------------
07492eb401 | lain | 2013-06-10 06:19:01 -0700

let spectral weapon HD go up to 27, base its HP on spellpower

--------------------------------------------------------------------------------
554b95a2d9 | Pekka Lampila | 2013-06-10 16:12:10 +0300

Allow LOs to cast certain transformations in lava

--------------------------------------------------------------------------------
6b381951cd | lain | 2013-06-10 04:44:29 -0700

allow spectral weapon duration to be longer and correct its duration roll

--------------------------------------------------------------------------------
43b1466e9a | lain | 2013-06-10 04:32:11 -0700

increase noise made by song of slaying from 10 to 15

--------------------------------------------------------------------------------
ab488f6805 | lain | 2013-06-10 04:20:50 -0700

reduce and randomize spectral weapon duration, reduce spectral weapon ac/ev/hp 
and base ac/ev on spell power
the spectral weapon summon is now fragile, with low hp, ac, ev and also has a 
low maximum duration (2). it's possible the damage sharing should be 
reintroduced alongside these but i'd like to test it without for now.

--------------------------------------------------------------------------------
f1a30b52fa | Pekka Lampila | 2013-06-10 14:08:37 +0300

Don't crash on player distort weapon banishment
This simply doesn't generate noise for banishing hits, because the
monster position gets lost. Perhaps a better fix is in order.

--------------------------------------------------------------------------------
6ead813d9e | Neil Moore | 2013-06-10 02:03:23 -0400

Don't crash on ETC-coloured features.

--------------------------------------------------------------------------------
6ce47a61b4 | Pekka Lampila | 2013-06-10 08:03:24 +0300

Fix lobby being outdated after watching someone

--------------------------------------------------------------------------------
1c63bc72ca | Steve Melenchuk | 2013-06-09 22:59:53 -0600

Unbreak non-tiles compilation.

--------------------------------------------------------------------------------
9b01d5cde6 | Steve Melenchuk | 2013-06-09 22:53:09 -0600

Allow ETC_* feature colours to affect some displayed tiles.
Right now, this operates for floors, rock walls, and stone walls; if
some other colour really needs to be impacted, this code can probably be
extended to suit.

Yes, this means that pan_disco_hall now works in tiles!!!

--------------------------------------------------------------------------------
170f467454 | Pekka Lampila | 2013-06-10 07:34:59 +0300

Remove a few lines of unused code

--------------------------------------------------------------------------------
f8451c6ad6 | Pekka Lampila | 2013-06-10 07:32:47 +0300

Don't require password for config.autologin

--------------------------------------------------------------------------------
c7e4383460 | Pekka Lampila | 2013-06-10 07:29:30 +0300

Add MSG_OK when canceling for various prompts
Also in a couple of cases add other messages. The goal here is to always
print something when a prompt is dealt with.

--------------------------------------------------------------------------------
3b9ce244f7 | Pekka Lampila | 2013-06-10 07:29:17 +0300

Tweak to some inventory prompts with auto_list
Print the prompt before showing the menu, instead of after. Doesn't
matter for other versions, but in WebTiles menus aren't fullscreen.

--------------------------------------------------------------------------------
7307ddf4ff | Adam Borowski | 2013-06-10 03:29:44 +0200

Fix useless/bad classification of rings of sustenance and hunger.
They're useless for djinn, and temp useless for foodless forms.
For vampires, hunger is _not_ strictly bad, as it allows getting
undead resistances much faster when needed.

--------------------------------------------------------------------------------
7f8ecaac7b | Neil Moore | 2013-06-09 20:46:57 -0400

Be more consistent about Beogh conversion criteria (#7180)
If the priest was out of LOS but within LOS radius, you could get
the "press a Y" message without actually having the Beogh light.
Conversely, you could get the light but no message if you were
invisible to the priest.

Now the following criteria must hold to get either the status light
or the speech and message:

 * The priest must not be silenced.
 * You must be able to see the priest.
 * The priest must be able to see you. Glass is fine.

Furthermore, you won't get the status light (but will still get
the message) if you are silenced but the priest is not.

The priest's current behaviour also affects whether you will get the "a
Y" message.  If it's already seeking you (because of noise for example)
you won't get the message; this makes sense for the preaching speech,
but the a Y message should probably happen when you first get the
light as well.

I still worry the message might be too easy to miss, but I don't think
it's worth a default force_more.

--------------------------------------------------------------------------------
d766445b61 | Steve Melenchuk | 2013-06-09 18:35:53 -0600

Don't let (berserker) monsters uselessly spam Trog's Hand.
There was no check for if the spell had already been cast when
considering whether to cast the spell, causing monsters to spam it
unintentionally.

--------------------------------------------------------------------------------
a5badbaee5 | Neil Moore | 2013-06-09 19:38:03 -0400

New mcros ASSERT_IN_BOUNDS{,_OR_ORIGIN}().
These print the out-of-bounds coordinate as part of the assertion
message.

--------------------------------------------------------------------------------
5d961268d2 | blackcustard | 2013-06-09 19:21:27 -0400

Fix a crash related to LRD, noise, and permarock.
Some spells (e.g. dig and Lee's Rapid Deconstruction (LRD)) can be used
on the very edge of the level (permarock/open sea/lava sea). This is by
design. LRD can use permarock to make explosions, but cannot destroy it.

The bolt class wanted these spells to cause noise, and it was attempting
to center the noise on the border tile, which is technically
out-of-bounds. Because the noise code did not check for out of bounds
positions, the bolt class was successful.

When the resulting noise disturbed a monster, the out-of-bounds sound's
out-of-bounds location would be passed to behaviour_event through its
src_pos argument, triggering this assertion:
    "ASSERT(in_bounds(src_pos) || src_pos.origin());".

Changes:
1. Added an assertion in noisy in sound.cc to ensure that all sounds
are in-bounds.
2. Made these spells only generate noises in-bounds. If a noise needs
to be generated out-of-bounds, it will instead be generated nearby, but
in-bounds.

Maybe this messes things up by changing who can hear the sound in certain
situations?

--------------------------------------------------------------------------------
bec542cbd4 | blackcustard | 2013-06-09 18:35:31 -0400

Fix an Ozocubu's refrigeration crash.
cast_los_attack_spell needs to make sure the actors it is trying to affect
are still alive when it gets to them. Actually applies to Ozocubu's
refrigeration, drain life, and Olgreb's toxic radiance. Ozocubu's was just
the most likely source of crashes.

--------------------------------------------------------------------------------
b6c2e9ecdf | Steve Melenchuk | 2013-06-09 14:49:57 -0600

Remove plants from Forest random monster list.
Turns out layout_twisted_forest places a fair amount of plants on its
own; combined with plant clumping, I'm satisfied that the amount of
plants after this is adequate without being annoying.

--------------------------------------------------------------------------------
70638cbc02 | Steve Melenchuk | 2013-06-09 14:49:57 -0600

A couple of minor vault/layout hiccup fixes.
layout_twisted_woods had an unnecessary duplicate KMONS line in the
Crypt case specifically.

mu_elemental_laboratory's bosses left corpses with unnecessarily verbose
descriptions ("elf corpse of deep elf elementalist"); they've been
tagged with n_noc to fit with their kin and leave generic corpses now.

The diamond obelisk in kilobyte_diamond_obelisk uses the actual monster
definition again; this was originally done in 5733cd6 but accidentally
reverted in 0a212af (making it entirely my fault).

--------------------------------------------------------------------------------
9ea6b74e7a | Chris Campbell | 2013-06-09 19:41:26 +0100

Revert "De-mimicify Orc:$ shops."
This reverts commit ab2ad4d442a7ff675788df525e6d7d1ef004e72c.

After some discussion on ##crawl-dev, there seemed to be agreement that while
mimics exist, there's no reason to exclude them from places like this as they
can generate in other branch ends just fine, and the whole point of such mimics
is to have a chance of replacing what would otherwise be real loot.

--------------------------------------------------------------------------------
2e4215e45f | Neil Moore | 2013-06-09 14:37:07 -0400

Normalise whitespace in the level-making docs.

--------------------------------------------------------------------------------
dc05d189bd | Neil Moore | 2013-06-09 14:32:50 -0400

Fix an inaccuracy in the level-making docs.
Randarts have been allowed in monspecs since 0.11-a0-270-g333634f.

--------------------------------------------------------------------------------
c8f0c2e522 | Adam Borowski | 2013-06-09 13:37:07 +0200

No non-useless darkgrey books, please.

--------------------------------------------------------------------------------
e1d37febe5 | Adam Borowski | 2013-06-09 12:48:20 +0200

Use the shortest match in get_monster_by_name().
Its old rules were: take the first prefix match, if there's none, last
substring match.  This only worked sometimes because base monsters tend
to be listed first.

--------------------------------------------------------------------------------
bc69ec7aa1 | Adam Borowski | 2013-06-09 12:48:20 +0200

Reverse the argument of get_monster_by_name().
The default, substring match, was totally unintuitive and broken.

Only one place is actually changed, something about shapeshifters.

--------------------------------------------------------------------------------
d78cc4cf08 | Adam Borowski | 2013-06-09 12:48:11 +0200

Brace fixes.

--------------------------------------------------------------------------------
e2a19beff7 | Adam Borowski | 2013-06-09 12:48:11 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
d5c295db6f | lain | 2013-06-08 22:50:00 -0700

remove the player damage-sharing from the spectral weapon

--------------------------------------------------------------------------------
72d7647d73 | Pekka Lampila | 2013-06-09 08:34:43 +0300

Change MP minibar colour for local tiles too

--------------------------------------------------------------------------------
edae9ecf94 | Steve Melenchuk | 2013-06-08 20:17:21 -0600

Force exact matching for unique name in Lua you.uniques (#7179).
If a unique name is the same as a branch name or abbreviation, the
underlying code apparently interprets the branch name first; this
has obviously never been a problem before now, but was causing
Pan-the-unique to appear in duplicate for a forest end vault.

--------------------------------------------------------------------------------
d95c1a3bda | Pekka Lampila | 2013-06-09 05:09:25 +0300

Handle manual URL hash changes better in WebTiles
Main bug fixed: Changing #watch-foo to #watch-bar causing messages to be
received from both games.

--------------------------------------------------------------------------------
597cd4046c | Neil Moore | 2013-06-08 21:27:26 -0400

Fix various anachronisms in the develop/levels docs (HangedMan)

--------------------------------------------------------------------------------
b10c9eaf85 | Pekka Lampila | 2013-06-09 04:12:48 +0300

Add autologin WebTiles server option for testing
Used from config.py with: autologin = (username, password)

--------------------------------------------------------------------------------
f394be7379 | Brendan Hickey | 2013-06-08 17:46:08 -0700

Don't give Gargoyles abilities

--------------------------------------------------------------------------------
360406dcc9 | Neil Moore | 2013-06-08 20:43:27 -0400

Prevent a potential unavoidable D:1 death (N78291)

--------------------------------------------------------------------------------
e285ced0a6 | Pekka Lampila | 2013-06-09 03:26:19 +0300

Allow Vps to butcher with confirm_butcher=never

--------------------------------------------------------------------------------
99e3c61d19 | Pekka Lampila | 2013-06-09 03:26:19 +0300

Remove some leftover debug code

--------------------------------------------------------------------------------
3e22dd2d1c | Adam Borowski | 2013-06-09 02:25:40 +0200

Abyss bot: disable hunger and malmutate by default.
There's nothing interesting that bad mutations bring to the testing, and
there's Xom already.

--------------------------------------------------------------------------------
a7eca73ce7 | Pekka Lampila | 2013-06-09 03:08:19 +0300

Remove the read option from manual descriptions
And also from local tiles version tool-tip.

--------------------------------------------------------------------------------
d2f2019c2c | Pekka Lampila | 2013-06-09 03:00:13 +0300

Fix WebTiles server with config.dgl_mode = False

--------------------------------------------------------------------------------
bb5fd5d4fc | Brendan Hickey | 2013-06-08 16:48:22 -0700

Stop checking in crappy code.

--------------------------------------------------------------------------------
fbfeb44eb3 | Neil Moore | 2013-06-08 19:45:05 -0400

Initiation rituals for Medar.
Welcome to the devteam!

--------------------------------------------------------------------------------
889bfff565 | Brendan Hickey | 2013-06-08 16:42:39 -0700

Revert "Give gargyoles claws for real."
This reverts commit 00ac9bc19cb9dab331e902372e0f9798505d0d7b.

What the good Lord giveth, he taketh away.

--------------------------------------------------------------------------------
2d3c772b48 | Brendan Hickey | 2013-06-08 16:41:04 -0700

Gargoyle Intrinsic Updates
Remove Self-petrification.
Give Gargoyles trample resistance.

--------------------------------------------------------------------------------
52e5607a7e | DracoOmega | 2013-06-08 19:36:12 -0230

Make Forest monster zombies less common in Crypt (and possibly elsewhere)
For branches without their own zombifiable monsters, zombie base types
are selected randomly from all other branches at the same absdepth. Since
the Forest monster list used very high weights compared to those in other
branches, they tended to dominate this list. This commit uniformly cuts all
Forest weights by 4 (which should have no effect inside Forest itself, but
make their zombies less disproportionately common)

--------------------------------------------------------------------------------
f4111834c1 | DracoOmega | 2013-06-08 19:36:10 -0230

Make sealed doors unaffected by digging or disintegration
By Vaults depth, the majority of characters will have ready access to
one of these effects, and they effectively neuter the door seal ability,
since removing the door by this method takes no more time than opening it
would have. And it is reasonable to posit that magical reinforcement
strong enough to prevent the door from being opened could also shield it
against other destructive effects.

LRD and shatter will still destroy them just fine, though.

--------------------------------------------------------------------------------
b1a28ee3a3 | DracoOmega | 2013-06-08 19:36:09 -0230

Actually remove sealed doors blown up by LRD or shatter
Since the new temporary terrain change framework, nuking a transformed
wall automatically reverts to its previous feature, but in this case
we don't actually want that behavior (a shattered sealed door turning
into a normal door). Now effects that nuke sealed doors should properly
revert them to floor.

--------------------------------------------------------------------------------
2f2418467a | DracoOmega | 2013-06-08 19:36:08 -0230

Only flash the view for monster Cause Fear if it actually fears something
Constant flashing tends to be a little obnoxious, and it's probably better to
have such an obvious visual effect indicate 'something relevant happened'
rather than 'someone tried to do something relevant, but nothing actually
happened at all'

--------------------------------------------------------------------------------
d3d5488391 | DracoOmega | 2013-06-08 19:36:06 -0230

Increase flay's safety threshold, adjust duration behavior
Flayed ghost's flay effect can no longer reduce a player's hp quite
so low on its own, and the manner in which it decays when out of sight
of the ghost has been adjusted. Rather than each application of flay
stacking duration (up to 15 turns), each now effectively resets the
duration (to between 6 and 12 turns, or the current duration if it
is greater). Additionally, if the duration is low, it will passively
rise while in sight of a ghost.

The net result of this is twofold:
1) the effect will drop off less quickly for the initial application,
   but more quickly for heavily stacked applications, compared to
   previously
2) removing the ghost from LoS for consecutive turns will be more
   effective at removing flay damage, but having it step repeatedly
   in and out of LoS (or pillar-dancing it) will be less effective

--------------------------------------------------------------------------------
fad3999296 | DracoOmega | 2013-06-08 19:36:04 -0230

Ancient champion spellset tweaks
Remove haste from the ancient champion with haunt; even without, it
is possibly the scariest of the four. I replaced it with animate dead,
which is basically SPELL_MELEE in its own domain, for the most part,
though a slight tip of the hat to old skeletal warriors.

Also replace throw frost in another spell set with stone arrow.

--------------------------------------------------------------------------------
435ec24cec | DracoOmega | 2013-06-08 19:36:03 -0230

Heal flayed damage immediately when a flayed ghost is pacified

--------------------------------------------------------------------------------
00ac9bc19c | Brendan Hickey | 2013-06-08 14:47:24 -0700

Give gargyoles claws for real.

--------------------------------------------------------------------------------
63a226396f | Neil Moore | 2013-06-08 17:41:40 -0400

Fix msys (and probably other) compilation.

--------------------------------------------------------------------------------
af0d4cb1ec | Florian Diebold | 2013-06-08 22:58:35 +0200

Tweak Webtiles minibar colours (#7177), and make the minibar scale.

--------------------------------------------------------------------------------
1978db2d87 | Neil Moore | 2013-06-08 16:39:49 -0400

Don't make sole branch exits into mimics.
_place_feature_mimics tries to avoid this with:
  if (feat == dest_stairs_type)
but _fixup_branch_stairs happens after that point.

There is probably a better way to do this.

--------------------------------------------------------------------------------
220761524c | elliptic | 2013-06-08 16:37:21 -0400

Remove xom_gifts_altar.
This vault not only regularly confuses players who don't know that the items
are inaccessible mimics, it also places junk in ctrl-F for the rest of the
game.

--------------------------------------------------------------------------------
29faabff39 | Adam Borowski | 2013-06-08 20:39:37 +0200

Manual manual updates through the wiki.

--------------------------------------------------------------------------------
62186526d6 | Adam Borowski | 2013-06-08 20:32:42 +0200

Brace fixes.

--------------------------------------------------------------------------------
ae1dc47dc5 | Adam Borowski | 2013-06-08 20:29:11 +0200

ASSERT_RANGEs other than >= <.
Committing separately as I'm not sure whether checking, for example,
ASSERT_RANGE(level, 1, 28) is that nice.  Perhaps 27 + 1 could be better?
Perhaps some other syntax?

--------------------------------------------------------------------------------
258af752a1 | Adam Borowski | 2013-06-08 20:22:21 +0200

Turn pairs of assertions with x > min, x <= max into ASSERT_RANGE.
The perl regexp to do so is:
s&ASSERT\(([^\n]+) >= ([^\n]+)\);\s*ASSERT\(\1 < ([^\n]+)\);&ASSERT_RANGE($1, 
$2, $3);&sg;

--------------------------------------------------------------------------------
a2c649a264 | Adam Borowski | 2013-06-08 20:15:23 +0200

Fix a bad use of wchar_t.
On Windows it's only 16 bit wide, and we pass an int there.  The ABI will
actually cope with it (other than the obvious limit of U+FFFF), but that's
pointless as ability hotkeys can be only ASCII letters anyway.

--------------------------------------------------------------------------------
c7153b6b29 | Adam Borowski | 2013-06-08 20:15:23 +0200

ASSERT_RANGE(value, min, max)

--------------------------------------------------------------------------------
446efd8c5b | Adam Borowski | 2013-06-08 20:15:23 +0200

Don't use "" where a null works better.

--------------------------------------------------------------------------------
99810c380d | Steve Melenchuk | 2013-06-07 21:38:09 -0600

Change up Forest monster weights and bands.
Plain spriggan and tengu bands are axed; bands supporting professional
tengu are smaller; fauns are less common; spriggan professionals are
more common (and appear more often together); bands

--------------------------------------------------------------------------------
7e8de56c05 | Steve Melenchuk | 2013-06-07 21:36:01 -0600

Have M_STABBERs not disengage from melee on their own.
That is, once they close for the kill, they don't break off and revert
to ranged attacks until they're no longer in melee range, usually on
account of the player disengaging them.

This should make spriggan assassins and enchanters more tolerable.

--------------------------------------------------------------------------------
e035c6c612 | Steve Melenchuk | 2013-06-07 21:34:00 -0600

Strip M_MAINTAIN_RANGE from dryads.
They're too aggravating to fight presently; the flag dates from before
they gained the ability to walk through trees.

The walk-through-solid-terrain inherently gives them a bit of an
instinct to stay in trees, but they're not nigh impossible to fight in
open terrain now.

--------------------------------------------------------------------------------
d11b0b8fb5 | Steve Melenchuk | 2013-06-07 20:22:36 -0600

Update a vault with the forest drake rework.
Somehow this was missed on the first pass.

--------------------------------------------------------------------------------
2a29097887 | Steve Melenchuk | 2013-06-07 19:42:47 -0600

Use FLOOR_GRASS by default in Forest.
It's nowhere near as eye-burning as FLOOR_WOODGROUND, and should hold
the fort until we get better tiles.

--------------------------------------------------------------------------------
d04d0403fe | Neil Moore | 2013-06-07 21:13:50 -0400

Formatting fixes.

--------------------------------------------------------------------------------
b9be0537a5 | Brendan Hickey | 2013-06-07 18:10:00 -0700

More abyss error checking

--------------------------------------------------------------------------------
03b82808c2 | Steve Melenchuk | 2013-06-07 18:57:56 -0600

Rework forest drakes into wind drakes.
A monster whose only significant ability is to push you (and clouds and
such) away from it just isn't very interesting; ideally it has an attack
that synergises with that attack. Since the breath attack is a blast of
wind, why not give it another wind-related attack that works best at a
distance, such as Airstrike?

The spell set has two instances each of Airstrike and SPELL_MELEE, the
latter being mainly to dilute the chance of Airstrike (having something
"smiting" you too frequently just isn't very fair).

I've also tinkered with the resistances, attacks, and HP a little bit to
make things a little more coherent.

In one last change, Summon Drakes now also summons wind drakes. Beware!

--------------------------------------------------------------------------------
d1d529d1a0 | Brendan Hickey | 2013-06-07 17:56:58 -0700

Error check ProceduralSample features.

--------------------------------------------------------------------------------
0f4cf58055 | Raphael Langella | 2013-06-07 22:27:14 +0200

Set restricted skills to disabled by default with potion/card of experience.

--------------------------------------------------------------------------------
ad03a0fae5 | Steve Melenchuk | 2013-06-07 09:29:01 -0600

Give more intelligent Forest denizens native-to-branch status.
The main impact of this seems to be that those that place in the entry
vaults are more likely to patrol the entrance, though these monsters
will also now have better trap detection and slightly better pathfinding
in Forest as a result of this.

--------------------------------------------------------------------------------
2dff0df7ff | Steve Melenchuk | 2013-06-07 09:17:11 -0600

Make mimic: and no_mimic meaningful for shop specs.
This gets ab2ad4d4 working properly.

--------------------------------------------------------------------------------
d88578db80 | Neil Moore | 2013-06-07 03:38:25 -0400

Shut up a stupid warning (#7040)
Declare the (uncalled) compile check function to avoid a
-Wmissing-declarations error.  We can't just make it static or we'd get
a different warning about its being unused.

--------------------------------------------------------------------------------
11bc701740 | Neil Moore | 2013-06-07 02:49:11 -0400

Don't leak unided rC in draconian A screen (#7173)

--------------------------------------------------------------------------------
5bd0de3dea | Ed Gonzalez | 2013-06-07 02:44:31 -0400

Fixed Djinni level up notes to report EP instead of HP and MP

--------------------------------------------------------------------------------
f35a63b0d4 | Pekka Lampila | 2013-06-07 01:59:51 -0400

Improve handling of menu titles in WebTiles

--------------------------------------------------------------------------------
0edb3d0cfc | Pekka Lampila | 2013-06-06 23:21:43 -0400

Avoid failed book acq w/ Trog and magic skills
Don't try to give spellbooks for Trog worshippers in acquirement. This
avoids acquirement failing if you are worshipping Trog, but have some
magic skills. Also weights non-magic manuals more.

--------------------------------------------------------------------------------
98ecd97410 | Steve Melenchuk | 2013-06-06 21:12:37 -0600

Shapes for the forest monsters.
Not setting these was causing amusing tiles visual glitches.

--------------------------------------------------------------------------------
674cb7f75e | Steve Melenchuk | 2013-06-06 20:06:37 -0600

Report kaux for semiverbose draining/burning deaths.
This should get the bots to display the death message properly.

--------------------------------------------------------------------------------
2153db9e3d | Adam Borowski | 2013-06-07 03:44:47 +0200

No randomly coloured darkgrey items.

--------------------------------------------------------------------------------
e23eb9629f | Adam Borowski | 2013-06-07 03:44:00 +0200

Repaint the box of beasts blue.
Probably a bad colour, feel to adjust it.  I don't know what colour
bikesheds are in fashion these days.

--------------------------------------------------------------------------------
48b0c405df | Pekka Lampila | 2013-06-06 21:09:11 -0400

Allow potions/cards of exp train restricted skills

--------------------------------------------------------------------------------
0f56f73730 | Neil Moore | 2013-06-06 21:09:11 -0400

Don't crash on startup.
We can't redraw the screen before the level is loaded.

--------------------------------------------------------------------------------
e03bc23d4e | Steve Melenchuk | 2013-06-06 18:52:34 -0600

Don't let Lava Orcs incinerate ZotDef (#7150).
This is exceedingly kludgy, but it works.

--------------------------------------------------------------------------------
ab2ad4d442 | Steve Melenchuk | 2013-06-06 18:43:40 -0600

De-mimicify Orc:$ shops.
Orc:$ is relatively unique in that the expected loot is entirely shops
(there are some Vaults:$ quadrants that are shop-centric, but there's a
lot of loot elsewhere on that level). Randomly removing 25% of the loot
mainly seems to aggravate players with no strong reason to do so.

--------------------------------------------------------------------------------
51795e44d9 | DracoOmega | 2013-06-06 22:01:15 -0230

Make the plague shambler death cloud message be warning colored

--------------------------------------------------------------------------------
e4a341d560 | Steve Melenchuk | 2013-06-06 18:24:19 -0600

Drain "drained of all life by an it" of all its.
Kind of a dubious approach, but it's the easiest approach that comes to
mind.

--------------------------------------------------------------------------------
4b12b84e8e | Neil Moore | 2013-06-06 20:11:39 -0400

Don't crash on auxless damage while spirit shielded (#7170)

--------------------------------------------------------------------------------
b3ed1aa93a | Neil Moore | 2013-06-06 19:59:14 -0400

Prevent breakage on the next major bump.

--------------------------------------------------------------------------------
8930f3c1b7 | Neil Moore | 2013-06-06 19:59:14 -0400

Fix a 32-bit compilation warning.
Not sure if we can use %zu on all platforms we support (it's Posix),
but if so that would be a much better way to do it.

--------------------------------------------------------------------------------
e0bb6f7075 | Pekka Lampila | 2013-06-06 19:33:32 -0400

Always study all manuals in the inventory
Multiple manuals for different skills can be used at once. If there are
multiple manuals for the same skill, the one with least charges is used
up first.

--------------------------------------------------------------------------------
d28d70e7ab | DracoOmega | 2013-06-06 19:45:08 -0230

Make non-mindless creatures turn hostile when damaged by ranged attacks
Previously animals were perfectly fine to shrug off ranged attacks by the
player without complaint (up to and including ice dragons ignoring being
repeatedly fireballed...). This is a little odd, and also allowed players
to tediously kill enslaved animals via ranged attacks (yet get
warned/prompted every single turn for this).

Now only true mindless things will be okay with this (such as zombies)
which I think is more intuitive and also good from a gameplay perspective
as you needn't worry about causing collateral damage with them, casting
inner flame on them to turn them into bombs, etc.

--------------------------------------------------------------------------------
57a9355b23 | DracoOmega | 2013-06-06 19:45:07 -0230

Thin Crypt monsters a little
Reduce overall number of monsters randomly generated slightly, make
jiangshi a little rarer and appear without a band more often.

--------------------------------------------------------------------------------
21467c0cc5 | DracoOmega | 2013-06-06 19:45:06 -0230

Greatly increase ambient noise in Crypt
Crypt had an extremely low level of ambient noise, effectively making
everything the player did super loud. Particularly with the new monster
set, this had the effect of often making the majority of the level swarm
the player whenever they got into a fight, not entirely unlike being
perpetually marked (except with worse pathfinding). In practice, this
mostly plays very poorly, frequently fighting a considerable portion of
a level at its stairs, then wandering through many now-empty chambers.
Hopefully this will improve things somewhat.

Whether ambient noise should remain a thing at all is a good question,
but I'm opting for something more subdued at first.

--------------------------------------------------------------------------------
00ff1d1df3 | DracoOmega | 2013-06-06 19:45:05 -0230

Make flay damage ignore guardian spirit
The flay effect ending was not properly restoring mp used to absorb
part of the damage, making flayed ghosts considerably more irritating
(and effective) against characters with guardian spirit than those
without. Since the damage itself is somewhat illusory, it makes sense
that it could ignore certain damage protections, and the way the gspirit
formula works, this won't actually leave the player more vulnerable to
further damage from other sources, either.

The way the check is done is a little messy, but it seemed worse to
add a new ktype for a source of damage that, by design, can literally
never kill anything.

--------------------------------------------------------------------------------
48f42c2f12 | Neil Moore | 2013-06-06 18:12:03 -0400

Avoid a constness warning.
For some nonsensical reason, tigetstr takes a char * instead of
a const char *.

--------------------------------------------------------------------------------
fbb8015d47 | Adam Borowski | 2013-06-07 00:08:20 +0200

Revert "Upgrade spiders and craps to reptiles."
Inconsistent inconsistency would be inconsistent.
Let's not confuse players.  This makes a whole branch unpacifiable,
but hey, the nerfhammer strikes for a reason.

This reverts commit 95a992c011ea45fb4dc179a51aeb469fa5e56278.

--------------------------------------------------------------------------------
b83cbb67c4 | Adam Borowski | 2013-06-07 00:06:12 +0200

Don't let Ely pacify insects.
They're too stupid to understand diplomacy.  Besides, they must die.
Even PETA folks don't say they should be protected.

--------------------------------------------------------------------------------
95a992c011 | Adam Borowski | 2013-06-07 00:04:31 +0200

Upgrade spiders and craps to reptiles.
They deserve nothing but a shoe, but are still a long way above those
flying vermin.

I dislike this inconsistency, but people don't want an entire branch
unpacifiable.  I think Ely can take the hit, though...

--------------------------------------------------------------------------------
c40485dcae | Adam Borowski | 2013-06-06 23:54:37 +0200

Upgrade wasps to insects.

--------------------------------------------------------------------------------
421489decb | Adam Borowski | 2013-06-06 23:49:41 +0200

Split I_INSECT and I_REPTILE.
The data has already been distinct, yet code-wise it was an alias;
initially introduced as a documentation issue: people thought dumb
reptiles are animals rather than insects (kind of understandable...).

--------------------------------------------------------------------------------
7134ea5dd9 | Adam Borowski | 2013-06-06 23:38:53 +0200

Don't let chaos weapons turn you into a tree if there's no one around.

--------------------------------------------------------------------------------
edba98300c | Adam Borowski | 2013-06-06 23:38:53 +0200

Deparenthesize return (simple_variable).

--------------------------------------------------------------------------------
a756ab3dad | Florian Diebold | 2013-06-06 23:00:30 +0200

Fix Webtiles view flash.

--------------------------------------------------------------------------------
ad1601e574 | Pete Hurst | 2013-06-06 11:29:06 +0100

Correct an inaccurate comment

--------------------------------------------------------------------------------
d67ac905b5 | Pete Hurst | 2013-06-06 11:29:05 +0100

Prevent all player species having water drowning resistance

--------------------------------------------------------------------------------
a2751220d9 | Steve Melenchuk | 2013-06-05 22:23:28 -0600

Adjust box_level_dp to try to be less broken.
Most significantly, the level doesn't require any off-level resources to
conquer now - the entire level is connected (with one exception noted
below) and the middle layer of the central box now has a door in place
of one of the panes of glass (currently a runed door to preserve the
separation between it and the rest of the level, though I'm skeptical
that it *needs* to stay that way).

I've moved the upper bound to D:21 to make sure Vaults doesn't try to
place somewhere on the level (imagine the entrance in the central rooms;
that would be terrible); for that matter, it might be worth using some
of the newer branch/portal detection functionality to make sure branch
entrances and guaranteed portals don't place in absurd places in this
and other encompass vaults, but that's for another day.

There are still problems with this level, such as the teletrap gauntlet
leading to the inner rooms (I'm placing a guaranteed amulet of stasis in
the loot to ensure a player can get through it consistently; this isn't
any worse than, say, a guaranteed potion of experience in a certain
other encompass vault); hopefully my poking this will motivate someone
with a better eye for design and/or motivation for fixing up old vaults
will take a look at this.

--------------------------------------------------------------------------------
f96da2a853 | Neil Moore | 2013-06-05 14:50:55 -0400

Improve -edit-save help.
Clarify the meaning of "get" and "put" (the descriptions and in
particular the prepositions sounded backwards from what the subcommands
actually do).

Also make it fit in 80 columns, and give the help even for
"crawl -edit-save" with no name/savefile parameter.

--------------------------------------------------------------------------------
7c36b1c3b1 | Ed Gonzalez | 2013-06-05 15:52:54 -0230

Don't crash when firing lamp of fire near the map boundary.
Applying random jitter to the path would occasionally produce points
outside the map bounds.  The random movements are now clamped to prevent
this from happening.

--------------------------------------------------------------------------------
47a6cdf9bf | Chris Campbell | 2013-06-05 19:09:54 +0100

Fix power 1 warp card being unaffected by -cTele

--------------------------------------------------------------------------------
37b3cbbf3e | Chris Campbell | 2013-06-05 19:09:53 +0100

Don't give Ash piety for picking up runes
It doesn't make a huge amount of difference either way since the amount
of piety was low, but it did create a weird edge case where picking up
a rune would be a bad idea (if you were planning on converting to Ash
later).

--------------------------------------------------------------------------------
93fb1abb9f | Steve Melenchuk | 2013-06-05 10:23:12 -0600

Touch last commit so |amethyst and LexAckson stop complaining.

--------------------------------------------------------------------------------
c20311161d | Steve Melenchuk | 2013-06-05 09:59:53 -0600

Better behaviour if _fixup_branch_stairs() sees multiple branch exits.
Instead of failing an assert, it picks a candidate stair at random
(preferring vault stairs) to turn into the branch exit.

--------------------------------------------------------------------------------
f1ae18b5e2 | Neil Moore | 2013-06-05 09:02:31 -0400

Distinguish randarts more carefully (#7160)
Now items_similar looks at their artifactness and names, rather than
(for armour) just the base and sub-types and inscriptions.

--------------------------------------------------------------------------------
a65736ef13 | DracoOmega | 2013-06-05 04:53:23 -0230

Prevent primal wave from eating stairs (and remove superfluous arguments)
The epicenter of the primal wave splash wasn't properly checking for
feature types, meaning it would replace anything (including stairs)
with water. The stairs would be restored if the water timed out normally,
but if it was forcibly overwritten in some ways (such as by tides), it
could end up lost forever.

In general, tides should be refactored to respect terrain change markers,
but this commit will fix the immediate problem.

--------------------------------------------------------------------------------
b23d427c1d | DracoOmega | 2013-06-05 04:23:41 -0230

Fix Beogh worshippers being able to use injury mirror, while recalling
Ooops.

--------------------------------------------------------------------------------
ba60892b5a | DracoOmega | 2013-06-05 04:14:11 -0230

Don't hide Yred's injury mirror from the ability list while recalling
Which also meant you couldn't use it at all, of course.

--------------------------------------------------------------------------------
95d0da83f7 | Neil Moore | 2013-06-05 01:11:41 -0400

Fix Volcano announcement for Lava Orcs and Djinn.
Thanks to Zannic for pointing out the problem, and SamB for suggesting
"invigorating".  I went with "agreeable" for Djinn, since they don't get
bonuses from heat the way Lava Orcs do.

--------------------------------------------------------------------------------
d9dfbbceb7 | Neil Moore | 2013-06-04 23:57:44 -0400

Don't repeatedly replace ruined squares.

--------------------------------------------------------------------------------
4282c7cd2b | ontoclasm | 2013-06-04 22:35:13 -0500

Don't add rims to lorc tiles.

--------------------------------------------------------------------------------
de01e83751 | DracoOmega | 2013-06-05 00:57:48 -0230

Remove fungi and plants from random generation in Lair
While somewhat unlikely, these could spawn in positions otherwise
vetoed by the previous commit, and it isn't as though there's a
shortage of them already here.

--------------------------------------------------------------------------------
f5918dc5bf | DracoOmega | 2013-06-05 00:57:47 -0230

Restore plant generation in Lair
When placing plants as part of the level ruination algorithm, checks
are now made to try and prevent plants from being positioned in nooks
such that autoexplore will report partially unexplored levels (though
typically these nooks contained nothing else of interest and were often
hard to spot). The heuristic used for this is simple and vetos somewhat
overaggressively (ie: it forbids plants in several configurations that
are unproblematic in practice) but it's hard to actually notice their
absence here in a real game. Plant frequency has been increased somewhat
to compensate for a reduction in valid placements.

(Credit goes to |amethyst for the original plant veto algorithm)

--------------------------------------------------------------------------------
d1f02a81ad | Steve Melenchuk | 2013-06-04 20:17:50 -0600

Two additional Forest endings.
These feature the other two major power groups in Forest besides
spriggans - fauns/satyrs and tengu.

--------------------------------------------------------------------------------
0bee7d189e | Steve Melenchuk | 2013-06-04 20:15:23 -0600

Place the Enchantress on Forest:$ even if the ending doesn't.
This gives her a band comparable to what the two current endings place
in her immediate vicinity.

--------------------------------------------------------------------------------
47e01a38c8 | Steve Melenchuk | 2013-06-04 19:37:24 -0600

Don't clump plants (Lair, Forest) that are in vaults.
Vaults can handle their own plant clumping, thank you.

--------------------------------------------------------------------------------
7c371d4594 | Steve Melenchuk | 2013-06-04 18:42:44 -0600

Cosmetic tile adjustments to grunt_forest_end_chambers.
Mainly motivated by the row of |s having the wrong floor tile, but I
like the change to the wall tile (inspired by the other ending).

--------------------------------------------------------------------------------
48d5e480f4 | Steve Melenchuk | 2013-06-04 18:34:55 -0600

Init tile flavours for abyss vaults (#7148).

--------------------------------------------------------------------------------
0f566bbf2d | Adam Borowski | 2013-06-04 21:07:11 +0200

The djinn can't kneel.

--------------------------------------------------------------------------------
fb3cb40b86 | Adam Borowski | 2013-06-04 21:04:26 +0200

Unbreak compilation.

--------------------------------------------------------------------------------
a160c91e38 | Neil Moore | 2013-06-04 14:48:36 -0400

Allow djinn to burn spellbooks at their "feet" (#7154)
Also use the correct noun in the message for octopodes, nagas, etc.

--------------------------------------------------------------------------------
8b5eb89786 | Neil Moore | 2013-06-04 13:27:17 -0400

Lava orc stoneskin fixes (#7130)
Don't use a duration for it, since those time out, are dispellable, etc.
This change does allow casting Ozocubu's armour at low temperatures; I'm
not convinced it was intentionally prevented (it *is* intentionally
prevented at higher temperatures).

Furthermore, LO stoneskin now benefits only from XL, not from the higher
of XL and Earth magic as before.  This also applies to the statue form
bonus, which now uses XL rather than Earth (again, for LO only).
Arguably the statue form bonus should go away, since your stone skin is
part of what is transformed.

Finally, make the Helm card not grant additional stoneskin to LO:
currently there is no message, but that could be changed.

--------------------------------------------------------------------------------
f3abd0fc4e | Florian Diebold | 2013-06-04 18:46:03 +0200

Remove unnecessary semicolons (chris).

--------------------------------------------------------------------------------
3757484e72 | Adam Borowski | 2013-06-04 15:25:52 +0200

Fix monsters who are _not_ thoroughly unclean suffering full damage.

--------------------------------------------------------------------------------
411bc8487f | Adam Borowski | 2013-06-04 15:24:09 +0200

Give feedback for different cases of bolt of Zin vs monsters.
Same as for players.

--------------------------------------------------------------------------------
f7336510e5 | Adam Borowski | 2013-06-04 15:19:41 +0200

Fix a scale change I've forgotten.

--------------------------------------------------------------------------------
1ea4ae9e40 | Adam Borowski | 2013-06-04 14:39:13 +0200

Make monsters suffer if they get mutated then bolt-of-Zinned.
Not that this is any likely to happen, but at least is consistent
with players.

--------------------------------------------------------------------------------
46a8b51d92 | Adam Borowski | 2013-06-04 14:39:13 +0200

Avoid round-off errors on bolt of Zin.
Values of damage divisible by 3 turned out 1 less for unholies.

Using a scale of 100 serves no purpose, while 60 matches all divisors
here -- an in most cases, for that matter: 2*2*3*5 covers what a typical
human is likely to use.

--------------------------------------------------------------------------------
eac4af4867 | Adam Borowski | 2013-06-04 14:39:13 +0200

Make the djinni glyph 'R'.
The efreet are a race of djinn after all.

Also, in the default config, '&' stands for pandemonium lords, which feels
quite weird to most players.  I for one have pan lords on '☿' but my config
is definitely not the default and thus shouldn't affect it.

--------------------------------------------------------------------------------
94a9522cc8 | lain | 2013-06-04 03:52:34 -0700

make the spectral weapon share damage with the player, fix crash when casting 
spectral weapon with nothing wielded
spectral weapon might be powerful enough for this kind of nerf --- 1/2 of the
damage a spectral weapon takes is also inflicted onto the player (this includes
AOE damage like cerebov's firestorm). the intent of this change is to make it
less useful to hide behind a spectral weapon and also to make the spell not
something you want to have in every situation. currently implemented in a
simple way, likely it needs to be improved. if this proves to make the spell
useless it of course should be reverted.

this also fixes a crash that occurs when spectral weapon is cast empty-handed.

--------------------------------------------------------------------------------
06ee7f8bad | Pekka Lampila | 2013-06-04 02:24:23 -0400

Only send the game state to the joining spectator
Previously on WebTiles spectator join everyone would receive messages
for the current game state. Now these messages are only sent to the
joining spectator.

--------------------------------------------------------------------------------
1369a2a744 | Neil Moore | 2013-06-04 02:24:05 -0400

Avoid a few instances of Djinn "HP" (#7152)

--------------------------------------------------------------------------------
d65c9407a0 | Neil Moore | 2013-06-04 02:05:09 -0400

Don't steal while pacified (#7112).
Besides being out-of-flavour, there is no reliable way to get the item
back without angering Elyvilon, and the item could be lost forever when
the monster flees the level.

--------------------------------------------------------------------------------
48bc299f29 | Neil Moore | 2013-06-04 01:47:18 -0400

Avoid crashes on pacified monsters leaving the level.
handle_behaviour() might cause the monster to cease to exist, notably
by making a pacified monster leave the level.  If that happens, don't
try to do anything else with the monster.

A sample crash:
  http://dobrazupa.org/morgue/Ellick/crash-Ellick-20130604-052944.txt

--------------------------------------------------------------------------------
28137fc85a | Adam Borowski | 2013-06-04 06:54:07 +0200

Deparenthesize return (scalar).

--------------------------------------------------------------------------------
d8e8c7592b | Adam Borowski | 2013-06-04 06:43:00 +0200

Give djinn regular rC-.
The old formula was better tuned but it caused player confusion.

--------------------------------------------------------------------------------
7bb0c89ff4 | Adam Borowski | 2013-06-04 06:20:11 +0200

Fix a line missing from a vault.
The house looks strange without that wall.

--------------------------------------------------------------------------------
b5f757e834 | Adam Borowski | 2013-06-04 05:54:46 +0200

A desc for mask of the dragon.

--------------------------------------------------------------------------------
ccd2e42676 | Steve Melenchuk | 2013-06-03 20:46:37 -0600

Minor adjustments to a couple of forest monsters.
Dryads are now yellow, which should distinguish them from trees
everywhere except in some portal vaults which should never be placing
them anyway.

Fauns and satyrs now get a chance of regular bows in addition to
longbows.

--------------------------------------------------------------------------------
3d1b4bc2ae | Steve Melenchuk | 2013-06-03 20:35:42 -0600

Update Jory's description slightly.
His tower is no longer the Tower of Silence, after all.

--------------------------------------------------------------------------------
a9e5945c53 | Chris Campbell | 2013-06-04 02:51:29 +0100

Unsilence Jory's tower, other tweaks
Jory's threat comes mainly from his spells but his vault usually
silenced him. Removed the silent spectres, replacing with some of the
new undead. Also removed the alarm traps and internal runed doors
(and renamed the vault).

--------------------------------------------------------------------------------
b27a381b75 | Neil Moore | 2013-06-03 20:10:38 -0400

Reenable autopickup on shadowstab (#7144)
Shadowstab deleted ENCH_INVIS with quiet == true to avoid the message
(since it gives its own message).  However, that also prevented
autopickup from being reenabled; now reenable autopickup even when
quiet == false.

Debuff was the only other case where we could quietly delete
invisibility; remove the special-case code for autopickup now that it is
handled more generally.

--------------------------------------------------------------------------------
17b374907d | Chris Campbell | 2013-06-03 18:32:14 +0100

Add a canned message to a Zig prompt

--------------------------------------------------------------------------------
273864b21a | Chris Campbell | 2013-06-03 18:32:13 +0100

Don't offer to add portals to the shopping list in Pan
Zigs already didn't prompt about the shopping list when coming into
view, but they also shouldn't prompt when trying to enter with too
little gold, since the level can't be returned to.

--------------------------------------------------------------------------------
5dd9b21a2e | Steve Melenchuk | 2013-06-03 10:36:14 -0600

Some more primitive weapons for the faun/satyr arsenal.
They can get spears both as melee weapons and throwing weapons, and
javelins as their ranged weapon.

Fauns have a 1/3 chance each of a longbow or sling, and a 1/6 chance
each of throwing spears or javelins. Satyrs have a 2/3 chance of a
longbow, a 1/6 chance of a sling, and a 1/12 chance of each of the
throwing weapons. Pan always gets a longbow.

Each of the melee options (club, quarterstaff, spear) has a 1/3 chance
for all of the above.

This also fixes a couple of quirks that were preventing the above from
being able to use throwing weapons properly.

--------------------------------------------------------------------------------
4b2e8381b1 | Taylor Hedberg | 2013-06-03 16:30:56 +0100

Fix inverted acidic corrosion probability
The refactoring in f5d745b671aed2eb61b24e2eda74d089323679b0
inadvertently flipped the corrosion probability curve: items with an
enchantment of 0 were made far *more* resistant to corrosion than items
with an enchantment of ±4. This is the opposite of the formula used
prior to the refactoring and was probably not intended.

--------------------------------------------------------------------------------
797fcf4904 | Chris Campbell | 2013-06-03 16:30:55 +0100

Remove some vault recolouring
Green centaurs are inappropriate especially now that fauns and satyrs
exist and overlap with them.

--------------------------------------------------------------------------------
49e1dc1f3f | Brendan Hickey | 2013-06-03 07:57:19 -0700

Typo fix

--------------------------------------------------------------------------------
cde574b414 | Raphael Langella | 2013-06-03 16:40:01 +0200

Fix obsolete key removal when generating transifex source files.

--------------------------------------------------------------------------------
23033c8a9b | Raphael Langella | 2013-06-03 16:31:39 +0200

Double the effect of stats on melee.

--------------------------------------------------------------------------------
ee0cb4c960 | Translators | 2013-06-03 16:26:44 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
b8e4d046e2 | Raphael Langella | 2013-06-03 15:15:19 +0200

Save the "pace travel to slowest ally" status.

--------------------------------------------------------------------------------
0ad17fda8f | Adam Borowski | 2013-06-03 12:53:08 +0200

Fix totally conflated and wrong changelog entries for staves of energy and 
power.

--------------------------------------------------------------------------------
a3d36c2d1b | Adam Borowski | 2013-06-03 12:53:08 +0200

Use the version of 0.12 changelog that comes with the actual release.

--------------------------------------------------------------------------------
d963e024cd | lain | 2013-06-03 03:42:09 -0700

fix compilation error from using the wrong random function for infusion

--------------------------------------------------------------------------------
19e64b13ed | ontoclasm | 2013-06-03 01:00:42 -0500

Differentiate satyr tiles a bit.

--------------------------------------------------------------------------------
403622bc5e | Brendan Hickey | 2013-06-02 18:50:02 -0700

Decorative vault with randomly placed iron grate.

--------------------------------------------------------------------------------
ab229d3fa4 | Steve Melenchuk | 2013-06-02 17:05:16 -0600

A couple of tweaks to dryads and forest drakes (mainly the former).
Dryads now have HT_FOREST so they can move through trees, and have been
moved from the 'm' glyph to the '7' glyph (they are tree spirits, after
all); per the first change, forest drakes are now HT_LAND (and can no
longer move through trees).

There's a very slim possibility that the brown 7 could be confused for a
mangrove, but given that dryads don't appear in swamp, that seems like a
remote possibility.

--------------------------------------------------------------------------------
9c04ea8ce9 | Adam Borowski | 2013-06-03 00:25:58 +0200

Unshare the definitions of ex spriggan_forest vaults.
The only mostly common glyph is T.

--------------------------------------------------------------------------------
5340ac95b1 | Brendan Hickey | 2013-06-02 13:05:50 -0700

Beneficial Mutation messaging fixup.
Potion of beneficial mutation might fail due to a physiological mutation
conflict. Display an alternative message in this case.

--------------------------------------------------------------------------------
ba5d055621 | Adam Borowski | 2013-06-02 17:35:14 +0200

Fix staves of power not handling Dj power correctly.

--------------------------------------------------------------------------------
a975950c8e | Steve Melenchuk | 2013-06-02 08:58:48 -0600

Sometimes give fauns/satyrs slings, and always melee weapons.
Fauns get a 2/3 chance of a sling; satyrs 1/3. (Pan always gets a
longbow.)

Since they tend to run out of sling ammo quickly, they also have a
backup attack strategy, and have been set to only use their starting
equipment to avoid problems with tiles and shields.

This has been suggested a few times by people who thinks slings are
appropriate and foresty for fauns and satyrs to be using, and I'm
inclined to agree.

--------------------------------------------------------------------------------
0d6c8afeec | Ed Gonzalez | 2013-06-02 13:52:18 +0200

Fixed lava orcs blinking into deep water
Previously, random_near_space assumed that if lava was safe, then so was
deep water.  Now that we've broken that assumption, this introduces a
check for each feature in (DNGN_MINMOVE <= feat < DNGN_MINWALK).  At the
moment, this is just deep water and lava.

Each such feature is first checked if the player can permanently enter
it safely (as before), and then attempted targets are checked against
a flag for the appropriate feature, rather than the one assumed to be
more dangerous.

--------------------------------------------------------------------------------
5a848df107 | Ed Gonzalez | 2013-06-02 13:51:27 +0200

Allow lava orcs to auto-travel through lava.

--------------------------------------------------------------------------------
5f67e917e2 | Adam Borowski | 2013-06-02 13:51:10 +0200

Mark rings of fire resistance as useless for djinn.

--------------------------------------------------------------------------------
8f45906f1b | Adam Borowski | 2013-06-02 13:51:10 +0200

Mark scrolls of immolation as a yellow item for djinn.
They don't destroy scrolls or do any damage to the user, and the effect
on enemies is probably better than fear.

--------------------------------------------------------------------------------
dd997bce64 | Adam Borowski | 2013-06-02 12:00:14 +0200

A nasty hack to let Borg and Sublimation heal djinnis to full.
It would be much better to take the mana first in all cases, but with the
way aborting spells currently works, it would take some refactoring.

--------------------------------------------------------------------------------
87c1718d1f | lain | 2013-06-02 02:48:19 -0700

change the duration roll and cap for spirit shield

--------------------------------------------------------------------------------
ad821610bd | lain | 2013-06-02 02:33:55 -0700

adjust a message for sos ending when silenced, change spectral weapon duration, 
spellpower, and monster damage

--------------------------------------------------------------------------------
6fa51c3596 | lain | 2013-06-02 02:22:53 -0700

make infusion use div_round_rand to add bonus damage
this makes the infusion spell properly scale with spell power instead of only 
being stronger at pow = 25 and 50.

--------------------------------------------------------------------------------
86218744ed | Brendan Hickey | 2013-06-01 22:27:28 -0700

Fix the errors of 323b9f5af

--------------------------------------------------------------------------------
3a1cf92c13 | Brendan Hickey | 2013-06-01 22:20:02 -0700

Describe self-petrification

--------------------------------------------------------------------------------
323b9f5afd | Brendan Hickey | 2013-06-01 22:15:21 -0700

Tweak Self-Petrify
Decrease movement speed.
Give fast healing.

--------------------------------------------------------------------------------
845ddb738a | Brendan Hickey | 2013-06-01 22:13:41 -0700

Tweak Gargoyle Aptitudes

--------------------------------------------------------------------------------
a96087d5fc | Neil Moore | 2013-06-01 23:36:29 -0400

Don't recommend gargoyle necromancers (snow)

--------------------------------------------------------------------------------
c97f7dd3d1 | Ed Gonzalez | 2013-06-01 19:10:37 -0700

Added parentheses to gargoyle petrify-stat-loss.
Now their stat loss is based off of maximum damage reduced in a single
hit, instead of the unreduced size of the largest single hit.
There were missing parentheses resulting in no-op arithmetic.

--------------------------------------------------------------------------------
c2f70fdf66 | Steve Melenchuk | 2013-06-01 18:46:10 -0600

Some other important highlights for the changelog.

--------------------------------------------------------------------------------
625484f5bf | Steve Melenchuk | 2013-06-01 18:43:56 -0600

Update changelog through 0.13-a0-1380-g03ef21a.
Probably I've missed some significant things; if so, go add them in!

--------------------------------------------------------------------------------
03ef21aa5e | David Lawrence Ramsey | 2013-06-01 16:36:50 -0500

Fix wording.

--------------------------------------------------------------------------------
ff531dba79 | Neil Moore | 2013-06-01 17:32:13 -0400

Orc priest speech improvements.

--------------------------------------------------------------------------------
de585493ce | Pete Hurst | 2013-06-01 21:45:40 +0100

Massively reduce changes of artifact staff generation

--------------------------------------------------------------------------------
5b097a5a6c | Pete Hurst | 2013-06-01 21:45:40 +0100

Don't prevent hot Lava Orcs reading books

--------------------------------------------------------------------------------
ea3de2a767 | David Lawrence Ramsey | 2013-06-01 15:29:40 -0500

Fix check for orcs allowing conversion: everywhere else checks for genus, not 
species.

--------------------------------------------------------------------------------
951c55f223 | Adam Borowski | 2013-06-01 22:26:03 +0200

Only orcs can be Beogh's Witnesses.
I demand the xp for that ogre back!

--------------------------------------------------------------------------------
a5fa43bea4 | David Lawrence Ramsey | 2013-06-01 14:35:56 -0500

Constify.

--------------------------------------------------------------------------------
ddfc93575a | David Lawrence Ramsey | 2013-06-01 14:35:52 -0500

Add formatting fix.

--------------------------------------------------------------------------------
edd29ef9cd | David Lawrence Ramsey | 2013-06-01 14:35:03 -0500

Generalize the check for monsters allowing Beogh conversion.

--------------------------------------------------------------------------------
97daac410e | David Lawrence Ramsey | 2013-06-01 14:33:48 -0500

Fix punctuation.

--------------------------------------------------------------------------------
5a28fe43ac | David Lawrence Ramsey | 2013-06-01 14:33:23 -0500

Improve wording of the "Convert to Beogh" description.

--------------------------------------------------------------------------------
66e2358cbd | Adam Borowski | 2013-06-01 20:29:34 +0200

Let priests of Zin follow Beogh.
To the stalkerdom!

--------------------------------------------------------------------------------
b107280b67 | Adam Borowski | 2013-06-01 20:14:17 +0200

Kill HOPr^Beogh.

--------------------------------------------------------------------------------
e80f0b27fe | Adam Borowski | 2013-06-01 20:12:27 +0200

Let orc priests get preachy when they see you.

--------------------------------------------------------------------------------
ac7150a2af | Adam Borowski | 2013-06-01 20:10:07 +0200

Give every orc priest a portable altar.
You also get to pacify one orc band per game: the band you surrender to will
let you live.  Obviously, abandoning and reconversion doesn't work (even if
you're still allowed to repent).

Unlike HOPr only, this allow to play more interesting combos with Beogh.
Converting when you (maybe!) get that Orc:4 altar is way too late to get
much use of Beogh.

--------------------------------------------------------------------------------
94a29e6b8d | Adam Borowski | 2013-06-01 16:40:55 +0200

Don't crash on 0-hd shapeshifter simulacra.

--------------------------------------------------------------------------------
85982e39c3 | Adam Borowski | 2013-06-01 14:48:09 +0200

s/ZAP_HEAL_WOUNDS/ZAP_MAJOR_HEALING/
A step towards getting rid of zaps.

--------------------------------------------------------------------------------
4786dc52d3 | Adam Borowski | 2013-06-01 09:11:39 +0200

Tentatively halve Dj^Ely self-healing.
I was concerned about hp heals via channeling, yet it's mp healing via Ely
what proved the most unbalanced (although at least two winners had Wucad Mu).
Let's wait how Makhleb, Vehumet and Sif fare, we can then think whether a
different fix would be better.

--------------------------------------------------------------------------------
8a5cac0290 | Adam Borowski | 2013-06-01 09:00:26 +0200

Scale early Dj regen.
Early DjCj were even weaker on D:1 than late ones are strong, thanks to
mana regen formulas: an ordinary race gets 4 hp regen and 17 mp regen
(hp overtakes mp pretty soon).  So let's give them 18 total.  This makes
Cj regen a bit weaker and Fi quite a bit stronger than other races, but
is nowhere close to starting troll hp regen of 48.

Unlike any other regen bonus in the game, this one diminishes with maxhp and
disappears entirely when maxhp reaches 100.

--------------------------------------------------------------------------------
dfef345e98 | Adam Borowski | 2013-06-01 08:17:41 +0200

Remove the line for sludge Elves from the aptitudes table.

--------------------------------------------------------------------------------
7292793f77 | David Lawrence Ramsey | 2013-06-01 00:49:39 -0500

Fix spacing.

--------------------------------------------------------------------------------
cc45691717 | Adam Borowski | 2013-06-01 07:47:41 +0200

Changelogs for 0.11.3, 0.12.1 and 0.12.2.

--------------------------------------------------------------------------------
20c23f8545 | Adam Borowski | 2013-06-01 05:56:53 +0200

Fix a crash when a friendly monster ponders casting Blink Other.

--------------------------------------------------------------------------------
ce0c922711 | Adam Borowski | 2013-06-01 05:56:53 +0200

Make invis berserking/insane monsters lose their stealth (Reaver)

--------------------------------------------------------------------------------
0c1ef45d92 | ontoclasm | 2013-05-31 22:20:30 -0500

Tiles for fauns, satyrs, and Pan

--------------------------------------------------------------------------------
53148a0a74 | Adam Borowski | 2013-06-01 03:43:38 +0200

"&G mobile" to leave those oklobs and statues intact.

--------------------------------------------------------------------------------
cde634629c | David Lawrence Ramsey | 2013-05-31 20:34:34 -0500

Remove zombie name handling for the Serpent of Hell; it can't be zombified.
It's no longer of the dragon species, either, so the handling wouldn't
have gien the right name anyway.

--------------------------------------------------------------------------------
8c006ae451 | Adam Borowski | 2013-06-01 03:22:37 +0200

Disable placing of (most) plants in the Lair.
If the "I'm happy to leave levels half-explored" crowd removes reminders
without fixing the bug in question, I'll disable the buggy feature.  The
bug seems to be there for several releases, with no one having good ideas
how to fix it.

Somehow, _add_plant_clumps() seems to not cause problems, but this may
be because it hardly does anything.

On the other hand, a bunch of vault, usually Lair endings, suffers from
problematic plant placement.

--------------------------------------------------------------------------------
a22731368d | Adam Borowski | 2013-06-01 03:22:37 +0200

"&G harmful" to get rid of non-decorative monsters.

--------------------------------------------------------------------------------
587b4aa220 | David Lawrence Ramsey | 2013-05-31 19:51:40 -0500

Properly set Z_NOZOMBIE for more new career-type monsters, as well as the Pan 
unique.

--------------------------------------------------------------------------------
e054757f1e | David Lawrence Ramsey | 2013-05-31 19:35:27 -0500

Comment fix.

--------------------------------------------------------------------------------
8a7b8bc8d3 | David Lawrence Ramsey | 2013-05-31 19:26:28 -0500

Properly set Z_NOZOMBIE for tengu conjurers.

--------------------------------------------------------------------------------
d368545d81 | Neil Moore | 2013-05-31 19:28:04 -0400

Don't mark immolation as dangerous for djinn (#7125).

--------------------------------------------------------------------------------
31dfe44d61 | Steve Melenchuk | 2013-05-31 15:49:56 -0600

Add some recently monster-castable spells to the ghost/panlord list.

--------------------------------------------------------------------------------
15881c4c15 | lain | 2013-05-31 14:12:26 -0700

Merge branch 'master' into newskalds

--------------------------------------------------------------------------------
a74d90903a | lain | 2013-05-31 14:11:36 -0700

Merge branch 'master' of git://gitorious.org/crawl/crawl

--------------------------------------------------------------------------------
c0f795621b | Steve Melenchuk | 2013-05-31 14:25:35 -0600

Adjust enemy tengu HP.
They had the same HP per HD as nagas and minotaurs (for the lower tier
tengu); this didn't make very much sense with tengu's purported
fragility.

Tengu, tengu conjurers, and tengu warriors are adjusted downwards; tengu
reavers have their spread narrowed and nudged up slightly to properly
reflect their hybrid status (and so that they're clearly tougher than
warriors).

--------------------------------------------------------------------------------
80123603af | Neil Moore | 2013-05-31 16:01:29 -0400

Indentation fix.

--------------------------------------------------------------------------------
7c22cc395b | Chris Campbell | 2013-05-31 20:40:03 +0100

Fix some hidden item vaults
Remove one, unhide the items in another.

--------------------------------------------------------------------------------
ad4e203050 | Chris Campbell | 2013-05-31 20:22:31 +0100

Don't allow picking a draconian colour in init.txt

--------------------------------------------------------------------------------
03f18cc060 | David Lawrence Ramsey | 2013-05-31 13:38:28 -0500

Properly set the gargoyle species' holiness to nonliving.

--------------------------------------------------------------------------------
a2639aca4c | David Lawrence Ramsey | 2013-05-31 13:30:53 -0500

Fix monster shape detection for new tengu, and simplify for turtles.

--------------------------------------------------------------------------------
391323e85f | David Lawrence Ramsey | 2013-05-31 13:25:51 -0500

Resync manual from the wiki to fix a doubled word.

--------------------------------------------------------------------------------
43c9961b08 | David Lawrence Ramsey | 2013-05-31 13:16:58 -0500

Properly give forest drakes the drake genus.

--------------------------------------------------------------------------------
6fe9f070f5 | Chris Campbell | 2013-05-31 18:10:22 +0100

Fix an info leak with amulet of rCorr

--------------------------------------------------------------------------------
d82a837c79 | Chris Campbell | 2013-05-31 17:53:10 +0100

Don't allow selecting Jesters via initfile
All species are banned for them anyway.

--------------------------------------------------------------------------------
6d74fee408 | Chris Campbell | 2013-05-31 17:49:35 +0100

Don't allow selecting invalid species via initfile

--------------------------------------------------------------------------------
4695df107a | Chris Campbell | 2013-05-31 17:37:53 +0100

Mark amulet of guardian spirit as useless with guardian spirit mut (#7118)

--------------------------------------------------------------------------------
1d0f5e911e | Steve Melenchuk | 2013-05-31 10:20:56 -0600

_fixup_stone_stairs guarantees _STONE_STAIRS_UP_I for one-upstair levels.
The lack of a guarantee here was causing levels only intended to place
one stair (roderic_octagonal_lattice_temple) to crash.

--------------------------------------------------------------------------------
1d24ae5c9f | Steve Melenchuk | 2013-05-31 10:04:36 -0600

A couple of adjustments to high level tengu.
Primarily, this increases the (melee/ranged) damage output of tengu
reavers and Sojobo, who essentially tickled compared to other monsters
intended to be of similar difficulty.

Sojobo gets a slightly increased exp modifier to bring his exp value in
line with other vaguely similar uniques, and has 150 HP instead of 200
(he's a tengu; he's supposed to be squishy!).

(Related: Pan's xp mod has been bumped up slightly as well for similar
reasons.)

--------------------------------------------------------------------------------
63f452a94d | lain | 2013-05-31 08:47:32 -0700

make spirit shield unavailable to djinni

--------------------------------------------------------------------------------
0513f76afe | lain | 2013-05-31 08:40:31 -0700

make infusion work for djinni

--------------------------------------------------------------------------------
40ff00a475 | Steve Melenchuk | 2013-05-31 09:30:51 -0600

Bump Lamia's exp modifier.
She was giving abnormally low XP compared to other uniques encountered
at her general depth range, especially bad considering her general
lethality.

--------------------------------------------------------------------------------
3ecba5a86f | Pete Hurst | 2013-05-31 16:03:05 +0100

Add missing stairs to roderic_octagonal_lattice_temple to hotfix a temple crash
The implementation needs fixing so this crash won't happen but this
should repair existing saves experiencing the issue.

--------------------------------------------------------------------------------
4c8576a21c | lain | 2013-05-31 05:04:55 -0700

Merge branch 'master' of git://gitorious.org/crawl/crawl

--------------------------------------------------------------------------------
ee200256b8 | lain | 2013-05-31 05:03:36 -0700

Merge branch 'master' of git://gitorious.org/crawl/crawl into newskalds

--------------------------------------------------------------------------------
43db1b336e | Adam Borowski | 2013-05-31 10:15:03 +0200

Remove superfluous entrances from all of entry/large.des

--------------------------------------------------------------------------------
3b102e7424 | Adam Borowski | 2013-05-31 09:58:52 +0200

Reduce many D entry vaults to a single entrance.

--------------------------------------------------------------------------------
82e39e6427 | Adam Borowski | 2013-05-31 09:23:11 +0200

Sync dolorous' (and one neil's) updates to the manual.

--------------------------------------------------------------------------------
136a26692b | Ed Gonzalez | 2013-05-31 09:14:53 +0200

Make Djinn actually immune to mortal fire
However, this doesn't affect scroll destruction.

--------------------------------------------------------------------------------
7b5b3f3dd1 | Adam Borowski | 2013-05-31 09:07:14 +0200

Remove toadstools from an entry vault.
Even though they are trivial to get through, it's still an annoying thing.

--------------------------------------------------------------------------------
c4d7560f62 | Adam Borowski | 2013-05-31 09:07:14 +0200

Desc for Tomb->Forest stairs.

--------------------------------------------------------------------------------
91b4c7be31 | Adam Borowski | 2013-05-31 09:07:14 +0200

Unrestrict DjHu.
Quite good with a crossbow.

--------------------------------------------------------------------------------
fddfa6ab2c | Steve Melenchuk | 2013-05-30 22:34:34 -0600

Don't have dryads masquerade as merfolk aquamancers.

--------------------------------------------------------------------------------
d65eeb8e69 | Steve Melenchuk | 2013-05-30 21:33:08 -0600

Forest zig levels.
Can't really add in a new branch without having it represented there,
after all.

--------------------------------------------------------------------------------
d50423f951 | Steve Melenchuk | 2013-05-30 20:52:53 -0600

Don't nuke extra branch exits twice (#7113).
Apparently this chunk of code is being called *after* the other chunk of
code that cdb489c touched, and that doesn't always ensure the remaining
stair is a DNGN_STONE_STAIRS_UP_I, so there was a two in three chance
that a branch would not have an exit.

--------------------------------------------------------------------------------
831119913d | Neil Moore | 2013-05-30 22:39:12 -0400

Don't wind blast things on the agent's square.
That would have been treated as aimed_at_feet, which makes the beam
auto-hit and has other effects.  More importantly, it was causing a
crash when the same beam was reused on a different monster, as
aimed_at_feet wasn't reset.

Presumably this was happening because of submerged creatures, perhaps
even air elementals themselves.  I was only able to reliably reproduce
the crash by using wizmode to place a monster on my square, but it has
occurred in real games:

http://dobrazupa.org/morgue/NOPE/crash-NOPE-20130531-015051.txt

--------------------------------------------------------------------------------
63bfc31141 | David Lawrence Ramsey | 2013-05-30 21:24:37 -0500

Add more brace fixes.

--------------------------------------------------------------------------------
b05bf95579 | Adam Borowski | 2013-05-31 03:48:11 +0200

Weapons recommendations for Grotesks.

--------------------------------------------------------------------------------
c3093fb995 | Adam Borowski | 2013-05-31 03:44:13 +0200

Djinn: weapon recommendations.

--------------------------------------------------------------------------------
707fcf7da8 | Adam Borowski | 2013-05-31 03:35:43 +0200

Brace fixes.

--------------------------------------------------------------------------------
4c9b362b81 | Adam Borowski | 2013-05-31 03:30:41 +0200

Purge unused descs for lava orc professionals.

--------------------------------------------------------------------------------
b3858c32bc | Adam Borowski | 2013-05-31 03:20:47 +0200

Revert "Djinn: ... including Jiyva's one."
That mutation is no more, and no djinni was around when it could be given.

This reverts commit 72b3ab37f0fbe0fb5e98a90fb9c5b3a8802eb388.

--------------------------------------------------------------------------------
72b3ab37f0 | Adam Borowski | 2013-05-31 03:15:02 +0200

Djinn: ... including Jiyva's one.
You could stuff yourself to create jellies, I don't want such behaviour.

--------------------------------------------------------------------------------
db045d7a8e | Adam Borowski | 2013-05-31 03:13:14 +0200

Djinn: disable food-based mutations.

--------------------------------------------------------------------------------
4b22bb5de1 | Adam Borowski | 2013-05-31 02:48:57 +0200

Betterer formatting of Gargoyle entries in tables.

--------------------------------------------------------------------------------
8146ad5239 | Brendan Hickey | 2013-05-30 17:44:59 -0700

Grotesk -> Gargoyle
Since they're unliving, there's no point in calling them something else.

--------------------------------------------------------------------------------
efe5f0c83f | Adam Borowski | 2013-05-31 01:47:38 +0200

Manual updates through the wiki.

--------------------------------------------------------------------------------
2e2439c1c3 | Adam Borowski | 2013-05-31 01:47:38 +0200

Remove Superfluous Elves.
For every playstyle, you can find another race which can do it better:
their main schtick, unarmed transmuter, can be done far better by merfolk.
Such a transmuter has no synergy with necromancy (Lich Form being an
utility that doesn't provide means of dealing damage by itself), and
there are better earth elementalists as well.

We already have two other elven subraces: Deep Elves who nearly define
conjurers, and High Elves, who make pretty distinct medium armour
hybrids.  Sludge Elves, on the other hand, had no niche on their own.

--------------------------------------------------------------------------------
98b7afdc1b | Chris Campbell | 2013-05-30 23:47:55 +0100

Don't disguise forest drakes as giant newts

--------------------------------------------------------------------------------
daa7449409 | Chris Campbell | 2013-05-30 23:47:54 +0100

Disable the staff of Wucad Mu for Djinn
Massive healing with no long-term cost or any kind of significant
downside is slightly silly.

--------------------------------------------------------------------------------
a40206249d | David Lawrence Ramsey | 2013-05-30 17:07:36 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
570861c651 | David Lawrence Ramsey | 2013-05-30 17:07:05 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
2234123e3d | David Lawrence Ramsey | 2013-05-30 17:04:19 -0500

Add needed parentheses and formatting fixes.

--------------------------------------------------------------------------------
06d93119f8 | David Lawrence Ramsey | 2013-05-30 17:02:44 -0500

Remove unneeded parentheses.

--------------------------------------------------------------------------------
7a822ad235 | David Lawrence Ramsey | 2013-05-30 16:30:33 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
a67038be9c | David Lawrence Ramsey | 2013-05-30 16:27:38 -0500

Simplify.

--------------------------------------------------------------------------------
7d272e8989 | Chris Campbell | 2013-05-30 21:27:01 +0100

Give Lava Orcs stat growth
The same as HO for the moment.

--------------------------------------------------------------------------------
ce26f17ce4 | Adam Borowski | 2013-05-30 22:22:43 +0200

Allow fewer than three stairs on D:1.
Note that culling code is currently buggy, and will preserve stairs
randomly generated elsewhere that happened to be placed inside a vault.
This is not a regression: before, you'd sometimes end up outside an
entry vault.

For this reason I left in plenty of debug dprf()s.

--------------------------------------------------------------------------------
7c14b23861 | David Lawrence Ramsey | 2013-05-30 13:17:13 -0500

Mark grotesks as artificial beings (prohibiting their being Death Knights).
They're described as being made of stone, as statues are; as being
gargoyle-like, as gargoyles are; and the code to convert player species
to monster species displays them as gargoyles anyway.

--------------------------------------------------------------------------------
bf2ae14935 | Adam Borowski | 2013-05-30 19:48:20 +0200

Fix stair culling not considering one of them.
If a non-encompass vault spawns three (one for branch exits), you
will end with too many.

--------------------------------------------------------------------------------
f0618ca0e7 | Adam Borowski | 2013-05-30 19:48:20 +0200

Make vetoes easier to notice.

--------------------------------------------------------------------------------
cdb489c3fa | Steve Melenchuk | 2013-05-30 10:25:02 -0600

Only place one exit from a branch.
This has been long-discussed; currently we have a scenario where one can
go up and down stairs and suddenly be in a different location. We'd
prefer not to subscribe to the Angband theory of twisty little
staircases.

Currently there's an exception made for the root branch (Dungeon in main
games and Sprint; Zot for ZotDef). This may or may not go away in the
future; I'm leaving it in for now so that we can determine if anything
depends on having multiple stairs placed and tweak those if so.

--------------------------------------------------------------------------------
4d8313605d | Adam Borowski | 2013-05-30 18:21:42 +0200

Purge the beam and zap for Cigoruvi's.

--------------------------------------------------------------------------------
7fc62a56f1 | Adam Borowski | 2013-05-30 18:07:47 +0200

Drop Cigotuvi's from the Vitriol card.

--------------------------------------------------------------------------------
b1033f5dad | Adam Borowski | 2013-05-30 17:37:54 +0200

Corpses are not useless if you can use their chunks.
(Simulacrum, Sublimation of Blood)

--------------------------------------------------------------------------------
39aa781ac8 | Adam Borowski | 2013-05-30 17:11:43 +0200

Mark corpses as useless for non-eating races.
Unless you know a relevant spell, that is.

A djinni can get mutated, so mutagenic corpses have an use.

--------------------------------------------------------------------------------
3bd72c40c9 | Pete Hurst | 2013-05-30 14:58:03 +0100

Add some more brown variations to cave tiles

--------------------------------------------------------------------------------
39610e7952 | Chris Campbell | 2013-05-30 14:42:09 +0100

Update Ozo's Armour description (#7108)

--------------------------------------------------------------------------------
03e152aa05 | Pete Hurst | 2013-05-30 14:40:14 +0100

Add some tileset variations for D caves

--------------------------------------------------------------------------------
c7ce54978e | Pete Hurst | 2013-05-30 14:32:41 +0100

Add a couple of colour variants for cave wall/floor tiles

--------------------------------------------------------------------------------
fa9f7a0dc3 | Pete Hurst | 2013-05-30 14:29:38 +0100

An Lua util for random weighting by branch
Branch names can be used in the table to modify weights on
those branches:

e.g.:

{ Dis = 10, Zot = 20, weight = [default] }

--------------------------------------------------------------------------------
77c64665ce | Adam Borowski | 2013-05-30 15:09:11 +0200

Gourmand is useless for the djinn.

--------------------------------------------------------------------------------
db90ed199e | Pete Hurst | 2013-05-30 13:37:17 +0100

Reset cloud tile layout when no cloud

--------------------------------------------------------------------------------
fab4a91b2e | Adam Borowski | 2013-05-30 14:17:08 +0200

A way for stress tests to disable semi-permanent afflictions.
For now, just malmutate.

Otherwise, non-mummies/ghouls get a complete set of bad mutations in no time.

--------------------------------------------------------------------------------
2db0c1e21f | Florian Diebold | 2013-05-30 13:33:50 +0200

Fix the temperature bar showing up for all races in Webtiles.

--------------------------------------------------------------------------------
0263170801 | Florian Diebold | 2013-05-30 12:57:28 +0200

Fix lava orc heat aura in Webtiles.

--------------------------------------------------------------------------------
20e5c5a3d5 | Florian Diebold | 2013-05-30 12:45:45 +0200

Plug a small Webtiles information leak (mumra).

--------------------------------------------------------------------------------
1b2e454402 | Pete Hurst | 2013-05-30 11:37:36 +0100

Correct heat bar Ids (webtiles)

--------------------------------------------------------------------------------
18b0d3e85c | Florian Diebold | 2013-05-30 12:27:02 +0200

Shorten "Essence" to "EP" on Webtiles if the player is rotted.
Same thing for "Health"/"HP", which is how it already worked in Console.

--------------------------------------------------------------------------------
1f3dc0b68c | Florian Diebold | 2013-05-30 12:21:19 +0200

Send correct max hp for Djinni to the webtiles client.

--------------------------------------------------------------------------------
cac1a80dd4 | Pete Hurst | 2013-05-30 11:05:43 +0100

Properly set contam level display (webtiles)

--------------------------------------------------------------------------------
4ba7260dfc | Pete Hurst | 2013-05-30 10:59:55 +0100

Create a separate contam bar in HTML, implement heat, simplify (webtiles)

--------------------------------------------------------------------------------
024becf8f7 | Florian Diebold | 2013-05-30 11:52:58 +0200

Fix djinni contam bar colors.

--------------------------------------------------------------------------------
3e9bf07203 | Pete Hurst | 2013-05-30 10:42:58 +0100

Use temperature() to do int conversion

--------------------------------------------------------------------------------
f5a950ff12 | Pete Hurst | 2013-05-30 10:33:27 +0100

Display contam for Djinni in webtiles

--------------------------------------------------------------------------------
a39a4d95c5 | Pete Hurst | 2013-05-30 10:32:39 +0100

Send contam/temperature to webtiles client for Djinn/Lava Orc

--------------------------------------------------------------------------------
a43ddea765 | Pete Hurst | 2013-05-30 10:31:52 +0100

Differentiate gained/lost contam on local tiles

--------------------------------------------------------------------------------
bb30f80001 | Pete Hurst | 2013-05-30 09:30:17 +0100

Fix obvious typo

--------------------------------------------------------------------------------
d4e0b10693 | Pete Hurst | 2013-05-30 09:20:54 +0100

Fix max HP display for Djinni (webtiles)

--------------------------------------------------------------------------------
e7ce82a1fa | Pete Hurst | 2013-05-30 09:05:51 +0100

Webtiles HUD updates (Djinni/Lava Orcs)
The contam and temperature bars aren't actually working yet,
just getting some structure in place for them.

--------------------------------------------------------------------------------
d25905f62e | Pete Hurst | 2013-05-30 08:50:43 +0100

Fix logic for species HUD (webtiles)

--------------------------------------------------------------------------------
3951bad283 | Pete Hurst | 2013-05-30 08:33:46 +0100

Fix species HTML attribute (webtiles)

--------------------------------------------------------------------------------
41cf647548 | Pete Hurst | 2013-05-30 08:25:10 +0100

Essence bar for Djinni (webtiles)

--------------------------------------------------------------------------------
897a16e46f | David Lawrence Ramsey | 2013-05-30 01:54:50 -0500

Fix inconsistent wording.
The new wording matches the one for mummies' heat vulnerability.
(cherry picked from commit 600ae973acdbd2fa00746721d6aebb21a0df01ae)

--------------------------------------------------------------------------------
76c65e7761 | Neil Moore | 2013-05-30 01:57:02 -0400

Don't crash on divine vigour with 0 max MP (#7104).

--------------------------------------------------------------------------------
654acbe06d | Neil Moore | 2013-05-30 01:34:20 -0400

Fix submodules.

--------------------------------------------------------------------------------
e5a11bb0ab | Brendan Hickey | 2013-05-29 22:13:36 -0700

Give Grotesks !restore abilities to start.

--------------------------------------------------------------------------------
261b828804 | Brendan Hickey | 2013-05-29 21:45:31 -0700

Increase Grotesk class restrictions

--------------------------------------------------------------------------------
5ec46be25b | Brendan Hickey | 2013-05-29 21:43:10 -0700

Grotesk description

--------------------------------------------------------------------------------
f01b7cc7ab | Brendan Hickey | 2013-05-29 21:30:21 -0700

Merge branch 'master' into gargoyle_merge
Conflicts resolved:
	crawl-ref/source/enum.h
	crawl-ref/source/ng-restr.cc
	crawl-ref/source/player.cc
	crawl-ref/source/species.cc
	crawl-ref/source/tag-version.h

--------------------------------------------------------------------------------
70f8c6ce77 | Neil Moore | 2013-05-29 23:56:13 -0400

Fix zot point and turn display for LO in console.

--------------------------------------------------------------------------------
4b0f138ef5 | Steve Melenchuk | 2013-05-29 21:10:07 -0600

Change up the monster sets in grunt_crypt_end_deaths_head.
This is primarily to take advantage of the new Crypt monsters.

The bands are also more carefully placed so that you don't get curse
skulls blocking choke points and the like; the entry areas get the
"easiest" bands, the loot areas get most of the rest of the bands, and
the area originally intended to be a Tomb entrance now has four monster
sets to match, e.g., church_of_pain_bobbens and due_elkab.

(Jory can place in one of those monster sets, for added fun.)

--------------------------------------------------------------------------------
f62e53e2f9 | Neil Moore | 2013-05-29 22:08:22 -0400

Merge branch 'forest_redux' into master
Conflicts:
	crawl-ref/source/enum.h

--------------------------------------------------------------------------------
3259975a78 | Neil Moore | 2013-05-29 22:06:06 -0400

Merge branch 'lava_djinn' into master
Conflicts:
	crawl-ref/source/enum.h

--------------------------------------------------------------------------------
fad644818c | Jason Van | 2013-05-30 00:57:34 +0100

CLEAR practice: consolidate several Lair vaults
The five vaults here, two oklob vaults and two decor vaults included,
had several variations based on differing sizes or very randomized
empty space put in invaried shapes; as such fifteen seperate-by-map
vaults are here combined into five vaults using the new CLEAR syntax.
(Also, I added some minimum loot and extra tags as appropiate)

From the player's side the only noticeable factors should be some
vault placement very rarely repeating vaults per game,
and those repeated vaults just are rather randomized decorative floor.

--------------------------------------------------------------------------------
37d3fac45f | Chris Campbell | 2013-05-29 20:17:26 +0100

Remove a do-nothing tag

--------------------------------------------------------------------------------
feb35aa9d5 | Chris Campbell | 2013-05-29 19:44:35 +0100

Don't let okawaru_arena be an overflow, move it deeper

--------------------------------------------------------------------------------
98354d5b99 | Chris Campbell | 2013-05-29 19:43:40 +0100

Remove a trap vault

--------------------------------------------------------------------------------
8ce78c07bc | Steve Melenchuk | 2013-05-29 11:55:48 -0600

A description for the Forest entrance feature.
Mainly motivated by the fact that it's no longer exclusively a spriggan
forest.

--------------------------------------------------------------------------------
22685b62b9 | Steve Melenchuk | 2013-05-29 11:39:40 -0600

Merge remote-tracking branch 'origin/master' into forest_redux

--------------------------------------------------------------------------------
c0efcae2bc | Steve Melenchuk | 2013-05-29 11:38:25 -0600

Tiles for fauns, satyrs, and Pan from your favorite badtile author.
(Yes, that's me, in case you were wondering.)

Partly derived from the human tile with a few cues taken from centaurs,
yaktaurs, and minotaurs.

--------------------------------------------------------------------------------
afb9db8365 | Pete Hurst | 2013-05-29 18:24:19 +0100

Remove filled boxes from Pan variant of layout_gridlike

--------------------------------------------------------------------------------
4157414ca9 | Pete Hurst | 2013-05-29 18:22:50 +0100

Disable problematic Abyss layouts
To be reverted once the layouts have been improved.

--------------------------------------------------------------------------------
ffee786e4a | Pete Hurst | 2013-05-29 18:12:29 +0100

Increase depth range of layout_cave_town

--------------------------------------------------------------------------------
9484b7ca84 | Chris Campbell | 2013-05-29 18:07:35 +0100

Remove a non-functional shop vault
Corpses can't (and probably shouldn't) be placed in shops, and a shop
mostly just containing some polearms and nets isn't very interesting.

--------------------------------------------------------------------------------
078590db2e | Neil Moore | 2013-05-29 12:57:27 -0400

Replace a jellyfish corpse with bait.
MarvinPA points out that maybe a shop shouldn't be selling corpses.

--------------------------------------------------------------------------------
c3594225c2 | Steve Melenchuk | 2013-05-29 08:53:36 -0600

Merge remote-tracking branch 'origin/master' into forest_redux
Conflicts:
	crawl-ref/source/evoke.cc
	crawl-ref/source/mon-flags.h
	crawl-ref/source/spl-miscast.cc

--------------------------------------------------------------------------------
2b5add3121 | Steve Melenchuk | 2013-05-29 08:49:57 -0600

Minor adjustments to a couple of forest monsters.
Most notably dryads have movement delay 12 so they are easier to catch.

Fauns, satyrs, and Pan now have CE_CONTAMINATED (they were originally
intended to, but this was missed).

--------------------------------------------------------------------------------
8948773a55 | Adam Borowski | 2013-05-29 14:38:35 +0200

Pinky, are undead laboratory rats what I'm pondering?

--------------------------------------------------------------------------------
cfd05e3b27 | Adam Borowski | 2013-05-29 14:30:04 +0200

Let spectral shapeshifter simulacra do their thing.
Zin hates that!  Oh, wait, undead already.

--------------------------------------------------------------------------------
3294f18ea4 | Adam Borowski | 2013-05-29 13:05:55 +0200

Decorpsify eyes and jellyfish.
They don't have anything resembling meat.  While it'd be possible to
rewrite chunks' description, or even make them butcher into some other
kind of chunks, decorpsification seems an easier way.

Plus, their simulacra do nothing but block the way.

--------------------------------------------------------------------------------
2038a66d2a | Adam Borowski | 2013-05-29 12:16:53 +0200

M_NO_GEN_DERIVED to suppress generation of certain boring zombies.

--------------------------------------------------------------------------------
c42bccfc4b | Adam Borowski | 2013-05-29 12:06:35 +0200

Allow spectral plague shamblers, like other ghoulies.

--------------------------------------------------------------------------------
e539ce2d16 | Adam Borowski | 2013-05-29 11:43:54 +0200

Makes ghost moths of suppression zombifiable.
Consistent with moths of wrath, and insects other than butterflies.
Also, these zombies are not as boring as ghost moths hit like a train.

--------------------------------------------------------------------------------
b524b121d4 | Adam Borowski | 2013-05-29 11:15:44 +0200

Don't warn about dummy monster corpses.

--------------------------------------------------------------------------------
9cf96c430c | Adam Borowski | 2013-05-29 10:26:57 +0200

Fix advanced zombies producing skeletons instead.

--------------------------------------------------------------------------------
fcbe965859 | Adam Borowski | 2013-05-29 10:00:44 +0200

Don't let is_valid_species() accept placeholders.

--------------------------------------------------------------------------------
b997297864 | lain | 2013-05-28 21:51:47 -0700

prevent spectral weapons from becoming hostile when attacked by the player, 
give spectral weapons a death message, prevent spectral weapons from attacking 
themselves

--------------------------------------------------------------------------------
af454e13ce | Neil Moore | 2013-05-29 00:48:34 -0400

Don't create closets around minmay_lair_hidden_items (#7099)

--------------------------------------------------------------------------------
86ea8f9b4c | Steve Melenchuk | 2013-05-28 21:57:17 -0600

Fix an error in a couple of monster definitions.
It's irrelevant for gameplay (as the relevant monsters place normal
tengu corpses), fortunately.

--------------------------------------------------------------------------------
002116afa8 | Neil Moore | 2013-05-28 23:46:45 -0400

Update levdes.vim to recognise CLEAR:

--------------------------------------------------------------------------------
dd671a14e9 | Neil Moore | 2013-05-28 23:43:02 -0400

Restore randomisation of enchanted forest edge.
It was derandomised in 0.10-a0-2629-gc15aa3f to avoid the possibility
of creating isolated floor.  The new CLEAR: declaration allows removing
some trees from the map entirely instead of replacing them with floors,
so do that.

--------------------------------------------------------------------------------
13d13e1d02 | Steve Melenchuk | 2013-05-28 21:36:29 -0600

Bandify enemy spriggans.
In most significant vaults that have made use of them outside of
individual gimmicks (i.e. vaults like minmay_lair_end_enchanted_forest
and spriggan_forest as opposed to the_bakery), small numbers of
spriggans tend to be grouped together for encounters.

Basic spriggans and most low-tier spriggan professionals place 2-4 extra
spriggans (assassins and enchanters, who work best through subterfuge,
still go it alone). Defenders place at least two low-tier professionals
(excluding assassins and enchanters) with a chance for more, with 3-6
followers in total.

--------------------------------------------------------------------------------
232dc38ec9 | Pete Hurst | 2013-05-29 04:17:06 +0100

Document CLEAR directive

--------------------------------------------------------------------------------
e33ce555e3 | Pete Hurst | 2013-05-29 04:09:44 +0100

Add a CLEAR directive for map files
The syntax is as follows:

CLEAR:  xyz

This will substitute the glyphs x, y and z for ' ' i.e.
the space character, becoming not part of the map.

--------------------------------------------------------------------------------
f52a1207e2 | David Lawrence Ramsey | 2013-05-28 21:48:43 -0500

Put a Xom message in the proper channel.

--------------------------------------------------------------------------------
326aa919df | Steve Melenchuk | 2013-05-28 20:14:15 -0600

A tile for Sojobo.
Based on the tengu summoner tile with a few cues taken from other
enemies.

--------------------------------------------------------------------------------
bad48d64c2 | Adam Borowski | 2013-05-29 04:13:03 +0200

Merge branch 'lava_orcs' into lava_djinn
Waiting for Grotesks and the Forest to go live!

--------------------------------------------------------------------------------
aff44e3dcf | Adam Borowski | 2013-05-29 04:01:42 +0200

Merge branch 'master' into lava_orcs

--------------------------------------------------------------------------------
0b4d0b4f20 | Steve Melenchuk | 2013-05-28 19:34:36 -0600

Merge remote-tracking branch 'origin/master' into forest_redux
Conflicts:
	crawl-ref/source/dat/des/builder/layout.des
	crawl-ref/source/dat/des/builder/layout_loops.des
	crawl-ref/source/evoke.cc

--------------------------------------------------------------------------------
e4acb67122 | Steve Melenchuk | 2013-05-28 19:29:24 -0600

Adjust spriggan assassin needle type probabilities.
Firstly, they get curare at the normal probability.

Secondly, special needle types are only on one in three assassins (they
get poisoned needles otherwise).

Thirdly, paralysis needles have been moved to the bottom of the
hierarchy (assassins with needles of paralysis are terrifying!).

--------------------------------------------------------------------------------
42993c7a02 | Adam Borowski | 2013-05-29 03:23:49 +0200

Merge branch 'master' into djinn

--------------------------------------------------------------------------------
8e67a19276 | Steve Melenchuk | 2013-05-28 19:21:06 -0600

More variety for Forest monster spell sets.
Fauns, tengu conjurers, and tengu reavers now have multiple spell sets -
the former focusing on various low-level hexes and the latter two
getting various schools of conjuration magic. All of the above have had
empty spell slots assigned duplicate copies of spells so that more
spells are cast.

Pan can now also cast Metabolic Englaciation; thus, he can confuse and
slow entire bands of enemies! (Leave your orc horde at home, Beoghites!)

--------------------------------------------------------------------------------
1ef5305b68 | Adam Borowski | 2013-05-29 02:44:25 +0200

Shut up an initializer warning on old gcc.

--------------------------------------------------------------------------------
7c6458af1c | Adam Borowski | 2013-05-29 02:41:01 +0200

Don't let Xom kill the player with an Earth 3 miscasts if he doesn't want to.

--------------------------------------------------------------------------------
4363d6c99a | Adam Borowski | 2013-05-29 02:29:15 +0200

A quote for Sticky Flame.

--------------------------------------------------------------------------------
09c7b78476 | Adam Borowski | 2013-05-29 02:29:15 +0200

Make a function static.

--------------------------------------------------------------------------------
195741a2a3 | Adam Borowski | 2013-05-29 02:29:15 +0200

Cut pointless braces.

--------------------------------------------------------------------------------
628437f369 | Adam Borowski | 2013-05-29 02:29:15 +0200

A formatting fix.

--------------------------------------------------------------------------------
3c41f2301a | Adam Borowski | 2013-05-29 02:04:15 +0200

Don't hardcode the spaces in acquirement menu.

--------------------------------------------------------------------------------
73e577158e | DracoOmega | 2013-05-28 21:28:09 -0230

Don't let the fan of gales blow away stationary creatures

--------------------------------------------------------------------------------
70aea8ba4e | Adam Borowski | 2013-05-29 01:52:31 +0200

Refactor the menu of acquirement type selection.
This makes further adjustments easier, and also blocks food acquirement
in non-eating forms.

--------------------------------------------------------------------------------
756ea54234 | Adam Borowski | 2013-05-29 01:52:30 +0200

Fix zombies of uniques losing their description.

--------------------------------------------------------------------------------
cc4591b938 | DracoOmega | 2013-05-28 20:45:08 -0230

Prevent casting haunt on friendlies
This interacts very oddly with their new target-locking behavior and
can sometimes even allow you to partially bypass it.

--------------------------------------------------------------------------------
598d7e183f | DracoOmega | 2013-05-28 20:45:07 -0230

Give phial of floods a floor color

--------------------------------------------------------------------------------
b239dd5b62 | Chris Campbell | 2013-05-28 22:44:40 +0100

Make water from rain clouds temporary

--------------------------------------------------------------------------------
3136d866ef | Neil Moore | 2013-05-28 16:01:21 -0400

Allow food_is_meaty etc to work with dummy objects.
The assert was bogus, as we might be called with a dummy item that has
quantity==0.  In particular, this happens when doing food acquirement
with a mummy, as the uselessness check passes such an item to
food_is_meaty.

Food acquirement with a mummy isn't possible with the scroll, but
it is possible with Xom or 'acquire any' itemdefs.  To reproduce,
start a mummy and do &%acquire food

--------------------------------------------------------------------------------
f3c84e061e | Chris Campbell | 2013-05-28 19:07:48 +0100

Adjust orb run spawns
Make demon selection more random, remove extra weighting for some boring
monsters, add orb guardians.

Old:
33% common demon, 29% any demon, 9% hell hound, 9% large abomination,
8% small abomination, 7% red devil, 5% Hell Sentinel

New:
30% common demon, 30% any demon, 20% any Pan monster, 15% Orb Guardian,
5% greater demon

--------------------------------------------------------------------------------
6af60c9dab | Chris Campbell | 2013-05-28 19:00:04 +0100

Add missing demons to Pan spawn list, remove some undead/nonliving things

--------------------------------------------------------------------------------
fedbb51ff2 | Chris Campbell | 2013-05-28 18:59:45 +0100

Update default explore_stoppers

--------------------------------------------------------------------------------
9120702f9c | Pete Hurst | 2013-05-28 16:37:12 +0100

Make all layouts use an inclusive branch list rather than exclusive
This removes some layouts from certain branches (e.g. Crypt/Snake/Elf)
to refine their theme further.

Prior to this layouts had to use CHANCE to override basic/misc/rooms
layouts, this restriction is now lifted.

--------------------------------------------------------------------------------
c3b4641d16 | lain | 2013-05-28 08:02:23 -0700

Merge branch 'master' into newskalds

--------------------------------------------------------------------------------
9986602e42 | lain | 2013-05-28 08:01:35 -0700

Merge branch 'master', remote-tracking branch 'crawl/master'

--------------------------------------------------------------------------------
aedc536ac8 | lain | 2013-05-28 07:31:00 -0700

remove silly yet accurate comment

--------------------------------------------------------------------------------
86cd5150bf | lain | 2013-05-28 07:21:15 -0700

make silence remove the song of slaying status from players

--------------------------------------------------------------------------------
57745fa789 | lain | 2013-05-28 06:55:47 -0700

make the damage by spectral weapons considered as player damage for exp_rate
this means that a player who only damages a monster using a spectral weapon
summon will receive 100% of the exp instead of just the 50% a summon would 
normally
give.

--------------------------------------------------------------------------------
55d14e91be | lain | 2013-05-28 06:25:41 -0700

make all kills by the spectral weapon count as the player's
this means mummy curses will affect the player rather than the spectral weapon 
if the weapon deals the final blow, probably more changes have to be made to 
make the spectral weapon's kills and damage 100% the player's

--------------------------------------------------------------------------------
5b3fe4f9d5 | lain | 2013-05-28 05:36:44 -0700

Merge branch 'newskalds' of git://gitorious.org/~lainiw/crawl/lain-crawl into 
newskalds

--------------------------------------------------------------------------------
85672ce83c | lain | 2013-05-28 05:33:18 -0700

fix a crash when casting spectral weapon with no room, make the spectral weapon 
a conjured monster

--------------------------------------------------------------------------------
57925cd2bb | Pete Hurst | 2013-05-28 13:24:12 +0100

Set mid before calling define_monster

--------------------------------------------------------------------------------
3d9d741f3b | lain | 2013-05-28 04:53:26 -0700

fix compilation problem, remove useless lines

--------------------------------------------------------------------------------
76fa7a54bd | lain | 2013-05-28 04:52:00 -0700

fix compilation problem, make felids not able to memorize spectral weapon

--------------------------------------------------------------------------------
93abd51264 | Pete Hurst | 2013-05-28 12:46:44 +0100

Move player hog form untransformation into a fineff (Kirke)
For consistency it seems better to print the "Hogs revert"
message before the player transforms.

--------------------------------------------------------------------------------
ca9a8aaebe | lain | 2013-05-28 04:34:52 -0700

make spectral weapon useless for felids

--------------------------------------------------------------------------------
4353ba3893 | lain | 2013-05-28 04:32:00 -0700

clean up the indentation and adjust some comments

--------------------------------------------------------------------------------
ee67b05e84 | Neil Moore | 2013-05-28 01:58:26 -0400

Don't draw tentacle segments as tentacle ends.

--------------------------------------------------------------------------------
dc5062ff1d | Steve Melenchuk | 2013-05-27 22:45:26 -0600

Basic tiles for two of the forest monsters.
Specifically, spriggan enchanters (based on the base spriggan and the
air mage) and tengu reavers (based on the "tengu skald" tile with some
cues taken from orc knights).

These aren't *too* terrible, I hope.

This leaves fauns, satyrs, Pan, and Sojobo needing tiles.

--------------------------------------------------------------------------------
4cd4b6875a | Steve Melenchuk | 2013-05-27 22:06:45 -0600

Appropriate some unused tiles for forest monsters.
The dryads and forest drake tiles were originally created for this
purpose and are good fits; the tengu conjurer and warriors perhaps
slightly less so, but they were obviously intended for this kind of
role.

The shield's been split off of the tengu warrior tile so that they can
display external shields properly.

This leaves fauns, satyrs, Pan, tengu reavers, Sojobo, and spriggan
enchanters in need of tiles.

--------------------------------------------------------------------------------
ad82a94a19 | Brendan Hickey | 2013-05-27 23:15:36 -0400

Allow Petr Resistance to occur randomly.

--------------------------------------------------------------------------------
03bc5ad669 | Brendan Hickey | 2013-05-27 23:15:21 -0400

Prohibit berserking while self-petrifying.

--------------------------------------------------------------------------------
bad966ce83 | Steve Melenchuk | 2013-05-27 21:01:41 -0600

Some basic dialogue for the Forest uniques.

--------------------------------------------------------------------------------
a14c9fcc07 | David Lawrence Ramsey | 2013-05-27 21:40:17 -0500

Clean up tentacle/tentacle segment handling somewhat.
mons_is_tentacle() now returns true only for actual tentacles, which
makes mons_is_tentacle_end() redundant.

mons_is_tentacle_or_tentacle_segment() does what mons_is_tentacle() used
to do, and is used properly on both sides of Mislead.

Handling of child tentacles (everything other than eldritch ones) is now
handled more generically, in case more types of them are added.

--------------------------------------------------------------------------------
bff23d9c33 | Steve Melenchuk | 2013-05-27 20:26:04 -0600

Add mon-grow entries for some forest monsters.

--------------------------------------------------------------------------------
fcb3a05d0d | David Lawrence Ramsey | 2013-05-27 20:51:34 -0500

Remove duplicate code in monster::is_child_monster().

--------------------------------------------------------------------------------
01ae1f4e70 | David Lawrence Ramsey | 2013-05-27 20:44:40 -0500

Add formatting fix.

--------------------------------------------------------------------------------
a95d592995 | Steve Melenchuk | 2013-05-27 19:31:23 -0600

Proper dbname for a unique entry.

--------------------------------------------------------------------------------
bf51db4ebc | Steve Melenchuk | 2013-05-27 19:27:23 -0600

A description for Forest.
This also touches the description for Crypt, and fixes a related error
in the description for Blade.

--------------------------------------------------------------------------------
af4c8f236d | Steve Melenchuk | 2013-05-27 19:10:53 -0600

Merge remote-tracking branch 'origin/master' into forest_redux

--------------------------------------------------------------------------------
4567b2a306 | Steve Melenchuk | 2013-05-27 19:10:39 -0600

Sojobo, king of the tengu!
He hastes his tengu pack and blinks them around you, with the occasional
blast of chain lightning.

(Pedantry: it should be Sōjōbō, or at least Soujoubou. I'm going with
what seems to be most common.)

--------------------------------------------------------------------------------
ba45822b41 | Adam Borowski | 2013-05-28 03:03:59 +0200

Djinn: the Regeneration spell causes glow.
It's a no-brainer to use it otherwise: you pay essence to regenerate
essence, with a profit.

--------------------------------------------------------------------------------
d31e7bbc4b | Steve Melenchuk | 2013-05-27 18:43:08 -0600

Allow most uniques that place in Crypt to place equivalently in Forest.
Khufu is going to stay Crypt-specific for obvious reasons (which isn't
to say he can't turn up in Tomb!).

--------------------------------------------------------------------------------
536f84b0a6 | David Lawrence Ramsey | 2013-05-27 19:40:42 -0500

Make it so revenants don't push past spectral things if they're enslaved souls.
This is a rare case, as you'd need either friendly or hostile versions
of both for it to apply, but it seems appropriate.

--------------------------------------------------------------------------------
fb89ea0763 | Neil Moore | 2013-05-27 20:09:02 -0400

Correct return type of random_choose_weighted(FixedVector).
It returns an index, not a value.

--------------------------------------------------------------------------------
6d5bb57588 | David Lawrence Ramsey | 2013-05-27 18:59:24 -0500

Fix spacing.

--------------------------------------------------------------------------------
3a28b81af9 | Steve Melenchuk | 2013-05-27 17:52:14 -0600

Merge remote-tracking branch 'origin/master' into forest_redux

--------------------------------------------------------------------------------
1614dbdf56 | Steve Melenchuk | 2013-05-27 17:49:05 -0600

Another minor adjustment to Forest monster weight.
This weights down normal spriggans with increasing depth in favour of
spriggan professionals.

--------------------------------------------------------------------------------
5cdac9c2ee | Steve Melenchuk | 2013-05-27 17:48:59 -0600

Spriggan assassins and spriggan enchanters.
This takes advantage of the pre-existing enum and description for
assassins, and reuses the description from the now-non-existent Rogue's
Gallery serial vault.

This introduces an M_STABBER monster class flag. Monsters with this
flag will try to maintain their distance (using ranged attacks) until
such a time as their target is incapacitated, at which time they switch
to melee to attack their target. Stabbers without a means of ranged
attack will assume normal monster behaviour.

Assassins get this flag with blowguns and status-inflicting needles;
enchanters get this flag with a spell-set to complement it.

--------------------------------------------------------------------------------
0636926422 | David Lawrence Ramsey | 2013-05-27 18:44:02 -0500

Remove unneeded break.

--------------------------------------------------------------------------------
f92d21241a | David Lawrence Ramsey | 2013-05-27 18:42:53 -0500

Give ancient champions their own genus.
It's less appropriate to give them the skeletal warrior genus now, since
skeletal warriors are no longer spellcasters.

--------------------------------------------------------------------------------
8f96c198bc | David Lawrence Ramsey | 2013-05-27 18:39:37 -0500

Give flying skulls their own genus, as is done for curse skulls.

--------------------------------------------------------------------------------
bc36d5f246 | David Lawrence Ramsey | 2013-05-27 18:33:46 -0500

Add missing bits for revenants' being skeletal.

--------------------------------------------------------------------------------
252cdafecb | David Lawrence Ramsey | 2013-05-27 18:29:30 -0500

Add missing bits for ancient champions' being skeletal.
This is since they're related to skeletal warriors (and originally were
Lua redefinitions of them).

--------------------------------------------------------------------------------
9906e82a21 | DracoOmega | 2013-05-27 20:24:37 -0230

Typo fix

--------------------------------------------------------------------------------
2a3e78193c | ontoclasm | 2013-05-27 17:20:27 -0500

Status icon for summoned monsters.

--------------------------------------------------------------------------------
1d8600c3b9 | Steve Melenchuk | 2013-05-27 15:57:31 -0600

Forest monster weight tweaks.
This focuses less on popcorn and more on actually threatening monsters.

There's also a tweak to get more plants to place, because, well, forest.

--------------------------------------------------------------------------------
2ca824d910 | Pekka Lampila | 2013-05-27 22:50:35 +0100

Don't show bogus item stack marker in clouds
In other words: Revert bfeb2e73b as it's no longer needed

--------------------------------------------------------------------------------
abd9c2f205 | Translators | 2013-05-27 23:31:52 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9b3185bbfe | Steve Melenchuk | 2013-05-27 15:17:21 -0600

Enemy tengu adjustments.
Firstly, enemy tengu get the player tengu flight speed bonus, i.e. they
move at 9 aut per step instead of 10 aut.

Secondly, there are now tengu reavers - elite tengu skilled with both
steel and spells. They are a rare late forest spawn (possibly some
future Forest ending vaults can place them).

I'm open for suggestions as to how to improve the spell set of the
conjurers and reavers.

--------------------------------------------------------------------------------
27e003e2db | Neil Moore | 2013-05-27 17:17:13 -0400

A quote for Tartarus and its entrances.

--------------------------------------------------------------------------------
7477cf55c0 | Neil Moore | 2013-05-27 17:12:57 -0400

Remove a duplicate quote.

--------------------------------------------------------------------------------
bb8cc227b8 | Neil Moore | 2013-05-27 16:33:58 -0400

Make item specs versus item glyphs consistent (#7082, #6281).
According to the docs, superb_item is supposed to be equivalent to the |
glyph, and star_item to the * glyph.  However, they had a different
distribution of base types: superb_item (like acquire any) could create
wands, and had half the chance of making a weapon.  Furthermore
superb_item could not create rods (acquire any could, because staff
acquirement can create rods).

Furthermore, 'any damaged', 'any mundane', and 'any cursed' were using
the 'acquire any' base type distribution, while they should arguably
use the floor junk distribution (or something different entirely).
This is kind of a moot point, though, because nothing uses those
(just 'any damaged weapon', which doesn't have the problem).

Change the base type distribution of superb_item to match the | glyph,
and of star_item and the rest to match floor loot.  This means that
Elf:3 and Tomb:3 now have loot composition closer to 0.11 again: some
scrolls, potions, etc.; more weapons; and the occasional rod.  Ziggurat
loot is changed similarly.

--------------------------------------------------------------------------------
65ce3f5962 | Steve Melenchuk | 2013-05-27 14:28:28 -0600

Remove reference to removed ability in Pan's description.

--------------------------------------------------------------------------------
49be7437f4 | Steve Melenchuk | 2013-05-27 14:28:28 -0600

One more minor addition to the Forest monster set.
As I realised when splitting out vaults from spriggan_forest, giant
fireflies go well with spriggans (xref: spriggan riders), so now they
place in Forest too.

--------------------------------------------------------------------------------
21a211bbaa | Steve Melenchuk | 2013-05-27 14:28:28 -0600

Tweaks relevant to Forest vaults.
spriggan_forest, the encompass vault, is vetoed if the Forest branch is
present, and several minivaults (and an ending vault) have been pulled
out from it to be placeable in Forest.

The wad_woods vaults that place weak monsters now place stronger
(and more branch-appropriate) monsters when placed in Forest.

Vaults placed in Forest now connect up to the rest of the level better.

--------------------------------------------------------------------------------
abcf4c5325 | Steve Melenchuk | 2013-05-27 14:28:22 -0600

Merge remote-tracking branch 'origin/master' into forest_redux

--------------------------------------------------------------------------------
9a04efbefe | ontoclasm | 2013-05-27 15:27:20 -0500

More distinctive ancient champion

--------------------------------------------------------------------------------
d0845bd2e7 | ontoclasm | 2013-05-27 15:27:19 -0500

Reduce ghostly flame opacity

--------------------------------------------------------------------------------
b8d3725076 | David Lawrence Ramsey | 2013-05-27 15:19:46 -0500

Fix punctuation.

--------------------------------------------------------------------------------
56cd2e8f12 | DracoOmega | 2013-05-27 17:43:37 -0230

Reduce the number of shadows summoned by necro miscasts from 1-3 to 1-2
This is still stronger than the old effect, of course. Maybe it should
just summon one?

--------------------------------------------------------------------------------
daf1fe9ca5 | DracoOmega | 2013-05-27 17:43:36 -0230

Reduce shadow AC a fair bit

--------------------------------------------------------------------------------
35899cf5ba | DracoOmega | 2013-05-27 17:43:35 -0230

Recharge all carried elemental evokers at the same rate; slow recharge slightly
As was pointed out, each evoker recharging more slowly the more you carry
may be a bit unintuitive (and unlike rods, for example), but moreover means
that finding a second becomes a lot less fun than it otherwise would. Now each
will recharge at the same rate, no matter how many you carry. The base recharge
rate has been slowed somewhat at the same time, but possibly it is still too
generous now.

--------------------------------------------------------------------------------
1ee41297a3 | DracoOmega | 2013-05-27 17:43:34 -0230

Crypt monster rarity tweaks
Reduce rate of deep dwarf death knights a little. Nudge up some weaker
undead in their place. Also give a 1 in 3 chance for a death knight to
spawn without its band.

--------------------------------------------------------------------------------
43735a65df | DracoOmega | 2013-05-27 17:43:33 -0230

Remove ghouls from summon undead; replace with jiangshi
Due to rot, meleeing ghouls is already widely considered undesireable,
and this goes double for summoned ghouls - it would generally be foolish
to stand and fight instead of automatically running away. The increasing
prevalence of this spell in Crypt now (due to vampire mages) was making
it feel as though Crypt itself had a lot more ghouls and causing repeated
fleeing to wait for them to time out. Probably it is better if the spell
just does not produce these. (Jiangshi on the other hand are both harder
to run from, and less annoying if you choose not to)

--------------------------------------------------------------------------------
719950c8b6 | DracoOmega | 2013-05-27 17:43:32 -0230

Don't mark elemental evokers as useless while inert
Among other things, this caused them to be dropped with d, even
though they will inevitably recharge as you carry onward.

--------------------------------------------------------------------------------
0ed75f1d94 | DracoOmega | 2013-05-27 17:43:31 -0230

Correct a comment

--------------------------------------------------------------------------------
eaf4a15e24 | Pete Hurst | 2013-05-27 20:34:33 +0100

Improve messaging of david_glass_crypt (Mantis #7090)
Removed reference to liches as there are ways for them to be killed
prior to being released. Adjusting the message based on whether the liches
were already killed is non-trivial (although, an improvement might
be that tampering with the grates or the liches in any way opened both
sets of grates immediately).

Also added a check that the player actually saw any grates drop and
adjusted the message accordingly.

--------------------------------------------------------------------------------
8e9059282a | Neil Moore | 2013-05-27 15:02:26 -0400

Separate books and manuals in the autopickup menu.
And handle old saves.  We assume no one has saves from the last few
commits (the servers don't), so use the same tag as the previous
commit.

Tome of Destruction is classified as "spellbook", but should probably
become a misc item instead (for real, not just in the autopickup menu).

--------------------------------------------------------------------------------
f22e063d1d | Neil Moore | 2013-05-27 15:02:26 -0400

Autopickup bread with "other food", make fruit separate.
Also, convert old force_autopickup settings for "non-perishables"
to apply to all three categories.

--------------------------------------------------------------------------------
bbb1672e17 | David Lawrence Ramsey | 2013-05-27 13:33:31 -0500

Add comment (and resort: all other monster swapping code checks m1 before m2).

--------------------------------------------------------------------------------
76b08990be | Pete Hurst | 2013-05-27 18:40:51 +0100

Clarify comment elemental->enhancer

--------------------------------------------------------------------------------
3285dfc9af | Pete Hurst | 2013-05-27 18:32:55 +0100

Make front/back clouds render with correct alpha levels (webtiles)
Also added formatting fixes.

--------------------------------------------------------------------------------
21d5f32e6c | Pete Hurst | 2013-05-27 18:15:20 +0100

Allow Olgeb's / Wucad Mu to generate via Stave acquirement (Mantis #7047)
Since these are elemental/magical staves they should stay as WPN_STAFF,
this alters acquirement code to allow them to generate.

--------------------------------------------------------------------------------
ebf0858a57 | Pete Hurst | 2013-05-27 18:15:20 +0100

Make the Elemental Staff a WPN_QUARTERSTAFF (Mantis #7047)
This means the staff can be acquired via weapon acquirement.

--------------------------------------------------------------------------------
c5697ee963 | Neil Moore | 2013-05-27 13:09:49 -0400

Split meats and veggies in the autopickup menu.
Veggies use FOOD_BREAD_RATION as their exemplar; we still don't
distinguish bread from fruit.

No save compat handling: if you had toggled "non-perishables"
previously, that setting will now apply only to the edible-by-everyone
food, and you will have to toggle meats and vegetables again.

There is still a minor problem in that mummies show a "+" for other
foods by default (they don't actually pick them up unless you toggle it
to a manual +).  Really we should use FOOD_HONEYCOMB instead of
NUM_FOODS as the exemplar, but that would probably require a minor tag
to convert old force_autopickups properly.

--------------------------------------------------------------------------------
78887ccb40 | Neil Moore | 2013-05-27 13:09:49 -0400

Simplify with food_is_meaty, food_is_veggie functions.

--------------------------------------------------------------------------------
77135a6357 | David Lawrence Ramsey | 2013-05-27 12:06:32 -0500

Fix punctuation.

--------------------------------------------------------------------------------
aa01952801 | Steve Melenchuk | 2013-05-27 10:14:20 -0600

Strip Pan of duplication.
Despite being a mythological ability, it's too similar to the behaviour
of other monsters and uniques.

This should give way to another signature ability, but that'll have to
wait until a good idea comes up.

--------------------------------------------------------------------------------
184b49b5e5 | Steve Melenchuk | 2013-05-27 09:43:02 -0600

Drop Mesmerise from fauns and satyrs, and Leda's from fauns (not satyrs).
This gives the two monsters a meaningful difference apart from
statistics, and avoids the problem of sticking primary melee attackers
in place unfairly.

--------------------------------------------------------------------------------
e502c66fa3 | Steve Melenchuk | 2013-05-27 09:40:15 -0600

Merge branch 'master' into forest_redux

--------------------------------------------------------------------------------
8d102cc832 | lain | 2013-05-27 08:29:36 -0700

lower infusion damage again

--------------------------------------------------------------------------------
7d513cb6f1 | lain | 2013-05-27 08:28:25 -0700

give spectral weapon back its brand and shorten its duration

--------------------------------------------------------------------------------
9e22e9df71 | lain | 2013-05-27 04:54:40 -0700

more fixes for the merge

--------------------------------------------------------------------------------
a0a9c2afb8 | lain | 2013-05-27 04:42:39 -0700

Merge branch 'master' into newskalds
Conflicts:
	crawl-ref/source/enum.h
	crawl-ref/source/mon-behv.cc
	crawl-ref/source/output.cc
	crawl-ref/source/player.cc
	crawl-ref/source/status.cc

--------------------------------------------------------------------------------
5e5a47eb06 | ontoclasm | 2013-05-27 02:40:37 -0500

A less mossy stone of tremors

--------------------------------------------------------------------------------
b1fa0dc57b | ontoclasm | 2013-05-27 02:19:12 -0500

Elemental evocable tiles

--------------------------------------------------------------------------------
fb76507be2 | DracoOmega | 2013-05-27 02:10:12 -0230

Nudge down ghoul frequency in Crypt slightly

--------------------------------------------------------------------------------
7abf7a02a5 | DracoOmega | 2013-05-27 02:09:49 -0230

Make monster ghouls inflict rot only 1/2 as often

--------------------------------------------------------------------------------
587a60a6c7 | DracoOmega | 2013-05-27 01:36:22 -0230

Allow misc acquirement to properly give elemental evokers
It was mistakenly thinking that they were useless items, as the
dummies it made were inert.

--------------------------------------------------------------------------------
aad4457711 | Steve Melenchuk | 2013-05-26 20:56:17 -0600

Some Forest vaults (mostly from old forest work).
This also gets the Vaults to place a Forest entry properly, such that
Forest now has a proper entrance and an ending vault.

A lot of tags have been cleaned up, and some monster sets have been
adjusted; in particular, the number of monsters in _ending_chambers has
been reduced significantly. The amount of fruit in the clearings that
have it has been cut down substantially as well.

The old forest_ending_fortress is omitted; it's too large and unwieldy.

--------------------------------------------------------------------------------
272001920a | Steve Melenchuk | 2013-05-26 20:56:17 -0600

Co-opt the fan of gales' wind blast for a forest drake breath attack.
It's directional between the forest drake and its target in a 90 degree
arc.

The forest drake also gets RES_WIND as a consequence.

--------------------------------------------------------------------------------
0f8ebb952c | Steve Melenchuk | 2013-05-26 20:56:17 -0600

Add tengu to forest; add tengu conjurers and tengu warriors.
Tengu are traditionally associated with forests, so it makes sense to
have them here.

Tengu conjurers have Force Lance, IMB, Battlesphere, and Airstrike.

Tengu warriors are to regular tengu essentially as naga warriors are to
regular nagas. (TODO: greater tengu and/or a tengu unique?)

--------------------------------------------------------------------------------
72e30d1aab | Steve Melenchuk | 2013-05-26 20:56:16 -0600

New unique: Pan, the lord of all satyrs.
Pan casts Mass Confusion and Sleep, and can create duplicates of himself
(in the vein of rakshasas / Mara) - quite terrifying with ranged
weaponry!

Yes, this includes a monster implementation of Mass Confusion (kind of
primitive, but working).

--------------------------------------------------------------------------------
90e6f20b66 | Steve Melenchuk | 2013-05-26 20:56:16 -0600

Forest monsters: fauns and satyrs.
Drawing from the ever-popular mythology, these half-men, half-goats cast
hexes to render the player spellbound.

Since our other 'c's are archers, so too are the fauns; they have a
spell set drawing from arcane markspeople.

The big draw is Leda's Liquefaction; it now interacts specially with
monsters given the M_ARCHER flag (as fauns and satyrs are) so that - if
they have an opportunity for a ranged attack while on liquefied ground -
they will take it as opposed to having a small random chance to try to
keep moving.

They also have both Cause Fear and Mesmerise - in packs, this means a
not-very-magic-resistant player is going to find their movement options
severely limited!

The designs here could probably use some fine tuning, but I hope they
prove to be interesting enemies to fight.

TODO: the unique Pan!

--------------------------------------------------------------------------------
6e24bbf381 | Steve Melenchuk | 2013-05-26 20:56:16 -0600

Import some monsters from old Forest work.
This includes the dryad, who primarily annoys the player with Awaken
Trees (and has been tagged with M_MAINTAIN_RANGE to try to get them to
avoid the player while the trees pummel them to death - this might prove
to be too aggravating!), and the forest drake, who can travel through
the trees like rock worms with rock.

I'm omitting the leshy (essentially a giant with Summon Carniforms)
because I don't think it works in the new context of Forest. I also did
not give the forest drake its old acid spit because we already have
enough annoying acid-spitting monsters, and there's promise of work on
another breath attack that should work better for it.

--------------------------------------------------------------------------------
550ba40641 | Steve Melenchuk | 2013-05-26 20:56:16 -0600

Adjust the Forest monster weightings; add a few monsters in.
This is mainly intended to make the professional spriggans appear later,
though it also adds in some other monsters for the sake of variety. I've
tried to make them monsters you'd expect to see in a forest / jungle
environment (elephants, insects, centaurs - it is a *magical* forest
after all) in the effort to hold things down until Forest gets some
great monster ideas landed.

--------------------------------------------------------------------------------
5ad725fafd | Steve Melenchuk | 2013-05-26 20:56:16 -0600

Adjust level layouts for Forest.
This makes layout_twisted_forest the sole layout for Forest (for now),
and adjusts it to provide a border of trees in Forest.

Vaults that have been tagged for Forest previously are given standard
weights, and functionality has been added to the vault placer to allow
vaults placing in Forest to overwrite trees so that the vaults can
reliably place there.

--------------------------------------------------------------------------------
65f519f29f | Steve Melenchuk | 2013-05-26 20:56:16 -0600

Alternate Forest with Crypt.
Forest's entrance depth and absolute depth are now the same as Crypt's.

This also adds functionality to move Tomb's entrance to Forest if Crypt
isn't placed in the game, so Tomb always exists (at present).

--------------------------------------------------------------------------------
2e5ab92c51 | ontoclasm | 2013-05-26 21:48:19 -0500

Troll spectrals and zombies should use large tiles

--------------------------------------------------------------------------------
66dbd7b904 | ontoclasm | 2013-05-26 21:15:24 -0500

Tiles for the new Crypt monsters

--------------------------------------------------------------------------------
006c083f99 | David Lawrence Ramsey | 2013-05-26 20:14:57 -0500

Use random_choose_weighted() for Haunt's monster selection.

--------------------------------------------------------------------------------
89a0b92a55 | David Lawrence Ramsey | 2013-05-26 20:10:29 -0500

Add missing newline at end of file.

--------------------------------------------------------------------------------
cfce591b3e | David Lawrence Ramsey | 2013-05-26 20:10:29 -0500

Fix capitalization.

--------------------------------------------------------------------------------
4327004b20 | David Lawrence Ramsey | 2013-05-26 20:10:29 -0500

Properly handle jiangshi use of monster->number in monster_info.

--------------------------------------------------------------------------------
2ea7ea36db | David Lawrence Ramsey | 2013-05-26 20:10:29 -0500

Comment fix.

--------------------------------------------------------------------------------
e26147d599 | David Lawrence Ramsey | 2013-05-26 20:10:29 -0500

Fix wording.

--------------------------------------------------------------------------------
a113299bdb | Neil Moore | 2013-05-26 21:04:07 -0400

Make some functions static and fix a DGL compilation warning.

--------------------------------------------------------------------------------
2411ffc4a2 | Neil Moore | 2013-05-26 20:31:25 -0400

Remove the tournament warning.

--------------------------------------------------------------------------------
46c285e6f7 | DracoOmega | 2013-05-26 21:28:20 -0230

Replace eidolon pain with SPELL_MELEE
Given their attack flavour, this is a more interesting cantrip to
dilute their other spells with.

--------------------------------------------------------------------------------
a72490b38f | DracoOmega | 2013-05-26 20:58:15 -0230

Adjust lantern of shadows a little
Now that shadows themselves are a lot stronger, the lantern got an
automatic buff, but tweak it a little further. The rate of shadows
spawning now scales with evocations (rather than scaling with being
in lichform or being a mummy, a fact which I expect almost no one was
aware of in the first place). The rate is slower at low evocations than
it was previously, but can eventually grow higherer.

Additionally, make the shadows spawn 'wandering' rather than just
immediately following the player (meaning that they will automatically
start to attack nearby things once they appear).

Finally, actually scale the rate of shadow spawning with aut instead of
player turns.

--------------------------------------------------------------------------------
fe74702b59 | DracoOmega | 2013-05-26 20:58:14 -0230

Don't say that a monster 'appears from thin air' if its invis wears off while 
haloed
Since it was already plenty visible the turn before this.

--------------------------------------------------------------------------------
64a57661fa | DracoOmega | 2013-05-26 20:58:12 -0230

Adjust shadow spawning in some sprint maps
Shadows were removed from a few lists that contained mostly weak early
threats (which shadows no longer are). In a couple cases, I replaced them
with phantoms; in others I moved them 'deeper'. But I admit that I have very
little practical familiarity with sprint, so if anyone thinks this should be
handled differently, be my guest.

--------------------------------------------------------------------------------
619c0f8005 | DracoOmega | 2013-05-26 20:58:11 -0230

Greatly thin shadow population of one vault, reduce weight in another
Now that shadows are much tougher, the 35 that spawned in minmay_shadows
seems very excessive. The vault still contains a large amount, but only
about half what it once did. Shadows in most other non-early vaults (not
that there were many) where left as-is.

--------------------------------------------------------------------------------
554d76ad9d | DracoOmega | 2013-05-26 20:58:09 -0230

Revamp shadows; move them deeper in the dungeon
Instead of being irrelevant and unthreatening to virtually every
character, give shadows the ability to strike from, er, the shadows.

Shadows can now turn invisible for brief periods of time. While
invisible, their movement speed is increased, but their melee attack
in particular gets a special property. When a shadow attacks a foe who
cannot see it, the attack counts as a stab (250% normal damage) and
becomes AUTOMATIC_HIT. The shadow is automatically revealed after
performing this attack. Shadows get no movement bonus if they are
backlit, and their attack has no special bonus against a target that
can see invisible (though hitting it will still reveal the shadow to
other creatures). At the same time, this commit also boosts their base
attack to 14 (thus 35 on a successful stab). They do still have fairly
low hp, however (but possibly their AC should also be lowered?)

While unseen horrors already provide the threat of an invisible melee
monster at similar depths, I hope that the fact that the shadow cannot
surprise you in the same way (being visible when first seen and having
predictable movement), yet is still more threatening to allow to hit you
while invisible, will necessitate different tactics when handling them.
Also, it should offer another viable lower-tier monster for Crypt.

--------------------------------------------------------------------------------
827bc4177a | DracoOmega | 2013-05-26 20:52:16 -0230

Change draconian shifter spell set
Firstly, they lose banishment. By Zot, banishment was generally much more of
an annoyance to the player than a true threat (and sometimes even a helpful
escape!). It's not like the rest of the game has a shortage of sources of
banishment.

Replacing this is dimension anchor and blink allies encircling. Both of these
work with the existing translocations theme while offering what are hopefully
genuine dangers of a type a little different than anything else has.

Blink other goes from two slots to one slot, making them a little less likely
to use it, in exchange for it always working. (Dimension anchor should reduce
the frequency further, of course)

Their random blink is replaced with blink range, as the former had an annoying
tendancy to cause them to blink out of sight when the player was trying to flee
(as opposed to, say, blinking allies ahead to stop the player's escape). This
spell still sometimes does this, but generally behaves more intelligently.

Finally, the controlled blink in the escape slot is replaced with blink away.
Monster controlled blink apparently follows the very same code path as random
blink, which is a seperate issue, but also meant that it tended not to make 
sense
as an emergency spell.

--------------------------------------------------------------------------------
18c612ab68 | DracoOmega | 2013-05-26 20:52:15 -0230

Make blink other irresistable (as blink other close already is)
Shifters are the only user of this spell, and moreover they tend to
block their own use of it (or will) by the use of both dimension
anchor, and blinking other things between themselves and their target.
This, combined with general high player MR at the time means that it
rarely gets a chance to do something. Since the effect of the spell
is usually more mild than many hexes, it is probably okay to give it
a greater chance to actually work.

--------------------------------------------------------------------------------
ddbf6b2363 | DracoOmega | 2013-05-26 20:52:14 -0230

Don't cast blink other (close) on a creature affected by dimension anchor
Otherwise shifters tended to repeatedly waste turns casting a spell that
they themselves had just made their foe immune to.

--------------------------------------------------------------------------------
98d51d4d2f | DracoOmega | 2013-05-26 20:52:13 -0230

New monster spell: Blink Allies Encircling
This spell blinks a random 2-5 allies in LoS of caster, which are both
blinkable and not already adjacent to the caster's foe, into random
positions adjacent to the caster's foe.

The method by which it gives messages for monsters blinked from outside
LoS into LoS is a touch hacky, and probably a more general solution ought
to be implemented, but this seems to work for now.

--------------------------------------------------------------------------------
d2a9146ba3 | DracoOmega | 2013-05-26 20:52:12 -0230

New monster spell: Dimension Anchor
This is a resistable hex (though harder to resist than average) which
prevents the target from teleporting or blinking while it lasts.

It also cancels the effect of phase shift and prevents recasting it for
the duration. Gameplay-wise, this seems less relevant, but when the spell
talks of anchoring you in space, it seems that another spell which causes
you to partially leave the plane you're on should also be blocked. I am
not strongly attached to this facet of the spell if people consider it
bad, though.

--------------------------------------------------------------------------------
a573cb61e8 | DracoOmega | 2013-05-26 20:49:53 -0230

Fix enslaved convokers still recalling monsters hostile to the player

--------------------------------------------------------------------------------
5965638e32 | DracoOmega | 2013-05-26 20:49:52 -0230

Red devil adjustments
Continuing through the 4s, give red devils their own little unique
quirk and a few stat adjustments.

Inverse to blue devils, they have a chance of hopping backwards from
adjacent foes, if wielding a reaching weapon, and attacking with it
as they go. To complement this, they now always spawn with a weapon
(instead of only 2/3 of the time), and moreover consider polearms to
be signature weapons, so as to not nerf their own quirk with something
they found on the floor. The chance to spawn with a demon trident has
been scaled down to compensate, remaining near to old levels.

Also increase their HD a little, reduce AC, and increase EV slightly.

--------------------------------------------------------------------------------
b3d4b107f5 | DracoOmega | 2013-05-26 20:49:51 -0230

Give blue devils a swooping attack (and nudge up their xp modifier)
From a range of 4, blue devils can swoop at their foe, moving past
intervening creatures and the foe itself, landing on the other side,
and immediately performing a melee attack. (Flavor-wise, the attack
happens DURING the movement, but this is the internal action order).
The path must be free of other movement obstacles and the destination
unoccupied.

This will give one of the plainest demons a little something unique,
and also makes them rather good at cutting off retreat down corridors...

--------------------------------------------------------------------------------
e18dc7ca1b | DracoOmega | 2013-05-26 20:49:49 -0230

Correct an error in some error messages

--------------------------------------------------------------------------------
8b20ddbdfa | DracoOmega | 2013-05-26 20:49:48 -0230

Give orange demons a new trick
Instead of random stat poison on their stinger, make the stinger have
a 50% chance of applying weakness upon a successful poisoning. Moreover,
give the stinger attack reaching (but not their other attack). Hopefully
this will give a rather boring and unnotable demon a touch more relevance
in some situations.

--------------------------------------------------------------------------------
b1dd13b75e | DracoOmega | 2013-05-26 20:49:47 -0230

Correct poison_monster sometimes returning false when more poison was applied

--------------------------------------------------------------------------------
2190e9bcd5 | DracoOmega | 2013-05-26 20:49:46 -0230

New status effect: Weak
This is in essence an anti-might: a reduction in the actor's melee damage
output while the effect lasts.

Currently it reduces monster melee damage by 33% (exactly cancelling out
monster might), and player melee damage by 25%. This is not the inverse of
player might, but I feared a subtractive reduction might be both too harsh
early on while too ignorable later on. Quite possibly the numbers will need
adjusting after playtesting.

One potential concern is that its name overlaps somewhat with the internal
naming for death from strength loss (ie: DEATH_BY_WEAKNESS), but I am not
sure that it is ever displayed to the player by that name? (The status light
is Collapsing, after all). If someone objects and has a better name to offer,
be my guest.

Elyvilon's Purification ability will remove weakness, though currently this
is the only way to do so, aside from waiting it out.

--------------------------------------------------------------------------------
96ea5a7a9b | DracoOmega | 2013-05-26 20:48:19 -0230

Greatly reduce flayed ghost frequency in Vaults
Probably more changes to undead distribution throughout the rest of the
dungeon will be warranted, but I'm going to wait for more playtesting
first.

--------------------------------------------------------------------------------
494778493b | DracoOmega | 2013-05-26 20:48:18 -0230

Buff flying skulls
Only increase their hp very slightly, but improve damage and accuracy
quite a bit more.

They probably still won't be very threatening (and this is fine), but
perhaps now they may actually ocassionally do something (maybe).

--------------------------------------------------------------------------------
60095186d5 | DracoOmega | 2013-05-26 20:48:17 -0230

Add two new populator functions for Crypt
These functions populate new Crypt levels with a few additional monsters
in a way that standard generation does not.

The first adds several zombies/skeletons that are completely random in
base type, instead of respecting absdepth as standard generation would.
Since the mon-pick changes, the population distribution of zombies in
Crypt (elsewhere too, but especially there) became very homogeneous,
overwhelmingly consisting of things like stone giants, frost giants,
various dragons, and overall things that have a lot of hp but few unique
characteristics, even from each other. Several of the more interesting
zombie types, such as snapping turtles and anacondas, became entirely
impossible to encounter there.

While the more random zombie selection will contain many creatures that
are harmless, this is also intentional - the pressence of assorted zombies
is perhaps a flavor element even moreso than a mechanical one, and I think
it is a fine thing if Crypt is 'the place where you can encounter every
kind of zombie', so long as this doesn't skew encounters too much towards
fights against slow things with lots of hp (which these zombies will do far
less than present ones). And even harmless zombies can sometimes provide
movement restrictions that will synergize with more active ranged threats.
Also, it distinguishes zombies in necromancer bands from the ones wandering
around the floor, as the former do respect absdepth and will be beefier and
distinct in variety from the latter.

Secondly is a function which adds a few lost souls to each level, increasing
somewhat in number with depth. These are created wandering rather than sleeping
(as is the default for monsters generated with the level) since roving lost
souls tend to be a lot more interesting than ones you can encounter asleep
(and thus quite possibly encounter on their lonesome and dispatch without
them having any chance to do anything). One potentially hacky aspect is that
their placement does not respect no_monster_gen, in large part so that Crypt:$
encompass vaults don't spawn without them, though they are also a 
'complementary'
monster that provides support to the existing encounters in a vault without
creating any on its own and so seems safer than most to add this way. Possibly
this bit should be changed and they should just manually be added to the
endvaults, though.

--------------------------------------------------------------------------------
6fa2269674 | DracoOmega | 2013-05-26 20:48:15 -0230

Overhaul Crypt monster weights
Rather than some adjustments here and there, this revises Crypt monster
rarities from scratch. Highlights include notably fewer skeletal warriors,
an even greater reduction in large zombies/skeletons, and more prominance
of existing and revamped undead that are more interesting, as well as some
necromancy-themed humanoids. Overall there should be a much greater variety
of monsters presenting a greater range of threat types.

I have run population stats and tweaked weights in response to this data
numerous times, but more real playtesting is clearly needed for a change of
this scale; it is quite likely weights will need multiple further adjustements.
At the moment, it is possible I have erred on the side of 'too difficult', but
that at least seems a better extreme to swing to than the present's 'too 
boring'.

--------------------------------------------------------------------------------
b00a7cf81a | DracoOmega | 2013-05-26 20:48:14 -0230

Don't give message for AF_VAMPIRIC attacks unless it actually heals the monster

--------------------------------------------------------------------------------
b3015767a2 | DracoOmega | 2013-05-26 20:48:13 -0230

Make ancient champions spawn with a band only half the time

--------------------------------------------------------------------------------
1c347d0a92 | DracoOmega | 2013-05-26 20:48:11 -0230

Randomize the starting 'speed burst' clock for sixfirhy and jiangshi
Since the order of skipped vs. active turns is deterministic, this
meant that bands would previously all start and stop in sync with
each other. Now their movement will instead be staggered.

--------------------------------------------------------------------------------
003dbf3ca5 | DracoOmega | 2013-05-26 20:48:10 -0230

New monster: Jiangshi
These are a comparatively straightforward melee threat to help shore
up and vary the backbone of Crypt after the reduction in skeletal warriors
and major zombies. Moreover, they have faster-than-average movement, a
quality in short supply in the branch.

They have two vampiric claw attacks and sixfirhy-like movement, except more
erratic and slower overall (accounting for the turns they skip, they have
an effective movement speed of a little under 16 and an action speed around
9.5)

This commit also replaces the plain vampires in vampire mage bands with
jiangshi.

--------------------------------------------------------------------------------
650cef230d | DracoOmega | 2013-05-26 20:48:08 -0230

Necromancer / vampire wizard band adjustments
Reduce the size of necromancer bands a little (but not for Josephine),
and replace the chance for necrophages with a somewhat larger one for
simulacra (as the former stop being remotely threatening long before
you run into necromancer bands).

Remove this band of zombies from vampire mages altogether, and instead
give them a 1 in 3 chance to spawn with 2-3 normal vampires.

--------------------------------------------------------------------------------
c9281fc1c2 | DracoOmega | 2013-05-26 20:48:07 -0230

Use a dbname for Meatsprint lost souls, so as not to conflict with regular ones

--------------------------------------------------------------------------------
468653c665 | DracoOmega | 2013-05-26 20:48:06 -0230

Make plague shamblers sometimes spawn in ghoul bands

--------------------------------------------------------------------------------
8ef7832e80 | DracoOmega | 2013-05-26 20:48:04 -0230

Don't summon submerging monsters in a submerged state

--------------------------------------------------------------------------------
6285cca1a7 | DracoOmega | 2013-05-26 20:48:03 -0230

Allow deep elf death mages to summon lost souls
Since these were by far the least interesting and threatening of the
high tier deep elves, let's give them a new trick, and one that should
synergize well with the other dangerous spellcasting elves.

Summoned lost souls operate the same in basically all respects as
normal ones: notably if they create a spectral from a living being, this
spectral will not time out on its own. However, this is neither scummable
nor unlimited in that these spectrals are never worth experience (even
from non-summoned souls), nor can souls save other spectrals (so a given
elf can be revived this way at most a single time). In my opinion, it is
better to give the player an impetus to deal with the soul's effects
instead of ignoring the revival and just backing away afterward while it
quickly disappears, plus this gives parity with the soul's effect on an
undead monster (which merely heals an existing creature and thus cannot
'time out' in the same fashion).

--------------------------------------------------------------------------------
7db2b315a1 | DracoOmega | 2013-05-26 20:48:01 -0230

Don't let lost souls save monsters that are dismissed, reset, or banished

--------------------------------------------------------------------------------
ff9d1bc998 | DracoOmega | 2013-05-26 20:48:00 -0230

Prevent lost souls sacrificing themselves to save summons or no-exp creatures
They will also not consider these creatures allies for the purposes of
flickering away from or towards.

--------------------------------------------------------------------------------
247f55b232 | DracoOmega | 2013-05-26 20:47:59 -0230

Give deep dwarf death knights a band of mixed undead instead of deep dwarves
The band has a 50% chance of a single higher-tier Yred gift (either a ghoul
or a flayed ghost), and then a small mix of lower level gifts.

--------------------------------------------------------------------------------
abfeb2ef8c | DracoOmega | 2013-05-26 20:47:58 -0230

Buff deep dwarf death knights
With weakened pain mirror comes strengthened melee. HD and accuracy
are boosted slightly and melee damage a little more. Additionally,
starting weapons are improved (previously, their most common starting
weapon was a lowly hand axe, of all things).

Hopefully this should shift them from 'mostly harmless, but sometimes
you have to avoid hitting them for a long time' into more dynamic and
less annoying threats.

--------------------------------------------------------------------------------
ccf1f1999e | DracoOmega | 2013-05-26 20:47:56 -0230

Add a missing break

--------------------------------------------------------------------------------
3cbb59b6da | DracoOmega | 2013-05-26 20:47:55 -0230

Adjust monster pain mirror
Encouraging players to wait around long periods while a mostly-harmless
monster pokes them, only to have it immediately recast pain mirror anyway,
tends not to lead to fun gameplay.

This commit reduces pain mirror duration from 20 turns to 7-9 turns and
adds a 15-21 turn cooldown before it can be cast again (so 6-14 turns
after it wears off). Additionally, it will reflect only 2/3 of the damage
suffered instead of all of it. Hopefully this will make both waiting out
and powering through the effect more viable and allow the active threats
of pain mirroring monsters to be proportionally stronger.

--------------------------------------------------------------------------------
de2b402388 | DracoOmega | 2013-05-26 20:47:53 -0230

Allow spectrals to fire ranged weapons
In most cases this means nothing, since they can't actually pick them up,
but this allows lost souls cloning archers to actually shoot the weapons
they start with.

--------------------------------------------------------------------------------
b1d49dd0df | DracoOmega | 2013-05-26 20:47:52 -0230

New monster: lost souls
These are wandering confluxes of necromantic power that have no offense
of their own, but can sacrifice themselves to 'revive' allied monsters
near them at the moment they are killed.

If a non-zombified undead is killed while in LoS of an allied lost soul,
the soul will die instead and the undead will be restored to full hp (and
have its status effects reset). If a zombifiable living creature dies while
in LoS of an allied lost soul, instead the soul will assume its likeness,
turning into a spellcasting spectral of the same type with 'fake' (as with
shadow creatures) copies of the original's gear.

Lost souls move quickly and attempt to maintain range, but are otherwise
fragile. If they find themselves near foes but no allies they could aid,
they will flicker out of the living world and reappearing near some other
ally elsewhere in the level (and temporarily submerge into the air there).

Tactically, they can serve to augment singular threats and also create
situations where the player might rather choose to ignore the most
threatening creatures so as to force the lost soul to sacrifice itself
for a harmless one, or to kill the soul directly.

--------------------------------------------------------------------------------
4cf0e864b9 | DracoOmega | 2013-05-26 20:47:49 -0230

Don't give messages for LRD shattering things out of LoS
One edge case: you will still get a message for walls being targeted
by LRD from the other side (ie: when you can't actually see anything
being done to them). It's unclear if there's any reasonable way to
determine this case at the point where messaging is done, unfortunately.

--------------------------------------------------------------------------------
c7dba4fc16 | DracoOmega | 2013-05-26 20:47:48 -0230

Fix LRD explosion tracing being player-centric
LRD uses LoS checks to prevent an explosion affecting the opposite side
of a wall that is targeted, but this check was always done from the
player's point of view, rather than the caster's. This meant that monsters
casting LRD at a spot the player could not see would often produce no
explosion at all, or could even produce an explosion mysteriously solely
on the other side of the wall (if you were standing there to witness it).
It should now properly operate from the perspective of the caster, be they
player or monster.

--------------------------------------------------------------------------------
ca73ec06f4 | DracoOmega | 2013-05-26 20:47:47 -0230

Refactor monster cloud ring code (ie: Asmodeus)
The ring of clouds is now placed at the end of the monster's action,
rather than the start of it. This means that if Asmodeus moves, the
ring of flames will not be centered at his old location (with an
Asmodeus-sized hole in the middle) but instead surround his new one.

Also, new clouds will overwrite old ones of the same type, preventing
holes from periodically forming in the ring while stationary.

--------------------------------------------------------------------------------
584eef6395 | DracoOmega | 2013-05-26 20:47:45 -0230

New monster: Revenant
These are powerful undead beings, able to manipulate the ghostly flames of
departed and lingering souls. They should be roughly on par with a lich in
terms of danger level, though the threats they present are rather different.

Firstly, they can create clouds of ghostly flame which deal partially
rN-resistable damage (though undead are fully immune). These are less powerful
than flame or freezing clouds, but the clouds themselves will periodically
spawn random spectrals (with a quite short duration) as the echoes of the dead
rise and wander from the flame before fading away once more.

Secondly, they can hurl ghostly fireballs. These are also partially
rN-resistable and check only half AC, but significantly the blast from them
actually heals undead caught within it instead of harming them.

Finally, they possess dispel undead (giving them an actual direct damage option
that works against undead players) and can blink away as an emergency spell.

Also worth noting is that spectrals are able to push past revenants, which 
allows
them to tank hits on the revenant's behalf while the latter can hurl blasts from
behind which heal the blocker and damage the player in the process. Consequently
it is often best to fight them outside of corridors, so as to avoid getting 
pinned
by a tide of spectrals (a tactically-interesting property that only a few 
monsters
possess)

--------------------------------------------------------------------------------
42b2cecf9e | DracoOmega | 2013-05-26 20:40:51 -0230

Make spectral creatures normal speed instead of zombie speed
While zombies tend to be thematically slow, ghostlies are not necessarily
so, and virtually none of Crawl's other ghostly monsters are slower than
normal speed (and some are even faster).

This is effectively a buff to Death Channel, but the spell is rarely used
enough that a buff mightn't go astray and it further differentiates them from
mundane zombies (a little, anyway). Spectral creatures created by Yred's
Enslave Soul were already normal speed.

--------------------------------------------------------------------------------
b0a4b68e82 | DracoOmega | 2013-05-26 20:40:49 -0230

Reorder the Yred gift list slightly
Now that some monsters on it are noticably stronger, bump them up the
list a little.

--------------------------------------------------------------------------------
afa19f2853 | DracoOmega | 2013-05-26 20:40:48 -0230

Remove plague shamblers from Yred's gift list
It would be rather annoying to have to watch out for your allies exploding
into miasma when standing next to them, to say nothing of the power of the
effect itself.

This also removes them from a vault where they were flavored as part of a
death knight's entourage.

--------------------------------------------------------------------------------
a75d3a8813 | DracoOmega | 2013-05-26 20:40:46 -0230

Rotting hulk -> Plague shambler
This improves the monster's base stats and gives it a few new tricks
(since it was basically harmless and meaningless before)

In addition to the rename, they are now speed 10, inflict more melee
damage, and have more hp. Additionally, when their melee attack
successfully inflicts disease, it also causes fits of violent retching
that prevent potion use or eating for several turns (much shorter in
duration than the sickness itself).

Finally, whenever they are killed, they release a cloud of miasma that
spreads one tile per 10 aut until a certain number of clouds are placed
or it reaches its maximal radius (this means that it will spread much
further in corridors than open ground). Stepping aside from the miasma
should be straightforward if you are at least normal speed (especially
in open areas), but might sometimes require special measures if you are
slowed or pinned.

--------------------------------------------------------------------------------
d35877f49f | DracoOmega | 2013-05-26 20:29:46 -0230

Fix an error with cloud spreader radius calculations

--------------------------------------------------------------------------------
a2da900e3c | DracoOmega | 2013-05-26 20:29:44 -0230

Add cloud spread markers
These are map markers that create incrementally spreading clouds from
a source point, with a given maximal radius, total cloud volume, and
rate. New clouds will stop being produced when either the specific
number have been created, or all available areas within the max radius
are filled (this means that clouds can be made to flood corridors to
a wider distance than the same cloud volume would produce on open
terrain, similar to regular cloud spells)

An agent can be specified, and blame will be properly assigned based on
this, even if the agent dies before all the clouds are created.

--------------------------------------------------------------------------------
5cbece94f4 | DracoOmega | 2013-05-26 20:24:52 -0230

Buff vampire mages a little
Increase their HD and hp slightly, swap one copy of animate dead for
vampiric draining.

--------------------------------------------------------------------------------
3baeb6b951 | DracoOmega | 2013-05-26 20:24:51 -0230

Improve monster vampiric draining power, make it heal more
The formula for monster vampiric draining was a little odd, and resulted in
even high-HD casters having very low power (eg: deep elf death mages cast it
at 24 power). Now it should hopefully be a little more noticable (though
probably still not very strong in most cases)

--------------------------------------------------------------------------------
cbd2c05c13 | DracoOmega | 2013-05-26 20:24:50 -0230

Remove flayed ghosts from haunt (both player and monster versions)
Even with the previous haunt nerf, flayed ghosts are generally too strong
now compared to the other possibilities. This is especially true for monster
haunt, where they could nuke a considerable chunk of the player's hp while the
other ghostlies constrained movement and prevented you from either reaching
the flayed ghost to kill it (and end the effect), or withdrawing out of sight.

--------------------------------------------------------------------------------
0c63efffb3 | DracoOmega | 2013-05-26 20:24:49 -0230

Adjust haunt behavior
Since the buffs to various ghostlies have pushed the power of haunt upward,
compensate with a flavorful nerf that incorperates the unique targeting
behavior of the spell.

The ghosts summoned by haunt will now fixate upon the target you summon them
around, ignoring player commands and pursing only that target. When the haunt
target dies, the remaining ghostlies will expire within a few turns, regardless
of how much duration was otherwise remaining (though they will be free to
attack other targets during this short window)

Hopefully this doesn't make it too tedious to use, but making it so the target
is no longer an incidental starting point to a large lingering army seems a
positive thing.

--------------------------------------------------------------------------------
2cc84d11c5 | DracoOmega | 2013-05-26 20:19:48 -0230

Update phantasmal warrior description

--------------------------------------------------------------------------------
6773f044c5 | DracoOmega | 2013-05-26 20:19:46 -0230

Make phantasmal warrior's attack ignore shields and check only half AC
Flavored as the phantasmal weapons they carry being only partially
grounded in physical reality, their attacks pass clean through shields
and are less impeded by contact with heavy armour.

--------------------------------------------------------------------------------
1f7be3423f | DracoOmega | 2013-05-26 20:19:44 -0230

Promote ancient champions to a regular monster
These have the same spell set options as the original vault monsters, though
generate with somewhat worse equipment (rare weapons are not possible, egos
are not guaranteed, though their weapons still have a good chance of one even
if their armour does not). They also come with a skeletal warrior band.

At the moment, they don't generate anywhere, but I plan to add them as a
possibility in Crypt (and only Crypt) when the revamp of monster spawn rates
there is done.

--------------------------------------------------------------------------------
ad3442f61c | DracoOmega | 2013-05-26 20:19:41 -0230

End the flayed effect if you transform into something that isn't living

--------------------------------------------------------------------------------
04eac79980 | DracoOmega | 2013-05-26 20:19:38 -0230

Let flayed ghosts flay their victims
Flayed ghosts can now inflict the anguish they experienced in life upon
the living. This is a smite-targeted ability that causes terrible sympathetic
wounds to appear upon a living foe's body, inflicting irresistable damage
that scales with max hp, though will never reduce the target to less than
~15-20 hp.

Critically, the actual injuries are illusory, the pain and weakness of them
maintained only through contact with the ghost's tortured spirit. Killing the
flayed ghost will instantly end the effect and heal all hp lost to it (and clean
up all associated blood splatters), as will spending some number of turns out of
the ghost's presence.

--------------------------------------------------------------------------------
02c522304c | DracoOmega | 2013-05-26 20:09:58 -0230

Buff eidolons
Despite being rare and deeper monsters, each of their attacks was
only the same power as a common wraith. Now they do appreciably more
melee damage and can also cast bolt of draining (as they lacked any
noticable ranged attack to combo with their fear).

Fear has also recieved the 50% power boost that player fear did a while
back; though they will cast it somewhat less frequently, it should be
more effective when they actually do (also your screen will flash less).

For now, they retain pain as a cantrip-like effect, but possibly this
should be evaluated in future.

--------------------------------------------------------------------------------
687d9cbe72 | DracoOmega | 2013-05-26 20:09:57 -0230

Buff phantasmal warriors
Previously one of the least notable monsters in the whole game, phantasmal
warriors gain two new tricks: their melee attack now has a chance to lower
the defender's magic resistance (the same as a scroll of vulnerability),
and they can blink_close as a natural ability when more than two spaces
away from their foe.

Also, increase their melee damage somewhat (though at least part of this
is in compensation for losing the draining damage on their attack).

--------------------------------------------------------------------------------
559d997f5a | DracoOmega | 2013-05-26 20:09:55 -0230

Make wraiths, shadow wraiths, and eidolons drain speed instead of xp
As part of differentiating the less interesting undead, give these monsters
a rN-resistable low-duration slow with their melee instead of the usual
xp drain. Being a notable support effect that is fully-resistable with rN+
(like pain and agony) may hopefully also increase the value of rN gear in
areas where these monsters are frequent.

--------------------------------------------------------------------------------
c0ebeb2b09 | DracoOmega | 2013-05-26 18:58:39 -0230

Give merfolk aquamancer bands water elementals instead of ice beasts
Now that water elementals are more interesting, this is a flavorful place
for them to show up, and there will be added synergy with primal wave, too.

--------------------------------------------------------------------------------
44a58a4fb8 | DracoOmega | 2013-05-26 18:58:38 -0230

Let water beams pass harmlessly through water elementals

--------------------------------------------------------------------------------
ede4ba4f02 | DracoOmega | 2013-05-26 18:58:37 -0230

Adjust vaults related to elemental evokers
Mostly this is just because of the renaming of stone of earth elementals
and air elemental fan, but also adds phial of floods as a possibility in
situations where all 3 other evokers were already present.

--------------------------------------------------------------------------------
a08ef8a4c6 | DracoOmega | 2013-05-26 18:58:36 -0230

Make curiously-silent elemental evokers generate appropriate noise

--------------------------------------------------------------------------------
ad48c6f165 | DracoOmega | 2013-05-26 18:58:35 -0230

Adjust misc acquirement code
Remove the elemental skill weighting for lamp of fire and fan of
gales, since they no longer use the skill. Allow acquiring phial
of floods.

The way this code works should probably be restructured so as to
allow more even weighting of comparable items, but this will do for
the moment.

--------------------------------------------------------------------------------
fd17523c78 | DracoOmega | 2013-05-26 18:58:34 -0230

Update descriptions for the elemental evokers and rename enums

--------------------------------------------------------------------------------
e5757c1995 | DracoOmega | 2013-05-26 18:58:33 -0230

Add a note to elemental evoker descriptions explaining recharge mechanics

--------------------------------------------------------------------------------
ee99b9cde0 | DracoOmega | 2013-05-26 18:58:31 -0230

Don't make cancelled elemental evokers cost a turn

--------------------------------------------------------------------------------
347deec1c8 | DracoOmega | 2013-05-26 18:58:30 -0230

Refactor evoker elemental calculation

--------------------------------------------------------------------------------
6dae2d3820 | DracoOmega | 2013-05-26 18:58:29 -0230

Implement elemental evoker recharge via xp gain
The 4 elemental evokers (fan of gales, lamp of fire, stone of tremors,
and phial of floods) now expend themselves after one use an can be
recharged only by gaining exp while they are in the player's possession.

The formula used almost certainly needs rewriting, as this is only one
step up from a placeholder, but it will hopefully scale with player xl
and evocations skill in a sane enough way to test.

For now, exp gained is split among all evokers, meaning that carrying
two causes each to recharge twice as slowly. I am not certain this is
a good thing, but is up for future adjustment.

--------------------------------------------------------------------------------
7f46288d89 | DracoOmega | 2013-05-26 18:58:27 -0230

Fix octopodes and grey draconians being able to swim in forms that normally 
cannot
Merfolk in spider form (and similar) already could not, but these checks
did not function properly for octopodes and grey draconians.

--------------------------------------------------------------------------------
20ff35e630 | DracoOmega | 2013-05-26 18:58:26 -0230

Make fire elemental and fire vortex melee pure fire damage
Instead of needing a physical hit to pass defender AC before any
fire damage is dealt (and a very small one in the case of fire
elementals), make the entire melee blow fire-based. This does not
entirely ignore AC, but for fire elementals in particular, it
should keep them from being nearly nullified by opponents with
any AC to speak of and be a reasonable buff to their damage output
against most opponents without rF+ overall.

--------------------------------------------------------------------------------
0aae6b69fd | DracoOmega | 2013-05-26 18:58:25 -0230

Make the water created by primal wave temporary, create more on average

--------------------------------------------------------------------------------
74d61dde25 | DracoOmega | 2013-05-26 18:58:24 -0230

Give water elementals a drowning attack, adjust stats
Water elementals now have a chance to engulf any target they hit in
melee with a mass of water, acting similarly to silence against targets
that are neither unbreathing nor water-breathing, as well as inflicting
moderate asphyxiation damage against these same types.

The water can be freely withdrawn from, but creatures that are not natural
swimmers will take 50% longer than normal to step away (similar to when they
move through shallow water normally, though less variable). Killing the
elemental also immediately ends the effect, and players get a one-turn
immunity from being reengulfed after recovering or escaping.

Also, increase water elemental AC and hp a little (their old AC in
particular was oddly pathetic), but lower their melee damage somewhat.
They should now have overall performance in a similar league to the more
interesting elementals while having favorable matchups against differing
types of targets, and hopefully offer an interesting support monster to
be used in wider cirumstances.

--------------------------------------------------------------------------------
b4d1501b8e | DracoOmega | 2013-05-26 18:58:22 -0230

Correct a comment

--------------------------------------------------------------------------------
5062277155 | DracoOmega | 2013-05-26 18:58:21 -0230

Fix inconsistencies with water damage resistance
Previously the asphyxiation damage from BEAM_WATER was resisted by
different criteria for both monsters and players (and incomplete ones
at that). Monsters used pure asphyxiation resistance, meaning that
water-breathing creatures like merfolk or even fish took full damage
from it. Now instead it is resisted by either unbreathing, asphyxiation
resistance, or being aquatic. For players, resistance did account for
being a merfolk, but not for being an octopode or in ice form (which
it now does).

--------------------------------------------------------------------------------
bfe96087dd | DracoOmega | 2013-05-26 18:58:20 -0230

Add phial of floods
A water elemental evoker, following the cycle of fire, air, and earth
already established.

When evoked, the phial releases a torrent of water with an effect similar
to primal wave: an aimed beam of water will damage and potentially knock
back your target, and a pool of temporary shallow water will be created
around this endpoint. Up to 3 water elementals will be created in this
pool (dependent on evocations), and the amount and duration of the water
also scales with skill.

--------------------------------------------------------------------------------
00a79ed0d4 | DracoOmega | 2013-05-26 18:58:18 -0230

Tag door seal markers for removal at the next major version bump

--------------------------------------------------------------------------------
4e8a9ab0e8 | DracoOmega | 2013-05-26 18:58:17 -0230

Refactor warden door seals to use temporary terrain change code
This should have no effect on their functionality, but further
unifies related code.

--------------------------------------------------------------------------------
e87be793bb | DracoOmega | 2013-05-26 18:58:16 -0230

Refactor tomb effects to use terrain change markers
In addition to unifying code, this also has the effect of making
tombs created over shallow water restore shallow water when they
disappeared and Zin prisons restore the proper underlying feature
if the walls are forcibly destroyed instead of expiring (ie: with
LRD or shatter).

--------------------------------------------------------------------------------
1311a4fdf4 | DracoOmega | 2013-05-26 18:58:15 -0230

Make nuke_wall respect temporary terrain changes and restore old features

--------------------------------------------------------------------------------
cdd62056be | DracoOmega | 2013-05-26 18:58:14 -0230

Add routines for temporary terrain manipulation
Each terrain change specifies a desired feature, a duration (which may
be INFINITE_DURATION), a terrain change type (used for reference and
stacking at the moment), and optionally a source monster (if one is
specified, the terrain change is undone upon the monster's death)

A temporary terrain change will automatically revert to the original
underlying feature when it times out, or the source monster is killed.

There can only be one terrain change of a given type at a single
location. A new change of the same type will overwrite the old one
if it either changes the terrain to a different feature type than the
old one, or has a greater duration than remains of the old one (this
will change the associated source monster, if appropriate).

--------------------------------------------------------------------------------
86487b697a | DracoOmega | 2013-05-26 18:58:12 -0230

Add map markers for temporary terrain changes
The supporting code to allow them to actually do things will be
forthcoming.

--------------------------------------------------------------------------------
45d14c8255 | DracoOmega | 2013-05-26 18:58:11 -0230

Revamp stone of earth elementals
As part of the elemental evoker revamp, the stone of earth elementals is
renamed stone of tremors, and given a new effect on an xp-based recharge.

When evoked and pressed against an adjacent rock wall, a shockwave will
travel along the surface of this wall, curving as the rock does, and damaging
creatures standing next to it with falling rubble and (rarely) shafting them.
Some walls along the shockwave's path will also be destroyed and from these
up to 3 earth elementals will be summoned (dependent on evocations).

--------------------------------------------------------------------------------
4633ff2116 | DracoOmega | 2013-05-26 18:58:10 -0230

Revamp fan of air elementals
As part of the elemental evoker revamp, rename the fan of air elementals
to fan of gales and give it a new effect on an extended recharge.

Evoking the fan produces a powerful gust of air around the player which
blows away nearby creatures and clouds, then summons up to 3 air elementals
(dependent on evocations) provided the space is not overly enclosed.

The distance a creature is pushed depends on a combination of evocations
skill, creature size (larger creatures are harder to push), whether the
creature is airborn (flying creatures are easier to push) as well as the
creature's distance from the player (the winds decrease in strength as
distance increases)

--------------------------------------------------------------------------------
eb3766b1f8 | DracoOmega | 2013-05-26 18:58:08 -0230

Don't include duplicate entries in the beam path taken if it stops at a wall

--------------------------------------------------------------------------------
c2c1999408 | DracoOmega | 2013-05-26 18:58:07 -0230

Revamp lamp of fire
As part of a major reworking of the elemental summoning misc items,
change the lamp of fire's effect.

All elemental summoning misc items now summon more than one elemental at
once (dependent on evocations), are not reliant on elemental magic skill,
no longer require specific nearby terrain to function (in most cases) and
have an item-specific added effect to accompany the summoning, but also
have a longer xp-based based recharge before they can be used again. In
other words, they are powerful tools that can be used only ocassionally.
(The code controlling recharging will follow later)

The lamp now fires up to 3 (depending on evocations) trails of chaotic
meandering flame in the general direction you aim. These inflict some
damage and leaves flame clouds in their wake, spawning an elemental at
the end of each trail provided some space has been given for the path
to follow (ie: you didn't fire it against a corner)

--------------------------------------------------------------------------------
e7c11d7fbf | Pete Hurst | 2013-05-26 21:53:59 +0100

Remove enum left in accidentally

--------------------------------------------------------------------------------
aebbbe95ad | Pete Hurst | 2013-05-26 21:30:06 +0100

Make jumping spiders jump instead of blink
- Because they blinked they could go through grates
  (Mantis #5590) which didn't make sense for physical movement

- Verb was wrong and purple clouds appeared despite some special-
  casing to prevent this; because crawl_state.which_mon_acting()
  actually returns an inaccurately null value during monster
  spellcasting and some other contexts. That function is only designed
  for use in handling "comes into view" messages properly and needs
  fixing to be fit for any general purpose.

- "Appears out of nowhere" message was inaccurate, this would
  only have been seen rarely, but "leaps into view" is better

--------------------------------------------------------------------------------
ec3c20f3bb | Pete Hurst | 2013-05-26 21:30:05 +0100

Fix a range check error caused by cloud overlays

--------------------------------------------------------------------------------
163709b89d | Neil Moore | 2013-05-26 15:49:02 -0400

Simplify an options guide example.

--------------------------------------------------------------------------------
d8c861177e | Neil Moore | 2013-05-26 15:39:18 -0400

Make list_opt = foo reset the list, not append.
We have been warning of the impending change since 0.11.

Also remove the warn_list_append list and associated lua function,
since it was used only to implement the aforementioned warning.

--------------------------------------------------------------------------------
7ec7b53325 | David Lawrence Ramsey | 2013-05-26 14:07:24 -0500

Fix setting profane servitors' god to Yred; MONS_ANGEL is their genus, not 
MONS_PROFANE_SERVITOR.

--------------------------------------------------------------------------------
18758ee4e4 | Adam Borowski | 2013-05-26 08:20:32 +0200

Reject attempts to place dummy monsters.
Before, some would crash (player, sensed, merged slime creature, ...), some
were allowed (hell lord).

--------------------------------------------------------------------------------
3b50b19d90 | Adam Borowski | 2013-05-26 08:20:32 +0200

A monster flag M_CANT_SPAWN, to mark dummy monsters.
Genus-only, recolouring, etc.  Not for "dummies" which are valid monsters
otherwise.

This is mostly redundant with M_NO_POLY_TO which it implies, for now.

--------------------------------------------------------------------------------
dce090dbc6 | David Lawrence Ramsey | 2013-05-26 00:46:23 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
c3f788d8aa | David Lawrence Ramsey | 2013-05-26 00:45:19 -0500

Fix punctuation.

--------------------------------------------------------------------------------
9d8ad9cd5d | Pete Hurst | 2013-05-26 06:26:22 +0100

Use a delayed_action_fineff for Kirke and Pikel death (Mantis #5306)
The issue here is that gods such as TSO *may* give penance if Kirke or Pikel 
are killed
with an area effect, since the hogs/slaves suddenly become penance-inducing 
targets
halfway through evaluating affected monsters.

This is a) inconsistent because it depends on the sequence of monster 
evaluation and b)
not really in the spirit of the penance because at the time you thought you 
were damaging
things you were allowed to.

Kirke and Pikel were already using a daction (to support off-level conversion 
of hogs/slaves),
but somewhat ironically dactions are actually executed once instantly and then 
again later on.

The new delayed_action_fineff can be used for any daction to postpone the 
initial execution
until after other effects finish. This means all damage will occur to hogs or 
bound slaves
*before* the death causes any still alive to get converted back, avoiding the 
penance issue.

--------------------------------------------------------------------------------
fca2993bc9 | Adam Borowski | 2013-05-26 07:00:50 +0200

Zombie settings for a few formerly unraisable monsters.
These are ones that should be uncontroversial.

--------------------------------------------------------------------------------
55b8bbff7c | Adam Borowski | 2013-05-26 06:05:02 +0200

Add a few checks for mon-data to --test.
It currently does not validate, as I'm introducing a new requirement:
any monster that drops a corpse must work with Simulacrum.

It's debatable which ones should allow zombies as well, but at least
there's now support for having spectrals/simulacra/skeletons but no
zombies.

The word "zombifiable" is quite ambiguous, too.

--------------------------------------------------------------------------------
43a2646eb2 | Adam Borowski | 2013-05-26 05:57:54 +0200

Allow raising skeletons (but no zombies) of ghoulies.
Like any monsters of non-natural holiness, such skeletons won't generate
normally.

--------------------------------------------------------------------------------
1b4683e88b | Adam Borowski | 2013-05-26 05:23:58 +0200

Fix a very unlikely race condition.
It shouldn't matter as any saving from a signal needs to go, but sadly
we're not yet there.

--------------------------------------------------------------------------------
cc10e91b2a | Adam Borowski | 2013-05-26 05:21:34 +0200

Expand the kbs comment.

--------------------------------------------------------------------------------
2560baa3b2 | Pete Hurst | 2013-05-26 03:41:21 +0100

Don't attempt to save after save file is deleted (Mantis #5878)
Affected tutorial if manually closing the window from the post-death summary.

--------------------------------------------------------------------------------
a797ddd80a | Neil Moore | 2013-05-25 20:52:22 -0400

Fix ctrl-h on terminals where that is the same as backspace (hhkb)
If the terminfo "kbs" (key_backspace) attribute is ctrl-h, curses will
treat any occurence of ctrl-h as KEY_BACKSPACE.  Work around that by
converting back to CK_BKSP == 0x8 (ctrl-h) if kbs is set ctrl-h.
However, on sane terminals where backspace generates ctrl-?, don't smash
the two.

Fixes #7013.

--------------------------------------------------------------------------------
3f17ee72a6 | Neil Moore | 2013-05-25 18:18:59 -0400

Allow LRD to explode on the other side of grates (#7084)
Use the same rules as we use for targetting the LRD in the first place.
This does mean that, if two opaque clouds block you from seeing a cell,
the explosion won't hit that cell anymore.

--------------------------------------------------------------------------------
d6e4736e38 | Neil Moore | 2013-05-25 17:43:28 -0400

Dump monster inventory in x&D
It doesn't name the slots but does give the slot numbers, like the
spells: dump.  Arguably slot names would be more useful here, though.

--------------------------------------------------------------------------------
c2c73efecf | Neil Moore | 2013-05-25 15:58:06 -0400

Allow tuning the autofight monster prioritization.
Set the lua variable autofight_flag_order to some reordering of
(a subset of) the following:

{"can_attack", "safe", "distance", "constricting_you", "very_stabbable",
 "injury", "threat", "orc_priest_wizard"}

Not documented yet.

--------------------------------------------------------------------------------
a52de0bc0c | Neil Moore | 2013-05-25 14:48:56 -0400

Make superb_item etc. cat-agnostic.
It was using only cat-friendly base types, affecting tomb, zig, and elf
loot.  This affected "ITEM: x = |" but not the plain "|" glyph, which
was and still is handled by different code (!)

--------------------------------------------------------------------------------
f47888c8ca | Pete Hurst | 2013-05-25 17:16:44 +0100

Balance webtiles alphas

--------------------------------------------------------------------------------
29f3502f62 | Pete Hurst | 2013-05-25 17:05:50 +0100

Give webtiles clouds a submerged look also

--------------------------------------------------------------------------------
360b0b5e17 | Pete Hurst | 2013-05-25 17:05:50 +0100

Tweak cloud alpha values

--------------------------------------------------------------------------------
32fdd823f2 | Pete Hurst | 2013-05-25 17:05:49 +0100

Give cloud overlays an alpha gradient
This creates the effect that the top half of the engulfed
character is emerging slightly out of the cloud.

--------------------------------------------------------------------------------
8b2a8f1c62 | Florian Diebold | 2013-05-25 17:05:49 +0100

Prevent a potential Webtiles bug.
This wouldn't be a problem with the flags cloud tiles can currently
have, but it's better to be sure.

--------------------------------------------------------------------------------
65bbc6cf12 | Florian Diebold | 2013-05-25 17:05:49 +0100

Implement the cloud overlay in Webtiles.

--------------------------------------------------------------------------------
8f2e336bb9 | Pete Hurst | 2013-05-25 17:05:48 +0100

Implement cloud alpha overlay tiles layer
This works very well for the most part with
two small problems:

- Webtiles will not support this yet (in probability,
  this will stop any clouds showing in webtiles)

- Floor items interact strangely and will draw over
  the top of clouds instead of behind them

--------------------------------------------------------------------------------
60f276de76 | Neil Moore | 2013-05-25 00:37:28 -0400

Don't crash on short-range portals with the orb.
move_player_to_position was being called reentrantly: the outer call to
step onto the portal, and the inner call to jump to the portal
destination.  However, we were setting the orb position *after* making
the reentrant call: orb_pos would be moved to the destination with the
player, then moved back onto the portal.

Fix this by firing the position event only after we have set the orb
position.

--------------------------------------------------------------------------------
603af8a313 | David Lawrence Ramsey | 2013-05-24 23:33:27 -0500

Allow gnome zombies; all other single-vault monsters equivalent to player 
species allow zombies.

--------------------------------------------------------------------------------
fde0fbe295 | Neil Moore | 2013-05-24 23:58:50 -0400

Fix spelling and whitespace.

--------------------------------------------------------------------------------
bfb369a0e2 | Adam Borowski | 2013-05-25 05:49:37 +0200

Add a comment to not bump TAG_CHR_FORMAT, preferably ever.
Think of it as a super-major version.

--------------------------------------------------------------------------------
0f4d7e7cfa | Adam Borowski | 2013-05-25 05:42:58 +0200

Always marshall the map name.
We'd have problems the next time we add a game mode and/or make one allow
picking a starting map.

This breaks compat with saves from the last 15 minutes.

--------------------------------------------------------------------------------
fe9f4d551e | Neil Moore | 2013-05-24 23:10:06 -0400

Use the -sprint-map option for -scores and the score menu.
Since crawl_state.map does not have a useful value in either of those
two situations, set it from crawl_state.sprint_map.  Previously we
were looking only at the old "scores-sprint"; or, even worse, at
scores-sprint-foo, where foo was the map for the last sprint/zotdef/
tutorial save in the list (even if it's not sprint).

It would still be nice if the High Scores menu allowed selecting the
game mode and map interactively, instead of requiring command-line
arguments.

--------------------------------------------------------------------------------
561cc53c43 | LexAckson | 2013-05-24 20:43:54 -0400

Seperate sprint score files by map.
Upgraded saves will use the old score file.

Modified to handle save compat differenty, since this change affects
TAG_CHAR.  Removed the score file separation from zotdef for the time
being, since the map doesn't really have much effect on the score there.
Do save the map name, though, so it will be there if we decide to, for
example, show the scenario name in the save menu.  -NFM

--------------------------------------------------------------------------------
cc28685bc7 | Neil Moore | 2013-05-24 19:17:56 -0400

Give targetting prompts for enemies other than the first (#7079).
bolt::handle_stop_attack_prompt only checked the first enemy; if
there was no need to prompt about that enemy, it was treated the
same as an explicit "no" response to the prompt, so subsequent
enemies were not checked.  But maybe you're worshipping TSO, the
first enemy is alert, and the second is asleep :(

Now we check whether the user was actually prompted, and only mark
the tracer_info as dont_stop if they were.

Also, don't prompt twice for the same beam, even if one target is an
ally and another is a bad_attack enemy.  Previously stop_attack_prompt
was called once for the first enemy and once for the first ally.

--------------------------------------------------------------------------------
f66bd25582 | Adam Borowski | 2013-05-25 00:48:39 +0200

Recommend using binutils-gold.
Seriously, these days, using bfd is a crime that's punishable by several
times as long link times.

--------------------------------------------------------------------------------
4fad727a07 | Samuel Bronson | 2013-05-24 18:42:25 -0400

Revert "Don't rebuild everything when PCH is rebuilt due to external code."
This reverts commit 097fc10deed31e0fb79ab467885264b653519cb3.

--------------------------------------------------------------------------------
097fc10dee | Samuel Bronson | 2013-05-24 16:25:05 -0400

Don't rebuild everything when PCH is rebuilt due to external code. Warning: PCH 
users who don't use ccache may need to "make clean".

--------------------------------------------------------------------------------
d40f694ba2 | Samuel Bronson | 2013-05-24 16:17:47 -0400

Make PCH depend on system headers in future, to ensure freshness
Without this, we're liable to try mixing the ghost of old headers with
new headers, which can go pretty badly.

--------------------------------------------------------------------------------
32ea864de0 | Neil Moore | 2013-05-24 13:31:59 -0400

Change a sometimes-inaccurate message.
You might have been trying to enter a shop instead of stairs.

--------------------------------------------------------------------------------
fcd48b83fc | Zannick | 2013-05-24 13:01:13 -0400

Clean up stairs commands and checks.
- Tree form is checked before the delay now. (#7074)
- Tree form no longer blocks forced level-changing such as banishment,
  escaping the Abyss (the lugonu ability), falling down a shaft... (#7073).
- Being turned into a tree interrupts stair travel.
- Any tolls are checked before the player stops clinging or constricting.
- Merge _up_stairs and _down_stairs in main.cc into one function, with
  some helper functions for checks and prompts.
- Moved some duplicate checks from up_stairs and down_stairs into a
  helper function.
- Removed redundant or invalid checks.

--------------------------------------------------------------------------------
32fe79ce4a | Pete Hurst | 2013-05-24 12:25:54 +0100

Lower the weight of layout_basic
It will still have a relatively high weight in early D
where few other layouts are enabled. However this will
allow the new layouts to become more prominent later in
D.

--------------------------------------------------------------------------------
80aeee6273 | Pete Hurst | 2013-05-24 12:25:04 +0100

Cosmetic adjustments to numerous layouts
Using the room materials and level materials as per
many of the standard layouts in layouts.des.

--------------------------------------------------------------------------------
aa328554a7 | Pete Hurst | 2013-05-24 11:44:01 +0100

Create library functions for level/room material and convert layouts to use them

--------------------------------------------------------------------------------
9896e672a1 | Pete Hurst | 2013-05-24 11:22:56 +0100

Mention Python and Lua syntax extensions in INSTALL.txt

--------------------------------------------------------------------------------
75745af80e | Pete Hurst | 2013-05-24 11:22:17 +0100

Include docs folder and root text files in MSVC dat project
Also moved the tiles definitions into rltiles/ virtual folder in the project.

--------------------------------------------------------------------------------
a62a7e7c90 | Pete Hurst | 2013-05-24 11:09:57 +0100

Include the rltiles .txt definitions in the MSVC dat project
Something else it's useful to catch when searching globally.

--------------------------------------------------------------------------------
6728510726 | Pete Hurst | 2013-05-24 11:06:14 +0100

Add MSVC projects for dat/ folder and webserver/ folder
These are purely for ease of editing. The webserver cannot be run
in any form from Visual Studio at this stage.

However, Visual Studio offers Intellisense and other editing
features for the HTML/Javascript in the webserver, and additionally
extensions can be installed for Lua and Python syntax highlighting.

If you are globally searching for strings, it's often very useful to
have these files included in such global searches.

--------------------------------------------------------------------------------
67393a6adf | Pete Hurst | 2013-05-24 11:02:08 +0100

Update checkwhite and pre-commit for incoming MSVC project files

--------------------------------------------------------------------------------
e320712ac3 | Pete Hurst | 2013-05-24 07:46:25 +0100

Give several cave layouts a more natural tileset in D
This is the same tileset used by layout_twisted_cavern,
since these layouts don't generally appear as though
they were built brick-by-brick.

--------------------------------------------------------------------------------
cd98e7f424 | David Lawrence Ramsey | 2013-05-23 23:11:37 -0500

Remove a line of no-longer-applicable Donald snark.
Butchering is no longer blocked with e.g. maces of distortion.

--------------------------------------------------------------------------------
e00e536e17 | David Lawrence Ramsey | 2013-05-23 22:57:18 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
b7e7c1aacc | David Lawrence Ramsey | 2013-05-23 22:56:48 -0500

Make flying skulls have the MONS_SKELETON genus.

--------------------------------------------------------------------------------
ffdc3b0cd4 | Samuel Bronson | 2013-05-23 20:27:32 -0400

Add MSGCH_TIMED_PORTAL for timed portal messages.

--------------------------------------------------------------------------------
bbaf246948 | Adam Borowski | 2013-05-24 01:50:35 +0200

Set the Abyss bot's stats to 72 72 72.
It spends most of the time in stat death otherwise, with all the stat drain
abundant in the Abyss.  This means monsters get to move when we should use
the CPU more for exploring the Abyss (I don't disable monsters here to get
a better test coverage).

--------------------------------------------------------------------------------
db00a37c14 | Adam Borowski | 2013-05-24 01:32:23 +0200

Don't let the Abyss stress fly.
Newnewabyss has hardly any liquids, and it doesn't let us check fpr falling
into water.

--------------------------------------------------------------------------------
a68391059b | Adam Borowski | 2013-05-24 01:32:23 +0200

Rename and document short Abyssal tests, to tell them from the main one.

--------------------------------------------------------------------------------
ce25248dbd | Steve Melenchuk | 2013-05-23 17:30:10 -0600

Don't fail asserts after placing Abyss vaults.
This borrows the env.markers.activate_all() call from the normal dungeon
builder and calls it alongside other things like link_items(); these
calls are now unified in one location, _abyss_postvault_fixup().

It's possible to explore the Abyss indefinitely now per stress tests.

--------------------------------------------------------------------------------
51761f5892 | Steve Melenchuk | 2013-05-23 16:46:59 -0600

Make sure you.shove() gets called properly in Abyss code.

--------------------------------------------------------------------------------
360dbf435f | Pete Hurst | 2013-05-23 23:33:04 +0100

Web tiles for webtiles
TILE_FLAG_WEB needed implementing as flags.WEB for
webtiles to render the web overlay correctly.

--------------------------------------------------------------------------------
b72fcf6e17 | Steve Melenchuk | 2013-05-23 15:52:15 -0600

Don't drown/incinerate player in Abyss when placing vaults.
This also adjusts some of the other checks for abyssal terrain at the
player position after abyssal terrain is adjusted.

I'm unsure as to if/how this approach will cause additional problems,
but the immediate problem (#7063) should go away with this.

--------------------------------------------------------------------------------
daaddd0ef6 | Steve Melenchuk | 2013-05-23 13:22:25 -0600

Unify handling of spellbook destruction for god purposes.
This removes a hiccup wherein Sif followers destroying books would get
double penance; it also means that Trog followers destroying books will
get piety no matter how they destroy the book.

--------------------------------------------------------------------------------
68e6ee8d90 | David Lawrence Ramsey | 2013-05-23 14:05:06 -0500

Mention destroying decks as disliked by Nemelex in the "^!" screen.

--------------------------------------------------------------------------------
4f93a5e51c | David Lawrence Ramsey | 2013-05-23 14:02:17 -0500

Handle destroyed spellbooks the same as destroyed decks.
Also, simplify the penance calculation for destroyed spellbooks, to
match the one for decks (and generalize it for any other
spellbook-granting gods that care about destroyed books).

--------------------------------------------------------------------------------
46bfda39a8 | Steve Melenchuk | 2013-05-23 12:44:49 -0600

Track who destroys an item; incur Nemelex penance for deck destruction.
The framework here could be adopted to, say, give brownie points to
Yredelemnul worshippers for destroying holy items, or other creative
item-related god conducts.

(More importantly, you can now reliably become an Unlucky Tengu.
Hooray.)

--------------------------------------------------------------------------------
b23a7d8494 | Neil Moore | 2013-05-23 12:51:51 -0400

Avoid racial variants in zigsprint starting loot (rast)
The possibility of scumming for a slightly better item has been
<sunglasses> eraced.

--------------------------------------------------------------------------------
c9690d0fdd | Adam Borowski | 2013-05-23 15:52:48 +0200

Don't randomly generate items under firewood.
Oklobs are allowed, sorry.

--------------------------------------------------------------------------------
1b5ada7d84 | Brendan Hickey | 2013-05-23 06:43:50 -0700

Revert "Remove Control Teleport from Books"
This reverts commit e79a3f13542aa36d9b522c492ffb4a0caab57df5.

--------------------------------------------------------------------------------
77439646dd | Adam Borowski | 2013-05-23 14:36:41 +0200

Fix field initialization order warnings.
I don't get why it should even matter for POD fields.

--------------------------------------------------------------------------------
855288b3e9 | Pete Hurst | 2013-05-23 12:19:16 +0100

Display a different overlay when player or monster held by a web
For now it's a semi-transparent version of a normal web. It
doesn't look perfect but a fully-opaque version almost completely
masked the image underneath. Should perhaps get a new image for
this, with thinner strands and no or thinner outline.

player_caught_in_net no longer calls redraw_screen - otherwise
there would be a glimpse of a web over the player before the
item on the ground both existed and was set as "stationary" to
mark it as the trapping net (for thrown nets). The screen
seems to get redrawn shortly after anyway.

--------------------------------------------------------------------------------
f6ca793a7d | Pete Hurst | 2013-05-23 12:14:09 +0100

Add TILE_FLAG_WEB to tile_flags and shuffle TILE_FLAG_ANIM_WEP to end
High-valued flags don't appear to apply correctly to the
player, although they apply fine to monsters.

--------------------------------------------------------------------------------
1c7610c837 | Pete Hurst | 2013-05-23 12:12:42 +0100

Add an %alpha directive for tile processors
Alpha is applied after all other recolour filters. It multiples the alpha
channel of the image by a given value in the range [1..255]. 0 is not
allowed as this would just make the image fully transparent. 127 is 50%
transparency, 255 is equivalent to no change.

The syntax is: %alpha [value]

--------------------------------------------------------------------------------
fb91d83c9e | David Lawrence Ramsey | 2013-05-23 02:00:20 -0500

Constify.

--------------------------------------------------------------------------------
e79a3f1354 | Brendan Hickey | 2013-05-22 21:43:13 -0700

Remove Control Teleport from Books
Remove cTele from Fixed Books, which will remove it from rand books.
Restricting it to items will typically force the use of a ring slot.

--------------------------------------------------------------------------------
c515b7c7a4 | Steve Melenchuk | 2013-05-22 19:59:37 -0600

Have a necromancy miscast source of rotting use ::rot().
This prevents it from rotting through Zin's Vitalisation.

This also adjusts ::rot()'s quiet property to be meaningful in the
player case, and adjusts the code for the only time this was used to
retain the same behaviour.

--------------------------------------------------------------------------------
7dfc1d26ae | Pete Hurst | 2013-05-23 02:26:50 +0100

Properly ASSERTM for invalid spell range
Introduced in ace80c93707ad15ca6253a1867766daa0c340d15
was a silent conversion to LOS range for spells with
range invalidly set to -1. Additionally the way this was
checked would cause different behaviour in debug builds
to release builds when a tracer had -1 range.

Since all cases of invalid range should now have been
caught, the original debug code has been removed and instead
the existing range ASSERT has been made more verbose with
ASSERTM.

--------------------------------------------------------------------------------
2338b60540 | Pete Hurst | 2013-05-23 02:23:02 +0100

Convert several checks in init_spell_descs to ASSERTM
These were introduced in ace80c93707ad15ca6253a1867766daa0c340d15

There seems to be no reason not to assert for these conditions.
It was a potential gotcha that spell data errors might only
manifest in debug builds.

--------------------------------------------------------------------------------
3e76512a7c | Pete Hurst | 2013-05-23 02:21:03 +0100

Add an ASSERTM macro for more verbose ASSERTs
The syntax is ASSERTM(condition, text, args...)

Where text is the format string for an additional message to
be printed after the condition and file/line#, and args are
additional arguments with which to format the string.

--------------------------------------------------------------------------------
728a1e39fe | Raphael Langella | 2013-05-22 23:51:52 +0200

Some minor typographic fixes.

--------------------------------------------------------------------------------
e07847a3f0 | Raphael Langella | 2013-05-22 23:51:52 +0200

Add the dutch translation language.

--------------------------------------------------------------------------------
fe12580d51 | Translators | 2013-05-22 23:51:52 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
b24ca4fdfb | Adam Borowski | 2013-05-22 23:44:22 +0200

Make ugly things zombie/skeletonable.
Looks like all that was needed here was setting the flag, no resistances/etc
use the ghost_demon struct for derived undead.

--------------------------------------------------------------------------------
e497f4db60 | Adam Borowski | 2013-05-22 23:35:26 +0200

Upgrade beef simulacra.

--------------------------------------------------------------------------------
4cbcfd663f | Adam Borowski | 2013-05-22 23:16:10 +0200

Cull somewhat less silly mystery meats as well.
Rats are also bad because that's definitely not something you want from a
level 6 spell, yaks are somewhat acceptable.

Crow meat remains the only joke.

--------------------------------------------------------------------------------
d3d6a4f35c | Adam Borowski | 2013-05-22 23:09:30 +0200

Cull silliest jokes from "mystery meat" simulacra.
Chupacabra, we will miss you.

--------------------------------------------------------------------------------
d8637a78af | Chris Campbell | 2013-05-22 20:24:08 +0100

Don't put darkgrey floors in vaults

--------------------------------------------------------------------------------
cc4bd89b82 | Chris Campbell | 2013-05-22 19:56:45 +0100

Reveal a guaranteed alarm trap

--------------------------------------------------------------------------------
4f4fbe6e83 | Chris Campbell | 2013-05-22 19:56:44 +0100

Delay all teleports on the orbrun, instead of half of them
Since previously it was often a good idea to cancel and restart
teleports for a chance of getting a non-delayed one.

--------------------------------------------------------------------------------
a664e93417 | Steve Melenchuk | 2013-05-22 12:54:46 -0600

A batch of nicolae vaults (#7044).
A lot of these have had spurious ORIENT: tags removed, and many of the
purely decorative ones have been tagged "extra".

--------------------------------------------------------------------------------
1f277de61a | David Lawrence Ramsey | 2013-05-22 11:54:48 -0500

Remove one last nausea reference.

--------------------------------------------------------------------------------
05065a7e4d | Translators | 2013-05-22 17:21:03 +0200

[Transifex] Sync german.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
ae48bdc209 | Raphael Langella | 2013-05-22 15:45:57 +0200

Fix a few quote characters.

--------------------------------------------------------------------------------
bf403f774d | Adam Borowski | 2013-05-21 23:00:41 +0200

Fix $(GXX) being used before it is defined in some cases.
Even though late-bound variables are supposed to be substituted only at
use time, this is not always the case when conditionals are around.

--------------------------------------------------------------------------------
24b9305ab6 | Adam Borowski | 2013-05-21 22:53:08 +0200

Purge old lua scripts formerly loaded by the default config, on Windows.
Unlike other packaging systems, msi doesn't purge obsolete files.

--------------------------------------------------------------------------------
7c76d067c6 | Adam Borowski | 2013-05-21 22:53:08 +0200

Update an obsolete comment.

--------------------------------------------------------------------------------
2bf005e90d | Samuel Bronson | 2013-05-21 16:41:27 -0400

Expand item list in shops to use all available columns
It was wasting 10 columns even in 80x24 ...

--------------------------------------------------------------------------------
58b5251d95 | Samuel Bronson | 2013-05-21 16:26:06 -0400

Refer to "the floor" rather than "a floor"

--------------------------------------------------------------------------------
6837fc0f93 | Pete Hurst | 2013-05-21 18:17:04 +0100

Allow Numpad-5 to confirm targeting (Mantis #2505)

--------------------------------------------------------------------------------
b71738abcb | Adam Borowski | 2013-05-21 14:35:42 +0200

Default to -O1 on gcc-4.2.
Untested, as I have no access to a Mac.

I also know no reliable way to catch all Mac build environments, so this
hurts innocent fixed versions of gcc-4.2 elsewhere, but I don't think
anyone cares.

--------------------------------------------------------------------------------
d0c38dc758 | Adam Borowski | 2013-05-21 14:35:42 +0200

s/armor/armour/ in a bunch of cases.
I'm leaving book quotes as-is, although at least one purported use of
"armor" by a Scottish author is rather suspicious.

--------------------------------------------------------------------------------
5d1f711386 | Adam Borowski | 2013-05-21 14:35:42 +0200

Drop pointless indirection.

--------------------------------------------------------------------------------
0b88296445 | Adam Borowski | 2013-05-21 14:35:41 +0200

Simplify draconian racism.

--------------------------------------------------------------------------------
7263b8ca6e | Pekka Lampila | 2013-05-21 03:00:07 -0400

Don't use menu_sort option for (un)known item menu
Same thing for the found runes menu.

--------------------------------------------------------------------------------
7627e13d3a | Pekka Lampila | 2013-05-21 03:00:06 -0400

Retain autopickup status on staves IDed by Ash
This allows having autopickup pick up one of each staff type. Same trick
is already used on jewellery.

--------------------------------------------------------------------------------
c760786370 | Pekka Lampila | 2013-05-21 03:00:05 -0400

Show item marker, autopickup icon on disturbances

--------------------------------------------------------------------------------
f83ca2deac | Pekka Lampila | 2013-05-21 03:00:04 -0400

Show autopickup graphic under unseen monster tile

--------------------------------------------------------------------------------
bfeb2e73ba | Pekka Lampila | 2013-05-21 03:00:04 -0400

Show item marker and autopickup graphic in clouds

--------------------------------------------------------------------------------
c8e43139ff | Pekka Lampila | 2013-05-21 03:00:04 -0400

Show autopickup graphic under stationary monsters
Mainly plants

--------------------------------------------------------------------------------
e9dec9982d | Pekka Lampila | 2013-05-21 02:59:57 -0400

Fix WebTiles overflow more prompt losing one line
Hold of sending the line that caused a more prompt until that prompt is
cleared.

--------------------------------------------------------------------------------
b84bbcfdc5 | Pekka Lampila | 2013-05-21 02:40:01 -0400

Remove autopickup cursors when clearing map

--------------------------------------------------------------------------------
101dc42d38 | Pekka Lampila | 2013-05-21 02:39:56 -0400

Fix rare case of out of LOS item not being drawn
Tiles only. Could also be another foreground feature (cloud) instead of
an item. This would happen when an out of LOS monster tile was removed.

Rename tile_clear_monster to tile_reset_fg and have it reset the
foreground tile, instead of just clearing it. Also make clear_map
function work properly on tiles even when clear_mons=false.

--------------------------------------------------------------------------------
3f3b1362c7 | Chris Oelmueller | 2013-05-21 02:33:31 -0400

Fix message length calculation in inventory
As per fea71b51790dfb1c5babc22c32226a976a1d5fde, this category was split
into two. The message for staves however still is the longest possible
one even if not mentioning rods.
Moves a "+ 1" into the string measured with (as space) to indicate what
it was doing more clearly.

--------------------------------------------------------------------------------
4d033e72b3 | Chris Oelmueller | 2013-05-21 02:26:55 -0400

Whitespace fixes

--------------------------------------------------------------------------------
6d6c93c5d4 | Chris Oelmueller | 2013-05-21 02:25:22 -0400

options_guide: Fix some references and markup

--------------------------------------------------------------------------------
754dab793e | Policarpo Caballero | 2013-05-21 02:21:00 -0400

fsim: Ammo is always mulched

--------------------------------------------------------------------------------
440fbc2f07 | Pete Hurst | 2013-05-21 07:15:23 +0100

Don't mistake porcupines for spiders

--------------------------------------------------------------------------------
8a32599583 | Neil Moore | 2013-05-21 01:18:24 -0400

Clear "Next: 100%" after gaining XL 27 (#4553).

--------------------------------------------------------------------------------
50c72be161 | Neil Moore | 2013-05-21 00:28:42 -0400

Don't claim self-targetted apportation is suicidal (#6937).
And likewise for any future not-self object-targetting spells.

--------------------------------------------------------------------------------
1dfb0eac17 | Steve Melenchuk | 2013-05-20 22:23:29 -0600

A blame prefix for monster tentacles.
"Slain by a tentacle (created by a kraken)" doesn't look right.

"Slain by a tentacle (attached to a kraken)" looks better.

--------------------------------------------------------------------------------
feaa31fc8f | David Lawrence Ramsey | 2013-05-20 23:11:19 -0500

Constify.

--------------------------------------------------------------------------------
f960d9a35c | Steve Melenchuk | 2013-05-20 21:49:33 -0600

Ensure messages are always printed when chaos beams affect something.
Previously, you'd only see "The blast of chaos [misses/engulfs] you" if
the fake beam type was a non-enchantment; this adds it for the
enchantment cases so there's always a "The blast of chaos engulfs you"
message for the beam hitting monsters/players.

--------------------------------------------------------------------------------
b11031e36b | Steve Melenchuk | 2013-05-20 21:27:55 -0600

Indicate non-potion / player blame for beam potion effects (#7060).
This was causing Chei followers to incur penance for being hasted and/or
berserked by chaos blasts.

--------------------------------------------------------------------------------
2b265523c4 | Adam Borowski | 2013-05-21 04:44:20 +0200

Get rid of a bunch of pointless ifs.

--------------------------------------------------------------------------------
9f276dc393 | Adam Borowski | 2013-05-21 04:21:49 +0200

Use random_choose_weighted() for Zot defender selection.

--------------------------------------------------------------------------------
1be999748c | Adam Borowski | 2013-05-21 04:02:33 +0200

Give the wisp form a fighting chance for non-UC chars.
All uses of Unarmed use XL instead.

The point of bad forms is to give the player an interesting mishap they can
recover from, not to kill them unless they're lucky to escape -- and with no
spells or items, they need good tools to fight back.  I feel sorry for unfun
deaths during the tourney.

Plus, it's strange for the skill to use a fist to make you powerful as a
strand of gas while a skilled axeman is not.  A tree or such has at least
rough equivalents.  I think wisp form differs enough that even mages should
know how to operate it about as well (if not better) -- with this commit,
fighters are still ahead, knowing the dynamics of combat (Fighting) and
how to avoid blows (Dodging).

I hope tree and wisp forms should be reasonable both early and late game.
Not sure about the rest: porcupine is weak and lacks the coolness, bat
might work with its stress on flying away, pig should be scaled to work
outside Kirke's depth.  I'll leave fungus to its daddy.

--------------------------------------------------------------------------------
01f445fad4 | Adam Borowski | 2013-05-21 04:02:33 +0200

Make wisp and tree form strongly depend on XL.
This is similar to draconians and such, who grow up for extra AC.
Trees also gradually shed their slowness.

Without these changes, bad_forms were powerful early on but were a death
sentence in end-game areas.

--------------------------------------------------------------------------------
0e6176b3d7 | Adam Borowski | 2013-05-21 04:02:33 +0200

Give wisp form rN+++, to match monsters.

--------------------------------------------------------------------------------
99442af878 | David Lawrence Ramsey | 2013-05-20 20:56:58 -0500

Use random_choose() and random_choose_weighted() in even more places.

--------------------------------------------------------------------------------
4ae6c3f32c | David Lawrence Ramsey | 2013-05-20 20:18:03 -0500

Use random_choose() and random_choose_weighted() in two more places.

--------------------------------------------------------------------------------
00d0cd1fac | Samuel Bronson | 2013-05-20 13:52:36 -0400

Update comments for field dolorous added to mutation-data.h ...
... three years ago in 0.7.0-a0-1288-g9ea063a

--------------------------------------------------------------------------------
3bf0120f3c | Florian Diebold | 2013-05-20 19:45:24 +0200

Webtiles: Try to make sure the process ends.

--------------------------------------------------------------------------------
ec4163e6ee | David Lawrence Ramsey | 2013-05-20 11:56:29 -0500

Fix now-inaccurate comment.

--------------------------------------------------------------------------------
79c08abdc2 | Policarpo Caballero | 2013-05-20 17:06:13 +0100

Let vampiric drain heal your last hit point

--------------------------------------------------------------------------------
896415e910 | Chris Campbell | 2013-05-20 16:57:13 +0100

Fix dancing weapon corrosion messages

--------------------------------------------------------------------------------
e882f2b731 | Chris Campbell | 2013-05-20 16:20:52 +0100

Remove skeletal warrior spells
They wouldn't be expected to be spellcasters at all from their name and
description, and almost never get to cast their only spell anyway.

--------------------------------------------------------------------------------
33b1ab25b0 | Chris Campbell | 2013-05-20 16:06:56 +0100

List disintegration vulnerability with other resists/vulnerabilities
Instead of manually adding it to monster descriptions.

--------------------------------------------------------------------------------
12832719bd | Neil Moore | 2013-05-20 09:42:22 -0400

Don't allow summoning elementals from monsters or oneself (#7062).
These used to be prevented (with a loop to re-prompt for a new
direction), but it appears that 0.8.0-a0-2376-g29bea47 made that loop no
longer repeat, so these cases started to allow the summon.  Since we now
return a spret_type rather than just a bool, we can abort without spending
a turn, so do that rather than looping.

If the chosen direction contains a monster you cannot see, then we waste
the turn as usual.

--------------------------------------------------------------------------------
2685a18fc9 | David Lawrence Ramsey | 2013-05-19 23:04:41 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
68bcf63620 | Steve Melenchuk | 2013-05-19 21:54:03 -0600

Move the early bound for grunt_profane_halls to D:21.
Having to hunt through it for the Vaults entrance just isn't cool.

--------------------------------------------------------------------------------
cdd15bd19d | David Lawrence Ramsey | 2013-05-19 22:50:09 -0500

Don't give Fedhas' temperature resistance message for tree form when under 
penance.

--------------------------------------------------------------------------------
429fad5fa4 | Pete Hurst | 2013-05-19 23:03:24 +0100

Correct a compile directive in AppHdr.h for non-MSVC builds

--------------------------------------------------------------------------------
536b838eea | Pete Hurst | 2013-05-19 23:03:24 +0100

Use a version of gen_ver.pl that works on MSVC
Windows doesn't support piping to /dev/null

--------------------------------------------------------------------------------
4807bf4ff0 | xFleury | 2013-05-19 23:03:24 +0100

Include missing post-build events for project tilegen in release build.

--------------------------------------------------------------------------------
ec8a1728fd | Pete Hurst | 2013-05-19 23:03:24 +0100

Fix MSVC project file (FULLDEBUG and version header location)

--------------------------------------------------------------------------------
c584bd1df9 | Pete Hurst | 2013-05-19 23:03:23 +0100

Fix an MSVC error caused by zero-byte data read in tags.cc

--------------------------------------------------------------------------------
12d549bc48 | Pete Hurst | 2013-05-19 23:03:23 +0100

Remove an #ifdef applying to old MSVC versions

--------------------------------------------------------------------------------
218aaf8fcc | Pete Hurst | 2013-05-19 23:03:23 +0100

Amend MSVC build instructions

--------------------------------------------------------------------------------
c4aa6cc87c | Pete Hurst | 2013-05-19 23:03:23 +0100

Update INSTALL.txt with MSVC instructions

--------------------------------------------------------------------------------
3833eca044 | Pete Hurst | 2013-05-19 23:03:22 +0100

Allow 64bit enum to compile in MSVC
Added a #define to be used in such cases to leave
non-MSVC compilation unaffected.

--------------------------------------------------------------------------------
e852b8802f | Pete Hurst | 2013-05-19 23:03:22 +0100

Add CLUA_BINDINGS flag to MSVC preprocessor

--------------------------------------------------------------------------------
af496cf54f | Pete Hurst | 2013-05-19 23:03:22 +0100

Use precompiled headers and add DEBUG_DIAGNOSTICS flag for MSVC builds
Precompiled headers speed up compilation and appear to be the reason why
we have to have AppHdr.h included first in every .cc file.

--------------------------------------------------------------------------------
12e82e883f | Pete Hurst | 2013-05-19 23:03:22 +0100

Ignore MSVC .user files

--------------------------------------------------------------------------------
0be164886f | Pete Hurst | 2013-05-19 23:03:21 +0100

Move NORETURN in front of static (xFleury)

--------------------------------------------------------------------------------
c5c36dfdf1 | Pete Hurst | 2013-05-19 23:03:21 +0100

Prevent checkwhite / pre-commit complaining about new MSVC formats

--------------------------------------------------------------------------------
f07870a044 | Pete Hurst | 2013-05-19 23:03:21 +0100

Add whitespace generated by VS

--------------------------------------------------------------------------------
c742c83486 | Pete Hurst | 2013-05-19 23:03:21 +0100

Make _launch_game header match the function definition (NORETURN)

--------------------------------------------------------------------------------
9115f98af6 | Pete Hurst | 2013-05-19 23:03:20 +0100

Define hunger values and use them to eliminate a compile check

--------------------------------------------------------------------------------
9ec71c7cb0 | Pete Hurst | 2013-05-19 23:03:20 +0100

Exclude json.cc from build configurations
It's only required by webtiles server builds

--------------------------------------------------------------------------------
c476d57a99 | Pete Hurst | 2013-05-19 23:03:20 +0100

Add xFleury to CREDITS.txt

--------------------------------------------------------------------------------
5d2f6ce3d3 | Pete Hurst | 2013-05-19 23:03:19 +0100

Don't use NORETURN on MSVC
This also badly needs fixing but this gets compilation working.

--------------------------------------------------------------------------------
5814a507db | Pete Hurst | 2013-05-19 23:03:19 +0100

Disable a compile check in MSVC.
This really needs fixing but it caused a compilation error.

--------------------------------------------------------------------------------
2d7c909c40 | Pete Hurst | 2013-05-19 23:03:19 +0100

The C++ version check failed in MSVC, add a more explicit check

--------------------------------------------------------------------------------
947c01681c | Pete Hurst | 2013-05-19 23:03:19 +0100

menu.cc required <functional> include on MSVC

--------------------------------------------------------------------------------
570f1a5bf7 | Pete Hurst | 2013-05-19 23:01:06 +0100

Fix directory for SDL include in MSVC (xFleury)
It's not known why but the include path for SDL
needs to be different for SDL in MSVC.

--------------------------------------------------------------------------------
319fe160f8 | Pete Hurst | 2013-05-19 23:01:05 +0100

Only reference crash_mutex when USE_UNIX_SIGNALS is defined (xFleury)
crash_mutex only *exists* when USE_UNIX_SIGNALS is defined.

--------------------------------------------------------------------------------
92cb0aeb7f | Pete Hurst | 2013-05-19 23:01:05 +0100

Fix some missing functions for MSVC (xFleury)
log2 is missing from math.h

strcasecmp was incorrectly macro'd to _stricmp

--------------------------------------------------------------------------------
b0b74b27d9 | Pete Hurst | 2013-05-19 23:01:05 +0100

Convert several instances of "and" "not" and "or" to "&&" "!" and "||" (xFleury)
These are in the standard but break on MSVC.

--------------------------------------------------------------------------------
5b5d4fb47b | Pete Hurst | 2013-05-19 23:01:05 +0100

Prevent a crash when monster description was empty (xFleury)
The code wouldn't usually cause a problem on non-MSVC builds but
since it's expected that the description can be empty, the size
of the string should be checked.

--------------------------------------------------------------------------------
b4d6f14cf2 | Pete Hurst | 2013-05-19 23:01:04 +0100

Add a copy constructor to bit_vector (xFleury)
This caused an error with clouds and LOS due to an implicit copy
having undefined behaviour and not working properly in MSVC.

--------------------------------------------------------------------------------
6484a40017 | Pete Hurst | 2013-05-19 23:01:04 +0100

Fix missing usleep command in MSVC
Defines it in unistd.h stub instead.

--------------------------------------------------------------------------------
2a529a5474 | Pete Hurst | 2013-05-19 23:01:03 +0100

Move AppHdr include into dgn-proclayouts.cc
As per instructions in AppHdr.h, this should always be the very first
include in any file, to take advantage of pre-compiled headers.

--------------------------------------------------------------------------------
86b3369d88 | Pete Hurst | 2013-05-19 23:01:03 +0100

Batch file to generate includes
This needs moving into preprocess directives in the solution.

--------------------------------------------------------------------------------
8a774a003f | Pete Hurst | 2013-05-19 23:01:03 +0100

Update MSVC files for VS2012

--------------------------------------------------------------------------------
5380d9a903 | Pete Hurst | 2013-05-19 23:01:02 +0100

Remove VS2010 files
Don't need to support multiple VS versions

--------------------------------------------------------------------------------
dc203eb9fa | Pete Hurst | 2013-05-19 23:01:02 +0100

Copy Windows includes from VS2010

--------------------------------------------------------------------------------
7d2ba46dff | Alexander Vostres | 2013-05-19 23:01:02 +0100

- Added VS2010 solutions and projects

--------------------------------------------------------------------------------
a87a6ee1bf | Pete Hurst | 2013-05-19 23:01:02 +0100

Switch submodules to MSVC compatible versions

--------------------------------------------------------------------------------
bfed50ef6b | ontoclasm | 2013-05-19 16:45:14 -0500

Angel and daeva tiles (roctavian, 5903)

--------------------------------------------------------------------------------
3043274c3d | ontoclasm | 2013-05-19 16:36:18 -0500

Halfling, demigod, and slave tiles (roctavian, 5903)

--------------------------------------------------------------------------------
26fb153627 | ontoclasm | 2013-05-19 15:36:25 -0500

Add macro.txt to gitignore

--------------------------------------------------------------------------------
30f11c6f85 | ontoclasm | 2013-05-19 15:36:24 -0500

Shadow demon tile (bloax, 7035)

--------------------------------------------------------------------------------
752232100f | Samuel Bronson | 2013-05-19 15:25:42 -0400

Get rid of a couple more instances of ", spattered with blood"

--------------------------------------------------------------------------------
ecd88daec0 | David Lawrence Ramsey | 2013-05-19 13:38:00 -0500

Fix apparent wrong version number check.

--------------------------------------------------------------------------------
306f7df8de | David Lawrence Ramsey | 2013-05-19 13:37:34 -0500

Fix compilation on major version bump.

--------------------------------------------------------------------------------
a42053eac9 | Steve Melenchuk | 2013-05-19 10:19:24 -0600

Fix a possible crash when acquirement fails.
This was most obvious when trying to acquire books as a Troglodyte.

--------------------------------------------------------------------------------
d3a2fbd4e9 | David Lawrence Ramsey | 2013-05-19 10:51:09 -0500

Remove unneeded brackets.

--------------------------------------------------------------------------------
1290d6adeb | David Lawrence Ramsey | 2013-05-19 10:47:08 -0500

Fix Mantis 7058: Beogh now recalls "to your vicinity," just as Yred does.

--------------------------------------------------------------------------------
a1d859447d | ontoclasm | 2013-05-19 02:27:33 -0500

Branch stairs (mostly white_noise 6077)
Also includes sewer portals and Shoals stairs.

--------------------------------------------------------------------------------
0fdf242e27 | Samuel Bronson | 2013-05-19 00:59:07 -0400

End "Really try disarming that arrow trap, spattered with blood?"

--------------------------------------------------------------------------------
6874be5024 | Samuel Bronson | 2013-05-19 00:48:23 -0400

End "Really walk into that arrow trap, spattered with blood?"
The blood-spattering is fairly irrelevant to the question, and results
in confusing syntax.

--------------------------------------------------------------------------------
609017b52e | Samuel Bronson | 2013-05-18 23:48:09 -0400

Remove "sage" entries for maxed skills.

--------------------------------------------------------------------------------
feaa46e083 | Brendan Hickey | 2013-05-18 17:02:28 -0700

Tweak decorative zot vaults.
Remove width-one space filling curves.

--------------------------------------------------------------------------------
8e9d6c2338 | Steve Melenchuk | 2013-05-18 14:33:00 -0600

stop_running() when moves aborted by fear/mesm/fungiform (#5555).

--------------------------------------------------------------------------------
d329f00be8 | Steve Melenchuk | 2013-05-18 14:10:06 -0600

Try especially hard to not acquire god-hated items (#5627, #6631).
A lot of checking for god-hated items depends on the type of the item
being known; in addition to adding in one last check for uselessness /
god-hatedness, this temporarily marks the type as known for the purpose
of determining if an acquired item is a god-hated item.

This also fixes an infinite loop when trying to generate a weapon whose
only eligible good brand is holy wrath where holy wrath is not wieldable
by the player.

--------------------------------------------------------------------------------
35ad87deb5 | Adam Borowski | 2013-05-18 21:00:22 +0200

Djinn: make glow mutations temporary (dpeg)
This is a significant buff, so I'm quite wary about it.  As dpeg says,
fooling people into going deep into temp muts may give us something to
point and laugh at, and glowsplosions are always fun.

Another reason is, folks in dire straits who tap into glow to survive
would then have to scum for cure mut or bribe Zin, which is quite
frustrating.  On the other hand, getting xp is something you do
normally, so there's a temporary hardship you're guaranteed to get out
of (if you survive with no heal, berserk 3, teleportitits 3, etc...).
Of course, that's a strong reason to nerf Sif healing.

--------------------------------------------------------------------------------
25d45ba016 | Adam Borowski | 2013-05-18 20:59:26 +0200

Deduplicate temp mutation code.

--------------------------------------------------------------------------------
566ffbbb53 | Adam Borowski | 2013-05-18 20:57:28 +0200

Fix temp mutations sometimes permanently deleting real ones.
Not relevant for 0.12 as this can't happen for strictly bad mutations,
and wretched stars give only those.

--------------------------------------------------------------------------------
8fc0d60dcf | Adam Borowski | 2013-05-18 19:48:57 +0200

Make mutagenic clouds be random 1/5 rather than 1/15 of the time.
The code appears to have wanted to be random 1/3 of the time, yet it called
the wrong of identically named functions, that applied another baddification
in 80% cases.

For consistency with other sources of mostly bad mutations (glow,
SPELL_MALMUTATE) I'm making this 1/5 instead.

--------------------------------------------------------------------------------
862d934b29 | Steve Melenchuk | 2013-05-18 11:44:50 -0600

Use spellcasting checks for monster self-enchant spell slot.
Previously, the self-enchant slot bypassed most of the monster
spellcasting checks much of the time, causing hostile monsters to cast
friendly spells at the player (#5443) and friendly monsters casting
hostile spells at the player (#6928) when such spells were used in that
slot.

--------------------------------------------------------------------------------
707f4fa692 | Adam Borowski | 2013-05-18 19:22:21 +0200

Rename actor::mutate() to actor::malmutate().
It's confusing; especially the use in cloud.cc looks strongly like it's
supposed to work differently.

--------------------------------------------------------------------------------
1c75c6462a | Neil Moore | 2013-05-18 13:16:14 -0400

Document.
Since SamB asked.

--------------------------------------------------------------------------------
de5d1be5a2 | Adam Borowski | 2013-05-18 19:12:09 +0200

s/give_bad_mutation(/mutate(RANDOM_BAD_MUTATION, /
The former does nothing but makes it more work to use the full interface.

--------------------------------------------------------------------------------
3209c53adf | Neil Moore | 2013-05-18 12:53:09 -0400

Don't ID hunger/sust and crash on game load (#7049)
If you were hungry or worse and wearing an unIDed ring of hunger or
ring of sustenance, the initial call to food_change(true) after
reloading the game would identify the ring.  However, the shopping
list is not yet initialized at that point, so the attempt to
update the shopping list to account for the new knowledge causes
a crash.

Fix this by not identifying rings in this situation (even without
the crash it's wrong: saving and restoring shouldn't ID the ring).

--------------------------------------------------------------------------------
c62a69cbda | elliptic | 2013-05-18 08:19:01 -0400

Remove a randart weapon name.
It overlaps with the armour ego; there's no reason to try to confuse players
like this.

--------------------------------------------------------------------------------
28b5a88d2c | Adam Borowski | 2013-05-18 06:10:18 +0200

Fix blind monsters being able to read scrolls.

--------------------------------------------------------------------------------
94cd264da4 | lain | 2013-05-17 19:52:06 -0700

Merge branch 'master' into newskalds

--------------------------------------------------------------------------------
72ea840778 | lain | 2013-05-17 19:44:44 -0700

increase acc bonus spectral weapons get

--------------------------------------------------------------------------------
c464a65d68 | Chris Campbell | 2013-05-17 15:57:20 +0100

Don't reduce penance when Elyvilon blocks melee attacks

--------------------------------------------------------------------------------
8ebeecd0b1 | Steve Melenchuk | 2013-05-16 21:04:46 -0600

Adjust the MR plus thresholds.
This removes a + from the positive side and merges - and -- tiers for
the negative side, so two pluses/minuses is the max again.

This also impacts stealth (should these be split again so that people
don't get confused?).

--------------------------------------------------------------------------------
6e50ca2c45 | Steve Melenchuk | 2013-05-16 20:47:03 -0600

Use pluses for artefact MR inscriptions.
This has come up fairly often: "exactly how much MR does this give?
Should I wear this artefact or that artefact?" Displaying some pluses
should help make the distinction a little easier.

Right now this uses the stealth breakpoints (same codepath): 1-20 gives
one plus (this includes rings of protection from magic), 21-50 gives two
pluses (e.g. the armour of the Dragon King); 50+ gives a new tier of
three pluses (e.g. the amulet of the Four Winds).

Three pluses might end up looking too silly; if so, removing a plus from
the positive tiers might work. (Negative tiers might look silly too - we
currently only have one thing that can give negative MR, and it shows up
as MR--- right now!)

--------------------------------------------------------------------------------
1618152b4b | ontoclasm | 2013-05-16 19:49:34 -0500

Shadow tile

--------------------------------------------------------------------------------
5da6816cb4 | Pete Hurst | 2013-05-17 00:46:48 +0100

Prevent D:$ overriding Sprint/Tutorial
Improved logic in _dgn_random_map_for_place.
With the old logic, setting a vault as PLACE: D:$
would affect Sprint and Tutorial modes; this will
no longer happen.

--------------------------------------------------------------------------------
4508735022 | Samuel Bronson | 2013-05-16 16:18:01 -0400

Autopickup ammo used by starting launchers/spells.

--------------------------------------------------------------------------------
5cb6e512e4 | Adam Borowski | 2013-05-16 20:01:55 +0200

Give wisp form swiftness and blink on demand.

--------------------------------------------------------------------------------
625a0b5e03 | Adam Borowski | 2013-05-16 19:07:12 +0200

Remove the message for Fedhas and fungiform.
Since 159d3dbee, he doesn't grant any resistances anymore.

bh: you may want to adjust that if you wish, in that case, please use some
descriptive message instead of dumb "smiles upon you" like I did.

--------------------------------------------------------------------------------
8c60e70a75 | Adam Borowski | 2013-05-16 18:58:41 +0200

Make the Fedhas message for tree form more informative.
What with fungi?  I don't see him doing anything to them.

--------------------------------------------------------------------------------
e58e56a584 | Adam Borowski | 2013-05-16 18:39:52 +0200

Remove rF- from the tree form.
Per elliptic, in Zot:5 and certain other places, fire damage will insta-kill
you.

Fedhas keeps the boost, with extra: worshippers get rF+ rC+.

--------------------------------------------------------------------------------
bc3c3bae37 | Adam Borowski | 2013-05-16 18:37:31 +0200

Preserved meat is not useless if you know Simulacrum.
Can matter for Vp, Mu, Dj.

--------------------------------------------------------------------------------
c30d17a47a | Samuel Bronson | 2013-05-15 20:17:19 -0400

Improve message when you don't see susceptible monsters in spell range

--------------------------------------------------------------------------------
a9dc52348c | Adam Borowski | 2013-05-16 01:51:42 +0200

Move abyssal layouts to file scope, fix a memory leak.
Globals, even static ones, are bad, but late-init statics inside a function
are even worse, as they make it easy to have a runtime dependency in
something that appears to be const.  Here, at least the compiler will help,
together with valgrind screaming about the use of uninitialized random
generator if one of layouts happens to call random() after all.

(Yes, it does look ugly.)

--------------------------------------------------------------------------------
8c366ab4c2 | Adam Borowski | 2013-05-16 01:51:42 +0200

Fix an uninitialized variable.

--------------------------------------------------------------------------------
c73d89a035 | Translators | 2013-05-15 23:55:00 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
a1874e00eb | Translators | 2013-05-15 23:55:00 +0200

[Transifex] Rewrap.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
4e4c1c70d4 | Translators | 2013-05-15 23:55:00 +0200

[Transifex] Remove obsolete entries.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
3b7a392aca | Translators | 2013-05-15 23:54:59 +0200

[Transifex] Update spammal name in translation files.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
fc08766beb | Adam Borowski | 2013-05-15 16:17:58 +0200

Fix a shadowing warning.

--------------------------------------------------------------------------------
9e32ab9491 | Adam Borowski | 2013-05-15 16:12:38 +0200

Avoid use of gettimeofday() on Windows (not implemented on MSVC).
Also, drop handling of an impossible error.  A local variable on the stack
is quite likely to be within the process' address space.  And even for some
reason (?!?) it'd be not, the very next line will give us a nice SIGSEGV
anyway :)

--------------------------------------------------------------------------------
c309f551d7 | Adam Borowski | 2013-05-15 15:36:01 +0200

Don't give gettimeofday() an unused depreciated argument.

--------------------------------------------------------------------------------
d34ecd579c | Adam Borowski | 2013-05-15 15:07:51 +0200

Typecast to signed when doing sign negation.
Hushes a MSVC warning.

--------------------------------------------------------------------------------
993bde673b | Adam Borowski | 2013-05-15 13:38:15 +0200

Fix games upgraded from 0.11 being unable to get the abyssal rune.
The max depth is set to 5 unconditionally for all regular games, to handle
saves that have already been misupgraded.

--------------------------------------------------------------------------------
5f86a40068 | Steve Melenchuk | 2013-05-14 18:33:09 -0600

Add exits to a minor panlord vault.
It could previously generate a rune inaccessible from the rest of the
level.

--------------------------------------------------------------------------------
01bfff9e3d | Steve Melenchuk | 2013-05-14 17:51:12 -0600

Move layout_type specs to tags; get primary vault layout_ tags usable.
That is, primary vaults can now properly specify layout types they
should be used with with layout_ tags, and layouts now set the type
through a "layout_type_*" tag as opposed to through a Lua function call.

There were a couple of primary vaults that tried to use these
previously, which was non-functional; this should work now. A handful of
significant primary vaults also now specify layout types to illustrate
this functionality.

This also fixes up a couple of vaults that use layout_ tags to specify
layout names instead of types (which also doesn't work).

--------------------------------------------------------------------------------
a45499ba62 | Steve Melenchuk | 2013-05-14 16:28:20 -0600

ORIENT: centre.
This places the vault at the centre of the map, and tries to use a
layout that benefits from having a vault at the centre of the map
(indicated by using the tag "central" in the layout).

A few older vaults have been tagged with ORIENT: centre, and a handful
of layouts have been tagged with central; these are vaults and layouts
that have been observed to benefit from the interaction in the past for
the most part.

This may be the first step towards better specifying how primary vaults
interact with layouts (castle-like maps with layout_stronghold or
layout_gridville, for example, as suggested by mumra).

This also fixes a couple of bugs in the layout selector (in particular,
"no_primary_layout" being ignored outside of Pan).

--------------------------------------------------------------------------------
ded950aa25 | Samuel Bronson | 2013-05-14 14:46:29 -0400

Handle single-quotes and whitespace in CFLAGS difference check.
This will probably miss changes in the number of consequtive spaces
used in (say) -D flags, but it does put an end to the full rebuilds
we've been having since probably 0.13-a0-692-g87817ed (though these
would presumably also have gone away after the tournament ended).

I'm a bit puzzled about how the whitespace difference came about,
though ...

--------------------------------------------------------------------------------
c7ccb90079 | Samuel Bronson | 2013-05-14 14:13:12 -0400

Give debug output after the "new build flags or prefix" message

--------------------------------------------------------------------------------
0b99506003 | Pete Hurst | 2013-05-14 17:41:20 +0100

Prevent an ASSERT when getting banished while on Abyss:5
Banishment calls the down_stairs function when in the Abyss.

Unfortunately on Abyss:5 there is nowhere down to go to.

This changes it to cause an Abyssal teleport shift on Abyss:5 instead.

--------------------------------------------------------------------------------
f7a493e69b | Pete Hurst | 2013-05-14 17:37:39 +0100

#7039 Prevent an Abyssal ASSERT after ugprading to 0.12
The brdepth table is unmarshalled from the save file, but a check
for whether to place stairs used a hardcoded depth of 5. I
converted it to check the brdepth table instead, this
prevents downstairs from generating on Abyss:1 for upgraded
saves.

It might be better instead to modify the brdepth table for
Abyss on that upgrade, since unlike other branches that
could have already been generated, the Abyss regenerates
over and over. But I don't want to mess too much with version
compatibility now so I'll leave this for someone who might
understand the implications better than me.

--------------------------------------------------------------------------------
8fc219f917 | blackcustard | 2013-05-14 16:23:50 +0100

Fix 'Unlinked item' errors in Abyss.

--------------------------------------------------------------------------------
d7550033e4 | Brendan Hickey | 2013-05-13 22:35:21 -0700

Grotesk Aptitude / Mutation tweaks
Reduce most weapon aptitudes.
Boost UC.
Make Necromancy -3

Claws, Fangs, Talons. These probably overpower the race.

--------------------------------------------------------------------------------
eeee1b1d18 | ontoclasm | 2013-05-14 00:10:56 -0500

Remove water moccasin shadows

--------------------------------------------------------------------------------
774275e260 | ontoclasm | 2013-05-13 23:56:18 -0500

Snake tile edits

--------------------------------------------------------------------------------
9ac0c459f4 | Chris Campbell | 2013-05-13 23:29:52 +0100

Don't make unintelligent monsters sometimes avoid grey smoke
They generally tend to not care about walking into danger, so sometimes
thinking that grey smoke (and only grey smoke) is dangerous and then
avoiding it is pretty strange.

--------------------------------------------------------------------------------
380fd4b2b8 | Chris Campbell | 2013-05-13 22:22:41 +0100

Un-redefine some trees
It's buggy (Fedhas is offended by their destruction) and unnecessary.

--------------------------------------------------------------------------------
759435602e | David Lawrence Ramsey | 2013-05-13 14:21:42 -0500

Clear the melee and spell masks when polymorphing a monster.
This is so polymorphed monsters don't retain any melee or spell
qualities that their old form had but their new form doesn't (e.g.
dual-wielding).

This should fix Mantis 7043.

--------------------------------------------------------------------------------
ef07b701be | Adam Borowski | 2013-05-13 17:55:10 +0200

Make MSVC happier (xFleury)

--------------------------------------------------------------------------------
2ad4536e4c | Chris Campbell | 2013-05-13 09:36:45 +0100

Use runed doors instead of a statue in pandoras_box_mu

--------------------------------------------------------------------------------
a7fad4358a | Chris Campbell | 2013-05-13 09:36:44 +0100

Add a way in to minmay_crystal_box

--------------------------------------------------------------------------------
a213c98cab | lain | 2013-05-13 01:03:33 -0700

make infusion base damage boost 3 again

--------------------------------------------------------------------------------
b556e98afd | lain | 2013-05-12 23:33:46 -0700

adjust mon-threat-level sos caps

--------------------------------------------------------------------------------
d7b13f828f | lain | 2013-05-12 23:33:10 -0700

adjust spectral weapon's weapon

--------------------------------------------------------------------------------
68ae815197 | Samuel Bronson | 2013-05-13 01:51:29 -0400

Don't use __attribute__ ((pure)) directly (xFleury)

--------------------------------------------------------------------------------
82d7cc5bf7 | lain | 2013-05-12 21:10:43 -0700

Merge branch 'master' into newskalds

--------------------------------------------------------------------------------
ff9f909321 | elliptic | 2013-05-12 16:32:56 -0400

Fix cursed magical staves and rods blocking weapon skill training.
05c2f7470b missed this because these "weapons" aren't OBJ_WEAPONS.

--------------------------------------------------------------------------------
d9195e97f9 | Brendan Hickey | 2013-05-11 23:35:04 -0700

Grotesk Stat Damage and add-on effects
Grotesks risk stat loss upon petrification expiry.
At most you can lose 4 points, distributed at random.
Per point risk is equal to (damage reduction of the hardest hit) / (max hp).
Preserve abilities reduces the total risk to 3 points.

Tentatively do not decrease Grotesk speed while petrifying. Decrease mv to 
compensate.

Exiting petrification confers exhausted and exhaustion blocks petrify self.
At the moment it's possible to use `petrify self` followed immediately by 
`berserk`, while this is quite the party, I just haven't gotten to blocking 
berserk while petrification is under way.

Discourage Grotesks from being Air Elementalists and Berserkers.

--------------------------------------------------------------------------------
98e5fc2b94 | Chris Campbell | 2013-05-11 23:19:29 +0100

Fix some Singing Sword messages

--------------------------------------------------------------------------------
3af3dd230d | lain | 2013-05-11 03:49:47 -0700

update class-pick description of skalds

--------------------------------------------------------------------------------
31a5b92536 | Adam Borowski | 2013-05-11 12:43:27 +0200

Follow the beam's path forward until it hits.

--------------------------------------------------------------------------------
f8b648d8ba | lain | 2013-05-11 03:40:37 -0700

Merge branch 'master' into newskalds

--------------------------------------------------------------------------------
eaff7e6fe1 | lain | 2013-05-11 03:37:31 -0700

adjust comments slightly

--------------------------------------------------------------------------------
984e364bff | lain | 2013-05-11 03:28:54 -0700

add pow/25 boost to infusion damage

--------------------------------------------------------------------------------
7c4e1fd16c | Adam Borowski | 2013-05-11 12:27:23 +0200

Index that reverse_iterator with ints.
If there's even a hint of problems...

--------------------------------------------------------------------------------
95cde7be47 | lain | 2013-05-11 01:06:48 -0700

buff plain spectral weapon
allow the player's skill bonus to add slaying to the spectral weapon's weapon, 
increase base damage and hp of the spectral weapon monster

--------------------------------------------------------------------------------
469d072f1d | lain | 2013-05-10 21:14:32 -0700

Merge remote-tracking branch 'origin' into newskalds

--------------------------------------------------------------------------------
9be4cfb42e | Neil Moore | 2013-05-10 20:14:50 -0400

Fix compilation for gcc 4.0.
Poor Snow Leopard users :(

See https://crawl.develz.org/tavern/viewtopic.php?f=9&t=7921 for the
report.

--------------------------------------------------------------------------------
4e5f69cad7 | Neil Moore | 2013-05-10 18:19:06 -0400

Don't generate staves of bugginess.
They will already be fixed up to Energy upon unmarshalling.

--------------------------------------------------------------------------------
87817edc96 | Neil Moore | 2013-05-10 18:06:09 -0400

Fix DGL compilation.
Oops.

--------------------------------------------------------------------------------
e34e213eb4 | Neil Moore | 2013-05-10 17:56:10 -0400

Remind online trunk players about the tournament.
If you run a dgamelaunch crawl server that isn't participating in the
tournament, use  make EXTERNAL_DEFINES=-UTOURNEY

--------------------------------------------------------------------------------
67a9af87aa | Pete Hurst | 2013-05-10 20:54:52 +0100

Fix typo in options_guide

--------------------------------------------------------------------------------
7593dc97ae | Florian Diebold | 2013-05-10 21:24:35 +0200

Remove two unnecessary spaces.

--------------------------------------------------------------------------------
b88a3eb50b | Florian Diebold | 2013-05-10 21:17:07 +0200

Make Webtiles messages proper JSON again (rwbarton).

--------------------------------------------------------------------------------
4388732bda | Chris Campbell | 2013-05-10 19:51:10 +0100

Remove small abominations from executioner bands

--------------------------------------------------------------------------------
0a19e491cb | Chris Campbell | 2013-05-10 19:49:21 +0100

Remove a comment
The "more common for testing" abyss monster weights seem just fine.

--------------------------------------------------------------------------------
27633c9160 | Chris Campbell | 2013-05-10 19:49:20 +0100

Remove 5s and other weak monsters from Pan monster lists

--------------------------------------------------------------------------------
8523f043be | Chris Campbell | 2013-05-10 19:49:19 +0100

Don't mark invisibility as useless while corona'd
Since invis will cancel the corona.

--------------------------------------------------------------------------------
16adda4033 | Pete Hurst | 2013-05-10 19:42:24 +0100

Update options_guide.txt and init.txt
The rest_delay option wasn't documented.

--------------------------------------------------------------------------------
519f4dc647 | Pete Hurst | 2013-05-10 17:44:48 +0100

Default delays to -1 on servers and add a rest_delay
This sets both delays (explore_delay, travel_delay) to -1 for server
play, along with enabling travel trails.

Additionally a rest_delay option is added which also defaults to -1
on servers or 0 locally, to speed up resting.

--------------------------------------------------------------------------------
6e2ef16643 | Pete Hurst | 2013-05-10 15:22:14 +0100

Fix corners algorithm of layout_gridlike and add some fills
Included missing layout.lua this time.

The corners weren't properly merging together for adjacent
cells, it's now working correctly.

Added some very rare random material boxes in rooms.

--------------------------------------------------------------------------------
f3ee610b06 | Pete Hurst | 2013-05-10 15:20:11 +0100

Fix corners algorithm of layout_gridlike and add some fills
The corners weren't properly merging together for adjacent
cells, it's now working correctly.

Added some very rare random material boxes in rooms.

--------------------------------------------------------------------------------
2163700d26 | Brendan Hickey | 2013-05-09 22:33:00 -0700

Revert "Fix corners algorithm of layout_gridlike and add some fills"
This reverts commit 8ea23db6bd4e00efbdc9e59a6ca42541ca73e0e6.
The original commit appears to be incomplete.

--------------------------------------------------------------------------------
78df991bbd | Brendan Hickey | 2013-05-09 22:26:47 -0700

Grotesk Self-Petrification
Give Grotesks the ability to self-petrify.
This power gets a duration bump at level 7 and again at level 13.
Next up, make petrifying Grotesks more powerful.

--------------------------------------------------------------------------------
8ea23db6bd | Pete Hurst | 2013-05-10 04:15:24 +0100

Fix corners algorithm of layout_gridlike and add some fills
The corners weren't properly merging together for adjacent
cells, it's now working correctly.

Added some very rare random material boxes in rooms.

--------------------------------------------------------------------------------
f7895710d8 | lain | 2013-05-09 19:46:56 -0700

remove the +1 enchantment from skald starting weapon

--------------------------------------------------------------------------------
60e958b839 | lain | 2013-05-09 19:42:08 -0700

adjust what kills increase the song of slaying's bonus

--------------------------------------------------------------------------------
e3495a10d6 | lain | 2013-05-09 19:41:07 -0700

adjust infusion slightly
removed the 0 mp 1 dmg bonus and fixed its normal bonus to 3

--------------------------------------------------------------------------------
b4fe83d321 | Adam Borowski | 2013-05-10 04:39:52 +0200

Provide _some_ reason why trog's wizard can't cast.

--------------------------------------------------------------------------------
0903bedfc4 | lain | 2013-05-09 19:39:37 -0700

make spectral weapons disappear when you unwield

--------------------------------------------------------------------------------
8efe311342 | lain | 2013-05-09 19:38:35 -0700

make spectral weapon boring!

--------------------------------------------------------------------------------
a6c82f95d7 | Adam Borowski | 2013-05-10 04:36:20 +0200

Repair the desc for trog_wizard.

--------------------------------------------------------------------------------
900cb546bf | Adam Borowski | 2013-05-10 04:36:20 +0200

Remove an incorrectly not removed desc.

--------------------------------------------------------------------------------
189aaeefcd | Adam Borowski | 2013-05-10 04:36:15 +0200

Restore an incorrectly removed desc.

--------------------------------------------------------------------------------
6d7658da2d | Samuel Bronson | 2013-05-09 19:12:42 -0400

Say "You're too confused!" when interlevel travel is attempted while confused.

--------------------------------------------------------------------------------
a824aaa5c8 | Samuel Bronson | 2013-05-09 19:10:09 -0400

Make "You're too confused!" a canned message.

--------------------------------------------------------------------------------
d06ae78881 | elliptic | 2013-05-09 18:51:40 -0400

Remove unnecessary absdepth check (tenofswords).

--------------------------------------------------------------------------------
ed33a606fa | elliptic | 2013-05-09 17:35:48 -0400

Only generate goddamned_bats where it might possibly be dangerous.
Seriously, bats in Lair or Orc aren't interesting (and they are still free
piety for some gods).

--------------------------------------------------------------------------------
a5726ed7d5 | Adam Borowski | 2013-05-09 22:52:20 +0200

Formatting fixes.

--------------------------------------------------------------------------------
ef70f21f57 | Adam Borowski | 2013-05-09 22:34:56 +0200

Make staff of power's effect increase with your maxmp.
It gives 5 + 0.4 * maxmp, with anything above 50 being halved.

--------------------------------------------------------------------------------
2b24be0e27 | Adam Borowski | 2013-05-09 22:34:56 +0200

Don't let mutations and vigour affect staff/rings of power.

--------------------------------------------------------------------------------
208c673cc1 | Adam Borowski | 2013-05-09 22:34:55 +0200

Merge staves of energy and channeling.

--------------------------------------------------------------------------------
2f452a7ff4 | Adam Borowski | 2013-05-09 22:34:55 +0200

Reduce staff of energy hunger to zero once again.

--------------------------------------------------------------------------------
b66ed657f4 | Adam Borowski | 2013-05-09 22:34:55 +0200

Don't test missile enchantment values.

--------------------------------------------------------------------------------
e6d205aeb2 | Adam Borowski | 2013-05-09 22:34:55 +0200

Use 30 for sanity caps of all item enchantment types.
It was 30 for weapons, 25 for armour, which caused spam with Lear's.

--------------------------------------------------------------------------------
9e19cc856f | Adam Borowski | 2013-05-09 22:34:55 +0200

Fix spell-related commands being incredibly spammy if you know IMB.

--------------------------------------------------------------------------------
45206a2396 | Adam Borowski | 2013-05-09 22:34:55 +0200

Remove an unused macro.

--------------------------------------------------------------------------------
e407b64312 | Adam Borowski | 2013-05-09 22:34:04 +0200

Restore kb_skeletal_archery.
I think it's a good example of well designed one-off monsters:
* players intuitively know what the monster is, what to expect from it,
  and what it looks like, without having to read the description, or
  worse, spoilers.
* if they remained as plain "skeleton warriors", folks who play fast
  would be penalized for not reading that "comes into view, wielding
  a longbow" or being spoiled
* the vault actually provides some challenge: meeting a firing line
  can be deadly if you act stupidly

The vault could be made more aesthethic, though.

--------------------------------------------------------------------------------
bf6fde59c0 | Adam Borowski | 2013-05-09 22:33:46 +0200

Restore goddamned_bats.
Not because it's the best vault, but because it's a prominent reference
to a part of Crawl's history.  It has none of stated problems: corpses
work well, there are no "comes into view" problems (because of the genus
being correct).

This vault's removal has attracted a surprising amount of criticism, mostly
for emotional reasons, and not a single voice of approval.

I do agree some parts are silly, though: fruity bats and dwarf mountain bats
are ones I personally wouldn't shed a tear after.

--------------------------------------------------------------------------------
dfa9fa3863 | Adam Borowski | 2013-05-09 18:23:26 +0200

Add a config option to allow undoing item glyph recolouring.
It's misnamed "0.12_monster_glyphs" for consistency with other such files,
even if it has not a single monster inside.

Having to list every fixed artefact is not nice, so some suggestion would
be good: it's not as straightforward as adding a "non-artefact" tag as no
one uses anchors so it'd match "artefact", and other tags wouldn't be
obvious enough.

--------------------------------------------------------------------------------
a3d5771052 | Pete Hurst | 2013-05-09 17:02:56 +0100

Vary layout_gridlike room shapes and add some per-branch variations
Also enabled it in Crypt and made it substantially more likely in Elf

--------------------------------------------------------------------------------
353f8e9e54 | lain | 2013-05-09 07:05:12 -0700

add a "stop singing" ability for sos users

--------------------------------------------------------------------------------
436067d214 | lain | 2013-05-09 05:52:22 -0700

reduce base damage of spectral weapons to 1

--------------------------------------------------------------------------------
16d2db4a19 | lain | 2013-05-09 03:14:44 -0700

basic descriptions for newskald spells and spectral weapon monster

--------------------------------------------------------------------------------
f772da004a | elliptic | 2013-05-09 03:27:10 -0400

Give Blade triple swords, prevent type/ego duplication.

--------------------------------------------------------------------------------
2a08a9b216 | Brendan Hickey | 2013-05-08 22:54:25 -0700

Berserkitis Reform
Do not berserk when fighting firewood.

--------------------------------------------------------------------------------
257587e24f | lain | 2013-05-08 21:54:33 -0700

add every-turn noise when you are under sos effect

--------------------------------------------------------------------------------
2f7e86f63a | lain | 2013-05-08 21:27:49 -0700

fixed movement for spectral weapons
it now correctly approaches monsters you attack, returning to your side when 
you retreat or the monster is dead

--------------------------------------------------------------------------------
588d24657e | Steve Melenchuk | 2013-05-08 20:35:51 -0600

Axe some more unfinished code that the previous revert failed to revert.
This reverts commit 2313bf4df8ea083a227b5138f135314216ba1929.

--------------------------------------------------------------------------------
aed0c34071 | Steve Melenchuk | 2013-05-08 19:54:34 -0600

Revert accidental commits of unfinished code.
This reverts commit 2313bf4df8ea083a227b5138f135314216ba1929.
This reverts commit 2c9fbfe1adc839f19fd42e7fe7c93c986be4e873.

--------------------------------------------------------------------------------
18c88e7e21 | Pete Hurst | 2013-05-09 02:47:24 +0100

Give layout_gridlike wider paths in deeper levels
Corridors can be up to ceil(depth/3) width.

--------------------------------------------------------------------------------
2c9fbfe1ad | lain | 2013-05-09 02:47:24 +0100

slightly improved behavior for spectral weapon
the weapon will now approach attacked monsters in more situations, but still a 
weird problem exists where it gets "stuck" behind you occasionally...

--------------------------------------------------------------------------------
2313bf4df8 | lain | 2013-05-09 02:47:23 +0100

rough implementation of newskald spells
new spells: infusion, song of slaying, spectral weapon, spirit shield
new book: book of battle
new mons: MONS_SPECTRAL_WEAPON

--------------------------------------------------------------------------------
6e74b08213 | lain | 2013-05-08 17:16:58 -0700

increase hp of spectral weapons

--------------------------------------------------------------------------------
2c9f1c8720 | elliptic | 2013-05-08 17:50:24 -0400

Replace statues with glass in minivault_12.
Many attacks (including reaching, strangely enough) pass through statues, so
this vault was a lot of free xp for most chars with the statues.

--------------------------------------------------------------------------------
29246ed407 | lain | 2013-05-08 14:42:13 -0700

slightly improved behavior for spectral weapon
the weapon will now approach attacked monsters in more situations, but still a 
weird problem exists where it gets "stuck" behind you occasionally...

--------------------------------------------------------------------------------
3f1e5dc847 | David Lawrence Ramsey | 2013-05-08 15:57:04 -0500

Tweak wording and fix punctuation.

--------------------------------------------------------------------------------
a350cc249d | Chris Campbell | 2013-05-08 21:38:35 +0100

Fix Fedhas evolution description

--------------------------------------------------------------------------------
d55b475a9d | Florian Diebold | 2013-05-08 18:30:36 +0200

Also reset feat_idx when resetting the feature tile.
Otherwise, the tile could come back when loading a save.

--------------------------------------------------------------------------------
d2c170ed53 | Pete Hurst | 2013-05-08 15:43:19 +0100

Reset tile on dungeon_terrain_changed
This fixes a number of issues where a layout/vault applies a tile
to a feature and then subsequent vault/terrain placements incorrectly
inherit that tile.

--------------------------------------------------------------------------------
989b9b1b18 | Pete Hurst | 2013-05-08 06:17:01 +0100

Several improvements to cellular layouts
layout_cellular_growth gets doors in Dis and edge walls are
slightly improved.

layout_gridville gets more interesting shaped edges due to
walls being added and buildings sometimes going right up to
the edge.

layout_gridlike sometimes gets walls/doors between cells
and solid cells randomly to make the center more interesting.

--------------------------------------------------------------------------------
b320de5346 | Steve Melenchuk | 2013-05-07 22:43:33 -0600

Fix a vault reference to Lear's chain mail.

--------------------------------------------------------------------------------
d2d612ff63 | Steve Melenchuk | 2013-05-07 22:34:52 -0600

Extended game rune vaults.
This is a complete set of new Hell endings and major panlord vaults.

Thanks to madreisz and johnnyzero for playtesting and feedback!

--------------------------------------------------------------------------------
72084394f7 | infiniplex | 2013-05-07 22:34:52 -0600

Split hells.des into 5 seperate files.
Dev's note: the comments at the head of the file have been cleaned up
somewhat.

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
8e9f254daf | Adam Borowski | 2013-05-08 06:32:01 +0200

Boost Lear's by +28 AC, DEX+3, +CAST, -Curse.
It's now a no-property hauberk (extended suit of chainmail) that covers
all slots other than shield and cloak.

At +27, it's roughly on par with maximally enchanted mundane plate plus
ordinary helmet/gloves/boots (less GDR, better EV), winning at low skill
levels.

It's a great item early on, before you'd have a chance to gather enough
scrolls.  It's trounced by crystal plate, not to mention anything with
brands.

--------------------------------------------------------------------------------
db72864508 | Adam Borowski | 2013-05-08 06:32:01 +0200

Drop redundant suppression checks.

--------------------------------------------------------------------------------
0cf288a3e7 | Adam Borowski | 2013-05-08 06:32:00 +0200

Make throwing nets Pacra's favourite colour.

--------------------------------------------------------------------------------
a33d6afa50 | Adam Borowski | 2013-05-08 06:31:59 +0200

Add a missing space.

--------------------------------------------------------------------------------
167c651946 | Brendan Hickey | 2013-05-07 21:26:36 -0700

Grotesk
A gargoyle-like species. Good at earth, bad at air.
Soon to have wings.

--------------------------------------------------------------------------------
149ef16dae | elliptic | 2013-05-07 23:42:57 -0400

Hand-pick Zot trap effects.
Previously Zot traps functioned by picking a random spell school and then
using a severity 3 miscast for that school. Now they draw from a hand-picked
list of possible effects (currently still mainly consisting of miscast-like
effects)..

Separating Zot trap effects out like this makes sense because miscasts and
Zot trap effects happen in different circumstances: the former are under the
player's control to a large extent and should mainly happen in combat, while
the latter often happen with no monsters around, when the player explores
into a trap. Because of this, it makes sense that some effects would work
well for one but not the other. In addition, separating the two lets us
add new Zot trap effects without needing to associate them with a spell
school.

The list of effects added in this commit is quite rough. A few comments on
it:
* I didn't use any simple "ouch" effects, which are quite common among the
miscasts. Just doing damage to the player is boring and won't do anything
if the player is exploring. Explosions are better because they cause noise
and hit multiple squares.

* Polymorphing the player into badforms was intentionally omitted. It turns
out that near-unavoidably polymorphing players on Zot:5 into forms with rF-
and/or limited item/spell options isn't very nice.

* On general request, contamination from Zot traps is less severe now. You
can certainly still get mutated from this (or directly malmutated), but
horror stories of 6 bad mutations from one trap should be less common.

--------------------------------------------------------------------------------
6d576b5e4f | lain | 2013-05-07 20:00:24 -0700

rough implementation of newskald spells
new spells: infusion, song of slaying, spectral weapon, spirit shield
new book: book of battle
new mons: MONS_SPECTRAL_WEAPON

--------------------------------------------------------------------------------
26163ab8af | Steve Melenchuk | 2013-05-07 20:53:19 -0600

Don't crash on vorpalising freezing or venom weapons.
This was caused by the recent LOS attack spell code merger.

--------------------------------------------------------------------------------
da99e5649b | Neil Moore | 2013-05-07 19:10:54 -0400

Don't crash after some view-flashes while travelling.
We often pass the address of an auto-storage targetter to
flash_view_delay (and once directly to flash_view).  If the call to
viewwindow() actually displays the flash, that's fine.  However, if
viewwindow returns early (for example, because the player is travelling
with a delay of -1), the address in you.flash_where could stick around
until the *next* call to viewwindow, at which point the targetter is
out of scope and we get a crash.

To reproduce: set  runrest_ignore_monster += wretched:1  and
travel_delay = -1 , create and alert a wretched star, and travel
(x<movement><enter>) with it in view.  It usually doesn't take long for
the star to pulse with eldritch light and crash the game, at least in
the webtiles build.

Fix this by having flash_view_delay() reset the flash after the delay.
Do the same in cast_los_attack_spell, after the more(); ignite_poison
already did this, so doesn't need to be fixed.

--------------------------------------------------------------------------------
dc88342323 | Chris Campbell | 2013-05-07 21:10:39 +0100

Start auto eating chunks again once gourmand is partly charged
There's no reason to not eat chunks when they give you some noticeable
amount of nutrition and they would just rot away otherwise.

--------------------------------------------------------------------------------
c2dbacc924 | Chris Campbell | 2013-05-07 21:06:15 +0100

Only auto_eat when resting/travelling/exploring, not when running

--------------------------------------------------------------------------------
ea96ed988d | Chris Campbell | 2013-05-07 21:05:04 +0100

Fix auto_eat not auto eating while hungry and wearing gourmand

--------------------------------------------------------------------------------
533e863bec | Chris Campbell | 2013-05-07 19:59:06 +0100

Don't place stairs down in the starting Abyss
Going deeper into the Abyss but still having D:1 items, a guaranteed
Lugonu altar and a nearby exit doesn't make much sense. An alternative
solution might be to let stairs deeper still generate, and make going
deeper turn the Abyss into normal Abyss.

--------------------------------------------------------------------------------
33fda2dd4a | Raphael Langella | 2013-05-07 20:47:14 +0200

Disable auto_eat when gourmand is charging up.

--------------------------------------------------------------------------------
330e58eca5 | Pete Hurst | 2013-05-07 19:00:48 +0100

Show a hand pointer on sortable webtiles headers
Without the cursor changing I didn't even realise they
were clickable until I just clicked one by chance.

--------------------------------------------------------------------------------
159d3dbeef | Chris Campbell | 2013-05-07 16:08:51 +0100

Don't give fungus form rF-
Wandering mushrooms aren't fire-vulnerable.

--------------------------------------------------------------------------------
153928cbcb | Pete Hurst | 2013-05-07 04:14:06 +0100

Prune layout_ant_hill
It looked very similar to designs that can be produced
by layer_cave and cave_shapes, and tended to come out much
the same every time despite parameter variations.

--------------------------------------------------------------------------------
bc7e50b227 | Pete Hurst | 2013-05-07 04:14:06 +0100

Don't let layout_waterfall show up too early
D:5 seemed a bit soon for an intricate and quite open layout like this.

--------------------------------------------------------------------------------
d04699d093 | Steve Melenchuk | 2013-05-06 16:52:26 -0600

Scale zombie base monsters by depth instead of using a flat +4.
This means we won't get unnecessarily early wyvern skeletons, trapdoor
spider zombies, etc. and/or easy-to-kill ogre zombies on D:2 skewing the
early game balance (see #7012).

Right now, this is scaled to return to the current norm around D:15-16
(the current end of zombie generation in main D).

--------------------------------------------------------------------------------
0c910bd0fc | Steve Melenchuk | 2013-05-06 16:07:43 -0600

Attempt to make Fannar more interesting to fight.
Unless he appears at the extreme early end of his depth range, Fannar
has been laughably easy to ice.

This removes Ozocubu's Armour from Fannar in favour of another slot of
Summon Ice Beast, and gives Fannar the ability to hide behind his ice
beasts (a la Geryon and hell beasts).

--------------------------------------------------------------------------------
1c40c44138 | Steve Melenchuk | 2013-05-06 16:07:43 -0600

Attempt to rebalance Nergalle.
Nergalle has consistently been a pushover, so this moves her earlier in
the dungeon (to the same depths as Fannar and Harold) and removes
Regeneration from her spell set in favour of another instance of
spectral orcs.

--------------------------------------------------------------------------------
0b6d138d68 | Pete Hurst | 2013-05-06 22:37:14 +0100

Combine two Gastronok vaults into one

--------------------------------------------------------------------------------
5cfd85a4d8 | Chris Campbell | 2013-05-06 22:05:12 +0100

Make Zot statues in Sprint 3 summon orb guardians and moths of wrath
Since the polymorph changes, summoning small mammals into a cloud of
mutagenic fog is worthless. Changed the statue's summon small mammals
to another shadow creatures spot, and set the random monster list to
consist of orb guardians and moths of wrath upon entering Zot.

--------------------------------------------------------------------------------
c494288c9e | Steve Melenchuk | 2013-05-06 14:56:31 -0600

Round two of duplicate code pruning for LOS attack spells.
As a reminder for those of you that don't remember b4b189b, this merges
handling for player and monster casting of Drain Life, Ozocubu's
Refrigeration, and Olgreb's Toxic Radiance so as to prune a lot of
duplicate handling between the three spells/abilities; it was reverted
because the previous version of this cleanup exhibited problems when
several of the same type of monster were in sight (#6566).

The new version of the code splits player-as-target and
monster-as-target code into their own functions (another concern raised
with the original version of this code).

Probably this can be cleaned up more, but it's better than either the
original version or the first version of the pruned code!

This reverts commit bd9d7a8fecc46bef40d884854d0cc567ce64d912.

--------------------------------------------------------------------------------
81797164b0 | Steve Melenchuk | 2013-05-06 14:24:24 -0600

Attribute deaths by monsters using rod beam spells correctly.
These are attributed like wands are (i.e. indicating the rod as the kaux
instead of the spell).

--------------------------------------------------------------------------------
a484ffafb6 | Steve Melenchuk | 2013-05-06 13:52:32 -0600

Fix a warning and a whitespace error.

--------------------------------------------------------------------------------
a1efbeda69 | Steve Melenchuk | 2013-05-06 13:51:43 -0600

Expand on bad targetting deaths by indicating what was badly aimed.

--------------------------------------------------------------------------------
629ac6fd86 | Steve Melenchuk | 2013-05-06 13:44:56 -0600

Properly attribute draining and sticky flame deaths.
Inspired by the recent change to acid death attribution.

--------------------------------------------------------------------------------
90c4787c46 | Chris Campbell | 2013-05-06 19:54:57 +0100

Remove cTele from overview screen (argonaut)
It's now a duration so showing it with resistances doesn't make much
sense.

--------------------------------------------------------------------------------
b76263150f | Chris Campbell | 2013-05-06 19:54:44 +0100

Rename Summon Small Mammals to Summon Small Mammal
And make it only ever summon one monster per cast. As a level one spell
it doesn't really need to suddenly double in efficiency at max power.

--------------------------------------------------------------------------------
dddd8c10fa | Chris Campbell | 2013-05-06 19:53:39 +0100

Fix Fulminant Prism's summon_type

--------------------------------------------------------------------------------
52360ac4e0 | elliptic | 2013-05-06 14:02:59 -0400

Remove the lava monsters from a lair entrance (minmay).

--------------------------------------------------------------------------------
0bc93f7b91 | elliptic | 2013-05-06 13:50:12 -0400

Tweak a Lair entrance vault.

--------------------------------------------------------------------------------
67ea0bd659 | Pete Hurst | 2013-05-06 17:33:21 +0100

Restrict the set of Tartarus layouts, balance weights
This gives Tar a properly unique set of layouts. The
theme is imprisonment and death and decay; these layouts
represent a mixture between the two themes.

--------------------------------------------------------------------------------
3be3a0ac1d | Pete Hurst | 2013-05-06 17:33:20 +0100

Add fortifications to grid_maze and move it to Tar
Also specifise slightly for other branches.

--------------------------------------------------------------------------------
e9e1e7a3f3 | Steve Melenchuk | 2013-05-06 10:31:40 -0600

Improve the wording of monster-generated acid death messages.
Formerly "splashed with acid by a jelly".

Now "splashed by a jelly's acid".

--------------------------------------------------------------------------------
fac9a833ab | Florian Diebold | 2013-05-06 17:21:31 +0200

Fix a problem with Webtiles formatted_scroller handling.
The webtiles_write_menu call in formatted_scroller::jump_to could
happen before the menu was sent, which would then result in two menus
on the client side. This was revealed by the message combining
changes, because the two menus would both be in the same message and
the second would be ignored by the client before.

--------------------------------------------------------------------------------
fb897f4cdf | Pete Hurst | 2013-05-06 07:13:17 +0100

Enable layout_gridlike for Lair

--------------------------------------------------------------------------------
107d774b4b | Pete Hurst | 2013-05-06 06:10:52 +0100

Remove a rogue comment

--------------------------------------------------------------------------------
214e6e9c5f | Pete Hurst | 2013-05-06 06:00:52 +0100

A highly varied Roguey, layout_gridlike

--------------------------------------------------------------------------------
99d842b8e8 | elliptic | 2013-05-06 00:48:51 -0400

Try to attribute acid deaths to the monster that caused it (if there was one).

--------------------------------------------------------------------------------
93f8b78a77 | Pete Hurst | 2013-05-06 03:41:08 +0100

Make vaults_orient_foo tags work properly
They have to be used sparingly since they can prevent
layouts connecting up well, but they work as expected now.

--------------------------------------------------------------------------------
5ca2298324 | Pete Hurst | 2013-05-06 02:17:21 +0100

A nicer city/fort layout
This possibly supercedes layout_stronghold outright.

--------------------------------------------------------------------------------
6a4a6370bb | Adam Borowski | 2013-05-05 23:38:25 +0200

Fix breakage on big endian.
Not sure if it causes "merely" rebuilding the des cache on every startup, or
the game not working at all -- I don't have a wrong endian machine to test,
and qemu is slower than my phone.  And my phone is from 2009.

--------------------------------------------------------------------------------
486074cfc3 | Adam Borowski | 2013-05-05 22:12:12 +0200

Djinn: remove a doubled check.
Looks like both me and MarvinPA had the same idea, and when pulling, I saw
the commit and assumed it's mine.

--------------------------------------------------------------------------------
647616282b | Chris Campbell | 2013-05-05 21:11:15 +0100

Fix a number of altar vaults using darkgrey walls

--------------------------------------------------------------------------------
824551025e | Adam Borowski | 2013-05-05 22:08:07 +0200

Fix wrong permissions on a file.

--------------------------------------------------------------------------------
ddab1927f6 | Adam Borowski | 2013-05-05 22:05:29 +0200

Port to OpenSolaris (Dyson/Illumos).
This might be portability for portability sake (Solaris is so dead), but
come on, we can't disappoint Igor Pashev by porting our stuff later than
several hours after the first installable build of Dyson is released :)

--------------------------------------------------------------------------------
c11c7b76fb | Adam Borowski | 2013-05-05 21:46:14 +0200

Allow tree form/djinni players to wield vamp weapons.

--------------------------------------------------------------------------------
3495f4ab93 | Samuel Bronson | 2013-05-05 14:55:25 -0400

"fix" stdout/stderr on Windows tiles. Oops.
(It's arguably still broken, but that's Windows for you ...)

--------------------------------------------------------------------------------
d439421eed | Adam Borowski | 2013-05-05 20:08:07 +0200

Don't use div_t, it causes a conflict with system headers.

--------------------------------------------------------------------------------
bb559a8bc6 | Adam Borowski | 2013-05-05 20:05:41 +0200

Allow tree form/djinni players to wield vamp weapons.

--------------------------------------------------------------------------------
99ad16fa44 | Pete Hurst | 2013-05-05 17:45:14 +0100

No longer hardcode layout_chaotic_city for Dis:7
This doesn't functionally change anything since it's
the only layout enabled for that depth now but the hardcoding
was no longer necessary.

--------------------------------------------------------------------------------
1f36ed4610 | Pete Hurst | 2013-05-05 17:42:22 +0100

Remove Dis:7 from Dis layout depths (except layout_chaotic_city)
The only reason they weren't appearing was due to hard-coding
of layout_chaotic_city there.

--------------------------------------------------------------------------------
23d59d7afe | Pete Hurst | 2013-05-05 17:39:40 +0100

Make layout_city more compatible with primary vaults
Don't place rooms that at all overlap with the vault.

It needed no_rotate / no_mirror tags otherwise it gets
rotated or mirrored *after* deciding which rooms not to place.

--------------------------------------------------------------------------------
4b56dfe87d | Pete Hurst | 2013-05-05 17:36:24 +0100

Add a check for MMT_VAULT in find_in_area
Set find_vault = true in the parameters table to
check for vaults as well. (Default is still false.)

--------------------------------------------------------------------------------
45c757964c | Pete Hurst | 2013-05-05 06:59:17 +0100

Change weights and branches of several layouts

--------------------------------------------------------------------------------
529e1cd2c2 | Pete Hurst | 2013-05-05 06:58:19 +0100

Force layout_city and layout_chaotic_city to metal walls in Dis
It's kind of Dis's gimmick after all...

--------------------------------------------------------------------------------
52a7a68afd | Pete Hurst | 2013-05-05 06:54:23 +0100

Allow specifying layout_chaotic_city material type from Lua
Previously this couldn't be done so materials would be random in Dis.

--------------------------------------------------------------------------------
81829c9d51 | Pete Hurst | 2013-05-05 05:49:07 +0100

Refactor Snake layout distortion to a utility method
procedural.transform.damped_distortion will be useful from elsewhere.

--------------------------------------------------------------------------------
28870e2827 | infiniplex | 2013-05-05 05:37:56 +0100

Added dgn-irregular-box, 3 layouts

--------------------------------------------------------------------------------
10532ba427 | Pete Hurst | 2013-05-05 05:36:57 +0100

Cellular growth layout (Dis/Pan for now)
Includes some updates to omnigrid to better analyse cellular
connections, and an improved method of connecting up / filling
cells in the grid - omnigrid.tilepick{}.

--------------------------------------------------------------------------------
d4d2116d3a | DracoOmega | 2013-05-04 22:23:30 -0230

Fix a crash with aiming magic dart past monsters with a battlesphere out

--------------------------------------------------------------------------------
32e5fa84ae | Samuel Bronson | 2013-05-04 17:06:42 -0400

Evoke fog ability icon for cloak of the Thief (Reaver)
Taken from <https://crawl.develz.org/mantis/view.php?id=6896>.

--------------------------------------------------------------------------------
3cdce205ca | Chris Campbell | 2013-05-04 19:07:55 +0100

Fix drakes throwing beams at you

--------------------------------------------------------------------------------
eb7f152bf9 | Chris Campbell | 2013-05-04 18:58:21 +0100

Remove worms from a Trog vault (minqmay)
They can't berserk. Also remove an inaccurate comment, the vault doesn't
even have a door most of the time.

--------------------------------------------------------------------------------
462ce9534f | DracoOmega | 2013-05-04 14:35:09 -0230

Make monsters less protective of the plants around them
Monster tracers previously considered damage to plants to be as significant as
damage to allied creatures that could actually do something, which led to odd
situations like Cerebov refusing to cast fire storm if you were near a bunch of
plants (or hellions not using hellfire, balrugs not using fireball, etc.)

Now damage done to plants will be considered unimportant by monsters. This will
also have the side-effect of making monsters more likely to fire beams through
them, but this is probably okay (they already did this if you worshipped Fedhas,
and the plants were no longer considered 'allies' to them)

--------------------------------------------------------------------------------
5790aa0031 | Chris Campbell | 2013-05-04 17:54:50 +0100

Fix indentation

--------------------------------------------------------------------------------
bed35e5f92 | Chris Campbell | 2013-05-04 17:51:17 +0100

Make invisible allies fully visible to the player (elliott)
Since in practice you already know for sure exactly where they are and
exactly what they are, just making them fully visible fixes a lot of
interface annoyances.

--------------------------------------------------------------------------------
52406ed87f | Samuel Bronson | 2013-05-04 12:34:36 -0400

Adjust comment at top of compat.des to reflect ongoing need for the file

--------------------------------------------------------------------------------
f7050da6dd | Samuel Bronson | 2013-05-04 12:31:11 -0400

Remove some trivial ternary expressions.

--------------------------------------------------------------------------------
b433f32bc8 | DracoOmega | 2013-05-04 12:46:20 -0230

Fix a battlesphere crash with non-standard zaps, improve tracing of bouncy beams
If the spell triggering battlesphere does not use a standard zap (ie: dazzling
spray, mephitic cloud, probably some others), fall back to tracing the path
as if magic dart was being cast. (This would otherwise crash consistently now 
that
an assert has been added for it)

Also fix broken code for tracing the path of bouncing beams. Previously only the
part up to first wall impact would be traced, meaning that if the monster you
were aiming for would only be hit after a bounce, the battlesphere would not 
lock
onto it.

--------------------------------------------------------------------------------
ecbae3b9e7 | Adam Borowski | 2013-05-04 15:53:01 +0200

Assert-crash on invalid zaps.
This means battlesphere with zap-less spells will crash every time instead
of an elusive crash on only some builds, as almost always this invalid
memory access happens to be within our space.

--------------------------------------------------------------------------------
28ae32bb58 | Brendan Hickey | 2013-05-03 19:16:44 -0700

Fixup Babel vault

--------------------------------------------------------------------------------
dfb472f98c | Samuel Bronson | 2013-05-03 21:05:55 -0400

Rejigger (and document) the win32 console handle workarounds in tilesdl.cc

--------------------------------------------------------------------------------
c3d8acea96 | Steve Melenchuk | 2013-05-03 18:23:05 -0600

Disable layout_bigger_room for now.
At the moment, this seems most likely to be until we can figure out how
to annoy the player less with our aquatic monsters and/or generally
improve their interactions with players.  But who knows.

--------------------------------------------------------------------------------
c43ded3a0c | Adam Borowski | 2013-05-04 02:07:28 +0200

Make demon blades/tridents/whips light red.
They used to masquerade as anything other than a short/long blade or a
sling.

Perhaps they should just use the regular colour of their item class
instead?  A demon blade is worse than a double sword, and demon whips
vs eveningstars is questionable.

--------------------------------------------------------------------------------
16cea40096 | Adam Borowski | 2013-05-04 01:54:54 +0200

Move unrands out of mundane colours.
Glaive of prune and Leech are new, but even before, robe of Misfortune
shouldn't have masqueraded as a cap, and hat of the Alchemist shouldn't
look like a mundane hat.

--------------------------------------------------------------------------------
07cdfc7617 | Adam Borowski | 2013-05-04 01:53:34 +0200

Make axes magenta.
Same reasons as helmets, also, magenta was not even used by anything (other
than two fixedarts).

--------------------------------------------------------------------------------
65cefadd92 | Adam Borowski | 2013-05-04 01:41:36 +0200

Make helmets magenta.
While terminals that display dark grey as black have hopefully died out,
there's some confusion with out-of-LOS.  Also, lets better reserve darkgrey
for useless items only.

--------------------------------------------------------------------------------
316020d880 | Adam Borowski | 2013-05-04 01:39:44 +0200

Djinn: actually forbid wearing boots.

--------------------------------------------------------------------------------
f8c2998282 | Adam Borowski | 2013-05-04 01:39:44 +0200

Djinn: apply said nerf bat to the hp.

--------------------------------------------------------------------------------
75cc49aa74 | David Ploog | 2013-05-04 00:29:13 +0200

Make lava/water overflow altar more likely.
It is an overflow with a reasonable obstacle (flight, blinking will get you
in). No need to make it artificially rare.

--------------------------------------------------------------------------------
c262ea1bc7 | David Ploog | 2013-05-04 00:26:02 +0200

Comment for Brendan's vault "Library of babel".

--------------------------------------------------------------------------------
8de626f747 | Neil Moore | 2013-05-03 12:36:17 -0400

Simplify.

--------------------------------------------------------------------------------
7cbebc3cc9 | Chris Campbell | 2013-05-03 16:48:59 +0100

Don't let Djinn wear boots

--------------------------------------------------------------------------------
e1160c55b7 | Florian Diebold | 2013-05-03 17:02:40 +0200

Make sure to crash properly if a write_message vsnprintf fails.

--------------------------------------------------------------------------------
f0e455d977 | David Lawrence Ramsey | 2013-05-03 03:17:30 -0500

Tweak wording.

--------------------------------------------------------------------------------
82db08e686 | Adam Borowski | 2013-05-03 08:49:04 +0200

Djinn: hide HP/MP apts.
They actually do matter, yet let's hide them so folks don't see when djinn
get hit by the nerf bat.

--------------------------------------------------------------------------------
a04c700505 | Adam Borowski | 2013-05-03 08:49:03 +0200

Simplify and betterify the handling of HP and MP in aptitude sheets.

--------------------------------------------------------------------------------
f4a3de38d4 | Adam Borowski | 2013-05-03 08:22:07 +0200

Djinn: scale the contam bar to fill up at the harmful glow threshold.

--------------------------------------------------------------------------------
9b3f8e1121 | Adam Borowski | 2013-05-03 07:22:13 +0200

Djinn: rescale the contam bar.
Exact values of red glow are not interesting, you're screwed if you ever
enter it anyway.  Let's show ranges the player is expected to be in with
more detail.

--------------------------------------------------------------------------------
59852f224b | Adam Borowski | 2013-05-03 07:17:24 +0200

Djinn: show a Contam light for non-grey glow anyway.
Elliott's patch removed it, but I consider the consequences bad enough to
deserve a warning.

--------------------------------------------------------------------------------
11bc8750b1 | Adam Borowski | 2013-05-03 07:11:19 +0200

Djinn: show magical contamination on a bar (elliott)

--------------------------------------------------------------------------------
1ad389e5a7 | Adam Borowski | 2013-05-03 06:38:28 +0200

Djinn: show the real EP cost of abilities.

--------------------------------------------------------------------------------
832c9605a1 | Adam Borowski | 2013-05-03 06:32:09 +0200

Simplify.

--------------------------------------------------------------------------------
a508b6b80c | Adam Borowski | 2013-05-03 06:07:45 +0200

Djinn: disallow Ozocubu's Armour.
While the djinn are made of fire only the same way as we are made of clay
(abrahamic religions' myths), having a layer of ice covering the body just
doesn't sound right.  I'm not a Koranic expert, though.

It was suggested to disallow all Ice spells outright, and to have Fire get
an enhancer rather than mere aptitude.  I kind of like these ideas.

--------------------------------------------------------------------------------
4648ca3b14 | Brendan Hickey | 2013-05-01 18:49:03 -0700

Tweak Djinn apts
Increase Hexes. I'm leaving alone charms.
Nerf stealth. Set the racial mod on par with Centaurs and the like.

--------------------------------------------------------------------------------
bf264c3fe6 | Adam Borowski | 2013-05-01 19:23:39 -0600

Changelog for 0.11.2 (cherry picked from commit 
87fb58c09b18d503fa29cd4a032a94a1b0d5e85a)
Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
1ba3245067 | Steve Melenchuk | 2013-05-01 14:19:28 -0600

Ensure abyss shifts with the Orb don't crash the game.
Abyss shift indirectly used player:shiftto(), which called
set_position() instead of moveto(), thus bypassing the code for
resetting the orb position; this moves the relevant code to
set_position() so that it's always called.

--------------------------------------------------------------------------------
5e247bbe5a | Steve Melenchuk | 2013-05-01 11:42:09 -0600

Update changelog through 0.13-a0-557-gcd82a8c.
Some of these entries could probably use a bit of tuning.

--------------------------------------------------------------------------------
cd82a8c694 | Steve Melenchuk | 2013-05-01 11:32:05 -0600

Fix typos in changelog. (cherry picked from commit 
a9ee58fbd0a249850f30c236bca8aede5718bfed)

--------------------------------------------------------------------------------
1202f1e314 | Christoph Schmitt | 2013-05-01 11:31:58 -0600

Changes to the changelog. (cherry picked from commit 
5a01fa20208edc4a16969ae2b6f5fc80953b0f73)
Conflicts:
	crawl-ref/docs/changelog.txt

--------------------------------------------------------------------------------
ead7fdf0c4 | Chris Campbell | 2013-05-01 18:09:24 +0100

Fix some hints mode messages
There are almost definitely more that need fixing still!

--------------------------------------------------------------------------------
5f6654997f | Chris Campbell | 2013-05-01 18:09:23 +0100

Tutorial fixes
Some missing </foo> tags, and lots of spacing fixes - it looks
like wrapping tutorial.txt has a tendency to break spacing. Should be
all fixed in console at least.

--------------------------------------------------------------------------------
7bfe5dc7fc | Florian Diebold | 2013-05-01 19:05:54 +0200

Add a way to disable Webtiles compression on the client side.
Run $.cookie("no-compression", true) and reload the page. There's no
UI for it.

--------------------------------------------------------------------------------
6bdf47715f | Adam Borowski | 2013-05-01 18:46:35 +0200

Don't speak about "mana" to the player (rchandra)

--------------------------------------------------------------------------------
43e9da97a9 | Adam Borowski | 2013-05-01 18:46:35 +0200

Mention the manual and the FAQ in release docs.
They failed at least twice in the past.

--------------------------------------------------------------------------------
5442759fd1 | Pekka Lampila | 2013-05-01 18:14:11 +0200

Disable WebSocket compression on Opera

--------------------------------------------------------------------------------
374aa91499 | Florian Diebold | 2013-05-01 18:02:28 +0200

Remove debug print statements.

--------------------------------------------------------------------------------
188f9dc642 | Pekka Lampila | 2013-05-01 17:50:23 +0200

Combine WebTiles messages and send them together
Idea being avoiding lag caused by TCP ACK etc. Crawl process provides
messages like always, but also sends a special flush message to the
WebTiles server that causes them to actually be delivered.

--------------------------------------------------------------------------------
2c9a494c8f | Brendan Hickey | 2013-04-30 23:11:08 -0700

Library of Babel vault

--------------------------------------------------------------------------------
04ec835787 | elliptic | 2013-05-01 00:46:01 -0400

Don't give the same invocations title for penance and for piety 1-5.
Also changed piety_rank to return 1 instead of 0 for piety 1-5; this doesn't
make a difference anywhere the function is currently called.

--------------------------------------------------------------------------------
61290c82f1 | Brendan Hickey | 2013-04-30 21:44:08 -0700

Circular Ruins vault

--------------------------------------------------------------------------------
55cba405e0 | Chris Campbell | 2013-05-01 04:47:23 +0100

Move translation guide into docs/develop

--------------------------------------------------------------------------------
79647d724c | Steve Melenchuk | 2013-04-30 21:34:33 -0600

Another Pan connectivity check.
This borrows a previously-added check that D:1 doesn't have any
disconnected zones to ensure that Pan doesn't have any disconnected
zones.

If Pan still generates disconnetced levels after this, call me.

--------------------------------------------------------------------------------
0d18631256 | Steve Melenchuk | 2013-04-30 21:25:48 -0600

Allow wizmode primary vault placement to work in Pan.
This is meant for testing of major panlord vaults (and hopefully will
start to give some insight into why connectivity checking isn't
working very well in Pan).

--------------------------------------------------------------------------------
8ef43c26fb | Steve Melenchuk | 2013-04-30 20:08:55 -0600

Kill "killed by an exploding it (buggy)" with an exploding it (buggy).
This was occurring when spore, ball lightning, etc. explosions killed
the player when the monster was not visible when the explosion happened.

--------------------------------------------------------------------------------
ece4a6f4c0 | elliptic | 2013-04-30 18:48:28 -0400

Sync manual from the wiki.

--------------------------------------------------------------------------------
9a34f709b5 | elliptic | 2013-04-30 18:22:35 -0400

Update FAQ.

--------------------------------------------------------------------------------
f5b600f850 | Pete Hurst | 2013-04-30 22:40:50 +0100

Remove reference to an ex-tile enum

--------------------------------------------------------------------------------
f2808973ab | Adam Borowski | 2013-04-30 22:34:26 +0100

Cure all nausea, permanently.
Contaminated chunks provide less nutrition instead.

--------------------------------------------------------------------------------
ba8700ebdf | Chris Campbell | 2013-04-30 21:21:25 +0100

Use dbname for Zin vault angels

--------------------------------------------------------------------------------
b875c9553e | Chris Campbell | 2013-04-30 20:17:09 +0100

Move some vault monster tiles to UNUSED

--------------------------------------------------------------------------------
72ca79fa80 | st_ | 2013-04-30 17:57:38 +0100

Purge many vault redefined monsters.
Left glowing angels as-is for now to avoid breaking their speech - Zin angels
could be made into real monsters or monster speech could be made to take the
monster's god into account somehow to fix them.

--------------------------------------------------------------------------------
ff591d17b9 | Chris Campbell | 2013-04-30 15:17:19 +0100

Add doors to Cerebov's castle
None of the other Cerebov vaults require cTele/LRD to get the loot, and
it's not a particularly interesting feature.

--------------------------------------------------------------------------------
efb7aca048 | st_ | 2013-04-30 15:17:18 +0100

pitsprint maintenance

--------------------------------------------------------------------------------
79a8009e7e | Adam Borowski | 2013-04-30 14:24:09 +0200

Djinn: trim the tile's head to human standards.
I used demonspawn tile as the base, assuming it's just recoloured human with
hooves -- turns out the head is shaped differently, working badly with hair.
Djinn probably should have dedicated hair styles, but hey, tile folks can
provide more input than me.

A "female" variant would be nice, too -- I thought they differ only by faint
boob marks, but it looks like the shape of arms and shoulders is strongly
distinct.  But again, someone who actually plays tiles will be able to say
more.

--------------------------------------------------------------------------------
cb455034e8 | Adam Borowski | 2013-04-30 13:45:20 +0200

Djinn: close the Death's Door (temporarily?).
MP gains can be blocked, but what with costs, including spellcasting?

Melee, running away on foot (well...), using scrolls or wands mean locking
MP shut would be an option, so let's discuss this, but for now, let's block
the abuse.

--------------------------------------------------------------------------------
19acd93470 | Adam Borowski | 2013-04-30 13:30:43 +0200

Djinn: allow potions of magic to repair rot.

--------------------------------------------------------------------------------
a9246501a8 | Adam Borowski | 2013-04-30 13:10:43 +0200

Djinn: improve M&F (-1 -> 0) and Staves (0 -> +1) aptitudes.
My logic for their weapon apts is that if you're above the ground yet your
hands are merely human sized, you have trouble doing fine manipulation to
ground-based enemies.  For M&F though, no one uses sap-like clubs -- it's
always a demon scourge, ${TIME_OF_DAY}star or a great mace, which not only
have decent reach but also benefit extra from hitting from the above.

Not sure if the apts make sense even with this adjustment, but you guys will
tell me what's wrong, right?

bh: feel free to adjust magic ones, even with no discussion.

--------------------------------------------------------------------------------
06b75d460e | Adam Borowski | 2013-04-30 13:02:54 +0200

Djinn: for now, give balls of energy an informative fail message.
Theme-wise they have no reason not to work, but they need a completely
different design than for other races.  Neither the concept of percentage
of mp lost makes much sense, nor losing all of it on a failure is an
option.

Confusion could work, except I don't want clarity to be too good here.
Antimagic is harmless to melee characters.

Paralysis could work (extra bonus for ball of fixation messages), so
could _some_ hp damage.

--------------------------------------------------------------------------------
aef62c58e9 | Samuel Bronson | 2013-04-30 02:47:49 -0400

Clean up leftover debug.h code from 7971002b and 64c133e5.

--------------------------------------------------------------------------------
25ef6f301d | Pete Hurst | 2013-04-30 07:32:27 +0100

Combine connect_adjacent_rooms and connect_adjacent_rooms2
Also combined the _wall_is_empty_foo functions.

Tweaked layout_stronghold to use the new check_empty parameter.

Tweaked layout_honeycomb to also use the parameter for most
of the doors (it was otherwise tending to come out with doors
absolutely everywhere!)

--------------------------------------------------------------------------------
f10432ccc7 | infiniplex | 2013-04-30 06:32:09 +0100

Converted layout_des door-adding function to C++

--------------------------------------------------------------------------------
2c156f6676 | Adam Borowski | 2013-04-30 00:48:43 +0200

Djinn: spam the player when hovering over liquid.
It's similar to ground-based races wading through shallow water, just
worse.

--------------------------------------------------------------------------------
c7ca69ad77 | Translators | 2013-04-30 00:35:16 +0200

[Transifex] Sync
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
14add025e1 | David Lawrence Ramsey | 2013-04-29 16:12:03 -0500

Typo fix.

--------------------------------------------------------------------------------
92b0aa7bc6 | Adam Borowski | 2013-04-29 21:28:53 +0200

Djinn: absolutely no pants!
Hair probably needs work too: at least a different default, but as, I guess,
the tile is too ugly to live, probably pointless to fret about this now.

--------------------------------------------------------------------------------
fb865f21ca | Adam Borowski | 2013-04-29 21:28:53 +0200

Djinn: so Koran says "no images of living beings"?  Tile it anyway!

--------------------------------------------------------------------------------
7df6396b6f | Adam Borowski | 2013-04-29 21:28:53 +0200

Djinn: float around the planes.
Kind of hard to walk without legs.

--------------------------------------------------------------------------------
50cf8057cd | Adam Borowski | 2013-04-29 21:28:53 +0200

Djinn: essence protection +++.
Neither angels nor demons suffer from draining, and the djinn are a being
of that kind.  Angels suffering torment mean we don't have to give djinn
that overpowered resistance -- the writeup called for something to make up
for both HP+MP being subject to halving, but I think side effects of rN+++
are enough.

--------------------------------------------------------------------------------
1e72e18c96 | Adam Borowski | 2013-04-29 21:28:52 +0200

Djinn: harmful dihydrogen monoxide is harmful.
As nothing else splashes up, this applies only to merfolk aquamancers.

--------------------------------------------------------------------------------
f2abbdb41b | Kyle Fox | 2013-04-29 12:53:08 -0400

Pressing ? displays List of Character Backgrounds during background selection.

--------------------------------------------------------------------------------
880986c573 | elliptic | 2013-04-29 12:13:20 -0400

Update the description for Imprison.

--------------------------------------------------------------------------------
6ad45a1747 | Adam Borowski | 2013-04-29 10:51:23 +0200

Fix a crash if Xom acts when you're at a zero stat.

--------------------------------------------------------------------------------
23222fdd52 | Brendan Hickey | 2013-04-28 23:54:23 -0700

Refactor ASSERT(a && b) -> ASSERT(a); ASSERT(b);
Convert conjunctive assertions into separate assertions. This ought to be 
correctness preserving. I ran the stress tests and didn't notice anything 
unusual. While I have confidence in it, if you are the slightest bit suspicious 
of this, please roll it back.

Found instances with `ASSERT(\([^(|]*\) && \([^)|]*\))`
Manually inspected each instance.

--------------------------------------------------------------------------------
ecb2158346 | Adam Borowski | 2013-04-29 08:44:13 +0200

Djinn: fiery ice isn't cool.
Interaction with Ice Form would be too confusing: are you immune to fire?
are you immune to cold?  Besides, theme-wise ice made of fire just doesn't
feel right.

--------------------------------------------------------------------------------
926959ac5b | elliptic | 2013-04-29 01:23:10 -0400

Remove Jester manual entry.
This reverts commits 62d5a83c8ca8130ab57b4f93657fa73dcea59673
and a40b90e12da1d789c484c681a203e2ee9d8321d5.

--------------------------------------------------------------------------------
f9c8af1f4a | Brendan Hickey | 2013-04-28 19:26:41 -0700

BEAM_LAVA is not harmless

--------------------------------------------------------------------------------
c5fa959c74 | Brendan Hickey | 2013-04-28 19:07:29 -0700

Fire-type beams are harmless to djinni.

--------------------------------------------------------------------------------
c1ba5b6748 | Brendan Hickey | 2013-04-28 18:28:19 -0700

Djinni Job Restrictions
Restrict the obviously bad choices: ice and earth elementalists.
Restrict some borderline cases: gladiator, monk, assassin, berserker
and so on. Basically anything negative modifiers in the primary skills.

This probably deserves some revision.

--------------------------------------------------------------------------------
8f4ad9905c | Steve Melenchuk | 2013-04-28 17:43:14 -0600

A few more alternative "strong hit" messages.
Mostly because flattening monsters like pancakes has been something
people have been spouting off for a while without it actually being in
the game, but also because those of us that have played the game long
enough probably have most of the old ones memorised by now (especially
piercing weapon users!).

--------------------------------------------------------------------------------
981c9ea12f | elliptic | 2013-04-28 16:42:43 -0400

Rename "Base evasion modifier" to "Encumbrance rating" (and change sign).

--------------------------------------------------------------------------------
4d9cfb1e3c | Samuel Bronson | 2013-04-28 14:56:29 -0400

Add a comment where we flub antennae detecting invisible monsters

--------------------------------------------------------------------------------
36f3665044 | Adam Borowski | 2013-04-28 20:27:01 +0200

Djinn: stealing their magic makes them true monsters.
MP draining tends to be way powerful when applied to HP, thus we instead
use monster-like antimagic.  This applies to antimagic weapons as well,
although those would work well even without this.

--------------------------------------------------------------------------------
dcee277b90 | Adam Borowski | 2013-04-28 20:27:01 +0200

Djinn: gone fishin'.
Water, even shallow, is deadly, so we need some way to get items from it.
Technically, you need some kind of long enough tool, but I don't want a
repeat of butchering, so let's assume all djinn carry an abstract pole or
whatever on them.

Not sure if unbounded extra time_taken is a good idea: it probably should
either be an interruptible delay or a fixed penalty (perhaps even of 0).

--------------------------------------------------------------------------------
a456ec0fdf | Adam Borowski | 2013-04-28 20:27:01 +0200

Djinn: up, up, awaay!
Normally they float just above the ground, but when over any liquid, they
need to exert themselves to rise higher.  This has a penalty of 1.5x
slowdown of all actions, unless the flight comes from an external source.
Note that this applies to shallow water as well!  Lava is included not
because of hurting the djinni himself but because it would disintegrate
all equipment, including even personal clothes.

--------------------------------------------------------------------------------
2e45d69132 | Adam Borowski | 2013-04-28 20:27:01 +0200

Djinn: look, ma, no legs!

--------------------------------------------------------------------------------
f40123031f | Adam Borowski | 2013-04-28 20:26:33 +0200

Djinn: their life is magic.
HP and MP are unified as "essence".  Per elliptic's suggestion, 1MP=2EP,
to avoid chain-casting 30 Fire Storms (15 is still pretty good...).  If
that's not enough, the rate can be modified easily.

The display looks iffy with a two-line bar, having it in one line would
require shifting the HUD -- and that would require massive changes to HUD
code (long overdue, though).

Balancing the healer god (and I'm not talking about Elyvilon) is another
issue.  If messing with glow is not enough, perhaps MP gains should give
EP at 1:1 rather than 1:2?

--------------------------------------------------------------------------------
13e17859e1 | Adam Borowski | 2013-04-28 20:02:45 +0200

Djinn: they bask in the glow.
Yellow glow causes no ill effects other than those of Corona.
As using high-level spells and abilities causes contamination, grey glow
is something normal rather than a warning, and bad mutations for narrowly
exceeding the safe zone would be too harsh.

--------------------------------------------------------------------------------
88c0ea9d7c | Adam Borowski | 2013-04-28 20:02:45 +0200

Djinn: the munchies make them glow.
Any magical food costs cause magic contamination instead; this includes
invocations and evocations.  Mundane and/or hunger-themed costs like vamp
weapons are free, though.

--------------------------------------------------------------------------------
3982d0a6b4 | Adam Borowski | 2013-04-28 20:02:44 +0200

Djinn: go breatharian, man!
They can still eat and drink, which is pointless for food with no side
effects.

--------------------------------------------------------------------------------
6add2e31c1 | Adam Borowski | 2013-04-28 20:02:44 +0200

Djinn: they're, like, pretty hot.
Full immunity to fire, including hellfire and holy fire.
Cold vulnerability, resistance is halved and capped.
rC0   -> rC-
rC+   -> rC0
rC++  -> rC0
rC+++ -> rC+

--------------------------------------------------------------------------------
cc330ea7db | Adam Borowski | 2013-04-28 20:02:44 +0200

Gather some smokeless fire, and call in DJ Inn.

--------------------------------------------------------------------------------
ab65062362 | DracoOmega | 2013-04-28 12:05:32 -0230

Don't let slimy tendrils disarm dancing weapons' weapons

--------------------------------------------------------------------------------
f194732fce | Pekka Lampila | 2013-04-28 13:32:14 +0200

Fix WebTiles handling of keys made with AltGr
Fixed for Chrome/IE, already worked on Firefox.

Signed-off-by: Florian Diebold <flodiebold@gmail.com>

--------------------------------------------------------------------------------
b018072a23 | Florian Diebold | 2013-04-28 13:12:57 +0200

Fix using the help during character creation in Webtiles (#6933).

--------------------------------------------------------------------------------
43fc226534 | Florian Diebold | 2013-04-28 13:11:07 +0200

Simplify and rename a function.

--------------------------------------------------------------------------------
8e1f0a7109 | Kyle Fox | 2013-04-28 12:52:54 +0200

Enabled aptitudes and species info hotkeys to work when selecting character.
The start and end values for the webtiles menus were not being updated
correctly when a jump_to was used before the menu actually appeared.

Signed-off-by: Florian Diebold <flodiebold@gmail.com>

--------------------------------------------------------------------------------
0387c0aff6 | Florian Diebold | 2013-04-28 12:50:30 +0200

Enable gzip encoding for Webtiles (Medar).

--------------------------------------------------------------------------------
c89513845b | elliptic | 2013-04-28 01:34:39 -0400

Add a spell power # for 200 power, remove the one for 5 power.
Previously there was no in-game way for players to know that a spell at 151
power wasn't at the power cap for that spell, because it appeared with full
to make room for this since it was nearly useless: it is extremely rare for
players to use spells seriously at power less than 5.

--------------------------------------------------------------------------------
ffa3d37d7b | DracoOmega | 2013-04-28 02:13:12 -0230

Fix battlespheres being unable to reposition to fire at targets
This became broken when monster turn scheduling was rewritten.

--------------------------------------------------------------------------------
a7765e341c | David Lawrence Ramsey | 2013-04-27 22:34:48 -0500

Simplify.

--------------------------------------------------------------------------------
2a5f276b44 | Samuel Bronson | 2013-04-27 21:10:46 -0400

Remove fedhas_growing_garden for being majorly annoying (rchandra)
aka: remove the fedhas vault that has you autoexplore into all the rapid
growing oklobs

--------------------------------------------------------------------------------
56bd9991e9 | Chris Campbell | 2013-04-28 01:34:40 +0100

Adjust lugonu_bribe for god changes, identify guaranteed loot

--------------------------------------------------------------------------------
f93f57408c | Chris Campbell | 2013-04-27 23:15:43 +0100

Add no transforming to Zin's conduct list

--------------------------------------------------------------------------------
3029c17740 | Chris Campbell | 2013-04-27 21:48:43 +0100

Remove an altar vault
The alarm trap in this vault would have to be pre-revealed for it to be
acceptable, but then the vault becomes rather pointless. It could be
re-instated with the walls falling on some other flavour-only trigger,
perhaps.

--------------------------------------------------------------------------------
59108dee7e | Chris Campbell | 2013-04-27 21:39:11 +0100

Fix an unrand vault
Monsters shouldn't be able to use the obsidian axe since it is tagged
special (it's probably a bug that this vault was even valid?).

--------------------------------------------------------------------------------
03c8a00e57 | Chris Campbell | 2013-04-27 19:28:36 +0100

Update year in license.txt

--------------------------------------------------------------------------------
8ffd702987 | Chris Campbell | 2013-04-27 18:17:52 +0100

Hide some removed items from the item knowledge screen

--------------------------------------------------------------------------------
15920dad52 | Pekka Lampila | 2013-04-27 18:17:52 +0100

Release sealed doors when vault warden is pacified

--------------------------------------------------------------------------------
7067b9f0af | Adam Borowski | 2013-04-27 14:42:39 +0200

Crash nicely instead of taking 100% CPU forever when handle_monsters() loops.

--------------------------------------------------------------------------------
2c4a6917dd | Pete Hurst | 2013-04-27 07:27:48 +0100

Prevent jellies munching on Zig loot
Removed some redundant code also

--------------------------------------------------------------------------------
9de01b3a7d | DracoOmega | 2013-04-27 03:00:40 -0230

Don't replace runed doors with unruned ones in Sprint and portal vaults

--------------------------------------------------------------------------------
2da1268031 | Steve Melenchuk | 2013-04-26 18:48:07 -0600

Print resist messages for relevant AF_ melee attacks (#6960).
This is a bit kludgy, but I can't think of a better way to do it with
the code as it currently stands.

--------------------------------------------------------------------------------
83d8fbef16 | Steve Melenchuk | 2013-04-26 17:16:02 -0600

Fix up the volcano portal messages again.
Still not completely happy with this; perhaps the dlua needs tweaking so
that we can be more flexible with these messages.

--------------------------------------------------------------------------------
c511d3ab60 | Pete Hurst | 2013-04-26 21:57:39 +0100

Remove a superfluous Javascript log

--------------------------------------------------------------------------------
d170eacdc5 | Pete Hurst | 2013-04-26 21:25:47 +0100

Fixed Javascript errors introduced in webtiles by 95663a

--------------------------------------------------------------------------------
1c3b1a5885 | Adam Borowski | 2013-04-26 18:23:08 +0200

Typo fix.

--------------------------------------------------------------------------------
5c79c9b895 | Adam Borowski | 2013-04-26 17:35:31 +0200

Fix a few "no previouc declaration" warnings in tiles.

--------------------------------------------------------------------------------
2552ddc642 | David Lawrence Ramsey | 2013-04-26 10:34:02 -0500

Fix warning caused by apparently missing #ifdef.

--------------------------------------------------------------------------------
7e4cf13bbc | David Lawrence Ramsey | 2013-04-26 10:32:49 -0500

Add spacing fix.

--------------------------------------------------------------------------------
b1144867e8 | David Lawrence Ramsey | 2013-04-26 10:30:48 -0500

Properly use default values in a few places.

--------------------------------------------------------------------------------
4b82d48426 | Adam Borowski | 2013-04-26 17:06:03 +0200

Disallow identifying/enchanting/recharging melded items.
This is bab35525 without regressions, although still with duplicated code.

--------------------------------------------------------------------------------
22924f822b | Adam Borowski | 2013-04-26 17:03:18 +0200

Make a function static.

--------------------------------------------------------------------------------
951147111c | Adam Borowski | 2013-04-26 17:03:18 +0200

Axe description for a has-been vault.

--------------------------------------------------------------------------------
d4e146de17 | Adam Borowski | 2013-04-26 17:03:18 +0200

Axe a pair of braces.

--------------------------------------------------------------------------------
0148f4f049 | Adam Borowski | 2013-04-26 17:03:17 +0200

Purge an used but never implemented function.
Per jpeg's comment, an item being found at the same spot as a corpse doesn't
mean it came from the monster; this function has always been a stub since
pre-DCSS.

--------------------------------------------------------------------------------
6a74e76f8d | Adam Borowski | 2013-04-26 17:03:17 +0200

Save orig_monnum as monster_type rather than monster_type + 1.
Note that there are other possible values, all negative:
-god_type for god gifts
-item_source_type for acquirement, starting gear, shops and wizmode

--------------------------------------------------------------------------------
62aa3a732f | Adam Borowski | 2013-04-26 17:03:17 +0200

Fix a "no previous declaration" warning on Windows.

--------------------------------------------------------------------------------
95663aa495 | Adam Borowski | 2013-04-26 17:03:17 +0200

Use ASSERT() rather than assert() in tiles code.
Our version provides more information when it fails, and allows more control.

--------------------------------------------------------------------------------
db6b544635 | Adam Borowski | 2013-04-26 17:03:17 +0200

Include debug.h earlier.
Via externs.h -> bitary.h, it was effectively included by everything anyway,
and this way simplifies include chains.

--------------------------------------------------------------------------------
26712a4bbb | Adam Borowski | 2013-04-26 17:03:17 +0200

Fix hungry vampires getting rod food costs halved twice.

--------------------------------------------------------------------------------
95c02b930c | Adam Borowski | 2013-04-26 17:03:16 +0200

Ignore warnings about type limits, but only inside ASSERT().
These show up on gcc -Wextra, and in clang by default.  These come from two
sources:
* us checking currently true cases that may change in the future
* clang narrowing enum types and then looking at the narrowed size
The latter is quite bogus, as an enum with < 128 values will break the
moment 128th value is added, something this assertion guards against.
In any case, assertions by definition are meant to catch stuff that
shouldn't happen, and if flow analysis proves it indeed can't happen,
that doesn't make the assertion less valuable.

After this commit, remaining warnings in -Wextra --std=c++11 in Crawl
proper (TODO: rltiles) are either compiler bugs (clang's: private field
'foo' is not used [-Wunused-private-field]) or annoying crap that can't
be disabled (gcc's: enumeral and non-enumeral type in conditional
expression [enabled by default]).

--------------------------------------------------------------------------------
ebf4e2fde7 | Adam Borowski | 2013-04-26 17:03:16 +0200

Fix a name conflict with std::ignore.
Both in new gcc and new clang it causes a warning only with -Wextra, but
clearing it costs us nothing.

--------------------------------------------------------------------------------
36e1f6c9ed | Adam Borowski | 2013-04-26 17:03:16 +0200

Fix invalid message colour and job names being accepted.

--------------------------------------------------------------------------------
5f493bf436 | Adam Borowski | 2013-04-26 17:03:16 +0200

Fix a monster_type misbuild with clang-3.3.
Again, a magic value of -1.  It was also wrongly checked in a few error
handling routines, rendering them inoperative even with gcc.

--------------------------------------------------------------------------------
4d69c10402 | Adam Borowski | 2013-04-26 17:03:16 +0200

Drop a couple of useless comparisons.
GOD_NO_GOD isn't -1 since ages ago, so these were inoperative.

I'm afraid of dropping :god=: in logfiles -- should we fix its omission
or would it break bots?

--------------------------------------------------------------------------------
aefa5b469d | Adam Borowski | 2013-04-26 17:03:16 +0200

Fix a misbuild with clang-3.3.
Our fault: enum types are not guaranteed to allow storing any values outside
defined values, and the compiler is allowed to reduce storage size if it
wants to.  Since version 3.3, clang prefers unsigned types here.  We used
-1 and -2 as magic values, which would then fail comparison.

I did not preserve the value of PlaceInfo.branch of -2 (ie, uninitialized).
The whole branch field is mostly redundant, though, and we can get rid of
it once get_all_place_info() is refactored.

--------------------------------------------------------------------------------
4cf483e8a2 | Adam Borowski | 2013-04-26 17:03:16 +0200

Purge the code for recharging weapons.

--------------------------------------------------------------------------------
3d87c34f77 | Adam Borowski | 2013-04-26 17:03:15 +0200

Revert "Prevent selecting inventory items that cannot be used, including melded 
items for scrolls"
Doing this in the filter causes severe regressions:
* no failure messages are given anymore.  This includes cases that are
  unobvious to new players, like, say, why that bright green or red chunk
  is inedible.
* if a chunk rots without you noticing, the menu interface will consume
  any keys you pressed subsequently, making you waste permafood.  This can
  happen for other item types too, it's just chunks being ingrained so
  hard into muscle memory that people don't read prompts carefully.

Having the menu filter duplicate the work is not good either, but until
this mess is refactored, the filter has not enough data.

Proposed interface: const char* why_not_use(CMD_EAT, item) which returns
null if you can actually use the item.

This reverts commit bab355256aed893ee730059d95111987b32c3815.

--------------------------------------------------------------------------------
bcafd50d28 | Adam Borowski | 2013-04-26 17:03:15 +0200

Revert "Don't allow player bypassing menu restrictions with clua"
Part of revert of bab35525, reverting them on their own because of a tangle
of conflicts.

This reverts commit 23dc6cb2b361849b4a3cb66e9fd4638c4c47f192.

--------------------------------------------------------------------------------
82c4deb8a4 | Pekka Lampila | 2013-04-26 16:35:24 +0200

Show wielded unidentified decks right in WebTiles
Wielding unidentified deck showed up as a buggy item, because name_aux
couldn't handle the item returned by get_item_info that has subtype of
NUM_MISCELLANY.

--------------------------------------------------------------------------------
0930f439eb | Pekka Lampila | 2013-04-26 16:24:09 +0200

Copy needs_autopickup prop in get_item_info
Fixes autopickup graphic not showing up for certain items (some
jewellery identified by Ash).

--------------------------------------------------------------------------------
43caef8298 | Pekka Lampila | 2013-04-26 16:15:30 +0200

In WebTiles show read message key as F12
This is in the "List of commands" help page.

(Modified to only show it if controlled from the web -- edlothiol)

--------------------------------------------------------------------------------
c124394bf5 | Pekka Lampila | 2013-04-26 16:02:31 +0200

Really fix WebTiles HP/MP bar overflow

--------------------------------------------------------------------------------
1ca388fdce | Pekka Lampila | 2013-04-26 16:01:19 +0200

Allow using - key in WebTiles stash search menu

--------------------------------------------------------------------------------
7b8d2cc1c9 | DracoOmega | 2013-04-26 05:59:26 -0230

Let disintegration and orbs of destruction properly destroy sealed doors

--------------------------------------------------------------------------------
031e97a33e | DracoOmega | 2013-04-26 05:33:39 -0230

Fix a possible crash with using interlevel recall during the orb run

--------------------------------------------------------------------------------
f1925c4012 | DracoOmega | 2013-04-26 04:05:57 -0230

Unbreak tiles compilation

--------------------------------------------------------------------------------
d58ed0aed8 | elliptic | 2013-04-25 23:47:39 -0400

Fix rounding details in new formulas.
Player EV shouldn't have (a tiny bit of) randomness, AEVP formula wasn't as
smooth as it could be.

--------------------------------------------------------------------------------
f24eba4eaa | elliptic | 2013-04-25 23:47:39 -0400

Fix various breakages caused by body armour EVP rescaling.
Bardings gave -7 EV instead of -2, Ozo's armour didn't work on leather,
Jiyva stat action went crazy, etc.

--------------------------------------------------------------------------------
51f303863f | elliptic | 2013-04-25 23:47:39 -0400

Remove splint mail item descriptions.

--------------------------------------------------------------------------------
af318481e0 | Pete Hurst | 2013-04-26 04:35:53 +0100

Tweak some weights in layout_grids
And enable some layouts for Pan

--------------------------------------------------------------------------------
265e7390b2 | Pete Hurst | 2013-04-26 04:35:52 +0100

A city layout with nice detail, layout_stronghold
This uses similar grid techniques to layout_grid_maze but with a
bit more complexity in how rooms are linked up.

--------------------------------------------------------------------------------
1b88556805 | Pete Hurst | 2013-04-26 04:35:52 +0100

Bail connect-up when no valid groups found

--------------------------------------------------------------------------------
2bf6e517d8 | infiniplex | 2013-04-26 04:35:51 +0100

Added dgn_connect_adjacent_rooms LUA function

--------------------------------------------------------------------------------
6b2219cf93 | Steve Melenchuk | 2013-04-25 19:55:10 -0600

Clean up the new portal announcements.
In addition to general copyediting, this uses the verb and noisemaker
fields so players get distance reporting instead of just messages, and
also tags the announcements in message defaults so that they are
displayed in warning colours just like other portals.

--------------------------------------------------------------------------------
c135c4ebb3 | Steve Melenchuk | 2013-04-25 19:47:02 -0600

Fix an occasional hiccup with the previous splint mail vault fix.

--------------------------------------------------------------------------------
5283847e2a | Steve Melenchuk | 2013-04-25 18:54:08 -0600

Remove splint mail from vault definitions so game starts again.
I've tried to keep the combined weight of new chain mail to be equal to
the combined old chain/splint weight, though errors have probably crept
in.

Anyway, the game starts properly after this commit.

--------------------------------------------------------------------------------
a04a6eba42 | Raphael Langella | 2013-04-26 00:32:47 +0200

New formula for the effect of strength on AEVP.
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:mutation:stats&#effect
_of_strength_on_armour_evp

New formula is: (2/5) * evp^2 / (str+3)
Also, base evasion penalty is rescaled for all armours:

-1 -> -4
-2 -> -7
-3 -> -11
-4 -> -15
-5 -> -17
-6 -> -19
-8 -> -24
-9 -> -27

--------------------------------------------------------------------------------
642d18e0e1 | Raphael Langella | 2013-04-26 00:32:47 +0200

Remove splint mail and buff chain mail to 8 base AC.

--------------------------------------------------------------------------------
a259dab223 | Pekka Lampila | 2013-04-25 18:22:14 +0100

Show (unknown) in shopping list and stash tracker
This is for identified items in shops that are not yet identified by the
player. Was already shown in actual shop menu.

--------------------------------------------------------------------------------
34cae138a5 | Raphael Langella | 2013-04-25 15:36:09 +0200

Update travel speed when changing level.

--------------------------------------------------------------------------------
d566dd8379 | Pete Hurst | 2013-04-25 06:33:50 +0100

Upgrade layout_grid_maze
This adds a lot more variation. It can now get doors carved instead of just
open walls, and also can create multiple paths instead of a pure maze.

--------------------------------------------------------------------------------
e6bae66aa9 | Pete Hurst | 2013-04-25 06:33:49 +0100

Slightly improve callbacks for grid connecting

--------------------------------------------------------------------------------
ebb0eb78c4 | Pete Hurst | 2013-04-25 06:33:49 +0100

Factor out omnigrid connect-up
A separate function, omnigrid.connect, can now be used to link up omnigrid
cells in a parameterised and callback-supporting way.

Slightly varied parameters of layout_grid_maze.

Stopped layout_long_grid appearing on D:1.

--------------------------------------------------------------------------------
1bf6f2f353 | khalil | 2013-04-24 21:33:17 -0700

Announce all Portals
Announce portal vaults to players. There was historical concern that this would 
turn crawl into 'portal sprint', but dpeg believes this is unfounded.

Tired of portal regret?
Low on energy?
Try dying in Ossuary!

Signed-off-by: Brendan Hickey <brendan@bhickey.net>

--------------------------------------------------------------------------------
980274b796 | elliptic | 2013-04-24 23:24:34 -0400

De-runify a door in lightli_orcish_oven.
There's nothing dangerous behind it...

--------------------------------------------------------------------------------
ce3eadc754 | elliptic | 2013-04-24 18:25:40 -0400

Fix Finesse being applied multiple times for reaching attacks.

--------------------------------------------------------------------------------
05760b0c3f | Translators | 2013-04-24 23:44:41 +0200

[Transifex] Sync
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
e03f76a5c0 | infiniplex | 2013-04-24 18:00:15 +0100

Forbid layout_dis placing adjacent statues

--------------------------------------------------------------------------------
09829b88fd | infiniplex | 2013-04-24 17:52:12 +0100

Modified layout_dis to a max 1 door per room wall

--------------------------------------------------------------------------------
daf1e84c6f | Pete Hurst | 2013-04-24 17:19:35 +0100

Spacing fix

--------------------------------------------------------------------------------
741ecc0828 | Pete Hurst | 2013-04-24 17:19:34 +0100

Adjust some weights of cave layouts
These were showing up a little too often.

--------------------------------------------------------------------------------
516ff4c097 | Pete Hurst | 2013-04-24 17:19:33 +0100

A grid-based maze layout
Produces complex and interesting mazes with non-narrow
corridors and sometimes big rooms.

--------------------------------------------------------------------------------
8959c3091c | Pete Hurst | 2013-04-24 17:19:32 +0100

Lua util.random_weighted_keys for picking random hashmap elements
The existing util.random_weighted_from only worked on numerical arrays.

--------------------------------------------------------------------------------
34441b62d9 | Pete Hurst | 2013-04-24 17:19:31 +0100

Determine bordering cells during grid subdivision
Having a map of which cells neighbour which is useful
for connecting grids up later.

--------------------------------------------------------------------------------
ddc62b8f65 | Raphael Langella | 2013-04-24 16:16:28 +0200

Give a message about Oka's suppression of demonic guardian.

--------------------------------------------------------------------------------
848cc07e59 | Pekka Lampila | 2013-04-24 01:33:18 +0100

Don't let blood potions rot in shops

--------------------------------------------------------------------------------
daab79c291 | Pekka Lampila | 2013-04-24 01:26:29 +0100

Confirm self targeting with Dispel Undead

--------------------------------------------------------------------------------
89b9bc2af8 | Samuel Bronson | 2013-04-23 17:58:10 -0400

Print special field of item_def using appropriate enum types.

--------------------------------------------------------------------------------
898c4da0e2 | Samuel Bronson | 2013-04-23 17:06:37 -0400

Add pretty-printing of flags field for item_def.

--------------------------------------------------------------------------------
c665ca8bc6 | Pete Hurst | 2013-04-23 19:01:48 +0100

Restore layout_caves iterations but veto on tiny levels
With the higher iterations it was much rarer to get proper
bubbly levels in Orc/Slime. Now there's a veto ensuring
a floor size of over 600.

Additionally, I simplified the veto in layout_dis and
layout_honeycomb to fit on 1 line.

--------------------------------------------------------------------------------
1cb82f7567 | Chris Campbell | 2013-04-23 17:45:35 +0100

Comment fix

--------------------------------------------------------------------------------
0366bdea7d | Pete Hurst | 2013-04-23 10:48:23 +0100

Give layout_dis an alternate generation method
This uses the same method of connecting up rooms as layout_honeycomb (including 
filling any disconnected rooms, rather than trying to ensure they're all 
connected up).

This results in a non-tree-like graph of rooms as opposed to the original, and 
no longer necessarily full-level-sized layouts since many might get filled in.

A veto has been added to ensure the level meets a minimum size.

--------------------------------------------------------------------------------
05d0228198 | Pete Hurst | 2013-04-23 10:24:06 +0100

Fix Lua error in layout_honeycomb and make some depth adjustments
The random_wall_material code had been copied from layout.des but it referenced 
e.subst (instead of just subst) causing an error. I moved it to a header 
function in layout_pools.des and also added an anti-Dis check (in layout.des 
too).

Additionally I enabled layout_honeycomb earlier in D and also in Snake and Dis.

Fixed some whitespace in l_dgnbld.cc.

--------------------------------------------------------------------------------
5475aa40c2 | infiniplex | 2013-04-23 09:46:17 +0100

Translated "pools" layout code to C++

--------------------------------------------------------------------------------
a0bddef606 | Steve Melenchuk | 2013-04-22 21:39:37 -0600

Remove a magic 2/3 from the mana link mutation.
Proportion of mana regeneration vs. HP regeneration is now 100% - (ratio
of mana remaining), i.e. (maxmp - mp) / (maxmp).

--------------------------------------------------------------------------------
7778caa9ee | cjo | 2013-04-23 03:20:53 +0100

Mana Shield demonspawn mutation.
Tier 2 mutation. Level one gives guardian spirit, level two gives increased
mana regen rate, level three lets mana regenerate in place of health at low
mana.

--------------------------------------------------------------------------------
d69058b34d | Chris Campbell | 2013-04-22 22:22:34 +0100

Choose Pan floor/wall colours randomly instead of basing them on monsters
This could be abused to identify the presence of particularly dangerous
monsters in advance (for example by recolouring lots of demons, see
#5985). Removed dgn_set_colours_from_monsters(), since the Abyss also
already has its own way of picking colours.

--------------------------------------------------------------------------------
bf6416b067 | Samuel Bronson | 2013-04-22 15:09:16 -0400

Correct two glaring errors in the item_def pretty-printer

--------------------------------------------------------------------------------
f219b42317 | Raphael Langella | 2013-04-22 18:14:14 +0200

A new command to set your travel speed to your slowest ally.
By setting this, the player can explore the level without losing is slower
allies. This should make it much nicer to use zombies without recall.
The setting should probably be saved, but I wanted to get some feedback on it
before changing minor version.

--------------------------------------------------------------------------------
ff77f02fc2 | Steve Melenchuk | 2013-04-22 09:18:48 -0600

Let fulminant prisms and ball lightnings blow up instead of crashing (#6946).

--------------------------------------------------------------------------------
27b33f2754 | Steve Melenchuk | 2013-04-21 18:33:54 -0600

Have monsters act in order of speed_increment values.
This means that monsters only get consecutive actions if they are much
faster than anything around them, and that fineffs fire once per monster
action (fixing #6936).

A good way to illustrate this change is to generate a pack of centaurs
with perm_ench:haste.  Previously, one centaur would fire off as many
shots as it could take, then the next centaur, etc. - they were nice and
took turns in order.  Now, you'll get consecutive volleys - they all
seem like they are firing simultaneously.

--------------------------------------------------------------------------------
aaa69ee92a | elliptic | 2013-04-21 20:27:09 -0400

Fix poisonous cloud prompting on self-target even with rPois.

--------------------------------------------------------------------------------
14c7ae8e25 | Samuel Bronson | 2013-04-21 19:51:57 -0400

Disable crazy sigil colors

--------------------------------------------------------------------------------
8c8430ccca | Samuel Bronson | 2013-04-21 17:30:17 -0400

Fix ontoclasm's "tile offset thing" when rebuilding with resized source PNGs
This is probably not the usual cause of such problems in WebTiles,
though:

* This doesn't usually happen on servers except when
  manually-triggered rebuilds result in the same branch being built
  twice in a row AND a PNG has been resized.

* This problem won't go away on reloading the page, since the
  coordinates won't be up-to-date in *any* file.

--------------------------------------------------------------------------------
168e9a3a74 | Samuel Bronson | 2013-04-21 14:52:39 -0400

Eradicate ASSERT(smc); replace with something more informative.
As I say in the comment, it's getting really old.

--------------------------------------------------------------------------------
700b39dd4f | Samuel Bronson | 2013-04-21 01:17:55 -0400

Make grunt_ashenzari_visionary subvaults more teleport-proof.

--------------------------------------------------------------------------------
21ddf4604d | Samuel Bronson | 2013-04-20 22:50:51 -0400

Remove the explicit copy constructor and assignment operator for level_id.
These don't do anything that the defaults wouldn't do except
disqualify level_id from being trivially copyable.

--------------------------------------------------------------------------------
62db944067 | Samuel Bronson | 2013-04-20 21:36:01 -0400

Preliminary GDB pretty-printer for item_def.

--------------------------------------------------------------------------------
de6dc51654 | Samuel Bronson | 2013-04-20 21:16:54 -0400

Update doc comment in crash.cc.

--------------------------------------------------------------------------------
7afbc3d844 | Samuel Bronson | 2013-04-20 21:15:37 -0400

Remove outdated comment from areas.cc

--------------------------------------------------------------------------------
5f70265f7c | Translators | 2013-04-20 19:08:25 +0200

[Transifex] Sync
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
ca85252ff6 | Raphael Langella | 2013-04-20 19:01:01 +0200

Unify the checks for monster and player recall to avoid code duplication.

--------------------------------------------------------------------------------
f36a11aeb7 | Samuel Bronson | 2013-04-19 23:31:03 -0400

Devastator: give "Time to introduce the shillelagh law." message on unmeld.
This is for consistancy with other equip messages.

--------------------------------------------------------------------------------
bc54540177 | Samuel Bronson | 2013-04-19 23:29:06 -0400

Scythe of Curses: don't give miscast effect on unmeld.

--------------------------------------------------------------------------------
d01f56cf85 | elliptic | 2013-04-19 22:51:23 -0400

Give seraphs MAG_IMMUNE (simmarine).
They had 266 MR.

--------------------------------------------------------------------------------
d11d99d1fd | David Lawrence Ramsey | 2013-04-19 17:49:22 -0500

Fix more of Mantis 6884: Manually uncurse hides after placing them.
The previous fix only worked for hides made from butchering corpses.

--------------------------------------------------------------------------------
33e23a9b0e | David Lawrence Ramsey | 2013-04-19 17:43:55 -0500

Simplify.

--------------------------------------------------------------------------------
13ef16de9b | Samuel Bronson | 2013-04-19 14:59:23 -0400

Print messages on unmeld, partly to avoid silly messages.
For example:
_You fall off the wall. It begins to drip with poison!

--------------------------------------------------------------------------------
a98a9c3cad | Chris Campbell | 2013-04-19 18:52:04 +0100

Improve the Serpent of Hell's defenses
Since they were barely better than plain dragon AC/EV. From 12/9 to
16/12, as well as giving the Dis and Tar serpents more appropriate
resists.

--------------------------------------------------------------------------------
935865657b | elliptic | 2013-04-18 20:07:01 -0400

Don't make blinking into shallow water take longer.

--------------------------------------------------------------------------------
192f84f362 | elliptic | 2013-04-18 15:02:50 -0400

Don't blame obsidian axe demons on the player's god.

--------------------------------------------------------------------------------
47f71f5e18 | elliptic | 2013-04-17 22:08:37 -0400

Don't tell vampires they can bottle blood when they can't.

--------------------------------------------------------------------------------
b6b0b3154d | Pekka Lampila | 2013-04-17 15:25:08 -0400

Annotate god gifts for stash search

--------------------------------------------------------------------------------
231196a062 | Chris Campbell | 2013-04-17 16:58:49 +0100

Fungi don't have mouths

--------------------------------------------------------------------------------
fade1d7c5c | Chris Campbell | 2013-04-17 16:58:06 +0100

Add a message when failing to move in fungus form

--------------------------------------------------------------------------------
784dc8e28b | Chris Campbell | 2013-04-17 16:20:26 +0100

Increase Portal card's cTele duration
So that it doesn't expire before the teleport goes off.

--------------------------------------------------------------------------------
b14bea4fae | Pekka Lampila | 2013-04-17 11:38:46 +0200

Hide useless skills from tiles skill tab
This also includes stabbing skill that no longer exists.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
85ae4b4ff5 | Chris Campbell | 2013-04-16 22:43:56 +0100

Don't give experience to summons
It has mostly no effect anyway, other than confusing players with "Your
rat looks stronger" messages.

--------------------------------------------------------------------------------
357c4e2757 | Pekka Lampila | 2013-04-16 16:01:43 -0500

Show unwield prompt in inv menu for all item types

--------------------------------------------------------------------------------
80dd3e3282 | Pekka Lampila | 2013-04-16 16:01:30 -0500

Don't allow wielding armour or jewellery
This simplifies things by making sure that if a certain item is equipped
it's always at the same slot.

--------------------------------------------------------------------------------
9c4de7a44e | Steve Melenchuk | 2013-04-15 17:00:58 -0600

Remove an entry vault.
It's causing too many problems, to wit: chaos effects teleporting
then-shapeshifting monsters out of the vault to ruthlessly cut down the
player on D:1, subjecting players to interface spam (halo, umbra,
berserk shouting, etc.), etc.

As much as I like the idea, it needs to be done a lot better than this.

--------------------------------------------------------------------------------
c76324ba2c | David Lawrence Ramsey | 2013-04-15 16:13:19 -0500

Add formatting fix.

--------------------------------------------------------------------------------
64e9775a27 | Raphael Langella | 2013-04-15 22:58:53 +0200

Fix corpses being grey for thristy vampires.

--------------------------------------------------------------------------------
ef817f58fd | Raphael Langella | 2013-04-15 22:41:23 +0200

Prevent the new quotes from being unwrapped.

--------------------------------------------------------------------------------
bb48ef04c8 | Chris Campbell | 2013-04-15 18:57:08 +0100

Remove books from a Vehumet subvault

--------------------------------------------------------------------------------
8d3890fdd3 | Chris Campbell | 2013-04-15 18:57:07 +0100

Add a missing option to options_guide contents

--------------------------------------------------------------------------------
b080a73fe3 | Pete Hurst | 2013-04-15 14:19:44 +0100

A slightly more varied grid layout

--------------------------------------------------------------------------------
a36e9e1fa3 | Pete Hurst | 2013-04-15 14:19:07 +0100

Procedurally render small map areas

--------------------------------------------------------------------------------
131b4bea5f | Pete Hurst | 2013-04-15 09:12:13 +0100

Quotes for literary items (#6371 - WarukuZ)
It seems the most literary items didn't themselves have quotes.

This adds a quote for scrolls, and a quote for several forms of book (manuals, 
tome, and unidentified books). Adding a quote to all identified books is 
harder, and the screen is already quite full with the spell list.

--------------------------------------------------------------------------------
d12e993cd3 | Pete Hurst | 2013-04-15 09:12:12 +0100

Clean up a couple of halls layouts
There was a missing call to zonify, and a redundant fill pass

--------------------------------------------------------------------------------
d8a97c477e | Pete Hurst | 2013-04-15 09:12:12 +0100

Clean up and enable the caves chaotic city
Some features aren't enabled yet but it's reasonably quick to generate now

Also lowered the weights of some grid layouts

--------------------------------------------------------------------------------
6c5a15d9ce | ontoclasm | 2013-04-14 20:45:52 -0500

Spear and quarterstaff doll tiles (roctavian, 6892)

--------------------------------------------------------------------------------
d05f410291 | elliptic | 2013-04-14 21:41:51 -0400

Make ctrl-attacking a wall not waste a turn.
This removes wall_hit trigger capabilities and the single vault that used
it. There are plenty of other ways of triggering events.

--------------------------------------------------------------------------------
9efb55a327 | ontoclasm | 2013-04-14 20:39:49 -0500

Demon and dragon tiles (roctavian, 6892)

--------------------------------------------------------------------------------
94f06104f9 | Adam Borowski | 2013-04-15 03:23:19 +0200

Rewrite the section about platforms Crawl runs on.

--------------------------------------------------------------------------------
29d13d96a1 | Adam Borowski | 2013-04-15 03:23:19 +0200

Remove a "last modified" header from INSTALL.txt
No one ever remembers to update it when making changes.

--------------------------------------------------------------------------------
3dbf95886c | ontoclasm | 2013-04-14 19:51:21 -0500

Forest fire tile

--------------------------------------------------------------------------------
e4940c2f65 | ontoclasm | 2013-04-14 19:00:16 -0500

Realign Lamia's weapon

--------------------------------------------------------------------------------
162397d39d | ontoclasm | 2013-04-14 18:55:39 -0500

Erica tile edit

--------------------------------------------------------------------------------
001aa0366f | ontoclasm | 2013-04-14 18:53:14 -0500

New Lamia tile

--------------------------------------------------------------------------------
d3c1763743 | Samuel Bronson | 2013-04-14 19:31:47 -0400

Make Yred/Beogh's recall abilities prevent recalled dudes from running off
That is, make them follow you unless they were already attacking a
monster you can see.

--------------------------------------------------------------------------------
85ceb4fef6 | Pete Hurst | 2013-04-14 22:16:14 +0100

A new layout in D/Tar
Uses an inverse polar transform on the worley algorithm

--------------------------------------------------------------------------------
a233b34d80 | Pete Hurst | 2013-04-14 18:11:23 +0100

Sometimes use a polar transform in layout_cathedral_of_symmetry

--------------------------------------------------------------------------------
5ab375cf01 | elliptic | 2013-04-14 00:57:27 -0400

Give Skalds a +1 weapon and a potion of berserk rage to start.

--------------------------------------------------------------------------------
68ecb999e3 | David Lawrence Ramsey | 2013-04-13 15:20:55 -0500

Add spacing fix.

--------------------------------------------------------------------------------
3609cce169 | DracoOmega | 2013-04-13 17:23:50 -0230

Improve prompts for moving while confused and near deep water or lava
Describe the attempted action as 'stumble around' instead of 'move' to
hopefully better convey what would happen if you try, and moveover
point out that ctrl+direction would allow you to safely attempt an
attack in this circumstance if you were prompted by trying to move
into an unfriendly creature.

--------------------------------------------------------------------------------
5d3cb56863 | elliptic | 2013-04-13 14:04:06 -0400

Apply attack delay and hunger for failed reaching attacks (#6901).

--------------------------------------------------------------------------------
296dda2f51 | Adam Borowski | 2013-04-13 12:36:24 +0200

Fix jumping spiders leaping when blinked.

--------------------------------------------------------------------------------
e4252377cb | Adam Borowski | 2013-04-13 12:36:24 +0200

Purge casting messages for Summon Holies.

--------------------------------------------------------------------------------
6b4d023020 | Adam Borowski | 2013-04-13 12:36:24 +0200

Purge the remaining code for Resurrect.
No monster had it since pre-0.8, so save compat is not an issue.

--------------------------------------------------------------------------------
f96c251739 | Samuel Bronson | 2013-04-13 01:23:04 -0400

Don't auto-ID rods on pickup since they might be cursed.
Especially since cursed ones seem fairly likely to be innacuracy.

--------------------------------------------------------------------------------
bd2ac2f563 | David Lawrence Ramsey | 2013-04-12 22:52:43 -0500

Add formatting fix.

--------------------------------------------------------------------------------
425ea37a75 | Samuel Bronson | 2013-04-12 17:29:57 -0400

Auto-ID spellbooks, manuals, and (for some reason) rods on pickup

--------------------------------------------------------------------------------
b504412b2f | Translators | 2013-04-12 23:17:40 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
0556681aa0 | Translators | 2013-04-12 23:17:40 +0200

[Transifex] Delete obsolete translations.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
760961dc52 | Translators | 2013-04-12 23:12:14 +0200

[Transifex] Update some french entries.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
38b3582cf3 | Translators | 2013-04-12 22:15:37 +0200

[Transifex] Remove broken or useless links and duplicate descriptions.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
7df37b4c1f | Raphael Langella | 2013-04-12 22:15:37 +0200

Add an option to txc to invalidated entries when merging.
There has been a recent change in the transifex workflow, see:

http://blog.transifex.com/post/47021962652/changes-in-key-value-formats

Now, when a source key is updated, all translations for it are invalidated. It
makes it easier for translators to notice they need to update it.
Using this option when merging allows deleting those obsolete entries, which
is useful to avoid pushing them back accidentally.
It's not a default behaviour, because otherwise it might delete stuff added
directly without going through transifex.

--------------------------------------------------------------------------------
aa880b921b | David Lawrence Ramsey | 2013-04-12 10:54:30 -0500

Typo fixes.

--------------------------------------------------------------------------------
028d74b635 | David Lawrence Ramsey | 2013-04-12 10:45:53 -0500

Remove unused variable.

--------------------------------------------------------------------------------
2dcda89700 | Pekka Lampila | 2013-04-12 10:43:40 -0500

Show lowered prices on shopping list with bargain
Also don't give invalid "You cannot afford" prompt if the item is only
affordable thanks to bargain status.

--------------------------------------------------------------------------------
6ea6a6ef34 | Pekka Lampila | 2013-04-12 10:43:35 -0500

Ignore bargaining when adding to the shopping list

--------------------------------------------------------------------------------
38637d29f1 | Chris Campbell | 2013-04-12 15:41:23 +0100

Add a message when trying to reskill with all skills maxed

--------------------------------------------------------------------------------
8152a6ce3e | Pete Hurst | 2013-04-12 14:50:54 +0100

Beneficial mutation doesn't rot vampires at satiated and higher
This is restoring the old behaviour of gain foo potions as removed in 
7b85bd66d097a6a8.

--------------------------------------------------------------------------------
58af273d1d | Adam Borowski | 2013-04-12 13:01:40 +0200

Revert "Fix evolution mutations being incorrectly marked as temporary instead 
of no_rot."
The parameter stat_gain_potion is back...
This reverts commit a6b55f5626c395c5ddb60e072f366d064a21e491.

--------------------------------------------------------------------------------
00d902c063 | Pete Hurst | 2013-04-12 09:53:06 +0100

Allow beneficial mutation to bypass rMut
This is how gain foo potions previously worked. I renamed the stat_gain_potion 
parameter to "beneficial" to clarify its new usage.

Zin, however, will still protect you from beneficial mutation (which was not 
the case for gain foo).

--------------------------------------------------------------------------------
6b3e3c9420 | Pete Hurst | 2013-04-12 09:53:06 +0100

Revert "Remove now-unused stat_gain_potion parameter from mutate()."
This reverts commit 716d182b9b57daa27e17a0830746725a9d6fda1f.

The parameter is still necessary for allowing potions of beneficial mutation to 
bypass rMut.

--------------------------------------------------------------------------------
763f6a628e | Pete Hurst | 2013-04-12 09:47:13 +0100

Display failure message if beneficial mutation is blocked

--------------------------------------------------------------------------------
aaa5f880a3 | Pete Hurst | 2013-04-12 09:47:13 +0100

Auto-id amulet when quaffing potions of mutation, beneficial or otherwise

--------------------------------------------------------------------------------
739c2d636f | David Lawrence Ramsey | 2013-04-11 23:17:48 -0500

Remove unneeded brackets.

--------------------------------------------------------------------------------
fcc4413fc3 | DracoOmega | 2013-04-12 01:16:12 -0230

Fix simulacra not getting AF_COLD branded attacks
Not that they would have done anything for the last year, anyway....

--------------------------------------------------------------------------------
d5b758e0ac | DracoOmega | 2013-04-12 01:13:30 -0230

Fix all monster attack flavours inflicting 0 damage
This has apparently been broken for over a year now; proper messages
would be printed, but special_damage was reset before ever actually
being inflicted. Hydra simulacra and ice fiends will now be properly
dangerous in melee again.

One marginal issue remains: monsters using a magical staff that inflicts
damage with its effect will have the staff damage override any damage
from their melee flavour, but there are very few monsters with both
a melee damage flavour and the ability to use weapons, and even these
do not seem to pick said staffs up in practice.

--------------------------------------------------------------------------------
c4776a0173 | Steve Melenchuk | 2013-04-11 19:11:53 -0600

Don't try to get a fire crab to swim (#6903).
As requested by the vault author, this removes a fire crab from a
vault.

--------------------------------------------------------------------------------
2031ca8438 | elliptic | 2013-04-11 18:45:41 -0400

Give demonic guardian 1 earlier on average.
It stops being useful pretty quickly and affects gameplay more than most muts.

--------------------------------------------------------------------------------
310636640d | elliptic | 2013-04-11 18:38:06 -0400

Ds mutation scheduling tweaks.
* Don't give two mutations on the same level. This means more levels overall
  where the player gets something new and exciting.

* Always give a mutation at XL 2. This helps Ds's relatively bad early game
  somewhat, while also making sure that players figure out what Ds is all
  about as soon as possible.

--------------------------------------------------------------------------------
b38dabf040 | Adam Borowski | 2013-04-11 22:50:56 +0200

A more sinister title for lev 21-26 short blade users.
"Blademaster" sounds too long bladey to me, and "Politician" didn't fit
with the others.

--------------------------------------------------------------------------------
77dba95f45 | Adam Borowski | 2013-04-11 22:50:13 +0200

An indentation fix.

--------------------------------------------------------------------------------
152d6030a8 | elliptic | 2013-04-11 16:18:52 -0400

Bring back politicians.
If you really want to be an eviscerator, you can still play a felid.

--------------------------------------------------------------------------------
f63f636f25 | David Lawrence Ramsey | 2013-04-11 12:48:14 -0500

Remove now-unused Jester description.

--------------------------------------------------------------------------------
8625f97769 | David Lawrence Ramsey | 2013-04-11 11:12:51 -0500

Fix apparently misplaced #endif for no longer serializing earth_attunement.

--------------------------------------------------------------------------------
df8ad7c842 | Robert Burnham | 2013-04-11 07:45:46 -0500

Logic reordering for Mantis 6874

--------------------------------------------------------------------------------
48ca705f63 | Robert Burnham | 2013-04-11 07:15:12 -0500

Further fixes to 6874, permafying temporary DS mutations

--------------------------------------------------------------------------------
4bccfe27ff | Pete Hurst | 2013-04-11 12:14:04 +0100

Tailor layout_cathedral_of_symmetry for Zot:5
It tended to generate with a huge amount of open space and the symmetry 
sometimes looked incongruous with the orb chamber.

This randomly reduces the size of the layout in all instances but more so in 
Zot:5, and additionally limits the way the pattern repeats so it fits the orb 
chamber better.

--------------------------------------------------------------------------------
ed7014d66d | Brendan Hickey | 2013-04-10 23:11:53 -0700

Remove unused nome variable.
Remove earth_attunement from player and no longer serialize it.

--------------------------------------------------------------------------------
1bf97711ce | Pete Hurst | 2013-04-11 04:41:31 +0100

Carve doors in more V walls to prevent disconnected areas

--------------------------------------------------------------------------------
463d1a4ce0 | Pete Hurst | 2013-04-11 02:32:45 +0100

Fix and clarify several cases of buggy boulder behaviour
Including #6900 - boulders reverting position after dispersal.

Then there were several cases where code assumed mons_is_projectile checked 
rolling boulder beetles, but in fact it didn't.
I added a monster::is_projectile() check which looks at both mons_is_projectile 
and mons_is_boulder, and called this
from the relevant places. Several times mons_is_projectile is actually just 
required for an IOOD check.

Also added support for catchup_move for boulders; previously they would be sat 
on the same square (not rolling) when you
returned to a level no matter how long you'd been gone. This was omitted from 
the original implementation.

--------------------------------------------------------------------------------
0333ab8a14 | Steve Melenchuk | 2013-04-10 19:23:03 -0600

Some vaults from nicolae, with a couple of tweaks (#6903).
Apart from removing a couple of testing weights, most of the tweaks are
to the shop vaults to reduce the likelihood of too-powerful items and to
make the better shops in the set rather rare so that the game isn't
flooded with good items. (Then again, when was the last time you saw one
of the specialty shops?)

--------------------------------------------------------------------------------
ab2f672a0e | Adam Borowski | 2013-04-11 03:14:56 +0200

Fix trapping nets being considered sacrificable.
Really, item_is_stationary() shouldn't exist -- it leads to a crapload
of special cases, and the net could be held outside the grid.

--------------------------------------------------------------------------------
e0f72cacdb | Adam Borowski | 2013-04-11 03:14:56 +0200

Typo fix.

--------------------------------------------------------------------------------
7fddca2553 | Adam Borowski | 2013-04-11 03:14:56 +0200

Don't claim auto_sacrifice is a "generic option", rename its enums.

--------------------------------------------------------------------------------
77598ac1b7 | Adam Borowski | 2013-04-11 03:14:56 +0200

Make zot_entry_traditional an unvault.
Three exits from a branch have been declared Enemies of the People and are
awaiting proper dealing with, it's fitting three entrances should get the
axe as well.

Plus, the vault was currently broken anyway.

--------------------------------------------------------------------------------
a58bd4c74b | Steve Melenchuk | 2013-04-10 16:45:10 -0600

Update changelog through 0.13-a0-317-gaae6efa.
I've probably missed something important, so go ahead and add in more as
necessary.

--------------------------------------------------------------------------------
aae6efaa09 | Steve Melenchuk | 2013-04-10 16:39:10 -0600

Change the changelog header to reflect an upcoming release.
I don't think anything important has changed since 42abf4b / b566176
after reviewing the changelogs since then; if there is, we should add it
in, obviously!
(cherry picked from commit baf1bbc5b7adfd706de0d807650afa39cc3f2d0e)

--------------------------------------------------------------------------------
a6b55f5626 | elliptic | 2013-04-10 18:00:59 -0400

Fix evolution mutations being incorrectly marked as temporary instead of no_rot.
Caused by 716d182b.

--------------------------------------------------------------------------------
8ab00219f9 | Pete Hurst | 2013-04-10 22:56:59 +0100

Disable zot_entry_small on D:27
As per the comment, it was only there as a fallback in case bigger vaults 
didn't place, which isn't an issue now.

--------------------------------------------------------------------------------
1f91e868ab | Adam Borowski | 2013-04-10 21:52:44 +0200

Remove dangling links to removed quotes.

--------------------------------------------------------------------------------
7533cba44f | Adam Borowski | 2013-04-10 21:47:02 +0200

Formatting fixes.

--------------------------------------------------------------------------------
bdaba501ab | Adam Borowski | 2013-04-10 20:51:09 +0200

Note the severity and type of Xom miscasts.
There's no info leak involved, and notes with just "miscast effect" say
nothing: this comprises a majority of Xom effects, and level 0 miscasts
differ a wee bit from level 3 ones...

--------------------------------------------------------------------------------
a7e0dc8ad4 | Pete Hurst | 2013-04-10 19:45:24 +0100

Perform tree surgery in Crypt
There seems to be a problem using set_feature_name from layouts. I'm removing 
the forest layout from Crypt for now until I can fix that, possibly until I add 
proper crypt buildings as well.

--------------------------------------------------------------------------------
9b0260e12b | Pete Hurst | 2013-04-10 19:44:28 +0100

Unbreak Orc:4 zone filling

--------------------------------------------------------------------------------
a97116029e | Pete Hurst | 2013-04-10 19:44:27 +0100

Fix up Catacombs layout and enable it for Crypt/Tar

--------------------------------------------------------------------------------
b00dbe58b2 | Pete Hurst | 2013-04-10 19:44:27 +0100

Complex procedural: rays

--------------------------------------------------------------------------------
2e0024e849 | Pete Hurst | 2013-04-10 19:44:26 +0100

Fix an issue with Simplex noise not liking negative input space

--------------------------------------------------------------------------------
978f74a071 | Chris Campbell | 2013-04-10 18:27:36 +0100

Move okawaru_arena.des from variable to altar

--------------------------------------------------------------------------------
378784300f | Chris Campbell | 2013-04-10 18:24:21 +0100

Fix typo in Okawaru arena vault

--------------------------------------------------------------------------------
7063a1c5c4 | Chris Campbell | 2013-04-10 18:24:20 +0100

Identify guaranteed loot in an altar vault, reduce weight

--------------------------------------------------------------------------------
866b896b96 | Chris Campbell | 2013-04-10 18:24:18 +0100

Show how much gold is used up by the Alchemist card

--------------------------------------------------------------------------------
4c8eed5bef | Robert Burnham | 2013-04-10 07:17:35 -0500

Mantis 6874: Mutation message for temp mutations becomming permanent

--------------------------------------------------------------------------------
f3d509886b | Pete Hurst | 2013-04-10 12:29:22 +0100

Add a new Zot / Tar layout

--------------------------------------------------------------------------------
75b0b2adfe | Pete Hurst | 2013-04-10 12:29:22 +0100

Add some new procedural transforms

--------------------------------------------------------------------------------
206954072b | Pete Hurst | 2013-04-10 12:29:22 +0100

Attempting to improve the interference layout
Still disabled unfortunately, it's broken too often

--------------------------------------------------------------------------------
4aa3aa2a80 | Adam Borowski | 2013-04-10 03:08:59 +0200

Double the chance for chaos attacks to polyself the attacker.
Nowhere as annoying as shafts, which had the same chance.

--------------------------------------------------------------------------------
ca0b060e1e | Adam Borowski | 2013-04-10 01:51:30 +0200

Get rid of a misplaced prototype, adjust includes.

--------------------------------------------------------------------------------
c83a8276c0 | Adam Borowski | 2013-04-10 01:51:29 +0200

Produce some more info on DNGN_UNSEEN validation failures.

--------------------------------------------------------------------------------
b2beb16e69 | Samuel Bronson | 2013-04-09 17:35:19 -0400

Don't "ID" delayed-action jewellery of known types.
In other words, don't give extraneous "You are wearing: " messages.

--------------------------------------------------------------------------------
f2ee5c2e6b | Pete Hurst | 2013-04-09 22:09:08 +0100

Add a foresty layout (D, Lair and Crypt for now)
It's not perfect yet but pretty good already.

--------------------------------------------------------------------------------
b9e29bb122 | Pete Hurst | 2013-04-09 22:09:08 +0100

Prevent a cave layout in D:27

--------------------------------------------------------------------------------
4e92341c97 | Pete Hurst | 2013-04-09 22:09:07 +0100

Improve procedural functionality

--------------------------------------------------------------------------------
631780c1a8 | Pete Hurst | 2013-04-09 22:09:07 +0100

Fix zonify floor detection

--------------------------------------------------------------------------------
09d78cf8c7 | Steve Melenchuk | 2013-04-09 14:06:08 -0600

Fix some reversed logic causing initfile interrupts to break (#6897).
The interrupts was broken by 8bf01c4 thanks to this line's assignment
erroneously being reversed.

--------------------------------------------------------------------------------
6fcd5785fe | Steve Melenchuk | 2013-04-09 10:20:20 -0600

Get lemuel_castle placeable on D:27 again.
We already have another Zot entry castle, but who doesn't want to relive
the vault that led to the monster moat bug?

--------------------------------------------------------------------------------
3c566b83be | Adam Borowski | 2013-04-09 17:50:49 +0200

Fix a warning when building tiles with clang.
Clang doesn't support __attribute__((externally_visible)), which is not
needed as clang doesn't have -fwhole-program either.  The #ifdef guard
was fooled by clang claiming to be GCC.

--------------------------------------------------------------------------------
d3ffa50172 | Pete Hurst | 2013-04-09 16:39:05 +0100

Actually fix abyss entries with encompass vaults

--------------------------------------------------------------------------------
2e44fbeafd | Pete Hurst | 2013-04-09 16:27:24 +0100

Allow Abyss entries to place on encompass levels

--------------------------------------------------------------------------------
0223be9e8c | Adam Borowski | 2013-04-09 17:20:59 +0200

Remove a comment saying that some asserts are redundant.
They somehow keep tripping over and over.  Current failures include a rare
abyss crash that tends to require hours of stress testing to trigger, and
some failures to place portals.

--------------------------------------------------------------------------------
78ee61a522 | Adam Borowski | 2013-04-09 17:07:03 +0200

Fix a warning.

--------------------------------------------------------------------------------
2444626377 | Pete Hurst | 2013-04-09 15:09:33 +0100

Prevent a warning, make abyssal forest slightly less homogenous

--------------------------------------------------------------------------------
c0e35169b4 | Pete Hurst | 2013-04-09 12:24:53 +0100

Clean up abyssal underworld generator

--------------------------------------------------------------------------------
d423a148c8 | Pete Hurst | 2013-04-09 12:24:53 +0100

Make layout morph less quickly

--------------------------------------------------------------------------------
bacb77ced6 | Pete Hurst | 2013-04-09 12:24:52 +0100

Clean up errors introduced during cherry-pick

--------------------------------------------------------------------------------
104d96d01f | Pete Hurst | 2013-04-09 12:24:52 +0100

Abyssal Underworld layout

--------------------------------------------------------------------------------
95c5a40c70 | Pete Hurst | 2013-04-09 12:24:51 +0100

Implement noise wrapper functions
Also use the noise wrappers in ForestLayout

--------------------------------------------------------------------------------
0eab4f3c86 | Pete Hurst | 2013-04-09 12:24:51 +0100

Cleaning up ForestLayout

--------------------------------------------------------------------------------
0088556003 | Pete Hurst | 2013-04-09 12:24:51 +0100

Increase time scale

--------------------------------------------------------------------------------
5e0d358e19 | Pete Hurst | 2013-04-09 12:24:50 +0100

Abyss clamp testing

--------------------------------------------------------------------------------
3a82c47286 | Pete Hurst | 2013-04-09 12:24:50 +0100

Forest ProceduralLayout

--------------------------------------------------------------------------------
751b1299bb | Pete Hurst | 2013-04-09 12:24:49 +0100

Large abyssal terrain layout

--------------------------------------------------------------------------------
7872dfe2f1 | Adam Borowski | 2013-04-09 12:52:19 +0200

Fix a possible infinite loop when dumping.
If all messages in the buffer are not "dumpworthy" (MSGCH_EQUIPMENT,
MSGCH_DIAGNOSTICS or MSGCH_TUTORIAL), it'll spin forever.

This commit also removes such racism if the dump happens during a crash:
we do want to see debug output.

--------------------------------------------------------------------------------
b3860d843f | Adam Borowski | 2013-04-09 11:22:44 +0200

Make emperor scorpions ridiculously large again, so they tear webs.
D&D size system FTL.

--------------------------------------------------------------------------------
8bf01c43c1 | Adam Borowski | 2013-04-09 11:02:10 +0200

Use FixedBitArray instead of large arrays of bools.
The only cost is having assignments be a function, as you can't overload
operator[] to have separate bits be lvalues.

--------------------------------------------------------------------------------
441f643532 | Adam Borowski | 2013-04-09 11:02:10 +0200

Implement other planned changes for zombie sizes.

--------------------------------------------------------------------------------
67dbe9de30 | Adam Borowski | 2013-04-09 11:02:10 +0200

Reduce the size of some spiders and their zombies.
A wolf spider shouldn't be bigger than a wolf or a human, so +1 -> 0.
Emperor scorpion: +3 -> +2.

Seriously, though... these should be -2..-1 for the largest species, I'd
say.  Even a giant spider would be massively scary at that size (compared
to RL spiders being no larger than a hand).  What else are we going to
add, cybernetic legs?

--------------------------------------------------------------------------------
3a629e40fd | elliptic | 2013-04-09 04:29:43 -0400

Add short_text for a few statuses, record many more statuses in 
milestones/logfiles.
Almost all the durations/statuses that currently have text defined are now
recorded in milestones/logfiles. The exceptions are things that are redundant
or otherwise uninteresting.

--------------------------------------------------------------------------------
2ecd869e35 | Pete Hurst | 2013-04-09 08:58:40 +0100

Allow more than one branch entrance on same level

--------------------------------------------------------------------------------
28c38b4c00 | Samuel Bronson | 2013-04-09 02:19:15 -0400

Don't require juggling to wear-ID delayed-action jewellery like SInv and resists
This was mostly a formality for SInv, where there would be plenty of
time to do the juggling. For the others it might actually have
presented some difficulty, but mostly of a very tedious sort.

(This will be especially useful for octopodes.)

--------------------------------------------------------------------------------
cc181de27f | Samuel Bronson | 2013-04-09 02:15:58 -0400

Fix wear-ID of ring of poison resistance (rPois) from mephitic clouds

--------------------------------------------------------------------------------
c682783254 | Steve Melenchuk | 2013-04-08 22:16:40 -0600

Open the 0.13 vault season like a pillowcase!!!
The focus this time is Zot entries (aka dungeon ending vaults), in
celebration of the tune-ups to D:27 generation; this includes seven
vaults exclusively for that purpose and one primary vault that can also
act as a Zot ending.

Also here are a Snake ending and three more entries for the
grunt_ministairs series.

--------------------------------------------------------------------------------
c0b58055ff | Steve Melenchuk | 2013-04-08 22:16:39 -0600

A couple of vault fixes and tweaks.
Mostly syntactical, but it fixes some unintended bugs with a monster in
grunt_crypt_end_deaths_head and removes a couple of Abyss-specific
monsters from a non-Abyss vault.

--------------------------------------------------------------------------------
7ad5283838 | Steve Melenchuk | 2013-04-08 22:16:39 -0600

Move a couple of vaults from incorrect files to correct files.
This also adds an ORIENT: tag to one particularly large vault.

--------------------------------------------------------------------------------
e6c8365457 | Adam Borowski | 2013-04-09 06:09:08 +0200

Don't let Xom revert banishment due to distortion unwield.
It was spoily that you can wait until Xom is happy before unwielding if
you want to avoid the Abyss.  The converse is also true, although in an
emergency waiting for a mood change is not exactly viable -- though you
could at least gauge your chances of succeeding.

Are there other ways of banishment that Xom shouldn't interfere with?

--------------------------------------------------------------------------------
b2c3222416 | Chris Campbell | 2013-04-09 01:40:01 +0100

Update descriptions for cTele changes

--------------------------------------------------------------------------------
ff652d7691 | Chris Campbell | 2013-04-09 01:40:00 +0100

Make controlled teleports take longer to go off
The delay also kicks in if cTele is gained while a teleport is active.
Could do with a better message, possibly.

--------------------------------------------------------------------------------
5681569f17 | Chris Campbell | 2013-04-09 01:40:00 +0100

End teleport control duration after a controlled blink or teleport
For blinking this prevents cheap chaining of semicontrolled blinks. For
teleportation it won't have so much of an effect but is consistent.

--------------------------------------------------------------------------------
7c65abd9b5 | Chris Campbell | 2013-04-09 01:39:59 +0100

Make the ring of teleport control's effect evokable instead of passive
Making it require investment in evocations to use as well as a turn to
activate adds a little more thought to the process of using it.

--------------------------------------------------------------------------------
3bf401ab96 | Chris Campbell | 2013-04-09 01:39:58 +0100

Remove the cTele mutation
Since cTele is to be changed to be an active ability on items - it
shouldn't remain as a passive mutation. Zotdef characters still keep
their intrinsic cTele.

--------------------------------------------------------------------------------
a95e3249a8 | Pete Hurst | 2013-04-08 19:51:41 +0100

Prevent D:27 vaults showing up in Sprint
Apparently in Sprint, D:$ means "everywhere"

--------------------------------------------------------------------------------
8073b7f308 | Chris Campbell | 2013-04-08 19:44:42 +0100

Don't randomly select Jester as a background

--------------------------------------------------------------------------------
af6a146910 | Pete Hurst | 2013-04-08 19:35:03 +0100

Add missing include

--------------------------------------------------------------------------------
a779ccdc08 | Pete Hurst | 2013-04-08 17:47:29 +0100

#6877 Don't increase hunger when unmelding Vampire's Tooth unrand

--------------------------------------------------------------------------------
58b00bcd99 | Pete Hurst | 2013-04-08 16:59:13 +0100

Restore pillar radii in layout_big_octagon
Left my own testing code in by mistake...

--------------------------------------------------------------------------------
525e420379 | Pete Hurst | 2013-04-08 16:56:01 +0100

Remove weight from layout_ice_bergs
It seemed to be coming up a lot more than layout_cocytus; now it should be 
50-50.

--------------------------------------------------------------------------------
9f3824ad30 | Pete Hurst | 2013-04-08 16:55:23 +0100

Allow layout_big_octagon to use the full range of pillar shapes
When f8f1e6f was originally committed the diamond pillar shapes were added. But 
a line of code was introduced which set the pillar function to *always* be 
diamonds. Prior to this there were also circles, squares, and rounded squares 
available. It seems most likely that this code was there to test the new shape 
but got accidentally left in - since f8f1e6f made a lot of other changes to 
layout.des it would have been easy to miss.

Additionally I reduced the maximum radius for the other pillar shapes as they 
could sometimes squash a little too close together and look a bit strange.

--------------------------------------------------------------------------------
0b5a57fb2f | infiniplex | 2013-04-08 16:11:06 +0100

Improved draw_circle LUA command

--------------------------------------------------------------------------------
e5682e0cbb | Pete Hurst | 2013-04-08 15:16:25 +0100

Adjust depths of grid layouts

--------------------------------------------------------------------------------
73ff40e47e | Pete Hurst | 2013-04-08 15:11:20 +0100

Another griddy layout variant

--------------------------------------------------------------------------------
15934d9c40 | Pete Hurst | 2013-04-08 14:04:07 +0100

A couple of very simple grid layouts

--------------------------------------------------------------------------------
91c138bf9f | Pete Hurst | 2013-04-08 07:12:00 +0100

Allow hangedman_pleasuredromes to also place as a D:$ primary vault

--------------------------------------------------------------------------------
74a4ed0360 | Pete Hurst | 2013-04-08 07:05:36 +0100

Remove redundant comment and default-depth

--------------------------------------------------------------------------------
ff35b2a564 | Steve Melenchuk | 2013-04-08 07:03:09 +0100

Treat Zot entries as D:$ branch-ending PLACE: vaults.
This means that they are normally the only primary vault placed on the
level, allowing the really huge ones to get placed consistently, and
reducing D:$ generation time considerably.

The encompass vaults might need to be weighted down on D:27; they show
up there fairly often with this change. (The previous commit allows them
to still act in a non-branch-end capacity.)

--------------------------------------------------------------------------------
30b716a815 | Steve Melenchuk | 2013-04-08 07:03:08 +0100

Allow maps with a PLACE: to also have a DEPTH:.
This causes both handlers to apply, instead of just the PLACE: handler.

The only instance where this would cause a change in behaviour (Orc
endings) has been adjusted so the current behaviour still applies.

--------------------------------------------------------------------------------
2cc0eedfcb | Pete Hurst | 2013-04-08 07:02:05 +0100

Optimise dungeon builder for branch ends and encompass vaults in general
It was trying to place random vaults even if an encompass vault had been placed 
and therefore no vaults could possibly be placed.
Additionally we won't try to place branch entrance vaults if an encompass vault 
is placed, only the branch entrance stairs (if even needed).

We could go further and prevent random vaults (or at least reduce their number) 
when any ORIENT vault is placed as the primary vault,
but this is already a very noticable optimisation.

--------------------------------------------------------------------------------
a6096bdd7e | Pete Hurst | 2013-04-08 07:02:04 +0100

Optimise a caves layout by not analysing the layout unneccessarily

--------------------------------------------------------------------------------
287d535ae0 | Pete Hurst | 2013-04-08 07:02:04 +0100

Add lots of profile calls in Hyper engine
These should all be removed at some point but it's handy to have them around 
while developing and testing.

--------------------------------------------------------------------------------
92a00ea9fe | Pete Hurst | 2013-04-08 07:02:03 +0100

Improve Lua profiler output

--------------------------------------------------------------------------------
406e7ab6dd | Pete Hurst | 2013-04-08 07:02:03 +0100

Optimise Hyper usage initialisation

--------------------------------------------------------------------------------
6947dbe10f | Pete Hurst | 2013-04-08 07:02:02 +0100

Add some standard profiling output to hyper build

--------------------------------------------------------------------------------
d092828912 | Neil Moore | 2013-04-07 16:07:09 -0400

Specify C++ when testing for warning flags.
Because -E - doesn't know it's C++, and old gcc supported
-Wmissing-declarations in C but not C++.

--------------------------------------------------------------------------------
8784da81ba | Brendan Hickey | 2013-04-07 12:54:50 -0700

Remove Jesters.
Remove Jesters.
Make pies stop spawning.
Fun is bad.

--------------------------------------------------------------------------------
3569abb297 | DracoOmega | 2013-04-07 17:05:56 -0230

Fix a rare crash with door seals expiring

--------------------------------------------------------------------------------
b43373922b | Neil Moore | 2013-04-07 15:29:46 -0400

Make some functions static.

--------------------------------------------------------------------------------
1b7deb92a3 | Neil Moore | 2013-04-07 15:28:18 -0400

Add a few #includes to avoid missing-declaration warnings.

--------------------------------------------------------------------------------
23bacbde8c | Neil Moore | 2013-04-07 15:23:23 -0400

Avoid a few trival wrapper functions, and declare some more.
Add an inventory sorting template that takes a pointer-to-method, as
well as a reversed version.  Use these to eliminate a number of trivial
sort_item_* wrappers.

Add dummy declarations for the rest to avoid -Wmissing-declarations
warnings.

--------------------------------------------------------------------------------
93115fbd83 | Neil Moore | 2013-04-07 14:14:59 -0400

Remove a duplicate prototype.
The commit 937ef52 added a prototype for is_feature to viewmap.h, but
there was already a prototype in view.h.  Remove the old one, since
viewmap.h is shorter, and furthermore remove a now-unnecessary #include
of view.h.

--------------------------------------------------------------------------------
937ef5271f | David Lawrence Ramsey | 2013-04-07 12:21:58 -0500

Fix a warning by adding a missing prototype (and related includes).

--------------------------------------------------------------------------------
e35754ec9c | David Lawrence Ramsey | 2013-04-07 11:25:42 -0500

Typo fix.

--------------------------------------------------------------------------------
ded251442c | Adam Borowski | 2013-04-07 17:42:15 +0200

Fix a crash during startup.
For some weird reasons LTO only, and shows up only on Windows, even though
it's in a platform independent part.  The division by zero here is real.

--------------------------------------------------------------------------------
211afdb162 | Adam Borowski | 2013-04-07 16:58:07 +0200

An ugly hack: exempt tentacles from arena faction calculations.
This commit causes problems with freestanding tentacles: if they're the only
members of a side, the fight ends -- but that's certainly better than a
crash.  Such tentacles don't exist except for manual requests, being normally
ever spawned by the spell.

--------------------------------------------------------------------------------
1d504a9b0f | Adam Borowski | 2013-04-07 16:46:53 +0200

Fix a --test regression wrt repeatedly placing fixed uniques.

--------------------------------------------------------------------------------
ac0c84fcdd | Adam Borowski | 2013-04-07 16:35:36 +0200

Don't print the line number in -DDEBUG_FATAL messages.
A line number in the error handler is useless, and the real line is lost (at
least without traversing the stack).

--------------------------------------------------------------------------------
aa6dc37add | Adam Borowski | 2013-04-07 16:06:11 +0200

Fix a --test -DDEBUG_FATAL crash.
There's a (normally non-fatal) error message caused by uninitialized item
descriptions.

--------------------------------------------------------------------------------
9071e1be6d | Adam Borowski | 2013-04-07 15:50:56 +0200

Fix a --test (only) assertion failure.

--------------------------------------------------------------------------------
2ae2d42d19 | Adam Borowski | 2013-04-07 15:31:08 +0200

Fix a crash and a corner case wrong behaviour.
Somehow, the crash occurs always, but only in LTO builds: checking
skill_progress() with uninitialized species at startup.

The wrong behaviour, on the other hand, applies only to selecting an
item class by glyph in ?/i and only if you redefined an item's glyph
based on its uselessness.

--------------------------------------------------------------------------------
560c41a0c0 | Adam Borowski | 2013-04-07 14:52:55 +0200

Drop unused marshall-to-vector<char>.

--------------------------------------------------------------------------------
46a77350b3 | Adam Borowski | 2013-04-07 14:52:54 +0200

Staticify.

--------------------------------------------------------------------------------
37816e6b37 | Adam Borowski | 2013-04-07 14:52:54 +0200

Inline a trivial function.

--------------------------------------------------------------------------------
f9539ca3bb | Adam Borowski | 2013-04-07 14:52:54 +0200

Shuffle some function prototypes to correct places.

--------------------------------------------------------------------------------
15686604a0 | Adam Borowski | 2013-04-07 14:21:43 +0200

Make yyerror() static.

--------------------------------------------------------------------------------
22612f7865 | Adam Borowski | 2013-04-07 14:20:28 +0200

Auto-id rings of rPois upon quaffing a potion of poison.

--------------------------------------------------------------------------------
915230454a | Adam Borowski | 2013-04-07 14:20:28 +0200

Don't list potions of gain foo among unindentified.

--------------------------------------------------------------------------------
fa483a7f2c | Adam Borowski | 2013-04-07 14:20:03 +0200

Unbreak saving/loading with TAG_MAJOR_VERSION > 34.

--------------------------------------------------------------------------------
e9144b097a | Samuel Bronson | 2013-04-07 02:10:34 -0400

Check that -Wmissing-declarations doesn't fail before using it

--------------------------------------------------------------------------------
ab36ef9755 | Chris Campbell | 2013-04-07 07:01:32 +0100

Don't require equipment juggling to autoidentify evokable jewellery
Not identifying invisibility if you were invisible when you put it on,
for example, was just unnecessary complication (and resulted in evocable
abilities then becoming available without identifying their source).

--------------------------------------------------------------------------------
e113bd60b9 | Chris Campbell | 2013-04-07 04:59:05 +0100

Add a message when triple drawing a deck with one card

--------------------------------------------------------------------------------
fb3201ca65 | David Lawrence Ramsey | 2013-04-06 20:09:45 -0500

Remove now-inaccurate comment.

--------------------------------------------------------------------------------
57aa865f67 | Chris Campbell | 2013-04-07 01:44:52 +0100

Don't select Stalker as a random background

--------------------------------------------------------------------------------
72b6bbf09c | Chris Campbell | 2013-04-07 01:12:08 +0100

Don't drop missiles on the floor if a jelly mutation already ate them

--------------------------------------------------------------------------------
0be00f90ab | Shayne Halvorson | 2013-04-07 01:12:07 +0100

Three new Jiyva mutations: disarming tendrils, item detection with a twist and 
absorbing missiles.

--------------------------------------------------------------------------------
7b85bd66d0 | Chris Campbell | 2013-04-07 01:12:06 +0100

Remove some vampire special-casing for the gain stat mutations
No longer necessary with the potions removed.

--------------------------------------------------------------------------------
c02ef2af83 | Chris Campbell | 2013-04-07 01:12:05 +0100

Remove Jiyva's "food jelly" mutation
Jiyva tends to keep you at or close to Engorged most of the time, and
just spawning a neutral jelly isn't a very notable effect.

--------------------------------------------------------------------------------
d380f69e7a | Chris Campbell | 2013-04-07 01:12:05 +0100

Add back a Xom message
Imitating Vehumet was intentional, changed it to be low weight though.

--------------------------------------------------------------------------------
003e0587dc | Chris Campbell | 2013-04-07 01:12:04 +0100

Fix spacing

--------------------------------------------------------------------------------
0aa8e06d2d | Chris Campbell | 2013-04-07 01:12:03 +0100

Make Static Discharge and elec melee consistent with other sources of elec 
damage
Static discharge, AF_ELEC and SPWPN_ELECTROCUTION were all affected by
flight as well as rElec, but all in different ways (SD did halved self
damage, no damage to enemies; AF_ELEC did 2/3 damage;
SPWPN_ELECTROCUTION did no damage).

All of these now act consistently and are just affected by rElec.

--------------------------------------------------------------------------------
20bb4e4a6b | Samuel Bronson | 2013-04-06 18:12:07 -0400

Correct other missing #includes

--------------------------------------------------------------------------------
e8de7e4a1c | Samuel Bronson | 2013-04-06 18:10:55 -0400

Correct missing #include "foo.h" from foo.cc
(Also had to fix a prototype in ctest.h)

--------------------------------------------------------------------------------
ae9976d811 | Samuel Bronson | 2013-04-06 16:55:50 -0400

Add -Wmissing-declarations to our default CFWARN flags.
This should help us spot unintentionally global functions, old unused
functions, and .cc files where we forgot to #include the corresponding
header.

--------------------------------------------------------------------------------
f8ddb2f943 | David Lawrence Ramsey | 2013-04-06 14:56:04 -0500

Set dont_place to true when placing hides made from corpses.
Since the hide is manually placed where the corpse used to be, it
doesn't need to be randomly placed.

Needed according to SamB on the ##crawl-dev logs.

--------------------------------------------------------------------------------
4ce97f679a | David Lawrence Ramsey | 2013-04-06 14:25:53 -0500

Fix Mantis 6862: Reword cloud trap message.
This uses mumra's suggested wording.

--------------------------------------------------------------------------------
f6bc039aa4 | David Lawrence Ramsey | 2013-04-06 13:39:51 -0500

Fix Mantis 6884: Manually uncurse hides after creating them.
This will ensure that they will never be cursed or get visible
descriptions (e.g. "runed"), since cursed items can get such
descriptions.

--------------------------------------------------------------------------------
d9f983b8c7 | Adam Borowski | 2013-04-06 12:48:13 +0200

Remove removed items from vaults.

--------------------------------------------------------------------------------
b94b16dfd3 | Adam Borowski | 2013-04-06 12:48:12 +0200

Make #ifdefs for removed needle brands reflect reality.
Needles of confusion have _not_ been removed, sickness have been.

--------------------------------------------------------------------------------
a6492733fd | Adam Borowski | 2013-04-06 12:48:12 +0200

Replace an outdated comment.

--------------------------------------------------------------------------------
716d182b9b | David Lawrence Ramsey | 2013-04-05 23:55:58 -0500

Remove now-unused stat_gain_potion parameter from mutate().

--------------------------------------------------------------------------------
1f2ddecb65 | Samuel Bronson | 2013-04-05 23:31:02 -0400

Fix up a couple of descriptions.

--------------------------------------------------------------------------------
9b2bc1934b | ontoclasm | 2013-04-05 12:26:25 -0500

Shield variations for the player doll (roctavian, 6878)

--------------------------------------------------------------------------------
14dff614b3 | David Lawrence Ramsey | 2013-04-05 10:50:31 -0500

Fix indentation.

--------------------------------------------------------------------------------
84415f0fb9 | Raphael Langella | 2013-04-05 15:34:05 +0200

Don't reset the changed status of a file on a failed tx push.

--------------------------------------------------------------------------------
3e50d83d80 | Translators | 2013-04-05 15:26:13 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
dde6c5f30b | Adam Borowski | 2013-04-05 14:15:49 +0200

Don't confirm attacks if confirmations are disabled.
This notoriously blocks the Abyss stress bot, due to Xom messing with
starspawn tentacles.

--------------------------------------------------------------------------------
857a0d21f0 | Adam Borowski | 2013-04-05 14:15:34 +0200

Purge unused code for the arena.
(Committing separately, in case something was supposed to serve some purpose.)

--------------------------------------------------------------------------------
dce8086b04 | Adam Borowski | 2013-04-05 14:15:33 +0200

Make non-public arena stuff static.

--------------------------------------------------------------------------------
47cac9f59e | Adam Borowski | 2013-04-05 14:15:33 +0200

Make non-public perlin stuff static.

--------------------------------------------------------------------------------
12d55570c1 | Adam Borowski | 2013-04-05 14:15:33 +0200

Add a missing initializer.

--------------------------------------------------------------------------------
2aa69d7483 | Adam Borowski | 2013-04-05 14:15:27 +0200

Hush a warning: "const bool" is redundant.

--------------------------------------------------------------------------------
544981c1f9 | Adam Borowski | 2013-04-05 14:15:27 +0200

Fix an inoperative battlesphere check.
It's redundant now, though, we had to work around this to prevent mysterious
crashes.  Here's what was the cause.

--------------------------------------------------------------------------------
8d9a4e6516 | Adam Borowski | 2013-04-05 14:15:26 +0200

Don't mark pies as "inedible".
This check doesn't seem to be used, but hey.

--------------------------------------------------------------------------------
6bc7d5cafc | Adam Borowski | 2013-04-05 14:15:25 +0200

Make undead frogs 'z', as planned.

--------------------------------------------------------------------------------
65e8211bae | David Lawrence Ramsey | 2013-04-05 00:46:53 -0500

List one more player form in the changelog for Polymorph.

--------------------------------------------------------------------------------
a17b3dba0c | Samuel Bronson | 2013-04-05 00:21:39 -0400

Whoops, don't make art-data rebuild every time.
I guess I forgot how phony targets work :-(.

--------------------------------------------------------------------------------
75b0166ea9 | David Lawrence Ramsey | 2013-04-04 22:37:03 -0500

Make "You cannot move." a canned message.

--------------------------------------------------------------------------------
4062251f85 | David Lawrence Ramsey | 2013-04-04 22:37:03 -0500

Fix inconsistent punctuation.

--------------------------------------------------------------------------------
6ca4a9d1f8 | Pekka Lampila | 2013-04-04 22:37:03 -0500

Don't allow treeform to go up or down stairs

--------------------------------------------------------------------------------
bec03de3ae | ontoclasm | 2013-04-04 22:25:45 -0500

Better gem_glass wand tile

--------------------------------------------------------------------------------
ba952bad7a | Adam Borowski | 2013-04-05 04:59:36 +0200

#ifdef out potions of gain ability

--------------------------------------------------------------------------------
1a39c6d6ef | David Lawrence Ramsey | 2013-04-04 22:00:20 -0500

Tweak wording.

--------------------------------------------------------------------------------
6fbdae8207 | DracoOmega | 2013-04-04 23:48:52 -0230

Fix a typo in the Slime branch description, adjust wording

--------------------------------------------------------------------------------
e1ca093df0 | DracoOmega | 2013-04-04 23:48:50 -0230

Fix a crash when a monster dies partway through a cleave it is performing
This could happen if, for example, the cleave caused a ball lightning to
explode and kill the attacker before all targets within cleave range were
attacked.

--------------------------------------------------------------------------------
29e12a0524 | Adam Borowski | 2013-04-05 04:18:00 +0200

Typo fix.

--------------------------------------------------------------------------------
354b6fc7f8 | Adam Borowski | 2013-04-05 04:16:04 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
dc51258076 | Adam Borowski | 2013-04-05 04:05:50 +0200

Euthanize sick needles.
They produce no interesting or even really noticeable effect, and their
usefulness is really situational.

--------------------------------------------------------------------------------
34c0be2503 | Samuel Bronson | 2013-04-04 22:02:07 -0400

Fix up dependencies for art-data, and make the build output less deceptive

--------------------------------------------------------------------------------
2fef9f5ce8 | Samuel Bronson | 2013-04-04 22:02:06 -0400

Clean rltiles/tiledef-unrand.cc in the right Makefile.

--------------------------------------------------------------------------------
8491efc42d | David Ploog | 2013-04-05 03:46:28 +0200

Add line to slime wall description about acidic damage.

--------------------------------------------------------------------------------
0f4a56734f | David Ploog | 2013-04-05 03:46:04 +0200

Add line to Slime branch description about wall damage.

--------------------------------------------------------------------------------
a7dde53666 | ontoclasm | 2013-04-04 19:14:48 -0500

Shift the 'tried item' question mark

--------------------------------------------------------------------------------
612746bd34 | Arien Malec | 2013-04-04 19:24:20 -0400

Remove deprecated preprocessor options

--------------------------------------------------------------------------------
360e689e57 | ontoclasm | 2013-04-04 16:56:20 -0500

Wand edits

--------------------------------------------------------------------------------
c1c908fc59 | ontoclasm | 2013-04-04 16:27:19 -0500

Hell hound tile
This is just an edit of the old catoblepas tile, presumably by Denzi, that
was languishing in UNUSED.

--------------------------------------------------------------------------------
1daaca7157 | ontoclasm | 2013-04-04 16:14:25 -0500

Spirit tile (in unused)

--------------------------------------------------------------------------------
5849fcdb67 | ontoclasm | 2013-04-04 16:13:24 -0500

Stop recall ability icon

--------------------------------------------------------------------------------
97a32b5a2f | David Lawrence Ramsey | 2013-04-04 15:36:30 -0500

Comment fixes.

--------------------------------------------------------------------------------
db5d8b008b | David Lawrence Ramsey | 2013-04-04 15:36:30 -0500

Add missing brackets.

--------------------------------------------------------------------------------
22d6cde50f | DracoOmega | 2013-04-04 17:54:26 -0230

Reroll shafts placed in corridors instead of turning them into alarms
This didn't respect depth, and so was placing alarm traps on D:1, where
they are near-certain death for the unfortunate player who steps on them.

--------------------------------------------------------------------------------
19013d4d38 | DracoOmega | 2013-04-04 17:10:21 -0230

Fix an improperly tagged vault

--------------------------------------------------------------------------------
1dfed36bd1 | DracoOmega | 2013-04-04 16:51:23 -0230

Update descriptions for Yred/Beogh recall and stop recall

--------------------------------------------------------------------------------
e13c8a709a | David Lawrence Ramsey | 2013-04-04 13:17:10 -0500

Constify.

--------------------------------------------------------------------------------
469b2b967d | David Lawrence Ramsey | 2013-04-04 13:16:26 -0500

Add missing brackets.

--------------------------------------------------------------------------------
d4c7893553 | David Lawrence Ramsey | 2013-04-04 12:44:24 -0500

Constify.

--------------------------------------------------------------------------------
2c3b6ee8e9 | David Lawrence Ramsey | 2013-04-04 12:39:36 -0500

Typo fix.

--------------------------------------------------------------------------------
29ec0f8a0a | David Lawrence Ramsey | 2013-04-04 12:39:22 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
22fb491340 | Raphael Langella | 2013-04-04 17:23:40 +0200

Add the ability for Beogh and Yred to stop recalling followers.

--------------------------------------------------------------------------------
79cb806954 | Translators | 2013-04-04 00:53:23 +0200

[Transifex] Rewrap japanese and chinese by breaking lines on punctuation.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
995e1117bc | Translators | 2013-04-04 00:50:19 +0200

[Transifex] Remove !gain_foo description from translations.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
6c43e4a001 | Raphael Langella | 2013-04-04 00:48:57 +0200

Rename vicissitude in beneficial mutation.

--------------------------------------------------------------------------------
a0475c9ea3 | Raphael Langella | 2013-04-03 19:01:31 +0200

Wrap lines on punctuation for chinese and japanese since they don't use spaces.

--------------------------------------------------------------------------------
ba80b2830b | ontoclasm | 2013-04-03 01:00:07 -0500

Wand tiles

--------------------------------------------------------------------------------
9ddf90b13f | David Lawrence Ramsey | 2013-04-03 00:28:24 -0500

Add four more color names to the miscellaneous database.

--------------------------------------------------------------------------------
20cfba186d | DracoOmega | 2013-04-03 02:37:24 -0230

Don't give messages for out-of-LoS tentacle pulls

--------------------------------------------------------------------------------
6f677c31d7 | Steve Melenchuk | 2013-04-02 22:37:14 -0600

Update potions of gain <ability> in vaults.
This is a 1:1 replacement of the old loot with potions of vicissitude.

--------------------------------------------------------------------------------
eb2d7b93e3 | Brendan Hickey | 2013-04-02 21:12:12 -0700

Revamp Potions of Gain Stat
Replace potions of gain stat with potion of vicissitude.
This potion grants a good mutation when quaffed.

Thanks to ontoclasm for the tile.

--------------------------------------------------------------------------------
e89446ef86 | DracoOmega | 2013-04-03 00:31:54 -0230

Fix cancelling permaflight above deep water or lava killing players without a 
prompt
Also fix a similar issue with switching out of dragon form above said
hazards.

--------------------------------------------------------------------------------
db45db7b37 | DracoOmega | 2013-04-02 20:51:46 -0230

Allow summoning/recalling fliers over deep water
The routine which finds free space to place these monsters now uses
monster_habitable_grid directly instead of its own logic (which ignored
flying entirely).

Spells which can summon both fliers and non-fliers (ie: call imp,
summon greater demon, etc.) will make no attempt to respect the surrounding
terrain when choosing a monster type (and so will sometimes attempt to
summon a monster that cannot be placed at that terrain, and fail as
previously), though it is arguably better if players cannot influence what
things they summon by where they are standing. In either case, this is
certainly much better than Haunt and Battlesphere failing when over deep
water for no clear reason.

--------------------------------------------------------------------------------
70a4f2ef4b | DracoOmega | 2013-04-02 18:36:32 -0230

Don't crash when summoning dancing weapons via shadow creatures with good gods

--------------------------------------------------------------------------------
4b4bd11400 | Steve Melenchuk | 2013-04-02 08:35:07 -0600

Remove haste self from deep troll shamans.
This has been brought up with me a few times; it essentially goes
against their intended pure support role, and makes them significantly
less threatening on their own (particularly in relation to a vault that
made it in just before 0.12 branched).

--------------------------------------------------------------------------------
95d0e3bcae | Adam Borowski | 2013-04-02 15:58:06 +0200

Don't give Kiku's Necronomicon a redundant inscription.

--------------------------------------------------------------------------------
56f848972e | Adam Borowski | 2013-04-02 15:47:53 +0200

Don't ask kittehs about pain branding, simplify.

--------------------------------------------------------------------------------
7339bec5d3 | Adam Borowski | 2013-04-02 15:42:29 +0200

Don't advertise weapon blessings for kittehs.

--------------------------------------------------------------------------------
c4631f215d | Pete Hurst | 2013-04-02 11:24:31 +0100

Optimise zonify by creating less tables

--------------------------------------------------------------------------------
7cb2514ecc | Pete Hurst | 2013-04-02 11:22:16 +0100

Optimise worley_diff by avoiding the table construction in standard worley

--------------------------------------------------------------------------------
59298433ad | Pete Hurst | 2013-04-02 10:34:38 +0100

A very rudimentary Lua profiling library

--------------------------------------------------------------------------------
548c57ac25 | Pete Hurst | 2013-04-02 10:34:38 +0100

Allow crawl.millis() Lua call to be used on Windows

--------------------------------------------------------------------------------
ae3f8426ee | Pete Hurst | 2013-04-02 10:34:37 +0100

Refactor some room functions into a separate file

--------------------------------------------------------------------------------
8b18a79576 | Pete Hurst | 2013-04-02 10:34:37 +0100

Bump iterations for most of the Vaults layouts and re-enable some disabled ones

--------------------------------------------------------------------------------
c0b39b0ae6 | Pete Hurst | 2013-04-02 10:34:36 +0100

Optimise layout analysis in Vaults
This was causing a big chunk of the level generation time for most layouts. 
Moved some table initialisation outside of the main loop.

--------------------------------------------------------------------------------
e904e0d0eb | DracoOmega | 2013-04-02 02:18:17 -0230

Make Chaos Knights start with +0 chaos weapons instead of +2 normal ones
This is generally a buff, but such a thing is also not really worrisome
for CKs and is also highly in-theme (and rather fun to boot).

--------------------------------------------------------------------------------
f85877e101 | ontoclasm | 2013-04-01 21:10:17 -0500

Fix up some starspawn tentacle tiles

--------------------------------------------------------------------------------
d36bcada33 | Chris Campbell | 2013-04-02 02:44:26 +0100

Adjust an entry vault
The central area in this entry is very lethal if gnolls with reaching
spawn in it, and encourages players to exclude the upstairs on D:2 if
they know about the vault.

--------------------------------------------------------------------------------
b555094941 | DracoOmega | 2013-04-01 23:07:25 -0230

Fix scrolls of summoning being colored harmful to good god worshippers

--------------------------------------------------------------------------------
a3236f96ac | Chris Campbell | 2013-04-02 00:49:54 +0100

Update changelog

--------------------------------------------------------------------------------
a15a607b86 | Pete Hurst | 2013-04-02 00:45:12 +0100

Finish sorting Lua namespaces, perform some housekeeping

--------------------------------------------------------------------------------
50952cabbf | DracoOmega | 2013-04-01 21:00:41 -0230

Make walls created by Corruption displace monsters and items
Instead of simply placing the new wall on top of these things, try
to move any monsters at the location of a new wall aside. If there
is no room to do this, place floor instead.

--------------------------------------------------------------------------------
afdc83597d | DracoOmega | 2013-04-01 21:00:40 -0230

Don't raise tomb walls on top of monsters

--------------------------------------------------------------------------------
66f2c7cb7a | DracoOmega | 2013-04-01 21:00:39 -0230

Fix tracers considering cold-vulnerable monsters as immune to hibernation

--------------------------------------------------------------------------------
fa9811022a | Adam Borowski | 2013-04-02 01:31:07 +0200

Don't put jester pies on 'e'.
Leads to accidentally eating them if butchering fails.

--------------------------------------------------------------------------------
deabf03d7b | David Lawrence Ramsey | 2013-04-01 18:10:56 -0500

Fix inconsistencies and duplicate code regarding hibernating monsters.

--------------------------------------------------------------------------------
1bdec8a614 | Adam Borowski | 2013-04-02 00:49:28 +0200

Allow USE_LUAJIT to work with system lua (libluajit-5.1-dev on Debian).
It does not work on any 64 bit architecture, though, and thus is not the
default!  Also, luajit is not 100% compatible with regular lua: for example
it rejects "\/" as an invalid escape while regular lua lets it pass.

--------------------------------------------------------------------------------
f0b331f1ea | Chris Campbell | 2013-04-01 19:14:55 +0100

Reduce loot in a bailey

--------------------------------------------------------------------------------
e69f4453e1 | Pete Hurst | 2013-04-01 18:06:30 +0100

Remove local from function def

--------------------------------------------------------------------------------
b483c1e4dc | Pete Hurst | 2013-04-01 17:51:45 +0100

Fix Lua namespace

--------------------------------------------------------------------------------
14c441c6f1 | Raphael Langella | 2013-04-01 18:45:46 +0200

Don't crash when firing close to the map edge (#6853).

--------------------------------------------------------------------------------
f0c19ade88 | Adam Borowski | 2013-04-01 17:50:26 +0200

Don't mark amulets of faith as useless for worshipful demigods.
Annoying for pre-83a7f4e0 jesters.

--------------------------------------------------------------------------------
8adcafa119 | Raphael Langella | 2013-04-01 15:54:16 +0200

Allow LRD targetting to default to map edge (#6852).

--------------------------------------------------------------------------------
89af01996a | Florian Diebold | 2013-04-01 13:49:56 +0200

Remove a debugging message in Webtiles (|amethyst).

--------------------------------------------------------------------------------
132801a1cb | elliptic | 2013-04-01 03:59:28 -0400

Revert "Reduce everyone's Stealth and Short Blades aptitudes by 1."
This reverts commit 338d957016b8cd57877d58ad8051c252b310c68b.

I'd say the stabbing changes were a *nerf* to stabbers, not a buff... sure,
in the long run you use somewhat less xp, but in the long run there's plenty
of xp anyway. In the early game, which is where xp is tight, you need to
train two skills instead of one to stab things now.

In addition, plenty of non-stabbers use short blades early on... let's not
mess up general weapon category balance for no reason. If a change is needed,
it would make more sense to make it in the stabbing formulas, not in these
more generally relevant aptitudes.

--------------------------------------------------------------------------------
f28b45c4ae | Neil Moore | 2013-04-01 03:39:07 -0400

Fix unknown-jewellery identification blocking (#6850)
An unknown piece of jewellery should block observation-based
identification of other unknown jewellery.  However, this was
happening based on ISFLAG_KNOW_PROPERTIES, not KNOW_TYPE---and the
former is meaningless for non-artefacts.  Now check KNOW_PROPERTIES
only for artefacts and only when the artefact special properties are
relevant to the identification.

The bug was exposed by 4bb9ef0, which stopped setting
ISFLAG_KNOW_PROPERTIES on non-artefact jewellery.

--------------------------------------------------------------------------------
6a74898d58 | Pete Hurst | 2013-04-01 07:16:06 +0100

Slightly increase placement iterations in Vaults
Also remove junction rooms since they generally looked a bit odd.

--------------------------------------------------------------------------------
ca857fa492 | Pete Hurst | 2013-04-01 07:02:29 +0100

Further tweak some numbers

--------------------------------------------------------------------------------
5372e793ae | Pete Hurst | 2013-04-01 06:35:42 +0100

Adjust weights for numerous new layouts
Several layouts don't work properly yet so they've been set to zero.

Others have been weighted to appear at a reasonable frequency.

Additionally adjusted a few parameters within layouts to slightly improve 
things.

--------------------------------------------------------------------------------
fd65b40252 | Pete Hurst | 2013-04-01 06:35:41 +0100

Refactor the grid functions to tidy up layout includes

--------------------------------------------------------------------------------
f19f7a8681 | Pete Hurst | 2013-04-01 06:35:40 +0100

Split off onion functions and add a new layout with an inversion

--------------------------------------------------------------------------------
6584220999 | Pete Hurst | 2013-04-01 06:35:40 +0100

Vastly improve layout_wheels
And rename it to layout_onion

--------------------------------------------------------------------------------
c45aab6696 | Pete Hurst | 2013-04-01 06:35:39 +0100

Add more functions to layout_hall_layers
Also remove some layouts from Zot:5 that don't work there

--------------------------------------------------------------------------------
a782a5e15a | Pete Hurst | 2013-04-01 06:35:39 +0100

More primitive functions (and fixes)
Added procedural_complex for more intricate combinations of algorithms, 
including a cog function.

--------------------------------------------------------------------------------
0212ba2a11 | Pete Hurst | 2013-04-01 06:35:38 +0100

Unset the debug flag

--------------------------------------------------------------------------------
b70539fd0f | Pete Hurst | 2013-04-01 06:35:38 +0100

A new layout using the procedural CSG functions
It makes all kinds of interesting geometrical halls.

--------------------------------------------------------------------------------
bf4e3fdcc4 | Pete Hurst | 2013-04-01 06:35:37 +0100

Procedural CSG
Complex layout shapes can be prototyped and rendered very quickly using these 
building blocks and modifiers.

--------------------------------------------------------------------------------
09f0748d55 | Pete Hurst | 2013-04-01 06:35:37 +0100

Wheels layout (Zot, Snake)

--------------------------------------------------------------------------------
2b0921fe70 | Pete Hurst | 2013-04-01 06:35:36 +0100

Slightly tweak a cave layout
Using existing procedurals as negative space to create holes in the architecture

--------------------------------------------------------------------------------
991770d6d1 | Pete Hurst | 2013-04-01 06:35:36 +0100

Simplify and comment the aggregate procedurals

--------------------------------------------------------------------------------
a44fd3238c | Pete Hurst | 2013-04-01 06:35:36 +0100

Another cave layout
I think there are enough cave layouts now.

--------------------------------------------------------------------------------
df65b0559b | Pete Hurst | 2013-04-01 06:35:35 +0100

Another cave layout variant

--------------------------------------------------------------------------------
ca8a1ac227 | Pete Hurst | 2013-04-01 06:35:35 +0100

Add a box procedural

--------------------------------------------------------------------------------
196c67a718 | Pete Hurst | 2013-04-01 06:35:34 +0100

Cocytus ice berg layout

--------------------------------------------------------------------------------
6b1b2beef3 | Pete Hurst | 2013-04-01 06:35:34 +0100

 Fix radial procedural

--------------------------------------------------------------------------------
b2b80b1c12 | Pete Hurst | 2013-04-01 06:35:33 +0100

Tweaked cave city

--------------------------------------------------------------------------------
a6a4ffda5e | Pete Hurst | 2013-04-01 06:35:33 +0100

Cave town layout (incomplete but looking nice)

--------------------------------------------------------------------------------
ed46d1d8b2 | Pete Hurst | 2013-04-01 06:35:32 +0100

Properly fix namespace clash

--------------------------------------------------------------------------------
ababcc8f50 | Pete Hurst | 2013-04-01 06:35:32 +0100

Layered grid layout
Utilising some very basic hyper features to draw up to three grids on top of 
each other

--------------------------------------------------------------------------------
88c3a0bcf2 | Pete Hurst | 2013-04-01 06:35:31 +0100

Omnigrid subdivider

--------------------------------------------------------------------------------
8feae0c647 | Pete Hurst | 2013-04-01 06:35:31 +0100

Fix a problem with namespace collision
The old version barely used the hyper namespace but there was a slight 
collision with the new version.

--------------------------------------------------------------------------------
45b42a8afe | DracoOmega | 2013-04-01 02:24:51 -0230

Note suppression and sentinel's mark in the logfile

--------------------------------------------------------------------------------
220d423dc4 | Neil Moore | 2013-03-31 23:20:35 -0400

Allow monsters to displace submerged monsters.
This avoids having monsters stuck behind a hidden trapdoor spider: now
they can swap spaces with the spider, even if they don't "outrank" it.
We still do the normal habitibility checks, so this won't push a fish
out of water or anything like that.

--------------------------------------------------------------------------------
43a7a6641e | Chris Campbell | 2013-04-01 04:02:14 +0100

Don't prompt about sacrifices with auto_sacrifice set to false
When the option is disabled, players should be left to make their own
decisions about what to do with items. Keep the current behaviour
(prompts to ignore items) when auto_sacrifice is set to "prompt_ignore".

--------------------------------------------------------------------------------
b0bbe389b1 | ontoclasm | 2013-03-31 21:26:17 -0500

Pie tiles

--------------------------------------------------------------------------------
76cdad10b6 | David Lawrence Ramsey | 2013-03-31 20:53:47 -0500

Tweak background description for Jesters to account for demigods.

--------------------------------------------------------------------------------
34d789d929 | Neil Moore | 2013-03-31 21:09:15 -0400

Fix timing of startup message for jesters.
It was causing a crash when the Xom message caused a -More-, because
that triggers a redrawn, but several data structures had not yet been
initialized.

--------------------------------------------------------------------------------
62d5a83c8c | David Lawrence Ramsey | 2013-03-31 19:47:41 -0500

Tweak manual entry for Jesters to account for demigods.

--------------------------------------------------------------------------------
09f16ec9d4 | David Lawrence Ramsey | 2013-03-31 19:46:25 -0500

Add formatting fix.

--------------------------------------------------------------------------------
83a7f4e08d | Brendan Hickey | 2013-03-31 17:22:29 -0700

Nerf Demigod Jesters
They can't worship Nemelex. But Xom can still be angry.

--------------------------------------------------------------------------------
587595eca8 | Pete Hurst | 2013-04-01 01:14:22 +0100

Allow demons and angels to recover from porkalation
Kirke's porkalator could create hell hogs and holy swine, but these monsters 
weren't checked for on reversion.

--------------------------------------------------------------------------------
27b6fb311a | Brendan Hickey | 2013-03-31 16:59:44 -0700

Merge branch 'jester'

--------------------------------------------------------------------------------
f2a36915bf | Pete Hurst | 2013-04-01 00:36:10 +0100

#5710 Properly place a blink frog band with Prince Ribbit
Prevents Prince Ribbit potentially getting overwritten by the blink frog that 
placed subsequently in the Lair vault.

--------------------------------------------------------------------------------
488145ed36 | Pete Hurst | 2013-04-01 00:20:13 +0100

#2263 Allow Kirke hogs to revert form across levels
Uses dactions as per Pikel's slave band.

--------------------------------------------------------------------------------
6851dc88c7 | Adam Borowski | 2013-04-01 00:52:15 +0200

Make Coc/Tar/Geh/Dis monster spawn mostly work.
(Note: this is about regular monster spawns, a good part of opposition you
met comes from hell effects.)

The data was totally broken: a quirk in the old code mapped all levels above
$HELL:3 to $HELL:3.  This meant, a lot of iconic monsters were missing, and
distributions were quite out of whack.

This time I did not paid that much attention to reproducting the old state
exactly: most PEAKs would be UPs (with a max at $HELL:3 or deeper), and
changing a phantom to _increasing_ frequency with depth feels totally wrong.
I did not go wild on intentional changes, though.

--------------------------------------------------------------------------------
2d7c8fe36e | Samuel Bronson | 2013-03-31 18:47:00 -0400

Merge branch 'randart-jewellery-id' to zap #1083
Huh. That rhymes...

--------------------------------------------------------------------------------
338d957016 | Adam Borowski | 2013-04-01 00:38:20 +0200

Reduce everyone's Stealth and Short Blades aptitudes by 1.
This compensates for stabbers needing one less skill.  To be fair, they
should lose 2 from each, but there are non-stabber builds who want some
stealth.

--------------------------------------------------------------------------------
7ae9421666 | Adam Borowski | 2013-04-01 00:38:18 +0200

The Stabbing skill went to a dark alley, and, you know...
Per one of proposals, its effect is now an average of the weapon skill
and Stealth.  Stabbing tiers remain as before:
* daggers
* other short blades
* long blades, spears, small club
* other stuff

Let's see how this works.  We can always change the formulas, and at
least the skill is gone.

--------------------------------------------------------------------------------
cdf6b1f54f | Brendan Hickey | 2013-03-31 15:35:36 -0700

Weaken Jester restrictions
Restrict Felids because of no equipment use.
Restrict Trolls for bad evoc.
Unrestrict everything else.

--------------------------------------------------------------------------------
a295f787a0 | Raphael Langella | 2013-04-01 00:14:16 +0200

Fix formatting of some russian and german tutorial entries.

--------------------------------------------------------------------------------
7938f4afc1 | Chris Campbell | 2013-03-31 22:30:57 +0100

Fix +Blink randart property not being identified on equip

--------------------------------------------------------------------------------
326253f3c1 | Steve Melenchuk | 2013-03-31 15:26:46 -0600

Don't let the Orc serial ending vaults place outside the ending (#6848).

--------------------------------------------------------------------------------
fe23766a79 | Samuel Bronson | 2013-03-31 17:26:06 -0400

Migrate old saves to the post-#1083 world.

--------------------------------------------------------------------------------
727451ff3d | Translators | 2013-03-31 23:20:46 +0200

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
8b295f210b | Brendan Hickey | 2013-03-31 14:15:50 -0700

Add a jester staff tile

--------------------------------------------------------------------------------
c70f60e05f | Samuel Bronson | 2013-03-31 17:09:51 -0400

Document current/proper usage of wear_id_type().

--------------------------------------------------------------------------------
92e5746e50 | Brendan Hickey | 2013-03-31 13:48:25 -0700

Put on a jester costume!

--------------------------------------------------------------------------------
4a3762b5ca | David Lawrence Ramsey | 2013-03-31 15:28:06 -0500

Reduce pie generation chances on the dungeon floor.

--------------------------------------------------------------------------------
24f3786e81 | Steve Melenchuk | 2013-03-31 14:24:20 -0600

Prevent allies from picking up prizes in okawaru_arena (#6846).

--------------------------------------------------------------------------------
e0babb4e70 | David Lawrence Ramsey | 2013-03-31 14:45:27 -0500

Merge branch 'master' into jester
Conflicts:
	crawl-ref/source/itemprop-enum.h
	crawl-ref/source/makeitem.cc

--------------------------------------------------------------------------------
90c20e8f1a | David Lawrence Ramsey | 2013-03-31 14:43:45 -0500

Add NUM_REAL_SPECIAL #ifdefs for armor and missile brands.

--------------------------------------------------------------------------------
5ea5e50ef9 | David Lawrence Ramsey | 2013-03-31 14:32:18 -0500

Fix indentation.

--------------------------------------------------------------------------------
e7d62258f1 | David Lawrence Ramsey | 2013-03-31 14:30:40 -0500

Add missing default case for edible missiles.

--------------------------------------------------------------------------------
7d69002ac6 | David Lawrence Ramsey | 2013-03-31 14:30:40 -0500

Add NUM_REAL_SPECIAL #ifdefs for armor and missile brands.

--------------------------------------------------------------------------------
5cec9182c5 | Steve Melenchuk | 2013-03-31 14:30:40 -0500

One last batch of (mini)vaults before 0.12 gets branched.
This contains a lair ending inspired by some previous discussion, and
four mour ministairs minivaults.

--------------------------------------------------------------------------------
b95c67d0be | Adam Borowski | 2013-03-31 14:30:40 -0500

Newline fixes.

--------------------------------------------------------------------------------
edfb43a935 | David Lawrence Ramsey | 2013-03-31 14:30:40 -0500

Add formatting fix.

--------------------------------------------------------------------------------
006e782bcb | Brendan Hickey | 2013-03-31 12:26:41 -0700

A Jester Robe
Add an unused Jester Robe.

--------------------------------------------------------------------------------
0da90d7a39 | Pete Hurst | 2013-03-31 20:25:55 +0100

Clarify OS X build instructions (HenryFlower)

--------------------------------------------------------------------------------
23578466cf | David Lawrence Ramsey | 2013-03-31 13:40:44 -0500

Simplify setting ego types of Jesters' starting equipment.

--------------------------------------------------------------------------------
f012a03f0c | David Lawrence Ramsey | 2013-03-31 13:40:44 -0500

Properly name the blinding missile brand, but still don't display it.

--------------------------------------------------------------------------------
b96d59c944 | Steve Melenchuk | 2013-03-31 12:32:12 -0600

One last batch of (mini)vaults before 0.12 gets branched.
This contains a lair ending inspired by some previous discussion, and
four mour ministairs minivaults.

--------------------------------------------------------------------------------
ec2fe79bd3 | Adam Borowski | 2013-03-31 20:29:16 +0200

Newline fixes.

--------------------------------------------------------------------------------
af34adff63 | Adam Borowski | 2013-03-31 20:28:16 +0200

Let jesters use their cap tile.

--------------------------------------------------------------------------------
23a585b9e9 | David Lawrence Ramsey | 2013-03-31 13:21:58 -0500

Add formatting fix.

--------------------------------------------------------------------------------
d59509ef63 | David Lawrence Ramsey | 2013-03-31 13:20:49 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
a3e4dc3090 | Samuel Bronson | 2013-03-31 14:11:43 -0400

Improve display of "tried" for artefacts (IMO, at least)

--------------------------------------------------------------------------------
d4e8621ff7 | Brendan Hickey | 2013-03-31 11:07:37 -0700

Add a Red/Blue jester cap tile
Gosh. Adding tiles seems to require a lot of book keeping. Adding only the 
image for now.

--------------------------------------------------------------------------------
f78afce775 | Brendan Hickey | 2013-03-31 11:07:36 -0700

Reduce pie nutrition

--------------------------------------------------------------------------------
a5436d8bb7 | David Lawrence Ramsey | 2013-03-31 12:21:34 -0500

Merge branch 'master' into jester

--------------------------------------------------------------------------------
a1c26c6269 | David Lawrence Ramsey | 2013-03-31 12:20:17 -0500

Tweak comments.

--------------------------------------------------------------------------------
5196a6c88a | David Lawrence Ramsey | 2013-03-31 11:59:29 -0500

Remove now-unused MI_MAX_RACIAL reference.

--------------------------------------------------------------------------------
15f5a93ed6 | David Lawrence Ramsey | 2013-03-31 11:54:32 -0500

Remove long-obsolete MI_MAX_RACIAL.

--------------------------------------------------------------------------------
652213d596 | David Lawrence Ramsey | 2013-03-31 11:52:11 -0500

Properly add pies to the firing order, so that quiver-cycling them works.

--------------------------------------------------------------------------------
f6a7ff0378 | David Lawrence Ramsey | 2013-03-31 11:44:33 -0500

Reorder firing type enums a bit; they're not saved in games anyway.

--------------------------------------------------------------------------------
8b6cf31d87 | David Lawrence Ramsey | 2013-03-31 11:36:04 -0500

Fix a throwing bit for pies: they actually do damage according to Missile_prop.

--------------------------------------------------------------------------------
95ee55b0f7 | Samuel Bronson | 2013-03-31 12:35:12 -0400

Having fixed #1083, remove the comments pointing out the problem.

--------------------------------------------------------------------------------
85da7c5c4a | David Lawrence Ramsey | 2013-03-31 11:13:53 -0500

Add missing throwing bits for pies.

--------------------------------------------------------------------------------
3c80d438a5 | David Lawrence Ramsey | 2013-03-31 11:12:47 -0500

Properly mark pies as not needing launchers.

--------------------------------------------------------------------------------
a40b90e12d | David Lawrence Ramsey | 2013-03-31 10:16:18 -0500

Add a manual entry for Jesters.
(Not updating the online wiki.  This will have to be manually added
after it's updated, but at least it's here.)

--------------------------------------------------------------------------------
e4d51eb7c1 | David Lawrence Ramsey | 2013-03-31 09:56:07 -0500

Let pies (rarely) show up on the dungeon floor.

--------------------------------------------------------------------------------
f7fd9575e7 | Neil Moore | 2013-03-31 09:52:50 -0400

Fix an incorrect section reference in options_guide.
I missed this when rearranging the Lua sections in 0.11-a0-3161-g891905d.

--------------------------------------------------------------------------------
2ebd401384 | Neil Moore | 2013-03-31 09:46:03 -0400

Actually colour uncursed items green on Unix systems.
We don't use PCRE on Unix systems to keep our dependencies down, so the
solution to "tried on uncursed" in 72301d3 doesn't work there.  Instead,
use two regexps: colour "tried on uncursed" in lightgrey, then
"uncursed" in green; the first match is used.

If we decide at some point to use PCRE on Unix, this commit should be
reverted.

--------------------------------------------------------------------------------
373eb260b4 | Pete Hurst | 2013-03-31 11:56:17 +0100

Allow asterisk to fake ctrl key at wizmode prompt

--------------------------------------------------------------------------------
b96d9b6a1b | Pete Hurst | 2013-03-31 06:30:36 +0100

Tag Shoals huts with transparent
Could prevent very rare situation where rune vault was only accessible by 
digging.

--------------------------------------------------------------------------------
72301d3322 | Pete Hurst | 2013-03-31 05:59:38 +0100

#4874 Don't highlight scrolls in green when inscription says "tried on uncursed 
..."
Added a regex exclusion to default menu_colours.txt to prevent this case.

--------------------------------------------------------------------------------
5edf6b20a5 | Pete Hurst | 2013-03-31 05:41:37 +0100

Up iterations for caves in D also

--------------------------------------------------------------------------------
d07a289055 | DracoOmega | 2013-03-31 02:02:14 -0230

Some new vaults (HangedMan)
An early minivault, floating vault for Elf/Crypt, small Lair end,
standard Vaults room, and an encompass vault for late D.

--------------------------------------------------------------------------------
d0498ca1ae | DracoOmega | 2013-03-31 02:02:12 -0230

New starspawn tentacle tiles (ontoclasm) and associated code

--------------------------------------------------------------------------------
78a13f6a7a | Pete Hurst | 2013-03-31 05:31:10 +0100

#6843 Increase base iterations of spotty in standard Orc layout
Since the connectivity fixes there were frequently extremely small levels. The 
number of iterations
had a very high variance (100 + random2(500)) and this was much more noticable 
with fewer bubbles.

--------------------------------------------------------------------------------
a421ff02fb | Pete Hurst | 2013-03-31 05:24:32 +0100

Don't prevent arbitrary items being quivered
Missed this one because you _could_ quiver anything so long as you weren't 
carrying any thrown missiles.

--------------------------------------------------------------------------------
0428a166cb | Pete Hurst | 2013-03-31 05:04:20 +0100

Don't allow melded rods to be recharge targets, for consistency with other 
scrolls

--------------------------------------------------------------------------------
64335a372b | Pete Hurst | 2013-03-31 05:04:20 +0100

Filter inventory to valid targets for unidentified scroll
Only enchantable armour, unidentified items, and rechargeable wands/rods now 
listed

--------------------------------------------------------------------------------
23dc6cb2b3 | Pete Hurst | 2013-03-31 05:04:19 +0100

Don't allow player bypassing menu restrictions with clua

--------------------------------------------------------------------------------
bab355256a | Pete Hurst | 2013-03-31 05:04:19 +0100

Prevent selecting inventory items that cannot be used, including melded items 
for scrolls

--------------------------------------------------------------------------------
4bb9ef030d | Samuel Bronson | 2013-03-30 22:37:17 -0400

Try to fix auto-ID of randart jewellery.

--------------------------------------------------------------------------------
cf6489b92a | Samuel Bronson | 2013-03-30 21:28:40 -0400

Be more careful of NULL pointers in CrawlHashTable/CrawlVector pretty printers

--------------------------------------------------------------------------------
0bcbfe5c1c | Samuel Bronson | 2013-03-30 20:12:13 -0400

Remove unneeded "if (artefact)" checks from auto-ID code for jewellery.
I needed them gone for some experiments I was doing, and they don't
really do anything useful anyway ...

--------------------------------------------------------------------------------
a12ebb9e12 | Samuel Bronson | 2013-03-30 19:22:56 -0400

Add PURE/IMMUTABLE to many functions in itemprop.h and refine a few types.

--------------------------------------------------------------------------------
29e3195232 | Chris Campbell | 2013-03-30 22:14:09 +0000

Remove a pair of abyss vaults
Their idea of "wretched stars behind grates" doesn't actually function.

--------------------------------------------------------------------------------
7de6e29853 | Chris Campbell | 2013-03-30 22:01:22 +0000

Fix okawaru_arena trapping players
Hatches let pacified monsters leave the vault, as well as letting the
player escape if something else goes wrong somehow. Also prevent the
iron trees from being disintegrated (you still lose Fedhas piety for
shattering them though, probably they should just be normal trees).

This vault still causes crashes, see #6846.

--------------------------------------------------------------------------------
30b94afdac | Chris Campbell | 2013-03-30 21:01:26 +0000

Remove a reference to ball lightnings casting spells

--------------------------------------------------------------------------------
5c8c957062 | Chris Campbell | 2013-03-30 20:59:47 +0000

Fix beam name "force bolt" implying that the bolt is a beam
In other cases, "bolt" (bolt of foo, venom/lightning bolt, etc) implies
a penetrating beam, which striking is not.

--------------------------------------------------------------------------------
b47114a927 | Chris Campbell | 2013-03-30 20:22:05 +0000

Remove a reference to orb mimics
Since we no longer have alternate orb chambers.

--------------------------------------------------------------------------------
6d3b674ad1 | Chris Campbell | 2013-03-30 20:21:30 +0000

Comment fix

--------------------------------------------------------------------------------
67d9f348af | Chris Campbell | 2013-03-30 20:21:09 +0000

Remove an Ashenzari overflow altar
It no longer makes sense with butchery restrictions removed.

--------------------------------------------------------------------------------
8b2b6b6a42 | Raphael Langella | 2013-03-30 15:52:31 +0100

Disable energy randomization for allies following the player.
Like f542eec, it doesn't serve much other purpose than traffic jam.

--------------------------------------------------------------------------------
aeeb2098c7 | David Lawrence Ramsey | 2013-03-30 06:18:31 -0500

Allow specifying pies in firing order.

--------------------------------------------------------------------------------
99e5230545 | David Lawrence Ramsey | 2013-03-30 05:47:56 -0500

Remove unneeded brackets.

--------------------------------------------------------------------------------
1eb2df6676 | David Lawrence Ramsey | 2013-03-30 05:46:46 -0500

Fix spacing.

--------------------------------------------------------------------------------
d5bcb09641 | David Lawrence Ramsey | 2013-03-30 05:43:52 -0500

Fix a missing base_type check for edible pies.

--------------------------------------------------------------------------------
6600657d80 | Raphael Langella | 2013-03-30 10:15:39 +0100

Show pies in the eat menu.
Which also makes it possible to eat them if you're not carrying any other food.

--------------------------------------------------------------------------------
276f637ca8 | Raphael Langella | 2013-03-30 10:07:39 +0100

Wizard hats (and other items with a sub_type of 9) are inedible.

--------------------------------------------------------------------------------
3194dd2051 | Brendan Hickey | 2013-03-30 00:57:07 -0700

Pies are edible
Make pies edible!

--------------------------------------------------------------------------------
6b5202d605 | Adam Borowski | 2013-03-30 07:48:15 +0100

Blame the correct perpetrator for monster-thrown pies.
I doubt this ever matters, though.

--------------------------------------------------------------------------------
206c400a89 | Samuel Bronson | 2013-03-30 02:47:36 -0400

More bludgeon butchery: allow knife use as long as the form can wield.
(Don't worry about pesky things like "are there any limbs left with
which to wield the knife?".)

--------------------------------------------------------------------------------
b83ca8085a | Brendan Hickey | 2013-03-29 23:06:32 -0700

Nerf pies.

--------------------------------------------------------------------------------
53a79eead1 | Adam Borowski | 2013-03-30 07:02:58 +0100

Fix wtile: not working on anything other than shields.

--------------------------------------------------------------------------------
695900edb4 | Brendan Hickey | 2013-03-29 22:36:45 -0700

Custard Pies
A new missile type. Inflicts blindness on monsters. Always mulches.

--------------------------------------------------------------------------------
03246d2c19 | Brendan Hickey | 2013-03-29 20:30:23 -0700

Jester Weapon Tweak
Reduce Chaos quarterstaff from +2,+2 to +1,+1.

--------------------------------------------------------------------------------
7e539258a0 | DracoOmega | 2013-03-30 00:22:20 -0230

Some thrashing horror changes
Thrashing horrors are no longer living creatures, as this was
inconsistent with other Abyssals and had odd interactions with
god goods, particularly after they frenzied (TSO would object to
you killing them, for example). They are now nonliving like the
rest. Additionally, they now use might at low hp instead of frenzy,
since turning neutral often resulted in them attacking nothing at
all. Finally, they lose see invis (it felt a little odd for an
unintelligent mound of thrashing flesh to have this)

--------------------------------------------------------------------------------
3d0f99a7bd | Samuel Bronson | 2013-03-29 22:42:21 -0400

Add a comment to message_window::reset_temp().

--------------------------------------------------------------------------------
e5544a6fc0 | Samuel Bronson | 2013-03-29 22:42:20 -0400

Stop dropping lines from the message window due to an extra (nasal) -=.
(Yes, I'm pretty sure this -= was causing undefined behaviour.)

--------------------------------------------------------------------------------
6deafba185 | Steve Melenchuk | 2013-03-29 20:25:42 -0600

Nudge up the chance of a primary vault placing in Zot.
In particular, the chance that any one level in Zot:1-4 will get a
primary vault is 33%, equivalent to D:20-23's chance.

I've brought this up elsewhere, and the only major concern seems to be
that if we place a really large amount of primary vaults Zot will get
bogged down in stair vaults; this is thus a significantly more modest
increase than has been suggested elsewhere.

--------------------------------------------------------------------------------
ad44c397ce | Steve Melenchuk | 2013-03-29 20:11:44 -0600

Remove a swamp ending.
General consensus is that we already have enough rot/miasma-type endings
(_pestilence and _vile) and that this one doesn't distinguish itself
enough to warrant keeping around.

--------------------------------------------------------------------------------
fc4629cccb | Steve Melenchuk | 2013-03-29 20:11:44 -0600

Another batch of vaults.
Featured are a new Crypt ending (intended to be roughly as challenging
as the other Crypt encompass endings), four Orc endings (because we're
probably all intimately familiar with the current set), and another
three ministairs minivaults.

--------------------------------------------------------------------------------
ae4b82e90e | Brendan Hickey | 2013-03-29 18:53:12 -0700

Chaos Brand Jester's starting staff.

--------------------------------------------------------------------------------
374573a2be | DracoOmega | 2013-03-29 23:17:11 -0230

Fix fear not properly interrupting word of recall

--------------------------------------------------------------------------------
17b8f85163 | Brendan Hickey | 2013-03-29 18:45:36 -0700

Reduce Jester Penance
Reduce Xom penance to 50. This will cause the effect to last for 50k turns and 
prevent penance reduction scumming.

--------------------------------------------------------------------------------
91b8e6eee7 | Brendan Hickey | 2013-03-29 18:43:56 -0700

Change Jester Abbreviation
Js -> Jr

--------------------------------------------------------------------------------
e7829ea84c | Samuel Bronson | 2013-03-29 13:47:58 -0400

Add a note about ][ stairs to syntax.txt (courtesy of HangedMan)

--------------------------------------------------------------------------------
9d2f85a58a | David Lawrence Ramsey | 2013-03-29 11:37:08 -0500

Fix spacing.

--------------------------------------------------------------------------------
2bf0346599 | Chris Campbell | 2013-03-29 14:35:16 +0000

Remove some problematic aura vaults
The Pan vaults are potentially ridiculously lethal, possibly dropping
the player next to a pan lord and multiple greater demons while
disabling access to spells, scrolls, wands and god abilities, which
is unreasonable even by Pan standards.

fun_with_auras has interface problems in console, as well as being
questionable thematically. The "angel + profane servitor" idea might
fit better in an Abyss or Zot-only vault?

--------------------------------------------------------------------------------
f5ccecb397 | Adam Borowski | 2013-03-29 12:35:00 +0100

Make jesters' caps look like jester caps.
The worn tile is missing, though.

--------------------------------------------------------------------------------
f7133256f7 | Adam Borowski | 2013-03-29 12:29:21 +0100

Fix wtile: not working on anything other than shields.

--------------------------------------------------------------------------------
b9a82ccac7 | Adam Borowski | 2013-03-29 10:41:13 +0100

Give jesters a deck of war at start (bh)
Decks require additional processing when creating.

Should the "initial gift" flag be cleared?  Currently, you get another deck
after a few sacrifices or draws.

--------------------------------------------------------------------------------
fcd075344d | Brendan Hickey | 2013-03-29 00:03:40 -0700

Jester god tweaks
Include a message from Xom at game start. Hopefully to reduce player confusion.
Decrease Nemelex starting piety.

--------------------------------------------------------------------------------
aaf4ebcdb8 | Brendan Hickey | 2013-03-28 23:48:27 -0700

More Jester Tweaks
Rejigger some skills.
Mix up the equipment.

--------------------------------------------------------------------------------
561403f681 | Adam Borowski | 2013-03-29 07:34:01 +0100

Hush an -Og warning.
It's non-obvious that dims will never be more than 4.  Even if at higher
optimization numbers the compiler notices this, I as a human still failed
to do so after first two readings.

--------------------------------------------------------------------------------
00a0082d11 | Brendan Hickey | 2013-03-28 22:58:19 -0700

Jester Tweaks
Remove permanent Xom wrath. Max penance will take a long time to expire.
Job choices shouldn't have special logic.

Club -> Quarterstaff.
Jester starts with darts.
Start with evocation skill.

--------------------------------------------------------------------------------
4bdaa9d9e3 | David Lawrence Ramsey | 2013-03-29 00:15:14 -0500

Add a Screaming Sword message.

--------------------------------------------------------------------------------
720f7a6c4d | David Lawrence Ramsey | 2013-03-29 00:02:29 -0500

Change Xom inner flame message; imitating Vehumet just doesn't seem right.

--------------------------------------------------------------------------------
06c605c0d5 | Pete Hurst | 2013-03-29 04:41:30 +0000

#5464 Don't create shafts on Crypt:4

--------------------------------------------------------------------------------
57dff1e585 | Pete Hurst | 2013-03-29 04:34:57 +0000

#5428 Remove gold pickup spam message in evilmike_quicksilver_bait
Set to a single pile of a decent amount of gold.

--------------------------------------------------------------------------------
095b2569e3 | Brendan Hickey | 2013-03-28 21:30:38 -0700

Never diminish Xom wrath for Jesters.
Keep the party hopping.

--------------------------------------------------------------------------------
43c476dc72 | Pete Hurst | 2013-03-29 03:19:35 +0000

Fill disconnected areas in swamp layout before stairs are placed
Previously the layout could generate small disconnected areas with a staircase.
Theoretically it was possible to get stuck in two bubbles with no way to access 
the
rest of the level.

Additionally, deep water teleport closets were being generated around the map 
borders.
These could randomly trap players able to fly or swim.

--------------------------------------------------------------------------------
5bc3df1f5f | Pete Hurst | 2013-03-29 03:19:35 +0000

Optimise zonify and add support for filling deep water zones

--------------------------------------------------------------------------------
b40e231c99 | David Lawrence Ramsey | 2013-03-28 17:09:29 -0500

Fix spacing.

--------------------------------------------------------------------------------
5bd1d78149 | David Lawrence Ramsey | 2013-03-28 17:04:12 -0500

Revert "Properly mark hyperactive ballistos as giving no experience, as with 
ordinary ballistos."
They need to give experience or they won't count as firewood, and
they're always a threat unlike ordinary ballistos, so it's not
inconsistent as it first appeared.

Needed according to SamB on the ##crawl-dev logs.

This reverts commit e9d079e608b2475f92acaaefa3a6194eb4286fb1.

--------------------------------------------------------------------------------
e9d079e608 | David Lawrence Ramsey | 2013-03-28 16:51:52 -0500

Properly mark hyperactive ballistos as giving no experience, as with ordinary 
ballistos.

--------------------------------------------------------------------------------
c98b6fdb4b | DracoOmega | 2013-03-28 19:10:46 -0230

Fix being unable to detect traps at ranges greater than 1
An oversight left over from conversion of the old trap detection
formula.

--------------------------------------------------------------------------------
b25a7d0b9d | David Lawrence Ramsey | 2013-03-28 15:47:54 -0500

Add formatting fix.

--------------------------------------------------------------------------------
f304ff4dfa | Pete Hurst | 2013-03-28 20:33:39 +0000

Add some shaped cave layouts and fill disconnected zones in Gehenna

--------------------------------------------------------------------------------
3f9807e1b3 | Pete Hurst | 2013-03-28 20:33:38 +0000

Fix connectivity of Orc, Slime, and other spotty layouts
We now only generate the three downstairs and build spotty
caves around them (so only three bubbles). This means connectivity
is always guaranteed downstream to the branch end, which is now always
connected, so all bubbles can be traversed.

This is likely to affect how the levels look to a certain extent
because spotty_map has less starting to points to work from; but it
appears fine to me so far. It it turns out to be worse (i.e. too many
small maps) I can adjust the algorithm to better replicate the old
behaviour.

--------------------------------------------------------------------------------
c841bacb93 | Pete Hurst | 2013-03-28 20:33:37 +0000

Respect doors as passable for connectivity

--------------------------------------------------------------------------------
e58e97905f | Pete Hurst | 2013-03-28 20:33:36 +0000

Hyper^3 layout engine
This is the new rewrite of the layout. Not all pieces of it work yet and Vaults 
is still using the old one. The old files (v_*.lua) will be removed once Vaults 
has been implemented in hyper^3.

--------------------------------------------------------------------------------
6deffb2858 | Pete Hurst | 2013-03-28 20:33:36 +0000

Support zonify direct from grid

--------------------------------------------------------------------------------
2ac11f70bb | Pete Hurst | 2013-03-28 20:33:35 +0000

Zone analysis lib for connectivity processing
Allows flexible fixing of disconnected zones (but also creates a model of the 
zones to perform other tasks)

--------------------------------------------------------------------------------
22cd56e425 | David Lawrence Ramsey | 2013-03-28 15:31:53 -0500

Properly use mons_make_god_gift() for friendly Fedhas-created plant ally spawns.

--------------------------------------------------------------------------------
5fc808220d | Adam Borowski | 2013-03-28 21:18:32 +0100

Fix two issues with monster Ozocubu's Armour.
* beam_adjust_flavoured() doesn't yet know what the final damage will be,
  melt it in react_to_damage() instead
* bolt of magma, firestorm, sticky and hellfire didn't melt

--------------------------------------------------------------------------------
690d805968 | David Lawrence Ramsey | 2013-03-28 15:01:28 -0500

Add formatting fixes, and rename more variables for clarity.

--------------------------------------------------------------------------------
20db4a2fff | David Lawrence Ramsey | 2013-03-28 14:27:46 -0500

Simplify mons_is_object(), as it's a subset of mons_is_conjured().

--------------------------------------------------------------------------------
e0473afe9f | David Lawrence Ramsey | 2013-03-28 14:17:52 -0500

Properly mark hostile Fedhas spores as giving no experience.

--------------------------------------------------------------------------------
463749c68e | David Lawrence Ramsey | 2013-03-28 14:16:23 -0500

Remove unneeded setting of the attitude change attempt flag for hostile spores.

--------------------------------------------------------------------------------
30938fb104 | David Lawrence Ramsey | 2013-03-28 14:11:50 -0500

Rename a variable, for clarity.

--------------------------------------------------------------------------------
eff7d36747 | David Lawrence Ramsey | 2013-03-28 14:08:13 -0500

Properly use mons_make_god_gift() for directly Fedhas-created plant allies.
Also, ensure that attitude change attempts work properly on
ballistomycetes evolved from floor mold, and experience is not rewarded
for any directly Fedhas-created plant allies.

--------------------------------------------------------------------------------
7de76e1e80 | David Lawrence Ramsey | 2013-03-28 13:57:08 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
334337b948 | David Lawrence Ramsey | 2013-03-28 13:41:19 -0500

Simplify.

--------------------------------------------------------------------------------
f6bc823ae0 | David Lawrence Ramsey | 2013-03-28 13:25:16 -0500

Add formatting fix.

--------------------------------------------------------------------------------
e755ef85af | David Lawrence Ramsey | 2013-03-28 12:40:17 -0500

Properly use mons_make_god_gift() for Fedhas-evolved plant allies.

--------------------------------------------------------------------------------
a37caf2119 | David Lawrence Ramsey | 2013-03-28 11:56:09 -0500

Fix capitalization.

--------------------------------------------------------------------------------
b802863099 | David Lawrence Ramsey | 2013-03-28 11:52:26 -0500

Fix indentation.

--------------------------------------------------------------------------------
c474d517b7 | Raphael Langella | 2013-03-28 16:54:45 +0100

Remove superfluous whitespaces from japanese and chinese files.

--------------------------------------------------------------------------------
9ec96eb583 | Translators | 2013-03-28 13:21:43 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
0786d146ac | Brendan Hickey | 2013-03-27 22:52:59 -0700

Jesters
A new Nemelex follower background.
Begins under penance from Xom.

--------------------------------------------------------------------------------
efa523baba | DracoOmega | 2013-03-28 02:26:17 -0230

Make swiftness actually cut your trap detection chance in half
For a while now it has not affected detection of traps at close
range, making the bit of its description about it making you more
likely to 'blunder into traps' rather incorrect.

--------------------------------------------------------------------------------
298edf1064 | DracoOmega | 2013-03-28 02:26:15 -0230

Adjust trap detection formula
Goodbye magic 8.6 breakpoint (you will be mourned by some, I am sure).
Instead, 8.6 provides a roughly 88% chance of detection, scaling
up to ~99% at 27 skill. Detection chances at lower skill at similar
to present (or slightly more generous). Ash will still provide 100%
detection with a modest amount of piety and/or skill, however.

--------------------------------------------------------------------------------
9dcbefd44a | Steve Melenchuk | 2013-03-27 15:14:16 -0600

Add an ORIENT: tag to a vault originally intended to have it.

--------------------------------------------------------------------------------
df22dd4d34 | DracoOmega | 2013-03-27 17:52:50 -0230

Adjust the shadow creatures zombie crashfix (4615c41)
The old fix had a side-effect of improperly considering zombified
monsters as opposed by neither god goods nor Fedhas, pre-generation,
resulting in a post-generation veto that caused no monster at all
to be summoned with that cast. Instead of dummying zombies out as
orcs, simply don't define them.

--------------------------------------------------------------------------------
3c56a30a33 | Steve Melenchuk | 2013-03-27 13:01:28 -0600

ldierk's geyser vault, adjusted per Mantis (#4607).
It places on a small chance in D, a slightly larger chance in Lair, and
on a normal chance in Swamp and Shoals, and throws off clouds of steam
when it erupts as intended by the author.

The size has been increased slightly (5x5 instead of 3x3) and
randomised, though the core cross is always there.

Everything is working properly in my own testing, so I'm turning it
loose.

--------------------------------------------------------------------------------
fcd482917c | Steve Melenchuk | 2013-03-27 12:14:16 -0600

Some vaults by nicolae (#6230).
There are some adjustments to clean up "holes" in the vaults and/or
rebalance them slightly.

--------------------------------------------------------------------------------
2175772d25 | Steve Melenchuk | 2013-03-27 12:14:16 -0600

Move a couple of vaults erroneously placed in float.des elsewhere.

--------------------------------------------------------------------------------
29c0cd4dde | Adam Borowski | 2013-03-27 19:09:49 +0100

Use regular plants, bushes and fungi in a vault.
Redefines there serve no purpose, and make things really hard to see,
which causes problems because of oklobs which share the glyph.

--------------------------------------------------------------------------------
5ff307770f | Adam Borowski | 2013-03-27 19:09:49 +0100

Discard empty boxes of beasts after use.

--------------------------------------------------------------------------------
5b20f5883e | Steve Melenchuk | 2013-03-27 11:33:40 -0600

Even more vaults!
This batch has two Zot stair vaults, an Abyss rune, an Abyss exit, and
five all-purpose stair minivaults.

There's very little Lua black magic this time around (sorry if there are
any folks hoping for that!) - just straight-up monster battles for the
most part.

--------------------------------------------------------------------------------
4788882c4d | Steve Melenchuk | 2013-03-27 09:05:04 -0600

Rework a vault.
I initially expressed hesitation that these monsters belonged in the
main game at all, but at the time it was added there were no objections
and even a bit of encouragement to see them added, when there was
feedback at all (see also #6542, which had absolutely no feedback).

So, now that people are in a situation where they come across it in a
game, they apparently complain endlessly about it without bothering to
inform the vault author that things are in need of a change.

The offending monsters are now gone from the vault. There should be no
problems with it now, right? Right?

--------------------------------------------------------------------------------
c72ceea666 | Adam Borowski | 2013-03-27 14:40:05 +0100

Treat spoilery items from uniques the same way as {god gift} (dpeg)

--------------------------------------------------------------------------------
4615c41bc7 | Adam Borowski | 2013-03-27 14:14:38 +0100

Don't crash on shadowy zombies.

--------------------------------------------------------------------------------
fa3a2540f0 | Adam Borowski | 2013-03-27 13:31:10 +0100

Fix unknown decks being tagged as "identified".
For most uses, decks were special-cased, but fully_identified() is used
at least for search tags, and now also show_god_gift.

--------------------------------------------------------------------------------
f0189c034c | Adam Borowski | 2013-03-27 13:26:40 +0100

Purge stringified {god gift} from old saves.
With a minor tag, so talking about god gifts in inscriptions won't be
affected.

--------------------------------------------------------------------------------
e6b09b37ec | Adam Borowski | 2013-03-27 13:16:20 +0100

A new option, show_god_gift = yes|unindent|no.

--------------------------------------------------------------------------------
649e75a567 | Adam Borowski | 2013-03-27 12:04:11 +0100

Fix god gift origin being wrong in some cases.
Plain item acquirements had their origin cleared.

Stackable items had the origin set but unused.

--------------------------------------------------------------------------------
8b9bf03188 | Adam Borowski | 2013-03-27 11:38:00 +0100

Simplify.

--------------------------------------------------------------------------------
c53b2c954c | Adam Borowski | 2013-03-27 11:31:10 +0100

Show {god gift} based on the item's origin.
A wee bit simpler than the code removed by the previous commit...
We already did this with artefact properties.

--------------------------------------------------------------------------------
c57d63b3bb | Adam Borowski | 2013-03-27 11:22:46 +0100

Don't use autoinscriptions for {god gift}.
Having the code add and remove inscriptions is problematic, it's better to
handle these some other way.

--------------------------------------------------------------------------------
eda6894b9b | DracoOmega | 2013-03-27 06:44:27 -0230

Reroll shadow creatures which would anger a god, post-generation
In the very small number of cases where a monster has a variable spell set,
and only some of them contain spells opposed by the player's god (chiefly
wizards/ogre magi which have banish in one spell set, but no evil spells
in any others), reroll their spells until a more compatible set is found.

Since this should properly handle any case of monsters which only will
sometimes be angered by the player's god (but not all the time), it should
be safe to reenable the more variable ghost_demons. (Their removal also
had the side-effect of preventing the spell from summoning ugly things or
dancing weapons)

--------------------------------------------------------------------------------
61261fbc3b | DracoOmega | 2013-03-27 05:45:15 -0230

Increase vault warden melee damage a little

--------------------------------------------------------------------------------
2168b607fa | DracoOmega | 2013-03-27 04:50:52 -0230

Adjust new V monster spawn chances
Vault wardens are more common, especially deeper. Preservers are no
longer oddly frequent on V:5, but appear most often earlier. Convokers
and sentinels are a little more common at shallow depths, and a little
less common on V:5.

Preservers also no longer spawn with orc bands; these were often
fairly pathetic by the time you encountered them together.

--------------------------------------------------------------------------------
ed91f78463 | Pete Hurst | 2013-03-27 06:48:12 +0000

Clarify stash tracker documentation for escaping plusses

--------------------------------------------------------------------------------
6083b49f18 | Pete Hurst | 2013-03-27 06:47:46 +0000

Correct a comment

--------------------------------------------------------------------------------
534313db40 | Samuel Bronson | 2013-03-26 23:57:18 -0400

Add comments about jewellery auto-ID fail, including #1083

--------------------------------------------------------------------------------
236f2ed53f | David Lawrence Ramsey | 2013-03-26 22:34:39 -0500

Move SPWPN_CONFUSE after NUM_REAL_SPECIAL_WEAPONS on next major version bump.
Needed according to SamB on the ##crawl-dev logs.

--------------------------------------------------------------------------------
831f69cd23 | Adam Borowski | 2013-03-27 01:51:58 +0100

Disallow ghost_demons from Shadow Creatures.
Monsters with that structure tend to have non-trivial answers for "will it
anger a god".

--------------------------------------------------------------------------------
9f07a3640d | Adam Borowski | 2013-03-27 01:51:58 +0100

Allow running test/stress/timeall on an arbitrary set of tests.

--------------------------------------------------------------------------------
a6199e35b2 | Adam Borowski | 2013-03-27 01:51:58 +0100

Let multiple draws of the Water card stack.
Before, you had to lure the monster in question into dry grounds; most
unspoiled people didn't even notice the second drawing does nothing
despite the message claiming it does.

--------------------------------------------------------------------------------
617c161647 | Adam Borowski | 2013-03-27 01:51:57 +0100

Make the Water card independent on processing order.
If you drown a monster whose death changes visibility (the Royal Jelly,
those fancy-shmancy quest vaults), area to the south of the monster's
position would be all flooded.

--------------------------------------------------------------------------------
bf9b4ab4fa | Adam Borowski | 2013-03-27 01:51:57 +0100

Clear lua dgn.persist between mapstat iterations.
In the default mode, each iteration generates maps for all possible levels,
so an iteration is equivalent to a full game.  No state should survive
between one and another.

--------------------------------------------------------------------------------
57d6147c16 | Adam Borowski | 2013-03-27 01:51:27 +0100

Tentatively rename "teleporter" to "short-range portal".
This name sucks, though, so I did not change it internally.  Could anyone
suggest something better?

Even "teleporter" is probably acceptable, -TELE already doesn't stop
banishment, portals, Golubria, etc, and item description already handles
that.

--------------------------------------------------------------------------------
571f73be4f | Adam Borowski | 2013-03-27 01:50:49 +0100

Fix teleporter vault trapping players.
Or, robbing them of XP and items unless they're spoiled (Nemelex's Gamble).

In other cases, it's a matter of disrobing just to go through, which is a
mere inconvenience except for zigsprint, where it was special-cased (yay
consistency).

It was also inconsistent with all other fixed means of teleportation, such
as Passage of Golubria, portal vaults, hell portals, abyss portals, etc,
which all are not swayed by mere -TELE.

In the first discussion that happened, the only reasoning for the change
was similarity of names between "teleporter" and "-TELE", rather than
gameplay reasons.  So let's deal with that instead.

This reverts commit 7f0416492553db52d7613d506b8ab584b7819904.

--------------------------------------------------------------------------------
7eaaf63a10 | Adam Borowski | 2013-03-27 01:50:49 +0100

Fix autoexplore ignoring sacrificable corpses if you step on them once.
Instead, if the player presses 'o' twice, ask for confirmation, like
autopickup does.  I fail to see why anyone would decline to sacrifice
them if they don't butcher or animate, but hey.

--------------------------------------------------------------------------------
bb8af0d4b9 | Adam Borowski | 2013-03-27 01:50:43 +0100

Depermanentify Tengu/Black Drac flight upon losing level.

--------------------------------------------------------------------------------
8f39630395 | Adam Borowski | 2013-03-27 01:50:16 +0100

Don't spam "You cannot train any new skill." over and over.
While this message cannot be totally ignored, as it warns about wasting xp,
usually it means you could potentially learn a spell you don't want just to
place xp in its skill.  That firestorming conjurer may have better things
to do than lugging a weapon of yet another type, or learning a cold spell.

I made this message repeat itself:
* when you reload the game
* after exiting the 'm' screen

--------------------------------------------------------------------------------
e3e6d37fb5 | Adam Borowski | 2013-03-27 01:50:16 +0100

Disable a vault.
Regular bushes redefined for nor reason is one thing, totally unhinged
sentient spellcasting oklobs go way, waay too far.

--------------------------------------------------------------------------------
341e9fbc8a | Adam Borowski | 2013-03-27 01:50:15 +0100

Make status lists diffable.

--------------------------------------------------------------------------------
d476fa4036 | Adam Borowski | 2013-03-27 01:50:15 +0100

Don't use "" as a brand name.
It does match "", which can be bad.

Instead, make SPWPN_CONFUSE work.  The brand is still strictly banned, so
you can't get one via makeitem.

--------------------------------------------------------------------------------
01320a9855 | Adam Borowski | 2013-03-27 01:50:15 +0100

Don't rely on monster spellbook enums for checking monster spells.
Including that header introduces a massive amount of dependencies (almost
everything includes mon-util.h), and gives incorrect answers for monsters
with anything but a simple spell set.

It also broke parallel builds because of no dependency declared in the
Makefile.

This reverts then rewrites commit 42e6b2f7096da884aa620f6ee924d9e325027139.

--------------------------------------------------------------------------------
ef011c8752 | David Lawrence Ramsey | 2013-03-26 17:21:45 -0500

Tweak cloud avoidance logic to avoid breaking out of the switch statement.

--------------------------------------------------------------------------------
8f76911dad | David Lawrence Ramsey | 2013-03-26 17:20:04 -0500

Remove an unneeded break.

--------------------------------------------------------------------------------
e3ae05df6f | David Lawrence Ramsey | 2013-03-26 17:17:10 -0500

Simplify res_petrify() usage, since it's currently a boolean.

--------------------------------------------------------------------------------
8574f93c75 | David Lawrence Ramsey | 2013-03-26 16:55:08 -0500

Properly mark a variable as unused.

--------------------------------------------------------------------------------
d918db639b | DracoOmega | 2013-03-26 18:28:24 -0230

Make shadow creatures (and scrolls of summoning) no longer unholy
The spell was evidently only flagged unholy originally in response to
the spell description stating that the creatures were made from Abyssal
matter, a fact not at all not transparent in-game, nor which seems to
match how the spell behaves in other ways. For example, TSO still penalizes
unchivalrous attacks against intelligent living creatures created by the
spell, which seems dubious if they're just unholy matter in the first place,
vampiric draining works against them if they're living, and so forth.

Now that the spell will no longer summon creatures opposed by your god
anyway, it seems sensible that they would not disapprove of it.

--------------------------------------------------------------------------------
f64331b8c2 | DracoOmega | 2013-03-26 18:28:22 -0230

Make shadow creatures never summon creatures incompatible with your god
Neither scrolls of summoning, nor the spell itself, should now summon
a creature which would immediately turn hostile to the caster.
Incompatible types are passed over in favor of possible types that are
compatible, while any incompatible members of a band are simply removed
(this is possible, for example, when summoning spellcasting draconians
as part of the band of a non-spellcasting draconian under Trog)

--------------------------------------------------------------------------------
447f7ce37a | DracoOmega | 2013-03-26 18:28:21 -0230

Make monsters with corpse-violating spells incompatible with Fedhas
Similarly to how monsters with evil spells are incompatible with good
gods, even if the monster itself is not otherwise intrinsically evil.

--------------------------------------------------------------------------------
42e6b2f709 | DracoOmega | 2013-03-26 18:28:19 -0230

Make player_will_anger_monster return a proper answer when used with monster 
types
Since flags and spells were not initialized in this case, it would
never report any monster being angered by Trog worshippers (as they
did not technically count as spellcasters yet), nor would it work
correctly with monsters possessing evil, chaotic, or otherwise
restricted spells.

--------------------------------------------------------------------------------
fe8e7753e0 | DracoOmega | 2013-03-26 18:28:18 -0230

Don't leak item information when targetting monsters with agony or hibernation
Recent changes to tracers meant that monsters whose rN+ or rC+ came
solely from equipment would still be considered invalid targets for
those spells, even when the player had no way to know they were
immune. Now the tracer only considers intrinsic resistances when
determining validity for these effects.

--------------------------------------------------------------------------------
b325f1192e | Raphael Langella | 2013-03-26 21:52:53 +0100

Don't spawn demonic guardians when worshipping Oka.
There should probably be a message about that but I'm not sure when and how
to flavour it. Probably not each time the mutation is suppressed as it would
be uselessly spammy. So when gaining the mutation or starting to worhsip Oka
whichever comes last.
The message should convey that the mutation is only suppressed and that it
would work again if the player leaves Oka.

--------------------------------------------------------------------------------
9ed62d50bd | Raphael Langella | 2013-03-26 21:52:53 +0100

New title screen inspired by Kikubaaqudgha (psiweapon, #6829).

--------------------------------------------------------------------------------
c8fdda4f60 | Translators | 2013-03-26 21:52:53 +0100

[Transifex] Remove some duplicate entries.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9add87f50e | Raphael Langella | 2013-03-26 21:52:53 +0100

[txc] Improve detection of link entries.

--------------------------------------------------------------------------------
1032866fd3 | AriaB | 2013-03-26 21:52:53 +0100

Fixed arena mode tiles misalignment.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
c5a145d121 | Translators | 2013-03-26 21:52:53 +0100

[Transifex] Some new japanese translations.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
7097029f20 | Translators | 2013-03-26 21:52:53 +0100

[Transifex] Rewrap japanese and chinese resources.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
0514f37608 | Raphael Langella | 2013-03-26 21:52:53 +0100

Fix handling of fullwidth characters when wrapping east asian languages.

--------------------------------------------------------------------------------
8446c439fe | David Lawrence Ramsey | 2013-03-26 14:09:43 -0500

Typo fix.

--------------------------------------------------------------------------------
ed49aa2009 | Samuel Bronson | 2013-03-26 14:49:29 -0400

Regularize auto-ID of clarity.

--------------------------------------------------------------------------------
7578187beb | Samuel Bronson | 2013-03-26 14:45:11 -0400

Style/arrangement nit in misc.h

--------------------------------------------------------------------------------
e12411f81d | Samuel Bronson | 2013-03-26 14:38:26 -0400

Fix/implement auto-ID of see invisible (SInv) on unrands.
It works a little too well: misc.cc:_maybe_id_jewel() reveals all
properties of an affected artefact, not just the relevant one...

--------------------------------------------------------------------------------
bebef31070 | Pete Hurst | 2013-03-26 06:27:11 +0000

Adjust a scale in the Gehenna layout
It was produce very large architecture all the time instead of the more "molten 
crust" version.

--------------------------------------------------------------------------------
cbfd86e1f2 | Samuel Bronson | 2013-03-26 01:19:16 -0400

Let butchery make better use of available manipulators (Tene)
(If it screws anything up that's my fault, though, since I rewrote
most of the code so it would help more than just octopodes.)

--------------------------------------------------------------------------------
429cbd1904 | David Lawrence Ramsey | 2013-03-26 00:01:23 -0500

Fix warning: remove now-unused variable.

--------------------------------------------------------------------------------
a66e2c5ff6 | Steve Melenchuk | 2013-03-25 22:52:02 -0600

Adjust grunt_entry_enticement to prevent scumming and stupid deaths.

--------------------------------------------------------------------------------
ef0f6fab42 | Samuel Bronson | 2013-03-26 00:00:14 -0400

Fix auto-ID of "ring of evasion" and "ring of pretection" randarts.
This was (part of) <https://crawl.develz.org/mantis/view.php?id=2591>.

--------------------------------------------------------------------------------
b151c6bc12 | Adam Borowski | 2013-03-26 04:05:47 +0100

Typo fix.

--------------------------------------------------------------------------------
5779077508 | Adam Borowski | 2013-03-26 04:00:51 +0100

Drop stale misleads from old saves.

--------------------------------------------------------------------------------
1ecf417d13 | Adam Borowski | 2013-03-26 03:53:04 +0100

Don't accept illegal mislead monsters.
For some reason, only two rolls are done, and if both fail, the function
will happily take the result of the second roll.

--------------------------------------------------------------------------------
3e643e4e0f | Adam Borowski | 2013-03-26 03:27:35 +0100

Don't use MONS_BAT as a magic cookie for mislead.
It used to have an enum of 0, which apparently popped up due to a bug
somewhere.

--------------------------------------------------------------------------------
14e4053628 | Adam Borowski | 2013-03-26 01:32:30 +0100

Shorten the Abyss rest canned test.
No point in stretching it, it should be enough for benchmarks, valgrind
or profiling, and you need an extended run to catch any randomness anyway.

--------------------------------------------------------------------------------
b8825e824e | Adam Borowski | 2013-03-26 01:32:30 +0100

Use a better adjective for Trog haters.

--------------------------------------------------------------------------------
b51cbfbd39 | Adam Borowski | 2013-03-26 01:32:29 +0100

Upgrade old PUREs to IMMUTABLE.
Unlike recent additions, these two don't depend on any non-const memory,
even though their implementation technically does.

--------------------------------------------------------------------------------
e2370fcd0f | Adam Borowski | 2013-03-26 01:32:29 +0100

Rename the bikeshed IMMUTABLE.
Because sql.

--------------------------------------------------------------------------------
c766a87ad9 | Adam Borowski | 2013-03-26 01:32:29 +0100

Restore wraith chances on V:1.
584d964 did change them to a {0,1,SEMI} distribution, which has half the
expected value on V:1, and includes invalid V:0.  My fault in 119402f6,
single-level ranges with SEMI were not supported.  They are now, all
distributions degenerate to FLAT on such a range.

--------------------------------------------------------------------------------
a00b49cdab | Samuel Bronson | 2013-03-25 19:21:25 -0400

Denote unknown weapon/missile brands as buggy.

--------------------------------------------------------------------------------
fade6b4369 | Chris Campbell | 2013-03-25 23:04:51 +0000

Don't let swiftness work on liquefied ground

--------------------------------------------------------------------------------
74121dbd65 | Chris Campbell | 2013-03-25 23:04:50 +0000

Make Leda's red for visibility in more branches than just Swamp

--------------------------------------------------------------------------------
c128f87103 | Samuel Bronson | 2013-03-25 16:23:12 -0400

Put the PRINTF thing in crawl_simple.doxy, too ...

--------------------------------------------------------------------------------
9fe1de05ad | Samuel Bronson | 2013-03-25 16:03:10 -0400

Teach Doxygen how to deal with our PRINTF macro.

--------------------------------------------------------------------------------
aa75ee236f | Samuel Bronson | 2013-03-25 15:52:18 -0400

Doxygenate the documentation in random.h

--------------------------------------------------------------------------------
8f489fac52 | Florian Diebold | 2013-03-25 20:43:24 +0100

Fix manuals always showing up as Fighting on the Webtiles Wp/Qv line (#6828).
The manual skill wasn't transferred in get_item_info.

--------------------------------------------------------------------------------
1e030da156 | Florian Diebold | 2013-03-25 20:36:21 +0100

Don't show cloaks in lich form (Medar).
It doesn't really fit on the tile.

--------------------------------------------------------------------------------
8bef64eef3 | Florian Diebold | 2013-03-25 20:33:43 +0100

Fix make clean.

--------------------------------------------------------------------------------
59c4156eab | Chris Campbell | 2013-03-25 18:28:06 +0000

Fix Leda's slow movement status light hiding haste/slow statuses

--------------------------------------------------------------------------------
0e30ca3a6d | Steve Melenchuk | 2013-03-25 12:10:37 -0600

More vaults!
The highlight here is the primary vault grunt_house_of_mirrors, a random
maze of green crystal and monsters with spells that bounce off of
crystal.

Accompanying it are two decor minivaults similar in style, a simple
bazaar layout (because why not?), and a minivault with one (generally)
desirable item that comes with a choice... and a price.

--------------------------------------------------------------------------------
8966c0cf71 | Chris Campbell | 2013-03-25 15:08:15 +0000

Fix spriggan riders forgetting their names when their mount dies

--------------------------------------------------------------------------------
007a0386e1 | ontoclasm | 2013-03-25 01:14:15 -0500

Revamped trap tiles.

--------------------------------------------------------------------------------
c6888882e2 | ontoclasm | 2013-03-25 01:14:14 -0500

Golden statue edit

--------------------------------------------------------------------------------
9ee11b8d53 | ontoclasm | 2013-03-25 01:14:14 -0500

Animated weapon icon

--------------------------------------------------------------------------------
2fe82adc4d | Samuel Bronson | 2013-03-24 23:14:01 -0400

Remove ego:confuse, since it only serves to confuse (and crash the game).
(This "brand" only works with Confusing Touch.)

--------------------------------------------------------------------------------
24d6daa7a0 | Neil Moore | 2013-03-24 20:15:30 -0400

Fix select-only documentation in skill management help.
And slightly reword a sentence.

--------------------------------------------------------------------------------
200910cb3f | Raphael Langella | 2013-03-25 00:12:55 +0100

Purge the old transifex interface.

--------------------------------------------------------------------------------
973e247f8f | Raphael Langella | 2013-03-25 00:08:29 +0100

New transifex interface.
When editing desc files, remember to run "txc t" afterwards to rewrap
the files if needed.

--------------------------------------------------------------------------------
42463ad486 | Translators | 2013-03-25 00:06:56 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9826b8029a | Samuel Bronson | 2013-03-24 16:30:31 -0400

More PURE, and introduce REALLYPURE as well.

--------------------------------------------------------------------------------
fe444ccd2c | Chris Campbell | 2013-03-24 17:42:59 +0000

Don't waste a turn when trying to cast animate skeleton on nothing

--------------------------------------------------------------------------------
a75c0ef1c6 | Chris Campbell | 2013-03-24 17:42:57 +0000

Tweak Margery's description

--------------------------------------------------------------------------------
da23c7156d | Chris Campbell | 2013-03-24 17:42:56 +0000

Remove a bazaar vault
Unlike the other rare bazaar vaults that contain some dangers, this just
requires randomly teleporting repeatedly (and spoilers to be sure that
you've found all the shops).

--------------------------------------------------------------------------------
43fbffeeb5 | Steve Melenchuk | 2013-03-24 11:32:12 -0600

Connect up Swamp vaults after filling isolated areas, not before.
This should hopefully prevent the rune chamber from being disconnected
from the rest of the level, as in #6254/#6818.

I worry slightly that this will cause a relapse of #6039, but I was
unable to reproduce that bug in the manner I previously described in
that issue (mass generation of the transparent rune vaults).

--------------------------------------------------------------------------------
61346cfaec | Pekka Lampila | 2013-03-24 12:24:18 +0100

Stop WebTiles minimap farview in certain cases

--------------------------------------------------------------------------------
8e354101e1 | Pekka Lampila | 2013-03-24 12:24:12 +0100

Don't change the map cursor in mimimap farview

--------------------------------------------------------------------------------
1114c8496a | Pekka Lampila | 2013-03-24 12:23:23 +0100

Change the minimap priorities
Dungeon features are now shown, even if there is an item there. Monsters
that give no XP have much lower priority.

--------------------------------------------------------------------------------
5eb53f69cb | Pekka Lampila | 2013-03-24 12:22:15 +0100

Fix friendly/peaceful monsters in WebTiles minimap

--------------------------------------------------------------------------------
eddbe86ad8 | David Lawrence Ramsey | 2013-03-24 00:10:31 -0500

Add formatting fix.

--------------------------------------------------------------------------------
3026d04a49 | David Lawrence Ramsey | 2013-03-23 22:48:37 -0500

Comment fix.

--------------------------------------------------------------------------------
91d8f3e775 | David Lawrence Ramsey | 2013-03-23 22:44:56 -0500

Tweak cast_shadow_creatures() to make better use of default values.

--------------------------------------------------------------------------------
b2c003ebf0 | Steve Melenchuk | 2013-03-23 19:12:37 -0600

Install dlua subdirectories as well as contents of dlua directory.
This installs the layouts subdirectory, allowing layout_caves.des to not
throw a Lua error for the missing file on a fresh install.

--------------------------------------------------------------------------------
64292187f3 | David Lawrence Ramsey | 2013-03-23 20:12:30 -0500

Fix wording.

--------------------------------------------------------------------------------
e8fedd9216 | David Lawrence Ramsey | 2013-03-23 20:12:07 -0500

Fix capitalization.

--------------------------------------------------------------------------------
7ec6965724 | David Lawrence Ramsey | 2013-03-23 20:11:41 -0500

Fix spacing.

--------------------------------------------------------------------------------
41de0b3ea9 | Adam Borowski | 2013-03-24 01:15:35 +0100

Two canned tests in the Abyss.
One includes holding '5' with monster spawns disabled; useful for
benchmarking Abyss morphs with no shifts other than timed ones.

The second one is the Abyss bot, limited to 1000 turns.  It's about
twice as slow as the former, testing monster spawns as well, combat,
scrolling shifts.  Unlike the bot, it doesn't use Xom, as that costs
yet another ~20% speed (we probably should optimize tension, too!).

--------------------------------------------------------------------------------
c5d23a8a1b | Adam Borowski | 2013-03-24 01:15:27 +0100

Wrap some very long lines.

--------------------------------------------------------------------------------
7d7719b72c | Translators | 2013-03-24 00:41:17 +0100

[Transifex] Restore lost quotes.
A few foreign ones have been copied to english, but at least they seem to be
in their original version this time, not translated.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
05c31b08e2 | Translators | 2013-03-24 00:41:17 +0100

[Transifex] Japanese translations.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
bb9aa5d16d | Translators | 2013-03-24 00:41:17 +0100

[Transifex] New description for Agnes (mikee).
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
620f046e72 | Translators | 2013-03-24 00:41:17 +0100

[Transifex] Remove some blank lines.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
3f7d3f00ff | Translators | 2013-03-24 00:41:17 +0100

[Transifex] Rewrap some entries, rename some keys, delete others.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
aca5848413 | Pete Hurst | 2013-03-23 23:21:08 +0000

Stop caverns appearing in non-D/Lair branches and slightly increase the weight

--------------------------------------------------------------------------------
4c538fa60a | Pete Hurst | 2013-03-23 23:17:12 +0000

Don't use anthill layout at extreme ends of D

--------------------------------------------------------------------------------
ffcb72aa70 | Pete Hurst | 2013-03-23 22:29:24 +0000

A cavernous D layout

--------------------------------------------------------------------------------
e67162f5da | Pete Hurst | 2013-03-23 22:23:32 +0000

Missed important include

--------------------------------------------------------------------------------
f8303549ae | Pete Hurst | 2013-03-23 21:34:34 +0000

Remove several standard layouts from Gehenna and adjust probabilities of others
* Weightings of the newly added layouts probably still need adjustment

* I specifically left _basic and _bigger_room in because they have a "lava 
river" variant designed for Gehenna. They are still lower frequency now anyway.

--------------------------------------------------------------------------------
2dbfbda57a | Pete Hurst | 2013-03-23 21:34:34 +0000

More new layouts for Gehenna (and Snake and D) by infiniplex

--------------------------------------------------------------------------------
8c20a5ca4d | Pete Hurst | 2013-03-23 21:34:34 +0000

New layouts for Gehenna

--------------------------------------------------------------------------------
9450cf593c | Pete Hurst | 2013-03-23 21:34:33 +0000

Remove old newvaults .des file
I only kept it around for reference while developing newnewvaults.

--------------------------------------------------------------------------------
20198774c3 | Pete Hurst | 2013-03-23 21:34:33 +0000

Add Lua exports for Simplex and Worley noise, and random_real
Lua API:
 - crawl.random_real()
 - crawl.worley(x,y,z) -> 
distance[0],distance[1],id[0],id[1],pos[0].x,pos[0].y,pos[0].z,pos[1].x,pos[1].y
,pos[1].z
 - crawl.simplex(x,y,z,k) - z and k are optional if you only want 2D or 3D noise

--------------------------------------------------------------------------------
21f6a187dc | Samuel Bronson | 2013-03-23 17:14:02 -0400

Fix typo of ~/crawl for ~/.crawl in a comment.

--------------------------------------------------------------------------------
bdd91ba914 | Adam Borowski | 2013-03-23 21:39:20 +0100

Reintroduce the memory leak to make trunk less crashy for now.
The real bug is not fixed, let's discuss with bh the best way to fix this.
I'd get rid of all static structs here, moving part of them to file-scope
globals to make sure they're truly independent of runtime variables, and
explicitely constructing the rest.  Which may or may not be the right
solution.

--------------------------------------------------------------------------------
2dd75a70b4 | Adam Borowski | 2013-03-23 20:38:57 +0100

Obey requests to disable monster spawns during abyssal shifts.

--------------------------------------------------------------------------------
940ff7f839 | David Lawrence Ramsey | 2013-03-23 14:22:42 -0500

Remove another spiked flail; replace it with a morningstar for now.

--------------------------------------------------------------------------------
83b81a97db | David Lawrence Ramsey | 2013-03-23 12:41:15 -0500

Add formatting fix.

--------------------------------------------------------------------------------
cf7dc3dc18 | Adam Borowski | 2013-03-23 18:11:17 +0100

Dump the abyssal state during crash.

--------------------------------------------------------------------------------
c45893afd1 | Adam Borowski | 2013-03-23 17:51:41 +0100

Don't include literal "%s" in compiler info.

--------------------------------------------------------------------------------
0f97ae5d51 | Neil Moore | 2013-03-23 12:24:52 -0400

Remove some prototypes for extinct functions (blackcustard)

--------------------------------------------------------------------------------
58b1c29932 | Adam Borowski | 2013-03-23 17:21:40 +0100

Fix compflag.h not being regenerated on a rebuild with different flags.

--------------------------------------------------------------------------------
7c173f3e35 | Adam Borowski | 2013-03-23 10:59:02 +0100

Be forgiving for single-level SEMI ranges.

--------------------------------------------------------------------------------
cf485f00f6 | Adam Borowski | 2013-03-23 10:57:26 +0100

Remove a spiked flail.

--------------------------------------------------------------------------------
584d964bb8 | DracoOmega | 2013-03-23 06:15:22 -0230

Fix a crash with generating wraiths on V:1 (and adjacent levels)
As a side effect, they are also slightly less common, but this seems
inconsequential.

--------------------------------------------------------------------------------
fbe7e18757 | Adam Borowski | 2013-03-23 07:06:33 +0100

Placate valgrind about incorrect sscanf() use.
It's an extremely rare case where ignoring errors is acceptable.

--------------------------------------------------------------------------------
4277a71431 | Adam Borowski | 2013-03-23 06:53:39 +0100

Fix an off-by-one error.
'cuz losing the value of 0x7FFFFFFF will make the sky collapse!

--------------------------------------------------------------------------------
ef6f70bb53 | Adam Borowski | 2013-03-23 06:39:41 +0100

Fix a memory leak.

--------------------------------------------------------------------------------
31929f4fad | David Lawrence Ramsey | 2013-03-22 23:58:36 -0500

Fix #ifdefs for next major version bump.

--------------------------------------------------------------------------------
713f5527d8 | Adam Borowski | 2013-03-23 03:11:18 +0100

Use even less ambiguous wording (Grunt)

--------------------------------------------------------------------------------
78e652b297 | Adam Borowski | 2013-03-23 03:06:50 +0100

Use start/end instead of top/bottom in the documentation of mon-pick 
distribution.
The old wording was ambiguous, as it could be taken for shallowest/deepest.

--------------------------------------------------------------------------------
25201dfa28 | Adam Borowski | 2013-03-23 02:24:18 +0100

Go through normal item creation for hide drops.
This fixes some fields left uninitialized (item.clear() would be enough),
and removes the quirk of using non-standard colours.

--------------------------------------------------------------------------------
119402f64b | Adam Borowski | 2013-03-23 02:09:10 +0100

Simplify some Vaults monster distributions.
No change except for a miniscule - for V:1 and + for V:2 hydras.

--------------------------------------------------------------------------------
09df719c0f | Adam Borowski | 2013-03-23 01:52:24 +0100

Unbreak Vaults branch OODs.
Especially Vaults:$ heavily relies on those.

--------------------------------------------------------------------------------
3b129d7c2e | Samuel Bronson | 2013-03-22 17:30:35 -0400

Don't interrupt autoexplore for friendly detected monsters, even w/o Ash
Otherwise, antennae are fairly annoying for Beogh worshipers...

--------------------------------------------------------------------------------
5319588b39 | DracoOmega | 2013-03-22 18:31:29 -0230

Properly rescale Vaults monster depths to the new system
An oversight meant that Vaults levels were generating monsters as
though they were 3 levels shallower than they actually were.

--------------------------------------------------------------------------------
a9f55e5109 | David Lawrence Ramsey | 2013-03-22 14:21:31 -0500

Synchronize a comment.

--------------------------------------------------------------------------------
9b96b1da7a | David Lawrence Ramsey | 2013-03-22 14:19:54 -0500

Fix Lua error on startup: mini_monsters.des needs init_hm_decor_walldepth.

--------------------------------------------------------------------------------
df5c2b20e0 | Steve Melenchuk | 2013-03-22 11:54:07 -0600

Vaultsvaultsvaultsvaultsvaults.
Two simple entries, a late-dungeon vault, a mid-to-late dungeon minivault,
and six decor vaults, specifically.

--------------------------------------------------------------------------------
bbb7fc7714 | Adam Borowski | 2013-03-22 18:37:09 +0100

Debucklerize Louise's large shield tile.

--------------------------------------------------------------------------------
0e85153063 | Adam Borowski | 2013-03-22 18:37:09 +0100

Axe an oh-so-informative comment.

--------------------------------------------------------------------------------
fb53cdece5 | Chris Campbell | 2013-03-22 15:49:01 +0000

Update the options guide for rod autopickup

--------------------------------------------------------------------------------
8d78cb9d2f | Chris Campbell | 2013-03-22 15:21:23 +0000

Pan vault tweaks
Remove some unnecessary runed doors, add another greater demon to an
underpopulated vault.

--------------------------------------------------------------------------------
8f37593807 | Steve Melenchuk | 2013-03-22 09:19:45 -0600

Replace an outdated comment.
Some inquiries on IRC revealed most of the devs then present prefer the
current behaviour to that which the comment formerly indicated.

--------------------------------------------------------------------------------
5d36b40055 | Pete Hurst | 2013-03-22 09:55:59 +0000

Fix Vaults Lua error
Code that was previously never touched had an error.

--------------------------------------------------------------------------------
059b5071c6 | Pete Hurst | 2013-03-22 08:08:33 +0000

Make multiple doors and big doors less likely in Vaults; restore windows
Yet even with this low chance they still happen multiple times per level.
Windows in the walls got lost at some point and now they return.

--------------------------------------------------------------------------------
c5845cd054 | Pete Hurst | 2013-03-22 08:08:33 +0000

Tweak performance parameters in Vaults
This reduces the total number of iterations that the layout spends
trying to place rooms, and reduces the maximum total rooms placed
from 27 to 20. This does affect the overall design of the levels -
they are effectively smaller in general, but in some cases this
produces more interesting designs than rooms stuffed in every
possible space, and this could actually mean more variation
(certainly less repetition of maps). Time taken to generate levels
is roughly halved.

--------------------------------------------------------------------------------
18ba91c903 | Pete Hurst | 2013-03-22 08:08:33 +0000

Fix an erroneous Lua call preventing mapstat for Vaults

--------------------------------------------------------------------------------
ff19bbb6ac | ontoclasm | 2013-03-22 01:46:50 -0500

Pandemonium portal tiles

--------------------------------------------------------------------------------
c3a52c912a | ontoclasm | 2013-03-22 01:46:49 -0500

Detected item and feature tiles

--------------------------------------------------------------------------------
7b82cf1189 | Pete Hurst | 2013-03-22 05:12:39 +0000

Make some entry vaults transparent
Abyss, Hell, Pan - these entry vaults were often causing vetoes on later 
dungeon levels.

--------------------------------------------------------------------------------
f1e848c6e8 | David Lawrence Ramsey | 2013-03-21 22:28:14 -0500

Add spacing fix.

--------------------------------------------------------------------------------
211238e93c | Neil Moore | 2013-03-21 22:33:45 -0400

Alias quotes to quotes, not descriptions (#6805).

--------------------------------------------------------------------------------
c708962970 | Adam Borowski | 2013-03-22 01:19:24 +0100

Remove mangled characters from a translation.

--------------------------------------------------------------------------------
96635ce6b4 | DracoOmega | 2013-03-21 21:41:30 -0230

Prevent alarm traps from spawning before D:4, reduce mark duration from them

--------------------------------------------------------------------------------
3903b67feb | DracoOmega | 2013-03-21 21:41:28 -0230

Give a message if something tries to petrify a player immune to this

--------------------------------------------------------------------------------
0c91c6ff58 | DracoOmega | 2013-03-21 21:41:27 -0230

Don't bother casting sentinel mark on monsters
It doesn't currently do anything to them.

--------------------------------------------------------------------------------
9f8bda2b66 | DracoOmega | 2013-03-21 21:41:26 -0230

Make monster enchant tracers check if they can potentially affect targets
While monsters would only cast things like dispel undead or agony if they
thought their FOE could be affected by them, this ignored intervening
monsters entirely. And thus they would happily cast agony at the zombies
between them and the player, or dispel undead on living things between
them and an undead player.

Unfortunately, this does not fix the reverse situation, and monsters will
still not cast dispel undead on zombies between them and a living player,
for example.

--------------------------------------------------------------------------------
fa6dab6ef3 | David Lawrence Ramsey | 2013-03-21 18:56:27 -0500

Add formatting fix.

--------------------------------------------------------------------------------
9aed11ad60 | Pete Hurst | 2013-03-21 23:47:37 +0000

Fix an inaccurate comment
The ~0 in question has long since been replaced with UINT_MAX.

--------------------------------------------------------------------------------
b7d6d15954 | Adam Borowski | 2013-03-22 00:43:41 +0100

Fix octopodes getting claws on their non-existing hands.
It turns out elliptic's reworking only blocks Appendage, but doesn't handle
other sources of mutations.  Thus, let's pull in the 0.11 fix.
(cherry picked from commit 9f67e61bdea71774e4f079ab6e52d7dd8f736563)

--------------------------------------------------------------------------------
ff20064896 | Adam Borowski | 2013-03-22 00:23:43 +0100

Fix an use-after-free of potions.

--------------------------------------------------------------------------------
80334660e6 | Adam Borowski | 2013-03-21 23:22:10 +0100

Fix an uninitialized variable, and possible crash.

--------------------------------------------------------------------------------
645d8dbac4 | Adam Borowski | 2013-03-21 23:16:39 +0100

Move mumra from contributors to devs.

--------------------------------------------------------------------------------
a20d5574cc | Adam Borowski | 2013-03-21 22:21:51 +0100

Do only setlocale(LC_CTYPE) rather than LC_ALL in DGL builds.

--------------------------------------------------------------------------------
5566f23fa0 | Samuel Bronson | 2013-03-21 15:52:32 -0400

Fix a confusing (but not damaging) typo in ng-setup.cc

--------------------------------------------------------------------------------
087ba76b33 | Samuel Bronson | 2013-03-21 15:08:20 -0400

Don't leak god companions between games (with restart_after_game).
I don't want to get my first win from this bug!

--------------------------------------------------------------------------------
91f56e6427 | Samuel Bronson | 2013-03-21 15:02:30 -0400

Fix a comment typo in godcompanions.cc.

--------------------------------------------------------------------------------
5da11c71d3 | Adam Borowski | 2013-03-21 16:59:41 +0100

Make simulacra cooler.

--------------------------------------------------------------------------------
55b09d45cb | Adam Borowski | 2013-03-21 16:57:38 +0100

Give skeletons a fracture when hit.

--------------------------------------------------------------------------------
8723d64f18 | Adam Borowski | 2013-03-21 16:56:23 +0100

Unzombify skeletons and simulacra in tiles.

--------------------------------------------------------------------------------
336fe3d47a | Adam Borowski | 2013-03-21 16:54:55 +0100

Make skeletons lighter and skeletal.

--------------------------------------------------------------------------------
a637926949 | Adam Borowski | 2013-03-21 16:52:32 +0100

Don't let skeleton elephants trunk-slap.
The check used "large skeleton", which is gone.

--------------------------------------------------------------------------------
274450a2b9 | Adam Borowski | 2013-03-21 16:51:22 +0100

Replace a foreign quote for the horn of Geryon.
I consider quotations in other languages to be inappropriate, at least
unless they're often quoted in the original.  By tradition, Latin doesn't
count as foreign, I guess mostly because it was mandatory in any decent
school well into 20th century -- but let's not overdo it either.  But
Polish, though, has no place here.

If I understand Galehar right, technical issues with transifex require
an .en version to exist before other languages can have a quote.  So
let's add one here.

--------------------------------------------------------------------------------
a5522cda71 | Adam Borowski | 2013-03-21 16:51:22 +0100

db_lint: don't complain about sized zombies.

--------------------------------------------------------------------------------
93da687206 | Adam Borowski | 2013-03-21 16:51:21 +0100

db_lint: support :quote quotes

--------------------------------------------------------------------------------
f35049c61e | David Lawrence Ramsey | 2013-03-21 10:50:30 -0500

Fix the Bones card's not working properly, due to a large skeleton reference.

--------------------------------------------------------------------------------
bb8327cfdd | Steve Melenchuk | 2013-03-21 09:38:29 -0600

Fix crash when vaults specify "nothing" as part of a random monster set.
This was causing meatsprint to crash at the first tick.

--------------------------------------------------------------------------------
0159b697d9 | Steve Melenchuk | 2013-03-21 08:44:38 -0600

Re-re-colour the normal plants/bushes in grunt_zot_stairs_overgrown.
I felt a bit at the time that I added this that it wasn't extremely easy
to distinguish the oklobs from the normal plants/bushes.

Now, you can just look for the brightly coloured Ps.

--------------------------------------------------------------------------------
abdea9c7ff | ontoclasm | 2013-03-21 01:21:05 -0500

Revert vault sentinel tiles

--------------------------------------------------------------------------------
2817ed30b5 | Adam Borowski | 2013-03-21 06:14:35 +0100

Fix the desc of skeleton-the-item vs skeleton-the-monster.

--------------------------------------------------------------------------------
870d8eb9bd | Steve Melenchuk | 2013-03-20 23:00:13 -0600

Unbreak game start by removing reference to "large zombie".

--------------------------------------------------------------------------------
25e802e4db | Adam Borowski | 2013-03-21 05:48:22 +0100

Remove commented-out data for monsters that can't spawn in Vaults.
They were inherited from D.

--------------------------------------------------------------------------------
34b3b447c5 | Adam Borowski | 2013-03-21 05:45:35 +0100

Merge branch 'mon-pick'
The behaviour should be preserved exactly or almost exactly, only the code
changes from totally, utterly unreadable to merely hard to read.

Actual differences:
* strong OODs in shallow branches would degenerate into picking a monster
  randomly from the whole branch, now they pick from the bottom level (or
  so-called OOD cap of Elf:7, Tomb:5, D:31 and Vaults:15).
* Zot no longer replaces requests for Zot:5 by Zot:4, and proper hells,
  $(HELL):4-7 by $(HELL):3.
  * this means hell monster sets need fixing!
* zombie size doesn't affect their spawning
* zombie selection obeys the depth passed
  * which makes zombie sets pretty limited -- needs review/redesign?

The new format is:
{  9, 19,  826, SEMI, MONS_YAK },
which means: yaks can spawn on D:9-19, with _linear_ rarity 826 in the
middle of the range.  A "SEMI" distribution means that at the edges,
D:9 and D:19, the effective rarity is half that, 413.

Distributions:
FLAT   100% 100% 100%
SEMI    50% 100%  50%
PEAK     0% 100%   0%
UP       0%  50% 100%
DOWN   100%  50%   0%

That "0%" doesn't mean the monster won't spawn on the top/bottom level
(D:9 and D:19 for yaks), the range is fudged so D:8 receives 0% chance,
D:9 16.6%, linearly up to 100% on D:14.

Yes, this sounds and is complex, but at least the complexity is not strewn
around obscure code anymore, and a number of limitations have been lifted.

ZotDef still uses the old code via an emulation layer.

--------------------------------------------------------------------------------
af4a235e5f | Adam Borowski | 2013-03-21 04:37:22 +0100

Revert "Divide the maximum number of chunks by 2."
This has a number of unintended effects:
* direct:
  * halved vampire nutrition
  * halved Nemelex piety and deck of summoning weighting
  * halved blood splatters
  * less impressive explosions
  * less vampire bottles
* indirect:
  * ghoul healing
  * ammo for Simulacrum
  * Sublimation of Blood

After an IRC discussion, it turns out this change doesn't even serve its
stated purpose: you typically eat just one chunk per corpse.

The only benefit, not auto-picking-up that many chunks after chopping up
that golden dragon, can be done in another way.

This reverts commit 95d6e0c04fea82e482043dea136685866bf4a322.

--------------------------------------------------------------------------------
6a66c87f15 | Adam Borowski | 2013-03-21 03:47:45 +0100

Restore bad stealth for large zombies.
This is the only gameplay effect left, and only effect in tiles at all.

I'm unsure about whether this is worth keeping, feel free to revert.

--------------------------------------------------------------------------------
26c536fbde | Adam Borowski | 2013-03-21 03:43:33 +0100

Fix simulacrum spawning after a save break.
Compat for old games let it work during testing.

--------------------------------------------------------------------------------
3dcb22d897 | Adam Borowski | 2013-03-21 03:40:37 +0100

An off-by-one error.

--------------------------------------------------------------------------------
2615bbeee5 | Adam Borowski | 2013-03-21 03:26:37 +0100

Fix glyph redefinitions of virtual monster types.
Redefining stuff like merged slime creatures worked only on the monster pane
but not on the main screen.

--------------------------------------------------------------------------------
0ac68f868f | Adam Borowski | 2013-03-21 02:55:28 +0100

No need to look for zombies at other depths anymore.
Add a --test case to check that.

Ziggurats had nothing reasonable, use deep D instead.

--------------------------------------------------------------------------------
d0ed0c66e5 | Adam Borowski | 2013-03-21 02:46:41 +0100

Remove the small/large zombie distinction.
It leads to no end of problems, and its only purpose was showing 'z'/'Z'
glyphs.

Note: custom monster glyphs on the main screen are broken since af76f80.

--------------------------------------------------------------------------------
1263e15571 | Adam Borowski | 2013-03-21 01:57:47 +0100

... and drop a redundant copy of the digging code.
Testing after rebasing is good, m'kay?

--------------------------------------------------------------------------------
07136b026a | Adam Borowski | 2013-03-21 01:54:44 +0100

Reintroduce some special handling of wands of digging (Grunt).
This fixes monsters zapping walls behind you for no reason.

--------------------------------------------------------------------------------
54a0c69b04 | Steve Melenchuk | 2013-03-20 18:50:41 -0600

Fix Maurice stealing (#6798).

--------------------------------------------------------------------------------
119891ced6 | Steve Melenchuk | 2013-03-20 18:50:41 -0600

Reinstate a check against monsters using digging like other wands (#6799).
This check was lost in the bad_forms merge.

--------------------------------------------------------------------------------
c8625104ee | Samuel Bronson | 2013-03-20 19:10:19 -0400

Respect =f even on items similar to what was quivered before.

--------------------------------------------------------------------------------
8a4c45beec | Samuel Bronson | 2013-03-20 19:10:18 -0400

Simplify a couple of things in quiver.cc

--------------------------------------------------------------------------------
f30ac8358e | DracoOmega | 2013-03-20 20:34:13 -0230

Make Lugonu wrath send eldritch creatures rather than demons
Abominations, thrashing horrors, and (more rarely) ancient zymes
replace the chance of minor demons, while wretched stars,
tentacled starspawn, and starcursed masses replace the chance of
major ones. Additionally, the major abyssals will often come with
one or two minor abyssals and are overall slightly more common at
higher xl than the major demons were.

--------------------------------------------------------------------------------
a6578962e0 | DracoOmega | 2013-03-20 20:34:12 -0230

Replace scrolls of unholy creation with (revised) scrolls of summoning
The small abomination created by scrolls of unholy creation was effectively
useless past the very early game, and often not even worth the trouble of
having it around. Instead, scrolls of summoning now summon 2d2 shadow
creatures (with slightly increased duration compared to the spell). This
should hopefully make them a consumable worth actually using, commensurate
with their rarity.

--------------------------------------------------------------------------------
4a87d9e014 | ontoclasm | 2013-03-20 17:38:22 -0500

Various monster tiles (roctavian, 6793)

--------------------------------------------------------------------------------
609614a8b3 | ontoclasm | 2013-03-20 17:38:22 -0500

Fix some black outlines

--------------------------------------------------------------------------------
d44b57956b | ontoclasm | 2013-03-20 17:38:21 -0500

Fix randart spear tiles

--------------------------------------------------------------------------------
7845ebd569 | Pekka Lampila | 2013-03-20 13:48:19 -0500

Make decks from get_item_info pass bad_deck

--------------------------------------------------------------------------------
b274042b28 | Pekka Lampila | 2013-03-20 12:25:05 +0100

Fix a case of message not being sent to WebTiles

--------------------------------------------------------------------------------
630cb13277 | Adam Borowski | 2013-03-20 03:29:01 +0100

Rewrite zombie selection.
It now uses regular mon_pick instead of an extremely quirky loop that spins
around with a low chance of success, relaxing requirements slowly.  If there
are no zombifiables for the given branch, monsters from parallel branches
get allowed too.

Note that there are two code paths for zombie selection, the other one
being requesting a zombie via mapdef.

REAL CHANGE: depth is actually obeyed now, rather than merely kind of.
This gets rid of all those rat and kobold zombies later on, at the cost of
severely reducing variety in some cases.  The base depth is current level+4,
like before.

--------------------------------------------------------------------------------
855fd100df | DracoOmega | 2013-03-19 23:41:05 -0230

Allow recall to move monsters in LoS closer to the caster
Rather than skip all allies you can see, it only skips those already
within 2 spaces of you when their turn rolls around.

--------------------------------------------------------------------------------
2435545207 | DracoOmega | 2013-03-19 23:41:04 -0230

Make alarm traps mark the player, slightly increase noise level
This should hopefully make alarm traps better at actually attracting
hostile attention to the player's location, since stepping on one
tends to be largely inconsequential at present.

(This also adjusts an article in the triggering message)

--------------------------------------------------------------------------------
175e717913 | David Lawrence Ramsey | 2013-03-19 19:47:41 -0500

Fix indentation.

--------------------------------------------------------------------------------
1d47a1fe48 | DracoOmega | 2013-03-19 22:00:02 -0230

Remove an unused function declaration

--------------------------------------------------------------------------------
2d18c1fe75 | DracoOmega | 2013-03-19 22:00:01 -0230

Properly recall Yred enslaved souls from off-level
This fixes #6794

--------------------------------------------------------------------------------
5cf8fccbb1 | DracoOmega | 2013-03-19 22:00:00 -0230

Make vitrified tombs timeout the same as normal tombs
This fixes #6791

--------------------------------------------------------------------------------
47e83e4952 | Translators | 2013-03-20 01:20:22 +0100

[Transifex] Sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
5ab0aaf0e9 | Raphael Langella | 2013-03-20 01:20:22 +0100

Replace an hypen by a dash.

--------------------------------------------------------------------------------
0cdd52e8ff | Translators | 2013-03-20 01:20:22 +0100

[Transifex] Fix a russian quote.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
409b830e30 | David Lawrence Ramsey | 2013-03-19 10:59:09 -0500

Constify.

--------------------------------------------------------------------------------
db2b50e94b | Pete Hurst | 2013-03-19 10:58:36 -0500

#369 #3456 Mesmerisation applies -cTele
#369 advised degenerating cTele into rTele and it makes sense to apply the same 
for cBlink. It's probably not worth doing anything more complicated just for 
mesmerisation since cTele might get removed anyway at some point.

--------------------------------------------------------------------------------
5504a089ba | Florian Diebold | 2013-03-19 16:29:06 +0100

Handle lich and statue form tiles the same way as tree form.
This removes the _transform_add_weapon hack, and shows all unmelded
equipment on statues and shields on liches; armour doesn't fit right
on the current lich tile so it is disabled.

--------------------------------------------------------------------------------
7c889ac88c | Adam Borowski | 2013-03-19 16:21:01 +0100

Who's been feeding energy drinks, Red Bull in particular, to trees again?
Cut down their wings, or Durkon will be too afraid.

--------------------------------------------------------------------------------
4d1d7ae5ac | Adam Borowski | 2013-03-19 15:38:09 +0100

Shave off tree beards (poor Fangorn...).

--------------------------------------------------------------------------------
27d75b11f9 | Adam Borowski | 2013-03-19 15:35:10 +0100

Properly heed meldedness of armour (all slots) in tiles.

--------------------------------------------------------------------------------
2d626dd73c | Adam Borowski | 2013-03-19 11:42:11 +0100

Xandros is an undistribution, don't bother listing it.
No one cares about Mepis, either.  This week's #1 is Mint.

--------------------------------------------------------------------------------
83715bb7cb | Adam Borowski | 2013-03-19 07:20:24 +0100

Correct a changelog entry.
You can get piety for banishment, too, which in the Abyss means sending
people deeper, and grants no piety.

--------------------------------------------------------------------------------
4f96550923 | David Lawrence Ramsey | 2013-03-19 00:07:33 -0500

Comment fix.

--------------------------------------------------------------------------------
e7658ce664 | David Lawrence Ramsey | 2013-03-18 21:22:50 -0500

Improve changelog entry.

--------------------------------------------------------------------------------
be59c23ac8 | Chris Campbell | 2013-03-19 01:26:59 +0000

De-rune some doors
There's no need to place warnings when part of the vault will already
have been opened up, in both cases.

--------------------------------------------------------------------------------
d947032a5c | Raphael Langella | 2013-03-19 00:28:58 +0100

Move the Russian and Finish quotes to :name tags.
Not implemented for now but it doesn't mess up the description.
Translator misunderstood the point of the quotes resource and put
key translation in it. At least we won't lose them.

--------------------------------------------------------------------------------
45418d04c5 | Raphael Langella | 2013-03-19 00:28:58 +0100

Move quotes to description files.
This should simplify the transifex interface and make it easier to allow
contributers to add new quotes.
It's not possible to have a translated key without a source key in transifex.
So when there is a translated quote but not an english quote, I've used the
foreign quote in place of an english one to be able to push it to transifex.
This seem acceptable as we used to have foreign quotes before we started
translations. Feel free to replace them with english quotes.

--------------------------------------------------------------------------------
ac6f1e17d5 | Translators | 2013-03-19 00:28:58 +0100

[Transifex] Rewrap tutorial entries.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
4f42b72e03 | Translators | 2013-03-19 00:28:58 +0100

[Transifex] Portuguese sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
5fd329dda2 | David Lawrence Ramsey | 2013-03-18 17:59:05 -0500

Remove reference to Cigotuvi's Degeneration.

--------------------------------------------------------------------------------
383649d695 | Florian Diebold | 2013-03-18 22:31:29 +0100

Webtiles: Fix hp/mp bar display error when the max value decreases.

--------------------------------------------------------------------------------
6ed11bb309 | Pekka Lampila | 2013-03-18 22:31:29 +0100

Make sure WebTiles HP/MP bars don't overflow
Also set the percentage width with two decimal places, instead of zero,
to be a bit more accurate.

--------------------------------------------------------------------------------
3fdd810ddf | Florian Diebold | 2013-03-18 22:31:29 +0100

Also fix colouring for boosted hp/mp.

--------------------------------------------------------------------------------
57b543143d | Pekka Lampila | 2013-03-18 22:31:29 +0100

Fix boosted stat colouring in Webtiles (#6672, #6529).
This is a squashed version of the following patches:

Colour boosted/lowered defense stats in WebTiles

Colour SH correctly when incapacitated in WebTiles

Minor code cleanup in player.js

Don't change shield color when held by a mimic

Show stats as light red until they have recovered

--------------------------------------------------------------------------------
1348f81c26 | Steve Melenchuk | 2013-03-18 15:21:59 -0600

A few more vaults.
Mostly food vaults, because once you play the game long enough you start
getting bored of the same small number of food vaults.

There are some more vaults for the "thematic item" series of minivaults,
too! Featuring are the obsidian axe, the ever-popular Arga, and the
sword of the Doom Knight. (These might need more adjustment, but they
shouldn't be *too* unreasonable right now.)

--------------------------------------------------------------------------------
0986ade5bd | Steve Melenchuk | 2013-03-18 15:08:24 -0600

A modified version of LexAckson's Okawaru arena vault (#6679).
Changes:
- The combatants are now selected from the Okawaru wrath pool instead of
  being generic 9s.
- In an effort to be less spoilery, there is now glass in the wall of
  the combatant cages on the same edge of the door to show the
  combatants off in advance.
- The "iron trees" are now randomly placed properly, and the description
  has been moved to dat/descript/features.txt for translation purposes.

--------------------------------------------------------------------------------
93f01275ca | Adam Borowski | 2013-03-18 21:03:22 +0100

Fix the old algorithm of zombie selection taking massive amounts of CPU.
It'd fruitlessly do the whole monster selection loop 1013 times, before
finally choosing something (mons_depth() for a non-native monster is a
magic cookie rather than a value that makes sense).  I'm thus skipping
all depth-based logic.

Note that this code needs to be eradicated, I'm just fixing this in case
I don't manage to rewrite it in time.

--------------------------------------------------------------------------------
257e78fb53 | Adam Borowski | 2013-03-18 20:46:38 +0100

Allow extra orbs of fire on Zot:5.
Due to a peculiarity of the old algorithm, data for Zot:5 was unused, using
place:Zot:4 there instead.  That's the only thing that allowed extra orbs
-- ie, other than those explicitely placed by the vault.  This includes
respawns.  Also, make the distribution flat.

Zot at least isn't in a bad shape; proper hells are, as all data after
$(HELL):3 is defunct.  This is one of two quirks I did not port, the other
one being OODs for a bunch of vaults picking a monster totally randomly
-- they take one from the OOD cap instead now.  Other quirks merely made
things go contrary to comments, so they don't concern us now.

--------------------------------------------------------------------------------
220a2a026d | Adam Borowski | 2013-03-18 20:33:13 +0100

Update the compat functions for UP and DOWN distributions.
Their focus is not in the center.  In existing data, all UPs are at the
high end of the range, all DOWNs at the low (shallowest) end, so they can
be thought of as trimmed PEAKs.

--------------------------------------------------------------------------------
d0b63b023c | Chris Campbell | 2013-03-18 19:24:54 +0000

Trim some changelog entries

--------------------------------------------------------------------------------
fa16560200 | Adam Borowski | 2013-03-18 20:24:35 +0100

Simplify distribution data some more.
Note how especially Zot doesn't make any sense.  For example, the chances
for ghost moths go up, for egolems and orbs of fire down.

--------------------------------------------------------------------------------
a5f4c19ab2 | Chris Campbell | 2013-03-18 18:34:58 +0000

Update some branch descriptions

--------------------------------------------------------------------------------
0358829122 | Adam Borowski | 2013-03-18 18:19:27 +0100

Remove an use of the book of Morphology, purge descs.

--------------------------------------------------------------------------------
4b54ddc8c2 | Adam Borowski | 2013-03-18 18:16:03 +0100

Mark manuals of magic skills as forbidden under Trog.

--------------------------------------------------------------------------------
7487c5e655 | Adam Borowski | 2013-03-18 18:16:03 +0100

Changelog updates (spells).
It's pointless to list monster spells, especially on entirely new monsters.
Spells being shuffled between spellbooks is also not interesting enough to
get described in detail.

In general the changelog could use some serious trimming.

--------------------------------------------------------------------------------
3a72446876 | Adam Borowski | 2013-03-18 18:16:03 +0100

Transmute the book of Morphology into dust.
Polymorph to Transfigurations.  Ignite Poison to Alchemy.  Skulls to Makhleb.

--------------------------------------------------------------------------------
b6ba7e818e | Translators | 2013-03-18 18:03:25 +0100

[Transifex] Rename some entries, remove obsolete ones.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
06ec680931 | Chris Campbell | 2013-03-18 12:10:38 +0000

Don't prompt for leaving Zigs from Zig:27

--------------------------------------------------------------------------------
86cc443975 | Adam Borowski | 2013-03-18 12:59:42 +0100

Simplify some distribution entries.
These changes preserve status quo, without looking at what makes sense and
what does not.

--------------------------------------------------------------------------------
416d22acd9 | Adam Borowski | 2013-03-18 10:49:39 +0100

Make Cigotuvi's Degeneration an un-spell.
It sees so much use...

What with the Vitriol card?  Polymorphing into a lump doesn't sound so
acidic to me.

--------------------------------------------------------------------------------
e96bb1cc43 | Adam Borowski | 2013-03-18 10:20:43 +0100

Make fungiform -CAST (bh).

--------------------------------------------------------------------------------
46f5988d31 | Adam Borowski | 2013-03-18 08:45:07 +0100

Two extra distributions: UP and DOWN triangles.
Unlike PEAK and SEMI, their peak is at one of ends of the range.

--------------------------------------------------------------------------------
6254b95305 | Adam Borowski | 2013-03-18 08:43:50 +0100

Get rid of another monster_level use.
Fixes the wrong branch being used for wandering stuff in some cases.

--------------------------------------------------------------------------------
81ec1785c2 | Adam Borowski | 2013-03-18 08:43:49 +0100

Don't loop while looking for corruption guests.

--------------------------------------------------------------------------------
dd0a0e8084 | Adam Borowski | 2013-03-18 08:43:49 +0100

Spawn monsters based on the current Abyss depth rather than Abyss:1.

--------------------------------------------------------------------------------
56350a3d9a | Adam Borowski | 2013-03-18 08:43:48 +0100

Rewrite zombifiable monster requests.
Probably would be good to handle skeletons/simulacra/spectrals here as well,
instead of relying on zombies.

--------------------------------------------------------------------------------
ac72cf1417 | Adam Borowski | 2013-03-18 08:34:36 +0100

Drop unused support for requesting corpse-capable monsters.

--------------------------------------------------------------------------------
ad6c3632db | Adam Borowski | 2013-03-18 08:34:35 +0100

The main workhorse for mon-pick.
Unlike the old code, it doesn't need to retry over and over, there is just
one roll.  It also accepts and arbitrary vetoer function.

--------------------------------------------------------------------------------
ea243feced | Adam Borowski | 2013-03-18 08:34:34 +0100

Tighten the rules for level_id::is_valid().
It doesn't check for depths exceeding the range, though, as that can change
between game modes.

--------------------------------------------------------------------------------
73c8b9436c | Adam Borowski | 2013-03-18 08:34:33 +0100

A paranoid assertion.

--------------------------------------------------------------------------------
90445ba72f | Adam Borowski | 2013-03-18 08:34:32 +0100

Trim monsters with a FLAT distribution to the range.
PEAK and TRIM could probably use some triangular shapes for readability.

--------------------------------------------------------------------------------
080d91ceb7 | Adam Borowski | 2013-03-18 08:34:32 +0100

Drop autogenerated comments about the OOD cap.
No data is supposed to be meaningful for levels outside the range, the
range being 1..$, except for D, Vaults, Elf, Tomb which have explicitely
set caps.

--------------------------------------------------------------------------------
67c5791b6a | Adam Borowski | 2013-03-18 08:34:31 +0100

Cap OODs at the branch end.
This changes behaviour: before, except for a short range after the end of
data, monster picking code would loop failing until it decides to stop
caring about depth altogether, and pick a monster eligible for the current
branch using nothing but its rarity.  Now, it will simply pick one from
Branch:$.

With four exceptions:
* D/Vaults: these rely heavily on the cap being at D:31; this is pretty
  much the entire monster set for Vaults:$.
* Elf, Tomb: they had OODs defined past the branch's end.  They'd pop up
  for "mild" OODs but not for "super" OODs which would degenerate into
  fully random search (and thus be usually weaker).

A bunch of other branches had data for a single level or so past the end,
but it doesn't appear to be meaningful.

Hells and Zot had OODs broken due to the old cap being shallower than around
half of the branch.  This rewrite preserves monsters totally ineligible to
spawn but doesn't try to make the distribution identical.  All real threat
comes from hell effects / Zot:5 vault anyway.

--------------------------------------------------------------------------------
238fe70138 | Adam Borowski | 2013-03-18 08:34:30 +0100

Allow running --mapstat on only a selection of levels. (cherry picked from 
commit f655073a526ccf4dc96507aa5b9352826cd10b51)

--------------------------------------------------------------------------------
3f3e58e090 | elliptic | 2013-03-17 23:47:11 -0400

Reduce Serpent of Hell MR to 186.
It's more in line with other dragons now (though still very resistant).

--------------------------------------------------------------------------------
58f5b54d6f | David Lawrence Ramsey | 2013-03-17 22:45:51 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
05cedd8319 | Steve Melenchuk | 2013-03-17 20:58:18 -0600

Tracers for cloud spells for both players (#2491) and monsters.
This updates the beam code to check for the impact of a cloud forming at
the beam's endpoint, and updates the player implementations of the cloud
spells to fire a tracer cloud at that endpoint; thus players will be
warned for targetting themself and/or allies, and monsters will take
allies into consideration when using cloud spells.

--------------------------------------------------------------------------------
d69e7a1886 | Adam Borowski | 2013-03-17 23:37:31 +0100

Make electric golems MAG_IMMUNE, for consistency with other golems.

--------------------------------------------------------------------------------
ab5ba96ee4 | Adam Borowski | 2013-03-17 23:33:44 +0100

Nerf Ignacio's MR.
Per IRC, to lower than 200 -- 168 (same as Cerebov).  Executioners in general
have bad MR, lower than most tier 2 demons, it makes sense for an unique one
to be weak here.

--------------------------------------------------------------------------------
95d6e0c04f | Raphael Langella | 2013-03-17 23:11:39 +0100

Divide the maximum number of chunks by 2.
It was reverted with the rest of the food reform but this one is a good change.

--------------------------------------------------------------------------------
3cc9e432ea | elliptic | 2013-03-17 18:00:34 -0400

Give monsters with MR at least 200 MAG_IMMUNE instead.
Monsters affected: all fiends, hell sentinel, Ignacio, all hell lords,
Gloorx Vloq.

I likely missed a few, since there isn't an easy way of scanning for this
due to how monster MR is computed.

If anyone feels that any of these monsters should not have MAG_IMMUNE, feel
free to give them an MR value that is smaller than 200 instead.

--------------------------------------------------------------------------------
9c8fc79477 | Adam Borowski | 2013-03-17 22:40:47 +0100

Give liches infinite MR.
504 MR is infinity for all practical purposes.  The Royal Jelly has 196,
Cerebov 168, and they require a scroll of vulnerability.  This means no
one will be suckered into trying to hex a lich.

--------------------------------------------------------------------------------
da9277494b | Adam Borowski | 2013-03-17 22:12:33 +0100

Make disc of storms less crashy when used near map edges.

--------------------------------------------------------------------------------
cb9f3c5111 | Adam Borowski | 2013-03-17 21:54:33 +0100

Drop some braces.

--------------------------------------------------------------------------------
81b1c4c362 | Adam Borowski | 2013-03-17 21:01:43 +0100

Test whether bazaars from Pan still work.
(Yes, this is a pretty old commit...)

--------------------------------------------------------------------------------
757b3c6f34 | Adam Borowski | 2013-03-17 21:01:42 +0100

Remove an untrue piece of documentation.
Bazaars/etc in the Abyss are not only not broken anymore, but heck, it'd be
nice to have some!

--------------------------------------------------------------------------------
f51dce8a09 | Adam Borowski | 2013-03-17 21:01:42 +0100

Make deep dwarf necromancers lightblue.
Not the best colour, but at least doesn't conflict with Pain Mirror.

--------------------------------------------------------------------------------
f6a8ec43db | Adam Borowski | 2013-03-17 21:01:42 +0100

Count stabs on the action dump.
This implementation breaks them down by UCAT_type, which is probably too
detailed.  Ideally, I'd want just two categories: sleep/para stabs (ie,
those with no roll that deal massive damage) and the rest (a bit of extra
damage).  It doesn't matter where we coalesce them, though, so it'd be
easy to combine the data at output time.

--------------------------------------------------------------------------------
4831c0482c | Adam Borowski | 2013-03-17 21:01:41 +0100

Allow vaults to be placed closer to the edge, in branches other than Shoals.
Greensnark added recently a hack to let the connector work, but that change
was not meant to affect other branches (as mentioned on crawl-ref-discuss).

--------------------------------------------------------------------------------
4777205867 | Adam Borowski | 2013-03-17 21:01:41 +0100

Don't suggest that demigods may worship elsewhere.

--------------------------------------------------------------------------------
f4b0cdf386 | David Lawrence Ramsey | 2013-03-17 12:23:03 -0500

Comment fixes.

--------------------------------------------------------------------------------
1acb738e48 | Pete Hurst | 2013-03-17 12:21:58 -0500

Allow kraken to use tentacles with no adjacent water
_tentacle_can_spawn_at was checking that water was available but since once 
spawned the tentacles are allowed to move to non-water adjacent squares anyway 
this check appeared redundant. The relevant bit was checking no monsters were 
there but since this is a one-line check and _tentacle_can_spawn_at is only 
called in the one place I simplified this with function removal.

--------------------------------------------------------------------------------
018ee39698 | David Lawrence Ramsey | 2013-03-17 09:31:30 -0500

Typo fix.

--------------------------------------------------------------------------------
c8c725ebfc | DracoOmega | 2013-03-17 05:53:04 -0230

Don't crash when the player casts force lance at themselves

--------------------------------------------------------------------------------
93fbd7a0a0 | DracoOmega | 2013-03-17 05:33:59 -0230

Give fungiform a tile

--------------------------------------------------------------------------------
1e1477edab | DracoOmega | 2013-03-17 05:33:57 -0230

Unregister vaults when placing a vault via &P
Since this did not free used vaults, despite essentially regenerating
the level (unlike ctrl+r), it was easy to run out of them.

--------------------------------------------------------------------------------
3578d3b0b0 | DracoOmega | 2013-03-17 05:33:56 -0230

Unregister subvaults when their parent vault is unregistered
The means that regenerating levels which use subvaults will no longer
rapidly run out of subvaults to place. (This was most obvious when
using ctrl+r in wizmode, but may possibly have also affected vetoed
levels)

--------------------------------------------------------------------------------
d383fcfde1 | DracoOmega | 2013-03-17 05:33:55 -0230

Also list subvault names when listing vault info in wizmode

--------------------------------------------------------------------------------
57cc409874 | DracoOmega | 2013-03-17 05:33:54 -0230

Properly update position info for subvaults when main vault is transformed
Previously, mirroring or rotating a vault would not update the stored bounds
of subvaults contained within it, resulting in frequently erroneous info about
which subvault a particular grid belonged to.

--------------------------------------------------------------------------------
164fcaaae7 | Jason Van | 2013-03-17 05:33:52 -0230

Volcano monster set revamp, some volcano edits
Most monster sets used in volcanoes are much weaker than their direct analogues;
so I threw out a lot of monsters themed around redness and weak fire items
in exchange for stronger base monsters and more actual fire monsters.
While the fire clouds are still a threat there's no reason a volcano
has to be really weak with its actual fights for its involved depths.

Also of particular note:
 * Some volcano_grotto subvaults now use much less lava creatures,
 * volcano_pyramid has much smaller tunnels,
 * volcano_tomb uses less weak skeletons and mixes in vampires,
 * volcano_village loses its custom set for a more varied one,
   and loses the open_sea because of how easily broken said concept is,
 * and volcano layouts are re-weighted to not hide so many vaults.

--------------------------------------------------------------------------------
6b0651ea37 | elliptic | 2013-03-17 03:08:54 -0400

Axe rock troll shapeshifters and rock troll zombies/skeletons.
Since rock trolls themselves don't generate, these shouldn't either.

--------------------------------------------------------------------------------
4f89f62962 | Steve Melenchuk | 2013-03-16 22:36:10 -0600

Don't let hangedman_cross_veins generate permarock at early depths.
From comparison with the other cases, it's not supposed to have
permarock at all, and X is just being used as a placeholder glyph.

So, at early depths, this adds a SUBST: X : xxc (i.e. the vault is
usually rock, with a slight chance of stone, to contrast middle depths,
where it's biased towards stone, and late depths, where it's something
more unique).

--------------------------------------------------------------------------------
54a08ec879 | elliptic | 2013-03-16 23:35:09 -0400

Revert "New description for Frederick from transifex (mikee)."
This reverts commit cbf2363b4ec77d700d381f3bc5ed718f7858e230.

The new description was quite inconsistent with Frederick's speech. It didn't
even mention the monocle!

--------------------------------------------------------------------------------
0e3c494e81 | David Lawrence Ramsey | 2013-03-16 21:33:44 -0500

Improve changelog entry.

--------------------------------------------------------------------------------
9034408a41 | DracoOmega | 2013-03-16 23:08:59 -0230

Don't make spurious notes about companion deaths
Since in these cases, they're not actually dying.

--------------------------------------------------------------------------------
6df46bca66 | DracoOmega | 2013-03-16 23:08:58 -0230

Improve autoexplore behavior regarding temporary obstructions
This adjusts autoexplore behavior slightly regarding sealed doors,
runed doors, and harmful clouds.

If a normal autoexplore pass fails to find anywhere else it can explore,
a second pass is performed where these obstructions are considered
passable, so long as they are out of sight. This follows the reasonable
assumption that harmful clouds and door seals may have dissipated in
the time spent out of sight of them. As a consequence, autoexplore
will attempt to return to their location once it has run out of other
places to go, rather than reporting that a level is fully explored
because it remembered some key doors as being sealed 100 turns ago, or
because the memory of a fire elemental's trail is blocking some hallway.

Behavior for runed doors is similar, though slightly distinct. Again,
they are treated as present if autoexplore can find somewhere else to go,
but if it cannot, it will instead path the player up next to any unexcluded
runed door and pause. This should help avoid the issue of overlooking runed
doors as you walk past them, then later having autoexplore report that a
level is fully explored when it is not. Excluded runed doors are treated
no differently than prior this commit, if a player does indeed wish not
to enter them.

--------------------------------------------------------------------------------
4b23b186e5 | elliptic | 2013-03-16 19:12:45 -0400

Reduce Staff of Olgreb venom bolt power to compensate for the venom bolt buff.
Its bolt damage should be the same as in 0.11 now.

--------------------------------------------------------------------------------
f9d9fb959a | elliptic | 2013-03-16 18:55:43 -0400

Add logfile/milestone fields for AC, EV, SH, aut.

--------------------------------------------------------------------------------
22d7fca7fa | elliptic | 2013-03-16 15:20:38 -0400

Remove some misleading monster messages.
Specifically, those that suggest that the player has lost some strength or
that their inventory has become heavier.

--------------------------------------------------------------------------------
cffbd051eb | Neil Moore | 2013-03-16 14:01:05 -0400

Ignore absence of ISFLAG_KNOW_PROPERTIES for non-artefacts.
Fixes #6718 and maybe a few other bugs.

--------------------------------------------------------------------------------
380640086b | Brendan Hickey | 2013-03-16 09:10:33 -0700

Remove blood spatter in the abyss.
Blood makes water look like lava and obscures wall types for many players.
Remove random blood spatter.

"The blood's no good." -- Lorca

--------------------------------------------------------------------------------
c2df61be14 | Adam Borowski | 2013-03-16 14:15:20 +0100

Hush a (non-bogus) warning.

--------------------------------------------------------------------------------
2815549466 | Adam Borowski | 2013-03-16 13:48:21 +0100

Fix the version number in test/stress/timeall not going to the STDERR.

--------------------------------------------------------------------------------
7e4e0be826 | Chris Campbell | 2013-03-16 06:49:40 +0000

Don't respawn Boris if he is pacified

--------------------------------------------------------------------------------
bb50c4e865 | Chris Campbell | 2013-03-16 06:49:19 +0000

Minor documentation fixes

--------------------------------------------------------------------------------
394c6897a9 | Pete Hurst | 2013-03-16 05:21:12 +0000

#6723 Prevent vault Lua error in Crypt
 Added no_mimic
 tag with KFEAT to prevent sarcophagi mimics. Also added
 a condition to check if the statue feature is still
 present, the cell has disintegration etc. vetoed but
 there are probably other wells the cell could change
 e.g. corruption.

--------------------------------------------------------------------------------
5cc39d74ba | David Lawrence Ramsey | 2013-03-16 00:20:40 -0500

Properly handle foodlessness in fungus form, as is done elsewhere.

--------------------------------------------------------------------------------
62d18336de | Brendan Hickey | 2013-03-15 22:15:27 -0700

How did the mushroom get a sunburn?
There was a hole in his cap.

Restrict fungus form equipment to helmets only.

--------------------------------------------------------------------------------
6d35981248 | Brendan Hickey | 2013-03-15 21:35:53 -0700

Merge branch 'fungiform'

--------------------------------------------------------------------------------
e1b78046c4 | Brendan Hickey | 2013-03-15 21:23:26 -0700

Fungus Form
A bad_form that turns you into a wandering mushroom.
Player gains confusing touch, a large stealth bonus,
and the inability to move when under hostile observation.

--------------------------------------------------------------------------------
9dd818b82e | Chris Campbell | 2013-03-16 03:44:44 +0000

Don't randomly place moths of suppression or silent spectres in Sprint
They cause issues with the auras bleeding through walls and affecting
areas they shouldn't - particularly in Zigsprint. This could probably
be reverted if/when Zigsprint is changed to use multiple floors
somehow.

--------------------------------------------------------------------------------
423019885f | Chris Campbell | 2013-03-16 03:44:44 +0000

Don't veto chaos butterflies, since they don't spawn anymore
Partially reverts bf45fce621fe3 and 834424c37e6.

--------------------------------------------------------------------------------
f2c158fc5d | Chris Campbell | 2013-03-16 03:44:43 +0000

Formatting fix

--------------------------------------------------------------------------------
e3433fca80 | Brendan Hickey | 2013-03-15 19:06:31 -0700

Disable Chaos Butterfly spawning

--------------------------------------------------------------------------------
23d5cc56d8 | Brendan Hickey | 2013-03-15 18:56:06 -0700

Don't place abyss features in the wall.

--------------------------------------------------------------------------------
8299d2d811 | Brendan Hickey | 2013-03-15 18:56:06 -0700

Try not to drown the player in the abyss.

--------------------------------------------------------------------------------
594f9c72a2 | David Lawrence Ramsey | 2013-03-15 20:37:21 -0500

Fix capitalization.

--------------------------------------------------------------------------------
c6fb277187 | Adam Borowski | 2013-03-16 02:03:52 +0100

A rare effect for weapons of shafting: polyself into a weapon-using form.
Same chance as shaft (1 per 1000 attacks, ie, once per a couple dungeon
levels).

The form may be: 40% tree, 40% appendage, 10% statue, 10% lich.  The latter
two might be problematic for Yred or good gods, but they forgive most chaos
effects anyway.

--------------------------------------------------------------------------------
7f66b59962 | Adam Borowski | 2013-03-16 01:44:56 +0100

Unbreak NOTE_DEBUG_CHAOS_BRAND.

--------------------------------------------------------------------------------
a8586cbd5c | Pekka Lampila | 2013-03-15 18:06:46 +0100

Init all cursors to NO_CURSOR in WebTiles
Fixes tutorial cursor showing up when specs join.

--------------------------------------------------------------------------------
0fc51155e9 | Florian Diebold | 2013-03-15 18:01:27 +0100

Show ZP in the Webtiles client (#6762).
They were even already sent to the client, I just forgot to implement
the display.

--------------------------------------------------------------------------------
bb69829158 | Pekka Lampila | 2013-03-15 17:47:22 +0100

Show the text prompt cursor in WebTiles

--------------------------------------------------------------------------------
6d9b99a5e8 | Florian Diebold | 2013-03-15 17:46:33 +0100

Webtiles: Fix the item colour not being updated after uncursing (#6653).

--------------------------------------------------------------------------------
7cd6f196b0 | Adam Borowski | 2013-03-15 17:18:52 +0100

Fix the desc of meat hydras not working with # heads ≠ 8.

--------------------------------------------------------------------------------
37042301ad | Adam Borowski | 2013-03-15 17:15:45 +0100

Let db_lint parse meat.

--------------------------------------------------------------------------------
afb6f20b6b | Eino Keskitalo | 2013-03-15 14:44:30 +0200

Remove now-unused tutorial function.

--------------------------------------------------------------------------------
28484bbf2e | Eino Keskitalo | 2013-03-15 14:41:10 +0200

Move tutorial lesson 4 text to database, with some changes to the lesson.
The changes:
  * remove forgetting by book destruction - I didn't feel it was necessary to 
complicate the lesson with it, scroll forgetting is enough for tutorial
  * take mail and shield from the hobgoblin and put them on the floor - the 
player may animate the hobgoblin corpse and then wonder what mail and shield 
the tutorial is talking about

Also added a comment on map 4 TODO: the potion of experience gives too many 
skill levels, breaking the tutorial. Should find some other way, perhaps some 
other level 2 spell (was Evaporate before). Evap/meph was/is good because it 
showcases the cloud targeter (and synergises in a fun way with the skeletons 
later on).

--------------------------------------------------------------------------------
b487bcecc6 | Eino Keskitalo | 2013-03-15 13:15:36 +0200

Add <input> tag for tutorial messages and hints. Allows for changing the 
branding of player input (currently <w>[(text goes here)]</w>) without going 
through the whole database file.
I generally did not update the tutorial for 0.12 in this commit, but some 
changes were done to the content itself:
* clean up lesson1.des a little (unused symbols etc)
* split door opening and closing in lesson 1 to two items
* shorten the first line in the lesson 1 movement diagram, so that the diagram 
fits in a short message window.
* remove a reference to searching in lesson 2

Moving lesson 4 into the database is still unfinished.

--------------------------------------------------------------------------------
ee8dd704ec | Raphael Langella | 2013-03-15 09:41:44 +0100

More compilation fixing.

--------------------------------------------------------------------------------
3166c9642d | ontoclasm | 2013-03-14 23:08:56 -0500

Weapons (roctavian, 6763)

--------------------------------------------------------------------------------
7457a92ca2 | ontoclasm | 2013-03-14 23:08:55 -0500

Monster edits (roctavian, 6763)

--------------------------------------------------------------------------------
f293354669 | ontoclasm | 2013-03-14 23:08:54 -0500

Armour edits (roctavian, 6763)

--------------------------------------------------------------------------------
50e5d33036 | ontoclasm | 2013-03-14 23:08:54 -0500

New panlord tiles (denzi, 4888)

--------------------------------------------------------------------------------
f353fb8624 | DracoOmega | 2013-03-15 01:14:59 -0230

Only update map for warden-closed doors if at least part of the door was seen

--------------------------------------------------------------------------------
ccdd8e2d9c | DracoOmega | 2013-03-15 01:14:57 -0230

Describe out of sight features using map knowledge rather than true feature
This could cause info leaks when features out of LoS changed, for example
if a wall was dug through or doors sealed.

--------------------------------------------------------------------------------
472dd48ada | elliptic | 2013-03-14 20:53:35 -0400

Don't warn Jiyvaites when attacking slimes that are known shapeshifters.
Since killing shifters in slime form doesn't give penance.

A couple related changes:
* Let Jiyvaites convert summoned slimes (they are still slimes, after all,
  just slimes from elsewhere). This means that shapeshifters are really
  the only exception (which makes sense since they are not really slimes).

* Don't let Jiyva prayer paralyse shapeshifters in slime form.

--------------------------------------------------------------------------------
ae5911e10c | elliptic | 2013-03-14 20:53:35 -0400

Revert "Fix Jiyva inconsistencies with non-convertible slimes (e.g. 
shapeshifters)."
This reverts commit 5fcfa7b93a798d38cad75c07682ef6979b406437.

Slimes currently don't become fellow slimes until they actually notice you.
Possibly this should be changed, but there are some complications in doing
this.

--------------------------------------------------------------------------------
4c1f4d1858 | Adam Borowski | 2013-03-15 01:36:54 +0100

Fix formatting, don't look up holiness of invalid monsters.

--------------------------------------------------------------------------------
bf45fce621 | DracoOmega | 2013-03-14 21:41:54 -0230

Only veto chaos butterflies from zigs and other places, rather than multiple 
abyssals
Chaos butterflies are the primary problematic creature here, so there's
no need to vote multiple other monsters that seem to have been working
fine in Zigs.

--------------------------------------------------------------------------------
2201f81477 | DracoOmega | 2013-03-14 21:15:50 -0230

Show all walls created by Imprison, rather than just the near ones
Since this ability always creates a complete ring of walls, change
the map to display those wall whose LoS is blocked by nearer ones.
This should hopefully be a little more intuitive than the old way.

--------------------------------------------------------------------------------
88b7f02c66 | Adam Borowski | 2013-03-14 23:15:10 +0100

Fix webtiles and win32c compilation.

--------------------------------------------------------------------------------
9ed4ec0291 | Raphael Langella | 2013-03-14 22:09:58 +0100

Fix tiles compilation.

--------------------------------------------------------------------------------
bb4e2baa46 | Steve Melenchuk | 2013-03-14 14:26:24 -0600

A few slightly older (sub)vaults of mine, cleaned up and added.
This includes a Temple layout (as though we need more of those), a V:$
quadrant, and a (somewhat gimmicky) entry vault.

--------------------------------------------------------------------------------
969ac5fa2e | Steve Melenchuk | 2013-03-14 13:41:11 -0600

Reduce the number/difficulty of monsters placed in grunt_profane_halls.
In particular, 0s have a 40% chance of being nothing, 9s are an even
chance of a 9 or a 0, and only one 2-level monster spawns per temple
(with the other two or three being 3-level monsters).

Hopefully this will address some of the concerns with the vault being
too much of a monster onslaught.

--------------------------------------------------------------------------------
d6d6775fc8 | Samuel Bronson | 2013-03-14 14:24:31 -0400

Update a few references to/between stuff in dat/des/entry in docs/comments.

--------------------------------------------------------------------------------
fff5f71354 | Translators | 2013-03-14 18:08:56 +0100

[Transifex] New polish translations.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
c698a45c6c | Pete Hurst | 2013-03-14 17:15:39 +0100

Fix missing weights for some serial vault subvaults.
* Add default-depth to ensure subvaults are found correctly.

* Add unrand tag to most of the subvaults so they don't place outside of
  the parent vault (rather than adding allow_dup which would mean they could
  repeat, this didn't seem like a good idea for these ones)

* Add a very quick 7th subvault to grated_community.des which is just more
  grass, this will create a gap in the buildings, but it means there are
  enough subvaults.

--------------------------------------------------------------------------------
fd6672cdd1 | Pete Hurst | 2013-03-14 14:30:06 +0100

Player is not the Bugblatter Beast. Fixes disjunction not working against 
monsters that can't see you.

--------------------------------------------------------------------------------
ea1ebbde91 | Adam Borowski | 2013-03-14 11:46:13 +0100

Axe the quote for spiked flails.

--------------------------------------------------------------------------------
d82642e270 | Adam Borowski | 2013-03-14 11:46:13 +0100

A quote for "hand axe".

--------------------------------------------------------------------------------
834424c37e | Adam Borowski | 2013-03-14 11:46:12 +0100

Don't allow abyss-only monsters to spawn outside the Abyss.
The old check handled Corruption only, which leads to problems with
Ziggurats and ZotDef.

--------------------------------------------------------------------------------
3440ed794c | Adam Borowski | 2013-03-14 11:46:12 +0100

Make permanent RMsl light distinct from temporary one.
This is consistent with all other permanent lights of this kind; and also
doesn't make you think about recasting the spell all the time.

I think it'd be better to hide it somewhere, as always-present status
light makes people less sensitive to actual news.  It looks like my
preference for it being not shown on the main screen is in the minority,
but what about a symbol next to EV (as RMsl is an EV enhancer for purposes
of ranged attacks)?

--------------------------------------------------------------------------------
1c7dffcb8c | Adam Borowski | 2013-03-14 11:46:12 +0100

Don't masquerade arches in serial_ice as Ice Cave entrances.

--------------------------------------------------------------------------------
0d474b4994 | Adam Borowski | 2013-03-14 11:46:12 +0100

Don't allow saccing corpses to Lugonu in the Abyss (for no reward).

--------------------------------------------------------------------------------
e7645bca0b | Adam Borowski | 2013-03-14 11:46:12 +0100

Simplify Lugonu's no-piety, fix banishment giving piety in the Abyss.
(With newnewabyss, you can pull people deeper.)

--------------------------------------------------------------------------------
b8bbd9de28 | Adam Borowski | 2013-03-14 11:46:11 +0100

Simplify handling of version info.
They're static strings, there's no point in having functions just to malloc
and pass them around.

--------------------------------------------------------------------------------
f7e1f15433 | Adam Borowski | 2013-03-14 11:46:11 +0100

Make a few functions static or gone.

--------------------------------------------------------------------------------
cc285a9e03 | Adam Borowski | 2013-03-14 11:46:11 +0100

Change the glyph for abyssal stairs from ∩ to >.
It's more of a portal than traditional stairs, but it shouldn't look
exactly like exits -- that causes accidents, especially for players not
yet accustomed to this change.

--------------------------------------------------------------------------------
791cc53631 | Adam Borowski | 2013-03-14 11:46:11 +0100

A more compact format of vault dumps (ChrisOelmueller).

--------------------------------------------------------------------------------
f91635a2d7 | Adam Borowski | 2013-03-14 11:46:11 +0100

Revert "Add 'vaults' to default dump_order"
The list of vaults is merely a debugging aid, and thus harmful spam for
anyone not involved in Crawl's development.  You need to known how map
generation works to have even a clue what a "vault" is.

Removing documentation without a replacement is not good, either.

This reverts commit 2b1a6f184484d002d45616c9b83f758a7142e02e.

--------------------------------------------------------------------------------
1b60a9ddb7 | DracoOmega | 2013-03-14 05:42:06 -0230

Fix monsters gaining AC when taking off armour

--------------------------------------------------------------------------------
26f32c58fc | David Lawrence Ramsey | 2013-03-14 01:46:41 -0500

Fix capitalization.

--------------------------------------------------------------------------------
ab1fab146e | David Lawrence Ramsey | 2013-03-14 01:15:40 -0500

Update comment.

--------------------------------------------------------------------------------
d8bd7d4258 | David Lawrence Ramsey | 2013-03-14 01:14:42 -0500

Fix whitespace.

--------------------------------------------------------------------------------
430c270823 | Pete Hurst | 2013-03-14 01:14:09 -0500

Prevent angels picking up ?unholy creation For weapons both is_evil_item and 
is_unholy_item are checked so it seems reasonable to apply this for scrolls too.

--------------------------------------------------------------------------------
d71cc7bdc9 | David Lawrence Ramsey | 2013-03-14 01:07:05 -0500

Update changelog entry.

--------------------------------------------------------------------------------
06e7060951 | David Lawrence Ramsey | 2013-03-14 01:04:53 -0500

Add changelog entry.

--------------------------------------------------------------------------------
9d2f290aea | Brendan Hickey | 2013-03-13 20:24:08 -0700

Revert "Add formatting fix." & "Less arbitrary drowning in the abyss." This 
reverts commit ee3a9b4ba613039af9b3b5498ab1ad9304edcb3f. This reverts commit 
6b6596bd44bfabb1b87c850c79488bcbc307f11c.
Memory leak and fails to behave as advertised.

--------------------------------------------------------------------------------
6d24e16b7d | Neil Moore | 2013-03-13 22:09:23 -0400

Generate crash milestones even in wizmode.

--------------------------------------------------------------------------------
28f19b508e | Translators | 2013-03-14 01:25:06 +0100

[Transifex] German translations.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9146a60ede | Translators | 2013-03-14 01:25:06 +0100

[Transifex] rewrap entries and delete empty lines.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
6aac675d1a | DracoOmega | 2013-03-13 21:21:18 -0230

Properly remove companion tracking for companions you anger

--------------------------------------------------------------------------------
8500c204f9 | DracoOmega | 2013-03-13 21:21:17 -0230

Fix being unable to recall companions from one Pan level to another
This was caused by each Pan level having the same level ID, so recall
assuming that monsters left on other levels were still present on yours.
(This also meant that you could recall monsters lost in Pan once outside
of Pan, but not while inside it)

--------------------------------------------------------------------------------
c06632a1e0 | DracoOmega | 2013-03-13 21:21:16 -0230

Make walls from Imprison more distinct from normal metal walls
The walls created by Zin's Imprison ability are now brighter in console
and use a distinct tile, rather than the same one as a generic metal wall.

The tile itself is basically a placeholder, though was the closest existing
tile to 'a gleaming silver wall', in my opinion. A tile created specifically
for this purpose might be nice.

--------------------------------------------------------------------------------
1f21651769 | Steve Melenchuk | 2013-03-13 16:29:33 -0600

A minor formatting fix, before dolorous spots it...

--------------------------------------------------------------------------------
f008230544 | elliptic | 2013-03-13 16:37:58 -0400

Fix capitalization in descriptions of player ghosts.

--------------------------------------------------------------------------------
09f1ce34fd | Steve Melenchuk | 2013-03-13 14:33:50 -0600

Update changelog through 0.12-a0-2705-ge6d927c.

--------------------------------------------------------------------------------
e6d927ca91 | Chris Campbell | 2013-03-13 19:50:13 +0000

Don't let Imprison work on conjured monsters (IOOD, battlesphere, etc)

--------------------------------------------------------------------------------
ee3a9b4ba6 | David Lawrence Ramsey | 2013-03-13 09:09:20 -0500

Add formatting fix.

--------------------------------------------------------------------------------
d0eee2a383 | Chris Campbell | 2013-03-13 14:04:46 +0000

Identify some guaranteed items in shop vaults

--------------------------------------------------------------------------------
57db23c628 | Chris Campbell | 2013-03-13 14:04:45 +0000

Don't let rain create deep water in Sprint

--------------------------------------------------------------------------------
799c181e4b | Florian Diebold | 2013-03-13 14:51:30 +0100

Webtiles: Fix the ? key in stash search (#6630).

--------------------------------------------------------------------------------
ab37dea384 | Florian Diebold | 2013-03-13 14:51:30 +0100

Fix #6634 (scrolling in the manual after jumping to a section is broken in 
Webtiles).

--------------------------------------------------------------------------------
05998d376c | Pekka Lampila | 2013-03-13 14:51:30 +0100

Don't capture unnecessary keys as WebTiles spec
Also stops sending pointless key/input messages to the server while
watching.

--------------------------------------------------------------------------------
c8080695d5 | Pekka Lampila | 2013-03-13 14:51:30 +0100

Level map cursor fixes for WebTiles
When changing level defer sending cursor until the map has been sent, so
that the correct origin coordinate can be used.
Send the map cursor with full updates (for new spectators).

Only delay sending CURSOR_MAP

Send all cursor types for full updates

--------------------------------------------------------------------------------
3374e90a76 | Chris Campbell | 2013-03-13 12:07:09 +0000

Don't activate minotaur retaliation while under Ely lifesaving

--------------------------------------------------------------------------------
5d5c0963c9 | elliptic | 2013-03-12 23:59:38 -0400

Give Healers and Priests balanced starting stats.
They both had unbalanced starting stats for no apparent reason, especially
healers having the worst dexterity in the game.

--------------------------------------------------------------------------------
6b6596bd44 | Brendan Hickey | 2013-03-12 20:52:15 -0700

Less arbitrary drowning in the abyss.
Childproof the abyss.
Decline to shift the square the player is standing on to lava or deep water.

--------------------------------------------------------------------------------
352f0c1047 | Pete Hurst | 2013-03-12 23:19:48 -0400

Fix vault overriding in layout_city

--------------------------------------------------------------------------------
2ebdd0a0f3 | Pete Hurst | 2013-03-12 23:12:56 -0400

Stop treasure rooms being overwritten in layout_roguey

--------------------------------------------------------------------------------
e6cba87ff7 | Raphael Langella | 2013-03-13 00:36:11 +0100

Transifex sync for some tutorial translations.

--------------------------------------------------------------------------------
c2911e4332 | Raphael Langella | 2013-03-12 23:32:54 +0100

Fix formatting of tutorial translations.

--------------------------------------------------------------------------------
95ccd477dd | Chris Campbell | 2013-03-12 20:09:01 +0000

Remove maxhp and mp costs for Lugonu's Enter the Abyss
Now that it no longer drops you safely on an upstairs when exiting the Abyss,
the permanent cost isn't so necessary. It's still hugely powerful, but already
has an appropriately high piety cost.

--------------------------------------------------------------------------------
3ca44964a9 | Chris Campbell | 2013-03-12 19:52:00 +0000

Don't give Lugonu piety for kills in the Abyss
Lugonu expects worshippers to spend their time more productively by spreading
chaos outside the Abyss.

--------------------------------------------------------------------------------
5a44a75e36 | st_ | 2013-03-12 19:39:41 +0000

meatsprint changes
* The Meatlord spawns more consistantly. He appears randomly but always
  somewhat near to the stairs.
* Viles spawn a bit later.
* The Captor has sentinel's mark instead of slow.
* Walls turned to rock and viles given dig instead of slow to prevent people
  from camping out forever.

--------------------------------------------------------------------------------
ac82319519 | Raphael Langella | 2013-03-12 18:11:40 +0100

Update the tutorial french translation.
Formatting fixes, nowrap tags, tutorial3 translations pulled from transifex
and delete obsolete secret door entries.

--------------------------------------------------------------------------------
9b7f2cffdc | Raphael Langella | 2013-03-12 15:26:11 +0100

Remove references to secret doors from the tutorial.
The second level of the first tutorial is a bit empty now.

--------------------------------------------------------------------------------
2d71a0ae98 | ontoclasm | 2013-03-11 23:15:44 -0500

Stray pixels

--------------------------------------------------------------------------------
d0502743db | ontoclasm | 2013-03-11 23:15:43 -0500

Additional statues

--------------------------------------------------------------------------------
0ba792384c | David Lawrence Ramsey | 2013-03-11 22:04:30 -0500

Properly use article_a() in spell-power-modifier messages when possible.

--------------------------------------------------------------------------------
3f71c39097 | David Lawrence Ramsey | 2013-03-11 21:50:33 -0500

Properly use article_a() in Pan lord body type descriptions when possible.

--------------------------------------------------------------------------------
1e0cbefcc1 | David Lawrence Ramsey | 2013-03-11 21:48:03 -0500

Fix wording.

--------------------------------------------------------------------------------
9c255aebc4 | David Lawrence Ramsey | 2013-03-11 21:28:26 -0500

Properly use article_a() in one place.

--------------------------------------------------------------------------------
4bc5151613 | Chris Campbell | 2013-03-12 00:05:46 +0000

Fix spacing

--------------------------------------------------------------------------------
cbf2363b4e | Raphael Langella | 2013-03-12 00:56:26 +0100

New description for Frederick from transifex (mikee).

--------------------------------------------------------------------------------
aaa2151540 | Raphael Langella | 2013-03-12 00:56:26 +0100

Rewrap desc files.

--------------------------------------------------------------------------------
72346a79dc | Raphael Langella | 2013-03-12 00:56:26 +0100

Add the nowrap tag to a tutorial entry.

--------------------------------------------------------------------------------
b240899b71 | DracoOmega | 2013-03-11 20:46:54 -0230

Adjust zyme sickness aura
It now requires several turns in LoS of a zyme before you will actually
become sick from it (non-consecutive turns count, but breaks will delay
the onset). Also, zymes no longer passively drain stats by their presence.

--------------------------------------------------------------------------------
7d35982c80 | Neil Moore | 2013-03-11 16:35:55 -0400

Fix an extra newline.

--------------------------------------------------------------------------------
429221e4bc | DracoOmega | 2013-03-11 17:39:51 -0230

Allow zombified constrictors to once again constrict

--------------------------------------------------------------------------------
e443780a50 | DracoOmega | 2013-03-11 17:09:52 -0230

Don't kill Yred-created zombies when you leave and return to their level

--------------------------------------------------------------------------------
45ac82d6c3 | DracoOmega | 2013-03-11 16:58:41 -0230

Don't push creatures into another part of a large door when it is sealed

--------------------------------------------------------------------------------
b33e7bd34d | DracoOmega | 2013-03-11 16:40:50 -0230

Greatly reduce imprison duration against low-HD creatures, remove HD effect
Previously imprison duration scaled heavily based on the HD of the target
you were imprisoning, which sometimes worked out oddly in practice as
the walls were often as useful for blocking other creatures as they were
for the imprison target, yet you could get walls lasting an order of
magnitude longer if you targeted a rat as opposed to, say, a titan.

Given how much more useable imprison should be now, the duration has
been scaled to compensate for this powerful effect. While the formula is
different, duration against all creatures should now be more similar to
how it used to be against very strong creatures.

--------------------------------------------------------------------------------
cc15bf14f5 | DracoOmega | 2013-03-11 16:40:49 -0230

Don't imprison friendly or good neutral creatures
Previously, not only would imprison work on friendlies, but neither
Zin nor the creature in question would even consider it a hostile
act. This led to the odd situation where you could often use friendlies
more effectively to create LoS blockers than the actual hostiles you'd
expect to be targeting.

--------------------------------------------------------------------------------
7b40efc68a | DracoOmega | 2013-03-11 16:40:26 -0230

Make monster pushing from imprison more aware of neighbour destinations
It was previously possible for a prison not to be vetoed if there was
a single permissible space for each pushed monster, even if some of
these push destinations were shared by more than one creature. This
sometimes resulted in monsters being left in walls when imprison was
used in highly crowded areas. Hopefully this should no longer happen.

--------------------------------------------------------------------------------
91725847f1 | DracoOmega | 2013-03-11 16:40:22 -0230

Don't destroy items if imprisoning something over lava or deep water

--------------------------------------------------------------------------------
a0b0f0243c | DracoOmega | 2013-03-11 16:38:47 -0230

Make Zin's Imprison ability less picky about its surroundings
Imprison will now push monsters adjacent to the target out of the way of
the prison if there is any room for them to go. Also, Zins' divine power
will not fail to imprison monsters standing next to such unremarkable
objects as fountains (or water, or stairs, or many other things). Instead,
the old feature will be preserved and restored when the prison expires.
(This means that doors are no longer destroyed by this ability, though
traps still are)

Things which still create obstacles for imprison are features which are
solid but not opaque (eg: statues, trees) or creatures which are immobile.

--------------------------------------------------------------------------------
4a659799ab | Neil Moore | 2013-03-11 14:30:24 -0400

Add you.phase_shifted() to Lua API (kek).

--------------------------------------------------------------------------------
d42d709c04 | Chris Campbell | 2013-03-11 17:49:08 +0000

Let mercenaries pick up and use equipment
It seems reasonable for them to act more like real permanent allies
than summons.

--------------------------------------------------------------------------------
2b1a6f1844 | Chris Oelmueller | 2013-03-11 17:47:55 +0000

Add 'vaults' to default dump_order
A nice (even if somewhat verbose) overview of vaults placed for a
particular game. I personally find it magnitudes more helpful when
evaluating morgue files than the lists of killed monsters, for instance.
Additionally, it will not show up for in-progress character dumps for
regular games.

Placed before action_counts to keep this very useful tabular information
at the very end of dumps (unless players change those defaults).

--------------------------------------------------------------------------------
970c82171d | Chris Campbell | 2013-03-11 17:47:54 +0000

Don't note ally deaths for non-allies (HangedMan)

--------------------------------------------------------------------------------
7b52c81b7a | David Lawrence Ramsey | 2013-03-11 12:21:42 -0500

Add formatting fix.

--------------------------------------------------------------------------------
510315ee5a | Steve Melenchuk | 2013-03-11 10:33:12 -0600

Move a floating vault erroneously placed in large_themed.des to float.des.

--------------------------------------------------------------------------------
fc28ea10b0 | Steve Melenchuk | 2013-03-11 10:26:21 -0600

More Minmay maps (#6719).
A couple of vaults (minmay_shallow_snake_nest, minmay_diamond_spiral,
minmay_radiant) have been adjusted from their original form to try to
avoid placing too out of depth monsters too soon.

--------------------------------------------------------------------------------
054ddd2f8f | Adam Borowski | 2013-03-11 15:20:28 +0100

Add some remarks about optimization to --mapstat documentation.
That might be not the best place for them.

--------------------------------------------------------------------------------
9fa384c516 | Adam Borowski | 2013-03-11 15:07:15 +0100

Hush a spurious -Og warning.

--------------------------------------------------------------------------------
86acaedc19 | Adam Borowski | 2013-03-11 14:59:52 +0100

Fix Dovan/Duvessa code sometimes mistaking one for another.
Also simplify related code.

--------------------------------------------------------------------------------
65a71d51c9 | Adam Borowski | 2013-03-11 14:48:28 +0100

Use do while() rather than while() + hacks.
This also hushes a spurious -Og warning -- the compiler doesn't run flow
tracking on that optimization level so it shouldn't warn about things it
doesn't know; on the other hand, fixing this simplifies the code.

--------------------------------------------------------------------------------
c67978d77b | Adam Borowski | 2013-03-11 14:28:40 +0100

Print timing output for test/stress/timeall to STDERR rather than STDOUT.
This allows redirecting the results.  Usually you'll want to put STDOUT to
/dev/null, too (perhaps we should to that always?).

--------------------------------------------------------------------------------
f655073a52 | Adam Borowski | 2013-03-11 14:25:27 +0100

Allow running --mapstat on only a selection of levels.

--------------------------------------------------------------------------------
c64b59abd0 | David Lawrence Ramsey | 2013-03-11 00:32:10 -0500

Simplify.

--------------------------------------------------------------------------------
53b4b1d9dd | DracoOmega | 2013-03-10 20:09:52 -0230

Adjust how sentinel's mark alerts creatures to the player
It no longer depends on creature intelligence, but requires the
monster to be hostile, rather than merely non-friendly (which resulted
in pacified creatures relentlessly hunting the player down, light of
Elyvilon be damned. Ooops.)

--------------------------------------------------------------------------------
2822ee2309 | David Lawrence Ramsey | 2013-03-10 16:43:17 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
efe861e776 | Pete Hurst | 2013-03-10 21:25:58 +0000

Fix strange interaction of boulder beetles and fluids

--------------------------------------------------------------------------------
da6524e2c3 | AriaB | 2013-03-10 21:18:29 +0000

Fixed formatting on display of movement keys in tutorial 1.

--------------------------------------------------------------------------------
e156e3f986 | Neil Moore | 2013-03-10 16:35:57 -0400

Don't pretend sort_menus is a list option in init.txt

--------------------------------------------------------------------------------
08cbd64394 | Neil Moore | 2013-03-10 16:29:26 -0400

Don't use ^= in init.txt comments unless it matters (Napkin).
runrest_stop_message and runrest_ignore_message don't care about
the order, unlike runrest_ignore_monster, where there is a numeric
parameter associated with each regexp.

--------------------------------------------------------------------------------
d0f404d15e | Adam Borowski | 2013-03-10 13:21:08 +0100

Simplify.
Neither zapping monsters in LOS nor marking inventory items can affect tiles
out of view.

--------------------------------------------------------------------------------
3acc8e1999 | Adam Borowski | 2013-03-10 13:15:28 +0100

Untile a door.

--------------------------------------------------------------------------------
991b24aea5 | Adam Borowski | 2013-03-10 13:07:50 +0100

End of file fixes.

--------------------------------------------------------------------------------
1f46b8e0e9 | Adam Borowski | 2013-03-10 13:02:53 +0100

Use perm_ench:petrified for plants in evilmike_catoblepas_cave.
This changes them from "petrified plant" to "plant (petrified)", but blah.

--------------------------------------------------------------------------------
9739c3fd83 | David Lawrence Ramsey | 2013-03-10 01:51:55 -0600

Fix indentation.

--------------------------------------------------------------------------------
9aa808ba00 | Samuel Bronson | 2013-03-10 00:38:12 -0500

Fix a message in the rltiles Makefile.

--------------------------------------------------------------------------------
7932d77503 | Samuel Bronson | 2013-03-10 00:31:46 -0500

Make whole Zot Defence map visible at game start in tiles.
This was <https://crawl.develz.org/mantis/view.php?id=3026>.

Thanks to |amethyst (Neil Moore) for pointing me towards the relevant
code, which I had somehow missed in my greps.

--------------------------------------------------------------------------------
dc1e94bae8 | Adam Borowski | 2013-03-09 23:03:28 +0100

Don't spam Sprint dumps about having visited 1 branch of the dungeon.

--------------------------------------------------------------------------------
cf806e44bc | David Lawrence Ramsey | 2013-03-09 15:50:47 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
47ac7b6ee9 | David Lawrence Ramsey | 2013-03-09 15:50:14 -0600

Simplify, and properly handle actor_at()'s returning NULL.

--------------------------------------------------------------------------------
aa526f1d3d | Adam Borowski | 2013-03-09 22:36:50 +0100

Unbreak builds.

--------------------------------------------------------------------------------
4c7a33ed48 | Adam Borowski | 2013-03-09 22:11:35 +0100

Remove two now-useless checks.

--------------------------------------------------------------------------------
ffa872cd4f | Raphael Langella | 2013-03-09 22:06:05 +0100

Fix build on android.

--------------------------------------------------------------------------------
28d10bcf46 | DracoOmega | 2013-03-09 17:11:47 -0330

Fix a rare crash involving vault wardens
Free adjacency checks for their door sealing ability weren't being
handled properly if a player was standing in the doorway, but this
fact was obscured by the tension calculations used to decide whether
to seal the door at all (which normally erroneously decided 'no' in
most cases where this bug applied)

--------------------------------------------------------------------------------
22e982bd11 | DracoOmega | 2013-03-09 17:11:46 -0330

Fix debug compilation

--------------------------------------------------------------------------------
62ac951375 | Adam Borowski | 2013-03-09 21:15:17 +0100

Remove two pointless assignments (compiler warnings).

--------------------------------------------------------------------------------
5ab2fec560 | Adam Borowski | 2013-03-09 21:00:22 +0100

Put the enum for sealed doors where it belongs.
This may cause problems, but then, with #if TAG_MAJOR_VERSION, we'd have
them without warning when the bump happens.  There's quite a few functions
that use enum ordering for passability/etc.

At least this way fewer saves will be affected.

--------------------------------------------------------------------------------
b664766e0b | Adam Borowski | 2013-03-09 21:00:22 +0100

Formatting fixes.

--------------------------------------------------------------------------------
380d5887bd | David Lawrence Ramsey | 2013-03-09 12:44:54 -0600

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
b162943f0f | David Lawrence Ramsey | 2013-03-09 12:34:05 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
fd4131411b | David Lawrence Ramsey | 2013-03-09 12:31:25 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
3eaf7e59e0 | DracoOmega | 2013-03-09 14:38:06 -0330

Apply dactions to transiting monsters, refactor related code
Dactions which affect monsters (such as abandoning or joining certain
gods, enslaving new souls, killing Pikel) now apply not only to
monsters currently on a level, but monsters that have yet to transit
to a level (eg: fell down a shaft or were banished, but the player
has not yet visited their destination).

Previously, it was possible to visit the Abyss and find (say)
still-friendly undead slaves there after abandoning Yred in the
meantime. This also fixes the unfortunate case of shafted Pikel slave
not getting the news about their cruel slavemaster's death.

--------------------------------------------------------------------------------
365bd5147c | DracoOmega | 2013-03-09 14:38:05 -0330

Don't have friendly vault sentinels blow their horns
While amusing to watch, it's also probably better if 'friends'
didn't perform actions that primarily help the player's enemies.

--------------------------------------------------------------------------------
7981c5d0f5 | DracoOmega | 2013-03-09 14:38:05 -0330

Add a temporary routine to clean up after some invalid god companions
This should prevent one crash caused by saves containing cloned companions
and allow those players to continue their games, but should be unnecessary
once all cloning bugs are fully quashed.

--------------------------------------------------------------------------------
885b5f1ec6 | DracoOmega | 2013-03-09 14:38:04 -0330

Fix another method of cloning Yred/Beogh companions

--------------------------------------------------------------------------------
e24ed8bb71 | Florian Diebold | 2013-03-09 15:25:19 +0100

Webtiles: Fix escaping of newlines in JSON strings.
This fixes the meatsprint opening messages.

--------------------------------------------------------------------------------
8a63e1e960 | Florian Diebold | 2013-03-09 15:06:05 +0100

Webtiles: Fix the command marker overwriting the turn marker.

--------------------------------------------------------------------------------
902e5389d3 | ontoclasm | 2013-03-09 01:40:13 -0600

Lava snake, lava worm, & swamp worm tiles

--------------------------------------------------------------------------------
4eb46a614c | Samuel Bronson | 2013-03-08 22:26:44 -0500

Comment nitpick in zotdef.cc

--------------------------------------------------------------------------------
cfe5ce1c81 | Jason Van | 2013-03-08 22:05:18 -0500

Block fish from spawning in baileys, bailey entrances
Annoying as most other liquid monster spawns, yet inconsistently spawned;
might as well cut them off from all baileys after portal_branches.

--------------------------------------------------------------------------------
e7ab781614 | Samuel Bronson | 2013-03-08 21:42:40 -0500

Fix some bad whitespace from the previous commit.
Including a removed newline at EOF that introduced a parse error.

--------------------------------------------------------------------------------
8b641f53ae | Jason Van | 2013-03-08 21:42:39 -0500

Portal (mostly) entry vault edits
Mostly making the entries more consistent.
Most important changes:
 * Portal entry vaults are in general more consistent between each entry vault.
 * Sewer entry water matches the colours of the waters inside sewers themselves.
 * Enable ice caves, wizlabs for Vaults again, lost in further Vaults overhauls.
   Due to the nature of V wall materials, only using floor-bordered vaults.
 * Labs don't spawn in Elf or V (too weak, bazaars are fine time limit gimmick),
   and cut off on D:18 instead of D:21.
 * Bazaar entries have explicit entry default-depth:
   D:11-, Orc:4, Elf, Snake, Shoals, Vaults:1-4. No spawns technically limited.
 * Convert some newV ice cave entry vaults into regular entries.
 * Give wizlabs back their chances to spawn (whoops!)

--------------------------------------------------------------------------------
056547a510 | Chris Campbell | 2013-03-08 16:37:14 +0000

Update STATUS_LAST_STATUS (elliott)

--------------------------------------------------------------------------------
8f33a4fbf2 | elliptic | 2013-03-07 23:26:09 -0500

Don't skip handle_phase_end() when bailing out of the melee code early.
This caused a lot of bad behavior when combined with cleaving, since the
second half of the cleaving was called from handle_phase_end(). In
particular, the Axe of Woe now gets a full cleave again.

The auxiliary attack was moved out of handle_phase_end() to
handle_phase_aux(). The other things in handle_phase_end() are hopefully
reasonable to do at the end of any attack.

--------------------------------------------------------------------------------
40d21e897e | DracoOmega | 2013-03-08 00:23:52 -0330

Don't send KILL_RESET creatures to the Abyss
Several killer_types need to be merged/deleted/clarified, since it
is unclear what some of them do, and variable which ones are actually
used in particular circumstances. But for now, this should at least
prevent Beogh/Yred allies from randomly ending up in the Abyss
when you travel between levels.

--------------------------------------------------------------------------------
e2c1853af4 | DracoOmega | 2013-03-08 00:21:37 -0330

Replace an assert with a more informative error message
This should allow people affected by the companion cloning bug to
enter the Abyss once more, and also give more useful information
about certain kinds of invalid monsters in future, rather than
simply crashing.

--------------------------------------------------------------------------------
510d888ae2 | DracoOmega | 2013-03-08 00:21:36 -0330

Remove companions from tracking if banishment 'killed' them

--------------------------------------------------------------------------------
7b177a007d | DracoOmega | 2013-03-08 00:21:34 -0330

Properly remove all companion tracking when you abandon Yred/Beogh
Due to delayed actions firing immediately after being queued, allies
on your present level would already have turned hostile by the time
the companion list was looking for them (and thus would not identify
them as allies). The friendliness check seems unnecessary anyway,
and so it has been removed.

An amusing side-effect of this issue meant that it was possible to
abandon one of these gods, rejoin, and then recall hostile former
allies from off-level to your location.

--------------------------------------------------------------------------------
2076e0c676 | elliptic | 2013-03-07 22:00:46 -0500

Use the normal attack delay when attacking empty space.
Previously a character with 0 axes skill and an executioner's axe could
attack monsters at double speed (and 0.75x damage) by attacking empty
space next to the monsters and cleaving.

The normal attack hunger was already being applied, so this change is
consistent with that.

--------------------------------------------------------------------------------
a2a72ae5e7 | Brendan Hickey | 2013-03-07 18:35:51 -0800

Don't special case stone arches in the abyss

--------------------------------------------------------------------------------
ce9bcc5e57 | elliptic | 2013-03-07 19:49:06 -0500

Increase talon damage slightly.

--------------------------------------------------------------------------------
d95da0283f | Chris Campbell | 2013-03-07 15:38:31 +0000

Fix some issues with Troll gourmand (#6721)
Correctly mark the amulet as useless to them, and make sure their
gourmand duration is always at the maximum value (so they don't have
reduced nutrition and a chance of nausea just after entering the
dungeon).

--------------------------------------------------------------------------------
b047f80fa4 | Chris Campbell | 2013-03-07 15:22:44 +0000

Fix auto-ID for rings of hunger (Nobody)

--------------------------------------------------------------------------------
c37582dcc7 | Policarpo Caballero | 2013-03-07 01:11:30 -0600

Offer contaminated chunks before rotten ones if prefer_safe_chunks is true

--------------------------------------------------------------------------------
d4586cbd16 | David Lawrence Ramsey | 2013-03-07 01:04:56 -0600

Simplify.

--------------------------------------------------------------------------------
23f5d55f4a | David Lawrence Ramsey | 2013-03-07 01:04:26 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
598e7d7d0a | David Lawrence Ramsey | 2013-03-07 01:01:21 -0600

Resort Yred's likes a bit.

--------------------------------------------------------------------------------
3d3cda51dd | ontoclasm | 2013-03-07 00:52:38 -0600

Tiles for THE AXE OF WOE

--------------------------------------------------------------------------------
fcb5f5b6f9 | Brendan Hickey | 2013-03-06 21:54:04 -0800

Clamp Layout Tweak
Modify clamp layout so that the turn on which a square might change is not 
predictable.

--------------------------------------------------------------------------------
93ae126363 | DracoOmega | 2013-03-07 02:17:54 -0330

Show the proper tile for multi-tile sealed doors

--------------------------------------------------------------------------------
4cb0467ab3 | Neil Moore | 2013-03-06 23:28:13 -0500

Formatting fix.

--------------------------------------------------------------------------------
7aa1236cff | DracoOmega | 2013-03-07 00:30:09 -0330

Fix gup_sewer_entry_pipe coloring deep and shallow water the same

--------------------------------------------------------------------------------
e40b2b0000 | DracoOmega | 2013-03-07 00:30:07 -0330

Buff vault sentinels a bit
Increase HP (their old value was rather sad), and also HD and
MR a little.

--------------------------------------------------------------------------------
b99a3d7ca1 | DracoOmega | 2013-03-07 00:30:06 -0330

List a monster's xp value when showing debug info for it in wizmode

--------------------------------------------------------------------------------
c0e5f5763a | DracoOmega | 2013-03-07 00:30:05 -0330

Tentacled starspawn stat adjustments
Make starspawn nonliving (like other abyssals) rather than demonic.
Increase speed from 8 to 9, reduce damage from 45,35 to 40,25.
Make it more likely to spawn tentacles, reduce chance to escape from
them, and increase constriction damage slightly.

--------------------------------------------------------------------------------
38c2f1a4ec | DracoOmega | 2013-03-07 00:30:03 -0330

Don't consider closed doors as opaque to pathfinding
There's already a check later on which tests whether the monster can
open them (previously unreachable). In practice, this meant that
monsters would ignore nearby closed doors in favor of more circuitous
routes across open terrain, even if they were capable of opening these
doors. This was especially evident against players with sentinel's mark,
as monsters would frequently clump up on the opposite side of walls and
never reach you, due to all paths being blocked by closed doors.

--------------------------------------------------------------------------------
b1b0a38174 | Neil Moore | 2013-03-06 18:54:10 -0500

Formatting and whitespace fixes.

--------------------------------------------------------------------------------
16e3ea80d4 | DracoOmega | 2013-03-06 17:44:41 -0330

Slightly increase vault warden band size

--------------------------------------------------------------------------------
ed9785d1a3 | DracoOmega | 2013-03-06 17:29:08 -0330

Further reduce the likelihood of monsters placing without their bands in V

--------------------------------------------------------------------------------
ee1e4c035e | Jason Van | 2013-03-06 17:03:28 -0330

Make most vaults_room vaults place bands, plus vaults_room/hard edits.
Put in a 0 band by default into most vaults_room vaults,
with lower chances for random other monsters otherwise.
This keeps the new V monsters with their bands,
plus allowing a future V monster set focusing on bands to play better.

Also, a little housekeeping, and some commentary to keep things cleaner.

--------------------------------------------------------------------------------
1f407f80fb | Pete Hurst | 2013-03-06 17:02:55 -0330

Hopefully fix band monsters in walls in V

--------------------------------------------------------------------------------
68c0ba132b | DracoOmega | 2013-03-06 16:55:37 -0330

Don't blame the player for the result of Hell effects
For example, an angel dying to a Hell-caused freezing cloud would
incur TSO penance.

--------------------------------------------------------------------------------
8c50c58837 | DracoOmega | 2013-03-06 16:55:36 -0330

Don't spawn clouds and display Abyss spawn messages for starcursed mass splits
And slime creature too, if one somehow ends up down there.

--------------------------------------------------------------------------------
e7826990d3 | Chris Campbell | 2013-03-06 19:34:14 +0000

Randomly teleport in the Meatlord like other meatsprint uniques
Instead of always dropping him on the exit staircase. Makes winning
hugely difficult, but that's basically the intention anyway.

--------------------------------------------------------------------------------
b0aab497c6 | Chris Oelmueller | 2013-03-06 14:28:01 +0000

Rename {sslith} to {run} (naga barding ego:running)
This abbreviation of "speedy slithering" confused many players, some of
them even considered it a typo of `{slith}` or something along those
lines. Because they are probably more familiar with regular boots of
running, this commit removes special casing a very rare ego name.
Verbose item names still refer to a "naga barding of speedy slithering"
and the item description is unchanged as well.

Additionally, fixes a bug where naga bardings somehow generated with
the running ego would produce terse item names like "naga bardingspeed"
for instance in the `%` overview screen.
This was introduced by 9a9817d403128e58de5e3a8361065b9dced4a6be not
editing changes made in 42acab0b7d5738062a3d4efc83002d9ad890381f.

This reverts parts of commit ace582297502e6b7e4e0f44a58f5f7c23c278dfe.

--------------------------------------------------------------------------------
811fe3f9dd | Chris Oelmueller | 2013-03-06 14:28:00 +0000

Rename terse ego description {rflct} to {reflect}
Even "D - +1 large shield {reflect} {Donald}" fits on the `%` screen
without overflow, and there are several terse ego names longer than five
chars such as "darkness", "ponderous" or "Archmagi". No need to cut
vowels here, really.

--------------------------------------------------------------------------------
254c26aacb | Chris Campbell | 2013-03-06 14:28:00 +0000

Identify the wand of digging in trove_dig

--------------------------------------------------------------------------------
579211691d | David Lawrence Ramsey | 2013-03-06 01:26:17 -0600

Fix indentation.

--------------------------------------------------------------------------------
e550546d52 | Brendan Hickey | 2013-03-05 22:40:23 -0800

long long -> uint64_t
Use properly sized types rather than 'this type is at least this big' types.

--------------------------------------------------------------------------------
3a20b2bb2b | Brendan Hickey | 2013-03-05 22:37:50 -0800

City Layout
A preliminary vaults-style abyss city layout.
Needs holes punched in the walls before it can go into use.
Trapping players sucks.

--------------------------------------------------------------------------------
d9a21ef806 | Brendan Hickey | 2013-03-05 21:50:26 -0800

Worley cell center vectors
Expose the cell center vector in worley.

--------------------------------------------------------------------------------
4bf3e34638 | DracoOmega | 2013-03-06 01:38:15 -0330

Recall allies in rough order of HD (with random jitter)
Fully random ordering had several problems when the player had a
large number of allies, many of which were mostly worthless.
Raising a bunch of green rat skeletons shouldn't make a Yred
worshipper's effective recall power noticeably weaker, for example,
nor should a Beogh follower gaining a large number of plain orcs to
accompany their warlords.

--------------------------------------------------------------------------------
52967696ea | DracoOmega | 2013-03-06 01:38:15 -0330

Add a retreat command for allies
This adds a new ally command ('retreat!') and associated behavior.

Ordering a retreat asks the player to specify a general direction,
then your allies will attempt to withdraw in that direction. While
withdrawing, they will not respond to attacks against them, nor
will they attack any other creatures.

Allies will withdraw a maximum distance of around twice LOS radius,
but will pause and idle if they get much beyond half this distance
away from the player (and will remain non-responsive to hostiles
during this period). If they spend several turns blocked by walls,
a considerably longer time idle without a nearby player, or actually
reach their rally point, they will stop withdrawing and attempt to
return to the player.

In practice, this means that you can cover your allies' retreat,
allowing them to proceed towards safe territory ahead of you, but
they will not cover the maximal retreat distance unless you
eventually accompany them.

--------------------------------------------------------------------------------
0ef0d365f9 | DracoOmega | 2013-03-06 01:38:14 -0330

Make monster debug info in wizmode display monster props
It currently does not display all possible types that can be stored
as a prop (eg: lua chunks or vectors), but none of those types are
currently used anywhere as a monster prop, either.

--------------------------------------------------------------------------------
e2e8a398e6 | DracoOmega | 2013-03-06 01:38:13 -0330

Make a function public and rename

--------------------------------------------------------------------------------
f4a4332a4b | DracoOmega | 2013-03-06 01:38:12 -0330

Make tf reset allies back to BEH_SEEK

--------------------------------------------------------------------------------
d5dae38f9b | Brendan Hickey | 2013-03-05 21:03:04 -0800

Add Burstiness to clamp layout.
Add a burstiness option to clamp layout.
When picking the turn on which a feature might change, generate two 32-bit
values and AND them together.

--------------------------------------------------------------------------------
3285040195 | DracoOmega | 2013-03-06 01:20:23 -0330

Remove a (hopefully) unnecessary line

--------------------------------------------------------------------------------
c87ed009d6 | DracoOmega | 2013-03-06 01:20:22 -0330

Fix a crash with abandoning Yred/Beogh

--------------------------------------------------------------------------------
37b8440318 | DracoOmega | 2013-03-06 01:20:20 -0330

Add a wizmode command to list Yred/Beogh followers

--------------------------------------------------------------------------------
6777ac41de | DracoOmega | 2013-03-06 01:20:19 -0330

Fix cloning Yred/Beogh companions via recall and stairs

--------------------------------------------------------------------------------
e58ea8d632 | Brendan Hickey | 2013-03-05 20:47:36 -0800

Clamp Layout
A procedural layout wrapper that clamps a layout to change no more
frequently than some limiting parameter. If you underestimate how
rapidly the underlying layout changes, aliasing will occur.

--------------------------------------------------------------------------------
e31d4bde26 | Brendan Hickey | 2013-03-05 20:26:36 -0800

Remove redundant import

--------------------------------------------------------------------------------
90f4090198 | Chris Campbell | 2013-03-06 04:18:20 +0000

Add a simple scoring function to meatsprint
Suggested by elliptic and evilmike - just scores based on time survived,
doubled if you win. Possible improvements would be to give points
per monster killed, perhaps with different amounts of points for each
monster type.

--------------------------------------------------------------------------------
dedefaf580 | David Lawrence Ramsey | 2013-03-05 22:13:23 -0600

Add more formatting fixes.

--------------------------------------------------------------------------------
172641ec32 | David Lawrence Ramsey | 2013-03-05 22:02:42 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
b88bd424df | Chris Campbell | 2013-03-05 23:32:22 +0000

Merge branch 'meatsprint'

--------------------------------------------------------------------------------
201157b089 | Neil Moore | 2013-03-05 16:10:37 -0500

More Vaults from HangedMan (#6703).
Sigils serial vault, by HangedMan.
Alien, pervasive curves of thick stone tendrils curling onto a given
level; great worms of stone left as simple mysteries for the Dungeon.

Also: two decorative D mini_features.des vaults using a
previously-established lua function, another Zot decorative vault, and a
big nasty late D vault themed around a tougher, mixed-up Lair.

--------------------------------------------------------------------------------
2351209773 | Florian Diebold | 2013-03-05 20:59:06 +0100

Webtiles: Don't even show the input box for spectators.

--------------------------------------------------------------------------------
b16445e065 | Pekka Lampila | 2013-03-05 20:42:16 +0100

Make sure to send menu_scroll before selection in WebTiles
Send menu_scroll message early for any keys not handled by the menu
code. This makes sure that when selection happens server's view is up to
date.

--------------------------------------------------------------------------------
9191a8876d | Pekka Lampila | 2013-03-05 20:42:10 +0100

Make sure new menus are scrolled to the top in WebTiles
In Firefox menu scrolling position was remembered between different
menus.

--------------------------------------------------------------------------------
2a3d973be9 | Pekka Lampila | 2013-03-05 20:41:54 +0100

Hide WebTiles dialogs when the connection is closed

--------------------------------------------------------------------------------
966c04a0ab | Pekka Lampila | 2013-03-05 20:41:49 +0100

Check WebTiles menu indices after each scroll

--------------------------------------------------------------------------------
da1f79d869 | Florian Diebold | 2013-03-05 20:37:03 +0100

Fix javascript errors when spectating someone who is in map mode (#6690).

--------------------------------------------------------------------------------
efadcd911c | Florian Diebold | 2013-03-05 20:32:59 +0100

Webtiles: Fix the view position not being sent when a spectator joins (#6654).

--------------------------------------------------------------------------------
d31b5dee12 | Florian Diebold | 2013-03-05 20:24:17 +0100

Fix the message window scroll position being messed up when resizing the 
browser window (#6694).

--------------------------------------------------------------------------------
8b93297996 | Florian Diebold | 2013-03-05 20:09:09 +0100

Fix #6724: Webtiles chat window loses focus when spectating.

--------------------------------------------------------------------------------
791d6a5094 | Florian Diebold | 2013-03-05 19:59:56 +0100

Add Medar to the credits.

--------------------------------------------------------------------------------
a075186012 | Pekka Lampila | 2013-03-05 19:51:02 +0100

Clear more values in WebTiles player class init

--------------------------------------------------------------------------------
e4485f8492 | Pekka Lampila | 2013-03-05 19:50:54 +0100

Support numpad insert in WebTiles

--------------------------------------------------------------------------------
eec40ecc4c | Pekka Lampila | 2013-03-05 19:50:41 +0100

Support numpad 5 in WebTiles

--------------------------------------------------------------------------------
39908e73ac | Chris Campbell | 2013-03-05 18:29:16 +0000

Fix a vault that could trap players

--------------------------------------------------------------------------------
dabb8a5a99 | David Lawrence Ramsey | 2013-03-05 01:33:56 -0600

Tweak wording.

--------------------------------------------------------------------------------
04a833e3e6 | David Lawrence Ramsey | 2013-03-05 01:23:20 -0600

Rework Donald's Vehumet complaints to account for the Vehumet changes.

--------------------------------------------------------------------------------
549281a7a9 | David Lawrence Ramsey | 2013-03-05 01:12:55 -0600

Capitalization fix.

--------------------------------------------------------------------------------
09d5da6e7b | ontoclasm | 2013-03-05 00:28:03 -0600

Turtle tiles

--------------------------------------------------------------------------------
21f52d2d9e | Brendan Hickey | 2013-03-04 22:24:35 -0800

Exorcise Poltergeists
Do not overwrite open doors in the abyss with closed doors (and vice versa).

--------------------------------------------------------------------------------
bcb879dbf3 | Brendan Hickey | 2013-03-04 21:57:44 -0800

Comment Procedural level generators.

--------------------------------------------------------------------------------
7d555e852b | ontoclasm | 2013-03-04 19:27:05 -0600

Skeleton tiles (Aygtets, 6735)

--------------------------------------------------------------------------------
e213781413 | Samuel Bronson | 2013-03-04 18:17:30 -0500

Widen the domain of perlin::noise to cover at least all of uint32_t.

--------------------------------------------------------------------------------
3f51693d96 | David Lawrence Ramsey | 2013-03-04 16:09:56 -0600

Reorder conduct checks a bit.

--------------------------------------------------------------------------------
803c79300c | David Lawrence Ramsey | 2013-03-04 15:39:41 -0600

Fix abbreviation.

--------------------------------------------------------------------------------
579a45444d | ontoclasm | 2013-03-04 15:21:38 -0600

Fix comments

--------------------------------------------------------------------------------
418a51f157 | ontoclasm | 2013-03-04 15:21:38 -0600

Tiles for sealed doors

--------------------------------------------------------------------------------
7df71492fd | David Lawrence Ramsey | 2013-03-04 15:16:35 -0600

Comment fix.

--------------------------------------------------------------------------------
1d51379be7 | David Lawrence Ramsey | 2013-03-04 15:07:18 -0600

Don't mark Cigotuvi's Degeneration as corpse-violating; it's never used on 
corpses.

--------------------------------------------------------------------------------
9848ea3a0d | David Lawrence Ramsey | 2013-03-04 14:52:07 -0600

Fix spacing.

--------------------------------------------------------------------------------
8da2df9ead | Steve Melenchuk | 2013-03-04 13:06:43 -0700

Prevent grunt_runaround subvaults from placing on their own.
Thanks to HangedMan for pointing this out.

--------------------------------------------------------------------------------
8520d3c388 | Samuel Bronson | 2013-03-04 14:34:56 -0500

Add some comments to perlin.cc.

--------------------------------------------------------------------------------
b34b6208d5 | David Lawrence Ramsey | 2013-03-04 12:43:42 -0600

Make Yred appreciate desecrating holy remains (for a small piety gain).

--------------------------------------------------------------------------------
a4ab263bff | David Lawrence Ramsey | 2013-03-04 12:29:19 -0600

Simplify.

--------------------------------------------------------------------------------
5c1ffac939 | David Lawrence Ramsey | 2013-03-04 12:08:32 -0600

Comment fixes.

--------------------------------------------------------------------------------
514453d262 | David Lawrence Ramsey | 2013-03-04 11:45:22 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
4d779cec5b | Adam Borowski | 2013-03-04 13:38:36 +0100

Free the cached abyss grid in some cases.
* game exit: placates valgrind
* leaving the Abyss: saves some memory
* game load: could corrupt the Abyss with restart_after_game

The last case is quite convoluted (you'd need to restore a game that was
saved in the Abyss, and previous one had to visit it this session), and
corrupting the Abyss is like trolling /b/, but let's keep saving have
strictly no effect on the game.  Someone could scum AKs until getting a
layout they want.

Note that there's an unbounded memory leak as well, in WorleyLayout: it
doesn't free source layouts passed to it.  These are sometimes malloced,
sometimes references to static objects, so it's not as simple a matter.

--------------------------------------------------------------------------------
e6d1668068 | Adam Borowski | 2013-03-04 10:08:51 +0100

Indentation fixes.

--------------------------------------------------------------------------------
840a04ff85 | Brendan Hickey | 2013-03-03 19:33:13 -0800

Initialize seed member in LevelLayout.

--------------------------------------------------------------------------------
eb4da3db2d | Brendan Hickey | 2013-03-03 19:32:45 -0800

Abyss Seed Initialization
Initialize abyssal_state.seed for pre DEEP_ABYSS minor tags.

--------------------------------------------------------------------------------
0a11051a41 | DracoOmega | 2013-03-03 23:11:04 -0330

Prevent poison and miasma clouds from angering allies
Unlike other clouds, these would anger any ally that actually were
affected by them, despite said allies often walking into the cloud
of their own volition. This tended to be especially bad with foul
stench, since it scatters these clouds around the player at
unpredictable intervals, regularly turning friendly creatures
hostile without provocation from the player.

As a side-effect, this also makes Olgreb's Toxic Radiance no longer
anger things it poisons, which mirrors the behavior of Refrigeration.

--------------------------------------------------------------------------------
b8a4428307 | Adam Borowski | 2013-03-04 02:54:36 +0100

Ensure the database is up to date before running canned benchmarks.
Otherwise, it'd unfairly charge the first run the cost of rebuilding.
We take the median of five so it wasn't that bad, though.

Also, load the db (including parts which were already ready) into the
system's page cache, and flush outstanding writes.  We take user time
rather than wall clock so it shouldn't matter, but that's theory not
practice, especially on Intel CPUs.

--------------------------------------------------------------------------------
6eaa50d73d | Adam Borowski | 2013-03-04 02:48:19 +0100

Don't call a destructor explicitely.
It will be triggered by going out of scope the very next line.

--------------------------------------------------------------------------------
0bdb570f89 | Adam Borowski | 2013-03-04 02:34:11 +0100

Make missing BYTE_ORDER defines fatal, rather than mis-tag files.
Also, blindly include two files that may have that define.

--------------------------------------------------------------------------------
814bbc5ff8 | Adam Borowski | 2013-03-04 02:14:22 +0100

Formatting fixes.

--------------------------------------------------------------------------------
3e462fffd7 | Adam Borowski | 2013-03-04 02:07:44 +0100

Make two _functions actually static.

--------------------------------------------------------------------------------
ee31054890 | Adam Borowski | 2013-03-04 01:27:39 +0100

Make hydras cold blooded.
In most fiction they're amphibians or at most reptiles; they were
warm-blooded in Crawl because of 88a6cab9 which apparently cared only
about blood but not its temperature.

--------------------------------------------------------------------------------
46f51e21ec | Adam Borowski | 2013-03-04 01:27:39 +0100

Remove a reference to 1.5-handedness.

--------------------------------------------------------------------------------
b46227ac41 | DracoOmega | 2013-03-03 20:09:07 -0330

Fix monsters being able to walk through closed doors

--------------------------------------------------------------------------------
a4d9e1ccd7 | ontoclasm | 2013-03-03 16:45:22 -0600

Shift weapon attach points for vault wardens et al.

--------------------------------------------------------------------------------
c0e5d835a9 | ontoclasm | 2013-03-03 16:37:39 -0600

Allow vault monster tiles to show weapons

--------------------------------------------------------------------------------
f2ea61a411 | David Lawrence Ramsey | 2013-03-03 16:30:41 -0600

Fix indentation.

--------------------------------------------------------------------------------
caf8e0c1db | David Lawrence Ramsey | 2013-03-03 16:29:52 -0600

Typo fix.

--------------------------------------------------------------------------------
64aeb55c1a | David Lawrence Ramsey | 2013-03-03 16:29:52 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
a567290ccf | ontoclasm | 2013-03-03 16:21:25 -0600

Tiles for the new vaults monsters

--------------------------------------------------------------------------------
ce179128b8 | ontoclasm | 2013-03-03 16:21:25 -0600

Chaos butterfly tiles

--------------------------------------------------------------------------------
751e49fdaa | ontoclasm | 2013-03-03 16:21:24 -0600

Make bushes easier to see

--------------------------------------------------------------------------------
f542eecba2 | DracoOmega | 2013-03-03 18:36:54 -0330

Prevent friendly monsters from casting cantrip when not engaging hostiles
Orc wizards and priests spamming these while autotravelling around had a
tendancy to cause traffic jams for Beogh worshippers and result in parts
of your army falling further and further behind you. The spell can still
dilute their combat strength without causing movement hassles as well.

--------------------------------------------------------------------------------
313b81c725 | DracoOmega | 2013-03-03 18:36:53 -0330

Grant exp to orcish followers when Beogh players score kills
Rather than followers only earning exp when they score the killing
blow themselves, spread an amount of exp equal to 50% of what the
player earned among all orcish followers in LoS, divided proportionally
to their HD.

This should make it much less tedious and/or implausible to train up
weaker orcs gained later in the game, while requiring less micromanagement
in the meantime.

--------------------------------------------------------------------------------
41eaca393a | DracoOmega | 2013-03-03 18:36:52 -0330

Remove code for old version of recall

--------------------------------------------------------------------------------
72f3d047aa | DracoOmega | 2013-03-03 18:36:51 -0330

Change recall to be incremental instead of instant
Instead of gathering all corresponding allies and dumping them instantly
on top of you, recall now recalls a single ally every 3-6 aut and continues
until all appropriate allies have either been recalled, or recall was
attempted on them and failed (possibly because there was no room).

This should allow recall to still be a useful logistical tool for
transporting your army around while weaking its ability to instantly
snipe specific targets.

--------------------------------------------------------------------------------
bf0e94542f | DracoOmega | 2013-03-03 18:36:50 -0330

Don't recall companions into portals and other places you can't normally take 
them

--------------------------------------------------------------------------------
9cdc11531f | DracoOmega | 2013-03-03 18:36:49 -0330

Continue tracking banished companions, but don't recall them out of the Abyss

--------------------------------------------------------------------------------
5366e40bb4 | DracoOmega | 2013-03-03 18:36:48 -0330

Timeout monster enchantments and heal monsters when recalling from off-level

--------------------------------------------------------------------------------
1bd74f58a6 | DracoOmega | 2013-03-03 18:36:47 -0330

Interlevel recall for Yred and Beogh
Allow the god-given recall abilities for Yred and Beogh to recall
all god-associated permenant allies, regardless of where in the dungeon
they reside. (Note that this only includes Yred gifts and not zombies;
ie: things that could already follow you between levels)

This is done by actively tracking all of these allies in a seperate list
which is updated whenever a tracked ally is gained, dies, changes level,
or the player changes level.

The fact that permanent allies from these gods make interlevel travel
unusable is one of the largest sources of tedium associated with those gods,
and a major reason for their lack of popularity. Being able to recall from
previous levels means you no longer have to manually herd and count allies
at the top and bottom of every stair, sometimes having to make multiple
trips if the terrain surrounding the stair is too confined. This should
make these gods much more playable (and if their power level is now more
obvious and considered too high, it can be adjusted in other ways than via
tedium)

--------------------------------------------------------------------------------
82ac2224c7 | DracoOmega | 2013-03-03 18:36:46 -0330

Make unmarshall_follower return its value directly (like other similar routines)

--------------------------------------------------------------------------------
4310dfe04b | Chris Campbell | 2013-03-03 21:52:21 +0000

Remove a Nessos speech line

--------------------------------------------------------------------------------
076e325279 | David Lawrence Ramsey | 2013-03-03 15:36:03 -0600

Reorder BAND_OGRE_MAGE_EXTERN on the next major version bump.

--------------------------------------------------------------------------------
4b9d202d44 | David Lawrence Ramsey | 2013-03-03 15:34:52 -0600

Fix indentation.

--------------------------------------------------------------------------------
0eda651601 | David Lawrence Ramsey | 2013-03-03 15:30:06 -0600

Properly use a generic pronoun for monster Injury Bond instead of hardcoding it.

--------------------------------------------------------------------------------
9970669b91 | David Lawrence Ramsey | 2013-03-03 15:27:45 -0600

Remove unneeded blank lines.

--------------------------------------------------------------------------------
066172ffc8 | David Lawrence Ramsey | 2013-03-03 15:25:42 -0600

Fix indentation.

--------------------------------------------------------------------------------
9c2ce4e13d | David Lawrence Ramsey | 2013-03-03 15:20:13 -0600

Tweak descriptions of new Vaults monsters.
Referring to them first in singular form and then in plural form within
the same sentence is awkward.

--------------------------------------------------------------------------------
ecf23018b3 | David Lawrence Ramsey | 2013-03-03 15:19:08 -0600

Fix punctuation.

--------------------------------------------------------------------------------
ae48796d59 | DracoOmega | 2013-03-03 17:07:07 -0330

Make convokers less likely to cast recall if near many allies
The chance of a convoker electing to cast word of recall now scales
proportionally with the HD of nearby aligned monsters, making them
far less likely to cast it if the area is already crawling with
hostiles.

--------------------------------------------------------------------------------
b9e9196ace | DracoOmega | 2013-03-03 17:07:06 -0330

Print the warden ability message even if sealing removed it from LoS

--------------------------------------------------------------------------------
321af3615e | DracoOmega | 2013-03-03 17:07:05 -0330

Remove the line-of-sight constraint on door sealing
Sealing only doors visible to the player had noticably odd effects
if the act of sealing pushed the player out of a doorway; often new
doors would come into sight at their new position, some of which
might be nearly adjacent and yet would remain unsealed. Also, there
were possible undesirable interactions with fog.

Affecting all doors within the given radius is likely superior to
this, even if some of them are in disconnected parts of the level
from the player's location.

--------------------------------------------------------------------------------
811b98a559 | DracoOmega | 2013-03-03 17:07:04 -0330

Prevent non-hostile vault wardens from sealing doors
The logic is tuned with the assumption that the warden wants to make
things bad for the player, and there are several complications with
trying to get them to do the reverse. It is probably sufficient to
simply prevent them from trying.

--------------------------------------------------------------------------------
85dea8effb | DracoOmega | 2013-03-03 17:07:03 -0330

Allow door sealing to shove players (and monsters) out of doorways
Vault warden door sealing will now shove players and non-hostile
monsters out of open doorways, if there is some room for them to go.

The player will be shoved in whichever direction increases tension
more, and will not be moved at all if being on either side of the
closed door looks safer for the player than remaining in the open
doorway.

--------------------------------------------------------------------------------
0f64c671e4 | DracoOmega | 2013-03-03 17:07:03 -0330

More door sealing refactoring

--------------------------------------------------------------------------------
c773de5b0a | DracoOmega | 2013-03-03 17:07:02 -0330

Refactor warden door sealing item displacement slightly

--------------------------------------------------------------------------------
73aec5850f | DracoOmega | 2013-03-03 17:07:01 -0330

Let ?vuln and other dispelling effects remove sentinel's mark

--------------------------------------------------------------------------------
8e8d2a93f1 | DracoOmega | 2013-03-03 17:07:00 -0330

Properly allow monsters to open sealed doors, unless they're friendly

--------------------------------------------------------------------------------
430405a539 | DracoOmega | 2013-03-03 17:06:59 -0330

Properly make wardens only seal doors if they can see the player

--------------------------------------------------------------------------------
5e31abb196 | DracoOmega | 2013-03-03 17:06:58 -0330

Change a word from American to Australian English

--------------------------------------------------------------------------------
c903ba895e | DracoOmega | 2013-03-03 17:06:58 -0330

Give ironbrand preservers a random band
Given that preservers are really only interesting when they are
around other creatures to protect, make sure they show up alongside
some of these creatures.

Bands are currently selected among most of the various humanoid bands
that can naturally spawn in Vaults (currently ogre mage, deep troll,
orc knight, or deep elf high priest, with equal weight), and are of
generally the same size. Quite possibly this list needs further
adjusting in various ways, but this is likely better than preservers
simply spawning on their lonesome and doing nothing of consequence.

--------------------------------------------------------------------------------
c3731e4b7d | DracoOmega | 2013-03-03 17:06:57 -0330

Make recalled monsters aware of the convoker's foe
Previously convokers would often call in monsters that were still
asleep, and which might remain unaware of the player for some time.

--------------------------------------------------------------------------------
28b0b6cb21 | DracoOmega | 2013-03-03 17:06:56 -0330

Immediately remove door seals when the warden that made them dies
While this already appeared to happen if you killed the warden yourself
(since the seals are updated after each player action), if the warden
was killed by another creature, the seals wouldn't actually disappear
until the following turn. Now they vanish immediately.

--------------------------------------------------------------------------------
51611acfb3 | DracoOmega | 2013-03-03 17:06:55 -0330

Fix various issues with Injury Bond
Damage will no longer be bounced back and forth infinitely if two
preservers are shielding each other and preservers that die from
shared damage will no longer cause crashes if killed via cleaving.
Also, actually give messages and credit if preservers die in this
manner.

--------------------------------------------------------------------------------
bd9ea4bef6 | DracoOmega | 2013-03-03 17:06:54 -0330

Add bands for vault wardens
Wardens now come with a band that is either (equal chance):
a) several yaktaurs
b) a mix of the new vault monsters and a couple vault guards.

Their ability to lock the player into places is more interesting
when there are more threats than just the warden himself

--------------------------------------------------------------------------------
6ceec178e5 | DracoOmega | 2013-03-03 17:06:53 -0330

Allow new Vaults monsters to spawn randomly
Their rarities and depths are essentially placeholder values and no
further systemic changes to the Vaults spawn list has done, but this
should at least allow them to be tested in a real scenario

--------------------------------------------------------------------------------
b142f66ee3 | DracoOmega | 2013-03-03 17:06:53 -0330

Add descriptions for new Vaults monsters

--------------------------------------------------------------------------------
92b13a3763 | DracoOmega | 2013-03-03 17:06:52 -0330

Sealed door description

--------------------------------------------------------------------------------
f2e41b735e | DracoOmega | 2013-03-03 17:06:51 -0330

Add Ironheart Preservers
These are durable melee fighters who can cast minor healing as well
as injury bond, which causes them to take half of any damage dealt
to any nearby allied creatures while the spell's effect lasts.

--------------------------------------------------------------------------------
8d51c429cd | DracoOmega | 2013-03-03 17:06:50 -0330

Allow convokers to cast 'might other' on any creature
Unlike most monsters with ally-buffing spells, these don't normally
even come with any other members of their genus, so it doesn't make
sense to restrict their targeting to these.

--------------------------------------------------------------------------------
8cd97b124a | DracoOmega | 2013-03-03 17:06:49 -0330

Add Ironbrand Convokers
These are moderately-armoured support soldiers who can cast might
other and word of recall, which requires several turns for them to
fully recite (during which time it can be interrupted by disabling
or killing them), and after which will teleport a moderate number
of I_NORMAL or better monsters to near the convoker's location.

--------------------------------------------------------------------------------
592b18ad78 | DracoOmega | 2013-03-03 17:06:48 -0330

Don't slam doors shut if it would remove too many threats from LoS
The warden sealing doors should ideally never help the player, so
they will leave open doors whose contents appear quite dangerous.

This uses tension calculations, and currently will never close a
door if it would reduce tension by more than 33%

--------------------------------------------------------------------------------
fe132c3574 | DracoOmega | 2013-03-03 17:06:47 -0330

Add Vault Wardens
These are the watch captains of the vault, similar in stats to a
greater vault guard, with more HD and slightly better equipment.

They can evoke a rune of sealing which slams shut doors near the
player and seals them closed. Sealed doors cannot be opened by the
player by any means (though they can still be destroyed in the usual
ways), although monsters can open them freely.

The seals will expire after a number of turns, or instantly upon
the death of the warden which sealed them.

--------------------------------------------------------------------------------
7f122b9c1a | DracoOmega | 2013-03-03 17:06:46 -0330

Add Vault Sentinels
These are individuals charged with patroling the Vaults branch and keeping
it alert for intruders. They have two abilities:

They can blow on a signal horn, which generates a lot of noise and thus will
wake creatures up and possibly attract them to the sentinel's location.

They can cast Sentinel's Mark, which is a hex that makes all awake creatures
on a level (especially those of normal or better intelligence) aware of the
player's current location at all times. Which means that, no matter where you
are, the level will come hunting for you.

Stat-wise, they are fairly unremarkable fighters with average equipment,
but have a 1 in 3 chance of also spawning with a crossbow.

--------------------------------------------------------------------------------
dca8a20a79 | elliptic | 2013-03-03 15:15:08 -0500

Increase chance that the Orb refuses to be apported.
Chance increased from 1/6 to 1/3.

--------------------------------------------------------------------------------
8c2c45f61f | Chris Campbell | 2013-03-03 17:31:35 +0000

Rework the robe of Folly
Misfortune already exists as a strictly bad unrand. The robe of Folly
now has the Archmagi ego and an int bonus, but also a large magic
resistance penalty.

This also changes monster MR from randarts to work additively instead of
multiplicatively, since there was no clear reason for it and all other
sources of MR are additive (possibly a relic of randart MR being
multiplicative for both players and monsters in the distant past?).

--------------------------------------------------------------------------------
6662505300 | Chris Campbell | 2013-03-03 16:42:55 +0000

Move Control Teleport to book of the Warp
Moves Control Teleport out of the books of Burglary and Spatial
Translocation and into the book of the Warp. Without semicontrolled
blink as direct competition so early on, Passage of Golubria should
hopefully see more use.

--------------------------------------------------------------------------------
0ffb3f9952 | Samuel Bronson | 2013-03-03 01:20:12 -0500

Remove nasal daemons from Abyss: we had enough demons there already!

--------------------------------------------------------------------------------
f98ff8421d | Brendan Hickey | 2013-03-02 22:02:20 -0800

Fixup Abyss Level Selection
Select a level to decorate the abyss by enumerating the existing levels and 
taking one at random.

--------------------------------------------------------------------------------
9b9aad523c | David Lawrence Ramsey | 2013-03-02 22:02:14 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
2a9ad8e908 | Brendan Hickey | 2013-03-02 17:45:20 -0800

Dungeon Levels in the Abyss
Use chunks of real levels to generate abyss levels.

--------------------------------------------------------------------------------
a843345b50 | Brendan Hickey | 2013-03-02 17:45:07 -0800

Restore Abyss Seed
Mistakes were made.
We need per-abyss excursion state.

--------------------------------------------------------------------------------
7c6404761c | Neil Moore | 2013-03-02 15:38:22 -0500

Update obsolete instructions in new dev checklist.
Since CIA is no more, no one has been updating crawl-ref-cia (perhaps
we should remove it?).  Cheibriados and its mailmap serves many of the
same purposes.

--------------------------------------------------------------------------------
c9228edf18 | Neil Moore | 2013-03-02 15:36:41 -0500

Balloons and streamers for DracoOmega
Welcome to the dev team!

--------------------------------------------------------------------------------
4972c5db71 | David Lawrence Ramsey | 2013-03-01 21:28:04 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
08e7e93f39 | Adam Borowski | 2013-03-02 03:32:45 +0100

Remove player_in_bat_form().
There's nothing special to it, compared to other forms.

--------------------------------------------------------------------------------
480509d0a5 | Adam Borowski | 2013-03-02 03:26:09 +0100

Make prayer while in statue form use an active verb.
You are fully mobile, and there is no one to place you.

--------------------------------------------------------------------------------
3fa346fab8 | David Lawrence Ramsey | 2013-03-01 12:23:16 -0600

Fix punctuation.

--------------------------------------------------------------------------------
cf885dd308 | David Lawrence Ramsey | 2013-03-01 12:19:38 -0600

Make unborn deep dwarves belong to Yred, only to get the right message for 
Injury Mirror.
This is a minor hack, and there should be a better way to handle it eventually.

--------------------------------------------------------------------------------
32e4924ee0 | David Lawrence Ramsey | 2013-03-01 12:19:30 -0600

Make the monster casting message for Yred's Injury Mirror match the player's.

--------------------------------------------------------------------------------
9cc71aba19 | David Lawrence Ramsey | 2013-03-01 12:19:22 -0600

Remove gender reference in Yred's new Injury Mirror message; gods have no 
gender.

--------------------------------------------------------------------------------
b1eb13d2d8 | David Lawrence Ramsey | 2013-03-01 12:19:13 -0600

Properly use god_name() in Yred's new Injury Mirror message.

--------------------------------------------------------------------------------
d39eaa797e | David Lawrence Ramsey | 2013-03-01 12:18:57 -0600

Add whitespace fixes.

--------------------------------------------------------------------------------
1fa23b3df2 | AriaB | 2013-03-01 11:59:29 -0600

Fixed some code ordering so appropriate species can see the while flying pray 
at altar message.

--------------------------------------------------------------------------------
6ce76dee01 | AriaB | 2013-03-01 11:59:23 -0600

Changed kneeling message while flying to be more thematic.

--------------------------------------------------------------------------------
73f720f01f | AriaB | 2013-03-01 11:59:17 -0600

Edited Yred's Injury Mirror's use text to not require kneeling, due to the 
resulting complexity of having multiple ways to kneel depending on form & other 
issues (ie using over lava).

--------------------------------------------------------------------------------
d010d3a33e | AriaB | 2013-03-01 11:59:11 -0600

Added alternatives to kneeling for polymorphs.

--------------------------------------------------------------------------------
e75baf29b4 | Chris Campbell | 2013-02-28 12:15:48 +0000

Make the Lernaean hydra warm-blooded like other hydrae

--------------------------------------------------------------------------------
ecb9cddb43 | Chris Campbell | 2013-02-28 12:08:37 +0000

Remove a speech line (#6707)

--------------------------------------------------------------------------------
9fd23b04bd | Samuel Bronson | 2013-02-27 22:37:37 -0500

Update final copyright year in opening screen to 2013.

--------------------------------------------------------------------------------
119b68211f | elliptic | 2013-02-27 19:01:31 -0500

Decrease Jorgrun EV, increase Jorgrun melee damage.
His melee is still nothing special, but it does a bit more than zero damage
now. His EV is now lower than Agnes and Aizul, as one might expect.

--------------------------------------------------------------------------------
985b3808d9 | elliptic | 2013-02-27 18:53:52 -0500

Give Jory more HP.
His HP was quite low given how late he generates.

--------------------------------------------------------------------------------
38c9224902 | David Lawrence Ramsey | 2013-02-27 14:06:03 -0600

Fix punctuation.

--------------------------------------------------------------------------------
32fb48f2ca | Adam Borowski | 2013-02-27 19:45:36 +0100

Mention acquirement biases in the scroll's description.

--------------------------------------------------------------------------------
42bce56bc3 | David Lawrence Ramsey | 2013-02-27 01:05:36 -0600

Fix indentation.

--------------------------------------------------------------------------------
ddcdc4933c | Samuel Bronson | 2013-02-26 20:34:07 -0500

Fix an asymmetry in zotvault (Zot Defence Scenario I: Hall of Zot).

--------------------------------------------------------------------------------
55d710a0e8 | Chris Campbell | 2013-02-26 23:28:54 +0000

Don't spawn random monsters in xom_gifts_altar

--------------------------------------------------------------------------------
4da8ae9914 | elliptic | 2013-02-26 17:53:11 -0500

Reduce battlesphere damage slightly.

--------------------------------------------------------------------------------
705d6381d0 | David Lawrence Ramsey | 2013-02-26 12:14:27 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
c511d4a255 | David Lawrence Ramsey | 2013-02-26 12:13:34 -0600

Fix spelling.

--------------------------------------------------------------------------------
10a37fa11b | Adam Borowski | 2013-02-26 06:41:31 +0100

Simplify summoning of demons by tier.
Especially, don't encode two distinct types in mspec.type, use enums like
draconians do.

--------------------------------------------------------------------------------
e59fb650c4 | Adam Borowski | 2013-02-26 04:49:17 +0100

Remove layers upon layers of code for TSO summons.

--------------------------------------------------------------------------------
abeb565083 | Samuel Bronson | 2013-02-25 18:31:05 -0500

Relax test/shoal-hut.lua: huts don't necessarily have doors anymore.
TODO: check connectivity of huts that lack doors.

--------------------------------------------------------------------------------
a5f631d931 | Samuel Bronson | 2013-02-25 17:10:36 -0500

Reduce message spam & improve progress messages in test/uniquegen.lua.
This seems to make it run a good deal faster.

--------------------------------------------------------------------------------
e9549d020f | Aria B | 2013-02-25 18:55:03 +0000

Changed the "kneel at" message when praying in bat form to be a more thematic 
"perch on"

--------------------------------------------------------------------------------
541eb91041 | Adam Borowski | 2013-02-25 12:50:26 +0100

Uncrashify bashing folks with an inappropriate item.

--------------------------------------------------------------------------------
d804129209 | Adam Borowski | 2013-02-25 12:13:59 +0100

Give at least some XP for Experience cards.

--------------------------------------------------------------------------------
03c53c63e7 | ontoclasm | 2013-02-25 01:46:21 -0600

Various unique tile edits
Includes Erica courtesy of roctavian.

--------------------------------------------------------------------------------
1a5728b208 | David Lawrence Ramsey | 2013-02-24 23:25:38 -0600

Fix indentation.

--------------------------------------------------------------------------------
a78472a827 | Adam Borowski | 2013-02-24 19:29:46 +0100

Make the table of weapon str/dex weighting reflect _mostly_ status quo, use it.
I left intact (ie, effectively changed) bigger maces and axes (slightly
strengthier), extremes like quick blade and ogre clubs (slightly more
extremist), big polearms (glaive +1, bardiche +3).  If any of you would
prefer weapon types to have identical weighting like before, a reference
list is on https://crawl.develz.org/mantis/view.php?id=5825

Note that for melee weapons, a redundant and out of sync copy was used
instead, this table was consulted only for launchers.

--------------------------------------------------------------------------------
e4c888dc13 | Adam Borowski | 2013-02-24 16:23:36 +0100

Don't mark honeycombs as preferred food.
They're no better than regular food for anyone.

--------------------------------------------------------------------------------
e791ee36f1 | Adam Borowski | 2013-02-24 16:23:36 +0100

Don't show item corrosion messages out of LOS.

--------------------------------------------------------------------------------
971f66aa17 | ontoclasm | 2013-02-24 01:17:52 -0600

Don't show blind icons for dazed monsters.

--------------------------------------------------------------------------------
4cbeb313cc | ontoclasm | 2013-02-24 00:30:31 -0600

Status icons for blind, might, and petrify.

--------------------------------------------------------------------------------
2521a5a6b8 | Adam Borowski | 2013-02-24 06:08:10 +0100

Simplify a variable's scope.

--------------------------------------------------------------------------------
78bee588c5 | Adam Borowski | 2013-02-24 06:01:51 +0100

Tag the des cache with endianness and word width.
Lua stored inside is not portable between architectures.

One could allow separate caches in case someone shares $HOME between systems
of different architecture and switches them often, but I don't think I care
that much.  In the worst case, you'll get cache rebuilds.  A wee bit better
than crash on start until you "rm -rf ~/.crawl/saves/des".

--------------------------------------------------------------------------------
e5b0a8015c | Adam Borowski | 2013-02-24 05:43:01 +0100

Axe a std::

--------------------------------------------------------------------------------
65306b0f29 | Adam Borowski | 2013-02-24 05:34:35 +0100

Merge branch 'master' into mon-pick
Sorry for merge commits, but rerere is pretty limited.

--------------------------------------------------------------------------------
f10de61e79 | Adam Borowski | 2013-02-24 04:10:49 +0100

Work around a gcc misdesign that nearly doubles the time of LTO compilation.
Someone had a bright idea of doing all compilation twice to placate broken
build systems:

traditional build:
.c -> .o:  parsing, compilation, assembly
.o -> exe: link

LTO -ffat-lto-objects:
.c -> .o:  parsing, compilation, assembly
.o -> exe: compilation, assembly, link

LTO -fno-fat-lto-objects:
.c -> .o:  parsing
.o -> exe: compilation, assembly, link

The design decision was to create "fat objects" to be able to silently
revert to non-LTO mode if the build system fails to pass appropriate flags
in the second stage.  Since gcc-4.7, it's possible to turn that off, but
the default is still compiling twice (why?!?!?).

With this fix, LTO builds take hardly more CPU than regular ones, although
some parts are still single-threaded.

--------------------------------------------------------------------------------
97cd1d7d0f | Adam Borowski | 2013-02-24 04:10:48 +0100

Match the name of non-green crystal to its recolouring and tile.
I think recoloured crystal sucks in general -- adds a new entity for no
gain -- but unless we paint this bikeshed green as it should be, let's
at least have names match the appearance.

--------------------------------------------------------------------------------
6cbb919167 | Jason Van | 2013-02-23 22:04:56 -0500

Special room revisions, later form buffs
Ideally, a special room has a few major dangers and a mass of thematic monsters
working together for attrition and careful play but enabling the inevitable
retreat and leaving a section of the floor consciously, naturally dangerous.
To these ends, key changes were made to currently potentially boring vaults:
 * Enable special rooms for many more layouts, lower default chance,
   simplified weights, cut off boring vaults by depth. This lets special rooms
   spawn (again) in Orc, Spider, Slime, Vaults, all non-end floors of the Hells.
 * Special rooms now have no door. This removes a few flavour concerns
   as well as autoexplore traps in shape recognition, and increases threat
   (through emphasizing how large groups of monsters "spill out").
 * Room by room buffs avoid homogenous boring masses of enemies for their depth
   and give minor rewards, alongside a lowered likelyhood of higher numbers.

On a case-by-case basis:
 * New special room type: mythical zoos, using standard high-fantasy beasts.
   They emphasize much depth-adjusting weighting and monster choice synergy.
 * Kobold rooms can have kobold demonologists at lower levels.
 * Orc rooms have a little gold, a boss orc, and get much harder faster.
 * Bee rooms are cut from late D, place in Spider with ruined walls,
   are rarer. Patrolling behaviour is removed to enable better swarming.
 * Morgue rooms have redone sets, especially noticable in Hells, and corpses
   to animate. Plus, Hells versions usually contain a staircase.
 * Jelly rooms can spawn on Lair:8, in Slime, and have a few less oozes/jellies.
 * No special rooms in Snake, they were only enabled due to boring layouts.

TODO:
 * layout_cocytus should use the spotty level vault connector in general.
 * Rooms look bad in layout(_chaotic)_city and are thus currently missing in
   in Dis. City layouts should subvault in special rooms, like in layout_roguey.

--------------------------------------------------------------------------------
4635d2b86d | ontoclasm | 2013-02-23 19:50:33 -0600

Allow training dummies to display weapons.

--------------------------------------------------------------------------------
a974f26806 | Chris Campbell | 2013-02-23 18:08:15 +0000

Axe of Woe description (st)

--------------------------------------------------------------------------------
43b87180de | Chris Campbell | 2013-02-23 17:54:54 +0000

Tweak some Axe of Woe messages

--------------------------------------------------------------------------------
3363fc0b84 | David Lawrence Ramsey | 2013-02-23 11:48:23 -0600

Comment fix.

--------------------------------------------------------------------------------
73c5a3dda6 | David Lawrence Ramsey | 2013-02-23 11:37:54 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
b64e3e22af | David Lawrence Ramsey | 2013-02-23 11:36:22 -0600

Put Fedhas' ally gain/loss messages in the monster enchantment channel.
This is consistent with all similar messages.

--------------------------------------------------------------------------------
0863da95cf | David Lawrence Ramsey | 2013-02-23 11:32:37 -0600

Fix inconsistent wrath effect ordering: all powers are removed before allies 
abandon.

--------------------------------------------------------------------------------
f3b88fbc21 | David Lawrence Ramsey | 2013-02-23 11:25:50 -0600

Fix Mantis 6689: Make Jiyva slimes convertible again after penance (also 
reconversion).

--------------------------------------------------------------------------------
5299b6fa50 | Chris Campbell | 2013-02-23 17:16:11 +0000

Meatsprint monster descriptions (st)
I reworded a few of them slightly. A couple still seem a little
awkwardly worded to me, though (destroyer and observer mainly).

--------------------------------------------------------------------------------
63c778c7f3 | David Lawrence Ramsey | 2013-02-23 11:06:50 -0600

Comment fixes.

--------------------------------------------------------------------------------
7af231ebe0 | David Lawrence Ramsey | 2013-02-23 10:55:05 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
b52b64b9bc | DracoOmega | 2013-02-23 10:27:36 -0500

Allow AUTOMATIC_HIT beams to properly ignore ioods, battlespheres, etc.

--------------------------------------------------------------------------------
a17fa734eb | Steve Melenchuk | 2013-02-22 20:52:16 -0700

A basic description for the tengu conjurer.
...now that it's actually called a tengu conjurer, it needs this.

--------------------------------------------------------------------------------
0a212af871 | Jason Van | 2013-02-22 20:52:16 -0700

Pile of many miscellaneous little vault edits.
Removing or adjusting monsters too out of place/depth, or the vault depths
themselves, tagging other vaults with extra, cleaning up a few aesthetics
and cleaning up a little bit of code, for the most part.
Also, a handful of authorial changes.

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
3b0123d791 | DracoOmega | 2013-02-22 21:42:00 -0600

Refactor beam targetter code, make more spells use it
Rather than explicitly specify whether a beam is penetrating or not
when constructing a targetter, have the targetter extract this info
from the beam it's aiming.

Combined with the previous commit fixing the tracing of AUTOMATIC_HIT
beams, give targetters for these effects that accurately display the
fact that the first target is the only thing that can be affected.

Finally, give this refactored beam targetter to the various appropriate
player spells that current do not have it (which are many).

--------------------------------------------------------------------------------
af024b0d03 | David Lawrence Ramsey | 2013-02-22 21:30:06 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
cd0ae9a49d | DracoOmega | 2013-02-22 21:05:58 -0600

Don't leak info about invisible creatures via AUTOMATIC_HIT targetters

--------------------------------------------------------------------------------
bfb99a5953 | DracoOmega | 2013-02-22 21:05:58 -0600

Fix dazzling spray sometimes hitting the primary target twice

--------------------------------------------------------------------------------
0d22511127 | DracoOmega | 2013-02-22 21:05:58 -0600

Properly end tracing of AUTOMATIC_HIT bolts when they affect an actor

--------------------------------------------------------------------------------
db83861707 | DracoOmega | 2013-02-22 21:05:58 -0600

Prevent monsters from using friendly beams if something is blocking their target
While monsters are generally restricted to casting haste/heal other
only on creatures related to themselves, they would ignore interposing
creatures of other types if a valid target was on the other side of
them, happily hasting golems or skeletons or whatever else was in
the way. This could be doubly confusing in some cases, since their
actual target might not be visible to the player, and so you'd get
messages saying "The ogre mage gestures at the ogre. The iron golem
speeds up!" without an ogre even being visible.

Now monsters will only cast these spells if they believe that they
will actually hit their intended target and not something else.

--------------------------------------------------------------------------------
d41e653ece | David Lawrence Ramsey | 2013-02-22 20:58:34 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
c85d3b3495 | DracoOmega | 2013-02-22 20:56:48 -0600

Change a few instances of monster names being hard-coded in message strings

--------------------------------------------------------------------------------
e8f008ab92 | ontoclasm | 2013-02-22 17:32:13 -0600

Revert changes to floor_pebble_white.

--------------------------------------------------------------------------------
d20a730b9f | David Lawrence Ramsey | 2013-02-22 17:15:28 -0600

Fix off-by-one error in Kiku piety breakpoint check.

--------------------------------------------------------------------------------
9ed9f95a66 | David Lawrence Ramsey | 2013-02-22 17:15:13 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
fdb69f5298 | David Lawrence Ramsey | 2013-02-22 17:12:59 -0600

Add blackcustard's patch in Mantis 6445 to prevent allies from tormenting you.

--------------------------------------------------------------------------------
1f2a5a0bd1 | David Lawrence Ramsey | 2013-02-22 16:01:22 -0600

Comment fix.

--------------------------------------------------------------------------------
6b71b7b192 | Chris Campbell | 2013-02-22 18:23:02 +0000

Let Ely Purification be used during petrification (#6682)

--------------------------------------------------------------------------------
aa312377ca | Neil Moore | 2013-02-21 17:51:10 -0500

Don't prompt for swapping in the same amulet (#4134).
It was handled correctly for rings, but octopode changes to the
ring handling broke the test for amulets.  Also caught by SLi's
analysis.

--------------------------------------------------------------------------------
a1cc449f8e | Neil Moore | 2013-02-21 17:49:30 -0500

Clip rather than overflowing extra-long sage lists on saves.
Another bug caught by SLi's dead-assignment analysis: we calculated the
clipped length, but then neglected to use it.

--------------------------------------------------------------------------------
4ae3725b8e | Neil Moore | 2013-02-21 17:49:29 -0500

Add SLi to CREDITS.txt.
Also, don't alphabetise "Icy Lich" as a given + surname.

--------------------------------------------------------------------------------
1be813ee8c | Neil Moore | 2013-02-21 17:49:21 -0500

Remove a number of dead assignments (SLi).
In the case in spl-data.cc, the comment made it sound like the line was
supposed to set min_dist instead of the dead variable dist.  However, we
could only reach this code path if min_dist == dist, so that assignment
wouldn't do anything anyway.

I left a few reported dead assignments that I think make the code more
maintainable.

--------------------------------------------------------------------------------
a9265854a9 | Neil Moore | 2013-02-21 17:21:11 -0500

Fix ENCH_LIFE_TIMER duration (SLi).
Another missing break found by static analysis.

--------------------------------------------------------------------------------
d43d92223e | Neil Moore | 2013-02-21 17:21:10 -0500

Fix incorrect Zot point costs (SLi).
We were failing to discount the first two ice statues and OCSes,
because of a missing break in the switch statement.  Likewise,
we were increasing the cost of those statues according to the
number of dart traps you created (in addition to the number
of statues).

SLi found this by using clang's static analysis to look for
dead assignments.

--------------------------------------------------------------------------------
c07d9bda52 | David Lawrence Ramsey | 2013-02-21 14:36:52 -0600

Add missing #ifdefs for next major version bump.

--------------------------------------------------------------------------------
84ede41e09 | David Lawrence Ramsey | 2013-02-21 14:36:19 -0600

Remove now-obsolete reference to controlled flight.

--------------------------------------------------------------------------------
05240db6f9 | David Lawrence Ramsey | 2013-02-21 14:25:07 -0600

Revert "Remove apparently unused monster flag at the next major version bump."
It's used for resurrecting monsters (phoenixes and shedu).

This reverts commit d609bed3511b78027a384ad0f31119ba0897cd7c.

--------------------------------------------------------------------------------
72f047323f | David Lawrence Ramsey | 2013-02-21 13:58:23 -0600

Don't make morningstars a signature weapon for Edmund, as he's a flail user.

--------------------------------------------------------------------------------
f15012b899 | Steve Melenchuk | 2013-02-21 12:27:12 -0700

Fix tiles compilation error.

--------------------------------------------------------------------------------
debef78133 | Chris Honey | 2013-02-21 12:12:33 -0700

Buff one-handed Maces and Flails.
Spiked flails are being replaced on the power curve with morningstars.
Morningstars have replaced spiked flails wherever they appear in
monster item generation tables. If a monster had a chance for a spiked
flail and morningstar, the chance for a morningstar is now the same as
it was for a spiked flail.

Flails and eveningstars get a 1 point damage increase. Morningstars get
a big boost to 13/-2/150 from 10/-1/150, which makes the best common
one-handed mace actually worth using.

--------------------------------------------------------------------------------
8b84715391 | Neil Moore | 2013-02-21 13:46:57 -0500

Avoid an unused-function warning on OS X (faze).
Also, simplify by merging two equivalent preprocessor branches, and
fix up the formatting.

--------------------------------------------------------------------------------
2536d5ca05 | Steve Melenchuk | 2013-02-21 11:45:15 -0700

An encompass vault: grunt_runaround.

--------------------------------------------------------------------------------
4975cdf967 | DracoOmega | 2013-02-21 03:08:48 -0600

Rename kraken_damage_fineff to deferred_damage_fineff
There was nothing specific to kraken in the code, and there are other
cases where this fineffect might be useful.

--------------------------------------------------------------------------------
f7b5349e03 | David Lawrence Ramsey | 2013-02-21 01:59:32 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
bc93610c82 | David Lawrence Ramsey | 2013-02-21 01:45:02 -0600

Fix indentation.

--------------------------------------------------------------------------------
f9a86ea46c | David Lawrence Ramsey | 2013-02-21 01:37:06 -0600

Add formatting fix.

--------------------------------------------------------------------------------
958b2a24e6 | DracoOmega | 2013-02-21 01:36:17 -0600

Refactor some direct uses of dungeon feature enum ordering
Rather than relying on feat >= DNGN_FLOOR having the same semantics
as 'open space', wrap this in boolean functions (which already largely
exist). This is also more robust if the backend ever changes.

--------------------------------------------------------------------------------
36b8c0b519 | Adam Borowski | 2013-02-21 03:25:33 +0100

Fix properties of partially identified artefacts not counting as known.

--------------------------------------------------------------------------------
d99580cc6d | David Lawrence Ramsey | 2013-02-20 15:07:44 -0600

Allow Fedhas' evolution to turn burning bushes into oklob plants.
There may be a better alternative, but, since they have fewer HD and AC
than ordinary bushes, and allowing Fedhas to provide a choice between
evolving a bush into a burning bush and evolving it into an oklob plant
means adding more complex code, treat them as we treat bushes for now.

--------------------------------------------------------------------------------
98dfcd1727 | David Lawrence Ramsey | 2013-02-20 15:07:38 -0600

Remove M_NO_POLY_TO from burning bushes.
They're used in some vaults outside of ZotDef now.

--------------------------------------------------------------------------------
b680f75773 | David Lawrence Ramsey | 2013-02-20 15:06:53 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
ee7254faa3 | David Lawrence Ramsey | 2013-02-20 14:28:20 -0600

Remove unneeded comment.

--------------------------------------------------------------------------------
0af9fa55fb | David Lawrence Ramsey | 2013-02-20 14:22:35 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
1021c964da | David Lawrence Ramsey | 2013-02-20 13:19:53 -0600

Fix general checks for bush and oklob types to use species when applicable.
This ensures that burning bushes and oklob saplings are handled consistently.

--------------------------------------------------------------------------------
2561d3f261 | David Lawrence Ramsey | 2013-02-20 13:19:08 -0600

Fix check for toadstools to use type, as no other monster has its genus.

--------------------------------------------------------------------------------
e3ad0be8f6 | David Lawrence Ramsey | 2013-02-20 13:07:05 -0600

Fix indentation.

--------------------------------------------------------------------------------
e3af68df9b | David Lawrence Ramsey | 2013-02-20 13:05:42 -0600

Fix check for bushes to use the species, as all bushes have the plant genus.

--------------------------------------------------------------------------------
817d078934 | David Lawrence Ramsey | 2013-02-20 12:54:12 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
0374265643 | Adam Borowski | 2013-02-20 19:43:16 +0100

St's meatsprint.
Issues:
* no tiles
* no descriptions
* bad messages when multiple enemies come into view together
* chunks use base monster names

And annoyances:
* level-ups and skill training interrupt you too often
* you need to pick up the axe by hand (and will surely die if you forget)

--------------------------------------------------------------------------------
628e97ab11 | Adam Borowski | 2013-02-20 19:43:16 +0100

Make meatsprint's Axe of Woe an unrand.
This avoids the error message, and the chance for it to miss or fail to
kill a monster in one blow.

Needs a tile, and perhaps a desc better than a crudely lifted part of
meatsprint's poetry.

I gave it custom combat messages, to avoid special-casing its damage in
melee code; this is not quite a valid reason as to-hit is already special
cased.  It's likely you guys won't like the messages I wrote -- feel free
to trim them down or even completely replace.

--------------------------------------------------------------------------------
830972534f | David Lawrence Ramsey | 2013-02-20 12:37:59 -0600

Mark iron dragons as unbreathing.
It fits with grey draconians (who are iron dragon relatives) and with
their retaining the unbreathing quality when in iron dragon form.

--------------------------------------------------------------------------------
c9b5156bf2 | David Lawrence Ramsey | 2013-02-20 12:03:56 -0600

Comment fixes.

--------------------------------------------------------------------------------
74910a0500 | DracoOmega | 2013-02-20 12:00:59 -0600

Don't make chain lightning attempt to arc to things it can't hit
Similar to how it once interacted with orbs of destruction, casting
chain lightning near a friendly battlesphere could result in it
repeatedly hitting you as it bounced back and forth between you and
the battlesphere, even though the lightning always passes through the
battlesphere itself. Now chain lightning uses a more general check
that will prevent it from arcing to anything it cannot even
theoretically touch.

--------------------------------------------------------------------------------
e515698149 | David Lawrence Ramsey | 2013-02-19 18:34:37 -0600

Make iron grates ground electricity as metal walls do.
The previous inconsistency was mentioned in Mantis 6667.

--------------------------------------------------------------------------------
84c7887f8c | David Lawrence Ramsey | 2013-02-19 18:34:37 -0600

Add formatting fix.

--------------------------------------------------------------------------------
5345604268 | David Lawrence Ramsey | 2013-02-19 18:34:37 -0600

Simplify tree and mangrove handling by using feat_is_tree().

--------------------------------------------------------------------------------
5733cd68f1 | Adam Borowski | 2013-02-20 01:06:06 +0100

Make diamond obelisks fully indestructible.
10000 hp was a trap for newbies who would try to destroy it, and bait
for certain players who feel an urge to prove their point.

--------------------------------------------------------------------------------
ee36f7da7f | David Lawrence Ramsey | 2013-02-19 15:02:12 -0600

Constify.

--------------------------------------------------------------------------------
a5bbc76d73 | David Lawrence Ramsey | 2013-02-19 14:52:34 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
aaa27ea12f | Neil Moore | 2013-02-19 15:33:07 -0500

Mention more weapon moves in item descriptions (galefury).
Axes and short blades, with daggers singled out as "extremely" good for
stabbing.

Maybe the "ok" stabbing weapons (lbl, pokey polearms, clubs) should get
a message, too.  That could make the spear/trident/etc description
rather long, though, since they already get a sentence about reaching.

--------------------------------------------------------------------------------
9455626aa0 | Adam Borowski | 2013-02-19 19:56:58 +0100

Sync manual from the wiki.

--------------------------------------------------------------------------------
bc0f6dbb0f | Chris Campbell | 2013-02-19 18:01:07 +0000

Mention cleaving in the axe skill description

--------------------------------------------------------------------------------
dbbcb74287 | Neil Moore | 2013-02-19 09:09:52 -0500

Give a message when drained to 0 XP or killed by draining.

--------------------------------------------------------------------------------
5f1d211fc5 | Steve Melenchuk | 2013-02-18 20:39:15 -0700

Let Swamp place minivaults on the same chance as almost everywhere else.
...since we have more minivaults for Swamp now.

--------------------------------------------------------------------------------
2fb1a85c78 | Steve Melenchuk | 2013-02-18 20:36:18 -0700

Redistribute greater nagas in grunt_snake_rune_spirals.
This is intended to even out the difficulty curve of the vault and make
fighting through the spirals somewhat more interesting.

The total amount of XP and greater nagas is intended to remain about the
same; considerably fewer guardian serpents are likely to be placed,
however, mostly replaced by naga warriors and nagas.

--------------------------------------------------------------------------------
dce1d7b4cd | elliptic | 2013-02-18 22:29:20 -0500

Change default dump contents to include action_counts.
It provides a lot of interesting information in a relatively small space,
especially when compared with the list of killed monsters.

--------------------------------------------------------------------------------
5f56e36949 | ontoclasm | 2013-02-18 19:49:54 -0600

Lightning spire

--------------------------------------------------------------------------------
de9775e460 | ontoclasm | 2013-02-18 19:19:01 -0600

Training dummy

--------------------------------------------------------------------------------
be95932be2 | ontoclasm | 2013-02-18 19:05:40 -0600

Obelisk and lightning spire tiles

--------------------------------------------------------------------------------
7e2a7a3f47 | Adam Borowski | 2013-02-18 23:39:46 +0100

Drop code for Evaporate outright, it doesn't need to wait for the bump.
Monster spells were never used except as a part of Evaporate's code,
beam enums never live longer than a single call (and thus never get into
save files), so there's no reason for them to linger.

--------------------------------------------------------------------------------
1bc0f1a50e | Steve Melenchuk | 2013-02-18 15:36:42 -0700

Revert wait command interrupt changes.
This is causing slowdowns on long waits and other issues such as much
faster constriction damage.

This reverts commit 884bf952a96fe57df877c69a5d25666a257c04b4.
This reverts commit 07e991f01c8c3ff53b0ad8349cb073f95892dc94.

--------------------------------------------------------------------------------
4453d638cd | ontoclasm | 2013-02-18 16:35:20 -0600

Bush tiles

--------------------------------------------------------------------------------
c8b2bd8702 | ontoclasm | 2013-02-18 16:35:20 -0600

Zombie kraken head edit

--------------------------------------------------------------------------------
c39e477bc7 | ontoclasm | 2013-02-18 16:35:19 -0600

Erolcha and Gastronok tiles

--------------------------------------------------------------------------------
420e9840e9 | David Lawrence Ramsey | 2013-02-18 15:23:15 -0600

Properly add the "not self" flag to all spells targeting others.

--------------------------------------------------------------------------------
7b11d110fc | David Lawrence Ramsey | 2013-02-18 14:58:30 -0600

Comment fixes.

--------------------------------------------------------------------------------
25e146629e | David Lawrence Ramsey | 2013-02-18 14:44:08 -0600

Add brackets.

--------------------------------------------------------------------------------
26d6b5b57b | David Lawrence Ramsey | 2013-02-18 14:38:46 -0600

Comment fix.

--------------------------------------------------------------------------------
649ffe1c24 | David Lawrence Ramsey | 2013-02-18 14:29:22 -0600

Add spacing fix.

--------------------------------------------------------------------------------
257fe81489 | David Lawrence Ramsey | 2013-02-18 14:18:09 -0600

Ignore genus checks for Heal/Haste/Might Other if the caster is an enslaved 
soul.

--------------------------------------------------------------------------------
c19f45915c | David Lawrence Ramsey | 2013-02-18 14:03:13 -0600

Group all always-positive beams together.

--------------------------------------------------------------------------------
0ac71ebb8c | David Lawrence Ramsey | 2013-02-18 14:01:17 -0600

Properly mark might as an always-positive beam type.

--------------------------------------------------------------------------------
28784951db | David Lawrence Ramsey | 2013-02-18 13:18:22 -0600

Don't set is_beam for Haste Other, as it isn't set for Heal Other or Might 
Other.

--------------------------------------------------------------------------------
dbd9acaf62 | David Lawrence Ramsey | 2013-02-18 13:17:44 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
0825c38303 | ontoclasm | 2013-02-18 11:59:47 -0600

Deep troll shaman tile edit

--------------------------------------------------------------------------------
228d820d4e | David Lawrence Ramsey | 2013-02-18 10:55:09 -0600

Mark Heal Other and Haste Other as utility spells.
This is already done for Might Other, and seems to fix some of the
targeting problems with them (although the target described in the
messages is still wrong occasionally).

On a related note, maybe it should be better documented what marking a
spell as a utility spell actually means?

--------------------------------------------------------------------------------
6022688413 | Adam Borowski | 2013-02-18 10:25:04 +0100

Skip unnecessary overwrites during bracecidating.

--------------------------------------------------------------------------------
dbc77522b9 | David Lawrence Ramsey | 2013-02-17 23:14:32 -0600

Remove a lot of dead code left over from the now-gone Evaporate spell.
Also, rename the still-used BEAM_POTION_MEPHITIC entry to BEAM_MEPHITIC.

--------------------------------------------------------------------------------
98ce8c58e3 | Steve Melenchuk | 2013-02-17 21:48:59 -0700

Fix location of Vaults entrance in its branch description.

--------------------------------------------------------------------------------
6c26edc714 | Steve Melenchuk | 2013-02-17 20:25:03 -0700

Fix number of levels in description of Vaults branch.
Thanks to johnnyzero for pointing this out to me.

--------------------------------------------------------------------------------
07e991f01c | Steve Melenchuk | 2013-02-17 19:13:36 -0700

Reassign key defaults of CMD_MOVE_NOWHERE to CMD_WAIT.
This means that s and . have the same behaviour (the new interruptible
wait) by default.

If players want the old wait behaviour, they can add an "interrupt_wait
=" to their configuration file. If they want the 1 aut wait, they can
bind a key to move_nowhere.

--------------------------------------------------------------------------------
884bf952a9 | Steve Melenchuk | 2013-02-17 19:00:57 -0700

Finer interrupt granularity for wait command (#4893).
The wait command now operates by performing up to ten interruptible 1
aut wait delays (still counted as one game turn). They are normally
interrupted by most of the same things as a travel command, with the
major exceptions being seeing or sensing a monster - instead, it is
interrupted by seeing a monster move.

This allows the wait command to be much more useful tactically, as it
will stop waiting at the instant the position of a monster changes
(impacting the tactical situation).

A side effect of this is that the move_nowhere command ('.') waits 1 aut
instead of 10 aut. If this becomes a problem, . could be rebound to the
normal wait command, or a new lower level command could be introduced to
take the place of the current use of the move_nowhere command.

There is a bit of a hack in place to consider 'wait' 1 game turn and
'rest' the same up-to-100 game turns that it currently is (instead of up
to 10 and 1000 respectively). If this becomes problematic, it can easily
be removed.

--------------------------------------------------------------------------------
ab6ac6eaf6 | Chris Campbell | 2013-02-18 01:14:56 +0000

Make Roxanne's blink other close irresistible
No other monster casts the spell - making it irresistible gives her at
least a bit of a chance to cast her other spells too.

--------------------------------------------------------------------------------
42dd1cdaea | Chris Campbell | 2013-02-18 01:14:54 +0000

Remove ant larvae
They were only used in a very few vaults (where they didn't do
anything much).

--------------------------------------------------------------------------------
9399400117 | ontoclasm | 2013-02-17 17:44:13 -0600

Fix tiles compilation

--------------------------------------------------------------------------------
0b2718a76c | ontoclasm | 2013-02-17 17:28:50 -0600

Distinct rock/stone glass tiles

--------------------------------------------------------------------------------
c3dd0fc08a | ontoclasm | 2013-02-17 17:28:49 -0600

Vault guard edit

--------------------------------------------------------------------------------
5bd2b1682e | elliptic | 2013-02-17 18:04:52 -0500

Vehumet spell gifting changes.
Now no L8/9 spells are gifted for the first 12 gifts, and then the final
three spells are gifted at the same time and are all L8/9. This addresses
issues with being "forced" to memorize L8/9 spells when they are quite
uncastable, since the final spells offered never time out. In addition,
this should make the final gift feel more special than it did.

Also, gift timing was tweaked a little and gifts try harder not to
repeat earlier gifts now.

The part of this commit enabling multigifting was partially written by
elliott.

--------------------------------------------------------------------------------
2043ff6393 | Neil Moore | 2013-02-17 17:08:34 -0500

Fix broken Jiyva bonuses for slurping large stacks (#6655).
Jiyva was giving piety for the entire stack, despite only a few of the
objects being eaten.  This meant it was "optimal" to collect arrows,
stones, etc. and pile them into a single huge stack on a difficult
level, giving over 10000 HP worth of healing in chunks of hundreds of
HP at a time.  This was particularly noticeable in Zig Sprint, with
the huge piles of ammo in the starting room.

--------------------------------------------------------------------------------
da72376641 | Neil Moore | 2013-02-17 14:41:22 -0500

Remove Mass Confusion from AM book, chain shift.
Remove Mass Confusion from Debilitation because that book is overful
with the addition of Leda's Liquefaction.

Put MC in Book of Dreams so that it isn't a single-book spell.

Remove Intoxication from Dreams because it's so similar to Mass
Confusion, and appears in more books.

If someone figures out something better to do with Debilitation,
feel free to revert part or all of this commit.

--------------------------------------------------------------------------------
5f3a817a53 | Neil Moore | 2013-02-17 14:23:50 -0500

Restore Vaults:5 material substitution (mumra).
The Lua layout code handles all the other levels, but not V:5, so we were
getting all-rock Vaults:5.

This partially reverts commit 6771512bb755939f6e557acf42217ab6a9a522ce.
This partially reverts commit 670f9d77e54050bf5ea21e3eeca464725adf687d.

--------------------------------------------------------------------------------
06cfd5e257 | Neil Moore | 2013-02-17 14:18:12 -0500

Make Leda's Liquefaction Hexes/Earth, give it to AM.
This was discussed back in August; with the de-tmutification now seemed
like as good a time as any.

The book is kind of packed now, so probably needs to lose one spell.

--------------------------------------------------------------------------------
914881b37b | David Lawrence Ramsey | 2013-02-17 10:42:22 -0600

Fix indentation.

--------------------------------------------------------------------------------
16f718069b | Adam Borowski | 2013-02-17 14:00:59 +0100

Restore old messages and behaviour of battlespheres expiring.

--------------------------------------------------------------------------------
d718302dd8 | Adam Borowski | 2013-02-17 13:37:52 +0100

The bracecider script.

--------------------------------------------------------------------------------
f09a4b33f0 | Adam Borowski | 2013-02-17 13:28:58 +0100

Automated bracecide.

--------------------------------------------------------------------------------
2c9a98c729 | DracoOmega | 2013-02-17 13:21:31 +0100

Make monster battlespheres stay closer to their casters
This uses band follower code, which doesn't enforce as close
proximity as battlespheres do with players, but this is probably
sufficient to simply keep them from wandering halfway across the
level.

--------------------------------------------------------------------------------
5fe5e049ce | DracoOmega | 2013-02-17 13:21:31 +0100

Fix some issues with monster battlesphere targetting

--------------------------------------------------------------------------------
02b9fa4c50 | DracoOmega | 2013-02-17 13:21:31 +0100

Allow battlesphere to properly be miscast

--------------------------------------------------------------------------------
cb04fa2847 | DracoOmega | 2013-02-17 13:21:31 +0100

Properly mark fulminant prisms as objects
Among other things, Okawaru should no longer get very angry at you
for destroying one.

--------------------------------------------------------------------------------
9a4ec19381 | DracoOmega | 2013-02-17 13:21:30 +0100

Tag DUR_BATTLESPHERE for removal at next major version

--------------------------------------------------------------------------------
e67fae7c0f | DracoOmega | 2013-02-17 13:21:30 +0100

Refactor battlesphere<->caster linkage
Rather than using an enchantment to handle the player linkage, use
bidirectional props for both players and monsters and allow the
battlesphere to time out on its own, via ENCH_FAKE_ABJURATION

This should hopefully be a lot more robust than the old method.

--------------------------------------------------------------------------------
14445a6abf | Steve Melenchuk | 2013-02-16 20:54:59 -0700

Whitespace fixes.

--------------------------------------------------------------------------------
f5249656dc | Pete Hurst | 2013-02-16 20:53:56 -0700

Some vaults vaults

--------------------------------------------------------------------------------
c8febb1209 | Pete Hurst | 2013-02-16 20:53:56 -0700

Randomly place stairs in 80% of floor vault rooms. Probability can be tweaked 
in v_layouts.lua (stair_chance). This fairly well guarantees that stairs will 
never place in the corridors, even if vaults don't have them. It should overall 
reduce the likelihood of stairs being placed in chokepoints since vault stairs 
are actually more likely to have chokepoints!

--------------------------------------------------------------------------------
4d57a08ff6 | Pete Hurst | 2013-02-16 20:53:56 -0700

Tweak some vaults to solve placement problems

--------------------------------------------------------------------------------
50f0ea988e | Steve Melenchuk | 2013-02-16 20:45:50 -0700

One more tweak to hangedman_<long name> per request of author.

--------------------------------------------------------------------------------
62186145de | Steve Melenchuk | 2013-02-16 20:39:56 -0700

A tweak to the just-added vault missed on the first pass.

--------------------------------------------------------------------------------
24efdcf99b | Steve Melenchuk | 2013-02-16 20:38:52 -0700

hangedman_crystal_crosses_colossus (#6647).

--------------------------------------------------------------------------------
cdcde9a343 | Pete Hurst | 2013-02-16 20:27:16 -0700

Slightly modify a couple of vaults for safety purposes

--------------------------------------------------------------------------------
670f9d77e5 | Pete Hurst | 2013-02-16 20:27:16 -0700

Removed a duff comment

--------------------------------------------------------------------------------
6771512bb7 | Pete Hurst | 2013-02-16 20:27:16 -0700

Remove now-unused case in _fixup_walls

--------------------------------------------------------------------------------
30033f29ea | Pete Hurst | 2013-02-16 20:27:16 -0700

Vary V wall weights by depth

--------------------------------------------------------------------------------
6ac64fc665 | Pete Hurst | 2013-02-16 20:27:15 -0700

Fix Vaults layout using rock wall instead of the wall type picked for the layout

--------------------------------------------------------------------------------
9abe3f94dc | Pete Hurst | 2013-02-16 20:27:15 -0700

 Hyper - refactor, tidy, implement a couple TODOs

--------------------------------------------------------------------------------
0859b79ed9 | Pete Hurst | 2013-02-16 20:27:15 -0700

Relax check that meant rooms couldn't be close enough to the border

--------------------------------------------------------------------------------
bd16936d0b | Pete Hurst | 2013-02-16 20:27:15 -0700

Tweak code vault settings to make junction vault look strange less often

--------------------------------------------------------------------------------
91561ae3a0 | Pete Hurst | 2013-02-16 20:27:15 -0700

Properly fix adjacent open rooms and disconnections

--------------------------------------------------------------------------------
130cdfe672 | Pete Hurst | 2013-02-16 20:27:15 -0700

Fix out of bounds error

--------------------------------------------------------------------------------
218f6d920f | Pete Hurst | 2013-02-16 20:27:15 -0700

Tweak code room frequencies; improve omnigrid; clean up / fix placement more.

--------------------------------------------------------------------------------
bf84feb857 | Pete Hurst | 2013-02-16 20:27:15 -0700

Actually fix the layout (and disable debug flag)

--------------------------------------------------------------------------------
a2e6731498 | Pete Hurst | 2013-02-16 20:27:14 -0700

Refactored and cleaned up code to fix bug. Didn't fix it but the code is 
improved (fixed potential bugs anyway). Tweaked a couple of vaults that caused 
VETOs.

--------------------------------------------------------------------------------
57c76e25e9 | Pete Hurst | 2013-02-16 20:27:14 -0700

Fix a bug preventing recognising some connectable walls.

--------------------------------------------------------------------------------
c6b34721ed | Pete Hurst | 2013-02-16 20:27:14 -0700

Edit a slightly odd wall in a vault

--------------------------------------------------------------------------------
341bf52f36 | Pete Hurst | 2013-02-16 20:27:14 -0700

Adding various methods to improve and make new layouts. Callbackify wall 
decorators. Start restructuring some methods into namespaces to clear up global 
namespace.

--------------------------------------------------------------------------------
23e4131701 | Pete Hurst | 2013-02-16 20:27:14 -0700

Disable debug prints

--------------------------------------------------------------------------------
dce5add535 | Pete Hurst | 2013-02-16 20:27:14 -0700

Mostly finish layout. Multiple doors and windows now get carved, in incidental 
walls too. Still a problem with inverted normals on some open rooms.

--------------------------------------------------------------------------------
d99ad1f131 | Pete Hurst | 2013-02-16 20:27:14 -0700

Mostly get layout working

--------------------------------------------------------------------------------
5255a7fa71 | Pete Hurst | 2013-02-16 20:27:14 -0700

Room analysis more fully implemented. Rooms still not placing.

--------------------------------------------------------------------------------
12fe98179f | Pete Hurst | 2013-02-16 20:27:14 -0700

Implement code rooms. There is an occasional problem with how rooms place.

--------------------------------------------------------------------------------
fabc30f252 | Adam Borowski | 2013-02-17 01:09:02 +0100

Unremove rock trolls.
Except for generation, that is.  The tile uses iron trolls.

You can't remove a monster that could generate within save compat, you may
at most schedule it for removal after the next save bump, or deal with it
in some other way -- like converting enums, which would be error-prone
thanks to so many places monster type can get into.

--------------------------------------------------------------------------------
07ab5522b5 | Neil Moore | 2013-02-16 15:46:22 -0500

Prefix wands/jewellery as "known" again.
It was being marked "known" only if the item had ISFLAG_KNOW_TYPE,
but having identified the item class should suffice as well.  Of
course, both are overridden by "identified".

--------------------------------------------------------------------------------
f4eaa46384 | Will Rogers | 2013-02-16 15:33:25 -0500

Fix 'identified' name prefix logic.
Use the 'fully_identified' function instead of custom logic. This fixes
items with no identification flags (e.g. food, missiles) getting
prefixed with 'unidentified' and possibly other inconsistencies.

--------------------------------------------------------------------------------
602483c40a | Adam Borowski | 2013-02-16 11:34:40 +0100

Give wisp form fail-proof conservation.
With your gear ethereal, bad ugly monsters can't touch it.

--------------------------------------------------------------------------------
4beca49326 | Adam Borowski | 2013-02-16 11:34:05 +0100

Manual sync from the wiki.

--------------------------------------------------------------------------------
301d917d5b | Adam Borowski | 2013-02-16 10:47:08 +0100

A typo (syraine).

--------------------------------------------------------------------------------
ad22f2c098 | Adam Borowski | 2013-02-16 00:34:11 +0100

Mark win64 builds as -win64- rather than -win32-.
Not that there's much point in them...

--------------------------------------------------------------------------------
f8d36ccedb | Adam Borowski | 2013-02-16 00:34:11 +0100

Document (describe) both flavours of debugging chocolate.

--------------------------------------------------------------------------------
e9eaefb3ec | Adam Borowski | 2013-02-16 00:34:09 +0100

db_lint: don't warn about the animated tree dummy.
It's not meant to be a monster, it's there merely so you can define its
appearance.

--------------------------------------------------------------------------------
52a44faace | Adam Borowski | 2013-02-16 00:34:09 +0100

Purge the desc link for lich demonologists.

--------------------------------------------------------------------------------
19dc60cbfc | Adam Borowski | 2013-02-16 00:34:09 +0100

Fix a couple of cases that could remove Slow by Haste.

--------------------------------------------------------------------------------
0ff3a515e4 | ontoclasm | 2013-02-15 16:07:05 -0600

Fix foo-mail tiles.

--------------------------------------------------------------------------------
2544b04dc3 | ontoclasm | 2013-02-15 14:06:21 -0600

Make some racial weapons less racial-looking

--------------------------------------------------------------------------------
bca16fe209 | ontoclasm | 2013-02-15 13:30:13 -0600

Dragon hide tiles

--------------------------------------------------------------------------------
8861962880 | ontoclasm | 2013-02-15 12:31:30 -0600

Randart tiles (roctavian, 6577)

--------------------------------------------------------------------------------
d240cfd35e | ontoclasm | 2013-02-15 12:01:39 -0600

Slime creatures (roctavian, 6638)

--------------------------------------------------------------------------------
18573b12f0 | ontoclasm | 2013-02-15 12:01:38 -0600

Treeform tile.

--------------------------------------------------------------------------------
956b44f082 | Brendan Hickey | 2013-02-14 22:26:38 -0800

Remove Abyss Demonologist Exit

--------------------------------------------------------------------------------
3ccdfef8b3 | Steve Melenchuk | 2013-02-14 21:00:59 -0700

Remove undead electric eels from vaults so game starts properly.

--------------------------------------------------------------------------------
0a987ac683 | Steve Melenchuk | 2013-02-14 20:53:45 -0700

Really reduce monster LRD damage, to be consistent with targetter.

--------------------------------------------------------------------------------
68c53d4ef0 | Neil Moore | 2013-02-14 19:10:18 -0500

Generalize the Zin transformed-player fix.
Since the logic was already in _transformed_player_can_join_god(),
just call out to that.  Nothing else is affected currently, because
the more general rules in player_can_join_god() already reject
things like lichform TSO worshippers.

--------------------------------------------------------------------------------
805313b514 | Chris Campbell | 2013-02-14 23:50:47 +0000

Make electric eels Z_NOZOMBIE
Since they have no attacks.

--------------------------------------------------------------------------------
52fcfc1eea | Chris Campbell | 2013-02-14 23:50:46 +0000

Fix Zin allowing transformed players to convert

--------------------------------------------------------------------------------
3327b90c9d | Chris Campbell | 2013-02-14 23:50:45 +0000

Give the same Trog piety for all burnt books
Not reading them wasn't a meaningful conduct, and most Trog worshippers
would only ever identify a spellbook by accident anyway.

--------------------------------------------------------------------------------
f87b0e4813 | Chris Campbell | 2013-02-14 23:50:44 +0000

Remove a mimic vault

--------------------------------------------------------------------------------
8afd272e87 | Adam Borowski | 2013-02-15 00:43:49 +0100

Ghostify any axed monsters.
I picked MONS_GHOST because:
* it has a tile, unlike most genus-only stuff
* flies (ie, works over lava; only rock worms would have issues)
* is trivially easy (D:1 removals)
* has a fitting name

--------------------------------------------------------------------------------
56341838a9 | David Lawrence Ramsey | 2013-02-14 11:02:17 -0600

Comment fix.

--------------------------------------------------------------------------------
4c0ab014cc | Adam Borowski | 2013-02-14 16:59:06 +0100

Ignore missing battlespheres when trying to recast.
There's apparently just too many cases where they can be removed without a
warning.

--------------------------------------------------------------------------------
6cb7b739bc | Adam Borowski | 2013-02-14 12:23:55 +0100

Fix battlespheres crashing upon returning from an abyss transit.
They now go away when shifted off.

--------------------------------------------------------------------------------
2c5b8ef715 | Adam Borowski | 2013-02-14 12:13:48 +0100

Really comment out a way too spammy message.
It's too spammy during regular debugging, and inventing a category just for
it would be overkill.  bh knows how useful this message can be -- comments?

--------------------------------------------------------------------------------
31b00cb304 | Steve Melenchuk | 2013-02-13 22:37:21 -0700

Restore bloodless channeling for Vampires.
This logic was broken during the bad_forms merge.

--------------------------------------------------------------------------------
6774e9a968 | ontoclasm | 2013-02-13 23:10:32 -0600

Player doll weapon tiles (roctavian, 6611)

--------------------------------------------------------------------------------
486255949f | Steve Melenchuk | 2013-02-13 20:00:24 -0700

Cut descriptions of now-axed monsters.

--------------------------------------------------------------------------------
cc6916eaca | Steve Melenchuk | 2013-02-13 19:58:39 -0700

Chop down wood golems.
This is the first step in removing a large number of overly similar
and not very interesting monsters.

--------------------------------------------------------------------------------
6ab16d9967 | ontoclasm | 2013-02-13 20:52:10 -0600

Death and brown ooze tiles (roctavian, 6638)

--------------------------------------------------------------------------------
ea06430cd5 | Steve Melenchuk | 2013-02-13 19:40:07 -0700

Axe rock trolls.
They were insufficiently distinguished from their brethren, particularly
the single deep trolls which replace them.

This also replaces randomly generated rock trolls with single deep trolls.
Deep troll bands are now generated by specifying one of the
professionals, which come with bands; thus a deep troll band is going to
have at least one professional.

--------------------------------------------------------------------------------
145d30818b | Steve Melenchuk | 2013-02-13 19:40:07 -0700

Deep troll earth mages and shamans.
In deep troll bands, one in three deep trolls will be assigned one of
those classes randomly.

Shamans haste/might others.

Earth mages use LRD and dig.

The new monsters come with tiles (by ontoclasm) and descriptions.

The berserker is going unused for now, as it is not as interesting
compared to the other designs.

--------------------------------------------------------------------------------
25d79e3451 | Steve Melenchuk | 2013-02-13 19:40:07 -0700

Add message for priest castings of Might Other.

--------------------------------------------------------------------------------
0999d5158c | DracoOmega | 2013-02-13 19:40:07 -0700

Add 'Might Other' spell
Exactly what it says on the tin: this spell applies the might
effect to an allied target, beam-style.

--------------------------------------------------------------------------------
ac61ca7d23 | Adam Borowski | 2013-02-14 02:50:14 +0100

A desc for battlespheres.
It matters especially for monster-cast battlespheres, as in this case the
player has no access to the spell's description.

--------------------------------------------------------------------------------
db051e7c87 | Adam Borowski | 2013-02-14 02:36:01 +0100

db_lint: don't warn about new genus-only monsters.

--------------------------------------------------------------------------------
3e1be30500 | Adam Borowski | 2013-02-14 02:19:55 +0100

Convert Polymorph to Malmutate for monsters in old saves.

--------------------------------------------------------------------------------
5290d32920 | Chris Campbell | 2013-02-13 23:21:23 +0000

Add a message when aborting transformation due to an uncancellable form

--------------------------------------------------------------------------------
0d98425c4e | Adam Borowski | 2013-02-13 20:24:43 +0100

Give Fedhas trees no rF-.  WOOD FOR WOOD GOD!!!

--------------------------------------------------------------------------------
5991d3ba6d | Adam Borowski | 2013-02-13 20:24:42 +0100

Fix some beams asking twice when aimed at self.

--------------------------------------------------------------------------------
8350a08799 | David Lawrence Ramsey | 2013-02-13 13:15:27 -0600

Use mons_should_fire() for the heal other/haste other tracer.
There still seem to be bugs somewhere, as even without this change, the
target printed in the priest casting message can be wrong, and with this
change, Heal Other can still be cast on the player by a soul-enslaved
gnoll shaman.

--------------------------------------------------------------------------------
20ee497006 | David Lawrence Ramsey | 2013-02-13 13:14:43 -0600

Comment fixes.

--------------------------------------------------------------------------------
a6ff2068e2 | Chris Campbell | 2013-02-13 19:08:52 +0000

Update deck descriptions

--------------------------------------------------------------------------------
19f31f51d9 | David Lawrence Ramsey | 2013-02-13 12:05:36 -0600

Add formatting fix.

--------------------------------------------------------------------------------
69feb1883c | David Lawrence Ramsey | 2013-02-13 12:04:56 -0600

Fix inconsistencies in bolt struct references.

--------------------------------------------------------------------------------
a91b873918 | David Lawrence Ramsey | 2013-02-13 11:57:05 -0600

Remove the resurrection spell at the next major version bump.

--------------------------------------------------------------------------------
4ad9eaaf57 | David Lawrence Ramsey | 2013-02-13 11:56:38 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
a7f467a293 | Adam Borowski | 2013-02-13 18:19:02 +0100

Merge branch 'bad_forms'
It's not 100% ready, but should be functional enough, and 0.12 coming soon,
let's test it at least a bit.  The numbers are probably totally out of
whack, but that's what trunk players are for.  At least the code should be
sound.

This does include the jelly form that I'm strongly inclined to remove, yet
it's easy to axe without affecting save compat (as no player can be in that
form currently).  All the code can be found by grepping for TRAN_JELLY,
except for one commit that's not bad to have (some refactoring of eating).
Generally, the jelly suffers from being abusable for nutrition, would need
some code for item [non-]use, and would make the player screwed as it can
neither take/deal damage (tree), avoid it (wisp) or run away (wisp, pig,
bat, porcupine).

--------------------------------------------------------------------------------
24951ff0ef | Neil Moore | 2013-02-13 11:45:16 -0500

Xom reads Vonnegut.

--------------------------------------------------------------------------------
3f2662be09 | Neil Moore | 2013-02-13 11:40:48 -0500

Correct a troutly article (ChrisOelmueller).

--------------------------------------------------------------------------------
a570153924 | Adam Borowski | 2013-02-13 17:32:10 +0100

Rename a couple more zaps I missed to their spell counterparts.
The rest are:
* breath effects (inconsistent with monsters)
* wand of heal wounds
* sandblast (three different zaps)
* enslave soul
* orb of electricity

--------------------------------------------------------------------------------
b8b54f50fc | Adam Borowski | 2013-02-13 17:32:10 +0100

Make the article on trouts more readable.
It takes more space this way, but splitting words and meaningful prefix
spaces are not nice.

--------------------------------------------------------------------------------
c670a64a12 | David Ploog | 2013-02-13 15:21:35 +0100

More xomly trouts. (kilobyte)
My handling of a/an is crude -- is there a better way?

--------------------------------------------------------------------------------
8a57380eb4 | ontoclasm | 2013-02-13 02:15:42 -0600

Randart tiles (roctavian, 6604)

--------------------------------------------------------------------------------
8f76224d61 | ontoclasm | 2013-02-13 02:15:41 -0600

Chunk brand icons (roctavian, 6612)

--------------------------------------------------------------------------------
ec84420355 | David Lawrence Ramsey | 2013-02-12 15:42:53 -0600

Add formatting fix.

--------------------------------------------------------------------------------
0af2ee8ef4 | David Lawrence Ramsey | 2013-02-12 15:42:07 -0600

Constify.

--------------------------------------------------------------------------------
c8eb499761 | David Lawrence Ramsey | 2013-02-12 13:26:15 -0600

Fix punctuation.

--------------------------------------------------------------------------------
d6b3f29043 | DracoOmega | 2013-02-12 11:45:24 -0600

Fix logic errors in target-picking for heal/haste other
Due to order of operations issues, some checks for valid targets for
these spells were being ignored entirely, which meant that monsters
would happily target creatures hostile to them, or creatures that
could not benefit from these effects (because they were fully healed
or already buffed). And as a side-effect of this, monsters tended to
repeatedly target the same creature for these spells, ignoring their
many other allies that lacked haste. This fixes those issues.

Additionally, this adds tracers for these spells so that monsters
won't accidentally cast them on the player, if you're standing in the
way of their intended target.

--------------------------------------------------------------------------------
0c02d25b7e | Neil Moore | 2013-02-11 12:02:40 -0500

Properly restore old player-only battlespheres.

--------------------------------------------------------------------------------
3c97e80477 | ontoclasm | 2013-02-10 20:53:25 -0600

New floor tiles for the vestibule.

--------------------------------------------------------------------------------
06318ed424 | Jason Van | 2013-02-10 21:12:51 -0500

Buff, double Blade reward; randomize layout; control spawns
Place two weapons with more interesting brands and no vorpal branding,
place stairs roughly near the center and randomize walls a bit,
explicitly control and thus weaken spawns to be less dangerous in number.
While lots of other changes can be done to Blade (including removing it)
for now this should make the branch a bit better and more rewarding.

--------------------------------------------------------------------------------
49c2f50a47 | blackcustard | 2013-02-10 19:41:21 -0500

Fix very strange occurances when adjusting items.
When picking up a previously dropped item, correctly update its inventory
slot. Otherwise we end up with an internal inconsistency, where the item's
position in you.inv and the value of item.link doesn't match up with the
value of item.slot, leading to bad behaviour when we try to adjust.

--------------------------------------------------------------------------------
a07b571a73 | Chris Oelmueller | 2013-02-10 19:21:43 -0500

Retire * and / keys for cycling stashes on level map
Functionality of * continues to be provided by I, backwards cycling now
happens through O.

This change in particular enables fake Ctrl and Shift keypresses which
is especially useful when trying to forget the level map on webtiles
(browsers usually intercept Ctrl-F).

--------------------------------------------------------------------------------
0cd1f8c9d9 | Neil Moore | 2013-02-10 19:13:01 -0500

Simplify (and fix formatting).

--------------------------------------------------------------------------------
00a867da7e | DracoOmega | 2013-02-10 19:13:00 -0500

Fix some potential monster battlesphere crashes
Mid was used in several places where mindex was expected, which could
cause asserts once monsters with mids above 700 got involved.

--------------------------------------------------------------------------------
9aa846c4b4 | ontoclasm | 2013-02-10 16:59:02 -0600

Desaturate pebble and Zot walls slightly.

--------------------------------------------------------------------------------
9c3aa101f4 | ontoclasm | 2013-02-10 16:37:27 -0600

Alter some wall/floor recolors.
The biggest changes are to magenta walls, which should hopefully
look "purple" instead of "laser pink" now.

--------------------------------------------------------------------------------
93a004a9f4 | Neil Moore | 2013-02-10 13:24:43 -0500

Remove a duplicate changelog entry (DracoOmega).

--------------------------------------------------------------------------------
d22cbe5a67 | Neil Moore | 2013-02-10 13:15:58 -0500

Update changelog to 0.12-a0-2137-gc3de154.

--------------------------------------------------------------------------------
c3de154142 | Neil Moore | 2013-02-10 13:00:56 -0500

Fix description of Spatial Maelstrom in changelog.

--------------------------------------------------------------------------------
8102ebcc05 | Neil Moore | 2013-02-10 12:59:51 -0500

Remove a redundant check.

--------------------------------------------------------------------------------
2f839c00d2 | Neil Moore | 2013-02-10 12:50:34 -0500

Make the frog pond a "large" Lair ending (HangedMan).
It has a lot of monsters (which easily wander out of the vault), and
more loot than many of the large endings.

--------------------------------------------------------------------------------
bca7d87cf1 | DracoOmega | 2013-02-10 12:36:48 -0500

Only let battlespheres ignore beams from co-aligned sources
Now that there is the possibility of hostile battlespheres, it should
be possible for the player to actually attack them with ranged weaponry
(there isn't a lot of difference between a thrown spear and a thrust one,
after all).

The player can still fire through their own battlesphere as previously.

--------------------------------------------------------------------------------
3859c73824 | DracoOmega | 2013-02-10 12:36:48 -0500

Actually prevent your battlesphere from turning hostile if you melee it
It turns out the previous fix didn't actually fix this completely.

--------------------------------------------------------------------------------
636092c945 | DracoOmega | 2013-02-10 12:36:48 -0500

Veto chaos cloning of battlespheres
Several assumptions of the spell rely on there never being more than
one battlesphere belonging to a single actor. If a battlesphere became
cloned, the expiry of the effect would only remove the first one, and
this would cause a crash when you tried to recast.

--------------------------------------------------------------------------------
cdabb31855 | ontoclasm | 2013-02-10 02:06:13 -0600

Umbra tiles

--------------------------------------------------------------------------------
6ed070bb45 | Jason Van | 2013-02-09 17:05:48 -0800

Abyss.des clean-up
Most notably some author's edits on a few of HangedMan's vaults;
use some lua to detect Abyss:$ and not place abyssal stairs (and thus nothing),
but instead a generic floor item;
weight abyss exits slightly more than abyssal stairs in abyss exit vaults,
remove a lot of allow_dup potentially unnecessarily repeating vaults
(since there are a pretty large amount of vaults possible for runes/exits,
although just in case the more generic/restrained of either still repeat);
make a few console colour-changing vaults change tiles as well;
and leave in some comments for readers.

Signed-off-by: Brendan Hickey <brendan@bhickey.net>

--------------------------------------------------------------------------------
bd46608081 | David Lawrence Ramsey | 2013-02-09 13:33:11 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
f2985a70f6 | David Lawrence Ramsey | 2013-02-09 13:31:51 -0600

Constify.

--------------------------------------------------------------------------------
b6146b952f | Neil Moore | 2013-02-09 14:26:01 -0500

Remove obsolete handedness info from trident description (#6620).

--------------------------------------------------------------------------------
2e8dc68501 | Steve Melenchuk | 2013-02-09 11:30:59 -0700

Get Battlesphere castable by monsters.
Right now, the extent of this is player ghosts, but it should make
fighting conjurer ghosts just a shade more interesting.

Currently battlespheres cast by monsters don't time out by elapsed time
(they still disappear due to expending charge). This could probably be
done in a few ways if necessary (a monster enchantment similar to the
player's duration setting, or using something to ENCH_SHORT_LIVED or
ENCH_SLOWLY_DYING on the battlesphere itself). This may not be necessary
(xref: monster IOOD not dissipating except in specific cases), besides
which it would be good to have any decay consistent between the monster
and player cases.

--------------------------------------------------------------------------------
17e404e6b8 | elliptic | 2013-02-09 10:22:23 -0500

Rename arcane familiar to battlesphere.
The word "familiar" suggests a summon rather than a magical construct; this
spell is much more like Conjure Ball Lightning than Call Canine Familiar.

Since the suggestion "battlesphere" has met with great approval (or at
least nobody has come up with better), let's use that.

--------------------------------------------------------------------------------
adbe6da161 | Florian Diebold | 2013-02-09 11:34:10 +0100

Fix the haste icon in Webtiles.

--------------------------------------------------------------------------------
00d1c3b051 | Florian Diebold | 2013-02-09 11:31:35 +0100

Re-add the #if TAG_MAJOR_VERSION == 34 around MONS_ARACHNOID (DracoOmega).

--------------------------------------------------------------------------------
ead9bbd0de | ontoclasm | 2013-02-09 04:00:09 -0600

Haste status icon.

--------------------------------------------------------------------------------
64d5e96711 | Steve Melenchuk | 2013-02-08 21:22:25 -0700

Fix logic error with layout_loops generating too many metal/stone levels.

--------------------------------------------------------------------------------
d06a791410 | Steve Melenchuk | 2013-02-08 20:43:57 -0700

Minor adjustment to the alternate Shoals ending requested by its author.

--------------------------------------------------------------------------------
b23fc3c53f | David Lawrence Ramsey | 2013-02-08 17:14:12 -0600

Remove the arachnoid dummy monster.
There's no way to make a monster using it zombifiable without making the
arachnoid monster itself zombifiable.

This reverts most of commit b4b189bfd0645a11f2c25c6fb702732516f5bb33.

--------------------------------------------------------------------------------
07b1f610ce | David Lawrence Ramsey | 2013-02-08 17:09:43 -0600

Properly display monsters with no separate species as "[monster] spectre".
This avoids the broken display of "spectral ,", and is consistent with
another usage in kills.cc.

--------------------------------------------------------------------------------
2062d99ee7 | David Lawrence Ramsey | 2013-02-08 16:13:30 -0600

Properly give the Enchantress Z_NOZOMBIE.

--------------------------------------------------------------------------------
d15d4da8d4 | ontoclasm | 2013-02-08 12:29:21 -0600

Deep troll class tiles (in UNUSED for now)

--------------------------------------------------------------------------------
2b3e906f12 | Chris Campbell | 2013-02-08 18:03:56 +0000

Further Ziggurat adjustments
Minor rarity tweaks, make extra 1s/2s more common in the hells,
remove "chaos" theme for now (it feels more messy than chaotic).

--------------------------------------------------------------------------------
fb17d7a461 | Chris Campbell | 2013-02-08 18:03:55 +0000

Give some genus dummy monsters Z_NOZOMBIE
Specifically giant lizards, drakes and bears.

--------------------------------------------------------------------------------
5b20fdbfe6 | Chris Campbell | 2013-02-08 18:03:54 +0000

Remove the earth ziggurat theme
Breaks the elemental symmetry, but there's just nothing interesting
about the theme.

--------------------------------------------------------------------------------
fd9c0071f2 | Jason Van | 2013-02-08 18:03:54 +0000

Boring Ziggurat theme interest infusion, floor management
The main idea is to make the weaker or more boring, indistinguishable Zig floors
more distinct and interesting without necessarily making them more lethal.
There are few new really lethal levels reached in the changed floors,
but it should be much less plausible to e.g. solely autofight through each floor
and variability still allows hope for weaker floors.

There may be some concerns of lowering the random nature of zig floors
through explicitly defining more floor contents. This is a side-effect
of making more zig floors less boring, which I consider worth it,
and to avoid becoming too much like the newer, precise and nasty sprints,
the majority of the monsters for each changed floor are still
the corresponding place:Branch:$. Ziggurats have an advantage over both
in being able to anticipate regular crawl power curves, and should use
their vast immediate numbers in ways the other two can't.

Note that, having played many ziggurats myself and having tested these changes,
I'd still prefer changing the structure of a given floor to off-center starts
and put monsters/loot/stairs over the edge instead; current floor set-ups
can be samey and promotive of conjurations because of the groupings,
and the nastiness of the open layout could even place less monsters for balance.
Changing ziggurats as such is beyond the scope of this patch.

To quickly summarize the patch contents, all Ziggurat theme changes:
Buff Snake, Lair, Crypt, Shoals, Hells, Earth to be more "interesting".
Make Spider less annoying, Air and Earth more varied.
Cut Dwarf and Forest, add Chaos (rare) and Swamp.
Make Lair rune themes more common, Abyss less common.

--------------------------------------------------------------------------------
094406789b | David Lawrence Ramsey | 2013-02-08 09:41:30 -0600

Also give giant lizard types correct zombie tiles.

--------------------------------------------------------------------------------
b7a9a3a6a0 | Florian Diebold | 2013-02-08 12:47:32 +0100

Fix potions of decay having the water icon (roctavian).

--------------------------------------------------------------------------------
b24ceccb60 | Eino Keskitalo | 2013-02-08 13:43:47 +0200

Move auto_drop_chunks to the correct section in init.txt.

--------------------------------------------------------------------------------
dc21da3f8f | Eino Keskitalo | 2013-02-08 13:39:10 +0200

Continue moving tutorial lesson 4 messages into the database.

--------------------------------------------------------------------------------
c557f1f28c | ontoclasm | 2013-02-07 23:56:01 -0600

Give drakes correct zombie tiles.

--------------------------------------------------------------------------------
411677739c | David Lawrence Ramsey | 2013-02-07 18:13:12 -0600

Fix typo.

--------------------------------------------------------------------------------
6e5a3a5aca | Raphael Langella | 2013-02-08 00:47:03 +0100

Transifex: rewrap entries and some other minor fixes.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
aba0110207 | Steve Melenchuk | 2013-02-07 14:59:11 -0700

Exception: Geryon can pick up the horn of Geryon!
Without this, he doesn't get generated with the Horn.

--------------------------------------------------------------------------------
57fdae2382 | David Lawrence Ramsey | 2013-02-07 15:51:07 -0600

Fix Mantis 6609: Prevent monsters from picking up the horn of Geryon.

--------------------------------------------------------------------------------
b9c1e55a1e | Chris Campbell | 2013-02-07 19:12:42 +0000

Improve auto-ID message

--------------------------------------------------------------------------------
f15376d1c5 | Chris Campbell | 2013-02-07 18:58:25 +0000

Reword a welcome message

--------------------------------------------------------------------------------
08a5193529 | Steve Melenchuk | 2013-02-07 10:55:54 -0700

Two Swamp endings (one modified from #6517); tweaks to other Swamp vaults.
The modifications to Led's vault and the tweaks to other vaults are
mainly to avoid "teleport closets" (single tiles of shallow water
surrounded by deep water that the player can't teleport into).

This also introduces another swamp ending of my own design, similar in
terms of monster content to the basic Swamp endings but with a different
layout.

--------------------------------------------------------------------------------
a9943ebf43 | Raphael Langella | 2013-02-07 17:20:35 +0100

Fix the formatting of the tutorial exit screens and give them :nowrap

--------------------------------------------------------------------------------
e9ee9c3ea7 | Raphael Langella | 2013-02-07 17:20:21 +0100

Add support for a :nowrap tag at the beginning of descriptions.
Instruct the game that the entry doesn't need to be unwrapped, and the
(upcoming) new transifex interface to not wrap it.
For some entries, like in tutorial, wrapping actually impair readability and
can make it hard or impossible to achieve proper formatting.

More tags could be added to give meta information on entries which could help
translations. I'm thinking of stuff like :gender or :plural. They could take a
value too. They'd need to be parsed earlier though (db loading?) and stored
somewhere.

--------------------------------------------------------------------------------
f3fda796ab | Steve Melenchuk | 2013-02-06 22:55:51 -0700

Fix typo in reworked Xom death messages.
Namely, the lack of a space.

--------------------------------------------------------------------------------
9d02ad6994 | Steve Melenchuk | 2013-02-06 22:30:30 -0700

More HangedMan vaults (#6608).

--------------------------------------------------------------------------------
78d635779b | Steve Melenchuk | 2013-02-06 22:16:51 -0700

Don't let reanimated monsters that could cast Dig do so as zombies.
RIP secret tech of reanimating Jorgrun and having him dig for you.

--------------------------------------------------------------------------------
1b75dd998e | Steve Melenchuk | 2013-02-06 22:09:09 -0700

Only let layout_loops_* use non-rock walls in D and Lair.
This is consistent with layout_roguey's choice of branches for the same
feature.

--------------------------------------------------------------------------------
722710e50d | Neil Moore | 2013-02-06 17:09:47 -0500

Clarify what monster_list_colour affects.

--------------------------------------------------------------------------------
eed1c54fd9 | Neil Moore | 2013-02-06 15:35:09 -0500

New option monster_list_colour.
Changes the colours used in the monster list.  Usage is:
  monster_list_colour += friendly:lightgreen
  monster_list_colour -= trivial

The latter currently has the same behaviour as += trivial:lightgrey,
but is stored differently and could allow different behaviour in the
future.

Keys are: friendly, neutral, good_neutral, strict_neutral, trivial,
easy, tough, and nasty.

Also, remove a defunct option from the docs.

--------------------------------------------------------------------------------
0f3ca609f9 | Chris Campbell | 2013-02-06 19:49:46 +0000

Increase the XP requirements for temporary mutation expiry

--------------------------------------------------------------------------------
3316b4d738 | Chris Campbell | 2013-02-06 19:48:00 +0000

Reduce the duration of sickness from ancient zymes

--------------------------------------------------------------------------------
be59592fee | Chris Campbell | 2013-02-06 19:33:34 +0000

Reduce monster LRD power
HD 15 monsters shouldn't be dealing more damage than Cerebov.

--------------------------------------------------------------------------------
13ef564090 | David Lawrence Ramsey | 2013-02-05 18:22:39 -0600

Remove unneeded blank lines.

--------------------------------------------------------------------------------
8704243e06 | Reid Barton | 2013-02-05 13:29:31 -0700

New city layout for Dis.
Differs slightly from the original commit in two important ways:

- Not a 100% chance of appearing on every level. Currently it's weighted
  at 50%, with _city and _chaotic_city making up the balance.
- No extra monster generation.

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
d1236e7715 | Steve Melenchuk | 2013-02-05 13:15:21 -0700

Vault batch from Lightli (#6524).
I've adjusted a large number of these vaults from their original form;
see Mantis issue for full detail.

--------------------------------------------------------------------------------
6d1da6e53f | Steve Melenchuk | 2013-02-05 12:33:08 -0700

Reweight a couple of vaults empty room vaults.
Specifically, the sets nicolae_vaults_diagonal_hallway_* and
nicolae_vaults_rhombus_* now have total weight 10 amongst all their
sizes.

--------------------------------------------------------------------------------
70f9578a9c | Guy Halford-Thompson | 2013-02-05 12:26:09 -0700

Four entry vaults and a feature vault from mrwooster (#6412).
Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
1f824cca1a | Steve Melenchuk | 2013-02-05 12:10:29 -0700

New Harold speech from nicolae (#6605).

--------------------------------------------------------------------------------
aeee7accdb | Steve Melenchuk | 2013-02-05 12:00:49 -0700

Vaults from nicolae (#6603).

--------------------------------------------------------------------------------
435a89418d | Steve Melenchuk | 2013-02-05 11:00:48 -0700

"<foo> is cast into the Abyss! (it)" is cast into the Abyss!
In other words, make sure the identity of the monster responsible for
the banishment is reported properly.

This makes use of beam::zapper() potentially spoilery, but it's only
ever used for this one purpose at present.

--------------------------------------------------------------------------------
9f02e94207 | Eino Keskitalo | 2013-02-05 18:42:19 +0200

Start transferring the tutorial text for lesson 4 to database.
Done up to "tutorial4 ring_power".

--------------------------------------------------------------------------------
b4b4e476e0 | David Lawrence Ramsey | 2013-02-04 22:11:48 -0600

Add two more color names to the miscellaneous database.

--------------------------------------------------------------------------------
fb4ddb67df | David Lawrence Ramsey | 2013-02-04 15:37:19 -0600

Add Xom-related changelog entries.

--------------------------------------------------------------------------------
ed5c562e75 | Steve Melenchuk | 2013-02-04 13:42:11 -0700

More adjustments to inner flame death messages.
Primarily, this avoids the atrocious grammar of "blasted by butterfly"
and not specifying what monster blew up if the player kills themselves
with an explosion caused by one of their own hexes

Now, no matter who blows up the monster, you get "blasted by a butterfly
(exploding inner flame) (hexed by <source>)". This includes Xom (in a
slightly hackish fashion in that case).

--------------------------------------------------------------------------------
82723045f7 | David Lawrence Ramsey | 2013-02-04 13:53:01 -0600

Fix wording and a typo.

--------------------------------------------------------------------------------
60e61e6028 | David Lawrence Ramsey | 2013-02-04 13:44:16 -0600

Fix Mantis 6274: Properly give Arachne a genus and species.
As suggested by jeffqyzt, "arachnoid" is now used for human-spider
hybrids.

--------------------------------------------------------------------------------
b2eacf2668 | David Lawrence Ramsey | 2013-02-04 13:33:24 -0600

Properly give giant lizards and drakes their own genus.
This is so they aren't listed in groups as all giant newts or dragons,
respectively.

--------------------------------------------------------------------------------
fdbd97d894 | David Lawrence Ramsey | 2013-02-04 13:16:25 -0600

Give giant leeches their own genus.

--------------------------------------------------------------------------------
a09e06b1c0 | David Lawrence Ramsey | 2013-02-04 12:09:31 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
1dab03bb24 | Neil Moore | 2013-02-04 10:26:04 -0500

Avoid a crash when targetting IMB.
Perhaps other spells as well.  I managed to reproduce the crash, but not
reliably, by targetting IMB near a remembered-but-not-really there
out-of-sight enemy.

Now bolt::ignores_monster() considers the NULL it gets in this situation
to be an unignored monster, just like fedhas_shoot_through() does.  This
is a minor info leak for targetters, but the leak was already there with
fedhas_shoot_through().

Handling the nulls in target.cc would be cleaner in some ways, but would
require adding the check in four or five different places within the
IMB, spray, and default beam targetters.

--------------------------------------------------------------------------------
d609bed351 | David Lawrence Ramsey | 2013-02-04 08:24:05 -0600

Remove apparently unused monster flag at the next major version bump. The 
individual monster property accomplishes the same thing.

--------------------------------------------------------------------------------
36ff3ff4fe | Chris Campbell | 2013-02-04 09:43:26 +0000

Don't generate "blessed" weapons with flame brands
It's just misleading.

--------------------------------------------------------------------------------
6c35d263d0 | Adam Borowski | 2013-02-04 10:27:04 +0100

Define _O_U8TEXT by its numeric value on old compilers.

--------------------------------------------------------------------------------
37dcc8a08b | Adam Borowski | 2013-02-04 10:27:04 +0100

Don't create other items in baileys' glass displays.

--------------------------------------------------------------------------------
ea21e6f68b | Darshan Shaligram | 2013-02-03 21:56:11 -0500

Fix Shoals map connections.
Shoals maps used join-the-dots which produces unnatural corridors. Fixed to
postprocess the join-the-dots path and update the heightmap around the path to
make it look less artificial.

--------------------------------------------------------------------------------
7af4ce618f | David Lawrence Ramsey | 2013-02-03 19:48:28 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
d4add257e6 | Adam Borowski | 2013-02-04 02:21:28 +0100

Try to enable UTF-8 mode for stdin/stderr on new versions of Windows.
No idea what kind of new is required, but at least specifying this flag
when it's not supported should be ignored.

--------------------------------------------------------------------------------
3ea4a8c7f6 | DracoOmega | 2013-02-03 18:15:03 -0700

Don't warn on targetting sticky flame breath against things it cannot hit

--------------------------------------------------------------------------------
b5c202df4e | DracoOmega | 2013-02-03 18:15:02 -0700

Don't warn about hitting immune friendly monsters with static discharge

--------------------------------------------------------------------------------
28ec47a299 | DracoOmega | 2013-02-03 18:15:02 -0700

Make targeters aware of monsters their beams cannot hit
Previously there was no way for beam targeters to know that they could never
hit certain things, such as orbs of destruction or plants under Fedhas and
would imply that explosion spells would terminate upon them, if the player was
trying to aim through them. Now they should properly match the path the beam
will actually take.

--------------------------------------------------------------------------------
1b3b8f7506 | Steve Melenchuk | 2013-02-03 18:11:40 -0700

A handful of additional vaults.
This includes four Swamp vaults of various themes and styles, and a new
Vaults entry.

--------------------------------------------------------------------------------
b5b88cd883 | clouded@users.sourceforge.net | 2013-02-03 18:03:40 -0700

Add a few vaults for Swamp/Shoals and clean up some newnewvaults stuff.

--------------------------------------------------------------------------------
00566dfdc7 | Raphael Langella | 2013-02-04 01:15:46 +0100

Add average attack speed to fsim reports.

--------------------------------------------------------------------------------
65cdbc9763 | David Lawrence Ramsey | 2013-02-03 18:09:55 -0600

Sort deep dwarf band entries by weight.

--------------------------------------------------------------------------------
cca36e9a95 | David Lawrence Ramsey | 2013-02-03 18:09:55 -0600

Convert some band placement code to use random_choose_weighted().

--------------------------------------------------------------------------------
0c53540300 | David Lawrence Ramsey | 2013-02-03 18:09:55 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
84913f9fef | David Lawrence Ramsey | 2013-02-03 18:09:54 -0600

Remove unneeded brackets.

--------------------------------------------------------------------------------
e7b8e4d77c | Raphael Langella | 2013-02-04 00:35:59 +0100

Fix bat form unarmed delay display being randomised.

--------------------------------------------------------------------------------
9811db10b4 | Steve Melenchuk | 2013-02-03 14:44:29 -0700

Make validity of casting Malign Gateway in an area deterministic.
The location is now picked randomly from valid gateway destinations.

This prevents abuse arising from trying to cast the spell in a too-small
area repeatedly.

--------------------------------------------------------------------------------
e545c28589 | Adam Borowski | 2013-02-03 22:23:17 +0100

A duckless quote for a witch.

--------------------------------------------------------------------------------
ace9f7caea | Steve Melenchuk | 2013-02-03 14:20:17 -0700

Don't use MP and time on Malign Gateway cast in too-small space (#6572).

--------------------------------------------------------------------------------
8a5fe3f8e5 | David Lawrence Ramsey | 2013-02-03 15:08:52 -0600

Fix Mantis 6155: Adjust the "witch" description to make it gender-neutral.

--------------------------------------------------------------------------------
86d069cb5c | Adam Borowski | 2013-02-03 21:43:30 +0100

Allow IOODs to go past arcane familiars (like all other beams).

--------------------------------------------------------------------------------
8a68dfeb2c | Adam Borowski | 2013-02-03 20:16:42 +0100

A minor optimization and a crash fix.

--------------------------------------------------------------------------------
1a7d06adf8 | Adam Borowski | 2013-02-03 20:16:42 +0100

Formatting fixes.

--------------------------------------------------------------------------------
5ea51d2766 | David Lawrence Ramsey | 2013-02-03 13:04:18 -0600

Fix indentation.

--------------------------------------------------------------------------------
aac178a9f0 | David Lawrence Ramsey | 2013-02-03 13:01:48 -0600

Fix pronoun inconsistencies in the hints.
Two places use the class pronoun, while other places use "it"
unconditionally.  Do the latter everywhere for now, until it can be gone
through in detail.

--------------------------------------------------------------------------------
42dd21b769 | David Lawrence Ramsey | 2013-02-03 12:53:59 -0600

Properly make mons_class_gender() static.

--------------------------------------------------------------------------------
0871c320fc | David Lawrence Ramsey | 2013-02-03 11:32:53 -0600

Move monster gender detection into its own function.

--------------------------------------------------------------------------------
c8f3bc8925 | David Lawrence Ramsey | 2013-02-03 11:23:54 -0600

Use monster::pronoun() instead of mons_pronoun() in abyssal creation messages.

--------------------------------------------------------------------------------
a00ccc0419 | David Lawrence Ramsey | 2013-02-03 11:22:35 -0600

Comment fix.

--------------------------------------------------------------------------------
40c6173f59 | Steve Melenchuk | 2013-02-03 09:19:07 -0700

Less hacky way to generate noise messages for spore, etc. explosions.

--------------------------------------------------------------------------------
ffd41d1b04 | Steve Melenchuk | 2013-02-03 09:14:44 -0700

Make Fulminant Prism's crackle audible from out of LOS.
You should be able to hear it even if you can't see it if it's as loud
as the message suggests.

--------------------------------------------------------------------------------
9b8d06b6df | Steve Melenchuk | 2013-02-03 09:14:38 -0700

Feedback for audible prism, spore, and ball lightning explosions (#6596).
Previously it would not be noted if one of the three exploded in a
position where it is audible but not visible.

--------------------------------------------------------------------------------
33ac232af5 | Adam Borowski | 2013-02-03 11:52:34 +0100

Axe "Sacrifice", a never-has-been spell.
Paladins were once supposed to commit suicide to heal an ally, but that has
never been implemented, and tends to be considered a bad idea.

--------------------------------------------------------------------------------
accfb7ca62 | Adam Borowski | 2013-02-03 11:28:52 +0100

Axe several unused zaps.
These had a definition in zap-data.h, but were not used in any way, not even
when casting relevant spells in wizmode.

--------------------------------------------------------------------------------
5a61ffe30d | Adam Borowski | 2013-02-03 11:21:55 +0100

Drop a few unused zap enums.

--------------------------------------------------------------------------------
4ad0992ade | Adam Borowski | 2013-02-03 11:13:14 +0100

Rename zap enums to those of their spells.

--------------------------------------------------------------------------------
404f1080b5 | Adam Borowski | 2013-02-03 10:23:03 +0100

Clean up / amend some comments.

--------------------------------------------------------------------------------
67bb1ebab8 | Adam Borowski | 2013-02-03 10:23:03 +0100

s/SPELL_FRAGMENTATION/SPELL_LRD/
It was totally unobvious what the hell it is.

--------------------------------------------------------------------------------
7883a932e5 | Adam Borowski | 2013-02-03 10:23:03 +0100

Fix some holy/healing spells being silent for no reason.

--------------------------------------------------------------------------------
9be7b00865 | David Lawrence Ramsey | 2013-02-03 00:11:59 -0600

Add formatting fix.

--------------------------------------------------------------------------------
804e35b316 | Darshan Shaligram | 2013-02-03 00:11:58 -0500

HangedMan's new Shoals ending.
Remove Shoals:$ vault placement code that tries to place vaults on islands: the 
regular
minivault placement routine works just as well (probably a little better for
lopsided islands).

Use spotty connection builder for Shoals vaults.

--------------------------------------------------------------------------------
b59a1d89d2 | David Lawrence Ramsey | 2013-02-02 22:41:49 -0600

Add formatting fix.

--------------------------------------------------------------------------------
4696bdbe48 | Steve Melenchuk | 2013-02-02 20:50:08 -0700

Get Force Lance castable by monsters.
This is mostly for ghost purposes to balance out early IMB-casting
ghosts, though eventually monsters should be able to use it as well.

--------------------------------------------------------------------------------
eab9a6dc98 | Steve Melenchuk | 2013-02-02 13:49:02 -0700

dpeg's Vaults vaults (#6580).
These incorporate mumra's adjustments to allow four of the vaults to
place properly.

--------------------------------------------------------------------------------
e63dd19834 | Steve Melenchuk | 2013-02-02 13:35:46 -0700

ontoclasm's Vaults "legacy vaults" (#6590).

--------------------------------------------------------------------------------
bd2e2bd48e | Steve Melenchuk | 2013-02-02 13:14:56 -0700

Decorative vaults batch from HangedMan (#6593).
This includes a couple of adjustments to tagging and DEPTH: lines, based
on observations that not doing so causes the vaults to get placed
significantly less often than they probably should be.

--------------------------------------------------------------------------------
70ff43d865 | Steve Melenchuk | 2013-02-02 13:14:56 -0700

Treat abyss-placed extra vaults more like extra vaults elsewhere.
That is, they no longer count towards the vaults placed total.

This also adjusts abyss vault generation to try harder to place its
maps; vaults that fail to place don't count against the six maximum.

--------------------------------------------------------------------------------
839774075c | David Lawrence Ramsey | 2013-02-02 13:12:59 -0600

Add spacing fix.

--------------------------------------------------------------------------------
d56fc2b44c | Darshan Shaligram | 2013-02-02 12:10:13 -0500

Record map index and monster placement for transparent vaults (HangedMan).

--------------------------------------------------------------------------------
967e03a97d | Neil Moore | 2013-02-02 11:56:27 -0500

Update changelog.

--------------------------------------------------------------------------------
53187cde8f | Raphael Langella | 2013-02-02 16:07:17 +0100

Fix fsim average damage.

--------------------------------------------------------------------------------
1a823d3180 | Raphael Langella | 2013-02-02 14:04:30 +0100

Increase the delay precision in fsim reports.
Also, change the unit to make it consistent with character status message (@).

--------------------------------------------------------------------------------
81abd0916c | ontoclasm | 2013-02-01 20:28:29 -0600

Giant amoeba tile.

--------------------------------------------------------------------------------
2751eea104 | Chris Campbell | 2013-02-02 02:22:06 +0000

Don't place kobold rooms in Elf, bee rooms in Elf/Vaults (HangedMan)

--------------------------------------------------------------------------------
5803755b16 | Chris Campbell | 2013-02-01 21:23:32 +0000

Guarantee an exit from minmay_crystal_room (#6591)

--------------------------------------------------------------------------------
4d26d6870a | David Lawrence Ramsey | 2013-02-01 13:32:39 -0600

Add another orc heathen synonym.

--------------------------------------------------------------------------------
d1a3e5a048 | David Lawrence Ramsey | 2013-02-01 13:32:12 -0600

Simplify some Beogh-related orc speech.

--------------------------------------------------------------------------------
2b345c4500 | David Lawrence Ramsey | 2013-02-01 11:50:36 -0600

Fix indentation.

--------------------------------------------------------------------------------
aef24d2d0f | Raphael Langella | 2013-02-01 17:14:25 +0100

Don't bleed in fsim.

--------------------------------------------------------------------------------
d9588688ab | Adam Borowski | 2013-02-01 10:51:10 +0100

Drop std:: prefixes.

--------------------------------------------------------------------------------
454206f6a5 | Brendan Hickey | 2013-01-31 22:11:53 -0800

Increase Abyss Spawn Rate
Fix a bug that severely limited the number of monsters the abyss would place on 
abyss shifts.

--------------------------------------------------------------------------------
4d4ece5e06 | ontoclasm | 2013-02-01 00:09:38 -0600

Make zombie giants more distinct from stone giants.

--------------------------------------------------------------------------------
361a747743 | Adam Borowski | 2013-02-01 05:07:59 +0100

Remove a lying comment.

--------------------------------------------------------------------------------
c54516c552 | David Lawrence Ramsey | 2013-01-31 21:49:00 -0600

Typo fix.

--------------------------------------------------------------------------------
7da4f03f51 | Adam Borowski | 2013-02-01 01:51:31 +0100

Keep the SoH polymorph name for SoH flavours other than geh.

--------------------------------------------------------------------------------
6f28006610 | Steve Melenchuk | 2013-01-31 17:35:50 -0700

Keep TRJ, Lernaean hydra, and SoH polymorph name across multiple polys.
This prevents such hijinks as landing a unique kill against "the fire
giant" (i.e. TRJ who has been polymorphed multiple times).

--------------------------------------------------------------------------------
7e6e54bba9 | Neil Moore | 2013-01-31 17:05:49 -0500

Omit full stops in stash-search feature descriptions (Napkin)

--------------------------------------------------------------------------------
10ee34ac9a | David Lawrence Ramsey | 2013-01-31 12:11:12 -0600

Constify.

--------------------------------------------------------------------------------
f599d7fc2e | Adam Borowski | 2013-01-31 04:46:15 +0100

Base whether banishment works on existence of the Abyss.
As opposed to checking the game mode every time.

--------------------------------------------------------------------------------
7197619b3c | Adam Borowski | 2013-01-31 04:23:15 +0100

Make some functions static or gone.

--------------------------------------------------------------------------------
aefd8e30fb | Adam Borowski | 2013-01-31 03:58:27 +0100

Fix all monsters ceasing to act after getting banished in ZotDef.
Quite unbelievable this has never occured in real games, but with
demonologists and Louise being rare and oklobs/etc doing a vast majority of
the work, it's somewhat possible.

--------------------------------------------------------------------------------
b7c3957576 | Adam Borowski | 2013-01-31 03:58:27 +0100

Don't let sprinters detour through the Abyss.
It was not sprinty enough before; as a multi level branch it fits even less.
This saves us the need to fix related crashes :p

--------------------------------------------------------------------------------
a2b2d32b14 | Adam Borowski | 2013-01-31 01:21:00 +0100

Mark functions prefixes with _ as actually static.
... which reveals that some are unused.

--------------------------------------------------------------------------------
c6316cfe6d | Adam Borowski | 2013-01-31 01:07:00 +0100

Axe some braces.

--------------------------------------------------------------------------------
5c1cb0b7dc | DracoOmega | 2013-01-31 01:01:08 +0100

Don't crash if a familiar somehow disappears without ending the familiar bond

--------------------------------------------------------------------------------
d276636cff | Adam Borowski | 2013-01-31 00:25:18 +0100

Make it more obvious halving abyss_speed between visits is not related to Chei.
It looked like that line was mistakenly placed outside the previous if
statement.

--------------------------------------------------------------------------------
7f4e07e1fe | Adam Borowski | 2013-01-30 23:41:59 +0100

Fix wands of digging being silent as well.
Why do we have redundant zap_data, again?

--------------------------------------------------------------------------------
e07c2f1a4a | Adam Borowski | 2013-01-30 23:14:14 +0100

Make Dig noisy again; newstalker changes are no more.
This gets rid of some cacodemon weirdness.

--------------------------------------------------------------------------------
1f5ad4ce9a | Steve Melenchuk | 2013-01-30 14:12:06 -0700

Kill "killed from afar[...]with an it" with a proper death message.
Vampiric draining didn't provide a correct death message very often
anyway, so it should just behave all around better now.

--------------------------------------------------------------------------------
537d1ec97e | Steve Melenchuk | 2013-01-30 13:48:40 -0700

Don't print out-of-LOS messages for shielded monsters triggering traps.
"A <projectile> shoots out and hits someone's shield" would previously
print if a monster somewhere on the level triggered a trap and blocked
the projectile with their shield, regardless of if the monster was in
LOS or not.

--------------------------------------------------------------------------------
09a8698a53 | Neil Moore | 2013-01-30 14:57:06 -0500

Display naga and draconian AC boni on the % screen.
It was inconsistent with felids and demonspawn, whose AC boni are from
honest-to-Jiyva mutations.

--------------------------------------------------------------------------------
d6bd172965 | Neil Moore | 2013-01-30 13:55:48 -0500

Don't show 'constrict 1' for low-level Nagas.
Pseudo-mutations should really really be implemented as real mutations,
or at least something sufficiently similar that we don't have to change
things in two or three different places.  Then again, sometimes we have
to change things in two or three different places for ordinary
mutations, too :(

--------------------------------------------------------------------------------
eed38f9819 | Chris Oelmueller | 2013-01-30 17:45:58 +0000

De-runify some pan entry vault doors
These are not particulary dangerous, especially so given the depth,
and thus runed doors are probably not justified here.

--------------------------------------------------------------------------------
95baa7302c | Chris Campbell | 2013-01-30 13:15:47 +0000

Add a message when dispelling monster buffs

--------------------------------------------------------------------------------
9f6505e592 | Chris Campbell | 2013-01-30 13:15:47 +0000

Fix cacodemon/eye of devastation "energy bolt" also dispelling monster buffs
Renames the purple draconian beam to "dispelling energy".

--------------------------------------------------------------------------------
c2065e0a14 | DracoOmega | 2013-01-30 13:15:46 +0000

Fix familiar shots accidentally dispelling magic effects
Due to the descriptor for the familiar's shots being coincidentally the same
as purple draconian breath ("bolt of energy") they were unintentially dispelling
all magic effects on their targets. It is now renamed "barrage of energy".

(Also, corrected the beam type from BEAM_MISSILE to BEAM_MMISSILE)

--------------------------------------------------------------------------------
1c1002134a | elliptic | 2013-01-30 00:35:26 -0500

Reduce arcane familiar damage.

--------------------------------------------------------------------------------
c281685287 | elliptic | 2013-01-30 00:05:16 -0500

Smooth the formulas for Familiar and Prism HD/charges.

--------------------------------------------------------------------------------
041c506943 | David Lawrence Ramsey | 2013-01-29 22:43:58 -0600

Add another canned message.

--------------------------------------------------------------------------------
93bcce2036 | Adam Borowski | 2013-01-30 05:33:14 +0100

Make tmut miscasts a lot more polymorphey.
One of severity 2 effects is a short duration one, severity 3 may do damage
and a short polymorph, or just polymorph with max power (and thus likely max
duration).

--------------------------------------------------------------------------------
82a7a84a7d | Adam Borowski | 2013-01-30 05:06:39 +0100

Fix a totally wrong comment.
It may be good to rename the file to represent what it does.

--------------------------------------------------------------------------------
2e1ec85bc9 | Adam Borowski | 2013-01-30 04:54:19 +0100

Mark the tree form as unviable when in a harmful cloud.
If the cloud came from a generator, there is exactly zilch you can do when
in a -MOVE -TELE form, and you'll be standing there for a while.

--------------------------------------------------------------------------------
ae9be96a6b | Adam Borowski | 2013-01-30 04:29:35 +0100

Untransmute Dig, Leda and Condensation Shield.
Dig has nothing transmutey at all, and got the Tmut component only to allow
Stalkers cast it reliably when they were Tmut-based.

Leda's Liquefaction is a phase change rather than transforming material into
something else.  It could be argued to be Tmut if we want that to have a wide
scope, but I guess this is a remnant of when pretty much all Earth spells
got changed to Earth/Tmut.

So is Condensation Shield, and requiring a school ice mages hardly ever take
made the spell nearly unused.

--------------------------------------------------------------------------------
feced233ed | Adam Borowski | 2013-01-30 04:29:35 +0100

Ruin a vault.
There's no connection between polymorph and mutations anymore, and this was
the only vault that intended monsters to get polymutated.  For now, it
merely showcases player forms.

The vault is broken for reasons not related to polymorph anyway, with Vaults
branch overhauls it doesn't show up.

--------------------------------------------------------------------------------
9c93fb19a1 | Adam Borowski | 2013-01-30 04:29:35 +0100

Change Malmutate's level (completely irrelevant).
This is just to stop ##crawl from making bad jokes about neqoxecs being
top level wizards.

--------------------------------------------------------------------------------
d2473b647c | Adam Borowski | 2013-01-30 04:23:30 +0100

Separate polymorph vs malmutate for monsters too.
Without actual monster mutations, this is not very interesting, yet at least
avoids surprising results.

One possibility is to reuse a bunch of existing effects, giving the monster
that enchantment with infinite duration.  Those could be: slow, sick (no
regen), lowered mr, swift, dazed (lose 20% turns), mute (no shouting or
casting), blind; they are far more drastic than most player muts as you
wouldn't notice the effect otherwise.

--------------------------------------------------------------------------------
921f1fbf59 | Neil Moore | 2013-01-29 21:47:37 -0500

Indentation fix.

--------------------------------------------------------------------------------
5fcfa7b93a | David Lawrence Ramsey | 2013-01-29 20:20:05 -0600

Fix Jiyva inconsistencies with non-convertible slimes (e.g. shapeshifters).
Only warn about attacking fellow slimes, and only paralyze them with prayer.

--------------------------------------------------------------------------------
51b94ce3e4 | DracoOmega | 2013-01-30 03:18:07 +0100

Terminate expired familiars in a more correct way

--------------------------------------------------------------------------------
ea7aa25b04 | David Lawrence Ramsey | 2013-01-29 20:03:02 -0600

Add spacing fix.

--------------------------------------------------------------------------------
cbd15d8ab4 | DracoOmega | 2013-01-30 02:56:40 +0100

Make non-permanent blindness properly time out while off-level

--------------------------------------------------------------------------------
2d50da65fe | DracoOmega | 2013-01-30 02:56:40 +0100

Don't announce monsters being hit by prisms if they're off-screen

--------------------------------------------------------------------------------
00ec606940 | DracoOmega | 2013-01-30 02:56:40 +0100

Fix dazzling spray spamming comfirmation prompts when aiming near trees

--------------------------------------------------------------------------------
8677fe03f4 | Adam Borowski | 2013-01-30 02:55:01 +0100

Don't bias dragon placement towards mottled dragons.
7160bd7e assumed the old list was intentional, while it's pretty clear it
was a mistake.

--------------------------------------------------------------------------------
ad481f7600 | Neil Moore | 2013-01-29 19:45:18 -0500

Be even more careful about bad Familiar targetting.
Check for any invalid mindex, not just MHITYOU.

Also, print an error message if we do end up bailing because of AF
self-targetting.

--------------------------------------------------------------------------------
0d76cc2f60 | DracoOmega | 2013-01-29 19:32:51 -0500

Fix some issues involving familiars and dead targets
Among other things, firing orders might not get purged correctly if a
target died from the player's spell before the familiar could fire. These
invalid firing orders could then stick around for a little while and possibly
cause a crash if the familiar's mindex because equal to its stored foe (for
example, following a level change)

This fixes #6584

--------------------------------------------------------------------------------
931edea9f9 | Steve Melenchuk | 2013-01-29 15:18:07 -0700

Don't try to place Rogue's Gallery on Crypt:$.
Since most of the layouts there involve encompass vaults, it's not a
good idea.

--------------------------------------------------------------------------------
b90358fe47 | elliptic | 2013-01-29 16:19:29 -0500

Make wands of invisibility more common.
They aren't very exciting even for most stabbers.

Compensate for this rarity change by making wands of enslavement less common.

Acquirement weights were adjusted in the opposite direction.

--------------------------------------------------------------------------------
62bc3fa8b7 | elliptic | 2013-01-29 16:02:30 -0500

Don't always try to replace non-artefact body armour with slot-filling armour.

--------------------------------------------------------------------------------
d32c1a157d | elliptic | 2013-01-29 15:55:45 -0500

Make the "plain armour" acquirement code more internally consistent.

--------------------------------------------------------------------------------
4ef43cc885 | Steve Melenchuk | 2013-01-29 09:49:10 -0700

Use stone glass for makhleb_altar_promises_db.
This prevents cacodemons, etc. from wandering about the level.

--------------------------------------------------------------------------------
f63713f1dd | elliptic | 2013-01-29 02:55:06 -0500

Give arcane familiars M_SEE_INVIS.

--------------------------------------------------------------------------------
36d5e4c800 | David Lawrence Ramsey | 2013-01-28 23:55:54 -0600

Simplify.

--------------------------------------------------------------------------------
015f576ca8 | Steve Melenchuk | 2013-01-28 22:23:18 -0700

Adjust a couple of monster spell sets.
Jorgrun loses Leda's and Stoneskin and instead gets Dig (so he can
pursue the player relentlessly!).

Cacodemons get Dig back, by popular demand and due to the recent
improvements to dig behaviour.

--------------------------------------------------------------------------------
5b187de83c | Steve Melenchuk | 2013-01-28 22:23:09 -0700

Improve monsters' use of Dig, and allow their use of wands of digging.
This sets up monsters to use Dig in scenarios where burrowing monsters
would burrow through walls, thus casting it instead of moving under the
right conditions. Given a charged wand of digging, they will use it
under the same circumstances.

This also adjusts the messaging when digging is observed in use to not
display even when the player doesn't see a target tile.

--------------------------------------------------------------------------------
de75c215e8 | DracoOmega | 2013-01-28 21:22:59 -0700

Fix digging wands only digging a single space at a time

--------------------------------------------------------------------------------
cc622853c9 | ontoclasm | 2013-01-28 21:51:12 -0600

Spiked and dire flails (roctavian, 6577)

--------------------------------------------------------------------------------
fa11180236 | ontoclasm | 2013-01-28 21:51:11 -0600

Monster edits (roctavian, 6577)

--------------------------------------------------------------------------------
4cd331f346 | ontoclasm | 2013-01-28 21:51:11 -0600

Remove an old chaos spawn tile

--------------------------------------------------------------------------------
a9c0866ee3 | David Lawrence Ramsey | 2013-01-28 21:44:50 -0600

Add Ilsuiw speech line.

--------------------------------------------------------------------------------
cfc5e437a1 | David Lawrence Ramsey | 2013-01-28 21:06:58 -0600

Simplify some Ilsuiw speech.

--------------------------------------------------------------------------------
6562629038 | David Lawrence Ramsey | 2013-01-28 21:02:51 -0600

Tweak punctuation.

--------------------------------------------------------------------------------
e20f0fe0a1 | Chris Campbell | 2013-01-29 02:39:48 +0000

Remove some Vehumet altars with books
Since Vehumet is no longer a book-gifting god, and will gift early
spells soon after being worshipped anyway.

--------------------------------------------------------------------------------
d36ab53755 | Chris Campbell | 2013-01-29 02:39:47 +0000

Remove a comment

--------------------------------------------------------------------------------
4e88717877 | Steve Melenchuk | 2013-01-28 18:28:56 -0700

Revert magic_research serial vault to pre-newvaults version.
I've kept a Vaults depth tag there in the event that it can be placed
successfully there.

--------------------------------------------------------------------------------
84a7a3eb94 | Steve Melenchuk | 2013-01-28 17:50:04 -0700

Add remaining vaults from #6542; tweak previous vaults of mine.
grunt_snake_rune_pools:
- Fix a couple of instances of unintentionally visible rock.
- Reduce number of sea snakes in favour of more greater nagas.

grunt_profane_halls:
- Reduce the number of draconians.

This also adds a vault from #6569 that was missed in the previous
commits.

--------------------------------------------------------------------------------
70e9530462 | Steve Melenchuk | 2013-01-28 17:09:17 -0700

Two of HangedMan's vaults that escaped the earlier commit.

--------------------------------------------------------------------------------
5042a20cc2 | David Lawrence Ramsey | 2013-01-28 17:41:42 -0600

Fix inaccurate comment.

--------------------------------------------------------------------------------
f7478fdc23 | ontoclasm | 2013-01-28 17:17:25 -0600

Tiles for the new Conjurations spells

--------------------------------------------------------------------------------
a84bf2611a | Steve Melenchuk | 2013-01-28 16:11:48 -0700

A batch of vaults from HangedMan (#6527).
I looked through these and didn't see any major issues with them, so
they're in.

This also removes not_door_vault_hangedman at the author's request.

--------------------------------------------------------------------------------
3f65ee2164 | Steve Melenchuk | 2013-01-28 16:06:36 -0700

Lots of overflow altars (#6367, #6400, #6569).
This doesn't include all of the submissions from those threads (ones
that have the potential to be problematic have been omitted), and I've
adjusted several of them to remove more potential problems.

--------------------------------------------------------------------------------
75c3fcd0a3 | Pete Hurst | 2013-01-28 16:05:10 -0700

Fix rooms sometimes blocking off doors in open areas (ChrisOelmueller). Move 
two performance tuning parameters into config. Make omnigrid not sometimes 
produce lots of tiny areas where no vaults could be placed.

--------------------------------------------------------------------------------
ee82eafa84 | elliptic | 2013-01-28 17:28:11 -0500

Unrestrict FeCj, HOCj, SpCj.
These combos all gained significantly from conjurer changing from ice/air
to hex (with a little charms).

--------------------------------------------------------------------------------
517f8bcdff | Steve Melenchuk | 2013-01-28 14:22:52 -0700

Tinker with a couple of problematic altar/entry vaults.
fiery_altar_vehumet and dangerous_book have been adjusted to be safe for
a player standing on the altar, and are more generous in allowing the
player access to the altar. They still require careful timing to
actually get onto the altar safely; if this still causes problems for
players, I may disable them for further tinkering.

dk_vehumet_trees has been disabled entirely for the moment for being too
inaccessible for the average player (every single competent player that
I have seen come across this altar has complained loudly and endlessly
about it).

dpeg_entry_fire_and_water now has a small Lua function attached to it
intended to ensure that there's always a way out, as a
greater-than-normal number of players have starved to death attempting
to get out of the vault.

--------------------------------------------------------------------------------
371c04fdbb | Steve Melenchuk | 2013-01-28 13:28:46 -0700

Re-add st's greater box vaults as "hard" vaults rooms.
They were removed during the overhaul, and somehow never added back in.

The version here is essentially the last before newnewvaults landed. I
have tweaked it slightly to add an open space in front of the main doors
to allow them to be placed properly in the new layout, and cleaned up
the runed door syntax.

--------------------------------------------------------------------------------
b28e60f1cf | Vsevolod Kozlov | 2013-01-28 22:12:01 +0400

Remove an unneeded file.

--------------------------------------------------------------------------------
c402eb312e | Steve Melenchuk | 2013-01-28 09:18:55 -0700

De-over-line-length a couple of comments.
...because it's probably my responsiblity to make sure we don't overly
mess up the code base.

--------------------------------------------------------------------------------
6af5793110 | Steve Melenchuk | 2013-01-28 08:54:46 -0700

Tweaks to newnewvaults vaults (mostly my own).
For my own vaults: remove stairs from _focal likely to be adjacent to up
to three walls, and remove band designation from 8s and 9s in
_funnel_arena.

Per request of the author (apparently missed previously),
hangedman_vaults_maws now uses ( instead of { for the stair glyph.

This also tags the original crypt entries with vaults room tags, so they
can also be used, and changes the names on the ones ported from
newvaults to avoid name conflicts.

--------------------------------------------------------------------------------
7ae32b01e4 | Pete Hurst | 2013-01-28 08:30:05 -0700

Support branch entries (based on patch by Grunt)

--------------------------------------------------------------------------------
3b2541456d | Pete Hurst | 2013-01-28 08:30:05 -0700

Add a nil check after map_by_tag, add omitted hard maps file.

--------------------------------------------------------------------------------
7f28e98dab | Pete Hurst | 2013-01-28 08:30:05 -0700

Some great new vault contributions (ontoclasm, Grunt, HangedMan). Tweak some 
layout parameters. Remove a rogue debug statement. Add a couple of escape 
hatches.

--------------------------------------------------------------------------------
e9afc9ca49 | Pete Hurst | 2013-01-28 08:30:05 -0700

Fix delays in level generation

--------------------------------------------------------------------------------
5f2f398608 | Pete Hurst | 2013-01-28 08:30:05 -0700

Some further optimisation (and fixed an occasional issue with room connections)

--------------------------------------------------------------------------------
6d932f9aa3 | Pete Hurst | 2013-01-28 08:30:04 -0700

Make placement not keep trying to long when there's nowhere left to place. Fix 
max_rooms setting per generator. Increase max rooms per layout to 27.

--------------------------------------------------------------------------------
60e508c752 | Pete Hurst | 2013-01-28 08:30:04 -0700

Tweak level builder to optimise slightly

--------------------------------------------------------------------------------
6c01b86f4e | Pete Hurst | 2013-01-28 08:30:04 -0700

Fix an error in rooms with exits

--------------------------------------------------------------------------------
b49abd10ee | Pete Hurst | 2013-01-28 08:30:04 -0700

Tweak some vaults, include some new vaults by HangedMan

--------------------------------------------------------------------------------
5e1ed4f0d3 | Pete Hurst | 2013-01-28 08:30:04 -0700

Remove allow_dup from numerous vault. Restore rock show.

--------------------------------------------------------------------------------
cf62a048b5 | clouded@users.sourceforge.net | 2013-01-28 08:30:04 -0700

Update .des files, removing and adding many subvaults.

--------------------------------------------------------------------------------
cba4b4d860 | Pete Hurst | 2013-01-28 08:30:03 -0700

Tidy up

--------------------------------------------------------------------------------
22974ab761 | Pete Hurst | 2013-01-28 08:30:03 -0700

Implement max_rooms for vaults_room (6) and vaults_hard (1) tags

--------------------------------------------------------------------------------
ccee3a9893 | Pete Hurst | 2013-01-28 08:30:03 -0700

Make sure empty spaces are empty and empty map squares are filled. Tweak maze 
layouts to succeed more.

--------------------------------------------------------------------------------
caaa434f5b | Pete Hurst | 2013-01-28 08:30:03 -0700

Handle @ and ' ' on map borders (orient tags not necessary when using @'s)

--------------------------------------------------------------------------------
8e8def3d4d | Pete Hurst | 2013-01-28 08:30:03 -0700

Allow Lua to determine exits and space (@ and ' ' in maps)

--------------------------------------------------------------------------------
59eb8bba55 | Pete Hurst | 2013-01-28 08:30:03 -0700

Minor tweaks

--------------------------------------------------------------------------------
9fedc2a706 | Pete Hurst | 2013-01-28 08:30:03 -0700

l_feat.cc was missing is_lava

--------------------------------------------------------------------------------
650ec89634 | Pete Hurst | 2013-01-28 08:30:03 -0700

Use has_solid_floor instead (also checks lava)

--------------------------------------------------------------------------------
5741978919 | Pete Hurst | 2013-01-28 08:30:03 -0700

Implement placement based on room analysis. Rooms should always connect validly 
now.

--------------------------------------------------------------------------------
1327954794 | Pete Hurst | 2013-01-28 08:30:03 -0700

Analyse feature for solidity. Make floor vault size independent from max room 
size.

--------------------------------------------------------------------------------
0e6d67b935 | Pete Hurst | 2013-01-28 08:30:03 -0700

Inspect vault edges

--------------------------------------------------------------------------------
f44b99d115 | Pete Hurst | 2013-01-28 08:30:02 -0700

Prevent coord validating against global map boundaries

--------------------------------------------------------------------------------
c7cbfb7827 | Pete Hurst | 2013-01-28 08:30:02 -0700

Allow Lua to inspect the vault before it is placed

--------------------------------------------------------------------------------
b24c3d47c3 | Pete Hurst | 2013-01-28 08:30:02 -0700

register_place and register_vault properties of reuse_map were the reason why 
transparent wasn't functioning correctly, and a bunch of other things like 
seeing vault name in debug mode, and support for !allow_dup as well as uniq 
tags ... phew.

--------------------------------------------------------------------------------
8096efe170 | Pete Hurst | 2013-01-28 08:30:02 -0700

Fix big cross layout

--------------------------------------------------------------------------------
40728d8bdf | Pete Hurst | 2013-01-28 08:30:02 -0700

Some optimisation

--------------------------------------------------------------------------------
a62a0dd57d | Pete Hurst | 2013-01-28 08:30:02 -0700

Fix syntax / adjust some weights

--------------------------------------------------------------------------------
03259729aa | Pete Hurst | 2013-01-28 08:30:02 -0700

Implement weighted room types

--------------------------------------------------------------------------------
ca5e592e64 | Pete Hurst | 2013-01-28 08:30:02 -0700

Fix a couple of trap vaults

--------------------------------------------------------------------------------
1eed022103 | Pete Hurst | 2013-01-28 08:30:02 -0700

Numerous tweaks and changes based on testing by elliott and feedback from 
various on ##crawl

--------------------------------------------------------------------------------
5196c5041f | Pete Hurst | 2013-01-28 08:30:02 -0700

Remove debug prints

--------------------------------------------------------------------------------
4cc9a5b044 | Pete Hurst | 2013-01-28 08:30:02 -0700

A bunch of experimental vaults by st_ - these aren't finished so they're in a 
separate file but it gives a much better idea for testing. Needs removal once 
final versions are in.

--------------------------------------------------------------------------------
1ccee1ffa6 | Pete Hurst | 2013-01-28 08:30:01 -0700

Fix a floor bug in omnibox

--------------------------------------------------------------------------------
c188204a4a | Pete Hurst | 2013-01-28 08:30:01 -0700

Remove a load of problematic vaults

--------------------------------------------------------------------------------
3aca578e97 | Pete Hurst | 2013-01-28 08:30:01 -0700

Remove some problematic vaults

--------------------------------------------------------------------------------
e7d2410a48 | Pete Hurst | 2013-01-28 08:30:01 -0700

Wall substitution

--------------------------------------------------------------------------------
4fd6cf3fe5 | Pete Hurst | 2013-01-28 08:30:01 -0700

Don't connect centers for empty rooms

--------------------------------------------------------------------------------
27c088368e | Pete Hurst | 2013-01-28 08:30:01 -0700

Get rooms to connect up properly at center

--------------------------------------------------------------------------------
1ed2ef0c1d | Pete Hurst | 2013-01-28 08:30:01 -0700

Restructure some files for clarity. Fix default options generation. Don't make 
walls eligible if lacking orient tag.

--------------------------------------------------------------------------------
02b90df163 | Pete Hurst | 2013-01-28 08:30:01 -0700

Set up a more complete default options table for easy reference and adjustment. 
Some other minor changes.

--------------------------------------------------------------------------------
076818a8ad | Pete Hurst | 2013-01-28 08:30:01 -0700

Fix upstairs on V:1; increase wall connections in open areas; utilise wall info 
when deciding orient

--------------------------------------------------------------------------------
e7d0954b8d | Pete Hurst | 2013-01-28 08:30:01 -0700

Prevent omnigrid making floor at map edge

--------------------------------------------------------------------------------
20ad257c3f | Pete Hurst | 2013-01-28 08:30:01 -0700

Determine potential orientations during pick_room

--------------------------------------------------------------------------------
c40b060ea7 | Pete Hurst | 2013-01-28 08:30:01 -0700

Fix omnigrid layout

--------------------------------------------------------------------------------
3918866dd4 | Pete Hurst | 2013-01-28 08:30:01 -0700

Omnigrid layout

--------------------------------------------------------------------------------
4a765afcda | Pete Hurst | 2013-01-28 08:30:00 -0700

Handle stairs

--------------------------------------------------------------------------------
6563912971 | Pete Hurst | 2013-01-28 08:30:00 -0700

Stairs fixup and some other bugs. 3 new vaults.

--------------------------------------------------------------------------------
644061a85d | Pete Hurst | 2013-01-28 08:30:00 -0700

Fixed connecting bug, restored CHANCE values

--------------------------------------------------------------------------------
edbab9bb8b | Pete Hurst | 2013-01-28 08:30:00 -0700

Refactoring to improve code and fix open connecting rooms bug. Change to rock 
wall.

--------------------------------------------------------------------------------
9405c43395 | Pete Hurst | 2013-01-28 08:30:00 -0700

Partially fix open area room connectivity; further improve layouts

--------------------------------------------------------------------------------
506545ec29 | Pete Hurst | 2013-01-28 08:30:00 -0700

Tweak and improve some layouts

--------------------------------------------------------------------------------
eb83a97d1d | Pete Hurst | 2013-01-28 08:30:00 -0700

Tidying up, fixing layouts, default most layouts to 25 rooms

--------------------------------------------------------------------------------
19bf692b65 | Pete Hurst | 2013-01-28 08:30:00 -0700

Bad rotation working out sideways normals

--------------------------------------------------------------------------------
c5fc1b1df2 | Pete Hurst | 2013-01-28 08:30:00 -0700

Make some subvaults transparent (still not fixed veto issues)

--------------------------------------------------------------------------------
752b985a13 | Pete Hurst | 2013-01-28 08:30:00 -0700

Another layout (quadrants like V:$)

--------------------------------------------------------------------------------
3e1390d38d | Pete Hurst | 2013-01-28 08:29:59 -0700

Moved a bunch of vaults out the way. Fixed tags on first batch of 7x7s.

--------------------------------------------------------------------------------
b1e1c13dcd | Pete Hurst | 2013-01-28 08:29:59 -0700

Balance weights and fix some issues.

--------------------------------------------------------------------------------
b8f1388c47 | Pete Hurst | 2013-01-28 08:29:59 -0700

Fixed transparency veto issue, fixed maze variations

--------------------------------------------------------------------------------
76e582d072 | Pete Hurst | 2013-01-28 08:29:59 -0700

Rooms can join to rooms; plus maze layouts

--------------------------------------------------------------------------------
66891d5c32 | Pete Hurst | 2013-01-28 08:29:59 -0700

Orientation and rectangular rooms work spectacularly. Slightly hackish to skirt 
around map resolution / placement. (Credit to Zaba for helpful pointer)

--------------------------------------------------------------------------------
4a0b858b6d | Pete Hurst | 2013-01-28 08:29:59 -0700

Determine orient

--------------------------------------------------------------------------------
72dcc50518 | Pete Hurst | 2013-01-28 08:29:58 -0700

Clean up print spam, properly size/position doors, added windows

--------------------------------------------------------------------------------
958c5cf8e2 | Pete Hurst | 2013-01-28 08:29:58 -0700

Allow standard vault placement to work on empty areas (not perfect)

--------------------------------------------------------------------------------
e675a41a20 | Pete Hurst | 2013-01-28 08:29:58 -0700

Lua calls for setting/unsetting env map mask

--------------------------------------------------------------------------------
276640e0f9 | Pete Hurst | 2013-01-28 08:29:58 -0700

Placement is working (doors are a bit funny)

--------------------------------------------------------------------------------
8256dc5172 | Pete Hurst | 2013-01-28 08:29:58 -0700

Problems with lexical scope here

--------------------------------------------------------------------------------
e1ca1b893f | Pete Hurst | 2013-01-28 08:29:58 -0700

Layout painter works as expected

--------------------------------------------------------------------------------
126191c62b | Pete Hurst | 2013-01-28 08:29:58 -0700

Implement layout painting and move some functions into separate files

--------------------------------------------------------------------------------
bfd4160433 | Pete Hurst | 2013-01-28 08:29:58 -0700

New vaults implementation

--------------------------------------------------------------------------------
0637e86e95 | DracoOmega | 2013-01-28 06:08:56 -0500

Make familiars fire at monsters hit indirectly by explosions
If you aim an explosion like fireball next to a monster (but not on top of
it), instead of the familiar firing at the empty square in the middle of
the explosion, it will now attempt to fire at some monster engulfed by
the explosion.

--------------------------------------------------------------------------------
20932f801b | elliptic | 2013-01-28 05:51:56 -0500

Don't let arcane familiars turn hostile when meleed.
It is an extension of your magic, not something to get angry when you
bump into it.

--------------------------------------------------------------------------------
6cb4ade7f2 | DracoOmega | 2013-01-28 05:06:49 -0500

Make familiars lose their foe if you fire at empty air
Previously, if a familiar had a foe (from you previously shooting at
a monster) and then you fired at empty space, the familiar would continue
to shoot at this monster rather than the space you had just fired at. Now
it will probably aim only at what you are presently shooting at.

--------------------------------------------------------------------------------
dd51c2d22b | elliptic | 2013-01-28 04:46:42 -0500

Adjust wanderer starting books.
Conjurations book no longer has anything to do with Ice or Air skill, and
Minor Magic never had much to do with Fire skill.

--------------------------------------------------------------------------------
60d4b8f8ab | elliptic | 2013-01-28 04:35:53 -0500

Move MONS_ARCANE_FAMILIAR to the end of the enum where it belongs.

--------------------------------------------------------------------------------
b7107e5793 | elliptic | 2013-01-28 04:04:45 -0500

Remove Arcane Familiar from Book of Power (for now).
It seems strange to start out just one of the new spells in a book other
than Conjurations, and I don't think this one is a great fit for Power
anyway.

--------------------------------------------------------------------------------
519ef2ea2e | elliptic | 2013-01-28 03:53:17 -0500

Fix whitespace.

--------------------------------------------------------------------------------
4c3727d17c | DracoOmega | 2013-01-28 03:51:47 -0500

More properly clean up the old level when using wizmode level teleport
This could cause a crash if an arcane familiar was stranded on an old level
and you cast something which would trigger it to fire, but also it seems
sensible that other bits of normal level cleanup should be executed after
a wizmode level change.

--------------------------------------------------------------------------------
0c243a0bb3 | DracoOmega | 2013-01-28 03:51:47 -0500

Change contents of Book of Conjuration
New spell list: Magic Dart, Force Lance, Dazzling Spray,
                Iskenderun's Mystic Blast, Iskenderun's Arcane Familiar,
                Fulminant Prism

--------------------------------------------------------------------------------
b6769cc7b8 | DracoOmega | 2013-01-28 03:51:47 -0500

Add a ministun to all successful knockback attacks
If a monster was knocked back only a single square, it often gave
the impression of never having moved at all, since it would usually
immediately move back into its old position. Stunning it briefly
will at least communicate visually that it has been knocked backward.

--------------------------------------------------------------------------------
486f2cacd0 | DracoOmega | 2013-01-28 03:51:47 -0500

Add Force Lance spell
This is a level 2 pure conjuration which fires a short-range lance
of force at the target. If it inflicts damage, it attempts to knock
the target back (up to two squares). Like other knockbacks, the chance
of this is affected by target body size.

--------------------------------------------------------------------------------
302b18c5e9 | DracoOmega | 2013-01-28 03:51:46 -0500

Let familiars fire when you cast dazzling spray

--------------------------------------------------------------------------------
f388468107 | DracoOmega | 2013-01-28 03:51:46 -0500

Upgrade a bunch of monsters from sense invis to see invis
Multiple monsters had sense invisible without it being clear how
this sense is disconnected from their eyesight. Now that blindness
properly afflicts creatures with see invis but not sense invis, those
whose detection seems sight-based should be possible to blind.

--------------------------------------------------------------------------------
c7c0c122d5 | DracoOmega | 2013-01-28 03:51:46 -0500

Don't let see invis grant blindness immunity
Creatures with see invis can no longer see anything at all while
blinded, be it something normally visible or otherwise. Creatures
with sense invisible, however, retain the ability to detect all nearby
creatures while blinded, both visible and invisible.

--------------------------------------------------------------------------------
06f1a27c4c | DracoOmega | 2013-01-28 03:51:46 -0500

Edit description of blindness now that there are temporary sources

--------------------------------------------------------------------------------
3fc5b91a8f | DracoOmega | 2013-01-28 03:51:46 -0500

Make AUTOMATIC_HIT beams stop tracing once they hit something

--------------------------------------------------------------------------------
109aa9c8dd | DracoOmega | 2013-01-28 03:51:46 -0500

Add Dazzling Spray spell
This is a level 3 conjuration/hexes spell which fires a fan of up to three 
projectiles
that have an HD-based chance of temporarily blinding any creature they hit 
which is
neither undead nor nonliving. The central spray uses stardard beam targeting, 
while
the other two will aim at the closest visible hostiles within a small angle of 
the
primary target.

--------------------------------------------------------------------------------
ec876fccf7 | DracoOmega | 2013-01-28 03:51:46 -0500

Remove fulminant prisms when the player leaves a level
Otherwise, since the fuse does not advance while the player is off-level,
you could return many turns later to find them exploding only now.

Technically this means that placing a prism near some monsters and then
ducking down a stair will prevent the prism from ever exploding on them at
all, but this is probably not an inherantly bad thing either.

--------------------------------------------------------------------------------
d10959727c | DracoOmega | 2013-01-28 03:51:46 -0500

Add Fulminant Prism spell
This is a level 5 conjuration/hexes spell that places a fulminant
prism at a smite-targeted location. The prism gathers charge over
the course of 20 aut, at which point it will detonate with a radius
2 explosion. The prism is very fragile and any monsters killing it
prematurely will result in either no detonation (less than 10 aut
from being conjured) or a weaker radius 1 explosion (10-19 aut).

Both explosion damage and prism durability scale with spellpower
(though the latter is always quite low, so its utility as a conjured
obstacle should hopefully be marginal).

--------------------------------------------------------------------------------
ed429a311b | DracoOmega | 2013-01-28 03:51:46 -0500

Make familiars fire at their foe's current position
If you knocked something back with force lance, the familiar's shot
would still be aimed at its target's old position, resulting in it
often missing entirely.

--------------------------------------------------------------------------------
1f12dd90ba | DracoOmega | 2013-01-28 03:51:46 -0500

Let familiars follow you along stairs if they're close
Now that familiars more properly follow alongside their caster,
let them take the stairs with you. If they're too far away when you
leave the level, the familiar bond will still be cancelled as previously.

--------------------------------------------------------------------------------
85354970a2 | DracoOmega | 2013-01-28 03:51:45 -0500

Make familiars resume following the player if the player can't see their target

--------------------------------------------------------------------------------
338889ca65 | DracoOmega | 2013-01-28 03:51:45 -0500

Make monsters with M_MAINTAIN_RANGE follow the player normally
Instead of curiously trying to maintain firing range at something they're
friendly with.

--------------------------------------------------------------------------------
731738093b | DracoOmega | 2013-01-28 03:51:45 -0500

Refactor fireball to use standard zap routine
The code in the fireball() function was essentially identical to this
already, and it is unclear why it was specifically seperated.

--------------------------------------------------------------------------------
d559fc35df | DracoOmega | 2013-01-28 03:51:45 -0500

Make beams fire safely through familiars (as with orbs of destruction)

--------------------------------------------------------------------------------
615aaf3c9b | DracoOmega | 2013-01-28 03:51:45 -0500

Add Iskenderun's Arcane Familiar spell
This is a level 4 conjurations/charms spell which conjures an arcane familiar 
that
follows the caster around and fires blasts of energy at its creator's target 
whenever
they cast any projectile-based conjuration.

Like orbs of destruction, they cannot be directly commanded, but should 
generally
do their job with minimal fuss on the player's part. Unlike orbs of destruction,
they can be targetted and destroyed by enemies.

The familiar is created with a small number of charges. Each time it fires, a 
charge
is consumed, and the familiar will expire when all these charges are expended
(or after a moderate length of time, if they are not). Only one familiar can be
active at a time, but recasting the spell while one exists will give the 
familiar
additional charges (up to a limit) and also recall it if out of sight.

If it does not have a clear shot at the chosen target, it will attempt to 
reposition
itself so that it does; if it can reach a valid spot before the next player 
turn, it
will fire its own volley, otherwise no shot will be made (though it will 
hopefully
be better positioned so that it can mirror your spell on the following turn).

--------------------------------------------------------------------------------
4453506195 | Adam Borowski | 2013-01-28 02:50:51 +0100

Make non-Fedhas toadstools an unthing.
They're a constant annoyance, need workarounds like auto-killing, serve no
real purpose, and are iffy realism wise: why a freshly killed orc should
grow mushrooms big enough to block passage in shorter time than it takes for
you to kill the orc next to it?  Fedhas' invocation is magic, with no Fedhas
around there's no such explanation.

This commit doesn't purge auto-killing yet, giving us a chance to consider
Eronarn's ideas how to make forest wyrms reasonable.  I'm not sure that even
if those wyrms get in, being able to cut through their spew immediately
after killing the wyrm is that vital.

--------------------------------------------------------------------------------
6b9242bb72 | Adam Borowski | 2013-01-28 00:01:32 +0100

Crash games with bogus clouds when saving rather than loading.
Also, recover affected saves.

This does not fix the underlying bug, merely reduces its consequences.

--------------------------------------------------------------------------------
b9bc147303 | David Lawrence Ramsey | 2013-01-26 17:39:24 -0600

Add a message for priests casting Haste Other.
For now, this only applies to gnoll shamans.

--------------------------------------------------------------------------------
d83e5da0fd | David Lawrence Ramsey | 2013-01-26 17:06:58 -0600

Abstract away checks for unknown gods, instead of checking for GOD_NAMELESS.

--------------------------------------------------------------------------------
7e7ab42913 | David Lawrence Ramsey | 2013-01-26 16:57:35 -0600

Properly put Jiyva's item protection messages in the god channel.

--------------------------------------------------------------------------------
8dc2fcd8fa | David Lawrence Ramsey | 2013-01-26 16:56:49 -0600

Properly apostrophize a few god names instead of hardcoding them.

--------------------------------------------------------------------------------
7c25ddd110 | David Lawrence Ramsey | 2013-01-26 16:21:25 -0600

Consolidate stat checks for the Focus and Shuffle cards wrt god wrath.

--------------------------------------------------------------------------------
9099ef4c9d | David Lawrence Ramsey | 2013-01-26 16:10:57 -0600

Add spacing fix.

--------------------------------------------------------------------------------
703e45fda2 | David Lawrence Ramsey | 2013-01-26 16:01:43 -0600

Fix outdated comment.

--------------------------------------------------------------------------------
263f3ebadd | David Lawrence Ramsey | 2013-01-26 15:24:10 -0600

Comment fix.

--------------------------------------------------------------------------------
2aef85df93 | David Lawrence Ramsey | 2013-01-26 15:15:59 -0600

Make the description of one piety level consistent with the prayer message.

--------------------------------------------------------------------------------
78bd3263dd | David Lawrence Ramsey | 2013-01-26 15:14:01 -0600

Fix inconsistencies with monster god capitalization (affecting TSOites).

--------------------------------------------------------------------------------
ee008cd1ff | David Lawrence Ramsey | 2013-01-26 14:02:21 -0600

Add comment.

--------------------------------------------------------------------------------
8e59df118e | elliptic | 2013-01-25 19:15:28 -0500

Change Polyphemus depth.
For consistency with Arachne and Lamia, make him only start appearing on
Shoals:2.

--------------------------------------------------------------------------------
edb62704c2 | Chris Honey | 2013-01-25 19:15:28 -0500

Buff Polyphemus
The death yak pack has always been the real threat when Polyphemus shows up.
This should change that. Polyphemus now has 150 HP, more damaging attacks,
a larger stack of rocks (10 on average), more HD, normal speed instead of speed
8, and 3 more AC. Polyphemus has needed a buff for a while, and this should be a
good start.

--------------------------------------------------------------------------------
1271bffce8 | Adam Borowski | 2013-01-26 00:40:19 +0100

Force a rebuild of the des cache.
For some reason the 0.11 compat commit causes the builder to find any vaults
if the cache has been created by any older build.  This is puzzling as on-disk
files are byte-to-byte identical except for the minor save tag, and none of
values inside vaults care about any minor tags.

It probably would be safer to find the cause, yet this rebuild seems to work.

--------------------------------------------------------------------------------
35673f843b | Adam Borowski | 2013-01-26 00:40:18 +0100

Restore save compatibility with 0.11 final.
This does not include trunk versions older than some time after 0.11
branching, although you can upgrade such saves in two steps, by loading in
0.11 and then in current trunk.  I doubt this will lead to any troubles
as 0.10 saves are not compatible anyway.

--------------------------------------------------------------------------------
3618f78152 | elliptic | 2013-01-25 18:17:12 -0500

Give HaFi and KoFi bucklers, unrestrict HaFi.
Even though they can use shields (unlike spriggans, which already received
bucklers), SIZE_SMALL species are clearly better suited to use bucklers.

--------------------------------------------------------------------------------
de8e34e7af | Chris Campbell | 2013-01-25 22:01:23 +0000

Fix god-forbidden items not being recoloured
Caused by b7904db5ad04c762b.

--------------------------------------------------------------------------------
f3a4683f4a | Steve Melenchuk | 2013-01-24 22:37:14 -0700

Don't credit player for monsters directly shattered by monster LRD.

--------------------------------------------------------------------------------
0d19ef409e | ontoclasm | 2013-01-24 21:28:20 -0600

Give apocalypse crabs a corpse tile

--------------------------------------------------------------------------------
1d9e15dd87 | ontoclasm | 2013-01-24 21:28:20 -0600

Use wall_catacombs for Sprint, ZotDef, and Arena games

--------------------------------------------------------------------------------
b623f85c84 | David Lawrence Ramsey | 2013-01-24 18:29:37 -0600

Change the monster-inflicted injury mirror message to not use a pronoun.
"It" is not appropriate for monsters with gender or uniques, and we
can't get the proper pronoun if the monster is dead from the damage
anyway.

--------------------------------------------------------------------------------
b651648578 | Steve Melenchuk | 2013-01-24 17:14:30 -0700

Set aux_source for LRD to report death-by-monster-LRD properly.
Without this change, you get the boring "Hit from afar by foo" instead
of, say, "Killed from afar by foo ...with a blast of rock fragments" /
"blasted by foo (blast of rock fragments)".

--------------------------------------------------------------------------------
80fe2f8060 | Neil Moore | 2013-01-24 15:45:38 -0500

Don't call nausea "sickness" (Napkin).

--------------------------------------------------------------------------------
fdb14b7078 | David Lawrence Ramsey | 2013-01-24 14:36:28 -0600

Add spelling fixes.

--------------------------------------------------------------------------------
56f2c5b6e7 | Steve Melenchuk | 2013-01-24 10:47:37 -0700

Don't let trap_monster_doors_1 generate too many early 8s and 9s.
This adjusts the monster set to be 000009 on D <= 10 (the 9 is there to
make it more interesting than just the plain dungeon); 000099 or 000999
on D:11-20, and the original behaviour on D:21+ (either all 8s or
000998).

This may need to be adjusted further, but it is a step in the right
direction - watching players die horribly to multiple D:11 stone giants
just doesn't seem fair.

--------------------------------------------------------------------------------
421b3565c2 | Steve Melenchuk | 2013-01-24 10:02:43 -0700

Nudge up monster Shatter damage.
Previously it was less threatening than the damage-tweaked LRD, which
doesn't really make sense.

This increases the damage by 50%, which should make it more
appropriately threatening against the average player.

--------------------------------------------------------------------------------
bd9d7a8fec | Steve Melenchuk | 2013-01-24 08:40:19 -0700

Revert "Prune duplicate code for LOS attack spells."
The new version of the code isn't particularly well written (though,
apparently, better off than the code it replaces), exhibits problematic
behaviour (#6566), and the original motivation for doing so (having
monsters cast OTR) isn't as pressing due to the lack of monster designs
that use it (there's still the rod of venom, but that can wait for someone
to give this issue the attention it deserves).

Fixes #6566.

This reverts commit b4b189bfd0645a11f2c25c6fb702732516f5bb33.

--------------------------------------------------------------------------------
ca311d7dc6 | ontoclasm | 2013-01-24 01:07:14 -0600

Remove a duplicate tile

--------------------------------------------------------------------------------
4b57057929 | elliptic | 2013-01-24 01:17:21 -0500

Be more consistent about lich skeletalness.
Judging from both monster and player ::is_skeletal(), DCSS liches aren't
actual skeletons (they are just desiccated corpses I guess), so player
liches shouldn't be LRDable and take extra damage from Shatter (this was
inconsistent with monster liches).

--------------------------------------------------------------------------------
e8bdec03a1 | ontoclasm | 2013-01-23 23:20:21 -0600

Catacomb-style wall tiles (denzi, 3870)

--------------------------------------------------------------------------------
db6086fdba | Steve Melenchuk | 2013-01-23 21:32:22 -0700

Up monster LRD power.
It was kind of useless before; this makes it respectable again.

--------------------------------------------------------------------------------
be143b1a9e | Neil Moore | 2013-01-23 20:58:13 -0500

Another changelog item (HangedMan).

--------------------------------------------------------------------------------
6fe57a6b3f | Neil Moore | 2013-01-23 20:28:12 -0500

Whitespace fixes.
Remember to run checkwhite, folks.

--------------------------------------------------------------------------------
fbda6e2d33 | Neil Moore | 2013-01-23 20:25:59 -0500

Update changelog to 0.12-a0-1808-gb42fc8b.

--------------------------------------------------------------------------------
b42fc8b403 | David Lawrence Ramsey | 2013-01-23 11:20:13 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
c8e7509643 | Steve Melenchuk | 2013-01-23 10:10:36 -0700

Don't let chaos butterflies spam twisters.
Once in a while is manageable (you can run faster than the radius allows
for, and it doesn't do an excessive amount of damage). Three in the span
of three turns (as seen in recent gameplay) is excessive.

This limits use of the ability by introducing a twenty turn cooldown
between uses.

If this still seems to be excessive, it can be toned town further.

--------------------------------------------------------------------------------
b6eef13519 | Chris Campbell | 2013-01-23 14:08:23 +0000

Don't trigger Contam effects when melding equipment

--------------------------------------------------------------------------------
57360d1641 | ontoclasm | 2013-01-23 03:06:09 -0600

Deck tiles

--------------------------------------------------------------------------------
7dd0b3b6ee | elliptic | 2013-01-23 03:10:27 -0500

Increase damage of Venom Bolt and Bolt of Magma.
These spells weren't used much (aside from VMs with nothing else) even when
Vehumet's MP reduction encouraged L5 spell usage, so let's make them more
competitive with the other L5-6 conjurations.

--------------------------------------------------------------------------------
ee4f5cfb8e | ontoclasm | 2013-01-23 01:30:15 -0600

Darken acid floors

--------------------------------------------------------------------------------
9dcf061a30 | Adam Borowski | 2013-01-23 05:32:58 +0100

Axe an unused function.

--------------------------------------------------------------------------------
2722df2539 | Adam Borowski | 2013-01-23 05:21:11 +0100

Comment what some enchantments do.
Might be good to eradicate some duplication.

--------------------------------------------------------------------------------
ad68f12d7b | Adam Borowski | 2013-01-23 04:42:32 +0100

Randomize the duration of bad forms, including porkalator.
Also, there's a minimum now so near-zero power has at least some duration.

--------------------------------------------------------------------------------
0088057967 | Darshan Shaligram | 2013-01-22 20:42:36 -0500

Fix vault_placement level_number defaulting to 0 (mumra).

--------------------------------------------------------------------------------
c463e898c0 | Chris Campbell | 2013-01-22 22:09:41 +0000

Add a prompt for casting Corpse Rot if standing on a corpse

--------------------------------------------------------------------------------
d3a955ca4d | David Lawrence Ramsey | 2013-01-22 15:50:48 -0600

Make gnoll shamans priests instead of actual spellcasters; it fits them better.

--------------------------------------------------------------------------------
1992dcdee3 | David Lawrence Ramsey | 2013-01-22 12:09:48 -0600

Constify.

--------------------------------------------------------------------------------
72c8824081 | Steve Melenchuk | 2013-01-22 09:54:06 -0700

Fix Lamia's HP.
This gives her 200 HP, comparable to other HD 18 uniques (Saint Roka
with 200, Nikola with 190).

--------------------------------------------------------------------------------
a270c96595 | Chris Campbell | 2013-01-22 16:41:22 +0000

Let Xom sometimes summon shadow creatures instead of demons

--------------------------------------------------------------------------------
b6e9bbcc9e | Chris Campbell | 2013-01-22 16:41:22 +0000

Remove Xom's hostile animate weapon
It was one of the most annoying bad effects but could also be
frequently avoided by always remembering to unwield your weapon while
resting or exploring.

--------------------------------------------------------------------------------
d71513d480 | Steve Melenchuk | 2013-01-22 09:30:37 -0700

Lamia: OTR -> poison arrow.
OTR's useless against a properly equipped player; parrow isn't.

There have been some concerns raised about parrow being overused in late
Snake, but since she has a strong chance of appearing significantly
earlier than the rest of the Snake enemies that can use it, it should
not be too much of a problem.

--------------------------------------------------------------------------------
94a3439703 | Steve Melenchuk | 2013-01-22 09:22:36 -0700

Allow for guaranteeing "once-in-a-band" monsters in band generation.
This is to make two changes:
- Polyphemus gets a catoblepas in his death yak pack;
- Lamia gets two guaranteed greater nagas.

--------------------------------------------------------------------------------
a2abb6f906 | Steve Melenchuk | 2013-01-22 09:15:09 -0700

Set natural_leader for Lamia band to get "led by" death messages.
This was overlooked on the first pass for some reason.

--------------------------------------------------------------------------------
5f745de82b | Steve Melenchuk | 2013-01-21 22:48:33 -0700

Make upper bound for Rogue's Gallery D:20 instead of D:16.
This is in response to complaints that the enemies are too powerful for
D:16.

--------------------------------------------------------------------------------
d2ee506341 | Adam Borowski | 2013-01-22 06:02:54 +0100

Allow reading a book's description even while in wisp form.
To check: tiles, webtiles.

--------------------------------------------------------------------------------
dbf8008bfe | Neil Moore | 2013-01-21 18:14:29 -0500

Don't self-banish maelstroms in abyss or zig.
Spatial maelstroms were self-banishing everywhere: if they were in the
Abyss, !player_in_branch(BRANCH_ZIGGURAT) was true, and vice versa.

--------------------------------------------------------------------------------
aa8cda4569 | Neil Moore | 2013-01-21 18:06:21 -0500

Refactor a confusing boolean expression.
The change 3/13 => 4/13 is not a typo: in the previous code, if the 3/13
chance failed, the 1/10 chance would be checked as a fallback; this
sequence of events had a 1/13 chance of happening.

--------------------------------------------------------------------------------
245b21061f | Steve Melenchuk | 2013-01-21 14:33:32 -0700

Jorgrun: remove Iron Shot, add Leda's Liquefaction.
This makes things a bit more of a tactical challenge, and tries to
address the Iron Shot spam with uniques at that depth.

--------------------------------------------------------------------------------
7fdd66aeb6 | Steve Melenchuk | 2013-01-21 14:03:24 -0700

Change Jorgrun's 2/3 staff of crushing to a quarterstaff of crushing.

--------------------------------------------------------------------------------
7e29a42beb | elliptic | 2013-01-21 14:28:11 -0500

Make Vehumet wrath cause destructive spells to explode in your face sometime.
Modeled on Kiku wrath.

--------------------------------------------------------------------------------
aafe17c9b5 | elliptic | 2013-01-21 13:34:37 -0500

Remove the summoning half of Vehumet wrath.

--------------------------------------------------------------------------------
eb12015796 | ontoclasm | 2013-01-21 11:45:32 -0600

Unflip s_u

--------------------------------------------------------------------------------
8f3acb8778 | elliptic | 2013-01-21 12:23:04 -0500

Increase the size of the Vehumet gift timeout.
People were getting all their gifts before finishing Lair.

--------------------------------------------------------------------------------
454a7e7d04 | elliptic | 2013-01-21 12:23:04 -0500

Increase the elemental weighting for Vehumet gifts.

--------------------------------------------------------------------------------
8a9bbc2ab5 | Steve Melenchuk | 2013-01-21 08:35:40 -0700

Tag chaos butterflies with M_NO_POLY_TO.
As pointed out by elliptic, having shapeshifters pollute, say, branch
ends with water and twisters just isn't a good idea.

--------------------------------------------------------------------------------
bcbe302bf3 | ontoclasm | 2013-01-21 01:54:13 -0600

Display disjunction properly in WebTiles

--------------------------------------------------------------------------------
5ee08d1f5a | elliptic | 2013-01-21 01:27:34 -0500

Weight Vehumet spell gifts based on your elemental skills.

--------------------------------------------------------------------------------
5601ff7d2e | ontoclasm | 2013-01-20 23:23:33 -0600

Flip something_under, new_stair

--------------------------------------------------------------------------------
9dcb903cc9 | David Lawrence Ramsey | 2013-01-20 23:20:21 -0600

Fix indentation.

--------------------------------------------------------------------------------
6e4f3b7e70 | Steve Melenchuk | 2013-01-20 21:57:03 -0700

Tag Jorgrun with M_NO_REGEN.
He's a deep dwarf, so he shouldn't regenerate.

--------------------------------------------------------------------------------
4627f03851 | Steve Melenchuk | 2013-01-20 21:40:19 -0700

Don't ignore chaos butterflies by default for autoexplore purposes.
This changes the runrest_ignore_monster default setting to strictly
match butterflies alone instead of any monster with butterfly in the
name.

--------------------------------------------------------------------------------
488e6427bb | Steve Melenchuk | 2013-01-20 21:40:19 -0700

Tiles for Jorgrun and Lamia; use colour-cycling butterfly for chaos butterfly.
The two new tiles are variants of the deep dwarf necromancer and greater
naga respectively. Feel free to come up with something better in their
place.

--------------------------------------------------------------------------------
4dc38f5e80 | Steve Melenchuk | 2013-01-20 21:40:19 -0700

Chaos butterflies!
They are similar to some of the moth enemies, possessing a chaos attack
and the special ability to be constantly surrounded by rain clouds (similar
to Asmodeus and his ring of flames), as well as the ability to summon
twisters.

They are considered abyssal monsters.

--------------------------------------------------------------------------------
257c0c8c3d | Steve Melenchuk | 2013-01-20 21:40:19 -0700

New unique: Lamia, as a naga queen.
Lamia can be thought of as a "greatest naga", though differentiated
through the spell set - which is comprised of IOOD, Mesmerise, Haste,
Olgreb's Toxic Radiance, and Teleport Self as an emergency spell. She is
generated with a naga barding, one of a halberd, glaive, or bardiche,
and a band of followers up to and including greater nagas.

She also can eat corpses, so she can, in fact, eat her own children.

--------------------------------------------------------------------------------
fdab6a44a4 | Steve Melenchuk | 2013-01-20 21:40:19 -0700

New unique: Jorgrun, the dwarven earth elementalist.
Spells: Iron Shot, Petrify, Stoneskin, LRD, Shatter, Blink (as escape).

--------------------------------------------------------------------------------
deb67384cc | ontoclasm | 2013-01-20 22:08:31 -0600

Hilight Vehumet gifts in the tiles mem. tab

--------------------------------------------------------------------------------
527d90b74b | ontoclasm | 2013-01-20 21:17:55 -0600

Memorise ability tile

--------------------------------------------------------------------------------
5988946c8c | elliptic | 2013-01-20 22:16:32 -0500

Fix tiles compilation.

--------------------------------------------------------------------------------
eb9c13a746 | David Lawrence Ramsey | 2013-01-20 21:17:45 -0600

Remove a magic number for Vehumet piety.

--------------------------------------------------------------------------------
14ac3760d3 | elliptic | 2013-01-20 22:07:50 -0500

Allow memorizing a Vehumet gift even at 100% fail.
The alternative is not to gift spells at 100% fail, but that might cause
players to wear/not wear wizardry to try to control their gifts. Besides,
Vehumet wizardry makes it feasible to get any spell usable with a little
time.

--------------------------------------------------------------------------------
3ef23371e3 | elliptic | 2013-01-20 21:48:36 -0500

Switch Vehumet-gifted spells to use the memorization interface (elliott).
Also, now there is no time limit on memorizing the offered spells, though
they will be overwritten by new offers.

--------------------------------------------------------------------------------
b4b189bfd0 | Steve Melenchuk | 2013-01-20 18:35:59 -0700

Prune duplicate code for LOS attack spells.
This commit merges the handling for Drain Life, Ozocubu's Refrigeration,
and Olgreb's Toxic Radiance, which shared a lot of duplicate code, into
one code path. This includes the player and monster implementations of
these spells.

Yes, this means monsters can now cast OTR (watch out for rods of
venom!); the tweaks to allow ghosts to do this are in place as well.

This changes the signature of the dlua function spells.toxic_radiance;
as far as I am aware this function is not currently used anywhere. (Now,
who wants to start work on Olgreb's Toxic Radiator?)

--------------------------------------------------------------------------------
02f53164f5 | David Lawrence Ramsey | 2013-01-20 17:04:52 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
ad811aa0a3 | Brendan Hickey | 2013-01-20 14:49:31 -0800

Corruption: Retry on ineligible monsters
Do not summon holy monsters on corruption.
Retry monster selection if we receive an ineligible monster.

--------------------------------------------------------------------------------
42e2b60969 | ontoclasm | 2013-01-20 16:39:25 -0600

Abyssal stair and exit tiles

--------------------------------------------------------------------------------
8d846c9821 | David Lawrence Ramsey | 2013-01-20 16:35:08 -0600

Unify mons_is_native_in_branch() for the Abyss and mons_is_abyssal_only().

--------------------------------------------------------------------------------
14c2b7ba59 | David Lawrence Ramsey | 2013-01-20 16:11:44 -0600

Also mark eldritch tentacle segments as abyssal-only.
They're part of eldritch tentacles, which are in that list already.

--------------------------------------------------------------------------------
33f1df76fe | David Lawrence Ramsey | 2013-01-20 16:04:45 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
0ca470a3b3 | Brendan Hickey | 2013-01-20 13:22:29 -0800

Abyss Monster Probabilities
Increase the likelihood of Apocalypse Crabs, decrease the likelihood of Lurking 
Horrors.

--------------------------------------------------------------------------------
cbcea533cd | Brendan Hickey | 2013-01-20 10:12:49 -0800

Self banish Spatial Maelstroms who escape the abyss

--------------------------------------------------------------------------------
3270b88c02 | DracoOmega | 2013-01-20 17:22:39 +0000

Make temporary mutations expire when the player gains xp, rather than over time.
The xp cost is randomized and proportionately decreased for characters under 
level 17 (to keep characters banished at a very low level from needing to gain 
multiple levels just to clear a couple mutations)

A single kill removes at most one batch of mutations, no matter how much xp it 
provides (otherwise a single ancient lich kill can clear dozens of mutations at 
once, which I think is undesierable)

--------------------------------------------------------------------------------
d67fa0f8d4 | Chris Campbell | 2013-01-20 16:50:22 +0000

Merge branch 'vehumet'

--------------------------------------------------------------------------------
d48edd72c0 | Chris Campbell | 2013-01-20 16:36:00 +0000

Shorten the list of abyss-only monsters
This allows corruption to create starcursed masses, tentacled
starspawns, thrashing horrors and apocalypse crabs. These should all
hopefully work okay outside the Abyss.

--------------------------------------------------------------------------------
4a6a2734e7 | David Lawrence Ramsey | 2013-01-20 09:13:19 -0600

Remove redundancy: spatial maelstroms are abyssal.

--------------------------------------------------------------------------------
04dd302ff2 | Adam Borowski | 2013-01-20 15:50:59 +0100

Fix a bunch of compiler warnings in tiles.

--------------------------------------------------------------------------------
7be5cb3070 | Adam Borowski | 2013-01-20 15:50:58 +0100

Rename WM_* to WME_*, because Windows.
It's a bad idea to reuse the names of one of core win32 concepts for
something similar but distinct.

--------------------------------------------------------------------------------
895ea411bb | Adam Borowski | 2013-01-20 15:48:56 +0100

Delete an unused function and related enums.

--------------------------------------------------------------------------------
8811394ea5 | Adam Borowski | 2013-01-20 15:48:56 +0100

Don't let abyssals follow you out of the Abyss.

--------------------------------------------------------------------------------
e58b0577a6 | David Lawrence Ramsey | 2013-01-20 08:41:27 -0600

Add formatting fixes, and make one function static.

--------------------------------------------------------------------------------
17fa88bde6 | ontoclasm | 2013-01-20 04:55:51 -0600

Bone tiles

--------------------------------------------------------------------------------
d40ebff133 | ontoclasm | 2013-01-20 04:37:54 -0600

Additional blood edits

--------------------------------------------------------------------------------
713c394eb3 | ontoclasm | 2013-01-20 02:17:39 -0600

Lugonu invoc tile edits

--------------------------------------------------------------------------------
0ae31d5ae7 | Brendan Hickey | 2013-01-19 22:52:22 -0800

Abyss: More Wastes
Increase Wastes frequency to 0.3%

--------------------------------------------------------------------------------
fb643e29a8 | Brendan Hickey | 2013-01-19 22:47:19 -0800

Abyss: The Wastes
A very rare (0.0004% by area) layout that's very sparse and rapidly changing.

--------------------------------------------------------------------------------
868325f05b | Brendan Hickey | 2013-01-19 22:47:19 -0800

Fix abyss wizmode teleports

--------------------------------------------------------------------------------
bdd85bd3ff | David Lawrence Ramsey | 2013-01-20 00:18:45 -0600

Add formatting fix.

--------------------------------------------------------------------------------
bbed0266e4 | DracoOmega | 2013-01-20 00:17:36 -0600

Remove the draining side-effect of lurking horror explosions
It turns out that the draining blast actually did no damage in the first
place and so the explosion was rather misleading. And it's also
questionable that it even should do damage, given the torment its already
inflicting. Instead, just remove the draining effect completely.

--------------------------------------------------------------------------------
7df28bf2a8 | David Lawrence Ramsey | 2013-01-19 23:30:39 -0600

Make Fedhas' plant allies follow you en masse, as Yred and Beogh do.
This fits due to Fedhas' use of permanent followers.  It, of course,
excludes stationary plants, since stationary monsters can't travel
between levels anyway.

--------------------------------------------------------------------------------
5e4ffaf340 | David Lawrence Ramsey | 2013-01-19 23:29:04 -0600

Properly make is_follower() handle friendly plants under Fedhas.

--------------------------------------------------------------------------------
5a6c22f982 | Steve Melenchuk | 2013-01-19 11:29:54 -0700

Remove Lua references to removed miniwizlab Vaults vaults (#6550).
423a806 removed the vaults needed for this batch of code to work, which
was throwing Lua errors.

--------------------------------------------------------------------------------
49d2b5b120 | Chris West | 2013-01-19 16:46:47 +0000

improved background and restore routines for Android; now traps WM_ACTIVEEVENT 
instead of using callbacks

--------------------------------------------------------------------------------
3ad13c440b | Chris West | 2013-01-19 16:46:47 +0000

improved laggy input on android by ignoring custom events (possibly 
emulator-specific?)

--------------------------------------------------------------------------------
8372df57dd | Chris West | 2013-01-19 16:46:47 +0000

updated sdl-android (h/w keys now work again)

--------------------------------------------------------------------------------
50c2852ae7 | Chris West | 2013-01-19 16:46:47 +0000

fixed issue with crawl not closing when sent to background in Android

--------------------------------------------------------------------------------
b72183a640 | Chris West | 2013-01-19 16:46:46 +0000

fixed compilation bug under Android

--------------------------------------------------------------------------------
fd1dd18e5c | Chris West | 2013-01-19 16:46:46 +0000

updated sdl-android (API call for physical screen size)

--------------------------------------------------------------------------------
7900a79b50 | Chris West | 2013-01-19 16:46:46 +0000

changed autodetection of layout to use physical screen dimensions for android

--------------------------------------------------------------------------------
991b1e00d6 | Steve Melenchuk | 2013-01-19 09:31:35 -0700

Don't let layout_chaotic_city mangle vaults.
dgn_replace_area, called at the start of the process, wasn't getting
passed an MMT_VAULT flag, so it would clear out rock walls from vaults
if the vault was placed before the map generation process started (a key
point in letting layouts be used with vaults).

--------------------------------------------------------------------------------
51dec9dad2 | Vsevolod Kozlov | 2013-01-19 11:08:20 +0400

abyss.des: Use per-depth chances.

--------------------------------------------------------------------------------
85fca068c8 | Chris Honey | 2013-01-19 01:24:54 -0500

Reveal teleport traps in multiple vaults.
A handful of vaults had teleport traps that caused players to randomly
teleport multiple times if they failed to manually exclude the squares.
Now that dangerous vaults have runed doors to prevent autoexplore traps,
revealing bad teleport traps to the player to prevent multiple random
teleports as a result of one vault seems like a logical next step.

--------------------------------------------------------------------------------
de95e648d8 | David Lawrence Ramsey | 2013-01-18 20:04:41 -0600

Sort the list of abyssal monsters.

--------------------------------------------------------------------------------
5968c0aca6 | Adam Borowski | 2013-01-19 02:37:41 +0100

Don't let Corruption spawn MH_ELDRITCH monsters outside the Abyss.
Spatial maelstroms can do permanent damage to the level, them and most
others are nasty to other members of a crowd.  So let's keep them at home,
there's enough demons and stuff for guest gigs.

(This commit goes by theme rather by necessity, if that's a problem the
list can be trimmed down.)

--------------------------------------------------------------------------------
8671e2d659 | Adam Borowski | 2013-01-19 02:37:00 +0100

Remove all legitimate uses of sighup_save_and_exit().
All remaining ones are save-corrupting bugs.

--------------------------------------------------------------------------------
648c44d23d | elliptic | 2013-01-18 19:28:10 -0500

s/iron golem/goliath beetle/ in two altar vaults.
Overflow altars shouldn't contain unkillable monsters that are very dangerous
for nagas and Chei worshippers. Goliath beetle is at the correct Chei speed,
too.

--------------------------------------------------------------------------------
ba7d4b7e00 | Chris Campbell | 2013-01-18 22:21:46 +0000

Rename GOD_ONLY_BOOK to RARE_BOOK
Since they weren't really "god only" anyway, they're just special in
that they're hard to read and their spells won't show up in
(non-Sif-gifted) randarts.

--------------------------------------------------------------------------------
ded36f682e | Chris Campbell | 2013-01-18 22:01:30 +0000

Don't name summoning randbooks after Vehumet

--------------------------------------------------------------------------------
29e9e62448 | Chris Campbell | 2013-01-18 22:01:17 +0000

Remove Vehumet's link to Annihilations too
Since he no longer cares particularly about books at all, he doesn't
need to let you memorise from Annihilations.

--------------------------------------------------------------------------------
d2399ca45a | elliptic | 2013-01-18 16:21:52 -0500

Make Veh gift only two L1 spells.

--------------------------------------------------------------------------------
4e00fb9169 | elliptic | 2013-01-18 16:18:50 -0500

Change Vehumet gift timing.
The first six gifts are pretty regularly spaced between * and *****. After
that, add a timeout and make the gifts more irregular.

--------------------------------------------------------------------------------
3005e001ee | elliptic | 2013-01-18 16:18:25 -0500

Remove comment.
I'm not sure a weighting is necessary here.

--------------------------------------------------------------------------------
b704acc4a1 | elliptic | 2013-01-18 15:18:36 -0500

Shift piety requirements for Vehumet wizardry and range extension up by 1.
So that the high end of Vehumet piety doesn't feel quite so empty. (Though
high piety is still important for getting higher level spells.)

--------------------------------------------------------------------------------
eb20eef12b | elliptic | 2013-01-18 15:04:19 -0500

Vehumet no longer has anything to do with the Grand Grimoire.

--------------------------------------------------------------------------------
b7fd42b107 | elliptic | 2013-01-18 15:01:07 -0500

Remove Vehumet's MP discount for supported L5+ spells.
The sharp cutoff between L4 and L5 never worked very well; why would you ever
use a L4 spell if you could just spam fireballs for 4 MP or L6 spells for 5
MP? This ability created an artificial change in spell balance for Vehumet
characters, so let's remove it for new Vehumet.

--------------------------------------------------------------------------------
f9a65b5080 | elliptic | 2013-01-18 14:52:38 -0500

Tweak the Vehumet spell selection formulas a little.
Previously you were nearly guaranteed to get all high-level spells, now you
will miss some.

--------------------------------------------------------------------------------
eb7c2cd37a | elliptic | 2013-01-18 14:50:31 -0500

Let Vehumet spell offerings repeat closer together.
This way if you reject a spell because you don't have the slots, you have at
least some chance of being offered it again.

--------------------------------------------------------------------------------
64dcaf09aa | elliptic | 2013-01-18 14:09:36 -0500

Add is_player_spell, use that in Veh gifting.

--------------------------------------------------------------------------------
6af1ec204d | Chris Campbell | 2013-01-18 18:21:11 +0000

Fix dragon form being unable to use wands
This was unintentionally caused by b8d5efd75.

--------------------------------------------------------------------------------
b13b9dbd7c | Florian Diebold | 2013-01-18 09:52:43 +0100

Fix a crash with detected items in tiles.
Caused by the autopickup FixedBitVector-ification.

--------------------------------------------------------------------------------
f61b974c66 | Steve Melenchuk | 2013-01-17 19:45:01 -0700

grunt_snake_rune_pools (part of #6542).

--------------------------------------------------------------------------------
010eeee263 | Adam Borowski | 2013-01-18 02:50:04 +0100

Revert "Eliminate a dummy variable."
Wasn't so dummy after all.
This reverts commit 88b3293c1ba521fd8b8145a08c6d999b7ae94ac1.

--------------------------------------------------------------------------------
dd09c771ec | Adam Borowski | 2013-01-18 01:44:12 +0100

We don't talk about secret doors here.

--------------------------------------------------------------------------------
fbf32be354 | Adam Borowski | 2013-01-18 01:44:11 +0100

Spelchekarize polish descs.

--------------------------------------------------------------------------------
9fe4449148 | Adam Borowski | 2013-01-18 01:44:11 +0100

A pair of tools to operate on just keys or values of a db file.
This allows to spelchekarize a translation, pass a file through Google
Translate for an initial seed, etc.

--------------------------------------------------------------------------------
2ff836b27c | Adam Borowski | 2013-01-18 01:44:11 +0100

Don't special-case the desc of Boris' regeneration.
It suggested he's so much better at it than other liches, which is not
needed.  There's no way to tell whether that lich you met on Crypt:5 is
the same as that one you dispatched on Crypt:3, with liches being
indistinguishable in absence of special marks.

--------------------------------------------------------------------------------
4d90ed349f | Adam Borowski | 2013-01-18 01:44:11 +0100

Hide bitmaskness of options.autopickups

--------------------------------------------------------------------------------
213b1b475f | Adam Borowski | 2013-01-18 01:44:11 +0100

Let checkwhite eradicate BOMs it finds.

--------------------------------------------------------------------------------
716dd22852 | Chris Campbell | 2013-01-17 23:50:42 +0000

Don't give Ely piety for pacifying summons (crate)

--------------------------------------------------------------------------------
6ef4816422 | Jason Van | 2013-01-17 13:24:11 -0700

Flavour vault transparency/mini-floating/extrafying, D decor
Tag most no-threat no-item floating and minivaults with transparency,
mini_float, and extra as appropriate (with depth checks for some hells
and overflow altars past overflow altar spawning depth). With this done,
tag most of these vaults further with "decor", and place one of said
vaults 80% of the time on D:13-27 to increase the variety in middle-late
D with mostly harmless further terrain.

Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
83d83db78d | Chris Campbell | 2013-01-17 18:46:13 +0000

Don't give abyss spawning messages when detecting mimics

--------------------------------------------------------------------------------
babae3465b | Chris Campbell | 2013-01-17 18:14:07 +0000

Give mirror damage its own kill_method_type
KILLED_BY_REFLECTION was intended for shields of reflection, and
produced awkward messages for mirror damage deaths.

--------------------------------------------------------------------------------
c46dff13ba | David Lawrence Ramsey | 2013-01-16 23:58:58 -0600

Fix Mantis 6541: Fix wording of Shatter description.

--------------------------------------------------------------------------------
d218f2733c | elliptic | 2013-01-16 16:08:36 -0500

Vehumet-eligible spell list changes.
Just cleaning up some things and introducing a minimum spell level that
increases as you are offered spells. This can't really be tested completely
until I figure out how to allow the Annihilations-specific spells, and it
will need tweaking.

--------------------------------------------------------------------------------
187787f6a7 | elliptic | 2013-01-16 14:54:20 -0500

Don't gift spells of higher level than the player's XL.

--------------------------------------------------------------------------------
c3064fffbe | Raphael Langella | 2013-01-16 13:35:40 +0100

Fix a local tiles compiler warning and some formatting.

--------------------------------------------------------------------------------
2596aba51c | Raphael Langella | 2013-01-16 13:19:45 +0100

Make explosion targetter ignore plants (#6539).

--------------------------------------------------------------------------------
7464318261 | Chris Campbell | 2013-01-15 23:55:46 +0000

Let powered by pain sometimes give might or agility effects
Could do with better mutation descriptions if anyone has any ideas.

--------------------------------------------------------------------------------
f1b9dbc53c | elliptic | 2013-01-15 18:21:49 -0500

Decrease trident accuracy.

--------------------------------------------------------------------------------
ae541dd3f5 | elliptic | 2013-01-15 18:01:17 -0500

Remove warning for wielding a qstaff or lajatang with a shield, since that is 
impossible.

--------------------------------------------------------------------------------
bcabc470e9 | elliptic | 2013-01-15 18:01:17 -0500

Remove HANDS_HALF.
1.5-handed weapons were supposed to be differentiated from 1-handed weapons
by having larger penalties to accuracy, damage, and delay when used with a
shield with not enough Shields skill. This was not a very large difference,
especially since it disappeared after raising Shields skill; the main
effect was making trident + shield less good in the early game for
fighters. And confusing players, of course.

In fact, bugs were present ever since 0.10 that meant that 1.5-handed
weapons actually had the same penalties to damage and delay as 1-handed
weapons. So instead of putting those unnoticeable penalties back in, let's
remove HANDS_HALF. A couple notes:

* This commit shouldn't change which weapons are usable with a shield for
  any race. This required refactoring the code and changing some weapon
  sizes, but those sizes are only used to determine handedness and
  wieldability anyway. This is how the weapon sizes are currently used
  for one-handed weapons:
  - SIZE_LITTLE one-handed weapons are one-handed for everyone
  - SIZE_SMALL one-handed weapons are two-handed for spriggans only
  - SIZE_MEDIUM one-handed weapons are two-handed for all the small races

* Blowguns no longer have a small penalty for being used with a shield.
  This can be added back in if desired, but it was previously implemented
  using HANDS_HALF and seems fairly unimportant.

--------------------------------------------------------------------------------
7f4492e595 | Steve Melenchuk | 2013-01-15 14:19:29 -0700

Force connectedness of layout_basic by connecting upstairs together.
This doesn't appear to impact cases where layout_basic generates
connected layouts, but it does ensure that it can never generate a
disconnected layout.

If a shaft area is being generated, it is also connected to the rest of
the layout; thus, this change should fix #6534.

--------------------------------------------------------------------------------
d8ac630b78 | David Lawrence Ramsey | 2013-01-15 10:46:09 -0600

Comment fix.

--------------------------------------------------------------------------------
7160bd7e0d | David Lawrence Ramsey | 2013-01-15 10:30:04 -0600

Simplify.

--------------------------------------------------------------------------------
655e2edeea | David Lawrence Ramsey | 2013-01-15 00:27:32 -0600

Properly use random_choose_weighted() in summon_any_dragon().

--------------------------------------------------------------------------------
1b460118bb | Darshan Shaligram | 2013-01-14 22:08:19 -0500

Always log killermap if not empty.

--------------------------------------------------------------------------------
423b5a2ed2 | Chris Campbell | 2013-01-15 01:44:27 +0000

Clarify INSTALL.txt msysgit links
Just link to the netinstaller, remove a confusingly worded note.

--------------------------------------------------------------------------------
f602f34eb0 | elliptic | 2013-01-14 05:27:46 -0500

Remove references to humans always having 0 apts.

--------------------------------------------------------------------------------
1b04505070 | Darshan Shaligram | 2013-01-14 01:30:36 -0500

Reset fog machine if it hits the countdown limit.

--------------------------------------------------------------------------------
47f8aa0035 | Neil Moore | 2013-01-14 01:28:27 -0500

Use logical punctuation quoting.
Also, remove the BOM from the BOM-bah-BOM-bah-BOM.

--------------------------------------------------------------------------------
a654f9c6bf | Darshan Shaligram | 2013-01-14 01:25:20 -0500

Fix fog machines handling large elapsed times badly.

--------------------------------------------------------------------------------
da12a28fbd | ontoclasm | 2013-01-13 23:39:02 -0600

Margery tile (and matching description)

--------------------------------------------------------------------------------
97cef9e042 | ontoclasm | 2013-01-13 21:59:22 -0600

Mold tiles

--------------------------------------------------------------------------------
887c968892 | ontoclasm | 2013-01-13 21:03:26 -0600

Recolor sensed monster tokens

--------------------------------------------------------------------------------
1ba3621f93 | Steve Melenchuk | 2013-01-13 19:53:51 -0700

Fix monster Shatter damage.
It was nine times less than originally designed, thanks to f52c4c0
incorrectly reimplementing a prior call to monster::skill as a division
instead of a multiplication (xref: monster.cc:4054).

--------------------------------------------------------------------------------
0785a68216 | Chris Oelmueller | 2013-01-13 20:46:02 -0600

Change size of stone giant and titan to GIANT
Previously HUGE even if the comment explaining GIANT explicitly states
that it is intended for use with giants.
Also changed respective stone giant uniques (the iron giant, Chuck).

--------------------------------------------------------------------------------
ea8ac21805 | ontoclasm | 2013-01-13 20:35:00 -0600

Blood tile cleanup

--------------------------------------------------------------------------------
e2dcbf17cc | Chris Oelmueller | 2013-01-13 20:20:38 -0600

Fix spacing

--------------------------------------------------------------------------------
4bf4fb7d05 | David Lawrence Ramsey | 2013-01-13 20:13:26 -0600

Fix Mantis 6529: Properly display boosted AC in blue on the "%" screen.
This handles both stoneskin and icy armour, as is done on the main HUD.
Also, fix the same problem for boosted EV, which previously wasn't
displayed in blue on the "%" screen for phase shift.

--------------------------------------------------------------------------------
9aa0d05912 | ontoclasm | 2013-01-13 19:27:32 -0600

Disjunction spell tile.

--------------------------------------------------------------------------------
cd335bb140 | David Lawrence Ramsey | 2013-01-13 18:06:10 -0600

Add comment.

--------------------------------------------------------------------------------
f8bea7efb5 | Raphael Langella | 2013-01-14 00:16:11 +0100

Allow toggling stack to expand shop inventory in search results.
Search for "shop" and press - to quickly see all available goods on the market.

--------------------------------------------------------------------------------
e113f06908 | Darshan Shaligram | 2013-01-13 18:12:52 -0500

Don't crash if player is teleported by abyss vault placement.

--------------------------------------------------------------------------------
dad6e4ce9c | Darshan Shaligram | 2013-01-13 17:27:51 -0500

Save subvaults, tag vault monsters.
Save subvaults in vault_placement with their parent mapdefs, include subvault
names when generating logfile entries.

Tag monsters with the name of the map that placed them, and write a killermap
field to the logfile if the killer was placed by a map, and the player did not
die in that same map.

--------------------------------------------------------------------------------
028bef3b72 | David Lawrence Ramsey | 2013-01-13 15:04:11 -0600

Tweak message spacing to take up slightly less room in the binary.

--------------------------------------------------------------------------------
471e49cfa1 | David Lawrence Ramsey | 2013-01-13 15:00:16 -0600

Constify.

--------------------------------------------------------------------------------
4df41b39bc | Steve Melenchuk | 2013-01-13 13:16:15 -0700

Reinstate note about !/? on abilities screen (#6526).
This was broken inadvertently in 0.12-a0-2-g661b871 /
0.11-b1-2-geecd73d.

--------------------------------------------------------------------------------
b957c737d3 | Adam Borowski | 2013-01-13 12:04:38 +0100

Axe a few invalid comments.

--------------------------------------------------------------------------------
c17a272c4f | ontoclasm | 2013-01-13 00:03:14 -0600

Rod of the Swarm tile.

--------------------------------------------------------------------------------
8968c45923 | ontoclasm | 2013-01-12 22:18:08 -0600

Disjunction aura tiles.

--------------------------------------------------------------------------------
1a32ccd05a | Chris Campbell | 2013-01-13 01:57:24 +0000

Fix spelling (ChrisOelmueller)

--------------------------------------------------------------------------------
aca55f492c | Chris Campbell | 2013-01-12 16:20:20 +0000

Speed up lurking horrors a bit, make their draining radius 2

--------------------------------------------------------------------------------
048d9668e7 | Adam Borowski | 2013-01-12 15:26:24 +0100

Constify.

--------------------------------------------------------------------------------
8ac967be8f | Chris Campbell | 2013-01-12 13:23:01 +0000

Add is_useless_item conditions for some jewellery

--------------------------------------------------------------------------------
4869dc39e9 | Adam Borowski | 2013-01-12 07:54:34 +0100

Reeliminate skeletal warriors from the Abyss.

--------------------------------------------------------------------------------
88b3293c1b | Adam Borowski | 2013-01-12 07:51:37 +0100

Eliminate a dummy variable.

--------------------------------------------------------------------------------
0ffb4c536c | Adam Borowski | 2013-01-12 07:49:04 +0100

Use a more traditional name for the "hand" of wisp form.

--------------------------------------------------------------------------------
9bf7fa6795 | Adam Borowski | 2013-01-12 07:44:08 +0100

Simplify OOD logic somewhat.

--------------------------------------------------------------------------------
d68ba3ae59 | Adam Borowski | 2013-01-12 07:21:17 +0100

Fix mgen_data.place being ignored for some uses.
Committing separately, to make it stand out as a potential culprit if the
place ends up bogus.

--------------------------------------------------------------------------------
c76e0d769d | Adam Borowski | 2013-01-12 07:21:16 +0100

Pass the requested place as level_id during random monster selection.

--------------------------------------------------------------------------------
6794780c48 | Chris Oelmueller | 2013-01-11 22:41:17 -0700

inception: Going deeper increases vault chance (HangedMan)
The dummy vault chance is now 90% at Abyss:1 down to 50% at Abyss:5.
Previously, dummies would place at 90% regardless of depth.

Exit vault frequency was reduced, dummy chance is now 95% at Abyss:1
(as opposed to the previous 90%) and only reduces by 5% per level.

--------------------------------------------------------------------------------
71d7dc3553 | Chris Oelmueller | 2013-01-11 15:45:52 +0000

Remove long-gone option even more
Cf. 4f554ed5fab929068133d3f9ff488efed6dd23bb

--------------------------------------------------------------------------------
afd2364c21 | Chris Campbell | 2013-01-11 15:37:58 +0000

Fix a starcursed mass message showing up while offscreen

--------------------------------------------------------------------------------
8cd7dd59d6 | elliptic | 2013-01-10 15:47:16 -0500

Remove wolf spiders from Summon Swarm.
They are simply far too strong for this rod after the buffs to them for
Spider branch. Replace them with regular spiders.

Also, give monsters the same swarm distribution as players.

--------------------------------------------------------------------------------
73dfa838f7 | Steve Melenchuk | 2013-01-10 08:58:39 -0700

Use "Killed by" prefix when displaying long form of direct Xom deaths.
This is the same fix as 61736378 for a different case that was missed at
the time; it causes direct Xom deaths to display as "Killed by the
[severe] capriciousness of Xom" instead of just "the [severe]
capriciousness of Xom".

--------------------------------------------------------------------------------
71e2283147 | elliptic | 2013-01-10 04:23:04 -0500

A simpler formula for abyss exit frequency.

--------------------------------------------------------------------------------
94e697bdac | elliptic | 2013-01-10 04:06:08 -0500

Revert "Abyss Exit Probability"
This reverts commit ea0574a2872b6c77aca3042ee5d35b9618e55c8d.

The logic was reversed; _abyss_exit_chance() gets fed to a one_chance_in(),
so larger values mean smaller chance of an exit.

--------------------------------------------------------------------------------
7bb24165f7 | Adam Borowski | 2013-01-10 06:31:17 +0100

Formatting nazi to the rescue!

--------------------------------------------------------------------------------
db28b02e5c | Adam Borowski | 2013-01-10 06:05:16 +0100

Make requests for OODs (8/9) in abyssal vaults not crash.
It's a multi-level branch with regular OODs now, and unlike Ziggurats,
they can legitimately happen.

--------------------------------------------------------------------------------
b31cafb7cd | Adam Borowski | 2013-01-10 04:46:07 +0100

A basic interface for manually togging dprf quietness.

--------------------------------------------------------------------------------
db8f331c33 | Adam Borowski | 2013-01-10 04:06:21 +0100

Give monster placement debug messages their own class.

--------------------------------------------------------------------------------
419f3c4eaa | Adam Borowski | 2013-01-10 03:57:50 +0100

Give debug abyssal messages a separate dprf class.
(We still lack an interface to toggle such classes, though.)

--------------------------------------------------------------------------------
6de8d04db9 | Adam Borowski | 2013-01-10 03:47:58 +0100

Make debug mode Abyss not so extremely spammy.

--------------------------------------------------------------------------------
ec989fac57 | David Lawrence Ramsey | 2013-01-08 22:47:42 -0600

Constify.

--------------------------------------------------------------------------------
a5f1a331b1 | Adam Borowski | 2013-01-09 05:40:57 +0100

Convert Abyss monster distribution to a multi-level branch.

--------------------------------------------------------------------------------
196c44c8d2 | Adam Borowski | 2013-01-09 05:39:32 +0100

Port changes of Abyss monster rarities from trunk.

--------------------------------------------------------------------------------
65ebe5074a | Adam Borowski | 2013-01-09 05:34:45 +0100

Merge branch 'master' into mon-pick

--------------------------------------------------------------------------------
ea0574a287 | Brendan Hickey | 2013-01-08 20:21:46 -0800

Abyss Exit Probability
Abyss Exits become more frequent the deeper you get.
At Abyss:5 exits should be approximately 3x more common then at Abyss:1.
As before, having the rune makes exits ~7x more common than Abyss:1 (regardless 
of level).

--------------------------------------------------------------------------------
7338b153fd | David Lawrence Ramsey | 2013-01-08 21:45:31 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
494b69b3ef | Adam Borowski | 2013-01-09 04:29:50 +0100

Fix a crash on placing some bad zombies (blackcustard)
If, in an attempt to pick a base monster for the zombie, a M_NO_POLY_TO
one was chosen, the loop for some reason took it as valid.

This commit also makes this function more readable.

--------------------------------------------------------------------------------
89770d977b | Raphael Langella | 2013-01-08 11:43:38 +0100

When a skill reach level 27, also disable training it in the "other" mode.
Other mode being either auto or manual depending on which one is active.
Probably the cause of #6507. It's only a display bug by the way, level 27
skills are never trained.

--------------------------------------------------------------------------------
30cd027a1c | Adam Borowski | 2013-01-08 04:00:29 +0100

Fix frames in the temperature gauge in ascii and dec.
The former lacks any not 7 bit characters, the latter has only single
line-drawing chars.  Might be better to use single frames everywhere
but ascii, but if Eronarn prefers doubles, so be it.  For the default,
we assume at least the intersection of CP437 (IBM) and WGL4, so double
frames are safe.

I went the whole hog and used dchar, so users can redefine this on their
own.  Not that anyone will bother, but at least this reduces special
casing.

--------------------------------------------------------------------------------
8bbc2643a9 | Adam Borowski | 2013-01-08 04:00:29 +0100

Forbid polymorphing into monster lava orcs.
They'd need quite a bit of work to be viable, so let's have them be
show_player_species dummies for now.

--------------------------------------------------------------------------------
d0eae8147f | Adam Borowski | 2013-01-08 04:00:29 +0100

Fix broken message when a lava orc destroys an orcish idol.
If Beogh comes back: you'd need some actual content in godspeak.txt

--------------------------------------------------------------------------------
9bcf650ea3 | Adam Borowski | 2013-01-08 04:00:29 +0100

Disable Beogh for lava orcs.
It's a contentious issue: Beogh for lava orcs causes a number of problems,
both balance and theme wise.

Really, the core issue comes from:

<Eronarn> lava orcs were invented to create a race with the LO abbreviation :)
          that's really all there is to it

--------------------------------------------------------------------------------
2d6cadf7aa | Adam Borowski | 2013-01-08 04:00:29 +0100

Tentatively, mark Lava Orcs as trunk-only.
There's probably enough time before 0.12, but it's less harsh to enable
rather than deny something just before the release.

--------------------------------------------------------------------------------
bdbcbb4b3e | Eronarn Palazzo | 2013-01-08 04:00:29 +0100

Check several conditions on every turn, rather than just on changes.

--------------------------------------------------------------------------------
a29cbf5ed0 | Eronarn Palazzo | 2013-01-08 04:00:29 +0100

No heat aura damage to friendly co-worshippers of Beogh.

--------------------------------------------------------------------------------
ed7fd005d3 | Eronarn Palazzo | 2013-01-08 04:00:29 +0100

Nerf lava swimming by making entering or exiting lava take twice as long as 
normal actions.

--------------------------------------------------------------------------------
cf8bc46af4 | Eronarn Palazzo | 2013-01-08 04:00:29 +0100

Cap lava orc temperature change at 1 up or down per turn.
Except when berserking or entering lava. Also, some berserk fixes.

--------------------------------------------------------------------------------
2fc415c62e | ontoclasm | 2013-01-08 04:00:28 +0100

Display heat auras in WebTiles too

--------------------------------------------------------------------------------
2c5fb76533 | ontoclasm | 2013-01-08 04:00:28 +0100

Display heat auras in tiles

--------------------------------------------------------------------------------
af44d5ed3a | ontoclasm | 2013-01-08 04:00:28 +0100

Lava orc tiles.

--------------------------------------------------------------------------------
fcc2f92457 | Eronarn Palazzo | 2013-01-08 04:00:28 +0100

Make lava orc heat resistance depend on temperature.

--------------------------------------------------------------------------------
f7c04bde78 | Eronarn Palazzo | 2013-01-08 04:00:28 +0100

Speculative monster lava orc descriptions.
Contains lava orc, lava orc berserker, lava orc warrior, lava orc
elementalist, lava orc warlord, and lava orc transmuter.

--------------------------------------------------------------------------------
693ed67d4f | Eronarn Palazzo | 2013-01-08 04:00:28 +0100

Change text and display of temperature effects (box drawing characters h/t 
kilobyte).

--------------------------------------------------------------------------------
c891d8e0db | Eronarn Palazzo | 2013-01-08 04:00:28 +0100

Lava orcs heat up when they enter a rage and cool down when they leave one.

--------------------------------------------------------------------------------
fc37d1d730 | Eronarn Palazzo | 2013-01-08 04:00:28 +0100

Give lava orcs a heat halo that causes fire damage to nearby enemies.

--------------------------------------------------------------------------------
8e5b3ad9df | Eronarn Palazzo | 2013-01-08 04:00:28 +0100

Lava orcs have slow movement when cold and fast movement when hot.

--------------------------------------------------------------------------------
7f40cb1dbc | Eronarn Palazzo | 2013-01-08 04:00:27 +0100

Lava orcs can swim in lava unless it is flagged as dangerous to them.
Being immersed in lava maxes temperature and prevents any decline.

--------------------------------------------------------------------------------
edbafac67b | Eronarn Palazzo | 2013-01-08 04:00:27 +0100

Heavily rework the lava orc temperature mechanic.

--------------------------------------------------------------------------------
61389cfaca | Eronarn Palazzo | 2013-01-08 03:26:07 +0100

Lava orcs have innate Stoneskin (and cannot cast it otherwise).
Though they lose the effect when they are too hot. Being too hot also gives
them an ice magic dehancer and prevents them from benefiting from Statue
Form, Ice Form, Ozocubu's Armor, and Condensation Shield.

--------------------------------------------------------------------------------
09b2f21588 | Eronarn Palazzo | 2013-01-08 03:26:07 +0100

Prevent lava orcs from using scrolls or books when they are too hot.
Color these items as useless.

--------------------------------------------------------------------------------
83058c8b4f | Eronarn Palazzo | 2013-01-08 03:26:07 +0100

Passive heat, based on existing passive freeze, and restricted to lava orcs for 
now.

--------------------------------------------------------------------------------
4dec0a9263 | Eronarn Palazzo | 2013-01-08 03:26:07 +0100

Lava orc temperature tracking and temperature effects
Including the mutation and A! screen.

--------------------------------------------------------------------------------
9dbaa2da25 | Adam Borowski | 2013-01-08 02:21:22 +0100

A new themed vault, Lightli's fault.
I changed its orientation as it looks odd in the middle of a level.

--------------------------------------------------------------------------------
8d12a5a50d | Adam Borowski | 2013-01-07 22:09:27 +0100

Make orbs of fire crash less.

--------------------------------------------------------------------------------
6e67f443d3 | Eronarn Palazzo | 2013-01-07 14:27:31 +0100

Lava orc Beoghishness

--------------------------------------------------------------------------------
981d31ef5a | Eronarn Palazzo | 2013-01-07 14:22:21 +0100

Initial implementation of lava orcs.
This includes their:

* starting screen description
* starting mutations
* restricted classes/gear
* aptitudes
* orcishness (genus)
* monster version

--------------------------------------------------------------------------------
e3ef79a55b | Adam Borowski | 2013-01-07 06:01:01 +0100

Update release docs a bit.
Especially the thing about -O2 being faster than higher levels, it's long
since untrue, and -Ofast gives a huge boost with gcc-4.7.

--------------------------------------------------------------------------------
d96bcebae1 | David Lawrence Ramsey | 2013-01-06 21:12:01 -0600

Tweak wording.

--------------------------------------------------------------------------------
c1d6f2dc47 | Adam Borowski | 2013-01-07 02:09:43 +0100

Don't claim that potions of decay "start" rot.
Everything goes in a single chunk immediately.

Also, eliminate a weird special case that would stop the messages once you
accumulate 40 points of pending rottage.

--------------------------------------------------------------------------------
a00be3e024 | Adam Borowski | 2013-01-07 01:49:57 +0100

Remove "magical" from dragon armour description.
It did require magic for its making, as you don't lug a whole set of
leatherworking tools with you -- especially ones capable of working with
hide stronger than steel, but its shape aside, it's no different from
hide it was made from.

--------------------------------------------------------------------------------
ce7468407e | Adam Borowski | 2013-01-07 01:39:13 +0100

Wisps can't rot.

--------------------------------------------------------------------------------
f5d745b671 | Adam Borowski | 2013-01-07 01:28:03 +0100

Rework and unify passive acid code, give it (and active acid) to jelly form.
This makes monsters suffer acid when attacking a monster jelly, too.

I removed the message when an item resists acid: it was given in some
cases but not others.

--------------------------------------------------------------------------------
53fb3a225c | Adam Borowski | 2013-01-06 23:00:25 +0100

Handle slight resistance to acid vs immunity.
Implemented as a multi-level resists, as three values is just that (and rRot
is another that allows resistance vs immunity).

Monster yellow draconians get degraded to rAcid+, to match players.

This also fixes rAcid not applying to passive damage when attacking jellies.

--------------------------------------------------------------------------------
d41e40e4ca | Adam Borowski | 2013-01-06 22:51:46 +0100

Get rid of a lot of references to secret doors.

--------------------------------------------------------------------------------
9540ac70af | Adam Borowski | 2013-01-06 22:17:30 +0100

Revert "Make monster rAcid into immunity."
Having inconsistent handling of slight resistance vs immunity for players
and monsters causes problems with acid-immune forms.

This reverts commit a22bb095594124c0ba6606eb933417f239869883.

--------------------------------------------------------------------------------
ab2eed4fb8 | Adam Borowski | 2013-01-06 21:39:16 +0100

Jellies can't open doors, but they have a different means of getting through.

--------------------------------------------------------------------------------
49a615e577 | Adam Borowski | 2013-01-06 03:41:31 +0100

Don't use a yet another utf8_to_wc implementation for no-op conversions.
Since Android already uses UTF-8 only (in versions that are not 7 bit),
there's no need to do anything since our internal representation is UTF-8
as well.

Even if we did need an UTF-8 <-> wchar_t converter, there's already one
in this very file.

--------------------------------------------------------------------------------
5e10d7a447 | Chris West | 2013-01-06 00:38:34 +0000

fixed crash on startup when TOUCH_UI defined but not using small layout

--------------------------------------------------------------------------------
f1430ea76e | Adam Borowski | 2013-01-06 01:13:29 +0100

Let jelly form eat arbitrary items (code only, needs numbers).
Giving nutrition is problematic (some folks will try to scum it to conserve
food), giving hp would make you mostly invulnerable on a top of items (like
monster jellies, except that they have so little maxhp they can get
one-shotted).  We could also add splitting (a "fellow slime" jelly), useless
except as a minor distraction without Jiyva.

There's also no way to eat more than one item per turm, which sucks for
arrows, etc.  Monsters can swallow multiple stack even...

--------------------------------------------------------------------------------
7768dbe2f8 | Chris West | 2013-01-05 23:20:34 +0000

amended android dev documentation again

--------------------------------------------------------------------------------
790e88e9b3 | Chris West | 2013-01-05 22:56:33 +0000

improved build of rltiles for android

--------------------------------------------------------------------------------
7b9dd373c7 | Chris West | 2013-01-05 20:53:23 +0000

fixed link in android development docs

--------------------------------------------------------------------------------
1d1a0ee011 | Chris West | 2013-01-05 16:31:31 +0000

added unicode calls from Crystax so that we can use latest android ndk

--------------------------------------------------------------------------------
d46499a46e | Chris West | 2013-01-05 16:25:25 +0000

hard-coded correct path for config files, because

--------------------------------------------------------------------------------
2f0cc1d215 | Chris West | 2013-01-05 16:25:25 +0000

tidied up some missing USE_TILE_LOCAL #ifdefs

--------------------------------------------------------------------------------
cd60774081 | Chris West | 2013-01-05 16:25:25 +0000

moved tooltip message and made bigger in touch UI

--------------------------------------------------------------------------------
7f01c6bdd6 | Chris West | 2013-01-05 16:25:25 +0000

added some missing #ifdefs; cleaned up MenuScroller when there's only one item 
displayed

--------------------------------------------------------------------------------
72528a7242 | Chris West | 2013-01-05 16:25:25 +0000

updated android dev documentation

--------------------------------------------------------------------------------
4740847326 | Chris West | 2013-01-05 16:25:24 +0000

added scroll up/down arrows to MenuScroller; cleaned up initial menu text 
slightly for tiny screens

--------------------------------------------------------------------------------
30cfecd017 | Chris West | 2013-01-05 16:25:24 +0000

soft-coded scaling of command icons to tabs in touch ui

--------------------------------------------------------------------------------
a8d0a723de | Chris West | 2013-01-05 16:25:24 +0000

added autoexplore to touch tabs

--------------------------------------------------------------------------------
05ee1febfb | Chris West | 2013-01-05 16:25:24 +0000

updated sdl-android

--------------------------------------------------------------------------------
2b19d87062 | Chris West | 2013-01-05 16:25:24 +0000

final attempt at fixing inventory paging; added tooltip messages for prev/next 
icons

--------------------------------------------------------------------------------
357ccb23bd | Chris West | 2013-01-05 16:25:24 +0000

changed default behaviour for non-touch small ui

--------------------------------------------------------------------------------
9e6acc18bf | Chris West | 2013-01-05 16:25:23 +0000

fixed inventory paging

--------------------------------------------------------------------------------
9a5990e393 | Chris West | 2013-01-05 16:25:23 +0000

improved inventory paging on non-touch ui

--------------------------------------------------------------------------------
a305a9c32b | Chris West | 2013-01-05 16:25:23 +0000

fixed positioning of r/h text for some resolutions

--------------------------------------------------------------------------------
3822a4a083 | Chris West | 2013-01-05 16:25:23 +0000

bugfixes for non-bash shells remove crystax dependency

--------------------------------------------------------------------------------
25afa1f471 | Chris West | 2013-01-05 16:25:23 +0000

merged latest sdl-android and added new app settings to crawl

--------------------------------------------------------------------------------
10e7a704c2 | Chris West | 2013-01-05 16:25:23 +0000

merge of small-screen changes from old build env

--------------------------------------------------------------------------------
d11e3248a3 | ontoclasm | 2013-01-04 23:43:33 -0600

Fix Maelstrom rotation

--------------------------------------------------------------------------------
af5aca56c7 | Adam Borowski | 2013-01-05 03:43:00 +0100

Link monster tiles for bad forms, add a too-ugly-to-live tree form one.
The code for equipment-using form tiles is not fit for the task, so I used
a hack using regular player doll code instead.  It draws the weapon behind
the tile instead of the front (and can't be easily fixed), and fails to draw
shields at all.

--------------------------------------------------------------------------------
e1030b8371 | Adam Borowski | 2013-01-04 14:07:00 +0100

Update comments for forms AC, enumerate no-bonus forms.
The latter instead of a default helps spot cases when you forgot to set AC
upon adding a new form.

--------------------------------------------------------------------------------
489f6b80d8 | Adam Borowski | 2013-01-04 13:59:16 +0100

Swap the enums of jelly and wisp form, to allow easy removal of the former.
People seem to like the concept of the jellies a lot, yet I'm really wary
about their problems:

* folks would scum forms and stuff themselves with chainmails to conserve
  food (not that it's needed, but with some of our players...)

  * Eronarn suggested healing but no nutrition on eating; this in turn
    would be confusing

* with speed < 10, the player can't do much.  All other bad forms grant
  speed > 10, speed = 10 with great EV and resists (wisp) or strong
  defenses while retaining spellcasting and weapon use (tree).  Jelly,
  on the other hand, takes blows while not being able to fight (unless
  you happen to be an unarmed char).

--------------------------------------------------------------------------------
0de22ec854 | Adam Borowski | 2013-01-04 13:59:16 +0100

Body part names for new forms.

--------------------------------------------------------------------------------
b8584e2ffd | Adam Borowski | 2013-01-04 13:59:16 +0100

Let squealers oink half the time.

--------------------------------------------------------------------------------
9850c7148d | Adam Borowski | 2013-01-04 13:59:15 +0100

Allow self-targetting polymorph.

--------------------------------------------------------------------------------
043ffe16ca | Adam Borowski | 2013-01-04 13:59:15 +0100

Split Malmutate out of Polymorph.
For now, the effect differs only on players.

Questions:
* how should polymorph be resisted?  For now, it's a regular hex (to match
  the old behaviour on monsters).
* which monsters (if any) should get polymorph instead of malmutate?

--------------------------------------------------------------------------------
1b9c764b5e | Adam Borowski | 2013-01-04 13:59:14 +0100

Cut abuse of wand_type as a variable name; give it that type.

--------------------------------------------------------------------------------
fba7180a3e | Adam Borowski | 2013-01-04 13:59:14 +0100

Trees, wisps and jellies have no means of talking to allies (or enemies).

--------------------------------------------------------------------------------
c5759fa03a | Adam Borowski | 2013-01-04 13:59:14 +0100

Stop forms with a drinking problem.

--------------------------------------------------------------------------------
d7a1e56c7d | Adam Borowski | 2013-01-04 13:59:14 +0100

Photosynthesis and breatharianism.
Our trees are no venus fly traps, and wisps need no food either.

--------------------------------------------------------------------------------
0adc599d10 | Adam Borowski | 2013-01-04 13:59:13 +0100

Wisp form.
Can't use any items, but unlike old air form, you can pick them up or drop
down.  No casting.  Randomly blinks from time to time.  Sometimes moves as
if confused, although won't bump into walls or into allies.

--------------------------------------------------------------------------------
7a77becf9a | ontoclasm | 2013-01-04 00:53:43 -0600

Maelstrom tiles.

--------------------------------------------------------------------------------
028c60f3f7 | elliptic | 2013-01-03 22:18:48 -0500

Remove list of auxiliary attacks from the Unarmed Combat skill description 
(Nivim).

--------------------------------------------------------------------------------
3cb3d9b6fa | Neil Moore | 2013-01-03 22:17:12 -0500

Display proper Invo title in high score menu (#6489).

--------------------------------------------------------------------------------
176c441176 | Neil Moore | 2013-01-03 21:15:13 -0500

Advise against using plain DEPTH: M-N (HangedMan).

--------------------------------------------------------------------------------
15c1d7297d | Neil Moore | 2013-01-03 21:03:31 -0500

Allow TRJ to spawn jellies on both arena teams.

--------------------------------------------------------------------------------
889d248270 | Neil Moore | 2013-01-03 20:22:23 -0500

Give TRJ spawns the same attitude as TRJ.
It was possible to cause a neutral TRJ to take damage out of LOS,
resulting in hostile jellies that would then attack it.

If TRJ was friendly (it is possible though very difficult with a
combination of scroll of vulnerability, HD reduction from draining, and
enslavement), yield no jellies whatsoever; this is preferable to
creating permanent allies from temporary enslavement.

If TRJ was killed by the attack that triggered the spawning, its
attitude is no longer available; just make the jellies hostile in that
event.

Fixes #6491.

--------------------------------------------------------------------------------
aba500b9fa | Neil Moore | 2013-01-03 20:22:13 -0500

Do not list amulet of cFly in the \ screen (#6492).

--------------------------------------------------------------------------------
d6db305e1b | elliptic | 2013-01-02 20:04:47 -0500

Fix notes for escaping Pan/Abyss (Zannick).
Now it is consistent with the note for entering a branch (and most other
notes) and doesn't use a period.

--------------------------------------------------------------------------------
77fcb3a9e6 | Jilles Tjoelker | 2013-01-02 16:51:05 -0500

Fix greet message.
There were two arguments, interpreted as a format string and an argument
but the format string did not contain any format specifications like %s
to consume the argument.

NFM: Tweaked slightly for readability.  This was broken by 0292ea18,
which added an extra level of indent that turned the previously single
argument into two arguments.

--------------------------------------------------------------------------------
24e63328ec | David Lawrence Ramsey | 2013-01-02 10:15:46 -0600

Fix changelog entry wording and punctuation.

--------------------------------------------------------------------------------
7e22a4e2a8 | David Lawrence Ramsey | 2013-01-02 10:01:39 -0600

Fix wording.

--------------------------------------------------------------------------------
563cdfa9e2 | Raphael Langella | 2013-01-02 13:47:42 +0100

Update the dowsing card description.

--------------------------------------------------------------------------------
34a9453804 | Raphael Langella | 2013-01-02 13:47:42 +0100

Remove reference to secret doors from ?MM's description.

--------------------------------------------------------------------------------
8bc34b5ca5 | Neil Moore | 2013-01-02 05:14:27 -0500

Update changelog.

--------------------------------------------------------------------------------
98eede4e9f | Neil Moore | 2013-01-01 23:43:17 -0500

Really treat Tomes of Destruction as identified (#6481).
Don't offer to identify them, and remove the warning on first-time
reading.

--------------------------------------------------------------------------------
ab1c68e40b | Zannick | 2013-01-01 23:13:42 -0500

Track unique tags while placing subvaults (#6328).

--------------------------------------------------------------------------------
08a56f5773 | Neil Moore | 2013-01-01 23:07:08 -0500

Tweak low-HP autofight wording (oiseaux; #6302).

--------------------------------------------------------------------------------
07a510c214 | Neil Moore | 2013-01-01 23:02:28 -0500

Name a magic number.

--------------------------------------------------------------------------------
2dbb0208de | Neil Moore | 2013-01-01 23:02:01 -0500

Tweak abyssal rune chances.
The chance of a placed item resulting in a rune, out of 200; being a
favoured of Lugonu increases the effective depth by 1 for this purpose:

     A:3  A:4  A:5  A:5 w/Lugonu
old   15   34   50   51
new   10   21   46  100

For comparison, the pre-Inception chance maxed out at 34/200 after ~8000
turns (~2000 turns with Lugonu).

--------------------------------------------------------------------------------
0172bb199b | Neil Moore | 2013-01-01 22:46:29 -0500

Replace a magic number with piety_breakpoint().
Also, use >= rather than >, since there's no visible difference between
120 piety and 121.

--------------------------------------------------------------------------------
040c4d5925 | Adam Borowski | 2013-01-02 03:09:31 +0100

Eliminate a pointless loop.

--------------------------------------------------------------------------------
bc7c97cf7e | Neil Moore | 2013-01-01 20:13:20 -0500

Adjust empty lines for clarity.

--------------------------------------------------------------------------------
ae60b373a7 | Neil Moore | 2013-01-01 19:09:28 -0500

Use style points as the thunderdome score.
Multiplied by the number of runes if we won.

--------------------------------------------------------------------------------
907fe41768 | Neil Moore | 2013-01-01 19:00:27 -0500

Allow sprints etc to define a scoring function.
dgn.persist.calc_score should hold a FunctionWrapper for a function that
will calculate the score.  It will be called with one argument, a
boolean indicating whether the player won.  The function should return
two values: the score, and a flag indicating whether to also add in the
default (gold, XP, runes, and turns) score.

--------------------------------------------------------------------------------
fc9ec0dfd9 | David Lawrence Ramsey | 2013-01-01 15:39:41 -0600

Tweak wording.

--------------------------------------------------------------------------------
7668008e9b | Brendan Hickey | 2013-01-01 13:28:45 -0800

Abyssal stair description

--------------------------------------------------------------------------------
2a99ef24b3 | David Lawrence Ramsey | 2013-01-01 15:16:20 -0600

Fix the wizard up/down stairs command to work properly with the new Abyss.
Now, &d will move down one level in the Abyss when possible, and &u will
move up one level.  Since the "abyssal stair" technically only goes
down, the latter command actually falls through to the "escape hatch"
case; while this does work, there may be a better way to do it.

--------------------------------------------------------------------------------
89867ac352 | Chris Campbell | 2013-01-01 19:38:39 +0000

Typo fix (Wensley)

--------------------------------------------------------------------------------
7cbc0bbd24 | Brendan Hickey | 2013-01-01 11:34:05 -0800

Add Apocalypse Crab tile

--------------------------------------------------------------------------------
5572fa3947 | Brendan Hickey | 2013-01-01 11:10:00 -0800

Thrashing Horrors should frenzy as escape

--------------------------------------------------------------------------------
7b01df3b99 | Chris Campbell | 2013-01-01 18:04:49 +0000

Don't give deep dwarf scions gold

--------------------------------------------------------------------------------
c39e7279a1 | Chris Campbell | 2013-01-01 17:34:06 +0000

Let apocalypse crabs spawn in the Abyss

--------------------------------------------------------------------------------
4b7caeb6ff | Chris Campbell | 2013-01-01 17:22:05 +0000

Give thrashing horrors no_poly_to
They're only MH_NATURAL so that they can go berserk, shapeshifters
shouldn't be transforming into them.

--------------------------------------------------------------------------------
3d216668d3 | Chris Campbell | 2013-01-01 17:08:45 +0000

Don't give Lugonu piety for banishing monsters deeper into the Abyss

--------------------------------------------------------------------------------
cc59d1b455 | Chris Campbell | 2013-01-01 17:07:22 +0000

Don't hard-code Abyss max depth in two more places

--------------------------------------------------------------------------------
a1c4b89536 | Chris Campbell | 2013-01-01 16:52:22 +0000

Move starcursed masses from x to X
Since they're SIZE_HUGE, and also a pretty significant threat. They
could also possibly do with a colour change, blue tends to be one of the
less noticeable colours.

--------------------------------------------------------------------------------
551c9f00c0 | Adam Borowski | 2013-01-01 17:25:41 +0100

Don't hard-code Abyss max depth in one place.

--------------------------------------------------------------------------------
7274d17594 | Adam Borowski | 2013-01-01 16:04:42 +0100

Drop useless braces.

--------------------------------------------------------------------------------
705bb5ec29 | David Lawrence Ramsey | 2013-01-01 08:52:53 -0600

Fix indentation.

--------------------------------------------------------------------------------
1ee5af65b7 | Brendan Hickey | 2012-12-31 21:25:28 -0800

Make spatial maelstroms likely

--------------------------------------------------------------------------------
3cfc817a66 | Brendan Hickey | 2012-12-31 20:46:35 -0800

Adjust abyss monster chances

--------------------------------------------------------------------------------
591c4bc818 | Brendan Hickey | 2012-12-31 20:46:35 -0800

Boost abyss spawn rate

--------------------------------------------------------------------------------
d596081b44 | Neil Moore | 2012-12-31 19:12:13 -0500

Note entering Abyss:5.

--------------------------------------------------------------------------------
7a2ed4745e | Neil Moore | 2012-12-31 19:02:15 -0500

Simplify.

--------------------------------------------------------------------------------
16b5b17062 | Neil Moore | 2012-12-31 13:59:38 -0500

Don't lose mana and time on HUP-aborted cblink.

--------------------------------------------------------------------------------
b370d7fcd3 | Adam Borowski | 2012-12-31 18:01:47 +0100

Fix rF not granting rSteam while suppressed.
If an item would fail due to suppression, it won't grant rF.

--------------------------------------------------------------------------------
4c49560034 | Adam Borowski | 2012-12-31 18:01:43 +0100

Typo fix.

--------------------------------------------------------------------------------
32300fe276 | Adam Borowski | 2012-12-31 17:59:11 +0100

Fix rF not granting rSteam while suppressed.
If an item would fail due to suppression, it won't grant rF.

--------------------------------------------------------------------------------
b359d658a7 | Adam Borowski | 2012-12-31 17:59:11 +0100

Typo fix.

--------------------------------------------------------------------------------
ab6e61d739 | Adam Borowski | 2012-12-31 17:59:11 +0100

Casting restrictions for jelly and porcupine.

--------------------------------------------------------------------------------
297fa46471 | Adam Borowski | 2012-12-31 17:59:11 +0100

Give porcupine form spines.

--------------------------------------------------------------------------------
2389355033 | Adam Borowski | 2012-12-31 17:59:11 +0100

Give tree form -MOVE, -TELE and -Fly.

--------------------------------------------------------------------------------
d2c2aaaba3 | Adam Borowski | 2012-12-31 17:59:11 +0100

Bad transformations: enums, messages, gear restrictions.
The forms are:
* animated tree
* porcupine
* jelly

--------------------------------------------------------------------------------
cd80a3a798 | Adam Borowski | 2012-12-31 13:28:50 +0100

Don't lose mana+time on HUP-aborted cancellable semi-controlled blink.

--------------------------------------------------------------------------------
9da1972596 | Neil Moore | 2012-12-31 04:44:27 -0500

Avoid an infinite loop when HUPping at the scblink prompt.

--------------------------------------------------------------------------------
e2ba925e33 | Neil Moore | 2012-12-31 03:05:49 -0500

Indentation fixes.

--------------------------------------------------------------------------------
6f183847be | Chris Campbell | 2012-12-31 07:51:43 +0000

Don't make spatial maelstroms worship Lugonu
As mindless rifts in reality, they probably wouldn't make very good
worshippers.

--------------------------------------------------------------------------------
e25d5eb52b | Chris Campbell | 2012-12-31 07:51:42 +0000

Fix spacing

--------------------------------------------------------------------------------
9c79506c8a | Brendan Hickey | 2012-12-30 20:55:55 -0800

Increase frequency of Thrashing Horror

--------------------------------------------------------------------------------
2308d7b525 | Brendan Hickey | 2012-12-30 19:06:47 -0800

Don't generate stairs on Abyss 5

--------------------------------------------------------------------------------
d43997cb1d | Brendan Hickey | 2012-12-30 19:06:47 -0800

Cleanup Abyssal State
* Remove seed. It's unnecessary, the abyss is huge enough.
* Add a wizmode command to set your location in the abyss.
* Fix an overflow bug with abyss depth.

--------------------------------------------------------------------------------
a8ee98a52a | Brendan Hickey | 2012-12-30 19:06:47 -0800

Clarify Perlin Noise Licensing
Explicitly release perlin.cc under CC0.
This file is a C++ port of Stefan Gustavson's public domain java noise 
implementation.
The original can be retrieved at:
http://webstaff.itn.liu.se/~stegu/simplexnoise/SimplexNoise.java

--------------------------------------------------------------------------------
dcadfdb8ee | Brendan Hickey | 2012-12-30 19:06:47 -0800

Ease the Newabyss to Inception upgrade path.
If a player is in the abyss when their game moves from newabyss to
inception, mark the dungeon as nuked. This will cause it to decay over a
number of rounds rather than jumping in one turn. Vaults won't be disrupted.

--------------------------------------------------------------------------------
759d5ca317 | Chris Campbell | 2012-12-30 19:06:46 -0800

Make new abyssals more common for testing
Revert/adjust later as appropriate.

--------------------------------------------------------------------------------
44e92326d4 | Chris Campbell | 2012-12-30 19:06:22 -0800

Don't crash when detonating lurking horrors inside a sanctuary

--------------------------------------------------------------------------------
6e2994dd28 | Brendan Hickey | 2012-12-30 19:06:21 -0800

Lurking Horror
Stalks you out of view. Then charges you and explodes with torment.
Quite the day spoiler if you ask me.

--------------------------------------------------------------------------------
2ede821f39 | Brendan Hickey | 2012-12-30 19:06:21 -0800

Whitespace fixes

--------------------------------------------------------------------------------
20b0f3e3e9 | Brendan Hickey | 2012-12-30 19:06:21 -0800

Speed up Abyss difficulty scaling.

--------------------------------------------------------------------------------
8f6750977d | Brendan Hickey | 2012-12-30 19:06:20 -0800

Spatial Maelstroms should *not* use stairs

--------------------------------------------------------------------------------
a79c954459 | Brendan Hickey | 2012-12-30 19:06:20 -0800

Spatial Maelstrom
An incorporeal monster that wanders into walls and converts them into spatial 
vortices. Still needs a bend space spell and tuning.

--------------------------------------------------------------------------------
f0431763f5 | Brendan Hickey | 2012-12-30 19:06:20 -0800

Change Boring Beetle to Exciting Beetle

--------------------------------------------------------------------------------
42710d0fc4 | Brendan Hickey | 2012-12-30 19:06:20 -0800

Scroll of genocide

--------------------------------------------------------------------------------
9a1f265cb7 | Brendan Hickey | 2012-12-30 19:06:19 -0800

Fixup mon-cast

--------------------------------------------------------------------------------
d719f43c85 | Brendan Hickey | 2012-12-30 19:06:19 -0800

Tilling Worm mechanic should target foe

--------------------------------------------------------------------------------
88df218ccc | Brendan Hickey | 2012-12-30 19:06:19 -0800

Add Eldritch monsters to the abyssal spawn list.

--------------------------------------------------------------------------------
73d0911474 | Brendan Hickey | 2012-12-30 19:06:19 -0800

Lost Hound
An abyssal canine. Electric bite, fear aura.

--------------------------------------------------------------------------------
62ce758a28 | Brendan Hickey | 2012-12-30 19:06:18 -0800

Make thrashing horror into a trampler.

--------------------------------------------------------------------------------
a4fe308af5 | Brendan Hickey | 2012-12-30 19:06:18 -0800

Thrashing Horror
A batty, tentacled monster that goes into a frenzy and spoils your day.

--------------------------------------------------------------------------------
8b262ad344 | Brendan Hickey | 2012-12-30 19:06:18 -0800

Abyss bestiary vault

--------------------------------------------------------------------------------
416b0e49be | Brendan Hickey | 2012-12-30 19:06:18 -0800

Tilling Worm: Walls to Clouds
The Tilling Worm transmutes adjacent walls into clouds.
Particularly dangerous near lava and water.

--------------------------------------------------------------------------------
f6eab7b29a | Chris Campbell | 2012-12-30 19:06:18 -0800

Give apocalypse crabs a casting message

--------------------------------------------------------------------------------
a2845e70b4 | Brendan Hickey | 2012-12-30 19:06:17 -0800

Tilling Worm
An Abyssal worm that rearranges the dungeon in its wake.

--------------------------------------------------------------------------------
a7eb4860fb | Neil Moore | 2012-12-30 19:06:17 -0800

Find abyssal stairs with X>

--------------------------------------------------------------------------------
ceaeeda02b | Brendan Hickey | 2012-12-30 19:06:17 -0800

Abyss Changes
* Fix abyss level teleports.
* Remove lava (smoke is annoying)
* Add giants
* Change layout switching scale

--------------------------------------------------------------------------------
269f91c6f8 | Brendan Hickey | 2012-12-30 19:06:17 -0800

NewAbyss to Inception
Port a semi-faithful reproduction of the newabyss layout to inception.

--------------------------------------------------------------------------------
78239f43cd | Brendan Hickey | 2012-12-30 19:06:17 -0800

Silly up the Bear, dammit

--------------------------------------------------------------------------------
3f632cec3b | Brendan Hickey | 2012-12-30 19:06:16 -0800

Xom's Teddy Redux
Change up the Teddy to be a bag of HP with blink other.

--------------------------------------------------------------------------------
31e72867e9 | Brendan Hickey | 2012-12-30 19:06:16 -0800

More Abyss Changes
* Mix up the monster list.
* Make the layouts more interesting.
* Remove exclusions on abyss teleport.

--------------------------------------------------------------------------------
e148268436 | Brendan Hickey | 2012-12-30 19:06:16 -0800

Melty Teleports
Speed up abyss morph rate while you're waiting to teleport.
Sometimes have the abyss melt into a new abyss.

--------------------------------------------------------------------------------
40bc6f866e | Brendan Hickey | 2012-12-30 19:06:16 -0800

Sane up Warwick von Hugsford

--------------------------------------------------------------------------------
a5eb1a6c8b | Brendan Hickey | 2012-12-30 19:06:16 -0800

Remove unused abyssal rune message

--------------------------------------------------------------------------------
04fb09eace | Brendan Hickey | 2012-12-30 19:06:15 -0800

Fix Hugsford descript

--------------------------------------------------------------------------------
13c96e0753 | Brendan Hickey | 2012-12-30 19:06:15 -0800

Marshall coord_def as ints

--------------------------------------------------------------------------------
1680173ad8 | Brendan Hickey | 2012-12-30 19:06:15 -0800

Warwick von Hugsford
A reanimated teddybear with a monocle and bow tie. He's on a quest in
the abyss to accomplish something. He's a good chap.

--------------------------------------------------------------------------------
08e0ced060 | Brendan Hickey | 2012-12-30 19:06:15 -0800

Apocalypse Crab
Big brother of the Fire Crab. It spews chaos.

--------------------------------------------------------------------------------
a101b0a3c9 | Brendan Hickey | 2012-12-30 19:06:15 -0800

Remove slough monsters.

--------------------------------------------------------------------------------
5240174c80 | Brendan Hickey | 2012-12-30 19:06:14 -0800

Abyss Scaling
The abyss gets harder. A lot harder.
No imps lower down. Thank god.

--------------------------------------------------------------------------------
9b99fd8ac6 | Brendan Hickey | 2012-12-30 19:06:14 -0800

More vaults. Less shifts.

--------------------------------------------------------------------------------
f0ee391461 | Brendan Hickey | 2012-12-30 19:06:14 -0800

Castles
Added a very rare abyssal castle procedural layout.

--------------------------------------------------------------------------------
43754da300 | Brendan Hickey | 2012-12-30 19:06:14 -0800

Abyss layout changes
Futzing around quite a bit with the abyss layout.

--------------------------------------------------------------------------------
96d469f78d | Brendan Hickey | 2012-12-30 19:06:14 -0800

Remove assertion.
Remove an assertion on the number of clouds in the abyss after shifts.

--------------------------------------------------------------------------------
e4a8153576 | Brendan Hickey | 2012-12-30 19:06:14 -0800

Calm down, Abyss!

--------------------------------------------------------------------------------
5d9c6d73e9 | Brendan Hickey | 2012-12-30 19:06:13 -0800

River scale

--------------------------------------------------------------------------------
c7534abe20 | Brendan Hickey | 2012-12-30 19:06:13 -0800

Reduce message spam. Better Abyss layout

--------------------------------------------------------------------------------
92f68a2551 | Brendan Hickey | 2012-12-30 19:06:13 -0800

Abyss Shifting
Restore abyss shifting.

--------------------------------------------------------------------------------
51d65a72a2 | Brendan Hickey | 2012-12-30 19:06:13 -0800

"And I will make you a raging river"
Fuzzed up the Abyss River with some perlin noise.
Grabbed a free perlin noise implementation, crudely ported it to C/C++.

--------------------------------------------------------------------------------
6783c36962 | Brendan Hickey | 2012-12-30 19:06:12 -0800

Abyss Layout: River
An endless river cutting through the abyss. Needs a bit of turbulent
perlin noise and some large scale rotations to improve its look. An
example of how to blend and chain procedural dungeon generators to get something
interesting.

--------------------------------------------------------------------------------
2dc0ae06c2 | Brendan Hickey | 2012-12-30 19:06:12 -0800

Adjust abyss monster spawn messages.

--------------------------------------------------------------------------------
653d2261a1 | Brendan Hickey | 2012-12-30 19:06:12 -0800

Worley Layout with Changepoints
A WorleyLayout that selects between two other layouts.
It calculates the lower bound on when the feature can change so that the
whole dungeon doesn't get recomputed on every turn.

--------------------------------------------------------------------------------
c3c62dc86d | Brendan Hickey | 2012-12-30 19:06:12 -0800

Proclayout fixup
ColumnLayout should handle very large negative values.
Clear MMT_NUKED after the dungeon has repaired itself.

--------------------------------------------------------------------------------
0ff38d3c32 | Brendan Hickey | 2012-12-30 19:06:12 -0800

MMT_NUKED
Mask features that have been dug, deconstructed or otherwise nuked as
MMT_NUKED. This is used in the abyss to facilitate Abyss self-healing.

--------------------------------------------------------------------------------
108d301ec8 | Brendan Hickey | 2012-12-30 19:06:12 -0800

Bound Abyss shifts
Convert abyss depth into an int, rip up all the phase logic (sorry).

Each procedural generator declares a changepoint, a lower bound estimate
on where the terrain type can change. This way, we can partially
recompute the abyss without experiencing aliasing.

--------------------------------------------------------------------------------
ff2e4c5a2b | Brendan Hickey | 2012-12-30 19:06:12 -0800

Reduce spam
Don't spawn abyss summons in a puff of smoke.

--------------------------------------------------------------------------------
dea675b14f | Brendan Hickey | 2012-12-30 19:06:12 -0800

More abyss flavor

--------------------------------------------------------------------------------
9988e5e4d4 | Brendan Hickey | 2012-12-30 19:06:11 -0800

Death cob jokes.

--------------------------------------------------------------------------------
94ddc67867 | Brendan Hickey | 2012-12-30 19:06:11 -0800

Abyss Monster Spawning
Abyss monsters spawn in a puff of smoke.

--------------------------------------------------------------------------------
c67ddf9c87 | Brendan Hickey | 2012-12-30 19:06:11 -0800

Update Abyss Exit Vaults
All abyss exit vaults may now have an exit or a downstairs.
The vault creation frequency should probably be increased the offset the
inevitable annoyance brought on by this change.

--------------------------------------------------------------------------------
bdbab453ad | Brendan Hickey | 2012-12-30 19:06:11 -0800

Decrease abyss terrain change frequency
We should have larger homogenous regions so the player can actually tell
what's what.

--------------------------------------------------------------------------------
f43c61cc9b | Brendan Hickey | 2012-12-30 19:06:11 -0800

Abyss Layout
An 'abyssy' layout, mixing columns and chaos.

--------------------------------------------------------------------------------
a305643ff1 | Brendan Hickey | 2012-12-30 19:06:10 -0800

Abyss Copying
Apply the 'abyss copies the dungeon' feature to descending gates within
the abyss.

Simplify voluntary and involuntary banishment to use less divergent code
paths.

--------------------------------------------------------------------------------
90c74a3999 | Brendan Hickey | 2012-12-30 19:06:10 -0800

We need to go deeper.
Getting banished within the abyss brings you... deeper within the abyss!
Banishment inside the abyss works with a (27-depth)/27 chance.

--------------------------------------------------------------------------------
6e1c33e8f5 | Brendan Hickey | 2012-12-30 19:06:10 -0800

Mixed Column Abyss
Procedural layout for the abyss using a mixture of sparse and dense
columns!

--------------------------------------------------------------------------------
34e5bd8395 | Brendan Hickey | 2012-12-30 19:06:10 -0800

Worley Changes
Use a Manhattan metric for worley noise.
Add a header guard (oops!)

--------------------------------------------------------------------------------
78b2a340d6 | Brendan Hickey | 2012-12-30 19:06:10 -0800

Old Abyss Clone
The old abyss implemented in terms of a procedural layout.
It's currently very thrashy.

--------------------------------------------------------------------------------
b8dd3ee7e9 | Brendan Hickey | 2012-12-30 19:06:10 -0800

More procedural layouts
Added Min and Max layouts.

--------------------------------------------------------------------------------
c1dc388f30 | Brendan Hickey | 2012-12-30 19:06:10 -0800

Fix offset error

--------------------------------------------------------------------------------
2186d5db8c | Brendan Hickey | 2012-12-30 19:06:09 -0800

Procedural Dungeon Generators!
Procedural Dungeon generators consume a coordinate and output dungeon
terrain. The idea is to compose them for interesting results. This
commit forces the abyss to use a 2x2 column layout.

--------------------------------------------------------------------------------
706b2d18b3 | Brendan Hickey | 2012-12-30 19:06:09 -0800

Add perlin.o to Makefile

--------------------------------------------------------------------------------
5ecf38d3a1 | Brendan Hickey | 2012-12-30 19:06:09 -0800

Perlin Noise
Merge Perlin noise from the layout branch.

--------------------------------------------------------------------------------
94f7d5a229 | Brendan Hickey | 2012-12-30 19:06:09 -0800

Remove liquids from the abyss.

--------------------------------------------------------------------------------
235e549a17 | Brendan Hickey | 2012-12-30 19:06:09 -0800

Stair and Rune Modifications
Abyssal Stairs are no longer subject to morphing.
Collecting the rune does not teleport you -- vaults should contain
stairs.
Abyss teleports become less likely in vaults (rationale: they're stable
islands).
Remove erroneous banishment message on descending the abyss.

--------------------------------------------------------------------------------
41e8fe5eb7 | Neil Moore | 2012-12-30 19:06:08 -0800

Save compatibility for abyssal stairs.
Put them at the end of the feature enum list until the next save
compatibility bump.  Also, increase the Abyss depth when loading
an old save.

--------------------------------------------------------------------------------
3be0d02e6a | Brendan Hickey | 2012-12-30 19:06:08 -0800

Abyssal Stair Chance
Range the abyssal stair odds from 3500 (twice that of Abyssal exits) at
A:1 to 1766 at A:26.

--------------------------------------------------------------------------------
dc19164737 | Brendan Hickey | 2012-12-30 19:06:08 -0800

Remove abyss room generation

--------------------------------------------------------------------------------
5ca5ee6fd0 | Brendan Hickey | 2012-12-30 19:06:08 -0800

Message fixup
Display different text if the player goes deeper within the abyss.

--------------------------------------------------------------------------------
42343de833 | Brendan Hickey | 2012-12-30 19:06:08 -0800

Skeletal Warriors and the Abyss
Remove Skeletal warriors from the abyss.

--------------------------------------------------------------------------------
5c5ba79051 | Brendan Hickey | 2012-12-30 19:06:08 -0800

Slowly scale rune chance with depth

--------------------------------------------------------------------------------
d757b32d7e | Brendan Hickey | 2012-12-30 19:06:07 -0800

Simplify Abyssal rune rolling.
The Abyssal rune will not generate above Abyss:3.
At Abyss:3 there's a 7.5% chance of generating the rune with each item
role. A:4 -- 17% (equivalent to spending 8000 turns in the Abyss as
a non-Lucy follower). A:5 and beyond -- 25%.
Lugonu worshippers get a one level boost.

I'm ideologically opposed to the rune spawning on the floor. Eventually
this logic should be replaced exclusively with rune vaults.

--------------------------------------------------------------------------------
a66ddf5017 | Brendan Hickey | 2012-12-30 19:06:07 -0800

The 27 levels of the abyss

--------------------------------------------------------------------------------
e0202260dc | Brendan Hickey | 2012-12-30 19:06:07 -0800

Abyssal portals.
This adds portals to other parts of the abyss. The current effect is
identical to getting banished into the abyss.
Portals currently appear at twice the base rate of exit portals.
In the future, the abyss will get scarier the deeper you go!

[Note: save compatibility is currently broken! -NFM]

--------------------------------------------------------------------------------
9c80241f57 | Brendan Hickey | 2012-12-30 19:06:07 -0800

Lurking Horror
Stalks you out of view. Then charges you and explodes with torment.
Quite the day spoiler if you ask me.

--------------------------------------------------------------------------------
42d7f359f0 | Adam Borowski | 2012-12-31 03:44:03 +0100

Fix spriggan defender w/ hard-drawn shield; give spriggans shield attachments.

--------------------------------------------------------------------------------
e7f9cb3ce2 | Adam Borowski | 2012-12-31 03:44:03 +0100

Rename worn shield tiles according to their names; move unused to doll_only/
The latter are not 100% unused -- they can be used with the doll editor (-)
in local tiles.  That's something 0.01% of players know about, and those who
do probably played with it once.

In other words, all these shield tiles are currently wasted.  They're not
used for glowing/racial variants, nor even for randarts.

--------------------------------------------------------------------------------
03bdcc6477 | Zannick | 2012-12-30 19:36:41 -0500

Mark unique subvaults temporarily used (#6328).
Committer note: uniq_TAG and luniq_TAG still don't work properly with
subvaults, but this at least fixes the multiple-silver-rune problem (and
also duplicate quadrants in grunt_profane_halls).

--------------------------------------------------------------------------------
4a24e07292 | Adam Borowski | 2012-12-30 23:43:48 +0100

s/shield/buckler/ in tile names for worn bucklers.

--------------------------------------------------------------------------------
14072c52dd | Adam Borowski | 2012-12-30 18:52:28 +0100

Fix monsters ignoring worn item tiles.

--------------------------------------------------------------------------------
76c09dea3f | Adam Borowski | 2012-12-30 18:48:45 +0100

Fix Donald and Louise being drawn with a shield when they have none.
This separates their shield from the base tile, and allows them to show
randarts if they happen to be generated with one (both are eligible).

This does _not_ fix Louise's shield looking like a buckler when worn:
she has a large shield whenever her weapon is 1-handed, yet the tile is
too small.

--------------------------------------------------------------------------------
ab12c06a4c | Neil Moore | 2012-12-30 02:16:32 -0500

Allow (C)Blink spell, not Tele Self, in Sprint.

--------------------------------------------------------------------------------
9100a99b22 | Adam Borowski | 2012-12-30 00:51:16 +0100

Make HangedMan's quiver shiver.

--------------------------------------------------------------------------------
680d0ea043 | Neil Moore | 2012-12-29 17:13:34 -0500

Don't keep force_map forever when crashing after &P
Thanks to HangedMan for finding the problem and how to reproduce it.

--------------------------------------------------------------------------------
758438fb95 | Adam Borowski | 2012-12-29 03:40:24 +0100

Handle non-item sources of -TELE.
Currently, that's only sprint, and not for blink.

This fixes relevant spells and abilities being usable but then doing nothing.

--------------------------------------------------------------------------------
a686ed9f01 | Neil Moore | 2012-12-28 18:09:02 -0500

Formatting fixes.

--------------------------------------------------------------------------------
c19d3c1625 | Chris Campbell | 2012-12-28 20:44:55 +0000

Allow gnoll shamans and a sergeant to spawn in early lemuel_castle
It can spawn shallower than serial_gnoll_camp but there'll only be at
most one sergeant (sometimes replacing the ogre) and a few shamans, plus
they're all enclosed in a big obvious vault rather than roaming the
level.

--------------------------------------------------------------------------------
4ce8603ef6 | Chris Campbell | 2012-12-28 20:44:55 +0000

Remove runed doors from lemuel_castle

--------------------------------------------------------------------------------
5dbaaa8f67 | Chris Campbell | 2012-12-28 20:44:54 +0000

Don't trap amphibious players when teleporting in ice caves

--------------------------------------------------------------------------------
dd524316a4 | Neil Moore | 2012-12-28 11:38:27 -0500

Clarify !/? key in stash search menu.
Since there are only two actions (travel and examine), display the name
of the inactive action rather than just the word "action".  This should
provide a bit more of an on-screen hint as to how to view shop contents
(suggested by raistware).

--------------------------------------------------------------------------------
85f6d87c17 | Neil Moore | 2012-12-28 00:40:19 -0500

Anger shadow creature band members, not just leaders (#6479).
I don't believe any other spells/effects both use MG_FORCE_BEH and allow
summoning bands; if so, they may need to be fixed in a similar way.

--------------------------------------------------------------------------------
626e68c57b | Adam Borowski | 2012-12-28 03:18:59 +0100

s/Lev/Fly/ for &t

--------------------------------------------------------------------------------
b55b0c256e | Adam Borowski | 2012-12-28 03:15:59 +0100

Clear confusion about notele() and no_tele(), remove uses of the former.
It was wrong for the Orb in zotdef and for stationary monsters.

--------------------------------------------------------------------------------
10a269ee78 | Adam Borowski | 2012-12-28 01:37:52 +0100

Document that opengl headers (typically mesa) are needed for build.
The docs still lived in 0.4 times from before GLification of tiles.

--------------------------------------------------------------------------------
164869b007 | Neil Moore | 2012-12-27 16:58:18 -0500

Don't crash 'monster' when monsters flash the view.

--------------------------------------------------------------------------------
a84578cce0 | Raphael Langella | 2012-12-27 21:33:35 +0100

Fix aborted weapon switch leaving the player unarmed (#6187).
Unless the failure was caused by an incompatible and unidientifed brand.

--------------------------------------------------------------------------------
20c7c20133 | Adam Borowski | 2012-12-27 15:54:52 +0100

Unify menu_colour_item_prefix and filtering_item_prefix.
The only reason for this madness was so searching for "ident" doesn't
find identified items.

--------------------------------------------------------------------------------
b7904db5ad | Adam Borowski | 2012-12-27 15:54:52 +0100

Replace "evil_eating" and "evil_item" by "forbidden".
They were inconsistent and incorrect: an item of speed is not evil, evil
gods may dislike items (Yred: holy wrath) or food (Beogh: orc corpses).

The old prefixes still exist for purposes of compatibility with old configs.

--------------------------------------------------------------------------------
ceba57d674 | Adam Borowski | 2012-12-27 15:54:52 +0100

Bring back the display of stash prefixes on big enough terminals.
Elliptic is right, this causes too big problems on tinyterms, and our
description code can't currently handle text that doesn't fit on the
screen.  On the other hand, the information existing in a corner of
little-known documentation is not that useful, and bad access to it
was problematic even to me during reworking of this code that I began
-- which bodes ill for anyone less accustomed to the game's internals.
Thus, let's show the data on bigger screens.

Another problem is the two types of prefixes causing major confusion
among players.

--------------------------------------------------------------------------------
3cbd839762 | DracoOmega | 2012-12-27 15:54:52 +0100

More properly fix wretched star flashing
The flash is still visible through glass, though it will not affect
things on the other side. Display of the flash is clipped to affected
surroundings, as with other flash spells like Ozocubu's Refridgeration

--------------------------------------------------------------------------------
f8090bf0a3 | Brendan Hickey | 2012-12-26 17:37:20 -0500

Wretched Star Flahses
Wretched Star should only illuminate the dungeon if it can actually hit you.
Don't flash when out of LOS, or if the line of fire is blocked.

--------------------------------------------------------------------------------
f6b946e57d | Raphael Langella | 2012-12-26 18:31:46 +0100

Fix a compiler warning.
declaration of 'strength' shadows a member of 'this'

--------------------------------------------------------------------------------
7f04164925 | Chris Campbell | 2012-12-24 12:33:59 +0000

Fix teleporters ignoring stasis, add failure messages for some vaults
Except for Zigsprint teleporters, Maxwell's users should be encouraged
at all costs.

--------------------------------------------------------------------------------
a9aa566fed | Florian Diebold | 2012-12-24 11:24:35 +0100

Webtiles: Fix the menu for uncancellables not appearing on game start.

--------------------------------------------------------------------------------
34ed474be0 | elliptic | 2012-12-24 04:02:04 -0500

Fix several things involving cold damage.
Some of them were a byproduct of 609867cb.

* Monsters with freezing weapons no longer destroy potions (there isn't
  anything intrinsically wrong with them doing so, but it was added
  accidentally and inconsistently with other item destruction).
* Cold bolts no longer slow player draconians (this type of slowing is
  reserved for refrigeration, freeze, and freezing weapons, not general
  cold attacks).
* Monsters can no longer bypass rC+ when using refrigeration to slow other
  monsters.
* The strength value of the slowness effect from cold attacks is a bit more
  consistent. However, this value doesn't actually affect anything for
  monsters yet because the strength argument in monster::slow_down doesn't
  get used.

--------------------------------------------------------------------------------
72bdf47f1a | elliptic | 2012-12-23 16:21:09 -0500

Clean up rod descriptions a bit.
* Now they get a spell list even if they only contain one spell, which
  allows players to see the level, hunger, range, noise of the spell.
* The Thunderbolt spell (used by lightning rod) now has a description.
* The lightning rod description is less ridiculously long.
* The generic rod quote was removed because sometimes it would push actual
  information off the screen. The current quote code doesn't handle objects
  with spell lists properly, which is why books do not have quotes
  either... and there is very little room for a quote anyway.

--------------------------------------------------------------------------------
68daa12bbc | elliptic | 2012-12-23 16:17:34 -0500

Remove prefix lists from item descriptions, update documentation.
There's no need to clutter up item descriptions with these prefixes when
they are already documented more usefully elsewhere (the stash search
prefixes in the stash search help screen and the menu colour prefixes in
options_guide.txt). There were just a few things missing in the stash search
help, which is now updated.

--------------------------------------------------------------------------------
d95b296bec | elliptic | 2012-12-23 15:17:02 -0500

Remove redundant "forbidden" prefix.
The prefix "evil_eating" is superior.

--------------------------------------------------------------------------------
c4df032e32 | Chris Campbell | 2012-12-23 13:41:32 +0000

Fix Spider's Nest entrance desc (HangedMan)

--------------------------------------------------------------------------------
6da98bfd48 | Chris Campbell | 2012-12-23 00:55:22 +0000

Fix the draining brand still dealing bonus damage to demons/undead

--------------------------------------------------------------------------------
5e01d17691 | Neil Moore | 2012-12-22 17:00:35 -0500

Don't disable the manual skill on load (#6458).
Reading a (non-useless) manual enabled training for its skill, even if
training would otherwise be blocked (e.g. a manual of Shields without a
shield, or a manual of Ice Magic with no relevant spells).  However, on
save and reload the skill was marked as untrainable.  Fix this by always
removing the player's manual_skill from stop_train.

--------------------------------------------------------------------------------
f41d6fba04 | Chris Campbell | 2012-12-21 22:17:42 +0000

Remove an entry vault that could trap teleporting players
As well as being able to trap players, it frequently generates with
doors that open directly onto rock walls, and strange-looking 3-tile
gates.

--------------------------------------------------------------------------------
1abc088ebb | Adam Borowski | 2012-12-21 23:11:53 +0100

Weed most plants from dpeg_entry_water_fire.
It's never fun to cut through them for several hundred turns.

--------------------------------------------------------------------------------
f821223d26 | Adam Borowski | 2012-12-21 23:08:05 +0100

Make a broken entry vault an unthing.

--------------------------------------------------------------------------------
3b8bcb580c | Brendan Hickey | 2012-12-21 15:57:45 -0500

Add CC0 License

--------------------------------------------------------------------------------
6a7776d662 | Chris Campbell | 2012-12-21 20:32:21 +0000

Remove a reference to an ex-option from the ^F help page

--------------------------------------------------------------------------------
611b22e953 | Chris Campbell | 2012-12-21 19:56:40 +0000

Remove an altar from an entry vault (st_)
Looks like it was accidentally added in de39ce0a7c644fca8e2d.

--------------------------------------------------------------------------------
a3683c4d03 | Neil Moore | 2012-12-21 00:01:49 -0500

Don't give free reache failures through OoD etc.
If reaching failed and we target a middle monster instead, and
fight_melee returns false for some reason (e.g. the monster is a
projectile), end the turn.  Previously, the player could simply retry
until the reach succeeds.  Thanks to HangedMan for pointing this out.

--------------------------------------------------------------------------------
01e258bc30 | DracoOmega | 2012-12-20 23:31:14 -0500

Fix inversion in starcursed mass exp calculations
Instead of small masses being worth less than their parent, they
were accidentally worth quite a bit more.

--------------------------------------------------------------------------------
1e9573cfc4 | Chris Campbell | 2012-12-20 22:50:48 +0000

Unrot HP and cure nausea when wizmode healing

--------------------------------------------------------------------------------
37568daa67 | Chris Campbell | 2012-12-20 21:38:08 +0000

Remove an out-of-date Donald line

--------------------------------------------------------------------------------
90cf61f048 | Adam Borowski | 2012-12-20 20:55:19 +0100

Fix a crash when starcursed masses scream a monster to death.

--------------------------------------------------------------------------------
44fe2a6941 | Adam Borowski | 2012-12-20 13:28:23 +0100

Fix a game-killing bug with recursive uncancellables.
Like, getting a Genie acquirement from Triple Draw.

--------------------------------------------------------------------------------
63f7441749 | Brendan Hickey | 2012-12-19 19:02:41 -0800

Update license for Worley noise
Steve Worley has agreed via e-mail to relicense his noise reference 
implementation under the MIT license.

--------------------------------------------------------------------------------
25b93e5d05 | Neil Moore | 2012-12-19 21:46:33 -0500

Fix gourmand timer.
In the amulet refactor I neglected to implement the "permanently"
parameter of player_likes_chunks. Thanks to HangedMan for pointing this
out.

--------------------------------------------------------------------------------
3544ee8783 | Neil Moore | 2012-12-19 18:26:35 -0500

Remove stash.lua references in help (ChrisOelmueller).

--------------------------------------------------------------------------------
1b8a4eab5a | David Lawrence Ramsey | 2012-12-19 15:45:21 -0600

Add wording fix.

--------------------------------------------------------------------------------
5d63a08e0a | Adam Borowski | 2012-12-19 18:58:58 +0100

Fix debug mode tracers not being spammy.
From the typos, it looks like two wongs make wight, at least as passing
compilation is concerned.

--------------------------------------------------------------------------------
f209afdf54 | Adam Borowski | 2012-12-19 18:34:30 +0100

Don't pass '\0' as char*.
It will get promoted to a null pointer, yeah, but promoting a char this way
is suspicious enough that you can get a warning.

--------------------------------------------------------------------------------
615b653c8e | Adam Borowski | 2012-12-19 18:34:30 +0100

Remove a comment.
Fedhas' titles are no worse than most gods, and certainly better than some.

--------------------------------------------------------------------------------
609867cb54 | Adam Borowski | 2012-12-19 10:45:08 +0100

Make player draconians cold-blooded.
Like with monsters, negated by any positive rC.

--------------------------------------------------------------------------------
08371cfc52 | Brendan Hickey | 2012-12-18 20:53:24 -0800

Fix Abyss Liquid Kills
Morph the abyss after the player reacts.
This should resolve flight expiring after the abyss shifts stranding the player 
over lava.
(cherry picked from commit 00f47ca53f4e064b8d211a78374987920623d1d8)

--------------------------------------------------------------------------------
fbab18d99f | Neil Moore | 2012-12-18 23:15:54 -0500

Show manual bonus even alongside antitraining '*'.
Fixes #6457. (Or at least the visual part)

--------------------------------------------------------------------------------
dd46fde7bb | Neil Moore | 2012-12-18 21:51:42 -0500

Recalculate burden etc. on suppression change (#6314).

--------------------------------------------------------------------------------
8b2b9760c2 | Neil Moore | 2012-12-18 21:00:09 -0500

Avoid a targetting crash (Zannick).

--------------------------------------------------------------------------------
893cf88801 | Neil Moore | 2012-12-18 19:38:35 -0500

Fix rings of invis only working when suppressed.

--------------------------------------------------------------------------------
8da1224652 | Raphael Langella | 2012-12-19 00:01:37 +0100

Fix indentation.

--------------------------------------------------------------------------------
0f7d767c63 | Raphael Langella | 2012-12-18 23:58:10 +0100

Improve LRD default targetting (#6315).
It will target a wall to try to blast the nearest monster. Convenient, but
still crude (doesn't try to avoid the player, no cycling).

--------------------------------------------------------------------------------
57b6bdd542 | Adam Borowski | 2012-12-18 17:22:47 +0100

Fix unknown scrolls of id doing nothing on decks of a known type.

--------------------------------------------------------------------------------
58c9cb3bad | Adam Borowski | 2012-12-18 17:22:46 +0100

Use an orthodox message when petrification is aborted.

--------------------------------------------------------------------------------
6b6c6aac83 | Adam Borowski | 2012-12-18 03:07:11 +0100

Fix a console-in-webtiles hints regression vs console.
(is_tiles() is constexpr, ie not any worse than #ifdefs in C++11, or in
C++ < 11 optimized builds.)

--------------------------------------------------------------------------------
ee63996399 | Adam Borowski | 2012-12-18 02:56:12 +0100

Fix gods not giving anything to octopodes in water.
This is pretty spoilery and surprising, especially if you take the Water
card into account.

--------------------------------------------------------------------------------
6733b32fa0 | Neil Moore | 2012-12-17 16:56:01 -0500

Detect and warn on bad {enemy_hp,hp,mp,stat}_colour.
Fixes #6455.  Only enemy_hp_colour would cause a later crash; the others
just resulted in reverse (console) or white-on-white (tiles) text.

--------------------------------------------------------------------------------
603cd27e53 | DracoOmega | 2012-12-17 20:16:52 +0000

Fix abyssal monster resists
This fixes ancient zymes and starcursed masses mistakenly having
virtually no MR, as well as unintentionally absent rPois+++ from
starcursed masses and tentacled starspawn.

--------------------------------------------------------------------------------
1813dca22c | Chris Campbell | 2012-12-17 20:16:42 +0000

Add a missing option to the options_guide contents (#6453)

--------------------------------------------------------------------------------
af28033a60 | Adam Borowski | 2012-12-17 15:20:39 +0100

Unbreak games with missing callback.grunt_victim_ignite

--------------------------------------------------------------------------------
341861f4fc | Adam Borowski | 2012-12-17 14:37:54 +0100

Let starcurseds spawn in the Abyss.

--------------------------------------------------------------------------------
7e6267c06c | Adam Borowski | 2012-12-17 14:32:35 +0100

Correct the pronoun for accursed screaming against monsters.

--------------------------------------------------------------------------------
e7f826a425 | DracoOmega | 2012-12-17 14:32:35 +0100

Allow starcursed masses to scream at other monsters
The scream can only affect monsters of I_ANIMAL or greater
intelligence, but otherwise has the same effect as it would
against the player.

--------------------------------------------------------------------------------
6606e5e43b | DracoOmega | 2012-12-17 14:32:35 +0100

A description for starcursed masses

--------------------------------------------------------------------------------
836a3caefe | DracoOmega | 2012-12-17 14:32:35 +0100

Don't award full exp for killing only parts of a starcursed mass

--------------------------------------------------------------------------------
e6edf70e6e | DracoOmega | 2012-12-17 14:32:34 +0100

Make starcursed masses retreat towards each other when damaged
If a starcursed mass would attempt to merge with an ally upon taking damage,
but no other masses are adjacent, attempt to move one space towards the
nearest starcursed mass anyway.

--------------------------------------------------------------------------------
96476ae412 | DracoOmega | 2012-12-17 14:32:34 +0100

Make starcursed masses merge with a neighbour when damaged.
Whenever a starcursed mass sustains non-lethal damage, they will immediately
merge with a random adjacent starcursed mass. This gives players an option to
help supress their proliferation, so long as they do not ignore them for long.

--------------------------------------------------------------------------------
031c4a2eb3 | DracoOmega | 2012-12-17 14:32:34 +0100

Teach starcursed masses how to scream.
All visible masses will shriek in your mind at once, the power of the effect 
depending
on how many masses are visible to do this. It does a small amount of 
smite-targeted
AC-ignoring damage (which scales based on the number of masses shrieking). More 
significantly,
at 5 or more masses, it has a 33% chance of stunning you for 1 turn, while 8 or 
more
masses has a 50% chance of stunning you for 2 turns.

The chance of an individual mass screaming depends on the number of masses in 
the chorus,
so that the overall chance of a scream happening each turn remains more or less 
similar
as they proliferate.

--------------------------------------------------------------------------------
ddb9d4d6f1 | DracoOmega | 2012-12-17 14:32:34 +0100

Allow starcursed masses to split (up to a maximum of 12)
Currently uses some of the slime monster split code (including a very minor 
refactor to
create child monsters based on the parent monster's type, rather than 
hardcoding it).
They also currently will not remerged under any circumstances.

Chance of an individual mass splitting depends on how large it is (with smaller 
masses
less individually likely to do so)

--------------------------------------------------------------------------------
38f662155e | DracoOmega | 2012-12-17 14:32:34 +0100

Add base starcursed mass monster definition

--------------------------------------------------------------------------------
2a677709ee | Adam Borowski | 2012-12-17 13:26:41 +0100

Revert "Remove unused option to ignore write errors for save fragments."
Wasn't unused after all.

This reverts commit 85c029f90f2150304624966408f27ed03fa557e6.
This reverts commit 8f1bf02ff69b91399f66c8542e115848ba0d79bb.

--------------------------------------------------------------------------------
8f1bf02ff6 | Neil Moore | 2012-12-17 01:24:54 -0500

Fix USE_DGAMELAUNCH compiles.
This does mean that an error writing timestamps is a more serious
problem than it was before 85c029f.

--------------------------------------------------------------------------------
968cdc1e3d | Neil Moore | 2012-12-17 00:03:26 -0500

Make monsters want rCorr/preservation and running.

--------------------------------------------------------------------------------
84ada5bfb1 | Neil Moore | 2012-12-16 23:46:10 -0500

Make resist corrosion work for monsters.
Since monster rAcid is only one level, rCorr/preservation grants them
acid immunity.

--------------------------------------------------------------------------------
a22bb09559 | Neil Moore | 2012-12-16 23:46:00 -0500

Make monster rAcid into immunity.
It had been possible to damage e.g. jellies with acid attacks since the
mon_resist_* refactoring.  Make them immune again, along with all rAcid
monsters (a net buff for the ones that had been only rAcid+ in 0.10).

Player rAcid continues to resist 50% of the damage.

--------------------------------------------------------------------------------
ccf4e766a5 | Neil Moore | 2012-12-16 22:50:28 -0500

Allow running ego to affect monsters.

--------------------------------------------------------------------------------
678b374f96 | Neil Moore | 2012-12-16 22:50:27 -0500

Identify clarity when resisting mislead.

--------------------------------------------------------------------------------
251c4eefad | Neil Moore | 2012-12-16 22:42:27 -0500

Refactor amulet and equipment-checking functions.
Move most of the player_* functions related to amulets, and all of the
player_effect_* functions, into class actor, with some overridden in
class player.  Likewise, move player_equip(), player_equip_ego_type(),
and scan_artefacts() into class player, with pure virtuals in class
actor and corresponding implementations in class monster.  Also remove a
few now-redundant functions.

This commit doesn't actually make any kinds of equipment have an effect
on monsters that didn't already, but it should be much easier to do so
now, since the relevant methods are there now.  Monster gourmand,
conservation, faith don't necessarily make sense, but those methods are
in actor anyway for consistency with the rest.

Fixes #6172.  We now check for innate gourmand (etc.) without reference
to suppression.

--------------------------------------------------------------------------------
64abc101d9 | Chris Campbell | 2012-12-17 03:37:40 +0000

Make new abyssals more common for testing
Revert/adjust later as appropriate.

--------------------------------------------------------------------------------
d48ce28b43 | Chris Campbell | 2012-12-17 03:34:36 +0000

Fix a zyme message

--------------------------------------------------------------------------------
31ec556133 | Chris Campbell | 2012-12-17 03:05:27 +0000

Move another D:6 orc sorcerer deeper

--------------------------------------------------------------------------------
45826dadf9 | Chris Campbell | 2012-12-17 02:40:27 +0000

Don't crash when detonating lurking horrors inside a sanctuary

--------------------------------------------------------------------------------
3e07ec67fe | Brendan Hickey | 2012-12-17 02:40:26 +0000

Lurking Horror
Stalks you out of view. Then charges you and explodes with torment.
Quite the day spoiler if you ask me.

--------------------------------------------------------------------------------
2b552cca4a | Chris Campbell | 2012-12-17 02:40:26 +0000

Add a comment
Opening up beam.cc to double-check the order of zap_info bools is far
too much effort.

--------------------------------------------------------------------------------
715a9cbded | Adam Borowski | 2012-12-17 03:35:33 +0100

Make zymes obey sanctuary; make undead immune.
For the latter, I used res_rotting(), as that's what sicken() uses.  This
prevents spam.  Currently, vitalized Zinnites still get spammed.

--------------------------------------------------------------------------------
1777037409 | DracoOmega | 2012-12-17 03:35:33 +0100

Ancient zymes
Relatively low-power abyssal monsters which inflict disease (and possible
str and dex damage) passively when near the player. Also has a mild stat-
draining melee attack.

--------------------------------------------------------------------------------
a761345e28 | Chris Oelmueller | 2012-12-17 03:35:33 +0100

Do not place orc sorcerers on D:6
Still a rough ride now but at least not outright unfair.

--------------------------------------------------------------------------------
6e4a671ffc | Adam Borowski | 2012-12-17 03:35:33 +0100

Fix a compiler warning (unused function in tile builds).

--------------------------------------------------------------------------------
345f0734ff | Adam Borowski | 2012-12-17 03:35:33 +0100

Purge descs for custom monsters from recently removed vaults.

--------------------------------------------------------------------------------
284e1e693c | Adam Borowski | 2012-12-17 03:35:32 +0100

Remove some problematic vaults.
The snail statues give XP for tediously killing a defenseless monster, stop
autoexplore, introduce exclusions, etc.  And a tiresome slog through mud goes
against "take it easy".  The vault has been disabled for quite a while and
no one suggested how to fix it.

People randomly combusting for no explainable reason are no good, either --
altars with a caged sacrifice waiting for a worthy adventurer can be somehow
argued for, this series of vaults not really.  Especially if people who die
there can't live in that branch in the first place.

Two piles of human chunks with wands of disintegration with exactly 0 charges
can't be realistically explained as a "duel", either.  It's too silly a
gimmick -- silliness should at least have some reason.

--------------------------------------------------------------------------------
be27ec5186 | Adam Borowski | 2012-12-17 03:35:32 +0100

Let alarm traps trigger only once.
After they have done their job they're only an annoyance.

--------------------------------------------------------------------------------
85c029f90f | Adam Borowski | 2012-12-17 03:35:32 +0100

Remove unused option to ignore write errors for save fragments.

--------------------------------------------------------------------------------
e405948910 | Adam Borowski | 2012-12-17 03:35:32 +0100

Remove unused marshallEnumVal subsystem.

--------------------------------------------------------------------------------
0440931615 | Adam Borowski | 2012-12-17 03:35:32 +0100

Mark a function static.

--------------------------------------------------------------------------------
b57f638510 | Adam Borowski | 2012-12-17 03:35:31 +0100

Clean up conftest.cc after use.

--------------------------------------------------------------------------------
55f3110c2c | Raphael Langella | 2012-12-16 22:15:23 +0100

Monsters' foe memory use game turns instead of player actions.
Also reduce the initial value to something more reasonable.

--------------------------------------------------------------------------------
423a80670d | Samuel Thorpe | 2012-12-16 03:32:28 -0500

Fix and remove some vaults.
This is mainly concerning the Vaults. A lot of random vaults in
mini_monsters.des have been prevented from spawning there and a number of
vaults have been removed from vaults_rooms.des. This isn't comprehensive,
but it removes some of the worst offenders.

--------------------------------------------------------------------------------
d33793693e | Adam Borowski | 2012-12-16 05:12:47 +0100

Constify the actor in mgen_data.

--------------------------------------------------------------------------------
129b971fb6 | Adam Borowski | 2012-12-16 00:35:25 +0100

Properly handle HUP on the mercenary card prompt.

--------------------------------------------------------------------------------
e91f5400ee | Adam Borowski | 2012-12-16 00:35:25 +0100

Remove "Are you sure you want to win?".
It had a sliver of use as a reminder to pick up the runes you stashed on
D:1, but nowadays, it's pointless.  And no, "because I want to wield the
Orb" or "I want to ascend in dragon form" are not reasons good enough to
ask a stupid question.

--------------------------------------------------------------------------------
e96fa9cdac | Brendan Hickey | 2012-12-15 11:23:59 -0800

Add Borges quote to Staff of Fire

--------------------------------------------------------------------------------
bb9c5e6d22 | Neil Moore | 2012-12-14 21:58:17 -0500

Add DracoOmega to CREDITS.txt

--------------------------------------------------------------------------------
cd37999d1a | DracoOmega | 2012-12-14 21:51:44 -0500

Avoid unnecessary 'comes into view' for split slime creatures
Don't print unnecessary messages about slime creatures coming into view
if you saw the split that created them.

--------------------------------------------------------------------------------
c91f34ddfe | Chris Campbell | 2012-12-14 19:30:04 +0000

Give Bend Space a flat chance to blink monsters instead of an MR check
It doesn't make much sense for MR to be involved when it's space itself
that's being affected.

--------------------------------------------------------------------------------
b589162a9a | Neil Moore | 2012-12-13 21:35:11 -0500

Draw overlays on top of monsters.
In particular, spell zaps. This was apparently being drawn correctly
in webtiles but not local tiles.

Thanks to DracoOmega for spotting this.

--------------------------------------------------------------------------------
4494747a51 | elliptic | 2012-12-13 20:13:38 -0500

Use >= instead of == for AFF_* comparison.

--------------------------------------------------------------------------------
4c7a0032d7 | elliptic | 2012-12-13 19:23:37 -0500

Fix the automatic explosion/cloud targetting treating AFF_YES and AFF_MAYBE the 
same.
Now it will only try to hit an outside-range monster if the explosion/cloud
is actually guaranteed to hit it.

--------------------------------------------------------------------------------
3f86f631e0 | David Lawrence Ramsey | 2012-12-13 18:23:06 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
c671ecd654 | elliptic | 2012-12-13 18:55:37 -0500

Give wands of random effects disintegration instead of heal wounds (elliott).
Heal wounds was a scummy way to save a few potions curing rot late game,
and disintegration looks to have been accidentally omitted. Also, the code
for randomly selecting a wand effect to use was cleaned up a little.

--------------------------------------------------------------------------------
85fa42b907 | elliptic | 2012-12-13 18:01:30 -0500

Fix troll leather armour increasing hunger rate for injured DDs.

--------------------------------------------------------------------------------
a14d036155 | Neil Moore | 2012-12-13 18:01:27 -0500

A quote for giant centipedes (Insomniak`).

--------------------------------------------------------------------------------
5be6201682 | elliptic | 2012-12-13 17:28:45 -0500

Nerf wizlab_cigotuvi loot.
7.5 potions of gain stat was a bit excessive, now there are half as many.

--------------------------------------------------------------------------------
90226f87ee | elliptic | 2012-12-13 15:27:34 -0500

Don't let DD and bloodless Vp recover from sickness/nausea more quickly with 
regen items.

--------------------------------------------------------------------------------
93df097427 | elliptic | 2012-12-13 15:01:22 -0500

Prevent digging from influencing teleportation.
It used to be the case that you could massively increase your chances of
teleporting out of the Zot:5 vault by completely digging out the other half
of the level, since more empty squares means a higher chance of teleporting
there.

This commit removes this exploit by marking all solid squares as no_rtele
when a level is created.

--------------------------------------------------------------------------------
fac81a7b0f | elliptic | 2012-12-13 15:01:22 -0500

Fix Jiyva stat action to use the new carrying capacity formula.

--------------------------------------------------------------------------------
2cb2864c60 | Adam Borowski | 2012-12-13 10:28:12 +0100

Don't abort local tile games when a controlling terminal gets closed.
They were saved from a signal handler, which is likely to result in
corrupted sabes (as the game state is inconsistent), or at least in
crashes.

Note that EVERY SINGLE CALL to sighup_save_and_exit() is a bug: corrupting
saves, allowing cheats, etc -- and in the only legitimate use, it's code
redundant with CMD_SAVE.

--------------------------------------------------------------------------------
d868356357 | Chris Campbell | 2012-12-12 23:29:34 +0000

Add notes for Vehumet spell offers

--------------------------------------------------------------------------------
7690b653ce | Chris Campbell | 2012-12-12 22:42:53 +0000

Re-fix some kraken messages showing up even if the kraken wasn't visible
This got lost in the tentacallis merge somewhere. Also fixes tentacle
messages being duplicated.

--------------------------------------------------------------------------------
f7e431e13d | elliptic | 2012-12-12 17:22:08 -0500

Use actual stealth rather than Stealth skill when trying to shake off monsters.
Previously a GDA character with no stealth could still lose monsters when
going around corners if it trained stealth skill a little bit.

--------------------------------------------------------------------------------
ba4bc3f39f | elliptic | 2012-12-12 17:22:08 -0500

Fix whitespace.

--------------------------------------------------------------------------------
74b4a46b57 | DracoOmega | 2012-12-12 17:22:08 -0500

Don't let player teleports shake off monsters when under Ashenzari wrath
Normally, Ash wrath prevents monsters from ever forgetting the player's 
location, but teleporting was a single (likely unintentional) exception that 
still caused them to forget you like normal.

--------------------------------------------------------------------------------
bc34d49d83 | DracoOmega | 2012-12-12 17:22:08 -0500

Have monsters lose clairvoyance on the player's location if you reenter a level 
via new stairs.
Previously, even if you exited a level and reentered it using a different 
staircase, monsters could still retain knowledge of exactly where you were on 
the level for a considerable number of turns (100+), which sometimes led to the 
odd situation of a whole pack making a bee line for your new location on the 
other side of the map.

Monsters will now also lose tracking on other monsters they're targeting, if 
those monsters get teleported across the level.

--------------------------------------------------------------------------------
31bf3fc2a7 | elliptic | 2012-12-12 17:22:08 -0500

Don't let Stealth skill inhibit monster shouting.
Stealth should stop monsters from noticing you, not from shouting after they
do notice you. The shouting chance is now fixed at what it was with 6 Stealth
skill previously (80% chance).

--------------------------------------------------------------------------------
1add64846c | Chris Campbell | 2012-12-12 21:18:49 +0000

Allow Veh's first spell to be any level 1 spell, not just Magic Dart
And don't reset the guarantee when abandoning/rejoining.

--------------------------------------------------------------------------------
121ffb0d70 | Chris Campbell | 2012-12-12 21:17:42 +0000

Split Enchantments into Hexes and Charms
Player ghost speech was behind the times! Charms only has one speech
line now, though.

--------------------------------------------------------------------------------
2f2189dd30 | Chris Campbell | 2012-12-12 21:17:39 +0000

Fix/remove some ungrammatical speech lines

--------------------------------------------------------------------------------
e31833aa2d | Chris Campbell | 2012-12-12 19:50:57 +0000

Increment gift counter/timeout when offering a Veh gift
Instead of only when accepting - it shouldn't be beneficial to not
learn spells for some weird reason or other, and this lets us use
the gift counter to weight spell offers more effectively.

--------------------------------------------------------------------------------
0f3db135d2 | Chris Campbell | 2012-12-12 19:50:51 +0000

Make Vehumet stop gifting when abandoned

--------------------------------------------------------------------------------
e16a315301 | Chris Campbell | 2012-12-12 19:50:28 +0000

Don't let monsters equip amulets of inaccuracy
Since they have magical knowledge of the properties of all other
equipment, there's no real excuse for them picking up inacc. Probably
monsters should only wear amulets that they can actually use, anyway
(rage, ?).

--------------------------------------------------------------------------------
9aabc46a03 | Chris Campbell | 2012-12-12 19:50:24 +0000

Don't let monsters drop huge stacks of unbranded ammo for a single branded piece
Also don't compare pluses, since they don't exist any more.

--------------------------------------------------------------------------------
be47919720 | Chris Campbell | 2012-12-12 17:18:47 +0000

Fix compatibility

--------------------------------------------------------------------------------
76f8ef6d05 | Chris Campbell | 2012-12-12 16:47:21 +0000

Use "evoked" instead of "invoked" in ring of flight desc

--------------------------------------------------------------------------------
7d8d19e75f | Chris Campbell | 2012-12-12 16:25:28 +0000

Minor Vehumet description tweaks
The "assists you in casting..." message already displays in the list of
powers.

--------------------------------------------------------------------------------
441e2e6792 | Adam Borowski | 2012-12-12 03:07:56 +0100

Make enslaved starspawns stop constricting.

--------------------------------------------------------------------------------
087a785282 | Adam Borowski | 2012-12-12 03:07:55 +0100

Don't claim summons with MF_HARD_RESET are durable.
They would get both (summoned) and (durably summoned), and time out.

--------------------------------------------------------------------------------
42fe512988 | Adam Borowski | 2012-12-12 03:07:54 +0100

A formatting fix.

--------------------------------------------------------------------------------
db8d827add | Neil Moore | 2012-12-10 23:17:29 -0500

Add a new-developer instruction.

--------------------------------------------------------------------------------
dc4ce480e1 | Adam Borowski | 2012-12-11 05:08:15 +0100

Updates for .pl item descs.

--------------------------------------------------------------------------------
aafd7063fd | Adam Borowski | 2012-12-11 05:08:15 +0100

Re-add parts of ring of flight's description.
Being unable to re-evoke the ring is a rather crucial piece of information.

--------------------------------------------------------------------------------
e1dbd5fd2b | Raphael Langella | 2012-12-10 22:19:37 +0100

Android: automatically build signed package if ant.properties is present.

--------------------------------------------------------------------------------
1601c0d9a4 | Adam Borowski | 2012-12-10 17:03:49 +0100

Fix a crash when a tentacled starspawn gets displaced in the Abyss.

--------------------------------------------------------------------------------
647e00d4da | David Lawrence Ramsey | 2012-12-09 22:36:04 -0600

Add wording and punctuation fixes.

--------------------------------------------------------------------------------
56584557d7 | Adam Borowski | 2012-12-10 02:16:51 +0100

Whitespace and formatting fixes.

--------------------------------------------------------------------------------
902b838971 | Chris Campbell | 2012-12-10 01:01:28 +0000

Add tentacled starspawn to the abyss
With placeholder rarity for now for testing, feel free to adjust later.

--------------------------------------------------------------------------------
8ad75254ab | Brendan Hickey | 2012-12-09 16:31:36 -0800

Ignore dead monsters for disjunction

--------------------------------------------------------------------------------
88b9a26234 | Brendan Hickey | 2012-12-09 13:21:04 -0800

Tentacle refactoring.
Replace branch-and-return with return:

if (foo)
    return true;
return false;

to

return foo

Tentacle cleanup

Remove commented out code. Adjust formatting.

Remove commented code. Converted commented mprf to dprf.

Remove unnecessary parens

Compare pointers to NULL, not 0

Tentacle Refactoring

Combine if clauses.
Change a numeric cast.

Convert message from mpr to dpr

Fix stuff that I broke while rebasing

--------------------------------------------------------------------------------
33916cc56a | Chris Campbell | 2012-12-09 13:04:16 -0800

Restrict kraken colours to non-overlapping ones
Not that they'll ever really get mixed up with other X monsters, but
just in case!

--------------------------------------------------------------------------------
f60f6efe65 | Chris Campbell | 2012-12-09 13:04:16 -0800

Upgrade tentacled starspawn to a more noticeable colour

--------------------------------------------------------------------------------
a7cafaf53d | DracoOmega | 2012-12-09 13:04:16 -0800

Fix starspawn leaving their tentacles behind when they fall down a shaft.

--------------------------------------------------------------------------------
d5ea375acc | DracoOmega | 2012-12-09 13:04:16 -0800

Add descriptions for tentacled starspawn and their tentacles.

--------------------------------------------------------------------------------
922ef85c1f | DracoOmega | 2012-12-09 13:04:16 -0800

Remove some more debugging statements and silence a warning.

--------------------------------------------------------------------------------
d184d33997 | DracoOmega | 2012-12-09 13:04:15 -0800

Remove some debugging statements.

--------------------------------------------------------------------------------
21aa320ea5 | DracoOmega | 2012-12-09 13:04:15 -0800

Some more starspawn stat tweaks.
Increase their EV slightly, reduce AC and hp. HD increased, but constriction
damage reduced slightly.

--------------------------------------------------------------------------------
ec789bf419 | DracoOmega | 2012-12-09 13:04:15 -0800

Adjust starspawn tentacle speed.
It turns out that the reduced non-movement energy cost didn't do what I
thought it did, and the issue that it was originally intended to fix seems
to have disappeared, so let's return it to something more normal.

--------------------------------------------------------------------------------
03daf8d484 | DracoOmega | 2012-12-09 13:04:15 -0800

Make constricting tentacles attempt to pull their targets backwards.
When tentacles are moved, any tentacle currently constricting a target will
attempt to retract rather than use its normal pathfinding, provided that its
constrictee can safely occupy the retract pos (ie: no dragging players into
lava)

--------------------------------------------------------------------------------
20735e2832 | DracoOmega | 2012-12-09 13:04:15 -0800

Tentacled starspawn balance adjustments.
Increase HD and melee damage slightly. Increase tentacle HD further (to make
constriction less easy to escape), but reduce constriction damage.  Reduce
action speed but greatly reduce cost of non-move actions (should hopefully
make them spend fewer turns not swinging at you).  Make the body summon
tentacles more often.

--------------------------------------------------------------------------------
dcfe11a364 | DracoOmega | 2012-12-09 13:04:15 -0800

Stop tentacle heads wasting turns trying to spawn more tentacles if they 
already have the max number of tentacles deployed.
For tentacled starspawn in particular, this resulted in them being
surprisingly poor at catching up with the player.

--------------------------------------------------------------------------------
04f7dbe9ab | DracoOmega | 2012-12-09 13:03:24 -0800

Give starspawn tentacles something to display in tiles.
Currently this just uses the eldritch tentacle tiles, which I think are
functional enough for now.  More code changes will be required to get
starspawn working with a different set of tentacle tiles.

--------------------------------------------------------------------------------
4f4fe16b57 | DracoOmega | 2012-12-09 13:03:24 -0800

Silence redunant death message for child tentacles dying after their parent is 
killed.
Also add a message for when this happens to tentacled starspawn.

--------------------------------------------------------------------------------
2ff14da3d1 | DracoOmega | 2012-12-09 13:02:29 -0800

Fix starspawn tentacle segments submerging in open air.

--------------------------------------------------------------------------------
1295eb4ccd | DracoOmega | 2012-12-09 13:02:29 -0800

Rename kraken tentacle spell to indicate its new generality, and give it to 
tentacled starspawn.

--------------------------------------------------------------------------------
537c80181c | DracoOmega | 2012-12-09 13:01:08 -0800

Further refactor tentacle creation so that it can also be used for tentacled 
starspawn

--------------------------------------------------------------------------------
7326209e29 | DracoOmega | 2012-12-09 13:01:08 -0800

Extract kraken tentacle creation to its own function and refactor slightly.

--------------------------------------------------------------------------------
bd805995b1 | DracoOmega | 2012-12-09 12:59:54 -0800

Make tentacles move according to some in-world speed, rather than based on 
character actions.
For now, kraken tentacles are effectively speed 10 (it's possible this
should be raised).  Also, tentacles still get an extra move when the head
moves.  This can sometimes cause them to extend faster than it looks like
they should if the head moves in a different direction than the tentacles
do, but removing this can cause things to become disconnected.  Might need
more improvements in future.

--------------------------------------------------------------------------------
457b197de6 | DracoOmega | 2012-12-09 12:59:53 -0800

Fix teleporter traps and sanctuary disconnecting tentacles
Also corrects other issues in the interaction of tentacles and sanctuary.
They should now properly withdraw from any sanctuary and not reenter it.

--------------------------------------------------------------------------------
ffeb6bb9de | DracoOmega | 2012-12-09 12:59:53 -0800

Fix logic error in tentacle death code

--------------------------------------------------------------------------------
f2d600d668 | DracoOmega | 2012-12-09 12:59:53 -0800

Some more minor tentacle refactoring

--------------------------------------------------------------------------------
3f704f7fb6 | DracoOmega | 2012-12-09 12:59:53 -0800

Fix eldritch tentacles not properly dying from being severed

--------------------------------------------------------------------------------
98406de84e | DracoOmega | 2012-12-09 12:59:53 -0800

Refactor propogation of tentacle attitude changes

--------------------------------------------------------------------------------
b1217f8eb3 | DracoOmega | 2012-12-09 12:59:53 -0800

Refactor some tentacle adjacency and swapping checks

--------------------------------------------------------------------------------
6a62067eb4 | DracoOmega | 2012-12-09 12:59:53 -0800

Merge a few nearly-identical routines

--------------------------------------------------------------------------------
70e8ca09ef | DracoOmega | 2012-12-09 12:59:52 -0800

Refactor kraken death code
Reduce duplicated code somewhat and generalize.

--------------------------------------------------------------------------------
4bd995eea6 | DracoOmega | 2012-12-09 12:59:52 -0800

Refactoring of tentacle code
Only partially done, but some stuff commited now since I fear that some of
the next bits may break things.

--------------------------------------------------------------------------------
fb639aa545 | DracoOmega | 2012-12-09 12:58:20 -0800

Add placeholders for tentacled starspawn and its tentacles
The starspawn itself is technically a functional monster, but very boring
until the tentacles work properly with it.

--------------------------------------------------------------------------------
c523b2fb21 | Chris Campbell | 2012-12-09 20:46:47 +0000

Necklace of Bloodlust: frequently extend berserk duration on kills
The chance is higher than Trog's max piety extension, but the bonus
isn't as much.

--------------------------------------------------------------------------------
a3b526d339 | Chris Campbell | 2012-12-09 20:14:18 +0000

Remove more inappropriate runed doors
due_tower_of_silence claims to have them on purpose to limit monster
wandering, I'm not sure that's really necessary either though.

--------------------------------------------------------------------------------
27ada97c03 | Neil Moore | 2012-12-08 17:09:34 -0500

Avoid a draconian scale acquisition crash (#6376).
This fixes at least the webtiles part of #6376, and probably the local
tiles crash as well.  Now we ensure that we never print a message
(thereby possibly producing a --More--, a redraw, and an assertion
failure) while the draconian's skill levels are uncorrected.

--------------------------------------------------------------------------------
9efa46c626 | Chris Campbell | 2012-12-08 19:41:02 +0000

Spacing fix

--------------------------------------------------------------------------------
d42e671c73 | Chris Campbell | 2012-12-08 19:41:02 +0000

Fix a reference to amulets of controlled flight

--------------------------------------------------------------------------------
854215607e | Adam Borowski | 2012-12-08 20:00:12 +0100

Purge translations for "helm".

--------------------------------------------------------------------------------
50fbf7352a | Adam Borowski | 2012-12-08 20:00:12 +0100

Remove db_lint's special case for "helm".
I did research it some time ago and somehow found uses.  I can't find them
anymore -- either something changed or I must have been on crack that day.

--------------------------------------------------------------------------------
e65f7eed6e | Chris Campbell | 2012-12-08 18:18:51 +0000

Remove a Vaults vault
Hiding an insignificant amount of gold behind Zot traps is just
spoilery and unnecessary.

--------------------------------------------------------------------------------
06864923c1 | Chris Campbell | 2012-12-08 18:18:50 +0000

Fix some item descriptions
Remove a slightly awkward meta reference from a spellbook description,
also revert the eveningstar description to be accurate again.

--------------------------------------------------------------------------------
973a71b220 | Adam Borowski | 2012-12-08 18:57:21 +0100

Remove bh from the list of contributors.

--------------------------------------------------------------------------------
aa777cc402 | Adam Borowski | 2012-12-08 18:55:48 +0100

Indent two ifs.

--------------------------------------------------------------------------------
61ae23fe25 | Adam Borowski | 2012-12-08 18:55:48 +0100

Rename mons_spells() to mons_spell_beam().

--------------------------------------------------------------------------------
b3c13e2a47 | Adam Borowski | 2012-12-08 18:55:48 +0100

Brace and std:: removal.

--------------------------------------------------------------------------------
70e25bb2b1 | elliptic | 2012-12-08 00:15:15 -0500

Remove redundant Glow status (elliott).
The Glow status was always either caused by another, more important status
(Contam, Fire, Quad) or by a halo (which is already visible to the player),
with just one rare exception: the Corona spell. This commit replaces the Glow
status with a Corona status, so instead of the common "Contam Glow" or
"Fire Glow" using up space on the status line, there will just be "Contam" or
"Fire".

--------------------------------------------------------------------------------
7b5a2081bc | elliptic | 2012-12-07 22:39:18 -0500

Remove ancient (and now incorrect) comment.

--------------------------------------------------------------------------------
6fa7d22443 | elliptic | 2012-12-07 22:37:25 -0500

Remove contamination from potions (elliott).
This removes getting a single point of contamination from extending
might/brilliance/agility or drinking resistance. Unlike other situations where
we give out contamination to discourage spamming something, these potions are
already very limited resources and there is no need for this.

--------------------------------------------------------------------------------
7469ab5f95 | Reid Barton | 2012-12-07 15:23:39 -0500

Fix computation of count in dgn_replace_random
This allows dgn_replace_random to be used on a single-square-wide
or -tall rectangle.

--------------------------------------------------------------------------------
c2a34d3e58 | elliptic | 2012-12-06 20:47:03 -0500

Fix molten and icy blue scales always giving just 1 AC (Vizer).

--------------------------------------------------------------------------------
106a1bfc01 | Florian Diebold | 2012-12-06 17:58:05 +0100

Webtiles: A small minibar refactoring.

--------------------------------------------------------------------------------
bb25e24b0e | Florian Diebold | 2012-12-06 11:32:52 +0100

Webtiles: Fix the player position not being sent at startup, causing a tiny 
minibar bug.

--------------------------------------------------------------------------------
908873b042 | Andre-Patrick Bubel | 2012-12-06 11:24:22 +0100

Webtiles: fixes for mana minibar
- draw mana minibar with correct height
- display mana minibar when mana is depleted
- only display mana minibar when character can have mana

This makes appearance of the minibars more consistent with the Tiles version.

--------------------------------------------------------------------------------
a4221f0511 | Adam Borowski | 2012-12-06 00:40:15 +0100

Drop a reference to blessed toes from the docs (ChrisOelmueller)

--------------------------------------------------------------------------------
cb83e58ac7 | Adam Borowski | 2012-12-05 23:59:39 +0100

Fix false annotations being created in the Abyss.

--------------------------------------------------------------------------------
6a4c7ca722 | Adam Borowski | 2012-12-05 23:20:14 +0100

Purge a remnant of ~ traps.

--------------------------------------------------------------------------------
6e995646f7 | Adam Borowski | 2012-12-05 23:20:14 +0100

Remove (now unused) monstrous mimics on next save bump.
They could spawn only in alternate Zot:5 vaults that included an Orb mimic;
these are gone now.  Monstrous feature mimics were never a thing.

As monstrous mimics mimicked ravenous mimics when it comes to tiles and
webtile encoding, supporting them in old saves is hardly more complex than
using AXED_MON().

--------------------------------------------------------------------------------
3cfba31e6e | Adam Borowski | 2012-12-05 16:23:46 +0100

Indentation fixes.

--------------------------------------------------------------------------------
9d7c2e8983 | Adam Borowski | 2012-12-05 16:23:44 +0100

Don't let Kirke randomly turn monsters on her side into pigs.
She could do it sometimes if they had less HD than a hog.  Perhaps a
somewhat smart thing to do, yet anti-thematic and quite confusing.
(Introduced in 4dc3033.)

--------------------------------------------------------------------------------
967a453d9f | Adam Borowski | 2012-12-05 03:52:23 +0100

Make demonspawn MH_NATURAL.
They're humans with just a drop of demonic blood, so only good gods should
care.  Holy items all work by a blessing of TSO, so there's no change there.

The holiness gave them a bunch of surprising resists.  Player demonspawn
were immune to unresistible (only) poison and perhaps some other effects as
well, monster demonspawns (nearly unused) were immune to all of necromancy,
rotting, torment, fear; couldn't go berserk, etc.

Also, don't waste Vamp Draining when it's known to not work.

--------------------------------------------------------------------------------
6d4ccf7863 | Adam Borowski | 2012-12-05 03:52:22 +0100

Make monsters value rN only if it's useful.
They wanted it only if useless...

--------------------------------------------------------------------------------
eed9c01b2d | Adam Borowski | 2012-12-05 03:52:21 +0100

Simplify.

--------------------------------------------------------------------------------
f1c30b4133 | Adam Borowski | 2012-12-05 03:52:21 +0100

Stamp out blessed toes.
While some religions have a fetish with playing with body parts, it's only
the evil side who ever animates them.

--------------------------------------------------------------------------------
9681718328 | Chris Campbell | 2012-12-05 02:12:48 +0000

Buff blood acquirement
In the extremely unlikely event that anyone ever acquires food as a
vampire, it should at least provide enough to get from Bloodless up
to Full or so.

--------------------------------------------------------------------------------
45b0057c69 | Chris Campbell | 2012-12-03 16:52:58 +0000

Remove invisibility from a statue

--------------------------------------------------------------------------------
19e085cd14 | Chris Campbell | 2012-12-03 16:52:57 +0000

Don't allow casting Ozo's armour while ring of flames is active
Condensation shield already can't be cast with RoF up.

--------------------------------------------------------------------------------
af34767036 | elliptic | 2012-12-03 01:22:42 -0500

Make Xom stair repel duration use aut instead of player turns.
This also shortens it to a more reasonable duration. It looks like this was
accidentally messed up in e18e5ec6.

--------------------------------------------------------------------------------
837be7a97a | Adam Borowski | 2012-12-03 02:56:38 +0100

Revert "Prevent Tornado from moving monsters through solid features."
That commit broke assumptions that if an actor can be swept from A to B and
from B to C, he can be swept from A to C as well.  This caused crashes on
some permutations; also, longer turns (a slowed naga of Chei) tended to
pile actors up on one side of an obstacle.

For now, I made grates airtight so the main problem that commit was supposed
to fix is papered over.  Trees are not airtight which allows people to get
swept through them; this is not good but has nearly no practical
implications.

This reverts commit 6f473416a0b6cffe0759a792ac536c739c4a395f.

--------------------------------------------------------------------------------
fb8e48448e | Guy Halford-Thompson | 2012-12-01 21:56:50 +0100

Fixed 0006417, pan (and other) guarenteed portals not being generated
The map generator attempts to place portals on map tiles tagged with
'portal', but did not first check to see if a portal had already been
placed there.  This resulted in portals being placed on top of existing
ones.

--------------------------------------------------------------------------------
0a9211b9bb | Adam Borowski | 2012-12-01 14:03:48 +0100

Ensure at least the D:21 hell portal is not a mimic.
The chance of all 7 allowed levels (D:21-27) being mimics is rather slim,
but since it's trivial to make it zero, let's do so.

--------------------------------------------------------------------------------
9b240be035 | Adam Borowski | 2012-12-01 05:06:22 +0100

Assert-crash if there's no Pan portal on D:24.
Or Hell on D:21, Abyss on D:25.

Having this in the testsuite in nice and dandy, but we don't want games that
can't be fully completed if a regression here happens.  So, crash the game in
such a case.

This is intentionally not a mere map veto, let's not sweep such issues under
the carpet.  You mean, ON ERROR RESUME NEXT is a bad idea?

--------------------------------------------------------------------------------
d090462b89 | Adam Borowski | 2012-12-01 05:03:16 +0100

Align a quote attribution.

--------------------------------------------------------------------------------
d8b2db4556 | ontoclasm | 2012-11-30 01:22:06 -0600

Crocodile (bloax)

--------------------------------------------------------------------------------
76a2f64d8c | Florian Diebold | 2012-11-29 18:47:21 +0100

Reimplement the -cTele status light with a proper STATUS_ enum.
This fixes the status light not working on webtiles since my recent
changes. Also, the old way was rather hacky.

--------------------------------------------------------------------------------
dc20878bbe | Florian Diebold | 2012-11-29 18:23:55 +0100

Webtiles: Fix the full FOV not being shown after using X (#6408).

--------------------------------------------------------------------------------
734013bf2c | Neil Moore | 2012-11-29 01:38:16 -0500

Remove zero-width spaces from translated descriptions.

--------------------------------------------------------------------------------
46dda22cda | Neil Moore | 2012-11-29 01:38:16 -0500

Give priests a better Heal Other message (#6399).

--------------------------------------------------------------------------------
12c0473af0 | Neil Moore | 2012-11-29 01:34:58 -0500

Add more per-spell keys in casting speech lookup.
Now try "<spell> <species> cast", "<spell> <genus> cast", and
"<spell> (wizard|priest|demon) cast" before trying the spell-only
and monster-only variants.

Also, move "<spell> <monster> cast" ahead of "<spell> cast real",
where it should have been all along.

This commit duplicates some code, but I don't see an easy way to avoid
the duplication without also changing the order of message lookups.
Perhaps we should generate the full list twice and stick the spell name
in front of the first copy: that would result in pleonasms such as
"Smiting priest cast targeted", but perhaps that's not so terrible.

--------------------------------------------------------------------------------
28aac5d2e5 | Neil Moore | 2012-11-29 01:29:51 -0500

Show casting message lookups with DEBUG_MONSPEAK.

--------------------------------------------------------------------------------
8f57aa4bcc | Neil Moore | 2012-11-28 18:10:26 -0500

Re-align the first six fields of mut_data entries.
Now the commas all appear in the same column; this seems to have been
the intent, but with changes and additions it was no longer the case.
Most such lines get an extra four spaces to fit the longest-named
mutation enumerator, MUT_STOCHASTIC_TORMENT_RESISTANCE.

--------------------------------------------------------------------------------
a0f196ca4b | Neil Moore | 2012-11-28 17:47:44 -0500

Indentation fixes.
mutation_data.h is still inconsistent with everything else, but at least
make it internally consistent.

--------------------------------------------------------------------------------
d98c0f8715 | Neil Moore | 2012-11-28 17:23:50 -0500

Update scales mutations on % screen (#6416).

--------------------------------------------------------------------------------
4d045497e6 | Adam Borowski | 2012-11-28 02:38:35 +0100

Slightly buff Joseph's melee damage.
He has sling bullets of pure murder, but harmless in melee save for the
potential of a brand.

Even with the buff, he's still way below orc warriors.

--------------------------------------------------------------------------------
67e7a24368 | David Lawrence Ramsey | 2012-11-27 18:42:52 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
6ff41c46d9 | Adam Borowski | 2012-11-28 01:17:11 +0100

Fix an infinite loop with teleportitis in the center of Labyrinths.

--------------------------------------------------------------------------------
487f367101 | Adam Borowski | 2012-11-27 23:51:30 +0100

Don't make a milestone if for any reason you pick up the same rune again.

--------------------------------------------------------------------------------
65ade5f033 | Adam Borowski | 2012-11-27 23:48:26 +0100

Don't note temp mutations at all.
They don't leave a lasting enough impression, and they were indistinguishable
from normal ones in the log.

--------------------------------------------------------------------------------
a6f795f570 | Adam Borowski | 2012-11-27 23:48:26 +0100

Gray out the Repel Missiles spell if you have the mutation or amulet.

--------------------------------------------------------------------------------
19acae6cbd | Translators | 2012-11-27 23:46:37 +0100

Transifex format fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
7cff8c2ee4 | Translators | 2012-11-27 23:35:22 +0100

Transifex sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9c118468cd | Translators | 2012-11-27 22:26:55 +0100

Transifex format fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
4533ca7e7c | Raphael Langella | 2012-11-27 22:25:26 +0100

Updated sdl-android

--------------------------------------------------------------------------------
fc9f1bf4c4 | David Ploog | 2012-11-27 19:50:51 +0100

Many Singing Sword contributions (jwb on tavern).

--------------------------------------------------------------------------------
038ce0a912 | Adam Borowski | 2012-11-27 00:23:08 +0100

Don't actually run delve at builddb stage.
Most other layout generators bail out too, and delve() calls were a
significant part of builddb's CPU use.  Mostly due to iterators as usual
(pending a painful rewrite), but even if we optimize them, it's an easy
speed-up.

--------------------------------------------------------------------------------
0f7d061381 | Adam Borowski | 2012-11-27 00:23:08 +0100

Make I and z? usable again in debug builds.
Since 1f7c9b4d, if you know even a couple beam spells, you need to go
through several --More--s every time a spell list is shown.

These tracers are not really useful for debug purposes as you can get a
regular tracer if you want, so there's no reason to show them all.

--------------------------------------------------------------------------------
78e00ab081 | Florian Diebold | 2012-11-26 17:37:52 +0100

Webtiles: Re-fix more prompts while loading the level (e.g. from labs).
I broke this again during the messages rewrite.

--------------------------------------------------------------------------------
52fed1335a | Florian Diebold | 2012-11-26 17:16:05 +0100

Webtiles: Clarify a message.

--------------------------------------------------------------------------------
d71bc7984c | elliptic | 2012-11-25 18:52:45 -0500

Make the status light for perma-RMsl blue instead of white.
On second thought and after some discussion on IRC, I think that it is
better for this light to be the same color for permanent and temporary RMsl.
Knowing whether RMsl is permanent is much less important than knowing whether
flight is permanent, as the latter affects autoexplore behavior and means you
don't need to be paranoid about drowning. It's better just to have the same
old reassuring blue light in this case.

--------------------------------------------------------------------------------
528ec63678 | elliptic | 2012-11-25 18:15:56 -0500

Tweak scales mutation numbers.
Mainly small buffs of +1 AC to the weaker scales.

--------------------------------------------------------------------------------
de3fb26c28 | elliptic | 2012-11-25 16:36:04 -0500

Display the status light for non-spell sources of RMsl.
As with flight, the light is white instead of blue when permanent.

--------------------------------------------------------------------------------
ad6ccffd17 | elliptic | 2012-11-25 15:33:50 -0500

Invert the augmentation mutation.
It now gives slaying and spell power boosts at high HP rather than low HP.

--------------------------------------------------------------------------------
903cfab188 | Chris Campbell | 2012-11-25 19:08:30 +0000

Don't dispel Trog's hand or permanent confusion with ?vulnerability

--------------------------------------------------------------------------------
03bd668499 | Florian Diebold | 2012-11-25 14:42:24 +0100

Webtiles: Fix view errors for newly joining spectators.

--------------------------------------------------------------------------------
49e4aaac87 | David Lawrence Ramsey | 2012-11-24 21:43:45 -0600

Update the spell list in handle_rod() to account for rod spell changes.
Also, add a comment mentioning that Olgreb's Toxic Radiance is currently
not implemented for monsters, so monsters cannot cast it using the rod
of venom.

What should be done about the direct effect code, unused since the rod
of smiting was removed?

--------------------------------------------------------------------------------
5597310372 | elliptic | 2012-11-24 21:45:11 -0500

Cut some spells from rod spell lists.
This is a move towards rods having fewer, more unique spells in them. Some of
the remaining multiple-spell rods (especially destruction and warding) might
get replaced by new rods with exciting, unique effects (or just removed), but
let's start with some simpler changes.

Rod of summoning: remove Recall and Call Canine Familiar, rename to
                  rod of the swarm.

Rod of destruction [inacc,magma,cold]: remove Bolt of Magma and Bolt of Cold,
                                       rename to rod of inaccuracy.

Rod of venom: remove Cure Poison, replace Venom Bolt with OTR.

--------------------------------------------------------------------------------
aa8f864a2e | David Lawrence Ramsey | 2012-11-24 17:07:52 -0600

Typo fix.

--------------------------------------------------------------------------------
9f18b23708 | Chris Campbell | 2012-11-24 22:59:47 +0000

Fix some kraken messages showing up even if the kraken wasn't visible

--------------------------------------------------------------------------------
b00f69e3bf | Chris Campbell | 2012-11-24 22:16:46 +0000

Fix spacing

--------------------------------------------------------------------------------
98a546be43 | Chris Campbell | 2012-11-24 22:12:40 +0000

Reword some background descriptions
Remove a reference to "good" darts (all darts are equal!), and add a
mention of monk bonus piety.

--------------------------------------------------------------------------------
ec1578dccf | David Lawrence Ramsey | 2012-11-24 14:16:37 -0600

Fix spacing in a weapon speech line.

--------------------------------------------------------------------------------
4000ad0e33 | Adam Borowski | 2012-11-24 21:12:21 +0100

Axe a number of unused functions.

--------------------------------------------------------------------------------
da16d8c0e2 | Adam Borowski | 2012-11-24 21:12:21 +0100

Don't reset the time when X[]-ing a level.
This could be abused to preserve corpses/chunks arbitrarily long, by viewing
the level just before re-entering it.

--------------------------------------------------------------------------------
4058f34b20 | Adam Borowski | 2012-11-24 21:12:21 +0100

Remove an unused remnant of ~/^ traps.

--------------------------------------------------------------------------------
45b5a614da | Adam Borowski | 2012-11-24 21:12:21 +0100

Indentation and comment changes.

--------------------------------------------------------------------------------
cd6f36b754 | Adam Borowski | 2012-11-24 21:12:20 +0100

Comment out a broken assert that spams players.
Instead of allowing failures only in wizmode, it was #ifdef WIZMODE, ie, in
all current builds.  So, a player who hit it would get an error message
-- and one that's not marked as one, too.

I just noticed it on a random Xom act that has only a LOS range, there are
probably way more ways to get into the border zone.

--------------------------------------------------------------------------------
1e5b00855e | Adam Borowski | 2012-11-24 21:12:20 +0100

Fix [foo|bar]-style substitutions not being resolved properly in some cases.

--------------------------------------------------------------------------------
7ccf943b02 | Adam Borowski | 2012-11-24 21:12:20 +0100

Revert and amend "Fix some weapon speech lines"
This commit did nothing but making the source slightly less readable, and
both bugs it is claiming to fix are still there: not all uses of
weapon_noise[|s] do the replacements, and extra spaces could be produced.

--------------------------------------------------------------------------------
f309621e41 | Florian Diebold | 2012-11-24 16:26:46 +0100

Webtiles: Only update ui_state when necessary.

--------------------------------------------------------------------------------
729eb1357d | Florian Diebold | 2012-11-24 16:15:44 +0100

Webtiles: Do a complete update when the input mode changes.
Also, this refactors the more handling a bit, again.

--------------------------------------------------------------------------------
95747b995d | Florian Diebold | 2012-11-24 14:02:27 +0100

Webtiles: Show Xom boredom.

--------------------------------------------------------------------------------
19974e50f8 | Florian Diebold | 2012-11-24 12:23:01 +0100

Webtiles: Show empty piety again when worshipping a god other than Xom.

--------------------------------------------------------------------------------
310ad1d43c | Florian Diebold | 2012-11-24 10:50:19 +0100

Webtiles: Make HP/MP bars in the stats area wider.

--------------------------------------------------------------------------------
09eed5ab02 | Florian Diebold | 2012-11-24 10:45:47 +0100

Webtiles: Make smooth message scrolling optional.

--------------------------------------------------------------------------------
6effd3c486 | Florian Diebold | 2012-11-24 10:42:12 +0100

Webtiles: Don't update the turn counter during resting/running.

--------------------------------------------------------------------------------
b9d61b5385 | Florian Diebold | 2012-11-24 10:24:58 +0100

Webtiles: Fix the wielded weapon not showing up for spectators.

--------------------------------------------------------------------------------
e5b2cd9b07 | Michael Gagno | 2012-11-24 01:17:15 -0800

Fix water placement in Dis:7 vaults. (st)

--------------------------------------------------------------------------------
9585b9a726 | Chris Campbell | 2012-11-24 03:54:15 +0000

Recolour some status lights
Yellow is generally used for mild negative effects, blue is consistently
used for assorted buffs.

--------------------------------------------------------------------------------
4c02cab5fa | Florian Diebold | 2012-11-23 23:20:11 +0100

Webtiles: Display potential monk piety as before.

--------------------------------------------------------------------------------
fbb0a40a45 | Chris Campbell | 2012-11-23 20:40:00 +0000

Don't waste EW scrolls on uncursed artefacts/staves
Doesn't handle the case of using EW scrolls on a fully-enchanted weapon,
though - scrolls can still be accidentally wasted that way. Could
possibly do with a better message, too.

--------------------------------------------------------------------------------
2969bedfe1 | Florian Diebold | 2012-11-23 21:28:21 +0100

Webtiles: Fix the line reader showing up in the message window for menus.
For example, when inscribing an item from its description.

--------------------------------------------------------------------------------
3ef596d6cb | Florian Diebold | 2012-11-23 21:28:21 +0100

Add Andre Bubel to CREDITS.

--------------------------------------------------------------------------------
ab73ad8496 | Florian Diebold | 2012-11-23 21:28:21 +0100

Webtiles: Fix a few small client bugs.

--------------------------------------------------------------------------------
a361f89193 | Florian Diebold | 2012-11-23 21:28:21 +0100

Webtiles: Refactor status handling; properly colour boosted stats.

--------------------------------------------------------------------------------
661742a836 | Florian Diebold | 2012-11-23 21:28:21 +0100

Webtiles: Simplify the protocol a bit.

--------------------------------------------------------------------------------
7596c76b2d | Florian Diebold | 2012-11-23 21:28:21 +0100

Webtiles: Fix the minibars not getting updated if nothing else is.

--------------------------------------------------------------------------------
42156060c1 | Florian Diebold | 2012-11-23 21:28:21 +0100

Webtiles: Remove the now unnecessary layout message.

--------------------------------------------------------------------------------
05bd4d8683 | Florian Diebold | 2012-11-23 21:28:20 +0100

Split MOUSE_MODE_MORE into versions for prompts, to give the Webtiles client 
more information.

--------------------------------------------------------------------------------
6e1dcb1004 | Florian Diebold | 2012-11-23 21:28:20 +0100

Refactor Webtiles more handling.

--------------------------------------------------------------------------------
db22190eae | Florian Diebold | 2012-11-23 21:28:20 +0100

Webtiles: Colourize weapon and quiver correctly.

--------------------------------------------------------------------------------
c74c607be7 | Florian Diebold | 2012-11-23 21:28:20 +0100

Webtiles: Don't animate message replacement.

--------------------------------------------------------------------------------
642010dd95 | Florian Diebold | 2012-11-23 21:28:20 +0100

Webtiles: Implement the "new command" marker for messages.

--------------------------------------------------------------------------------
3e07dbb6a1 | Florian Diebold | 2012-11-23 21:28:20 +0100

Webtiles: Fix prompts not being removed during key replay or macros.

--------------------------------------------------------------------------------
2c92b12db2 | Florian Diebold | 2012-11-23 21:28:20 +0100

Webtiles: Show max stat values when degenerated, and colour them.

--------------------------------------------------------------------------------
cd642ee2a7 | Florian Diebold | 2012-11-23 21:28:20 +0100

Webtiles: Show negative stat values.

--------------------------------------------------------------------------------
bb90a99d68 | Florian Diebold | 2012-11-23 21:28:20 +0100

Unify the colour scheme in the style sheet.
I really need to think about using a CSS preprocessor, this is getting
ugly.

--------------------------------------------------------------------------------
d87e009ff1 | Florian Diebold | 2012-11-23 21:28:20 +0100

Webtiles: Send inventory contents to the client.
This also fixes the wielded weapon and quiver not being shown.

--------------------------------------------------------------------------------
84556d014c | Florian Diebold | 2012-11-23 21:28:20 +0100

Webtiles: Animate message scrolling a bit.

--------------------------------------------------------------------------------
4fc6bf4724 | Florian Diebold | 2012-11-23 21:28:19 +0100

Refactor HP/MP minibars in Webtiles.

--------------------------------------------------------------------------------
8b3793078f | Florian Diebold | 2012-11-23 21:28:19 +0100

Webtiles: Do message scrolling etc. on the client side.
Previously, the message pane was rendered on the server side and its
contents were sent to the client as they were displayed in the
terminal. Now, messages are sent as separate objects. This also
necessitates special handling of more prompts and line_reader for
webtiles.

--------------------------------------------------------------------------------
4882cf5f39 | Florian Diebold | 2012-11-23 21:28:19 +0100

Webtiles: Render the stats pane on the client side.

--------------------------------------------------------------------------------
a0a7e10f13 | Florian Diebold | 2012-11-23 21:28:19 +0100

Send player stats to the webtiles client.
Not yet used on the client side.

--------------------------------------------------------------------------------
e000f41b88 | Andre-Patrick Bubel | 2012-11-23 21:28:19 +0100

Webtiles: draw mini health and magic point bar
- Webtiles: Send hp and mp information to the client
- handle player message and update global player object
- send player position
- send player coordinates relativ to origin
- send player after first map draw because otherwise the origin isn't 
initialized
- redraw minibars if view is moved
- always rerender the player before applying the minibar
- minibars are correctly displayed if health is negative

--------------------------------------------------------------------------------
d7e060f80c | Chris Campbell | 2012-11-23 18:02:54 +0000

Let Zin vitalisation work against wasps

--------------------------------------------------------------------------------
08f131ac36 | Florian Diebold | 2012-11-23 16:03:31 +0100

Webtiles: Disable compression on Safari.
I don't see why it shouldn't work (on newer versions) or why the
feature detection doesn't work, but I can't really debug it.

--------------------------------------------------------------------------------
f9f6328b20 | Adam Borowski | 2012-11-23 03:30:45 +0100

Fix non-forced delete_mutation() affecting undead.
In particular, this allowed scumming Tmut miscasts to get rid of mutations.

--------------------------------------------------------------------------------
bcba86f022 | Adam Borowski | 2012-11-23 02:26:53 +0100

Assert that tornado rotation found a valid spot.

--------------------------------------------------------------------------------
51ab6d6422 | Adam Borowski | 2012-11-22 23:54:19 +0100

Remove util/fake_pty on "make clean".
Harmful if you share $HOME between chroots/systems of different architectures.

--------------------------------------------------------------------------------
dd8e91061d | Adam Borowski | 2012-11-22 04:34:30 +0100

Restart Stack Five in case of a disconnect.

--------------------------------------------------------------------------------
2b82a6a65b | Adam Borowski | 2012-11-22 04:34:30 +0100

Restart Triple Draw in case of a disconnect.
Besides not depriving the player of a draw during bona fide disconnects,
this also fixes two cheats:
* you had a way out from getting three Wild Magics
* a crash on demand has plenty of uses

--------------------------------------------------------------------------------
44b6e7a985 | Adam Borowski | 2012-11-22 04:34:29 +0100

Fix prompts asking for 'I' in Turkish locales.
They have I<->ı and İ<->i.

Fortunately, people are quite unlikely to type capital letters in response
to prompts, perhaps save for the stat gain one.

--------------------------------------------------------------------------------
064836cfdb | Adam Borowski | 2012-11-22 04:34:28 +0100

Make isa[ctype]() return bool.
Not that there's a big difference...

--------------------------------------------------------------------------------
4676d1638a | Adam Borowski | 2012-11-21 15:04:46 +0100

Fix possible save corruption when disconnecting on the stat gain prompt.
While actual corruption is quite unlikely, at the very least the turn will
be ended at an arbitrary moment, before all actors get to move.

--------------------------------------------------------------------------------
58457ea650 | Adam Borowski | 2012-11-21 14:11:59 +0100

Don't lose acquirement if you disconnect at the prompt.
People are quite likely to stop and think, consult ##crawl, etc.  And
thinking is tiresome, folks get distracted...  and then it's a time-out,
they turn the computer without thinking and go to sleep, etc.

This adds a new mechanism: "uncancellables", which allows an action to
restart when the game is loaded back.

--------------------------------------------------------------------------------
376ddfc049 | David Lawrence Ramsey | 2012-11-21 00:49:16 -0600

Simplify.

--------------------------------------------------------------------------------
02dcb32678 | David Lawrence Ramsey | 2012-11-21 00:48:50 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
d170dc6b97 | Adam Borowski | 2012-11-21 05:12:02 +0100

Add 0.11.1 to the changelog.

--------------------------------------------------------------------------------
2f20adee20 | Brendan Hickey | 2012-11-21 02:41:10 +0100

license cleanup
Remove reference to mt19937.

--------------------------------------------------------------------------------
e3b47de840 | Adam Borowski | 2012-11-21 02:38:35 +0100

Make levels 1 and 2 of teleportitis dislocate you only a limited distance.
Not sure what the values should be.  The current values are those of portal
timer messages.  The problem is, range 30 covers the map nearly edge-to-edge
from the center, but you'd need over 100 if you want to get from one corner
to the other.

This doesn't affect controlled teleports; not wasting time now because of
the ongoing discussion about cTele.

--------------------------------------------------------------------------------
a3e32e4b78 | Adam Borowski | 2012-11-21 02:37:56 +0100

Recolour demonic mutations on 'A'.
They looked the same as temp mutations, and magenta fits the latter better.
Better ideas how to paint this bikeshed welcome -- I don't like this scheme
but everything seems taken.

Also, highlight temp mutations that increase an existing one.

--------------------------------------------------------------------------------
2d4e7141cb | Adam Borowski | 2012-11-20 15:11:27 +0100

Simplify and reformat convert2good().

--------------------------------------------------------------------------------
5dc5ebdecd | Adam Borowski | 2012-11-20 15:11:27 +0100

Spacing fixes.
Also remove an obsolete comment.

--------------------------------------------------------------------------------
fee6e227f3 | Florian Diebold | 2012-11-20 15:05:19 +0100

Fix a bit of non-JSON introduced before the json merge.

--------------------------------------------------------------------------------
d72a6260dc | Florian Diebold | 2012-11-20 14:59:27 +0100

Merge branch 'json'

--------------------------------------------------------------------------------
00416cddcb | Chris Campbell | 2012-11-19 20:01:41 +0000

Remove a reference to a removed option

--------------------------------------------------------------------------------
49e873a919 | David Lawrence Ramsey | 2012-11-19 11:56:50 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
8823b2a896 | elliptic | 2012-11-19 00:44:19 -0500

Make Condensation Shield SH independent of Shields skill and intelligence.
The previous formula was unnecessarily complicated and inconsistent with how
other similar spells (Ozocubu's armour, Stoneskin) work. In addition, the
old dependence on Shields skill was very small: raising it from 0 to 27 would
only grant 10 extra SH.

--------------------------------------------------------------------------------
6f5eed799f | Mu | 2012-11-18 23:44:08 +0000

Fix exclusion radius warnings in grated_community_mu.
Some other minor tweaks while I'm here.

--------------------------------------------------------------------------------
22c0c32e63 | David Lawrence Ramsey | 2012-11-18 16:35:39 -0600

Remove now-unused deep elf watchman description.

--------------------------------------------------------------------------------
7f6d5b2984 | Chris Campbell | 2012-11-18 22:08:22 +0000

Un-rename a vault monster
Since it's just a deep elf soldier with no changes, it probably
shouldn't confuse people by having a different name.

--------------------------------------------------------------------------------
a7c5d47ac6 | Chris Campbell | 2012-11-18 20:34:36 +0000

Give the cloak of the Thief an evokable ability to release fog

--------------------------------------------------------------------------------
4ee43f3f13 | ontoclasm | 2012-11-18 14:31:22 -0600

Butterfly fix

--------------------------------------------------------------------------------
5695ddcd5f | Chris Campbell | 2012-11-18 19:02:54 +0000

Give projectiles no_tele

--------------------------------------------------------------------------------
d14c632375 | ontoclasm | 2012-11-18 12:19:51 -0600

Butterflies (bloax)

--------------------------------------------------------------------------------
a95db55b0d | Adam Borowski | 2012-11-18 17:07:46 +0100

Remove unused ATTR_RND_LVL_BOOKS.
I'm not entirely sure if removal of its assignment in 6c1f3966 was
intentional, though.

--------------------------------------------------------------------------------
d870d7b5c4 | Adam Borowski | 2012-11-18 17:07:46 +0100

Brace and formatting fixes.

--------------------------------------------------------------------------------
cf2895abad | Adam Borowski | 2012-11-18 17:07:45 +0100

Alias LOS_ARENA to LOS_NONE.
Most iterators that allow LOS checks typically have none, it'd be weird to
refer to that as "arena".

--------------------------------------------------------------------------------
5fcafdecc1 | Adam Borowski | 2012-11-18 17:07:45 +0100

Move LOSSelect enums (private to one file) out of the LOS_ prefix.

--------------------------------------------------------------------------------
cf94db1a16 | Adam Borowski | 2012-11-18 17:07:45 +0100

Don't create a circle_def object just to check distance.

--------------------------------------------------------------------------------
ee3a6fda91 | Adam Borowski | 2012-11-18 17:07:45 +0100

Eliminate LOS checks from one of radius_iterators.

--------------------------------------------------------------------------------
48e72cc661 | Adam Borowski | 2012-11-18 17:07:45 +0100

Get rid of several C_SQUARE uses.
An absolute majority of CPU use in about every test is wasted by
radius_iterator and circle_def, which implement both Chebyshev and normal
metrics as calls deep inside tight loops.  Untangling them is a massive
work, so I'm chipping at it by a little from time to time.

--------------------------------------------------------------------------------
b9bc67f4cf | Adam Borowski | 2012-11-18 17:07:45 +0100

A negligible optimization of slime walls.

--------------------------------------------------------------------------------
18e4aba8e3 | Adam Borowski | 2012-11-18 17:07:44 +0100

Reorder checks in _mons_check_foe().
A vast majority of monsters are hostile, so there's no point in running LOS
and other checks first.

--------------------------------------------------------------------------------
9e7a44d425 | Adam Borowski | 2012-11-18 17:07:44 +0100

Run costly door checks only for actual closed doors.
Especially marker tests caused a massive slowdown.

--------------------------------------------------------------------------------
82f6f0a0a8 | Chris Honey | 2012-11-18 10:36:09 -0500

Fix items dropped by certain uniques not being autoinscribed
Items autoinscribed by the game with "Sonja", "Psyche" and "Donald" now
properly apply user defined autoinscriptions.

--------------------------------------------------------------------------------
ca9018d84d | Neil Moore | 2012-11-17 23:41:50 -0500

Update the new dev checklist.
Fix up formatting and wording, list the command to give them wizmode access,
mention the other effects of that command, and include CSZO.

--------------------------------------------------------------------------------
ae60f10ea4 | David Lawrence Ramsey | 2012-11-17 21:05:00 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
bf6ad4e162 | Adam Borowski | 2012-11-18 03:36:04 +0100

Drop some useless checks from _mons_check_foe().
This function takes 17% of woken_rest time in the pitsprint.

--------------------------------------------------------------------------------
1cf9809913 | Adam Borowski | 2012-11-18 03:02:54 +0100

Let the Abyss stress test bot cast any spell in an uppercase slot.
If there are multiple, choose one randomly.

--------------------------------------------------------------------------------
0dc2f91267 | Chris Campbell | 2012-11-18 01:43:21 +0000

Make Disjunction check no_tele instead of just stasis

--------------------------------------------------------------------------------
53bb8801c7 | Chris Campbell | 2012-11-18 01:27:34 +0000

Use maybe_bloodify_square to place blood from severed tentacles

--------------------------------------------------------------------------------
e7b9beccc8 | Chris Campbell | 2012-11-18 01:27:33 +0000

Remove blood from abyss squares when shifted into water/lava
Doesn't completely fix #6270 though, it appears that water can still be
blood-spattered upon entering the Abyss.

--------------------------------------------------------------------------------
a828b15375 | Chris Campbell | 2012-11-18 01:27:31 +0000

Don't remove nets from allies by attacking them
If it's to be possible it should probably be just by moving into them,
but really it just doesn't seem necessary.

--------------------------------------------------------------------------------
94b7abc7b8 | Adam Borowski | 2012-11-18 02:19:41 +0100

A placeholder tile for Disjunction's effect.
Not animated nor varied yet.

If anyone likes the concept, here's how to draw it:
Gimp, empty transparent layer, Render:Lava(gradient "Aneurism", size 6),
layer mask: Render:Lava(gradient: white-to-black), reduced opacity.

--------------------------------------------------------------------------------
f690c5d7f6 | Adam Borowski | 2012-11-18 01:49:19 +0100

Describe Disjunction.

--------------------------------------------------------------------------------
693671be09 | Adam Borowski | 2012-11-18 01:49:19 +0100

Shorten MAP_DISJUNCTION_HALOED to MAP_DISJUNCT.
DISJOINT would be more correct, but I picked DISJUNCT as it's more readable,
easier to connect with the spell.

--------------------------------------------------------------------------------
f42eaf392e | Brendan Hickey | 2012-11-18 01:49:19 +0100

Disjunction
Level 8 translocation spell.
Blinks away everything with diminishing probability with:

P(~blink) = 0.8^(1/(dist+1)/(dist-1))
Over 10 ticks, a monster adjacent to the caster will blink with probability 0.9.
Monsters may be blinked repeatedly.

--------------------------------------------------------------------------------
c09303161b | David Lawrence Ramsey | 2012-11-17 18:38:00 -0600

Fix indentation.

--------------------------------------------------------------------------------
af8ea13363 | Mu | 2012-11-17 22:48:30 +0000

Update loot in wizlab_cigotuvi
Since the evaporate spell no longer exists, there's no point
giving people a bunch of bad potions as loot.

--------------------------------------------------------------------------------
ae766eb01e | Chris Campbell | 2012-11-17 00:31:35 +0000

Remove the chance for fountains to randomly restart flowing once dried up

--------------------------------------------------------------------------------
b53d8402ee | Chris Campbell | 2012-11-17 00:29:20 +0000

Give Teleport Other a bonus to power

--------------------------------------------------------------------------------
64d6d21ba9 | Chris Campbell | 2012-11-16 20:04:02 +0000

Simplify Mislead behaviour
Just end mislead when it times out, remove some unintuitive ways of
curing it (standing in rain clouds, moving to a different level,
potion of curing).

Also update some checks for monsters that shouldn't be misled about
(projectiles, tentacle segments).

--------------------------------------------------------------------------------
7b0cfd6b36 | Chris Campbell | 2012-11-16 20:04:01 +0000

Let clarity prevent mesmerisation
Since it's a mental effect like confusion and mislead (#2096).

--------------------------------------------------------------------------------
dbe1759e22 | David Lawrence Ramsey | 2012-11-16 13:57:17 -0600

Add wording fixes.

--------------------------------------------------------------------------------
ce4d1fc2da | Adam Borowski | 2012-11-16 12:17:36 +0100

Fix a Royal Jelly + fire vortex crash.

--------------------------------------------------------------------------------
b1d0cd1e1d | Adam Borowski | 2012-11-16 10:51:50 +0100

Fix a wretched star crash if you get a complete set of bad mutations.
It takes only 15ish flashes.

--------------------------------------------------------------------------------
ae6329322d | Adam Borowski | 2012-11-16 10:30:28 +0100

Don't let plus:666 or plus2:2147483647 alter unrandarts.

--------------------------------------------------------------------------------
71796498bc | Adam Borowski | 2012-11-16 09:38:03 +0100

Make Trog's passing out protection less spammy.
It'll speak about vigour only if it actually does something.

--------------------------------------------------------------------------------
10d346123e | Adam Borowski | 2012-11-16 09:38:02 +0100

Don't show menu prefixes in item desc if they're empty.

--------------------------------------------------------------------------------
497b26e9ba | Adam Borowski | 2012-11-16 09:38:02 +0100

Fix a spider of Xom crash.

--------------------------------------------------------------------------------
4dfed47af8 | Adam Borowski | 2012-11-16 09:38:02 +0100

Remove a crapload of array references from a single function.

--------------------------------------------------------------------------------
5eac9c1a3e | Adam Borowski | 2012-11-16 09:38:01 +0100

Remove generation logic for amulets of controlled fly.
It'd break when save compat is bumped.

Also, clean up a warning for clear potions.

--------------------------------------------------------------------------------
c2d162733a | Adam Borowski | 2012-11-16 09:38:01 +0100

Put "animated by" in Tukima-ed weapons' blame reason.

--------------------------------------------------------------------------------
e17e75f306 | Adam Borowski | 2012-11-16 09:38:00 +0100

Explain why the bat form can stay up even when overencumbered.
Also, mention breaking flight in the desc of wands of paralysis and the
Petrify spell.  This should be pretty obvious even without being spoiled,
but let's mention this anyway.

In fact, in a discussion about this use of paralysis, I can't think of any
way of wiggling out of this instakill trick for regular non-magical enemies.
Fortunately, for anything tough, the success rate is so small even with a
scroll of vulnerability.

[This is not meant to force my way in the heated argument, merely to
describe status quo.]

--------------------------------------------------------------------------------
b94e0406db | Adam Borowski | 2012-11-16 09:38:00 +0100

Drop apises to the ground.
Neither their tile nor description provide any clue why they would fly.
There's no reasonable reason to turn them into some sort of bullgasus
either; they'd get too similar to shedu.

Neqoxecs are another candidate -- no real description, tile shows a
cthulhu-like humanoid, but at least there's a question whether to change
the tile or behaviour.

--------------------------------------------------------------------------------
33217044c0 | Florian Diebold | 2012-11-15 20:20:28 +0100

Fix the screen not being redrawn when reading a scroll via i [slot] r.

--------------------------------------------------------------------------------
5cffb9fa96 | Michael Gagno | 2012-11-14 18:23:31 -0800

Do not generate multiple temples, shop rooms, etc in Sprint II.
You'll now only get one of each again, and they're placed randomly.

--------------------------------------------------------------------------------
4e666e716a | Michael Gagno | 2012-11-14 18:17:40 -0800

Improve some messages in arena sprint.

--------------------------------------------------------------------------------
506cde75c1 | Neil Moore | 2012-11-14 19:46:38 -0500

Let {a add to inscriptions again (#6380).

--------------------------------------------------------------------------------
9a597fea2c | Neil Moore | 2012-11-14 18:41:26 -0500

Fix screenshots.
get_cell_show_class() was returning SH_FEATURE for DNGN_UNSEEN, which
resulted in the glyph's character being '\0', which led to screenshot()
skipping those cells entirely rather than printing a space.

--------------------------------------------------------------------------------
5dd5fe8569 | Florian Diebold | 2012-11-14 20:32:18 +0100

Fix a non-JSON message I missed.

--------------------------------------------------------------------------------
b0df2b25b2 | Florian Diebold | 2012-11-14 20:02:44 +0100

Webtiles: Improve JSON generation functions; always send proper JSON.

--------------------------------------------------------------------------------
68bdec1379 | ontoclasm | 2012-11-14 00:19:30 -0600

Octopodes (bloax)

--------------------------------------------------------------------------------
246f75f44f | ontoclasm | 2012-11-13 22:11:18 -0600

Sewer water (white_noise, 6074)

--------------------------------------------------------------------------------
da99b32b9c | ontoclasm | 2012-11-13 20:39:05 -0600

Jessica and Psyche (roctavian, 4869)

--------------------------------------------------------------------------------
4e9b7c71af | ontoclasm | 2012-11-13 20:39:04 -0600

Kraken head (roctavian, 4869)

--------------------------------------------------------------------------------
476eef4d01 | ontoclasm | 2012-11-13 20:39:04 -0600

Unseen horror (bloax)

--------------------------------------------------------------------------------
00ae4c607a | Michael Gagno | 2012-11-13 17:15:11 -0800

Sprint VII. (st)
This is a new, traditional-style sprint map by st. It has already been
tested quite a lot, and I can see no obvious errors or problems in it. There
is one issue with the specially named doors... this is known bug, though.

--------------------------------------------------------------------------------
d7e98085d5 | Florian Diebold | 2012-11-13 23:35:35 +0100

Check for another possible problem with Webtiles compression.

--------------------------------------------------------------------------------
e9cd4cebd3 | Florian Diebold | 2012-11-13 23:26:02 +0100

Disable Websocket compression on bad chrome versions.

--------------------------------------------------------------------------------
7cdc631160 | Florian Diebold | 2012-11-13 23:24:11 +0100

Update to jquery 1.8.2.

--------------------------------------------------------------------------------
19757e12c5 | Florian Diebold | 2012-11-13 21:56:30 +0100

Webtiles: Disable compression if the necessary APIs are not present.
This might help with reported problems in Safari.

--------------------------------------------------------------------------------
ee262fa5e9 | David Lawrence Ramsey | 2012-11-13 10:33:24 -0600

Fix indentation.

--------------------------------------------------------------------------------
ef23590caf | Adam Borowski | 2012-11-13 16:58:47 +0100

Don't say "levitation" to the player, ever.
Also, change FL_FLY to FL_WINGED, to avoid redundancy, and to match the
description's wording.

--------------------------------------------------------------------------------
7aa1658e94 | Adam Borowski | 2012-11-13 16:04:31 +0100

Let the Arena Sprint succubus take extra Airstrike damage.
Because, you know, wings.

--------------------------------------------------------------------------------
50999e78bf | Adam Borowski | 2012-11-13 16:04:31 +0100

Increase woefully short buffer for &M and others.
This should be a std::string probably; for now, 1024 bytes should be enough
for anyone.

--------------------------------------------------------------------------------
2fde3d9585 | Adam Borowski | 2012-11-13 15:54:14 +0100

Upgrade a number of wingless monsters from FL_FLY to FL_LEVITATE.
The former used to be better...

--------------------------------------------------------------------------------
1183a5be26 | Adam Borowski | 2012-11-13 15:40:54 +0100

Revert most of the lev->flight patch (by code size, not functionality).
This stops wands of paralysis, the Petrify spell, and nets from auto-killing
anything that can fly (ie, a good part of later threats).

Also, this fixes unwinged humanoids from getting wings in tiles and for other
shape considerations.

Unrelated fixes: message when flying up stairs, monsters picking items from
deep water.

--------------------------------------------------------------------------------
367bed59b4 | Adam Borowski | 2012-11-13 13:26:47 +0100

Don't crash with friendly vampires, rakshasas, etc.
Any friendlies that know Blink Close or Teleport Self but have no current
foe.  Also, this fixes monsters not using Teleport Self if they are standing
next to their current foe, inadvertendly introduced in b3f4cb6f.

--------------------------------------------------------------------------------
5b39a8b325 | Adam Borowski | 2012-11-13 12:19:41 +0100

Minor monster_speech docs fixes.

--------------------------------------------------------------------------------
db73e890e3 | Neil Moore | 2012-11-12 22:06:36 -0500

Fix stash tracking (rwbarton).

--------------------------------------------------------------------------------
eea1d4e908 | Michael Gagno | 2012-11-12 16:14:52 -0800

Update CREDITS.txt.

--------------------------------------------------------------------------------
05c2f7470b | Chris Honey | 2012-11-12 16:02:46 -0800

Remove cursed weapon training restrictions.
This patch allows you to train any weapon skill at any time provided
you have a weapon of that type in your inventory. All brand-related
training restrictions are removed, so training short blades as a
Mummy with only an unwielded dagger of holy wrath in your inventory.

Signed-off-by: Michael Gagno <evilmike@gmail.com>

--------------------------------------------------------------------------------
ca0cb5113d | Adam Borowski | 2012-11-13 00:16:14 +0100

Crudely clean up some explicit stash code.

--------------------------------------------------------------------------------
ab423d263c | Adam Borowski | 2012-11-13 00:05:36 +0100

Mention that at least one file has the zlib license.

--------------------------------------------------------------------------------
e2ad5a459a | Florian Diebold | 2012-11-12 23:00:56 +0100

Remove a lingering print statement.

--------------------------------------------------------------------------------
fb1e291c4a | Florian Diebold | 2012-11-12 22:42:35 +0100

Fix a bug in the decompression code.

--------------------------------------------------------------------------------
5bb05427db | Florian Diebold | 2012-11-12 22:42:34 +0100

Compress Webtiles messages even without support from the browser.
This applies DEFLATE compression in the same way the deflate-frame
Websocket extension does, sending the results as binary frames. These
are then decompressed in pure javascript. Not ideal, but the bandwidth
savings (more than 90% in many situations) should be worth it.

--------------------------------------------------------------------------------
b7d1500736 | Florian Diebold | 2012-11-12 22:42:34 +0100

Add a javascript implementation of INFLATE.
BSD-licensed, source:
http://gildas-lormeau.github.com/zip.js/

--------------------------------------------------------------------------------
e753fefb8b | Chris Oelmueller | 2012-11-12 20:57:16 +0000

Update list of monster glyphs in monster_speech docs
That file probably contains other outdated parts too.
Also fixes a very minor whitespace issue.

--------------------------------------------------------------------------------
f7e9bf6d04 | Chris Campbell | 2012-11-12 20:44:18 +0000

Remove the forget stash command
The stash tracker itself still has a lot of functionality for handling
explicit stashing that should probably be removed too.

--------------------------------------------------------------------------------
0337339d29 | Chris Campbell | 2012-11-12 12:50:43 +0000

Fix some weapon speech lines
I'm not actually sure whether [|foo] is correct syntax, but it appears
to only ever return "foo".

--------------------------------------------------------------------------------
7838db3015 | ontoclasm | 2012-11-11 18:10:19 -0600

Chei & Ash altars (roctavian, 5764)

--------------------------------------------------------------------------------
c77c8aeced | elliptic | 2012-11-11 17:12:25 -0500

Don't let the Crypt entrance generate on Vaults:4.
Generating on Vaults:2-3 is more in line with the Crypt generation in
old 8-level Vaults. Crypt is far, far easier than Vaults:$, we shouldn't
have stairs to it on the same level as stairs to Vaults:$.

--------------------------------------------------------------------------------
524cbc9a2b | ontoclasm | 2012-11-11 14:43:27 -0600

Loro, jelly, & ogre mages

--------------------------------------------------------------------------------
5f0c347634 | Chris Campbell | 2012-11-11 20:06:15 +0000

Remove the list_rotten option

--------------------------------------------------------------------------------
7198cf821e | Chris Campbell | 2012-11-11 19:38:54 +0000

Remove some unneeded menu_colour options
Also results in shop items now always being consistently coloured.

--------------------------------------------------------------------------------
b3f4cb6f0c | Chris Campbell | 2012-11-11 18:35:52 +0000

Remove summon spam from vampires (elliott)
By the time they show up, rat/bat spam is much more of an annoyance
than an actual threat. Vampire summon is replaced with vampiric
draining on normal vampires, and with blink close on vampire knights.

--------------------------------------------------------------------------------
3263774f49 | ontoclasm | 2012-11-11 12:31:57 -0600

Fix berserk icons on webtiles

--------------------------------------------------------------------------------
91a64271d1 | Chris Campbell | 2012-11-11 16:12:27 +0000

Identify the Contam property on equipping artefacts

--------------------------------------------------------------------------------
c274772934 | ontoclasm | 2012-11-11 00:44:07 -0600

Adjust main dungeon tile distribution
This shifts the changes higher in the dungeon; new sets appear at floors
4, 7, 10, 15, and 21 now.  Sprint games etc. now look
like D:20 instead of D:1.

--------------------------------------------------------------------------------
1337fa46ea | ontoclasm | 2012-11-11 00:44:04 -0600

Fix sprint/zotdef wall tiles

--------------------------------------------------------------------------------
c63ab3dbf7 | Adam Borowski | 2012-11-11 04:26:03 +0100

Fix rods getting "identified" notes over and over.
This happened whenever a rod or a spellbook you have auto-notes on (default
for rods) is viewed from map_knowledge.

--------------------------------------------------------------------------------
ec18d56815 | Adam Borowski | 2012-11-11 04:03:36 +0100

Abyss stress bot: cast a spell assigned to 'T' every 50 turns.

--------------------------------------------------------------------------------
9ebb196097 | ontoclasm | 2012-11-10 20:18:58 -0600

Unbreak optimize-pngs

--------------------------------------------------------------------------------
5b8250b373 | ontoclasm | 2012-11-10 19:43:22 -0600

Monster status icons

--------------------------------------------------------------------------------
435ea91ff2 | David Lawrence Ramsey | 2012-11-10 19:33:23 -0600

Add formatting fix.

--------------------------------------------------------------------------------
9a4beb55cf | Adam Borowski | 2012-11-11 00:28:30 +0100

Add a bunch of extra runes.
The whole Elder Futhark, in fact.  There's a couple runes taken from the
Old English version as well as they are missing from the norse one, and
having no 'y' would making modern text harder to understand.

Unlike Cyrillic, there are no problems with transcription, as instead of
phonetic spelling (nearly impossible to do well programmatically), English
ortography mostly records the actual pronounciation from old times.  Well,
these times are quite a bit younger than when it was written in runes, yet
I think it's safe to say no Viking or Anglo-Saxon will come up and say this
is wrong.

--------------------------------------------------------------------------------
150d2e238a | Chris Campbell | 2012-11-10 23:22:26 +0000

Generate artefact inscriptions on the fly (elliott)
Artefact autoinscriptions now always appear (the option to not generate
them is removed). Fixes god-gifted artefacts not being correcly
inscribed (#5974).

--------------------------------------------------------------------------------
8b1cb67dca | ontoclasm | 2012-11-10 16:44:57 -0600

Unmisspell 'transparent'

--------------------------------------------------------------------------------
15a3271d07 | elliptic | 2012-11-10 12:20:02 -0500

Give black draconians permaflight (at XL 14).
Previously they just got a temporary flight ability at XL 14, which was nearly
always useless. Black is one of the weaker colors of draconian, with an
unreliable breath and a mostly useless resistance, so giving them this
bonus seemed reasonable and should help to increase draconian differentiation.

The explanation for why they can fly continuously but other draconians who
randomly mutate big wings cannot is that black draconians also make use of
their special affinity for air magic (similarly to tengu) to assist their
flight. They are not as agile as tengu, though, so they do not get the EV
and movement speed boosts that tengu do.

--------------------------------------------------------------------------------
48a7ff256c | elliptic | 2012-11-10 12:20:02 -0500

Fix tengu EV not getting updated on changes in flight status.

--------------------------------------------------------------------------------
eff5e87c31 | Chris Campbell | 2012-11-10 16:51:47 +0000

Remove some unecessary annotation options
stash.lua contains lots of automatic annotations with no options
needed, these two don't need to be an exception.

--------------------------------------------------------------------------------
e4356d5486 | Chris Campbell | 2012-11-10 16:46:23 +0000

Fix some out-of-date options guide info

--------------------------------------------------------------------------------
1913673623 | Neil Moore | 2012-11-09 23:09:27 -0500

Fix an incorrect feature name in the docs (WarukuZ).

--------------------------------------------------------------------------------
01ddba3dbf | elliptic | 2012-11-09 20:02:26 -0500

Remove unnecessary calls to burden_change().
Since flying no longer increases carrying capacity, these didn't do
anything.

--------------------------------------------------------------------------------
ffeb868441 | Chris Campbell | 2012-11-09 22:55:19 +0000

Allow wretched stars to spawn in the Abyss
Just picked an arbitrary rarity to allow them to show up and be tested
out, might need to be rarer in practice.

--------------------------------------------------------------------------------
d99168220c | Chris Campbell | 2012-11-09 22:55:19 +0000

Give the staff of Wucad Mu fixed pluses instead of varying on int
Having int-dependent pluses is sort of misleading in a couple of ways -
it's used for channeling, not hitting, and the important stat is evoc
skill rather than intelligence.

--------------------------------------------------------------------------------
cf0d2c46a7 | Chris Campbell | 2012-11-09 22:55:18 +0000

Fix sticky flame only being put out by water when flying

--------------------------------------------------------------------------------
b7009e0653 | Chris Campbell | 2012-11-09 22:55:17 +0000

Fix bat and dragon forms not flying

--------------------------------------------------------------------------------
7a8d6028fb | Chris Campbell | 2012-11-09 22:55:16 +0000

Remove the show_no_ctele option
It used to disable various different messages but all of them except the
-cTele status light have since been removed or made context-dependent,
and there doesn't really need to be an option just for this status
light.

--------------------------------------------------------------------------------
131c00c8ab | Adam Borowski | 2012-11-09 23:01:17 +0100

A whitespace and a brace fix.

--------------------------------------------------------------------------------
e783c9bea8 | Adam Borowski | 2012-11-09 22:50:47 +0100

Fix reversed messages for losing Evolution.

--------------------------------------------------------------------------------
82bdfc15e6 | Michael Gagno | 2012-11-08 20:42:40 -0800

Miscellaneous vaults. (Lightli)

--------------------------------------------------------------------------------
f04e3d2ad6 | Adam Borowski | 2012-11-09 02:58:06 +0100

Use Xom-specific messages instead of level 0 miscasts more often.

--------------------------------------------------------------------------------
dfb28a0432 | Adam Borowski | 2012-11-09 02:58:06 +0100

Fix an use-after-free crash.

--------------------------------------------------------------------------------
f383c04795 | Adam Borowski | 2012-11-09 02:57:06 +0100

Slightly flatten the carrying capacity formula.
Strength 8 works like old strength 10, strength 20 is unchanged, strength 32
works like old 30.

The reasoning is twofold:
* with the Flight boost removed, cases like unexpected abyssing (ie, without
  a chance to make room) lead to extreme micromanaging upon finding every
  new item.  In most other cases elliptic's change is good, reducing tedium
  overall.
* in the midgame, caster characters need to make stash trips over and over
  (or, equivalently, run far for every potion/wand/book they need).  This is
  tedious, there's usually no item of strength to wear, and even if they have
  one, people prefer to wear something than increases survivability instead
  of a mere convenience.

--------------------------------------------------------------------------------
68196dc92f | Adam Borowski | 2012-11-09 02:41:21 +0100

Rename boots of flight to boots of flying.
Sounds better, and is more consistent with boots of running.

Also, the distinction between "potion of flight" vs "boots of flying"
conveys the difference: a short-timed action vs a continuous effect.

--------------------------------------------------------------------------------
786430b5b6 | Florian Diebold | 2012-11-08 21:15:50 +0100

Fix a crash with draconians with shields in tiles (#6340, #6345).
The addition of shields made draconians use 4 tiles, but
MAX_INFO_COUNT was still 3. That didn't cause problems when
optimizations were disabled (probably because there was padding
between stack frames), but in optimized binaries it led to overwriting
the this pointer of a previous stack frame, which caused the
crashes. Fun.

--------------------------------------------------------------------------------
8b60bdd729 | Chris Campbell | 2012-11-08 15:53:40 +0000

Fix door colouring in some volcano subvaults

--------------------------------------------------------------------------------
42ad6a4366 | Chris Campbell | 2012-11-08 15:53:39 +0000

De-rune some portal vault doors
Most were just hiding loot and had no need to be runed. ossuary_tomb_2
claims to have deliberately runed doors but I'm not convinced it needs
them either.

--------------------------------------------------------------------------------
a4c4993394 | Chris Campbell | 2012-11-08 15:53:39 +0000

Remove major healing from wizlab_tukima's strange machines
Statues can't cast it.

--------------------------------------------------------------------------------
152db799b7 | Adam Borowski | 2012-11-08 13:26:47 +0100

Convert a number of stray references to levitation.
One in particular may need further purging: there's logic in greedy_explore
to skip picking up items if the player is unable to.  That's never the case
anymore...

--------------------------------------------------------------------------------
f264353210 | Adam Borowski | 2012-11-08 13:02:18 +0100

Manual updates from the wiki.

--------------------------------------------------------------------------------
05ebfbeb39 | Michael Gagno | 2012-11-07 23:09:54 -0800

Levitation -> flight in wizlab_golubria.

--------------------------------------------------------------------------------
4aed62e7d6 | Jason Van | 2012-11-07 22:54:54 -0800

Edits for HangedMan's vaults.
Since I caught lots of silly in-source things of mine. Lots of balance
buffs and nerfs, annoyance cuts, terrain re-arrangements, loot buffs for
mean vaults, and source clean-up.

Signed-off-by: Michael Gagno <evilmike@gmail.com>

--------------------------------------------------------------------------------
d2f4c47136 | elliptic | 2012-11-07 21:32:10 -0500

Don't require tengu to be lightly burdened to get their movement speed bonus.
Now that flight doesn't increase carrying capacity, asking for only 70%
burden is a bit cruel, especially when tengu have fairly low strength.
Besides, keeping track of whether you were above or below the 70% mark was
quite annoying.

--------------------------------------------------------------------------------
3ec0ee62f6 | elliptic | 2012-11-07 21:12:59 -0500

Remove the increased carrying capacity from flight.
Recasting this while traveling was tedious, uninteresting, and let players
carry around a lot more junk.

--------------------------------------------------------------------------------
fe4d827dc6 | Chris Campbell | 2012-11-08 00:07:48 +0000

Fix some Tengu-only permaflight checks

--------------------------------------------------------------------------------
0023bf0426 | Chris Campbell | 2012-11-07 23:13:59 +0000

Replace the amulet of the Air's cFly with Inacc and passive rMsl (78291, 
elliott)

--------------------------------------------------------------------------------
4d198fdca3 | Chris Campbell | 2012-11-07 23:10:57 +0000

Replace levitation with flight and remove controlled flight (elliott)

--------------------------------------------------------------------------------
c270398da9 | Chris Campbell | 2012-11-07 21:32:12 +0000

Remove the targetting mode cycle command
It doesn't appear to really be useful for anything.

--------------------------------------------------------------------------------
b847c97b99 | Chris Campbell | 2012-11-07 21:32:10 +0000

Add Darkness to the book of Dreams

--------------------------------------------------------------------------------
fff656dacc | Chris Campbell | 2012-11-07 21:32:09 +0000

Remove a mimic vault
Mimics should try to be believeable (like the silver rune mimic) - this
one is totally obvious and doesn't really make for an interesting vault.

--------------------------------------------------------------------------------
a28d845949 | Chris Campbell | 2012-11-07 21:32:08 +0000

Use base draconian instead of listing every colour in a Pan vault

--------------------------------------------------------------------------------
790c8b93da | Adam Borowski | 2012-11-07 20:48:00 +0100

& ^K to clear the "used" flag from all vaults.

--------------------------------------------------------------------------------
11b3bf3495 | Adam Borowski | 2012-11-07 20:30:13 +0100

Fix a Xom crash with spiders over water.

--------------------------------------------------------------------------------
38c89662ef | Adam Borowski | 2012-11-07 20:00:14 +0100

Give Evolution a chance to remove bad mutations (or, rarely, good ones).

--------------------------------------------------------------------------------
d272198898 | Adam Borowski | 2012-11-07 19:12:16 +0100

Mention cset = grate : in options_guide.txt

--------------------------------------------------------------------------------
bfaf44b882 | Adam Borowski | 2012-11-07 13:58:53 +0100

Let labyrinth_trapped{,_2} connect with their inner midge and bumblebee.
13:57 <@dpeg> these are stinkers

--------------------------------------------------------------------------------
2039c81d80 | Adam Borowski | 2012-11-07 13:44:51 +0100

Replace traps in david_orc_4 by a boring groups of orcs.

--------------------------------------------------------------------------------
5fb0bc676f | Adam Borowski | 2012-11-07 13:44:51 +0100

Disable a problematic altar vault.
The snail statues:
* create travel exclusions
* give XP for killing them -- boring and without risk
* appear as something dangerous to unspoiled players

It was disabled in 0.11, and there's no fix in sight.  One could make a new
type of statues specifically for this vault, but that doesn't seem to be
worth the effort to me.  Also, Chei's "take it easy" is strongly opposed to
a tiresome slog through hard terrain: you move slowly in absolute terms, yet
the effort is as if you ran on solid ground.

--------------------------------------------------------------------------------
167db0bb09 | ontoclasm | 2012-11-07 02:41:16 -0600

Vortices

--------------------------------------------------------------------------------
507c6f2f6f | ontoclasm | 2012-11-06 23:50:32 -0600

Orbs of fire (and variants)

--------------------------------------------------------------------------------
42b8600958 | Adam Borowski | 2012-11-07 02:09:20 +0100

Handle vault OODs via a monster_type enum rather than an additional field.
Draconians/etc do this; there's no need to keep remnants of level there.

--------------------------------------------------------------------------------
1b8fbb792b | Adam Borowski | 2012-11-07 02:00:49 +0100

Fix vault OODness being applied twice.
When we had separate power/monster_level and place, the code redundantly
applied OOD logic to both, making them be in sync.

--------------------------------------------------------------------------------
1aeffdd4ec | David Ploog | 2012-11-06 14:39:25 +0100

Fix dpeg_entry_water_fire entry vault (#6362).
Giving the central plants and statue no_rtele_into should prevent them from
being hatch destinations.

--------------------------------------------------------------------------------
ace41960cb | Adam Borowski | 2012-11-06 13:11:31 +0100

Show inventory/colouring filtering prefixes in an item's description.
It's a mess to have two distinct sets, one for stash search, one for
dropping, inventory and messages.  item_glyph allows both.

They have only minor overlap, too: an example corpse has:

Stash search prefixes: {carrion}
Menu/colouring prefixes: evil_eating forbidden contaminated

--------------------------------------------------------------------------------
53078323a3 | Adam Borowski | 2012-11-06 12:18:27 +0100

Mark wretched stars as chaotic.
It's hard to get more un-Zinny as them.

This does not yet make them vulnerable to Recite. What about MH_DEMONIC, as
silver stars are MH_HOLY?  Orb of fires are MH_UNLIVING, though...

--------------------------------------------------------------------------------
969b7890e0 | Adam Borowski | 2012-11-06 12:18:27 +0100

Whitespace/indentation fixes.

--------------------------------------------------------------------------------
be05a8484d | Michael Gagno | 2012-11-05 23:50:20 -0800

A Swamp vault. (HangedMan)
Also contains a variant for Zot (this seems to be a theme lately). Note that
the Swamp version places a small number of green draconians. I find this
slightly questionable, but they do seem to be relatives of swamp dragons...

I have chosen to leave them in, but if anyone else raises an objection, I
would suggest changing the draconians to swamp dragons.

--------------------------------------------------------------------------------
64716de7ae | Michael Gagno | 2012-11-05 23:47:08 -0800

Three Hell vaults. (HangedMan)
These are also valid for Zot, but I've placed them in hells.des since
they'll be seen most often there. Note that only the Zot versions place
loot!

--------------------------------------------------------------------------------
82aa01be73 | Michael Gagno | 2012-11-05 23:40:09 -0800

Two layout_vaults subvaults. (HangedMan)

--------------------------------------------------------------------------------
2d79df79aa | Michael Gagno | 2012-11-05 23:35:35 -0800

A large, elaborate Zot vault. (HangedMan)

--------------------------------------------------------------------------------
0258e9eb83 | Michael Gagno | 2012-11-05 23:31:05 -0800

Three Abyss vaults. (HangedMan)
These are just plain vaults; no runes or exits.

--------------------------------------------------------------------------------
849fb521e3 | Michael Gagno | 2012-11-05 23:27:01 -0800

A colour-coded Zot vault. (HangedMan)

--------------------------------------------------------------------------------
af49a04c81 | Michael Gagno | 2012-11-04 23:20:41 -0800

Dragon themed Lair ending. (Guppyfry)
A rather nasty fight for such an early branch, but there is only one true
dragon, and you can see it long before you fight it.

--------------------------------------------------------------------------------
316f740786 | Michael Gagno | 2012-11-04 23:14:59 -0800

Misc vaults. (Guppyfry)
Mostly Snake-related.

--------------------------------------------------------------------------------
a11356b2a7 | Michael Gagno | 2012-11-04 23:07:08 -0800

Minivaults with portals to Pandemonium.
These are based on the nine "classic" pan minivaults, and were edited by
Guppyfry. These are just regular minivaults which happen to place Pan
entrancees.

--------------------------------------------------------------------------------
6d96d0ee52 | Michael Gagno | 2012-11-04 22:50:35 -0800

Sewer and ossuary entry vaults. (Guppyfry)

--------------------------------------------------------------------------------
4767ef7782 | Michael Gagno | 2012-11-04 16:13:38 -0800

Improvements to ice.des serial vault. (infiniplex)
It has been expanded and made to work in Cocytus.

--------------------------------------------------------------------------------
c8b211aa6e | Michael Gagno | 2012-11-04 16:09:32 -0800

Delve-based layout for Cocytus. (infiniplex)
This produces watery, cavernous levels which are intended to be somewhat
like ice caves. These levels are somewhat smaller than old Cocytus levels,
but if this is somehow a problem, the new layout can simply be mixed with
the old ones. Currently it will be used for 100% of Coc levels.

--------------------------------------------------------------------------------
621257895e | Michael Gagno | 2012-11-04 15:55:14 -0800

Miscellaneous vaults. (nicolae)

--------------------------------------------------------------------------------
d31320d620 | Michael Gagno | 2012-11-04 15:32:04 -0800

Teleporter serial vault. (infiniplex)
This can also place regular vaults with teleporters... it may be best to
limit this to only being a serial vault thing. Overall, it's quite a large
expansion of the currently extremely rare usage of teleporters. Note, these
are scripted teleporters, not teleport traps.

--------------------------------------------------------------------------------
ab5c59d4d3 | Michael Gagno | 2012-11-04 15:15:12 -0800

14 stair minivaults. (st)
All of these are tagged 'extra' and try to contain down-stairs. None of them
specifically require stairs though, so if they generate on branch endings,
they'll just be regular vaults.

--------------------------------------------------------------------------------
0503dcdda8 | Michael Gagno | 2012-11-04 15:05:04 -0800

Fix placement of Tiamat in st_grand_hoard_of_tiamat.

--------------------------------------------------------------------------------
d65c90be8b | Michael Gagno | 2012-11-04 15:00:23 -0800

Zot minivaults adapted from the old orb chamber subvaults.
These were converted by st, but the vaults themselves were made by several
different people.

--------------------------------------------------------------------------------
1d4a3fd2ee | Michael Gagno | 2012-11-04 14:54:10 -0800

Dragon hoard vaults for Zot. (st)

--------------------------------------------------------------------------------
e50fe1193f | Michael Gagno | 2012-11-04 14:47:56 -0800

7 pan lord minivaults. (nicolae)

--------------------------------------------------------------------------------
156960048e | Raphael Langella | 2012-11-04 23:27:56 +0100

Don't lose the skill training when disconnected during !exp (#6361).
When loading the save, go back to the skill menu. The title is a bit generic
since we can't know if the XP was from a card or a potion.

--------------------------------------------------------------------------------
f789c0b38a | Adam Borowski | 2012-11-04 22:01:29 +0100

Disable the DGL tournament warning.

--------------------------------------------------------------------------------
051862deeb | Adam Borowski | 2012-11-04 21:49:31 +0100

Drop an obsolete test.

--------------------------------------------------------------------------------
2d0488338a | Adam Borowski | 2012-11-04 17:18:19 +0100

Merge branch 'master' into mon-pick
Merge commits instead of rerere suck, but not being able to comfortably use
the test rig sucks even more.

--------------------------------------------------------------------------------
177cfa8d11 | Adam Borowski | 2012-11-04 16:18:46 +0100

Get rid of mgen_data.power, use place for that.
There's still a lot of use of monster_level inside monster selection, but
at least the external interface should be free of it.

ZotDef is handled by a hack, might be wrong -- beware.

--------------------------------------------------------------------------------
80cc127a6a | Adam Borowski | 2012-11-04 16:18:46 +0100

Don't overload mgen_data.power for Tukima's power.
It is absdepth for all other uses; there's no connection between the two
except an extremely ill-thought name.

--------------------------------------------------------------------------------
252de0b16a | Adam Borowski | 2012-11-04 16:18:45 +0100

Use the player's current depth for monster banding.
It used a mixture of requested (OOD/place:) depth and current depth, often
in the same if statement, obviously not done on purpose.

While having some of the logic use requested depth might be plausible, I
went with a simple consistent way.  Few bands vary with depth anyway.

--------------------------------------------------------------------------------
59910180e5 | Adam Borowski | 2012-11-04 11:29:43 +0100

Let the Abyss stress bot brave lava when Xom-granted levitation is expiring.
It's in wizmode anyway, no reason to get the test run stuck.

--------------------------------------------------------------------------------
83f7cf7989 | Adam Borowski | 2012-11-04 05:14:46 +0100

Rename mons_spec.mlevel to ood, as it's used only for '8' and '9'.
Also, remove the vault monster tag lev: which has never been used.

--------------------------------------------------------------------------------
6a5ee951cc | Adam Borowski | 2012-11-04 05:14:46 +0100

Get rid of a crapload of uselessly passed level_number.
Also, get rid of one of three copies of '8'/'9' logic.

Also, fix the depth of place: not being heeded for some purposes.

Technically, there is one actual change: shallow items in Ziggurats had
a fixed level of 27, they now use 27 + depth in Zig.  Not noticeable as
most nearby items use level 351 anyway.

--------------------------------------------------------------------------------
2531d94394 | Adam Borowski | 2012-11-03 18:53:01 +0100

A quote for vampires.
Could someone confirm that "They ain't no vampires." instead of "there..."
is ok even in heavy dialects?  That sounds outright wrong to me.  Perhaps the
quote should be mangled a bit towards correctness?

--------------------------------------------------------------------------------
5e82571603 | Florian Diebold | 2012-11-03 14:24:25 +0100

Another bit of debugging info for Webtiles crashes.

--------------------------------------------------------------------------------
02c0615cd4 | Florian Diebold | 2012-11-03 14:18:49 +0100

Fix a (probably unconsequential) uninitialized variable warning from valgrind.

--------------------------------------------------------------------------------
55e4ec84c3 | Adam Borowski | 2012-11-03 04:13:10 +0100

Re-feed the player upon a survived non-felid starvation death.
Wizmode, perhaps gods as well.

--------------------------------------------------------------------------------
37a5dd97d4 | Chris Campbell | 2012-11-02 20:26:11 +0000

Fix capitalisation in Zin angel speech

--------------------------------------------------------------------------------
448f07302b | Florian Diebold | 2012-11-01 12:59:22 +0100

Dump the Webtiles message buffer when crashing.

--------------------------------------------------------------------------------
3cec305b3c | Adam Borowski | 2012-11-01 01:57:22 +0100

A comment requesting not encouraging ApocalypseRobin.

--------------------------------------------------------------------------------
abf5b9708e | Adam Borowski | 2012-11-01 01:51:57 +0100

Bloax's tiles for zombie crabs and turtles of various spikeness.

--------------------------------------------------------------------------------
fcdb2ca8e4 | Adam Borowski | 2012-10-31 22:59:39 +0100

Evict some classes from externs.h
No need to compile that code for every file.

--------------------------------------------------------------------------------
6bd4f17603 | Adam Borowski | 2012-10-31 22:59:39 +0100

Detemplatize text_pattern.
It is included everywhere, complex templates drag down compilation.  And
what's the point of a template that's instantiated exactly once?

--------------------------------------------------------------------------------
f73d0cfe86 | Adam Borowski | 2012-10-31 22:59:39 +0100

Make a few functions gone or static.

--------------------------------------------------------------------------------
d215302b3c | Chris Campbell | 2012-10-31 21:25:25 +0000

Don't let TSO bless blowguns

--------------------------------------------------------------------------------
cd551f5435 | Chris Campbell | 2012-10-31 19:24:59 +0000

Don't let mummies acquire food
Since Felids already can't acquire from useless item classes.

--------------------------------------------------------------------------------
0fd7db21b6 | Chris Campbell | 2012-10-31 19:22:18 +0000

Fix being able to order summons while berserk, use some canned messages

--------------------------------------------------------------------------------
1aca7f96f3 | Chris Campbell | 2012-10-31 19:20:06 +0000

Don't allow slimifying individual tentacles

--------------------------------------------------------------------------------
d0e6560788 | Adam Borowski | 2012-10-28 21:00:20 +0100

Forbid Xom "good" Tukima when in the Abyss.

--------------------------------------------------------------------------------
4b57fcd4a9 | Adam Borowski | 2012-10-28 21:00:20 +0100

Shorten the names of some .des files.
We're free of DOS' 8.3 limits, but let's not go overboard the other way.
In cases where a file includes its original author, this also allows others
to add there with more proper credits.

--------------------------------------------------------------------------------
55bc2b3118 | Adam Borowski | 2012-10-28 21:00:20 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
9cd1ebd867 | Adam Borowski | 2012-10-28 21:00:20 +0100

A lame-ass abstract "misshapen and mutated" status for monsters.
Meant for wretched stars, as it makes little sense to add complex machinery
without some meaningful concept of monster mutations.

For now, it does the following:
* -1 speed (doesn't stack)
* -10% damage dealt (up to -50%) by all means of damage dealing
* -1AC

Consider this to be a placeholder rather than a feature that's supposed to
stay.  Especially, if Poly Other gets separated from Malmutate, this is too
boring to be a viable candidate.

--------------------------------------------------------------------------------
328b1f1cfb | Chris Campbell | 2012-10-28 19:54:05 +0000

Fix Slimify's behaviour with water and lava
It'll now pick an amphibious slime if the target is over water, and fail
if they're over lava. Possibly more slimes could just be made amphibious
anyway.

--------------------------------------------------------------------------------
7dcba15aa0 | Adam Borowski | 2012-10-28 03:40:28 +0100

Drop redundant notes about Jiyva's "gifts".

--------------------------------------------------------------------------------
5143f19a9c | Adam Borowski | 2012-10-28 03:22:14 +0100

Don't allow collateral damage prompts during Xom's acts.

--------------------------------------------------------------------------------
af598f907a | Adam Borowski | 2012-10-28 02:58:38 +0100

Fix another possible tension crash.

--------------------------------------------------------------------------------
412d17b155 | Chris Oelmueller | 2012-10-28 02:50:48 +0200

Stop random teleports or shafts placing player in vitrines
At least for those two bailey entries. Reported by Mattykins.

--------------------------------------------------------------------------------
0d684c2f37 | Mu | 2012-10-27 23:37:55 +0100

Improve graphics in console version of grated_community_mu

--------------------------------------------------------------------------------
1c237a4fd2 | Mu | 2012-10-27 22:21:54 +0100

One new vault for late D, grated_community_mu.
I've placed it into its own .des file due it
being 352 lines long.

--------------------------------------------------------------------------------
608cbd169c | Adam Borowski | 2012-10-27 20:16:20 +0200

Fix a crash when calculating tension at 0 maxhp.
This will happen if Xom ponders whether to lifesave you.

--------------------------------------------------------------------------------
1d6be75245 | Adam Borowski | 2012-10-26 23:55:05 +0200

Block Acute Vision by temp Blurry Vision.
Their descriptions really suggest like they should cancel each other, I'm
going with the worst for the player way.

Most other bad mutations are merely subtractive, carni/herbi tend to pick
whichever is worse at a moment, and unlike "good" mutations, there are no
real hard conflicts like hooves+talons -- except for acute/blurry vision
which this commit handles.

--------------------------------------------------------------------------------
a4601c7d91 | DracoOmega | 2012-10-26 23:55:04 +0200

Give wretched stars a description (and casting text)

--------------------------------------------------------------------------------
c690a418b9 | Adam Borowski | 2012-10-26 23:55:04 +0200

Allow some degrees of mutation resistance vs wretched stars.
Zin works 100% of his usual power, as hating wretched stars is as Zinnish as
exploding sheep on fire are Xomly.

The amulet gives 2/3 rather than 9/10 protection, letting one mutation per
cast on the average.  Halflingitis gives 1/2 rather than 2/3 protection,
mutation immunity gives 1/1 (duh).

(Not that getting immunity is going to ever happen outside of wizmode...)

--------------------------------------------------------------------------------
a3c5cd5418 | DracoOmega | 2012-10-26 23:38:20 +0200

Make wretched starlight affect undead
Rather than giving them rot, as per most mutation attempts, this merely
drains stats (which should ideally have a less permanent effect)

--------------------------------------------------------------------------------
370af8b537 | DracoOmega | 2012-10-26 23:38:19 +0200

Initial implementation of transient mutations
Transient mutations are mutations which will expire on their own after a
certain length of time. Currently all transient mutations are lumped into
the same timer (since there is only one source of them). The player is
also allowed to have transient mutations which conflict with others they
have (so as to be able to reverse a -1 int mutation if you already had a
+1 int mutation, instead of simply losing that one permenantly)

There are still several outstanding issues both with the implementation of
transient mutations (and removal from other sources) as well as the
wretched star's ability to give them to you.

--------------------------------------------------------------------------------
cbc41225cb | DracoOmega | 2012-10-26 23:38:18 +0200

Add Wretched Stars
Just a basic dummy version whose ability currently does nothing but flash
at you.

Give them low-ish power mystic blast.

--------------------------------------------------------------------------------
98f192ffed | Adam Borowski | 2012-10-26 23:22:03 +0200

Ensure due_abyss_rune is enterable without Ashenzari + LRD/Shatter.

--------------------------------------------------------------------------------
df0d4a9bf3 | Adam Borowski | 2012-10-26 23:21:50 +0200

Document the ev script a bit.
Usage: ev due_abyss_rune

--------------------------------------------------------------------------------
759878cb97 | Chris Campbell | 2012-10-26 18:56:18 +0100

Fix Zin wrath using hibernate instead of sleep, use default paralysis durations

--------------------------------------------------------------------------------
3b8bacc565 | Mu | 2012-10-26 17:46:58 +0100

Slightly tweak fog generation in wizlab_cigotuvi.

--------------------------------------------------------------------------------
8ca86152ee | Adam Borowski | 2012-10-26 17:37:01 +0200

Fix a crash with Xom repelling stairs behind an obstacle.

--------------------------------------------------------------------------------
0527097542 | Adam Borowski | 2012-10-26 15:52:11 +0200

Make a note when a stat drops to <= 0.

--------------------------------------------------------------------------------
9b62ea2972 | elliptic | 2012-10-26 04:39:49 -0400

Fix non-good gods not using divine retribution on their followers (rwbarton).
The logic for this was broken in 4d7bf5756.

--------------------------------------------------------------------------------
c993e8bd2c | Adam Borowski | 2012-10-26 06:14:56 +0200

Fix monster enums being used for tiles.
(This is a slightly more complete version of a DracoOmega's fix.)

--------------------------------------------------------------------------------
d2c570a202 | David Ploog | 2012-10-26 04:28:10 +0200

Typo fix.

--------------------------------------------------------------------------------
939695c45d | Adam Borowski | 2012-10-26 04:04:39 +0200

Unify player and monster inaccuracy.
Besides simplifying the code, this makes suppression apply to monster inacc,
and also fixes monster IOOD being affected by an amulet worn by the player.

--------------------------------------------------------------------------------
ba82bd7389 | Adam Borowski | 2012-10-26 02:17:30 +0200

Use unwind_var instead of manual restore in one place.

--------------------------------------------------------------------------------
0f0d5aed62 | Chris Campbell | 2012-10-25 14:29:58 +0100

Fix amulet of inaccuracy not applying to ranged weapons

--------------------------------------------------------------------------------
599e8235e4 | Adam Borowski | 2012-10-25 03:47:06 +0200

Don't show the skill menu when quaffing exp with all skills at 27.

--------------------------------------------------------------------------------
1a3657d0cf | Adam Borowski | 2012-10-24 22:22:04 +0200

Ask before wearing or removing mutagenic armour and jewelry.

--------------------------------------------------------------------------------
2f4dabe7e2 | Adam Borowski | 2012-10-24 22:09:29 +0200

Make the abyss stress test bot use a more Xomly god.
More potential crashes to test, Lugonu does nothing interesting when you
don't use her abilities.

--------------------------------------------------------------------------------
76d15f9a0a | Chris Campbell | 2012-10-24 18:48:43 +0100

Fix Contam-on-unwield having no effect most of the time
6 contam usually decays to a guaranteed safe level before actually
getting a chance to mutate the player, making it much too unlikely to
do anything.

--------------------------------------------------------------------------------
6d09b094e0 | Adam Borowski | 2012-10-24 13:14:07 +0200

Fix "You have visited 2 bazaarss.".
Not that having multiples is any likely now...

--------------------------------------------------------------------------------
588327a7b4 | Adam Borowski | 2012-10-24 03:45:37 +0200

Use ASSERT() not assert().
The latter may become no-op if you're not careful, lacks debug messages.

--------------------------------------------------------------------------------
3bb8291c80 | Adam Borowski | 2012-10-24 03:43:50 +0200

Fix a number of gcc -Wextra warnings.
One case is an ambiguous constructor, which I'd say should be an error
rather than a warning.

--------------------------------------------------------------------------------
2380f20c02 | Adam Borowski | 2012-10-24 02:59:06 +0200

Shut up a bogus clang warning.
Forward declarations of "struct" and "class" are the same, the only
difference between the two is implicit "public"/"private" at the start of
an actual definition.

--------------------------------------------------------------------------------
4f2462a789 | Adam Borowski | 2012-10-24 02:55:10 +0200

Whitespace and indentation fixes.

--------------------------------------------------------------------------------
12cb4c9103 | Adam Borowski | 2012-10-24 02:47:20 +0200

Drop a lot of unnecessary braces.
The perl one-liner I use for this had a bug where it didn't match "else"
at the end of a line (ie, most of the time).

--------------------------------------------------------------------------------
8a8c1eb2f8 | Adam Borowski | 2012-10-24 02:39:37 +0200

Ensure ldierk_statue_collapse is connected.
The dungeon builder doesn't know it doesn't really matter if it draws a
corridor to an unpassable feature here, and since the vault is ORIENT:float,
it will complain then leave it unconnected.  Then, a merfolk/octopode
teleports in...

--------------------------------------------------------------------------------
8e39fde15f | Adam Borowski | 2012-10-24 02:13:10 +0200

Don't check whether 0 is between 0 and MAX_MONSTERS.
Instead, check if the kraken is valid...

--------------------------------------------------------------------------------
12ca31cfb0 | Chris Campbell | 2012-10-23 21:22:37 +0100

Reformat Ash bondage descriptions to fit on default termsizes

--------------------------------------------------------------------------------
37b35a5546 | Raphael Langella | 2012-10-23 14:03:21 +0200

Let lurking monsters get a target.
This fix revealed mimics not attacking nearby targets (bug introduced by
c90328b3).
The behaviour of lurking and submerged monsters is functionally identical,
would be good to unify the code. And trapdoor spiders are both.
Would be better to have the behaviour logic depend only monster's
behaviour, not enchantment.

I checked out an old build, before I made revealed mimics lurking, and
the lurking behaviour was completely disabled because trapdoor spiders
turned immediately to wandering behaviour while being submerged.
All the logic was done through submerged.

--------------------------------------------------------------------------------
52e927584b | Raphael Langella | 2012-10-23 14:03:21 +0200

Fix the seen_context when announcing trapdoor spiders.

--------------------------------------------------------------------------------
2beeaee1f4 | Florian Diebold | 2012-10-23 12:39:49 +0200

Unbreak Webtiles build.

--------------------------------------------------------------------------------
0bacb340b0 | Jay3.1415 | 2012-10-23 12:39:48 +0200

Remove unnecessary includes from header files.
For most header files, this only saves on having to recompile a
small number of source files, but there are also a few headers
where small changes would now take significantly less time.

This is most obvious for the Tiles build for which the dependencies
have been greatly reduced, so that the only additional includes
when compared to console are strictly library or tile related.

--------------------------------------------------------------------------------
93e47c4cd7 | Adam Borowski | 2012-10-23 04:30:16 +0200

Refactor choosing random mutations.
This fixes races that don't support some mutations being more resistant to
mutating attempts: there will be rerolls in such a case.  Conflicts with
other regular mutations still decrease the chance, in line with deliberately
failing such attempts when heavily mutated.

The code is also quite a bit faster in all practical cases, although slower
in pathological wizmode scenarios that can't possibly happen in real games.

--------------------------------------------------------------------------------
3632009360 | Raphael Langella | 2012-10-23 00:56:15 +0200

Fix trapdoor spiders being announced twice.
Maybe the same logic could be used more. Like:

An ogre come into view and shout!

--------------------------------------------------------------------------------
ce5bbf0de4 | Raphael Langella | 2012-10-23 00:35:04 +0200

Let trapdoor spider wander a bit before hiding.
In case you escape from one, makes its hiding place less predictable.

--------------------------------------------------------------------------------
c90328b348 | Raphael Langella | 2012-10-23 00:32:11 +0200

Fix trapdoor spiders not lurking and sometimes getting stuck (#6215).

--------------------------------------------------------------------------------
b1586ce70b | Raphael Langella | 2012-10-23 00:18:04 +0200

Fix compilation.

--------------------------------------------------------------------------------
34a185812f | Chris Campbell | 2012-10-22 23:03:22 +0100

Fix *Rage weapons causing berserk on almost all attacks (#2649)
Previously *Rage weapons caused berserk 50% or more of the time,
rendering them near-useless without clarity or stasis. ARTP_ANGRY is
now the percentage chance of causing berserk, with a value of 1-9 on
random artefacts (the same probability range as used by the berserkitis
mutation).

Players and monsters wearing the amulet of Bloodlust (or other *Rage
equipment, should any of it come into existence) are also now handled
correctly.

The Wrath of Trog retains its intentional 50% chance of berserking,
now handled through ARTP_ANGRY so it gets an autoinscription.

--------------------------------------------------------------------------------
45c217f696 | Chris Campbell | 2012-10-22 17:14:50 +0100

Document randapp in the list of artefact properties

--------------------------------------------------------------------------------
a1d330ee97 | Chris Campbell | 2012-10-22 15:37:15 +0100

Remove player_effect_mutagenic since it does nothing now

--------------------------------------------------------------------------------
164d53f5c6 | Chris Campbell | 2012-10-22 14:25:34 +0100

Make the plutonium sword sometimes cause tmut miscast effects on hit
Monster tmut miscasts are (mostly) quite helpful to the player: bonus
damage, petrification, confusion, and polymorph(!).

--------------------------------------------------------------------------------
1b2005ac89 | Chris Campbell | 2012-10-22 14:16:21 +0100

Don't use random uselessness as a monster miscast effect

--------------------------------------------------------------------------------
08e029fdfd | Chris Campbell | 2012-10-22 14:15:54 +0100

Change the "Contam" artefact property to cause glow upon unequipping
Contamination over time didn't work very well as an artefact property -
it could either be gotten around by unequipping (weapons, jewellery)
after combat, or just made the item completely useless (armour).

This changes it to be curse-like, but with a more severe effect than
costing a scroll to remove. Still won't be worth equipping many items
with it, but for particularly good artefacts (plutonium sword?) it
could be worth the tradeoff of being unable to freely swap items.

--------------------------------------------------------------------------------
d1d39d8040 | Chris Campbell | 2012-10-22 12:55:01 +0100

Uncurse some unrands
Leech doesn't particularly need to recurse any more (since the
vampiricism changes in the distant past). Cerebov's sword was presumably
just cursed for flavour, but that seems a little weird when no other
demon lord weapons are cursed. Finisher is just a "scythe, specially
modified for combat purposes" and doesn't seem to have any reason to be
cursed.

--------------------------------------------------------------------------------
85f6b51e12 | ontoclasm | 2012-10-22 00:29:51 -0500

Fix quasit outlines

--------------------------------------------------------------------------------
3338ab35b3 | Adam Borowski | 2012-10-21 18:21:45 +0200

Fix mutation rarities not being properly reset.
After an octopode or draconian game, restart_after_game made attempts to
mutate you be less likely to succeed.

A better fix would avoid unacceptable mutations, but this is needed for 0.11
anyway, and let's discuss the mutation formula first.  Currently, mutation
rarities work linearly for Xom and quadratically for random/good/bad
mutations, and rerolling bad picks would increase the chance of mutating.

--------------------------------------------------------------------------------
8f1dca9d58 | Adam Borowski | 2012-10-21 17:19:32 +0200

Make some of big global data arrays const.
Two big offenders are mut_data and mondata, they are modified by
fixup_mutations() and Mara's clone spell, respectively.  The former
is even not restored back!

--------------------------------------------------------------------------------
e0fe16f441 | Adam Borowski | 2012-10-21 17:19:32 +0200

Drop pointless empty book definitions.

--------------------------------------------------------------------------------
cd7623f6dd | Adam Borowski | 2012-10-21 17:19:32 +0200

Purge descs for books of Card Effects and Charms.

--------------------------------------------------------------------------------
36c15a30b6 | Adam Borowski | 2012-10-21 17:19:32 +0200

Obey TAG_MAJOR_VERSION #ifdefs when gathering strings.

--------------------------------------------------------------------------------
9c73675eed | Adam Borowski | 2012-10-21 17:19:31 +0200

Fetch the list of items, for db_lint and translations.

--------------------------------------------------------------------------------
1d269fe855 | Adam Borowski | 2012-10-21 17:19:31 +0200

Purge descs for orc demonologists.
They were pointless as sorcerers already summon demons, so it's not likely
they'll ever return.

--------------------------------------------------------------------------------
97e680dfba | Adam Borowski | 2012-10-21 17:19:31 +0200

Skip Xom taking away your weapon while in the Abyss.
There are two such acts: animating it, and swapping with a monster.
Elsewhere, you can recover it, at least if lava is not involved.

--------------------------------------------------------------------------------
badb3d9049 | Raphael Langella | 2012-10-21 16:06:25 +0200

Properly fix the monster list health indicator under windows.
The previous fix inverted the player glyph (how could I miss that?).
This time, we're just not applying the heap_brand fix on windows since it
doesn't seem to be affected by the bug anyway.

This reverts commit 7b2d18452f1af3bec283ef3f6841d5fc5cc8da21.
This reverts commit 80ba7f984ee2c939f3b4ddff4e5ca7016fe524a3.

--------------------------------------------------------------------------------
3070447b74 | Adam Borowski | 2012-10-20 16:40:29 +0200

Revert "Revert "Ask for confirmation when starting a new trunk game in DGL.""
There's a tourney going on...

This reverts commit 682f69a70b3ef44fcd85062fedfcc2df7b10e3b7.

--------------------------------------------------------------------------------
dfaf369a2d | David Lawrence Ramsey | 2012-10-19 22:39:06 -0500

Fix punctuation.

--------------------------------------------------------------------------------
076057014f | Michael Gagno | 2012-10-19 18:03:44 -0700

Move guppyfry_shop_earth deeper.
As HangedMan and clouded both point out, the monsters placed by this vault
are way ood for D:6. D:11 should be more reasonable.

--------------------------------------------------------------------------------
94e3e4bdd6 | Chris Campbell | 2012-10-19 22:49:25 +0100

Upgrade Frances' spell set
Hopefully her defeating a pan lord in single combat is slightly more
believable now.

--------------------------------------------------------------------------------
8ed4c5d963 | Chris Campbell | 2012-10-19 21:41:52 +0100

Remove spell memorisation failure (elliott)
So long as the spell can be cast, memorisation will now always succeed,
with a warning prompt for spells with high miscast rates. Patch by
elliott.

--------------------------------------------------------------------------------
474b3c1da6 | Chris Campbell | 2012-10-19 21:36:34 +0100

Minor rewording of some unrand descs

--------------------------------------------------------------------------------
86b538817b | Chris Campbell | 2012-10-19 21:14:16 +0100

Separate speech strings for humanoid and non-humanoid holies being converted

--------------------------------------------------------------------------------
e255482bc7 | Chris Campbell | 2012-10-19 18:43:38 +0100

Let vulnerability properly cancel in-progress petrification (elliott)
Previously it would set the duration to 1 and then full petrification
would set in. Patch by elliott.

--------------------------------------------------------------------------------
ffa6a6f71a | Raphael Langella | 2012-10-19 13:14:03 +0200

Fix monster polymorph targets being dominated by elves and humans.
It's especially bad since basic elves and humans are not randomly
generated, so it ruins shapeshifter surprise way too often.

--------------------------------------------------------------------------------
7b2d18452f | Raphael Langella | 2012-10-18 22:05:26 +0200

Whitespace fix.

--------------------------------------------------------------------------------
80ba7f984e | Raphael Langella | 2012-10-18 22:00:08 +0200

Fix monster list not displaying health indicator under windows (#6290).

--------------------------------------------------------------------------------
f04ddb5670 | Adam Borowski | 2012-10-18 16:26:06 +0200

Swat away bumblebees.

--------------------------------------------------------------------------------
c159e6fa7b | Adam Borowski | 2012-10-18 13:16:39 +0200

Recover saves that crashed during level transition.
It's puzzling why the save transaction was committed in such a state, but
even if we fix that, old games still need such a check so they can continue.

--------------------------------------------------------------------------------
b14b6c746d | Adam Borowski | 2012-10-18 02:17:49 +0200

Don't use a std::map for item_glyph, as order of overrides matters.

--------------------------------------------------------------------------------
b706cf8a7e | Adam Borowski | 2012-10-18 02:03:23 +0200

Document item_glyph.

--------------------------------------------------------------------------------
71dc8c1b29 | Adam Borowski | 2012-10-18 02:03:23 +0200

Tag poisonous and ghoul/necrophage corpses as inedible.

--------------------------------------------------------------------------------
1225f92d95 | Adam Borowski | 2012-10-18 02:03:18 +0200

Synonym "evil_eating" as "forbidden".
The former is something no one would guess without RTFSing.

--------------------------------------------------------------------------------
3c0c5f3e7b | Adam Borowski | 2012-10-18 01:09:09 +0200

Allow colouring/reglyphing items based on their filter prefixes.
These are partially redundant with stash prefixes, it'd be good to unify
these two sets somehow.

--------------------------------------------------------------------------------
74c377595a | Adam Borowski | 2012-10-18 00:57:47 +0200

Unsabotage food prefixes.
They were disabled in most cases because of a silly notion that someone who
types "muta" should find potions of mutation but not mutagenic meat.

(The next commit would be doable without this one by passing a parameter,
but I consider this a bugfix.)

--------------------------------------------------------------------------------
f2a1e2e5ac | Chris Campbell | 2012-10-17 18:16:32 +0100

Use runed doors for the outsides of door vaults instead of the whole vault
This makes it slightly harder to just create chokepoints and kill the
contents one at a time, but it's still very possible. A better solution
would be to return door vaults to their intended behaviour and allow
monsters to open runed doors (with the runes simply being a warning,
preventing it from being an autoexplore trap).

--------------------------------------------------------------------------------
5a75311d0f | Adam Borowski | 2012-10-17 16:16:16 +0200

Revert "Remove dgn_resolve_map()."
Apparently, some Nethacker spy must have broken into my system and replaced
the git-grep binary, rigged the terminal to insert a typo in the search, or
do something else nasty!

This reverts commit 840f2d079fa55bb7bf019d1b5736aaaadc41e864.

--------------------------------------------------------------------------------
06c43eb0b2 | Adam Borowski | 2012-10-16 23:59:14 +0200

Reduce repeating item_glyph regexp matches by caching results per name.
This still requires costly production of the item's name, once per every
item visible on screen every single round.

--------------------------------------------------------------------------------
5eec67434e | Adam Borowski | 2012-10-16 23:59:14 +0200

Get rid of all but one uses of mon_display.
It's a duplicate of cglyph_t with an additional field that's only used once.

--------------------------------------------------------------------------------
c7bc4ef460 | Adam Borowski | 2012-10-16 23:59:14 +0200

A new option: item_glyph += dagger : lightgrey †
It matches against the stash-annotated name, so a dagger can be:
"{throwable} {Short Blades} {weapon} +0,+0 dagger"
-- ie, you can assign a glyph and/or colour to specific items or
groups of them based on a number of criteria.

--------------------------------------------------------------------------------
bfa4b91a9f | Adam Borowski | 2012-10-16 23:59:14 +0200

Refactor showsymb a bit.

--------------------------------------------------------------------------------
90005585c7 | Adam Borowski | 2012-10-16 23:59:14 +0200

Rename struct glyph to cglyph_t.
Hard to come up with something less greppable...

--------------------------------------------------------------------------------
6ca8c092ae | Adam Borowski | 2012-10-16 23:59:13 +0200

Ignore attempts to recolour traps, stairs or altars.
Too many vaults want to have, say, green floor where a trap is, which will
make the trap green once it is detected.

--------------------------------------------------------------------------------
e322a3c405 | Adam Borowski | 2012-10-16 23:59:13 +0200

Use final effects to pass kraken damage upwards.
This should avoid the rest of still notorious crashes[1], and unlike
DracoOmega's ideas, doesn't turn krakens into a boring summoner-with-a-swarm
-of-pets we have too many examples of.

(Improvements to tentacle AI and connectivity are very welcome, I just
vehemently oppose making tentacles obstacles rather than parts of the kraken
itself.)

I did not yet purge a lot of no longer needed checks, to reduce possible
conflicts.

[1]. Even though such crashes are rare now, this is what killed my record
Abyss stress test run after over a week and umpteen million turns.

--------------------------------------------------------------------------------
2ee5dd9bf5 | Adam Borowski | 2012-10-16 23:59:13 +0200

Properly handle new final effects that spawn when previoud ones fire.
If one would merge with an existing one, the extra would be ignored.

--------------------------------------------------------------------------------
e6c5af89b6 | Adam Borowski | 2012-10-16 23:58:53 +0200

Unbreak.

--------------------------------------------------------------------------------
91a3bba029 | Chris Campbell | 2012-10-16 19:49:24 +0100

Improve a number of hints mode messages

--------------------------------------------------------------------------------
6bb5e3d6ba | Chris Campbell | 2012-10-16 17:00:50 +0100

Use inclusions instead of exclusions for baited_tele_trap depth

--------------------------------------------------------------------------------
1b3cbee91d | Raphael Langella | 2012-10-16 15:23:54 +0200

Simplify.

--------------------------------------------------------------------------------
bfa4146bbb | Raphael Langella | 2012-10-16 13:40:53 +0200

Give zombies and such the same size as the base monster (#5722).

--------------------------------------------------------------------------------
af6bd42ccf | Adam Borowski | 2012-10-16 02:12:43 +0200

Fix grunt_rogues_gallery generating bad weapon:brand combinations.
It could trigger a special-casing of clubs and slings that won't ever
generate on good_item weapons.

--------------------------------------------------------------------------------
a1cff25a0c | Chris Campbell | 2012-10-15 22:30:13 +0100

Remove a random loot vault from the hells

--------------------------------------------------------------------------------
ebea2ed62c | Adam Borowski | 2012-10-15 22:14:47 +0200

Mark and unmark currently handled vault at correct times.
vault_main() merely looks for a fitting place to put the vault in, there's
far more processing afterwards that can crash.

--------------------------------------------------------------------------------
840f2d079f | Adam Borowski | 2012-10-15 22:14:47 +0200

Remove dgn_resolve_map().
It has never been used, and it confuses people (at least fooled me wrt where
applying a vault begins and ends).

--------------------------------------------------------------------------------
ee5c890eea | David Ploog | 2012-10-15 22:06:58 +0200

Provide fallback for absent Jory. (kilobyte)

--------------------------------------------------------------------------------
d1d7d9f9d2 | David Ploog | 2012-10-15 22:04:56 +0200

More Singing Sword lines (jpeg).

--------------------------------------------------------------------------------
4fc70b324d | Adam Borowski | 2012-10-15 20:18:32 +0200

Note the vault and subvaults being placed when a crash happens.

--------------------------------------------------------------------------------
03621593cd | Adam Borowski | 2012-10-15 20:18:32 +0200

Mark simple shop vaults as transparent.

--------------------------------------------------------------------------------
4f9bcb7a8d | Adam Borowski | 2012-10-15 20:18:32 +0200

Dump a bad map first, then print a message with MSGCH_ERROR.
Also, close the file afterwards, abort() doesn't flush libc buffers.

--------------------------------------------------------------------------------
816fcd4f92 | Chris Campbell | 2012-10-15 18:48:14 +0100

Remove some hints mode references to secret doors (minqmay)

--------------------------------------------------------------------------------
4214b2434e | Chris Campbell | 2012-10-15 18:30:54 +0100

Include base type in the description for artefact jewellery
Randart and unrand jewellery should now correctly display the entire
list of effects when examined (although it might be better to use
shortened descriptions, instead of the base type sometimes having a
much longer description than the other properties?).

--------------------------------------------------------------------------------
24f731f886 | Adam Borowski | 2012-10-15 18:32:50 +0200

Fix subvault give-back not working properly on failures of the host vault.
Subvaults were registered as used the moment SUBVAULT clause resolved,
without a way to undo that registration (except for the whole level being
vetoed).  The host vault was then properly given back, possibly resulting
in the subvault being exhausted if it had no allow_dup.

--------------------------------------------------------------------------------
a8e8e54d37 | Chris Campbell | 2012-10-15 16:39:30 +0100

Let mottled drac breath stick to bushes too (N78291)

--------------------------------------------------------------------------------
bf5d421bc3 | Chris Campbell | 2012-10-15 16:22:14 +0100

Make sticky flame stick to bushes

--------------------------------------------------------------------------------
22098458f3 | Adam Borowski | 2012-10-15 01:47:57 +0200

Duplicate laboratory_2 to avoid subvault issues.
It is eligible to spawn the normal way, depriving the Vaults version of its
subvault.  We also got failures in games that did not even approach Vaults
yet, which is puzzling.

I could add a Lua check for the subvault's eligibility and veto the vault if
it's not, but this way has less moving parts.

--------------------------------------------------------------------------------
2742bd4060 | Adam Borowski | 2012-10-15 01:37:15 +0200

Make the Vaults cage trap work.
There being not one but two null references proved to be confusing...

--------------------------------------------------------------------------------
5d608aaa27 | Adam Borowski | 2012-10-15 01:20:35 +0200

Hush a couple of errors in --mapstat.
Since mapstat doesn't handle overflow temples, there's no much point in
handling Temple maps exactly as in real games, at least as far as altar
substitution is concerned.

Also, fixed uniques need to be cleared when their vaults are cleared.

I think this makes remaining errors that pop up on --mapstat real bugs;
there's depressingly many of them:
* layout_roguey special rooms getting overwritten by other vaults
* grunt_rogues_gallery running out of subvaults (usually on encompass levels)
* No vault found for tag 'laboratory_2'
* Lua error: »…«/dat/des/traps/grate.des:87: attempt to index global 'e' (a 
nil value)
* Bad (disconnected) level on XXX (vault1, vault2)
  • this tends to be a vault with bad substitutions, like current zaba_anthell
* invalid zombie size: small zombie for moth of suppression

--------------------------------------------------------------------------------
21d8a81a92 | Adam Borowski | 2012-10-15 01:20:34 +0200

Don't throw false errors about isolated vaults, do throw them in real cases.
In debug mode, you used to get messages about no exits from lemuel_elevator,
etc.  This commit checks whether the vault has a staircase of sorts in the
middle, complaining (not only in debug mode anymore!) if it does not.

--------------------------------------------------------------------------------
c5284c60d9 | Adam Borowski | 2012-10-15 01:20:34 +0200

Initialize item desc table in --mapstat.
Errors thrown (and blindly silenced) due to bad item names are benign, but
crowd out real errors.

--------------------------------------------------------------------------------
3f3d475e28 | Adam Borowski | 2012-10-15 01:20:34 +0200

Give descriptive item dumps with DEBUG_FATAL.
The message has multiple lines, and usually you'd get oh-so-useful "Bad item:".

--------------------------------------------------------------------------------
82fa3a4bb0 | Adam Borowski | 2012-10-15 01:20:34 +0200

Allow making MSGCH_ERROR fatal.
To do so, build with EXTERNAL_DEFINES=-DDEBUG_FATAL, like other debug
fine-tuning defines.

--------------------------------------------------------------------------------
a36a3603a8 | Adam Borowski | 2012-10-15 01:20:33 +0200

Axe an unused desc link.

--------------------------------------------------------------------------------
6d9b1b8b10 | Chris Campbell | 2012-10-14 23:09:32 +0100

Fix Troves asking for a "book of book of foo"

--------------------------------------------------------------------------------
b299636949 | Adam Borowski | 2012-10-14 06:10:55 +0200

No need to declare regular runed doors.

--------------------------------------------------------------------------------
02ca023a9f | Brendan Hickey | 2012-10-14 06:02:35 +0200

Abyss Vaults
Tweak some exisiting abyss vaults. Remove particularly bad vaults.
Add some benign exits.
Add a humorous Lugonu altar.

--------------------------------------------------------------------------------
3b9bd2d7ee | David Lawrence Ramsey | 2012-10-13 13:10:11 -0500

Use new speech code to remove the need for some one-shot speech keys.

--------------------------------------------------------------------------------
75ca3f8ab9 | David Lawrence Ramsey | 2012-10-13 12:53:34 -0500

Use new speech code to capitalize the player name in an orc speech line.

--------------------------------------------------------------------------------
e9f2ff4280 | David Ploog | 2012-10-13 19:08:07 +0200

Spacing fixes (elliot).

--------------------------------------------------------------------------------
2e9b9194fe | David Ploog | 2012-10-13 17:23:50 +0200

Use new speech syntax for the Singing Sword.

--------------------------------------------------------------------------------
ca4da61403 | David Lawrence Ramsey | 2012-10-12 20:10:58 -0500

Add spelling fixes.

--------------------------------------------------------------------------------
0cc73348c2 | David Lawrence Ramsey | 2012-10-12 20:01:41 -0500

Use new speech code to capitalize the player genus in a Singing Sword line.

--------------------------------------------------------------------------------
a1a2868032 | Jay3.1415 | 2012-10-13 02:35:48 +0200

Improve speech syntax: capitalization and random substrings.
1. @The_monster@ shouts, "I hate you, @CAPS@ @player_name@ @NOCAPS@!"

will result in the actual player name being capitalized.
(Spaces are trimmed.)

2. @The_monster@ says, "I am [very ||really ] hungry."

will randomly result in "I am very hungry", "I am hungry" or
"I am really hungry".

If the pattern turns up a lot, you need to assign weights to the
different choices, or you require nested random sets, you'll need to
stick to the old fallback of defining ad hoc @keywords@.
Otherwise, this should make things somewhat simpler.

Works for both monster and weapon speech, including shouts, noisy
weapons and the Singing Sword.

I've also taken the liberty to update the speech documentation, which
still listed the old website (!) and pointed users looking for advice
to the newsgroup).

Conflicts:
	crawl-ref/source/art-func.h
	crawl-ref/source/libutil.cc
	crawl-ref/source/libutil.h

Signed-off-by: Florian Diebold <flodiebold@gmail.com>

--------------------------------------------------------------------------------
1656f8ec01 | Chris Campbell | 2012-10-12 19:18:28 +0100

Don't grey out messages while asleep
Important stuff can still happen, there's no reason to make the messages
harder to read.

--------------------------------------------------------------------------------
88f510704c | Neil Moore | 2012-10-12 11:24:29 -0400

Don't blame player for monsters using staves of death.
Fixes #6307.

--------------------------------------------------------------------------------
0c18f08701 | Raphael Langella | 2012-10-12 14:52:17 +0200

Move the sdl-android repository to gitorious/crawl.

--------------------------------------------------------------------------------
fbe0e60f27 | Neil Moore | 2012-10-11 18:35:42 -0400

Don't crash when calling viewwindow() at (0,0).
This was happening (sometimes) when interlevel travel was interrupted
by a MSGCH_ERROR message during level-gen. Now we treat this like the
other case where your position is (0,0) (viz. step from time).

The underlying problem causing those messages is still there, but now
the user should get just an error message and not a crash.

--------------------------------------------------------------------------------
4e8099c9fb | Florian Diebold | 2012-10-11 17:16:46 +0200

Webtiles: Fix 0.9 games not showing up in the lobby.

--------------------------------------------------------------------------------
a4e188bdb1 | Florian Diebold | 2012-10-11 16:58:18 +0200

Webtiles: Fix a problem with 0.9 compatibility.

--------------------------------------------------------------------------------
dc4dbae810 | Florian Diebold | 2012-10-11 16:50:44 +0200

Webtiles: Log certain errors that can prevent startup.

--------------------------------------------------------------------------------
4c03bd8ba2 | Neil Moore | 2012-10-11 10:28:35 -0400

Improve draconian quote and citation.

--------------------------------------------------------------------------------
008abad60e | Florian Diebold | 2012-10-11 16:09:47 +0200

Use the FixedVector pretty-printer also for FixedArray.
A bit hacky since they're not related as types, but pretty-printing a
FixedArray would work exactly the same.

--------------------------------------------------------------------------------
61f082482a | Raphael Langella | 2012-10-11 15:31:21 +0200

Update the android doc regarding the change to the sdl-android submodule.

--------------------------------------------------------------------------------
15a554bbd7 | Florian Diebold | 2012-10-11 15:22:56 +0200

Don't check out the sdl-android submodule by default.
If you need it, you can still get it with:
git submodule update --checkout crawl-ref/source/contrib/sdl-android

--------------------------------------------------------------------------------
b6f204dfd5 | Adam Borowski | 2012-10-11 14:02:41 +0200

Make @player_god@ fit better for godless players.

--------------------------------------------------------------------------------
6694e78284 | Adam Borowski | 2012-10-11 13:20:58 +0200

A quote for draconians.

--------------------------------------------------------------------------------
f0c4ae38a9 | David Ploog | 2012-10-11 10:48:43 +0200

Ashenzari ghost speech line (jpeg)

--------------------------------------------------------------------------------
6d26b94417 | Neil Moore | 2012-10-10 19:49:03 -0400

Grammar fix (galefury).

--------------------------------------------------------------------------------
e8df7991bb | Eino Keskitalo | 2012-10-10 23:38:42 +0300

Add KiSS team to CREDITS.txt.
Regrettably, I have for some reason not pushed this until now - it missed the 
0.11 release.

--------------------------------------------------------------------------------
066440b83c | Florian Diebold | 2012-10-10 21:52:26 +0200

Webtiles: Fix dialogs being off-center if they are opened too fast (#6299)

--------------------------------------------------------------------------------
b439a852ec | Neil Moore | 2012-10-10 14:00:00 -0400

Use ^= where relevant in default init comments.

--------------------------------------------------------------------------------
4c1bd42a11 | Neil Moore | 2012-10-10 13:19:35 -0400

Document ^= and importance of order for list options.

--------------------------------------------------------------------------------
5e04137ae4 | Neil Moore | 2012-10-10 13:18:40 -0400

Correctly handle runrest_ignore_monster -= foo.
We were comparing a string and a regexp, which always returned false.

--------------------------------------------------------------------------------
fec2aea0dd | Neil Moore | 2012-10-10 13:11:34 -0400

Fix "spell_slot =".
We were clearing autopickup_exceptions instead, oops.

--------------------------------------------------------------------------------
5b3e6b2cc9 | Michael Gagno | 2012-10-09 21:38:24 -0700

Give krakens M_FLEES.

--------------------------------------------------------------------------------
caee588e5f | David Lawrence Ramsey | 2012-10-09 21:37:40 -0500

Add indentation fixes.

--------------------------------------------------------------------------------
0b80a8ecbd | Neil Moore | 2012-10-09 20:51:13 -0400

Fix memory corruption when merging fineffs.
We could end up with a pointer to a deleted object in the final effects
vector. Instead of replacing the old fineff with the new one, merge the
new one into the old one then delete the new one. This means that
fineff::schedule() may delete "this", so should only be called as
(new blah_fineff())->schedule()

--------------------------------------------------------------------------------
36f1f21f5e | Chris Campbell | 2012-10-09 19:34:38 +0100

Make the blinking component of the Dispersal spell irresistible

--------------------------------------------------------------------------------
7a1ef7f95c | Chris Campbell | 2012-10-09 19:09:21 +0100

Make draining/torment/statloss a single, rarer Xom effect

--------------------------------------------------------------------------------
0b3348b441 | Chris Campbell | 2012-10-09 18:55:55 +0100

Xom effect: blink monsters (either randomly, or towards the player)

--------------------------------------------------------------------------------
b3c4db1590 | Chris Campbell | 2012-10-09 18:50:25 +0100

Xom effect: assorted single monster enchantments (positive and negative)

--------------------------------------------------------------------------------
760bccbe15 | Chris Campbell | 2012-10-09 18:45:49 +0100

Let Xom sometimes unbanish the player

--------------------------------------------------------------------------------
53b408c7ed | Chris Campbell | 2012-10-09 18:45:38 +0100

New Xom effect: loud noises

--------------------------------------------------------------------------------
26e47c57e1 | Chris Campbell | 2012-10-09 18:33:35 +0100

Make boulders stop rolling when teleported

--------------------------------------------------------------------------------
e55fb69932 | Raphael Langella | 2012-10-09 16:45:28 +0200

Fix infinite loop when travelling into  a cell with a sacrificeable (#6278).

--------------------------------------------------------------------------------
3b0673f085 | Raphael Langella | 2012-10-09 16:45:28 +0200

Fix skills mastered after quaffing !exp still showing training (#6286).

--------------------------------------------------------------------------------
437ba6be61 | Adam Borowski | 2012-10-09 13:02:43 +0200

Fix disconnected areas in a Lair ending.

--------------------------------------------------------------------------------
aa0d55c1a1 | Adam Borowski | 2012-10-09 12:58:25 +0200

Mark a few db keys as internal.

--------------------------------------------------------------------------------
bd7a0b9712 | Neil Moore | 2012-10-09 02:22:31 -0400

Fix SkillMenu crashes.
Not everything was being reset, causing crashes the second time the menu
was entered.

--------------------------------------------------------------------------------
7f69e0fee3 | David Lawrence Ramsey | 2012-10-08 19:29:47 -0500

Fix indentation.

--------------------------------------------------------------------------------
c8169b0d54 | David Lawrence Ramsey | 2012-10-08 19:29:32 -0500

Add @a_player_genus@ to fix one usage in the new Singing Sword lines.

--------------------------------------------------------------------------------
5d1a0fc1d1 | David Lawrence Ramsey | 2012-10-08 19:17:05 -0500

Fix wording and punctuation in new strings.

--------------------------------------------------------------------------------
1b9ea5c5fb | Translators | 2012-10-09 00:14:02 +0200

Transifex sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
15769cdd80 | Chris Campbell | 2012-10-08 21:51:01 +0100

Remove allow_dup from some loot vaults, lower weight and restrict depth on one

--------------------------------------------------------------------------------
b3c6c8fdc0 | David Ploog | 2012-10-08 21:32:01 +0200

Excellent lines for the Singing Sword (nicolae).

--------------------------------------------------------------------------------
87594b2f27 | Adam Borowski | 2012-10-08 18:18:21 +0200

A .pl typo fix.

--------------------------------------------------------------------------------
98b0d82353 | Translators | 2012-10-08 18:11:12 +0200

Giant descriptions (DaneiTWO).
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
d9d49d3e8d | Raphael Langella | 2012-10-08 18:11:12 +0200

Rename magical staff entry to staff also in translated files.

--------------------------------------------------------------------------------
e613f2e707 | Translators | 2012-10-08 18:11:11 +0200

Transifex format fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
3f6aab358f | Raphael Langella | 2012-10-08 18:11:11 +0200

Move the pkg-config check earlier in the Makefile.
To fix some useless errors when compiling with windows.

--------------------------------------------------------------------------------
4fa33068a4 | Raphael Langella | 2012-10-08 18:11:11 +0200

Skill menu: map shift-click and right-click to single select.
Does the same as shift-letter.

--------------------------------------------------------------------------------
9966aa71c5 | Raphael Langella | 2012-10-08 18:11:11 +0200

Make the SkillMenu object a global variable.
Better that than a static member of 2 (and soon 3) other classes.

--------------------------------------------------------------------------------
74c35ba6f3 | Raphael Langella | 2012-10-08 18:11:11 +0200

Scale the skill menu tiles.
Scale up with the tile_cell_pixels option, and scale down when the
resolution is too low (instead of disabling tiles).

--------------------------------------------------------------------------------
589acc5e30 | Raphael Langella | 2012-10-08 18:11:11 +0200

New option to have zoomed textures filtered: tile_filter_scaling.

--------------------------------------------------------------------------------
044e70d2db | Chris Campbell | 2012-10-08 17:07:23 +0100

Adjust the commented value of dump_on_save in the default config
Since currently the standard is to have boolean options be the opposite
of their default (although there's been talk of changing that since
it doesn't make any sense for non-boolean options).

--------------------------------------------------------------------------------
5eeff20c06 | Chris Campbell | 2012-10-08 14:34:14 +0100

Add some new Donald lines (TwilightPhoenix), remove some obsolete ones

--------------------------------------------------------------------------------
e10bc5ced7 | Adam Borowski | 2012-10-07 02:45:00 +0200

Properly package contrib/fonts, skip contrib/sdl-android
Source packages didn't trim away git dirs, leaving junk.  And for
sdl-android, putting 342MB (unpacked) into a tarball that currently has
17MB (packed) would be a wee bit too much.

--------------------------------------------------------------------------------
766680d517 | Chris Campbell | 2012-10-05 22:22:26 +0100

Don't Xom inner flame magic immune monsters

--------------------------------------------------------------------------------
3b2ccc31dd | David Lawrence Ramsey | 2012-10-05 11:27:05 -0500

Fix wording in new descriptions.

--------------------------------------------------------------------------------
b434a8fd71 | Adam Borowski | 2012-10-05 17:04:36 +0200

A desc for spearthrower statues from Vaults' crystal city.

--------------------------------------------------------------------------------
fdae38ec0e | Adam Borowski | 2012-10-05 16:05:35 +0200

s/shadowmancer/shadowy/ statue, add a desc.

--------------------------------------------------------------------------------
50d2da9856 | Adam Borowski | 2012-10-05 15:43:47 +0200

A desc for the Arena Sprint final boss.
His name seems to not fit Crawl at all, sounding like some dudebro rather
than a lich in a faux-medieval setting.

--------------------------------------------------------------------------------
340258642b | Adam Borowski | 2012-10-05 14:56:15 +0200

Show the desc of un-ided staves.

--------------------------------------------------------------------------------
26a138b152 | Adam Borowski | 2012-10-05 14:49:54 +0200

Show (weapon) rather than (in tentacle) for rods.
They were special-cased before, I ported that without thinking.  Apparently,
it's a remnant of the times when you could only clumsily bash with a rod;
they're clubs now and if Xom gives you a high-enchantment one it might
actually be a decent early weapon.

--------------------------------------------------------------------------------
5c792967d6 | Adam Borowski | 2012-10-05 14:39:41 +0200

Document the CACT_THROW argument.

--------------------------------------------------------------------------------
c9c43cbd0e | Adam Borowski | 2012-10-05 14:22:01 +0200

Abyss stress test: don't run around with an unworn cloak.
Not that it makes any difference...

--------------------------------------------------------------------------------
77c99229d9 | Adam Borowski | 2012-10-05 14:22:01 +0200

Fix the action count not showing thrown weapons.
I added support for fancy unrands (like the knife of Accuracy) as well,
although that's probably overkill.

Not handled yet: fumbled stuff.  Should we mention what exactly was fumbled?

--------------------------------------------------------------------------------
1395738807 | Adam Borowski | 2012-10-05 14:14:12 +0200

Allow stress test bots to visit Malign Gateways.
That "untold damage" is 2d4...

--------------------------------------------------------------------------------
ef2a001fcf | Florian Diebold | 2012-10-05 12:06:07 +0200

Fix shield display on monsters (#6288 and other problems).
Monsters not wielding a weapon did not have their shield
displayed (admittedly a somewhat rare occurence).

Also, tiles not listed in get_shield_offset would still be displayed
with a shield, contrary to the comment in the default case. Now, there
are probably a lot of cases missing -- it may be good to just display
the shield by default, but that would be inconsistent with the weapon
handling, and it leads to problems like in the referenced bug.

--------------------------------------------------------------------------------
f677fff4a5 | Neil Moore | 2012-10-05 01:34:28 -0400

Remove some extraneous semicolons in Lua.
Thanks to elliott for pointing out the ones I added in runrest.lua;
grep turned up a couple more.

--------------------------------------------------------------------------------
09fba8bc4e | Adam Borowski | 2012-10-05 04:06:28 +0200

Axe a few unneeded braces.

--------------------------------------------------------------------------------
9563daabac | Adam Borowski | 2012-10-05 04:03:49 +0200

A whitespace fix.

--------------------------------------------------------------------------------
b4594a8afc | Adam Borowski | 2012-10-05 03:37:15 +0200

Reveal traps seen during Xom's teleportation journey.
This is the only case where you move around without player_reacts being
called.

--------------------------------------------------------------------------------
c493471b00 | Adam Borowski | 2012-10-05 03:35:46 +0200

Search for traps even if the action took 0 aut or you're paralyzed.
There's no reason to have Temporal Distortion work differently now that
searching is not time-based.

--------------------------------------------------------------------------------
cfcd8f447a | Adam Borowski | 2012-10-05 03:31:09 +0200

Make an assert more verbose.

--------------------------------------------------------------------------------
573a6bc3f9 | Adam Borowski | 2012-10-05 01:47:39 +0200

Add a missing space in the tutorial.

--------------------------------------------------------------------------------
7396aecf51 | Chris Campbell | 2012-10-04 21:51:27 +0100

Add some escape hatches to prevent getting trapped in lemuel_ogre_cave

--------------------------------------------------------------------------------
edee96db85 | Neil Moore | 2012-10-04 15:53:25 -0400

Remove an unnecessary #include
It shouldn't have been added in 522fc65 in the first place.

--------------------------------------------------------------------------------
5af33eb5a0 | Neil Moore | 2012-10-04 15:08:35 -0400

Fix crawl.split() crash (oops).

--------------------------------------------------------------------------------
522fc65608 | Neil Moore | 2012-10-04 14:53:23 -0400

Allow prepending with listopt ^= foo.
No documentation yet, and needs serious testing.

For a few options*, this is slow: O((n+k)*k) where n is the length of the
original list and k the number of new items. This could be fixed with
some code code restructuring.

[*] enemy_hp_colour, fire_order, message_colour, and the Lua-defined
    options runrest_ignore_message, runrest_stop_message, and
    runrest_ignore_monster.

--------------------------------------------------------------------------------
2ea6c124b5 | Raphael Langella | 2012-10-04 16:14:29 +0200

Fix auto_sacrifice stopping on coprse piles.
It only stops if the stack contains at least one unknown
non-sacrificeable item.

--------------------------------------------------------------------------------
623cdf4465 | Raphael Langella | 2012-10-04 16:14:29 +0200

Merge the sacrifice_before_explore option into auto_sacrifice.
auto_sacrifice can take 4 values: yes, no, prompt, before_explore.

--------------------------------------------------------------------------------
7643a53e12 | Jan Alexander Steffens (heftig) | 2012-10-04 14:20:17 +0200

Properly escape shell variables
b13266e broke finding the system fonts.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
b13266e1ba | Raphael Langella | 2012-10-03 23:11:59 +0200

Makefile: don't search non-existant directories for fonts.
Fix the remaining error messages on windows builds (#6044).

--------------------------------------------------------------------------------
99a554277b | Raphael Langella | 2012-10-03 23:11:58 +0200

Fix make install

--------------------------------------------------------------------------------
60f6fa2872 | ontoclasm | 2012-10-03 13:53:27 -0500

Scroll retweaks

--------------------------------------------------------------------------------
bf896d4db2 | Chris Campbell | 2012-10-03 18:59:36 +0100

Fix levitating monsters floundering on liquefied ground

--------------------------------------------------------------------------------
7885606e58 | Adam Borowski | 2012-10-03 19:04:36 +0200

A .pl quote.

--------------------------------------------------------------------------------
3e2fba1f9b | Adam Borowski | 2012-10-03 19:04:36 +0200

Apply EV, AC and GDR to Awaken Forest.
As a damage over time effect, the regular EV formula would make it harmless
(EV usually works by letting you dodge almost everything but puts you in
deep shit if you fails two dodges in a fight), thus instead EV is effectively
added to AC, just with a bigger variance.

The base damage is rescaled for roughly 33th percentile of AC+EV of players
who died on D:24; if that's not what we want, we'll rebalance later.

--------------------------------------------------------------------------------
b3d660cef0 | Adam Borowski | 2012-10-03 19:04:36 +0200

Eliminate some loot that never worked from lemuel_vampire_tower.

--------------------------------------------------------------------------------
8aa8465621 | Adam Borowski | 2012-10-03 19:04:36 +0200

Kill a std::

--------------------------------------------------------------------------------
26baee9f5f | Adam Borowski | 2012-10-03 19:04:36 +0200

Make most misc effects use victim->apply_ac().
Airstrike, Tornado, spines, earth miscasts, Mi headbutts.

In the case of Airstrike, this is a nerf by 0.5 points of damage on the
average.

Monster minotaur headbutts get a big buff as their attacker's (ie, usually
your) AC is no longer applied as a constant, but as random2(1 + ac) like in
other cases.

--------------------------------------------------------------------------------
f52e4921b9 | Adam Borowski | 2012-10-03 19:04:36 +0200

Make traps use victim->apply_ac().

--------------------------------------------------------------------------------
1daf7c8a69 | Adam Borowski | 2012-10-03 19:04:35 +0200

Make beams use victim->apply_ac().

--------------------------------------------------------------------------------
8917c137aa | Adam Borowski | 2012-10-03 19:04:35 +0200

Don't bother estimating minimal damage in beam tracers.
The result was almost always 0, and even if it was not, its value was not
meaningful in any way, due to floorings.

--------------------------------------------------------------------------------
6a475375dd | Adam Borowski | 2012-10-03 19:04:35 +0200

Unduplicate the code for calculating AC a monster gets from armour.
(Currently, it's just shield ? 0 : base + enchantment, we can give them
skill or what else.)

--------------------------------------------------------------------------------
ca3126fcf9 | Adam Borowski | 2012-10-03 19:04:35 +0200

Floor monster EV on query time rather than upon wearing armour.
Otherwise, going below 0 would permanently raise their EV if they ever take
that armour off.

Also, the floor is now at 0 rather than 1.

--------------------------------------------------------------------------------
982b7ac1cb | Adam Borowski | 2012-10-03 19:04:35 +0200

Make melee combat use common AC code.
No functionality changes here, as melee always use regular AC rules.

--------------------------------------------------------------------------------
55a2e7c8ec | Adam Borowski | 2012-10-03 19:04:35 +0200

Give all actors gdr_perc() (for now, always 0 for monsters).

--------------------------------------------------------------------------------
5bd651d33b | Adam Borowski | 2012-10-03 19:04:34 +0200

Disable an Orc entry vault and two Lab endings.
There's nothing fun in traps that you know for certain are there.  Before,
you had the boring option of sitting there for the guaranteed chance to find
them; that's gone but the traps are no less pointless.

One of Ossuaries is not much better.

--------------------------------------------------------------------------------
f82b1bd9fd | Adam Borowski | 2012-10-03 19:04:34 +0200

Talk about "waiting" not "searching" when trying to rest with full hp.
It might be nice to let people stop accidental waits, I for one often waste
food and piety due to a typo.  This couldn't be done before because of the
need to sit and search.  There still are _some_ reasons to wait: having
hostile summons on the other side of stairs, or waiting for a rod to
recharge, yet both could be checked for in the code.

--------------------------------------------------------------------------------
9802b5fc67 | Adam Borowski | 2012-10-03 19:04:34 +0200

Rename CMD_SEARCH to CMD_WAIT.
Also, fix the help claiming that the center arrow ("numpad-5") will wait a
single turn: it waits 100, with or without NumLock.

--------------------------------------------------------------------------------
c044a101ff | Adam Borowski | 2012-10-03 19:04:34 +0200

Make searching for traps deterministic.
Spending more time doesn't help.

The formula doesn't make sense, needs to be not merely adjusted but made
from the ground up.

--------------------------------------------------------------------------------
c3019c61ed | Adam Borowski | 2012-10-03 19:04:33 +0200

Fix a couple of Signing Sword keys.

--------------------------------------------------------------------------------
a6822c8da1 | Adam Borowski | 2012-10-03 19:04:33 +0200

Remove a number of old includeable files.

--------------------------------------------------------------------------------
a41f79d1ad | ontoclasm | 2012-10-03 11:59:05 -0500

Scroll tile tweaks

--------------------------------------------------------------------------------
d596bd2d69 | Chris Campbell | 2012-10-03 17:36:35 +0100

Merge branch 'master' into vehumet

--------------------------------------------------------------------------------
7813cddb84 | Chris Campbell | 2012-10-03 17:33:18 +0100

Increase the duration of Vehumet spell offers, add a more prompt

--------------------------------------------------------------------------------
105fac42c8 | Chris Campbell | 2012-10-03 17:28:42 +0100

Properly set Vehumet spell gift timeouts based on the memorised spell

--------------------------------------------------------------------------------
84104c68b5 | Raphael Langella | 2012-10-03 17:15:29 +0200

Remove trailing spaces.

--------------------------------------------------------------------------------
98c144f9a7 | Raphael Langella | 2012-10-03 17:14:42 +0200

Fix enter not working in shops (#6279).

--------------------------------------------------------------------------------
5952ff4950 | Raphael Langella | 2012-10-03 17:13:03 +0200

List available shop types when failing to create one in wizmode.

--------------------------------------------------------------------------------
1108c5d9af | Raphael Langella | 2012-10-03 17:13:01 +0200

Remove a leading space in a quote.

--------------------------------------------------------------------------------
b67b8da022 | ontoclasm | 2012-10-02 22:04:20 -0500

Roxanne tile

--------------------------------------------------------------------------------
4deeb2b0dd | ontoclasm | 2012-10-02 20:55:10 -0500

Demonic plant tile

--------------------------------------------------------------------------------
43c7256422 | ontoclasm | 2012-10-02 20:32:47 -0500

Yred altar (roctavian - 5764)

--------------------------------------------------------------------------------
dafe93aba2 | ontoclasm | 2012-10-02 20:22:59 -0500

Eyes (roctavian - 5903)

--------------------------------------------------------------------------------
535ce609a4 | ontoclasm | 2012-10-02 20:16:49 -0500

Skeletons (roctavian - 5903)

--------------------------------------------------------------------------------
ff127d4149 | ontoclasm | 2012-10-02 19:41:33 -0500

Curse toe and efreet bottle (white_noise - 6226/6185)

--------------------------------------------------------------------------------
2421389f99 | ontoclasm | 2012-10-02 19:30:21 -0500

Mennas and quasit (denzi - 6246)

--------------------------------------------------------------------------------
f3be8e257c | Translators | 2012-10-03 00:54:10 +0200

Transifex sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
7f60bb5054 | Raphael Langella | 2012-10-02 14:58:40 +0200

Delete the staff description.

--------------------------------------------------------------------------------
229a96d7b7 | Translators | 2012-10-02 12:46:29 +0200

Transifex format fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
4ece051fb8 | Chris Campbell | 2012-10-01 21:59:29 +0100

Add a prompt for transforming when it would cause a stat to be reduced to zero
Currently only triggers for statue form's dex reduction (bat form has a
separate check already) and doesn't handle equipment getting melded,
which it ideally should.

--------------------------------------------------------------------------------
f4e3db5c76 | elliptic | 2012-10-01 14:48:35 -0400

Remove false statement from Fighter description.
Berserkers have the same starting HP.

--------------------------------------------------------------------------------
28ec59b277 | elliptic | 2012-10-01 14:45:51 -0400

Remove buckler from gladiator starting kit.
People argued about which of Gl and Fi was better, but one thing that is
certainly true is that they were quite similar. This is another step towards
greater differentiation between them. In compensation for the lost buckler,
gladiators got a little more dodging.

Current differences:
Gl: higher weapon skill, leather armour, dodging skill, helmet, nets
Fi: higher fighting skill, scale mail, armour skill, shield

--------------------------------------------------------------------------------
1a0000d662 | Translators | 2012-10-01 18:13:19 +0200

Transifex sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
06f1900265 | Raphael Langella | 2012-10-01 18:13:18 +0200

Fix make tx-commit not working if changes are staged.

--------------------------------------------------------------------------------
cae65ffbeb | Raphael Langella | 2012-10-01 18:13:18 +0200

Remove obsolete MAP_FIND_F description.

--------------------------------------------------------------------------------
c47bd9ac7d | Raphael Langella | 2012-10-01 18:13:18 +0200

Change transifex commands to pull all translations, not only reviewed ones.

--------------------------------------------------------------------------------
985f08811f | Raphael Langella | 2012-10-01 18:13:18 +0200

Fix make tx-txt ignoring english files.

--------------------------------------------------------------------------------
a14d09480e | Translators | 2012-10-01 18:13:18 +0200

Transifex format fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
0debd0f41e | Adam Borowski | 2012-10-01 13:07:51 +0200

Manual updates via the wiki.

--------------------------------------------------------------------------------
f4336202a8 | Adam Borowski | 2012-10-01 03:31:39 +0200

Make the '=' glyph produce runed doors.
By now, any secret doors can be assumed to be either gone, or be in areas no
one cares about (or it'll crash, regular levels have been taken care of by
massive application of --mapstat).  Which says something bad about the
tutorial, which has been inoperative until this commit (it'll still speak
about secrets).

--------------------------------------------------------------------------------
4018bef01b | Adam Borowski | 2012-10-01 03:01:50 +0200

Typo fixes.

--------------------------------------------------------------------------------
eb02880031 | Adam Borowski | 2012-10-01 02:53:56 +0200

Update polish translations for recent changes.

--------------------------------------------------------------------------------
bc3ef692c6 | Adam Borowski | 2012-10-01 02:53:53 +0200

Remove stray descriptions for the staff of enchantment.

--------------------------------------------------------------------------------
be70476ddd | Adam Borowski | 2012-10-01 01:44:53 +0200

Set the 0.11 date in the changelog. (cherry picked from commit 
8a98804c85bc61737d8bd7ca6c5e593a44f9f5ab)

--------------------------------------------------------------------------------
8553e6c049 | ontoclasm | 2012-09-30 15:30:53 -0500

Embiggen troll skeletons

--------------------------------------------------------------------------------
104b006d6d | Adam Borowski | 2012-09-30 18:50:22 +0200

Remove an unused monster enchantment.

--------------------------------------------------------------------------------
33415038db | Adam Borowski | 2012-09-30 18:50:21 +0200

Fix two future breakages.

--------------------------------------------------------------------------------
42cfbbb85a | David Lawrence Ramsey | 2012-09-29 22:44:26 -0500

Comment fixes.

--------------------------------------------------------------------------------
a88fed2d5e | elliptic | 2012-09-29 23:34:11 -0400

Player Lua: you.conservation(), you.res_corr().

--------------------------------------------------------------------------------
7daacb1331 | Chris Campbell | 2012-09-29 23:11:41 +0100

Remove some more references to TSO permanent allies

--------------------------------------------------------------------------------
175e105c54 | Chris Campbell | 2012-09-29 23:09:25 +0100

Remove TSO's (mostly unused) holy weapon and rN+ armour blessings
These only ever showed up if you enslaved a monster while worshipping
TSO, and don't have any real use since permanent allies from TSO are
long gone (other than possible abuses to get free brands - before
b4e6954b9c807 it could be used much more easily to get free holy brands
with Tukima's Dance, for example).

--------------------------------------------------------------------------------
1c984df8f4 | Chris Campbell | 2012-09-29 17:32:56 +0100

Remove bumblebees
Killer/queen bees and wasps already cover pretty much all the bases in
terms of flying poisonous things - bumblebees almost never showed up
and when they did they didn't do anything interesting.

--------------------------------------------------------------------------------
6d822633cb | Chris Campbell | 2012-09-29 17:32:01 +0100

Increase Tukima's Dance to level 5, scale the weapons up to max power faster
For a while it was broken and always cast at max power which made it
pretty good (but too strong for a level 3 spell, and having no
scaling with spellpower is bad), but after that was fixed the heavy
scaling made it very weak again. It now scales up to max power faster.

--------------------------------------------------------------------------------
839d1ccbdb | David Lawrence Ramsey | 2012-09-29 07:27:28 -0500

Add wording and punctuation fixes to new Singing Sword lines.

--------------------------------------------------------------------------------
9211612966 | David Lawrence Ramsey | 2012-09-29 06:58:51 -0500

Add spelling fixes.

--------------------------------------------------------------------------------
74732796e6 | David Ploog | 2012-09-29 12:43:40 +0200

Singing Sword speech lines (forum)

--------------------------------------------------------------------------------
f1a675d44f | Raphael Langella | 2012-09-29 11:02:54 +0200

Change cleave parameters to use attacker actor instead of pos.

--------------------------------------------------------------------------------
d1b7b627a9 | Raphael Langella | 2012-09-29 10:54:56 +0200

Fix cleaving being able to attack rock worm (#6268).

--------------------------------------------------------------------------------
ac138baebf | Neil Moore | 2012-09-28 23:51:36 -0400

Change abominations to lightred.
There was some concern about confusion with berserk orb guardians.
Lightred was the colour of maximum-quality abominations under the old
(0.9 or so) scheme.

--------------------------------------------------------------------------------
30b06ea03f | Neil Moore | 2012-09-28 23:26:16 -0400

Re-add tile randomisation for abominations.
Abominations from old saves will use the first tile (and incidentally
keep their custom console colour), but new abominations will pick a
random tile.

It might make sense to reduce the tile selection for large abominations
and re-use some of the tiles for other things.  More radically, we could
use just one tile for large abominations and one for small.

--------------------------------------------------------------------------------
5a09c0d64d | Brendan Hickey | 2012-09-28 23:05:55 -0400

Abominations are red
Free up other colours for other X's and x's.

--------------------------------------------------------------------------------
4914782177 | Chris Campbell | 2012-09-29 02:14:17 +0100

Revert some unique descriptions, fix various pronouns

--------------------------------------------------------------------------------
db982b8370 | elliptic | 2012-09-28 20:12:06 -0400

Documentation for dump_on_save.
Apparently git apply doesn't work properly or something, so this part of the
original patch didn't get applied.

--------------------------------------------------------------------------------
38fb632dac | Chris Campbell | 2012-09-28 19:29:24 +0100

Unify checks for liquefaction, don't slow stationary monsters

--------------------------------------------------------------------------------
2bd00910a8 | Chris Campbell | 2012-09-28 17:35:22 +0100

Reduce battleaxe and exec axe damage a little more

--------------------------------------------------------------------------------
b95dd75554 | Chris Campbell | 2012-09-28 03:30:21 +0100

Fix a Lair vault that couldn't be placed (HangedMan)

--------------------------------------------------------------------------------
f3a8a51ea7 | elliptic | 2012-09-27 20:18:21 -0400

Make dumping via lua silent.

--------------------------------------------------------------------------------
767a7b0cb8 | elliptic | 2012-09-27 20:13:32 -0400

Lua wrap dump_char().

--------------------------------------------------------------------------------
ccf6f9e495 | elliptic | 2012-09-27 20:13:32 -0400

Add dump_on_save option (elliott).
Option defaults to true and automatically creates/updates your character dump
whenever you save the game. Patch contributed by elliott.

--------------------------------------------------------------------------------
12ebb64f5b | Adam Borowski | 2012-09-27 23:05:58 +0200

Spew more data in the zombie size asset.

--------------------------------------------------------------------------------
ec03a1d11c | Adam Borowski | 2012-09-27 23:05:58 +0200

Add a comment.

--------------------------------------------------------------------------------
c919b03de7 | Adam Borowski | 2012-09-27 23:05:58 +0200

Be more guessful for initfile weapon selection.
People speak about an "axe user", not having in mind the exact puny item
that's being upgraded the first time an orc drops a war axe.

--------------------------------------------------------------------------------
79feb99c9e | Adam Borowski | 2012-09-27 23:05:58 +0200

Don't silently ignore --mapstat.

--------------------------------------------------------------------------------
ab6d0109cd | Adam Borowski | 2012-09-27 23:05:58 +0200

Typo fix.

--------------------------------------------------------------------------------
2e6b7f70fa | Chris Campbell | 2012-09-27 16:57:22 +0100

Make the Screaming Sword violate sanctuary
Thanks to elliott for suggesting it when I asked for a way to kill
something under sanctuary without breaking it!

--------------------------------------------------------------------------------
7d9880386f | Raphael Langella | 2012-09-27 11:34:51 +0200

Fix rod generation in vaults being 5 times higher than it should.
Bug introduced by fea71b51. Only one staff in 10 was turned into a rod,
not 1 in 2.

--------------------------------------------------------------------------------
6306e06713 | elliptic | 2012-09-26 22:02:32 -0400

Player Lua: you.breath_timeout, extra_resistant, mighty, agile, brilliant.

--------------------------------------------------------------------------------
385b9616e6 | Neil Moore | 2012-09-26 18:25:50 -0400

Update shopping list count after actions (chrisoelmueller).
Deleting an item, in particular, failed to update the header.

--------------------------------------------------------------------------------
19e8c820ad | Raphael Langella | 2012-09-26 23:22:41 +0200

Prevent monsters from casting heal other on the player.

--------------------------------------------------------------------------------
b361e93e35 | Raphael Langella | 2012-09-26 23:22:41 +0200

Fix orc priests and high priests not casting heal other.
Move the spell out of the emergency slot. For high priests, it replaces
animate dead, and they also get back their minor healing.
Possibly, priests should also have their minor healing back?
Maybe orc sorcerers could have their animate dead replaced too, but with what?

Also, seems like they don' cast it very often, might need to be buffed a bit.

--------------------------------------------------------------------------------
008394b001 | Raphael Langella | 2012-09-26 23:22:41 +0200

Don't crash when loading wizmode saves with skills above 27.

--------------------------------------------------------------------------------
7caf7d399e | Neil Moore | 2012-09-26 13:01:18 -0400

No message when distortion fails to teleport a monster (78291).
All other occurrences of "You feel a strange sense of stasis" result
from the *player* being unable to teleport.

--------------------------------------------------------------------------------
6b70cd7667 | elliptic | 2012-09-26 04:31:00 -0400

Player Lua: you.regenerating().
Doesn't distinguish between regeneration spell and Trog's Hand.

--------------------------------------------------------------------------------
288999827c | Neil Moore | 2012-09-25 18:06:14 -0400

Fix a few list option examples.

--------------------------------------------------------------------------------
4f57ead0f9 | elliptic | 2012-09-25 17:55:25 -0400

Move a couple of functions from dlua to clua.
Specifically, you.have_orb(), you.have_rune(), and you.num_runes().

--------------------------------------------------------------------------------
dbda629da1 | Neil Moore | 2012-09-25 17:54:46 -0400

Add rriegs to CREDITS.txt.

--------------------------------------------------------------------------------
073c8638a8 | Neil Moore | 2012-09-25 15:55:21 -0400

Correctly remove items from list options.
Turns out we were just moving them to the end, because I misunderstood
the STL 'remove' algorithm.

--------------------------------------------------------------------------------
b394d9fe2c | Neil Moore | 2012-09-25 15:55:21 -0400

Support message_colour -= foo.

--------------------------------------------------------------------------------
32b1460edc | elliptic | 2012-09-25 14:44:51 -0400

Player Lua: you.silencing().
Previously you could just tell whether your square was silenced, not whether
it was you doing the silencing.

--------------------------------------------------------------------------------
fdeb6087f7 | Raphael Langella | 2012-09-25 12:06:38 +0200

Cleave don't hurt neutrals.
If they let you walk through them, it makes sense that they also get out
of your axe's way.
The check is done twice, when acquiring targets, and also immediately
before attacking them. So if the monster changes its attitude mid-swing
(eg: you've killed Pikel), you won't accidentally attack it.

--------------------------------------------------------------------------------
8017541128 | Raphael Langella | 2012-09-25 12:06:38 +0200

Getting a god gift stops auto_explore.
Can happen with auto_sacrifice.

--------------------------------------------------------------------------------
b5292b15e4 | elliptic | 2012-09-24 20:01:35 -0400

Add player Lua: you.on_fire() and you.petrifying().

--------------------------------------------------------------------------------
ef187830f0 | Raphael Langella | 2012-09-24 21:27:49 +0200

Add a lua call to check for touch UI.
Can be useful to share a config file between desktop and android version.

--------------------------------------------------------------------------------
bccc4d36c1 | Raphael Langella | 2012-09-24 21:17:38 +0200

Update sdl-android submodule.

--------------------------------------------------------------------------------
e855a26bfb | Raphael Langella | 2012-09-24 15:58:00 +0200

Update the android build documentation.

--------------------------------------------------------------------------------
b8316f97e0 | Raphael Langella | 2012-09-24 15:57:25 +0200

Generate the src link in sdl-android if it doesn't exists.

--------------------------------------------------------------------------------
57a9bfe862 | David Lawrence Ramsey | 2012-09-24 07:31:10 -0500

Generalize Geryon pronoun reference.

--------------------------------------------------------------------------------
763911e997 | Chris Campbell | 2012-09-24 03:10:01 +0100

Make sure Geryon drops his horn before leaving the level, add a message

--------------------------------------------------------------------------------
07e2a902cb | Chris Campbell | 2012-09-24 00:45:07 +0100

Don't multiply torment/agony damage with quad damage

--------------------------------------------------------------------------------
6bb16ee927 | Chris Campbell | 2012-09-24 00:45:06 +0100

Fix monster torment damage not being reduced by rN

--------------------------------------------------------------------------------
9e52e41456 | Raphael Langella | 2012-09-24 01:15:25 +0200

Fix dangling prompt in stop_attack_prompt.

--------------------------------------------------------------------------------
bac0995c2f | Raphael Langella | 2012-09-24 01:03:01 +0200

Properly handle prompts and fumbling with ctrl+dir cleaving attacks.
Also fix a very minor info leak. When fumbling after a ctrl+dir attack
it meant that there was a monster. Not anymore. You can fumble when
attacking an empty cell.

--------------------------------------------------------------------------------
0824a09233 | Raphael Langella | 2012-09-24 00:38:40 +0200

Only do handle_phase_attempted() once when cleaving.
It fixes a number of issues:
  * You get a single stop attack prompt for all targets
  * No more fumbling for each target
  * Hunger cost isn't multiplied by targets

Still broken for ctrl+dir attacks.

--------------------------------------------------------------------------------
07b43754a5 | Adam Borowski | 2012-09-24 00:18:56 +0200

Don't crash when > 8 octorings are generated in --test unrand.
That's a rare occurence, but it just happened for me.

--------------------------------------------------------------------------------
ecffaec106 | Neil Moore | 2012-09-23 12:05:38 -0400

Allow "lang = latviešu" and two 7-bit versions.

--------------------------------------------------------------------------------
4756cb1c49 | Chris Oelmueller | 2012-09-23 12:05:33 -0400

Add another English alias for LANG_LV
While Latvian is the official name of the language in question,
the synonymous term Lettish finds sufficient use as well.

--------------------------------------------------------------------------------
32a4b48f9c | Chris Oelmueller | 2012-09-23 12:05:26 -0400

Fix language name typo

--------------------------------------------------------------------------------
3d996bfcf1 | David Lawrence Ramsey | 2012-09-23 08:09:58 -0500

Add indentation fixes.

--------------------------------------------------------------------------------
4fbd7af92c | elliptic | 2012-09-23 07:19:03 -0400

Provide a shortcut for restricting stash searches to the current level.
Prefixing a search with @ restricts it to the level you are on.

--------------------------------------------------------------------------------
f15774da89 | Neil Moore | 2012-09-23 04:13:58 -0400

Update CREDITS.txt and crawl-ref-cia
Add chrisoelmueller and dtsund to credits, add HangedMan to the CIA hook,
and move frogbotherer to the developer section of the CIA hook.

--------------------------------------------------------------------------------
627296ba69 | Adam Borowski | 2012-09-23 01:12:59 +0200

Crudely move defaults out of init.txt
They should probably get sorted into proper places, and init.txt should be
reviewed about should be there commented out and should not.

Even though this commit mostly sweeps settings under the rug, Crawl can
finally work with an empty config file.

--------------------------------------------------------------------------------
c3f69547bb | Jason Van | 2012-09-23 00:02:53 +0200

Gives the no_pickup item property to the loot in Tomb/Elf:$
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
c4326c8df1 | Florian Diebold | 2012-09-22 23:39:52 +0200

Webtiles: Make it possible to choose between bilinear and nearest-neighbour 
filtering for the tile scaling; make the latter the default.

--------------------------------------------------------------------------------
641ea97bc1 | Florian Diebold | 2012-09-22 22:25:55 +0200

Webtiles: Determine glyph mode colour scheme from the stylesheet.
This would allow customizing the colour scheme with a custom
stylesheet, and also removes one point where the colours have to be
changed. Glyph mode colours could still be specified differently by
using the additional .glyph class in a css rule.

--------------------------------------------------------------------------------
d1de86a807 | Florian Diebold | 2012-09-22 22:06:43 +0200

Webtiles colour scheme tweaks.

--------------------------------------------------------------------------------
b80780664d | ontoclasm | 2012-09-22 14:34:16 -0500

Make normal jewellery dark, randarts bright
All unrand jewels were already elemental colors aside from Cekugob and
Robustness, so I made those SILVER and GOLD respectively.

--------------------------------------------------------------------------------
38374f519e | Neil Moore | 2012-09-22 01:48:19 -0400

Allow teleporters to work outside the abyss.

--------------------------------------------------------------------------------
c950061b3a | Chris Campbell | 2012-09-22 03:37:17 +0100

Remove some references to staves being doublehanded

--------------------------------------------------------------------------------
087851d9f0 | Adam Borowski | 2012-09-22 02:06:53 +0200

Don't fsync() --no-save saves.
The temp file is still needed because the "game" might move through levels,
but a pre-deleted file is quite unlikely to require durable storage.

--------------------------------------------------------------------------------
b16ce641bc | Adam Borowski | 2012-09-22 01:54:19 +0200

Don't dump regular Pan exits.

--------------------------------------------------------------------------------
57fc3d67f3 | Adam Borowski | 2012-09-22 01:52:49 +0200

Fix vaults generated at some stages not being dumped.

--------------------------------------------------------------------------------
3842138bd0 | Adam Borowski | 2012-09-22 00:19:58 +0200

Fix two crasher bugs when walking long enough in the Abyss.
_you_vault_list would overflow once you found 256 vaults that got shifted
away.  env.props["level_{vaults,extra}_key"] could potentially overflow as
well, although the latter would require running with an amulet of statis on
as abyssal "new area" teleports cleared that prop.

This commit also fixes Pan vault info keeping only the last level generated;
Pan char dumps get quite spammy now.  Perhaps refcounting them would be
better?

--------------------------------------------------------------------------------
357f8d0d6a | Adam Borowski | 2012-09-22 00:19:58 +0200

A test for abyssal shifts.

--------------------------------------------------------------------------------
c05688fa6a | Adam Borowski | 2012-09-22 00:19:58 +0200

Allow --test scripts that are disabled by default.
Place them in test/big/, they need to be included on the command line
to be run.

--------------------------------------------------------------------------------
cb359bb5f2 | Florian Diebold | 2012-09-21 20:18:51 +0200

Change the colour scheme for webtiles text (in particular, glyph mode).
The old colours were based on the local tiles version and were
probably fine for that, but were pretty ugly (in my opinion) for the
glyph mode dungeon view. The new colour scheme is based on my
terminal. Of course, if someone who plays more console crawl than I
has a better colour scheme, I'm listening.

This change is mostly supposed to make glyph mode look a bit nicer,
but I changed all the colours for consistency. We'll see if anyone
cares.

--------------------------------------------------------------------------------
1700bcb9cd | Florian Diebold | 2012-09-21 20:18:51 +0200

Prevent foreground and background colours from being the same in webtiles glyph 
mode.
Compare libunix.cc:625.

--------------------------------------------------------------------------------
30fcf4f9f6 | Chris Campbell | 2012-09-21 14:29:32 +0100

Add messages for when a good god starts their wrath
Previously if you abandoned a good god for a neutral one and then
converted to evil after that (triggering good god wrath) there was no
message to indicate it. (If you abandon directly for evil/chaos there
is already a message, though).

--------------------------------------------------------------------------------
e66ecfcc40 | Chris Campbell | 2012-09-21 14:29:31 +0100

Set TSO penance the normal way instead of upon worshipping an evil god

--------------------------------------------------------------------------------
cc8179a0c4 | Chris Campbell | 2012-09-21 14:29:30 +0100

Remove a zombie from an entry vault
It gives far too much experience for how easy it is to kill, not sure
why it's valued so highly despite being speed 4 (better would be to
fix that itself).

--------------------------------------------------------------------------------
5d19e146a5 | Translators | 2012-09-21 14:45:33 +0200

Transifex sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
7dd11a125c | Translators | 2012-09-21 13:55:54 +0200

Translation formatting fixes.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
65263f0973 | Raphael Langella | 2012-09-21 12:33:15 +0200

Improve the slaying description.
Hand-to-hand implies unarmed, melee is more generic. Missile combat is
weird too, I changed it to ranged combat.

--------------------------------------------------------------------------------
5ec3fcadff | Adam Borowski | 2012-09-21 12:20:08 +0200

Make breath attacks conflict with breathlessness.

--------------------------------------------------------------------------------
5090c6f3ec | Adam Borowski | 2012-09-21 12:20:08 +0200

An indentation fix.

--------------------------------------------------------------------------------
62adbb90e0 | Adam Borowski | 2012-09-21 12:20:08 +0200

Reduce iterations in the krakens arena test.
Unlike, say, miscasts, there is little randomness there: a kraken dies
either to a blow to its head, tentacle, or tentacle fragment, multipled
by bleeding/not bleeding, or the living or spectral one.  No need to
waste much CPU repeating it over and over.

--------------------------------------------------------------------------------
8f4b1332df | ontoclasm | 2012-09-21 04:20:28 -0500

Additional jewellery descriptions

--------------------------------------------------------------------------------
8544439467 | Neil Moore | 2012-09-21 03:22:45 -0400

Fix ego names in &^ia

--------------------------------------------------------------------------------
e954582b37 | Neil Moore | 2012-09-21 03:09:10 -0400

Actually display &^i prompt.

--------------------------------------------------------------------------------
e28d4e4c18 | Neil Moore | 2012-09-21 03:09:10 -0400

Don't crash on &t, &^ib with an empty inventory.

--------------------------------------------------------------------------------
a9361b8256 | ontoclasm | 2012-09-21 00:38:22 -0500

Rings (white_noise, 6189)

--------------------------------------------------------------------------------
883c4644af | Neil Moore | 2012-09-20 12:48:52 -0400

Rescale Vaults wall type probabilities (#6244).
The old probabilities were:
	crystal	metal	stone	rock
V:1	0%	0%	67%	33%
V:2	0%	20%	80%	0%
V:3	0%	40%	60%	0%
V:4	10%	54%	36%	0%
V:5	10%	72%	18%	0%
V:6-8	10%	90%	0%	0%

The new probabilities are:
	crystal	metal	stone	rock
V:1	0%	0%	67%	33%
V:2	0%	33%	67%	0%
V:3	10%	60%	30%	0%
V:4-5	10%	90%	0%	0%

Thanks to HangedMan for pointing out the relevant code.

--------------------------------------------------------------------------------
28362c49c6 | Neil Moore | 2012-09-20 12:03:45 -0400

Check dungeon connectivity with _dgn_square_is_passable.
That is, opaque vaults are considered to cut the level for the purposes
of hatch placement and D:1 vetoes.

Fixes #6247.

This partially reverts commit 6f64354a69a1acde36cd406dcfcfcda928f4b78e.

--------------------------------------------------------------------------------
91ca84fe31 | Neil Moore | 2012-09-20 11:53:20 -0400

Copy mask and (some) properties when ruining a square.
This avoids creating isolated transparent or non-no_rtele_into squares.
MMT_MIMIC is not copied, and only a few properties (no_cloud_gen,
no_*tele_into, no_tide, and no_submerge) are copied.

This will allow us to go back to having opaque vaults actually count as
disconnecting the level for purposes of vetos.

--------------------------------------------------------------------------------
ddfcbced76 | Adam Borowski | 2012-09-20 13:03:57 +0200

Remove zero-width spaces from French descriptions.
Some editor must have added them, and they can cause problems in tiles
(no combining/zero-width character support yet).  Plus, they're utterly
pointless after a real space.

As they're whitespace, I added them to checkwhite.

--------------------------------------------------------------------------------
4e6549d521 | Chris Campbell | 2012-09-20 09:28:34 +0100

Give the robe of Night a passive darkness effect

--------------------------------------------------------------------------------
1db80bed25 | elliptic | 2012-09-20 00:18:48 -0400

Remove the effect of stats on the cost of raising skills to 1.
It was a remnant of the old system in which raising skills to 1 meant
something special, and it was insignificant anyway.

--------------------------------------------------------------------------------
5d399064b6 | elliptic | 2012-09-20 00:10:56 -0400

Fix stats being capped below at zero in situations where they shouldn't be.
Specifically, for checking whether a stat is drained and for output.

You can now get the uncapped stats with you.strength(false), you.intel(false),
and you.dex(false).

--------------------------------------------------------------------------------
ad5ac8db5d | Chris Oelmueller | 2012-09-19 19:13:46 -0400

* Arena sprint: Remove hp definition for Ereshkigal
After the HP buff in 25521f459b32631e2ef493cd7f6c37a3e0cbc042,
she gets 350 HP without requiring manual intervention.

--------------------------------------------------------------------------------
793dd167ac | Neil Moore | 2012-09-19 19:13:45 -0400

Don't crash when using ta with no monsters in sight.

--------------------------------------------------------------------------------
08c2fd73e5 | Raphael Langella | 2012-09-20 00:38:59 +0200

A makefile target to build android using the new submodule.

--------------------------------------------------------------------------------
d64bc72580 | Raphael Langella | 2012-09-20 00:33:44 +0200

Move the Android files out of the root dir.

--------------------------------------------------------------------------------
63eb700e85 | Raphael Langella | 2012-09-20 00:33:44 +0200

Add Telya's android SDL port as a submodule.
It's the version modified by frogbotherer.

--------------------------------------------------------------------------------
ddc6546b3f | Neil Moore | 2012-09-19 11:53:20 -0400

Don't cleave on a self-attack.
rotate_adjacent would pick the same spot for all the cleave hits.  The
third crash at #6238 may be related.

--------------------------------------------------------------------------------
f3c43c2e2e | David Lawrence Ramsey | 2012-09-19 10:19:04 -0500

Add formatting fix.

--------------------------------------------------------------------------------
fec53b0783 | Neil Moore | 2012-09-19 11:16:58 -0400

Fix compilation (oops).

--------------------------------------------------------------------------------
e2ef69087f | Neil Moore | 2012-09-19 11:15:32 -0400

Don't give a message for monster offscreen Drain Life (#6242).

--------------------------------------------------------------------------------
0046b4b75a | Neil Moore | 2012-09-19 11:05:35 -0400

Avoid a kraken-cleaving crash.

--------------------------------------------------------------------------------
3867c10a50 | Neil Moore | 2012-09-19 09:43:09 -0400

Include a header.
Technically alarm() needs unistd.h; and apparently this is more than
a technicality on some systems:
  https://crawl.develz.org/tavern/viewtopic.php?f=9&t=5791

--------------------------------------------------------------------------------
7827b0f2ea | Adam Borowski | 2012-09-19 15:41:14 +0200

Force contrib lua if pkg-config is not installed.

--------------------------------------------------------------------------------
27b31c86db | elliptic | 2012-09-19 04:38:36 -0400

Move some multipliers later in the melee damage calculation.
Previously both the 1.5x statue form multiplier and the 0.75x cleave
multiplier were applied in (slightly different) intermediate stages in the
melee damage calculation. This primarily had the effect that they did not
apply to bonuses from weapon enchantment and slaying (and cleave did not
apply to might/berserk). This certainly can be justified, but it made the
effects (and code) significantly more difficult to understand and a casual
poll of players indicated that they didn't expect it.

I've moved these two multipliers near the end of the calculation, right before
stabbing and AC are handled. (This is the same place where the 0.9x multiplier
for speed weapons happens.) The balance effects of this are:

* Statue form is a bit better if you have weapon enchantment and/or slaying.

* Cleave is worse if you have weapon enchantment and/or slaying and/or
  might/berserk.

Statue form seems like it can take a slight buff without being too crazy (and
it isn't used with a weapon often), and the initial feedback on cleave has been
that it needs a nerf anyway.

--------------------------------------------------------------------------------
ff58cbac08 | elliptic | 2012-09-19 04:38:36 -0400

Fix +Dam slaying not increasing the damage of the main unarmed attack.

--------------------------------------------------------------------------------
ad162e1642 | Jesse Luehrs | 2012-09-19 01:41:23 -0500

more useful explosion/cloud targetting
it now tries harder to find a useful place for targetting to default to.
if it can't find a monster to target directly, it looks for a place on
the edge of los which may be able to hit a monster with the
cloud/explosion rather than directly (which is almost always a more
useful default than the player).

this should help make fireball-casting wizards much less frustrating to
play.

--------------------------------------------------------------------------------
ab169d363b | ontoclasm | 2012-09-18 21:24:46 -0500

Give lizard skeletons the right tile

--------------------------------------------------------------------------------
57166e2d8b | Neil Moore | 2012-09-18 20:00:48 -0400

Tag blue_anna_alchemist as mini_float.
Fixes #6240.

Zaba thinks the placement in that report (with stone walls from the
vault as the only point of overlap with the rest of the level) is buggy,
in which case this commit merely papers over the bug for this particular
vault.

--------------------------------------------------------------------------------
f1773a2508 | Adam Borowski | 2012-09-19 01:37:58 +0200

Decapitalize language names.
The string they get compared with is folded into lowercase.

--------------------------------------------------------------------------------
f9b3866a80 | Adam Borowski | 2012-09-19 01:33:46 +0200

Correct wrongly translated desc links.
Keys are always in english.

Also, comment out an empty .pt entry.

--------------------------------------------------------------------------------
fe3c5da61e | Raphael Langella | 2012-09-19 01:06:48 +0200

Add option support for all new languages.

--------------------------------------------------------------------------------
6dcd521c12 | Translators | 2012-09-19 01:06:48 +0200

Transifex sync.
All languages and even not reviewed translations.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
6abc4832de | Translators | 2012-09-19 01:06:48 +0200

Transifex english language sync.
Mostly, quotes references.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
6f968a901e | Translators | 2012-09-19 01:06:48 +0200

Transifex format fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
4eb4ab6f92 | Florian Diebold | 2012-09-18 23:53:06 +0200

Hopefully fix 78291 jumping between the top and bottom of the Webtiles lobby.

--------------------------------------------------------------------------------
24fe729516 | frogbotherer | 2012-09-18 21:55:11 +0100

small changes to Android build script to adapt to latest Pelya SDL port

--------------------------------------------------------------------------------
6baf8564bf | elliptic | 2012-09-18 15:06:59 -0400

Fix choose_stat_gain call asking for the wrong number of returns.

--------------------------------------------------------------------------------
e4cdd90654 | Adam Borowski | 2012-09-18 14:49:21 +0200

Add a missing note on Xom weapon swap, force a --more--.

--------------------------------------------------------------------------------
360bfeef73 | Adam Borowski | 2012-09-18 11:29:50 +0200

Improve the jäger translation of exploding sheep.

--------------------------------------------------------------------------------
e2a7413d2c | Adam Borowski | 2012-09-18 11:29:50 +0200

Git ignore util/fake_pty

--------------------------------------------------------------------------------
801bbe6539 | Adam Borowski | 2012-09-18 11:29:50 +0200

Use symbolic names, not numbers, for tests.
Also, announce when they are finished.

--------------------------------------------------------------------------------
2d52c4abdf | Chris Campbell | 2012-09-17 18:43:03 +0100

Don't trap players in lordsloth_entry_two_stooges

--------------------------------------------------------------------------------
c46bb3a4ec | Chris Campbell | 2012-09-17 18:27:31 +0100

Don't allow cleaving while confused

--------------------------------------------------------------------------------
c58574578b | Chris Campbell | 2012-09-17 18:27:30 +0100

Only apply Slimify to the main attack target while cleaving
Still has the issue that it'll bail out and stop the cleave after you
successfully Slimify the target, though.

--------------------------------------------------------------------------------
3d36f90cf0 | Adam Borowski | 2012-09-17 18:36:06 +0200

Steal the target "make test", make it ./crawl --test and do canned ones.

--------------------------------------------------------------------------------
63922d7863 | Adam Borowski | 2012-09-17 18:36:06 +0200

A tool to run multiple tests concurrently, or without a terminal.
Merely redirecting stdout to /dev/null is not enough: Crawl and ncurses
insist to be able to ioctl the terminal, check the window size, try to read
from stdin and fail if it's in eof state, etc.  Eliminating all such
references would be quite a bit of work (ncurses assumes stdin/stdout are
always a terminal even if newterm() is used), and would be probably too
intrusive to be a faithful test.

Because of no autoconf, the pty code is not very portable, but should work
on Linux and BSD (hopefully including MacOS X).  For a portable
implementation, one could use http://angband.pl/svn/kbtin/trunk/run.c (+
autoconfage), but then, probably running on IRIX, pre-Solaris SunOS, HP UX
or SCO isn't that important... and there are no real ptys on Windows.

--------------------------------------------------------------------------------
1be7ff606b | Adam Borowski | 2012-09-17 18:36:06 +0200

Disable a known failure of a test in --test.
It has been broken for more than two years, and never worked right in the
first place (ie, a bug, not a regression).  It would be good to fix it, but
there's plenty of far worse bugs rotting on Mantis.

I'm disabling this one so it's possible to do automated regression tests
from a cron job.

--------------------------------------------------------------------------------
0157fcd7a5 | Adam Borowski | 2012-09-17 18:36:06 +0200

Don't spam absdepth0 in --test.

--------------------------------------------------------------------------------
1d0dc9989a | Adam Borowski | 2012-09-17 18:36:06 +0200

Disallow lightcyan walls in the Abyss.
Quite a few of new vaults have glass, it's especially wrong if it's a window
next to walls of that colour.

--------------------------------------------------------------------------------
212047b428 | Adam Borowski | 2012-09-17 18:36:05 +0200

Clear stat death on wizmode revival.

--------------------------------------------------------------------------------
7c457e9483 | moxian | 2012-09-17 13:37:57 +0200

Fixed chardump displaying '+'/'-' near an untrainable skill
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
09708f0356 | Raphael Langella | 2012-09-17 13:36:46 +0200

New title image: grabbing the orb (white noise).

--------------------------------------------------------------------------------
d2d27b261d | Chris Campbell | 2012-09-16 23:28:42 +0100

Don't waste a turn when trying to rejoin Lugonu, adjust message
Even if it's a mistake players will only make once, it's not really
necessary to inflict wrath just for trying to convert back. Could still
do with a better message to get across the fact that Lugonu's really
annoyed and won't accept you back until her wrath is done.

--------------------------------------------------------------------------------
cb75eb022d | Chris Campbell | 2012-09-16 23:23:35 +0100

Don't make cancelling prayer on an altar waste a turn
It shouldn't cost a turn just to read about a god, or to be turned down
by a god that won't accept you (god_pitch seems to assume these things
won't cost a turn already, it was just overwridden elsewhere).

--------------------------------------------------------------------------------
72c3fb6d6e | Chris Campbell | 2012-09-16 22:37:01 +0100

Improve a Beogh trap vault
I'm still not entirely convinced by it, but at least now you can't just
pick off all the monsters with a ranged attack and laugh in Beogh's
face.

--------------------------------------------------------------------------------
7226fbd120 | frogbotherer | 2012-09-16 21:34:44 +0100

added new include for Android-specific SDL calls

--------------------------------------------------------------------------------
9f6db03461 | frogbotherer | 2012-09-16 20:51:32 +0100

fix for mantis 6208

--------------------------------------------------------------------------------
e22e892092 | frogbotherer | 2012-09-16 20:51:01 +0100

menu headers that are longer than one line are now spanned across two 
(important for popups on Android)

--------------------------------------------------------------------------------
0f667c1731 | frogbotherer | 2012-09-16 20:47:53 +0100

android:versionName is now informed by build.h (versionCode is still hand-set)

--------------------------------------------------------------------------------
897d76a465 | Neil Moore | 2012-09-16 13:01:38 -0400

One more init.txt fix (drop_filter).

--------------------------------------------------------------------------------
5709ccb630 | Neil Moore | 2012-09-16 12:29:57 -0400

Update options documentation.

--------------------------------------------------------------------------------
b1ada99f30 | Neil Moore | 2012-09-16 12:18:37 -0400

Handle resetting, subtracting for Lua list options.
In particular, handle runrest_{ignore,stop}_message and
runrest_ignore_monster{,_moving}.

--------------------------------------------------------------------------------
110cdd19bf | Chris Campbell | 2012-09-15 22:48:25 +0100

Fix compilation

--------------------------------------------------------------------------------
d66b1aea3f | Raphael Langella | 2012-09-15 23:24:29 +0200

Cleave effect for Axes.
* Additional targets are acquired by rotating from the main target in both
  directions but no more than 3 cells. Solid features block cleaving. On
  open grounds, it attacks 7 cells (all but the opposite one from the main
  target).
  A single wall on the side can block one or two targets since it doesn't go
  all around.
* Additional attacks do 75% damage. Main target still takes full damage.
* Allies don't block cleaving and are not harmed by it unless attacker
  is confused.
* Monsters wielding axes get cleaving too.
* Broad axe, battleaxe and executioner's axe base damage is reduced by 1.
  More nerfing might be needed for the latter 2.
* Cleaving works when attacking empty spaces (useful against invisible
  monsters)
* Monsters dual wielding axes should work.

Thanks to LexAckson for helping with this implementation
(especially rotate_adjacent).

--------------------------------------------------------------------------------
3fab5e4549 | Florian Diebold | 2012-09-15 23:00:04 +0200

Refactor zombie tile picking code.

--------------------------------------------------------------------------------
c987d652f4 | ontoclasm | 2012-09-15 15:44:16 -0500

Undead drakes and krakens

--------------------------------------------------------------------------------
4182588ca3 | David Lawrence Ramsey | 2012-09-15 15:00:42 -0500

Typo fix.

--------------------------------------------------------------------------------
a94a8c090d | Chris Campbell | 2012-09-15 19:00:41 +0100

Seperate hex and charm enhancers, make the spear of Botono a hex enhancer

--------------------------------------------------------------------------------
3f7b754917 | Chris Campbell | 2012-09-15 19:00:41 +0100

Remove a reference to holy spell enhancers

--------------------------------------------------------------------------------
618c8d0d97 | Chris Campbell | 2012-09-15 19:00:40 +0100

Remove staves of enchantment

--------------------------------------------------------------------------------
1ef2bfe016 | Adam Borowski | 2012-09-15 18:49:06 +0200

Don't give DD monsters cursed negatively enchanted gear.
They're the race whose theme makes them most likely to care well for their
gear.

--------------------------------------------------------------------------------
249f4dff1f | Adam Borowski | 2012-09-15 18:49:06 +0200

Denzi's deep dwarf shield tiles (both inventory and worn).

--------------------------------------------------------------------------------
c974fe1235 | Adam Borowski | 2012-09-15 18:49:06 +0200

Extend a comment about disabling shield acquirement.
On a brief reading, elliptic's change made me think he mistakenly disabled
acquirement of shields at all; let's make it more clear.

--------------------------------------------------------------------------------
bfd10be456 | Adam Borowski | 2012-09-15 18:49:06 +0200

Fix "anchovies" and "mmm" ever coming in one sentence.
In a heated but one-sided discussion on IRC (7 people speaking), no one
disagreed with Linley Henzell's opinion about the vile stuff (this line is
already present in Dungeon Crawl 1.1, the oldest extant version).  It
compares unfavourably to cockroaches, urine and vampire mosquito chunks.

According to Wikipedia, anchovies are prepared by letting them rot in brine,
thus being a milder version of surströmming.  Ghouls could possibly have a
different taste, but with opinions like "raw flesh is one thing, anchovies
are another", "ghouls hate them too, even they have limits", I'm going with
dtsund's suggestion of special-casing ghouls but not making them happy.

(this partially reverts commit 243f225a)

--------------------------------------------------------------------------------
1688b385e8 | Adam Borowski | 2012-09-15 18:49:06 +0200

Allow redefining an item's tile in vaults.
tile: handles the inventory/ground one, wtile: handles the player/monster doll.

It'd be nice to unify them into one setting one day, and have all equipment
tiles have a pair of files by the same name.

--------------------------------------------------------------------------------
d306dd81f3 | Florian Diebold | 2012-09-15 16:09:19 +0200

Fix halo tiles overwriting umbra, contrary to their gameplay effects (#6227).

--------------------------------------------------------------------------------
af4cc0dedc | David Lawrence Ramsey | 2012-09-15 07:46:46 -0500

Consolidate some octopode mutation restriction logic.

--------------------------------------------------------------------------------
dbab234789 | elliptic | 2012-09-15 03:44:13 -0400

Split UNAT_HEADBUTT into UNAT_HEADBUTT and UNAT_PECK.
Combining the two together didn't make that much sense, since it actually
made a beak a bad mutation for a horned character.

--------------------------------------------------------------------------------
a15571c8a7 | elliptic | 2012-09-15 03:44:13 -0400

Don't let octopodes grow horns.
They are too squishy to use them.

--------------------------------------------------------------------------------
0a87f5eab1 | elliptic | 2012-09-15 03:44:13 -0400

Beastly appendage: remove claws, allow horns on beaky chars.
This spell is specifically supposed to be just as good when wielding a weapon
as when unarmed, and claws didn't work for that. Tengu needed an appendage,
and in general horns and beak aren't supposed to conflict, so beak no longer
rules out horn appendage.

--------------------------------------------------------------------------------
91549db2fa | ontoclasm | 2012-09-15 01:33:27 -0500

Assign lasher statues a tile

--------------------------------------------------------------------------------
35e960d1ca | Neil Moore | 2012-09-15 01:22:55 -0400

Fix suppressed monster description (#6228).

--------------------------------------------------------------------------------
29525e4d5d | elliptic | 2012-09-15 00:55:52 -0400

Give berserkers a choice of starting weapon.
It was quite hard to predict which weapon they would get without the choice,
and many races have multiple reasonable options really. If we were still
giving all berserkers axes then there would be good flavour reasons to leave
it at that, but with some races already getting spears or short swords that
doesn't seem to apply.

Now berserkers get a +0 hand axe/mace/spear/short sword, or the option of
claws if they have those.

--------------------------------------------------------------------------------
fb002e247c | elliptic | 2012-09-15 00:44:00 -0400

Remove some skill breakpoints from acquirement code.
* The chance to get CPA from armour acquirement no longer suddenly appears
  at 10 armour skill. Instead, the chance grows steadily all the way from
  0 to 27 skill.

* Previously raising unarmed skill to 8 eliminated the chance of getting a
  plain shield from _try_give_plain_armour(). Since this chance was gameable
  in other ways as well (for instance, by switching to a two-handed weapon
  right before reading acquirement), I just removed the chance altogether.

* You are no longer guaranteed to get a weapon matching your highest skill
  from scroll acquirement if certain spoilery inequalities between your
  skills are met. Instead, scroll acquirement greatly exaggerates the skill
  weightings.

--------------------------------------------------------------------------------
34b8f7e711 | Michael Gagno | 2012-09-14 18:39:46 -0700

Do not place serial_undead on D:1.

--------------------------------------------------------------------------------
d57f8844ed | David Lawrence Ramsey | 2012-09-14 19:57:27 -0500

Add another "enlightened" Crazy Yiuf quote.

--------------------------------------------------------------------------------
243f225a12 | David Lawrence Ramsey | 2012-09-14 19:45:59 -0500

Use the carnivore "Mmm..." message for anchovies with regard to pizza toppings.
In all other cases, "Yeucch..." is used if it's against your
carnivore/herbivore mutations, and anchovies are fish, i.e. meat.

--------------------------------------------------------------------------------
a6e37bbe43 | Florian Diebold | 2012-09-14 22:39:31 +0200

Fix BOMs in Webtiles rc files (#6225).

--------------------------------------------------------------------------------
5ddeb6ab6b | Neil Moore | 2012-09-14 16:09:32 -0400

Update another default file for the new config.
It is currently irrelevant, since Lua-based options cannot tell
the difference between += and = (and even -=), but presumably
we will fix this.

--------------------------------------------------------------------------------
dda72db1a6 | elliptic | 2012-09-14 15:28:17 -0400

Fix passive trap detection chances not scaling properly (rwbarton).

--------------------------------------------------------------------------------
5e62c5f295 | elliptic | 2012-09-14 15:22:21 -0400

Smooth traps skill better.

--------------------------------------------------------------------------------
e75aae3490 | elliptic | 2012-09-14 14:05:10 -0400

Change = to += in init.txt in a lot of lines.
I'm not completely sure I put it in everywhere that makes sense (especially
the commented out lines), but this should be closer to correct.

--------------------------------------------------------------------------------
bb11d42d58 | Neil Moore | 2012-09-14 13:50:18 -0400

Don't make config warnings block webtiles play.

--------------------------------------------------------------------------------
d5911d005f | Neil Moore | 2012-09-14 13:22:14 -0400

Update dat/defaults/* for new config syntax.

--------------------------------------------------------------------------------
6b69483700 | Neil Moore | 2012-09-14 13:14:54 -0400

Update a few more list options.
note_messages, note_monsters, fsim_scale, and fsim_kit.

--------------------------------------------------------------------------------
468f6c3f88 | Neil Moore | 2012-09-14 09:33:28 -0400

Saner rc list options, including reset.
We now support "listopt =" to clear the list, and support "-=" with many
more options.  We also warn when "listopt = foo" is interpreted to mean
"append", because that is likely to change in 0.12.

These changes are intended to go into 0.11, but we'll need to update the
options guide first.

--------------------------------------------------------------------------------
65aa131102 | elliptic | 2012-09-14 04:25:24 -0400

Smooth effects of armour and shields skill on melee.
Previously this wasn't smoothed at all, which meant that getting 0.1 armour
skill made a noticeable difference to your accuracy and unarmed delay, and
other bad stuff like that. This smoothing should approximately keep the same
balance on average, while removing sharp breakpoints like that.

--------------------------------------------------------------------------------
4c00ca000e | elliptic | 2012-09-14 02:10:56 -0400

Some new penance titles.
Previously we had some massive duplication, with five gods using "Sinner" and
two using "Faithless".

--------------------------------------------------------------------------------
fe15d77d85 | elliptic | 2012-09-14 01:34:54 -0400

Change one lich spellset.
The motivation for this change was removing throw frost (they killed one
person with throw frost in 0.4 and not again since, not counting XL 1 deaths
in Abyss). Also, summon undead is just annoying spam that blocks the lich from
using LCS.

New spellset: bolt of draining, slow, invisibility, throw icicle, LCS.

--------------------------------------------------------------------------------
425658acca | David Lawrence Ramsey | 2012-09-13 23:35:09 -0500

Fix compilation.

--------------------------------------------------------------------------------
72158f9c4f | ontoclasm | 2012-09-13 22:32:57 -0500

Polearms (dd)

--------------------------------------------------------------------------------
51dab6dcaf | ontoclasm | 2012-09-13 20:06:31 -0500

Drakes (roctavian)

--------------------------------------------------------------------------------
71d36aa28d | Adam Borowski | 2012-09-14 02:26:34 +0200

Manual updates from the wiki.
(For 0.11).

--------------------------------------------------------------------------------
87e8dfe5f3 | Adam Borowski | 2012-09-14 02:23:31 +0200

Unbreak backtraces on non-Android ARM.
Also, I doubt this works differently on Android on other CPUs, and it
obviously hasn't been ever tested (the build script has ARM hard-coded
in a number of places).

--------------------------------------------------------------------------------
cbd4a6cdf5 | Chris Campbell | 2012-09-13 22:34:47 +0100

Merge branch 'master' into vehumet

--------------------------------------------------------------------------------
8a8741c62b | Chris Campbell | 2012-09-13 20:50:42 +0100

Remove an axe trap reference

--------------------------------------------------------------------------------
e8f6fa46b0 | David Lawrence Ramsey | 2012-09-13 09:34:57 -0500

Fix Mantis 6221: Properly double poison duration for poison-vulnerable players.

--------------------------------------------------------------------------------
b4feed4a70 | Florian Diebold | 2012-09-13 11:37:42 +0200

Webtiles: Fix redrawing with some tile scaling values (#6205).
The problem were non-integer cell sizes, which caused non-integer
sizes for the image area when shifting, which made the drawImage call
fail. There were still artifacts with non-integer cell sizes even with
a fixed drawImage call, so now they're rounded.

--------------------------------------------------------------------------------
12663836a2 | Florian Diebold | 2012-09-13 11:25:26 +0200

Webtiles: Fix another source of ghost games.

--------------------------------------------------------------------------------
6caaae44a7 | ontoclasm | 2012-09-13 02:03:56 -0500

Memorize GUI tile (dd)

--------------------------------------------------------------------------------
511d55f277 | ontoclasm | 2012-09-12 16:16:51 -0500

GUI tiles (dd)

--------------------------------------------------------------------------------
8d17072e09 | elliptic | 2012-09-12 14:02:06 -0400

Fix TRJ capitalization (elliott).

--------------------------------------------------------------------------------
0e41ff7131 | Adam Borowski | 2012-09-12 14:41:16 +0200

Don't teleport players into the gold behind flames vault.
It can spawn as early as D:1.

--------------------------------------------------------------------------------
fc9f1daa0d | Adam Borowski | 2012-09-12 14:21:11 +0200

Rebuild prebuilt yaccage.
Updates: std::-cide, a recursive crash fix.

--------------------------------------------------------------------------------
3cae589e65 | Adam Borowski | 2012-09-12 13:45:37 +0200

Don't produce a wall of trees in a couple of vaults.
If there's a corridor on the other side, it looks really odd.

--------------------------------------------------------------------------------
b191e35443 | Florian Diebold | 2012-09-12 00:44:54 +0200

Fix monsters not being removed from the monster list (#6129).
Because the cell didn't get marked dirty when the monster was killed,
the change was never sent to the client.

--------------------------------------------------------------------------------
10c76b68e1 | Raphael Langella | 2012-09-11 16:44:41 +0200

Add android generated files to .gitignore

--------------------------------------------------------------------------------
bf9a925cdf | Raphael Langella | 2012-09-11 16:44:41 +0200

Print a message upon picking up the Abyssal rune to hint about easier exit.

--------------------------------------------------------------------------------
b4dcc27671 | Chris Campbell | 2012-09-10 23:57:38 +0100

Remove outdated references from options_guide.txt and init.txt

--------------------------------------------------------------------------------
779d630478 | Chris Oelmueller | 2012-09-10 21:20:20 +0200

Enable Donald speech in labyrinths
People just walk around in this maze and never talk. I hate that.

--------------------------------------------------------------------------------
9eb14d95a7 | Adam Borowski | 2012-09-10 21:16:54 +0200

Drop one of redundant definitions of sgn().

--------------------------------------------------------------------------------
7a93823be5 | ontoclasm | 2012-09-10 13:17:51 -0500

New main dungeon tiles (white_noise)

--------------------------------------------------------------------------------
a78192aa9d | Chris Campbell | 2012-09-10 17:46:50 +0100

Don't claim that flight control is lost when it isn't

--------------------------------------------------------------------------------
06f4f327d1 | Chris Campbell | 2012-09-10 17:46:49 +0100

Reword the description for mutation resistance 3
Since there are actually a lot of things that can still mutate you.

--------------------------------------------------------------------------------
eb43362add | Neil Moore | 2012-09-10 04:27:12 -0400

Tiles: Always display the navigation tab when map-viewing.
Handle it in show_map() rather than in _do_display_map() so that
entering the map from (for example) Ctrl-F still switches tabs.
Likewise the mouse control.

I debated moving the map help message ("Move the cursor to view the
level map . . .") into show_map() as well, but I'm not so sure about
that.

Fixes #6204.

--------------------------------------------------------------------------------
a60899f5cf | ontoclasm | 2012-09-10 02:47:20 -0500

Gloom and seething chaos tiles

--------------------------------------------------------------------------------
9740d6198e | Neil Moore | 2012-09-10 03:31:18 -0400

Tiles map: center and show the map cursor right away.
Fixes #6198.

--------------------------------------------------------------------------------
38dc1e3e24 | Neil Moore | 2012-09-10 02:53:43 -0400

Webtiles: Fix F10 on older browsers.
Number.isFinite() is new to ECMAScript 6, so isn't present on all
supported browsers; this caused an error and a failure to layout when
the tile scaling parameter was touched (even if changed back to its old
value).  This would result in seeing only the loading screen, even after
reconnecting or logging out, until the cookie expires or is cleared.

Use the older global isFinite() instead; since we are already coercing
the scaling parameter to Number, there is no difference between the two.

Furthermore, ensure the parameter is positive: it is easy to
inadvertently set it to zero (for example, by deleting the contents of
the field), resulting in no view area.

--------------------------------------------------------------------------------
c9e9fc213e | ontoclasm | 2012-09-10 01:28:51 -0500

Ability and invo tiles (Denzi)

--------------------------------------------------------------------------------
3787ea19ea | ontoclasm | 2012-09-10 00:07:06 -0500

Shop tiles (white_noise)

--------------------------------------------------------------------------------
05d68e07ad | ontoclasm | 2012-09-09 23:30:11 -0500

Animal tiles (white_noise)

--------------------------------------------------------------------------------
a8b65dd64c | ontoclasm | 2012-09-09 20:41:59 -0500

Modified item icons

--------------------------------------------------------------------------------
81a9190975 | Neil Moore | 2012-09-09 20:30:00 -0400

Fix a few fineff mergeability checks.

--------------------------------------------------------------------------------
f64b91e62d | Neil Moore | 2012-09-09 20:30:00 -0400

Fix a crash when fineffs trigger other fineffs.

--------------------------------------------------------------------------------
76e38f8501 | Neil Moore | 2012-09-09 20:30:00 -0400

Fix a memory leak when merging final_effects.

--------------------------------------------------------------------------------
a67535ab0e | Florian Diebold | 2012-09-10 01:45:51 +0200

Also draw the pain mirror icon in Webtiles.

--------------------------------------------------------------------------------
e0c06ecb80 | ontoclasm | 2012-09-09 18:34:56 -0500

Pain mirror status icon (sgrunt)

--------------------------------------------------------------------------------
56ba543465 | Raphael Langella | 2012-09-09 22:09:15 +0200

Add frogbotherer to CREDITS.txt.

--------------------------------------------------------------------------------
28236ca802 | elliptic | 2012-09-09 13:49:08 -0400

Change a couple staves that sneaked by the earlier purge.

--------------------------------------------------------------------------------
9ddb116061 | Neil Moore | 2012-09-09 11:37:47 -0400

Fix an overload that should have been an override.
That const wasn't supposed to be there.

Also, remove an enum that is no longer needed.  It shouldn't have been
added in the first place.

--------------------------------------------------------------------------------
eb3e8b2b07 | Raphael Langella | 2012-09-09 15:29:50 +0200

Switch back to the inventory panel when leaving map mode (#6190).
Would be better to remember which one was active, but at least it's
better than staying on the map command panel.

--------------------------------------------------------------------------------
d75ce2fcae | elliptic | 2012-09-09 02:02:14 -0400

Fix tiles crash with shieldless monsters.

--------------------------------------------------------------------------------
6cf7798c12 | Michael Gagno | 2012-09-08 22:15:54 -0700

Remove some vaults that have been commented out since 2007.

--------------------------------------------------------------------------------
e7642d2696 | elliptic | 2012-09-09 00:25:38 -0400

Fix kill message for drain life (Mantis #6195).

--------------------------------------------------------------------------------
4cfb76e19f | Adam Borowski | 2012-09-09 02:11:30 +0200

Remove extraneous arguments to printfs.

--------------------------------------------------------------------------------
51017f629b | Adam Borowski | 2012-09-09 01:08:27 +0200

Handle Arachne if Xom messes with her weapon.

--------------------------------------------------------------------------------
0445ba8e18 | Adam Borowski | 2012-09-09 01:08:27 +0200

white_noise's update to his Arachne's tile, also a staveless version.
The latter is used only as a base for the corpse, as both items she is
allowed to wield (staff of poison and the Staff of Olgreb) fit the
hard-drawn versions.  Technically, ordinary staves of poison might be
something else than a stick with a green ball at an end, but blah.

This is a slightly deboobified version compared to his submission,
my apologies to connoiseurs.  Sorry guys (and at least one lady)!

--------------------------------------------------------------------------------
40a248776a | Adam Borowski | 2012-09-09 01:08:26 +0200

Add roctavian's dryad and leshy tiles to UNUSED/
They'd be forgotten otherwise.  There are currently no good plans how to fix
the Forest monster set (they proved to be inadequate: damn hard vs melee and
targetted spells, falling like flies to any effects that ignore EV).  While
we'd need some ACy monsters, dryads and leshys can have medium AC if we'd
stretch the theme slightly for bark-like skin, and both have a strong
affinity to trees (animating trees? transforming into one?), so it's not
unlikely the tiles will end up used after all.

--------------------------------------------------------------------------------
95bc78d37a | Adam Borowski | 2012-09-09 01:08:26 +0200

Show shields worn by monsters.
This requires data for left hand offset: this commit includes only orcs and
draconians.

--------------------------------------------------------------------------------
bcdeb4edeb | Adam Borowski | 2012-09-09 01:08:26 +0200

A canned test for notoriously prone to breakage tentacle death.
A yet another crasher has just been cherry-picked to 0.11 without anyone
noticing.
(This is just a test case, not a fix.)

--------------------------------------------------------------------------------
6b5b01df89 | Derrick Sund | 2012-09-09 01:08:26 +0200

Fix converting to Zin giving less starting piety if the altar is in the Orcish 
Mines.

--------------------------------------------------------------------------------
c9bbbc40b9 | Chris Campbell | 2012-09-08 23:57:08 +0100

Don't allow resisting Zotdef stat drain costs

--------------------------------------------------------------------------------
1e1d27acd7 | Raphael Langella | 2012-09-09 00:14:18 +0200

Fix shop interface (#6191).
Still not ideal, should use Enter. But at least they are usable.

--------------------------------------------------------------------------------
fd308f984c | ontoclasm | 2012-09-08 15:45:53 -0500

Fungi (dd, white_noise)

--------------------------------------------------------------------------------
a7be0a1fa2 | Neil Moore | 2012-09-08 16:17:20 -0400

Object-orient final_effect.
This is mostly to avoid the bit-packing of the previous commit.
Admittedly, it's a bit overkill for that.

This could probably use some cleanup: currently we store attacker,
defender, and position in the base class, even though not all subclasses
have those.

--------------------------------------------------------------------------------
c3456a1f7d | Neil Moore | 2012-09-08 16:07:57 -0400

Bleed as a final effect.
Killing a kraken with an attack on one of its tentacles was crashing
when the attack caused bleeding, because the tentacle was killed
by monster::hurt() and hence its position was invalid.

See  !lm @78291 crash 20 -log  for an example.

--------------------------------------------------------------------------------
a128d03354 | Neil Moore | 2012-09-08 16:07:56 -0400

Constification and formatting fix

--------------------------------------------------------------------------------
88c1aa4c97 | ontoclasm | 2012-09-08 15:04:30 -0500

Crystal wall tiles

--------------------------------------------------------------------------------
36f263e20d | ontoclasm | 2012-09-08 14:06:37 -0500

Bone tiles (white_noise)

--------------------------------------------------------------------------------
713c364fd0 | Chris Campbell | 2012-09-08 19:24:09 +0100

Recalculate burden after casting Tukima's dance (#6171)

--------------------------------------------------------------------------------
1285cbb31d | ontoclasm | 2012-09-08 12:18:23 -0500

Humanoid / foo-lord edits (roctavian)

--------------------------------------------------------------------------------
c04c3c159f | Florian Diebold | 2012-09-08 17:23:34 +0200

Webtiles: Do animations on the client and, optionally, in real-time.
Real-time animations are just an experiment and have to be enabled in
the F10 dialog, but this has an advantage even if I choose to remove
them: It prevents a lot of unnecessary tile updates (and thus
bandwidth), especially in places with a lot of water or lava.

Real-time animated torches, altars and wizlab portals look good;
dungeon water and lava doesn't look too bad, but is annoying; and
shoals water is very bad.

--------------------------------------------------------------------------------
f400252832 | frogbotherer | 2012-09-08 13:40:44 +0200

Android port.
2 files are added to the root of the repository:
* AndroidAppSettings.cfg: settings file required for Android SDL port. Will
  change on each minor release to reset configuration.
* AndroidBuild.sh: script called by the Android SDL port to commence building
  the game itself

It might be nice to be able to move them elsewhere, but for now, their
presence here is required.

The build process is documented in docs/develop/android.txt

There's a TOUCH_UI compiler flag which sets all the things specific to a
touch screen interface.

There has been a large amount of changes in the Makefile for redefining where
the dat/, saves/, etc. directories go, because the "install" part of the make
isn't the final destination for these files under Android - the environment we
deploy to is a separate device from the build environment.

There is also a number of changes to the tiles interface. Some are specific
to the TOUCH_UI, but others are also changed in USE_TILE_LOCAL.

Touch only:
* 'a'bilities menu goes straight to menu without prompting first
* tap menu header to toggle/submit
* menu instead of prompt to select which corpse to butcher
* same for eating food from the floor (those 2 could go in local tiles too)
* show_more defaults to false and less --more-- messages
* pickup mode defaults to menu
* defaults for tile_layout_priority is different (commands are more
  important than inventory)
* popup for yes/no prompts, level-up stat gain and swapping rings (should
  be used for all prompts, and probably local tiles too)
* spell casting: force selection menu
* map mode: left-click rather than right-click for mouse mode; autotravel on
  left-click removed
* remove skills training and memorisation panels

Also local tiles (some could also be integrated in webtiles):
* commands below description are clickable
* clickable shopping menu (uses PrecisionMenu)
* split the command panel in 2 (common actions and system commands)
* add a map command panel
* tapping or left-clicking the player is smarter:
  * picks up the item if there's one on the tile, otherwise
  * shows pick-up menu if there's several items on the tile, otherwise
  * traverses stairs (or enters a portal or shop) if one is present, otherwise
  * prays if an altar is present, otherwise
  * waits one turn
* right-clicking the map enters map mode and brings the map commands tab to
  the front; map mode stays until exited rather than upon release of mouse

Some more details can be found in android_patch_notes.txt on #5677 (although
some TODOs are already obsolete).

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
58ccbffacf | Michael Gagno | 2012-09-07 16:24:31 -0700

Merge branch 'new_vaults_layout'
I'm sure there are still some issues to be worked on, and we should still
try to differentiate the monster set from Dungeon. This stuff is ready to be
playtested though, and having a good idea about how the new layout plays
will make it easier to pick monsters that will work in it.

--------------------------------------------------------------------------------
e432ea9b31 | Michael Gagno | 2012-09-07 16:04:57 -0700

A few edits to glass-using Vaults subvaults.

--------------------------------------------------------------------------------
77ca476af9 | Florian Diebold | 2012-09-08 00:48:35 +0200

white_noise's dungeon tile variations by depth (#6106).

--------------------------------------------------------------------------------
46a8e28e12 | David Ploog | 2012-09-08 00:27:19 +0200

Fedhas altar: single fruits

--------------------------------------------------------------------------------
8f65e10ebe | David Ploog | 2012-09-08 00:17:48 +0200

Sultana reduction

--------------------------------------------------------------------------------
4f71410478 | Florian Diebold | 2012-09-07 16:14:47 +0200

Webtiles: Make it possible to disable ttyrec recording.
If no ttyrec_path is given in the config, no recordings will be made.

--------------------------------------------------------------------------------
c8d19eaf1e | David Lawrence Ramsey | 2012-09-07 08:16:37 -0500

Add formatting fix.

--------------------------------------------------------------------------------
b8a108c08b | Michael Gagno | 2012-09-07 00:11:12 -0700

Buff lorocyprocas.
HD increased to 14, from 12. Also, instead of having two 25 damage attacks,
they have one 40 damage attack (with antimagic). This will make them more
effective against AC. Overall it's not a huge buff, and they're still on the
weak end of the '2' demons.

--------------------------------------------------------------------------------
590e017fec | Neil Moore | 2012-09-07 01:09:15 -0400

Select large rocks to wield for Og/Tr with Sandblast.

--------------------------------------------------------------------------------
23618225ff | Ryan Riegel | 2012-09-07 04:41:25 +0200

Clear old maps' items from empty cells when chaging maps.
Signed-off-by: Florian Diebold <flodiebold@gmail.com>

--------------------------------------------------------------------------------
2959f2344f | Chris Campbell | 2012-09-06 22:25:04 +0100

Don't let summons cast Animate Dead or Twisted Res
Balance-wise, it's pretty bad for Shadow Imps from Call Imp to provide
free Animate Dead to summoners at level 2. Could be extended to not
allow summons to summon at all (might be better flavour and
balance overall?), but just preventing them from creating permanent
creatures for now is consistent at least.

--------------------------------------------------------------------------------
837b8c97e8 | Chris Campbell | 2012-09-06 21:28:47 +0100

Do prompt if walking into steam would remove icemail

--------------------------------------------------------------------------------
a18b63e3bf | Chris Campbell | 2012-09-06 21:18:36 +0100

Don't prompt for walking into steam unless on low HP (DracoOmega)
From DracoOmega's patch on #5997 - rather than make it another option
it's just set automatically, though. Could be changed to an option if
absolutely necessary but seems unlikely.

--------------------------------------------------------------------------------
9d6a4c80e0 | Chris Campbell | 2012-09-06 19:19:39 +0100

Convert Jiyva's jelly prayer into an ability
Could do with better messages than just the prayer messages, possibly.

--------------------------------------------------------------------------------
08be67ffc4 | Chris Campbell | 2012-09-06 18:12:41 +0100

Despoilerify another bailey

--------------------------------------------------------------------------------
f48b22095d | Florian Diebold | 2012-09-06 14:34:24 +0200

Show items on traps again in tiles.
I broke this when I refactored the tilepicking code and used
get_cell_show_class to decide what to show on a cell. Obviously, traps
are more important to show in console, but with tiles, we can show
both.

--------------------------------------------------------------------------------
9fa57824fd | Florian Diebold | 2012-09-06 14:25:38 +0200

Regenerate tile_flv every time a level is loaded.
Also, clean the code up a bit.

This prevents stuff like #6166, the only cost being that the position
of e.g. torches changes on every reload. If this works, we don't even
need to save tile_flv.{wall,floor,feat,special}, but I want to test
this a bit before making changes that are hard to revert.

--------------------------------------------------------------------------------
22d13743c8 | Michael Gagno | 2012-09-05 20:10:50 -0700

Attempt to repair serial_hangedman_research placement in Vaults.
I'm not sure if this does it - there might still be a couple of subvaults
placed wrong. I had trouble getting more than a vague description for this
bug. Apparently Grunt knows something about it, so he should have a look at
this.

--------------------------------------------------------------------------------
4062d21ec7 | Michael Gagno | 2012-09-05 18:10:15 -0700

Let soul eaters eat souls.
This gives them the drain life spell. One of their spell slots is
SPELL_MELEE, since without this, things get a bit too spammy. Damage is
similar to smiting, so it's not a huge buff. They still belong as '3' type
demons.

I figure we have enough melee enemies with AF_DRAIN_XP, and soul eaters were
one of the more boring 3's because of that. Also, drain life seems fitting
for a monster with this name.

--------------------------------------------------------------------------------
c45aea9657 | Chris Campbell | 2012-09-06 01:55:08 +0100

Adjust the unique Pan lord entry messages
Make the flavour message more noticeable and explicitly name the Pan
lord.

--------------------------------------------------------------------------------
25521f459b | Michael Gagno | 2012-09-05 17:37:12 -0700

Buff Ereshkigal.
She was the weakest hell lord, aside from Geryon (although even he had more
HP than Ereshkigal). The following changes have been made.

HP: 250 -> 350
Melee: Gain XP-drain melee attack (compensate for loss of bolt of draining)
Spells: Loses bolt of draining, gains silence. Minor healing (emergency
        spell) replaced with major healing.

She still lacks direct killing power, but these changes should make her a
very nasty summoner (her summons are immune to silence).

Bolt of cold was chosen over bolt of draining because it is a more dangerous
spell, and the same resist covers both torment and draining. Her overall
abilities still keep the "negative energy" theme, in my opinion.

A note about the HP: Eresh has good EV, but this isn't enough. She simply
dies too quickly. All of the other hell lords have extremely good defenses
and high HP... there is no reason for Eresh to be so weak.

--------------------------------------------------------------------------------
4946a8ee9c | Chris Campbell | 2012-09-06 01:22:26 +0100

Actually fix Xom effects lasting less than a turn
Probably should've caught this when increasing their duration before,
oops.

--------------------------------------------------------------------------------
4d8b6e907e | Michael Gagno | 2012-09-05 17:14:59 -0700

Do not attempt to place serial_grunt_rogues_gallery in Vaults.
With the new layout, this serial vault doesn't work here. Serial vaults do
work in the branch, but they need to be designed with it in mind.

--------------------------------------------------------------------------------
1f174085c2 | Michael Gagno | 2012-09-05 15:43:40 -0700

Replace some cases of no_tele_into with no_rtele_into.
If you want to teleport into a sealed glass box, it's your fault if you have
no way of escaping. Blocking random teleports is sufficient.

--------------------------------------------------------------------------------
f6ea5cb561 | Adam Borowski | 2012-09-05 11:59:30 +0200

Rename mons_level() to mons_depth().
Rationale: http://www.giantitp.com/comics/oots0012.html

--------------------------------------------------------------------------------
f0a03b5883 | Michael Gagno | 2012-09-05 01:21:55 -0700

Desecretize the layout_vaults subvaults.

--------------------------------------------------------------------------------
4bd594facc | ontoclasm | 2012-09-05 03:07:32 -0500

Mummy tiles (dd)

--------------------------------------------------------------------------------
5682cb9bf9 | ontoclasm | 2012-09-05 03:07:31 -0500

Qblade tiles (dd)

--------------------------------------------------------------------------------
41f1c1a720 | Michael Gagno | 2012-09-05 00:46:27 -0700

Merge branch 'master' into new_vaults_layout
Still need to deal with secret doors - a couple of the subvaults still have
them.

--------------------------------------------------------------------------------
3bc4743eec | Adam Borowski | 2012-09-05 09:42:30 +0200

Remove an outdated comment.

--------------------------------------------------------------------------------
f4c549335f | Michael Gagno | 2012-09-05 00:07:25 -0700

Give moths of suppression M_NO_POLY_TO.
This is for shapeshifters... the suppression aura goes through walls, and
doesn't work well for a monster that constantly polymorphs.

--------------------------------------------------------------------------------
f9b887fb4e | elliptic | 2012-09-05 02:39:16 -0400

Fix some monsters being alerted by smelling blood from their own death.
It makes sense that the blood shouldn't be created until after the damage has
actually been inflicted anyway.

--------------------------------------------------------------------------------
f85a4c9c98 | Neil Moore | 2012-09-05 01:02:35 -0400

Make new-dev IRC instructions more clear.
Also, they really should be registered with nickserv before being
granted access.

--------------------------------------------------------------------------------
47cfca666f | ontoclasm | 2012-09-04 23:59:25 -0500

Brighten adders up a bit

--------------------------------------------------------------------------------
b46da3df91 | ontoclasm | 2012-09-04 23:12:04 -0500

Sabre tiles (dd)

--------------------------------------------------------------------------------
695bd9bb9c | ontoclasm | 2012-09-04 23:12:04 -0500

Give falchions a little extra breadth

--------------------------------------------------------------------------------
9a1d935f2f | Michael Gagno | 2012-09-04 20:00:51 -0700

Add more moths to arena sprint.

--------------------------------------------------------------------------------
cea3b0c874 | Adam Borowski | 2012-09-05 02:16:40 +0200

Suppress merge suppression of moths of suppression.

--------------------------------------------------------------------------------
a9acc623c6 | ontoclasm | 2012-09-04 19:06:14 -0500

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
b3d4177991 | ontoclasm | 2012-09-04 19:04:12 -0500

New silence tile (white_noise)

--------------------------------------------------------------------------------
3f5249c9f4 | Adam Borowski | 2012-09-05 01:34:50 +0200

Nerf bone dragons.

--------------------------------------------------------------------------------
b3dc6df251 | Neil Moore | 2012-09-04 19:13:54 -0400

Buff bone dragons.

--------------------------------------------------------------------------------
cf48fd3926 | Adam Borowski | 2012-09-05 01:05:29 +0200

Reveal a set of doors in sprint_mu.

--------------------------------------------------------------------------------
0addf28a7b | Adam Borowski | 2012-09-04 21:49:47 +0200

Bring shiori_entry_elements into full OSHA compliance.
We can have a version with no handrails somewhere else...

--------------------------------------------------------------------------------
08fe874c18 | Adam Borowski | 2012-09-04 21:36:25 +0200

De-rune a lot of doors.
Note that I left a few with no obvious reason except for the looks and theme.

I did not even start looking at runed doors and restrict_door() in Sprint
maps, and also a few regular big ones (nearly all by due).

--------------------------------------------------------------------------------
8e46d91de1 | Adam Borowski | 2012-09-04 19:05:17 +0200

Get rid of a number of pointless door prompts.

--------------------------------------------------------------------------------
286e9e482e | Adam Borowski | 2012-09-04 19:05:17 +0200

Get rid of secret doors from baileys.
No idea how mapstat skipped them.

--------------------------------------------------------------------------------
7132127e89 | Adam Borowski | 2012-09-04 19:05:16 +0200

Fix a benign off-by-one error.
Not that it really matters outside of bazaars...

--------------------------------------------------------------------------------
d100101052 | Adam Borowski | 2012-09-04 19:05:16 +0200

Mark the top item in grunt_nemelex_the_gamble as unobtainable.
There's no way to get it except for the brief period you're inside -- and
then, you'll prove otherwise by picking it up -- or not.

--------------------------------------------------------------------------------
c323b30a6d | Adam Borowski | 2012-09-04 19:05:15 +0200

Teach db_lint about gates.

--------------------------------------------------------------------------------
f8015afdb2 | Chris Campbell | 2012-09-04 17:50:46 +0100

Adjust the list of scrolls in Zig loot
Replace immolation with torment, make silence a bit more common, add
some amnesia, add the no_pickup tag (although monsters will only pick
up a very few types of scrolls so maybe this was unnecessary).

--------------------------------------------------------------------------------
502641d19d | Chris Campbell | 2012-09-04 17:50:45 +0100

Don't let monsters pick up the loot in Ziggurats

--------------------------------------------------------------------------------
be8529a464 | Chris Campbell | 2012-09-04 17:50:44 +0100

Add a "no_pickup" tag to prevent monsters picking up loot in some vaults
In many cases monsters should be allowed to pick up loot and use it
against the player, but in some places (Ziggurats in particular) it
doesn't achieve much and makes the loot piles much less impressive and
annoying to look through.

--------------------------------------------------------------------------------
17d17ad839 | Raphael Langella | 2012-09-04 17:57:10 +0200

Don't teleport the player upon picking up the abyssal rune.
Let's not make it even easier to steal the rune. At least you have to run.

--------------------------------------------------------------------------------
48b89efee1 | David Lawrence Ramsey | 2012-09-04 10:46:52 -0500

Fix Mantis 6168: Shorten Elyvilon's description to fit in 79x24.
In the process, fix some inaccuracies: your healing powers aren't the
only way to pacify monsters (a wand of healing will also work as long as
you worship Elyvilon), and humanoid is not an accurate description of
sapient races (ever since felids and octopodes were added).

--------------------------------------------------------------------------------
a6b1c907f5 | Michael Gagno | 2012-09-04 00:20:08 -0700

Enable moths of suppression, for testing.
This monster isn't completely finished... a couple of effects are still
missing from the suppression effect. Enough is covered to make this monster
usable for testing, though, and if I delay any longer Wensley will probably
go even crazier than he already is (this is his monster)...

Right now these guys are a rare spawn in Spider (maybe too rare). With the
mon-pick.cc rewrite pending, this isn't such a big deal, since the monster
lists for short branches should be redone anyway.

Currently no vaults place these monsters, since they have a large aura that
goes through walls (this is the sort of monster vaults need to be designed
with in mind). So, they're just a random spawn for now.

--------------------------------------------------------------------------------
3006273fb8 | ontoclasm | 2012-09-03 20:03:41 -0500

Moth of Suppression aura tile

--------------------------------------------------------------------------------
dd4d7357e1 | ontoclasm | 2012-09-03 19:04:26 -0500

Snake tiles

--------------------------------------------------------------------------------
7084af4870 | Adam Borowski | 2012-09-03 23:54:28 +0200

Remove secret doors from Sprint.
They're especially pointless on fixed maps...

--------------------------------------------------------------------------------
5978ae4f02 | Adam Borowski | 2012-09-03 23:30:55 +0200

Paper over "friendly" summons crashing on the arena.
Really, they should track (resursively) their real summoner, but that would
need to be discussed first.

--------------------------------------------------------------------------------
dd37a7539b | Adam Borowski | 2012-09-03 23:03:57 +0200

Merge branch 'glasnost'

--------------------------------------------------------------------------------
22a1fa51f6 | Adam Borowski | 2012-09-03 22:42:30 +0200

A custom explore_stop message for the door vault (and its variants).

--------------------------------------------------------------------------------
67b4f5fa40 | elliptic | 2012-09-03 16:21:31 -0400

Don't give quarterstaves out in wizlab_golubria.

--------------------------------------------------------------------------------
2e8e755db2 | Neil Moore | 2012-09-03 16:12:57 -0400

Welcome our new art director, ontoclasm.

--------------------------------------------------------------------------------
edcb9c7403 | Adam Borowski | 2012-09-03 22:03:27 +0200

Don't claim autoexplore is done if it is blocked by runed doors.

--------------------------------------------------------------------------------
f73ace0f23 | Adam Borowski | 2012-09-03 21:51:56 +0200

Fix runed large gates being announced multiple times.
If you somehow visit one edge of a gate, then the other one, without seeing
the middle (yes, a pretty contrived scenario...), you will get multiple
announcements.  This is intentional, as you don't know whether they belong
to the same gate.

Currently, connected_exclude is not handled -- should it be?

--------------------------------------------------------------------------------
b55c9c4193 | Adam Borowski | 2012-09-03 21:31:08 +0200

Link descs for oversized doors to regular ones.

--------------------------------------------------------------------------------
4c799e7eff | Adam Borowski | 2012-09-03 21:23:51 +0200

Announce runed doors as they come into view.

--------------------------------------------------------------------------------
82ca34341a | Adam Borowski | 2012-09-03 21:03:54 +0200

Don't travel or autoexplore through runed doors.
TODO: there should be feedback why autoexplore didn't finish, right now it
will claim it is done.

--------------------------------------------------------------------------------
9f5298a68a | Adam Borowski | 2012-09-03 20:51:57 +0200

Moar desecretizationing.

--------------------------------------------------------------------------------
afffd7f5fb | Florian Diebold | 2012-09-03 18:14:58 +0200

Remove CMD_MAP_FIND_F.
It did the same thing as CMD_MAP_FIND_WAYPOINT, so F on the overmap is
now just mapped to that.

--------------------------------------------------------------------------------
813631b71d | Florian Diebold | 2012-09-03 18:03:29 +0200

Clean up and improve the optimize-pngs script.
This fixes the error messages when png files have been removed and
really exits the script if there are no images to optimize; also, as
per galehar's request, the script will optimize the images from a
given commit if it is passed as a parameter.

--------------------------------------------------------------------------------
f3db35725b | Raphael Langella | 2012-09-03 16:53:38 +0200

Only list sacrificeable items before the prompt.
Was a bit too spammy.

This partially reverts 14d1690789273ac8779dcaaec0dc9b3e38b9259b

--------------------------------------------------------------------------------
b31812711f | David Lawrence Ramsey | 2012-09-03 09:45:37 -0500

Fix wording.

--------------------------------------------------------------------------------
0343327e19 | Florian Diebold | 2012-09-03 15:35:17 +0200

An option for local tiles to scale the dungeon area tiles up (or even down).
The name is tile_cell_pixels; it gives the tile width in
pixels (i.e. default value 32). Currently, Crawl uses nearest
neighbour filtering to scale tiles up; that could be easily changed to
linear, though (not sure which people would prefer).

Unlike the Webtiles option, this doesn't change the size of tiles in
menus or tabs; should it?

--------------------------------------------------------------------------------
56dd5ad556 | Adam Borowski | 2012-09-03 11:11:43 +0200

Typo fix.

--------------------------------------------------------------------------------
c91d766394 | Neil Moore | 2012-09-02 22:41:01 -0400

Fix an obsolete comment.

--------------------------------------------------------------------------------
2fd982374e | Neil Moore | 2012-09-02 21:54:51 -0400

Formatting fixes, and make a function static.

--------------------------------------------------------------------------------
5a7aebc8a3 | Brendan Hickey | 2012-09-02 21:54:14 -0400

More Abyss exits after rune collection.
Upon collection of the Abyssal rune, the frequency of abyss exits
increases from 1/7500 to 1/1250 (a six-fold increase for those at home).
Forces an abyss teleport to regenerate the dungeon.

This should alleviate some of the boredom associated with high-level
characters cast into the abyss.

[Removed Lugonu message and piety. -NFM]

--------------------------------------------------------------------------------
abe11c9bf0 | David Lawrence Ramsey | 2012-09-02 20:50:34 -0500

Simplify mons_pronoun() logic: only visible monsters can have non-default 
genders.

--------------------------------------------------------------------------------
5a5b1ecd2e | Policarpo Caballero | 2012-09-02 21:19:37 -0400

fsim: Fix simulation of ranged attacks.

--------------------------------------------------------------------------------
c03fb01284 | David Ploog | 2012-09-03 02:41:01 +0200

Strawberry reduction
Some vaults handed out way too many.

--------------------------------------------------------------------------------
9a45bfaa77 | Adam Borowski | 2012-09-03 00:13:47 +0200

Desecretize another bunch of vaults.

--------------------------------------------------------------------------------
584026292d | Adam Borowski | 2012-09-02 23:47:19 +0200

Remove secret tunnels from evilmike_library_of_many_secrets.

--------------------------------------------------------------------------------
4ed022e5d9 | Adam Borowski | 2012-09-02 23:47:18 +0200

Typo fix.

--------------------------------------------------------------------------------
40c2befc1b | Adam Borowski | 2012-09-02 23:29:35 +0200

Give angels in evilmike_silver_temple Zinny name, desc and speech.

--------------------------------------------------------------------------------
4d445460f6 | Adam Borowski | 2012-09-02 23:27:24 +0200

add a missing :else in firewood_loft.

--------------------------------------------------------------------------------
8be641e4a2 | Adam Borowski | 2012-09-02 23:22:21 +0200

Replace lua:restrict_door() with runed doors, except for Sprint.
Sprint is on the TODO list...

--------------------------------------------------------------------------------
fb97b34b92 | Adam Borowski | 2012-09-02 23:14:13 +0200

s/minivault_9/door_vault/

--------------------------------------------------------------------------------
d41bffa94b | Adam Borowski | 2012-09-02 23:12:46 +0200

Randomize statue_cache a slight bit.

--------------------------------------------------------------------------------
2db099fa90 | Adam Borowski | 2012-09-02 23:10:22 +0200

Remove ugly rare doors from the Zot:5 vault.

--------------------------------------------------------------------------------
47140cf5ed | Adam Borowski | 2012-09-02 23:09:35 +0200

Despoilerify/runify an imperial buttload of secret doors.

--------------------------------------------------------------------------------
680b6d9567 | David Lawrence Ramsey | 2012-09-02 15:13:33 -0500

Prefix str_to_ego() with an underscore, as it's static.

--------------------------------------------------------------------------------
7757f5cbdd | David Lawrence Ramsey | 2012-09-02 14:40:02 -0500

Since staves are removed, add tridents to Xom's snakable weapons instead of 
duplicating quarterstaves.

--------------------------------------------------------------------------------
573868bfe8 | David Lawrence Ramsey | 2012-09-02 14:30:46 -0500

Ensure all references to the SoH refer to all SoH types.
Also, SoH is dragon-genus; remove inaccurate/redundant dragon slaying check.

--------------------------------------------------------------------------------
ed92fc568a | David Lawrence Ramsey | 2012-09-02 14:30:46 -0500

Reorder functions to match header files.

--------------------------------------------------------------------------------
9dd2245c47 | elliptic | 2012-09-02 15:13:17 -0400

Remove generation of "staff" items.
Nobody ever wanted to use one, and the distinction between
club/staff/quarterstaff didn't make much sense. Artificers now start with
a short sword instead, the same as hunters.

WPN_STAFF is still present in the code to provide the weapon stats for magical
staves.

--------------------------------------------------------------------------------
3929fecdba | Adam Borowski | 2012-09-02 20:39:30 +0200

ontoclasm's tiles for runed doors.

--------------------------------------------------------------------------------
c32969eddd | David Lawrence Ramsey | 2012-09-02 12:45:29 -0500

Typo fix.

--------------------------------------------------------------------------------
317050d26f | Adam Borowski | 2012-09-02 19:43:39 +0200

Don't talk about warnings in the runed doors' desc.
They are often used merely to point out something, or to stop monsters from
wandering in.

Also, mention that opening them removes the runed status -- it'd be abusable
for a guaranteed escape if you can keep a gap.

--------------------------------------------------------------------------------
226f152bdc | Adam Borowski | 2012-09-02 19:35:29 +0200

A script to open a given vault in an editor.
You'll want to "alias ev=~/crawl/crawl-ref/source/util/edit_vault".

To select the editor to use, set $EDITOR.  On Debian, there's some smarter
detection done by the system, elsewhere there's no reasonable fallback.
The editor must support the +line syntax.

--------------------------------------------------------------------------------
6eb0595184 | Adam Borowski | 2012-09-02 19:13:20 +0200

Despoil/runify a lot of vault doors.

--------------------------------------------------------------------------------
c3e74d7c09 | Adam Borowski | 2012-09-02 19:04:50 +0200

Slash relative weights of bazaar maps by 10.
That was needed only to allow making the fallback map really rare, which was
counteracted by it getting many chances to spawn.

--------------------------------------------------------------------------------
aec47cac1a | Adam Borowski | 2012-09-02 19:04:50 +0200

Increase the weight of the generated bazaar map.
It was supposed to have a near-zero weight so it appeared only when other
bazaars are nearly or fully exhausted; with infinite bazaars gone, it can be
used together with static ones.

Also, make it bigger, there's no issue of punishing scummers anymore.

--------------------------------------------------------------------------------
4264f88b4c | Chris Campbell | 2012-09-02 16:08:36 +0100

Fix trowel portals not being placed in existing vaults

--------------------------------------------------------------------------------
d8030988ad | Chris Campbell | 2012-09-02 16:01:59 +0100

Restrict some overflow altars to more appropriate places

--------------------------------------------------------------------------------
58747ea2c9 | Chris Campbell | 2012-09-02 16:01:34 +0100

Remove a testing weight

--------------------------------------------------------------------------------
3c4be815e2 | Chris Campbell | 2012-09-02 13:09:34 +0100

Cap the number of Bazaars generated by Trowel cards
(At one).

--------------------------------------------------------------------------------
42a8e53500 | Michael Gagno | 2012-09-02 04:00:12 -0700

Change lightli_zot_lavaisle into a lavacorridor.
There is no reason for this to be a gigantic lake.

--------------------------------------------------------------------------------
7d14ff1885 | Michael Gagno | 2012-09-02 03:53:28 -0700

Get rid of Zot:5 subvaults.
Developer opinion is largely against these. Thus, the orb chamber will now
always be in its original form. Note that in almost all cases, we believe
that more variety is a good thing. Zot:5 is an exception to this, for
a number of reasons. It is perhaps the only exception.

Apologies to everyone who worked on the orb subvaults. While these have been
removed, I intend to edit them into minivaults (with changes to the monster
sets). This should be done on a vault-by-vault basis, so I would rather
remove the orb subvaults first, then gradually re-add them later.

--------------------------------------------------------------------------------
ee09158fc8 | Michael Gagno | 2012-09-02 03:18:46 -0700

Three minivaults. (Guppyfry)
One of these can place an agate snail or slug somewhat early. While this is
not as aggrivating as an early golem, players might find it annoying. If
there are complaints, this vault should be edited.

--------------------------------------------------------------------------------
d9474c1c21 | Michael Gagno | 2012-09-02 03:08:02 -0700

"Cornered adventurer" minivault. (Lasty)
Oh, and it's also a jelly vault. No worse than your typical Jiyva altar
though. Which is to say, it's pretty mean...

--------------------------------------------------------------------------------
1fc73f0459 | Michael Gagno | 2012-09-02 03:02:25 -0700

Minivault with a rod of summoning... (Lightli)
...wielded by a monster. This vault will be a bit nasty if you find it
early, but so are bee rooms. Also, it's an autoexplore trap at the moment.
When runed doors go in, this vault should get one.

--------------------------------------------------------------------------------
c6a51a73b8 | Michael Gagno | 2012-09-02 02:59:11 -0700

Four entry vaults. (Lightli)

--------------------------------------------------------------------------------
4be0e2e363 | Michael Gagno | 2012-09-02 02:54:28 -0700

Insane Zot:1-4 vault. (Lightli)
This does something very nasty, but it gives you a clear warning.

--------------------------------------------------------------------------------
72eb8ffbab | Michael Gagno | 2012-09-02 02:46:28 -0700

A farm-themed entry vault. (Lightli, HangedMan)

--------------------------------------------------------------------------------
4777e55ae8 | Michael Gagno | 2012-09-02 02:41:09 -0700

Many labyrinth vaults, including a minotaur vault. (nicolae)
I am thinking, with all these furniture vaults, maybe we should increase the
chance of placing these, and place several in a single lab. This would make
them much easier to solve, though.

--------------------------------------------------------------------------------
406627d088 | Michael Gagno | 2012-09-02 02:32:31 -0700

Two entry vaults. (nagdon)

--------------------------------------------------------------------------------
d0165e7e50 | Michael Gagno | 2012-09-02 02:13:11 -0700

Print more information to the character log in arena sprint.
It now includes your arena points, how many points you gained, and your
current streak. The format is rather terse, but I think it is clear enough.

--------------------------------------------------------------------------------
5c54080a4c | Michael Gagno | 2012-09-02 01:57:35 -0700

Balance changes to arena sprint.
Uniques are twice as common early (this is mainly for XP reasons). There are
only three quad damages (down from five). And the later rounds are harder.

I underestimated how strong characters would be after braving the "extended"
portion. I only tested the first 27 rounds (normal win) myself, and
spectated people doing the full 42. It turns out that you have every major
skill maxed by that point, and only the most extreme monster sets pose a
threat. Therefore, the last few rounds are now even harder, and the final
boss got a 50% HP boost.

The cut in quad damage should also stir things up. There are five extended
bosses, but only three quad damages now.

--------------------------------------------------------------------------------
51d274933d | Michael Gagno | 2012-09-02 01:22:35 -0700

Adjust scroll shops in arena sprint.
A scroll of vorpalise weapon has been added to each one. There is less
recharging and silence available.

--------------------------------------------------------------------------------
d04589294b | Michael Gagno | 2012-09-02 01:19:03 -0700

Adjust arena sprint shops.
A staff store replaces the randbook store, and there are now launchers/ammo
in the weapon store. The sling bullets are a bit expensive, but this is
because Crawl overprices them.

--------------------------------------------------------------------------------
2f889ab69f | Michael Gagno | 2012-09-02 01:02:06 -0700

Remove "team" waves from arena sprint.
I know some people like these, but there are several problems with them, and
the recent change to ally behaviour makes them unworkable. But besides that,
certain gods hate allies, and "teams" complicate the rules too much. I would
like to keep the rules here extremely simple: if something comes out of a
spawn point, you must either kill it or remove it from the arena in order to
win.

There are still problems with monsters spawning and then turning neutral
(e.g. a single jelly if you are with Jiyva). This is a somewhat more
complicated problem, though.

--------------------------------------------------------------------------------
b843e10e1b | Michael Gagno | 2012-09-02 00:47:04 -0700

Fix an error if the lich is blocked from spawning in wizlab_zonguldrok.
The lich is supposed to spawn next to the gravestone. Flood the room with
summons (meaning it doesn't have room to spawn), and you get an error
message.

This makes it so it instead fails silently, and spawns when a space opens
up. The alternative would be to place it where the gravestone is, but this
has problems with leaving an awkwardly renamed floor.

--------------------------------------------------------------------------------
624eb6a42f | Neil Moore | 2012-09-02 03:12:14 -0400

Optimise title_pooryurik_knight.png
For a savings of ~18 KiB installed, at the expense of an extra ~17 KiB
in our repository.  This is done more for completeness than out of any
sense of necessity.

--------------------------------------------------------------------------------
5cea4aff00 | Michael Gagno | 2012-09-01 20:35:43 -0700

Heavily restrict which monsters are able to flee at low HP.
This has been discussed in ##crawl-dev and elsewhere, and has so far met no
negative feedback (and there has been quite a bit of positive). I think this
is worth trying in trunk; if something goes wrong it's easy to revert, or
water down.

This commit does two things:

1. It replaces the M_NO_FLEE flag with M_FLEES, and gives it to only a
   select few monsters.
2. It simplifies the logic for fleeing at low HP a bit: instead of checking
   a bunch of different attributes (intelligence, holiness, etc), it only
   checks for the M_FLEES flag.

As for which monsters get M_FLEES: currently it is only monsters which used
to flee under the old system, and also possess ranged attacks (this is
because they can decide to stop fleeing and start attacking you at range).
This is more interesting than melee-only enemies fleeing, which are unable
to do anything but run into a corner. Thus, a fire drake will flee, but a
yak will not.

I believe the balance concerns here are insignificant, once players learn to
adapt to this change. If there is a problem, we could change which monsters
get M_FLEES. Nevertheless, this is something we should pay attention to as
people play trunk (it may be helpful to compare kill stats, before and
after, for monsters like hydras and death yaks).

Finally, I should note that this does not change fleeing caused by fear
effects, and it does not affect other "emergency" abilities (bears will
still berserk at low HP, in other words).

--------------------------------------------------------------------------------
19be3285a8 | Adam Borowski | 2012-09-02 03:05:35 +0200

ontoclasm's set of new Abyss tiles.
They're added to the rotation, reducing the weight of pebble recolourings,
which are still the most likely variant, although their subvariants have
smaller effective weights than "relief", "undead" and this new "abyss".

--------------------------------------------------------------------------------
fef2f9efae | Neil Moore | 2012-09-01 12:25:22 -0400

Give quotes to small zombies and simulacra (#6142).
Alias them to their large counterparts.  Also, remove the duplicated
quote from small skeletons and replace it with an alias.

--------------------------------------------------------------------------------
90cf941b95 | Neil Moore | 2012-09-01 11:51:11 -0400

Correctly learn brand of throwing artefact weapons.
We were also learning the artefact's name on skill-based auto-id.  This
wouldn't have been too much of a problem, but it caused us to fail to
correctly inscribe the other properties later when we do wield the item.

Fixes #6143.

--------------------------------------------------------------------------------
c452a4fca4 | Florian Diebold | 2012-09-01 14:58:17 +0200

Fix weapon placement for Agnes.

--------------------------------------------------------------------------------
dfcd0f1276 | David Lawrence Ramsey | 2012-08-31 20:44:34 -0500

Fix inaccurate Ely message: unholy and evil weapons are covered, not just the 
latter.

--------------------------------------------------------------------------------
5c8ac43974 | David Ploog | 2012-09-01 00:29:02 +0200

New title screen (poor_yurik).
Not yet enabled.

--------------------------------------------------------------------------------
b496f05292 | Adam Borowski | 2012-08-31 22:44:42 +0200

Make trying to spawn a secret door fatal.

--------------------------------------------------------------------------------
bcb1e54b74 | Neil Moore | 2012-08-31 14:30:24 -0400

Dismiss the monster if fsim is cancelled.

--------------------------------------------------------------------------------
678892b08f | Neil Moore | 2012-08-31 14:30:18 -0400

Make fsim monsters MF_HARD_RESET.
So they don't drop items when dismissed.

--------------------------------------------------------------------------------
e7667df4b1 | Neil Moore | 2012-08-31 14:16:19 -0400

Don't crash if a monster moves during fsim (#6140).
Put it back in its original position after each attack.

--------------------------------------------------------------------------------
7e9275d67d | David Lawrence Ramsey | 2012-08-30 19:31:54 -0500

Fix wording.

--------------------------------------------------------------------------------
b9ee14c00e | Neil Moore | 2012-08-30 20:28:53 -0400

Don't crash on slevels:1 theme randbooks.
This could happen if, for example, Charms was selected as the only
discipline (since there are no level 1 Charms spells).  If we couldn't
find a spell with slevels:1, try again with slevels:2 (but no further).

--------------------------------------------------------------------------------
a9eeb4a370 | Adam Borowski | 2012-08-31 00:44:20 +0200

Merge branch 'master' into glasnost
Yay for conflicts galore (wax removal, std:: purge, tileidx changes).

--------------------------------------------------------------------------------
35613e094c | Adam Borowski | 2012-08-31 00:12:32 +0200

A desc for Arena Sprint spawn points.
Their short name is probably descriptive enough, but let's be complete.

--------------------------------------------------------------------------------
57aec7d2a0 | Adam Borowski | 2012-08-31 00:09:03 +0200

Runed doors.
They're meant to stop autoexplore, and maybe request a confirmation for
being opened.  This is not yet implemented, but we can use them for
converting secret doors that were used for marking a place as interesting.

--------------------------------------------------------------------------------
4a74920326 | Adam Borowski | 2012-08-31 00:09:02 +0200

Despoilerize many vaults.

--------------------------------------------------------------------------------
b3eb8af3d3 | Adam Borowski | 2012-08-30 23:46:55 +0200

Use $GXX rather than $GCC for compile tests.
This eliminates the use of the latter for non-contrib builds.  There's one
reference left, in an apparently unused rule for SDLMain.m -- which is not
even written in C.  Can it be purged?

Since contribs can be safely built with any compiler (C ABI is far less
likely to cause compatibility problems than the C++ one), this removes any
risks involved in these two settings being out of sync.

Also, why exactly they are named GCC and GXX, instead of CC and CXX like
everywhere else?  Real GCC is the recommended compiler, but Crawl builds and
runs with clang or (not tested anytime recently) icc as well.

--------------------------------------------------------------------------------
b4e6954b9c | Chris Campbell | 2012-08-30 21:10:16 +0100

Don't let gods bless dancing weapons with permanent brands/enchantments

--------------------------------------------------------------------------------
db3c33a53a | Chris Campbell | 2012-08-30 19:27:31 +0100

Slightly increase the durations of some Xom monster effects (confusion, inner 
flame)

--------------------------------------------------------------------------------
a8125e89b7 | Chris Campbell | 2012-08-30 19:27:30 +0100

Cap Xom's statloss at 1 unless bored

--------------------------------------------------------------------------------
322f2df5c6 | Chris Campbell | 2012-08-30 19:27:29 +0100

Make potions of decay immediately rot some HP instead of applying rot status
The rot status meant that that decay rarely had an effect since it
could be cured immediately with a single potion of curing (and in rare
cases when decay was found in the early game or with no curing, it
would cause huge amounts of rot). Immediately rotting some HP makes it
require more consumable usage to heal completely, while being less
punishing if quaffed with no potions of curing available.

--------------------------------------------------------------------------------
b2bd5e4266 | Neil Moore | 2012-08-30 14:06:50 -0400

Do death message and item drops for miscast kills (#6136).

--------------------------------------------------------------------------------
9bf5a120db | Neil Moore | 2012-08-30 10:49:45 -0400

Don't mention !p !* =p for blood gods or Beogh.
Does anyone ever use these inscriptions on corpses?

--------------------------------------------------------------------------------
488fe720f5 | Neil Moore | 2012-08-30 10:45:07 -0400

Spoil Nemelex's secret tech.

--------------------------------------------------------------------------------
9ff5bb36d5 | David Lawrence Ramsey | 2012-08-29 21:26:25 -0500

Fix typos in and wording of new descriptions.

--------------------------------------------------------------------------------
d79fae7da9 | Adam Borowski | 2012-08-30 01:49:35 +0200

Descs for Arena more inventive bosses.
Tiles would be good as well; I made something for succubus, the witch and
phase spider kind of need something too.

--------------------------------------------------------------------------------
b5fb25dfd4 | Adam Borowski | 2012-08-30 01:17:00 +0200

Link descs for arena sprint monsters who are pure renames.

--------------------------------------------------------------------------------
c8216b768c | Adam Borowski | 2012-08-29 23:27:05 +0200

Give pghosts and pillusions flawed IOODs.
They were players once, and thus couldn't possibly get the full version (per
the spell's description).  All other users are centuries old, or don't need
books in the first place.

--------------------------------------------------------------------------------
e2827d3288 | Adam Borowski | 2012-08-29 23:27:05 +0200

Don't force darkgrey to blue on OS X.
The bug in the terminal has been fixed several major releases ago, and AFAIK
you can't even run Crawl on ones that still suffer from it.  Those
connecting from such a system have several options, including redefining
colours in their config file, or using any other terminal.

--------------------------------------------------------------------------------
a35d811c39 | Adam Borowski | 2012-08-29 23:27:05 +0200

Purge some fruit_mask cruft.

--------------------------------------------------------------------------------
a6766e9807 | Adam Borowski | 2012-08-29 23:27:05 +0200

Make shatter functions static again.

--------------------------------------------------------------------------------
060cdc94ae | Policarpo Caballero | 2012-08-29 13:50:12 -0400

Fix shield blocking in the fsim

--------------------------------------------------------------------------------
a966225517 | Raphael Langella | 2012-08-29 15:49:32 +0200

Prevent friendly summons from attacking out of LOS.
For a summon to be able to attack a target (by whatever mean), both it and
its target needs to be in LOS of the player. It doesn't have to be actually
visible, but it cannot be behind glass (the check is cell_see_cell_no_trans).

Aditionally, wandering friendly summons will try to stay in sight of the
player.

--------------------------------------------------------------------------------
48d7effa1c | Raphael Langella | 2012-08-29 15:49:32 +0200

Buff alarm traps (again).
The zotdef merge (2eb4bbe4) overwrote my previous buff to 25 (ee460804). My
change didn't even last a month :(

To make up for it, they now make a noise of 30 both in zotdef and normal game.

--------------------------------------------------------------------------------
454941c261 | Raphael Langella | 2012-08-29 15:49:31 +0200

Style fix.

--------------------------------------------------------------------------------
4af09d87bf | Neil Moore | 2012-08-29 00:26:19 -0400

Don't Jiyva-shuffle stats to zero (#6130).

--------------------------------------------------------------------------------
7ef7019325 | Darshan Shaligram | 2012-08-28 21:40:09 -0400

Make crash milestones use the correct time.
Crash milestones didn't use the same time as used for the crash dump filename;
fixed to make the milestone report the correct time.

--------------------------------------------------------------------------------
56e8f236b0 | Adam Borowski | 2012-08-28 23:47:03 +0200

Round monster rarities towards 500, rather than randomly.
This avoids groups of monsters with the same old rarity having distinct
rarities for no obvious reason.

--------------------------------------------------------------------------------
2a9bb4fc96 | elliptic | 2012-08-28 16:09:52 -0400

Fix the spell order in Book of Burglary (_Jordan_).

--------------------------------------------------------------------------------
7fb167242b | David Lawrence Ramsey | 2012-08-28 11:20:33 -0500

Fix Mantis 6128: Don't mark unidentified wands of invisibility as useless.

--------------------------------------------------------------------------------
7c4eb2bd74 | Neil Moore | 2012-08-28 02:51:10 -0400

Remove two unused player methods.

--------------------------------------------------------------------------------
6471126f9f | Neil Moore | 2012-08-28 02:20:53 -0400

Make chaos spawn tiles more chaotic.
Pick a new tile every redraw, rather than keeping the same tile for each
individual monster.

--------------------------------------------------------------------------------
bac017f56f | Neil Moore | 2012-08-28 02:13:04 -0400

Don't draw wall shadows around mangroves.
Not sure why, but this was only noticeable on webtiles.

--------------------------------------------------------------------------------
3df748079c | Neil Moore | 2012-08-28 01:19:03 -0400

Don't crash when a constrictor follows you upstairs.
See for example "!lm taxus crash 1":
  http://dobrazupa.org/morgue/taxus/crash-taxus-20120828-045304.txt

--------------------------------------------------------------------------------
60d718a8b6 | Neil Moore | 2012-08-28 00:33:17 -0400

Fix _autopickup_subtype() edge cases.
The function is never actually called on a sensed item etc, but it
appears to have been intended to support such calls.  Instead it
would trigger an assertion in get_max_subtype().

--------------------------------------------------------------------------------
2ae1dff8f0 | Neil Moore | 2012-08-28 00:00:46 -0400

Correct Warpwright description.
Since teleporters and teleportation traps have been different things
for some time now.

--------------------------------------------------------------------------------
64018f87cb | David Lawrence Ramsey | 2012-08-27 22:22:36 -0500

Fix aptitude template formatting.

--------------------------------------------------------------------------------
3aaf02ac4b | Neil Moore | 2012-08-27 22:41:55 -0400

Really fix rings of life protection, without crashing.

--------------------------------------------------------------------------------
bb7f469442 | Neil Moore | 2012-08-27 22:36:52 -0400

Fix monster rings of life protection/poison resistance.

--------------------------------------------------------------------------------
942efd9371 | elliptic | 2012-08-27 22:05:36 -0400

HO apt changes: Exp +1 -> 0, Axes +2 -> +3.
They were stepping on human toes with Exp apt +1 (Ko and Ha aren't really
directly comparable to Hu, being small). In exchange, give minotaurs a bit
more competition with melee.

--------------------------------------------------------------------------------
206ba39bde | elliptic | 2012-08-27 20:57:19 -0400

Swap Earth and Air apts for Deep Elf.
Their description even says they are especially good at earth magic, and it
makes sense given they live underground. Besides, we already have one type
of elf better with air than earth.

--------------------------------------------------------------------------------
79f67ac23c | elliptic | 2012-08-27 20:45:37 -0400

Increase Tengu experience apt from -1 to 0.
Consensus was that a slight buff to Tengu is better than a slight nerf, given
how weak they are in the early game already.

--------------------------------------------------------------------------------
dd2c8e4f70 | elliptic | 2012-08-27 20:45:37 -0400

Use a +1 to -2 scale for Exp apt instead of 100 to 160.
It is now consistent with the skill apts. Races with a -1 apt require 18% more
experience to reach a given XL than races with a +0 apt do.

The old apts were converted to the new scale as follows:

100         -> +1
110,120     ->  0
130,140,150 -> -1
160         -> -2

--------------------------------------------------------------------------------
02ef691263 | Adam Borowski | 2012-08-28 01:37:07 +0200

Use unique_ptr instead of auto_ptr (emulated for non-C++11).
This stops the tons of warnings, while allowing building for both old
and new C++ standards.  And if we wanted to use shared_ptr or something,
now we can without being ambiguous.

--------------------------------------------------------------------------------
5bb725201a | Florian Diebold | 2012-08-28 00:32:15 +0200

Webtiles: Be a bit more resilient against errors while starting Crawl.

--------------------------------------------------------------------------------
2026c22a35 | Adam Borowski | 2012-08-28 00:24:15 +0200

Get rid of std:: in the rltile tool.
This is somewhat less nice than Crawl proper, as there's no common header
that's included by everything.

--------------------------------------------------------------------------------
71d1c1b1d5 | Adam Borowski | 2012-08-28 00:24:15 +0200

Cut another case of std::
Not rebuiding the prebuilt copies, though; there's no point in extra churn
just for this reason.

--------------------------------------------------------------------------------
33e7c498ba | Adam Borowski | 2012-08-28 00:17:44 +0200

Allow "%"PRI to build in C++11 mode.
This is a misdesign in the standard, the committee is debating whether it's
a defect or not, we'll know the result in ten years or so.  In the meantime,
gcc-4.8 and clang(version?) added a fix so formerly legal code compiles (but
with a warning...).  This fix is not yet in gcc-4.7 nor clang-3.1, and since
failing to build on compilers that happen in the wild is a bad idea, let's
kludge it around with spaces.

More info: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52538

--------------------------------------------------------------------------------
cdeb0bb5e5 | Adam Borowski | 2012-08-27 23:41:42 +0200

Rename hash(), it conflicts with std::hash in C++11.

--------------------------------------------------------------------------------
8dd6ab527d | David Lawrence Ramsey | 2012-08-27 09:59:43 -0500

Fix changelog entry punctuation.

--------------------------------------------------------------------------------
8e9bf5dc2f | David Lawrence Ramsey | 2012-08-27 09:58:57 -0500

Mention troll hide drop changes in the changelog.

--------------------------------------------------------------------------------
df4b60b1d2 | Raphael Langella | 2012-08-27 15:37:39 +0200

Update the changelog.

--------------------------------------------------------------------------------
c8484b08f6 | Raphael Langella | 2012-08-27 15:13:41 +0200

Add wordpress account creation to the new dev checklist.

--------------------------------------------------------------------------------
cb5881f43b | Raphael Langella | 2012-08-27 15:07:42 +0200

Remove the hidden special cost of some skills, adjust aptitudes.
Spellcasting was cost 130%, Stealth, Evocations and Invocations 80%. All
species had their aptitudes adjusted to compensate (-1 Spc, +1 Sth, +1 Inv,
+1 Evo). The only significant balance change is Naga staying at +5 Sth.

--------------------------------------------------------------------------------
52d8903b50 | Raphael Langella | 2012-08-27 14:16:45 +0200

Swap the cycle quiver commands.
'(' now means cycle backward and ')' cycle forward. Seems much more natural
this way.

--------------------------------------------------------------------------------
22456a946f | David Lawrence Ramsey | 2012-08-26 20:47:12 -0500

Typo fix.

--------------------------------------------------------------------------------
4436a08053 | Adam Borowski | 2012-08-27 03:19:53 +0200

Destalkerify canned tests.
Let's hope no one removes artificers soon...

--------------------------------------------------------------------------------
d5c7204335 | Adam Borowski | 2012-08-27 03:13:02 +0200

Require at least 1.0 mana to zap a lightning rod.
When I allowed using fractional parts, I forgot that without throwing
fractions away, 0.01 > 0.  We want 1.0 <= charge <= 5.0.

--------------------------------------------------------------------------------
70c3a74b30 | Adam Borowski | 2012-08-27 03:12:11 +0200

Update maxmp after blessing an antimagic weapon.

--------------------------------------------------------------------------------
ccafab7d38 | Adam Borowski | 2012-08-27 03:08:44 +0200

Don't go through inappropriate monsters during arena selection.

--------------------------------------------------------------------------------
088cf57e3c | Adam Borowski | 2012-08-27 02:05:07 +0200

Avoid a pointless loop in ZotDef monster selection.

--------------------------------------------------------------------------------
6c236b4083 | Adam Borowski | 2012-08-27 02:01:13 +0200

A too-ugly-to-live hack to unbreak compilation on gcc-4.8.
We'd need some way to have a static_assert() without using C++11 that
doesn't spam warnings in the no failure case.

--------------------------------------------------------------------------------
c526fa56b7 | Adam Borowski | 2012-08-27 02:01:13 +0200

Pre-declare the std namespace to make clang happy.
(Could include anything that declares it first, too.)

--------------------------------------------------------------------------------
c086f60cd8 | Adam Borowski | 2012-08-27 00:48:26 +0200

Don't pretend pick_monster_no_rarity() uses depth, either.

--------------------------------------------------------------------------------
70f242f1df | Neil Moore | 2012-08-26 18:37:57 -0400

Use correct autopickup subtypes.
Because of an error with the switch fall-through logic, cheese was not
included in "non-perishables" (FOOD_CHEESE happens to share an integer
with MISC_RUNE_OF_ZOT).

--------------------------------------------------------------------------------
a4cafc8eb2 | Adam Borowski | 2012-08-27 00:23:29 +0200

Convert mon-pick data to a more readable scheme.
Instead of a base level and a rarity, which then use a ridiculously obscure
algorithm to accept or reject monsters, the new data includes:
* minimal depth the monster can be found on
* maximal depth
* rarity at the center of the range
* distribution type (flat, a linear triangle, something halfway between the
  two)
* the monster's enum

The results should be the same, with very minor differences:
* distributions within allowed range are approximated by one of three shapes
  (FLAT, SEMI, PEAK), this shouldn't produce noticeable differences
* effective rarity has been shoehorned into a 0..1000 range (out of 0..10201),
  using div_rand_round().  There's a number of monsters with 35/10201 rarity
  which ends up as 3 or 4, and strings of monsters of the same rarity end up
  randomly perturbed.
* the once-in-the-life-of-universe chance to generate a monster outside the
  -5..+5 range is gone, you can now set arbitrary ranges and they're absolute.

There's no actual code to use this data yet, merely an emulation of the old
functions.  It looks like ZotDef applies some complex rules to the monster's
depth, it may take some thinking about how to convert it.

--------------------------------------------------------------------------------
82ae3fd9eb | Adam Borowski | 2012-08-27 00:23:27 +0200

Don't pretend mons_{rarity,level}() use anything but place.branch.
We'd want them to, but that code is getting overhauled anyway, so let's not
cloud things.

--------------------------------------------------------------------------------
3af8bc6bb2 | Florian Diebold | 2012-08-27 00:20:45 +0200

Fix compilation.

--------------------------------------------------------------------------------
183894471b | Florian Diebold | 2012-08-27 00:18:34 +0200

rltiles: Fix tile_*_basetile functions.
They're completely unused except in my unpublished branch for #6106,
but that's no excuse.

--------------------------------------------------------------------------------
0e1e71dfe8 | Neil Moore | 2012-08-26 17:47:35 -0400

Unbreak compilation with GCC 4.1.
We were getting an ambiguous overload with between pow(double, double)
and pow(double, int) when calling pow() with two ints.  It didn't show
up before 0.12-a0-208-g770bcbd because the version taking an int was
hidden in the std:: namespace.

This doesn't seem to be a problem with GCC 4.6.

--------------------------------------------------------------------------------
770bcbd184 | Raphael Langella | 2012-08-26 23:06:30 +0200

Use std namespace.
I had to rename distance() (in coord.h) to distance2() because it conflicts
with the STL function to compare 2 iterators. Not a bad change given how it
returns the square of the distance anyway.
I also had to rename the message global variable (in message.cc) to buffer.

I tried to fix and improve the coding style has much as I could, but I
probably missed a few given how huge and tedious it is.

I also didn't touch crawl-gdb.py, and the stuff in prebuilt, rltiles/tool
and util/levcomp.*, because I have no clue about those.

--------------------------------------------------------------------------------
a6c16c7f20 | Chris Campbell | 2012-08-26 20:11:31 +0100

Make Chain Lightning properly arc to bushes, don't arc to IOODs
It would target orbs of destruction, bushes and Fedhas-protected
plants, but pass through them resulting in unexpected and buggy
behaviour since the beam is supposed to always end when it reaches its
target. Now it'll arc normally to bushes/plants and ignore orbs of
destruction entirely.

--------------------------------------------------------------------------------
14b6cc2456 | Florian Diebold | 2012-08-26 20:38:01 +0200

Webtiles: Make static file URL also dependent on the exact Crawl version.
This should fix (most of the) problems on CSZO with stable versions,
which don't put the static files in a new directory when updating.

--------------------------------------------------------------------------------
3ec267da42 | Adam Borowski | 2012-08-26 13:20:53 +0200

Don't special-case pan lord power in zotdef.

--------------------------------------------------------------------------------
6981a25079 | Adam Borowski | 2012-08-26 13:20:53 +0200

Don't use the notion of monster depth in hints mode.
It doesn't make any sense for anything but random spawns, and is not defined
for monsters who can't be placed randomly in the current branch.

--------------------------------------------------------------------------------
2dfbc2c440 | Adam Borowski | 2012-08-26 13:20:53 +0200

Don't use internal data of mon-pick from the outside.

--------------------------------------------------------------------------------
c1fbd6fca2 | Steve Melenchuk | 2012-08-24 18:36:22 -0600

Remove duplicate "The orb of destruction hits you!" message.
Apparently this was present on account of some inconsistencies in the
beam code which have since been addressed.

Fixes #6118.

--------------------------------------------------------------------------------
9915d42276 | elliptic | 2012-08-24 17:03:16 -0400

Allow traveling away from stair exclusions.

--------------------------------------------------------------------------------
e4459797b6 | elliptic | 2012-08-24 16:39:31 -0400

Make stair exclusions not stop running.
The stairs themselves will likely still stop the running, but this removes
the "Stopped running for exclusion." message.

--------------------------------------------------------------------------------
f397cff770 | elliptic | 2012-08-24 15:22:46 -0400

Add more checks to prevent features appearing with multiplicity in the 
pathfinder (fixes #3873).

--------------------------------------------------------------------------------
c98b6304e3 | elliptic | 2012-08-24 14:49:50 -0400

Actually show out-of-sight excluded staircases in the proper colour.

--------------------------------------------------------------------------------
23a01bca34 | elliptic | 2012-08-24 14:28:50 -0400

Revert "Show out-of-sight excluded staircases in the proper colour."
This reverts commit 5cddbb4c21c4890e9d9f01953c6efa107e906f08.

This didn't work right at all in some situations, unfortunately.

--------------------------------------------------------------------------------
5cddbb4c21 | elliptic | 2012-08-24 13:27:16 -0400

Show out-of-sight excluded staircases in the proper colour.
Instead of having them change colour when you enter sight of them or when you
press X.

--------------------------------------------------------------------------------
ffbf010301 | Florian Diebold | 2012-08-24 17:37:05 +0200

Rudimentary UI for setting the tile size in Webtiles.
Nothing fancy, just a text input field in the settings dialog.

--------------------------------------------------------------------------------
1abcee60a0 | Steve Melenchuk | 2012-08-24 09:04:16 -0600

Properly veto disconnected D:1s.
The old approach to doing this allowed disconnected zones if there were
stairs, which wasn't the intended approach.

--------------------------------------------------------------------------------
f8f710846a | Raphael Langella | 2012-08-24 10:52:07 +0200

Tiles for vertical gates (ontoclasm, #6105).

--------------------------------------------------------------------------------
2e4ff95fba | Neil Moore | 2012-08-24 03:25:22 -0400

Fix number and spelling of "can be sacrificed" message.

--------------------------------------------------------------------------------
772100903f | Steve Melenchuk | 2012-08-23 09:50:47 -0600

Tag Zot colour vaults with allow_dup so that &^R keeps the colours.

--------------------------------------------------------------------------------
955b23560d | Raphael Langella | 2012-08-23 17:43:15 +0200

Really fix console build.

--------------------------------------------------------------------------------
9f3a6218a9 | Raphael Langella | 2012-08-23 17:33:19 +0200

Fix console build.

--------------------------------------------------------------------------------
00c7eff1ee | Raphael Langella | 2012-08-23 16:51:27 +0200

Fix some tile issues with door mimics in gates (#6061).
Also remove some duplicated code.

--------------------------------------------------------------------------------
57969ad54f | Florian Diebold | 2012-08-23 15:15:31 +0200

Webtiles: Add some events to chat code.

--------------------------------------------------------------------------------
93d47d2c61 | Florian Diebold | 2012-08-23 15:15:24 +0200

Webtiles: Move some debug variables to window.

--------------------------------------------------------------------------------
afe43e2665 | Raphael Langella | 2012-08-23 12:41:43 +0200

Fix an information leak with out of LOS clouds in the travel code.
Fix: #4177, #4906, #5140, #5485 and #6046.

--------------------------------------------------------------------------------
fa040c23bc | Raphael Langella | 2012-08-23 10:51:03 +0200

Safer player pushing in the Abyss.
Don't push in a malign gateway. Also, I don't know why shove didn't check
for solid features.

--------------------------------------------------------------------------------
39adf9e98f | Steve Melenchuk | 2012-08-22 20:01:00 -0600

Fix invalid item state after monster casts Simulacrum.
This uses dec_mitm_item_quantity to consume the chunk, instead of
manipulating item.quantity directly; this clears the item data properly.

--------------------------------------------------------------------------------
49588e8b9b | elliptic | 2012-08-22 18:28:30 -0400

Add a milestone for the first time each branch is exited.
Only applies to branches with more than one level, so it shouldn't be too many
milestones. In order to get oplace to work correctly, the report_origin_level
argument to mark_milestone() was made slightly more flexible.

--------------------------------------------------------------------------------
1edff79cf6 | Adam Borowski | 2012-08-22 22:14:16 +0200

Remove fruit_found_mask.
It is a remnant of a gimmick banner from one of past tourneys.

--------------------------------------------------------------------------------
afd08e20fc | Adam Borowski | 2012-08-22 22:14:16 +0200

Purge a couple of especially bad old tiles.
I wonder, what's the purpose of having most removed stuff in UNUSED/ ?
Perhaps it should be used for tiles that are likely to be ever reused only?
We could also have a separate repository just for such files, also adding
source .XCFs and so on.

--------------------------------------------------------------------------------
5d95493851 | Steve Melenchuk | 2012-08-22 13:24:54 -0600

Don't give the Rogue's Gallery OgBe armour it shouldn't be able to wear.

--------------------------------------------------------------------------------
997e41bd3e | Steve Melenchuk | 2012-08-22 13:23:22 -0600

Handle cloud spells in checking for monsters being in range.
If you can possibly envelop a hostile monster in a cloud, it counts the
spell as being in range.

--------------------------------------------------------------------------------
2c1d31179c | Steve Melenchuk | 2012-08-22 13:03:35 -0600

Reinstate the Rogue's Gallery serial vault, with a couple of tweaks.
The DrTm is disabled (currently no monster transmutations in trunk) and
the TeAE loses Tornado (again, currently not implemented in trunk).

The spell set of the EEs has also been adjusted to include LRD (how it
wasn't there before is a mystery to me).

--------------------------------------------------------------------------------
8ef483a37a | Steve Melenchuk | 2012-08-22 12:48:34 -0600

Clean up monster Stoneskin.
It had an incorrect duration (ten times as short as it should be) and
gave no feedback; the duration has been fixed and feedback is now
provided.

--------------------------------------------------------------------------------
3e300d3e6a | Chris Campbell | 2012-08-22 19:31:58 +0100

Fix beams not correctly placing clouds
(Oops).

--------------------------------------------------------------------------------
4a6a3975c1 | Steve Melenchuk | 2012-08-22 10:03:47 -0600

Veto disconnected D:1s.
On testing the previous few changes, there was one instance where there
was a disconnected region on D:1, apparently due to an odd vault
placement.

This commit extends the checking used for branch ends to D:1 as well.

Since layout_basic will now be unable to produce disconnected layouts on
D:1, it's been re-enabled there (with a low weight).

--------------------------------------------------------------------------------
afec2a94c3 | Steve Melenchuk | 2012-08-22 09:51:59 -0600

Disable layout_roguey for D:1 and for primary vault levels.
It places its own stairs so as to avoid placing stairs in special rooms,
but this confuses vault stair placements; in particular it means the
player can start outside an entry vault.

Until a better fix for this is worked out (though do we really want a
D:1 layout_roguey?), it's disabled in these cases.

--------------------------------------------------------------------------------
b7765a641e | Steve Melenchuk | 2012-08-22 09:50:20 -0600

Disable random wall types for layouts for absdepth < 4.
The layouts that use them (except for layout_loops_misc) previously only
appeared starting at D:4, and it looks extremely odd to have a non-rock
D:1.

--------------------------------------------------------------------------------
d83b274026 | Steve Melenchuk | 2012-08-22 09:50:20 -0600

Remove depth restrictions on a few layouts.
At present, D:1 can choose between layout_roguey and layout_loops_misc,
and is biased towards layout_roguey. This is a problem, particularly
given layout_roguey's self-stair-placing habit (which causes problems).

This also allows more variety in layouts for late-D levels with primary
vaults.

Possibly a few of these layouts may start turning up in inappropriate
branches; if so, they can be disabled there and then.

--------------------------------------------------------------------------------
92a397e1be | Chris Campbell | 2012-08-22 16:36:59 +0100

Give Shatter independent checks to destroy each potion instead of destroying 
entire stacks
Previously it had a 90% chance and would destroy an entire stack of
potions at once, now it checks each potion individually (with a 10%
chance).

--------------------------------------------------------------------------------
14dce8fb2b | Chris Campbell | 2012-08-22 16:36:58 +0100

Give every item in a floor stack an independent chance of being destroyed
It should now work like inventory stacks, instead of only being able to
destroy at most one potion/scroll/etc in a stack of multiple.

--------------------------------------------------------------------------------
ed2d7a143b | Chris Campbell | 2012-08-22 16:36:57 +0100

Remove the (miniscule) chance for fire/ice beams to destroy scrolls/potions 
that they pass over
Explosions and clouds can still do so.

--------------------------------------------------------------------------------
e995af0f12 | Chris Campbell | 2012-08-22 16:36:57 +0100

Make Fannar's staff of cold a signature weapon

--------------------------------------------------------------------------------
0a92fda7af | Raphael Langella | 2012-08-22 17:01:31 +0200

Fix spell panel ignoring Vehumet MP discount (#4794).

--------------------------------------------------------------------------------
ca6d786a1e | Translators | 2012-08-22 11:54:00 +0200

Transifex formatting fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
ca514b129f | Raphael Langella | 2012-08-22 11:05:08 +0200

Fix free localisation of invisible monsters with confirmation prompt (#6047).
Clouds weren't even the worst. You could do it freely and anywhere by using
exclusions.

--------------------------------------------------------------------------------
9cdf352024 | Steve Melenchuk | 2012-08-21 19:05:58 -0600

Fix typo when monsters attack with staff of earth.
"The deep dwarf crushs you!" - s/crushs/crushes/, as expected.

--------------------------------------------------------------------------------
bc2d60e215 | Steve Melenchuk | 2012-08-21 18:28:02 -0600

Fix crash when monster targets petrifying player with LRD.
It was looking for a target monster that didn't exist when setting the
colour of the explosion; it now uses the appropriate colour.

--------------------------------------------------------------------------------
d09f384b95 | Chris Campbell | 2012-08-21 22:38:24 +0100

Remove the Insulation spell
It only provides a resist, and sources of elec damage can be avoided or
dealt with in other ways (particularly potions of resistance).

--------------------------------------------------------------------------------
84e723c600 | Chris Campbell | 2012-08-21 22:38:19 +0100

Remove the See Invisible spell
Simply providing a resist is incredibly uninteresting, and there are
plenty of other ways to deal with invisible monsters even without
having found a source of SInv on equipment (fog, corona, sticky flame,
etc).

--------------------------------------------------------------------------------
d876ee30b4 | Raphael Langella | 2012-08-21 23:13:45 +0200

Fix a compiler warning.

--------------------------------------------------------------------------------
e31c7b829a | Raphael Langella | 2012-08-21 23:07:52 +0200

Fix windows compilation.
Not sure why, but I was getting this:

bitary.h:47: error: 'ARRAYSZ' was not declared in this scope

--------------------------------------------------------------------------------
022a6985b3 | Neil Moore | 2012-08-21 13:27:17 -0400

Fix line breaks in throwing net description.
The message about its damage level was being joined to the last line of
the quote.

--------------------------------------------------------------------------------
e4782f65aa | Raphael Langella | 2012-08-21 17:45:31 +0200

Clear shafts from the stash tracker when taking them on purpose (#4284).
Previous fix only did it when falling through an unknown shaft.

--------------------------------------------------------------------------------
e60bed8484 | argonaut | 2012-08-21 17:26:22 +0200

New skill menu colors (#4399).
Aptitude is white (was red), anti-training is red (was magenta), skill
penalty is magenta (was red).

Reasons are: red is bad, aptitude should have a neutral colour. Usually,
magenta is worse than red, and skill penalty is worse than anti-training.

Also, we have a better symmetry with cross/anti-training and green/red.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
e18259c34b | Raphael Langella | 2012-08-21 16:29:13 +0200

Don't touch maxHP and maxMP when simulating gaining skills (#5979).
On top of getting negative rot, you could also scum for free maxMP by
toggling spellcasting on/off.

--------------------------------------------------------------------------------
06d33846c1 | Raphael Langella | 2012-08-21 15:59:09 +0200

Don't prevent abyss morphing at the player position.
Instead, push him around if the new feature isn't habitable, just like
monsters.

--------------------------------------------------------------------------------
7dfd3e015f | Raphael Langella | 2012-08-21 14:13:25 +0200

Change abyss_genlevel_mask from a map_mask to a map_bitmask.

--------------------------------------------------------------------------------
a89b727b23 | Raphael Langella | 2012-08-21 14:13:11 +0200

Remove an unused parameter.

--------------------------------------------------------------------------------
8d098fa93c | Raphael Langella | 2012-08-21 12:54:50 +0200

Change the numbers in the ability panel to display MP cost.
This makes it consistent with the spell panel. The fail chance was bugged
anyway and it's also already displayed above the panel when mousing over.

--------------------------------------------------------------------------------
837da21fdc | Raphael Langella | 2012-08-21 11:33:51 +0200

s/sacrificiable/sacrificeable/
sacrificable and sacrificiable are also accepted.

--------------------------------------------------------------------------------
2b7855ad21 | Raphael Langella | 2012-08-21 10:51:57 +0200

Fix auto_sacrifice getting stuck trying to sacrifice over an altar.

--------------------------------------------------------------------------------
088bd308f6 | Raphael Langella | 2012-08-21 10:23:31 +0200

Fix shift-click for butchering (#6096)

--------------------------------------------------------------------------------
835426392a | Raphael Langella | 2012-08-21 09:49:47 +0200

Fix auto_sacrifice getting stuck in silence (#6097).

--------------------------------------------------------------------------------
42c402b140 | Steve Melenchuk | 2012-08-20 20:53:16 -0600

Restrict layout_basic to depth 2 and above.
This should prevent it from making disconnected D:1s.

--------------------------------------------------------------------------------
0efe6cec5f | Steve Melenchuk | 2012-08-20 20:10:52 -0600

Have deaths by monster Shatter indicate that Shatter was used.
This also preserves the old behaviour for monsters wielding Devastator.

--------------------------------------------------------------------------------
60aaac4f3b | Steve Melenchuk | 2012-08-20 18:24:16 -0600

Fix order of terrain feature name strings.
Fixes a bug wherein killing TRJ would ooze out the wrong feature, and
probably other Lua issues.

--------------------------------------------------------------------------------
32b84523d1 | Steve Melenchuk | 2012-08-20 18:09:19 -0600

Tag magic_research subvaults with no_rotate and no_{h,v}mirror.

--------------------------------------------------------------------------------
ffad45ada6 | Steve Melenchuk | 2012-08-20 18:05:09 -0600

Allow no_hmirror, no_vmirror, and no_rotate tags to be used in subvaults.
Fixes #6092.

--------------------------------------------------------------------------------
a1c24d2c34 | Steve Melenchuk | 2012-08-20 17:48:21 -0600

Fix Trove-related Lua errors in the Vaults layout.
The chance_trove vaults didn't have a Vaults depth assigned, so the
subvault calls in the Vaults layout would not be able to find a subvault
for it.

--------------------------------------------------------------------------------
55161ef371 | Steve Melenchuk | 2012-08-20 17:34:26 -0600

Rejig wall types in Vaults to account for new depth.
V:1 has a 2/3 chance of being stone walled, and V:2- have a (depth - 1)
in 5 chance of being metal (otherwise being stone). The old chance for a
crystal layout on V:7-8 now applies to V:4-5.

--------------------------------------------------------------------------------
fcc6ade7dd | Steve Melenchuk | 2012-08-20 17:27:03 -0600

Re-tag/adapt some minivaults removed from Vaults for new vaults layout.
These are the ones that fit into the layout somehow. Some may not end up
working very well (minivault_9, I'm looking at you, but what would
Vaults be without a door vault now and again?), but testing should help
us to figure that out.

This also prevents attempting placement of (mini)vaults in Vaults.

--------------------------------------------------------------------------------
e7b8ffca28 | Steve Melenchuk | 2012-08-20 17:27:03 -0600

Adapt serial_hangedman_research to be placeable in new Vaults layout.
The old incarnation still works as expected; the serial vault just
happens to be placeable in the new layout as well.

--------------------------------------------------------------------------------
254ce47f5e | Michael Gagno | 2012-08-20 15:42:00 -0700

Remove some commented out vaults.

--------------------------------------------------------------------------------
df5f1b97f8 | Michael Gagno | 2012-08-20 15:38:55 -0700

Add a 'uniq_lab' tag to the labyrinth entrance vault.
Needed for the new Vaults layout, for subvault purposes.

--------------------------------------------------------------------------------
d8550aeb07 | Michael Gagno | 2012-08-20 15:06:22 -0700

Remove a file added by mistake in the last commit.
Didn't realize I had that sitting around.

--------------------------------------------------------------------------------
259acfe3e0 | Michael Gagno | 2012-08-20 15:01:39 -0700

Actually add the new Vaults layout.
Whoops.

--------------------------------------------------------------------------------
7af43697d7 | Michael Gagno | 2012-08-20 14:43:27 -0700

Shorten Vaults to 5 levels.
This is done for a few reasons:

  1. It's been discussed for quite a while now.
  2. With the redone layout, now seems like a good time to make this change.
  3. The new layout is much denser in terms of XP and Loot. Cutting the
  branch to 5 levels compensates for this (actually overcompensates a bit,
  at least in terms of XP).

This also increases its absdepth by 3 (keeping Vaults:5 at the same depth as
the old Vaults:8), and moves the entrance slightly deeper in the Dungeon.
Unique depths have been tweaked. Crypt and Blade are unchanged, though maybe
they should get their depth boosted too.

--------------------------------------------------------------------------------
e1900198d9 | Adam Borowski | 2012-08-20 23:36:35 +0200

Notify the player upon taking Shatter damage.

--------------------------------------------------------------------------------
f52c4c08b9 | Adam Borowski | 2012-08-20 23:36:35 +0200

Implement a monster tracer for Shatter.
As usually, they'll cast it when damage to foes is bigger than damage to
friends, taking susceptibility to Shatter into account.  This means, in a
horde of ghostlies, you won't be spared.

Also, this commit fixes damage and range being nearly none for monsters
who cast it as a non-arcane spell.  Monster's don't have skills...

--------------------------------------------------------------------------------
f5423dfd35 | Adam Borowski | 2012-08-20 23:36:35 +0200

Nerf Shatter for Fedhas worshippers.

--------------------------------------------------------------------------------
5890d2d491 | Michael Gagno | 2012-08-20 14:30:12 -0700

New Vaults layout by infiniplex.
This is a massive change to the branch. It causes the levels to be made up
of a basic layout, filled with subvaults (drawing from a pool of several
hundred). See the following link for more detail:

https://crawl.develz.org/mantis/view.php?id=6059

--------------------------------------------------------------------------------
90f1348bf8 | elliptic | 2012-08-20 16:28:27 -0400

Make disc of storms usable with rElec.
Taking 30 damage from using it seems more reasonable than taking 90.

--------------------------------------------------------------------------------
241a7c8003 | Adam Borowski | 2012-08-20 21:24:39 +0200

Restore score file compat, wrt removal of Stalkers.

--------------------------------------------------------------------------------
5267d6a765 | Adam Borowski | 2012-08-20 21:19:10 +0200

Give debug info for bad items.

--------------------------------------------------------------------------------
6922aab7d7 | Neil Moore | 2012-08-20 14:56:44 -0400

Make cloud traps and spider basket transparent (#4733).
Also, spider baskets---those can even be walked around, so there's even
less reason for making them cut the level.

--------------------------------------------------------------------------------
d34118a48d | Adam Borowski | 2012-08-20 20:49:10 +0200

Remove potions of water.
Without Evaporate, they lost their last use.

--------------------------------------------------------------------------------
fae69ba091 | Adam Borowski | 2012-08-20 19:42:54 +0200

Split Call Imp and Summon Minor Demon, for documentation purposes.
Also, the former gets an implementation for player ghosts, as it's so
short there's no issue of maintenance burden.

(This is a counterimplementation for commit 5933cc83).

--------------------------------------------------------------------------------
729cd84f8e | Florian Diebold | 2012-08-20 17:46:41 +0200

Show the player in the chat if they're using Webtiles.

--------------------------------------------------------------------------------
5e8d5c42d3 | David Lawrence Ramsey | 2012-08-20 10:35:11 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
f4535fe2c1 | Raphael Langella | 2012-08-20 17:21:31 +0200

New option: auto_sacrifice.
Does what it says on the tin. I feel like it should be merged somehow with
sacrifice_before_explore, but I'm not sure how the option and its values
should be named in this case. The 4 behaviours are:
* auto sacrifice (doesn't stop explore)
* sacrifice before exploration
* prompt for sacrifice before exploration
* manual sacrifice (old and default behaviour)

--------------------------------------------------------------------------------
96a66cb2e8 | Neil Moore | 2012-08-20 11:12:37 -0400

Fix PROX_NEAR_STAIRS in ZotDef (atomjack; #6095).

--------------------------------------------------------------------------------
0eb1b366bd | Chris Campbell | 2012-08-20 14:20:25 +0100

Tweak some species descriptions

--------------------------------------------------------------------------------
41bd266017 | Chris Campbell | 2012-08-20 14:20:24 +0100

Replace Evaporate in the tutorial

--------------------------------------------------------------------------------
fa54870f19 | Chris Campbell | 2012-08-20 14:20:23 +0100

Replace Fulsome+Evap in the book of Alchemy with Petrify+Intoxication

--------------------------------------------------------------------------------
54df5be6b9 | Chris Campbell | 2012-08-20 14:20:22 +0100

Remove Evaporate and Fulsome Distillation, and the book of Stalking
Mephitic, poison and miasma clouds from a level 2 spell just isn't
balanced at all (compare to Poisonous Cloud, a very strong spell at
level 6). Fulsome makes the first two of these completely unlimited
in practice, and miasma is absurdly strong even with decay corpses
being rarer.

--------------------------------------------------------------------------------
19fbaf86f4 | Chris Campbell | 2012-08-20 14:20:21 +0100

Remove Stalkers
Their concept was "transmutation-based stabber" but they don't actually
achieve that at all, mainly just relying on Fulsome Distillation and
Evaporate. Earth Elementalists already have Petrify and Passwall and so
are just as good for Tmut stabbing.

--------------------------------------------------------------------------------
379090f1dd | Raphael Langella | 2012-08-20 15:06:13 +0200

New option: sacrifice_before_explore.
Defaults to false. When set, items are automatically sacrificed before
auto-explore starts. Can also be set to "prompt" or "ask" to get a
confirmation prompt.

--------------------------------------------------------------------------------
14d1690789 | Raphael Langella | 2012-08-20 14:39:13 +0200

List items on the floor which can be sacrificied.
Only the ones which make autoexplore greedy.

--------------------------------------------------------------------------------
fd9fe111f1 | Chris Campbell | 2012-08-20 12:44:13 +0100

Upgrade the bow of Krishna to a longbow

--------------------------------------------------------------------------------
8fbba26569 | Chris Campbell | 2012-08-20 12:42:39 +0100

Cap the Sword of Power at +27, linear growth instead of stepped down

--------------------------------------------------------------------------------
fed9ab14e0 | Chris Campbell | 2012-08-20 12:39:35 +0100

Add staff of death to the hints mode check for giving a resistance

--------------------------------------------------------------------------------
4406aeede6 | Chris Campbell | 2012-08-20 12:39:31 +0100

Show handedness information on magical staves

--------------------------------------------------------------------------------
257dd331eb | Chris Campbell | 2012-08-20 12:39:25 +0100

Remove double-handedness, make quarterstaves/lajatangs/dire flails two-handed
They were effectively two-handed anyway, with halved base damage being
a trap for unspoiled players who wielded them with a shield. One
side-effect of this was that normal and enhancer staves are now two-
handed for halflings and kobolds instead of just spriggans, but this
way the "staff" weapon is at least treated a bit more consistently. It
could definitely be handled more neatly though.

The concept from the distant past for double-handedness giving an extra
attack could be implemented as a weapon move instead, perhaps.

--------------------------------------------------------------------------------
5d4c922c24 | Neil Moore | 2012-08-20 04:37:03 -0400

Correct signature weapons for a few uniques.
_is_signature_weapon() was uncoditionally returning "false" for Yiuf,
Psyche, and Azrael.  This worked when only the new weapon was checked
for signaturity (3370e70) but not when both the current and new are
checked (1e2f007). Oddly, it appears to have been broken when first
introduced (709ebbd), because only the current weapon was checked.

This was and remains irrelevant for Yiuf, since he has only
MONUSE_WEAPONS_ARMOUR and therefore can't pick up new weapons at all.

Fixes #924 (again).

--------------------------------------------------------------------------------
9cd3609ffa | Neil Moore | 2012-08-20 03:27:48 -0400

Don't swap from a signature to a throwable weapon (#6080).
However, do continue to pick up throwables in the second slot.
The problem could also have affected two-weapon users if any
of them had signature weapons.

--------------------------------------------------------------------------------
67db780c01 | Neil Moore | 2012-08-20 02:39:21 -0400

Fix fsim-defending against a speed 0 monster (#6089)

--------------------------------------------------------------------------------
26cc56c5f2 | Neil Moore | 2012-08-19 22:56:40 -0400

Update bh's IRC nick in the CIA hook (was bmh).

--------------------------------------------------------------------------------
e3a4a53c1b | Michael Gagno | 2012-08-19 16:50:55 -0700

Sprint VI: Increase price of experience potions to 300.

--------------------------------------------------------------------------------
8e173424b7 | David Lawrence Ramsey | 2012-08-19 15:23:26 -0500

Put back erroneously dropped assert from the major version bump.

--------------------------------------------------------------------------------
cf438388a2 | Steve Melenchuk | 2012-08-19 21:09:42 +0200

Prevent player from suffering wrath from monster destruction of idols.

--------------------------------------------------------------------------------
7f00298339 | Adam Borowski | 2012-08-19 21:09:36 +0200

Monster Shatter, by Grunt.

--------------------------------------------------------------------------------
7f34ef51ea | Adam Borowski | 2012-08-19 20:50:15 +0200

Monster LRD, by Grunt.
This is a cherry-picked/separated/fixed version of the code that was on the
unmerged branch monster_spells.

Monsters have a proper tracer, and won't hurt allies unless enemies would be
hurt more.  Typically, if the player is solo, this means no ally can be in
range.

Obviously, I did not pick the code to insta-kill the player...

--------------------------------------------------------------------------------
e4e0d54a90 | Adam Borowski | 2012-08-19 20:07:20 +0200

A token commit to prevent people from accidental pulls --rebase.
Git in the default config would catch this situation, but a setting that's
commonly recommended around here, branch.master.rebase, breaks the
safeguards.

--------------------------------------------------------------------------------
ed95631330 | Adam Borowski | 2012-08-19 20:03:17 +0200

Bump save compat, in order to recover from monster_spells.
The problematic spells happen to be the same that add a massive number of
enchantments and alter save structure, adding save compat for those would
require a lot of work and be risky.

Thus, it's easier to rewind, and then re-apply parts that we do want to
keep.

--------------------------------------------------------------------------------
c5ec0f4079 | Michael Gagno | 2012-08-18 20:09:31 -0700

Make Sprint VI a bit easier.
Many shops have had their prices reduced, you start with two wands (but
fewer charges), there's a new shop, and you get a free potion of experience
after killing each boss. There are also some other, minor tweaks.

The goal here is not to make it so you can afford every item, but to make it
so certain items aren't overpriced. For most of the game, you should still
be quite short on gold.

As for the XP potion changes, the goal here is to try to make it so players
can reach XL 27 by the time they reach round 27 (hopefully a bit before).
Those who use the potions early should still fall short of that. Recent wins
have had character levels in the late teens or early 20's, which is rather
low.

--------------------------------------------------------------------------------
beaabae3ba | Adam Borowski | 2012-08-19 02:56:24 +0200

Lua: don't claim that 0-damage constriction (ie, "hold") is not constriction.
It differs only for some advanced tactics, and for a majority of uses
they're similar enough: they block movement, make the monster constricting
you a priority to kill, have the same blink restriction, etc.

--------------------------------------------------------------------------------
d1b75681b6 | Adam Borowski | 2012-08-19 01:08:05 +0200

A tile for Arena Sprint's succubus.

--------------------------------------------------------------------------------
755bfcadab | Adam Borowski | 2012-08-18 23:45:17 +0200

Let gather_mons/db_lint find Arena Sprint bosses.

--------------------------------------------------------------------------------
ceb56b2761 | Steve Melenchuk | 2012-08-18 14:22:48 -0600

Turn two of the just-added minmay vaults into minivaults.
They're small enough to be minivaults.

--------------------------------------------------------------------------------
3e1a2a6602 | Steve Melenchuk | 2012-08-18 14:16:46 -0600

33 floating vaults by minmay (#6082).

--------------------------------------------------------------------------------
4ebae717ac | Steve Melenchuk | 2012-08-18 14:16:46 -0600

bmh's Zot space-filling curve vaults (#6043).

--------------------------------------------------------------------------------
bbf0d93a76 | Michael Gagno | 2012-08-18 11:34:54 -0700

More balance changes to Sprint VI.
Some boss HP's have been lowered, some monster sets have been changed.

--------------------------------------------------------------------------------
33ebc3d485 | Steve Melenchuk | 2012-08-18 11:13:27 -0600

Disallow primary vaults from being used with open layouts.
This is done by means of a no_primary_vault tag.

--------------------------------------------------------------------------------
e5e6dc2467 | Steve Melenchuk | 2012-08-18 10:48:12 -0600

Don't let layout_bigger_room overwrite vaults.
Fixes #6086.

--------------------------------------------------------------------------------
12aa9f805d | Florian Diebold | 2012-08-18 14:48:52 +0200

Webtiles: Fix the server socket not getting closed for games found via 
watch_socket_dirs.

--------------------------------------------------------------------------------
898aea88d0 | Florian Diebold | 2012-08-18 13:56:37 +0200

Fix rendering of inept/ravenous mimics in webtiles.

--------------------------------------------------------------------------------
68d2098f28 | Adam Borowski | 2012-08-18 02:48:30 +0200

Fail compilation if both TILES and WEBTILES are requested.

--------------------------------------------------------------------------------
5af486d44b | Michael Gagno | 2012-08-17 13:56:28 -0700

Some balance changes to Sprint VI.
I've returned the monster spawning to its original behaviour (which is
slower). This will make the early game easier.

My main worry is that with slower spawning, players might get bored trying
to "circle around" looking for enemies to fight.

--------------------------------------------------------------------------------
0b2e7a7948 | David Lawrence Ramsey | 2012-08-17 09:47:49 -0500

Fix wording of new descriptions.

--------------------------------------------------------------------------------
0085391eed | David Lawrence Ramsey | 2012-08-17 09:47:48 -0500

Remove specific gender reference from "hungry kobold" description.

--------------------------------------------------------------------------------
40d4e0283e | Eino Keskitalo | 2012-08-17 17:27:19 +0300

Tutorial lesson 3: incorporate changes from KiSS team, edit further, put 
messages into database.
There were several changes I didn't like, but the general direction of them was 
good. The end result is a combination of the original, KiSS version plus 
additions and changes from me.

Changes include:
 * Autopickup frame explained when you see the autopickup'd item
 * Autopickup text shortened
 * The goblin that prevents autopickup later on only comes into view after you 
step on the item
 * New second floor layout, old layout used as the new third floor
 * Much less fighting on the second floor: no kobolds peltering you with stuff 
from behind the water
 * Weapon swap removed
 * Quantified drop removed
 * Since unrandarts come preidentified, tweak the ratskin cloak text accordingly
 * Less complex digging lesson
 * Three scroll id part removed, replaced with a scroll of identify for the 
amulet
 * Tutorial tile for dropping the amulet (covers dropping)
 * Third floor covers shopping
 * The end fight made optional (can buy a levitation ring to cross the water to 
exit)
 * Several tweaks and shortenings to texts
 * Removed fire resistance armour from the ending fight
 * No tutorial messages on doors (as per feedback from moxian in the tavern)

Changes from KiSS not included:
 * The level designs were too cramped; things tended to come into view 
prematurely and cause message spam
 * Preidentified items didn't feel right

Comments/TODO:
 * Left several TODO messages to the tutorial text database; mostly about 
needing tutorial texts inside shop, search etc screens
 * Not sure about the ending; it's not necessarily clear at all that the player 
can get the levitation ring from the shop (which would teach them about 
'a'bilities)
 * I made some texts longer by adding "in the inventory panel" when discussing 
clicking on items - perhaps we could assume that the player can figure that out
 * Would like to get rid of skill tips
 * The third floor is a little big/empty

--------------------------------------------------------------------------------
35608fd8ab | Adam Borowski | 2012-08-17 15:38:14 +0200

Describe Arena Sprint monsters.  Improvements/replacements welcome!

--------------------------------------------------------------------------------
7b757cfebc | Adam Borowski | 2012-08-17 14:45:44 +0200

Give Arachne an once-in-a-blue-moon chance for Olgreb's.

--------------------------------------------------------------------------------
71ad897c7b | Adam Borowski | 2012-08-17 14:37:33 +0200

Make the firewood loft slightly less boring at bigger depths.

--------------------------------------------------------------------------------
2daaa4214b | Adam Borowski | 2012-08-17 14:22:42 +0200

Fix monsters switching their signature weapon to a staff with the same enum.

--------------------------------------------------------------------------------
53dfda2ca3 | Adam Borowski | 2012-08-17 12:42:25 +0200

Generate Arachne's corpse from her tile.
The staff is prominently visible, which is bad, as it drops separately.  It
does obscure a good part of the tile, though, so removing it is not trivial.

--------------------------------------------------------------------------------
b0f4d7ce92 | Adam Borowski | 2012-08-17 11:02:57 +0200

Add a db_lint ignore for "base draconian".

--------------------------------------------------------------------------------
a60ea91a2b | Adam Borowski | 2012-08-17 11:02:57 +0200

Fetch custom monsters from the Arena Sprint.

--------------------------------------------------------------------------------
677207328a | Michael Gagno | 2012-08-16 23:28:31 -0700

Make banishment count for "monster_dies" triggerers.
Note that this change only has a minor effect in a couple of vaults. It does
not affect stuff like the Royal Jelly. The main thing changed here is that
banishment is now counted in the new Sprint map.

This may not be the best way to do this. It should be noted, though, that
monster_dies already covers pacification, dismissal (such as unsummoning),
and probably a few other cases. It's a bit of a misnomer: "monster_defeated"
would be more accurate.

--------------------------------------------------------------------------------
89c3a5dfcc | Steve Melenchuk | 2012-08-16 13:36:32 -0600

In travel code, only check for autopickup etc. if it's the player.
The travel is also used for, e.g., finding new squares to spawn
monsters; this was causing crashes in arena mode when trying to spawn
more than one monster.

--------------------------------------------------------------------------------
a096c6ad79 | Florian Diebold | 2012-08-16 16:38:29 +0200

Webtiles: Make sure to load the right version of the client javascript code.
require.js wouldn't reload modules that were already loaded, even if
they were from the wrong version. This lead to problems when switching
e.g. between git and 0.11 without reloading the page. This will
hopefully fix that.

--------------------------------------------------------------------------------
b329e862fc | Florian Diebold | 2012-08-16 16:17:24 +0200

Fix compilation.

--------------------------------------------------------------------------------
8ee1ef40b2 | Adam Borowski | 2012-08-16 16:02:43 +0200

Abort constriction when you pass out due to berserk.
Petrification is the only paralysis-like effect that allows constriction to
continue: your body is already in place, and stone stays there better than
muscles.

--------------------------------------------------------------------------------
bab5db84e8 | Adam Borowski | 2012-08-16 15:58:06 +0200

Purge several tiles from UNUSED/
These are not only replaced, but also redundant.

--------------------------------------------------------------------------------
9bf795afd3 | Adam Borowski | 2012-08-16 15:58:03 +0200

Recover the shield from old angel tile.
This and the sword (unuseable) are the only parts that differ from the
current one.

--------------------------------------------------------------------------------
8dd3ab07da | Adam Borowski | 2012-08-16 14:28:57 +0200

Correct a comment.

--------------------------------------------------------------------------------
e0f5317e6f | Adam Borowski | 2012-08-16 14:22:06 +0200

Drop some unnecessary braces.

--------------------------------------------------------------------------------
3fb21a35dc | Adam Borowski | 2012-08-16 12:38:50 +0200

Heed -TELE and Clarity on artefacts worn/wielded by monsters.
These two properties are quite easy to notice once you get the artefact
into your hands; the monster not getting some hp is not a high priority fix.

This commit doesn't handle identification -- FIXME.

--------------------------------------------------------------------------------
fa8cd6bfc4 | Adam Borowski | 2012-08-16 12:32:39 +0200

Art properties shouldn't work for a monster's non-wielded weapon (bow, etc).
Only two-weaponers (blademasters, 2h ogres, ettins) actually use the
alternate weapon slot as something more than a swap.

--------------------------------------------------------------------------------
4d2d579555 | Adam Borowski | 2012-08-16 12:05:14 +0200

Give the faerie dragon armour a small chance of non-randart properties.
These are:
* 1/20 chance for clarity
* 1/20 chance for +1..+10 MP
* 1/21 chance for -10..+10 HP

--------------------------------------------------------------------------------
c738f57f9f | Adam Borowski | 2012-08-16 11:55:37 +0200

Fix the faerie dragon armour being rejected 99 times before being taken as-is.

--------------------------------------------------------------------------------
a3b5925151 | Michael Gagno | 2012-08-15 20:41:17 -0700

Remove the Enchantress from Sprint VI.
All she does is banish you.

This leaves the spriggan set with only one boss enemy (agnes). Should re-add
a second one to balance things out.

--------------------------------------------------------------------------------
3573314fb5 | Michael Gagno | 2012-08-15 19:35:07 -0700

A bunch of small tweaks to Sprint VI.
The main change here is that "directional" rounds are more common, and it's
more likely to get multiple enemies spawning at once.

--------------------------------------------------------------------------------
dc99741f44 | Michael Gagno | 2012-08-15 19:35:06 -0700

Sprint VI: Significantly decrease the length of the "extended" portion.
The final round is 42 now, instead of 57. Max runes is 10, down from 15.

--------------------------------------------------------------------------------
ec42fa41e5 | Adam Borowski | 2012-08-16 01:32:35 +0200

Remove the spell_usage dump entry.
If someone has it in the config, it is silently upgraded to action_counts.

--------------------------------------------------------------------------------
cf389e51ce | Michael Gagno | 2012-08-15 15:04:30 -0700

Sprint VI: Remove eldritch tentacle waves.
This was an extremely bad idea; sorry to anyone who had to experience this.

--------------------------------------------------------------------------------
68307dda27 | Adam Borowski | 2012-08-15 22:00:59 +0200

Don't generate rings or randarts with *TELE in Sprint.
They just cause unnecessary spam.  Scrolls of teleportation already get skipped.

--------------------------------------------------------------------------------
6dea7328e9 | Florian Diebold | 2012-08-15 21:56:09 +0200

Clean up the webtiles socket when crashing.

--------------------------------------------------------------------------------
b08aebe72e | Steve Melenchuk | 2012-08-15 12:48:51 -0600

QUAD DAMAGE emits an Orb-style glow while in effect.
It's the same radius, only all blue instead of mutagenic.

--------------------------------------------------------------------------------
d62a275fae | Florian Diebold | 2012-08-15 17:42:04 +0200

Webtiles: Fix ghost games, add some more logging.
This should fix the ghost games on cßo. I'm not so sure about the ones
on cdo, since they don't show the corresponding log entries, but those
may actually already have been fixed with the recent changes to
process handling (which aren't yet running there).

--------------------------------------------------------------------------------
d9cd5ffbdc | Steve Melenchuk | 2012-08-15 09:37:49 -0600

Fix occasional crash when using layout_basic with primary vaults.
It was assigning a trap to slot 0 without checking if it had been used
already, causing a later find_trap() to fail.

--------------------------------------------------------------------------------
90730a6bcb | Steve Melenchuk | 2012-08-15 09:37:49 -0600

Allow levels with primary vaults to use all applicable layouts.
This includes tweaks to layout_basic and layout_roguey to make them
compatible with being placed after primary vaults.

--------------------------------------------------------------------------------
b162e9694c | Steve Melenchuk | 2012-08-15 09:37:48 -0600

Tweak allowed Zot layouts and their weights in Zot.
This adds _rooms and _misc to the allowed layouts (which previously only
included _basic and _loops_misc), and weights them all equally in Zot.

--------------------------------------------------------------------------------
315a0eaac2 | Steve Melenchuk | 2012-08-15 09:37:48 -0600

Change Zot colours to extra vaults; tweaks to layouts for Zot use.
These allow Zot:1-4 to use map layouts other than the standard rooms
layout.

The two city layouts are disallowed in Zot; anything else normally
available at that depth is fair game. Walls in Zot:1-4 are always
generated as rock (this causes the colours to show).

--------------------------------------------------------------------------------
652d019a04 | David Lawrence Ramsey | 2012-08-15 09:38:07 -0500

Fix wording and punctuation of new descriptions.

--------------------------------------------------------------------------------
e5072fcd21 | Adam Borowski | 2012-08-15 14:51:25 +0200

Descs for detected altars and portals.

--------------------------------------------------------------------------------
e5f5bbcadb | Adam Borowski | 2012-08-15 14:51:25 +0200

Hide Hive from gather_branches.

--------------------------------------------------------------------------------
422dbc8ad3 | Adam Borowski | 2012-08-15 14:51:25 +0200

Ignores for webtiles state and spew.

--------------------------------------------------------------------------------
a314da9289 | Michael Gagno | 2012-08-15 02:20:56 -0700

Sprint VI: Seal the exit in the extended endgame portion.
It will re-open whenever a rune appears, and re-seal again when the next
round starts. This takes a way a massive safety net which removed any
element of risk. If you're insane enough to clear round 57, the exit stays
open permanently (since the game is done).

This commit also renames the "demonic siren" to "succubus". Thanks to Elynae
for this idea.

--------------------------------------------------------------------------------
8a0affe986 | Chris Campbell | 2012-08-15 06:27:25 +0100

Don't let monsters use reaching to attack into sanctuary

--------------------------------------------------------------------------------
ccb26012af | Sven Brauch | 2012-08-14 20:53:36 -0600

Some simple new entry vaults.
Signed-off-by: Steve Melenchuk <smelenchuk@gmail.com>

--------------------------------------------------------------------------------
31b732ce4d | Steve Melenchuk | 2012-08-14 20:26:33 -0600

Nine minivaults, a float vault, and an encompass vault (HangedMan).
From #5871. hangedman_minor_magic has had its depth ranged in D narrowed
to D:9-11, and the wizards replaced with deep elf mages.

--------------------------------------------------------------------------------
88e088f941 | Steve Melenchuk | 2012-08-14 20:26:33 -0600

Allow "ring" and "amulet" to be specified as item classes in item specs.
Thus, one can request "any ring" or "any amulet" to be placed and be
guaranteed to get a ring or amulet.

--------------------------------------------------------------------------------
d08efd8d2f | David Lawrence Ramsey | 2012-08-14 20:13:23 -0500

Add wording and spacing fixes to new ghost speech.

--------------------------------------------------------------------------------
5db1624c8c | Steve Melenchuk | 2012-08-14 19:05:45 -0600

Two encompass vaults.
These incorporate functionality for preferentially placing portals to
Abyss/Hell/Pan, introduced in e062c074.

grunt_profane_halls is a large, hellish temple - completely bypassable
unless it appears at the very bottom of the dungeon, in which case the
portal to Zot appears at the very centre.

grunt_twisty_little_passages is a series of confusingly laid out
passageways that frequently double back upon themselves, made of an
eclectic mix of wall types.

--------------------------------------------------------------------------------
1222d44c7d | Steve Melenchuk | 2012-08-14 18:49:14 -0600

Respect no_* map tags in subvaults.
If a subvault with, e.g., no_monster_gen is placed in a larger vault,
the subvault area is now masked properly.

Fixes #6067.

--------------------------------------------------------------------------------
67419842d8 | Michael Gagno | 2012-08-14 17:45:49 -0700

Don't attempt to spawn killer bee larvae in Sprint VI.

--------------------------------------------------------------------------------
bbf79be500 | Michael Gagno | 2012-08-14 17:25:46 -0700

Fix a small aesthetic mistake.

--------------------------------------------------------------------------------
113f73ccb0 | Michael Gagno | 2012-08-14 17:01:50 -0700

Sprint VI: Balance tweaks.

--------------------------------------------------------------------------------
36dabcd13f | Michael Gagno | 2012-08-14 16:37:45 -0700

Sprint VI: More misc fixes.

--------------------------------------------------------------------------------
db8739dcb1 | Michael Gagno | 2012-08-14 16:01:26 -0700

Decrease shop prices in sprint VI.
With spawn rates faster than they were originally, it's harder to get large
gold bonuses. This meant that the items were more expensive than they were
intended to be... particularly the antiques stores.

--------------------------------------------------------------------------------
f800e34903 | Michael Gagno | 2012-08-14 16:01:21 -0700

Sprint VI: Fix lightning rounds and clarify the orb message.

--------------------------------------------------------------------------------
43b61fe591 | Michael Gagno | 2012-08-14 16:01:13 -0700

Sprint VI: Rewrite the way monsters are picked, and increase spawn rate.
Instead of using one huge table of monster specs, there are now several
different ones: for round 1-2, 3-5, 6-10, 11-15, 15-20, 20-30, and 30-57.
This should make it easier to balance things, and make it less likely you'll
get something boring in later rounds.

As for the spawn rate, it now increases rapidly if a round takes more than
100 turns.

--------------------------------------------------------------------------------
51ce573d47 | Michael Gagno | 2012-08-14 16:01:05 -0700

Miscellaneous fixes to Sprint VI.
Fixed a cosmetic mistake in the map, and fixed the arena points formula. I
also added a lightning rod to one of the shops.

--------------------------------------------------------------------------------
f8f48ff69d | Michael Gagno | 2012-08-14 16:00:52 -0700

Sprint VI.
There is a lengthy comment that explains the gameplay, but in short: it's a
single room, and monsters spawn in it in a series of increasingly more
difficult battles. The final battle is meant to be all but impossible, but
you are allowed to escape with the orb far before that.

This commit also adds a lua binding for checking if you have the orb of zot.

--------------------------------------------------------------------------------
b838e98709 | Florian Diebold | 2012-08-15 00:40:54 +0200

Webtiles: Log ProcessHandler id.

--------------------------------------------------------------------------------
279e814fa8 | Neil Moore | 2012-08-14 16:44:41 -0400

Remove a duplicated ghost speech line.
It was supposed to be Trog's, not Vehumet's.

--------------------------------------------------------------------------------
d9e1c6edd1 | Neil Moore | 2012-08-14 16:37:20 -0400

A few more pieces of ghost speech (MyOtheHedgeFox).

--------------------------------------------------------------------------------
b2a473afeb | Neil Moore | 2012-08-14 16:26:47 -0400

God-specific player ghost speech (minmay, dpeg, Grunt).

--------------------------------------------------------------------------------
d2b6c5e7f1 | Neil Moore | 2012-08-14 16:26:47 -0400

Use the ghost's god, not the player's, for speech.

--------------------------------------------------------------------------------
fc704a0802 | Neil Moore | 2012-08-14 16:26:47 -0400

Allow ghosts of good worshippers to remember their religion.
The monster's god is still GOD_NO_GOD, but we leave the god
in ghost->religion so we can use that for messages.

--------------------------------------------------------------------------------
b5b7459297 | Florian Diebold | 2012-08-14 22:18:43 +0200

Webtiles: Fix idle times for games started from DGL.
This is done by making activity on the socket reset the idle time;
except if a spectator just joined, because that also creates messages
without any actual activity from the player.

--------------------------------------------------------------------------------
3c0755d264 | Adam Borowski | 2012-08-14 15:31:21 +0200

Drop animal skin drops.
Someone who can kill a yak has no uses for hides whatsoever, they're nothing
but floor spam.

Completely removing animals skills outright is also tempting:
* Zhor is an unrandart, a redefine with same stats is seamless
* Pikel's slaves/etc can walk naked (ie, with purely described clothing)
  or wear robes

The only semi-relevant case are SpBe/TrBe/OgBe who could look slightly iffy
in a robe.

But then, we can't buff Okawaru that much by removing his trademark gifts,
can we?

--------------------------------------------------------------------------------
d3df7ad221 | David Lawrence Ramsey | 2012-08-14 07:59:33 -0500

Make the yak genus monster check for dropping hides match the one for 
MDSC_LEAVES_HIDE.
Are sheep supposed to be in the yak genus (because they currently aren't)?

--------------------------------------------------------------------------------
700806f7e9 | Adam Borowski | 2012-08-14 13:03:23 +0200

Cap Oka piety gain from vault-placed corpses.
This should never trigger in typical games, but it's better to be safe than
sorry.

--------------------------------------------------------------------------------
65b3066fd5 | Adam Borowski | 2012-08-14 13:03:23 +0200

Revert "Don't grant Okawaru piety for vault-placed corpses."
It's unnecessarily spoilery (that you should chop up and eat the corpses,
saccing other stuff instead), and massively OOD corpses are bad for other
reasons as well -- Animate Dead/Skeleton would clear up a whole level
without any risk, or possibly multiple levels as there's more than one
minotaur and you can drag corpses downstairs.

This reverts commit 0f826e157f98fec98dfc07b3bdf92abb70fd1dce.

--------------------------------------------------------------------------------
9f9d707a19 | Adam Borowski | 2012-08-14 13:03:23 +0200

Make troll and yak genus monsters count as those for dropping hides.

--------------------------------------------------------------------------------
8ff62ecd17 | Chris Campbell | 2012-08-14 11:39:35 +0100

Don't prompt ignite poison when immune to fire clouds, add a cast message
Messages for every single cloud/item that gets ignited would probably
be too spammy.

--------------------------------------------------------------------------------
f514b1f1f1 | Chris Campbell | 2012-08-14 11:35:29 +0100

Whitespace fixes

--------------------------------------------------------------------------------
8ea3d2f318 | Nicholas Connelly | 2012-08-14 10:26:42 +0100

Added warning for casting Ignite Poison while in poison/meph clouds or standing 
over poison items
Added warning for casting Ignite Poison while in or over poison

--------------------------------------------------------------------------------
a9a4e25ffd | Chris Campbell | 2012-08-14 06:27:27 +0100

Make Azrael hellfireproof

--------------------------------------------------------------------------------
3b73544b84 | Adam Borowski | 2012-08-14 02:26:06 +0200

wad's set of tree tiles.
A few of them are sets of two on one tile, not sure if that's a good idea.
This looks good and helps fight the grid effect, but on the other hand, some
might have a problem with the tooltip saying "tree" in singular.

--------------------------------------------------------------------------------
3ef38836e3 | Adam Borowski | 2012-08-14 02:00:55 +0200

Two of Denzi's equipment tiles, apparently misplaced.
They're supposed to be given to holies, but since the alternate tile code is
a mess, I'm putting them into UNUSED for now.  Could have them in, available
for the doll editor, but no one knows about it, no one uses it, and thus
extra tiles are wasted.

--------------------------------------------------------------------------------
118cb57550 | Neil Moore | 2012-08-13 17:44:16 -0400

Don't flag games as 'tiles' with watch_socket_dirs.

--------------------------------------------------------------------------------
f6aea0e460 | Florian Diebold | 2012-08-13 19:16:56 +0200

Move the worker ant tile down (ontoclasm).
It looked like it was levitating (except for the shadow).

--------------------------------------------------------------------------------
2fac8e9e4a | Florian Diebold | 2012-08-13 19:10:19 +0200

Tweak some tile weights (roctavian).

--------------------------------------------------------------------------------
fcc9e36297 | Florian Diebold | 2012-08-13 18:03:11 +0200

Webtiles: For games started from DGL, use the token in the socket filename to 
determine the version.
For example, if the socket filename is username:sprint-web-trunk.sock,
it will treat the game as a sprint game. If the token is not a valid
id from the games dictionary in config.py, it will fall back to using
the first version with matching socket path.

--------------------------------------------------------------------------------
748f27823f | Michael Gagno | 2012-08-13 03:10:16 -0700

Move evilmike_butchery deeper in the dungeon.
Giving out that much food early is a bad idea.

--------------------------------------------------------------------------------
0f826e157f | Neil Moore | 2012-08-13 00:57:22 -0400

Don't grant Okawaru piety for vault-placed corpses.
As a side effect, phoenix corpses placed by vaults won't revive.  That
can be fixed if it matters.

--------------------------------------------------------------------------------
a38f512692 | Neil Moore | 2012-08-13 00:57:22 -0400

Correctly handle corpse HD for Okawaru sacrifice.
It was being reset by define_monster().  Also recalculate the maxhp,
since that is also important to exper_value() and hence to Okawaru
piety.

--------------------------------------------------------------------------------
f218ddaa65 | Neil Moore | 2012-08-13 00:57:22 -0400

WebTiles: correct row/columns ttyrec metadata.

--------------------------------------------------------------------------------
963d729fdd | Steve Melenchuk | 2012-08-12 19:15:37 -0600

Get ability menu to once again handle doing and describing abilities.
Previously it was only doing one or the other - a fact somehow missed in
my testing of the new ability menus.

--------------------------------------------------------------------------------
7c20da92a6 | Florian Diebold | 2012-08-13 00:24:34 +0200

dd's axe tiles (#5728).

--------------------------------------------------------------------------------
190f7cb64b | Policarpo Caballero | 2012-08-12 21:47:57 +0200

Monsters with M_BLOOD_SCENT can smell blood regardless of the player's race.

--------------------------------------------------------------------------------
afdc8f4ecd | Adam Borowski | 2012-08-12 21:42:33 +0200

Eradicate remaining uses of std::wstring on non-Windows.
They cause problems on Android, and were slightly wrong anyway (if a
single line of an included config file is encoded in UTF-16 and has a
monstrous length, we'd waste twice as much memory as needed to hold it.
A world-shattering bug.).

--------------------------------------------------------------------------------
c290972833 | Adam Borowski | 2012-08-12 21:42:32 +0200

Don't pointlessly define utf8_to_16() on non-Windows.
While it's not much code by itself, instantiating std::wstring templates is.

--------------------------------------------------------------------------------
42a4e95396 | Adam Borowski | 2012-08-12 21:42:32 +0200

Death to std::wstringstream!
There's no point in accumulating a string of wchar_t and then immediately
converting it to utf8 if we can accumulate it in utf8.  This solves problems
on Windows and Android (neither of whom can run webtiles servers currently)
and reduces the code size somewhat.

--------------------------------------------------------------------------------
225e6d958a | Florian Diebold | 2012-08-12 19:58:56 +0200

Fix an error in Webtiles.

--------------------------------------------------------------------------------
3ca5652747 | Steve Melenchuk | 2012-08-12 09:40:41 -0600

Show invocations in local tiles ability tab even when silenced.
They will, however, be grayed out as unusable, and fail to activate
under those conditions.

The code to do this should allow the console menu to also display them.

--------------------------------------------------------------------------------
2842a5216a | Steve Melenchuk | 2012-08-12 09:14:36 -0600

Reinstate '?' as a toggle key for the abilities menu.
This is consistent with the old menu behaviour.

--------------------------------------------------------------------------------
661b8711b8 | Steve Melenchuk | 2012-08-11 21:19:53 -0600

Fix crash on pressing ! in console ability menu.
This was introduced by 28a9c8c8's adjustments to the ability menu, which
weren't quite complete.

--------------------------------------------------------------------------------
a84253447f | Steve Melenchuk | 2012-08-11 19:38:00 -0600

Fix monster casting of Dig.
Previously, they'd never use it because of conditions surrounding when
the monster spell handling was activated; this adds an exception to
those conditions for monsters that have Dig.

--------------------------------------------------------------------------------
f641aacbe3 | Steve Melenchuk | 2012-08-11 17:16:52 -0600

Reduce ability hunger-related message spam in debug mode.
Since ability usage is getting checked for whenever the abilities menu
is being updated, only print the message if the ability's ready to be
used (i.e. only where the function used to be called).

--------------------------------------------------------------------------------
fdd73ddd85 | Steve Melenchuk | 2012-08-11 14:32:40 -0600

dd's lava tiles (#5875).
This includes an implementation of the requested "ping-pong" between the
three sets of lava tiles.

--------------------------------------------------------------------------------
6835b8b476 | Steve Melenchuk | 2012-08-11 14:15:23 -0600

Denzi's sixfirhy, silent spectre, and seraph tiles (#6057).
This uses the unadorned seraph tile for the purpose of showing equipped
weapons.

--------------------------------------------------------------------------------
a534405274 | Steve Melenchuk | 2012-08-11 13:56:06 -0600

Update changelog through 0.11-a0-3206-g559a7a8.

--------------------------------------------------------------------------------
559a7a88b1 | Steve Melenchuk | 2012-08-11 13:40:26 -0600

Abilities tab for local tiles, using the fancy new abilities tiles.
This works like the spell tab, but with intrinsic/evocable abilities,
invocations, and ZotDef abilities.

--------------------------------------------------------------------------------
28a9c8c8c0 | Steve Melenchuk | 2012-08-11 11:34:04 -0600

Show tiles in Ability menu, using dd's ability tiles (#6054).
This also adds redone backgrounds for equipped (and cursed equipped)
items to match the recently added new item slot background.

--------------------------------------------------------------------------------
a71ade18b5 | Steve Melenchuk | 2012-08-11 09:06:07 -0600

Have detected altars and shop/portals show up again in console.
Fixes a bug introduced by 65b7d4d6.

--------------------------------------------------------------------------------
1f45389fd7 | Raphael Langella | 2012-08-11 13:34:33 +0200

Revert "Cells with known traps are never greed inducing."
The idea was to prevent Ely followers from constantly going to traps which
have been triggered by monsters, but it seems it's doing more harm than
good. It's a minor issue anyway since it goes away after ** piety.

Might need a more radical fix like no piety for trap ammunition. Or no
piety for ammunition. Or no mechanical traps.

This reverts commit 4e710e5d84f1725ff3f9384dccf95b6247017693.

--------------------------------------------------------------------------------
8fa3fa7dfe | Florian Diebold | 2012-08-11 13:28:36 +0200

Fix compilation.

--------------------------------------------------------------------------------
d16c68484b | Florian Diebold | 2012-08-11 13:22:14 +0200

roctavian's spell projectiles (#5638).
This is everything from the original submission, except the drain
tiles. Those are in unused; I couldn't decide whether one of them
looks better than the original.

--------------------------------------------------------------------------------
eef6c5a92b | Florian Diebold | 2012-08-11 13:20:32 +0200

ontoclasm's recoloured poison icon (#4527).
This is mainly for consistency with the new brand icons.

--------------------------------------------------------------------------------
e06401b106 | Florian Diebold | 2012-08-11 13:05:14 +0200

roctavian's hell portal tiles (#5633).

--------------------------------------------------------------------------------
6e5327a5a5 | Steve Melenchuk | 2012-08-10 22:39:56 -0600

ontoclasm's base scroll tiles (#5862).
I've assigned the following ribbon colours to the following spells:

- Red:    holy word, torment, silence (wide-area-of-effect spells).
- Blue:   fear, fog (non-translocation escape spells)
- Green:  enchant weapon I/II/III, enchant armour, recharging, vorpalise
          weapon (item improvements);
- Purple: blinking, teleportation (translocation escape spells);
- Grey:   curse armour/jewellery/weapon, immolation, noise, random
          uselessness (harmful/useless scrolls);
- Tan:    amnesia, identify, magic mapping, remove curse (utility
          spells);
- Teal:   acquirement (it deserves a colour of its own on account of its
          importance, and teal matches the standard text colour);
- Brown:  unholy creation (doesn't really fit into any of the above, and
          there was a colour left).

Unknown scrolls have no ribbons.

--------------------------------------------------------------------------------
762255a78f | Steve Melenchuk | 2012-08-10 22:02:53 -0600

roctavian's teleport and Zot trap tiles (#6045).
My primary motivation for adding these in is consistency with the
teleport icon and with the other trap designs.

--------------------------------------------------------------------------------
65b7d4d640 | Steve Melenchuk | 2012-08-10 21:49:48 -0600

roctavian's detected altar and shop/portal tiles (#6041).
This adds in two new feature types, DNGN_UNKNOWN_ALTAR and
DNGN_UNKNOWN_PORTAL, to which these tiles are assigned; the magic
mapping code returns these two features for unknown altars and portals
respectively.

--------------------------------------------------------------------------------
7d5a1a1dae | Steve Melenchuk | 2012-08-10 19:45:52 -0600

dd's new GUI tiles (#6054).
The ability/invocation tiles will need some additional backend work
before they can be added.

--------------------------------------------------------------------------------
6742495077 | Steve Melenchuk | 2012-08-10 19:05:59 -0600

Add default config file parts to Makefile install target.
The files were added in 8046df72, but weren't installed, causing the
game to fail to start.

--------------------------------------------------------------------------------
d5b88ed2bc | Steve Melenchuk | 2012-08-10 18:51:28 -0600

white_noise's new entrance and edited stair tiles (#6050).

--------------------------------------------------------------------------------
f924a6d7e0 | Jon Knapp | 2012-08-10 20:15:40 -0400

Fixed an item ordering bug in the known menu.
The list was ordered alphabetically where the unknown items actually
have the name 'bugginess', so items with names starting with an a or b
ended up in front.

[Commit message updated. -neil]

--------------------------------------------------------------------------------
8138ef583c | Adam Borowski | 2012-08-11 00:32:47 +0200

Make note_skill_levels default to what it used to, make it a simple list option.
No point in having it be a full list -- this way, it can be easily replaced,
and having to type the old values is not a chore.  You can += or -= too if
you really want.

(Really, this option and friends should just receive an optioncide...)

--------------------------------------------------------------------------------
c55ee13b0e | Adam Borowski | 2012-08-10 22:25:58 +0200

List available translations.
This reflects the state of Transifex not our tree: most of text is
"unreviewed" and thus not pulled; there is no reason a formal review would
be beneficial at this stage so I guess we'll pull everything as-is.

--------------------------------------------------------------------------------
af7ead0db2 | Adam Borowski | 2012-08-10 21:14:07 +0200

Move note colouring to menu_colours as well, following the option name.
It really should be named something without "menu"...

--------------------------------------------------------------------------------
33cfec7b58 | Adam Borowski | 2012-08-10 21:11:03 +0200

Evict three stray menu colours to the defaults.
I did add a couple of commented out examples, though, to make it easier
for people to add ones of their own; stock ones had a value as such
examples before.

--------------------------------------------------------------------------------
e59e16f371 | Adam Borowski | 2012-08-10 21:02:15 +0200

Add stubs for removed config files, for compat reasons.
In a different commit than their move to dat/defaults/, to let git properly
track their history without expensive switches.

I wonder whether we should axe these for 0.11 and be done with requiring
manual changes to config files, or keep them for seamless upgrades.  The
latter has the downside of leaving people stuck with old defaults.

--------------------------------------------------------------------------------
8046df72c2 | Adam Borowski | 2012-08-10 20:48:54 +0200

Hardcode inclusion of default config file parts.
They're now effectively working as if they were written right in initfile.cc,
not being visible to the user.

For now, this makes it impossible to remove list items defined there.

--------------------------------------------------------------------------------
20a4dbfc3d | Adam Borowski | 2012-08-10 19:55:39 +0200

Make dashes look more dashing in new descs.

--------------------------------------------------------------------------------
31e1bc3f02 | Adam Borowski | 2012-08-10 19:36:49 +0200

Don't make the desc for perm bazaar suggest it's a timed portal.
I guess that transifex doesn't show comments, making it look like the bazaar
has been doubled by some mistake.

--------------------------------------------------------------------------------
c8bb0a582d | Steve Melenchuk | 2012-08-10 09:52:24 -0600

When clearing monster data between levels, clear constriction data properly.
810e6f85 removed clearing constriction data from monster::reset() and
introduced an assert() that monsters were not being constricted when
they were reset. While this would work for freshly-initialised monsters,
the level builder and level loading code both used reset() to clear the
entire array of monsters in preparation for new monster data, causing a
crash on failed assertion whenever the player tried to leave the level
when any monster on the level was constricting something.

This commit introduces a reset_all_monsters() function to replace the
snippets where the monster data was being cleared, and clears
constriction data for valid monsters before calling reset() on them.

Fixes #6055.

--------------------------------------------------------------------------------
c486b34704 | Neil Moore | 2012-08-10 10:00:04 -0400

Indentation fix.

--------------------------------------------------------------------------------
306787e1bc | Raphael Langella | 2012-08-10 15:49:31 +0200

Fix infinite loop when starting autoexplore over sacrificiable items.

--------------------------------------------------------------------------------
4e710e5d84 | Raphael Langella | 2012-08-10 15:06:39 +0200

Cells with known traps are never greed inducing.

--------------------------------------------------------------------------------
f283972ef1 | Raphael Langella | 2012-08-10 14:59:05 +0200

Fix a few regressions from 94220091

--------------------------------------------------------------------------------
9422009104 | Translators | 2012-08-10 00:42:09 +0200

Updated english descriptions (Grimm).
Synced from transifex.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
03db3e267a | Raphael Langella | 2012-08-10 00:19:54 +0200

Some optimizations to the greedy_sacrificiable.
Move the "can autopickup" and "god wants sacrifices" checks to the beginning
of the travel instead of doing it for each stash.

--------------------------------------------------------------------------------
3d99e9bede | Steve Melenchuk | 2012-08-09 12:39:25 -0600

Prevent col:disco from throwing errors when applied to monsters.
If people are going to do this anyway, it might as well be relatively
bug-free.

Fixes #6053.

--------------------------------------------------------------------------------
dba5ced814 | Steve Melenchuk | 2012-08-09 08:54:34 -0600

On OS X 10.8, use the correct path for Xcode SDKs.
Apple moved them in 10.8, so this code snippet looks for the new
location and uses it if appropriate; if the new location doesn't exist,
use the original location.

Related to #6049, though this has little to do with the approach the
reporter there is taking.

--------------------------------------------------------------------------------
3bb349f0ee | Adam Borowski | 2012-08-09 14:35:28 +0200

Don't mess with other resistances when giving a pghost a vulnerability.

--------------------------------------------------------------------------------
2be3a43463 | Adam Borowski | 2012-08-09 14:35:28 +0200

Fix two signedness warnings.
A bit strange that the compiler doesn't realize that sizeof() is a constant
there.

--------------------------------------------------------------------------------
da49e36a81 | Adam Borowski | 2012-08-09 14:35:28 +0200

Make inline functions static.
This avoids unnecessary non-inlined copies.

Also, we had a few large functions that had no reason for inlining, let's
have them be regular ones.

I also made "static inline" always use the same order, for easier grepping.

--------------------------------------------------------------------------------
4a61b4e1c3 | Adam Borowski | 2012-08-09 14:35:27 +0200

Fix conflicting declarations of ends_with().
For historical reasons (and a C99 misdesign), the compiler doesn't complain,
but it still doesn't make it right.

--------------------------------------------------------------------------------
a4452ec129 | Florian Diebold | 2012-08-09 11:46:23 +0200

Fix and simplify the sending of the map in webtiles.

--------------------------------------------------------------------------------
a6f323efd0 | Raphael Langella | 2012-08-09 00:43:31 +0200

A few fixes to greedy_sacrificiable.
Disabling autopickup doesn't disable it.
It respects disabled item types for Nemelex.
It ignores dropped and thrown items.

Might still have some issues with some of the explore_stop options, I
haven't tested.

--------------------------------------------------------------------------------
ebff929d04 | Adam Borowski | 2012-08-08 20:57:25 +0200

Revert accidental deletion of a quote.

--------------------------------------------------------------------------------
f62272a909 | Adam Borowski | 2012-08-08 15:55:12 +0200

Consistently use — for dashes, - for hyphens in descript/*.txt

--------------------------------------------------------------------------------
a6d580a064 | Adam Borowski | 2012-08-08 15:55:12 +0200

Update changelog to 0.11-a0-3148-g097cb9d.

--------------------------------------------------------------------------------
8e9ce489a9 | Adam Borowski | 2012-08-08 15:55:12 +0200

Drop a bunch of parentheses from return statements.
This is incomplete, partially because of me getting bored, partially because
of doubts about the point of leaving simple addition/etc in parentheses.

--------------------------------------------------------------------------------
1401ecdd7c | Adam Borowski | 2012-08-08 15:55:11 +0200

Formatting fixes.

--------------------------------------------------------------------------------
f4edcf281e | Florian Diebold | 2012-08-08 13:58:30 +0200

Webtiles: Implement experimental support for watching games started from DGL.
The server watches the various socket directories for new files of the
form ${username}:${token}.sock using inotify and connects to them and
lists them in the lobby.

This has to be enabled with watch_socket_dirs = True in config.py, and
DGL needs to be configured to start crawl with -webtiles-socket ${some
filename of the above form}.

--------------------------------------------------------------------------------
a0c0049d56 | Raphael Langella | 2012-08-08 08:02:29 +0200

Exclude Ashenzari from the new greedy_sacrificiable.
It doesn't make sense for him to make ?RC greedy.

--------------------------------------------------------------------------------
891905d7d3 | Neil Moore | 2012-08-08 01:09:18 -0400

Merge "Lua files" and "Lua" sections of options_guide.txt.

--------------------------------------------------------------------------------
666ce1df5e | Neil Moore | 2012-08-08 01:09:18 -0400

Add Translators to CIA hook.

--------------------------------------------------------------------------------
28b190a1c6 | Chris Campbell | 2012-08-08 01:02:00 +0100

Remove some unecessary references to Lua files from options_guide.txt

--------------------------------------------------------------------------------
d148e65f1c | Adam Borowski | 2012-08-08 00:50:34 +0200

Sync manual from the wiki.

--------------------------------------------------------------------------------
b2ee850f8e | Adam Borowski | 2012-08-08 00:50:34 +0200

A nicer message on 'P' with no carried jewels (ChrisOelmueller).

--------------------------------------------------------------------------------
2f7c5b71bd | Translators | 2012-08-08 00:42:11 +0200

Transifex sync.
Seems like most new translations haven't been reviewed. Maybe next time I'll
pull them all.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
fa68db5f09 | Raphael Langella | 2012-08-08 00:42:11 +0200

Simplify.

--------------------------------------------------------------------------------
1f7fde6d1b | Translators | 2012-08-08 00:42:11 +0200

Transifex format fix.
Signed-off-by: Raphaël Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
76d0bde523 | Raphael Langella | 2012-08-08 00:42:10 +0200

Document the new greedy_sacrificiable option to explore_stop.

--------------------------------------------------------------------------------
bfecfe2c7d | Raphael Langella | 2012-08-08 00:42:10 +0200

New title screen (white_noise).

--------------------------------------------------------------------------------
626f470a02 | Neil Moore | 2012-08-07 18:16:07 -0400

WebTiles: properly salt passwords.
The previous method used the password itself as the salt, which among
other problems leaked the first two characters of plaintext.  Instead,
randomly generate a salt.

With glibc and Solaris crypt(3), other algorithms are supported.  For
example, set  crypt_algorithm = "1"  to use MD5, or  "6"  to use
SHA-512.  In this case, the length of the salt string may be specified
with crypt_salt_length .  The default, "broken", continues to use the
old method (salting with the password itself).  This leaks the first
two characters of the password, but is unfortunately necessary for
compatibility with unpatched dgamelaunch.

A patch for dgamelaunch, using SHA-512 (algorithm "6") by default, is
available at:
    http://dobrazupa.org/0001-Properly-salt-passwords.patch

--------------------------------------------------------------------------------
2683a443f0 | Neil Moore | 2012-08-07 18:14:56 -0400

Support Python 2.6 again.

--------------------------------------------------------------------------------
0292ea18d5 | Raphael Langella | 2012-08-07 14:23:26 +0200

Don't show the makefile greeter if a previous build was successful.

--------------------------------------------------------------------------------
097cb9dafc | David Lawrence Ramsey | 2012-08-06 21:19:37 -0500

Add formatting fix.

--------------------------------------------------------------------------------
1cee2155fb | Raphael Langella | 2012-08-06 23:36:37 +0200

Give a cosmetic flag to highly enchanted items.
1 chance in 3 for +3 items, 2 chances in 3 for +4 and guaranteed for +5.
Weapons rolls separately for accuracy and damage enchantment.

Also uniformise the curse chance: cursed armours have 1 chance in 3 of
getting the cosmetic flag, just like weapons (instead of 2/3).

--------------------------------------------------------------------------------
e756234482 | Raphael Langella | 2012-08-06 23:23:47 +0200

New option for explore_stop: greedy_sacrificiable.
Defaults on. Makes explore go to sacrificiable items without the mess of the
previous implementation.
Should fix #5849, #6002 and #6003.

--------------------------------------------------------------------------------
7ff7e2ba65 | Raphael Langella | 2012-08-06 21:51:24 +0200

Revert "Autoexplore visit items that can be sacrificed."
This reverts commit 1999034cde46cf2d91178cd9cd31ebe0bd955616.
This reverts commit 754e3deff9543a2be398699c2565d589cfdc95d2.
This reverts commit 47a8935d7344bcb8e316d8b8265ababa51ac09ba.
This reverts commit 2048c011fb284325fb243a8a3821e38bc88fe4a9.
This reverts commit ad1d6ef9a29b776e46d23243e5714b201667e922.
This reverts commit f20ff8e91eea9143669102363f13858a12206814.

--------------------------------------------------------------------------------
8ab7e6dbd3 | Adam Borowski | 2012-08-06 17:40:15 +0200

Let staves of fire/earth/cold/air/poison/death do something for pghosts.
They're merely mapped to weapon brands, which is a pretty bad approximation,
but that's better than nothing.

--------------------------------------------------------------------------------
afd32e9a7d | Adam Borowski | 2012-08-06 15:40:50 +0200

Fix uninitialized attack flavour for player attacks.
The code paths are not unified yet so it had _almost_ no effect: for
players, the only reference is a check for AF_CRUSH (= 33).  Thus, if that
32-bit variable on the stack happens to match, you'd do no combat damage.

--------------------------------------------------------------------------------
810e6f8515 | Adam Borowski | 2012-08-06 05:35:43 +0200

Don't stop constriction on a possibly uninitialized monster.
Things like mid may be not set yet at this point, resulting in something else
getting unconstricted (if a 32 bit arbitrary value on the stack happens to
match).  So let's just clear the fields, and since the pointer here is known
to be valid (set in the constructor), assert there's no constriction at this
point.

--------------------------------------------------------------------------------
143591ea05 | Adam Borowski | 2012-08-06 04:42:15 +0200

Don't unnecessarily copy the monster struct during beam processing.

--------------------------------------------------------------------------------
ed7e256499 | Adam Borowski | 2012-08-06 04:12:33 +0200

Recompress source tiles with significant waste.
There's been a while since the last such run.  It's questionable if such
runs should be done at all, as git will carry both old and new versions (not
knowing it's not a real change) so only source tarballs see an improvement.

--------------------------------------------------------------------------------
7762b48dc0 | Steve Melenchuk | 2012-08-05 18:01:49 -0600

Stop key replay properly on failure to cast spells, evoke items, etc.
This prevents the player from moving around if a spell fails to cast
for, say, lack of mana.

It also adds in a few additional zero_turns_taken() checks to
spl-cast.cc so that repeating casting a spell doesn't continue when the
player, for example, runs out of mana.

Fixes #1540.

--------------------------------------------------------------------------------
9b22b13366 | Florian Diebold | 2012-08-06 01:52:38 +0200

Icon tweaks by ontoclasm.

--------------------------------------------------------------------------------
720232a2fd | Steve Melenchuk | 2012-08-05 17:52:03 -0600

process_disconnected_zones no longer fills vault-connected areas.
Premise 1: a vault is considered untouchable for the purpose of filling
areas.

Premise 2: a primary vault will always be connected by one of its exits
to another floor tile, though this is not necessarily connected to a
region containing stairs.

Problem: non-stair-connected regions are filled in, so the
aforementioned square and its surrounding area get filled in, leaving
only the vault, which is not considered a disconnected area without any
adjacent tiles; thus, the vault remains disconnected from the rest of
the level.

Solution: prevent tiles connected to the vault from being filled in.
Since the vault exit is guaranteed to connect to an outside floor tile,
this leaves at least one floor tile connected to the vault; if that
area is disconnected from the rest of the level, the level will later be
vetoed, preventing the generation of levels with disconnected primary
vaults.

--------------------------------------------------------------------------------
91c61feb74 | Florian Diebold | 2012-08-06 01:00:59 +0200

Fix a javascript error.

--------------------------------------------------------------------------------
1464a7552d | Steve Melenchuk | 2012-08-05 16:27:46 -0600

Rework process_disconnected_vaults()-related logic for Swamp layouts.
This makes two significant changes:

- The call to process_disconnected_vaults() is deferred until after a
  primary vault is connected to the rest of the level (this also saves
  an extra call to dgn_place_stone_stairs()).
- process_disconnected_vaults() now refuses to fill in all parts of
  vaults, not just parts of vaults designated as opaque - this
  distinction meant that transparent vaults were inappropriately getting
  filled in. This part of the process_disconnected_vaults() logic is
  only being called as part of Swamp layouts.

Without these changes, it was possible for a transparent Swamp rune
vault, even one that could have been connected to the rest of the level,
to get filled in by the process_disconnected_vaults() call. Now, the
vault is connected to the rest of the level before
process_disconnected_vaults() is called, and if it is connected to an
area isolated from stairs, the vault itself remains an isolated area and
triggers a veto later on in the building proces.

Hence, it is now impossible for a disconnected or filled-in rune vault
to be generated in Swamp, and this commit fixes #6039.

--------------------------------------------------------------------------------
b81e4e3bf9 | Steve Melenchuk | 2012-08-04 17:32:54 -0600

Prune duplicate-in-spirit message when rolling boulder beetle hits player.
Previously, one would see "The boulder beetle hits you! The boulder
beetle smashes into you!"; now one only sees the latter message.

--------------------------------------------------------------------------------
07b274ec76 | Steve Melenchuk | 2012-08-04 17:27:10 -0600

Disallow rolling boulder beetles from following player on stairs.
If this isn't done, the projectile code can cause them to teleport to
their position on the old level on the new level if the relevant space
is open.

Besides, they're too busy rolling to be able to ascend stairs.

Fixes #6035.

--------------------------------------------------------------------------------
ec79180b56 | Steve Melenchuk | 2012-08-04 15:41:07 -0600

Move per-turn mesmerisation / fear checks to after the player action.
Previously it was possible for a player to cause fear a mesmeriser
immediately before (i.e. on the same turn as) a delayed teleport kicked
in; the mesmerisation status wasn't updated until after the teleport
happened, restricting teleport destinations to the area of the beholder
despite the mesmeration supposedly having been broken at that point.

Fixes #343.

--------------------------------------------------------------------------------
5d32d4d5e9 | Steve Melenchuk | 2012-08-04 15:33:18 -0600

Allow specification of only one of image or code handling in tilegen.
This allows the image and the code to be built independently; thus their
dependencies can be (and now are) checked separately, preventing code
from being rebuilt when only tile images have been updated (as opposed
to the dc-*.txt definitions of the images, which are a dependency for
both the image ant the code).

--------------------------------------------------------------------------------
9ded5c58d6 | Neil Moore | 2012-08-04 17:07:35 -0400

Allow fsim on already-encountered unique (#5981).

--------------------------------------------------------------------------------
6f473416a0 | Steve Melenchuk | 2012-08-04 13:40:53 -0600

Prevent Tornado from moving monsters through solid features.
This adds a check to see if there's an unblocked line between where a
monster affected by Tornado started and possible positions it could end
up, throwing out any where such a line doesn't exist.

Fixes #4296 and #5986.

--------------------------------------------------------------------------------
8467ec47be | Neil Moore | 2012-08-04 15:22:36 -0400

De-interlace, optimise, and re-compress some tiles.
The interlacing in particular was causing a warning message with the
latest libpng, because of a bug (or missing update, at least) in
SDL_image.

--------------------------------------------------------------------------------
40a61cd6c2 | Steve Melenchuk | 2012-08-04 12:38:01 -0600

Fix a possibly spurious relink on every make.
The addition of check-fonts to the binary target was causing relinks on
every invocation of make; this moves check-fonts to all: such that it
still occurs at compile time, but doesn't cause the binary to be rebuilt
every time.

--------------------------------------------------------------------------------
7afe17ba5e | Florian Diebold | 2012-08-04 20:35:40 +0200

roctavian's dwarven dagger and short sword (#5622).

--------------------------------------------------------------------------------
5d86aba2a9 | Florian Diebold | 2012-08-04 20:35:21 +0200

Implement 7d82df6c (no muddy walls) for webtiles, too.

--------------------------------------------------------------------------------
6162a48eca | Steve Melenchuk | 2012-08-04 12:20:37 -0600

Prevent spurious tile file rebuilds.
The time stamps of rltiles/tiledef-* and rltiltes/tileinfo-* weren't
being updated due to the code refusing to overwrite the files if they
hadn't changed; this was confusing the Makefile into attempting to
regenerate the tiles even if they didn't need to be regenerated. The
code now unconditionally overwrites the files when they needed to be
generated.

This also fixes an issue where the dependency files for the images was
incorrect when doing a non-tiles build - the wrong path for some images
was not turning up on account of not checking to see if the provided
file name existed. This has been addressed. (I suspect that this was the
root cause of the issue that originally motivated the introduction of
checking to see if the file needing to be overwritten.)

Some now-needless functionality related to the above has been removed;
if it's needed again in the future, it can be pulled from the revision
history.

This partially reverts commit 5d812b3a48325e4c98a24bd036cba34cb9c9747f.
This partially reverts commit 7959c502806592ca859baca8aad455f51beaac89.

--------------------------------------------------------------------------------
bf862027bc | Neil Moore | 2012-08-04 14:06:01 -0400

Minor fix to menu title redraw.
When the menu title changed (e.g. \ <ctrl-d>), the last column was not
replaced because of an off-by-one error.  Furthermore, if the new title
was exactly as wide as the screen (e.g. \ <ctrl-d> <ctrl-d>), the next
line would be wiped.

--------------------------------------------------------------------------------
7d82df6c3c | Neil Moore | 2012-08-04 13:34:36 -0400

Don't draw mud on top of walls (#5819).

--------------------------------------------------------------------------------
ca705f4095 | Steve Melenchuk | 2012-08-04 10:56:17 -0600

Looking up spells with ?/S once again shows books the spell is in.
This was broken by 0.11-a0-2250-g0b8b1df, and seems to have escaped
notice until now.

--------------------------------------------------------------------------------
da23c09bfc | Florian Diebold | 2012-08-04 18:37:32 +0200

roctavian's new pizza tile (#5622).
To avoid looking like the new gold tiles, apparently.

Anyway, this one does look tastier.

--------------------------------------------------------------------------------
c4d148d9d9 | Florian Diebold | 2012-08-04 18:37:32 +0200

dd's staff tile (#5724).

--------------------------------------------------------------------------------
c72592914d | Steve Melenchuk | 2012-08-04 10:26:41 -0600

Don't place player in impassable features on return through portal.
This prevents, for example, the player from ending up in a wall when
returning from the Abyss.

Fixes #5711/#5815.

--------------------------------------------------------------------------------
46a0922599 | Neil Moore | 2012-08-04 12:13:01 -0400

Style fixes.

--------------------------------------------------------------------------------
cd725e7bc2 | Steve Melenchuk | 2012-08-04 09:39:54 -0600

Don't enter an infinite loop when generating a rune the player already has.
A check for this was failing because the item had already ceased to
exist; it now checks against the spec instead of the item.

Fixes #6023.

--------------------------------------------------------------------------------
b7903a7b2f | Florian Diebold | 2012-08-04 16:39:51 +0200

Fix #4889 and #4872 (bad tile overrides all over the map).
The root cause for this was actually simple -- the *_idx members of
tile_flavour weren't cleared when creating a new map, so when you had
a vault with tile overrides on the current level and then entered a
new one, these overrides would stay; except it wouldn't be visible at
first, because the members of tile_flavour that are actually used for
display were reset.

It was only when the tile flavour was regenerated (when loading a
level saved in an older version) that the old overrides resurfaced, as
tiles from a vault on the current level or black tiles if there were
none.

This fixes the root cause, but doesn't fix existing save games, since
it's hard to determine if the tile indexes are genuine (except if they
are out of bounds, then they are deleted). It also removes the debug
logging I added.

--------------------------------------------------------------------------------
912501104b | Florian Diebold | 2012-08-04 14:13:15 +0200

Be a bit less eager to regenerate tile flavour.
I'm not sure that regenerating it on every load _isn't_ a good idea,
but if we do that, we don't need to be this sneaky about it (feat will
almost always be 0 somewhere).

--------------------------------------------------------------------------------
437c513ece | Florian Diebold | 2012-08-04 13:54:00 +0200

Try to fix some saves affected by #4889.
I still haven't got the root cause of this, though.

Also, this won't fix saves where the tile flavour has been replaced by
some vault tile.

--------------------------------------------------------------------------------
ce9cfeff35 | Florian Diebold | 2012-08-04 13:49:43 +0200

Don't overwrite tile flavour with zero when a tile can't be found.
This should prevent some of #4889 and #4872.

Also, print error messages when the tile indexes are out of
bounds. This could get annoying, but it really shouldn't happen and I
need to find that bug.

--------------------------------------------------------------------------------
437f554571 | Neil Moore | 2012-08-03 23:56:09 -0400

Don't offer to identify the Orb (#5954).

--------------------------------------------------------------------------------
cfb010812d | Neil Moore | 2012-08-03 23:31:40 -0400

Correct permuted amulet icons.

--------------------------------------------------------------------------------
383b96f35e | Neil Moore | 2012-08-03 20:54:33 -0400

Don't force Troglodytes to train magic skills.
Also, remove a few special cases that considered Spellcasting to be
non-magic below level one for Troglodytes; this hasn't been necessary
since scrolls stopped training Spellcasting in ee84c39.

This reverts commit 1d240c20e937d950ff3de459d85665fcc06969ff.

--------------------------------------------------------------------------------
daa519b60d | Neil Moore | 2012-08-03 20:25:55 -0400

Fix crash on empty high scores screen (#6029).

--------------------------------------------------------------------------------
22d8c073a7 | Adam Borowski | 2012-08-04 01:44:25 +0200

Betterer IOOD tiles (Bloax)

--------------------------------------------------------------------------------
3e566ebdbc | Steve Melenchuk | 2012-08-03 10:26:48 -0600

Fix fog machines failing to operate outside of player LOS.
For whatever reason, the Lua fog machine code eventually calls the
targetter for player cloud placement; there was an invalid assumption in
the targetter code that the player is always responsible for using
targetters, which failed in this case.

--------------------------------------------------------------------------------
2454f9b58b | Florian Diebold | 2012-08-03 14:06:01 +0200

dd's player doll lajatang tile (#5724).

--------------------------------------------------------------------------------
74f4db31ad | Policarpo Caballero | 2012-08-03 02:14:45 -0400

Correct noise information for Excruciating Wounds and Malign Gateway.

--------------------------------------------------------------------------------
a3d49774ac | Neil Moore | 2012-08-03 01:42:22 -0400

Nerf Mephitic Cloud :)
("Nerf" as in "make it not crash the game"; the spell itself is
unchanged.)

One argument to targetter_beam::targetter_beam() was missing.
Unfortunately, the subsequent arguments happened to be of either the
correct type or implicitly converted types, and the last two arguments
were optional, so this wasn't caught.  The same was also true for bolt
of cold, but that one didn't cause a crash.

Besides fixing the constructor calls, also update the prototype by
making the optional arguments mandatory; there was only one call that
did not pass those two arguments, anyway.  This should prevent similar
problems in the future, as they will be caught by the compiler.

--------------------------------------------------------------------------------
84d7231ccf | Steve Melenchuk | 2012-08-02 21:21:43 -0600

Get Fireball tracers and targetter to work properly.
This involves a substantial overhaul of targetter_beam to retain more
information about the beam, and changes to tracers to allow that
information to reach all the way into the relevant depths of the beam
code.

Fixes #6020.

--------------------------------------------------------------------------------
166556b312 | Adam Borowski | 2012-08-03 03:27:21 +0200

Don't claim that sourcing shipped lua files is needed anymore.
They're now an implementation detail, not visible to an user who doesn't
look "under the hood", without manual intervention needed.

--------------------------------------------------------------------------------
00f8fbcc3f | Adam Borowski | 2012-08-03 03:27:20 +0200

Document autofight_throw{,_nomove}.

--------------------------------------------------------------------------------
072a5f7403 | Adam Borowski | 2012-08-03 03:27:20 +0200

Axe a reference to axe traps.

--------------------------------------------------------------------------------
bb01bb5cd8 | Florian Diebold | 2012-08-02 20:57:26 +0200

Webtiles: Don't try to send input over the socket if it hasn't yet opened.

--------------------------------------------------------------------------------
98ca7b225c | Florian Diebold | 2012-08-02 19:21:10 +0200

Some functions for dialogs in the webtiles client.

--------------------------------------------------------------------------------
2d9f389c3b | Adam Borowski | 2012-08-02 19:13:41 +0200

Ignore tracking SoH existence in --test.
We could properly store whether any of Serpents has been created, but that's
already done a different way.

--------------------------------------------------------------------------------
a704a69213 | Adam Borowski | 2012-08-02 19:13:41 +0200

Drop a few cases of unnecessary braces.

--------------------------------------------------------------------------------
30b59f552c | Florian Diebold | 2012-08-02 19:07:36 +0200

Fix some scrollbars during webtiles loading.

--------------------------------------------------------------------------------
38e4d323c1 | Florian Diebold | 2012-08-02 19:07:35 +0200

Fix the webtiles server not working without client_path anymore.

--------------------------------------------------------------------------------
af2d46d97e | elliptic | 2012-08-02 13:00:25 -0400

Make boulder beetles flee in the correct direction.

--------------------------------------------------------------------------------
45a1e57c8c | Steve Melenchuk | 2012-08-02 10:06:27 -0600

IMB explosion tracers now inherit more properties from parent beam.
This fixes up some residual issues with the tracer exposed by the new
"no monsters in range" code.

Fixes #6014.

--------------------------------------------------------------------------------
4b14f520ae | elliptic | 2012-08-02 04:21:18 -0400

Remove old Elyvilon message about Restoration.

--------------------------------------------------------------------------------
67adefd67b | Neil Moore | 2012-08-02 03:59:26 -0400

Grammar fix.

--------------------------------------------------------------------------------
e37e904910 | Neil Moore | 2012-08-01 22:53:03 -0400

Properly pluralise "marigold" -> "marigolds".
Currently irrelevant (@_colour_name_@ is used as an adjective and thus
never pluralised), but really the self-"plural" should be restricted to
the mass noun "gold" and not to its compounds.

--------------------------------------------------------------------------------
183de69bd0 | Neil Moore | 2012-08-01 22:53:03 -0400

Don't display contaminated icon on chunks in autopickup menu.

--------------------------------------------------------------------------------
9ebc597bda | Neil Moore | 2012-08-01 22:32:30 -0400

Let force_autopickup work on bad butchered chunks.
turn_corpse_into_chunks() set ISFLAG_DROPPED for bad chunks; avoid this
when chunks are set to force-autopickup.

Really it would make sense to allow autopickup_exceptions to override
this as well, but that would probably require doing something like
marking poisonous chunks as bad_item or useless_item (when no relevant
spells are known and the player is not rP).

--------------------------------------------------------------------------------
43c9643ff8 | Jon Knapp | 2012-08-01 22:30:52 -0400

Add more item types to the AP menu.
This is a combination of 4 commits:
    added food and misc items to the AP menu
    catagorized foods in the AP menu and added gold
    reduced food categories to two
    small autopickup menu bugfixes

--------------------------------------------------------------------------------
7b358e689a | Neil Moore | 2012-08-01 22:29:43 -0400

Remove an unused variable.

--------------------------------------------------------------------------------
8c8c72d458 | Adam Borowski | 2012-08-02 01:18:45 +0200

Crop icy stone tiles to 32x32.
This makes them work slightly worse at the top in local tiles: the spilled
over border would mark the end of a region of stone.

--------------------------------------------------------------------------------
391f702bd5 | Adam Borowski | 2012-08-02 01:13:01 +0200

Make a bunch of tile images 32x32.
Even if the code can (usually) deal with smaller sizes, it's still unobvious
which way they get aligned.

There's a worse case: rltiles/dngn/wall/icy_stone{0,1,2,3}.png are 32x33,
spilling over the next tile.  This seems to work but may break some corner
cases (like, redraw order).

--------------------------------------------------------------------------------
83c09dd2ae | Adam Borowski | 2012-08-02 01:13:01 +0200

Antialias rod tiles.
Especially the rod of [fball,lightning,iron] looked silly with an octagon
instead of a ball.

--------------------------------------------------------------------------------
8865dc05d8 | Steve Melenchuk | 2012-08-01 16:24:57 -0600

Unify item spec tag application between floor and monster placements.
This means that tags that previously only worked in the floor case, such
as q: and ident:, now work in the monster case as well.

Fixes #3166 and #6005.

--------------------------------------------------------------------------------
1cc90225ba | Neil Moore | 2012-08-01 17:08:37 -0400

Massive style fix (braces, indentation, etc.)

--------------------------------------------------------------------------------
a0a9240421 | Steve Melenchuk | 2012-08-01 14:27:49 -0600

Check for helpful spells earlier in "no visible monsters" code.
This was in the wrong order after recent changes, preventing spells such
as Haste from being cast with z.

--------------------------------------------------------------------------------
79757c02f4 | Neil Moore | 2012-08-01 14:49:02 -0400

Style fix.

--------------------------------------------------------------------------------
678fd6fb92 | Steve Melenchuk | 2012-08-01 12:40:55 -0600

Use dec_inv_item_quantity for in-inventory blood coagulation/rotting.
The old approach was resulting in invalid items and crashes on saving
games as a result of item validity assertions.

Fixes #6009.

--------------------------------------------------------------------------------
2d19f3b054 | Steve Melenchuk | 2012-08-01 12:15:56 -0600

get_next_level_id() now returns correct destination for enter_portal_vaults.
Previously, the branch code was causing get_next_level_id() to assume
that all portal entry vaults were Ziggurat entrances, resulting in, for
example, the annotation feature trying to set annotations for Zig:1 at
any portal.

Fixes #6010.

--------------------------------------------------------------------------------
8c41726d34 | Steve Melenchuk | 2012-08-01 10:32:15 -0600

stop_attack_prompt() checks for Static Discharge.
This gives a prompt when the discharge can hit friendlies, helpless
monsters, etc. in the usual fashion.

Addresses #6006.

--------------------------------------------------------------------------------
806c746e6f | Florian Diebold | 2012-08-01 16:35:46 +0200

Fix loading of some images in the rltiles tool.
The loading code for indexed images assumed that width==pitch, which
was wrong for example for the lugonu altar tile (which is 31x32 and
got loaded with pitch 32).

--------------------------------------------------------------------------------
a89e3ae53e | Florian Diebold | 2012-08-01 14:37:18 +0200

Don't crash after detecting items.

--------------------------------------------------------------------------------
19ca500020 | Florian Diebold | 2012-08-01 13:12:59 +0200

Fix a crash after seeing an unidentified deck.

--------------------------------------------------------------------------------
11b76d3407 | Neil Moore | 2012-08-01 03:47:06 -0400

Avoid a crash after wielding the quivered weapon.
Wielding the currently-quivered weapon would result in
player_quiver::m_last_used_of_type[AMMO_THROW] containing an item_def
with quantity 0.  Since 485c763, trying to marshall such an item
asserts, as it is not valid.  Avoid this by also setting the base type
to OBJ_UNASSIGNED.  Furthermore, fix this up when loading old saves.

Fixes #6007.

--------------------------------------------------------------------------------
e676bc4e92 | Neil Moore | 2012-08-01 02:47:14 -0400

Don't complain about items in Abyssal deep water.
Commit 895c935 removed the pushing of items by Abyssal deep water; this
means items there could start in deep water, which would lead to a
warning "Item foo buggily placed in feature some deep water".  Avoid
that message by having fixup_misplaced_items() skip items in deep water
in the Abyss.

Fixes #5980.

--------------------------------------------------------------------------------
7b42df61fd | elliptic | 2012-07-31 23:33:28 -0400

Fix lua for detecting constriction status.
It was broken by the introduction of "holding" in addition to "constricting".

--------------------------------------------------------------------------------
ea34d55a3e | Steve Melenchuk | 2012-07-31 17:04:09 -0600

Clear tile feature flavour and tile colour on wizmode feature replacement.
This makes it consistent with the dungeon builder's replacement of
features, and prevents lovely issues like the hatched screenshot
associated with #6000 from occurring.

--------------------------------------------------------------------------------
485c7634d9 | Adam Borowski | 2012-07-31 23:49:36 +0200

Assert that all items being saved are valid.
This will typically be checked only on a save (ie, taking stairs), but since
newly generated levels get saved immediately, this should be good enough.

--------------------------------------------------------------------------------
d051848d19 | Adam Borowski | 2012-07-31 23:49:36 +0200

Fix xg not recognizing certain unidentified items.
This might be not the only use of item_def::is_valid() that became broken
with introduction of NUM_FOO meaning "unidentified", but since a vast majority
of calls refer to real items, this can't be done by default.

--------------------------------------------------------------------------------
3ef95bb148 | Adam Borowski | 2012-07-31 23:22:42 +0200

Actually fix loading dumps on most architectures.
The only popular one where this works is amd64, and even that reached 50%
use in Linux on desktops/laptops only recently.  Linux i386, Windows, arm*,
etc, are still 32 bit, so are many less popular platforms.

Nearly any use of "long" in portable code is a bug, except for some things
where using a full machine word improves efficiency but you can still handle
shorter words properly.  Elsewhere else, either an int is enough (and you'd
waste memory on 64 bit), or int is not enough and it will overflow on 32 bit.

--------------------------------------------------------------------------------
2679906a01 | Adam Borowski | 2012-07-31 23:22:42 +0200

Make a couple inlined functions static.
Without that, the compiler will add useless non-inlined copies.

--------------------------------------------------------------------------------
0372ebcc53 | Steve Melenchuk | 2012-07-31 13:17:40 -0600

Some cleanup of the new "no monster in range" checking code.
This fixes a bug related to non-beam spells such as Vampiric Draining
wherein they would never show up as being in range, and removes a now-unused
function argument.

--------------------------------------------------------------------------------
b8bec21a6e | Florian Diebold | 2012-07-31 15:59:07 +0200

Improve potion label tiles.

--------------------------------------------------------------------------------
65c31b832d | Florian Diebold | 2012-07-31 15:47:35 +0200

Fix mixed up curing/heal wounds icons.

--------------------------------------------------------------------------------
f3c7972972 | Florian Diebold | 2012-07-31 15:13:55 +0200

ontoclasm's overhaul of item icon images. (#4527)

--------------------------------------------------------------------------------
a18ad80840 | Neil Moore | 2012-07-31 01:03:56 -0400

Improve a few quote citations.

--------------------------------------------------------------------------------
8e632e705f | Neil Moore | 2012-07-31 00:53:06 -0400

Include the entire inscription on the gateway to Hell.
Translated into English, since although the last line is famous in
Tuscan, comparatively few English speakers are familiar with the rest in
either language.  Using Ciardi's translation because that is probably
the most-quoted version of the last line.

--------------------------------------------------------------------------------
96f3747cc5 | Neil Moore | 2012-07-31 00:53:06 -0400

Don't crash when making ghosts/illusions of rSteam++ players.
It is a multi-level resistance for players, but monsters can have only
one level of innate rSteam.

Fixes #6001.

--------------------------------------------------------------------------------
58fafeee48 | Steve Melenchuk | 2012-07-30 20:34:21 -0600

Improve explosion feedback for spells cast by monsters and/or at player.
This includes showing explosion messages for spells such as Fire Storm
and Hellfire when cast by monsters (previously, there was no text
printed when these spells were cast by these monsters other than those
caused by its effects) and showing "The ____ engulfs you!" when an
explosion engulfs the player (this was apparently intended to be the
case, but due to a short-circuit earlier in the relevant code, was never
being displayed).

--------------------------------------------------------------------------------
2bd5812c64 | Steve Melenchuk | 2012-07-30 19:02:38 -0600

Don't clear wall/floor flavour when builder replaces a feature.
It's just the feature that's being replaced, so it makes sense to clear
a special feature (or colour) setting, but not walls and floor when,
say, stairs are being fixed up or replaced with another feature.  This
was causing stairs in vaults to have incorrect floor tiles (#6000),
which is no longer the case.

--------------------------------------------------------------------------------
a3558c95d8 | Steve Melenchuk | 2012-07-30 17:32:35 -0600

Revert player mummy death curses, which were committed by accident.
This reverts commit 90551e86189b850caf36c73f3445c480abc79f59.
This reverts commit ada134d4137d8d869c0f97e1cd4e553a2e58acc9

--------------------------------------------------------------------------------
b63eec99ca | Steve Melenchuk | 2012-07-30 17:05:06 -0600

Fix crash on loading dumps of sufficiently skilled players.
The skill exercise arrays would suffer integer overflow during the
re-initialisation routines; this adjusts the relevant code to use longs
(shudder) to avoid that issue.

--------------------------------------------------------------------------------
ada134d413 | Steve Melenchuk | 2012-07-30 15:38:53 -0600

Upgrade death curse message on mummy player death to actual death curse.
Because, well, why not?

--------------------------------------------------------------------------------
90551e8618 | Frank Benkstein | 2012-07-30 15:21:53 -0600

Death-curse a monster that kills the player if the player is a mummy.

--------------------------------------------------------------------------------
1f7c9b4d19 | Steve Melenchuk | 2012-07-30 15:17:12 -0600

Make "visible monster in range" spell check more sophisticated.
The old system merely added a bonus range square for certain spells,
which led to issues in some edge cases.

The new check employs tracers to see if targetting anything within range
will actually harm an enemy.

Cloud spells (other than Mephitic Cloud, which is more akin to a
Fireball in its implementation) aren't handled by either the new or the
old system, but they probably could be worked in with some additional
effort.

Fixes #2068.

--------------------------------------------------------------------------------
1b2340578a | David Lawrence Ramsey | 2012-07-30 11:18:25 -0500

Simplify the wording of a constriction message.

--------------------------------------------------------------------------------
d0d70fde0f | David Lawrence Ramsey | 2012-07-30 10:12:13 -0500

Fix change log entry capitalization and punctuation.

--------------------------------------------------------------------------------
592a301caf | Steve Melenchuk | 2012-07-30 08:38:20 -0600

Don't let the obsidian axe mesmerise towards any M_NO_EXP_GAIN monster.
In addition to plants, fungi, etc., this now includes, for example, orbs
of destruction and twisters.

Fixes #5993.

--------------------------------------------------------------------------------
70245f390f | Florian Diebold | 2012-07-30 16:33:10 +0200

Pay respects to hairy devils in the changelog.

--------------------------------------------------------------------------------
89956ef9ac | Florian Diebold | 2012-07-30 12:45:34 +0200

New-style golden statue tiles by roctavian (#5990).

--------------------------------------------------------------------------------
95002d4d23 | elliptic | 2012-07-30 04:42:57 -0400

Fix typo in Hungry/Very Hungry boundary value.
This was introduced in 190271d4.

--------------------------------------------------------------------------------
eb0df776b8 | Neil Moore | 2012-07-30 02:55:12 -0400

Don't crash when a dead monster makes TRJ spawn jellies.
We were passing _place_monster_aux() a bad monster index as the foe,
triggering an assert.

--------------------------------------------------------------------------------
87e4f79d6b | elliptic | 2012-07-29 21:29:11 -0400

Allow berserk to lower you.hunger to HUNGER_STARVING - 100.
900 satiation is still far away from fainting (starts at 500), let alone
actual starvation (100). This fixes #5748 for non-vampires.

--------------------------------------------------------------------------------
5c818369f5 | elliptic | 2012-07-29 13:35:06 -0400

Reduce wandering mushroom cost from 4 to 3.
On further consideration, let's be a little less drastic in raising the cost
for now.

--------------------------------------------------------------------------------
7282fce25d | Adam Borowski | 2012-07-29 13:01:53 +0200

Don't center the section header for mutation list in character dumps.
No other section is centered.

--------------------------------------------------------------------------------
2494103237 | Adam Borowski | 2012-07-29 12:53:43 +0200

Word-wrap the monster list in character dumps.
For full-game characters, having a half page of monsters in view isn't
uncommon, having to scroll horizontally that far is not fun.  Sadly, we
don't know how wide the browser window will be so I'm wrapping at
oh-so-narrow 80 columns.

Also, the wrapper tends to leave dangling articles at the end of a line,
this isn't looking good either.

--------------------------------------------------------------------------------
ba02e23748 | Taylor Hedberg | 2012-07-29 12:24:02 +0200

Avoid crash when viewing morgue file with long lines
We attempt to strip the newline character from the end of each line of
the morgue file, but lines longer than 200 characters do not fit into
the input buffer, so there is no newline to strip.

Fix the issue by checking for this condition and omitting the line
truncation when appropriate.

--------------------------------------------------------------------------------
ccb81436bd | elliptic | 2012-07-29 02:32:30 -0400

Double the piety cost of evolving a wandering mushroom, remove the fungus 
discount.
4 piety might still be too cheap given how many fights a single mushroom can
win for you.

--------------------------------------------------------------------------------
888366d8b4 | Michael Gagno | 2012-07-28 14:45:20 -0700

Fix spider_nest_entry_rubble.
Random traps were being placed instead of webs.

--------------------------------------------------------------------------------
e062c074b1 | Steve Melenchuk | 2012-07-28 14:06:35 -0600

Allow encompass vaults to designate locations for Abyss/Hell/Pan portals.
The entry portals for these branches now have a new tag,
"replace_portal"; this instructs the builder to look for Lua markers
with the "portal" property and, if it finds any, to place the portal at
that location (overwriting anything else present).

Best used when stone arches are at the designated locations.

--------------------------------------------------------------------------------
ec06bc5cf1 | Adam Borowski | 2012-07-28 22:03:08 +0200

Add a runrest_ignore for Tornado cooldown expiring.
This doesn't handle "you are engulfed in raging winds", but the message
doesn't differ for friendly vs hostile tornado.

--------------------------------------------------------------------------------
44021c291b | Adam Borowski | 2012-07-28 22:03:08 +0200

Ensure all tornado clouds are gone when the cooldown expires.
They're almost guaranteed to expire beforehand, but with strange turn
durations they sometimes don't, causing warnings about stepping into the
cloud.

--------------------------------------------------------------------------------
ab7c9a4add | Adam Borowski | 2012-07-28 22:03:08 +0200

Show custom weapon types in action_counts dumps.
It's arguable what is a "custom type" in some cases.  A "katana" obviously
differs from an European-style long sword, but I left "sceptre" merely as
a name for a mace (ie, it counts as one).

--------------------------------------------------------------------------------
838f162c9b | Adam Borowski | 2012-07-28 22:03:08 +0200

Make felid pounce count as a tier 2 stabbing weapon (long blades, spears).

--------------------------------------------------------------------------------
4f5d508803 | Steve Melenchuk | 2012-07-28 11:30:53 -0600

Beef up grunt_snake_rune_spirals somewhat.
This places, on average, an extra 4 nagas, 4 naga warriors, 4 greater
nagas, and 4 guardian serpents; the overall XP total is now roughly on
par with snake_hunt.

This is motivated by players often only clearing half of the ending, in
which case it's much less challenging than it was intended to be;
clearing half the map is now roughly on par with snake_pit.

See https://crawl.develz.org/tavern/viewtopic.php?f=8&t=5217 for more
analysis.

--------------------------------------------------------------------------------
ab9b028276 | Florian Diebold | 2012-07-28 18:49:57 +0200

Fix heap_brand influencing the monster list.

--------------------------------------------------------------------------------
6e090947bf | Florian Diebold | 2012-07-28 15:55:22 +0200

dd's polearms (#5724).

--------------------------------------------------------------------------------
42f7cbb3a8 | Florian Diebold | 2012-07-28 15:34:38 +0200

Delete an old unused orcish glaive tile.

--------------------------------------------------------------------------------
51eb7dd681 | David Lawrence Ramsey | 2012-07-28 07:30:31 -0500

Fix wording in young spriggan druid description.

--------------------------------------------------------------------------------
94fb9d10d1 | Adam Borowski | 2012-07-28 11:00:24 +0200

Prefix ZotDef-only constants.
Their names were somewhat too generic.

--------------------------------------------------------------------------------
be8ba00598 | Adam Borowski | 2012-07-28 10:49:34 +0200

Remove an unused constant.

--------------------------------------------------------------------------------
26b0e9db7b | Adam Borowski | 2012-07-28 10:03:06 +0200

A .pl typo fix.

--------------------------------------------------------------------------------
a2d3e9ce23 | Adam Borowski | 2012-07-28 09:43:35 +0200

Use consistent spaces in quote attributions.

--------------------------------------------------------------------------------
5a7c3f20d1 | Michael Gagno | 2012-07-28 00:27:49 -0700

Change the depth ranges for anthill vaults.
As elliptic has pointed out, these vaults can show up way too deep (as far
as D:27 in one case).

This changes them to show up in only a narrow part of mid-D, and in Lair
(where you will see them most often).

--------------------------------------------------------------------------------
2d98612ead | Adam Borowski | 2012-07-28 02:56:31 +0200

Teach CIA about frogbotherer.

--------------------------------------------------------------------------------
c348bcf426 | frogbotherer | 2012-07-28 02:50:27 +0200

Don't crash on font rendering when there's anything outside ascender..descender.
This worked for DejaVu Sans, but failed on a number of other fonts.

(cherry picked from commit e0ba98f9c56185d8bc650df4df9d49b4bb428e4b)
[commit message rewritten -- 1KB]

--------------------------------------------------------------------------------
fcc898b07d | Adam Borowski | 2012-07-28 02:22:07 +0200

Roctavian's altar updates for Fedhas, Lucy, TSO, Vehumet, Sif Muna, Yred, Zin.

--------------------------------------------------------------------------------
135e2d8c7e | Adam Borowski | 2012-07-28 02:22:06 +0200

Drop redundant altar_ from altar file names.
The directory they're in is already named "altars/".

--------------------------------------------------------------------------------
52920763ef | Adam Borowski | 2012-07-28 02:22:06 +0200

An animated altar tile for Nemelex (roctavian)

--------------------------------------------------------------------------------
5e49adf588 | Adam Borowski | 2012-07-28 02:22:06 +0200

Drop some junk from ../docs/obsolete/
They were scraps of old changelogs, old FRs, etc.

I left in the most reasonable changelog, but still, 3.40 era history is
something probably better kept deep in git (like that "ancient" repository),
because of incompleteness.

"cut_spells" is dubious, too.

The 0.3.4 keybindings overhaul might be semi-useful for some folks.

--------------------------------------------------------------------------------
26fb3c0b8e | Adam Borowski | 2012-07-28 02:22:06 +0200

Give crimson imps the same intelligence as other imps.
Not that it matters much...

--------------------------------------------------------------------------------
8b216e2c15 | Michael Gagno | 2012-07-27 15:48:14 -0700

Make vampire mosquitoes spawn in bands again.
This removes the 50% chance of them spawning alone. They're still less
common than they were in 0.10 and earlier.

--------------------------------------------------------------------------------
2b24d0edd7 | Adam Borowski | 2012-07-27 23:59:29 +0200

Spawn only young druids in forest_paths in Lair.
The third vault, rumbling_trees, is trivial to escape, can probably have
regular druids inside.

And it's a stop-gap measure before a reworking of the main spell anyway.

--------------------------------------------------------------------------------
01dd61cbc9 | Adam Borowski | 2012-07-27 17:40:37 +0200

Recruit younger druids for Lair:8.

--------------------------------------------------------------------------------
da5a47b0bf | Adam Borowski | 2012-07-27 15:40:52 +0200

Consider Tornado clouds to be damaging.
Technically, the damage is not caused by them, yet they approximate the
dangerous area pretty well (exactly for immobile obelisks, reasonably for
twisters).

This fixes autoexplore happily wandering into the obelisk vault, and also
warns unspoiled players that it can be deadly.

--------------------------------------------------------------------------------
ce27126b87 | Adam Borowski | 2012-07-26 23:16:58 +0200

Allow indexing FixedBitArrays with any struct that has fields "x" and "y".

--------------------------------------------------------------------------------
aba1daf6cd | Florian Diebold | 2012-07-26 22:38:11 +0200

Merge branch 'slime-tiles'

--------------------------------------------------------------------------------
728e93f969 | Michael Gagno | 2012-07-26 13:26:19 -0700

Revert "Make insubstantial wisp bands smaller but slightly more threatening."
It turns out that increasing the number of vapours just increases the number
of forest fires. I'd still like to make wisp bands more threatening, but the
fire issue needs to be addressed first.

This reverts commit 00f9ee4280c8b1748aafada884ee1ccb643d8bb5.

--------------------------------------------------------------------------------
4bfc2a7d9f | Adam Borowski | 2012-07-26 20:47:32 +0200

Allow reading FixedBitArray(...) without having to type ".get".
This works only for reading, as we can't return a reference to a single bit.
Also, [x][y] doesn't work either: FixedArray can return a column vector
which then can be dereferenced further, bit arrays here are packed so
returning a slice would require a whole new class.

--------------------------------------------------------------------------------
25d89c2106 | Adam Borowski | 2012-07-26 20:37:05 +0200

Add missing braces.

--------------------------------------------------------------------------------
6173637806 | Steve Melenchuk | 2012-07-26 12:24:10 -0600

Use "Killed by" prefix when reporting divine wrath death messages.
"Killed by the fiery rage of Trog" makes much more sense than just "the
fiery rage of Trog", after all.

--------------------------------------------------------------------------------
e094a25a10 | Steve Melenchuk | 2012-07-26 11:05:51 -0600

Lua function: dgn.br_entrance.
This returns a level ID signifying where the entrance to a branch is
(if not specified, it uses the current branch).

Its primary use would be in the context,

"you.where() == dgn.level_name(dgn.br_entrance("<branch>"))"

to determine if a branch entrance needs to be placed in an encompass
vault or a layout.

--------------------------------------------------------------------------------
9de211e512 | Steve Melenchuk | 2012-07-26 11:05:51 -0600

Check for branch entrances existing before trying to place entry vaults.
This, for example, allows encompass vaults to place branch entrances
without confusing the level builder into trying to place another branch
entrance and vetoing the encompass vault.

Thus, things such as D:27 encompass vaults containing Zot portals or the
idea to move the Tomb entrance into the Crypt ending are now possible.

--------------------------------------------------------------------------------
d7ddfbfbda | Adam Borowski | 2012-07-26 17:40:14 +0200

Add FixedBitArray::set(coord_def, [bool]).
There was get() but not set().

--------------------------------------------------------------------------------
cbff661dca | Adam Borowski | 2012-07-26 14:32:53 +0200

Rename bit_array to bit_vector.

--------------------------------------------------------------------------------
42facf2424 | Adam Borowski | 2012-07-26 14:31:58 +0200

A two-dimensional FixedBitArray template.

--------------------------------------------------------------------------------
705162b119 | Adam Borowski | 2012-07-26 14:22:38 +0200

Rename FixedBitArray to FixedBitVector.

--------------------------------------------------------------------------------
44f40dd5f9 | Adam Borowski | 2012-07-26 12:28:37 +0200

Don't trap folks in led_sif_book.

--------------------------------------------------------------------------------
e8e6684e71 | Adam Borowski | 2012-07-26 12:14:57 +0200

Fix a crash: res_rotting is a multi-level resistance.

--------------------------------------------------------------------------------
23751c4028 | Steve Melenchuk | 2012-07-25 21:06:31 -0600

Small tweak to monster generation in deathspiral vaults.
Specifically, they now generate bands for monsters as appropriate.

--------------------------------------------------------------------------------
f958f3099f | Adam Borowski | 2012-07-25 22:19:03 +0200

Intelligent monsters can dip into water to get rid of sticky flame.
Unless uncontrollably levitating, that is.

Animals tend to panic, not realizing water will help, although being already
in water obviously works.  We assume big animals in shallow water will thrash
around enough to wash it out.

--------------------------------------------------------------------------------
353350269d | Adam Borowski | 2012-07-25 22:14:52 +0200

Controlled flight and clinging shouldn't stop getting rid of napalm.

--------------------------------------------------------------------------------
f7af1e519c | Chris Campbell | 2012-07-25 20:35:21 +0100

Don't let flying above water put out sticky flames

--------------------------------------------------------------------------------
ebd8d776a7 | Chris Campbell | 2012-07-25 17:58:58 +0100

Don't prompt to use manuals of skills you have already maxed

--------------------------------------------------------------------------------
a348638306 | Neil Moore | 2012-07-25 11:24:08 -0400

Update cut_spells.txt for the last three years.
This was done mostly by script, so a few things may have been missed.

--------------------------------------------------------------------------------
cff2ec219a | Neil Moore | 2012-07-25 11:01:50 -0400

Fix a typo.

--------------------------------------------------------------------------------
491528ade0 | David Lawrence Ramsey | 2012-07-25 08:19:40 -0500

Treak wording of new Okawaru description.

--------------------------------------------------------------------------------
779ca6b06a | Neil Moore | 2012-07-25 09:15:03 -0400

Unfix evilmike_abyss_rune_tentacle_tunnel.
Now that items and water can share cells in the abyss, the fix is
unnecessary.

This reverts commit 884132b5cd15e73ab909ac89d876ce1a969cfc53 .

--------------------------------------------------------------------------------
895c9356ae | Neil Moore | 2012-07-25 09:12:02 -0400

Don't push items off abyssal water, portals, etc.
If an item ends up in deep water, it will most likely become accessible
again as the abyss morphs, so doesn't need extraordinary steps to
preserve it.  Now items are pushed only by solid squares (where they
shouldn't be) and lava squares (which destroy items immediately).

Fixes #5762.

--------------------------------------------------------------------------------
56e7956ccf | Adam Borowski | 2012-07-25 14:36:15 +0200

Let torment auto-id rN.

--------------------------------------------------------------------------------
94c9e8c9f0 | Adam Borowski | 2012-07-25 13:21:08 +0200

Mention that Okawaru wants you to kill tough stuff in his description.
There actually are people who complain about Okawaru piety being hard to
get, while avoiding anything non-popcorn because "Crawl is designed around
running away from things that could possibly hurt you".  Sorry, this is the
god's conduct, and other blood gods (ie, almost all) have intentionally been
kept with the old system to let Okawaru stand out.

Also, it's damn hard to write descs while avoiding references to gods'
genders; you may want to rewrite later parts of this description.

--------------------------------------------------------------------------------
f75604fd3a | Adam Borowski | 2012-07-25 12:36:52 +0200

Don't place bolt traps in ossuaries.
After they got upgraded, they can one-shot a good part of characters at that
depth.

--------------------------------------------------------------------------------
c958be1a06 | Adam Borowski | 2012-07-25 09:59:42 +0200

lightning rod: noise.

--------------------------------------------------------------------------------
f4b63a072a | Adam Borowski | 2012-07-25 09:59:42 +0200

lightning rod: Expend all of rod's charge, not merely an integer value.
This lets us avoid rods ending up at 1 mana nearly every time if the rod's
recharge rate and the player's Evoc skill are high.  Player's don't get
shafted either, as the extra juice isn't lost.

--------------------------------------------------------------------------------
c3b99014b3 | elliptic | 2012-07-25 01:33:07 -0400

Finish changing "shield of ignorance" to "large shield of ignorance".
Somehow I completely forgot about several other things that needed
changing with this... oops.

--------------------------------------------------------------------------------
5415730870 | Chris Campbell | 2012-07-25 04:50:46 +0100

Don't imprison firewood

--------------------------------------------------------------------------------
638d8d1981 | elliptic | 2012-07-24 20:39:16 -0400

Make the shield of Ignorance a large shield in name as well as deed.

--------------------------------------------------------------------------------
ce4faeadf6 | Michael Gagno | 2012-07-24 16:00:29 -0700

Change the weights of infiniplex's 'loops' layouts.
This removes layout_loops_corners from Pan and makes it less common in other
levels. It also makes the other layouts less common in Pan.

--------------------------------------------------------------------------------
c5f837cda8 | Michael Gagno | 2012-07-24 15:49:43 -0700

Changes to Pandemonium blood fountain vaults.
These now get selected by CHANCE instead of tag, meaning they will never be
placed instead of pan lord vaults (previously, if you saw a blood fountain,
it meant the level had no pan lord).

These vaults can also appear multiple times now, and are much more common
than they used to be... this means vampires should be able to replenish
their blood now without having to leave Pan (or use Kiku).

Also, the vaults now feature bloody floor, rather than regular floor with
red paint.

--------------------------------------------------------------------------------
869064c64d | Michael Gagno | 2012-07-24 13:55:05 -0700

Remove the 'pan' tag from uniq_ignacio.
The vault should still appear when it is selected by chance + depth.
Selecting by tag is bad, because it caused ignacio's vault to get placed
instead of a regular pan minivault.

--------------------------------------------------------------------------------
8fee403a94 | Michael Gagno | 2012-07-24 13:52:30 -0700

Don't trigger "monster_dies" triggerers on polymorph.
These are supposed to be triggered when a monster dies or is otherwise
destroyed (with the exception of banishment). Polymorph shouldn't count for
these purposes.

This could be a problem in vaults which use a monster_dies triggerer, if the
player happened to cast polymorph other. It also caused a strange effect with
shapeshifters (they were "dying" every time they transformed).

--------------------------------------------------------------------------------
b57c4229f1 | Florian Diebold | 2012-07-24 22:24:09 +0200

Fix loading of RGB images.

--------------------------------------------------------------------------------
e92238a0d8 | Neil Moore | 2012-07-24 16:03:32 -0400

Make Ashenzari's lair branch visions less spoilery.
Explicitly state what you are seeing a vision of: "the Shoals and the
Snake Pit" for example.  Also take a note about the situation.

We hard-code the branch names here; better and more translatable would
be to get the long name from branches[], but that doesn't appear to be
available from Lua currently.

--------------------------------------------------------------------------------
26d17f9810 | David Lawrence Ramsey | 2012-07-24 12:34:08 -0500

Formatting fixes.

--------------------------------------------------------------------------------
f8ff7e2179 | Adam Borowski | 2012-07-24 19:21:54 +0200

Denzi's crownless wight tile.

--------------------------------------------------------------------------------
cc55ecacd8 | Adam Borowski | 2012-07-24 19:18:19 +0200

Actually use volcano wall tiles in volcanoes.

--------------------------------------------------------------------------------
6732e62db5 | Adam Borowski | 2012-07-24 19:11:46 +0200

Store monster rN as an actual resistance.
This removes special casing of shadow dragons, and also fixes Mara's
illusions not getting the resistance.

--------------------------------------------------------------------------------
87f81e7011 | Adam Borowski | 2012-07-24 19:11:46 +0200

Fix player illusions lacking certain resistances.

--------------------------------------------------------------------------------
d304ab204d | Adam Borowski | 2012-07-24 19:11:46 +0200

Fix ghost resistances getting cleared.

--------------------------------------------------------------------------------
f4ea95c2fb | Adam Borowski | 2012-07-24 19:11:46 +0200

Axe killer bee larvae.
The bad thing is, we wasted quite a lot of work fixing bugs in honey eating,
including a rewrite of monster polymorph just to be able to handle them, yet
they were never used in an actual release.

--------------------------------------------------------------------------------
e89e052b6c | Adam Borowski | 2012-07-24 18:23:25 +0200

Purge the remnants of Hive.

--------------------------------------------------------------------------------
ef0e15a5d4 | Adam Borowski | 2012-07-24 17:58:44 +0200

Don't let antimagic block naga poison spit.

--------------------------------------------------------------------------------
6e9b297feb | Adam Borowski | 2012-07-24 17:14:38 +0200

Don't use objects with strange constructors for storing monster resists.
This is the same concept as in neunon's branch "smaller-binary", except it
goes farther, getting rid of a list of objects with transposed resist types
and levels.  The old code had an array like:
"+++: rC, rF.  ++:rElec.  -:rPois", which existed only in static constructors
which then were converted again to a regular struct.

It turns out the whole exercise is nearly pointless: savings are around 27K
rather than neunon's 674K; apparently he uses an ANCIENT compiler on a Mac
that can't handle static object initializers well.

--------------------------------------------------------------------------------
f9ab910c2d | Florian Diebold | 2012-07-24 16:29:53 +0200

Tweak slime stone wall weights.

--------------------------------------------------------------------------------
feae41c850 | David Lawrence Ramsey | 2012-07-24 09:13:15 -0500

Fix capitalization.

--------------------------------------------------------------------------------
d5b9c6d4ed | Florian Diebold | 2012-07-24 16:10:13 +0200

Tweak slimy wall weights a bit.

--------------------------------------------------------------------------------
93c60106f6 | Florian Diebold | 2012-07-24 15:44:09 +0200

Fix a stupid bug in the previous commit.
Also, remove parentheses, while I'm at it.

--------------------------------------------------------------------------------
17295d9861 | Florian Diebold | 2012-07-24 15:34:22 +0200

Slime tiles by roctavian and ontoclasm (#5911).
For the acid overlays, I've used both the original directional
overlays by roctavian and the altered floor tiles by ontoclasm. I
think this looks suitably dangerous.

--------------------------------------------------------------------------------
5235caaf08 | Florian Diebold | 2012-07-24 14:42:28 +0200

New crystal plate tiles by roctavian and dd (#5907).
Including variants for the player doll tile.

--------------------------------------------------------------------------------
1787d8f1e6 | Florian Diebold | 2012-07-24 14:14:07 +0200

roctavian's improved ant tiles (#5903).
These are much easier to see on the dungeon floor.

--------------------------------------------------------------------------------
b00e9328f5 | Florian Diebold | 2012-07-24 14:01:06 +0200

Update the package list for Fedora.

--------------------------------------------------------------------------------
9602862a86 | Chris Campbell | 2012-07-24 03:18:54 +0100

Fix a shopping list message

--------------------------------------------------------------------------------
179b523384 | Adam Borowski | 2012-07-24 02:32:57 +0200

Check if the major version of Lua is 5.1.
Since Arch provides no way to request 5.1, it would break when they add Lua
5.2.

--------------------------------------------------------------------------------
b79baea81a | Steve Melenchuk | 2012-07-23 18:09:13 -0600

Set monster list for grunt_ashenzari_visionary_spider.
This prevents rock worms from being generated and ruining someone's game
as early as D:2.

--------------------------------------------------------------------------------
76a6a07817 | elliptic | 2012-07-23 19:55:32 -0400

Give some corpseless slimes CE_NOCORPSE.
Mainly this just affects Ignite Poison -- previously some slimes were affected
by Ignite Poison despite having no corpses or poisonous attacks, and there
was no way of knowing that they would be affected without reading mon-data.h.

--------------------------------------------------------------------------------
0ee2be6e2c | Neil Moore | 2012-07-23 14:31:12 -0400

Keep player colour during flash, too (console).
Commit 41df555 made monsters keep their colour during flashes, most
notably the persistent "flash" of lanterns of shadows.  Players were not
affected; this was particularly noticeable with use_fake_player_cursor
(the cursor would not be drawn), but also when players used custom
player glyph colours.

Now the player glyph, like monsters, is unaffected by flashes in
console.

Fixes #4312.

--------------------------------------------------------------------------------
3588bfac9b | Neil Moore | 2012-07-23 12:23:39 -0400

Don't treat "Skybugg" and "Foobola" as buggy.
The former occurred as a randart name in a game ( !lg kryft nawz 2 ).
I suspect "bola" can also occur in random names; it is no longer used
for illegal fixedarts, so there is no need to check for it at all.

Theoretically "buggy" and "buggi" could still occur in random names;
if so, they'll still be reported by the item scan.

--------------------------------------------------------------------------------
7b7f8cc643 | Adam Borowski | 2012-07-23 01:42:29 +0200

ontoclasm's new rune tiles.

--------------------------------------------------------------------------------
f93b0ed94c | Adam Borowski | 2012-07-23 00:53:50 +0200

ontoclasm's tile for the elven rune.
It can't spawn in normal games, yet Sprint can have it.

--------------------------------------------------------------------------------
a2fe8739a0 | Adam Borowski | 2012-07-22 16:02:52 +0200

Changelog up to 0.11-a0-2943-g95738d1.

--------------------------------------------------------------------------------
95738d12e7 | Adam Borowski | 2012-07-22 15:48:08 +0200

Don't use inappropriate wall tiles in the Abyss.
They included wax (not working), slime walls (not doing any damage), ice.

--------------------------------------------------------------------------------
04b0d18f90 | elliptic | 2012-07-22 03:02:48 -0400

Remove Projected Noise.
A L2 spell that lets you get the rune from Tomb:3 without seeing a single
mummy there or lets you pick through the loot on a late Zig level at your
leisure... the idea of the spell is neat, but it is hugely overpowered in
certain places if you know how to use it (while being near-useless most of
the rest of the time) and I don't see much hope of balancing it.

--------------------------------------------------------------------------------
03db133eac | David Lawrence Ramsey | 2012-07-21 22:24:38 -0500

Typo fix.

--------------------------------------------------------------------------------
127edbc985 | Michael Gagno | 2012-07-21 17:12:20 -0700

Some more entry vault changes.
Fixed one that could trap the player behind secret doors (thanks,
ChrisOelmueller), and removed two more "hidden altar" vaults. One of the
hidden altars wasn't even acting as a true entry vault.

--------------------------------------------------------------------------------
7a7a8d434e | Policarpo Caballero | 2012-07-22 01:01:51 +0200

In some distros the lua package is "lua" not "lua5.1".
[1KB: this is going to bite us: if "lua" is lua5.2, the build will fail,
as lua 5.2 is not API compatible with 5.1.]

--------------------------------------------------------------------------------
2578d4f6fc | Adam Borowski | 2012-07-22 00:51:11 +0200

white_noise's tile for Arachne.

--------------------------------------------------------------------------------
8fae1ccb42 | Chris Campbell | 2012-07-21 21:48:40 +0100

Reduce the duration of Xom inner flame

--------------------------------------------------------------------------------
15a6fd1082 | Adam Borowski | 2012-07-21 10:29:43 +0200

Fail for missing fonts on compile time (rather than just runtime).

--------------------------------------------------------------------------------
9e01e63769 | Neil Moore | 2012-07-20 20:28:41 -0400

Let Joseph's bullets stack.

--------------------------------------------------------------------------------
813aefc97e | Steve Melenchuk | 2012-07-20 14:00:46 -0600

Don't display monster liquefaction cast messages for out-of-sight monsters.
The previous code was resulting in "It liquefies the ground around
itself!" and display flashes when the liquefaction source was not
visible to the player.

Fixes #5963.

--------------------------------------------------------------------------------
635fb423a0 | Raphael Langella | 2012-07-20 15:57:48 +0200

Use tile flavour for staircase tiles in Shoals.
Instead of special-casing them in _tileidx_feature_base().

--------------------------------------------------------------------------------
4158a1341c | Adam Borowski | 2012-07-20 14:50:39 +0200

Tag Pan exits as transparent.
They caused quite a bit of vetoes when placed in a corridor.

--------------------------------------------------------------------------------
5826b6f513 | Adam Borowski | 2012-07-20 14:11:43 +0200

Slightly simplify.
random2(B) isn't that likely to be >= B, you know...

--------------------------------------------------------------------------------
9b3039a307 | Jon Knapp | 2012-07-20 12:11:42 +0200

Icon tiles for corona and slow (#5803).
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
ea85ad332c | Steve Melenchuk | 2012-07-19 22:16:51 -0600

A nearby "A nearby it withers and dies" withers and dies.
The "fix" for the previous instance of this message forgot to check if a
toadstoll was in LOS or not; this is now addressed.

--------------------------------------------------------------------------------
50e8881bde | Adam Borowski | 2012-07-20 03:42:31 +0200

Document that ttf-dejavu-core is needed for contribless builds.
The list for Fedora needs to be updated as well, but I don't think they even
allow GUI installations without these fonts.

--------------------------------------------------------------------------------
a3f51aa2c4 | Adam Borowski | 2012-07-20 03:36:37 +0200

Fix building on Debian (broken by hardcoded paths).
Debian's Lua includes have been moved to multiarch paths, which worked
seamlessly for everything that didn't assume /usr/include/lua5.1

This commit adds pkgconfig as a requirement for console builds as well.

--------------------------------------------------------------------------------
204294f1e7 | Adam Borowski | 2012-07-20 03:01:41 +0200

Remove an unused variable.

--------------------------------------------------------------------------------
1d9f2b132e | Adam Borowski | 2012-07-20 02:13:23 +0200

Move the shipped font to contribs, upgrade to DejaVu.
Sadly, this fails to handle CJK well; I played long with fontforge trying to
get at least Korean in, but without much success.  In theory, hangul glyphs
are built from few jamo (24, around a hundred graphical variants), but
fontforge seems to copy all 11184 glyphs as combined splines.

It may be possible to have a completely separate font, and load it if the
.ko or .zh translations are selected, but since 99.9% of the game is still
in English (you read descs once), it would need to be a good monospaced
font, and I can't seem to find one.  They're always either proportional or
abysmally bad.

This is an issue only for 0.11, I plan to look into fontconfig (/ pango?)
integration later so the single font requirement or the inability to use
system fonts will be no more.

Also, the way font detection in the Makefile is done is a good example of
something that shouldn't be done in make...

--------------------------------------------------------------------------------
fa5e20339c | elliptic | 2012-07-19 18:13:07 -0400

Fix range being deducted from tracers that pass through monsters.
This fixes a few issues with targetting things near the edge of range when
there are monsters in between.

--------------------------------------------------------------------------------
06c56a7651 | Raphael Langella | 2012-07-19 17:14:35 +0200

Shoals stairs tiles (#5864).

--------------------------------------------------------------------------------
6cdbd4bb58 | Raphael Langella | 2012-07-19 15:11:48 +0200

Autoexplore doesn't try to see unreachable places in Shoals.
Autoexplore looping through the whole level was caused by 8d595aab. This
commit prevent this behaviour in Shoals. This is a better and simpler fix
than the autoexplore limit I experimented. It was a bit more efficient, but
less exhaustive, and a bit confusing.

Now that I think about it, we could use a similar fix for swamp instead of
making mangroves fully opaque. Visually, seeing only one row makes it look
less like a forest.

--------------------------------------------------------------------------------
19c755c96f | Raphael Langella | 2012-07-19 12:52:59 +0200

Revert shoals colours and exploration limit.
This reverts commit 7f8c7b4f641a56ac897124dc63a1b6d2b3b5f935.
This reverts commit 29c3559ac217a7c57c3e34814c8cdf7e5ed197dc.
This reverts commit 5f7d03867298546a272c3db760c57ef0c6541415.
This reverts commit a4184751df456850d7d5c312c54b62a427d06f3d.
This reverts commit 410924b6f8f920b2b3f2f0b06a79b14e70e2f874.
This reverts commit 12d28aa9d876c186e3ad7dceb6d11d20cd57d417.
This reverts commit 35eb27d2ba502f201b5f67753fb646c338d0b344.

--------------------------------------------------------------------------------
7a81c55983 | elliptic | 2012-07-19 00:42:40 -0400

Improve checks to stop IMB from backfiring (fixes #5950).
Also fixed the calculation of the distance traveled by the IMB before
exploding, since previously it was off by one if you fired it at a wall.

--------------------------------------------------------------------------------
eca8a597ab | Steve Melenchuk | 2012-07-18 20:33:39 -0600

Remove some egregious instances of "it".
This includes not showing messages for decay deaths of toadstools ("A
nearby it withers and dies") and pillars of salt ("It crumbles away"),
delaying display of sheep sticky flame spreading until after they catch
fire and only if they're visible ("It catches fire!"), and displaying
"something" instead of "it" when a monster berserks another monster
("The moth of wrath goads it on!" and "The queen bee calls on it to
defend her!").

--------------------------------------------------------------------------------
0748e3eaef | Chris Campbell | 2012-07-19 02:26:56 +0100

Minor rewording of some unrand descriptions

--------------------------------------------------------------------------------
69f472eb9f | Raphael Langella | 2012-07-19 01:18:20 +0200

Add height information to the tiles debug tip text.

--------------------------------------------------------------------------------
06075026b7 | Raphael Langella | 2012-07-19 01:18:20 +0200

Typo.

--------------------------------------------------------------------------------
e51487d544 | Adam Borowski | 2012-07-18 23:11:01 +0200

Delay Royal Jelly spawns until the end of an actor's turn.
This means they can't be damaged by the same attack or spell that spawned
them.

Also, use div_rand_round() instead of fixed thresholds every 12 hp.  They
worked well when TRJ couldn't heal, but now it can repeatedly go over the
same threshold.

--------------------------------------------------------------------------------
478b7bfc3f | Adam Borowski | 2012-07-18 23:11:00 +0200

Make Royal Jelly spawns always hostile.
This seems to be a regression, however, you can enslave TRJ (preferably
using a scroll of vulnerability) then deal damage to it in a way that
doesn't turn it hostile (torment, luring hostiles, aggroed summons, etc)
to get permanent acid blob/azure jelly/etc pets.

--------------------------------------------------------------------------------
7e582ceb85 | Adam Borowski | 2012-07-18 23:11:00 +0200

Update the abyss stress test: --no-save, loading of autofight.

--------------------------------------------------------------------------------
9800357f7e | Chris Campbell | 2012-07-18 18:38:36 +0100

Reduce the weight of phoenixes in holy Zig floors
They're not an actual threat (especially compared to the other holy
monsters), and just create a lot of annoying hassle destroying the
corpses after everything else is already dead.

--------------------------------------------------------------------------------
488da18cbd | Chris Campbell | 2012-07-18 16:55:36 +0100

Let the Royal Jelly regenerate health
Since the spawns don't give XP there seems to be no real reason not to
let it do so, and this prevents the (boring) technique of slowly
whittling it down and running away.

--------------------------------------------------------------------------------
a76cb289bf | Chris Campbell | 2012-07-18 16:55:36 +0100

Staticify summon_animals
Still works the same way, but maybe it should be tweaked to use
power_level like most other summon cards do, or to generate random
mobile Lair monsters as the ancient comment suggests.

--------------------------------------------------------------------------------
bb48e157ff | Adam Borowski | 2012-07-18 17:52:32 +0200

Fix the logic of boulder beetles stopping when rolling over stuff.
They'll continue iff the victim dies.

They used to fail to stop, resulting in teleporting through people.  Their
internal idea of position was out of sync with reality, making them think
they were on the actor they hit, rather than the place before.

--------------------------------------------------------------------------------
706b0ff974 | David Lawrence Ramsey | 2012-07-18 08:59:19 -0500

Fix spacing.

--------------------------------------------------------------------------------
36c522e850 | Adam Borowski | 2012-07-18 14:46:31 +0200

Add an article for the poor bugger a boulder smashes into.
Only "you" was correct there.

--------------------------------------------------------------------------------
c84e800f13 | Adam Borowski | 2012-07-18 14:45:06 +0200

Get rid of massive code duplication between iood and boulder beetles.

--------------------------------------------------------------------------------
7a5bf1d3e8 | Adam Borowski | 2012-07-18 12:53:04 +0200

Veto all Pan maps that have more than one zone.

--------------------------------------------------------------------------------
e77190c275 | Adam Borowski | 2012-07-18 12:41:41 +0200

Don't let Pan vaults break level connectivity.

--------------------------------------------------------------------------------
ca0b37cd01 | Michael Gagno | 2012-07-18 00:13:13 -0700

Remove mummies from Gehenna.
It makes no sense for a rF- monster to be in a fire branch.

--------------------------------------------------------------------------------
907875ddb5 | Michael Gagno | 2012-07-17 23:48:03 -0700

Make the walls in evilmike_silver_temple "silver walls".

--------------------------------------------------------------------------------
8590cc5900 | Michael Gagno | 2012-07-17 22:16:03 -0700

Don't trap the player behind secret doors in sevenhm_entry_forest_fort_small_3.

--------------------------------------------------------------------------------
46cfc82f33 | Steve Melenchuk | 2012-07-17 20:04:25 -0600

Tweaks to pick_local_zombifiable_monster for ZotDef.
This removes an invalid assumption about the player's dungeon depth
(instead tying it to the ZotDef wave number) and makes the 1-in-1000
"ignore rarity" check happen even in ZotDef.

This is in response to consistent infinite loops within the function.

--------------------------------------------------------------------------------
a82dbc50ce | Adam Borowski | 2012-07-18 02:12:24 +0200

Make being rolled over by a boulder beetle a separate ktyp.
This allows us to make the obituary have a reasonable wording: beams are all
about hitting stuff from afar, rolling boulders not so.

--------------------------------------------------------------------------------
50ccef4606 | Florian Diebold | 2012-07-17 23:31:21 +0200

Fix rods not being shown on the player doll (#5944).

--------------------------------------------------------------------------------
907b21efd3 | elliptic | 2012-07-17 11:13:15 -0400

Fix demons_altar placing a smoke demon on D:3.

--------------------------------------------------------------------------------
7337c72e4d | elliptic | 2012-07-17 00:39:03 -0400

Add extra check to stop the IMB explosion from hitting the caster in the face.
This check seems to only be necessary when _imb_explosion() is called from
tracer_affect_monster() (since the square the monster is on has not yet been
added to the path at that point). Thus IMB didn't actually hit the caster,
but the tracer was afraid that it would.

--------------------------------------------------------------------------------
77cd285ec6 | David Lawrence Ramsey | 2012-07-16 19:49:56 -0500

Fix capitalization.

--------------------------------------------------------------------------------
7f8c7b4f64 | David Lawrence Ramsey | 2012-07-16 18:35:23 -0500

Tweak wording.

--------------------------------------------------------------------------------
29c3559ac2 | Raphael Langella | 2012-07-17 01:00:25 +0200

Descriptions for tidal water and wet sand.
Consider them as placeholders.

--------------------------------------------------------------------------------
f959f71457 | Raphael Langella | 2012-07-17 01:00:25 +0200

Enable wall shadows in Shoals.
3d59197 added wall shadows only to other branches, but there wasn't any reason
given, and they seem to work just fine, so it looks like an oversight.

--------------------------------------------------------------------------------
5f7d038672 | Raphael Langella | 2012-07-17 01:00:25 +0200

Rename tidal waters and wet sands in examine surrounding mode.

--------------------------------------------------------------------------------
a4184751df | Raphael Langella | 2012-07-17 01:00:25 +0200

Make the Shoals floor brown/yellow depending on height (wet sand).
Brown floor means that it turns to water at high tide (wet sand).
Yellow floor is dry, it stays sand at high tide.

--------------------------------------------------------------------------------
410924b6f8 | Raphael Langella | 2012-07-17 01:00:25 +0200

Show the autoexplore limit in Shoals.
The autoexplore is now limited to cells with a height > -18, which is about the
sand limit at low tide. We say that beyond this point, the bottom changes from
sand to rock and autoexplore won't try to go there, even if they are
traverseable.

This greatly reduce autoexplore time, and even amphibious species will respect
it. It doesn't prevent a merfolk from crossing deep water to explore an island
spotted over the water, but they won't randomly explore the sea.

To illustrate the limit, shallow water is light cyan or cyan, deep water is
light blue or blue.

--------------------------------------------------------------------------------
7e4a16d5bd | Adam Borowski | 2012-07-16 22:27:17 +0200

Weak-ass text popup for --help on Windows tiles.
It uses MessageBoxW() which has two flaws:
* you can't copy&paste text
* columns are badly misaligned

I guess the former is what Windows users are already used to, but the latter
looks abysmal.

--------------------------------------------------------------------------------
df290d7717 | Adam Borowski | 2012-07-16 22:07:43 +0200

Don't claim that EH has extra effects on cold-bloded creatures.

--------------------------------------------------------------------------------
d3520227b6 | Adam Borowski | 2012-07-16 19:07:00 +0200

Trim the changelog (alefury)
I kept three changes compared to alefury's trimming:
* plants being torment-immune means a lot to Fedhasites
* demonspawn don't have a reason to stay in an umbra
* there's no reason to avoid visored helmets

--------------------------------------------------------------------------------
e2923a5b3e | Steve Melenchuk | 2012-07-16 09:56:07 -0600

ontoclasm's new statue tiles (#5936).
Several vault-specific monsters and features now have tiles, so those
vaults and features have had the tiles attached to them as well.

--------------------------------------------------------------------------------
cc96237c68 | Neil Moore | 2012-07-16 11:23:33 -0400

Better message when using 'a' in silence (#3242).

--------------------------------------------------------------------------------
d0988b877e | David Lawrence Ramsey | 2012-07-16 10:09:54 -0500

Reword freed slave description.

--------------------------------------------------------------------------------
9cfd29023f | Adam Borowski | 2012-07-16 14:34:27 +0200

Declare the layout_type for twisted cavern and Spider maps.

--------------------------------------------------------------------------------
82aa59b628 | Adam Borowski | 2012-07-16 14:34:27 +0200

Fixes to obsolete .des syntax documentation [nagdon]

--------------------------------------------------------------------------------
aacbc5e42c | Florian Diebold | 2012-07-16 14:21:13 +0200

New glove tiles and a slightly tweaked bread ration by roctavian (#5622).

--------------------------------------------------------------------------------
69d9453c04 | Adam Borowski | 2012-07-16 13:59:11 +0200

Teach db_lint about special-cased "gleaming silver wall"s.
They're neither base features, nor vault redefitions.

--------------------------------------------------------------------------------
01e25e4a4b | Adam Borowski | 2012-07-16 13:55:19 +0200

Add a desc for freed slaves.

--------------------------------------------------------------------------------
f24a89868f | Adam Borowski | 2012-07-16 13:45:57 +0200

Fix any combat with quasits being coloured as "danger".

--------------------------------------------------------------------------------
b2db5e661d | Neil Moore | 2012-07-16 06:53:21 -0400

Display "<" correctly in stash search prompt (#3545).

--------------------------------------------------------------------------------
549b2219b1 | Steve Melenchuk | 2012-07-15 20:27:33 -0600

A couple of text tweaks related to Imprison's silver walls.
Previously:

- Interacting with them, such as by hitting them with an orb of
  destruction, yielded "The orb of destruction hits A [sic] gleaming
  silver wall"; the incorrect capitalisation has been fixed.
- "A gleaming silver wall" had no database entry; one has been added.

--------------------------------------------------------------------------------
dd0bee7834 | Steve Melenchuk | 2012-07-15 20:13:50 -0600

Add M_NO_EXP_GAIN flag to twisters.
This has the effect of not considering twisters as targets for most
purposes, similar to orbs of destruction, (plain) ballistomycetes,
plants, bushes, and fungi.

After all, people aren't supposed to try to kill them.

--------------------------------------------------------------------------------
f8cda37ea6 | Steve Melenchuk | 2012-07-15 17:02:15 -0600

Boulder beetles now spend energy when hitting something in boulder form.
This wasn't previously being accounted for properly, and was resulting
in boulder beetles getting extra moves the turn after they stopped
rolling.

Fixes 0005839.

--------------------------------------------------------------------------------
a44da723d1 | Neil Moore | 2012-07-15 18:33:39 -0400

Link abyssal rune vault runes, too.

--------------------------------------------------------------------------------
d6a6bc74a1 | Neil Moore | 2012-07-15 18:14:25 -0400

Check for unlinked items before placing abyssal vaults.

--------------------------------------------------------------------------------
5681bfce08 | Neil Moore | 2012-07-15 18:09:16 -0400

Link items placed by abyssal vaults.
Items placed by an abyss vault upon being banished weren't linked until
later in _build_dungeon_level(); but since e94e10c we have been doing an
item scan before returning to the dungeon.cc code.  Link the items (and
warn about/remove items stuck in walls) just after placing vaults in
_generate_area().

Fixed #5704.

--------------------------------------------------------------------------------
b4a20dcf5e | Neil Moore | 2012-07-15 14:58:13 -0400

Don't try to shout after leaving the level (#5785).

--------------------------------------------------------------------------------
b07c03b1e2 | Michael Gagno | 2012-07-15 11:37:52 -0700

Make shiori_entry_maze less annoying.

--------------------------------------------------------------------------------
3c24824b0c | Neil Moore | 2012-07-15 12:55:49 -0400

Don't prompt in the middle of targetting.
If you aimed a beam targetter (including IMB and Fireball) past a
statue, every move of the targetting cursor would prompt about whether
you really want to shoot when your fire is blocked.  The code checks for
thing like BEAM_VISUAL, but we use the real beam type to properly
resolve bouncing etc.  Instead, add a new flag is_targetting and use
that for the beam targetters.

The smite and LRD targetters don't set is_tracer and is_targetting;
perhaps they should for consistency.

--------------------------------------------------------------------------------
ff947e7ff9 | Florian Diebold | 2012-07-15 18:51:30 +0200

Allow the webtiles server to read from multiple milestone files.

--------------------------------------------------------------------------------
2cb988369e | elliptic | 2012-07-15 12:26:49 -0400

Fix reversed probability of IMB explosion.

--------------------------------------------------------------------------------
b4ce8f429c | Florian Diebold | 2012-07-15 16:49:21 +0200

Fix rod tiles (#5818).
Subtype and appearance are independent on rods; that makes the normal
hack inapplicable, since it displays the appearance tile for an item
depending on the subtype icon. This makes it very hard to display both
the appearance tile and the subtype icon for a rod on the floor (since
we can only pass one tile index to the rendering code -- that's why
there's the whole mcache thing for monsters).

This is the cowardly fix: Rods on the floor only get the appearance
tile, rods in the inventory menu and region use the same hack as
weapons, armour and ammo (where the brand icon isn't displayed on the
floor either).

I have another fix which displays the subtype icons on the floor, but
it is extremely ugly. The whole tile picking and rendering code could
really use a big refactoring; I don't want to add even more hackiness.

--------------------------------------------------------------------------------
03539a5e31 | Steve Melenchuk | 2012-07-14 22:56:14 -0600

Assign database entries to mercenaries and ZotDef bosses.
Previously, their names meant they had no descriptions. Now they do.

--------------------------------------------------------------------------------
c64984c046 | Steve Melenchuk | 2012-07-14 22:46:24 -0600

Give names to Mercenaries.
This takes the same approach as ZotDef: use database entries if they
exist (currently this is only true of orcs), and use the random name
generator otherwise.

Since they'll be around for a while, hopefully this will let players
enjoy having them a bit more.

--------------------------------------------------------------------------------
f08c53b073 | Steve Melenchuk | 2012-07-14 21:14:59 -0600

Don't display Devastator "shudders" message for unseen monsters.
This was yielding such gems as "The yaktaur, it, and the yaktaur captain
shudder." and, especially, "Its shudder."

--------------------------------------------------------------------------------
9c93d92b4e | Steve Melenchuk | 2012-07-14 18:54:10 -0600

Changelog up to 0.11-a0-2859-ga7b20a9.
I'm omitting mention of the landing of unicode-tiles, as we do not yet
ship a font that allows the game to take advantage of this capability.
Once that happens, we can mention it here.

--------------------------------------------------------------------------------
a7b20a971d | Steve Melenchuk | 2012-07-14 15:17:13 -0600

De-clutter IMB target display when orb could hit more than one target.
The path up to the first target is shown as AFF_YES.

Explosion tracers from the first target are shown as AFF_MAYBE.

The path past the first target is also shown as AFF_MAYBE.

The explosion tracers from targets other than the first are now shown as
AFF_TRACER (changed from AFF_MAYBE).

It's thus easier to determine how likely a given square is to be hit
from the display.

--------------------------------------------------------------------------------
83296e14f6 | Steve Melenchuk | 2012-07-14 15:06:45 -0600

Improvements to IMB tracer and targetter.
The tracer now checks for explosions on possible endpoints (i.e. tiles
between the origin and the target where it can hit a monster), and the
targetter shows explosions on those cells.

The display resulting from this is a little bit messy, but the tracer
is now arguably as paranoid as it can be about hitting unwanted targets.

--------------------------------------------------------------------------------
083da4b3c7 | Steve Melenchuk | 2012-07-14 14:22:13 -0600

Allow targetters to display rays to out-of-range squares.
If the square can be targetted with ! or @, it's now considered "valid"
for the purpose of the targetting code and tracers will be drawn. If
the square can't be targetted at all, a tracer will not be drawn.

Fixes 0005934.

--------------------------------------------------------------------------------
270c28cee3 | Neil Moore | 2012-07-14 15:43:50 -0400

Don't let "durably summoned" monsters pick up items.
This behaviour is inconsistent with ordinary summons.  Worse, the items
would be destroyed when the creature ceases to exist.

Fixes #5929.

--------------------------------------------------------------------------------
e55869e34c | Steve Melenchuk | 2012-07-14 13:33:11 -0600

Use article_a for suicidal targetting death messages.
Previously, you could get the incorrect "Shot themself with a orb of
energy" or "Shot themself with an ice storm"; this fixes those messages.

--------------------------------------------------------------------------------
a3009c54b7 | Michael Gagno | 2012-07-14 12:03:20 -0700

Remove all of the loot and monsters from dpeg_entry_concentric_ovals.
Entry vaults shouldn't hide loot, and they shouldn't place goliath beetles
either.

--------------------------------------------------------------------------------
3b3c2a2b3c | Neil Moore | 2012-07-14 11:19:28 -0400

Minor cleanup.

--------------------------------------------------------------------------------
72eb4cbde6 | Neil Moore | 2012-07-14 11:16:29 -0400

Don't prompt about draining bloodless corpses (#5933).

--------------------------------------------------------------------------------
8b9935cda6 | Adam Borowski | 2012-07-14 16:26:02 +0200

Use ÷ for DCHAR_FIRED_BURST.
There's quite a number of effects that try to use it, although most (all?)
are explosions and thus the glyph never shown up.  With lightning rod
displaying it for a sizeable fraction of a second, people suddenly got
confused ("Summons doors, possibly inside walls." in learndb).

I could easily just change it to DCHAR_FIRED_BEAM ('*') instead.  Perhaps
_BURST should just be removed?

--------------------------------------------------------------------------------
66c6931afa | Adam Borowski | 2012-07-14 16:26:02 +0200

Make all windows in tso_metal_star use the same feature (nagdon).

--------------------------------------------------------------------------------
3a46f61363 | Neil Moore | 2012-07-14 08:09:46 -0400

IMB tracer: fix an overenthusiastic prompt.
You were prompted about LOF being blocked if one of the explosion rays
would hit a wall.  Mark the rays as passed_target to avoid this.

Fixes #5930.

--------------------------------------------------------------------------------
30f7604b8b | Adam Borowski | 2012-07-14 12:43:43 +0200

Buff the lightning rod.
Damage is increased slightly, to-hit more, and if you use it in an arc, it
nearly always hits.

--------------------------------------------------------------------------------
d56a7583c6 | Adam Borowski | 2012-07-14 06:15:27 +0200

Don't capitalize "Databases" when loading tiles.

--------------------------------------------------------------------------------
7df606d302 | Adam Borowski | 2012-07-14 05:47:24 +0200

In ZotDef, don't let monsters wander (and crash) while off-level.
They already get a chance to catch up (returning to the level paralyzes
you for a while), randomly moving them is pointless.  This fixes a crash,
as the orb position was not updated yet, and couldn't be because you were
not on the level yet and it may be in your inventory.

As a side effect, corpses won't rot, rods recharge, etc.  This is consistent
with the notion of no time passing.

--------------------------------------------------------------------------------
7d03a805a1 | Adam Borowski | 2012-07-14 05:47:21 +0200

Give the coords in wizmode ZotDef pathfind failures.
Non-wizmode crashes already have that.

Also, reveal the monster's identity, it's almost always out of LOS.

--------------------------------------------------------------------------------
1c7225fb7b | Adam Borowski | 2012-07-14 04:42:14 +0200

Do a compile check for the presence of fdatasync().
This is a NIH implementation of a part of autoconf, it is limited as it
would be hard to affect the Makefile from such tests.  On the other hand,
even nasty hacks like grepping for sqlite features are not enough here, as
we're looking for something in system headers.

I think all of configuration in the Makefile should be nuked and rewritten,
so it's just a crutch for 0.11.

--------------------------------------------------------------------------------
25caa0c881 | Adam Borowski | 2012-07-14 04:11:11 +0200

Make Fannar's ring preidentified.

--------------------------------------------------------------------------------
f6125e5208 | Adam Borowski | 2012-07-14 04:11:10 +0200

Give god-forbidden corpses the last priority for auto-butchery and auto-drop.

--------------------------------------------------------------------------------
5926e43f63 | Neil Moore | 2012-07-13 14:52:09 -0400

Fix a wrong parameter name in the fog_machine docs.

--------------------------------------------------------------------------------
8934214bf5 | Neil Moore | 2012-07-13 14:52:09 -0400

Don't exclude walls in saegor_entry_miasma.
The wall exclusions were visible in tiles.

Set the fog machine's excl_rad to zero.  This might underexclude
somewhat if you or a monster digs through a wall to let the miasma out.

Fixes #5921.

--------------------------------------------------------------------------------
0f1f646bc8 | Steve Melenchuk | 2012-07-13 10:01:29 -0600

Add handling for "drop last item" (last_pickup) to Fulsome Distillation code.
Previously, using the drop last item command after using Fulsome
Distillation would drop both the potion it produced and whatever items
were last picked up before said potion. Now only the potion is dropped,
fixing 0005916.

--------------------------------------------------------------------------------
cc2b11a65e | Steve Melenchuk | 2012-07-13 09:39:25 -0600

Prefix "something" death messages with "Killed by".
"Something" deaths include distortion unwields, cards of wild magic,
some mummy death curses, some Hell effects, and some other situations
involving miscast effects not arising from actual miscasts.

Thus, "a card of wild magic" being the only death message is a thing of
the past, fixing 0005926.

There's a small tweak to the distortion unwield kaux to get the message
to read "Killed by a distortion unwield" instead of "Killed by
distortion unwield".

--------------------------------------------------------------------------------
755c0b1ab9 | Neil Moore | 2012-07-13 08:47:01 -0400

Let Jiyvites travel/explore next to slime walls.

--------------------------------------------------------------------------------
73a3df2de0 | Neil Moore | 2012-07-13 08:26:34 -0400

Avoid an unlikely incorrect message.
If a portal times out while you are taking a stair at the same X
coordinate as the portal, you could have received "The portal vanishes
just as you enter it!".

--------------------------------------------------------------------------------
b18f8f1235 | Neil Moore | 2012-07-13 08:21:56 -0400

Don't surround the player stepping from time in Wucad's monkery.
Possibly it would make more sense to just slow the spawns; if so,
there is a warning message (from passing (0,0) as the centre of a
circle_iterator) that should be avoided.

--------------------------------------------------------------------------------
397c525d9e | Neil Moore | 2012-07-13 07:50:39 -0400

Don't crash when stepping from time with the Orb.

--------------------------------------------------------------------------------
74418d3363 | Michael Gagno | 2012-07-12 22:40:10 -0700

Decrease the number of monsters in minmay_lair_end_frog_pond.
Not drastically, though. This vault still places a ton of spiny frogs.

--------------------------------------------------------------------------------
354d479892 | Neil Moore | 2012-07-12 18:25:55 -0400

Make quitting less of a moral issue.

--------------------------------------------------------------------------------
0c8de7b8c1 | Neil Moore | 2012-07-12 18:00:11 -0400

Update link to ##crawl-dev log archive.

--------------------------------------------------------------------------------
fe5a96f36a | Neil Moore | 2012-07-12 10:45:48 -0400

Don't fail when unmarshalling a too-long string (#5919).

--------------------------------------------------------------------------------
ad0964d1f5 | Steve Melenchuk | 2012-07-12 08:10:05 -0600

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
5362db65fb | Steve Melenchuk | 2012-07-12 08:07:54 -0600

Update trainable skill list before untrainable skill list.
The previous opposite order was confusing the skills screen on a
cursed or distortion item wield (0005920).

--------------------------------------------------------------------------------
94c716ceb0 | Adam Borowski | 2012-07-12 16:01:25 +0200

Check if some code tries to read from a save into (void*)0
This way, we can tell save corruption from reader corruption.

--------------------------------------------------------------------------------
f2adc98f1a | Steve Melenchuk | 2012-07-11 15:28:49 -0600

Fix up IMB targetter to use proper explosion distances.
The IMB explosion shoots up to seven beams to a distance of up to two
tiles away from the point of origin; the targetter now reflects this.

This commit also reformats a bit of the related code.

--------------------------------------------------------------------------------
9d3cc83203 | Steve Melenchuk | 2012-07-11 14:38:39 -0600

Fix crash on book acquirement / divine gifting.
The god acquirement checking added by 0f3324d521cd was resulting in
spellbooks being checked before they had a properly defined type, and
the code doing the checking did not pick up that the book was in the
process of being acquired, thereby trying to look up spells in an
undefined book.

--------------------------------------------------------------------------------
30fc1177d6 | Steve Melenchuk | 2012-07-11 14:13:35 -0600

IMB tracer and targetting improvements.
IMB tracers now account for the possible explosion, so that the player
will get appropriate warnings and IMB-wielding monsters will consider
the affect that the spell could have on allies. Thus, this fixes
0005823.

There's also now a dedicated targetter for IMB, employing the same code
to determine what squares can be affected as the tracer, which has been
split out from the relevant section of the beam code.

Finally, on account of the above split, the IMB explosion code itself is
now a bit cleaner.

--------------------------------------------------------------------------------
59ea75df74 | Steve Melenchuk | 2012-07-11 12:46:45 -0600

Warn against bad Fire Storm targetting.
This includes the usual warnings - catching oneself in the radius of the
blast, targetting friendly monsters and/or (for good gods) unaware
targets, etc.

--------------------------------------------------------------------------------
810acb33c7 | Chris Campbell | 2012-07-11 17:46:19 +0100

Decrease the amount of steam created by flame clouds over water

--------------------------------------------------------------------------------
4aa4f5a7d8 | Florian Diebold | 2012-07-11 18:44:20 +0200

Fix restoring webtiles menus after showing another dialog.

--------------------------------------------------------------------------------
c57de4eda3 | Adam Borowski | 2012-07-11 18:31:08 +0200

Fix confirm_butcher=never choosing useless corpses first.
If you have a poisonous corpse and a regular one on a stack, it doesn't make
any sense to butcher the top one.

This commit will also prefer clean corpses to contaminated ones, as long as
there is no significant difference in freshness.

Finally, it fixes attempting to butcher a forbidden corpse saying there's
nothing there.

--------------------------------------------------------------------------------
9d32731bcc | Adam Borowski | 2012-07-11 17:36:22 +0200

Merge branch 'unicode-tiles'
It lacks an actual font yet, but I realized we need to check if drivers
people use actually support sub-textures -- and if not, there'll be some
rethinking needed.

--------------------------------------------------------------------------------
28812c7f27 | Neil Moore | 2012-07-11 11:32:16 -0400

Adjust a weight.
I had intended to keep the frequency of 'nothing' approximately the
same as it was before, but I miscounted the number of alternatives.

--------------------------------------------------------------------------------
1f02cd4ced | Neil Moore | 2012-07-11 11:27:33 -0400

Mention ZigSprint in changelog.txt.

--------------------------------------------------------------------------------
ab6c32544e | Neil Moore | 2012-07-11 11:21:22 -0400

Add shedu bands to ZigSprint holy rooms.
Now that they are back in the Ziggurat and won't be placed across walls.

--------------------------------------------------------------------------------
9b1000a185 | Adam Borowski | 2012-07-11 14:10:16 +0200

Let magic mapping detect stuff behind secret doors.
Because, you know, there are none anymore.

--------------------------------------------------------------------------------
0c8f6b4214 | Adam Borowski | 2012-07-11 14:02:31 +0200

Drop the code for displaying/handling/etc secret doors.

--------------------------------------------------------------------------------
028fc5a51a | Raphael Langella | 2012-07-11 12:58:03 +0200

Wand of invisibility is useless for TSOites.
In theory, you could use them on allies (not divine because of halo), and it
wouldn't be completely useless once they leave your halo. Not really
significant. Better have consistency with potion and ring.

--------------------------------------------------------------------------------
77587839e0 | Adam Borowski | 2012-07-11 12:37:03 +0200

Traps&Doors -> Traps.
The only relevant use left, silently opening doors, is now 100% Stealth
(and DEX), rather than 50% Stealth 50% T&D.

--------------------------------------------------------------------------------
23d74574e7 | Adam Borowski | 2012-07-11 11:51:10 +0200

Remove unused MMT_NO_DOOR.
It was supposed to prevent doors in a vault from being made secret, but it
doesn't appear to have ever been used in DCSS' history.

--------------------------------------------------------------------------------
392f467dea | Adam Borowski | 2012-07-11 11:41:47 +0200

Don't spawn secret doors anywhere, remove them from saves.

--------------------------------------------------------------------------------
0f3324d521 | Raphael Langella | 2012-07-11 10:20:48 +0200

Don't acquire items your god hates.
Since is_useless_item takes religion into account, acquirement is already
affected by religion, but in an inconsistent way.
For example, with TSO, invisibility is useless and poison/evil is forbidden. You
can acquire the latter, but not the former, which doesn't make much sense.

--------------------------------------------------------------------------------
1cb138f461 | Neil Moore | 2012-07-11 04:07:48 -0400

Confusing Touch affects one hand.
It doesn't work with offhand punches or with octopodes' squeeze aux.
Clarify this in the description.

--------------------------------------------------------------------------------
21a67114c6 | Steve Melenchuk | 2012-07-10 20:49:19 -0600

Don't generate traps on chokepoints in orb_chamber_grunt_hallway.
This has seemed to consistently happen whenever players have encountered
it, and is frustrating even by Zot:5 standards.

--------------------------------------------------------------------------------
0bba7d7700 | Steve Melenchuk | 2012-07-10 20:32:35 -0600

Have undead base monster selection assume player is in Dungeon in ZotDef.
This restores the behaviour of undead generation prior to the move of
the level from Dungeon to Zot, and prevent horrendously out-of-depth
zombies such as draconians and dragons from being generated within
moments of starting the game.

Eventually, this model could move to being reflective of whatever the
current wave is, but that will require some more work (and possibly
break save compatibility).

--------------------------------------------------------------------------------
da90b54d42 | Steve Melenchuk | 2012-07-10 18:37:18 -0600

Disable ghost spawning in ZotDef.
This was induced by the move from D:1 to Zot, and resulted in some
unbalanced, if amusing, deaths before the game proper started.

There's been some talk of having ghosts spawn dynamically as part of
waves; this approach is simpler to implement for the time being. Once
the particularls of dynamic spawning have been worked out this can be
revisited.

--------------------------------------------------------------------------------
ec46f0145c | Adam Borowski | 2012-07-11 02:35:23 +0200

Revert accidential revertion of some contrib/sqlite changes.
This partially reverts commit d2ad5edba5b7014f28534728389cfaae2a07d9c3.

--------------------------------------------------------------------------------
d2ad5edba5 | David Ploog | 2012-07-11 02:26:20 +0200

Randart weapon names.
Remove "Holocaust", add a bunch.

--------------------------------------------------------------------------------
0947991201 | Adam Borowski | 2012-07-11 02:07:05 +0200

Implement mkstemp() for Windows.
I used this function because some random page misled me into thinking it is
available on Windows (possibly a fault of my poor reading comprehension...).
It looks like that there's no existing function on Windows that's race-free,
so I implemented one from scratch.

--------------------------------------------------------------------------------
a8bc3b79fc | Neil Moore | 2012-07-10 18:38:58 -0400

Hydrochloric^WRot-inducing overrides contaminated (#5910).

--------------------------------------------------------------------------------
dfd7b56212 | Adam Borowski | 2012-07-11 00:35:56 +0200

Tiles license: s/vast majority/majority/; no new artist said anything about CC0.

--------------------------------------------------------------------------------
079eee6e63 | Adam Borowski | 2012-07-11 00:18:40 +0200

In ZotDef, let Shadow Creatures summon stuff appropriate for the current wave.
It gave D:1 creatures, which were a wee bit useless.

--------------------------------------------------------------------------------
15def22fcd | Steve Melenchuk | 2012-07-10 15:31:28 -0600

Remove duplicate warnings from high-level book descriptions.
The warning about miscast effects is added by the code, but was also
present in the description of the Grand Grimoire and Book of
Annihilations. This caused the spell display to flow past the end of the
screen for those two books.

Fixes #0005900.

--------------------------------------------------------------------------------
6bf6fde729 | Neil Moore | 2012-07-10 11:10:48 -0400

Missed one.

--------------------------------------------------------------------------------
4ae42f60e5 | Neil Moore | 2012-07-10 11:02:27 -0400

Neuter pronouns.

--------------------------------------------------------------------------------
55dd3a9192 | Raphael Langella | 2012-07-10 16:44:31 +0200

A checklist for all the tasks to do when a new developer joins the team.

--------------------------------------------------------------------------------
315c7ef50e | Neil Moore | 2012-07-10 09:57:39 -0400

Cakes and ale for Grunt.  Welcome to the devteam!

--------------------------------------------------------------------------------
e9529475b9 | Adam Borowski | 2012-07-10 14:09:12 +0200

Basic infrastructure for de-spamming debug mode.
Doesn't work yet (no interface).

I marked two classes of debug messages for now: combat and beam, as these
are the worst offenders.

--------------------------------------------------------------------------------
4c2075603a | Adam Borowski | 2012-07-10 13:02:30 +0200

Remove an obsolete comment.
What's funny here is that the very next line of code contradicted it, by
using a variadic #define.  We switched to C99/C++98 features in June 2010.

--------------------------------------------------------------------------------
cd63a29a82 | Adam Borowski | 2012-07-10 11:11:30 +0200

Repair the fireworks stress test.

--------------------------------------------------------------------------------
4a20bb18f0 | Adam Borowski | 2012-07-10 11:11:29 +0200

An undocumented command-line option, --no-save.
It uses a temporary file for the save file.  This fixes canned tests breaking
if a run has been aborted (and thus a save by that name exists), and also
allows concurrently running multiple instances of the same test.

Implies wizmode.

--------------------------------------------------------------------------------
831427b342 | Adam Borowski | 2012-07-10 11:11:28 +0200

Unbreak Windows builds.

--------------------------------------------------------------------------------
c07ccef778 | Adam Borowski | 2012-07-10 11:11:28 +0200

Drop a bunch of useless uses of this->
I left a few cases where it helps disambiguate between global and object
functions by the same name (formatted_string::cprintf(), etc).

--------------------------------------------------------------------------------
2302989732 | Adam Borowski | 2012-07-10 11:11:27 +0200

Drop useless uses of _G from vault lua.

--------------------------------------------------------------------------------
19157c3804 | Neil Moore | 2012-07-10 03:15:00 -0400

Disable self-LRD for now (#5908).
Some but not all of the code from Grunt's monster LRD implementation
made it in (71fa800).  Some code to allow LRDing players made it in,
but not everything necessary.  As a result, setup_fragmentation_beam()
was crashing when called from the targetter.  Temporarily disable
LRD on players until monster LRD (#5840) is merged.

--------------------------------------------------------------------------------
b61c86c5fb | Neil Moore | 2012-07-09 23:07:59 -0400

Be even more careful about placing stairs next to Slime walls.
If we fail after 100 tries, veto the level rather than placing
the stairs next to a wall.  Furthermore, if we ever fall to
find a floor spot, give up.

--------------------------------------------------------------------------------
d75018597a | Steve Melenchuk | 2012-07-09 22:37:44 -0400

Remove the specific feature check for Slime minivault placement.
This means that minivaults cannot be placed adjacent to stairs in Slime.

--------------------------------------------------------------------------------
e7cf5095ad | Steve Melenchuk | 2012-07-09 22:37:40 -0400

Try harder not to place stairs next to walls in Slime.
This is primarily a problem where vaults are concerned, as when vaults
were placed in Slime, stairs could end up next to the vault wall,
causing connectivity problems.

This also tries not to place minivault rock walls next to Slime stairs.
Rock walls in minivaults are not automatically converted to slime walls,
but those making Slime minivaults can simply add their own conversion
from rock walls to slime walls ("KFEAT: x = slimy_wall") to take
advantage of this check.

--------------------------------------------------------------------------------
40540b47a0 | Neil Moore | 2012-07-09 20:53:36 -0400

Don't recolour walls, water, or lava next to slimy walls.
Recolouring walls makes it difficult to tell in console which walls
are dangerous; and recolouring water or lava could kill.

Fixes #5905.

--------------------------------------------------------------------------------
d3bd2fe6cb | Neil Moore | 2012-07-09 20:21:00 -0400

Whitespace fix.

--------------------------------------------------------------------------------
aba218ca0f | Policarpo Caballero | 2012-07-09 20:19:57 -0400

Fix boulder_generate in traps/boulders.des
Sometimes the boulder beetle can't be placed.  In that case do nothing.

--------------------------------------------------------------------------------
9cdc3db851 | Florian Diebold | 2012-07-09 19:32:36 +0200

ontoclasm's travel trail footstep tiles (#5877).

--------------------------------------------------------------------------------
a70edf09aa | Neil Moore | 2012-07-09 13:12:14 -0400

Enfrancinate a number of spaces.
Also fix a few tabs in coding_conventions.txt (how ironic!).

--------------------------------------------------------------------------------
6207113de7 | Neil Moore | 2012-07-09 12:54:14 -0400

Ctrl-C first clears the travel trail, if any.
If the option is off or the trail is empty, it clears the map as before.
Things are unchanged for non-users of the option, and pressing Ctrl-C a
second time clears the map.  Mention this in options_guide.txt, but
because of its dependence on a non-default option, not in the command
list.

Forget Map (X Ctrl-F) also clears the travel trail.

--------------------------------------------------------------------------------
02943c5ad2 | Raphael Langella | 2012-07-09 16:10:32 +0200

Move the future mangrove enum out of the wall range.
It's opaque, but it shouldn't return true to feat_is_wall.

--------------------------------------------------------------------------------
a4536b7a7f | Raphael Langella | 2012-07-09 16:10:09 +0200

Don't try to explore through mangroves (#5897).

--------------------------------------------------------------------------------
67c2ebf3e8 | Raphael Langella | 2012-07-09 11:43:09 +0200

Formatting fixes.

--------------------------------------------------------------------------------
e29cc7b171 | Steve Melenchuk | 2012-07-09 11:39:27 +0200

Adjust cross-training to operate on a 0.1-point gap.
That is, cross-training only works if there is a visible (fractional)
difference between skills, as opposed to checking only the
non-fractional skill level.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
0c56e2b2b8 | Raphael Langella | 2012-07-09 11:33:43 +0200

Revert "Show damage numbers in wizard mode."
This reverts commit 1d2dbd5c7c05c53c837a3da882db6ef26e286475.

As discussed on c-r-d, wizmode shouldn't display internals. I think it's fine
to display "spoilers" (like GDR or spell power). They are hidden only for
clarity but since it's possible to calculate them, it's fine to show them in
wizmode.
Displaying damage numbers kinda defeat the use of wizmode for playing a normal
game without permadeath. And it has so much variance it's not even useful
anyway.

--------------------------------------------------------------------------------
26e5162182 | Neil Moore | 2012-07-09 01:11:14 -0400

Make message filters case-insensitive (#4945).

--------------------------------------------------------------------------------
d744141a01 | Neil Moore | 2012-07-08 23:33:29 -0400

Fix ridiculous octopode squeeze damage.
Commit 87c4016 changed player::has_tentacles() (and therefore
player::has_usable_tentacles()) to return the number of tentacles
rather than 0 or 1.  The melee attack code, however, was using
that "0 or 1" as a multiplier.

Financial advice: invest in brown paper bag manufacturers.

--------------------------------------------------------------------------------
a114159b40 | Chris Campbell | 2012-07-09 03:38:31 +0100

Give earth elementals petrify immunity

--------------------------------------------------------------------------------
9958e82e01 | Neil Moore | 2012-07-08 22:02:26 -0400

Don't exit the known items menu on comma.

--------------------------------------------------------------------------------
bb9ed92ac6 | Neil Moore | 2012-07-08 21:59:44 -0400

Disarm Ctrl-D in the autopickup menu after every key.
Keys such as . were once again failing to disarm Ctrl-D, because the
simplification in 4197758 undid one of the changes from 91f6aa0.

--------------------------------------------------------------------------------
b526b9261c | Neil Moore | 2012-07-08 21:32:15 -0400

Simplify, and avoid a fixed-width buffer.
Not that any item's (unannotated) name is likely to be that long,
but it's the principle of the thing.

--------------------------------------------------------------------------------
ebeb990a37 | Neil Moore | 2012-07-08 21:10:19 -0400

Correctly pluralise potions of experience in \ menu.

--------------------------------------------------------------------------------
adef487f6c | Adam Borowski | 2012-07-09 00:48:14 +0200

Force a flush if we get 255 glyph substitutions in a text block.

--------------------------------------------------------------------------------
c921272717 | Adam Borowski | 2012-07-09 00:34:54 +0200

Fix some type confusion.
While ucs_t happens to be "unsigned int" inside, labelling some random
indices this way is likely to introduce errors in the future.

--------------------------------------------------------------------------------
301d0eef68 | Adam Borowski | 2012-07-09 00:29:36 +0200

Fix assumptions about char signedness.

--------------------------------------------------------------------------------
1901d99303 | Adam Borowski | 2012-07-09 00:26:28 +0200

Evict glyph loading to a separate function.
It got unmanageably large.

--------------------------------------------------------------------------------
cdb410cd78 | Adam Borowski | 2012-07-09 00:02:25 +0200

Fix an off-by-one crash on loading an outline font.

--------------------------------------------------------------------------------
2b9d1cd128 | frogbotherer | 2012-07-08 22:56:06 +0200

more efficient font rendering using glTexSubImage2D

--------------------------------------------------------------------------------
8253fdacaa | Neil Moore | 2012-07-08 16:03:44 -0400

Make grunt_ashenzari_visionary slightly less spoilery.
Indicate in the message that you are seeing "distant parts of the
dungeon", and not just random monster sets.

Also, give the message Ashenzari's colour.  It's not exactly "speech",
but god_speaks doesn't care about silence etc. anyway.

--------------------------------------------------------------------------------
044b897ad8 | Neil Moore | 2012-07-08 15:34:21 -0400

Handle other branch pairs in grunt_ashenzari_visionary.
It is possible for old saves to have, say, Spider and Snake.  For that
matter, we might change the Lair roulette pairings in the future.  The
vault now handles such situations.  If you happen to have only one
Lair branch for some reason (don't ask me), you'll get its vision on
both sides.

--------------------------------------------------------------------------------
d57e1e2744 | Neil Moore | 2012-07-08 15:17:02 -0400

No spells for monsters in grunt_ashenzari_visionary.
I worry in particular about Teleport Self (naga magi) and Orb of
Destruction (orb spiders) allowing the monsters to escape, even if
in normal circumstances they won't cast them anyway.

--------------------------------------------------------------------------------
4afe47e5f4 | Steve Melenchuk | 2012-07-08 14:54:30 -0400

Update grunt_ashenzari_visionary to use dgn.br_exists().
The vault now shows you the two Lair branches that exist in the game.

--------------------------------------------------------------------------------
5e44e2c1af | Steve Melenchuk | 2012-07-08 14:54:15 -0400

New Lua function: dgn.br_exists().
This function reports if a specific branch exists in the game; it's most
useful for checking if specific Lair branches have been generated.

--------------------------------------------------------------------------------
234122f292 | Neil Moore | 2012-07-08 13:45:04 -0400

Allow travelling to shops in disconnected levels.
This reverts commit 5463df55be15f947822623c723ca0053f18816b3.

--------------------------------------------------------------------------------
23fe4b95ce | Neil Moore | 2012-07-08 13:39:03 -0400

Allow shopping in disconnected levels.
Items are removed from the shopping list when the level they are on
is deleted.

--------------------------------------------------------------------------------
748d2e9721 | Neil Moore | 2012-07-08 12:29:28 -0400

Grammar fix for deaths to scrolls of immolation.

--------------------------------------------------------------------------------
efb6803bae | Adam Borowski | 2012-07-08 16:41:39 +0200

Don't spawn exits through Abyss in D.
There would be a crash when you go back.

--------------------------------------------------------------------------------
4fb06c46fa | Adam Borowski | 2012-07-08 16:38:08 +0200

Make dgn.br_depth() default to the current branch.
It's hard to think of an use where you'd want a remote branch.

--------------------------------------------------------------------------------
34ed8ed855 | Neil Moore | 2012-07-08 05:42:38 -0400

Fix changelog wording.

--------------------------------------------------------------------------------
d8716c04e1 | Neil Moore | 2012-07-08 05:09:38 -0400

Make Pois and Nausea status light grey for liches.

--------------------------------------------------------------------------------
80a8acbd72 | Neil Moore | 2012-07-08 02:16:13 -0400

Use beam targetter for Hellfire, too.

--------------------------------------------------------------------------------
04a09d1c0f | Neil Moore | 2012-07-08 01:49:00 -0400

Use correct beam types with the beam targetter.
It failed to take into account fireballs bouncing off green crystal.

--------------------------------------------------------------------------------
4e0d31acd4 | Steve Melenchuk | 2012-07-07 21:08:04 -0700

Make layout_roguey more Rogue-y.
In Rogue:

- Between zero and three rooms per 3x3 level are absent; this average to
  1.5 in 9, or 1 in 6, so 1 in 6 rooms in layout_roguey are now absent.
- 1 in 15 "dark rooms" (which are a (depth - 1) in 10 chance in Rogue)
  are mazes instead of rooms.

In addition, the grid of rooms is now occasionally less than a full 5x5;
each dimension has a 5-in-16 chance of being four rooms instead of five,
and a 1-in-16 chance of being three rooms instead of five.

--------------------------------------------------------------------------------
e06d317e39 | Neil Moore | 2012-07-08 00:00:27 -0400

dlua function to get the depth (length) of a branch.
Call as: dgn.br_depth("Elf"), or dgn.br_depth(dgn.level_name(dgn.level_id()))
for the current branch.

--------------------------------------------------------------------------------
66aaafa61a | Michael Gagno | 2012-07-07 20:34:49 -0700

Tweak bailey_polearm_5 (moxian).
The exit portals have been shifted two squares to the left, making them
easier to reach before the horde of monsters gets to you.

--------------------------------------------------------------------------------
396ffcc989 | Neil Moore | 2012-07-07 23:09:37 -0400

Always give the Enchantress max HP.
She was the only unique other than the SoH with variable starting HP.

--------------------------------------------------------------------------------
7d34626491 | Neil Moore | 2012-07-07 22:55:23 -0400

Fix some mon-data.h misorderings.
The Enchantress was alongside the spriggan rabble rather than in her
proper place among the uniques.  And Arachne ('H') followed Agnes ('i')
for some reason.

--------------------------------------------------------------------------------
09ffc28d1c | David Lawrence Ramsey | 2012-07-07 19:44:10 -0500

Fix changelog entry punctuation.

--------------------------------------------------------------------------------
0d57374fdc | Michael Gagno | 2012-07-07 17:13:23 -0700

Mention hell sentinels / pit fiends in the 0.11 changelog highlights.
I forgot about these. Thanks for pointing this out, galefury.

--------------------------------------------------------------------------------
5d609a866a | Neil Moore | 2012-07-07 18:51:33 -0400

Do not crash when a constricted monster fails to blink.
Also, add messages for this case, and tweak the message when it does
manage to escape by blinking.

--------------------------------------------------------------------------------
e19d01d2b5 | Steve Melenchuk | 2012-07-07 18:02:11 -0400

Fix inconsistencies in handling of some types of death message.
For example, inner flame monster deaths would show "The sheep explodes!
The sheep is blown up!" if the inner flame source is something other
than the player, but only "The sheep explodes!" if the sheep was inner
flamed by the player.

This uses the same set of conditions for display of all death messages.

--------------------------------------------------------------------------------
5e55cc7ad2 | Neil Moore | 2012-07-07 17:19:38 -0400

Clarify that Chei doesn't like hasting others.

--------------------------------------------------------------------------------
a98a9da740 | Steve Melenchuk | 2012-07-07 17:09:17 -0400

Properly show descriptions of Yred's Animate Dead and Blink mutation.
The code was looking for "Animate Deadability" and "Blinkability"
instead of the actual location of the entries at "Animate Dead ability"
and "Blink ability".

--------------------------------------------------------------------------------
9e40957298 | Steve Melenchuk | 2012-07-07 17:08:53 -0400

Don't generate overly verbose death messages for lava-cooked felids.
It was possible to see both "You die..." and "You drown..." back-to-back
by burning to death in lava; the handling for this didn't account for
the felid case of the code path continuing after an instant death.

--------------------------------------------------------------------------------
f60279a51c | Neil Moore | 2012-07-07 17:05:32 -0400

Fix info leak about unseen wall when targetting bounces.
With the new targetter, you could see bounces off an unseen and unknown
wall.  The spell must be aimed at a seen wall to see bounces in the
first place, but subsequent bounces could leak info.  For example:

      A            B

    #.. #        #.. #
    #K. .        #*. .
    #.. .        #.* <---
--->#..#.        #*.#.
    #..@.        #.*@.

When targetting the indicated wall in A with lightning bolt, you can
see the beam taking the path in B, which reveals that there is a wall
at the indicated position in B.

This was actually a problem before the new targetter, though even harder
to exploit.  If the kobold in A were friendly or otherwise unsafe to
attack, you would get a stop_attack prompt, because the tracer followed
the whole path.

We fix this by making player tracers never bounce off unseen cells, nor
cells the player believes to be non-bouncy.

There is still a minor leak remaining, which is quite a bit harder to
fix: if the cell marked in B is remembered as a wall but has changed
since the last time it was seen (e.g. by a boring beetle), the player
will see the bolt not bouncing.  Likewise, if the cell is unknown but
actually floor, you can see the beam come out the other side.  Fixing
these would probably require player tracers to use map_knowledge rather
than grd in almost all places; that is likely to introduce other
problems.

--------------------------------------------------------------------------------
a80905e9fc | Chris Campbell | 2012-07-07 20:12:05 +0100

Show a status indicator when silenced by an external source

--------------------------------------------------------------------------------
828636ca6f | Michael Gagno | 2012-07-07 07:30:21 -0700

Mention Pan exit changes in the changelog.

--------------------------------------------------------------------------------
e1ce2a47e4 | Michael Gagno | 2012-07-07 07:15:03 -0700

Changelog up to up to 0.11-a0-2724-g330e717
Also expanded it quite a bit, particularly the highlights section. That
stuff is highly subjective, but I tried to pick stuff that would seem the
most important to the average player. Namely, big changes, new additions,
and removed stuff.

--------------------------------------------------------------------------------
5463df55be | Neil Moore | 2012-07-07 07:55:01 -0400

Allow deleting shopping list items when in portals.
Adding items to the shopping list is still not permitted, since those
items will be permanently unavailable upon leaving the level.

Partially fixes #2251.

--------------------------------------------------------------------------------
330e717e19 | Neil Moore | 2012-07-07 05:51:49 -0400

Auto-ID rings of sustenance when hunger state changes.
To match the auto-ID of rings of hunger introduced in d3fc1dc.

--------------------------------------------------------------------------------
fe415b0224 | Neil Moore | 2012-07-07 05:34:25 -0400

Re-add shedu bands to holy pan and zig monster lists.
Also, since Shadow Creatures can now summon a shedu band, make sure that
a worshipper of an evil god angers both shedu at the same time.

Note that other angerable monsters in bands will have the same issue
(only the band leader will be angered)---and it is not possible to use
the same method to solve that problem as we did here.  Therefore, bands
in random monster lists should for the moment be restricted to
non-angerable creatures (other than shedu).

Fixes #5072.

This reverts commit d48ceeeb5743a9a80217dd4b259ec67c4d43fec3.

--------------------------------------------------------------------------------
a56090688a | Neil Moore | 2012-07-07 05:16:47 -0400

Allow bands in random monster lists.

--------------------------------------------------------------------------------
bfd8735852 | Steve Melenchuk | 2012-07-07 03:54:45 -0400

Items in monster definitions now use plus: and plus2: assigned properly.
Previously these properties were ignored in the specific case of giving
items to monsters in monster specs; this allows a bit more flexibility
(and more arena entertainment!).

[With a fix to allow specifying plusses on wands but not on missiles.
 -nfm]

--------------------------------------------------------------------------------
6d06d6bd8f | Neil Moore | 2012-07-07 02:33:44 -0400

Don't mention rock worm protection when targetting.
The message should have been protected with an (!is_tracer).

--------------------------------------------------------------------------------
ea4d403f5b | Neil Moore | 2012-07-07 02:13:19 -0400

Correctly fill path_taken for bouncing beams.
It was including the wall itself but not the first cell after a
bounce.  This made targetter_beam appear to skip some cells.

--------------------------------------------------------------------------------
22ea63f0db | Neil Moore | 2012-07-07 01:59:17 -0400

Use the new targetter for some wands.
Namely, wands of fireball, lightning, fire, cold, flame, and frost.

--------------------------------------------------------------------------------
a893d655ac | Neil Moore | 2012-07-07 01:38:53 -0400

Use beam targetter for releasing Delayed Fireball.
Handling wands will be somewhat more difficult.

--------------------------------------------------------------------------------
62b6e1029c | Neil Moore | 2012-07-07 01:01:12 -0400

Allow the beam targetter to account for misses.
Beams without explosions might miss their intended target and, unless
aimed at the floor, continue on.  Display this portion of the path
as AFF_MAYBE (purple).

--------------------------------------------------------------------------------
42b64707d9 | Neil Moore | 2012-07-07 00:50:38 -0400

Don't let the beam targetter show walls as affected.
This will have to be changed if we want to use the targetter for a spell
like Dig that can enter a wall.

--------------------------------------------------------------------------------
219e77322d | Neil Moore | 2012-07-07 00:08:19 -0400

Show meph/evap splash cells as AFF_MAYBE in targetter.
We represent this with a min_expl_rad of 0; a few changes are necessary
to support this.

If the power is 100 or greater (maximum power for Mephitic Cloud,
impossible for Evaporate), you are guaranteed to hit all nine cells, so
display them as AFF_YES (pink rather than purple) then.

--------------------------------------------------------------------------------
0caf485b1c | Neil Moore | 2012-07-06 22:50:15 -0400

Let beam targetters know about Fedhas.
Also, clean up style and use iterators in a few places.

--------------------------------------------------------------------------------
7e252d2e9c | Steve Melenchuk | 2012-07-06 22:09:09 -0400

Extend bounce targetting to elemental spells.
This includes Flame Tongue, Throw Flame, Bolt of Fire, Throw Frost, and
Bolt of Cold, which bounce off of green crystal walls.

--------------------------------------------------------------------------------
f91fb7edcb | Steve Melenchuk | 2012-07-06 22:08:54 -0400

Improve targetting for Shock and Lightning Bolt.
Bounces are now shown. (This isn't 100% accurate - it occasionally seems
to miss a spot immediately after reflection - but it's more useful than
what is in place now.)

--------------------------------------------------------------------------------
a4a0683a7e | Steve Melenchuk | 2012-07-06 22:08:51 -0400

Fix targetting-through-monsters for explosion spells.
Previously the tracer in targetting would incorrectly pass through a
visible monster; now it appears where expected.

Note that this doesn't affect the behaviour for invisible monsters.

--------------------------------------------------------------------------------
706addd4fb | Steve Melenchuk | 2012-07-06 22:08:46 -0400

Improved targetting for explosion-type spells.
This includes Ice Storm, Fireball, Mephitic Cloud, and Evaporate; the
targetting now shows a tracer and the size of the explosion (along with
the fuzz for high power in the case of Ice Storm).

--------------------------------------------------------------------------------
b69f4dde09 | Neil Moore | 2012-07-06 21:49:03 -0400

Don't display feature backgrounds in most item menus.
Now most item menus, such as the pick-up and stash menus, use the same
background tile as inventory slots.  This is in part to reduce clutter
and make the item easy to see, but also to avoid showing the wrong
background tile for off-level items.

Only Ctrl-X still displays the feature, for consistency with monsters in
the same menu.

Fixes #2303, #5756.

--------------------------------------------------------------------------------
51a2f40634 | Neil Moore | 2012-07-06 21:49:03 -0400

Use correct feature name in stashes.
We were looking up the feature description for the item's (x,y)
position... on the current level.  The problem was introduced by
commit 84529d6, but portals had the same problem before then
(which is why  Ctrl-F trove  never worked).

Now we also store the feature's description in the stash.  For old
saves, we use the default description for that type of feature (ignoring
overrides) until we next update the stash.  Floor and other
uninteresting features are stored as the empty string.

Fixes #5880.

--------------------------------------------------------------------------------
81afa9b3e9 | Michael Gagno | 2012-07-06 18:38:50 -0700

Remove the smoke from swamp_vile, replace the rotting hulks with bog bodies.

--------------------------------------------------------------------------------
8d4e2da31d | Neil Moore | 2012-07-06 18:34:49 -0400

Warn about LRDing orcish idols.
Perhaps Disintegrate should have a similar warning, too.

--------------------------------------------------------------------------------
3bf09e6abd | Neil Moore | 2012-07-06 17:37:23 -0400

Fix a crash and LRD bad-targetting messages.
We needed to do the ordinary smite-targetting checks before going on to
set up the fragmentation tracer.  For one thing, if an off-map cell was
on-screen, the targetter would crash when checking that cell.  For
another, aiming at an invisible or blocked cell said "You cannot affect
that" (the same as for an un-fragmentable cell) rather than the usual
"You cannot see that place", etc.

--------------------------------------------------------------------------------
71fa800bc4 | Steve Melenchuk | 2012-07-06 16:42:07 -0400

Improve player LRD targetting.
This borrows some code from the monster implementation of LRD,
particularly the split of LRD beam setup from the actual casting of the
spell.

It shows the expected area of effect of the spell (a la the cloud or
storm spells), and warns the player against inadvisable (e.g. friendly
or unaware) targets.

--------------------------------------------------------------------------------
1999034cde | Neil Moore | 2012-07-06 13:57:13 -0400

Don't double tops of stacks.
We now track in the stash whether we saw a stack, even if we only saw
the top item.  On update, we add the top item if it differs from the
remembered old items, or if we noticed a change from not-a-stack to a
stack.  Previously, the second condition also triggered if we remembered
only a single item of the stack, which would lead to that item being
added to the stash again.

Fixes #5850.  Stacks in old saves will continue to exhibit duplication
until they are verified by visiting the square.

--------------------------------------------------------------------------------
f5771d8f0f | Neil Moore | 2012-07-06 10:00:23 -0400

Correct death messages from inner flame (#5882)

--------------------------------------------------------------------------------
f1b74687c3 | Michael Gagno | 2012-07-06 04:04:42 -0700

Do not randomly spawn butterflies anywhere.
They still can be placed by vaults, summoned, etc. But they won't spawn as
regular monsters in branches now.

--------------------------------------------------------------------------------
af8e1f5207 | Michael Gagno | 2012-07-06 04:01:50 -0700

Prune the Swamp monster list.
Removed some useless monsters, and moved weights around to compensate. There
are still a few popcorn monsters, but they are greatly diminished. Also, I
gave ravens a tiny chance of spawning here.

--------------------------------------------------------------------------------
98e3c13d26 | Michael Gagno | 2012-07-06 03:56:17 -0700

Make giant leeches scary.
More damage, more HD, and they've learned how to swim. You'll actually
notice their vampiric attack now too (instead of simply losing a maxhp once
in a blue moon). Also, they don't flee any more (their desc refers to them
as being especially aggressive, and I think it's weird how a leech would
detach itself and run away, when it could just keep fighting and heal
itself).

Fun fact: giant leeches have only a single kill in 0.11-a, and 5 kills in
all of 0.10. This will probably change.

--------------------------------------------------------------------------------
29e154082a | Michael Gagno | 2012-07-06 03:04:59 -0700

One more Crypt arrival vault. (Grunt)
It works now that we can rename vault features without worry.

--------------------------------------------------------------------------------
d0ca5e947a | Michael Gagno | 2012-07-06 01:20:00 -0700

Rewrite description for emperor scorpions.
The old one really didn't do justice to how big these things are (at least,
since they were increased in size). I imagine these things to be gigantic,
like something out of a 1950's monster movie.

--------------------------------------------------------------------------------
f6a31c44ee | Michael Gagno | 2012-07-06 01:19:59 -0700

Slightly decrease HP of most spiders.
HD, damage, etc stays the same. Even though some of these spiders are
supposed to be freakishly large (e.g. wolf spiders), their HPs were a bit
too high.

This also changes XP values a bit.

--------------------------------------------------------------------------------
30b33c7417 | Neil Moore | 2012-07-06 00:57:24 -0400

Don't crash when using lightning rods near the map edge.

--------------------------------------------------------------------------------
065decd758 | Michael Gagno | 2012-07-05 17:25:07 -0700

Increase the chance of minivaults being placed in Vaults.
Was 1/2 per level, is now 1/3 (higher than anywhere else except Swamp).
Minivaults usually look alright in the city layouts, and there are no issues
with the level builder having trouble placing them. I haven't touched
primary_mini_dummy because of this - large vaults tend to look weird in this
branch, and fail to place a lot of the time.

--------------------------------------------------------------------------------
e248daea07 | Michael Gagno | 2012-07-05 17:25:06 -0700

"Greater box" vaults for Vaults. (st)
These vaults have quite a similar feel to Vaults:8 quadrants, which makes
them a nice fit for the branch.

--------------------------------------------------------------------------------
52ec0cf95f | Michael Gagno | 2012-07-05 17:25:06 -0700

Five Crypt minivaults. (st)

--------------------------------------------------------------------------------
c98f4e2778 | Neil Moore | 2012-07-05 17:49:58 -0400

Rename the Trog altar book.
"Fetching" was a possible name for a Hexes themebook.

--------------------------------------------------------------------------------
287c2d4006 | Neil Moore | 2012-07-05 17:05:18 -0400

Show travel trail in the (console) map, too.
Perhaps this should be controlled with a separate option, since a player
may want trails on the map but not the main display, or vice versa.

--------------------------------------------------------------------------------
251f5b048e | Neil Moore | 2012-07-05 16:59:57 -0400

Show trails even out of LOS in console.

--------------------------------------------------------------------------------
7f7cf70886 | Florian Diebold | 2012-07-05 22:34:00 +0200

Add some more info to the wizard mode tiles tooltip.

--------------------------------------------------------------------------------
30bfcb6dd9 | Neil Moore | 2012-07-05 16:16:28 -0400

Mention nonsporulation of ballistomycetes for Fedhasites.

--------------------------------------------------------------------------------
8e85f3db84 | Neil Moore | 2012-07-05 15:57:58 -0400

Minor cleanup and indentation fix.

--------------------------------------------------------------------------------
4197758ce9 | Jon Knapp | 2012-07-05 15:57:23 -0400

Make the autopickup menu less hackish.
Ctrl-D and comma no longer exit and re-enter the menu.

Also, use '^' rather than ',' for reset-all-to-default.

--------------------------------------------------------------------------------
8c74ad2ccd | David Lawrence Ramsey | 2012-07-05 10:38:38 -0500

Fix wording of lightning rod description.

--------------------------------------------------------------------------------
78a3373033 | Raphael Langella | 2012-07-05 14:28:34 +0200

Update the coding convention regarding return statement and parenthesis.

--------------------------------------------------------------------------------
0e5e9a83b7 | Adam Borowski | 2012-07-05 14:08:43 +0200

Merge branch 'lightning_rod'
There are some design issues, and the damage might be out of whack, but it
looks like rods of smiting are universally hated, so let's push this in, and
if testing shows problems, we can disable lightning and at least not have to
suffer smiting.

For damage, there are conflicting reports: both "too weak" and "too
powerful", which suggests it might be actually ok.

--------------------------------------------------------------------------------
68935e461e | Adam Borowski | 2012-07-05 14:00:11 +0200

Some more return deparenthesization.

--------------------------------------------------------------------------------
15d548d4ba | Florian Diebold | 2012-07-05 13:52:56 +0200

Enable ancient websockets in newer tornado versions.

--------------------------------------------------------------------------------
1c3a223726 | Adam Borowski | 2012-07-05 13:03:13 +0200

Exempt error and debug messages from fake languages.

--------------------------------------------------------------------------------
9042de61fb | Adam Borowski | 2012-07-05 13:03:13 +0200

Remove parentheses around return (simple_function_call).
For way too paranoid and underinclusive values of "simple".

--------------------------------------------------------------------------------
53671ccab2 | Adam Borowski | 2012-07-05 13:03:12 +0200

String scalars are scalars, too.

--------------------------------------------------------------------------------
1e34f3b368 | Michael Gagno | 2012-07-05 03:50:35 -0700

Re-add bog bodies (were bog mummies) to ossuary_zaba_flooded.
Zaba points out that this ossuary loses quite a bit of flavour without its
amphibious undead. Old style bog mummies would be more flavourful here, but
there's no simple way of doing this (can't redefine glyphs with vault
monster definitions, or make an amphibious mummy).

The old HD reduction for this vault has also been re-added, although the
monster now has a special description.

--------------------------------------------------------------------------------
60ac59f9b5 | Adam Borowski | 2012-07-05 12:24:50 +0200

Drop the desc for experimental stone golems.

--------------------------------------------------------------------------------
c41419c4f4 | Adam Borowski | 2012-07-05 12:14:09 +0200

Drop parentheses around scalar values in "return".

--------------------------------------------------------------------------------
b80adef888 | Adam Borowski | 2012-07-05 12:10:37 +0200

Convert a bunch of portal_desc{}s to feature renames.
This fixes problems if they get disintegrated/etc in some way.

--------------------------------------------------------------------------------
84529d68d1 | Adam Borowski | 2012-07-05 12:10:36 +0200

Make feature renames local to a vault rather than the whole level.
For technical reasons (vault_placement), subvaults use renaming data of the
top-level vault, this might be changed one day; that'd require a bit more
writing but would allow different renames in different subvaults.

TODO: "line of fire blocked by XXX".

--------------------------------------------------------------------------------
7d59203a59 | Adam Borowski | 2012-07-05 12:10:35 +0200

Rename a stray survivor of longicide.

--------------------------------------------------------------------------------
2a4cf8e2d6 | Adam Borowski | 2012-07-05 12:10:35 +0200

Prefix a bunch of static functions with _.
There is no real reason to do so: only staticness matters, decorating the
function's name reeks of Hungarian notation, but if the convention is
followed almost everywhere, exceptions make you lose time.

--------------------------------------------------------------------------------
6ab343619d | Raphael Langella | 2012-07-05 12:04:47 +0200

Prevent cancelling permanent levitation when it would be fatal (#5873).

--------------------------------------------------------------------------------
37edaf3120 | Neil Moore | 2012-07-05 05:30:35 -0400

Allow console travel trails over water, auras, etc.
Even walls, should one spring up behind you.

--------------------------------------------------------------------------------
fc4a9b88bb | Neil Moore | 2012-07-05 05:04:00 -0400

Autopickup menu: toggle means toggle.
When selecting a previously-unselected item type, set its forced state
to the opposite of its default state.

--------------------------------------------------------------------------------
4439471834 | Neil Moore | 2012-07-05 04:39:09 -0400

Don't unexclude item-mod scrolls when declining to abort.
When using an unidentified item-modifications scroll, the scroll's own
slot was properly excluded from the first menu.  However, if you start
to abort but then change your mind and answer 'n', the slot is no longer
excluded.

--------------------------------------------------------------------------------
500ded9800 | Neil Moore | 2012-07-05 04:37:51 -0400

Identify ?Acq before giving the acquirement prompt.
Fixes #5336.

--------------------------------------------------------------------------------
8ca3de4f84 | Michael Gagno | 2012-07-05 00:44:50 -0700

Make it more obvious when/where the door appears in wizlab_zonguldrok.

--------------------------------------------------------------------------------
17afac1aa4 | Michael Gagno | 2012-07-05 00:13:10 -0700

De-wax ziggurat_pillar_centre_j.

--------------------------------------------------------------------------------
33a2b7e32a | Neil Moore | 2012-07-05 02:36:01 -0400

Don't break autopickup menu with easy_exit_menu = true.
Because we used MF_EASY_EXIT as a hack for regenerating the menu,
the user's easy_exit_menu option would prevent leaving the menu.
Instead use lastch == CONTROL('R') to indicate that the menu should
be re-entered, and respect the user's easy_exit_menu setting.

Unfortunately, easy_exit_menu was disallowed when anything is selected,
to prevent leaving e.g. the drop menu too soon.  Override this behaviour
for MT_KNOW inventory menus.

--------------------------------------------------------------------------------
e6c9c25219 | Neil Moore | 2012-07-05 02:36:01 -0400

Update category shortcuts in inventory help.

--------------------------------------------------------------------------------
7f88dec596 | Neil Moore | 2012-07-05 02:36:01 -0400

Fix another autopickup menu bug.
It was kind of tricky to trigger, but could result in the ',' command
failing to really reset all the selections.

To reproduce the bug: make sure all AP selections are at the default.
Now enter the menu ('\'), turn on all missiles ('('), enter and leave
the set-to-default mode (Ctrl-D twice), then reset everything to
default (',').  Missiles will not have been reset correctly.

--------------------------------------------------------------------------------
3b4bcca7ea | Neil Moore | 2012-07-05 02:36:01 -0400

Style fixes.

--------------------------------------------------------------------------------
91f6aa0b42 | Neil Moore | 2012-07-05 02:36:01 -0400

Fix some Ctrl-D infelicities in the autopickup menu.
Not all keys were disarming Ctrl-D, so for example <Ctrl-D>....  would
reset four items. This wouldn't be so bad, except there was no feedback
about this fact, so <Ctrl-D>.<Ctrl-D>.<Ctrl-D>.  would alternate
resetting and toggling for no discernable reason.

Instead, disarm Ctrl-D with any key; while this behaviour makes it a
little more cumbersome to toggle consecutive items, it is more
consistent with things like letter keys.

Furthermore, make '-', '\', and '_' work correctly after Ctrl-D, rather
than reverting to the default menu behaviour.

--------------------------------------------------------------------------------
dcf1aa1785 | Neil Moore | 2012-07-05 02:36:01 -0400

Display cursor in autopickup menu.

--------------------------------------------------------------------------------
af3df08aa2 | Michael Gagno | 2012-07-04 23:30:06 -0700

Improve placement of Swamp:5 vaults.
These edits make it extremely unlikely that you'll get a noticable corridor
connecting to these vaults (which could happen with the layout changes).

--------------------------------------------------------------------------------
6d064c5a52 | Michael Gagno | 2012-07-04 22:21:45 -0700

Two new minivaults. (HangedMan)

--------------------------------------------------------------------------------
6ec5fc4d92 | Michael Gagno | 2012-07-04 22:15:53 -0700

Edits to several of HandedMan's vaults.
These changes were all done by him.

--------------------------------------------------------------------------------
ed9880e06f | Michael Gagno | 2012-07-04 22:01:58 -0700

Some "arrival vaults" for Vaults and Crypt. (Grunt)
Arrival vaults are mostly an Elf thing, so these new ones won't be quite as
common as their Elf counterparts (we already have entry vaults for Vaults
and Crypt).

--------------------------------------------------------------------------------
09a5fe5871 | Michael Gagno | 2012-07-04 21:44:18 -0700

Statue garden entry vault. (Lightli)

--------------------------------------------------------------------------------
603c53d006 | Michael Gagno | 2012-07-04 21:36:24 -0700

Death spiral vaults. (Grunt)
Two versions. Can only get one per game.

--------------------------------------------------------------------------------
33f70b0eee | Michael Gagno | 2012-07-04 20:19:13 -0700

Decrease bog body exp_mod.

--------------------------------------------------------------------------------
fddb39f9e1 | Michael Gagno | 2012-07-04 20:17:34 -0700

Make bog bodies speed 10 (they still move slowly in water, though).

--------------------------------------------------------------------------------
9d51243ed1 | David Lawrence Ramsey | 2012-07-04 21:57:27 -0500

Fix spacing.

--------------------------------------------------------------------------------
6f93c42ee2 | Michael Gagno | 2012-07-04 17:43:57 -0700

Remove evilmike_dwarf_pyromaniacs.
It doesn't work... perm_ench:inner_flame isn't actually applying to the
golems. It works when the vault is generated with &L, but fails in-game.

--------------------------------------------------------------------------------
5b332f2121 | Michael Gagno | 2012-07-04 17:19:26 -0700

Move bog bodies to green 'n', allow Fedhas prayer to work on them.
They also have the ghoul genus now (same as all other 'n') and drop
rot-flavoured corpses.

--------------------------------------------------------------------------------
a6d900ee62 | Neil Moore | 2012-07-04 20:12:05 -0400

Separate inventory hotkeys for all rods vs all staves.
Among other things, this means that the known-items/autopickup menu
won't erroneously show "\" as a hotkey for staves (the key does
something else there).  If in the future we want to allow toggling
autopickup of rods, we would need to remove the special meaning of "\".

--------------------------------------------------------------------------------
d664f9f5b2 | Neil Moore | 2012-07-04 19:46:38 -0400

Avoid a memory leak.
Also, adjust the position of a comment.

--------------------------------------------------------------------------------
5445f18af3 | Jon Knapp | 2012-07-04 19:46:14 -0400

Fix colouring of autopickup menu in webtiles.

--------------------------------------------------------------------------------
987f7dfb3a | Florian Diebold | 2012-07-05 00:14:22 +0200

Fix armour tile associations.
I mixed up roctavian's armour tiles when I added them. Banded mails
don't even exist anymore.

--------------------------------------------------------------------------------
9f2ceb05b0 | Florian Diebold | 2012-07-04 23:42:31 +0200

A tile for gas traps (courtesy of ontoclasm, #5385).

--------------------------------------------------------------------------------
d4f407ec65 | Florian Diebold | 2012-07-04 23:13:08 +0200

New option: show_travel_trail.
This highlights the path taken during the last exploration or travel,
and should help make travel_delay=-1 less disorienting. The path is
cleared when the player moves otherwise.

In console, it is indicated with COLFLAG_REVERSE, which I'm not sure
is the best option, but just changing the floor colour didn't seem
noticeable enough.

--------------------------------------------------------------------------------
957b2ec75d | Neil Moore | 2012-07-04 15:18:07 -0400

Cut abyss CPU usage greatly.
Memoize the feature computed for a cell in the previous turn, rather
than computing it twice per turn.  This allows us to preserve digging
etc. in the abyss without the doubled CPU usage introduced by
0.10-a0-3040-ga00d525.  On my (somewhat slow) machine, the time for a
1000-turn run of the abyss stress test is reduced from ~85 s to ~55 s.

Currently we recompute the cache (i.e., run the worley routines on each
map cell) when loading a saved game and when the abyss shifts as a
result of hitting the map edge.  The last case could be avoided by shifting
around features in the cached array, but abyss shifts are infrequent
enough that this is probably not necessary.

--------------------------------------------------------------------------------
b7d6d954c1 | David Lawrence Ramsey | 2012-07-04 13:56:10 -0500

Resort bog body tile entries to account for their glyph change.

--------------------------------------------------------------------------------
77ed7bdcd2 | Neil Moore | 2012-07-04 12:52:43 -0400

Correctly display "constricting foo" monster info.
The low operator precedence of ?: means the monster name was being
omitted if the constriction was the damaging kind.

--------------------------------------------------------------------------------
67819db2bc | Raphael Langella | 2012-07-04 18:04:23 +0200

Blink isn't guaranteed to work when constricted (2 escape attempts).

--------------------------------------------------------------------------------
776244b425 | Raphael Langella | 2012-07-04 18:04:23 +0200

Fix octopode usable tentacle calculation.
It has been suggested that it could be removed, but since it's there, let's try
to fix it first. Octopodes can constrict:
8 monsters empty handed
6 monsters with a one-handed weapon or a shield
5 monsters with a 1.5-handed weapon
4 monsters with a 2-handed weapon, or a weapon and a shield

It's visible in the @ status message.

It might seem needlessly complicated, but it's probably rarely relevant, and is
actually a good way to explicit how octopodes use their limbs.

--------------------------------------------------------------------------------
f803cd96bc | Raphael Langella | 2012-07-04 18:04:23 +0200

Remove an obsolete comment.
Maybe the monster escape formula should be revisited too, but it's not very
important.

--------------------------------------------------------------------------------
a84c8bbb4a | Raphael Langella | 2012-07-04 18:04:22 +0200

Implement damageless constriction (hold) and give it to mimics.
There could be further merging of code between constriction and web/nets, but
it's already functional.

--------------------------------------------------------------------------------
450cf93b95 | Raphael Langella | 2012-07-04 18:04:11 +0200

Treat constriction as a normal attack type.
It can be dodged, blocked, respect +hit slaying,...
The attack is called a grab and does no damage. Is it too spammy that monsters
grab you and then constrict you on the first turn?

--------------------------------------------------------------------------------
1dc3d567b6 | Raphael Langella | 2012-07-04 18:04:10 +0200

Move the constriction_damage method from monster to actor.

--------------------------------------------------------------------------------
98838f1460 | Raphael Langella | 2012-07-04 18:04:10 +0200

Adjust the strong constrictors damage to account for the new formula.
It starts a bit slower than it used too, but it catches up if you hang there
too long.

--------------------------------------------------------------------------------
7f69dca532 | Raphael Langella | 2012-07-04 18:04:10 +0200

Change the constriction damage formula.
Instead of a flat +duration, it is increased by damage*stepdown(duration,5)/5.
This means that damage doubles after 5 turns, then doubles again after 10 more
turns, etc...
It nerfs weak constriction and boost strong one. It makes the duration more
significant globally.

--------------------------------------------------------------------------------
da036df902 | Raphael Langella | 2012-07-04 18:04:10 +0200

Get base constriction damage from the attack damage instead of HD.
Makes it easier to balance constriction for each monster. Values are unchanged
compared to what they were with HD (was HD/2+1), but feel free to adjust them.

--------------------------------------------------------------------------------
6d6c5ac847 | Raphael Langella | 2012-07-04 18:04:09 +0200

Move handle_noattack_constrictions to actor.cc
Since it works for both monster and player. And rename it handle_constriction.
Also remove has_constricted_this_turn it's simpler to just deal damage at
the end of the turn.

--------------------------------------------------------------------------------
87c40161ca | Neil Moore | 2012-07-04 18:04:09 +0200

Use mid rather than mindex for constriction.
actor::constricting is now a pointer to a map from mids to durations;
if the actor is not constricting anything, we use a NULL pointer rather
than an empty map to save memory.

Save compatibility: Because constrictees might be loaded after
constrictors (and vice versa), we cannot convert the old constriction
arrays (which use mindex) until all the monsters have been loaded.
Instead, save the constriction data temporarily, and create the maps
at the end of tag_read_level_monsters().

--------------------------------------------------------------------------------
62cb7de5ac | Neil Moore | 2012-07-04 18:04:09 +0200

Monsters lose energy when failing to escape constriction.

--------------------------------------------------------------------------------
f2c83999a1 | Neil Moore | 2012-07-04 18:04:09 +0200

Avoid more logic duplication.
We already have methods to clear constrictions---don't implement this
again in player/monster::attempt_escape().  Also add a flag to the
stop_* methods to avoid introducing extra messages.

--------------------------------------------------------------------------------
05281031ee | Neil Moore | 2012-07-04 18:04:08 +0200

Remove dur_been_constricted, merge some duplicate code.
dur_been_constricted was used only for a single debugging message.
Remove it and the associated accum_been_constricted().  Do not yet
change the save file format, as more significant changes that will
require a minor version bump are coming soon

Also move accum_has_constricted() from player and monster to actor; the
code was the same, modulo some bugs in the monster version.

--------------------------------------------------------------------------------
62975904fe | David Lawrence Ramsey | 2012-07-04 10:17:10 -0500

Move bog bodies to the 'z' section of mon-data.h.

--------------------------------------------------------------------------------
baf6ebbef0 | David Lawrence Ramsey | 2012-07-04 10:15:59 -0500

Give bog bodies their own genus, so they're not called mummies when in groups.

--------------------------------------------------------------------------------
bd865dfecb | Raphael Langella | 2012-07-04 16:40:09 +0200

Don't consider unreachable sleeping monsters dangerous preventing long rests.
The comment said that the player might want to retreat and try another path for
stabbing. Even if it's sometimes true, it's not really a reason to prevent
travels and long rests, which is really uninituitive.

--------------------------------------------------------------------------------
029872d57b | Raphael Langella | 2012-07-04 16:37:20 +0200

Fix vaults broken by the floor_sand_stone rename.

--------------------------------------------------------------------------------
771ce7874c | Florian Diebold | 2012-07-04 15:14:00 +0200

roctavian's new Shoals tiles (#5864).
This is only the basic improved floor/wall/water tiles, not the other
additions in that issue.

--------------------------------------------------------------------------------
0c1f48e154 | Michael Gagno | 2012-07-04 03:29:02 -0700

Some more tweaks to the Swamp monster set.
Increase variety, decrease vampire mosquito spam. Swamp worms are still
extremely common. Not sure if it should stay that way or be changed... it's
not like we have many other water enemies to choose from.

--------------------------------------------------------------------------------
c0de92e003 | Michael Gagno | 2012-07-04 02:28:55 -0700

Make Swamp levels smaller.

--------------------------------------------------------------------------------
dfb2a98f9e | Michael Gagno | 2012-07-04 00:40:15 -0700

Merge branch 'swamp'

--------------------------------------------------------------------------------
ee6fe5c0b6 | Michael Gagno | 2012-07-04 00:20:07 -0700

Make Swamp less misty.
This is almost a purely visual effect. Mist does not block vision...
practically all it does is block other clouds.

Too much mist is annoying: it adds visual noise, and obscures items. This
cuts the amount of mist to 1/3.

--------------------------------------------------------------------------------
ec0ac7007b | Michael Gagno | 2012-07-03 23:55:12 -0700

Whitespace fix.

--------------------------------------------------------------------------------
2d2f9548be | Michael Gagno | 2012-07-03 23:30:59 -0700

Adjust Swamp ending vault weights.
Similar to other Lair branches now: there are common and uncommon maps, with
the common ones having double the weight.

--------------------------------------------------------------------------------
8909c21f48 | Michael Gagno | 2012-07-03 23:26:43 -0700

Do not trap the Lernaean Hydra behind a wall.
This Swamp ending would sometimes block off the Leranaean Hydra's room, for
some strange reason.

--------------------------------------------------------------------------------
d226098ba9 | Michael Gagno | 2012-07-03 22:36:38 -0700

Make swamp dragons hit a bit harder.

--------------------------------------------------------------------------------
4eee91ee2b | Michael Gagno | 2012-07-03 22:23:26 -0700

Buff swamp worm to-hit.
Their HD has been increased from 5 to 10. HP is about the same as before
(slightly lower, actually), and all other important stats are the same,
including its base damage.

The point of this change is to make swamp worms a bit more threatening to EV
characters, and more generally, make the most common monster in the branch
more dangerous.

I've also decreased insubstantial wisp XP somewhat.

--------------------------------------------------------------------------------
4b4148ee1e | Michael Gagno | 2012-07-03 22:22:29 -0700

Tweak mons_swamp_level()
Plants and fungi have a depth of 1 instead of 2. This has only a tiny
effect.

--------------------------------------------------------------------------------
0cc11ef221 | Michael Gagno | 2012-07-03 21:40:39 -0700

Vary the amount of shallow water in Swamp by depth.
You'll get a bit less on Swamp:1-2, about the same on Swamp:3-4, and
slightly more on Swamp:5. Deep water stays the same. The effect here is
gradual, but you will notice it if you compare Swamp:1 to Swamp:5.

Terrain-wise, this makes the branch somewhat easier than it was before, at
least in the early levels.

--------------------------------------------------------------------------------
53480028fd | Michael Gagno | 2012-07-03 20:52:24 -0700

Fix save compat (broken by the swamp tree changes).
Regular trees would be turned into iron grates, etc. This uses a hack to
make mangroves opaque.

--------------------------------------------------------------------------------
84cf93ebd6 | Michael Gagno | 2012-07-03 18:48:54 -0700

Re-add the tile for bog bodies.
The last commit removed instead of renaming it.

--------------------------------------------------------------------------------
b3a9b3158c | Michael Gagno | 2012-07-03 18:46:15 -0700

Rename bog mummies to bog bodies.
Without the death curses, calling them mummies (and putting them on 'M') is
confusing. "Bog body" is good name for this monster (it's synonymous with
bog mummy). I've put it on 'z' and made it lightgreen. They've also been
removed from one ossuary.

Thanks to |amethyst for suggesting this change.

--------------------------------------------------------------------------------
2c5b9c7968 | Michael Gagno | 2012-07-03 17:51:56 -0700

Tweak some Swamp vaults.
I've noticed some of these having disconnected areas (usually a patch of
floor or shallow water along the edge of the map). This attempts to fix
them.

--------------------------------------------------------------------------------
87005485d0 | Michael Gagno | 2012-07-03 17:21:14 -0700

Fix level connectivity in Swamp.
If you happen to get a disconnected area, it will get a hatch now (this was
occasionally a problem on Swamp:1). This is needed because the tweaked layout
no longer guarantees that every level is a single room.

--------------------------------------------------------------------------------
6f9582649a | Florian Diebold | 2012-07-03 18:35:45 +0200

Fix resizing the webtiles page in the lobby after having loaded a game.

--------------------------------------------------------------------------------
c9ab46904d | Florian Diebold | 2012-07-03 18:26:08 +0200

Improve the webtiles stale process termination dialog.

--------------------------------------------------------------------------------
c509054ef5 | Eino Keskitalo | 2012-07-03 17:07:49 +0300

Tutorial lesson 2: incorporate changes from KiSS team, edit further, put 
messages into database.
I've changed the key assignment around in cmd-keys.h to make sure the "primary" 
key comes up for CMD_TARGET_SELECT and CMD_TARGET_CYCLE_FORWARD.

Changes include:
 * Added [] brackets around control texts
 * Intro shortened a little
 * Monster examination cut, only one training dummy. Was extremely verbose. 
It's still a useful thing to learn, so should be put into an advanced lesson 
later.
 * Monster comparison cage only has two monsters: an ooze and a wyvern.
 * Level 1 layout changed
 * Removed ammo cycling: seemed hard to pick up in testing, should be covered 
in an advanced lesson or in the CeHu hint mode scenario.
 * Level 2 shortened a bit accordingly
 * Removed a casual pack of rats from level 2
 * An awkward reminder about chopping and resting before the second rat room

Changes from KiSS not included:
 * Removal of the hint about waiting for monsters to close in
 * Revamp of level 2 layout (was too compact - things came in view too early)

Comments/TODO:
 * The hint about chopping rat corpses could come from stepping on one
 * There could be a hint about eating when you get hungry
 * Did not include autofight
 * Content is repeated in <console> and <webtiles>
 * Final screen whitespace - there should be line breaks before and after each 
yellow heading, but I'm still clueless how to add them

--------------------------------------------------------------------------------
2c626ade9d | Adam Borowski | 2012-07-03 14:02:24 +0200

Mark @jewellery_appearance@ as local.

--------------------------------------------------------------------------------
a87e3424a4 | Adam Borowski | 2012-07-03 13:27:03 +0200

Clean away _hide_doors().

--------------------------------------------------------------------------------
ea2f81ae63 | Michael Gagno | 2012-07-03 04:24:53 -0700

Place mangroves instead of trees in Swamp vaults.

--------------------------------------------------------------------------------
cdd511ae05 | Michael Gagno | 2012-07-03 03:37:34 -0700

Bog mummy: add bolt of cold, remove death curse.
Bolt of cold might make this monster into a more credible threat (as opposed
to something that just breaks your potions). Swamp lacks ranged damagers,
and cold is a fairly underused element.

As for the death curses: bog mummies are regular corpses preserved in a bog.
They are not like regular mummies (of the ancient Egyptian variety) where it
makes sense that a curse is placed upon them. Bog mummies are closer to
other undead: just another reanimated corpse.

--------------------------------------------------------------------------------
1d64e8e944 | Michael Gagno | 2012-07-03 03:22:48 -0700

Vampire mosquito: remove sickness attack, buff vampiric attack.
They now have a single attack, too. This makes them more capable of draining
HP, and less capable of making you want to jump off a cliff.

--------------------------------------------------------------------------------
00f9ee4280 | Michael Gagno | 2012-07-03 03:17:21 -0700

Make insubstantial wisp bands smaller but slightly more threatening.
They have a low chance of having vapours in them (most will have 0).

--------------------------------------------------------------------------------
2a35964406 | Adam Borowski | 2012-07-03 12:15:32 +0200

tutorial 5: suggest walking around the glass when searching.
Otherwise, some players will understand they can search from afar -- which
would work only if they had any T&D skill, which they don't.

--------------------------------------------------------------------------------
ce4b5a446e | Adam Borowski | 2012-07-03 12:15:31 +0200

A few extra words for randart names.

--------------------------------------------------------------------------------
af665a663a | Adam Borowski | 2012-07-03 12:15:31 +0200

Mark internal db keys for random artefacts as such.
Note that there's some confusion between "{ring,amulet,jewellery} appearance".

--------------------------------------------------------------------------------
3f76ba0537 | Michael Gagno | 2012-07-03 03:11:28 -0700

Move around some Swamp monster weights.
Trivial monsters are now uncommon. Vampire mosquitos are also less common
(they already spawn with bands, and do not need to have the highest weight
of any enemy in the branch).

--------------------------------------------------------------------------------
077020ddba | Michael Gagno | 2012-07-03 02:53:45 -0700

Basic description for mangroves.
These used to use the regular desc for trees.

--------------------------------------------------------------------------------
a86d5194b1 | Michael Gagno | 2012-07-03 02:48:00 -0700

Rename swamp trees to mangroves.
Since these are opaque (and therefore behave differently from normal trees),
a renaming is warranted.

--------------------------------------------------------------------------------
ab58638c90 | Michael Gagno | 2012-07-03 02:17:03 -0700

Make Swamp trees opaque.
I haven't bothered with save compat here, although it's easy enough to
unbreak it if we ever want to make this more than a little experiment.

I have not changed regular trees.

Opaque swamp trees means a few things:

- Autoexplore is much nicer in Swamp (cuts about 300 turns from it)
- The trees are less annoying to navagate around. By blocking LOS, they are
  much easier to notice
- They work better with the layout changes I've made (in my opinion)

--------------------------------------------------------------------------------
aa282566ac | Raphael Langella | 2012-07-03 11:11:02 +0200

Remove randomly generated secret doors.

--------------------------------------------------------------------------------
def1dad763 | Michael Gagno | 2012-07-03 02:04:23 -0700

Changes to the Swamp layout.
Trees have been made much more common. They form large, solid masses, and
elongated walls. The borders of the level are also a lot more solid than
before. The Swamp level builder itself is the same as before; I have only
tweaked a few numbers.

This leads to a few things:

- Levels are more compact than before. They won't feel as much like one big
  room, although they are still quite open.
- Levels are smaller. The borders around the edges of the level are bigger,
  and more of the level is taken up by solid features.
- Different levels appear distinct from each other.
- It's sometimes possible to get disconnected areas (with stairs).

I find that last point somewhat undesirable, but these changes are only an
experiment right now.

--------------------------------------------------------------------------------
7fd43ee287 | Michael Gagno | 2012-07-02 15:59:56 -0700

Reduce the weight of layout_roguey.
This layout can produce fun levels, but they are all very similar: a 5x5
grid of rooms. This could lead it to feeling boring if you get several in a
game (which is extremely likely, given it's high weight).

--------------------------------------------------------------------------------
99ce6cad19 | Adam Borowski | 2012-07-02 14:34:12 +0200

Drop Cheibriados' randart names -- ponderousification is no more.
A few could fit into the general pool.

--------------------------------------------------------------------------------
66a5fb13b4 | Adam Borowski | 2012-07-02 14:34:12 +0200

Drop see-through robes.
They've been commented about on IRC thrice, there are better things to raise
eyebrows with.  "Sheer" robes are hardly better, probably should remove them
as well.

--------------------------------------------------------------------------------
2c6082727f | Adam Borowski | 2012-07-02 14:34:12 +0200

Drop two unfitting gem names (for foo-encrusted randarts), add pearl.
Modern-sounding gem names feel out of place.

--------------------------------------------------------------------------------
fbb6a271b1 | Adam Borowski | 2012-07-02 14:34:12 +0200

Fix a crash on &u

--------------------------------------------------------------------------------
20dbf9e191 | Adam Borowski | 2012-07-02 14:34:12 +0200

Remove an obsolete comment.
Attempting to climb stairs when overloaded doesn't take a turn.

--------------------------------------------------------------------------------
521bc6d52b | Adam Borowski | 2012-07-02 14:34:12 +0200

Fix a crash in Slime builder.
This mostly reverts 767e3126, except for removing a pointless function call.

--------------------------------------------------------------------------------
beb930d8f6 | Adam Borowski | 2012-07-02 14:34:12 +0200

Add an assertion so wrong-place errors are not so cryptic.

--------------------------------------------------------------------------------
b7427c46e5 | Adam Borowski | 2012-07-02 14:34:11 +0200

vsnprintf() returns an int.
On a 64 bit machine, casting a 32 bit signed value to a 64 bit _un_signed type
is undefined, if the sign is dropped before widening, it will never return -1.

--------------------------------------------------------------------------------
4230805797 | Adam Borowski | 2012-07-02 14:34:11 +0200

In webtiles, assert that the locale uses UTF-8.
This should (hopefully) not be strictly necessary anymore, but we want
remote players to be able to use non-ASCII characters in notes, map glyphs,
and so on.  As chrootting is usually involved, this is a likely setup error;
I can think of no reason someone would want an ancient locale on a
network-accessible server.

A recent commit fixed websocket communication (always UTF-8), but accessing
local files (config, char dumps, etc) uses locale encoding.

--------------------------------------------------------------------------------
f47f74f368 | Raphael Langella | 2012-07-02 14:23:47 +0200

Revert scaling of mimics with depth.
Here are the new stats:
          | Min depth | Max depth | HD | Dam | Constriction | Poison
Inept     |    2      |    11     | 2  |  6  |     hold     |
Normal    |    7      |    20     | 8  | 12  |     hold     |
Ravenous  |    16     |           | 12 | 16  |      8       |   16
Monstrous |    32     |    32     | 16 | 20  |      10      |   20

Well, that's the plan but constriction with less or no damage isn't implemented
yet, so for now inept and normal mimics have no constriction and ravenous and
monstrous ones have normal constriction (still nerfed since HD is reduced).

--------------------------------------------------------------------------------
dfd62d9969 | Neil Moore | 2012-07-02 00:14:54 -0400

Improve autopickup help.

--------------------------------------------------------------------------------
4f9c9ef2c0 | Michael Gagno | 2012-07-01 16:47:40 -0700

Don't let ghost moths flee at low HP any more.
Fleeing can make these things a real nuisance if you can't see invisible.
Unseen horrors already use this gimmick, and I don't think there needs to be
two monsters with it.

--------------------------------------------------------------------------------
2c4fd66c47 | Michael Gagno | 2012-07-01 16:25:25 -0700

Halve the AC of ghost moths.
16 was unusually high for a monster like this. For comparison, iron golems
have 15 AC.

--------------------------------------------------------------------------------
e83c43af26 | Michael Gagno | 2012-07-01 16:24:46 -0700

A whole bunch of changes to Spider rune vaults.
- Weights have been adjusted, similar to how other branch endings are.
- Webs are less common in the two "open" maps Grunt made.
- Boss rooms have been made more random, leaning towards placing fewer
  moths.
- Moths of wrath are no longer guaranteed in any map.
- Ambrosia will usually be scattered about the boss room, rather than being
  in a pile on the rune.
- Some stone walls can randomly be rock.
- A rare chance of a door was added to the island map.
- Fewer monsters in grunt_spider_rune_parallel (this map still has more than
  the others, though)
- Fewer orb spiders in some vaults.

Overall, this means certain maps will be more random, a bit easier, and less
spammy with webs.

--------------------------------------------------------------------------------
a6203778ee | Neil Moore | 2012-07-01 18:42:41 -0400

Don't crash when encountering corpses.
get_max_subtype(OBJ_CORPSES) returns -1, argh.  Thanks to galehar for
pointing this out.

--------------------------------------------------------------------------------
ed8c66db97 | Florian Diebold | 2012-07-01 22:57:09 +0200

Remove an unused function.

--------------------------------------------------------------------------------
c6bd39a68d | Florian Diebold | 2012-07-01 22:57:09 +0200

Change default path for webtiles ttyrecs to include the player name.

--------------------------------------------------------------------------------
256a6aabf0 | Neil Moore | 2012-07-01 16:36:42 -0400

Ensure that all subtypes, including unknown, fit in MAX_SUBTYPES.
Since we use the max subtype for unknown items now, there has to be room
for that in you.force_autopickup.  Also verify that this holds for all
item classes, even those without IDs.

--------------------------------------------------------------------------------
70250edd84 | Neil Moore | 2012-07-01 16:26:50 -0400

Use "unknown <base type>" for unknown toggles in \ menu.
Rather than "unknown item default".

--------------------------------------------------------------------------------
47584bdf77 | Neil Moore | 2012-07-01 15:51:29 -0400

Actually use force_autopickup for unknown subtypes.

--------------------------------------------------------------------------------
9d7eee7db9 | Jon Knapp | 2012-07-01 15:01:03 -0400

added autopickup menu default_items plus help and bugfixes

--------------------------------------------------------------------------------
fd589a28d8 | Florian Diebold | 2012-07-01 20:51:11 +0200

Fix a typo/endless loop in wcstoutf8.

--------------------------------------------------------------------------------
149bde4dfb | Adam Borowski | 2012-07-01 20:42:34 +0200

Don't use locale-dependent %ls.
While webtiles are not supported on Windows, and no sane Unix uses encodings
other than UTF-8, we can have local webtiles some day.

--------------------------------------------------------------------------------
767e312631 | Adam Borowski | 2012-07-01 20:42:34 +0200

Move a special casing of a branch together with the rest.

--------------------------------------------------------------------------------
2b42d20230 | Adam Borowski | 2012-07-01 20:42:34 +0200

Disable the "cyrillic" fake language.
It is mindless transliteration, and the effect it produces is so bad it is
hard to read.  Cyrillicization is supposed to be done phonetically.  There
are quite detailed rules how to do that, but some of those are unclear to
me, including important ones like whether English "a" turns into "ei" or "a",
which is described as "in closed syllable" vs "open syllable".  This is a
fault of English pronunciation, of course, but unless someone tells me how
to tell tell these apart programmatically, it's kind of a blocker.  English
syllabization rules are bizarre...

--------------------------------------------------------------------------------
298f1c0569 | Florian Diebold | 2012-07-01 13:40:41 +0200

Fix CHATTR_HILITE (for example for stab brands) not working in webtiles glyph 
mode.

--------------------------------------------------------------------------------
6b1a93f771 | Adam Borowski | 2012-07-01 12:08:03 +0200

Reword the lightning rod description somehow.
What I want to convey is: for best total damage, it's best to wave the arc
to cover many targets, although for best damage to a single target, it is
obviously better to keep zapping it directly -- extra damage means nothing
if it goes into the air.

--------------------------------------------------------------------------------
f79dc8e539 | Adam Borowski | 2012-07-01 02:23:15 +0200

Fix droppings of old glyphs appearing on a new glyph's edges.

--------------------------------------------------------------------------------
780937c527 | Michael Gagno | 2012-06-30 16:37:47 -0700

Reduce the weight on wad's wood vaults.
There are a ton of these, all with a similar theme. They had WEIGHT: 4, but
even that seems a bit too common.

--------------------------------------------------------------------------------
c824640e26 | Michael Gagno | 2012-06-30 16:12:56 -0700

Tag most serial vaults with luniq_serial.

--------------------------------------------------------------------------------
b06106206d | Adam Borowski | 2012-07-01 01:12:00 +0200

Fix a potential integer overflow.
GCC seems to handle values above 255, but let's better play it safe.

--------------------------------------------------------------------------------
47acb2b5b0 | Adam Borowski | 2012-07-01 01:12:00 +0200

Fix a crash on drawing out of a character's bounds.

--------------------------------------------------------------------------------
12d28aa9d8 | Adam Borowski | 2012-07-01 00:31:52 +0200

Allow merfolk (and others with unlimited water traversal) to fully explore 
Shoals.

--------------------------------------------------------------------------------
754e3deff9 | Raphael Langella | 2012-07-01 00:09:37 +0200

Only visit changed stashes if needed (#5849).

--------------------------------------------------------------------------------
b8e867a99d | Raphael Langella | 2012-07-01 00:09:37 +0200

Make god_likes_items return false for GOD_NO_GOD instead of error.
Avoids checks by all the callers.

--------------------------------------------------------------------------------
41df555bbb | Chris Campbell | 2012-06-30 20:15:50 +0100

Change lantern of shadows effect to allow distinguishing LOS boundary and 
monster colours
Lightgrey maybe isn't shadowy enough for the effect to be worth keeping,
feel free to just disable the colour change if anyone thinks that'd be
a better solution.

--------------------------------------------------------------------------------
c1762c3f1e | Adam Borowski | 2012-06-30 19:42:53 +0200

Don't count Heroism nor Ashenzari when identifying weapons by skill.
While it makes sense for a worshipper of a god of battle and war gear to be
good at knowing one's weapons, using this invocation for id of weapons of
other types makes little sense.  And Ashenzari already gives identification
by a different mechanism, this kind of id would remove the need to wield
something cursed.

--------------------------------------------------------------------------------
5de740afa3 | Adam Borowski | 2012-06-30 19:36:53 +0200

An imperial buttload of randart name parts, by jeffqyzt.

--------------------------------------------------------------------------------
c009cb1991 | Florian Diebold | 2012-06-30 13:25:48 +0200

Fix lobby idle time updating in webtiles.

--------------------------------------------------------------------------------
6f2e67e1cc | Florian Diebold | 2012-06-30 13:25:47 +0200

Implement old_blood rendering in webtiles.

--------------------------------------------------------------------------------
ab6943af27 | Michael Gagno | 2012-06-29 15:56:29 -0700

Remove a bunch of hidden items and other spoilery stuff from entry vaults.
I'm sure I missed a bunch but I removed most of them. Entry vaults can place
items sometimes, but they shouldn't be hidden behind secret doors.

A bunch of entry vaults still have secret doors (for now) but they are
mostly of the "shortcut" variety. I've tried to make sure there's no loot,
and no tricking the player into thinking they need to descend to D:2.

A couple of vaults have been removed outright. There are also a few
miscellaneous tweaks.

--------------------------------------------------------------------------------
115a876427 | Florian Diebold | 2012-06-29 21:00:57 +0200

Make the DGL/webtiles chat message logging optional.

--------------------------------------------------------------------------------
f0ad5b31da | Adam Borowski | 2012-06-29 18:35:50 +0200

s/vault_entry/vaults_entry/

--------------------------------------------------------------------------------
ea4d253fe3 | Raphael Langella | 2012-06-29 13:18:40 +0200

Make show_gold_turns and show_game_turns default to true.

--------------------------------------------------------------------------------
f7678ec15d | Adam Borowski | 2012-06-28 22:35:42 +0200

Fix a crash on demand on lua food.eat(potion)

--------------------------------------------------------------------------------
0535df2518 | Adam Borowski | 2012-06-28 22:06:46 +0200

Autosave on a felid death, to make crash-scumming more risky.
Bastards can just trigger a crash one turn earlier, but that's nowhere as
reliable as crashing afterwards.

--------------------------------------------------------------------------------
dcbd244a42 | Adam Borowski | 2012-06-28 22:06:46 +0200

clua: crawl.hints_type()

--------------------------------------------------------------------------------
c8f20abad9 | Florian Diebold | 2012-06-28 22:02:44 +0200

Correctly center two buckler tiles.

--------------------------------------------------------------------------------
0a8080d0d0 | Florian Diebold | 2012-06-28 19:22:26 +0200

Fix webtiles compilation.

--------------------------------------------------------------------------------
47d89c6a33 | Florian Diebold | 2012-06-28 19:22:14 +0200

dd's bow tiles.
There were two alternatives for the artefact crossbow (red/blue). I
liked both, so I put the blue one into UNUSED.

--------------------------------------------------------------------------------
ef7677ed97 | Adam Borowski | 2012-06-28 15:15:37 +0200

Actually format the diagrams in tut1, remove blank lines causes by tiles stuff.
I did not notice the code for old diagrams is still present and enabled in .des,
so no wonders it worked right in the first try :p

--------------------------------------------------------------------------------
3e1acce2f8 | Adam Borowski | 2012-06-28 15:06:48 +0200

Enclose > in [] in tut1, for consistency with the rest.

--------------------------------------------------------------------------------
f01614af80 | Adam Borowski | 2012-06-28 15:01:48 +0200

Format the diagrams in tut1.
The rule is: a newline merely wraps text, a pair of newlines separates
paragraphs or mpr() calls.  Technically, you can use a literal \n but I'm
not sure if Transifex supports that.

--------------------------------------------------------------------------------
efb79217ca | Adam Borowski | 2012-06-28 14:51:35 +0200

Fix a misplaced . vs '
They could be argued to be in the old American style (details:
https://en.wikipedia.org/wiki/Logical_quotes), yet 1. it's especially wrong
for technical reasons (looks like the key ends with a dot), and 2. we use
the Commonwealth style anyway.

--------------------------------------------------------------------------------
5b7668b20d | Adam Borowski | 2012-06-28 14:51:35 +0200

Don't raise a disintegrated grate in pan_captured_pigsty.

--------------------------------------------------------------------------------
f8d6c006d1 | Eino Keskitalo | 2012-06-28 15:37:19 +0300

Mostly move tutorial lesson 1 strings to database.
I'm leaving the numpad/vikeys diagrams to kilobyte, but have the database 
entries with them, to be fixed, in this commit.

--------------------------------------------------------------------------------
f161de93f8 | Adam Borowski | 2012-06-28 12:50:16 +0200

Fix a couple of doubled spaces in non-<localtiles> text (tut5).
I wonder whether using HTML-like rules -- ie, coalescing any run of
whitespace to a single space, wouldn't be better.  When multiple <tags>
coincide, having correct whitespace in all variants is not entirely
trivial.  But then, we often want no whitespace at all (like, before
a dot or a closing parenthese), so this wouldn't help either.

--------------------------------------------------------------------------------
2ef1e311a9 | Adam Borowski | 2012-06-28 12:50:16 +0200

Consistently highlight all keys to press in tut5.

--------------------------------------------------------------------------------
b17ac2d7d1 | Adam Borowski | 2012-06-28 12:50:16 +0200

s/<white>/</w>/
The tutorial text source is way too riddled with markup to be easily read,
keeping tags terse may help a bit.

--------------------------------------------------------------------------------
aa144172f7 | Adam Borowski | 2012-06-28 12:50:16 +0200

Let b0rsuk know the basics of using Trog (tutorial 5).
Among 23 wins, he lacks any Be, and his highest Be was only XL 8.  Just in
case this was due to language issues, here's a translation of the relevant
tutorial lesson to Polish.

(Seriously, though: this is a test of translating tutorials.  Looks like
quite a few of hints mode messages happen there as well, got to make them
translateable...)

--------------------------------------------------------------------------------
a7f7b9120d | Adam Borowski | 2012-06-28 12:50:15 +0200

dISABLE cAPSlOCK IN ONE CASE.

--------------------------------------------------------------------------------
c6a717d507 | Adam Borowski | 2012-06-28 12:50:15 +0200

Evict the tutorial intro to the database.

--------------------------------------------------------------------------------
33a5efbabb | Eino Keskitalo | 2012-06-28 13:28:29 +0300

Fix tiles/console database untagging.

--------------------------------------------------------------------------------
3582eaaeda | Adam Borowski | 2012-06-28 02:21:32 +0200

Reenable the tutorial 5 intro.

--------------------------------------------------------------------------------
e4d1e0a573 | Adam Borowski | 2012-06-28 02:11:15 +0200

Fix all weapons having reaching.

--------------------------------------------------------------------------------
a7102461fa | Adam Borowski | 2012-06-28 02:04:05 +0200

Fix tutorial end not working.

--------------------------------------------------------------------------------
0c8e6fc58f | Adam Borowski | 2012-06-28 01:47:02 +0200

Put tutorial messages for tutorial 5 into the database.

--------------------------------------------------------------------------------
c2af7258da | Adam Borowski | 2012-06-28 01:29:21 +0200

Make tutorial1 use a numbered namespace, to allow using tutorial_msg() for 
common stuff.

--------------------------------------------------------------------------------
da10036aca | Adam Borowski | 2012-06-28 01:29:21 +0200

Fix a false positive in db_lint when a message is coloured at both ends.

--------------------------------------------------------------------------------
63ecf2ed5d | Eino Keskitalo | 2012-06-27 23:55:11 +0300

Remove the index of maps in the big comment header of volcano.des.
The information is better offered and upkept next to the maps themselves. Line 
numbering had already rotted (and would rot more with each change).

--------------------------------------------------------------------------------
9f588d51ee | Eino Keskitalo | 2012-06-27 23:50:11 +0300

Actually make enter_volcano_4 to have a clear path through the lava sometimes 
(rarely).

--------------------------------------------------------------------------------
a709146db9 | Eino Keskitalo | 2012-06-27 23:46:27 +0300

Use no_rtele_to in enter_volcano_4. Addresses #5845.

--------------------------------------------------------------------------------
1f1c3bc635 | Adam Borowski | 2012-06-27 21:20:43 +0200

Fix %cmd[] -> $cmd[].
Not sure when this got lost, must have lost it during one of rebases.

--------------------------------------------------------------------------------
220f4c71f4 | Adam Borowski | 2012-06-27 21:18:07 +0200

<webtiles> and <localtiles> tags.

--------------------------------------------------------------------------------
e9b324beba | Adam Borowski | 2012-06-27 19:11:13 +0200

Staves can't be evoked, so don't hint so.

--------------------------------------------------------------------------------
1ef2f88ea8 | Adam Borowski | 2012-06-27 19:11:12 +0200

Don't recognize an error message as a valid feature name.

--------------------------------------------------------------------------------
eaceeb94d8 | Adam Borowski | 2012-06-27 19:11:11 +0200

Write item symbols in hints as $item[amulet]
This applies to item classes only, real items need to be handled by code,
as no message is restricted to a single specific item anyway.

--------------------------------------------------------------------------------
c9a2cdb137 | Adam Borowski | 2012-06-27 19:10:42 +0200

Move a special case to its right place.

--------------------------------------------------------------------------------
1240bdecee | Eino Keskitalo | 2012-06-27 18:09:24 +0300

Selective changes to tutorial lesson 1 from this year's usability project (KiSS 
team). Includes my own edits to their changes.
Changes include:
 * Added [] brackets around control texts (will do for all the lessons)
 * Shorten the first movement tutorial quite a bit
 * Combined diagonal movement and shiftmove parts of the lesson, only one 
message for each
 * Shortened arrival to 2nd floor text
 * Shortened autoexclusion text
 * Greatly shorten/compress 2nd floor (secret doors and water only)
 * Remove green crystal and statues. Contradicts with the idea of making the 
level look exciting. Reasoning: different visuals suggest some sort of 
significance in the tutorial, instead of eyecandy.

Did not include/further edits:
 * Going straight into diagonal movement explanation, kept the go_on message.
 * Kept the very first movement part more similar to the original layout-wise, 
especially kept single-width diagonal corridors to enforce diagonal movement. 
Reduced blue tile count.
 * Undid making the forest path smaller (did not get why that was done - maybe 
to force you to move closer to exclusions?).
 * Shortened autoexclusion text further - first just say that some "dangerous 
ground" is marked with exclusions, and then only refer to exclusions, not 
terrain/features/ground etc. This makes it much shorter in all, though 
relevance to actually features may be lost. (clouds, dangerous monsters..)

Comments/TODO:
 * Suggesting to use arrow keys is IMHO bad, should go straight to numpad/vi 
keys (or mouse). Problems: having to explain vi keys straight away is awkward. 
The diagram for movement keys is a bit lenghty to show right away. Numlock is 
troublesome.
 * Shiftmove seems non-essential, and KiSS' testers had trouble with it 
(numlock/numpad trouble). I would move it to an "advanced movement" lesson.
 * Finding stairs by level map command (X and <) also feels like an advanced 
movement material.
 * Closing doors also. It's relevant when monsters (or clouds) are around. Move 
to lesson 2 later, or a new advanced lesson.
 * 2nd floor is a little small now, but while playing, it seems all right.

--------------------------------------------------------------------------------
136f655c35 | Adam Borowski | 2012-06-27 14:52:47 +0200

Axe axe traps in the stash tracker as well.

--------------------------------------------------------------------------------
d10a5bcc5e | Adam Borowski | 2012-06-27 14:50:03 +0200

Make an error message less spammy and more informative.

--------------------------------------------------------------------------------
6a1cb1e8ac | Adam Borowski | 2012-06-27 12:14:02 +0200

Convert hint messages for religious conversion and for dissection reminders.

--------------------------------------------------------------------------------
c5b07cddbb | Michael Gagno | 2012-06-26 23:32:24 -0700

Three altar vaults. (BurningLed)

--------------------------------------------------------------------------------
c19d3de8ba | Michael Gagno | 2012-06-26 23:32:24 -0700

Nemelex altar vault. (Grunt)
Has a gambling element to it. This has a low weight, since it is a lot more
complex than typical altar vaults.

--------------------------------------------------------------------------------
0963f1af1f | Neil Moore | 2012-06-27 00:26:03 -0400

Don't generate an escape hatch in zigsprint.
Trying to take the hatch would result in a crash "upstairs from top of a
branch (D)", since the hatch was never fixed up.  Create a dungeon exit
instead.

Existing saves could be unwinnable; fixing this would probably require
reverting 1c8b40e.

--------------------------------------------------------------------------------
f89664063f | Adam Borowski | 2012-06-27 02:05:33 +0200

Fix <console> logic being reversed.

--------------------------------------------------------------------------------
7b3a03ec9f | Adam Borowski | 2012-06-27 02:05:33 +0200

Place runtime arguments for hints as $1, $2.

--------------------------------------------------------------------------------
a8ad841956 | Adam Borowski | 2012-06-27 02:05:32 +0200

Fix whitespace.

--------------------------------------------------------------------------------
f006aa0b99 | Adam Borowski | 2012-06-27 02:05:32 +0200

Put messages for ending hints mode into the db.

--------------------------------------------------------------------------------
f637b01858 | Adam Borowski | 2012-06-27 02:05:31 +0200

Write commands in hint messages as $cmd[CMD_MURDER]

--------------------------------------------------------------------------------
30d883ac60 | Michael Gagno | 2012-06-26 16:47:40 -0700

Ashenzari altar vault. (Grunt)

--------------------------------------------------------------------------------
fee8910986 | Michael Gagno | 2012-06-26 16:47:39 -0700

Chei altar vault. (Grunt)
It has monsters that cast Leda's Liquefaction.

--------------------------------------------------------------------------------
95024b01b6 | Michael Gagno | 2012-06-26 16:47:38 -0700

Remove a redundant tile definition in wizlab_golubria.

--------------------------------------------------------------------------------
441dceecb8 | Michael Gagno | 2012-06-26 16:47:38 -0700

Define a tile for teleporters.
For now it's the same tile as Golubira portals. This looks a lot better than
a black box with a question mark, but it might still be better if
teleporters get their own unique tile.

--------------------------------------------------------------------------------
14f2c267c0 | Steve Melenchuk | 2012-06-26 16:47:37 -0700

Allow dlua "turn" triggers to be used without countdowns.
The documentation states that the countdown properties are meant to be
optional, but trying to do so previously threw a Lua error.

--------------------------------------------------------------------------------
99ce8d3f78 | Adam Borowski | 2012-06-26 22:50:29 +0200

Use a fineff for melee distortion blinks and teleports.
They can possibly cause an Abyss shift, removing the attacker in the middle
of a combat call.

--------------------------------------------------------------------------------
ccb88dfcbd | Steve Melenchuk | 2012-06-26 14:11:08 -0400

Make Octopode ring replacement prompt behave more consistently.
In particular, pressing Esc no longer generates a "remove ring" menu,
but cancels out of the process altogether, and ? brings up a menu (with
cancellation behaving as expected, and selection of a ring to replace
actually replacing the ring).

A small addition to the prompt has been made to indicate this behaviour
(there was no indication of it before).

Addresses Mantis 0005763.

--------------------------------------------------------------------------------
e261779f22 | Steve Melenchuk | 2012-06-26 14:08:08 -0400

Don't waste time on cancelling a reaching attack against a friendly.
This also gives better feedback when a reaching attack is cancelled.

Addresses Mantis 0005343.

--------------------------------------------------------------------------------
3f71d2805a | Steve Melenchuk | 2012-06-26 14:04:55 -0400

Add additional spells to _ms_low_hitpoint_cast.
Per 78291's list in Mantis 0005811: Confuse, Invisibility, Mirror
Damage, Drain Life, Teleport Self, Banishment, Hellfire Burst, Haste,
Heal Other, Fireball, Airstrike, Ice Storm, Death's Door, Orb of
Destruction, Ensnare, Throw Flame, Silver Blast, and Berserker Rage.

Also added: Controlled Blink (used in that slot by draconian shifters).

Most of these work as expected, and yields some nice effects (bears more
consistently berserk at low HP now, for example). The exception is Heal
Other; the check in _ms_low_hitpoint_cast currently checks for a
friendly target, which almost never seems to be the case - however, this
can probably be triggered through other means.

--------------------------------------------------------------------------------
65644f0889 | Neil Moore | 2012-06-26 13:49:28 -0400

Reset old and potentially broken force_autopickups.
This should fix saves affected by #5772 .

--------------------------------------------------------------------------------
95b2e50518 | Neil Moore | 2012-06-26 13:49:27 -0400

Improve _known_subtype().

--------------------------------------------------------------------------------
f6f36ec6f3 | Neil Moore | 2012-06-26 13:49:27 -0400

Fix a misplaced if.

--------------------------------------------------------------------------------
f4a2850dd6 | Jon Knapp | 2012-06-26 13:44:49 -0400

Tri-state autopickup menu.
Bold indicates that autopickup is being forced for the subtype, non-bold
that it is not (i.e. that the +/- shown comes from options such as
autopickup_exception).

Use comma (all items), Ctrl-D <letter>, or Ctrl-D <category> to reset
items to their default un-forced state.

Furthermore, never set force_autpickup automatically.

There are still some minor glitches.  In particular, doing "Ctrl-D *"
as the first action in the menu makes "," not work properly until
the menu is exited and re-entered.  Furthermore, the help needs to
be updated.

Fixes #5772 (but not already-affected saves).

--------------------------------------------------------------------------------
bbd9f04881 | Chris Campbell | 2012-06-26 18:30:33 +0100

Fix wording in hints mode introduction

--------------------------------------------------------------------------------
fa584fc41f | Chris Campbell | 2012-06-26 18:29:38 +0100

Let the Cocytus Serpent of Hell cast Refrigeration instead of Freezing Cloud

--------------------------------------------------------------------------------
635cb17ae7 | David Lawrence Ramsey | 2012-06-26 11:40:45 -0500

Fix spacing.

--------------------------------------------------------------------------------
64fa92e238 | Chris Campbell | 2012-06-26 17:33:23 +0100

(Very slightly) simplify Pan monster picking, reduce chance for some 5s

--------------------------------------------------------------------------------
a6aae95c13 | Chris Campbell | 2012-06-26 17:31:56 +0100

Remove midges
Lemure, crimson imp, ufetubus are plenty in terms of boring popcorn 5s.

--------------------------------------------------------------------------------
164ab60632 | Adam Borowski | 2012-06-26 15:07:34 +0200

Generate cmd-name.h on build time.

--------------------------------------------------------------------------------
e052af6882 | Adam Borowski | 2012-06-26 15:07:34 +0200

Make a database to store hints mode messages.
This commit adds only a few, transferring the text will be a lot of work.

--------------------------------------------------------------------------------
b1fa83a44e | Adam Borowski | 2012-06-26 14:39:46 +0200

Have you.hunger provide a numberic value.
The old version is left as you.hunger_name, but it's hard to imagine an use
for it.

--------------------------------------------------------------------------------
c6c7960ec8 | Adam Borowski | 2012-06-26 14:37:33 +0200

Don't hard-code hunger thresholds in char dumps.
Also, use an array instead of lots of ifs.

--------------------------------------------------------------------------------
1c8b40e68f | Adam Borowski | 2012-06-26 13:49:48 +0200

Drop old code for ending the game via regular upstairs.

--------------------------------------------------------------------------------
1ca0a42ea6 | Adam Borowski | 2012-06-26 13:44:02 +0200

Fix dungeon exits showing as regular upstairs in zotdef, sprint and tutorial.

--------------------------------------------------------------------------------
abba6a8cb2 | Adam Borowski | 2012-06-26 13:27:10 +0200

Fix zombified snapping turtles not being reported as having reach.

--------------------------------------------------------------------------------
5816c8cc98 | Adam Borowski | 2012-06-26 13:23:04 +0200

Don't use malloced modifiable strings just to immediately .c_str() them.

--------------------------------------------------------------------------------
39a7aa86fd | Adam Borowski | 2012-06-26 12:46:29 +0200

Declare get_monster_data() as pure.
It is mindlessly called over and over all the time.  So let's tell the compiler
it is safe to call it just once.

--------------------------------------------------------------------------------
72e43aee88 | Adam Borowski | 2012-06-26 12:24:35 +0200

Let &^T display non-string values without a need for manual cast.

--------------------------------------------------------------------------------
db8ba9312b | Adam Borowski | 2012-06-26 12:15:04 +0200

Fix a case of clua/dlua confusion.

--------------------------------------------------------------------------------
4fd32ac780 | Adam Borowski | 2012-06-26 12:07:06 +0200

A clua function monster:reach_range()

--------------------------------------------------------------------------------
403d3f9bb4 | Adam Borowski | 2012-06-26 11:24:14 +0200

Don't use two misleading schemes for reach ranges.
Both were scalars compatible with int, and both used the name "reach_range"
is some cases.  Thus, let's use 2/5/8 everywhere.

This probably makes the enum obsolete.

--------------------------------------------------------------------------------
47a8935d73 | Raphael Langella | 2012-06-26 10:18:53 +0200

Fix autoexplore sometimes not visiting stashes.
Happened when one item dropped over an identical one. The resulting stash wasn't
visited.

--------------------------------------------------------------------------------
d66262a457 | Raphael Langella | 2012-06-26 09:07:26 +0200

Fix autoexplore stopping when picking up gold.
We just ignore plus when comparing OBJ_GOLD items. Should also fix #5830.

--------------------------------------------------------------------------------
0a0a2114c0 | David Lawrence Ramsey | 2012-06-25 17:03:20 -0500

Add formatting fix.

--------------------------------------------------------------------------------
5ebcded2dc | Adam Borowski | 2012-06-25 20:07:16 +0200

Fix the dragonskin cloak not giving rAcid.
It's a draconic resistance...

--------------------------------------------------------------------------------
5b840f5a96 | Adam Borowski | 2012-06-25 20:02:32 +0200

Special-case Okawaru in sprint to give unscaled piety.
You fight only extremely OODs monsters at low level.

--------------------------------------------------------------------------------
f4961ac0c2 | Adam Borowski | 2012-06-25 18:55:20 +0200

Fix a crash when a friendly monster with no foe casts Vampiric Draining.

--------------------------------------------------------------------------------
1ab6798d9a | Adam Borowski | 2012-06-25 18:26:53 +0200

Disable Okawaru spam in notes.

--------------------------------------------------------------------------------
8911cb2b83 | Adam Borowski | 2012-06-25 18:22:05 +0200

An indentation fix.

--------------------------------------------------------------------------------
b2c52dfd6a | Adam Borowski | 2012-06-25 14:51:01 +0200

Replace at most one stair, to keep the vault connected.

--------------------------------------------------------------------------------
3f072b3d64 | Adam Borowski | 2012-06-25 14:48:42 +0200

Re-add a classical vault, adapting it for Spider.

--------------------------------------------------------------------------------
c4ad58b867 | Adam Borowski | 2012-06-25 14:00:26 +0200

Rename floor_hive to floor_orc, as that's its remaining use.
All vaults use it with the meaning of "orc", too (or in a commented out use
in pan_disco_hall, for its colour).

--------------------------------------------------------------------------------
e8cd0829e3 | Adam Borowski | 2012-06-25 12:13:19 +0200

A pixel = 1px, 4 bytes.

--------------------------------------------------------------------------------
71a6d884bb | Adam Borowski | 2012-06-25 12:13:19 +0200

Formatting.

--------------------------------------------------------------------------------
68da026a57 | Adam Borowski | 2012-06-25 12:13:18 +0200

Don't let debugging printf spew invalid characters.
printf("%c", 191) is an undefined operation, and won't work on any modern
system.  Better to just write what was requested.

Using "%lc" may not work in non-Unicode locales, but hey, it's a debugging
thing.

--------------------------------------------------------------------------------
7b18f21eeb | Michael Gagno | 2012-06-24 19:11:15 -0700

Two large floating vaults.

--------------------------------------------------------------------------------
5dcbe50cfe | Michael Gagno | 2012-06-24 19:06:37 -0700

Two minivaults.

--------------------------------------------------------------------------------
cbb7c386f0 | Michael Gagno | 2012-06-24 19:06:36 -0700

Two new Spider entries.
Also cleaned up spider.des a bit.

--------------------------------------------------------------------------------
49feb88e2d | Michael Gagno | 2012-06-24 19:06:36 -0700

Adjust weights for Snake endings.
The two classic maps have a higher weight now.

--------------------------------------------------------------------------------
ce757b2d18 | Adam Borowski | 2012-06-25 02:38:39 +0200

Remove two unfitting uses of honeycomb wall tiles.

--------------------------------------------------------------------------------
aa5e9a846b | Adam Borowski | 2012-06-25 01:58:51 +0200

Wasps don't make wax, but something akin to brown paper.

--------------------------------------------------------------------------------
bedda11e56 | frogbotherer | 2012-06-25 01:20:29 +0200

improved unicode support with more efficient use of textures

--------------------------------------------------------------------------------
d988224c93 | frogbotherer | 2012-06-25 01:20:29 +0200

added proper unicode support at the cost of some memory overhead
The maximum number of glyphs is fixed at 256, (which is enough for languages
with latin-like characters), but is easily increased via some constants in
fontwrapper-ft.cc, with a memory trade-off.

Features of this code:
 - any character in the font can be rendered
 - if crawl tries to render more than the max number of glyphs, it will crash
 - if crawl tries to render a glyph not in the font, an upside-down question
   mark will be printed instead
 - for each fontwrapper instance (font face, size and attributes), this keeps
   an array of pixels and an equivalent texture in memory for 256 possible
   glyphs.  This is why increasing the number of available glyphs pushes
   memory use up

--------------------------------------------------------------------------------
7e19b61f0d | Adam Borowski | 2012-06-25 01:00:32 +0200

Give alarm traps a bit more ammo.

--------------------------------------------------------------------------------
15161324fa | Adam Borowski | 2012-06-25 00:56:41 +0200

Don't let alarm traps silently lose a charge when an ally triggers it.
Instead, it goes off unconditionally.

There's a comment suggesting it was hostiles who were supposed to be
ignored because of that "being too harsh on the player", but we had this
"harsh" situation for ages.

--------------------------------------------------------------------------------
38b4c9099b | David Lawrence Ramsey | 2012-06-24 16:56:27 -0500

Remove unneeded space.

--------------------------------------------------------------------------------
9c37721035 | Adam Borowski | 2012-06-24 23:45:42 +0200

Don't place Saint Roka in Spider.
His band has a terrible time navigating more cramped layouts, and they look
out of place mingled with spiders.  He could still fit in a custom vault,
though.

--------------------------------------------------------------------------------
064a9d1f4b | Adam Borowski | 2012-06-24 23:08:03 +0200

Make the Singing Sword start identified.
This makes its greeting message iffy, but at least is consistent with all
fixedarts which are not concealed.

--------------------------------------------------------------------------------
0a680affcf | Adam Borowski | 2012-06-24 23:08:03 +0200

Randomize runes spawned in ZotDef.
The old order didn't make much sense in the first place anyway.

This helps recover games with a bug that destroys stuff on the level.

Out of the two runes that can't spawn in real games, I allowed elven but
not mossy, as the generic tile is acceptable for the former but not latter.

--------------------------------------------------------------------------------
15706b8936 | Adam Borowski | 2012-06-24 23:08:03 +0200

Don't claim picking up a rune would burden you.

--------------------------------------------------------------------------------
ead6193629 | Adam Borowski | 2012-06-24 23:08:03 +0200

Move the tile for fallback rune (currently elven, mossy) to runes/
It made sense among misc items when we had only that one tile.

--------------------------------------------------------------------------------
9ba59e61bc | David Lawrence Ramsey | 2012-06-24 12:23:04 -0500

Fix punctuation in changelog entry.

--------------------------------------------------------------------------------
bc13edd2ce | Adam Borowski | 2012-06-24 17:14:46 +0200

Changelog for 0.10.3

--------------------------------------------------------------------------------
bf500ca0f0 | Adam Borowski | 2012-06-24 17:14:46 +0200

Remove #define LOS_MAX_RADIUS
Having both it and LOS_RADIUS is misleading, especially as they're
arbitrarily used.  This distinction doesn't make sense anyway, as any
LOS changes need to be done at runtime, only the max matters during
compilation.

--------------------------------------------------------------------------------
c702831a74 | Florian Diebold | 2012-06-24 17:13:54 +0200

Add some error checking for the webtiles server config.
This should especially prevent problems (by going out early) if the
server is called with the default config (with paths relative to the
source folder) from a wrong directory.

--------------------------------------------------------------------------------
a8cbcea35a | Florian Diebold | 2012-06-24 14:21:34 +0200

Add some more debugging info for a webtiles error.

--------------------------------------------------------------------------------
d517e6319c | Adam Borowski | 2012-06-24 13:39:37 +0200

Apparently, Arachne and Fannar are not one unique in two persons.

--------------------------------------------------------------------------------
ff93fe29c8 | Adam Borowski | 2012-06-24 12:02:53 +0200

Changelog, up to 0.11-a0-2423-g1baa356

--------------------------------------------------------------------------------
4d1ad579b8 | Adam Borowski | 2012-06-24 10:04:01 +0200

Drop a few redundant braces.

--------------------------------------------------------------------------------
1baa356dae | Michael Gagno | 2012-06-23 19:09:45 -0700

Don't place inaccessible rooms in quadcrypt_mu.
These rooms now will always have doors. Previously, the randomization of
secret doors could mean these rooms were blocked off (unless you had cTele
or a way to break through metal).

There's still room for improvement here.

--------------------------------------------------------------------------------
5eeb4a87fc | Michael Gagno | 2012-06-23 18:38:14 -0700

Make lemuel_hidden_altar less hidden.

--------------------------------------------------------------------------------
2f3cabce67 | Michael Gagno | 2012-06-23 18:35:15 -0700

Remove the loot in golem_altar2.

--------------------------------------------------------------------------------
0ed6c71452 | Adam Borowski | 2012-06-24 01:39:23 +0200

Rename three sprint file names to something better than sprint${number}.des
sprint_mu.des and sprint_fedhas.des could probably drop the sprint_ prefix, too.

--------------------------------------------------------------------------------
6b14cb19fe | Adam Borowski | 2012-06-24 01:36:05 +0200

Fix Sprint Mu from crashing at startup (due to wax).

--------------------------------------------------------------------------------
ae9d9c0545 | Adam Borowski | 2012-06-24 01:33:47 +0200

Fix an unoperative flame machine in Sprint 2.

--------------------------------------------------------------------------------
c2568937ff | Adam Borowski | 2012-06-24 00:29:11 +0200

Revert "Use brown for rock walls in Spider."
There's no wax anymore.
This reverts commit aa4b589aa5b5cf4fbad00652b1dd2b85a2685a81.

--------------------------------------------------------------------------------
256b326ba6 | Adam Borowski | 2012-06-24 00:21:46 +0200

Axe wax.
It is used only in a few vaults, and where it does, it only confuses players
about which sources of fire can melt it and which can't.  The last problem
applies to trees as well, but at least it's somewhat more intuitive there.

--------------------------------------------------------------------------------
59db581c92 | Adam Borowski | 2012-06-24 00:21:46 +0200

Remove wax walls from all vaults.

--------------------------------------------------------------------------------
902b114bb8 | Adam Borowski | 2012-06-24 00:21:20 +0200

Fix a crash when a scaredy cat dies while afraid of an eidolon.

--------------------------------------------------------------------------------
643abc8aa2 | Adam Borowski | 2012-06-23 21:48:40 +0200

Let &o produce rods.
This should even be future-proof for any new item classes that don't need
special processing.

--------------------------------------------------------------------------------
955b50b0ce | Adam Borowski | 2012-06-23 21:32:17 +0200

Unbreak non-tile builds.

--------------------------------------------------------------------------------
492c439903 | Steve Melenchuk | 2012-06-23 20:58:14 +0200

Make monster casts of Leda's Liquefaction expire on death.
This prevents the effect from persisting indefinitely if the monster
dies while the effect is in progress.

--------------------------------------------------------------------------------
e8b8168dad | Adam Borowski | 2012-06-23 20:57:56 +0200

Drop unused plain glob support.
Since a long time ago, platforms with no POSIX regexes available will
instead build contrib PCRE.  Other contribs are always needed as well,
so there's no gain here.  And I guess we rely on patterns being regular
expressions internally, too.

--------------------------------------------------------------------------------
ceaff5dee3 | Adam Borowski | 2012-06-23 20:57:56 +0200

Make a bunch of functions static or gone.

--------------------------------------------------------------------------------
afb1d1f468 | Chris Campbell | 2012-06-23 19:44:35 +0100

Fix a crystal golem speech line

--------------------------------------------------------------------------------
5bdd56fffd | Chris Campbell | 2012-06-23 19:44:34 +0100

Don't identify gourmand for vampires, don't show it on % for races that can't 
identify it

--------------------------------------------------------------------------------
baf01b5079 | Chris Campbell | 2012-06-23 19:44:34 +0100

Mention suiciding the current character when using ^Q (#5759)

--------------------------------------------------------------------------------
d0cf191407 | Chris Campbell | 2012-06-23 19:44:33 +0100

Add "You convulse" to the default $danger-coloured messages
For some reason correctly capitalising it as "You convulse" doesn't
work, I'm not sure why.

--------------------------------------------------------------------------------
9f5738fe2e | Florian Diebold | 2012-06-23 12:52:10 +0200

Add an example user initialization script for webtiles.
Actually, the server should probably (optionally) do this itself, but
this will work for now.

--------------------------------------------------------------------------------
5b7b484532 | Neil Moore | 2012-06-23 02:16:56 -0400

Whitespace fixes.

--------------------------------------------------------------------------------
3a0c5f649d | Neil Moore | 2012-06-23 02:11:06 -0400

Fix "monster" crashes more generally.
The command "monster-trunk pandemonium lord" was crashing on a call to
getLongDescription().  Push the already-present no-database handling in
_getWeightedString() even further down, into _database_fetch().

This reverts commit 22a6ff26fb0f47fe232839e15d7064220e9b60cf.

--------------------------------------------------------------------------------
f18100d84d | Michael Gagno | 2012-06-22 18:21:53 -0700

Description for chilling statue. (Grunt)

--------------------------------------------------------------------------------
46281570b1 | Michael Gagno | 2012-06-22 18:17:17 -0700

Some stair vaults for the Hells. (Grunt)
Two of these use some Lua scripting.

--------------------------------------------------------------------------------
259c76d2dd | Michael Gagno | 2012-06-22 17:38:08 -0700

Two new Spider endings. (Grunt)
Both of these feature an open layout and look somewhat difficult.
grunt_spider_rune_parallel has a particularly large number of monsters, and
has more XP than any other Spider ending.

I've reorganized the order of the vaults a bit. I intend to give the first
two a higher weight, in order to divide the endings into "common" and
"uncommon" groups (similar to other endings). For now I'm leaving all of
them equal, since it will help with testing.

--------------------------------------------------------------------------------
60110cd460 | Michael Gagno | 2012-06-22 17:25:39 -0700

A new orb subvault. (Grunt)
I've increased the weight of the classic orb subvault, given the recent
influx of new ones. It will appear about 35% of the time.

--------------------------------------------------------------------------------
5642b6f144 | Michael Gagno | 2012-06-22 17:21:18 -0700

A fiery entry vault. (Grunt)

--------------------------------------------------------------------------------
0114f26a0b | Michael Gagno | 2012-06-22 17:20:16 -0700

Fix trog_eyes_of_draining.
Actually place the monster, and use ident:type on the antimagic weapons.

--------------------------------------------------------------------------------
ad8e809f11 | Michael Gagno | 2012-06-22 17:08:50 -0700

Fix the randbook in introduction_to_nature.
It had numspells:4, but five spells.

--------------------------------------------------------------------------------
e7e8c005df | Michael Gagno | 2012-06-22 16:51:08 -0700

Two nature-themed minivaults. (nagdon)

--------------------------------------------------------------------------------
b9bb74736b | Michael Gagno | 2012-06-22 16:24:47 -0700

Five altar vaults. (nagdon)

--------------------------------------------------------------------------------
2048c011fb | Raphael Langella | 2012-06-23 00:38:54 +0200

Mostly fix autopickup problems.
There still an issue when dropping an item on top of an identical one (like
a monster dropping a corpse on an identical one). The resulting stack won't
be visited.
Not sure how to fix it.

--------------------------------------------------------------------------------
c53ab933a4 | Neil Moore | 2012-06-22 18:30:48 -0400

Unloop hell for #5821 sufferers.

--------------------------------------------------------------------------------
d0ec4fc728 | Neil Moore | 2012-06-22 18:29:15 -0400

Don't set hell return level from inside hell.
Your game would be stuck, as the hell exits would take you back into
the most recent hell sub-branch you had visited.

Fixes #5821 (but not already-affected games).

--------------------------------------------------------------------------------
3dd56c2234 | Michael Gagno | 2012-06-22 15:24:38 -0700

Restrict evilmike_ambush to Elf:1-2.
This vault is not supposed to be placed on branch ending levels (the
down-stairs are an important part of it).

--------------------------------------------------------------------------------
607b66ae61 | Adam Borowski | 2012-06-22 23:59:30 +0200

lightning rod: make tiles show _something_ for the effect.
Sucks like a Vax, though.

--------------------------------------------------------------------------------
7b0006a483 | Adam Borowski | 2012-06-22 23:59:30 +0200

Give lightning rods some damage. Likely out of whack. But in what direction?
The formula is basically: f(power) * used mana / (arc_length + 2)

--------------------------------------------------------------------------------
fb18bd47a2 | Adam Borowski | 2012-06-22 23:59:30 +0200

Simplify and sanitize beam AC code, allow beams with proportional AC rule.
Bugs fixed:
* white draconian breath worked differently vs players and monsters
* tracers didn't know about triple AC reduction
* AC was queried many times (needs to scan all armour, etc)
Bugs added:
* ook?  I bet there's something :p

--------------------------------------------------------------------------------
5f14ddce62 | Adam Borowski | 2012-06-22 23:59:30 +0200

Comment that standard beam AC formula is no good here.

--------------------------------------------------------------------------------
19133e17ae | Adam Borowski | 2012-06-22 23:59:30 +0200

Rod of lightning.
[Unfinished: no actual damage yet.]

A single zap uses only two mana, evoking it in subsequent turns will take 5
(or less if the rod is spent), spreading the damage upon the whole arc
between, with a boost if you're not aiming at the same place.  Releasing
the trigger (ie, doing any action other than evoking the rod) will stop
the discharge.

--------------------------------------------------------------------------------
b9adaaa7c8 | Adam Borowski | 2012-06-22 23:59:30 +0200

Remove weird special-casing of monsters using rods of smiting.

--------------------------------------------------------------------------------
d0086cda77 | Raphael Langella | 2012-06-22 17:53:50 +0200

Fix a compiler warning.

--------------------------------------------------------------------------------
9c8974f24f | Adam Borowski | 2012-06-22 15:26:35 +0200

Fix a bunch of webtiles-in-console message regressions.
This is nowhere close to completeness, I got tired early through that
massive file, pushing it to see if you guys have any comments about what
is the best way to proceed.

In particular, I think command tags and item glyphs could be done a better
way.

--------------------------------------------------------------------------------
3d0a84c0ca | Adam Borowski | 2012-06-22 14:17:31 +0200

Fix char dump header being incomplete when playing webtile builds on console.

--------------------------------------------------------------------------------
a87b586b59 | Adam Borowski | 2012-06-22 13:56:12 +0200

Make is_tiles() available on the C++ side.
In webtiles, the same binary can run both, so this function returns whether
this particular game is controlled from console or tiles (there may be
spectators using either, possibly at the same time).

Declared constexpr in other build modes, so if we ever turn on C++11¹ mode,
they'll be as effective as #ifdefs.  Without it, optimized builds may or may
not eliminate code that depends on it, debug builds won't.

[1]. While there are niceties like sane initialization of arrays, etc,
FreeBSD and MacOS use truly ancient compilers, so C++11 is currently not an
option.

--------------------------------------------------------------------------------
81fc2edf2e | Adam Borowski | 2012-06-22 05:11:29 +0200

Remove an unused and misleading argument.

--------------------------------------------------------------------------------
00e6c84ba6 | Neil Moore | 2012-06-21 20:02:02 -0400

Document stair_destination().
At moxian's suggestion.

--------------------------------------------------------------------------------
4f27c868b7 | Neil Moore | 2012-06-21 19:42:51 -0400

Fix exiting Hell, AK starting abyss.
The feature was being replaced with DNGN_EXIT_PORTAL_VAULT.  This is
necessary for the DNGN_ESCAPE_STAIRS_UP of Labyrinths, but was skipping
the special-case code for Hell (you.hell_branch) and GDT_GAME_START
(D:1).  This led to the result being invalid and causing either a crash
or an error message and return to D:1, depending on wizmode.

Instead, only special-case the silly branch (Lab), and let everything
else use its native feature.

--------------------------------------------------------------------------------
67a254dc8b | Raphael Langella | 2012-06-22 00:26:51 +0200

Reinit the end of had_book instead of seen_spell when loading seen books.
Quite harmless.

--------------------------------------------------------------------------------
35eb27d2ba | Raphael Langella | 2012-06-21 22:43:31 +0200

In Shoals, don't try to autoexplore below see level.
This fix autoexplore looping forever on the levels. It leaks a bit because
your not really supposed to know the cell height, but I don't think it's
really a problem.

--------------------------------------------------------------------------------
3e8745c120 | Raphael Langella | 2012-06-21 22:43:31 +0200

Sort includes.

--------------------------------------------------------------------------------
c3ed161b0a | David Lawrence Ramsey | 2012-06-21 12:56:08 -0500

Fix Mantis 5813: bad grammar in Spider Nest description (using Tenaya's second 
suggestion).

--------------------------------------------------------------------------------
21566640e2 | Adam Borowski | 2012-06-21 19:31:44 +0200

Fix a crash on manual char dumps.

--------------------------------------------------------------------------------
92d52c9cc9 | Adam Borowski | 2012-06-21 19:02:41 +0200

Make crash frogs blink frogs again.

--------------------------------------------------------------------------------
a8417e431d | Adam Borowski | 2012-06-21 15:49:19 +0200

Store the overview of portal vaults as branches.
It was a mess of a private enum for Labs, Abyss, Pan and Hell, and strings
for the rest.  This was missed during the portal_branches rewrite.

Fixes "Buggy:" portals.

--------------------------------------------------------------------------------
672e3193c3 | Adam Borowski | 2012-06-21 14:49:18 +0200

Refactor the handling of stair destinations, unifying up and down directions.
This adds quite a bit of validation, and also allows querying portal
destinations without redundant code.

--------------------------------------------------------------------------------
69e7e4455a | Adam Borowski | 2012-06-21 12:01:44 +0200

Don't set note_hp_percent from init.txt (redundant)
Sadly, all remaining options that are still uncommented in init.txt are
lists of some sort, setting them by default would require some way to
override.

--------------------------------------------------------------------------------
741146cc2c | Adam Borowski | 2012-06-21 11:56:17 +0200

Hardcode loading of kills.lua; it's now dump_kill_breakdowns (default off).
For the time being, a stub exists in the old path, including that will flip
the switch to on.

--------------------------------------------------------------------------------
c5a66a46ca | Adam Borowski | 2012-06-21 11:07:15 +0200

Remove spaces between function identifiers and arguments lists.

--------------------------------------------------------------------------------
978f43a953 | Adam Borowski | 2012-06-21 02:11:42 +0200

A typo fix.

--------------------------------------------------------------------------------
e59e7d5095 | Adam Borowski | 2012-06-21 02:06:56 +0200

Remove (unused) support for vault welcome messages.
The only use of something like this, in Pan unique levels, is done a
different way to reduce text duplication.

I guess the intent of such level messages was to announce the presence of
special rooms like in Nethack, but that would bring confusion for no gain.
And they are already possible via map epilogues.

--------------------------------------------------------------------------------
fe3a93332d | Adam Borowski | 2012-06-21 01:55:14 +0200

Axe (unused) scaling of vault weights by depth.
I can't even fathom how this could ever be useful: it'd add a constant based
on depth to all WEIGHT settings, resulting in vaults being more uniform
deeper on.

--------------------------------------------------------------------------------
61a277ac1a | Adam Borowski | 2012-06-21 01:18:38 +0200

Unscale trap to-hit and disarm chance.
Nothing after level generation is supposed to depend on depth.  A foo trap
is a foo trap, no matter where you find it.

This and previous changes make Sprint in particular more deadly: before, all
traps did almost no damage, having depth of D:1.

--------------------------------------------------------------------------------
03a6cd1815 | Florian Diebold | 2012-06-20 23:09:48 +0200

Fix the animation of the chei altar tile.
This was practically unnoticeable, but the tile was chosen at random
instead of sequentially, as intended.

Also, for whatever reason, the tiles were listed in reverse order, so
the clock still ran backwards with the fix. I changed that, but maybe
it was intended?

--------------------------------------------------------------------------------
6bb3af02b0 | Steve Melenchuk | 2012-06-20 17:06:56 -0400

Ignore item subtype checks for autopickup for artefacts with unknown base type.
This prevents autopickup from leaking information about the base type of
artefacts (in particular, rings and amulets); cf. Mantis 0005802.

(With changes to not block autopickup_exceptions for such items. -nfm)

Fixes #5802, #5771.

--------------------------------------------------------------------------------
0bba2f6475 | Adam Borowski | 2012-06-20 22:52:30 +0200

When an attacker blinks due to own melee attack, do it as a final effect.
This avoids crashes if he lands in a trap or in a shaft.

The defender blinking is AFAIK safe.

--------------------------------------------------------------------------------
62c3c185bb | Adam Borowski | 2012-06-20 22:09:49 +0200

Ensure spell noise strings won't go out of sync.

--------------------------------------------------------------------------------
cd73ce8651 | Michael Gagno | 2012-06-20 11:21:42 -0700

Fixed Slime entries (minmay)
Three Slime entries placed slime walls adjacent to the Slime entrance, which
prevented autotravel to it. The same was true for a Jiyva altar in one.

--------------------------------------------------------------------------------
fdd391cc04 | Florian Diebold | 2012-06-20 15:55:58 +0200

Webtiles: Fix map update with travel_delay=-1 (#5356).

--------------------------------------------------------------------------------
0742475535 | Adam Borowski | 2012-06-20 14:08:57 +0200

Unscale trap damage.
This also corrects accidentally switched around player/monster damage for
blade traps: it's players who are supposed to get the tougher stick.

--------------------------------------------------------------------------------
f3d8706300 | Adam Borowski | 2012-06-20 13:39:20 +0200

Axe axe traps.
When trying to make a description for them, I realized they don't make any
sense.  Hand axes are fit for throwing by hand, but terrible for launching
via a spring/etc.  And simply dropping the axe from the ceiling doesn't
match the message, and there are better things to hang.

We got too many mechanical traps already.

--------------------------------------------------------------------------------
3df3d3ab11 | Adam Borowski | 2012-06-20 12:37:15 +0200

Unbreak DGL builds.

--------------------------------------------------------------------------------
df0890033e | Adam Borowski | 2012-06-20 12:13:06 +0200

Unbreak Windows console builds.
It sabotaged ARRAYSZ(), for no reason.  There was a conflict with an old
MSVC header, but for ARRAYSIZE() not ARRAYSZ(), then after a sed job in
9ba57ee3 the #undef was unnecesarily kepy.

--------------------------------------------------------------------------------
46bf11a728 | Adam Borowski | 2012-06-20 12:02:35 +0200

Cut down on transitively including directn.h
It's a big header, hardly ever needed, yet it was pulled even for low-level
files that don't deal with the game itself like lib${UI}.cc

--------------------------------------------------------------------------------
f73fc329e8 | Adam Borowski | 2012-06-20 11:17:27 +0200

Fix the wrong version of clua scripts being installed.

--------------------------------------------------------------------------------
d4793b6b35 | Neil Moore | 2012-06-19 23:47:45 -0400

Put mimic tile flags with the other foreground flags.
Also improve a few surrounding comments, and separate the sections a
little more clearly.

--------------------------------------------------------------------------------
1778fb77f1 | Translators | 2012-06-20 00:39:51 +0200

Transifex format fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9420fc1375 | Michael Gagno | 2012-06-19 14:55:01 -0700

Make Fannar cast Ozocubu's Refrigeration more often.
He now has it in two of his spell slots.

--------------------------------------------------------------------------------
4932400597 | David Lawrence Ramsey | 2012-06-19 16:53:41 -0500

Fix wording in new descriptions.

--------------------------------------------------------------------------------
be1512c0cd | Michael Gagno | 2012-06-19 10:03:42 -0700

Make AF_ENSNARE proc 1/3 of the time (was 1/2).

--------------------------------------------------------------------------------
cf652babc5 | Michael Gagno | 2012-06-19 09:39:33 -0700

Give all spiders lower MR.
Changed from -3 to -2. I also bumped the MR for demonic crawlers to help set
them apart more.

--------------------------------------------------------------------------------
b51ab777f2 | Michael Gagno | 2012-06-19 09:39:33 -0700

Make tarantellas have only one attack.
They were 16(confuse), 8(confuse). They are now 19(confuse). This is meant
to make their confusion less potent, although their main attack is more
likely to hit through AC now.

--------------------------------------------------------------------------------
62ec05c1c4 | Raphael Langella | 2012-06-19 18:07:20 +0200

Elyvilon: Remove the piety-less sacrifice of mundane weapons.
As discussed on c-r-d, its only purpose is to get rid of unwanted weapons, but
now it interferes with autoexplore (which visits sacrificiable items).
Items can be sacrificied for (a chance at gaining) piety or not.

--------------------------------------------------------------------------------
80bba62dff | Raphael Langella | 2012-06-19 18:07:20 +0200

Indentation fix.

--------------------------------------------------------------------------------
198b481279 | Michael Gagno | 2012-06-19 08:55:57 -0700

Make shiori_entry_oz less deadly.

--------------------------------------------------------------------------------
fd0e1ff17f | Adam Borowski | 2012-06-19 17:24:06 +0200

Descs for renamed features in Ice Caves.
It looks like that's the end of missing descriptions, and poor Dolorous is
finally off the hook from fixing my inept writing...

--------------------------------------------------------------------------------
d38569d08e | Adam Borowski | 2012-06-19 17:24:06 +0200

A minimal desc for tutorial exits.

--------------------------------------------------------------------------------
2bf0435ed9 | Adam Borowski | 2012-06-19 17:24:06 +0200

A desc for generic expired portals.
Since these can be either mundane rusting grates, or magical trove portals,
there is not much that can be written here.

--------------------------------------------------------------------------------
4fc838c751 | Adam Borowski | 2012-06-19 14:38:31 +0200

Hardcode the loading of {stash,wield,runrest,gearset,trapwalk,autofight}.lua
You are free to not use their functionality, load a private modified
version, etc, leaving the default version dormant -- and harmless.

This removes the need to manually update your config whenever such a lua
file is removed or added.  They are a part of the game itself now, being
written in lua is a hidden implementation detail.

There is one file left: lua/kills.lua, it produces spammy dumps not everyone
wants.  Perhaps it should be always loaded, but disabled unless someone uses
an option?

--------------------------------------------------------------------------------
20aeacb566 | Adam Borowski | 2012-06-19 14:38:31 +0200

Move tile options to the main .rc file.
Managing own config versions in multiple files is unobvious and error-prone.
Also, even if some of us hate it, the tile interface is a first-class citizen.

--------------------------------------------------------------------------------
5e038c7ef3 | Adam Borowski | 2012-06-19 14:38:31 +0200

Fix halflings being able to wield weapons meant for grown-ups.

--------------------------------------------------------------------------------
b47796fe21 | Adam Borowski | 2012-06-19 14:38:30 +0200

Use ARRAYSZ() instead of sizeof division, for readability.
Also, it's not vulnerable to changes to the underlying types.

--------------------------------------------------------------------------------
4835408b6a | Adam Borowski | 2012-06-19 14:38:30 +0200

Unify and sanitize .rc parsing of item classes, allow adding rods to autopickup.
Perhaps this should be merged with the new per-subtype interface somehow, 
though.

--------------------------------------------------------------------------------
67a6cc6bee | Adam Borowski | 2012-06-19 14:38:30 +0200

Allow running checkwhite on files not yet added to git.
To do this, give it files to check on the command line.

--------------------------------------------------------------------------------
a231ec1884 | Raphael Langella | 2012-06-19 14:13:51 +0200

Don't reset the hunger when loading a game in Lich form.

--------------------------------------------------------------------------------
1958f978b7 | Michael Gagno | 2012-06-18 19:36:05 -0700

Don't let allies refrigerate you.
This could happen if you used Yred's Enslave power on Fannar. He'd follow
you around, casting refrigeration with no regard for your own safety. Note
that this spell will damage you even if you have rC+++, and besides that, it
breaks potions.

--------------------------------------------------------------------------------
7f1cad3656 | Michael Gagno | 2012-06-18 19:36:04 -0700

Let ghosts cast Ozocubu's Refrigeration.
This is one of those spells that can potentially kill the ghost that casts
it (it will cast it if it lacks rC). It's no different from other spells of
this sort (ball lightning, fire storm, etc). Ghosts with this spell are
fairly likely to have rC, at least.

Pan lords are forbidden from casting it, since otherwise they will freeze
the vault they spawn in.

--------------------------------------------------------------------------------
03da759834 | Florian Diebold | 2012-06-18 15:06:43 +0200

Add dd to the credits.

--------------------------------------------------------------------------------
72a57bca01 | Florian Diebold | 2012-06-18 12:56:34 +0200

Improved versions of the new morningstar tiles.

--------------------------------------------------------------------------------
7e5c7f8e02 | Neil Moore | 2012-06-18 01:02:01 -0400

Clarify confusing indentation.
Zannick pointed out that the indentation and parenthesisation of the new
vaults rune placement logic were misleading: it was not clear that the
last three lines formed a separate clause.

Also fix a nearby typo in a comment.

--------------------------------------------------------------------------------
5584457e9d | Michael Gagno | 2012-06-17 21:19:39 -0700

Allow the Vault:8 rune to be placed in any of the subvaults.
This fixes a long-standing bug that was introduced when "prize quadrants"
were added. This caused the rune to only be placed in prize quadrants, even
though all of the regular quadrants supported rune placement. It also
introduced a huge spoiler issue: players who knew the map layouts could
identify prize quadrants, and thus know where the rune was without needing
to explore the level.

The rune now has a 1/4 chance of being in any of the four quadrants.

--------------------------------------------------------------------------------
347ea09d66 | Adam Borowski | 2012-06-18 03:10:15 +0200

Less redundant forward declarations.

--------------------------------------------------------------------------------
0f24e7826e | Adam Borowski | 2012-06-18 02:56:06 +0200

Consider the resistances from dragonskin cloak to be unidentified.
This simplifies the logic, fixes erratic behaviour for poisonous chunks,
and inhibits auto-id of rings of resistance while wearing the cloak.

--------------------------------------------------------------------------------
f328e76b16 | Adam Borowski | 2012-06-18 02:38:23 +0200

Check the count of rings and amulets in l_item.cc
jewellery_type_name doesn't have an array to expose, would need to fix it
later.

--------------------------------------------------------------------------------
9db3168f75 | Adam Borowski | 2012-06-18 02:30:28 +0200

Don't loop infinitely with a Russian profanity in no-asserts builds.
It's a "can't happen" case, though.

--------------------------------------------------------------------------------
52935c35ce | Adam Borowski | 2012-06-18 02:30:28 +0200

Comment out autopickups in init.txt
Having players have to copy the config file makes it impossible for us to
change the defaults.

--------------------------------------------------------------------------------
990cdd5e08 | Adam Borowski | 2012-06-18 02:30:28 +0200

Replace a particularly nasty use of enum numeric values.
As expected, they were out of sync.

--------------------------------------------------------------------------------
ed87259ce5 | Adam Borowski | 2012-06-18 02:30:28 +0200

Drop two mentions of Mersenne Twister.

--------------------------------------------------------------------------------
0cc31afe9c | Adam Borowski | 2012-06-18 02:30:28 +0200

Install README.txt and license.txt in Windows zips.

--------------------------------------------------------------------------------
7b188a94f9 | Steve Melenchuk | 2012-06-18 02:30:28 +0200

Allow rods to once again be sacrified to Nemelex Xobeh.
This was formerly a possibility before the rods/staves split; a check
was missed in _check_nemelex_sacrificing_item_type in godprayer.cc.

--------------------------------------------------------------------------------
87fbb0913f | Neil Moore | 2012-06-17 20:27:55 -0400

Add CommanderC to CIA git hook and to CREDITS.txt .

--------------------------------------------------------------------------------
0f01a0f47f | Policarpo Caballero | 2012-06-17 20:22:24 -0400

Update the list of amulets in l_item.cc

--------------------------------------------------------------------------------
aa4b589aa5 | Michael Gagno | 2012-06-17 17:06:23 -0700

Use brown for rock walls in Spider.
There are a number of "hive" vaults that can show up here, and they use wax
(yellow). Thus, it is a bad idea to use yellow for rock walls.

A brown/brown colour scheme is a bit dull looking, but I'm not sure what
else it should be.

--------------------------------------------------------------------------------
205ee368b4 | Neil Moore | 2012-06-17 19:22:44 -0400

Do not crash when good worshippers see an unknown rod in tiles.
_is_bookrod_type() was being called on an item_info with sub_type ==
NUM_RODS.  Handle this and the corresponding case for spellbooks.

This happened only in tiles (where autopickup highlighting is determined
based on item_infos from map_knowledge), but could probably be triggered
by other uses of map_knowledge.

Fixes #5792.

--------------------------------------------------------------------------------
2a056f758e | Adam Borowski | 2012-06-17 21:24:35 +0200

Fix a crash on any attacks against a monster minotaur.

--------------------------------------------------------------------------------
f135f489c9 | Florian Diebold | 2012-06-17 20:21:03 +0200

dd's {morning,evening}star tiles.

--------------------------------------------------------------------------------
8174d4f369 | Adam Borowski | 2012-06-17 12:38:07 +0200

Unspoil a Gloorx Vloq map.
The rune was always farther from the corner on an otherwise symmetrical map,
telling you where to apport and where to avoid.

--------------------------------------------------------------------------------
699797688a | Adam Borowski | 2012-06-17 10:33:49 +0200

Remove an obsolete unused property.

--------------------------------------------------------------------------------
727f71dac6 | Adam Borowski | 2012-06-17 10:22:35 +0200

Don't give stupid monsters any skills.
This mostly matters for zombies with weapons of pain: being undead, they had
skill equal to their HD, and you can arm and create zombies easily.

It makes sense for sentient undead to be great at necromancy; zombies though
are expected to be unable to do anything complex.

--------------------------------------------------------------------------------
3a36c4273b | Michael Gagno | 2012-06-16 19:16:21 -0700

Fix gehenna_fire_generator.
A single-tile floating vault, guaranteed on Geh:1... hard to see what the
point of this was. I've made it a minivault and let it spawn anywhere in
Geh, with allow_dup.

--------------------------------------------------------------------------------
4e02000359 | Michael Gagno | 2012-06-16 18:29:49 -0700

Increase the weight of layout_basic in Geh and Coc.
It would be better for these branches to have their own layouts, but at
least this layout places lakes and rivers in these branches. Of all layouts
it is the most thematic for Geh and Coc.

This increase also compensates for the recent addition of new layouts.

--------------------------------------------------------------------------------
ee38ebdd96 | Adam Borowski | 2012-06-17 01:22:33 +0200

Fix monster no_tele not being heeded in a number of places.
It would be tempting to separate the emergency blink/teleport into separate
functions, but all these places differ as to whether the source of -TELE
should be identified or not.  Might be better to have this as argument to
*blink()/*teleport(), perhaps...

--------------------------------------------------------------------------------
b712ff15c6 | Adam Borowski | 2012-06-17 01:22:33 +0200

Remove blink frogs' immunity to the Dispersal spell.
This special case was totally unobvious.

--------------------------------------------------------------------------------
452cc7e590 | Adam Borowski | 2012-06-17 01:22:32 +0200

Don't let stasis block emergency monster teleport/blink.
This is used when it is impossible to shove a monster away from a place that
is needed for the player or a new feature.

--------------------------------------------------------------------------------
4f30efc512 | Michael Gagno | 2012-06-16 16:11:04 -0700

Simplify and tweak some Pan layout weights.
I've changed the standard weight for Pan layouts to be 10 (like it is
everywhere else) rather than 1. The one layout that was weight 6 is now 60.

I've also lowered the weights on a couple: octagon levels will now be a bit
less common than others (it was pointed out to me that they were never
common in the past - it depended on which dungeon level you entered Pan
from).

Also, two of the new layout_loops vaults will be a bit less common in Pan,
since they have a very distinctive apperance and tend to have more corridors
than the typical Pan level.

--------------------------------------------------------------------------------
2f0d09b7bf | Michael Gagno | 2012-06-16 15:52:29 -0700

Allow layout_loops to rarely be made of stone/metal, as with other layouts.

--------------------------------------------------------------------------------
35861d6a80 | Michael Gagno | 2012-06-16 15:52:28 -0700

Don't place extra loot/monsters in layout_loops_cross.
After taking a closer look at this, and discussing it in ##crawl-dev, I
believe it is best if this layout does not place extra monsters or loot. The
reasons are as follows:

1. Loot is really something that belongs in vaults, not layouts.
2. For several versions of the layout, the loot is hard to notice (it's most
   obvious when you get small rooms).
3. Monsters wander. The guards in the middle of the level won't really stand
   out compared to normal monsters. It's better to just let the level be
   populated normally.

For the third one, it might be possible to make it work by placing a huge
number of monsters in that area. But even then, you'd probably want doors or
something.

--------------------------------------------------------------------------------
2c3e595755 | Michael Gagno | 2012-06-16 15:52:28 -0700

Remove nicolae_oklob_transplants.
Seems it relies on a bug. Immobile monsters are not supposed to blink under
any circumstance.

--------------------------------------------------------------------------------
aa65f5f492 | Michael Gagno | 2012-06-16 15:52:27 -0700

Stonehenge is not made of wax.

--------------------------------------------------------------------------------
22770bb6fc | Michael Gagno | 2012-06-16 15:52:26 -0700

Three new level layouts (infiniplex).
See: https://crawl.develz.org/mantis/view.php?id=5782

This is quite long, so I've left it in its own file rather than put it into
layout.des. These are regular dungeon-type layouts, and therefore they can
be found in most branches (including Pandemonium).

One of these layouts places a small amount of guarded loot. If this is a
problem, perhaps the guard can be increased, or the loot chance lowered.

--------------------------------------------------------------------------------
63f3b94aa8 | David Lawrence Ramsey | 2012-06-16 17:01:48 -0500

Fix wording and punctuation in new descriptions.

--------------------------------------------------------------------------------
08f2be7a1a | Adam Borowski | 2012-06-16 23:46:34 +0200

Fix save files leaking space.
While X[] did not leak, it's not the case for regular walking between
levels.  This means, stair dancing can result in enormous saves.

--------------------------------------------------------------------------------
e941e39235 | Adam Borowski | 2012-06-16 22:34:43 +0200

Remove a commented out function to disable autopickup in the Abyss.
It misleads people into thinking autopickup doesn't work there (why would
anyone disable it unconditionally there?), and is broken in the first place.

--------------------------------------------------------------------------------
c83b32ee63 | Adam Borowski | 2012-06-16 22:19:51 +0200

Descriptions for the rest of traps.
Except for axe ones, which make zero sense theme-wise.  Would anyone cry if
they had an accident?

--------------------------------------------------------------------------------
d1c42361e7 | Adam Borowski | 2012-06-16 22:19:50 +0200

An ugly desc for Wucad Mu.  Please improve or replace!

--------------------------------------------------------------------------------
58b17f9ba6 | Adam Borowski | 2012-06-16 22:19:50 +0200

A desc for IOODs themselves.
The player deserved to be told what that white thingy is (easy to take it for
a summon of sorts), and how to avoid it.  It's especially important to convey
that stepping just next to it is not safe, due to quantized movement, and also
due to the "en passant" rule.

--------------------------------------------------------------------------------
24492d94a5 | Adam Borowski | 2012-06-16 22:19:50 +0200

Round a skewed dot.

--------------------------------------------------------------------------------
3c139b94d8 | Michael Gagno | 2012-06-16 12:19:18 -0700

Re-enable octagon levels in Pandemonium.
They seem to have been removed by mistake... the layout still had
pan-specific stuff in it, but it wasn't actually possible to get it in Pan.

--------------------------------------------------------------------------------
97789c14a2 | Chris Campbell | 2012-06-16 20:11:07 +0100

Don't let minotaurs headbutt rock worms in walls

--------------------------------------------------------------------------------
49722d7702 | Chris Campbell | 2012-06-16 19:54:16 +0100

Improve wording of sickness messages

--------------------------------------------------------------------------------
278f67d0d2 | Michael Gagno | 2012-06-16 09:38:21 -0700

Fix a few cut-off areas in recently added vaults.
This sort of thing should be impossible in vaults before the late-game.
Unfortunately, it's very hard to detect in ones like these.

--------------------------------------------------------------------------------
f90c9975bc | Neil Moore | 2012-06-16 11:32:48 -0400

No longer guarantee Spider.
The biggest problems have been dealt with, and it would be nice to
get some feedback on the balance of the roulette pairs before 0.11
is released.

This reverts commit 2f186193e81e2b0bfa6ab956a2cfa1bfc88590c6.

--------------------------------------------------------------------------------
6451c23974 | David Lawrence Ramsey | 2012-06-16 00:07:02 -0500

Fix wording and punctuation in new descriptions.

--------------------------------------------------------------------------------
93261e876b | Michael Gagno | 2012-06-15 22:05:34 -0700

Remove ORIENT: float from the grunt_burning_victim subvault.

--------------------------------------------------------------------------------
e7ae22a230 | Michael Gagno | 2012-06-15 22:01:17 -0700

A bunch of vaults featuring innocent creatures dying in a fire. (Grunt)
Can show up in various places. One of these is a makhleb altar vault, the
rest are mainly for D and Geh. Some have monsters.

--------------------------------------------------------------------------------
35c9e6028c | Neil Moore | 2012-06-15 22:28:07 -0400

Don't crash when loading a level with detected items.
Happens in tiles mode only, when checking whether the item's tile needs
the autopickup annotation.  Possibly other situations involving detected
items could cause the same problem.

--------------------------------------------------------------------------------
4a4cf7e545 | Adam Borowski | 2012-06-15 21:55:06 +0200

Reduce dummy vault balancers.
Levels without vaults are boring.

This commit increases the chance for primary vaults from 1/9 to 1/6, and for
minivaults from 1/3 to 1/2.

Beware of possible balance issues -- vaults tend to provide far more danger,
xp and loot than the rest.  As 0.11 releases early August (and freezes...
when?), if this proves problematic, please revert.

--------------------------------------------------------------------------------
3ac1c05234 | Adam Borowski | 2012-06-15 20:44:07 +0200

Make slowmeta a two-level mutation (old level 2 of 3 did nothing).
This makes it work consistently with fastmeta: every level of each increases
or reduces hunger by 1.

--------------------------------------------------------------------------------
d5a188581d | Adam Borowski | 2012-06-15 15:35:05 +0200

A bunch of descs for vault renames.
The only one left is Wucad Mu.

--------------------------------------------------------------------------------
cebdf43632 | Adam Borowski | 2012-06-15 15:35:05 +0200

db_lint: warn on blank descriptions.

--------------------------------------------------------------------------------
19ea892713 | Adam Borowski | 2012-06-15 15:35:04 +0200

Fix acquirement never creating rods.
It selected a rod type, and created a staff with the same enum instead.

--------------------------------------------------------------------------------
0e5356b2ff | Neil Moore | 2012-06-15 01:47:31 -0400

Don't enchant zigsprint starting ammo.

--------------------------------------------------------------------------------
1cd23a7278 | Neil Moore | 2012-06-15 01:35:31 -0400

Don't let casters pick up -Cast jewellery.
Like weapons and armour, -Cast on jewellery doesn't actually have an
effect on monsters.  But they still don't want it, if only to help
the player's suspension of disbelief.

--------------------------------------------------------------------------------
36999645c5 | Michael Gagno | 2012-06-14 21:50:48 -0700

Make emperor scorpions SIZE_GIANT, allowing them to tear through webs.
It's unusual for a branch ending enemy to be disabled by one of the main
features of that branch. One solution would've been to make emperor
scorpions web-immune. I prefer increasing their size, because it allows them
to tear through webs (seems fitting for a freakishly large and powerful
scorpion).

This does mean they are the size of elephants, so the description text might
need rewriting...

--------------------------------------------------------------------------------
eb0b8fc51f | Michael Gagno | 2012-06-14 21:44:48 -0700

New formula for placing webs over time in Spider.
The old one had a tiny effect for the first few levels, and jumped massively
on the last one. This new formula increases the rate at which webs get
placed in middle levels, and decreases it in Spider:5. The overall
difference should be fairly hard to notice.

--------------------------------------------------------------------------------
804e081d39 | Michael Gagno | 2012-06-14 21:41:42 -0700

Reduce the number of webs placed in Spider.
This fixes silly mistake which caused way more webs to get placed than
intended. This fix should make it less likely for the entire floor to be
carpeted with webs.

--------------------------------------------------------------------------------
755d51ee08 | Michael Gagno | 2012-06-14 20:17:46 -0700

Give more XP for killing Fannar.
He gives roughly the same amount of XP as Erica and Harold now.

--------------------------------------------------------------------------------
cb54cf5b59 | Neil Moore | 2012-06-14 23:04:46 -0400

Display staircase up mimics properly in ^X (#5374).

--------------------------------------------------------------------------------
98514afbdb | David Lawrence Ramsey | 2012-06-14 22:01:59 -0500

Remove references to missile enchantments in Ely's weapon-dulling wrath.

--------------------------------------------------------------------------------
68f7251665 | Nathaniel Rook | 2012-06-14 22:43:26 -0400

Fix repetition of controlled blink wasting MP.

--------------------------------------------------------------------------------
617d429aae | Michael Gagno | 2012-06-14 17:46:23 -0700

Revamp guppyfry_spider_rune.
Removed the water and some doors. This changes the vault significantly, and
hopefully addresses some serious flaws in it. This still might not be
enough, though.

--------------------------------------------------------------------------------
8f3e0d7bea | Michael Gagno | 2012-06-14 17:32:38 -0700

Fix some more trap glyphs in vaults.

--------------------------------------------------------------------------------
40dab060ab | Michael Gagno | 2012-06-14 17:32:20 -0700

Don't place rectangular forests.

--------------------------------------------------------------------------------
21bc142ced | Michael Gagno | 2012-06-14 16:28:04 -0700

Fix some trap glyphs in recently added vaults.
Should use '~' instead of '^'. This may have been the cause of some recent
zot traps in early D.

--------------------------------------------------------------------------------
35619ead07 | Neil Moore | 2012-06-14 18:07:40 -0400

Simplify tgw_kikubaaqudgha using the new never_corpse tag.

--------------------------------------------------------------------------------
8d6d16bb39 | Neil Moore | 2012-06-14 18:06:36 -0400

Document never_corpse.

--------------------------------------------------------------------------------
b84c06f5a3 | Steve Melenchuk | 2012-06-14 18:04:40 -0400

New monster_info tag: never_corpse.

--------------------------------------------------------------------------------
3057eea130 | Neil Moore | 2012-06-14 16:55:46 -0400

Fix amulet/ring auto-id interaction with ARTP_*.
If the _maybe_id_jewel() call is passed an artefact property, then
the presence of an unknown artefact amulet should suppress auto-id
of a relevant ring and vice versa.  However, this was happening
even for non-artefacts.

As a particular example (discovered by ChrisOelmueller): wear an
unidentified ring of hunger along with an unidentified normal amulet,
and no other jewellery.  Upon crossing the next hunger threshold, the
ring should, but would not, be identified.  Now it is identified unless
the amulet is an artefact (and thus might have ARTP_METABOLISM).

It probably makes sense to check for any unknown artefact, not just
those in a jewellery slot.  This is not currently handled.

--------------------------------------------------------------------------------
6cd43c0f05 | Florian Diebold | 2012-06-14 08:25:00 +0200

Fix the robe of misfortune having a TODO tile.

--------------------------------------------------------------------------------
d5ade8a6ad | Raphael Langella | 2012-06-14 00:52:06 +0200

Add a missing MSG_OK

--------------------------------------------------------------------------------
6865f4a909 | Raphael Langella | 2012-06-14 00:49:30 +0200

Memorising a Vehumet spell takes a turn.

--------------------------------------------------------------------------------
402149d943 | Raphael Langella | 2012-06-14 00:35:59 +0200

Some simplification.

--------------------------------------------------------------------------------
ad1d6ef9a2 | Chris Campbell | 2012-06-13 17:44:56 +0100

Fix an error message when finding items

--------------------------------------------------------------------------------
24d4d3b66f | Chris Campbell | 2012-06-13 16:41:32 +0100

Adjust some spell gifting messages

--------------------------------------------------------------------------------
f2ed529e6b | Chris Campbell | 2012-06-13 16:26:10 +0100

Make Vehumet accept demon and holy kills, don't accept ally kills

--------------------------------------------------------------------------------
f20ff8e91e | Raphael Langella | 2012-06-13 17:21:09 +0200

Autoexplore visit items that can be sacrificed.
There's a little issue with Ely. After *** piety, weapons don't give piety but
they can still be sacrificed, so they will still be visited.
I think they just shouldn't be sacrificiable anymore at that point and give a
message about how Ely don't care about them anymore. A bit like how blood gods
refuse rotten corpses.
Using sacrifice to clean up dangerous weapons and not gain piety is not
thematic.

--------------------------------------------------------------------------------
97ca0b22f4 | Michael Gagno | 2012-06-13 07:51:03 -0700

Tag some cosmetic vaults with "extra".

--------------------------------------------------------------------------------
94282c3d51 | Adam Borowski | 2012-06-13 16:34:17 +0200

Fix crashes when seeing scourges or trishulas.
That new autopickup menu blindly assumed a fixed number of 50 item types,
only because any item class with globally identifiable types has less than
50 of them.  which is not true for weapons (53).

--------------------------------------------------------------------------------
468c7cae3a | Michael Gagno | 2012-06-13 07:06:25 -0700

Seven entry vaults. (Saegor)

--------------------------------------------------------------------------------
1cc1d826f2 | Neil Moore | 2012-06-13 09:23:36 -0400

Don't welcome AKs "back" to the dungeon the first time.
Fixes #1419 .

--------------------------------------------------------------------------------
c4bd1ea0d0 | Adam Borowski | 2012-06-13 13:22:35 +0200

Make newlines in spell descriptions more consistent.

--------------------------------------------------------------------------------
fe907a14e9 | Adam Borowski | 2012-06-13 13:19:57 +0200

Show quotes in spell descriptions.

--------------------------------------------------------------------------------
b46f1c8a39 | Adam Borowski | 2012-06-13 13:10:55 +0200

Show full spell data in the post-mortem inventory browser.
Simplifies the next commit, putting this separately as there might be
potential problems I missed.

--------------------------------------------------------------------------------
ea1a655a30 | Adam Borowski | 2012-06-13 13:00:26 +0200

Fix card names not being capitalized in the desc browser.

--------------------------------------------------------------------------------
6a84b31c77 | Adam Borowski | 2012-06-13 13:00:25 +0200

Fix ?/c showing non-cards.

--------------------------------------------------------------------------------
0b8b1df93b | Adam Borowski | 2012-06-13 13:00:24 +0200

Suffix db keys for spells with " spell".
This allows for orbs of destruction to have a separate description.  Showing
the spell instead was quite jarring, and failed to explain what that thingy
which just spawned near Boris or an orb spider is.

--------------------------------------------------------------------------------
73cad5b972 | Adam Borowski | 2012-06-13 10:41:26 +0200

Place prince Ribbit away from his groupies.
This avoids the frog band blocking him from spawning.  It's not a real fix,
but the underlying bug is tricky, and this works around it.

--------------------------------------------------------------------------------
9955ddd93e | Adam Borowski | 2012-06-13 10:31:33 +0200

Don't use hardcoded tile counts for Snake floors.

--------------------------------------------------------------------------------
18f9c81768 | Neil Moore | 2012-06-13 01:23:15 -0400

Fix Curse Weapon (#5767).

--------------------------------------------------------------------------------
8918910c39 | Michael Gagno | 2012-06-12 22:06:29 -0700

Fix Fannar's equipment.
Don't give him both sets of items at once, and pre-identify his robe and
weapon.

--------------------------------------------------------------------------------
495e8dd1f3 | Michael Gagno | 2012-06-12 21:39:16 -0700

Enable Fannar.

--------------------------------------------------------------------------------
0626be49b3 | David Lawrence Ramsey | 2012-06-12 22:05:23 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
b77ba92092 | David Lawrence Ramsey | 2012-06-12 21:50:23 -0500

Explicitly ensure that stupid undead can't use jewellery (for evocations).

--------------------------------------------------------------------------------
f0ddecf054 | Neil Moore | 2012-06-12 22:39:00 -0400

Include known pluses in jewellery item_info.
Previously this was happening only if the item type was unknown but
the pluses were known (which shouldn't happen anyway).  This corrects
the 'x' command claiming that a monster has a +0 ring when the pluses
are actually known.

Also include plus2, which was being completely ignored.

--------------------------------------------------------------------------------
aeca2b22ee | Neil Moore | 2012-06-12 22:18:15 -0400

Assert that monster jewellery is jewellery.

--------------------------------------------------------------------------------
d75daacfcc | Neil Moore | 2012-06-12 22:14:24 -0400

Include slaying/inacc bonus in monster jewellery value.

--------------------------------------------------------------------------------
e6e05f7f51 | Neil Moore | 2012-06-12 22:13:45 -0400

Indentation and comment fix.

--------------------------------------------------------------------------------
374546e8ec | Neil Moore | 2012-06-12 21:53:53 -0400

Allow giving jewellery in wizmode.

--------------------------------------------------------------------------------
29d3f628dc | Steve Melenchuk | 2012-06-12 17:48:47 -0400

Allow monsters to wear rings and amulets.

--------------------------------------------------------------------------------
2f78c119a9 | Florian Diebold | 2012-06-12 22:57:55 +0200

Improved enchanted ring and splint mail tiles by roctavian (#5575).

--------------------------------------------------------------------------------
0b94e8fae4 | Adam Borowski | 2012-06-12 18:16:00 +0200

Fix a crash, and incorrect information.
Magical staves are not double weapons, and thus they never suffer the half
base dam penalty.  They may be 1.5-handed (halflings), or 2-handed
(spriggans).

--------------------------------------------------------------------------------
0ec3891de5 | Florian Diebold | 2012-06-12 18:10:57 +0200

Fix #5334 (green autopickup border in tiles not always displaying).

--------------------------------------------------------------------------------
38c4a571b6 | Raphael Langella | 2012-06-12 17:21:47 +0200

Shorten a variable's name.

--------------------------------------------------------------------------------
05d7c051ce | Raphael Langella | 2012-06-12 17:16:46 +0200

Use a list instead of an array to store Vehumet's recent gifts.
Also, use it as a queue and drop older entries when max size is reach (10)
instead of aging the queue manually.

--------------------------------------------------------------------------------
51b0b02163 | Neil Moore | 2012-06-12 10:56:47 -0400

Add Thann and Grunt to crawl-ref-cia and CREDITS.txt.

--------------------------------------------------------------------------------
ae81a1f9bf | Neil Moore | 2012-06-12 10:27:45 -0400

Replace n_rpl with n_adj for some vault monsters.
Mountain/hill dwarves and grey elves.  This fixes some strangeness
in their reanimated corpses (it was "mountain dwarf the dwarf zombie"
even with n_spe; now it's "dwarf zombie").

Give n_noc to the cathedral megabats for the same reason.

The only remaining cases of n_rpl + n_spe without n_noc are undead who
cannot leave corpses.

Probably the n_* flags could do with some cleaning up.

--------------------------------------------------------------------------------
1c455f9a7b | Adam Borowski | 2012-06-12 15:13:29 +0200

Revert the partial removal of rods of smiting, for now.
I want to add rods of lightning instead, rods of smiting haven't been fully
removed because of issues with tile enums, there's no need to remove and
then re-add the enum -- but rods of lightning are not coded yet.

--------------------------------------------------------------------------------
fea71b5179 | Adam Borowski | 2012-06-12 15:10:27 +0200

Make staves and rods separate object classes.
They have about no overlap, more than both being usable as weapons.  A vast
majority of uses immediately checked item_is_rod()/item_is_staff().

I kept them shared for acquirement, for now.

Also, eliminate rods of smiting -- hardly ever used, problematic theme-wise
as they use "divine providence" without worship.  Keeping rods of striking
for now, could be used to fix artificer problems.  Adding/removing rod enums
is a mess due to tile handling, renaming ROD_SMITING to ROD_LIGHTNING for now.

--------------------------------------------------------------------------------
13f14d0f7d | elliptic | 2012-06-12 01:45:13 -0400

Make staff of energy decrease spell hunger to 1/3 instead of 1/2.
Spell hunger is almost never significant enough for 1/2 to be any good. Let's
see if this works better.

--------------------------------------------------------------------------------
34b45f775f | Adam Borowski | 2012-06-12 01:27:42 +0200

Antialias the Vaults entrance.

--------------------------------------------------------------------------------
03b63e8658 | Adam Borowski | 2012-06-12 01:27:32 +0200

Allow deleting/overwriting save chunks while they're being read.
Crawl itself doesn't ever read and write at the same time (I doubt it ever
does more than one operation at once, too), but it just feels wrong to have
a known data-loss bug in code that's separable from the rest of Crawl.

By reusing already instantiated STL templates, this actually reduces binary
size somewhat.

This reverts commit ed9508da27c3ef0803bfd1e600465a5eb6566441.

--------------------------------------------------------------------------------
734513d704 | Raphael Langella | 2012-06-12 00:43:35 +0200

Indentation fix.

--------------------------------------------------------------------------------
fb605cc96d | Raphael Langella | 2012-06-12 00:28:45 +0200

Save Vehumet gifting data.

--------------------------------------------------------------------------------
fd0e49cbea | Raphael Langella | 2012-06-11 23:52:30 +0200

Merge branch 'master' into vehumet
Conflicts:
	crawl-ref/source/dat/descript/ability.txt
	crawl-ref/source/dat/descript/gods.txt
	crawl-ref/source/religion.cc

--------------------------------------------------------------------------------
2162151f39 | Neil Moore | 2012-06-11 10:07:51 -0400

Really make the guaranteed pan/abyss portal not mimics.

--------------------------------------------------------------------------------
89eb7e90b6 | Translators | 2012-06-11 14:18:21 +0200

Transifex formatting fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
6476c882af | Adam Borowski | 2012-06-11 13:48:23 +0200

Add a comment how to allow readers to linger past commits.
I'm not putting that in, as Crawl currently doesn't need this and every use
of std::map for a new pair of types enlarges the executable by 30KB stripped,
1.1MB unstripped.

--------------------------------------------------------------------------------
12629f3cae | thann | 2012-06-11 13:38:29 +0200

in autopickup_menu '-' now toggles known/unknown
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
72b27e1228 | Adam Borowski | 2012-06-11 03:54:45 +0200

Do the whole of X[] save handling as one transaction.
Actually, not even one as it won't be committed until the next time you go
to a new level.  Subsequent writes of a given level in a transaction
overwrite the old uncommitted version.

This sadly can double the size of saves, if someone views all existing levels
in a game.

--------------------------------------------------------------------------------
ed9508da27 | Adam Borowski | 2012-06-11 03:54:45 +0200

Assert out when committing a save when there are readers or writers.
Crawl never needs that, but if that ever changes (or someone reuses the
transactional filesystem-in-a-file elsewhere), there are potential problems
that, while easy to fix, would require that effort.

--------------------------------------------------------------------------------
54bb2f12a0 | Adam Borowski | 2012-06-11 03:54:44 +0200

Require db aliases to have no < inside.
This should remove any cases where something coloured would be taken for an
alias, as there's no point in a colour code but no content.

This is an equivalent of /^<[^<\n]*>\n$/s.

--------------------------------------------------------------------------------
a50a8c6514 | Michael Gagno | 2012-06-10 18:18:46 -0700

Convert some fungi in entry vaults to toadstools.

--------------------------------------------------------------------------------
473c05597a | Raphael Langella | 2012-06-10 23:58:02 +0200

Revert "Fix unknown items sometimes not showing the green autopickup square."
Sorry, this is buggy (#5754 and #5757)

--------------------------------------------------------------------------------
cf79d47f52 | Raphael Langella | 2012-06-10 21:52:02 +0200

Don't show selected item count in autopickup menu.

--------------------------------------------------------------------------------
2dd1f84e90 | Adam Borowski | 2012-06-10 11:05:47 +0200

Drop the dc- prefix from three tile directory names, for consistency.

--------------------------------------------------------------------------------
ee7a1cff33 | elliptic | 2012-06-09 20:10:18 -0400

Remove scrolls of detect curse.
These scrolls simultaneously encouraged scummy behavior (collecting dozens of
weapons/armour to detect curses on all of them at once) and were pretty much
junk after early game (because remove curse is common and you probably don't
actually want to try out every weapon in the game because of distortion
anyway).

I tried to change other scroll generation probabilities as little as possible,
but this means something like a 3-5% increase for most scrolls, and about 15%
for remove curse (as very partial compensation). The scroll generation code is
a bit cleaner now.

Upgraded games have detect curse converted to remove curse.

--------------------------------------------------------------------------------
c56721eb37 | Adam Borowski | 2012-06-09 21:32:08 +0200

Kludge around coloured database entries not showing.
One-line ones are still broken, this kludge assumes everything that matches
/^<([^\n]*)>\n$/s is an alias reference.

The choice of syntax wasn't most fortunate...

--------------------------------------------------------------------------------
5b657aeec8 | Neil Moore | 2012-06-09 13:55:51 -0400

Remove amulet of controlled flight, mostly.
No longer randomly generate them, and remove them from the cloud mage's
loot.  They now exist only for amulet of the Air, old saves, and an
abyssal junk pile.

--------------------------------------------------------------------------------
d9cf04e6e9 | Neil Moore | 2012-06-09 12:55:12 -0400

Check autopickup options in check_item_knowledge.
you.force_pickup[][] is only initialized (by _is_option_autopickup())
when encountering an item of that type; if you load a game from an old
save and display the item-knowledge menu before encountering an excepted
item, the table will be incorrectly initialized based on the item's base
type.

Instead, call item_needs_autopickup() on the temporary item; this
function in turn calls _is_option_autopickup() and therefore initialises
the relevant entries of you.force_pickup[][].

--------------------------------------------------------------------------------
4d3f85ce39 | Raphael Langella | 2012-06-09 17:45:17 +0200

Reduce the help line length to fit into 80 columns.

--------------------------------------------------------------------------------
4a50efb578 | Raphael Langella | 2012-06-09 17:45:17 +0200

Formatting fixes.

--------------------------------------------------------------------------------
5f724f648c | Raphael Langella | 2012-06-09 17:45:15 +0200

Shorten a variable name.

--------------------------------------------------------------------------------
00b47bb8e5 | Raphael Langella | 2012-06-09 17:45:14 +0200

Fix unknown items sometimes not showing the green autopickup square.
Happens if the first item of the category has been disabled from autopickup.

--------------------------------------------------------------------------------
1d8a11f940 | Thann | 2012-06-09 17:45:13 +0200

Autopickup menu.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
ee0f5a453e | Michael Gagno | 2012-06-09 00:38:58 -0700

Ice elementalist unique: Fannar. (sgrunt)
Gets two new monster spells: Ozocubu's Armour and Ozocubu's Refrigeration.
Also comes with a new tile (roctavian) and description text (ontoclasm).

He's currently disabled until a balance issue is worked out: namely, what to
do about his guaranteed staff of cold. See Mantis 5740 for additional
comments and discussion.

--------------------------------------------------------------------------------
046f7596c4 | Adam Borowski | 2012-06-09 00:57:02 +0200

Horny cat tiles (ontoclasm).
Checks for inappropriate combinations (possible due to the doll editor) are
really ugly, and in the editor you get series of tile parts that won't show
up.  That's nothing new (nagas, etc), but points out how the doll editor is
unmaintained.

--------------------------------------------------------------------------------
79308c8751 | Adam Borowski | 2012-06-08 22:30:00 +0200

Purge a set of old bad recoloured wall tiles.
They used to be Hive walls ages ago, before getting replaced.

--------------------------------------------------------------------------------
cd972ce356 | Adam Borowski | 2012-06-08 22:30:00 +0200

Remove remnants of old merfolk tiles (for monsters).
Players still use that exact tile.  Monsters referenced it for corpses, but
the plain merfolk one works for a corpse too.

Also, rename merfolk_fighter to merfolk, to prevent taking it for some vault
redefinition.

--------------------------------------------------------------------------------
2583546227 | Adam Borowski | 2012-06-08 22:30:00 +0200

Remove or move to UNUSED/ unused tile icons.

--------------------------------------------------------------------------------
f26b0288a9 | Adam Borowski | 2012-06-08 22:30:00 +0200

Revert "Re-add the rltiles alphabetic tiles to the repository."
Never had been used, and if we want to label icons with letters, all
platforms have more generic ways of doing that already.  These lack anything
but ASCII letters, too.

This reverts commit 7415e3e25a5acb8c74796020b444ba22ed5c4466.

--------------------------------------------------------------------------------
c6e73f0c71 | Neil Moore | 2012-06-08 11:04:28 -0400

Specify a kaux for static discharge self-kills.

--------------------------------------------------------------------------------
0139a993d0 | Adam Borowski | 2012-06-07 20:43:18 +0200

A way to check which tiles are not included in the textures.
A tile can be unused in two ways:
1. it is not loaded from .png files (and gets no enum)
2. it has an enum but is not referenced anywhere else

This allows checking 1.

--------------------------------------------------------------------------------
9c43b842c2 | Adam Borowski | 2012-06-07 18:55:30 +0200

Remove an unused spell, Summon Greater Holy.
It summoned as much as Caniforms did, except that they were silver stars,
daevas and pearl dragons...

It was intended to be used for spirits, but they use a different implementation,
that also summons weaker stuff than that (a silver star is an equivalent of an
orb of fire), and only one.

--------------------------------------------------------------------------------
c7b6d5f2d0 | Adam Borowski | 2012-06-07 18:28:55 +0200

Greatly reduce Caniforms spam.
Also, make it so a single cast gives monsters of the same type (odd to have
bears and wolves in one pack).

--------------------------------------------------------------------------------
c48fdd45ff | Florian Diebold | 2012-06-07 17:56:27 +0200

Log the webtiles chat in the game notes.

--------------------------------------------------------------------------------
065df51540 | Michael Gagno | 2012-06-07 08:02:51 -0700

Opposites gauntlet. (HangedMan)

--------------------------------------------------------------------------------
a72ea0100b | Florian Diebold | 2012-06-07 16:51:53 +0200

Fix #5363 (disappearing tiles in Opera).
This was caused by Opera handling trailing commas in arrays the IE
way (though, curiously, only when eval is used), meaning that it adds
an undefined entry to the array. Avoiding the trailing commas would
complicate the crawl code, though. This is easier.

--------------------------------------------------------------------------------
ea0fc61576 | Florian Diebold | 2012-06-07 16:51:53 +0200

Fix some enum values in webtiles.

--------------------------------------------------------------------------------
20043be797 | Michael Gagno | 2012-06-07 05:48:36 -0700

Clean up the headers in some of wad's wood vaults.
Many of them had lines that did nothing, including several inactive fog
machines. One appeared to be missing a fog machine. Thanks to |amethyst for
pointing this out.

--------------------------------------------------------------------------------
da20b2e3a4 | Adam Borowski | 2012-06-07 12:55:37 +0200

Fix a --mapstat crash on "acquire foo".

--------------------------------------------------------------------------------
77d4abcafb | Adam Borowski | 2012-06-07 11:43:21 +0200

Fix a --mapstat crash with > 8 octorings.
Data such as uniques or artefacts generated is cleared between generator runs,
and there is enough runs for oddities like this.

--------------------------------------------------------------------------------
1e7bede887 | Adam Borowski | 2012-06-07 11:12:35 +0200

Unbreak --mapstat.

--------------------------------------------------------------------------------
ed08f8685f | Michael Gagno | 2012-06-07 01:55:42 -0700

Tag new cosmetic vaults with 'extra'.

--------------------------------------------------------------------------------
d36bb90354 | Michael Gagno | 2012-06-07 01:24:45 -0700

5 floating vaults and a minivault. (HangedMan)

--------------------------------------------------------------------------------
c69fa8047a | Michael Gagno | 2012-06-07 01:23:58 -0700

A Zot vault with greater mummies and butterflies. (HangedMan)

--------------------------------------------------------------------------------
5dda90ffb4 | Michael Gagno | 2012-06-07 01:23:23 -0700

An abyss rune vault. (HangedMan)
Yet Another Mimic Vault. I've given it a lower weight than other abyss rune
vaults.

--------------------------------------------------------------------------------
c5fbdc2c2a | Michael Gagno | 2012-06-07 00:41:22 -0700

Slaughterboxes encompass vault. (HangedMan)
This uses a strange subvaulting technique, apparently because HangedMan ran
out of letters he could use. This is currently only used for a small effect,
but it could potentially be expanded to make the central area more random.

--------------------------------------------------------------------------------
4cb703f8c0 | Michael Gagno | 2012-06-07 00:36:31 -0700

9 minivaults. (wad)

--------------------------------------------------------------------------------
15d571ce77 | Michael Gagno | 2012-06-07 00:35:44 -0700

11 floating vaults. (wad)

--------------------------------------------------------------------------------
607aae694e | Michael Gagno | 2012-06-06 23:22:43 -0700

22 forest themed vaults. (wad)
These are in Lair.des, but they are also eligible to spawn in Forest. A
couple of these vaults are rather large. I've allowed these ones to spawn in
D, since it's extremely unlikely for them to spawn in Lair.

--------------------------------------------------------------------------------
6e937c68ad | Michael Gagno | 2012-06-06 21:21:23 -0700

Make rods yellow, to differentiate them from staves.

--------------------------------------------------------------------------------
ba5704c123 | Florian Diebold | 2012-06-07 01:41:47 +0200

Tweak spider wall tile weights a tiny bit.

--------------------------------------------------------------------------------
32893d48c6 | Raphael Langella | 2012-06-06 17:46:42 +0200

Actually allow cursed items to have a cosmetic flag too.
--amend works better when you add the changes first...

--------------------------------------------------------------------------------
95bcd365aa | Raphael Langella | 2012-06-06 17:31:30 +0200

Allow cursed items to have a cosmetic flag too.
I haven't unified the chance between weapon and armour. Cursed weapons
have only one chance in 3 to have the cosmetic flag while armour has
2 chances in 3. Maybe it's fine though, opinions?
I did remove the weird additional chance for racial weapons.

This reverts commit e59807da8f773d5940336ca0edb4342f322dd968.

--------------------------------------------------------------------------------
e59807da8f | Raphael Langella | 2012-06-06 17:02:29 +0200

Remove the chance for unbranded enchanted items to have a cosmetic flag.

--------------------------------------------------------------------------------
7e5f9fd891 | Raphael Langella | 2012-06-06 12:14:23 +0200

Add an option to checkwhite to change the tab size.
Since crawl coding convention use 4 spaces indentation, people using tabs
usually set them to 4 spaces. In my experience reviewing and pushing patches,
I've actually never seen any patch with tabs of 8 spaces size.

--------------------------------------------------------------------------------
3afda02692 | Raphael Langella | 2012-06-05 17:30:46 +0200

Fix a mangled greek description.

--------------------------------------------------------------------------------
f609fe6acc | Adam Borowski | 2012-06-05 16:42:50 +0200

Let Sunlight linger for a while, don't track monsters with spotlights.
It was strange that the light would magically follow everyone who was in the
initial spot for a duration -- with five independent spotlights no less.
Sunlight now creates a stationary halo instead.

Evaporating water is no longer instant, but the area potentially evaporated
is bigger, to compensate.  The old cross-shaped area is guaranteed, the rest
of haloed stuff (ie, corners of the 3x3 space) have a 50% chance.

Also, the 1/100 chance to spawn a plant per evaporated square of shallow
water is no more, it was too obscure.

--------------------------------------------------------------------------------
92f49e89f3 | Adam Borowski | 2012-06-05 16:42:50 +0200

Mention that Rain can spawn plants and fungi outside of its direct radius.

--------------------------------------------------------------------------------
36e84d2df7 | Adam Borowski | 2012-06-05 16:42:49 +0200

Add a comment.

--------------------------------------------------------------------------------
621a152eac | Neil Moore | 2012-06-05 07:51:33 -0400

Fix message for death to one's own IOOD (sgrunt).

--------------------------------------------------------------------------------
143ef30020 | Adam Borowski | 2012-06-05 02:13:20 +0200

Add a tile needed for one of wad's vaults.

--------------------------------------------------------------------------------
20dcbb6447 | Adam Borowski | 2012-06-05 01:45:22 +0200

Put a bunch of wad's plant tiles into UNUSED/, for use in vaults, perhaps.
Flytrap and magic mushrooms are not fit for re-tiling but look like new
monster ideas instead.

--------------------------------------------------------------------------------
7dbfdb483f | Adam Borowski | 2012-06-05 01:39:52 +0200

wad's set of floor tiles.
Probably too bright, but let's see how they'd look in their intended use.

--------------------------------------------------------------------------------
04fdece557 | Adam Borowski | 2012-06-05 01:06:50 +0200

wad's new plant tiles.
The two big leaved-ones look a bit out of place in a big clump of plants,
opinions?

--------------------------------------------------------------------------------
6724fd4b95 | Adam Borowski | 2012-06-05 00:07:03 +0200

Fix Okawaru not giving messages on accepting kills.

--------------------------------------------------------------------------------
d28eff8887 | Adam Borowski | 2012-06-04 23:36:39 +0200

If show_game_turns is set, label the display as Time: not Turn:

--------------------------------------------------------------------------------
46378c5099 | Neil Moore | 2012-06-04 17:33:23 -0400

Revert "Show gold after shop purchases."
You can get the amount spent from the notes, and your current amount
in any of a number of ways.

--------------------------------------------------------------------------------
1199df84f6 | Neil Moore | 2012-06-04 17:19:11 -0400

Show gold after shop purchases.
This is after purchasing each batch of items, not after the entire
shopping trip (though of course the messages won't be visible until
then).  Perhaps that should change.

--------------------------------------------------------------------------------
2ac40e9871 | Jon Knapp | 2012-06-04 16:57:36 -0400

List items acquired from shops.

--------------------------------------------------------------------------------
fead94a5db | David Lawrence Ramsey | 2012-06-04 14:37:28 -0500

Fix wording and punctuation of more new descriptions.

--------------------------------------------------------------------------------
71984a5f51 | Adam Borowski | 2012-06-04 14:03:31 +0200

A desc for fruit trees (apple, apricot, citrus, pyrus, soapberry).

--------------------------------------------------------------------------------
400a532dab | Adam Borowski | 2012-06-04 14:03:28 +0200

Descs for renamed plants other than blue_anna's fruiting ones.

--------------------------------------------------------------------------------
2c5830c08f | Adam Borowski | 2012-06-04 13:35:51 +0200

A desc for Eringya's golem.

--------------------------------------------------------------------------------
b0d4cc3863 | Adam Borowski | 2012-06-04 13:28:22 +0200

Temporarily degrade "greater ghost moth", until due comes up with something.
A custom name for just +15% hp and no other features merely sows confusion.
Please revert once the moth is somehow improved.

--------------------------------------------------------------------------------
5e95d302fe | Adam Borowski | 2012-06-04 13:26:28 +0200

Descs for the rest of renamed statues.
(Technically, Wucad Mu is one too, but that one deserves something better
than I'd write.)

--------------------------------------------------------------------------------
fa0a1013a1 | Adam Borowski | 2012-06-04 11:52:13 +0200

Descs for oklob plant wizards (many kinds) from Sprint.
Looks like I'm not the only person with an acute sanity deficiency here...

--------------------------------------------------------------------------------
087fa8fdd0 | Adam Borowski | 2012-06-04 11:33:50 +0200

A pair of quotes for "bat".

--------------------------------------------------------------------------------
6da496a230 | Adam Borowski | 2012-06-04 11:15:40 +0200

Remove invalid quote links to <fire dragon> and <snake>.
Neither of these targets exist (both by having no quote and not having a
monster in the first place), and are already handled by per-glyph quotes
for "D" and "S", respectively.

--------------------------------------------------------------------------------
52f3b62b3b | Adam Borowski | 2012-06-04 11:08:27 +0200

Link oklob sapling to <oklob plant> not <oklob>.
Also, <regular bat> -> <bat>, even though there is none there.

--------------------------------------------------------------------------------
d782292725 | Adam Borowski | 2012-06-04 10:35:04 +0200

Rename the quote for imp -> crimson imp, fix cacodemon capitalization.

--------------------------------------------------------------------------------
1bb35b5967 | Adam Borowski | 2012-06-04 10:33:23 +0200

db_lint: point out quotes for non-existant keys.
These are currently defined as "without a description", which is probably
good enough.

--------------------------------------------------------------------------------
53978678a3 | Adam Borowski | 2012-06-04 05:06:31 +0200

db_lint: mention the source of dangling links.

--------------------------------------------------------------------------------
c9076ee099 | Adam Borowski | 2012-06-04 04:56:52 +0200

db_lint: show links with missing targets.

--------------------------------------------------------------------------------
4d32176f6d | Adam Borowski | 2012-06-04 04:56:52 +0200

Link Golubria's crystal walls to regular green ones.
There's no reference to colour anywhere.

--------------------------------------------------------------------------------
3fd3e2b093 | David Lawrence Ramsey | 2012-06-03 21:28:59 -0500

Fix wording of changelog entry.

--------------------------------------------------------------------------------
6bc81aaed3 | David Lawrence Ramsey | 2012-06-03 21:27:21 -0500

Fix wording of hell-exiting gateway description.

--------------------------------------------------------------------------------
182ce14759 | Adam Borowski | 2012-06-04 04:22:58 +0200

Changelog, up to 0.11-a0-2142-gc0f278e

--------------------------------------------------------------------------------
c0f278eb2b | Adam Borowski | 2012-06-04 03:49:16 +0200

Grant Okawaru piety (and gifts) for quality not quantity.
This is currently problematic on dungeon levels up to around D:8 as you find
loads of popcorn interspersed with few actual challenges (which in turn are
often enough to kill you), which gives hardly any piety.

I'm forcing this for now to give us an incentive to do something to monster
generation, if it won't be fixed we can disable this for a yet another
release.

Note that contrary to what some think, this formula would make little sense
for most other gods, especially that they already give more piety for higher
HD enemies.  Making it almost exclusive for hardest battles can be explained
for Okawaru, other gods have no theme reasons to reward recklessly running
into danger.  It'd need major balancing, too.

--------------------------------------------------------------------------------
515d3b260f | Adam Borowski | 2012-06-04 03:26:47 +0200

Descs for unobvious portals.
If we requested descs for those, folks wouldn't know where they can spawn.

--------------------------------------------------------------------------------
e16b99a2ab | Adam Borowski | 2012-06-04 03:10:58 +0200

Desc for wizlab stone arches.
For some reason, they're not "ancient" like everywhere else.

--------------------------------------------------------------------------------
d5e5d58173 | Adam Borowski | 2012-06-04 02:39:13 +0200

A mostly manual Transifex sync.
It looks like it can't do anything even resembling a merge, instead
overwriting everything with its version.  Thus, what we need to do is:
* git checkout $LAST_TRANSIFEX_SYNC
* make tx-pull
* SYNC=`git rev-parse HEAD`
* git checkout master
* git cherry-pick $SYNC
which seems to be scriptable, and will properly handle conflicts.  Assuming
there was a tx-push right after the last sync, that is (it wants to delete
.pl desc for Excruciating Wounds), and it can't handle renames (like .es
A detected closed secret door -> A detected secret door).

--------------------------------------------------------------------------------
0442aa2010 | Adam Borowski | 2012-06-04 02:29:31 +0200

Force formatting into transifex' style.
Done partially by hand due to embedded lua.

--------------------------------------------------------------------------------
bdfe6b9b77 | Adam Borowski | 2012-06-04 02:07:46 +0200

Get rid of some redundancy, fix book names in Lua.

--------------------------------------------------------------------------------
d51b23861e | David Lawrence Ramsey | 2012-06-03 18:11:13 -0500

Reword and fix typos in some new descriptions.

--------------------------------------------------------------------------------
7c1061ed1a | Adam Borowski | 2012-06-03 19:22:13 +0200

roctavian's branch entry tiles for: Orc, Lair, Vaults, Crypt, Tomb.

--------------------------------------------------------------------------------
f63247b94a | Adam Borowski | 2012-06-03 19:22:13 +0200

Remove redundant dngn_ from tile file names.
It was inconsistently present or missing, and the directory is already named
dc-dngn.

--------------------------------------------------------------------------------
9515ce7c46 | Adam Borowski | 2012-06-03 19:22:13 +0200

Actually remove a monster flag instead of commenting it out.
I first commented it out, as it seemed to be "not used yet", and only then
checked that it's not used anymore.

--------------------------------------------------------------------------------
e60b4c92f7 | Adam Borowski | 2012-06-03 19:22:13 +0200

Fix a typo in a quote.
I should have at least proofread it, instead of mindlessly copying from a
lyrics page.  I can't seem to find my cassette to compare the official
spelling, but I can't think of a reason it would be intentional.

--------------------------------------------------------------------------------
b6d9be67be | Adam Borowski | 2012-06-03 19:22:13 +0200

Let gather_mons pick up mystery meat simulacra.
They don't need descriptions, but "foo simulacrum" still needs a translation
for the name.

--------------------------------------------------------------------------------
74275eb129 | Neil Moore | 2012-06-03 13:04:20 -0400

Attribute a translated quote.

--------------------------------------------------------------------------------
b288258bb6 | Adam Borowski | 2012-06-03 18:15:13 +0200

Don't show a name tag (in tiles) for n_spe monsters.
These typically come in bunches, making the display way too busy.
It might be better to use a separate flag for this, opinions?

This does NOT work in webtiles yet.

--------------------------------------------------------------------------------
3e0a8e29cd | Adam Borowski | 2012-06-03 18:15:12 +0200

A vault featuring a bony firing squad.

--------------------------------------------------------------------------------
86ddcda78a | Adam Borowski | 2012-06-03 18:15:12 +0200

A quote for profane servitors.

--------------------------------------------------------------------------------
4f52742141 | Adam Borowski | 2012-06-03 18:15:12 +0200

A .pl quote for insubstantial wisps.

--------------------------------------------------------------------------------
ca3591d474 | Adam Borowski | 2012-06-03 18:15:12 +0200

Remove an unused monster flag.
It was used in the initial implementation of demonic guardians.

--------------------------------------------------------------------------------
4021c0150a | Adam Borowski | 2012-06-03 18:15:12 +0200

More mystery meats for Simulacrum.

--------------------------------------------------------------------------------
86f6b87d18 | Adam Borowski | 2012-06-03 18:15:12 +0200

A quote for ghost moths.

--------------------------------------------------------------------------------
938cf9b466 | Adam Borowski | 2012-06-03 18:15:07 +0200

A bowdlerized quote from Oglaf for potions of poison (warning: SFW)

--------------------------------------------------------------------------------
77fdbcba62 | Adam Borowski | 2012-06-03 18:14:46 +0200

roctavian's new tile for bread.

--------------------------------------------------------------------------------
4b40fa763d | Neil Moore | 2012-06-03 12:04:19 -0400

Indicated gained gold pieces on pickup, too.

--------------------------------------------------------------------------------
054e26e1bb | Adam Borowski | 2012-06-03 14:22:17 +0200

roctavian's tiles for inept and ravenous mimics.

--------------------------------------------------------------------------------
cfc69f10b5 | Adam Borowski | 2012-06-03 13:07:37 +0200

Descs for wizard/etc statues.

--------------------------------------------------------------------------------
7b3cafd294 | Adam Borowski | 2012-06-03 12:43:18 +0200

Descs for redefined spriggans.

--------------------------------------------------------------------------------
7f1b6da8d0 | Adam Borowski | 2012-06-03 12:20:38 +0200

Don't claim that mere spores are the pinnacle of evolution.

--------------------------------------------------------------------------------
41506499e7 | Adam Borowski | 2012-06-03 12:20:38 +0200

A desc for hyperactive ballistos.
This especially matters for Fedhas worshippers, who don't get information on
their own god abilities anywhere.

--------------------------------------------------------------------------------
aed995a4a2 | Adam Borowski | 2012-06-03 12:20:38 +0200

Remove the desc for spriggan warpers.
Even the enum is gone since Dec 2010.

Assassins are possible, even though they'd need quite a bit of code, so
keeping their desc for now.

--------------------------------------------------------------------------------
7f808a859f | Adam Borowski | 2012-06-03 12:20:38 +0200

Get rid of Admiral Ackbar.
Even before traps becoming "mechanical traps" when out of LOS were fixed,
they could never show up as just "a trap".

--------------------------------------------------------------------------------
173027c3f1 | Michael Gagno | 2012-06-03 02:56:29 -0700

Use ORIENT: northwest in grunt_spider_rune_circles.
Was ORIENT: north, which can look weird.

--------------------------------------------------------------------------------
09a5fed407 | Michael Gagno | 2012-06-03 02:51:25 -0700

Reduce the chance of zot_entry_traditional placing a mimic.
It was brought up in ##crawl-dev that the original chance was too high.

--------------------------------------------------------------------------------
e1fa4bc138 | Michael Gagno | 2012-06-03 01:36:10 -0700

New Spider:5 map. (sgrunt)
Has not yet been tested for balancing.

--------------------------------------------------------------------------------
b4667f5780 | Michael Gagno | 2012-06-03 01:23:12 -0700

A new Snake ending. (sgrunt)
May still need balancing.

--------------------------------------------------------------------------------
cc1b29409e | Zannick | 2012-06-03 01:14:40 -0700

Add a Zot portal mimic.

--------------------------------------------------------------------------------
85ed3c77dd | Michael Gagno | 2012-06-03 01:09:10 -0700

Aquarium serial vault. (infiniplex)
This thing is huge... one of the most impressive serial vaults I've seen.
It's mainly just scenery, but it is extremely varied and nicely randomized.
Due to its size and complexity, I haven't gone over the entire thing. But
from my testing, there don't seem to be any bugs.

--------------------------------------------------------------------------------
15c71e84f3 | Michael Gagno | 2012-06-03 00:59:30 -0700

A tiered Vaults entry. (sgrunt)

--------------------------------------------------------------------------------
c612a1abf9 | Michael Gagno | 2012-06-03 00:55:53 -0700

Description for deep elf watchman. (sgrunt)

--------------------------------------------------------------------------------
d19ab24784 | Michael Gagno | 2012-06-03 00:54:05 -0700

A Lair entry guarded by a deep elf. (sgrunt)

--------------------------------------------------------------------------------
a54f877ed0 | Michael Gagno | 2012-06-03 00:36:37 -0700

An entrance to Hell guarded by a statue. (sgrunt)

--------------------------------------------------------------------------------
d262814469 | Adam Borowski | 2012-06-03 00:52:45 +0200

Make COMPILE_CHECK work both with --std=c++11 and on gcc-4.8.
I could just use the sizeof() trick everywhere, but:

* the old way produced a better message on gcc before 4.8 (it included the
  words "compile_check")

* if C++11 has explicit support for this (static_assert()), we can use it
  when building in that mode (not the default for Crawl)

--------------------------------------------------------------------------------
d6b31b0f73 | Adam Borowski | 2012-06-02 14:20:20 +0200

Cap spell and beam ranges at the actual LOS radius rather than LOS_RADIUS.

--------------------------------------------------------------------------------
3f4b90a9df | Adam Borowski | 2012-06-02 14:02:27 +0200

Don't let Sublimation of Blood work on unknown potions.
Since the spell may be directed either at a potion or at your own body --
but not both at once, it's pointless to cast it at unknown potions, unless
you're scumming for id.

--------------------------------------------------------------------------------
7b7400903b | elliptic | 2012-06-02 05:05:30 -0400

Make Divine Vigour raise HP/MP proportionally.
Previously a character with 27 Invocations and 300 MHP would gain 150 HP from
Divine Vigour even if they were at only 1 HP. This made it feel just like
another healing ability, and a ridiculously good one at that. It was also
inconsistent with how HP is changed by other effects that increase your MHP
(berserk, forms, gaining a level).

Now your HP/MHP ratio remains approximately the same when you use the ability,
and the same for MP... so if you want to gain 150 HP, you need to use it at
full health.

--------------------------------------------------------------------------------
d3bace774b | David Lawrence Ramsey | 2012-06-01 22:58:06 -0500

Adjust wording and punctuation of new descriptions.

--------------------------------------------------------------------------------
03eeda0053 | Adam Borowski | 2012-06-02 05:10:09 +0200

Don't lose identity of traps when out of LOS.
Also, fix an info leak of freshly dug/etc areas.

--------------------------------------------------------------------------------
06589fa477 | Adam Borowski | 2012-06-02 04:35:03 +0200

A desc for black sheep.
This one is probably too unhinged...

--------------------------------------------------------------------------------
a0a4260d4b | Adam Borowski | 2012-06-02 04:18:01 +0200

A desc for Zot traps.

--------------------------------------------------------------------------------
c3b670a346 | Adam Borowski | 2012-06-02 04:07:09 +0200

Descs for Cloud Mage's white crystal walls.

--------------------------------------------------------------------------------
7a7945507d | Adam Borowski | 2012-06-02 03:22:56 +0200

Make some functions static/gone.

--------------------------------------------------------------------------------
2962df2339 | Adam Borowski | 2012-06-02 01:57:18 +0200

Descs for wizards in altered mental states.

--------------------------------------------------------------------------------
4e71bc28cf | Adam Borowski | 2012-06-01 19:05:04 +0200

Give the conjurer in tengu_band a tile.
UNUSED/ has an armoured fighter, a hunter, a skald and a summoner as well,
free for taking.

--------------------------------------------------------------------------------
a763a730bc | Adam Borowski | 2012-06-01 18:36:47 +0200

Simplify the code for formatting item pluses.
Repeated ostream operations are hard to read.

--------------------------------------------------------------------------------
7451ffb83d | Adam Borowski | 2012-06-01 18:34:11 +0200

Display damaged nets as "a throwing net [torn]" rather than "a -3 throwing net".
There are three degrees: [frayed], [torn], [falling apart].

--------------------------------------------------------------------------------
abfa9f68b2 | Adam Borowski | 2012-06-01 15:55:39 +0200

Description for "altar of Beogh" ie, "orcish idol" when seen by orcs.

--------------------------------------------------------------------------------
91a59eea32 | Adam Borowski | 2012-06-01 15:38:26 +0200

Let ghosts retain ball lightning.
Pan lords use the same table, but I special cased Ball Lightning away, as
they'd clear out good parts of Ziggurats or Pan vaults for you.

--------------------------------------------------------------------------------
0bdf6309bf | Neil Moore | 2012-06-01 03:02:50 -0400

Don't lose subvault monster glyphs.
Fixes #5712.

--------------------------------------------------------------------------------
f7c09fd809 | Neil Moore | 2012-06-01 03:02:50 -0400

Don't double vault monsters.
Brown paper bag.

--------------------------------------------------------------------------------
ce0c410e38 | Adam Borowski | 2012-06-01 01:06:16 +0200

Don't try to place a renamed scroll.

--------------------------------------------------------------------------------
2d761a2458 | Neil Moore | 2012-05-31 09:03:58 -0400

Don't place band followers in vault walls.
We now make two passes over the vault, placing features and items in the
first pass, and monsters in the second.

Fixes #5412.

--------------------------------------------------------------------------------
7136bdd767 | Jon Knapp | 2012-05-31 08:22:44 -0400

Count items gained when merging a picked-up stack (Thann).
Based on https://crawl.develz.org/mantis/view.php?id=5705 with a few
changes.  For one, use "(gained N)" rather than "(+N)" for clarity.
Also, show the extra information whenever the pickup is merged with
an existing inventory slot, even if it was just one item; this way
the message distinguishes between adding one item to a stack and
picking up an entirely new stack.

--------------------------------------------------------------------------------
fe6b02f912 | Neil Moore | 2012-05-31 07:44:43 -0400

Don't place band members across walls.
They must now be within LOS_SOLID of the leader; if not, try another
position (up to the limit of 1000).

Better would be to allow followers to be placed around nearby corners
but not across walls.  One possibility would be to use (limited-depth)
pathfinding.  Another would be to require LOS_SOLID to any previous
band member, not necessarily the leader.

minmay_rotating_lava might need to be looked at, as this change
greatly affects the distribution of the hell knight band.

--------------------------------------------------------------------------------
8c7ba4369b | Neil Moore | 2012-05-31 07:44:43 -0400

Allow "any rod" in itemspecs.
Such an itemspec calls _generate_staff_item() with a special
stave_type value STAFF_RANDOM_ROD (greater than NUM_STAVES).

Perhaps it would make sense to have a way to specify "any non-rod
magical staff".  One possibility would be to interpret "any magical
staff" in that way; existing vaults could use something like "any
magical staff / any rod w:1" to reproduce the current behaviour.

It might make more sense just to split the item types, but that
would be a massive change.

--------------------------------------------------------------------------------
31e1bf3c01 | Michael Gagno | 2012-05-31 00:07:52 -0700

Misc vaults. (nicolae)

--------------------------------------------------------------------------------
56adde0213 | Michael Gagno | 2012-05-30 23:51:58 -0700

Some more Orc accident vaults. (nicolae)

--------------------------------------------------------------------------------
f50d9dcd8e | Michael Gagno | 2012-05-30 23:50:49 -0700

Two new Spider vaults. (nicolae)
Also removed a vault which felt out of place compared to the rest.

--------------------------------------------------------------------------------
be78005a71 | Michael Gagno | 2012-05-30 23:40:50 -0700

Another new orb subvault. (nicolae)

--------------------------------------------------------------------------------
bca38a398d | Michael Gagno | 2012-05-30 23:06:34 -0700

A new Orb subvault. (nicolae)

--------------------------------------------------------------------------------
08dabaeaf1 | David Lawrence Ramsey | 2012-05-30 09:07:19 -0500

Avoid unnecessary duplication of Ashenzari warning strings.

--------------------------------------------------------------------------------
9a4ba214cf | David Lawrence Ramsey | 2012-05-30 08:16:30 -0500

Reword broken pillar description.

--------------------------------------------------------------------------------
eb5f7f930c | Michael Gagno | 2012-05-30 04:33:56 -0700

Rename column_ruins.des.

--------------------------------------------------------------------------------
7ff2355b00 | Michael Gagno | 2012-05-30 04:29:37 -0700

A huge columns-themed serial vault. (infiniplex)
Comes with new feature description + quote. This is a flavour vault which
can appear in various levels with open layouts. Deeper levels will get some
special portal/altar vaults.

--------------------------------------------------------------------------------
05b8b70f30 | Michael Gagno | 2012-05-30 04:28:14 -0700

New crumbled column tiles. (ontoclasm)
For infiniplex's new serial vault.

--------------------------------------------------------------------------------
694e5a1c36 | David Lawrence Ramsey | 2012-05-30 00:45:51 -0500

Fix capitalization of some Ashenzari auto-id messages.

--------------------------------------------------------------------------------
b342e0b8f0 | elliptic | 2012-05-30 01:30:12 -0400

Don't give immunity to Sunray to invisible creatures.
Nobody who has used Fedhas's Sunlight ability to help kill invisible creatures
would expect this.

--------------------------------------------------------------------------------
cb14100033 | Adam Borowski | 2012-05-30 02:56:27 +0200

Remove vampires from Volcanoes.
A red glyph doesn't make them fit.

--------------------------------------------------------------------------------
a7c9ee28a4 | Adam Borowski | 2012-05-30 02:51:24 +0200

There is no "standard" monster set anymore, rename it to "dungeon".

--------------------------------------------------------------------------------
3d6746d95e | Adam Borowski | 2012-05-29 17:57:47 +0200

Remove a pointless comment about includes, sort them.

--------------------------------------------------------------------------------
3fa1025416 | Raphael Langella | 2012-05-29 17:40:23 +0200

Mulch large rocks like normal ammo instead of shattering them into stones.
It's very scummy to awkwardly throw them to get stones.

--------------------------------------------------------------------------------
fce397a1d5 | Adam Borowski | 2012-05-29 14:27:39 +0200

Polish descs for unrandarts.
Gotta hunt down some poet for that octoring thingy...

--------------------------------------------------------------------------------
cbdd8fec6a | Adam Borowski | 2012-05-29 13:51:09 +0200

Make it possible to use shift-tab without throwing again 
(autofight_throw_nomove=false).
Since the primary use of shift-tab is to fight in a corridor, it throwing
your backup weapon or panic dispersal out of the blue is surprising and nasty
-- especially if you just told it to not throw stuff.  I won't argue about
the default more than I already did, but remember this when you suddenly toss
something important.

--------------------------------------------------------------------------------
4612c1f067 | Adam Borowski | 2012-05-29 13:25:34 +0200

When returning from the Abyss, never place the player on a trap.

--------------------------------------------------------------------------------
17597ac35b | Adam Borowski | 2012-05-29 13:25:34 +0200

Don't move a trampler into tramplee's space until after the given attack.
This fixes crashes if either was moved off-level.  It does _not_ fix a
random monster with the same mindex continuing wuth the next attack on the
level you dropped to -- combat code is sprinkled with
attacked/defender->alive() which happily uses a stale pointer which, while
currently always pointing to an actor struct (you or menv[x]), may refer to
another monster which can happen to be alive and in range.

Also, for some reason attacker following doesn't obey traps.  This is more
fixable than it used to be, though.

--------------------------------------------------------------------------------
c57e53905d | Raphael Langella | 2012-05-29 13:14:42 +0200

Allow autofight_no_move to throw stuff when monsters are not adjacent.

--------------------------------------------------------------------------------
5e9cbf838f | David Lawrence Ramsey | 2012-05-28 19:48:07 -0500

Adjust more wording and fix capitalization in Undeadhunter's description.

--------------------------------------------------------------------------------
f7803b4e3c | Adam Borowski | 2012-05-29 01:26:48 +0200

Reword Undeadhunter's description (dpeg)

--------------------------------------------------------------------------------
85a01e295a | Adam Borowski | 2012-05-29 00:01:05 +0200

Apply MarvinPA's desc fixes to .pl

--------------------------------------------------------------------------------
7f6f37719f | Adam Borowski | 2012-05-29 00:01:04 +0200

Mention in INSTALL.txt that NO_LUA_BINDINGS is pointless.
Why do we even keep that option, again?  It forces autofight to remain an
add-on instead of being well integrated into the game itself.

--------------------------------------------------------------------------------
09a78e422f | Adam Borowski | 2012-05-29 00:00:44 +0200

A story for Undeadhunter, to describe its brand.
It does masquerade metagame history as in-world legends, which might be
acceptable or not.  Opinions?  The "revert" button is ----> that way.

--------------------------------------------------------------------------------
75ea63b01c | Adam Borowski | 2012-05-29 00:00:44 +0200

Autoinscribe weapons you id on sight via skills.

--------------------------------------------------------------------------------
67f2053e60 | Adam Borowski | 2012-05-29 00:00:44 +0200

Let Simulacrum work on jerkies, sausages and meat rations.
Since there is no requirement on the flesh being fresh -- and indeed, the
spell works on rotting chunks.  Of two options: amending the desc or
changing the spell, I've chosen the latter.  Adding new simulacra doesn't
need most of the usual work for vault monsters: no tile (beyond the shape),
no description, no special attacks, etc.

There's a question what meat rations are made of.  I wonder how sarcastic we
should go... if you want extremes, according to Louis de Funes in "the Wing
or the Thigh", it might be oil :p

--------------------------------------------------------------------------------
445fdd0911 | Adam Borowski | 2012-05-29 00:00:43 +0200

Remove an invalid comment.

--------------------------------------------------------------------------------
ced1873ddf | Adam Borowski | 2012-05-29 00:00:43 +0200

Revert "Fix ghosts not getting mids", do it another way.
It caused ghost_demons to get duplicated mids, except for those which had
their own homebrew creation functions instead of relying on common ones.

This reverts commit 4469633ff52b1bc14e50ff2f9403304341a11538.

--------------------------------------------------------------------------------
2648416421 | Adam Borowski | 2012-05-29 00:00:43 +0200

Remove a redundant check for pghosts in the Temple.

--------------------------------------------------------------------------------
605d7ec3a7 | Chris Campbell | 2012-05-28 13:09:57 +0100

Reword item adjustment prompt

--------------------------------------------------------------------------------
e469ce01d2 | Jon Knapp | 2012-05-28 13:09:57 +0100

fixed a small bug

--------------------------------------------------------------------------------
729052fdf1 | Jon Knapp | 2012-05-28 13:09:56 +0100

added adjust feature to inventory item description

--------------------------------------------------------------------------------
25d5fc9319 | elliptic | 2012-05-28 00:20:40 -0400

Put Gastronok early in Lair rather than late.
He was Lair:4-8, now Lair:1-3 where he has a chance of being interesting.

--------------------------------------------------------------------------------
f06c12cdab | elliptic | 2012-05-28 00:15:49 -0400

Put stronger uniques in Elf.
Since seeing Erica on Elf:$ really isn't very exciting. I used absdepth as a
guide for this, since it looked pretty reasonable.

--------------------------------------------------------------------------------
f5a9ceab42 | elliptic | 2012-05-27 23:58:36 -0400

Increase absdepth of Swamp/Snake/Shoals/Spider by 1, adjust unique generation 
there.
This is the old average absdepth; previously it was one lower because of
rounding down for both Lair and the S branches, so this change gives a better
approximation to the old state of matters.

Also, Boris, Mennas, and others were sad at not getting to kill people on
Swamp/Snake/Shoals/Spider:5 any more; now they can.

--------------------------------------------------------------------------------
46a6c88268 | David Lawrence Ramsey | 2012-05-27 12:46:42 -0500

Tweak wording.

--------------------------------------------------------------------------------
9aac332562 | Chris Campbell | 2012-05-27 18:19:42 +0100

Improve some scroll descriptions

--------------------------------------------------------------------------------
dfaffdb5a0 | Chris Campbell | 2012-05-27 15:50:00 +0100

Reword the unarmed attack prompt

--------------------------------------------------------------------------------
14e8fa0170 | Chris Campbell | 2012-05-27 15:49:59 +0100

Use "expiring" instead of "expires" for expiring statuses

--------------------------------------------------------------------------------
f0bb821b04 | elliptic | 2012-05-27 02:54:11 -0400

Fix Swamp unique depths being off by one.
Since Swamp entrance is now on the same level ranges as Snake/Shoals/Spider.

--------------------------------------------------------------------------------
9315452cb0 | David Lawrence Ramsey | 2012-05-26 21:04:27 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
dd31073634 | David Lawrence Ramsey | 2012-05-26 21:01:28 -0500

Constify.

--------------------------------------------------------------------------------
b943458fa7 | elliptic | 2012-05-26 19:31:26 -0400

Add "Base" to descriptions of AC/EV ratings of armour (Mantis 2406).
To hint that these numbers aren't just added onto your AC/EV.

--------------------------------------------------------------------------------
904c7319a1 | Adam Borowski | 2012-05-26 23:06:32 +0200

Move dgn.mark_game_won() to crawl., it's not related to map generation.

--------------------------------------------------------------------------------
bf921ce40c | Adam Borowski | 2012-05-26 23:06:32 +0200

Don't let people in tutorial use clua to change their skills/etc.
At that point, it's probably time to merge these with non-tutorial calls.

--------------------------------------------------------------------------------
30ce7e781b | Raphael Langella | 2012-05-26 17:15:12 +0200

Fix potions of poison not being bad in spider form (#5698).

--------------------------------------------------------------------------------
d2e4607208 | Florian Diebold | 2012-05-26 14:05:24 +0200

roctavian's cloud mage and master elementalist tiles (#4805).

--------------------------------------------------------------------------------
e646392623 | Adam Borowski | 2012-05-26 13:45:23 +0200

Purge remaining references to Jozef.

--------------------------------------------------------------------------------
e970459819 | Florian Diebold | 2012-05-26 13:24:00 +0200

Various monster tile improvements from roctavian (#4869).
New tiles for: blizzard demon, iron devil, red devil, guardian
serpent, aizul, josephine, tengu.

I also put the other tengu tiles into UNUSED so they're at hand
if/when we add more tengu monsters.

--------------------------------------------------------------------------------
637bece5b5 | Adam Borowski | 2012-05-26 11:54:10 +0200

Fix a redefined monster name/desc discrepancy.
Descs speak about a tengu, orc with a torch, dwarf with a pickaxe and a
mermaid, respectively, while the statues' names say "elemental".  At least
within our meaning of that word it's kind of impossible to make a statue of
those, as elementals are shapeless lumps of the relevant material (as
opposed to Paracelsian elementals, ie sylphs, salamanders, gnomes and
undines).

I thus renamed the statues to "foo elementalist statue", although I'm not
satisfied with that either.  Any better ideas?

--------------------------------------------------------------------------------
a4c3f310e2 | Adam Borowski | 2012-05-26 11:54:10 +0200

A clua function moninf:can_be_constricted()

--------------------------------------------------------------------------------
c7052421cd | Adam Borowski | 2012-05-26 11:54:10 +0200

Throw out Jozef and feed him to dire wallabies.
The direct reason are translation troubles with him vs Joseph, but having
no real theme nor speech doesn't help either.  He had nothing Harold doesn't
already do, and Joseph is more notable.

--------------------------------------------------------------------------------
a947d7ce77 | Adam Borowski | 2012-05-26 11:15:50 +0200

Revert "Shush another compiler warning.", replace it with inttypes.h macros.
This warning is correct -- you're feeding a 64 bit value to a format
specifier that can mean either 64 or 128 bits, depending on platform.

This reverts commit f142bfad6f59f60829fc1980bb4178f51e6a651a.

--------------------------------------------------------------------------------
2ea2ce9d98 | Adam Borowski | 2012-05-26 00:23:02 +0200

Kill some longs.
In portable code, basically every use of long or %ld/%lu/%lx is a bug.
A legitimate use in Crawl is the bit array: storing it in-memory should be
preferably done a word at a time.

--------------------------------------------------------------------------------
6de4c69b04 | Adam Borowski | 2012-05-25 23:31:28 +0200

Unify copies of code.

--------------------------------------------------------------------------------
e980534207 | Adam Borowski | 2012-05-25 23:31:28 +0200

Rename .es detected secret doors.

--------------------------------------------------------------------------------
f142bfad6f | Raphael Langella | 2012-05-25 23:23:20 +0200

Shush another compiler warning.

--------------------------------------------------------------------------------
3e8ae9f69b | Adam Borowski | 2012-05-25 22:22:19 +0200

db_lint: check branch descriptions.

--------------------------------------------------------------------------------
434edd5018 | Adam Borowski | 2012-05-25 22:20:13 +0200

Add a script missing from 0e60288d

--------------------------------------------------------------------------------
edc0fc2be4 | Adam Borowski | 2012-05-25 22:00:16 +0200

db_lint: allow checking languages other than English, or a subset of files.
I guess the parsing for whether a file is selected for checking is a wee bit
of an overkill.  It allows full filenames, base part ("unrand"), dir part
("descript", "database"), dir/base ("descript/unrand").

For languages other than English, a description file totally missing is not
considered an error (even if listed for checking), but if it exists at all,
missing descriptions are errors (currently for features, unrand, cards,
monsters).

--------------------------------------------------------------------------------
0e60288d31 | Adam Borowski | 2012-05-25 21:13:21 +0200

db_lint: check for undescribed features.
Some of them are so obvious that no description is really needed.  Should we
add one anyway, or add ignores for them?

The mysterious exits are:
"A gateway back into the Dungeon"
    -exit from the Vestibule of Hell
"A portal leading out of here"
    -exit from wizlabs
"An empty arch of stone"
    -Eringya's wizlab (why is "ancient" bad?)

--------------------------------------------------------------------------------
13d4b1cc02 | Adam Borowski | 2012-05-25 20:59:16 +0200

Don't distinguish between "{open,closed} detected secret door"s.
No open ones can possibly be secret, there is no enum for that.

--------------------------------------------------------------------------------
2239a63b50 | Adam Borowski | 2012-05-25 20:51:27 +0200

There is no such thing as permastone, remove its desc.

--------------------------------------------------------------------------------
594d3e6f32 | Adam Borowski | 2012-05-25 20:49:25 +0200

Remove a shorthand.
It hardly gains us anything, and somewhat complicates parsing.

--------------------------------------------------------------------------------
872126d73a | Adam Borowski | 2012-05-25 20:39:55 +0200

Remove an outdated "didactical" example.
That ugly hack is fortunately already gone, and all of restrictions it brought.

--------------------------------------------------------------------------------
df2f54edb6 | Florian Diebold | 2012-05-25 20:23:03 +0200

New spectral tiles by ontoclasm (#5643).

--------------------------------------------------------------------------------
0e76c9300a | Florian Diebold | 2012-05-25 20:18:34 +0200

Various simulacra tiles, courtesy of ontoclasm (#5643).

--------------------------------------------------------------------------------
b7e36b6050 | Florian Diebold | 2012-05-25 18:19:05 +0200

ontoclasm's chaos spawn (#5385).

--------------------------------------------------------------------------------
78e890629a | Florian Diebold | 2012-05-25 17:56:49 +0200

roctavian's racial buckler tiles (#5575).

--------------------------------------------------------------------------------
0b682bcdd7 | Florian Diebold | 2012-05-25 17:21:00 +0200

roctavian's armour tile revisions (#5575).

--------------------------------------------------------------------------------
671a81fb3f | elliptic | 2012-05-24 20:07:06 -0400

Reduce cacodemon resistances.
They used to have more rPois than green deaths and more rElec than blizzard
demons. Now they just have rPois+ rElec+.

--------------------------------------------------------------------------------
8de17a0279 | elliptic | 2012-05-24 19:26:10 -0400

Give Boris rC++ rElec+ instead of rC+ rElec++.
It didn't make much sense that he had less rC than a regular lich. His resists
are still slightly different from both regular liches (no rElec) and ancient
liches (they have rF+).

--------------------------------------------------------------------------------
abef529794 | elliptic | 2012-05-24 19:13:08 -0400

Don't give Khufu rElec++ for no reason.
Greater mummies have the exact same resists as Khufu except for only having
rElec+, which is plenty.

--------------------------------------------------------------------------------
2e102cb6c6 | elliptic | 2012-05-24 19:07:05 -0400

Move the Swamp entrance to the same depth range as the other non-Slime Lair 
branches.
It was Lair:2-5 and the others were Lair:3-6, with no apparent reason for
this. This meant that a player who entered Lair:2 but not Lair:3 would see
Swamp in the Ctrl-O screen but not any of the other Lair branches, even
though they are all on the same footing.

--------------------------------------------------------------------------------
6b04dd86ba | elliptic | 2012-05-24 18:42:07 -0400

Buff Urug a little more.
He now has the HD and AC/EV of an orc knight.

--------------------------------------------------------------------------------
373a31204a | Raphael Langella | 2012-05-25 00:28:32 +0200

Shush a compiler warning.
ULL (unsigned long long) is a new C++ standard, supported with g++ 4.4.
It's possible that this breaks plateform with older compiler. It works with
windows msysgit at least.

--------------------------------------------------------------------------------
74e8a88bd1 | Translators | 2012-05-24 17:41:36 +0200

Transifex sync.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
60ee85cd81 | Translators | 2012-05-24 17:41:36 +0200

Transifex formatting fixes.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
4537fb676b | Florian Diebold | 2012-05-24 17:10:20 +0200

Move tile flags up so that there's more room for the tile index itself.
Fixes #3707.

--------------------------------------------------------------------------------
800d03535c | Florian Diebold | 2012-05-24 17:10:20 +0200

Make tileidx_t 64 bits long.

--------------------------------------------------------------------------------
544252b173 | Florian Diebold | 2012-05-24 17:10:20 +0200

Refactor webtiles drawing to prepare for 64-bit tile indices.

--------------------------------------------------------------------------------
2e49416dde | Vsevolod Kozlov | 2012-05-24 17:19:57 +0400

Change 'clobber' to 'check_collision' in _build_secondary_vault and things that 
call it.
To make it consistent with the functions called by it.

--------------------------------------------------------------------------------
defa8e540b | Vsevolod Kozlov | 2012-05-24 17:19:57 +0400

Add a missing sentinel value in random_choose call.

--------------------------------------------------------------------------------
2d398b8222 | Vsevolod Kozlov | 2012-05-24 17:19:56 +0400

Call _builder_normal directly from _builder_by_type.
The indirection used to make sense when... actually, nevermind.

--------------------------------------------------------------------------------
602649deb8 | Adam Borowski | 2012-05-24 03:43:18 +0200

Polish translations for unrands.

--------------------------------------------------------------------------------
bdd884e769 | Adam Borowski | 2012-05-24 03:05:01 +0200

Add db_lint ignores for new genus-only monsters.

--------------------------------------------------------------------------------
77aa539cc5 | Adam Borowski | 2012-05-24 03:04:56 +0200

Use the same name for human to be sacrifices in two vaults, describe.

--------------------------------------------------------------------------------
f2f0c11594 | Adam Borowski | 2012-05-24 02:58:27 +0200

Describe the food and eaters in lexackson_kobold_supper.

--------------------------------------------------------------------------------
8aebb36cdc | Adam Borowski | 2012-05-24 02:22:03 +0200

db_lint: send output to stdout not stderr.
While these are warnings/errors, stdout was unused, and this makes it easier
to redirect.

--------------------------------------------------------------------------------
d1318c6978 | Adam Borowski | 2012-05-24 02:21:25 +0200

db_lint: require all unrands to be desced.

--------------------------------------------------------------------------------
a7129b3db5 | Adam Borowski | 2012-05-24 02:12:26 +0200

Descriptions for remaining unrands.
For Eos: "rosy-fingered dawn" is a stock phrase in Polish poetry (perhaps
even more of a cliche), making this a reverse translation.  Is there an
English equivalent?

--------------------------------------------------------------------------------
2ae8c2c7fb | Adam Borowski | 2012-05-23 17:07:23 +0200

Unbreak building on Windows.

--------------------------------------------------------------------------------
c83826b313 | Adam Borowski | 2012-05-23 17:06:55 +0200

Work around a clang warning.
At least, they finally fixed glaring errors in their handling of printf(),
so warning-less clang builds are now a reasonable possibility.

--------------------------------------------------------------------------------
f0e8eeb621 | Adam Borowski | 2012-05-23 15:11:45 +0200

Polish translations for spell descriptions.

--------------------------------------------------------------------------------
57a18187a9 | Adam Borowski | 2012-05-23 14:42:01 +0200

Track whether a monster has shown it has a ranged attack.
This fixes information leaks (the other option would be to include
bows/crossbows slung across the shoulder in "comes into view" messages).

This also allows resting when there's a sentient monster on the other
side of water and it has no means of attacking us. If this proved to be
false and it did have darts hidden in a pocket but never chose to use
them before, the attack will interrupt rest as usual.

Monsters are considered to have a ranged attack they're:
* non-ghost/demon with ranged/summoning spells
  There is no randomization that would change this.
* ghost/demons who have cast _any_ spell.  It's prudent to assume that if
  they cast spells at all, they likely have something nasty.
* are of a type which usually starts with a ranged weapon (centaurs, etc),
  and are not a known shapeshifter
* were seen wielding a bow/etc
* were seen shooting/throwing something
* were seen picking a bow/dart/hand axe/...
* were seen zapping a wand

--------------------------------------------------------------------------------
e0dedcc520 | Adam Borowski | 2012-05-23 14:42:01 +0200

Add a compile check, remove a redundant comparison.

--------------------------------------------------------------------------------
392a02a24c | Adam Borowski | 2012-05-23 14:42:00 +0200

Fix moninf flag enums with underscores not being recognized.

--------------------------------------------------------------------------------
f637a1384b | Raphael Langella | 2012-05-23 13:04:49 +0200

A little optimization in random_near_space.
Just move some initialization outside of the loop.

--------------------------------------------------------------------------------
1a05b2f523 | Raphael Langella | 2012-05-23 13:02:07 +0200

Use randomised rounding for skill based ammo enchantment.

--------------------------------------------------------------------------------
25761fa387 | Raphael Langella | 2012-05-23 12:15:05 +0200

Don't spam the player about untrainable skills.
When all your skills are either maxxed or untrainable. Just print the message
once when the last trainable skill gets disabled.

--------------------------------------------------------------------------------
1f9a0dbd75 | Adam Borowski | 2012-05-23 11:39:29 +0200

Require 9 missile skill to get +3 enchantment for the old formula.
(I'm going to nuke the whole thing, though, so it's a change of little 
relevance.)

--------------------------------------------------------------------------------
3127817f6a | Adam Borowski | 2012-05-23 11:32:39 +0200

Remove a good deal of header inclusion.
These accumulate but never get removed; no wonder compilation times keep
rising.

The includes.sh script has lots of false negatives (and positives...), and
can't check .h files which cause the biggest slowdown, it'd be nice to run
multidelta on those somehow.

--------------------------------------------------------------------------------
b2ae569f3f | Chris Campbell | 2012-05-23 05:08:04 +0100

Give Wyrmbane a description

--------------------------------------------------------------------------------
3895668e4c | Adam Borowski | 2012-05-23 02:56:56 +0200

Rewrite gen-mi-enum in Perl to work around broken sed on Mac.
It'd be enough to use 1,/match/ since the source file doesn't have the
searched for string on its first line, and if it gets split out, there'll
probably be a comment there, but this at least gets rid of that silly tr.

--------------------------------------------------------------------------------
8fb0316fb6 | Adam Borowski | 2012-05-23 02:13:11 +0200

Change the desc for Necromutation.
Elsewhere in the code, we consistently assume lich form is skeletal, rather
than spectral which was suggested by the old desc.

Also, mention that mollusc liches are not an error.

--------------------------------------------------------------------------------
123aa8b869 | Neil Moore | 2012-05-22 17:41:18 -0400

Minor fixes to the translation docs.

--------------------------------------------------------------------------------
7ceb941ff2 | David Lawrence Ramsey | 2012-05-22 16:06:48 -0500

Move curse skulls into their own genus, as they're not really liches.

--------------------------------------------------------------------------------
a239fba72c | David Lawrence Ramsey | 2012-05-22 16:06:47 -0500

Add an "elemental" monster, used only as the genus of elemental types.

--------------------------------------------------------------------------------
b400b11c33 | Neil Moore | 2012-05-22 16:58:57 -0400

Giant spores are fungi.
While mycologists may use different genera for teleomorphs and
anamorphs, they don't call either "plants" (any more).

--------------------------------------------------------------------------------
0b016f0b3a | David Lawrence Ramsey | 2012-05-22 15:54:44 -0500

Use a #define (or a derivative of it) instead of a magic number.

--------------------------------------------------------------------------------
88e5021a7e | David Lawrence Ramsey | 2012-05-22 15:48:25 -0500

Replace a magic number with a #define.

--------------------------------------------------------------------------------
f0ab75debb | David Lawrence Ramsey | 2012-05-22 15:08:48 -0500

(Re)add the "bear" monster, now used only as the genus of bear types.

--------------------------------------------------------------------------------
931ceae9ab | David Lawrence Ramsey | 2012-05-22 15:08:39 -0500

Properly set halfling genus to MONS_HALFLING.

--------------------------------------------------------------------------------
2e17657ecf | David Lawrence Ramsey | 2012-05-22 15:08:31 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
3869806792 | David Lawrence Ramsey | 2012-05-22 15:06:41 -0500

Add spacing fix.

--------------------------------------------------------------------------------
d030ed47db | David Lawrence Ramsey | 2012-05-22 15:05:40 -0500

Remove a tiles reference to a genus-only (never spawned) monster.

--------------------------------------------------------------------------------
ae76985360 | Chris Campbell | 2012-05-22 20:19:03 +0100

Don't let Famine cards feed you if you're already near-starved

--------------------------------------------------------------------------------
b9fcb50458 | David Lawrence Ramsey | 2012-05-22 14:10:40 -0500

Fix wording and punctuation of some statue descriptions.

--------------------------------------------------------------------------------
2b82bfc3d4 | Adam Borowski | 2012-05-22 02:37:07 +0200

A desc for definable statues.
Ones with obvious weapons all have custom names, so this one could be
described in a less generic way -- but for now, I played safe.

--------------------------------------------------------------------------------
b035df3e90 | Adam Borowski | 2012-05-22 02:26:17 +0200

Delete the "punching bag" monster.
It's pointless, redundant with other attackless monsters.  It's just that
not everyone knows about mon spec, and that it can set monster's hp, etc.

--------------------------------------------------------------------------------
d5d3ea0a81 | Adam Borowski | 2012-05-22 02:26:16 +0200

Allow clua to query m:is("flag") by name rather than enum.

--------------------------------------------------------------------------------
c1a16f8592 | Adam Borowski | 2012-05-22 02:26:16 +0200

xnmojo's tile for jackals.

--------------------------------------------------------------------------------
058a840bc7 | Adam Borowski | 2012-05-22 02:26:16 +0200

Use Crawlish spelling of Gehennom.

--------------------------------------------------------------------------------
10088a4150 | Adam Borowski | 2012-05-22 02:26:16 +0200

A lame .pl translation of the quote for shedu.

--------------------------------------------------------------------------------
f67a078d8d | Adam Borowski | 2012-05-22 02:26:15 +0200

A .pl quote for the Temple.

--------------------------------------------------------------------------------
cfdef3c6d7 | Adam Borowski | 2012-05-22 02:26:15 +0200

Return fractional values in clua's you.skill()
Lua doesn't even have an integer type...

This makes you.skill_progress() obsolete -- also, the latter gives better
accuracy than 0.1 available to the player anywhere else.  Should we limit
or remove it?

--------------------------------------------------------------------------------
ab62dbea34 | Adam Borowski | 2012-05-22 02:26:15 +0200

Let clua know whether a monster has a ranged attack.
A discussable info leak: this will let you tell if a random Pan lord has
spells, possibly before you are able to see him cast anything.

Also, the m:is() interface taking enum numbers is bad, we need to convert
it to strings.

--------------------------------------------------------------------------------
f01d4b234d | Adam Borowski | 2012-05-22 02:26:14 +0200

Fix a section of Singing Sword text not being used (dpeg).

--------------------------------------------------------------------------------
4ea052688c | Adam Borowski | 2012-05-22 02:26:14 +0200

Put the originals for two quotes into /pl/

--------------------------------------------------------------------------------
a1a467e00e | Adam Borowski | 2012-05-22 02:26:14 +0200

Fix the spelling of a quote's author's name.
I searched for a translated version but couldn't find one.  At least,
let's have the author's name spelled with an "s" -- that "ſ" is not "f"
but old-style "s".

If someone knows where to find that book in English, please replace this.

--------------------------------------------------------------------------------
0b459ca333 | Adam Borowski | 2012-05-22 02:26:13 +0200

Use the English version of a quote.
It makes no sense to use something only a small portion of players can
understand when good translations are far more popular.  It may be ok
for classical works that are widely quoted ("lasciate ogni speranza"),
but I'd keep it _really_ sparingly.

Also, put the original into /fr/, and a Polish translation into /pl/.

--------------------------------------------------------------------------------
c74028e73b | Adam Borowski | 2012-05-22 02:26:12 +0200

Use male pronouns for the Hellbinder and the Cloud Mage.
While referring to a wizard by "it" is jarring, using that for named monsters
is yet worse.

--------------------------------------------------------------------------------
567207be75 | Adam Borowski | 2012-05-22 02:26:12 +0200

Make the Hellbinder and Cloud Mage real monsters, make them translateable.
Just setting "dbname:" would be enough for descriptions, however having
"Plog the Title" use common code with other named monsters also handles
translating the name itself, and avoids "Plog the Hellbinder the yaktaur"
when polymorphed.

--------------------------------------------------------------------------------
c1f7631292 | Adam Borowski | 2012-05-22 01:49:53 +0200

Fix "kmons  (" (with spaces) not being caught.

--------------------------------------------------------------------------------
4415be98bf | Adam Borowski | 2012-05-22 01:49:53 +0200

A new monster tag "dbname:", overrides the key for db lookups.
This allows sharing the same desc and speech between different monsters.

--------------------------------------------------------------------------------
2a8b170176 | Adam Borowski | 2012-05-22 01:49:52 +0200

Remove unused monster props: speech_func and shout_func.
They don't do anything lua embedded in the db can't already do.

--------------------------------------------------------------------------------
a330062559 | Adam Borowski | 2012-05-22 01:49:52 +0200

db_lint: don't care about genus-only monsters.

--------------------------------------------------------------------------------
46ac644ab5 | Adam Borowski | 2012-05-22 01:49:52 +0200

Simplify the rltiles makefile by removing a per-target file.
This fixes incomplete cleans, etc.

--------------------------------------------------------------------------------
fed6d9844b | Adam Borowski | 2012-05-22 01:49:52 +0200

Correct pronoun: the Orb is "it" not "he".
The other possible meaning of that sentence makes little sense: adventurers
come there looking for the Orb, not Snorg.

--------------------------------------------------------------------------------
780ff9d7a3 | Translators | 2012-05-22 01:44:51 +0200

Transifex sync.
Some spanish species.
Korean skills, but we can't display them for now.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
2c93c12145 | Raphael Langella | 2012-05-22 01:41:40 +0200

Some transifex improvements.
* No longer necessary to have a clean tree to initiate a sync.
* New makefile target: make tx-commit
* Generally better and more reliable

--------------------------------------------------------------------------------
f5c5cedc7a | Translators | 2012-05-22 00:58:09 +0200

Transifex format fix.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
bccc2d8f5e | Raphael Langella | 2012-05-22 00:14:00 +0200

Transifex: documentation update.

--------------------------------------------------------------------------------
0dc9e001a3 | David Lawrence Ramsey | 2012-05-20 18:02:24 -0500

Add more gender, punctuation, and wording fixes.
Regarding the "look in the eyes" -> "look in his eyes" change, using the
possessive there sounds much less awkward.

--------------------------------------------------------------------------------
93ce22fd21 | David Lawrence Ramsey | 2012-05-20 17:22:05 -0500

Add gender, punctuation, and wording fixes.

--------------------------------------------------------------------------------
e022976a9a | Adam Borowski | 2012-05-20 23:12:51 +0200

Don't encase Dowan/Duvessa's death db keys in _underscores_.

--------------------------------------------------------------------------------
7a8591bc1f | Adam Borowski | 2012-05-20 23:00:25 +0200

Fix a broken Singing Sword line.
There's a whole big unused section, _speaking_high_tension_, but I'm not
sure how it should be referenced.

--------------------------------------------------------------------------------
9a0f82e660 | Adam Borowski | 2012-05-20 22:57:16 +0200

Remove the infamous speech set that once belonged to most uniques.
The last ones to shed it were Donald and Wayne.

Could be reused elsewhere, but I don't see anything decent to salvage.

--------------------------------------------------------------------------------
591dad2b80 | Adam Borowski | 2012-05-20 22:45:37 +0200

db_lint: Make reported filenames friendly to doubleclick copy&paste.

--------------------------------------------------------------------------------
6a6dfe83ad | Adam Borowski | 2012-05-20 22:42:43 +0200

Check db references for local keys (ie, ones names _something_).

--------------------------------------------------------------------------------
203f01e0a4 | Adam Borowski | 2012-05-20 22:21:28 +0200

Check all other database files (for duplicated keys only, currently).

--------------------------------------------------------------------------------
2e92fce404 | Adam Borowski | 2012-05-20 22:04:30 +0200

Add descs or ignores for special monsters.
Test spawners can legitimately be created in wizmode and on the arena.
(The desc I wrote is probably unacceptable, though.)

--------------------------------------------------------------------------------
4d3155634e | Adam Borowski | 2012-05-20 21:22:23 +0200

Correct the Serpent of Hell false positive hack in db_lint.

--------------------------------------------------------------------------------
befaaf1a2f | Adam Borowski | 2012-05-20 21:21:37 +0200

Remove descriptions for ex-cards.

--------------------------------------------------------------------------------
bfa643f2f6 | Adam Borowski | 2012-05-20 21:21:36 +0200

Check card descriptions.

--------------------------------------------------------------------------------
fd99b38555 | Adam Borowski | 2012-05-20 21:03:19 +0200

Remove the desc for the removed Buggy skill.
But... but... I really want to train it, waaaah!

It was identical as the Buggy god anyway (so one copy was enough), but since
there exist no code that would return "Buggy" for a script, it can't
possibly be used.  Unlike the god (NUM_GODS).

--------------------------------------------------------------------------------
608d3d7d5f | Adam Borowski | 2012-05-20 21:03:19 +0200

Remove duplicated feature descriptions.

--------------------------------------------------------------------------------
6c8c7f3727 | Adam Borowski | 2012-05-20 21:03:19 +0200

Fix Beogh's Smiting ability having its descs obscured.
You can't see the spell's description on the rod, the only way is obscure
?/s Smiting, and even there, Beogh's desc fits as it doesn't say a word
about the god or it being an ability.

--------------------------------------------------------------------------------
01d83500f5 | Adam Borowski | 2012-05-20 21:03:19 +0200

Cross-check all description files, looking for duplicates.
They all go into one database, so the last desc for the same key overwrites
previous ones, even if they come from a different file (within the db type).

--------------------------------------------------------------------------------
5db4cc5112 | David Lawrence Ramsey | 2012-05-20 14:01:31 -0500

Add wording fixes.

--------------------------------------------------------------------------------
fb3d2595c7 | Adam Borowski | 2012-05-20 20:34:17 +0200

A script to check the consistency of db files (for now, descript/monsters).

--------------------------------------------------------------------------------
025f453141 | Adam Borowski | 2012-05-20 20:28:01 +0200

Fix and add mimic descriptions.

--------------------------------------------------------------------------------
a5e601af66 | Adam Borowski | 2012-05-20 20:02:09 +0200

Fix capitalization of a few monster names.
In some places, like .des, they are case insensitive, in others, sensitive.
Let's keep them the same everywhere.

--------------------------------------------------------------------------------
b8726d04a2 | Adam Borowski | 2012-05-20 13:21:54 +0200

Use French spacing in Polish descriptions.

--------------------------------------------------------------------------------
0837f6bbc6 | Adam Borowski | 2012-05-20 13:21:54 +0200

Remove duplicate monster descriptions.

--------------------------------------------------------------------------------
319634ecdd | Adam Borowski | 2012-05-20 13:21:53 +0200

Scripts to gather the names of cards and monsters.

--------------------------------------------------------------------------------
bae08004e6 | Adam Borowski | 2012-05-20 03:18:39 +0200

Remove an empty string.

--------------------------------------------------------------------------------
e3b5d2909e | Adam Borowski | 2012-05-20 02:56:00 +0200

Proper tiles for Serpent of Hell variants (ontoclasm)

--------------------------------------------------------------------------------
783ab40e5b | Adam Borowski | 2012-05-19 19:58:57 +0200

Formatting fixes.

--------------------------------------------------------------------------------
2c2c42d258 | Neil Moore | 2012-05-19 08:51:48 -0400

Don't suppress the Mace of Brilliance's aura.
suppressed() calls _update_agrid(), which calls halo_radius2(),
which indirectly called suppressed().  Reading a scroll of silence
with nothing else around would crash the game.

Not to say that it shouldn't be suppressed, but it will be tricky
to do so properly (without crashing and without using a half-updated
agrid).

--------------------------------------------------------------------------------
dfdeba12f9 | Neil Moore | 2012-05-18 23:00:12 -0400

Change supmoth quote.

--------------------------------------------------------------------------------
96c9695838 | Ben Striegel | 2012-05-18 22:18:53 -0400

Suppress staff of olgreb, tweak punching bag

--------------------------------------------------------------------------------
5391f17452 | Ben Striegel | 2012-05-18 22:18:53 -0400

Properly suppress *RAGE, and a new mon for testing

--------------------------------------------------------------------------------
ad236d0481 | Ben Striegel | 2012-05-18 22:18:52 -0400

Suppression: new function: player_equip_unrand_effect

--------------------------------------------------------------------------------
6c05ec4dbe | Ben Striegel | 2012-05-18 22:18:52 -0400

Fix minor bug in both silence and suppression

--------------------------------------------------------------------------------
768a3d7a40 | Ben Striegel | 2012-05-18 22:18:52 -0400

Supmoth: experience mod 10 -> 2

--------------------------------------------------------------------------------
a3706a7e36 | Ben Striegel | 2012-05-18 22:18:52 -0400

Suppression: block all evocables but reaching

--------------------------------------------------------------------------------
9fc9c35e93 | Neil Moore | 2012-05-18 22:01:12 -0400

Allow placing unrand jewellery via itemspecs.

--------------------------------------------------------------------------------
f9336951be | Neil Moore | 2012-05-18 20:21:12 -0400

Don't split proverbial pigs.

--------------------------------------------------------------------------------
d566297e18 | Neil Moore | 2012-05-18 19:40:50 -0400

Allow swapping to stones/arrows/etc with the right spells memorised.
Sticks to Snakes allows ' to swap to snakable arrows/javelins; Sandblast
allows swapping to stones and large rocks.

--------------------------------------------------------------------------------
0d644e1a82 | Neil Moore | 2012-05-18 16:59:40 -0400

Don't inscribe {was cursed} on fully IDed items.
The previous fix added and then removed the inscription; instead,
avoid placing it at all.  This was supposed to happen anyway, but
identification flags were being checked that the object didn't
even possess.

This reverts commit 7d9d1bc00823c67f42f951196aca06f40ad1b5ca

--------------------------------------------------------------------------------
6a5721b073 | Neil Moore | 2012-05-18 16:18:43 -0400

Auto-ID "rMut.
Only when you can be certain of it:  when it causes you to get the "You
feel odd for a moment" message, and you don't have the Mutation
Resistance mutation.  In particular, this means quaffing a potion of
mutation will not identify the amulet, as it does not give a message
when resisted, and there might have been other reasons (physiology
conflict, etc) the mutation did not take hold.

--------------------------------------------------------------------------------
7dfb638b0d | Neil Moore | 2012-05-18 16:01:43 -0400

Do not give away unidentified "rMut in the A screen.

--------------------------------------------------------------------------------
4c9c551b3b | David Lawrence Ramsey | 2012-05-18 14:24:34 -0500

Fix a few inconsistent god messages.

--------------------------------------------------------------------------------
7d9d1bc008 | Neil Moore | 2012-05-18 14:47:21 -0400

Remove {was cursed} inscription if ?RC fully IDs the item.
This could happen if you remove curse on a cursed ring whose type you
already know.  The inscription would be removed anyway if you try
putting on the ring again, so go ahead and remove it right away.

--------------------------------------------------------------------------------
43de37a928 | Neil Moore | 2012-05-18 13:58:34 -0400

Allow demonspawn antennae to override horns.
Now this conflict is handled by _handle_conflicting_mutations()
(which will remove horns if the antennae are forced), rather than
by physiology_mutation_conflict().

Fixes #5679.

--------------------------------------------------------------------------------
b22662357a | Chris Campbell | 2012-05-18 18:20:17 +0100

Fix dungeon exit description (ZRN)

--------------------------------------------------------------------------------
af7383ebea | Adam Borowski | 2012-05-18 14:49:02 +0200

Don't let wandering monsters go to hell.
This fixes a crash, since the stair destination would have to be special-cased.
I opted to disable foreign spawns here instead.

--------------------------------------------------------------------------------
6fe8ef2646 | Adam Borowski | 2012-05-18 14:49:02 +0200

Cut off the wings off iron dragons' tile.

--------------------------------------------------------------------------------
25d544071b | Adam Borowski | 2012-05-18 14:49:02 +0200

Longer descs for SoH flavours.
Eronarn proposes changing it to some weird kind of snake, but I personally
think the existing theme, of a dragon, is better.  In fact, Slavic dragons
are more of the serpent kind, to the point of having different words for
these and for Western style dragons.

Also, Chinese dragons or, say, Tolkien's description of Glaurung, are more
serpenty as well.

--------------------------------------------------------------------------------
4c0e3ab7b6 | Neil Moore | 2012-05-18 08:38:33 -0400

Redraw weapon on auto-id.

--------------------------------------------------------------------------------
7d4e85e393 | elliptic | 2012-05-18 03:51:35 -0400

Fix distortion melee never causing banishment.

--------------------------------------------------------------------------------
4d84f681d0 | Michael Gagno | 2012-05-17 17:22:57 -0700

Move roderic_lost_polar_bear to lair.des.

--------------------------------------------------------------------------------
ce2da52123 | Adam Borowski | 2012-05-18 01:31:58 +0200

Don't let Dis-flavoured Serpent of Hell fly.
In the old code, it tried to drop iron dragon corpses (and always failed),
so let's assume it is one.

--------------------------------------------------------------------------------
64c3f57db1 | Adam Borowski | 2012-05-17 23:59:27 +0200

Simplify Serpent of Hell handling, allow translating its descriptions.
Instead of hacks to redefine most properties, the different serpents are
separate monsters on their own.

--------------------------------------------------------------------------------
c962061f8e | Michael Gagno | 2012-05-17 12:41:43 -0700

Buff brain feed slightly.
It now drains 1d3 int instead of 1. This spell could still use further
improvements.

--------------------------------------------------------------------------------
ec9949b190 | Neil Moore | 2012-05-17 13:34:29 -0400

Suppress unrand evocation.
There are still many other special properties and effects of unrands
that need to be suppressed (and others that do not, which is what makes
it so difficult).  Wensley is working on that.

--------------------------------------------------------------------------------
0222056b06 | Neil Moore | 2012-05-17 13:29:13 -0400

Don't suppress stealth from elven boots/cloaks.

--------------------------------------------------------------------------------
80fc563cd9 | Neil Moore | 2012-05-17 13:17:10 -0400

Suppress running and ponderousness.

--------------------------------------------------------------------------------
df047489f5 | Ben Striegel | 2012-05-17 12:34:21 -0400

Suppression: block evokables and item abilities
For the sake of simplicity, we have to draw a line somewhere. Our threshold is
"if it's equipped, all magical effects are blocked; if it's not equipped, it is
unaffected". Also, again for the sake of simplicity, our only exception to
"magical effects" is evoking a reaching weapon. We already suppress passive
properties of items (resists, gourmand, brands, etc.), and this commit
suppresses active abilities from items. Specifically, any item that grants an
ability in the 'a' screen no longer grants that ability while in the
suppression field, and any item that requires that it be equipped to evoke it
(rods, staves, decks) cannot be evoked in the field.

--------------------------------------------------------------------------------
c2f25413ad | Adam Borowski | 2012-05-17 18:24:11 +0200

Sync manual from the wiki.

--------------------------------------------------------------------------------
5121335e23 | Adam Borowski | 2012-05-17 18:22:23 +0200

Grammar fix.

--------------------------------------------------------------------------------
37fdb4f0e6 | Adam Borowski | 2012-05-17 14:31:03 +0200

Updates for some obsolete info in the hints mode.

--------------------------------------------------------------------------------
8ce84403ef | Adam Borowski | 2012-05-17 14:31:03 +0200

A spacing fix.

--------------------------------------------------------------------------------
a64e1ebd40 | elliptic | 2012-05-16 22:15:08 -0400

Add a message when you resist banishment via ATTR_BANISHMENT_IMMUNITY.

--------------------------------------------------------------------------------
3a182392f3 | elliptic | 2012-05-16 22:15:08 -0400

Fix BEAM_BANISH ignoring ATTR_BANISHMENT_IMMUNITY.

--------------------------------------------------------------------------------
5bfbfc3449 | Chris Campbell | 2012-05-17 02:37:27 +0100

Don't let Jiyva heal you while under Death's Door

--------------------------------------------------------------------------------
e5dc889845 | elliptic | 2012-05-16 19:41:27 -0400

Remove an unused line.

--------------------------------------------------------------------------------
c48429ed88 | Translators | 2012-05-17 00:14:34 +0200

Transifex sync.
Some finnish descriptions, and a new english Mara quote (in addition to the
existing one, not as a replacement).

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
57e88dc373 | Raphael Langella | 2012-05-17 00:04:14 +0200

Use a generic author for transifex sync commits.

--------------------------------------------------------------------------------
025bd4bdbf | Neil Moore | 2012-05-16 16:43:14 -0400

Pluralise 'efreet' as 'efreet'.
This seems to be the most common English plural (modulo spelling
differences: ifrit, ifreet, afrit, etc.).  The version with 'i' seems to
be a D&D-ism for the singular, by false analogy with djinni/djinn.

Also update a few comments.

--------------------------------------------------------------------------------
d17ad6a3dd | Neil Moore | 2012-05-16 16:19:58 -0400

Remove spurious -iy => -ies pluralisation.

--------------------------------------------------------------------------------
b53190c669 | elliptic | 2012-05-16 15:16:52 -0400

Make Kiku's randart gifts not contain unusable spells (for the player's race).

--------------------------------------------------------------------------------
072319d150 | elliptic | 2012-05-16 15:16:52 -0400

Decrease the size of large missile stacks.
Again, this is to partially compensate for mulch rate being lower now compared
with +0 missiles.

--------------------------------------------------------------------------------
0a9bf766b7 | Neil Moore | 2012-05-16 13:34:10 -0400

Fit all four background columns on kilobyte's phone.

--------------------------------------------------------------------------------
eceefc4f2f | Neil Moore | 2012-05-16 13:10:36 -0400

Fix species/background menu entry descriptions.
The 79-column source file combined with three characters of indents was
causing problems.  Instead, unwrap the description before sticking it in
a TextItem, allowing the item to handle its own wrapping.

--------------------------------------------------------------------------------
f4d6567c52 | David Lawrence Ramsey | 2012-05-16 12:04:14 -0500

Fix spacing and punctuation.

--------------------------------------------------------------------------------
a59f4b973c | Raphael Langella | 2012-05-16 17:58:02 +0200

Transifex documentation.

--------------------------------------------------------------------------------
24986c81b8 | Raphael Langella | 2012-05-16 17:58:02 +0200

New quotes for uniques (DTIT).

--------------------------------------------------------------------------------
7d908c1d6f | Raphael Langella | 2012-05-16 17:58:02 +0200

tx-mkini.pl: convert html quotes into real ones before comparing strings.

--------------------------------------------------------------------------------
694ad1ba92 | Raphael Langella | 2012-05-16 17:58:02 +0200

Unique descriptions improvements (DTIT).

--------------------------------------------------------------------------------
5476c3e2c5 | Raphael Langella | 2012-05-16 17:58:01 +0200

Add a comment in quotes.txt.
I don't feel like manually sorting them back into the appropriate section each
time new quotes are added, so for now, they'll live at the end of the file.

--------------------------------------------------------------------------------
7f9f942b4f | Raphael Langella | 2012-05-16 17:58:01 +0200

2 spanish quotes.

--------------------------------------------------------------------------------
16f168f49f | Raphael Langella | 2012-05-16 17:58:01 +0200

Couple of new quotes.

--------------------------------------------------------------------------------
0c72be50b2 | Raphael Langella | 2012-05-16 17:58:01 +0200

Capitalization fix.

--------------------------------------------------------------------------------
69e24f2429 | Raphael Langella | 2012-05-16 17:58:01 +0200

Fix make tx-txt not committing new files.

--------------------------------------------------------------------------------
22dc80d33e | Adam Borowski | 2012-05-16 13:07:26 +0200

Auto-id ranged weapons using their skill, not Fighting.

--------------------------------------------------------------------------------
4697150b5a | Neil Moore | 2012-05-16 02:41:55 -0400

Remove an unused tile enum value, fixing tile builds.

--------------------------------------------------------------------------------
7fb9bc443c | Neil Moore | 2012-05-16 02:02:15 -0400

Don't offer to identify ammo.

--------------------------------------------------------------------------------
b4d10707e4 | elliptic | 2012-05-16 00:33:00 -0400

Make Kiku gift two randart books instead of three fixed ones.
By quickly gifting three fixed books containing every low-level necromancy
spell in the game, Kiku tended to make all worshippers look the same -- just
pick your favorite set of necromantic spells and use those each Kiku game. In
addition, this part of Kiku's design meant that there was little synergy
between Kiku and the necromancer background, since Kiku would gift any
character the necromancer starting book very quickly.

Kiku's three gifts at *, ***, and **** have been replaced by two randart gifts
(at * and ***), each containing five necromancy spells. This means that every
Kiku character will be missing a few spells from their ideal spellset, which
will hopefully lead to use of a greater variety of necromancy spells. In
addition, necromancer of Kiku now makes a lot more sense (though there will
still be substantial overlap between Kiku's first gift and their starting
book).

Kiku worshippers still have to choose between pain branding and the
Necronomicon at ******, as before.

The code for generating the Kiku gifts is pretty ugly, since I wanted finer
control over the books than the existing themed randart book code would allow.
Currently the only guaranteed spells are Control Undead (in the first gift)
and Dispel Undead (in the second), but you are also guaranteed a couple of
spells that make use of Kiku's corpse invocation.

--------------------------------------------------------------------------------
a77da3b89f | elliptic | 2012-05-16 00:21:17 -0400

Track one time abilities separately from other god gifts.
Now Jiyva, Kiku, Lugonu, TSO, and Zin use you.one_time_ability_used instead
of overloading you.num_total_gifts.

--------------------------------------------------------------------------------
ddb6b6cfda | elliptic | 2012-05-15 20:36:17 -0400

Reduce starting ammo quantity for Gl, Wr, En as well.
Since I forgot about these the first time through.

--------------------------------------------------------------------------------
0780ad3b69 | elliptic | 2012-05-15 20:28:49 -0400

Give hunters a +1 launcher or more throwables.
Since they lost their +1 ammo advantage over arcane marksmen.

--------------------------------------------------------------------------------
08caa1a51b | elliptic | 2012-05-15 20:16:31 -0400

Decrease starting ammo quantity.
Since it mulches half as often now, though I didn't decrease it that far.

--------------------------------------------------------------------------------
c06d6c41da | elliptic | 2012-05-15 20:10:19 -0400

Use more consistent articles and capitalization in portal vault longnames.
Now they all use an indefinite article and aren't capitalized. Also changed
"a tomb" to "an ossuary" to avoid confusion with Tomb.

--------------------------------------------------------------------------------
b30135a7b7 | Adam Borowski | 2012-05-16 02:02:21 +0200

roctavian's tiles for gold.
I'm not sure if separate items for every value 1..10 and then big ranges are
a good idea, could spread them out in some other way.

--------------------------------------------------------------------------------
d9b2bcf7f4 | Adam Borowski | 2012-05-16 02:02:21 +0200

Accept unaccented language names.

--------------------------------------------------------------------------------
af29ec1f6a | Adam Borowski | 2012-05-16 02:02:21 +0200

cd to runes/ instead of naming that every time.

--------------------------------------------------------------------------------
5fafd5ca0d | Raphael Langella | 2012-05-16 01:20:39 +0200

Fix a blank line error.

--------------------------------------------------------------------------------
6eda29e0cc | Raphael Langella | 2012-05-16 01:16:52 +0200

Translation update.

--------------------------------------------------------------------------------
e10c26aa43 | Raphael Langella | 2012-05-16 01:11:33 +0200

New english quotes from the DCSS Text Improvement Taskforce.

--------------------------------------------------------------------------------
24bea3ff92 | Raphael Langella | 2012-05-16 01:10:06 +0200

Append new quotes at the end of the file when importing them.

--------------------------------------------------------------------------------
ea1bef322e | Raphael Langella | 2012-05-15 17:59:05 +0200

Add finnish language.

--------------------------------------------------------------------------------
82e98f22cd | Raphael Langella | 2012-05-15 17:59:05 +0200

Transifex sync.

--------------------------------------------------------------------------------
032101d96b | Raphael Langella | 2012-05-15 17:59:05 +0200

Rewrap description text at 79 chars.

--------------------------------------------------------------------------------
c994663f66 | Raphael Langella | 2012-05-15 17:59:05 +0200

Fix tx-mktxt.pl inserting useless blank lines.

--------------------------------------------------------------------------------
8966a5c9a4 | Raphael Langella | 2012-05-15 17:59:05 +0200

Change line length in descriptions to 79.
76 means we'll have to constantly rewrap manual edits. 79 leaves room for the
leading +/- in git diff.

--------------------------------------------------------------------------------
76afa41cbd | Raphael Langella | 2012-05-15 17:59:05 +0200

Also push updated translations when doing make tx-push.

--------------------------------------------------------------------------------
dc8edf9d9f | Neil Moore | 2012-05-15 11:12:46 -0400

Remove the unused EX_WILL_THROW_POTION.

--------------------------------------------------------------------------------
6b48cd2363 | Neil Moore | 2012-05-15 09:03:21 -0400

Improve DMsl description.
Among other things, don't refer to bad dodging aptitudes of extinct
species.

--------------------------------------------------------------------------------
b006b69200 | Adam Borowski | 2012-05-15 13:24:07 +0200

Purge the descs of ex-spells.

--------------------------------------------------------------------------------
d77cb243f5 | Adam Borowski | 2012-05-15 13:07:28 +0200

Rewrite misleading descriptions of RMsl/DMsl.
The power or "mass" of the incoming attack doesn't matter (and spells don't
even have a mass in the first place), while what matters is your EV.  The
old descriptions made it sound like these spells work even for immobile
casters -- with 0 EV the chance of a successful deflection is precisely nil.

--------------------------------------------------------------------------------
8c4ae6daea | Adam Borowski | 2012-05-15 13:07:28 +0200

Make two functions static, one gone.

--------------------------------------------------------------------------------
83d9845a1c | Adam Borowski | 2012-05-15 13:07:28 +0200

Purge a strange quirk of sorting the player's god's altar first on 'X'.
With no lugging sacrifices to altars anymore, it's of very limited use.

--------------------------------------------------------------------------------
0bb39f3841 | Adam Borowski | 2012-05-15 13:07:28 +0200

Fix a compiler warning.
And since that value tends to be -1, ignoring signedness issues there is not
a good idea.

--------------------------------------------------------------------------------
ff7d79b693 | Adam Borowski | 2012-05-15 13:07:28 +0200

Keep unique annotations on portal levels until the level is deleted.
This is not very useful, but this inconsistency could still surprise someone
in rare cases.

--------------------------------------------------------------------------------
919270b38d | Adam Borowski | 2012-05-15 13:07:28 +0200

Allow annotating portal levels.
Useful, for example, if you enter a Ziggurat from Pan, and want to remind
yourself to take items you stashed on the way back.

The annotation goes away when the level in question is deleted.

--------------------------------------------------------------------------------
4ced95433d | Adam Borowski | 2012-05-15 13:07:28 +0200

Make a note about corrupted levels.
It's a big enough event to be of interest when browing character's notes,
and it also can reveal that you have already used Corruption on the given
level (and are no longer sure if you did).

--------------------------------------------------------------------------------
10519d1b5a | Adam Borowski | 2012-05-15 13:07:27 +0200

Adjust formatting.

--------------------------------------------------------------------------------
dc39ea48be | Neil Moore | 2012-05-15 02:09:54 -0400

Omit enchantment from missile base/qual/db name.
It was producing "[ERROR: no desc for item name 'arrow (frost)']".

--------------------------------------------------------------------------------
cc37647346 | Neil Moore | 2012-05-14 23:39:11 -0400

Capitalize 'Hints Mode' in title screen.
'mode' was the only non-capitalised non-preposition word in the menu.

Fixes #5667.

--------------------------------------------------------------------------------
09ff02354e | Neil Moore | 2012-05-14 23:18:15 -0400

Whitespace fix.

--------------------------------------------------------------------------------
d1cd94f791 | Ben Striegel | 2012-05-14 23:03:38 -0400

Suppress player weapon brands, and supmoths hate stairs

--------------------------------------------------------------------------------
e7e579d743 | Ben Striegel | 2012-05-14 23:03:37 -0400

Make the suppression-check property transient

--------------------------------------------------------------------------------
61f059e45e | Ben Striegel | 2012-05-14 23:03:37 -0400

Suppress antimagic effect on MP

--------------------------------------------------------------------------------
b952b93006 | Ben Striegel | 2012-05-14 23:03:37 -0400

Fix a whole lot of bugs with suppression
1) make hp/mp recalculate when entering and leaving the aura
2) redraw player hp/mp/ac/ev/str/int/dex display when entering/leaving the aura
3) improve debug fixedarts with +-HP and clarity
4) rename player_res_mutation to player_res_mutation_from_item

--------------------------------------------------------------------------------
7e35ad3e58 | Ben Striegel | 2012-05-14 23:03:26 -0400

Dummy tiles for debug fixedarts to placate a compiler warning

--------------------------------------------------------------------------------
dd3749cd09 | Ben Striegel | 2012-05-14 23:03:25 -0400

supmoth: add speech, add quote, edit description

--------------------------------------------------------------------------------
8e2c4e1479 | Ben Striegel | 2012-05-14 23:03:21 -0400

supmoth: buff to spider speed, drop all attacks, more EV

--------------------------------------------------------------------------------
ada11009a0 | Raphael Langella | 2012-05-15 01:00:45 +0200

Transifex sync.
Some more item description improvements and Some Finish translations.

--------------------------------------------------------------------------------
d52d0508f8 | Raphael Langella | 2012-05-15 00:31:01 +0200

Add an alias functionality to database lookups.
Putting <foo> in a database entry redirects to key foo.

--------------------------------------------------------------------------------
5729a0d575 | Raphael Langella | 2012-05-14 22:49:37 +0200

Remove enchantment information from missile description.

--------------------------------------------------------------------------------
bc601e5817 | Neil Moore | 2012-05-14 13:45:50 -0400

Revert "Show missiles in the wield screen when carrying ?EW."
Doing so no longer makes sense now that missile enchantment is gone.

This reverts commit 699ed908681b3e0bcd76d027d062703e23e3263e.

--------------------------------------------------------------------------------
ca6e795c24 | Neil Moore | 2012-05-14 12:00:07 -0400

Remove extra altars from nemelex_altar_shiori.
This fixes one cause of #5651, but there must be others, as the game
from the first report there does not use this vault.

--------------------------------------------------------------------------------
58c85328aa | Raphael Langella | 2012-05-14 16:24:48 +0200

Transifex sync.
Polish translation for backgrounds was tricky. Thanks for stress-testing
the workflow kilobyte :)
It got input from both git and transifex. The git updates were pushed to
transifex, but when the new translations were pulled from transifex, the
git one weren't pulled. This is because they weren't in the reviewed state
on transifex. So I had to manually "review" them on the website to have
them pulled along the new ones.
To avoid this, we need to be able to specify their mode when we push them
to transifex. If they are already in trunk, we can assume that they are
"reviewed". Transifex doesn't support the feature yet, though I've made
a FR about it.

--------------------------------------------------------------------------------
47e62abd5a | Raphael Langella | 2012-05-14 11:42:28 +0200

Add missing blank line.

--------------------------------------------------------------------------------
3fd757a6f6 | Adam Borowski | 2012-05-14 10:45:17 +0200

Don't show throwing net tear status when base name is requested.

--------------------------------------------------------------------------------
ec45d1d2c5 | Adam Borowski | 2012-05-14 05:04:21 +0200

Eliminate missile enchantments.

--------------------------------------------------------------------------------
52340c5ab6 | Adam Borowski | 2012-05-14 04:01:18 +0200

Eliminate the effect of ammo enchantment.
I did not clean up the code -- it needs a thorough rewrite anyway.

--------------------------------------------------------------------------------
96b90b26cc | Adam Borowski | 2012-05-14 03:22:37 +0200

Move monster throw code as well.
It rides the same cow as player throwing -- and both deserve to be shot and
redone from scratch, with a stress on making the formulas sane.

--------------------------------------------------------------------------------
f5e878c983 | elliptic | 2012-05-13 20:51:28 -0400

Make ammo mulch rate not depend on enchantment.
Since ammo enchantment won't exist for much longer. The rate is equal to the
old +3 ammo rate, which is half of the old +0 rate, so this is a buff to
hunters and assassins in early game - we should keep an eye on this.

--------------------------------------------------------------------------------
1a0f30b534 | Raphael Langella | 2012-05-14 02:32:22 +0200

New transifex translations.

--------------------------------------------------------------------------------
3d3260df7a | Raphael Langella | 2012-05-14 02:32:22 +0200

Clean translation files before pulling.

--------------------------------------------------------------------------------
7b3c60efbe | Raphael Langella | 2012-05-14 02:32:21 +0200

Update transifex translations.

--------------------------------------------------------------------------------
09a1477601 | Raphael Langella | 2012-05-14 02:32:21 +0200

Remove empty lines.

--------------------------------------------------------------------------------
d68c9ad14e | Raphael Langella | 2012-05-14 02:32:20 +0200

Add support to update the english transifex contribs with git content.
You need to pull the english text from transifex first.

tx pull en --minimum-perc=1 --mode=reviewed
change english text or pull changes from git
util/tx-push.pl en

--------------------------------------------------------------------------------
40aa7b76bb | Raphael Langella | 2012-05-14 02:32:20 +0200

tx-mktxt.pl: replace the -o option by -m with opposite effect.
And actually make it work (-o was ignored). I think it's easier to understand
this way.
When using -m (merge), the .ini file is loaded first, then the .txt file is
read and if some values in it are different than the .ini, they will be
updated. This mode is for updating the original english text.
When not using the option, the .txt file is generated from the .ini and anything
in it will be overwritten. Useful if there are new or deleted keys, so it's
intended for translated files.
In both mode, if the file content is unchanged, it is not overwritten with the
same content. Preserving the timestamp of the .txt will avoid useless
regeneration of the .ini by make.

--------------------------------------------------------------------------------
a136646cb3 | Raphael Langella | 2012-05-14 02:32:20 +0200

Rename the quotes script.

--------------------------------------------------------------------------------
82e2780034 | elliptic | 2012-05-13 20:30:57 -0400

Make Death Channel L6.

--------------------------------------------------------------------------------
031595791c | David Lawrence Ramsey | 2012-05-13 19:17:02 -0500

Properly put CARD_REMOVED_1 references in #ifdefs.

--------------------------------------------------------------------------------
5222bfe58e | Adam Borowski | 2012-05-14 01:36:07 +0200

Remove a never-has-been card, "Summon Any".

--------------------------------------------------------------------------------
e1e7800824 | Adam Borowski | 2012-05-14 01:36:07 +0200

Check for exploding missiles by brand, not name.

--------------------------------------------------------------------------------
b277918bc1 | Adam Borowski | 2012-05-14 01:36:07 +0200

Manual updates from the wiki.

--------------------------------------------------------------------------------
a2c3625a2a | elliptic | 2012-05-13 13:36:56 -0400

Don't let visored helmets stop bite attacks.
This was spoilery and also inconsistent with other helmet flavors (none of
which have any gameplay effect). We can just assume that vampires keep the
visor lowered.

Also purged old code about some helmets doing extra damage with headbutts,
since it is currently impossible to get a headbutt while wearing a helmet.

--------------------------------------------------------------------------------
3fa52a44ca | Neil Moore | 2012-05-12 22:12:14 -0400

Fix local tiles builds.

--------------------------------------------------------------------------------
1fe207f328 | Adam Borowski | 2012-05-13 00:51:13 +0200

Move throwing code out of item_use.cc
It really needs to be ripped out and rewritten, with a stress on making the
formulas sane.

--------------------------------------------------------------------------------
9a3f12d43a | Adam Borowski | 2012-05-13 00:51:13 +0200

Don't claim primary hunter weapons depend on species -- they get to choose.

--------------------------------------------------------------------------------
bef9f29b23 | Raphael Langella | 2012-05-13 00:41:16 +0200

Add mimics to place-population.lua stats

--------------------------------------------------------------------------------
83a1b3d123 | Raphael Langella | 2012-05-12 22:58:06 +0200

Remove an obsolete script.

--------------------------------------------------------------------------------
d89cc349d6 | elliptic | 2012-05-12 12:55:14 -0400

Autofight: break ties in favor of orc priests/wizards.
These two monsters are usually in the lowest danger tier by the time a player
does Orc, which means that autofight wouldn't prioritize them above regular
orcs or even goblins when tabbing through Orc with a melee character.

--------------------------------------------------------------------------------
ec6e988c33 | elliptic | 2012-05-12 12:55:14 -0400

Give lua access to monster names.
Rather than having to parse the full m:desc() string each time.

--------------------------------------------------------------------------------
7de84f1062 | Adam Borowski | 2012-05-11 14:10:01 +0200

A few .pl quotes.

--------------------------------------------------------------------------------
9b5db955d2 | Adam Borowski | 2012-05-11 14:07:14 +0200

Transifex format fixes.
I allowed a couple of descs to be freely wrapped; Transifex also insists on
different wrapping in a few other cases.

--------------------------------------------------------------------------------
d0ba6f3863 | Adam Borowski | 2012-05-11 13:37:28 +0200

Allow translating the FAQ title as well.

--------------------------------------------------------------------------------
2107308a3d | Adam Borowski | 2012-05-11 13:13:03 +0200

Make the HTMLized FAQ resemble HTML.

--------------------------------------------------------------------------------
e42bd4bd55 | Adam Borowski | 2012-05-11 13:13:02 +0200

Fix URLs not being enclosed in quotation marks.
Unquoted slashes are not allowed in HTML attributes.

--------------------------------------------------------------------------------
8330b58e71 | Adam Borowski | 2012-05-11 13:13:02 +0200

Replace the rest of http:// with https://
There are some people out there who don't run HTTPS Everywhere and HTTPS
Finder yet :p

--------------------------------------------------------------------------------
67b16a19f1 | Adam Borowski | 2012-05-11 13:13:02 +0200

Fix https:// links not being hyperlinked.

--------------------------------------------------------------------------------
1a5a8f68f9 | Adam Borowski | 2012-05-11 13:13:02 +0200

Nicer wrapping for the FAQ.
This also fixes indentation for bulleted lists that have a space after the
bullet.

--------------------------------------------------------------------------------
36edc7f26d | Adam Borowski | 2012-05-11 13:13:01 +0200

Separate bulleted items in FAQ entries by empty lines in the source.
This allows using the same transifex scripts as for descriptions.

--------------------------------------------------------------------------------
bfc1bd67ab | Adam Borowski | 2012-05-11 13:13:01 +0200

Slightly simplify.

--------------------------------------------------------------------------------
65fc583590 | Raphael Langella | 2012-05-11 11:32:56 +0200

Fix a lua info leak.
We shouldn't return enum values ever anyway.

--------------------------------------------------------------------------------
0be3160fbb | David Lawrence Ramsey | 2012-05-11 01:20:01 -0500

Fix wording.

--------------------------------------------------------------------------------
8b3edee6c8 | elliptic | 2012-05-11 00:36:25 -0400

Simplify demonspawn mutation-picking code by making body-slot mutations a 
separate tier.

--------------------------------------------------------------------------------
bc7cee15cf | elliptic | 2012-05-11 00:08:03 -0400

Demonspawn mutation ordering improvements.
The ordering of the 15 (or 18 if monstrous) mutations a demonspawn gets is
now determined as follows: each mutation is assigned a random number in some
subinterval (depending on which mutation it is) of [0,1000), and then the
mutations are sorted by these numbers. Mutations that we want to be given out
late (tier 3 facets, demonic guardian 2 and 3) are given later intervals and
mutations that we want to be given out earlier are given earlier intervals.

The most noticeable effects of this change should be the following:
    * demonic guardian 2 will usually not be given until at least 1/3 of the
      way through a player's mutations;
    * demonic guardian 3 will usually not be given until at least 2/3 of the
      way through a player's mutations;
    * body-slot facets will usually finish before 2/3 of the way through a
      player's mutations.

It should also be much more adjustable than the old system.

--------------------------------------------------------------------------------
a84fdaa7ed | elliptic | 2012-05-10 20:55:16 -0400

Make Urug stronger than an orc warrior.
His damage is now equal to that of an orc knight, in fact.

--------------------------------------------------------------------------------
3a0ba81e0d | Neil Moore | 2012-05-10 02:06:36 -0400

Don't crash on wizmode hell exits.
If we entered Hell without ever having passed through an enter_hell
feature (i.e. if we went there with &~U), you.hell_exit is zero.
Subsequently leaving hell crashes when trying to build D:0.

Fix this in wizmode, by going to D:1 instead.  Outside of wizmode,
die with a message.

The root_branch check happens before this, so if someone wants to make a
game mode that starts in the Vestibule, that should still work.

--------------------------------------------------------------------------------
55fed8025e | Neil Moore | 2012-05-10 01:48:50 -0400

Say what level will be annotated in the ! prompt.

--------------------------------------------------------------------------------
6180bce133 | swettt@mail.gvsu.edu | 2012-05-09 23:58:05 -0400

Fix punctuation.

--------------------------------------------------------------------------------
1a7631d92c | Adam Borowski | 2012-05-10 02:26:30 +0200

Don't place invalid traps.
These could happen in Slime (which often returns an invalid one requesting a
reroll), or in vaults that request a random trap.

--------------------------------------------------------------------------------
1028c3cfb9 | Adam Borowski | 2012-05-10 02:26:30 +0200

Traps are never placed on a remote level, so simplify the interface.

--------------------------------------------------------------------------------
9ad8a4c74c | Adam Borowski | 2012-05-10 02:26:30 +0200

Remove an unused special casing.
Labs currently don't go through the standard dungeon building code, if this
ever changes, it's better to place 0 traps instead of crashing.  And that's
what is the default for portal levels already.

--------------------------------------------------------------------------------
d56b4e1dae | Adam Borowski | 2012-05-10 02:26:30 +0200

Don't suppress the display of sInv and speed of ghost_demons.
All other abilities and resistances of this kind are shown, so we should
either show them all or block them all.  Also, speed is easily noticeable
if you watch them for a couple turns.  sInv can be noticed as well if you
are invisible -- which can affect the decision whether to turn invisible
or not, but that's no different from the decision whether to use Chain
Lightning or similar highly resistible spells.

Alternatively, we could record which resistances the demon in question has
shown (and reveal speed only after a move or two), but that'd require some
actual coding effort.

--------------------------------------------------------------------------------
9f2174219d | Adam Borowski | 2012-05-10 02:26:29 +0200

Prevent passwalling into lava/deep water if an Abyss morph happens.

--------------------------------------------------------------------------------
b045006681 | Adam Borowski | 2012-05-10 02:26:29 +0200

Rename STINKING_CLOUD to MEPHITIC.

--------------------------------------------------------------------------------
abd22f24f1 | Adam Borowski | 2012-05-10 01:45:05 +0200

Nerf felid Summ aptitude: +1 -> 0
There is a reason other swift races are terrible at summoning.

--------------------------------------------------------------------------------
fea3bfef4d | elliptic | 2012-05-09 19:42:21 -0400

Improve felid UC and Fighting apts.
These apts were nerfed in the first place to combat the 0.8 FeBe menace, but
the berserk nerfs in 0.9 probably had a much larger effect... and most felids
aren't berserkers.

--------------------------------------------------------------------------------
255825dfdb | Adam Borowski | 2012-05-10 01:28:45 +0200

Fix non-tile builds with gcc-4.7.
Apparently, "new some_class_type[0]" returns a null iff some_class_type has
any constructor.  This changed since gcc-4.6, and apparently contradicts the
C++ standard 3.7.4.1 which explicitely requests new() to always return
non-NULL even on 0-byte allocations, but then, C++ doesn't allow zero-length
arrays.  What's the point of 3.7.4.1 then?  Could someone explain?

Regardless of whether it's an error in gcc or in my understanding of the
standard, there are compiler versions in the wild that don't accept this
code, so I made it allocate a dummy length 1 array instead.

--------------------------------------------------------------------------------
d49aba625a | elliptic | 2012-05-09 19:05:42 -0400

Make felids better with evocations.
Just because they can't hold a wand or rod doesn't mean they can't evoke
the powers of jewellery or misc items well.

--------------------------------------------------------------------------------
a52630d53c | elliptic | 2012-05-09 02:47:42 -0400

Don't make a note/milestone for every Pan level.

--------------------------------------------------------------------------------
137f61ea7b | David Lawrence Ramsey | 2012-05-08 19:18:43 -0500

Remove gender reference.

--------------------------------------------------------------------------------
c11ecdfbde | David Lawrence Ramsey | 2012-05-08 19:18:09 -0500

Add missing quotes.

--------------------------------------------------------------------------------
06df58f89a | David Lawrence Ramsey | 2012-05-08 19:17:31 -0500

Fix capitalization.

--------------------------------------------------------------------------------
0fb82b328d | David Lawrence Ramsey | 2012-05-08 19:17:14 -0500

Fix wording.

--------------------------------------------------------------------------------
d4f2ddf2ae | David Lawrence Ramsey | 2012-05-08 19:12:49 -0500

Fix whitespace.

--------------------------------------------------------------------------------
ea400944a7 | David Lawrence Ramsey | 2012-05-08 19:11:23 -0500

Fix punctuation.

--------------------------------------------------------------------------------
10fbded77b | David Lawrence Ramsey | 2012-05-08 18:55:09 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
37daa9894b | Raphael Langella | 2012-05-09 01:42:20 +0200

New descriptions for some items.
From the DCSS Text Improvement Taskforce, through transifex.
Mostly books, but also some weapons and armours.

--------------------------------------------------------------------------------
981afab49b | Raphael Langella | 2012-05-09 01:42:20 +0200

Fix the -t option of tx-mktxt

--------------------------------------------------------------------------------
835761c332 | Raphael Langella | 2012-05-09 01:42:19 +0200

Fix bailing out early of some makefile targets

--------------------------------------------------------------------------------
8a81a27aff | Raphael Langella | 2012-05-09 01:42:19 +0200

Formatting fix.

--------------------------------------------------------------------------------
be2c07a44e | Raphael Langella | 2012-05-09 01:42:19 +0200

New spanish translations.

--------------------------------------------------------------------------------
95173f0f1f | Raphael Langella | 2012-05-09 01:42:18 +0200

Improve the transifex workflow.
* It's now possible to update the config file by running make tx-setup.
  Needs development version of the transifex client, stable has a
  little bug.
* The whole process is more reliable and properly keeps track of
  updated files.
* All transifex related scripts and makefile target are prefixed
  with "tx-".
* When generating .txt from .ini, we don't change the file timestamp if
  the content is unchanged.
* Changes to the english text pulled from transifex are into their own
  subdirectory instead of overwritting the source files.
* The source file with the placeholder quotes is quotes-all.ini
  instead of overwriting quotes.ini.
* make tx-sync does sanity checkpoint at each step.
* for integrating transifex changes into the .txt file (make tx-txt,
  the third step of tx-sync), I couldn't find a perl module for text wrap
  with wide char support that works under windows (neither msys nor
  activeperl), so it's unix only for now.

--------------------------------------------------------------------------------
c1b47a3ce8 | Raphael Langella | 2012-05-09 01:42:18 +0200

Transifex format fix.

--------------------------------------------------------------------------------
2170f1bfd0 | Raphael Langella | 2012-05-09 01:42:17 +0200

Add missing %%%% at the end of some description files.

--------------------------------------------------------------------------------
c10af2a703 | Raphael Langella | 2012-05-09 01:42:17 +0200

Move a comment to where it makes sense.

--------------------------------------------------------------------------------
aaba131897 | Neil Moore | 2012-05-08 17:28:58 -0400

Clarify the interactions of KPROP, KMASK, etc.
In particular, it was not clear that KPROP applies to the current map
(only applying the substitutions and shuffles so far) while the others
apply to the final map (after all substitutions and shuffles); or that
KITEM, KFEAT, and KMONS completely override the meaning of the glyph
while KMASK and KPROP do not.

--------------------------------------------------------------------------------
731214f461 | Adam Borowski | 2012-05-08 22:30:57 +0200

Clean up nemelex_altar_shiori a bit.
There are no teleport traps anymore, and ' is undefined.  It falls back to
floor so it works ok, but if ' ever gets used for something...

--------------------------------------------------------------------------------
ba39a949eb | elliptic | 2012-05-08 14:41:36 -0400

Revert "Report the old place in br.enter milestones."
This reverts commit 7cd5a58682c59923555cb4e57b6bb1fe97ef8dfe.

Henzell and Sequell already use oplace correctly, and this commit made Sequell
unable to determine correctly which branch is entered. Updating Gretell with
the oplace code already in place in Henzell/Sequell shouldn't be hard.

--------------------------------------------------------------------------------
8c510f52cc | elliptic | 2012-05-08 14:41:36 -0400

Revert "Fix br.enter milestone having incorrect place."
This reverts commit d7a33adbd9a7f546ac350333a740c62309d625a2.

--------------------------------------------------------------------------------
67487916df | Neil Moore | 2012-05-08 14:03:28 -0400

Be more consistent in death descriptions.
The following could occur:
 "Collapsed under their own weight"
 "Succumbed to your own poison"
 "Engulfed by own cloud of flame"

The first is good, if a bit informal (see #5618).  The second isn't so
great, because the person reading the entry might not be the person who
died.  The last is abysmal.

Change the last two to use "their own" instead.

--------------------------------------------------------------------------------
f7dc4207bf | Chris Campbell | 2012-05-08 17:23:56 +0100

Fix broken no_rtele_into in nemelex_altar_shiori

--------------------------------------------------------------------------------
10453cb0e7 | Adam Borowski | 2012-05-08 17:47:58 +0200

Make all missile brands visible.
Enchantment is still unknown.

Determining the brand was a matter of shooting a single shot, and then you
could keep a sample so other identical ammo would stack with it.  My recent
commit removed the need for the latter but only for fully identified
ammunition.

Note that 10 out of 16 randomly occuring brands already had this property
(half of them needle-only).  This was mostly contrary to what one would
expect: tar/oil on flame arrows was hidden, while drugs on needles
identified on sight.

--------------------------------------------------------------------------------
c78923c675 | Adam Borowski | 2012-05-08 17:30:20 +0200

Re-fix affixing Flaming destroying scrolls.
Was broken by 5ee9feef.

--------------------------------------------------------------------------------
58f15d98e3 | Adam Borowski | 2012-05-08 11:01:47 +0200

Identify the brand and curse status when a weapon auto-IDs via throwing.
This is somewhat wrong (as brands other than returning don't work when
thrown), but way simpler than inventing a whole new display scheme for
items with known plusses but not other stuff.

--------------------------------------------------------------------------------
c85be7c5fb | Adam Borowski | 2012-05-08 02:37:37 +0200

Document seen_context values.

--------------------------------------------------------------------------------
4945905948 | Adam Borowski | 2012-05-08 02:00:35 +0200

When escaping the Abyss, grant a temp immunity to most forms of banishment.
These are:
* any beam
* distortion
* miscasts
Not immune to:
* Lugonu's invocation
* cards
* Xom
* Abyss gates

--------------------------------------------------------------------------------
e91a4365bd | Adam Borowski | 2012-05-08 01:36:58 +0200

Drop two unused attributes.

--------------------------------------------------------------------------------
29581fed6c | Neil Moore | 2012-05-07 11:16:59 -0400

Whitespace fix.

--------------------------------------------------------------------------------
440380f194 | Neil Moore | 2012-05-07 11:14:25 -0400

Don't consider popping the level stack as a "visit".
You're simply resuming the visit you had already begun.

Fixes #5649.

--------------------------------------------------------------------------------
b5de0d7308 | Neil Moore | 2012-05-07 10:54:06 -0400

Don't crash on lang = commie

--------------------------------------------------------------------------------
85006d3abe | Neil Moore | 2012-05-07 10:43:24 -0400

Correctly handle no-skills-enabled case on game load.
59128e6 (do not re-initialize skill trainability on load) removed the
call to init_can_train() from tag_read_you().  Unfortunately, this
means that the check_selected_skills() call (intended to force the
user to enable at least one skill if e HUPped on the skill menu)
doesn't do anything other than printing "You cannot train any new
skill".

Fix this by calling both init_can_train() and tag_read_you() *after*
player items are loaded.  This should restore enforcement of the
at-least-one-skill constraint, while not incorrectly disabling weapon
skills as pre-59128e6 did.

--------------------------------------------------------------------------------
e8cac44891 | Neil Moore | 2012-05-07 09:51:27 -0400

Avoid an electrocution crash.
It triggered when a confused attacker wielding an electrocution brand
killed itself with the attack's base damage while in water.  If the
brand procs, conduct_electricity will be called with actor == NULL.
In this case, set the beam's source to MHITNOT rather than trying to
look up the mindex of NULL.

--------------------------------------------------------------------------------
e73e448c17 | Neil Moore | 2012-05-07 00:50:02 -0400

Correct spelling in the zoo.

--------------------------------------------------------------------------------
26e7a8f1be | Neil Moore | 2012-05-06 19:51:47 -0400

Find portals/shop on the map with backslash.
Tab still works, of course.

--------------------------------------------------------------------------------
cd2a2df4b5 | Adam Borowski | 2012-05-07 01:31:15 +0200

Recover games stuck in a portal vault without way out.

--------------------------------------------------------------------------------
12d4010c56 | Neil Moore | 2012-05-06 19:23:10 -0400

Don't mangle the level stack when viewing other branches.
If you view the level on top of the stack, it would be removed from
the stack.  Other levels on the stack could trigger an assert directly.

--------------------------------------------------------------------------------
acc9e7bfe9 | David Lawrence Ramsey | 2012-05-06 18:18:34 -0500

Typo fix.

--------------------------------------------------------------------------------
10a6c548db | Adam Borowski | 2012-05-07 00:43:41 +0200

A range check assertion for invalid branches.

--------------------------------------------------------------------------------
f66f94d4d7 | Adam Borowski | 2012-05-06 22:58:53 +0200

Spend as little time as possible with the milestone lock held.
If shit happens (like just did on CDO), the stuck game won't block others.

--------------------------------------------------------------------------------
ab8cd22b75 | Adam Borowski | 2012-05-06 15:08:11 +0200

Fix Jiyva crashing ZotDef.

--------------------------------------------------------------------------------
c86058d063 | Adam Borowski | 2012-05-06 13:46:13 +0200

A russian translation.
Ok, perhaps not translation, but I'm sure it's some "transl-" word.

--------------------------------------------------------------------------------
071f4f4901 | Adam Borowski | 2012-05-06 10:43:33 +0200

Remove the CE_MUTAGEN_BAD special casing.
It was totally unobvious and not mentioned by the game in any way -- to the
contrary, chunk descriptions claimed "it causes random mutations".

(Strictly speaking, there was one mention: after actually eating such a
chunk, you'd be told it "tastes *really* weird" as opposed to merely
"really" weird for identically looking fresher chunks.)

And, it could ever be relevant only for orcs, ogres and trolls, as others
can't eat rotten chunks at all, or ignore their special properties.

--------------------------------------------------------------------------------
98b89a9c6e | Adam Borowski | 2012-05-06 10:36:48 +0200

Remove unused corpse types.

--------------------------------------------------------------------------------
20189accbc | Adam Borowski | 2012-05-06 10:02:02 +0200

Drop fixed enum values from corpse_type.

--------------------------------------------------------------------------------
d9e3655a0d | Adam Borowski | 2012-05-05 23:41:22 +0200

Place guaranteed Dwarf vaults via tags rather than relying on "extra".
All but the main hall have a good number of variants, so only the main one
is predictably boring.

Also, make the main hall ORIENT: corner, to make it less likely to block
space.

Side vaults need such treatment as well, they currently don't get placed.
I wonder if encompass+subvaults wouldn't be better.

--------------------------------------------------------------------------------
7b5b062acb | Adam Borowski | 2012-05-05 23:07:11 +0200

Don't halo all floor in Dwarf.

--------------------------------------------------------------------------------
e70657799e | Adam Borowski | 2012-05-05 23:01:32 +0200

Sanitize the namespace of Dwarf lua.
It used "dhfh" for some stuff, "local_util" for some.

--------------------------------------------------------------------------------
756315f6c5 | Adam Borowski | 2012-05-05 20:46:26 +0200

Displace items when banishment copies some wall onto them.
The area you came from is copied over a complete Abyssal level, potentially
including items.

--------------------------------------------------------------------------------
ed23ca7b92 | Adam Borowski | 2012-05-05 20:30:46 +0200

Fix truncation of character codes in some cases.
Even if you accept only certain ASCII ones, you still need to read the whole
thing, as the lowest 8 bits may match something.

--------------------------------------------------------------------------------
dbf2079db3 | Adam Borowski | 2012-05-05 20:11:47 +0200

Fix the banishment area being misshapen if it's cut off by the map edge.
This caused a crash due to an off-by-one error that read an unitialized
place in memory (whatever was just past the array on the heap), which could
be an invalid feature.

It also made the new Abyss not resemble the place you came from.

This commit also converts shops to abandoned shops (instead of floor) and
portals to stone arches (rather than 1/3 arches 2/3 floor like stairs).

--------------------------------------------------------------------------------
9dea99200b | Adam Borowski | 2012-05-05 19:38:12 +0200

Don't DYWIPI the Abyss stress bot.
Not funny when you're debugging something that happens only during the
startup.

--------------------------------------------------------------------------------
1cf8799cbb | Neil Moore | 2012-05-05 10:18:35 -0400

Do not include system headers in rltiles .d files.

--------------------------------------------------------------------------------
78274e4f87 | Neil Moore | 2012-05-05 10:18:35 -0400

Make a debugging message more verbose.
We still get "item buggily placed in feature" sometimes on entering the
abyss.  Say what the item and the feature are, in the hopes that
provides some information.

--------------------------------------------------------------------------------
616a981481 | Adam Borowski | 2012-05-05 16:09:51 +0200

Don't let 8/9 glyphs request OODs on a level without OOD data.
The assert is correct -- before portal_branches, requesting an OOD monster
resulted in disallowing any but most common ones, which happen to be on the
easy side (ie, contrary to what was asked for).

This fix is a kludge: really, we'd want to rethink the whole OOD thing,
especially the absdepth0 30 cap which makes little sense for branches other
than D, especially Zot and hells.

--------------------------------------------------------------------------------
318f122189 | Adam Borowski | 2012-05-05 11:12:25 +0200

Let the Abyss stress bot have vaults.
The starting AK Abyss has several special properties, including never
generating any vaults as they are "scary".

--------------------------------------------------------------------------------
ec5614216b | Adam Borowski | 2012-05-05 11:12:24 +0200

Remove an obsolete special case.

--------------------------------------------------------------------------------
d760d44f31 | Adam Borowski | 2012-05-05 11:12:24 +0200

Drop an useless property.
There is no way for a ready level to ever move to a different place (ok,
save from ./crawl --edit-save), and now even changing a branch's settings
won't do this.

--------------------------------------------------------------------------------
ba1552d045 | Adam Borowski | 2012-05-05 11:12:24 +0200

Increase the absdepth of Elf.
This aligns it to the depth Elf:$ had when it was Elf:7 rather than Elf:3.

--------------------------------------------------------------------------------
d5bb0a1923 | Neil Moore | 2012-05-04 23:42:38 -0400

Accept !experience only on space, esc, or enter.
Even with 2eae938, it was exiting on keypresses such as '?', which is
not so great.

It would be nice if help were available here, or at least a message
along the lines of "Press Enter to accept."

--------------------------------------------------------------------------------
5e317590d6 | Neil Moore | 2012-05-04 22:56:19 -0400

Don't crash on AKs leaving the starting abyss.
Also, don't try using the "parent" of the root branch.

--------------------------------------------------------------------------------
46a0eddf9c | Neil Moore | 2012-05-04 22:56:13 -0400

Actually kill creatures who die by staff damage.
Oops.

--------------------------------------------------------------------------------
3b3dc2f57b | Neil Moore | 2012-05-04 22:07:55 -0400

Avoid a few different kraken crashes.
Fixes #5629.

--------------------------------------------------------------------------------
c9f0ec50b4 | Adam Borowski | 2012-05-05 03:23:27 +0200

Once you have seen a +3 dart of flame, id all of those on sight.
You could have kept one of each enchantment/type combination in a stash or
the inventory for the same effect.

Almost the same -- should we id them only on pickup?

TODO: once the details of when to id are settled, purge the id on merge code.

--------------------------------------------------------------------------------
f859cfa822 | Adam Borowski | 2012-05-05 02:35:56 +0200

Roll only once for identifying weapons by use.
You could tediously id anything by bashing a plant or throwing it at a wall,
with as little as 0.1 skill.  This is no more: every weapon has a secret
skill level needed to auto-id it.  You must know enough about the weapon to
possibly id it under the old system -- having wielded it once is enough, so
are certain other ways.  I intentionally didn't go into the complexity of
checking current curse status or blocking distortion/vamp.

Save compat: on training a weapon skill and certain other events for the
first time, you'll get unsightly ids of a bunch of items.  Probably not
worth any effort, you are very unlikely to get multiple ids at once during
normal play.

This commit does not handle missiles: they are mergeable and thus don't have
an unique random number, it would be enough to id one with the smallest
number and then merge stacks, you are currently encouraged to keep one of
every missile with different enchantments, etc.

--------------------------------------------------------------------------------
88d4e91b7b | Adam Borowski | 2012-05-05 02:35:56 +0200

Axe a TODO.  I refuse to id wizardry on skill training!

--------------------------------------------------------------------------------
355792f613 | Adam Borowski | 2012-05-05 02:35:55 +0200

Allow running Crawl on a 79x25 terminal.
On osso-xterm, there's a huge jump in readability between this font size and
the next smaller, and I find myself developing on N900 way too much to stand
constant switches.

I wonder what the tinyterm crowd will do now that 80x24 is not the smallest
possible anymore.  They'll have to declare that "hugeterm" and skip all old
games, probably.

--------------------------------------------------------------------------------
a9c41da812 | Adam Borowski | 2012-05-05 02:35:55 +0200

Correct an outdated comment.

--------------------------------------------------------------------------------
2eae93891b | Neil Moore | 2012-05-04 19:19:18 -0400

Don't accept !experience on pressing a bad letter/number.
Fixes #5637.

--------------------------------------------------------------------------------
7242852865 | Neil Moore | 2012-05-04 18:48:51 -0400

Unbreak ! on portal vault exits and escape hatches up.
level_id::get_next_level_id() checks whether the stair feature is a
branch exit for some branch; if so, it returns that branch's parent.
However, this is wrong for:
 * portal exits, where there is no parent;
 * dungeon exits, for the same reason;
 * escape hatches up, which are sometimes but not usually Lab exits.

However, portal escape hatches up are branch exits (from Lab), and Lab
does not have a parent.

Instead, check only for the current branch's exit; if the feature does
match, find the destination using the same code as up_stairs().  We
split this code off into a new (global) function upstairs_destination().
For exits from D:1, return D:0 rather than NUM_BRANCHES:-1.

--------------------------------------------------------------------------------
09a9b8bc30 | Neil Moore | 2012-05-04 09:30:13 -0400

Treat teleport traps as unpassable.
This should prevent situations where level-gen places an unavoidable
teleport trap at a cut-point of the level, requiring the player to
have stasis (or be extremely patient and lucky) to pass.

Fixes #5585, #5636.

--------------------------------------------------------------------------------
b2bfb71bf9 | Adam Borowski | 2012-05-04 12:54:50 +0200

Fix the depth of place:X not being heeded in vault set_random_mon_list()s.

--------------------------------------------------------------------------------
e94e10caba | Adam Borowski | 2012-05-04 11:49:43 +0200

A set of assertions for invalid values of grd() and friends.
These probably can be reverted once we get rid of Abyss bugs.

--------------------------------------------------------------------------------
8c72708e45 | Adam Borowski | 2012-05-04 11:07:29 +0200

Changelog: use the official name of Golubria's Roulette.

--------------------------------------------------------------------------------
06619db29b | David Lawrence Ramsey | 2012-05-03 11:10:05 -0500

Mention grey dracs' extra AC in the changelog.

--------------------------------------------------------------------------------
bb00af41df | David Lawrence Ramsey | 2012-05-03 10:15:14 -0500

Mention grey dracs' no longer fumbling in water in the changelog.

--------------------------------------------------------------------------------
b22597550e | David Lawrence Ramsey | 2012-05-03 10:13:49 -0500

Remove duplicate changelog entries.

--------------------------------------------------------------------------------
6350f6f5d9 | Michael Gagno | 2012-05-03 07:23:43 -0700

Give less XP for killing fungal colonies.
You'd get 500 xp for killing some mushrooms. This is huge, considering how
easy this task is, and how early you can get giant spores. I've lowered it
to 200, which is still decent in early levels.

--------------------------------------------------------------------------------
0d713f4a27 | Adam Borowski | 2012-05-03 10:01:22 +0200

Let the Abyss stress bot ignore the "walk confused near allies" prompt.
It managed both a chaos summon and chaos miscast confusion on subsequent
turns...

--------------------------------------------------------------------------------
8a1e69241b | Adam Borowski | 2012-05-03 10:01:22 +0200

Provide more info when the monster from a depth 1 branch assertion fails.
(Should be probably extended to other branches too, but OOD handling would
make that somewhat tricky.)

--------------------------------------------------------------------------------
dba2c7c0e4 | Adam Borowski | 2012-05-03 10:01:22 +0200

Changelog, up to 0.11-a0-1660-g8ce0e0f

--------------------------------------------------------------------------------
82e6b34fb1 | Michael Gagno | 2012-05-02 22:37:01 -0700

Change the formula for placing webs in Spider.
This gives a smoother progression than the old formula, where Spider:5 had
double the number of webs as Spider:4.

This new formula also gives you fewer webs in Spider:5, but somewhat more webs
in Spider:3-4.

--------------------------------------------------------------------------------
59128e6c90 | Neil Moore | 2012-05-03 00:46:35 -0400

Do not re-initialize skill trainability on load.
The call to init_can_train() from tag_read_you() was there to migrate
saves from versions that predated training restrictions.  It should have
been removed with the major version bump, but the #endif was in the
wrong place.

Fixes #5626.

--------------------------------------------------------------------------------
3ecf8c6b48 | elliptic | 2012-05-02 23:02:33 -0400

Adjust comment.

--------------------------------------------------------------------------------
d7a33adbd9 | elliptic | 2012-05-02 23:02:33 -0400

Fix br.enter milestone having incorrect place.

--------------------------------------------------------------------------------
2849f79bc4 | Neil Moore | 2012-05-02 22:37:29 -0400

End the game on DNGN_EXIT_DUNGEON from anywhere.
Other kinds of upstairs still end the game on the first level of the
root branch.  This feature is not currently used, but could allow
multi-level gametypes where the exit is not on the starting level.

--------------------------------------------------------------------------------
d824ca89c5 | Neil Moore | 2012-05-02 22:37:29 -0400

Set ZotDef in Zot.
Allow games to use different root branches.  Currently this is Zot for
zotdef, and Dungeon for everything else.

If there are reachable branches that precede the root branch in
branches[], the ^O screen will incorrectly print them first.  This is
not currently the case for any game type, and isn't likely to be the
case in the future, because branches[] is for the most part
topologically sorted.

--------------------------------------------------------------------------------
8ce0e0f77d | elliptic | 2012-05-02 19:32:31 -0400

Fix AUTOMATIC_HIT missing sometimes.
There could be other instances where this happens... effects that alter to-hit
need to check whether it is at AUTOMATIC_HIT. Probably this should be cleaned
up by checking AUTOMATIC_HIT once at a very early point.

--------------------------------------------------------------------------------
a0ab51ff4c | elliptic | 2012-05-02 19:12:37 -0400

Remove Mass Confusion from Power, add to Debilitation.
Mass Confusion looked very strange in Power, since all the other spells in it
are destructive conjurations. It seems reasonable enough in Debilitation,
though putting it in Enchantments is also a possibility.

--------------------------------------------------------------------------------
2707f81d86 | Adam Borowski | 2012-05-03 00:39:16 +0200

Help vim users who have unconditionally disabled tabs.
A global fix apparently is to append the following to .vimrc:
autocmd FileType make setlocal noexpandtab

And another hint to the rest of us: apparently Esc :q! allows avoiding
finding a new console to "killall vim".

--------------------------------------------------------------------------------
0f900533db | elliptic | 2012-05-02 17:20:48 -0400

Make Dissolution speed 10.

--------------------------------------------------------------------------------
71352894b5 | elliptic | 2012-05-02 16:30:39 -0400

Fix ravenous feature mimics trying to mimic ravenous item mimics.

--------------------------------------------------------------------------------
f754d32cb1 | Neil Moore | 2012-05-02 13:25:05 -0400

Allow X< to find dungeon exits.

--------------------------------------------------------------------------------
3f28b40b72 | Adam Borowski | 2012-05-02 16:13:47 +0200

Get rid of a hack for setting Sprint's dungeon length.
brdepth[] is loaded before any actual levels, and this way, multi-level
sprints are possible.

--------------------------------------------------------------------------------
9207632cc6 | Adam Borowski | 2012-05-02 15:52:37 +0200

Label deep mimics as "ravenous", Orb mimics as "monstrous".
No functionality changes, including no unscaling, yet.  That belongs to that
mimic who's currently mimicking Galehar.

--------------------------------------------------------------------------------
d7fe0be013 | Adam Borowski | 2012-05-02 15:29:52 +0200

Catch malformed values in INT_OPTION().
Also, if the value is out of bounds, ignore the option (with an error),
instead of assuming one of bounds.

--------------------------------------------------------------------------------
36856b216e | Adam Borowski | 2012-05-02 15:23:25 +0200

Remove code duplication; fix errors not showing.

--------------------------------------------------------------------------------
600a50eedd | Adam Borowski | 2012-05-02 15:16:16 +0200

Use printf to simplify reporting initfile errors.

--------------------------------------------------------------------------------
2049e3926d | Adam Borowski | 2012-05-02 14:17:25 +0200

Remove an outdated comment.
With melding, gearset.lua has lost most of its appeal.

--------------------------------------------------------------------------------
09a4d7519d | Adam Borowski | 2012-05-02 14:07:10 +0200

Optioncide: note_all_spells (always on).
I see no reason why someone would note only spells of higher level than any
currently memorized.  With Selective Amnesia gone, learning spell can't be
the cause of significant spam -- and even in the past, it'd be one only if
someone heavily abused SA to regain 5MP per 9th level spell.

--------------------------------------------------------------------------------
f06d561486 | Adam Borowski | 2012-05-02 14:01:03 +0200

Optioncide: ood_interesting, rare_interesting.
Both worked only on monsters eligible for random spawns in the branch you're
in, ignoring all vault stuff.  Using threat level instead is more generic.

--------------------------------------------------------------------------------
7a4ef1114f | Adam Borowski | 2012-05-02 13:55:00 +0200

Place firewood_loft as a floating vault.
It doesn't seem like staircases work well in minivaults.

Note that, like lemuel_elevator, it triggers a big red scary message in
debug builds.

--------------------------------------------------------------------------------
9717798a08 | Adam Borowski | 2012-05-02 13:23:19 +0200

Handle old score files that include Pa or Re.

--------------------------------------------------------------------------------
f0a8d25d5a | Adam Borowski | 2012-05-02 12:58:24 +0200

Don't produce br.enter nor a note for the Abyss.
This was redundant with abyss.enter.

I had to add notes for volunarily entering the Abyss, but they are better
with a message mentioning this anyway.

--------------------------------------------------------------------------------
3e53fd8521 | Adam Borowski | 2012-05-02 12:28:18 +0200

Note more detail than just "You pass through the gate.".

--------------------------------------------------------------------------------
1cb96b151e | Adam Borowski | 2012-05-02 12:07:03 +0200

Purge "cast into the Abyss" from noted messages in the default config.
   155 | D:11     | You are cast into the Abyss!
   155 | D:11     | Cast into the Abyss (deep elf demonologist)
   155 | Abyss    | Entered the Abyss
-- two messages too many.

--------------------------------------------------------------------------------
77090aa549 | Adam Borowski | 2012-05-02 12:02:35 +0200

Don't list parentless branches on &:
There's nothing interesting on that display anymore.

--------------------------------------------------------------------------------
4f6fd54bcf | Adam Borowski | 2012-05-02 11:46:58 +0200

Properly set the dungeon depth for ZotDef.

--------------------------------------------------------------------------------
7d94302111 | Adam Borowski | 2012-05-02 11:42:47 +0200

Move god lastnames to dat/database/ rather than dat/descript/
Transifex scripts assume the former all follow the desc rules, this one
follows the db ones.

--------------------------------------------------------------------------------
a601d65fc2 | Neil Moore | 2012-05-02 00:59:14 -0400

Generalize main ^O entry a bit.
This fixes the display when the dungeon size is not 27, and eliminates
some repeated strings and hard-coded padding characters.  There is still
special casing for ZotDef; it would be good to eliminate that, too.

--------------------------------------------------------------------------------
502ba9fcf8 | Adam Borowski | 2012-05-02 04:31:59 +0200

Make a milestone for reaching a level only if it has been just created.
Before, returning to a non-persistent level would act as if you entered it
normally, and dungeon levels used to scan the whole history to avoid repeats.

--------------------------------------------------------------------------------
718399ee31 | Adam Borowski | 2012-05-02 04:31:59 +0200

Suppress the normal milestone for wizlabs.
They have a customized one in lua.

--------------------------------------------------------------------------------
7cd5a58682 | Adam Borowski | 2012-05-02 04:31:58 +0200

Report the old place in br.enter milestones.
This was already done as "oplace", but none of the bots actually reported it.
It's pointless to say you are in Lair:1 when entering Lair, so it's a waste
of space to note the new level.

--------------------------------------------------------------------------------
e914712e03 | Adam Borowski | 2012-05-02 04:31:58 +0200

Fix redundant milestones for Labyrinths.

--------------------------------------------------------------------------------
1cd003851b | David Lawrence Ramsey | 2012-05-01 19:24:33 -0500

Fix Mantis 5620.
Dispelling a monster's invisibility via purple drac breath now properly
reactivates autopickup.

--------------------------------------------------------------------------------
cec51c5e52 | Adam Borowski | 2012-05-02 02:06:48 +0200

Don't assume that printf("%lc") can write unicode.
This works only if the locale uses UTF-8 and sizeof(wchar_t) >= 3.

--------------------------------------------------------------------------------
d59ef51147 | Adam Borowski | 2012-05-02 02:06:48 +0200

Fix a webtiles crash if a message contains "%".

--------------------------------------------------------------------------------
0bb7c10f38 | Adam Borowski | 2012-05-02 02:06:47 +0200

Let GCC validate webtiles printfs.
Sadly, clang and gcc earlier than 4.7 insist that printf("") is bad, and the
option to disable that (-Wno-format-zero-length) doesn't work in C++ mode.
Thus, I had to split {write,send}_message() into two: one with an argument,
one without.

--------------------------------------------------------------------------------
acfdbf2d9d | Raphael Langella | 2012-05-02 00:26:49 +0200

Transifex sync.
New spanish item translations.
Some wrapping fixes.
Add missing %%%% to the end of quotes.

--------------------------------------------------------------------------------
3c92c23fcf | Neil Moore | 2012-05-01 18:17:40 -0400

Remove the zot5_orb subvault.
Replace it with kitem() and kmask() calls in the zot5_orb function.
This allows Zot:5 to be correctly regenerated with wizmode &^R:
Previously this did not work because the subvault was not freed
when wiping level, so it was no longer available when placing
the orb chamber a second time.

--------------------------------------------------------------------------------
633946a5e2 | Neil Moore | 2012-05-01 18:14:02 -0400

Open morgues for funny characters with funny characters.
Unsafe characters, including spaces, are stripped from the filename
before creating a morgue file.  Also strip them when trying to open
a morgue file from the high score list.

Fixes #5616.

--------------------------------------------------------------------------------
34683ef6a0 | Adam Borowski | 2012-05-02 00:00:56 +0200

Use "themself" not "themselves" for singular uses.
According to the analysis on https://en.wikipedia.org/wiki/Singular_they

--------------------------------------------------------------------------------
1e46d1adea | Adam Borowski | 2012-05-01 23:43:19 +0200

Drop one last use of item_pickup_change_flags.
You can't drop the Orb anyway, so disabling -cTele for the level is pointless.

--------------------------------------------------------------------------------
8ea060bcdf | elliptic | 2012-05-01 16:52:36 -0400

Remove Snorg from a Lair entry vault.
This entry vault is already one of the hardest without Snorg, it doesn't need
a D:14 unique on D:8.

--------------------------------------------------------------------------------
0a767502e8 | Adam Borowski | 2012-05-01 20:45:18 +0200

Restore Sonja's and Urug's hatred for the Lair.

--------------------------------------------------------------------------------
7a7214cd91 | David Lawrence Ramsey | 2012-05-01 10:51:31 -0500

Tweak wording.

--------------------------------------------------------------------------------
481cec1148 | Adam Borowski | 2012-05-01 17:28:58 +0200

Descriptions for unrands that missed one.

--------------------------------------------------------------------------------
89d1f2d8a9 | Adam Borowski | 2012-05-01 16:56:36 +0200

Drop an overzealous assertion for portal levels.
It's still too overzealous, but at least won't ever trigger during normal
operation.  It'd be nice to be able to delete levels from the outside.

--------------------------------------------------------------------------------
9474c05ac2 | David Lawrence Ramsey | 2012-05-01 09:11:16 -0500

Add missing blank line.

--------------------------------------------------------------------------------
7e63c58960 | Raphael Langella | 2012-05-01 14:46:06 +0200

Minor fixes to translated files.

--------------------------------------------------------------------------------
c9638ae819 | Raphael Langella | 2012-05-01 14:43:55 +0200

ini2txt: convert html encoded quotes back into real ones.
And finally remove the code duplication.

--------------------------------------------------------------------------------
01e888ebf1 | Raphael Langella | 2012-05-01 14:22:37 +0200

Fix descriptions wrapping (again)

--------------------------------------------------------------------------------
f8456569e5 | Raphael Langella | 2012-05-01 14:21:47 +0200

Don't eat blank lines.

--------------------------------------------------------------------------------
db9ee732df | Raphael Langella | 2012-05-01 14:09:33 +0200

Fix wrapping of translated files.

--------------------------------------------------------------------------------
55a6131f7d | Raphael Langella | 2012-05-01 14:01:40 +0200

Fix incorrect wrapping of languages using wide characters.

--------------------------------------------------------------------------------
046fc2e161 | Raphael Langella | 2012-05-01 13:36:26 +0200

A simple script to push local translations to transifex.

--------------------------------------------------------------------------------
8eb6f4abf2 | Raphael Langella | 2012-05-01 11:10:48 +0200

Turn on executable bit on the new missing quotes script.

--------------------------------------------------------------------------------
42b346ff9b | Adam Borowski | 2012-05-01 10:40:41 +0200

A partial .pl translation for the list of backgrounds.
(Partial to see how Transifex handles merges.)

--------------------------------------------------------------------------------
9adfe82d9c | Adam Borowski | 2012-05-01 10:40:41 +0200

Fix the comment for Book of Debilitation.

--------------------------------------------------------------------------------
aec561d419 | Raphael Langella | 2012-05-01 01:20:13 +0200

Add placeholder entries to quotes.ini for missing quotes.
This allows contributors to submit a quote for entries that are missing one.
Not all of them are relevant though. Would be nice to filter them out.

--------------------------------------------------------------------------------
562b1182db | Raphael Langella | 2012-04-30 23:20:08 +0200

Use french spacing in polish translations.
Also fix lua formatting.

--------------------------------------------------------------------------------
40c96a3caf | Raphael Langella | 2012-04-30 22:15:09 +0200

Add git hooks installation to the git config documentation.

--------------------------------------------------------------------------------
dad679c38e | Raphael Langella | 2012-04-30 22:15:08 +0200

Formatting fix in translated files.

--------------------------------------------------------------------------------
a989c886fa | Raphael Langella | 2012-04-30 22:15:07 +0200

Wrap some descriptions which have been missed and some lua formatting.

--------------------------------------------------------------------------------
d094d7e093 | Raphael Langella | 2012-04-30 22:15:07 +0200

Some more minor fixes to ini2txt.
Don't convert spaces to tabs and fix keys not being read properly when
immediately following a comment.

--------------------------------------------------------------------------------
bf18fa080b | Raphael Langella | 2012-04-30 22:15:06 +0200

Don't unwrap lines starting with lua brackets.

--------------------------------------------------------------------------------
1ae68b07c9 | Raphael Langella | 2012-04-30 22:15:05 +0200

Make ini conversion a bit less strict with the .txt format
A few entries have 5 or 6 %.

--------------------------------------------------------------------------------
35051da59d | Michael Gagno | 2012-04-30 12:45:29 -0700

Make Grey Draconians more earth-themed.
They get +2 to Earth and -2 to Air. This is motivated by the recent changes
that make Grey Draconians have iron-like scales, and also because this means
all four elements are now represented by a Draconian with +2 and -2.
Symmetry is nice.

No other changes have been made. There's been talk about them getting -2 to
dodging or stealth, but I've thought about it for a few days and I'm not
fully convinced. More opinions would be good.

--------------------------------------------------------------------------------
e80093e61c | Neil Moore | 2012-04-30 15:43:10 -0400

Fix visual speech.
It was being inadvertently suppressed because of an extra "else"
that should have been removed in 7699f96.

--------------------------------------------------------------------------------
d9df880719 | David Lawrence Ramsey | 2012-04-30 12:16:16 -0500

Add comment indicating why spirit shield blocking is deep dwarf-specific.

--------------------------------------------------------------------------------
a85cdc730a | David Lawrence Ramsey | 2012-04-30 12:14:59 -0500

Revert "Generalize spirit shield check for slow healing 3, not just deep 
dwarves."
This reverts commit 00b32db7dd498a8e173082c877ca23a994071f3d.

The main reason for only deep dwarves was their damage shaving.

--------------------------------------------------------------------------------
659c08067b | Chris Campbell | 2012-04-30 17:13:05 +0100

Give full protection from stat loss under vitalisation, instead of one level of 
sustab

--------------------------------------------------------------------------------
503c9c2ad4 | Chris Campbell | 2012-04-30 17:11:31 +0100

Fix rRot being incorrectly displayed on the % screen under Zin
It's now only active while under vitalisation.

--------------------------------------------------------------------------------
c99431a24b | Chris Campbell | 2012-04-30 16:32:10 +0100

Note Jiyva's piety-based conservation on the religion screen

--------------------------------------------------------------------------------
41ab3e3163 | Raphael Langella | 2012-04-30 16:46:05 +0200

Some formatting fixes to monster descriptions.
I noticed it when doing a full sync, they ended up different. We can't use
\n literals anymore, I hope it won't be a problem.
Sorry if I mangled the formatting of other lua code. I can't check it
right now, but it's still time to revert 8c845503 and do it properly.

--------------------------------------------------------------------------------
ebbc1688d2 | Raphael Langella | 2012-04-30 16:22:51 +0200

A new makefile target to synchronise with transifex.
make tx-sync

It updates transifex with new/deleted/changed descriptions, and gets new
translations.

--------------------------------------------------------------------------------
326088d855 | Raphael Langella | 2012-04-30 16:12:54 +0200

ini conversion scripts: skip files not found.

--------------------------------------------------------------------------------
db83a2cf42 | Raphael Langella | 2012-04-30 16:05:52 +0200

Update and wrap all translations.

--------------------------------------------------------------------------------
e78b015378 | Raphael Langella | 2012-04-30 16:05:10 +0200

Update animal skin description.
When you got it by butchering a yak, telling it's from multiple animals
doesn't make sense.
Also, this change was pulled from transifex to test it.

--------------------------------------------------------------------------------
8c845503a2 | Raphael Langella | 2012-04-30 16:00:48 +0200

Wrap all descriptions at 76 columns.
This is done automatically with:
make build-ini
make build-txt

--------------------------------------------------------------------------------
85393e6d72 | Raphael Langella | 2012-04-30 15:57:28 +0200

Make build-ini a dependency of tx-config.

--------------------------------------------------------------------------------
20bf42b9c9 | Raphael Langella | 2012-04-30 15:57:28 +0200

Update the options used to generate translation and description files.

--------------------------------------------------------------------------------
add4da45e5 | Raphael Langella | 2012-04-30 15:56:30 +0200

Update options and comments of conversion scripts.
Add -o (overwrite) and -w (wrap) options to ini2txt.pl and fix the -u
option of txt2ini.pl. And update comments.

--------------------------------------------------------------------------------
d7029ebc5a | Adam Borowski | 2012-04-30 14:33:00 +0200

-cTele markers: replace a big lua file with two lines of C++.
There's a bit of it still left, needed for save compat.

--------------------------------------------------------------------------------
44ea9146fa | Adam Borowski | 2012-04-30 14:31:06 +0200

Fix the Tomb not losing -cTele on picking up the rune.
I did not reintroduce dynamic branch flags, but used a daction instead
to clear the flag on remaining levels.

Old games that have Tomb:3 already generated but didn't pick up the rune yet
will still get an error message when picking it up, but it's otherwise
harmless.

--------------------------------------------------------------------------------
81285d73ae | Adam Borowski | 2012-04-30 13:24:45 +0200

Don't reuse @xom rearranges the pieces@ for weapons swaps in .pl.
In English in can be argued to make sense for both dungeon features and
weapons, in Polish, not so much.  And there are different keys for the two,
so let's use that.

--------------------------------------------------------------------------------
a0164ec791 | Adam Borowski | 2012-04-30 13:24:45 +0200

Comment why max_level should be < 127.
Because of the xp cap, it can't possibly reach that value ever,
legitimately.  We already had a case when it rolled over to negatives
when a player had negative (unsigned) experience, so this assertion
helps to limit damage.

--------------------------------------------------------------------------------
33d826fd7e | Michael Gagno | 2012-04-30 03:07:26 -0700

Remove some obsolete comments.
Cacodemons aren't brown, Executioners aren't dargrey, and hellwings
definitely aren't greater demons.

--------------------------------------------------------------------------------
243886b6a4 | Adam Borowski | 2012-04-30 11:32:31 +0200

Fix .pl @_xom_plaything_@ pronoun/noun gender disagreement.

--------------------------------------------------------------------------------
adea1da162 | Adam Borowski | 2012-04-30 10:04:29 +0200

Unbreak DEBUG_GLOBALS.
At that point, there's no global &you to check for.

--------------------------------------------------------------------------------
b4e9b40e34 | Raphael Langella | 2012-04-30 08:48:56 +0200

Remove database files from the transifex workflow.

--------------------------------------------------------------------------------
706b1eee55 | David Lawrence Ramsey | 2012-04-29 19:42:42 -0500

Comment fix.

--------------------------------------------------------------------------------
ec34e7be6e | Neil Moore | 2012-04-29 20:27:39 -0400

Revert "Fix apparent redundancy with regeneration/slow healing mutation 
conflict."
The earlier conflict entry with [2] == 0 (re-added by this commit)
causes a forced regen mutation (e.g. a god gift) to delete all levels of
slow healing and continue to give you regeneration.  The later entry
with [2] == 1 causes a regen mutation to "cancel out" with one level of
slow healing (assuming the former entry didn't already remove all your
slow healing).  Both are necessary.

This reverts commit 478d88a90ef1f28299e70d765d8faa12fc7f6c91.

--------------------------------------------------------------------------------
478d88a90e | David Lawrence Ramsey | 2012-04-29 19:18:50 -0500

Fix apparent redundancy with regeneration/slow healing mutation conflict.

--------------------------------------------------------------------------------
00b32db7dd | David Lawrence Ramsey | 2012-04-29 19:03:30 -0500

Generalize spirit shield check for slow healing 3, not just deep dwarves.

--------------------------------------------------------------------------------
a5798e5dbe | Adam Borowski | 2012-04-30 01:06:29 +0200

Evict @xom_plaything@ to the database.
This allows translating it.

--------------------------------------------------------------------------------
21d5d46851 | Adam Borowski | 2012-04-30 01:06:29 +0200

Return Xom's mood for piety_rank().

--------------------------------------------------------------------------------
6540382be2 | Adam Borowski | 2012-04-30 01:06:29 +0200

Purge the species desc for MDs.
Intentionally not removing this one from translations -- let's see how
Transifex scripts handle removals.

--------------------------------------------------------------------------------
1183114e30 | Raphael Langella | 2012-04-30 00:39:06 +0200

Update location of quotes.txt in Makefile.obj

--------------------------------------------------------------------------------
f5ce796f71 | Raphael Langella | 2012-04-30 00:28:26 +0200

Some translations, pulled from transifex.

--------------------------------------------------------------------------------
6ae72ccbc2 | Raphael Langella | 2012-04-30 00:28:25 +0200

txt2ini.pl: add an option (-u) to unwrap the source file.
It no longer does by default.

--------------------------------------------------------------------------------
82fb2caa82 | Raphael Langella | 2012-04-30 00:28:24 +0200

A makefile target to generate the transifex config file.

--------------------------------------------------------------------------------
1eeb1c7d4c | Raphael Langella | 2012-04-30 00:28:24 +0200

New makefile target to generate txt from translated ini.
after doing tx pull -a, run make build-txt

--------------------------------------------------------------------------------
b9039025af | Raphael Langella | 2012-04-30 00:28:23 +0200

Add eclipse project files to .gitignore.

--------------------------------------------------------------------------------
75ff2cc7ce | Raphael Langella | 2012-04-30 00:28:22 +0200

Add the transifex client to .gitignore

--------------------------------------------------------------------------------
bdfcc2bf0c | Raphael Langella | 2012-04-30 00:28:21 +0200

Preserve order and comments when converting an ini file over an existing txt.
Also fix scripts not working with msysgit's perl.

--------------------------------------------------------------------------------
9c164257cf | Raphael Langella | 2012-04-30 00:28:21 +0200

Remove the useless main block.
I duplicated those from existing scripts, but then realised how useless they
are. Looks like some C++ coder felt insecure without it.

--------------------------------------------------------------------------------
e794d97bff | Raphael Langella | 2012-04-30 00:28:20 +0200

Add translated .ini to .gitignore

--------------------------------------------------------------------------------
e6caf64dc6 | Raphael Langella | 2012-04-30 00:28:19 +0200

Skip comments when generating txt files from ini.

--------------------------------------------------------------------------------
58736dad23 | Raphael Langella | 2012-04-30 00:28:18 +0200

Preserve the original ordering when generating .ini files.

--------------------------------------------------------------------------------
ed384d07e2 | Raphael Langella | 2012-04-30 00:28:17 +0200

Increase the size of the MenuDescriptor in the background selection menu.
English is a concise language, translations are likely to have longer text.

--------------------------------------------------------------------------------
4c163ede08 | Adam Borowski | 2012-04-29 23:23:36 +0200

Move quotes.txt to dat/descript/
They follow all the rules for descriptions, so we can translate them using
the same tools.

The only difference is that they are not mandatory.  I guess, if a given
language has at least one quote defined, we could skip the fallback to
English for the rest.

--------------------------------------------------------------------------------
e62636721f | Adam Borowski | 2012-04-29 23:23:36 +0200

Properly indent »quotes« and • bullets as well.
Apparently, only French and Spanish use the «» orientation.  Danish uses
»«, and a number of languages use »« for quotes inside quotes.  And Swedish
has »» just so we have even more confusion.

I'm not sure about bullets -- might use * as well, I picked • since they are
not going to be randomly used for something else than bullet marks.

--------------------------------------------------------------------------------
a798921a0a | Adam Borowski | 2012-04-29 23:23:36 +0200

Explain why an I_HIGH monster stands doing nothing while confused near water.

--------------------------------------------------------------------------------
509284a5d8 | David Lawrence Ramsey | 2012-04-29 11:26:29 -0500

Make flaming corpses resist hellfire, as they're permanently on fire as it is.

--------------------------------------------------------------------------------
236ba87856 | elliptic | 2012-04-29 11:36:13 -0400

Tweak hunger bar breakpoints.
Now the average hunger cost with n #s is 10*n^2. A linear scale would have
some advantages of course, but hunger costs vary too much for such a scale
to be good at both the low and high ends.

--------------------------------------------------------------------------------
a107911091 | Raphael Langella | 2012-04-29 01:52:50 +0200

Configuration file for the transifex client.
Get it from here:
http://help.transifex.com/features/client/index.html#getting-the-client

the project address is:
https://www.transifex.net/projects/p/dcss/

--------------------------------------------------------------------------------
32285cb88d | Raphael Langella | 2012-04-29 01:52:49 +0200

New makefile targets for generating .ini files for translations.

--------------------------------------------------------------------------------
2e1a635651 | Raphael Langella | 2012-04-29 01:52:48 +0200

Simplify and improve the startup menu layout (#5602).
Logic is unified between console and tiles. We now use the full available
size instead of leaving the last line for some reason.
It should be relatively easy to make it respect tile_menu_icons = false,
although I'm not sure it's worth bothering.

--------------------------------------------------------------------------------
73a9767405 | Adam Borowski | 2012-04-29 01:15:48 +0200

Run the map sanity checks for Elf and Spider as well.
No Shoals, as they use C++-side code for its builder instead of the regular
way (an ordinary map with a PLACE: vault).

--------------------------------------------------------------------------------
7d319af5a9 | Adam Borowski | 2012-04-29 01:14:19 +0200

Use Branch:$ for branch end vaults.
Makes shortening branches a bit easier, although there is still the matter
of monster depth progression and random vaults.  None of these is vital,
though.

--------------------------------------------------------------------------------
a6afea9530 | Adam Borowski | 2012-04-29 01:14:19 +0200

Fix the map sanity check using uninitialized branch depths.

--------------------------------------------------------------------------------
2a20de0b45 | David Lawrence Ramsey | 2012-04-28 17:48:16 -0500

Fix wording.

--------------------------------------------------------------------------------
0b037fcdce | David Lawrence Ramsey | 2012-04-28 17:47:22 -0500

Fix formatting.

--------------------------------------------------------------------------------
8da8be9250 | David Lawrence Ramsey | 2012-04-28 17:46:13 -0500

Fix punctuation.

--------------------------------------------------------------------------------
b0f49ed6af | David Lawrence Ramsey | 2012-04-28 17:45:35 -0500

Fix wording.

--------------------------------------------------------------------------------
09ffd7a281 | Adam Borowski | 2012-04-29 00:17:59 +0200

Fully reset place if spawning a foreign monster fails.
Also, don't reset its depth between tries.

For some reason, monsters wandering in from Hell portals (I checked only on
the Lair:8 one) always fail the pathfind check.  Not that a bad thing
considering hellephants and tentacle monstrosities are legal there, but it
then either monsters shouldn't try to flock through Hell portals at all, or
the pathfind thingy should be fixed.

Also, why is Hell special-cased?  What about Pan, Abyss, Ice Caves,
Volcanoes, etc, etc?

--------------------------------------------------------------------------------
94f885fe70 | Adam Borowski | 2012-04-28 23:27:48 +0200

Descriptions for portal vaults.
Blame ion_frigate, ontoclasm and nicolae for them.

--------------------------------------------------------------------------------
3e3e28141d | Adam Borowski | 2012-04-28 23:23:52 +0200

Update branch descriptions wrt factual changes.

--------------------------------------------------------------------------------
85bfbcd9e6 | Adam Borowski | 2012-04-28 23:13:12 +0200

Sort branch descriptions according to the display order.

--------------------------------------------------------------------------------
34ad2ca3d4 | Adam Borowski | 2012-04-28 23:13:12 +0200

Use the correct db key for Pandemonium.

--------------------------------------------------------------------------------
46b3217045 | Adam Borowski | 2012-04-28 23:13:12 +0200

Sync manual from the wiki (unfruitizing food cost display).

--------------------------------------------------------------------------------
50d0e9d1d2 | Adam Borowski | 2012-04-28 23:13:12 +0200

Update the description for "Leave the Abyss" Lugonu invocation.
It no longer works differently for branches of the dungeon as for other places.

--------------------------------------------------------------------------------
337af7ae90 | Adam Borowski | 2012-04-28 23:13:12 +0200

A few level-ups for new monster player races.

--------------------------------------------------------------------------------
c516fdd7b7 | Neil Moore | 2012-04-28 16:26:13 -0400

Show exact hunger costs in wizmode.

--------------------------------------------------------------------------------
977a6bc677 | Neil Moore | 2012-04-28 16:05:30 -0400

Fix multi-select hotkeys.
Commit c78c85a made single-select menus support multiple hotkeys per
item.  However, it also made all hotkeys, not just the first, stop
selecting after the first item.  This makes sense for single-select
menus, but it breaks things like 'd!' for "drop all potions".

Restore the old behaviour for multi-select menus (hotkeys after the
first are assumed to allow multiple selection), but retain the newer
behaviour for single-select menus (all hotkeys select only only one
item).

--------------------------------------------------------------------------------
8bf75c2071 | Chris Campbell | 2012-04-28 21:01:23 +0100

Display spell hunger as a spellpower-style bar instead of as food types
The food type actually meant "casting this spell fives times costs at
most one <foodtype>" which was very unintuitive, and food types also
change in value depending on herbivore/carnivore mutations.

--------------------------------------------------------------------------------
e38a76718d | Adam Borowski | 2012-04-28 17:16:29 +0200

Don't spawn random monsters during portal vault generation.
This doesn't fix fishes being placed.

--------------------------------------------------------------------------------
bb009097c7 | elliptic | 2012-04-28 00:25:24 -0400

Fix value stepdown happening after multiplying by quantity (rwbarton).

--------------------------------------------------------------------------------
5d70e58320 | Raphael Langella | 2012-04-27 15:55:12 +0200

Rename the ini conversion scripts.
They work with database files too.

--------------------------------------------------------------------------------
f99801ccda | Raphael Langella | 2012-04-27 15:55:11 +0200

Fix line overlap in high scores (#5595).

--------------------------------------------------------------------------------
e0f685857d | Raphael Langella | 2012-04-27 15:55:10 +0200

Make /?G display uppercase hotkey, but allow upper- and lowercase hotkeys

--------------------------------------------------------------------------------
c78c85aa51 | ldierk | 2012-04-27 15:55:09 +0200

Allow MenuEntrys in MF_SINGLESELECT menus to use more than one hotkey

--------------------------------------------------------------------------------
97e54b585b | Adam Borowski | 2012-04-27 15:53:37 +0200

Fix all upstairs being shown as visited.

--------------------------------------------------------------------------------
16616897f4 | Adam Borowski | 2012-04-27 15:46:56 +0200

Don't crash on foreign monsters from a 1-level branch (Blade, Hell).
Also, fix the assumption that neighbour levels have absdepth of exactly 1
less or more than the current level.

--------------------------------------------------------------------------------
20e7edd909 | Adam Borowski | 2012-04-27 15:46:56 +0200

Make a few functions static/gone.

--------------------------------------------------------------------------------
78740518c7 | Adam Borowski | 2012-04-27 15:46:56 +0200

Don't try to create wandering monsters from beyond the D:1 upstairs.

--------------------------------------------------------------------------------
935b99da4d | Michael Gagno | 2012-04-27 05:00:55 -0700

Forest themed serial vault for early D and Lair. (infiniplex)
Just decorative - no monsters are placed. There's a higher weight for
earlier levels.

--------------------------------------------------------------------------------
7e2ba4ab0c | Michael Gagno | 2012-04-27 04:40:09 -0700

25 staircase flavour vaults. (infiniplex)

--------------------------------------------------------------------------------
c0bc38bc64 | Adam Borowski | 2012-04-27 12:03:54 +0200

Fix a shopping list crash.

--------------------------------------------------------------------------------
4b95020931 | Adam Borowski | 2012-04-27 10:51:04 +0200

Add a desc for Zig portals.

--------------------------------------------------------------------------------
cf1eb72063 | Neil Moore | 2012-04-27 02:19:20 -0400

Remove a trove backwards-compatibility hack.
Something similar may need to be added again if items are renamed in
the current major save version.  Storing numbers rather than strings
could avoid the problem altogether.

--------------------------------------------------------------------------------
1baff07ea1 | Neil Moore | 2012-04-27 02:04:14 -0400

Fix autopickup symbol mismatch.

--------------------------------------------------------------------------------
c8699fa87e | Adam Borowski | 2012-04-27 00:54:34 +0200

Fix an use of partially uninitialized monster data.
It's questionable whether mons_genus(base_monster) should ever get called
for non-zombies, but let's have it in order even during zombie generation.

--------------------------------------------------------------------------------
505562169e | Adam Borowski | 2012-04-27 00:54:33 +0200

Remove an almost unused function.
The only call to it was special-cased to return the Vestibule immediately.

--------------------------------------------------------------------------------
3b6cb78c87 | Adam Borowski | 2012-04-27 00:54:33 +0200

Don't fake startdepths for portal vaults.  Not needed anymore.

--------------------------------------------------------------------------------
7fd6e336d0 | Adam Borowski | 2012-04-27 00:54:33 +0200

Don't use blue glass in a place with blue walls.
Even in Troves this is disconcerting.

--------------------------------------------------------------------------------
f95d3c8378 | Adam Borowski | 2012-04-27 00:54:33 +0200

roctavian's updates to his Spider wall tiles.
Much brighter, to let them stand out from the floors.

--------------------------------------------------------------------------------
e8711eca11 | Raphael Langella | 2012-04-27 00:21:34 +0200

Turn on executable bit on some scripts.

--------------------------------------------------------------------------------
65f6131978 | Raphael Langella | 2012-04-27 00:21:33 +0200

Don't hard code the interpreter path in perl scripts.
This allows windows user to more easily use activeperl instead of msys perl.
It has better module support and handles newlines consistently with git.

--------------------------------------------------------------------------------
482c6c2638 | Raphael Langella | 2012-04-27 00:21:32 +0200

Simplify the ini conversion scripts.
More reliable UTF8 encoding, and no fancy module needed.

--------------------------------------------------------------------------------
9628a16334 | Adam Borowski | 2012-04-26 23:48:28 +0200

Fix place:D:X crashing in Sprint for X>1.
It's debatable what this should mean in game variants, but assuming "what
would spawn there in normal games" is a reasonable thing.

--------------------------------------------------------------------------------
1b836d1c07 | Adam Borowski | 2012-04-26 23:48:28 +0200

Fix place:Hive crashing.
Not that anyone would even consider writing this instead of using bees
directly.

--------------------------------------------------------------------------------
c35495686a | Adam Borowski | 2012-04-26 23:48:28 +0200

Reallow stair markers to masquerade as another stair type.

--------------------------------------------------------------------------------
f37330d6d0 | Adam Borowski | 2012-04-26 23:48:28 +0200

Give branches explicit base absdepth, instead of using distance to D:1.

--------------------------------------------------------------------------------
3772862b07 | Adam Borowski | 2012-04-26 23:48:28 +0200

Clear exclusion annotations when deleting a level.

--------------------------------------------------------------------------------
97bc01306b | Adam Borowski | 2012-04-26 23:48:28 +0200

Fix a crash on restoring a level with lua fog machines.

--------------------------------------------------------------------------------
ca1d36941b | Adam Borowski | 2012-04-26 23:48:28 +0200

Purge/archive tiles for deleted stuff.
What with the worn tile for knives?  Should it be given to daggers?  Removed?

--------------------------------------------------------------------------------
e04e16f0cc | David Lawrence Ramsey | 2012-04-26 15:27:11 -0500

Add wording fixes.

--------------------------------------------------------------------------------
c778ac94f1 | David Lawrence Ramsey | 2012-04-26 15:25:59 -0500

Add punctuation fixes.

--------------------------------------------------------------------------------
52c318d6df | David Lawrence Ramsey | 2012-04-26 15:25:09 -0500

Fix outdated comments.

--------------------------------------------------------------------------------
6b0ae70205 | Adam Borowski | 2012-04-26 20:49:58 +0200

Merge branches 'portal_branches' and 'compat_break'

--------------------------------------------------------------------------------
a87d407267 | Adam Borowski | 2012-04-26 19:20:08 +0200

Refer to abandoned shops as "shop" not "floor".

--------------------------------------------------------------------------------
7622b8bda9 | Adam Borowski | 2012-04-26 19:14:50 +0200

Remove the hatch up from erik_entry_cave_to_civilisation.
On D:1, going upstairs is suicidal (the sun may give you cancer, you know),
and it causes AKs to sometimes land there.

--------------------------------------------------------------------------------
155028d4d7 | Adam Borowski | 2012-04-26 19:14:50 +0200

Remove the pointless "lisp" fake translation.

--------------------------------------------------------------------------------
7c9f5ca26e | Adam Borowski | 2012-04-26 19:14:50 +0200

Move the fake german translation to "kraut", to make place for real German.
Sorry folks who use it, but that was expected.  And the fake lang wasn't
supposed to last longer than a day anyway...

--------------------------------------------------------------------------------
ede01764b4 | Raphael Langella | 2012-04-26 17:55:27 +0200

Change the yaml conversion scripts to make them use .ini format.
And convert newlines to/from literal \n for better multi-line support with
transifex.

--------------------------------------------------------------------------------
b46461e811 | Adam Borowski | 2012-04-26 17:01:00 +0200

Don't let Ice Caves set boring random monster sets.
None of these use 0/8/9 symbols, nor enable random spawns, so the only effect
are Shadow Creatures.  They can use the Ice Cave default instead.

--------------------------------------------------------------------------------
c3b62ae272 | Adam Borowski | 2012-04-26 16:13:57 +0200

Remove some unused portal vault special-casing.

--------------------------------------------------------------------------------
74002831be | Adam Borowski | 2012-04-26 16:04:57 +0200

Remove a portal vault monster set fallback to D monsters.

--------------------------------------------------------------------------------
1dc472d4df | Adam Borowski | 2012-04-26 16:00:35 +0200

Fix wizmode portals placing you in unexpected places in Labs.
It was special-cased for DNGN_ENTER_LABYRINTH.

--------------------------------------------------------------------------------
acbbd8c224 | Adam Borowski | 2012-04-26 15:47:24 +0200

Fix a crash on AKs leaving the initial Abyss, purge some unused code.
Also, fix a juicy magic enum value.

--------------------------------------------------------------------------------
8ae56bc5a6 | Adam Borowski | 2012-04-26 14:26:43 +0200

Fix mon-pick -test complaining about Vaults monster set.
It still relies on the D one, merely shifting them by a depth offset.

--------------------------------------------------------------------------------
f36b073a3d | Adam Borowski | 2012-04-26 14:24:13 +0200

Use a constant, not a magic value for "this monster doesn't spawn in this 
branch".

--------------------------------------------------------------------------------
e9204bc84e | Raphael Langella | 2012-04-26 14:18:05 +0200

Some translations for unidentified items.

--------------------------------------------------------------------------------
ccafe4a1a0 | Adam Borowski | 2012-04-26 14:12:13 +0200

Bump TAG_MAJOR_VERSION to 33.

--------------------------------------------------------------------------------
5ce83e62be | Adam Borowski | 2012-04-26 14:02:32 +0200

Remove a few more gaps in DNGN_ enums.
MINWALK is referenced only in two places, in the unlikely case a new feature
you can fly but not walk over gets added, it'd be a matter of an || -- in fact,
the only non-dubious place with MINWALK already has two such cases.

There's nothing that relies on DNGN_EXPLORE_HORIZON not being saved, so we're
free to just add enums at the end.

--------------------------------------------------------------------------------
93dddbd562 | Adam Borowski | 2012-04-26 13:42:13 +0200

Remove magic values from DNGN_ enums, sort them.
They caused problems by often going out of sync.

I still left a few reserved enums after ranges that have a slight reason of
being together.

--------------------------------------------------------------------------------
e5f69ddfe4 | Raphael Langella | 2012-04-26 12:37:54 +0200

A script to convert back yaml files in description files.

--------------------------------------------------------------------------------
ef555a7430 | Adam Borowski | 2012-04-26 12:35:43 +0200

Rename DNGN_MOVEMENT_MIN to avoid confusion with DNGN_MINMOVE.

--------------------------------------------------------------------------------
ef1e0455ad | Adam Borowski | 2012-04-26 12:00:32 +0200

Move DNGN_MALIGN_GATEWAY where it belongs: to solid features.

--------------------------------------------------------------------------------
2c78ec576e | Adam Borowski | 2012-04-26 12:00:32 +0200

An unfourgivable typou.
Silly Brits, silly Americans.

--------------------------------------------------------------------------------
e6e12f6d6d | Adam Borowski | 2012-04-26 12:00:31 +0200

Reserve enums for four tiers of mimics.
The names are up to debate, of course.  Also, as it's proposed to have the
final tier used just once, for Orb of Zot mimics, the name is especially
dubious.

--------------------------------------------------------------------------------
6f3705d9ba | Raphael Langella | 2012-04-26 11:58:10 +0200

Add 2 new languages: spanish and greek.

--------------------------------------------------------------------------------
c4ad846f94 | Raphael Langella | 2012-04-26 11:46:30 +0200

Commented out language entry in init.txt.

--------------------------------------------------------------------------------
cc34573b2b | Raphael Langella | 2012-04-26 11:33:40 +0200

Fix double empty lines when converting formatted text to yaml.

--------------------------------------------------------------------------------
1f7de58b03 | Raphael Langella | 2012-04-26 00:31:31 +0200

Fix yaml script eating blank lines.

--------------------------------------------------------------------------------
aadb366c5e | Adam Borowski | 2012-04-25 23:26:53 +0200

Axe an unused variable.

--------------------------------------------------------------------------------
1c2a803361 | Adam Borowski | 2012-04-25 23:13:06 +0200

Update a comment.
monster_type is not an int anywhere anymore.

--------------------------------------------------------------------------------
5ac2c21ec2 | Adam Borowski | 2012-04-25 23:07:48 +0200

Sort branch enums and data.

--------------------------------------------------------------------------------
8205272dae | Adam Borowski | 2012-04-25 23:01:56 +0200

Sort monster enums.

--------------------------------------------------------------------------------
da153af038 | Adam Borowski | 2012-04-25 22:40:13 +0200

Rename BOOK_CONJURATIONS_II to BOOK_CONJURATIONS.

--------------------------------------------------------------------------------
ca96156951 | Adam Borowski | 2012-04-25 22:38:21 +0200

Drop TAG_MAJOR_VERSION == 32 ifdefs.

--------------------------------------------------------------------------------
09c327fa2a | elliptic | 2012-04-25 14:22:11 -0400

Make earth elementals require more skill, water elementals require less.
Now the only asymmetry between the elements is that air elementals require
more skill than the other monsters; I left them at 15 skill for balance, since
they are already quite powerful.

It would be good to remove the spoily "min unfriendly" skill levels for this
spell at some point; this change is just meant to address balance though.

--------------------------------------------------------------------------------
e8da5e6c01 | Adam Borowski | 2012-04-25 16:35:56 +0200

Merge branch 'master' into portal_branches

--------------------------------------------------------------------------------
23ccb3ba91 | Raphael Langella | 2012-04-25 16:18:50 +0200

A script to convert a description file in yaml format.
It works nicely with transifex.

--------------------------------------------------------------------------------
cb2d9b1602 | Raphael Langella | 2012-04-25 15:35:49 +0200

More prompt for finding abyssal exits and rune.

--------------------------------------------------------------------------------
b15ddc7bf0 | Adam Borowski | 2012-04-25 15:17:34 +0200

Base updating or not the travel cache on whether the old level still exists.

--------------------------------------------------------------------------------
daff41667b | Adam Borowski | 2012-04-25 15:05:35 +0200

Don't let people rest in the Temple on the Orb run.
This is probably too insignificant to be relevant, but it'd be a pain to
let a splat go to waste.

--------------------------------------------------------------------------------
5556f802f8 | Adam Borowski | 2012-04-25 15:05:35 +0200

Fix Shadow Creatures not doing anything in Baileys and Ossuaries.
The monster sets are not especially inspired...

--------------------------------------------------------------------------------
fee89fcab5 | Adam Borowski | 2012-04-25 15:05:34 +0200

A fallback monster set for Ice Caves.
Currently unused as all maps define one, although it might be better to go
with this default instead, as those "ice beast w:90 / nothing" are less than
interesting.

--------------------------------------------------------------------------------
902463731f | Adam Borowski | 2012-04-25 15:05:32 +0200

Don't special-case old LEVEL_PORTAL_VAULT wrt Shadow Creatures.
Before portal_vaults, it would summon monsters appropriate for the last
LEVEL_DUNGEON map you were on.  After this commit, it fails unless there
is a monster set defined, either in branch-data.h and mon-pick.cc, or
via set_random_mon_list().

--------------------------------------------------------------------------------
c968e064d0 | Adam Borowski | 2012-04-25 14:59:13 +0200

Set monster sets for wizlab_doroklohe (for Shadow Creatures).
This allows learning what monsters you will face before they are released
(by casting Shadow Creatures), although I guess this is not a problem as a
means of digging can also reveal this.

--------------------------------------------------------------------------------
d562eac1e7 | Adam Borowski | 2012-04-25 14:59:12 +0200

Insult wizmode users instead of crashing when entering a recursed portal.

--------------------------------------------------------------------------------
fb95979844 | elliptic | 2012-04-25 05:24:13 -0400

Fix IMB explosion giving a message about exploding even if you can't see it.

--------------------------------------------------------------------------------
551f343ca8 | Adam Borowski | 2012-04-25 07:32:20 +0200

Simplify serial/ponds.des

--------------------------------------------------------------------------------
130d3a9fba | Adam Borowski | 2012-04-25 07:08:15 +0200

Don't let the Vestibule taper off orb run spawns.

--------------------------------------------------------------------------------
8d80c0c7f4 | Adam Borowski | 2012-04-25 06:56:07 +0200

No need to explicitely disable monster spawns in Labs.

--------------------------------------------------------------------------------
0fe0bd8e17 | Adam Borowski | 2012-04-25 06:39:34 +0200

Fix monster spawns being reduced by the spawn rate twice.

--------------------------------------------------------------------------------
d9437006f7 | David Lawrence Ramsey | 2012-04-24 23:35:53 -0500

Make has_usable_tentacle() take tentacle-removing transformations into account.

--------------------------------------------------------------------------------
02b4c1d2dc | elliptic | 2012-04-24 20:07:01 -0400

Fix monsters cheating with reaching weapons and grates.
Now they can't swing a bardiche through a grate any more than a player can.

--------------------------------------------------------------------------------
a64339f49f | Adam Borowski | 2012-04-25 00:13:33 +0200

Allow Donald to spawn in Labs.
No attempts to recover him if you fail to meet him.  Uniques are not
guaranteed anyway, this is both an additional chance for him to spawn,
and a chance to be effectively out of your game.

--------------------------------------------------------------------------------
9c37478fa5 | Adam Borowski | 2012-04-24 23:51:33 +0200

List all places where uniques can spawn in full, rather via absdepth.
I could have added a is_connected_branch() check to preserve the old
behaviour, but this way, even though far more verbose, is easier to read,
makes nonsense easier to spot, and avoids pitfalls like sometimes DEPTH being
given as absdepth0 sometimes as absdepth1¹.

This commit intentionally fully replicates the behaviour portal_branches had
before (ie, already different from trunk by absdepths being constant).  This
suffers by, for example, Elf having a ridiculously small depth and thus
spawning easy uniques.  Let's fix this later to have changes easier to read.

[¹]. A number of my recent commits has off-by-1 errors due to that, I did
not suspect the absdepth1 thing...

--------------------------------------------------------------------------------
1f744aac2b | Adam Borowski | 2012-04-24 19:35:08 +0200

Fix monsters from deleted levels going to the Abyss.
Guess how it looked after a typical Pan trip, or a Ziggurat skipped via
projected noise or DDoor....

Also, fix ones in Pan being cloneable.  We got enough with Ragdoll and Maurice.

--------------------------------------------------------------------------------
361f092eb3 | Adam Borowski | 2012-04-24 19:04:32 +0200

Show monster names instead of "it" in transit dprf()s.
They're usually out of sight.

--------------------------------------------------------------------------------
bea38d3994 | Adam Borowski | 2012-04-24 18:28:59 +0200

Fix uninitialized branch depths for the Arena.

--------------------------------------------------------------------------------
98830d7449 | Adam Borowski | 2012-04-24 18:03:29 +0200

Fix Sprint crashing on references to non-existent branches.

--------------------------------------------------------------------------------
3b6a7ff088 | Raphael Langella | 2012-04-24 17:51:19 +0200

Use shift+letter instead of ctrl+letter to single-select skills.
ctrl+letter doesn't work for several letters in console and in webtiles.
If more than 26 skills can be trained, the 27th+ are mapped to numbers
(and they cannot be single-selected with shift number).

--------------------------------------------------------------------------------
b75146b04d | Raphael Langella | 2012-04-24 17:06:26 +0200

A script to automatically wrap or unwrap description and database files.
Call it with -u to unwrap. Unwrapped text are easier to translate.
Transifex split text files at newlines into strings.
Some people find text with manual wrapping easier to read. All text
editors support automatic text wrap, and most of them do it by default but
whatever.
Support for windows newlines is a bit hackish. Msysgit convert newlines to
native windows format when pulling and pushing, but msys perl use unix
style newline.

--------------------------------------------------------------------------------
fd3b6afd91 | Adam Borowski | 2012-04-24 16:45:11 +0200

Let ^F and item memory work in Labs and the Abyss.
It's a pain in the butt to have to return to every item you just ran past
(LOS in the Abyss tends to be spotty).  This commit makes the memory last
until the map cell rots away.

--------------------------------------------------------------------------------
e49405bfe9 | Adam Borowski | 2012-04-24 16:23:09 +0200

An alternate fix for Trowels in the Abyss: allow recursion.
Unlike regular levels, there's no loss in losing the previous Abyss level,
and we can explain that the Abyss shifted while you were inside the portal
vault.  This way, you can get banished there again.

This reverts commit c9636753628627f08f85e889025778d5653fc190.

--------------------------------------------------------------------------------
0ce59bb354 | Adam Borowski | 2012-04-24 16:02:25 +0200

Forbid a number of layouts in Pan.
Before, map selectors were special-cased wrt LEVEL_DUNGEON.

--------------------------------------------------------------------------------
b4c9b8832a | Adam Borowski | 2012-04-24 15:23:30 +0200

Fix "No vault found for tag 'special_room'".
The hack there is nasty, but listing all available places would be worse as
it'd cause 1. special rooms not spawning for no obvious reason, or 2. the
above error message showing up, just because someone forgot to update the
second copy of the list.

--------------------------------------------------------------------------------
730c05b4d5 | Adam Borowski | 2012-04-24 14:26:44 +0200

Fix unrands generated on the floor and via &% not getting their inscription.

--------------------------------------------------------------------------------
f897cc3096 | Adam Borowski | 2012-04-24 14:26:44 +0200

"King" is male, so the desc shouldn't use a female form.
Strictly speaking, silly Polacks did it wrong with Jadwiga (crowned king
(rex not regina)), but nearly universally, a regnant female is "queen" not
"king".  This association is so strong I'll rather use a gendered rather
than neuter wording here.

--------------------------------------------------------------------------------
9a781f6e7d | elliptic | 2012-04-23 21:50:27 -0400

Make ignite blood and foul stench mutually exclusive.
They have similar effects (producing clouds under monsters) that interfere
with each other.

--------------------------------------------------------------------------------
55adfe932e | elliptic | 2012-04-23 21:50:26 -0400

Combine rN+++ and rTorment demonspawn facets.
These two were very similar, since the main use of rN+++ is guaranteed
decreased damage from torment. Also, rN+++ suffered from making other sources
of rN+ useless and rTorment suffered from being nearly completely useless in
a 3-rune game.

Now the facet is rN+ / rN++ / rTorment (50%).

--------------------------------------------------------------------------------
1517b8309c | elliptic | 2012-04-23 21:50:26 -0400

Remove MR demonspawn facet.
It was about as boring as they come, and we have plenty of other tier 2 facets
now. A partial MR facet with one or two levels being some other exciting
"magic" mutation could be good, though.

--------------------------------------------------------------------------------
d1ffdac015 | Neil Moore | 2012-04-23 20:57:05 -0400

Turn the mist on in minmay_temple_entry_mist.
When the steam was changed to mist and the lava removed (d7c562c),
there was nothing left for the fog machine to attach to.

--------------------------------------------------------------------------------
4567686eda | Neil Moore | 2012-04-23 20:50:49 -0400

Merge some KMASK: lines.
Now that it works correctly.

--------------------------------------------------------------------------------
88b0cbd465 | Neil Moore | 2012-04-23 20:38:42 -0400

Improve KMASK/KMONS interaction, singlify Orb Guardians.
KMONS, KITEM, and KFEAT are intended to override the normal meaning of
the key glyph.  For example, with:
  MONS:  kobold
  KMONS: 1 = orc
the glyph '1' will produce an orc and not a kobold; and with:
  KMONS: W = orc
the glyph 'W' will produce an orc on floor, not shallow water.

KMASK works differently: it keeps the underlying meaning of the glyph.
This is accomplished by keyed_mapspec::set_mask() setting the feature
to the original glyph (commit 3ba8bc8).  So with:
  KMASK: W = no_monster_gen
the glyph 'W' will produce shallow water with the no_monster_gen mask,
and with:
  MONS:  kobold
  KMASK: 1 = no_trap_gen
the glyph '1' will produce a kobold on floor with the no_trap_gen mask.

This is all well and good.  However, when both KMONS (or KITEM or KFEAT)
and KMASK are specified, the glyph should be overridden.  However, since
set_mask() set the feature explicitly, this does not happen: both the
glyph and the KMONS have their effect.  That is:
  MONS:  kobold
  KMONS: 1 = orc
  KMASK: 1 = no_item_gen
results in the glyph '1' producing both a kobold and an orc.  The
difference in result from the first example is unacceptible.

Furthermore, a multi-glyph key in KMASK was applying the fix-up only for
the first glyph:
  KMASK: wW = no_pool_fixup
caused the 'W' glyph to become floor rather than shallow water.

Fix all of this by removing the special-case code from set_mask(), and
instead having _vault_grid() treat a mask-only mapspec the same as no
mapspec, using _vault_grid_glyph() rather than _vault_grid_mapspec().
The mask itself is handled elsewhere, in dgn_register_place().

Fixes 5561.

This reverts commit 3ba8bc84d018da1452880ac897a433ca7752ebb5.

--------------------------------------------------------------------------------
79ee929897 | Adam Borowski | 2012-04-24 02:13:05 +0200

Simplify random_god().

--------------------------------------------------------------------------------
35bb0853d8 | Adam Borowski | 2012-04-24 01:55:40 +0200

Disallow skipping ornate Trowels.
This fixes unspoiled players being cheated out of legendary ones, and
doesn't allow people to get out of that crystal statue trouble.

--------------------------------------------------------------------------------
c963675362 | Adam Borowski | 2012-04-24 01:29:44 +0200

Make legendary Trowel card do something in the Abyss.
Not sure how to make Malign Gateway work, so for now this includes only
Abyss exits.  Portal vaults from the Abyss require some special handling
of banishment while inside, so that's probably not fitting well.

--------------------------------------------------------------------------------
037a11fa5a | Adam Borowski | 2012-04-24 00:57:39 +0200

Opt-in rather than opt-out special rooms.

--------------------------------------------------------------------------------
499b8f7845 | Adam Borowski | 2012-04-24 00:20:00 +0200

Don't crash when some smartass does &(exit_pandemonium in wizmode.
(Or any other exit that expects a return path on the level stack.)

--------------------------------------------------------------------------------
ccaa786905 | Neil Moore | 2012-04-23 16:05:17 -0400

Unbreak builds against curses variants without KEY_RESIZE.

--------------------------------------------------------------------------------
502efc8e3f | Neil Moore | 2012-04-23 15:59:03 -0400

Ignore ncurses KEY_RESIZE.
We already handle the SIGWINCH elsewhere.  This prevents an "Unknown
command" message every time the terminal size changes.

--------------------------------------------------------------------------------
6748adf21e | Adam Borowski | 2012-04-23 21:32:03 +0200

Disregard map uniqueness on &L and &P
This unbreaks subvaulted maps, which would typically run out of legal
subvaults.  The only restriction is that a single map cannot use the same
subvault twice (with no allow_dup), as expected.

--------------------------------------------------------------------------------
3329f2d146 | Raphael Langella | 2012-04-23 21:04:53 +0200

Skill menu: ctrl+letter to select one skill and select all others.

--------------------------------------------------------------------------------
35a80aada8 | Chris Campbell | 2012-04-23 17:40:46 +0100

Don't level up Wyrmbane for killing friendly or summoned dragons

--------------------------------------------------------------------------------
6c3ddeac0a | Adam Borowski | 2012-04-23 15:31:47 +0200

Don't make a note on unrand creation.
This includes not noting fixed monster unrands (pseudo_unided to avoid
redundancy in "Cerebov hits you with the sword of Cerebov.") and the Singing
Sword (debatable whether this is right...).

Only randapp unrands (robe of misfortune, ...) get notes on identification.

--------------------------------------------------------------------------------
8720fbf8c9 | Adam Borowski | 2012-04-23 15:31:47 +0200

Update the manual for =f +f =F +F (sync from the wiki).

--------------------------------------------------------------------------------
6f0640ea45 | Adam Borowski | 2012-04-23 15:31:47 +0200

Don't have ?~ claim ^V is unused, either.

--------------------------------------------------------------------------------
45ba18c899 | Adam Borowski | 2012-04-23 15:31:47 +0200

Make a few more functions static/gone.

--------------------------------------------------------------------------------
d33bf9328f | Florian Diebold | 2012-04-23 12:31:36 +0200

Adjust the weights for the spider floor tiles a bit.
Some of the tiles (5, 6, 10, 11) are very noticeable and look
repetitive if they occur too often.

--------------------------------------------------------------------------------
50e56bfa43 | Raphael Langella | 2012-04-22 19:26:52 +0200

Clear selection in the high score menu after viewing a morgue file.

--------------------------------------------------------------------------------
92ee5181cb | Raphael Langella | 2012-04-22 19:21:46 +0200

Unprotect PrecisionMenu::clear_selections.

--------------------------------------------------------------------------------
b33b8708ee | Raphael Langella | 2012-04-22 19:01:26 +0200

Reorder the attach_object calls of the high score menu (BlackSheep).

--------------------------------------------------------------------------------
082d911c67 | Chris Campbell | 2012-04-22 17:33:34 +0100

Update help for some removed/changed/undocumented commands

--------------------------------------------------------------------------------
cdd3b58659 | Adam Borowski | 2012-04-22 16:33:30 +0200

A toggle for autothrow, not bound to a key yet.
Use some useless key (like, ^T on a non-Beoghite), ^D then macro it
to ===toggle_autothrow

--------------------------------------------------------------------------------
21ea1fbfab | Neil Moore | 2012-04-22 04:21:32 -0400

Return multiple items from items.get_items_at().
Like full_describe_view(), we get the extra items from the stash
tracker; on untracked levels we can get only the top.

Difficulties arise because the stash tracker returns item_defs on the
stack where they cannot safely be pointed to.  To handle this properly,
item_wrapper gains a new boolean member indicating whether the item_def
is a temporary copy (as opposed to an element of mitm, for example); a
new C function clua_push_item_temp() allocates a copy of an item_def and
creates such a wrapper.  If the temporary flag is true, the item_def
will be freed when the wrapper is GCed.

--------------------------------------------------------------------------------
ef185ba1f2 | Adam Borowski | 2012-04-22 04:01:49 +0200

Don't wipe the map when Abyss scrolls.
Shifts are an implementation detail, for the player it's supposed to be
seamless.

--------------------------------------------------------------------------------
89f1b71c5d | Adam Borowski | 2012-04-22 03:52:50 +0200

Simplify map rot code.
Amnesia traps -- and thus, flat chance maprot -- is long since gone.

Of particular interest is the way old forget_map() was called from abyss.cc.
We had two functions:
    forget_map(bool force)
    forget_map(int chance = 100, bool = false)
Guess which one forget_map(true) called?  Not that obvious that one prototype
was missing...  No wonder no sane language has function overloading.

--------------------------------------------------------------------------------
1e8d292be9 | Adam Borowski | 2012-04-22 03:24:11 +0200

Axe several unused functions.

--------------------------------------------------------------------------------
3dc861367f | Adam Borowski | 2012-04-22 01:17:43 +0200

Fix the message on gaining large bone plates.
Also, fix builds with TAG_MAJOR != 32.

--------------------------------------------------------------------------------
88975ef569 | Raphael Langella | 2012-04-22 01:05:17 +0200

Add mouse support for high score menu.

--------------------------------------------------------------------------------
5ff115f4fe | Raphael Langella | 2012-04-21 23:48:34 +0200

Fix overlap in high score menu.

--------------------------------------------------------------------------------
2efd080bc1 | Adam Borowski | 2012-04-21 22:12:06 +0200

Revert get_items_at -> get_item_at, fix it not working out of LOS, fix crashes.
It doesn't actually work for any items but the top yet, but at least the
interface won't change.

This reverts commit 198c943b116acfd9a1997c48073f29e520e7c0c4.

--------------------------------------------------------------------------------
68d7b4c9d7 | Adam Borowski | 2012-04-21 21:47:43 +0200

Remove a stray prototype that doesn't belong in that file.

--------------------------------------------------------------------------------
e285e63847 | Neil Moore | 2012-04-21 14:48:32 -0400

Darker spider floor tiles (roctavian).
To provide somewhat more contrast with the new walls.

--------------------------------------------------------------------------------
b306b9965d | Neil Moore | 2012-04-21 14:08:13 -0400

Prompt for moving next to allies etc while confused.
This is intended to include any creature for whom you would get a
stop-attack prompt: allies, neutrals under good gods, confused/sleeping
creatures under TSO, etc.

Fedhas worshippers are still able to "step carefully" through plants
through plants while confused.  This is probably a bug.

--------------------------------------------------------------------------------
198c943b11 | Neil Moore | 2012-04-21 13:07:55 -0400

Avoid info leak, get_items_at -> get_item_at.
Returns an item or nil.  This avoids leaking information about items
at the bottom of an unvisited pile.  For the same reason, do not return
anything from an invisible pile (e.g. one at the bottom of deep water
for non-swimmers).

It would be nice to use the stash to return an entire visited pile,
but there doesn't seem to be a way to get a semi-permanent pointer
to an item_def in the stash.

--------------------------------------------------------------------------------
cdc7f72a3f | Policarpo Caballero | 2012-04-21 12:48:38 -0400

New clua binding that returns an array of floor items.

--------------------------------------------------------------------------------
0321078a44 | Neil Moore | 2012-04-21 11:40:08 -0400

Don't draw off-screen cells.
view_update_at() can be called on a cell just outside LOS (e.g. from
monster::check_redraw() redrawing the old cell).  With a small enough
terminal, this cell could even be off the edge of the screen.  In this
case, do everything except actually draw the cell, since positioning
the cursor there would assert.  This should fix a crash that shows up
occasionally, for example in:
  http://crawl.akrasiac.org/rawdata/Pac/crash-Pac-20120420-045409.txt

(I have not been able to reproduce the crash, however.)

--------------------------------------------------------------------------------
b7668d5b5d | David Lawrence Ramsey | 2012-04-21 07:40:27 -0500

Tweak wording of crazed wizard description.

--------------------------------------------------------------------------------
25140de0ac | Adam Borowski | 2012-04-21 10:45:34 +0200

roctavian's tiles for Spider walls.

--------------------------------------------------------------------------------
6755d9ef53 | Adam Borowski | 2012-04-21 10:10:42 +0200

Make util/optimize-pngs work with /bin/sh != bash.
Also, recognize the no-op case and write a message rather than letting
optipng error out.

--------------------------------------------------------------------------------
22539c8b98 | Adam Borowski | 2012-04-21 07:49:17 +0200

Split =f/+f into =f/+f (autoquiver) and =F/+F (ammo cycling).
With autothrow, you (practically) don't get to review the item anymore, and
have a stronger reason to keep good/special ammo kinds easily selectable
('Q' is anything but handy).

--------------------------------------------------------------------------------
e7a5462849 | Adam Borowski | 2012-04-21 01:34:36 +0200

Don't call Tab unused in ?~
There are so few keys left unbound... ^R, ^V, F1-F12, and that's basically it.

--------------------------------------------------------------------------------
aaea51835f | Adam Borowski | 2012-04-21 01:34:35 +0200

Mindexicide: behaviour_event().
This also reveals how bad the beam blaming code is, need to rewrite that soon
-- mostly because of problems with reflection.

--------------------------------------------------------------------------------
888cf270cf | Adam Borowski | 2012-04-21 01:33:27 +0200

Don't let n_adj/n_suf survive polymorphs.
Some cases may be ok (spriggan baker -> ogre baker), but usually it's highly
inappropriate.  The only names that stay are "XXX the YYY".

Adjectives/suffixes added to arbitrary monster types would be a nightmare for
translations, too.

--------------------------------------------------------------------------------
d090918256 | Adam Borowski | 2012-04-20 23:27:33 +0200

Add a desc for "crazed wizard" (hellish Lair end).

--------------------------------------------------------------------------------
ccceac4dfd | David Lawrence Ramsey | 2012-04-20 15:24:21 -0500

Remove inaccurate comment.

--------------------------------------------------------------------------------
15cafadcc2 | elliptic | 2012-04-20 15:55:46 -0400

Make rAcid and rCorr equivalent.
They already nearly always appeared together (only yellow scales were an
exception) and there wasn't much use for rAcid++(+). With the recent change to
not display rAcid in the % screen, there wasn't even a way for players to know
that amulet of corrosion + cloak of preservation stacked.

Now rCorr is equivalent to rAcid+ and rAcid++(+) doesn't exist (for players).
Yellow scales now give rCorr at the third level of the mutation. (If a
justification for scales protecting equipment from acid is needed, let's say
that they drip protective acid onto your equipment.)

--------------------------------------------------------------------------------
644b10b2d5 | Chris Campbell | 2012-04-20 16:11:56 +0100

Don't give piety for banishing plants

--------------------------------------------------------------------------------
ef57d545bd | Raphael Langella | 2012-04-20 16:17:25 +0200

Lua hooks for toggling skill training.

--------------------------------------------------------------------------------
76b6a5e16e | Raphael Langella | 2012-04-20 15:06:03 +0200

Use round close by default for the new stepdown function.
Calls going through the old definition will still be rounded down to keep close 
to the old implementation.

--------------------------------------------------------------------------------
c0e28c7482 | Raphael Langella | 2012-04-20 14:39:53 +0200

No mimics in Hell/Pan/Tomb.

--------------------------------------------------------------------------------
9f7ed774a4 | Raphael Langella | 2012-04-20 14:39:53 +0200

Halve the number of item mimics.

--------------------------------------------------------------------------------
24cefa76c8 | Raphael Langella | 2012-04-20 14:39:53 +0200

Optimize high score tile.

--------------------------------------------------------------------------------
813f2c10e9 | Adam Borowski | 2012-04-20 13:53:31 +0200

A new autofight option: autofight_throw.
If set, will pelt enemies with darts/etc while they advance towards you.  Should
probably be smarter to not do this against ranged enemies (where you want to go
to melee ASAP), but it's a start.

Off by default.

--------------------------------------------------------------------------------
6e2101aca1 | Adam Borowski | 2012-04-20 13:09:15 +0200

If a lua error happens during autofight, display it.
Too bad, in some cases there is an error, yet the error message is empty.
For example, having the following in your init.txt:

{{
local function have_ranged()
  return items.fired_item() ~= nil
end
}}

makes autofight return such an empty error.  Any ideas why?

I think having a buggy error reporter is still better than not reporting
the error at all, though -- left this in.  A fix would be nice.

--------------------------------------------------------------------------------
2818eb52b5 | Adam Borowski | 2012-04-20 12:21:12 +0200

(Hy) -> (I) in the jägerkin fake translation.

--------------------------------------------------------------------------------
b71ee29035 | Adam Borowski | 2012-04-20 11:43:16 +0200

Unrestrict HaAK.
Halflings are strongly railroaded into a single weapon type, but that one
happens to be the best one for distortion branding.  Also, the banishment
invocation is a powerful stick against anything tough you fail to stab.

--------------------------------------------------------------------------------
b9fa5b2862 | Adam Borowski | 2012-04-20 11:41:52 +0200

Fix an evil macro masquerading like a function call but not behaving like one.

--------------------------------------------------------------------------------
42ba8f512f | Adam Borowski | 2012-04-20 04:09:30 +0200

Make a few functions static.

--------------------------------------------------------------------------------
3c9610e3a0 | Adam Borowski | 2012-04-20 03:43:34 +0200

Drop pointless braces after else/else if as well.

--------------------------------------------------------------------------------
71296b4449 | Adam Borowski | 2012-04-20 03:36:13 +0200

Fix a compiler warning.

--------------------------------------------------------------------------------
8c7b32b091 | Adam Borowski | 2012-04-20 03:34:04 +0200

Remove a pointless if.
It was used only for the function's side effects -- call it directly.

--------------------------------------------------------------------------------
8e11520da1 | Adam Borowski | 2012-04-20 03:28:26 +0200

Drop pointless braces after if/for/while everywhere.

--------------------------------------------------------------------------------
9716a531a1 | Adam Borowski | 2012-04-20 02:59:55 +0200

Use a space after control statements.

--------------------------------------------------------------------------------
e4229a39db | elliptic | 2012-04-19 20:48:01 -0400

Fix Powered by Death mutation sometimes not triggering (Patashu).

--------------------------------------------------------------------------------
0264095bfd | Adam Borowski | 2012-04-20 02:40:52 +0200

Drop pointless braces.

--------------------------------------------------------------------------------
aaf201747f | Adam Borowski | 2012-04-20 02:40:52 +0200

Indent and format.

--------------------------------------------------------------------------------
0c7bca3907 | Adam Borowski | 2012-04-20 02:04:44 +0200

Slight cleanup: Tm don't have Evaporate anymore.

--------------------------------------------------------------------------------
e67331f2ac | David Lawrence Ramsey | 2012-04-19 13:56:50 -0500

Simplify the description of the scroll of unholy creation.

--------------------------------------------------------------------------------
6cb2f10316 | David Lawrence Ramsey | 2012-04-19 13:13:47 -0500

Remove tentacles as a mutation, and make them intrinsic to octopodes. For now, 
Beastly Appendage will grant claws instead of tentacles.

--------------------------------------------------------------------------------
92d636f982 | Florian Diebold | 2012-04-19 17:02:30 +0200

Ontoclasm's dragonform tiles.

--------------------------------------------------------------------------------
8dc099d4c2 | Florian Diebold | 2012-04-19 17:02:30 +0200

A shell script to optimize new tiles.
I was tired of looking up the commands in tiles_creation.txt every
time I add a tile, so I wrote a script that applies them to all png
files that are modified in the current index (so you have to git add
them first). I didn't test this much and don't have much experience in
shell scripting anyway, so maybe this can be improved, but it may be
useful to someone else.

--------------------------------------------------------------------------------
f470cca491 | Florian Diebold | 2012-04-19 17:02:30 +0200

Webtiles: Track cell dirtyness in more detail to improve performance.
In my completely unscientific tests, this vastly improves the cpu
usage of webtiles while running or autoexploring without
travel_delay=-1, bringing it almost to webtiles-in-terminal-mode
levels (which are still somewhat higher than when running without
webtiles support).

--------------------------------------------------------------------------------
c0bb57a731 | Raphael Langella | 2012-04-19 16:55:34 +0200

Footer help line for high score menu (Blacksheep).

--------------------------------------------------------------------------------
3cd6143275 | Raphael Langella | 2012-04-19 16:43:21 +0200

Handle pgup/down in menuscroller (BkackSheep).

--------------------------------------------------------------------------------
5ada5f1778 | Raphael Langella | 2012-04-19 16:41:28 +0200

Some improvements to the highscore layout.
No need to use TextTileItem.
Use the full screen width, it didn't look good with long lines.
Adapting to the line length might be better.
And no centering.

--------------------------------------------------------------------------------
cd7f9e8e8b | Raphael Langella | 2012-04-19 15:49:20 +0200

Roctavian's tile for high scores.

--------------------------------------------------------------------------------
298ea01785 | Thomas Holmes | 2012-04-19 14:34:08 +0200

Adjusting of the positioning in tiles and ensuring that the morgue file stayts 
WHITE instead of going LIGHTGREY after moving

--------------------------------------------------------------------------------
b112ecd1d8 | Thomas Holmes | 2012-04-19 14:34:07 +0200

Some more cleanup of high-score code

--------------------------------------------------------------------------------
539c008f9d | Thomas Holmes | 2012-04-19 14:34:06 +0200

Duplicated a scroll tiles for the highscores tile. A swap of the file should 
fix it when someone gets around to it.

--------------------------------------------------------------------------------
dd1b15737b | Thomas Holmes | 2012-04-19 14:34:05 +0200

Fixing the dimensions of the highscore menu scroller.

--------------------------------------------------------------------------------
4491122cfb | Thomas Holmes | 2012-04-19 14:34:04 +0200

Cleaning up some unused code.

--------------------------------------------------------------------------------
1fe673f074 | Thomas Holmes | 2012-04-19 14:34:03 +0200

Making some of the highscore code more flexible between tiles and console.

--------------------------------------------------------------------------------
2b4193f458 | Thomas Holmes | 2012-04-19 14:34:02 +0200

Now loads in morgue files for browsing.

--------------------------------------------------------------------------------
1233ce084c | Thomas Holmes | 2012-04-19 14:34:00 +0200

Some refactoring of highscore table code, catching enter keypress, and stubbing 
the loading of the morgue file

--------------------------------------------------------------------------------
7b98e9b5b3 | Thomas Holmes | 2012-04-19 14:33:59 +0200

Refactored _morgue_name(t_time) to morgue_name(std::string, t_time) and made it 
public facing so that high scores could get the morgue file name rather than 
rebuilding it itself.

--------------------------------------------------------------------------------
96260651bd | Thomas Holmes | 2012-04-19 14:33:58 +0200

Beginning of working highscore functionality. Adds the beginning menu item, and 
builds the list. Shows a short lines and then the detailed listing as you 
select each entry.

--------------------------------------------------------------------------------
8d11180881 | Raphael Langella | 2012-04-19 10:17:14 +0200

Remove rAcid from the % screen and give rCorr to yellow draconians.
rAcid still has 3 levels and rCorr amulet still stacks with cloak of
preservation to give 2 of them. It's just too rare to be worth a line in
the % screen.
Yellow scale mutation doesn't give rCorr and should probably be removed
for simplicity. It's one of the least relevant scale mutation anyway.

--------------------------------------------------------------------------------
22895bf59d | Raphael Langella | 2012-04-19 10:03:45 +0200

Formatting fix.

--------------------------------------------------------------------------------
972a45f860 | David Lawrence Ramsey | 2012-04-18 22:43:25 -0500

Fix monster grey draconian checks for being submerged and extra balanced.

--------------------------------------------------------------------------------
3b1204dffc | David Lawrence Ramsey | 2012-04-18 22:23:28 -0500

Fix apparent typo in tentacle squeeze attack damage.

--------------------------------------------------------------------------------
f4b9f3e4df | Neil Moore | 2012-04-18 23:13:16 -0400

Comment fix.

--------------------------------------------------------------------------------
38ef76ed73 | David Lawrence Ramsey | 2012-04-18 22:09:29 -0500

Comment fix.

--------------------------------------------------------------------------------
3ad54f599c | Neil Moore | 2012-04-18 22:46:12 -0400

Don't block distortion teleports of monsters (Patashu, G-Flex).
Commit 83dafbf made the stasis/-tele/sprint checks on distortion
teleports affect monsters too.  The first two don't make sense,
because it is the player's items being checked; and teleporting
monsters in Sprint is not a problem the way teleporting the player
is.

It would probably make sense for -TELE artefacts to have their effect on
monsters, but that would need checking in a lot more places than this,
remembering that monsters are sometimes teleported in "emergency"
situations such as being on the same square as the player, and those
teleports should not be blocked.  Such a change will have to wait for
another day.

Thanks to G-Flex for spotting this, and Patashu for tracking down the
erroneous code.

--------------------------------------------------------------------------------
3c9c94052e | David Lawrence Ramsey | 2012-04-18 21:06:34 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
d5247454cb | David Lawrence Ramsey | 2012-04-18 21:00:54 -0500

Add more formatting fixes.

--------------------------------------------------------------------------------
8f1063e316 | David Lawrence Ramsey | 2012-04-18 20:54:56 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
6eacb65a33 | David Lawrence Ramsey | 2012-04-18 20:47:44 -0500

Add formatting fix.

--------------------------------------------------------------------------------
1fc6ca0b95 | elliptic | 2012-04-18 21:15:33 -0400

Grey draconian changes.
Grey draconians were generally regarded as the weakest colour, and for good
reason - in exchange for a breath weapon and a resist, you just got better
Stealth/Stabbing apts (irrelevant in the vast majority of games and not
important enough to build a character around) and breathless
(very situational, mainly just used for traveling across water and self-meph).

Now they are themed more like iron dragons - still no breath weapon, and the
Stealth/Stabbing apts are normal now, but the scales are iron-like, giving
5 extra AC over other dracs. Also, the iron scales give them extra mass,
helping them to balance properly to attack in water without penalty.

--------------------------------------------------------------------------------
d2bcacb8d4 | Adam Borowski | 2012-04-18 14:51:58 +0200

Fix shedu keeping pointlessly casting at each other.

--------------------------------------------------------------------------------
e81146bfc5 | Adam Borowski | 2012-04-18 14:32:33 +0200

Rename scrolls of summoning to unholy creation.
Unlike summons, these aboms are permanent, give xp/piety (unless created by
you), are unaffected by warding, etc, etc.  The only way they differ from
necromancy is that they are created from nothing (or as I worded it, from
matter drawn from the Abyss).

--------------------------------------------------------------------------------
75d0a6b923 | Adam Borowski | 2012-04-18 13:17:21 +0200

Delete levels at the proper time, collect most data deletion into one place.
It was a mess: most portals were kept on the disk, deleted only when you
entered a new instance (ie, except for Pan, Abyss, Zigs and trowel cards,
never).  Associated data was removed at arbitrary times, often prematurely
(like, when getting banished, even if you could come back).

Not handled yet:
* wizmode shenanigans
* travel cache

--------------------------------------------------------------------------------
9fc004ff88 | Adam Borowski | 2012-04-18 11:46:48 +0200

Water potions are always "clear" -- so don't pretend they're unknown.

--------------------------------------------------------------------------------
108d11072f | Adam Borowski | 2012-04-18 11:25:42 +0200

Pre-id the weapon brand (holy wrath) for the angel in zin_angel.

--------------------------------------------------------------------------------
cbc0dd1c0e | Adam Borowski | 2012-04-18 10:49:49 +0200

Don't include webs in the stash tracker.
There's too many of them, spamming out looking for traps.  They're hardly
more notable than shallow water.

--------------------------------------------------------------------------------
dc449fa414 | Adam Borowski | 2012-04-18 10:25:22 +0200

Make a comment more clear.
It may be an option to make the code a bit slower and hairier, but more
obvious, instead.

--------------------------------------------------------------------------------
bc8c0f841d | Adam Borowski | 2012-04-18 10:14:47 +0200

Remove another few unused functions.
Also, instead of inc_max_mp() which does a bunch of stuff like adding notes
(suppressed), healing you, etc, just increase max_mp directly.  It's used
only during player creation.

--------------------------------------------------------------------------------
ff004f8d74 | elliptic | 2012-04-18 02:59:30 -0400

Fix most characters having 0 EV.
And some other badness with ceiling_value = -1 stepdowns... everything before
the first step was set to 0, oops.

--------------------------------------------------------------------------------
81634a07fd | Adam Borowski | 2012-04-18 01:25:05 +0200

roctavian's tile for Nikola.
Far better than the old "persian wizard" one.  Also, has a weapon attachment.

--------------------------------------------------------------------------------
49942e1e2f | Adam Borowski | 2012-04-18 01:13:42 +0200

roctavian's new trapdoor spider tile.

--------------------------------------------------------------------------------
af32acd0b7 | Adam Borowski | 2012-04-18 00:57:35 +0200

Grant at least half XP when banishing monsters.
Reason: it looks like XP loss is the primary reason why hardly anyone ever uses
distortion.  So let's make it akin to pacification, with an added bonus for
damaging the monster beforehand (as before).

Banishing someone at 100% hp used to give no XP, banishing someone at 10%
did give 90% (assuming you did all the damage).  Now, it's 50% and 95%,
respectively.

Banishment done by allies counts for half the worth, as expected.

--------------------------------------------------------------------------------
02719d462a | Adam Borowski | 2012-04-18 00:56:05 +0200

Clear damage counters for banished monsters.
XP for the fight so far has been already given (or strictly speaking, will
be given before the monster_die() call finishes).

--------------------------------------------------------------------------------
2b224ae0b8 | Adam Borowski | 2012-04-17 23:58:55 +0200

Grant Lugonu piety for banishing folks.
Ie, promote using weapons of distortion she can bless for you.  Before,
using them was effectively frowned upon as hard fights tend to end
prematurely.

--------------------------------------------------------------------------------
1fbba02082 | Adam Borowski | 2012-04-17 22:47:47 +0200

Don't restrict blunt weapons of distortion/vamp.
As elliptic and MarvinPA point out, these checks are too gameable, and vamp,
being the best brand currently, is well worth eating permafood if you have
sustenance or use it for hardest battles.

--------------------------------------------------------------------------------
a8616f18a3 | Adam Borowski | 2012-04-17 22:44:46 +0200

Make a gcc-4.7 warning happy.

--------------------------------------------------------------------------------
d181e10052 | Adam Borowski | 2012-04-17 22:44:45 +0200

Seafood has no noses, ears or elbows.

--------------------------------------------------------------------------------
705fb6b4a0 | elliptic | 2012-04-17 15:05:04 -0400

Simplify the stepdown code and make it handle a few cases better.
Currently stepdown_value always just returns base_value before the first step,
which means the function isn't smooth at base_value = first_step. This is
good for approximating the old stepdown_value, but in cases where we care
about this smoothness we should consider calling stepdown() instead.

--------------------------------------------------------------------------------
dbea63e7ce | elliptic | 2012-04-17 14:07:39 -0400

Fix a few things with the smooth stepdown.
Rounding down rather than to closest gives a much better approximation to the
old behavior.

--------------------------------------------------------------------------------
81dbb70c50 | Raphael Langella | 2012-04-17 19:18:39 +0200

A smooth stepdown function.
I've made a function with the same definition as the old one which calls
the new smooth stepdown function. last_step is ignored, seems like it
wasn't serving much purpose.
Ideally, callers should be changed to use directly the new function. In
some case, randomised rounding might be more appropriate.

--------------------------------------------------------------------------------
cbf5620c1f | Raphael Langella | 2012-04-17 18:41:25 +0200

Remove the special display of XL in debug mode.
It's actually less informative than the normal one.

--------------------------------------------------------------------------------
25876b268b | Raphael Langella | 2012-04-17 17:42:24 +0200

Add a debug message when placing item mimics.

--------------------------------------------------------------------------------
e85bd1f9de | Chris Campbell | 2012-04-17 16:08:08 +0100

Make vulnerability cancel delayed fireballs

--------------------------------------------------------------------------------
8ac0996984 | Chris Campbell | 2012-04-17 16:03:00 +0100

Display number of runes on the } screen

--------------------------------------------------------------------------------
5f909ff41f | Adam Borowski | 2012-04-17 14:31:38 +0200

Axe a bunch of unused functions.

--------------------------------------------------------------------------------
05666b4219 | Adam Borowski | 2012-04-17 14:12:06 +0200

Fix Cheibriados getting mad at you for certain random actions (Patashu).

--------------------------------------------------------------------------------
48874b5515 | Adam Borowski | 2012-04-17 14:12:06 +0200

ontoclasm's tile for "dimension edge" in Golubria wizlabs.

--------------------------------------------------------------------------------
27e984cb48 | Adam Borowski | 2012-04-17 14:05:52 +0200

Trap unscaling, act 1: blade traps.
They're moved deeper (min. depth: D:12 -> D:15), and do the same damage
everywhere -- matching what they used to do on D:25.

The rationale is, it is spoiler knowledge that the same trap will suddenly
do twice the damage when found in a different place.  It can kill such
unspoiled players at no fault on their side.  Same applies to other traps,
and now mimics (as discussed on IRC recently).

I'm not sure if adjusting them towards the near max of their former damage
is ok, especially with moving the min depth by only 3.  Playing it safe on
the unsafe-for-players side for now.

--------------------------------------------------------------------------------
6a46e17d4c | Adam Borowski | 2012-04-17 10:44:27 +0200

Fix a crash when a pile of items goes past 32767 items.
The only way to get that was to combine two lesser piles -- they will now
fail to stack.

--------------------------------------------------------------------------------
bf713f6a5f | Neil Moore | 2012-04-17 02:47:16 -0400

Two new spider tiles (ontoclasm, roctavian).
ontoclasm's tarantella (originally orb spider) tile, and roctavian's orb
spider tile.

Both old tiles were placeholder recolourings of existing tiles.

--------------------------------------------------------------------------------
c1b787aaff | David Lawrence Ramsey | 2012-04-16 18:30:30 -0500

Simplify unarmed attack display a bit.

--------------------------------------------------------------------------------
79ff5ec928 | David Lawrence Ramsey | 2012-04-16 18:26:48 -0500

Display octopodes' amphibiousness earlier, so tentacle-related bits are 
together.

--------------------------------------------------------------------------------
1e2d08aba2 | David Lawrence Ramsey | 2012-04-16 18:24:26 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
d0a874fc91 | David Lawrence Ramsey | 2012-04-16 15:57:39 -0500

For now, properly suppress tentacles in most forms, as is done with claws.
This is appropriate since e.g. dragon form adds claws.

--------------------------------------------------------------------------------
0065268fd3 | David Lawrence Ramsey | 2012-04-16 15:39:27 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
c746befbd9 | David Lawrence Ramsey | 2012-04-16 15:12:58 -0500

Comment fix.

--------------------------------------------------------------------------------
1e4d774fa8 | David Lawrence Ramsey | 2012-04-16 13:45:44 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
bbe831f063 | Adam Borowski | 2012-04-16 11:05:07 +0200

Ziggurats: get rid of stair markers.

--------------------------------------------------------------------------------
40a23a8e46 | Adam Borowski | 2012-04-16 11:05:07 +0200

Ziggurats: don't persist jelly protection data.
It matters only when creating the level, so it shouldn't be saved -- also,
this allows eliminating from dgn.persist.ziggurat all level-local data.
There's currently an ugly local global has_loot_chamber -- FIXME.

Also, eliminate the attempts to determine whether a randomly selected
monster is a jelly.  That code never worked: monsters have to be placed only
after the map's shape is known, ie, after the decision whether the loot
chamber is needed.  Before 33d24bfa, one of monster sets could produce a
jelly (thanks to place:Vault:$), but after that change, even that's
impossible.  Shapeshifters can still eat items when in jelly form.

--------------------------------------------------------------------------------
18b1451ce7 | Raphael Langella | 2012-04-16 00:45:05 +0200

Inept mimics for the early game.
They have a single attack and no resists. They'll get a hold attack (like
constriction but without damage) when it's coded.
Mimics HD and damage is still scaled with depth, but the abilities/attacks
don't change.

--------------------------------------------------------------------------------
43f3de661a | David Lawrence Ramsey | 2012-04-15 17:33:15 -0500

Fix Xom acquirement chance: the maximum power value is 200, not 255.

--------------------------------------------------------------------------------
bea99466ae | Adam Borowski | 2012-04-16 00:09:19 +0200

Apply 51ed0b1e to the .pl translation as well.

--------------------------------------------------------------------------------
51ed0b1eaa | David Lawrence Ramsey | 2012-04-15 17:01:48 -0500

Restore hell effect message lost in the initial database move.
Now that embedded Lua works for the miscellaneous database, "You smell
brimstone." can be properly displayed again for races that can smell.

--------------------------------------------------------------------------------
bfc3e5c4e9 | Adam Borowski | 2012-04-15 23:41:52 +0200

Proper .pl spelling for "yak".

--------------------------------------------------------------------------------
acaed590b1 | Adam Borowski | 2012-04-15 23:26:39 +0200

Polish translation/rewrite of cheeses and pizzas.
Including a mandatory exclamation after bryndza, and a rare chance for black
pudding pizzas (I had the misfortune of tasting it once, never seen it again
as no one sane would buy that twice).  Misspelling/augmentative is intentional,
can't have English have all the wordplay.

--------------------------------------------------------------------------------
731edd76e0 | Adam Borowski | 2012-04-15 23:09:14 +0200

Remove the pizza= initfile setting.
It makes no sense you can magically make 2/3 of pizzas you find on the floor
have a topping you want.  Perhaps it could be left for acquirement, but it's
not like anyone ever would acquire pizzas.

--------------------------------------------------------------------------------
dd61c1645c | Adam Borowski | 2012-04-15 23:09:14 +0200

Evict pizza toppings to the database.
This including being vegetable or not, so different translations can have
pepperoni mean different stuff.

--------------------------------------------------------------------------------
1da746427f | Adam Borowski | 2012-04-15 23:09:14 +0200

Evict cheese kinds to the database.
So if you want to add, for example, blue cheese, you can -- all with
appropriate "bleh", sounds of puking, etc.

--------------------------------------------------------------------------------
3044970fa1 | Adam Borowski | 2012-04-15 23:09:14 +0200

Add missing notes for two of Xom's effects.

--------------------------------------------------------------------------------
bb22d256ed | Raphael Langella | 2012-04-15 22:39:52 +0200

Recharging a wand already full identifies its charge count.

--------------------------------------------------------------------------------
6a750febeb | Raphael Langella | 2012-04-15 22:39:51 +0200

Don't generate wands with more charges than the maximum.

--------------------------------------------------------------------------------
85387cbe9e | Raphael Langella | 2012-04-15 22:39:51 +0200

Clean up the code for removing boots of levitation.
Also remove a wrong message and fix an extremely far fetched case were you
could keep levitation without wearing any levitation item.
It was: wear ring and boots, remove boots, put them back, removing ring, remove
boots.

--------------------------------------------------------------------------------
5efc83ed56 | Chris Campbell | 2012-04-15 18:17:40 +0100

Reword an Elyvilon speech line

--------------------------------------------------------------------------------
cad825f6dc | Chris Campbell | 2012-04-15 18:17:40 +0100

Show the correct options for auto_drop_chunks in init.txt

--------------------------------------------------------------------------------
450853d728 | Adam Borowski | 2012-04-15 17:02:33 +0200

Ziggurats: fix an info leak with floor colours in console.
Floor gave out the monster set (with several possibilities): it was set to
the floor colour of the branch used in place: stanza.  Only draconian and
Pan lord levels used random colours.

I removed randomization of floors altogether.  If you feel like re-adding
it, please use a LFLOORCOL/LFLOORTILE instead -- unlike the rock/permarock
distinction, this will work well.

Tiles always used a single tile already.

--------------------------------------------------------------------------------
8e1773eb3c | Florian Diebold | 2012-04-15 16:20:15 +0200

Fix an exception in the webtiles server when a websocket is closed.
This was caused by my commit 215dce49f5.

--------------------------------------------------------------------------------
5c3c20e62f | Adam Borowski | 2012-04-15 16:10:50 +0200

Ziggurats: fix wall colours in tiles.
Unlike console, where walls are constant for the whole zig, in tiles you get
wall_vault unless the monster set for the level contains the word "place",
in which case it is a random Zot wall.

I made it use the Zot wall that matches the console colour -- ie, constant
for the whole ziggurat.

Also, I really hate zig code operating on grd() directly rather than creating
a vault.  It'd make changing colours and tiles so much simpler, and allow
eliminating a number of functions not used elsewhere.

--------------------------------------------------------------------------------
e441a40d10 | Raphael Langella | 2012-04-15 16:08:59 +0200

Don't land when merging of removing boots of lev if wearing another lev item.

--------------------------------------------------------------------------------
19466ba4ba | Raphael Langella | 2012-04-15 15:48:50 +0200

Check if transform would meld the last source of levitation.

--------------------------------------------------------------------------------
36348d18dc | Raphael Langella | 2012-04-15 15:09:49 +0200

Reduce the number of stairs and door mimics.

--------------------------------------------------------------------------------
6159aaa6f2 | Adam Borowski | 2012-04-15 14:12:17 +0200

Disallow cancelling the Fly spell, like it was the case with Levitation.
There's assumption elsewhere that cancellable levitation can come only from
items, and removing all such items ends it.

--------------------------------------------------------------------------------
adc56ef5ce | Adam Borowski | 2012-04-15 04:45:28 +0200

Fix the tag on Golubria's wizlab.

--------------------------------------------------------------------------------
e65fe5e4fb | Michael Gagno | 2012-04-14 18:02:04 -0700

Nerf guppyfry_shop_venom.
No more D:9 anacondas.

--------------------------------------------------------------------------------
64b8d9d5ca | Adam Borowski | 2012-04-15 01:42:15 +0200

Changelog for 0.10.2

--------------------------------------------------------------------------------
b83e3f0ef9 | Raphael Langella | 2012-04-15 01:24:33 +0200

Disable D:1 mimics.

--------------------------------------------------------------------------------
caf2ce9081 | Adam Borowski | 2012-04-15 00:51:05 +0200

Document that on Debian you need to include libpng-dev explicitely now.
Before, it was pulled in by other libraries.

--------------------------------------------------------------------------------
833bd90267 | Neil Moore | 2012-04-14 16:20:28 -0400

Actually repaint after drawing the message window.
The call from redraw_screen() to display_message_window() was moved
after the call to viewwindow() some time ago, so that the cursor would
be placed correctly after a prompt.  However, this means the message
window is not actually flushed to the terminal (and the cursor is not
actually moved) until the next redraw.  This is most noticeable when
resizing the window: the message area will be blank until something
happens.

--------------------------------------------------------------------------------
efba5851da | Neil Moore | 2012-04-14 16:20:23 -0400

Do not crash when the terminal window is resized.
Apparently initscr() isn't enough to set LINES and COLS: we have to call
refresh() as well on a SIGWINCH.

Furthermore, if the resize decreased the message window size, we could
end up drawing too many lines (from msgwin.show()) before the message
window's lines vector is resized.  Since we can't do the resize from
show() (it is const), handle only the last height() lines.  Likewise
for message_window::place_cursor().

Fixes #5544.

--------------------------------------------------------------------------------
eeb1e1692a | Neil Moore | 2012-04-14 10:57:51 -0400

Don't let rP- protect from potions of poison.

--------------------------------------------------------------------------------
6b719768f3 | David Lawrence Ramsey | 2012-04-14 09:17:01 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
ae58e5e8c0 | David Lawrence Ramsey | 2012-04-14 08:45:30 -0500

Add a message for when Fedhas' evolution is used on oklob saplings.

--------------------------------------------------------------------------------
7025e3d429 | Adam Borowski | 2012-04-14 09:29:40 +0200

Remove an invalid use of absolute depths.
I missed this when syncing with trunk.

--------------------------------------------------------------------------------
c70a97e3bc | Adam Borowski | 2012-04-14 02:18:40 +0200

Threat tier 4 monsters are always interesting.
This probably can replace the whole rest of that function -- monster level
is not defined for monsters other than normal spawns, rarity is a weird
criterium.  Now that we have threat classification, such hacks are no longer
needed.

--------------------------------------------------------------------------------
51a1277c4e | Adam Borowski | 2012-04-14 02:10:19 +0200

Use 999 rather than 99 for "N/A" monster depth.
Looks less like a valid number.

--------------------------------------------------------------------------------
64494c24d1 | Adam Borowski | 2012-04-14 01:06:52 +0200

Make porcupine meat clean.
Apparently they are considered a good game species, eaten as a delicacy.

--------------------------------------------------------------------------------
64c133e5dc | Adam Borowski | 2012-04-14 00:54:38 +0200

Remove the now-unused code for emergency saves.
If we want them back for assertions, it'd be far better to save _before_
going into the crash handler.

--------------------------------------------------------------------------------
70afa706fb | Adam Borowski | 2012-04-14 00:43:39 +0200

Eliminate the only use of ASSERT_SAVE (ie, emergency save).

--------------------------------------------------------------------------------
4419df959a | Adam Borowski | 2012-04-14 00:38:12 +0200

Mention the region size when asserting out on invalid screen writes.

--------------------------------------------------------------------------------
aeb1c60395 | Adam Borowski | 2012-04-13 23:57:02 +0200

Use enums rather than string comparison for fake languages.
It was good enough for a single day throw away joke.

Also, don't store a copy of the language for every db object.

--------------------------------------------------------------------------------
305c49cc15 | Adam Borowski | 2012-04-13 23:03:41 +0200

Fix chunks being better than permafood when nauseated (and starving).
This alters clean chunks only[¹], leaving contaminated ones untouched.  That
seems wrong to me, especially in light what dpeg wanted, but it seems I'm in
a minority.

[¹], for a normal race, saprovores and those with unready gourmand have
levels in between.

--------------------------------------------------------------------------------
4daf369ad0 | Adam Borowski | 2012-04-13 21:57:29 +0200

Allow Labs in Dwarf.
They would be legal there under the old rules; also, it's nice to force a
player through monsters they (as some argue) would whittle down slowly.

--------------------------------------------------------------------------------
78036bc8a0 | Adam Borowski | 2012-04-13 21:48:41 +0200

Disallow Labs in Spider; equalize chances in eligible branches.
I see no reason to disallow Spider, but none of Snake, Swamp and Shoals are
allowed.

In the other branches, it shouldn't depend on the depth they're generated,
but also it's better to declare branches by opt-in rather than opt-out --
safer and self-documenting.

--------------------------------------------------------------------------------
a6be39adbf | Adam Borowski | 2012-04-13 21:02:24 +0200

Ziggurats: don't store irrelevant data for the portal used to enter the Zig.
Also, no need to initialize Ziggurats twice.

--------------------------------------------------------------------------------
c7da010a64 | Adam Borowski | 2012-04-13 20:31:08 +0200

Ziggurats: no better loot if you enter Pan from a deeper portal in D.

--------------------------------------------------------------------------------
e150579975 | elliptic | 2012-04-13 14:23:32 -0400

Prevent IMB explosion abuse with aiming past monsters.
Previously you could get two chances to hit a single monster if you aimed
IMB correctly. Now the explosion will never travel backwards along the beam.

--------------------------------------------------------------------------------
962d7deeed | David Lawrence Ramsey | 2012-04-13 12:16:57 -0500

Allow Fedhas' evolution to turn oklob saplings into oklob plants.

--------------------------------------------------------------------------------
d9488ded1c | Adam Borowski | 2012-04-13 15:40:42 +0200

Ziggurats: move the exit milestone out of the lua marker.
This should help get rid of the marker completely.

--------------------------------------------------------------------------------
83487eae2b | Adam Borowski | 2012-04-13 15:32:52 +0200

Ziggurats: use common code with other branches for milestones.
For compatibility, I left the special-casing of milestone type as
"zig.enter" instead of "br.enter", and "zig" instead of "br.mid" and
"br.end" (other branches don't have milestones for every level).

--------------------------------------------------------------------------------
166bc0478f | Adam Borowski | 2012-04-13 13:43:23 +0200

Don't name the number of tentacles equivalent to three hands.
It's too confusing without knowing the exact story.

--------------------------------------------------------------------------------
d3fc1dc84d | Adam Borowski | 2012-04-13 13:13:21 +0200

Auto-id rings of hunger on the first food state decrease message.
Even if we thoroughly randomized food gains and usage, there's no way to
hide 233% food loss for more than a couple or so cycles.

Not revealing the ring immediately leaves at least a bit of cost for
identifying it, and preserves status quo for spoiled players.

--------------------------------------------------------------------------------
1f3950a6c6 | Adam Borowski | 2012-04-13 12:54:32 +0200

Do a checkpoint save on Abyss new area shifts.

--------------------------------------------------------------------------------
41a3105db5 | Adam Borowski | 2012-04-13 12:12:26 +0200

Forbid Arachne from wielding things other than staves of poison.
Staff of Olgreb, being supposed to be one in all ways except for the
internal representation, is included.

--------------------------------------------------------------------------------
c93c868ff4 | Adam Borowski | 2012-04-13 11:33:38 +0200

Ziggurats: don't let the dungeon builder add extra downstairs.

--------------------------------------------------------------------------------
42bed3cbbf | Adam Borowski | 2012-04-13 11:10:26 +0200

Ziggurats: use the real branch depth instead of keeping own notion of it.

--------------------------------------------------------------------------------
fd9a17cc09 | Adam Borowski | 2012-04-13 10:54:30 +0200

Announce that &p succeeded.
Having the prompt left over makes you wonder what's going on, made worse by
the fact that some portals ask further questions.

--------------------------------------------------------------------------------
b8d5efd75a | Raphael Langella | 2012-04-13 10:23:08 +0200

Fix blade hands not being able to wear and remove armour.

--------------------------------------------------------------------------------
17df5836cd | Michael Gagno | 2012-04-12 20:00:49 -0700

Update wizlab_golubria.
Now has a random monster list.

--------------------------------------------------------------------------------
d401c47753 | Adam Borowski | 2012-04-13 01:35:13 +0200

Make iron dragons spawn a notch more often in Dis.
Not sure what the rarity should be -- it's a living creature in hell, after
all, so should be rare, but it's the land of iron after all.

--------------------------------------------------------------------------------
fa18312409 | Adam Borowski | 2012-04-13 01:35:13 +0200

Remove depth/rarity settings for monsters that can't possibly spawn.
Or allow them to spawn in a few cases.

It may be surprising that, for example, swamp worms can't possibly spawn in
Swamp, but the only way to get them is water at level creation time.

--------------------------------------------------------------------------------
b25a66cc1c | Adam Borowski | 2012-04-13 01:19:45 +0200

Don't use 0 as the native depth of ineligible monsters.
Too close to 1.

--------------------------------------------------------------------------------
6cc63c75d1 | Chris Campbell | 2012-04-12 23:24:04 +0100

Display mercenary fees when you can't afford them, too

--------------------------------------------------------------------------------
b3bb43f2a5 | David Lawrence Ramsey | 2012-04-12 17:01:55 -0500

Update mons_is_native_in_branch() for the Spider Nest and the Forest.

--------------------------------------------------------------------------------
4e29ed5fcd | Adam Borowski | 2012-04-12 22:18:39 +0200

Fix invalid monster depths for Vaults.

--------------------------------------------------------------------------------
0a25ad2110 | Adam Borowski | 2012-04-12 22:08:46 +0200

Add an assertion to ensure no invalid mercenaries are produced.

--------------------------------------------------------------------------------
8e60e9e122 | Chris Campbell | 2012-04-12 19:31:57 +0100

A new card: the Mercenary, pay gold for allies
Added to the deck of battle, so it won't be gifted by Nemelex but can
appear in random decks (changes, defence and war). An ally is chosen
randomly from a list, with higher card power allowing stronger allies.
The fee it asks for is based on its XP value. Paying makes it
permanently friendly, if you choose not to or are unable to pay it
remains hostile.

It's rare and unreliable, but balance might be crazy (or not) so tweaks
to the monster list/order/fees/anything are welcome.

--------------------------------------------------------------------------------
3a3a16797d | Adam Borowski | 2012-04-12 15:52:31 +0200

Get rid of code duplication in Lab portals.
I shouldn't have been that much paste-happy when fixing the Trowel copy.

--------------------------------------------------------------------------------
51abd7643f | Adam Borowski | 2012-04-12 15:30:33 +0200

Don't use nasty hacks with map_by_tag() in ice caves, veto unfitting maps.
There are only two easy-only and no hard-only maps.

Beside simplification, this also makes &~ work.

--------------------------------------------------------------------------------
ebfdce1143 | Raphael Langella | 2012-04-12 15:22:38 +0200

Remove depth restrictions for mimics.

--------------------------------------------------------------------------------
1f127eee59 | Raphael Langella | 2012-04-12 15:10:51 +0200

Set auto exclusion for detected mimics.

--------------------------------------------------------------------------------
fa43c7e37c | Adam Borowski | 2012-04-12 15:00:01 +0200

Properly check the Ice Cave difficulty in functions inside.

--------------------------------------------------------------------------------
77a5f9bff5 | Adam Borowski | 2012-04-12 14:48:13 +0200

Don't use a branch callback in Ice Caves.
The desc fixups can be done from a function that's already called from
all vaults.  This leaves bazaars the only user of branch functions (because
of floor_halo() issues).

--------------------------------------------------------------------------------
5a6e62a6d2 | Adam Borowski | 2012-04-12 14:42:43 +0200

Fix a crash when a monster is moved off the stairs you entered from.

--------------------------------------------------------------------------------
f3dadc0d4c | Raphael Langella | 2012-04-12 14:13:07 +0200

Scale mimic stats with depth.
HD is equal to depth up to 12, after what it is stepdowned. It is 22 on
Zot:5. Damage is HD+4.
Shallow mimics have only one attack and they start to get a chance for a
second poisonous attack by D:7 and it becomes guaranteed at D:12.
Deeper ones start having a chance for a constriction attack at D:16 and it
becomes guaranteed at D:21.

Item mimics are normal speed now and feature mimics lost the fighter flag.
I've also removed the special cases for armour mimics (+10 AC) and weapon
mimics (+5 dam).
The only thing that distinguish mimic types are their size. Feature mimics
are large and item mimics range from tiny to normal depending on item
weight. Which means small mimics like potions and scrolls can't constrict
anything.

--------------------------------------------------------------------------------
48a10faac7 | Adam Borowski | 2012-04-12 13:55:45 +0200

Get rid of DEPTH_ABYSS/DEPTH_PAN, use relative depths for monster selection.
Per discussion on ##crawl-dev, setting the equivalent of the former two to 24
(was whenever you were banished from, or which Pan portal you took).  Thus, if
you wanted easiest Abyss, you could unwield distortion on D:1, or for Pan,
enter the shallowest portal (nearly everyone unknowingly did the latter).
It didn't change much (deeper water, more lava; more traps, more damage from
traps, harder to find them; better items, especially on monsters; misc stuff
here and there) but it was still a difference.

Items in the Abyss were the only thing that actually used DEPTH_ABYSS as a
number rather than as a magic cookie.  In Pandemonium, most of good loot comes
from '|' in vaults rather than floor spawns.  Thus, you were basically always
better off entering either of these places from as small LEVEL_DUNGEON depth
as possible.

As for monster selection in general: this commit merely changes the interface,
calculations inside are still overwhelmingly done using absdepth.

--------------------------------------------------------------------------------
a824ed8a2e | Adam Borowski | 2012-04-12 11:22:10 +0200

Apply more reasonable rules as to where OOD spawns shouldn't happen.
Before, they could happen on Zot:1 but not Zot:2-5, and also on branches
that have but a single level (in which case OODs merely reduce the chances
for rare monsters).

New rules:
* no Zot and Hells
* no portal branches
* no depth-1 branches

--------------------------------------------------------------------------------
1154e19a82 | Adam Borowski | 2012-04-12 10:40:07 +0200

Note a bit fewer popcorn monsters in ZotDef.

--------------------------------------------------------------------------------
a7c36af600 | Michael Gagno | 2012-04-12 01:00:28 -0700

Tweak evilmike_ambush.
Two variants had too high of a chance of all three stairs and no hatches.

--------------------------------------------------------------------------------
bc01596d67 | Michael Gagno | 2012-04-12 00:44:00 -0700

Don't use a real hatch in nicolae_entry_your_instructions.

--------------------------------------------------------------------------------
64d4ef277c | Adam Borowski | 2012-04-12 03:09:08 +0200

Merge branch 'master' into portal_branches

--------------------------------------------------------------------------------
3e11d7d1fd | Adam Borowski | 2012-04-12 02:47:06 +0200

Fix the feature name for swamp trees.

--------------------------------------------------------------------------------
33d24bfa94 | Raphael Langella | 2012-04-11 23:53:42 +0200

Remove the chance for easy monsters in lower D.
I'm not really sure what are going to be the consequences of this change.
At the very least, it should remove trivial monsters from the lower dungeon,
but it might also create more dangerous one and increase the global XP value
of the dungeon, so we should keep an eye on it.

--------------------------------------------------------------------------------
1dc8ad5068 | Adam Borowski | 2012-04-11 19:31:34 +0200

Normalize all mon-pick depths on 1-based branch depths.
Also, change the internal interface to relative depth rather than absdepth0.

This commit should not change any functionality -- if it does, it's an error.
I moved Dwarf:2 to Dwarf:1 and Vestibule:2 to Vestibule:1, effectively
increasing rarities there by 1.

Note that most branches start at X:2, hells start at X:0.  This represents
the old state, we can upset the balance in separate commits.

--------------------------------------------------------------------------------
8d4af86e17 | Adam Borowski | 2012-04-11 17:58:09 +0200

Move a divider comment.

--------------------------------------------------------------------------------
a77249cae6 | Adam Borowski | 2012-04-11 17:55:35 +0200

Use monster_type for mon-pick functions.

--------------------------------------------------------------------------------
db84580311 | Adam Borowski | 2012-04-11 16:56:21 +0200

Confused speech lines for Maud (Patashu)

--------------------------------------------------------------------------------
d39aadc699 | Adam Borowski | 2012-04-11 16:56:21 +0200

Confused speech lines for Ijyb (Patashu)

--------------------------------------------------------------------------------
39b9a954b9 | Chris Campbell | 2012-04-11 15:17:11 +0100

Increase boulder beetles' speed and HP

--------------------------------------------------------------------------------
62f9d41dd6 | Raphael Langella | 2012-04-11 15:17:28 +0200

Fix a typo.

--------------------------------------------------------------------------------
4b94d4bcab | Raphael Langella | 2012-04-11 15:17:27 +0200

Document the new fight simulator.

--------------------------------------------------------------------------------
eb3a0eea4b | Raphael Langella | 2012-04-11 15:17:26 +0200

fsim: fix accuracy calculation in defense mode.
For monsters with multiple attacks, the round is considered to have hit if
at least one attack has hit.

--------------------------------------------------------------------------------
861535cb35 | Raphael Langella | 2012-04-11 15:17:25 +0200

Fix fsim with monster distortion.

--------------------------------------------------------------------------------
186a33877e | Raphael Langella | 2012-04-11 15:17:24 +0200

Fix fsim XL mode not restoring XL and HP properly.

--------------------------------------------------------------------------------
eadd7590f2 | Raphael Langella | 2012-04-11 15:17:23 +0200

New option: fsim_scale.
It's used to configure which skills are used as a scale in
fsim_simple_scale mode. By default, only the weapon skill is scaled.

It takes a list of skills with an optional divider. weapon can be used for
the default weapon skill for the simulation. Setting this option to:
weapon, fighting/2
restores the behaviour of the old simulator.

if XL is specified instead of a skill, then it will be used as the scale.
Skills will be trained automatically, and the number provided for each
skill will be used to set the training. For example:
xl, weapon:2, fighting:1
means that 2/3 of xp will be used to train the weapon skill and 1/3 for
fighting.

/ and : are both recognised as separators in normal and xl mode. However,
given that there meaning is completely different, it's recommended to use
/ in normal mode and : in XL mode.

--------------------------------------------------------------------------------
7ff52721aa | Adam Borowski | 2012-04-11 12:11:10 +0200

A betterer desc for Volcano exits (headzone)

--------------------------------------------------------------------------------
c1d7227aa2 | Adam Borowski | 2012-04-11 10:47:46 +0200

Fix a crash in detect_monsters.

--------------------------------------------------------------------------------
a80a8d1590 | Adam Borowski | 2012-04-11 01:54:33 +0200

Extremely bad descriptions for Volcano renamed features.
Without them, you'd get ones for base features, which are totally inappropriate.

--------------------------------------------------------------------------------
5b435bb67e | Adam Borowski | 2012-04-11 01:45:06 +0200

Don't use a callback for redefining Volcano features.

--------------------------------------------------------------------------------
f072ebd5ec | Adam Borowski | 2012-04-11 00:28:46 +0200

Place arches and exits in bazaars.
This relied on a hack with placing escape hatches and then changing them
after all of processing was done.  This worked only because portal branches
were special-cased, skipping all of normal level generation.  Instead, place
arches/exits the same way every single other vault does.

Also, if floor_halo() could be made to operate on a map rather than grd(), we
would be able to get rid of the callback completely.

--------------------------------------------------------------------------------
35957bf373 | Neil Moore | 2012-04-10 17:50:16 -0400

Give the correct message for tabbing while webbed.
The clua you.caught() function now returns either a string (the result
of held_status(&you)) or nil.  It can still be used in a conditional
(since nil evaluates as false and all strings as true), but any client
code that uses something like "you.caught() == true" will need to be
changed.

Fixes #5552.

--------------------------------------------------------------------------------
b88a363f34 | Adam Borowski | 2012-04-10 23:42:50 +0200

Handle the level stack on &~

--------------------------------------------------------------------------------
94446063bc | Adam Borowski | 2012-04-10 22:13:55 +0200

Remove an unused case for AF_CRUSH.
It was meant to be doing what constriction is doing.

--------------------------------------------------------------------------------
0cd26aeab4 | Adam Borowski | 2012-04-10 22:13:12 +0200

Remove an unused argument.

--------------------------------------------------------------------------------
76d26d190b | Adam Borowski | 2012-04-10 22:06:38 +0200

Don't let claws cut off hydra heads with claws < 3.
If even a dagger is too short to cut them off, regular claws are certainly
way too short to do more than surface damage.  This may be enough to, say,
rip a hole in the throat, but not to cut off a head outright.

--------------------------------------------------------------------------------
83e4ed3e6e | Neil Moore | 2012-04-10 16:02:29 -0400

Be more specific when food is stolen.
The message order is now "%s lunges at you hungrily!" (the attack), then
"%s is devoured".

--------------------------------------------------------------------------------
cfde1231e5 | Neil Moore | 2012-04-10 15:38:06 -0400

Do not allow ringless forms to put on rings.
Also avoids an assertion in _swap_rings().

--------------------------------------------------------------------------------
c0f947e240 | Neil Moore | 2012-04-10 15:38:06 -0400

Don't claim that octopode pigs, dragons, etc have mantles.

--------------------------------------------------------------------------------
f881826058 | elliptic | 2012-04-10 14:55:16 -0400

Give Blade Hands the same item use restrictions as spider/cat/ice beast/hog.
Holding a wand or swapping rings when your hands are large scythe-like blades
is going to be pretty hard.

--------------------------------------------------------------------------------
bfa8e8bb54 | Adam Borowski | 2012-04-10 20:37:08 +0200

Allow Trog's Hand to heal you even when sick.
It can ignore any other reasons regeneration won't work.

--------------------------------------------------------------------------------
fe1942e165 | Adam Borowski | 2012-04-10 20:37:08 +0200

Fix A and % claiming you can't wear 8 rings as an octopode.

--------------------------------------------------------------------------------
a141c790f1 | Adam Borowski | 2012-04-10 20:37:04 +0200

Revert "Allow only two rings for spiderform octopodes."
This change made no sense -- spiders have eight legs, just like octopodes.
Humans being unable to wear more than two rings in spider form is weird, but
can be explained by them being unused to handle more than two (an iffy
explanation...), there's no such explanation for octopodes at all.

This reverts commit 070343e0fd40eab0097e9ca6d135badc9f7ab927.

--------------------------------------------------------------------------------
daf4178c24 | Adam Borowski | 2012-04-10 20:02:33 +0200

No cloaks in ice beast form.

--------------------------------------------------------------------------------
a94f099963 | Adam Borowski | 2012-04-10 20:00:36 +0200

Forbid spiders and ice beast the use of wands, allow pigs to read scrolls, etc.
Pigs are at least the size of a large dog -- even non-sentient ones can
operate a door handle well.

Pigs, spiders and ice beasts have no means to grasp a wand (like felids).

Everyone can read scrolls, only bats have no means to uncork a potion (could
argue this for spiders as well, I'm nice for now -- giant spider).

--------------------------------------------------------------------------------
c137f140eb | Adam Borowski | 2012-04-10 19:34:36 +0200

Allow chaos permabranding to always succeed.

--------------------------------------------------------------------------------
43e994de65 | Neil Moore | 2012-04-10 13:23:42 -0400

Distinguish first two ring slots in DESC_INVENTORY_EQUIP.
Also, show the correct appendage name for the player's form.

The worn annotations are "(left tentacle)" and "(right tentacle)", to
match other forms.  Perhaps "first" and "second" would be less
vertebrate-centric, but this way we don't have to check the form.

--------------------------------------------------------------------------------
cbb2d1e6cd | Neil Moore | 2012-04-10 13:12:21 -0400

Show extra ring slots as suppressible in the mutation list.
Also mention it on the % screen.

--------------------------------------------------------------------------------
4bcb36d2af | Neil Moore | 2012-04-10 13:05:46 -0400

Simplify a check, improve a message, and fix comments.

--------------------------------------------------------------------------------
070343e0fd | Neil Moore | 2012-04-10 12:48:23 -0400

Allow only two rings for spiderform octopodes.
To make it more consistent with dragon and ice form (which, after all,
have *four* legs, not two), and with other races.  Maybe the two
functioning rings go on the pedipalps?

--------------------------------------------------------------------------------
165adf2677 | Neil Moore | 2012-04-10 12:48:23 -0400

Un-nerf blade hands.
It can wear rings again.  A limitation on using wands, instead, has been
suggested, but isn't included here.

--------------------------------------------------------------------------------
0a5c74d436 | Adam Borowski | 2012-04-10 10:01:06 +0200

Double the effectiveness of monster warding, to match the player.

--------------------------------------------------------------------------------
a149898f39 | Neil Moore | 2012-04-09 23:10:48 -0400

Prevent putting on/removing rings in melded slots.
Also improve some messages, and fix the '%' display of available and
unavailable slots.

Fixes #5543.

--------------------------------------------------------------------------------
7c094004e2 | Neil Moore | 2012-04-09 23:10:06 -0400

Prevent blade hands from using first two ring slots.
There are still bugs with this and the previous commit: it is
possible to replace a melded ring as a non-octopode in blade form;
and it is still possible to put a ring into a empty slot that would
have been melded but for being empty.

--------------------------------------------------------------------------------
88b9e9c211 | Neil Moore | 2012-04-09 23:09:17 -0400

Make most forms meld rings beyond the second.
The forms that keep body shape (blade hands, lich, beastly appendage,
and statue), as well as spider form, allow octopodes to wear eight rings.

Non-octopodes cannot wear eight rings even in spider form.  Sorry.

--------------------------------------------------------------------------------
53e7cfe7a0 | Neil Moore | 2012-04-09 23:09:00 -0400

Prevent melded rings from functioning.
Fixes #4598.

--------------------------------------------------------------------------------
a8101a12ad | Chris Campbell | 2012-04-09 22:49:27 +0100

Add better messages for vulnerability expiring your magical durations
A regular warning message when it hits you and expires something, and a
prompt when it makes a transformation or levitation expire while you're
above deep water or lava.

--------------------------------------------------------------------------------
e398ca3289 | Raphael Langella | 2012-04-09 22:56:50 +0200

Add a new fsim_mode option and enable defense simulation.
If the option isn't set, you'll be prompted for attack or defense.

--------------------------------------------------------------------------------
def6bea91a | Raphael Langella | 2012-04-09 22:56:49 +0200

Purge the fsim stats and xl options.
They don't serve any purpose since you can manually set stats and xl them with
wizard commands.

--------------------------------------------------------------------------------
910bfd5b62 | Raphael Langella | 2012-04-09 22:56:49 +0200

fsim: don't say we're wielding unarmed or javelins.

--------------------------------------------------------------------------------
82202b4a0f | Raphael Langella | 2012-04-09 22:56:49 +0200

Bring back fsim_kit functionality.

--------------------------------------------------------------------------------
40af826a3f | Raphael Langella | 2012-04-09 22:56:48 +0200

Fix an ugly hack.

--------------------------------------------------------------------------------
54017833a4 | Raphael Langella | 2012-04-09 22:56:48 +0200

Also print the result of the simulation in the message area.

--------------------------------------------------------------------------------
2d75bac028 | Raphael Langella | 2012-04-09 22:56:47 +0200

Change the range of fsim double scale from 0-26 to 1-27.
Result at 27 is more interesting than at 0. And odd numbers are prettier!

--------------------------------------------------------------------------------
208f71645d | Raphael Langella | 2012-04-09 22:56:47 +0200

fsim: fix a lot of code duplication.
Also allows cancelling double scale simulation.

--------------------------------------------------------------------------------
ba1f42009a | Raphael Langella | 2012-04-09 22:56:47 +0200

fsim: don't announce generated monsters.

--------------------------------------------------------------------------------
aed87e40fa | Raphael Langella | 2012-04-09 22:56:46 +0200

fsim: improve monster type selection.
If fsim_mons is set, it will be used (it's empty by default).
Only offer targetting selection if there is a monster in LOS.
If all else fail, prompt for a monster type.

--------------------------------------------------------------------------------
bdfcae8ccb | Raphael Langella | 2012-04-09 22:56:46 +0200

New fight simulator (nfogravity).

--------------------------------------------------------------------------------
4a27246088 | Michael Gagno | 2012-04-09 13:10:17 -0700

Give nicolae_entry_your_instructions a low weight.
Somehow forgot to add that line.

--------------------------------------------------------------------------------
215dce49f5 | Florian Diebold | 2012-04-09 18:12:20 +0200

Fix Webtiles compatibility with tornado 2.2.

--------------------------------------------------------------------------------
337b8b6c15 | Chris Campbell | 2012-04-09 16:16:45 +0100

Remove multiple levels of warding, give warding 1 the same effect as old 
warding 2

--------------------------------------------------------------------------------
2dc3841363 | Michael Gagno | 2012-04-09 06:33:58 -0700

Buff emperor scorpions.
They now get rPois (unlike all other arthropod enemies). Also, there
have been stat changes:

HP is increased.
Attacks are now 30, 15, 15 (was 30, 11, 11).
Poison is AF_POISON_NASTY, rather than medium.
AC: 18 -> 20
EV: 8 -> 12

--------------------------------------------------------------------------------
9294625342 | Adam Borowski | 2012-04-09 11:05:04 +0200

Fix broken portal vault exit renames.
(They are broken it trunk and 0.10 too, by the way.)

--------------------------------------------------------------------------------
f09ffab612 | Adam Borowski | 2012-04-09 10:19:30 +0200

Rename set_lt_callback() to set_branch_epilogue(), make it work again.
'cuz, you know, level types are playing with dodos.

If defined, this epilogue will be called after a level on the given branch
is created, allowing for last-minute fixups.

This is probably a bad idea, and should be phased out.

--------------------------------------------------------------------------------
cd9c2633c3 | Adam Borowski | 2012-04-09 09:42:45 +0200

Drop the namespace from ctest.cc
Namespaces private to a file are strictly worse than merely making everything
static.  They'd be somewhat handy if you want to heavily use identifiers taken
globally (not a good idea), and if not, they just muddle things.

--------------------------------------------------------------------------------
5aae360e0d | Adam Borowski | 2012-04-09 09:11:24 +0200

Compare *_level() to *_rarity() on -test.

--------------------------------------------------------------------------------
61f9bd3ef3 | Adam Borowski | 2012-04-09 09:11:23 +0200

Don't claim Zot and Snake have no zombifiable monsters.

--------------------------------------------------------------------------------
b03da8273f | Adam Borowski | 2012-04-09 09:11:23 +0200

Allow non-lua tests to gracefully report failure instead of asserting out.

--------------------------------------------------------------------------------
0720149b33 | Neil Moore | 2012-04-09 03:01:07 -0400

Always initialize shop names.
Otherwise, we might end up accidentally re-using a custom shop name from
a previous level.

--------------------------------------------------------------------------------
65eaec3602 | Michael Gagno | 2012-04-08 23:48:39 -0700

Give guppyfry_spider_rune the no_pool_fixup tag.

--------------------------------------------------------------------------------
be3ef0294f | Michael Gagno | 2012-04-08 23:21:27 -0700

Golubria wizlab. (HangedMan)

--------------------------------------------------------------------------------
6d0d8966a6 | Neil Moore | 2012-04-09 01:25:58 -0400

Correct a typo in the description for spiders.

--------------------------------------------------------------------------------
243254a901 | Neil Moore | 2012-04-09 01:15:03 -0400

Do not place permaglass where the Orb might have gone.

--------------------------------------------------------------------------------
50b6ab6ade | Zannick | 2012-04-09 01:15:03 -0400

Introduce shrieking orb mimics.
Rework the Zot:5 system similar to Vaults:8, so that it is easy to
define vaults that allow orb mimics.

Also fix a mistabbing that threw me off while I was reading orb code.

--------------------------------------------------------------------------------
f524a84dee | Michael Gagno | 2012-04-08 21:39:23 -0700

Two Orc minivaults. (blackcustard)

--------------------------------------------------------------------------------
2c6dd1ac16 | Michael Gagno | 2012-04-08 21:39:23 -0700

Randomize spider_rune_water more.

--------------------------------------------------------------------------------
c25b16f481 | Michael Gagno | 2012-04-08 21:39:22 -0700

New Spider:5 vault. (guppyfry)

--------------------------------------------------------------------------------
368f5a3840 | Michael Gagno | 2012-04-08 21:39:21 -0700

Two lair minivaults. (guppyfry)

--------------------------------------------------------------------------------
b6caa685ec | Michael Gagno | 2012-04-08 21:39:21 -0700

Four elf minivaults. (guppyfry)
One has a custom shop.

--------------------------------------------------------------------------------
e512547a74 | Michael Gagno | 2012-04-08 21:39:20 -0700

Tricky entry vault. (nicolae)
This is a joke, so I've given it a low weight.

--------------------------------------------------------------------------------
75381afe6a | Michael Gagno | 2012-04-08 21:39:19 -0700

Rune mimic vault. (nicolae)

--------------------------------------------------------------------------------
a5a9ecee77 | Michael Gagno | 2012-04-08 21:39:19 -0700

Ten Snake vaults. (nicolae)
All regular vaults and minivaults, not branch endings.

--------------------------------------------------------------------------------
1f3dcd04ce | Neil Moore | 2012-04-09 00:30:23 -0400

Invert the return value of player_monattk_hit_effects.
And improve some comments.

--------------------------------------------------------------------------------
5c0e37b5ec | Neil Moore | 2012-04-09 00:05:40 -0400

Fix a crash on monsters decapitating hydrae.
Stop the rest of the attack if decapitation killed the hydra.  The
player case was already handled properly.

--------------------------------------------------------------------------------
8b00fe5265 | Adam Borowski | 2012-04-09 05:57:35 +0200

Move a divider comment.

--------------------------------------------------------------------------------
6d707ecb9c | Adam Borowski | 2012-04-09 04:54:56 +0200

Use monster_type for mon-pick functions.

--------------------------------------------------------------------------------
609cd121ef | Neil Moore | 2012-04-08 22:39:00 -0400

Correct a comment about HP dice.

--------------------------------------------------------------------------------
f882d0fd33 | Adam Borowski | 2012-04-09 04:24:14 +0200

Fix vault/wizmode names of features, for the pending reorder.

--------------------------------------------------------------------------------
70bdbbed8b | Adam Borowski | 2012-04-09 04:15:04 +0200

Fix duplicated DNGN_ enum values.
Also, place aliases together with values they alias to; indent them.

--------------------------------------------------------------------------------
c51a052997 | Adam Borowski | 2012-04-09 03:51:33 +0200

Check if the gossamer rune is generated in -test.

--------------------------------------------------------------------------------
821d609d61 | Adam Borowski | 2012-04-09 03:41:34 +0200

If a monster is at the stair position, shove it only to the nearest spot.
Having them teleport to the other end of the level was weird.

--------------------------------------------------------------------------------
aa5f49792b | Adam Borowski | 2012-04-09 03:37:11 +0200

Ensure the player is in a viable spot after returning from a portal.

--------------------------------------------------------------------------------
9cde4de20e | Adam Borowski | 2012-04-09 03:03:22 +0200

Change the place name from "Vault:" to "Vaults:".
It led to loads of confusion -- even most comments got that wrong (actual
depth ranges would fail).

--------------------------------------------------------------------------------
0ef49ef94d | Adam Borowski | 2012-04-09 02:45:54 +0200

A stub function for the monster set in Vaults.
I'm doing an overhaul of this code on portal_branches to use branch-relative
depths only, there's talk about changing this monster set in trunk, so let's
preempt any conflicts.

--------------------------------------------------------------------------------
6e12296298 | Adam Borowski | 2012-04-09 02:41:11 +0200

Use name not (int)enum for other layout extras as well.

--------------------------------------------------------------------------------
19172b76fd | Adam Borowski | 2012-04-09 02:32:42 +0200

Don't let octa_room produce lava "floor" in Cocytus.

--------------------------------------------------------------------------------
b939702a21 | Adam Borowski | 2012-04-09 02:31:11 +0200

Update some Donald speech.

--------------------------------------------------------------------------------
a12973f92d | Adam Borowski | 2012-04-09 02:09:55 +0200

Use name rather than (int)enum for rivers/lakes on &^E

--------------------------------------------------------------------------------
7982998ec4 | Adam Borowski | 2012-04-09 01:56:28 +0200

A stub function for the monster set in Vaults.
I'm doing an overhaul of this code on portal_branches to use branch-relative
depths only, there's talk about changing this monster set in trunk, so let's
preempt any conflicts.

--------------------------------------------------------------------------------
acd87b6efc | Adam Borowski | 2012-04-09 01:33:29 +0200

Drop unused lt_callbacks.

--------------------------------------------------------------------------------
6482c95da9 | Florian Diebold | 2012-04-09 00:19:58 +0200

Fix a stupid mistake in the last commit.

--------------------------------------------------------------------------------
6532cf6f2b | Florian Diebold | 2012-04-09 00:16:23 +0200

Webtiles: Time rendering.

--------------------------------------------------------------------------------
cba9ef4445 | Florian Diebold | 2012-04-08 23:27:51 +0200

Don't show the "detected monster" tile on top of shallow water disturbances.
This is another regression from my tile picking
refactoring. Disturbances in shallow water get their own modified
shallow water tile, no need to add the other ugly tile.

--------------------------------------------------------------------------------
6f81262fd8 | Florian Diebold | 2012-04-08 23:07:21 +0200

ontoclasm's new hell sentinel tile (#5385).

--------------------------------------------------------------------------------
28b5c84ae8 | Florian Diebold | 2012-04-08 22:36:50 +0200

Webtiles: Fix a more at game load not being shown, looking instead like the 
game's just hanging (#5473).

--------------------------------------------------------------------------------
c62fb68775 | Florian Diebold | 2012-04-08 22:33:52 +0200

Webtiles: Set dgl_mode back to on by default.

--------------------------------------------------------------------------------
e037926483 | Florian Diebold | 2012-04-08 22:07:58 +0200

Center the new elven dagger and short sword tiles (#5512).

--------------------------------------------------------------------------------
799007604d | Chris Campbell | 2012-04-08 18:52:15 +0100

Replace "strategy" with "trap" in imp speech

--------------------------------------------------------------------------------
7be2950d9f | Chris Campbell | 2012-04-08 18:42:21 +0100

Remove a Terence speech line
It doesn't seem to fit with the rest of his speech, and also incorrectly
pluralises "strategy".

--------------------------------------------------------------------------------
0b14ed1bad | Chris Campbell | 2012-04-08 18:42:21 +0100

Add a message for casting Control Teleport on -cTele floors

--------------------------------------------------------------------------------
404ee94f8e | Neil Moore | 2012-04-08 13:12:49 -0400

Use unseen background tile for (unknown) items.
If the item type is unknown but the item instance has known type (i.e.
an "(unknown)" object in a shop), the background tile for the item would
be the correct one for its appearance.  However, this is an information
leak: it allow the tiles player to ctrl-f an item in a shop to learn,
for example, that "potion of cure mutation (unknown)" has a blue tile,
and thus that this untested "silvery-white potion" must be something
else.

Fix the leak by using the base ("unseen") background tile for such
objects, along with the icon for the identified type.

--------------------------------------------------------------------------------
17cdde5e3c | David Lawrence Ramsey | 2012-04-08 09:56:53 -0500

Fix wording of some Sage-related messages.

--------------------------------------------------------------------------------
d589834af8 | Adam Borowski | 2012-04-08 15:40:16 +0200

Fix the docs claiming 'A' is something else than merely a stone arch.
In the Vestibule, markers are placed in addition to the arches, not by them.

--------------------------------------------------------------------------------
4b7f175c41 | Adam Borowski | 2012-04-08 15:27:10 +0200

Fix exiting any portal crashing...
Yay for fresh regressions you notice seconds after pushing :p

--------------------------------------------------------------------------------
47926bca1c | Adam Borowski | 2012-04-08 15:06:23 +0200

Fix Trowel cards mysteriously not working in disconnected branches.
It was damn spoily that you had to get out of Pan, Zig, or even that Ossuary
to draw Trowels.

It's not fully fixed yet:

* no portals will spawn in the Abyss.  It's a bit tricky how to handle double
  banishment; it's simplest to not go there.  We can let Trowel produce, for
  example, 50% exit_abyss 50% malign_gateway.

* you cannot get a new portal of the same type until you exit the previous
  instance.  This mostly matters for Bazaars as they're the only portal with
  allow_dup (for eg, Lab, you'd have to draw Trowel in a natural Labyrinth).

--------------------------------------------------------------------------------
9246b43875 | Adam Borowski | 2012-04-08 14:55:03 +0200

Fix a number of vaults that could never spawn.
"DEPTH: !A, !B, !C" doesn't actually allow anything, you'd need at least one
positive match.  For some reason "0-" doesn't work, I added "*" for consistency
with useless "Branch:*".

--------------------------------------------------------------------------------
56119a8290 | Adam Borowski | 2012-04-08 13:56:26 +0200

Expose is_level_on_stack to lua.
"you" is a strange place, but:
1. you.where, you.branch, you.absdepth are already there
2. dgn is not accessible by clua

--------------------------------------------------------------------------------
d15a5cc561 | Raphael Langella | 2012-04-08 13:37:10 +0200

Slightly increase the rarity of elf blademasters and master archers.
They will sometimes spawn outside the end vault in Elf:4 or Elf:5, but rarely.

--------------------------------------------------------------------------------
0763ab119a | Adam Borowski | 2012-04-08 13:36:11 +0200

Assert out if you try to enter a level that's already on the stack.
No current disconnected level supports multiple copies.

--------------------------------------------------------------------------------
fd0a1caa87 | Raphael Langella | 2012-04-08 13:35:34 +0200

Remove restrictions on armour training.

--------------------------------------------------------------------------------
e312df1e42 | elliptic | 2012-04-08 07:10:03 -0400

Make using Enchant Weapon III scrolls on missiles less inefficient.
EW III = 1d2 EW I + 1d2 EW II on non-missiles.
EW I = EW II on missiles.
Now EW III = 1d2 EW I + 1d2 EW II = 2d2 EW I on missiles, as is consistent.

Previously EW III just did max(1d2,1d2) EW I on missiles, which meant that it
was always more efficient to use all your EW III on weapon/launchers... this
made the enchanting process both more complicated and more spoilery.

--------------------------------------------------------------------------------
8ee69c136a | Neil Moore | 2012-04-08 05:12:24 -0400

Allow monster-on-monster IOOD action.
The IOOD tracer did zero damage, meaning the monster would decide the
spell is useless when cast against another monster.  Fix this by setting
the tracer's damage to the IOOD hit damage.  This allows friendlies to
use IOOD, and hostiles to use IOOD against your summons.

The tracer damage doesn't take distance into account.  This could mean
the monster thinks the spell is better than it actually is.

--------------------------------------------------------------------------------
6b22b519f2 | Adam Borowski | 2012-04-08 11:05:05 +0200

Fix oplace for entering portals.
This assumes no walkways when there's anything on the stack -- ie, no
non-portal subbranches from a portal vault.

--------------------------------------------------------------------------------
f5098f3e34 | Adam Borowski | 2012-04-08 10:59:20 +0200

Purge remnants of Hell instant upstairs code.
This also fixes X[] being unable to go back and forth between Hell levels
-- [ would always switch to the Vestibule.  Now it will do so only if the
cursor is on a portal back there.

--------------------------------------------------------------------------------
44b8611a04 | Neil Moore | 2012-04-08 01:21:23 -0400

Do not display Tengu flight as suppressed in '%'.

--------------------------------------------------------------------------------
242b157989 | Chris Campbell | 2012-04-08 02:53:47 +0100

Remove useless hunger costs from Zotdef abilities, make Sage cost stat drain

--------------------------------------------------------------------------------
4df81e8349 | Chris Campbell | 2012-04-08 02:53:47 +0100

Allow Tengu to fly when transformed
Currently it behaves inconsistently (casting a form while flying doesn't
force you to land), and Tengu fly magically rather than with wings that
would meld when transforming.

--------------------------------------------------------------------------------
86f4668bfe | Adam Borowski | 2012-04-08 03:17:32 +0200

Spawn less unguarded direct exits from Pan, spawn far more ones via the Abyss.
The latter could come only from a single rare layout.

--------------------------------------------------------------------------------
ebde12f069 | Adam Borowski | 2012-04-08 00:00:50 +0200

Make exits through Abyss a feature on their own.
That explains why you can walk from Pan.

--------------------------------------------------------------------------------
db92759c71 | David Lawrence Ramsey | 2012-04-07 16:07:12 -0500

Ensure that ankuses aren't randomly generated anymore.

--------------------------------------------------------------------------------
a7f549ffe5 | Adam Borowski | 2012-04-07 22:15:37 +0200

Fix pandemonium transits not being created; place exits via a vault instead.

--------------------------------------------------------------------------------
56e1a973ec | Adam Borowski | 2012-04-07 09:07:09 +0200

Unyellowify a dprf().
Stair types are no longer all-important and deserving of getting highlighted
during debugging.  Probably printing this info at all is spam.

--------------------------------------------------------------------------------
e4ce5015b4 | Adam Borowski | 2012-04-07 00:28:49 +0200

Simplify closing portals during the Orb run; handle portals in Pan.
How can you get into Pan with the orb, is another question... the old code
did try to handle them but assumed only portals there are exits through Pan.

--------------------------------------------------------------------------------
f9078c86f3 | Adam Borowski | 2012-04-07 00:23:16 +0200

Use the level stack to save return target for portal vaults/Abyss/Pan/Zigs/Lab.
Unlike the initial implementation that was talked about, this one nearly
completely ignores what stair is used to do X, meaning you can exit a branch
by any stair that goes up, etc.

Also, this commit earns the prize of the most rebased and edited one.  And it
ended up a tiny fraction of its initial size, with far simpler code to boot.

--------------------------------------------------------------------------------
e138055e44 | Chris Campbell | 2012-04-06 17:47:55 +0100

Don't let undead monsters cast Regeneration
Only applies to spectral Nergalle at the moment, but in theory monster
ghouls and vampires *should* be able to cast it if they were ever
given the spell...

--------------------------------------------------------------------------------
f63e3e493e | Chris Campbell | 2012-04-06 17:37:16 +0100

Don't let monsters waste turns casting Vampiric Draining on nothing
Also don't let them try and cast it on things that they know have
negative energy immunity, and add a message for when it fails due to
negative energy resistance.

--------------------------------------------------------------------------------
999fb6793a | Chris Campbell | 2012-04-06 17:36:21 +0100

Don't let monsters cast disallowed spells when low on health
And remove a bit of resulting code duplication. Fixes spectral Nergalle
being able to cast Death's Door even though it's disallowed for undead
caster.

--------------------------------------------------------------------------------
1e591cb76e | Chris Campbell | 2012-04-06 17:35:15 +0100

Fix monster-cast Vampiric Draining ignoring rN+

--------------------------------------------------------------------------------
5b1faeb648 | Chris Campbell | 2012-04-06 16:36:29 +0100

Don't apport items through statues/grates

--------------------------------------------------------------------------------
6cbf94bf9a | Adam Borowski | 2012-04-06 17:24:33 +0200

Show absdepth0 on &^E.

--------------------------------------------------------------------------------
5cc8d0ab48 | Chris Campbell | 2012-04-06 15:25:44 +0100

Tone down Wild Magic's success penalty instead of marking it as bad

--------------------------------------------------------------------------------
2dbd7f598f | Adam Borowski | 2012-04-06 15:23:44 +0200

Don't stop runrest due to Regeneration being close to expiring.
It's a strange default, considering that it's a spell that lasts a very
short time, has no nasty consequences if you can't renew it right the
turn it expires, and far more important messages don't have a runrest
stop by default (Lich form expiring, etc).

--------------------------------------------------------------------------------
f2c6dd5f0f | Adam Borowski | 2012-04-06 12:33:54 +0200

For kittehs, curse weapon/armour is only useless.

--------------------------------------------------------------------------------
332f8bf609 | Adam Borowski | 2012-04-06 12:26:12 +0200

Show absdepth0 on &^E.

--------------------------------------------------------------------------------
730e42a672 | Adam Borowski | 2012-04-06 12:26:12 +0200

Mark the Wild Magic mutation as "mostly bad".
With wild magic 2 (not a rare case with Xom), you get 68% failure even on
level 1 spells with D:6 skills, which means mostly -CAST.  Later on the
mutation may be more useful, but since at that point you're likely at the
power cap for low level spells anyway, it's still mostly bad.

Ie, it's in the same club as berserkitis and teleportitis, both of which
sometimes prove useful.

--------------------------------------------------------------------------------
7bf89b5a7d | Adam Borowski | 2012-04-06 12:26:12 +0200

Fix ego:spirit_shield not working in vault definitions.

--------------------------------------------------------------------------------
994e008811 | Raphael Langella | 2012-04-06 11:56:31 +0200

Don't announce jellies spawned from hurting TRJ.

--------------------------------------------------------------------------------
22a6ff26fb | Neil Moore | 2012-04-05 23:59:53 -0400

Avoid another "monster" crash.
Silver statues use the MiscDB (via weird_glowing_colour() ->
getMiscString()).  Detect missing databases in _getWeightedString()
instead, to catch both this and the previously-handled queries.

--------------------------------------------------------------------------------
97089b0ef5 | elliptic | 2012-04-05 21:57:18 -0400

Don't give non-staff gladiators UC skill.
It doesn't do a thing for them now, and they get to use a buckler instead.

--------------------------------------------------------------------------------
7f1232d79b | elliptic | 2012-04-05 21:26:32 -0400

Make kicks and headbutts completely independent of Unarmed Combat skill.
It was nearly independent before (only their frequency was affected by UC
skill, and only for characters lacking hooves/horns... i.e. characters for
which these auxes barely did any damage anyway), and this was quite confusing
to players. Although kicks/headbutts from UC skill were flavourful, they
mainly just created more message spam about doing no damage.

Now the only "auxiliary" attack granted by UC skill is the offhand punch, and
UC skill is the only way to get it. Rather than make offhand punches more
frequent, I compensated by increasing their damage (replacing UC/3 by UC/2).

--------------------------------------------------------------------------------
009f01e6cd | elliptic | 2012-04-05 20:39:54 -0400

Fix compile and add some spaces.

--------------------------------------------------------------------------------
a5a4ff3438 | elliptic | 2012-04-05 20:28:37 -0400

IMB explosion changes.
The explosion now consists of an independent 75% chance to shoot a range 2
blast in each of the eight cardinal directions. Directions that would leave
LOS radius or that would hit the caster are forbidden.

As with chain lightning, you don't get a warning that you might harm a friend.

--------------------------------------------------------------------------------
fdde135809 | Adam Borowski | 2012-04-06 01:37:54 +0200

Get rid of that nasty redundant switch with food values.

--------------------------------------------------------------------------------
3d89d79871 | Adam Borowski | 2012-04-06 01:13:56 +0200

Update the table of food values to reflect the other copy.
It's the latter what was used, so let's take it as authoritative.

--------------------------------------------------------------------------------
6724018970 | Adam Borowski | 2012-04-06 01:02:23 +0200

Reduce some code duplication.
We can go further here; the only thing I cared about was the item reference.

--------------------------------------------------------------------------------
d9f2200eb1 | Adam Borowski | 2012-04-05 23:28:52 +0200

Don't look up spells on a non-spellbook non-rod.

--------------------------------------------------------------------------------
d1d064f94b | Chris Campbell | 2012-04-05 22:11:09 +0100

Make monster spells take up less space in debug mode descriptions

--------------------------------------------------------------------------------
df412964a8 | Adam Borowski | 2012-04-05 23:05:24 +0200

Fix monster info (except for desc) not showing up in wizmode.
mon_info has been changed to use absolute coordinates again, which is an
information leak but it was unmanageable that way.

--------------------------------------------------------------------------------
0d2ca58aa7 | Adam Borowski | 2012-04-05 22:51:15 +0200

Cut some massive code duplication.
Every god conduct had a couple of functions, one for rods, one for
spellbooks, just to be able to tell between the two -- and neither was
needed.  A single function can deal with all of this; only Trog cares
if it's a book or a rod.

--------------------------------------------------------------------------------
8ae89f4b34 | Adam Borowski | 2012-04-05 22:12:35 +0200

Make another bunch of functions static or gone.

--------------------------------------------------------------------------------
457f92c1a7 | Adam Borowski | 2012-04-05 21:33:35 +0200

A typo in .pl.

--------------------------------------------------------------------------------
26f1bf4fa1 | Adam Borowski | 2012-04-05 21:33:35 +0200

Remove an unused deck property (from Mark Four times).

--------------------------------------------------------------------------------
274fa8d694 | Adam Borowski | 2012-04-05 21:33:18 +0200

Use ucs_t rather than "unsigned" in a few places.

--------------------------------------------------------------------------------
d34caa7dfc | Adam Borowski | 2012-04-05 21:33:18 +0200

Don't unnecessarily check for SPARM_DARKNESS on non-cloaks.
Not a big optimization, but still one.

--------------------------------------------------------------------------------
79e0d0b454 | Chris Campbell | 2012-04-05 16:41:58 +0100

Don't heal players when casting vampiric draining under DDoor

--------------------------------------------------------------------------------
d7628e0bfe | Chris Campbell | 2012-04-05 16:41:25 +0100

Fix monsters not being healed when casting vampiric draining on players

--------------------------------------------------------------------------------
77f76ec28b | Chris Campbell | 2012-04-05 16:40:57 +0100

Don't let monsters heal from vampiric weapons while under DDoor

--------------------------------------------------------------------------------
bec61c68e3 | Chris Campbell | 2012-04-05 15:52:09 +0100

Show the location of invisible monsters you're constricting
(In case you started constricting them before they went invisible).

--------------------------------------------------------------------------------
c173530e01 | Chris Campbell | 2012-04-05 15:26:54 +0100

Unify a couple of to-hit penalties
Players now get a penalty when confused (only monsters used to), and
monsters get a penalty when invisible but unable to see themselves
(only players used to).

--------------------------------------------------------------------------------
8ee7becbe6 | Chris Campbell | 2012-04-05 15:26:53 +0100

Don't let minotaurs retaliate while confused

--------------------------------------------------------------------------------
165db27b5e | Chris Campbell | 2012-04-05 15:26:52 +0100

Don't constrict things you can't see, don't constrict while confused

--------------------------------------------------------------------------------
a4f20a1fb1 | Adam Borowski | 2012-04-05 15:20:10 +0200

When recreating a level with &^R, make uniques re-eligible for spawning.

--------------------------------------------------------------------------------
3510bdbd85 | Adam Borowski | 2012-04-05 15:04:16 +0200

Don't attempt to generate killer bee larvas in D/Vaults (it'd fail anyway).
They have no assigned rarity.  Since they're pointless on their own, and look
out of place, let's go with status quo and remove dormant code.

--------------------------------------------------------------------------------
ef90fb2328 | Adam Borowski | 2012-04-05 14:48:13 +0200

Re-enable the monster tier counters spam.
It's time to fix the XL 2-7 problem, it blocks stuff like new Okawaru piety,
and makes monster list colouring less useful.

Preferably, all lines on the graph should be horizontal:
http://angband.pl/tmp/monster-tiers-by-xl.png

--------------------------------------------------------------------------------
e9e3817707 | Adam Borowski | 2012-04-05 14:42:08 +0200

Give the Nemelex formula for corpses to Jiyva as well.
These gods care about corpses as items, while for blood gods they're tokens
of victory.  The likes of Makhleb could care more for hurting sentient beings,
but the current way has the benefit of working in the Lair.

--------------------------------------------------------------------------------
a5c840eb7c | Adam Borowski | 2012-04-05 13:55:58 +0200

Fix Nemelex giving nearly no decks of summonings.
The weight (and piety gain) was set ridiculously low.

In 0.10, they depended on the corpse's mass.  Let's tie it to the max
number of chunks you can get for the corpse instead:

              0.10 recently    now
orc            600       50    200
yak           1900       50    400
green rat      220       50     50
hydra         1800       50    400
killer bee     150       50     50
yaktaur       1900       50    400
stone giant   2700       50    450

You get ~4 times fewer decks of summoning than before, but at least some.

--------------------------------------------------------------------------------
5a83ae6c9e | Adam Borowski | 2012-04-05 13:55:58 +0200

Fix a recommended command in a comment.

--------------------------------------------------------------------------------
5244e3efe8 | Chris Campbell | 2012-04-05 12:44:55 +0100

Add HousePet to CREDITS.txt

--------------------------------------------------------------------------------
dfe5f187e5 | Adam Borowski | 2012-04-05 10:19:08 +0200

Assert if the Lua stack is non-empty.

--------------------------------------------------------------------------------
0f6962bc2d | Adam Borowski | 2012-04-05 10:19:08 +0200

When you die in wizmode to rotting, remove all rot.

--------------------------------------------------------------------------------
3a8e79067a | Adam Borowski | 2012-04-05 10:19:07 +0200

Fix a lua stack leak.
It takes up hardly any memory (a single value per turn), but Lua has a small
limit for the stack, and even worse, misleadingly reports overflow as "out
of memory".

--------------------------------------------------------------------------------
f9501ecb9c | Michael Gagno | 2012-04-04 23:43:32 -0700

Actually place the teleporter in the_teleporter.

--------------------------------------------------------------------------------
557b6d736b | Neil Moore | 2012-04-05 01:59:42 -0400

Partially re-restrict Archmagi brand.
It only works on body armour, so don't allow it elsewhere, even in
non-strict mode.

--------------------------------------------------------------------------------
8726066579 | Neil Moore | 2012-04-04 23:56:46 -0400

Add Wensley to CREDITS.txt.

--------------------------------------------------------------------------------
38dcd0d677 | Neil Moore | 2012-04-04 23:53:36 -0400

Add Wensley to crawl-ref-cia hook.

--------------------------------------------------------------------------------
c19104ed3c | Neil Moore | 2012-04-04 23:39:24 -0400

Whitespace fixes.

--------------------------------------------------------------------------------
959580c94e | Ben Striegel | 2012-04-04 23:39:24 -0400

make suppression debug unrands more significant

--------------------------------------------------------------------------------
fd3d132f91 | Ben Striegel | 2012-04-04 23:39:24 -0400

New unrands for debugging suppression

--------------------------------------------------------------------------------
dc9d3093db | Ben Striegel | 2012-04-04 23:39:24 -0400

Item effect -> player effect abstraction, part 1
There are a whole bunch of places in the code where effects on the player are 
determined by directly checking for whether a single item is equipped. For 
example, `wearing_amulet(AMU_STASIS)`. This commit abstracts all of these 
checks into actual effects, such as `player_effect_stasis()`, to more easily 
jive with checking for suppression. For some effects, especially resist 
mutation, more work still needs to be done to unify effect checking... but this 
suffices for the moment.

--------------------------------------------------------------------------------
0959c5a00c | Ben Striegel | 2012-04-04 23:39:24 -0400

Need to actually try and compile before committing...

--------------------------------------------------------------------------------
8da6c8d011 | Ben Striegel | 2012-04-04 23:39:23 -0400

Suppression aura effects, part 1
This first round of suppression effects focuses solely on denying the player
any advantages (and disadvantages!) from equipped magical items. Specifically,
I searched for the following three strings in the source: "wearing",
"player_equip", and "scan_artefact" and added a "you.suppressed()" clause to
ensure that effects only apply outside of fields of magical suppression.
There's a lot more to do, but this is a good start. Specifically, this
addresses the most important aspect of the suppression aura, which is to deny
the player any resists from items.

--------------------------------------------------------------------------------
af7e6c68fa | Adam Borowski | 2012-04-05 02:30:06 +0200

Fix MacOS9 newlines (???) in csim.lua

--------------------------------------------------------------------------------
3193be7ead | Raphael Langella | 2012-04-05 00:58:19 +0200

Stun the monster for half a turn when escaping constriction.
To prevent it from constricting again right away.
Anacondas can still do it though.

--------------------------------------------------------------------------------
a9fd82cc62 | Raphael Langella | 2012-04-05 00:58:19 +0200

New constriction escape formula.
It now depends on strength and not on size.
player breaks free if (4+n)d(8+str/4) >= 5d(8+HD/4).

--------------------------------------------------------------------------------
7e4d1e475b | Raphael Langella | 2012-04-05 00:58:18 +0200

A little lua script to test escape constriction formula.
It's not very useful on its own but it might provide a skeleton to test
other formulae.

--------------------------------------------------------------------------------
dca6507ea3 | Raphael Langella | 2012-04-05 00:58:17 +0200

A lua hook for div_rand_round.

--------------------------------------------------------------------------------
db1e54f8ec | Neil Moore | 2012-04-04 17:05:46 -0400

Call attention to some switch fall-throughs.

--------------------------------------------------------------------------------
8d4e6acd57 | Adam Borowski | 2012-04-04 22:59:01 +0200

Make checks for armour brands way, way, waaay too loose in non-strict mode.
I doubt it makes much sense to look at what technically works, though.
This commit disallows only brands that don't work due to code reasons.

--------------------------------------------------------------------------------
d79910743b | elliptic | 2012-04-04 16:44:05 -0400

Autofight: Attack monsters who are constricting you first.

--------------------------------------------------------------------------------
620290a1e0 | Adam Borowski | 2012-04-04 22:21:24 +0200

Add monster.is_constricting_you() to lua.
If there are two hostile nagas, one constricting you and another a summon of
yours, it was impossible to tell which one is which.  And sadly, lua has
currently no way to pass "you".

--------------------------------------------------------------------------------
625c816a69 | Adam Borowski | 2012-04-04 22:04:47 +0200

Remove monster.is_very_stabbable().
stabbability() provides strictly more information.

--------------------------------------------------------------------------------
8991009d63 | Adam Borowski | 2012-04-04 21:07:08 +0200

Sync manual with the wiki.

--------------------------------------------------------------------------------
3924635d30 | Adam Borowski | 2012-04-04 20:58:48 +0200

Add monster.stabbability to lua.
Return a float 0..1 representing the stab bonus.

--------------------------------------------------------------------------------
c76b155cc9 | Adam Borowski | 2012-04-04 20:58:47 +0200

Add {you,monster}.is_constrict{ed,ing} to clua.

--------------------------------------------------------------------------------
394a83c938 | Adam Borowski | 2012-04-04 20:58:47 +0200

Update .pl translations.

--------------------------------------------------------------------------------
ebb559fa1f | Chris Campbell | 2012-04-04 19:11:38 +0100

Simplify and increase boulder beetle damage

--------------------------------------------------------------------------------
fa9c2b99e6 | Chris Campbell | 2012-04-04 19:10:32 +0100

Improve Naga constriction gain message

--------------------------------------------------------------------------------
df75ef0351 | elliptic | 2012-04-04 11:05:06 -0400

Reorder some feature type enums in the next major version.

--------------------------------------------------------------------------------
14d7242575 | elliptic | 2012-04-04 11:05:06 -0400

Add feat_is_reachable_past to handle trees correctly.

--------------------------------------------------------------------------------
f591944139 | elliptic | 2012-04-04 11:05:06 -0400

Autofight: don't try to reach through glass or trees.

--------------------------------------------------------------------------------
f11f6ed907 | elliptic | 2012-04-04 11:05:05 -0400

Don't waste turns trying to hit rock worms when it will do nothing.

--------------------------------------------------------------------------------
e9f404eb05 | Adam Borowski | 2012-04-04 15:19:01 +0200

Force timestamps on .d to be same or older as those of .o
It turns out GCC outputs .d after .o, albeit by such a tiny fraction of
second that they have the very same timestamp more than half of the time
(the "nanosecond precision" is not really that).

This causes spurious recompiles, which cause relatively little pain with
ccache, but are nasty without.  Even more, they waste time in builds that
require "make install" to be a separate step from "make" -- Crawl would
instead compile a good part again.

The solution here is a nasty hack -- does anyone have a better idea?

--------------------------------------------------------------------------------
da637328bd | Adam Borowski | 2012-04-04 14:59:23 +0200

Make teleporters a feature of their own.
This allows keeping autoexplore from entering them on its own, stopping
autotravel/run, forbidding monsters from standing there, etc.

It'd probably be good to change the lua interface as well.

--------------------------------------------------------------------------------
c36f223174 | elliptic | 2012-04-04 08:42:08 -0400

Fix outdated comment.

--------------------------------------------------------------------------------
1b668a146b | elliptic | 2012-04-04 08:37:16 -0400

Don't let reaching weapons hit submerged monsters.
We don't need more reasons for everyone to carry a polearm. Besides, reaching
weapons are long enough to hit a monster 2 squares away, not long enough to
hit something underwater 2 squares away.

--------------------------------------------------------------------------------
fd88fc9cc6 | elliptic | 2012-04-04 08:23:35 -0400

Autofight: always prioritize attacking over moving.
Previously autofight would prefer to move towards an "unsafe" monster even if
a "safe" monster (e.g. a melee-only monster on the other side of a single
square of water) was in range of an attack. This should work better.

--------------------------------------------------------------------------------
71bcc25400 | elliptic | 2012-04-04 08:23:35 -0400

Don't try to hit orbs of destruction with autofight.

--------------------------------------------------------------------------------
9f7189ef81 | Neil Moore | 2012-04-04 07:34:29 -0400

Remove an unused macro and constify variables.

--------------------------------------------------------------------------------
b8566880d3 | Adam Borowski | 2012-04-04 11:59:22 +0200

A different wording for rods with big battery.

--------------------------------------------------------------------------------
c094910176 | Adam Borowski | 2012-04-04 11:53:38 +0200

Fix rod recharge calling skill() with an unbounded scale argument.
This commit caps it at 17000, enough to recharge any rod to full.
Note that 17000 is still quite a bit above 92...

--------------------------------------------------------------------------------
0dbff5aea1 | Adam Borowski | 2012-04-04 11:50:49 +0200

Fix skill() crashing with large scales.
In the worst case (Spellcasting at 26.99 with a -5 apt), it'd overflow with
a scale as low as 92.

This commit doesn't actually allows unlimited values of scale, merely gives
us another 16 bits.  Max scale of 5976516 should be enough for everybody,
right?

--------------------------------------------------------------------------------
0416c62321 | Adam Borowski | 2012-04-04 11:31:21 +0200

Reword the desc of rods with capacity of 17.
"It is fully charged." implies it's current charge that is being talked of,
not the capacity.

--------------------------------------------------------------------------------
68d6661ba0 | elliptic | 2012-04-03 21:26:03 -0400

Set scythe acquirement weight to 0.
As their description says, they are farm implements, not serious weapons, and
thus they should have acquirement weight 0 like clubs, hammers, and staves.

--------------------------------------------------------------------------------
97849ea7ed | elliptic | 2012-04-03 20:16:28 -0400

More whitespace fixes.

--------------------------------------------------------------------------------
d2907fc5f4 | Adam Borowski | 2012-04-04 02:00:51 +0200

Whitespace fixes.
I personally prefer no spaces between every single symbol, but if the
agreed upon style has them, let's be consistent.  And no tabs.

--------------------------------------------------------------------------------
64a4a200cc | Adam Borowski | 2012-04-04 01:57:32 +0200

Restore the full weight for Spider zig levels, bring more redbacks and orb 
spiders.

--------------------------------------------------------------------------------
bfb28e03ab | Adam Borowski | 2012-04-04 01:39:16 +0200

Horny cats may still have soft paws.

--------------------------------------------------------------------------------
59d2fc3eec | Adam Borowski | 2012-04-04 01:22:57 +0200

roctavian's tiles for Lair sub-branch entrances.

--------------------------------------------------------------------------------
44d34cf64c | Raphael Langella | 2012-04-04 00:34:56 +0200

Fix an infinite loop when setting skill level in wizmode.
It could be triggered with &A15 on a brand new DECj.
I'm not really sure why the rounding up didn't work, this is more a safety
net than a real fix. However, it's just a rounding error so I say it's close
enough for a wizmode command.

--------------------------------------------------------------------------------
b16fa88e89 | Raphael Langella | 2012-04-04 00:14:18 +0200

Slightly better default training values in auto mode.
Training is scaled the the square of the number of skill points. This means
that high level skills will start with a much higher training ratio than low
level ones.
It's not always the best strategy to train your highest level skill first
(priest) but it often is, and at the very least, it can be a hint to newbies
that they shouldn't spread their skill training too much in the begining.

--------------------------------------------------------------------------------
7df8457f7b | Raphael Langella | 2012-04-04 00:14:17 +0200

Fix unequipped items being cursed not disabling training (#5526).

--------------------------------------------------------------------------------
95681939e0 | Raphael Langella | 2012-04-04 00:14:17 +0200

Improve the auto_eat option.
Carnivores will stuff themselves as much as they can automatically now.
Even with normal metabolism, there's a little improvement. If you start
resting/exploring/travelling while already hungry, you'll start by eating.

--------------------------------------------------------------------------------
2f186193e8 | Adam Borowski | 2012-04-03 21:37:12 +0200

Guarantee Spider, to let it see more testing.
The other three branches compete for a single slot.

--------------------------------------------------------------------------------
a31dea8019 | Chris Campbell | 2012-04-03 19:13:20 +0100

Vehumet wording/description tweaks

--------------------------------------------------------------------------------
e192c41c29 | Chris Campbell | 2012-04-03 18:54:20 +0100

Whitespace fixes

--------------------------------------------------------------------------------
23770cd32b | elliptic | 2012-04-03 13:33:59 -0400

Make exploding IMB unblockable.
Blocking an unstable sphere of energy isn't going to be a very good idea, so
just try to dodge.

--------------------------------------------------------------------------------
2746758bca | ldierk | 2012-04-03 17:42:47 +0100

vehumet implemented with a duration and a slightly better spell choosing 
algorithm. still no saving, and a lot of other // TODO: 's

--------------------------------------------------------------------------------
c610c3b941 | Chris Campbell | 2012-04-03 17:31:24 +0100

Make Ice Storm prompt when it could hit you

--------------------------------------------------------------------------------
8a4a1a394d | elliptic | 2012-04-03 11:35:40 -0400

Check SH before EV when beams try to hit monsters.
The other order was inconsistent both with beams hitting players and with
melee. This is mainly relevant with shields of reflection.

--------------------------------------------------------------------------------
3eb16f9a47 | elliptic | 2012-04-03 11:35:40 -0400

Give Iskenderun's Mystic Blast a chance of exploding.
IMB was very similar to both Stone Arrow and Throw Icicle (which serve
important roles in their elemental schools as they are); this change aims to
differentiate it a bit better while also making it synergize better with
IOOD (by making it a bit better against groups of monsters at close ranges).

Changes:
* Range 5 -> 7.
* Damage reduced by about 15%.
* If IMB hits something, it has a 3/(2*(distance traveled)+2) chance of
  exploding and also hitting adjacent creatures.

--------------------------------------------------------------------------------
8e2ef1ccc1 | Adam Borowski | 2012-04-03 15:22:46 +0200

Forbid tormenting stuff through glass.

--------------------------------------------------------------------------------
277470f056 | Adam Borowski | 2012-04-03 15:21:05 +0200

Don't let Swap, Damnation, Jiyva, Beogh and Xom affects monsters through glass.

--------------------------------------------------------------------------------
6a7cf97ce5 | Adam Borowski | 2012-04-03 15:21:05 +0200

Fix Stack Five not redrawing wielded decks.

--------------------------------------------------------------------------------
274e985ee4 | Neil Moore | 2012-04-03 08:54:08 -0400

Fix a Singing Sword database key.

--------------------------------------------------------------------------------
d8767bf28f | Michael Gagno | 2012-04-03 01:03:20 -0700

Allow hangedman_spider_trapstep to appear on Spider:1-3.
The last commit changed it by mistake.

--------------------------------------------------------------------------------
c8761b3aed | Michael Gagno | 2012-04-03 01:01:47 -0700

Do not place ghost moth vaults on Spider 1 or 2.

--------------------------------------------------------------------------------
7513afe757 | elliptic | 2012-04-02 23:06:56 -0400

Make submerging monsters only flee until they submerge once.
Anyone who has played a melee-based character in Swamp knows what chasing down
a fleeing alligator, crocodile, or swamp worm is like - you move next to the
submerged monster, it moves two squares away and resubmerges, you move next
to it again, it moves away and resubmerges, repeat a dozen times.

Now the monster will stop fleeing when it unsubmerges and attack you instead.

--------------------------------------------------------------------------------
d21d557ec2 | Adam Borowski | 2012-04-03 00:06:35 +0200

Fix a crash on beastly appendage check for melded helmets.

--------------------------------------------------------------------------------
06eb15078a | Chris Campbell | 2012-04-02 22:48:43 +0100

Add better feedback messages when casting Alistair's Intoxication

--------------------------------------------------------------------------------
7e837162be | Chris Campbell | 2012-04-02 22:38:21 +0100

Improve message for trying to read scrolls while brainless
To hopefully better indicate that multiple tries will allow you to
succeed (even if "almost" is maybe a bit optimistic there).

--------------------------------------------------------------------------------
59612e2b66 | Adam Borowski | 2012-04-02 17:51:32 +0200

Comment the PROPORTIONAL_FONT and MONOSPACED_FONT makefile options.

--------------------------------------------------------------------------------
e895bf9c16 | Adam Borowski | 2012-04-02 16:25:03 +0200

A new fake language, "wide", to test CJK wrapping.
Note that it works only on console and webtiles, not local tiles -- which is
a bug that needs to be fixed before any real translations come.  Polish letters
are already screwed up there.

--------------------------------------------------------------------------------
8eebffc28e | Adam Borowski | 2012-04-02 16:16:19 +0200

Rename translate.cc to lang-fake.cc, to avoid confusion.
I intend to name actual per-language C++ files lang-en.cc, lang-pl.cc

--------------------------------------------------------------------------------
829a39cf71 | Adam Borowski | 2012-04-02 15:53:46 +0200

Use proper "typographical" punctuation marks in quotations.
This serves to visibly mark quotes as something distinct from actual 
descriptions.

--------------------------------------------------------------------------------
8f7415c536 | Adam Borowski | 2012-04-02 15:28:29 +0200

Preserve indentation when wrapping a line.
Quotation marks are considered to be indentation, so paragraphs are wrapped
like this:

“Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
 tempor incididunt ut labore et dolore magna aliqua.  Ut enim ad minim
 veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
 commodo consequat.  Duis aute irure dolor in reprehenderit in voluptate
 velit esse cillum dolore eu fugiat nulla pariatur.  Excepteur sint occaecat
 cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
 est laborum.”

--------------------------------------------------------------------------------
6d6160c747 | Adam Borowski | 2012-04-02 13:20:23 +0200

Fix a botched check for rune mimics.
Also, check for the rune being unique rather than being one of the four
(just in case we add a new special Pan lord).

--------------------------------------------------------------------------------
7d4c8b5fb2 | Adam Borowski | 2012-04-02 12:50:06 +0200

Prompt for abandoning a rune when leaving Pan via the Abyss as well.

--------------------------------------------------------------------------------
95062e92b4 | Adam Borowski | 2012-04-02 11:45:12 +0200

Fix an (otherwise harmless) error message on creating Maxwell's armour.

--------------------------------------------------------------------------------
fc3b04bd5a | Adam Borowski | 2012-04-02 11:33:46 +0200

.pl godspeak: less goofy wording, fix punctuation.

--------------------------------------------------------------------------------
a8cb701d09 | Adam Borowski | 2012-04-02 11:31:06 +0200

Remove Xom's cursed gift speech from .pl database as well.

--------------------------------------------------------------------------------
28680aba92 | Adam Borowski | 2012-04-02 10:37:44 +0200

Add a comment with a table of abj durations.
The formulas there are damn hard to read.

--------------------------------------------------------------------------------
c78dcbb1b8 | Adam Borowski | 2012-04-02 10:01:50 +0200

Slightly simplify/optimize.

--------------------------------------------------------------------------------
ab4f3038ec | Adam Borowski | 2012-04-02 10:01:27 +0200

No need to scan the inventory to check if the player has the Orb.

--------------------------------------------------------------------------------
80408f72d6 | Adam Borowski | 2012-04-02 09:46:29 +0200

Simplify.
Seriously, when Dijkstra wrote his essay, he meant BASIC-style code, not
every single use of goto.  And here, we got a prime example that it can lead
to more readable code.  For other examples, please read "'GOTO Considered
Harmful' Considered Harmful" and other writings from 56-25 years ago.

And I really need to put a comefrom somewhere :p

--------------------------------------------------------------------------------
caf8437085 | Adam Borowski | 2012-04-02 08:12:55 +0200

Fix a crash on monster tloc miscasts.

--------------------------------------------------------------------------------
7c514a6e32 | Adam Borowski | 2012-04-02 08:12:54 +0200

Hack away a crash on killing krakens.
Generally, the interactions between cleanup_dead=false and killing tentacley
stuff are a nightmare.

--------------------------------------------------------------------------------
1e365420f7 | David Lawrence Ramsey | 2012-04-01 21:52:19 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
bfa6a02d32 | elliptic | 2012-04-01 20:00:17 -0400

Fix all characters being forced to worship Xom every turn.

--------------------------------------------------------------------------------
d866d6c114 | Adam Borowski | 2012-04-02 01:33:30 +0200

Revert "Translate every game to dwarven or jägerkin.  Set "language=boring" if 
you're uncool."
The actual code should be removed too, let's discuss on c-r-d.
This reverts commit b3e44a1f32e0f40414157c7bae8694265fb85b98.

--------------------------------------------------------------------------------
afbd131893 | Raphael Langella | 2012-04-02 01:27:03 +0200

New blood splat tiles (omndra #4612).
Improved colouring and transparency.
Consistency with corpse blood colour.
More variety of shapes.
Some wall bloods have inscriptions. Those ones will only be used on level
generation and only on south facing walls, because rotated inscriptions are
not so hot. And they are rare.

--------------------------------------------------------------------------------
a2490edb85 | Chris Campbell | 2012-04-01 18:50:53 +0100

Remove Xom speech for annoyance gifts

--------------------------------------------------------------------------------
67a77ee77b | Chris Campbell | 2012-04-01 18:50:47 +0100

Remove Recall and Fly from Xom's tension spell list

--------------------------------------------------------------------------------
155eaae7c9 | Chris Campbell | 2012-04-01 18:50:43 +0100

Make Xom statloss less severe

--------------------------------------------------------------------------------
b12f7ef42d | Chris Campbell | 2012-04-01 18:49:52 +0100

Remove Xom annoyance gifts, make item gifts rarer

--------------------------------------------------------------------------------
2e00978b70 | HousePet | 2012-04-01 18:49:48 +0100

Changes Xom to be more tension orientated and less cruel.

--------------------------------------------------------------------------------
f6a8e8aaa0 | Chris Campbell | 2012-04-01 18:46:42 +0100

Don't let summoned monsters pick up items

--------------------------------------------------------------------------------
0970d1a616 | Adam Borowski | 2012-04-01 16:59:14 +0200

End transformations immediately, rather than after the next action.
This is a throwback to the times when aborting any enchantment worked this
way.  Since there is an actual balance effect (aborting lich form), I made
it take 15 aut (affected by haste/stat loss/statue form/etc).

Thus:
* it's a nerf if you had something else to do in that turn
* it's neutral if you're a dirty abuser who did a weapon swap
* it's a boost if you used '.' to wait that turn

This fixes the infuriating interface screw when untransforming out of spider
form to butcher.

--------------------------------------------------------------------------------
292318b235 | Adam Borowski | 2012-04-01 16:59:14 +0200

Revert "No form switching.", make it take a bit longer.
You can't transform while in lich form in the first place, and it's the only
one with very deadly downsides.  Shedding slowness or rPois- is a milder abuse,
and even worse, this change made the interface painful.

Instead, let's have the transforming action take a bit more time.

This reverts commit cafb36c45208adbc98ff81c1048f1a6df355f48e.

--------------------------------------------------------------------------------
5e7a31a954 | Adam Borowski | 2012-04-01 16:59:14 +0200

Fix Hell portals not being placed on encompass maps.

--------------------------------------------------------------------------------
88d6b2a39f | Adam Borowski | 2012-04-01 16:59:14 +0200

Clean up after long-removed floor placeholders hackery.

--------------------------------------------------------------------------------
f7442d95a6 | Adam Borowski | 2012-04-01 16:59:14 +0200

Use ♣ not Ω for trees in charset_ibm.
The only reason ♣ has been avoided before is that it's CP437 code, 5, is
interpreted as a control character by some terminals.  It had some point
when we used ncurses in 8-bit mode (where it relies on \e[11m).  The only
way to reproduce this problem now is to use a locale with CP437 encoding
-- not doable unless you write a locale definition yourself, something that
requires intent and knowledge.

On Windows, console output goes through Microsoft's non-standard API with
no support for control characters, so this not an issue there as well.

--------------------------------------------------------------------------------
5073be524e | Adam Borowski | 2012-04-01 16:59:14 +0200

Add comments showing encoded glyphs for > ASCII glyph sets.
It's only compiling on Windows what keeps us from writing these as literals
right in the source, too.

--------------------------------------------------------------------------------
5a244b327f | Chris Campbell | 2012-04-01 15:11:11 +0100

Don't give ball lightnings spells
Since they're confused and never cast them anyway.

--------------------------------------------------------------------------------
cafb36c452 | Raphael Langella | 2012-04-01 14:33:37 +0200

No form switching.
Player memorise beastly appendage just to be able to switch out of statue or
lich form in one turn. This is bad.

--------------------------------------------------------------------------------
babf7839a5 | Raphael Langella | 2012-04-01 14:22:56 +0200

Properly randomise the destination portal when taking a downstairs in Hell.
It seems that a bug makes it a bit random, now it's a feature and it's always
random.

--------------------------------------------------------------------------------
8b4b68f3d4 | Adam Borowski | 2012-04-01 09:53:51 +0200

Consider gaze attacks to be attacks.

--------------------------------------------------------------------------------
956037e743 | Michael Gagno | 2012-03-31 20:22:46 -0700

Remove a "WEIGHT: 9999" line left in by mistake in the Tartarus patch.

--------------------------------------------------------------------------------
220fb6e496 | Samuel Thorpe | 2012-03-31 20:19:36 -0700

Changes to Tartarus.
tar_old:
* Buffed the monster list to be in line with the other maps and added more 
guaranteed spawns.
* Changed the loot buildings to a mix of stone and rock to prevent being able 
to dig to the loot without seeing the monsters.
* Made the secret doors in Eresh's building restricted so monsters don't open 
them and also replaced the loot in there with gold, to encourage the player to 
go to the other buildings.

tar_minmay_river:
* Made the lower part harder to navigate through, this may make it too annoying 
but it's easy to tweak.
* Put some randomly placed shadow fiends throughout the map.

tar_mu:
* Subvaulted Eresh's room to prevent abuses with the old rock-cross setup.
* Added a few monsters to Eresh's building and let reapers spawn in the loot 
rooms.

--------------------------------------------------------------------------------
049b45242d | Adam Borowski | 2012-04-01 00:57:03 +0200

Remove some code for dealing with orb drops.

--------------------------------------------------------------------------------
1187a0ed08 | Adam Borowski | 2012-04-01 00:37:27 +0200

Comment about a (currently irrelevant) bug.
If teleport traps in ZotDef are to be re-enabled, this one needs to be fixed,
otherwise you can place a tele trap nearly on the Orb itself.

--------------------------------------------------------------------------------
8a535d0d62 | Chris Campbell | 2012-03-31 23:05:01 +0100

Don't allow throwing the orb away either, improve message flavour

--------------------------------------------------------------------------------
ca22271bab | Chris Campbell | 2012-03-31 22:48:20 +0100

Don't allow dropping the orb of Zot
This prevents people doing silly things to get around the -cTele
restrictions it gives, and probably just as importantly stops people
from accidentally dropping it and leaving it behind with the 'D'rop
last command.

--------------------------------------------------------------------------------
ef888f4606 | Chris Campbell | 2012-03-31 22:48:19 +0100

Don't place Tloc clouds when wizmode teleporting

--------------------------------------------------------------------------------
f4f3319d02 | Chris Campbell | 2012-03-31 22:48:19 +0100

Remove M_NO_POLY_TO from oklob saplings
Since they're used in a number of places, now.

--------------------------------------------------------------------------------
04ba86afc4 | David Lawrence Ramsey | 2012-03-31 12:04:09 -0500

Update descriptions of statues that can be instakilled via disintegration.

--------------------------------------------------------------------------------
3ca1b2e54e | Chris Campbell | 2012-03-31 17:21:43 +0100

Merge branch 'boulder_beetles'

--------------------------------------------------------------------------------
d1ec121983 | Chris Campbell | 2012-03-31 17:05:21 +0100

Adjust some boulder vault depths
Added Lair ruination to one of the corridor traps, and moved the other
to the Dungeon since the grate doesn't seem fitting in Lair.

--------------------------------------------------------------------------------
354a9ee73d | Pete Hurst | 2012-03-31 16:14:15 +0100

Fix LUA boulder placement

--------------------------------------------------------------------------------
c64fbfecba | Pete Hurst | 2012-03-31 16:14:10 +0100

Boulder tweaks

--------------------------------------------------------------------------------
62922bcad0 | Raphael Langella | 2012-03-31 16:46:05 +0200

Don't announce monsters in fsim.

--------------------------------------------------------------------------------
6de1877767 | Raphael Langella | 2012-03-31 16:11:28 +0200

Fix merfolk tile sometime keeping its tail after untransform.
It could happened if you transformed in water, then untransform on ground.
It was only a tile bug.

--------------------------------------------------------------------------------
07d7585bf2 | Michael Gagno | 2012-03-30 18:27:08 -0700

De-spoiler trap_god_beogh.
Loot room is still secret, but is now made of conspicuous metal walls.

--------------------------------------------------------------------------------
041897c320 | Adam Borowski | 2012-03-31 02:57:06 +0200

Fix a broken fallthrough for german.

--------------------------------------------------------------------------------
68f655e052 | Adam Borowski | 2012-03-31 00:20:22 +0200

Fix a crash on forced English.

--------------------------------------------------------------------------------
b3e44a1f32 | Adam Borowski | 2012-03-30 23:59:17 +0200

Translate every game to dwarven or jägerkin.  Set "language=boring" if you're 
uncool.
lisp is meh (and I don't know scheme either), german is okayish but it's
still more about comments in the source.

--------------------------------------------------------------------------------
1d5b509629 | Adam Borowski | 2012-03-30 23:48:28 +0200

Filter the player's title as well.

--------------------------------------------------------------------------------
c7765d595c | Adam Borowski | 2012-03-30 23:45:49 +0200

An ugly hack to put descriptions through filters as well.
Sadly, menus, especially columned, break too much.

--------------------------------------------------------------------------------
0ed23417bd | Adam Borowski | 2012-03-30 15:04:21 +0200

New translations: dwarven, jägerkin, lithp, german.

--------------------------------------------------------------------------------
2cef6e1752 | Adam Borowski | 2012-03-30 14:42:46 +0200

Allow forcing Ensligh as the language.
This matters if your system locale is a valid translation (not implemented
yet), or you want to override an earlier language= stanza.

--------------------------------------------------------------------------------
331a257efe | Michael Gagno | 2012-03-29 19:27:08 -0700

Eight Spider vaults. (nicolae)

--------------------------------------------------------------------------------
f1b2c0e6fc | Adam Borowski | 2012-03-30 01:55:14 +0200

Polish translations for Xomly things, and other god speech.

--------------------------------------------------------------------------------
f51b60ffbe | Adam Borowski | 2012-03-30 01:55:14 +0200

Mention cutting off heads in hydra's description.

--------------------------------------------------------------------------------
734b1bf69a | Raphael Langella | 2012-03-30 01:37:48 +0200

Don't turn the abyssal rune into a mimic.
It's redundant with abyss_fake_rune.

--------------------------------------------------------------------------------
4e1a37c09f | Raphael Langella | 2012-03-30 01:18:45 +0200

Allow item mimics in the abyss.

--------------------------------------------------------------------------------
a7e274755e | Raphael Langella | 2012-03-30 01:01:04 +0200

Mimic abyssal rune don't prevent the placement of a real one.

--------------------------------------------------------------------------------
12f39dc8d9 | Adam Borowski | 2012-03-29 16:53:59 +0200

Remove "foo-plated body armour".
Inappropriate in too many cases.

Also, remove joke gems, they were good in NetHack but Crawl has higher
standards.  Adamant too, it's too fuzzy a literary device.

--------------------------------------------------------------------------------
29e6815172 | Adam Borowski | 2012-03-29 14:38:02 +0200

Fix "monster" crashing on Roxanne (randart spellbook).
It has no way to access the database.

--------------------------------------------------------------------------------
4b91005229 | Adam Borowski | 2012-03-29 14:27:05 +0200

More randart body armour appearances.

--------------------------------------------------------------------------------
65c09118e7 | Adam Borowski | 2012-03-29 12:00:43 +0200

Revert "A bit of debug info about loaded translations, to help investigate CDO."
Investigation done, breaking of all games without "language=pl" done as well.
This reverts commit b65c0c250055b6b981a596c6369db8fef670e04f.

--------------------------------------------------------------------------------
3836b8e787 | Adam Borowski | 2012-03-29 12:00:06 +0200

Actually install translated databases on "make install".
No wonders it did work from the build dir.

--------------------------------------------------------------------------------
b65c0c2500 | Adam Borowski | 2012-03-29 11:29:26 +0200

A bit of debug info about loaded translations, to help investigate CDO.
Somehow, they fail to load there, and I can't seem to be able to reproduce
that locally, even in DGL mode.

--------------------------------------------------------------------------------
64e714e54b | Adam Borowski | 2012-03-29 11:00:41 +0200

Increase rod of striking damage with power, up to 1d18 at power 50.
Also, set the power cap at 50 (was 25, irrelevant) so you don't max it
near-instantly.  The rod thus becomes on par with wands of flame/frost,
except for shorter range but with unlimited use.

--------------------------------------------------------------------------------
b7666038ea | Adam Borowski | 2012-03-29 10:23:06 +0200

Fix a yet another constriction crash.
Seriously, the whole constriction storing code needs to be ripped apart and
written anew.

--------------------------------------------------------------------------------
af81a031b6 | Adam Borowski | 2012-03-29 03:28:30 +0200

Don't give out dragon armour to crap uniques; make them match tiles.

--------------------------------------------------------------------------------
ecb2911e86 | Adam Borowski | 2012-03-29 03:01:03 +0200

Remove Adolf's animate dead.
Doesn't fit him the slightest.

--------------------------------------------------------------------------------
e10fa858b5 | Chris Campbell | 2012-03-29 01:42:36 +0100

Remove pointless gnolls from enter_trove_5, oops

--------------------------------------------------------------------------------
46f04b1e52 | Neil Moore | 2012-03-28 20:38:19 -0400

Make morningstars etc primarily crushing, not piercing.
The only effects should be on the name of vorpal weapons, and the amount
of blood produced.  The weapons still do both kinds of damage.

--------------------------------------------------------------------------------
331a08889f | Chris Campbell | 2012-03-29 01:34:48 +0100

Don't use you.xl to determine monsters in roderic_carrion_pond, enter_trove_5

--------------------------------------------------------------------------------
fd4246e03b | David Lawrence Ramsey | 2012-03-28 12:42:43 -0500

Revert "Make sure that tentacles from Beastly Appendage properly override 
claws."
This reverts commit 1bbcb5a8c1278091f0fc4acc48eaa8b6111c963a.

Reverting the right commit this time.

--------------------------------------------------------------------------------
46b94181bd | David Lawrence Ramsey | 2012-03-28 12:42:16 -0500

Revert "Revert "Make Frederick's armour one class lighter 
(scale/chain/splint).""
This reverts commit 99c50197393fa58851899435fa113308ad307cc1.

Reverted the wrong commit.

--------------------------------------------------------------------------------
99c5019739 | David Lawrence Ramsey | 2012-03-28 12:06:52 -0500

Revert "Make Frederick's armour one class lighter (scale/chain/splint)."
This reverts commit 94032bac3553e5d9fc302dabc916296cfaac2d77.

--------------------------------------------------------------------------------
1e993d5360 | Chris Campbell | 2012-03-28 17:04:28 +0100

Don't let boulder beetles start rolling while confused
Possibly this was making them to decide to roll inside wall cells
occasionally? Not certain that it was the cause, though.

--------------------------------------------------------------------------------
88fd05d57f | Chris Campbell | 2012-03-28 16:37:24 +0100

Boulder vault updates (mumra)

--------------------------------------------------------------------------------
119f6e11aa | Chris Campbell | 2012-03-28 16:35:12 +0100

Whitespace/indentation fixes

--------------------------------------------------------------------------------
16960783c7 | Chris Campbell | 2012-03-28 16:34:45 +0100

Use HD to determine to-hit for shielding boulders

--------------------------------------------------------------------------------
1bbcb5a8c1 | David Lawrence Ramsey | 2012-03-28 09:54:59 -0500

Make sure that tentacles from Beastly Appendage properly override claws.

--------------------------------------------------------------------------------
94032bac35 | Adam Borowski | 2012-03-28 15:15:57 +0200

Make Frederick's armour one class lighter (scale/chain/splint).
This makes his spellcasting a bit more plausible.  He's one of highest
level uniques, armoured casting should be ok (he casts level 6 spells).

This leaves Louise, who's only XL 13, and often has both plate and a large
shield...

--------------------------------------------------------------------------------
48e776db5e | Adam Borowski | 2012-03-28 15:10:46 +0200

Allow building without assertions.
They are enabled by default, without a way to turn them off.
You can now append NOASSERTS=y.

Speed gains are around 5% -- not really worth it.

--------------------------------------------------------------------------------
1a3de6bd8d | Adam Borowski | 2012-03-28 14:53:30 +0200

Fatal conditions should be fatal.
Not that anyone builds Crawl with assertions off, though.

--------------------------------------------------------------------------------
3eeee3f3cc | Adam Borowski | 2012-03-28 14:46:41 +0200

Reformat json.cc to Crawl's standards, do backtraces on assert failures.

--------------------------------------------------------------------------------
47b57067b2 | Adam Borowski | 2012-03-28 13:47:19 +0200

Don't crash when a friendly monster casts emergency Vampire Draining.

--------------------------------------------------------------------------------
9d7f21b695 | Adam Borowski | 2012-03-28 13:37:22 +0200

Add a couple of asserts, just in case.
Brief arena and stress tests went ok, but let's have checks.

--------------------------------------------------------------------------------
0c49a3be4b | Adam Borowski | 2012-03-28 13:28:37 +0200

Greatly simplify monster attack delay code, make quick blades do something.
Most of this code did nothing as only players can have negative
effective_attack_number; the comments implied second attack is different
which it was not.

Weapons of speed and quick blades were capped to speed 10.  For now, they
provide only half the speed boost they would give to an unskilled player,
just like slower weapons do (and did) take only half the penalty.

--------------------------------------------------------------------------------
0f299c7aa8 | Adam Borowski | 2012-03-28 12:57:25 +0200

Ankusicide.
They were kept with a reduced weight as an oddity, but it looks like there
is nothing interesting there not already done by one of 67854684369 1-handed
maces.

--------------------------------------------------------------------------------
3224fde3c1 | Adam Borowski | 2012-03-28 12:24:07 +0200

Don't try to generate invalid ranged brands, don't do pointless re-rolls.
Reaping is gone from missiles for years.

The attempt to have >2/3 artefacts unbranded is pretty pointless if randart
weapons with no brand get rejected later.

Instead of generating non-crossbows of penetration and rejecting them, it's
simpler to not generate them in the first place.

--------------------------------------------------------------------------------
af8b9e6a33 | Adam Borowski | 2012-03-28 11:46:22 +0200

No reason to ban rN on weapons with evil brands.
To the contrary, they tend to come together on unrands.

--------------------------------------------------------------------------------
d97e13bad6 | Adam Borowski | 2012-03-28 11:01:23 +0200

Wrap some egregiously long lines in the source.
While adhering religiously to the 80 column limit tends to be often pointless,
173 column long lines are way, way over the edge from the other side.

--------------------------------------------------------------------------------
c373b29efe | Adam Borowski | 2012-03-28 10:42:41 +0200

Comment a comment.

--------------------------------------------------------------------------------
4cb8ab3725 | Michael Gagno | 2012-03-27 22:15:30 -0700

Make some floating vaults minivaults.

--------------------------------------------------------------------------------
f2d1b03108 | Adam Borowski | 2012-03-27 22:19:47 +0200

Auto-id unknown vulnerabilities from artefact jewelry as well.
"You feel a terrible chill." is a pretty clear message.

--------------------------------------------------------------------------------
ca4db88c0e | Adam Borowski | 2012-03-27 22:17:15 +0200

Auto-id jewelry when you explicitely "resist" a beam or cloud.
This applies only when you have exactly one eligible item; artefact
properties are handled as well.

I didn't bother handling _not_ being "terribly burned" if you have a known
vulnerability and a single unidentified ring, this could be done too.

It's only for cases you definitely know you do have the resistance (from the
message), there probably should be similar behaviour for stochastic cases
(like, not getting poisoned in ten poisonous bites).

--------------------------------------------------------------------------------
9e69609685 | Adam Borowski | 2012-03-27 20:28:46 +0200

An indentation fix.

--------------------------------------------------------------------------------
5d4afd7e15 | Raphael Langella | 2012-03-27 17:07:41 +0200

Revert "Revert "Fix claw damage to UC not being applied properly (#5460).""
Oups, I pushed that by mistake.

--------------------------------------------------------------------------------
dbf340badc | Raphael Langella | 2012-03-27 17:05:00 +0200

Replace minor healing by heal other for orc priests.
And high priests too.

--------------------------------------------------------------------------------
0f3668d2af | Raphael Langella | 2012-03-27 17:04:59 +0200

Revert "Fix claw damage to UC not being applied properly (#5460)."
This reverts commit acd50737b1bea64025f07519ff2e8dc667ed2b42.

--------------------------------------------------------------------------------
f758c806ac | Adam Borowski | 2012-03-27 16:04:37 +0200

Remove special-casing of hell absdepth0.

--------------------------------------------------------------------------------
b1116d438a | Adam Borowski | 2012-03-27 15:59:38 +0200

Make the difficulty of branches independent of where they generated.

--------------------------------------------------------------------------------
a472c3a8ad | Adam Borowski | 2012-03-27 15:39:46 +0200

Mark the game UI (tiles/webtiles/console) in morgues.

--------------------------------------------------------------------------------
ff5304ea10 | Adam Borowski | 2012-03-27 15:03:59 +0200

An ugly fix for antennae being unremovable.
you.attribute[] assumes 0 is the natural state, while MUT_ANTENNAE is 0 as
well.  Perhaps appendage should be a field instead?

--------------------------------------------------------------------------------
450f5f48e9 | Adam Borowski | 2012-03-27 14:31:41 +0200

Don't let most ways to delete a mutation mess with Appendage.
Zin is still allowed to, as he hates transformations.

--------------------------------------------------------------------------------
e962166bb3 | Adam Borowski | 2012-03-27 14:25:24 +0200

Use a helper function for a bit of readability.

--------------------------------------------------------------------------------
285bb62079 | Adam Borowski | 2012-03-27 14:13:05 +0200

Fix round-off errors when under Sage.
You lost 1 XP for every odd XP gain.

Also, explain what the bonus is (debug mode only).

--------------------------------------------------------------------------------
13f3e7316f | Adam Borowski | 2012-03-27 14:01:11 +0200

Make it impossible to wait out or re-roll Sage cards you don't want.
They redirect a certain amount of xp.  Multiple cards work concurrently,
diluting each other but not affecting the total amount of xp redirected.

Need a formula for how much to redirect.

--------------------------------------------------------------------------------
e176a44023 | Adam Borowski | 2012-03-27 12:06:26 +0200

Fix an infinite loop in fsim for races with no body armour.

--------------------------------------------------------------------------------
f8af3c2971 | Chris Campbell | 2012-03-27 02:13:52 +0100

Fix Hell Sentinels being placed in water in dis_wall_4 (st_)

--------------------------------------------------------------------------------
5da9dd9fc2 | Adam Borowski | 2012-03-27 01:32:14 +0200

Fix an use-after-free potential crash.
That's inside multithreaded code, so it's worse than it looks.

--------------------------------------------------------------------------------
f5498a422d | Adam Borowski | 2012-03-27 00:47:26 +0200

Hush a warning in DGL builds.

--------------------------------------------------------------------------------
f695f9f069 | Neil Moore | 2012-03-26 18:44:41 -0400

Fix an uninitialized variable or two.
Fixes #5495.

--------------------------------------------------------------------------------
0a8b6c4e82 | Chris Campbell | 2012-03-26 23:20:46 +0100

Make the staff of energy not eliminate rod spell hunger either (if you manage 
to wield both at once)

--------------------------------------------------------------------------------
25daf8ecfa | Adam Borowski | 2012-03-27 00:12:09 +0200

As a test, make Elf randomly 3 or 4 levels deep.
This disables itself automatically at 0.11 branching, but will probably be
removed earlier.

--------------------------------------------------------------------------------
318d158d97 | Chris Campbell | 2012-03-26 23:12:08 +0100

Improve Ignite Poison description, remove gender reference

--------------------------------------------------------------------------------
2c8c99fec4 | Adam Borowski | 2012-03-26 23:56:36 +0200

Merge branch 'master' into portal_branches
This includes fixes for 64834896234968 places in master that add new uses of
LEVEL_FOO and so on.

--------------------------------------------------------------------------------
96d45ba694 | Chris Campbell | 2012-03-26 22:47:11 +0100

Don't clear known items from the map with the Dowsing card effect

--------------------------------------------------------------------------------
2b68be28b4 | Chris Campbell | 2012-03-26 22:47:10 +0100

Make staff of energy halve spell hunger instead of eliminating it

--------------------------------------------------------------------------------
01c2aa8463 | Adam Borowski | 2012-03-26 22:23:59 +0200

Remove a pointless function whose name is longer and more complex than contents.

--------------------------------------------------------------------------------
34ac192565 | Adam Borowski | 2012-03-26 22:07:12 +0200

Let PLACE: selectors use level ranges as well.
This usually makes little sense, but can be good for absdepth ones
(PLACE: Bedlam:1, !10-), and it removes the need to implement :$ support
for PLACE: in a different way.

--------------------------------------------------------------------------------
e7bc353f8c | Adam Borowski | 2012-03-26 22:04:04 +0200

Actually match maps with Bedlam:$ selectors.
Turns out my testing was mistaken by a stale .des cache.

--------------------------------------------------------------------------------
537a8dfbb6 | Florian Diebold | 2012-03-26 22:03:08 +0200

Really don't crash on mad GDAs/CPMs.
kilobyte fixed the assert in the equip function in 03a2162567c, but
missed the one in unequip.

--------------------------------------------------------------------------------
7630471d95 | Policarpo Caballero | 2012-03-26 21:46:29 +0200

Several improvements to CMD_MAP_ANNOTATE_LEVEL.
- The message window doesn't appear in the middle of the map. Now,
the game sitches to the normal-mode, then returns to map-mode.
- The message "You can't annotate this level." can be seen.
- The description in dat/database/help.txt has been corrected.
- The command appears in docs/keybind.txt.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
c15f2df8c8 | Adam Borowski | 2012-03-26 21:36:17 +0200

Display depth ranges with $ properly.

--------------------------------------------------------------------------------
77a940b73e | Chris Campbell | 2012-03-26 16:50:49 +0100

Don't let boulders stop inside walls

--------------------------------------------------------------------------------
6b80adcb0b | Chris Campbell | 2012-03-26 16:50:11 +0100

Don't roll at adjacent targets

--------------------------------------------------------------------------------
13e83a7859 | Chris Campbell | 2012-03-26 16:49:50 +0100

Update boulder beetle description

--------------------------------------------------------------------------------
53306e5898 | Adam Borowski | 2012-03-26 17:20:40 +0200

Shorten Elf to three levels.

--------------------------------------------------------------------------------
169c8a5292 | Chris Campbell | 2012-03-26 16:13:25 +0100

Use a regular beam for boulder beetles, increase damage a bit

--------------------------------------------------------------------------------
e6df0af6f4 | Chris Campbell | 2012-03-26 16:13:03 +0100

Fix compilation

--------------------------------------------------------------------------------
c10da753bb | Adam Borowski | 2012-03-26 15:34:24 +0200

Allow using Bedlam:$ as "the deepest level of branch Bedlam" in vaults.
This means, a game started when Elf was 5 levels deep will get the end vault
on level 5 even if the game was transferred to a version where Elf has only
3 levels.

--------------------------------------------------------------------------------
c09acd6fac | Michael Gagno | 2012-03-26 01:51:22 -0700

Make moths web immune.
It's been commented several times now that it's unusual for ghost moths (a
key enemy in Spider) to be so vulnerable to webs.

Given that a new moth enemy is going to be added sometime soon, and moths in
general seem to be a sub-theme of the branch, I've gone and made the whole
genus web immune. All the other bugs (insects mostly) will stay vulnerable
to webs - they're allowed to spawn in the branch to give it a vague sense of
"ecosystem".

I'm aware that it's a little weird for all moths to be immune like this, but
I'm going to side with gameplay over realism on this. I guess Crawl's moths
have just evolved to be web immune, given their natural habitat is shared
with Spiders.

--------------------------------------------------------------------------------
5e8bc8f5e0 | Michael Gagno | 2012-03-26 00:07:30 -0700

Move the crypt_curse_skull vaults to crypt.des.
No idea what they were doing in mini_monsters.des.

--------------------------------------------------------------------------------
04537fedc5 | Michael Gagno | 2012-03-25 23:54:18 -0700

Custom shop vaults. (Guppyfry)

--------------------------------------------------------------------------------
e7953b104b | Michael Gagno | 2012-03-25 23:54:17 -0700

Two minivaults. (Guppyfry)

--------------------------------------------------------------------------------
e28db037a4 | Michael Gagno | 2012-03-25 23:54:17 -0700

Three abyss exits. (Guppyfry)

--------------------------------------------------------------------------------
3b33cbbc63 | Michael Gagno | 2012-03-25 23:54:16 -0700

Some spider minivaults. (Guppyfry)

--------------------------------------------------------------------------------
6ae5b21fb0 | Michael Gagno | 2012-03-25 23:54:15 -0700

Three new entry vaults. (ncdulo)

--------------------------------------------------------------------------------
44ae144f08 | Michael Gagno | 2012-03-25 23:54:15 -0700

Reduce tarantella spam.
Also tweaked a few other numbers.

--------------------------------------------------------------------------------
3035f14f64 | David Lawrence Ramsey | 2012-03-26 01:37:51 -0500

Fix the XOM_LAST_GOOD_ACT enum to account for mass inner flame.

--------------------------------------------------------------------------------
3bc0426564 | Chris Campbell | 2012-03-26 05:07:38 +0100

Allow more types of demon to be placed on the orb run
This could still be changed to make more sense but using
summon_any_demon is probably an improvement over choosing based on
enums (the demons have moved around a bunch recently).

--------------------------------------------------------------------------------
1a7325aa6c | Chris Campbell | 2012-03-26 04:34:43 +0100

Uncapitalise green deaths

--------------------------------------------------------------------------------
bba9ab5590 | Chris Campbell | 2012-03-26 04:31:08 +0100

Replace Pit Fiends with Hell Sentinels
Pit Fiends were mainly just slower Brimstone Fiends. Hell Sentinels are
intended to be a a tough, highly resistant 1 to replace them, and to
hopefully still be a threat without having torment. Numbers and spells
and stuff are all open to improvement.

Thanks to st_ for the name and description.

--------------------------------------------------------------------------------
2756b71194 | Chris Campbell | 2012-03-26 04:17:50 +0100

Improve the demon spawns on unique pan lord floors

--------------------------------------------------------------------------------
8d59628df3 | Chris Campbell | 2012-03-26 04:17:46 +0100

Change the band monsters for cacodemons and balrugs

--------------------------------------------------------------------------------
fd2f22861e | Chris Campbell | 2012-03-26 04:17:42 +0100

Make POISON_STAT attacks inflict weaker poison but more stat drain

--------------------------------------------------------------------------------
9bf59b7647 | Chris Campbell | 2012-03-26 04:17:37 +0100

Remove hairy devils

--------------------------------------------------------------------------------
d60c4510c7 | Chris Campbell | 2012-03-26 04:17:12 +0100

Make monster spines more accurate

--------------------------------------------------------------------------------
e07cc10dd1 | Chris Campbell | 2012-03-26 04:16:17 +0100

New Xom effect: Mass inner flame

--------------------------------------------------------------------------------
330c220559 | Chris Campbell | 2012-03-26 04:16:14 +0100

Don't let Xom gift permanent monsters

--------------------------------------------------------------------------------
0b5eed0dd9 | Michael Gagno | 2012-03-25 19:35:51 -0700

Use better hints for some hidden orc entries.
I just quit a game because I couldn't find one of these (mainly because I
wanted to find which vault was the culprit).

Apparently it used a metal wall as a hint, but that doesn't show up on the
map (in console) since everything is the same colour. Adding orcish idols
should help this.

This is practically a bug fix.

--------------------------------------------------------------------------------
bc46fe36ba | Adam Borowski | 2012-03-26 04:04:59 +0200

Remove totally inapropriate monsters from Volcano random spawns.
They were there solely because they use a red glyph.

Manticores should be probably removed as well -- didn't that yet only
because the list is too thin and a mythical creature can have a strange
habitat.

Also, toenail golems (burnt keratine anyone?).

Flayed ghosts can be potentially explained as flayed by fire, but still
very iffy.

Vampires are not that hot either.

--------------------------------------------------------------------------------
9354ee4daf | Adam Borowski | 2012-03-25 16:14:53 +0200

Fix arena message dumps sometimes not showing up.
The undefined value that happened to be there on the stack turned out to be
big enough every time I tested, but...

--------------------------------------------------------------------------------
d9804648b6 | Adam Borowski | 2012-03-25 16:14:53 +0200

Make some more functions static/gone.

--------------------------------------------------------------------------------
f1ac58e51d | Raphael Langella | 2012-03-25 15:32:40 +0200

Initialize skills before loading a dump file.

--------------------------------------------------------------------------------
73a5110cba | Raphael Langella | 2012-03-25 14:58:50 +0200

Remove some uneeded brackets and simplify.

--------------------------------------------------------------------------------
ae4194ad93 | Policarpo Caballero | 2012-03-25 14:46:41 +0200

New sub-command in map mode, that allows to annotate levels.
Now is possible too levels while the player isn't on them. In map mode ('X'), 
pressing '!' will run this command.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9f2b09ec70 | Adam Borowski | 2012-03-25 14:08:07 +0200

Fix arena message dumps being inoperative.
Someone made it as a stub in early 2009, and never implemented (but
documented as working!).  This suggests this feature is not exactly needed,
and perhaps could be axed?

--------------------------------------------------------------------------------
f97044e2e9 | Adam Borowski | 2012-03-25 12:51:20 +0200

Don't crash when a help topic is missing.
This doesn't solve the problem, merely a symptom.

--------------------------------------------------------------------------------
9e79ca40f2 | Michael Gagno | 2012-03-24 19:58:34 -0700

More Spider changes.
This increases the number of enemies in Spider by about 25%, while also
reducing the number of "plain" spiders. The monsters themselves have also
been tweaked: XP values have been lowered, and so has HP (it's mostly been
decreased, but not by a huge amount). Moths of wrath have been made very
slightly more common - it was almost impossible to get one before. It still
may be worth it to remove them entirely from this branch.

The XP numbers were tested against other Lair branches (including branch
endings). Right now Spider should be worth (on average) about as much as
other Lair branches.

These changes are somewhat experimental.

--------------------------------------------------------------------------------
e449352e5d | Michael Gagno | 2012-03-24 19:58:33 -0700

Spider vault changes.
Mostly just editing the weights of some vaults. Now that there are some
vaults made especially for the branch, I think it's worth making the former
portal vaults rarer.

--------------------------------------------------------------------------------
5c0e7b628d | Adam Borowski | 2012-03-24 21:50:53 +0100

Step down insane item prices.
A 7k vampiric lajatang is now at 3k, Dragon King is around 4.5k.

--------------------------------------------------------------------------------
cba5b16c75 | Adam Borowski | 2012-03-24 15:46:41 +0100

Offer to delete corrupted saves.

--------------------------------------------------------------------------------
7daf38ecd6 | Michael Gagno | 2012-03-23 21:24:16 -0700

Remove a redundant damage check.

--------------------------------------------------------------------------------
4b65b133b1 | Neil Moore | 2012-03-23 23:26:59 -0400

Don't credit wrong god with plant protection.

--------------------------------------------------------------------------------
7a9211d4ca | Adam Borowski | 2012-03-24 02:45:05 +0100

Disambiguate "tithe of 1/10 of gold" in Zin's description. (mumra)
It could be misunderstood as 10% of 1/10 (ie, 1%).

--------------------------------------------------------------------------------
872380a17c | Adam Borowski | 2012-03-24 02:34:03 +0100

ontoclasm's tile for the gossamer rune.

--------------------------------------------------------------------------------
9d79fc6dbd | Adam Borowski | 2012-03-24 02:29:15 +0100

roctavian's edits to giant {cockroach,mite} tiles.

--------------------------------------------------------------------------------
b4f028181c | Adam Borowski | 2012-03-24 01:42:08 +0100

Cut off Lom Lobon's legs (roctavian).

--------------------------------------------------------------------------------
177e336087 | Adam Borowski | 2012-03-24 01:25:45 +0100

Forbid merfolk from growing talons or hooves.
Hard to grow these on a fish tail, and we don't allow people to grow stingers
even if they'd be useful in dragon form...

--------------------------------------------------------------------------------
6ab836e967 | Adam Borowski | 2012-03-24 01:15:31 +0100

Revert talons locking Mf into human form.
If it would block transformations, it would keep them untransformed (ie, in
merfolk form), which is not exactly playable.  Also, no other form allows
growing mutations on top of it.

This reverts commit db5d8797687c800a97293abf5fe7891f05816e83.
This reverts commit b5427c66d5d17548b52cf02c5480158d0a3e397f.

--------------------------------------------------------------------------------
db5d879768 | Neil Moore | 2012-03-23 19:43:54 -0400

When entaloned, show fishtail pseudo-muts as suppressed.
Split off the logic into a function form_keeps_fishtail(), so we don't
have to repeat it four times.

--------------------------------------------------------------------------------
54b1b48b3c | Florian Diebold | 2012-03-23 23:54:40 +0100

roctavian's merfolk tiles.

--------------------------------------------------------------------------------
cfef93b1b3 | Raphael Langella | 2012-03-23 23:10:36 +0100

Replace the spammy water messages by a status light.
There's one for lava too.

--------------------------------------------------------------------------------
b5427c66d5 | Raphael Langella | 2012-03-23 22:19:24 +0100

Talon from beastly appendage prevents merfolk's fishtail.

--------------------------------------------------------------------------------
654b8b308a | Florian Diebold | 2012-03-23 20:05:46 +0100

Add a tile for the suppression aura.
I really don't like the whole packed_cell thing and how many changes
are necessary to add this kind of tile; much of packed_cell is just
replicating flags from map_cells. I'll have to check if this can be
simplified.

--------------------------------------------------------------------------------
42d8ed7d8c | Florian Diebold | 2012-03-23 19:49:01 +0100

Use map_knowledge in tile_apply_properties instead of directly accessing the 
game data.

--------------------------------------------------------------------------------
6493dee8cd | Florian Diebold | 2012-03-23 18:22:35 +0100

Webtiles: Write the PID to the logfile.

--------------------------------------------------------------------------------
3d4fb127c3 | Florian Diebold | 2012-03-23 18:22:35 +0100

Webtiles: Don't allow new connections while shutting down.

--------------------------------------------------------------------------------
aa86304cfd | Florian Diebold | 2012-03-23 18:22:35 +0100

roctavian's racial weapon tiles (#5420).

--------------------------------------------------------------------------------
a036d846cb | Adam Borowski | 2012-03-23 15:37:53 +0100

Arcane spellcasters don't want -CAST weapons, either.

--------------------------------------------------------------------------------
db69758b3f | Adam Borowski | 2012-03-23 15:01:36 +0100

Don't give all elves, Ijyb, orc priests dragon armours...

--------------------------------------------------------------------------------
44143447dc | Adam Borowski | 2012-03-23 15:01:36 +0100

Embed the timestamp into des cache files instead of relying on the filesystem.
This allows detecting input files going backwards -- ie, with any non-git
downgrade.

--------------------------------------------------------------------------------
db7514be20 | Chris Campbell | 2012-03-23 13:52:31 +0000

Clarify sizes a little better in monster descriptions
The differences between small/little and large/big are a fairly common
source of confusion for players.

--------------------------------------------------------------------------------
aef7714b6f | Chris Campbell | 2012-03-23 13:52:30 +0000

Change "extremely resistant" to "immune" in monster descriptions

--------------------------------------------------------------------------------
797905e2f1 | Adam Borowski | 2012-03-23 13:09:32 +0100

Marshall level_range.deny as bool.

--------------------------------------------------------------------------------
90f55f567f | Raphael Langella | 2012-03-23 12:50:06 +0100

Only fill the zombifiable vector the first time in pick_random_zombie().
It is static for a reason.
It fixes a crash when running place_population.lua in crypt. It's a memory leak
so it could lead to other crashes.

--------------------------------------------------------------------------------
b915d6e693 | Adam Borowski | 2012-03-23 12:25:11 +0100

Forbid monsters with arcane spells from picking up -CAST armour.
It doesn't work, too.

--------------------------------------------------------------------------------
2debecaf7e | Adam Borowski | 2012-03-23 11:12:41 +0100

Put references to removed cards in #ifdefs.

--------------------------------------------------------------------------------
0e8c877f7e | Michael Gagno | 2012-03-23 01:29:24 -0700

Change a 0 to an O.

--------------------------------------------------------------------------------
7a0fba068c | Michael Gagno | 2012-03-23 01:28:14 -0700

Some vaults featuring an orcish mining accident. (nicolae)

--------------------------------------------------------------------------------
ad6a0126a8 | Michael Gagno | 2012-03-23 01:15:45 -0700

More vaults. (HangedMan)

--------------------------------------------------------------------------------
6c7fc185d6 | Michael Gagno | 2012-03-23 00:17:44 -0700

Some edits to ncdulo's entry vaults.
Removed the loot, moved them a bit lower in the des file, and fixed the
stairs in one.

--------------------------------------------------------------------------------
279a116f80 | Nick Cardullo | 2012-03-23 00:12:29 -0700

Added new entry map "ncdulo_wetmaze"

--------------------------------------------------------------------------------
6d26b9cdaf | Nick Cardullo | 2012-03-23 00:12:06 -0700

Added new entry map "ncdulo_lavacross"

--------------------------------------------------------------------------------
6e8b518ab4 | Michael Gagno | 2012-03-23 00:03:14 -0700

Zig sprint tweak.
This moves the artefact pile up to the top row, before any of the other
items in the map.

--------------------------------------------------------------------------------
0c6cb346ea | Michael Gagno | 2012-03-22 19:19:11 -0700

Remove demonic crawler from demons_altar.

--------------------------------------------------------------------------------
65dd86fc7b | Adam Borowski | 2012-03-23 02:10:03 +0100

Give Margery dragon armour, in an attempt to justify spellcasting and her 
striperrific tile.
Even mentioning changing the tile has met with outrage, including
accusations of wanting to remove the last reason to ever play tiles.
So it looks like the fan service tile stays.

It can't be claimed to even remotely look like full plate armour, though,
while dragon scale leaves quite a bit of wiggle room.

--------------------------------------------------------------------------------
fe1d058183 | Adam Borowski | 2012-03-23 02:10:03 +0100

Use lighter armour for Erica, Harold, Josephine, Jozef, Psyche.
They used to have leather with a small chance for up to chain.  I instead
gave them a (smaller) chance for troll leather/steam/mottled.

--------------------------------------------------------------------------------
35569644d4 | Adam Borowski | 2012-03-23 02:10:03 +0100

Forbid monsters with arcane spells from picking up armour with EVP > 1.
The following can still start with one:

up to chain:
  deep elf knight
  Erica
  Josephine
  Harold
  Jozef
  Psyche

up to plate:
  vampire knight
  hell knight
  Jory
  Louise [+ large shield]
  Margery
  Frederick

large shield:
  draconian knight
  Mennas

--------------------------------------------------------------------------------
98c5c8b8fa | Adam Borowski | 2012-03-23 02:10:03 +0100

Remove Mennas' custom cast messages.
He's no perma-silent anymore, and can't cast through silence.

The other remaining message was bland, so let's use regular ones for now,
unless someone has an idea for replacements.

--------------------------------------------------------------------------------
7d9874032f | Adam Borowski | 2012-03-23 02:10:03 +0100

Since paladins don't cast spells, remove their spellcaster flag.
Also, even if the sacrifice idea is implemented, that's a priestly
(M_PRIESTLY_SPELLS) one rather than a wizardly (M_ACTUAL_SPELLS) one.

--------------------------------------------------------------------------------
d814b88000 | Raphael Langella | 2012-03-23 01:42:40 +0100

Jellies don't eat item mimics.

--------------------------------------------------------------------------------
9ded2db630 | Neil Moore | 2012-03-22 19:44:59 -0400

Name Arachne's corpse and zombie properly.
If a monster is unique and belongs to its own species, do not include
the species name in the name of a corpse or derived undead.  Produces
"the corpse of Arachne" and "the skeleton of Arachne" instead.

--------------------------------------------------------------------------------
a94a29e85d | Neil Moore | 2012-03-22 18:26:25 -0400

Stop claiming Arachne is buggy.
The Ensnare spell and AF_ENSNARE catch the victim in a web without a web
trap necessarily being located at their position.  Have held_status()
treat this case as "caught in a web" instead of "buggily held".  The
latter phrase is no longer used.

--------------------------------------------------------------------------------
81e5391a96 | Adam Borowski | 2012-03-22 23:06:35 +0100

Unbreak tile builds.

--------------------------------------------------------------------------------
b3339e87d0 | Adam Borowski | 2012-03-22 22:54:42 +0100

Replace "atype() == ACT_MONSTER" with "is_monster()" -- half the length.
Could probably just make it !is_player() instead, too.

--------------------------------------------------------------------------------
c9e50f0799 | Adam Borowski | 2012-03-22 22:54:42 +0100

Axe a number of no longer needed typecasts.

--------------------------------------------------------------------------------
889c096052 | Adam Borowski | 2012-03-22 22:54:42 +0100

Use monster_type nearly everywhere.
Omitted:
* mspec.type (uses a lot of magic values in the negatives)
* item_def.orig_monnum (todo, +1 trick)

A few minor problems are fixed here:
* renamed gas spores passed mindex for monster_type
* demon summoning would break on addition/deletion of demon types
* vaults spawning zombified uniques would fail to mark them as used

--------------------------------------------------------------------------------
3565ecf6be | Adam Borowski | 2012-03-22 22:54:42 +0100

Remove unused special-casing of pghosts and pan lords as -1 in the killtracker.

--------------------------------------------------------------------------------
61f4cf3e79 | Adam Borowski | 2012-03-22 22:54:41 +0100

Axe an unused variable.

--------------------------------------------------------------------------------
f14bd850e7 | Neil Moore | 2012-03-22 17:10:00 -0400

Fix a few more net/web messages.
Two cases: enchantment status text for monsters, and messages for caught
allies.  MB_CAUGHT is split into MB_CAUGHT and MB_WEBBED; and
held_status() is changed to take an optional actor pointer, defaulting
to &you.

The same tile flag is still used for both statuses, but it is now possible
to change this.

--------------------------------------------------------------------------------
638337078b | Adam Borowski | 2012-03-22 11:32:17 +0100

Disable death for the abyss stress test bot.
Interesting how it always got stuck in a cloud prompt or something before
managing to die every time before.

--------------------------------------------------------------------------------
9622e9ed23 | Adam Borowski | 2012-03-22 11:24:40 +0100

Allow the abyss test stress bot to work in non-debug builds as well.
There, you need to enable wizmode first.

--------------------------------------------------------------------------------
5918fd6a84 | Adam Borowski | 2012-03-22 11:24:40 +0100

A really crude and wrong way to disable confirmations.
This lets more advanced stress-test bots to continue through "Really
levitate into this cloud of steam?" prompts.

I intentionally kept it within the existing dlua debug.disables() interface,
even though non-wizmode clua bots do want this too, as it's the wrong way to
do so.  What we really want is a hook that receives the question, preferably
in a machine-parsable way rather than having different messages for
walk/levitate/fly/slither/ride your riding dachshund/waddle.

Such a hook would have to be well-though out, so I'm putting this quick hack
in instead, so I can waste CPU time running abys{s,m}al test bots.

--------------------------------------------------------------------------------
b5b93d8e29 | Adam Borowski | 2012-03-22 11:24:32 +0100

Don't let wandering monsters stop the abyss stress-test bot from starting up.

--------------------------------------------------------------------------------
fdb81bb5d9 | Adam Borowski | 2012-03-22 10:26:09 +0100

Fix a couple of null pointer uses (revealed by the asserts + canned stress 
tests).

--------------------------------------------------------------------------------
9bd7daac3a | Adam Borowski | 2012-03-22 10:07:47 +0100

Add some asserts inside actor->this_player().
Being non-virtual means the function can actually check for this instead of
segfaulting.

Also, ensure there is only one player -- code assumed this in a good number
of places before without actually checking anywhere.  This can be used as an
easily removable optimization when these asserts get removed.

--------------------------------------------------------------------------------
aa1f5b7bf9 | Adam Borowski | 2012-03-22 09:50:24 +0100

Don't declare actor->is_player() as virtual.
Having to go through the VMT forbids inlining, this function is never
overridden anyway, and the actual virtual call is inside.

--------------------------------------------------------------------------------
1bc880922b | Adam Borowski | 2012-03-22 09:45:43 +0100

Sort the fields of struct player a bit.

--------------------------------------------------------------------------------
900e01d22f | Neil Moore | 2012-03-22 03:25:31 -0400

Don't call foo->is_player() on a null pointer.
Many of the instances of (foo == &you) were in contexts where foo could
be NULL.  In those cases, include a test for foo being non-null.

Also, remove a few now-useless assertions; and add assertions to a few
cases that require but do not check for non-NULL pointers.

Fixes #5471.

--------------------------------------------------------------------------------
ac7c803163 | Michael Gagno | 2012-03-22 00:13:50 -0700

Aerie drop vault. (HangedMan)
Yes, let's combine Lemuel's two most ridiculous ideas into one. What could
possibly go wrong?

--------------------------------------------------------------------------------
f929824ae8 | Michael Gagno | 2012-03-22 00:11:26 -0700

Venom bottle vault. (HangedMan)
You skweez your snayk into the botl and DO NOT DRNK.

--------------------------------------------------------------------------------
b08f01babe | Michael Gagno | 2012-03-22 00:04:07 -0700

Vault updates. (HangedMan)

--------------------------------------------------------------------------------
574a0252d1 | Michael Gagno | 2012-03-21 23:20:46 -0700

Actually add the moth of supression tile.

--------------------------------------------------------------------------------
c85698cc97 | Michael Gagno | 2012-03-21 22:27:15 -0700

Moth of suppression tile. (cjo)

--------------------------------------------------------------------------------
2424da037e | Michael Gagno | 2012-03-21 22:07:44 -0700

Flag plain moths with M_NO_POLY_TO, since they are a dummy monster.

--------------------------------------------------------------------------------
6ae4b79cb0 | Michael Gagno | 2012-03-21 22:07:43 -0700

Description for basic moths.

--------------------------------------------------------------------------------
1900783a71 | Michael Gagno | 2012-03-21 22:07:42 -0700

Remove a useless block comment that got added in Wensley's patch.

--------------------------------------------------------------------------------
b6a697c590 | Michael Gagno | 2012-03-21 22:07:42 -0700

Flag moths of suppression as unfinished.

--------------------------------------------------------------------------------
d25490bfe0 | Ben Striegel | 2012-03-21 22:07:41 -0700

Moth of Suppression, preliminary coding

--------------------------------------------------------------------------------
c97a72811d | Chris Campbell | 2012-03-22 05:00:00 +0000

Make spiny frogs sound a bit less spiny in their description
Since they don't (currently) have actual spines when you attack them.

--------------------------------------------------------------------------------
4110f72574 | Michael Gagno | 2012-03-21 20:20:28 -0700

EV penalty for players caught in webs/nets.
A similar penalty already exists for monsters.

--------------------------------------------------------------------------------
5cab3ed0c9 | Adam Borowski | 2012-03-22 02:51:21 +0100

Shorten artefact rings of teleportation to "+/*TELE".

--------------------------------------------------------------------------------
9cfccfd3bd | Adam Borowski | 2012-03-22 02:34:37 +0100

Block blowguns of penetration.
It doesn't work with any of needle brands -- and that's not a bug as
theme-wise, it shouldn't (a needle doesn't deposit the poison/drug if it
goes straight through).

--------------------------------------------------------------------------------
b27132e504 | Adam Borowski | 2012-03-22 02:24:33 +0100

Use actor->is_player() instead of (actor == &you) as well.
Not so sure here as the latter is a bit faster (comparison with a constant
vs a virtual method call), but consistency is good.  Perhaps we should use
the latter way after all?  In any case, it should be the same everywhere
-- if someone has some insight, say a word so we can sed it again.

--------------------------------------------------------------------------------
f88c6a77a0 | Adam Borowski | 2012-03-22 01:59:37 +0100

Use actor->is_player() consistently instead of (actor->atype() == ACT_PLAYER).
Shorter and more readable.

I did not change the similar comparison with ACT_MONSTER yet -- are we ever
going to have other actor types?  God acts may work as well with a fake
monster, but multiplayer/arena can possibly want a third such type.  On the
other hand, code assumes that non-player implies monster and vice versa,
though, so I'm probably worrying without a point.

--------------------------------------------------------------------------------
f22ecef881 | Adam Borowski | 2012-03-22 01:59:35 +0100

Fix weapons not corroding upon one-shotting a jelly.
Also, this commit makes attacker_sustain_passive_damage() called for
monsters as well.  The check for weapon corrosion applying to the player
only has been moved there for now, it'd be good to implement that for
everyone.  Not doing this outright as this would hurt Beoghites and thus
it may be better to discuss this first.

--------------------------------------------------------------------------------
4f4a9bad69 | Adam Borowski | 2012-03-22 01:59:10 +0100

Bump the weight of the twisted cavern layout.
I somehow seem to hardly ever (if ever) get it in real games.

--------------------------------------------------------------------------------
f1c13e2d8a | Raphael Langella | 2012-03-22 01:32:38 +0100

Fix messages when caught in a web.

--------------------------------------------------------------------------------
22e466076f | Chris Campbell | 2012-03-21 18:54:15 +0000

Improve Twisted Res failure message

--------------------------------------------------------------------------------
217f279297 | Adam Borowski | 2012-03-21 14:21:46 +0100

Fix orc priests cheating with monster shoving to avoid constriction.

--------------------------------------------------------------------------------
c9ec6dd69f | Michael Gagno | 2012-03-20 20:40:14 -0700

Increase wolf spider depth in Lair and D.
To account for the HD and damage buff they got a while ago.

--------------------------------------------------------------------------------
a8edef433f | Michael Gagno | 2012-03-20 20:36:31 -0700

Replace buffed spiders in some early vaults.

--------------------------------------------------------------------------------
9aec8169e1 | Michael Gagno | 2012-03-20 20:17:00 -0700

Make jumping spiders slightly less jumpy.

--------------------------------------------------------------------------------
55b7dcd361 | Michael Gagno | 2012-03-20 20:13:32 -0700

Don't let orb spiders "flee" at low HP.
Also tweak their spellbook.

--------------------------------------------------------------------------------
e83d96fc03 | Chris Campbell | 2012-03-21 01:07:46 +0000

Fix an incorrect glyph in monster_shover

--------------------------------------------------------------------------------
9971d4f922 | Raphael Langella | 2012-03-21 00:43:16 +0100

Hatches and shafts respect no_rtele_into.

--------------------------------------------------------------------------------
7dd5c5871d | Adam Borowski | 2012-03-21 00:20:47 +0100

Make another bunch of functions static or deleted.
Looks like get_XXX_path and the like in files.cc could use some drastic
simplification, or perhaps even a nuking and rewrite.

--------------------------------------------------------------------------------
1730436e02 | Adam Borowski | 2012-03-21 00:19:36 +0100

Fix royal jelly's fragments not spawning on the death blow.

--------------------------------------------------------------------------------
6f1d64bf98 | Adam Borowski | 2012-03-20 23:46:25 +0100

Drop unneeded chunks when the pack is full, too.

--------------------------------------------------------------------------------
49100ffb5b | Adam Borowski | 2012-03-20 23:46:25 +0100

A new option: auto_drop_chunks.
Chunks are dropped only when picking something up would put you over the
burden limit.  There are two modes: partial one ("rotten") which will drop
only rotten ones (none at all if you're a saprovore or know Simulacrum/
Sublimation), and full which will drop any chunks that are going to be of
no use.  It tries to be smart about chunk quality: contam chunks are worse
than clean ones unless they're far fresher, modified by gourmand, mutations,
etc.

There's a lot that can be improved: for example, it doesn't care what you're
trying to pick up (new chunks should be counted); if you chop up an elephant
into 8 chunks it will still try to pick them up _and_ keep an "appropriate"
amount of old ones, etc.  Which is crippling if your carrying capacity is
200aum in the first place.

--------------------------------------------------------------------------------
190271d45a | Adam Borowski | 2012-03-20 23:46:25 +0100

Hide some literal hunger values.

--------------------------------------------------------------------------------
baf01e1ad0 | Adam Borowski | 2012-03-20 23:46:25 +0100

Remove an unused and pointless accessor.

--------------------------------------------------------------------------------
6cbeb81545 | Adam Borowski | 2012-03-20 23:46:25 +0100

Don't call a type the same name as a variable.
Also, use it for the variable like it's supposed to.

--------------------------------------------------------------------------------
e3006af6d6 | Adam Borowski | 2012-03-20 23:46:25 +0100

Sync manual from the wiki.
This is for new developments.

--------------------------------------------------------------------------------
3151f273ae | Adam Borowski | 2012-03-20 23:46:25 +0100

Manual fixes from the wiki (parts relevant to 0.10).

--------------------------------------------------------------------------------
628a8de0fb | Chris Campbell | 2012-03-20 19:10:16 +0000

Don't allow using items from the inventory screen while dead

--------------------------------------------------------------------------------
cafddc78c7 | HousePet | 2012-03-20 11:02:34 -0400

Corrects are the monsters in range check for static discharge

--------------------------------------------------------------------------------
a8cb8aadb4 | Chris Campbell | 2012-03-20 14:32:46 +0000

Update skill descriptions again (alefury)

--------------------------------------------------------------------------------
9f7d0e1721 | Raphael Langella | 2012-03-20 13:48:39 +0100

Trying to ignite a spellbook mimic reveals it.

--------------------------------------------------------------------------------
81818f3916 | Neil Moore | 2012-03-20 03:27:36 -0400

Don't let tgw_kikubaaqudgha and dk_yredelemnul_ordeal interact.

--------------------------------------------------------------------------------
56e746698b | Neil Moore | 2012-03-20 02:00:43 -0400

Whitespace fixes.

--------------------------------------------------------------------------------
3483f1fa06 | Pete Hurst | 2012-03-20 01:55:44 -0400

Boulder fixes (feedback from evktalo)

--------------------------------------------------------------------------------
a90614724a | Pete Hurst | 2012-03-20 01:55:43 -0400

Whitespace fixes

--------------------------------------------------------------------------------
56b1166b17 | Pete Hurst | 2012-03-20 01:55:43 -0400

Images for dust trails

--------------------------------------------------------------------------------
f348b88bf7 | Pete Hurst | 2012-03-20 01:55:42 -0400

Problem with version bump in clouds.cc

--------------------------------------------------------------------------------
0279dec085 | Pete Hurst | 2012-03-20 01:55:42 -0400

Dust trails for boulders

--------------------------------------------------------------------------------
340b6a4b77 | Pete Hurst | 2012-03-20 01:55:41 -0400

Make boulder carry on through killed things
And update boulders.des.

--------------------------------------------------------------------------------
6bf1983d83 | Pete Hurst | 2012-03-20 01:55:41 -0400

Clean up and optimise boulder images

--------------------------------------------------------------------------------
23df76ade1 | Pete Hurst | 2012-03-20 01:55:41 -0400

Rebase boulder_beetles onto master.
A couple of test boulder trap vaults
Partially implemented rolling boulder beetle
Rolling boulder mostly working, some small issues
Increase likelihood of rolling. Continue rolling when victim is killed.
Fixed sign error for flee mode of boulder

--------------------------------------------------------------------------------
257bbb5413 | Chris Campbell | 2012-03-20 02:58:17 +0000

Make spell power useful for Warp Weapon

--------------------------------------------------------------------------------
24fcccab44 | Michael Gagno | 2012-03-19 18:02:59 -0700

Fix spelling.

--------------------------------------------------------------------------------
ffa4397c77 | Michael Gagno | 2012-03-19 18:01:40 -0700

Reword Arachne description.

--------------------------------------------------------------------------------
1f5dd44b7d | Chris Campbell | 2012-03-20 00:51:46 +0000

Update and add to lots of skill descriptions

--------------------------------------------------------------------------------
724d6bc36c | Chris Campbell | 2012-03-20 00:51:46 +0000

Let Evocations increase max MP (by the same amount as Invocations)

--------------------------------------------------------------------------------
69de597283 | Michael Gagno | 2012-03-19 17:40:04 -0700

Ensnare melee attack for jumping spiders.
Creates a web, like the new ensnare spell does. For the idea behind this,
see "Deinopidae" here: 
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:dungeon:branch:spider#
monsters

The formula is very simple right now: 50% of attacks which deal damage will
try to ensare you. If this turns out to be too high, it's easy to change.

This also means jumping spiders are no longer just "blink frogs with
poison".

--------------------------------------------------------------------------------
f8e288b7c4 | Neil Moore | 2012-03-19 20:15:56 -0400

Avoid two unused static function in local tiles builds.

--------------------------------------------------------------------------------
bf61547e5e | Neil Moore | 2012-03-19 20:15:56 -0400

Don't favour north so much in _set_firing_pos().
Orb spiders would almost always end up moving north, because
radius_iterator scans from northwest to southeast.  Use
distance_iterator instead.  There still seems to be a bias, but at least
the monster doesn't always head straight for twelve o'clock and stay
there.

--------------------------------------------------------------------------------
acd50737b1 | Raphael Langella | 2012-03-20 01:06:57 +0100

Fix claw damage to UC not being applied properly (#5460).
This is a huge buff to Trolls, but it's probably putting them back to were they
used to be before UCC. Still, we might want to look at the balance here.

According to fsim, effective damage for a TrMo:
Skill |  Before |   After |
  0   |    1,45 |    3,10 |
  1   |    1,98 |    3,66 |
  2   |    2,43 |    4,34 |
  3   |    3,02 |    4,90 |
  4   |    3,64 |    5,56 |
  5   |    4,39 |    6,22 |
  6   |    4,99 |    7,04 |
  7   |    5,61 |    7,89 |
  8   |    6,63 |    8,71 |
  9   |    7,28 |    9,65 |
 10   |    7,99 |   10,61 |
 11   |    9,31 |   11,85 |
 12   |   10,22 |   13,20 |
 13   |   11,49 |   14,08 |
 14   |   12,46 |   15,12 |
 15   |   13,81 |   17,05 |
 16   |   15,16 |   18,35 |
 17   |   16,30 |   20,33 |
 18   |   18,50 |   22,11 |
 19   |   20,10 |   23,85 |
 20   |   21,89 |   25,93 |
 21   |   22,99 |   27,50 |
 22   |   25,63 |   29,80 |
 23   |   27,20 |   32,58 |
 24   |   29,78 |   34,48 |
 25   |   32,12 |   37,65 |
 26   |   35,25 |   40,27 |
 27   |   38,61 |   43,67 |

--------------------------------------------------------------------------------
ae977bc92f | Michael Gagno | 2012-03-19 16:19:30 -0700

Make orb spiders slower and a bit less common.
Trying to strike a medium between "very rare" and "spammy". After getting 7
of them on one level in a local game I think they can stand to be a bit
rarer.

As for the speed change, it affects their casting speed, but leaves their
movement speed at 12.

--------------------------------------------------------------------------------
796086837e | Raphael Langella | 2012-03-19 23:46:57 +0100

Don't ignite spellbook mimics.

--------------------------------------------------------------------------------
24921dece2 | Michael Gagno | 2012-03-19 14:02:56 -0700

Use AF_POISON_NASTY for ghost moths.
Was strong poison. This nerfs them a bit but they are still very tough
enemies, and without rPois you'll be into red poison pretty quickly.

--------------------------------------------------------------------------------
3500bbb6b8 | Michael Gagno | 2012-03-19 13:26:12 -0700

Tone down a Spider entry vault.
Given how the monsters have been changed recently.

--------------------------------------------------------------------------------
8b2a0b2c4a | Chris Campbell | 2012-03-19 17:17:24 +0000

Fix "clumsily bash" messages not appearing

--------------------------------------------------------------------------------
d3299fb356 | David Lawrence Ramsey | 2012-03-19 09:26:31 -0500

Revert "Simplify."
The check is supposed to work for either, not both (oops).

This reverts commit 481fcd091885b300bd5d64fa3b64e10bc5b3816a.

--------------------------------------------------------------------------------
e1692c155d | Adam Borowski | 2012-03-19 15:11:35 +0100

Dunk Arachne in lightcyan paint.
We can reserve the Hello Kitty colour -- just what to hybridize a kitteh with?

--------------------------------------------------------------------------------
d1de823c3d | Adam Borowski | 2012-03-19 14:46:58 +0100

Since Arachne's staff is always one of poison, pre-id it.

--------------------------------------------------------------------------------
b7833dbe79 | Adam Borowski | 2012-03-19 14:23:27 +0100

Fix a crash on casting pure Air spells (and a load of off-by-one problems).
Casting a pure Holy spell would cause this crash before, with their enum
removed, this happened for Air ones instead.

--------------------------------------------------------------------------------
24c29996b7 | Adam Borowski | 2012-03-19 14:10:54 +0100

Fix fallback to English not working in incomplete translations.

--------------------------------------------------------------------------------
905254ad75 | Adam Borowski | 2012-03-19 13:50:19 +0100

Make staves actually do something beyong being a cudgel for monsters.

--------------------------------------------------------------------------------
d5758d53d5 | Adam Borowski | 2012-03-19 13:50:18 +0100

Give Arachne a (lame) set of other spells, enable her.

--------------------------------------------------------------------------------
fe8d65638c | Adam Borowski | 2012-03-19 13:50:18 +0100

Give rF/rC/rElec/rN/MR to monsters wielding staves.

--------------------------------------------------------------------------------
a2ea141e91 | Adam Borowski | 2012-03-19 13:50:18 +0100

Remove redundant redundancy in header inclusion.

--------------------------------------------------------------------------------
055710b794 | Adam Borowski | 2012-03-19 13:50:18 +0100

Fix monsters not getting warded when wielding a staff of summoning.

--------------------------------------------------------------------------------
e04027396f | Adam Borowski | 2012-03-19 13:29:34 +0100

Arachne
Greek mythology has her as a mere non-sentient spider, the "spidertaur" form
I used here comes later -- most of 19th century artwork shows her that way,
possibly some earlier works too.

She has a staff of poison, and a spell that shoots a beam that splats a web
onto you.

--------------------------------------------------------------------------------
2cdc887adc | Adam Borowski | 2012-03-19 12:06:09 +0100

Fix staves of poison not giving monsters rPois.

--------------------------------------------------------------------------------
673e02c059 | Adam Borowski | 2012-03-19 12:06:09 +0100

Update hints: no need to levitate over shafts anymore.

--------------------------------------------------------------------------------
cf12a034b1 | Adam Borowski | 2012-03-19 12:06:09 +0100

Let description search work on translated (only) text.
Preferably, we'd look for English text if an item lacks its translation,
but it's non-trivial with DBM.  Not sure if it makes sense to even bother
with it (sqlite could be mandatory), but for now, this may be good enough.

--------------------------------------------------------------------------------
12ebb0ee18 | Michael Gagno | 2012-03-19 01:35:04 -0700

Partial resistance for AF_POISON_STRONG and other spider changes.
It was suggested in ##crawl-dev to have a "poison arrow" type of melee
attack, where rPois only has a partial effect. The way this works is if you
lack rPois, AF_POISON_STRONG will behave as it used to. If you have rPois,
it will act as medium poison. This is largely meant as a way of
differentiating redbacks from other spiders.

This attack is currently only used by three monsters (redbacks, ghost moths,
and sea snakes for some reason).

I've also buffed wolf spiders (stronger melee, but weaker poison) and
tarantellas (gets two attacks), and adjusted the monster list again.

--------------------------------------------------------------------------------
079782c0c9 | Neil Moore | 2012-03-19 02:39:05 -0400

Add explore_stop = portals, branches
The former was already implemented, but could not be specified
in the init file (and thus could not be turned off with -=).
Fix that, and also make Lab entrances count as portals.

The "branches" setting includes branch entrances as well as the
entrances to Hell, Abyss, and Pandemonium.  It does not include
portal vaults.

This is a regression for those who use "explore_stop -= stairs"
and expect it not to stop at branch entrances.

--------------------------------------------------------------------------------
8f855e29bf | Neil Moore | 2012-03-19 01:17:10 -0400

Be even more picky about shopping list replacements.
Don't offer to replace a ring with known pluses or a manual of known
type with a ring of unknown pluses or a manual of unknown type.

--------------------------------------------------------------------------------
e45dc402a6 | Neil Moore | 2012-03-19 01:05:16 -0400

Don't try removing the wrong item from the shopping list.
We were passing the new item, not the old one.  Since they didn't
necessarily have matching names (e.g. if the new item had different
pluses), ShoppingList::find_thing() would fail and the item would
not be removed.

Fixes #1402.

--------------------------------------------------------------------------------
af4ac7e3e1 | Neil Moore | 2012-03-19 00:05:06 -0400

Be more picky about shopping list replacements.
Do not prompt to remove a ring with strictly better pluses than the new
one, or a manual for a different skill.

--------------------------------------------------------------------------------
796a57992e | Michael Gagno | 2012-03-18 20:31:58 -0700

Make demonic crawlers web immune.
They're not spiders, exactly. Still, it's strange to see them get caught in
webs all the time.

--------------------------------------------------------------------------------
170ccdd5da | Neil Moore | 2012-03-18 22:40:42 -0400

Fix some doors I just screwed up.

--------------------------------------------------------------------------------
702c4c2b90 | Michael Gagno | 2012-03-18 19:28:23 -0700

minmay_fire_ice_demons update. (minmay)

--------------------------------------------------------------------------------
77b2d99b26 | Neil Moore | 2012-03-18 22:19:15 -0400

Do not create disconnected bubbles in dpeg_entry_round_a.

--------------------------------------------------------------------------------
481fcd0918 | David Lawrence Ramsey | 2012-03-18 21:09:59 -0500

Simplify.

--------------------------------------------------------------------------------
7a5d12bdd3 | David Lawrence Ramsey | 2012-03-18 21:09:21 -0500

Fix apparent typo.

--------------------------------------------------------------------------------
65b6ec8f46 | Raphael Langella | 2012-03-19 00:55:38 +0100

Better randomization of shafts and hatches destinations.
The old code set the destination of hatches when they were created and if it 
was a wall or
another unhabitable feature, the player was moved to the closest habitable cell.
In dense levels like Orc, the player often ended up against a wall or in a 
corner.

The new code choose the random destination when entering the level. When a 
suitable destination
is found it is saved in a map marker located at the original position.
There is a little bug. If you take a hatch down on level n-1 and then find a 
hatch up on level n+1
at the same coordinates, then the 2 hatches will have the same destination in 
level n.
This is extremely rare, unabusable and unoticeable, so I wouldn't worry about 
it. Fixing it would
require changing map_position_marker to store the dungeon_feature_type.

--------------------------------------------------------------------------------
46155c524e | Neil Moore | 2012-03-18 19:32:11 -0400

Redraw the screen between cards in Deal Four.
Otherwise, if a targetted card follows you may not see the walls even
though they block your targetting.

--------------------------------------------------------------------------------
75defd1af1 | Neil Moore | 2012-03-18 19:07:13 -0400

Don't crash when reading a line with mute:. and clear_messages .
If there were no messages at all, message_window::place_cursor() would
not move the cursor, leaving it in the last row and column.  This would
the cause line_reader::cursorto to try to scroll the messages, leading
to "ASSERT(next_line >= n) in 'message.cc' at line 449 failed."

This does not seem to happen if the cursor was legitimately in the last
row and column, so the crash appears to be avoided entirely.

--------------------------------------------------------------------------------
7f658d8598 | Neil Moore | 2012-03-18 17:52:33 -0400

Remove the orb spider test vault.
Now that they're randomly generated there's no need for the vault.

--------------------------------------------------------------------------------
564f68cfa2 | Neil Moore | 2012-03-18 16:51:51 -0400

Center the cursor correctly with messages_at_top.
We use GOTO_DNGN rather than GOTO_CRT to make it work correctly in webtiles,
but that means we need grid2view() rather than grid2screen() to get the
coordinates.

Fixes #5445.

--------------------------------------------------------------------------------
a2ea3db142 | Raphael Langella | 2012-03-18 21:36:26 +0100

Greatly reduce the chance for fleeing monsters to use reaching (#5450).
They only do so with 1 chance in 8, just like for throwing.

--------------------------------------------------------------------------------
864fcb9acc | David Lawrence Ramsey | 2012-03-18 13:23:07 -0500

Fix apparent typo in database lookups.

--------------------------------------------------------------------------------
17577c8c68 | Chris Campbell | 2012-03-18 14:15:58 +0000

Fix a typo in dk_yredelemnul_ordeal

--------------------------------------------------------------------------------
f38fa1f507 | Raphael Langella | 2012-03-18 14:39:56 +0100

Fix mimics annoucement causing crash (#5448).
I'm not even sure how it used to work without this...

--------------------------------------------------------------------------------
b53bf9aeff | Michael Gagno | 2012-03-17 22:40:01 -0700

Fewer special rooms in Spider.
Given that only bee rooms and jelly rooms are available here, 20% is simply
too high.

--------------------------------------------------------------------------------
68596cf072 | Michael Gagno | 2012-03-17 22:40:00 -0700

Use the correct orientation for the Spider ending vault.
Otherwise you'll get a big ugly stone wall in the middle of nowhere.

--------------------------------------------------------------------------------
026221718d | Michael Gagno | 2012-03-17 22:40:00 -0700

Give vestibule_mu a higher weight.
This map is more interesting than the classic one, and also has two
radically different versions. The classic vestibule is still reasonably
common.

--------------------------------------------------------------------------------
9f3748a143 | Chris Campbell | 2012-03-18 04:56:32 +0000

Mention carrying over piety in good god descriptions

--------------------------------------------------------------------------------
c638a0ae5a | Chris Campbell | 2012-03-18 03:52:51 +0000

Don't display destroyed traps on the map if they're out of LOS

--------------------------------------------------------------------------------
cc0c3fad3c | Chris Campbell | 2012-03-18 03:52:50 +0000

Let Ctrl+C clear clouds that are out of LOS

--------------------------------------------------------------------------------
5f489ad4e0 | Chris Campbell | 2012-03-18 03:52:50 +0000

Give Warpwright teleport traps a limited number of charges depending on power

--------------------------------------------------------------------------------
f7d281724f | Chris Campbell | 2012-03-18 03:52:49 +0000

Allow specifying number of trap charges when placing a trap

--------------------------------------------------------------------------------
27dc48c1d4 | Michael Gagno | 2012-03-17 17:55:53 -0700

More changes to Spider monster list.
Added orb spiders (uncommon) and changed some rarity values. Made "plain"
spiders slightly less common, since they spawn in bands (they're still more
common than they used to be).

--------------------------------------------------------------------------------
e1a276d711 | Michael Gagno | 2012-03-17 17:55:53 -0700

Slightly reduce redback's HP and increase wolf spider's.
This is only a small adjustment. Redbacks are SIZE_TINY, while wolf spiders are
SIZE_LARGE. It makes sense for the former to be a bit more frail and the
latter a bit more robust, compared to other spiders. HP values (or HD) for
other spiders might still be worth adjusting.

--------------------------------------------------------------------------------
522c2dbf70 | Michael Gagno | 2012-03-17 17:55:52 -0700

Changes to Spider:5.
The vault is now placed along the edge. There are also a few doors inside
it. This should help with some web related issues KoboldLord pointed out.

I've also changed the monster set a bit. The orb spiders might not work so
well in an enclosed vault (they're meant for open areas). On the other hand,
the "loop" layout of this vault takes advantage of their special AI.

--------------------------------------------------------------------------------
f645cd748a | Adam Borowski | 2012-03-18 01:19:35 +0100

Use translations when querying a weighted string from the database.

--------------------------------------------------------------------------------
d9be68a7f8 | Adam Borowski | 2012-03-17 23:56:32 +0100

Extend the makeshift language= to "de" and "fr".
I hope to find out soon what's the best way to detect it (gettext?), but
since folks of these two languages mumbled about starting translating
descriptions already, it's better to make it work out of the box ASAP.

--------------------------------------------------------------------------------
d5fc65b4b7 | Adam Borowski | 2012-03-17 23:44:36 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
bc66f85d8a | Adam Borowski | 2012-03-17 23:44:36 +0100

Some data to test randomized static queries on.

--------------------------------------------------------------------------------
3ba967a513 | Adam Borowski | 2012-03-17 23:44:36 +0100

Mark private keys in miscname.txt with _, document public ones.

--------------------------------------------------------------------------------
2a0e90942f | Adam Borowski | 2012-03-17 23:44:36 +0100

Fix database[en] being rebuilt every time if database[X] exists and is enabled.

--------------------------------------------------------------------------------
01e5bbb2ba | David Lawrence Ramsey | 2012-03-17 17:43:02 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
3576f4ef9d | David Lawrence Ramsey | 2012-03-17 17:43:01 -0500

Fix punctuation.

--------------------------------------------------------------------------------
bd779861c6 | Michael Gagno | 2012-03-17 15:33:58 -0700

A few vault tweaks.
-Corrected a few "autoexplore traps"
-Added loot to some highly dangerous vaults.

The reason for the latter is simply that extreme risk should have some
reward attached to it. Said reward doesn't have to be huge though.

There was talk in ##crawl-dev about also addressing some early vaults which
place OOD monsters. I've looked at these, and it seems better to simply
provide the player with warning (ie, make the vault obvious, and stop
explore before the player gets too far). An '8' monster on D:5 tends to be
dangerous, but not absurd if it's placed correctly.

--------------------------------------------------------------------------------
6933cff4f1 | Michael Gagno | 2012-03-17 15:18:56 -0700

Changes to zigsprint. (st)
Added some other unrands to the starting room.
Added plusses to the weapons/armour as well as adding dragon armours.
Added some misc items.
Changed the loot to include scrolls of EWIII/EA/vorpalise.
Heavily altered shoals rooms, adding water and krakens.
Minor changes to other monster sets

--------------------------------------------------------------------------------
659b5bccef | Michael Gagno | 2012-03-17 13:32:15 -0700

Whitespace fix.

--------------------------------------------------------------------------------
b1cbcf1cac | Chris Campbell | 2012-03-17 19:00:25 +0000

Mention partial resistances in the dragonskin cloak's description

--------------------------------------------------------------------------------
c25d4aaf1d | Adam Borowski | 2012-03-17 19:10:38 +0100

When a translated database exists, query it first, falling back to English.
In other words, this enables the first set of translated strings, WHEE!!!

--------------------------------------------------------------------------------
30a190faef | Adam Borowski | 2012-03-17 19:10:37 +0100

Build databases for the selected translation as well.
Any files can be missing; if all components of a database are missing no
.db is created at all.

--------------------------------------------------------------------------------
d066dc8141 | Adam Borowski | 2012-03-17 19:10:37 +0100

A makeshift implementation of "language=".
Not sure what framework to use for locale selection -- probably gettext,
although I'm afraid of its behaviour if the system doesn't have the locale
in question configured.

--------------------------------------------------------------------------------
c5e24d8f85 | Adam Borowski | 2012-03-17 19:10:37 +0100

0.9 compat: make haired devils redder.

--------------------------------------------------------------------------------
17b12ec067 | Adam Borowski | 2012-03-17 19:04:18 +0100

Allow randart blowguns of evasion.
Before, they were 100% speed, after many tens of vetoes.

--------------------------------------------------------------------------------
e6e167e66f | Adam Borowski | 2012-03-17 19:03:21 +0100

Let regular orb-weaving spiders come in bands.
This goes with the "spider waves" theme.

--------------------------------------------------------------------------------
c6875deaa8 | Adam Borowski | 2012-03-17 18:57:29 +0100

Very rarely allow non-artefact blowguns to get the evasion brand.

--------------------------------------------------------------------------------
5bf3b39bd0 | Adam Borowski | 2012-03-17 18:57:29 +0100

Fix unrand enums being tested for brand validity.

--------------------------------------------------------------------------------
e426ada4d4 | Neil Moore | 2012-03-17 13:28:27 -0400

Make decks un-dealable if they have ever been stacked.
This prevents stacking a good deck, abandoning Nemelex to have it
shuffled and unmarked, rejoining (and regaining piety), then dealing
four out of five known cards.

--------------------------------------------------------------------------------
e3ff97a1af | Neil Moore | 2012-03-17 06:48:28 -0400

New monster: orb spider.
A spider with IOOD and the new M_MAINTAIN_RANGE flag.  Does not spawn
randomly currently; has a vault on Spider:4-5 (default weight) for
testing purposes.  Numbers probably need tuned, and it may need to be
toned down with more cantrip slots.

The tile is currently just a recolouring of the spider tile.  That,
and the text, could use some improvement.

--------------------------------------------------------------------------------
47d22d425f | Neil Moore | 2012-03-17 06:48:28 -0400

Put per-monster per-spell message keys before per-spell.
This allows e.g. "Haste ancient list cast" to supersede "Haste cast".

--------------------------------------------------------------------------------
170b34091c | Neil Moore | 2012-03-17 06:48:28 -0400

Berserk creatures don't try to maintain range.

--------------------------------------------------------------------------------
d1fb231a72 | Michael Gagno | 2012-03-17 00:08:22 -0700

Swap the rarity of (plain) spiders and scorpions in Spider.

--------------------------------------------------------------------------------
fd68692ba4 | Michael Gagno | 2012-03-16 23:26:11 -0700

Increase depth of einodemon_crawler_minivault.
On account of buffed demonic crawlers. It can also spawn in Spider, now.

--------------------------------------------------------------------------------
b702147c60 | Michael Gagno | 2012-03-16 23:26:10 -0700

Have some spiders spawn in groups.
Implemented as redback bands right now (can include other spiders). This
could be dropped eventually - Wensley has plans for a new moth enemy that
would work well in this branch, and it would be a more natural choice for
spawning with a band of spiders.

--------------------------------------------------------------------------------
6f8a2e782c | Michael Gagno | 2012-03-16 23:22:45 -0700

Tweak Spider Nest monster list.

--------------------------------------------------------------------------------
e4966e2eb2 | Michael Gagno | 2012-03-16 23:22:44 -0700

A bunch of changes to arachnids.
-HD has been increased for almost all of them. This makes them more likely
to hit you. Particularly relevent for tarantellas.
-Some deal more melee damage (jumping spiders in particular).
-Emperor scorpions have way more AC.
-Jumping spiders sense invisible (real jumping spiders have large eyes and
very sharp vision)
-Demonic crawlers (ok, these are more like centipedes) get speed 13. This
makes them the same speed as centipedes, but still slower than spiders.
-XP values have been adjusted, to try to keep the spider branch in line with
other lair branches.

More balancing work needs to be done and it's possible I went overboard
here.

--------------------------------------------------------------------------------
5e25050bc6 | Neil Moore | 2012-03-17 02:17:21 -0400

Add a monster class flag for maintaining distance.
Monsters with the new M_MAINTAIN_RANGE flag will try to maintain
"firing" range (LOS/2), even at the expense of moving away from you.
The idea is to use this for a few special monsters with ranged attacks,
including perhaps some spiders.

--------------------------------------------------------------------------------
f0023c3bc7 | David Lawrence Ramsey | 2012-03-17 00:17:23 -0500

For now, tweak silver statue description to match the orange: "brittle-looking".

--------------------------------------------------------------------------------
e37f9184e4 | David Lawrence Ramsey | 2012-03-17 00:16:12 -0500

Remove unneeded spacing.

--------------------------------------------------------------------------------
363a17cc58 | Neil Moore | 2012-03-16 22:40:07 -0400

New Nemelex ability: Deal Four.
You draw four cards from the top of the deck and play them immediately
(in sequence, but taking a single turn).  To balance this:

 * It doesn't work on marked decks.
 * The MP, piety, and hunger costs are quite high.
 * The rest of the deck is destroyed.
 * If there weren't enough cards, you "get to" deal a card from the deck
   of punishments (just one, not the number of cards you lacked).

This probably needs more tweaking.  In particular, the MP cost is high
(to limit spamming the ability in combat), but it may be so high as to
cause a problem for non-casters of certain races.

--------------------------------------------------------------------------------
c2b4029047 | Neil Moore | 2012-03-16 16:25:05 -0400

Fix stat gain on interrupted level-up.
The commit "Redraw the screen while gaining a level" swapped the order
of the stat gain and level increase in order to display the new level at
the prompt.  However, the order was important: if a SIGHUP
is received at the stat-gain prompt and the player later reconnects,
it is not having the new experience level that causes the stat gain
prompt to be displayed again.

We leave in the redraw, even though it will now display the previous
experience level.

This partially reverts commit 844e08c9dd00e13cbd29468fd38713c5a87cf085.

--------------------------------------------------------------------------------
465f78f5bd | Chris Campbell | 2012-03-16 19:41:23 +0000

Replace the stack of random rings in Zig Sprint with a couple of +6 rings

--------------------------------------------------------------------------------
2c4fb18e6f | Chris Campbell | 2012-03-16 19:41:22 +0000

Allow setting item pluses (for weapons, armour, jewellery, missiles) in vaults

--------------------------------------------------------------------------------
65a746cab8 | Chris Campbell | 2012-03-16 19:41:21 +0000

Remove Nemelex's Mark Four ability
Triple Draw and Stack Five make it fairly redundant (and are more
interesting/core abilities).

--------------------------------------------------------------------------------
f2178dc021 | Neil Moore | 2012-03-16 09:54:10 -0400

Move the cursor even for muted prompts.
Previously, when the prompt message was muted, the cursor would remain
in GOTO_DNGN; typing a long enough input would crash the game as the
cursor goes out of bounds.  Instead, show messages (and thus move the
cursor) if the prompt is muted.  You still don't see the prompt---
presumably you had it muted for a reason.

Fixes #5435.

--------------------------------------------------------------------------------
19689718b3 | Adam Borowski | 2012-03-16 05:58:42 +0100

Forbid blowguns of most brands.
They could generate via "any weapon ego:tickling".

--------------------------------------------------------------------------------
a918bc1199 | Adam Borowski | 2012-03-16 05:26:13 +0100

Remove an utterly impossible assertion.
Really though, it's about possibly getting rid of emergency save code path.

--------------------------------------------------------------------------------
2a6567c568 | Adam Borowski | 2012-03-16 05:14:41 +0100

Clean up Terpsichore's leftovers.

--------------------------------------------------------------------------------
6e6000025c | Adam Borowski | 2012-03-16 05:09:17 +0100

Enable Donald in spider, give him related speech.

--------------------------------------------------------------------------------
dc2dd70b78 | Adam Borowski | 2012-03-16 05:01:46 +0100

Axe a ridiculously outdated comment.
A new branch still needs edits in quite a few places, but not a single one
here was right.

--------------------------------------------------------------------------------
019c4accf3 | Adam Borowski | 2012-03-16 04:30:59 +0100

Detect db timestamps going backwards.
This happens whenever someone downgrades his version in non-git builds
(most other tools preserve timestamps).

Note: this does not fix the identical problem with .des files!

--------------------------------------------------------------------------------
2495f3d238 | Adam Borowski | 2012-03-16 04:10:19 +0100

Update comments about SAVEDIR.

--------------------------------------------------------------------------------
394dacc333 | Adam Borowski | 2012-03-16 03:56:50 +0100

Separate db input files from their path.
This will allow looking for directory/$LANG/file.txt

--------------------------------------------------------------------------------
31653c4d99 | Adam Borowski | 2012-03-16 03:46:14 +0100

Axe a stray prototype for an ex-function.
It joined the choir invisible years ago.

--------------------------------------------------------------------------------
e0be1ccf30 | Adam Borowski | 2012-03-16 03:32:49 +0100

Update .pl items.txt wrt troll hides granting regen.

--------------------------------------------------------------------------------
c7b919f645 | Adam Borowski | 2012-03-16 03:32:49 +0100

Desc: iron trolls are not actually made of iron.

--------------------------------------------------------------------------------
e1620883b9 | Adam Borowski | 2012-03-16 03:32:48 +0100

A bunch of reverts/merges/rewords for monster descriptions, as discussed on IRC.
giant firefly [revert]: all the new desc did was removing the mention of size,
    making it sound like spriggans are a few millimeters tall

deep dwarf scion [revert]: if they were "experienced", they wouldn't be called
    "scions" -- thus we can expect they're uppity youngings.  It makes sense
    that most ferocious warriors of a non-regenerating race are young.

iron dragon [partial revert, merge]: the new desc wasn't clear on them not
    being actually made of iron (relevant for LRD/Shatter)

kraken [revert]: with constriction in, mentioning the tentacles are sized for
    constricting ships not you saves bug/idea reports.  I do admit that the
    desc is quite goofy...  Could someone re-do it?

silver statue [mostly revert]: being brittle shouldn't sound like some
    irrelevant fluff, it needs to be stressed -- or perhaps we could mention
    disint more obviously?

spriggan druid [removal of a single word]: "rare" doesn't fit their in-game
    relative abundance

spriggan rider [revert]: they're 2nd-tier mooks, not nobles.  Also, in the
    dungeon the stress is not on protecting groves -- that's mostly the druids'
    task.

--------------------------------------------------------------------------------
06621fcb06 | Adam Borowski | 2012-03-16 03:32:48 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
51d2b46e94 | Chris Campbell | 2012-03-16 00:09:11 +0000

Make walls from the Tomb card expire after a while, depending on power
The duration is randomised but with a minimum based on power. Even at
high power it might not be enough to rest to full health (loads of time
to use consumables to heal safely, though). Duration might need further
tweaking, not sure.

Also fixes Khufu's tomb removing nearby walls that weren't originally
part of the tomb when it disappears.

--------------------------------------------------------------------------------
15954afdec | Michael Gagno | 2012-03-15 15:46:35 -0700

Let some more "bug" themed minivaults spawn in Spider.

--------------------------------------------------------------------------------
a2fc09efd3 | Michael Gagno | 2012-03-15 15:46:34 -0700

Remove some special rooms from Spider.

--------------------------------------------------------------------------------
f43d12b098 | Michael Gagno | 2012-03-15 15:46:34 -0700

Remove shops from Spider.
Dunno why it was added to there in the first place.

--------------------------------------------------------------------------------
375bead910 | Raphael Langella | 2012-03-15 23:13:05 +0100

Prevent allies from smiting enemies through glass.

--------------------------------------------------------------------------------
a61edfef5c | Neil Moore | 2012-03-15 16:13:10 -0400

Do not crash when placing web traps.
The loop counter was being incremented twice, once *after* sanity-
checking the value.

--------------------------------------------------------------------------------
a6f2b5275a | David Lawrence Ramsey | 2012-03-15 12:17:20 -0500

Fix typo.

--------------------------------------------------------------------------------
027890526d | David Lawrence Ramsey | 2012-03-15 12:15:52 -0500

For consistency, fix more capitalization with regard to the Shining One.
The database entries now use "the Shining One", as well as the wrath
entries (as opposed to "TSO" from before).

Also, properly use "the Shining One" in the Lugonu bribe altar and the
description of the sword of Jihad.

--------------------------------------------------------------------------------
bc44d7b10e | Neil Moore | 2012-03-15 12:44:42 -0400

Fix compilation error in xom.cc.

--------------------------------------------------------------------------------
9322278276 | Adam Borowski | 2012-03-15 16:35:03 +0100

No Xom teleports in Sprint, too.

--------------------------------------------------------------------------------
83dafbfe0e | Adam Borowski | 2012-03-15 16:27:37 +0100

Move the Sprint teleport block to distortion code.
|amethyst noticed you_teleport_now() is used as fallback when the player
ends up in bad places and the code lacks a better solution.

--------------------------------------------------------------------------------
97e2d190b3 | Adam Borowski | 2012-03-15 16:07:28 +0100

Fix instant teleportation (like, from distortion) working in Sprint/with -TELE.

--------------------------------------------------------------------------------
79cd8e4dbe | Adam Borowski | 2012-03-15 15:29:31 +0100

Fix abysmal dithering and diagonal smudges on the octopode title screen.
This png has the same contents as the original one but a totally different
encoding, so if roctavian's problem in #5325 persists, it's something broken
with his graphics card or its drivers.

--------------------------------------------------------------------------------
a1115ef795 | Adam Borowski | 2012-03-15 15:29:31 +0100

Evict another Lua description to the database.
There are two left: the Cloud Mage and the Hellbinder, who are trickier
because their short name is replaced by a random string.  If all else fails,
we can code a dbname: property or move them to the C++ side.

--------------------------------------------------------------------------------
5488f54f89 | Chris Campbell | 2012-03-15 13:43:43 +0000

Make Black and Grey draconians correctly keep their innate mutations while in 
dragon form
This doesn't fix some mutations still being incorrectly marked as
suppressed when in dragon form as a red/white/green draconian, though
(in those cases the resistances are added in player_res_foo instead of
being related to mutations).

--------------------------------------------------------------------------------
e11df563a7 | Neil Moore | 2012-03-15 09:23:33 -0400

Drop curare autopickup from the default config.
It is unintuitive and inconsistent with other dangerous items.  Curare
is bad, but the monster needs a blowgun in order for it to be dangerous.
Fixes #5400.

--------------------------------------------------------------------------------
844e08c9dd | Neil Moore | 2012-03-15 09:21:45 -0400

Redraw the screen while gaining a level.
Just after increasing you.experience_level, before giving the message
about the new level (and before prompting for stat increases).  This
way, at the stat increase prompt and every "more" prompt, the player
will be the correct level and the just-killed monster will be dead.

Fixes #5380.

--------------------------------------------------------------------------------
f96ec8db53 | Adam Borowski | 2012-03-15 12:35:08 +0100

Drop another use of marker.desc_long.
The remaining ones with feature_description_long should be renamed, since
it's only something appended to the actual description.

--------------------------------------------------------------------------------
a1c8ae8462 | Adam Borowski | 2012-03-15 11:24:34 +0100

Remove an outdated comment from ZigSprint, id problems have been fixed.

--------------------------------------------------------------------------------
9f1309d724 | Adam Borowski | 2012-03-15 10:02:46 +0100

s/sickness/nausea/ in the description of contam chunks.

--------------------------------------------------------------------------------
8b32dbd4cb | Adam Borowski | 2012-03-15 08:19:22 +0100

Changelog for 0.10.1

--------------------------------------------------------------------------------
5069846332 | Adam Borowski | 2012-03-15 06:40:03 +0100

Fix a misleading comment.

--------------------------------------------------------------------------------
16d9126aa1 | Adam Borowski | 2012-03-15 06:40:03 +0100

Make a bunch of functions static or non-existant.

--------------------------------------------------------------------------------
3dfccf220e | Adam Borowski | 2012-03-15 06:40:03 +0100

fIX A CASE OF STUCK cAPSlOCK.

--------------------------------------------------------------------------------
6dbc3453fd | Neil Moore | 2012-03-15 01:35:07 -0400

Teleport away monsters unsubmerging on the player's square.
If an unsubmerging monster:
  (1) is on the same grid as the player (or a monster, though that
      shouldn't happen),
  (2) could not be moved to an adjacent submergable square,
  (3) cannot remain submerged on its current square, and
  (4) could not be moved to an adjacent habitable square;
then it can unsubmerge on top of the player, producing a "same square as
you" warning.  Usually this situation (in particular, (3)) occurs when
the monster's grid changed to no longer support its submersion, in which
case _dgn_check_terrain_player() would teleport the monster away.
However, it can also occur with air elementals' involuntary submersion,
without the grid having changed at all; in this case, nothing prevents
the monster from occupying the same space as the player, and things such
as the end of flight will trigger an assertion.

Instead, trigger the teleport whenever we would give the "same square as
you" warning; and only give that warning if the teleport failed.  The
teleport in _dgn_check_terrain_player() is therefore no longer needed.

Also, when trying to move the monster in _prepare_del_ench(), look at
squares adjacent to the monster, not to the player.  This could differ
if the monster was trying to unsubmerge on top of another monster rather
than the player (which, again, shouldn't happen, but . . .).

Fixes #4158, #5419.

--------------------------------------------------------------------------------
95a6aae24e | Michael Gagno | 2012-03-14 22:27:36 -0700

Do not build wasp nests out of stone arches.
Oops.

--------------------------------------------------------------------------------
685d601508 | Michael Gagno | 2012-03-14 17:00:02 -0700

Veto the holy pan level if you are with TSO. (#5426)
Was broken by recent capitalization changes.

--------------------------------------------------------------------------------
e7bdd53b62 | Neil Moore | 2012-03-14 16:32:13 -0400

Make chunks in monspec item lists work better.
There were at least three issues:
 1. _generate_food_item() (called from items() was not setting the item's
    orig_monnum; this would cause a crash when attempting to cast
    Simulacrum on the item.  Fixed, but made irrelevant by the next
    item.
 2. _dgn_give_mon_spec_items() was not passing items() the information
    it needed, anyway---specifically, the corpse monster type.  Instead,
    _generate_food_item() was picking a random monster type.  Fixed by
    using dgn_item_corpse() rather than items() for chunks and corpses.
 3. Items were given before setting custom spell lists.  As a result, a
    "necromancer spells:simulacrum ; kobold chunk" would receive the
    item only half the time (when the necromancer's original spell list
    had Simulacrum) and an "orc wizard spells:simulacrum ; kobold chunk"
    never.  Fixed by initializing spells before items.

--------------------------------------------------------------------------------
729b628c20 | elliptic | 2012-03-14 14:47:31 -0400

Tentacled monstrosities: speed 9 -> 10, HD 25 -> 23.
Speed 9 meant that every non-naga non-Chei player could kill one with a spear.
There are other slow pure-melee monsters (iron/rock trolls, golems, most
zombies/skeletons) but these were especially problematic due to being endgame
or near-endgame monsters and constriction giving extra encouragement to kite
them.

Decreasing HD by 2 is an attempt at compensating, but the constriction formulas
need work in general and balance will have to be reconsidered after that.

--------------------------------------------------------------------------------
17a8c5ec31 | elliptic | 2012-03-14 14:11:21 -0400

Make warded-off attacks take full energy.
Warding was almost never used for anything other than rN+; this nerf was both
unnecessary and unintuitive, and it didn't work right with monsters with
multiple attacks anyway.

Increasing the power of warding might still be a good idea.

--------------------------------------------------------------------------------
7a28b9d8ec | David Lawrence Ramsey | 2012-03-13 22:24:21 -0500

Tweak wording and punctuation.

--------------------------------------------------------------------------------
7a0a45835f | David Lawrence Ramsey | 2012-03-13 20:51:25 -0500

Remove now-unused detect_secret_doors().

--------------------------------------------------------------------------------
3f48974b1a | Adam Borowski | 2012-03-14 01:50:20 +0100

Allow portal vault descriptions from the database.

--------------------------------------------------------------------------------
b2d90c07a7 | Adam Borowski | 2012-03-14 01:30:23 +0100

Fix the Spider entry tile not showing.

--------------------------------------------------------------------------------
8e68fc86b0 | Adam Borowski | 2012-03-14 01:06:44 +0100

Let games that have the old Spider portal continue.
Fortunately it's nothing like the branch->portal problem we have with Hive,
this shim vault is enough.

--------------------------------------------------------------------------------
0a61f29d72 | Adam Borowski | 2012-03-14 00:48:13 +0100

Evict desc_long from vaults to the database.

--------------------------------------------------------------------------------
044feaa2b6 | Adam Borowski | 2012-03-14 00:48:13 +0100

Axe a pointless comment.

--------------------------------------------------------------------------------
40c395bed5 | Adam Borowski | 2012-03-14 00:48:13 +0100

Fix LRD's display ignoring player's recolouring, fix Elf brick oddities.

--------------------------------------------------------------------------------
71da1fb98b | Chris Campbell | 2012-03-13 23:45:26 +0000

Fix spines messages (#5421)

--------------------------------------------------------------------------------
e40d0bf6be | Chris Campbell | 2012-03-13 23:45:26 +0000

Let Dowsing detect items instead of secret doors, adjust some messages

--------------------------------------------------------------------------------
0d996b7d28 | Chris Campbell | 2012-03-13 23:45:25 +0000

Remove the Spade card, merge the Map and Dowsing cards
Also reduced legendary Trowel weight so it doesn't become more common,
but it should probably be removed soon anyway.

--------------------------------------------------------------------------------
b83ded1ee2 | Chris Campbell | 2012-03-13 23:45:25 +0000

Make the Focus card use base stats to decide which to adjust

--------------------------------------------------------------------------------
680fe5cc11 | Chris Campbell | 2012-03-13 23:45:24 +0000

Tweak various summonings cards
Pentagram: lower duration for higher-tier demons.
Blade: always friendly (power 0 summons are really weak anyway).
Foxfire: fewer summons at high power, swap insubstantial wisp and
bumblebee order.
Bones/Repulsiveness: low chance of being hostile even at high power.

--------------------------------------------------------------------------------
022db9f3a0 | Michael Gagno | 2012-03-13 15:49:35 -0700

Remove the hatches from mumra_spider_spiderweb.
They were left in by mistake (were exits from the portal vault version).

--------------------------------------------------------------------------------
421bb879f5 | Michael Gagno | 2012-03-13 15:47:14 -0700

Some more vaults for Spider.
One of these is imported from Hive.

A second rune vault would be good to have, as would more entries. I'll add a
new rune vault soon, depending on when I have time to make one.

--------------------------------------------------------------------------------
c88a7b1036 | Michael Gagno | 2012-03-13 15:47:14 -0700

Enable the Spider Nest.
The lair rotation is now one of spider/snake and one of shoals/swamp.

Spider still isn't finished, but it's playable. I don't know about the
branch difficulty, but we should find out soon enough.

--------------------------------------------------------------------------------
49a5e3fe1c | Michael Gagno | 2012-03-13 15:47:13 -0700

Remove placeholder Spider ending and add a new one.
Mine could still use a bit of work - it needs to be worthy of being a branch
ending, but it's hard to get a feel for what the difficulty is until a few
people play it. Making a vault harder or easier is trivial, of course. I'm
thinking, the main hard enemies you want to use in a Spider ending are ghost
moths and emperor scorpions. _Maybe_ moths of wrath (I haven't used any
here). Obviously none of those are spiders, but there aren't really any
"boss" spider enemies at the moment.

--------------------------------------------------------------------------------
e35abeb033 | Michael Gagno | 2012-03-13 15:47:13 -0700

Move the old spider portal vaults to the Spider Nest branch.
Edits have been made, since these were all encompass vaults. Some are
substantially different.

None of them were made into ending vaults.

--------------------------------------------------------------------------------
e690d4ce03 | Michael Gagno | 2012-03-13 15:47:12 -0700

Remove spider portal vault.
The vaults have been moved to the actual branch.

--------------------------------------------------------------------------------
a4809a2622 | Michael Gagno | 2012-03-13 15:47:11 -0700

New monster list for Spider Nest.
There was one already, but it put too much emphasis on non-spider monsters.
The new one still has a large variety of enemies, but non-arachnids are
rare. I've also removed vampire mosquitos from the list, and added an
extremely low chance of moths of wrath.

--------------------------------------------------------------------------------
abd2e757b7 | David Lawrence Ramsey | 2012-03-13 11:14:59 -0500

Fix spelling.

--------------------------------------------------------------------------------
2ea0e193c3 | David Lawrence Ramsey | 2012-03-13 11:14:21 -0500

Fix typo.

--------------------------------------------------------------------------------
305739ea97 | Chris Campbell | 2012-03-13 16:00:52 +0000

Minor text improvement improvements

--------------------------------------------------------------------------------
fc91a6a474 | Chris Campbell | 2012-03-13 15:55:37 +0000

Properly mark known-empty wands as empty

--------------------------------------------------------------------------------
d316ca3d4e | David Lawrence Ramsey | 2012-03-13 09:49:01 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
53f0749a5e | David Lawrence Ramsey | 2012-03-13 09:18:57 -0500

Tweak wording and punctuation.

--------------------------------------------------------------------------------
36889ca46f | Adam Borowski | 2012-03-13 13:44:13 +0100

Use layout_delve rather than layout_rooms after primary vaults in Spider.

--------------------------------------------------------------------------------
d65cc78f5f | Adam Borowski | 2012-03-13 12:38:26 +0100

Clear up the @imp_taunt@ vs @_imp_taunt_@ conflict.
Both are private keys: one for "Imp says: XXX.", the other for "XXX".
I'm not happy with "_says_imp_taunt_" since everything else nearby has
no _says and thus is confusing, though.

--------------------------------------------------------------------------------
299070325f | Adam Borowski | 2012-03-13 12:27:22 +0100

Mark private keys in wpnnoise.txt

--------------------------------------------------------------------------------
e4841b6c8a | Adam Borowski | 2012-03-13 12:12:16 +0100

Move remnants of old Recite to monspeak.txt, unbreak zin_angel.
Player recite doesn't use this anymore, and the vault was broken for over a
year.

--------------------------------------------------------------------------------
a1791c7f00 | Adam Borowski | 2012-03-13 12:10:55 +0100

Mark private keys in monspeak.txt
Separating ones interfaced from outside has the following benefits:
* translations know what should be translated and which not
  (it's generally not possible nor wanted to preserve structure: adjectives
   may need to match noun gender; lines that sound good in English may be
   bad elsewhere -- and reciprocally, translations may have good jokes on
   their own; etc)
* it's easy to automatically spot unused private keys
* it may be possible to automatically check for missing/unreferences public keys

--------------------------------------------------------------------------------
e523175a12 | Adam Borowski | 2012-03-13 11:09:36 +0100

Consistently use _key_ rather than _key for private db entries.

--------------------------------------------------------------------------------
b19363b2cf | Adam Borowski | 2012-03-13 10:56:47 +0100

Put subtractors snake out of their misery.
Since no one has stepped up, it doesn't look like they were going to recover.
Reverting the removal is easy...

Also, not everything can be #ifdefed which leads to coordination problems with
descriptions, tiles, etc.  They either linger or get removed prematurely: for
example, you could have subtractor snakes spawn in Zot right until this commit
(spawning was #if TAG_MAJOR_VERSION == 32).

--------------------------------------------------------------------------------
79645dbf09 | Adam Borowski | 2012-03-13 10:43:28 +0100

Make Pan floor/walls an angrier fruit salad.
People keep complaining about many Pan levels looking the same as regular
dungeon -- and indeed, the fallback was hit a good part of the time.

This code will try monsters from slots other than 8th and 9th.

I personally somehow dislike quite a few of colour sets produced, but at
least it's consistent.

--------------------------------------------------------------------------------
1495978437 | Adam Borowski | 2012-03-13 10:43:28 +0100

Declare an explicit type for colours.
An imperial buttload of places assumes these to be 8 bits, which makes it
impossible to add support for 256 (or more!) colours.  This commit tries
to allow expanding it in the future; sadly, it is badly incomplete.  At
least, new code can use the new type.

Also, beware of "branded" colours which use bits above 8 for inverse,
underline, etc.

--------------------------------------------------------------------------------
b10dbcdf6d | Adam Borowski | 2012-03-13 10:43:26 +0100

Add missing information to a number of item descriptions.

--------------------------------------------------------------------------------
46345a88ec | Adam Borowski | 2012-03-13 10:43:26 +0100

Drop two unused item descs.

--------------------------------------------------------------------------------
3f9d6f2550 | Adam Borowski | 2012-03-13 10:43:26 +0100

Fix troll hides not granting regen.
This property comes from the material, not it being tailored into an armour.

--------------------------------------------------------------------------------
a74c2dce62 | Adam Borowski | 2012-03-13 10:43:25 +0100

Fix a wrong error message.
It'd display a bogus strerror() value instead.

Or rather, it's guaranteed to die horribly since end() needs quite a bit of
memory.

--------------------------------------------------------------------------------
ff1255ea76 | David Lawrence Ramsey | 2012-03-13 01:08:21 -0500

Remove subtractor snake description.

--------------------------------------------------------------------------------
9d033807bd | David Lawrence Ramsey | 2012-03-13 01:07:12 -0500

Tweak wording and punctuation.

--------------------------------------------------------------------------------
d633397b4a | Florian Diebold | 2012-03-13 01:06:26 +0100

Webtiles: Don't try to do the layout without the necessary data from the server.

--------------------------------------------------------------------------------
c998b438f0 | Florian Diebold | 2012-03-13 00:36:06 +0100

roctavians other new armour tiles (#4791).
The only tile missing now from #4791 is the crystal plate armour.

--------------------------------------------------------------------------------
ecd49f2818 | Florian Diebold | 2012-03-13 00:35:45 +0100

roctavians new dragon armour tiles (#4791).

--------------------------------------------------------------------------------
7aeee1a3d8 | Raphael Langella | 2012-03-13 00:12:57 +0100

DCSS Text Improvement Taskforce: Monster Descriptions, Round 2 (#5416). 
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
2a753771c0 | elliptic | 2012-03-12 14:19:45 -0400

Unrestrict MfMo.

--------------------------------------------------------------------------------
db326ebe04 | elliptic | 2012-03-12 12:55:43 -0400

Eliminate wrath dilution.
Now the frequency of wrath effects from Trog isn't halved if you also are
under Yred penance. You can still only get a wrath effect from one god in a
given turn, though.

--------------------------------------------------------------------------------
baaa34d75c | Adam Borowski | 2012-03-12 02:01:38 +0100

Don't crash on mimic reveal if you can see (0,0).

--------------------------------------------------------------------------------
ff72e02991 | Adam Borowski | 2012-03-12 02:01:38 +0100

Show "warping space" from distortion hits on invis enemies.

--------------------------------------------------------------------------------
29be3f9f99 | Adam Borowski | 2012-03-12 02:01:38 +0100

A few tloc miscast messages for invis monsters.

--------------------------------------------------------------------------------
76d6db527a | Adam Borowski | 2012-03-12 02:01:37 +0100

If a feature mimic gets squished, remove the feature.
Because of the limit of possible monsters on a level, abusing this bug would
require some massive Robe of Clouds scumming, then creation of enough
hostiles, but I really don't want to see Ragdoll with three random Lair
runes in one game.

--------------------------------------------------------------------------------
249c6bf556 | Raphael Langella | 2012-03-12 01:16:10 +0100

Fix an inifinite loop in the skill menu when SIGHUP with no active skill.

--------------------------------------------------------------------------------
adc64a010f | Michael Gagno | 2012-03-11 15:20:19 -0700

Update evilmike_haunted_forest.
Part of it used a statue behind trees that casts haunt. Since that no longer
works, this vault needed to be fixed.

I've also changed a few other things (reducing popcorn monsters a bit,
making the boss room harder, randomizing stuff a bit more, and making a
secret area more obvious).

--------------------------------------------------------------------------------
b034242d00 | Michael Gagno | 2012-03-11 15:08:30 -0700

Reduce the number of zombies in a vault.

--------------------------------------------------------------------------------
123c24c374 | Michael Gagno | 2012-03-11 15:00:12 -0700

Simplify ragdoll_tomb_raider.
The pressure plate has been removed. Using it causes two problems:

1. Players could disarm the trap, pick up the item, and still trigger the
mummies to be released.

2. If 1 were fixed, knowledgable players could always know to disarm it and
get free loot.

1 is just an oversight, but 2 is a problem I can't think of a good solution
for. So, it is best to let the trap be triggered without the use of a
pressure plate.

--------------------------------------------------------------------------------
3dd34062e6 | Michael Gagno | 2012-03-11 14:49:53 -0700

Place the exit in sprint_v when entering the final room, not when picking up 
the orb.
Autoinscribing the orb can mess up the trigger for some reason. Fixing this
bug would be good, but it can at least be avoided in this case.

--------------------------------------------------------------------------------
8b1c205738 | Michael Gagno | 2012-03-11 14:36:06 -0700

Tweak magic_research.des.

--------------------------------------------------------------------------------
682f69a70b | Adam Borowski | 2012-03-11 19:13:17 +0100

Revert "Ask for confirmation when starting a new trunk game in DGL."
No point in playing ancient versions anymore, stability and sanity are for
the weak.

This reverts commit 8ef92609a3b949a04acb8eb74785bbed056c151c.

--------------------------------------------------------------------------------
4bb5a411c8 | Chris Campbell | 2012-03-11 16:54:56 +0000

Improve a wizmode prompt

--------------------------------------------------------------------------------
56ba985867 | Chris Campbell | 2012-03-11 15:01:07 +0000

Don't let Nagas start with constriction, gain it at xl13

--------------------------------------------------------------------------------
82722f2498 | Chris Campbell | 2012-03-11 15:01:06 +0000

Reduce the amount of extra blood created with Ignite Blood

--------------------------------------------------------------------------------
bb91ec0671 | elliptic | 2012-03-11 10:51:55 -0400

Unrestrict several AM races.

--------------------------------------------------------------------------------
6d831c8f68 | Adam Borowski | 2012-03-11 11:02:36 +0100

Fix LRD not working on slime-covered rock.
1. it's rock with merely a cover of slime,
2. all other effects (Dig, Disint, Devastation/Destruction, Shatter) work on it.

--------------------------------------------------------------------------------
24f0f51fde | Adam Borowski | 2012-03-11 10:47:11 +0100

A bunch of typos.

--------------------------------------------------------------------------------
733b69eec9 | David Lawrence Ramsey | 2012-03-10 23:39:12 -0600

Experimentally remove the limit of one returning-brand weapon per monster.

--------------------------------------------------------------------------------
e429c2bb2e | David Lawrence Ramsey | 2012-03-10 23:26:55 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
df2e2805c6 | David Lawrence Ramsey | 2012-03-10 22:47:05 -0600

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
4d047e13e7 | elliptic | 2012-03-10 23:02:39 -0500

Make ranged combat speed smoother.

--------------------------------------------------------------------------------
83bb6bacfd | elliptic | 2012-03-10 23:02:39 -0500

Fix the @ speed description applying Finesse twice for ranged combat.

--------------------------------------------------------------------------------
1c08220011 | nfogravity | 2012-03-10 18:51:56 -0800

Fix the &# command and clean up the wizard morgue file reading function.

--------------------------------------------------------------------------------
31cf5b0aff | elliptic | 2012-03-10 19:55:43 -0500

Have Passage of Golubria make noise when a portal times out.
This spell being used for stabbing is fine, but it wasn't good that players
could just repeatedly wait for the portals to time out and recast until getting
the perfect portal locations.

--------------------------------------------------------------------------------
8e4e2356d1 | Chris Campbell | 2012-03-10 21:06:51 +0000

Typo fix

--------------------------------------------------------------------------------
52a4531e21 | Matthew A. Burton | 2012-03-10 21:06:51 +0000

Added more descriptive messages for failing to pacify, as detailed in #0004591

--------------------------------------------------------------------------------
635acbe76a | Adam Borowski | 2012-03-10 21:59:51 +0100

Let b0rsuk know what the hell a bardiche is.
These translations are here to let us have something to test the code on,
and to identify related problems.  Putting more effort right now is probably
a waste -- the format may change, translations in general may turn out to be
too hard to do (descs are a low hanging fruit), etc.

--------------------------------------------------------------------------------
fc1fd3ce40 | Adam Borowski | 2012-03-10 21:47:12 +0100

Fix a misalignment in crash dumps.

--------------------------------------------------------------------------------
586ef272d9 | Adam Borowski | 2012-03-10 21:44:58 +0100

Merge away an one-function-wonder header file.
It had no corresponding .cc, too.

--------------------------------------------------------------------------------
482dc2933e | Neil Moore | 2012-03-10 15:13:50 -0500

Do not freeze when generating pan lords.
The new unwrap_desc() was appending a newline to the empty string,
causing getLongDescription() to always be non-empty.  This resulted
in the game thinking that every possible pan lord name was already
taken and spinning in an infinite loop trying to find a free one.

--------------------------------------------------------------------------------
85060382df | Adam Borowski | 2012-03-10 12:02:29 +0100

"rune" <-> "exit"

--------------------------------------------------------------------------------
4f562d83a4 | Adam Borowski | 2012-03-10 12:01:50 +0100

A bit of player hating.

--------------------------------------------------------------------------------
08f54826a1 | Michael Gagno | 2012-03-10 02:16:49 -0800

Only allow one version of lemuel_draconian_sentries per game.

--------------------------------------------------------------------------------
c23ae1a21e | Adam Borowski | 2012-03-09 23:22:31 +0100

Fix ordinary items sometimes getting identified.

--------------------------------------------------------------------------------
1084b2aa86 | Raphael Langella | 2012-03-09 10:51:15 +0100

Add the new wizard commands to the help screen.

--------------------------------------------------------------------------------
be47887f53 | Raphael Langella | 2012-03-09 10:44:21 +0100

Map the new load dump file function to &#.
I haven't been able to make it work, but at least we can test it now.

--------------------------------------------------------------------------------
78530e54d3 | Raphael Langella | 2012-03-09 10:04:35 +0100

Add a new skill_from_name function.
Better than hijacking debug_prompt_for_skill.

--------------------------------------------------------------------------------
8f77157519 | Raphael Langella | 2012-03-09 10:02:32 +0100

Prefix static function with an underscore.

--------------------------------------------------------------------------------
0882b9120d | Michael Gagno | 2012-03-08 16:31:52 -0800

Whitespace fix.

--------------------------------------------------------------------------------
5fa2bd8180 | nfogravity | 2012-03-08 16:23:13 -0800

added a wizard mode function, wizard_file_input(), that takes a morgue file by 
name and changes skill levels and base stats to the morgue file's levels

--------------------------------------------------------------------------------
e025ad37a0 | Adam Borowski | 2012-03-09 00:18:16 +0100

Fix an obsolete description: there are no penalties for "wasteful card use".

--------------------------------------------------------------------------------
45e95188cc | Adam Borowski | 2012-03-09 00:18:16 +0100

Correct an outdated description.
Amulets of rage don't stack with anything, and don't provide any protection
against passing out anymore, either.

--------------------------------------------------------------------------------
c385f02e13 | Adam Borowski | 2012-03-09 00:18:09 +0100

Drop two unused descriptions.

--------------------------------------------------------------------------------
8cffb607ce | Adam Borowski | 2012-03-08 19:09:38 +0100

Unbreak tiles builds wrt Terpsichore.

--------------------------------------------------------------------------------
cf92c3c6c8 | Adam Borowski | 2012-03-08 19:09:38 +0100

Drop the code for set_feature_desc_long().

--------------------------------------------------------------------------------
1b6a047496 | Adam Borowski | 2012-03-08 19:06:03 +0100

Evict custom feature descriptions from vaults to the database.
This will allow translating them.

--------------------------------------------------------------------------------
b11eba3dba | Michael Gagno | 2012-03-08 09:55:22 -0800

Update CREDITS.txt (|amethyst, nfogravity, Zannick).

--------------------------------------------------------------------------------
801f0f13d1 | David Lawrence Ramsey | 2012-03-08 11:48:05 -0600

Add punctuation fix.

--------------------------------------------------------------------------------
1bdb958655 | David Lawrence Ramsey | 2012-03-08 11:47:47 -0600

Add wording fixes.

--------------------------------------------------------------------------------
9b26e05369 | Adam Borowski | 2012-03-08 17:49:57 +0100

Dump known spells in the same school order as is used elsewhere.

--------------------------------------------------------------------------------
10752b7fa0 | Adam Borowski | 2012-03-08 17:49:57 +0100

Remove SPFLAG_CARD.
Its only use was incorrect: Disintegrate is a wand/monster spell, not a card.

--------------------------------------------------------------------------------
00f44d17e5 | Adam Borowski | 2012-03-08 17:49:57 +0100

Remove Terpsichore (remember, you can revert!).
She's no good, and no one came with a reasonable plan to repair her.

Her signature spell can be trivially avoided by leading her away and/or
apporting, saccing or even merely picking up the weapons -- so she's either
a pushover if you're spoiled, or very deadly if you're uninformed enough to
fight her near a pile of big weapons.

The only semi-ok idea so far is to have her summon weapons from the
Hammerspace, and this loses all coolness of the Tukima's Ball idea.  If
someone has a better plan after all, you know what to do.

--------------------------------------------------------------------------------
3cbdc586d9 | Adam Borowski | 2012-03-08 17:49:56 +0100

Repair Terpsichore's cantrips.
(But note the next commit -- this fix is rather moot.)

--------------------------------------------------------------------------------
4553a5bd94 | Adam Borowski | 2012-03-08 17:49:56 +0100

Remove the description for Disintegrate as a spell.
It is never shown via normal means, and ?/s displays it wrong.

If it is to return as a Vehumet special, the "git revert" command can be
found over there --->

--------------------------------------------------------------------------------
a1513a8564 | Adam Borowski | 2012-03-08 17:49:55 +0100

Simplify, comment.

--------------------------------------------------------------------------------
394ab39f70 | Adam Borowski | 2012-03-08 17:49:55 +0100

Whitespace: remove a few tabs.
Tabs are good only if everyone uses the same tab width.  And some heathens
dare to use tab widths other than the only true 8.

--------------------------------------------------------------------------------
49e003de60 | Adam Borowski | 2012-03-08 17:49:54 +0100

Allow logically wrapped quotes as well.
None of them needed to be changed.

There's ugliness: a quote that needs to be wrapped will not have its
subsequent lines indented, but that's not a regressions as all current
overlong lines exhibit this behaviour.  Still, something to fix soon.

--------------------------------------------------------------------------------
877884e2f8 | Adam Borowski | 2012-03-08 17:49:54 +0100

Allow descriptions (dat/descript/*.txt) to be logically wrapped in the sources.
Without this, they had to be stored in enormous long lines, nigh impossible
to read and tedious to edit -- or pre-wrapped, which wastes space and looks
ugly on terminals wider than 80 columns.

They are unwrapped upon being displayed now, giving us the best of two
worlds.  Existing descriptions (bugs aside) never used pre-wrapping,
although they often do consist of paragraphs separated by an empty line.

(Cards and "buggy god" descriptions are exceptions, but "usually found in"
parts should be autogenerated anyway, as we risk them becoming outdated.)

New formatting rules:
* regular text is re-wrapped
* an empty line separates paragraphs
* indented lines keep their breaks (used in most quotes)
* you can force a newline with literal "\n"

The last one is unused, merely a quirk of the conversion, and may be not the
best idea -- keeping it for now to allow you to force newlines if needed.

--------------------------------------------------------------------------------
7028a21f96 | Adam Borowski | 2012-03-08 17:49:54 +0100

Revert spelling changes from 81611bce.
No explanation was given, we use Australian spelling, and the commit in
question talks only about enemy_hp_colour.

And if we agree to depart from Linley's version, it should be done
everywhere rather than in a single file.

--------------------------------------------------------------------------------
14aa53688a | Adam Borowski | 2012-03-08 17:49:53 +0100

Descriptions for some trap types.
Unidentified traps never show up anymore, so that Admiral Ackbar quotation is
dead text.  You can't xv "mechanical traps" out of LOS as well, and really,
I consider them suddenly losing type to be a bug.

--------------------------------------------------------------------------------
11fe7dbf2b | Adam Borowski | 2012-03-08 17:49:53 +0100

Move cloud traps out of pressure plates.
They were supposed to be a prototype only, and yet they sadly got into a
stable release.  This makes people talk about cloud traps "pressure plate
traps", to the exclusion of actual cool unique traps.  (No, I'm not saying
cloud traps are worthless -- better than run of the mill mechanicals, but
they drown out rare ones.)

The most abundant trap type really needs a type of its own.

--------------------------------------------------------------------------------
c231b49e0d | Adam Borowski | 2012-03-08 17:49:53 +0100

Remove the Holy spell school.
It has been gone for players since forever, has no effect on monsters
except for a redundant check, needs to be kludged around to exclude.

--------------------------------------------------------------------------------
6c93870781 | Adam Borowski | 2012-03-08 17:49:52 +0100

Make some unrand descriptions (hopefully) betterer.

--------------------------------------------------------------------------------
21b5edc6d9 | Adam Borowski | 2012-03-08 17:49:52 +0100

Scale the Dragon King's enchantment up.
A bit of MR isn't worth -7 to AC compared to mundane GDAs; this one was
apparently missed when we changed max enchantments on body armour.

This preserves the old -3 AC penalty.

--------------------------------------------------------------------------------
af455c78e7 | Adam Borowski | 2012-03-08 17:49:51 +0100

Improve a few DESC + DESC_END unrand descriptions.
They looked iffy before too.

--------------------------------------------------------------------------------
ff4329dd56 | Adam Borowski | 2012-03-08 17:49:51 +0100

Evict unrand descriptions into the database.

--------------------------------------------------------------------------------
a952059ef7 | Raphael Langella | 2012-03-08 17:03:20 +0100

In wizard mode, display exact attack delay in @ message.

--------------------------------------------------------------------------------
c989334bf4 | David Lawrence Ramsey | 2012-03-07 22:34:15 -0600

Typo fix.

--------------------------------------------------------------------------------
81611bce62 | Michael Gagno | 2012-03-07 18:23:19 -0800

Update options_guide.txt for enemy_hp_colour. (nfogravity)

--------------------------------------------------------------------------------
ff9fb87a6f | Michael Gagno | 2012-03-07 17:23:45 -0800

New ctrl+V command to show monster HP, and other HP colouring improvements. 
(nfogravity)
https://crawl.develz.org/mantis/view.php?id=5376

Pressing ctrl+v in console will colour all monsters based on their HP. This
can be useful when fighting large groups. This mode deactivates itself the
next turn, or you can toggle it off manually by pressing ctrl+v again.

Zombies and skeletons are given lightgrey colouring, since you can't
determine their HP.

There is also a new option, enemy_hp_colour, which lets you define custom
colours (applies to the ctrl+v display and the regular monster list).

The old ctrl+v command (show equipped weapons) has been removed.

--------------------------------------------------------------------------------
d79679de2d | Raphael Langella | 2012-03-08 00:56:08 +0100

Fix an off by one error in set_skill_level.

--------------------------------------------------------------------------------
ae7027bf5b | Raphael Langella | 2012-03-08 00:56:08 +0100

New wizard command: &^M to memorise a spell.

--------------------------------------------------------------------------------
e5c3cec024 | Neil Moore | 2012-03-07 17:57:05 -0500

Whitespace fix.

--------------------------------------------------------------------------------
16c1eaefb0 | Neil Moore | 2012-03-07 17:52:34 -0500

Allow players to be elemental-coloured (nfogravity).
Not currently used, but one could imagine applications.

--------------------------------------------------------------------------------
2a01b23ff7 | Adam Borowski | 2012-03-07 19:05:56 +0100

Reset burden on felid revival (in case of stat death).

--------------------------------------------------------------------------------
ee6c366fd4 | Adam Borowski | 2012-03-07 19:01:33 +0100

A wizmode command, &^P, to transform yourself.

--------------------------------------------------------------------------------
1d2dbd5c7c | Raphael Langella | 2012-03-07 17:44:12 +0100

Show damage numbers in wizard mode.
For players who are interested in crunching numbers but who don't want to put up
with the debug spam and/or are unable to compile.

--------------------------------------------------------------------------------
7770cf6338 | Raphael Langella | 2012-03-07 17:27:47 +0100

Fix the accuracy calculation of fsim melee.

--------------------------------------------------------------------------------
6b03a9fd0f | Raphael Langella | 2012-03-07 17:27:47 +0100

Move the monster next to the player during fsim.
The new UCC code often checks for it.

--------------------------------------------------------------------------------
c231866995 | Raphael Langella | 2012-03-07 17:27:47 +0100

No stabbing during fsim.

--------------------------------------------------------------------------------
0fc7e7326f | Raphael Langella | 2012-03-07 17:25:43 +0100

Replace grid_distance() == 1 by adjacent() in a few places.

--------------------------------------------------------------------------------
2fa9559fee | Raphael Langella | 2012-03-07 14:17:43 +0100

Fix ranged combat fight simulator not displaying skill level properly.

--------------------------------------------------------------------------------
6e5f30cf97 | Raphael Langella | 2012-03-07 14:04:11 +0100

Clear last_pickup when entering a shop.
And restore it if nothing is bought (or if everything is dropped).
It's convenient to quicky (D)rop the bad items you've shop'ided.

--------------------------------------------------------------------------------
b0117f371b | Eino Keskitalo | 2012-03-07 09:34:08 +0200

Correct spacing.

--------------------------------------------------------------------------------
3882fbcfe9 | David Lawrence Ramsey | 2012-03-06 19:43:14 -0600

Fix off-by-one error: umbra also works with Yred at piety breakpoint 2 exactly.

--------------------------------------------------------------------------------
17454eec64 | Adam Borowski | 2012-03-07 01:51:05 +0100

Make a bunch of functions static.
As usually, a good percentage of them turn out to be unused.

--------------------------------------------------------------------------------
9e2087625a | Adam Borowski | 2012-03-07 01:51:05 +0100

Add missing #ifdefs for TAG_MAJOR 32.

--------------------------------------------------------------------------------
5fc6e5b335 | Adam Borowski | 2012-03-07 01:39:41 +0100

Remove the bonus for demons in umbra.
It's an Yredelemnul's effect like halo is TSO's, and he barely tolerates demons.

--------------------------------------------------------------------------------
5c1b5e17a1 | Raphael Langella | 2012-03-06 15:41:45 +0100

Use KILL_DISMISSED instead of KILL_RESET for monster merging.
Seems like KILL_RESET is taking monsters to the abyss.

--------------------------------------------------------------------------------
0e8e04b7e6 | Raphael Langella | 2012-03-06 15:40:38 +0100

Don't count banished and merged monsters in kill stats.

--------------------------------------------------------------------------------
973844d8bf | Neil Moore | 2012-03-06 08:50:19 -0500

Don't credit kills when crawling corpses merge.
Use KILL_RESET, just as for slime creatures.  Crawlies are no-exp-gain
anyway (and magic-immune so not inner-flamable), but there are likely to
be other side-effects of a credited kill.

--------------------------------------------------------------------------------
e9a2c9b943 | Raphael Langella | 2012-03-06 13:57:12 +0100

Being held in a net prevents the use of reaching weapons.

--------------------------------------------------------------------------------
11d03e6aed | Raphael Langella | 2012-03-06 13:48:15 +0100

Make "held in a net" a canned message.

--------------------------------------------------------------------------------
bf0de7d74d | Chris Campbell | 2012-03-06 00:46:10 +0000

Make vorpalise weapon always auto-ID

--------------------------------------------------------------------------------
16b6296028 | Raphael Langella | 2012-03-06 00:12:52 +0100

Fix a random crash when enchanting ammo (#5391).

--------------------------------------------------------------------------------
76630604fa | Adam Borowski | 2012-03-05 19:25:55 +0100

In DGL, give games stuck for 60s CPU time the finger (the Nethack level 7 one).
There's a new crop of infinite loop bugs, they're hard to debug in DGL due
to permissions (only Napkin can attach gdb) so backtraces would be nice, and
taking 100% CPU on a public server is very detrimental to players.

--------------------------------------------------------------------------------
038d441b01 | Adam Borowski | 2012-03-05 19:25:55 +0100

Fix a mangled comment.
I have no idea what I wanted to write there, so I made something up :p

--------------------------------------------------------------------------------
fc91b1d355 | Adam Borowski | 2012-03-05 18:59:17 +0100

Transmuting into tiny pieces is Conj not Tmut.
Since Disintegrate is not a player spell, this has currently no effect, but:
1. it's an effect Zin shouldn't care about (if that code gets simplified)
2. it spams greps and discussion about Tmut spells
3. it's a potential (if very boring) candidate for Vehumet specials

--------------------------------------------------------------------------------
f6d4d503c7 | Raphael Langella | 2012-03-05 17:42:57 +0100

Don't give XP when wounded slime creatures merge (#5368).

--------------------------------------------------------------------------------
8e099b8fce | Raphael Langella | 2012-03-05 17:05:28 +0100

Properly restore damage_friendly and damage_total.

--------------------------------------------------------------------------------
d7872c7902 | Vsevolod Kozlov | 2012-03-05 18:44:19 +0400

Remove ineffectual checks for Lair in special room definitions.
If I'm not mistaken, this has no effect, since the relevant special room
definitions have DEPTH: !Lair, and therefore are never chosen in Lair anyway.

--------------------------------------------------------------------------------
42b4ac43eb | Vsevolod Kozlov | 2012-03-05 18:20:12 +0400

Use _build_secondary_vault, not dgn_place_map, in _place_uniques.
It's exactly the same during level generaton.

--------------------------------------------------------------------------------
b801a92015 | Vsevolod Kozlov | 2012-03-05 17:25:36 +0400

Connect vaults in _build_vault_impl.

--------------------------------------------------------------------------------
bab704e9e5 | Vsevolod Kozlov | 2012-03-05 16:34:03 +0400

Let _connect_spotty work in Slime.

--------------------------------------------------------------------------------
9f1a28ba4e | Florian Diebold | 2012-03-05 13:31:27 +0100

Webtiles: Handle the "no buffer space available" error.

--------------------------------------------------------------------------------
6337f06fd9 | Chris Campbell | 2012-03-04 23:42:46 +0000

Fix repeated monster names in Simulacrum messaging

--------------------------------------------------------------------------------
84598a1b66 | Chris Campbell | 2012-03-04 23:16:12 +0000

Change MUT to Contam in artefact inscriptions, use consistent capitalisation
MUT makes many players think that it directly causes mutations somehow,
hopefully Contam better indicates that it causes contamination over
time.

Also changed -TELE to -Tele (like +Lev, +Inv, +Rage), etc.

--------------------------------------------------------------------------------
c650cca608 | David Lawrence Ramsey | 2012-03-04 15:51:27 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
306dba0d07 | David Lawrence Ramsey | 2012-03-04 15:40:53 -0600

Make wizard_make_object_randart() handle curses as acquirement does.
This is mainly to avoid creating cursed randart holy wrath weapons.
Maybe this case should eventually be dealt with in the artefact
generation code itself?

--------------------------------------------------------------------------------
027cac00e2 | David Lawrence Ramsey | 2012-03-04 14:33:26 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
04efdc58e2 | David Lawrence Ramsey | 2012-03-04 14:26:34 -0600

Remove obsolete comment.

--------------------------------------------------------------------------------
abf6557f9d | David Lawrence Ramsey | 2012-03-04 13:35:39 -0600

Finally fix capitalization of "the Shining One" in the code.
At the beginning of a sentence, it is "The Shining One", as expected,
but it's now lowercase elsewhere, as the god's name is now lowercase.
For simplicity, however, the database entries are still under the
capitalized form.

The code now puts god_name() inside uppercase_first() in the case of the
beginning of a sentence, generically so that any more properly
lowercase-named gods added later will be handled properly.

Note that simple_god_message() automatically does the capitalization fix
(as it already fixes apostrophes).  Ideally, god names should always be
accessed via god_name() instead of being hardcoded, but that's a much
more involved fix.

--------------------------------------------------------------------------------
1a2f3fe437 | David Lawrence Ramsey | 2012-03-04 13:30:13 -0600

Fix wording.

--------------------------------------------------------------------------------
b14ba8219a | David Lawrence Ramsey | 2012-03-04 13:13:22 -0600

Also fix capitalization of "the Shining One" in the FAQ.

--------------------------------------------------------------------------------
d989e4f50a | David Lawrence Ramsey | 2012-03-04 13:10:19 -0600

Typo fix.

--------------------------------------------------------------------------------
6bf02ec5a1 | David Lawrence Ramsey | 2012-03-04 13:07:46 -0600

Fix capitalization of "the Shining One" in a few places.

--------------------------------------------------------------------------------
8f024ada0b | David Lawrence Ramsey | 2012-03-04 13:00:23 -0600

Fix punctuation.

--------------------------------------------------------------------------------
71035ffdb0 | David Lawrence Ramsey | 2012-03-04 12:53:44 -0600

Properly use simple_god_message() in more places.

--------------------------------------------------------------------------------
10ca7dd481 | David Lawrence Ramsey | 2012-03-04 12:18:12 -0600

Fix indentation.

--------------------------------------------------------------------------------
6a3fc21c4e | David Lawrence Ramsey | 2012-03-04 12:16:44 -0600

Fix debugging message for gods that don't like anything.

--------------------------------------------------------------------------------
e7517a0d4f | Chris Campbell | 2012-03-04 00:25:41 +0000

Add mutagenic fog to minmay_bazaar_mutagenic_fog

--------------------------------------------------------------------------------
22be94214e | Chris Campbell | 2012-03-04 00:25:40 +0000

Shrink minmay_statue_hallways

--------------------------------------------------------------------------------
a3febd74c3 | elliptic | 2012-03-03 08:03:34 -0500

Fix slaying not increasing damage for magical staves.

--------------------------------------------------------------------------------
50c4d20a4f | Raphael Langella | 2012-03-03 09:23:19 +0100

Permarock walls completely block noise.
This fixes zig spring which rely on room isolation (and maybe other vaults).
Since the gameplay purpose or permarock is complete isolation, this should
work well.

--------------------------------------------------------------------------------
c7f59202aa | Adam Borowski | 2012-03-03 03:35:11 +0100

Don't use perror().
Clang, being a buggy pile of crap, can't handle it correctly.
Also, in every case, stderr didn't go to a reasonable place.

--------------------------------------------------------------------------------
c53482093a | Adam Borowski | 2012-03-03 03:25:47 +0100

Fix ghosts not being created if logging of wizard games is on.

--------------------------------------------------------------------------------
f99314e7c4 | Adam Borowski | 2012-03-03 03:00:07 +0100

Hunger ghouls down to 0 food rather than 37-39.
There's no reason for this unobvious quirk, there are no signedness problems
anymore.

--------------------------------------------------------------------------------
80710bc402 | Adam Borowski | 2012-03-03 02:54:04 +0100

Double the mp gain from ambrosia, make it slowly trickle in.
It will give 1 mp for every point of nutrition lost to regular digestion
(so 3 mp per 10 aut for normal races).  Spriggans, it sucks to be you.

--------------------------------------------------------------------------------
f0507e9384 | Adam Borowski | 2012-03-03 01:55:57 +0100

Use abandoned shops rather than stone arches in a couple bazaar maps.

--------------------------------------------------------------------------------
c58e53b4f8 | Raphael Langella | 2012-03-02 16:08:19 +0100

Walls don't completely block noise.
They attenuate noise with a factor of 12 (compared to 8 for doors).

--------------------------------------------------------------------------------
9b69d07270 | David Lawrence Ramsey | 2012-03-01 20:58:36 -0600

Tweak wording.

--------------------------------------------------------------------------------
764c798ef1 | David Lawrence Ramsey | 2012-03-01 17:44:12 -0600

Typo fix.

--------------------------------------------------------------------------------
d6647fe3e5 | Eino Keskitalo | 2012-03-01 18:58:02 +0200

Make ambrosia, grapes and sultanas take only one turn to eat.
This is a buff for ambrosia, and after some ##crawl-dev discussion it turns out 
several people thought grapes and sultanas already only cost one turn to eat. 
Frankly, I thought this was the case for all fruit.

I used another delay parameter to suppress the "You finish eating" message for 
single-turn edibles, which feels pretty hackish to me.

--------------------------------------------------------------------------------
f7f00fca61 | Michael Gagno | 2012-03-01 06:51:25 -0800

Remove DESC: line from a temple map.
This is now only used in sprint maps, zotdef, and the tutorial.

--------------------------------------------------------------------------------
af9ddfd7d9 | Michael Gagno | 2012-03-01 06:47:12 -0800

Remove a weird DESC: line in the classic Cerebov map.
This feature tends to only be used for Sprint maps and the like. In a vault,
all this does is make Sequell say weird things.

--------------------------------------------------------------------------------
f7b2635d40 | Michael Gagno | 2012-03-01 06:35:21 -0800

Actually remove some grates, for once.
This vault used them partially for cosmetic effect and partially for
reaching abuse. The cosmetic aspect is problematic since the glass changes. As
for the reaching stuff, water does the job well enough.

--------------------------------------------------------------------------------
b8b00d2e0a | Adam Borowski | 2012-03-01 14:12:26 +0100

Give humans an extra stat at level/4 rather than level/5.
This seems to be the average among other races.

--------------------------------------------------------------------------------
cb573ebef4 | Michael Gagno | 2012-03-01 03:34:04 -0800

Six minivaults. (HangedMan)

--------------------------------------------------------------------------------
014fdb5079 | Michael Gagno | 2012-03-01 03:34:04 -0800

"Magic Research" serial vault. (HangedMan)
These vaults are also allowed to show up individually (weight 1).

--------------------------------------------------------------------------------
d590066ac1 | elliptic | 2012-03-01 04:59:48 -0500

Add nfogravity to the crawl-ref-cia hook.

--------------------------------------------------------------------------------
1f7459dc57 | Michael Gagno | 2012-03-01 01:33:44 -0800

Get rid of some duplicated code.

--------------------------------------------------------------------------------
f0c39d70b3 | nfogravity | 2012-03-01 01:11:25 -0800

Fixed an exploit where a player could break out of constriction without 
spending turns by pressing < repeatedly. Also, made constriction interrupt 
stair travel.

--------------------------------------------------------------------------------
72d282bcc7 | Adam Borowski | 2012-03-01 00:38:47 +0100

Hackily hush a spurious warning if hardening is on.
Ubuntu and now Debian enable it by default for package builds (but not
regular gcc use), which causes spam.

--------------------------------------------------------------------------------
38276ccf6c | Adam Borowski | 2012-02-29 22:51:08 +0100

Don't use undocumented gcc driver options (which break clang's deps).
You're not supposed to use backend escapes since around 2000 -- ie, any
versions where this functionality was not experimental.

--------------------------------------------------------------------------------
6a1a9efde9 | Florian Diebold | 2012-02-29 15:33:39 +0100

Fix some display errors in the webtiles X map.

--------------------------------------------------------------------------------
e3bde27871 | Raphael Langella | 2012-02-29 15:28:17 +0100

Don't side step to make room for ally if said ally has reaching.

--------------------------------------------------------------------------------
2544f3196f | Eino Keskitalo | 2012-02-29 11:01:03 +0200

Remove the "You feel responsible" message from Ely protecting your allies.
It appeared randomly (instead of indicating something), and did not provide 
additional information to the player.

--------------------------------------------------------------------------------
9fa986592d | Eino Keskitalo | 2012-02-29 10:05:38 +0200

Remove piety loss from Elyvilon life-saving allies.
It's not in player's hands, so it can be an unwanted piety drain. On the other 
hand, without piety loss life-saving is a clear perk for ally-users under 
Elyvilon.

--------------------------------------------------------------------------------
eb127b30c5 | Adam Borowski | 2012-02-28 22:02:17 +0100

Fix an infinite loop if HUP happens during Stack Five.

--------------------------------------------------------------------------------
2a3aa8409d | Eino Keskitalo | 2012-02-28 21:02:33 +0200

Remove fire resistance items from ice cave cavern loot; make cavern loot 
placement into their own functions.
The loot itself sure could use some improvement, I think. Any takers?

--------------------------------------------------------------------------------
8b9966146b | Eino Keskitalo | 2012-02-28 21:02:33 +0200

Make the messages for calling the dead and animating remains canned.

--------------------------------------------------------------------------------
28819cb77c | David Lawrence Ramsey | 2012-02-28 11:45:17 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
c04e5462e3 | David Lawrence Ramsey | 2012-02-28 11:42:43 -0600

Clean up monster scroll-blinking a bit more.
The scroll should count as read whether it succeeded or not, as is done
for e.g. a scroll of summoning.

--------------------------------------------------------------------------------
1deeae5ee2 | Vsevolod Kozlov | 2012-02-28 20:56:41 +0400

Limit the number of monsters in special rooms to 30.

--------------------------------------------------------------------------------
cb4b11c835 | Raphael Langella | 2012-02-28 16:45:09 +0100

Make fleeing monster blink_away when reading the scroll.
Instead of doing a random blink.

--------------------------------------------------------------------------------
20f5c9dfeb | Raphael Langella | 2012-02-28 16:11:43 +0100

Simplify.

--------------------------------------------------------------------------------
3173c5e96b | David Lawrence Ramsey | 2012-02-27 16:34:17 -0600

Remove high-int spellcasters' sensing Detect Creatures.
The Detect Creatures effect is rare now that it isn't a generic spell,
so this should no longer be needed.

--------------------------------------------------------------------------------
d5d158e38a | David Lawrence Ramsey | 2012-02-27 13:19:54 -0600

Comment fix.

--------------------------------------------------------------------------------
a43d331d0b | David Lawrence Ramsey | 2012-02-27 13:15:11 -0600

Remove (possibly?) unneeded redraw_screen() from detect_secret_doors().

--------------------------------------------------------------------------------
3d45f371ff | David Lawrence Ramsey | 2012-02-27 13:15:11 -0600

Tweak cast_detect_secret_doors() into detect_secret_doors().
This makes it consistent with the other detect_* functions.

--------------------------------------------------------------------------------
d1e4f0bbf1 | David Lawrence Ramsey | 2012-02-27 13:15:11 -0600

Properly make all high-int monsters with spellcaster flags able to detect 
scrying.

--------------------------------------------------------------------------------
184aaf8f17 | David Lawrence Ramsey | 2012-02-27 13:15:11 -0600

Fix outdated comment.

--------------------------------------------------------------------------------
803329ac97 | David Lawrence Ramsey | 2012-02-27 13:15:10 -0600

Add shim for Detect Secret Doors cast attempts.

--------------------------------------------------------------------------------
71350e569f | David Lawrence Ramsey | 2012-02-27 13:15:10 -0600

Properly make "You detect nothing." a canned message.

--------------------------------------------------------------------------------
34df0eff5c | David Lawrence Ramsey | 2012-02-27 13:15:10 -0600

Clean up divinations functions a bit more.

--------------------------------------------------------------------------------
23c24d6e8b | Adam Borowski | 2012-02-27 15:54:09 +0100

Seafood has no eyebrows.

--------------------------------------------------------------------------------
7559ce0810 | Adam Borowski | 2012-02-27 15:16:00 +0100

Record the cause of mutations.
Mutation descriptions end with a hardcoded dot, which makes the notes look
weird.  Should we chomp the dot manually?

--------------------------------------------------------------------------------
910341321a | Adam Borowski | 2012-02-27 03:07:53 +0100

Properly mark magic shield (Helm card) as temporary on SH display.

--------------------------------------------------------------------------------
0ffc5744a9 | Adam Borowski | 2012-02-27 03:01:48 +0100

Combine effects of the potion of resistance into one.
Only Insulation remains a spell, and four status lights take too much space
on the HUD, interrupting travel/exploration four times rather than once.

--------------------------------------------------------------------------------
9e00649ab4 | Adam Borowski | 2012-02-27 02:44:21 +0100

Simplify.
Other parts could be changed into boolean logic a well, but I'm leaving
them for now in case the cap of 1 ever changes.

--------------------------------------------------------------------------------
3546c0aef7 | David Lawrence Ramsey | 2012-02-26 17:30:18 -0600

And put in proper shims for Detect Items and Detect Creatures cast attempts.

--------------------------------------------------------------------------------
a4516dc258 | David Lawrence Ramsey | 2012-02-26 17:23:52 -0600

Move all of Xom's divination effects from spells to actual Xom effects.
This removes the SPELL_FAKE_MAGIC_MAPPING hack, as well as removing
SPELL_DETECT_ITEMS and SPELL_DETECT_CREATURES, since they're only cast
via Xom anyway.

For now, the effects are added between potion effects and random
spellcasting, and there are also new Xom messages for them under the
"Xom divination" heading.

--------------------------------------------------------------------------------
1c2ffa1eb4 | Neil Moore | 2012-02-26 18:08:45 -0500

Fix some magic numbers.

--------------------------------------------------------------------------------
333634f169 | Neil Moore | 2012-02-26 18:03:31 -0500

Allow monspecs to give randarts.
Previously, the "randart" tag was overridden by monster_level.
Monspecs still won't *randomly* give randarts.

--------------------------------------------------------------------------------
e80537dcc9 | David Lawrence Ramsey | 2012-02-26 14:47:17 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
95ed5467b0 | David Lawrence Ramsey | 2012-02-26 14:44:57 -0600

Fix the status checks for Xom's potion of curing effects.
This duplicates logic in potion_effect(), but it's at least accurate now.

--------------------------------------------------------------------------------
c50d1646e6 | Adam Borowski | 2012-02-26 08:30:13 +0100

Reuse some old unrand names for randarts.

--------------------------------------------------------------------------------
4ed1939840 | Adam Borowski | 2012-02-26 08:30:12 +0100

A few new randart names.

--------------------------------------------------------------------------------
33a67b4882 | Adam Borowski | 2012-02-26 08:30:11 +0100

Update two obsolete comments.

--------------------------------------------------------------------------------
67ebc4fe4a | David Lawrence Ramsey | 2012-02-25 18:39:13 -0600

Tweak wording.

--------------------------------------------------------------------------------
7b76f4f8ae | David Lawrence Ramsey | 2012-02-25 16:05:06 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
70ed650a2a | David Lawrence Ramsey | 2012-02-25 16:04:34 -0600

Remove unneeded goto.

--------------------------------------------------------------------------------
8af5db4e55 | David Lawrence Ramsey | 2012-02-25 15:15:46 -0600

Let whips randomly get the vampiric brand.
This makes them more symmetric with demon whips.  The probability of
getting the brand is the same as for daggers.

--------------------------------------------------------------------------------
69c28fe0c0 | David Lawrence Ramsey | 2012-02-25 12:21:06 -0600

Simplify the routine to give naga-types non-racial weapons.

--------------------------------------------------------------------------------
0afa8f7945 | David Lawrence Ramsey | 2012-02-25 12:21:06 -0600

Set weapon brands for Ilsuiw/Nessos via set_item_ego_type() instead of 
item.special.
This matches how it's done elsewhere.

--------------------------------------------------------------------------------
46d87648a0 | David Lawrence Ramsey | 2012-02-25 12:21:05 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
03a2162567 | Adam Borowski | 2012-02-25 18:18:34 +0100

Don't crash on mad GDAs/CPMs.
Randart CPMs may get up to +23 enchantment.

--------------------------------------------------------------------------------
918549c06e | Adam Borowski | 2012-02-25 17:58:36 +0100

Drop APPEAR: for Wrath of Trog, Variability and Leech, id the Singing Sword on 
wield.
For the first three, the colour and tile gives them away anyway, even though
their names could appear on randarts.

For the Singing Sword, I'm leaving the old behaviour because of its greeting
gimmick, although it reveals the pluses on wield now.  It's iffy and
inconsistent with the rest -- ideas?

--------------------------------------------------------------------------------
8ef92609a3 | Adam Borowski | 2012-02-25 17:24:29 +0100

Ask for confirmation when starting a new trunk game in DGL.

--------------------------------------------------------------------------------
e63346fa66 | Adam Borowski | 2012-02-25 17:17:10 +0100

Pre-identify most unrands.
TODO:
* is there a point in hiding "bloodstained battleaxe", etc?
* Singing Sword greeting relies on it being un-ided: delete? id on wield?

--------------------------------------------------------------------------------
847b055529 | Adam Borowski | 2012-02-25 17:17:10 +0100

Identify unrands held by monsters when they die or drop them.
This is to avoid redundancy is messages.

Individual unrands can opt-out by setting "unided".

--------------------------------------------------------------------------------
23a24b050d | Adam Borowski | 2012-02-25 17:17:10 +0100

Autoinscribe artefacts in ZigSprint.

--------------------------------------------------------------------------------
8f5defe9c7 | Adam Borowski | 2012-02-25 17:17:10 +0100

Merge some common code.

--------------------------------------------------------------------------------
2de5309847 | Raphael Langella | 2012-02-25 15:05:57 +0100

Merge ammo stacks after enchanting missiles.

--------------------------------------------------------------------------------
699ed90868 | Raphael Langella | 2012-02-25 10:19:57 +0100

Show missiles in the wield screen when carrying ?EW.

--------------------------------------------------------------------------------
0d8f9f8d1e | Neil Moore | 2012-02-24 20:43:51 -0500

Use ghost's, not player's species for titles.
Previously a Spellcasting ghost would have the title "ogre mage" if
the player is an ogre, regardless of the ghost's species.

--------------------------------------------------------------------------------
8e777f91f2 | Florian Diebold | 2012-02-25 02:00:32 +0100

Fix the "bad file descriptor" crash in webtiles.

--------------------------------------------------------------------------------
7ad50dd352 | Michael Gagno | 2012-02-23 23:26:43 -0800

Make zig sprint a little harder for Abyss Knights.
They can't skip the entire map any more.

--------------------------------------------------------------------------------
5e20b4728c | Michael Gagno | 2012-02-23 22:14:05 -0800

Silence the milestones in sprint_v, for now.
They're too spammy in ##crawl with the bots.

--------------------------------------------------------------------------------
33001e7b47 | Michael Gagno | 2012-02-23 19:52:07 -0800

Use Denzi's sarcophagus tiles for the statues in Tomb:1.

--------------------------------------------------------------------------------
d0be15a553 | Florian Diebold | 2012-02-24 02:37:21 +0100

A small comment tweak in the webtiles config.

--------------------------------------------------------------------------------
85c06dd908 | Florian Diebold | 2012-02-24 02:37:20 +0100

Fix the idle times not counting up in the webtiles lobby.

--------------------------------------------------------------------------------
bb4ff491d1 | Adam Borowski | 2012-02-24 01:41:19 +0100

Disable an assertion that causes a massive slowdown.
CrawlVector::assert_validity() takes 20% time in canned test 5 and not much
less in tests 1 and 4.  It's sometimes called from tight loops, and its
counterpart CrawlHashTable()::assert_validity() has non-negligible cost
even though its body is empty in non-debug builds!

This code is self-contained and well tested, there was no bug here in many
years, so disabling these assertions should be safe.

We probably should check why CrawlVector and CrawlHashTable started to get
called so often, but speeding them up is good anyway.

--------------------------------------------------------------------------------
43c7ef724b | Florian Diebold | 2012-02-24 01:26:49 +0100

Fix a crash when pressing ! on the stash search menu in webtiles.
This doesn't fix the missing title, but at least it doesn't crash.

--------------------------------------------------------------------------------
7a09d0168e | David Lawrence Ramsey | 2012-02-23 17:55:53 -0600

Split monsters' eating honeycombs/royal jellies into its own food type.
It's only used for killer bee larvae, but the same can be said for
eating items and jelly-types, and making it a separate food type is
cleaner.

--------------------------------------------------------------------------------
9378ffeb53 | Florian Diebold | 2012-02-24 00:00:37 +0100

Webtiles: Don't try to create the user db in non-dgl mode.

--------------------------------------------------------------------------------
9149acb2b1 | Florian Diebold | 2012-02-23 23:12:15 +0100

Fix another stupid exception in the webtiles server.

--------------------------------------------------------------------------------
a5b4aa5d4c | Florian Diebold | 2012-02-23 22:13:25 +0100

Webtiles: Remove the handler for the stderr pipe when crawl exits.

--------------------------------------------------------------------------------
6a903eda51 | Florian Diebold | 2012-02-23 20:02:14 +0100

Fix an unnecessary error message in the webtiles server.

--------------------------------------------------------------------------------
393f02681f | Florian Diebold | 2012-02-23 18:39:22 +0100

Limit the log file size in the webtiles server.

--------------------------------------------------------------------------------
258623314a | Florian Diebold | 2012-02-23 16:47:29 +0100

Fix an exception in the webtiles server.

--------------------------------------------------------------------------------
cc0dc5f503 | Michael Gagno | 2012-02-23 01:21:27 -0800

Ziggurat themed sprint map. (st)
https://crawl.develz.org/mantis/view.php?id=5323

This sprint map has 27 rooms with randomized themed monster sets, and loot.
It's much like a ziggurat, but contained all in a single map, and with the
rooms linked by teleporters instead of stairs. You get the Orb after room
27.

All the items are pre-identified. Note that there is a problem here with
autoinscriptions not being given to pre-identified artefacts.

See the mantis issue for st's comments.

--------------------------------------------------------------------------------
0448f40807 | Adam Borowski | 2012-02-23 03:07:48 +0100

Fix attack continuing after abjuring monsters with a staff of summoning.

--------------------------------------------------------------------------------
176cd724e9 | Adam Borowski | 2012-02-23 01:32:41 +0100

Make the Royal Jelly banishment message less cryptic.
It made it sound as if you irretrievably lost the rune.

--------------------------------------------------------------------------------
088b793850 | Adam Borowski | 2012-02-23 01:25:10 +0100

Expose mid rather than mindex to dlua.

--------------------------------------------------------------------------------
b9ee935504 | Adam Borowski | 2012-02-23 01:03:24 +0100

Fix Slime:6 vault opening when any monster dies after TRJ has been banished.

--------------------------------------------------------------------------------
94232e2db9 | David Lawrence Ramsey | 2012-02-22 15:47:21 -0600

Add spacing fix.

--------------------------------------------------------------------------------
2f02e13b84 | Adam Borowski | 2012-02-22 22:00:00 +0100

Update the hint for the skills screen.
Too bad, there is not enough room to describe focused skills.  If someone
could word it tersely, that'd be great.

--------------------------------------------------------------------------------
72eb5ad2be | Adam Borowski | 2012-02-22 22:00:00 +0100

Don't list wands as evokable for felids.

--------------------------------------------------------------------------------
f7b7e75239 | David Lawrence Ramsey | 2012-02-22 12:40:53 -0600

Add another friendly imp greeting.

--------------------------------------------------------------------------------
34244627f2 | Raphael Langella | 2012-02-22 15:31:07 +0100

Fix hunter hint mode (#5350).

--------------------------------------------------------------------------------
86304b85bf | Raphael Langella | 2012-02-22 14:37:06 +0100

Simplify.

--------------------------------------------------------------------------------
d7606a9970 | Michael Gagno | 2012-02-21 21:03:39 -0800

Define tiles for some walls in cryptofortress_bobbens.
In console a few of the walls are red, but tiles was left out.

--------------------------------------------------------------------------------
885472868a | Adam Borowski | 2012-02-21 15:55:39 +0100

Properly refer to octopodes in imp greetings and Azrael insults.

--------------------------------------------------------------------------------
b6fbeaa60c | Adam Borowski | 2012-02-21 15:55:25 +0100

Use imp suck-ups for Call Imp as well.
It's the main way for friendly imps to be summoned, after all...

The variety of messages is still abysmally low.  Add more!

--------------------------------------------------------------------------------
bd23d0249e | Adam Borowski | 2012-02-21 15:38:02 +0100

Fix embedded Lua in monster speech not being executed.

--------------------------------------------------------------------------------
572669038d | Adam Borowski | 2012-02-21 12:57:25 +0100

Insert missing changelogs for stable maintenance point releases.

--------------------------------------------------------------------------------
7be6e48210 | Adam Borowski | 2012-02-21 11:52:06 +0100

Stop false sticky flame spam.
It did no damage or item destruction, but still broke icemail and
condensation shield.  Not to mention being a wee bit annoying...

--------------------------------------------------------------------------------
a80a44868a | Michael Gagno | 2012-02-21 00:19:53 -0800

Fix a rare bug in dk_crumbling.des. (#5345)
If you apport the item on top of a door and pick it up, you get an error
message.

--------------------------------------------------------------------------------
52d643f639 | Chris Campbell | 2012-02-21 02:18:52 +0000

Give porcupines their spines at last
The current hit and damage formulae were an attempt to make spines
remain somewhat reasonable for higher-HD monsters like spiny frogs, but
could definitely do with improvement. For the moment only porcupines
are spiny, anyway.

--------------------------------------------------------------------------------
947dca10d5 | Adam Borowski | 2012-02-20 19:04:28 +0100

Fix the sticky flame formula to be independent of # of calls.
The probability of a time period of length "a" when every aut has a chance
"p" of burning scrolls, was calculated as:
    a*p
rather than
    1-(1-p)^a

Also, the last action wasn't counted if the time left was less than 10 aut.

--------------------------------------------------------------------------------
a119ecdc05 | elliptic | 2012-02-20 12:54:18 -0500

Partially clean up test_hit().

--------------------------------------------------------------------------------
e4f0c2baa7 | elliptic | 2012-02-20 09:45:51 -0500

Let Beastly Appendage produce horns when wearing a hat (Mantis 5340).
It only produces horns 2, so it shouldn't conflict with a hat.

--------------------------------------------------------------------------------
d10eacda56 | Adam Borowski | 2012-02-20 11:23:44 +0100

Fix improper MD species abbreviation.

--------------------------------------------------------------------------------
e3f5c5f04b | David Lawrence Ramsey | 2012-02-20 00:50:51 -0600

Properly handle it when the species doesn't like water but the form does (ice 
beast).

--------------------------------------------------------------------------------
edfeb27bf9 | David Lawrence Ramsey | 2012-02-19 23:48:52 -0600

Remove reference to ogres in the ankus description.
Since ogres don't start with ankuses anymore, it no longer applies
(unless maybe someone wants to make a unique ogre elephant-rider).

--------------------------------------------------------------------------------
798a8c0d80 | Adam Borowski | 2012-02-20 05:27:37 +0100

Fix a save tag 32 breakage.

--------------------------------------------------------------------------------
30d37ef7a7 | Adam Borowski | 2012-02-20 05:07:00 +0100

Merge branch 'master' into portal_branches

--------------------------------------------------------------------------------
9d196e98bf | Adam Borowski | 2012-02-20 02:20:47 +0100

Make messages during fireworks less spammy.

--------------------------------------------------------------------------------
6012f11208 | Adam Borowski | 2012-02-20 02:09:53 +0100

dlua function you.piety(200)
Like similar accessors, with 0 arguments it queries, with one it sets.

--------------------------------------------------------------------------------
a6ba8d37b5 | Adam Borowski | 2012-02-20 01:35:13 +0100

Repair the fireworks with respect to &^L

--------------------------------------------------------------------------------
8f1e006485 | Adam Borowski | 2012-02-20 00:38:39 +0100

Confirm cancelling semi-controlled blink, slightly simplify.
Too bad, the blinking code needs to be nuked from the orbit and rewritten,
it's too much work to do proper aborts here.

--------------------------------------------------------------------------------
7a1232720d | Adam Borowski | 2012-02-20 00:31:06 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
a3f5447500 | Adam Borowski | 2012-02-19 22:48:02 +0100

Don't give the jailed wizard in Trog's altar vault any weapons.
While Trog is not opposed to using them, it looks odd for someone jailed.

--------------------------------------------------------------------------------
bd0ca1ee93 | Adam Borowski | 2012-02-19 22:48:02 +0100

A better description for humans.

--------------------------------------------------------------------------------
195d99374a | Adam Borowski | 2012-02-19 22:48:02 +0100

Fix sticky flame burning more scrolls if you do swift actions.

--------------------------------------------------------------------------------
9320605cf7 | Adam Borowski | 2012-02-19 22:48:02 +0100

Colour unlimited flight differently.
Like levitation, it's important to know whether your flight is temporary or
not (can explore large water areas, etc).

--------------------------------------------------------------------------------
6315b6cf65 | David Lawrence Ramsey | 2012-02-19 14:58:01 -0600

Fix Mantis 5309: Species that can't swim but like water (grey dracs) shouldn't 
drown.

--------------------------------------------------------------------------------
8fe987cc68 | David Lawrence Ramsey | 2012-02-19 14:26:38 -0600

Add formatting fix.

--------------------------------------------------------------------------------
ec7809260e | Adam Borowski | 2012-02-19 13:30:58 +0100

Don't assert out when a new equip slot is added.
This broke compatibility with pre-octopode saves.  This doesn't matter much
as 0.9 had octopodes merged in (just disabled) so few people can be expected
to try to convert such saves, yet I'm fixing this in case of new additions
in the future.

--------------------------------------------------------------------------------
9790a157ee | Adam Borowski | 2012-02-19 01:04:55 +0100

Make elephant skeletons lose the trunk slap attack -- trunks have no bones.

--------------------------------------------------------------------------------
63de88c69f | Florian Diebold | 2012-02-18 23:57:31 +0100

Fix the "tried" question mark still not appearing in some cases (#5333).
The underlying problem is that item_type_known returns true for some
item_info objects (i.e. item_defs returned by get_item_info) even
though their item type isn't really known, because the item type data
is erased by setting it to 0. So if the sub type 0 of the respective
base type is known, item_type_known may return true (which causes
item_type_tried to return false).

I didn't fix that (I'm not sure if it should be considered a bug, or
item_type_{known,tried} just shouldn't be used on item_infos), but
just changed the call to item_type_tried to a direct check for the flag.

--------------------------------------------------------------------------------
6adc23ed20 | David Lawrence Ramsey | 2012-02-18 14:06:05 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
e3c61212a2 | David Lawrence Ramsey | 2012-02-18 14:04:03 -0600

Constify.

--------------------------------------------------------------------------------
5f021b5d73 | David Lawrence Ramsey | 2012-02-18 14:00:36 -0600

Simplify.

--------------------------------------------------------------------------------
4b2931f76c | Raphael Langella | 2012-02-17 14:16:40 +0100

Fix the octopus title screen colours (#5325).

--------------------------------------------------------------------------------
a60c0db744 | Raphael Langella | 2012-02-17 13:32:34 +0100

Useless skills can never be trained (#5320).

--------------------------------------------------------------------------------
5ce9e03da4 | Michael Gagno | 2012-02-16 14:24:26 -0800

Dis:7 improvements. (st)
The two "castle" Dis maps have been merged into one subvaulted map, with a
new wall section (also subvaulted) that goes between the castle and the
city. A number of improvements have also been made to the old maps. This should
make Dis:7 harder and more interesting.

--------------------------------------------------------------------------------
70cb017390 | Raphael Langella | 2012-02-16 17:56:39 +0100

Remove an obsolete variable.

--------------------------------------------------------------------------------
4d402a81e1 | Adam Borowski | 2012-02-16 05:58:57 +0100

Update the 0.10 release date in the changelog.

--------------------------------------------------------------------------------
34ff2aa5ba | Adam Borowski | 2012-02-16 05:58:03 +0100

Sync manual from the wiki.

--------------------------------------------------------------------------------
db8089f1c7 | Adam Borowski | 2012-02-16 05:55:09 +0100

Don't crash when petrification makes fliers drown.

--------------------------------------------------------------------------------
cb7349dab7 | Adam Borowski | 2012-02-16 05:32:07 +0100

Fix phoenix farming: XP is given only once the corpse is destroyed.
This is the real fix, rather than papering over that was discussed on IRC.
I feel uneasy with such a change right before the release, but alternatives
are not good, and elliptic protested removing phoenixes for 0.10.

--------------------------------------------------------------------------------
5108507b72 | Adam Borowski | 2012-02-16 03:19:42 +0100

Make debug mode combat a bit less spammy.

--------------------------------------------------------------------------------
091080c238 | Adam Borowski | 2012-02-15 10:18:21 +0100

Fix artefact armour sometimes masquerading as mundane types.

--------------------------------------------------------------------------------
0327a21ec9 | Raphael Langella | 2012-02-15 10:04:11 +0100

Fix detected mimics not being announced when coming into view.

--------------------------------------------------------------------------------
ed09c6bf44 | Michael Gagno | 2012-02-14 20:15:13 -0800

Make another spoily secret door non-secret.
This one is a Tomb entry.

--------------------------------------------------------------------------------
095340b9cb | Raphael Langella | 2012-02-14 14:45:20 +0100

Keep lurking mimics from going wandering when player is away.

--------------------------------------------------------------------------------
32174fa2e4 | Adam Borowski | 2012-02-14 13:58:26 +0100

Changelog: Che Guebriados gives no resists.

--------------------------------------------------------------------------------
b7b7a285a1 | Adam Borowski | 2012-02-14 13:17:22 +0100

Make a spoily secret door non-secret.
Branch entrances, unlike regular extra loot, should never require knowing
how specific vaults look like.

--------------------------------------------------------------------------------
f13dbe44d6 | Adam Borowski | 2012-02-14 13:02:26 +0100

Don't bother morphing AK abyss, generate it anew.
Not any cheaper than displacing misplaced monsters and items after every
step, and less chance of bugs (like "Item buggily placed in a feature.")

--------------------------------------------------------------------------------
75e0b1b30f | Raphael Langella | 2012-02-14 01:20:13 +0100

Mimics revealed by detection lurk instead of wandering.
Should fix #5297.

If we ever scale their stats with depth (and/or give them constriction) to make
them actually a bit dangerous, we should also put an auto-exclusion of radius 1
when detected.
Right now, it would just be annoying.

--------------------------------------------------------------------------------
a5fc037d87 | Adam Borowski | 2012-02-14 00:23:05 +0100

Update the release process documentation.
Most of it made sense in SVN days.

--------------------------------------------------------------------------------
02c8df0856 | Adam Borowski | 2012-02-13 17:28:39 +0100

Fix use of unitialized values during noise propagation.
This may be either harmless or cause thorough gameplay changes, beware.
Before, it depended on compiler quirks, optimization and whatever was on
the stack in that place.

--------------------------------------------------------------------------------
a6555f7657 | Adam Borowski | 2012-02-13 17:28:39 +0100

Fix Abyss map mask being uninitialized.
This is most likely the cause of unexplainable Abyss crashes: if something
was wrongly left masked, an invalid feature could get onto the map.

--------------------------------------------------------------------------------
0dcda42d30 | Adam Borowski | 2012-02-13 17:28:39 +0100

Make "huge" values in Worley more huge.
I don't know the theory behind it, but often, incoming numbers were bigger
than 999999.9, making it fail to shift uninitialized values of ID off.

--------------------------------------------------------------------------------
ac12d3ff14 | Adam Borowski | 2012-02-13 17:28:38 +0100

Use ! rather than ^true for boolean negation.
It's the same in C++, but damn unobvious -- one would expect higher-order
bits to be (illegally) up.

--------------------------------------------------------------------------------
61d6b406cd | Adam Borowski | 2012-02-13 17:28:38 +0100

If creation of AK abyss fails, regenerate the level.
Merely doing 30 morphs is often not enough.

--------------------------------------------------------------------------------
f66e376dc9 | Chris Campbell | 2012-02-13 16:03:54 +0000

Fix Summon Divine Warrior's description, angels can't stay permanently

--------------------------------------------------------------------------------
bed1a4ca83 | Adam Borowski | 2012-02-12 23:58:30 +0100

Assert if adjust_level() would put the experience out of bounds.
There is a bug that caused negative xp (and since it's an unsigned variable,
it rolled over) on Mac that I can't seem to reproduce in any way.  These
asserts will at least limit damage.

The reporter died as a felid, gained enough experience to level up while
dead (an ally, poison or cloud).

This may have something to do with Apple shipping an ancient compiler, that
has bugs long fixed in newer versions.

Also, use wrong signedness in one calculation, to avoid multiplication and
division with mixed signed/unsigned operands.  This is shotgun debugging,
but I have no better idea right now.

--------------------------------------------------------------------------------
92f6d4c46c | Adam Borowski | 2012-02-12 23:40:01 +0100

Sync manual from the wiki.

--------------------------------------------------------------------------------
b8a5e1867e | Adam Borowski | 2012-02-12 22:57:53 +0100

Release constriction on hibernation and similar effects.
Only petrification is left: you may become a chunk of stone, but unlike
someone sleeping or paralyzed, it's damn hard to move stone aside.

--------------------------------------------------------------------------------
7450dfc3da | Adam Borowski | 2012-02-12 22:32:26 +0100

Fix artefact jewelry being {tried}.

--------------------------------------------------------------------------------
66a0334835 | Adam Borowski | 2012-02-12 22:32:26 +0100

Fix deck rarity not being passed.
Also, card data was not passed for identified decks other than escape.

--------------------------------------------------------------------------------
a0fc97f78d | Adam Borowski | 2012-02-12 22:32:26 +0100

Give Dissolution a more appropriate XP modifier.
He was worth less than an azure jelly, or a bit above half of an acid blob.

--------------------------------------------------------------------------------
7208d9e6fe | Adam Borowski | 2012-02-12 22:32:26 +0100

Fix artefact brands not showing up in tiles.
The code looked for item.props[KNOWN_PROPS_KEY] directly, ignoring other
rules like the item being fully identified implying all props to be known.
It would probably be better to use artefact_wpn_properties(), but that'd
require copying props between the CrawlHashTable and FixedVector back and
forth -- I went with checking id status, this may be not enough for some
odd uses.

--------------------------------------------------------------------------------
01fde1ea29 | David Lawrence Ramsey | 2012-02-11 19:55:28 -0600

Fix punctuation in changelog entry.

--------------------------------------------------------------------------------
7e7a206cff | Michael Gagno | 2012-02-11 16:02:18 -0800

Correct description of action_counts in changelog.

--------------------------------------------------------------------------------
44e263dcad | Adam Borowski | 2012-02-12 00:58:19 +0100

Minor changelog tweaks.

--------------------------------------------------------------------------------
9670880cf0 | Adam Borowski | 2012-02-12 00:58:12 +0100

Add commented-out explore_horizon to init.txt
It might be better to just enable it, but it can spook some player.

--------------------------------------------------------------------------------
dc8d354baa | Michael Gagno | 2012-02-11 15:52:15 -0800

Update changelog.
Added a few missing things and removed a few irrelevant things. Also made
some vague entries a bit more specific.

--------------------------------------------------------------------------------
572575fb68 | Adam Borowski | 2012-02-11 23:07:57 +0100

Remove a debugging statement (and unbreak non-debug builds).

--------------------------------------------------------------------------------
f0ea86e9fc | Adam Borowski | 2012-02-11 23:06:48 +0100

Fix the "tried" mark in tiles.

--------------------------------------------------------------------------------
6b1ec8b3d7 | Adam Borowski | 2012-02-11 21:58:39 +0100

Drop LinuxThreads support, unbreak BSD.
This could be done via a compilation check -- to catch
PTHREAD_MUTEX_RECURSIVE being an enum rather than a #define.

Too bad, our Makefile makes compilation checks hard, slow and unwieldy.
Thus, I hope no one cares about systems that ancient.

--------------------------------------------------------------------------------
20092bb18f | Adam Borowski | 2012-02-11 21:54:08 +0100

Fix a memory leak.

--------------------------------------------------------------------------------
706c437476 | Michael Gagno | 2012-02-10 19:58:53 -0800

Less deep water in swamp_vile. (HangedMan)

--------------------------------------------------------------------------------
c2aba92c94 | Michael Gagno | 2012-02-10 19:07:13 -0800

Tweak hangedman_abyss_rune_flesh_and_stone.
Corridors are less affected by abyss morphing.

--------------------------------------------------------------------------------
c564c5b35f | Raphael Langella | 2012-02-10 22:51:42 +0100

Prompt only once for changed armour interruption.

--------------------------------------------------------------------------------
9ac7a515ad | Adam Borowski | 2012-02-10 16:34:37 +0100

Make it possible to change armour with any distractions.
Monsters around, mild poisoning, etc, made it impossible to switch any kind
of armour -- including cloaks of poison resistance, boots of lev, etc.

Even single turn changes was aborted, with aborts taking that turn -- ie,
you lost time but did not get anything.  Thus, there is no point asking a
question on the last turn.

I'm afraid the repeated question is way too annoying.  Ideas?

--------------------------------------------------------------------------------
97b9654031 | Adam Borowski | 2012-02-10 16:33:31 +0100

A bot to stress-test Abyss code and player-vs-monsters attacks.
Arena tests fail to check for player only bugs; chaos brand should give a
decent coverage since it can emulate all other melee brands except reaching.

This bot has the following problems:

* can't cope with "Really levitate into that cloud of steam?".  Sadly, this
  makes it unsuitable for automated use yet.

* spends a fair bit of time staring into corners.  Not a big issue as the
  Abyss morphs quickly.  Naive fixes make it walk in circles too much.

[Also, if anything pops up while gearing up, the bot will be badly broken by
MarvinPA's armour change that just got pushed.]

--------------------------------------------------------------------------------
c1f59d299b | Adam Borowski | 2012-02-10 15:44:01 +0100

Make an especially spammy message #ifdef DEBUG_ABYSS

--------------------------------------------------------------------------------
4c56d27440 | Adam Borowski | 2012-02-10 15:44:01 +0100

Make bazaar_jpeg_triangle_bulge a regular map again.
It's a static one so it belongs with the rest: 10x the weight, no allow_dup.

--------------------------------------------------------------------------------
aa52e7af1a | Chris Campbell | 2012-02-10 13:42:20 +0000

Make wearing/removing armour interruptible, without keeping progress
The main purpose of having a long delay is to make changing armours in
combat impossible, not to kill players who get taken by surprise from
a monster outside LOS when putting on plate. Making it interruptible
isn't a realistic approach, but hopefully improves gameplay.

--------------------------------------------------------------------------------
f20edffdd0 | elliptic | 2012-02-10 06:26:59 -0500

Fix comment.

--------------------------------------------------------------------------------
f12c8d8b65 | Mikko Vepsäläinen | 2012-02-10 00:49:18 +0100

Zonguldrok wizlab door also accepts decomposed zombies.

--------------------------------------------------------------------------------
974dca725a | elliptic | 2012-02-09 16:10:20 -0500

Fix UCC nerfing frenzy to oblivion (rwbarton).

--------------------------------------------------------------------------------
b3a419524d | Adam Borowski | 2012-02-09 20:44:38 +0100

Don't merge charmed slimes with non-charmed ones.

--------------------------------------------------------------------------------
48c1097123 | Adam Borowski | 2012-02-09 20:18:03 +0100

Rot all corpses globally on abandoning Kikubaaqudgha.
You could burn all piety on Receive Cadavers right before abandoning her,
switch to a god who accepts corpses and instantly get ~140 piety.

The corpses don't disappear but become thoroughly rotten, unfit for any
abuse.

--------------------------------------------------------------------------------
b523116229 | Raphael Langella | 2012-02-09 17:02:39 +0100

Don't leak the real clone with the targetting interface (#5223).

--------------------------------------------------------------------------------
d15ca121bf | Raphael Langella | 2012-02-09 16:34:01 +0100

Allow float input when setting skills with wizmode commands.

--------------------------------------------------------------------------------
815a96290c | Raphael Langella | 2012-02-09 16:12:16 +0100

Allow selecting the skill for the cursed weapon just wielded (#5266).

--------------------------------------------------------------------------------
4a26730bbb | David Lawrence Ramsey | 2012-02-08 23:27:00 -0600

Properly document Trog's taking kills of holy beings on the "^!" screen.

--------------------------------------------------------------------------------
4f150e4629 | Adam Borowski | 2012-02-09 03:56:21 +0100

Automate creation of Windows non-installer zips.

--------------------------------------------------------------------------------
633b2c9376 | Michael Gagno | 2012-02-08 17:21:13 -0800

Make Telepathy (dowsing card) less spammy.
This does not change the effect in any way - it just automatically clears
the map every turn for you now, instead of forcing you to do it manually.

--------------------------------------------------------------------------------
bb5780c9c4 | elliptic | 2012-02-08 15:28:39 -0500

Fix missing parenthesis.

--------------------------------------------------------------------------------
71fd8146c4 | elliptic | 2012-02-08 15:17:57 -0500

Make Nemelex's handling of corpses more consistent.
Nemelex used to compute corpse value using three different formulas: for timeout
decrease, piety gain, and deck weighting.

Now Nemelex uses the same formula for all three, and it is a simple one: every
corpse has value 50.

The effects of this:
1) Piety gain from corpses is very roughly the same on average, but it decreases
much more smoothly as piety increases.
2) Corpses have a far smaller effect on deck weighting now, since previously
we used value = corpse mass (times 10). Decks of summonings tended to dominate
the weightings, so this is hopefully a change for the better, but it will
require testing. Also, the fact that corpse mass mattered was inconsistent
with sacrificing corpses to other gods.

--------------------------------------------------------------------------------
96456ad5d1 | elliptic | 2012-02-08 15:12:45 -0500

Fix corpses essentially giving no Jiyva piety and not reducing Nemelex gift 
timeout.
This commit doesn't change Nemelex piety gain, though.

--------------------------------------------------------------------------------
9389ece921 | elliptic | 2012-02-08 13:24:17 -0500

Let BEAM_ICE destroy potions.
BEAM_COLD already could, of course; BEAM_ICE just seems to have been
forgotten in the switch statement.

--------------------------------------------------------------------------------
cec9691ba5 | Raphael Langella | 2012-02-08 17:52:47 +0100

Properly update training when altering skills with wizmode commands.

--------------------------------------------------------------------------------
22cb86c297 | Raphael Langella | 2012-02-08 17:52:47 +0100

Properly update skill cost when using &A.

--------------------------------------------------------------------------------
d0e7c81bb4 | Raphael Langella | 2012-02-08 17:52:47 +0100

Remove an obsolete call to check_skill_cost_change in reskilling.
Since total_experience hasn't changed, skill cost hasn't changed either.
Should total_experience be updated? Because of the 10% penalty, it could be
reduced accordingly. I don't think it's significant enough to bother, but if
you do, poke me.

--------------------------------------------------------------------------------
36b9acc72f | Raphael Langella | 2012-02-08 17:52:47 +0100

Ask whether to train skills when changing XL with the wizmode command.

--------------------------------------------------------------------------------
46260351dd | David Lawrence Ramsey | 2012-02-08 09:49:57 -0600

Properly use dec_hp() instead of set_hp() in a few places.
This allows proper low HP warnings, as well as proper HP bar redraws.

--------------------------------------------------------------------------------
4e358edec7 | Adam Borowski | 2012-02-08 14:38:46 +0100

Don't hatch/teleport into cabins on the troll bridge.
On D:9, rock trolls are massively out of depth, they are killable only with
appropriate strategy/kiting -- but are not too deadly because of their
slowness.  On the other hand, being stuck with two rock trolls and one
vanilla is something no one can survive.

No idea how a free space could have generated with the secret door still
unknown, but at least once it did.

--------------------------------------------------------------------------------
b7df225ef5 | David Lawrence Ramsey | 2012-02-07 22:18:34 -0600

Fix Mantis 5256: Properly use dec_mp() instead of set_mp() in a few places.
This allows proper low MP warnings, as well as proper MP bar redraws.

--------------------------------------------------------------------------------
a3044804ca | David Lawrence Ramsey | 2012-02-07 22:06:03 -0600

Fix Mantis 5248: Make a comment accurate (per Galefury's suggestion).

--------------------------------------------------------------------------------
fb148b9861 | Adam Borowski | 2012-02-08 01:06:29 +0100

Clear tile flavour and colouring when the dungeon builder places features.

--------------------------------------------------------------------------------
785d91775f | Adam Borowski | 2012-02-08 00:31:05 +0100

Add a monster miscasts arena test to canned test runs.

--------------------------------------------------------------------------------
54d0b961d8 | Adam Borowski | 2012-02-08 00:24:48 +0100

Fix tloc miscasts crashing when the monster dies.

--------------------------------------------------------------------------------
0c2592fa9d | Raphael Langella | 2012-02-07 17:51:40 +0100

When increasing XL with &^L, train skills and properly update skill cost.
Decreasing XL doesn't "untrain" skills and doesn't change skill cost. It would
need some effort to be implemented, and I don't see any need for it right now.

--------------------------------------------------------------------------------
219b157482 | Adam Borowski | 2012-02-07 11:04:47 +0100

Fix Twisted Res miscasts on a single corpse.
This bug was abusable, too: if you make sure there is always only one
corpse, you never suffered miscasts and could immediately retry with no
time or mana lost.

--------------------------------------------------------------------------------
73f2e386ef | Adam Borowski | 2012-02-07 11:04:47 +0100

Get rid of SavefileCallback.
They had one legitimate user that could be called from a single place (as
opposed to two callbacks) together with many other similar initializations.

2/3 of code served for compiler/platform differences -- explicitely declared
by the language standard as undefined behaviour.

--------------------------------------------------------------------------------
f00a621831 | ldierk | 2012-02-07 03:18:11 +0100

Prompt before wielding cursed staves and rods. Fixes Mantis 0005120

--------------------------------------------------------------------------------
e3dd58888a | Adam Borowski | 2012-02-07 03:14:24 +0100

Fix mangled display of antitrained skills.
The minus sign was doubled, this caused line wrapping which resulted in
misaligned display in tiles and the aptitude not being shown at all in
console.

--------------------------------------------------------------------------------
0e0478f025 | Adam Borowski | 2012-02-07 02:28:14 +0100

Let Wucad Mu and staff of Dispater fail properly, not taking a turn.

--------------------------------------------------------------------------------
bd6ce3987b | Adam Borowski | 2012-02-07 02:08:09 +0100

Fix the staff of Olgreb having a misleading no-MP fail message.
It didn't explain what went wrong, and didn't tell you no time was taken.

--------------------------------------------------------------------------------
577a65dfc2 | elliptic | 2012-02-06 16:47:22 -0500

Make Nemelex no longer attempt to enforce "genuine" use of cards (fixes #2908).
This really didn't work very well... it is too hard to detect legitimate use
of destruction decks, and doing so would just encourage people to scum through
them against harmless enemies anyway.

--------------------------------------------------------------------------------
050182461a | Raphael Langella | 2012-02-06 21:57:49 +0100

Properly update skill cost when changing skill level with the wizmode command.

--------------------------------------------------------------------------------
3323d154a4 | Adam Borowski | 2012-02-06 15:58:31 +0100

Fix a branch stair mimic info leak.

--------------------------------------------------------------------------------
ab659f9b99 | Adam Borowski | 2012-02-06 15:52:41 +0100

Don't use misleading "Monster resists." for failed swaps.
We use this word hundreds of times, always meaning resistances.

--------------------------------------------------------------------------------
dc269313c0 | Adam Borowski | 2012-02-06 15:29:42 +0100

Forbid eye-gouging ETC_FIRE floors in Pan.
It's something arguably fit for the Abyss, let's keep them apart.

--------------------------------------------------------------------------------
135060c136 | Adam Borowski | 2012-02-06 13:28:01 +0100

Document that sixfirhies heal (or explode) from electricity.
For the record: overcharging happens if elec damage is >= current hp.

--------------------------------------------------------------------------------
30e6f0852a | Adam Borowski | 2012-02-06 13:28:01 +0100

Make phoenixes immune to fire.

--------------------------------------------------------------------------------
04ebcf7b43 | Adam Borowski | 2012-02-06 13:27:54 +0100

Don't redundantly regenerate agrid at the wrong time.
This reverts commit 1fea46646227a73c906d5d425c8482207f9d6cca.

--------------------------------------------------------------------------------
beba2ada06 | Michael Gagno | 2012-02-06 03:51:52 -0800

Improve wording in dk_xom_monty_hall.
Even the gods must obey the rules of spelling.

--------------------------------------------------------------------------------
160e00b47d | Adam Borowski | 2012-02-06 02:32:15 +0100

Fix a crash on w* of non-weapons.

--------------------------------------------------------------------------------
db794c63b7 | Adam Borowski | 2012-02-06 02:32:15 +0100

Salamander (Paracelsian) is not an animal -- so put the tile in the right dir.
The glyph is 'N' which seems correct: the only reason it's not a "fire naga"
is that it comes from a different mythology.

--------------------------------------------------------------------------------
f8391baa67 | Michael Gagno | 2012-02-04 21:53:32 -0800

New and improved xom_monty_hall vault. (dk)
This one uses Lua scripting to actually present the player with a (twisted)
monty hall problem.

--------------------------------------------------------------------------------
6454c54b04 | Michael Gagno | 2012-02-04 21:51:44 -0800

Remove old xom_monty_hall vault.

--------------------------------------------------------------------------------
8a4ff79ac2 | Michael Gagno | 2012-02-04 21:34:03 -0800

Eleven vaults. (HangedMan)

--------------------------------------------------------------------------------
aeb14a8dd1 | Michael Gagno | 2012-02-04 20:41:06 -0800

Ice themed serial vault for early D. (dk)

--------------------------------------------------------------------------------
8d11a63d30 | Michael Gagno | 2012-02-03 05:37:02 -0800

Decrease max depth of corexii_shantytown.
As jeanjacques pointed out, it is too easy past d:8 or so.

--------------------------------------------------------------------------------
bb2c21a60e | Raphael Langella | 2012-02-02 17:47:54 +0100

Don't drain the XP pool when hit by draining.
It should never contains anything significant anyway (less than skill cost).

--------------------------------------------------------------------------------
5d81417dee | Raphael Langella | 2012-02-02 17:21:14 +0100

Calculate skill cost based on experience instead of skill points.
So it's not influenced by cross/anti training and manuals anymore. Early game
cost will raise at the same rate for all backgrounds too. The ones with low
skill levels used to have a low cost for a longer time, allowing them to
catch up more quickly to the others.
Globally, early game cost will raise a bit faster, so this might need to
be balanced a bit (although I'm not sure how).
On the other hand, the new system is cleaner and simpler.
Also, in wizmode, changing skill levels don't have any effect on skill cost
anymore, however, changing XL does.

--------------------------------------------------------------------------------
dde76948a4 | Adam Borowski | 2012-02-02 12:48:43 +0100

Don't claim you can right-click out of menus in webtiles.

--------------------------------------------------------------------------------
bbbf33657c | Chris Campbell | 2012-02-01 22:54:46 +0000

Changelog updates and wording tweaks

--------------------------------------------------------------------------------
934dcec152 | Florian Diebold | 2012-02-01 20:18:07 +0100

Replace the fire mage title screen by the new version by Omndra and roctavian.

--------------------------------------------------------------------------------
397ca58d5c | Raphael Langella | 2012-02-01 16:22:15 +0100

Remove the now useless you.train_set array.

--------------------------------------------------------------------------------
1ffd8ee47d | Michael Gagno | 2012-02-01 00:28:34 -0800

No secret doors in shiori_angband_town. (minmay)
This entry vault tricks the player into thinking their only escape is a
hatch to D:2. It actually has secret doors, but it's a huge spoiler.

--------------------------------------------------------------------------------
50fa62c585 | Adam Borowski | 2012-02-01 04:03:00 +0100

Veto Ignacio's vault instead of placing it without him.
This reduces the pollution of vault list (before, it would list uniq_ignacio
on 1/4 levels, now it does only if he's actually there).

--------------------------------------------------------------------------------
f211c3e445 | Adam Borowski | 2012-02-01 03:14:20 +0100

Id wands of enslavement on auto-re-anger.

--------------------------------------------------------------------------------
11ee62d43b | Adam Borowski | 2012-01-31 15:25:30 +0100

Fix vamp weapons being unwieldable in ZotDef.

--------------------------------------------------------------------------------
31fb67cd07 | David Lawrence Ramsey | 2012-01-31 08:17:17 -0600

Fix tentacles reference for two-handed weapons with shields.
If you need two tentacles to wield a weapon, three hands translates to
six tentacles, not five.

--------------------------------------------------------------------------------
c540817133 | David Lawrence Ramsey | 2012-01-31 08:14:18 -0600

Generalize the bony plates check; anyone with level-3 tentacles has no arms.

--------------------------------------------------------------------------------
b9d8210c14 | Michael Gagno | 2012-01-30 21:19:20 -0800

Mention new PoG in changelog.

--------------------------------------------------------------------------------
dafb0d294e | Chris Campbell | 2012-01-31 04:27:55 +0000

Improve some misc acquirement checks
Checking for non-zero evoc skill is no longer necessary with the new
skill training, and acquirement also shouldn't depend on your current
equipment.

--------------------------------------------------------------------------------
f2d92da0ba | Chris Campbell | 2012-01-31 04:27:54 +0000

Don't scramble free from drowning when unable to move

--------------------------------------------------------------------------------
6813ec9d6c | Adam Borowski | 2012-01-31 05:15:03 +0100

Pass stats as int, not int8_t.
When stored in a register rather than memory there is no gain anyway, and
it led to potentially abusable bugs.

--------------------------------------------------------------------------------
038753f95a | Adam Borowski | 2012-01-31 03:37:01 +0100

Fix the message for gaining bone plates as seafood/kitteh.
It may be debatable whether growing bone is appropriate for octopodes,
but then, it's no like humans have such exoskeleton either.

--------------------------------------------------------------------------------
eb1d601d36 | Adam Borowski | 2012-01-31 03:27:48 +0100

Forbid thin bones to seafood.

--------------------------------------------------------------------------------
4bef0e91f4 | Adam Borowski | 2012-01-30 12:30:11 +0100

Fix servant kills of dual demon/undead holiness under Kiku and Trog.

--------------------------------------------------------------------------------
c2fb862fba | Adam Borowski | 2012-01-30 12:10:11 +0100

Let Trog accept kills of holies, like he does of other demons.
He's not someone to care about relations to good gods, merely creature type
which is otherwise the same for angels and demons.

--------------------------------------------------------------------------------
d542c58fb7 | Adam Borowski | 2012-01-29 15:25:02 +0100

Re-fix punctuation of snakes to sticks.
MarvinPA's fix was lost due to a mistake during the ucc merge.

--------------------------------------------------------------------------------
e2b86eab12 | Adam Borowski | 2012-01-29 15:18:06 +0100

Simplify a bit, correct the prototype for actor::mons_species().
Also, no need to check for Chuck and Polyphemus, they're included in their
species.

--------------------------------------------------------------------------------
b772ba5e80 | Adam Borowski | 2012-01-29 15:05:34 +0100

Constriction resistance, currently immunity only.

--------------------------------------------------------------------------------
88e8c9bff4 | Adam Borowski | 2012-01-29 14:31:42 +0100

Fix the shillelagh hurting the player if you wield it.

--------------------------------------------------------------------------------
6178f7666a | Adam Borowski | 2012-01-29 03:24:09 +0100

Disallow casting, reading, using rods while confused.
It was a pure waste of time and resources, unless you wanted random useless
badly (and in this case, it'd be a silly spoilery thing to do).

--------------------------------------------------------------------------------
91c54cfd76 | Adam Borowski | 2012-01-29 02:10:17 +0100

Make silver stars immune to all polymorph effects.

--------------------------------------------------------------------------------
ef584858c4 | Adam Borowski | 2012-01-29 02:06:47 +0100

Don't force premature wrapping in a couple of quotes.

--------------------------------------------------------------------------------
fd234ea6b0 | Adam Borowski | 2012-01-29 02:06:47 +0100

Consistently align quote attributions.

--------------------------------------------------------------------------------
e44133a6c2 | Adam Borowski | 2012-01-29 01:34:10 +0100

Give Dodging not Armour to Tr/Og/Sp, add skill points rather than skill values.
The latter is a nerf to professions who got both before: CK DK AK Wr Sk, none
of these were among strong ones so this might be bad here.

--------------------------------------------------------------------------------
c43b97f86c | Adam Borowski | 2012-01-28 22:17:36 +0100

Shopping list: change a misleading message.
" and buy it" suggests it's an immediate purchase, while in fact it's the
only way to remove the item from the shopping list.  When removed, it becomes
selected for purchase, but you're in no way forced to continue with it.

--------------------------------------------------------------------------------
074e2b78c7 | Michael Gagno | 2012-01-27 21:28:27 -0800

Improve spriggan bakers.
Nothing to see here...

--------------------------------------------------------------------------------
2e8ce956d0 | Adam Borowski | 2012-01-28 01:47:02 +0100

Update the copyright year.

--------------------------------------------------------------------------------
e1e6d9096d | Adam Borowski | 2012-01-27 23:44:48 +0100

Stop tentacles from being affected by mutagenic fog.

--------------------------------------------------------------------------------
c19ef6ca7b | Adam Borowski | 2012-01-27 23:42:58 +0100

Stop plants and tentacles from being teleported.

--------------------------------------------------------------------------------
cc6e23a2ee | Adam Borowski | 2012-01-27 23:17:38 +0100

Plants have no means to feel pain -- so torment shouldn't affect them.

--------------------------------------------------------------------------------
80186d560d | Adam Borowski | 2012-01-27 20:15:42 +0100

Berserk monsters shouldn't flee.

--------------------------------------------------------------------------------
b231c63186 | Adam Borowski | 2012-01-27 19:56:17 +0100

Disallow mute (from recite) orc knights to battle cry.

--------------------------------------------------------------------------------
e7e38d6bae | Adam Borowski | 2012-01-27 18:22:17 +0100

Don't talk about removed giant frogs in the desc of spiny frogs.

--------------------------------------------------------------------------------
a69a7e3982 | Adam Borowski | 2012-01-27 18:17:37 +0100

Don't acquire blunt vamp or distortion (artefact or not) if you need to butcher.

--------------------------------------------------------------------------------
bec4bdd956 | Adam Borowski | 2012-01-27 17:40:41 +0100

Give artefacts a miniscule chance of being distortion.
I made it four times lower than for regular items -- perhaps it should be
the same?  I see no reason why this brand should be excluded.

--------------------------------------------------------------------------------
ee6dc2ca4e | David Lawrence Ramsey | 2012-01-26 18:37:33 -0600

Fix inconsistent punctuation.

--------------------------------------------------------------------------------
9dbfc292a5 | Chris Campbell | 2012-01-26 23:41:41 +0000

Let Divination miscasts drain the stats of undead players

--------------------------------------------------------------------------------
45118fcc0e | Chris Campbell | 2012-01-26 23:41:19 +0000

Mark the Black Knight's barding as evil, since it makes you partially undead

--------------------------------------------------------------------------------
79af9619c6 | Chris Campbell | 2012-01-26 23:40:47 +0000

Update spells section of changelog

--------------------------------------------------------------------------------
aee8c760ea | Michael Gagno | 2012-01-25 19:20:08 -0800

Identify the guaranteed ring of invisibility in Sprint IV. (N78291)

--------------------------------------------------------------------------------
5285f508f8 | Michael Gagno | 2012-01-25 19:13:55 -0800

Mention Dispel Undead and Alistair's changes in changelog.

--------------------------------------------------------------------------------
b90649a3f1 | Chris Campbell | 2012-01-26 01:53:38 +0000

Prevent Shattering outside tar_minmay_river too

--------------------------------------------------------------------------------
3122d842dd | Chris Campbell | 2012-01-26 01:18:17 +0000

Prevent getting outside Tomb:2 and 3 with Shatter
It was possible to get to the outside of the map, dig all the way
around it, and then Shatter to get back in near the rune, and related
silliness.

--------------------------------------------------------------------------------
23dd5a86ef | elliptic | 2012-01-25 11:27:43 -0500

Fix Yred enslavement not recording that you killed the monster too.
Technically this is redundant information, but it makes sense to still give
milestone or note for killing the monster right before the one for enslaving
it.

--------------------------------------------------------------------------------
61f93a18a4 | Florian Diebold | 2012-01-25 14:09:37 +0100

Remove debug logs.

--------------------------------------------------------------------------------
dae930ccb6 | Florian Diebold | 2012-01-25 14:08:48 +0100

Fix a typo in the last commit.

--------------------------------------------------------------------------------
7538b18406 | Adam Borowski | 2012-01-25 12:00:09 +0100

Don't teleport Op and Mf into D:1 aquaria.

--------------------------------------------------------------------------------
eb219de4fe | Adam Borowski | 2012-01-25 09:29:15 +0100

Implement and upgrade pghost/panlord Sticky Flame to the player version.
It's probably too deadly, especially early on, but if players whine... here
you go.  Losing the range is nothing compared to being auto-hit -- low-level
ghosts have near-zero accuracy which made the spell miss most of the time
against players with any EV.

--------------------------------------------------------------------------------
1939bc9b63 | Adam Borowski | 2012-01-25 07:23:04 +0100

Rename an ugly variable.

--------------------------------------------------------------------------------
6871f025b8 | Adam Borowski | 2012-01-25 06:38:59 +0100

Get rid of USisms in spelling of -ll- and -tt-.
This mostly reverts 78d8ab06 which replaced Commonwealth "targetting" with US
"targeting", although there's also "cancelLing", "levelLing", "travelLing".

--------------------------------------------------------------------------------
97e9b58bb1 | Adam Borowski | 2012-01-25 05:31:58 +0100

Slightly simplify.

--------------------------------------------------------------------------------
70f6bea796 | Adam Borowski | 2012-01-25 05:20:13 +0100

Don't take food and a turn when evoking a staff of channeling at max mana.

--------------------------------------------------------------------------------
2b37ea0685 | Adam Borowski | 2012-01-25 05:13:52 +0100

Don't id evokable items on use.
Everything you can possibly evoke is already known, except for decks which
use their own rules anyway.

--------------------------------------------------------------------------------
430d9d1ddb | Adam Borowski | 2012-01-25 05:08:30 +0100

Remove obsolete crystal ball code.

--------------------------------------------------------------------------------
208379f62a | Michael Gagno | 2012-01-24 17:41:58 -0800

Update changelog.

--------------------------------------------------------------------------------
3bdc15731c | Michael Gagno | 2012-01-24 16:25:18 -0800

Update and clean up changelog.
Added some missing stuff, removed inner flame from 0.10 changes (it was
added in 0.9). Also added the new Abyss to 0.10 highlights, seeing as its
one of the biggest new features in this version.

--------------------------------------------------------------------------------
87763dd3da | Adam Borowski | 2012-01-24 15:58:10 +0100

Hide the name tags for Cerebov and co.
It's a jarring discrepancy from other uniques, but until someone can shift
the tags into the right place, this will do.

--------------------------------------------------------------------------------
7c50dbe097 | Adam Borowski | 2012-01-24 15:30:02 +0100

roctavian's tall tiles for Pan and hell lords.

--------------------------------------------------------------------------------
3eff784ad9 | Adam Borowski | 2012-01-24 15:08:39 +0100

Changelog: Pr get quarterstaves as well.  Only Ar get noob ones.

--------------------------------------------------------------------------------
e7a9cdd4c9 | Raphael Langella | 2012-01-24 14:39:44 +0100

Replace tabs by spaces.

--------------------------------------------------------------------------------
dc6b9a6c9c | Raphael Langella | 2012-01-24 14:28:49 +0100

When no skill is enabled, call the skill menu. (#5246)
Instead of forcing the first one. Also, if all your skills are maxxed or
untrainable, but at least one could be trained, put a message, because the
XP won't accumulate in the hidden pool anymore.

--------------------------------------------------------------------------------
a3a0c0c26e | Raphael Langella | 2012-01-24 13:37:22 +0100

Don't update can_train when you are delayed.
This reduces message spam when changing armour.

--------------------------------------------------------------------------------
dbd4153d41 | Raphael Langella | 2012-01-24 13:19:10 +0100

Don't count mimics as exits when processing disconnected zones.
I can't tell if it's enough to fix #4915, but at least it should help.

--------------------------------------------------------------------------------
df8490ae68 | Raphael Langella | 2012-01-24 13:13:31 +0100

Allow random blinks and teleport to put the player on mimics.

--------------------------------------------------------------------------------
1176d43caa | Raphael Langella | 2012-01-24 13:09:53 +0100

Reveal mimics at the player's feet (#5101).
It would also be possible to prevent the player from blinking on top of
mimics, but this is probably a more robust solution.

--------------------------------------------------------------------------------
2832b6cf8c | Michael Gagno | 2012-01-23 20:11:31 -0800

Do not capitalize inventory letters in the description screen.
A dagger on 'e' would appear as "E - a dagger". This fixes mantis issue
5221.

Partially reverts 81dea6aead7c0937d69461642e87f348177547e3.

--------------------------------------------------------------------------------
07b02e0526 | Michael Gagno | 2012-01-23 17:13:31 -0800

Mention the '!' command on description screens in local tiles builds.
It would tell you to Right-click, but not mention '!', which does the same
thing (but a lot more conveniently, for most players). Description screens
will now inform you of both commands, when both are available.

--------------------------------------------------------------------------------
798cc7ae83 | David Lawrence Ramsey | 2012-01-23 12:43:56 -0600

Clean up the changelog a bit.

--------------------------------------------------------------------------------
444e835d7f | Adam Borowski | 2012-01-23 11:02:21 +0100

Fix the display of the webtiles URL in unrested manual.

--------------------------------------------------------------------------------
d8d8961c02 | Adam Borowski | 2012-01-23 11:02:12 +0100

Sync manual from the wiki.

--------------------------------------------------------------------------------
40c8fe3c18 | Michael Gagno | 2012-01-22 23:32:22 -0800

Remove dwarf mountain bat the bat zombie.
Fixes mantis issue 5254.

--------------------------------------------------------------------------------
71a52b446b | Michael Gagno | 2012-01-22 23:31:22 -0800

Fix human corpses of freed slaves.

--------------------------------------------------------------------------------
4e766d12d0 | Michael Gagno | 2012-01-21 21:16:07 -0800

Update changelog.

--------------------------------------------------------------------------------
41e24e138f | David Lawrence Ramsey | 2012-01-21 22:47:34 -0600

Fix typo.

--------------------------------------------------------------------------------
4b6fcbf68e | David Lawrence Ramsey | 2012-01-21 15:11:26 -0600

Fix wording.

--------------------------------------------------------------------------------
06c459c2cb | David Lawrence Ramsey | 2012-01-20 23:51:15 -0600

Rename sarcophagus_pedistal.png to use the proper spelling of "pedestal".

--------------------------------------------------------------------------------
0af5b33b4c | Michael Gagno | 2012-01-20 21:17:53 -0800

Sarcophagus tile for ragdoll_tomb_raider. (Denzi)
Currently just decoration. Denzi also made an open sarcophagus tile, and a
sideways one on a pedistal, which I've added to rltiles/UNUSED.

--------------------------------------------------------------------------------
9ea98072d4 | Michael Gagno | 2012-01-20 21:06:04 -0800

Fix minmay_elf_arrival_summoners.

--------------------------------------------------------------------------------
d455535218 | Michael Gagno | 2012-01-20 20:43:14 -0800

Fix descriptions in wizlab_zonguldrok.
Centre gravestone no longer turns into floor, and the floor is now "the
ground" rather than "a ground". This also fixes "a ground" in
wizlab_eringya.

--------------------------------------------------------------------------------
4ab3be238f | Michael Gagno | 2012-01-20 19:28:46 -0800

Various changes to vault-defined feature descriptions.
This removes usage of portal_desc to rename stone walls (they will now
appear as regular stone walls). This works around a problem where, when
destroying the wall, the floor would keep the description.

This also makes the elephant statues in due_jungle_book indestructible, to
work around the same problem (note that this is already done in other
vaults). It would be good to have a better solution to this in the long term.

--------------------------------------------------------------------------------
3955f05a06 | Michael Gagno | 2012-01-20 18:48:45 -0800

Changes to dk's "Undead" serial vault.
Tweaked monster set to not place large zombies on early D levels (could get
hill giant zombies on D:1). Replaced trees with withered plants. Made the
gravestones indestructible (destroying them causes the floor to keep the
gravestone description).

--------------------------------------------------------------------------------
3ab3508d01 | Michael Gagno | 2012-01-20 18:45:27 -0800

Change how the silver wall and golden statue features are described in 
evilmike_holy_pan.
These are now set for the whole level instead of using portal_desc. Since
it's an encompass vault, there's no problem here.

--------------------------------------------------------------------------------
45e0e05758 | Michael Gagno | 2012-01-20 18:42:01 -0800

Fix floor descriptions in wizard labs.
These had custom descriptions for floors but weren't displaying them (should
have been using "floor" rather than "Floor"). This also removes an unused
line.

--------------------------------------------------------------------------------
d41493b8f3 | Adam Borowski | 2012-01-20 22:42:38 +0100

Disable sqlite locking on Mac OS X (GreatZebu).
This should actually be safe in our case since we do our own redundant
locking, and never write to the database except for the initial cache build.

This can bite us in the future if we ever use sqlite for some non-readonly
purpose, though.

--------------------------------------------------------------------------------
93bfe0f3ab | Adam Borowski | 2012-01-20 22:22:34 +0100

Mention that Mark 4/Stack 5 don't work on marked decks.

--------------------------------------------------------------------------------
c362ab351f | Raphael Langella | 2012-01-20 20:54:06 +0100

Make sure at least one skill is enabled when a skill turns untrainable.

--------------------------------------------------------------------------------
ac963a9d30 | elliptic | 2012-01-20 01:29:06 -0500

Add commented-out autofight_stop to init.txt.

--------------------------------------------------------------------------------
9f10547b7d | elliptic | 2012-01-20 01:29:06 -0500

Merge hit_closest() and hit_adjacent().

--------------------------------------------------------------------------------
884132b5cd | Michael Gagno | 2012-01-18 21:22:25 -0800

Fix evilmike_abyss_rune_tentacle_tunnel.
The rune would be placed on shallow water. The new abyss doesn't like this,
and the rune would wind up getting displaced. The vault now places the rune
on normal floor.

--------------------------------------------------------------------------------
30ea90b442 | Michael Gagno | 2012-01-18 19:53:32 -0800

Fix lemuel_draconian_sentries.
Fixes mantis 5237. The vault was getting the wrong monsters 2/3 of the time.
Looks like it's been this way for several versions, but the vault syntax is
clearly wrong, here.

--------------------------------------------------------------------------------
5daebb03af | Florian Diebold | 2012-01-18 11:05:20 +0100

Make the help menu work in webtiles again.

--------------------------------------------------------------------------------
e6c29e3fd9 | Adam Borowski | 2012-01-18 04:23:41 +0100

Properly clean up gone monsters in the Abyss.
This could cause invalid mid_cache, other monster->foe pointing at someone
innocent, and perhaps more.

--------------------------------------------------------------------------------
6b21642aa4 | Adam Borowski | 2012-01-18 04:00:46 +0100

Paper over the infinite portals upon return from Abyss bug.
Too bad, I won't merge the proper rewrite of this code for 0.10, so this
is an interim kludge.

We'd have to ensure the level is saved properly, including its references
elsewhere, and handle the level_type overrides.  Thus, for now, I made
Abyss exits return you to LEVEL_DUNGEON instead of LEVEL_PORTAL_VAULT, like
Lugonu's power does.

--------------------------------------------------------------------------------
76352339c0 | Raphael Langella | 2012-01-18 01:27:51 +0100

Constriction damage formulae (Eronarn).
Let's try something more sensible. Note that this also slighlty boost
monster constriction over time.

--------------------------------------------------------------------------------
e49287130e | Adam Borowski | 2012-01-17 18:37:51 +0100

Actually add the umbra tile...
And yeah, I do test the builds every time :p

--------------------------------------------------------------------------------
2a5bf9577f | elliptic | 2012-01-17 11:00:31 -0500

Make multiplier-type brands do nothing with zero-damage hits (Mantis 5078).
Previously they did 1 damage.

--------------------------------------------------------------------------------
9b783d433b | elliptic | 2012-01-17 11:00:31 -0500

Make autofight abort when held in a net (Mantis 5231).
I can't think of any at the moment, but if there are any situations other than
confusion and nets where pressing v for a reaching weapon or f for a launcher
will fail, then they will cause similar trouble.

--------------------------------------------------------------------------------
eef54198d6 | Adam Borowski | 2012-01-17 15:04:11 +0100

A very lame tile for umbras.
It really should be shifting, like in console.  At least, this one works.

--------------------------------------------------------------------------------
ee20cc89b8 | Adam Borowski | 2012-01-17 15:04:11 +0100

Fix staves of power blocking training.
They can be swapped just fine, so the distortion/vamp-like block makes no
sense, and unlike rings of magical power, you don't even lose the stored mana
if you switch back soon enough.

--------------------------------------------------------------------------------
1e4010dd04 | Raphael Langella | 2012-01-17 00:25:19 +0100

When placing an exclusion on a unique, don't duplicate the annotation.
Only works for new exclusions, it doesn't fix existing ones.
Also, behold C++ elegancy...

--------------------------------------------------------------------------------
bcbd6ec1f1 | elliptic | 2012-01-16 14:58:07 -0500

Colour failure rates based on how likely the spell is to cause a dangerous 
miscast effect.
In the casting and memorization list, "12%" is now coloured one of four colours
based on the chance that casting the spell will cause a severity 2 or 3
miscast. This does not take into account Sif or Kiku's protection or penance.

The cutoff points are currently at 0.001, 0.005, and 0.025, and the colours
used are lightgrey, yellow, lightred, and red.

--------------------------------------------------------------------------------
a77a15b234 | elliptic | 2012-01-16 11:09:43 -0500

Stop Vehumet's MP cost reduction from weakening miscasts.

--------------------------------------------------------------------------------
03354743c2 | elliptic | 2012-01-16 10:39:35 -0500

Fix minor errors in the spell failure rate calculation.

--------------------------------------------------------------------------------
16a452402c | Michael Gagno | 2012-01-15 20:47:21 -0800

Make the strange machine in Tukima's Studio indestructible.
It was already immune to LRD and Disintigration, but Shatter was left out.
This is to prevent weird problems from arising if you destroy it.

--------------------------------------------------------------------------------
1f6ec78ca4 | Michael Gagno | 2012-01-15 17:56:08 -0800

Graveyard serial vault for early-mid D. (dk)
Adds a a couple of small graveyard areas with undead monsters.

--------------------------------------------------------------------------------
49ef2a3699 | Michael Gagno | 2012-01-15 17:05:41 -0800

Six simple garden themed entry vaults. (Tarquinn)

--------------------------------------------------------------------------------
45fed9b393 | Adam Borowski | 2012-01-16 01:38:48 +0100

Mention massive tile changes in the changelog.
Some lesser changes might be worth inclusion as well, like all portal
entrances having a tile, but eight branches getting complete re-tiling
is big.

--------------------------------------------------------------------------------
1c914f951f | Adam Borowski | 2012-01-16 01:38:48 +0100

Drop the code for use-iding lanterns of shadows.

--------------------------------------------------------------------------------
52627b2d49 | Adam Borowski | 2012-01-16 01:38:48 +0100

Initialize hell_branch.
If unset, it causes a crash if you go there in wizmode.

--------------------------------------------------------------------------------
fdcb37430d | Michael Gagno | 2012-01-15 13:33:43 -0800

Increase Octopode monster AC to 1.

--------------------------------------------------------------------------------
0477d29274 | Adam Borowski | 2012-01-15 21:03:27 +0100

Don't trap the player in sewer_co_cracked_pipes

--------------------------------------------------------------------------------
496a1a7309 | Michael Gagno | 2012-01-14 20:57:02 -0800

Fewer oklobs in the zotdef parody vault.

--------------------------------------------------------------------------------
efe0edf4a8 | Adam Borowski | 2012-01-15 02:02:46 +0100

Indentation fixes.

--------------------------------------------------------------------------------
74a1312639 | Florian Diebold | 2012-01-15 01:52:48 +0100

Fix #5222: Staff of Dispater and sceptre of Asmodeus use "TODO" tile when 
dropped.
This was actually the case for all unrandarts, since item.special
wasn't copied into the item info when they were unidentified.

--------------------------------------------------------------------------------
4e1f00833a | Florian Diebold | 2012-01-15 01:52:48 +0100

Fix the spellbook reading menu in webtiles.

--------------------------------------------------------------------------------
cea76b6816 | Chris Campbell | 2012-01-15 00:44:37 +0000

Don't let Asmodeus summons drop items

--------------------------------------------------------------------------------
e37ea52216 | Shayne Halvorson | 2012-01-15 00:44:36 +0000

New Ds mutation: Augmentation

--------------------------------------------------------------------------------
dbbf23ffb1 | Michael Gagno | 2012-01-14 16:07:18 -0800

Give Deep Dwarf Artificers (the monster) wands instead of rods of striking.
They can still rarely get a random rod, but most will have wands.
Usually low-tier attack wands, since this monster fills the role of a weak
ranged attacker, and can show up in a fairly early vault.

This also reverts the change that introduced an asymmetry with rods of
striking. It's back to 1d8 now for players and monsters. It's probably worth
just removing rods of striking at this point.

--------------------------------------------------------------------------------
5397891c71 | Michael Gagno | 2012-01-14 16:07:17 -0800

Remove some unneeded lines.

--------------------------------------------------------------------------------
7ba95e0d8a | Adam Borowski | 2012-01-14 23:59:42 +0100

Fix the Ignacio in Zotdef crash.
The Pan wave selected monsters by glyph, and there's an assertion elsewhere
as uniques should be placed specially.

--------------------------------------------------------------------------------
5aa7ace1e5 | Adam Borowski | 2012-01-14 22:07:28 +0100

Don't specify loop limits twice in a couple of places.
If they ever got changed, it's easy to go out of sync.

--------------------------------------------------------------------------------
c65e520710 | Adam Borowski | 2012-01-14 21:37:39 +0100

Fix missing enchantments on monster clone or polymorph.
Only Inner Flame had a paranoid check that brought the issue to attention,
but this affected any enchantment -- it'd mysteriously be gone.

--------------------------------------------------------------------------------
cd7266117a | Adam Borowski | 2012-01-14 20:46:19 +0100

Validate every query of the mon_ench cache in debug builds.
It used to be reliable but I caught a case when it's wrong.

--------------------------------------------------------------------------------
c950d94baf | Adam Borowski | 2012-01-14 18:51:54 +0100

Actually call our alarm() on Windows.
There's an implementation of it, yet the call itself was #ifdefed out.

--------------------------------------------------------------------------------
66c1fb35ba | Adam Borowski | 2012-01-14 18:51:54 +0100

A vital fix to equalize dividers in swamp.des

--------------------------------------------------------------------------------
f73ac3f52f | David Lawrence Ramsey | 2012-01-14 11:19:17 -0600

Add changelog entries for new Twisted Resurrection and abomination holiness.

--------------------------------------------------------------------------------
db47f34710 | Michael Gagno | 2012-01-14 08:47:39 -0800

Tweak ragdoll_tomb_raider.
Add an item_pickup triggerer; change wording a little bit; don't let the
vault spawn in Tartarus.

--------------------------------------------------------------------------------
74d6667177 | David Lawrence Ramsey | 2012-01-14 10:37:25 -0600

Make Fedhas hate scrolls of summoning; all abominations are part undead now.

--------------------------------------------------------------------------------
9fc1a7967e | Samuel Bronson | 2012-01-14 01:05:30 -0500

Point out that the mutex usage in _crash_signal_handler() could cause UB.

--------------------------------------------------------------------------------
d4cdc3176b | Samuel Bronson | 2012-01-14 01:05:29 -0500

Don't return column-0 items from player::visible_igrd(); they aren't really 
there...
(Yes, the shop hack is pretty darn kludgey...)

--------------------------------------------------------------------------------
4ff484692a | Michael Gagno | 2012-01-13 19:23:12 -0800

Adjust Swamp ending vault weights.
Nothing big here. The three "standard" endings get weight 4, while the four
"themed" endings get weight 3. This makes each category equally likely.

--------------------------------------------------------------------------------
bf4bf6abcf | Michael Gagno | 2012-01-13 19:23:11 -0800

Demonic swamp ending. (HangedMan)

--------------------------------------------------------------------------------
0c2118a0da | Michael Gagno | 2012-01-13 19:23:10 -0800

Changes to some of HangedMan's vaults. (HangedMan)
This includes getting rid of the "brume".

--------------------------------------------------------------------------------
06432c25ff | Michael Gagno | 2012-01-13 19:23:10 -0800

Five minivaults. (blackcustard)

--------------------------------------------------------------------------------
b9bffccdde | Michael Gagno | 2012-01-13 19:23:09 -0800

Four crumbling vaults. (dk)
When you pick up the item in the middle, a bunch of statues crumble and the
vault slowly fills with shallow water.

--------------------------------------------------------------------------------
1f2afba44f | David Lawrence Ramsey | 2012-01-13 20:43:11 -0600

Fix message wrt how many tentacles are needed for a 2-hander and a shield.
If octopodes use four to wield weapons and four to move, as the manual
states, they'd need five, not nine, to wield the 2-hander.

--------------------------------------------------------------------------------
479d075eaf | Michael Gagno | 2012-01-13 17:18:32 -0800

An elaborate mummy vault. (Ragdoll)
It is an initially empty tomb, with a valuable item in the centre. Pick it
up (or move it) and mummies burst out of the walls to ruin your day. It will
often have the Ring of Vitality. Can contain Khufu or Menkaure, depending on
depth and place.

--------------------------------------------------------------------------------
1177696937 | Raphael Langella | 2012-01-13 23:40:55 +0100

Fix needles of frenzy not turning monsters neutral.

--------------------------------------------------------------------------------
22d70dfe7d | David Lawrence Ramsey | 2012-01-13 13:18:41 -0600

Add comments about crawling corpses/macabre masses' having dual holiness.

--------------------------------------------------------------------------------
a1cbb75441 | David Lawrence Ramsey | 2012-01-13 10:59:30 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
ad7626de1c | David Lawrence Ramsey | 2012-01-13 10:57:04 -0600

Move and reword one changelog entry.

--------------------------------------------------------------------------------
2a24dec488 | David Lawrence Ramsey | 2012-01-13 10:49:38 -0600

Wrap changelog entry.

--------------------------------------------------------------------------------
3fe31b4f7f | Florian Diebold | 2012-01-13 17:02:10 +0100

Fix curse status being leaked for items on the floor in the tiles inventory 
region.

--------------------------------------------------------------------------------
5e4577265c | David Lawrence Ramsey | 2012-01-12 23:58:05 -0600

Add spacing fix.

--------------------------------------------------------------------------------
b34015d884 | David Lawrence Ramsey | 2012-01-12 23:57:44 -0600

Add changelog entry for killer bee larva upgrading-through-eating.

--------------------------------------------------------------------------------
42b638e770 | Adam Borowski | 2012-01-13 04:35:58 +0100

XuaXua's icon for constriction.
Somehow, it looks pretty busy and hard to distinguish on a good deal of
monsters I tried it with (first one being orc warlord).  This might be just
my feeling though -- and above all, some tile is better than no tile.

--------------------------------------------------------------------------------
0e20727940 | Adam Borowski | 2012-01-13 04:07:45 +0100

Fix a save incompatibility with 0.9 games.
If you upgrade during or after a fight with Mara, shit happens.

--------------------------------------------------------------------------------
c8eabba285 | Adam Borowski | 2012-01-13 01:49:20 +0100

Blame inner flame damage and clouds on the inner flame's caster.
It was hard-coded to the player, which 1. caused arena to assert-crash, 2.
gave the player penance in the "experimental stone golem" vault.

It may be a good idea to be consistent with spores and give blame (and xp)
to those who set off agentless inner flames, but currently there's no way
to tell apart those cast by a dead hostile caster from those created by
a vault.

--------------------------------------------------------------------------------
a68ba43ecc | Adam Borowski | 2012-01-12 23:11:01 +0100

XuaXua's tiles for Mass Abjuration, modified Abjuration.
The pentagram is yellow to make it differ somehow from actual summons which
look too similar.

--------------------------------------------------------------------------------
250db9e5f5 | Adam Borowski | 2012-01-12 23:11:01 +0100

"include" -> <include> for system headers.
GCC allows both forms, contrary to the standard.

--------------------------------------------------------------------------------
193c3a124c | Adam Borowski | 2012-01-12 23:11:01 +0100

Fix abyssal permaglass conversion.

--------------------------------------------------------------------------------
88d1cf61df | Michael Gagno | 2012-01-12 13:35:09 -0800

Make the spell description screen a bit clearer w/r/t failure rates.
It prints "Fail: x%" now instead of putting the number in parenthesis.

--------------------------------------------------------------------------------
8caa010adc | Michael Gagno | 2012-01-12 13:35:08 -0800

Replace success adjectives with failure rate percentages. (dtsund)
This is slightly modified from the patch submitted here:
https://crawl.develz.org/mantis/view.php?id=5179

The original patch uses fractions instead of percentages, but I found this
to be quite visually cluttered and unhelpful.

After much fretting about the best way to implement this, I settled on
rounding up to 1% if your failure rate is below 1% but above 0. I tried some
alternatives, but I find this way to be the easiest for me to visually parse
at a quick glance at my spell list. If this is unideal, it's very easy to
change.

--------------------------------------------------------------------------------
126d714ca3 | David Lawrence Ramsey | 2012-01-12 15:21:56 -0600

Make _constriction_description() static.

--------------------------------------------------------------------------------
0b5a6e2dea | David Lawrence Ramsey | 2012-01-12 15:20:38 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
85f670b612 | Samuel Bronson | 2012-01-12 12:31:44 -0500

Don't print "That would be overly suicidal." when reach-targetting with no 
visible enemy.
(But *do* print it rather than targetting the player.)

--------------------------------------------------------------------------------
c04e6d2396 | Florian Diebold | 2012-01-12 13:41:00 +0100

Fix a few cases where my last fix broke the identified tile for items (#5205 
among them).

--------------------------------------------------------------------------------
a94e83741c | Adam Borowski | 2012-01-12 13:04:05 +0100

XuaXua's breastly tile.

--------------------------------------------------------------------------------
c248a436a5 | Adam Borowski | 2012-01-12 12:43:24 +0100

One of roctavian's tiles for Ring of the Octopus King.

--------------------------------------------------------------------------------
706f871c6b | Florian Diebold | 2012-01-11 23:43:54 +0100

A hack to align the column titles of the spell menu in webtiles.

--------------------------------------------------------------------------------
410ff27e81 | Florian Diebold | 2012-01-11 20:50:30 +0100

Fix #5204: Unknown wands and potions on ground show as flame wands and potions 
of curing.
The function get_item_info sets the sub_type to 0 if it is unknown (or
rather, leaves it at 0). The problem is that that's a valid item type,
and the tile picking code had no way of knowing for sure if the item
simply had sub_type 0 or was unidentified.

I opted to always add the KNOW_TYPE flag to the item_info when the
type is known. This seems like the cleanest solution and also helps
simplify the tile picking code (which doesn't need to check
you.type_ids anymore).

--------------------------------------------------------------------------------
987e65b6d9 | David Lawrence Ramsey | 2012-01-11 11:18:37 -0600

Fix Mantis 5200.
In the switch statement for ability descriptions in the output screen,
some of them were missing breaks: vampires (erroneously leading to deep
dwarf abilities) and ghouls (erroneously leading to tengu abilities).

--------------------------------------------------------------------------------
44fcce8fb6 | Florian Diebold | 2012-01-11 15:52:25 +0100

Fix #5201 (the ?-mark for multiple items in tiles had gone missing).
This was another victim of the tile picking refactoring. The problem
was that tile_place_item tested if there were more items by checking
item.link, which doesn't work for an item from a map_cell.

While I was at it, I also removed a few outdated comments and made the
tile_place_* functions static.

--------------------------------------------------------------------------------
7fc31a89f9 | David Lawrence Ramsey | 2012-01-11 00:39:47 -0600

Comment fix.

--------------------------------------------------------------------------------
1ec1dd9281 | David Lawrence Ramsey | 2012-01-11 00:36:43 -0600

Add formatting fix.

--------------------------------------------------------------------------------
14b424d95f | David Lawrence Ramsey | 2012-01-11 00:36:11 -0600

Fix spelling.

--------------------------------------------------------------------------------
6328f89960 | David Lawrence Ramsey | 2012-01-11 00:24:37 -0600

Fix zombie naming for the Enchantress, a la the Serpent of Hell.

--------------------------------------------------------------------------------
7ffa5486b2 | David Lawrence Ramsey | 2012-01-11 00:11:08 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
b9acd1391e | David Lawrence Ramsey | 2012-01-10 21:18:19 -0600

Fix Mantis 5194: Players in lich and statue forms retain extra balance in water.
Thos forms may change player physiology, but not size.

--------------------------------------------------------------------------------
54f1c43818 | David Lawrence Ramsey | 2012-01-10 21:04:56 -0600

Remove redundant changelog entry.

--------------------------------------------------------------------------------
2708460324 | Michael Gagno | 2012-01-10 14:05:04 -0800

Fix minmay_brainsmasher.

--------------------------------------------------------------------------------
1e8ff2ecb1 | Adam Borowski | 2012-01-10 15:59:18 +0100

List the Shuffle card in character notes.

--------------------------------------------------------------------------------
520ab7ed4e | Adam Borowski | 2012-01-10 15:17:33 +0100

Nemelex: reduce ATTR_CARD_COUNTDOWN, don't expire it with time.
It used to be set to 10 upon receiving a deck, and reduced to 0:
* by waiting 400.0 time
* by sacrificing 8000 gold worth of junk (item >800 counts as 800)
* by drawing 21 unmarked cards or finishing decks (decks with any
  marked cards are worth less)
(or a combination; all values are random)

This commit halves the initial value.

It's probably redundant with gift_timeout now; not merging these two so
close to branching though.

--------------------------------------------------------------------------------
9c6705df91 | elliptic | 2012-01-10 00:07:35 -0500

Improve ability usage tracking.
Now each ability is tracked individually.

--------------------------------------------------------------------------------
e0921878ce | Michael Gagno | 2012-01-09 19:36:45 -0800

Golden statue tiles for the holy Pan level. (roctavian)

--------------------------------------------------------------------------------
cdb4253319 | Florian Diebold | 2012-01-10 02:52:43 +0100

Fix #5111: Items under a plant aren't indicated [in tiles].
The problem was that tile picking happened concurrently to the show
update, i.e. while the map cell was being built. This meant that when
placing the plant tile, the item wasn't yet in map_knowledge, so no
indicator was added.

I've refactored the code so that all tile picking happens at the end
of show_update_at. I fear this may lead to new bugs, but the
alternative (going back to directly accessing igrd) would have been
hacky and would likely have caused new (if small) information leaks.

--------------------------------------------------------------------------------
76a9179fa4 | Michael Gagno | 2012-01-09 16:36:49 -0800

Don't block 'a'bilities from having Perfect success rates.
They were previously capped at the high end of Excellent, for no apparent
reason. A couple of abilities were allowed to reach Perfect (mostly ones
that start that way). The blink mutation was also special cased to be
able to reach this level, along with Nemelex's Draw One.

As for the rest, they got capped at a 99.9% success rate, which is high
enough that it has almost no tactical effect. The main effect is obscuring
things for the player, by not letting them know when their ability success
rate has maxed out.

--------------------------------------------------------------------------------
7aba899815 | Michael Gagno | 2012-01-09 16:36:49 -0800

Give Trog's berserk failure = 0 instead of pointlessly calculating it.
It would actually have a lower success rate at piety below 30. Except, you
get the ability at 30 piety, so it would always have the highest possible
success.

--------------------------------------------------------------------------------
32ee2eccaf | elliptic | 2012-01-09 18:27:30 -0500

Milestones for your first time entering Pandemonium and reaching D:14.
Pandemonium uses br.enter, D:14 uses br.mid. The D:14 milestone shouldn't be
announced by bots; its main purpose is to permit tracking the "rune lock"
conduct.

--------------------------------------------------------------------------------
f4729ae69a | elliptic | 2012-01-09 18:27:30 -0500

Tweak milestones and notes for death/banishment/pacification/enslavement.
Previously milestones for pacified monsters happened when the pacified
monster disappeared (i.e. by leaving the level), not when it was
actually pacified. This is now fixed, successfully using Yred's Enslave Soul
on a monster is recorded as well, and all four of these ways of defeating
a monster now give different milestones and notes.

--------------------------------------------------------------------------------
05855ad4a5 | Michael Gagno | 2012-01-09 13:31:27 -0800

A Zot Defense themed vault for Zot.

--------------------------------------------------------------------------------
4a26d77b69 | Michael Gagno | 2012-01-09 13:31:27 -0800

A working version of dk_vehumet_trees.

--------------------------------------------------------------------------------
7bdd2551ce | Michael Gagno | 2012-01-09 13:31:26 -0800

Use yellow wall and lightred floor in Mnoleg's level.
Used to be red/yellow, which was rather similar to Cerebov's red/red. You
don't need colours to identify pan lord levels any more, but it doesn't hurt
to make them different.

--------------------------------------------------------------------------------
58dd54b86e | Michael Gagno | 2012-01-09 13:31:25 -0800

Adjust wording in a Yredelemnul vault.

--------------------------------------------------------------------------------
4a913683e3 | Adam Borowski | 2012-01-09 17:35:57 +0100

If sick, don't keep spamming about end of nausea.

--------------------------------------------------------------------------------
338fd7fa67 | Adam Borowski | 2012-01-09 01:28:23 +0100

Fix tiles compilation, leaving octorings as an ugly "TODO".

--------------------------------------------------------------------------------
00570da3e8 | Adam Borowski | 2012-01-09 00:56:55 +0100

Special-case rings of the Octopus King to get the indefinite article.
Such special cases are ugly but I intent to evict all grammar to a separate
module soon anyway so it's temporary.

--------------------------------------------------------------------------------
6e68a7aaba | Adam Borowski | 2012-01-09 00:51:15 +0100

+MP and +HP are quantitative not qualitative properties.
This matters for Octopus King rings as it's better to have the distinct
properties all sorted first.

--------------------------------------------------------------------------------
792aacee05 | Adam Borowski | 2012-01-09 00:46:46 +0100

Octorings: simplify, write status to saves, &|
Probably should have used FixedBitArray rather than an uint8_t but couldn't
keep myself from simplicity of one-shot comparison in two places :p

--------------------------------------------------------------------------------
a7498ef792 | Eronarn Palazzo | 2012-01-09 00:18:07 +0100

New unrandart: ring of the Octopus King ('coral ring').
This wondrous item always gives +1 AC/EV/STR/INT/DEX, but will also have
one property out of Regen, rF+, rC+, SustAb, Hunger-, Wizardry, MP+, rN+.
Naturally, it's not marked as uneligible for generation until it has been
generated eight times in total.  Collect 'em all!

--------------------------------------------------------------------------------
b91ac5c70c | Adam Borowski | 2012-01-08 23:37:17 +0100

Let kobolds and regeneration recuperate from nausea faster.
Same as sickness.

--------------------------------------------------------------------------------
f506f26082 | Adam Borowski | 2012-01-08 23:24:28 +0100

Highlight constriction messages (jpeg)

--------------------------------------------------------------------------------
00bdefa15e | David Lawrence Ramsey | 2012-01-08 10:07:10 -0600

Mention the Tengu MP increase in the changelog.

--------------------------------------------------------------------------------
008147118d | David Lawrence Ramsey | 2012-01-08 10:00:36 -0600

Fix wording.

--------------------------------------------------------------------------------
8995255f24 | Florian Diebold | 2012-01-08 16:50:10 +0100

Fix w- not working in webtiles.

--------------------------------------------------------------------------------
e764b4680e | Michael Gagno | 2012-01-08 02:07:24 -0800

A fix to dk_vehumet_trees.
This solves the major problem of the vault crashing and should also help the
people who were getting crashes from loading saves with it and revisiting
the level.

--------------------------------------------------------------------------------
59fde6b302 | Michael Gagno | 2012-01-07 19:09:59 -0800

Disable dk_vehumet_trees until a problem can be fixed.
Reported here: https://crawl.develz.org/mantis/view.php?id=5184

--------------------------------------------------------------------------------
b89be0430b | Adam Borowski | 2012-01-08 03:55:23 +0100

Reduce special-casing of hell depth code somewhat.
Also, fix uninitialized starting depth.

This makes an actual difference as absdepth will be one more in proper hells,
but it's not used for anything but item properties on Hell:7.

--------------------------------------------------------------------------------
54db41fcb8 | Adam Borowski | 2012-01-08 03:50:43 +0100

Fix &: crashing.

--------------------------------------------------------------------------------
b0c5c29760 | Florian Diebold | 2012-01-08 02:55:45 +0100

A hybrid variant of the webtiles glyph mode.
This has square cells and shows the tile icons above glyphs. I should
be fixing bugs instead of adding new display modes, but I think this
is an interesting alternative to the other two, and it doesn't really
require much code (most of the changes are just refactoring).

--------------------------------------------------------------------------------
382ce78f7a | Adam Borowski | 2012-01-08 02:48:59 +0100

Update the changelog to 17a00637.

--------------------------------------------------------------------------------
17a00637ca | Adam Borowski | 2012-01-08 02:02:28 +0100

Unconstrict spectral souls when their body dies.

--------------------------------------------------------------------------------
af52d39617 | David Lawrence Ramsey | 2012-01-07 09:07:19 -0600

Fix wording.

--------------------------------------------------------------------------------
60f45a4907 | Michael Gagno | 2012-01-06 23:25:22 -0800

A deep dwarf vault with exploding golems.
This also adds an underscore to "inner flame" in mon-ench.cc, to make it
possible to add this effect to vault monsters.

--------------------------------------------------------------------------------
b555ad1763 | Michael Gagno | 2012-01-06 21:36:46 -0800

Whitespace fix.

--------------------------------------------------------------------------------
8728953e32 | Michael Gagno | 2012-01-06 21:36:46 -0800

Vault where Yredelemnul demands a sacrifice. (dk)

--------------------------------------------------------------------------------
178e27a125 | Michael Gagno | 2012-01-06 21:36:45 -0800

Remove old version of vehumet_trees.

--------------------------------------------------------------------------------
3465111405 | Michael Gagno | 2012-01-06 21:36:44 -0800

Fancy new version of the vehumet_trees vault. (dk)
Vehumet, god of conjurations, summoning, and forest fires.

--------------------------------------------------------------------------------
ee9adb39ad | Raphael Langella | 2012-01-07 01:19:00 +0100

Make it easier to switch between auto and manual skill mode.
The activation state of skills is saved separately. Makes sense since they
are usually used very differently.

--------------------------------------------------------------------------------
fe0275252b | Florian Diebold | 2012-01-06 17:48:56 +0100

Webtiles documentation improvements.

--------------------------------------------------------------------------------
b6b2f6bbc0 | Florian Diebold | 2012-01-06 17:30:58 +0100

Webtiles: Fix the UI being locked after registering.

--------------------------------------------------------------------------------
519a753307 | Florian Diebold | 2012-01-06 14:44:26 +0100

Fix webtiles on new tornado versions.

--------------------------------------------------------------------------------
ab80ff046a | Raphael Langella | 2012-01-06 13:24:09 +0100

Replace _ with spaces in portal vault names in char dumps.
Don't know why spiders nest didn't have an _ while ice_cave did.

--------------------------------------------------------------------------------
b356aa0270 | Adam Borowski | 2012-01-06 09:11:05 +0100

Drop unused description for Hive stairs.

--------------------------------------------------------------------------------
23ffd3f80a | Adam Borowski | 2012-01-06 09:04:50 +0100

Don't show item prices on DYWYPI.
They don't have any effect on score anymore.

--------------------------------------------------------------------------------
24d0710340 | Adam Borowski | 2012-01-06 09:04:50 +0100

Purge unused code for showing item prices in char dumps.

--------------------------------------------------------------------------------
acc1befc0b | Adam Borowski | 2012-01-06 09:04:50 +0100

Mark the horn of Geryon as useless after use.

--------------------------------------------------------------------------------
be0e7bb6e3 | Michael Gagno | 2012-01-05 22:40:02 -0800

Rats in a wall. (dk)

--------------------------------------------------------------------------------
7221dd2551 | Michael Gagno | 2012-01-05 22:40:02 -0800

A trog shrine with Deep Dwarf Berserkers.

--------------------------------------------------------------------------------
23e6b44ac6 | Michael Gagno | 2012-01-05 22:40:01 -0800

Tweak generation of unique Pandemonium lord levels.
Pandemonium tended to "front load" itself with unique levels, with the first
one coming up very early in your visit, and the last one taking quite a
while to show up (usually about 9 levels after the previous one).

This changes it so (a) the chance of a unique level starts low and increases
over time (rather than decreasing), and (b) there's less randomness overall:
an absurdly unlucky player (1 in 1000) might take 65 levels rather than
100. You're likely to start seeing uniques about 10 levels in now. Overall it
still takes an average of 27 levels for all four, so the length of your visit
should be about the same as it was before.

The reason for this change is to give Pandemonium a better sense of
progression and pacing. Unique levels are the closest thing Pan has to
"branch endings", so if anything they should become more common the deeper
you get. Throwing the player into the deep end and then forcing them to go
through 10 easy levels doesn't make much sense.

--------------------------------------------------------------------------------
870c9d4c4f | Adam Borowski | 2012-01-06 06:47:22 +0100

Fix declined elec weapon warning taking a turn.

--------------------------------------------------------------------------------
254014d732 | Adam Borowski | 2012-01-06 06:28:37 +0100

Fix monsters bashing people with cursed bows not marking the bow as cursed.
Contrary to the comment, this is not an information leak.  I did move this
into a more appropriate place, though.

--------------------------------------------------------------------------------
97cd5d75c0 | Raphael Langella | 2012-01-05 22:13:51 +0100

Scale constriction damage with time.
Use the time scaling code which was used for clouds.
Should fix #5168, at least for player constriction. I'm not sure if it's
right for monsters. It doesn't check the actual energy used, just the base
monster speed.
It should bring back anaconda to a more reasonable threat level. It does
raise slightly the damage for nagas.

--------------------------------------------------------------------------------
3abd0b0143 | Raphael Langella | 2012-01-05 22:13:50 +0100

use BASELINE_DELAY instead of magic number.

--------------------------------------------------------------------------------
4febd7ca4b | Samuel Bronson | 2012-01-05 15:15:07 -0500

I also forgot that MAKECMDGOALS might be empty...

--------------------------------------------------------------------------------
762a5dc1a6 | Samuel Bronson | 2012-01-05 15:15:04 -0500

Whoops, I broke the VALID_DEPS computation...

--------------------------------------------------------------------------------
eda3592fd0 | Adam Borowski | 2012-01-05 19:15:18 +0100

Add a comment what VALID_DEPS are for.

--------------------------------------------------------------------------------
13dfca7f5b | Samuel Bronson | 2012-01-05 12:41:11 -0500

Makefile: Reformat the computation of VALID_DEPS for readability.

--------------------------------------------------------------------------------
01f46b9ec1 | Samuel Bronson | 2012-01-05 12:20:51 -0500

Only skip CFLAGS difference check when ALL goals permit this.

--------------------------------------------------------------------------------
9682e57837 | Florian Diebold | 2012-01-05 17:11:58 +0100

Add a link to python-tornado.

--------------------------------------------------------------------------------
d1f35e1b65 | David Lawrence Ramsey | 2012-01-05 09:56:54 -0600

Make ballistomycetes have the same god as the spores that made them.
This should happen for hostile spores created by Fedhas wrath.

--------------------------------------------------------------------------------
ffe01e32ce | David Lawrence Ramsey | 2012-01-05 09:36:49 -0600

Add formatting fix.

--------------------------------------------------------------------------------
2f2ec3a963 | Adam Borowski | 2012-01-05 15:48:50 +0100

Fix two cases of mid_cache out of sync.

--------------------------------------------------------------------------------
b8daaf465e | Adam Borowski | 2012-01-05 15:08:09 +0100

Some more mindexicide.
Also, rename a variable "fmenv" in a few places, it referred to menv[f],
and now only confuses grep.

--------------------------------------------------------------------------------
2db87d6d5c | Adam Borowski | 2012-01-05 14:29:45 +0100

Make high-level monster creation return monster*

--------------------------------------------------------------------------------
2b2b927f74 | Adam Borowski | 2012-01-05 14:29:45 +0100

Make place_monster() return monster*

--------------------------------------------------------------------------------
834bc442d6 | Adam Borowski | 2012-01-05 14:29:45 +0100

Make dgn_place_monster() return monster*
This is what most uses want.  Only left with mindex() is to_respawn[] in the
arena, no idea what it is needed for.

--------------------------------------------------------------------------------
3049357641 | Florian Diebold | 2012-01-05 13:10:26 +0100

Add a bit of documentation for the webtiles server.

--------------------------------------------------------------------------------
a24b71f6ef | Neil Moore | 2012-01-05 01:40:23 -0500

Fix an unreachable corridor in co_window_broadway_c.

--------------------------------------------------------------------------------
9b7a088bb2 | Neil Moore | 2012-01-05 01:40:23 -0500

Display (studied) for active manuals, treat as equipped.
That's supposed to be short for "being studied"; hopefully it won't
lead to confusion.

Manuals are also given the "equipped" prefix so they will be highlighted
in the inventory; and are drawn with the equipped flag in tiles.

--------------------------------------------------------------------------------
818cbaf561 | Neil Moore | 2012-01-05 01:38:45 -0500

Display manual skill in the @ and % screens.
The text is 'studying Foo'; the text for Sage is changed to 'studious
about Foo', to match the messages from gaining the status.

These should probably be changed to distinguish them more, and possibly
for the Sage text to actually use the word "sage" or some variant
thereof.

--------------------------------------------------------------------------------
5ee2d78f0c | Neil Moore | 2012-01-05 01:01:35 -0500

Show manual bonuses with crosstraining.
Use lightgreen to contrast with the green for crosstraining.  Two
crosstraining bonuses plus a manual is a +12 aptitude; display this as
just "12" to fit.  Antitraining plus manual is shown with a lightgreen
skill name and a magenta "-0".

--------------------------------------------------------------------------------
010988d480 | Adam Borowski | 2012-01-05 06:11:45 +0100

A temporary speed-up to actor_by_mid().
It can be done better, but for now, I prefer a simpler solution.  This can
be turned into an efficient no extra memory hash, etc, later.

Also, this is the only non-debug interface so it's trivial to change the
implementation.

--------------------------------------------------------------------------------
bfe88e149a | Adam Borowski | 2012-01-05 06:11:45 +0100

Make constriction queries const non-virtual.

--------------------------------------------------------------------------------
1cf541c3db | Adam Borowski | 2012-01-05 06:11:45 +0100

Get rid of interactions between constriction and translocations.
* It's abusable: have problems teleporting (a randart with -TELE you can't
  easily swap, Abyss, limited means of teleportation, etc)?  Summon a snake,
  aggro it, Teleport Other.  Want to teleport a non-teleportable monster
  (statue, curse skull)?  Same, without the need to aggro.

* Inconsistent with anything else that hampers movement (nets, web traps,
  shallow water, leda).

* If a snake's flesh cannot be teleported through, how come you can blink
  past a row of snakes?  Or teleport through tons of stone?

* An interface nightmare for Op/Na players.  We'd have to implement a way to
  disable constricting -- or you'll die to the first pack of blink frogs you
  can't steamroll.  Another needed command: "let go", if you're surrounded
  and need to run.

* It's another big boost to something already thoroughly overpowered, both
  for players and monsters.  I'd apply this nerf _and_ at least halve the
  damage.

* Snake:5 without stasis: was considered dangerous before; now it's sure
  death if you get teleported into the main vault.  Even if there was no
  extra damage, one of big nagas around you is bound to land a hit the turn
  you kill the previous constrictor.

--------------------------------------------------------------------------------
fd48a9d678 | Adam Borowski | 2012-01-05 06:11:45 +0100

s/(mons_spec)\.mid/$1.type/

--------------------------------------------------------------------------------
ff3529c667 | Adam Borowski | 2012-01-05 06:11:45 +0100

Clean some menv idx / mid confusion.
The word "mid" is used for three things: monster id, indices into the menv
array, monster types.  This removes (some of?) the second.

--------------------------------------------------------------------------------
327270f406 | Neil Moore | 2012-01-04 14:16:29 -0500

Count zotdef games as 10 times as long for scoring purposes.
It was far to easy to hit 100 megapoints.  The average winning score was
in fact 83 megapoints, and would be even higher were it not for the cap.

As kilobyte points out, scoring isn't really relevant for winners, since
the amount of XP you get is mostly based on luck, and rune timing is
fixed.

--------------------------------------------------------------------------------
8bbafaa2a7 | Neil Moore | 2012-01-04 14:16:29 -0500

Redraw the quiver on changing forms.
Fixes #5152.

--------------------------------------------------------------------------------
53f7e9a8b1 | Adam Borowski | 2012-01-04 15:54:47 +0100

Consider .d files stale if .cflags changed as well.
This is done in two ways:
1. actual .cflags contents check
2. timestamp of .cflags, in case a build didn't complete

Note that this commit doesn't fix an identical issue for rltiles, that
directory duplicates the .cflags code.

--------------------------------------------------------------------------------
32258674b9 | Adam Borowski | 2012-01-04 15:10:28 +0100

Depend on %included tile sheets.
If you changed, for example, just dc-item.txt, it resulted in a misbuild
since headers were out of sync (dc-main.txt %includes dc-item.txt).

--------------------------------------------------------------------------------
e8c127a063 | Adam Borowski | 2012-01-04 15:10:28 +0100

Fix build failures from a clean tree.

--------------------------------------------------------------------------------
b8177dac2f | Neil Moore | 2012-01-04 06:18:53 -0500

Ignore player swimming etc for connectivity checks.
The dungeon should not arrange itself to suit the player's abilities.
Besides this general philosophical objection, there are a few actual
bugs caused by this behaviour:
 * Entering a vaults level in bat form (which cannot open doors)
   causes a level generation failure.
 * travel_avoid_terrain = shallow_water can cause vaults to be vetoed.
 * Permanent flight or levitation could allow item shifting to push
   an item (even a critical item) into lava or deep water while trying
   to save it.

Fixes #4722.

--------------------------------------------------------------------------------
ee18ef1544 | David Lawrence Ramsey | 2012-01-03 15:28:56 -0600

Shorten conduct description.

--------------------------------------------------------------------------------
8e5f69c260 | David Lawrence Ramsey | 2012-01-03 15:02:09 -0600

Fix Mantis 5166.
Friendlies that can cast spells that animate the dead will no longer do
so if your god (e.g. Fedhas) prohibits such spells.

--------------------------------------------------------------------------------
0545797f58 | David Lawrence Ramsey | 2012-01-03 10:54:49 -0600

Typo fix.

--------------------------------------------------------------------------------
a629cc6fc1 | Adam Borowski | 2012-01-03 14:46:01 +0100

Deal with missing dependency files.
They were supposed to be present if an compiled object is there, but somehow
this is not always the case.  Thus, if a .d is missing, force a rebuild of
the file it is supposed to describe.

Also, stale dependencies are ignored rather than deleted.

--------------------------------------------------------------------------------
e96f19b77b | Adam Borowski | 2012-01-03 04:46:00 +0100

Cache absdepth0, now that it has to be calculated.
The cached value intentionally is stored in env.absdepth0 rather than
you.absdepth0 to catch attempts to modify it.

--------------------------------------------------------------------------------
405e9b6803 | Adam Borowski | 2012-01-03 04:45:59 +0100

Use branch depth rather than absolute depth as the authoritative one.

--------------------------------------------------------------------------------
29969a4f93 | Adam Borowski | 2012-01-03 04:45:58 +0100

Forbid Abyss/Pan portal mimics in the vault rather than code.

--------------------------------------------------------------------------------
aa2c033f1e | Adam Borowski | 2012-01-03 04:45:58 +0100

Don't explicitely pass absdepth:branch in the dungeon builder.
There's no support for producing maps for a level you're not on, around half
of functions assumed this.

--------------------------------------------------------------------------------
94138b0d3d | Adam Borowski | 2012-01-03 04:37:12 +0100

Fix a crash on demand in mon-info:is()
This really should be indexed by enum names rather than numbers.

--------------------------------------------------------------------------------
dc0762144c | Adam Borowski | 2012-01-03 03:51:18 +0100

Eliminate an almost empty file.

--------------------------------------------------------------------------------
1f6db1c263 | Neil Moore | 2012-01-02 19:20:30 -0500

Avoid placing clouds atop abyssal walls.
This could occur if the wall appeared this turn.  Introduced by a00d525.

--------------------------------------------------------------------------------
de18b64ab1 | Neil Moore | 2012-01-02 14:41:20 -0500

Remove an obsolete comment in sprint{,_mu}.des (st_).
Not only do Sprint maps not need PLACE: D:1, but including it will
break the main game.

--------------------------------------------------------------------------------
238f05407b | Neil Moore | 2012-01-02 10:13:17 -0500

Fix a compile warning (oops).
It is uncouth to use an int to iterate up to a size_t.

--------------------------------------------------------------------------------
ddaf7fc28f | Neil Moore | 2012-01-02 09:18:08 -0500

Actually seed the libc RNG.
Due to an oversight it wasn't being seeded at startup unless -seed
was provided.  It's not used for very much, but it is used for
std::random_shuffle() and, in particular, the god list in
initialise_temples().  As a result, the same gods would get overflow
altars each game (except for the second and subsequent games under
restart_after_game).

--------------------------------------------------------------------------------
3c560f16fd | Adam Borowski | 2012-01-02 12:09:54 +0100

s/color/colour/ in two places.

--------------------------------------------------------------------------------
8fc65ebf49 | Neil Moore | 2012-01-02 03:58:07 -0500

Allow escaping constriction with Bend Space.
It overrode stasis, so it should override this as well.

--------------------------------------------------------------------------------
bee761a0d7 | Neil Moore | 2012-01-02 01:05:15 -0500

Whitespace fix.

--------------------------------------------------------------------------------
afeda715a6 | Neil Moore | 2012-01-02 01:01:54 -0500

Style fix.

--------------------------------------------------------------------------------
a945ecc475 | Michael Gagno | 2012-01-01 21:42:26 -0800

Add a message for random Abyss teleports.
The abyss mostly shifts by gradual morphing, but it will sometimes teleport
you as well (similar to teleportitis). I've added a message for when this
happens. It's part flavour, but it also makes the effect less jarring and
helps it stand apart from the regular morphing effect.

--------------------------------------------------------------------------------
c0c22ddf76 | Neil Moore | 2012-01-01 22:00:06 -0500

Ensure the abyss exit is reachable for AKs.
If there is not a path from the abyss centre to the exit, morph the
abyss until there is.  This assumes that morphing will not remove the
exit; if this is changed, we can add a flag to _abyss_apply_terrain.

--------------------------------------------------------------------------------
b0a32f61b0 | Neil Moore | 2012-01-01 22:00:06 -0500

The abyss is never still.
Make the minimum abyss morph speed 1/5 of the old speed, not zero.

--------------------------------------------------------------------------------
a00d525097 | Neil Moore | 2012-01-01 22:00:05 -0500

Allow digging etc. to work in the abyss.
External terrain modifications such as this worked, but the grid was
replaced on the next tick.  Now, don't change a feature if it would
have been the same last tick.

--------------------------------------------------------------------------------
a8372fa533 | Neil Moore | 2012-01-01 22:00:05 -0500

Make abyss somewhat more open, much less liquid.
Previously a "wall" had a 1/2 chance of being a wall (1/6 each for rock,
stone, and metal) and a 1/2 chance of being a liquid (1/6 each for lava,
deep water, and shallow water).  Change this to 1/3 rock, 1/6 stone,
1/12 metal, 1/12 green crystal, 1/12 lava, 1/12 deep water, 1/6 shallow
water.  Make fewer "walls" to compensate for the decreased openness.

When an old save is loaded, features will change on the next tick
(though obstacles will remain obstacles and floors floors).  There
doesn't seem to be much that can be done about that.

--------------------------------------------------------------------------------
2336e4d9c7 | Neil Moore | 2012-01-01 22:00:05 -0500

Abyssal punctuated equilibrium.
Morphing now happens in "jerks".  During a jerk, the morphing rate is
about three times what it used to be; between jerks, it is nearly zero.
Jerks are around 100--300 turns apart, depending on abyss speed
(200--600 for Cheibriadites), and last for about 1/3 of that time.

For some reason, loading old saves causes some major jerking for a few
turns before reaching the slow initial speed.  I'm not clear why
this is happening.

--------------------------------------------------------------------------------
dc4d527288 | Adam Borowski | 2012-01-02 02:52:13 +0100

Fix compilation in C++11 mode.

--------------------------------------------------------------------------------
499b009cc7 | Adam Borowski | 2012-01-02 02:36:46 +0100

Subtract more of subtractor stuff.

--------------------------------------------------------------------------------
d057b7f39b | Adam Borowski | 2012-01-02 01:49:56 +0100

Schedule a small arithmetic accident for subtractor snakes.
They're not actually removed yet so there's an opportunity for someone to
splat, and unlike actual removal, it's trivial to undo this if a better idea
comes up.

--------------------------------------------------------------------------------
6a1f11f469 | Adam Borowski | 2012-01-02 01:20:06 +0100

Cap Deformed Body to a single level.
Seems like it was a remnant of the times when all mutations were hard-coded
to three levels.

--------------------------------------------------------------------------------
426775942e | Adam Borowski | 2012-01-02 01:20:06 +0100

Allow Fedhasites to sac corpses under friendly clouds.
Since Fedhas protects plants against such clouds anyway, not allowing
toadstools there meant you had to wait until clouds go away, especially
tedious for Ignite Blood demonspawn who will have blood there most of
the time.

--------------------------------------------------------------------------------
c400abe5cd | Adam Borowski | 2012-01-02 01:20:06 +0100

Correct a comment.

--------------------------------------------------------------------------------
9c13ce40eb | Neil Moore | 2012-01-01 12:34:28 -0500

Prevent zotdef summon crashes.
This was supposed to be fixed by aacbd52, which prevented the check
from firing if the monster is on a no_rtele_into tile (such as the
loot squares).  However, there were a few problems:

 1. The zotvault5 loot vaults had three floor cells that were not
    no_rtele_into.  Turn them into permaglass instead.

 2. Zotvault1 and zotvault2 had some loot vaults that were surrounded by
    rock and possibly stone, with one permaglass window).  If you dig
    the rock wall, the resulting floor tiles would not be no_rtele_into,
    so summoning could then cause a crash.  Surround those vaults with
    permarock.

The second issue might not be likely to happen accidentally, but could
be used to cause intentional crashes and "time travelling": if things
are going badly, crash the game and restore the last save.

Fixes: #4830.

--------------------------------------------------------------------------------
93ffa54f8d | Florian Diebold | 2012-01-01 17:40:18 +0100

Hopefully fix #4872 (black tiles in an abyss vault).
The black tiles were caused by tile_flv being empty. I'm not
completely sure as it is hard to reproduce, but I think this happened
because vault_placement::apply_grid() clears the flavour, but then
dungeon_terrain_changed only re-inits it if the feature actually
changed.

--------------------------------------------------------------------------------
e238b959ab | Florian Diebold | 2012-01-01 17:40:18 +0100

Show the tile flavour in the wizmode dungeon tooltip.

--------------------------------------------------------------------------------
3f8632fd04 | Neil Moore | 2012-01-01 08:23:50 -0500

Fix a standards compliance issue.
Per C++11 section 8.5 paragraph 6, a const object cannot be default-
initialised unless it belongs to a class with a user-provided default
constructor.  The opc_* constants are const and belong to a class
without an explicit default constructor.  Therefore, value-initialise
them instead.

Most compilers, including latest gcc, will happily accept this
construct.  However, there was a period during which gcc 4.6 issued a
diagnostic (and, without -fpermissive, an error).  In particular, this
has been reported in gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1, though
it is accepted without warning in gcc (Debian 4.6.1-14) 4.6.1.

--------------------------------------------------------------------------------
780e22fe3a | Adam Borowski | 2012-01-01 05:36:59 +0100

Take away the beak from monster octopodes.
Note that the difficulty of these monsters is not set in stone; they don't
occur anywhere in places they're anything more than a gimmick so if anyone
has a need to change it, anything from kobolds to draconians or even liches
is ok.  Monster octopodes' main purpose is merely show_player_species anyway.

--------------------------------------------------------------------------------
3bfc4a687e | elliptic | 2011-12-31 12:27:14 -0500

Remove beak from octopodes.
Their beak is completely different from a kenku beak and probably no good in
combat, and they don't need it now that they have constriction.

--------------------------------------------------------------------------------
f2220e5e98 | elliptic | 2011-12-31 11:42:23 -0500

Fix errors when trying to generate a randart level 8 book (Mantis 5144).
All level 8 spells are currently in hard books, and thus are ineligible for
most randart books. The generator will now just decrease the level when it
can't find any spells.

Also, tweaked the number of spells in randart fixed level books. Previously
the formula was 5+lev/3 (556667778), which didn't make much sense (higher
level spells are more valuable and there are fewer of them to select from)
and caused some minor issues with never finding enough L9 spells. The new
formula is 555666421.

--------------------------------------------------------------------------------
a8f5869d55 | elliptic | 2011-12-30 23:03:22 -0500

Remove -cTele from six baileys and an ice cave.
Level flags like no_tele_control should be used sparingly, and there wasn't
any flavor-reason why a random subset of the baileys and an ice cave should
have it. cTele is useful for stealing loot in almost any situation, and this
should be addressed on a more general level, not on a vault-by-vault basis.

Making controllable teleports a finite resource by making cTele not work on
teleportitis or a ring of teleportation would help with this. Note also that
cTele targetting changed in 0.9 so that you often need mapping to use it
effectively, and mapping is usually limited as well.

I left no_tele_control in volcano_caves since cTele avoids the main point of
the map, but I think there is probably a better way of doing this... for
instance, the loot and monsters in blocked-off tunnels could be destroyed if
the player is not present in them when the tunnel collapses.

--------------------------------------------------------------------------------
ecb1cff5a3 | Raphael Langella | 2011-12-31 00:12:56 +0100

Properly fix #5122.
e0ee701ef wasn't enough.

--------------------------------------------------------------------------------
8edfbb6050 | Neil Moore | 2011-12-30 16:45:42 -0500

Unspoil the Trog book altar, sort of.

--------------------------------------------------------------------------------
b9f3ef4a07 | Neil Moore | 2011-12-30 15:33:04 -0500

Add a quote for ugly things (HangedMan).

--------------------------------------------------------------------------------
2e2a398d1a | Brendan Hickey | 2011-12-30 14:45:22 -0500

Fixing a RNG error

--------------------------------------------------------------------------------
f703418444 | Neil Moore | 2011-12-30 14:45:22 -0500

Add bmh to the crawl-ref-cia hook.

--------------------------------------------------------------------------------
251e3ede3e | Neil Moore | 2011-12-30 14:40:20 -0500

Fix a duplicate message (Fixes #5142).

--------------------------------------------------------------------------------
993baa891c | Neil Moore | 2011-12-30 16:35:46 +0100

Fix up placeholder stair_info features in LevelInfo::stairs.
The placeholder stair_info, created upon first entering the level, has
stair_info.grid = DNGN_FLOOR.  This prevents syncing with the other
branch exits (which have, for example, grid = DNGN_RETURN_FROM_LAIR),
meaning those exits have an unknown (-1,1) destination.pos instead
of the actual location of the branch entry stairs.

Fix this by setting the stair_info.grid features to the correct values
in correct_stair_list().

Fixes #4084.

--------------------------------------------------------------------------------
f2e7c8c873 | Adam Borowski | 2011-12-30 16:35:22 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
a0ee616779 | Adam Borowski | 2011-12-30 15:36:23 +0100

Make Xom like it when you barely survive being poisoned.

--------------------------------------------------------------------------------
e8e011c291 | Adam Borowski | 2011-12-30 15:30:51 +0100

Slightly optimize.
No need to do a number of checks if you're not poisoned.

--------------------------------------------------------------------------------
1e8623247b | Neil Moore | 2011-12-30 02:14:26 -0500

Don't crash when draconians gain XL 7 and lose skill levels.
The redraw_screen() call was calling get_skill_progress() as part of
determining the player title; but the latter function triggered an
assertion when the skill progress was less than zero.  We shouldn't
redraw until after fixing up skill levels.

--------------------------------------------------------------------------------
ca800851b0 | Neil Moore | 2011-12-29 20:51:21 -0500

Stop constriction in sanctuary.

--------------------------------------------------------------------------------
0520eec6b5 | Neil Moore | 2011-12-29 19:53:44 -0500

Don't use a turn trying to tele/blink when constricted.
Also, change the status information: when you would be prevented from
teleporting, make the "Constr" status light red, add "-Tele", and add a
note to @.

--------------------------------------------------------------------------------
f2fc9fd199 | Neil Moore | 2011-12-29 19:15:57 -0500

Don't land on the monster when coming along for the ride.

--------------------------------------------------------------------------------
91b060302e | Neil Moore | 2011-12-29 17:45:32 -0500

Stop constriction on polymorph and some form changes.
Whenever a monster is polymorphed (including shapechangers), stop
its constricting and being constricted.

Whenever the player changes to a form (other than statue, blade,
appendage, or lich), stop constricting.  If the player changed to a form
larger than the constricting monster, stop being constricted.

For the monster polymorph case, message order isn't quite right:
 The hog loses its grip on you.
 The naga evaporates and reforms as a hog!

--------------------------------------------------------------------------------
8111c562c0 | Neil Moore | 2011-12-29 17:45:32 -0500

Refactor constriction clearing, fix dead constrictions.
Split clear_specific_constrictions() into stop_contricting() and
stop_being_constricted() (and clear_all_constrictions() into
stop_constricting_all() and stop_being_constricted()).  Also,
better distinguish between intentional and accidental loss of
constriction (for messaging purposes).

Try much harder to keep the constrictor's and constrictee's data in
sync.  This fixes a bug where you could still be constricting
DEAD_MONSTER even though all its constrictions were cleared when it
died.

Finally, clear constrictions when changing levels (e.g. banishment).

--------------------------------------------------------------------------------
998156aa3c | elliptic | 2011-12-29 14:45:31 -0500

Let dragonformed players trample again.

--------------------------------------------------------------------------------
fa430f493f | Neil Moore | 2011-12-29 13:53:54 -0500

Avoid an unused variable warning with USE_LOCAL_TILES.
The scroll_y variable in show_map() is set but never actually used in
local tiles mode.  Rather than adding #ifdefs around every place where
it is set, just cast it to void to count as a "use".

--------------------------------------------------------------------------------
a073fa1e80 | Neil Moore | 2011-12-29 13:42:55 -0500

init.txt: contaminated chunks cause nausea now.
Fixes #5139.

--------------------------------------------------------------------------------
9b43b2de28 | Neil Moore | 2011-12-29 13:40:36 -0500

Do not give TSO piety for seeing no-XP monsters.
roderic_crop_circles_entry_large could get you to max piety almost
instantly, as could a kraken with its tentacles and tentacle segments.

Fixes #5141.

--------------------------------------------------------------------------------
eb143a196a | elliptic | 2011-12-29 11:32:15 -0500

Rename "baseattack" to "uc_attack", fix a couple comments.
The old terminology was misleading, since this is just the unarmed aux given
by UC skill.

--------------------------------------------------------------------------------
e510d2bcd3 | elliptic | 2011-12-29 11:18:38 -0500

Fix constriction attacks using UC-specific code.
Previously Nagas would never get an offhand punch, for instance.

--------------------------------------------------------------------------------
3855d30092 | Adam Borowski | 2011-12-29 16:02:08 +0100

Drop -Werror=format-security, ancient compilers can't handle it.
Note that it is enabled by default on most modern distributions so ignoring
this warning isn't really an option.  Nor a good idea.

--------------------------------------------------------------------------------
21d625dd7a | Adam Borowski | 2011-12-29 12:59:16 +0100

Don't rebuild .dsc when only the executable is newer.
This used to be needed when tiles were stored as enums rather than strings,
today versioning is supposed to handle all incompatibilities.

--------------------------------------------------------------------------------
935db01b9d | Michael Gagno | 2011-12-29 02:51:11 -0800

Correct a mis-defined floor tile.

--------------------------------------------------------------------------------
082138512e | Michael Gagno | 2011-12-29 02:42:38 -0800

Changes to lemuel_hellish_altar.
Min depth increased to 8 (from 2), lava thickened so reaching is a bit less
trivial for killing the island (still doable with lev/flight, but it's no
longer "free").

This solves a problem where the vault could be used to power-level early
characters with 0 risk.

--------------------------------------------------------------------------------
0547df333a | Neil Moore | 2011-12-29 02:16:17 -0500

Whitespace fix.

--------------------------------------------------------------------------------
8116a39d45 | Neil Moore | 2011-12-28 22:47:26 -0500

Make catlobes more likely to breathe through allies.
HangedMan wants this for hangedman_abyss_rune_flesh_and_stone.  It also
makes friendly catlobes more likely to breathe through the player, but
that is probably not a big deal since it is usually easy to step aside.

--------------------------------------------------------------------------------
1763a442fe | Neil Moore | 2011-12-28 20:34:13 -0500

Nagas constrict with their entire lower body, not just the tail.

--------------------------------------------------------------------------------
d74c999e13 | Adam Borowski | 2011-12-29 02:07:18 +0100

Don't read the mcache in any case; drop unmarshalling code.
It was read only to be immediately dropped, this would be important if
there'd be any valuable data in the chunk after it but it happens that
there is nothing relevant.

--------------------------------------------------------------------------------
765af0c3a7 | Adam Borowski | 2011-12-29 01:39:27 +0100

Clear mcache on all levels (including restart_after_game).

--------------------------------------------------------------------------------
6f94a5458b | Adam Borowski | 2011-12-29 01:30:27 +0100

Drop mcache on save load even for TAG_MAJOR_VERSION > 32.

--------------------------------------------------------------------------------
cc153de22e | Adam Borowski | 2011-12-29 01:30:27 +0100

Don't re-tile levels that have tile data already (in console).
All saves were considered to be "ancient"; tag_missing_level_tiles() didn't
overwrite custom tiles (merely altering regular ones) so this wasn't obvious
during testing.

--------------------------------------------------------------------------------
085d75f202 | Neil Moore | 2011-12-28 19:08:58 -0500

Add constriction to the A and % screens.

--------------------------------------------------------------------------------
e0ee701efd | Adam Borowski | 2011-12-29 01:05:23 +0100

Re-enable columnise-credits on non-broken platforms.

--------------------------------------------------------------------------------
c110c26c69 | Neil Moore | 2011-12-28 18:43:06 -0500

Allow constriction in some forms (Fixes #5136).
These are the same forms that keep mutations: lich, statue, blade, and
appendage.

--------------------------------------------------------------------------------
7657a9ca8b | Neil Moore | 2011-12-28 18:16:08 -0500

Fix constriction crash on monster swapping etc.
There were some ways to be moved that didn't involve a call to moveto().
Clear nonadjacent constrictions in those cases (and in the case of
monster cloning).

--------------------------------------------------------------------------------
e270302f76 | Neil Moore | 2011-12-28 18:09:35 -0500

Fix a new constriction crash (oops).
We were clearing the wrong constriction in clear_far_constrictions().

--------------------------------------------------------------------------------
4fedd6d63e | Neil Moore | 2011-12-28 17:19:54 -0500

Avoid doubled "along for the ride" messages.
Also, avoid giving both "you release your grip" and "you lose your
grip".  As a side affect, attempting but failing to move (because
of an impassable target, beholding, or fearmongering) no longer
releases constrictions.

--------------------------------------------------------------------------------
9cea761547 | Neil Moore | 2011-12-28 17:19:54 -0500

Do not lose constriction when teleporting.
Add a flag (default true) to actor::move_to_pos(), actor::moveto(), and
move_player_to_grid() indication whether clear_far_constrictions()
should be called.  When teleporting or blinking, pass false as that
flag, pull along constrictors/constrictees, and only then call
clear_far_constrictions().

Eronarn points out that it would be better to use an enum for the type
of motion, rather than the (now two) boolean flags.  I agree, but this
is a much bigger change so I have not done so yet.

It is still possible to get "comes along for the ride x2" if the
teleporter is contricting and constricted by the same actor.

--------------------------------------------------------------------------------
a8af7f392e | Neil Moore | 2011-12-28 17:19:54 -0500

Clear non-adjacent constictions when moved.
This happened for ordinary moves and most translocations already, but
things like the Swap card, trampling, felid death, and wizmode xm/XT
could move players or monsters without clearing constrictions.

Also change the non-adjacency handling in handle_noattack_constrictions()
into an assert, since it should never happen now.

--------------------------------------------------------------------------------
464bc2c33a | Florian Diebold | 2011-12-28 22:38:07 +0100

Fix #5135: Octopodes get unnecessary prompt with one ring.
Also, simplify the code a bit.

--------------------------------------------------------------------------------
2cdada0216 | Florian Diebold | 2011-12-28 21:42:04 +0100

Fix #5133: secret door positions revealed next to walls with redefined tiles.
This was a regression from my tilepick.cc changes. Since the tile
picking code now operates on map_knowledge, it didn't know about the
undetected secret door and thus didn't use the tile override from
adjacent tiles.

This is a bit of a problem with tile_flv, which on the one hand is
player-accessible (parts of it get transmitted to the webtiles client,
for example), but on the other hand could contain "secret" data, like
in this case (maybe the only one at the moment). (Note that this
"secret" data didn't actually get sent to the client, but it could
easily have been if more tile picking logic was on the client side.)

I've opted to fix up tile_flv directly in tile_init_flavour, so that
secret doors take the tile override of their neighbours. Of course,
that causes the problem that the tile override is still there when the
secret door gets turned into an open door, which resulted in an
assert ("non-door tile").

That's why now, only certain tiles are allowed as door overrides; all
others simply do nothing for doors since they are assumed have been
set for undetected secret doors. It also means that you can either
override the appearance of an undetected secret door, or its
appearance after detection, but not both. I don't think that was done
anywhere, but if it was, a more complicated solution might be
necessary.

--------------------------------------------------------------------------------
11e5df1402 | Neil Moore | 2011-12-28 13:02:41 -0500

Use full-body size for constriction purposes.
This puts player nagas on parity with monster nagas.  Previously,
player nagas were considered SIZE_MEDIUM for constriction purposes.

Also, untransformed players attempting to escape constriction were
incorrectly considered even larger than SIZE_HUGE; fix that.  This has
rather significant balance implications for most species (especially
small ones), so the escape formulae should be revisited.

--------------------------------------------------------------------------------
b879844085 | Neil Moore | 2011-12-28 12:52:57 -0500

Merge more duplicated constriction code.
clear_specific_constrictions() and is_constricted() were identical for
players and monsters, so remove them from subclasses and add them to
the actor base class (is_constricted() was already in actor, anyway).

is_constricted_larger() should have been identical; do the same (and
simplify somewhat).

--------------------------------------------------------------------------------
5db6206e8d | Neil Moore | 2011-12-28 12:08:43 -0500

Make two unique vaults transparent.

--------------------------------------------------------------------------------
8936582558 | Adam Borowski | 2011-12-28 16:37:05 +0100

Don't bother with parallel db rebuild on DGAMELAUNCH.
On the servers it shaves merely several seconds per version, and they run
with insanely low ulimits.

--------------------------------------------------------------------------------
c529b78101 | Adam Borowski | 2011-12-28 15:01:00 +0100

Try to handle ulimit -T.

--------------------------------------------------------------------------------
ff5b47536d | Eino Keskitalo | 2011-12-28 14:19:49 +0200

Don't stop displaying tutorial messages from the blue tiles after the first 
time the player steps on them.
It's a natural way to access the messages again, and I don't think mentioning 
Ctrl-P, even a few times, is enough. I didn't spot evidence from the Dungeon 
Olms report about this, but I did consult the KiSS team (the ongoing usability 
project) and they agreed.

This might cause problems if you have to backtrack over tutorial tiles during 
combat (and lose messages), but I'd rather alter the maps.

--------------------------------------------------------------------------------
76c9961f89 | Eino Keskitalo | 2011-12-28 14:19:48 +0200

Fix ice cave feature descriptions.

--------------------------------------------------------------------------------
53cf2937f8 | Eino Keskitalo | 2011-12-28 14:19:48 +0200

Make ice cave difficulty setting its own function.

--------------------------------------------------------------------------------
2e888efb46 | Eino Keskitalo | 2011-12-28 14:19:48 +0200

Fix a few ice cave entry depths.

--------------------------------------------------------------------------------
346dfcfcde | Adam Borowski | 2011-12-28 11:40:42 +0100

Add dk to credits.

--------------------------------------------------------------------------------
43075d9873 | elliptic | 2011-12-28 01:58:07 -0500

Make Dragon Form L7, remove draconian wizardry boost for it.
The spell being single-school is enough of a bonus for draconians (who get a
bit more AC anyway), and the spell was basically never used by non-dracs at L8.

--------------------------------------------------------------------------------
8b90981683 | elliptic | 2011-12-28 01:35:06 -0500

Tweak AC from forms.
AC no longer depends on spell skills for spider, lich, and dragon forms.
Unlike with ice and statue forms, it didn't make much sense that having a
better understanding of Poison Magic would mean that you would have
better armour as a spider (for instance).

For spider and lich forms, this change shouldn't affect balance very much at
all. Dragon Form didn't provide enough AC for the GDR it provides to mean
much and was generally considered weak anyway, so it was buffed, both for
dracs and non-dracs.

Spider: 2 + Poison/6 -> 2
Lich: 3 + Necro/6 -> 6
Dragon (drac): 11 + XL/3 -> 14 + XL/3
Dragon (non-drac): 7 + Fire/3 -> 16

--------------------------------------------------------------------------------
c935fa8ce8 | Neil Moore | 2011-12-28 01:00:12 -0500

Do not do damage when rotting, and always kill at 0 max HP.
Some forms of rotting (AF_ROT, miasma) would already reduce only maxhp,
but others did a point of damage before rotting.  This could result in,
for example, an unrotted ghoul at 1 HP from damage dying to rot.
Furthermore, AF_ROT and miasma could theoretically rot the player to 0
max HP without killing her.

Instead, reduce only max HP when rotting; current HP is reduced only if
it is above the new maximum.  Furthermore, always kill the player if
rotted to zero or fewer max HP, however the rot may have been triggered.

Undead mutation rotting still does damage, since the damage is usually
greater than the rot amount.  Zotdef orb rot is handled specially so as
to mark the monster as the killer.

--------------------------------------------------------------------------------
b42ecd2e3c | Neil Moore | 2011-12-27 23:28:46 -0500

Allow monster attacks to anger monsters.
Prior to UCC mons_attack_mons would fire an ME_WHACK event.  Re-add
that code.

Fixes #5103.

--------------------------------------------------------------------------------
f018c65f64 | Neil Moore | 2011-12-27 22:40:27 -0500

Handle more fake mutations, and suppression, in '%'.
Add entries for merfolk (swift swim), minotaurs (retaliatory headbutt),
ghouls (rotting body), mummies (restore body), vampires (bottle blood),
and deep dwarves (recharge devices).

Display suppression of the same fake mutations as in the 'A' screen.

Small species weapon restrictions and octopodes' 8 rings are still not
mentioned here, despite being on the 'A' screen.  The armour
restrictions of draconians are not distinguished from those of
large/small species.

--------------------------------------------------------------------------------
8fa6b782c1 | Neil Moore | 2011-12-27 21:35:17 -0500

Be more consistent with randart @people_name@.
Weapons would be "of the Fool", "of the King", etc; while jewellery
would be "of Fool", "of King", etc.  Instead, use the former for both.

--------------------------------------------------------------------------------
6bd91421d6 | Adam Borowski | 2011-12-28 03:08:24 +0100

Standardize branch checks to player_in_branch(BRANCH_BEDLAM).

--------------------------------------------------------------------------------
7b3785d077 | Adam Borowski | 2011-12-28 02:43:54 +0100

Merge branch 'master' into portal_branches

--------------------------------------------------------------------------------
c0bbaee3e9 | Neil Moore | 2011-12-27 20:19:45 -0500

Eliminate duplicated symbols.
Objects, even const ones, should not be defined in header files, or
there will be one copy for each source file that included that header.
Move the offending definitions into source files, and replace them
with extern declarations in the headers.

Also, make the opc_* instances const and not static.

--------------------------------------------------------------------------------
efb6b1fd7b | Adam Borowski | 2011-12-28 00:44:33 +0100

Undo mutilation of thread-safety of contrib sqlite.

--------------------------------------------------------------------------------
2e6d101dc1 | Neil Moore | 2011-12-27 18:27:49 -0500

Correct actor::is_constricting().
It was returning true for non-constricting actors, and false for
actors constricting only the monster with mindex 0.

--------------------------------------------------------------------------------
b0276ee3da | Neil Moore | 2011-12-27 18:26:31 -0500

Add a function to convert an mindex to an actor *.

--------------------------------------------------------------------------------
dfd2439166 | Neil Moore | 2011-12-27 17:28:13 -0500

Stop constricting when not adjacent.
This is still done a little late (only when the constrictor tries
constricting again, not as soon as the actors are non-adjacent).

There is no message for this case.  If one of the actors moves before
constriction damage is attempted, there is the normal escape attempt,
and the resulting message.  This should also be cleaned up.

--------------------------------------------------------------------------------
01e2573da3 | Neil Moore | 2011-12-27 16:50:36 -0500

Handle monster visibility in constriction messages.
If the attacker is not visible and is not the player, put the message
in the passive voice.  If neither the attacker nor the defender is
visible or the player, do not print a message at all.

--------------------------------------------------------------------------------
d3dea1f347 | Neil Moore | 2011-12-27 16:30:53 -0500

Merge attack and noattack constriction code.
The messaging for attack constrictions may be somewhat different,
particularly with respect to invisible attackers and defenders.

--------------------------------------------------------------------------------
d3483fa217 | blueDave | 2011-12-27 16:15:23 -0500

Really fix constriction & reaching

--------------------------------------------------------------------------------
5400b4c0fd | blueDave | 2011-12-27 16:15:02 -0500

No constriction when not adjacent
melee_attack.cc now checks on constriction to see if the
attacker and defender are adjacent.  Similar changes may
also be needed in the procs which handle non-attack constrictions.

--------------------------------------------------------------------------------
5ac1dfcd60 | Neil Moore | 2011-12-27 15:59:42 -0500

Merge player/monster noattack constriction code.
Also, properly attribute constriction kills by confused monsters;
and fix a warning when compiling without diagnostics.

--------------------------------------------------------------------------------
381e6db9b3 | Neil Moore | 2011-12-27 15:58:53 -0500

Indentation fixes.

--------------------------------------------------------------------------------
bf89e47072 | Adam Borowski | 2011-12-27 18:54:40 +0100

Make a bunch of uninitialized variables static.
Too bad, .bss is full of improperly initialized objects that should either
be shared or go away.

--------------------------------------------------------------------------------
05f29f41b6 | Adam Borowski | 2011-12-27 18:54:40 +0100

Make most of initialized data static.
All or almost all of .data segment that is not referenced externally should
be done.

--------------------------------------------------------------------------------
24100b94a1 | Steven Noonan | 2011-12-27 18:54:39 +0100

mon-data: eliminate static initialization calls for mon_energy_usage
There is no real justification for having these constants filled in
during the static initialization phase of runtime. These fields are
actually constant, and can be initialized with constants instead.

A future commit will do the same for the mon_resist_def field in the
monsterentry struct.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
289953552f | Adam Borowski | 2011-12-27 15:49:40 +0100

Drop an option aggressive_verify you can't turn off anymore.

--------------------------------------------------------------------------------
21636d1a22 | Adam Borowski | 2011-12-27 15:38:29 +0100

Make private tiledef data static.
Only tile_player_part_count and tile_player_part_start (already the only two
not starting with an underscore) are referenced from outside.

--------------------------------------------------------------------------------
d7ae4d8cee | Adam Borowski | 2011-12-27 15:20:37 +0100

Let Trog and Kiku accept abomination kills again.
This was an omission rather than an intentional change.

The table of accepted kill types (except those unique to a god):

l    KYOVMTBL
u   1  OVM BL
d   1K O MTBL
h    KYO M BL
h/u  KY  M BL
h/s      M BL
l/u  KY VM BL
l/s     VMTBL
u/u     VM BL
u/s 1   VM BL
d/u  K   M BL
d/s 1    MTBL

kills:
l: living
u: undead
d: demon
h: holy
killers:
/u: undead
/s: "servant" (any other ally)

--------------------------------------------------------------------------------
fc68c24150 | Adam Borowski | 2011-12-27 14:54:42 +0100

Drop the display of nets on player dolls.
It was strange that this short-lived effect was singled out while nothing
else is.

--------------------------------------------------------------------------------
efef742368 | Adam Borowski | 2011-12-27 14:54:41 +0100

Don't set tile_num when not needed, fix a tiles-in-console data loss.
Toadstools and Pikel's slaves generated in console games would always use
the same tile upon reloading (what a grave error!).  This leaves player
dolls as the only remaining lossage.

--------------------------------------------------------------------------------
e3fa086cb2 | Adam Borowski | 2011-12-27 14:54:41 +0100

Use a regular elemental colour rather than recolouring hacks for subtractors.
It'd be nice to have a flowing rainbow tile as well.

--------------------------------------------------------------------------------
9f0e7f371c | Adam Borowski | 2011-12-27 14:54:41 +0100

Fix constriction by octopode zombies and octopode uniques.

--------------------------------------------------------------------------------
591cb96488 | Adam Borowski | 2011-12-27 14:54:40 +0100

Make it easier to query species of a zombified monster.

--------------------------------------------------------------------------------
2a30fde08e | Adam Borowski | 2011-12-27 14:54:40 +0100

Fix player::mons_species() claiming almost everyone is human.

--------------------------------------------------------------------------------
d695168d15 | Adam Borowski | 2011-12-27 14:54:40 +0100

Replace a hardcoded constant in an (approximately) million places.

--------------------------------------------------------------------------------
de2de2baa7 | Adam Borowski | 2011-12-27 14:54:39 +0100

Clean compiled Python files on "make clean".

--------------------------------------------------------------------------------
9f37874765 | Adam Borowski | 2011-12-27 14:54:39 +0100

Git ignores for webtiles cruft.

--------------------------------------------------------------------------------
a67883206a | Adam Borowski | 2011-12-27 14:54:38 +0100

Fix makefile hacks that caused incomplete cleans.

--------------------------------------------------------------------------------
14997603d9 | Adam Borowski | 2011-12-27 14:54:38 +0100

Simplify the makefile a bit, remove incorrect comments.
A GLES port would be a small modification of the GL one.

--------------------------------------------------------------------------------
d09eecad6c | Adam Borowski | 2011-12-27 14:54:38 +0100

Disallow polymorphing or derived undead for subtractor snakes.
They look out of place in Crypt, and special attacks shouldn't work.

I also disabled their corpses: it's hard to notice a rare monster has a 0%
corpse drop rate rather than 50%, while animation inexplicably failing is
more jarring.

--------------------------------------------------------------------------------
9ad61aa9b8 | Adam Borowski | 2011-12-27 14:54:20 +0100

Build databases in parallel.
They are disk seek/fsync() bound, so it's a gain even on 1-way systems.
The gain is way smaller than I expected yet non-negligible; the worst case
is Windows playing over SMB which could sometimes be as bad as 115 seconds
with the server on the same idle Ethernet segment.

This improves only db not des; the latter is fsync free though.

--------------------------------------------------------------------------------
a4be4093d3 | Adam Borowski | 2011-12-27 14:54:20 +0100

Fix a race condition in mkdir -p saves/db
This could affect different games starting together on a server as well.

--------------------------------------------------------------------------------
0e9f143427 | Adam Borowski | 2011-12-27 14:54:20 +0100

Threading support.
Since Windows doesn't support pthreads without an external library, I used a
mess of #defines.

Also, some of the #defines are not needed; I copied them from an earlier
project.  Detached threads and cond variables are not used at the moment, if
you feel bad about dormant code we can axe them.

--------------------------------------------------------------------------------
fcc243cf40 | Adam Borowski | 2011-12-27 14:54:19 +0100

Remove crash-d.cc and crash-w.cc, the stubs always were in crash-u.cc

--------------------------------------------------------------------------------
3cfe693034 | Adam Borowski | 2011-12-27 14:54:19 +0100

Properly clean up after rltile build.

--------------------------------------------------------------------------------
77673d15f8 | Adam Borowski | 2011-12-27 14:54:19 +0100

Make pearl dragon armours curseable.
Folks point out the discrepancies between something actively fueled by TSO's
blessing and something obtained by mutilating a holy dragon's corpse.

--------------------------------------------------------------------------------
a9c5b7343d | Adam Borowski | 2011-12-27 14:54:19 +0100

Two more splash screens by Denzi.

--------------------------------------------------------------------------------
29922ff9cb | Samuel Bronson | 2011-12-26 23:43:40 -0500

Enable printf warnings for yet more functions & fix problems identified

--------------------------------------------------------------------------------
fa0910a69b | Michael Gagno | 2011-12-26 19:04:23 -0800

Some vineyard vaults for early D. (dk)

--------------------------------------------------------------------------------
ae15d2e64f | Samuel Bronson | 2011-12-25 20:25:23 -0500

Fix coloured channels && auto-capitalisation in mpr().

--------------------------------------------------------------------------------
37f0476e1a | Samuel Bronson | 2011-12-25 19:42:51 -0500

Hints: While we're here, fix some typos and such.

--------------------------------------------------------------------------------
2b4d304a0c | Samuel Bronson | 2011-12-25 19:37:43 -0500

Hints: Fix a couple of hardcoded references to '\' as the portal glyph.

--------------------------------------------------------------------------------
901dee68fa | Adam Borowski | 2011-12-25 02:20:50 +0100

Nerf lances (ie, Wyrmbane) to base dam 8.

--------------------------------------------------------------------------------
e5d3befffc | Adam Borowski | 2011-12-25 02:12:14 +0100

Unbreak builds with -Wformat-security.
This (together with -Werror=format-security) is Debian's default when
building packages, and for a good reason!  Here, it would crash if a
monster had a '%' in its name (inscribed dancing weapons).

--------------------------------------------------------------------------------
8b03035ec2 | Adam Borowski | 2011-12-25 02:10:07 +0100

Remove constriction from krakens.
It contradicts their current theme, and more importantly, greatly changes
the gameplay of fighting them.  You already had a strong incentive to use
spells/wands instead of melee.

There can be better solutions, but unless someone has a good idea now, let's
postpone this until 0.11.

--------------------------------------------------------------------------------
da62cde8c2 | elliptic | 2011-12-24 13:50:58 -0500

Fix reaching midpoint logic.

--------------------------------------------------------------------------------
073c87c491 | elliptic | 2011-12-23 22:05:53 -0500

Count various types of actions.
This is very similar to the spell usage tracking, but including many other
types of actions in addition: melee, ranged attacks, invocations, evocations,
and using scrolls/potions. I may have forgotten things, but ideally every
active thing of note the player does should be tracked here, at least to
some extent.

To display these statistics in a dump or morgue file, add
    "dump_order += action_counts"
to the .rc file.

The "spell_usage" dump block still works as before, though you.spell_usage
has been subsumed by you.count_action.

--------------------------------------------------------------------------------
7755d6e147 | Adam Borowski | 2011-12-24 03:31:10 +0100

Greatly nerf subtractor snakes, give them their own attack type.
Pwning hellephants and wiping the floor with killer klowns isn't something
you'd expect from a snake.

--------------------------------------------------------------------------------
456a99c6ca | Adam Borowski | 2011-12-24 03:14:14 +0100

Subtractor snakes, to make Zot less sane.
Like klowns and Tiamat, they change colours but at most once per turn.
Attacks currently reuse AF_KLOWN: strong poison, rot, drain XP, fire, cold,
blink, antimagic.  It's tempting to delete at least blink, though.

--------------------------------------------------------------------------------
aca60e9399 | Adam Borowski | 2011-12-24 00:57:47 +0100

Add antimagic to the list of random klown attacks.

--------------------------------------------------------------------------------
4b5f2cf9e9 | Adam Borowski | 2011-12-24 00:43:20 +0100

Put an abandoned shop in hangedman_abyss_mock_shop (HangedMan).
It was supposed to be there, but it didn't then work.

--------------------------------------------------------------------------------
c427f50ca7 | Adam Borowski | 2011-12-24 00:38:23 +0100

A shop that starts empty.

--------------------------------------------------------------------------------
2ae9ab3ee5 | Adam Borowski | 2011-12-24 00:30:27 +0100

Rename the enums for ball pythons and subtracter snakes to match visible names.

--------------------------------------------------------------------------------
28953d432e | Aaron Becker | 2011-12-24 00:21:27 +0100

Update Mac build instructions.

--------------------------------------------------------------------------------
f7fe7b63ec | Adam Borowski | 2011-12-24 00:15:20 +0100

Don't make monster-monster constriction hurt the player.

--------------------------------------------------------------------------------
33745cd6fe | Neil Moore | 2011-12-23 14:04:10 -0500

Include monster/player constriction info in crash dumps.

--------------------------------------------------------------------------------
827aeca06d | Neil Moore | 2011-12-23 11:51:50 -0500

Change hints on gaining Spellcasting 1.
Now that spellcasting skill isn't required for memorising spells, the
"You're starting to get the hang of this magic thing." message is no
longer needed.  Furthermore, change the hints-mode hint to reflect this,
and to mention some of the benefits of Spellcasting skill.

Also, give the hit upon gaining the first level of spellcasting, even if
another magic skill is higher.

--------------------------------------------------------------------------------
4584abda3f | Adam Borowski | 2011-12-23 15:54:41 +0100

Store CREDITS in one column, format into three on packaging or install.
Sorting them on every change made it damn hard to see what was changed in a
given commit.  It was proposed to have the list produced from a source file
where it'd be stored in one column, but this way is just as good but doesn't
require multiple files.

--------------------------------------------------------------------------------
28aefe0a5f | Florian Diebold | 2011-12-23 13:27:15 +0100

Update the credits.
Add ShadyAmish; add evilmike and myself to the devteam; remove SamB
and evilmike from the contributor list (as they're in the devteam).

--------------------------------------------------------------------------------
9bd8075147 | Michael Gagno | 2011-12-22 18:55:38 -0800

A couple of changes to hell ending colours/tiles.
Geh:7 and Coc:7 both give special descriptions for the floor, which weren't
working. This fixes that.

In addition to the custom floor descriptions, custom colours were given to
the floor. This commit extends that to the floor tiles now. They look different
from the rest of the branch, but I don't consider this an inconsistency if
it goes to the trouble of giving it a custom description. Plus, these are
full-level vaults, so they can get away with looking a bit different.

Finally, a few cosmetic changes have been made to evilmike_geh.

--------------------------------------------------------------------------------
5f72702535 | Michael Gagno | 2011-12-22 18:55:37 -0800

Use red stone and metal tiles in Gehenna.

--------------------------------------------------------------------------------
fcd1de627c | Adam Borowski | 2011-12-23 02:20:31 +0100

roctavian's tiles for octopodes: lich, statue, zombie.
Lich is... unconventional, but it's not like we can use a skeleton like for
everyone else.

--------------------------------------------------------------------------------
731226d30c | Adam Borowski | 2011-12-23 01:52:40 +0100

Fix messaging errors on losing constriction.

--------------------------------------------------------------------------------
e3d658f7f3 | Adam Borowski | 2011-12-23 01:52:40 +0100

Remove the undocumented option of wielding whole corpses for Simulacrum.
Both the fail message and spell description mention using flesh only, using
whole corpses is less efficient, and causes interface problems.

--------------------------------------------------------------------------------
ec1d9b801a | Adam Borowski | 2011-12-23 01:52:40 +0100

Fix loading saves with TAG_MAJOR_VERSION != 32.

--------------------------------------------------------------------------------
aed5ea4294 | Michael Gagno | 2011-12-22 16:47:34 -0800

Change the Gehenna floor colour from yellow to brown.
This is in line with the similar change to Tomb recently. Using a yellow
floor makes it hard to see where TSO halos extend to - slightly problematic
in a branch that many people use TSO for.

I've elected to use brown here because it's fairly close to yellow, and is a
better choice than red (the walls are already red).

--------------------------------------------------------------------------------
4950f05227 | Florian Diebold | 2011-12-23 01:19:48 +0100

Make \ in shops work on Webtiles.
To be exact, it worked before, but returning to the shop didn't since
check_item_knowledge called redraw_screen, which closes all menus on
the client side.

--------------------------------------------------------------------------------
c077610c19 | Florian Diebold | 2011-12-23 01:19:48 +0100

Show the shopping interface as a menu in Webtiles.
Ugh, I need to make it use a real Menu sometime.

--------------------------------------------------------------------------------
fb475136b6 | Michael Gagno | 2011-12-22 16:16:51 -0800

Changes to encompass vaults.
These are to remove the need for spoilers. River_Lethe (now renamed
lemuel_river_lethe) and box_level_dp have recieved the majority of the
changes. Both of these vaults are very old, coming from an era where
divinations spells were still available.

--------------------------------------------------------------------------------
3f187cb1b6 | Michael Gagno | 2011-12-22 13:58:12 -0800

Correct an asymmetry in a Pandemonium vault.

--------------------------------------------------------------------------------
1d496cce84 | Michael Gagno | 2011-12-22 13:47:47 -0800

Tweak an abyss vault.
Remove a daeva behind glass, add a pair of cherubim.

--------------------------------------------------------------------------------
b13e43e4fd | Florian Diebold | 2011-12-22 22:45:15 +0100

An octopode transmuter title screen from ShadyAmish.

--------------------------------------------------------------------------------
86664b9388 | elliptic | 2011-12-22 12:56:35 -0500

Fix acquirement making impossibly good slaying rings (rwbarton).
Previously +0,+n rings of slaying would be changed to +1,+n if they came from
acquirement.

--------------------------------------------------------------------------------
3f7bfac203 | Neil Moore | 2011-12-22 10:39:47 -0500

Fix save breakage from the constriction merge.
The new minor version tag was inserted *before* an existing tag, causing
saves with the previous minor tag to fail to load.  This swaps the tags
to the correct order.

This will break saves made from the constriction branch prior to its
merge, but only a few developers would have such saves.

Fixes #5105.

--------------------------------------------------------------------------------
4740bd7e19 | Neil Moore | 2011-12-22 10:34:49 -0500

Make large abominations undead, too (Fixes #5106).

--------------------------------------------------------------------------------
d2e0d57e6d | Neil Moore | 2011-12-22 00:12:55 -0500

Remove some redundant code and unused variable warnings.
Merge melee_attack::handle_{player,monster}_constriction into one
function that handles both cases.

Avoid unread variable warnings when compiling without DEBUG_DIAGNOSTICS.

Also, appropriately attribute constriction kills by confused enemies.

--------------------------------------------------------------------------------
01f4677d27 | elliptic | 2011-12-22 01:03:09 +0100

Fix Useless spells being memorizable, tweak memorization chances.
Previously spells at Useless success (meaning guaranteed miscast) were
still memorizable (with very low chance of success). Trying to memorize such
spells now aborts (without using a turn). Also, to reduce tedium of trying to
memorize a spell at extremely low success rates, the chance of memorization
success is now 1 - 0.9*(failure rate) for any non-Useless spell.

--------------------------------------------------------------------------------
aea11945ae | Chris Campbell | 2011-12-22 01:03:04 +0100

Improve constriction messages, don't leak identity of invisible monsters

--------------------------------------------------------------------------------
53de47d647 | Adam Borowski | 2011-12-22 01:00:54 +0100

Merge branch 'constriction'

--------------------------------------------------------------------------------
570a689e70 | Adam Borowski | 2011-12-22 00:56:50 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
7e8915cbd0 | blueDave | 2011-12-22 00:55:29 +0100

Assert on constricted monster swap,< anaconda bite

--------------------------------------------------------------------------------
3d0db2f9f6 | blueDave | 2011-12-22 00:53:38 +0100

Added / fixed constriction status messages.

--------------------------------------------------------------------------------
5d75d47677 | blueDave | 2011-12-22 00:53:17 +0100

Fix some compiler warnings

--------------------------------------------------------------------------------
9186878ed6 | blueDave | 2011-12-22 00:51:49 +0100

Add constriction status to x CTRL-x @

--------------------------------------------------------------------------------
c7b6430400 | blueDave | 2011-12-22 00:51:44 +0100

Increased ball python size, anaconda gets a bite

--------------------------------------------------------------------------------
2fb5cd46cc | blueDave | 2011-12-22 00:51:31 +0100

Fix monster constricing player

--------------------------------------------------------------------------------
fa486a151f | blueDave | 2011-12-22 00:48:39 +0100

Fix some teleport/blink stuff

--------------------------------------------------------------------------------
be88b18ef1 | blueDave | 2011-12-22 00:48:32 +0100

constrict w/o attack, more transloc effects

--------------------------------------------------------------------------------
427d79ed5a | blueDave | 2011-12-22 00:48:27 +0100

Fix missing spaces in escape messages

--------------------------------------------------------------------------------
2d93ed69ad | blueDave | 2011-12-22 00:47:22 +0100

Tweaks to calculations

--------------------------------------------------------------------------------
7400dddb38 | blueDave | 2011-12-22 00:46:31 +0100

Save compatibility

--------------------------------------------------------------------------------
341645f430 | blueDave | 2011-12-22 00:43:58 +0100

Constriction nearly done

--------------------------------------------------------------------------------
c3b3062d0a | blueDave | 2011-12-22 00:41:23 +0100

constriction - player attacks & some of monster

--------------------------------------------------------------------------------
926a279a91 | blueDave | 2011-12-22 00:40:09 +0100

constriction -- teleport and blink effects

--------------------------------------------------------------------------------
452b982f5a | blueDave | 2011-12-22 00:39:12 +0100

constriction part 3 -- player escapes

--------------------------------------------------------------------------------
567229035b | blueDave | 2011-12-22 00:38:17 +0100

Constriction part 2 -- status and duration

--------------------------------------------------------------------------------
a0dac76920 | blueDave | 2011-12-22 00:36:44 +0100

Constriction part 1 - rename snakes

--------------------------------------------------------------------------------
90b5e0f82c | Adam Borowski | 2011-12-21 20:37:10 +0100

Hush an invalid Clang warning.
The C++ standard explicitely allows interchangeably referring to a class and
struct by either name (C++98 7.1.5.3/3 = C++11 7.1.6.3/3).

Clang instead squeals:
warning: class 'monster_info' was previously declared as a struct 
[-Wmismatched-tags]

--------------------------------------------------------------------------------
36e7733ef6 | Adam Borowski | 2011-12-21 20:37:10 +0100

Decapitalize a couple of unrands.
These don't use proper nouns -- so we can go either with title case or
all-lowercase.

--------------------------------------------------------------------------------
2cf0a246d7 | Adam Borowski | 2011-12-21 20:37:10 +0100

Give Wyrmbane a custom base type (lance).

--------------------------------------------------------------------------------
e6903961c0 | Adam Borowski | 2011-12-21 20:37:10 +0100

Revert "Rename a few artefacts to accomodate the "the " prefix."
It made them sound abysmal, and breaks the very reason for "Lehudib's
crystal spear" to exist.

What you wanted to fix might be slightly awkward, but it was considered to
be good enough for years, and thus is certainly better than reversed names.
(0.9 used "the cursed -1 Lear's chain mail", this commit restores that).

This reverts commit 003f65b5a3bf00f9eb827b457359a19dcac4c590.
This reverts commit e262dd72296f6bc4f2ace00ccb77b7e160c94da8.

--------------------------------------------------------------------------------
3cc008cacf | Adam Borowski | 2011-12-21 20:37:10 +0100

Revert "Makefile: Simplify art-data rules."
It caused the data to be generated twice, racily.
This reverts commit 1b05869182882fc1d6030870374333d1627bde9b.

--------------------------------------------------------------------------------
ecf4f9817b | Adam Borowski | 2011-12-21 20:37:10 +0100

Remove an unused dragon from volcano_bunker.

--------------------------------------------------------------------------------
7efa3892b8 | Michael Gagno | 2011-12-21 11:30:30 -0800

New Dis:7 map (st).

--------------------------------------------------------------------------------
7699f9670d | Chris Campbell | 2011-12-21 18:10:11 +0000

Remove some misleading fake monster spells and use of canned messages

--------------------------------------------------------------------------------
db7808baea | Chris Campbell | 2011-12-21 17:31:10 +0000

Let Vehumet boost Olgreb's Toxic Radiance and Inner Flame
Although OTR doesn't deal direct damage, it seems similarly destructive
to Poisonous Cloud, which gets boosted for being part Conj. Likewise,
Inner Flame is comparable to Delayed Fireball, which also gets boosted.

--------------------------------------------------------------------------------
b44d1828b4 | Chris Campbell | 2011-12-21 17:31:09 +0000

Let Fedhas protect plants from your clouds

--------------------------------------------------------------------------------
bf1390a15b | Neil Moore | 2011-12-20 11:35:30 -0500

Simplify a form check.

--------------------------------------------------------------------------------
2bcbd60bcc | Neil Moore | 2011-12-20 11:26:54 -0500

Correct handling of claws in forms.
you.has_claws(true) should not return true for trolls or felids
transformed into (for example) ice beasts or pigs.  Other parts
(talons, fangs, etc.) already handled this, but claws are special
because Felids don't have the mutation.

Add a comment to melee_attack.cc justifying the one spot that uses
species_has_claws(you.species) rather than you.has_usable_claws().

Also, the 'A' screen display was reversed for felids.  Fixes #5096.

--------------------------------------------------------------------------------
65ab85c470 | David Lawrence Ramsey | 2011-12-20 09:44:16 -0600

Hopefully fix Mantis 5095.
This is a partial revert of a664e83.  Apparently, the placeholders need
to be handled in order for abil_skill() to deal with them properly.

--------------------------------------------------------------------------------
c58b874390 | David Lawrence Ramsey | 2011-12-20 09:40:42 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
afaf0c7869 | David Lawrence Ramsey | 2011-12-20 09:19:44 -0600

Constify.

--------------------------------------------------------------------------------
218e67e1e9 | David Lawrence Ramsey | 2011-12-20 08:22:28 -0600

Increase, never reduce, rPois for undead.
This is modeled after the change in 91711a7.  The special case that
necessitated its always being 1 for undead was the split between demonic
and undead abominations, in which the former had one level of poison
resistance, and this split is no longer in the code.

There are only two odd cases now regarding poison resistance for undead:
vampire mosquitoes and profane servitors.  Due to the previous code, the
former's poison vulnerability was effectively replaced with poison
resistance, and the latter's poison resistance was doubled despite being
a copy of angels' poison resistance.  Both have only one level of poison
resistance now, by virtue of being undead and not due to flags.

--------------------------------------------------------------------------------
0b5ab325ea | David Lawrence Ramsey | 2011-12-20 07:47:27 -0600

Move the checks for MF_FIGHTER and MF_ARCHER into their own functions.
This matches some other flag checks, and is a bit cleaner.

--------------------------------------------------------------------------------
998a30f36c | David Lawrence Ramsey | 2011-12-20 07:12:11 -0600

Fix regression with enslaved souls and the MF_FIGHTER flag.
The MF_FIGHTER flag is the equivalent of M_FIGHTER for individual
monsters, and is applied for enslaved souls where the original monster
has M_FIGHTER, e.g. a soul-enslaved orc warrior will be a spectral orc
with this flag set.  The melee code now properly checks for this again,
instead of checking only for M_FIGHTER on the base type.

--------------------------------------------------------------------------------
9c760baf87 | Neil Moore | 2011-12-20 00:57:34 -0500

Remove redundant SoH resist (HangedMan).
Its Gehenna flavour had both rHellfire and rF+++.  This has no in-game
effect, but is visible in the output of Gretell's 'monster' program.

--------------------------------------------------------------------------------
91711a7da0 | Neil Moore | 2011-12-20 00:57:30 -0500

Increase, never reduce, rRot with MR_RES_ROTTING.
Nonliving creatures, and non-zombie non-'n' undead, are completely
immune to rotting, including Recite's rotting effect (they have no
flesh).  Giving the monster MR_RES_ROTTING would set the resist level
to 1 unconditionally, actually *removing* the immunity to Zin rot.

Instead, make MR_RES_ROTTING increase rotting resistance by 1, so that
for already-resistant types (demons, zombies, 'n', and holies) the
resistance is upgraded to Zin-rot-immunity.  As with most resists,
res_rotting() is still capped at 3, though there is currently no
difference between 3 and 2.

The only affected creature is the Tartarus variant of the Serpent of
Hell.  Remove its extra rotting resistance to compensate (presumably
its flesh is still impure and sloughable); it still has the normal
demon rRot.

--------------------------------------------------------------------------------
25e10cbb4f | David Lawrence Ramsey | 2011-12-19 23:44:59 -0600

Typo fix.

--------------------------------------------------------------------------------
47f8a94577 | David Lawrence Ramsey | 2011-12-19 23:33:22 -0600

Simplify kraken check in mons_attack_spec().

--------------------------------------------------------------------------------
a118662755 | Michael Gagno | 2011-12-19 20:17:59 -0800

Veto the holy pan level if you are with a good god.
This is a cheap solution, but it fixes what I think is a very serious
problem with the vault (and to a large extent, the very concept of a holy
pan level).

Basically, if you are with a good god and have reasonable piety, the level a
total non-threat. Any loot in the level is free loot, and this is bad thing:
TSO and Zin do not need buffs in the extended endgame. Even without loot,
the vault would just be a harmless "setpiece" with 0 actual gameplay. So,
for now, the vault simply will not appear if you're with a good god. Let's
say it's because the lords of Pandemonium will only allow you to enter the
holy level if you're likely to kill everything there.

This commit also tweaks the loot a bit in the level.

--------------------------------------------------------------------------------
89ae88f779 | Michael Gagno | 2011-12-19 20:17:58 -0800

Make the macabre masses in hangedman_macabre_mass hd:2 or hd:3 (random).
They were hd:1 - too low to have much of an effect besides looking cool.

--------------------------------------------------------------------------------
5edc8a43bf | David Lawrence Ramsey | 2011-12-19 21:28:07 -0600

Fix regressions regarding dual-wielding and no-regeneration of undead.
This is a partial revert of 9ebd270; however, per old comments, these
statuses are moved into MB_ instead of being separate variables as
before.  Depending on base type isn't enough, since these two statuses
can be overridden by flags on individual monsters.

Specifically, the MF_TWO_WEAPONS flag allows e.g. zombifying deep elf
blademasters into elf zombies that remember how to dual-wield, despite
the elf base type's not normally being a dual-wielder.  Also, the
MF_NO_REGEN flag allows turning e.g. deep dwarves into spectral things
or ghosts that don't regenerate, despite spectral things' or ghosts'
normally being able to regenerate.

--------------------------------------------------------------------------------
5a4fa6c22b | Michael Gagno | 2011-12-19 19:23:03 -0800

Grate-ify hangedman_macabre_mess.
Yet another vault with harmless things behind glass.

--------------------------------------------------------------------------------
9f5f635f0b | Neil Moore | 2011-12-19 20:13:49 -0500

Do not crash when updated delayed actions in Pan.
In TravelCache::update_da_counters(), use TravelCache::get_level_info()
instead of TravelCache::find_level_info(), so that if there is no level
info for the current level, we create it (rather than dereferencing a
NULL pointer).

To reproduce the crash, do the following:
 1. Go to Pandemonium.
 2. Worship Trog (or any god).
 3. Go to the next level of Pan.
 4. Abandon Trog => crash

--------------------------------------------------------------------------------
17ac64589f | Michael Gagno | 2011-12-19 14:50:26 -0800

Remove the CHANCE: 100% line left in by mistake in the previous commit.
Oops.

--------------------------------------------------------------------------------
ad45530a77 | Michael Gagno | 2011-12-19 14:49:37 -0800

Give a hint in weyrava_lich_vault.

--------------------------------------------------------------------------------
a9e1bca277 | Michael Gagno | 2011-12-19 14:36:55 -0800

Give more hints for lair:8 vault secrets.
Three vaults changed. All of them still use secret doors, but they're easier
to find now.

--------------------------------------------------------------------------------
b204edd26a | Michael Gagno | 2011-12-19 14:27:29 -0800

Fix minmay_lair_oklob_tunnel, de-spoil erik_lair_dragon.
Entrance wasn't along the edge of the map in the oklob one.
As for the dragon map it had a very obscure secret door. It's still rather
obscure but it only hides one gold, anyway.

--------------------------------------------------------------------------------
07631f3cdc | Michael Gagno | 2011-12-19 14:13:24 -0800

Fix erik_lair_boring.
Never got placed due to the layer entrance being cut off.

--------------------------------------------------------------------------------
ad02f93019 | David Lawrence Ramsey | 2011-12-19 11:13:33 -0600

Fix HP scaling in downgrade_zombie_to_skeleton().
The minimum HP is now guaranteed to be 1, so as to not instakill the
monster.

--------------------------------------------------------------------------------
e98f3e1859 | Florian Diebold | 2011-12-19 13:52:25 +0100

Show the highlevel book warning in descriptions in console builds.
It was #ifdef'd out because it previously caused the description to be
too long and disappear completely, but with afe45422, it works now.

--------------------------------------------------------------------------------
04ccb9345a | Florian Diebold | 2011-12-19 13:23:55 +0100

Fix the 0.9 compatibility mode in the Webtiles server.

--------------------------------------------------------------------------------
f82d76d3c7 | Neil Moore | 2011-12-18 22:20:23 -0500

Always include .d files in Makefile (moxian).
Previously they were being generated always, but only included if the
prefix, flags, etc. changed.

Fixes #5075.

--------------------------------------------------------------------------------
0754bb6197 | David Lawrence Ramsey | 2011-12-18 17:48:46 -0600

Properly pluralize "swine" as "swine".

--------------------------------------------------------------------------------
d48ceeeb57 | Michael Gagno | 2011-12-18 15:32:06 -0800

Don't generate bandless shedus in the holy pan level.

--------------------------------------------------------------------------------
17105a68c6 | Michael Gagno | 2011-12-18 15:18:54 -0800

Remove shedu bands from holy zig levels, add other holy monsters.
Monster bands aren't supported by the function used to populate zig levels.
This would cause an error message every time you found a holy pan level,
along with a bunch of shedus that don't heal/resurrect each other. For now,
shedus shouldn't be used in zig levels.

I've also added paladins, phoenixes, and silver stars (rare) to holy zigs,
since the idea is to use the available holy monsters. Holy swines have been
removed (they are no longer needed for variety).

--------------------------------------------------------------------------------
07a1e103d7 | David Lawrence Ramsey | 2011-12-18 16:40:55 -0600

Fix Mantis 5087: Strip channel prefix from monster speech, as is done elsewhere.

--------------------------------------------------------------------------------
a316fb81c7 | Neil Moore | 2011-12-18 14:27:04 -0500

Avoid spurious regeneration of tiledef headers.
tilegen had a bug causing it to think that small (< 1024 byte) files had
changed when they had not.  This resulted in tiledef-dngn.h (and thus
the source files that depended on that) being regenerated even when
nothing had changed.  Whether the bug triggers depends on uninitialised
memory contents, so might or might not have shown up in a given run.

--------------------------------------------------------------------------------
36f99feda7 | Neil Moore | 2011-12-18 13:49:20 -0500

Do not give scale EV penalties when transformed.
The EV penalties now happen only when there is an AC benefit.

--------------------------------------------------------------------------------
01897326c9 | Neil Moore | 2011-12-18 13:30:07 -0500

More mutation-form improvements.
Only display the "*" annotation in the A screen if the player is capable
of changing form (is a vampire with Bat Form, or knows a form-change
spell), or is currently in another form.

Never mark rough black and rugged brown scales as fully suppressed:
the Dex penalty and HP bonus apply regardless of form.

Mark scales on statues as fully suppressed if the mutation level is
not high enough to give any effect other than AC.

--------------------------------------------------------------------------------
08b5070299 | Michael Gagno | 2011-12-17 21:16:22 -0800

Nerf the starting ambush in evilmike_geh.
The starting room no longer has a chance to spawn random enemies (eg
tormentors, hellions) which aren't placed specifically by the vault. Also,
the four fire giants start just outside of your line of sight, instead of
all of them being in view.

This is intended to make the room easier to survive without needing to
resort to stair dancing.

--------------------------------------------------------------------------------
e262dd7229 | David Lawrence Ramsey | 2011-12-17 23:05:52 -0600

Fix Trove references to renamed unrandarts.

--------------------------------------------------------------------------------
1b05869182 | Samuel Bronson | 2011-12-17 23:22:59 -0500

Makefile: Simplify art-data rules.

--------------------------------------------------------------------------------
003f65b5a3 | Samuel Bronson | 2011-12-17 23:22:58 -0500

Rename a few artefacts to accomodate the "the " prefix.
(MAXWELL seems a bit awkward, though.)

--------------------------------------------------------------------------------
8ca712c1ee | David Lawrence Ramsey | 2011-12-17 17:44:32 -0600

Fix indentation.

--------------------------------------------------------------------------------
413837837a | Michael Gagno | 2011-12-17 11:03:39 -0800

A few tweaks to evilmike_holy_pan.
Corrected an asymmetry, coloured the statues properly, and updated the
comment.

--------------------------------------------------------------------------------
c8541a2892 | Neil Moore | 2011-12-17 11:39:41 -0500

Mention msysgit restriction, submodules (galefury).
The build breaks (on the call to windres) when msysgit is installed
in a directory with spaces.  This *looks* like an msys problem rather
than a problem with our Makefile.

Submodules are mentioned in INSTALL.txt; add them to git/quickstart.txt
as well.

--------------------------------------------------------------------------------
58b636d450 | Chris Campbell | 2011-12-17 16:22:55 +0000

Make monsters with rF get steam res like the player, cap both at 3

--------------------------------------------------------------------------------
6aee0a7caf | Neil Moore | 2011-12-17 11:03:22 -0500

Allow encompass vaults in Pan, enable evilmike_holy_pan.
Weight is default for now; maybe it should be higher for testing.

--------------------------------------------------------------------------------
6d5497fb5e | Michael Gagno | 2011-12-16 19:32:05 -0800

De-spoil some minivaults too.
Many of these date from the Divinations era.

Note: there are a couple of minivaults which are tiny (4x4) and hidden by a
secret door. These are small enough that they don't give themselves away...
they blend in well enough that I've left them as they are. I don't think
these ones really count as spoilers in vaults (although one might still
object to them).

--------------------------------------------------------------------------------
398bbadc60 | Michael Gagno | 2011-12-16 19:32:05 -0800

De-spoilerfy some baileys too.
Just small edits here. Most bailey vaults with secret doors don't need any
changes.

--------------------------------------------------------------------------------
d59ac33b59 | Michael Gagno | 2011-12-16 19:32:04 -0800

De-spoilerfy some ossuaries.
Ossuares tend to use secrets fairly responsibly, with good hints given. So,
I've only made two small changes.

--------------------------------------------------------------------------------
e5920fd3da | Michael Gagno | 2011-12-16 19:32:03 -0800

De-spoilerfy some volcano portal vaults.
I believe that secret areas should be discoverable by players without having
to rely on spoilers or dumb luck. I've written about this to some length:
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:vault:secrets

Many volcano vaults place loot in hidden areas with hints that are far too
obscure to be discovered normally. The edits here make the secret areas a
bit more likely to be discovered: secret doors have been moved a bit,
statues/glass have been placed in a few places (used sparingly), and metal
walls have been strategically placed in a few areas.

--------------------------------------------------------------------------------
811ba90c25 | Adam Borowski | 2011-12-17 02:21:54 +0100

Fix the rltile tool for SDL 1.3.
There's more porting to do to get GL things to work, but it's a start.

--------------------------------------------------------------------------------
4375bc79c3 | Adam Borowski | 2011-12-17 02:20:11 +0100

A quote for hell knights.

--------------------------------------------------------------------------------
c0c9b444db | Michael Gagno | 2011-12-16 17:10:21 -0800

Fix daeva behind glass in sprint 1.
More grates.

--------------------------------------------------------------------------------
f8ada84d0e | Michael Gagno | 2011-12-16 14:39:31 -0800

Fix two more vaults broken by the recent glass changes.

--------------------------------------------------------------------------------
fe998c410e | Neil Moore | 2011-12-16 16:50:59 -0500

Add Fedora dependency list (wcunning).

--------------------------------------------------------------------------------
952afcade9 | David Lawrence Ramsey | 2011-12-16 11:30:45 -0600

Reword Wiglaf description a bit.
Specifically, shorten the description of why he's here, simplify the
reason for going after you, and move the latter into another sentence,
as it flows better, even if the result as a whole is a bit longer that
way.

--------------------------------------------------------------------------------
41d17e86c4 | Chris Campbell | 2011-12-16 16:52:16 +0000

Don't mimic staircases placed by vaults
Especially in large or encompass vaults, replacing a staircase because
one of the vault stairs was mimicked can mess up vault layouts
significantly. Only applies to stone staircases - branch stairs should
still be mimickable as before.

--------------------------------------------------------------------------------
72c492bb7e | Chris Campbell | 2011-12-16 16:28:40 +0000

Make one level of player rF give steam resistance too

--------------------------------------------------------------------------------
10e07ed4cf | Adam Borowski | 2011-12-16 11:45:21 +0100

Expand the description of Wiglaf.
An one-dwarf raid to avenge his expelled folks seems to be a fitting task
for a champion of Okawaru.

I left the first sentence intact, as some IRCers defend it religiously.
This causes a stark contrast with my wordy extension -- can someone better
with writing reword it somehow?

--------------------------------------------------------------------------------
80e07c5763 | Adam Borowski | 2011-12-16 11:16:32 +0100

Fix most of data loss of tile information in console games.
All platforms we support in 0.10 allow freely going tiles<->console, loading
or creating a save in console should still keep everything needed to display
tiles intact.

Left to go:
* monsters with multiple tiles
* player dolls

--------------------------------------------------------------------------------
af4a5b1402 | Adam Borowski | 2011-12-16 11:16:24 +0100

Let lua's crawl.is_tiles() know whether the controller plays tiles.
In webtile-enabled builds, tile viewers can watch console games, console
games can watch tiles, etc.  Yet it's only the main player who counts.

--------------------------------------------------------------------------------
30c49c2f3e | Florian Diebold | 2011-12-16 01:53:02 +0100

Webtiles: Allow access to the chat while in menus again.

--------------------------------------------------------------------------------
e3782132eb | Florian Diebold | 2011-12-16 00:06:15 +0100

Make the X level map use the full window in Webtiles, similar to the console.
There are no feature markers like in console though (yet).

--------------------------------------------------------------------------------
afe45422f6 | Neil Moore | 2011-12-15 17:56:37 -0500

Truncate descriptions rather than omitting them.
If it would not fit, print "..." instead of the last visible line; this
line might be overwritten by the toggle message (console), or might
push the toggle message off the screen (tiles).

This should really only happen in FULLDEBUG mode with small terminals.

Fixes #5055.

--------------------------------------------------------------------------------
8b9a73b867 | David Lawrence Ramsey | 2011-12-15 15:58:20 -0600

Give octopodes their own genus instead of the kraken genus.

--------------------------------------------------------------------------------
286219bdf9 | Michael Gagno | 2011-12-15 13:00:54 -0800

Modifications to evilmike_ruin_ashenzari.
Removed the skeleton remains, it wasn't really working to convey the "ruined
temple" theme. I've seen more than one person asking what it's doing there.

Also removed the brown floor colour in console... again, doesn't convey the
theme very well. Tiles keeps the custom floor/walls, since it looks fine
there.

--------------------------------------------------------------------------------
6f303ada91 | elliptic | 2011-12-15 14:29:12 -0500

Tweak scimitars.
This change (+1 dam, -1 acc) differentiates them better from long swords and
gives long blades a more reasonable common option.

--------------------------------------------------------------------------------
2c5bfce81f | Michael Gagno | 2011-12-15 11:12:55 -0800

Buff great maces to 18 damage.
As discussed on irc. This makes them not-identical to battleaxes, and also
brings them back in line with their old status as being slightly better than
battleaxes.

Also, this is a secret ettin buff.

--------------------------------------------------------------------------------
573a5777bf | Michael Gagno | 2011-12-15 09:36:37 -0800

A holy pan level (currently disabled).
It's disabled because encompass vaults don't work in Pan at the moment. Once
that is fixed this vault can be enabled.

This vault might be imbalanced... most of these holy monsters are untested.
This will be a very hard level though, and it will probably need many
adjustments.

--------------------------------------------------------------------------------
8df1153f78 | David Lawrence Ramsey | 2011-12-15 10:42:27 -0600

In _serpent_of_hell_color(), remove redundant breaks, and fix spelling.

--------------------------------------------------------------------------------
34022b0d98 | David Lawrence Ramsey | 2011-12-15 10:36:19 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
6b42b93b19 | Neil Moore | 2011-12-15 10:47:44 -0500

Really unbreak Makefile on Windows.
Mea culpa.  The all: rule, while it should come before other rules, must
come after $(GAME) has been set.

--------------------------------------------------------------------------------
113f6a5888 | Florian Diebold | 2011-12-15 14:58:17 +0100

Add Omndra's fire mage title screen.

--------------------------------------------------------------------------------
4d13d898c8 | Adam Borowski | 2011-12-15 14:07:39 +0100

Forbid small lightcyan aboms, not big ones -- octopodes are 'x'.

--------------------------------------------------------------------------------
e7813fe726 | Florian Diebold | 2011-12-15 13:43:33 +0100

Fix console compilation.
I should check if I've added all changes before pushing...

--------------------------------------------------------------------------------
a0f54f139c | Florian Diebold | 2011-12-15 13:40:00 +0100

Add the cloud override tile to cloud_info in console games, too.

--------------------------------------------------------------------------------
f1b6bbb821 | Florian Diebold | 2011-12-15 13:35:02 +0100

Merge branch 'tiles-monster-info'

--------------------------------------------------------------------------------
ddd98b694e | Michael Gagno | 2011-12-15 04:33:16 -0800

Fix ziggurat_pillar_centre_c.

--------------------------------------------------------------------------------
c5dc6f78f6 | Adam Borowski | 2011-12-15 12:54:15 +0100

Mark potions/rings of invis as non-temp useless only if you're a TSOite.

--------------------------------------------------------------------------------
dbbbbcd452 | Adam Borowski | 2011-12-15 07:40:14 +0100

Stop racial segregation of abominations.
There's no gain in having demonic vs undead ones, and plenty of confusion.
They're now both theme-wise (undead material, demonic control+alterations),
and undead code-wise since MH_UNDEAD|MH_DEMONIC is strictly the same as
MH_UNDEAD currently.

--------------------------------------------------------------------------------
02dd79e013 | Adam Borowski | 2011-12-15 06:55:44 +0100

Fix an inconsistency in Lugonu pet kills.
She accepted kills of all pets except for demons killed by undead.  I don't
see how that's different from undead killed by undead or demons killed by
demons.  Most likely, when she was made to like kills of demons recently
this case has been forgotten.

--------------------------------------------------------------------------------
ba0cc79b95 | David Lawrence Ramsey | 2011-12-14 21:51:45 -0600

Rename a few #include guards to match their associated files.

--------------------------------------------------------------------------------
8648ca73ef | David Lawrence Ramsey | 2011-12-14 21:35:37 -0600

Remove redundant include.

--------------------------------------------------------------------------------
6c038962b7 | Samuel Bronson | 2011-12-14 22:04:08 -0500

Don't re-enter rltiles tree so many times.

--------------------------------------------------------------------------------
392d744905 | Samuel Bronson | 2011-12-14 22:04:06 -0500

Don't rebuild *everything* after regenerating headers.

--------------------------------------------------------------------------------
0b8f7791a4 | David Lawrence Ramsey | 2011-12-14 20:57:30 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
a6caf00343 | Neil Moore | 2011-12-14 21:42:49 -0500

Make undead abominations always lightred.
Having the red-vs-lightred split based on HD was potentially confusing,
and lightred wasn't occurring very often, anyway.

--------------------------------------------------------------------------------
0353fec4ce | Neil Moore | 2011-12-14 20:48:15 -0500

roctavian's tiles for crawlies.
New tiles for crawling corpse, macabre mass, and small abominations.
The new small abomination tile is used for all undead small abominations
and also for some demonic small abominations.

--------------------------------------------------------------------------------
150f846e4b | Neil Moore | 2011-12-14 18:48:59 -0500

Fix "A Mennas." in ?/A
monster_info did not have MB_NAME_THE etc. when initialised from a
monster_type.  Set that info now, based on mons_is_unique(type).

--------------------------------------------------------------------------------
911b6bf380 | Florian Diebold | 2011-12-15 00:29:41 +0100

Unify the mutation menu code somewhat for vampires/non-vampires.
Both now use the same formatted_scroller. Also, the other side of the
vampire mutation menu uses another formatted_scroller.

--------------------------------------------------------------------------------
53986d7889 | Florian Diebold | 2011-12-15 00:02:22 +0100

Remove the Menu(formatted_string) constructor.
With the mutation display, its last use has switched to
formatted_scroller, which seems to be the better tool to just display
a formatted string as a menu.

--------------------------------------------------------------------------------
238df43100 | Neil Moore | 2011-12-14 17:34:41 -0500

Hide 'A' screen footers when unused.
Implemented using some static globals---not ideal, but I didn't
want to change the signature of mutation_name().

Also, do not display the '*' annotations for mummies and ghouls,
as they can never change form.  Probably they should also be hidden
if the player has no form spells memorised (and isn't a vampire
of sufficient level to use bat form).

--------------------------------------------------------------------------------
526a37eb42 | Neil Moore | 2011-12-14 17:34:01 -0500

Unbreak Makefile.
The all: rule needs to be first, or plain 'make' won't actually build
the program.

--------------------------------------------------------------------------------
660a66c471 | Adam Borowski | 2011-12-14 22:10:06 +0100

Make tile enums available in console builds.
The actual data isn't loaded or preserved yet.

--------------------------------------------------------------------------------
ff7caa149e | Adam Borowski | 2011-12-14 22:10:06 +0100

Enable and fix warnings in rltiles.

--------------------------------------------------------------------------------
74e48517d3 | Adam Borowski | 2011-12-14 22:10:06 +0100

Allow running the rltile tool with no #define USE_TILE.
In this case, it will produce enums but no images, avoiding a dependency on
SDL.  Since production of images is very deeply intertwined with rest of
processing, this change is a nasty hack all around, having it process 0x0
dummy images all over.  Doesn't seem to explode, though.

--------------------------------------------------------------------------------
e7bee85ce1 | Adam Borowski | 2011-12-14 19:56:08 +0100

Buff the shillelagh a great deal.
Compared to regular high-end 1-handers, it does roughly similar damage when
used against two non-flyers, less against single opponents, a lot less against
ghostlies; more against large crowds of landlubbers.

--------------------------------------------------------------------------------
dc3ddd63a9 | Neil Moore | 2011-12-14 10:21:56 -0500

Coding style fixes: braces to their own line.
The exceptions are extern "C", multi-line macros, and json.{cc,h}.

--------------------------------------------------------------------------------
cc5fa749cd | Neil Moore | 2011-12-14 10:08:02 -0500

Whitespace fixes.

--------------------------------------------------------------------------------
6948da42db | Florian Diebold | 2011-12-14 15:26:33 +0100

Webtiles: Tell the crawl process if it is being controlled from the web client.
The tiles flag in scorefile entries is set accordingly.

--------------------------------------------------------------------------------
49bbf32969 | Adam Borowski | 2011-12-14 15:08:02 +0100

Get rid of another console vs console-in-webtiles discrepancy.

--------------------------------------------------------------------------------
5f7fb6871b | Adam Borowski | 2011-12-14 14:39:59 +0100

Fail Windows webtiles builds with a descriptive error.
Also, change a few #ifdefs to make it slightly easier to implement that in
the future.

--------------------------------------------------------------------------------
f52f5c1310 | Florian Diebold | 2011-12-14 14:31:34 +0100

Fix a few more console/webtiles discrepancies and USE_TILE where it should be 
USE_TILE_LOCAL.

--------------------------------------------------------------------------------
7da5dc6a3d | Florian Diebold | 2011-12-14 13:43:27 +0100

Fix a few delay() calls being disabled in Webtiles.

--------------------------------------------------------------------------------
740a58486c | Florian Diebold | 2011-12-14 13:37:42 +0100

Fix console bolt drawing with USE_TILE_WEB enabled.

--------------------------------------------------------------------------------
6feda7a9be | Florian Diebold | 2011-12-14 13:04:32 +0100

Fix monster weapons not showing when the player's weapon is melded (#5038).
tilep_equ_weapon checked if the player's weapon is melded even though
it was also used for monster weapons. I also removed redundant checks
for the player's respective equipment slots from the other tilep_equ_*
functions.

--------------------------------------------------------------------------------
d5a93c807e | Adam Borowski | 2011-12-14 10:22:16 +0100

Disable death and delays during fsim.
If you somehow die, fsim would hang on a non-displayed prompt; delays would
make a single run take a week spent in sleep().

Note that fsim is currently completely broken by UCC changes.

--------------------------------------------------------------------------------
81a932ab1f | Adam Borowski | 2011-12-14 10:22:16 +0100

Don't let enslaved soul of Nergalle to use Death's Door.

--------------------------------------------------------------------------------
1bf7e38895 | Neil Moore | 2011-12-14 03:34:20 -0500

Display fake mutation suppression, and fix naga spit poison.
Properly display suppression of most fake mutations in the 'A' screen.
Also fix an incorrect closing tag that caused they grey colour for a
suppressed fake mutations to carry over to subsequent mutations.

Mark breathe poison as form-dependent, even though it has a different
set of allowed forms; special-case it in mutation_activity_level().

Fix the spit poison ability check to match the associated comment:
Nagas should get the ability even when transformed, without needing
the breathe poison upgrade.  Arguably it should be a form-based
mutation for everyone.

Finally, make sure breathe poison is darkgrey when inactive.

The '%' screen still does not display suppression of most fake
mutations (only acid resistance).

--------------------------------------------------------------------------------
ec467cb834 | Neil Moore | 2011-12-14 01:29:09 -0500

Fix excess "the"s more generally.
It is clear from how DESC_BASENAME and DESC_QUALNAME are used that they
should never prefix an article, even for artefacts and named corpses.
Change item_def::name() accordingly.  Also merge the code for named
corpses and artefacts.

Also, revert the previous commit, except for moving one block to a
more logical place.  DESC_THE and DESC_YOUR were too verbose ("the
cursed +7,+7 Singing Sword"), so go back to using DESC_BASENAME now
that it works appropriately.

--------------------------------------------------------------------------------
5028f93cb1 | Neil Moore | 2011-12-14 00:46:53 -0500

Fix doubled articles in artifact weapons speech.
@Your_weapon@ and friends now use DESC_YOUR, DESC_THE, etc. as
appropriate, rather than prefixing "the", "your", etc. to the
DESC_BASENAME.  Note that artefacts (which are currently the only noisy
weapons) will never use "your", but only "the".

Fixes #5050.

--------------------------------------------------------------------------------
6318c25dec | David Lawrence Ramsey | 2011-12-13 22:53:48 -0600

Remove a few more unneeded blank lines, and fix a few comments.

--------------------------------------------------------------------------------
54e01a3680 | David Lawrence Ramsey | 2011-12-13 22:51:15 -0600

Fix apparently misplaced @Your_weapon@.

--------------------------------------------------------------------------------
9e1a77e7e1 | David Lawrence Ramsey | 2011-12-13 22:45:31 -0600

Fix misformatted line.

--------------------------------------------------------------------------------
50612a7041 | David Lawrence Ramsey | 2011-12-13 22:45:30 -0600

Remove unneeded blank lines.

--------------------------------------------------------------------------------
1be08f3805 | David Lawrence Ramsey | 2011-12-13 22:45:30 -0600

Properly use @reflexive@ in a few more places.

--------------------------------------------------------------------------------
2f7fd8bd08 | Neil Moore | 2011-12-13 23:40:04 -0500

Comment fix.

--------------------------------------------------------------------------------
a057076877 | David Lawrence Ramsey | 2011-12-13 22:28:11 -0600

Add spacing fix.

--------------------------------------------------------------------------------
84a3c5b9d4 | Neil Moore | 2011-12-13 23:20:42 -0500

Correct the case of a few speech pronouns.

--------------------------------------------------------------------------------
b0b78c73bc | David Lawrence Ramsey | 2011-12-13 22:12:38 -0600

Remove unneeded blank lines, and one apparently erroneous %%%%.

--------------------------------------------------------------------------------
65244ca795 | David Lawrence Ramsey | 2011-12-13 22:12:38 -0600

Since PRONOUN was changed to PRONOUN_SUBJECTIVE, use the same name elsewhere.
Specifically, in monster speech entries, @Pronoun@ and @pronoun@ are
replaced with @Subjective@ and @subjective@.

--------------------------------------------------------------------------------
75be98b28b | Neil Moore | 2011-12-13 22:46:02 -0500

Avoid "Found one items."
The message could only happen if the item's name was long enough that
the "Found <blah>." message would not fit on the screen.  Fix this by
having say_any() take the singular category name instead of a message
stub, and pluralising the category if necessary.

--------------------------------------------------------------------------------
b9a50c801f | Michael Gagno | 2011-12-13 19:33:02 -0800

Reduce frequency of cloud traps.
Each one was given a chance of 40%, making you likely to get several per
level. The comment in the des file, as well as the commit message for these
traps, indicated that this weight was extra-high for testing purposes.

There aren't any serious bugs left with these and there has been a lot of
gameplay feedback for them. Unfortunately, there was no hint as to what the
"normal" chance for these traps is supposed to be, so I've reduced it to a
chance of 10% for now (still likely to see several per game, but not several
per level).

I have also disabled two problematic cloud traps which have almost no effect
on gameplay.

--------------------------------------------------------------------------------
97e400739d | David Lawrence Ramsey | 2011-12-13 21:25:35 -0600

Block berserk for paralyzed, petrif(ying|ied), and sleeping monsters.
This should fix Mantis 5048.

--------------------------------------------------------------------------------
5c9866e7d0 | David Lawrence Ramsey | 2011-12-13 20:55:16 -0600

Consider queen ants and bees female, and properly use pronouns for the latter.

--------------------------------------------------------------------------------
4f2e4ea451 | David Lawrence Ramsey | 2011-12-13 20:55:16 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
8db3429d24 | Neil Moore | 2011-12-13 21:30:28 -0500

Merge branch 'master' into mutation-forms

--------------------------------------------------------------------------------
c871c3205f | David Lawrence Ramsey | 2011-12-13 20:18:56 -0600

Clean up fedhas_fungal_bloom().
Constify where possible, and increment counters in consistent places.

--------------------------------------------------------------------------------
5ec793c40d | David Lawrence Ramsey | 2011-12-13 20:18:56 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
606724e4fe | Neil Moore | 2011-12-13 20:58:04 -0500

Allow walls to protect rock worms again.
The code was only firing if the rock worm shield-blocked the attack,
which of course isn't very likely.

--------------------------------------------------------------------------------
3bf4d2dca2 | Neil Moore | 2011-12-13 20:10:58 -0500

Add description, improve message, for open sea (Eronarn, Wensley).
Description from Eronarn, new "can't walk there" message from Wensley.

--------------------------------------------------------------------------------
552f289c2d | Neil Moore | 2011-12-13 19:56:52 -0500

Don't ID polearm brands on reaching attacks.
The intent was to identify the reaching brand, but with the polearms
buff, reaching is not necessarily the brand.

Fixes #5042.

--------------------------------------------------------------------------------
d000b4d720 | Neil Moore | 2011-12-13 19:30:45 -0500

Don't confuse the obsolete conjurations book with the current one.
Rename it to "Book of Old Conjurations" so that ?/iBook of conjurations
finds the current book only.

Fixes #5045.

--------------------------------------------------------------------------------
81dea6aead | Neil Moore | 2011-12-13 19:18:34 -0500

Capitalise and add a full stop to item/monster description titles.

--------------------------------------------------------------------------------
2562c6e831 | elliptic | 2011-12-13 19:16:01 -0500

Remove a "magic number" from unarmed attack delay.
Previously unarmed combat reached min delay at 25 skill, meaning that the
benefits of raising UC skill drop off sharply at that point. This change moves
min delay all the way to 27 skill (while keeping min and max delay constant,
so this is a slight UC nerf).

It would of course be good to remove the "magic numbers" for reaching min
delay with weapons as well, but that would be a far larger change.

The formula for bat attack delay was also changed.

--------------------------------------------------------------------------------
50c5e14329 | Neil Moore | 2011-12-13 18:42:17 -0500

Avoid doubled articles on features, and fix descriptions.
If the feature's name begins with the word "some", "a", "an", or "the"
(or uppercase versions), do not add an article.

Add "the" to the name of "open sea", and "endless lava", since those
do not make sense with "a".  Adjust dat/descript/features.txt
accordingly.

Also adjust dat/descript/features.txt to restore the description
text for floor (useless though it may be).

--------------------------------------------------------------------------------
f23f1d5810 | Neil Moore | 2011-12-13 17:57:14 -0500

Merge branch 'master' into mutation-forms

--------------------------------------------------------------------------------
544ce03957 | Neil Moore | 2011-12-13 17:53:38 -0500

Be more careful about marking mutation status.
For one, don't mark a mutation as partially suppressed when your hunger
level is high enough to support its current level (e.g. a level one
mutation for a Satiated vampire).

Secondly, do not mark the mutation status when asking about a specific
mutation level rather than the player's mutation level (level == -1).
This keeps the (())*+ annotations out of the notes list and the output
of the wizmode &] command.

--------------------------------------------------------------------------------
1073b0dc0e | Neil Moore | 2011-12-13 17:36:52 -0500

Display the 'A' screen legend properly for vampires.

--------------------------------------------------------------------------------
cdf1a03f46 | Neil Moore | 2011-12-13 17:01:16 -0500

Mark scales as partially suppressed in statue form.
This necessitates distinguishing partially-active from hunger-based
activity, so add MUTACT_HUNGER and use that for non-physical mutations
on vampires between satiated and very full.

Also add a function to properly format fake mutations that depend on
form.

Note that, for these purposes, "thin skeletal structure" and "distortion
field" do not count as scales (they are fully active in all forms).

--------------------------------------------------------------------------------
cf8115f9c3 | elliptic | 2011-12-13 16:03:35 -0500

Increase the number of offhand punches by 33%.
This compensates for the unarmed aux changes (783cd33) reducing this number in
most cases, which probably wasn't really necessary. Increasing this again is
also intended to help balance unarmed shield usage.

--------------------------------------------------------------------------------
8d5145c052 | Neil Moore | 2011-12-13 16:03:29 -0500

Make scales not provide AC for statues.
They still provide other benefits (and detriments, including EV
penalties).

This is to be consistent with Nagas and Draconians; it is justified by
the scales being transformed into the same stone as everything else.

Only iridescent scales are marked as suppressed in statue form.  It
would be nice to mark the other ones as partially suppressed, but
that will take some more work (since currently "partially suppressed"
just means 0 < p_m_l(mut) < you.mutations[mut]).

--------------------------------------------------------------------------------
05cf157141 | Neil Moore | 2011-12-13 15:41:23 -0500

Use a formatted_scroller for the mutations screen (edlothiol).
A Menu does not allow multiple colours per entry, so we instead use
a formatted_scroller in display_mutations (for non-vampires; vampires
are still treated differently).

Make the '*' marking form-based mutations yellow, and the '+' marking
non-physical vampire mutations lightred.

Also, do not include the legend and "Press '!'..." in chardumps; and
avoid duplicating the draconian AC message.

--------------------------------------------------------------------------------
3327f64a63 | elliptic | 2011-12-13 15:24:28 -0500

Prevent autofight from acting if you are confused.
Since moving randomly is not usually what you want to do when you are suddenly
confused in combat.

--------------------------------------------------------------------------------
5360f35cb1 | elliptic | 2011-12-13 15:24:28 -0500

Tweak shield penalties for unarmed.
Added a random2(2) delay penalty for unarmed + shield, unmitigable by shield
skill. This might make the choice of whether to use a shield with unarmed a
little less clear, though it is only a slight change.

--------------------------------------------------------------------------------
637aa43097 | David Lawrence Ramsey | 2011-12-13 13:48:06 -0600

Adjust monster speed in downgrade_zombie_to_skeleton().
Currently, this has no effect, since all zombified types have the same
speed modifier relative to their base monster, but if that ever changes,
things will now keep working properly.

--------------------------------------------------------------------------------
0b1556c6a1 | David Lawrence Ramsey | 2011-12-13 13:04:28 -0600

Fix Fedhas' turning zombies into skeletons.
monster::upgrade_type() wasn't adjusting their HP, AC or EV properly,
and it really shouldn't have been used anyway, since zombie -> skeleton
is a downgrade.

The new function downgrade_zombie_to_skeleton() handles this now.
mon-place.cc may not be the best place for it, but keeping it there
means that all the zombified stat adjustment functions are in one place.

--------------------------------------------------------------------------------
b7ff298762 | Florian Diebold | 2011-12-13 18:47:23 +0100

Fix broken mlist targetting.

--------------------------------------------------------------------------------
bafccbf6c3 | David Lawrence Ramsey | 2011-12-13 11:03:30 -0600

Add indentation fix.

--------------------------------------------------------------------------------
9ebd270cf6 | Florian Diebold | 2011-12-13 18:00:45 +0100

Don't store and save two_weapons and no_regen in monster_info, since they just 
depend on the monster type.

--------------------------------------------------------------------------------
8c70d9d485 | David Lawrence Ramsey | 2011-12-13 10:50:03 -0600

Remove obsolete comment, as monster::upgrade_type() is used elsewhere now.

--------------------------------------------------------------------------------
9d84733e45 | Neil Moore | 2011-12-13 03:23:19 -0500

Further clean up form/mutation interactions.
Mutations have a new flag, form_based, that indicates whether they
depend on the player's form (and are thus suppressed by most forms).

Antennae, stinger, big wings, eyeballs, acidic bite, deformed, speed,
and slowness are made form-based.

For consistency, yellow draconian rAcid now applies in statue form.

mutation_is_fully_active() becomes mutation_activity_level().  Any
special-case code for mutation-form interactions should go here if
possible.

player_mutation_level() returns the current active level, unless
false is passed as the optional second parameter, in which case
it returns the true mutation level ignoring forms and vampire
thirst.

In the mutation display screen ('A'), mutations are marked with
"(( ))" when fully suppressed and "( )" when partially suppressed;
different colours are also used (as before, except now non-innate
partially suppressed mutations are coloured brown rather than
lightgrey).  Form-based mutations are marked with a '*', and (for
vampires only) non-physical mutations with a '+'.

In the status screen ('%'), fully disabled mutations are surrounded with
parentheses.

Fake mutations still need work; currently only yellow draconian rAcid
and Naga/Draconian AC show the effects of forms.

--------------------------------------------------------------------------------
1243efd587 | Michael Gagno | 2011-12-12 20:54:57 -0800

Rewrite grate traps; add several new ones.
It's now easy to add these to new vaults, and it's possible to have more
than one grate and pressure plate (altough they are all triggered at once).

Keeping these fairly generic looking and hard to identify is a good idea,
otherwise they become unfriendly with autoexplore.

--------------------------------------------------------------------------------
d2e83ec037 | David Lawrence Ramsey | 2011-12-12 22:14:04 -0600

Add comment: What to do about monster Death's Door for enslaved souls?

--------------------------------------------------------------------------------
33f746567c | David Lawrence Ramsey | 2011-12-12 21:58:17 -0600

Clean up the killer bee larva upgrading-through-eating routine.
Use monster::upgrade_type() instead of polymorph, to keep the monster's
stats where applicable and allow a message if it happens out of sight,
and remove apparently doubled message when eating.

--------------------------------------------------------------------------------
3c03a4ff41 | Samuel Bronson | 2011-12-12 22:35:05 -0500

Different message for =tele when player already had teleportitis.
(Not *very* different, but enough to show that teleportitis stacks.)

--------------------------------------------------------------------------------
6a792d9388 | Samuel Bronson | 2011-12-12 22:35:04 -0500

Better handling of nausea ending when player has corpses, but mightn't be hungry

--------------------------------------------------------------------------------
aa25b4c9a2 | Adam Borowski | 2011-12-13 03:44:30 +0100

Don't let Control Undead, Cause Fear and Mass Confusion work through glass.

--------------------------------------------------------------------------------
8f5fe70672 | David Lawrence Ramsey | 2011-12-12 20:07:14 -0600

Remove more doubled articles in some portal vault descriptions.

--------------------------------------------------------------------------------
2cf8a18928 | Adam Borowski | 2011-12-13 01:29:37 +0100

Remove Hive stairs.  Portal vaults don't need separate feature types.

--------------------------------------------------------------------------------
e1b4e1f38f | David Lawrence Ramsey | 2011-12-12 10:03:33 -0600

Update comments on throwable object stats.

--------------------------------------------------------------------------------
09250dda1b | Chris Campbell | 2011-12-12 12:39:59 +0000

Fix % screen display for green scales

--------------------------------------------------------------------------------
c5917b83d4 | David Lawrence Ramsey | 2011-12-11 23:25:58 -0600

Change "gnoll sergeant" name to "gnoll lieutenant" in the testsuite.
This should avoid confusion, Since gnoll sergeants are actual monsters
now.

--------------------------------------------------------------------------------
97c969f11d | David Lawrence Ramsey | 2011-12-11 22:00:45 -0600

Fix sometimes-missing message when a scroll of vorpalise weapon fails.

--------------------------------------------------------------------------------
dba066dcd5 | Florian Diebold | 2011-12-12 01:42:00 +0100

Webtiles: Show tiles in spell menus.

--------------------------------------------------------------------------------
4c9ca6325d | Adam Borowski | 2011-12-11 18:15:05 +0100

Don't apply effects of most brands if the enemy died before.

--------------------------------------------------------------------------------
04b6e9d369 | Adam Borowski | 2011-12-11 17:51:01 +0100

Remove door warnings from xom_monty_hall, comment why they don't work.
Perhaps we should remove the vault outright?  There is no obvious way how
to make the concept work.

--------------------------------------------------------------------------------
7c326d46f5 | Adam Borowski | 2011-12-11 17:46:01 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
c59473b890 | Adam Borowski | 2011-12-11 17:41:34 +0100

An entry vault by nicolae: a kraken feeding on the likes of you.
Pretty spammy, so I've set the weight at 1.

--------------------------------------------------------------------------------
928730edd1 | Adam Borowski | 2011-12-11 17:35:56 +0100

Allow hostiles behind glass at the game start.

--------------------------------------------------------------------------------
e1e8809eb8 | Adam Borowski | 2011-12-11 17:27:30 +0100

Fix mimic opacity for different LOS models.

--------------------------------------------------------------------------------
d09b4f1627 | Adam Borowski | 2011-12-11 17:06:46 +0100

Disambiguate the LOS_SOLID confusion.
Its name suggests it's about line of effect, while in fact it's both effect
and sight.  Thus, I've split its uses into LOS_SOLID and LOS_SOLID_SEE -- the
former is what LOS_SOLID was usually understood to mean, the latter is what it
actually was (being targettable with an arrow/beam).

The difference is: LOS_SOLID_SEE obeys clouds.

The name of the latter is abysmal -- if you have a better idea, please sed.

--------------------------------------------------------------------------------
00c8f8cc5f | Adam Borowski | 2011-12-11 12:37:59 +0100

Unbreak the testsuite.
DESC_CAP_* is no more.

--------------------------------------------------------------------------------
2ede7d6875 | Neil Moore | 2011-12-11 03:50:35 -0500

Prompt about chopping drainable, not just bottleable, corpses
Since can_bottle_blood_from_corpse() checks whether the player has the
bottle ability, it was always returning false for low-level vampires.
Instead, we should give the confirmation prompt if the player could
*either* drain the corpse or bottle it.

The prompt is given for poisonous corpses when the player has rPois.
However, we do not check for whether the player is capable of eating
at all; perhaps we should.

--------------------------------------------------------------------------------
66fc04c8f1 | elliptic | 2011-12-11 02:26:45 -0500

Slightly unbuff halberds and glaives.
It turns out that taking mediocre weapon types and reducing base delay by two
and giving out free reaching leads to rather high-powered weapons,
especially given how common they are... they should still be very usable even
with base delay increased back by one.

--------------------------------------------------------------------------------
059ad17825 | David Lawrence Ramsey | 2011-12-11 00:46:26 -0600

Make the Serpent of Hell drop the appropriate corpse type for its flavour.
This isn't exact, but it's as close as possible.

--------------------------------------------------------------------------------
8712ab06c8 | Michael Gagno | 2011-12-10 20:38:17 -0800

De-spoilerfy a few vaults.
All of these used doors with warnings, with no hint as to what was behind the
doors. There have windows now. The doors still have warnings (to prevent
autoexplore traps).

These changes are in response to the feedback here:
https://crawl.develz.org/mantis/view.php?id=4971

--------------------------------------------------------------------------------
7a2312adcd | David Lawrence Ramsey | 2011-12-10 22:30:51 -0600

Fix capitalization.

--------------------------------------------------------------------------------
99532980ad | Samuel Bronson | 2011-12-10 23:00:06 -0500

Clean up path handling a bit.

--------------------------------------------------------------------------------
4c6c24931f | Samuel Bronson | 2011-12-10 23:00:03 -0500

Don't look at errno unless freopen() actually returns NULL.
This failed on Windows, and POSIX says not to do that, so we never should
have done it in the first place!

--------------------------------------------------------------------------------
4b63a8fcd2 | Samuel Bronson | 2011-12-10 23:00:01 -0500

Windows console: Add a few missing steps to console shutdown

--------------------------------------------------------------------------------
8e847cfab6 | Michael Gagno | 2011-12-10 19:03:30 -0800

Make some of the grates in minmay_eyes undiggable glass again.
As minmay points out, some of these windows need to be undiggable because
otherwise the eyes of devastation will break through them, causing the vault
to eat itself.

--------------------------------------------------------------------------------
c04ee31875 | elliptic | 2011-12-10 22:01:25 -0500

Allow all Elyvilon worshippers to use the lesser heal-other ability.
Even under penance. This solves issues with Elyvilon worshippers potentially
having very few options for gaining piety in certain situations.

--------------------------------------------------------------------------------
bee7f3c213 | David Lawrence Ramsey | 2011-12-10 20:07:49 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
e9c2dd1e48 | Michael Gagno | 2011-12-10 15:44:51 -0800

An evil quicksilver dragon vault.

--------------------------------------------------------------------------------
0bd04a578f | Michael Gagno | 2011-12-10 14:22:36 -0800

Underground beach vault (nicolae).

--------------------------------------------------------------------------------
2060005e71 | Michael Gagno | 2011-12-10 14:05:46 -0800

Additional fixes to fedhas_altar_fruit_tree. (nicolae)

--------------------------------------------------------------------------------
12cc2d61f3 | Michael Gagno | 2011-12-10 13:56:43 -0800

Fix the floor tiles in fedhas_altar_fruit_tree. (nicolae)

--------------------------------------------------------------------------------
361ddcd87c | Neil Moore | 2011-12-10 16:35:13 -0500

Also prompt when electrocution would hit yourself.
Unlike the ally prompt, this one uses received_weapon_warning so it
only happens once per wield.  If you got the prompt and said "yes",
don't prompt about allies; however, if you didn't get the prompt
because you said "yes" earlier, do continue to prompt about allies.

Probably the message should mention allies, too, but the code
is already quite complicated.

--------------------------------------------------------------------------------
b368a4625b | Neil Moore | 2011-12-10 16:03:53 -0500

Add name_nocorpse flag.
The flag causes the mname to be ignored for corpses.  Apply it to a
number of vault creatures such as "hungry kobold" and "terrified
wizard", since those adjectives don't accurately describe the corpse.
Some edge cases are debatable: "febrile human" has name_nocorpse
but "sickly human" does not.

Also apply n_spe to some other vault creatures, so e.g. "greater ghost
moth corpse" doesn't always get "the".

--------------------------------------------------------------------------------
9a1be99c5a | Chris Campbell | 2011-12-10 20:41:54 +0000

Add a status light for Vitalisation

--------------------------------------------------------------------------------
66aa1e41fd | Chris Campbell | 2011-12-10 20:41:53 +0000

Cancel scrying when abandoning Ashenzari

--------------------------------------------------------------------------------
2739c26b5a | Neil Moore | 2011-12-10 15:12:01 -0500

Fix electrocution warnings for fliers/clingers.
Do not warn unless both the defender and the adjacent ally are in water.
Also, do not conduct electricity when hitting a clinging monster: it is
not actually in the water.

rElec is still not checked, to avoid leaking information about the
defender's (or your allies') armour.

--------------------------------------------------------------------------------
4c35781c13 | Neil Moore | 2011-12-10 14:38:45 -0500

Warn when using elec brand in water near allies.
This should prevent accidentally offending gods.  The prompt is
given a little too often: the attack is actually safe if the defender or
the ally is flying or is known to have rElec, but we check only whether
the cell contains water.

As part of this implementation, the smite targetter can now take a
predicate to select only certain cells to be affected.

--------------------------------------------------------------------------------
6b48f1f8a2 | Chris Campbell | 2011-12-10 18:59:04 +0000

Remove inaccurate message about Zin feeding

--------------------------------------------------------------------------------
7a86c9c650 | Neil Moore | 2011-12-10 13:45:20 -0500

Improve devastator prompt.
If the defender is safe to attack but an adjacent monster is not, ask
whether you want to "attack near" (rather than "attack") the friendly.

--------------------------------------------------------------------------------
0266f297b0 | Neil Moore | 2011-12-10 12:50:20 -0500

Make unrand melee effects happen a bit later.
It was being called during handle_phase_attempted, before calculating
damage; this meant that Devastator was doing nothing.

The new location is just after player_monattk_hit_effects.  This is
a little later than pre-UCC (it had been in the middle of that
function), but this should be safe, and allows monsters and players
to use the same call.

--------------------------------------------------------------------------------
44efaac909 | Adam Borowski | 2011-12-10 17:48:48 +0100

Massively speed up reading .des files.
A majority of time was spent parsing item names by repeatedly generating all
possible items and comparing their names.  We already have an item name cache.

--------------------------------------------------------------------------------
807d532aa0 | Florian Diebold | 2011-12-10 17:38:24 +0100

Remove unused variables.

--------------------------------------------------------------------------------
e3f8c6adc9 | Florian Diebold | 2011-12-10 17:15:18 +0100

Changelog update.

--------------------------------------------------------------------------------
bd741b0dd7 | elliptic | 2011-12-10 03:50:15 -0500

Improve autofight handling of "safe" monsters by checking for firewood instead.
Previously some monsters were still not being attacked because they were
treated as safe. Checking mons_is_firewood() is better for determining which
monsters to ignore, though ballistomycetes and butterflies still need to be
special-cased.

--------------------------------------------------------------------------------
843efcf063 | Neil Moore | 2011-12-10 00:28:45 -0500

Even more careful ruination.
Never replace a door with an impassable feature: use either floor
or water.  Never replace a feature with a statue, since that's
silly (in fact, let statues help support the adjacent walls).

Trees, water, floor, and lava are the features that can still replace
a ruined wall; and shallow water and floor for a ruined door.

--------------------------------------------------------------------------------
f106e6eec6 | David Lawrence Ramsey | 2011-12-09 22:36:34 -0600

Tweak the Fedhas message again: "support" rather than "perversion".
The monster is the one speaking, not Fedhas (oops).

--------------------------------------------------------------------------------
424206862b | David Lawrence Ramsey | 2011-12-09 22:25:10 -0600

Tweak the Fedhas "enraged" message, taken mostly from a comment in godabil.cc.
Corporeal undead are better described as perversions of nature than as
natural decay brought by the player, since the latter sounds like
something Fedhas would approve of (based on his prayer ability, anyway).

--------------------------------------------------------------------------------
6334b1898c | Samuel Bronson | 2011-12-09 23:01:46 -0500

Webtiles presumably needs to shutdown "console" IO before crashing now.
Since, you know, it now runs the console display code as well as the
webtiles-only stuff...

--------------------------------------------------------------------------------
1891c187da | Samuel Bronson | 2011-12-09 22:57:29 -0500

Make crash dumping for ASSERT failures work under debuggers on Windows.
For whatever reason, MSVCRT does not run SIGSEGV handlers when a debugger
is attached (not to blame MSVCRT or anything; it could just as easily be
the fault of ntdll or NT).

So now, instead of intentionally dereferencing a null pointer on both
Windows and OS X, we'll only do that on OS X; on Windows, we'll do what we
do everywhere else: raise SIGABORT. (Well, we used to just call abort(),
but that gives a really puzzling message on Windows, so we'll raise first,
then abort() if that didn't work.)

(Also, we'll now write out the failure as a debug message, and do a
DebugBreak if a debugger is attached.)

--------------------------------------------------------------------------------
65e37b49fe | Neil Moore | 2011-12-09 22:46:00 -0500

Unbreak games broken by bad ruination.
The previous commit will not fix games that have already encountered
the problem, as the buggy feature had already been placed.  Instead,
when we encounter a buggy trap, turn it into floor.

--------------------------------------------------------------------------------
b6cde024db | Neil Moore | 2011-12-09 22:46:00 -0500

When ruining a wall, don't copy traps, stairs, etc.
These features require extra setup, and it's silly for walls to turn
into them anyway.  Instead, use floor (for traps, stairs, portals,
altars, and fountains), or rock wall (for malign gateway).

--------------------------------------------------------------------------------
dca224407a | Adam Borowski | 2011-12-10 04:39:38 +0100

Simplify.

--------------------------------------------------------------------------------
2755063a1a | Adam Borowski | 2011-12-10 04:39:38 +0100

Bring hangedman's food vaults into line for nutrition values.

--------------------------------------------------------------------------------
e9a451d2a3 | Adam Borowski | 2011-12-10 02:49:32 +0100

Don't waste a turn when IOOD can't be placed.
This is a rare error condition (mostly full menv[]), so I don't care for
doing this before the miscast check.

--------------------------------------------------------------------------------
8a7e2c4139 | Adam Borowski | 2011-12-10 02:49:32 +0100

Make enslaved/raised corpse-based undead hate Fedhas worshippers.
I'm not sure whether deep dwarf unborns should count, but since all other
corporeal undead do, let's go for simplicity, at least until someone tells
us what the hell unborns are.

Also, adjust messages for other gods.  Trog gives no "aura", for example.

--------------------------------------------------------------------------------
94f00e1331 | Aaron Becker | 2011-12-09 14:24:40 -0500

Fix annotation name for Serpent of Hell.

--------------------------------------------------------------------------------
f789c54d63 | Aaron Becker | 2011-12-09 14:20:23 -0500

For unique annotations, check whether monster has ever been unique.
When uniques are polymorphed, mons_is_unique becomes false, and you have
to separately check the original_was_unique property, otherwise their
annotations won't work correctly.

--------------------------------------------------------------------------------
84c4991a6d | Aaron Becker | 2011-12-09 14:20:23 -0500

Fix unique annotations for polymorphed royal jelly, Blork the orc, etc

--------------------------------------------------------------------------------
55fc70b4c7 | Samuel Bronson | 2011-12-09 14:17:56 -0500

Reference "X?" (level-map help) from wizmode help.
We do this because "XT" (wizmode teleport to level-map cursor) is now
documented there.

--------------------------------------------------------------------------------
717b9867f2 | Neil Moore | 2011-12-09 11:27:34 -0500

If wizmode polymorph fails, try to force it.
This allows, among other things, cross-holiness polymorphs.

FIXME: If the polymorph had to be forced, the usual messages are not
produced, because they are generated by monster_polymorph and not the
lower-level change_monster_type.

--------------------------------------------------------------------------------
b1781bfcfa | Neil Moore | 2011-12-09 10:14:50 -0500

Don't use a map where a vector of pairs will do.

--------------------------------------------------------------------------------
c15aa3ff8a | Neil Moore | 2011-12-09 02:55:43 -0500

De-rim the enchanted forest.
Commit 1987e97 fixed the underlying problem that was causing the
disconnected zones, so we can do without the passable rim now.

As kilobyte points out, the tree-or-floor cells around the edge
(T in the map) could still cause disconnections, so force them
to always be trees.  They still have a separate glyph, in case
someone figures out how to substitute them with DNGN_UNKNOWN.

This partially reverts commit c3291bf566cc1731676ace69a16841726aff45b3

--------------------------------------------------------------------------------
fd214dbdb7 | Neil Moore | 2011-12-09 02:28:36 -0500

Don't create disconnected floor when ruining levels.
When we decide to ruin a wall or door, instead of replacing it with
floor, choose a random adjacent (non-wall, non-door) feature.  Thus,
when a wall borders only impassable features (trees, statues, deep
water, ...), it will be replaced with an impassable feature, preserving
connectivity.

This could be kind of silly if we "ruin" a wall into a statue, but that
can be fixed later.

--------------------------------------------------------------------------------
818095651e | Kek | 2011-12-08 21:20:51 -0500

Lua script engine extension: options.autopick_on

--------------------------------------------------------------------------------
9eb99e4c5c | Kek | 2011-12-08 21:19:28 -0500

Lua script engine extension: you.swift

--------------------------------------------------------------------------------
f78f30fb1b | Kek | 2011-12-08 21:19:27 -0500

Lua script engine extension: you.shrouded

--------------------------------------------------------------------------------
a47b0b31b3 | Neil Moore | 2011-12-08 21:09:07 -0500

Add reaching description to polearms (moxian)
Fixes #5027.

--------------------------------------------------------------------------------
c3291bf566 | Neil Moore | 2011-12-08 19:59:54 -0500

Add a passable rim around the enchanted forest.
Without the rim, the map was being vetoed nearly every time, as portions
of the level were being disconnected by the ragged border.  Sadly, this
change means that the three entrances are all easily reachable from one
another without going through the forest, but at least the vault will be
seen more often again.

--------------------------------------------------------------------------------
9fadd22cbf | Samuel Bronson | 2011-12-08 19:18:10 -0500

Give better message when trying to drop cursed, wielded weapon.

--------------------------------------------------------------------------------
8eb8eebf99 | Samuel Bronson | 2011-12-08 18:25:23 -0500

Rejigger whitespace.

--------------------------------------------------------------------------------
64f671a119 | Florian Diebold | 2011-12-08 23:11:43 +0100

Fix console compilation.

--------------------------------------------------------------------------------
46a80e90d8 | Florian Diebold | 2011-12-08 22:52:59 +0100

Webtiles: Clean up the layout code, improve menu layout a bit.

--------------------------------------------------------------------------------
a373054b20 | Florian Diebold | 2011-12-08 22:52:59 +0100

Webtiles: Handle ^F in menus.

--------------------------------------------------------------------------------
23923b05e8 | Florian Diebold | 2011-12-08 22:52:59 +0100

Clean up menu.js.

--------------------------------------------------------------------------------
f9695c3e32 | Florian Diebold | 2011-12-08 22:52:59 +0100

Webtiles: Load large menus lazily.
Some menus, namely ^P, ? and ?:, are too large to be sent to the
client in one piece. Instead, they are now loaded on demand, in chunks
of 50 elements.

--------------------------------------------------------------------------------
68ddb51797 | Florian Diebold | 2011-12-08 22:52:59 +0100

Webtiles: Tiles in menus.
Only for Menu menus, though, which means the skill menu (as a
PrecisionMenu) is the notable exception.

--------------------------------------------------------------------------------
f11a80807d | Florian Diebold | 2011-12-08 22:52:59 +0100

Webtiles: Send the current menu scroll position to the server and to spectators.
Spectators can still scroll independently; but as long as they don't,
they'll see where the player scrolls. Also, Crawl needs the current
scroll position to select the correct item in long (>52) lists.

--------------------------------------------------------------------------------
90cb4c8ac2 | Florian Diebold | 2011-12-08 22:52:59 +0100

Enable flash_monster_colour calls in Webtiles.
They aren't implemented in the Webtiles interface, but they should
still be there for equivalence with normal console.

--------------------------------------------------------------------------------
c12c29db03 | Florian Diebold | 2011-12-08 22:52:59 +0100

Don't waste CPU time sending messages in Webtiles-enabled executables if no 
server is connected to the crawl process.
Crawl will still be doing more stuff behind the scenes than without
USE_TILE_WEB; but that's necessary so that if the server connects to
the process at a later point, crawl can send the necessary data.

--------------------------------------------------------------------------------
f00d455287 | Florian Diebold | 2011-12-08 22:52:59 +0100

Add a JSON parser for Webtiles.
It's from the CCAN at http://ccodearchive.net/info/json.html; I mainly
chose this one because it's very simple (only one file) and has an
acceptable API.

--------------------------------------------------------------------------------
cf6ed6e575 | Florian Diebold | 2011-12-08 22:52:59 +0100

Refactor control flow of ?/M and describe_monsters to make it work better under 
Webtiles.
This also fixes the double getchm() after showing the description for
an exact monster match.

--------------------------------------------------------------------------------
c3c7974709 | Florian Diebold | 2011-12-08 22:52:59 +0100

Work around the flickering when switching between inventory and item desc in 
Webtiles.

--------------------------------------------------------------------------------
b55d505fbc | Florian Diebold | 2011-12-08 22:52:59 +0100

Mouse support for Webtiles menus.

--------------------------------------------------------------------------------
81ea3dd754 | Florian Diebold | 2011-12-08 22:52:58 +0100

Allow other CRT dialogs to be displayed like a menu in Webtiles.
This mainly means at the moment that the menu is shown as a dialog
floating above the normal layer, instead of switching to the separate
CRT layer.

--------------------------------------------------------------------------------
15055ff1e6 | Florian Diebold | 2011-12-08 22:52:58 +0100

Implement dedicated Menu support for Webtiles.
This is just for menus using the Menu class. It means that the menu
items are laid out in html on the client side, the menu size adapts to
the window of each spectator, and scrolling is done client-side.

--------------------------------------------------------------------------------
e54b525164 | Florian Diebold | 2011-12-08 22:52:58 +0100

Fix a display bug with scaled-down cells in Webtiles.
The canvas would not get resized if only the cell size changed.

--------------------------------------------------------------------------------
5500a343a3 | Florian Diebold | 2011-12-08 22:52:58 +0100

A bunch of helper functions for writing JSON for Webtiles.

--------------------------------------------------------------------------------
18444e85ad | Neil Moore | 2011-12-08 13:20:01 -0500

Add item.is_melded to clua, check it in autofight.
We shouldn't try to fire a melded bow, or reach with a melded polearm.

Fixes #5026.

--------------------------------------------------------------------------------
511968cf2d | Neil Moore | 2011-12-08 12:01:56 -0500

Simplify further.

--------------------------------------------------------------------------------
cff8c19241 | David Lawrence Ramsey | 2011-12-08 10:35:55 -0600

Make monster butchery without chunks properly produce blood again.

--------------------------------------------------------------------------------
6098d27329 | David Lawrence Ramsey | 2011-12-08 10:35:55 -0600

Make the routine to make butchered corpses bleed into its own function.

--------------------------------------------------------------------------------
a2c69f6944 | David Lawrence Ramsey | 2011-12-08 10:35:55 -0600

Constify, and consistently validate item positions for corpse drops.

--------------------------------------------------------------------------------
37dfcec03a | Neil Moore | 2011-12-08 11:19:18 -0500

Polymorph vault monsters more correctly.
For one, remove any tile redefinition, since the old tile probably does
not fit the new form.  Also, if the monster had name_replace, remove the
old name entirely; otherwise, polymorphing a megabat would give a
monster with e.g. kobold stats but called "megabat".

Monsters with name_adjective or name_suffix (or none of those flags)
keep the name, so you can have a "hungry orc" or "guardian serpent
baker".   Arguably these should be removed as well, but the resulting
names are just too funny.

--------------------------------------------------------------------------------
3fbade312f | Neil Moore | 2011-12-08 10:11:51 -0500

Give a few vault monsters name_descriptor.
This is necessary now that n_rpl no longer implies n_des.

The remaining monsters with n_rpl but not n_des are all proper
nouns that do not need an article:
 * Foo the Cloud Mage
 * Foo the Hellbinder
 * Cigotuvi's Monster

Or have n_the already:
 * Statue of Wucad Mu

--------------------------------------------------------------------------------
f0fdbdb994 | Neil Moore | 2011-12-08 09:59:43 -0500

Simplify and reindent.

--------------------------------------------------------------------------------
f628362211 | Mikko Vepsäläinen | 2011-12-08 09:36:59 -0500

Fix name_replace in map files to work as documented.

--------------------------------------------------------------------------------
dcaef8c8c3 | Neil Moore | 2011-12-08 08:53:22 -0500

Allow Fedhas prayer to affect summoned creatures.
No piety or toadstools, though.

--------------------------------------------------------------------------------
3e2d21cab3 | Adam Borowski | 2011-12-08 14:25:35 +0100

Stop Guardian Spirit from nuking mp on unmeld, fix some artefact effects.
Also, do the same to Faith, although currently no transformation melds amulets.

--------------------------------------------------------------------------------
5a98e765de | Adam Borowski | 2011-12-08 14:16:38 +0100

&^C to force a crash.  There are no signals on Windows...
Going on a wizmode crash fixing spree turns out to have its downsides;
there are surely so many left but I couldn't think of one out of the top of
my head.

--------------------------------------------------------------------------------
fc983fb141 | Adam Borowski | 2011-12-08 10:01:22 +0100

Unbreak Windows builds, with hacks to support ancient compilers.
Since a few months ago, mingw defaults to dynamic libraries, which may make
sense for large sets of small executables like msys, but make none for
stand-alone programs.  Windows doesn't have any dependency support so we'd
need to copy several DLLs (+6.5MB).  The same linked into the .exe is only
0.86MB.

The new mingw landed in Debian in September and in msysgit last week
(AFAIK), so it looks like no one of us actually tests builds outside of
msys' directory.  I admit, I test win32 only whether it compiles and not
actually runs except at the release time myself...  Napkin's builds use a
truly ancient mingw so they were unaffected.

--------------------------------------------------------------------------------
5219bfdbbc | Adam Borowski | 2011-12-08 05:27:07 +0100

Remove useless APPEAR artefact settings.
This removes only unused/redundant ones, I think all should go.  Unrand
properties are 100% spoiler material.

--------------------------------------------------------------------------------
34a9c816fb | David Lawrence Ramsey | 2011-12-07 22:19:25 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
b5d592d499 | David Lawrence Ramsey | 2011-12-07 22:18:58 -0600

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
e258b46310 | Michael Gagno | 2011-12-07 20:10:19 -0800

Fix several vaults broken by recent smite targetting changes.
By "several" I mean at least 20. I might have missed a few!

Vaults which rely on monsters being able to attack through glass now use
iron grates (which certain spells can go through, for both players and
monsters). For the most part this doesn't change much, but there is the
issue of grates being diggable. This changes the behaviour of a few vaults
(eg david_glass_crypt).

I've added comments to the ones affected by this (hopefully it is only a
temporary solution). In the long term, it might be good to add an undiggable
"steel grate" dungeon feature, depending on whether the changes to
targetting stay as they currently are.

Another minor issue is that some of these vaults look weird in tiles now.

Also, a couple of "zoo" entry vaults which used grates now use normal glass, to
block smite-abuse.

--------------------------------------------------------------------------------
aba0986d73 | David Lawrence Ramsey | 2011-12-07 22:05:42 -0600

Expand butcher_corpse() to optionally drop chunks.
This new mode is used for the fake butchery of corpse-eating monsters,
since that uses the whole corpse and should leave no chunks behind.
This also means less code duplication (except for the calls to
maybe_monster_drop_hide() if we're not dropping chunks, since
turn_corpse_into_skeleton() doesn't call it while
turn_corpse_into_chunks() does, but that's minor).

Accordingly, rename food.cc:_butcher_corpse() to _corpse_butchery(), to
avoid confusion.

--------------------------------------------------------------------------------
73458b7474 | Neil Moore | 2011-12-07 20:28:32 -0500

Buff monster Twisted Resurrection.
For one, use an outlandish spell power to get a very high efficiency
(10.0 aum per hit die, twice what a player can get with maxed-out
power).  This means a single elf corpse yields a 4 or 5 HD crawlie, and
two elf corpses will always yield an abomination.

Also, prevent monsters from casting the spell unless two or more corpses
would be affected.  This should prevent monsters from creating easily-
destroyed crawling corpses that have no real chance to merge.

Let's see if this results in players actually seeing monster-resurrected
abominations.

--------------------------------------------------------------------------------
7a75a1fda9 | Neil Moore | 2011-12-07 19:13:26 -0500

Move self to devs section in CIA hook.

--------------------------------------------------------------------------------
33db8e8bbe | Neil Moore | 2011-12-07 18:34:16 -0500

Do not mark randart jewellery as bad.
It was already excluded from the is_useless_item check.

Maybe in the long term we should iterate over the properties, and
consider it useless (bad) if all the properties are useless (and
at least one is bad).

Fixes #4608.

--------------------------------------------------------------------------------
1a46d2f0fb | Neil Moore | 2011-12-07 17:55:28 -0500

Fix infinite loop on custom antiques shops.
It appears the logic for item specs was wrong: an item spec should
be a sufficient condition for an antiques shop to exit the loop,
rather than the lack of an item spec being a necessary condition.

Fixes #4676.

--------------------------------------------------------------------------------
f84dc42c30 | Samuel Bronson | 2011-12-07 16:44:00 -0500

Fix an edge case in artefact name generation.
No idea if it was possible to actually trigger this, but it's fairly
obvious that we always want an artefact's appearance for the
ARTEFACT_APPEAR_KEY property and the artefact's actual name for the
ARTEFACT_NAME_KEY property, no?

--------------------------------------------------------------------------------
11f5b1c7d9 | Samuel Bronson | 2011-12-07 16:23:54 -0500

Comment out some debug mpr()s I accidentally committed to autofight.lua ...
... Whoops!

--------------------------------------------------------------------------------
55d12121cc | Samuel Bronson | 2011-12-07 16:20:46 -0500

Remove no-longer-required setup step from autofight.lua's doc-comment.

--------------------------------------------------------------------------------
0db82e86ea | Samuel Bronson | 2011-12-07 16:17:12 -0500

Clean up heading tags in level-map help.
Doesn't actually seem to change the rendering, but it's conceptually
cleaner this way, and possibly more future-proof.

--------------------------------------------------------------------------------
eb71c768df | Samuel Bronson | 2011-12-07 16:13:27 -0500

Document CMD_MAP_WIZARD_TELEPORT (T on map), adding you.wizard() to Lua api

--------------------------------------------------------------------------------
fff88d90c9 | Neil Moore | 2011-12-07 11:34:23 -0500

Do not prompt when trying cursed unwieldable items.
There may still be some situations where trying to wield a cursed
weapon prompts but fails anyway, because of the differences
between player::can_wield() and item_use.cc:can_wield().

Fixes #4900.

--------------------------------------------------------------------------------
8a1ef5177d | David Lawrence Ramsey | 2011-12-07 10:20:12 -0600

Fix wording.

--------------------------------------------------------------------------------
a49efb390d | Neil Moore | 2011-12-07 10:52:46 -0500

Show menu for =a by default if auto_list is on.
Also, replace msg::stream << with mpr/mprf.

Note that you (still) cannot use the menu for the second prompt (letter
to change to).  This would be desirable, but is a somewhat more
complicated because, unlike list_spells, choose_ability_menu returns an
index rather than a hotkey.

Furthermore, the message ("No such ability.") may be wrong, but we have
no way of telling whether the menu was exited because of a wrong
character or because of pressing escape.

Fixes #4074, #5019.

--------------------------------------------------------------------------------
30dfc49a80 | Adam Borowski | 2011-12-07 11:48:24 +0100

Auto-id evil weapons for Elyvilon worshippers.
A problem: if you don't intend to worship evil, you can switch to Ely, and
get a free global weapon id.  Blocking id until *** piety conflicts with the
recent max_piety change (which needs to be rethought, though), and would be
mostly an interface hassle anyway -- so a better idea is welcome.

--------------------------------------------------------------------------------
2399618801 | Adam Borowski | 2011-12-07 11:29:37 +0100

For races other than Ce, Og, Tr and Op, don't pickup extra rings of sustenance.
For extras to be useful you'd have to wear troll leather armour or have the
fastmeta mutation.

Octopodes are likely to wear regeneration, and they're the one species who
can wear two sustenances together with regen.

--------------------------------------------------------------------------------
8e624b1299 | Adam Borowski | 2011-12-07 11:14:27 +0100

Comment that two rings of teleportation are not redundant.
The second one has a sharply reduced usefulness compared to the first, so
having ithe second oneannounced but not auto picked up is ok.

--------------------------------------------------------------------------------
66f3aafa87 | Adam Borowski | 2011-12-07 10:43:52 +0100

Disallow monsters summons from behind glass.

--------------------------------------------------------------------------------
c4fdcdf813 | Adam Borowski | 2011-12-07 10:43:52 +0100

Stop Shatter+permarock abuse.
You can hit someone only after you've shattered the walls in between.

--------------------------------------------------------------------------------
9a6de0f2fa | Neil Moore | 2011-12-07 04:19:02 -0500

Mark more speech as visual, and other speech fixes.
There were many instances of speech that were not marked as visual,
but probably should have been.

Also, correct grammar for a few of Grum's lines; remove a few entries:
 * Okawaru Donald: '@The_monster@ says, "Can I have your spare potions?"'
   Okawaru's abilities haven't duplicated potion effects for some time.
 * Khufu: 'SPELL:@The_monster@ smites.'  This doesn't really make sense.

; and give Margery's visual spells some visual results (the same as her
ordinary spell results, but flagged VISUAL).

--------------------------------------------------------------------------------
5e9deab813 | Neil Moore | 2011-12-07 04:11:39 -0500

Avoid a rare unexitable skill menu (Fyren).
If you had all non-useless skills but one at level 27, and that
skill was not currently trainable, you would not be able to leave
the skill menu.

Fixed #4910.

--------------------------------------------------------------------------------
0ba7ce2a02 | Neil Moore | 2011-12-07 03:57:58 -0500

Allow quivering items without carrying throwables.
Fixes #4996.

--------------------------------------------------------------------------------
5945b6c341 | Neil Moore | 2011-12-07 03:08:51 -0500

Fail at casting spells from rods while confused.
As with casting from memory while confused, MP and time are
expended, but the only effect is random uselessness.

Fixes #5007.

--------------------------------------------------------------------------------
455fb705be | Neil Moore | 2011-12-07 02:09:46 -0500

Ignore many mutations while transformed.
Tough skin, shaggy fur, gelatinous body, camouflage, translucent skin,
unbreathing, spines, most resistance mutations (except rTorment), and
scales (including bone plates) now have no effect when transformed.
Hooves and thin skeletal structure lose their effects on stealth when
transformed.

Lich form, beastly appendage, blade hands, and statue form are exempted,
as they keep the base form's general bauplan.  However, tough skin,
shaggy fur, and gelatinous body are incompatible with statue form.

Fixes #4949 (Naga in spider form has no poison vulnerability).

--------------------------------------------------------------------------------
e3cdffc0f7 | Neil Moore | 2011-12-07 00:21:31 -0500

Avoid autopickup of two rings of teleportation.
While theoretically one might want the extra random teleportation
from wearing two, that seems unlikely.

Also, remove hunger from the list: it's usually useless anyway, and
vampires wanting to reach Bloodless quickly might well wear two.

--------------------------------------------------------------------------------
ce3c46becd | Neil Moore | 2011-12-07 00:21:29 -0500

Do not mark unknown highlevel books as dangerous.
The fact that a book is highlevel is still leaked from the book's
description, even at a distance.

--------------------------------------------------------------------------------
3aeb6b1357 | Neil Moore | 2011-12-07 00:20:47 -0500

Remove "skill exp" from PlaceInfo and char dumps.
It had not been useful since the 0.9 skill system overhaul, and often
had negative values because training happened before calculating the
gain.  This removes the field entirely, as well as the associated
column "F" of the kills_by_place table.  The old column "G" is now
calculated based on level XP only.

--------------------------------------------------------------------------------
5c5db5098f | David Lawrence Ramsey | 2011-12-06 19:16:30 -0600

Fix punctuation.

--------------------------------------------------------------------------------
7949d1482f | David Lawrence Ramsey | 2011-12-06 19:15:38 -0600

Tweak wording.

--------------------------------------------------------------------------------
4deb79f99d | elliptic | 2011-12-06 19:14:10 -0500

Fix inaccuracies in god descriptions for Ely and Jiyva.

--------------------------------------------------------------------------------
65d52c982e | Adam Borowski | 2011-12-06 23:55:05 +0100

Make the whole area around the Zot:5 vault permarock.
There are still ways to Shatter your way in, or LRD if you risk going into
one of the ovaries.

--------------------------------------------------------------------------------
da8ba005d1 | Adam Borowski | 2011-12-06 23:55:05 +0100

Slightly improve the tiles on two of Dwarf entries.
Still ugly like hell.  Also, there probably shouldn't be secret doors or
they should be more obvious.

Also, another entry uses TILE: wall_tomb, fitting in the times when these
vaults were supposed to be for a Dwarven Tomb sub-branch but not now.

--------------------------------------------------------------------------------
8cfa3b2ea3 | Adam Borowski | 2011-12-06 22:17:45 +0100

Mention Merfolk EV+swiftness and Minotaur retaliation on the 'A' screen.

--------------------------------------------------------------------------------
bdcdcb44fb | Adam Borowski | 2011-12-06 22:11:58 +0100

Decapitalize prompt entries on &^D

--------------------------------------------------------------------------------
80d5c2061d | Adam Borowski | 2011-12-06 21:36:44 +0100

Don't let Recite, Slouch, Ignite Poison and Alistair's work through glass.
It was especially grindable for Recite -- a number of entry vaults have
monsters behind glass or grates, and you could sit there for lots of free
XP.

--------------------------------------------------------------------------------
a0f3646397 | Adam Borowski | 2011-12-06 20:40:11 +0100

Show what Refrigeration, Toxic Radiance and Ignite Poison affects.
With them no longer working through glass or trees, flashing the whole LOS
conveyed that everything behind was hit.

--------------------------------------------------------------------------------
bbc0a7d219 | Adam Borowski | 2011-12-06 20:40:11 +0100

Block smiting in the targetting phase, unify redundant code.

--------------------------------------------------------------------------------
641a6155a2 | Adam Borowski | 2011-12-06 20:40:11 +0100

Fix tiles builds.

--------------------------------------------------------------------------------
ea57a172d4 | Adam Borowski | 2011-12-06 20:40:11 +0100

Apply the smite restrictions to monsters as well.
Such a massive change just makes no sense to be one one way.  Removal of
true smite from players was done for balance purposes (can be exploited with
some vaults or with vitrification) rather than due to theme, but we'd drown
under bug reports if we introduce such an inconsistency.

--------------------------------------------------------------------------------
050142ad91 | Adam Borowski | 2011-12-06 20:40:11 +0100

Update the smite targetting interface for new smiting restrictions.

--------------------------------------------------------------------------------
fff91525bf | Adam Borowski | 2011-12-06 20:40:11 +0100

Update LOS when Xom opens doors.

--------------------------------------------------------------------------------
d137edabed | Samuel Bronson | 2011-12-06 14:29:37 -0500

Suggest installing the libstdc++ GDB pretty-printers when ours need them.
Not pretty, but not having the libstc++ pretty-printers installed is
*already* pretty ugly, so ...

--------------------------------------------------------------------------------
1020d2693d | Adam Borowski | 2011-12-06 16:08:03 +0100

Use the correct opacity type for cloud spells.

--------------------------------------------------------------------------------
7a6d2e931b | Adam Borowski | 2011-12-06 14:19:59 +0100

PRONOUN -> PRONOUN_SUBJECTIVE
It was not greppable, and not obvious at the first glance.

--------------------------------------------------------------------------------
9cf1b2edca | Adam Borowski | 2011-12-06 14:09:31 +0100

Don't reduce player's evasion while reciting.

--------------------------------------------------------------------------------
e5e043d46f | Adam Borowski | 2011-12-06 12:05:40 +0100

Adjust cloud targetting interface to forbid casting through glass/trees.

--------------------------------------------------------------------------------
25dbb0d079 | Adam Borowski | 2011-12-06 11:33:09 +0100

Let checkwhite properly convert tabs after non-spaces.

--------------------------------------------------------------------------------
d668675675 | Adam Borowski | 2011-12-06 11:05:08 +0100

Shorten the name of describe-templates.h
Its length makes "ls" use few wide columns.

--------------------------------------------------------------------------------
59d84d63fd | Adam Borowski | 2011-12-06 09:11:52 +0100

Fix incomplete floor/colour settings in Dwarf.
Tiles are untested and likely to need adjustment as well.

Regression: floor and metal walls no longer get custom descriptions.
They were just:
"The floor is tiled in perfectly cut limestone.\n"
"tempered metal wall"
"These metal walls are brush-textured and recently maintained.\n"

Not sure if that's worth special-casing like it's done for Pandemonium.

--------------------------------------------------------------------------------
1f56e6e1bf | Adam Borowski | 2011-12-06 09:11:51 +0100

Delete a good-for-nothing Dwarf entry.
It's a near copy of enter_dwarf_1 except with some unfitting monsters added.

--------------------------------------------------------------------------------
972df229ed | Adam Borowski | 2011-12-06 09:11:50 +0100

Move Dwarf entries to the start, like in any other branch .des file.
It made sense in blue_anna's initial concept, when there was a 5-level
branch with a separate portal vault ("Dwarven Tomb") enterable from the
bottom of it.  He didn't get to making the actual portal so the entries
are repurposed as entries to Dwarf rather that exits from Dwarf to that
Dwarven Tomb.

--------------------------------------------------------------------------------
e64909ba90 | Samuel Bronson | 2011-12-05 22:30:06 -0500

GDB pretty-printers for CrawlStoreValue and CrawlVector.
I'm not totally happy with this -- there's no way to tell the various
numeric-valued types apart in the output, for instance -- but it seems at
least tolerable.

--------------------------------------------------------------------------------
4993a36ee5 | Samuel Bronson | 2011-12-05 20:38:10 -0500

GDB pretty-printer for CrawlHashTable proper.
(Still need to do CrawlStoreValue, which is the hard part, and
CrawlVector, which should be about the same as this.)

--------------------------------------------------------------------------------
f9e7e8007b | Samuel Bronson | 2011-12-05 18:53:17 -0500

Split templates out of describe.h, to speed testing of changes to them.
Few files use these templates: for console, describe.cc alone uses them;
for tiles, only a few other files do.

--------------------------------------------------------------------------------
6e2063911a | Michael Gagno | 2011-12-05 14:28:39 -0800

Replace some translucent stone with translucent rock/grates in vaults.
This is on account of the recent nerf to smite-targetted spells. This made
it so some vaults had monsters which were unkillable without (real) smiting
or LRD/shatter. Now you can use digging to get to them.

Grates are used in cases where the vault still uses undiggable (stone) glass in
other parts, in order to clearly mark the difference. Otherwise regular
diggable (rock) glass is used.

--------------------------------------------------------------------------------
bc53466e36 | elliptic | 2011-12-05 16:00:31 -0500

Fix item sacrifices using the unidentified value for unidentified items.
This affects Elyvilon, Nemelex, and Jiyva. With Nemelex, we should be on the
watch for whether weapons and armour tend to have too high a weight now for
deck selection... they already tended to get very high weights if you
sacrificed everything, and this makes it worse by increasing the value of
enchanted (or ego) items that you sacrificed without identifying.

--------------------------------------------------------------------------------
b7df13cefe | elliptic | 2011-12-05 16:00:31 -0500

Elyvilon weapon sac piety changes.
Removed all value-based weapon sac piety once you've reached *** once (even if
you drop under later). Also fixed each individual stone or dart giving a point
of piety when below *.

--------------------------------------------------------------------------------
74e9989d9a | Chris Campbell | 2011-12-05 20:46:14 +0000

Don't allow abjuring through walls either

--------------------------------------------------------------------------------
02b6d3aef5 | Chris Campbell | 2011-12-05 20:17:21 +0000

Improve a few spell descriptions

--------------------------------------------------------------------------------
b3bdcba705 | Chris Campbell | 2011-12-05 20:17:21 +0000

Make Demonspawn hellfire beam-targeted, adjust damage, reduce hp cost

--------------------------------------------------------------------------------
d5ebb7f6f5 | Chris Campbell | 2011-12-05 20:17:20 +0000

Make sceptre of Asmodeus success depend on evocations skill

--------------------------------------------------------------------------------
c7535c24ee | Chris Campbell | 2011-12-05 20:17:20 +0000

Don't let toxic radiance go through walls either

--------------------------------------------------------------------------------
7dd364dd40 | Chris Campbell | 2011-12-05 20:17:19 +0000

Prevent casting some smite-targeted spells through transparent walls
Poisonous/freezing cloud, fire storm, airstrike and haunt all shouldn't
really be castable through transparent walls and trees (other LOS or
smite-targeted effects like refrigeration, LRD, conjure flame already
don't go through transparent walls).

--------------------------------------------------------------------------------
9e21c99142 | Chris Campbell | 2011-12-05 20:17:18 +0000

Don't reduce EV with slimy green scales

--------------------------------------------------------------------------------
44a7f41c77 | Robert Burnham | 2011-12-05 12:40:57 -0600

Fix passive freeze timing & defender atype crashes

--------------------------------------------------------------------------------
ce399143ef | Adam Borowski | 2011-12-05 15:15:45 +0100

Fix reversed logic for rMut and Evolution.
The amulet is supposed to only slow the process down, not to be the mostly
sole way to let it expire on its own.

--------------------------------------------------------------------------------
d0f13c5b9b | Michael Gagno | 2011-12-04 18:37:54 -0800

Reduce the number of golems in minmay_elf_hall_golems.
It's tedious to fight so many of them, given that they have such huge AC and
HP values. Plus they're not even that dangerous (since they're slow).

--------------------------------------------------------------------------------
8fce20b9ca | Michael Gagno | 2011-12-04 17:30:36 -0800

Adjust the weights for some Elf:5 vaults.
There are a lot of Elf endings now. Most have normal weight (10) but there
were a few oddities: a few had weight 3 (this gave them about a 1/20 chance of
appearing in a game) and the classic one had a weight of 50 (with another
old classic having an effective weight of 20).

I can understand the rationale behind having the classic maps being a bit
more common, but I think 50 is too high, so I've reduced it to 30. This will
cause it to be picked in about 1/5 of all games. It might be worth just
reducing it to 10 like the other maps; I'm not sure if "being classic" is an
appropriate justification for it being more common than the others.

--------------------------------------------------------------------------------
eb42ef6360 | Adam Borowski | 2011-12-05 00:58:50 +0100

Include Simulacrum in MST_NECROMANCER_I spellbooks.
Note the synergy with Animate Dead: butchery for chunks has 1/3 chance to
leave a skeleton which can be reanimated separately.  We could increase this
to 100% by using Animate Skeleton instead...

--------------------------------------------------------------------------------
1dd8e33bf4 | Chris Campbell | 2011-12-04 23:30:00 +0000

Remove fire and hellfire res from some monsters that don't need it
These are possibly a holdover from when monsters would frequently hit
themselves with explosions.

--------------------------------------------------------------------------------
23b238125f | Adam Borowski | 2011-12-05 00:18:58 +0100

Don't say "comes into view" when hostile simulacra appear.
Testing this here for now, raising the dead shouldn't have "comes into view"
either.

--------------------------------------------------------------------------------
26615fd41b | Adam Borowski | 2011-12-05 00:18:58 +0100

Change seen_context from strings to enums, slightly untangle it.
It's still a terrible mess.  I didn't manage to understand it well enough
so all[1] functionality is preserved, at the cost of clarity.  I unified
some values that are functionally identical, but not yet all.

[1]. The context is reported only as a number in crash dumps, a minor
regression but 1. saves speed, 2. it'd be a matter of copying the enum
names if someone actually needs this.

--------------------------------------------------------------------------------
1dc9e5a843 | Adam Borowski | 2011-12-05 00:18:58 +0100

Let monsters drop misc items to free the slot for chunks for Simulacrum.

--------------------------------------------------------------------------------
1da4bb99c0 | Adam Borowski | 2011-12-05 00:18:57 +0100

Give deep dwarf necromancers Simulacrum (and a kind of Apportation).
If the monster currently has no chunks, it will instead try apporting a
corpse and start to butcher it (from inventory).  Butchery lasts additional
40 aut.  Chunks that lie around will be picked up and/or apported without
a need for butchery.

Infelicities:
* pickup happens immediately after apportation (same as pickup of other items
  by monsters elsewhere).
* butchery is done in the inventory rather than on the ground.  This is
  needed to prevent players from apporting/animating any corpse from under
  the necromancer.
  We may invent some custom message instead (magical butchery?).
* corpse turns into chunks at the start rather than the end of butchery
  (may be fixed if we care enough, not doing it to discuss the above point
  first)

TODO:
* since chunks are kept in the misc item slot, monsters who know this spell
  should handle the slot being occupied by non-chunks.  Would it be better to
  drop junk or not pick it up in the first place?
* "A foo simulacrum comes into view." is totally inappropriate for a created
  rather than summoned monster.  This messaging is hard-coded deeply into
  mon-place.

--------------------------------------------------------------------------------
11e034b7b3 | Adam Borowski | 2011-12-05 00:18:55 +0100

Fix butchery producing a skeleton but no chunks when mitm[] is full.
Also, encapsulate butchery so monsters can use that.

--------------------------------------------------------------------------------
a3fed96a85 | Adam Borowski | 2011-12-04 13:00:08 +0100

Fix players taking no damage from Refrigeration.

--------------------------------------------------------------------------------
3ba39eb701 | Adam Borowski | 2011-12-04 12:53:56 +0100

A quick hack to recover games abyssed from a Ziggurat.
This is not a proper fix -- for example, the level will be regenerated anew,
but a rewrite is on the way so this will do for now.

--------------------------------------------------------------------------------
d6508ab2c1 | Adam Borowski | 2011-12-04 11:28:01 +0100

Don't consider the player immune to refrigeration at rC+++.

--------------------------------------------------------------------------------
b6246c93d4 | Steven Noonan | 2011-12-03 22:28:51 -0800

Xcode: add zlib to linker for Crawl-cmd and Crawl Tiles
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e6ba698a1b | Steven Noonan | 2011-12-03 22:28:51 -0800

Xcode: add USE_TILE_LOCAL for Tiles target
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
381638d80d | Steven Noonan | 2011-12-03 22:28:51 -0800

Xcode: update source/resource list to match Makefile targets
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
78ff5bfd58 | Steven Noonan | 2011-12-03 22:28:51 -0800

Xcode: add Info.plist generation phase
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a2bf2416a7 | Steven Noonan | 2011-12-03 22:28:51 -0800

AppHdr.h: add ifndef __OBJC__ to skip pointless compile errors with Xcode 
project
Xcode generates a precompiled header for Ojective-C, which doesn't
work correctly with some of the headers we have. We don't even use
Objective-C, aside from the necessary wrappery stuff for the app
bundle. Might as well just skip compiling the majority of AppHdr.h
for Objective-C.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c286621358 | David Lawrence Ramsey | 2011-12-03 23:23:08 -0600

More O's R fixes: no message spam or sanctuary breakage for cold-immunes.
Olgreb's Toxic Radiance does the same for poison-immunes.

--------------------------------------------------------------------------------
084a1af8a4 | David Lawrence Ramsey | 2011-12-03 23:11:09 -0600

Don't display the warning prompt for Ozocubu's Refrigeration for cold-immunes.

--------------------------------------------------------------------------------
aef483c2d1 | Adam Borowski | 2011-12-04 04:50:13 +0100

Unbreak Windows tile -fwhole_program builds.
This flag is included in our makefile if LTO is set.  No need to drop this
optimization just because of a SDL's (or perhaps gcc's?) bug, let's exclude
just SDL_main().

--------------------------------------------------------------------------------
3a248b4228 | Steven Noonan | 2011-12-03 18:42:17 -0800

Makefile: make build work on Xcode 4.2 (Lion)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
90122a2781 | Steven Noonan | 2011-12-03 18:25:15 -0800

Makefile: add NO_APPLE_GCC command-line option
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
30551d36c0 | Steven Noonan | 2011-12-03 18:14:46 -0800

Revert "Added make support for OSX Lion"
This reverts commit b3ad5d902b0cb588f367582ae703cc3ba0c0abcb.

--------------------------------------------------------------------------------
0b85a9d3ac | elliptic | 2011-12-03 18:47:58 -0500

Autofight improvements.
Essentially a rewrite of autofight. Here are the new features:

* Tweaked movement algorithm. Still very simple (actual pathfinding would
  be nice at some point), but it works much better in several situations now,
  including the common situation of needing to go around a single plant or
  tree or statue.

* Crude prioritization of monsters who are the same distance away. It goes
  after sleeping or paralyzed monsters first, then injured monsters, then
  monsters with a higher danger level. There are many other possibilities for
  prioritization, but I didn't want to make this too complicated... these
  simple rules seem to work well.

* Attacks ballistomycetes and MB_WITHDRAWN monsters if there are no other
  targets in sight.

* Handles potentially dangerous squares (traps, clouds) better.

* Refuses to act if your current HP is <= a certain percentage of your MHP.
  I set the default to 30%; I use 50% personally, but others have found that
  a bit annoying. The stop can be set to any value using the option
  autofight_stop.

--------------------------------------------------------------------------------
7941f2ef97 | elliptic | 2011-12-03 18:47:58 -0500

Another player lua function, for checking whether a monster is sleeping or 
paralysed.

--------------------------------------------------------------------------------
6578c790d3 | elliptic | 2011-12-03 18:47:58 -0500

Lua function view.is_safe_square().
It might be preferable to call something like _is_travelsafe_square(), but
that function does some things that we might not want here. For now, the
function just combines simple checks for cloud/trap/feature safety.

--------------------------------------------------------------------------------
4cd1acae61 | Samuel Bronson | 2011-12-03 18:31:25 -0500

Include a screenshot when crash-dumping, near the end in case that crashes.

--------------------------------------------------------------------------------
41b6185944 | Samuel Bronson | 2011-12-03 18:29:15 -0500

lua: Fix table_to_string() with boolean values. (For crash dumps, etc.)

--------------------------------------------------------------------------------
fa595cb8c6 | Samuel Bronson | 2011-12-03 17:26:41 -0500

Add a couple of comments to mon-act.cc.

--------------------------------------------------------------------------------
ad8c685bac | David Lawrence Ramsey | 2011-12-03 15:30:46 -0600

Remove doubled articles in some portal vault descriptions.

--------------------------------------------------------------------------------
16f1acdcc7 | David Lawrence Ramsey | 2011-12-03 15:15:21 -0600

Fix Mantis 4987: Capitalize pronouns in monsters' weapon descriptions again.

--------------------------------------------------------------------------------
b283bbdecf | David Lawrence Ramsey | 2011-12-03 12:19:48 -0600

Add comment.

--------------------------------------------------------------------------------
558c8fad72 | David Lawrence Ramsey | 2011-12-03 11:08:01 -0600

Fix indentation.

--------------------------------------------------------------------------------
9bbcde73b0 | David Lawrence Ramsey | 2011-12-03 11:04:00 -0600

Remove the special cases for vampires' feeding on fresh human/elf corpses.
They're undocumented and obscure, especially since blood potions seem to
be used much more often.

Accordingly, remove the MP amount parameter from _heal_from_food(), as
it's no longer used.

--------------------------------------------------------------------------------
dd3d67d234 | Michael Gagno | 2011-12-02 22:03:26 -0800

Fix a missing wall square in abrahamwl_protected_by_tso_2.

--------------------------------------------------------------------------------
061dcfa635 | Michael Gagno | 2011-12-02 22:03:25 -0800

Change permarock to stone in zot entry vaults.
Also make more consistent use of stone. One used rock, one stone, the rest
permarock. I don't think permarock is needed here.

--------------------------------------------------------------------------------
a1df136357 | Samuel Bronson | 2011-12-02 18:26:24 -0500

Implement CMD_TARGET_WIZARD_GAIN_LEVEL.
This required adding a parameter to monster::gain_exp specifying the
maximum number of levels to be gained.

--------------------------------------------------------------------------------
1727034c4f | Samuel Bronson | 2011-12-02 17:22:40 -0500

When just *viewing* spells, don't colour them based on transients.
Motivation: I'm tired of having the list shown in dark grey just because
there don't happen to be any monsters nearby when I press 'I'.

--------------------------------------------------------------------------------
339bdf48ef | Samuel Bronson | 2011-12-02 15:53:13 -0500

Correct comments: Wanderers never start with striking anymore.

--------------------------------------------------------------------------------
7cf145cc53 | Samuel Bronson | 2011-12-02 15:14:19 -0500

Remove useless code, even if it *is* rather entertaining.

--------------------------------------------------------------------------------
20e8f24fc5 | David Lawrence Ramsey | 2011-12-02 14:11:05 -0600

Remove commented-out merge conflict.
The uncommented version, which is identical, occurs in
mon-ench.cc:monster::add_enchantment_effect().

--------------------------------------------------------------------------------
a0993b9ffc | David Lawrence Ramsey | 2011-12-02 14:04:53 -0600

Keep monsters that can't berserk from drinking potions of berserk rage.

--------------------------------------------------------------------------------
0f71e83dd2 | David Lawrence Ramsey | 2011-12-02 14:04:05 -0600

For consistency, put all monster potion effects in the same order.

--------------------------------------------------------------------------------
bf26f5e382 | David Lawrence Ramsey | 2011-12-02 13:38:39 -0600

Fix indentation.

--------------------------------------------------------------------------------
8029d7be41 | David Lawrence Ramsey | 2011-12-02 13:38:39 -0600

Simplify SoB and berserk checks by using player::can_bleed().
If they have enough blood to bleed, they have enough to use SoB on
themselves or to go berserk.

Note that player::can_bleed(), when used in these two cases, will ignore
transformations other than lichform, to preserve previous behavior (e.g.
players in spider form can't bleed, but can still cast SoB on themselves
and go berserk).  Maybe this should be changed, or would it weaken
certain transformations too much?

--------------------------------------------------------------------------------
aa5464c8a8 | David Lawrence Ramsey | 2011-12-02 13:38:39 -0600

Fix player::can_bleed() to account for non-vampire undead.

--------------------------------------------------------------------------------
2500e777b7 | Robert Burnham | 2011-12-02 08:18:54 -0600

Fix documentation

--------------------------------------------------------------------------------
09a9892e22 | Robert Burnham | 2011-12-02 08:12:32 -0600

Revert part of b59e792f

--------------------------------------------------------------------------------
2a46f78e97 | Robert Burnham | 2011-12-02 07:47:23 -0600

More documentation

--------------------------------------------------------------------------------
b59e792f27 | Robert Burnham | 2011-12-02 07:47:23 -0600

Remove misleading code from player aux attack
Player aux attack checked the method of attack_shield_blocked, yielding
the illusion that defending monsters could actually block a player aux
attack. This is not the case, attack_shield_blocked is a player-only method
(for now) and always returns false when defender->atype() != ACT_PLAYER.

--------------------------------------------------------------------------------
d991a40dc8 | Robert Burnham | 2011-12-02 07:47:23 -0600

Comments and documentation

--------------------------------------------------------------------------------
eb9323c868 | Robert Burnham | 2011-12-02 07:47:22 -0600

Whitepsace fix

--------------------------------------------------------------------------------
f390fcbdb7 | David Lawrence Ramsey | 2011-12-02 12:17:05 -0600

Fix check for non-undead casting SoB on themselves.

--------------------------------------------------------------------------------
bb00ef641d | David Lawrence Ramsey | 2011-12-02 12:11:51 -0600

Since ghouls don't have blood, remove their ability to cast SoB on themselves.

--------------------------------------------------------------------------------
0dbfa463a4 | David Lawrence Ramsey | 2011-12-02 12:02:16 -0600

Remove unneeded comment.

--------------------------------------------------------------------------------
ceacc11038 | David Lawrence Ramsey | 2011-12-02 11:56:55 -0600

Generalize vampire species checks into US_SEMI_UNDEAD undead checks.

--------------------------------------------------------------------------------
f89e9a52f2 | David Lawrence Ramsey | 2011-12-02 09:56:20 -0600

Fix Mantis 4995: Destroyed grates now display messages when seen but not heard.

--------------------------------------------------------------------------------
0b701029e0 | David Lawrence Ramsey | 2011-12-02 09:32:51 -0600

Add indentation fix.

--------------------------------------------------------------------------------
edfab3fac9 | Adam Borowski | 2011-12-02 16:24:05 +0100

Update the Orb's position after throwing or destroying it.

--------------------------------------------------------------------------------
66982c8948 | Adam Borowski | 2011-12-02 16:24:04 +0100

Inscribe artefact rings of teleportation as "*TELE +Tele".

--------------------------------------------------------------------------------
128f938689 | elliptic | 2011-12-02 09:18:37 -0500

Fix Statue Form doing far more unarmed damage than intended.

--------------------------------------------------------------------------------
90dbe2e0df | elliptic | 2011-12-02 08:59:53 -0500

Fix @ showing randomized attack delay and applying finesse/haste incorrectly.

--------------------------------------------------------------------------------
844443f047 | Adam Borowski | 2011-12-02 14:15:12 +0100

Don't let Prince Ribbit be polymorphed into a human.
If you have access to a wand or the spell, you'll usually try it multiple
times; Ribbit was special-cased only on the first polymorph.

--------------------------------------------------------------------------------
71fce99aec | Adam Borowski | 2011-12-02 12:41:07 +0100

Remove redundant platform specific display flushing.
It's already done in update_screen() anyway.

--------------------------------------------------------------------------------
4d8a9aa4d2 | Adam Borowski | 2011-12-02 12:41:07 +0100

Consistently use a space after flow control statements.

--------------------------------------------------------------------------------
faa0ec9203 | Adam Borowski | 2011-12-02 12:41:06 +0100

Remove two scripts for messing with enum values.

--------------------------------------------------------------------------------
c72a052cb4 | Adam Borowski | 2011-12-02 12:41:06 +0100

Axe some unused braces.

--------------------------------------------------------------------------------
b438b77489 | elliptic | 2011-12-01 19:55:56 -0500

Fix antimagic() issues.
First, it was previously possible to die instantly by reading a scroll of
vulnerability while levitating over water or lava... it looks like this was
an unintentional consequence of the delay changes in 0.6. Now you should get
a turn to do something before the levitation ends.

Second, reading a scroll of vulnerability with teleport active used to
function as an instant teleport... a very powerful trick that isn't really
in the spirit of antimagic. Now it just cancels the teleport. This is a buff
to monsters with antimagic breath (quicksilver dragons and purple dracs), but
that seems okay... quicksilver dragons have been getting fewer kills with
each version for some reason, and no kills so far in 0.10.

--------------------------------------------------------------------------------
5eeca0d9eb | Florian Diebold | 2011-12-02 00:55:27 +0100

Fix console compilation.

--------------------------------------------------------------------------------
fa2ffbebff | Florian Diebold | 2011-12-02 00:28:37 +0100

Rename the minor version tag, since the change includes more stuff now.

--------------------------------------------------------------------------------
d7429763f9 | Florian Diebold | 2011-12-02 00:22:57 +0100

Don't save tile_bk_{fg,bg} anymore.
Instead, it is regenerated from map_knowledge after loading.

(This commit reuses the minor version tag from the previous ones and
will thus crash on saves from the previous two commits.)

--------------------------------------------------------------------------------
2f2b21a9d9 | Samuel Bronson | 2011-12-01 18:16:00 -0500

Reset trainable skills properly with "restart_after_game = true" (#4816)

--------------------------------------------------------------------------------
a974ddbca2 | Florian Diebold | 2011-12-01 23:11:48 +0100

Add more cloud data to map_knowledge; make tilepick.cc use it instead of the 
actual cloud_struct.
This adds the cloud tile and the value of cloud.decay/20, clipped to
the range 0-3, to the map_knowledge, and organizes all cloud-related
data into a new cloud_info struct. Both of these are required for the
tile picking code.

(Doesn't introduce a new minor tag, so saves from the previous commit
will crash.)

--------------------------------------------------------------------------------
c98e1b498a | Samuel Bronson | 2011-12-01 11:56:29 -0500

Mention the {throwable} annotation in the comments atop stash.lua.
Also point out that the armour type appears before the word "armour" in
class annotations.

--------------------------------------------------------------------------------
2f1e335244 | elliptic | 2011-12-01 10:56:37 -0500

Use drained stat values for Jiyva stat shifting.
Using undrained values had the potential to cause all sorts of problems for
people with heavy stat drain, including death from having a stat shifted to 0.

This makes more sense anyway, given that Jiyva stat shifting also takes item
modifiers into account.

--------------------------------------------------------------------------------
67ca4b6d12 | Adam Borowski | 2011-12-01 16:11:13 +0100

Fix a crash with AT_RANDOM.

--------------------------------------------------------------------------------
dad2f7252f | Adam Borowski | 2011-12-01 15:41:41 +0100

Fix some uninitialized variables.

--------------------------------------------------------------------------------
ece4576912 | Adam Borowski | 2011-12-01 15:06:58 +0100

Unbreak apply_damage_brand()

--------------------------------------------------------------------------------
a7af67ac8a | Robert Burnham | 2011-12-01 02:50:01 -0600

Add in handfuls of comments
COMMENT ALL THE THINGS

--------------------------------------------------------------------------------
ae60955a7a | Robert Burnham | 2011-12-01 02:50:01 -0600

Fix phase return values and phase handling

--------------------------------------------------------------------------------
53abe29a6a | Robert Burnham | 2011-12-01 02:50:00 -0600

Re-arrange initialization of noise_factor

--------------------------------------------------------------------------------
0274f0189e | elliptic | 2011-12-01 03:51:08 -0500

Wait until after player auxes to print monster wounds.

--------------------------------------------------------------------------------
243e6277cf | Samuel Bronson | 2011-12-01 00:58:46 -0500

Put throwable prefix in the stash-search help.
(Finally noticed that mail from dpeg...)
--------------------------------------------------------------------------------
528468f739 | David Lawrence Ramsey | 2011-11-30 21:01:39 -0600

Add preliminary description for spriggan bakers.

--------------------------------------------------------------------------------
b8af32b826 | David Lawrence Ramsey | 2011-11-30 20:54:18 -0600

Tweak wording.

--------------------------------------------------------------------------------
2060d210c1 | David Lawrence Ramsey | 2011-11-30 20:45:15 -0600

Remove unnecessary spacing.

--------------------------------------------------------------------------------
570cf5fdba | Adam Borowski | 2011-12-01 02:16:14 +0100

roctavian's tiles for Spider Nest's floor.

--------------------------------------------------------------------------------
48a291ede9 | elliptic | 2011-11-30 19:16:01 -0500

Fix monster minotaurs retaliating 100% of the time for testing.
Now they retaliate 40% of the time, same as a player with 20 Str and 20 Dex.

--------------------------------------------------------------------------------
03be1b6437 | elliptic | 2011-11-30 19:13:56 -0500

Don't clean up dead monsters in combat until handle_phase_killed().
This should fix several crashes caused by doing something involving a wiped-out
monster.

--------------------------------------------------------------------------------
4101fbbc31 | elliptic | 2011-11-30 19:13:56 -0500

Fix inconsistent noise levels for commands.
Previously a batformed player would squeak non-shouting commands at triple
the volume of a shout, for instance.

--------------------------------------------------------------------------------
f347a0535d | Adam Borowski | 2011-12-01 00:56:42 +0100

Turn seraphs into real monsters, they were broken by cherub changes.
Not meant to spawn anywhere else than the Pan level though.

--------------------------------------------------------------------------------
ff8a508e8b | Adam Borowski | 2011-12-01 00:56:42 +0100

An bunch of missspelings.

--------------------------------------------------------------------------------
d022172a35 | Adam Borowski | 2011-12-01 00:56:42 +0100

Retaliation from monster minotaurs.
This makes an already very dangerous monster even more deadly though,
encouraging kiting.  We may want to investigate this.  This commit provides
consistency with players, though.

--------------------------------------------------------------------------------
b502127d4f | Samuel Bronson | 2011-11-30 18:31:06 -0500

A couple of comments I stashed ages ago and just found.

--------------------------------------------------------------------------------
965a83c03e | Robert Burnham | 2011-11-30 12:22:11 -0600

Fix AT_CHERUB and reorganize some attack skip code

--------------------------------------------------------------------------------
b0425c440e | Adam Borowski | 2011-11-30 22:07:37 +0100

Remove an useless calculation.

--------------------------------------------------------------------------------
63f921021a | Adam Borowski | 2011-11-30 22:06:15 +0100

Clear the felid life gain blocker only on death, not on draining.

--------------------------------------------------------------------------------
74ecc0291b | Adam Borowski | 2011-11-30 22:03:57 +0100

Don't list portals back to the Vestibule on ^O.

--------------------------------------------------------------------------------
af59dbecf5 | Adam Borowski | 2011-11-30 22:03:57 +0100

Fix the display of XL checkpoints after 27.

--------------------------------------------------------------------------------
fb910549e2 | elliptic | 2011-11-30 15:30:34 -0500

Don't clear stab_bonus inside the aux code.
Auxes currently use stab_bonus only to determine whether a stab happened
earlier in the attack round.

--------------------------------------------------------------------------------
0d56aa7310 | elliptic | 2011-11-30 15:22:00 -0500

Fix monsters getting permanently labeled as helpless (Mantis 4986).
We can work out which messages we want to use "helpless" in later; for now
let's just restrict it to the stab message itself.

--------------------------------------------------------------------------------
99dfa2b449 | Adam Borowski | 2011-11-30 15:58:49 +0100

Less castrated sheep in comments, please.

--------------------------------------------------------------------------------
7979e89c51 | Adam Borowski | 2011-11-30 15:36:50 +0100

Attach nutritional labels to hangedman's food vaults.

--------------------------------------------------------------------------------
d596e63861 | Adam Borowski | 2011-11-30 15:36:50 +0100

roctavian's tiles for Trove, Bazaar, expired Ice Cave, WizLab.

--------------------------------------------------------------------------------
13907ac783 | Adam Borowski | 2011-11-30 15:36:50 +0100

Robsoie's adjustment to his skeletal toad tile.

--------------------------------------------------------------------------------
00275a64eb | Adam Borowski | 2011-11-30 15:36:50 +0100

A quote for Ice Storm.

--------------------------------------------------------------------------------
f5799552b4 | Adam Borowski | 2011-11-30 15:36:50 +0100

Make the strawberry field a field, drop porridge from the owner's cottage.

--------------------------------------------------------------------------------
d78438e2ce | Adam Borowski | 2011-11-30 15:36:49 +0100

Attach nutritional labels to old food vaults.

--------------------------------------------------------------------------------
229f60c5ea | Adam Borowski | 2011-11-30 15:36:49 +0100

Axe a number of useless comments about enum values.

--------------------------------------------------------------------------------
ac21c39068 | Adam Borowski | 2011-11-30 11:39:13 +0100

Reform felid lives; give information when you'll get a next one.
The stress is on making it easier for average players who actually die
often, and harder for top ones who hardly ever die and stash up insurance.
We can't stop gain with two spares altogether (or people would try to keep
their level low), so I slowed down the rate such stashed up lives turn into
actual spares: no more than one per two levels.  The hard cap is gone again,
it penalized average players while not affecting top ones.

--------------------------------------------------------------------------------
5e557b70aa | Gustaf Hallberg | 2011-11-30 11:39:13 +0100

Sparkling fountain of Poison should show up as cause of death.

--------------------------------------------------------------------------------
66ea30cc54 | Adam Borowski | 2011-11-30 11:39:13 +0100

Convert FeWn with invalid weapon skills to unarmed.

--------------------------------------------------------------------------------
97cfd074a8 | Adam Borowski | 2011-11-30 11:39:13 +0100

Fix the netted launcher penalty doing nothing.

--------------------------------------------------------------------------------
8c5e5a4a92 | Adam Borowski | 2011-11-30 11:39:13 +0100

Don't assume any numeric values of deck rarity enums.

--------------------------------------------------------------------------------
302122d87c | Samuel Bronson | 2011-11-30 01:07:27 -0500

More capitalization fixes.

--------------------------------------------------------------------------------
fde24eb622 | Samuel Bronson | 2011-11-29 22:14:09 -0500

Fix the description on the statue in lemuel_ice_spiral_2.

--------------------------------------------------------------------------------
0ab42b4cd3 | Samuel Bronson | 2011-11-29 22:13:11 -0500

Correct wrongly-uppercased 'A' in "desc" properties in many vaults.

--------------------------------------------------------------------------------
c3c64e6abf | Neil Moore | 2011-11-30 01:55:10 +0000

Fix needles of sleeping.
We special-case missiles of sleeping to re-sleep the monster after
firing the ME_ANNOY behaviour event.  If other non-enchantment beams
can cause sleeping, this will have to be re-thought.

--------------------------------------------------------------------------------
555c2353b7 | Neil Moore | 2011-11-30 01:54:51 +0000

Allow reskilling from untrainable skills.
It was already possible to reskill to them.

--------------------------------------------------------------------------------
956af5c418 | Neil Moore | 2011-11-30 01:43:28 +0000

Do not crash when declining to abort an ID scroll.

--------------------------------------------------------------------------------
af7f19ccf2 | Neil Moore | 2011-11-30 01:43:16 +0000

Fuzz target when reaching while confused.
The attack goes to a random square within reaching range.  If
your own square is chosen, you get a different message, but
don't actually hurt yourself.

If there is a wall in the way, you still lose the turn.

--------------------------------------------------------------------------------
76f9188497 | Adam Borowski | 2011-11-29 22:53:19 +0100

Make dungeon exit stairs lightblue.
As a side effect of making them a branch exit they turned yellow which is
somewhat misleading.  Of course, if anyone disagrees, feel free to repaint
this bikesheed.

At least they don't look like regular upstairs or hatches anymore.

--------------------------------------------------------------------------------
e7466cb965 | Samuel Bronson | 2011-11-29 16:40:03 -0500

Merge branch 'visual-spell' of 
git://gitorious.org/~neilmoore/crawl/neilmoore-crawl

--------------------------------------------------------------------------------
5ed357ef94 | Samuel Bronson | 2011-11-29 16:39:55 -0500

Merge branch 'dd-lich-nomem-reason' of 
git://gitorious.org/~neilmoore/crawl/neilmoore-crawl

--------------------------------------------------------------------------------
1398676254 | elliptic | 2011-11-29 16:17:10 -0500

Fix DD + Trog's Hand + Guardian Spirit being abusable for faster healing 
(lunarharp).

--------------------------------------------------------------------------------
422ade5838 | Samuel Bronson | 2011-11-29 12:39:45 -0500

Merge branch 'describe-fixes' of 
git://gitorious.org/~neilmoore/crawl/neilmoore-crawl

--------------------------------------------------------------------------------
11d7403bb5 | Neil Moore | 2011-11-29 12:32:13 -0500

Clarify that DD liches can never memorise Regeneration
If the player is prohibited from memorising/casting a spell because of
race and also because of lichform, don't say that the player "currently"
cannot memorise the spell.

--------------------------------------------------------------------------------
da8b10da2c | Robert Burnham | 2011-11-29 10:15:15 -0600

Mantis 4976: Aux unarmed on friendly (enslaved soul)

--------------------------------------------------------------------------------
1d46f048e7 | Robert Burnham | 2011-11-29 09:40:21 -0600

Change combat-message ordering
This moves the print_wounds to the bottom of the combat tree
(so that it takes place after unarmed combat). If there are even
more funny combat messages after this, you can be sure its this
commit.

--------------------------------------------------------------------------------
6e7bdf4298 | Robert Burnham | 2011-11-29 09:06:42 -0600

Fix attack_type handling

--------------------------------------------------------------------------------
113baa7193 | David Lawrence Ramsey | 2011-11-29 07:37:20 -0600

Fix indentation.

--------------------------------------------------------------------------------
d3604ebb42 | elliptic | 2011-11-29 03:16:29 -0500

Make stabs always hit the monster.
Previously hitting a sleeping or paralyzed monster incorrectly had a 5%
chance of missing it.

--------------------------------------------------------------------------------
775e800caf | elliptic | 2011-11-29 03:16:29 -0500

Remove duplicate copy of code for vampire bite-stabbing.

--------------------------------------------------------------------------------
a84d1178d0 | Michael Gagno | 2011-11-28 23:44:20 -0800

Modifications to lemuel_temple_firewalk vaults.
Both of these vaults guarantee a safe corridor to the temple entrance...
the problem was that the clouds could still appear close enough to this
corridor for a travel exclusion to be placed over it. This could have the
effect of "blocking" the temple entrance with exclusions, making it likely
for the player to miss the entrance to the temple (and misleading them into
thinking there's no safe area).

I moved the cloud generators a bit to guarantee that the middle corridor
will never have an exclusion placed on it.

I also added a floor tile to the "marked" variant.

--------------------------------------------------------------------------------
79bf8a7b81 | elliptic | 2011-11-29 01:30:38 -0500

Fix attack delay bugs.
Among other things, all misses were delay 10 previously, which was a
substantial nerf for melee chars after early game.

--------------------------------------------------------------------------------
e4455b7e35 | David Lawrence Ramsey | 2011-11-28 23:39:27 -0600

Tweak punctuation.

--------------------------------------------------------------------------------
d1e3e1d8bd | Neil Moore | 2011-11-28 23:46:01 -0500

Fix VISUAL SPELL: and similar messages.
Commit e6ed42f removed the special cases for the "VISUAL SPELL",
"VISUAL WARN", and "VISUAL ENCHANT" channel prefixes.  Re-add
them in strip_channel_prefix().

--------------------------------------------------------------------------------
beffa3dc91 | David Lawrence Ramsey | 2011-11-28 22:41:25 -0600

Add spacing fix.

--------------------------------------------------------------------------------
ec7993a105 | elliptic | 2011-11-28 21:49:50 -0500

Make Apportation move items partway if possible if bad terrain is in the way.
This change also makes it impossible to destroy items (or bury them in deep
water) by use of Apportation, so the prompt to cast it when flying above bad
terrain was removed.

--------------------------------------------------------------------------------
1d0e245a79 | David Lawrence Ramsey | 2011-11-28 20:32:58 -0600

Make all unrotting-en-masse calls use the same value.

--------------------------------------------------------------------------------
018da3614d | Robert Burnham | 2011-11-28 12:39:24 -0600

Fix ranged stab-bites for hungry vampires

--------------------------------------------------------------------------------
aabb146afe | Robert Burnham | 2011-11-28 10:53:40 -0600

Fix uninitialized special_damage

--------------------------------------------------------------------------------
1f697709a3 | Robert Burnham | 2011-11-28 08:44:46 -0600

Fix Monster Attack Flavour for no-damage attacks

--------------------------------------------------------------------------------
552ec141da | elliptic | 2011-11-28 03:38:43 -0500

Fix AEVP formula (|amethyst).

--------------------------------------------------------------------------------
20fcd5e4df | Neil Moore | 2011-11-28 02:24:43 -0500

Only include item origins in verbose descriptions.
In particular, this keeps them out of artefact descriptions in morgue
files, since the origin is already being printed there.

Fixes #4953.

--------------------------------------------------------------------------------
66f00dbb84 | Neil Moore | 2011-11-28 01:39:49 -0500

Use DESC_THE/DESC_A in a few more places.
It should be cleaner than using DESC_PLAIN and prepending "a" or "the".

Also fix a doubled "the" in "Jiyva's putrescence saturates. . .".

--------------------------------------------------------------------------------
bd487750b5 | Neil Moore | 2011-11-28 01:15:54 -0500

More description and messaging fixes.
The following changes, taken together, fix bug #4969 :
 * Do not use "the" or "of foo" with the dbname of named corpses.
 * Add an extra newline if we didn't get a database description (since
   it will be removed again shortly).
 * Avoid an extra "a" when describing an item of unknown type.
 * Avoid extra "the"s when butchering named corpses.

And a few more blank line changes:
 * Add a missing blank line before the weapon stats of rods and staves.
 * Remove an extra blank line in wand descriptions.

--------------------------------------------------------------------------------
54508d0403 | Samuel Bronson | 2011-11-28 00:08:52 -0500

Merge branch 'describe-fixes' of 
git://gitorious.org/~neilmoore/crawl/neilmoore-crawl

--------------------------------------------------------------------------------
f6aaac5571 | Neil Moore | 2011-11-27 23:38:22 -0500

Remove excessive blank lines from descriptions.
Also, avoid prepending "the" to the DESC_DBNAME of artefacts.

--------------------------------------------------------------------------------
f1ca093e5d | Michael Gagno | 2011-11-27 20:37:42 -0800

Tone down the mikee_hates_you vault.
The depth range is changed from 9-27 to 13-27 and the trident is half as
likely to be of distortion. This can still be dangerous if you're pulled
into it early, but the door does have a warning on it, and you're likely to
be able to teleport by this point.

--------------------------------------------------------------------------------
0193169b9c | elliptic | 2011-11-27 22:24:52 -0500

Decrease damage on AC-checking BEAM_ELEC effects slightly.
Shock, Lightning Bolt, Chain Lightning, Orb of Electricity all got their
damage slightly reduced to compensate for halving monster AC.

--------------------------------------------------------------------------------
ce75753789 | elliptic | 2011-11-27 22:24:52 -0500

Make BEAM_ELEC halve monster AC as well as player AC.
This asymmetry between monsters and players meant that lightning was actually
worse against high AC monsters than normal (because of bolt bouncing) but
better against high AC players.

--------------------------------------------------------------------------------
80a398b6d1 | Robert Burnham | 2011-11-27 20:48:08 -0600

Fix god-credit of summon / ally kills
Done by |amethyst!

--------------------------------------------------------------------------------
7c8b1c8d22 | Robert Burnham | 2011-11-27 20:48:07 -0600

Fix confusion-stabs not removing helpless

--------------------------------------------------------------------------------
72d9aea244 | Michael Gagno | 2011-11-27 17:19:52 -0800

Remove an obsolete comment.

--------------------------------------------------------------------------------
1abbc03f5e | Michael Gagno | 2011-11-27 17:11:17 -0800

Give a vault the mini_float tag.

--------------------------------------------------------------------------------
db7d142328 | Robert Burnham | 2011-11-27 18:58:28 -0600

Fix vampirism not occuring on kill-hit

--------------------------------------------------------------------------------
018012fd77 | elliptic | 2011-11-27 19:44:22 -0500

Fix enemy draconians trying to do reaching tail-slaps and crashing.

--------------------------------------------------------------------------------
d0cd0f439f | Samuel Bronson | 2011-11-27 19:33:04 -0500

Prevent accidental abort of un-IDed ?identify/?enchant armour/?recharging.
I've been doing this myself a fair amount lately ...

--------------------------------------------------------------------------------
3d47468398 | Samuel Bronson | 2011-11-27 19:04:15 -0500

Make prompt_invent_item handle case where only relevant item is excluded.

--------------------------------------------------------------------------------
c9d3ac4e38 | Chris Campbell | 2011-11-27 23:28:36 +0000

Improve ranged monster behaviour with Temporal Distortion
update_level is appropriate for a full Step from Time but not so much
here, it has some undesirable effects and makes things back away from
you instead of approaching. Possibly the ability will still need
looking at, needs more testing definitely.

--------------------------------------------------------------------------------
ed95b59253 | Chris Campbell | 2011-11-27 23:28:31 +0000

Don't make fungi mesmerise you when using the obsidian axe

--------------------------------------------------------------------------------
520bbd1833 | elliptic | 2011-11-27 17:17:29 -0500

Fix cards having the wrong weighting inside decks.
Previously plain decks had ornate weightings, ornate had legendary
weightings, and legendary had completely messed up weightings.

--------------------------------------------------------------------------------
60e61c8b9e | David Lawrence Ramsey | 2011-11-27 15:44:34 -0600

Tweak deformed body mutation messages, to better match the non-armour wearers'.

--------------------------------------------------------------------------------
50428df722 | elliptic | 2011-11-27 15:55:57 -0500

Fix some monsters losing all their attacks.

--------------------------------------------------------------------------------
1294cf7a3f | elliptic | 2011-11-27 15:54:30 -0500

Revert "Revert "Clean up aux code a bit.""
This reverts commit b78c00d44495ca2ef685d25537e4078b10598a63.

Next commit fixes the error this commit introduced with many monsters losing
their attacks... oops!

--------------------------------------------------------------------------------
32a2091cc3 | Robert Burnham | 2011-11-27 09:51:44 -0600

Fix transformation attack verbs
Transformation attack verbs (for unarmed attacks) were being
properly set, then overwritten unnecesarily. This commit puts
the selection of transformation attack verbs into the section
which selects the unarmed attack verb.

--------------------------------------------------------------------------------
5013ffc641 | David Lawrence Ramsey | 2011-11-27 14:45:53 -0600

Fix rotting resistance for vampires: level 1 only for thirsty or below.

--------------------------------------------------------------------------------
3b56d20fcb | David Lawrence Ramsey | 2011-11-27 14:35:24 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
e39cb634ca | David Lawrence Ramsey | 2011-11-27 14:28:28 -0600

Remove unneeded blank lines.

--------------------------------------------------------------------------------
e2e818a274 | Robert Burnham | 2011-11-27 09:16:34 -0600

Fix acid-splash messages when using autofight
While the code added here is probably good (until some attack_flavour
symmetry is found), we really aught to figure out why you get random
"<monster> is splashed with acid" messages (and effects, it seems)
when you use autofight on an ASCII build of trunk.

It probably has something to do with an unitialized variable, but
that doesn't explain why its limited only to autofight...

--------------------------------------------------------------------------------
b78c00d444 | Robert Burnham | 2011-11-27 12:37:50 -0600

Revert "Clean up aux code a bit."
This reverts commit 4cde183eca711078bdf6e2d9a0ec6ff6275875d5.

This commit breaks hydra, black mamba, and who knows how many other
forms of combat. I'll review the content (most of which is probably
desirable) and once I figure out what was breaking the combat for
these monsters, I'll re-implement and push everything else in this
commit back.

--------------------------------------------------------------------------------
1c397bb3a5 | Robert Burnham | 2011-11-27 12:27:08 -0600

Fix no-damage stabs not waking up monsters

--------------------------------------------------------------------------------
9e132483ba | Robert Burnham | 2011-11-27 02:56:25 -0600

Adjust nemelex ability descriptions
Draw two and peek at four now include how many cards get discarded.

--------------------------------------------------------------------------------
20f1e0eb48 | Robert Burnham | 2011-11-27 02:42:48 -0600

Fix staff and attack flavour effects
Staff and attk flavours were only being applied if some damage was done
which isn't desirable. This also fixes monsters not always being woken up
if you attack them with a staff while they sleep.

--------------------------------------------------------------------------------
65669c53f0 | Michael Gagno | 2011-11-26 22:46:26 -0800

Modifications to evilmike_cerebov_lava.
I've made the lava smokeless and widened the central island a bit. I've
encountered this vault twice now in normal games, and felt that the smoke
(and other visual obstructions) made the Cerebov fight almost trivial for
anyone with decent long-ranged attacks.

These changes should address that somewhat, although Cerebov's pathfinding
still isn't great (he doesn't seem to be able to find his way around the
lava).

--------------------------------------------------------------------------------
7a637f25b7 | Michael Gagno | 2011-11-26 21:14:10 -0800

Replace trident with spear in hangedman_fish_farm.
Merfolk was probably too dangerous for d:7... this should lower the damage
somewhat. It should be roughly as dangerous as an orc warrior.

--------------------------------------------------------------------------------
395605ada9 | Michael Gagno | 2011-11-26 21:07:12 -0800

Seven food vaults (HangedMan).

--------------------------------------------------------------------------------
20cc63c267 | David Lawrence Ramsey | 2011-11-26 21:32:30 -0600

Fix TSO's rewarding kills of unholy evil monsters twice.
This is modeled after the previous Zin fix.  Monsters can be both if
they have (unholy) demon-summoning spells and (evil) necromantic spells
or attack flavors such as draining.

--------------------------------------------------------------------------------
6449275f5b | Adam Borowski | 2011-11-27 04:04:41 +0100

Relax the nausea restriction to Near Starving.
As elliptic noticed, it leads to waiting until Starving, since penalties
caused by hitting Starving during combat are too risky for some characters
(especially pure conjurers), thus making people wait which is exactly what
nausea is supposed to eliminate.

The nutrition is cut to 1/2 for permafood, 1/3 or less for chunks, same as
at Starving.

--------------------------------------------------------------------------------
be7416c3d4 | Adam Borowski | 2011-11-27 04:01:03 +0100

Fix Zin rewarding kills of chaotic unclean monsters twice.

--------------------------------------------------------------------------------
ae566cd63e | Adam Borowski | 2011-11-27 03:42:12 +0100

roctavian's edits to Snake floor tiles.
Per Keskitalo's advice, these are variants A, C and D from the eight submitted.

--------------------------------------------------------------------------------
1e6ecf0c62 | Adam Borowski | 2011-11-27 03:42:12 +0100

Use a more() when Evolution gives you a mutation.
Since it can come at any moment, it's likely you'd miss it.

This version is hard coded, it'd be better to have this configurable, but
for an easy way it'd require coming up with a message given AFTER the
mutation, and I can't think of a good one right now.

--------------------------------------------------------------------------------
09e14d76f0 | Adam Borowski | 2011-11-27 03:42:12 +0100

Unify missile traps for players vs monsters.
* players lose an extra DEX bonus
* monsters get a 1/5 chance of avoiding unknown traps
* monsters get to shield block

--------------------------------------------------------------------------------
8c68072f61 | Adam Borowski | 2011-11-27 03:41:53 +0100

Greatly nerf RMsl and DMsl against traps.
Before, RMsl gave +10 EV for every remaining turn of duration (ie, +1000 EV
if freshly cast with decent power -- or recast multiple times with any).
DMsl made you immune to missile traps completely.

Both now use the same formula as regular missile combat.

--------------------------------------------------------------------------------
a13f713f1c | Adam Borowski | 2011-11-27 03:36:10 +0100

Make launcher to-hit penalty when netted slightly less negligible.
Even halving it means little: it's only base weapon to-hit plus elven +1.
The whole rest -- enchantment, your skill, dexterity, etc, are unaffected.

--------------------------------------------------------------------------------
169710b262 | Adam Borowski | 2011-11-27 03:36:09 +0100

Unify the code for RMsl and DMsl somewhat; reduce unnecessary hit tests.

--------------------------------------------------------------------------------
4cde183eca | elliptic | 2011-11-26 20:53:11 -0500

Clean up aux code a bit.
Passing allow_unarmed around everywhere wasn't actually doing anything, and
can_do_unarmed was misleading.

--------------------------------------------------------------------------------
e16992fe3c | elliptic | 2011-11-26 20:53:11 -0500

Remove check for auxes hitting submerged monsters, since they can't anyway.
We can re-add this if we ever change how submerged monsters work, but this
check was incorrectly placed anyway.

--------------------------------------------------------------------------------
e95734dd08 | elliptic | 2011-11-26 20:53:11 -0500

Fix melee auxes.
They were broken by UCC to require unarmed skill again.

--------------------------------------------------------------------------------
f7a0cd2fa1 | elliptic | 2011-11-26 20:53:11 -0500

Remove unused hand_half_bonus variable.
It wasn't used before UCC either, and the values assigned to it didn't make
much sense anyway.

--------------------------------------------------------------------------------
5309e51a55 | Florian Diebold | 2011-11-27 02:07:07 +0100

Clip glyphs to their grid cells in Webtiles glyph mode.

--------------------------------------------------------------------------------
0b72d37b28 | Michael Gagno | 2011-11-26 13:37:20 -0800

Name the wizard (with custom spells) in the laboratory_2 minivault.
In general, I think that vault monsters should be given custom
names/descriptions if they have custom stats/spells. In this case, the vault
monster has the polymorph other spell.

I am calling it a "mad wizard" here because it is basically a mad scientist
theme. No other information is given to the player, but this should at least
clue them in that it's not a normal wizard monster.

Note that the monster did already have a custom colour defined. However,
this isn't enough because (a) custom colour is a lot less obvious than a
custom name, and (b) it looks the same in tiles.

--------------------------------------------------------------------------------
4fbb0885df | David Lawrence Ramsey | 2011-11-26 10:13:59 -0600

Add spacing fix.

--------------------------------------------------------------------------------
8ddb8e4840 | Florian Diebold | 2011-11-26 16:02:58 +0100

Webtiles: Update idle timers regularly.

--------------------------------------------------------------------------------
01229b51eb | Florian Diebold | 2011-11-26 16:01:28 +0100

Webtiles: Don't leave the focus on controls in the settings dialog when closing 
it.

--------------------------------------------------------------------------------
f85f6b2226 | Florian Diebold | 2011-11-26 15:22:14 +0100

Don't show plants and other NO_EXP monsters in the Webtiles monster list.

--------------------------------------------------------------------------------
6978e669c2 | Florian Diebold | 2011-11-26 15:22:14 +0100

Save the glyph mode setting in a cookie.

--------------------------------------------------------------------------------
d216adaf6d | Florian Diebold | 2011-11-26 15:22:14 +0100

Add a settings dialog for Webtiles so the glyph mode can actually be activated.
Currently, the settings dialog can only be accessed via the F10 key.

--------------------------------------------------------------------------------
087bc88771 | Florian Diebold | 2011-11-26 15:22:14 +0100

Webtiles: Darken background in dialogs.

--------------------------------------------------------------------------------
3d0554fd6e | Florian Diebold | 2011-11-26 15:22:14 +0100

Implement a "glyph mode" for Webtiles.
This means that dungeon cells are rendered with letters, like on the
console. Spectators can choose to use the mode independently.

--------------------------------------------------------------------------------
752ad51d18 | Florian Diebold | 2011-11-26 15:22:14 +0100

Upgrade to jQuery 1.7.

--------------------------------------------------------------------------------
4bceffe114 | Robert Burnham | 2011-11-26 08:19:30 -0600

Fix staff-effect messages

--------------------------------------------------------------------------------
cdccc8e9a6 | Robert Burnham | 2011-11-26 08:19:29 -0600

Fix defender-invisible combat messages

--------------------------------------------------------------------------------
25780d98ef | Robert Burnham | 2011-11-26 08:19:29 -0600

Fix "It attacks It" messages
Missing a check on needs_message

--------------------------------------------------------------------------------
8b8bae24c5 | Samuel Bronson | 2011-11-26 00:59:44 -0500

Remove dangling clause which dolorous's last "spacing" fix touched.
Meant to remove this before; must have gotten distracted.

--------------------------------------------------------------------------------
4c44ea9554 | David Lawrence Ramsey | 2011-11-25 19:45:52 -0600

Fix inconsistency in one SHT message; all the others are in present tense.

--------------------------------------------------------------------------------
ee7814640c | David Lawrence Ramsey | 2011-11-25 19:39:19 -0600

Remove apparently erroneous comments.

--------------------------------------------------------------------------------
c498c6efbb | David Lawrence Ramsey | 2011-11-25 19:38:45 -0600

Add spacing fix.

--------------------------------------------------------------------------------
84e627ab23 | Samuel Bronson | 2011-11-25 20:09:24 -0500

Zap some incorrect uppercasing in _base_feature_desc().

--------------------------------------------------------------------------------
9c5eed2c56 | Samuel Bronson | 2011-11-25 20:09:13 -0500

Update some skill descriptions for recent changes related to smooth skills.
While we're here, improve style/capitalization and check spelling.

--------------------------------------------------------------------------------
0da95277d9 | David Lawrence Ramsey | 2011-11-25 17:46:02 -0600

Remove the #ifdefed-out naga-to-wood-golem snakes to sticks routine.
It was disabled anyway, and since monster_polymorph() was overhauled,
(a) the code won't compile as-is, and (b) more importantly, there's no
way to force the cross-species and cross-holiness polymorph anymore.

--------------------------------------------------------------------------------
ef104d30ff | David Lawrence Ramsey | 2011-11-25 17:19:45 -0600

Clean up Xom's snakes to sticks a bit, and allow creation of javelins.

--------------------------------------------------------------------------------
2a51ae0b75 | David Lawrence Ramsey | 2011-11-25 17:02:33 -0600

Reorder a few stickable weapon entries.

--------------------------------------------------------------------------------
a671622c38 | David Lawrence Ramsey | 2011-11-25 16:40:51 -0600

Simplify.

--------------------------------------------------------------------------------
86190c3979 | David Lawrence Ramsey | 2011-11-25 16:22:38 -0600

Comment fix.

--------------------------------------------------------------------------------
7482a9b90c | Michael Gagno | 2011-11-25 13:56:09 -0800

Rework an entry vault.
evilmike_entry_teleporters was problematic (rewarded spoiler knowledge, also
was potentially more dangerous than most entry vaults). I've reworked it
into something more mundane.

--------------------------------------------------------------------------------
bbe0e39934 | David Lawrence Ramsey | 2011-11-25 15:25:49 -0600

Comment fix.

--------------------------------------------------------------------------------
0c41ac5da8 | David Lawrence Ramsey | 2011-11-25 09:32:16 -0600

Fix pluralization for multiple-quantity objects' falling through shafts.

--------------------------------------------------------------------------------
6aee135ec5 | Adam Borowski | 2011-11-25 16:23:32 +0100

Fix an off-by-one error that dissallowed loading saves with Beastly Appendage.

--------------------------------------------------------------------------------
87c7dc77d8 | Adam Borowski | 2011-11-25 13:23:28 +0100

Show ghoul rot speed on '@'.
It always said "faster than usual" before, which was misleading since
rotting is normal for ghouls.

--------------------------------------------------------------------------------
06fddc4da4 | Adam Borowski | 2011-11-25 13:10:24 +0100

Change Transmuter short description -- no messing with potions anymore.

--------------------------------------------------------------------------------
55d9acdcb7 | Adam Borowski | 2011-11-25 13:04:51 +0100

Revert _nocap from items falling down shafts.

--------------------------------------------------------------------------------
b3af42db76 | elliptic | 2011-11-25 03:13:38 -0500

Kill petrified 0-headed hydras.

--------------------------------------------------------------------------------
5cee717882 | elliptic | 2011-11-25 02:38:11 -0500

Fix Mantis 4779.

--------------------------------------------------------------------------------
ba6737dae8 | elliptic | 2011-11-25 02:38:11 -0500

Add two clua functions.
crawl.messages(n) returns the last n messages in your history.

you.see_invisible() tells you whether you know that you can see invisible.

--------------------------------------------------------------------------------
48d548079f | Michael Gagno | 2011-11-24 23:29:44 -0800

Remove a problematic abyss vault.

--------------------------------------------------------------------------------
6b1ec80b30 | David Lawrence Ramsey | 2011-11-25 00:02:56 -0600

Add utility function is_giant_club_type(); use it for giant club special cases.

--------------------------------------------------------------------------------
b151db13f8 | David Lawrence Ramsey | 2011-11-24 22:48:42 -0600

Make shapeshifters unable to change form when paralyzed or petrify(ing|ied).
This may fix Mantis 4905 as a side effect.

--------------------------------------------------------------------------------
6a152b1055 | David Lawrence Ramsey | 2011-11-24 22:16:35 -0600

Remove no-longer-valid comment.

--------------------------------------------------------------------------------
003c9afb3a | Michael Gagno | 2011-11-24 19:41:04 -0800

Oklob vault.
Somewhat spoilery if you know the oklob is there. I put a chance of having
an item underneath the oklob so spoiled players have a reason for digging to
it.

--------------------------------------------------------------------------------
f829e94de2 | David Lawrence Ramsey | 2011-11-24 21:09:27 -0600

Finally fix Mantis 4765.
Yred's Animate Remains/Animate Dead upgrade now keeps its
Invocations-based slot again, as expected.

According to the ##crawl-dev logs, thanks to Fyren for pointing out (a)
the revision when it was actually broken, and (b) that the ability
letter table was holding the placeholder value (before it was changed by
_fixup_ability()), both of which I should have figured out, but for some
reason didn't, during my attempts to fix it before.  One of those
attempts did lead to a small cleanup, but still...

--------------------------------------------------------------------------------
57cdb97b8c | David Lawrence Ramsey | 2011-11-24 21:09:26 -0600

Add formatting fix.

--------------------------------------------------------------------------------
1136193777 | Michael Gagno | 2011-11-24 19:07:16 -0800

Rename forest_0.8 (the spriggan forest level).
Made sense when it was still version 0.8... we're a bit past that though. I
changed it to spriggan_forest.

--------------------------------------------------------------------------------
25c617838a | Michael Gagno | 2011-11-24 15:59:22 -0800

Fix a typo.

--------------------------------------------------------------------------------
3d17a763a4 | Michael Gagno | 2011-11-24 15:50:28 -0800

Beef jerky vault.

--------------------------------------------------------------------------------
767e955b8f | David Lawrence Ramsey | 2011-11-24 17:10:58 -0600

Fix player symbol updates for Beogh worship and best skill title changes.
These weren't kept up to date if the (orc) player didn't start with
Beogh, or othe (ogre) player didn't start with magic as their best
skill, although they would be properly updated upon saving and loading

--------------------------------------------------------------------------------
b139a3eb2c | David Lawrence Ramsey | 2011-11-24 16:56:26 -0600

Fix more indentation.

--------------------------------------------------------------------------------
f1c970f9ed | David Lawrence Ramsey | 2011-11-24 16:31:02 -0600

Simplify.

--------------------------------------------------------------------------------
326f0ad783 | David Lawrence Ramsey | 2011-11-24 16:24:49 -0600

Fix indentation.

--------------------------------------------------------------------------------
d9042ca29b | David Lawrence Ramsey | 2011-11-24 15:25:47 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
ea5361ed66 | David Lawrence Ramsey | 2011-11-24 13:25:54 -0600

Apply duaneg's patch in Mantis 4937 to fix potential crash/memory corruption.

--------------------------------------------------------------------------------
abb673258d | David Lawrence Ramsey | 2011-11-24 11:57:51 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
2b48ddff03 | Adam Borowski | 2011-11-24 16:02:36 +0100

Don't place fish in initial Abyssal water or lava.

--------------------------------------------------------------------------------
e8a3cdd213 | Adam Borowski | 2011-11-24 15:59:23 +0100

Don't place live fish in hells.
Cocytus was special-cased to zombify them, I extended that to all hells.

--------------------------------------------------------------------------------
9d625d91ee | Adam Borowski | 2011-11-24 15:44:28 +0100

Save the game immediately on entering wizmode, to prevent cheating.
If you manage to crash the game (which is sadly easy in wizmode), you can
use this to roll back to the last saved state.  This hardly ever matters as
typically if you can enter wizmode you could mess with the save directly,
but let's fix it just in case a public server enables wizmode for untrusted
users.

--------------------------------------------------------------------------------
aa03b8b681 | Adam Borowski | 2011-11-24 15:34:29 +0100

Fix a wizmode crash on "&r yak" or "&r hill dwarf".

--------------------------------------------------------------------------------
f517545dcb | Adam Borowski | 2011-11-24 14:56:04 +0100

Fix save corruption with TAG_MAJOR_VERSION != 32.

--------------------------------------------------------------------------------
9178e2e14c | Adam Borowski | 2011-11-24 11:31:16 +0100

Replace an unfortunately chosen fake major version tag.
Those <32.13 are treated differently by the save browser.  Thus, using a tag
far in the future works while using one in the past doesn't.

--------------------------------------------------------------------------------
30efafb7cf | Florian Diebold | 2011-11-23 19:07:21 +0100

Don't save the mcache; save monster_infos completely.
monster_info fields that were previously not saved: draco_type, holi,
mintel, mresists, mitemuse, mbase_speed, two_weapons, no_regen, the
inventory and the ghost data. monster_info::pos on the other hand is
not saved anymore (it is regenerated after loading).

Monster tiles are now always regenerated from the monster_info after
loading. This still doesn't completely remove the need to save
tile_bk_{f,b}g, though; for example, the necessary data for cloud tile
picking is not yet in map_cell. We're not far from that, though.

--------------------------------------------------------------------------------
98a29a6971 | Florian Diebold | 2011-11-23 19:07:21 +0100

Make monster_info::pos grid- instead of player-relative.
It was converted back everywhere it was used anywhere, and it became
useless after the player moved. Mostly, the monster position is needed
to refer back to the grid cell the monster is in, so as long as
map_knowledge uses the normal grid coordinate system, monster_info
should too.

Note that Webtiles obscures coordinates in a better way already
anyway, by using the coordinate of the first cell sent as origin and
sticking to that coordinate system as long as the level doesn't
change.

--------------------------------------------------------------------------------
6eadb80a3d | Florian Diebold | 2011-11-23 19:07:21 +0100

Use map_knowledge in tileidx_feature.

--------------------------------------------------------------------------------
984d4fd755 | Florian Diebold | 2011-11-23 19:07:21 +0100

Use the whole monster_info when regenerating tiles from a map_cell.

--------------------------------------------------------------------------------
15d80c36a8 | Florian Diebold | 2011-11-23 19:07:21 +0100

Purge monster_info::mon().
There was one last use in directn.cc, which I wasn't sure about, so I
just replaced it by a direct call to monster_at.

--------------------------------------------------------------------------------
6ce646b5e8 | Florian Diebold | 2011-11-23 19:07:21 +0100

Fix tentacle tile picking and make it use only monster_info.
The tentacle monsters have references to the previous/next segment in
their props; these get translated to just the respective positions in
the monster_info.

--------------------------------------------------------------------------------
95183f83b9 | Florian Diebold | 2011-11-23 19:07:21 +0100

Fix an invalid read indicated by valgrind.
It was probably inconsequential, but still.

--------------------------------------------------------------------------------
b38b2bf7aa | Florian Diebold | 2011-11-23 19:07:21 +0100

Use monster_info in the Tiles monster region.
All that was needed there was the monster's position, anyway.

--------------------------------------------------------------------------------
6f45b76da0 | Florian Diebold | 2011-11-23 19:06:47 +0100

Allow querying the kill tracker by monster_info instead of monster.
This removes a hack I added while switching tile_place_monster to
monster_info.

--------------------------------------------------------------------------------
a9079440e3 | Florian Diebold | 2011-11-23 19:06:47 +0100

Make the monster_info constructors explicit and use monster_info in more places.

--------------------------------------------------------------------------------
1326a7e955 | Florian Diebold | 2011-11-23 19:05:49 +0100

Use monster_info instead of monster for tile picking.
See #4280. This will allow regenerating tiles out of view from the
map_knowledge, and we won't need to save the mcache anymore.

There are still a few uses of monster in the interface code, which
will have to be hunted down.

--------------------------------------------------------------------------------
32d2ddfe03 | Florian Diebold | 2011-11-23 19:05:49 +0100

Add ghost ac and damage, rounded up to the nearest multiple of 5, to 
monster_info.
This is to allow converting the mcache code to use monster_info. If
another way to determine ghost equipment is chosen, this can be
reverted.

--------------------------------------------------------------------------------
75c1e25f52 | Robert Burnham | 2011-11-23 11:07:20 -0600

Fix "helpless" property labeling

--------------------------------------------------------------------------------
bd06cf2cf5 | David Lawrence Ramsey | 2011-11-23 13:56:59 -0600

Use monster pronouns properly in Zin's Imprison messages.

--------------------------------------------------------------------------------
468563df19 | Robert Burnham | 2011-11-23 13:39:58 -0600

Fix spore exploding

--------------------------------------------------------------------------------
373149cce0 | David Lawrence Ramsey | 2011-11-23 13:36:23 -0600

Simplify.

--------------------------------------------------------------------------------
21e3fb06b7 | elliptic | 2011-11-23 13:46:38 -0500

Fix capitalization for lists of items on the ground.

--------------------------------------------------------------------------------
5f385e9d81 | David Lawrence Ramsey | 2011-11-23 12:44:34 -0600

Constify.

--------------------------------------------------------------------------------
a9bac9052c | David Lawrence Ramsey | 2011-11-23 11:59:19 -0600

Add hide drops to vampire-drained corpses.
This fixes an inconsistency with butchered corpses for non-vampires.

Calling maybe_drop_hide() in two places is awkward, but I figure that
having to write a function like turn_corpse_into_skeleton_and_hide()
would result in even more twisted duplicate code, which we already have
with the turn_corpse_into_ functions and the hide dropping routine
inside turn_corpse_into_chunks().

--------------------------------------------------------------------------------
04898a6911 | David Lawrence Ramsey | 2011-11-23 11:59:19 -0600

Make hide drops work for the fake butchery of corpse-eating monsters.

--------------------------------------------------------------------------------
e1d67acc78 | David Lawrence Ramsey | 2011-11-23 11:59:18 -0600

In _create_monster_hide(), drop a hide at the corpse's position.
Before, it would drop at the player's position, on the assumption that
the player was always at the same position as the corpse.

--------------------------------------------------------------------------------
8ff3278e9e | David Lawrence Ramsey | 2011-11-23 11:59:18 -0600

Move the routine to possibly drop a monster hide into its own function.

--------------------------------------------------------------------------------
9d08f109e0 | elliptic | 2011-11-23 12:49:22 -0500

Fix some to-hit code.
This hopefully restores the same functionality as pre-UCC to-hit code, at
least for determining whether the EV check for a melee attack succeeds or not.
Previously player to-hit was effectively halved.

--------------------------------------------------------------------------------
96e448e865 | Robert Burnham | 2011-11-23 09:22:33 -0600

Fix crash resulting on melee_attack.cc:868
Crash is result of a bad comparison

--------------------------------------------------------------------------------
6026d83e81 | Robert Burnham | 2011-11-23 08:57:30 -0600

Address player to hit to match pre-ucc merge

--------------------------------------------------------------------------------
757e3c69a5 | Robert Burnham | 2011-11-23 08:27:43 -0600

Remove deprecated function left over from ucc rewrite

--------------------------------------------------------------------------------
5cda5ec76b | Robert Burnham | 2011-11-23 08:24:17 -0600

Fix allied-monster kill messages
Also fixes a bug where allied monsters would not respond to being hit,
this is now corrected; monsters will set the appropriate target even
if the player is not the target.

--------------------------------------------------------------------------------
9227e9dbbf | Chris Campbell | 2011-11-23 12:51:14 +0000

Don't prompt Vampires to bottle poisonous corpses when attempting butchery

--------------------------------------------------------------------------------
22b0fb6035 | Adam Borowski | 2011-11-23 12:22:14 +0100

Remove hacks to special-case D:1 and Hells upstairs.
If they are to act like separate features, look like separate features,
be described like separate features...  perhaps they might be, you know,
separate features?

--------------------------------------------------------------------------------
9566021466 | Adam Borowski | 2011-11-23 11:39:19 +0100

Remove obsolete mention of runes on the gate out of Zot.

--------------------------------------------------------------------------------
fa902622f3 | Robert Burnham | 2011-11-22 23:05:08 -0600

Fix message spacing

--------------------------------------------------------------------------------
ac2ba5a530 | Robert Burnham | 2011-11-22 22:52:57 -0600

Fix crawling corpse segfault

--------------------------------------------------------------------------------
16d1b04f3b | David Lawrence Ramsey | 2011-11-22 22:33:55 -0600

Add more whitespace fixes.

--------------------------------------------------------------------------------
ec06fb1e10 | Robert Burnham | 2011-11-22 22:31:23 -0600

White space fixes

--------------------------------------------------------------------------------
9f18256164 | Robert Burnham | 2011-11-22 22:28:32 -0600

Simplify adjusted_description

--------------------------------------------------------------------------------
02916f091a | Robert Burnham | 2011-11-22 22:20:17 -0600

Fix allied-monster messages

--------------------------------------------------------------------------------
bd4be3adc0 | Adam Borowski | 2011-11-23 04:35:01 +0100

Remove a commented out conflict.

--------------------------------------------------------------------------------
a988659f35 | Adam Borowski | 2011-11-23 04:20:37 +0100

Merge branch 'master' into portal_branches

--------------------------------------------------------------------------------
c0545da515 | Robert Burnham | 2011-11-22 21:00:50 -0600

Fix Golubria processing order
Previous order of Golubria code would allow for bleed-effects to
still occur on a shroud-deflected attack.

--------------------------------------------------------------------------------
0f5567c9d4 | Robert Burnham | 2011-11-22 21:00:50 -0600

Change spines to conform to pre-ucc functinoality
Spines could kill the attacker before any damage was actually dealt.
Whether this is balanced or not, we can debate but for now we'll restore
the functionality pre-ucc merge.:

--------------------------------------------------------------------------------
e14c414e98 | Michael Gagno | 2011-11-22 18:53:31 -0800

Tweak nooodl_heptagram.
Made the central area less open, reduced the number of monsters in the
side rooms, and chopped off some unneeded bits. The game can still spawn
huge numbers of monsters though, if the rng wills it.

One thing about this vault is that it still has no corridors to fight in,
which might be a bad thing for such a large vault.

--------------------------------------------------------------------------------
441205f0d2 | Adam Borowski | 2011-11-23 03:41:27 +0100

Remove a number of useless is_invalid_skill() checks.
There's no point in ever having gaps in this enum -- even if a skill is
removed, it is still valid until a save compat break.

--------------------------------------------------------------------------------
70eebec9c8 | Robert Burnham | 2011-11-22 20:35:25 -0600

Prevent spines from occurring on blocks

--------------------------------------------------------------------------------
e97874eb9d | Robert Burnham | 2011-11-22 20:35:24 -0600

Revert changing Octopode kicks into punches unconditionally

--------------------------------------------------------------------------------
6962c74436 | Adam Borowski | 2011-11-23 03:22:07 +0100

Thoroughly validate a good deal of things read from save files.
May cause assertions on valid corner cases, be warned!

--------------------------------------------------------------------------------
1be4ff850f | Adam Borowski | 2011-11-23 03:22:07 +0100

Reformat.

--------------------------------------------------------------------------------
56f494d9ce | Robert Burnham | 2011-11-22 20:15:34 -0600

Adjust the rate at which Elyvilon blocks an attack
For pennance, Ely would block attacks which would have otherwise hit
5% of the time. This code was left out in ucc, resulting in 100% blocks
if you were under Ely penance. That % chance is now fixed.

--------------------------------------------------------------------------------
4416029555 | Robert Burnham | 2011-11-22 20:08:19 -0600

Actually fix the reordering of dodge / block

--------------------------------------------------------------------------------
c66663896e | Robert Burnham | 2011-11-22 19:58:57 -0600

Fix 5e534f's reordering of dodge code

--------------------------------------------------------------------------------
2d85fea9c8 | Michael Gagno | 2011-11-22 14:28:32 -0800

Correct a spelling mistake in a comment.

--------------------------------------------------------------------------------
3409d75e8f | David Lawrence Ramsey | 2011-11-22 14:28:25 -0600

Fix Mantis 4930.
The inscription on rods of destruction of [lightning,fireball,iron] now
matches the spell order.

--------------------------------------------------------------------------------
7a43e93059 | Samuel Bronson | 2011-11-22 14:19:41 -0500

Remove extraneous trailing blank line from skill-menu help entry.

--------------------------------------------------------------------------------
2154f03992 | Samuel Bronson | 2011-11-22 14:19:40 -0500

Little cleanups

--------------------------------------------------------------------------------
fb41dc908d | Chris Campbell | 2011-11-22 18:15:24 +0000

Improve some messages for tentacle aux attacks

--------------------------------------------------------------------------------
756cefa369 | David Lawrence Ramsey | 2011-11-22 10:53:27 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
78ae278c2d | Robert Burnham | 2011-11-22 10:50:46 -0600

Fix compile errorsY

--------------------------------------------------------------------------------
e76cbd8765 | Robert Burnham | 2011-11-22 04:58:58 -0600

Add some missing commits from UCC merge
During my period of inactivity (June 21 to October) master received a
handful of commits that appear to have never made it into UCC and are
now missing. These appear to be isolated to fight.cc and do not seem
to follow a pattern (the commits missing do not seem to follow entirely
in sequence, for example).

In any case, this adds in all that I can find of those missing commits.

--------------------------------------------------------------------------------
e626296bc6 | Robert Burnham | 2011-11-22 04:58:58 -0600

Turn all Octopode kicks into punches

--------------------------------------------------------------------------------
2d210c620a | Adam Borowski | 2011-11-22 16:07:27 +0100

Capitalize pronouns in xv

--------------------------------------------------------------------------------
7cdc13a604 | Adam Borowski | 2011-11-22 10:35:36 +0100

Don't refer to the missing expired portal tile for Spider.
There's actually one draw existing on Mantis, but I don't even bother
putting it in since the portal vault will be removed before 0.10 (ie, soon).
It's unlikely we can balance the _branch_ in time, but having the portal and
branch exist together causes confusion in the code and extra work, so the
former is already gone in the level_type overhaul.

Actually, we might just go and remove the portal outright.

--------------------------------------------------------------------------------
40d2ab234c | Michael Gagno | 2011-11-21 21:02:26 -0800

Fix a small oversight in the mikee vault just added.

--------------------------------------------------------------------------------
c53ff18a9f | Michael Gagno | 2011-11-21 20:57:43 -0800

A siren vault (idea by mikee).
Probably going to get yelled at for this.

--------------------------------------------------------------------------------
3440c945c6 | Michael Gagno | 2011-11-21 18:37:09 -0800

Fix hangedman_abyss_exit_choices (Hangedman).

--------------------------------------------------------------------------------
8879aef4ca | Michael Gagno | 2011-11-21 17:55:44 -0800

Make Deep Dwarf Artificers always use rods; make monster Striking do damage.
50% of artificers would just be generic melee dwarves. Also the chance of
them having rare rods was only 1/100. Now it's 1/25. If this is too high
it's not a big deal, since you won't find these guys outside of zigs anyway.

This means that most of them will have a rod of striking. I increased the
damage for monster striking (was 1d8), since it was low enough that it might
as well have been 0. I'm pretty sure they'd do more damage throwing darts.

This introduces an asymmetry between player striking use and monster
striking use (the rod is complete garbage for players). If this is a problem
then I think striking should be buffed on the player end. Note that players
can't start with one any more.

--------------------------------------------------------------------------------
083e7ed1be | Michael Gagno | 2011-11-21 17:32:15 -0800

Remove summon undead from Deep Dwarf Death Knights.
If these ever spawn normally they should come with bands of undead monsters.
In vaults, just place undead along with them. Having this as a summon makes
little sense.

--------------------------------------------------------------------------------
aeabb2e1a4 | Michael Gagno | 2011-11-21 17:28:16 -0800

Remove generic necromancer spellbook from Unborn Deep Dwarves.
This leaves them with their other spell set, which is more dangerous and
more unique. The monster isn't perfect but they at least have the
distinction of being the only thing that casts haunt.

--------------------------------------------------------------------------------
a9b785c27f | Michael Gagno | 2011-11-21 17:17:51 -0800

Give deep dwarf necromancers Agony.
Probably won't make a big difference if you have any MR.

--------------------------------------------------------------------------------
54c71a2350 | David Lawrence Ramsey | 2011-11-21 18:59:13 -0600

Replace tabs with spaces.

--------------------------------------------------------------------------------
c4a8f907a7 | Adam Borowski | 2011-11-22 01:44:12 +0100

Fix compiler warnings.

--------------------------------------------------------------------------------
a6a2b307ae | Adam Borowski | 2011-11-22 01:09:17 +0100

Remove the alchemist cottage from Dwarf.
It somehow looks utterly out of place there.

Instead, put it as one of guaranteed D:7-14 food vaults.

--------------------------------------------------------------------------------
77c8866866 | Michael Gagno | 2011-11-21 14:17:16 -0800

Add nooodl to CREDITS.txt.

--------------------------------------------------------------------------------
4a63a5983f | Michael Gagno | 2011-11-21 13:30:46 -0800

Fix some mistakes with NSUBST in vaults.
All of these are my fault. I kept making this mistake without realizing it.

--------------------------------------------------------------------------------
5e534f5315 | Robert Burnham | 2011-11-21 15:10:06 -0600

Fix EV Scaling and Block / Dodge order
Pre-ucc a block was attempted, then - when no block occurred - a dodge was
attempted. This commit returns that behavior and also fixes an ev*= 2 that
has wild balance impacts.

--------------------------------------------------------------------------------
85971d4059 | Michael Gagno | 2011-11-21 13:07:14 -0800

Don't let normal water monsters show up in tar_minmay_river.
And add some spectral monsters to go in the river. Note: I have no idea why
regular fish were showing up in the first place...

--------------------------------------------------------------------------------
908de3bb5b | elliptic | 2011-11-21 15:54:50 -0500

Make pain weapon damage a little smoother.

--------------------------------------------------------------------------------
6500118cd3 | elliptic | 2011-11-21 15:54:50 -0500

Fix UCC's application of 04beebb.

--------------------------------------------------------------------------------
1ebbfeadff | Robert Burnham | 2011-11-21 08:54:51 -0600

Fix UCC merge changes on Spiny

--------------------------------------------------------------------------------
c176996519 | elliptic | 2011-11-21 14:46:44 -0500

Fix previous commit not realizing that effective_attack_number is zero-indexed.

--------------------------------------------------------------------------------
ba0bbc83c7 | elliptic | 2011-11-21 14:36:39 -0500

Fix some minotaur retaliation things that were messed up by UCC.

--------------------------------------------------------------------------------
42679b0a0f | Robert Burnham | 2011-11-21 08:05:54 -0600

Correct the application of 35db85f

--------------------------------------------------------------------------------
4abe2e938c | Michael Gagno | 2011-11-21 11:00:17 -0800

A bunch of tweaks to evilmike_ambush.
Mostly in making it a bit smaller (only 13x13 now).

--------------------------------------------------------------------------------
c7ddbe0fdd | Robert Burnham | 2011-11-21 06:53:32 -0600

Merge remote branch 'origin/master' into unified_combat_control
Conflicts:
	crawl-ref/source/fight.cc

--------------------------------------------------------------------------------
74be35c037 | Adam Borowski | 2011-11-21 11:57:05 +0100

Don't stop travel or exploration on webs.
They're interesting only when you are fighting or running away.

--------------------------------------------------------------------------------
e4c48d780e | Robert Burnham | 2011-11-21 02:36:03 -0600

Update foul stench effect and calling location
Moves foul stench and passive freeze from handle_phase_end up to
handle_phase_hit since they're actually on-hit effects. This move
will prevent passive_freeze from firing when the monster misses from
melee range.

--------------------------------------------------------------------------------
2b3061c382 | Robert Burnham | 2011-11-21 02:29:46 -0600

Fix player_aux_unarmed related combat
Missing a handle_phase_end call to fire ending effects (including
processing unarmed combat for the player, if available)

--------------------------------------------------------------------------------
4b1c65e089 | Robert Burnham | 2011-11-21 02:07:09 -0600

Fix arena crash-indicated bugs
Addresses two crashes identified during arena tests:

Crazy Yiuf vs Crazy Yiuf
 - changes in the noise code to remove an unnecessary function
   resulted in a condition under which we'd be dividing by damage_done
   when it was 0

Antaeus vs Antaeus
 - the brand code would apply a flaming brand (Antaeus isn't rF?), burn
   the defender and display that message, then enter the monster attack
   flavour and attempt to reference the defender's resistance values
   when the defender was already dead (resulting in a failed ASSERT(smc)
   cal.

--------------------------------------------------------------------------------
e6f3042b21 | Michael Gagno | 2011-11-20 23:22:22 -0800

A very random ambush vault.
Can appear almost anywhere, and is heavily subvaulted. I've put it in its
own file since it takes up more than 200 lines. It has allow_dup, because
the randomness means it will feel different each time you get it. Still has
normal weight, though.

--------------------------------------------------------------------------------
0a7db92f90 | Michael Gagno | 2011-11-20 21:17:45 -0800

Split large.des into encompass.des, large_abstract.des and large_themed.des.
Large.des was too large. The new des files are as follows:

large_abstract.des: Use this for miscellaneous large vaults that don't have
a clear theme. Usually they just use regular dungeon monsters and the
layouts are often (but not always) based around shapes and patterns.

large_themed.des: For large themed vaults. They almost always have their own
monsters defined, and the maps are often based on something more concrete
(eg a river, or a castle).

encompass.des: For miscellaneous full-level vaults. Pretty self-explanatory.

There's a few cases where a vault could fit into either large_abstract.des
or large_themed.des. In these situations it's just a judgement call, but I
think the split is pretty clear in most cases.

--------------------------------------------------------------------------------
9b7236c47a | David Lawrence Ramsey | 2011-11-20 22:54:08 -0600

Add whitespace fixes.

--------------------------------------------------------------------------------
849436b18a | Michael Gagno | 2011-11-20 20:16:44 -0800

Four vaults (nooodl).
Including one huge one.

--------------------------------------------------------------------------------
58eeb1431d | Michael Gagno | 2011-11-20 19:50:36 -0800

Eighteen Vault:8 quadrants (minmay).

--------------------------------------------------------------------------------
b77682d2eb | Michael Gagno | 2011-11-20 19:33:04 -0800

Add Hangedman to CREDITS.txt.

--------------------------------------------------------------------------------
57e69d2ca7 | Michael Gagno | 2011-11-20 19:28:42 -0800

Eight abyss vaults. (Hangedman)
Two rune vaults, an exit, and five normal vaults.

--------------------------------------------------------------------------------
c5e73595c2 | Michael Gagno | 2011-11-20 15:47:04 -0800

Fix capitalization issue with @Foe_god@.
This should fix mantis #4923.

--------------------------------------------------------------------------------
6aba98e8ef | Adam Borowski | 2011-11-21 00:44:39 +0100

Remove a no longer valid comment.

--------------------------------------------------------------------------------
dcdf8ea245 | Adam Borowski | 2011-11-21 00:42:56 +0100

Simplify.
There's no point in message_trap_entry() if it's used only for a single trap
type.  The message can be given in the switch, like every single other trap
does.

--------------------------------------------------------------------------------
4720106fa1 | Adam Borowski | 2011-11-21 00:42:56 +0100

Remove an unused "unseen entrance" tile to UNUSED/

--------------------------------------------------------------------------------
f0321a08ae | Adam Borowski | 2011-11-21 00:42:56 +0100

Don't claim that armour fits on deformed seafood/kittehs/draconians.

--------------------------------------------------------------------------------
f0d3fdbe7b | Adam Borowski | 2011-11-21 00:42:55 +0100

Make Zin's protection from mutations better than rMut.
The amulet has a 10% chance of letting a mutation through.
Zin now has 5% at 160 piety, 2% at 180, immunity at 200 (like before).

The protection working reliably only just near 200 was ok when Zin's piety
didn't decay and sinks sucked.  Nowadays, giving people an incentive to
micromanage piety to pickup that pile of gold when a neqoxec comes is not
fun.

As with any buff, we may want to nerf Zin in some other way.

--------------------------------------------------------------------------------
ca7b65710b | Adam Borowski | 2011-11-21 00:42:55 +0100

Don't trap people in shop_statue.
Both the internal part, and both ends, can be placed back to a wall.

--------------------------------------------------------------------------------
390a368dcf | Samuel Bronson | 2011-11-20 18:28:05 -0500

Zotdef: Enable "Glassed Sandwich" now that monsters can handle it.

--------------------------------------------------------------------------------
e00e02a59a | Samuel Bronson | 2011-11-20 18:26:10 -0500

Fix sense of a test so monsters don't get stuck behind glass all the time.
This passage of code was intended to prevent monsters that had just come
into view from leaving view before the player had a chance to see them;
unfortunately it seems to have applied only to monsters that did *not*
just come into view, so they got stuck because they couldn't approach the
player without leaving LOS.

--------------------------------------------------------------------------------
e0cd2c1e1d | Michael Gagno | 2011-11-20 13:55:25 -0800

Don't grey out Hill Orc Abyss Knights
With their good invocations apt, good HP (useful when one of your abilities
has a maxhp cost) and good melee apts, hill orcs are actually one of the
better races for AK. No reason for them to be greyed out when starting a new
game.

--------------------------------------------------------------------------------
79438b4161 | Kek | 2011-11-20 22:43:40 +0100

Lua script engine extension: you.caught()

--------------------------------------------------------------------------------
f8949f86d1 | Adam Borowski | 2011-11-20 22:42:36 +0100

Make you.contaminated return contamination tier rather than just a bool.

--------------------------------------------------------------------------------
49b81c712f | Kek | 2011-11-20 22:42:08 +0100

expand lua script engine [item.is_useless, you.contaminated, you.feel_safe]

--------------------------------------------------------------------------------
3f10d5ab58 | Adam Borowski | 2011-11-20 22:32:04 +0100

Always id scrolls of fear as well.
It's a no-brainer to read-id unknown scrolls next to a kobold.

--------------------------------------------------------------------------------
edc804f58f | Adam Borowski | 2011-11-20 22:32:04 +0100

Always id scrolls of holy word.

--------------------------------------------------------------------------------
9239728c53 | Adam Borowski | 2011-11-20 22:32:04 +0100

Don't claim you can switch to good gods whose altars you haven't seen.
The information about you having found the altar is important, that of the
god liking yours is merely a static spoiler.

--------------------------------------------------------------------------------
596da3b287 | elliptic | 2011-11-20 16:26:03 -0500

Lower ring of slaying price slightly (yet again).

--------------------------------------------------------------------------------
f0bae345d6 | elliptic | 2011-11-20 16:26:03 -0500

Enable automatic levelup stat gain choosing via lua.
There's probably a better way of going about this, but a user-defined lua
function choose_stat_gain() will be called whenever you enter the stat gain
prompt and this can be used to send keypresses to choose a stat (via
crawl.sendkeys('i '), for instance).

--------------------------------------------------------------------------------
930ea69970 | elliptic | 2011-11-20 16:26:03 -0500

Add you.nauseous() function to lua.

--------------------------------------------------------------------------------
b4b82e003f | David Lawrence Ramsey | 2011-11-20 13:41:17 -0600

Tweak gelatinous body mutation message.
It's no longer a Jiyva-only mutation for would-be Royal Jelly players,
and, with this change, it's now more appropriate for the octopode
players who start with it.

--------------------------------------------------------------------------------
3d5c792bcd | Michael Gagno | 2011-11-20 11:08:03 -0800

Don't use "you feel drained" as part of Boris' speech.
Boris has a couple of "fake spells", one of which can cause the "You feel
drained" message to appear. This is bad because it can cause mummies,
ghouls, etc to "feel drained" even when that should be impossible. I changed
the message to "you feel disoriented".

I don't like how boris has fake spells like this in the first place, but if
he's going to have them, they should at least be semi-plausible.

--------------------------------------------------------------------------------
9092980ad9 | Adam Borowski | 2011-11-20 18:00:57 +0100

Fix backgrounds of expired portals that don't use stone arches.
This required adding a separate feature type, as forcing a certain floor
looks abysmal elsewhere else, and it'd be too much work to add double-layer
flavours.  And using a stone arch for a "collapsed tunnel" wouldn't be good
either.

--------------------------------------------------------------------------------
568d9cda80 | David Lawrence Ramsey | 2011-11-20 10:59:31 -0600

Add punctuation fix.

--------------------------------------------------------------------------------
60f516e66e | elliptic | 2011-11-20 11:15:40 -0500

Move a few stealth effects from check_awaken() to check_stealth().
It didn't make much sense for these effects (glow and halos) to be in
check_awaken(), since they don't really depend on the monster. Now the
formulas should be a bit more sensible (previously umbra acted like
invisibility against nearly all monsters...) and these effects are taken into
account in the stealth description players get by pressing '@'.

--------------------------------------------------------------------------------
489e5fe90b | Adam Borowski | 2011-11-20 11:17:33 +0100

A quote for toenail golems (|amethyst)

--------------------------------------------------------------------------------
5cd752ce5f | Adam Borowski | 2011-11-20 11:17:32 +0100

A missing space.

--------------------------------------------------------------------------------
d1d771ef87 | David Lawrence Ramsey | 2011-11-20 00:57:11 -0600

Add wording fix.

--------------------------------------------------------------------------------
7e7b7d859d | David Lawrence Ramsey | 2011-11-19 19:14:38 -0600

Properly use you.hand_name() in ash_describe_bondage().

--------------------------------------------------------------------------------
9f03392beb | Adam Borowski | 2011-11-19 21:15:31 +0100

Drop useless "bazaar" tags, fix epilogue.

--------------------------------------------------------------------------------
5b6b80ccc3 | Adam Borowski | 2011-11-19 21:01:34 +0100

Merge branch 'master' into portal_branches

--------------------------------------------------------------------------------
0534696989 | Adam Borowski | 2011-11-19 20:56:01 +0100

Fix several TAG_MAJOR_VERSION != 32 compile errors.
The scroll of paper in tileview.cc one is left, they can still appear in
real transferred games, will need to fix it only on the actual bump.

Missiles of reaping can not, and I don't care about tile icon not showing
in wizard saves.

Also, checks whether enums have a specific number are utterly useless.

--------------------------------------------------------------------------------
f423920fcd | Adam Borowski | 2011-11-19 19:46:09 +0100

Don't unnecessarily override the exit tile in current Spider portal vault.

--------------------------------------------------------------------------------
42d21da685 | Adam Borowski | 2011-11-19 19:33:48 +0100

roctavian's tiles for Cocytus.

--------------------------------------------------------------------------------
95ff4295a6 | Adam Borowski | 2011-11-19 18:54:27 +0100

Sync manual from the wiki.

--------------------------------------------------------------------------------
a9b27d25c7 | Adam Borowski | 2011-11-19 17:44:01 +0100

Don't exercise melee skills <1 when bashing plants either.
Wizards cutting their way through plants doesn't mean they care about the
weapon -- and if they do, they'll hit actual popcorn monsters too.

--------------------------------------------------------------------------------
ee84c39204 | Adam Borowski | 2011-11-19 17:33:21 +0100

Revert "It's now possible to get level 1 Spellcasting just by reading scrolls".
Again, it was a change from 3.30, "Linley's Last" [30.03.1999].

--------------------------------------------------------------------------------
2adb5f5f91 | Adam Borowski | 2011-11-19 17:20:03 +0100

Revert "Characters lacking magic skills cannot learn spells".
This restriction makes little sense with smooth skills, and manual training
means you don't even need scrolls, just a tiny bit of xp.

This reverts commit... er what, Linley didn't use version control in 3.30.

--------------------------------------------------------------------------------
85f26b4473 | Adam Borowski | 2011-11-19 17:15:51 +0100

roctavian's tiles for the Hive portal (alive, expired) and Volcano exits.

--------------------------------------------------------------------------------
5808442128 | Adam Borowski | 2011-11-19 17:15:50 +0100

Fix portal vaults' "floor_tile" not working for actual floor.
There are two distinct layers, the non-floor one now uses "feat_tile".
I did not change the misnamed "floor" argument yet.

--------------------------------------------------------------------------------
c6bafeca06 | Adam Borowski | 2011-11-19 17:15:50 +0100

Fix the dragonskin cloak always showing up as melded.

--------------------------------------------------------------------------------
6348565e26 | Adam Borowski | 2011-11-19 17:15:50 +0100

roctavian's tiles for portals: Volcano, Bailey, Labyrinth, Ossuary, Ziggurat.
TODO: those who use "floor" don't show up.

--------------------------------------------------------------------------------
6be001c655 | Adam Borowski | 2011-11-19 17:15:50 +0100

A quote for daevas.
Note that in most of Zoroastrianism the daevas were demons serving the bad
guys, in only some earliest parts they were neutrallish gods who merely
chosen wrongly and deceived themselves and the mankind, not yet connected to
Angra Mainyu.

While it's mostly conjecture, scholars tend to agree they were deities
worshipped by people Zarathusthra preached to, and in earliest stages of the
religion they weren't as reviled, but later, they became considered to be
purely evil.

I guess Crawl meant Hindu _devas_ who are benevolent.

--------------------------------------------------------------------------------
fb4a43406d | Adam Borowski | 2011-11-19 17:15:50 +0100

Biblical quotes for cherubs and seraphs.

--------------------------------------------------------------------------------
13f8970096 | Adam Borowski | 2011-11-19 17:15:50 +0100

Try to sneak in a quote for Zigs.

--------------------------------------------------------------------------------
5714b1011f | Adam Borowski | 2011-11-19 17:15:50 +0100

Make shops and exits roughly equally distributed in the new bazaar map.

--------------------------------------------------------------------------------
638f52db10 | Adam Borowski | 2011-11-19 17:15:50 +0100

A generated bazaar map.
It's there to provide an infinite supply of distinct maps, even though
hand-made ones look better.

There's plenty of room for improvement here: for example, having a function
that returns a cell farthest away from all occurences of a given symbol would
allow evenly spreading the shops.

--------------------------------------------------------------------------------
49665bb4fc | Adam Borowski | 2011-11-19 17:15:50 +0100

Give one of bazaar maps allow_dup so creation never fails.
Players who farm Nemelex to a ridiculous degree could exhaust all 39 maps,
causing an unrecoverable crash.

Since the map will be reused even before the supply is exhausted, I slashed
its weight by 10.  To be able to do that, I multiplied all other weights by
10 (which doesn't affect their relative chances).

--------------------------------------------------------------------------------
a92689b206 | Adam Borowski | 2011-11-19 17:15:50 +0100

Re-enable treating butterflies as always safe.
I'm not reverting the M_NO_EXP_GAIN change as hostile crawling corpses might
be safe _right now_ but they shouldn't be let alive.

--------------------------------------------------------------------------------
b7385a31a7 | Adam Borowski | 2011-11-19 17:15:50 +0100

Set spirit genus to "ghost".
Holy ghosts or not, they're still spooks who deserve nothing but a stream of
protons right in the protoplasm (hey, I never understood Ghost Busters... this
rock here has plenty of protons, together with neutrons and electrons -- would
it work?).

--------------------------------------------------------------------------------
02b85f992d | Adam Borowski | 2011-11-19 17:15:50 +0100

Give shedu their own genus, they're nothing like phoenixes.

--------------------------------------------------------------------------------
f5c0262365 | Adam Borowski | 2011-11-19 17:15:50 +0100

Re-enable polymorphing of holy monsters, most are finished already.
The justification of ba154dc4 was that there's too few valid targets, which
was certainly true at that moment (angels, daevas and ophanim, shedu were
buggy), but since then, most of holies are done, save for paladins (not a
valid poly target anyway) and blessed toes (who are meh).

Current legal targets:
* phoenix
* holy swine
* spirit
* angel
* cherub
* daeva
* pearl dragon
* ophan
* shedu
* apis
* silver star
Non-targets:
* paladin (a human)
* blessed toes (unfinished)
* Mennas (unique)

--------------------------------------------------------------------------------
dc92e7232a | Samuel Bronson | 2011-11-18 21:58:34 -0500

New "{throwable}" stash-search prefix.

--------------------------------------------------------------------------------
b3cfd96984 | Samuel Bronson | 2011-11-18 21:56:09 -0500

Add cscope & callgrind files to .gitignore

--------------------------------------------------------------------------------
1bf799a66b | Florian Diebold | 2011-11-19 00:24:47 +0100

Fix Webtiles rc editing being broken because of the lobby refactoring.

--------------------------------------------------------------------------------
0bd416116a | Florian Diebold | 2011-11-18 20:34:41 +0100

Webtiles: Don't animate milestones on initial page load.

--------------------------------------------------------------------------------
2ea8e6eb77 | Florian Diebold | 2011-11-18 20:30:44 +0100

Webtiles: Improve caching settings.
(Optionally) no-cache for game data (scripts and tile images);
aggressive caching for title images.

--------------------------------------------------------------------------------
364ed1a802 | Adam Borowski | 2011-11-17 23:45:06 +0100

roctavian's wall tiles for Snake.

--------------------------------------------------------------------------------
5b12a1b073 | Florian Diebold | 2011-11-17 22:53:55 +0100

Webtiles: Move the minimap feature decision to the server side.
There's just too much information necessary to do this right, which is
not available to the client at the moment.

--------------------------------------------------------------------------------
9d1d0e560d | Florian Diebold | 2011-11-17 22:53:54 +0100

Webtiles: Fix breakage from the recent refactor.

--------------------------------------------------------------------------------
4c9d044610 | Raphael Langella | 2011-11-17 20:28:04 +0100

Fix inverted logic in clear_map().
Also change the default so that it doesn't clear detected items (unlikely
to move), only detected monsters.

--------------------------------------------------------------------------------
112820ae1c | Florian Diebold | 2011-11-17 19:36:04 +0100

Webtiles: Correctly clear the god entry in the lobby upon abandonment.

--------------------------------------------------------------------------------
2a51300b18 | Florian Diebold | 2011-11-17 19:29:11 +0100

Update the DGL whereis record when changing XL or losing religion.

--------------------------------------------------------------------------------
07739e2611 | Florian Diebold | 2011-11-17 19:26:30 +0100

Fix the width of the player milestone column.

--------------------------------------------------------------------------------
0a89fe32ef | Florian Diebold | 2011-11-17 18:49:53 +0100

Show player milestones in the Webtiles lobby.

--------------------------------------------------------------------------------
ebb6297828 | Florian Diebold | 2011-11-17 18:49:53 +0100

Webtiles: Lobby refactoring.
Data about running games is now sent in JSON, and immediately when it
changes (but only the respective changed games).

--------------------------------------------------------------------------------
7cd0231a7a | Michael Gagno | 2011-11-17 02:10:17 -0800

Make spider_temple_joshua a normal vault (not a minivault)
This is a fairly large map and I can't see a reason for it to be a
minivault. I've given the map ORIENT: north and moved it to large.des.

There are some other huge minivaults, but they aren't as problematic as this
one when it comes to placement (this one would almost always fail when I
tested it).

--------------------------------------------------------------------------------
93b94db4eb | David Lawrence Ramsey | 2011-11-16 22:46:11 -0600

Add whitespace fix.

--------------------------------------------------------------------------------
f6557ca7e1 | Ryan Riegel | 2011-11-16 22:00:37 -0600

Fix a message where vampires trying to bottle blood were reminded about corpses 
in their pack they could instead butcher. Also, don't suggest draining/bottling 
instead of butchering when the target corpse doesn't have any blood.

--------------------------------------------------------------------------------
d277536186 | elliptic | 2011-11-16 22:32:51 -0500

Fix IDA and FDA artefacts getting the wrong autoinscription (|amethyst).

--------------------------------------------------------------------------------
1cf9e11148 | elliptic | 2011-11-16 21:51:41 -0500

Remove cloaks/caps/gloves of resistance from two ice caves.
Having unique items of this high a power level (significantly better than a
robe of resistance) as a reward just for getting lucky with (not particularly
difficult) vault loot is bad.

I don't much like the rC+/rF+ misc armour items in ice caves and volcanos
either since they don't generate outside of there (perhaps they should very
rarely?), but they can stay for now.

--------------------------------------------------------------------------------
af16abba1d | Florian Diebold | 2011-11-16 22:49:50 +0100

Webtiles: Allow configuring the ttyrec size.

--------------------------------------------------------------------------------
45543b0b83 | Florian Diebold | 2011-11-16 21:20:34 +0100

Webtiles: Improve game table layout a bit.

--------------------------------------------------------------------------------
48b562fa0b | Robert Burnham | 2011-11-16 14:06:07 -0600

Merge branch 'unified_combat_control' of gitorious.org:crawl/crawl into 
unified_combat_control

--------------------------------------------------------------------------------
5592907e60 | Florian Diebold | 2011-11-16 20:46:35 +0100

Webtiles: Don't use stale where data from previous games.

--------------------------------------------------------------------------------
301c8e26d4 | Florian Diebold | 2011-11-16 20:34:31 +0100

Webtiles: Directly read .where files instead of depending on a DGL daemon.
This has the side effect that XL, char and place are now separate
columns in the Webtiles lobby.

--------------------------------------------------------------------------------
06f3895bac | Robert Burnham | 2011-11-16 11:29:27 -0600

Merge branch 'master' into unified_combat_control
Conflicts:
	crawl-ref/source/fight.cc
	crawl-ref/source/food.cc
	crawl-ref/source/libutil.cc
	crawl-ref/source/melee_attack.h
	crawl-ref/source/mon-stuff.cc
	crawl-ref/source/spl-damage.cc

--------------------------------------------------------------------------------
de60a799a8 | Adam Borowski | 2011-11-16 18:16:19 +0100

Don't set pet_target retaliation on the arena.

--------------------------------------------------------------------------------
9c5839d3f7 | Samuel Bronson | 2011-11-16 11:57:16 -0500

I think my previous "fix" was actually a misinterpretation of the code.
Accordingly, I'm now limiting total path length to 2x the range, in
addition to preventing any point on that path from being more than
range cells away from the target (as the code did originally).

--------------------------------------------------------------------------------
833bd72fba | Adam Borowski | 2011-11-16 15:45:01 +0100

Mention that all polearms reach in the "highlights" section of the changelog.
It might be funnier to have people die to gnoll packs and Sigmund, but let's
warn them...

--------------------------------------------------------------------------------
d3a46e8c6c | Adam Borowski | 2011-11-16 15:22:47 +0100

Unmarshall cloud.excl_rad also when TAG_MAJOR_VERSION != 32.

--------------------------------------------------------------------------------
60aa6a41be | Chris Campbell | 2011-11-16 13:13:09 +0000

Don't remove walls and clouds when miscasting Summon Elemental

--------------------------------------------------------------------------------
537a94f4d3 | Chris Campbell | 2011-11-16 13:13:09 +0000

Improve orcish idol description

--------------------------------------------------------------------------------
84efc783cc | Michael Gagno | 2011-11-16 02:04:31 -0800

Fix onia_ninara_dug_in_and_dangerous sometimes being undiggable.

--------------------------------------------------------------------------------
e1dcbbafa2 | Robert Burnham | 2011-11-16 02:42:54 -0600

Merge branch 'master' into unified_combat_control
Conflicts:
	crawl-ref/source/fight.cc
	crawl-ref/source/mon-stuff.cc
	crawl-ref/source/player-stats.cc

One of the more significant changes resulting from this merge is
that the new minotaur_retaliation which is supposed to have a max
occurrence of once per monster attack round simply has a chance
per monster attack (regardless of whether we're in the same
effective attack round) which increases based on effective_attack_num
which lends to the possibility of multiple retaliations.

--------------------------------------------------------------------------------
3a5367c097 | Michael Gagno | 2011-11-16 00:28:08 -0800

Remove a door warning from einodemon_rotting_minivault
This vault only has rotting devils and necrophages, and can't show up any
earlier than D:9. The warning prompt on the door was a bit over the top. I
don't think doors should use prompts unless the vault is extremely dangerous
for its depth (which this one isn't).

--------------------------------------------------------------------------------
06e7886c79 | Michael Gagno | 2011-11-16 00:10:19 -0800

A couple of vault depth tweaks.
I think these could stand to appear a couple levels earlier without being
imbalanced.

--------------------------------------------------------------------------------
83a33ba110 | Samuel Bronson | 2011-11-15 19:32:55 -0500

Fix range check in monster_pathfind::calc_path_to_neighbours().
Not only was this a performance problem, it was also an AI buff for
creatures with intelligence I_NORMAL and below!

--------------------------------------------------------------------------------
4da733a928 | Florian Diebold | 2011-11-16 00:26:01 +0100

Webtiles: Don't delay ping responses.

--------------------------------------------------------------------------------
c67eff9c53 | Florian Diebold | 2011-11-16 00:26:01 +0100

Webtiles: Two fixes to minimap farsight.

--------------------------------------------------------------------------------
bc5898757a | Michael Gagno | 2011-11-15 09:24:43 -0800

Change to lemuel_draining_boxes to make it more possible to get the rune.
All boxes are now diggable. The (potential) secret door for the rune one has
been removed, but you'd have to be a bit crazy to enter pandemonium without
digging.

--------------------------------------------------------------------------------
142a92499c | Michael Gagno | 2011-11-15 08:49:43 -0800

Make scrolls of silence more common.
They had the pointlessly low weight of 10/10000 (note that this is less
common than acquirement). I've increased the chance of you finding these to
the same as acquirement, EWIII and summoning. Thus, still uncommon, but
you'll at least find a few now. The weight of detect curse has been lowered 
slightly as well.

--------------------------------------------------------------------------------
6620a2597b | Chris Campbell | 2011-11-15 16:01:36 +0000

Don't let stasis block Abyss shifts or Lugonu's bend space

--------------------------------------------------------------------------------
decbcea974 | Chris Campbell | 2011-11-15 16:01:36 +0000

Boost the power of mass enchantments (Control Undead, Mass Confusion, Cause 
Fear)

--------------------------------------------------------------------------------
33db85f376 | Chris Campbell | 2011-11-15 16:01:35 +0000

Re-implement Metabolic Englaciation as a mass slowing Hex

--------------------------------------------------------------------------------
cb4f853c2b | Chris Campbell | 2011-11-15 16:01:34 +0000

Let Lua print progress to next experience level instead of leaking information

--------------------------------------------------------------------------------
c9b6ecbc9a | Chris Campbell | 2011-11-15 16:01:34 +0000

Cap Felid lives at 9 instead of stepping down their rate of life gain
Looking at Felids since the life gain was stepped down, no game ever
used more than 6 lives (past that, the amount of experience required
was too high to reasonably expect to gain lives without scumming - see
!lm * crace=fe cv>=0.9 rstart>=20110509 type=death s=gid).

From that, it seems like allowing them to gain lives a little more
quickly should help them out in the earlier game, without having much
impact on the late and extended game.

--------------------------------------------------------------------------------
df908ca69d | Florian Diebold | 2011-11-15 15:20:00 +0100

Webtiles: Fix dgl-less mode.

--------------------------------------------------------------------------------
48c01525f3 | Florian Diebold | 2011-11-15 15:19:40 +0100

Webtiles: Change some defaults and add comments to the config file.

--------------------------------------------------------------------------------
3a6add56f2 | Adam Borowski | 2011-11-15 04:52:19 +0100

Don't use default arguments in function types, clang++ chokes on them.
Per C++11 8.3.6.3 [dcl.fct.default], clang is allowed to do so, GCC is nicer
to us but that functionality is not required by the standard.

--------------------------------------------------------------------------------
8a1495f32e | Adam Borowski | 2011-11-15 04:38:51 +0100

Don't leak monster hp in visible tiers.
Two humans next to each other would show different tiers depending on whether
their hp is 3 or 67.

--------------------------------------------------------------------------------
6b8e9e10f3 | Adam Borowski | 2011-11-15 03:44:17 +0100

Elyvilon: don't allow healing others while confused.
Would you let a drunken doctor touch you?

--------------------------------------------------------------------------------
8629ea2a4f | Adam Borowski | 2011-11-15 03:35:00 +0100

Add missing ZP cost field for non-ZotDef abilities.
Also, reorder the fields so ZP costs are together with other costs, before
flags.

--------------------------------------------------------------------------------
6e77737a2a | Adam Borowski | 2011-11-15 03:20:27 +0100

Don't check that an unsigned value is >= 0.

--------------------------------------------------------------------------------
48de92c231 | Adam Borowski | 2011-11-15 03:17:53 +0100

Fix a missing field in Control Undead.
If it ever becomes a monster spell, monsters would use it against no foe in
some builds.

--------------------------------------------------------------------------------
a314b56b47 | Adam Borowski | 2011-11-15 03:06:45 +0100

Disable an utterly asinine warning.
Whoever in the gcc team thought -Wunused-parameter might be reasonable in -W
should get his head checked.  Or reasonable in pretty much any case.

About anything that uses function references or virtual methods will run
afoul this foul warning.  It ranks together with -Wparentheses (ie, using
basic language syntax like operator priority).

--------------------------------------------------------------------------------
9015d9ef56 | Adam Borowski | 2011-11-15 03:05:36 +0100

Hush a warning.

--------------------------------------------------------------------------------
80855e85f8 | Adam Borowski | 2011-11-15 03:02:50 +0100

Remove a surprising "else" after a #define.
If it looks like a function call, it shouldn't unobviously affect flow
control.  This never actually did something, fortunately.

--------------------------------------------------------------------------------
0982fd8c23 | Samuel Bronson | 2011-11-14 16:13:35 -0500

Actually use monster-glyph-wide suffix entries in quote database.
For example, __r_suffix applies to rats, quokkas, and the like. Previously,
we mistakenly looked for (say) __r_prefix instead.

(This could possibly use a bit of refactoring.)

--------------------------------------------------------------------------------
05ad5fe5c1 | Robert Burnham | 2011-11-14 11:11:06 -0600

Move / Remove extra randart_effect triggering code
Also removes (comments out, please replace if it breaks something) some
code which auto-id's ranged, cursed weapons wielded by monsters which
hardly seems appropriate, considering we don't usually leak information
like that. The only possible middle ground that would make sense to me
is - at a point when the monster would've tried to switch to a melee
weapon - displaying some text like "The centaur tries to change weapons
but the ITEM is stuck to its hands."

--------------------------------------------------------------------------------
ad83a7047b | Robert Burnham | 2011-11-14 11:02:38 -0600

Update SPWPN_VAMPIRICISM code
Removes some deprecated legacy code left in place where transformed
vampires were still able to get SPWPN_VAMPIRCISM attacks despite
being limited to "Teeth" as their main hand weapon (branded teeth
attacks, apparently were the underling issue).

--------------------------------------------------------------------------------
9154a4c974 | David Lawrence Ramsey | 2011-11-14 00:45:51 -0600

Fix wording.

--------------------------------------------------------------------------------
50ff4a4b29 | David Lawrence Ramsey | 2011-11-14 00:40:50 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
a664e83eb6 | David Lawrence Ramsey | 2011-11-13 15:28:15 -0600

Clean up placeholder-related code a bit.

--------------------------------------------------------------------------------
d322c61b08 | David Lawrence Ramsey | 2011-11-13 15:01:30 -0600

Properly use ability_type in _is_god_ability().

--------------------------------------------------------------------------------
6858e3ffed | Samuel Bronson | 2011-11-13 15:01:12 -0500

Document a few more Lua functions.

--------------------------------------------------------------------------------
966f0cbc58 | David Lawrence Ramsey | 2011-11-13 12:55:20 -0600

Typo fix.

--------------------------------------------------------------------------------
2fcff53f18 | elliptic | 2011-11-13 13:49:11 -0500

Fix felids headbutting and kicking.

--------------------------------------------------------------------------------
29d0fae6e0 | David Lawrence Ramsey | 2011-11-13 12:39:49 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
a4733a21bc | David Lawrence Ramsey | 2011-11-13 12:39:49 -0600

Make gloves unwearable with (non-octopode) level-3 tentacles.
Currently, only octopodes can get tentacles, so this has no in-game
effect yet.

For now, assume that level-2 tentacles, which are described as replacing
not only your fingers, but your entire hands, are still sufficiently
hand-like that you can cram gloves over them.

--------------------------------------------------------------------------------
24571ffa7b | David Lawrence Ramsey | 2011-11-13 12:39:48 -0600

In the glove wearability check, check for level-3 claws before species.

--------------------------------------------------------------------------------
757fc69e99 | David Lawrence Ramsey | 2011-11-13 12:39:48 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
f20d949d7e | David Lawrence Ramsey | 2011-11-13 12:39:48 -0600

Since talons can be gained via Beastly Appendage, use you.has_talons().

--------------------------------------------------------------------------------
99736dec54 | Adam Borowski | 2011-11-13 19:10:25 +0100

Don't note almost every single monster in ZotDef.

--------------------------------------------------------------------------------
3db7517c15 | Adam Borowski | 2011-11-13 18:24:24 +0100

Special-case unique annotation for the Lernaean hydra to avoid # of heads.
It caused multiple annotations, one for every number of heads it had.

--------------------------------------------------------------------------------
578eceffa8 | elliptic | 2011-11-13 11:41:05 -0500

Always give some chance of gaining piety when pacifying a monster.
This keeps pacifying low HP monsters like rats relevant throughout the game;
previously they stopped giving piety ever.

The coinflip() chance of replacing 0 piety gain with 1 piety gain might need
to be tweaked downwards, but let's try it for now.

--------------------------------------------------------------------------------
9983692e4b | elliptic | 2011-11-13 11:25:31 -0500

Improve dex weighting for aux accuracy and minotaur retaliation.

--------------------------------------------------------------------------------
35db85f50e | elliptic | 2011-11-13 11:25:31 -0500

Fix strength weighting for aux damage being based on your wielded weapon.

--------------------------------------------------------------------------------
e9f644afd8 | David Lawrence Ramsey | 2011-11-13 10:09:48 -0600

Simplify.

--------------------------------------------------------------------------------
d329950cc1 | Adam Borowski | 2011-11-13 16:34:18 +0100

Make curare block breath use.
This is mostly cosmetic, but has a nice theme effect that makes curare feel
like something more than just a needle of poison+slow.

--------------------------------------------------------------------------------
0a8f3946ce | Adam Borowski | 2011-11-13 16:28:55 +0100

Fix the pronoun in "Lenin (catching its breath)".

--------------------------------------------------------------------------------
165da3da2f | Adam Borowski | 2011-11-13 15:03:29 +0100

Don't show the help for wizard targetting commands in regular games.

--------------------------------------------------------------------------------
90ca2b814e | Adam Borowski | 2011-11-13 13:09:27 +0100

Don't scan rings for sustenance twice; fix octopodes with three such rings.

--------------------------------------------------------------------------------
d4ec7f300b | Adam Borowski | 2011-11-13 13:09:27 +0100

Replace a bunch of floating-point sqrt()s by integer ones.

--------------------------------------------------------------------------------
d3257a5d2d | Eino Keskitalo | 2011-11-13 11:56:40 +0200

Replace the pearl dragon tile. It is a recolouring of a new submission from 
coolio. (#4251)

--------------------------------------------------------------------------------
5c01102b08 | elliptic | 2011-11-13 03:31:07 -0500

Make CONFIRM_ALL_EASY option accessible and fix options documentation.

--------------------------------------------------------------------------------
05eb9dee91 | Michael Gagno | 2011-11-12 23:28:46 -0800

Changes to minmay_elemental_castle to make it actually generate sometimes.
Changed to ORIENT: southwest instead of float, with a small adjustment to
the layout to make this work. The vault was simply too big to work as a
floating vault and would never get placed (at least, I wasn't able to get it
to work after about 50 tries).

Even with this change it's not very likely to show up.

--------------------------------------------------------------------------------
85cf7d9029 | elliptic | 2011-11-13 02:00:01 -0500

Make petrified/paralyzed minotaurs unable to retaliate.

--------------------------------------------------------------------------------
d0ef4f4b51 | Michael Gagno | 2011-11-12 22:55:22 -0800

Increase chance of stairs in a few zot vaults.
The chance of having all three was so low that a lot of people don't even
know these vaults exist. I've also changed a few things that were preventing
some of these from being placed.

--------------------------------------------------------------------------------
db76c55141 | Michael Gagno | 2011-11-12 22:12:34 -0800

Fix lemuel_firehouse.
It had three stairs but placed them in a cut off area, causing the vault to
be rejected... in the extremely unlikely event that this vault would
generate, it would never have all three stairs (as intended).

--------------------------------------------------------------------------------
7ce7a3abce | Michael Gagno | 2011-11-12 21:59:46 -0800

Use magenta glass tiles in zot:5 vaults.

--------------------------------------------------------------------------------
2e3d879eb1 | David Lawrence Ramsey | 2011-11-12 23:18:52 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
82a45ef81e | elliptic | 2011-11-13 00:09:16 -0500

Make Mass Abjuration L6.
With the monster summon spam nerf, this isn't enough better than single-target
abjuration to justify having more than twice the cost and being so hard to
cast.

--------------------------------------------------------------------------------
d49067b630 | elliptic | 2011-11-12 23:41:08 -0500

Fix minotaurs getting their retaliation headbutt in all forms.

--------------------------------------------------------------------------------
9df2e86d72 | David Lawrence Ramsey | 2011-11-12 22:07:39 -0600

Clarify comment.

--------------------------------------------------------------------------------
3e5b678e15 | David Lawrence Ramsey | 2011-11-12 22:03:59 -0600

Disallow artefact pearl dragon armours named for Ashenzari.
They repel curses the same way the holy wrath brand on weapons does.

--------------------------------------------------------------------------------
d3f71d73c2 | Eino Keskitalo | 2011-11-13 01:06:16 +0200

Add more pan lord part tiles from Denzi (#4888).
I also changed rim 1 to rim 0 - some of the heads are meant to blend into the 
bodies.

I also removed demon_head_heads - the concept is nice, but it didn't look great 
on any of the combos I saw while testing, and looked bad on many. 
demon_head_tentacles looks bad on some of the combos as well, but great on 
others, so I'd rather keep it.

--------------------------------------------------------------------------------
847fc65d2e | Eino Keskitalo | 2011-11-13 01:06:16 +0200

Doll code/filename cleanup: fix plate PLATE2, plate2 PLATE. Also scalemail.

--------------------------------------------------------------------------------
c60ad6dc66 | Eino Keskitalo | 2011-11-13 01:06:16 +0200

Doll tile code cleanup: change "banded.png" (etc) to "splint.png".

--------------------------------------------------------------------------------
f58230afd1 | Chris Campbell | 2011-11-12 20:54:03 +0000

Split automatic eating of chunks while travelling into a separate option from 
easy_eat_chunks
For people who want the functionality of autoeating without the
interface inconsistency added by easy_eat_chunks (where eating is
sometimes a single keypress and sometimes multiple keypresses).

--------------------------------------------------------------------------------
9c56434e71 | Chris Campbell | 2011-11-12 20:50:47 +0000

Fix some typos in options_guide.txt

--------------------------------------------------------------------------------
9331e5b8a8 | Chris Campbell | 2011-11-12 20:50:06 +0000

Change always_confirm_butcher to allow butchering the top corpse of a stack 
with one keypress
"auto" is the default and identical to the current default behaviour -
if there's a single corpse, butcher it, if there are multiples, ask
which ones to butcher.

"always" is identical to the old "always_confirm_butcher = true" - the
prompt is always displayed, even if there's only one corpse.

"never" is new behaviour - if there's a single corpse, it's butchered,
and if there are multiples, then the top corpse is butchered (skipping
corpses that your god would get angry at you for butchering entirely).
Possibly this should be expanded to also skip rotten corpses if you're
not a saprovore, and so on.

--------------------------------------------------------------------------------
ea54e9d12d | Chris Campbell | 2011-11-12 16:59:02 +0000

Don't let Yred gift high-level monsters as early, stop gifting low-level 
monsters and slow down gifting at higher thresholds
From discussion in IRC, Yred gifting probably needs something more of a
complete rework (important things: cap on bone dragons/servitors, cap
on total perma-allies (and allow new gifts to replace or upgrade old
ones), either inter-level recall of some description or allies
following you through stairs of their own accord - those last two
should probably apply to all perma-allies). This might be an
improvement in the short term though.

--------------------------------------------------------------------------------
7194cc9b14 | Chris Campbell | 2011-11-12 16:59:02 +0000

Don't try to identify magic staves when hitting things with them (they auto-id 
now)

--------------------------------------------------------------------------------
e0044479f8 | Chris Campbell | 2011-11-12 16:59:01 +0000

Improve LRD description

--------------------------------------------------------------------------------
136c46c505 | Adam Borowski | 2011-11-12 17:02:18 +0100

Switch the order of death cobs and ghouls on Yred's gift list.

--------------------------------------------------------------------------------
b1279f4c37 | Adam Borowski | 2011-11-12 17:02:18 +0100

Don't keep doll settings in version control.

--------------------------------------------------------------------------------
78cd2f87d5 | elliptic | 2011-11-12 10:05:31 -0500

Tweak the effect of ring of sustenance a little more.
It is a little less good now for players with high metabolism (or
metabolism-increasing effects like regeneration or haste), and it is also
placed at the correct location in the function.

It still changes hunger per turn from 3 to 1 and from 4 to 2 like the old ring
did.

--------------------------------------------------------------------------------
1aa6f8fa0d | Michael Gagno | 2011-11-12 05:16:21 -0800

Change ring of sustenance formula (relative rather than absolute).
Previously: each ring subtracted 2 from your hunger rate (normal rate is 3).
This was problematic, in that it made the ring nearly useless for trolls
(hunger rate 9).

The new formula makes a single ring of sustenance halve your hunger rate
(rounding down), with two rings cutting your hunger rate to 1/3. Therefore,
there's no change to hunger rates 3 (most races) and 4 (centaurs, ogres),
which will get their rates reduced to 1 and 2 respectively. This makes a big
difference for trolls though, as well as any character with a high level of the
fast metabolism mutation.

This should help the issue of extended endgame trolls having food issues. If
this change isn't enough, the formula could be made so a single ring thirds
your hunger rate.

--------------------------------------------------------------------------------
fe068acab5 | David Lawrence Ramsey | 2011-11-11 22:49:17 -0600

Add formatting fix.

--------------------------------------------------------------------------------
69fe2a895f | Chris Campbell | 2011-11-12 03:01:58 +0000

Make LRD abort with no cost when not targeting a shatterable monster or feature
LRD can no longer shatter traps or corpses, and you have to be able to
see a monster to shatter it. Other than that the functionality should
be mostly the same, with some minor tweaks for slightly more
consistent numbers.

--------------------------------------------------------------------------------
5f17f3df00 | Chris Campbell | 2011-11-12 03:01:58 +0000

Mark Curse Skulls and Murray as skeletal

--------------------------------------------------------------------------------
80d819494c | Chris Campbell | 2011-11-12 03:01:57 +0000

Tweak Shatter damage on petrified monsters, since petrify's damage reduction 
was changed

--------------------------------------------------------------------------------
02638061e5 | Jude Brown | 2011-11-12 12:06:52 +1000

Update comment for spirit_fades.

--------------------------------------------------------------------------------
991f3c26b8 | Jude Brown | 2011-11-12 12:05:05 +1000

Tweak Summon Holies, Silver Star stats.
Now, angels and cherubs are common, with rarely spirits, and very rarely
shedu, ophanim and paladin. This makes their summons slightly more in
line with the severity of a curse skull -- more pips to even out, and
removing too extremely-strong allies.

--------------------------------------------------------------------------------
1662c3c9a2 | Jude Brown | 2011-11-12 12:03:35 +1000

Tweak spirit fade summons, mark them as finished.
They now summon either an angel or a cherub, or rarely an apis, phoenix,
daeva, or pearl dragon, as before. Instead of being guaranteed to get
hit with a nasty, though, you could just get a pip. The weights may need
to be tweaked further to make them less annoying.

--------------------------------------------------------------------------------
2c17955f06 | Jude Brown | 2011-11-12 10:11:03 +1000

Remove phoenix assert, don't try placing on origin instead.
This only seems to rarely trigger in the arena, and I can't quite work
out why. This doesn't prevent phoenixes from being reborn within the
arena though.

--------------------------------------------------------------------------------
ac38f086da | elliptic | 2011-11-11 19:09:58 -0500

Retaliation headbutt for minotaurs when dodging.
The retaliation headbutt is the same damage as it would be as an aux attack,
and it happens (str+dex)% of the time you dodge a non-reaching melee attack
from a visible monster (but only once per monster per turn).

--------------------------------------------------------------------------------
5abb1b8993 | David Lawrence Ramsey | 2011-11-11 16:51:58 -0600

Indicate resistances of artefact dragon armours other than gold ones.
Steam and mottled aren't handled, but they're odd cases anyway.

--------------------------------------------------------------------------------
36fd13d907 | David Lawrence Ramsey | 2011-11-11 16:51:57 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
de51ab0f2e | Adam Borowski | 2011-11-11 23:20:44 +0100

Revert removal of KILLED_BY_PETRIFICATION, old score files need that.

--------------------------------------------------------------------------------
09961c879b | Adam Borowski | 2011-11-11 23:20:44 +0100

Special-case "Foo the pandemonium lord" in milestones/obituaries.

--------------------------------------------------------------------------------
31ef48abc4 | Eino Keskitalo | 2011-11-12 00:19:14 +0200

Tentacle hands for dolls from Pingas (#4687).
They're displayed if the player has the mutation, is not an octopode, and is 
not wielding/wearing something in the hand. For non-octopodes, only Beastly 
Appendage gives tentacles, but once there's constriction, they should be 
considered as a normal and/or DS mutation.

--------------------------------------------------------------------------------
9f6b0c4b24 | David Lawrence Ramsey | 2011-11-11 16:07:36 -0600

Comment fix.

--------------------------------------------------------------------------------
d287862d0c | Adam Borowski | 2011-11-11 22:52:05 +0100

Remove sanctuary if you use Toxic Radiance with either you or victims inside.
There was a prompt but it no actual penalty.

--------------------------------------------------------------------------------
d718b6d265 | Adam Borowski | 2011-11-11 21:25:54 +0100

Axe you.last_chosen.

--------------------------------------------------------------------------------
7aed6baffc | Adam Borowski | 2011-11-11 21:14:24 +0100

Tiles for the dragonskin cloak.
The item one by roctavian, the worn one is a poorly made texturing.

--------------------------------------------------------------------------------
8a51bb164e | elliptic | 2011-11-11 14:44:56 -0500

Fix a comment.

--------------------------------------------------------------------------------
27995ac234 | Adam Borowski | 2011-11-11 20:23:29 +0100

Don't use different db sections for hell effect messages.

--------------------------------------------------------------------------------
e6ed42f4c8 | Adam Borowski | 2011-11-11 20:23:29 +0100

Let CHANNEL: prefixes use all types in both current uses.

--------------------------------------------------------------------------------
bb81648a5f | Adam Borowski | 2011-11-11 20:23:29 +0100

Ignore generated files based on full path.
Choosing just the name works only when no directory is specified, like it
was for lua tags.

--------------------------------------------------------------------------------
060b7c6524 | Adam Borowski | 2011-11-11 20:23:29 +0100

Don't trap people in evilmike_entry_crescent.

--------------------------------------------------------------------------------
68027b2a29 | Chris Campbell | 2011-11-11 19:17:10 +0000

Give GDA an extra point of AC
At 11/-9 it compares very unfavourably to, say, a plate mail of rF+
(10/-6, and probably easier to obtain), since it has such a high
strength requirement in comparison, and the additional resists aren't
likely to be a huge factor.

--------------------------------------------------------------------------------
f98489e327 | David Lawrence Ramsey | 2011-11-11 13:04:59 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
219bfe17c0 | Chris Campbell | 2011-11-11 18:43:53 +0000

Make Confusing Touch succeed less often
Might well still need tweaking but this should be a start.

--------------------------------------------------------------------------------
272ae451d5 | Chris Campbell | 2011-11-11 18:43:52 +0000

Change Control Undead to level 4 pure Necromancy, Dispel Undead to level 5, 
rearrange book contents
Control Undead added to the book of Necromancy.
Dispel Undead moved from the book of Necromancy to the book of Death.

--------------------------------------------------------------------------------
d390da27ad | Chris Campbell | 2011-11-11 18:43:52 +0000

Remove Metabolic Englaciation
It's never really used, since sleeping multiple monsters at a time
is actually worse than doing it one at a time with EH (since when you
sleep lots of monsters at once they'll just all wake up together).

--------------------------------------------------------------------------------
06c2b9242f | David Lawrence Ramsey | 2011-11-11 12:34:32 -0600

Add formatting fix.

--------------------------------------------------------------------------------
07f21c9186 | Chris Campbell | 2011-11-11 17:47:01 +0000

Make Olgreb's Toxic Radiance depend on power for levels of poison inflicted

--------------------------------------------------------------------------------
29e48f8db5 | Chris Campbell | 2011-11-11 17:47:01 +0000

Don't let tentacles increase the damage of base unarmed and aux punches (they 
still provide the high-damage "squeeze" aux)
This should improve the balance of Beastly Appendage, since none of the
other mutations it provides increase your base unarmed damage. When
constriction for Octopodes/Nagas is implemented it might need looking
at again.

--------------------------------------------------------------------------------
94fc6b729c | David Lawrence Ramsey | 2011-11-11 11:38:28 -0600

Tweak unbreathing mutation description.
Unbreathing refers to the ability to survive without breathing, no more,
no less.  Being able to go underwater is still a separate quality, and
being able to speak presumably still requires the ability to breathe, so
it still applies to e.g. Zin-worshipping grey draconians.

As for mummies (not to mention felids and octopodes), assume they speak
via magical means, as I can't think of a different justification right
now.

--------------------------------------------------------------------------------
7743172a24 | David Lawrence Ramsey | 2011-11-11 11:38:28 -0600

Add spacing fix.

--------------------------------------------------------------------------------
a3b0bf6aaf | Robert Burnham | 2011-11-11 11:02:24 -0600

Add comments, fix player_stab_check
Previous changes were resulting in sleeping stabs as having a chance
(relatively high, actually; about 50% at max skill) to fail, dealing
normal damage.

--------------------------------------------------------------------------------
b159686af2 | Chris Campbell | 2011-11-11 17:01:42 +0000

Correctly track the source of paralysis for miscasts

--------------------------------------------------------------------------------
7a3302a78c | David Lawrence Ramsey | 2011-11-11 09:47:42 -0600

Move hell effect messages into the miscellaneous database.
This way, they can be much more easily expanded.  There are a few
deficiencies, however, compared to the monster speech database, which it
seems inappropriate for since monsters are not speaking exclusively.

1. Embedded lua isn't run, so the "You smell brimstone./Brimstone rains
from above." message, dependent on you.can_smell(), is currently reduced
to the second message in all cases.

2. There's no way to change what channel the hell messages come through,
although the relevant code from mons_speaks_msg() could probably be
adapted.  Also, if (1) is fixed, there is a lua equivalent of noisy()
that could be used for the sound channel messages, although according to
its surrounding comments, it's limited compared to the non-lua version.

--------------------------------------------------------------------------------
b5c24db798 | David Lawrence Ramsey | 2011-11-11 09:47:16 -0600

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
58dfc7ab1e | Adam Borowski | 2011-11-11 15:49:21 +0100

Give more info in a common assert failure.

--------------------------------------------------------------------------------
82f492f136 | Adam Borowski | 2011-11-11 15:35:44 +0100

Denzi's tile for flightless tormentors.

--------------------------------------------------------------------------------
148a168c49 | Adam Borowski | 2011-11-11 15:02:00 +0100

Identify an item class upon seeing a pre-identified item of that type.

--------------------------------------------------------------------------------
6829e994b8 | Adam Borowski | 2011-11-11 14:44:15 +0100

s/crystal plate/\1 armour/ to stave off elliptic's culinary fears.

--------------------------------------------------------------------------------
5d27663bc8 | Adam Borowski | 2011-11-11 14:29:42 +0100

Don't waste cancelled known scrolls of vorpalize weapon.
The refrigeration/venom/immolation gimmick is kind of pointless and
nethackish, but the real use is trying to vorpalize weapons which can't
be vorpalized.

--------------------------------------------------------------------------------
1fb1ccd005 | Adam Borowski | 2011-11-11 13:49:01 +0100

When affixing chaos, make Xom laugh faster.
Since chaos explosion effects are quite likely to cause further enjoyment,
order of messages matters.

--------------------------------------------------------------------------------
54a256a079 | Adam Borowski | 2011-11-11 13:45:10 +0100

Don't warn the player when reading an unknown scroll of vorpalize.
There's no penance for unknown scrolls, too.

--------------------------------------------------------------------------------
4d09485f26 | Adam Borowski | 2011-11-11 13:35:04 +0100

Add a warning when you'd toxic radiance a friend.

--------------------------------------------------------------------------------
d49db285d8 | Adam Borowski | 2011-11-11 13:33:03 +0100

Actually create dat/dlua/tags.lua

--------------------------------------------------------------------------------
cbd4e215c5 | Adam Borowski | 2011-11-11 13:24:18 +0100

Unify a bit player vs monster handling of rPois.
Immunity can be marked by 3 like in rRot.

rPois is still a mess, with monsters currently being immune to everything but
Staff of Olgreb, staves of poison and Poison Arrow at 1 and 2.

--------------------------------------------------------------------------------
64d694602d | Adam Borowski | 2011-11-11 12:16:19 +0100

Autogenerate dat/dlua/tags.lua
It'd be a royal pain in the butt to have to manually generate it every time
you add a minor save tag.  Also, Python is not easily available on most
platforms.

--------------------------------------------------------------------------------
f1787c946f | Jude Brown | 2011-11-11 15:59:29 +1000

Update fog machine compatibility to use tags library.

--------------------------------------------------------------------------------
7680a4159e | Jude Brown | 2011-11-11 15:59:28 +1000

Solve minor tag name issue for Lua marker compatibility.
util/gen_luatags.py will now generate dat/dlua/tags.lua. It's pretty
simplistic at the minute -- just mapping the relevant TAG_MINOR_XXX to a
numeric value. This is obviously not automated, and will need to be run
whenever you update tag-version.h /and/ wish to be able to access one of
those tags from Lua.

It could do more fancy things, I suppose, but having it simple for now
solves a relatively minor issue which could, in theory, become more
prevalent if or when we start modifying markers more regularly. At the
very least, it means we don't need to bump the major version every time
I change a fog machine parameter.

--------------------------------------------------------------------------------
87f38c09d6 | elliptic | 2011-11-11 00:22:01 -0500

Make fire vortex melee more fiery.
Previously their AF_FIRE barely did anything because their HD was really low;
now a significant portion of their damage comes from it.

--------------------------------------------------------------------------------
140f799599 | elliptic | 2011-11-11 00:22:01 -0500

Reduce duration of clouds and vortices from Fire Storm.
Cloud duration is now the same as for Ice Storm.

--------------------------------------------------------------------------------
740a9ebf04 | David Lawrence Ramsey | 2011-11-10 22:47:48 -0600

Fix Mantis 4884.
When affixing the freezing brand (and, hence, casting Ozocubu's
Refrigeration as a side effect), if you answer "n" to the attack warning
prompt, it's properly aborted instead of erroneously affixing the
freezing brand without any side effects.

This is also done for affixing the venom brand (and, hence, casting
Olgreb's Toxic Radiance as a side effect).  Note, however, that this
effectively does nothing right now, as cast_olgrebs_toxic_radiance()
doesn't give the attack warning prompt and always succeeds.  I'm unsure
how to add the attack warning prompt to it, as a simple LOS check is
wrong due to the spell's not working on invisible monsters, but if the
function is changed to do so and return SPRET_ABORT in that case, the
problem should be handled properly then.  I've added a comment
explaining the deficiency in the meantime.

--------------------------------------------------------------------------------
c01bc6c7be | Jude Brown | 2011-11-11 14:35:24 +1000

Update marker save compatibility, wrapper for TAG_MAJOR_VERSION.

--------------------------------------------------------------------------------
9c67fedf4c | Michael Gagno | 2011-11-10 20:34:03 -0800

Do not give Deep Dwarf Necromancer monsters Jessica's spells.
They would randomly be given their own spellbook, or jessica's spells
(why??!). This changes it so they only get their own spellbook. That means
there is no longer any randomness... but it's easy to add a new set of
spells if a good one can be thought of.

--------------------------------------------------------------------------------
b632be0cd3 | David Lawrence Ramsey | 2011-11-10 22:19:08 -0600

Simplify message for affixing freezing brand.
As mentioned in Mantis 4884, "glows brilliantly blue" for non-ranged
weapon branding looks like a failed enchant weapon (or possibly a
"scroll of random uselessness" message), so use "covered in frost" for
both brandings.

--------------------------------------------------------------------------------
b3cd586429 | David Lawrence Ramsey | 2011-11-10 22:16:29 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
5ee9feefdf | David Lawrence Ramsey | 2011-11-10 22:15:29 -0600

Use the proper IMMOLATION-type enum when affixing the fire brand.

--------------------------------------------------------------------------------
5364b2f3c0 | Michael Gagno | 2011-11-10 19:32:54 -0800

Some tweaks to the new Geh map.
The number of smoke demons has been reduced by 33% (random). Also, they are
patrolling, which should make them less likely to cluster in one spot. Finally,
there are a few more windowless areas.

This should make the map easier for melee characters who don't have smiting
attacks.

--------------------------------------------------------------------------------
2a03c9ca87 | Jude Brown | 2011-11-11 12:59:23 +1000

Fix Phoenix attitude, marker removal (#4881).
This should retain the correct attitude across rebirth, and resolve any
issues with accessing the freed marker for information. It doesn't
resolve cross-level changes, though.

--------------------------------------------------------------------------------
dc09296bda | elliptic | 2011-11-10 21:44:20 -0500

Force tormentors to walk on the ground.
There wasn't any good reason for them to fly, since they are too busy having
spines and hooks and such to have any wings.

--------------------------------------------------------------------------------
463a6fbfbe | David Lawrence Ramsey | 2011-11-10 20:12:21 -0600

Reenable brown for large abominations, as it's *actually* unused there.
Also, fix surrounding comments.

--------------------------------------------------------------------------------
292c68f8c0 | David Lawrence Ramsey | 2011-11-10 19:43:04 -0600

Revert "Remove more references to brown undead abominations."
This reverts commit 493f3694885ac582423145310fdb85a99dc34601.

Brown is no longer used for undead abominations, but it is for crawling
corpses and macabre masses.

--------------------------------------------------------------------------------
b3bb20fc31 | Samuel Bronson | 2011-11-10 20:38:13 -0500

Show stash search prefixes on description screen.

--------------------------------------------------------------------------------
493f369488 | David Lawrence Ramsey | 2011-11-10 19:31:24 -0600

Remove more references to brown undead abominations.

--------------------------------------------------------------------------------
e487391d49 | Neil Moore | 2011-11-11 01:38:31 +0100

More Twisted Resurrection fixes and cleanup.
Use brown 'x' rather than dark grey '%' for crawlies; remove brown from
undead abomination colours.

Allow oversized (> 15 HD) small abominations to be upgraded.

Fix an incorrect comment on HD-to-weight efficiency.

--------------------------------------------------------------------------------
5be338836d | Adam Borowski | 2011-11-11 00:53:21 +0100

Make a bunch of functions static, delete some unused junk.

--------------------------------------------------------------------------------
39aa805b40 | Chris Campbell | 2011-11-10 22:16:33 +0000

Interrupt passwall when hit by dispersal or otherwise blinked

--------------------------------------------------------------------------------
5e112b11a3 | David Lawrence Ramsey | 2011-11-10 16:06:26 -0600

Add Twisted Resurrection to ghost spells, since it has a monster version now.

--------------------------------------------------------------------------------
1a54dc0925 | David Lawrence Ramsey | 2011-11-10 16:04:09 -0600

Remove Animate Dead from Xom's spell list.
There's no easy way to check whether there are corpses around it so that
it'll work (as is done for other spells), and he can send you better
permanent allies anyway, or demonic allies that can raise zombies for
you.

--------------------------------------------------------------------------------
2de0034a73 | David Lawrence Ramsey | 2011-11-10 15:55:43 -0600

Comment fix.

--------------------------------------------------------------------------------
298eaaa6cf | David Lawrence Ramsey | 2011-11-10 15:54:10 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d57b92e4ea | David Lawrence Ramsey | 2011-11-10 15:45:21 -0600

Properly make a function static.
It probably could be reused elsewhere eventually, though.

--------------------------------------------------------------------------------
30f7d65bbb | Adam Borowski | 2011-11-10 21:19:25 +0100

Twisted Resurrection: actually use LOS range rather than your position.
Unless cast with a very high power, it'd affect only the place you're
standing on, or its direct neighbours.  Which goes totally contrary to the
overhaul's purpose -- getting rid of corpse stacking.

--------------------------------------------------------------------------------
38c8921e3e | Adam Borowski | 2011-11-10 20:51:29 +0100

Mountain dwarf bats -- to the bat cave!

--------------------------------------------------------------------------------
b94cf9064f | Adam Borowski | 2011-11-10 20:12:26 +0100

s/BEAM_CHARM/BEAM_ENSLAVE/ to match the name used elsewhere.
There's nothing charming in forcing someone to do your bidding -- recognized
as a hostile act by the game.

--------------------------------------------------------------------------------
9568e13a49 | Chris Campbell | 2011-11-10 18:47:47 +0000

Don't always upgrade clubs/slings to long swords when generating a good item

--------------------------------------------------------------------------------
32c1cac36d | Chris Campbell | 2011-11-10 18:45:00 +0000

Make Blade Hands damage depend more on strength and dex

--------------------------------------------------------------------------------
8e5f6d6652 | Chris Campbell | 2011-11-10 18:44:59 +0000

Adjust the power modifiers for a few hexes
Removed the boost to player paralysis (if necessary it could be
reinstated as a part of the paralysis zap itself, maybe), and made
Corona and Slow a little harder to resist.

--------------------------------------------------------------------------------
e0fbb807b0 | Chris Campbell | 2011-11-10 18:44:59 +0000

Make Staff of Wucad Mu miscasts more common

--------------------------------------------------------------------------------
b40c13f2f0 | Chris Campbell | 2011-11-10 18:44:58 +0000

Make demons from the sceptre of Asmodeus temporary instead of permanent (but 
long-lived and unabjurable)

--------------------------------------------------------------------------------
ff54ebec12 | David Lawrence Ramsey | 2011-11-10 12:00:51 -0600

Revert "Tweak Twisted Resurrection description."
This reverts commit 98b65e2f7c239f261c8c29c4e4372c40b58245dd.

Apparently, having enough spell power makes it work on corpses you're
not standing on.

--------------------------------------------------------------------------------
98b65e2f7c | David Lawrence Ramsey | 2011-11-10 11:26:16 -0600

Tweak Twisted Resurrection description.
Referring to "nearby" corpses falsely implies that you don't need to be
standing on the corpse(s) that will be animated.

--------------------------------------------------------------------------------
1768250f2f | David Lawrence Ramsey | 2011-11-10 11:25:58 -0600

Add spacing fix.

--------------------------------------------------------------------------------
bcc2e95231 | David Lawrence Ramsey | 2011-11-10 11:02:57 -0600

Constify.

--------------------------------------------------------------------------------
a1fe780dd5 | David Lawrence Ramsey | 2011-11-10 11:00:44 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
499579f255 | David Lawrence Ramsey | 2011-11-10 09:56:52 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
e806efcb9a | David Lawrence Ramsey | 2011-11-10 09:35:07 -0600

Comment fix.

--------------------------------------------------------------------------------
29dba8b6b3 | Chris Campbell | 2011-11-10 14:42:32 +0000

Give some monsters appropriate fake_spells and actual_spells flags
Geryon gets M_FAKE_SPELLS since he's evoking his horn (so shouldn't be
affected by antimagic). Fire giants, frost giants and titans get
M_ACTUAL_SPELLS - according to kilobyte they should be using actual
spells rather than innate abilities if they're giants from norse myth,
which sounds good to me as it removes another weird silence exception
and fits their flavour easily.

--------------------------------------------------------------------------------
d837506958 | David Lawrence Ramsey | 2011-11-10 08:36:25 -0600

Simplify.

--------------------------------------------------------------------------------
f4be2a7730 | David Lawrence Ramsey | 2011-11-10 08:33:02 -0600

Add punctuation fixes.

--------------------------------------------------------------------------------
03a5b3bbdb | Jude Brown | 2011-11-10 21:43:29 +1000

Tweak 'b' colours more, restrict LIGHTGRAY from butterflies.
Fire bats go onto ETC_FIRE, and phoenixes onto RED.

--------------------------------------------------------------------------------
ea1a25c5d3 | Jude Brown | 2011-11-10 21:43:28 +1000

Restrict butterflies to light colours only; recolour relevant 'b's.
This moves fire bats to red, off of light-red.

--------------------------------------------------------------------------------
23e41a5753 | Jude Brown | 2011-11-10 21:43:28 +1000

Finish Phoenixes!
They'll now resurrect themselves. Hopefully, there aren't too many bugs,
but it at least seems to work all of the time now, rather than just
simply when in LOS.

--------------------------------------------------------------------------------
b954c760b0 | Adam Borowski | 2011-11-10 12:25:24 +0100

Use ugly French spacing in a description.
It's an unsightly abomination, but since Crawl uses it thoroughly, having
inconsistent spacing is even worse.

--------------------------------------------------------------------------------
1d19b7e04e | Adam Borowski | 2011-11-10 12:12:38 +0100

Turn around reversed species and genus for crawling corpse.

--------------------------------------------------------------------------------
938a604b99 | Adam Borowski | 2011-11-10 12:09:57 +0100

Pluralize "ass" into "asses".
The Enchantress can be only one, but beware of macabre masses of donkeys.

--------------------------------------------------------------------------------
e2c846063a | Adam Borowski | 2011-11-10 12:04:07 +0100

Whitespace and formatting fixes.

--------------------------------------------------------------------------------
8595f44291 | Neil Moore | 2011-11-10 11:41:51 +0100

Fix dangling string references.
We shouldn't save the c_str() of a temporary string, since it can
be deallocated as early as the end of the statement.

--------------------------------------------------------------------------------
e0e6cce8fc | Neil Moore | 2011-11-10 11:41:13 +0100

Make Twisted Resurrection a monster spell.
Give it to the elf animators (priest, high priest, and death mage).

Also add descriptions for crawling corpses, macabre masses, and the
spell itself; and placeholder tile specs for the monsters.

--------------------------------------------------------------------------------
9cad31c96d | Neil Moore | 2011-11-10 11:40:49 +0100

Messaging improvements.
Move message generation out of change_monster_type(), and a few
other messaging-related cleanups.

Also, do not make created abominations belong to Lugonu or Makhleb
just because you are in that god's branch.

--------------------------------------------------------------------------------
7c4ac1595b | Neil Moore | 2011-11-10 11:40:28 +0100

Split monster_polymorph().
monster_polymorph() now does the target selection, validation,
messaging, and angering; everything else is handled by the new
change_monster_type().  Call the latter when merging crawlies.

Currently, change_monster_type() returns the message that should
be printed, but it's probably possible to move the message
generation itself back into monster_polymorph().

This reverts some of the changes from the previous commit.

--------------------------------------------------------------------------------
651fd7a70f | Neil Moore | 2011-11-10 11:40:05 +0100

Use monster_polymorph() when changing types.
This way we are sure that all information is updated properly.  To
support this, add another (optional) parameter to monster_polymorph()
to toggle message generation.

Using the polymorph code means that we also have to make macabre masses
and abominations valid polymorph targets for crawlies, and large
abominations valid targets for small abominations.

Probably the post-check, non-messaging parts of monster_polymorph should
be split off into a change_monster_type() function, with
monster_polymorph() itself handling target selection, validation, and
messaging.  Then we could use change_monster_type() here and undo our
changes to _valid_morph().

--------------------------------------------------------------------------------
b128a004f3 | Neil Moore | 2011-11-10 11:39:39 +0100

Don't encourage grindy behaviour.
Avoid upgrading large abominations; if someone wants lots of low-HD
large abominations they would be encouraged to take existing ones
off-level.

Round masses using div_round_rand, with results of 0 HD collapsing
into a pulpy mess.

--------------------------------------------------------------------------------
d1e63fa8e3 | Neil Moore | 2011-11-10 11:39:04 +0100

Some merging fixes, still incomplete.
Cause merged crawlies/aboms to lose a turn (split out of
_do_merge_slimes into a new function _lose_turn).

Do not create a new monster when merging.  Instead, change the type of
the old merged-into monster.  This still needs some work to get speed
and other attributes correct.

Fix a bug that always gave merged abomination >= max hit dice.

Don't update the merged-into creature's behaviour and target.  This may
need to be changed, but the idea is that crawlies are absorbed by
abominations, including unfriendly ones.

--------------------------------------------------------------------------------
18297e001b | Neil Moore | 2011-11-10 11:38:34 +0100

First pass at corpse merging.
Based on slime merging, but we replace both creatures, not just the one
initiating the merge.

--------------------------------------------------------------------------------
2c51fb7560 | Neil Moore | 2011-11-10 11:38:19 +0100

Self-assembling abominations, part 1.
Twisted Abomination now turns corpses in a (power-dependent) radius into
"crawling corpses" and "macabre masses", with HD based on corpse weight
and spell power.  Enough corpses and mass in a single pile creates an
abomination instead.

--------------------------------------------------------------------------------
f22723532b | Neil Moore | 2011-11-10 11:37:06 +0100

Indentation fix.
The indentation of player::visible_to suggested that blindness affects
creatures with see/sense invis, even though that is not the case.

--------------------------------------------------------------------------------
e57cd63f71 | Neil Moore | 2011-11-10 11:32:44 +0100

Mention hydras only in fiery blade descriptions.
This was always supposed to be the case, but the code mistakenly treated
DVORP_* as bit fields, causing the message to be displayed on (flaming)
piercing, slashing, and stabbing weapons, too.

--------------------------------------------------------------------------------
a923452d78 | Adam Borowski | 2011-11-10 10:45:32 +0100

Change several array size asserts to static compile checks.

--------------------------------------------------------------------------------
1566f8ed04 | Michael Gagno | 2011-11-10 01:15:24 -0800

Make jiyva's "remove harmful mutation" power not depend on inovcations.
This puts it in the same category of other abilities, like zin's cure all
mutations. Previously, you could just spam the power at "Poor" (at no real
cost) until it worked. There's no tactical reason for this to need
invocations skill.

--------------------------------------------------------------------------------
984f2e9e99 | David Lawrence Ramsey | 2011-11-09 23:50:47 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
6612a8f22b | David Lawrence Ramsey | 2011-11-09 23:44:16 -0600

TYpo fix.

--------------------------------------------------------------------------------
72d44417a7 | David Lawrence Ramsey | 2011-11-09 23:36:59 -0600

Tweak wording.

--------------------------------------------------------------------------------
a314e69d3d | Michael Gagno | 2011-11-09 20:16:29 -0800

Make the silence overlay in tiles less gross.
It was really obstructive, with parts of it being completely opaque. I was
tempted to just make it a solid purple, but kept the grid look because it
sticks out a bit better against halo effects (relevant for Mennas).

--------------------------------------------------------------------------------
4cc0881623 | Adam Borowski | 2011-11-10 03:57:35 +0100

Abort passwall if a wall appears on the target place.
The instadeath thing was an ugly remnant of the times when trying to walk
into lava would kill you, etc.

Passwall is still buggy, though: it assumes nothing changes.  If the wall
disappears, turns into metal, lava or feathers, you'll happily passwall to
the original destination.

--------------------------------------------------------------------------------
de7ffdbafb | Adam Borowski | 2011-11-10 03:40:02 +0100

Cut off the staff from gnoll shaman's tile, use it for everyone.

--------------------------------------------------------------------------------
e0ecbdf1ba | Samuel Bronson | 2011-11-09 19:36:17 -0500

Prevent excess travel exclusions in shiori_entry_oz.
Unfortunately, this way we won't get exclusions everywhere we'd want
them, at least not without waiting for a long time...

--------------------------------------------------------------------------------
7800ed8840 | Adam Borowski | 2011-11-09 18:52:43 +0100

Set weapon attachment for the gnoll sergeant tile.
The shaman suffers from the same problem -- and an attachment would be at
the same offset, however the tile already has a staff.  Which is wrong, as
shamans can use any weapon.

--------------------------------------------------------------------------------
32690c807b | David Lawrence Ramsey | 2011-11-09 08:55:40 -0600

Properly check the American spelling of e.g. "ego armor", as done elsewhere.

--------------------------------------------------------------------------------
5281212c96 | David Lawrence Ramsey | 2011-11-09 08:54:40 -0600

Properly check the American spelling "memorize".

--------------------------------------------------------------------------------
626a6eec01 | David Lawrence Ramsey | 2011-11-09 08:54:22 -0600

Add comment fixes.

--------------------------------------------------------------------------------
303d37cb34 | elliptic | 2011-11-08 20:48:34 -0500

Make LRD not require Z-casting when no monsters are in sight.
It is always potentially useful for digging, and it can hit monsters who
aren't currently visible sometimes.

--------------------------------------------------------------------------------
3b8d35f213 | elliptic | 2011-11-08 20:48:34 -0500

Make LRD handle scrying and transparent walls correctly.
Correctly means not expanding to the other side of a wall, since you already
can't target stuff on the other side.

--------------------------------------------------------------------------------
995af74497 | Samuel Bronson | 2011-11-08 20:41:46 -0500

Fix a bug in the training restrictions code.
(It might even have been a user-visible bug, but I'm not sure.)

--------------------------------------------------------------------------------
b1f2f51e15 | David Lawrence Ramsey | 2011-11-08 10:54:48 -0600

Make Beoghites' eating orc chunks desecration as well as cannibalism.
This is consistent with holy beings, and another indicator of orcs'
special status under Beogh.

--------------------------------------------------------------------------------
3152719e82 | David Lawrence Ramsey | 2011-11-08 10:50:59 -0600

Mention good gods' dislike of desecrating holy remains on the "^" screen.

--------------------------------------------------------------------------------
6c67bf9344 | David Lawrence Ramsey | 2011-11-08 10:48:42 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ca3f94082b | David Lawrence Ramsey | 2011-11-08 10:48:18 -0600

Properly describe holy chunks as forbidden for good god worshippers.

--------------------------------------------------------------------------------
a36a1deabb | David Lawrence Ramsey | 2011-11-08 10:39:09 -0600

Rename conduct: DID_VIOLATE_HOLY_CORPSE -> DID_DESECRATE_HOLY_REMAINS.

--------------------------------------------------------------------------------
2310157e4c | David Lawrence Ramsey | 2011-11-08 10:31:49 -0600

Tweak conduct description.

--------------------------------------------------------------------------------
73cead8504 | Adam Borowski | 2011-11-08 16:50:46 +0100

Don't exempt invis monsters from recite.
The player can't start reciting without knowing of an audience, but that orc
wizard inside a bunch of orcies can still hear it well.

--------------------------------------------------------------------------------
dfee77447e | David Lawrence Ramsey | 2011-11-08 09:23:37 -0600

Give gnoll sergeants a 1/3 chance to get a trident.
This is fitting in several ways: it provides more variety in terms of
equipment, the gnoll sergeant is the only gnoll type to get a trident
(just as the gnoll shaman is the only gnoll type to get a staff, and it
also goes along with the description of plain gnolls as being
better-equipped), and it's shield-compatible in case the gnoll sergeant
gets a shield.

--------------------------------------------------------------------------------
f1b1a1a02f | elliptic | 2011-11-07 22:19:48 -0500

Make Jiyva stat shuffling take into account how much weight you are carrying.

--------------------------------------------------------------------------------
189d62d71c | Michael Gagno | 2011-11-07 18:44:16 -0800

Darken the pandemonium floor tile colours a bit.

--------------------------------------------------------------------------------
85d8c4baa1 | Michael Gagno | 2011-11-07 18:20:06 -0800

Add restrict_door() to a Gloorx Vloq map.
They are meant to stay closed until the player opens them.

--------------------------------------------------------------------------------
b42c4f46f0 | Adam Borowski | 2011-11-08 01:57:14 +0100

Fix a wizmode crash on viewing monster descriptions.

--------------------------------------------------------------------------------
047a5ef385 | Adam Borowski | 2011-11-08 01:57:14 +0100

Auto-id rings of see invis.

--------------------------------------------------------------------------------
f14af955c2 | David Lawrence Ramsey | 2011-11-07 17:05:00 -0600

Properly give guardian mummies the mummy species.
This matches all other mummies other than bog mummies, which seem
different enough that they get their own species (a la generic dwarves
versus deep dwarves).

--------------------------------------------------------------------------------
4a3d472d7a | David Lawrence Ramsey | 2011-11-07 17:00:48 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
866a6d0016 | David Lawrence Ramsey | 2011-11-07 10:58:20 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
8f03d05847 | David Lawrence Ramsey | 2011-11-07 10:33:09 -0600

Fix Mantis 4686: Properly restore toadstool duration.
Their duration formula assumed their original speed of 10, which was
broken when it was reduced to 0 when fixing Mantis 4584.  As long as
speed_to_duration() keeps returning a minimum value of 10, this change
is all that's necessary.

--------------------------------------------------------------------------------
0cf6096138 | David Lawrence Ramsey | 2011-11-07 10:00:01 -0600

Make Kiku properly not shield you from torment while pain branding your weapon.
The previous code would make him always shield you then.

Note that it's a bit hackish, but it does work.

--------------------------------------------------------------------------------
b45cf1b8cb | Jude Brown | 2011-11-07 20:12:51 +1000

If a map vetoes, don't keep trying to place it. (Zaba)
This further differentiates map veto chunks.

--------------------------------------------------------------------------------
e88a35eb84 | Jude Brown | 2011-11-07 19:54:09 +1000

Update docs for veto chunk.

--------------------------------------------------------------------------------
9d2b1f517c | Jude Brown | 2011-11-07 19:54:08 +1000

New Crypt end (El Kab), make veto Lua chunk do something.
The new Crypt end has four monster sets, similar to Bobbens' Church of
Pain. The average EXP and loot should be about the same regardless of
the monster set, and the loot itself is similar to other Crypt endings;
finally, the vampire set can get Jory, which brings us to:

Veto chunk now actually does something. I've updated levdes.vim so that
it'll pick up as a deslua block, and I'll update the documentation.
Basically, this is consulted /before/ the map is generated or place, and
gives the map the option to veto placement before it begins.

This usage is to prevent tower_of_silence from being placed if Jory has
already been placed via the Crypt ending. It was, of course, possible to
uniq_ them together, but as kilobyte points out, it's a one-way problem:
if Jory is already placed, the Crypt map will just give a vampire
knight.

--------------------------------------------------------------------------------
0a7d188c3a | Adam Borowski | 2011-11-07 10:16:58 +0100

Fix several uses of mon_info->mon().
Most were even immediately converted to mon_info again, and that's damn
costly.  Another one is a legitimate (wizmode) information leak, so it can
use monster_at() directly.

--------------------------------------------------------------------------------
ac1883441c | Adam Borowski | 2011-11-07 10:16:58 +0100

Fix an useless use of mon_info by the obsidian axe.

--------------------------------------------------------------------------------
47727035d7 | Michael Gagno | 2011-11-06 17:41:07 -0800

Give Lom Lobon Ice Storm as an emergency spell.
This replaces blink away, which really just made lom less dangerous at low
hp. Now lom lobon will be more likely to cast ice storm when badly hurt.
This is only a small buff.

--------------------------------------------------------------------------------
430fa3ffbb | Adam Borowski | 2011-11-07 01:01:28 +0100

Drop the distinction between pan lords in connected branches vs Pan/Zig.

--------------------------------------------------------------------------------
ed2eff5fe1 | Adam Borowski | 2011-11-07 00:59:08 +0100

Make 1/3 rather than 1/10 pan lords non-spellcasters, reduce brands on casters.

--------------------------------------------------------------------------------
fae387ddc3 | Adam Borowski | 2011-11-07 00:14:34 +0100

Fix pan lords having always speed 10, cut ghost_demon code duplication.
Yeah, this has pretty profound balance implications...

--------------------------------------------------------------------------------
bc22462300 | Adam Borowski | 2011-11-06 23:20:55 +0100

Use Denzi's green bones floor for the ruined half of tar_minmay_river.
The rest of the endings are unmodified for now -- still the space base floor.

--------------------------------------------------------------------------------
5510d4edb3 | Adam Borowski | 2011-11-06 22:43:48 +0100

Show partial skills in character dumps.

--------------------------------------------------------------------------------
bff1c41e49 | Adam Borowski | 2011-11-06 22:43:48 +0100

Enchant Psyche's dagger.
She had force_item but no enchantment set, so it was always 0,0.

--------------------------------------------------------------------------------
372ceccd10 | Florian Diebold | 2011-11-06 20:29:16 +0100

Webtiles: Use F12 instead of _ for chat.
It should be configurable, but there's not yet a good way to do client
configuration.

--------------------------------------------------------------------------------
0e1242dac6 | Eino Keskitalo | 2011-11-06 20:13:59 +0200

Fix a couple of occasions of treating tengu as winged. Fixes #4866.

--------------------------------------------------------------------------------
191c2e5555 | Eino Keskitalo | 2011-11-06 19:40:20 +0200

Tiles credits (John McCartney, Lantier).

--------------------------------------------------------------------------------
0f57a8cd7c | Chris Campbell | 2011-11-06 14:14:36 +0000

Update Donald's description for player Octopodes

--------------------------------------------------------------------------------
2601227429 | Adam Borowski | 2011-11-06 14:29:34 +0100

Don't let Zin/Ely/TSO/Beogh/Yred lifesave people at 0 maxhp.
Alternatively, we could make them undo rotting, but that'd be more work, and
if you have no potions of curing, most likely you'll die the very next turn
anyway.

--------------------------------------------------------------------------------
6d02fa10fd | Adam Borowski | 2011-11-06 13:38:34 +0100

Pre-identify a few items that are always of the same types.
(or in one case, it may be inferred from the quantity)

--------------------------------------------------------------------------------
5055a2b94a | Adam Borowski | 2011-11-06 13:38:34 +0100

Revert inscriptions on things found in portal vaults as well.
It was a major pain in the rear -- adding meaningless inscriptions on 2/3
scrolls and potions, etc.  And if you had 99 needles, picking one would make
the whole stack {found in the Sewer}.

On unstackable items, you can get this information in #chardump and now also
in the description.  With stackables, this is problematic and doesn't help
except for IIRC one sewer and one bailey that always give potions of
levitation in the same place.

--------------------------------------------------------------------------------
6c1f7ed05e | Adam Borowski | 2011-11-06 13:38:34 +0100

Show item's origins in item description.
Sometimes it's a minor information leak (if a monster dies off-sight), but
it was already available in #chardump so there's no reason to require using
an out-of-game tool to read it.

--------------------------------------------------------------------------------
c571a7e44a | Adam Borowski | 2011-11-06 13:38:34 +0100

Remove an invalid comment.

--------------------------------------------------------------------------------
a7615e4ab3 | Adam Borowski | 2011-11-06 13:37:57 +0100

Don't annotate items dropped by uniques except in three cases where it matters.
Now that non-random brands on uniques pre-identify, this is pointless except
for three specific cases: Psyche, Sonja and (debatably) Donald's shield.
Also buggy: when an unique picks something up, the current code will claim
it was their original gear.

If you really want to know the origin, it is already specified in dumps, anyway.

--------------------------------------------------------------------------------
4f49d3f6c8 | Adam Borowski | 2011-11-06 11:31:25 +0100

Disambiguate hit_funcs and damage_funcs.
Some damage ones were called hit; they are called at different times so the
difference matters.

--------------------------------------------------------------------------------
28d9147184 | Adam Borowski | 2011-11-06 11:31:25 +0100

Delay elec arrow discharge until after the attack, to avoid a possible crash.

--------------------------------------------------------------------------------
480424f539 | Adam Borowski | 2011-11-06 11:31:25 +0100

Get rid of a copy-the-monster hack.
With no old reaping, range_funcs don't looking at the victim (none did) and
hit_funcs not called on dead monsters (none of them care), it's no longer
needed.

--------------------------------------------------------------------------------
ba21d88345 | Adam Borowski | 2011-11-06 11:31:25 +0100

Don't pass the victim to range_func, it's useless.
And makes it harder to get rid of cleanup_dead = false.

--------------------------------------------------------------------------------
e375396159 | Adam Borowski | 2011-11-06 11:31:25 +0100

Remove the ranged brand of reaping (unused for over a year).
Fixing it is possible -- if you want that, please revert this commit and do
the work, using the new melee design.

--------------------------------------------------------------------------------
6c9230eb81 | Michael Gagno | 2011-11-06 02:25:42 -0800

Colour the cracked metal wall tile orange.
It's only used in a single vault, which now uses orange tinted metal walls.
It looked a bit out of place.

--------------------------------------------------------------------------------
7de1999dac | Michael Gagno | 2011-11-06 01:38:06 -0800

Add Denzi's alt tartarus floor to rltiles/UNUSED
It's a good floor and someone might be able to come up with a use for it. I
prefer the floor tartarus currently has, but only slightly. One possibility:
use this floor inside the tartarus ending vaults?

--------------------------------------------------------------------------------
5f25f20f62 | Michael Gagno | 2011-11-06 01:24:26 -0800

Denzi's new Pandemonium walls.
In eight colours. I have also lowered the chance of the fleshy wall
appearing in pandemonium, but it's still there. Unique pan lord levels get
their own walls/floors (defined in pan.des) which aren't affected by this.

--------------------------------------------------------------------------------
240a38d68f | Michael Gagno | 2011-11-06 01:53:18 -0700

Denzi's new pandemonium floor tiles.
They come in 8 colours. This removes floor_tomb from pandemonium and gives
the tiles version of it a similar random feel to the console version. The
tiles might be worth editing a little still.

--------------------------------------------------------------------------------
75476a0b17 | David Lawrence Ramsey | 2011-11-05 23:08:20 -0500

Attempt to fix encapsulation-violating hacks involving racial weapon types.

--------------------------------------------------------------------------------
1bffe3355e | Michael Gagno | 2011-11-05 20:02:36 -0700

Updated Tartarus stone walls. (Denzi)

--------------------------------------------------------------------------------
df714ea2c4 | David Lawrence Ramsey | 2011-11-05 22:00:49 -0500

Fix the species abbreviation for Kenku -> Tengu: Ke -> Te.

--------------------------------------------------------------------------------
817bbedd33 | Jude Brown | 2011-11-06 12:46:36 +1000

Whoops, some tiles I forgot to check-in.

--------------------------------------------------------------------------------
9503462543 | Jude Brown | 2011-11-06 10:49:55 +1000

Rename Kenku -> Tengu.
"Kenku" itself seems to be a name and a concept specifically from D&D.
Our kenku (now tengu) were alike these in that they were quite weak
("glass canon" about sums it up), but ours can fly, and D&D kenku
cannot.

This is really only the first step in properly differentiating then. D&D
kenku are based on the Japanese folk creature of the tengu, so it seems
sane to return to the roots; this is where NetHack tengu come from.

Should retain save compatability. There might be a possible issue with
the renamed tiles, but the order of the tiles file hasn't changed at
all, so presumably these will be safe.

--------------------------------------------------------------------------------
35b2e96e51 | Adam Borowski | 2011-11-06 00:16:02 +0100

Don't copy the entire monster whenever one of several properties is queried.
With lots of monsters of view, ~15% of time was spent just doing this copy.
In all of those cases, it's a read-only operation, so a const pointer is just
as good.

--------------------------------------------------------------------------------
f40b9beb8d | Jude Brown | 2011-11-06 08:57:53 +1000

Some quick code stolen from place-population to give EXP stats on a map.

--------------------------------------------------------------------------------
ae2aeddc31 | David Lawrence Ramsey | 2011-11-05 15:37:57 -0500

Tweak wording.
It was either this or use a semicolon; this seems more consistent.

--------------------------------------------------------------------------------
f9845cc613 | Adam Borowski | 2011-11-05 21:21:59 +0100

Short-circuit mons_is_safe() for other firewood.
Except for ballistos, which somehow are marked as that even when active.
Player should have a right to mark them as unsafe -- heck, I'd do that by
default.  For now, they are left as "safe" but unlike other plants which
can't directly harm you, can be overridden.

Pillars of salt, etc, are not overridable.

--------------------------------------------------------------------------------
baea2d227f | Adam Borowski | 2011-11-05 21:04:00 +0100

Fix a crash on &t art flags.

--------------------------------------------------------------------------------
971edcd146 | Adam Borowski | 2011-11-05 21:04:00 +0100

Trim away a comma at the end of artefact inscriptions.
If the artefact's only known property is the brand, you'd get {flame,}.

--------------------------------------------------------------------------------
d59c05e430 | Adam Borowski | 2011-11-05 21:04:00 +0100

Give different messages when nausea goes away, depending on food and hunger.
"Your stomach is not as upset anymore, and you want to eat."
-- spoilable food you can eat right now
"Your stomach is not as upset anymore, and you need some food."
-- hungry, no chunks
"Your stomach is not as upset anymore, let's find someone to eat."
-- carnivore/gourmand with tummy space
"Your stomach is not as upset anymore."
-- otherwise

By default, only the first one stops run/rest, but the extra messages are
different so players with different tastes can set them accordingly.

--------------------------------------------------------------------------------
9a085d9921 | Samuel Bronson | 2011-11-05 15:56:27 -0400

Speed hack: Special case MONS_PLANT as safe and not auto-excludable.
This helps certain plant-heavy vaults not cause quite so much lag, e.g.:
  * roderic_crop_circles_entry_small
  * minmay_entry_arboretum_large

They're still noticeably laggy, but less than before.

--------------------------------------------------------------------------------
d1f6b3ee25 | Chris Campbell | 2011-11-05 17:16:17 +0000

Fix sandblast displaying an empty line when cast

--------------------------------------------------------------------------------
f4af87a016 | Chris Campbell | 2011-11-05 14:56:09 +0000

Make the Nausea status light brown instead of yellow so it's not the same 
colour as "Hungry"
Also made it just stay one colour for the whole duration - knowing that
Nausea is about to expire isn't really useful information in the same
way as it is for Haste or other buffs.

--------------------------------------------------------------------------------
0ed9818f73 | Michael Gagno | 2011-11-05 03:05:22 -0700

Don't repeat the word in in loot inscriptions.

--------------------------------------------------------------------------------
e558a97bba | Adam Borowski | 2011-11-05 09:57:27 +0100

Use the common versioning scheme for map cache files.
They used their own, which was never incremented as no one remembers about
it, and didn't follow changes to marshalling structures which might affect
map files.

--------------------------------------------------------------------------------
0dc0d1d719 | Adam Borowski | 2011-11-05 09:39:33 +0100

Mark a race condition as "FIXME".
The whole part needs an overhaul, no time to do that right now.

--------------------------------------------------------------------------------
2f142e0ea6 | Adam Borowski | 2011-11-05 09:30:43 +0100

Handle buffer underflows of memory streams gracefully.
An invalid save would cause a crash there.

--------------------------------------------------------------------------------
b63d422707 | Adam Borowski | 2011-11-05 08:47:27 +0100

Remove the tile for scrolls for blank paper.
This suffered from rltiles data not being #ifdefable.

--------------------------------------------------------------------------------
7b91fc8146 | Adam Borowski | 2011-11-05 08:43:33 +0100

Use a made-up TAG_MAJOR_VERSION to handle des/save incompatibility for now.

--------------------------------------------------------------------------------
5598004286 | Adam Borowski | 2011-11-05 07:37:29 +0100

Sort abyss_speed to persistent variables.

--------------------------------------------------------------------------------
5de2656ac8 | elliptic | 2011-11-05 00:46:43 -0400

Buff antennae slightly.
Radius of detection was increased by 1, from 1/3/5 to 2/4/6. This might make
them more noticeable, and the aux-giving mutations recently got buffed a bit
also.

--------------------------------------------------------------------------------
f7e130daad | Michael Gagno | 2011-11-04 21:37:05 -0700

A new (tiles) look for Tartarus (Denzi).
It's much darker, and greener than before. The only problem is metal stands
out a bit too much... I've made it use a dark metal tile in tartarus, but
it's still grey instead of greenish like everything else. Luckily metal is
rare in tar.

Also, I made some small comestic adjustments to tomb, so the "wall of
skulls" still has a place in crawl. It's most obvious on tomb:1.

--------------------------------------------------------------------------------
c82e9c6cc2 | Florian Diebold | 2011-11-05 01:36:05 +0100

Fix the install target.
Somehow, I forgot to add that change to the commit.

--------------------------------------------------------------------------------
23c24bce1e | Jude Brown | 2011-11-05 09:51:24 +1000

Add origin inscription to items found in portal vaults (dpeg).
This now appends "found in a volcano", "found in a trove", etc, using
the dstorigin field of the portal vault marker. It's also possible to
manually set level_origin_type, as Tukima's Studio wizlab does; in these
instances, that specific value will be used.

--------------------------------------------------------------------------------
bce641a218 | Florian Diebold | 2011-11-04 23:31:05 +0100

Webtiles: Apply substitutions to the path when editing the rcfile.

--------------------------------------------------------------------------------
cca9092a0c | Florian Diebold | 2011-11-04 23:31:05 +0100

Allow specifying the path to the Webtiles client data while compiling crawl.
This is mainly to allow trunk builds, which can have multiple
different crawl versions behind a wrapper script, so that the server
can't know in advance which client version it has to send.

Also, this will install the client data to that folder in the install
target.

--------------------------------------------------------------------------------
e1c64ce094 | Florian Diebold | 2011-11-04 23:31:05 +0100

Remove a left-over debug log.

--------------------------------------------------------------------------------
f82819f13a | Chris Campbell | 2011-11-04 21:14:16 +0000

Let potions of curing and Ely purification cure nausea

--------------------------------------------------------------------------------
22202bf411 | Chris Campbell | 2011-11-04 20:52:05 +0000

Don't try to place mimics (and crash doing so) in Zotdef

--------------------------------------------------------------------------------
b23313c991 | Robert Burnham | 2011-11-04 15:27:58 -0500

Actually fix the @ bug
Hopefully I can remove this code when I hear word that there are no
future plans to bring the text back in the @ screen that tells you how
good of a fighter you have by rolling a dummy attack roll and comparing
it against a list of preset values.

--------------------------------------------------------------------------------
93ce233f72 | Robert Burnham | 2011-11-04 15:27:58 -0500

Rearrange player_monattk_hit_effects, apply_damage_brand significantly
Chances are if something breaks with brands in the UCC branch in the near
future, this commit may be to blame. Moves the application of damage
brands to a more logical location. Also moves the application of brand
special_damage inside apply_damage_brand along with the output of
any special_damage messages applying to brands. Also removes a couple
of extra (now unnecessary) calls to apply_damage_brand, particularly
within player_monattk_hit_effects.

As a side note, up to this point, the branch still is suffering from
segfault crashes when you press '@' in game. Could have sworn I fixed
it....

--------------------------------------------------------------------------------
f508d0ad0b | Robert Burnham | 2011-11-04 15:27:57 -0500

Move some variables from melee_attack to attack

--------------------------------------------------------------------------------
5521ed493c | Robert Burnham | 2011-11-04 15:27:57 -0500

Remove extra_noise; replace last instances with noise_factor
The extra_noise that got added in for flaming and elec attacks
(1 and 2 respectively) is now added directly to noise_factor, adjusted
(400 and 800 - respectively - * damage_done) to result in roughly
the same amount of noise (with error due to rounding) after the
noise_factor scaling equation (noise_factor * damage_done / 100 / 4)

--------------------------------------------------------------------------------
839233c47d | Robert Burnham | 2011-11-04 15:27:57 -0500

Change player_weapon_affects god to player_weapon_upsets_god
Although the method actually handles both positive and negative
god effects, I can't think of a good name which reflects that and
isn't so long that it messes with formatting the rest of the source.

--------------------------------------------------------------------------------
535f8b41b1 | Robert Burnham | 2011-11-04 15:27:57 -0500

Rearrange instantiation of can_do_unarmed
Moves the assigning of can_do_unarmed's value up to the initializer of
melee_attack so that its value is ready to be checked throughout the
class. Also removes a teeny bit of logic which was pointlessly
checking the value of can_do_unarmed when its value was previously
checked.

--------------------------------------------------------------------------------
0e27dc119d | Robert Burnham | 2011-11-04 15:27:56 -0500

Update remaining unarmed_ok to can_do_unarmed
Simple naming change to improve readability of the code. "ok" isn't
descriptive enough.

--------------------------------------------------------------------------------
409a1501f0 | Samuel Bronson | 2011-11-04 18:56:18 -0400

Merge branch 'master' into unified_combat_control

--------------------------------------------------------------------------------
67e5524904 | elliptic | 2011-11-04 15:49:14 -0400

Fix ghouls getting less than 40% as much healing from eating chunks.

--------------------------------------------------------------------------------
12762188ce | Samuel Bronson | 2011-11-04 15:29:18 -0400

Merge branch 'master' into unified_combat_control with help of -X patience
As usual, lots of the changes to master's fight.cc were to things that are
in our melee_attack.cc, so were applied there instead.

Conflicts:
	crawl-ref/source/fight.cc
	crawl-ref/source/melee_attack.h

--------------------------------------------------------------------------------
bb912f982c | Adam Borowski | 2011-11-04 18:50:33 +0100

Move stone tiles for Ossuary and Bailey into the ugly global stone selector.
Such things should really be in branch-data.h, but they'd need tile enums.

Having tile enums in console builds would be good by the way, as we're out
of setups that can't switch a save between console and tiles.

--------------------------------------------------------------------------------
4472cdeae8 | Adam Borowski | 2011-11-04 18:50:33 +0100

Move Volcano's monster list to mon-pick (ie, place:Volcano)
I'm not sure if it's ever used, and the choice is... curious.

--------------------------------------------------------------------------------
2569e9dda7 | Adam Borowski | 2011-11-04 18:50:32 +0100

Remove redundant floor/rock colour settings.

--------------------------------------------------------------------------------
7f3fbbd024 | Adam Borowski | 2011-11-04 18:50:32 +0100

Move global dummy vault balancers into one place, opt-in branches.
Using opt-out caused nasty surprises.

--------------------------------------------------------------------------------
3df5f9cdae | Adam Borowski | 2011-11-04 18:50:32 +0100

A branch flag: BFLAG_NO_ITEMS, convert the old giant if to use that.
What with the Hive?

--------------------------------------------------------------------------------
751fdc2aa8 | Adam Borowski | 2011-11-04 18:50:32 +0100

Don't generate monsters in branches with no native ones.

--------------------------------------------------------------------------------
a9e4303e30 | Adam Borowski | 2011-11-04 18:50:32 +0100

Add no_pool_fixup to portal maps which expect that.
Fun thing is, most already had this tag even though pool_fixup didn't work
in portal vaults before.

One of them, bazaar_lake, uses hand-made sort of pool fixup, may want to
check if it can be improved.

--------------------------------------------------------------------------------
8c79cc546e | Adam Borowski | 2011-11-04 18:50:32 +0100

Handle Ice Cave difficulties and Bailey types.

--------------------------------------------------------------------------------
2e642e43d3 | Adam Borowski | 2011-11-04 18:50:32 +0100

Convert the rest of portal vaults to DEPTH.

--------------------------------------------------------------------------------
1fd3d18b0d | Adam Borowski | 2011-11-04 18:50:32 +0100

Reduce special-casing of branches.

--------------------------------------------------------------------------------
bee56c61da | Adam Borowski | 2011-11-04 18:50:32 +0100

Temporarily clamp place depth to legal values.
Having absdepth0 be authoritative is broken.  It was barely adequate when all
branches formed a tree -- with hacks in Hell, but it totally falls apart now.

--------------------------------------------------------------------------------
6105efd80c | Adam Borowski | 2011-11-04 18:50:32 +0100

No need to announce milestones by hand, br.enter has that covered.

--------------------------------------------------------------------------------
814d5eca14 | Adam Borowski | 2011-11-04 18:49:50 +0100

Make entering portal vaults work.

--------------------------------------------------------------------------------
8ee4b09b15 | Adam Borowski | 2011-11-04 18:49:50 +0100

Make &P recreate current level around a given primary vault.
There's no requirement of a tag anymore, unlike old &P.

BUG: trying to use a minivault will make the builder die horribly,
making the (wizmode) save useless.  Somehow, it returns MAP_FLOAT?!?

--------------------------------------------------------------------------------
c0d115c1c8 | Adam Borowski | 2011-11-04 18:49:50 +0100

Remove &p and &l, move &P to &p.
There's no need for separate commands for Pan and Lab.

--------------------------------------------------------------------------------
f55ca26c88 | Adam Borowski | 2011-11-04 18:49:50 +0100

Make &P use level names rather than a series of tags.

--------------------------------------------------------------------------------
22887775f9 | Adam Borowski | 2011-11-04 18:49:50 +0100

Use DEPTH for Sewer.

--------------------------------------------------------------------------------
545da72da6 | Adam Borowski | 2011-11-04 18:49:50 +0100

Choose portal branch maps by DEPTH.

--------------------------------------------------------------------------------
ca7d5ef354 | Adam Borowski | 2011-11-04 18:49:50 +0100

Assign all branches &~ letters.
Only JQR were left, had to use 0..8 as well.

--------------------------------------------------------------------------------
a3669d5e11 | Adam Borowski | 2011-11-04 18:49:50 +0100

Move Sewer's monster list to mon-pick (ie, place:Sewer).

--------------------------------------------------------------------------------
3ad741cc1d | Adam Borowski | 2011-11-04 18:49:50 +0100

Get rid of entry_cause.
Lots of complex processing just so wizmode &B can avoid a note.  And even
could have been done with checking for "wizard command".  Even that is
pointless...

--------------------------------------------------------------------------------
bb5a234eaa | Adam Borowski | 2011-11-04 18:49:50 +0100

Simplify Lugonu's Abyss exit.

--------------------------------------------------------------------------------
09f65ce44c | Adam Borowski | 2011-11-04 18:49:50 +0100

Eliminate the old Spider portal vault.
The contents are saved in the branch, disabled.

--------------------------------------------------------------------------------
184a8ba3c6 | Adam Borowski | 2011-11-04 18:49:50 +0100

Cut the Hive to 1 level, mark it as a portal branch.

--------------------------------------------------------------------------------
702a7dc49d | Adam Borowski | 2011-11-04 18:49:50 +0100

Purge away attempts to retain save compat for level_type changes.

--------------------------------------------------------------------------------
acbc1dae14 | Adam Borowski | 2011-11-04 18:49:50 +0100

Split the branch data into read-only and mutable parts.
As a side effect, branches can now be shortened without breaking major save
compat.

This commit itself doesn't preserve compat though, even though it'd be easy
-- other parts are too nasty already.

--------------------------------------------------------------------------------
ff3b896cb6 | Adam Borowski | 2011-11-04 18:49:50 +0100

Renumber branch flags starting from 1.
No regard for save compat, it's already about to get broken.

--------------------------------------------------------------------------------
c53ce01295 | Adam Borowski | 2011-11-04 18:49:50 +0100

Remove the ability to dynamically set branch flags.
The tutorial uses it, but for encompass vaults that's not needed.

--------------------------------------------------------------------------------
2cd481306a | Adam Borowski | 2011-11-04 18:49:49 +0100

Remove BFLAG_NO_TELE_CONTROL, redundant with level flags.

--------------------------------------------------------------------------------
056f685221 | Adam Borowski | 2011-11-04 18:49:49 +0100

Remove BFLAG_HAS_ORB, nothing used it.

--------------------------------------------------------------------------------
d5ad621747 | Adam Borowski | 2011-11-04 18:49:49 +0100

Store a stack of level coordinates for return from portals.

--------------------------------------------------------------------------------
c346361417 | Adam Borowski | 2011-11-04 18:49:49 +0100

Get rid of level_type, unify BRANCH_*, LEVEL_* and portal vaults.

--------------------------------------------------------------------------------
f4a9aed257 | Adam Borowski | 2011-11-04 18:49:49 +0100

Branch data for "LEVEL_" and lua branches.
It's amazing how much redundancy and inconsistency can be removed by unifying
this code.  This commit only adds the data in a common format yet.

--------------------------------------------------------------------------------
098fb84104 | Adam Borowski | 2011-11-04 18:49:49 +0100

Fix losing stash data upon a trip to the Abyss or a Ziggurat.

--------------------------------------------------------------------------------
8f08ee0dc3 | Adam Borowski | 2011-11-04 18:49:49 +0100

Get rid of one of redundant (and buggy) ways to track existing levels.

--------------------------------------------------------------------------------
a328b09a5a | Adam Borowski | 2011-11-04 17:45:00 +0100

A set of floor tiles, by Denzi, meant for Tartarus.
I did not install them there yet since it would be a pity to detach the
skull wall from skull floors.

--------------------------------------------------------------------------------
9ddb56002d | Adam Borowski | 2011-11-04 17:45:00 +0100

A whitespace fix.

--------------------------------------------------------------------------------
863538d9b3 | Adam Borowski | 2011-11-04 17:45:00 +0100

Drop redundant TAGS from Labyrinth entrances.

--------------------------------------------------------------------------------
02354b58db | Chris Campbell | 2011-11-04 16:24:15 +0000

Make Jiyva remove mutations slightly less often

--------------------------------------------------------------------------------
6b914ba571 | Chris Campbell | 2011-11-04 16:24:15 +0000

Don't put exclusions on cloud generators in portal vaults, fix some volcano 
cloud generators being too big

--------------------------------------------------------------------------------
160194f03a | Neil Moore | 2011-11-04 16:24:14 +0000

Allow cursed items to block training other slots.
If a cursed weapon prevents training a different weapon, then a cursed
shield should prevent training a two-handed weapon.  Likewise, cursed
gloves should prevent training evocations with an unworn ring.

We only check cursedness, not swappability, because no armour is
considered easily-swappable.  Though realistically one must remove
gloves to swap rings, it doesn't actually work that way in Crawl.
The argument for shields is less solid, but discussion in IRC
raises the concern that having an uncursed shield block 2H weapon
training only encourages carrying around junk weapons.

--------------------------------------------------------------------------------
cda9fcc194 | Neil Moore | 2011-11-04 16:24:14 +0000

Apply De Morgan's laws for readability.

--------------------------------------------------------------------------------
e0a4a6a24c | Neil Moore | 2011-11-04 16:24:13 +0000

Distinguish hard-to-swap-in from hard-to-swap-out.
A staff of power, ring of magical power, or amulet of the gourmand
is hard to swap out (you will lose bonuses that take time to recover),
but easy to swap in (there is no loss from putting it on then
taking it back off).

This change allows training staves with only an unequipped staff of power.

--------------------------------------------------------------------------------
d4d74e6adc | Neil Moore | 2011-11-04 16:24:12 +0000

Fix skill blocking when swapping weapons.
Swapping weapons can enable a weapon skill when unwielding the old
weapon, then re-disable the skill when wielding the new weapon.
However, update_can_train() disables, then enables, so a skill
can be enabled even when it shouldn't be.

To see the problem, enable both short blades and long blades, then
swap from a short blade to a staff of power.  This disables both
sbl and lbl, but then erroneously re-enables lbl.

This commit fixes the problem by updating can_train in the middle
of the action, after unwielding but before wielding.

--------------------------------------------------------------------------------
24ef732b72 | Chris Campbell | 2011-11-04 14:18:42 +0000

Don't let monsters remain asleep when stabbed (#4799)

--------------------------------------------------------------------------------
c4f97ea9c5 | Chris Campbell | 2011-11-04 14:18:41 +0000

Make monster-cast Haunt a bit less spammy

--------------------------------------------------------------------------------
8adbabc837 | David Lawrence Ramsey | 2011-11-04 07:45:21 -0500

Don't recommend HOIE anymore, since their Ice Magic aptitude tweak.

--------------------------------------------------------------------------------
9dabe3236d | Adam Borowski | 2011-11-04 12:20:46 +0100

Don't let monsters act twice when entering a level, double the entering time.
The first call was done too early, before the level was fully loaded.

--------------------------------------------------------------------------------
0e92741d66 | Michael Gagno | 2011-11-04 00:00:57 -0700

Make Denzi's new Dis tiles look more metallic.
Modified by roctavian and due. One thing to note, the rust spots on the
floor stand out a bit more now. It's not too distracting though.

--------------------------------------------------------------------------------
de6e92c0d8 | Michael Gagno | 2011-11-03 21:54:33 -0700

Add blizzard demons to ice zig levels.

--------------------------------------------------------------------------------
d7476aefb9 | Adam Borowski | 2011-11-03 22:19:56 +0100

Recite: mark demigods as heretics in Zin's view.
The "heretic" recite does little against non-casters, so it's mostly a theme 
thing.

--------------------------------------------------------------------------------
fdc3c9bb60 | Adam Borowski | 2011-11-03 21:15:15 +0100

Denzi's tiles for Dis.
Metal walls appear to regular brick at the first glance, though -- not sure
if that's good.

--------------------------------------------------------------------------------
fc78b5dd25 | David Lawrence Ramsey | 2011-11-03 14:45:57 -0500

Add wording fixes.

--------------------------------------------------------------------------------
084c9fffc7 | Florian Diebold | 2011-11-03 18:48:34 +0100

Webtiles: Various layout fixes and JS cleanup.

--------------------------------------------------------------------------------
8d3935e407 | Florian Diebold | 2011-11-03 18:48:34 +0100

Disallow starting a game while another is running for the same user in Webtiles.
Instead, the option is given to stop the old process, like in DGL.

--------------------------------------------------------------------------------
1c0cd4cb39 | David Lawrence Ramsey | 2011-11-03 12:45:49 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
fc9bade85d | Chris Campbell | 2011-11-03 17:20:40 +0000

Make Foul Stench trigger more often

--------------------------------------------------------------------------------
b02ace6524 | Chris Campbell | 2011-11-03 17:20:39 +0000

Adjust Demonic Guardians a bit
Trying to use some of the more interesting demons where possible
(while still avoiding summoners).

--------------------------------------------------------------------------------
b546ac8b9e | Samuel Bronson | 2011-11-03 13:03:27 -0400

Makefile: Accept additional linker flags in EXTERNEL_LDFLAGS

--------------------------------------------------------------------------------
0929d55bd3 | Samuel Bronson | 2011-11-03 13:01:24 -0400

Makefile: Accept additional linker flags in EXTERNEL_LDFLAGS

--------------------------------------------------------------------------------
5ceb0ce875 | Michael Gagno | 2011-11-03 02:10:33 -0700

Fix Lemuel's jelly drop vaults. (uh oh)
The jellies would generate asleep. Being behind walls, they were completely
insulated from noise, and would never wake up. They'll actually be awake
now, and will probably ruin someone's day because of that.

--------------------------------------------------------------------------------
2cefd04b18 | Robert Burnham | 2011-11-03 02:14:34 -0500

Fix double-damage in mons vs player combat

--------------------------------------------------------------------------------
c36e68e8c6 | Robert Burnham | 2011-11-03 02:02:25 -0500

Simplify some poison-related output

--------------------------------------------------------------------------------
6f905f0681 | Robert Burnham | 2011-11-03 01:37:22 -0500

Fix crash on @
Also removes a *2 scaling to the display of player to-hit. This corresponds
with the removal of a *2 scaling I removed some time ago...but that was for
the player evasion as well? Perhaps this scaling is legacy code.

--------------------------------------------------------------------------------
830e565e19 | elliptic | 2011-11-02 23:54:55 -0400

Remove special case for message for raising a skill to 1.
With smooth skills, there isn't anything special about 1... it is only a
little better than 0.9. Also fixed a couple other tiny things in the function.

--------------------------------------------------------------------------------
f21c2124a7 | Michael Gagno | 2011-11-02 19:18:40 -0700

Add balrugs to gehenna, blizzard demons to cocytus.
Surprisingly, they weren't native monsters to either branch. Balrugs could
be found in Gehenna, but only in vaults. They should generate normally now,
although you won't find more than one or two per level, usually.

The cocytus ending vaults still don't have blizzard demons.

--------------------------------------------------------------------------------
64a885850f | Michael Gagno | 2011-11-02 18:26:05 -0700

Fix the border in coc_mu.
It had a border of permarock, surrounded by normal rock. It was possible
(albeit unlikely) to use shatter to break the normal rock and then teleport
past the permarock, and travel outside of the level. A better way of fixing
this would have been to use set_border_fill_type, but that doesn't work
right now.

--------------------------------------------------------------------------------
e38440aea9 | Chris Campbell | 2011-11-02 23:32:42 +0000

Don't paralyse the player when a monster on the other side of the level hits a 
Zot trap

--------------------------------------------------------------------------------
40c838fa1e | Chris Campbell | 2011-11-02 23:32:42 +0000

Let Inner Flame place clouds on the exploded monster's square too

--------------------------------------------------------------------------------
a1780f61d6 | elliptic | 2011-11-02 18:56:10 -0400

Remove guaranteed UC skill with vampires.
Since biting no longer uses UC skill, this doesn't make sense any more.

--------------------------------------------------------------------------------
1d392ee10b | David Lawrence Ramsey | 2011-11-02 13:28:50 -0500

Simplify beastly_slot().

--------------------------------------------------------------------------------
f42af4d6fd | Aaron Becker | 2011-11-02 18:02:46 +0000

Annotate weapons and armour dropped by uniques with its original owner.

--------------------------------------------------------------------------------
d07646d5e0 | Robert Burnham | 2011-11-02 11:52:04 -0500

Inline the cotents of the  wasp_paralyse_defender function

--------------------------------------------------------------------------------
cf80bcf1b5 | Robert Burnham | 2011-11-02 11:25:22 -0500

Remove another previously-removed method

--------------------------------------------------------------------------------
7cddb25685 | Robert Burnham | 2011-11-02 11:08:58 -0500

Remove prevoiusly-removed melee_attack method and some whitespace

--------------------------------------------------------------------------------
3823072b07 | Samuel Bronson | 2011-11-02 14:13:39 -0400

Attempt to stop capitalising inventory letters in messages.
I hope I didn't miss any!

--------------------------------------------------------------------------------
506e49af28 | Adam Borowski | 2011-11-02 15:09:49 +0100

Make Fe/Op genus names apply to all cases, not just non-god skill titles.

--------------------------------------------------------------------------------
a6a93d1577 | Adam Borowski | 2011-11-02 14:14:25 +0100

Give XP and blame for kills with Zin's holy word in Sanctuary.
The other two abilities can invoke it as well but grant XP.

--------------------------------------------------------------------------------
0b359429fb | David Lawrence Ramsey | 2011-11-02 08:00:37 -0500

Fix Mantis 4847 by removing asphyxiation resistance from monster ice beasts.
There seems to be confusion over whether they're made of ice (and,
hence, have no lungs) or not, but since sky beasts apparently have lungs
despite being made of "clouds and tortured flesh", and the proper way to
mark a lungless monster is with the unbreathing quality, this should be
okay.

--------------------------------------------------------------------------------
2928e3f6a7 | Adam Borowski | 2011-11-02 11:42:05 +0100

Don't make the mountain bat vault block others.

--------------------------------------------------------------------------------
54c6594ae7 | Adam Borowski | 2011-11-02 11:40:49 +0100

An incentive to actually explore Lair.

--------------------------------------------------------------------------------
aca8d7b3dd | Adam Borowski | 2011-11-02 11:30:46 +0100

Mountain bats.

--------------------------------------------------------------------------------
05ff299074 | Adam Borowski | 2011-11-02 11:11:40 +0100

Allow the alchemist's garden to generate in the Lair.

--------------------------------------------------------------------------------
a777208b25 | Adam Borowski | 2011-11-02 11:09:57 +0100

A whitespace fix.

--------------------------------------------------------------------------------
573d05df78 | Adam Borowski | 2011-11-02 10:42:25 +0100

Recompress two tiles with > 7x waste.

--------------------------------------------------------------------------------
f1eeef9045 | Jude Brown | 2011-11-02 17:46:05 +1000

Fix broken fog machine loading (Elynae).
This now introduces the capacity to check the minor version of a save
file via file.minor_version(th). Unfortunately, the enum in
tag-version.h isn't accessible, so you have to go off the numeric
values.

This may introduce issues on updating the major version. Don't forget to
clear lm_fog.lua too!

May cause other bugs, but none I've noticed so far.

--------------------------------------------------------------------------------
ba6051510a | Robert Burnham | 2011-11-02 02:38:34 -0500

Remove deprecated message logic
The older emit_nodmg function and corresponding logic should be
handled without the need to store the message and hold the output
until a later date. The message sequence is definitely correct for
weapon effects like venom and staff of summoning (which causes
abjuration).

--------------------------------------------------------------------------------
20c6342471 | Robert Burnham | 2011-11-02 02:15:34 -0500

Comment and whitespace fix

--------------------------------------------------------------------------------
e716cd7f22 | Robert Burnham | 2011-11-02 02:02:07 -0500

Rename player_check_weapon_effects
The function has nothing to do with checking effects of the ego or
properties of a weapon (as the name would suggest). It actually is
for checking if a property of the weapon affects a god (haste w/
chei, for example).

--------------------------------------------------------------------------------
9703cc942d | Robert Burnham | 2011-11-02 01:57:58 -0500

Move move_stairs to misc.cc
It could be used for other things, its certainly not conceptually
melee_only. As an aside, there appears to be another move_stairs
esque method: move_stair which moves based on a ray, perhaps it
should calculate its ray and use move_stair to check for error
conditions and actually perform the feat move?

--------------------------------------------------------------------------------
1cef3b35c2 | Michael Gagno | 2011-11-01 22:09:33 -0700

Two diamond shaped vaults for mid-late D.
I originally made these as pan lord vaults (for mnoleg and gloorx) but I
think they work better as normal traditional dungeon vaults. Somewhat nasty
if they show up early.

--------------------------------------------------------------------------------
88e0b39363 | Michael Gagno | 2011-11-01 21:50:48 -0700

Make the weapon in ashenzari_altar_1 +0,+0 (neil)
It was usually generating with a negative enchantment.

--------------------------------------------------------------------------------
328ea1a549 | Michael Gagno | 2011-11-01 19:56:05 -0700

Merge branch 'master' of gitorious.org:crawl/crawl

--------------------------------------------------------------------------------
4367d95450 | Michael Gagno | 2011-11-01 19:54:47 -0700

A ruined temple to Ashenzari.
Originally made for a serial vault that fell through. This part of it was
worth salvaging.

--------------------------------------------------------------------------------
ad0ae35fa2 | Jude Brown | 2011-11-02 12:42:33 +1000

Allow specification of cloud exclusion radius, also via Lua; cloud traps.
All new clouds are created with an exclusion radius of -1, which means
that they will not create an exclusion. That's the default, and is what
is provided to all functions which create clouds.

Specifying any non -1 value will result in the coud not being considered
"temporary", and view.cc will create an exclusion for that cloud. By
default, the excluson radius of damaging clouds created by vaults is 1
(set by lm_fog.lua). You can specify any radius that you'd like, and
it'll use that.

For steam clouds, it will change the radius to zero if the radius is at
the default 1; otherwise, it will use whatever radius to have specified.

This might have some unwanted effects: any clouds which are loaded from
an old save file will all be considered temporary, so until they
properly decay, they won't be considered for exclusion. This will be
tempoary until the next wave of clouds is created.

Finally, this fixes cloud traps: they'll no longer create exclusions.
Hooray!

--------------------------------------------------------------------------------
3f11d06fc5 | Michael Gagno | 2011-11-01 18:26:04 -0700

Fix a small colouring error in a zot entry vault.

--------------------------------------------------------------------------------
bd6f7e026c | Michael Gagno | 2011-11-01 18:11:53 -0700

Give unique pan lord levels specific tiles.
They're coloured similarly to console. Ideally new tiles would be used, but
in the mean time, might as well make good use of existing ones. Also, this
stuff has been moved to a pan_lord_setup function in the des file.

--------------------------------------------------------------------------------
b392848235 | Florian Diebold | 2011-11-01 23:18:42 +0100

Hopefully generate the right files to make Webtiles games register in DGL.
This also makes the Webtiles server replace the string %n with the
current username in file paths, like DGL does (none of the other codes
are currently implemented, but that could easily be changed). The
username isn't automatically appended to the morgue path, now, since
it can be done in the config.

--------------------------------------------------------------------------------
5847085c88 | Florian Diebold | 2011-11-01 23:18:41 +0100

Webtiles: Fix Tab keypresses being registered twice in Opera (#4148).

--------------------------------------------------------------------------------
9c030ba96f | Adam Borowski | 2011-11-01 23:01:33 +0100

Check for draconian/octopode/Gastronok armour only after it's already known.

--------------------------------------------------------------------------------
6653701b32 | Eino Keskitalo | 2011-11-01 23:48:46 +0200

New ghost moth tile, from Denzi, to replace the palette swap. (#4812)

--------------------------------------------------------------------------------
388c3f9c86 | Eino Keskitalo | 2011-11-01 22:18:42 +0200

Add the two other imps from #4625 to UNUSED as well.

--------------------------------------------------------------------------------
e23b0fcd7d | Robert Burnham | 2011-11-01 15:02:55 -0500

Update calc_base weapon comment

--------------------------------------------------------------------------------
936672eecd | Robert Burnham | 2011-11-01 14:58:24 -0500

Fix missing .c_str() on f23905913

--------------------------------------------------------------------------------
5f6e4bbbde | elliptic | 2011-11-01 15:46:59 -0400

Improve the message for trying to eat while nauseous (|amethyst).

--------------------------------------------------------------------------------
e73b9acf6a | Robert Burnham | 2011-11-01 14:28:35 -0500

Rename methods handling Spiny and Passive Freeze
- mons_do_spines => do_spines
- mons_do_passive_freeze => do_passive_freeze

--------------------------------------------------------------------------------
cefe53f766 | Robert Burnham | 2011-11-01 14:28:35 -0500

Remove 2 deprecated functions
- player_fights_well_unarmed (mostly removed in previous commits)
- replace mons_defender_name with defender_name

--------------------------------------------------------------------------------
57b80bd3d8 | Robert Burnham | 2011-11-01 14:27:43 -0500

Remove mons_announce_dud_hit
Its output (monster hit but did no damage) has been generalized
and unified with the player-equivilent call.

--------------------------------------------------------------------------------
df0ce89890 | Samuel Bronson | 2011-11-01 19:58:38 -0400

Fix whitespace.

--------------------------------------------------------------------------------
f239059134 | Robert Burnham | 2011-11-01 15:30:45 -0500

Unify announce_hit methods
mons_announce_hit and player_announce_hit quashed into announce_hit
The code for player_announce_hit was also changed from msg::stream
to mprf-style for easier future-maintainability.

--------------------------------------------------------------------------------
2739e96236 | Robert Burnham | 2011-11-01 14:58:33 -0500

Fix compile error caused by careless copy/paste

--------------------------------------------------------------------------------
16f396a5ad | Robert Burnham | 2011-11-01 14:09:48 -0500

Move modify_blood_amount to attack
Blood graphics (and the need to scale those) could occur in
ranged or magical combat just as they presently do in melee.

--------------------------------------------------------------------------------
82fc2b81c1 | David Lawrence Ramsey | 2011-11-01 12:52:41 -0500

Add wording fix.

--------------------------------------------------------------------------------
4e2d4f5325 | Chris Campbell | 2011-11-01 17:45:10 +0000

Don't try and auto-eat (and crash) when nauseated

--------------------------------------------------------------------------------
8d40d7d8af | Samuel Bronson | 2011-11-01 11:45:31 -0500

Fix obvious cut & paste error which broke the *nix build.

--------------------------------------------------------------------------------
8b63eec984 | Samuel Bronson | 2011-11-01 11:45:31 -0500

Windows (MinGW): Do crash dumps, same as on *nix.
We do this by defining USE_UNIX_SIGNALS there and fixing the resulting
compiler errors.

For some reason they aren't being written to files yet, though :-(.

--------------------------------------------------------------------------------
a65c813e45 | Samuel Bronson | 2011-11-01 11:45:30 -0500

Win32: Don't tromp over scrollback: use a fresh console screen buffer.
Could maybe use some error checking ...

--------------------------------------------------------------------------------
c8c97c59a4 | Chris Campbell | 2011-11-01 16:40:36 +0000

Update Geryon's description

--------------------------------------------------------------------------------
e2f1f936fe | Chris Campbell | 2011-11-01 16:40:35 +0000

Don't mark Shields as restricted for Draconians

--------------------------------------------------------------------------------
dba91a8122 | Adam Borowski | 2011-11-01 17:36:09 +0100

Cut Geryon's wings, to let the tile match behaviour.

--------------------------------------------------------------------------------
5f1273ce2b | Samuel Bronson | 2011-11-01 11:01:02 -0400

Merge branch 'w32c-crash-better'

--------------------------------------------------------------------------------
a858787ca4 | Chris Campbell | 2011-11-01 14:31:07 +0000

Make LRD use default targeting again (#4843)
It doesn't do any damage to non-brittle monsters so on the one hand
it's a bit misleading this way... but on the other hand having it not
automatically target monsters means it takes many more keypresses per
cast to aim at the desired wall.

--------------------------------------------------------------------------------
808fea4f5a | Adam Borowski | 2011-11-01 13:32:42 +0100

Change the wording on maximally enchanted items.
The new one is clumsy but doesn't suggest higher enchanted items can't
exist.

--------------------------------------------------------------------------------
83f9cc862d | Adam Borowski | 2011-11-01 12:03:29 +0100

Recompress the logo.
As something shipped as-is, any non-negligible reduction counts, and here
it's almost by half.

--------------------------------------------------------------------------------
c9fa8cd486 | Adam Borowski | 2011-11-01 12:03:29 +0100

Recompress new tiles with more than 60% waste.

--------------------------------------------------------------------------------
8b47a075c5 | Adam Borowski | 2011-11-01 11:48:51 +0100

Don't guarantee layout_delve on D:13 anymore.
It works, and testing other parts without hellspider is pointless.  And due
hates testing webs even though they're not good enough yet.

--------------------------------------------------------------------------------
41ae520519 | Adam Borowski | 2011-11-01 11:48:51 +0100

For monsters that always get the same weapon brand, pre-identify it.

--------------------------------------------------------------------------------
fa86d645fa | Jude Brown | 2011-11-01 18:36:52 +1000

Remove testing web traps for D:13.

--------------------------------------------------------------------------------
783cd33110 | elliptic | 2011-11-01 02:31:26 -0400

Make auxes depend more on stats, less on UC skill.
UC skill now just helps auxiliary attacks in two ways: you get an offhand
punch and you have some chance of headbutting/kicking even if you lack the
corresponding mutations. Other features of auxiliary attacks now depend more
heavily on strength and dexterity. I tried to keep the role of strength and
dexterity fairly equal, though it is still the case that strength helps more
with damage and dexterity helps more with accuracy.

--------------------------------------------------------------------------------
a57a3def5e | elliptic | 2011-11-01 02:31:26 -0400

Remove extra hunger from aux attacks.
Having aux attacks shouldn't hurt you... and this did sometimes, since often
aux attacks will miss or do no damage.

--------------------------------------------------------------------------------
7d2e811892 | Samuel Bronson | 2011-10-31 23:10:43 -0400

Fix obvious cut & paste error which broke the *nix build.

--------------------------------------------------------------------------------
6ea702417e | David Lawrence Ramsey | 2011-10-31 21:03:34 -0500

Add wording fix.

--------------------------------------------------------------------------------
a06a4a0997 | Samuel Bronson | 2011-10-31 21:41:11 -0400

Windows (MinGW): Do crash dumps, same as on *nix.
We do this by defining USE_UNIX_SIGNALS there and fixing the resulting
compiler errors.

For some reason they aren't being written to files yet, though :-(.

--------------------------------------------------------------------------------
d17453a857 | Adam Borowski | 2011-11-01 02:24:31 +0100

Recompress imp tiles.  Up to 10x!

--------------------------------------------------------------------------------
f3ba4676ee | Samuel Bronson | 2011-10-31 21:08:33 -0400

Win32: Don't tromp over scrollback: use a fresh console screen buffer.
Could maybe use some error checking ...

--------------------------------------------------------------------------------
0dfbe3a069 | elliptic | 2011-10-31 19:14:14 -0400

Unrestrict maces for ogres.

--------------------------------------------------------------------------------
0d1c40dd6f | Adam Borowski | 2011-10-31 23:52:41 +0100

Don't trigger Evolution when the player is doing nothing.

--------------------------------------------------------------------------------
cc8cebfd9f | Adam Borowski | 2011-10-31 23:21:40 +0100

A new mutation "Evolution" -- brings in new mutations.
The mutations are usually good, but bad ones are pretty hard to remove.

--------------------------------------------------------------------------------
0013ddb42f | Robert Burnham | 2011-10-31 15:39:05 -0500

Fix various bugs and "helpless monster" text

--------------------------------------------------------------------------------
d8563977e6 | Robert Burnham | 2011-10-31 15:32:30 -0500

Fix contrib/sdl

--------------------------------------------------------------------------------
76db36af1a | Eino Keskitalo | 2011-10-31 22:00:39 +0200

Use Curio's iron imp tile from #4625, also clean up the shadow imp tile (using 
head from Curio's tile).

--------------------------------------------------------------------------------
a057f740d3 | Eino Keskitalo | 2011-10-31 22:00:38 +0200

Use Curio's new base crystal plate tile from #4621, and add two more 
ego/randart variations from #3827. Remove the old base crystal plate tile.

--------------------------------------------------------------------------------
906c603e9e | Chris Campbell | 2011-10-31 18:32:05 +0000

Don't spam warning messages when trying to attack hostile holies under a good 
god

--------------------------------------------------------------------------------
35bc405598 | Chris Campbell | 2011-10-31 18:32:04 +0000

Re-retier some DS muts, add two new mutations: Foul Stench and Ignite Blood
Ignite Blood confers immunity to flame clouds and causes any blood
spilled in the player's sight to erupt in flames and create a flame
cloud (and also makes more blood get spilled in the first place). It's
a single-level mutation available as a replacement to Hellfire in the
fire facet (and making it a tier 2 facet instead of a tier 3 one).

Foul Stench provides resistance to rotting and miasma, sickens
monsters that attack the player in melee, and may create clouds of
miasma when the player takes large amounts of damage in melee. It's a
two-level mutation, and a level of Saprovore is gained as the
first part of the facet.

Both need plenty of testing and feedback!

--------------------------------------------------------------------------------
409c34ec93 | Chris Campbell | 2011-10-31 18:32:03 +0000

Remove passive mapping as a DS mut, re-tier some other mutations

--------------------------------------------------------------------------------
9028046554 | Chris Campbell | 2011-10-31 18:32:03 +0000

Don't let Geryon fly
To protect people from dropping the horn in lava. It was suggested to
make the horn-blowing automatic on Geryon's death, which would also
work but this is an easy change to make in the meantime.

--------------------------------------------------------------------------------
fde78b23ac | David Lawrence Ramsey | 2011-10-31 13:30:25 -0500

Add wording fixes.

--------------------------------------------------------------------------------
740d005bc0 | Robert Burnham | 2011-10-31 12:07:41 -0500

Merge branch 'master' into unified_combat_control
Conflicts:
	crawl-ref/source/delay.cc
	crawl-ref/source/fight.cc

--------------------------------------------------------------------------------
6405c4aa44 | Adam Borowski | 2011-10-31 16:23:12 +0100

Merge branch 'nausea'.  Blame dpeg!

--------------------------------------------------------------------------------
c59df72af9 | Adam Borowski | 2011-10-31 16:19:41 +0100

Restore the healing ghouls get from clean chunks.
Before the food changes, they got it in 4/5 cases (5/5 for "bad" chunks).
By my mistake, it became 1/5 (and 5/5).

I wonder about removing badness from the formula at all -- losing some theme
but making playing more straightforward.

--------------------------------------------------------------------------------
acc561b01b | Adam Borowski | 2011-10-31 16:12:49 +0100

Relax nausea at starving.
You get only at most half of nutrition, but can do something besides waiting
for death.

All chunks become effectively contaminated, those which already were, doubly
so.  Getting hit by bad food while already nauseated (and starving) gives
you sickness in addition.  (dpeg: is that ok?  It removes a part of the
rationale behind nausea -- but can happen only when the player is on dire
straits already.)

--------------------------------------------------------------------------------
95b763f251 | Adam Borowski | 2011-10-31 15:18:53 +0100

Make centaurs Fastmeta 1 Herbi 1, now that it no longer affects thresholds.
Within Vintermann's rules, it'd cause them to eat clean chunks at Hungry,
contaminated ones at Very Hungry, which has been shown to be unplayable.
Now that it affects only nutrition again, it should be ok.

With recent changes to herbivorousness, this makes centaurs need to eat even
more (effective hunger 5.33, before this commit 5).  On the other hand, most
permafood is vegetarian, so it's a double improvement to centaurs in
non-living branches and those who worship Zin.

--------------------------------------------------------------------------------
dda850b75f | Adam Borowski | 2011-10-31 14:30:02 +0100

Fix poison beams doing more damage when rPois, fix tracers.
The former had reversed logic.

The latter were based on an uninitialized place in memory.

--------------------------------------------------------------------------------
8a8e775baf | Adam Borowski | 2011-10-31 14:09:31 +0100

Remove no longer necessary casts after random_choose().

--------------------------------------------------------------------------------
b73196b72f | Adam Borowski | 2011-10-31 13:40:43 +0100

Use proper type declarations for brand_type.

--------------------------------------------------------------------------------
bc61b04787 | Adam Borowski | 2011-10-31 13:24:02 +0100

Use templates for random_choose() to eliminate the need for multiple 
definitions.

--------------------------------------------------------------------------------
c56cb9b32b | Adam Borowski | 2011-10-31 12:54:20 +0100

Simplify use of random_choose() by using overloading.

--------------------------------------------------------------------------------
56a7a78f02 | Robert Burnham | 2011-10-31 06:28:17 -0500

Unify to-hit messages, temporarily add in debug messages

--------------------------------------------------------------------------------
aacbd52137 | Adam Borowski | 2011-10-31 01:42:17 +0100

ZotDef: don't crash when a monster somehow gets into loot vaults.
This should never happen for hostiles, but you can teleport into and summon
stuff.  You can even aggro your summons so an allegiance check wouldn't be
right.

Keeping the assert, though -- in any case where it fails, the monster would
stare blankly into the space, not responding to attacks.  Better to crash
than to give a free victory.

--------------------------------------------------------------------------------
195423d2fc | Adam Borowski | 2011-10-31 01:28:40 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
c745fded43 | Adam Borowski | 2011-10-31 01:22:37 +0100

Mark artefacts with wizardry INT<0 as conflicting.

--------------------------------------------------------------------------------
7476ad27f5 | Florian Diebold | 2011-10-30 23:41:11 +0100

Webtiles: Fix some layout issues.

--------------------------------------------------------------------------------
2a3d0ea771 | Florian Diebold | 2011-10-30 23:41:11 +0100

Webtiles server: Allow running in a chroot and as a daemon.
Running in a chroot is insufficiently tested. It will require some
python base libraries in the chroot, at least.

--------------------------------------------------------------------------------
53b9fe34ae | Chris Campbell | 2011-10-30 19:40:21 +0000

Temporal Distortion: a new Chei ability to help against ranged attackers
It's essentially just a very low duration step from time, with the
result that monsters will approach the player, possibly bringing them
into range for Bend Time and allowing the player to spend less turns
being pelted by missiles. Probably needs lots of testing and tweaking!

Additional changes: Bend Time moved to the 1* piety level, bonus
resistances removed (now Chei worshippers can wear randarts there's
not as much justification for them).

--------------------------------------------------------------------------------
5db97c4597 | Chris Campbell | 2011-10-30 17:57:41 +0000

Don't let monsters heal under Death's Door

--------------------------------------------------------------------------------
039cc788ef | Chris Campbell | 2011-10-30 16:47:43 +0000

Don't spend a turn and create a tloc cloud when aborting Passage of Golubria on 
a -cTele floor

--------------------------------------------------------------------------------
60b79e090b | Chris Campbell | 2011-10-30 16:35:07 +0000

Make Inner Flamed monsters leave behind some flame clouds on death

--------------------------------------------------------------------------------
4a1343257b | Chris Campbell | 2011-10-30 15:59:33 +0000

Reduce the damage reduction from petrification

--------------------------------------------------------------------------------
31f3d585bf | Chris Campbell | 2011-10-30 15:34:07 +0000

Make it easier to gain piety from pacification at low piety

--------------------------------------------------------------------------------
e93b154bbb | Chris Campbell | 2011-10-30 15:34:03 +0000

Don't give Ely piety for mundane weapons/missiles after 1*

--------------------------------------------------------------------------------
03a7e9caa1 | Frank Benkstein | 2011-10-30 13:14:08 +0000

show the item's name if you're throwing stuff at yourself

--------------------------------------------------------------------------------
3f6e89c329 | Michael Gagno | 2011-10-30 13:14:07 +0000

Buff door vaults.
They were good in D and Vaults but fairly wimpy elsewhere. This makes it so the
monsters are always a bit scary. Also, the weight of a variant door vault is
reduced.

--------------------------------------------------------------------------------
b5d04e0998 | Chris Campbell | 2011-10-30 13:14:07 +0000

Improve the description for Enter the Abyss

--------------------------------------------------------------------------------
1a5a63f3aa | Michael Gagno | 2011-10-30 12:37:53 +0200

Remove problematic darkgrey colours from a vault.

--------------------------------------------------------------------------------
1fe77f064f | Eino Keskitalo | 2011-10-30 11:57:16 +0200

Several redone tiles and adjusted tiles from roctavian (#4805).
Total redesigns: Asmodeus, Dispater, Ereshkigal, Hell Knight, Necromancer, 
Wizard. (The lords will actually soon be replaced by 32x48 designs.)

The rest get a hand-drawn border, and some other (mostly minor) adjustments.

--------------------------------------------------------------------------------
da166e77d2 | Eino Keskitalo | 2011-10-30 11:36:47 +0200

Fix automatic bordering for several tiles, broken in af4fe25.

--------------------------------------------------------------------------------
eeaecd6595 | Eino Keskitalo | 2011-10-30 11:36:47 +0200

Let wyverns fly.

--------------------------------------------------------------------------------
bd8d23cba6 | Eino Keskitalo | 2011-10-30 11:36:47 +0200

Remove mentions of domake.sh and dolinks.sh from INSTALL.txt. They're long gone.

--------------------------------------------------------------------------------
b76dd12d1a | elliptic | 2011-10-29 22:05:53 -0400

Passage of Golubria changes.
The spell now creates two portals per cast (one near you and one near the
target square), and there is no limit on the number of portals that can be
open at once (you exit out a random portal each time).

--------------------------------------------------------------------------------
0d624ea680 | Chris Campbell | 2011-10-29 22:55:18 +0100

Tweak Velocity card now that swiftfly don't combine for extra speed

--------------------------------------------------------------------------------
b6a7af2f85 | Chris Campbell | 2011-10-29 18:44:20 +0100

Don't start Ogres with ankuses instead of maces
Similarly to Merfolk who used to get their spears upgraded to tridents
for free, it just doesn't really make a lot of sense.

--------------------------------------------------------------------------------
03fc88dfe2 | Chris Campbell | 2011-10-29 18:44:20 +0100

Minor rewording of equip messages for the dragonskin cloak

--------------------------------------------------------------------------------
4f04187d42 | Chris Campbell | 2011-10-29 18:44:19 +0100

Make Berserkers start with a slightly more species-appropriate weapon
Starting everyone with an axe just results in most races dropping it
immediately for a spear or short sword as appropriate - it doesn't
really add much other than mild annoyance on D:1. Kobolds deliberately
get a mace over a short sword with this change, since that's a case
where either sticking with the mace or swapping to short/long blades
are both reasonable things to do.

--------------------------------------------------------------------------------
89d469a9f1 | Samuel Bronson | 2011-10-29 13:39:19 -0400

Rename rltile-build target to build-rltiles, to match clean-rltiles.

--------------------------------------------------------------------------------
21b08dbf38 | Adam Borowski | 2011-10-29 17:24:22 +0200

Don't spawn hammers naturally.
They're left in a couple vaults, and on draconian zealots.  Acquirement
weight was already 0 (which zeroes regular spawns too), but they were
special-cased as a common weapon generated on the floor on shallow dungeon
levels.  That special casing is gone.

--------------------------------------------------------------------------------
5cdff14316 | Adam Borowski | 2011-10-29 17:21:30 +0200

Cut the chance for ankuses by 10.
Might be better to all the way to 0, though.

They're flails that are two-handed for spriggans, a tiny bit faster and can
have no brand.  Rare weapons are a bit interesting, let's try making them
really rare first.  Not that anyone is going to use them, though.

--------------------------------------------------------------------------------
b386c4e365 | Adam Borowski | 2011-10-29 15:29:31 +0200

Rename "plate mail" to "plate armour".
Not sure about the name, "full plate" might sound better.

I wonder how no one else was annoyed by having three pieces of armour being
synonyms of each other.

Also, our tiles show solid plate rather than mail.

--------------------------------------------------------------------------------
aafe93817e | Adam Borowski | 2011-10-29 14:12:41 +0200

Rename "crystal plate mail" to "crystal plate".
It makes no sense to make MAIL from crystal -- thin plates made of a
material that is on the brittle side would break in no time, and piercing
them to insert combining rings would chip it out quickly as the rings move
somewhat during use.

Making plate ARMOUR on the other hand is reasonable assuming you have proper
crystal.  (Yeah, yeah, "crystal" in the popular meaning, I know how most
solids look on the molecular level :p)

The tiles show plate armour rather than plate mail, too.

--------------------------------------------------------------------------------
2601dec0d1 | Adam Borowski | 2011-10-29 14:05:33 +0200

Improve medium armour, remove banded mails.
Ring, scale, chain get +1 base AC.

So do steam and mottled dragons -- no one ever uses them as +2 AC is not
worth having no brand.

"Banded mail" is a D&D invention, and is mostly synonymous with splint.
Even our code merged them in some cases -- like, tiles display.

--------------------------------------------------------------------------------
5c3b075a33 | David Ploog | 2011-10-29 03:11:26 +0200

New Tar:7 map (minmay), #4636.

--------------------------------------------------------------------------------
2559445496 | David Ploog | 2011-10-29 03:11:25 +0200

17 repeating rune Pan minivaults (evilmike), #4647.

--------------------------------------------------------------------------------
eaf0a5f2ae | David Ploog | 2011-10-29 03:11:25 +0200

Four abyss exit vaults (Brendan), #4626.

--------------------------------------------------------------------------------
4cdc635693 | David Ploog | 2011-10-29 03:11:25 +0200

New Geh:7 map (evilmike), #4774.

--------------------------------------------------------------------------------
27d1d943e4 | David Ploog | 2011-10-29 03:11:25 +0200

New Pan vaults for Gloorx Vloq, Mnoleg, Cerebov (evilmike), #4630.

--------------------------------------------------------------------------------
8a4c72d122 | Samuel Bronson | 2011-10-28 20:02:27 -0400

Fix a segfaulting die() call.

--------------------------------------------------------------------------------
b97ab685a9 | Florian Diebold | 2011-10-29 01:19:36 +0200

Fix wrong colour key handling in the rltile tool (#4824).
It assumed all paletted images used colour keys; when they didn't, the
first palette entry would be transparent. Since that was mostly the
darkest colour, this wasn't very noticeable, but still yielded some
artifacts for tinted floor tiles, for examples.

--------------------------------------------------------------------------------
62f6cd9651 | Florian Diebold | 2011-10-29 01:19:36 +0200

Webtiles: Fix minimap farview.

--------------------------------------------------------------------------------
29149771d8 | Florian Diebold | 2011-10-29 01:19:36 +0200

Add a loading screen for Webtiles.

--------------------------------------------------------------------------------
3c4dfa2855 | Florian Diebold | 2011-10-29 01:19:36 +0200

Webtiles: A small bandwidth improvement.

--------------------------------------------------------------------------------
4aeefdb4d4 | Florian Diebold | 2011-10-29 01:19:36 +0200

Webtiles JS Modularization, part II.
This organizes the game-specific javascript into proper modules, and
converts all messages from Crawl to JS objects. This means that the
game javascript is now loaded asynchronically, which should fix the
browser hang when starting a game.

--------------------------------------------------------------------------------
a85dba6281 | Florian Diebold | 2011-10-29 01:19:36 +0200

Webtiles: Fix text wrapping around to the start of the screen.

--------------------------------------------------------------------------------
6067133cea | Adam Borowski | 2011-10-28 23:12:49 +0200

Use different character names for canned runs, so they can be tested 
concurently.

--------------------------------------------------------------------------------
0987ac4794 | elliptic | 2011-10-28 16:44:51 -0400

Tweak minotaur apts slightly.
Earth, Tmut: -3 -> -2.
Charms, Hexes: -3 -> -4.

--------------------------------------------------------------------------------
ac89a1c985 | Chris Campbell | 2011-10-28 20:50:13 +0100

Rework drop/pickup menu headers to fit on one line

--------------------------------------------------------------------------------
8fdc6e1e1d | kittel | 2011-10-28 20:50:08 +0100

drop and pickup menu display new burden state

--------------------------------------------------------------------------------
976349fd8c | Adam Borowski | 2011-10-28 15:28:11 +0200

Give Tiamat a bit more AC.

--------------------------------------------------------------------------------
699ebe1dff | Adam Borowski | 2011-10-28 15:24:22 +0200

Give Tiamat an unrand cloak instead of her GDA.
It provides an unreliable 50% chance for each of: rF+ rC+ rPois rElec
rSticky rSteam rN+, rolled on every hit.

--------------------------------------------------------------------------------
8b7d827af7 | Robert Burnham | 2011-10-28 08:01:21 -0500

Fix whitespace, cursed Windows!

--------------------------------------------------------------------------------
f4862466a8 | Robert Burnham | 2011-10-28 07:52:13 -0500

Generalize player_fights_well_unarmed

--------------------------------------------------------------------------------
a1465943dd | Adam Borowski | 2011-10-28 13:44:30 +0200

Somewhat prefer racial items during acquirement.
For example, items with 1/5 chance to be racial will match you around half
of the time.  Most of high-end gear can never get races, though, and neither
currently can artefacts.

--------------------------------------------------------------------------------
4eff48b48a | Adam Borowski | 2011-10-28 13:04:19 +0200

Externalize the function to determine the player's item race flag.

--------------------------------------------------------------------------------
1ce7a0ef2d | Adam Borowski | 2011-10-28 12:48:28 +0200

Assert on invalid missile types.
Actually, I care mostly for a false positive for "what does racial gear do?".

--------------------------------------------------------------------------------
33e4a7d3bc | elliptic | 2011-10-28 06:32:24 -0400

Improve brand-checking when determining which skills are trainable.
This currently doesn't update immediately when you enter or leave lichform.

--------------------------------------------------------------------------------
76d8b1bbb1 | elliptic | 2011-10-28 06:32:24 -0400

Improve handling of curse knowledge for skill training (Fyren).
(Changes coded by Fyren, thanks!)

--------------------------------------------------------------------------------
d4447905c9 | Adam Borowski | 2011-10-28 11:54:16 +0200

Fix a doubled period.
For some reason, Zin's @important_subject@ has a period already.

--------------------------------------------------------------------------------
05cae9679c | Adam Borowski | 2011-10-28 11:50:31 +0200

Game restore messages for Chei and Fedhas penance.
Only Jiyva is left; other gods don't have penance for worshippers.

--------------------------------------------------------------------------------
9f02356ec1 | Adam Borowski | 2011-10-28 11:39:02 +0200

Don't claim elven armour for most slots has benefits other than reduced weight.

--------------------------------------------------------------------------------
d8ac04cb04 | Adam Borowski | 2011-10-28 11:12:02 +0200

ZotDef: Colour the "battle heart" in a map by that name red.

--------------------------------------------------------------------------------
faa967ab04 | Adam Borowski | 2011-10-28 11:04:12 +0200

Darken Gehenna floor tiles (evilmike)

--------------------------------------------------------------------------------
6b9eb66eb1 | Adam Borowski | 2011-10-28 10:17:13 +0200

Fix a message with no verb.

--------------------------------------------------------------------------------
2cbe0d8b21 | Adam Borowski | 2011-10-28 10:16:22 +0200

Don't crash on every level of Pan.

--------------------------------------------------------------------------------
f84a85199e | Robert Burnham | 2011-10-27 13:43:14 -0500

Handle AT_CHERUB and AT_WEAP_ONLY in adjust_noise

--------------------------------------------------------------------------------
85cd492b35 | Florian Diebold | 2011-10-27 17:45:15 +0200

Mention Webtiles in the README.txt (#4820).
I also changed the Website URL to crawl.develz.org.

--------------------------------------------------------------------------------
fac3801b5e | Chris Campbell | 2011-10-27 14:56:56 +0100

Fix inability to train level 0 skills with experience potions/cards (|amethyst)

--------------------------------------------------------------------------------
e5fff7df2e | Adam Borowski | 2011-10-27 15:18:40 +0200

Crash less when shattering dudes.

--------------------------------------------------------------------------------
eaded9710d | kittel | 2011-10-27 13:59:47 +0100

Toggle between locations and items when searching

--------------------------------------------------------------------------------
f7e7b2153a | Michael Gagno | 2011-10-27 13:59:47 +0100

Make low maxhp monsters unable to flee again.
The new formula overlooked this aspect. Previously, monsters with less than 8
maxhp were unable to flee. This should restore that behaviour.

--------------------------------------------------------------------------------
ccd80feabc | Adam Borowski | 2011-10-27 12:59:40 +0200

Really fix rltiles being built when building for console.
There was another dependency I missed, that was executed only before link.

--------------------------------------------------------------------------------
61d0dd02b9 | Adam Borowski | 2011-10-27 12:48:22 +0200

When crashing, print the error to stderr as well.
It's tedious to have to look inside the dump to see what's wrong.

--------------------------------------------------------------------------------
9d1de065e9 | Adam Borowski | 2011-10-27 12:48:14 +0200

A nicer assert message.

--------------------------------------------------------------------------------
1e2f007508 | Chris Campbell | 2011-10-27 02:21:02 +0100

Fix monsters not swapping weapons properly (#4818)

--------------------------------------------------------------------------------
39b5387b56 | Robert Burnham | 2011-10-26 13:08:04 -0500

Fix build issues stemming from merge
unified_combat_control will build and link properly now, what
functionality remains from pre-merge, I'm unsure.

--------------------------------------------------------------------------------
f6ade65492 | Robert Burnham | 2011-10-26 10:59:17 -0500

Merge master into unified_combat_control
This commit does not build, but rather serves as a milestone for my
sanity and to make my work portable. Hopefully the next commit improves
on the status of compiling.

--------------------------------------------------------------------------------
a071b35103 | Chris Campbell | 2011-10-26 16:07:49 +0100

Move the ^C targeting command to the right section of the help (galefury)

--------------------------------------------------------------------------------
5a8852d8be | Adam Borowski | 2011-10-26 14:02:41 +0200

Build rltile data only when building TILES_ANY.

--------------------------------------------------------------------------------
22b5b464d7 | Chris Campbell | 2011-10-26 12:53:04 +0100

Option removal continued: colour_map, verbose_monster_pane, item_colour, 
easy_butcher
Also document a hidden option, show_waypoints.

--------------------------------------------------------------------------------
7281982a03 | Adam Borowski | 2011-10-26 12:47:51 +0200

Don't leak info about amulets of stasis.
An interesting thing: it was done right for -TELE arts on the very next line.

--------------------------------------------------------------------------------
44a30caa7f | Adam Borowski | 2011-10-26 12:38:43 +0200

Make dropping things take the same time whether wielded or not.
Before, it was:
* wielded:         3aut
* wield+drop:      8aut
* from inventory: 10aut

It's 8 aut now except for the second case where you do two actions so it
takes longer (13aut).

--------------------------------------------------------------------------------
4372483aab | Adam Borowski | 2011-10-26 12:29:22 +0200

Unify redundant drop code.
Dropping multiple {!d} items is still broken, but that's no regression.

--------------------------------------------------------------------------------
cfa7290e98 | Adam Borowski | 2011-10-26 09:56:41 +0200

Manual updates from the wiki.

--------------------------------------------------------------------------------
bfd0d11832 | Adam Borowski | 2011-10-26 09:35:19 +0200

Tweak the hill dwarf description.

--------------------------------------------------------------------------------
f55c42b53b | Adam Borowski | 2011-10-26 09:32:49 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
7b3045176a | Neil Moore | 2011-10-26 09:18:10 +0200

A new addition to the gallery of extinct species.
Mountain dwarves were conquered by the hill orcs, who do the same
things with faster level progression.

--------------------------------------------------------------------------------
5a62dcd0c2 | Adam Borowski | 2011-10-26 07:21:19 +0200

Git ignores for webtiles generated files.

--------------------------------------------------------------------------------
0a0b1e0ede | Adam Borowski | 2011-10-26 07:10:06 +0200

Fix a warning.

--------------------------------------------------------------------------------
8a404b747a | Adam Borowski | 2011-10-26 07:06:54 +0200

Fix tile junk not being cleaned up.

--------------------------------------------------------------------------------
86239eb287 | Adam Borowski | 2011-10-26 06:40:07 +0200

Vp: -1 -> 0 Earth.
Vampires have no reason to dislike earth (like, a handful of earth from
their place of birth stored in the coffin in some myths), and it hurts St.

--------------------------------------------------------------------------------
cadfff97ac | Adam Borowski | 2011-10-26 06:30:39 +0200

Make orcs more apt at burning stuff down.
Ice magic on the other hand is no fun.

--------------------------------------------------------------------------------
cf848d1079 | Adam Borowski | 2011-10-26 05:47:31 +0200

Adjust minotaur aptitudes.
This moves them closer to the MD niche, although way more conservatively
than what was discussed.  We can adjust them more.

On the other hand, I thoroughly disagree that equal weapon and magic
aptitudes are "boring".  They should differ between races, but they don't
always need to differ between weapons.  In fact, a race equally competent
is _more_ interesting as you get a choice instead of being railroaded.

--------------------------------------------------------------------------------
5384ae0196 | Adam Borowski | 2011-10-26 05:31:09 +0200

Don't delete montier tracking yet.
I'll need it soon.

--------------------------------------------------------------------------------
d536cb9807 | Samuel Bronson | 2011-10-25 18:54:56 -0400

Share my nice .des "git diff" hunk header secret.
(Well, I guess it isn't a secret anymore...)

--------------------------------------------------------------------------------
ce5cd1e9df | Robert Burnham | 2011-10-25 15:38:46 -0500

Merge branch 'master' into unified_combat_control
Conflicts:
	crawl-ref/source/Makefile.obj
	crawl-ref/source/dbg-scan.cc
	crawl-ref/source/decks.cc
	crawl-ref/source/describe.cc
	crawl-ref/source/directn.cc
	crawl-ref/source/evoke.cc
	crawl-ref/source/fight.cc
	crawl-ref/source/fight.h
	crawl-ref/source/ghost.cc
	crawl-ref/source/ghost.h
	crawl-ref/source/item_use.cc
	crawl-ref/source/items.cc
	crawl-ref/source/map_knowledge.cc
	crawl-ref/source/melee_attack.h
	crawl-ref/source/mon-abil.cc
	crawl-ref/source/mon-act.cc
	crawl-ref/source/mon-stuff.cc
	crawl-ref/source/monster.cc
	crawl-ref/source/monster.h
	crawl-ref/source/player.cc
	crawl-ref/source/player.h
	crawl-ref/source/shopping.cc
	crawl-ref/source/spl-damage.cc
	crawl-ref/source/spl-summoning.cc
	crawl-ref/source/spl-transloc.cc
	crawl-ref/source/stairs.cc
	crawl-ref/source/stuff.cc
	crawl-ref/source/tags.cc
	crawl-ref/source/traps.cc
	crawl-ref/source/xom.cc

--------------------------------------------------------------------------------
cda7f728ac | Samuel Bronson | 2011-10-25 16:37:04 -0400

A couple of basic GDB pretty-printers.

--------------------------------------------------------------------------------
f70a5619b3 | Chris Campbell | 2011-10-25 21:33:26 +0100

Remove some more options: classic_hud, classic_item_colours

--------------------------------------------------------------------------------
8723275b0d | Chris Campbell | 2011-10-25 21:33:26 +0100

Remove some options: show_beam, pickup_dropped

--------------------------------------------------------------------------------
477dc57274 | Chris Campbell | 2011-10-25 21:33:25 +0100

Boost Kenku mp, and Hill Orc spellcasting, base int and mp slightly

--------------------------------------------------------------------------------
749d90c8a6 | Chris Campbell | 2011-10-25 21:33:24 +0100

Don't recommend VpTm now that Fulsome/Evap are gone from the book

--------------------------------------------------------------------------------
9bf785e2be | Adam Borowski | 2011-10-25 20:05:50 +0200

Don't consider rPois- to be same as rPois+.
Note that some of these cases shouldn't consider rPois to be immunity, either.

--------------------------------------------------------------------------------
5955a17d11 | Adam Borowski | 2011-10-25 19:58:39 +0200

Clean up genuses of removed species.

--------------------------------------------------------------------------------
0edc7688ee | Adam Borowski | 2011-10-25 19:39:38 +0200

Give mountain dwarves the axe.

--------------------------------------------------------------------------------
9cbb32898a | Samuel Bronson | 2011-10-25 12:47:49 -0400

Add some GDB tips to the developer documentation.

--------------------------------------------------------------------------------
acc067bff3 | Adam Borowski | 2011-10-25 17:49:34 +0200

Three furniture vaults: a hexagonal grid of columns.

--------------------------------------------------------------------------------
da20ac217b | Adam Borowski | 2011-10-25 17:35:31 +0200

Don't place bee larvas in old vaults.
They don't make sense with the new rules -- they instantly devour the food
they start on.

--------------------------------------------------------------------------------
d066b0fac8 | Adam Borowski | 2011-10-25 14:41:33 +0200

Make the giga bat tile even larger, use the old one for megabats.

--------------------------------------------------------------------------------
356a0a0eff | Adam Borowski | 2011-10-25 14:40:48 +0200

Don't allow monster draconians, octopodes and Gastronok to pick up body armour.

--------------------------------------------------------------------------------
5e49ef35dc | Adam Borowski | 2011-10-25 13:50:51 +0200

When switching between good gods, transfer half of the piety.
This solves two issues:
* it was a no-brainer to go Ely first and get 45 piety then switch.  Now,
  you'd need to get to 90 for the same result, which is not a matter of
  saccing a couple of levels worth of weapons anymore.
* the boost was too small to matter when thinking about a late game
  conversion.

--------------------------------------------------------------------------------
d77a7352e1 | Adam Borowski | 2011-10-25 12:40:57 +0200

Remove stash_filter completely.
It's a remnant of old explicit stashes, not needed with the new interface.
And its primary mode of operation relies on the user specifying base_type /
sub_type numbers, something even the code doesn't do anymore for years.
The ability to use names was half-baked.

If you're searching for a scroll, "useless" ones being not shown is
surprising and leads to bug reports.

--------------------------------------------------------------------------------
71b738e8b4 | Robert Burnham | 2011-10-25 03:05:17 -0500

Get basic melee combat working, fix monster energy usage

--------------------------------------------------------------------------------
fb560b76a0 | Florian Diebold | 2011-10-25 04:05:44 +0200

Fix a spelling mistake (mumra).

--------------------------------------------------------------------------------
5e55e7d343 | Adam Borowski | 2011-10-25 01:29:52 +0200

Move the one-vault wonder gnome from 'q' to 'g'.
About as related to boggarts than qwarves.

--------------------------------------------------------------------------------
58f55f563f | Adam Borowski | 2011-10-25 01:17:29 +0200

Fix the shillelagh shattering stuff on a miss.

--------------------------------------------------------------------------------
4d1b0174fe | Adam Borowski | 2011-10-25 01:17:29 +0200

Make the shillelagh usable by monsters.
They won't care about collateral damage, though -- thus I did not remove the
"special" flag, preventing monsters from picking it up.

--------------------------------------------------------------------------------
4fdb08d804 | Samuel Bronson | 2011-10-24 18:55:59 -0400

Merge branch 'luadoc'
Conflicts:
	crawl-ref/source/Makefile

--------------------------------------------------------------------------------
3ee7943362 | Raphael Langella | 2011-10-25 00:23:27 +0200

New Ashenzari skill boost formula.
The scale is more regular. The formula is:
factor * piety_rank * skill_level

low bonus    -> factor = 3
medium bonus -> factor = 5
high bonus   -> factor = 7

          low           medium          high
     current  new   current  new   current  new
 1     0.7    1.7     1.0    2.5     1.2    3.1
 2     1.5    2.2     2.0    3.3     2.5    4.2
 3     2.2    2.6     3.0    3.8     3.7    4.9
 4     3.0    2.8     4.0    4.2     5.0    5.3
 5     3.7    3.0     5.0    4.4     6.2    5.6
 6     4.5    3.1     6.0    4.5     7.5    5.7
 7     4.2    3.1     5.7    4.5     7.2    5.7
 8     4.0    3.0     5.5    4.4     7.0    5.7
 9     3.7    2.9     5.2    4.3     6.7    5.6
10     3.5    2.8     5.0    4.2     6.5    5.5
11     3.2    2.7     4.7    4.2     6.2    5.5
12     3.0    2.6     4.5    4.1     6.0    5.4
13     2.7    2.6     4.2    4.1     5.7    5.4
14     2.5    2.5     4.0    4.0     5.5    5.3
15     2.2    2.5     3.7    4.0     5.2    5.2
16     2.0    2.5     3.5    3.9     5.0    5.1
17     1.7    2.4     3.2    3.8     4.7    5.0
18     1.5    2.3     3.0    3.6     4.5    4.9
19     1.2    2.2     2.7    3.5     4.2    4.8
20     1.0    2.2     2.5    3.5     4.0    4.7
21     0.7    2.1     2.2    3.4     3.7    4.6
22     0.5    2.1     2.0    3.3     3.5    4.5
23     0.2    2.0     1.7    3.3     3.2    4.0
24     0.0    2.0     1.5    3.0     3.0    3.0
25     0.0    1.9     1.2    2.0     2.0    2.0
26     0.0    1.0     1.0    1.0     1.0    1.0
27     0.0    0.0     0.0    0.0     0.0    0.0

--------------------------------------------------------------------------------
414cac6d8a | Raphael Langella | 2011-10-25 00:23:26 +0200

Show the skill bonus in defense simulation result.

--------------------------------------------------------------------------------
26aaba5b27 | Raphael Langella | 2011-10-25 00:23:26 +0200

Fix submerged monsters not fighting back when hit with reaching (#1878).

--------------------------------------------------------------------------------
e974713c58 | Adam Borowski | 2011-10-25 00:09:11 +0200

Fix a bunch of syntax errors in vaults.

--------------------------------------------------------------------------------
c773ff4855 | Adam Borowski | 2011-10-25 00:08:25 +0200

Validate some atoi()s in map parsing -- they used to let errors through.

--------------------------------------------------------------------------------
65f2117467 | Adam Borowski | 2011-10-24 23:26:34 +0200

Don't PLACE hallowed_hall at D:17.
It was a remnant of the semi-guaranteed test at D:26.

--------------------------------------------------------------------------------
780b4cf3b0 | Adam Borowski | 2011-10-24 23:26:34 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
f7f9bb240b | Adam Borowski | 2011-10-24 23:26:34 +0200

Make floor in the Tomb brown, to not conflict with halo.

--------------------------------------------------------------------------------
d58520b1cc | elliptic | 2011-10-24 14:29:25 -0400

Fix Ely greater healing being almost twice as strong as intended at 27 Invoc.

--------------------------------------------------------------------------------
5efc2ebb17 | Eino Keskitalo | 2011-10-24 21:08:54 +0300

Add Denzi's lich form tiles from #3467 into UNUSED.
jpeg seemed happy with the current ones, but perhaps we can use these later 
from some other undead type monster. They certainly look very sinister!

--------------------------------------------------------------------------------
758c6a6f9c | Eino Keskitalo | 2011-10-24 20:58:23 +0300

Add purge's goblinoid tile from #958 to UNUSED.

--------------------------------------------------------------------------------
3dcd72c7e8 | Chris Campbell | 2011-10-24 18:51:09 +0100

Make LRD deal no damage to monsters that can't be shattered
In the future it should also be changed to target shatterable monsters
by default, and to abort with no cost when it would fail, ideally.

--------------------------------------------------------------------------------
4347b13c8a | Chris Campbell | 2011-10-24 18:42:17 +0100

Document that ^C while targeting cycles through possible beam paths

--------------------------------------------------------------------------------
b7c539afb2 | Chris Campbell | 2011-10-24 17:12:55 +0100

Make legendary Pain cards torment instead of mass drain, move the Torment card 
from destruction to punishment

--------------------------------------------------------------------------------
24e4b24f41 | Chris Campbell | 2011-10-24 17:05:21 +0100

Make Geryon drop his horn when pacified, improve his description

--------------------------------------------------------------------------------
4a0ab6ada3 | Adam Borowski | 2011-10-24 12:31:11 +0200

Don't let hallowed_hall be disconnected.

--------------------------------------------------------------------------------
28761a5c72 | Adam Borowski | 2011-10-24 10:54:29 +0200

Beef up the hallowed quokka on deeper depths.

--------------------------------------------------------------------------------
dfec0f07b0 | Adam Borowski | 2011-10-24 10:31:49 +0200

Mark Yiuf as a worshipper of Xom.  Fish!
Note that this increases Recite damage, which already can do massive damage
to him.  We may want to reduce it to compensate.

--------------------------------------------------------------------------------
58bcba787d | Adam Borowski | 2011-10-24 10:31:49 +0200

Make Aizul and guardian serpents eligible for recite.
Being both "impure" (mutagenic) and "heretic" (intelligent and not
worshipping Zin[1]) sounds like they should be hit more, rather than not
at all.

[1]. Yeah, that's kind of redundant.

--------------------------------------------------------------------------------
0d819ea4eb | Adam Borowski | 2011-10-24 10:31:49 +0200

Set the shape for orbs of fire, IOOD and silver stars to "orb".

--------------------------------------------------------------------------------
1190b775da | Robert Burnham | 2011-10-24 02:11:16 -0500

Cleanup comments and test removal of unnecessary? code

--------------------------------------------------------------------------------
e7e5fb8700 | David Lawrence Ramsey | 2011-10-23 21:43:42 -0500

Add wording fixes.

--------------------------------------------------------------------------------
2632dd34b6 | Adam Borowski | 2011-10-23 21:51:17 +0200

Remove a debugging statement.
It prevented non-debug builds from even compiling, too.

--------------------------------------------------------------------------------
4ccf1de038 | Adam Borowski | 2011-10-23 21:45:04 +0200

Fix endless lava producing a "shore" border when it touches passable lava.

--------------------------------------------------------------------------------
cc4277332e | Adam Borowski | 2011-10-23 21:39:48 +0200

Use dtsund's "tile" (ok, a square of yellow with 10% alpha...) for halo.
Looks a lot better to me.  I'd give it rounded edges, but that'd take
actual, you know, work.

--------------------------------------------------------------------------------
c22fc236dd | Adam Borowski | 2011-10-23 21:06:57 +0200

De-rim the holy swine tile.

--------------------------------------------------------------------------------
add3802ff3 | Adam Borowski | 2011-10-23 21:03:40 +0200

As usually, add missing PNGs.
Testing is not enough...

--------------------------------------------------------------------------------
68700b2ee7 | Adam Borowski | 2011-10-23 20:26:11 +0200

Commandeer one of rejected Hellbinder tiles for a silly experiment.
The floor in Lair is too boring for fun with partial alpha, so let's animate
the alpha instead...

--------------------------------------------------------------------------------
dafac1efff | Eino Keskitalo | 2011-10-23 21:12:51 +0300

Zombie tiles for trolls, draconians, griffons, harpies and winged quadrupes (at 
least hippogrives, sphinxes and shedu). From #4282, by Lantier, modified a 
little.
Strangely, the rim is correct in-game, although trolls don't have one, other 
tiles have, and no rim setting is in dc-zombies.txt.

--------------------------------------------------------------------------------
da2c4a31e5 | Adam Borowski | 2011-10-23 18:28:42 +0200

Don't naturally generate zombies of holies.
They're meant for player and perhaps vaults only.

--------------------------------------------------------------------------------
73226796be | Adam Borowski | 2011-10-23 18:21:51 +0200

Allow zombies of corpse-dropping holies.
It's what Yredelemnul would _love_ to do to desecreate their corpses!

Also allowed zombifying hellephants and hell {hogs,hounds} as demonic is the
same as holy except for good gods' attitude.

--------------------------------------------------------------------------------
976229ffec | Chris Campbell | 2011-10-23 15:26:37 +0100

Minor changelog fixes

--------------------------------------------------------------------------------
a3dd0022ef | Chris Campbell | 2011-10-23 13:54:29 +0100

Fix snakes to sticks punctuation (N78291)

--------------------------------------------------------------------------------
3310bc8173 | Adam Borowski | 2011-10-23 11:59:59 +0200

Auto-id amulets of warding when something fliches away.

--------------------------------------------------------------------------------
5b0d1697ce | Adam Borowski | 2011-10-23 11:52:17 +0200

Remove obsolete code for auto-id of rings of fire/ice.
No spell boosters can be worn unknown anymore.

--------------------------------------------------------------------------------
332dbffba4 | Adam Borowski | 2011-10-23 11:50:26 +0200

Unify some code for use-id of jewelry types.

--------------------------------------------------------------------------------
09701daf49 | Michael Gagno | 2011-10-23 00:39:37 -0400

Make zot tiles match console colours.
Zot:5 vault still uses purple stone.

--------------------------------------------------------------------------------
0f8d5daec3 | David Lawrence Ramsey | 2011-10-22 23:12:57 -0500

Give red wasps their own genus, since a wasp species is overkill for only two.

--------------------------------------------------------------------------------
3e8118dd3d | Samuel Bronson | 2011-10-22 23:54:10 -0400

Zotdef: Use Zot wall tiles of the *same* color as is used in Console.

--------------------------------------------------------------------------------
2ac5346416 | Samuel Bronson | 2011-10-22 23:52:31 -0400

Make non-light zot walls a bit darker for contrast.
(Except blue ones, since I couldn't figure out how.)

--------------------------------------------------------------------------------
6c7c43d3d7 | Samuel Bronson | 2011-10-22 23:30:30 -0400

Reign in on the brightness of the "light" zot walls a bit.
Some of these were just plain ridiculous...

--------------------------------------------------------------------------------
6cd1fdad17 | Samuel Bronson | 2011-10-22 23:14:16 -0400

Zotdef: whoops, missed the stone walls...
Also, for some reason these weren't magenta in tiles.

--------------------------------------------------------------------------------
d4ff3eec19 | Samuel Bronson | 2011-10-22 19:06:30 -0400

Zotdef: Steal evilmike's zot.des tiles.
Actually, only one of these two is evilmike's, but his patch
brought the matter to our attention, hence the shout-out.

--------------------------------------------------------------------------------
38e46ea100 | Adam Borowski | 2011-10-22 22:31:00 +0200

Disable GreatZebu's Hive portal vault.
It breaks save compatibility, and causes a number of problems related to
conflicts with the "Hive" place name -- like, anything lua, banishment
return, etc.

It's possible to handle this, of course, but we'd have to port all
compatibility code once I'm done with the level_type overhaul, so let's
do that just once.

--------------------------------------------------------------------------------
3482506c57 | Chris Campbell | 2011-10-22 20:41:30 +0100

Update changelog to 2deb586e0657837

--------------------------------------------------------------------------------
2deb586e06 | Chris Campbell | 2011-10-22 20:25:56 +0100

Give the Sprint starting kit to Zotdef games, too

--------------------------------------------------------------------------------
5630621778 | Chris Campbell | 2011-10-22 20:04:55 +0100

Reword the warning for hasty items
Calling it a "fast item" doesn't sound right for items with just
evocable berserk.

--------------------------------------------------------------------------------
970c4d0c28 | Chris Campbell | 2011-10-22 20:04:54 +0100

Mark the Wrath of Trog as a hasty item

--------------------------------------------------------------------------------
f41dbe7162 | Samuel Bronson | 2011-10-22 14:56:26 -0400

Add |amethyst/ to the CIA hook; move MarvinPA and myself to devs section.

--------------------------------------------------------------------------------
9b25b43393 | Samuel Bronson | 2011-10-22 14:54:41 -0400

Update git calls in CIA commit hook: use "git foo", not "git-foo".
(The latter form is no longer in the PATH with recent versions of git.)

--------------------------------------------------------------------------------
12b08fa0a7 | Chris Campbell | 2011-10-22 18:59:53 +0100

Rename new_hive to hive, don't use the old Hive:2 vaults
The old Hive vaults remain in dat/des/branches/hive.des for now.

This means that the Hive portal vault only has one map at the moment,
but we can test the functionality and see how it goes, then if it's
good request more maps (or rework the old ones, if that's feasible).

--------------------------------------------------------------------------------
eaf0ac4bff | Aaron Becker | 2011-10-22 18:59:50 +0100

Add more vaults and entries for hive and make it not guaranteed

--------------------------------------------------------------------------------
670b91048c | Aaron Becker | 2011-10-22 18:59:47 +0100

Turn hive into a portal vault and make bees more interesting.
Turn the hive into a guaranteed portal, allow queens to berserk worker
Allow bee larvae to turn into bees by eating honey/jelly

--------------------------------------------------------------------------------
e7a636f9ab | Neil Moore | 2011-10-22 18:59:40 +0100

Rename toll items when loading old troves.
Only the two most recent changes (wands and potions of healing)
are handled.

--------------------------------------------------------------------------------
59bf09bda2 | Chris Campbell | 2011-10-22 18:09:26 +0100

Don't make demonspawn scales start out colourless (fixes #4714)

--------------------------------------------------------------------------------
f3f871e130 | Chris Campbell | 2011-10-22 18:09:26 +0100

Don't display weight toggle on inventory screens, it's shown on the help page 
instead

--------------------------------------------------------------------------------
a602f08fee | David Lawrence Ramsey | 2011-10-22 10:46:49 -0500

Tweak wording.

--------------------------------------------------------------------------------
f1054026ce | David Lawrence Ramsey | 2011-10-22 10:46:22 -0500

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
74761cfa26 | Florian Diebold | 2011-10-22 16:40:06 +0200

Webtiles: Create the user database, if necessary.

--------------------------------------------------------------------------------
25e29a18e8 | Michael Gagno | 2011-10-22 15:51:47 +0200

Make zot use better tiles.
This brings it more in line with console. No more floor_tomb!

--------------------------------------------------------------------------------
aa3fdae304 | Eino Keskitalo | 2011-10-22 10:53:21 +0300

Poison susceptibility for Spider Form.
Doubles the amount of poisoning (duration, and therefore damage) status. No 
extra damage from clouds/Poison Arrow etc. Increases rest-off time (which can 
be tedious), but increasing the duration instead of damage makes it so you 
can't just switch forms after the poisoning and shrug off the vulnerability.

Two sources of rP do not bring you back to positive rP, but one does return you 
to non-negative resistance.

--------------------------------------------------------------------------------
3e690385bd | Adam Borowski | 2011-10-22 09:05:46 +0200

No random teleports into a bazaar with no exit.

--------------------------------------------------------------------------------
9e03913218 | Adam Borowski | 2011-10-22 09:05:46 +0200

Don't lie that disc of storms uses Air Magic skill.
It's Evocations only.

--------------------------------------------------------------------------------
edeed1419c | Neil Moore | 2011-10-22 09:05:46 +0200

Refer to webtiles, not nettiles, in FAQ (#4792).

--------------------------------------------------------------------------------
3398cd200c | Adam Borowski | 2011-10-22 09:05:46 +0200

Rename the file for lemuel_castle.
The new name follows the naming of other big vaults, and also is not as
annoying with tab completion.

--------------------------------------------------------------------------------
a981f6b20f | Brendan Hickey | 2011-10-22 09:59:41 +0300

Simplified poisoning, rP is 90% effective
Author:    Brendan Hickey <brendan@bhickey.net>

How poisoning works in the code is changed: instead of asking if something can 
be poisoned and then poisoning it, you poison something and if it is resistant, 
nothing happens.

Poison Arrow (partially reduces poisoning), chunks, meph and poisonous clouds 
(immunity), and monster resistances are unchanged. Curare gives full effect if 
the player gets poisoned.

Signed-off-by: Eino Keskitalo <eino.keskitalo@gmail.com>

--------------------------------------------------------------------------------
36df285239 | Neil Moore | 2011-10-21 18:37:12 -0400

Fix wand of heal wounds in trove demands.
Also, fix a comment.

--------------------------------------------------------------------------------
17133c5ab4 | Neil Moore | 2011-10-21 18:35:54 -0400

Fix up !healing -> curing in a few comments etc.

--------------------------------------------------------------------------------
3b7b1c7ec8 | Neil Moore | 2011-10-21 18:27:54 -0400

Rename potion of healing to potion of curing.

--------------------------------------------------------------------------------
0970335ba1 | elliptic | 2011-10-21 18:10:39 -0400

Fix tile for wand of heal wounds (|amethyst).

--------------------------------------------------------------------------------
84664f6eb0 | elliptic | 2011-10-21 18:00:28 -0400

Rename "wand of healing" to "wand of heal wounds".
This is the simplest solution to the problem with "wand of healing" acting
like "potion of heal wounds" rather than "potion of healing". Of course these
items can all be renamed later if people actually agree on something, but this
seems like an improvement for now.

--------------------------------------------------------------------------------
e35ea80207 | Raphael Langella | 2011-10-21 23:39:56 +0200

Show the skill bonus in the fsim result.

--------------------------------------------------------------------------------
3a3e31502b | Raphael Langella | 2011-10-21 23:39:56 +0200

Initialize skills after inventory.
So you.can_train is properly initialized. Fix many skills being disabled
on game start when default_manual_training is set.

--------------------------------------------------------------------------------
56ca758a2a | Raphael Langella | 2011-10-21 23:39:55 +0200

Items that can't be easily swapped need to be equipped to allow training.
To allow training, an item need to be either equipped, or easily equipped.
- known to be uncursed
- quick to equip (no armour)
- no effect that suffer from swapping (distortion, vampirism, faith,...)
- slot free or with an item which meets the same conditions

--------------------------------------------------------------------------------
118c306604 | Raphael Langella | 2011-10-21 23:39:55 +0200

Simplify and tweak the checks for training evocations.

--------------------------------------------------------------------------------
ec76ab7924 | Robert Burnham | 2011-10-21 15:01:14 -0500

4 month old local changes...they look good?

--------------------------------------------------------------------------------
68fcc04db6 | Eino Keskitalo | 2011-10-21 21:14:38 +0300

Update staff of poison's description to mention poisoning resistant monsters.

--------------------------------------------------------------------------------
e91f0aa96b | Eino Keskitalo | 2011-10-21 20:19:43 +0300

Make not all clingers web-immune, just spiders.

--------------------------------------------------------------------------------
a96f5a122c | Eino Keskitalo | 2011-10-21 19:54:18 +0300

Fix every substantial web-immune monster "oozing through the web".

--------------------------------------------------------------------------------
2fa2670b70 | David Lawrence Ramsey | 2011-10-21 11:16:50 -0500

Fix USE_TILE #ifdef.

--------------------------------------------------------------------------------
75ae42873a | Adam Borowski | 2011-10-21 18:00:09 +0200

Clear old colour, tile_flv and pgrid when a vault is overwritten.

--------------------------------------------------------------------------------
3f9ab11f28 | Adam Borowski | 2011-10-21 17:56:38 +0200

Fix parsing of Zot traps always failing.
Since the code lowercases the specification, it will _never_ match "Zot".

--------------------------------------------------------------------------------
1d018e3597 | David Lawrence Ramsey | 2011-10-21 09:31:42 -0500

Fix Zot traps' names not being capitalized, and clean up trap code a bit.

--------------------------------------------------------------------------------
ac5abe71e5 | Adam Borowski | 2011-10-21 15:47:47 +0200

Purge Lua's dgn.persist on a new game.
It included stuff like Slime:6 status, etc.

--------------------------------------------------------------------------------
038b95b02c | Adam Borowski | 2011-10-21 14:48:02 +0200

Give penance if a monster suffers from a cloud of miasma or mutation you caused.

--------------------------------------------------------------------------------
8092dc659f | Adam Borowski | 2011-10-21 14:17:36 +0200

Allow Conjure Flame to burn down trees.

--------------------------------------------------------------------------------
317dfc6ac5 | Adam Borowski | 2011-10-21 13:39:59 +0200

Put Denzi's god tiles into UNUSED/ so they won't be lost.

--------------------------------------------------------------------------------
49a51619d8 | Adam Borowski | 2011-10-21 13:08:27 +0200

Fix Ignite Poison not affecting dancing weapons of venom.

--------------------------------------------------------------------------------
dffab05357 | Adam Borowski | 2011-10-21 12:03:04 +0200

Mark Insulation as useless if you have rElec (permanent/temporary).

--------------------------------------------------------------------------------
cb02b2be72 | Michael Gagno | 2011-10-21 11:50:28 +0200

Remove tentacled monstrosities from Slime.
The acid walls can burn them. Slime should only have acid-proof enemies.

--------------------------------------------------------------------------------
7807af5094 | Samuel Bronson | 2011-10-20 22:06:17 -0400

Fix "the hungry kobold corpse x2" (#4534)

--------------------------------------------------------------------------------
b175aec226 | Samuel Bronson | 2011-10-20 17:04:12 -0400

Make clear_overview() clear the automatic unique annotations (#4654).

--------------------------------------------------------------------------------
9b6c8f7f4d | Eino Keskitalo | 2011-10-20 23:04:01 +0300

Adjust strange machine description (Cryptic, #2137).

--------------------------------------------------------------------------------
686fcaddb7 | Chris Campbell | 2011-10-20 18:29:40 +0100

Adjust the Slouch message (Cryptic)

--------------------------------------------------------------------------------
76385f8d05 | Raphael Langella | 2011-10-20 18:54:30 +0200

Fix a crash in defense simulation.

--------------------------------------------------------------------------------
acee67d930 | Raphael Langella | 2011-10-20 18:54:30 +0200

Trigger the fleeing check when monster takes damage from any source.
Not just physical attacks.

--------------------------------------------------------------------------------
67448c984a | evilmike | 2011-10-20 18:54:29 +0200

Randomize triggering fleeing at low HP.
Monsters get a random chance of fleeing at low HP, rather than a guaranteed
chance whenever HP is less than 25%. This means that fleeing is less predictable
and occurs at lower HP levels.

The formula may be worth adjusting still. Particularly the 20 in there. I think
that 20 is a good start, but also the highest it should go. 10 would be the
lowest, I think.

This also makes it so fleeing is triggered when a monster is hit, and not just
whenever its HP is low. This includes being hit for 0 damage. This is done to
make it so a monster won't just randomly start fleeing... you have to at least
do something hostile to it first.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
2f5a182ce5 | Eino Keskitalo | 2011-10-20 16:55:28 +0300

Take no_rotate from geh_setup and put it manually in the geh maps. This in 
preparation of evilmike's new upcoming Gehenna map.

--------------------------------------------------------------------------------
78171356f7 | Eino Keskitalo | 2011-10-20 16:54:07 +0300

Two small changelog fixes.

--------------------------------------------------------------------------------
ee301f56af | Raphael Langella | 2011-10-20 07:27:45 +0200

Fix evokable items not training evocations.

--------------------------------------------------------------------------------
c6d9283277 | Raphael Langella | 2011-10-20 07:27:44 +0200

Fix a minor bug with mastered skill (Fyren).
Disable it as soon as it gets enough skill points for L27, don't wait for
actual level up.

--------------------------------------------------------------------------------
150e42009a | elliptic | 2011-10-19 21:57:29 -0400

More ring of slaying tweaks.
Increased size of slaying rings a little bit more to be more in line with the
changes to randart slaying, and lowered their price a little more as well.

--------------------------------------------------------------------------------
256219a570 | Adam Borowski | 2011-10-20 00:05:13 +0200

Adjust randart slaying: 1..4 -> 2..6.
Doesn't compensate fully for the halved effectiveness.

--------------------------------------------------------------------------------
f360ec647e | David Ploog | 2011-10-20 00:00:16 +0200

Fix error in changelog (galefury).

--------------------------------------------------------------------------------
4dd451cfb9 | Adam Borowski | 2011-10-19 23:34:25 +0200

Remove an unused #define.
Having it might mislead someone into thinking there's a limit on concurrent
enchantments on a monster.  There is no more.

--------------------------------------------------------------------------------
fb340e9378 | Adam Borowski | 2011-10-19 23:34:25 +0200

Fix tiles compilation.

--------------------------------------------------------------------------------
fe814731d1 | Florian Diebold | 2011-10-19 23:32:20 +0200

A tiny changelog reformulation.

--------------------------------------------------------------------------------
99bbdd5859 | Florian Diebold | 2011-10-19 23:28:53 +0200

A bit of cleanup in the Webtiles server.

--------------------------------------------------------------------------------
94416f7f1b | Florian Diebold | 2011-10-19 23:28:52 +0200

Update a few comments.

--------------------------------------------------------------------------------
0ae96474a8 | David Ploog | 2011-10-19 21:47:33 +0200

Update changelog, up to 9f9c7fa0de6d822a4e957f883d5b232d6f61a8b7

--------------------------------------------------------------------------------
9f9c7fa0de | Chris Campbell | 2011-10-19 20:21:27 +0100

Don't make Xom amused by polymorphs happening out of sight

--------------------------------------------------------------------------------
b5e2fb4718 | elliptic | 2011-10-19 14:37:25 -0400

Fix an error in the changelog (minmay).

--------------------------------------------------------------------------------
8460267cb0 | elliptic | 2011-10-19 11:57:41 -0400

Fiend -> Brimstone Fiend.

--------------------------------------------------------------------------------
f692c13b4d | Chris Campbell | 2011-10-19 15:00:43 +0100

Don't prompt to add Ziggurats to the shopping list when they enter LOS
It tends to just confuse players, and they show up on the ^O overview
screen anyway (and can even be manually added to the shopping list if
desired).

I just excluded Ziggurats from the check so that the function can be
re-used for other tolled portals (which might be less dangerous and
expensive, which is what makes it somewhat inappropriate for Zigs), if
such things ever come into existence. Maybe it'd be better to just
remove that part of the check completely, though?

--------------------------------------------------------------------------------
7a52707dc4 | Chris Campbell | 2011-10-19 14:32:54 +0100

Make Refrigeration and Shatter violate Sanctuary

--------------------------------------------------------------------------------
a98d9d6f10 | David Lawrence Ramsey | 2011-10-19 08:23:37 -0500

Properly change Makhleb's "gain power" message to "gain health".

--------------------------------------------------------------------------------
bb331cc95b | Adam Borowski | 2011-10-19 14:40:58 +0200

A nasty hack to delete outdated (and likely invalid!) .d files.  FIXME!
Since bdabd553 they are not rebuilt which leads to build failures whenever
the compilation mode changes.

This commit will at least let CDO builds through (they worked before because
of a different issue forced semi-manual cleans), and let people rebuild Crawl
for a different target without deleting .d manually.

Needs to be redone in a sane way, badly.  If all else fails, reverting
bdabd553 might be better.

--------------------------------------------------------------------------------
5eb263c098 | Adam Borowski | 2011-10-19 13:49:06 +0200

Partially revert "Nerf TSO's and Makhleb's HP and MP on kills."
Guess which part, given that the rationale no longer applies.

It's now:
Vehumet: good MP
TSO:     some HP, some MP
Makhleb: good HP

Of course, Vehumet needs to die like a halfling, but until then, this will do.

--------------------------------------------------------------------------------
bf697eba8e | Chris Campbell | 2011-10-19 12:27:47 +0100

Make Makhleb's invocations cost hp instead of mp, remove his mp-on-kills
This better differentiates Makhleb from Vehumet (where mp-for-kills
fits a lot better), as well as slightly reducing his overwhelming
strength in the late game (where the combination of both hp and mp on
kills with no conducts or restrictions makes him absurdly powerful for
any character). It also strengthens Makhleb's recent flavour adjustments
of favouring bloodshed and suffering - he even requires the blood of
his own worshippers.

There were some worries that it would make Makhleb unappealing to pure
casters, but I think the fact that they'd still have Makhleb's very
powerful invocations available (and could use them without depleting
their mp pool for spellcasting!) makes it at least worth testing.

--------------------------------------------------------------------------------
8aeb95811b | Adam Borowski | 2011-10-19 12:46:18 +0200

Allow redefining base stats on weapon fixedarts.
Used on the captain's cutlass (not sure about balance) and the autumn katana
(here at least there are no doubts, it's supposed to be same as the removed
base weapon).

--------------------------------------------------------------------------------
35ee368cda | Adam Borowski | 2011-10-19 12:06:00 +0200

Replace a no longer valid comment.

--------------------------------------------------------------------------------
c2a5de1c21 | Adam Borowski | 2011-10-19 11:51:30 +0200

Explain that needles of frenzy don't cause regular berserk.

--------------------------------------------------------------------------------
837cfcfcb4 | Adam Borowski | 2011-10-19 09:59:27 +0200

Adjust slaying on unrandarts.
They're all changed less than proportionally, so it's still an overall nerf
(or a boost, for negative ones).

For weapons, I converted the +DAM on cutlass to mere enchantment, but left
it on the katana, to stress that it's not just a form of a long sword.

--------------------------------------------------------------------------------
65724bed13 | elliptic | 2011-10-18 23:53:10 -0400

Add 'r' key in targeting mode to move cursor to you.
The command was already coded, so this is just a matter of linking a key to
it. (This is a useful thing to have for stuff like improving autofight.)

--------------------------------------------------------------------------------
99622cc6e4 | elliptic | 2011-10-18 20:00:24 -0400

Make staff acquirement less deterministic.
This provided too easy a way for casters to get the staff of their dreams
(the chance was 95% to get a staff of fire if you weren't carrying one and
fire was your top skill, for instance). Now some of that probability is
moved into the non-enhancer staves.

--------------------------------------------------------------------------------
497e55b9a3 | Adam Borowski | 2011-10-19 01:09:52 +0200

Disable Ashenzari in ZotDef.
What with Zin?

--------------------------------------------------------------------------------
d8b9923fd9 | Adam Borowski | 2011-10-19 01:09:07 +0200

Exempt plans and non-livings from the "friend died" conduct.
They're items not real allies.  Only Fedhas cares about them.

Willfully attacking one of these yourself is still bad, but you're not
blamed if they died to hostiles.

This hardly makes any difference in regular games -- the only such allies
you can get outside of Shadow Creatures are dancing weapons which were
already exempted; but makes the gods playable in ZotDef.

Special-casing ZotDef could be an option, but this way is simpler.

--------------------------------------------------------------------------------
3fee93036d | David Lawrence Ramsey | 2011-10-18 17:40:09 -0500

Add whitespace fixes.

--------------------------------------------------------------------------------
188d52081c | Raphael Langella | 2011-10-19 00:23:35 +0200

Allow boots of levitation and cloak of darkness to train evocations (#4743).
Like artefact armour, only when worn. Also, removes a duplicate function.

--------------------------------------------------------------------------------
ef77745c5b | Raphael Langella | 2011-10-19 00:03:53 +0200

Items need to be known uncursed or equipped to allow training.
You can still train by carrying an uncursed weapon of distortion or
vampirism. It's probably too rare to be worth the added complexity.

--------------------------------------------------------------------------------
d8668e824b | Raphael Langella | 2011-10-19 00:03:53 +0200

Evokable armour need to be worn to allow training, not just carried.

--------------------------------------------------------------------------------
18815d1a86 | elliptic | 2011-10-18 17:43:33 -0400

Cap melee noise at shouting volume.
It didn't make much sense that you could make as much noise as Shatter just by
hitting a monster really hard.

--------------------------------------------------------------------------------
278b17897d | elliptic | 2011-10-18 16:50:04 -0400

Decrease the price of slaying rings slightly.

--------------------------------------------------------------------------------
7c1860ec20 | elliptic | 2011-10-18 16:44:57 -0400

Make slaying rings a bit less likely to be tiny.

--------------------------------------------------------------------------------
eb71eb6f77 | elliptic | 2011-10-18 16:11:14 -0400

Make slaying work like extra weapon enchantment.
Now a +0 scimitar with +5,+5 ring of slaying should be equivalent to a +5
scimitar, for instance. Previously it was more like a +5,+8 or +5,+10 scimitar
depending on how high your Long Blades and Fighting skills were.

--------------------------------------------------------------------------------
d265bd3ba3 | elliptic | 2011-10-18 15:37:22 -0400

Trove price tweaks.
Weapon/armour troves were a bit too common.

--------------------------------------------------------------------------------
b928ad4e48 | Adam Borowski | 2011-10-18 21:02:33 +0200

Abort passwall when you get banished.

--------------------------------------------------------------------------------
4d5c11a304 | Adam Borowski | 2011-10-18 20:52:46 +0200

Rename dragon armour to "fire dragon armour".  Just the item, not monster.
There's a lot of confusion among players who mistake other dragon armours
for it.  On the other hand, no variant like "common dragon", "fire dragon",
etc sounds good, "red dragon" would be D&Dism[1] and would require redoing
tiles and being contrary to pre-D&D stories, etc.  Like every single
medieval legend has dragons breathing fire and nothing else[2], thus
"dragon" without an adjective is damn clear what it means -- kind like
"chair" vs "electric chair".  Also, "The fire dragon breathes fire at you."
sounds awfully redundant.

Thus, after several long IRC discussions, let's try this way.

[1]. Draconians are a pure Dragonlance/Krynn D&Dism, but so far we have all
draconians color-coded and no dragon use colour names, let's keep that.
[2]. Some related creatures breathe poison.  Nothing before D&D does cold,
electricity, acid, etc.

--------------------------------------------------------------------------------
4cdb34961e | David Lawrence Ramsey | 2011-10-18 13:31:13 -0500

Add more capitalization fixes: lorocyproca, Fiend, Ice Fiend.
The latter two are capitalized in the source, so they're made that way
in their descriptions.

--------------------------------------------------------------------------------
d4ca0d3efa | David Lawrence Ramsey | 2011-10-18 13:17:25 -0500

Give non-Fiend Fiend types their own genuses.
This matches other demon types, and there are no genus checks for it.

--------------------------------------------------------------------------------
d18c94d2ea | David Lawrence Ramsey | 2011-10-18 13:12:31 -0500

Give non-crimson imp types their own genuses.
This matches other demon types, and fixes a problem introduced by the
crimson imp rename in the simplest way (with a crimson imp genus, a
group of various imps would be described as crimson imps; giving imps
their own genus would probably require doing the same for devils, etc.
eventually).  There was only one genus check for it, anyway.

--------------------------------------------------------------------------------
946e164b18 | David Lawrence Ramsey | 2011-10-18 13:12:15 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
d5f1e4c2b8 | David Lawrence Ramsey | 2011-10-18 13:08:00 -0500

Give iron imps the crimson imp genus, to match the other imps.

--------------------------------------------------------------------------------
9b4c3e0bed | David Lawrence Ramsey | 2011-10-18 12:59:05 -0500

Remove unneeded blank lines.

--------------------------------------------------------------------------------
13d39643e8 | David Lawrence Ramsey | 2011-10-18 12:59:05 -0500

Fix missing instance of imp -> crimson imp in monster speech.

--------------------------------------------------------------------------------
6dc2f7b687 | Florian Diebold | 2011-10-18 19:51:59 +0200

Fix the skill menu for an experience card not showing up in Tiles.
The (preliminary) skill training caused the title to be redrawn, which
in turn made tiles switch to the normal layer (away from the
menu). Redrawing of the title is now deferred to print_stats.

This might fix #4755, but I couldn't reproduce the bug even
before the fix.

--------------------------------------------------------------------------------
4f57fd2c0a | Florian Diebold | 2011-10-18 19:51:59 +0200

Webtiles: Use a proper JS module loader (part I).
This has several advantages:
- The client javascript can be loaded asynchronously, so we don't
  block the browser when the game is started.
- Dependencies are more clear, and the global namespace is less
  polluted.
- It paves the way for minifying all scripts into one file.

In this commit, only the non-game-specific scripts are modularized.

This commit also starts to convert the server->client protocol to pure
JSON (again, only for non-game-specific messages).

--------------------------------------------------------------------------------
03212e8790 | David Lawrence Ramsey | 2011-10-18 12:42:49 -0500

Put crimson imps in alphabetical order again.

--------------------------------------------------------------------------------
b9aaf6b63f | David Lawrence Ramsey | 2011-10-18 12:42:17 -0500

Fix capitalization of cacodemon.

--------------------------------------------------------------------------------
ff1c35966c | Chris Campbell | 2011-10-18 18:09:33 +0100

Fix unwielding taking more time than it should

--------------------------------------------------------------------------------
43440dfe3f | Chris Campbell | 2011-10-18 17:50:28 +0100

Rename imps to crimson imps

--------------------------------------------------------------------------------
18dee5e171 | Chris Campbell | 2011-10-18 17:50:27 +0100

Add no_rtele_into to lots of sealed item vaults to prevent players getting 
trapped in them
Controlled teleports will still work, since they'll probably be
deliberate attempts to get the loot (and with a means of getting back
out again, hopefully!).

--------------------------------------------------------------------------------
8e0af155f7 | Chris Campbell | 2011-10-18 17:50:26 +0100

Add a couple of escape hatches to quadcrypt_mu to prevent players getting stuck

--------------------------------------------------------------------------------
4106f820f0 | Adam Borowski | 2011-10-18 17:52:29 +0200

Make Troves ask for steam dragon armour rather than crystal plates (elliptic).
The latter is a random find, you can make the former yourself.

--------------------------------------------------------------------------------
360abbfceb | Adam Borowski | 2011-10-18 16:17:59 +0200

Fix ZotDef loot not spawning.

--------------------------------------------------------------------------------
bd996869b1 | Adam Borowski | 2011-10-18 15:01:51 +0200

Make ZotDef map selection actually work.
In testing, the old random code matched what I chose in 3 out of 3 tries.
I sense a conspiracy...

--------------------------------------------------------------------------------
e82961dcbd | Adam Borowski | 2011-10-18 14:50:36 +0200

Revert "Revert no ZotDef hunger for non-Sp."
Only vampires retain hunger since they may want to choose regen vs rPois.

I did not handle food costs display yet, since it's not sure if this is the
best way.

This reverts commit d39bda75610f819afe01494d1e448c0621da8a22.

--------------------------------------------------------------------------------
1917670cb8 | Adam Borowski | 2011-10-18 14:48:37 +0200

Reduce the width of the second battle area in ZotDef: Battle Heart.

--------------------------------------------------------------------------------
13e588cc67 | Adam Borowski | 2011-10-18 14:47:07 +0200

Allow players to choose a map in ZotDef.

--------------------------------------------------------------------------------
fdba289e8b | Adam Borowski | 2011-10-18 13:55:22 +0200

Fix an infinite loop on monster Animate Dead tracer.

--------------------------------------------------------------------------------
d5be439574 | Adam Borowski | 2011-10-18 13:52:54 +0200

Fix a compiler warning.

--------------------------------------------------------------------------------
1817cec4d0 | Adam Borowski | 2011-10-18 12:22:39 +0200

Fix Animate Dead ignoring any corpses on a spot after the first.
You can conserve mana by unstacking the corpses, so it's merely an interface
screw.  Corpses will still fail to animate if they can't be raised within
radius 2, this is okayish -- having to unstack/cast again at such a big pile
is probably better than teleporting zombies far.

--------------------------------------------------------------------------------
30587686bc | Samuel Bronson | 2011-10-17 22:43:24 -0400

Merge branch 'map-menu-cleanup' (#4766)

--------------------------------------------------------------------------------
cda958f6a7 | Samuel Bronson | 2011-10-17 22:37:36 -0400

Replace {get,set,}_{sprint,tutorial}_map() with crawl_state.map.

--------------------------------------------------------------------------------
e674e4c3bc | Adam Borowski | 2011-10-18 01:55:45 +0200

Don't ask for plain dragon armour in Troves.
They can be confusing for players, especially in the case of Dragon King.

Instead, the chance goes to mottled dragon and crystal plates.

--------------------------------------------------------------------------------
92ca7ecf57 | Raphael Langella | 2011-10-17 23:28:44 +0200

Allow training of evocations when an evokable jewellery is identified (#4767).

--------------------------------------------------------------------------------
5d73bfa39c | Samuel Bronson | 2011-10-17 17:17:37 -0400

Get rid of get_sprint_maps() and get_tutorial_maps().
Since the tag for each gametype is now just the name of that gametype,
_choose_gamemode_map() can just look the maps up itself.

--------------------------------------------------------------------------------
1d240c20e9 | Raphael Langella | 2011-10-17 22:42:49 +0200

Don't blame troglodytes for learning a bit of spellcasting with scrolls.

--------------------------------------------------------------------------------
840a5e6654 | Samuel Bronson | 2011-10-17 14:47:00 -0400

Rename "tutorial_start" tag to "tutorial" (the gametype name).

--------------------------------------------------------------------------------
843a8e1456 | David Lawrence Ramsey | 2011-10-17 11:02:16 -0500

Typo fix.

--------------------------------------------------------------------------------
20e8364df4 | Adam Borowski | 2011-10-17 16:03:23 +0200

Boost the AC of lightning spires.
They're literally a piece of steel and wood (based on the tile).

Really though, it's about them being not the best ZotDef turrets even
when they were electric eels -- people used them mostly for water.

--------------------------------------------------------------------------------
d13709659b | Adam Borowski | 2011-10-17 15:43:27 +0200

Nausea instead of sickness for contaminated chunks (dpeg).
Can't eat instead of no regen.

While the problem to fix (sickness being something you just rest off) is
real, I have some doubts about this.  First, these two effects are damn
similar, confusing players.  Second, the game assumes in many places that
being at Starving is an immediate emergency that waiting can never help
with.

So I'm letting it sit until we think about design some more.

--------------------------------------------------------------------------------
5a8d141a00 | Adam Borowski | 2011-10-17 14:54:05 +0200

Attack ally prompts for Refrigeration, Shatter and Slouch.

--------------------------------------------------------------------------------
bf3d37e965 | Adam Borowski | 2011-10-17 13:06:46 +0200

Warn the player if Slouch would hit no one.

--------------------------------------------------------------------------------
dc18acb09c | David Lawrence Ramsey | 2011-10-16 23:03:20 -0500

Add formatting fix.

--------------------------------------------------------------------------------
89de59a66c | David Lawrence Ramsey | 2011-10-16 22:27:56 -0500

Properly handle Yred's placeholder abilities wrt Invocations training.

--------------------------------------------------------------------------------
73ffefda7e | Samuel Bronson | 2011-10-16 22:49:53 -0400

Zotdef: Name the "good" map, for use in a possible map-selection menu
It seems that we'll need at least another good map before it will be worth
bothering to add a menu, but we might as well name this one anyway.

--------------------------------------------------------------------------------
635623522a | Florian Diebold | 2011-10-17 02:35:30 +0200

Webtiles: Get rid of the last non-JSON client->server message.
We still have to keep a bit of code for handling non-JSON messages in
the server for compatibility with 0.9, though :(

--------------------------------------------------------------------------------
542e0392d3 | David Lawrence Ramsey | 2011-10-16 19:06:27 -0500

Give lightning spires the same low EV as curse skulls, since they're immobile.

--------------------------------------------------------------------------------
eaf46629f1 | David Lawrence Ramsey | 2011-10-16 18:51:35 -0500

Make zotdef_create_altar() properly filter out unavailable gods.

--------------------------------------------------------------------------------
884e849f2a | David Lawrence Ramsey | 2011-10-16 18:44:36 -0500

Add formatting fix.

--------------------------------------------------------------------------------
875206980a | Samuel Bronson | 2011-10-16 19:26:27 -0400

Update an #else comment.

--------------------------------------------------------------------------------
4c020e17ac | Samuel Bronson | 2011-10-16 19:25:49 -0400

Zotdef: Disable training of Stealth and T&D by default.

--------------------------------------------------------------------------------
eedcb7b427 | Florian Diebold | 2011-10-17 01:19:42 +0200

Webtiles: Fix the player counting as a spectator in the count.

--------------------------------------------------------------------------------
ca5e20ff4a | Raphael Langella | 2011-10-17 01:03:47 +0200

Don't close open door mimics (#4762).

--------------------------------------------------------------------------------
57a5553506 | Florian Diebold | 2011-10-17 00:54:54 +0200

JSONify the Webtiles client-server protocol.

--------------------------------------------------------------------------------
642a6a636c | Florian Diebold | 2011-10-16 23:51:19 +0200

Fix the static file generation for Webtiles in the makefile.

--------------------------------------------------------------------------------
34b472649b | Chris Campbell | 2011-10-16 19:30:00 +0100

Give Mnoleg Malign Gateway
Unfortunately he can't really cast it in his original vault, but there's
room in both mnoleg_st and in evilmike's new vault currently on Mantis.
It'll at least be a fun surprise when he gets to use it in those vaults!

--------------------------------------------------------------------------------
f14abfc005 | Chris Campbell | 2011-10-16 19:29:57 +0100

Remove Animate Dead from Nessos

--------------------------------------------------------------------------------
2038225580 | Chris Campbell | 2011-10-16 19:29:54 +0100

Adjust a lot of emergency spells
Removed Teleport Self in a lot of cases (especially &s where it's just
a huge annoyance to hunt them down - Maurice and various other
appropriate monsters still keep it of course), removed Summon Demon
from some of the 1s (they very rarely cast it in the past but in the
most part it'd be less useful than everything else they have), and
changed various others.

--------------------------------------------------------------------------------
80109d8837 | Chris Campbell | 2011-10-16 19:29:51 +0100

Don't let monsters cast Regen while under DDoor

--------------------------------------------------------------------------------
3d2659eb49 | Chris Campbell | 2011-10-16 19:29:48 +0100

Allow monsters to cast their emergency spells at a higher HP threshold, but 
have them choose it a bit less often

--------------------------------------------------------------------------------
5caa1a9db4 | David Lawrence Ramsey | 2011-10-16 12:17:29 -0500

Fix indentation.

--------------------------------------------------------------------------------
a045af5444 | Chris Campbell | 2011-10-16 17:55:06 +0100

Wild magic mutation: each level decreases spell success but increases spellpower
Numbers might well need tweaking (but since it's intended to be
double-edged it doesn't need to be too finely balanced so long as both
the penalty and bonus are noticeable most of the time).

--------------------------------------------------------------------------------
cede1ecd76 | Chris Campbell | 2011-10-16 17:54:50 +0100

Remove the unused teleport-at-will and throw frost/flame mutations and their 
abilities

--------------------------------------------------------------------------------
67b72ca73f | Florian Diebold | 2011-10-16 17:05:17 +0200

Show the targeting cursor in Webtiles.

--------------------------------------------------------------------------------
d264d1f036 | Florian Diebold | 2011-10-16 17:05:16 +0200

Fix the targeting beam not showing up in Tiles (#4754).

--------------------------------------------------------------------------------
0e360740f1 | David Lawrence Ramsey | 2011-10-16 10:03:22 -0500

Remove a gender reference from the deep elf blademaster description.
It's a bit awkward using "itself", but draconian shifters do that too.

--------------------------------------------------------------------------------
2db17388c3 | Adam Borowski | 2011-10-16 13:06:00 +0200

Add weapon attachment for 4/5 of tiles added in c20d067c.
The remaining one, Hellbinder, has a staff in the tile even though he always
uses a demon blade in the game.

--------------------------------------------------------------------------------
5222aba200 | Adam Borowski | 2011-10-16 12:30:29 +0200

Update the "feat_test" vault.

--------------------------------------------------------------------------------
bdc6d141ef | Adam Borowski | 2011-10-16 12:24:07 +0200

Don't split the "greet" spam.
The second command almost always gets executed after another job writes
something to the screen.

--------------------------------------------------------------------------------
4f2d919c9f | David Lawrence Ramsey | 2011-10-15 22:43:44 -0500

Typo fixes.

--------------------------------------------------------------------------------
f57b7455b5 | Samuel Bronson | 2011-10-15 23:16:25 -0400

Fix intermittent crash in -test.

--------------------------------------------------------------------------------
c20d067cc0 | Mu | 2011-10-16 02:57:04 +0100

Some new tiles for various customised enemies
Mantis 4723

Hellbinder tile by coolio
Cloud Mage, ancient champion, master elementalist
and deep elf elementalist tiles by Varsovie

Also give the elementalists their description

--------------------------------------------------------------------------------
36ed67b731 | Eino Keskitalo | 2011-10-16 01:42:04 +0300

Auto-id rings of fire and ice on equip.
Like with wizardry, they don't id when they're a the base type of an artifact 
ring (but should). Also, wearing both could well give a message about 
cancelling each other out.

--------------------------------------------------------------------------------
9276c24ff7 | Florian Diebold | 2011-10-15 23:20:04 +0200

Webtiles: Fix idle time.

--------------------------------------------------------------------------------
e225b67883 | Florian Diebold | 2011-10-15 23:20:04 +0200

Make the Webtiles server able to handle older game versions (i.e. 0.9) again.

--------------------------------------------------------------------------------
19ca16943b | Florian Diebold | 2011-10-15 23:20:04 +0200

More Webtiles server refactoring.
The game-specific static files and templates can now be placed
anywhere, instead of a subfolder of static_path resp. template_path.

--------------------------------------------------------------------------------
5b3ccb01e8 | Florian Diebold | 2011-10-15 23:20:04 +0200

Webtiles: Restore the non-DGL mode.

--------------------------------------------------------------------------------
1bba1ddf12 | Florian Diebold | 2011-10-15 23:20:03 +0200

Webtiles: Restore the logging of Crawl's stderr output.

--------------------------------------------------------------------------------
4dc3d12ef2 | Florian Diebold | 2011-10-15 23:20:03 +0200

Webtiles: Write an ID header in the ttyrecs similarly to DGL.

--------------------------------------------------------------------------------
50c127e8ad | Florian Diebold | 2011-10-15 23:18:00 +0200

Make Webtiles output happen in parallel to the console display, and make the 
server record ttyrecs.
Crawl compiled with WEBTILES=y should now be playable
normally (i.e. indistinguishable from one compiled without WEBTILES)
when run from a terminal. (This is not yet completely the case.)

The Webtiles data is written on a Unix-domain datagram socket; the
Crawl parameter -webtiles-socket determines a path on which the Crawl
process receives control messages.

The Webtiles server then runs Crawl in a pseudo-terminal and records its
console output into a ttyrec file.

The goal of all this is of course to be able to watch Webtiles games
from ssh, and later the reverse.

--------------------------------------------------------------------------------
cde49cf01e | Eino Keskitalo | 2011-10-15 21:29:45 +0300

Remove a trap from evilmike_marble_ring that's not supposed to be there 
(evilmike).

--------------------------------------------------------------------------------
5ddc895366 | Samuel Bronson | 2011-10-15 14:04:50 -0400

Add a tip for Windows users with separate MSYS and git installs.

--------------------------------------------------------------------------------
fd48d52761 | Samuel Bronson | 2011-10-15 14:01:15 -0400

Remind people (me, anyway) to consult INSTALL.txt about build errors.
I would prefer to only issue a message on build failures, or *after*
building, but Make does not appear to provide any mechanism allowing this.

--------------------------------------------------------------------------------
0aa42fa656 | David Lawrence Ramsey | 2011-10-15 12:23:43 -0500

Fix Mantis 4732.
The fix is minimal; it only applies to melee weapons of returning for now.

As for why, missiles can get the returning brand too, but they mulch
where melee weapons don't, and other code assumes that monsters can get
multiple missiles of returning (e.g. Chuck's large rocks, of which he
gets two).  This can, of course, be changed, but the main problem is
fixed.

--------------------------------------------------------------------------------
46457efa10 | Adam Borowski | 2011-10-15 13:49:48 +0200

Allow maxxed players to exit the skills screen.

--------------------------------------------------------------------------------
6a565d312e | Adam Borowski | 2011-10-15 13:47:58 +0200

Don't set useless skills on &A

--------------------------------------------------------------------------------
bbf11a8b9b | Adam Borowski | 2011-10-15 09:17:48 +0200

"make LTO=y" as a shorthand to enable link time optimizations.
They give a drastic speed-up: around 25%.

The old way: CFOPTIMIZE="-O2 -flto=jobserver" meant at least I consistently
forgot to add -fwhole-program which makes things a bit better.

--------------------------------------------------------------------------------
3d597c8bed | David Lawrence Ramsey | 2011-10-14 23:59:07 -0500

Add whitespace fixes.

--------------------------------------------------------------------------------
7959c50280 | Samuel Bronson | 2011-10-14 15:26:52 -0400

tilegen: MSVCRT's tmpfile() is broken; use our own instead.

--------------------------------------------------------------------------------
ccf3b0ce4f | unknown | 2011-10-14 21:06:57 +0200

Merge branch 'master' of ssh://gitorious.org/crawl/crawl

--------------------------------------------------------------------------------
59dd711819 | Samuel Bronson | 2011-10-14 11:33:43 -0400

Make "enchant weapon" uncurse even after successful enchantment (#4741).

--------------------------------------------------------------------------------
71db0c87f6 | Chris Campbell | 2011-10-14 01:00:06 +0100

Add a message when you decline to pick up the last item in a stack

--------------------------------------------------------------------------------
db317b7b52 | unknown | 2011-10-13 23:53:16 +0200

Fix inverted colours for boost/penalty in the skill screen.

--------------------------------------------------------------------------------
81df4ca704 | Eino Keskitalo | 2011-10-13 22:06:21 +0300

Describe bears as getting angry when afraid, not when provoked (addressess 
#4728).
Also do this for all 'U' glyph monsters, rather than adding the same text for 
each type of bear.

--------------------------------------------------------------------------------
4978cf7bb5 | David Lawrence Ramsey | 2011-10-13 13:34:53 -0500

Add another tentacle spike mutation-related fix.
As with other species-dependent mutations, its rarity is now zero, but
adjusted to a non-zero value for the proper species.

--------------------------------------------------------------------------------
44a6415ec0 | David Lawrence Ramsey | 2011-10-13 13:34:53 -0500

Resort the tentacle spike mutation on next major version bump.

--------------------------------------------------------------------------------
ff2e350639 | Samuel Bronson | 2011-10-13 14:24:23 -0400

Add DEBUG=y support to rltiles/Makefile.

--------------------------------------------------------------------------------
e668a4518a | Samuel Bronson | 2011-10-13 14:17:51 -0400

Do the "CFLAGS difference check" dance for rltiles/tool/tilegen, too.
It seems like this was the only Makefile in the whole tree that didn't
check for changes in CFLAGS between runs.

--------------------------------------------------------------------------------
486039d386 | David Lawrence Ramsey | 2011-10-13 12:42:52 -0500

Let gnolls level up into gnoll sergeants.

--------------------------------------------------------------------------------
991445aa3f | David Lawrence Ramsey | 2011-10-13 11:51:35 -0500

Attempt to fix Mantis 4666.
Manually remove invisibility from the monster before turning it into a
spectral thing, as we currently also do with a monster before
polymorphing it.

--------------------------------------------------------------------------------
ddaaf604b0 | David Lawrence Ramsey | 2011-10-12 22:00:44 -0500

Remove unneeded space.

--------------------------------------------------------------------------------
77e7321c06 | Adam Borowski | 2011-10-13 02:21:32 +0200

Fix a build failure when libutil.h is included from the global header.

--------------------------------------------------------------------------------
29bdbe965a | Adam Borowski | 2011-10-13 01:24:52 +0200

Don't overwrite saves if the name is chosen after combo.

--------------------------------------------------------------------------------
aa4f9b84b8 | Adam Borowski | 2011-10-13 00:14:49 +0200

Don't embed missiles in secret doors (neil).

--------------------------------------------------------------------------------
3aeea6550b | Adam Borowski | 2011-10-12 23:53:42 +0200

Guardian spirit: take proportionally from HP and MP rather than MP first.

--------------------------------------------------------------------------------
5ef6204377 | Samuel Bronson | 2011-10-12 17:49:49 -0400

Fix EW on missiles (#4731) and staves, and make it update the status area.
Thanks to Fyren for his patch; I may only have taken three lines from it,
but that is probably mostly because I hadn't seen it until I thought mine
was ready.

--------------------------------------------------------------------------------
08f4d04f92 | Adam Borowski | 2011-10-12 12:40:21 +0200

Fix description of Hunger- artefacts (neil).

--------------------------------------------------------------------------------
99e040bec7 | Adam Borowski | 2011-10-12 12:31:33 +0200

De-tab and reindent.
I see someone had a non-standard tab width.  Tabs cause two problems:
1. some editors have heathen ideas about tab length, making text that mixes
   tabs and spaces inconsistent
2. you get inconsistent results when the text is prefixed, for example in diffs

--------------------------------------------------------------------------------
f1b51a9e8c | Adam Borowski | 2011-10-12 12:21:34 +0200

Don't give Tmut wanderers a pure Earth spell.

--------------------------------------------------------------------------------
a7ca20b905 | Adam Borowski | 2011-10-12 11:47:28 +0200

Regenerate the prebuilt yaccage.
In a separate commit to separate the generated noise from actual changes.
Usual gripe about having generated files under version control applies, but
it'd be tricky to have executables in contribs so we still keep the prebuilt
copies.

--------------------------------------------------------------------------------
7528ae825b | Adam Borowski | 2011-10-12 11:47:27 +0200

Put AppHdr.h in yacc sources to the front, to make PCH happy.

--------------------------------------------------------------------------------
c6be924f10 | Samuel Bronson | 2011-10-11 22:59:51 -0400

Zotdef maps: add a comment about why zotvault5 is disabled

--------------------------------------------------------------------------------
086fe3ab7e | Samuel Bronson | 2011-10-11 19:18:00 -0400

Zotdef: Fix bazaar "failed to pathfind" crash.
We shouldn't expect the player to always be reachable by monsters except
if the player is on the ZotDef map itself, so we mustn't crash about this
unless the player is actually in a dungeon-type level...

--------------------------------------------------------------------------------
eec18fcf58 | Samuel Bronson | 2011-10-11 16:20:34 -0400

Zotdef levels: Move more shared stuff into zotdef_setup()

--------------------------------------------------------------------------------
001e474916 | Samuel Bronson | 2011-10-11 13:38:45 -0400

Wizard-mode teleport needn't worry so much about not killing the player.
Instead of sending you someplace random because of the smallest danger at
the target cell, it will now give an error message, but only when the
target cell is occupied or solid: death is no big deal for wizards.

--------------------------------------------------------------------------------
b428cde9e2 | Samuel Bronson | 2011-10-11 13:22:05 -0400

Zotdef: Factor the fog_machine stuff into zotdef_setup().
Also update the comment on one of the levels.

--------------------------------------------------------------------------------
a6754299f0 | Chris Campbell | 2011-10-11 17:07:18 +0100

Make Murray more common in vestibule_of_hell_mu
He's now a one in 4 chance in both vestibules.

--------------------------------------------------------------------------------
499d212c39 | Adam Borowski | 2011-10-11 14:50:28 +0200

A new pizza chain.  No, not Dominium, something better (and maybe edible).

--------------------------------------------------------------------------------
46e25b307e | Adam Borowski | 2011-10-11 14:36:47 +0200

Fix food colouring sometimes showing chunks as useless.

--------------------------------------------------------------------------------
736aec211b | Adam Borowski | 2011-10-11 14:04:37 +0200

Instead of no nutrition 1/3 of time, 100% the rest, always give 2/3.
Unlike the food reform, this doesn't conflate carnivorousness and saprovore:
only the latter helps you avoid effects of bad chunks, while only the former
lets you eat them when not hungry.

--------------------------------------------------------------------------------
429c02b03c | Adam Borowski | 2011-10-11 02:40:06 +0200

Tie Ignacio's chances to start harassing you to the number of Pan runes.
Also, he's not guaranteed anymore.

--------------------------------------------------------------------------------
e187e2a158 | Adam Borowski | 2011-10-11 01:20:56 +0200

Don't cause bleeding on unarmed hits if your claws are covered with gloves.

--------------------------------------------------------------------------------
d56c226bc1 | Adam Borowski | 2011-10-11 01:11:57 +0200

Stop ZotDef trying to prevent magic mapping.

--------------------------------------------------------------------------------
2d389ffa55 | Adam Borowski | 2011-10-11 01:06:57 +0200

Fix local travel not working in disconnected branches.

--------------------------------------------------------------------------------
7c9fa886bd | Adam Borowski | 2011-10-11 00:55:26 +0200

Fix map rot levels instantly losing everything.

--------------------------------------------------------------------------------
0baf9c7fbb | Adam Borowski | 2011-10-11 00:51:34 +0200

Rename load() to load_level(), the former is totally ungreppable.

--------------------------------------------------------------------------------
fdf8aec686 | Adam Borowski | 2011-10-11 00:51:34 +0200

Make herbivorousness penalty somewhat more harsh.

--------------------------------------------------------------------------------
56bc1ab90b | Adam Borowski | 2011-10-11 00:51:34 +0200

Clean up an unused argument.

--------------------------------------------------------------------------------
3a956086db | Adam Borowski | 2011-10-11 00:51:34 +0200

Disallow eating poisonous and HCL corpses at all.
The only reason anyone would ever consider eating the former is a tedious way
of identifying unknown rings.  The latter lacks even that.

--------------------------------------------------------------------------------
45ab0dbf4b | Adam Borowski | 2011-10-11 00:51:34 +0200

Nerf levels 1 and 2 of carnivorousness.
I am not sure this is that good an idea since it introduces some of the
complexity that the failed food reform had -- it's still the least
controversial of proposals of what to pick.

Everyone can eat at Hungry.
Carni 1 can eat at Satiated.
Carni 2 at Full.
Carni 3 at Very Full.
No one can at Engorged.

--------------------------------------------------------------------------------
99c5dff9f0 | Adam Borowski | 2011-10-11 00:51:33 +0200

Remove code for finding out unknown amulets of gourmand.
They auto-id since some time already.

--------------------------------------------------------------------------------
b88a8265d5 | Adam Borowski | 2011-10-11 00:51:33 +0200

Properly clean up AppHdr.h.d on "make clean".
It broke builds for targets different than those built before.

--------------------------------------------------------------------------------
36e7ce1293 | Adam Borowski | 2011-10-11 00:51:33 +0200

Make PCH depend on contribs.
This unbreaks parallel or -k builds that need contribs.

--------------------------------------------------------------------------------
d30a592bd1 | Adam Borowski | 2011-10-11 00:51:33 +0200

After save compat break, don't save can_train.

--------------------------------------------------------------------------------
19f903247c | Adam Borowski | 2011-10-11 00:51:33 +0200

Remove a no longer needed compat check.

--------------------------------------------------------------------------------
62d853f430 | Adam Borowski | 2011-10-11 00:51:33 +0200

Upgrade saves from the food experiment.
This undoes changes done by 8853420b.

--------------------------------------------------------------------------------
96eb6f5389 | Adam Borowski | 2011-10-11 00:51:32 +0200

Roll back Vinterman/Ryak's food changes.
This reverts commit 56adfb2d6e91b781499fddbf1c4cf5fded9b3bd9.
This reverts commit 28ea51337999252974a6051997e03c876bd3a6ea.
This reverts commit 3ffba0ab4769a2692802ec98a60516d0a7339aef.
This reverts commit 66a61ea0233373387f161dd2dd5686e69fe90e03.
This reverts commit c6ffd8058ca6c802c2b7c88c8d1956f85cd03708.
This reverts commit 289ffa941741b600155af52e04921655cf63ebb1.
This reverts commit 8bf89aab165429b403a963a6247302eaa1a7c2fc.
This reverts commit 845a2ce7bb31391fd53e514a72013f495786cf5a.
This reverts commit 56bc8b5a0496afbf58f32a44307ea19d9b50cb47.
This reverts commit b88298383b3ea16feca4622e733bcb92e853b1b2.
This reverts commit 110e6aac50dbc56564bfaae8b365fd7d06b6b3be.
This reverts commit 59069cbe23d706fa4b529236c15eda33e9b49459.
This reverts commit 8aa7ded15ec47daf9d8748071a9f0e31052ae940.
This reverts commit 28b8754b9ae064e8302b92c9e44dc0b20aed88e9.
This reverts commit 5f9885df8fcaa25e641bd70dc97f182fa31e1437.
This reverts parts of 1930a6b2 that deal with food.

--------------------------------------------------------------------------------
543e4b079c | Adam Borowski | 2011-10-11 00:51:32 +0200

Auto-id scrolls of vorpalize when it would be safe to read-id it.
Less sure about it than for EW scrolls.

--------------------------------------------------------------------------------
1ba6bc24ce | Adam Borowski | 2011-10-11 00:51:32 +0200

Always identify scrolls of enchant weapon.
For spoiled players who use unarmed or have an artefact it is a no-brainer
to wield a missile while read-IDing scrolls.

--------------------------------------------------------------------------------
a629b60e1e | Adam Borowski | 2011-10-11 00:51:27 +0200

Remove unused MR_RES_{PIECE,SLICE,BLUDGEON} on next minor tag bump.

--------------------------------------------------------------------------------
9a5bb1c91b | Raphael Langella | 2011-10-11 00:47:47 +0200

Fix armour being trainable when wearing armour without EV penalty.

--------------------------------------------------------------------------------
e48298e94f | Raphael Langella | 2011-10-11 00:23:37 +0200

Fix jewellery identification leak with skill training.

--------------------------------------------------------------------------------
dd334ff0f0 | Raphael Langella | 2011-10-10 23:37:57 +0200

Use mpr instead of mprf.

--------------------------------------------------------------------------------
11e1df2865 | Raphael Langella | 2011-10-10 23:35:02 +0200

Purge obsolete code.
It won't break enum order if it's just an alias.

--------------------------------------------------------------------------------
164f1c6589 | Raphael Langella | 2011-10-10 23:25:14 +0200

Whitespace fix.

--------------------------------------------------------------------------------
507792f422 | Raphael Langella | 2011-10-10 23:19:35 +0200

Don't create rooms when morphing the abyss (#4719).

--------------------------------------------------------------------------------
bdd3b2610b | David Lawrence Ramsey | 2011-10-10 10:23:46 -0500

Fix reversed order of mutation loss messages for tentacle spikes.

--------------------------------------------------------------------------------
e4f5eeec35 | David Lawrence Ramsey | 2011-10-10 10:21:51 -0500

Add wording fix.

--------------------------------------------------------------------------------
bfa0676992 | David Lawrence Ramsey | 2011-10-10 09:21:02 -0500

Remove references to WPN_MAX_NONBLESSED.
It was mainly a holdover from the old way weapon mimics were generated.

--------------------------------------------------------------------------------
6410ed66ec | Adam Borowski | 2011-10-10 15:38:59 +0200

Fix Serpent of Hell description.
Also, the colour may be redefined by the player, we can't use it for
anything other than display.

--------------------------------------------------------------------------------
3c5f7c89de | David Lawrence Ramsey | 2011-10-10 07:37:29 -0500

Allow gnoll shamans/sergeants to be placed randomly and in bands.

--------------------------------------------------------------------------------
3acf086c0b | David Lawrence Ramsey | 2011-10-10 07:37:24 -0500

Tweak gnoll shaman/sergeant stats and items.
Gnoll shamans do a bit more damage and have a bit more hostile
enchantment resistance relative to plain gnolls (a la orc priests
relative to plain orcs), and gnoll sergeants do a bit more damage and
get the M_FIGHTER flag (although, to compensate for the boost, they get
healing potions and shields less often).

--------------------------------------------------------------------------------
a30033a632 | David Lawrence Ramsey | 2011-10-10 07:37:17 -0500

Convert gnoll shamans/sergeants from Lua redefinitions to actual monsters.

--------------------------------------------------------------------------------
a5dccd9baa | Adam Borowski | 2011-10-10 13:57:09 +0200

Right-align the "(Cost)" header on the ^ screen.

--------------------------------------------------------------------------------
83db837282 | Adam Borowski | 2011-10-10 12:39:10 +0200

Don't crash when a transferred character's aptitudes changed.
Also, force reassessment of can_train on load.

--------------------------------------------------------------------------------
96023fda16 | Adam Borowski | 2011-10-10 12:12:19 +0200

Give a message when coagulated blood doesn't fit in the inventory.

--------------------------------------------------------------------------------
024c34b3fd | Adam Borowski | 2011-10-10 12:01:55 +0200

Don't use "its freedom" for a human.
Crawl's use of inanimate pronouns is jarring when talking about humanoids,
outright wrong with humans.  Like with gods, let's use sentences that avoid
the use of pronouns whenever possible.

--------------------------------------------------------------------------------
af6482505d | Aaron Becker | 2011-10-10 12:00:39 +0200

Correct message when just one of Pikel's former slaves is visible.

--------------------------------------------------------------------------------
c00aaeb251 | Adam Borowski | 2011-10-10 12:00:21 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
04d60a00a2 | Adam Borowski | 2011-10-10 11:50:53 +0200

Fix a crash on wizmode race change.
Re-scaling skills is not enough, they may be out of whack due to
uselessness, round-off errors, aptitude changes, etc.  Thus, capping
and re-assessing is needed.

Also, init can_train as well for the new race.

--------------------------------------------------------------------------------
92a3a48f46 | Samuel Bronson | 2011-10-09 17:52:59 -0400

Improve inventory titles for weight display patch.

--------------------------------------------------------------------------------
cdd930f5ad | kittel | 2011-10-09 16:26:03 -0400

Ctrl-W toggles display of weights

--------------------------------------------------------------------------------
47f6ed6eff | Samuel Bronson | 2011-10-09 15:43:41 -0400

Make by-the-book PCH/ccache handling optional.
It looks like the way suggested in ccache(1) essentially invalidates
everything in the cache whenever the precompiled header is rebuilt, even
if nothing actually *changed*.

--------------------------------------------------------------------------------
5167573682 | Florian Diebold | 2011-10-09 20:26:31 +0200

Webtiles: Don't hide the minimap on map-rotting levels.

--------------------------------------------------------------------------------
37e991120c | Adam Borowski | 2011-10-09 20:15:41 +0200

Rename player_in_mappable_area(), re-use of the old name brings confusion.
The old function by that name returned mappability, the new one returns map rot
(Abyss, Lab).  Map does exist, you can detect stuff, etc.

--------------------------------------------------------------------------------
f3837c3fdc | Samuel Bronson | 2011-10-09 13:53:24 -0400

A missing comma, kindly donated by |amethyst (Neil Moore).

--------------------------------------------------------------------------------
2e641ab673 | Adam Borowski | 2011-10-09 19:02:59 +0200

Remove spells: Detect Secret Doors and Detect Traps.
Rods of Discovery are gone for ages, Xom doesn't use these anymore either.
The "Dowsing" card doesn't use spell code and calls the relevant functions
directly.

--------------------------------------------------------------------------------
e7a410cc43 | Adam Borowski | 2011-10-09 17:57:38 +0200

Remove unused level flags, forbid exclusions in Abyss and Lab.
Old unmappable levels are gone for good, and good riddance.
Thus, player_in_mappable_area() is obsolete; I removed it and stolen the
name for "Lab or Abyss" check, done inconsistently in several places.
Also, exclusions there were problematic -- I removed them for now, please
change this back if you can fix them.

--------------------------------------------------------------------------------
3aa9bb7204 | Adam Borowski | 2011-10-09 13:13:35 +0200

An Abyss rune vault.  Forgot rElec?

--------------------------------------------------------------------------------
76b7e0022e | Adam Borowski | 2011-10-09 13:05:56 +0200

Some clean-up of enum.h

--------------------------------------------------------------------------------
b981239c6e | Adam Borowski | 2011-10-09 13:05:56 +0200

Add a compile check for TAG_MINOR_VERSION fitting in one byte.
It looks like we learned how to keep saves compatible, so unless some
screw-up happens the tags will grow without ever being reset.

--------------------------------------------------------------------------------
80bf1cb23b | Adam Borowski | 2011-10-09 13:05:56 +0200

Don't use CYAN for Abyssal rock -- metal happens there (frequently, even).

--------------------------------------------------------------------------------
ca656e6b7c | Adam Borowski | 2011-10-09 13:05:56 +0200

Don't use init_pandemonium() for Abyss colours.
I preserved the old relative chances (inexactly), so right now it's a minor
code duplication.

--------------------------------------------------------------------------------
77a1a6fae6 | Samuel Bronson | 2011-10-09 01:31:10 -0400

Fix item name parsing.
(I hope.)

--------------------------------------------------------------------------------
1930a6b2ed | Samuel Bronson | 2011-10-09 00:24:07 -0400

Preliminary food edibility labeling.
I don't think this is going to work right for inedible food, but it's a
starting point, at least.

--------------------------------------------------------------------------------
ef37778818 | David Lawrence Ramsey | 2011-10-08 23:09:50 -0500

Tweak wording.

--------------------------------------------------------------------------------
595a2e93af | Chris Campbell | 2011-10-09 03:32:25 +0100

Add more details for Vehumet to the ^! religion screen

--------------------------------------------------------------------------------
dea44a6899 | Michael Gagno | 2011-10-09 02:57:55 +0100

Update evilmike_haunted_forest crypt ending.

--------------------------------------------------------------------------------
69536f320e | Samuel Bronson | 2011-10-08 21:07:01 -0400

Fix PCH dependencies and ccache interaction.
Strangely enough, the precompiled header should be updated whenever the
CFLAGS change.

Also, it turns out that there's a section in ccache(1) about precompiled
headers, so I followed the suggestions there.

--------------------------------------------------------------------------------
28e2052dd0 | David Lawrence Ramsey | 2011-10-08 18:15:25 -0500

Add wording fix.

--------------------------------------------------------------------------------
086c528e1a | Adam Borowski | 2011-10-09 00:56:21 +0200

Spam the player if training a magic skill under Trog.

--------------------------------------------------------------------------------
970ddb311a | Adam Borowski | 2011-10-09 00:56:21 +0200

Fix a crash in a game after a tutorial (kittel)
Tutorial games short-circuit the death sequence, skipping some clean-up.

--------------------------------------------------------------------------------
c269afc1d7 | Adam Borowski | 2011-10-09 00:56:09 +0200

Set rather than increase penance on excommunication.
Otherwise, you may just renounce / rejoin / renounce to lower it to the
normal value.

--------------------------------------------------------------------------------
30b7557045 | Raphael Langella | 2011-10-08 22:47:36 +0200

Fix evocations being trainable with some randart books (#4693).

--------------------------------------------------------------------------------
4f23510a2b | Raphael Langella | 2011-10-08 22:47:36 +0200

Greatly increase the chance for an abyssal rune vault.
From 1/10 to 9/10.

--------------------------------------------------------------------------------
9a5683f9df | Raphael Langella | 2011-10-08 22:47:36 +0200

Fsim: don't change stats and xl if the option isn't set.

--------------------------------------------------------------------------------
fe4b325736 | David Lawrence Ramsey | 2011-10-08 15:03:59 -0500

Use simple_monster_message() where appropriate.

--------------------------------------------------------------------------------
b42df44d56 | David Lawrence Ramsey | 2011-10-08 15:02:09 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
5f9885df8f | Aaron Becker | 2011-10-08 20:36:05 +0100

Fix berserk hunger check

--------------------------------------------------------------------------------
949c6d88a6 | Aaron Becker | 2011-10-08 20:36:04 +0100

Add custom crit messages for skeletons

--------------------------------------------------------------------------------
bec3f7584b | Shayne Halvorson | 2011-10-08 20:36:03 +0100

Add Death's Door and Regeneration as monster spells; give both to Nergalle.

--------------------------------------------------------------------------------
99ff13cff7 | Michael Gagno | 2011-10-07 22:56:13 +0200

A few changes to abyss rune vaults.

--------------------------------------------------------------------------------
40ec3f0981 | Raphael Langella | 2011-10-07 22:42:40 +0200

Some simplifications.
Also, throwing has no effect on launchers anymore.

--------------------------------------------------------------------------------
03059b7e87 | Raphael Langella | 2011-10-07 22:42:40 +0200

Fsim: put a decimal in the average time.

--------------------------------------------------------------------------------
9f240e8a46 | Raphael Langella | 2011-10-07 22:42:40 +0200

Fix a calculation error in ranged combat fsim.

--------------------------------------------------------------------------------
794ff84080 | Raphael Langella | 2011-10-07 22:42:40 +0200

Fix the retreating behaviour.

--------------------------------------------------------------------------------
60f23966a4 | Adam Borowski | 2011-10-07 22:39:05 +0200

Dump the skill progress as a rational number rather than a real one.
This also allows showing out of bounds values.

--------------------------------------------------------------------------------
c32100602f | Adam Borowski | 2011-10-07 22:19:13 +0200

Swap "scorches" and "scalds".
The latter usually refers to a liquid not hotter than boiling water.

--------------------------------------------------------------------------------
c170fb1e10 | Adam Borowski | 2011-10-07 22:18:57 +0200

Add prop[const char*] to avoid mallocs of std::strings, add inlines.
The latter muddle the code and suck, but too many platforms rely on GCC < 4.6
so we can't use -flto goodness yet.

--------------------------------------------------------------------------------
9196d74e93 | Adam Borowski | 2011-10-07 22:18:57 +0200

Remove some obsolete Xom joy about losing runes.
You can't lose Abyssal rune when not in the Abyss anymore, and Demonic runes
hardly count now that there's just one (not that they ever mattered much...).
Losing an unique rune requires a conscious action so it's not that fun anymore
as well.

--------------------------------------------------------------------------------
d99eae9062 | Chris Campbell | 2011-10-07 21:11:22 +0100

Tweak lava messages again

--------------------------------------------------------------------------------
77e86a4c65 | Chris Campbell | 2011-10-07 21:09:47 +0100

Make ench miscast paralysis use the standard 2-7 turns instead of being fixed 
at 10 turns

--------------------------------------------------------------------------------
223486ebe4 | Chris Campbell | 2011-10-07 20:50:38 +0100

Better messages for mummies drowning, tweak lava messages

--------------------------------------------------------------------------------
6b40e00f71 | Brendan Hickey | 2011-10-07 20:50:38 +0100

More lively lava damage messages

--------------------------------------------------------------------------------
01f0e7b42a | Adam Borowski | 2011-10-07 18:56:46 +0200

Use the recent flag M_NO_FLEE to have manticores have proper animal 
intelligence.

--------------------------------------------------------------------------------
1e127255f1 | Chris Campbell | 2011-10-07 15:42:08 +0100

Bump the quantities of ammo acquirement from scroll some more

--------------------------------------------------------------------------------
a7a16c7473 | Chris Campbell | 2011-10-07 15:42:08 +0100

Make decks from misc acquirement much more likely to be legendary or ornate

--------------------------------------------------------------------------------
9ca9327b78 | Adam Borowski | 2011-10-07 15:46:52 +0200

Silver stars, with their dreaded bolt of Zin spell.

--------------------------------------------------------------------------------
eca2fcaf17 | Adam Borowski | 2011-10-07 15:20:01 +0200

Stop the arena from immediately crashing.

--------------------------------------------------------------------------------
d2dbe0ea19 | Adam Borowski | 2011-10-07 14:24:38 +0200

Rename "Light Beam" to "Holy Light" to match the BEAM and to disambiguate vs 
Sunray.

--------------------------------------------------------------------------------
59152f3bb1 | Adam Borowski | 2011-10-07 14:01:32 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
e27dbb28cd | David Lawrence Ramsey | 2011-10-07 06:35:56 -0500

Tweak wording.

--------------------------------------------------------------------------------
530f8949f2 | Jude Brown | 2011-10-07 18:30:41 +1000

Implement breath timeouts for dragons, draconians, and, slightly, drakes.
This commit is only designed to implement breath-weapon timeouts for
draconians and dragons of every taste and flavour. This is slightly
problematic because it relies on mons_genus to return MONS_DRAGON, and
usees this to determine whether or not the monster should be allowed to
use the breath weapon.

The current time-out is 1d5. I had previously suggested
1+random2(10-(HD/3)) but it was suggested this might be a bit too much.
1d5 is subject to change, of course, and as this uses a function to set
the time-out, the exact value can be defined per-monster, per-genus,
etc.

Hopefully, I've caught every use of breath weapon. I need to test drakes
a little bit more extensively.

Problematically, the code currently classes a breath weapon either by a
draconian's breath weapon being cast (in mon-cast.cc:1684) and the
monster's genus being draconian, or the monster's genus being a dragon.
Abilities are handled differently.

This might thus prove problematic for monsters which have both beams for
breath weapons, as well as other auxiliary spells. These, if they exist
(and I do not think they currently do), would be unusable until the end
of the duration.

Also, it nerfs dragons a bit! Pearl dragons will no longer spam holy
breath at you, etc: this primarily is the reason for the code. If it's
found to be too much of a nerf, it maybe be adjusted to only trigger on
certain types of dragon, etc.

--------------------------------------------------------------------------------
dfe1758b7f | Jude Brown | 2011-10-07 18:30:40 +1000

Overhaul Cherub flavour, attacks, messages, etc.
Cherubs are now weaker than angels. They come equipped with the same
weapons (flaming sword or flail, potential bow and arrow) as previously,
but their HD and attacks have been reduced.

They are now more tightly modelled upon the Biblical (late New
Testament) vision of a tetra-headed throne-bearer who joins seraphim and
ophanim in singing hymns of praise. Only, the hymns of Cherubs have the
same effect upon holy creatures as orc battle cries do.

Instead of having two attacks (an on-hand weapon attack plus an
auxiliary attack) the same, they now have a single on-hand attack plus
an auxiliary that randomly selects an attack based on a head -- the ox
head gores, the eagle head pecks, the lion head bites and the human head
just hits as per normal.

Their messages and flavouring have been tweaked. Finally, as the A glyph
only has white and yellow used, I recoloured them to light blue. Brown
just looked a little strange.

--------------------------------------------------------------------------------
5c90495d84 | Raphael Langella | 2011-10-07 01:08:41 +0200

Fix ranged combat fsim.
It still a bit slow, but it works.

--------------------------------------------------------------------------------
1191a4ae43 | Raphael Langella | 2011-10-07 01:08:41 +0200

Simplify.
BEAM_MAGIC is only used by bone shards which was removed, so this should be ok.

--------------------------------------------------------------------------------
fcabd4804a | Raphael Langella | 2011-10-07 01:08:41 +0200

Fix target randomization when firing when confused.
Used to go always toward (0,0).

--------------------------------------------------------------------------------
88c2b84f8f | Raphael Langella | 2011-10-07 01:08:41 +0200

Fix many skill bugs with fsim.

--------------------------------------------------------------------------------
2bf787f347 | Raphael Langella | 2011-10-07 01:08:41 +0200

Clear the new exercise queue on game restart.

--------------------------------------------------------------------------------
5a18cf0676 | Adam Borowski | 2011-10-07 00:51:58 +0200

Fix a typo in Zin's formula... it's supposed to be (10 + random2(27)) * 2.

--------------------------------------------------------------------------------
896f78ffaa | Adam Borowski | 2011-10-06 23:18:42 +0200

Scale Zin piety gains by expected value of gold piles at the place.
It nearly doubles gains on D:1, nearly halves in Pan / Abyss.

Testing shows a Pr usually fluctuates around the edge of **.... even without
any extended resting or using Vitalize (and not getting to bigger abilities).

This may be too much a knee-jerk reaction, we may need to scale it somewhere
less drastic.  Testing will show.

--------------------------------------------------------------------------------
8edd5d51aa | Adam Borowski | 2011-10-06 22:49:28 +0200

Sort Flight into its lowered level in books.

--------------------------------------------------------------------------------
28b8754b9a | David Ploog | 2011-10-06 16:53:35 +0200

Preliminary food reform entry in change log.

--------------------------------------------------------------------------------
4411e8f94b | Adam Borowski | 2011-10-06 13:47:19 +0200

Merge branch 'no_free_piety'
TODO: what with Zin altar donations?

--------------------------------------------------------------------------------
32023a1c97 | Adam Borowski | 2011-10-06 13:24:54 +0200

Stop tithing at 200 piety.
Those ugly micromanaging players would disable gold autopickup anyway --
either manually or via a script.  We might do this automatically, especially
as there's a thematic explanation: you're high enough in church's hierarchy.

--------------------------------------------------------------------------------
5137697e4d | Adam Borowski | 2011-10-06 12:42:39 +0200

Zin demands a part of your gold on join.
You get some piety from it, far less than for regular tithe but more than
for altar donations.  Unlike the latter, it is capped at +50, though.

--------------------------------------------------------------------------------
54542ea122 | Adam Borowski | 2011-10-06 11:48:08 +0200

Fix precompiled headers being left on "make clean".

--------------------------------------------------------------------------------
8aa7ded15e | Samuel Bronson | 2011-10-05 21:19:43 -0400

Throw any players who happen to check ?V a bone w.r.t. food reform.

--------------------------------------------------------------------------------
840bcfc16f | Adam Borowski | 2011-10-06 02:37:20 +0200

Make Zin dislike (but still demand) old gold from the ground.
This is somewhat an ugly way, but otherwise you'd be able to disable
autopickup of gold, then some time later take up Zin and collect it all,
getting max piety instantly (or at least more for your first god).  This is
significantly worse than Nemelex since prospective Nemelexities will build
piles of items to sac, greatly reducing the tediousness of the second pass.

--------------------------------------------------------------------------------
f776ce4c7e | Chris Campbell | 2011-10-05 23:43:36 +0100

Remove crystal balls of seeing
They essentially just provide unlimited free mapping in the same way
as divination spells, since they have no permanent cost or limited
number of uses. Scrolls of mapping are much better, they're a limited
resource, and a valuable one.

--------------------------------------------------------------------------------
59069cbe23 | Raphael Langella | 2011-10-06 00:39:45 +0200

Increase the hungry satiation level from 2600 to 2800.
It's not possible anymore to go from very hungry directly to satiated by eating
a brown chunk. It's not really abusable, but it's annoying since you used to go
back to hungry after just a few turns anyway.

--------------------------------------------------------------------------------
85c296f55e | Raphael Langella | 2011-10-06 00:39:45 +0200

Keep track of disabled skill practise events.
There's now 2 queues, one for enabled skills, and one for all skills.
Keeping disabled skill events in the normal queue would reduce granularity when
a lot of disabled skills are used.
Having a queue with only disabled skills can be problematic. If at some points, 
all
the active skills are enabled, the queue become stalled and the events stuck 
there
will artificially inflate some results.
Thus, this seems like the simplest solution.

--------------------------------------------------------------------------------
f502aa4e4b | Raphael Langella | 2011-10-06 00:39:45 +0200

Skill training code clean-up and tweaks.
Some general refactoring and simplification.
Simplified initialisation of the various arrays and exercise queue.
No more "You stop training foo" messages at startup.
Skills are displayed in grey whenever their training percentage is nil.
Skills that start with some points but with a level < 1.0 still get some
training percentage. More generally, there shouldn't be any special case
for "unknown" skills anymore.

--------------------------------------------------------------------------------
7eaacbd118 | David Ploog | 2011-10-05 23:36:01 +0200

Minor changes to skill help.

--------------------------------------------------------------------------------
82e6c709e3 | Chris Campbell | 2011-10-05 17:55:35 +0100

Make 2s summoned by player Greater Demon remain friendly, only 1s turn hostile 
over time

--------------------------------------------------------------------------------
f8de631e76 | Vsevolod Kozlov | 2011-10-05 11:47:23 +0400

gen_ver.pl: Don't use named captures
To be compatible with ancient perls...

--------------------------------------------------------------------------------
d0e900de57 | Samuel Bronson | 2011-10-04 23:08:52 -0400

On ?V, display more of changelog.txt, and none of key_changes.txt.
That stuff was from 0.4 and 0.5! Anyone who hasn't played in that long
will probably be lost anyway...

--------------------------------------------------------------------------------
110e6aac50 | Raphael Langella | 2011-10-05 00:23:00 +0200

Don't reduce food preference for poisonous chunks if you're resistant.

--------------------------------------------------------------------------------
530f8e8f58 | Chris Campbell | 2011-10-04 21:10:47 +0100

Let magic mapping detect (but not map through) undetected secret doors
Also, do let it map through detected (closed) secret doors.

--------------------------------------------------------------------------------
1653a9b34a | Adam Borowski | 2011-10-04 21:47:28 +0200

No TSO piety for merely spotting evil.  Go kill 'em!

--------------------------------------------------------------------------------
327f671d12 | Samuel Bronson | 2011-10-04 12:51:42 -0400

Add Version::Major(), returning e.g. "0.10" for 0.10-a0 and 0.10.1 both.

--------------------------------------------------------------------------------
0d6ff40332 | Chris Campbell | 2011-10-04 17:23:53 +0100

Autoexclude statues again

--------------------------------------------------------------------------------
7426ea1735 | Chris Campbell | 2011-10-04 17:23:52 +0100

Add a prompt when moving into an excluded area
In particular for console players (who can only see their travel
exclusions on the X map), this should help prevent accidentally moving
or autofighting into sight of an excluded monster.

--------------------------------------------------------------------------------
95c56f71af | Adam Borowski | 2011-10-04 17:55:35 +0200

Show focused and mastered skills differently in tiles.

--------------------------------------------------------------------------------
ff184ccee0 | Adam Borowski | 2011-10-04 17:13:59 +0200

Remove an obsolete comment.

--------------------------------------------------------------------------------
b88298383b | Adam Borowski | 2011-10-04 15:30:38 +0200

Show that innate gourmand is better than the amulet of '%'.

--------------------------------------------------------------------------------
8853420b21 | Adam Borowski | 2011-10-04 15:27:12 +0200

Adjust saves from before the food reform.

--------------------------------------------------------------------------------
56bc8b5a04 | Adam Borowski | 2011-10-04 15:23:43 +0200

Make meat-plant bias for Ko and Tr make a bit more sense again.
The food reform tied the ability to eat too much with nutrition.
Kobolds are now returned to carnivorousness, trolls can eat anything
edible again, and don't get the huge bonus for meat anymore.

--------------------------------------------------------------------------------
845a2ce7bb | Raphael Langella | 2011-10-04 13:17:59 +0200

Better bonus to saprovorous.
Level 1: can eat brown chunks as regular and rotten chunks with -1 instead of -2
Level 2: can eat brown and rotten chunks as normal ones.
Level 3: brown and rotten chunks are +1 (not cumulative).

--------------------------------------------------------------------------------
8bf89aab16 | Raphael Langella | 2011-10-04 13:17:59 +0200

Increase preference penalty for rot inducing and poison-contaminated chunks.
Poison-contaminated chunks get -2, rot inducing gets -3.

--------------------------------------------------------------------------------
289ffa9417 | Raphael Langella | 2011-10-04 13:17:59 +0200

Don't perform satiation check for vampires (#4680).

--------------------------------------------------------------------------------
c6ffd8058c | Raphael Langella | 2011-10-04 13:17:59 +0200

Fix chunk prompt not given at proper satiation level (#4678).

--------------------------------------------------------------------------------
66a61ea023 | Raphael Langella | 2011-10-04 13:17:59 +0200

Tone down the permafood bonus multiplier.

--------------------------------------------------------------------------------
3ffba0ab47 | Raphael Langella | 2011-10-04 13:17:59 +0200

Food reform part 2: species mutations
Kobold: carni 3 -> 2 (keeps sapro 2).
Centaur: hunger 2 -> 1, gets herbi 1.
Ogre: sapro 1 -> carni 1 (keeps hunger 1).
Troll: sapro 2 -> 3, gourmand -> carni 3 (keeps hunger 3).

--------------------------------------------------------------------------------
dcf5694b4b | Samuel Bronson | 2011-10-03 23:16:25 -0400

Fix a couple of Doxygen markup problems. (Both mine.)

--------------------------------------------------------------------------------
28ea513379 | Raphael Langella | 2011-10-04 01:51:20 +0200

Use the proper enum.

--------------------------------------------------------------------------------
7b10de8d18 | Samuel Bronson | 2011-10-03 19:30:34 -0400

Highlight the final demise of dancing.

--------------------------------------------------------------------------------
56adfb2d6e | Raphael Langella | 2011-10-04 00:37:08 +0200

Food reform (Ryak).
Based on Vintermann's design.
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:misc:eating

Food is assigned a preference value, which depends on food type
and mutations (herbi, carni and sapro).

Base value is 4 for permafood, 5 for royal jellies and 2 for chunks.

+1 on chunks for amulet of gourmand
+1 on meat for each level of the carnivore mutation
-1 on meat for each level of the herbivore mutation
+1 on plants for each level of the herbivore mutation
-1 on plants for each level of the carnivore mutation
-1 for bad chunks (contaminated, poisonous, mutagenic...)
-2 for rotten chunks (only -1 for sapro 1&2 and no penalty for sapro 3).

no eating of meat food at Herbivore 3
no eating of plant food at Carnivore 3

Maximum satiation at which a certain food can be eaten:
0: Near starving
1: Vey hungry
2: Hungry
3: Satiated
4: Full
5+: Very full

Nutrition multiplier for chunks:
0: 1/3 (always give sickness)
1: 2/3 (20% sickness)
2: 1
3: 1.1
4: 1.2
5: 1.5

Nutrition multiplier for permafood
2: 1/3
3: 2/3
4: 1
5: 1.5
6: 2
7: 2.5

--------------------------------------------------------------------------------
f87fc920f5 | Raphael Langella | 2011-10-04 00:37:08 +0200

Use a decimal when determining best skill.

--------------------------------------------------------------------------------
59789a6818 | Raphael Langella | 2011-10-04 00:37:08 +0200

Use one decimal precision for comparing skills (cross/anti training).

--------------------------------------------------------------------------------
5d45d90d94 | Raphael Langella | 2011-10-04 00:37:08 +0200

Always display known skills.

--------------------------------------------------------------------------------
5a708fa36d | Samuel Bronson | 2011-10-03 18:17:36 -0400

Start work on a generic god menu.
So far, this consists of moving GodMenuEntry to a new module and slightly
altering its interface to be more useful outside of ?/G.

--------------------------------------------------------------------------------
fcbd864313 | Samuel Bronson | 2011-10-03 18:10:22 -0400

Makefile: Use accurate dependencies for precompiled header, too.

--------------------------------------------------------------------------------
bdabd553ad | Samuel Bronson | 2011-10-03 18:08:10 -0400

Makefile: Don't do out-of-line depgen unless NO_INLINE_DEPGEN is set.

--------------------------------------------------------------------------------
5efc0ba702 | Samuel Bronson | 2011-10-03 17:20:08 -0400

Makefile: Simplify the inclusion of .d files and the "depend" rule.

--------------------------------------------------------------------------------
6dd8f2da1d | Samuel Bronson | 2011-10-03 17:04:12 -0400

Makefile: factor the compilation command line out of the $(UTIL)%.o rule.
Now it just rebinds a variable, and the %.o rule does the work.

--------------------------------------------------------------------------------
dd5d21ded7 | Samuel Bronson | 2011-10-03 16:46:26 -0400

Zap most of Make's built-in rules even in our own Makefile.
This might considerably speed recompiling on Windows, but more importantly
it will make the output of "make -d" less overwhelming ;-P.

--------------------------------------------------------------------------------
a1fed85a2b | Samuel Bronson | 2011-10-03 16:36:48 -0400

Add new target, debug-lite, for a debuggable binary without all the spew.
I'm adding this because I just discovered that I wrote NO_OPTIMIZATION
instead of NO_OPTIMIZE in my compile.sh script several days ago, and I
didn't want anyone else to have to experience this frustration...

I'm not sure it will help them, but at least it makes me feel better ;-).

--------------------------------------------------------------------------------
dc45cf41f9 | Florian Diebold | 2011-10-03 21:19:20 +0200

Webtiles: Fix unicode handling while writing the rc file.

--------------------------------------------------------------------------------
90728519ba | Chris Campbell | 2011-10-03 17:38:55 +0100

Cloud trap tweaks (mumra)
- Changes type of fire cloud to flame
- Can specify size and power multipliers per trap trap
- Reduced power and size of ice/fire
- Reduced size of chaos

--------------------------------------------------------------------------------
f5b1c6ef5c | Adam Borowski | 2011-10-03 16:23:50 +0200

Fix the number of branches being hard-coded in one place.
It didn't allow adding new ones without breaking save compat.

--------------------------------------------------------------------------------
5999e9dfc5 | Chris Campbell | 2011-10-03 13:26:17 +0100

Update the Zotdef Make altar description

--------------------------------------------------------------------------------
a82f5bbe71 | Adam Borowski | 2011-10-03 12:26:14 +0200

Give TSO piety for seeing new monsters, decay over time.
The theme explanation is that you're supposed to diligently search for
traces of evil among inhabitants of the world.  This is a form of piety for
exploration, but compared to Ashenzari, it is slightly harder to scum by
wandering in areas known to be uninhabited.

Actually, it resembles piety for killing since that's what you're going to
do anyway :p

--------------------------------------------------------------------------------
aeec3eab7e | Adam Borowski | 2011-10-03 12:26:14 +0200

Make Zin a greedy bastard: piety comes from 10% tax on gold, decays.
I had to introduce two special cases:
* piety for gold in Orc is halved -- the branch would stand too much
* acquired gold has its value stepped down

--------------------------------------------------------------------------------
6536c147cb | Adam Borowski | 2011-10-03 12:26:14 +0200

Decay Elyvilon's piety with time, double reward for pacification.

--------------------------------------------------------------------------------
2b5a5b804a | Samuel Bronson | 2011-10-03 01:59:44 -0400

Zotdef: Let player choose altar's god; raise price from 2 ZP to 50 ZP.
We do this by stealing wizard_get_religion() as zotdef_create_altar()
and parametrising it on whether or not it's being called for the wizmode
command; if it isn't, we restrict it to floor squares, skip the autoprayer,
and print a message.

This is an attempt to basically resolve #4582.

We really should make a menu for this, though!

--------------------------------------------------------------------------------
9799e0efdc | Samuel Bronson | 2011-10-03 01:15:17 -0400

Don't let even the empty-handed wield the unwieldable.
(Whoops. Failure is still failure even if empty-handed; it's just not as
interesting.)

--------------------------------------------------------------------------------
2445df1563 | Jude Brown | 2011-10-03 14:08:49 +1000

Update documentation for vault shop definitions (dpeg).
Ask, and ye shall receive! This was lacking previously, so now it's
here. Caveat: I haven't actually tested any of the specific definitions
provided, so it's entirely possible that they're all broken. This is
mostly from memory and mapdef.cc.

--------------------------------------------------------------------------------
1058d31b92 | Samuel Bronson | 2011-10-02 23:59:17 -0400

Tweak/punctuate/add doxygen comments in menu.h and menu.cc.

--------------------------------------------------------------------------------
45657fb416 | Samuel Bronson | 2011-10-02 23:05:24 -0400

Doxygen: put ASCII-art diagram in <pre> tag

--------------------------------------------------------------------------------
f0ded9d569 | Samuel Bronson | 2011-10-02 23:04:40 -0400

Doxygen: limit graph depth to 3.
The hope is that this will make the diagrams more manageable in size.

--------------------------------------------------------------------------------
9c67d0f540 | Samuel Bronson | 2011-10-02 22:31:56 -0400

Zotdef: Give everyone two free levels of Traps & Doors.
This will help them with replacing old traps.

--------------------------------------------------------------------------------
59d57f2e4d | Samuel Bronson | 2011-10-02 21:35:12 -0400

Document a bit more of l_crawl.cc.

--------------------------------------------------------------------------------
1a0c2dbcec | Samuel Bronson | 2011-10-02 21:35:11 -0400

Start documenting l_crawl.cc.

--------------------------------------------------------------------------------
9e328095cc | Samuel Bronson | 2011-10-02 21:35:10 -0400

Use our own taglet/doclet instead of making dummy .cc.luadoc files. For now, 
our doclet monkey-patches itself over the standard one, so that we can use the 
standard template files unaltered. (They hard-code the full module name all 
over the place. Very messy.)

--------------------------------------------------------------------------------
4e0000f428 | Samuel Bronson | 2011-10-02 21:35:05 -0400

Prototype luadoc setup. Only one function is documented at all so far, but at 
least the documentation is generated.

--------------------------------------------------------------------------------
996cf305ef | Samuel Bronson | 2011-10-02 21:20:13 -0400

Don't do wholesale call/caller graphs, even for doxygen-all.
We can always stick in @callgraph and/or @callergraph for any functions/
methods for which we would particularly like these.

--------------------------------------------------------------------------------
23f9660d96 | Samuel Bronson | 2011-10-02 20:21:19 -0400

Note that the PCH support in Makefile lacks dependency generation.

--------------------------------------------------------------------------------
f0572bc138 | Adam Borowski | 2011-10-02 22:57:12 +0200

Fix a future crash on phoenix markers (not yet used).
There was a pointer to a place on the stack that lives only as long as the
object's constructor.

--------------------------------------------------------------------------------
7c206facf0 | Chris Campbell | 2011-10-02 21:36:01 +0100

More Zin description updates

--------------------------------------------------------------------------------
af0ef4f192 | Chris Campbell | 2011-10-02 21:36:01 +0100

Reduce Zin vitalisation's feeding, allow using it while starving
With piety for waiting, it allows players with slow metabolisms to never
run out of food (or piety). Once piety for exploration or some other
method of piety gain is in, this can probably be tweaked upwards again.

--------------------------------------------------------------------------------
a2dddd4acb | Chris Campbell | 2011-10-02 21:36:00 +0100

Make Zin vitalisation proactive instead of reactive, randomise the duration 
some, update descriptions
Having it be purely proactive is an attempt to differentiate it from
Elyvilon's restoration (which is purely reactive, and cures mostly the
same afflictions as vitalisation).

--------------------------------------------------------------------------------
5d34c6f135 | Evan James | 2011-10-02 21:35:59 +0100

Changes for Zin's Vitalise ability.
Vitalise now simultaneously cures and restores all statuses that it could
affect, rather than removing 1 bad status at a time.

While Vitalise is active, the player is protected from the bad statuses
that Vitalise could cure.  In many cases this replaces Zin's previous passive
protection against a status.

Vitalise now grants food rather than costing food, replacing Zin's
prayer for sustenance when starving.  The amount of food granted
is small and only takes effect if the player is not already full.

The stat boost from Vitalise can no longer be stacked and scales
by the player's Invocations skill.  The previous possible maximum
of +9 to all stats is attainable with 27 Invocations.

--------------------------------------------------------------------------------
34372462f6 | Samuel Bronson | 2011-10-02 16:14:13 -0400

Put the depgen/PCH/compilation rules into some semblance of order.

--------------------------------------------------------------------------------
a897a6ee4e | Adam Borowski | 2011-10-02 22:02:04 +0200

Fix monster::skill() not overriding actor::skill().
Also, make actor::skill() abstract so this won't happen again.

--------------------------------------------------------------------------------
2c4cf21b40 | Adam Borowski | 2011-10-02 21:57:13 +0200

Fix non-maxed mutations disappearing on a demonspawn upgrade.
If you have horns 1 from a potion, getting an innate level shouldn't remove
them unless you reach horns 3.

--------------------------------------------------------------------------------
7ab22d5806 | Samuel Bronson | 2011-10-02 15:26:39 -0400

Factor the flags for inline dependency generation out into a variable.
This allows us to avoid repeating the same flags in three places, and also
lets us replace three conditionals with just one.

--------------------------------------------------------------------------------
31a7c0d879 | Chris Campbell | 2011-10-02 15:51:44 +0100

Add a missing Jiyva message to the default runrest_messages, update trap 
messages

--------------------------------------------------------------------------------
78d6b2acc9 | Chris Campbell | 2011-10-02 15:25:05 +0100

Tweak the message for invisible hostiles from Foxfire

--------------------------------------------------------------------------------
8daa73bd9b | Chris Campbell | 2011-10-02 15:24:42 +0100

Add descriptions for the Zotdef abilities and ability flags, fix a description 
typo

--------------------------------------------------------------------------------
ba0c359bbe | Adam Borowski | 2011-10-02 15:31:38 +0200

Don't give practically useless weapon types in scroll acquirement.
A short sword of speed is not going to sway someone with 0 Short Blades, 20
Axes.  The rule for "practically useless" here is: the other skill is more
than three times and at least by 8 higher.

Okawaru, Trog and Xom will still shower you with those slings of flaming
and vorpal quarterstaves, of course.

--------------------------------------------------------------------------------
5430d73ec3 | Adam Borowski | 2011-10-02 15:31:38 +0200

Make the vampiric brand in monsters' hands consistent with that in players.
Ie, no rot for unexplained reasons.

Rot on being bitten by a vampire mosquitoes is debatable -- but if it's
wanted, it should be a separate effect rather than tied to them healing off
you.  For rotting due to getting hit with a vampiric stick, not so much of
a debate.

--------------------------------------------------------------------------------
1edb10cb49 | Chris Campbell | 2011-10-02 13:53:48 +0100

Menkaure speech fix

--------------------------------------------------------------------------------
d6c545c660 | Adam Borowski | 2011-10-02 13:26:02 +0200

Build skill tiles from source, delete pre-composited ones.
It is now trivial to add new variants (like focused), they take less space,
and any clumsy oaf can edit the tiles with good results.

--------------------------------------------------------------------------------
6efdf7f6b7 | Adam Borowski | 2011-10-02 12:10:13 +0200

Add a yet another special-cased capitalization for @Foe_genus@.
A better fix is already there, stuck on the combat rewrite branch...

--------------------------------------------------------------------------------
ed835a370a | Samuel Bronson | 2011-10-02 00:01:41 -0400

Doxygen: hyperlink together several closely-related arrays.
I suspect they were once together in the same file, based on the comments
above god_abilities[].

--------------------------------------------------------------------------------
84f8b01d9b | Samuel Bronson | 2011-10-01 23:38:49 -0400

Allow a?? to show as much as it can about abilities with no descriptions.
In particular, this seems to be all of the Zot Defence abilities.

This involved extending _detailed_cost_description() to display ZP costs.

--------------------------------------------------------------------------------
c4a508dadd | Adam Borowski | 2011-10-02 03:38:56 +0200

Spam character notes whenever the game version changes.

--------------------------------------------------------------------------------
24f30a6719 | Adam Borowski | 2011-10-02 03:31:32 +0200

Add a comment about the save browser's needs.

--------------------------------------------------------------------------------
41b259ab81 | Adam Borowski | 2011-10-02 03:28:23 +0200

A new rltiles command %texture that can use an image as a mask for compositing.
For example, simulacra tiles may be produced from zombies by using a zombie
tile as a cut-out mask applied to an ice texture.

Pixels that are black (exactly) stay black.
Pixels of any other colour use the texture.
Pixels that are transparent (fully or partially) retain transparency.

--------------------------------------------------------------------------------
0594cdf657 | David Lawrence Ramsey | 2011-10-01 20:11:47 -0500

Remove now-unused beak-related parts of Beastly Appendage.

--------------------------------------------------------------------------------
b5a91744b0 | Raphael Langella | 2011-10-02 01:28:55 +0200

Revert "No scroll is useless if you don't know spellcasting."
This reverts commit 31905a829b88e21342fa5e325ea093b10c137137.

--------------------------------------------------------------------------------
4875a3edf4 | Raphael Langella | 2011-10-02 01:28:55 +0200

Revert "Bad scrolls are useless to troglodytes since they don't want 
spellcasting (#4233)."
This reverts commit 321fc69a4def73c0deea90f347e519a7e3bcb46f.

--------------------------------------------------------------------------------
c423a7aa4f | Raphael Langella | 2011-10-02 01:28:55 +0200

Don't disable spellcasting when we stop reading a manual (#4655).

--------------------------------------------------------------------------------
003a1029de | Samuel Bronson | 2011-10-01 19:06:10 -0400

Don't include system headers in the output of "inline depgen".
After all, we weren't including them for non-inline dependency generation.

--------------------------------------------------------------------------------
0c4fa0191e | Samuel Bronson | 2011-10-01 18:40:39 -0400

Doxygen stuff.

--------------------------------------------------------------------------------
30a7400d0c | Samuel Bronson | 2011-10-01 18:40:38 -0400

Fix Doxygen warnings.

--------------------------------------------------------------------------------
c20bc5cf9e | Samuel Bronson | 2011-10-01 18:15:49 -0400

Expand on the skill-menu help for the new system; update other pieces.
The bulk of the new text explains the training restrictions in detail,
and is taken from the commit message for 905850ebe841 with slight
adaptations.

The rest updates/corrects the help for other aspects of the skill screen
which have been recently changed. Oh, and puts the top heading a bit closer
to the center of the 80 columns to which the help text restricts itself.

--------------------------------------------------------------------------------
9d61502713 | Samuel Bronson | 2011-10-01 22:52:18 +0200

Fix the item_def* version of actor::can_wield().
Hopefully, nobody was depending on it being broken!

--------------------------------------------------------------------------------
26d698f34d | Samuel Bronson | 2011-10-01 22:52:05 +0200

Detect "debug" and "profile" targets precisely.
This will prevent anything odd from happening if we ever have any build
targets whose names include those words, and someone specifies them
explicitly on the make command line.

--------------------------------------------------------------------------------
ee6346c50f | Samuel Bronson | 2011-10-01 22:51:35 +0200

Suggest ccache.
I'm only suggesting it to Debian users at the moment, as I have no idea
how to install on other systems, and I'm not sure where to place a more
general suggestion anyway.

[Reworded a bit.  1KB]

--------------------------------------------------------------------------------
eb0c26f40f | Samuel Bronson | 2011-10-01 22:48:55 +0200

Redraw quiver after inscribe command.
The quivered item may have had its inscription altered. In fact, it might
not even be the same item as before, if the inscription change impacts
auto-quivering! Thankfully, all of this was already working, and all that
remained was to update the screen.

--------------------------------------------------------------------------------
7062357894 | Samuel Bronson | 2011-10-01 22:48:42 +0200

Add a couple of probability annotations to mon-place.cc.

--------------------------------------------------------------------------------
b5abf20537 | Samuel Bronson | 2011-10-01 22:48:28 +0200

Reformat advanced_optioneering into a valid configuration file.
This will permit users to include it by name, rather than by
copy and paste.

--------------------------------------------------------------------------------
b18f3ae015 | Samuel Bronson | 2011-10-01 22:47:18 +0200

Give Zot Defence it's own section in the ability menu.
This was a cinch now that I've flagged the zotdef abilities, and makes it
much easier to spot non-zotdef abilities in the menu, especially with
zotdef abilities now on capital letters (which placed them before others
in ASCIIbetical order).

--------------------------------------------------------------------------------
113f1aaa73 | Samuel Bronson | 2011-10-01 22:47:18 +0200

Try assigning zotdef abilities to hotkeys 'F' and up (#4587).
I'm not sure if we can tolerate this or not, but it seems worth a try...

--------------------------------------------------------------------------------
8e6742e84c | David Lawrence Ramsey | 2011-10-01 15:38:47 -0500

Revert "Properly add cherubs to the HOLY_BEING_WARRIOR class."
This reverts commit 332cf850cc5ee6b658b243232ef3ad27dbd6a832.

Add a comment indicating that cherubs should be added to the list when
they're improved.

--------------------------------------------------------------------------------
ae913d2de1 | elliptic | 2011-10-01 16:18:14 -0400

Decrease the number of Pandemonium lords on ziggurat levels slightly.
This is compensation for the Pan monster set being much nastier than the Abyss
monster set.

--------------------------------------------------------------------------------
332cf850cc | David Lawrence Ramsey | 2011-10-01 15:06:20 -0500

Properly add cherubs to the HOLY_BEING_WARRIOR class.

--------------------------------------------------------------------------------
8ebce86330 | Samuel Bronson | 2011-10-01 21:54:41 +0200

Do not give free unwields for certain types of wield failure; these will now 
take just as long as explicit unwielding.
Also, print the "You are now empty-handed." canned message, to help players
notice that their previous weapon got unwielded in the process. This is
intended to mitigate #4083.

But, don't do either of those things if the player was already unarmed to
start with!

--------------------------------------------------------------------------------
aa565bec90 | Samuel Bronson | 2011-10-01 21:46:14 +0200

Add input history to &% (create item by name) wizard mode command.

--------------------------------------------------------------------------------
1a6790fd3a | Samuel Bronson | 2011-10-01 21:46:14 +0200

Refer to the full lists of possible egos from the docs on ITEM specs.

--------------------------------------------------------------------------------
3c8304bd49 | Samuel Bronson | 2011-10-01 21:46:14 +0200

Clarify prompt for &% (create item by name) wizard mode command.

--------------------------------------------------------------------------------
5cac15ceb6 | David Lawrence Ramsey | 2011-10-01 14:40:18 -0500

Add Beastly Appendage to Xom's spell list.

--------------------------------------------------------------------------------
9af085b29e | Adam Borowski | 2011-10-01 21:11:38 +0200

Set the monster set for a holy Pan level.

--------------------------------------------------------------------------------
5a2a22fca9 | Adam Borowski | 2011-10-01 20:55:41 +0200

Allow to (hackily) set a Pan level's monster set from vaults.
It needs further reworking, but works well enough to add new custom levels
without having to alter the tables inside.

Current limitations:
* needs exactly 10 monsters (more will be ignored, less will use ones
  assigned for a random level)
* doesn't support weights, place: or draconian flavours
And inherited from vault_mon_list:
* doesn't support mon_spec, just monster types

--------------------------------------------------------------------------------
c72d970d56 | Adam Borowski | 2011-10-01 15:46:31 +0200

Unify monster choice code for Abyss, Pan (now works) and regular levels.
Also, have place:Pan use the common way.  It is used only very, very
occasionally in Pan itself, but 100% for Shadow Creatures in Pan and nearly
100% in three(!) of Zig level sets.

I've also altered the monster set of Pan rares.  Living creatures are bad
theme-wise (removed), undead are boring (untouched...  yet), demonic animals
were missing (added).  Also, added a few oddities like profane servitors.

--------------------------------------------------------------------------------
3d2760f8d1 | Adam Borowski | 2011-10-01 14:45:10 +0200

Remove an old hack for placing Abyss monsters.

--------------------------------------------------------------------------------
8462aac112 | Adam Borowski | 2011-10-01 14:02:07 +0200

Get rid of redundant mons_abyss().
It has strictly less usefulness that mons_rare_abyss() and the latter is
exactly as fast to use (bool vs int).  And we had to maintain a separate
list that could get out of sync.

Also, s/mons_rare_abyss/mons_abyss_rare/ as all other branches use that order.

--------------------------------------------------------------------------------
c748314e68 | Adam Borowski | 2011-10-01 14:00:39 +0200

Make holies hang to blessed weapons.
Angels were hardcoded to scourges and daevas to eudemon blades, even though
both have wider selections than that.

--------------------------------------------------------------------------------
d340038f99 | Adam Borowski | 2011-10-01 13:20:57 +0200

Purge a couple of unused functions from Dwarf lua.

--------------------------------------------------------------------------------
eb2b41b959 | Adam Borowski | 2011-10-01 13:17:40 +0200

Don't let Ely heal your friends when doing her revenge.

--------------------------------------------------------------------------------
1533c11065 | Adam Borowski | 2011-10-01 13:12:35 +0200

Revert the barely started holy Pan level, leaving the seraph tile.
I didn't fully stash that commit away while switching to fix the corpse bug.

--------------------------------------------------------------------------------
f9dca19b17 | Adam Borowski | 2011-10-01 13:07:31 +0200

Make Elyvilon heal nearby hostiles when you kill an apis.
It's a very mild effect compared to TSO's one.  We might try something like
a good chance to lifesave everyone you kill for a duration, but this one is
simpler.  But is it enough?

Ely is not that keen on the revenge stuff, though, so it might be.

--------------------------------------------------------------------------------
41b4775949 | Adam Borowski | 2011-10-01 12:01:20 +0200

Fix apis and pearl dragon corpses in tiles.

--------------------------------------------------------------------------------
12feed0393 | Adam Borowski | 2011-10-01 11:59:26 +0200

wip: holy Pan level

--------------------------------------------------------------------------------
da6d1c2e9b | Chris Campbell | 2011-10-01 03:16:40 +0100

Fix compilation
Oops!

--------------------------------------------------------------------------------
f4dd414b52 | Adam Borowski | 2011-10-01 00:49:22 +0200

Fix a format warning on win64.
Yay for longs being only half a word long.

--------------------------------------------------------------------------------
3d71ce5f9d | Adam Borowski | 2011-10-01 00:49:22 +0200

Mostly correct uppercasing/lowercasing of Unicode strings.  ĳ and ß are still 
wrong.
Ok, I can understand Germans having ß as a lowercase-only letter which can
be at most approximated with SS/Ss when uppercased, but Dutch ĳ rather than
ij is plain stupid.  And it requires a thorough reworking, needing special
libc functions just for one alleged "letter".

--------------------------------------------------------------------------------
6df978ce34 | Chris Campbell | 2011-09-30 22:52:04 +0100

Don't create 2 snakes from 1 stick, upgrade venom-branded weapons as well

--------------------------------------------------------------------------------
932f328ea2 | Chris Campbell | 2011-09-30 22:20:58 +0100

Don't place altars guarded by angels as overflow altars
In this altar you actually have to get past the angel (and dig inside
the vault) in order to get the the altar, making it inappropriate as an
overflow.

--------------------------------------------------------------------------------
730f7b9bda | Florian Diebold | 2011-09-30 23:09:36 +0200

Reduce Webtiles cell size for small screens, and other layout improvements.
The minimap isn't yet scaled, though.

--------------------------------------------------------------------------------
af37f272c1 | Florian Diebold | 2011-09-30 23:09:36 +0200

Reset the client id when a monster leaves the view to prevent information leaks.

--------------------------------------------------------------------------------
d20ba134bc | Florian Diebold | 2011-09-30 23:09:35 +0200

Allow looking at other locations by right-clicking on the minimap in Webtiles.

--------------------------------------------------------------------------------
e2152d344d | Florian Diebold | 2011-09-30 23:09:35 +0200

A monster list for Webtiles.

--------------------------------------------------------------------------------
8c40f70433 | Florian Diebold | 2011-09-30 23:09:35 +0200

Fix the view sometimes being black after taking a stairs in Webtiles.

--------------------------------------------------------------------------------
eaf9bc1db6 | Florian Diebold | 2011-09-30 23:09:35 +0200

Webtiles: Redo the layout of the right column to make it more flexible.

--------------------------------------------------------------------------------
0f2e4f93bf | Florian Diebold | 2011-09-30 23:09:35 +0200

Refactor Webtiles rendering, and more preparations for monster list.
Most rendering code is moved to cell_renderer.js into the
DungeonCellRenderer class. It can now render to any canvas, which is
necessary for rendering the monster list.

Also, fix the monster bookkeeping in map_knowledge and add a stub
monster_list module.

Finally, some whitespace fixes.

--------------------------------------------------------------------------------
56e6f7b2fd | Florian Diebold | 2011-09-30 23:09:35 +0200

Send parts of map_knowledge to the Webtiles client.
This currently includes feat(), and a small part of the monster
info. monster and monster_info get a client_id field which identifies
visible monsters between turns, so that the full monster data doesn't
need to be sent every turn.

This also refactors the way tile data is sent, and reduces bandwidth
usage by removing overhead and omitting x/y coordinates for
consecutive cells.

--------------------------------------------------------------------------------
7e355bfe13 | Florian Diebold | 2011-09-30 23:09:35 +0200

Make Webtiles cell size variable.

--------------------------------------------------------------------------------
c2528fc162 | elliptic | 2011-09-30 17:03:12 -0400

Make Stalkers and Warpers start with a spell memorized.
Amnesia sources are common now if they really want to forget it, and this is
more consistent with other classes.

--------------------------------------------------------------------------------
44b0788f32 | Adam Borowski | 2011-09-30 22:02:44 +0200

Don't give draconians Armour skill at start.

--------------------------------------------------------------------------------
74e9e6f57d | Adam Borowski | 2011-09-30 21:21:27 +0200

A pan vault with some shining bacon.

--------------------------------------------------------------------------------
ffe86cfce9 | elliptic | 2011-09-29 23:13:19 -0400

Adjust some of the weights for ziggurat themes.
Snake, Spider, Dwarf: 10 -> 5. Earth: 1 -> 2.

--------------------------------------------------------------------------------
727f7d8326 | elliptic | 2011-09-29 23:13:19 -0400

More spell usage table formatting tweaks.

--------------------------------------------------------------------------------
62073eca30 | Raphael Langella | 2011-09-30 00:20:09 +0200

Update the skill screen help.

--------------------------------------------------------------------------------
d2e0e9fcb4 | Raphael Langella | 2011-09-30 00:20:09 +0200

Fix potions of experience when skill_focus is set to false.

--------------------------------------------------------------------------------
57c139695c | Adam Borowski | 2011-09-29 17:34:31 +0200

Forbid DS and Vp in statue form to wield holy weapons and join good gods.
This also makes them take extra damage from holy attacks -- I'm not sure if
that's right if they're unliving objects at that time.

--------------------------------------------------------------------------------
87e03a6917 | Adam Borowski | 2011-09-29 16:52:25 +0200

Add tridents and bardiches to snakeable items.
Halberds and glaives are there too, so a metal addition shouldn't hurt.

--------------------------------------------------------------------------------
68cadd6ec2 | Raphael Langella | 2011-09-29 15:50:11 +0200

Formatting fixes to the code and the help lines of shops.

--------------------------------------------------------------------------------
46d89fdbf2 | kittel | 2011-09-29 15:50:11 +0200

Add toggle selection shortcut to shopping interface

--------------------------------------------------------------------------------
dffb3d1d90 | Adam Borowski | 2011-09-29 12:53:03 +0200

An octopode-only mutation: tentacle spike.

--------------------------------------------------------------------------------
b8a9ff01e4 | Adam Borowski | 2011-09-29 12:53:02 +0200

Add compatibility settings for old demon glyphs, move the compat header down.
It doesn't make sense to take about pre-0.3.4 before a basic introduction to
the config file.

Also, I named the new file 0.9_monster_glyphs.txt rather than 091_... for two
reasons:
* we don't make feature changes in stable branches anymore
* the naming scheme would break for 0.10

Not sure what to do with old files.  If you disagree, please change it before
players start actually including the new file.

--------------------------------------------------------------------------------
d5a3af65ee | Adam Borowski | 2011-09-29 12:53:02 +0200

No extra large abominations in dumps, please. (kittel)

--------------------------------------------------------------------------------
8e6177a555 | Raphael Langella | 2011-09-29 12:45:39 +0200

Don't resume training skills which have never been set.

--------------------------------------------------------------------------------
d1f2ff89b8 | Raphael Langella | 2011-09-29 12:35:27 +0200

Add informations about skills to crash dumps.

--------------------------------------------------------------------------------
5b4f3a134a | Raphael Langella | 2011-09-29 12:35:26 +0200

Fix a crash when exiting the skill screen.

--------------------------------------------------------------------------------
350092ff7d | Raphael Langella | 2011-09-29 12:35:26 +0200

Fix a crash with default_manual_training.

--------------------------------------------------------------------------------
a2e3db3ebb | Zannick | 2011-09-29 07:54:39 +0200

Only name mimics "rune mimic" when their item is a misc item.

--------------------------------------------------------------------------------
0d57754157 | Adam Borowski | 2011-09-29 06:27:42 +0200

Un67's tile for ordinary staff.
It's de-rimmed (the rim added by the autorimmer is not as thick), with no
black in the texture and straightened a bit compared to the original.

--------------------------------------------------------------------------------
6eb9077a6d | Adam Borowski | 2011-09-29 05:03:02 +0200

Don't warn Jiyvaites about slime walls, they're immune.

--------------------------------------------------------------------------------
54b74c6ae4 | Adam Borowski | 2011-09-29 03:54:37 +0200

Give a small amount of points for runes for non-winners.
Way too little IMO.

--------------------------------------------------------------------------------
50333556e9 | Adam Borowski | 2011-09-29 03:49:01 +0200

Add a compile-time check for NUM_GODS <= MAX_NUM_GODS.
No idea why it uses a different enum unlike all other NUM_*, though.

--------------------------------------------------------------------------------
8d08629730 | Adam Borowski | 2011-09-29 03:42:19 +0200

Fix an invalid colour closing tag.
Fun thing, it worked well.  Appears that the contents of a closing tag don't
matter.

--------------------------------------------------------------------------------
af4cf4cc82 | Raphael Langella | 2011-09-29 00:27:13 +0200

More save compat fixing.

--------------------------------------------------------------------------------
6f4b0b0e17 | Raphael Langella | 2011-09-29 00:09:04 +0200

Tiles: update the skill panel regarding the latest skill changes.

--------------------------------------------------------------------------------
6cfc8c393b | Raphael Langella | 2011-09-29 00:01:09 +0200

Much better fix to save compat.
This part is getting messy...

--------------------------------------------------------------------------------
d1922a1679 | Raphael Langella | 2011-09-28 23:52:22 +0200

Fix save compat.

--------------------------------------------------------------------------------
d2e2dc8934 | elliptic | 2011-09-28 17:41:11 -0400

Cap the effect of gold on score.
Nobody will reach anywhere near 1M gold in an honest, non-botting game.

--------------------------------------------------------------------------------
a157125a75 | Chris Campbell | 2011-09-28 21:58:16 +0100

Adjust pacification targeting again, don't target neutrals by default

--------------------------------------------------------------------------------
7a7453bcfe | Chris Campbell | 2011-09-28 21:58:15 +0100

Update Bottle Blood description

--------------------------------------------------------------------------------
58b7734e2b | Chris Campbell | 2011-09-28 21:58:15 +0100

Reduce the breath timer on yellow drac acid spit

--------------------------------------------------------------------------------
20e9f9d154 | Chris Campbell | 2011-09-28 21:58:14 +0100

Don't start transmuters with identified potions

--------------------------------------------------------------------------------
905850ebe8 | Raphael Langella | 2011-09-28 22:36:47 +0200

Replace the unknown skill dance by skill training restrictions.
There's no more restriction on training unknown skills. By default, they are
disabled in manual mode and enabled in auto mode, but they can be freely
toggled if restrictions are met.

A skill can be trained if there's any available mean of exercising it.
Fighting, throwing, dodging, stealth, stabbing, T&D, UC and spellcasting can
always be trained.

Weapon skills require carrying a weapon of the type.
Armour requires wearing an armour with an evasion penalty.
Shields needs either wearing a shield, knowing condensation shield or being able
to cast it from a rod of warding or having the divine shield ability.
Evocations requires carrying an evocable item, or having a Nemelex ability.
Spell schools require knowing a spell of the school (Necromancy can be trained
with having a Kiku ability).
Invocations requires having any divine ability that exercises it.

For edge cases, requirements are a bit loose. No need to carry missiles to
train throwing (or it disables itself when you run out), no minimum spell
success, no cap on skill level with buckler and leather for example.

--------------------------------------------------------------------------------
54ef91c99c | Adam Borowski | 2011-09-28 17:15:00 +0200

s|/|| in "N/A".

--------------------------------------------------------------------------------
d18f556b11 | Adam Borowski | 2011-09-28 17:05:57 +0200

Fix a crash on wizmode &^R and on old saves with useless skills.
Extreme values of aptitudes can go out of bounds.

--------------------------------------------------------------------------------
0eb8d67d21 | Adam Borowski | 2011-09-28 17:05:57 +0200

Don't show useless skills at all in the menu.

--------------------------------------------------------------------------------
d09b59c618 | Adam Borowski | 2011-09-28 17:05:57 +0200

Show useless skills as N/A.

--------------------------------------------------------------------------------
44ada53d97 | Adam Borowski | 2011-09-28 17:05:56 +0200

Mark manuals of useless skills as useless.

--------------------------------------------------------------------------------
e224009a54 | Chris Campbell | 2011-09-28 15:49:29 +0100

Don't let spores affect unbreathing monsters or players

--------------------------------------------------------------------------------
a0867245b6 | Adam Borowski | 2011-09-28 16:19:44 +0200

Mark the Armour skill as useless for Draconians.

--------------------------------------------------------------------------------
cc2ed79063 | Adam Borowski | 2011-09-28 15:04:54 +0200

Increase the duration of Appendage.
At XL 1 you have around 0.000001 spell power.

--------------------------------------------------------------------------------
121c0cc836 | Adam Borowski | 2011-09-28 14:35:39 +0200

Halve the effect of XL against catlobe breath, keeping even chances at XL 14.
It had about no chance to petrify you at XL 27, guaranteed at XL 1.

--------------------------------------------------------------------------------
ea119eb2eb | Adam Borowski | 2011-09-28 14:19:56 +0200

Make nagas "slither" rather than "crawl" in some places.

--------------------------------------------------------------------------------
902296b857 | Adam Borowski | 2011-09-28 14:15:29 +0200

Split away enchantment code from monster.cc

--------------------------------------------------------------------------------
4d9c794224 | Adam Borowski | 2011-09-28 13:37:55 +0200

Simplify weapon restrictions for draconians -- no need to care about non-base.

--------------------------------------------------------------------------------
aead39c1e8 | Adam Borowski | 2011-09-28 13:26:48 +0200

Consider reaching attacks to be not calm for berserk purposes.

--------------------------------------------------------------------------------
4eb8e2b571 | Adam Borowski | 2011-09-28 12:59:52 +0200

Evict a doubled description to the database.

--------------------------------------------------------------------------------
52350051e7 | Adam Borowski | 2011-09-28 12:51:21 +0200

Fix twister tornado expiring.  Should last until it's gone.

--------------------------------------------------------------------------------
0025242b39 | Adam Borowski | 2011-09-28 12:46:23 +0200

Alas, poor MuTm and GhTm, we knew you well.
With no Evap/Fulsome, these are pointless since these races cannot transform.
And for Tmut spells that don't deal with transformations, St is over there.

--------------------------------------------------------------------------------
198febd804 | Adam Borowski | 2011-09-28 12:34:50 +0200

Set monster berserk duration in add_ench() so MONS ench:berserk works as 
expected.
The enchantment used to be added with no duration (and would immediately
expire) then amended by hand in go_berserk().  Let's do it consistently with
other enchantments.

--------------------------------------------------------------------------------
c04543471e | Adam Borowski | 2011-09-28 12:34:50 +0200

Add Breastly Appendage to forms allowed to fly as kenky and wield weapons.

--------------------------------------------------------------------------------
24a8700735 | Adam Borowski | 2011-09-28 11:19:12 +0200

Simplify a vault.

--------------------------------------------------------------------------------
bc5053e8c6 | Adam Borowski | 2011-09-28 11:19:12 +0200

Add ench: and perm_ench: to MONS specs.

--------------------------------------------------------------------------------
ae87eda9d9 | Adam Borowski | 2011-09-28 11:19:12 +0200

Allow setting mon_ench duration to infinite.
This removes the need to have separate temporary and permanent enchantments
or nasty hacks like old resetting of invisibility.

--------------------------------------------------------------------------------
2df84eff68 | elliptic | 2011-09-28 04:32:57 -0400

Make Transmuters start with Beastly Appendage memorized.
Unless they can't cast it, of course.

--------------------------------------------------------------------------------
7fcbb5d96e | elliptic | 2011-09-28 04:04:59 -0400

Remove the starting potions from Transmuters.
Since they don't get Evaporate any more.

--------------------------------------------------------------------------------
79a7ee3e29 | Adam Borowski | 2011-09-27 17:00:44 +0200

Beastly Appendage: no beak, horns at 2.
Aux mutations do the following damage:
                chance  damage
horns:          1/3     5+3*lev         +stun
beak:           1/3     6
tentacles:      1/3     4*lev
hooves:         1/2     5+lev*5/3       +ignoring AC
talons:         1/2     5+lev
fangs:          1/5     2*lev+UC/5      +Vp accuracy/healing

so horns 2, tentacles 3 and talons 3 do about the same damage.  Beak on the
other hand has only one level.

It's likely you'll want to revisit this table or the spell; this commit deals
with relative powers of appendages not the overall strength.

--------------------------------------------------------------------------------
ef878b2a1b | elliptic | 2011-09-27 10:36:57 -0400

Re-add a stealth penalty for hooves.

--------------------------------------------------------------------------------
f74efd83fc | Adam Borowski | 2011-09-27 14:33:43 +0200

Remove Evap and Fulsome from Tm starting book, add a new spell: Beastly 
Appendage.
It gives you a temporary aux mutation on an uncovered body slot.

Not balanced at all, please help determine what appropriate mutation levels
would be.

--------------------------------------------------------------------------------
ece7747c2c | Adam Borowski | 2011-09-27 14:33:43 +0200

Remove a duplicated tile.
This one differs only by a mace being hard-coded into the tile rather than
composed the usual way.

--------------------------------------------------------------------------------
f36c359a3b | Vsevolod Kozlov | 2011-09-27 16:31:10 +0400

Don't restrict volcano entries to cave levels.
Without this, they are very rare.  They still should look sufficiently fitting
on pretty much any ruinated level in Lair, regardless of its layout.

--------------------------------------------------------------------------------
6f49daeb37 | David Lawrence Ramsey | 2011-09-27 06:53:46 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
b608049555 | elliptic | 2011-09-27 04:30:23 -0400

Fix crash with electrocution discharge in water (#4623).

--------------------------------------------------------------------------------
41f8dc6525 | elliptic | 2011-09-27 03:38:42 -0400

Give Antaeus sense invisible.

--------------------------------------------------------------------------------
621659239e | elliptic | 2011-09-27 02:33:46 -0400

Add a sentence about the drawbacks of Swiftness to its description.

--------------------------------------------------------------------------------
149b3fbe8d | elliptic | 2011-09-27 02:29:47 -0400

Halve stealth when swift.
Contributions to stealth from items aren't halved though.

--------------------------------------------------------------------------------
503bffee12 | elliptic | 2011-09-27 02:17:00 -0400

Make swiftness halve your passive detection rate for traps and doors.

--------------------------------------------------------------------------------
ec7076438f | elliptic | 2011-09-26 23:43:27 -0400

Tweak formatting of the spell usage list.

--------------------------------------------------------------------------------
f0278bbff5 | elliptic | 2011-09-26 23:43:27 -0400

Change sorting for spell usage list.

--------------------------------------------------------------------------------
851cb31783 | Adam Borowski | 2011-09-27 03:08:44 +0200

Ettins on giant Zig levels.

--------------------------------------------------------------------------------
5f4262013a | David Lawrence Ramsey | 2011-09-26 19:47:57 -0500

Decapitalize "Chaos spawn".

--------------------------------------------------------------------------------
ac48a2b3b8 | Adam Borowski | 2011-09-27 02:22:24 +0200

Banish some octopodes.
Abyss is supposed to have all kinds of weird stuff.  Now that my evil plans to
fill Ziggurats with "octopode spells:bolt_of_fluffiness ; shit-covered stick"
have been thwarted by Zig code limitations, I need to put them somewhere :p

--------------------------------------------------------------------------------
b2ad95ca2c | Adam Borowski | 2011-09-27 02:10:00 +0200

We know octopodes are abominations, make them not as big.

--------------------------------------------------------------------------------
fb7d0f7306 | Adam Borowski | 2011-09-27 02:09:30 +0200

Give monster octopodes some gear.

--------------------------------------------------------------------------------
eb58c105a5 | Adam Borowski | 2011-09-27 01:23:41 +0200

Add cherubs to holy Zig levels.

--------------------------------------------------------------------------------
4ab68a9f04 | Adam Borowski | 2011-09-27 01:22:52 +0200

Decapitalize "Angel", "Cherub" and "Daeva".

--------------------------------------------------------------------------------
ec5e27b6c1 | Adam Borowski | 2011-09-27 01:19:36 +0200

Give cherubs their gear, differentiate stats from angels.
They may use either a bow or a sling+buckler, and get a melee weapon of
flaming on top of that.

Speed 10 not 15, still more deadly than angels -- they're tier 2 not 7 in
Christian mythology, after all.

Resistances:
angel   rPois rElec++
cherub  rPois rElec+ rF+
daeva   rPois

--------------------------------------------------------------------------------
4e0d75b8c5 | Adam Borowski | 2011-09-27 01:19:36 +0200

Use all currently available holies on holy Zig levels.
Pearl dragons probably make already too harsh levels harsher, but at least
they don't smite.

Holy swine don't belong here since they're supposed to be holies who fell
victim to porkalator, but variety is so low that anything that's not an
angel or daeva counts.

--------------------------------------------------------------------------------
485a86c7bb | Adam Borowski | 2011-09-27 01:19:36 +0200

Put co's alternate shedu tile in UNUSED/.

--------------------------------------------------------------------------------
edd277bc17 | Adam Borowski | 2011-09-27 01:19:36 +0200

Fix wight transparency.

--------------------------------------------------------------------------------
03af59c2f4 | Adam Borowski | 2011-09-27 01:19:36 +0200

Organize tiles a bit.

--------------------------------------------------------------------------------
f1f5d41cf2 | Adam Borowski | 2011-09-27 01:19:36 +0200

Curio's new Grinder, consistent with new shadow imps.

--------------------------------------------------------------------------------
41f9acc5e7 | Adam Borowski | 2011-09-27 01:19:36 +0200

Move "deformed foo" tiles to vault/

--------------------------------------------------------------------------------
b64770d531 | Chris Campbell | 2011-09-27 00:02:50 +0100

Remove a misleading speech line

--------------------------------------------------------------------------------
11430422ed | Raphael Langella | 2011-09-26 23:55:56 +0200

Fix a crash with crawl --mapstat.

--------------------------------------------------------------------------------
6a0c9c1be5 | Raphael Langella | 2011-09-26 20:26:41 +0200

Prevent abyss morphing from putting monsters on unhabitable terrain.

--------------------------------------------------------------------------------
acaf588c0d | Raphael Langella | 2011-09-26 20:19:05 +0200

Don't show decimal for mastered skills.

--------------------------------------------------------------------------------
ed77eddab2 | Raphael Langella | 2011-09-26 20:19:05 +0200

Don't crash when setting a skill above 27 in wizmode.
Mostly useful for stealth.

--------------------------------------------------------------------------------
53212c704b | Adam Borowski | 2011-09-26 18:17:00 +0200

More catlobes in Lair Zig levels.

--------------------------------------------------------------------------------
24f71c93c6 | Adam Borowski | 2011-09-26 18:17:00 +0200

Spriggan levels for Ziggurats.

--------------------------------------------------------------------------------
c1447d1313 | Adam Borowski | 2011-09-26 18:17:00 +0200

Adjust the Forest monster set a bit.

--------------------------------------------------------------------------------
ebb05b803b | Adam Borowski | 2011-09-26 18:17:00 +0200

A way to see which props slow us down the most.

--------------------------------------------------------------------------------
3f757922d4 | Adam Borowski | 2011-09-26 18:16:59 +0200

A whitespace fix.

--------------------------------------------------------------------------------
ed3764ac24 | Adam Borowski | 2011-09-26 18:16:59 +0200

For now, fix incorrect rod description for Trog.
There is a discussion but no consensus yet, it might take a while.

--------------------------------------------------------------------------------
b464ac6246 | Chris Campbell | 2011-09-26 16:33:12 +0100

When you escape from the Abyss, return to where you came from. (GreatZebu)
Currently if you are banished from Pan or from a portal vault, when you
return from the Abyss you're returned to the dungeon. This is somewhat
weird behavior, and prevents collecting all runes if you're banished on
a unique Pan level.

Now instead you will always be returned to the level you came from.

(Pan exits have already been made more common)

--------------------------------------------------------------------------------
1153542442 | Adam Borowski | 2011-09-26 12:37:38 +0200

Disable the Hive, guarantee some very basic food supply.

--------------------------------------------------------------------------------
2108932a94 | elliptic | 2011-09-26 03:37:56 -0400

Make SH value non-random.

--------------------------------------------------------------------------------
5831804c10 | elliptic | 2011-09-26 00:59:38 -0400

Fix some other mistakes with skill_rdiv().

--------------------------------------------------------------------------------
7dd7dc6cae | elliptic | 2011-09-26 00:53:06 -0400

Fix disc of storms producing 49 times as many effects.

--------------------------------------------------------------------------------
4e0edf400b | Adam Borowski | 2011-09-26 00:46:01 +0200

Disable the "This spell would cause penance" warning, it needs work.
False positives are too annoying.

--------------------------------------------------------------------------------
bb47437567 | Adam Borowski | 2011-09-25 23:41:21 +0200

Call Wyrmbane's melee_effect() again if a monster dies to special damage.

--------------------------------------------------------------------------------
61bddefd3f | Adam Borowski | 2011-09-25 23:41:21 +0200

Be more verbose about which contribs have to be built.

--------------------------------------------------------------------------------
32ff1807f1 | elliptic | 2011-09-25 16:43:41 -0400

LRD explosion changes.
Explosions now don't expand to regions that are locally separated from your
vision by walls. In other words, hitting monsters on the other side of a
small pillar still works, but hitting monsters who are actually separated from
you by walls is no longer possible (unless LRD breaks a path to them).

--------------------------------------------------------------------------------
af53dfec6b | ldierk | 2011-09-25 19:13:32 +0100

Ely targetting: Target wounded friends and hostiles that can be pacified.

--------------------------------------------------------------------------------
e5cecc6e91 | elliptic | 2011-09-25 13:55:14 -0400

Don't let Ely save the lives of summons whose duration expires.
For simplicity and consistency with Elyvilon's healing of enemies during
penance, restrict to saving from attacks caused by you or a monster.

--------------------------------------------------------------------------------
aa2a934568 | elliptic | 2011-09-25 13:35:52 -0400

Don't give Elyvilon piety for healing non-hostiles.
This is flavorful, but repeatedly getting your friends hurt so that you can
gain piety really isn't.

--------------------------------------------------------------------------------
88db16ce4f | elliptic | 2011-09-25 13:34:07 -0400

Don't check for pacifiability when healing a non-hostile.

--------------------------------------------------------------------------------
71c29b6ad6 | Florian Diebold | 2011-09-25 17:53:29 +0200

Some more logging to help debug the Webtiles server.

--------------------------------------------------------------------------------
f300b7878d | Chris Campbell | 2011-09-25 16:22:15 +0100

Don't allow firing Makhleb destruction out of LOS
Might also help prevent orb of electricity bouncing back and killing the
user.

--------------------------------------------------------------------------------
4978524f0e | Chris Campbell | 2011-09-25 16:16:40 +0100

Boost Imprison duration

--------------------------------------------------------------------------------
14ca31427e | Chris Campbell | 2011-09-25 16:13:53 +0100

Properly display Imprison as being smite-targeted

--------------------------------------------------------------------------------
9ec0fcd679 | Chris Campbell | 2011-09-25 05:55:40 +0100

Remove a broken temple entry vault
It doesn't get placed since it contains a disconnected branch entry.

--------------------------------------------------------------------------------
c593da7485 | Adam Borowski | 2011-09-25 04:41:44 +0200

Fix Tukima's Ball not passing the spell power to dancing weapons.

--------------------------------------------------------------------------------
10a0642e55 | Adam Borowski | 2011-09-25 04:41:44 +0200

Warn and confirm if the shillelagh would harm allies.

--------------------------------------------------------------------------------
7c0a142cda | Adam Borowski | 2011-09-25 04:41:44 +0200

Warn and confirm when a mottled drac would splash allies.

--------------------------------------------------------------------------------
6548225e08 | Adam Borowski | 2011-09-25 04:41:44 +0200

C++size counted_monster_list, make it available for other users.

--------------------------------------------------------------------------------
f02ac87644 | Adam Borowski | 2011-09-25 04:41:44 +0200

Show mottled draconians who will be affected by their spit.

--------------------------------------------------------------------------------
e0ddfe3497 | Adam Borowski | 2011-09-25 04:41:44 +0200

Evict a description function from target.h, it has nothing to do with tracers.
It belongs in directn.h which deals, among others, with descriptions, but
I don't want to add all the big direction chooser classes as a spl-util.h
dependency.

directn.{h,cc} needs to be split up, badly.

--------------------------------------------------------------------------------
6353cda68f | Adam Borowski | 2011-09-25 04:41:43 +0200

Make the Orb glow hurt stealth severely.

--------------------------------------------------------------------------------
9652b769d2 | Adam Borowski | 2011-09-25 04:41:43 +0200

Fix the Orb affecting your teleports from the other end of the world.
It is hard to explain theme-wise.

We might make it affect the level you're on, for now it is within the area
of visible glow.

--------------------------------------------------------------------------------
c9f08d3fa8 | Adam Borowski | 2011-09-25 04:41:43 +0200

Revert "Don't display innaccurate cTele messages when picking up the orb", hush 
just the message.
The original commit fails to remove level flags, it should just not spam.

--------------------------------------------------------------------------------
344cfaf5c0 | Chris Campbell | 2011-09-25 00:20:42 +0100

Adjust the Blade card's effects - different sets of brands for power levels 0 
and 1

--------------------------------------------------------------------------------
f900001c55 | Chris Campbell | 2011-09-25 00:20:42 +0100

Make the Tomb card a little rarer

--------------------------------------------------------------------------------
9a029ab557 | Chris Campbell | 2011-09-25 00:20:41 +0100

Remove instant teleports from the portal card, give it a chance of blinking you 
as well as the teleport instead

--------------------------------------------------------------------------------
b5a8dbc388 | Chris Campbell | 2011-09-25 00:20:41 +0100

Remove some references to potion cursing

--------------------------------------------------------------------------------
992c02ae6e | Chris Campbell | 2011-09-25 00:20:40 +0100

Add Freezing Cloud to the book of Ice

--------------------------------------------------------------------------------
c1944d8924 | Adam Borowski | 2011-09-25 00:50:21 +0200

Don't crash when waking a mimic on a crowded level.

--------------------------------------------------------------------------------
810747af71 | Adam Borowski | 2011-09-25 00:47:02 +0200

Fix a crash on feature mimics I just managed to introduce.

--------------------------------------------------------------------------------
6ffc466d3a | Adam Borowski | 2011-09-25 00:10:52 +0200

Add a redundant assertion to make recognizing itemless mimic bugs easier.
"Range error 27000/2000" requires reading a backtrace.

--------------------------------------------------------------------------------
f65b820f39 | Adam Borowski | 2011-09-25 00:10:51 +0200

Don't place a mimic onto the map until it is ready to go.
A number of things can trigger on placement, some will crash if the mimic's
item is missing.

--------------------------------------------------------------------------------
68a664f41a | Adam Borowski | 2011-09-25 00:10:51 +0200

Don't crash if mimic creation fails due to menv[] being full.
While this is still a bad situation, it can occur legitimately.  Thus, like
dropping an item failing due to this technical reason, let's give an error
message but not crash.

--------------------------------------------------------------------------------
51f57c8d66 | Adam Borowski | 2011-09-25 00:10:51 +0200

Don't use the word "mid" for indices into the menv[] array.

--------------------------------------------------------------------------------
57e7e90e14 | Adam Borowski | 2011-09-25 00:10:51 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
af8a604f83 | Adam Borowski | 2011-09-25 00:10:51 +0200

Sort items in the inventory by their letter if no other order is requested.

--------------------------------------------------------------------------------
796aa7dd18 | Adam Borowski | 2011-09-25 00:10:51 +0200

Rename the "DOS" options section (monqy).

--------------------------------------------------------------------------------
a0d2f062df | Adam Borowski | 2011-09-25 00:10:51 +0200

Make Purification cure all rot rather than "just" 100.
The player can just use it again, and this way smartasses can't claim a bug
in the description.

--------------------------------------------------------------------------------
4440881007 | Raphael Langella | 2011-09-25 00:05:17 +0200

Fix bad formatting in skill screen when using tiles and no menu icons (#4602).

--------------------------------------------------------------------------------
70af62e914 | Chris Campbell | 2011-09-24 17:39:12 +0100

Adjust a demon-summoning message to fit better with invisible summons

--------------------------------------------------------------------------------
c7c5029965 | Chris Campbell | 2011-09-24 17:38:12 +0100

Make the restrictions on spells chosen by pacified monsters stricter
Only escape spells, to prevent them from casting some problematic spells
like Shadow Creatures (filling levels with neutral summons) or
Invisibility (giving the player penance for accidentally bumping into
them).

--------------------------------------------------------------------------------
231e6c2592 | Chris Campbell | 2011-09-24 17:06:27 +0100

Don't show additional invis disturbances for friendlies

--------------------------------------------------------------------------------
9a88115e14 | Chris Campbell | 2011-09-24 16:55:25 +0100

Let Foxfire summon invisibles when the player has no SInv, give a warning if 
they're hostile

--------------------------------------------------------------------------------
3276142315 | Chris Campbell | 2011-09-24 16:55:02 +0100

Allow haunt to summon invisible monsters when the player has no SInv

--------------------------------------------------------------------------------
dd80475ddc | Chris Campbell | 2011-09-24 16:53:11 +0100

Always correctly mark the location of friendly invisible monsters with a 
disturbance glyph

--------------------------------------------------------------------------------
87bdbc5874 | Vsevolod Kozlov | 2011-09-24 10:59:42 +0400

Fix whitespace.

--------------------------------------------------------------------------------
5f992f5205 | David Ploog | 2011-09-24 03:10:18 +0200

cloud_traps.des (mumra), #4514.
Experimentally allowing cloud traps. The traps cover a range from early
dungeon to Zot. They use CHANCE: 40% and allow_dup extra right now.
There are some problems, for example the glyph colours.

--------------------------------------------------------------------------------
662d137a30 | David Ploog | 2011-09-24 02:31:25 +0200

Add five gorgeous altar-themed large vaults (evilmike), #4509.
Altars to Kikubaaqudgha, Makhleb, Okawaru, Sif Muna, Vehumet.
Also made header of altars.des more precise.

--------------------------------------------------------------------------------
65df23cd9e | David Ploog | 2011-09-24 02:31:25 +0200

Fewer vampire mosquitoes in Swamp entry vault (dtsund), #4371.

--------------------------------------------------------------------------------
8cd559912e | David Ploog | 2011-09-24 02:31:25 +0200

Fix description.

--------------------------------------------------------------------------------
9627ccd63c | Chris Campbell | 2011-09-24 00:18:28 +0100

Distinguish between disliked (piety loss) and strongly disliked (penance) acts 
on the religion screen

--------------------------------------------------------------------------------
35014a46c1 | Chris Campbell | 2011-09-24 00:18:27 +0100

Merge Ely's Restoration into the Purification ability, increase its cost a 
little (#4591)

--------------------------------------------------------------------------------
a3e7bb3c42 | Chris Campbell | 2011-09-24 00:18:27 +0100

Elyvilon: piety loss instead of penance for ally deaths (#4591)

--------------------------------------------------------------------------------
95196ac9c2 | ldierk | 2011-09-24 00:18:26 +0100

Add Abyss and Pan to ?/B

--------------------------------------------------------------------------------
c28aa670c2 | David Ploog | 2011-09-24 00:23:09 +0200

Collapsing statue vault (ldierk), #4561.
Two minor issues, perhaps someone can help:
1. Bumping into the statue does not make it crumble, you need * direction
   (spells work).
2. The message announcing the statue should interrupt exploration/travel.

--------------------------------------------------------------------------------
bdf47e0455 | Chris Campbell | 2011-09-23 22:56:01 +0100

Typo fix (Fyren)

--------------------------------------------------------------------------------
451e6e8409 | David Ploog | 2011-09-23 23:36:42 +0200

Garden entry vaults (ldierk), #4561.

--------------------------------------------------------------------------------
c8bde41471 | Chris Campbell | 2011-09-23 17:29:48 +0100

Don't display innaccurate cTele messages when picking up the orb

--------------------------------------------------------------------------------
f23ab20282 | Raphael Langella | 2011-09-23 17:45:23 +0200

Make sure we never create floor mimic or other silly type.

--------------------------------------------------------------------------------
cd4fb90d2d | Raphael Langella | 2011-09-23 17:45:23 +0200

Improve in-game descriptions of skill modes.

--------------------------------------------------------------------------------
d28088bfd8 | Raphael Langella | 2011-09-23 17:45:23 +0200

Add commented skill_focus to the default init.txt.

--------------------------------------------------------------------------------
c6a4ac64c9 | Adam Borowski | 2011-09-23 15:26:50 +0200

Fix a couple of format errors.

--------------------------------------------------------------------------------
13d83069c3 | Adam Borowski | 2011-09-23 15:26:01 +0200

Don't disable _FORTIFY_SOURCE.

--------------------------------------------------------------------------------
296919cc4e | Samuel Bronson | 2011-09-23 11:59:57 +0200

Plants will no longer get "caught" in nets, even if hit (#4566)
Instead, the nets will get caught on the plants.

--------------------------------------------------------------------------------
9fce87532e | Samuel Bronson | 2011-09-23 11:54:33 +0200

Don't let monsters use throwing nets on foes that can never move (#4566)
They'll still look silly if a net somehow gets stuck on them, but at least
this keeps monsters from doing it *on purpose*...

--------------------------------------------------------------------------------
64c27fe18c | Samuel Bronson | 2011-09-23 11:53:39 +0200

Clarify the "Wizard targeting commands" section of the wizmode help screen.
I had accidentally raised myself by five levels by the time I figured out
that I was supposed to be typing "x?" *without* first typing "&"...

(Also, take "?" off that screen, since there's no section where it belongs,
the reader presumably already pressed it to get the help screen, and it
looks a bit confusing below the targeting commands section now.)

--------------------------------------------------------------------------------
a2abffa3ab | Samuel Bronson | 2011-09-23 11:53:02 +0200

Fix line_reader's handling of the DELETE key.

--------------------------------------------------------------------------------
0a4b700a6b | Samuel Bronson | 2011-09-23 11:52:50 +0200

Clarify prompt for &M (create monster by name) wizard mode command.

--------------------------------------------------------------------------------
4ffdd77b27 | Samuel Bronson | 2011-09-23 11:52:35 +0200

Move "get lots of Zot Points" wizmode command from ^Z to Z.
The motivation for this is that Ctrl-Z doesn't seem to be reliably
input-able. (In other words, it doesn't work for me.)

--------------------------------------------------------------------------------
d5e784bd4f | Adam Borowski | 2011-09-23 11:38:19 +0200

Warn about penance/excommunication for god-forbidden spells more prominently.
The spell description includes another line for instant-excomm ones, and all
forbidden spells cause a prompt when you attempt to cast them.

The latter may be tedious for übernagas who instantly get out of Trog
penance in the very same Firestorm cast they got into penance for, but
somehow I don't feel sorry for them.

--------------------------------------------------------------------------------
bcbc5b47f8 | Adam Borowski | 2011-09-22 21:50:51 +0200

Use standard capitalization for the Makefile.

--------------------------------------------------------------------------------
3eb6326858 | Raphael Langella | 2011-09-22 21:42:10 +0200

Fix inverted logic (#4596).

--------------------------------------------------------------------------------
11ebe60c7f | Adam Borowski | 2011-09-22 21:03:09 +0200

Let the saved skill state store skills * 10 (up to 270).
There's no need to skimp on a few tens of bytes in a single short-lived
structure.

--------------------------------------------------------------------------------
0ac8e2a4ac | Adam Borowski | 2011-09-22 18:36:51 +0200

Untangle redundancy, get rid of can_equip(), fix hats with beaks/horns.
can_equip() for some slots wanted all items, for some only hard ones.  And
all checks there were already done elsewhere.

--------------------------------------------------------------------------------
274191217f | elliptic | 2011-09-22 11:02:08 -0400

Fix errors in the conversion to smooth skills (reid).

--------------------------------------------------------------------------------
31c5373e5d | ldierk | 2011-09-22 15:39:34 +0100

Make get_branch_keys use the proper function to determine if a branch is 
unfinished

--------------------------------------------------------------------------------
159e35ec97 | Raphael Langella | 2011-09-22 13:47:09 +0200

New wight tile which shows wielded weapon (Denzi).

--------------------------------------------------------------------------------
728287d8ee | Raphael Langella | 2011-09-22 13:29:47 +0200

Give toadstools a speed of 0 like other fungi (#4584).

--------------------------------------------------------------------------------
cd2b5d1c2b | Raphael Langella | 2011-09-22 13:05:49 +0200

Mention if an item is a mimic when listing items with &'.

--------------------------------------------------------------------------------
bb1b322f92 | Zannick | 2011-09-22 12:40:19 +0200

Add a special rune mimic.

--------------------------------------------------------------------------------
4d0a09add7 | elliptic | 2011-09-21 23:34:37 -0400

Fix Statue Form AC.

--------------------------------------------------------------------------------
a523d13122 | elliptic | 2011-09-21 21:28:59 -0400

Make conjured ball lightning explode when it times out.

--------------------------------------------------------------------------------
9962965f1a | elliptic | 2011-09-21 21:28:59 -0400

Increase CBL duration slightly.

--------------------------------------------------------------------------------
4c52e6e5db | Raphael Langella | 2011-09-22 00:03:37 +0200

Revert "Revert "Remove an assert.""
This reverts commit 698ec979bc50eebbd92c42fd677e0714bdfd8d03.

This assert still causes crashes. If you level up fighting
calc_hp is called before the skill is levelled up.

--------------------------------------------------------------------------------
e7b468dbcb | Adam Borowski | 2011-09-21 22:51:19 +0200

Teach CIA about ldierk and SamB.

--------------------------------------------------------------------------------
7663f3a9c8 | ldierk | 2011-09-21 22:49:42 +0200

?/G uses altar colours

--------------------------------------------------------------------------------
140a26aac7 | Chris Campbell | 2011-09-21 21:39:02 +0100

Adjust a shadow demon vault

--------------------------------------------------------------------------------
9c43462fc1 | Raphael Langella | 2011-09-21 22:28:29 +0200

Don't exercise armour if EVP is null.
The exercise check is based on armour mass. Any armour heavier than animal skin
has a chance off exercising armour. This change only affect steam dragon armour
which is slightly heavier than animal skin but still has an EVP of 0.

--------------------------------------------------------------------------------
080a45ce3f | Raphael Langella | 2011-09-21 22:28:29 +0200

On click, unwield weapons of reaching instead of evoking them (#4581).

--------------------------------------------------------------------------------
bcc6db97b1 | Raphael Langella | 2011-09-21 22:28:29 +0200

Prevent reskilling to and using manual for useless skills.

--------------------------------------------------------------------------------
95208625d0 | Raphael Langella | 2011-09-21 22:28:29 +0200

Remove some obsolete code.

--------------------------------------------------------------------------------
7731fed1b1 | Raphael Langella | 2011-09-21 22:28:28 +0200

Reduce the frequency of Abyss speed updates for Chei.

--------------------------------------------------------------------------------
71c7cf8ad0 | Raphael Langella | 2011-09-21 22:28:28 +0200

Fix a mimic crash in tiles (#4570).

--------------------------------------------------------------------------------
231fcc0689 | Raphael Langella | 2011-09-21 22:28:28 +0200

Fix Vp and Dg crash on new game (#4579).

--------------------------------------------------------------------------------
2f359a39d1 | Raphael Langella | 2011-09-21 22:28:28 +0200

Remove the initial 25 XP (#4577).

--------------------------------------------------------------------------------
698ec979bc | Raphael Langella | 2011-09-21 22:28:28 +0200

Revert "Remove an assert."
This reverts commit 59ad0cbf5789a0d3b39f2ff63596311e683f637b.

--------------------------------------------------------------------------------
f3ec653ad1 | Raphael Langella | 2011-09-21 22:28:28 +0200

Update HP and MP whenever the relevant skill is trained, not on level up.

--------------------------------------------------------------------------------
ed731f3e89 | David Ploog | 2011-09-21 21:43:35 +0200

Update CREDITS.
Add Michael Gagno, Samuel Bronson, Pete Hurst.

--------------------------------------------------------------------------------
c69af234e1 | elliptic | 2011-09-21 15:27:57 -0400

Fix rod recharge rate.

--------------------------------------------------------------------------------
0b18939838 | Adam Borowski | 2011-09-21 21:09:54 +0200

Ensure CREDITS.txt is sorted upon release.

--------------------------------------------------------------------------------
84e8022818 | Adam Borowski | 2011-09-21 21:06:19 +0200

Add ldierk to credits.
Not running the sorter to keep the file diffable.

--------------------------------------------------------------------------------
f88fe0f4f3 | ldierk | 2011-09-21 21:05:18 +0200

new hotkeys and colours for ?/G

--------------------------------------------------------------------------------
fe11b4fe7b | Adam Borowski | 2011-09-21 20:50:40 +0200

Sync the manual from the wiki.

--------------------------------------------------------------------------------
127aff5a7c | Adam Borowski | 2011-09-21 20:44:54 +0200

A slightly better floor for the emerald cavern.

--------------------------------------------------------------------------------
a47200b76c | Adam Borowski | 2011-09-21 19:41:27 +0200

Fix a crash on skill training simulation (potion of experience).

--------------------------------------------------------------------------------
68a1157f42 | Adam Borowski | 2011-09-21 19:40:39 +0200

Add another out-of-array assert.
It doesn't seem to produce problems currently, but it's a potential
heisenbug if the compiler decides to put something else there.

--------------------------------------------------------------------------------
f5bb14e7e0 | Adam Borowski | 2011-09-21 19:04:13 +0200

Fix the new warnings.

--------------------------------------------------------------------------------
1a04297a63 | Adam Borowski | 2011-09-21 18:50:58 +0200

Add more printf warnings (SamB).

--------------------------------------------------------------------------------
886db4331b | Adam Borowski | 2011-09-21 18:40:30 +0200

Simplify, so manuals for useless skills won't require an additional check.

--------------------------------------------------------------------------------
f4b7a15e34 | Adam Borowski | 2011-09-21 16:16:38 +0200

Correct spelling in a comment.

--------------------------------------------------------------------------------
7980e389a6 | Adam Borowski | 2011-09-21 16:03:24 +0200

Update the changelog, up to 0.10-a0-807-gb39258c.

--------------------------------------------------------------------------------
6c08f7e0f2 | Chris Campbell | 2011-09-21 14:58:38 +0100

Don't mark manuals for skills you have maxed as useless if they're not 
identified

--------------------------------------------------------------------------------
b39258c4f9 | Adam Borowski | 2011-09-21 14:26:45 +0200

Explain why turning into a spider doesn't disentangle you.

--------------------------------------------------------------------------------
1adce68411 | Adam Borowski | 2011-09-21 14:20:23 +0200

Upon casting Dragon Form, don't call a web a net.

--------------------------------------------------------------------------------
f05240ed17 | Adam Borowski | 2011-09-21 13:58:49 +0200

Enable FeMo, nerf them.
I don't personally believe they are differentiated enough from Fi, beyond
being strictly better, which I guess is the primary reason people want them.
Still, the free piety argument is something I can't dismiss outright, so
here you go.

FeFi:       Fi 2.7, UC 3.6, Dod 4.0
FeMo (old): Fi 2.7, UC 3.6, Dod 4.0, Sth 2.7
FeMo (new): Fi 1.8, UC 2.7, Dod 4.0, Sth 2.7, +20 piety

--------------------------------------------------------------------------------
2e3edf5f5e | Adam Borowski | 2011-09-21 13:01:21 +0200

Fix extending a transformation sometimes doing nothing.
It could increase the duration by literally 0, or a bit more often, by just
10 or 20 aut.  You could work this around by transforming to something else
(including a human for 0 mana, 2 turns) then recasting.

It has now the same duration as the initial cast.  You can't pile on
extensions anymore, too -- it is set not added.

--------------------------------------------------------------------------------
369139649c | Adam Borowski | 2011-09-21 11:57:51 +0200

Fix some problems with temporary uselessness of armour.
Soft headgear was considered hard while transformed, and boots were
considered permanently useless while in water.

--------------------------------------------------------------------------------
85e3305f04 | Adam Borowski | 2011-09-21 11:15:20 +0200

Fix a crash with skills >= 27.  Add an assert for skill_exp_needed(28).
The crash was quite rare, depending on what happened to be located just past
the array.

--------------------------------------------------------------------------------
59ad0cbf57 | Raphael Langella | 2011-09-21 07:14:06 +0200

Remove an assert.
It can happen if you level up both spellcasting and invocations at
the same time. geat_real_mp is called before invocations has been
levelled up.

--------------------------------------------------------------------------------
acf7e63263 | Raphael Langella | 2011-09-21 07:14:06 +0200

Abyss morphing pushes items instead of destroying them.
This should restore the loot to the place.

--------------------------------------------------------------------------------
1200feec22 | Raphael Langella | 2011-09-21 07:14:06 +0200

Fix multidrop taking time when drop fails.
If you're trying to drop a worn cursed piece of armour, or using
the easy_unequip option, a turn is spent but the item isn't dropped.

Also fix multidrop always using one more turn than necessary.

--------------------------------------------------------------------------------
85d72dcdce | Raphael Langella | 2011-09-21 07:14:05 +0200

Revert "Hide training percentage for unknown skills."
This reverts commit 9e8371aef827bd406ea52ac882227487bcca14f8.

--------------------------------------------------------------------------------
b5ef7f3a0a | Raphael Langella | 2011-09-21 07:14:05 +0200

Remove an old file added by mistake.

--------------------------------------------------------------------------------
7ca268bd88 | Raphael Langella | 2011-09-21 07:14:05 +0200

Add a decimal to the skill level display.

--------------------------------------------------------------------------------
d7df244994 | Adam Borowski | 2011-09-20 05:04:05 +0200

Fix diagonal monster attacks causing crashes.
!(x >= y) is not (x <= y) ...

--------------------------------------------------------------------------------
3976fbe97f | Adam Borowski | 2011-09-20 01:03:22 +0200

Fix monster weapons not showing on hits not from afar.

--------------------------------------------------------------------------------
b6f769276c | Samuel Bronson | 2011-09-20 00:24:24 +0200

Allow listing highscores for non-default game types from command line.
Before, things like "crawl -zotdef -scores" would just print the
high score list for normal games.

Now, they'll print the scores for the specified game type.

--------------------------------------------------------------------------------
c49ef90543 | Samuel Bronson | 2011-09-20 00:23:54 +0200

Fix odd high-score behaviour with restart_after_game=true set.
Formerly, failing to get on the high score list after succeeding to do so
in the same Crawl instance would incorrectly continue to highlight the same
score entry (or, if game types differed, the entry with the same number).

With this change, failing to make the score list will result in no entry
being highlighted regardless of what might have happened before.

--------------------------------------------------------------------------------
ffdae314ec | Raphael Langella | 2011-09-19 23:49:31 +0200

Update the skill screen help.

--------------------------------------------------------------------------------
9e8371aef8 | Raphael Langella | 2011-09-19 23:49:31 +0200

Hide training percentage for unknown skills.
It's quite useless and confusing, better to just hide it.

--------------------------------------------------------------------------------
130b8f916c | Raphael Langella | 2011-09-19 23:49:31 +0200

Only show pogress to next skill level in wizmode.

--------------------------------------------------------------------------------
f6afd2c690 | Raphael Langella | 2011-09-19 23:49:31 +0200

No feature mimics in slime.
Not really their natural habitat since they are not acid resistant.

--------------------------------------------------------------------------------
ecaf6b2bf3 | Raphael Langella | 2011-09-19 23:49:31 +0200

New option: skill_focus.
Defaults to true, does the same as the "do" skill screen toggle. Can be set to
"toggle" to keep the skill screen toggle and change the behaviour in-game.

--------------------------------------------------------------------------------
0d26064347 | David Ploog | 2011-09-19 23:04:35 +0200

Some slime entries with slimy walls.
Only a few, but they will get the idea across.
Also increased the chances for Slime entry Jiyva altars.

--------------------------------------------------------------------------------
04d47c8a14 | elliptic | 2011-09-19 14:10:13 -0400

Tweak early weapon generation.
This replaces some of the common weapon generation (daggers, slings, whips,
etc) with somewhat better weapons (quarterstaves, falchions, etc),
starting at D:2 and with frequency increasing with depth.

--------------------------------------------------------------------------------
6cbf123c67 | Adam Borowski | 2011-09-19 17:48:00 +0200

Refactor stop_attack_prompt().
Irrelevant information (like "helpless" for slimes with Jiyva or neutrals
with Evilyon) won't be shown.

There's no "the the Royal Jelly" anymore.

Targetting auto-hit beams won't cause spurious prompts as well.

Also, the logic can be queried by other users (bad_attack()).

--------------------------------------------------------------------------------
45d1378db7 | elliptic | 2011-09-19 11:08:05 -0400

Fix Ash skill boost to handle skill scaling.

--------------------------------------------------------------------------------
da0fd2e873 | Raphael Langella | 2011-09-19 15:53:04 +0200

Fix some compiler warnings.

--------------------------------------------------------------------------------
dba47fdf7d | Raphael Langella | 2011-09-19 15:23:31 +0200

Reintroduce get_exp_progress(), properly this time.
It's used by the E command too.

--------------------------------------------------------------------------------
88c6798f5a | Adam Borowski | 2011-09-19 14:18:30 +0200

Revert player_exp_progress(), fixing build failure.
The function this commit removed is needed outside of debug mode, and
having progress to next level available from the outside is not needed.

This reverts commit ede91018e189512f8dd994248d3c1ba2a370949e.

--------------------------------------------------------------------------------
d45d96fbf3 | Adam Borowski | 2011-09-19 14:00:02 +0200

Merge branch 'smooth_skills'.

--------------------------------------------------------------------------------
b0a0e15406 | Adam Borowski | 2011-09-19 13:20:31 +0200

Shave off an unneeded multiplication.
For a greater accuracy, too.  Not that 1/200th of a skill matters...

--------------------------------------------------------------------------------
656daccb5f | Adam Borowski | 2011-09-19 13:15:57 +0200

Randomly round skills in unarmed damage calculations.
It turns out we don't have damage estimations yet, so determinism isn't
important here.  And if it will be, random_var is --> over there.

--------------------------------------------------------------------------------
44e7ef5f79 | Adam Borowski | 2011-09-19 12:43:20 +0200

Implement div_rand_round() for random_var, use it for combat delay.
Two constants divide to the same value no matter the scale, using random_var
was just a waste of CPU.  What we want is to allow partial values a percentage
of the time.

--------------------------------------------------------------------------------
a51d98d6c6 | Adam Borowski | 2011-09-19 12:30:48 +0200

Fix random_var division by a number other than 2.

--------------------------------------------------------------------------------
0146b63039 | Adam Borowski | 2011-09-19 12:17:36 +0200

Use skill_rdiv() in a few more places where randomness is ok.

--------------------------------------------------------------------------------
2cae4c2daf | Adam Borowski | 2011-09-19 12:17:36 +0200

Actually return partial skill values, not progress to next character level.

--------------------------------------------------------------------------------
7458b757a9 | Adam Borowski | 2011-09-19 11:56:15 +0200

Shorten a div_rand_round(you.skill()) to you.skill_rdiv().
Really, it's the same.

--------------------------------------------------------------------------------
6f9267b15d | Adam Borowski | 2011-09-19 11:56:15 +0200

Remove two ancient unused sets of titles.
Per-job titles are loooong gone.

--------------------------------------------------------------------------------
304cd6d8e2 | Adam Borowski | 2011-09-19 11:32:20 +0200

A more helpful crash message on non-existant prop asserts.

--------------------------------------------------------------------------------
786963fadc | Adam Borowski | 2011-09-19 11:02:18 +0200

Add a missing dire warning to dc-unrand.txt
The other three generated files do have one.

--------------------------------------------------------------------------------
41475ae75f | Adam Borowski | 2011-09-19 11:02:18 +0200

Remove the code for ARTP_PONDEROUS, fix the hat of Pondering not working.
It turns out the hat and the centaur barding both use the brand, not the
artefact property.  Thus, it needs to be checked on all slots again, but
there is no reason to keep the property alive.

--------------------------------------------------------------------------------
fb00bbc037 | Adam Borowski | 2011-09-19 10:25:32 +0200

Tell Cheibriadites their Orb run spawns are not as fast.
A possible problem: the messages on Orb pickup start looking like an angry
fruit salad.

--------------------------------------------------------------------------------
e0aca7aaab | Chris Campbell | 2011-09-19 01:00:35 +0100

Adjust Chei description a bit to mention passive slowing

--------------------------------------------------------------------------------
fad5289ab8 | Chris Campbell | 2011-09-19 01:00:34 +0100

Don't cost a turn when aborting the staff of Olgreb/Dispater due to lack of 
hp/mp

--------------------------------------------------------------------------------
548fc43300 | Adam Borowski | 2011-09-19 00:58:49 +0200

Re-allow shortening you.skill(X, 1) to you.skill(x).
It is doubtful whether this is a good idea.  On one hand, it does shorten
checks that are supposed to have a threshold -- like, 10 Conj needed for
reading the Book of Annihilations.  On the other hand, uses with a
denominator of 1 ignore partial skills, which is bad.

--------------------------------------------------------------------------------
ede91018e1 | Raphael Langella | 2011-09-19 00:51:54 +0200

Actually return partial skill values.

--------------------------------------------------------------------------------
ffb79818e5 | Adam Borowski | 2011-09-19 00:09:47 +0200

Document lower and upper limits of random functions.
It's a nightmare to have some operate x >= 0, some x > 0, some x < M, some x <= 
M.

--------------------------------------------------------------------------------
08012983eb | Adam Borowski | 2011-09-19 00:09:47 +0200

Give you.skill() a "scale" argument for partial skills, make callers use it.
Almost all uses have been converted, the only major one is unarmed base damage.
For users of raw you.skills[], hp and mp calculations have been changed as well.

you.skill() doesn't actually return partial values yet.

--------------------------------------------------------------------------------
525d316e34 | Adam Borowski | 2011-09-19 00:09:46 +0200

Update burden on recovering from lost strength.

--------------------------------------------------------------------------------
32050c121e | Raphael Langella | 2011-09-18 22:47:40 +0200

Reduce insubstantial wips AC and don't generate them in late D.
They are annoying enough and most insubstantial monsters have barely any AC.

--------------------------------------------------------------------------------
1f2ae8040b | Raphael Langella | 2011-09-18 22:42:44 +0200

Fix some issues with mastered skills and potions of experience.

--------------------------------------------------------------------------------
3692f0cc45 | Raphael Langella | 2011-09-18 15:00:49 +0200

No staircase mimics in tomb (#4558).

--------------------------------------------------------------------------------
01f8f4d3cd | Raphael Langella | 2011-09-18 14:50:37 +0200

Fix incorrect reach range checking when clicking on a monster.

--------------------------------------------------------------------------------
48be191bfb | Vsevolod Kozlov | 2011-09-18 12:36:51 +0400

Prevent doors on layout_roguey from being made secret.

--------------------------------------------------------------------------------
d03843aec7 | Adam Borowski | 2011-09-17 00:55:20 +0200

Use two passes for shillelagh messaging/damage.
Also, ignore insubstantials.

--------------------------------------------------------------------------------
815f454018 | Adam Borowski | 2011-09-16 23:27:21 +0200

Sort the book of Earth.

--------------------------------------------------------------------------------
4d41d327e1 | Adam Borowski | 2011-09-16 23:06:17 +0200

Fix a message fix.

--------------------------------------------------------------------------------
aa00587285 | elliptic | 2011-09-16 16:25:26 -0400

Fix Chei resistance messages.
The Chei messages all feel a bit awkward to me, but at least they should be
saying the right things now.

--------------------------------------------------------------------------------
f6ca6e4020 | Adam Borowski | 2011-09-16 21:47:25 +0200

Let Chei slow down spawns during the Orb run as well.

--------------------------------------------------------------------------------
690f2f5afb | Adam Borowski | 2011-09-16 21:38:12 +0200

Let Chei "slow down the madness" of Abyss morphing, like he does spawns.

--------------------------------------------------------------------------------
f8403369a4 | Adam Borowski | 2011-09-16 19:04:40 +0200

Hush a compiler warning.

--------------------------------------------------------------------------------
cb11ad7f7b | Adam Borowski | 2011-09-16 17:50:40 +0200

Remove an unnecessary check.

--------------------------------------------------------------------------------
09713a2697 | elliptic | 2011-09-16 11:39:36 -0400

Tweak the formula and messages for Chei stat gain slightly.

--------------------------------------------------------------------------------
2f9889a7ae | Adam Borowski | 2011-09-16 17:27:35 +0200

Fix a message about draconian AC.

--------------------------------------------------------------------------------
c28432e9f0 | Adam Borowski | 2011-09-16 16:33:12 +0200

Disallow draconians to wear body armour, allow gloves and boots in return.
Natural armour goes +1 up, still a nerf in the early game until you find
both items.  Branded gear of these kinds is a lot harder to obtain than
robes, you lose resistance/archmagi -- but have a chance at running instead.

No dragon armour, too.

--------------------------------------------------------------------------------
018df0f325 | Adam Borowski | 2011-09-16 16:33:12 +0200

Generate ponderous plates a bit better, to adjust for the 0.8+ range.
They were 3..8, are 3..12 capped at 10.  With Cheibriadites no longer
loving them, this is an attempt to sucker people into wearing those.

--------------------------------------------------------------------------------
ae53c24cfd | Adam Borowski | 2011-09-16 16:33:12 +0200

Make Cheibriados' slowness passive.
This deals with problems with races with few or no slots that can be
ponderified, removes the problem of Octopodes shedding all their slowness
in 20 aut, and fixes the issue of losing +5 to all stats just to bad luck
hunting for that glove or hat.

There's a buff in that Cheibriadites may now use randarts, and nerf in that
they can no longer disrobe to gain speed.

Items ponderified with the ability is reverted to their normal state
(enchantable, corrodeable, ...), ponderousness goes back to its old status
of a very bad platemail brand / unrand property.  You may at most use it
for a miniscule speed-up in gaining Chei's piety -- and even that I consider
to be bad.  After all, a lazy person would do anything but exercise wearing
overencumbering armour.

--------------------------------------------------------------------------------
b9db255f46 | Adam Borowski | 2011-09-16 16:33:12 +0200

Don't pick invalid slots during armour acquirement for octopodes.
They'd eventually be retried after being vetoed due to being useless, but
with only 40 tries and ~1/10 chance (divine acq), it's not unlikely the
acquirement would fail altogether.

--------------------------------------------------------------------------------
30a8992e95 | Raphael Langella | 2011-09-16 12:44:44 +0200

Allow wizard teleport in the Abyss.

--------------------------------------------------------------------------------
70f08443e6 | Raphael Langella | 2011-09-16 12:44:44 +0200

Mention the * prefix in the &L prompt.

--------------------------------------------------------------------------------
390586942c | Raphael Langella | 2011-09-16 12:44:44 +0200

Fix the abyss speed wizmode command prompt.
Higher value for higher speed now. Also move the function into wiz-dgn.cc.

--------------------------------------------------------------------------------
cba068c282 | Raphael Langella | 2011-09-16 12:44:44 +0200

Simplify.

--------------------------------------------------------------------------------
05972375c8 | Adam Borowski | 2011-09-16 01:27:24 +0200

Sometimes, let Cerebov (, etc) onto the Orb run if you've stolen his rune.
They replace random pan lords so the amount of opposition doesn't change.

--------------------------------------------------------------------------------
ce58e6321b | Raphael Langella | 2011-09-16 00:46:38 +0200

Adjust Pan exit chances.

--------------------------------------------------------------------------------
dc20109d55 | Adam Borowski | 2011-09-16 00:20:30 +0200

Revert "Use std::unordered_map instead of std::map -- O(1) vs O(log n), in one 
place for now."
It appears Apple's gcc-4.0 has problems there, and they don't provide fixes;
never versions don't have their patches for ppc SDK.

Having O(1) maps would be nice, but I don't think we anywhere use an amount
of data where O(log n) makes a real difference.  A new case where I wanted a
hash table for can be done by hand.

This reverts commit 6c9450d3706569e5eedf0cdd7e0327fe8d50612a.

--------------------------------------------------------------------------------
6ed63208da | Adam Borowski | 2011-09-16 00:12:30 +0200

Reduce the chances for crystal twisted cavern somewhat.

--------------------------------------------------------------------------------
bedfda0a94 | Adam Borowski | 2011-09-16 00:12:30 +0200

JoachimShipper's changes to orc speech.

--------------------------------------------------------------------------------
8c86b7afc5 | Adam Borowski | 2011-09-16 00:12:30 +0200

Use transformation if chaos affixation fails, not when it succeeds.

--------------------------------------------------------------------------------
da42bcd286 | Raphael Langella | 2011-09-15 23:50:30 +0200

Tornado adjustments.
* Duration fixed at 60 aut (what you had at power 120).
* Damage boosted by 28.5%
* Noise reduced to r * 3

--------------------------------------------------------------------------------
64d129586b | Raphael Langella | 2011-09-15 23:50:29 +0200

Fix broken logic.

--------------------------------------------------------------------------------
5e0bcc91de | Raphael Langella | 2011-09-15 23:50:29 +0200

Fix a crash with DEBUG_PATHFIND.

--------------------------------------------------------------------------------
2d69262cb8 | Raphael Langella | 2011-09-15 23:50:29 +0200

Fix pathfinding distance inconsistency.
Pathfinding uses chebyshev metric.

--------------------------------------------------------------------------------
fb23133a76 | Raphael Langella | 2011-09-15 23:50:29 +0200

Increase the chance to find an exit in a Demonic Rune vault.

--------------------------------------------------------------------------------
b8dc175f63 | Raphael Langella | 2011-09-15 23:50:29 +0200

Little improvement to the map rot algorithm.

--------------------------------------------------------------------------------
d447a99e2d | Chris Campbell | 2011-09-15 19:13:16 +0100

Properly upgrade shadow demons to 2s

--------------------------------------------------------------------------------
434304d99f | Chris Campbell | 2011-09-15 18:37:40 +0100

Remember Hunter/AM weapon choice between games

--------------------------------------------------------------------------------
b66bc687d5 | Adam Borowski | 2011-09-15 12:55:08 +0200

Fix broken affixation of the chaos brand.

--------------------------------------------------------------------------------
bca85593ae | Raphael Langella | 2011-09-15 12:43:45 +0200

Minor cosmetic fix.

--------------------------------------------------------------------------------
16d6930bdd | Raphael Langella | 2011-09-15 12:43:45 +0200

Fix some pathfinding issues.

--------------------------------------------------------------------------------
c2157fdbde | Raphael Langella | 2011-09-15 12:43:45 +0200

Smoother and less agressive maprot in abyss and labyrinths.

--------------------------------------------------------------------------------
a698d0c01d | Adam Borowski | 2011-09-15 11:45:27 +0200

Fix a comment (JoachimShipper)

--------------------------------------------------------------------------------
34dec5fd02 | Adam Borowski | 2011-09-15 11:41:23 +0200

Change deep elf knights' description (JoachimShipper).

--------------------------------------------------------------------------------
b60b0fac8e | Adam Borowski | 2011-09-15 11:33:04 +0200

JoachimSchipper's semicolonicide.

--------------------------------------------------------------------------------
f71940ac76 | Adam Borowski | 2011-09-15 11:28:08 +0200

Fix a mangled displayed int on big-endian 64 bit architectures.
Thanks to SamB for enabling these warnings!

--------------------------------------------------------------------------------
7d3f6712e8 | Samuel Bronson | 2011-09-15 11:23:42 +0200

Mention "Make Ponderous" on religion (^) screen.

--------------------------------------------------------------------------------
824651224f | Samuel Bronson | 2011-09-15 11:22:40 +0200

Support GCC's printf warnings for functions declared in "stuff.h".

--------------------------------------------------------------------------------
2dc5431ae5 | Samuel Bronson | 2011-09-15 11:19:47 +0200

Add Doxygen output directory to .gitignore.

--------------------------------------------------------------------------------
e4caa5c1f0 | Samuel Bronson | 2011-09-15 11:18:35 +0200

Add "docs" target to makefile.

--------------------------------------------------------------------------------
ca3ed9893f | Adam Borowski | 2011-09-15 11:17:03 +0200

Make the menu header for wands "Wands" rather than "Magical Devices".
There are no other kinds of items there.

--------------------------------------------------------------------------------
32602a727d | Raphael Langella | 2011-09-14 23:48:21 +0200

Variable Abyss speed.
It increases with time spent there. If you escape and come back, the speed will 
be
half of what it was when you left.
Not yet affected by Lugonu's worship and wrath.

--------------------------------------------------------------------------------
0484b6ef69 | Raphael Langella | 2011-09-14 23:08:01 +0200

Move the call to abyss_morph into run_environment_effects

--------------------------------------------------------------------------------
e1af22bd56 | Raphael Langella | 2011-09-14 23:02:33 +0200

Clean up all the old abyss code.

--------------------------------------------------------------------------------
0fcafa3446 | Raphael Langella | 2011-09-14 22:50:00 +0200

Make the abyss morphing preserves worley's noise layout.

--------------------------------------------------------------------------------
64567932be | Raphael Langella | 2011-09-14 19:21:52 +0200

Fix Staff of Dispater using up a turn when evoked (#4540).
e4ee7edf0 only fixed the HP/MP use, not the turn.

--------------------------------------------------------------------------------
e79d75b06a | Raphael Langella | 2011-09-14 19:21:52 +0200

Pathfinding: don't check the terrain on the player cell.
We just want to get next to the player.

--------------------------------------------------------------------------------
18d432fd9f | Raphael Langella | 2011-09-14 19:21:52 +0200

Simplify.

--------------------------------------------------------------------------------
6c9450d370 | Adam Borowski | 2011-09-14 15:05:33 +0200

Use std::unordered_map instead of std::map -- O(1) vs O(log n), in one place 
for now.
Intentionally not changing other uses yet, let's see if it breaks platforms
I couldn't check.

--------------------------------------------------------------------------------
eb61e84352 | Adam Borowski | 2011-09-14 15:05:33 +0200

A whitespace fix.

--------------------------------------------------------------------------------
81416e10b7 | Vsevolod Kozlov | 2011-09-14 13:49:33 +0400

Sometimes generate doors in layout_roguey's rooms.

--------------------------------------------------------------------------------
13bea137bc | Chris Campbell | 2011-09-14 01:04:40 +0100

Don't hunger vampires and ghouls when wielding vampire's tooth
Could use a more inventive message (I just copied the one from normal
vampiric weapons) for vampires wielding it, perhaps?

--------------------------------------------------------------------------------
98edf438c3 | Adam Borowski | 2011-09-13 23:19:45 +0200

As usually, commit forgotten tile files.
Hey, it worked for me :p

--------------------------------------------------------------------------------
9cc3ee3f91 | Adam Borowski | 2011-09-13 19:46:12 +0200

A shillelagh.
Does shatter-type damage to everyone in radius 1 around the person hit.

TODO: warnings about hitting allies.  Pushing this to let you take a look
so we can discuss the details.

--------------------------------------------------------------------------------
5fe7dec590 | Adam Borowski | 2011-09-13 18:42:58 +0200

Fix unique Pan lord levels generating multiple times.
It would probably be better to use normal vault placement for them, but for
now I'm preserving the chances.

--------------------------------------------------------------------------------
b60e43113b | Adam Borowski | 2011-09-13 14:29:55 +0200

Fix mgrd corruption on monster-vs-monster combat.

--------------------------------------------------------------------------------
bae41ef081 | Adam Borowski | 2011-09-13 12:14:51 +0200

On non-divine acquirement, pay far more heed to bardings.

--------------------------------------------------------------------------------
c090c7372e | Adam Borowski | 2011-09-13 11:56:43 +0200

Save the state of the Worley noise Abyss.
Losing it doesn't have such immense effects as in first versions anymore
where it would immediately change the whole map, but is still bad enough.

--------------------------------------------------------------------------------
40c6b91f22 | Adam Borowski | 2011-09-13 05:22:02 +0200

Never acquire newbie staves.

--------------------------------------------------------------------------------
8cdf0f9fa3 | Adam Borowski | 2011-09-13 05:02:30 +0200

Nerf lajatangs again.
If the guys insist to have them good in mid-game and bad later on, I'm not
going to argue long.  Note that there is no upgrade -- you can get weapons
with 20 damage 7 delay in other classes, compared with their paltry 16 dam
7 delay now.

--------------------------------------------------------------------------------
ed8128f571 | Adam Borowski | 2011-09-13 04:40:41 +0200

Reduce delays on inferior 2-handed weapons.
Nearly no one uses two-handers.  You do lose the protection a shield gives,
and do actually less damage than a 1-hander until late game, as you need
enormous skill levels to use them effectively.

I left the likes of exec axes and bardiches at the old values, they're
supposed to be hard to use.  You'd be better off using regular gear in the
mid game.

--------------------------------------------------------------------------------
5e2821fe7a | Adam Borowski | 2011-09-13 04:35:57 +0200

When a zombie is animated (in any way), prefer to place it where the corpse was.

--------------------------------------------------------------------------------
ef8f590703 | Adam Borowski | 2011-09-13 04:24:54 +0200

Rewrite the melee reaping brand.
The killing blow doesn't matter anymore, this fixes the main problem we had
with the brand, and the reason missiles of reaping have been removed: no
more sniping.  If you use multiple ways to deal damage, the chance depends
on percentage of damage done with reaping.

Also, the redundant implementation used by chaos is no more.

Mounted monsters (currently spriggan riders) are handled correctly now, too
-- you can get two zombies if both the rider and the mount left corpses.

--------------------------------------------------------------------------------
18256b52fb | Adam Borowski | 2011-09-13 02:26:49 +0200

Add missing tile for ring of Vitality I forgot to "git add".

--------------------------------------------------------------------------------
2401077053 | Adam Borowski | 2011-09-13 02:23:33 +0200

Change Botono's brand to reaping.
While I don't believe vamp non-cutting weapons are a no-no since a good
part of races still can use it, it's hard to find something that fits Voodoo
(or Bo for obscure nitpickers) more than zombies.

--------------------------------------------------------------------------------
f2238d0e6d | Adam Borowski | 2011-09-13 01:41:29 +0200

Bring a katana back, as a fixedart.
Still worse than old katanas were: acc/dam should be +2/+4 times strength
multiplier, I've simplified it to fixed +0/+5.  No way to emulate the
mindelay -- using a falchion as base would be odd and allow spriggans to
use it 1.5-handed.

Added clarity to get a less boring theme, and to wipe your tears for only
6/7th the damage output.

--------------------------------------------------------------------------------
ae5d1e02ec | Adam Borowski | 2011-09-13 00:55:10 +0200

Tiles: don't try evoking reaching on adjacent monsters.

--------------------------------------------------------------------------------
3a533adeb5 | Adam Borowski | 2011-09-13 00:48:49 +0200

Add another overpowered fixedart, a ring this time.
The maxhp boost is same as robust 1 would give to a human with 0 fighting;
for theme reasons it doesn't scale so lowbie spriggans will love it more than
XL 27 trolls with 27 fighting.  Ring regeneration doesn't scale too, so this
is another reason for consistency.

It is remotely possible removing/melding it can kill you, but only after
massive Borgnjor's abuse.  Someone purged the remove warnings code (even
though we still have stat death!), so I don't care.

Note that the artefact property can be negative too, opening interesting
possibilities.  What about revamping, say, Botono to have this drawback?

--------------------------------------------------------------------------------
1ac62f9f5c | Raphael Langella | 2011-09-12 23:57:58 +0200

Prevent abyss morphing from creating exits, altars and stone arches.
But they are also prevented from being destroyed by the morphing.

--------------------------------------------------------------------------------
8613553f34 | Raphael Langella | 2011-09-12 23:45:52 +0200

Some cleaning up in the _abyss_apply_terrain function.
ApplyGlobal is renamed to morph and some formatting fixes.

--------------------------------------------------------------------------------
f48f274290 | Raphael Langella | 2011-09-12 23:19:48 +0200

More differentiation between retreat and fleeing behaviours.
Retreat is a tactical manoeuvre, so no fleeing speech and no stabbing.

--------------------------------------------------------------------------------
d01281fc10 | Raphael Langella | 2011-09-12 23:19:48 +0200

Add disintegration to the list of high tier wands.

--------------------------------------------------------------------------------
fe7a68d868 | Raphael Langella | 2011-09-12 23:19:48 +0200

Simplify the high tier wand logic.

--------------------------------------------------------------------------------
00d267b850 | Chris Campbell | 2011-09-12 21:52:05 +0100

Improve the description for unidentified decks of cards

--------------------------------------------------------------------------------
5c5f5c7f94 | Florian Diebold | 2011-09-12 16:24:19 +0200

Add the capability to change the user/group after binding sockets to the 
Webtiles server.

--------------------------------------------------------------------------------
8a6650889b | Florian Diebold | 2011-09-12 13:45:58 +0200

Further logging improvements in the Webtiles server.
Also, a small whitespace fix.

--------------------------------------------------------------------------------
b6ec98fcdd | elliptic | 2011-09-12 05:03:44 -0400

Fix crash with self-targeted mephitic cloud/evaporate (#4532).

--------------------------------------------------------------------------------
33a3bd5551 | elliptic | 2011-09-11 19:20:23 -0400

Make Mephitic Cloud and Evaporate clouds less guaranteed.
Only the center cloud is guaranteed to appear. The surrounding eight
squares each have a chance of (pow+125)/225 of having a cloud.

The power caps for Mephitic Cloud and Evaporate are now 100 and 50
respectively (but Evaporate power is still doubled with some types of potions).

--------------------------------------------------------------------------------
2c1f3c1887 | Chris Campbell | 2011-09-12 00:13:10 +0100

Change the evocable effect of the Sceptre of Asmodeus to summon temporarily 
charmed demons
The sceptre now creates durably summoned demons (from Asmodeus's list of
fiery monsters) that are initially charmed and then turn hostile.

--------------------------------------------------------------------------------
e4ee7edf04 | Chris Campbell | 2011-09-12 00:06:22 +0100

Don't spend a turn and hp/mp costs when aborting hellfire from the Staff of 
Dispater

--------------------------------------------------------------------------------
ace5822975 | Adam Borowski | 2011-09-11 20:36:59 +0200

Autoinscribe naga bardings as {sslith} rather than {run}.

--------------------------------------------------------------------------------
5c9aed9f7f | Adam Borowski | 2011-09-11 20:26:28 +0200

Two new artefact bardings.  (Hate hate hate hate tile barding code)
Too angry to check if webtiles work, sorry.
The properties are the initial draft too -- need to decide who shouted
loudest during the debate and change it accordingly.

--------------------------------------------------------------------------------
310f501f20 | Adam Borowski | 2011-09-11 13:51:48 +0200

Assert out if a character would start with an useless skill.

--------------------------------------------------------------------------------
61b83b5a2b | Adam Borowski | 2011-09-11 13:50:11 +0200

Simplify special-casing of Vp's UC.

--------------------------------------------------------------------------------
9480d00d99 | Adam Borowski | 2011-09-11 13:43:01 +0200

Move octopodes' starting skill in Armour into Dodging.
Except for Be, they shouldn't be better there than Fi and Gl.

Also, do the same for FeBe.  No wonder everyone played FeBe rather than FeFi.

--------------------------------------------------------------------------------
dc792839b9 | Adam Borowski | 2011-09-11 12:47:34 +0200

Mark the Armour skill as useless for octopodes.

--------------------------------------------------------------------------------
fec6a1b525 | Adam Borowski | 2011-09-11 11:58:50 +0200

Mark manuals for maxed skills as useless.

--------------------------------------------------------------------------------
8863798104 | Adam Borowski | 2011-09-11 11:58:49 +0200

Explain to players what happened to their finesse.

--------------------------------------------------------------------------------
e24c5cf6bd | David Lawrence Ramsey | 2011-09-11 01:02:00 -0500

Ensure that Grum's weapons are always reaching again (including whips).

--------------------------------------------------------------------------------
36b9df4070 | David Lawrence Ramsey | 2011-09-11 00:36:12 -0500

Tweak random evokables for wanderers to match artificer changes better.
They still can get wands that the new artificers can't, but they only
get one, which the new artificers don't, and no one gets the rod of
striking anymore.

--------------------------------------------------------------------------------
8162d8bfa2 | David Lawrence Ramsey | 2011-09-11 00:12:16 -0500

Move WPN_STAFF before WPN_MAX_NONBLESSED on next major version bump.

--------------------------------------------------------------------------------
0e6d7e0c27 | David Lawrence Ramsey | 2011-09-11 00:00:00 -0500

Fix capitalization and alphabetical order in monster entries.

--------------------------------------------------------------------------------
73fd6cf6cf | David Lawrence Ramsey | 2011-09-10 23:58:03 -0500

Add more minor fixes to monster descriptions.

--------------------------------------------------------------------------------
640f415789 | elliptic | 2011-09-10 21:04:02 -0400

Adjust Shadow Creatures duration.
The duration now depends on the HD of the monster summoned. Also, when a band
is summoned, only the leader can possibly have duration > 1. Monster Shadow
Creatures is unchanged for now.

--------------------------------------------------------------------------------
1c717b8c63 | Chris Campbell | 2011-09-11 01:12:00 +0100

Minor fixes to monster descriptions

--------------------------------------------------------------------------------
d6e6347734 | Wensley | 2011-09-11 01:01:10 +0100

Patch for the DCSS Text Improvement Taskforce. This round is Monster 
Descriptions, part 1.

--------------------------------------------------------------------------------
e5539e26c1 | Chris Campbell | 2011-09-11 00:20:56 +0100

Correctly display gourmand as useless to vampires

--------------------------------------------------------------------------------
b07925ad51 | Chris Campbell | 2011-09-11 00:08:36 +0100

Fix Chei not caring about ranged weapons of speed

--------------------------------------------------------------------------------
291262a008 | Chris Campbell | 2011-09-10 17:35:17 +0100

Fix an entry vault with no exit

--------------------------------------------------------------------------------
e4c7c19fe8 | Adam Borowski | 2011-09-10 17:47:24 +0200

Often, make the cavern passage crystal.  With a new set of tiles!
Sadly, the floor doesn't fit well.

--------------------------------------------------------------------------------
77465a5a80 | Adam Borowski | 2011-09-10 17:35:10 +0200

Don't use brickwork in layout_twisted_cavern, pick some natural tiles.

--------------------------------------------------------------------------------
fd30c6b131 | Adam Borowski | 2011-09-10 17:04:03 +0200

Undo a testing weight.

--------------------------------------------------------------------------------
faf8ebd7c0 | Adam Borowski | 2011-09-10 16:00:48 +0200

Don't allow butterflies to use the "important warning" colour.
They're spammy enough as is.

--------------------------------------------------------------------------------
e1c006c99a | Adam Borowski | 2011-09-10 15:29:00 +0200

A new layout type: twisting cavern.
It's a special case of layout_delve (out of range of settings used for
Spider): unlike all other settings, it produces a nearly regular passage
of a constant width, meandering around.

It is pretty distinct, thus the low weight.

--------------------------------------------------------------------------------
850e6fdc21 | Adam Borowski | 2011-09-10 15:23:23 +0200

Fix polearms/whips of reaching magically shortening when you're berserk.
You're not "evoking" a magic device here, you're just poking someone...

--------------------------------------------------------------------------------
d6cc18c085 | Florian Diebold | 2011-09-10 13:19:49 +0200

Fix Webtiles crashing on startup after 58b79301.

--------------------------------------------------------------------------------
71b91416cd | Florian Diebold | 2011-09-10 13:19:48 +0200

Improve Webtiles server logging.

--------------------------------------------------------------------------------
2db2562690 | Raphael Langella | 2011-09-10 10:28:39 +0200

Fix the new retreating behaviour.

--------------------------------------------------------------------------------
7141d17aba | Adam Borowski | 2011-09-10 08:24:37 +0200

Temporarily use the blue death tile for repainted balrugs.

--------------------------------------------------------------------------------
506fcf92ad | Chris Campbell | 2011-09-10 00:33:53 +0100

Merge branch 'demons'
Conflicts:
	crawl-ref/source/fight.cc

--------------------------------------------------------------------------------
f7dde33c0a | Chris Campbell | 2011-09-10 00:01:24 +0100

Upgrade Shadow demons to 2, give them some summoning spells

--------------------------------------------------------------------------------
ecda794cf5 | Raphael Langella | 2011-09-10 00:25:10 +0200

New monster behaviour: retreating.
When a monster with an intelligence >= I_ANIMAL is attacked but cannot 
retaliate it
will retreat. This is similar to fleeing but the conditions for it to stop are
different (and a bit randomized).

--------------------------------------------------------------------------------
114d259e5c | Raphael Langella | 2011-09-10 00:25:10 +0200

Fix the can_go_straight function not checking the destination cell.

--------------------------------------------------------------------------------
ca7fa58159 | elliptic | 2011-09-09 17:25:25 -0400

Artificer changes.
They don't get to choose their wands, their skills are a little lower, and
their starting weapon is a weak staff... but they start with three wands
instead of two: flame, enslavement, and random effects.

--------------------------------------------------------------------------------
56ed2f7a0f | elliptic | 2011-09-09 17:25:25 -0400

Give gladiators the option of starting with a quarterstaff (and no buckler).
Fighters don't get this because they are much more focused on shield usage,
and the flavor seems a bit better for gladiators anyway.

--------------------------------------------------------------------------------
799295fabd | elliptic | 2011-09-09 17:25:25 -0400

Make regular staves be penalized less for use with a shield.

--------------------------------------------------------------------------------
04beebb0b6 | elliptic | 2011-09-09 17:25:24 -0400

Nerf enhancer staff melee.
New formula: (2*evoc + magic skill)/30 chance of getting
random2(5*(magic skill + evoc/2)/4) extra damage.

--------------------------------------------------------------------------------
6fffb44cea | elliptic | 2011-09-09 17:25:24 -0400

Buff quarterstaves and lajatangs.
Quarterstaff now 10/3/13, lajatang is 16/-3/14. It might be better to figure
out what double-handed means and implement that, but this will do for now.

--------------------------------------------------------------------------------
a249a58695 | elliptic | 2011-09-09 17:25:24 -0400

Split quarterstaff into "staff" and "quarterstaff".
Staff is meant to be weaker in melee and is used as the base type for magical
staves. Quarterstaff and lajatang will be buffed in a separate commit.

--------------------------------------------------------------------------------
4909908f1c | Adam Borowski | 2011-09-09 23:20:24 +0200

Forbid wizmode commands from spawning skeletons of monsters without one.

--------------------------------------------------------------------------------
b13e90a380 | Adam Borowski | 2011-09-09 21:07:59 +0200

Better necro miscast messages for octopodes and monsters.

--------------------------------------------------------------------------------
1deab284a5 | Adam Borowski | 2011-09-09 19:49:40 +0200

Don't consider own halo to be newsworthy enough to blind the player's HUD.

--------------------------------------------------------------------------------
aa610981cc | Chris Campbell | 2011-09-09 15:51:49 +0100

Make Lorocyprocas normal speed

--------------------------------------------------------------------------------
4121537e98 | Chris Campbell | 2011-09-09 15:49:55 +0100

Add some missing dangerous spells to the xp modifier

--------------------------------------------------------------------------------
ba33e35591 | Adam Borowski | 2011-09-09 16:33:48 +0200

Revert the reaper nerf.
Most of their difficulty came from having scythes with potentially good
brands, reaching only makes them boring and weak.

Suggestion that this revert has anything to do with recent trunk changes are
evil lies :p

--------------------------------------------------------------------------------
c8a3aaadc9 | Adam Borowski | 2011-09-09 16:12:31 +0200

Remove obsolete mimic checks.

--------------------------------------------------------------------------------
dcd794926d | Adam Borowski | 2011-09-09 16:10:14 +0200

Allow querying runes by name rather than by number.

--------------------------------------------------------------------------------
0bb64e3970 | Adam Borowski | 2011-09-09 15:38:25 +0200

Fix local tiles compilation.
(can't check if it actually works...)

--------------------------------------------------------------------------------
b89925ca1c | Adam Borowski | 2011-09-09 15:21:30 +0200

Drop the reaching brand on polearms in saved games.

--------------------------------------------------------------------------------
1c27e00585 | Adam Borowski | 2011-09-09 15:04:49 +0200

Give all polearms reach.
One-handed polearms are nerfed by 1 dam to compensate a bit; it's likely
that's too little.

--------------------------------------------------------------------------------
9337bd2985 | Adam Borowski | 2011-09-09 13:51:46 +0200

Let autofight use the new reaching code; fix attempts to reach while berserk.

--------------------------------------------------------------------------------
4f6f50a08a | Adam Borowski | 2011-09-09 13:51:45 +0200

Make reaching more extensible.

--------------------------------------------------------------------------------
c6e3ef7774 | Adam Borowski | 2011-09-09 13:51:45 +0200

Nerf Ignacio.
He'll appear once per four levels now, and will likely spawn only after a good
deal of Pan farming.  Melee damage is reduced as well -- remember than the exec
axe of pain is added not multiplied on top of that, so he thoroughly trumps any
executioner anyway.

--------------------------------------------------------------------------------
0167331fd1 | Raphael Langella | 2011-09-08 23:26:19 +0200

Don't generate high tier wands before D:3.
They either trivialise the early game or are a source of unavoidable death if
a monster picks it up first.

--------------------------------------------------------------------------------
721085fa91 | Raphael Langella | 2011-09-08 23:10:11 +0200

Don't generate potions of berserk rage before D:3.

--------------------------------------------------------------------------------
7753be77ee | Raphael Langella | 2011-09-08 23:00:47 +0200

Don't morph the abyssal rune nor the exit.

--------------------------------------------------------------------------------
37dca19c0e | Raphael Langella | 2011-09-08 22:47:58 +0200

Make attack messages from invisible monsters in red.

--------------------------------------------------------------------------------
1b3bba208f | Adam Borowski | 2011-09-08 21:20:03 +0200

Remember uniques and ghosts known to be in the Abyss.
Also, refactor the code for displaying annotations.

--------------------------------------------------------------------------------
4481293100 | Adam Borowski | 2011-09-08 20:59:51 +0200

An iterator for going through all level_id values.
It's a travesty something like this is even needed.  Really, all the
level_type nonsense and portal levels inaccessible except for parsing their
description should be regular branches.

For now, here's a crutch.

--------------------------------------------------------------------------------
7d749da6cf | Adam Borowski | 2011-09-08 18:59:58 +0200

Don't store unique annotations in Pan or portal vaults.

--------------------------------------------------------------------------------
df6deba2f0 | Adam Borowski | 2011-09-08 18:43:05 +0200

Give Ignacio a (somewhat below) 50% chance of spawning per level once awakened.

--------------------------------------------------------------------------------
90b617ee79 | Chris Campbell | 2011-09-08 17:36:20 +0100

Make reapers and lorocyprocas a bit more deserving of 2 status
Bump reaper damage and HD (and guarantee them the reaching brand), and
give lorocyprocas the antimagic brand on one of their attacks.

--------------------------------------------------------------------------------
44a406ded7 | Adam Borowski | 2011-09-08 18:08:20 +0200

Fix Zin being mistakenly marked as accepting gold sacrifices.
They did nothing but destroyed the gold without any gain, were totally
unwieldy interface-wise, and would produce abysmal gain on investment were
they actually working, due to Zin's donations being superlinear.

--------------------------------------------------------------------------------
103b89fc1c | Aaron Becker | 2011-09-08 18:08:20 +0200

Fixed Zin sacrifice text and corrected associated comment.

--------------------------------------------------------------------------------
b99c7cb23a | Adam Borowski | 2011-09-08 18:08:20 +0200

Fix a compiler warning.

--------------------------------------------------------------------------------
2ba57c33cc | Chris Campbell | 2011-09-08 16:32:40 +0100

Scale down monster summon spam
This should hopefully encourage players without high-power abjuration
to stay and fight summoners (particularly those with Shadow creatures
or Greater demon which previously would overwhelm players who didn't
flee very quickly), and comes alongside the nerf of player abjuration.

Some lower-level monster summonings don't depend on HD anymore
(spamming huge quantities or rats or imps later on isn't generally very
interesting), and other than that the numbers are generally slightly
decreased across the board (with Shadow creatures reduced more
significantly, since it can summon packs, and Greater demon reduced to
only one at a time).

--------------------------------------------------------------------------------
62b83c95c7 | Chris Campbell | 2011-09-08 15:23:39 +0100

Merge branch 'master' into demons

--------------------------------------------------------------------------------
9f67c7d469 | Chris Campbell | 2011-09-08 15:15:36 +0100

Reduce the stealth boost from umbra

--------------------------------------------------------------------------------
da6f40cd46 | Chris Campbell | 2011-09-08 15:15:35 +0100

Remove an obsolete line from init.txt

--------------------------------------------------------------------------------
fdf483147f | Raphael Langella | 2011-09-08 12:38:20 +0200

Add alternate messages for critical hits (#4508).

--------------------------------------------------------------------------------
3b3d23f7f2 | Raphael Langella | 2011-09-08 12:38:20 +0200

Give a chance for another portal when we mimic a unique one.
This is a generalization of what 55e6001 did with labs.

--------------------------------------------------------------------------------
66cd98d3f3 | Raphael Langella | 2011-09-08 12:38:20 +0200

Document the mimic vault tags.

--------------------------------------------------------------------------------
58b7930167 | Adam Borowski | 2011-09-08 02:09:51 +0200

Combine common parts of lib*.h
Having different prototypes for different ports without a good reason is bad.
After unification, it's easier to have, for example, two ports at once.

--------------------------------------------------------------------------------
f15db1b054 | elliptic | 2011-09-07 19:45:05 -0400

Adjust the SUT description.

--------------------------------------------------------------------------------
2702934e36 | elliptic | 2011-09-07 19:39:03 -0400

Remove hostiles from Summon Ugly Thing.
This spell was hardly used much at L6 compared with the alternatives, and
there wasn't any reason for it to give hostile summons sometimes, so let's
try removing those.

--------------------------------------------------------------------------------
bf2b0efb2f | Raphael Langella | 2011-09-07 23:27:33 +0200

Don't print the (bugged) threat level when looking monster description from the 
db.

--------------------------------------------------------------------------------
1c21fd4680 | Raphael Langella | 2011-09-07 23:10:14 +0200

Little improvement to the feature mimic vault definition.
It works with glyph now too.

--------------------------------------------------------------------------------
da2bccb3b0 | Raphael Langella | 2011-09-07 22:49:20 +0200

Remove an mention of knives in hint mode.

--------------------------------------------------------------------------------
79689dc5de | Adam Borowski | 2011-09-07 18:21:29 +0200

Remove unique annotations even when killed out of sight.

--------------------------------------------------------------------------------
218de6a8af | Adam Borowski | 2011-09-07 16:09:04 +0200

Get rid of strlwr().
Besides being non-standard and present only on some platforms, it cannot be
extended to Unicode as some characters expand or contract while being
upper/lowercased.

--------------------------------------------------------------------------------
5a1df532ff | Adam Borowski | 2011-09-07 15:15:41 +0200

Use standard strcasecmp() rather than Microsoft-only stricmp().

--------------------------------------------------------------------------------
05cc9a5299 | Adam Borowski | 2011-09-07 14:29:09 +0200

Get rid of a nasty hack around improper includes.
Why the original coder did that instead of actually including the system
headers is beyond me.

--------------------------------------------------------------------------------
eeb062edcd | Adam Borowski | 2011-09-07 14:04:45 +0200

Catch attempts to print out a character >U+FFFF on Windows.

--------------------------------------------------------------------------------
f99166ed9d | Adam Borowski | 2011-09-07 13:49:31 +0200

Fix glyph truncation on platforms with 16 bit wchar_t.
This can matter only for cygwin, though.

--------------------------------------------------------------------------------
f6e9619284 | Adam Borowski | 2011-09-07 13:33:15 +0200

Rename showchar to basechar when it's the base ASCII glyph.

--------------------------------------------------------------------------------
f6a760b5eb | Adam Borowski | 2011-09-07 13:11:14 +0200

Fix broken weapon size checks while transformed.
You can't wield in forms that change size, but you can still acquire or get
a god gift.

--------------------------------------------------------------------------------
f46bf2b59b | Adam Borowski | 2011-09-07 12:33:49 +0200

(Rarely) generate profane servitors in the Abyss.

--------------------------------------------------------------------------------
336438f964 | Adam Borowski | 2011-09-07 11:54:45 +0200

Add *.gif to checkwhite's and git hooks ignore list.
Note: to update, you need to manually say:
  cp -p ../git-hooks/pre-commit ../../.git/hooks/
since git doesn't allow updating this automatically for security reasons.

--------------------------------------------------------------------------------
9b110db936 | Adam Borowski | 2011-09-07 11:53:03 +0200

s/antihalo/umbra/g in the code as well, to match the new user-visible name.

--------------------------------------------------------------------------------
f2b92c8565 | Vsevolod Kozlov | 2011-09-07 11:53:03 +0400

Fix compilation.

--------------------------------------------------------------------------------
48dfb436cf | Raphael Langella | 2011-09-07 00:00:26 +0200

Add statue mimics.

--------------------------------------------------------------------------------
74898e23fd | Raphael Langella | 2011-09-07 00:00:26 +0200

Further simplification of item mimic definition in lemuel_lich_library.

--------------------------------------------------------------------------------
e68273eacd | Raphael Langella | 2011-09-07 00:00:26 +0200

Change the mimic vault tag to an integer.
mimic:x means the item or feature has one chance in x to be turned into a mimic.
This is on top of the normal mimic generation chance.
using a plain mimic tag is still possible for a guaranteed mimic.

--------------------------------------------------------------------------------
bc399cbf73 | Raphael Langella | 2011-09-07 00:00:26 +0200

Loop the create_feature_wizard function on partial match.
Makes creating feature mimics a bit more convenient.

--------------------------------------------------------------------------------
3bca52542d | Raphael Langella | 2011-09-07 00:00:26 +0200

Allow choosing the item type when making a mimic in wizmode.

--------------------------------------------------------------------------------
1e27f6ea36 | Raphael Langella | 2011-09-07 00:00:26 +0200

Allow redefining known mimics glyph with the mon_glyph option (#3637).

--------------------------------------------------------------------------------
1ed98ade49 | Raphael Langella | 2011-09-07 00:00:26 +0200

Don't store the mimic name adjective in mname.
Having duplicate names in mon-data.h is problematic, this way is better.
No more problem with partial match when creating mimics in wizmode.

--------------------------------------------------------------------------------
f8c3ee249b | Raphael Langella | 2011-09-07 00:00:26 +0200

Avoid mimics when looking for a destination staircase.

--------------------------------------------------------------------------------
75d891585e | elliptic | 2011-09-06 17:17:15 -0400

Sort spell usage list by total casts.

--------------------------------------------------------------------------------
32ddf1d86e | Florian Diebold | 2011-09-06 15:29:46 +0200

Improvements to Webtiles player list sorting.
- Fix the flickering
- Add small arrow symbols
- Sort idle time correctly

--------------------------------------------------------------------------------
04fb28ffe7 | Adam Borowski | 2011-09-06 02:12:17 +0200

Roughly double the amount of time stuck in webs.
This is currently stateless, without an upper bound.
Probably not a good idea...

--------------------------------------------------------------------------------
d28b42c96b | Adam Borowski | 2011-09-06 01:44:57 +0200

Try to restart layout_devel when it gets stuck (likely for 2,2 and 3,3).

--------------------------------------------------------------------------------
ab287e0479 | Adam Borowski | 2011-09-06 01:19:47 +0200

Narrow the range for knobs to layout_delve in Spider.
Other values often produce nice layouts, but not fitting the branch well.

--------------------------------------------------------------------------------
d7a5f85cfc | Adam Borowski | 2011-09-06 00:54:25 +0200

Add Pingas to CREDITS.

--------------------------------------------------------------------------------
851cf44183 | Adam Borowski | 2011-09-06 00:54:25 +0200

Add four great helmet tiles by Pingas.

--------------------------------------------------------------------------------
a701e04296 | Raphael Langella | 2011-09-06 00:35:32 +0200

Fix a compiler warning.

--------------------------------------------------------------------------------
e2b6d55e36 | Adam Borowski | 2011-09-05 23:32:55 +0200

Fix one of build failures: no unknown mimics, no need to mess with their items.

--------------------------------------------------------------------------------
0f1a49b289 | Raphael Langella | 2011-09-05 23:20:17 +0200

Don't put name tag on mimics.

--------------------------------------------------------------------------------
6ce8411f5e | Raphael Langella | 2011-09-05 23:20:17 +0200

Add book mimics to lemuel_lich_library.
Also simplify the code.

--------------------------------------------------------------------------------
920aadea76 | Raphael Langella | 2011-09-05 23:20:17 +0200

Add books and staves as valid item mimic types.

--------------------------------------------------------------------------------
9e666ba7fc | Raphael Langella | 2011-09-05 23:20:17 +0200

Merge all the item mimics into a single monster type.
Now feature and item mimics have both the same name internally (and use
MF_NAME_ADJECTIVE). I hacked Mon_Name_Cache to allow creating them with &M, but
partial match doesn't work. You have to fully type "item mimic" or
"feature mimic".

Naming is changed a bit and use the item name (DESC_BASENAME). Examples:

 a - ([) A storm dragon armour mimic
 b - (!) A potion mimic
 c - ($) A pile of gold mimic

Adding new item types is trivial now.

--------------------------------------------------------------------------------
15260ea622 | Raphael Langella | 2011-09-05 23:20:17 +0200

Clean up some old shop mimic check.

--------------------------------------------------------------------------------
2ea1b23e54 | Raphael Langella | 2011-09-05 23:20:17 +0200

Fix 2 other vaults with the new mimic definition.

--------------------------------------------------------------------------------
a63a5185d9 | Raphael Langella | 2011-09-05 23:20:17 +0200

Fix the xom_gifts_altar to use the new mimic vault definition.

--------------------------------------------------------------------------------
fcbd2c00ec | Raphael Langella | 2011-09-05 23:20:17 +0200

Add the mimic and no_mimic flags to item vault specification.

--------------------------------------------------------------------------------
6cbf000d1f | Raphael Langella | 2011-09-05 23:20:16 +0200

Give enough energy to mimics so they can attack immediately when revealed.

--------------------------------------------------------------------------------
28da340300 | Raphael Langella | 2011-09-05 23:20:16 +0200

Fix apporting item mimics.
You can apport them like a normal item. They'll stop in front of you instead of
at your feet. And they are revealed too.

--------------------------------------------------------------------------------
d0581dac36 | Raphael Langella | 2011-09-05 23:20:16 +0200

Clean up all the old mimic code.
There's no such thing as an unknown mimic monster anymore. Also rename the
MF_KNOWN_MIMIC monster flag to MF_KNOWN_SHIFTER since it's only used for
shapeshifter now.
For upgraded games, existing unknown mimics will all be revealed.

--------------------------------------------------------------------------------
24a352c91e | Raphael Langella | 2011-09-05 23:20:16 +0200

Item mimics use the new generation algorithm too.
Also remove the teleport and change behaviour. Speed is reduced to 8 so they
are still easy to escape.
They start being generated at dungeon level 7. Any item has 1 chance in 500 of
being a mimic.

--------------------------------------------------------------------------------
f5fb98b1b4 | Raphael Langella | 2011-09-05 23:20:16 +0200

Reveal mimics when you step next to them.
A bit like trapdoor spiders. It also means we can use solid feature for mimics.
Statue mimics for example are possible. Not randomly generated (yet?) but
it's possible to use them in vaults and they are fully functional. Same for
altar mimics by the way.

--------------------------------------------------------------------------------
173d4bc63b | Raphael Langella | 2011-09-05 23:20:16 +0200

Tweak the staircase mimic generation to be less predictable.

--------------------------------------------------------------------------------
20ba9d05e3 | Raphael Langella | 2011-09-05 23:20:16 +0200

Fix branch entries placed for mimicing at a depth too shallow for mimics.

--------------------------------------------------------------------------------
88b24cc322 | Raphael Langella | 2011-09-05 23:20:16 +0200

No stairs down mimics in minmay_temple_entry_from_below.
Any other vaults needing this?

--------------------------------------------------------------------------------
b62782ba98 | Raphael Langella | 2011-09-05 23:20:16 +0200

Add 2 new vault tags: mimic and no_mimic.
mimic is for placing feature mimics, no_mimic is to prevent a feature from
being randomly turned into a mimic.

--------------------------------------------------------------------------------
d931fda3bf | Raphael Langella | 2011-09-05 23:20:16 +0200

Rename stair mimic to staircase mimic.

--------------------------------------------------------------------------------
91f9587515 | Raphael Langella | 2011-09-05 23:20:16 +0200

Merge all the feature mimics into a single monster type.
It's now possible to create any kind of feature mimic using &M.

--------------------------------------------------------------------------------
8385fdb8f0 | Raphael Langella | 2011-09-05 23:20:16 +0200

Clear markers and listeners when a feature mimic is revealed.
So portal mimics stop announcing themselves.

--------------------------------------------------------------------------------
f2712cad87 | Raphael Langella | 2011-09-05 23:20:16 +0200

Don't save shop type for shop mimics.
It's useless now that we save tile flavour directly.

--------------------------------------------------------------------------------
55e6001c24 | Raphael Langella | 2011-09-05 23:20:16 +0200

Allow another lab to be generated if the first one is a mimic.

--------------------------------------------------------------------------------
2b58b52c42 | Raphael Langella | 2011-09-05 23:20:15 +0200

Remove mimic_feature from monster_info.
It's redundant since we already have it in props.

--------------------------------------------------------------------------------
00f3353773 | Raphael Langella | 2011-09-05 23:20:15 +0200

Clear dungeon overview of leftover mimics when a branch is entered.

--------------------------------------------------------------------------------
9308f9eeee | Raphael Langella | 2011-09-05 23:20:15 +0200

Dungeon overview and travel handle multiple branch entries.
Having more than 3 entries for a branch (at least 2 mimics) can mess up the
dungeon overview layout, but it should be extremely rare and it doesn't crash.

A mimic found after the branch has been visited won't be added since it is
obvious. It can be generated anyway because it's better to have an obvious
mimic than letting the player influence monster and dungeon generation with
his actions (visiting a branch).

Dungeon overview is properly cleaned up when mimics are revealed, but not when
the branch is entered.

--------------------------------------------------------------------------------
fa56b17332 | Raphael Langella | 2011-09-05 23:20:15 +0200

Use the branch_is_unfinished() function in one more place.

--------------------------------------------------------------------------------
b342e2a99d | Raphael Langella | 2011-09-05 23:20:15 +0200

Take note when revealing a feature mimic which has been noted before.

--------------------------------------------------------------------------------
2466a7e787 | Raphael Langella | 2011-09-05 23:20:15 +0200

Fix the display of feature mimics in ^X screen.
And also preserve the tile flavour if any was applied to the feature.

--------------------------------------------------------------------------------
5f32674c87 | Raphael Langella | 2011-09-05 23:20:15 +0200

Apply the new feature mimic implementation to all types.
Starting from D:10, any door, stairs, escape hatch, shop fountain and
portal has one chance in 100 of being a mimic.

Branch entry vaults can be placed with a branch entry mimic.

No mimics in the temple and the vestibule. For now, those are the only
excluded places.

--------------------------------------------------------------------------------
659a44c600 | Raphael Langella | 2011-09-05 23:20:15 +0200

Simplify door mimic generation chance.
Starting from dungeon level 10, each door has 1 chance in 100 of being a mimic.
Don't limit generation to D and V. Allow door mimics in vaults, only prevent
vetoed doors from being mimiced.

--------------------------------------------------------------------------------
68e1683950 | Raphael Langella | 2011-09-05 23:20:15 +0200

New feature mimic implementation.
Only for doors now. The mimic is a fully functional feature (monsters can open
door mimics) until it is replaced by a monster mimic when revealed.
When walking into it (or trying to open or close it), the mimic is revealed
and attacks first.
For gameplay reasons, the mimic isn't revealed by ranged attacks and spells
(or else, the player tediously check every feature by throwing stones).
Only passive abilities (antennae) and ones with a strategical cost (sanctuary)
can reveal mimics at range.

--------------------------------------------------------------------------------
db1256ae12 | Raphael Langella | 2011-09-05 23:20:15 +0200

Increase map mask size and add mimic flag.

--------------------------------------------------------------------------------
ab561c206a | Raphael Langella | 2011-09-05 23:18:58 +0200

Remove obsolete trap mimic code.

--------------------------------------------------------------------------------
3d31a4d623 | Adam Borowski | 2011-09-05 19:40:40 +0200

Lower Flight to level 3, bump Levitate to level 3.
With swiftfly gone, there's no point in having both.  And rings/randarts
are still there.

--------------------------------------------------------------------------------
d8a1b61a29 | Aaron Becker | 2011-09-05 19:40:40 +0200

Auto-annotate uniques and player ghosts on the overview screen
Add annotations for any uniques or players ghosts that the player comes
across that indicate what level they were last known to be on, removing
when they are killed or otherwise removed while in your LOS. If they
change levels when out of view, the annotation remains until you run
into them elsewhere.

--------------------------------------------------------------------------------
8cbef500e0 | Adam Borowski | 2011-09-05 19:40:39 +0200

Delete one of octopode tiles.
octopode5.png should probably go, too.

--------------------------------------------------------------------------------
8cbf575987 | Adam Borowski | 2011-09-05 19:40:39 +0200

Recolour monster panel: tough: yellow, nasty: lightred.
Before, the colour for "tough" was brighter and stood out more than the one
for "nasty".

--------------------------------------------------------------------------------
74e52a17db | elliptic | 2011-09-05 13:25:31 -0400

Make movement delay use div_rand_round().
Previously it always rounded down, which had strange effects like making
Haste a little better for characters with a non-standard movement delay. This
change only affects characters with both a non-standard movement delay and a
non-standard base action delay (Haste or Slow).

--------------------------------------------------------------------------------
859b0f8af4 | Chris Campbell | 2011-09-05 17:11:33 +0100

Make Alistair's Intoxication depend on power
Its power is capped at 100 and the chance of successfully confusing a
vulnerable monster depends on power. At higher power it is also less
likely to confuse the user.

--------------------------------------------------------------------------------
a09962a033 | Chris Campbell | 2011-09-05 17:11:32 +0100

Remove the extra speed boost from Swiftness + Flight
Swiftness alone is already a desirable effect, and so is Flight. They
don't really need an additional boost when used in combination.

--------------------------------------------------------------------------------
e237d61572 | Chris Campbell | 2011-09-05 17:11:32 +0100

Don't allow crusade cards to permanently enslave things

--------------------------------------------------------------------------------
faffcae63b | Chris Campbell | 2011-09-05 17:11:31 +0100

Cap jelly hit points in the same way as ghouls/necrophages
Although they can't be permanent allies in the same way, they still
shouldn't really be able to get thousands of hit points from eating
(and can be neutral with Jiyva or temporarily enslaved).

--------------------------------------------------------------------------------
9c308fd3fb | Chris Campbell | 2011-09-05 17:11:30 +0100

Lower curse skull experience, increase Murray experience
They were totally backwards, considering that curse skulls don't even
move.

--------------------------------------------------------------------------------
91515fb622 | Chris Campbell | 2011-09-05 17:11:30 +0100

Let Lugonu accept demon kills

--------------------------------------------------------------------------------
c2fc19cce2 | Adam Borowski | 2011-09-05 16:13:19 +0200

Start the 0.10 changelog (up to 0.10-a0-506-g08addcd).

--------------------------------------------------------------------------------
08addcdbc6 | Adam Borowski | 2011-09-05 15:42:21 +0200

Straighten the two cell_see_cell() confusion.
There were two functions: one used no cache and ignored clouds, another one
has a cache and accepts different LOS models.

I added a new cached model: LOS_SOLID (using opc_solid).  All but one uses
of opc_fullyopaque (two-argument cell_see_cell()) were bugs to me, so they
were moved to a different model.

This makes Refrigeration not work through glass walls anymore (it still
works though clouds).

--------------------------------------------------------------------------------
d1be8d8da1 | Adam Borowski | 2011-09-05 14:33:47 +0200

Reject pan lord names that match something with a description in the database.
This way, there'll be no pan lord Jiyva or Neqoxec.

--------------------------------------------------------------------------------
be2e3faeb1 | Adam Borowski | 2011-09-05 14:10:09 +0200

An one-command way to time all stress tests, reporting median of 5.

--------------------------------------------------------------------------------
6d5a67b409 | Adam Borowski | 2011-09-05 14:03:33 +0200

Reverse the rules for WIZARD compilation, make it the default.
You need to pass NOWIZARD=y to disable it now.

All modern builds had wizard mode enabled anyway, even DGL -- which has
finer control during runtime.  The latter has availability of wizard mode
off by default but it's still compiled in.

--------------------------------------------------------------------------------
ac37946580 | Adam Borowski | 2011-09-05 13:53:07 +0200

Inline in_bounds().
It's a tiny function called from many tight loops.  Inlining it gives ~1%
speedup in non-flto builds.

--------------------------------------------------------------------------------
476362cd7c | Adam Borowski | 2011-09-05 12:54:13 +0200

Restore I_REPTILE as an alias to I_INSECT, sort out inconsitencies.
Old reptiles/amphibians have I_INSECT which is a bit unobvious, so many
newer ones got I_ANIMAL instead.  Thus, I'm adding this alias to reduce
confusion.  All fish, amphibians and non-draconic reptiles are supposed
to use it.

There's next to no difference betwee I_INSECT and I_ANIMAL, though.  The former:
* don't know how to avoid slime walls
* have a minimally smaller pathfinding range
* use a different prefix for speech database lookups

--------------------------------------------------------------------------------
9ec31a5df6 | Adam Borowski | 2011-09-05 12:00:41 +0200

Make the "pan lords vs hell lords" arena stress test shorter.
It took longer than the other four tests together.

--------------------------------------------------------------------------------
77409cab62 | Adam Borowski | 2011-09-05 11:44:45 +0200

Hush a warning.

--------------------------------------------------------------------------------
72d0b57d27 | Adam Borowski | 2011-09-05 02:39:35 +0200

Remove Ignacio's Torment, give him a yet another melee attack.
Only base 5 damage, but there's the exec axe of pain on top of that.

--------------------------------------------------------------------------------
a06cfe0ffc | Aaron Becker | 2011-09-05 02:16:27 +0200

Include executable name in bundle plist and create release target

--------------------------------------------------------------------------------
3282701d3f | Adam Borowski | 2011-09-05 02:12:01 +0200

Let Ignacio spawn again if you failed to kill him.
Also, make any unique left in Pan eligible for spawning again.  The normal
placement won't do that as their vaults have no allow_dup, but if we'll want
to re-use Cerebov or such, here he is.

--------------------------------------------------------------------------------
fc370c9eb2 | Adam Borowski | 2011-09-05 02:01:32 +0200

Don't consider items "lost" when moving between non-LEVEL_DUNGEON levels.
This doesn't affect much:
* fixedarts were marked "lost in Abyss"; before this would allow them to be
  doubled, nowadays that has no effect whatsover
* Xom was unecessarily amused because "you lost stuff"

--------------------------------------------------------------------------------
50fb492dbf | Florian Diebold | 2011-09-04 17:44:38 +0200

Fix an exception in the Webtiles server's error handling.

--------------------------------------------------------------------------------
aea6551632 | Florian Diebold | 2011-09-04 16:07:15 +0200

Pass a timeout value for HTTP keep-alive connections to the server.
This requires a tornado patch which is currently only in my git
repository; to make the server work with tornado master,
http_connection_timeout needs to be set to None.

--------------------------------------------------------------------------------
5c46a256a5 | Florian Diebold | 2011-09-04 15:23:14 +0200

Immediately initialize newly registered users.

--------------------------------------------------------------------------------
4b116c27f7 | Florian Diebold | 2011-09-04 15:19:20 +0200

Re-sort the player list after receiving an update.

--------------------------------------------------------------------------------
4273fbbb59 | Adam Borowski | 2011-09-04 05:03:37 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
726cccb4b8 | Adam Borowski | 2011-09-04 05:00:26 +0200

Manual sync from the wiki: octopodes and monks.

--------------------------------------------------------------------------------
f15c97f659 | Adam Borowski | 2011-09-04 04:59:03 +0200

Fix a see-through rock wall, and Trog masquerading as sort-of-Beogh.

--------------------------------------------------------------------------------
298eb132b5 | David Lawrence Ramsey | 2011-09-03 17:54:34 -0500

Simplify the check for attacking Jiyva slimes.
Note that the shapeshifter check is removed, as it leaks information if
the slime is an undetected shapeshifter, and the only problem is with
neutralized slimes, which can't be shapeshifters anyway.

--------------------------------------------------------------------------------
330a53da2c | Aaron Becker | 2011-09-04 00:04:09 +0200

Fix mac rltiles build, accounting for cross-compilation

--------------------------------------------------------------------------------
5602fed78d | Adam Borowski | 2011-09-03 21:34:33 +0200

A new command: "pick item at cursor" (xg).
It marks the item for autopickup then issues a move command.

In case the move is interrupted, autoexplore will go there although unlike
the initial movement, it won't necessarily go for it first if other valid
items to pickup are closer.  That's probably ok, you might have walked
around (to kill the monster, etc) before restarting.

TODO: what if autopickup is off (Ctrl-A)?

--------------------------------------------------------------------------------
a8768fd11e | Adam Borowski | 2011-09-03 20:05:24 +0200

As a test, make a delve+webs level on D:13.
The CHANCE:100% is not absolute as other layouts use CHANCE as well, but
that's fine.  There are no spiders, just a normal D monster set, new webs
don't spawn either.

--------------------------------------------------------------------------------
e91e4ef86f | Adam Borowski | 2011-09-03 20:05:24 +0200

Ashenzari + octopodes: make 5/6 RC turn into Curse Jewels.

--------------------------------------------------------------------------------
46dafc84b7 | Adam Borowski | 2011-09-03 20:05:24 +0200

layout_delve: don't spam during regular games.

--------------------------------------------------------------------------------
0dfd21055f | Adam Borowski | 2011-09-03 20:05:24 +0200

Lua function crawl.dpr() to print messages in debug builds only.

--------------------------------------------------------------------------------
90e1f58198 | Adam Borowski | 2011-09-03 20:05:24 +0200

Unrevert and fix index_to_letter() checks, make them stricter.
The only place that can legitimately have a non-letter is the lua function,
and it'll now return -1 in that case.  Most of the others had isaalpha()
already.

It's possible I missed some case and the asserts will now crash, but if so,
they'd re buggy anyway (accepting digits and interpunction as slots).

--------------------------------------------------------------------------------
74ba568944 | David Lawrence Ramsey | 2011-09-03 11:19:05 -0500

Tweak profane servitor description a bit; angels are (in this case, were) TSO's.
The preaching angel in the vault that uses Zin's old recite text is an
exception, but that's an odd case.

--------------------------------------------------------------------------------
85d86abf54 | David Ploog | 2011-09-03 15:31:03 +0200

Imprisoned wizards vaults (evilmike); #4496.

--------------------------------------------------------------------------------
3a1f95c63d | Pete Hurst | 2011-09-03 15:12:47 +0200

Fedhas garden: reduced message spam, tweaked timings, fixed tree message, fixed 
fruit

--------------------------------------------------------------------------------
82338ad5cf | Adam Borowski | 2011-09-03 12:08:20 +0200

Rename CXX in rltiles to HOSTCXX.  Breaks Mac autobuilds :(
greatzebu's scripts and his change in cc3e1d6d relied on host and target
being the same, which is true only for native builds.  When passing CXX
from the outside you need to specify which one you mean.

After this commit, you can override them separately.

--------------------------------------------------------------------------------
be71a1c576 | Adam Borowski | 2011-09-03 11:54:54 +0200

ontoclasm's profane tile for servitors.

--------------------------------------------------------------------------------
3a21b26b34 | Chris Campbell | 2011-09-03 04:02:19 +0100

Make the base cost of the stealth skill 80 instead of 50
Under the new system it turns out to be far too easy to raise stealth
to 27 incredibly quickly because it's so cheap - most of the difficulty
in gaining the skill in the old system was that you couldn't really
victory dance it.

--------------------------------------------------------------------------------
cf9652266c | Samuel Bronson | 2011-09-03 02:08:26 +0100

Inscribe starting weapon with "=f" when it's throwable. As I say in the 
comment, it's no fun to discover you've just thrown your +2 dagger because you 
ran out of needles for your blowgun.

--------------------------------------------------------------------------------
a1c1410efe | Samuel Bronson | 2011-09-03 02:08:21 +0100

Correct comment spelling.

--------------------------------------------------------------------------------
bce7fa1313 | Chris Campbell | 2011-09-03 01:31:48 +0100

Rename the book of Brands to the book of Debilitation

--------------------------------------------------------------------------------
f7c6310550 | Chris Campbell | 2011-09-03 01:31:47 +0100

Allow Arcane Marksmen to select their weapon like Hunters

--------------------------------------------------------------------------------
20813c44b8 | Chris Campbell | 2011-09-03 01:31:46 +0100

Re-enable Arcane Marksmen with an initial attempt at a hex-based spellbook
Also adjust their weapons to be the same as those that hunters get,
since they don't rely on branding a launcher now (but with +0 ammo
instead of +1). If/when hunters are changed to have a weapon selection
menu, the same thing could be used for AM.

--------------------------------------------------------------------------------
7456fec775 | Chris Campbell | 2011-09-03 01:31:46 +0100

Increase the quantity of missiles for non-god ammo acquirement

--------------------------------------------------------------------------------
9adf16a059 | Aaron Becker | 2011-09-03 01:31:45 +0100

Allow the player to request ammo for acquirement.

--------------------------------------------------------------------------------
393caa6111 | Chris Campbell | 2011-09-03 01:31:44 +0100

Reword an invisibility message

--------------------------------------------------------------------------------
a790f6e7ce | Chris Campbell | 2011-09-03 01:31:42 +0100

Change ETC_NECRO to ETC_DEATH in a couple of places

--------------------------------------------------------------------------------
596895e2a0 | Chris Campbell | 2011-09-03 01:31:42 +0100

Eronarn's profane servitors and antihaloes
Profane servitor: An angel twisted into an undead monster by
Yredelemnul. He gifts these as a new tier above bone dragons. They are
in Yred's elemental colors, generated wielding a demon whip, probably
slightly better than a bone dragon in melee, and have res holy instead
of holy vuln like most undead. It also generates an umbra. Only Yred
gifts spawn them currently though they'd be great for some vaults.

umbra: An 'antihalo' composed of flickering darkness, which is the
opposite of a halo. Creatures in an umbra are harder to hit with both
ranged/melee, but get a stealth bonus. Currently only profane servitors
generate an umbra. Demons, undead, and worshipers of Yredelemnul
(at **+ for players, but all monsters) aren't harmed by an umbra but
still get the stealth boost.

The patch also changes the "Glow" status light to "Contam", and displays
"Glow" when actually backlit (for whatever reason: halo, sticky flame,
corona).

--------------------------------------------------------------------------------
ef03937bae | David Ploog | 2011-09-03 01:07:46 +0200

Growing garden, Fedhas altar vault (mumra); #4478.
It is very beautiful. I pushed it although it has one cosmetic flaw: when the
oklob sapling grow, or turn into oklob plants, the exclusion code triggers a
bunch of messages (two for every sapling or plant). It should be possible to
keep this in check. Test yourself with &l g_gard.

--------------------------------------------------------------------------------
36372f4312 | Adam Borowski | 2011-09-02 21:32:50 +0200

More seafood in entry vaults.

--------------------------------------------------------------------------------
7a34874b54 | Adam Borowski | 2011-09-02 21:27:34 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
16c9f57a75 | Adam Borowski | 2011-09-02 21:23:26 +0200

Autoexclude lightning spires.
They're ZotDef-only, but oklob saplings were supposed to be so either.

--------------------------------------------------------------------------------
2019352da7 | Adam Borowski | 2011-09-02 20:43:34 +0200

Show orb halo on 'x'.

--------------------------------------------------------------------------------
74d278e94a | Adam Borowski | 2011-09-02 20:41:53 +0200

Simplify.  Reduce the number of "and"s for more than two concurrent areas.

--------------------------------------------------------------------------------
1526df1197 | Pete Hurst | 2011-09-02 20:08:24 +0200

Cobweb tiles

--------------------------------------------------------------------------------
e12493d0b7 | Chris Campbell | 2011-09-02 18:38:00 +0100

Display when a square is haloed or liquefied when examining it
Hopefully this can be extended for new areas more easily, too.

--------------------------------------------------------------------------------
a8009782c4 | Chris Campbell | 2011-09-02 16:45:42 +0100

Autoexclude oklob saplings by default

--------------------------------------------------------------------------------
0fe7996c03 | Chris Campbell | 2011-09-02 16:45:42 +0100

Add Ring of Flames to the book of clouds
It's way too fun to only be in one (rare) spellbook.

--------------------------------------------------------------------------------
d58bc841c9 | Chris Campbell | 2011-09-02 16:45:41 +0100

Prompt for pan exits as well as portals to new pan floors

--------------------------------------------------------------------------------
793da2543a | Aaron Becker | 2011-09-02 16:45:41 +0100

Fix pan rune warning text

--------------------------------------------------------------------------------
3073de4bfc | Aaron Becker | 2011-09-02 16:45:40 +0100

Warn the player when leaving a level which still has a unique pan rune.

--------------------------------------------------------------------------------
5b456036da | Mu | 2011-09-02 16:28:46 +0100

Remove clouds of seething chaos from sprint_mu temple
Also remove one spatial vortex, and replace the chaos
spawn with a demigod.

--------------------------------------------------------------------------------
e137254a24 | David Ploog | 2011-09-02 12:57:38 +0200

Two more vaults (mumra), #4478.
Also move two big vaults into their own files (ancient champions and the
megabat cathedral).

--------------------------------------------------------------------------------
98c68a3e97 | David Ploog | 2011-09-02 12:57:38 +0200

Trog assaulting a hapless wizard, an altar vault (mumra).

--------------------------------------------------------------------------------
860f876ea6 | Jude Brown | 2011-09-02 15:35:54 +1000

Revert "Return a value out of bounds on an invalid letter_to_index()."
This reverts commit c9918169d10a11a91d8110dfd35a93651b2e075e.

This seems to be causing errors relating to #4485, #4484. The commit
talks about only returning -1 on invalid calls, but the code itself only
ever returns -1.

--------------------------------------------------------------------------------
935c394131 | Adam Borowski | 2011-09-02 02:46:00 +0200

Fix a few cases of webs talking about nets.

--------------------------------------------------------------------------------
b2123c2cca | Adam Borowski | 2011-09-02 02:39:37 +0200

Put some webs in old_forge.

--------------------------------------------------------------------------------
f5427fd221 | Chris Campbell | 2011-09-02 01:37:01 +0100

Add Mass Abjuration to the Grand Grimoire, make normal Abjuration properly 
smite-targeted
Also adjust them to use the new refactored spellcasting code correctly.

--------------------------------------------------------------------------------
9edce5a9f9 | Adam Borowski | 2011-09-02 02:36:11 +0200

A vault.

--------------------------------------------------------------------------------
c9918169d1 | Adam Borowski | 2011-09-02 02:28:22 +0200

Return a value out of bounds on an invalid letter_to_index().
This can be called on used-supplied data so asserting is bad, but so is
returning a valid but wrong value.

--------------------------------------------------------------------------------
876bf1430d | Adam Borowski | 2011-09-02 02:20:09 +0200

Make altar_shining_one consistent with other uses (always the article).

--------------------------------------------------------------------------------
cfe1c7b6c3 | Chris Campbell | 2011-09-02 01:15:00 +0100

Merge branch 'master' into demons
Conflicts:
	crawl-ref/source/enum.h
	crawl-ref/source/mon-place.cc
	crawl-ref/source/spl-cast.cc
	crawl-ref/source/spl-summoning.cc
	crawl-ref/source/spl-summoning.h
	crawl-ref/source/zotdef.cc

--------------------------------------------------------------------------------
e02afb39a5 | David Ploog | 2011-09-02 01:54:12 +0200

Slicing altar.des into pieces.
Also turned some mixed altars into overflowing altars, at the price of
duplication. Outsourcing of elaborate maps into their own files.

An inconsistency: KFEAT: _ = altar_shining_one
              but TAGS:  temple_overflow_the_shining_one

--------------------------------------------------------------------------------
372c5066a8 | Adam Borowski | 2011-09-02 01:40:44 +0200

Fix nets never being generated by disarming net traps.

--------------------------------------------------------------------------------
97f9eea986 | Adam Borowski | 2011-09-02 01:40:44 +0200

Reveal a fixed 50% of webs.
After a bit of testing, I see that the quadratic amount of traps with no
visual feedback of visible webs feels weird.  With a fixed chance of being
pre-revealed, you still get more webs deeper on -- with a sudden jump
between S:4 and S:5 (spawn rates S:1-5: 4, 5, 6, 10, 20).

--------------------------------------------------------------------------------
3532e03ba6 | Pete Hurst | 2011-09-02 01:40:44 +0200

Made flying creatures affected by webs

--------------------------------------------------------------------------------
0687b1ffdd | Pete Hurst | 2011-09-02 01:40:44 +0200

Ice and Sky Beasts had no good reason to be immune to webs

--------------------------------------------------------------------------------
3980de707e | Pete Hurst | 2011-09-02 01:40:44 +0200

Pre-reveal some webs (less the deeper you are in the branch)

--------------------------------------------------------------------------------
bf3504a7db | Pete Hurst | 2011-09-02 01:40:44 +0200

Remove EV check for web traps

--------------------------------------------------------------------------------
58621856c2 | Pete Hurst | 2011-09-02 01:40:44 +0200

Passive web placement increases with spider branch depth

--------------------------------------------------------------------------------
d4c2cb435a | Pete Hurst | 2011-09-02 01:40:44 +0200

Assume webs are safe for travel

--------------------------------------------------------------------------------
56831463bd | Adam Borowski | 2011-09-02 01:40:44 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
cc3e1d6d18 | Aaron Becker | 2011-09-02 01:40:43 +0200

Makefile changes to facilitate correctly formatted mac nightly builds

--------------------------------------------------------------------------------
023371366a | Chris Campbell | 2011-09-02 00:36:46 +0100

Make the frost giant in a potentially early vault patrolling
Since it can wade through the deep water, it shouldn't wander out and
kill players on D:9.

--------------------------------------------------------------------------------
cf837b3c85 | Adam Borowski | 2011-09-01 20:03:58 +0200

ontoclasm's Crypt metal walls, and an update to stone.

--------------------------------------------------------------------------------
ece6804bd3 | Pete Hurst | 2011-09-01 15:55:26 +0200

Improve web placement algorithm

--------------------------------------------------------------------------------
d1473517a8 | Pete Hurst | 2011-09-01 15:45:35 +0200

Vary # webs by spider branch depth (and randomise a bit)

--------------------------------------------------------------------------------
8dc45e64cf | Pete Hurst | 2011-09-01 15:38:39 +0200

Hints for webs

--------------------------------------------------------------------------------
43e651736b | Pete Hurst | 2011-09-01 15:38:39 +0200

Generate webs out of LOS during play

--------------------------------------------------------------------------------
6768517f32 | Gustaf Hallberg | 2011-09-01 15:23:25 +0200

Monk staart with some extra piety.

--------------------------------------------------------------------------------
9a2a79be9f | Adam Borowski | 2011-09-01 15:23:25 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
1f9982f7ce | Adam Borowski | 2011-09-01 15:23:25 +0200

Forcibly detaching yourself from a web may destroy it.

--------------------------------------------------------------------------------
e128f59130 | Adam Borowski | 2011-09-01 15:23:25 +0200

Fix some abuses of "char" as an integer type.
It is meant to store an arbitrary unit of memory (byte since the Stone Age),
and details like signedness are undefined.  For a "very short int", there are
int8_t and uint8_t, with defined semantics.

Here, we had chars of -1 used to mark disabled skills, which doesn't work on
ARM and PPC.

--------------------------------------------------------------------------------
dab06ca6e2 | Adam Borowski | 2011-09-01 15:23:24 +0200

Silence a bogus compiler warning.
prev2 will always be set when used, but the compiler doesn't notice that.

--------------------------------------------------------------------------------
e80ec3f9fc | David Ploog | 2011-09-01 14:44:52 +0200

Catoblepas lair ending (evilmike), #4469.

--------------------------------------------------------------------------------
f584a52d84 | Raphael Langella | 2011-09-01 13:46:49 +0200

Don't morph abyss vaults.

--------------------------------------------------------------------------------
9bf835f6df | David Ploog | 2011-09-01 13:42:28 +0200

Seven floating vaults (evilmike); #4462.

--------------------------------------------------------------------------------
fb4d66978b | Adam Borowski | 2011-08-31 14:38:26 +0200

Grow more webs as time passes.

--------------------------------------------------------------------------------
81c39c2b82 | Adam Borowski | 2011-08-31 14:24:23 +0200

Napkin's updates to CIA-email.

--------------------------------------------------------------------------------
54c1e52da8 | Adam Borowski | 2011-08-31 14:21:11 +0200

Napkin's changes to CIA.

--------------------------------------------------------------------------------
a03587e102 | Adam Borowski | 2011-08-31 14:18:12 +0200

Don't place that many webs in the Crypt, way too spammy even for a test.

--------------------------------------------------------------------------------
c3c860bcac | Pete Hurst | 2011-08-31 14:13:39 +0200

Generating webs on dungeon build

--------------------------------------------------------------------------------
4305f1e529 | Adam Borowski | 2011-08-31 13:42:33 +0200

Fix a harmful use of an uninitialized variable.
If the number there would be a small positive integer, shit would happen.

--------------------------------------------------------------------------------
0519e13336 | Pete Hurst | 2011-08-31 13:26:44 +0200

Spiders sense when trapped in web

--------------------------------------------------------------------------------
6ce96cd4f6 | Adam Borowski | 2011-08-31 12:24:59 +0200

Fix map cache not being updated when a timestamp changes.

--------------------------------------------------------------------------------
46a2ee91ed | Adam Borowski | 2011-08-31 12:13:52 +0200

Mention how to optimize PNGs.

--------------------------------------------------------------------------------
7b8ff1816e | Adam Borowski | 2011-08-31 11:52:20 +0200

Sometimes add water to Spider maps.
I have big doubts about this way, though.  It often fails (that's ok),
hardly ever leaves a reason to explore there, and spooks autoexplore into
thinking there's something behind the water.

--------------------------------------------------------------------------------
41fc7aa361 | Adam Borowski | 2011-08-31 11:00:05 +0200

A few updates to CIA aliases.

--------------------------------------------------------------------------------
c65901aada | Aaron Becker | 2011-08-31 10:30:46 +0200

Prevent des cache collisions by using path to file.
Cached map information previously just used the name of the map file, so
that for example entry/large.des and variable/large.des would collide in
the cache. Instead, produce cache entry names that use the full path of
the file relative to the des directory, entry_large.des and variable_large.des.

--------------------------------------------------------------------------------
a93dd5f167 | Adam Borowski | 2011-08-31 05:42:57 +0200

Fix a missing #ifdef for old order of enums.
I accidentally forgot about this part of the diff; it made undiscovered traps
leaked by trying to travel.

--------------------------------------------------------------------------------
cd361de400 | Adam Borowski | 2011-08-31 05:16:53 +0200

Optimize web PNGs.
Sorry for pushing without checking them first before; it's a reduction of over
3x so it's worth it even if those using git get an increase.

--------------------------------------------------------------------------------
9e6dcc6c39 | Adam Borowski | 2011-08-31 05:09:26 +0200

A description for webs.

--------------------------------------------------------------------------------
3852ca9672 | Adam Borowski | 2011-08-31 04:55:13 +0200

s/web trap/web/
It's a trap only technically.

--------------------------------------------------------------------------------
d56b3e8651 | Adam Borowski | 2011-08-31 04:48:47 +0200

Give a message stating why a non-spider monster is immune to webs.

--------------------------------------------------------------------------------
c6d72e6737 | Adam Borowski | 2011-08-31 04:38:39 +0200

Fix players being netted too.

--------------------------------------------------------------------------------
0a68e8cfde | Adam Borowski | 2011-08-31 04:25:04 +0200

Fix monsters stumbling into webs being netted as well.

--------------------------------------------------------------------------------
8b54452bc0 | Adam Borowski | 2011-08-31 04:17:04 +0200

Simplify messaging a bit.

--------------------------------------------------------------------------------
19a43b852c | Adam Borowski | 2011-08-31 04:08:24 +0200

Don't give Gastronok the hat of Pondering if it was generated elsewhere.

--------------------------------------------------------------------------------
1422032f84 | Adam Borowski | 2011-08-31 04:03:50 +0200

Greatly simplify selection of web tile flavour.

--------------------------------------------------------------------------------
0001daee8e | Adam Borowski | 2011-08-31 03:15:45 +0200

Reorder DNGN_TRAP enums on next compat break.

--------------------------------------------------------------------------------
545ad87ee9 | Pete Hurst | 2011-08-31 03:13:20 +0200

Web trap initial implementation

--------------------------------------------------------------------------------
6373aee817 | Adam Borowski | 2011-08-31 02:47:57 +0200

ontoclasm's new tiles for Crypt.

--------------------------------------------------------------------------------
ed426862ff | Adam Borowski | 2011-08-31 01:51:52 +0200

Remove 0.9 Octopode checks.
Whether we'll end up adding such checks for 0.10 is another question, but
I'd say there'll be enough time for a final decision.

Not removing the blocking code but commenting it out.  There are talks about
testing both competing golem proposals in trunk...

--------------------------------------------------------------------------------
2a51ea332b | Adam Borowski | 2011-08-31 01:18:38 +0200

Fix broken copypasta.

--------------------------------------------------------------------------------
76fd7ef9bb | Adam Borowski | 2011-08-31 01:18:38 +0200

Force the new game species menu into three columns.
It was hand-adjusted depending on species being enabled or not, let's
generalize it instead.

--------------------------------------------------------------------------------
9c4feedcfa | David Ploog | 2011-08-31 00:54:56 +0200

Fix spider portal vault milestone message (Zannick).

--------------------------------------------------------------------------------
6f51713ede | Adam Borowski | 2011-08-31 00:37:43 +0200

Don't use SK_POISON_MAGIC in loops as "last magic school".

--------------------------------------------------------------------------------
582189167f | Adam Borowski | 2011-08-31 00:25:36 +0200

Fix Healers not getting one of their potions.
Of course, we may use this as an opportunity for a nerf instead, making the
results of this bug permanent.

--------------------------------------------------------------------------------
5a1222b911 | Adam Borowski | 2011-08-31 00:22:46 +0200

Don't put food into inventory slot 'y' if this can be avoided.
If butchering fails, mindlessly pressing 'e' 'y' made you waste permafood.

--------------------------------------------------------------------------------
cd8171188d | Adam Borowski | 2011-08-31 00:04:48 +0200

Let felids weapon-swap stones for Sandblast or arrows for Sticks to Snakes.
(there's no check for useless missiles, but other races don't check for
large rocks on non-Og non-Tr or javelins on Sp Ha Ko either)

--------------------------------------------------------------------------------
8fb3aca69b | Pete Hurst | 2011-08-30 23:58:27 +0200

Fix misleading comment in mgen_data.h

--------------------------------------------------------------------------------
8bd967e333 | Adam Borowski | 2011-08-30 23:58:17 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
ed032a34e5 | David Ploog | 2011-08-30 22:35:52 +0200

New entry vault (denvon); #4273.

--------------------------------------------------------------------------------
a2b4243190 | Chris Campbell | 2011-08-30 18:17:03 +0100

Improve trap detection messages when stepping onto a trap

--------------------------------------------------------------------------------
73bcd2f798 | Chris Campbell | 2011-08-30 16:52:04 +0100

Restore catoblepae to normal frequencies

--------------------------------------------------------------------------------
ba66029bd5 | Chris Campbell | 2011-08-30 16:29:44 +0100

Adjust the locations for some TSO vaults
They probably shouldn't spawn in places like Slime, just D and V seems
more appropriate.

--------------------------------------------------------------------------------
f2140d3a3f | Adam Borowski | 2011-08-30 17:12:18 +0200

Fix &: pretending Snake is not a Lair branch.

--------------------------------------------------------------------------------
4cac99eb86 | Adam Borowski | 2011-08-30 16:17:29 +0200

Generalize checks for disabled Lair branches.

--------------------------------------------------------------------------------
1203519ab6 | Adam Borowski | 2011-08-30 15:37:50 +0200

Remove two accidentally left debugging statements.

--------------------------------------------------------------------------------
23f34ec955 | Aaron Becker | 2011-08-30 07:38:00 +0200

Set correct flags when amulet of faith is id'ed by joining a religion.

--------------------------------------------------------------------------------
4f6924419d | Mu | 2011-08-30 04:05:36 +0100

Powerful new minivault by evilmike

--------------------------------------------------------------------------------
808eab6ed7 | Adam Borowski | 2011-08-29 14:49:58 +0200

Minimal vaults needed for Spider to work.
Need to be replaced, but we do have skilled vault makers so there is little
risk there will be problems here :)

--------------------------------------------------------------------------------
3fd0989147 | Adam Borowski | 2011-08-29 14:44:40 +0200

Fix tiles compilation.
The actual branch looks ugly though, with no cobwebs.

--------------------------------------------------------------------------------
48ae2f5db9 | Adam Borowski | 2011-08-29 14:10:08 +0200

Fix stairs to/from Spider not being generated and not working.

--------------------------------------------------------------------------------
1ca4cb45e5 | Adam Borowski | 2011-08-29 13:45:13 +0200

layout_delve: in grd mode, don't trample upon MMT_VAULT.

--------------------------------------------------------------------------------
306f08b761 | Adam Borowski | 2011-08-29 13:22:11 +0200

Temporarily enable the whole range of knobs for layout_delve.
Only some are appropriate for Spider: mostly ngb_max up to 3-4, connchance
of 0 might be not good with ngb_max=1, big connchances produce probably too
open layouts.  But with the knobs randomly set to all possible values, you
can review the layouts by pounding on &^R&{

One you're unlikely to find on a chance is for example 3,3,0,*,1 though.

--------------------------------------------------------------------------------
d634ad8574 | Adam Borowski | 2011-08-29 13:05:49 +0200

Fix lua wrapper to delve() passing arguments in a cumbersome way.
We're not going to set connchance or top without setting ngb_min/max.

--------------------------------------------------------------------------------
de2d8d3d7e | Adam Borowski | 2011-08-29 11:35:56 +0200

Allow delve() to operate on both grd or map_lines.

--------------------------------------------------------------------------------
c5220e3641 | Adam Borowski | 2011-08-29 02:33:28 +0200

Reimplement Kusigrosz' layout_delve.
TODO:
* operate on vault maps rather than grd -- Zaba, would that still allow
  using it as a post-processor?

* support for non-empty initial maps -- every connector needs to have enough
  seed grown next to it

* some arguments tend to stop prematurely, like 3,3,0,,125 -- we may either
  restart or alter the algorithm to give-back squares rejected due to failing
  ngb_min; we'd need some tests, preferably on non-empty maps

* delving too much at a boundary looks ugly

--------------------------------------------------------------------------------
94e45811bb | Adam Borowski | 2011-08-28 23:46:07 +0200

Orb glow in webtiles.

--------------------------------------------------------------------------------
c1a1f37fd6 | Raphael Langella | 2011-08-28 22:46:36 +0200

Calculate the skill cost at the end of the transfer not at each iteration.
And not at all when just simulating. This should fix this assert:
ASSERT(next_level > 0) in 'skills.cc' at line 618 failed.

--------------------------------------------------------------------------------
b238edcdf2 | Adam Borowski | 2011-08-28 17:08:56 +0200

Don't imply that regular fountains provide nutrition. They don't anymore.

--------------------------------------------------------------------------------
75cfc71514 | Adam Borowski | 2011-08-28 17:08:56 +0200

Consider permarock ('X') to be solid for map purposes.
We'd want "open sea" and "endless lava" too, but they have no default letters.

--------------------------------------------------------------------------------
07851d86b6 | Raphael Langella | 2011-08-28 00:27:48 +0200

Fix shops not showing tried items as unknown.

--------------------------------------------------------------------------------
8a05b7378f | Raphael Langella | 2011-08-28 00:27:48 +0200

A little script for listing remote branches which have been merged.

--------------------------------------------------------------------------------
0f49582547 | Adam Borowski | 2011-08-27 13:42:44 +0200

Fix reversed logic that inhibited chaos clones.
The original code wanted to prohibit holy monsters from being duplicatable,
yet there was a redundant check, reversed in one of places.  Since then,
prohibition on holies has been lifted, but the other check hasn't been
removed.

--------------------------------------------------------------------------------
613469b577 | David Lawrence Ramsey | 2011-08-26 23:33:43 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
b4c3ab02fd | Adam Borowski | 2011-08-27 02:23:55 +0200

Orb glow in tiles.

--------------------------------------------------------------------------------
571e60d2ac | Adam Borowski | 2011-08-27 01:47:05 +0200

Halve dissipation of glow when near the Orb.

--------------------------------------------------------------------------------
55dbf82354 | Adam Borowski | 2011-08-27 01:30:16 +0200

Denzi's tile for passage of Golubria's portals.

--------------------------------------------------------------------------------
f8d5dca8b3 | Adam Borowski | 2011-08-26 20:07:42 +0200

Notify the player that he can expect forces of Pan to try to kick his ass.

--------------------------------------------------------------------------------
54e086edef | Adam Borowski | 2011-08-26 19:22:32 +0200

Remove a nasty hack for rock/stone walls in Crypt, Tomb and portals from there.
If you somehow entered a portal from these branches (probably with the
Trowel card), all stone wall tiles would masquerade as rock.

Stone in Crypt and Tomb use rock tiles as well, but the default rock there
is made to look like stone so effectively it's rock what's wrong.  There's
(almost) no natural rock in those places, but you can still get it from
Khufu, the Tomb of Doroklohe card, Lugonu's corruption and possibly some
vaults.

The outer border of Tomb:1 is rock too, but being border it is not diggable.
My change affected it so it no longer uses the stone tile, if this is a
concern we can repaint it or turn it into actual stone.

--------------------------------------------------------------------------------
6dbe20eff2 | Adam Borowski | 2011-08-26 18:55:21 +0200

A great set of Lab tiles by ontoclasm.

--------------------------------------------------------------------------------
78e3cc376b | Chris Campbell | 2011-08-26 12:18:04 +0100

Give Golubria traps a description

--------------------------------------------------------------------------------
7a3c6d3a8c | Adam Borowski | 2011-08-26 04:20:16 +0200

Add Samuel Wilson (ontoclasm) to credits.

--------------------------------------------------------------------------------
02d59973ad | Adam Borowski | 2011-08-26 03:34:07 +0200

Make some more functions static.

--------------------------------------------------------------------------------
d7e9cd9940 | Adam Borowski | 2011-08-26 03:24:58 +0200

Hush a warning.
Perhaps we should assert instead?

--------------------------------------------------------------------------------
c212926a94 | Adam Borowski | 2011-08-26 03:22:45 +0200

Make several functions static.

--------------------------------------------------------------------------------
714f4c1d3f | Adam Borowski | 2011-08-26 02:21:23 +0200

ontoclasm's tiles for the rest of runes.

--------------------------------------------------------------------------------
5afa6402f7 | Chris Campbell | 2011-08-25 18:39:32 +0100

Fix a bug causing power to have no effect on holy word scrolls, rebalance 
damage (rwbarton)
Holy word was always being cast with 0 power, resulting in it just
doing 3d15 damage and never having any bonus for worshippers of good
gods, as was intended. Fixing that, however, would result in it doing
up to an extra random2(300)/3 damage for worshippers of TSO, so I toned
down the additional damage - it still works out as a buff overall for
holy word, which is probably fine.

--------------------------------------------------------------------------------
b0a9b0f602 | Adam Borowski | 2011-08-25 14:27:24 +0200

Make the Orb glow pulse visually.

--------------------------------------------------------------------------------
9aecb92c85 | Adam Borowski | 2011-08-25 13:52:00 +0200

First stab at Orb glow.
No tiles yet, fixed radius and an ugly random colour scheme.
Pushing so we can play with variants.

--------------------------------------------------------------------------------
c7f073f61a | Adam Borowski | 2011-08-25 13:03:01 +0200

Short-circuit player_has_orb() unless we're on the way up.

--------------------------------------------------------------------------------
8d3dd66412 | Adam Borowski | 2011-08-25 13:03:01 +0200

Cache position of the Orb.
It is referenced many times for every monster per turn in ZotDef.

--------------------------------------------------------------------------------
c17ed30b48 | Adam Borowski | 2011-08-25 13:03:01 +0200

Cache whether any passages of Golubria or glowing molds are present.
Checking for those every turn costed 1% CPU time each on unwoken_rest, and
more on an empty level.

--------------------------------------------------------------------------------
df459dd09d | Raphael Langella | 2011-08-24 20:55:06 +0200

Move dangerous monster colour to lightred to avoid overlap with evil attacks.

--------------------------------------------------------------------------------
892b19d972 | Raphael Langella | 2011-08-24 20:55:06 +0200

Clear traps from stash tracking and map knowledge when they are destroyed.
Only if the player is aware of the destruction, but it's the case most of the
time. Fixes #4429.

--------------------------------------------------------------------------------
fd92a8574c | Chris Campbell | 2011-08-24 17:52:30 +0100

Remove vipers
They're barely differentiated from water moccasins and black mambas,
as well as only even spawning in the Snake Pit where they're just yet
another poisoning monster.

For Sticks to Snakes, I gave it an extra chance of upgrading to a water
moccasin at 40 power, instead of to a viper.

--------------------------------------------------------------------------------
26524ff776 | Chris Campbell | 2011-08-24 17:52:29 +0100

Allow viewing the known items list during acquirement

--------------------------------------------------------------------------------
ff7f8bbcdc | Chris Campbell | 2011-08-24 17:52:29 +0100

Experimentally tweak the FE book again
Add Conjure Flame again, remove Bolt of Magma, reduce Fireball to level
5.

--------------------------------------------------------------------------------
4112403894 | Chris Campbell | 2011-08-24 17:52:28 +0100

Don't duplicate banished uniques when they follow you out of the abyss
Abyssed monsters were able to be cloned by banishing them, finding them
in the abyss and then having them follow you out of the abyss through
a gate - they'd appear back in the dungeon with you, but also still
be spawned in the abyss next time you visited.

--------------------------------------------------------------------------------
ab350512ff | Florian Diebold | 2011-08-24 16:48:22 +0200

Fix Webtiles crashing in ZotDef with show_gold_turns.

--------------------------------------------------------------------------------
b8e195ffc2 | Raphael Langella | 2011-08-24 13:43:46 +0200

Colour the monster list according to threat level.
Trivial: darkgrey
Easy:    lightgrey
Tough:   red
Nasty:   magenta

--------------------------------------------------------------------------------
cef332eb06 | Raphael Langella | 2011-08-24 13:43:46 +0200

Make monster threat level accessible from lua.
Should help with bots.

--------------------------------------------------------------------------------
1e9ca8fa83 | Raphael Langella | 2011-08-24 13:43:46 +0200

A lua hook to tell if we're currently being prompted for level up stat gain.
For the Zot Bot.
https://crawl.develz.org/tavern/viewtopic.php?f=22&t=2333

--------------------------------------------------------------------------------
5baea3003c | Adam Borowski | 2011-08-24 12:43:11 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
69520781c6 | Adam Borowski | 2011-08-24 12:40:06 +0200

Additional char dump spam: "spell_usage".
Disabled by default.

Internally, data is gathered for XL, yet the current display shows it only
per levels 1..3, 4..6, ...

--------------------------------------------------------------------------------
4d2a4b150e | Raphael Langella | 2011-08-24 01:15:29 +0200

Add monster threat level to description.

--------------------------------------------------------------------------------
b691fff8e0 | Raphael Langella | 2011-08-24 01:04:41 +0200

Simplify.

--------------------------------------------------------------------------------
7d58bf78f8 | Raphael Langella | 2011-08-24 00:37:26 +0200

Minor cosmetic fix.

--------------------------------------------------------------------------------
bd9f04897e | Raphael Langella | 2011-08-24 00:30:23 +0200

Add monster threat level to monster_info.

--------------------------------------------------------------------------------
87984ce35d | Raphael Langella | 2011-08-24 00:12:59 +0200

Minor cosmetic fix.

--------------------------------------------------------------------------------
b762f59af9 | Raphael Langella | 2011-08-23 22:07:20 +0200

Don't leak info on real monster threat level when misled.
This can cause some crashes if the game is upgraded in the middle of a fight
with Mara.

--------------------------------------------------------------------------------
0a80877a7f | Raphael Langella | 2011-08-23 21:16:37 +0200

Only confirm gold pickup on partial stack pickup.

--------------------------------------------------------------------------------
730006648f | Adam Borowski | 2011-08-23 18:41:38 +0200

Plate mails of levitation, for Mu's nefarious purposes.
They don't generate randomly but can be placed in vaults.

--------------------------------------------------------------------------------
e1f5d587d1 | Adam Borowski | 2011-08-23 18:06:21 +0200

Finish the removal of katanas.
This is mostly clean-up of dormant code, as the only way to get a katana is
Bloodbane.  Funny thing is, it wasn't even converted to a katana properly in
cfbf888d -- its tiles show an european style sword.  To preserve the
intended upgrade I made it a demon blade, but this means the tiles should
probably get that violet aura other demon stuff has.  Not doing that yet
since there might be issues with good god worshippers -- theme of Bloodbane
doesn't exactly scream "a good or neutral item" to me but you might
disagree.

There is a remnant left -- tile of level 21..25 Long Blade ghosts, no other
sword seems to fit well.

--------------------------------------------------------------------------------
6802190830 | Adam Borowski | 2011-08-23 18:06:21 +0200

Don't use misleading colours for monster gear.
There's no benefit in necromancer robes masquerading as helmets or
angel/wight ones as cloaks.

--------------------------------------------------------------------------------
99cc9d8616 | Florian Diebold | 2011-08-23 16:27:54 +0200

Webtiles: Split the game links over multiple lines.

--------------------------------------------------------------------------------
3e347da896 | Florian Diebold | 2011-08-23 16:27:54 +0200

Allow changing the Webtiles banner after the user logs in.

--------------------------------------------------------------------------------
427edc942a | Florian Diebold | 2011-08-23 16:27:54 +0200

Webtiles: Don't reset idle time on control messages.

--------------------------------------------------------------------------------
9763c94531 | Florian Diebold | 2011-08-23 16:27:54 +0200

Webtiles: Run the user init script after login, not before starting a game.
This makes sure the rc file can be edited immediately.

--------------------------------------------------------------------------------
ee71ab2ab7 | Florian Diebold | 2011-08-23 16:27:54 +0200

Log the shutdown reason in the Webtiles server.

--------------------------------------------------------------------------------
22a491d394 | Florian Diebold | 2011-08-23 16:27:54 +0200

Allow sorting the game list in Webtiles.

--------------------------------------------------------------------------------
3826f994bf | Florian Diebold | 2011-08-23 16:27:54 +0200

Add rc file editing to Webtiles.

--------------------------------------------------------------------------------
50f0525449 | Adam Borowski | 2011-08-23 16:00:26 +0200

More than double the speed of LOS calculations.
There are two speed-ups:
* no need to check rays in the bounding square beyond a circle
* don't calculate both LOS_DEFAULT and LOS_NO_TRANS every time

--------------------------------------------------------------------------------
36d3879b72 | Adam Borowski | 2011-08-23 15:19:09 +0200

Fix broken copypasta.

--------------------------------------------------------------------------------
e427313db5 | Adam Borowski | 2011-08-23 13:12:26 +0200

Fix missing portals to Zot on D:27 (ouch!).
This could happen with restart_after_game after a Sprint.

--------------------------------------------------------------------------------
525154a502 | Raphael Langella | 2011-08-23 13:06:07 +0200

Don't offer to identify misc items other than crystal balls.
What 05c86e45 tried to do.

--------------------------------------------------------------------------------
63ccf77081 | Raphael Langella | 2011-08-23 13:06:07 +0200

Fix fake Maras being displayed separately from Mara in the monster list.
This hack seems to be obsolete. Pronouns work just fine like that.

--------------------------------------------------------------------------------
1017e31b67 | Raphael Langella | 2011-08-23 13:06:07 +0200

Remove duplicate code.
The sorting is already done in get_monster_info().

--------------------------------------------------------------------------------
02f3f9fc47 | Raphael Langella | 2011-08-23 13:06:07 +0200

Fix mons_threat_level leaking info about fake Rakshasa.

--------------------------------------------------------------------------------
4aa0b7b2c7 | Adam Borowski | 2011-08-23 12:49:57 +0200

A ./crawl --test to ensure Zot, Pan and Hells portals get placed.
We could extend this to other branches as well.

--------------------------------------------------------------------------------
7d8f2b0caf | Florian Diebold | 2011-08-23 00:11:20 +0200

Fix a "non-door tile" assert in Webtiles.

--------------------------------------------------------------------------------
ba39096783 | Raphael Langella | 2011-08-22 20:29:02 +0200

Give 2 throwing nets to all hunters with throwable missiles.

--------------------------------------------------------------------------------
8f32aaac55 | Raphael Langella | 2011-08-22 20:29:02 +0200

Give one more javelin and a lot more darts to hunter.

--------------------------------------------------------------------------------
2ee50a48bb | Raphael Langella | 2011-08-22 20:29:02 +0200

Formatting fixes and some simplification.

--------------------------------------------------------------------------------
f29142407d | Voker57 | 2011-08-22 20:29:02 +0200

Added weapon choice for hunters
Every hunter gets to choose from 3 weapons: throwing (large rocks for large
species, javelins for medium ones, darts for spriggans).

All missiles are +1, weapons are +0.

--------------------------------------------------------------------------------
32198e9e87 | Raphael Langella | 2011-08-22 20:29:02 +0200

Guarantee one turn to act when player is awaken from sleep.
Decrement duration for sleep is moved to _player_reacts_to_monster just like
for paralysis and petrification.

--------------------------------------------------------------------------------
e1dc048fa9 | Raphael Langella | 2011-08-22 20:29:02 +0200

Improve the reporting of paralysis source in morgue and notes.
Notes will always report the paralysis, even if caused by something (used to
report only if caused by someone).
Morgue will also report the source of the paralysis.

--------------------------------------------------------------------------------
fef13ffeb9 | David Lawrence Ramsey | 2011-08-22 10:08:57 -0500

Add spacing fix.

--------------------------------------------------------------------------------
b59bdcd053 | Ryan Riegel | 2011-08-22 13:34:21 +0200

Fix autoexplore to not shortcut consideration of exploration targets when 
inappropriate to do so. Also, indentation fixes.

--------------------------------------------------------------------------------
d33b8490cc | Raphael Langella | 2011-08-22 13:29:05 +0200

Simplify.

--------------------------------------------------------------------------------
4e30d9a921 | Aaron Becker | 2011-08-22 13:29:05 +0200

Allow ammo gifts to use any ammo type the player can make use of.

--------------------------------------------------------------------------------
03445fa3fe | Raphael Langella | 2011-08-22 13:29:05 +0200

Fix an overflow error in _inc_gift_timeout() (GreatZebu #4362).

--------------------------------------------------------------------------------
cd59c336ff | Chris Campbell | 2011-08-19 17:51:12 +0100

Don't make Pan/Abyss floors the same colour as silence auras or haloes

--------------------------------------------------------------------------------
7d48f59a64 | David Lawrence Ramsey | 2011-08-19 10:10:51 -0500

Comment fix.

--------------------------------------------------------------------------------
bb6a308b7a | Raphael Langella | 2011-08-19 13:44:41 +0200

Confirm before picking up gold whith ; when unsafe (#4413).
This key is expected to check for safety or confirmation before doing
something that uses a turn.

--------------------------------------------------------------------------------
63f6258551 | Raphael Langella | 2011-08-19 13:36:44 +0200

Improve code readability.

--------------------------------------------------------------------------------
18d2f67ae1 | Raphael Langella | 2011-08-19 13:22:24 +0200

Artefacts are always displayed in white in shops.
Also some simplification and formatting fixes.

--------------------------------------------------------------------------------
466e2c9fba | blueDave | 2011-08-19 13:22:24 +0200

Implement "Improve on Shop Modes".
From the Interface Implementables wiki page. When in description mode via !
the shop inventory is displayed using lightgrey for known items and white for
unknown and artefacts.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
6f8bfe566d | Adam Borowski | 2011-08-19 13:18:27 +0200

Canned hands-off scenarios for valgrind, performance tests, etc.

--------------------------------------------------------------------------------
24ac8eed43 | Adam Borowski | 2011-08-19 01:40:39 +0200

Remove an useless calculation.

--------------------------------------------------------------------------------
91b6bb2216 | Raphael Langella | 2011-08-19 00:59:19 +0200

Add a mons_threat_level function to be used by ash tiers.
We still need to make it work properly on monster_info before we can make
it public (add threat level in monster description).
Current Ash tiers leak already too much (can distinguish fake rakshasa and
mara if out of LOS).

--------------------------------------------------------------------------------
8a86b7c655 | Raphael Langella | 2011-08-19 00:51:34 +0200

Print the trap type when trap is discovered.

--------------------------------------------------------------------------------
839935c1e6 | Raphael Langella | 2011-08-19 00:51:34 +0200

Fix a mislead leak with fake enchantments.

--------------------------------------------------------------------------------
bf8c7df88d | Raphael Langella | 2011-08-19 00:51:34 +0200

Clean up some obsolete code in mon-info.cc
mons_attitude() takes into account temporary enchantment, so this is useless.

--------------------------------------------------------------------------------
07a99e4cac | Raphael Langella | 2011-08-19 00:51:34 +0200

Monster list: hide health indicator if monster don't display damage.
The green square is useless and a bit misleading in this case.

--------------------------------------------------------------------------------
e90866568f | David Lawrence Ramsey | 2011-08-18 13:19:32 -0500

Comment fix.

--------------------------------------------------------------------------------
3d2ab66fdd | Raphael Langella | 2011-08-18 13:15:03 +0200

Fix drop last using a single turn.
Make it use proper multidrop delay instead.

--------------------------------------------------------------------------------
265ec2af93 | Raphael Langella | 2011-08-18 13:15:03 +0200

Fix aborted drop using a turn (#4402).

--------------------------------------------------------------------------------
09d61ff083 | Adam Borowski | 2011-08-18 11:33:38 +0200

Disallow polearms as a weapon choice for {Sp,Ha,Ko}{Fi,Gl}.
They are two-handed and thus unusable with a shield; with no shield you
are better off as a Warper or Skald.

Strictly speaking, halflings and kobolds can wield spears 1.5-handed, but
they're bad while all upgrades are 2-handed (tridents) or unwieldable
(halberds, glaives, bardiches).

--------------------------------------------------------------------------------
b2ad2dccd2 | Adam Borowski | 2011-08-18 11:10:24 +0200

An assertion check against infinite loops in replace_all() and friends.

--------------------------------------------------------------------------------
80812af177 | Adam Borowski | 2011-08-18 11:10:24 +0200

Fix a crash on some randart properties.

--------------------------------------------------------------------------------
231db9ae28 | David Lawrence Ramsey | 2011-08-17 23:30:11 -0500

Make permanent wizard summons of Yred keep their gods.
This is done so that zombies raised by Yred's skeletal warriors will
properly turn on you if you abandon Yred.

--------------------------------------------------------------------------------
4448a5de34 | David Lawrence Ramsey | 2011-08-17 23:18:44 -0500

Consolidate the routine to set a monster's priest, wizard, and god.

--------------------------------------------------------------------------------
d29899c9fd | David Lawrence Ramsey | 2011-08-17 23:17:34 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
1410833b24 | David Ploog | 2011-08-17 23:18:00 +0200

Fix wrong reference (ZChris).

--------------------------------------------------------------------------------
e32bd089b7 | Adam Borowski | 2011-08-17 19:44:57 +0200

Remove unused non-Lua fog generator code, almost unused trap generators.
The version we do use, placing fog generators with vaults, gives a lot
better control.

Per-branch trap generators were used only to block mechanical traps from
generating in Slime, this can be done with a single if.

--------------------------------------------------------------------------------
934cc1d96b | Adam Borowski | 2011-08-17 19:44:57 +0200

Make a bunch of functions static or non-existant.

--------------------------------------------------------------------------------
865ad7c97e | Adam Borowski | 2011-08-17 19:44:57 +0200

Remove a duplicated function.
The other copy is in main.cc, inline.

--------------------------------------------------------------------------------
871629c1ad | Adam Borowski | 2011-08-17 19:44:57 +0200

Fix shoals_atoll not having any loot outside of &L

--------------------------------------------------------------------------------
715b24d1c3 | Adam Borowski | 2011-08-17 19:44:56 +0200

Display errors about misplaced items in normal games.
If they can legitimately occur, please revert.

Otherwise, buggy vaults like shoals_atoll can survive multiple releases
without anyone spotting that something is amiss.

--------------------------------------------------------------------------------
ae68e0b1ca | Adam Borowski | 2011-08-17 19:44:56 +0200

An indentation fix.
The fate of the world depends on these, you know.

--------------------------------------------------------------------------------
bc66555d18 | Adam Borowski | 2011-08-17 19:44:56 +0200

Disambiguate get_item_slot().
There were two functions by that name:
* getting equipment slot of an item
* allocating a new entry in the mitm array
-- the latter is now get_mitm_slot().

--------------------------------------------------------------------------------
a48703f346 | Adam Borowski | 2011-08-17 19:44:56 +0200

Turn a DC3.0-era compat check into an assert.

--------------------------------------------------------------------------------
ff5908cc7b | Adam Borowski | 2011-08-17 19:44:56 +0200

Wrap dumps and morgues at 80 columns rather than the terminal's width.

--------------------------------------------------------------------------------
adc14d838b | Adam Borowski | 2011-08-17 19:44:56 +0200

Make some functions static.

--------------------------------------------------------------------------------
34672bc676 | Adam Borowski | 2011-08-17 19:44:55 +0200

Get rid of an useless std::map<uint8_t>.

--------------------------------------------------------------------------------
8201a87d72 | Raphael Langella | 2011-08-17 18:32:48 +0200

Add a few assert to secure skill training.

--------------------------------------------------------------------------------
0971547385 | Vsevolod Kozlov | 2011-08-17 19:45:08 +0400

Make demons_altar mini_float.
Normal minivault connectivity rules don't really work well for it.

--------------------------------------------------------------------------------
f373c6b2d7 | Vsevolod Kozlov | 2011-08-17 11:42:01 +0400

pan.des: Move the common rune/portal/lord prelude into a function.

--------------------------------------------------------------------------------
0001f4f05a | David Lawrence Ramsey | 2011-08-16 20:38:13 -0500

Make Yred's soul enslavement use mons_get_damage_level().
This fixes it to account for 7f3f0ed66376d4fef93435c0e81d80144e5266ea.

--------------------------------------------------------------------------------
df62fc41bc | Mu | 2011-08-16 22:28:07 +0100

Give Snake:5 a smoking section
This is a new Snake:5 endvault featuring salamanders.
The difficulty might need tweaking a bit.
It should add a bit of variety, though.

--------------------------------------------------------------------------------
ff0013066a | Raphael Langella | 2011-08-16 21:58:30 +0200

Don't remove the malign gateway portal right when the tentacle die.
timeout_malign_gateways() takes care of clearing the portal anyway.
Fixes #4393.

--------------------------------------------------------------------------------
7f3f0ed663 | Raphael Langella | 2011-08-16 21:58:30 +0200

Use a linear scale for monster wound descriptions.
It's hard enough to get an idea of damage done from wound descriptions, no
need to make it harder with a misleading scale.

Almost dead:        1/6 => 1/5
Severely damaged:   1/4 => 2/5
Heavily damaged:    1/3 => 3/5
Moderately damaged: 3/4 => 4/5

--------------------------------------------------------------------------------
8ab0833141 | Raphael Langella | 2011-08-16 21:58:30 +0200

Tiles: fix firestorm targetting.

--------------------------------------------------------------------------------
ca70d90697 | Raphael Langella | 2011-08-16 13:35:43 +0200

Fix Ziggurat shopping list prompt before screen redraw (#468).

--------------------------------------------------------------------------------
6beb4e7c91 | Raphael Langella | 2011-08-16 13:35:43 +0200

Fix bad formatting of the list jewellery command.

--------------------------------------------------------------------------------
b4fdb2576d | Vsevolod Kozlov | 2011-08-16 12:13:29 +0400

spiders_nest_spider_trap: Never block the path with deep water.

--------------------------------------------------------------------------------
d5e6ac334e | Raphael Langella | 2011-08-16 00:37:03 +0200

Fix a typo in Olgreb's Toxic Radiance (#4394).
This boost the spell. Funny how this typo has been introduced in 2007 and
has never been noticed despite several people editing it.

--------------------------------------------------------------------------------
17b7a6df29 | Chris Campbell | 2011-08-15 15:08:38 +0100

Add an exit near the entrance of volcano_lake
It still seems capable of spawning flame clouds on the player almost
immediately, though, and even removing the volcanoes on the S glyphs
near the entrance didn't seem to address it, so I'm not sure of a good
way to fix it.

--------------------------------------------------------------------------------
4da3cb678e | Chris Campbell | 2011-08-15 15:08:37 +0100

Make the hell lords guard their runes, as pan lords do

--------------------------------------------------------------------------------
7be3dc46dc | David Lawrence Ramsey | 2011-08-14 20:48:34 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
e3d18b6341 | Raphael Langella | 2011-08-14 23:39:20 +0200

Don't choose disabled jobs and species on random selection (#4380).

--------------------------------------------------------------------------------
13b0f5f6d5 | Raphael Langella | 2011-08-13 17:24:34 +0200

Don't interrupt butcher on messages (#4372).
And you can still butcher while slightly poison which was the point of
using the runrest script for butchering.

--------------------------------------------------------------------------------
f4d0c78d20 | Raphael Langella | 2011-08-13 16:50:51 +0200

Show the skill raise hint in tutorial.

--------------------------------------------------------------------------------
5f96634b33 | Raphael Langella | 2011-08-13 16:40:17 +0200

Update the hint mode skill raise message.

--------------------------------------------------------------------------------
ea4ae1fcf6 | Raphael Langella | 2011-08-13 16:27:56 +0200

Document the possibility to detach memorisation and skill tabs (#3896).

--------------------------------------------------------------------------------
92505221fd | Raphael Langella | 2011-08-13 16:20:16 +0200

In tutorial mode, directly show the special help screen when pressing "?".
No need to press ?? to access it.

--------------------------------------------------------------------------------
e15ae4b939 | Raphael Langella | 2011-08-13 13:52:50 +0200

Fix a crash when a corpse being drained is raised (#4005).

--------------------------------------------------------------------------------
f30b6060b1 | Raphael Langella | 2011-08-13 09:31:11 +0200

Fix vampire feeding message for dreaking cold blooded corpses (#4388).

--------------------------------------------------------------------------------
bd588f05e0 | Raphael Langella | 2011-08-13 02:00:04 +0200

Don't move stairs on traps (#4110).

--------------------------------------------------------------------------------
b53b019b4c | Raphael Langella | 2011-08-12 20:41:58 +0200

Generalize the bound check for reaching.

--------------------------------------------------------------------------------
4aa764df8d | Adam Borowski | 2011-08-12 20:37:44 +0200

Use xz rather than bz2 for source tarballs.
They are significantly smaller, and a good deal of projects (Gnome, GNU,
Linux kernel, Red Hat, Debian in progress, ...) switched to them so there's
little chance someone would have problems uncompressing.

--------------------------------------------------------------------------------
0c651b2887 | Adam Borowski | 2011-08-12 20:37:44 +0200

Update the release date for 0.9

--------------------------------------------------------------------------------
9d0b45ccfc | Raphael Langella | 2011-08-12 20:13:07 +0200

Fix a crash with step from time and reaching monsters in the top left #4216.

--------------------------------------------------------------------------------
8ac47b0a60 | Raphael Langella | 2011-08-12 17:25:10 +0200

Fix extra % in XL progress after quaffing XP potion (#4386).

--------------------------------------------------------------------------------
93511114ac | Raphael Langella | 2011-08-12 17:23:07 +0200

Digging beams reveal secret doors (#4369).

--------------------------------------------------------------------------------
875129a2f9 | Raphael Langella | 2011-08-12 15:15:14 +0200

Add a new "show runes" command: "}"
See Mantis #4381. The "List weapons" command is moved to ^V. It's not great,
but it's the only available keybinding I could find along with ^M.

--------------------------------------------------------------------------------
604a43a1c2 | Raphael Langella | 2011-08-12 15:15:14 +0200

Formatting fix.

--------------------------------------------------------------------------------
3e97dfd541 | Raphael Langella | 2011-08-12 15:15:14 +0200

Don't show unknown for artefacts in shop (#4384).

--------------------------------------------------------------------------------
06e48cddf1 | Adam Borowski | 2011-08-12 10:42:55 +0200

Repair saves with bad saved mcache values.
It can result in wrong tiles or lost weapon/enchantment markers, but at
least there won't be a crash.

(Please revert in trunk in a while, we want this assertion to stay.)

--------------------------------------------------------------------------------
319ca4e023 | Adam Borowski | 2011-08-12 02:19:01 +0200

Upon invalidating mcache, remove all references to it as well.
Otherwise, it's possible a new monster will occupy a slot we have a dangling
reference to -- and then get decremented, triggering an assert.

Really, now that we have map_knowledge, we shouldn't save the mcache nor the
references at all, but that's 0.10 stuff.

--------------------------------------------------------------------------------
d647f48844 | Raphael Langella | 2011-08-11 21:27:40 +0200

Randomize the destination of hatches and shafts (#3200).
Hatch destination is randomly chosen on level generation and is saved in a
map marker, so it's always the same. We don't bother using a marker for
shafts since they are single use.
Items falling through shafts have no reason to end up on the same
coordinates since they can even end up on a different level, so their
destination is randomised too.

--------------------------------------------------------------------------------
4b4b590042 | Raphael Langella | 2011-08-11 13:42:59 +0200

Fix a crash in the skill menu with Ashenzari (#4325).

--------------------------------------------------------------------------------
6b05c8d931 | Raphael Langella | 2011-08-11 10:07:56 +0200

Apply a pass of full abyss morphing after copying current level features.

--------------------------------------------------------------------------------
057cd5643c | Raphael Langella | 2011-08-11 09:42:32 +0200

Fix a crash when banished with a shop in LOS.

--------------------------------------------------------------------------------
265c8432c8 | Raphael Langella | 2011-08-11 00:04:17 +0200

Display unseen monster tile for invisible monster disturbances (jpeg).
Mantis #4361. When switching between console and tiles, sometimes the
monster isn't displayed at the same place. Might be a timing issue like
jpeg said on Mantis. Still much better than nothing.

--------------------------------------------------------------------------------
700bdc0f3c | Adam Borowski | 2011-08-10 22:57:16 +0200

Mark all items from god wrath monsters as summoned.
(I'm not 100% sure I did not affect something else accidentally, there's no
separate flag for god wrath.  Please don't pick for 0.9, it's a very minor
issue anyway (mostly large rocks).)

--------------------------------------------------------------------------------
1430cb589b | Adam Borowski | 2011-08-10 22:12:33 +0200

Fix ? shortcuts not working when built from \r\n sources.
The latter can happen in specific git configurations when building on Windows.

--------------------------------------------------------------------------------
fb03cd1a7c | Adam Borowski | 2011-08-10 19:43:26 +0200

Never use version hash in exact releases.

--------------------------------------------------------------------------------
bfed2af4aa | Adam Borowski | 2011-08-10 19:24:25 +0200

Don't emulate usleep() on Windows, all supported toolchains do that already.
MSVC might not have it, but I can't test that.

--------------------------------------------------------------------------------
de1e0293ad | Adam Borowski | 2011-08-10 16:42:58 +0200

Fix build failure with gcc-trunk.

--------------------------------------------------------------------------------
05c86e4544 | Adam Borowski | 2011-08-10 16:42:58 +0200

Fix scrolls of identify offering to id several misc items.
I changed the code to opt-out rather than opt-in, as only decks and balls
remain as possibly unidentified.

--------------------------------------------------------------------------------
40501e87a2 | Adam Borowski | 2011-08-10 16:42:58 +0200

Fix a std::string.c_str() going out of scope crash.
There's no point in using a std::string here at all.

--------------------------------------------------------------------------------
224edcce58 | Adam Borowski | 2011-08-10 16:42:58 +0200

Fix a slight memory leak on restart_after_game.

--------------------------------------------------------------------------------
0b752a20f1 | Adam Borowski | 2011-08-10 16:42:58 +0200

Fix a crash under valgrind.

--------------------------------------------------------------------------------
2b364bafc2 | Raphael Langella | 2011-08-10 15:42:56 +0200

Remove obsolete Abyss wrap information from the in-game FAQ.

--------------------------------------------------------------------------------
8d44ffb7e3 | Raphael Langella | 2011-08-10 00:29:49 +0200

Clear level target on game restart (#4357).

--------------------------------------------------------------------------------
81de152930 | Raphael Langella | 2011-08-09 17:41:28 +0200

Fix abyss vault morphing.

--------------------------------------------------------------------------------
6857d324d3 | Raphael Langella | 2011-08-09 17:37:32 +0200

Mark unknown items in shops.

--------------------------------------------------------------------------------
3573bb3f88 | Raphael Langella | 2011-08-09 17:37:19 +0200

Fix feature mimics leaving trails in tile.

--------------------------------------------------------------------------------
db0537ff3d | Raphael Langella | 2011-08-09 17:37:07 +0200

Don't memorise from book on the floor while levitating.

--------------------------------------------------------------------------------
c03f5b10d9 | David Lawrence Ramsey | 2011-08-09 06:26:52 -0500

Make _print_god_final_ability_desc() use get_number_of_cols().
This is more flexible than hardcoding the maximum wrapping value, and
matches use elsewhere.

--------------------------------------------------------------------------------
09eeebf26b | Adam Borowski | 2011-08-09 13:04:35 +0200

Mention ZotDef.

--------------------------------------------------------------------------------
01fd395b4f | Adam Borowski | 2011-08-09 13:03:44 +0200

Nicer indentation of the changelog.

--------------------------------------------------------------------------------
3ba3899a9a | Adam Borowski | 2011-08-09 12:56:27 +0200

Fix Ignacio's spelling.

--------------------------------------------------------------------------------
1c9f3bc580 | Adam Borowski | 2011-08-09 12:56:27 +0200

Fix possible data loss on OS X.
I'm not sure if the things I read are still true -- Sqlite folks analyzed
fsync() problems in OSX 10.3, they might have been fixed since; but it never
hurts to try the other way after the fcntl failed.

--------------------------------------------------------------------------------
a92024729b | Chris Campbell | 2011-08-09 04:17:10 +0100

Fix a speech typo

--------------------------------------------------------------------------------
938afc2ac0 | Adam Borowski | 2011-08-09 03:35:33 +0200

Require explicit enums for Lua colours.
In theory, we could allow defining them with a floating name, marshalling
that by string and so on, but that'd be a large pile of useless work.

--------------------------------------------------------------------------------
c4bde160c8 | Adam Borowski | 2011-08-09 02:52:54 +0200

Assert when trying to add too many Lua colours.

--------------------------------------------------------------------------------
b81dd7701a | Adam Borowski | 2011-08-09 02:22:14 +0200

chilie's tile for wielded anki.

--------------------------------------------------------------------------------
7178c8e1cf | Adam Borowski | 2011-08-09 02:02:15 +0200

Rename misleading enum for the Malign Gateway.

--------------------------------------------------------------------------------
67fe7a3f63 | Adam Borowski | 2011-08-09 01:58:43 +0200

Don't claim Malign Gateway portals are passable.
This only causes problems and crashes.

--------------------------------------------------------------------------------
dd5a99dbcb | Adam Borowski | 2011-08-09 01:12:14 +0200

Simplify wands of paralysis, fix interaction with water.
(really, replace the incomplete fix with one I couldn't push from a bus
in Belgrade)

--------------------------------------------------------------------------------
43598c9e44 | Adam Borowski | 2011-08-09 00:35:24 +0200

Add an octopode to the species showcase vault.

--------------------------------------------------------------------------------
1e740ca8b0 | Adam Borowski | 2011-08-09 00:34:47 +0200

Let monster octopodes and their corpses use the player tile.
We forgot to mark them no_poly_to, so they can appear in actual games.
Not sure if that's ok, but I'm leaving that for now.

--------------------------------------------------------------------------------
b1d09e1588 | Adam Borowski | 2011-08-09 00:33:12 +0200

Don't show misc items other than decks and crystal balls as unidentified.

--------------------------------------------------------------------------------
861a3d1ec4 | Adam Borowski | 2011-08-09 00:15:24 +0200

Never generate empty ebony caskets.
It's no different from an empty wand.

--------------------------------------------------------------------------------
7f6c4120ef | elliptic | 2011-08-08 17:23:11 -0400

Make the reST-to-txt converter do something about notes.
I don't know how ".. note::" in reST should ideally be rendered in plaintext,
but at least now the script replaces it by something.

--------------------------------------------------------------------------------
931588bfb6 | Chris Campbell | 2011-08-08 21:24:11 +0100

Add some tiles stuff to the changelog
If anyone can expand upon the tiles changes in 0.9 that'd be great,
this will probably do as a short summary otherwise (although it's only
fairly recent stuff that I can remember).

--------------------------------------------------------------------------------
8cf1c828db | Chris Campbell | 2011-08-08 17:44:33 +0100

Merge commit 'refs/merge-requests/1' of git://gitorious.org/crawl/crawl into 
merge-requests/1
Conflicts:
	crawl-ref/source/dat/des/tutorial/tutorial_lesson3.des
	crawl-ref/source/dat/des/tutorial/tutorial_lesson4.des

--------------------------------------------------------------------------------
f4172707b1 | Chris Campbell | 2011-08-08 17:42:31 +0100

Make tutorial pads lightblue so they're more visible but still the same colour 
in tiles

--------------------------------------------------------------------------------
4d0ca4b5ab | Florian Diebold | 2011-08-08 18:35:26 +0200

Don't write the tiles field if it is 0.

--------------------------------------------------------------------------------
75d13063b8 | Florian Diebold | 2011-08-08 18:15:57 +0200

Add a tiles field to scorefile entries.

--------------------------------------------------------------------------------
1ccba4baea | elliptic | 2011-08-08 11:48:13 -0400

Manual updates from the wiki.

--------------------------------------------------------------------------------
bea4da2551 | Chris Campbell | 2011-08-08 10:09:39 +0100

Don't pretend Tomes of Destruction are unidentified

--------------------------------------------------------------------------------
4b09d4e5db | David Lawrence Ramsey | 2011-08-07 23:55:05 -0500

Properly capitalize starting @foe_god@ in monster speech.

--------------------------------------------------------------------------------
e3eb8cb355 | David Lawrence Ramsey | 2011-08-07 23:52:49 -0500

Add still more monster speech fixes: unneeded blank lines and unused "VISUAL:".

--------------------------------------------------------------------------------
7597426827 | David Lawrence Ramsey | 2011-08-07 23:40:18 -0500

Add more monster speech fixes: capitalization and unneeded blank lines.

--------------------------------------------------------------------------------
09a3e4651f | David Lawrence Ramsey | 2011-08-07 22:43:14 -0500

Add spacing fix.

--------------------------------------------------------------------------------
862ff19580 | David Lawrence Ramsey | 2011-08-07 22:38:41 -0500

Fix Mantis 4367.
The recent Trog ability description change ("magic resistance" ->
"protection from hostile enchantments") made the description too long
for an 80-column screen, and _print_god_final_ability_desc() assumed
that no message would be that long.

The root problem is now fixed: overly long lines will now just wrap onto
the next line and be immediately followed by the cost without any
spacing in between.  This looks ugly, and should be improved eventually,
but at least it no longer crashes.

Also, the overly long Trog ability descriptions have been shortened to
fit in an 80-column screen again.

--------------------------------------------------------------------------------
9eac883967 | David Lawrence Ramsey | 2011-08-07 19:33:13 -0500

Consolidate your_hand() into player::hand_name().
This avoids two interfaces for the same function, and is consistent with
player::arm_name() and the like.

Also, fix some inconsistencies with player transformations and
player::foot_name().

--------------------------------------------------------------------------------
9210185d7e | David Lawrence Ramsey | 2011-08-07 18:34:53 -0500

Make the wielding message for pain weapons properly use player::arm_name().

--------------------------------------------------------------------------------
175364b042 | David Lawrence Ramsey | 2011-08-07 18:31:38 -0500

Resync player::arm_name() and monster::arm_name() as much as possible.

--------------------------------------------------------------------------------
e1ff96083b | David Lawrence Ramsey | 2011-08-07 18:09:04 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
31107b8280 | David Lawrence Ramsey | 2011-08-07 18:09:04 -0500

Apply jpeg's patch in Mantis 4365 to differentiate now and already empty-handed.

--------------------------------------------------------------------------------
fbdabe32a4 | David Lawrence Ramsey | 2011-08-07 18:09:04 -0500

Use your_hand() properly in one more place, and fix missing space in "hindleg".
Also, fix indentation and remove unneeded brackets.

--------------------------------------------------------------------------------
5eef818128 | David Lawrence Ramsey | 2011-08-07 18:09:04 -0500

Apply jpeg's patch in Mantis 4365 to handle tentacles for spiderform players.

--------------------------------------------------------------------------------
525711e1e6 | elliptic | 2011-08-07 18:47:58 -0400

Make catoblepae a little less rare in Lair.

--------------------------------------------------------------------------------
abfd388ab3 | David Lawrence Ramsey | 2011-08-07 17:32:02 -0500

Attempt to fix Mantis 4164.
Mutations given by gods are supposed to override conflicting mutations,
but they shouldn't if the conflicting mutations are innate.  At best, if
you have extra levels of an innate mutation, they may be canceled out.

--------------------------------------------------------------------------------
a669b8ac41 | David Lawrence Ramsey | 2011-08-07 17:08:42 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
dcb959c9c0 | Chris Campbell | 2011-08-07 10:47:19 +0100

Don't mark a Beogh trap vault as an overflow altar

--------------------------------------------------------------------------------
4e505a77ba | Chris Campbell | 2011-08-07 10:47:18 +0100

Fix a vault typo

--------------------------------------------------------------------------------
e5adfc5dcc | Chris Campbell | 2011-08-07 10:47:18 +0100

More changelog updates

--------------------------------------------------------------------------------
b64f2d5ad4 | David Lawrence Ramsey | 2011-08-05 22:59:46 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
df848dbaf5 | Chris Campbell | 2011-08-06 01:20:53 +0100

Update the changelog a bit
Still missing Ashenzari details, tiles and technical stuff, probably
various things that I missed.

--------------------------------------------------------------------------------
325cc651a4 | Chris Campbell | 2011-08-05 23:37:05 +0100

Reword magic resistance -> protection from hostile enchantments in a couple of 
places

--------------------------------------------------------------------------------
09fed2f04c | Chris Campbell | 2011-08-05 23:37:05 +0100

Don't recommend HOCj now the book is ice/air

--------------------------------------------------------------------------------
97d9dfc16f | Chris Campbell | 2011-08-05 23:37:04 +0100

More tutorial fixes for lessons 3 and 4

--------------------------------------------------------------------------------
4b47db3a17 | David Lawrence Ramsey | 2011-08-05 15:10:33 -0500

Tweak the wraith wave message for ZotDef: not all player species have hair.

--------------------------------------------------------------------------------
4bbafb5968 | David Lawrence Ramsey | 2011-08-05 11:28:25 -0500

Fix Mantis 4358 (regression caused by 8fe5221).
Display base type descriptions properly again for items that don't have
dumped descriptions and aren't unrandarts without descriptions.  The
fallthrough case for them had inverted logic.

--------------------------------------------------------------------------------
041312e7f1 | David Lawrence Ramsey | 2011-08-05 00:03:45 -0500

Add more your_hand()-related fixes.
Trying to wear a shield with a two-handed weapon now uses your_hand()
instead of hardcoding "You'd need three hands...", and since level-3
tentacles replace arms, weapons of pain now produce "A searing pain
shoots up your tentacle!" in that case.

--------------------------------------------------------------------------------
76edca9b2c | David Lawrence Ramsey | 2011-08-04 22:24:03 -0500

Don't let Xom try to brand OBJ_STAVES-type staves with chaos.
They don't have brands in the same way, so the attempt will fail.

--------------------------------------------------------------------------------
ddcd8a6fbe | Chris Campbell | 2011-08-04 23:42:08 +0100

Make Xom transformations uncancellable (#171)

--------------------------------------------------------------------------------
795523945f | Chris Campbell | 2011-08-04 23:39:45 +0100

Don't cancel Sage or Bargain with antimagic, do cancel some other missed 
durations
Confusing touch, sure blade, corona, teleport, petrifying, liquefying,
and darkness weren't previously being cancelled.

--------------------------------------------------------------------------------
d321c7f112 | Chris Campbell | 2011-08-04 08:42:26 +0100

Fix recite checking for evil gods twice (#4356)

--------------------------------------------------------------------------------
5721e23301 | Chris Campbell | 2011-08-04 06:56:05 +0100

Tidy up the tutorial fixes a bit

--------------------------------------------------------------------------------
48ec7c93a5 | Wensley | 2011-08-04 06:56:05 +0100

Increase hill orc invo apt to +2

--------------------------------------------------------------------------------
ada3990f11 | Jude Brown | 2011-08-04 15:46:13 +1000

Hopefully resolve #4353: it.subtype is now a function.
This may burn other instances of calls to subtype, where it was
previously an attribute of the item table, rather than a function of the
item table.

--------------------------------------------------------------------------------
3e011c9f1a | Chris Campbell | 2011-08-03 23:48:52 +0100

Various tutorial fixes for 0.9 (#4351)

--------------------------------------------------------------------------------
b628def613 | Chris Campbell | 2011-08-03 22:33:18 +0100

Move the grate trap vault a little deeper so it can't block off the Temple

--------------------------------------------------------------------------------
201bd7c57b | Chris Campbell | 2011-08-03 21:04:19 +0100

Don't corrode melded weapons

--------------------------------------------------------------------------------
f98a6c8a37 | David Lawrence Ramsey | 2011-08-03 07:04:43 -0500

Fix missing space in @possessive_God@.

--------------------------------------------------------------------------------
0494044f98 | Jude Brown | 2011-08-03 20:33:07 +1000

Fix calls to mprf without substitutions.

--------------------------------------------------------------------------------
4cc71b6cb0 | Ryan Riegel | 2011-08-03 20:32:41 +1000

Several user-callable Lua functions. (#3967)
Added several Lua-callable functions for enhanced reasoning about items,
monsters, and player state.

Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
380cb09ff0 | Jude Brown | 2011-08-03 19:35:58 +1000

Fix a typo (Sunfall).

--------------------------------------------------------------------------------
442af132e9 | Chris Campbell | 2011-08-03 03:14:25 +0100

Fix missing details from the descriptions of some jewellery unrands
Their base type descriptions weren't being displayed due to being
overwritten by the DESC entries (which were just the same as their
unidentified appearances).

--------------------------------------------------------------------------------
734e20c3f0 | elliptic | 2011-08-02 20:22:42 -0400

Fix a typo.

--------------------------------------------------------------------------------
5c0df765b8 | Chris Campbell | 2011-08-02 20:32:09 +0100

Attempt to improve colouring for good gods you've abandoned on ^O screen
Good gods that you've abandoned but not for evil/chaos will display in
magenta instead of red, to indicate that they're not actively punishing
you at the moment.

--------------------------------------------------------------------------------
b767500407 | Chris Campbell | 2011-08-02 20:32:08 +0100

Add explore_wall_bias to the options guide, default it to 0 for now

--------------------------------------------------------------------------------
0a498834e9 | Ryan Riegel | 2011-08-02 20:32:08 +0100

Adjust autoexploration to favor the discovery of room perimeters and especially 
corners. Behavior may be adjusted in init.txt by setting explore_wall_bias = N, 
which more heavily favors perimeters for larger N and not at all for N = 0.

--------------------------------------------------------------------------------
d09c4aa678 | elliptic | 2011-08-02 15:29:00 -0400

Add option to make new characters start with manual skill training.

--------------------------------------------------------------------------------
eeb42398b6 | Chris Campbell | 2011-08-01 19:14:25 +0100

Use fake_abjuration for Simulacra
Like Death Channel spectral things and snakes from Sticks to Snakes,
they're temporary but not actually summoned and shouldn't be abjurable.

--------------------------------------------------------------------------------
34d39cef2d | David Lawrence Ramsey | 2011-08-01 09:58:14 -0500

Add formatting fix.

--------------------------------------------------------------------------------
584890d361 | David Lawrence Ramsey | 2011-08-01 09:56:49 -0500

Use your_hand() properly in a few more places.

--------------------------------------------------------------------------------
7ee383604e | David Lawrence Ramsey | 2011-08-01 09:51:47 -0500

Properly give sky beasts their own genus; they're not ice beasts.
Making a generic "beast" monster for the genus seems like overkill right
now, seeing as there are only two monsters in the category.

--------------------------------------------------------------------------------
6327c3ebd8 | David Lawrence Ramsey | 2011-08-01 09:45:11 -0500

Fix your_hand() to account for claws/tentacles, transforms, and the like.
The player hand type for ice beasts displayed in the "Wp:" line is "Ice
fists", and players in that form can't wield weapons, so describe its
hands as paws (a la felids, even though they're not really the same type
of paws) for now.

--------------------------------------------------------------------------------
40ca1dbcf8 | David Lawrence Ramsey | 2011-08-01 09:29:05 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f614603aad | David Lawrence Ramsey | 2011-08-01 08:57:39 -0500

Add more quote fixes.

--------------------------------------------------------------------------------
8fe5221d87 | David Lawrence Ramsey | 2011-08-01 08:31:19 -0500

For unrandarts with no description, display the item base type description.
This is so e.g. the armour of the Dragon King gets the description of a
gold dragon armour.

--------------------------------------------------------------------------------
908a0eb062 | David Lawrence Ramsey | 2011-08-01 08:01:41 -0500

Simplify.

--------------------------------------------------------------------------------
aa076e8864 | Raphael Langella | 2011-08-01 14:34:15 +0200

Add rP, rF and rC to the description of randart GDA (#3582).

--------------------------------------------------------------------------------
2e016f452b | Raphael Langella | 2011-08-01 13:58:24 +0200

Don't gain Sif piety when simulating skill training (#4344).

--------------------------------------------------------------------------------
22d8919423 | David Lawrence Ramsey | 2011-08-01 06:24:53 -0500

Add another speech fix.

--------------------------------------------------------------------------------
fe49ed2498 | Florian Diebold | 2011-08-01 10:13:10 +0200

Show halo radius in tiles.
packed_cell.is_haloed (which previously was only set for haloed
monsters) becomes packed_cell.halo, with either HALO_NONE, HALO_RANGE
or HALO_MONSTER as value.
There is a combined tile for silence + halo range, since this may
often happen with Mennas, and thus should look discernable. The tiles
may need work, though.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
c5ff8d26ec | Raphael Langella | 2011-08-01 10:11:42 +0200

Standardize the passwall terrain safety check (#4329).
Will passwall without warning if other side is safe, and will prompt for
confirmation if form or levitation is expiring.

--------------------------------------------------------------------------------
04f6902f02 | Raphael Langella | 2011-08-01 09:26:05 +0200

New Octopode tile (Porkshop).

--------------------------------------------------------------------------------
26c6a2eca8 | Chris Campbell | 2011-08-01 07:22:40 +0100

Fix some monster unaffected messages missing a full stop

--------------------------------------------------------------------------------
508eed4506 | Chris Campbell | 2011-08-01 07:22:39 +0100

Don't show unfinished monsters with mislead

--------------------------------------------------------------------------------
c840bc0087 | David Lawrence Ramsey | 2011-07-31 23:55:34 -0500

Add a few more @pronoun@-based speech fixes.

--------------------------------------------------------------------------------
2c28e58247 | Chris Campbell | 2011-08-01 04:50:00 +0100

Speech fixes continued

--------------------------------------------------------------------------------
5a472fa803 | Chris Campbell | 2011-08-01 04:28:30 +0100

Fix a missed Menkaure line

--------------------------------------------------------------------------------
86a9c56437 | David Lawrence Ramsey | 2011-07-31 22:26:14 -0500

Use a canned message where applicable.

--------------------------------------------------------------------------------
47dbfe7af6 | Chris Campbell | 2011-08-01 04:08:17 +0100

Fix some more speech issues

--------------------------------------------------------------------------------
9bde88fdff | Chris Campbell | 2011-08-01 04:08:17 +0100

Increase Poisonous Cloud to level 6
It's actually comparable with Freezing Cloud in strength, since it
stacks poison and continues to deal damage to monsters once they leave
the cloud. At level 5, it's very easy to cast without even investing
any any Air or Poison magic.

--------------------------------------------------------------------------------
d67141d1b7 | Chris Campbell | 2011-08-01 04:08:16 +0100

Don't let needles work on the nonliving or undead

--------------------------------------------------------------------------------
ef89fef365 | Chris Campbell | 2011-08-01 04:08:16 +0100

Remove Maxwell's Silver Hammer
Like Tukima's Vorpal Blade which has long been gone, it has little to no
practical use.

--------------------------------------------------------------------------------
098666c47a | Chris Campbell | 2011-08-01 02:39:32 +0100

Fix a bubble in an entry vault

--------------------------------------------------------------------------------
73d6708678 | David Lawrence Ramsey | 2011-07-31 20:26:17 -0500

Remove trailing whitespace.

--------------------------------------------------------------------------------
8e0e7df26a | David Lawrence Ramsey | 2011-07-31 20:22:11 -0500

Add a few @possessive@-related fixes to the new speech lines.
"Its" was missed in a few places, and @possessive@ was erroneously used
instead of "its" in one place (where it referred to what a monster made
instead of the monster itself).

--------------------------------------------------------------------------------
18b4dcd642 | Florian Diebold | 2011-08-01 02:53:08 +0200

Fix #4288: Minimap not reactivated properly after Abyss (in Webtiles).

--------------------------------------------------------------------------------
6a7fc174d4 | David Ploog | 2011-08-01 02:43:33 +0200

More speech lines by Syraine; #4293.

--------------------------------------------------------------------------------
d58e930db6 | Raphael Langella | 2011-08-01 00:59:54 +0200

Silently return instead of asserting if seen_context is invalid.
This reverts commit fd9fd0cfe52a781de2bf5fdbd260398072bfca2c.

--------------------------------------------------------------------------------
3f9880a8b1 | Raphael Langella | 2011-08-01 00:58:04 +0200

Don't learn spellcasting with scrolls in the magic tutorial.
One level of spellcasting is given right at the start instead.

--------------------------------------------------------------------------------
b702f4e433 | Raphael Langella | 2011-08-01 00:42:03 +0200

Update tutorial and hint mode skill screen help.
Disable access to the full help since it explains advanced commands
which are not available.

--------------------------------------------------------------------------------
b91722a3d1 | Raphael Langella | 2011-08-01 00:12:13 +0200

Update the skill menu help.

--------------------------------------------------------------------------------
f6b568db1d | Raphael Langella | 2011-07-31 23:54:50 +0200

Update the changelog skill section.

--------------------------------------------------------------------------------
a82998ac1c | Raphael Langella | 2011-07-31 23:29:42 +0200

Fix wand of paralysis not identified when used (#4306).
This fix isn't complete. The "suddenly stops moving" message should be
given only when the target is motile (moving body parts).
Sleeping counts as immotile, but the target is already woken up when the
immotile check is done. Paralysing a petrified monster doesn't identify
the wand but the monster status change. Fixing that means merging all
3 status into one (immobile for example).

--------------------------------------------------------------------------------
33d8e8d76d | Chris Campbell | 2011-07-31 20:22:25 +0100

Disable feature mimic generation
They still have a significant number of bugs, and need to be disabled
for 0.9's release. There's a plan to rework them on the wiki, after
which they could be enabled again: 
dcss:brainstorm:monster:existing_monsters#mimic

--------------------------------------------------------------------------------
baeb6a71f5 | David Lawrence Ramsey | 2011-07-31 13:47:43 -0500

Make orc high priests/deep elf high priests actually use high priest speech.
Draconian zealots are an odd case: they have the deep elf high priest
spell list, but they're not described as high priests as such, so leave
them as-is for now.

--------------------------------------------------------------------------------
c1f3718324 | David Lawrence Ramsey | 2011-07-31 13:45:27 -0500

Add "@my_God@" and "@My_God@" to the monster speech replacements for gods.
Also, convert monster speech to use it properly.

Note that this only really makes a difference for monsters with
GOD_NAMELESS, when it gets replaced with "my God" or "My God",
respectively, instead of a god's name.

Ideally, Crawl should have a first-person possessive tense to handle
this.

--------------------------------------------------------------------------------
b19b4a1b00 | David Lawrence Ramsey | 2011-07-31 11:54:21 -0500

Add one more proper use of @reflexive@ in monster speech.

--------------------------------------------------------------------------------
0ceb9d3006 | Chris Campbell | 2011-07-31 17:17:39 +0100

Remove giant toads
They don't have anything interesting to distinguish them from giant
frogs, and blink frogs/spiny frogs are good actual threats already.

--------------------------------------------------------------------------------
0ce5db38d1 | Chris Campbell | 2011-07-31 17:17:38 +0100

Don't let undead monsters flee
This only actually changes behaviour for a small number of monsters:
flaming corpses, flying skulls, bone dragons, death oozes,
spectral things and vampire mosquitoes.

--------------------------------------------------------------------------------
c401005b7a | David Ploog | 2011-07-31 11:37:01 +0200

Mention new armour slot search keywords in Ctrl-F help.

--------------------------------------------------------------------------------
6da623d921 | David Lawrence Ramsey | 2011-07-30 23:11:56 -0500

Tweak wording.

--------------------------------------------------------------------------------
b7d390c972 | David Lawrence Ramsey | 2011-07-30 22:52:51 -0500

Remove unnecessary spacing.

--------------------------------------------------------------------------------
173e5d1870 | Chris Campbell | 2011-07-31 03:05:17 +0100

Reduce the MP restored by balls of energy, tone down failure effects

--------------------------------------------------------------------------------
a8ddd34096 | Chris Campbell | 2011-07-31 03:02:33 +0100

Adjust XP display on E to show percentages instead of numbers

--------------------------------------------------------------------------------
674e5a06e6 | David Lawrence Ramsey | 2011-07-30 20:55:43 -0500

Fix the unidentified description of the armour of the Dragon King.
It's now "shiny gold dragon armour" instead of just "shiny dragon
armour".

--------------------------------------------------------------------------------
df90d600c8 | Chris Campbell | 2011-07-29 22:19:34 +0100

Don't duplicate the wielded weapon when miscasting Tukima's Dance (#4337)

--------------------------------------------------------------------------------
98982a9246 | Chris Campbell | 2011-07-29 16:20:22 +0100

Reduce Tornado damage some more
Testing and lots of player feedback indicates it's still far too
powerful all game long.

--------------------------------------------------------------------------------
9e73d4c68d | Chris Campbell | 2011-07-28 17:25:04 +0100

Adjust EWIII description (#4333)

--------------------------------------------------------------------------------
b8c4d0407f | Chris Campbell | 2011-07-28 16:25:07 +0100

Allow overriding known mimic glyphs
Colours still can't be overridden - except for door and shop mimics
whose colours can be overridden even when they're unknown (#3637).

--------------------------------------------------------------------------------
5abbadaecd | Raphael Langella | 2011-07-28 15:40:49 +0200

Fix misaligned hint description for features and monsters (#4328).

--------------------------------------------------------------------------------
cf1a0956ba | Raphael Langella | 2011-07-28 15:13:16 +0200

Fix animate skeleton when both skeleton and corpse are present (#4331).

--------------------------------------------------------------------------------
8261564c89 | Raphael Langella | 2011-07-27 11:13:32 +0200

Allow disabling monster generation with &R.
It now accepts a string starting with 0 and set spawn_random_ret to 0, which
disable monster generation.
Same is done for the abyss speed command. For now a speed of 0 is the same
as a speed of 1, but in the future the scale will probably be changed to
range from 0 to 100 with higher values meaning faster morphing.

--------------------------------------------------------------------------------
825f2e5914 | Raphael Langella | 2011-07-27 11:06:34 +0200

Add a wizard command (^S) to change Abyss speed.

--------------------------------------------------------------------------------
84410e7c20 | Raphael Langella | 2011-07-27 10:53:20 +0200

Smoother abyss morphing.
Also, some clean up and simplification, especially with the handling of
vaults. No longer protects player dropped items from being eaten by the
abyss. Vaults are more resilient to morphing and don't decay until the
player is close by to avoid having them all messed up before the player
has a chance to see them.
The morphing speed is a bit fast for now. It will start slower when we
make it variable.

--------------------------------------------------------------------------------
f46a7e61b7 | Raphael Langella | 2011-07-27 01:27:06 +0200

Don't abort summoning spells if monster creation fails (#4324).

--------------------------------------------------------------------------------
b52ce9b1d2 | Raphael Langella | 2011-07-27 00:53:02 +0200

Fix wield display not update when top card is identified (#4320).

--------------------------------------------------------------------------------
9e6f211607 | Raphael Langella | 2011-07-27 00:53:02 +0200

Fix action prompt line not display when right-clicking an item.

--------------------------------------------------------------------------------
0f3eed1dfd | Hurcan Solter | 2011-07-26 20:38:01 +0200

enum size error in map knowledge for MSVC
enum members of map_cell assumes the enum value fits in 8bits
which is not the case for dungeon_feature_type in MSVC.

--------------------------------------------------------------------------------
a1b20aa0dd | Hurcan Solter | 2011-07-26 20:37:12 +0200

define __STDC_FORMAT_MACROS for MSVC

--------------------------------------------------------------------------------
b3ad5d902b | Brendan Hickey | 2011-07-26 17:17:16 +0200

Added make support for OSX Lion

--------------------------------------------------------------------------------
acbd8eee9a | David Lawrence Ramsey | 2011-07-26 09:22:13 -0500

Fix wording.

--------------------------------------------------------------------------------
35a13a9b90 | Chris Campbell | 2011-07-25 19:23:08 +0100

Boost Flame Tongue's range by 1
At 2-5 it's still very low-ranged but should compare a bit more
favourably to the other level 1 spells.

--------------------------------------------------------------------------------
a36a4c573e | Chris Campbell | 2011-07-25 19:23:07 +0100

Don't spam "convulses" messages when tormenting plants

--------------------------------------------------------------------------------
8834fc4499 | David Lawrence Ramsey | 2011-07-25 10:52:53 -0500

Add M_NO_POLY_TO to lightning spires, since they're ZotDef-only.
Since they're nonliving, they can (currently) never be polymorphed
anyway, but this flag is used elsewhere to mark non-polymorphable
monsters, so do this just in case.

--------------------------------------------------------------------------------
0a7dbb003f | David Lawrence Ramsey | 2011-07-25 10:25:24 -0500

Add a golem monster to be used as the genus for golems.
Also, use the clay golem tile for detected golems.

Both of these changes are modeled after monster giants/hill giants.

--------------------------------------------------------------------------------
596c0e7e79 | David Lawrence Ramsey | 2011-07-24 23:45:29 -0500

Mantis 4318: Fix quote typo: Lord Dunsanay -> Lord Dunsany.

--------------------------------------------------------------------------------
1b46b1228f | Wensley | 2011-07-25 01:33:12 +0200

give catoblepas breath 2d6 damage on-hit

--------------------------------------------------------------------------------
c0b2f151fe | Raphael Langella | 2011-07-24 22:23:34 +0200

Fix misformatted message history footer (#4317).

--------------------------------------------------------------------------------
d716fcc3bb | Raphael Langella | 2011-07-24 22:19:20 +0200

Fix screen not properly redrawn after potion of experience (#4316).

--------------------------------------------------------------------------------
063f2cc9a3 | Chris Campbell | 2011-07-24 20:51:26 +0100

Restore Symbol of Torment to poor, deprived pan lords
Allowing player ghosts to cast Agony (instead of upgrading it to
Torment) had the unfortunate consequence of preventing pan lords from
getting their rightly deserved Torment! Oops.

--------------------------------------------------------------------------------
f8e660edd9 | Chris Campbell | 2011-07-24 20:42:12 +0100

Don't place Xom vaults with chaos weapons on D:1

--------------------------------------------------------------------------------
59dab2a992 | Chris Campbell | 2011-07-24 19:54:24 +0100

Fix some more hints mode messages

--------------------------------------------------------------------------------
0efe31abbb | Gustaf Hallberg | 2011-07-24 18:40:17 +0100

Fixed tutorial and hints for implicit butchering and removed knives from item 
descriptions.

--------------------------------------------------------------------------------
512f424306 | Chris Campbell | 2011-07-24 18:38:27 +0100

Give random pan lord vaults a chance of containing an exit
It's currently trivially easy to exit pandemonium just by abyssing
yourself, anyway. However, even once that's fixed, it doesn't need
to be quite such a long process to leave pan - especially for players
who can easily kill any and all pandemonium lords that they run into.
If/when pan is made to get harder over time, that will help provide a
more appropriate challenge to escaping.

--------------------------------------------------------------------------------
3492a2778a | Raphael Langella | 2011-07-24 17:47:20 +0200

Don't show mode and focus switches in tutorial and hints modes.

--------------------------------------------------------------------------------
119e82d221 | Raphael Langella | 2011-07-24 17:30:08 +0200

Don't show skill level up hint at game start.

--------------------------------------------------------------------------------
9b05da59b7 | Raphael Langella | 2011-07-24 15:47:21 +0200

Clear map knowledge when abyss shifts.

--------------------------------------------------------------------------------
9a8b7638d5 | Raphael Langella | 2011-07-24 15:28:09 +0200

Fix the autofight tile not being displayed.

--------------------------------------------------------------------------------
fd9fd0cfe5 | Raphael Langella | 2011-07-24 14:48:13 +0200

Revert "Silently return instead of asserting if seen_context is invalid."
This reverts commit 3b1eaa15a920ac876722b46438d6a169ff2fcb13.

I believe the crashes may have been caused by monster spawning in LOS. If so
it should be fixed by eb8e7a6 and this is no longer necessary.

--------------------------------------------------------------------------------
919a893081 | Raphael Langella | 2011-07-24 14:45:56 +0200

Don't show the actions prompt from the resist screen (#3986).

--------------------------------------------------------------------------------
eb8e7a6ec8 | Raphael Langella | 2011-07-24 14:10:46 +0200

Fix the summon check for skipping announce message.
Now monsters created in wizmode with &M are announced. It should also fix
some weird issues with monsters spawned in LOS.

--------------------------------------------------------------------------------
1d0f18237d | Raphael Langella | 2011-07-24 14:10:46 +0200

Fix a crash with the Orb card (blmarket #4313).

--------------------------------------------------------------------------------
7706ab8ab6 | Raphael Langella | 2011-07-24 14:10:45 +0200

Fix incorrect wrapping in the firing prompt (#4078).
Line wrap is done later so this one is redundant and it doesn't handle tags.

--------------------------------------------------------------------------------
287ae3af84 | Raphael Langella | 2011-07-24 14:10:45 +0200

Fix animate skeleton.
Bug introduced by 17dfbce6.

--------------------------------------------------------------------------------
ba154dc49e | Chris Campbell | 2011-07-23 22:25:44 +0100

Don't allow polymorphing holy monsters
There aren't enough types of holy monsters for it to make much sense at
the moment (and even the finished new holies are potentially buggy),
and I can't think of any possible justification for mutagenic fog
somehow making TSO decide to give an Angel access to smiting instead of
healing.

--------------------------------------------------------------------------------
9de92e3aa1 | Chris Campbell | 2011-07-23 22:09:49 +0100

Don't polymorph into unfinished monsters

--------------------------------------------------------------------------------
ea4e9e8a18 | Chris Campbell | 2011-07-23 19:52:37 +0100

Fix miscasts of Regen acting like Trog's Hand (rwbarton)

--------------------------------------------------------------------------------
dd8fcbda92 | Chris Campbell | 2011-07-23 19:39:50 +0100

Fix typo in an Ash altar, reduce weight slightly

--------------------------------------------------------------------------------
359f501a77 | Chris Campbell | 2011-07-23 19:19:18 +0100

Convert items in the xom_gifts_altar vault to mimics
It turns out there are a few ways to get the items (for example,
corruption can destroy the teleport traps and spawn monsters inside the
vault, swap cards can then get you inside to grab the items). The mimics
could be killed with smiting, but that's not as much of a problem.

--------------------------------------------------------------------------------
06019c7809 | Raphael Langella | 2011-07-22 22:12:21 +0200

Fix some inconsistent spell casting checks (#4308).

--------------------------------------------------------------------------------
8c8ee438ae | Raphael Langella | 2011-07-22 20:55:41 +0200

Allow choosing skills to train after using a card/potion of experience.
The skill menu is shown and the player can toggle skills and use focus. The
level reached by each skill is showned.
This is to prevent players from having to adjust skills before quaff iding or
drawing from wonders in case of experience.

--------------------------------------------------------------------------------
106bcb2be9 | Raphael Langella | 2011-07-22 20:55:41 +0200

Save skill menu states as normal members of Player instead of using props.
It doesn't make sense to use props since it's not temporary at all. Also
simplify a bit the code and future proof the handling of invalid states.

--------------------------------------------------------------------------------
af5b8528b9 | Raphael Langella | 2011-07-22 20:55:41 +0200

Fix incorrect use of the SKMF_CHANGED flag.
The level switch now appropriately shows changed/enhanced/reduced depending
on what bonus/malus is currently applied.

--------------------------------------------------------------------------------
c4c50e59a8 | David Lawrence Ramsey | 2011-07-22 12:07:22 -0500

Fix Mantis 4309: Properly use unarmed claw attack messages again.
The addition of tentacle attack verbs should have been in an else
clause, so as not to override the claws attack verbs above it.

Also add a related fix: add missing attack verbs for tentacled players
in statue and lich form, to match the ones for unarmed tentacle attacks.

--------------------------------------------------------------------------------
db7260f09e | Chris Campbell | 2011-07-22 17:55:54 +0100

Don't affect same-aligned monsters with Cause Fear, reduce message spam
This is most noticeable with giant orange brains, which cast shadow
creatures and then promptly use cause fear to terrify their own summons.
Player- and monster-cast cause fear now won't affect allies, and
monster-cast cause fear only displays resists/unaffected messages on
those it could actually have affected.

--------------------------------------------------------------------------------
f07043cb65 | Florian Diebold | 2011-07-22 17:57:31 +0200

Don't show the minimap to spectators joining in non-mappable areas.

--------------------------------------------------------------------------------
a22dd4b795 | Wensley | 2011-07-22 02:07:19 +0200

less breath spam, more sensible coloration of calcifying dust warning messages

--------------------------------------------------------------------------------
b5c10bd4b4 | Brendan Hickey | 2011-07-22 00:03:37 +0200

Allow players to exit the menu when known skills are maximally trained

--------------------------------------------------------------------------------
8ed807ec5d | Raphael Langella | 2011-07-22 00:03:37 +0200

Use post increment to avoid mingw crash (#4210).

--------------------------------------------------------------------------------
b0dfd268d4 | David Lawrence Ramsey | 2011-07-21 16:44:44 -0500

Reword the Yred injury mirror message, a la the Shroud of Golubria one.
The former is renewed in the same fashion as the latter.

--------------------------------------------------------------------------------
5926e4fc06 | Chris Campbell | 2011-07-21 21:41:47 +0100

Reword the shroud of Golubria recast messages
"Grows in power" was a little misleading, as it's just the duration
that's increased.

--------------------------------------------------------------------------------
09ab00492d | Florian Diebold | 2011-07-21 22:33:49 +0200

Remove references to mouse control from the tutorial in Webtiles mode.

--------------------------------------------------------------------------------
8179e72df5 | Raphael Langella | 2011-07-21 22:25:43 +0200

Skill studied from manual are known and can be selected for training.

--------------------------------------------------------------------------------
be4f82525a | Raphael Langella | 2011-07-21 22:25:43 +0200

Fix lua bugs with unidentied armour.
Bug introduced by 294db2cc.

--------------------------------------------------------------------------------
17dfbce6f4 | Raphael Langella | 2011-07-21 22:25:43 +0200

Don't miscast when the spell can still be aborted (#4281).
This is a significant refactoring. All the spells now return a spret_type and
take a boolean which tells if the spell has actually failed.
Also some code clean up in _do_cast(). All spells have their own function now.

Also fix the following bugs:
* Properly abort fire storm if forced casting on a wall with '!'.
  Also put a message for forced out of range casting (like cloud spells).
* Casting summon elemental on an invisible monster aborted with no cost.
* if a summoning spell aborts because create_monster fails, you don't lose a
  turn. You still get a chance of miscast in this rare case.
* s2s, tukima and branding spells abort properly instead of consuming turn and
MP when player is not wielding appropriate object.
* s2s abort message when wielding a non-snakable.

--------------------------------------------------------------------------------
6056fee300 | Chris Campbell | 2011-07-21 19:10:07 +0100

Don't let muted monsters shout

--------------------------------------------------------------------------------
882acbe58e | Chris Campbell | 2011-07-21 18:52:57 +0100

Remove uniques from an entry vault
They could be replaced with something cleverer (humans with custom
speech were suggested, or shining eyes, or just removing the vault) but
either way, it's not really appropriate unique placement.

--------------------------------------------------------------------------------
b06da32ccb | Chris Campbell | 2011-07-21 18:13:01 +0100

Add LexAckson's felid insults

--------------------------------------------------------------------------------
d44bdd99b2 | Florian Diebold | 2011-07-21 18:02:44 +0200

Remove a debug echo in the makefile.

--------------------------------------------------------------------------------
51ac54186e | Chris Campbell | 2011-07-21 16:53:54 +0100

Allow cancelling Manual prompts with esc

--------------------------------------------------------------------------------
5c255dbf8c | Chris Campbell | 2011-07-21 14:42:47 +0100

Reduce Tornado damage
Let's test it at a middle ground for a bit and see how it plays. With
12 dice it was back to trivialising Ziggurats (and everything else, of
course).

--------------------------------------------------------------------------------
a96b0a3fd5 | Adam Borowski | 2011-07-21 03:16:49 +0200

Don't show scary warnings when upgrading trunk saves.
Not being able to go back is expected.

--------------------------------------------------------------------------------
294db2cc0f | Raphael Langella | 2011-07-21 01:58:51 +0200

Allow searching by equipment slot.
The keywords are:
cloak helmet gloves boots shield body

--------------------------------------------------------------------------------
156035582f | Raphael Langella | 2011-07-21 01:58:51 +0200

Show lua stash annonate in item descrition in debug mode.

--------------------------------------------------------------------------------
adf469b951 | Raphael Langella | 2011-07-21 01:58:51 +0200

Show percentage of progress to next level instead of experience points.
Progress is also displayed in the status area. Can easily be removed to claim
the space for something more useful if the stats area layout is reworked again.

Actual experience points are now almost completely hidden. I think the last
occurence is the E command which show remaining points to the next level.

--------------------------------------------------------------------------------
1d808a8a9b | Chris Campbell | 2011-07-20 23:31:32 +0100

Make player_res_electricity return more accurate values (fixes incorrect 
colouring on % screen)

--------------------------------------------------------------------------------
7d6d314721 | David Lawrence Ramsey | 2011-07-20 13:45:21 -0500

Remove unnecessary punctuation.

--------------------------------------------------------------------------------
8959836799 | Florian Diebold | 2011-07-20 20:34:36 +0200

Noticeably improve Webtiles performance.
Iterating over the whole mapped area to find dirty cells was a bad
idea.

--------------------------------------------------------------------------------
319e89ad4c | David Lawrence Ramsey | 2011-07-20 10:09:39 -0500

Remove unnecessary spacing.

--------------------------------------------------------------------------------
e567403d1f | David Lawrence Ramsey | 2011-07-20 09:44:00 -0500

Lightning spires are artificial, but not artificial *beings* per se.
If they were like electric golems, the statue genus would be
appropriate, but the description states that they're just coils and
rods, so they sound like ordinary devices rather than beings.

--------------------------------------------------------------------------------
c9f1ad8bf8 | Adam Borowski | 2011-07-20 16:18:40 +0200

Enable the new Abyss, ready or not.
Problems:
* minimap in tiles fails to update
* shifts are very obvious (maprot needs to increase far away)
* wall type flipping

--------------------------------------------------------------------------------
555955c213 | Chris Campbell | 2011-07-20 15:08:23 +0100

Don't allow retargeting orbs of destruction by shouting at them

--------------------------------------------------------------------------------
c56b610026 | Adam Borowski | 2011-07-20 15:38:20 +0200

Undo the damage reduction from petrification against Shatter.

--------------------------------------------------------------------------------
9ab1d52719 | Adam Borowski | 2011-07-20 15:30:35 +0200

Reconcile player and monster partial petrification.
Situation got that bad in a good part thanks to petrified() returning true
for monsters and false players.

          old players         old monsters         new
damage    full                1/3                  1/sqrt(3)
EV        full                0                    0
SH        full                0                    0
can move  yes                 no                   yes
can act   yes                 no (bug!)            yes
can fly   yes                 no                   yes

Also, I improved messages for fungi and such.

--------------------------------------------------------------------------------
55d03ce7ad | Adam Borowski | 2011-07-20 12:27:54 +0200

Scale down Singing Sword damage in early game.
It suffered from the Lava Orc syndrome: annihilates everything around you
once the tension rises to the threshold.  Even worse, you can get it in a
D:4 vault.

I think it's still ridiculously overpowered in general, so we need to
balance the base damage.  This commit merely addresses early vs late power.

--------------------------------------------------------------------------------
756f4ccd97 | Adam Borowski | 2011-07-20 04:31:17 +0200

Reduce the rarity of catoblepases in the regular dungeon as well (not in trunk).
I missed that they spawn in D as well, so the chance should be reduced there
as it was reduced in the Lair.  They're way too common currently, and we
don't want a repeat of elephants.

--------------------------------------------------------------------------------
c8ebf02666 | Adam Borowski | 2011-07-20 04:06:54 +0200

Tornado: alter the rules for "short translocation".
You cannot move a tornado to a place where it did not reach yet.

Outside of that range, check if a new tornado can possibly intersect with
the area the old one reached, and impose a cooldown if yes.

Also, clear the cooldown if you went farther away.

--------------------------------------------------------------------------------
af7a10123b | Adam Borowski | 2011-07-20 03:28:45 +0200

Revert "Don't allow getting round Tornado cooldown by blinking"
There's no way to explain "winds" on the other part of the level.

This reverts commit 01c685b658de1769f7e188d98bcfb751377222ed.

--------------------------------------------------------------------------------
eb6e1e21ea | Chris Campbell | 2011-07-19 22:21:10 +0100

More updates to install/patch docs

--------------------------------------------------------------------------------
dd7ca6c98b | Chris Campbell | 2011-07-19 22:21:10 +0100

Fix git link in quickstart.txt; add basic patching info

--------------------------------------------------------------------------------
05d16f48cb | Chris Campbell | 2011-07-19 22:21:09 +0100

Clarify Windows install information

--------------------------------------------------------------------------------
08368c7758 | David Lawrence Ramsey | 2011-07-19 16:15:24 -0500

Remove unneeded blank lines, and fix outdated comment.

--------------------------------------------------------------------------------
01c685b658 | Chris Campbell | 2011-07-19 18:21:12 +0100

Don't allow getting round Tornado cooldown by blinking

--------------------------------------------------------------------------------
c32fec8474 | Florian Diebold | 2011-07-19 12:00:28 +0200

Mark forgotten tiles black on the minimap.

--------------------------------------------------------------------------------
9343556bee | Brendan Hickey | 2011-07-18 21:35:15 +0200

Felid's can't use sureblade.

--------------------------------------------------------------------------------
1476789a80 | Raphael Langella | 2011-07-18 21:23:30 +0200

Fix inverted logic in god_hates_your_god.

--------------------------------------------------------------------------------
d1a6b44afd | Raphael Langella | 2011-07-18 21:17:15 +0200

Simplify the monster movement code.
There's no need to pass the can_move feature all over the place. Also, it
makes it much simpler to make monster use pathfinding to avoid other stuff.

--------------------------------------------------------------------------------
15903b9509 | Raphael Langella | 2011-07-18 19:18:55 +0200

Don't make noise when spell casting is cancelled (#3087).

--------------------------------------------------------------------------------
f32d5c71ca | Raphael Langella | 2011-07-18 19:18:55 +0200

Known shaft are always safe, don't prompt.

--------------------------------------------------------------------------------
f9dced3e91 | Raphael Langella | 2011-07-18 19:18:55 +0200

Clear shaft from the stash tracker after jumping in it (#4284).

--------------------------------------------------------------------------------
6bcdd3ed37 | Raphael Langella | 2011-07-18 19:18:55 +0200

Remove a redundant safety check.

--------------------------------------------------------------------------------
fc5af4270d | Chris Campbell | 2011-07-18 16:46:16 +0100

Remove an out-of-date reference to the ring of charms

--------------------------------------------------------------------------------
0935c485a8 | Adam Borowski | 2011-07-18 14:13:57 +0200

Show pan lord wings only if they can fly.
Also, use name rather than maxhp, AC, EV for the appearance hash.

Start the transition to monster_info.

--------------------------------------------------------------------------------
3758c0c064 | Adam Borowski | 2011-07-18 13:11:18 +0200

Rename CE_HCL to CE_ROT since it has nothing to do with acid.

--------------------------------------------------------------------------------
484fdcec93 | Adam Borowski | 2011-07-18 12:48:28 +0200

Extend the tornado obelisk vault for the new radius.
Also, tone the obelisk's hd down since players have no way to experiment
beforehand -- a deadly challenge is good if mechanics are known.

--------------------------------------------------------------------------------
bf41a298eb | Adam Borowski | 2011-07-18 03:26:40 +0200

On installed versions, don't load unknown .des files.
The list of "known" ones is prepared during "make install" -- typically into
the staging area that is then packaged.

This makes adding entire new .des files harder when using prebuilt binaries,
but fixed issues with installing to a non-clean dir.

--------------------------------------------------------------------------------
51a77a64a9 | Adam Borowski | 2011-07-18 02:20:41 +0200

Adjust Tornado damage.
It's still a no-brainer to use the alternatives, but a bit less so.  In a
typical late Zig scenario, damages of various spells are:

Refrigeration    600 in  10 aut
Tornado          700 in 100 aut
Shatter          700 in  10 aut
Firestorm (r=2)  650 in  10 aut, 1500 in 100 aut, 2550 in 230 aut
Firestorm (r=3) 1000 in  10 aut, 2700 in 100 aut, 3800 in 240 aut
(chance for a big Firestorm is 25% at pow 100, 50% at pow 150)

After testing a number of scenarios, this one seems to be roughly average.
It had a bunch of Pan lords plus two turns worth of spawns, nearest one
touching the player.  Furniture was: none at radius 1, two squares at radius
2, one at 3, one at 4, seven at 5 (ie, below 10%).  Most non-Zig scenarios
have plenty of walls.  Shatter was strongly biased against: 2/3 Pan lords
can fly, so do nearly all spawns (eyes, neqoxecs, balrugs, fiends) -- in
this set only a hell beast and two green deaths were on foot among minions.
Most lords have rC and rF, spawns rarely.

The contender with a direct comparison, Shatter, was strictly better: 10
times better damage per second, same mana efficiency.  After the adjustment,
5 times better dps but half the damage per mana makes Shatter still a better
choice but at least not strictly.

Firestorm is strictly better for this set even after doubling: you can
either let them simmer for better total damage, or burn extra mana for rapid
fire.

--------------------------------------------------------------------------------
5aaa1d7332 | Adam Borowski | 2011-07-18 02:12:07 +0200

Fix teleportation moving Tornado with you.
It's hard to explain how the winds could follow you, especially as they
don't do so between levels.  Translocating within the radius doesn't cause
an immediate abort, but there is a penalty steep enough that for practical
purpose it does.  Long distance teleports let you get out of cooldown, short
ones don't.

--------------------------------------------------------------------------------
10e7cd3e72 | Raphael Langella | 2011-07-18 01:59:13 +0200

Fix an infinite loop when no skill can be trained.

--------------------------------------------------------------------------------
fc886247b7 | Raphael Langella | 2011-07-18 01:59:13 +0200

Properly handle losing a skill.
It can happen when a draconian turns red or white and his weak skill is at
level 1. With the aptitude change, the skill lose its level.

--------------------------------------------------------------------------------
aa65e6ce10 | Raphael Langella | 2011-07-18 01:59:13 +0200

Guarantee one mutation removed with the cure mutation potion. (#4203)
It had a very little chance of not curing any mutation which did look like
a bug.

--------------------------------------------------------------------------------
07b6a2dd37 | Raphael Langella | 2011-07-18 01:59:13 +0200

Fix quiver not being redrawn on unwield (#4272).

--------------------------------------------------------------------------------
9ba8856f8b | Chris Campbell | 2011-07-18 00:40:56 +0100

Remove an overlooked hostile statue from an orb chamber vault
It still has a 1/100 chance of being something nasty, as do the others.

--------------------------------------------------------------------------------
6a5693d7b5 | Adam Borowski | 2011-07-18 00:13:21 +0200

Drop tile monster cache whenever new monster/player tiles are added.
(Player tiles because of ghosts).

Sadly, this leads to loss of shown information since we currently can't
recreate the tiles from mon_info -- you need to get into view of that
monster again to correct them.

Once recreation is fixed, we may stop saving the mcache at all, it's
redundant with mon_info.  I'm adding this commit only for the short term,
in case we can't fix it properly in time for 0.9.

--------------------------------------------------------------------------------
b2aa0997fd | Adam Borowski | 2011-07-18 00:13:21 +0200

Mention Trog's new dislike for training magic on his description screen.

--------------------------------------------------------------------------------
0327e23683 | David Lawrence Ramsey | 2011-07-17 14:48:36 -0500

Rescale Xom's stimulation value range from 0-255 to 0-200.
This fixes a problem with how he uses gift_timeout, which is supposed to
be in that range, but wasn't until now (the interestingness value was
directly assigned to gift_timeout after randomization, meaning that it
could go up to 255).  It's also consistent with how he uses piety, which
is in that range.

It's not exact in a few places, seeing as, among other things, some
xom_is_stimulated() calls seem to assume that the maximum value is 200
anyway, but it should be close enough.

--------------------------------------------------------------------------------
ee17baf2d6 | David Lawrence Ramsey | 2011-07-17 13:49:59 -0500

Preemptively make Xom count tentacles as an amusing mutation.

--------------------------------------------------------------------------------
9ddaae0608 | David Lawrence Ramsey | 2011-07-17 13:32:25 -0500

Use HALF_MAX_PIETY properly in Xom wrath.

--------------------------------------------------------------------------------
e72bbffd36 | Florian Diebold | 2011-07-17 19:49:11 +0200

Fix copying of Webtiles data in the Makefile.
The rule for rltiles/tileinfo-*.js was wrong, which caused a clean
build to fail.

--------------------------------------------------------------------------------
371e8542d1 | Florian Diebold | 2011-07-17 19:20:39 +0200

Fix &nbsp; showing up with newer server versions.

--------------------------------------------------------------------------------
602ab4e591 | Florian Diebold | 2011-07-17 19:20:39 +0200

Add a logout link.

--------------------------------------------------------------------------------
4e6f030d7d | Florian Diebold | 2011-07-17 19:20:39 +0200

Webtiles: Add a blank line after the game list.

--------------------------------------------------------------------------------
5ebb2fb900 | Florian Diebold | 2011-07-17 19:20:39 +0200

Fix a black screen when a spectator joins.

--------------------------------------------------------------------------------
9a799c955a | Florian Diebold | 2011-07-17 19:20:39 +0200

Webtiles: Make running_game_path version-specific.

--------------------------------------------------------------------------------
59b45dc206 | David Lawrence Ramsey | 2011-07-17 12:16:30 -0500

Tweak blood-drinking message: "poisoned blood" -> "poisonous blood".
This is consistent with "poisonous meat" elsewhere.

--------------------------------------------------------------------------------
43693aafe8 | David Lawrence Ramsey | 2011-07-17 12:15:59 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
5a0939703a | David Lawrence Ramsey | 2011-07-17 12:15:04 -0500

Simplify.

--------------------------------------------------------------------------------
e18a838cf5 | David Lawrence Ramsey | 2011-07-17 11:29:54 -0500

Fix compilation.

--------------------------------------------------------------------------------
d16bca8d5c | David Lawrence Ramsey | 2011-07-17 11:24:01 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
6f9a650a6f | David Lawrence Ramsey | 2011-07-17 11:14:34 -0500

Constify.

--------------------------------------------------------------------------------
21fc5ef9be | David Lawrence Ramsey | 2011-07-17 11:14:14 -0500

Clean up gift timeout handling a bit.

--------------------------------------------------------------------------------
5467138f98 | David Lawrence Ramsey | 2011-07-17 10:36:59 -0500

Simplify some god gifting code (mostly Trog/Okawaru's weapons/armour/missiles).

--------------------------------------------------------------------------------
07ae323535 | David Lawrence Ramsey | 2011-07-17 07:48:00 -0500

Comment fix.

--------------------------------------------------------------------------------
f9a8ff5df5 | Raphael Langella | 2011-07-17 14:39:40 +0200

Formatting fix.

--------------------------------------------------------------------------------
4d7bf57569 | Brendan Hickey | 2011-07-17 14:37:28 +0200

Added 'god_likes_your_god'. Gods do not hate themselves

--------------------------------------------------------------------------------
eee7d52ee0 | Raphael Langella | 2011-07-17 13:02:11 +0200

Revert "Move tiles_help.txt into the main directory."
This reverts commit 7f779b66476a1965fb070be5abeb9fe4747f2ad8.

In the main directory, it's not installed nor packaged.

--------------------------------------------------------------------------------
1a4b00c654 | Raphael Langella | 2011-07-17 12:39:35 +0200

Fix a crash when upgrading a save file with all skills disabled.

--------------------------------------------------------------------------------
7564aecb9b | Brendan Hickey | 2011-07-17 12:21:14 +0200

Highlight the player's god on the overview screen. Indicate friendly gods

--------------------------------------------------------------------------------
e2e960b0d1 | Raphael Langella | 2011-07-17 10:53:13 +0200

Fix free XP and inifinite loop at max skill_cost_level (oops).

--------------------------------------------------------------------------------
1ad32cdbb4 | Raphael Langella | 2011-07-17 02:09:10 +0200

Trog doesn't like it if you train magic skills.

--------------------------------------------------------------------------------
e3e93d76d6 | Raphael Langella | 2011-07-17 02:09:10 +0200

Only level up skills after all trainings are finished.

--------------------------------------------------------------------------------
31c088732a | Adam Borowski | 2011-07-17 01:46:29 +0200

Fix clouds being affected by AC more during swift actions.
Also, actors with speeds coprime with 10 suffered less due to round-off errors.

--------------------------------------------------------------------------------
c29e3c6975 | Raphael Langella | 2011-07-17 01:27:15 +0200

Nerf the experience card.
Amount of experience is capped at 20k.
Ornate and legendary don't automatically give 20k.

--------------------------------------------------------------------------------
9b7585539d | Raphael Langella | 2011-07-17 01:27:15 +0200

Fix Sage card.

--------------------------------------------------------------------------------
d68858254a | Raphael Langella | 2011-07-17 01:27:15 +0200

Make sure all skills get equal skill cost when gaining a lot of XP.
When a lot of XP is gained at once, the skill cost level can raise several
time over the course of training all skills. We split it up so that all
skills pay the same cost.

We still need to randomize the order in case of bonus skill points from
manual or crosstraining which can make the cost higher for the last trained
skill.

--------------------------------------------------------------------------------
525bc5e1d6 | Adam Borowski | 2011-07-17 00:37:36 +0200

Merge webtiles fixes.

--------------------------------------------------------------------------------
0197981c16 | Alexander Vostres | 2011-07-17 00:34:44 +0200

Partial fix for broken MSVC build (still need to fix prebuild)
The MSVC2010/ dir is omitted, since it doesn't work for me yet, and adding a
whole yet useless dir just before branching would be counterproductive.  -- 1KB

--------------------------------------------------------------------------------
6de05d6d82 | Adam Borowski | 2011-07-17 00:34:44 +0200

Don't claim 0.9 is not save compatible with 0.8, since it is!

--------------------------------------------------------------------------------
0a06f3c28f | Alexander Vostres | 2011-07-17 00:34:44 +0200

Fix compilation without LUA (CLUA_BINDINGS undefined)

--------------------------------------------------------------------------------
8f98872ffb | Adam Borowski | 2011-07-17 00:34:44 +0200

Fix a few issues with new Abyss.
Sadly, there are at least two problems left:
* the minimap is not updated (including Labs, needs a fix)
* Abyss shifts are very noticeable if you look at places out of LOS (large
  terminal, manually looking at 'X', minimap)

--------------------------------------------------------------------------------
22a1f33f24 | Adam Borowski | 2011-07-17 00:34:44 +0200

Give teleport traps in ZotDef finite ammo.

--------------------------------------------------------------------------------
e374ce6a17 | Adam Borowski | 2011-07-17 00:34:44 +0200

Tornado: clear the cooldown when taking stairs.
It's hard to explain the need for "winds to calm down" if the winds were
left on the other level.  Climbing stairs back and worth takes long enough
to prevent that abuse, or at least make it miniscule when pulling a number
of monsters with you (Vaults:8).

--------------------------------------------------------------------------------
b3939d1ff6 | Chris Campbell | 2011-07-16 20:18:32 +0100

Don't display starvation messages when immune to starvation due to Death's Door
The actual behaviour remains mostly the same: if you somehow manage to
get to the point of starvation while Death's Door is active, you'll
starve as soon as it expires (it used to spam you with "You have starved
to death." messages every turn until then).

--------------------------------------------------------------------------------
1de153939e | Chris Campbell | 2011-07-16 20:18:31 +0100

Update and improve some spell descriptions

--------------------------------------------------------------------------------
002b635839 | Florian Diebold | 2011-07-16 16:23:02 +0200

Fix the minimap being erased when the browser window size changes.

--------------------------------------------------------------------------------
0e680dbc9f | Mu | 2011-07-16 14:43:48 +0100

Switch volcano_grotto and volcano_tomb to tiny volcanoes
They are currently using large volcanoes, which
right now appear to be flooding the entire vault
with fire, including the entrance square, and
killing all the enemies in the process.

--------------------------------------------------------------------------------
3d9c84ed61 | David Lawrence Ramsey | 2011-07-15 21:23:24 -0500

Fix Mantis 4262: Update copyright year.

--------------------------------------------------------------------------------
28cf28718c | David Lawrence Ramsey | 2011-07-15 19:33:26 -0500

Make the dungeon overview handle unavailable gods generically.
In short, properly use is_unavailable_god() to filter them out rather
than checking for Jiyva directly, first for the case of Fedhas in Zot
Defence, and second in case any more gods are made killable besides
Jiyva.

--------------------------------------------------------------------------------
e42fbd1994 | Chris Campbell | 2011-07-16 01:16:35 +0100

Properly block hats in ice form

--------------------------------------------------------------------------------
b5488ab09b | Brendan Hickey | 2011-07-16 01:26:16 +0200

Changed dungeon overview on Jiyva's death

--------------------------------------------------------------------------------
7d8ce773bc | Brendan Hickey | 2011-07-16 01:26:16 +0200

Added mollification command to wizmode

--------------------------------------------------------------------------------
678d048591 | Gustaf Hallberg | 2011-07-16 00:01:07 +0200

Changed description of Divine Shield to point out that you need to mentally 
control it.

--------------------------------------------------------------------------------
a69c5ca0bf | Chris Campbell | 2011-07-15 16:30:10 +0100

Tweak some minivaults, fix a broken entry vault

--------------------------------------------------------------------------------
4d7775f460 | Chris Campbell | 2011-07-15 14:59:00 +0100

Allow enchanting blowguns with either EW scroll, like missiles

--------------------------------------------------------------------------------
dbb4c52a13 | Chris Campbell | 2011-07-15 00:38:08 +0100

Always identify bracer ego and misc items with only one type
Bracers are always "of archery", and lots of misc items have an
unidentified appearance but are in fact always the same item (grey disc
is always a disc of storms, etc). Crawl shouldn't pretend these items
are unidentified and encourage spoilers.

This could certainly be reverted if alternatives are created, though
(other possible bracer egos, different types of grey disc, and so on).

--------------------------------------------------------------------------------
d55de58e0c | Chris Campbell | 2011-07-14 23:35:29 +0100

Remove a couple of temple entry vaults (minmay)
Two vaults that look like they should be entered from below but actually
confuse players with secret doors elsewhere. The "entry from below"
concept is still a nice one, and remains in the previous two vaults.

--------------------------------------------------------------------------------
4132b1ac74 | Chris Campbell | 2011-07-14 23:35:25 +0100

Remove some misleading and out-of-date information from weapon descriptions
As there is no longer any racial ammo, racial launchers can't be more
effective with it. And weapons' strength/dexterity weightings currently
don't have a very large impact and frequently mislead players - possibly
the weighting should be looked at in more depth, but I don't have any
decent plan on how to change it currently so removing the misleading
information is hopefully a good move anyway.

--------------------------------------------------------------------------------
04be76efd5 | Raphael Langella | 2011-07-14 23:57:24 +0200

Monsters don't avoid trap they don't know about (#4199).

--------------------------------------------------------------------------------
c4fa902067 | Raphael Langella | 2011-07-14 16:03:43 +0200

Don't prompt for unarmed attack if UC skill is higher than weapon skill.
Mantis #4257.

--------------------------------------------------------------------------------
b6386e3675 | Raphael Langella | 2011-07-14 15:36:10 +0200

Fix monsters not cleared from minimap when ctrl+C (#4259).
They also don't leave trails anymore on the minimap.

--------------------------------------------------------------------------------
ca1d9b6842 | Raphael Langella | 2011-07-14 13:25:42 +0200

Fix slow Sif piety gain (#4260).

--------------------------------------------------------------------------------
fcd1aa3527 | David Lawrence Ramsey | 2011-07-14 00:22:51 -0500

Remove ENCH_SOUL_RIPE from pre-enslaved souls, in case it affects Mantis 3930.

--------------------------------------------------------------------------------
cc9c6d96a2 | Raphael Langella | 2011-07-14 01:11:15 +0200

Allow using tab to switch between practise and focus.
Undocumented for now.

--------------------------------------------------------------------------------
ad4c5ee455 | Raphael Langella | 2011-07-14 01:11:15 +0200

Increase the effect of focus for skills with very low training.
Focus skills should be at least around 20%, but this can vary.

--------------------------------------------------------------------------------
1b252480e2 | Raphael Langella | 2011-07-14 01:11:15 +0200

Always show unknown skills if they have some training.

--------------------------------------------------------------------------------
e52647c304 | Raphael Langella | 2011-07-14 01:11:14 +0200

Tiles: add highlight boxes to the skill menu switches.

--------------------------------------------------------------------------------
863946788b | Raphael Langella | 2011-07-14 01:11:14 +0200

Slightly increase the rate of stealth passive training.

--------------------------------------------------------------------------------
8f5f7274d3 | Raphael Langella | 2011-07-14 01:11:14 +0200

Default auto_switch to off.
It's convenient, but it can be quite bewildering for an unaware player.

--------------------------------------------------------------------------------
eda2377fe4 | Raphael Langella | 2011-07-14 01:11:14 +0200

Slow down the training of ranged combat skills.
The ones dealing the less damage (darts and slings) trained the faster,
which is the opposite of what I did with melee weapon. Let's start by
reducing them all to 1 exercise per firing and we'll see if a similar
mechanism to melee weapon is needed.
Throwing stones and large rock only exercised half the time, this hasn't
been increased.

--------------------------------------------------------------------------------
df7ea41f5e | Chris Campbell | 2011-07-13 23:28:28 +0100

Abort some self-enchantments without wasting a turn in situations where they 
cannot be cast
Also remove some unnecessary checks: Stoneskin being uncastable by the
undead is already handled elsewhere, and Ozo's armour doesn't need to
check for whether it's being extended (by the removed Extension spell).

--------------------------------------------------------------------------------
c938bf108a | Chris Campbell | 2011-07-13 22:38:36 +0100

Indicate on the status bar when Swiftness is inactive because of water

--------------------------------------------------------------------------------
6030b7d2b8 | Chris Campbell | 2011-07-13 22:14:34 +0100

Include the name of the spell in miscast messages
This allows players to more easily configure force_more messages for
miscasting specific spells where it can be particularly vital - such
as Controlled Blinks, where the player might then try and target a
location and instead inadvertantly start moving, for example.

--------------------------------------------------------------------------------
8b91456b4f | Florian Diebold | 2011-07-13 22:16:14 +0200

Client-side Firefox 6 support.
This still requires the server to support the hybi-8 version of the
WebSocket protocol. I've implemented the support in the tornado
library at [1]; with that version, Webtiles will work in newer Firefox
versions. I'll also try to get these patches merged into the mainline
tornado.

[1] https://github.com/flodiebold/tornado

--------------------------------------------------------------------------------
f9f40291c7 | David Lawrence Ramsey | 2011-07-13 14:37:50 -0500

Add changelog entry.

--------------------------------------------------------------------------------
42aa3a4556 | Chris Campbell | 2011-07-13 20:12:06 +0100

Don't blink things with dispersal ammo if no damage was dealt, give Warpers a 
slightly bigger stack
Players shouldn't be able to irresistibly blink away dangerous lategame
enemies with a stack of dispersal darts, for almost no skill investment.
Should also help armour characters suffer a little less against centaurs
with dispersal ammo.

--------------------------------------------------------------------------------
3470ffd71b | Hurcan Solter | 2011-07-13 20:45:09 +0200

Prevent infinite loop just in case

--------------------------------------------------------------------------------
01f58b160e | Hurcan Solter | 2011-07-13 20:43:54 +0200

Don't auto-switch to melee weapon when exploring
Also properly end turn after switching and let the world react.

--------------------------------------------------------------------------------
799f377bc8 | Wensley | 2011-07-13 20:39:52 +0200

tiny cloud tweak

--------------------------------------------------------------------------------
3f8d39b726 | Wensley | 2011-07-13 20:38:30 +0200

balance tweaks from player playtesting feedback

--------------------------------------------------------------------------------
a11f8d7060 | Adam Borowski | 2011-07-13 20:21:42 +0200

Don't freeze friendlies when tallying damage.

--------------------------------------------------------------------------------
087861d008 | Adam Borowski | 2011-07-13 20:21:41 +0200

Tornado: make the effect of AC independent of the way damage calls are split.
It is also now fully proportional.

The new formula formula gives damage reduction of:
 0 AC = 0%
10 AC = 11.7%
20 AC = 22%
40 AC = 39%
80 AC = 63%

The variance is woefully small, but it appears our math mavens don't remember
a thing about iterated Bernoulli trials, so let's rely for the actual damage
rolls to provide enough randomness.

--------------------------------------------------------------------------------
0ff316ee35 | Adam Borowski | 2011-07-13 20:21:41 +0200

Update git ignores.

--------------------------------------------------------------------------------
3bcb044d9c | Adam Borowski | 2011-07-13 20:21:41 +0200

Manual updates from the wiki.

--------------------------------------------------------------------------------
e558037153 | David Lawrence Ramsey | 2011-07-13 12:53:33 -0500

Add formatting fix.

--------------------------------------------------------------------------------
8d3a9337c9 | David Lawrence Ramsey | 2011-07-13 12:53:11 -0500

Check for lichform players' wielding holy weapons using is_holy_item().
This is consistent with the player wielding checks elsewhere, and fixes
an inconsistency with weapons that are of blessed type but don't have
the holy wrath brand (these are currently impossible to generate outside
wizard mode, but still).

--------------------------------------------------------------------------------
92ee30f102 | Chris Campbell | 2011-07-13 18:12:39 +0100

Add an alternative Ash overflow altar
So that the book/cursed weapon isn't the only possibility.

--------------------------------------------------------------------------------
b1f7f848ea | Chris Campbell | 2011-07-13 18:12:38 +0100

Tweak wording for reading manuals

--------------------------------------------------------------------------------
5c8a84bb00 | Chris Campbell | 2011-07-13 18:12:38 +0100

Remove buffed ghost moths from mumra_spider_spiderweb

--------------------------------------------------------------------------------
72545ab6b8 | David Lawrence Ramsey | 2011-07-12 22:05:08 -0500

Forbid felids from memorizing Maxwell's Silver Hammer (vorpal branding).

--------------------------------------------------------------------------------
da9ab9ee60 | Adam Borowski | 2011-07-13 04:03:31 +0200

Don't let disabling death block quitting.
This was inherited from never_die, but apparently no one used that.

--------------------------------------------------------------------------------
3a82c6cb31 | Adam Borowski | 2011-07-13 04:01:40 +0200

damtally.lua: exempt friendlies from calculations.
Otherwise, we can't measure Firestorm (vortices).

--------------------------------------------------------------------------------
ec6ae37857 | Adam Borowski | 2011-07-13 03:54:39 +0200

dlua function mons.wont_attack
It'd be better to have attitude as well, but that'd require passing all
enums, and I'm not going to code this at 4am.  Also, we'd still need a list
of friendly enough attitudes, so wont_attack remains useful.

--------------------------------------------------------------------------------
5deb02cc05 | Adam Borowski | 2011-07-13 03:39:29 +0200

Fix a tornado crash when a Royal Jelly spawn goes into a prepared space.

--------------------------------------------------------------------------------
2a2a16e69f | Adam Borowski | 2011-07-13 02:58:09 +0200

Forbid felids from memorizing a bunch of useless spells.
Merely being marked as useless means you can't cast it now, but might
be able to do so after changing gear, switching gods or being drained
below level 15 (ok, the last case is a stretch...).

Also, fix inverted logic for Darkness and TSO penance.

--------------------------------------------------------------------------------
6a7eab736d | Adam Borowski | 2011-07-13 02:38:05 +0200

XuaXua's tailectomy of quasit tiles.

--------------------------------------------------------------------------------
63f2afe098 | Adam Borowski | 2011-07-13 02:27:14 +0200

A lame reduction of the shadow imp tile.

--------------------------------------------------------------------------------
186b9cf5e5 | Adam Borowski | 2011-07-13 02:01:17 +0200

Coolio's tile updates.

--------------------------------------------------------------------------------
979d04ba47 | Adam Borowski | 2011-07-13 01:17:18 +0200

Update Denzi's tile for catoblepas.
I personally prefer the old one, so I've put it into UNUSED/.  It has little
resemblance to the new one so it might be reused for some other bull-like.

--------------------------------------------------------------------------------
f154f3710b | Raphael Langella | 2011-07-12 23:40:43 +0200

Prevent band members from displacing their leader (#3534).
Since the leader can push past the followers and be of lower HD, this prevent
them from constantly swapping place with a higher HD follower.

--------------------------------------------------------------------------------
a4a0ef3eb6 | Raphael Langella | 2011-07-12 23:40:42 +0200

New manuals.
You activate them by reading them and deactivate by reading again or dropping
them. As long as you're studying a manual, the skill gains twice as much skill
points when it's trained. Rational is that learning from a book make the actual
practise more effective, but it's still needed.

The charges is the number of bonus skill points and is between 2000 and 3000.

They are also reflavoured as "not magical" and don't crumble to dust. Not
everything has to be magical in the dungeon and this is a good opportunity
to have a valuable mundane item.

--------------------------------------------------------------------------------
24054f3b84 | Raphael Langella | 2011-07-12 23:40:42 +0200

Add the skill cost to the &= command output.

--------------------------------------------------------------------------------
fde4e25ee1 | Raphael Langella | 2011-07-12 23:40:42 +0200

Slightly increase the skill costs in mid and late game.
By making skill_cost_level raise a bit faster.

--------------------------------------------------------------------------------
b6751c3527 | Adam Borowski | 2011-07-12 19:41:34 +0200

Don't mention exp pool in char dumps.

--------------------------------------------------------------------------------
0662d480dd | Adam Borowski | 2011-07-12 14:21:05 +0200

Merge webtiles fixes.

--------------------------------------------------------------------------------
08f9b3856f | Adam Borowski | 2011-07-12 14:20:46 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
7d90d0f247 | Adam Borowski | 2011-07-12 14:13:48 +0200

Deknifize a vault.

--------------------------------------------------------------------------------
da08fa8b30 | Adam Borowski | 2011-07-12 02:55:44 +0200

Fix catoblepas corpse tiles.

--------------------------------------------------------------------------------
627d49c1cf | Adam Borowski | 2011-07-12 02:21:30 +0200

Fix ZotDef gear not generating, add no_rtele_into to the chambers.
I don't have the slightest clue why having *| KMASKed on a single line
prevents | from getting an item but having the KMASKs separate works.

--------------------------------------------------------------------------------
a7dd32e9ee | Adam Borowski | 2011-07-12 01:38:28 +0200

Fix D:25-27 lemuel_castle being swamped with >300 draconians.
I guess the author wanted to have a 50% chance of water being replaced
with lava, not endless draconians.

--------------------------------------------------------------------------------
0ac46027f0 | Adam Borowski | 2011-07-12 01:38:28 +0200

Fix a harmless warning.

--------------------------------------------------------------------------------
542d34698f | Adam Borowski | 2011-07-12 00:42:23 +0200

A script to show damage counts in wizmode.
Usage: put "lua_file = lua-wiz/damtally.lua" into your crawlrc, bind a key
to "===damage_tally", set up a scenario, preferably back up the save, press
the key, cast your spell or proceed to pound a monster with a stick.  Press
the key again to reset counters.

As as side effect, all monsters receive 10000 hp and stop moving; I did not
bother restoring the old state.  Just copy back the save file :p

The script defines a ready() so it conflicts with anything else that defines
that function.

--------------------------------------------------------------------------------
ece60dec1a | Adam Borowski | 2011-07-12 00:32:23 +0200

If monster spawns are disabled, don't grow toadstools as well.

--------------------------------------------------------------------------------
0786484222 | Adam Borowski | 2011-07-12 00:32:22 +0200

clua: you.time(), dlua: mons.hp

--------------------------------------------------------------------------------
7cfe2c1e14 | Adam Borowski | 2011-07-12 00:32:22 +0200

debug.never_die(x) -> debug.disable("death",x)

--------------------------------------------------------------------------------
869ae16629 | Adam Borowski | 2011-07-12 00:32:22 +0200

Mention the cause of direct rotting deaths (mutation, ZotDef).
For delayed rotting we'd have to store the blame -- a good idea, but not
yet done.  Mutation says just "mutation" rather than blaming that smelly
neqoxec as well.

--------------------------------------------------------------------------------
82cb2a995b | Adam Borowski | 2011-07-12 00:32:22 +0200

A dlua function debug.disable() to turn off some parts of Crawl.
Currently implemented:
* spawns
* mon_act
* mon_regen
* player_regen
* hunger

--------------------------------------------------------------------------------
917a652559 | Adam Borowski | 2011-07-12 00:32:22 +0200

Use call_dlua() for the stress test.

--------------------------------------------------------------------------------
17399c98d0 | Adam Borowski | 2011-07-12 00:32:22 +0200

A clua function call_dlua() (wizmode only), to avoid crawl.sendkeys(&^T) hacks.
It goes against the clua/dlua separation, but then, it does nothing that
wasn't already possible with the interpreter.

--------------------------------------------------------------------------------
2824263da8 | Raphael Langella | 2011-07-12 00:00:40 +0200

Rename show_spammy_spoilers into show_no_ctele.
Since that's all it's doing now.

--------------------------------------------------------------------------------
846b6d50f5 | Raphael Langella | 2011-07-11 23:52:13 +0200

When gaining a skill, insert leftover exercises at a random position.

--------------------------------------------------------------------------------
dce5640185 | Raphael Langella | 2011-07-11 23:30:49 +0200

Improve the skill focus interface.
In focus mode, you can toggle between the 3 states (disabled, enabled,
focused). Last mode used is remembered.

--------------------------------------------------------------------------------
492fc83b22 | Raphael Langella | 2011-07-11 21:34:47 +0200

Print chaotic in monster status only when firing silver ammo.

--------------------------------------------------------------------------------
fdfc2aad04 | Raphael Langella | 2011-07-11 21:34:47 +0200

Print mindless in monster status only when using the healing ability.

--------------------------------------------------------------------------------
6a3a087368 | Raphael Langella | 2011-07-11 21:34:47 +0200

Fix an infinite loop when auto_switching from a cursed weapon (#4248).

--------------------------------------------------------------------------------
2654608600 | elliptic | 2011-07-10 16:30:12 -0400

Slightly reduce the time taken to go up or down stairs.
On second thought, commit a079eaf was a bit too harsh, increasing the stair
delay in most cases. This value is a more intermediate choice.

--------------------------------------------------------------------------------
d85b6f8baa | David Lawrence Ramsey | 2011-07-10 11:39:24 -0500

Fix another typo.

--------------------------------------------------------------------------------
965f4cc44b | David Lawrence Ramsey | 2011-07-10 11:39:07 -0500

Wrap some overly long changelog entries.

--------------------------------------------------------------------------------
db4b766af0 | David Ploog | 2011-07-10 18:35:46 +0200

Give petrify to gnoll shamans in the gnoll castle serial vault.

--------------------------------------------------------------------------------
3bb364d1cc | David Ploog | 2011-07-10 18:24:29 +0200

Fix typo.

--------------------------------------------------------------------------------
119808a827 | David Lawrence Ramsey | 2011-07-10 11:12:03 -0500

Add missing punctuation.

--------------------------------------------------------------------------------
546b97503f | David Lawrence Ramsey | 2011-07-10 11:10:22 -0500

Typo fix.

--------------------------------------------------------------------------------
1e57a99f4e | David Lawrence Ramsey | 2011-07-10 11:09:00 -0500

Add another changelog entry.

--------------------------------------------------------------------------------
a08a6fe9c3 | Raphael Langella | 2011-07-10 17:12:05 +0200

Prevent selecting skills at the bottom of L1 for reskilling. (#4243)
Since you can't unlearn skills with reskilling anymore.

--------------------------------------------------------------------------------
cfdf8afd4e | Florian Diebold | 2011-07-10 15:34:21 +0200

Improve webtiles error reporting.
This still only shows "The WebSocket connection was closed." when
trying to connect with Firefox Aurora, for example. This is because
Firefox doesn't seem to fire the onerror event or give a reason for
closing the connection.

--------------------------------------------------------------------------------
83c87ecd63 | Florian Diebold | 2011-07-10 15:15:49 +0200

A hacky way of making plants appear correctly on the webtiles minimap.
The client currently uses tile data to determine minimap cell colours,
which doesn't give information about the no-exp flag; so this is sent
additionally.

This will be changed when the server sends more semantic data about
dungeon features and monsters.

--------------------------------------------------------------------------------
d0292c6f0c | Florian Diebold | 2011-07-10 14:59:36 +0200

Correctly display the "fleeing" icon in webtiles.

--------------------------------------------------------------------------------
77f4063ea9 | Florian Diebold | 2011-07-10 13:01:35 +0200

WebTiles: Don't even send a UnRemember message without a login token.

--------------------------------------------------------------------------------
8de4a9d9a8 | Florian Diebold | 2011-07-10 12:59:04 +0200

WebTiles: Fix rendering of large tiles.

--------------------------------------------------------------------------------
484b5f2db7 | Florian Diebold | 2011-07-10 12:58:11 +0200

Catch a WebTiles server exception when deselecting "Remember me" with an 
invalid login token.

--------------------------------------------------------------------------------
baddf42e18 | Raphael Langella | 2011-07-10 08:49:51 +0200

Don't print 0% training for unknown skills.

--------------------------------------------------------------------------------
58d1975902 | elliptic | 2011-07-10 02:13:01 -0400

Tweak the heavy-armour Jiyva shuffle.

--------------------------------------------------------------------------------
11ecce8b9b | elliptic | 2011-07-09 23:59:39 -0400

Fix Tornado cooldown affecting non-tornado spells.

--------------------------------------------------------------------------------
1d094a4ede | Adam Borowski | 2011-07-10 03:58:32 +0200

Show the inner flame icon in webtiles.

--------------------------------------------------------------------------------
af70560f38 | Adam Borowski | 2011-07-10 03:01:29 +0200

Merge branch 'webtiles'

--------------------------------------------------------------------------------
4417407b09 | Adam Borowski | 2011-07-10 01:56:42 +0200

Redraw weapon and quiver after adjusting item letters.

--------------------------------------------------------------------------------
c351e77d4e | Adam Borowski | 2011-07-10 01:51:50 +0200

Robsoie's updates to the frog skeleton tile.

--------------------------------------------------------------------------------
58acbd46f0 | Raphael Langella | 2011-07-09 23:59:30 +0200

Make sure that there is always one skill selected.

--------------------------------------------------------------------------------
51e7c5ea1b | Raphael Langella | 2011-07-09 23:59:30 +0200

New feature: focus skill. Double the training weight of focus skills.
Works in both manual and automatic modes.
Fix a bug in auto mode when none of the enabled skills have been exercised
recently. And also fix #4241.

--------------------------------------------------------------------------------
af52982a8c | elliptic | 2011-07-09 17:52:32 -0400

Buff basilisks slightly.

--------------------------------------------------------------------------------
c7191323ec | Florian Diebold | 2011-07-09 22:45:04 +0200

Render at least the whole view area.
Previously, cells outside the minimap bounds were not colored red when
berserking, for example.

--------------------------------------------------------------------------------
a079eaff90 | elliptic | 2011-07-09 14:44:30 -0400

Make time taken to go up/down stairs more consistent.
This delay could be made to depend on various factors at some stage,
but the previously coded dependence was buggy and usually didn't work right
so I'm just making the delay a fixed one extra turn for now.

--------------------------------------------------------------------------------
7e98c0129a | Florian Diebold | 2011-07-09 19:30:21 +0200

Catch exceptions when trying to encode the password.

--------------------------------------------------------------------------------
e194c60c91 | Adam Borowski | 2011-07-09 16:03:55 +0200

Weak-ass tiles for calcifying dust.

--------------------------------------------------------------------------------
a2059cf716 | Adam Borowski | 2011-07-09 15:16:32 +0200

Let the calcifying dust block vision.

--------------------------------------------------------------------------------
d71797255e | Adam Borowski | 2011-07-09 14:00:15 +0200

Merge branch 'abyss'
The actual Abyss changes are disabled (define NEW_ABYSS to enable), as there
are still problems left.  I'm merging this already to get new maprot for
Labyrinths in, and reduce merging effort in the future.

Lab map rot is enabled.

--------------------------------------------------------------------------------
8a26538ac4 | Adam Borowski | 2011-07-09 13:51:31 +0200

Bump catoblepas rarity in alpha releases, lower it in betas and finals.
Apologies to Wensley, but I'd not want it to become another elephant that
is more abundant than portraits of Lenin under Soviet occupation.  A rare
monster is more distinct when it shows up.

On the other hand, adding new stuff shortly before release means we need
as much testing as we can.

--------------------------------------------------------------------------------
1d9ee3131e | Adam Borowski | 2011-07-09 13:47:42 +0200

Determine release type (alpha / beta / final) in only one place.

--------------------------------------------------------------------------------
ee6da548d5 | Adam Borowski | 2011-07-09 13:07:53 +0200

Hand-antialias the lightning spire tile somewhat.
The coil on the bottom looked octagonal rather than cylindric, the lightcyan
loop in the upper part was too pixellated, too.

--------------------------------------------------------------------------------
e61acb6ba7 | Adam Borowski | 2011-07-09 13:03:31 +0200

Denzi's tile for catoblepi.

--------------------------------------------------------------------------------
af4fe250d6 | Adam Borowski | 2011-07-09 12:58:28 +0200

Correct the tile for lightning spires.

--------------------------------------------------------------------------------
33066b2b57 | Wensley | 2011-07-09 12:48:00 +0200

Catoblepas.
The catoblepas is a lair-dwelling yak-genus monster that breathes choking
clouds of calcifying dust to petrify unwary adventurers. A quick rundown of
its attributes:

1) Less EV than a death yak, but slightly more AC and attack power (unlike
death yaks, the catoblepas is a solitary creature and does not spawn in
herds).
2) A somewhat sluggish creature, the catoblepas is speed 8. Running away is
not difficult if you choose to disengage early, but if you allow yourself
to become petrified the beast will quickly close the gap. Because of its
breath, kiting is not an issue, and the player must step carefully around
the streams of petrifying clouds if they wish to engage in melee. This is
designed to be an interesting slow creature and could possibly replace one
of the boring slow monsters in lair, such as giant slugs.
3) Clouds petrify using the same formula that swamp drake breath uses to
determine if the player is confused, which is a check based on XL. This is
actually surprisingly forgiving in practice, meaning that coming across a
catoblepas around a blind corner is not a death sentence (and in any case,
there are some other clever ways of escaping).
4) This creature hits somewhat hard, both to compensate for its slow speed
and to remain a threat despite the damage reduction that petrification
confers. I have tested it and feel that it is balanced, if somewhat
unforgiving of recklessness (which I feel is a good thing). In any case,
why bother implementing a monster if it's not going to be dangerous? >:)
5) This creature is somewhat rare, currently found in lair at the same
depth as hydras. It is more rare than fire drakes, but less rare than
griffons. It is also found in the dungeon, at the same depth and rarity as
basilisks.
6) Its color is magenta, matching basilisks, in order to better associate
these two monsters in the minds of players (guessing people are way more
familiar with basilisks than catoblepae). Its breath is white, in contrast
to the lightgrey color of steam. A tile for its breath does not yet exist,
but Denzi has already made an excellent catoblepas tile.

In summary, the catoblepas is designed to be a slow lair monster that
presents a unique and interesting challenge for players, and I hope you
will find it satisfactory. :)

--------------------------------------------------------------------------------
250da486f9 | Adam Borowski | 2011-07-09 12:15:40 +0200

Remove removed beams.

--------------------------------------------------------------------------------
ca1a2be013 | Adam Borowski | 2011-07-09 02:23:21 +0200

ZotDef: replace electric eels by lightning spires.
Eels are mobile and need water.

--------------------------------------------------------------------------------
fb4a452ca5 | David Lawrence Ramsey | 2011-07-08 19:10:09 -0500

Typo fixes.

--------------------------------------------------------------------------------
591e7debe6 | Hurcan Solter | 2011-07-09 01:36:30 +0200

Don't delete entries from the map while iterating for real this time.

--------------------------------------------------------------------------------
47ce523c11 | David Lawrence Ramsey | 2011-07-08 18:30:53 -0500

Typo fixes.

--------------------------------------------------------------------------------
e50cbb2307 | David Lawrence Ramsey | 2011-07-08 18:30:22 -0500

Add a few 0.9 changelog entries.

--------------------------------------------------------------------------------
695af6d009 | David Ploog | 2011-07-09 00:53:37 +0200

Separate SCREAMS.
Also call it Sulking Sword if silenced.
Make it louder when SCREAMING.

--------------------------------------------------------------------------------
445d01b46d | Raphael Langella | 2011-07-09 00:33:19 +0200

Don't delete entries from the map while iterating over it.
It makes Ashenzari angry because it has undefined behaviour. And often
crash under windows.

--------------------------------------------------------------------------------
59776cde58 | Raphael Langella | 2011-07-08 23:49:04 +0200

Change a few colours in the skill screen.
Training is brown to differentiate it from progress.
Reskilling goes to cyan.

--------------------------------------------------------------------------------
9cf16c302f | Raphael Langella | 2011-07-08 23:49:04 +0200

Fix the no disabling all skills security.

--------------------------------------------------------------------------------
326a322458 | Adam Borowski | 2011-07-08 23:47:52 +0200

Singing Sword damage.
Needs to be tweaked, pushing so dpeg can edit the messages.

--------------------------------------------------------------------------------
aeb55d1896 | Adam Borowski | 2011-07-08 23:47:52 +0200

ZotDef: wizmode Ctrl-Z to get a million ZP.

--------------------------------------------------------------------------------
08516e54dd | Adam Borowski | 2011-07-08 23:47:52 +0200

ZotDef: assert-crash instead of letting monsters stare into space.
This can happen if they have no path to the Orb, and I hope all such cases
are gone.  If not, we'll have a crash to investigate rather than a free win.

--------------------------------------------------------------------------------
0f5957a9a6 | Adam Borowski | 2011-07-08 23:47:52 +0200

ZotDef: don't make pets (usually ice beasts from statues) go for the Orb.
Tracking you is usually more useful when there's nothing better to do.

--------------------------------------------------------------------------------
fd79380199 | Adam Borowski | 2011-07-08 23:47:51 +0200

ZotDef: disable creation of teleport traps.

--------------------------------------------------------------------------------
27e32b699b | Adam Borowski | 2011-07-08 23:47:51 +0200

Fix useless pointer dereferences.

--------------------------------------------------------------------------------
8df6e9998c | Adam Borowski | 2011-07-08 23:47:51 +0200

ZotDef: fix golubrias lasting ten times as long.

--------------------------------------------------------------------------------
3b4d3dab1a | Adam Borowski | 2011-07-08 23:47:51 +0200

Fix trap ammo count wrapping around.
It wraps to 16960 so it's still practically unlimited, but let's make this
more readable.

--------------------------------------------------------------------------------
3379a56f94 | Adam Borowski | 2011-07-08 23:47:51 +0200

Adjust some whitespace and formatting.

--------------------------------------------------------------------------------
ac04a5e73b | Adam Borowski | 2011-07-08 23:47:51 +0200

ZotDef: remove the skill cost rebate.
With the exp pool no longer being used to fuel Zot abilities (ZP), you can
now afford the regular cost.

Of course, with such a drastic change as 3 times less skills, this might
have harmful results.  Oy vey.

--------------------------------------------------------------------------------
596066ff67 | Adam Borowski | 2011-07-08 23:47:51 +0200

ZotDef: prevent teleportation after picking up the Orb.
This will remove the possibility of sitting in one of the loot chambers,
making monster pathfinding go haywire and taking massive amounts of server
CPU.  And it forces at least a modicum of effort on the way out, rather than
a single use of a Zot ability.

--------------------------------------------------------------------------------
ea96dcbf1c | Adam Borowski | 2011-07-08 23:47:51 +0200

Rename the Singing Sword when silenced.

--------------------------------------------------------------------------------
fc2c10d3f3 | David Ploog | 2011-07-08 22:43:47 +0200

0.9 changelog stub.
Help needed, especially with tiles. I suggest we have a section dedicated to
the new skill system. Ashenzari needs an entry, too.

--------------------------------------------------------------------------------
366ae6ed90 | Raphael Langella | 2011-07-08 17:50:17 +0200

Slow down the training of spells with a conjuration component.
Since those spells are usually cast very often, their schools tend to get an
unnatural high training. Chance to exercise the skills is higher for multi
school spells.

--------------------------------------------------------------------------------
40d093126d | Raphael Langella | 2011-07-08 17:50:17 +0200

Slow down the practise of low damage weapons.
Using low damage weapons as a tendency to make the weapon skill have a very
high training in auto mode. This is an attempt at addressing this.
No effect if you don't know the weapon school or fighting.

--------------------------------------------------------------------------------
d0f6549c9e | Raphael Langella | 2011-07-08 17:50:17 +0200

Don't make it harder to learn skills with low XP gains.
The training counter has only a chance of being decremented in case of partial
training.

--------------------------------------------------------------------------------
947374be7d | Raphael Langella | 2011-07-08 17:50:17 +0200

Don't disable learned skill in auto mode.

--------------------------------------------------------------------------------
e8f0b14dc4 | Raphael Langella | 2011-07-08 17:50:17 +0200

Don't try to move a non-existent button.

--------------------------------------------------------------------------------
69bec2529f | Raphael Langella | 2011-07-08 15:48:26 +0200

Don't restore the transfer view if transfer is finished (#4236).

--------------------------------------------------------------------------------
ea6093500e | David Ploog | 2011-07-08 15:48:26 +0200

More Singing Sword lines.

--------------------------------------------------------------------------------
5b059c0c9a | Vsevolod Kozlov | 2011-07-08 11:34:41 +0400

Only build graveyard special rooms in hells.
This may still be not exactly thematic, but it's better than bees.

Fixes #4237.

--------------------------------------------------------------------------------
321fc69a4d | Raphael Langella | 2011-07-08 00:55:11 +0200

Bad scrolls are useless to troglodytes since they don't want spellcasting 
(#4233).

--------------------------------------------------------------------------------
30cd1175bd | Raphael Langella | 2011-07-08 00:38:14 +0200

Add a cooldown timer for tornado.
Duration is between 25 and 35 aut. Also prevent recasting when it's active.

--------------------------------------------------------------------------------
4725044c4c | Raphael Langella | 2011-07-08 00:25:04 +0200

New formula for tornado's radius.
r = sqrt(t) * 4 / 5

Area increases linearly. Also bump max radius to 6. More for the visual
effect since it will reach this radius just before expiring, dealing
minimal damage.

--------------------------------------------------------------------------------
5aaa984ec6 | Raphael Langella | 2011-07-07 22:02:17 +0200

Fix excessive round-off errors.

--------------------------------------------------------------------------------
f382c5e369 | Adam Borowski | 2011-07-07 22:01:03 +0200

Make Tornado rotation smaller at partial radii.

--------------------------------------------------------------------------------
d61bf44b16 | Adam Borowski | 2011-07-07 22:00:51 +0200

Fix the rate of felling trees depending on action speed.

--------------------------------------------------------------------------------
7995add01b | Adam Borowski | 2011-07-07 22:00:25 +0200

Start tornado with a small radius and let it wind up.
The actual radius formula needs to be tweaked.

--------------------------------------------------------------------------------
9a19cb9f8b | Raphael Langella | 2011-07-07 21:55:59 +0200

Remove an obsolete entry from init.txt.

--------------------------------------------------------------------------------
53bc370a43 | Raphael Langella | 2011-07-07 21:55:59 +0200

Remove the handbrake for training unknown skills.

--------------------------------------------------------------------------------
fb9546c91c | Raphael Langella | 2011-07-07 21:55:59 +0200

Fix a number of bugs with skills gained and mastered skills.

--------------------------------------------------------------------------------
c473370b66 | Raphael Langella | 2011-07-07 21:55:59 +0200

Increase the amount of spellcasting exercises when casting.
In auto mode, it should train at about half the speed of the magic school skill
for single school spells, and same speed for dual-school spells.

--------------------------------------------------------------------------------
7de7d6522e | Raphael Langella | 2011-07-07 21:55:59 +0200

Increase the frequency of exercises for the fighting skill.
from 1/3 to 1/2. Should make it easier to gain and give better results in auto
mode.

--------------------------------------------------------------------------------
59b96d6bb5 | Raphael Langella | 2011-07-07 21:55:59 +0200

Add an in-game help for the new skill system.
Also simplify a bit the code for the skill screen layout. I didn't purge the
do switch from the code because I might use it for something else later.

--------------------------------------------------------------------------------
69c91623ed | David Lawrence Ramsey | 2011-07-07 11:19:09 -0500

Fix Mantis 4227: Mark the first card of a deck if it's identified via scroll.

--------------------------------------------------------------------------------
b487ff9613 | David Lawrence Ramsey | 2011-07-07 11:18:10 -0500

Simplify.

--------------------------------------------------------------------------------
1c45f4cb43 | David Lawrence Ramsey | 2011-07-07 11:05:17 -0500

Fix wording.

--------------------------------------------------------------------------------
a7c8ce7fd3 | David Lawrence Ramsey | 2011-07-07 11:05:05 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
5e23e3d324 | David Lawrence Ramsey | 2011-07-07 09:41:52 -0500

Fix apparent typo.

--------------------------------------------------------------------------------
d14da8d866 | David Lawrence Ramsey | 2011-07-07 08:59:34 -0500

Properly expand the empty-handed canned message to account for claws/tentacles.

--------------------------------------------------------------------------------
a42cb6c716 | Adam Borowski | 2011-07-07 15:41:25 +0200

Make the Singing Sword use a different set of messages when silenced.

--------------------------------------------------------------------------------
f56568d837 | David Lawrence Ramsey | 2011-07-07 08:14:23 -0500

Add spacing fix.

--------------------------------------------------------------------------------
445bbce25c | Nathaniel Rook | 2011-07-07 13:44:48 +0200

Change prices of fixed-effect jewellery.

--------------------------------------------------------------------------------
0ea0a33053 | Nathaniel Rook | 2011-07-07 13:44:19 +0200

Change prices of variable-strength rings to increase quadratically.

--------------------------------------------------------------------------------
519e89f0e4 | Nathaniel Rook | 2011-07-07 13:41:30 +0200

Remove x7 multiplier from jewellery calculations (no gameplay effect).

--------------------------------------------------------------------------------
47b5eadb2c | Adam Borowski | 2011-07-07 10:08:18 +0200

Simplify Singing Sword speech code, vary its loudness.

--------------------------------------------------------------------------------
7a4cae2ebd | Adam Borowski | 2011-07-07 10:08:18 +0200

Don't let tornado put people on statues, grates, etc.

--------------------------------------------------------------------------------
b10458e5df | Adam Borowski | 2011-07-07 10:08:18 +0200

ZotDef: don't grant double ZP.

--------------------------------------------------------------------------------
91013d3b6f | Adam Borowski | 2011-07-07 10:07:17 +0200

dolphin's octopode tile.

--------------------------------------------------------------------------------
30c896eab3 | David Lawrence Ramsey | 2011-07-06 23:14:22 -0500

Properly ignore shedu number (used for marking their mates) in monster_info.

--------------------------------------------------------------------------------
48e82d726f | David Lawrence Ramsey | 2011-07-06 23:08:02 -0500

Properly use @possessive@ in more monster speech.

--------------------------------------------------------------------------------
3ae088c79f | Brendan Hickey | 2011-07-07 03:24:43 +0200

Fixed abyss thrashing

--------------------------------------------------------------------------------
3cf6573e28 | Chris Campbell | 2011-07-07 00:45:19 +0100

Make Zin's Silver Corona affect the same monsters as the silver brand

--------------------------------------------------------------------------------
2e6381dcce | Chris Campbell | 2011-07-07 00:44:54 +0100

Make Inner Flame expire after a while

--------------------------------------------------------------------------------
a0a87fa417 | Raphael Langella | 2011-07-06 19:52:56 +0200

Fix dumping skills not showing disabled skills with -.

--------------------------------------------------------------------------------
a54a4af07a | Raphael Langella | 2011-07-06 19:52:56 +0200

Update the skill tab to the new system.

--------------------------------------------------------------------------------
4b5286f2a4 | Adam Borowski | 2011-07-06 19:43:09 +0200

ZotDef: don't limit PROX_NEAR_STAIRS to a radius of 3.
It will now use the nearest free spot to the chosen stairs, no matter how
far it is.

--------------------------------------------------------------------------------
160996b64e | Adam Borowski | 2011-07-06 19:40:27 +0200

ZotDef: fix monsters spawning everywhere out of LOS.
The regression was caused by a recent change to make spawns obey
no_monster_gen in some cases, to prevent monsters from spawning in
the loot chambers.  Too bad, the whole vault had this setting as
well.  It was not needed, deleted it.

--------------------------------------------------------------------------------
5ac16cc316 | Adam Borowski | 2011-07-06 19:18:34 +0200

ZotDef: experimentally double XP gains, cut clock in half.
Balance is probably totally upset: more turrets for less non-boss monsters,
less time to heal up, etc.  But then, it's not like ZotDef had any balance
to speak of...  Loads of testing is needed.

The durations are likely to change a lot -- some comments mention times
measured in an absolute number of turns and thus are off, but it's premature
to update them every time the rates change.

--------------------------------------------------------------------------------
cf85c8c185 | Adam Borowski | 2011-07-06 19:18:34 +0200

ZotDef: rework two maps, one used to be disabled.

--------------------------------------------------------------------------------
19645669d1 | Hurcan Solter | 2011-07-06 18:44:16 +0200

Mark the top card in any case when identified
 Show it in inventory prompt if not marked

--------------------------------------------------------------------------------
6993a28e33 | David Ploog | 2011-07-06 18:44:16 +0200

Update description for scrolls of identify.

--------------------------------------------------------------------------------
66ac17732a | Hurcan Solter | 2011-07-06 18:44:16 +0200

Identify scrolls on decks reveal top card

--------------------------------------------------------------------------------
0fecd01e2a | Florian Diebold | 2011-07-06 18:26:13 +0200

Revert tilesdl.h to its pre-webtiles state.

--------------------------------------------------------------------------------
9266874e01 | Florian Diebold | 2011-07-06 18:24:19 +0200

Fix tiles compilation.

--------------------------------------------------------------------------------
5a04b52ff4 | Florian Diebold | 2011-07-06 17:47:23 +0200

Clean up tilesdl.h.
tileweb.cc now has its own header file. This replicates the public
TilesFramework interface, but the repetition seems better than having
one header file littered with #ifdefs.

--------------------------------------------------------------------------------
00c388b5f8 | David Lawrence Ramsey | 2011-07-06 10:17:17 -0500

Comment fixes.

--------------------------------------------------------------------------------
dd2a795074 | Florian Diebold | 2011-07-06 16:41:37 +0200

Clean up webtiles text area handling.
The separate subclasses were unnecessary now.

--------------------------------------------------------------------------------
164948bb98 | Adam Borowski | 2011-07-06 16:15:49 +0200

ZotDef: fix misaligned display of Zot Points.

--------------------------------------------------------------------------------
2a4dde5e7b | Adam Borowski | 2011-07-06 16:15:49 +0200

ZotDef: toadstools are not a threat to the Orb.

--------------------------------------------------------------------------------
fd747ee938 | Adam Borowski | 2011-07-06 16:15:49 +0200

More silly names for Ashenzari's book (jeffqyzt)

--------------------------------------------------------------------------------
bfc5f3c28d | David Lawrence Ramsey | 2011-07-06 09:05:13 -0500

Attempt to document how the -1/+1 values have different meanings for HP/MP.
This is so thay won't be confused with the -1/+1 values for skill
aptitudes.  Note that the bonus MP currently given to vampires and
demgods in ng-setup.cc:_give_species_bonus_mp() isn't documented here.

--------------------------------------------------------------------------------
a7a07758c9 | David Lawrence Ramsey | 2011-07-06 08:59:03 -0500

Fix wording.

--------------------------------------------------------------------------------
03ef2d2721 | David Lawrence Ramsey | 2011-07-06 08:57:58 -0500

Fix inconsistent wrapping in the aptitude template.

--------------------------------------------------------------------------------
cde2f9f570 | Raphael Langella | 2011-07-06 14:36:54 +0200

Fix a bug in skill scaling.

--------------------------------------------------------------------------------
06661719f1 | Adam Borowski | 2011-07-06 14:36:41 +0200

Remove an unused field.

--------------------------------------------------------------------------------
21b92b4539 | Adam Borowski | 2011-07-06 14:12:46 +0200

Fix variable strings used for format.

--------------------------------------------------------------------------------
7186bbc06e | Raphael Langella | 2011-07-06 13:54:39 +0200

Wizmode: allow exiting the skill menu with no skill selected.
That way, you don't get stuck in it if you set all skills to 0.

--------------------------------------------------------------------------------
669482f48a | Raphael Langella | 2011-07-06 13:52:29 +0200

Cap the total of training for unknown skills at 50%.
Should fix all the crashes.

--------------------------------------------------------------------------------
8ea535ee7b | Raphael Langella | 2011-07-06 12:58:42 +0200

Reduce the number of exercises done by the &g wizmode command.
With the new system, 10 is a more useful value than 100.

--------------------------------------------------------------------------------
9348c12b22 | Adam Borowski | 2011-07-06 12:21:55 +0200

Fix format string warnings.
Most are annoying STL types (which can still cause crashes on exotic
platforms), but there's a number of actual bugs as well.

--------------------------------------------------------------------------------
fdf5a12385 | Adam Borowski | 2011-07-06 12:21:55 +0200

Let GCC issue warnings about mprf() arguments.

--------------------------------------------------------------------------------
0b190e40a9 | David Ploog | 2011-07-06 11:51:35 +0200

Price reform: wands. (nrook)
Increase prices for charges considerably.

Examples: wand of healing (2) is 360 (was 312),
          wand of healing (5) is 640 (was 330),
          wand of flame (10) is 60 (was 90),
          wand of flame (14) is 80 (was 96).

--------------------------------------------------------------------------------
67cdbdb44e | Adam Borowski | 2011-07-06 02:10:01 +0200

Encase new Abyss code in #ifdefs.

--------------------------------------------------------------------------------
2085081171 | Adam Borowski | 2011-07-06 02:08:44 +0200

Formatting changes.

--------------------------------------------------------------------------------
0f18c7f83b | Adam Borowski | 2011-07-06 02:08:44 +0200

Simplify away a global variable.
Existence of features to write is already signified by the list being
non-empty.

Another thing is, a comment elsewhere claims it's somehow possible to die
between being banished and actually getting to the Abyss, in which case
the features would linger -- but the previous code already had that.  Is
that really the case?  I doubt so, but then we'd need to clean it or
restart_after_game will break.

--------------------------------------------------------------------------------
ddb1b80641 | Adam Borowski | 2011-07-06 02:08:43 +0200

Make some stuff static.

--------------------------------------------------------------------------------
136076e231 | Brendan Hickey | 2011-07-06 02:08:43 +0200

New Lab/Abyss map rot code.

--------------------------------------------------------------------------------
90db7f20ca | Brendan Hickey | 2011-07-06 02:08:43 +0200

Fixed up map rot.

--------------------------------------------------------------------------------
ea7ead2f9c | Adam Borowski | 2011-07-06 01:43:37 +0200

Dead kobolds are not hungry anymore.

--------------------------------------------------------------------------------
6fae6d61d3 | Adam Borowski | 2011-07-06 01:41:11 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
1eecd58281 | David Ploog | 2011-07-06 01:24:30 +0200

Xom overflow vault (bmh), #4220.

--------------------------------------------------------------------------------
bb5b85c683 | David Ploog | 2011-07-06 00:57:49 +0200

Ashenzari's overflow altar does not give cantrips anymore (elliptic).
But a randart book with just the animate skeleton spell.
The book title has a random component; this could be improved.

--------------------------------------------------------------------------------
20595f0bae | David Ploog | 2011-07-06 00:57:49 +0200

Seven Elf:5 vaults (minmay), #3659.

--------------------------------------------------------------------------------
4e8660f40e | David Ploog | 2011-07-06 00:57:49 +0200

No random hostile statue in new orb chamber.

--------------------------------------------------------------------------------
6386c61f63 | David Ploog | 2011-07-06 00:57:49 +0200

Orb chamber vault (MrPerson), #2871.

--------------------------------------------------------------------------------
c7eb093b6a | David Ploog | 2011-07-06 00:57:49 +0200

Awesome set of zot entry vaults (evilmake), #4101.

--------------------------------------------------------------------------------
84e00197ec | David Ploog | 2011-07-06 00:57:49 +0200

Kobold camp fire minivault (lexackson), #4130.

--------------------------------------------------------------------------------
46cc870dce | Raphael Langella | 2011-07-06 00:44:20 +0200

Fix a compiler warning.

--------------------------------------------------------------------------------
e489950521 | Raphael Langella | 2011-07-06 00:30:11 +0200

Don't crash when gaining XP with all skills at 27 (#4219).

--------------------------------------------------------------------------------
68821a5038 | Raphael Langella | 2011-07-06 00:18:11 +0200

Skill menu: default view to progress and remember its state.
State is cleared when reskilling is initiated, so the player automatically
gets the transfer view on his next visit to the skill menu.

--------------------------------------------------------------------------------
f4ba86aa64 | Raphael Langella | 2011-07-06 00:18:11 +0200

Fix sorting by distance in search results (#3506).
Items on the same level as the player will be properly sorted by their
distance to the player. Ideally, we could do a floodfill and calculate
travelling distance. I'm not sure it's worth it. We use grid_distance
for now.

--------------------------------------------------------------------------------
c489c6d0ed | Raphael Langella | 2011-07-06 00:18:11 +0200

Don't crash when disabling all skills in the skill menu.

--------------------------------------------------------------------------------
91cb3cb2e3 | Raphael Langella | 2011-07-06 00:18:11 +0200

Prevent exiting the skill menu with all skills disabled.

--------------------------------------------------------------------------------
4985ec0830 | Raphael Langella | 2011-07-06 00:18:11 +0200

Revert "Prevent disabling the last skill enabled."
This reverts commit 277a63f51e7aa66066284cf400325878c04c6c3a.

--------------------------------------------------------------------------------
7e9c12038a | elliptic | 2011-07-05 18:00:56 -0400

Buff Shock and Lightning Bolt slightly.
This is meant to compensate for the loss of trizapping and quadzapping.

--------------------------------------------------------------------------------
0d3049c5d0 | Raphael Langella | 2011-07-05 21:41:21 +0200

Automatically disable skill learned in manual mode.

--------------------------------------------------------------------------------
7c3afbb422 | Raphael Langella | 2011-07-05 21:41:21 +0200

Fix an inifinite loop when a skill reaches level 27.

--------------------------------------------------------------------------------
6608256da7 | Brendan Hickey | 2011-07-05 21:26:39 +0200

Randomized the abyss.

--------------------------------------------------------------------------------
433bf2afe0 | Brendan Hickey | 2011-07-05 21:26:39 +0200

Only bloody when telefragging.

--------------------------------------------------------------------------------
934f05515e | Brendan Hickey | 2011-07-05 21:26:39 +0200

Added notification for monster telefragging.

--------------------------------------------------------------------------------
9a97d5d991 | Brendan Hickey | 2011-07-05 21:26:37 +0200

Added clouds as the abyss shifts.

--------------------------------------------------------------------------------
c70dd6c9b5 | Brendan Hickey | 2011-07-05 21:22:29 +0200

Implemented monster displacement and non-RNG morphing

--------------------------------------------------------------------------------
135642df1c | Brendan Hickey | 2011-07-05 20:47:15 +0200

First pass at abyss morphing

--------------------------------------------------------------------------------
74c53e2bdf | Brendan Hickey | 2011-07-05 20:47:15 +0200

Making the Abyss reproducible

--------------------------------------------------------------------------------
776f40ddf4 | Brendan Hickey | 2011-07-05 20:47:15 +0200

Some terrain is now generated with the original Abyss algorithm

--------------------------------------------------------------------------------
c45340067e | Brendan Hickey | 2011-07-05 20:47:15 +0200

Fixed initialization bug. Increased disorder

--------------------------------------------------------------------------------
de23c2d0c8 | Brendan Hickey | 2011-07-05 20:47:14 +0200

A worley-noise abyss

--------------------------------------------------------------------------------
f81f57729a | elliptic | 2011-07-05 14:39:54 -0400

Make Ash passive ID not do anything to runes or the orb.

--------------------------------------------------------------------------------
74abd23547 | David Lawrence Ramsey | 2011-07-05 13:02:42 -0500

Restore setting penance to 0 after wizard mode piety gain.
It's only guaranteed to be cleared if you gain a large amount of piety,
and this way, the old side effect of having it cleared even for a piety
gain of 0 is also restored.

--------------------------------------------------------------------------------
2b6251d4d1 | Nathaniel Rook | 2011-07-05 19:32:35 +0200

Have sacrifices of useless items give at least minimal piety.
Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
8be54678bf | Nathaniel Rook | 2011-07-05 19:32:35 +0200

Bad consumables are treated as valueless for sacrificial purposes.
Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
1f6f62d073 | David Lawrence Ramsey | 2011-07-05 12:21:20 -0500

Fix the wizard mode piety gain command.
Before, the piety difference would be decreased by penance and gift
timeout, so you'd end up with less piety than you specified.  As a side
effect of the fix, piety no longer needs to be set to 0 afterward, as
it's now set to 0 as part of the original piety increase.

--------------------------------------------------------------------------------
e506f7dfff | David Lawrence Ramsey | 2011-07-05 08:22:41 -0500

Remove now-inaccurate comment.

--------------------------------------------------------------------------------
496808241d | David Lawrence Ramsey | 2011-07-05 08:16:39 -0500

Since monster berserkers all worship Trog, use their god name in Trog's Hand.
This has the side effect of fixing one inconsistency, of sorts:
enslaving the soul of a berserker will change its god to Yred, and this
change will make it use Yred's name properly when casting its god
spells.

I'm aware that it's still Trog's power under a different name, but you
can e.g. enslave Wiglaf this way and his spell list will still be
Okawaru-like despite his god change.  Until it's handled better, by such
means as changing the spell lists of priestly monsters if/when they
change gods, this will at least avoid confusion in terms of which god
the enslaved monster worships.

--------------------------------------------------------------------------------
57c1aa2869 | Raphael Langella | 2011-07-05 13:42:43 +0200

Skip unknown skills when initialising the training array.
Learning a new skill without ever using it was weird.

--------------------------------------------------------------------------------
e0d4b18336 | Raphael Langella | 2011-07-05 13:23:35 +0200

Add a debug message when a skill is exercised.

--------------------------------------------------------------------------------
ebeb7252bb | Raphael Langella | 2011-07-05 13:23:35 +0200

In automatic mode, make sure the training percentages add up to 100.

--------------------------------------------------------------------------------
ed29f47726 | Raphael Langella | 2011-07-05 13:23:35 +0200

Don't show 0% for skills with no training.

--------------------------------------------------------------------------------
321fbae0fe | Raphael Langella | 2011-07-05 13:23:35 +0200

Simplify debugging code.

--------------------------------------------------------------------------------
1e33d39536 | Raphael Langella | 2011-07-05 13:23:35 +0200

Adjust the XP and XL display in debug mode.
It used to be: skill_cost_level/xp_pool (total_xp).
Changed to : XL/skill_cost_level (xp_pool).

--------------------------------------------------------------------------------
6a1d662662 | Raphael Langella | 2011-07-05 13:23:35 +0200

Cap the transfer knowledge so it doesn't reduce a skill below level 1.

--------------------------------------------------------------------------------
3143866888 | Raphael Langella | 2011-07-05 13:23:35 +0200

Don't print level up message on game start.

--------------------------------------------------------------------------------
afca20d3c2 | David Lawrence Ramsey | 2011-07-04 21:39:23 -0500

Fix Mantis 4217: Limit fedhas_bush_and_centaur_altar to depth D:3-27, not 3:27.

--------------------------------------------------------------------------------
c5c349e141 | Adam Borowski | 2011-07-05 03:16:53 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
ca135676a4 | Adam Borowski | 2011-07-05 03:10:04 +0200

Remove a no-op if clause.
Abyss stairs arw handled differently above.

--------------------------------------------------------------------------------
61edc30a67 | Adam Borowski | 2011-07-05 02:40:37 +0200

cppcheck: pass const strings by reference.  Alloc + copy less.

--------------------------------------------------------------------------------
52acb806cc | Adam Borowski | 2011-07-05 02:23:41 +0200

cppcheck: reduce scope of some variables.
This can improve readability somewhat, and can speed up debug builds.

--------------------------------------------------------------------------------
3ba445871a | Adam Borowski | 2011-07-05 02:23:41 +0200

Fix zlib compression done in chunks of only 4 bytes.
This worked correctly, but inefficiently.

--------------------------------------------------------------------------------
e4066ccd61 | Adam Borowski | 2011-07-05 02:23:41 +0200

cppcheck: use ++p not p++ for complex types (like iterators).
Pre-increment looks worse than post-increment, but on a C++ object the
latter forces an allocation plus copy that is completely unnecessary but the
compiler doesn't know that yet.

Note that I did change some of our iterators to return void rather than the old
or new value for exactly this performance reason before, breaking the expected
behaviour.  If that's an issue, tell me, we can use preincrements instead which
have very little penalty.

--------------------------------------------------------------------------------
06bb5b5c81 | Adam Borowski | 2011-07-05 02:21:51 +0200

cppcheck: fix inefficient checking for emptiness.
On some STL structures size() is slow.  I did not bother limitting sed,
so innocent bystanders got pulled into the machine, but there's no loss.

--------------------------------------------------------------------------------
eb03baac87 | Adam Borowski | 2011-07-05 02:21:50 +0200

Make cppcheck a bit happier.

--------------------------------------------------------------------------------
277a63f51e | Raphael Langella | 2011-07-05 01:32:14 +0200

Prevent disabling the last skill enabled.
At least one must be active at any time.

--------------------------------------------------------------------------------
2fb1f9a69d | Raphael Langella | 2011-07-05 00:35:17 +0200

Call train_skill after potion of experience and experience card.

--------------------------------------------------------------------------------
9bf4ddf383 | Raphael Langella | 2011-07-05 00:28:06 +0200

Don't train level 0 skills more than they have been exercised.

--------------------------------------------------------------------------------
029cdfee66 | Raphael Langella | 2011-07-04 23:58:53 +0200

New skill training system.
Exercised are stored in a queue and skills are trained immediately when XP is
gained. There's a manual mode in which only the selected skills are trained.

No XP pool. No victory dancing.

--------------------------------------------------------------------------------
55d5b58761 | Raphael Langella | 2011-07-04 23:58:53 +0200

New skill menu switches.
And a lot of rewritting and cleaning up.

--------------------------------------------------------------------------------
49f5b3ea6c | Raphael Langella | 2011-07-04 23:58:53 +0200

Move the skill menu into its own file.

--------------------------------------------------------------------------------
dbd756eb9c | Raphael Langella | 2011-07-04 23:58:53 +0200

Some simplification.

--------------------------------------------------------------------------------
65f6a8d363 | Raphael Langella | 2011-07-04 23:58:53 +0200

Remove the XP pool from the skill menu.

--------------------------------------------------------------------------------
90d0bb830a | Florian Diebold | 2011-07-04 23:58:06 +0200

Fix and update an error message.

--------------------------------------------------------------------------------
046f2b24e6 | David Lawrence Ramsey | 2011-07-04 13:36:46 -0500

Remove unneeded spaces.

--------------------------------------------------------------------------------
491cf12233 | David Lawrence Ramsey | 2011-07-04 13:09:22 -0500

Simplify polearms/dragon slaying branding check.

--------------------------------------------------------------------------------
c064d69bc8 | David Lawrence Ramsey | 2011-07-04 13:08:30 -0500

Remove unused variable.

--------------------------------------------------------------------------------
0871645262 | David Lawrence Ramsey | 2011-07-04 13:05:52 -0500

Poison Weapon works on blunt weapons as of 1954c4d; remove last check for that.

--------------------------------------------------------------------------------
e8375680fc | David Lawrence Ramsey | 2011-07-04 12:13:16 -0500

Rename element color ETC_GILA to ETC_FLASH.
Gila monsters are no longer in the game, the color is primarily used for
the Cloak of Flash artefact, and the colors in it are rather flashy
anyway, so this is a more appropriate name.

--------------------------------------------------------------------------------
e51c6dc2c7 | David Lawrence Ramsey | 2011-07-04 12:00:13 -0500

Remove duplicate element color by subsuming ETC_NECRO into ETC_DEATH.
ETC_NECRO will be removed on the next major binary compatibility bump.

--------------------------------------------------------------------------------
5982a6b0be | David Lawrence Ramsey | 2011-07-04 11:53:18 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
cee5e4e9db | David Lawrence Ramsey | 2011-07-04 11:21:50 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
f80bda6c44 | David Lawrence Ramsey | 2011-07-04 11:17:58 -0500

Display a different message when recasting Shroud of Golubria.
This is just flavor, as the duration is rerolled each time (a la Yred's
Injury Mirror; the different message is deliberately similar to the
Injury Mirror one for this reason).

--------------------------------------------------------------------------------
0d714ef464 | Adam Borowski | 2011-07-04 15:40:03 +0200

Don't spawn ZotDef monsters and royal jelly offshots in the loot chambers.

--------------------------------------------------------------------------------
058394ca08 | Adam Borowski | 2011-07-04 14:03:27 +0200

Kludge beams to never hit the same person more than twice.
The physics works well in other cases, and here it works realistically.
Too bad, this leads to quirky play where players spend too much time lining
up shots into corridor entrances.  How to hit someone twice is intuitive,
how to do that thrice is not.

A surprise one-turn death from a wand or an elf mage is not that fun either,
double hits keep staying out of bounces vital while putting a cap on deadliness.

It does nerf early AEs, we may want to compensate them somehow.

--------------------------------------------------------------------------------
9c247150ef | Adam Borowski | 2011-07-04 13:01:09 +0200

Fix handling of DS body mutations at positions other than first in the facet.
This is currently irrelevant, as currently no body mutation occurs there
without being in the first slot as well, but 1. this may change in the
future, 2. the code would crash on a 128 bit architecture (sizeof(pointer) >
3*sizeof(int)), 3. I don't like spam from code analysis tools.

--------------------------------------------------------------------------------
6550f77521 | Adam Borowski | 2011-07-04 12:47:32 +0200

Work around buggy type promotion in clang.

--------------------------------------------------------------------------------
9911adebac | Adam Borowski | 2011-07-04 12:32:55 +0200

Anachro police: Chemistry -> Alchemy, Zoology -> Beasts.
Note that an enum for "book of beasts" existed in old versions, but the
visible name was "Monster Manual".  With manuals going to go the way of
the dodo, we might want to restore that.

--------------------------------------------------------------------------------
00d5453fd4 | David Lawrence Ramsey | 2011-07-03 13:10:05 -0500

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
22f7174037 | Chris Campbell | 2011-07-03 18:44:32 +0100

Don't petrify Statue-formed players

--------------------------------------------------------------------------------
8344be0228 | David Lawrence Ramsey | 2011-07-03 09:50:55 -0500

Disallow lightcyan large abominations, as they overlap with octopodes.

--------------------------------------------------------------------------------
2dcdd29127 | David Lawrence Ramsey | 2011-07-03 08:37:27 -0500

Fix wording.

--------------------------------------------------------------------------------
555aa9f342 | Raphael Langella | 2011-07-03 10:07:58 +0200

Fix a dangling iterator in _genus_factoring (blmarket, #4210).
Crash only under windows. Also fix #3901.

--------------------------------------------------------------------------------
8c3441f236 | Chris Campbell | 2011-07-03 04:37:51 +0100

Fix some entry vault issues

--------------------------------------------------------------------------------
84674adc00 | David Ploog | 2011-07-03 03:28:22 +0200

Four more entry vaults (Roderic), #4208.

--------------------------------------------------------------------------------
e06b6ea43a | David Ploog | 2011-07-03 02:42:42 +0200

New serial vault: bayou (coolio), #4065.

--------------------------------------------------------------------------------
1bd0bdb228 | David Ploog | 2011-07-03 02:21:26 +0200

Four monster minivaults (Roderic), #4063.

--------------------------------------------------------------------------------
edc52ecc80 | David Ploog | 2011-07-03 00:02:09 +0200

Snake minivault (saegor), #3210.

--------------------------------------------------------------------------------
118b369afa | Adam Borowski | 2011-07-02 23:51:30 +0200

Future-proof the save browser for species and god additions and removals.
This means, you can save a game in Crawl 0.65535 and Crawl 0.9 will still
display it properly to tell you you can't load this game, no matter how
many major save versions happened in meantime.

Also, display Jiyva's second name rather than a space.

--------------------------------------------------------------------------------
9dfb38cb0a | Adam Borowski | 2011-07-02 23:51:30 +0200

Remove a redundant check.
Also, no runes are stackable anymore.

--------------------------------------------------------------------------------
3fc1dcceaa | Adam Borowski | 2011-07-02 23:51:30 +0200

Unindent a misleading paragraph in documentation.
It looked like it applied to the last subitem, not the category in general.

--------------------------------------------------------------------------------
f791bcbe5b | Adam Borowski | 2011-07-02 23:51:30 +0200

Don't let troves ask for items from display vaults.

--------------------------------------------------------------------------------
961f644a9a | Adam Borowski | 2011-07-02 23:51:30 +0200

Replace a hack in _is_affordable() with an explicit flag.

--------------------------------------------------------------------------------
b4257fc26a | Adam Borowski | 2011-07-02 23:51:30 +0200

Pre-identify cursedness of the Ashenzari gift.
It does take away the possible surprise, but then, it can surprise the
player at most once, which is exactly the definition of a spoiler.

--------------------------------------------------------------------------------
5885b33caf | Adam Borowski | 2011-07-02 23:51:30 +0200

Allow placing pre-identified items, fully or partially, in vaults.

--------------------------------------------------------------------------------
d4a23d08ed | Adam Borowski | 2011-07-02 23:51:30 +0200

Don't lose a turn when cancelling an airstrike or striking an immune target.
The latter applies only to those you can see, of course.

--------------------------------------------------------------------------------
f88fa49f5e | David Ploog | 2011-07-02 23:41:31 +0200

Price reform: scrolls.
Reasoning as for potions. Scroll of blinking is now at 55 (was 30).

--------------------------------------------------------------------------------
a6a84bc4e5 | Raphael Langella | 2011-07-02 23:33:01 +0200

Fix an issue with used items and Drop last.

--------------------------------------------------------------------------------
065b59a603 | David Ploog | 2011-07-02 23:13:07 +0200

Price reform: potions.
Besides having prices better fit value for useful potions, we also increase
the price of bad potions, so as to make identification in early shops a bit
less trivial.

TODO: Nemelex should not accept useless items (here potions), regardless of
      shop price.

--------------------------------------------------------------------------------
1cf0824c30 | David Ploog | 2011-07-02 22:56:00 +0200

A flurry of cross minivaults (roderic), #4061.
Also clean up des files some more.

--------------------------------------------------------------------------------
49424e3cd0 | David Ploog | 2011-07-02 22:55:59 +0200

Repair dpeg_entry_connections, #3902.

--------------------------------------------------------------------------------
74dad9940e | Chris Campbell | 2011-07-02 20:42:33 +0100

Remove an unecessary signature weapon check (monqy)
Since DD artificers already have OBJ_STAVES as signature weapons, it
doesn't seem unreasonable to imagine that there might be a unique or other
monster in the future that would use a rod/enhancer stave as their
signature weapon.

--------------------------------------------------------------------------------
3370e70d04 | Chris Campbell | 2011-07-02 20:28:50 +0100

Improve handling of monster signature weapons
Previously, monsters would never drop anything that qualified as a
signature weapon, even to upgrade to a better one (so Sigmund could never
upgrade to a nastier scythe, if one happened to be lying around). Now
monsters can upgrade, as long as the new weapon also fulfils the signature
weapon restrictions. A large number of comments in the existing code seem
to assume that this is how it worked already anyway!

--------------------------------------------------------------------------------
23083b86f2 | David Lawrence Ramsey | 2011-07-02 13:35:58 -0500

Typo fix.

--------------------------------------------------------------------------------
6555db8221 | Adam Borowski | 2011-07-02 20:30:53 +0200

Add an option to suppress distracting messages that give static spoilers.
These are currently:
* -cTele (explicit messages, info available elsewhere)
* (chaotic) (depends only on the monster type)
* (mindless) (depends only on the monster type)

--------------------------------------------------------------------------------
920f1da823 | Adam Borowski | 2011-07-02 20:04:32 +0200

Add the missing description of the Orb card.

--------------------------------------------------------------------------------
026548fb0f | Adam Borowski | 2011-07-02 19:58:09 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
48f2aa454c | Adam Borowski | 2011-07-02 19:30:49 +0200

Assert immediately when loading a save with an unknown monster.
Otherwise, the crash that happens later can be obscure.

--------------------------------------------------------------------------------
48430d354d | Chris Campbell | 2011-07-02 18:17:45 +0100

Clean up the orb's cTele blocking so that it's correctly displayed as a status 
light

--------------------------------------------------------------------------------
3cec8b618f | Hurcan Solter | 2011-07-02 18:17:42 +0100

Show -cTele in status lights.
Puts X in the resistances(%) overview.

--------------------------------------------------------------------------------
1efc7ea37c | David Ploog | 2011-07-02 18:41:52 +0200

Clear up des file names. (Zaba)
There is no need for prefixes like "serial" or "entry".

--------------------------------------------------------------------------------
a3ebcb68ca | David Ploog | 2011-07-02 18:38:18 +0200

New trap: Beogh altar (sevenhm); #3532.
Also update the monster door trap and apply additional changes.

--------------------------------------------------------------------------------
95d0a58529 | David Ploog | 2011-07-02 17:51:04 +0200

New trap vault: grates & monsters behind doors (7hm); #3532.

--------------------------------------------------------------------------------
36156b6836 | David Ploog | 2011-07-02 17:26:58 +0200

Cleaning up in variable/
Two new subfolders: serial/ and traps/

--------------------------------------------------------------------------------
3e1d1e1ae9 | Vsevolod Kozlov | 2011-07-02 18:46:48 +0400

Clean up the code in xom_trap.des.

--------------------------------------------------------------------------------
03aa1fe684 | David Lawrence Ramsey | 2011-07-02 09:29:54 -0500

Fix breakage.

--------------------------------------------------------------------------------
7706026d77 | David Ploog | 2011-07-02 16:26:39 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
6ed043dc57 | David Ploog | 2011-07-02 16:22:36 +0200

Warning about certain NSUBST declarations.
In general, you can (and should) reduce
NSUBST: A = 1:c / *=xvb
to
NSUBST: A = c / xvb

However, if the replacement string contains syntaxy symbols, then you have
to specify the N: preceding it. Example:
NSUBST: A = c / *=xv+=

--------------------------------------------------------------------------------
d98141ce9b | David Ploog | 2011-07-02 16:21:22 +0200

Ten forest & fort entry vaults (sevenhm); #3533.

--------------------------------------------------------------------------------
ff10640bbb | Raphael Langella | 2011-07-02 11:46:00 +0200

New command: (D)rop last. Drops the last item(s) picked up (ghallberg).

--------------------------------------------------------------------------------
fc8866f2c0 | Vsevolod Kozlov | 2011-07-02 09:59:08 +0400

Whitespace fixes in code.

--------------------------------------------------------------------------------
ba280a819e | Vsevolod Kozlov | 2011-07-02 09:56:15 +0400

Whitespace fixes in vaults.

--------------------------------------------------------------------------------
525e5dc15a | David Ploog | 2011-07-02 04:47:01 +0200

Entry vaults (roderic), #4062.

--------------------------------------------------------------------------------
484861f4f7 | David Ploog | 2011-07-02 04:09:47 +0200

Entry vaults (co), #3008.

--------------------------------------------------------------------------------
61aaa4442a | David Ploog | 2011-07-02 03:52:52 +0200

Slight change to autumnal temple (oiseaux), #3925.

--------------------------------------------------------------------------------
1e507a6a3c | David Ploog | 2011-07-02 03:41:38 +0200

New entry vault (oiseaux), #3926.

--------------------------------------------------------------------------------
61dc04a681 | David Ploog | 2011-07-02 03:33:47 +0200

Lemuel's castle randomised and sourced out (carwin), #3794.
Now it resides in a file of its own, given the size of the whole map.

--------------------------------------------------------------------------------
5d12b9c741 | David Ploog | 2011-07-02 02:56:02 +0200

Fix to tetris entry vault (Chamrin). #4016

--------------------------------------------------------------------------------
d4837a454a | David Ploog | 2011-07-02 02:44:58 +0200

Baroque Xom trap vault (7hm)
It contains a lua function to check whether a monster is in LOS. Is this
really needed?

--------------------------------------------------------------------------------
db6067f82e | David Ploog | 2011-07-02 01:23:42 +0200

Temple map (roderic)

--------------------------------------------------------------------------------
4c1b49797e | David Ploog | 2011-07-02 01:06:46 +0200

Ashenzari overflow vault (galehar).

--------------------------------------------------------------------------------
09ba6268b1 | David Ploog | 2011-07-02 00:38:16 +0200

Elf minivaults (minmay)
These are the first elf minivaults whatsoever so they might come up too
often. But they're of very high quality so I didn't reduce them.

--------------------------------------------------------------------------------
37850e7524 | David Ploog | 2011-07-02 00:13:17 +0200

New serial vault (ponds) by minmay.
Also add a note about empty DEPTH lines to documentation.

--------------------------------------------------------------------------------
00b03b3348 | David Ploog | 2011-07-01 23:49:12 +0200

Altar vaults by Brendan (bmh). #4010
Kilobyte points out that items on display (used in one of the new maps) are
troublesome (troves and Ashenzari) but other vaults do this too. Instead of
not using the nice vault I hope their existence will force us to close the
loop holes.

--------------------------------------------------------------------------------
11ab53c1e8 | David Ploog | 2011-07-01 23:26:15 +0200

Spiderweb vault patch (by Pete Hurst)
Fixed broken path (upper-right).
Moved LUA to before vaults.
Randomised monster sets and item placement.
Made safe path more meandering.
Slightly tweaked scenery randomisation.

--------------------------------------------------------------------------------
31905a829b | Raphael Langella | 2011-07-01 21:34:07 +0200

No scroll is useless if you don't know spellcasting.

--------------------------------------------------------------------------------
49bc7b7dec | Raphael Langella | 2011-07-01 21:33:57 +0200

Also let Mummy Stalkers get their starting potions.

--------------------------------------------------------------------------------
741e87be1f | Raphael Langella | 2011-07-01 21:14:36 +0200

Don't auto_switch to melee weapon if said weapon isn't in slot a or b.
Any melee weapon is better than a launcher, but if there isn't any melee
weapon in slot a and b, then it's probably a user error. Best to give a
prompt rather than switching to any random weapon.

--------------------------------------------------------------------------------
58a5468c60 | Raphael Langella | 2011-07-01 21:11:51 +0200

Fix auto_switch not handling time properly.

--------------------------------------------------------------------------------
3aff67ebd4 | elliptic | 2011-06-30 23:49:53 -0400

Record which skills are at least 15 in the logfile.

--------------------------------------------------------------------------------
77a882d1ff | David Ploog | 2011-07-01 02:17:08 +0200

Add new spider vault (mumra).

--------------------------------------------------------------------------------
05cb01dc96 | David Ploog | 2011-07-01 01:22:30 +0200

Fix dpeg_entry_water_fire (#4153, zorbathut).

--------------------------------------------------------------------------------
f9b079813f | Chris Campbell | 2011-06-30 23:22:14 +0100

Don't acquire the book of Brands while AM is disabled

--------------------------------------------------------------------------------
490df82196 | Chris Campbell | 2011-06-30 23:22:13 +0100

Clean up some starting equipment for Gl and Hu
Allow Gl to get a cap if they can't wear a helmet, don't give certain
Hu much stronger melee weapons than others.

--------------------------------------------------------------------------------
3894929386 | Chris Campbell | 2011-06-30 23:22:13 +0100

Make HOPr always start with Beogh, remove god selection menus
With the theme justification that there are no temples to Zin in the
orcish lands, or something. Since previously they were only used for
HOPr to choose between Zin and Beogh, this allows the removal of god
selection menus on character creation.

--------------------------------------------------------------------------------
c3a61be30e | Raphael Langella | 2011-06-30 20:52:40 +0200

Fix ranged AI not handling properly spells with smite targetting.

--------------------------------------------------------------------------------
bbe46e6ab5 | Raphael Langella | 2011-06-30 20:52:40 +0200

autoswitch renamed to auto_switch, cleaned up, simplified and documented.

--------------------------------------------------------------------------------
763509e13f | Hurcan Solter | 2011-06-30 20:52:25 +0200

* Implementable: launcher/weapon autoswitching
Switching from melee to ranged only considered
if ranged weapon is in slot A or B and the melee
weapon is in B or A.
Switching from ranged to melee picks first melee
weapon (behaviour is as above if A or B slot  contains
a melee weapon) Rationale is you don't lose much
by switching to any melee weapon with respect to ranged
one.
Added autoswitch option. Enabled by default.There was
a duplicate easy_open entry l_option.cc.

Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
ff60c7c7d9 | David Lawrence Ramsey | 2011-06-30 10:23:58 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
54128e94d1 | Raphael Langella | 2011-06-30 13:49:34 +0200

Add some monsters to mons_has_ranged_ability() (#3813).

--------------------------------------------------------------------------------
61f80282f1 | Raphael Langella | 2011-06-30 13:07:44 +0200

Add a generic mons_has_ranged_attack() function and use it where appropriate.

--------------------------------------------------------------------------------
0269c717b8 | Raphael Langella | 2011-06-30 13:07:44 +0200

Rename mons_has_ranged_attack to mons_has_ranged_weapon.

--------------------------------------------------------------------------------
8c03d89149 | Adam Borowski | 2011-06-30 08:57:16 +0200

Actually add the png file for inner_flame icon.
It was in my working tree, so all testing succeeded...

--------------------------------------------------------------------------------
c378cea417 | elliptic | 2011-06-29 19:43:47 -0400

Allow snapping turtles and Geryon to reach diagonally.
This was inconsistent with all other reaching and led to silly things like
approaching snapping turtles diagonally to get the first hit.

--------------------------------------------------------------------------------
e3d509f8f4 | Adam Borowski | 2011-06-30 01:20:27 +0200

Denzi's icon for inner flame on monsters.
Also, rename the sticky flame icon to disambiguate.

--------------------------------------------------------------------------------
b93d4203d4 | elliptic | 2011-06-29 19:04:03 -0400

Make the chance of reaching past a monster not depend on the type of weapon 
used.

--------------------------------------------------------------------------------
0708a4559a | elliptic | 2011-06-29 19:04:03 -0400

Allow monsters to block knight-move reaching attempts.
This was still abusable to kill strong monsters by hiding behind weak ones.

--------------------------------------------------------------------------------
35c37583d2 | Adam Borowski | 2011-06-29 23:42:57 +0200

A description for skalds in the manual (sync via wiki)

--------------------------------------------------------------------------------
34d41e6155 | Adam Borowski | 2011-06-29 23:42:57 +0200

Mention Ashenzari's sensed monsters among redefinable ones.

--------------------------------------------------------------------------------
636fd5c97b | elliptic | 2011-06-29 16:51:42 -0400

Make killing snakes created by Sticks to Snakes give no piety (Mantis 3913).

--------------------------------------------------------------------------------
fbf04a0a6f | Adam Borowski | 2011-06-29 21:49:52 +0200

Show found runes on '\'.

--------------------------------------------------------------------------------
67a1587112 | Adam Borowski | 2011-06-29 21:49:52 +0200

Denzi's tiles for Inner Flame and Shroud of Golubria.

--------------------------------------------------------------------------------
91804b11fa | Adam Borowski | 2011-06-29 21:48:59 +0200

A few insults for Azrael.

--------------------------------------------------------------------------------
26d9367116 | Adam Borowski | 2011-06-29 21:48:59 +0200

#ifdef away the Okawaru piety experiment, don't spam.
These changes are not for 0.9.

The version inside the #ifdefs is the one that merely reduces rather than
removes gains for weak monsters, too -- almost surely not what we want.
I put it there to investigate why piety gain on the first few levels is so
low.  Data already gathered on CDO from real games should help adjust that.

--------------------------------------------------------------------------------
06f58a8766 | Adam Borowski | 2011-06-29 21:48:59 +0200

Add missing info about Tornado noise.

--------------------------------------------------------------------------------
a233d04367 | Adam Borowski | 2011-06-29 21:48:59 +0200

Fix a warning.

--------------------------------------------------------------------------------
3b1f732b6d | David Lawrence Ramsey | 2011-06-29 12:44:42 -0500

Add a better fix for shapeshifters' having both shapeshifting enchantments.
Shapeshifting from a normal shapeshifter to a glowing one or vice versa
is now banned via _valid_morph().

--------------------------------------------------------------------------------
037287588e | David Lawrence Ramsey | 2011-06-29 12:16:13 -0500

Fix shapeshifter inconsistencies.
In fill_out_corpse(), check for glowing shapeshifters before non-glowing
ones, for consistency with checks elsewhere.  Also, since a glowing
shapeshifter can turn into a shapeshifter, or vice versa, ensure that a
monster can't have both shapeshifter enchantments at the same time.

--------------------------------------------------------------------------------
0edd0bf981 | Chris Campbell | 2011-06-29 14:48:41 +0100

Fix missing death message for inner flame, reduce damage a bit for tiny monsters

--------------------------------------------------------------------------------
9225c0aa3a | elliptic | 2011-06-28 19:36:37 -0400

Fix assorted bugs with multiplicative brands in ranged combat.
The main thing here is fixing elemental brands (flame/frost) so that they
actually do extra damage as intended... previously they were usually worse
than having no brand at all. The intended amount of extra damage given in
the code was +50%, but +40% seems more in line with other brands.

Other things fixed:
* Make flame/frost launchers and ammo cancel out (disabling this seems to have
  been unintentional).
* Reduce vorpal damage from +30% to +20%, to compensate for the 0.8 speed
  brand nerf hurting speed launchers.
* Reduce steel damage from +50% to +30% for javelins and for monsters, since
  the 0.8 steel nerf didn't get applied to those cases.

--------------------------------------------------------------------------------
cc8bf54d03 | Adam Borowski | 2011-06-29 00:52:04 +0200

Re-wrap too long lines in the manual.

--------------------------------------------------------------------------------
ffa7a02ef0 | Adam Borowski | 2011-06-29 00:52:04 +0200

Build the manual from reST source.
To update it from the wiki, please run "make rest" by hand.  It does web
scraping and thus might be vulnerable to changes in doku, beware!

--------------------------------------------------------------------------------
3ebe9e6248 | Raphael Langella | 2011-06-28 23:40:16 +0200

Also reduce the berserk chance for angry randarts.

--------------------------------------------------------------------------------
7270266319 | Raphael Langella | 2011-06-28 23:40:16 +0200

Reduce the frequency at which berserkitis triggers.
It was 5% / 15% / 25% chance to trigger per attack.
Reduced to 1% / 3% / 9%.

--------------------------------------------------------------------------------
fa8b5672af | elliptic | 2011-06-28 16:35:03 -0400

Disable quad damage generation outside of Sprint again.
A misc item of this sort could be good if it had better flavour and balance,
though.

--------------------------------------------------------------------------------
52086248bd | David Lawrence Ramsey | 2011-06-28 11:41:20 -0500

Fix temporarily invisible monsters keeping invisibility after polymorph.
The check for permanent invisibility isn't enough; the invisibility
enchantment is now quietly and forcibly removed for *all* monsters
before their transformation.

--------------------------------------------------------------------------------
a35fd431d1 | David Lawrence Ramsey | 2011-06-28 11:22:30 -0500

Fix compilation (oops).

--------------------------------------------------------------------------------
8ce117226e | David Lawrence Ramsey | 2011-06-28 11:02:14 -0500

Fix two corner cases where invisibility could be removed from M_INVIS monsters.
First, the enchantment no longer disappears with time, and, second, it
is no longer dispelled in debuff_monster() (which is used by e.g.
scrolls of vulnerability).

This should fix Mantis 4190.

--------------------------------------------------------------------------------
ef15354894 | David Lawrence Ramsey | 2011-06-28 10:41:26 -0500

Add indentation fixes.

--------------------------------------------------------------------------------
827f9869cd | David Lawrence Ramsey | 2011-06-28 10:09:35 -0500

Add utility function is_whip_type(), and use it for all whip special cases.

--------------------------------------------------------------------------------
286b85380c | David Lawrence Ramsey | 2011-06-28 09:41:53 -0500

Clean up range_skill() a bit.
It now returns SK_THROWING for all missile types that don't require
launchers, instead of SK_THROWING for darts (possibly a replaced
holdover for when SK_DARTS still existed?), SK_POLEARMS for javelins,
and a fallthrough to SK_THROWING for everything else.

Accordingly, use this to simplify initial skill setting for hunters.

--------------------------------------------------------------------------------
4de6b958ad | David Lawrence Ramsey | 2011-06-28 08:56:43 -0500

Fix weapon EV bonus for sacred scourges: it's now the same as whips/demon whips.

--------------------------------------------------------------------------------
1fb5ae23b3 | Raphael Langella | 2011-06-28 12:37:38 +0200

Revert "Make Tornado Conj/Air again."
This reverts commit 0ba1937e2370dd8f1e2271715c3e774b9500ba64.

--------------------------------------------------------------------------------
85c4559d5d | Raphael Langella | 2011-06-28 12:36:34 +0200

Simplify.

--------------------------------------------------------------------------------
20e7c3e200 | Raphael Langella | 2011-06-28 12:32:34 +0200

Swap the range of throw flame and throw frost.

--------------------------------------------------------------------------------
97a90aa546 | Raphael Langella | 2011-06-28 12:32:34 +0200

Swap the ranges of bolt of fire and bolt of cold.

--------------------------------------------------------------------------------
ee1b58cc0d | Raphael Langella | 2011-06-28 12:32:34 +0200

Confused high intelligent monsters don't move if they are next to a deadly cell.

--------------------------------------------------------------------------------
39ab63af6e | Raphael Langella | 2011-06-28 12:32:34 +0200

Fix spiders sometimes drowning themselves (#3830).

--------------------------------------------------------------------------------
00e617c883 | Raphael Langella | 2011-06-28 12:32:34 +0200

Fix spiders unable to swap place over deep water.

--------------------------------------------------------------------------------
956394b91d | elliptic | 2011-06-28 03:53:55 -0400

Make show_map() more consistent.
Previously map-based targetting gave an advantage to players using larger
terminals in console (see Mantis 4180) and also to players playing tiles,
by allowing them to target more squares. In addition, it leaked information
to tiles players about their north/south position on the map.

This commit makes the set of map-targetable squares not depend on any of these
interface choices, which also removes the tiles information leak. The chosen
set is simply the smallest rectangle that contains every square visible
on the map.

This is a nerf to effects such as controlled teleports that used the map to
target, but you rarely wanted to make a controlled teleport outside of the
known parts of the map unless you had looked up a vault layout and counted
squares... which was not a good thing anyway.

--------------------------------------------------------------------------------
bec177b566 | elliptic | 2011-06-27 22:57:02 -0400

Add a milestone for reaching ****** piety.
Also we now keep track of the maximum piety attained with each god, which
seems potentially useful in its own right (for scaling wrath, say).

--------------------------------------------------------------------------------
8ee289483b | Raphael Langella | 2011-06-28 01:36:32 +0200

Increase base HP by +3.

--------------------------------------------------------------------------------
6826cf6aac | Raphael Langella | 2011-06-28 01:36:32 +0200

Allow redefining crawl_dir for builds with SAVE_DIR_PATH (#4137).
This fix the windows installer ignoring save_dir and morgue_dir options, -dir
command line option and CRAWL_DIR environnement variable.
It made sense when we had multi-users install, but not anymore.

--------------------------------------------------------------------------------
9d1860e8cd | Raphael Langella | 2011-06-28 01:36:32 +0200

Update the training simulator with Cr -> Sk.

--------------------------------------------------------------------------------
e17dc81654 | Chris Campbell | 2011-06-27 08:28:53 +0100

Make Inner Flame harder to resist, highlight affected monsters to help prevent 
accidentally exploding them in melee

--------------------------------------------------------------------------------
f5743ffc82 | elliptic | 2011-06-26 20:35:31 -0400

Print a message when a letter is assigned to a spell automatically.
Still no message for default assignment.

--------------------------------------------------------------------------------
cf6adf31be | Adam Borowski | 2011-06-27 01:09:12 +0200

Remove an obsolete check for unided staves.

--------------------------------------------------------------------------------
3fa676a71e | Adam Borowski | 2011-06-27 01:07:57 +0200

Fix auto-id of rings of fire/ice looking at the wrong property.

--------------------------------------------------------------------------------
949a3e5385 | Raphael Langella | 2011-06-26 23:34:04 +0200

Remove another special case in training code.
There was a discount for throwing, bows and crossbows because they are
supposedly hard to train in the late game because of ammo requirement.
Sounds quite obsolete.

--------------------------------------------------------------------------------
1cd2159d2a | elliptic | 2011-06-26 16:01:35 -0400

Automatic spell letter assignment.

--------------------------------------------------------------------------------
745bbc4d9d | David Lawrence Ramsey | 2011-06-26 13:57:53 -0500

Fix Mantis 4173.
The fix is twofold.  A permanently invisible monster can now have its
invisibility enchantment removed via del_ench().  (Since that
invisibility enchantment is added when such a monster is first placed,
and blocked from decaying, this should have no ill effects elsewhere.)
Furthermore, when polymorphing such a monster into a non-permanently
invisible monster, this is actually used: the invisibility is properly
removed, with no messages displayed.

--------------------------------------------------------------------------------
3df42d5b69 | David Lawrence Ramsey | 2011-06-26 13:57:52 -0500

Comment fix.

--------------------------------------------------------------------------------
261a6d2d55 | Vsevolod Kozlov | 2011-06-26 21:42:11 +0400

Move the exit from ossuary_zaba_flooded to the same room as the entrance.
The room that used to have the exit is now full of monsters, just to make
people think twice before calling my vaults "misdesigned"...

--------------------------------------------------------------------------------
cf5663617f | Chris Campbell | 2011-06-26 17:33:43 +0100

Even out CK's initial fighting/weapon skills
3 fighting, 3 weapon skill instead of 4 fighting, 2 weapon skill.

--------------------------------------------------------------------------------
61bda3e524 | Florian Diebold | 2011-06-26 17:41:33 +0200

Fix the minimap sometimes wrongly being hidden.

--------------------------------------------------------------------------------
d993aee2f4 | Florian Diebold | 2011-06-26 17:41:33 +0200

Don't show the minimap when the level is not mappable.

--------------------------------------------------------------------------------
7d66c7f80b | Florian Diebold | 2011-06-26 17:41:32 +0200

Improve performance by only rendering out-of-view cells when update_minimap is 
called.

--------------------------------------------------------------------------------
392f40e7a3 | Florian Diebold | 2011-06-26 17:41:32 +0200

Fix a small glitch with rendering large tiles.

--------------------------------------------------------------------------------
2514916f79 | Florian Diebold | 2011-06-26 17:41:32 +0200

Some makefile changes; add webserver-clean target.

--------------------------------------------------------------------------------
75352414cf | Florian Diebold | 2011-06-26 17:41:32 +0200

Remove a warning about initialization order in tiles.

--------------------------------------------------------------------------------
d7926ce57c | Florian Diebold | 2011-06-26 17:41:32 +0200

Whitespace fixes (checkwhite).

--------------------------------------------------------------------------------
2608d1d1a0 | Florian Diebold | 2011-06-26 17:41:32 +0200

Fix tiles compilation.

--------------------------------------------------------------------------------
ad4ded769e | Florian Diebold | 2011-06-26 17:41:32 +0200

Revert a whitespace change to CREDITS.txt.

--------------------------------------------------------------------------------
276690d3df | Florian Diebold | 2011-06-26 17:41:32 +0200

Fix console compilation.

--------------------------------------------------------------------------------
ec7dfa9a3e | Florian Diebold | 2011-06-26 17:41:32 +0200

Improve the minimap a bit.
To really fix some issues, the server will need to send more feature
data, though.

--------------------------------------------------------------------------------
63b13ec150 | Florian Diebold | 2011-06-26 17:41:32 +0200

Remove the hack to render the whole map into craw_view.vbuf.
Instead, the cells not in crawl_view.vbuf are now rendered in
load_dungeon.

--------------------------------------------------------------------------------
e8b245539e | Florian Diebold | 2011-06-26 17:41:32 +0200

In webtiles, add OOR flags only to visible tiles.

--------------------------------------------------------------------------------
a3c5e4b09f | Florian Diebold | 2011-06-26 17:41:32 +0200

Fix the minimap not being fully displayed.

--------------------------------------------------------------------------------
76e9e737d3 | Florian Diebold | 2011-06-26 17:41:32 +0200

Don't send flash_colour per tile -- it's the same everywhere anyway.

--------------------------------------------------------------------------------
8298f03994 | Florian Diebold | 2011-06-26 17:41:32 +0200

Fix the layout being messed up when starting a new game.

--------------------------------------------------------------------------------
028b8d79c2 | Florian Diebold | 2011-06-26 17:41:32 +0200

Abstract sending of messages into its own function(s).

--------------------------------------------------------------------------------
4489ce029c | Florian Diebold | 2011-06-26 17:41:32 +0200

Update the minimap overlay when the view area changes (again).

--------------------------------------------------------------------------------
add7ad7689 | Florian Diebold | 2011-06-26 17:41:32 +0200

Don't leak information about unknown water tiles.

--------------------------------------------------------------------------------
2c98d5e315 | Florian Diebold | 2011-06-26 17:41:31 +0200

Don't leak exact map coordinates; center the minimap on the known area.

--------------------------------------------------------------------------------
ee47c374aa | Florian Diebold | 2011-06-26 17:41:31 +0200

First minimap implementation.
This still uses tile indices for the minimap and thus isn't as
accurate as it could be. The server should probably send feature data.

--------------------------------------------------------------------------------
7433dfc689 | Florian Diebold | 2011-06-26 17:41:31 +0200

Add a debug function.

--------------------------------------------------------------------------------
c1da5432b6 | Florian Diebold | 2011-06-26 17:41:31 +0200

Clear the map when changing levels.

--------------------------------------------------------------------------------
a2c7c939e9 | Florian Diebold | 2011-06-26 17:41:31 +0200

Fix a bug when shifting the view area by too much.

--------------------------------------------------------------------------------
7fdec98f33 | Florian Diebold | 2011-06-26 17:41:31 +0200

Delay messages until the client is loaded.

--------------------------------------------------------------------------------
5d8c2980b9 | Florian Diebold | 2011-06-26 17:41:31 +0200

Only send flavour for cells that need it.

--------------------------------------------------------------------------------
11b6330a41 | Florian Diebold | 2011-06-26 17:41:31 +0200

Fix the tile flavour not being sent.

--------------------------------------------------------------------------------
d2ea3127a7 | Florian Diebold | 2011-06-26 17:41:31 +0200

Don't send tile data for completely unseen tiles.

--------------------------------------------------------------------------------
4fff6730bb | Florian Diebold | 2011-06-26 17:41:31 +0200

Don't put overlays on unseen tiles.

--------------------------------------------------------------------------------
1c9eff168e | Florian Diebold | 2011-06-26 17:41:31 +0200

Fix watchers joining from the lobby.

--------------------------------------------------------------------------------
d295bb1731 | Florian Diebold | 2011-06-26 17:41:31 +0200

Fix spectator joining.

--------------------------------------------------------------------------------
beb3a4e891 | Florian Diebold | 2011-06-26 17:41:31 +0200

Render and send the whole map.

--------------------------------------------------------------------------------
20fc31cb8d | Florian Diebold | 2011-06-26 17:41:31 +0200

Don't load an empty view buffer in webtiles.
It may be necessary in local tiles, but it isn't in webtiles.

--------------------------------------------------------------------------------
13dff7ee9b | Florian Diebold | 2011-06-26 17:41:31 +0200

Disable alt key combinations, since it's currently not working and causes #4075.

--------------------------------------------------------------------------------
13db276196 | Florian Diebold | 2011-06-26 17:41:31 +0200

Don't handle numpad keys with numlock twice in FF.

--------------------------------------------------------------------------------
d6db144fb1 | Florian Diebold | 2011-06-26 17:41:30 +0200

Fix table row hover style.

--------------------------------------------------------------------------------
0ba4044fca | Florian Diebold | 2011-06-26 17:41:30 +0200

Add a non-dgl mode in which crawl is immediately started, without options.

--------------------------------------------------------------------------------
79cb72d700 | Florian Diebold | 2011-06-26 17:41:30 +0200

"Remember me" -> "Stay logged in".

--------------------------------------------------------------------------------
f9eed53cdb | Florian Diebold | 2011-06-26 17:41:30 +0200

Fix exception in error reporting when drawing a cell fails.

--------------------------------------------------------------------------------
9b88c290ec | Florian Diebold | 2011-06-26 17:41:30 +0200

Fix numrow and ^ behavior.

--------------------------------------------------------------------------------
a8dd7c12c6 | Florian Diebold | 2011-06-26 17:41:30 +0200

Immediately display changes to the player doll.

--------------------------------------------------------------------------------
af49dfc847 | Florian Diebold | 2011-06-26 17:41:30 +0200

Re-add the normal number row.

--------------------------------------------------------------------------------
94df5ab4fc | Florian Diebold | 2011-06-26 17:41:30 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
20c3a1c29c | Florian Diebold | 2011-06-26 17:41:30 +0200

"Remember me" function.
This sets a cookie with a token which can then be used to login (once)
the next time.

--------------------------------------------------------------------------------
ff972c8af0 | Florian Diebold | 2011-06-26 17:41:30 +0200

Make "maximum number of connections" error really appear.

--------------------------------------------------------------------------------
ff5f180aa2 | Florian Diebold | 2011-06-26 17:41:30 +0200

Handle shift+numpad and ctrl+numpad.

--------------------------------------------------------------------------------
74967c60d0 | Florian Diebold | 2011-06-26 17:41:30 +0200

Fix an overlooked instance of the format tag bug.

--------------------------------------------------------------------------------
e56f43601e | Florian Diebold | 2011-06-26 17:41:30 +0200

Highlight the game the mouse points at.

--------------------------------------------------------------------------------
e934d9b30d | Florian Diebold | 2011-06-26 17:41:30 +0200

Fix an exception after killing crawl.

--------------------------------------------------------------------------------
612d21c86f | Florian Diebold | 2011-06-26 17:41:30 +0200

Fix the last commit.

--------------------------------------------------------------------------------
1f770036d2 | Florian Diebold | 2011-06-26 17:41:30 +0200

Handle exceptions when trying to write to a websocket.

--------------------------------------------------------------------------------
7ab32bb31f | Florian Diebold | 2011-06-26 17:41:30 +0200

Reimplement crawl prefix autodetection.
The previous attempt did not allow the crawl -version call to be
interactive. Now, the crawl binary (or a script which wraps it) needs
to print a line of the form
^ClientPrefix: (version)
which will then be interpreted by the server.

--------------------------------------------------------------------------------
e3ff9c5959 | Florian Diebold | 2011-06-26 17:41:30 +0200

Send the client a message when crawl has been started.

--------------------------------------------------------------------------------
9ee663f557 | Florian Diebold | 2011-06-26 17:41:29 +0200

First add the file handlers, then log about it.
This prevents a problem in the unlikely case that the log causes an
exception.

--------------------------------------------------------------------------------
6e1f84ffc6 | Florian Diebold | 2011-06-26 17:41:29 +0200

Allow setting the client prefix in the server configuration, and autodetect it.
If client_prefix is not set for a game, the server will call crawl
with the -version parameter, parse the output and use the crawl
version as prefix.

--------------------------------------------------------------------------------
3143e3c1f7 | Florian Diebold | 2011-06-26 17:41:29 +0200

Make it possible to load different versions of the game client.
This also moves the templates into their own folder.

Version-specific files are in subdirs of the static resp. templates folders. A
specific version can then be loaded with the javascript function
load_game_client, passing the name of the subdirectory. Currently, the client
prefix is still hardcoded to "game", but this lays the foundation to handle
multiple crawl versions correctly.

--------------------------------------------------------------------------------
03560809cb | Florian Diebold | 2011-06-26 17:41:29 +0200

Send differences in text areas per-line.

--------------------------------------------------------------------------------
55e834b109 | Florian Diebold | 2011-06-26 17:41:29 +0200

Center the table caption again.

--------------------------------------------------------------------------------
6b6b9b0c7a | Florian Diebold | 2011-06-26 17:41:29 +0200

Move the table caption out of the table.

--------------------------------------------------------------------------------
f4706278d3 | Florian Diebold | 2011-06-26 17:41:29 +0200

Use thead and tbody tags in the game table.

--------------------------------------------------------------------------------
fe8b069cd9 | Florian Diebold | 2011-06-26 17:41:29 +0200

Handle tiles higher than 32px correctly.

--------------------------------------------------------------------------------
967b844704 | Florian Diebold | 2011-06-26 17:41:29 +0200

Fix positioning of large tiles.

--------------------------------------------------------------------------------
21523e2d47 | Florian Diebold | 2011-06-26 17:41:29 +0200

Only show the confirmation prompt while the websocket is open.

--------------------------------------------------------------------------------
b4aab472f7 | Florian Diebold | 2011-06-26 17:41:29 +0200

Remove mentions of right-click in webtiles.

--------------------------------------------------------------------------------
ba38f7095a | Florian Diebold | 2011-06-26 17:41:29 +0200

Fix format tags appearing in inventory headings.
This also would have occured in console crawl, if it hadn't been
disabled. Since this fixes the problem, I enabled the colour tags for
console crawl, too.

--------------------------------------------------------------------------------
856693e243 | Florian Diebold | 2011-06-26 17:41:29 +0200

Add a confirmation prompt when closing the tab while crawl is running.
This is mainly because people might press ctrl+W to set a waypoint and
thus accidentally close the tab.

--------------------------------------------------------------------------------
889cef6e35 | Florian Diebold | 2011-06-26 17:41:29 +0200

Fix backspace being sent twice in FF.

--------------------------------------------------------------------------------
f43f0a1012 | Florian Diebold | 2011-06-26 17:41:29 +0200

Allow choosing between multiple game versions and game-modes such as sprint or 
ZD.

--------------------------------------------------------------------------------
1a5a9cf20b | Florian Diebold | 2011-06-26 17:41:29 +0200

Always send a layout when crawl asks.
This fixes a crawl crash when starting the game after having watched
someone else, although crawl should also be made more resilient.

--------------------------------------------------------------------------------
1b825b3530 | Florian Diebold | 2011-06-26 17:41:28 +0200

Remove the Esc: back to game message from client.html, fix the spectator list 
style.

--------------------------------------------------------------------------------
9b9fa6fb00 | Florian Diebold | 2011-06-26 17:41:28 +0200

Replace message count by "(Esc: back to game)" when the chat window is open.

--------------------------------------------------------------------------------
bae4bd9e80 | Florian Diebold | 2011-06-26 17:41:28 +0200

Fix the message count staying green after quitting the game.

--------------------------------------------------------------------------------
25b914bd4e | Florian Diebold | 2011-06-26 17:41:28 +0200

Reset idle time when crawl is started.

--------------------------------------------------------------------------------
6c013a64bf | Florian Diebold | 2011-06-26 17:41:28 +0200

Don't kill crawl if it is restarted within 10 seconds of stopping it.

--------------------------------------------------------------------------------
ae36b8cda7 | Florian Diebold | 2011-06-26 17:41:28 +0200

Fix rendering of certain centaur doll parts.

--------------------------------------------------------------------------------
b19be697b2 | Florian Diebold | 2011-06-26 17:41:28 +0200

Make rendering more resilient against errors.

--------------------------------------------------------------------------------
dbc6006205 | Florian Diebold | 2011-06-26 17:41:28 +0200

Close chat when leaving the game.

--------------------------------------------------------------------------------
41aa28862d | Florian Diebold | 2011-06-26 17:41:28 +0200

Two cosmetic changes.

--------------------------------------------------------------------------------
5ffdc411a5 | Florian Diebold | 2011-06-26 17:41:28 +0200

Mention that escape goes back to the game in the chat window.

--------------------------------------------------------------------------------
060838a031 | Florian Diebold | 2011-06-26 17:41:28 +0200

Fix chat scrolling.

--------------------------------------------------------------------------------
e8e094410c | Florian Diebold | 2011-06-26 17:41:28 +0200

Two small cosmetic changes.

--------------------------------------------------------------------------------
c3027e0b90 | Florian Diebold | 2011-06-26 17:41:28 +0200

Clear the chat when going back to the lobby.

--------------------------------------------------------------------------------
c26dbe518f | Florian Diebold | 2011-06-26 17:41:28 +0200

Make the message status more readable.

--------------------------------------------------------------------------------
814d805b0f | Florian Diebold | 2011-06-26 17:41:27 +0200

Fix the chat link in firefox.

--------------------------------------------------------------------------------
72d83f7a94 | Florian Diebold | 2011-06-26 17:41:27 +0200

Fix a bug introduced by commit f4eae89f.

--------------------------------------------------------------------------------
10341d4930 | Florian Diebold | 2011-06-26 17:41:27 +0200

Allow pressing _ to focus the chat, escape to leave it.

--------------------------------------------------------------------------------
16be4bce63 | Florian Diebold | 2011-06-26 17:41:27 +0200

Implement chat.

--------------------------------------------------------------------------------
38b547b65d | Florian Diebold | 2011-06-26 17:41:27 +0200

Fix #3960: Pressing escape to leave spectator mode closed the connection in FF4.

--------------------------------------------------------------------------------
d89534b4fd | Florian Diebold | 2011-06-26 17:41:27 +0200

Don't capture F11, it's used for fullscreen.

--------------------------------------------------------------------------------
80c8dfddd4 | Florian Diebold | 2011-06-26 17:41:27 +0200

Make ghosts a bit more transparent.

--------------------------------------------------------------------------------
fdb22f882b | Florian Diebold | 2011-06-26 17:41:27 +0200

Leave a bit of vertical space for margins.

--------------------------------------------------------------------------------
0a624c4dcc | Florian Diebold | 2011-06-26 17:41:27 +0200

Fix a rendering bug.

--------------------------------------------------------------------------------
08332bb37a | Florian Diebold | 2011-06-26 17:41:27 +0200

Fix text areas sending a <br> at the end and thus being one line too large.

--------------------------------------------------------------------------------
a475d25051 | Florian Diebold | 2011-06-26 17:41:27 +0200

Fix a bug introduced by c5c800dc.

--------------------------------------------------------------------------------
e7ffb055b2 | Florian Diebold | 2011-06-26 17:41:27 +0200

Add hashbang to server.py and make it executable.

--------------------------------------------------------------------------------
aa6f613df1 | Florian Diebold | 2011-06-26 17:41:26 +0200

Fix #3952.
Special keys like F1 emit a superfluous keypress event in Firefox,
ignore it.

--------------------------------------------------------------------------------
d811e60f15 | Florian Diebold | 2011-06-26 17:41:26 +0200

Log when a call blocks.

--------------------------------------------------------------------------------
218e92e48d | Florian Diebold | 2011-06-26 17:41:26 +0200

Adapt the CRT layer (i.e. inventory, religion, ...) to the window size.
This still has the bug that if the window is resized while the game is
in the CRT layer, the screen is emptied. This won't be easily fixed
since crawl will have to redraw the screen while in the menu when it
happens.

--------------------------------------------------------------------------------
637607706d | Florian Diebold | 2011-06-26 17:41:26 +0200

Make the stats area position:absolute so it isn't put below the canvas.

--------------------------------------------------------------------------------
832ba07e74 | Florian Diebold | 2011-06-26 17:41:26 +0200

Fix rendering of swamp trees.

--------------------------------------------------------------------------------
21e62bb8a7 | Florian Diebold | 2011-06-26 17:41:26 +0200

Add a limit for idle time after which crawl is stopped.

--------------------------------------------------------------------------------
af0fa76523 | Florian Diebold | 2011-06-26 17:41:26 +0200

Fix a display bug.

--------------------------------------------------------------------------------
3952d7d535 | Florian Diebold | 2011-06-26 17:41:26 +0200

Render the shutdown message from a template.

--------------------------------------------------------------------------------
66ce9d66d9 | Florian Diebold | 2011-06-26 17:41:26 +0200

Better logging.

--------------------------------------------------------------------------------
6ff3c4d80c | Florian Diebold | 2011-06-26 17:41:26 +0200

Fix the keep-alive message being considered as activity for idle-time.

--------------------------------------------------------------------------------
a2a82e7b38 | Marc H. Thoben | 2011-06-26 17:41:26 +0200

Change name to WebTiles.

--------------------------------------------------------------------------------
b75470b563 | Florian Diebold | 2011-06-26 17:41:26 +0200

List the browsers that can run webtiles.

--------------------------------------------------------------------------------
757b26b6ca | Florian Diebold | 2011-06-26 17:41:26 +0200

Add a footer.

--------------------------------------------------------------------------------
b093ba8bfd | Florian Diebold | 2011-06-26 17:41:26 +0200

Dynamically reload page templates.

--------------------------------------------------------------------------------
88f264bccb | Florian Diebold | 2011-06-26 17:41:26 +0200

New style for links.

--------------------------------------------------------------------------------
7e56a04aa0 | Florian Diebold | 2011-06-26 17:41:26 +0200

Don't use pre, instead just replace spaces by &nbsp;.

--------------------------------------------------------------------------------
937e94e6f9 | Florian Diebold | 2011-06-26 17:41:25 +0200

Hide the login form after registering.

--------------------------------------------------------------------------------
cdea1f61c6 | Florian Diebold | 2011-06-26 17:41:25 +0200

Add logging when a user is registered.

--------------------------------------------------------------------------------
adcd3eeb72 | Florian Diebold | 2011-06-26 17:41:25 +0200

Allow only accepting ssl connections.

--------------------------------------------------------------------------------
fa300dbbeb | Florian Diebold | 2011-06-26 17:41:25 +0200

Make register cancelable.

--------------------------------------------------------------------------------
b7c2f2a1bb | Florian Diebold | 2011-06-26 17:41:25 +0200

Make links more readable.

--------------------------------------------------------------------------------
079634fbcd | Florian Diebold | 2011-06-26 17:41:25 +0200

Use pre for the "where" column.

--------------------------------------------------------------------------------
63288c0534 | Florian Diebold | 2011-06-26 17:41:25 +0200

Add more requirements for usernames and passwords.

--------------------------------------------------------------------------------
fe1c0c6b90 | Florian Diebold | 2011-06-26 17:41:25 +0200

Allow registering new users through the web interface.

--------------------------------------------------------------------------------
c42d1b6294 | Florian Diebold | 2011-06-26 17:41:25 +0200

Call a program to initialize the user before starting crawl.

--------------------------------------------------------------------------------
6574fb87ba | Florian Diebold | 2011-06-26 17:41:25 +0200

Add the missing status_file_update_rate setting to config.py.

--------------------------------------------------------------------------------
3ae003c5c7 | Florian Diebold | 2011-06-26 17:41:25 +0200

Add a newline after each entry in the status file.

--------------------------------------------------------------------------------
7847047317 | Florian Diebold | 2011-06-26 17:41:25 +0200

Update the status file in regular intervals.

--------------------------------------------------------------------------------
aca96a9527 | Florian Diebold | 2011-06-26 17:41:25 +0200

Strip trailing whitespace off the where info.

--------------------------------------------------------------------------------
7ebea4e143 | Florian Diebold | 2011-06-26 17:41:25 +0200

Fix the filenames for the mock ttyrecs.

--------------------------------------------------------------------------------
cfdd78638b | Florian Diebold | 2011-06-26 17:41:25 +0200

Change the game id, write 0x0 as term size, and a small error handling fix.

--------------------------------------------------------------------------------
2410196e18 | Florian Diebold | 2011-06-26 17:41:24 +0200

Add a banner.html template which is included on top of the lobby.

--------------------------------------------------------------------------------
5c7498c882 | Florian Diebold | 2011-06-26 17:41:24 +0200

Send SIGTERM if crawl doesn't quit after SIGHUP.

--------------------------------------------------------------------------------
21ac9d6847 | Florian Diebold | 2011-06-26 17:41:24 +0200

Use the location hash for starting the game.
This way, the back button works correctly.

--------------------------------------------------------------------------------
90775c2bea | Florian Diebold | 2011-06-26 17:41:24 +0200

Fix crawl crashing if the game is restarted after going back to the lobby.

--------------------------------------------------------------------------------
1961367d20 | Florian Diebold | 2011-06-26 17:41:24 +0200

Show the watcher count, too.

--------------------------------------------------------------------------------
06862d9d19 | Florian Diebold | 2011-06-26 17:41:24 +0200

Reset where info after closing crawl.

--------------------------------------------------------------------------------
427ed3c763 | Florian Diebold | 2011-06-26 17:41:24 +0200

Write a status file.

--------------------------------------------------------------------------------
38dbb53dc5 | Florian Diebold | 2011-06-26 17:41:24 +0200

Implement the "where" display for DGL.
This requires writing a mock ttyrec file into a certain folder, so do
that too.

--------------------------------------------------------------------------------
5b9af1ba02 | Florian Diebold | 2011-06-26 17:41:24 +0200

Implement flash colour (e.g. for the red berserk film).

--------------------------------------------------------------------------------
d22dac60f3 | Florian Diebold | 2011-06-26 17:41:24 +0200

Fix a really stupid display bug.

--------------------------------------------------------------------------------
c8d7cebc43 | Florian Diebold | 2011-06-26 17:41:24 +0200

Fix an exception if on_close is called before open.
It seems that can happen.

--------------------------------------------------------------------------------
b199131950 | Florian Diebold | 2011-06-26 17:41:24 +0200

Fix layout changes if the window is resized while in a menu.

--------------------------------------------------------------------------------
d79a19f8dc | Florian Diebold | 2011-06-26 17:41:24 +0200

Fix the game exiting a menu if the window size changes or a watcher joins.

--------------------------------------------------------------------------------
f24c558439 | Florian Diebold | 2011-06-26 17:41:24 +0200

Don't allow watching or starting a game if you're already doing one of those 
things.

--------------------------------------------------------------------------------
c0429f6978 | Florian Diebold | 2011-06-26 17:41:24 +0200

Implement watching games.

--------------------------------------------------------------------------------
5b8a72216c | Florian Diebold | 2011-06-26 17:41:24 +0200

Implement a lobby where the currently running games are listed.
Also, after crawl ends, the connection is not closed, but the player
is sent back to the lobby.

--------------------------------------------------------------------------------
f07dcca614 | Florian Diebold | 2011-06-26 17:41:23 +0200

Don't capture ctrl key combinations if shift or alt is pressed, too.

--------------------------------------------------------------------------------
8cd4d8d088 | Florian Diebold | 2011-06-26 17:41:23 +0200

Adapt view size to browser window size automatically.
Also fix whitespaces.

--------------------------------------------------------------------------------
83e386eafe | Florian Diebold | 2011-06-26 17:41:23 +0200

Fix a display glitch introduced by r32422d33.

--------------------------------------------------------------------------------
f97ee1e82a | Florian Diebold | 2011-06-26 17:41:23 +0200

Clean up a bit.

--------------------------------------------------------------------------------
f818b92eed | Florian Diebold | 2011-06-26 17:41:23 +0200

Add more control keys (ctrl+D and ctrl+vikeys).

--------------------------------------------------------------------------------
facf20a17c | Florian Diebold | 2011-06-26 17:41:23 +0200

Make the username case insensitive.

--------------------------------------------------------------------------------
c1a557ab28 | Florian Diebold | 2011-06-26 17:41:23 +0200

Remove debug logs in crawl and raise output of stderr to INFO in server.py.

--------------------------------------------------------------------------------
0032ebf60d | Florian Diebold | 2011-06-26 17:41:23 +0200

Implement a timeout mechanism.

--------------------------------------------------------------------------------
75c06e52b8 | Florian Diebold | 2011-06-26 17:41:23 +0200

Fix users with a space in their password not being able to log in.

--------------------------------------------------------------------------------
84ac6bfeef | Florian Diebold | 2011-06-26 17:41:23 +0200

Make DGL error messages more visible.
They were printed black on black.

--------------------------------------------------------------------------------
b5ca6e1f27 | Florian Diebold | 2011-06-26 17:41:23 +0200

Send less data to the client.
Cells are now compared property by property, and only the changes are
sent. The most traffic now comes from the status area most of the
time, actually.

This also fixes some hardly-noticeable display glitches with wall
shadows and waves.

--------------------------------------------------------------------------------
2d64478acb | Florian Diebold | 2011-06-26 17:41:23 +0200

Also allow signals to terminate when no client is connected.

--------------------------------------------------------------------------------
3e75529d62 | Florian Diebold | 2011-06-26 17:41:23 +0200

Allow ctrl+C when no client is connected.

--------------------------------------------------------------------------------
488878423f | Florian Diebold | 2011-06-26 17:41:23 +0200

Properly wait until all crawl processes have shut down on ctrt+C, SIGTERM or 
SIGHUP.

--------------------------------------------------------------------------------
2ad0453c9d | Florian Diebold | 2011-06-26 17:41:23 +0200

Shut down all child processes in the server after ctrl+C or SIGTERM.

--------------------------------------------------------------------------------
79993ec7f5 | Florian Diebold | 2011-06-26 17:41:22 +0200

Fix exception when the page is immediately reloaded.
Also, prevent a reload cycle when the WebSocket connection can't be
established.

--------------------------------------------------------------------------------
72c90b26b6 | Florian Diebold | 2011-06-26 17:41:22 +0200

Add function key mappings.

--------------------------------------------------------------------------------
23aaec7a7a | Florian Diebold | 2011-06-26 17:41:22 +0200

Fix #3908: The 'X' command makes tiles appear in unexplored regions.

--------------------------------------------------------------------------------
b76d3f594f | Florian Diebold | 2011-06-26 17:41:22 +0200

Add SSL support.
Also, this moves the configuration into its own file.

--------------------------------------------------------------------------------
7d47e9e673 | Florian Diebold | 2011-06-26 17:41:22 +0200

Log times by default.

--------------------------------------------------------------------------------
4a1d1221c2 | Florian Diebold | 2011-06-26 17:41:22 +0200

Fix exception when the user presses a key after crawl terminated.

--------------------------------------------------------------------------------
3f9f185735 | Florian Diebold | 2011-06-26 17:41:22 +0200

Don't restart the game after quitting.

--------------------------------------------------------------------------------
9e44b1ea0f | Florian Diebold | 2011-06-26 17:41:22 +0200

Reload the page when the websocket closes.

--------------------------------------------------------------------------------
0c33777256 | Florian Diebold | 2011-06-26 17:41:22 +0200

Maybe fix high CPU usage after saving and zombie processes.

--------------------------------------------------------------------------------
aed686da3c | Florian Diebold | 2011-06-26 17:41:22 +0200

Send SIGHUP when the websocket connection is closed.

--------------------------------------------------------------------------------
1a804844b4 | Florian Diebold | 2011-06-26 17:41:22 +0200

Filter logging from tornado.

--------------------------------------------------------------------------------
774d12ba49 | Florian Diebold | 2011-06-26 17:41:22 +0200

Don't require console.log to be present.

--------------------------------------------------------------------------------
47fa7a5d78 | Florian Diebold | 2011-06-26 17:41:22 +0200

Use python logging and log into a file.

--------------------------------------------------------------------------------
c56931155d | Florian Diebold | 2011-06-26 17:41:22 +0200

Log remote ips.

--------------------------------------------------------------------------------
533fcd4677 | Florian Diebold | 2011-06-26 17:41:22 +0200

Fix exception when username and/or password is empty.

--------------------------------------------------------------------------------
8679777cba | Florian Diebold | 2011-06-26 17:41:22 +0200

Give a message if javascript is disabled or WebSockets not supported.

--------------------------------------------------------------------------------
60db5b7047 | Florian Diebold | 2011-06-26 17:41:21 +0200

"User name" -> "Username"

--------------------------------------------------------------------------------
6121707ac9 | Florian Diebold | 2011-06-26 17:41:21 +0200

Add tab and ctrl+I for autofight.

--------------------------------------------------------------------------------
5316cb8381 | Florian Diebold | 2011-06-26 17:41:21 +0200

Another attempt at fixing uninterruptible autoexplore.

--------------------------------------------------------------------------------
b90b379d0e | Florian Diebold | 2011-06-26 17:41:21 +0200

Make template path configurable.

--------------------------------------------------------------------------------
64dac8f278 | Florian Diebold | 2011-06-26 17:41:21 +0200

Add max_connections variable to restrict the number of connections.

--------------------------------------------------------------------------------
7e701d818f | Florian Diebold | 2011-06-26 17:41:21 +0200

Fix the exception when sending non-ascii chars.
The characters still don't show up right, but at least it doesn't crash.

--------------------------------------------------------------------------------
c21670d85e | Florian Diebold | 2011-06-26 17:41:21 +0200

Fix uninterruptible autoexplore.

--------------------------------------------------------------------------------
930970f410 | Florian Diebold | 2011-06-26 17:41:21 +0200

Possibly fix CPU usage during autoexplore.

--------------------------------------------------------------------------------
56541160a1 | Florian Diebold | 2011-06-26 17:41:21 +0200

Remove an (inconsequential) exception in the on_close handler before login.

--------------------------------------------------------------------------------
32a2a6b482 | Florian Diebold | 2011-06-26 17:41:21 +0200

Add a message when the login fails.

--------------------------------------------------------------------------------
82b49a24b7 | Florian Diebold | 2011-06-26 17:41:21 +0200

DGL authentication.

--------------------------------------------------------------------------------
8440f08efe | Florian Diebold | 2011-06-26 17:41:21 +0200

Fix compilation after rebase.

--------------------------------------------------------------------------------
547d3685d2 | Florian Diebold | 2011-06-26 17:41:21 +0200

Fix a rendering bug.

--------------------------------------------------------------------------------
c92bf1b8c4 | Florian Diebold | 2011-06-26 17:41:21 +0200

Add ctrl+G to the allowed key combinations.

--------------------------------------------------------------------------------
da96efdbd2 | Florian Diebold | 2011-06-26 17:41:20 +0200

A bit of cleanup in server.py.

--------------------------------------------------------------------------------
7d581c2a62 | Florian Diebold | 2011-06-26 17:41:20 +0200

Fix handling of colored space characters.
This also makes the health and mana bars visible.

--------------------------------------------------------------------------------
ce681bebdd | Florian Diebold | 2011-06-26 17:41:20 +0200

Really use flv.special (don't set offset to 0 immediately afterwards...).

--------------------------------------------------------------------------------
2d2aa6ec1a | Florian Diebold | 2011-06-26 17:41:20 +0200

Fix the server not noticing that crawl has ended; autodetect the right 
websocket URL.

--------------------------------------------------------------------------------
eed99c9ec9 | Florian Diebold | 2011-06-26 17:41:20 +0200

Fix rendering of nagas and centaurs.

--------------------------------------------------------------------------------
4364c55c27 | Florian Diebold | 2011-06-26 17:41:20 +0200

Improve the rendering code.

--------------------------------------------------------------------------------
9187b2f03f | Florian Diebold | 2011-06-26 17:41:20 +0200

Put the generated files in the makefile, rename ONLINE_TILES to WEBTILES while 
at it.

--------------------------------------------------------------------------------
e38a15ce1d | Florian Diebold | 2011-06-26 17:41:20 +0200

Add generated stuff to .gitignore.

--------------------------------------------------------------------------------
83d6ee536b | Florian Diebold | 2011-06-26 17:41:20 +0200

Try to make ctrl key combinations work in both Chrome and Firefox.

--------------------------------------------------------------------------------
4f26d92612 | Florian Diebold | 2011-06-26 17:41:20 +0200

When rendering cells, fill them with black first.
It seems that some floor tiles have some transparent pixels.

--------------------------------------------------------------------------------
c1f75fdf3b | Florian Diebold | 2011-06-26 17:41:20 +0200

Handle control keys.
Control key combination must be manually enabled by adding the letter
to captured_control_keys in key_conversion.js.

--------------------------------------------------------------------------------
a029409f76 | Florian Diebold | 2011-06-26 17:41:19 +0200

Ghost transparency (untested) and handling of submerged tiles.
Submerged stuff does not look as good as in local tiles, but good enough for 
now.

--------------------------------------------------------------------------------
49c7e7a130 | Florian Diebold | 2011-06-26 17:41:19 +0200

Send base item.

--------------------------------------------------------------------------------
9ae3dee0cd | Florian Diebold | 2011-06-26 17:41:19 +0200

Adapt javascript code style to crawl conventions; generate tile_*_count 
functions in js.

--------------------------------------------------------------------------------
1944893fd6 | Florian Diebold | 2011-06-26 17:41:19 +0200

Fix things being printed in the message or stats area instead of crt.

--------------------------------------------------------------------------------
6634199d1a | Florian Diebold | 2011-06-26 17:41:19 +0200

Fix unicode text output (hopefully) and encode special chars as HTML entities.

--------------------------------------------------------------------------------
7eda7557cf | Florian Diebold | 2011-06-26 17:41:19 +0200

Add numpad-5 (it seems to have keycode 0, which is weird).

--------------------------------------------------------------------------------
485fd0a204 | Florian Diebold | 2011-06-26 17:41:19 +0200

Clean up tileweb.cc, fix a bug that would cause some tiles not to be sent.

--------------------------------------------------------------------------------
4919b8ba2a | Florian Diebold | 2011-06-26 17:41:19 +0200

Implement delay().

--------------------------------------------------------------------------------
88a89d6e61 | Florian Diebold | 2011-06-26 17:41:19 +0200

Implement cursors and fix some bugs.

--------------------------------------------------------------------------------
c9548c7707 | Florian Diebold | 2011-06-26 17:41:19 +0200

Implement clear_to_end_of_line.

--------------------------------------------------------------------------------
f2cff4eaac | Florian Diebold | 2011-06-26 17:41:19 +0200

Add favicon.

--------------------------------------------------------------------------------
50c970002a | Florian Diebold | 2011-06-26 17:41:19 +0200

Add js file generation to the makefile.

--------------------------------------------------------------------------------
57e1587225 | Florian Diebold | 2011-06-26 17:41:19 +0200

Only send texts if they were changed, and fix a bug with buggy redraws after 
teleports.

--------------------------------------------------------------------------------
2b52fd2ba2 | Florian Diebold | 2011-06-26 17:41:19 +0200

Fix a (repeated) bug in render.js

--------------------------------------------------------------------------------
2b026e36b0 | Florian Diebold | 2011-06-26 17:41:19 +0200

Fix a nasty memory corruption bug.

--------------------------------------------------------------------------------
13d737ecc7 | Florian Diebold | 2011-06-26 17:41:18 +0200

Yet another text area rewrite.
Now the texts are cached in the crawl process and then sent as html.

--------------------------------------------------------------------------------
81a5812d15 | Florian Diebold | 2011-06-26 17:41:18 +0200

Send arrow keys as arrow keys instead of numpad (they have the same key codes 
in js).

--------------------------------------------------------------------------------
4b2434ad28 | Florian Diebold | 2011-06-26 17:41:18 +0200

Send view region shifts to reduce the data sent; add and use packed_cell::==.

--------------------------------------------------------------------------------
228770c101 | Florian Diebold | 2011-06-26 17:41:18 +0200

Move rendering logic to the client, make it more complete.

--------------------------------------------------------------------------------
aa9fe6c8a5 | Florian Diebold | 2011-06-26 17:41:18 +0200

Handle more keys (specifically, the numpad and escape).

--------------------------------------------------------------------------------
69f3a30f07 | Florian Diebold | 2011-06-26 17:41:18 +0200

Draw text areas with canvas, too (performance is better).

--------------------------------------------------------------------------------
8b9ed12984 | Florian Diebold | 2011-06-26 17:41:18 +0200

Rendering improvements; stats, messages

--------------------------------------------------------------------------------
ef62d0fc2b | Florian Diebold | 2011-06-26 17:41:18 +0200

Draw player and monsters.

--------------------------------------------------------------------------------
8b15f45714 | Florian Diebold | 2011-06-26 17:41:18 +0200

Just send the changed tiles.

--------------------------------------------------------------------------------
820ee422d1 | Florian Diebold | 2011-06-26 17:41:18 +0200

First prototype of webtiles.
Conflicts:

	crawl-ref/source/startup.cc

--------------------------------------------------------------------------------
b21ca94006 | David Lawrence Ramsey | 2011-06-26 09:04:11 -0500

Properly name the polymorphed Serpent of Hell, as we do the Lernaean hydra.

--------------------------------------------------------------------------------
e4733b6d89 | David Lawrence Ramsey | 2011-06-26 08:28:56 -0500

Simplify further.

--------------------------------------------------------------------------------
10ae6f89ef | David Lawrence Ramsey | 2011-06-26 08:05:55 -0500

Simplify.

--------------------------------------------------------------------------------
5eeeb33f4b | Chris Campbell | 2011-06-26 11:09:34 +0100

Inner Flame: a spell for making things explode
A new spell for Fire Elementalists to give them new and exciting ways
to kill things, while keeping with their theme of focusing on damage
rather than utility spells. Inner Flame is a level 3 Fire/Hex spell
that, if not resisted, fills a monster with fire such that it explodes
when killed (with a bigger radius and more damage for especially large
monsters).

Inner Flame replaces Conjure Flame in the FE book, and could also
potentially be part of a new Hex-themed Arcane Marksmen book (cast on a
target then kill with arrows for the explosion).

Credit to b0rsuk for putting the idea on the wiki a while ago:
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:magic:new_spells#inner
_fire

--------------------------------------------------------------------------------
051b02ee4f | Vsevolod Kozlov | 2011-06-26 13:10:38 +0400

Remove some irrelevant comments.

--------------------------------------------------------------------------------
d1b0828b39 | Vsevolod Kozlov | 2011-06-26 12:18:57 +0400

Let _octa_room overwrite any wall, not just rock.
This should make the 'market square' of chaotic_city somewhat better-looking
when the place it's created at has non-rock rooms.

--------------------------------------------------------------------------------
1eddf9e5f6 | elliptic | 2011-06-26 02:12:18 -0400

Fix problems with jewellery trove prices (Mantis 4174).
Randart rings of Str/Int/Dex weren't working right, and slaying rings weren't
displaying correctly.

--------------------------------------------------------------------------------
63693139e4 | David Lawrence Ramsey | 2011-06-25 21:34:53 -0500

Fix Mantis 4166: Maxwell's Silver Hammer now checks for bludgeoning damage type.

--------------------------------------------------------------------------------
f64bb29e1d | David Lawrence Ramsey | 2011-06-25 18:51:36 -0500

Add spacing fix.

--------------------------------------------------------------------------------
237cb45029 | David Lawrence Ramsey | 2011-06-25 15:46:39 -0500

Add missing description for vampire bats.

--------------------------------------------------------------------------------
11227aa62b | David Lawrence Ramsey | 2011-06-25 15:46:29 -0500

Properly make vampire bats undead.

--------------------------------------------------------------------------------
adb520baa7 | David Lawrence Ramsey | 2011-06-25 15:37:36 -0500

Properly sort the vampire mosquito description.

--------------------------------------------------------------------------------
5435726b98 | elliptic | 2011-06-25 14:52:15 -0400

A few Shroud of Golubria text changes.

--------------------------------------------------------------------------------
2e267507aa | Vsevolod Kozlov | 2011-06-25 21:37:40 +0400

Make chaotic_city a little more chaotic.
It used to have a bias in the room placement that made it always leave the same
parts of the map almost empty.  Doesn't fit its name.

--------------------------------------------------------------------------------
2ffcdb9acb | Vsevolod Kozlov | 2011-06-25 21:13:26 +0400

Fix up some coordinate offsets to account for how count_features_in_box works.
This might be wrong, but it's hard to tell since the effect is not always
obvious.

--------------------------------------------------------------------------------
92c9c079dd | Adam Borowski | 2011-06-25 18:16:23 +0200

Instead of using new Oka piety, just log it.
It seems the formulas need much tweaking.  Which means it might be safer to
skip that for 0.9, but let's see if they can be fixed easily.

--------------------------------------------------------------------------------
58327f43de | Adam Borowski | 2011-06-25 18:16:23 +0200

Fix big piety gains working differently from multiple small ones.
This is counterintuitive for coders, and had to be kludged around in places.
Also, new Okawaru has big but rare gains, rather than a chance of 1 point
every time you kill a baby orc, a bee larva or an orb of fire.

This might upset the balance of sprint with its multipliers, though.

--------------------------------------------------------------------------------
d5ff1ff3b8 | Adam Borowski | 2011-06-25 18:16:16 +0200

Shift Okawaru piety (and gift) model to piety for Ash monster tiers.
The formulas deviate too much to be testable on empirical data I gathered,
so testing in real games is needed.  This means, please don't use this for
other gods, one broken god is better than several.

Also, it might be good to use this to differentiate gods of death/rage from
the warrior god: the likes of Makhleb enjoy massacring the meek.  They
already give more for harder monsters, the bias might be enlarged, but
nothing for popcorn and nearly nothing for bulk of monsters is more fitting
for Okawaru.

Note how the formula simplified out to basically piety for xp.  It turns out
tension tiers were roughly sqrt(xp), and with this commit making Okawaru's
piety gain tier^2, there's no need to do the intermediates.

--------------------------------------------------------------------------------
e2b9add9c2 | Adam Borowski | 2011-06-25 16:25:31 +0200

Slightly simplify an indentation level away.
Mostly so the Okawaru commit is easier to read.

--------------------------------------------------------------------------------
f02820dc3c | Adam Borowski | 2011-06-25 16:25:31 +0200

Submerged monsters shouldn't affect reaching.
This really matters only for air elementals, since fish are visible when
you're next to them.  This worked this way before, but now that you damage
the monster in the middle it could be beneficial, and we can't have that.

--------------------------------------------------------------------------------
320ca4eb5d | Vsevolod Kozlov | 2011-06-25 17:57:21 +0400

Split the labyrinth level builder into dgn-labyrinth.cc.
The rationale is still that this code is pretty isolated, and that dungeon.cc
is better when shorter.

--------------------------------------------------------------------------------
cb5f06740d | Vsevolod Kozlov | 2011-06-25 17:06:33 +0400

Rename plan_4 to chaotic_city, other layout functions to dgn_build_*_level.

--------------------------------------------------------------------------------
d0be972f8a | Vsevolod Kozlov | 2011-06-25 17:01:55 +0400

Split builder_basic, plan_4, _build_rooms and bigger_room into dgn-layouts.cc.
This involves exposure of join_the_dots and count_feature_in_box as pubilic
functions in dungeon.h.

The rationale is that dungeon.cc is long and that it needs to be split up,
and also that these layout builders share common helper functions.

--------------------------------------------------------------------------------
55ec889e0e | Chris Campbell | 2011-06-25 09:36:26 +0100

Don't spawn the Lernaean Hydra encased in rock in swamp_old_school

--------------------------------------------------------------------------------
05c65e9155 | elliptic | 2011-06-25 02:22:41 -0400

Make mutagenic corpses generate one-third as often.
Flavour justification: mutagenic corpses are filled with the essence of chaos
and are likely to decompose immediately or otherwise deform into inedibility;
only rarely do they remain stable enough to be good eating.

This addresses issues with mutagenic corpses being way too common in midgame,
which was abusable for mutation scumming (especially with Fulsome
Distillation, but even without it).

--------------------------------------------------------------------------------
1954c4d16a | Chris Campbell | 2011-06-25 04:04:07 +0100

Allow Poison Weapon to work on blunt weapons
It works on stones and sling bullets, so there's no reason it shouldn't
work on maces either.

--------------------------------------------------------------------------------
900aab396a | Adam Borowski | 2011-06-25 03:24:14 +0200

Improve the message when an invisible monster hinders your reach.
Also, don't imply the attack connected.

--------------------------------------------------------------------------------
3bd68e724e | Adam Borowski | 2011-06-25 03:08:39 +0200

Fix reaching doing two attacks per evoke, potentially crashing.

--------------------------------------------------------------------------------
2e4d14367a | Adam Borowski | 2011-06-25 02:22:35 +0200

Fire Lua events on rune pickup.

--------------------------------------------------------------------------------
d646e2b464 | Raphael Langella | 2011-06-25 01:53:34 +0200

Remove another hack which made spellcasting and inv/evo cheaper early on.

--------------------------------------------------------------------------------
23c42edc69 | Adam Borowski | 2011-06-25 00:15:57 +0200

Replace Rupert's totally broken theme.  The new one isn't much better, though.
He was a "crusader" (with all problems with that) who was "little interested in
converting heathens", cast spells which either go into Trog's realm or have
nothing to do with ex-crusaders/skalds.

It needs to be replaced again, but I'm putting this makeshift junk in just
in case we won't come with something better for 0.9.

Just giving him an axe would be good; if not, we can make him an ogre to go
the roar way... or preferably, something completely different.

--------------------------------------------------------------------------------
aabf8d50fd | Adam Borowski | 2011-06-24 23:34:52 +0200

Adjust the tornado obelisk vault.
A fully round shape to behave intuitively rather than rewarding spoilers
about this vault -- elongated shape meant you had to know when to make a
step outward.  Also, a wider exit to make unspoiled players less likely to
die.

--------------------------------------------------------------------------------
6b61ad4ff7 | Adam Borowski | 2011-06-24 23:17:00 +0200

Make Tornado more likely to rotate you along a wall.
The old formula tried too hard to preserve radius.

--------------------------------------------------------------------------------
0ba1937e23 | Adam Borowski | 2011-06-24 22:58:23 +0200

Make Tornado Conj/Air again.
With good apts and Ashenzari you can get it before Swamp/Snake, it's have
to either be nerfed to nothing or made harder (level 10, two school like
Firestorm, etc).

The alternative to Conj would be Tloc (translocating air to cause
differences in pressure, starting a wind system) but Conj is more
conservative and is supposed to have a near monopoly on direct damage.

--------------------------------------------------------------------------------
ab4e0cbf96 | Adam Borowski | 2011-06-24 22:57:20 +0200

s/Crusader/Skald/
This doesn't of course affect TSO ("crusader god").  Rupert is left, but he
doesn't follow Skald rules or theme anyway: berserk while using magic,
haste, etc.

--------------------------------------------------------------------------------
cbfe6585d6 | Adam Borowski | 2011-06-24 22:57:20 +0200

Give kenku monsters some gear.
Those spawned by a vault (there are three) have the gear defined there.

--------------------------------------------------------------------------------
b7838149e4 | Adam Borowski | 2011-06-24 22:57:19 +0200

Banish some kenku, at ancient lich rarity.

--------------------------------------------------------------------------------
a223f83c2a | elliptic | 2011-06-24 16:55:08 -0400

Make Jiyva a little less likely to remove mutations.
Given that trying to add a random mutation already removes a mutation instead
sometimes, the chance of Jiyva trying to remove a mutation was too high. Jiyva
worshippers tended to have a disappointingly low number of mutations on
average (compared with characters who scum potions of mutation, say). This
tweak might not be enough, but it should increase the average number of
mutations of a Jiyva worshipper by a bit at least.

--------------------------------------------------------------------------------
c48dbd625e | Adam Borowski | 2011-06-24 21:00:07 +0200

Fix tornado rotation display going the other way as monster rotation.
There are actually three spins:
* inner vs outer parts
* display (rotated every screen refresh, not game turn)
* rotation of victims

I made all of them counterclockwise, since ~90% of tornadoes on Earth spin
this way (biased by mostly occuring on single continent on the northern
hemisphere).  That, and basing on the assumption that inner parts rotate
faster while being trailed by outer ones -- if I understand the mechanics
and conservation of momentum right.

--------------------------------------------------------------------------------
fcd1cdd875 | Adam Borowski | 2011-06-24 20:26:28 +0200

A vault showcasing tornado rotation.  The only way in is to let yourself get 
carried away.
This implementation isn't that good, though.  A single scroll of blinking and a 
means of
teleportation mean you can get the reward taking just one turn of damage.  I 
tried making
a whole tornado alley but I guess some people are better at vault making at me. 
 Another
idea would be a system (at least a loop) of tight corridors, damage is 
proportional to
obelisk hd so reduction is not an issue.

--------------------------------------------------------------------------------
dc727d600b | Adam Borowski | 2011-06-24 17:00:28 +0200

Get rid of some data mining spam.

--------------------------------------------------------------------------------
ffffd972c6 | Adam Borowski | 2011-06-24 16:49:48 +0200

Get rid of remaining potion curses.
Promoting dropping potions before a card draw fest or waiting out Nemelex/CB
wrath doesn't do any good.

--------------------------------------------------------------------------------
9d5d59771b | Adam Borowski | 2011-06-24 14:16:27 +0200

Make "package-source" modular.
This allows not wasting time if you want only one tarball (like, for a
nightly build).  Also, on parallel builds, compression is done in 3 jobs.

--------------------------------------------------------------------------------
8b8caab12b | Raphael Langella | 2011-06-24 13:03:22 +0200

Add a comment.

--------------------------------------------------------------------------------
35113e786b | Adam Borowski | 2011-06-24 10:25:55 +0200

Restore teleporting of mimics after a reaching attack.

--------------------------------------------------------------------------------
5601322e8e | Adam Borowski | 2011-06-24 10:23:17 +0200

Make reaching past a monster avoid friendlies (elliptic)
There is still a chance for the attack fail, but there's no friendly fire.
Explanation: unlike hostiles, the friend will cooperate and try to let you
reach.

--------------------------------------------------------------------------------
3aa79263c3 | Adam Borowski | 2011-06-24 10:12:40 +0200

Stop the reaching + hostile rat abuse.
There is now a chance to hit the square in the middle if it's occupied.

You could sit in a corridor with a rat and a hydra, and poke the hydra with
impunity while the rat's nibbling does less damage than your regen.

±2,±2 reach will now work like 0,±2 or ±2,0, only a knight's move is
(currently) guaranteed.  Might want to change that too.

Also, trying to hit empty space behind a monster doesn't always succeed
too, which matters for invisibles.

--------------------------------------------------------------------------------
99256ef0fb | elliptic | 2011-06-24 01:29:47 -0400

Move a check for change in number of slots to the correct location.

--------------------------------------------------------------------------------
d7543a2c5c | elliptic | 2011-06-24 01:01:27 -0400

Let Chei know when your number of armour slots changes (due to mutation).

--------------------------------------------------------------------------------
0cc5d388db | elliptic | 2011-06-24 01:01:27 -0400

Make ponderous items have a larger effect on characters with limited armour 
slots.
Previously each ponderous item increased the movement delay of the player by 2;
now the movement delay is increased by
(# of ponderous items worn * 10)/(# of available non-shield armour slots).

The purpose of this is to make Cheibriados a reasonable god choice for all
races; previously he was biased against some races for no apparent reason.
Now all races (except felids) can obtain the maximum stat boost of +15
from Chei. To smooth things out a bit for slot-limited races, the stat boost
progression was changed from quadratic to linear; this means that humans
now have stat boosts of +3/6/9/12/15 depending on piety and ponderousness,
whereas ogres have stat boosts of +4/9/15 (with intermediate values possible
if piety is insufficiently high). Thus this is also a general buff to Chei at
lower levels of piety/ponderousness.

Octopodes aren't special-cased for this at the moment, so wearing a ponderous
hat brings them all the way to movement delay 20... but they still need high
piety for the maximum stat boost. This isn't really ideal, but it does mean
that Chei is an option for octopodes... if they have a hat.

--------------------------------------------------------------------------------
5b1bdd34d6 | David Lawrence Ramsey | 2011-06-23 22:42:40 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
4e4ec99a80 | Chris Campbell | 2011-06-24 02:59:20 +0100

Remove some inappropriate loot from a Sif altar vault

--------------------------------------------------------------------------------
d4ec19645e | elliptic | 2011-06-23 21:57:15 -0400

Tweak Warper starting skills.
3 weapon skill was really a lot... just as much as a berserker or gladiator,
and more than a fighter or crusader or death knight. 2 weapon skill and 2
fighting seems more reasonable. This is a slight nerf, but warpers are also
getting a new spell to help their melee out.

--------------------------------------------------------------------------------
3ff7f362f6 | elliptic | 2011-06-23 21:57:15 -0400

A new spell: Shroud of Golubria.
This spell serves the purpose of giving the new Crusaders a little help while
also being a good addition to the Warper book (which lacked any support for
the melee weapon and skill the class starts with).

The flavour of the spell can probably still use some tweaking, but here is a
description of its mechanics:

L2 Charms/Translocations, gives a status effect "Shroud" for a short duration
(the same as Freezing Aura). While shrouded (by a fragile distortion of space),
melee attacks have a chance of being bent away from you and hitting the air
harmlessly, but each melee attack also has a chance, depending on damage, of
breaking the shroud (while still doing regular damage). In other words, Shroud
of Golubria is an unreliable melee damage prevention spell. On average a cast
will prevent 10 damage (if it doesn't run out of duration first).

Hopefully this spell succeeds in simultaneously being useful early on and weak
later (when there are more ranged attacks and every melee attack of
significance will have a large chance of breaking the shroud). Charms and
Translocations do not need any more staple spells that everyone wants for the
entire game, and this spell is intended to avoid that.

--------------------------------------------------------------------------------
9b381b9ce1 | Raphael Langella | 2011-06-23 22:19:43 +0200

New skill costs.
The cost in XP of a skill point is no longer dependent on the skill level.
Skill training order is no longer relevant, end result will be the same.
Also, the cost in skill point of the first level has been greatly reduced,
so gaining a skill is no longer a penalty.

See the wiki for a detailed discussion:
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:skills:experience_syst
em#new_skill_cost

--------------------------------------------------------------------------------
9903ee7fc9 | Raphael Langella | 2011-06-23 22:19:43 +0200

A skill training simulator in Lua.
You pass it a combo abbreviation (like MiFi) and an optional weapon skill,
and it gives the skill progression. I've implemented 3 scenarii for Fi,
FE and Cr, but more can be added easily (and they can be changed too).

The goal is to evaluate the impact of changing the skill cost.

--------------------------------------------------------------------------------
e570ce65e6 | Adam Borowski | 2011-06-23 17:28:04 +0200

Axe two unused function prototypes.

--------------------------------------------------------------------------------
b9c1a11598 | Adam Borowski | 2011-06-23 17:28:04 +0200

Simplify.

--------------------------------------------------------------------------------
259633bbca | Vsevolod Kozlov | 2011-06-23 17:14:19 +0400

Don't overwrite vaults in _place_specific_feature if we have choice.
This should fix #4019 without breaking the placement of branch entrances on
levels with encompass vaults.

--------------------------------------------------------------------------------
c54cff18c1 | Vsevolod Kozlov | 2011-06-23 16:40:30 +0400

Simplify branch checking in special room code.

--------------------------------------------------------------------------------
4ddabd38ed | Vsevolod Kozlov | 2011-06-23 16:07:16 +0400

Place the staircases in layout_roguey to prevent them from generating in 
special rooms.

--------------------------------------------------------------------------------
b16b2ccc31 | Vsevolod Kozlov | 2011-06-23 16:07:16 +0400

Prevent layout_roguey from building overlapping rooms.
They kind of defeat the point of special room generation, and don't look nice.
There are already nicer chaotic layouts, let this one be more regular for a
change.

--------------------------------------------------------------------------------
34055e10ba | David Lawrence Ramsey | 2011-06-23 07:01:23 -0500

Remove Maxwell's Silver Hammer from Xom's spell list.
First, since this spell's vorpal effect is limited to wielded blunt
weapons, it works only in limited circumstances.  Second, the vorpal
effect for non-blunt weapons, Tukima's Dance, has been removed, so it's
inconsistent.  Third, vorpal seems more boring than the other branding
spells (which have elemental or other effects) anyway.

--------------------------------------------------------------------------------
8bb471d39c | Adam Borowski | 2011-06-23 12:15:33 +0200

Comment that cross-compilation with contribs for host is not supported.
With per-arch contrib builds, this could be implemented by building SDL,
SDL-image and libpng twice, but that'd need work.

--------------------------------------------------------------------------------
c13ad3a984 | Adam Borowski | 2011-06-23 12:15:33 +0200

Some very kludgy and wrong handling of lua, sqlite and curses for 
cross-compilation.

--------------------------------------------------------------------------------
e9c9cbed92 | Adam Borowski | 2011-06-23 12:15:32 +0200

Remove forced -static on cross compiles.
On the only platform that worked it does nothing, elsewhere it either does
nothing as well (builds with contribs) or is harmful (system libraries).

--------------------------------------------------------------------------------
44a2f0b189 | Adam Borowski | 2011-06-23 12:15:32 +0200

Fix CROSSHOST forcing NO_PKGCONFIG.

--------------------------------------------------------------------------------
310b20c6c3 | Chris Campbell | 2011-06-23 06:34:36 +0100

Make blinking in the Abyss just blink you, instead of teleporting you for free
Also don't allow Lugonu worshippers to cast blink with full success in
the Abyss, that's what the Bend Space invocation is for.

--------------------------------------------------------------------------------
628fce17e4 | Chris Campbell | 2011-06-23 05:54:32 +0100

Prevent teleport control while ascending, instead of just interfering with it 
sometimes

--------------------------------------------------------------------------------
9364c0ec47 | Chris Campbell | 2011-06-23 05:53:27 +0100

Make orb run spawns more likely to spawn near the player

--------------------------------------------------------------------------------
9fac1d5968 | Chris Campbell | 2011-06-23 02:48:38 +0100

Give Draconians slightly higher base dexterity
They don't have any particular reason to be so abnormally low dex,
seeing as they're well-suited for dodging and still gain dex points
randomly as they level up.

--------------------------------------------------------------------------------
824071231a | David Lawrence Ramsey | 2011-06-22 19:45:21 -0500

Revert "Add capitalization fixes."
This reverts commit b48227366fd1589a2350e017c70bd1a7d148f048.

"God" shouldn't always be capitalized in the god descriptions.

--------------------------------------------------------------------------------
30d1c3bd18 | Chris Campbell | 2011-06-22 23:53:26 +0100

Adjust some minivaults
Change minmay_butterfly_box to bats, to be a little less annoying.
Remove minmay_layered_prison, it contains lots of high-quality loot but
is very spoilery, and would be difficult to fix simply.
Tweak two of the guarded unrandart vaults to make them a bit more
interesting.

--------------------------------------------------------------------------------
cb1571c3cc | Chris Campbell | 2011-06-22 23:52:54 +0100

Tone down bailey loot, add a couple of more accessible exits

--------------------------------------------------------------------------------
7003de7e8f | Adam Borowski | 2011-06-23 00:24:47 +0200

Backport a bug fix to SDL for build failures on new compilers.
There's invalid inline assembly that was silently ignored before but is
caught by clang and recent gcc.

--------------------------------------------------------------------------------
148a0289ed | David Lawrence Ramsey | 2011-06-22 17:08:00 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
d373f5ab7b | David Lawrence Ramsey | 2011-06-22 17:06:38 -0500

Tweak wording of various god and god ability descriptions.

--------------------------------------------------------------------------------
b48227366f | David Lawrence Ramsey | 2011-06-22 16:30:44 -0500

Add capitalization fixes.

--------------------------------------------------------------------------------
32b5d4caa4 | Raphael Langella | 2011-06-22 23:19:34 +0200

Ashenzari skill boost: remove the dependency on total bondage.

--------------------------------------------------------------------------------
3032798702 | David Lawrence Ramsey | 2011-06-22 10:32:10 -0500

Add spacing fix.

--------------------------------------------------------------------------------
6cfa4b3339 | David Lawrence Ramsey | 2011-06-22 09:46:55 -0500

Experimentally add a Makhleb overflow altar.
It's a tweaked copy of bloody_trog: it has an altar to Makhleb instead
of Trog, and a robe and a whip instead of an animal skin and a dagger.

--------------------------------------------------------------------------------
5d099ff64d | Adam Borowski | 2011-06-22 10:35:19 +0200

Fix a compiler warning.

--------------------------------------------------------------------------------
d5113c897d | Adam Borowski | 2011-06-22 10:31:34 +0200

Be more forgiving about EOL conversions when generating aptitudes.

--------------------------------------------------------------------------------
89f1d789f0 | Chris Campbell | 2011-06-22 04:47:02 +0100

Start Spriggan hunters with slings instead of bows
Since they're too small to upgrade to longbows later.

--------------------------------------------------------------------------------
8e09cff337 | David Lawrence Ramsey | 2011-06-21 22:06:53 -0500

Fix Mantis 4162: Don't mark unidentified staff types as useless.

--------------------------------------------------------------------------------
0001360ffa | Adam Borowski | 2011-06-22 01:50:00 +0200

Less fixed loot in a too likely vault.
We need far more overflow altars, too.

--------------------------------------------------------------------------------
8c789be47e | Adam Borowski | 2011-06-22 01:40:39 +0200

Fix deck rarity settings in vaults being ignored.
Also, deck rarity was rolled at the time of parsing .des file.

--------------------------------------------------------------------------------
ee631f3476 | Adam Borowski | 2011-06-22 00:47:18 +0200

Assert rather than create a buggy deck.

--------------------------------------------------------------------------------
941195e2e8 | Adam Borowski | 2011-06-22 00:38:31 +0200

Formatting fixes.

--------------------------------------------------------------------------------
f2b2cb2f4f | Adam Borowski | 2011-06-22 00:21:32 +0200

Sort two overflow altars into place.

--------------------------------------------------------------------------------
9085030643 | Adam Borowski | 2011-06-22 00:10:17 +0200

Axe an unused copy of a description.
It has been moved to the db, yet the original was not removed.

--------------------------------------------------------------------------------
473d2b38a7 | Robert Burnham | 2011-06-21 16:45:50 -0500

Remove 1/100 chance of zombification of chaos-killed defenders
This added a fair degree of complication to the code that it didn't
seem worth it. Whenever a monster attacked, a copy of the defender
would be made and assigned (if the attack was chaos and the defender
was a monster) so that we could safely reference it later on in the
monster_attack code after the chaos_affects_defender (which has been
removed) was called.

If we're going to support monster zombification, it probably should
be more natively supported on the monster actor.

--------------------------------------------------------------------------------
50d20b0118 | Robert Burnham | 2011-06-21 16:28:04 -0500

mon_attack_flavour => attack_flavour
Replaces mon_attack_flavour with attack_flavour with the hopes that
at some point in the future we might be able to use it instead of
brands as a unified method of identifying a particular attacks'
flavour. Alternatively, it might find a niche in player attacks
that have flavour but are not actually brands (confusing touch).

In addition, this adds attk_type, attk_flavour, and attk_damage to
attack class. These variables have their value set (if the attacker
is of atype() ACT_MONSTER) to the apropriate values of the mon_attack
_def within melee_attack::melee_attack(..). This allows us to only
create one instance of mon_attack_def and thereafter are free to
reference the variables directly.

This commit should allow for me to continue to merge monster_attack
into the unified code line. This serves as a milestone, but presently
most of the functionality of monster combat (and part of player
combat as well) is certainly broken / non-existant (those code paths
have been isolated from the line of exection, pending being written
into the unified code).

--------------------------------------------------------------------------------
577ee8529e | Adam Borowski | 2011-06-21 23:11:26 +0200

Shoehorn MP aptitudes into a -3..+3 scale.

--------------------------------------------------------------------------------
ee2da3a4a7 | Adam Borowski | 2011-06-21 22:28:25 +0200

Clarify the description of the speed brand.
The damage is still 90%, that fits "slightly less" well.

I'd be more concerned about "half" which is far from being accurate
-- it is true only for quarterstaves, and among randarts, demon blades,
tridents and some junk.

--------------------------------------------------------------------------------
d33dc92aee | Adam Borowski | 2011-06-21 22:28:19 +0200

Rename "beast" to "hell beast".
We need monsters named "monster", "insect", "mammal", or "creature".
Unlike, say, "human" which is about as specific as "orc" or "yaktaur", or
"dragon" which refers to the ordinary species (like "bat" vs "fire bat"),
the name "beast" doesn't say anything about the monster.

The new name might be not the best choice, if you have a better idea, please
say so.

--------------------------------------------------------------------------------
06257a8bfd | elliptic | 2011-06-21 15:06:00 -0400

Fix an off-by-one error in the Jiyva stat shuffle.
This isn't actually a large change to how the shuffle works, just decreases
the randomness slightly.

--------------------------------------------------------------------------------
be0913e089 | David Lawrence Ramsey | 2011-06-21 12:18:05 -0500

Fix missing comma in camouflage mutation message list.

--------------------------------------------------------------------------------
98a1758cba | David Lawrence Ramsey | 2011-06-21 09:00:54 -0500

Makhleb flavor overhaul.
Makhleb is now the god of bloodshed and mortification of the flesh, as
well as the god of hell.  The hell lords and Grinder are now
Makhlebites, and have added dialogue mentioning it (Ignacio is fine as
is).  Many demons in hell are now Makhlebites as well, just as many
demons in the Abyss are Lugonites.  Donald complaints about Makhleb have
also been revised and expanded a bit to fit this.

Makhleb's powers are still the same as before; even in his new position,
he provides no protection from hell effects due to his chaotic nature.
Torment messages now refer to the powers of darkness rather than hell,
so as not to step on Kikubaaqudgha's toes.  Also, hell lords get their
own dialogue as a side effect of their mentioning Makhleb, and Antaeus
gets the same demon taunts for both shouting and speech as the other
hell lords do (before, he had an ordinary shout and no speech).

Less subtle references to Makhleb as the god of hell, such as possible
altars in hell, Makhlebites that are actual priests, or expanded hell
lord speech to differentiate them from pan lords or other '&'-glyph
monsters, are long term goals.

--------------------------------------------------------------------------------
9b5d33b8fc | Adam Borowski | 2011-06-21 15:44:47 +0200

Remove an internal note from aptitudes.txt
There is little loss in having edits there overwritten from authoritative
sources, and such comments are inappropriate in end-user documentation.

--------------------------------------------------------------------------------
ef0c78766d | Adam Borowski | 2011-06-21 15:41:41 +0200

List HP and MP mods in aptitudes.txt

--------------------------------------------------------------------------------
2d7061c63c | Adam Borowski | 2011-06-21 14:30:58 +0200

Change racial MP mods to aptitude style numbers.
The actual scale is not lineral, as there'd be a large change for some
species.  It's (mostly) -1, -2/3, -1/2, -1/3, 0, +1/3, +1/2, +2/3, +1,
making that x/4 would be a *1.5 difference in some cases.

--------------------------------------------------------------------------------
4cc6134cef | Adam Borowski | 2011-06-21 12:44:16 +0200

Remove unused descs for two ex-books.

--------------------------------------------------------------------------------
cbb10cd1bd | Adam Borowski | 2011-06-21 12:14:18 +0200

Extend the description of War Chants.

--------------------------------------------------------------------------------
22fa3fd2d7 | elliptic | 2011-06-20 23:37:21 -0400

Increase Condensation Shield duration and add a warning before it ends.
Duration increased from 10 + 2d(pow/5), capped at 30 to 15 + random2(pow),
capped at 40. Recasting the spell while active also works better. This
duration is still significantly worse than Ozocubu's Armour, so it seems fair
enough.

--------------------------------------------------------------------------------
172c9e0eb5 | elliptic | 2011-06-20 23:37:21 -0400

Remove the Conjurer book choice.
This is another move towards simplifying the startup procedure; now you never
need to choose a book (and the book menu code has been gutted). The Fire/Earth
book was the one removed, because it had become far too similar to the Book of
Flames; the Ice/Air book gives much more unique gameplay.

One possibility for addressing the slight imbalance this creates between
Ice/Air and Fire/Earth would be to bring back Reaver with a Fire/Earth-themed
book.

--------------------------------------------------------------------------------
59da3d6ce2 | elliptic | 2011-06-20 23:37:21 -0400

A few Ice-school spellbook changes.
Conj[ice] (soon to become Conj): Static Discharge -> Freezing Cloud.
Frost: Freezing Cloud -> Condensation Shield
Ice: Condensation Shield removed.

--------------------------------------------------------------------------------
3851c8c071 | elliptic | 2011-06-20 23:37:21 -0400

Make Summon Ice Beast level 4.
This spell didn't see much use at level 5 despite being in two starting books.
It seems comparable in power to Summon Scorpions, so let's try level 4.

--------------------------------------------------------------------------------
5476b900d6 | Chris Campbell | 2011-06-21 04:29:52 +0100

Comment fix
Active mapping isn't a thing anymore.

--------------------------------------------------------------------------------
356434995f | Chris Campbell | 2011-06-21 03:35:28 +0100

Make Sublimation of Blood depend on spellpower when cast on chunks/blood potions
Since it required very little skill investment to gain significant
amounts of MP back from chunks.

--------------------------------------------------------------------------------
05559b38fc | Adam Borowski | 2011-06-21 01:52:09 +0200

Give kobolds a tiny chance of getting crossbows.

--------------------------------------------------------------------------------
a36a34bbab | Adam Borowski | 2011-06-21 01:52:09 +0200

Put fields of struct map_cell together so the alignment is more readable.

--------------------------------------------------------------------------------
a3fb4971c7 | David Lawrence Ramsey | 2011-06-20 18:45:22 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
a0437059eb | elliptic | 2011-06-20 17:38:21 -0400

Rename Charmer to Charmwright.

--------------------------------------------------------------------------------
2b4f146a91 | elliptic | 2011-06-20 17:38:21 -0400

Make Jiyva stat shuffling smarter.
The dependence on the last stat you increased was extremely non-obvious
without spoilers, and it also didn't play very well because it was too
inflexible. Now the bias for Jiyva stat shuffling just looks at your armour
and skills and tries to push your stats towards reasonable values based on
that information.

--------------------------------------------------------------------------------
14e2db6357 | David Lawrence Ramsey | 2011-06-20 15:10:41 -0500

Add some Ashenzari-specific Donald complaints, mostly taken from the wiki.

--------------------------------------------------------------------------------
6d98050f5b | David Lawrence Ramsey | 2011-06-20 12:42:38 -0500

Remove obsolete Donald complaint regarding Kiku's torment and butchering.

--------------------------------------------------------------------------------
ccf48bac12 | David Lawrence Ramsey | 2011-06-20 11:36:18 -0500

Rename MONS_(PANDEMONIUM|HELL)_DEMON to MONS_(PANDEMONIUM|HELL)_LORD.

--------------------------------------------------------------------------------
69219ea249 | David Lawrence Ramsey | 2011-06-20 11:32:18 -0500

Remove DoNotDropHide item property to never_hide, consistent with other props.

--------------------------------------------------------------------------------
88d41a083a | David Lawrence Ramsey | 2011-06-20 10:32:24 -0500

Remove empty #if/#endif block.

--------------------------------------------------------------------------------
6dd1a5e719 | David Lawrence Ramsey | 2011-06-20 10:32:24 -0500

Add spacing fix.

--------------------------------------------------------------------------------
bfe3fc1702 | Adam Borowski | 2011-06-20 16:53:31 +0200

Let tornado rotate people around.
Those anchored (stuck in Ledaed ground, tentacles, plants) are exempt, but
still may take damage.  This can dump people into lava, which is countered
by the spell granting temporary levitation, giving only one attempt per
full-duration tornado.

--------------------------------------------------------------------------------
8e1e4ea98d | Adam Borowski | 2011-06-20 15:54:06 +0200

Clean up values of XP pool that look broken.
This may hurt people who legitimately have millions of XP, but it's hard to
tell.  Those who did not upgrade to a buggy version are unaffected.

--------------------------------------------------------------------------------
618bc9b068 | Adam Borowski | 2011-06-20 15:43:55 +0200

Fix randomization of petrification duration being ignored.

--------------------------------------------------------------------------------
9e0420f9bb | Raphael Langella | 2011-06-20 13:16:27 +0200

Fix spider form being able to butcher with the knife (#4143).

--------------------------------------------------------------------------------
28b7f70794 | elliptic | 2011-06-19 21:05:30 -0400

Make Silence Hexes/Air again and buff it slightly.
Silence was only a Charm so that the Crusader start would work better in 0.8,
and Hexes needs more spells anyway.

The spell was buffed slightly by reducing the variance in the duration, making
it a bit more reliable. Previously the high variance meant that it was often
optimal to scum the spell before battles until getting high duration.

Also increased the power of the scroll of silence slightly (25 -> 30).

--------------------------------------------------------------------------------
692e2ff6ee | elliptic | 2011-06-19 19:59:23 -0400

Tweak the starting skills for a few classes.
Crusader: Charms skill 2 -> 3
This is to compensate for having a weaker book and to make starting with L2
spells less painful.

Fighter: Shields skill 2 -> 3
Gladiator: Shields skill 2 -> 1
Fighter was clearly weaker than gladiator - just compare their starting skills
and equipment. This change also serves to differentiate them a bit better.

--------------------------------------------------------------------------------
e32f7a3a6e | elliptic | 2011-06-19 19:53:44 -0400

A new stab at War Chants.
Fire Brand, Freezing Aura, Repel Missiles, Poison Weapon, Regeneration.

No high-level spells so that crusaders are more about using a few aids to
melee stuff than about ramping up to Haste. This will also hopefully make
medium-armour crusaders more attractive, since it isn't that hard to start
casting these spells in ring or scale mail.

Silence was added to Enchantments in place of Levitation (which has too
many sources), since it only appeared in this book and Sky previously.

--------------------------------------------------------------------------------
23b867feb8 | Chris Campbell | 2011-06-20 00:12:49 +0100

Let Mummy Transmuters still get their potions for Evaporate on game start

--------------------------------------------------------------------------------
d745654989 | David Lawrence Ramsey | 2011-06-19 16:51:43 -0500

Remove unnecessary spaces.

--------------------------------------------------------------------------------
0dc45ac482 | Chris Campbell | 2011-06-19 20:45:07 +0100

Don't petrify monsters that are supposed to be petrify-immune

--------------------------------------------------------------------------------
b819c70b5a | elliptic | 2011-06-19 14:01:11 -0400

Rename the ziggurat logfile fields.
This should prevent junk values for these fields from getting into the
database. I also zeroed out the ziggurat variables for games transfered from
older versions.

--------------------------------------------------------------------------------
579a1fdd02 | David Lawrence Ramsey | 2011-06-19 11:50:34 -0500

Properly make giant uniques use the giant genus, as non-unique giants do.

--------------------------------------------------------------------------------
e34c9e52ef | Vsevolod Kozlov | 2011-06-19 20:44:06 +0400

Don't exclude the base_pos in _fixup_slime_hatch_dest.
It might as well be our best destination.  Fixes #4151.

--------------------------------------------------------------------------------
fdd6b20a82 | Vsevolod Kozlov | 2011-06-19 20:32:24 +0400

Use connect_spotty to connect vaults in slime.

--------------------------------------------------------------------------------
3bb1e7e4c1 | elliptic | 2011-06-19 12:30:24 -0400

Fix order of variables in savefiles.

--------------------------------------------------------------------------------
d0aac97f10 | David Lawrence Ramsey | 2011-06-19 10:59:02 -0500

Remove redundant default parameter values.

--------------------------------------------------------------------------------
d692c071c9 | Vsevolod Kozlov | 2011-06-19 14:44:40 +0400

Check for level_type == LEVEL_DUNGEON in at_branch_bottom.
Anything relying on it -not- checking level_type is probably obscure and should
be done in a different way.  Not sure whether such cases exist.

Should fix #415[23].

--------------------------------------------------------------------------------
8efb8be36a | Adam Borowski | 2011-06-19 02:11:16 +0200

Reduce the stat bonus for small shields.
It is additive not multiplicative, so the buckler nerf was almost not
noticable for low skills levels.

--------------------------------------------------------------------------------
5cc564c9cd | Adam Borowski | 2011-06-19 01:58:30 +0200

Nerf bucklers.
They were almost as good as regular shields and have a very minor penalty
that can be mitigated with little skill investment.

Theme-wise, a buckler has 1/3 the diameter of a regular shield (depending on
the source, these words had wildly various meanings in different historical
periods).  Unless you're tiny, it's hard to get a decent coverage.

Values:
old   new Sp  new Ha  new Hu  new Og
 5      5       4       3       -
 8      -       8.5     8       7.5
13      -       -      13      13

--------------------------------------------------------------------------------
085b0f8f26 | Adam Borowski | 2011-06-19 00:50:36 +0200

Staves of energy are useless for mummies, and (temp) liches and hungry Vp.

--------------------------------------------------------------------------------
35cb94ba46 | Adam Borowski | 2011-06-19 00:50:36 +0200

Count completed Ziggurats, and record deepest level reached.

--------------------------------------------------------------------------------
01204ecb30 | Adam Borowski | 2011-06-19 00:50:36 +0200

No paralysis on the Enchantress, sleep is enough.
We can always bring it back when she's in an actual branch end.

--------------------------------------------------------------------------------
6de7d0ba90 | David Lawrence Ramsey | 2011-06-18 17:01:58 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5c4a0be864 | David Lawrence Ramsey | 2011-06-18 13:24:34 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
72c70e5719 | elliptic | 2011-06-18 13:53:38 -0400

Fixed rune troves to handle goldified runes.

--------------------------------------------------------------------------------
025e7cf98f | elliptic | 2011-06-18 12:46:50 -0400

Make the prompt for leaving the dungeon not be triggered by portal vaults.
This could only come up if a player created a portal on D:1 with a Trowel card.

--------------------------------------------------------------------------------
676d0c3be2 | elliptic | 2011-06-18 12:46:50 -0400

Fix a couple of trove bugs.
There were a few minor issues with troves that asked for certain books or for 
demon weapons.

--------------------------------------------------------------------------------
74693405cb | David Lawrence Ramsey | 2011-06-18 10:47:36 -0500

Add punctuation fixes.

--------------------------------------------------------------------------------
642a996ae9 | Adam Borowski | 2011-06-18 12:31:18 +0200

Upgrade the pearl dragon in hallowed_hall to a quokka, re-enable.
This way we can see if shedu have any bugs.

--------------------------------------------------------------------------------
7c4f8bde1e | Shayne Halvorson | 2011-06-18 12:31:14 +0200

Halo effect for the mace of brilliance

--------------------------------------------------------------------------------
ad3763c5b7 | Adam Borowski | 2011-06-18 12:08:35 +0200

Avoid crashes to unknown character class during early crash dumps.
They hide data due to the actual dump being inaccessible.

--------------------------------------------------------------------------------
4d701c92ff | Adam Borowski | 2011-06-18 11:45:10 +0200

Rename dat/clua to dat/dlua to avoid the clua/dlua confusion.
There might be places where dlua is referred to as clua internally,
and in many places "clua" means "lua in general".

--------------------------------------------------------------------------------
3302fe61d0 | Adam Borowski | 2011-06-18 00:55:06 +0200

Don't use a literal number above 32 bits, some compilers have trouble with it.
Writing that as 123ULL would work in old gcc, but I've read rumours that MSVC
fails to recognize that.

--------------------------------------------------------------------------------
734cbf089e | Adam Borowski | 2011-06-17 15:03:46 +0200

Remove two hard-coded duplicates of the list of runes.
Also, disallow generation of "buggy runes" in wizmode.

--------------------------------------------------------------------------------
aaa807d2b9 | Adam Borowski | 2011-06-17 14:44:38 +0200

Don't vary the prices of misc items with their identification status.
The only item where it does matter is empty ebony casket, and the only
cases where identification lets you tell apart different items, balls of
energy -vs- seeing, cost the same.

--------------------------------------------------------------------------------
cc7871eeb7 | Raphael Langella | 2011-06-17 13:13:23 +0200

Cap Ashenzari wrath duration.

--------------------------------------------------------------------------------
cb87a39337 | Adam Borowski | 2011-06-17 12:37:57 +0200

When picking up a rune, say how many you have now.

--------------------------------------------------------------------------------
9d9540968e | Adam Borowski | 2011-06-17 12:37:57 +0200

An ugly display for runes.
It'd be nice to display the runes graphically, but formatted_scroller
doesn't allow either elemental colours (console) nor images (tiles).

--------------------------------------------------------------------------------
bb115985d7 | Adam Borowski | 2011-06-17 12:37:57 +0200

Don't spawn extra demonic runes after you got one.

--------------------------------------------------------------------------------
d8593eb207 | Adam Borowski | 2011-06-17 12:37:57 +0200

Goldify runes.
Having them weight you down and take inventory slots results just in people
running to and from to stash them, often at D:1.  The only case with
multiple runes is up to 50aum and 5 slots if you do Pan in one go.

It also falsifies log data and score for those who don't bother with lugging
the runes.  After all, it's the win not score that matters.

I did not bother preserving multiple demonic runes, there is no challenge in
collecting multiplies.  Any tough Pan lord (speed 19+firestorm+haste+summon
eyes...) can be simply skipped.  If you can beat 35 lords at once in a Zig,
one at a time is really not going to be an obstacle.

Also, remove points for the value of inventory when winning.  Only the Orb
(250k) and runes (*10k) count.

--------------------------------------------------------------------------------
d651535f42 | Adam Borowski | 2011-06-17 12:37:56 +0200

Block demon lord polymorph, they'd try thousands of time before failing and 
falling back.
None of the fallback demons is worthy enough.  We could alternatively
implement polymorphing into a random pan lord shape, but for now, this will
do.

--------------------------------------------------------------------------------
2f69e530a6 | Raphael Langella | 2011-06-17 12:36:26 +0200

Fix compilation.

--------------------------------------------------------------------------------
622b11771f | Raphael Langella | 2011-06-17 12:29:27 +0200

Fix Ashenzari's wrath being permanent.
This partially reverts commit df6069d36c7590f7847f9e1743bfbf50477035f9.

--------------------------------------------------------------------------------
1a425e041e | Raphael Langella | 2011-06-17 12:29:27 +0200

Cap the skill penalty of Ashenzari's wrath to skill_level / 2.

--------------------------------------------------------------------------------
8309b649c6 | David Lawrence Ramsey | 2011-06-16 20:36:09 -0500

Make the translucent skin mutation and the camouflage skin mutation conflict.

--------------------------------------------------------------------------------
2f2eab1eef | David Lawrence Ramsey | 2011-06-16 20:14:56 -0500

Preemptively disallow felids from getting the tentacles mutation.
In case tentacles are ever made available as a random mutation, this
fixes a potential problem: felids have no fingers, hands or arms to
mutate into tentacles.

--------------------------------------------------------------------------------
9bfc66a324 | David Lawrence Ramsey | 2011-06-16 17:44:53 -0500

Properly use player_has_feet() in the item appearance canned message.

--------------------------------------------------------------------------------
2989933535 | Chris Campbell | 2011-06-16 23:10:34 +0100

Simplify and improve LRD and shatter damage calculations
Shatter:
Remove some strange special-cased monsters.
Add some monsters that should be affected but were missed out.
Deal extra damage to stone, metal, crystal, ice, bone (as before).
Deal reduced damage to slimes, fliers, watery things (mostly as before).
Correctly deal extra damage to petrified fliers/slimes, instead of
dealing reduced damage to them.

LRD:
Fix a targeting message.
Add some monsters that should be affected but were missed out.
Adjust damage numbers for some statues.
Correctly treat petrified monsters as petrified.

--------------------------------------------------------------------------------
4e31c7c61a | Chris Campbell | 2011-06-16 23:10:33 +0100

Octopodes don't have feet, either

--------------------------------------------------------------------------------
ef1b6a97e9 | Chris Campbell | 2011-06-16 23:10:32 +0100

Cap sustain abilities at 2 levels
Not that octopodes are particularly likely to wear 8 rings of sustain
abilities at once, anyway. Capping it at 2 levels keeps it simple and
consistent with the display on the % screen, though.

--------------------------------------------------------------------------------
8056b6a9eb | elliptic | 2011-06-16 15:02:16 -0400

Make sickness recovery rate depend on regeneration rate more directly.
Previously sickness recovery rate was computed rather strangely and some
ways of improving regeneration rate did not affect the sickness recovery rate
while others did.

Now all sources of bonus regeneration help sickness recovery. Also, Chei
no longer makes sickness last twice as long; he is supposed to strengthen
your metabolism, not make sickness twice as annoying.

I didn't make slow healing or low-blood vampireness slow down the sickness
recovery rate, since slow healing is already annoying enough without that.

--------------------------------------------------------------------------------
4d28f867cc | Adam Borowski | 2011-06-16 18:02:31 +0200

Fix placement of corpses often not working.
"place:Snake:5 corpse" is still broken though, but "any corpse" works.

--------------------------------------------------------------------------------
fd1b2da93a | Adam Borowski | 2011-06-16 14:16:38 +0200

Simplify a bit.

--------------------------------------------------------------------------------
1a3dc4af5a | Adam Borowski | 2011-06-16 13:30:40 +0200

Fix abom and beast speed randomization not being applied in some cases.
The initial generation didn't call calc_speed() but did it its own way.

--------------------------------------------------------------------------------
686c8d711d | Adam Borowski | 2011-06-16 13:08:13 +0200

Fix Decomposition of zombies/ghouls not working in clouds.
Also, don't recreate the monster anew but just modify the type.

--------------------------------------------------------------------------------
f92219116c | Adam Borowski | 2011-06-16 13:06:19 +0200

Fix alterations of monster speed reset zombies/-likes to speed 5.

--------------------------------------------------------------------------------
92a4961655 | Adam Borowski | 2011-06-16 12:20:21 +0200

Compensate for the removal of weird behaviour of size 1 clouds.
They are actually size 1 now, so vaults that rely on that old "3x3 cloud,
center being always present, sides most of the time" need to be altered.

On the flip side, vaults like nrook_campfire may be done without having
to be encased in glass now.

--------------------------------------------------------------------------------
048ee93b5a | Adam Borowski | 2011-06-16 11:56:57 +0200

Fix big cloud beams being blocked by the effect of their own passing.
They produce clouds twice: once on the way to the explosion, once when they
go off.

Also, certain cloud effects were bigger when partially blocked by an
unrelated cloud -- fixed.  I added one to the size of cloud beams to
keep them same as before.

--------------------------------------------------------------------------------
4b8ede5131 | Adam Borowski | 2011-06-16 10:14:08 +0200

Don't "partially break" Pikel's spell when he follows stairs.
This led to inconsistencies when slaves that changed levels on their own
didn't get freed, yet if it was Pikel who moved, slaves on the old level
did.  To free them, you now need to actually kill or enslave Pikel.

--------------------------------------------------------------------------------
4a8ad48461 | David Lawrence Ramsey | 2011-06-15 19:34:49 -0500

Make the claws mutation and the tentacles mutation conflict.
Since the messages mention fingers and then arms turning into tentacles,
you can't have sharp fingernails and then claws for hands with them.

--------------------------------------------------------------------------------
69dd873d03 | Robert Burnham | 2011-06-15 17:05:58 -0500

mon_attack_type -> attack_type
Since adding mon_attack_def to attack or melee_attack class would be bad,
a compromise would be to take the facets of the struct and add them to the
class for ease of reference. Right now they would only be useful for monster
attacks, but in the future they could prove useful for differentiating
player attacks (like trample) from normal player attacks.

--------------------------------------------------------------------------------
38314fa96a | Robert Burnham | 2011-06-15 06:43:04 -0500

Massive (partial) conversion to new combat system
NOTE: DOES NOT COMPILE

Serves as a checkpoint for the massive conversion of the old combat
system to the new one (with regard to splitting combat into phases and
unifying many of the methods of melee_attack together that does not
have regard for the attacker or defenders' atype(). When the compile
issues are corrected, there will undoubtedly have been a number of
changes - some documented in commits past and others not - which affect
the mechanics, timings, or output of combat and will need to be
evaluated on a case by case basis for balance and inclusion in the
final product of this rewrite.

--------------------------------------------------------------------------------
860757aa13 | Adam Borowski | 2011-06-15 11:53:23 +0200

Jewels acquirement for seafood: only 1/9 amulets, not 1/3.
Even that is too much, since they still get the same rate of regular finds,
that will probably fill their only amulet slot while rings are always needed
in bulk.

--------------------------------------------------------------------------------
5288b87248 | Chris Campbell | 2011-06-15 03:02:33 +0100

Allow gladiators with claws to start unarmed

--------------------------------------------------------------------------------
5503d6a841 | David Lawrence Ramsey | 2011-06-14 19:49:39 -0500

Add spacing fix.

--------------------------------------------------------------------------------
bb0201f181 | Adam Borowski | 2011-06-15 00:46:06 +0200

Octopodes don't have hair.

--------------------------------------------------------------------------------
3914b90c25 | Adam Borowski | 2011-06-15 00:44:08 +0200

Remove an infinite Xom interest exploit.
Once you enter Zot once, it stays open, so you can't lock yourself out anymore.

--------------------------------------------------------------------------------
0d56420cc1 | Chris Campbell | 2011-06-14 22:46:13 +0100

Reword some status indicator messages

--------------------------------------------------------------------------------
7f4521dacd | Chris Campbell | 2011-06-14 22:45:19 +0100

Add a status indicator for delayed fireballs

--------------------------------------------------------------------------------
d4d4ffe685 | Chris Campbell | 2011-06-14 21:32:26 +0100

Don't gain MP from the Staff of Wucad Mu when it causes a miscast

--------------------------------------------------------------------------------
dee8be2bad | Chris Campbell | 2011-06-14 21:31:56 +0100

Make the Glaive of Prune actually annoy Zin

--------------------------------------------------------------------------------
07c9b0921c | Chris Campbell | 2011-06-14 21:30:38 +0100

Increase the number of corpses from Kiku corpse drop
It was slightly overnerfed!

--------------------------------------------------------------------------------
d09f5fe49f | David Lawrence Ramsey | 2011-06-14 09:34:03 -0500

Make a few player messages account for MH_NONLIVING, since statue form uses it.
Prayer when worshipping no god will now produce "existence" for both
nonliving and undead players (the former is taken from the golem wiki
page, and the latter fits more than "unlife" given e.g. the death
message for zero-intelligence undead).

--------------------------------------------------------------------------------
c6d0973b2c | Adam Borowski | 2011-06-14 10:53:03 +0200

Clarify that Ctrl-Q doesn't save the game.
A new player can think this will work the same way as closing the window
-- quit a session but without forfeiting the game.

--------------------------------------------------------------------------------
27ca95ed35 | Adam Borowski | 2011-06-14 10:48:13 +0200

Make the message when escaping the dungeon more clear about losing the game.
It's not that obvious for new players.  Such an explanation was present only
in the old hints mode that's no longer advertised.

Also, differentiate the message when you're actually going to win.

--------------------------------------------------------------------------------
951cdefcc9 | Chris Campbell | 2011-06-14 00:28:54 +0100

Make Mennas hang on to his weapon of holy wrath

--------------------------------------------------------------------------------
af3d3a98ff | Adam Borowski | 2011-06-13 15:51:28 +0200

Make octopode " back ugly and --more--y on 80 column terminals.
On those between 85 and 96 columns, omit a space before the colon to let
one more letter, at the cost of a bit of aesthetics.

--------------------------------------------------------------------------------
215f28bcf5 | Adam Borowski | 2011-06-13 15:39:44 +0200

Show the list of jewelry (") in two columns for octopodes.
This avoids a --more--.

--------------------------------------------------------------------------------
ec594861f1 | Adam Borowski | 2011-06-13 14:59:29 +0200

Fix conflict with a temp var used for guessing SDK_VER.

--------------------------------------------------------------------------------
ca9fbce6cb | Adam Borowski | 2011-06-13 14:59:10 +0200

Restore stat gain at level 4 for draconians which was accidentally lost.
There were kludges related to various colours gaining stats at different
rates, which are no more.

--------------------------------------------------------------------------------
1784a97591 | Chris Campbell | 2011-06-13 11:52:58 +0100

Make blinks work properly again in non-cTele areas

--------------------------------------------------------------------------------
4c0d2314ff | Adam Borowski | 2011-06-13 01:22:02 +0200

Give MSVC Microsoft's name for strtoull().
TODO: it'd be better to conditionalize it, C99 should be always preferred
to non-standard names.

--------------------------------------------------------------------------------
99e8463d9d | Adam Borowski | 2011-06-13 01:20:48 +0200

Don't take abs() of an unsigned.

--------------------------------------------------------------------------------
377656f1d6 | Adam Borowski | 2011-06-12 23:47:46 +0200

Actually use inttypes.h on MSVC

--------------------------------------------------------------------------------
a5d143307f | Hurcan Solter | 2011-06-12 23:47:19 +0200

Added inttypes.h for MSVC

--------------------------------------------------------------------------------
f4333fcef9 | Hurcan Solter | 2011-06-12 23:47:18 +0200

Fix check if the line is empty before accessing it.

--------------------------------------------------------------------------------
3895ae9e2b | Hurcan Solter | 2011-06-12 23:47:18 +0200

Fix MSVC compilation.

--------------------------------------------------------------------------------
67de327b0f | Hurcan Solter | 2011-06-12 23:47:18 +0200

Fix MSVC compilation.
MSVC does not accept the alternative keyword.Its usage is inconsistent
at the least.

--------------------------------------------------------------------------------
bb1182755a | Adam Borowski | 2011-06-12 23:47:18 +0200

Use regular is{w,}alnum(), not one from std::

--------------------------------------------------------------------------------
7873d7b8ae | Adam Borowski | 2011-06-12 23:47:18 +0200

Define missing ssize_t on MSVC.

--------------------------------------------------------------------------------
3a2149bc45 | Adam Borowski | 2011-06-12 23:47:18 +0200

Use #ifdef .. #else.

--------------------------------------------------------------------------------
180e51b349 | Hurcan Solter | 2011-06-12 23:47:18 +0200

Fix MSVC compilation.getpid fix.

--------------------------------------------------------------------------------
209cb2cbe9 | Hurcan Solter | 2011-06-12 23:47:14 +0200

Fix MSVC. Added definitions for S_IWUSR and S_IRUSR

--------------------------------------------------------------------------------
66c4357992 | Hurcan Solter | 2011-06-12 23:11:18 +0200

Fix MSVC compilation. Moved Apphdr.h inclusion to the beginning of the file

--------------------------------------------------------------------------------
e75cd5bbfe | Adam Borowski | 2011-06-12 19:32:45 +0200

Revert "Fix Windows compilation"
If anything has to mess with the flags, this define won't be passed.  It
also has no reason to be set from the outside.

Trying to define this flag unconditionally breaks compilation with new
mingw, too.

This reverts commit fde23c9461dea9d5cc56986f2ab740000a58e794.

--------------------------------------------------------------------------------
be87e5b324 | Adam Borowski | 2011-06-12 19:32:34 +0200

Fix build failure on certain configurations of mingw.
CreateTimerQueueTimer() is available on Win2k and higher, which is ok for
us since that's the lowest supported version of Windows anyway.  The
alternatives would be SetTimer(), which contrary to official documentation,
doesn't work on console programs, multimedia timers (quite strongly
deprecated), and several more heavyweight alternatives (waitable timers,
etc).  Doing complex things from inside an event callback is a bad idea,
thus we want a single syscall that doesn't depend on the process' state
being sound.  For this reason, I picked this one even though it can make
porting to Win98 harder (assuming someone wants that...).

Almost all versions of mingw, including those truly ancient, define this
function by default, yet the one shipped in msysgit and one hand-built by
Napkin have it configured off and need forcing a win32 version, which is
what this commit does.

--------------------------------------------------------------------------------
d4069b32f4 | Chris Campbell | 2011-06-12 16:50:01 +0100

Add background and weapon recommendations for Octopodes
Also don't recommend FeCr any more.

--------------------------------------------------------------------------------
6dab3f94be | Chris Campbell | 2011-06-12 16:49:38 +0100

Uncapitalise some species abbreviations (Dg, Ds, Op)

--------------------------------------------------------------------------------
fde23c9461 | Hurcan Solter | 2011-06-12 16:48:17 +0100

Fix Windows compilation
D_WIN32_WINNT must be defined to compile alarm() in syscall.cc for
windows.

--------------------------------------------------------------------------------
c0867e641a | Raphael Langella | 2011-06-12 00:46:37 +0200

Remove the obsolete hack to give frail/robust mutations to old saves.

--------------------------------------------------------------------------------
e0e716bccf | Raphael Langella | 2011-06-12 00:18:58 +0200

Fix all slots being displayed as ring in the % screen (#4124).

--------------------------------------------------------------------------------
2033efb49c | Raphael Langella | 2011-06-12 00:18:58 +0200

Don't treat species HP modifier as a frail/robust mutation.
This partially reverts commit d435634b5563e69b0c64a9c3b44060b4271a5d05.

HP modifier isn't shown in the A screen anymore and it isn't treated like
a mutation. It also fixes the fact that frail were nastier for already frail
races.

--------------------------------------------------------------------------------
8d595aab95 | Raphael Langella | 2011-06-12 00:18:58 +0200

Improve autoexplore by trying to have a look at unreachable places.
It's mostly useful in Lair and Slime. It's far from the optimal explore path 
since it
will only happen on the second flood. It means it will start by exploring 
reachable
points and once done will try to take a look at unreachable ones. Doing it 
sooner would
be way too taxing anyway, since it involves LOS iteration, and it's not really 
possible
anyway.

The list of unreachable points is saved in a set, so it could be possible to 
propose
seeing them in map mode to the player.

--------------------------------------------------------------------------------
f7724b9cf3 | Raphael Langella | 2011-06-12 00:18:58 +0200

Fix a sorting error in the (M)emorise interface (#3953).

--------------------------------------------------------------------------------
d0db90ddda | David Lawrence Ramsey | 2011-06-10 16:44:46 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
151053acad | David Lawrence Ramsey | 2011-06-10 16:44:25 -0500

Add formatting fix.

--------------------------------------------------------------------------------
452396e457 | David Lawrence Ramsey | 2011-06-10 16:43:30 -0500

Make _is_covering() return bool instead of int, as it returns only 0 or 1.

--------------------------------------------------------------------------------
612263bb87 | elliptic | 2011-06-10 17:02:35 -0400

Let reflected missiles retain their full range.
Shields of reflection rarely actually harmed anything with the range
reduction - even when you reflected something, it usually wouldn't reach
the source.

--------------------------------------------------------------------------------
1a07c3ae99 | Chris Campbell | 2011-06-10 12:05:55 +0100

Give potions of brilliance an extra boost to spellpower again
It was unintentionally removed in b93f427612 along with the unecessary
spellpower boosts from other sources of wizardry.

--------------------------------------------------------------------------------
212b4e48eb | Adam Borowski | 2011-06-10 02:07:45 +0200

Use petrification rather than paralysis in Tmut miscasts.
Ench ones still use the latter, obviously.

--------------------------------------------------------------------------------
cb6b058056 | Adam Borowski | 2011-06-10 02:04:18 +0200

Don't pretend petrification has an argument.

--------------------------------------------------------------------------------
86dade9f20 | Adam Borowski | 2011-06-10 01:08:57 +0200

Spam people's notes about XP/pool lost to draining.
We'll leave this on CDO for a week or so to gather some data.

--------------------------------------------------------------------------------
63a492f51f | Adam Borowski | 2011-06-09 23:23:43 +0200

Fix a warning on certain architectures.

--------------------------------------------------------------------------------
62783aa6b3 | Adam Borowski | 2011-06-09 23:20:50 +0200

Hard-limit crash dump to 5 seconds.

--------------------------------------------------------------------------------
1c94e3868d | Adam Borowski | 2011-06-09 22:51:56 +0200

alarm() for Windows.

--------------------------------------------------------------------------------
7a3a21ddfb | Adam Borowski | 2011-06-09 22:16:32 +0200

Update maxhp on wizmode race changes.

--------------------------------------------------------------------------------
d0e4d3d763 | Ryan Riegel | 2011-06-09 21:48:32 +0200

Fix broken COMPILE_CHECKs in tilepick.cc
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
6f61cdb7bd | Raphael Langella | 2011-06-09 21:44:47 +0200

Add "branded" as an alias for "ego" in search.

--------------------------------------------------------------------------------
d93c957518 | Raphael Langella | 2011-06-09 21:44:47 +0200

Allow reskilling to fighting.
With the fighting HP nerf, the restriction is no longer necessary.

--------------------------------------------------------------------------------
4237d65238 | Raphael Langella | 2011-06-09 21:44:47 +0200

Bring back the reskilling XP penalty to 10%.

--------------------------------------------------------------------------------
51378ebc26 | David Lawrence Ramsey | 2011-06-09 11:12:07 -0500

Constify.

--------------------------------------------------------------------------------
f362b6cc33 | David Lawrence Ramsey | 2011-06-09 11:09:09 -0500

Simplify ego selection for gloves.

--------------------------------------------------------------------------------
4770d0a99e | Adam Borowski | 2011-06-09 17:35:44 +0200

Fix reversed logic causing an infinite loop.

--------------------------------------------------------------------------------
85db8d6314 | David Lawrence Ramsey | 2011-06-09 10:26:17 -0500

Add a few more artefact names.

--------------------------------------------------------------------------------
d7cf80a774 | David Lawrence Ramsey | 2011-06-09 09:34:00 -0500

Fix apparent misuse of the "&&" operator.

--------------------------------------------------------------------------------
1bc6113cb6 | David Lawrence Ramsey | 2011-06-09 09:11:57 -0500

Fix generalized tentacles check from 399be8c to account for transformations.

--------------------------------------------------------------------------------
0c8963f13f | David Lawrence Ramsey | 2011-06-09 09:00:58 -0500

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
e9ded139c2 | David Lawrence Ramsey | 2011-06-09 09:00:33 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
399be8c5ba | David Lawrence Ramsey | 2011-06-09 08:42:09 -0500

Generalize a tentacles check, and clean up maximum mutation level checks.

--------------------------------------------------------------------------------
b018639871 | David Lawrence Ramsey | 2011-06-09 07:47:44 -0500

Comment fix.

--------------------------------------------------------------------------------
b194622bb5 | Adam Borowski | 2011-06-09 14:40:40 +0200

Kill drained and Borgnjored kitties instantly if maxhp <= 0.

--------------------------------------------------------------------------------
1ae53f3915 | Adam Borowski | 2011-06-09 14:23:48 +0200

Get rid of hardcoding of CSET_IBM in tiles.

--------------------------------------------------------------------------------
f1b5ad20f3 | Adam Borowski | 2011-06-09 14:21:49 +0200

Make felids lose a level on death, step down gain of lives, undo aptitude nerfs.

--------------------------------------------------------------------------------
0ada8313a7 | Adam Borowski | 2011-06-09 13:33:58 +0200

Nerf TSO's and Makhleb's HP and MP on kills.
For Makhleb, this is a nerf compared to 0.8, but not recent trunk.

--------------------------------------------------------------------------------
b8177409a1 | Adam Borowski | 2011-06-09 13:26:44 +0200

Don't require ", c1" in COMPILE_CHECK().

--------------------------------------------------------------------------------
7638acb84b | Adam Borowski | 2011-06-09 13:18:16 +0200

Use symbolic names for deck ranges.

--------------------------------------------------------------------------------
77a078e98b | Adam Borowski | 2011-06-09 13:04:57 +0200

Count obvious but "unidentified" misc items as seen.
What's the point in pretending they are not what they are, again?

--------------------------------------------------------------------------------
9320de653f | Adam Borowski | 2011-06-09 13:01:43 +0200

Improve misc acquirement.
Also, allow quads to spawn outside Sprint, currently only this way.

--------------------------------------------------------------------------------
8f2c1472f7 | Adam Borowski | 2011-06-09 13:00:13 +0200

Mark a few of misc items "useless" when appropriate.
You get told when a box of beasts becomes empty, so it should be
identified, too.

Items which are useful once in a hundred years are still "useful".

--------------------------------------------------------------------------------
9b6252b8e1 | Adam Borowski | 2011-06-09 11:57:08 +0200

Record what misc items have been seen.

--------------------------------------------------------------------------------
55b4602017 | Adam Borowski | 2011-06-09 11:57:08 +0200

Make Trog give only 1/3 as many artefacts as before, twice as much antimagic.

--------------------------------------------------------------------------------
43a085464f | Adam Borowski | 2011-06-09 11:57:08 +0200

Get rid of a "BCR acquirement hack", whatever it is.
The passed value is never used as anything else than a boolean.

--------------------------------------------------------------------------------
0398e8d173 | Adam Borowski | 2011-06-09 11:57:08 +0200

Make the species selection menu look better in no-octopode builds.
Also, add an assertion against species going out of screen on tiny terminals.

--------------------------------------------------------------------------------
4f6a175953 | Adam Borowski | 2011-06-09 11:57:07 +0200

Reduce berserk speed-up to *1.5.

--------------------------------------------------------------------------------
7ea3a18a2b | Adam Borowski | 2011-06-09 11:57:07 +0200

Revert "Fix doubled berserk penalties."
This caused berserk to last an insane amount of time when not fighting.

--------------------------------------------------------------------------------
90d0155261 | Adam Borowski | 2011-06-09 11:57:07 +0200

Cap Injury Mirror damage to hp the victim had.
No "reward" for dropping someone to far negatives :(
Reason: a player paralysed then stabbed a deep dwarf monster in Zig who
managed to get Injury Mirror up beforehand.  Instant 287 damage.

On the other hand, Injury Mirror feedback if you have Quad Damage will now
be multiplied (within victim's hp).  It'd take some work to do otherwise,
and after all, you're supposed to be really careful about any self-damage
while quadded.

--------------------------------------------------------------------------------
210540b74d | Chris Campbell | 2011-06-09 10:39:27 +0100

Tweak branch description wording

--------------------------------------------------------------------------------
d69fde2fec | Chris Campbell | 2011-06-09 10:11:06 +0100

Fix misaligned header in notes (#4119)

--------------------------------------------------------------------------------
124da3843d | Chris Campbell | 2011-06-09 09:54:23 +0100

Allow octopodes to be displayed on the species selection menu

--------------------------------------------------------------------------------
fcbb59b813 | Chris Campbell | 2011-06-09 09:54:01 +0100

Give the Vestibule of Hell its own monster set
With demons (mainly 2s, some 3s and 4s), hell knights, other assorted
hellish things, and some rare 1s (no fiends though).

This could definitely be improved with new monsters (more interesting
2s, other ranged threats) but should still be better than just using
the Dungeon monster set.

--------------------------------------------------------------------------------
e0b4a38d29 | Chris Campbell | 2011-06-09 09:52:25 +0100

Remove some references to a non-existent branch

--------------------------------------------------------------------------------
f2f0b7b293 | David Lawrence Ramsey | 2011-06-08 22:58:20 -0500

Tweak octopodes' mutations as listed on the "%" screen.
Mention their amphibiousness (akin to merfolk except not requiring a
form change), and clarify that they are only barred from wearing most
armour (soft helmets fit them, unlike felids).

--------------------------------------------------------------------------------
9ef4c0903b | David Lawrence Ramsey | 2011-06-08 22:53:43 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
8018eac8b8 | David Lawrence Ramsey | 2011-06-08 22:34:12 -0500

Remove unneeded brackets.

--------------------------------------------------------------------------------
a8f34e58fb | David Lawrence Ramsey | 2011-06-08 22:28:44 -0500

Remove unneeded blank lines.

--------------------------------------------------------------------------------
ae9a004dad | David Lawrence Ramsey | 2011-06-08 22:13:47 -0500

Add formatting fix.

--------------------------------------------------------------------------------
3331009ba4 | David Lawrence Ramsey | 2011-06-08 21:51:55 -0500

Reorder mutations on next major compatibility break.

--------------------------------------------------------------------------------
9b4b6da3e8 | David Lawrence Ramsey | 2011-06-08 21:40:03 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
37f1ca7500 | Adam Borowski | 2011-06-09 02:51:24 +0200

Use a mystical thing named "array" in a few places.

--------------------------------------------------------------------------------
77cb9b0bac | Adam Borowski | 2011-06-09 02:51:23 +0200

Add Eronarn's makeshift tile.
It actually fits worse than mine :(  The image is a tad better, but it holds
weapon, shield and hat in wrong places.

--------------------------------------------------------------------------------
d50b75ead5 | Adam Borowski | 2011-06-09 02:51:22 +0200

Disable octopodes in 0.9 betas and later.
(the check matches 0.9-b1, 0.9-rc1 or 0.9.0, but not 0.9-a or 0.10)

--------------------------------------------------------------------------------
aa117bdf5b | Adam Borowski | 2011-06-09 02:51:20 +0200

Show octopodes in tiles.
The tile is worse than abysmal, but we need _something_ that won't cause
bug reports that it's a human.  Eronarn has a tile somewhere, a mere notch
better than this one, but it's not in the repository or anywhere.

--------------------------------------------------------------------------------
ee91903484 | Adam Borowski | 2011-06-09 02:51:19 +0200

s/SP_OCTOPUS/SP_OCTOPODE/, since that's the name visible to players.

--------------------------------------------------------------------------------
874c6a9606 | Adam Borowski | 2011-06-09 02:51:18 +0200

Fix another save compat break.

--------------------------------------------------------------------------------
c6a99e3790 | Adam Borowski | 2011-06-09 02:51:17 +0200

Reformat and slightly sanitize.

--------------------------------------------------------------------------------
e1fc118c82 | Adam Borowski | 2011-06-09 02:50:33 +0200

Merge branch 'octopodes'

--------------------------------------------------------------------------------
8b9cc33761 | Adam Borowski | 2011-06-09 02:48:41 +0200

A few randart names.

--------------------------------------------------------------------------------
d74043d0a2 | Raphael Langella | 2011-06-09 00:37:25 +0200

Default show_gold_turns to true in EUCLIDEAN mode.

--------------------------------------------------------------------------------
6ae1cd1c34 | Eronarn Palazzo | 2011-06-09 00:33:49 +0200

Minor fix to octopus text.

--------------------------------------------------------------------------------
18cd4ad363 | Eronarn Palazzo | 2011-06-09 00:33:33 +0200

Actually let's make that squeeze instead of constrict.

--------------------------------------------------------------------------------
3e9bffcb7f | Eronarn Palazzo | 2011-06-09 00:33:18 +0200

Octopodes get rubbery body and camouflage mutations to make early game a bit 
more survivable.

--------------------------------------------------------------------------------
ec26fdcd61 | Eronarn Palazzo | 2011-06-09 00:32:58 +0200

Revisions to how the tentacles mutation works.

--------------------------------------------------------------------------------
ccd101d06c | Adam Borowski | 2011-06-09 00:32:26 +0200

Fix a save compat break.

--------------------------------------------------------------------------------
7acf06a035 | Eronarn Palazzo | 2011-06-09 00:31:39 +0200

Camouflage mutation - it gives +40 stealth per level, and is (rarely) available 
via random mutation.

--------------------------------------------------------------------------------
521b82c70e | Eronarn Palazzo | 2011-06-09 00:31:20 +0200

Ashenzari boundedness fix to take into account the new jewellery slots.

--------------------------------------------------------------------------------
6335113c39 | Eronarn Palazzo | 2011-06-09 00:31:09 +0200

Revised octopode aptitudes.

--------------------------------------------------------------------------------
0e9bb7c81e | Raphael Langella | 2011-06-09 00:10:36 +0200

Allow searching for portals.

--------------------------------------------------------------------------------
ceac2e3ae9 | Raphael Langella | 2011-06-09 00:10:36 +0200

Searching for ego will also return items which may be branded.

--------------------------------------------------------------------------------
f050682451 | Raphael Langella | 2011-06-09 00:10:36 +0200

Change an example in the search help.
The game will automatically pluralise the string for you.

--------------------------------------------------------------------------------
0b1b13f2cd | David Lawrence Ramsey | 2011-06-08 11:48:25 -0500

Add another potential artefact name.

--------------------------------------------------------------------------------
8492ceb405 | Adam Borowski | 2011-06-08 18:30:23 +0200

Try to fight fragmentation by choosing the best-fitting block.
Unlike my attempt a year ago, this version actually tries a block that fits,
rather than one that's just below what we need, so a tiny new fragment is
created in most cases, making things worse :p

--------------------------------------------------------------------------------
bb8cc24047 | Adam Borowski | 2011-06-08 18:25:31 +0200

Show some internal info about saves.

--------------------------------------------------------------------------------
04d7ba4509 | David Lawrence Ramsey | 2011-06-08 07:00:33 -0500

Rename MONS_SALT_PILLAR to MONS_PILLAR_OF_SALT, to match its actual name.

--------------------------------------------------------------------------------
d1eb6aca27 | Chris Campbell | 2011-06-08 08:44:14 +0100

Remove a human zombie from an entry vault
It could be kited and killed by many backgrounds for large amounts of
free experience.

--------------------------------------------------------------------------------
7d7dcb9c4e | Chris Campbell | 2011-06-08 08:44:13 +0100

Don't allow guardian spirit to work on the Staff of Dispater's HP cost

--------------------------------------------------------------------------------
d9c0aa16f8 | Chris Campbell | 2011-06-08 08:44:13 +0100

Allow monsters to cast torment at statue-formed players

--------------------------------------------------------------------------------
540a6487db | David Ploog | 2011-06-08 09:39:39 +0200

Update Ctrl-F help.

--------------------------------------------------------------------------------
e235f74c26 | David Lawrence Ramsey | 2011-06-07 17:15:21 -0500

Add missing blank lines.

--------------------------------------------------------------------------------
b63776315d | David Lawrence Ramsey | 2011-06-07 16:57:15 -0500

Document a few more species-specific qualities on the "%" screen.

--------------------------------------------------------------------------------
2fc0031cf9 | Adam Borowski | 2011-06-07 21:08:17 +0200

A couple of non-oversized Zot entry vaults.
One is _almost_ a dummy: except that, being a serial vault, it produces
three stairs rather than one, just like it was the case until today.

--------------------------------------------------------------------------------
b2c0a44fde | Michael Gagno | 2011-06-07 21:08:17 +0200

Only place one zot portal on D:27

--------------------------------------------------------------------------------
6122c9daf7 | David Lawrence Ramsey | 2011-06-07 12:50:32 -0500

Really fix LOS radius checks relative to 015c095; LOS radius, not actual LOS.

--------------------------------------------------------------------------------
81105e41c2 | David Lawrence Ramsey | 2011-06-07 11:40:05 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
015c09545a | David Lawrence Ramsey | 2011-06-07 11:38:48 -0500

Fix LOS radius checks for Yred/Beogh/Jiyva follower abandonment.
Also, use this for Zin's Recite instead of hardcoding an LOS of 8.

--------------------------------------------------------------------------------
42e5c465d8 | David Lawrence Ramsey | 2011-06-07 11:23:29 -0500

Add formatting fix.

--------------------------------------------------------------------------------
1b5c79a0af | David Lawrence Ramsey | 2011-06-07 11:09:05 -0500

Tweak a few Fedhas messages.

--------------------------------------------------------------------------------
bfb04b456b | David Lawrence Ramsey | 2011-06-07 11:08:32 -0500

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
79358023e6 | Adam Borowski | 2011-06-07 16:11:15 +0200

Keep form hp mods in one place.
There were three copies that went out of sync.

--------------------------------------------------------------------------------
61ce99bc3b | Adam Borowski | 2011-06-07 16:11:14 +0200

s/SP_CAT/SP_FELID/
I did not change this when the species' name was in flux, but it's kind of
set in stone now, so let's be consistent.

--------------------------------------------------------------------------------
2a965c080c | Adam Borowski | 2011-06-07 16:11:14 +0200

Clear several attributes on felid death.

--------------------------------------------------------------------------------
061ced455d | Adam Borowski | 2011-06-07 16:11:14 +0200

Fix mimic glyphs being uninitialized in some cases.
Since they refer to the dchar_table, it has to be set.

--------------------------------------------------------------------------------
db41c9a324 | Adam Borowski | 2011-06-07 16:11:14 +0200

Fix a crash on startup.
During the constructor, "you" might be not defined yet.

--------------------------------------------------------------------------------
feb88f991c | Adam Borowski | 2011-06-07 16:11:13 +0200

Remove a no longer implemented option.

--------------------------------------------------------------------------------
c313a265f5 | Raphael Langella | 2011-06-07 13:39:33 +0200

Standing in the rain doesn't enhance ice magic.

--------------------------------------------------------------------------------
f319e9b054 | Raphael Langella | 2011-06-07 12:50:38 +0200

Don't divide by 0.

--------------------------------------------------------------------------------
5037c73e30 | David Lawrence Ramsey | 2011-06-06 23:31:13 -0500

Fix naming of the zombified Serpent of Hell.

--------------------------------------------------------------------------------
a9a1582686 | David Lawrence Ramsey | 2011-06-06 23:30:27 -0500

Properly mark the Lernaean hydra as Z_NOZOMBIE.

--------------------------------------------------------------------------------
2fc6b86876 | Adam Borowski | 2011-06-07 03:33:42 +0200

Don't cast to longs literals that are not long.

--------------------------------------------------------------------------------
c154596e73 | Adam Borowski | 2011-06-07 03:28:30 +0200

Make slightly more readable.

--------------------------------------------------------------------------------
b347036c9a | Adam Borowski | 2011-06-07 03:21:48 +0200

During armour acquirement, look at what was seen, not what is worn.

--------------------------------------------------------------------------------
5fc49e8bdf | David Lawrence Ramsey | 2011-06-06 17:24:40 -0500

Give training dummies and salt pillars their own genuses.
Since they're not really statues per se, this avoids confusion if they
come into view in groups.

--------------------------------------------------------------------------------
b286337075 | Raphael Langella | 2011-06-06 22:31:34 +0200

Fix a rounding error for 3 school spells in the spell power formula (#4107).

--------------------------------------------------------------------------------
e692f36b90 | Adam Borowski | 2011-06-06 11:38:33 +0200

Apply robust/frail before rot.
This led to round-off errors -- with frail 1, every point of rottage has 10%
chance of disappearing that shifts every time you gain maxhp.

This is a nerf to frail races (who don't have smaller rot anymore) and a
boost to robust ones (who don't have rot multiplied).

--------------------------------------------------------------------------------
9af8be52a9 | Raphael Langella | 2011-06-06 00:17:17 +0200

Allow the artifact spelling in search.

--------------------------------------------------------------------------------
8a93ff1abc | Raphael Langella | 2011-06-05 23:49:53 +0200

Fix grey draconian corpse having no tile.

--------------------------------------------------------------------------------
9f146a1465 | David Lawrence Ramsey | 2011-06-05 10:01:25 -0500

Experimentally allow large rocks to be randomly generated on the floor.
Since they're powerful in the right hands, they're as rare as throwing nets.

--------------------------------------------------------------------------------
05f4f2ed38 | Adam Borowski | 2011-06-05 12:07:48 +0200

Boost enchantment on randart plates by a lot, slightly nerf robes.
Most heavy randarts being +0..+3, with an absolute max of +6, means no one
uses them except for insane properties -- having +10 and a single property
for normal plate or +14 on CPM makes the latter a no-brainer once you have
some enchant scrolls.

This has a good chance of being too good, but let's give it a try.

--------------------------------------------------------------------------------
352aa62b57 | Adam Borowski | 2011-06-05 12:07:48 +0200

Slightly simplify.

--------------------------------------------------------------------------------
ac315769a8 | Adam Borowski | 2011-06-05 12:07:47 +0200

Don't let Xom animate distortion.
SPWPN_DISTORTION is neither 0 nor 1...

--------------------------------------------------------------------------------
83e84f5f75 | Chris Campbell | 2011-06-05 04:27:51 +0100

Don't spawn gnome or giant zombies

--------------------------------------------------------------------------------
59029f0764 | Adam Borowski | 2011-06-05 02:53:30 +0200

Remove some useless mingw ifdefs.

--------------------------------------------------------------------------------
3526dc24d4 | David Lawrence Ramsey | 2011-06-04 12:38:17 -0500

Fix body shape for gargoyles; they're no longer on the 'g' glyph.

--------------------------------------------------------------------------------
374d070de3 | Adam Borowski | 2011-06-04 14:29:27 +0200

Let more unrands be wielded by monsters, fix some cases of using the player's 
skills.

--------------------------------------------------------------------------------
42b103e704 | Adam Borowski | 2011-06-04 14:29:27 +0200

Move some monster spell code around.

--------------------------------------------------------------------------------
210d9a162d | Adam Borowski | 2011-06-04 14:29:26 +0200

Strengthen Trog's affinity to the antimagic brand.
It would be tempting to put that chance at 100% as a nerf (so you don't get
to choose more appropriate brands).

--------------------------------------------------------------------------------
2feae6c984 | Adam Borowski | 2011-06-04 14:29:26 +0200

Put usleep() emulation into syscalls.cc

--------------------------------------------------------------------------------
ff9ea9a67e | Adam Borowski | 2011-06-04 14:29:26 +0200

Boost Undeadhunter to the old disruption brand levels.
An estimate of avg damage with no slaying but high skills:
* holy wrath: +19
* before:     + 6.6
* after:      +24.3

It doesn't affect demons, so outside of Crypt and Tomb it is still inferior.

--------------------------------------------------------------------------------
ab95531c34 | Adam Borowski | 2011-06-04 14:29:26 +0200

Purge some comments about "new" stuff.

--------------------------------------------------------------------------------
662a84ac03 | Adam Borowski | 2011-06-04 14:29:26 +0200

Gut and parcel out most of stuff.cc

--------------------------------------------------------------------------------
3905aef836 | Adam Borowski | 2011-06-04 14:29:25 +0200

mv dgn-actions.cc dactions.cc, it has nothing to do with the dungeon builder.

--------------------------------------------------------------------------------
a5431a62d8 | Adam Borowski | 2011-06-04 14:29:13 +0200

Free Pikel's slaves off level when he dies, gets raptured, crusaded, etc.

--------------------------------------------------------------------------------
8bbd354651 | Matt Mills | 2011-06-04 00:14:07 +0100

Add a note when an interesting monster is banished (fixes #4058).

--------------------------------------------------------------------------------
e57a6fb94e | Raphael Langella | 2011-06-04 01:03:45 +0200

Fix help screens not taking commend when easy_exit_menu is false.

--------------------------------------------------------------------------------
194fea965b | Raphael Langella | 2011-06-04 00:24:32 +0200

Improve and simplify Ash on sight identification.
By doing it when updating the stashes we avoid lot of code duplication and
fix ^x screen not showing identified items on the turn they were seen.

--------------------------------------------------------------------------------
0ef6d45de8 | Raphael Langella | 2011-06-03 19:35:28 +0200

Simplify.

--------------------------------------------------------------------------------
5115177928 | Robert Burnham | 2011-06-03 12:32:56 -0500

Remove unnecessary conditional checks on player stab
Removed checks allow for a stab to occur when a defender's "helpless"
ev is still greater than the to-hit of the attacker, which is both odd
and almost never used. Since it interferes with the player/monster
unification, its getting removed.

--------------------------------------------------------------------------------
831b5bd363 | Robert Burnham | 2011-06-03 12:12:51 -0500

Remove unnecessary stabbing check
The removed check allows for a defender to be treated as helpless in
circumstances where the defender is helpless but its EV is still higher
than the to_hit roll of the attacker. The likelihood of this occuring
was based on the stabbing skill of the player and the defender either
not being able to attack or by being asleep.

This is not only player-specific code that adds very little, its used
very infrequently since monsters who are typically regarded as helpless
have an ev of 0 anyways.

--------------------------------------------------------------------------------
54de09ab4a | Robert Burnham | 2011-06-03 10:40:08 -0500

Begin to unify player_attack and monster_attack
NOTE: This commit has essentially botched a couple of aspects of
melee_combat by moving appropriate code into its *new* final resting
place (notably the handle_phase_XXXXX methods) which have not actually
been connected into the regular combat code (thus they never get called).

Moves monster effects (passive freeze, spines, eyeballs) into the end-
of-combat handle_phase method and begins to move the test_hit code
from player_attack and monster_attack into attack(). Whether an attack
hits, is dodged, does damage, or killed, attack() will call the appropriate
handle_phase_XXXXX methods which will trigger effects which apply to
that particular phase of combat.

--------------------------------------------------------------------------------
1ba19e687c | David Lawrence Ramsey | 2011-06-03 10:18:14 -0500

Tweak the Undeadhunter melee message to "disruptive energy".
"Holy energy" is inappropriate, as (a) it's no longer holy wrath, and
(b) it might lead to bug reports on how Yred-worshippers can use it.
I'd prefer "dispelling energy", in the tradition of Dispel Undead, but
that's already used for purple draconians' antimagic breath, and
"disruptive" is something of a callback to the old days when the
anti-undead disruption brand was still around.

--------------------------------------------------------------------------------
2becf17f23 | Raphael Langella | 2011-06-03 14:42:57 +0200

Show waypoint number in search result.

--------------------------------------------------------------------------------
6443c2a913 | Raphael Langella | 2011-06-03 14:42:57 +0200

Waypoint search.
Searching for a single digit yields the content of the stash located at the
waypoint. Searching for * returns the content of all the waypoints.

Since waypoints are often used to mark player's stash, it is very useful to
quickly check the content of a stash (or all of them).

--------------------------------------------------------------------------------
1a07a0d97f | Adam Borowski | 2011-06-03 11:11:01 +0200

Reduce dragon and statue damage further, reduce hp, increase statue EV penalty.

--------------------------------------------------------------------------------
91e8751bab | Adam Borowski | 2011-06-03 10:34:56 +0200

Fix statue form reducing damage rather than increasing...
I guess I need to wake up before doing more damage.

--------------------------------------------------------------------------------
6edb4f9eca | Adam Borowski | 2011-06-03 10:32:25 +0200

Fix a dumb =/== bug causing spam about returning to fleshy form.

--------------------------------------------------------------------------------
4a7ccd8de6 | Adam Borowski | 2011-06-03 10:18:40 +0200

Fix cards of destruction often doing nothing, reduce variance, boost the 
average.
random2(power/4) meant the power was often zerp or almost zero.  It's already
randomized by the actual effect, so there's no need to do this twice.

--------------------------------------------------------------------------------
ba70dfab35 | Adam Borowski | 2011-06-03 10:14:04 +0200

Fix insane power of level 1 and 2 Orb cards.
Card power uses a different scale: 543 with 27 Evoc for most, 928 with max
Nemelex piety.  All other beams reduced it to random2(power/4) -- heck, even
level 2 Orb with no target set did that.

--------------------------------------------------------------------------------
283ba9d15e | Adam Borowski | 2011-06-03 10:02:21 +0200

Reduce statue form torment resistance from immunity to 50%.
They're partially alive (hunger, only partial drain res), and this
encroaches upon lich form's shtick.

--------------------------------------------------------------------------------
3e1095ba84 | Adam Borowski | 2011-06-03 09:58:06 +0200

Nerf dragon form damage, nerf statue unarmed but boost all melee.

--------------------------------------------------------------------------------
09b4a3b351 | Adam Borowski | 2011-06-03 09:46:05 +0200

Give dragon and statue form GDR.
If you're turned into a dragon, scales are supposed to come as a part of the
package.  And statues are supposed to be all about resilience.

--------------------------------------------------------------------------------
89eebd9c29 | Adam Borowski | 2011-06-03 09:35:10 +0200

Comment that the petrified check when taking on Yred is rather academic.

--------------------------------------------------------------------------------
9d89d7d4ec | David Lawrence Ramsey | 2011-06-03 00:42:55 -0500

Add formatting fix.

--------------------------------------------------------------------------------
743135f991 | David Lawrence Ramsey | 2011-06-03 00:41:59 -0500

Properly handle petrification for Yred in transformed_player_can_join_god().
Technically, it's not a transformation but an enchantment in terms of
code, but this way it's at least consistent with everywhere else.

--------------------------------------------------------------------------------
f01cbcc3e8 | David Lawrence Ramsey | 2011-06-03 00:25:08 -0500

Properly handle statue form for Yred in transformed_player_can_join_god().
This is so a player in statue form will get the proper message when
trying to join ("don't come in such a loathsome form" rather than "don't
take worship from those such as you").

--------------------------------------------------------------------------------
214949658e | David Lawrence Ramsey | 2011-06-02 21:57:15 -0500

Add missing training dummy description.

--------------------------------------------------------------------------------
94a311f962 | David Lawrence Ramsey | 2011-06-02 21:52:26 -0500

Remove obsolete gila monster description.

--------------------------------------------------------------------------------
6b3a0d8b7d | David Lawrence Ramsey | 2011-06-02 21:39:16 -0500

Add whitespace fixes (checkwhite).

--------------------------------------------------------------------------------
bd4a1500b9 | David Lawrence Ramsey | 2011-06-02 21:05:57 -0500

Set training dummies' species properly.

--------------------------------------------------------------------------------
c5b3a5a6d5 | David Lawrence Ramsey | 2011-06-02 21:05:57 -0500

Mark statues as artificial beings for Yred's purposes.
This is consistent with his treatment of player statue form.  Note that
it doesn't cover training dummies or pillars of salt, as those are
merely statue-like.

--------------------------------------------------------------------------------
66b68b575e | elliptic | 2011-06-02 22:03:23 -0400

Fix Apportation sometimes pushing objects away from you.

--------------------------------------------------------------------------------
fbec838c5c | elliptic | 2011-06-02 22:03:23 -0400

Eliminate D:1 gnoll packs.
A single gnoll is bad enough.

--------------------------------------------------------------------------------
705ce3da54 | Adam Borowski | 2011-06-03 02:34:06 +0200

Limit power 2 Orb card to 7 orbs to work around immediate explosion.
I suck at math, and have trouble coming up with a way to ensure 8 orbs
won't fall into the same square (it is theoretically obviously possible).
For example, orbs with [-0.381152,0.924512] and [0.384214,0.923244]
(45 degrees apart) will fail to separate.

--------------------------------------------------------------------------------
158936c0db | Adam Borowski | 2011-06-03 02:14:25 +0200

Make players who are petrified or in statue form nonliving.
Petrified ones lacked a number of resists statue form already had.

Other changes:
* both have torment resistance.  We can weasel out of this if it's too
  good since statue form has only rN+ so it can be argued they're not
  statue enough to be painless.  Petrification is 100% immobile stone
  that can be at most chipped though.
* rotting resistance.
* Yredelemnul's hatred as he hates artificial beings.  This includes
  excommunication like lich form does with good gods.

--------------------------------------------------------------------------------
b79df0f537 | Chris Campbell | 2011-06-03 00:08:52 +0100

Increase basilisk exp a bit

--------------------------------------------------------------------------------
be8f336b95 | Chris Campbell | 2011-06-02 23:35:38 +0100

Replace gila monsters with basilisks

--------------------------------------------------------------------------------
47b3f6a0f2 | Chris Campbell | 2011-06-02 23:35:37 +0100

Make monster cause fear a bit less restrictive

--------------------------------------------------------------------------------
b38382f3ef | Chris Campbell | 2011-06-02 23:35:37 +0100

Give Undeadhunter it's own custom anti-undead effect instead of holy wrath

--------------------------------------------------------------------------------
01dddc9c2e | Chris Campbell | 2011-06-02 23:35:36 +0100

Replace paralyse with petrify in one of the wizard spellbooks

--------------------------------------------------------------------------------
6dd4135a07 | Chris Campbell | 2011-06-02 23:35:36 +0100

Reduce petrify duration slightly

--------------------------------------------------------------------------------
bbd5879056 | Chris Campbell | 2011-06-02 23:35:35 +0100

Adjust the necro skill breakpoint for messages when wielding a pain weapon
Since 7 skill is the point where the effect always triggers.

--------------------------------------------------------------------------------
0ab5201e83 | Chris Campbell | 2011-06-02 23:35:34 +0100

Give Wyrmbane an on-wield message

--------------------------------------------------------------------------------
88d3d50d70 | David Lawrence Ramsey | 2011-06-02 12:53:44 -0500

Add assert to hopefully help track down the cause of Mantis 3930.

--------------------------------------------------------------------------------
7309e174ae | David Lawrence Ramsey | 2011-06-02 12:53:44 -0500

Fix misplaced assert.

--------------------------------------------------------------------------------
9f36181eff | Chris Campbell | 2011-06-02 18:27:07 +0100

Improve Apportation messages
The actual behaviour could still probably stand to be improved too -
probably rather than refuse to move at all if there's water/lava in the
way, items should move up to the edge of it?

--------------------------------------------------------------------------------
9d67794091 | Adam Borowski | 2011-06-02 19:10:12 +0200

A show of fireworks!
To use:
./crawl -rc test/eyecandy/fireworks.rc
(wizard mode must be compiled in, preferably no debug)

--------------------------------------------------------------------------------
95b7bbcc75 | Adam Borowski | 2011-06-02 18:25:16 +0200

dlua functions mons.set_hp() and mons.set_max_hp()

--------------------------------------------------------------------------------
5b833ac5a1 | Adam Borowski | 2011-06-02 15:03:14 +0200

A new card: the Orb.  Not balanced yet!
Power 0: orb of energy.
Power 1: orb of destruction.
Power 2: several orbs of destruction in a star burst.

The orb burst:
* in closed areas:
  * single opponent, adjacent: immature IOOD, weak damage
  * single opponent, far away: most likely not hit at all
  * multiple opponents, adjacent: immature IOODs
* in 100% open:
  * single opponent, adjacent: immature IOOD(s), returning orbs can score
    multiple full hits -- more likely to hit you rather than the foe!
  * single mobile opponent, far away: hit by 1 or 2 orbs, returning orbs
    pretty unpredictable, without dodging more dangerous to you than foe
  * single immobile opponent, edge of LOS: foe utterly annihilated as all
    orbs have time to lock in onto target and turn around.
  * multiple opponents, sparsely spread: joy, good damage and with enough
    care avoiding the orbs is quite easy

Please test the mechanics, the fireworks are exquisite.  The numbers are
way, way off: an easy but lame solution would be to cut the spell power by
a lot.  If it turns out impossible to balance, we can always use this
goodness for a separate spell.

--------------------------------------------------------------------------------
b43e745efd | Adam Borowski | 2011-06-02 06:54:56 +0200

Install built contribs to per-arch directories.
This fixes compilation errors when compiling for a different architecture
without a manual "clean-contrib", will make it possible to fix failures due
to libpng and sdl-image (which need to be available both for host (tile
data) and for target (the game itself)), and may allow reducing unnecessary
recompilations if we cease to pass flags to contribs.

--------------------------------------------------------------------------------
e5f1859a94 | Adam Borowski | 2011-06-02 04:52:19 +0200

Fix missing messages on chaos and antimagic temp branding from the card.

--------------------------------------------------------------------------------
86eedf0ae3 | Adam Borowski | 2011-06-02 04:52:19 +0200

Assign affixation effects to two brands that would make sense as temp.
(No, I'm not allowing temp branding there (yet?), doing this only because
it's trivial to do.)

--------------------------------------------------------------------------------
d2ad0047ec | Chris Campbell | 2011-06-01 22:25:53 +0100

Adjust some Snake ends to make them less easy to dig into

--------------------------------------------------------------------------------
06c34b9bf9 | Chris Campbell | 2011-06-01 22:25:21 +0100

Reduce Bolt of Inaccuracy damage
It could probably stand to be reduced even further but now is
roughly the same as before the rod power change at max evocations,
and worse at lower power levels.

--------------------------------------------------------------------------------
cf927a99bf | Raphael Langella | 2011-06-01 22:49:54 +0200

Remove some potions from the good items category (cyan).
Magic is moved to emergency (yellow).
Berserk, might, agility, brilliance and restore abilities are normal.
The only items left in the good category are acquirement, cure mutation,
experience and gain stat. They are the ones with strategical value which are
good to all playstyles.

--------------------------------------------------------------------------------
b275677f0e | Raphael Langella | 2011-06-01 22:39:48 +0200

Boost the effect of evocations on wands and rods.
No more randomized power.
Wand: 15 + evoc * 2.5
Rod : 5 + evoc * 3

--------------------------------------------------------------------------------
44ce07c9e3 | elliptic | 2011-06-01 14:54:30 -0400

Fix HP gain on levelup.
Current formulas for HP/MP after levelup:
new_hp = old_hp*new_mhp/old_mhp
new_mp = old_mp*new_mmp/old_mmp (or just new_mmp if old_mmp = 0)

--------------------------------------------------------------------------------
92aab5ba76 | Robert Burnham | 2011-06-01 06:59:14 -0500

Fix remaining player-attack runtime crash
Was an illegal instruction I traced back to a variable type mismatch
issue, where a random_var variable was being assigned the result of
either a random_var.roll or random_var.expected, both of which return
ints.

--------------------------------------------------------------------------------
ca43291655 | Chris Campbell | 2011-05-31 23:35:31 +0100

Remove some inappropriate default runrest_messages, add examples to 
options_guide

--------------------------------------------------------------------------------
567ea3da61 | Raphael Langella | 2011-06-01 00:17:34 +0200

Autopickup the chunks after animate skeleton.

--------------------------------------------------------------------------------
59b0d88986 | Adam Borowski | 2011-05-31 23:02:32 +0200

Don't mark mastered skills as antitrained.

--------------------------------------------------------------------------------
1ddc249f01 | Adam Borowski | 2011-05-31 20:54:38 +0200

Allow toggling hit prediction with ':' in new targetting modes.

--------------------------------------------------------------------------------
61784bc4b2 | Adam Borowski | 2011-05-31 20:36:53 +0200

Make the crosshair in new targetting modes red.
This makes it obvious where you're pointing at, before it looked the same as
monsters in affected areas.

--------------------------------------------------------------------------------
68bb35ff76 | Adam Borowski | 2011-05-31 20:24:50 +0200

Change clouds in 7-bit ASCII to '0'.
'#' causes problems whenever you're near walls and colours are not obvious.

--------------------------------------------------------------------------------
f20cf39d6c | Chris Campbell | 2011-05-31 19:11:27 +0100

Increase Terence exp, decrease Edmund exp
Terence: HD 1, 6 exp -> HD 2, 18 exp
Edmund: 211 exp -> 164 exp

--------------------------------------------------------------------------------
95ca36af4b | elliptic | 2011-05-31 12:40:23 -0400

Fix self-targetting.
Self-targetting was disabled for clouds and reaching and gave the wrong
message when you tried. Now it is enabled for clouds and gives a more correct
message for reaching.

--------------------------------------------------------------------------------
b5c65f9898 | elliptic | 2011-05-31 12:38:44 -0400

Make trapdoor spider zombies large.

--------------------------------------------------------------------------------
f5de157999 | Adam Borowski | 2011-05-31 17:39:32 +0200

Handle attempts to affix chaos (random) and antimagic (not allowed).
Of course, whether chaos brand will be affixed or you turned into a dire
weasel is another question...

--------------------------------------------------------------------------------
22068ca7bf | Adam Borowski | 2011-05-31 15:29:21 +0200

Add new brands (antimagic and chaos) to the Blade card.

--------------------------------------------------------------------------------
581c504a60 | Adam Borowski | 2011-05-31 15:27:46 +0200

Make the Blade card less likely to do nothing.
It rolled either "vorpal for slicing/stabbing" or "vorpal for crushing",
doing nothing if the weapon was of the opposite type.  And never working
for chopping, piercing ones and launchers.

Now it will do nothing only for crushing weapons of venom, and for launchers
of draining, distortion and pain.

--------------------------------------------------------------------------------
8aa418be83 | Raphael Langella | 2011-05-31 13:39:13 +0200

Skill menu: show enhanced disabled skills blue.
Enabled ones are in light blue.

--------------------------------------------------------------------------------
cf41ff4161 | Raphael Langella | 2011-05-31 13:11:35 +0200

Reduce Ashenzari skill boost for low level skills.
piety_rank is capped by skill level for calculating the bonus. This makes
for a smoother progression than going straight to level 6, 8 or 9.

--------------------------------------------------------------------------------
b5aa34cd3b | Raphael Langella | 2011-05-31 13:05:52 +0200

Reduce the cost of transfer knowledge from 25 to 20.
With the reduced piety gain, and slower piety gain at high level, it seems
a bit too much.

--------------------------------------------------------------------------------
fe6e5b833b | Raphael Langella | 2011-05-31 12:45:54 +0200

Fix escape not cancelling partial pickup.

--------------------------------------------------------------------------------
3c523af864 | Raphael Langella | 2011-05-31 12:45:54 +0200

Don't autopickup bad chunks.

--------------------------------------------------------------------------------
0e17f0a1b5 | Raphael Langella | 2011-05-31 12:45:54 +0200

Don't rip the corpse if the skeleton can't be animated.

--------------------------------------------------------------------------------
fbb71f0d0e | Adam Borowski | 2011-05-31 02:44:06 +0200

Fix incomplete database when switching between console and tiles.
There's no harm in having descriptions for command buttons loaded but unused
in console, it's a tiny file so there's little gain in skipping it, and
currently it won't be loaded if you run a console build first.

--------------------------------------------------------------------------------
d2577de73a | Adam Borowski | 2011-05-31 01:55:21 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
92b044147a | David Lawrence Ramsey | 2011-05-30 18:46:56 -0500

Simplify dungeon.cc's altar picking to use random_god(); remove random_altar().

--------------------------------------------------------------------------------
6c9be1e101 | Raphael Langella | 2011-05-31 01:27:48 +0200

Check object base_type when cursing it.
You could acquire a cursed wand when worshipping Ash. It was displayed
with a red square in tiles.

--------------------------------------------------------------------------------
5d0175d6a0 | Chris Campbell | 2011-05-30 23:18:17 +0100

Make Darkness quieter

--------------------------------------------------------------------------------
0884fe677d | Chris Campbell | 2011-05-30 23:18:16 +0100

Boost Bolt of Magma's damage a little

--------------------------------------------------------------------------------
32f7e0ca3f | Chris Campbell | 2011-05-30 23:18:16 +0100

Decrease the irresistible portion of damage from BEAM_ICE and BEAM_LAVA
BEAM_ICE affects Ice Storm and Throw Icicle, and BEAM_LAVA affects Fire
Storm and Bolt of Magma.

--------------------------------------------------------------------------------
c2ace26fad | Chris Campbell | 2011-05-30 23:18:15 +0100

Remove Tornado's negative spell enhancer, since the damage was reduced

--------------------------------------------------------------------------------
c829337833 | Chris Campbell | 2011-05-30 23:18:14 +0100

New and improved apportation distance formula (elliptic)

--------------------------------------------------------------------------------
b0f25dcddd | Chris Campbell | 2011-05-30 23:18:14 +0100

Fix orb-run cTele fuzz being biased in one direction, increase it a little

--------------------------------------------------------------------------------
e13c30a194 | David Lawrence Ramsey | 2011-05-30 12:39:22 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
d7576805d8 | Raphael Langella | 2011-05-30 00:00:36 +0200

Fix message when examining rotten meat (#4073).

--------------------------------------------------------------------------------
b93f427612 | Chris Campbell | 2011-05-29 19:23:12 +0100

Simplify a couple of spellcasting formulae, remove unnecessary factors
Removed the small penalty for using a low base delay weapon on spell
success, and the small bonus to spell power given by wizardry equipment.

--------------------------------------------------------------------------------
8af608b9c5 | Chris Campbell | 2011-05-29 19:23:11 +0100

Boost Menkaure to speed 8

--------------------------------------------------------------------------------
3ad9a37b7a | David Ploog | 2011-05-29 20:21:25 +0200

Weapon noise renovated
New structure.
Simplified the decision graph (it is now actually a tree).
New flavour/backstory for Singing Sword.
Made Singing Sword messages tension-dependent.

--------------------------------------------------------------------------------
2da2391c77 | David Lawrence Ramsey | 2011-05-28 22:42:32 -0500

Remove obsolete references to the player Berserker Rage spell.

--------------------------------------------------------------------------------
0b1c577cf3 | David Lawrence Ramsey | 2011-05-28 21:58:49 -0500

Remove obsolete comment.

--------------------------------------------------------------------------------
62a8b054e8 | David Lawrence Ramsey | 2011-05-28 16:46:30 -0500

Add a few more canned messages.

--------------------------------------------------------------------------------
46bff8c36b | David Lawrence Ramsey | 2011-05-28 16:26:03 -0500

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
66e4c4520a | David Lawrence Ramsey | 2011-05-28 15:29:43 -0500

Consolidate sources of altar creation (Nemelex, ZotDef) into one function.
In the process, make it properly use the generalized checks for
unavailable gods and the random god function wrapper.

Also, mark Fedhas as an unavailable god in ZotDef.  Combined with the
above, this fixes an inconsistency where ZotDef's "create altar" ability
would block Fedhas, but Nemelex's "create altar" ability through his
Trowel card would not.  As a side effect, if any altars to Fedhas are
placed in Zotdef maps, they'll now be replaced with floor, just as
altars to Jiyva are if Jiyva is dead.

--------------------------------------------------------------------------------
92d8b17b29 | David Lawrence Ramsey | 2011-05-28 15:29:43 -0500

Add static cast.

--------------------------------------------------------------------------------
90de47b841 | David Lawrence Ramsey | 2011-05-28 15:29:43 -0500

Add wrapper functions for random gods and altars.
This simplifies checks for them.  Also, these have parameters indicating
whether no god/altar is an acceptable return value, as control over that
is useful.

--------------------------------------------------------------------------------
9794251b02 | David Lawrence Ramsey | 2011-05-28 15:29:43 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
3615f0e719 | David Lawrence Ramsey | 2011-05-28 15:29:42 -0500

Generalize checks for dead (more properly, unavailable) gods.

--------------------------------------------------------------------------------
815ed18553 | David Lawrence Ramsey | 2011-05-28 15:29:42 -0500

Properly use feat_is_altar() instead of duplicating code.

--------------------------------------------------------------------------------
5121bebaf7 | David Lawrence Ramsey | 2011-05-28 15:29:42 -0500

Properly use altar_for_god() instead of duplicating code.

--------------------------------------------------------------------------------
2f957a1bed | Adam Borowski | 2011-05-28 20:13:13 +0200

Don't redefine a certain secret door's tile.
There's a hack where a secret door assumes the tile of its neighbours --
and trying to set a tile on the "wall" causes a crash.

--------------------------------------------------------------------------------
0cb4b5bb38 | Adam Borowski | 2011-05-28 19:44:21 +0200

Typo fixes.

--------------------------------------------------------------------------------
b7ec8d9874 | Adam Borowski | 2011-05-28 19:38:01 +0200

Cap ghoul/necrophage hp at twice their average maxhp.
Otherwise, you could feed a perm-ally from Yred until it was able to solo
Cerebov.

--------------------------------------------------------------------------------
f42be00af2 | Adam Borowski | 2011-05-28 19:38:01 +0200

s/mons_difficulty()/mons_avg_hp()/ since it's what it is.

--------------------------------------------------------------------------------
d5c05a1591 | Adam Borowski | 2011-05-28 19:30:15 +0200

Optimize invalidate_los_around().
It's the biggest CPU hog on the sprint rest test, especially its unwoken
version.

Changes:
1. no use of iterators (the other biggest hog, which one deserves the title
   is unclear due to them being entangled)
2. a π/4 optimization: no need to clear corners of a rectangle

--------------------------------------------------------------------------------
56006b34e1 | Adam Borowski | 2011-05-28 18:06:03 +0200

Give Mennas and daevas a wider selection of blessed blades.
This means low-end blessed blades may actually exist, no player would bless
a falchion.

--------------------------------------------------------------------------------
e9ff73edbb | David Lawrence Ramsey | 2011-05-28 11:02:44 -0500

Typo fix.

--------------------------------------------------------------------------------
d1280f5cb8 | Adam Borowski | 2011-05-28 17:26:12 +0200

Pass the person guilty of torment instead of guessing that.
The guesses relied on quirks like you.turn_is_over which got altered during
changes to sacrifice.  Fixing that would take a single line, but it's better
to simplify away the hacks altogether.

Also, the sceptre of torment now works when wielded by monsters (on hit,
not on merely walking around).  This might be or might be not what we want.

--------------------------------------------------------------------------------
0840bee965 | Adam Borowski | 2011-05-28 17:26:12 +0200

Include current player/ally/foe damages in xD output.

--------------------------------------------------------------------------------
fcd6b36bf4 | Adam Borowski | 2011-05-28 17:26:12 +0200

Disable autopickup when the See Invis spell times out with invisibles in sight.

--------------------------------------------------------------------------------
ef054e12ef | David Lawrence Ramsey | 2011-05-28 09:52:33 -0500

Properly use a canned message.

--------------------------------------------------------------------------------
8f284f84ea | Chris Campbell | 2011-05-28 14:26:10 +0100

Don't recommend FeIE, since their aptitude was reduced

--------------------------------------------------------------------------------
89a2f87467 | Adam Borowski | 2011-05-28 14:19:16 +0200

Fix a crash when hitting yourself with a non-basic needle.

--------------------------------------------------------------------------------
738c309469 | Adam Borowski | 2011-05-28 01:53:00 +0200

Remove a hack for Jory -- he can be handled the way other vampires are.

--------------------------------------------------------------------------------
076cb18870 | Chris Campbell | 2011-05-27 23:21:52 +0100

Increase int loss from Malign Gateway and Summon Horrible Things slightly, make 
it resistible by SustAb

--------------------------------------------------------------------------------
cb1a2bf951 | Robert Burnham | 2011-05-27 14:07:26 -0500

Fix runtime crash
NOTE: This is an unstable commit, there are still lingering runtime
crashes when the player attacks with this commit.

--------------------------------------------------------------------------------
a8f4a7bcb7 | Chris Campbell | 2011-05-27 18:48:47 +0100

Reduce War Axe base delay slightly
To make them slightly more of a sensible stepping stone between hand axe
and broad axe.

--------------------------------------------------------------------------------
efa2c3a5a1 | Chris Campbell | 2011-05-27 18:46:38 +0100

Make the Scythe of Curses inflict necromancy miscasts on things it hits

--------------------------------------------------------------------------------
246fa5aee5 | Chris Campbell | 2011-05-27 18:45:12 +0100

Boost the Glaive of Prune and the Robe of Augmentation slightly

--------------------------------------------------------------------------------
fe65b49ead | Chris Campbell | 2011-05-27 18:44:26 +0100

Don't decrease Elyvilon penance as quickly for blocking attacks or healing 
monsters

--------------------------------------------------------------------------------
a2f5322e44 | Adam Borowski | 2011-05-27 15:06:40 +0200

Nerf double swords and junk blessed blades (MarvinPA)
The latter is not really needed, but this way there's full consistency:
all blessed blades are +1 dam, -1 acc, -1 delay.

--------------------------------------------------------------------------------
b3a1cfbfdf | Adam Borowski | 2011-05-27 14:15:42 +0200

Improve demon blades, make blessing of long blades consistent.

--------------------------------------------------------------------------------
b8672448c7 | Robert Burnham | 2011-05-27 07:04:01 -0500

Remove to-hit inconsistencies from calc_to_hit
Removes or changes the following:

1) Players no longer have a (slight) penalty to to-hit when invisible
   but cannot see invisible (eg, they can't see themselves fighting)

2) Invisible defenders are now equally difficult to hit whether they
   are players (previously 65% to-hit malus) or monsters (previously
   -6 to-hit malus). The penalty is now 75% to-hit malus.

Also further generalizes calc_to_hit with variable placements and the
application of penalties that are common to both players and monsters.

--------------------------------------------------------------------------------
aeca3d3fb2 | Robert Burnham | 2011-05-27 06:49:05 -0500

Generalize calc_to_hit variables
Changes your_to_hit to mhit and removes the to_hit bonus for unarmed
combat in forms. Most forms are already quite powerful and adding a
to-hit bonus is neither easily conveyed nor easily implied by the
player.

--------------------------------------------------------------------------------
5c0bedadd7 | Robert Burnham | 2011-05-27 06:39:39 -0500

Remove mons_perform_attack
As its now only used in one location in the monster combat, its removal
removes the unnecessary clutter of the method declaration and further
slims the melee_attack class.

--------------------------------------------------------------------------------
d1598c524e | Raphael Langella | 2011-05-27 12:59:40 +0200

Fix Ash's skill boost not working on rod power.

--------------------------------------------------------------------------------
08ab1ee5e2 | Chris Campbell | 2011-05-27 11:52:46 +0100

Make Ziggurat-leaving prompt show up if you press > as well as for <

--------------------------------------------------------------------------------
89db920d41 | Chris Campbell | 2011-05-27 11:33:03 +0100

Make apportation distance of all items depend on spellpower, not just the orb
The formula could probably use some work - it might be too harsh at low
power, even for light objects? At medium to high power it seems fairly
good in terms of easily apporting light objects fully, but heavier items
or big stacks moving a smaller number of spaces.

--------------------------------------------------------------------------------
48c6b833df | Chris Campbell | 2011-05-27 11:33:02 +0100

Double the orb's weight

--------------------------------------------------------------------------------
c96808dc1b | Chris Campbell | 2011-05-27 11:33:02 +0100

Make the orb sometimes interfere with controlled blinks, too
It has a 1/3 chance of degrading controlled or semicontrolled blinks to
uncontrolled.

--------------------------------------------------------------------------------
fcdc3edcae | Chris Campbell | 2011-05-27 11:33:01 +0100

Make the orb interfere with teleportation and teleport control when ascending
It has a 50% chance of increasing the delay before a teleport kicks in,
and a 50% chance of adding extra fuzz to a controlled teleport.

--------------------------------------------------------------------------------
4d6c1a4ee2 | Chris Campbell | 2011-05-27 11:33:01 +0100

Mark scrolls of noise as dangerous (like immolation) instead of useless

--------------------------------------------------------------------------------
ffe7079542 | Chris Campbell | 2011-05-27 11:33:00 +0100

Update Purification description for curing petrification

--------------------------------------------------------------------------------
a862423089 | Chris Campbell | 2011-05-27 11:32:59 +0100

Decrease Zin Vitalisation piety cost, increase Ely Purification cost

--------------------------------------------------------------------------------
5902937f87 | Raphael Langella | 2011-05-27 08:14:19 +0200

Fix Tornado's AC calculation.
Use random2 instead of roll_dice. Don't want to give GDR 1 to everyone.

--------------------------------------------------------------------------------
2192b2e80c | David Lawrence Ramsey | 2011-05-26 18:21:02 -0500

Properly ignore sixfirhies' number (used for speed bursts) in monster_info.

--------------------------------------------------------------------------------
71cb1e94d2 | Raphael Langella | 2011-05-27 00:42:35 +0200

Nerf tornado's damage.
Base damage is reduced by 1/3. Damage is reduced by 1d(AC/3) every turn.
This is equivalent to applying 2xAC to the total damage.

--------------------------------------------------------------------------------
7d1ad11a8e | Raphael Langella | 2011-05-27 00:42:35 +0200

Move the positive check inside armour_class()

--------------------------------------------------------------------------------
e94ff2d778 | Raphael Langella | 2011-05-27 00:42:35 +0200

Fix a few places where the AC bonus from withdrawn is ignored.

--------------------------------------------------------------------------------
f9d2368b7d | Adam Borowski | 2011-05-26 22:47:50 +0200

Allow more than 64 mon_info flags.

--------------------------------------------------------------------------------
0c5cc7a416 | Adam Borowski | 2011-05-26 22:47:50 +0200

Make sixfirhy bursts more visible: 8/24 rather than 4/12.

--------------------------------------------------------------------------------
9cf90108d5 | David Lawrence Ramsey | 2011-05-26 13:04:25 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
469917c1b8 | Adam Borowski | 2011-05-26 15:55:27 +0200

Make the Singing Sword spammier when in high tension, change its name.
Dpeg made the mistake of volunteering to sort out the speech into tiers,
let's unleash him on the db!

--------------------------------------------------------------------------------
df449e0d30 | Adam Borowski | 2011-05-26 14:45:53 +0200

s/artefact_name()/make_artefact_name()/ to reduce confusion.
There are several functions with similar names, it's hard to tell this one
generates a new one rather than querying the current.

--------------------------------------------------------------------------------
a92b7b9093 | Adam Borowski | 2011-05-26 14:36:10 +0200

Remove an invalid comment.
Artifact properties are no longer re-generated basing on item's special
every time anymore.

--------------------------------------------------------------------------------
ea39d5f7f7 | Adam Borowski | 2011-05-26 03:21:25 +0200

Store only modifiers to hp/mp rather than the whole value.
Also, get rid of that ridiculous +5000.

--------------------------------------------------------------------------------
5703661a31 | Adam Borowski | 2011-05-26 00:17:35 +0200

Untie {inc,set}_{m,h}p() from {inc,set}_max_{m,h}p().
Random increases to max when using healing effects is long gone, and this
muddles the code.

--------------------------------------------------------------------------------
1b2aeb1bfd | Robert Burnham | 2011-05-25 16:19:13 -0500

Update brief

--------------------------------------------------------------------------------
cfca9c0b24 | Adam Borowski | 2011-05-25 22:37:34 +0200

Fix pearl dragon hide not providing rN+ like its finished version does.

--------------------------------------------------------------------------------
c0dc030c99 | Adam Borowski | 2011-05-25 00:27:30 +0200

Remove references to tile_title_screen.

--------------------------------------------------------------------------------
5a542cb0de | Adam Borowski | 2011-05-25 00:27:13 +0200

Fix a memory leak.

--------------------------------------------------------------------------------
bfadcac8a0 | Raphael Langella | 2011-05-24 23:16:16 +0200

Move check_for_interesting_feature() to _prep_input().

--------------------------------------------------------------------------------
d435634b55 | Raphael Langella | 2011-05-24 23:16:16 +0200

New HP formula.
* Racial HP gain is linear (no more slowing down at XL13 and XL22).
* HP adjustment for races is replaced by innate robust/frail mutations.
* Many changes to the mutation system to allow a -3/+3 range to the innate
mutations (only for frail and robust). A deep elf (frail 2) can go down to frail
5 and up to robust 1.
* I tried to upgrade saves to the new system, but there may be little
differences. Also if revification has been used, the lost hp is cured.

https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:misc:hp

--------------------------------------------------------------------------------
8897125341 | Adam Borowski | 2011-05-24 22:57:11 +0200

Boost Wyrmbane whenever it kills a dragon-like.

--------------------------------------------------------------------------------
f5dd8144d2 | Raphael Langella | 2011-05-24 12:29:23 +0200

Prompt before leaving Ziggurat.

--------------------------------------------------------------------------------
1d4ad02f17 | Adam Borowski | 2011-05-24 02:03:28 +0200

Use a Mac-specific fcntl() instead of fsync() which is buggy there.
The same can happen on old systems written in days when disks did not have
internal caches yet, and on some disks which lie about flushes to score
higher in benchmarks.  While the former is understandable and the latter has
been mostly eradicated due to outrage, there is no excuse for this behaviour
of fsync() when a working version exists.

So yeah, we need to use fcntl(fd, F_FULLFSYNC, 0) since this is how real
fsync() is named there.

--------------------------------------------------------------------------------
8048ff4faa | Florian Diebold | 2011-05-24 01:03:45 +0200

Fix a small invalid read.
This probably never caused problems, but valgrind found it, so I fixed
it.

--------------------------------------------------------------------------------
c84f365690 | Adam Borowski | 2011-05-24 00:54:34 +0200

Don't let iterator++ return a value.
This is costly (the whole iterator is copied every time!) and we never use this.

--------------------------------------------------------------------------------
3c820d5301 | Adam Borowski | 2011-05-23 17:23:26 +0200

A stress test that rests for 1000 turns on woken sprint.

--------------------------------------------------------------------------------
16a941ef4f | Adam Borowski | 2011-05-23 16:00:26 +0200

clua function crawl.enable_more(false) to do no more.

--------------------------------------------------------------------------------
5a7b1c9ad5 | Adam Borowski | 2011-05-23 15:47:45 +0200

Don't check known types for base classes which don't have any.
MAX_SUBTYPES is currently wrong as we have 56 weapon subtypes, but the value
of 50 used to be hardcoded and I don't feel like adding save compat.

--------------------------------------------------------------------------------
5ef9f7d49f | Adam Borowski | 2011-05-23 15:38:00 +0200

Let sendkeys() input not yet injected into the macro buffer inhibit ready().

--------------------------------------------------------------------------------
b42f917ad9 | Adam Borowski | 2011-05-23 13:59:57 +0200

Some crude protection against infinite ready() loops.

--------------------------------------------------------------------------------
af79c56036 | Adam Borowski | 2011-05-23 13:50:10 +0200

Do not call ready() when there's keyboard input pending.

--------------------------------------------------------------------------------
428c351bc6 | Adam Borowski | 2011-05-23 13:47:25 +0200

Call a clua function "ready()" whenever Crawl is waiting for a new command.
Note that it is easy to get into an infinite loop using it.  This is nothing
new as improper use of sendkeys() or while(1) could already cause that, but
I'm afraid that making it _easier_ to accidentally cause such damage might
be a bad idea.

If so, we can #ifndef DGAMELAUNCH it.

--------------------------------------------------------------------------------
991e15dcce | Adam Borowski | 2011-05-23 13:47:25 +0200

Fix enchanments going out of sync with enums.

--------------------------------------------------------------------------------
3658c76a59 | Adam Borowski | 2011-05-23 13:47:25 +0200

Don't compare itemprop enums to hand-written numbers.

--------------------------------------------------------------------------------
de8e8cba3e | Adam Borowski | 2011-05-23 13:47:24 +0200

Slightly refactor to fix compiler warnings.

--------------------------------------------------------------------------------
4fc9d5848a | Raphael Langella | 2011-05-23 12:58:29 +0200

Fix icons not displayed for known items (#4030).

--------------------------------------------------------------------------------
fc38e74a5b | David Lawrence Ramsey | 2011-05-22 23:53:55 -0500

Remove unneeded comma.

--------------------------------------------------------------------------------
8b792a92e8 | Chris Campbell | 2011-05-23 04:01:42 +0100

Add harpy food destruction to the $item_dmg default message colour list

--------------------------------------------------------------------------------
cb86913aa9 | Chris Campbell | 2011-05-23 01:54:12 +0100

Let Zin Vitalisation cure petrification

--------------------------------------------------------------------------------
df7530030f | Chris Campbell | 2011-05-23 01:54:11 +0100

Tweak alchemist card formula a bit

--------------------------------------------------------------------------------
896b588bd3 | Adam Borowski | 2011-05-23 00:04:29 +0200

Add heftig to credits.
Unreadable diffs suck :(  It'd be nice to have this file generated.

--------------------------------------------------------------------------------
580aa17406 | Raphael Langella | 2011-05-22 23:59:27 +0200

Formatting.

--------------------------------------------------------------------------------
c755250051 | Raphael Langella | 2011-05-22 22:53:06 +0200

Fix battleaxe not showing the wield option in the description (#4029).

--------------------------------------------------------------------------------
2930d645d0 | David Lawrence Ramsey | 2011-05-22 15:01:49 -0500

Don't display empty Ashenzari bondage description strings.

--------------------------------------------------------------------------------
9eca47fedd | David Lawrence Ramsey | 2011-05-22 11:39:37 -0500

Fix text wrapping inconsistencies.
Wrapping should be done to the number of columns less one instead of the
number of columns.  Without this, e.g. the god description text for
Elyvilon will be wrapped improperly in 80 columns.

Also, fix the hardcoded wrapping of 72 for unarmed combat attack
descriptions, and shorten the unwrapped description of Trog's not
needing Invocations to fit in 80 columns.

--------------------------------------------------------------------------------
f5eca84a73 | Raphael Langella | 2011-05-22 17:02:13 +0200

Fix epitaph for blowing oneself up with a wand of disintegration (#4027).

--------------------------------------------------------------------------------
66e0e05017 | Raphael Langella | 2011-05-22 14:33:47 +0200

Fix resting 2 cells aways from a slimy wall (#4028).

--------------------------------------------------------------------------------
1178c4e456 | Raphael Langella | 2011-05-22 14:13:00 +0200

Fix autoexplore not stopping for features and items (#4022).
check_for_interesting_features() is only called from world_reacts() now.
This is simpler and more reliable.

--------------------------------------------------------------------------------
0f8f46eb20 | Raphael Langella | 2011-05-22 14:03:40 +0200

Also display fleeing icon in monster list.

--------------------------------------------------------------------------------
50fef0db64 | Adam Borowski | 2011-05-22 13:45:49 +0200

Fix a crash when dying.

--------------------------------------------------------------------------------
8688184dd5 | Adam Borowski | 2011-05-22 13:15:33 +0200

Fix duplicated and buggy logic for deadliness of water.
This caused crashes for Xom and grey draconians.

--------------------------------------------------------------------------------
2dbaa37b11 | Adam Borowski | 2011-05-22 12:53:40 +0200

heftig's patch for "light" freetype hinting.
It looks worse to me, but that's a matter of taste.  Preferably, we'd use
system settings, but that'd require using fontconfig (needed for full
Unicode support anyway) and can't be done on Windows since system settings
there are not applicable to FreeType.  We'd be able to at most switch
between sub-pixel and grayscale hinting, not "light" hinting as in this
option.

--------------------------------------------------------------------------------
dfe6ca5cc5 | Adam Borowski | 2011-05-22 12:40:30 +0200

Fix tiles and the \ screen.

--------------------------------------------------------------------------------
8ac83f7204 | Ryan Riegel | 2011-05-22 12:16:54 +0200

FIX feat_is_statue_or_idol returned incorrectly for swamp_tree, endless_lava

--------------------------------------------------------------------------------
453d0ca9f0 | Adam Borowski | 2011-05-22 12:14:03 +0200

Cut an enum abuse.

--------------------------------------------------------------------------------
75725c77b6 | Adam Borowski | 2011-05-22 12:09:20 +0200

Sort three variables in struct player (saved vs unsaved).

--------------------------------------------------------------------------------
11c2c786fb | Adam Borowski | 2011-05-22 12:05:16 +0200

A whitespace fix.
Sadly, the pre-commit hook is not installed automatically.

--------------------------------------------------------------------------------
53967391e6 | Adam Borowski | 2011-05-22 12:01:47 +0200

Put item type id status into struct player rather than an unitialized global.
This fixes restart_after_game problems.

Also, don't use a redundant enum that is a subset of item base types.

--------------------------------------------------------------------------------
b5fb55f9e7 | Adam Borowski | 2011-05-20 20:14:56 +0200

Remove a leftover debugging statement.

--------------------------------------------------------------------------------
a305407601 | Adam Borowski | 2011-05-20 20:14:22 +0200

Mark attempts to re-petrify as harmless.

--------------------------------------------------------------------------------
802fb9fb3f | Adam Borowski | 2011-05-20 20:10:43 +0200

Actually let monsters cast Petrify.

--------------------------------------------------------------------------------
2f43130a54 | Raphael Langella | 2011-05-20 13:03:38 +0200

Really fix trap logic in travel code (#4017).
a9e9ddc9a wasn't good, because traps are not considered to be traversable
feat. This should be better.

--------------------------------------------------------------------------------
a10fe41100 | Raphael Langella | 2011-05-20 12:55:59 +0200

Tiles: mark fleeing monsters with an exclamation mark (Curio).

--------------------------------------------------------------------------------
76580bb2aa | Raphael Langella | 2011-05-20 01:33:46 +0200

SKill menu: change #ifdef DEBUG by DEBUG_DIAGNOSTICS.
I'm not sure why, but I had the debug info in my wizard builds.

--------------------------------------------------------------------------------
42ef9c5136 | Raphael Langella | 2011-05-20 00:55:26 +0200

Fix check_for_interesting_features sometimes not being called (#4001).
It wasn't called when a monster coming into view interrupted travel. Possibly
in other cases.

--------------------------------------------------------------------------------
f1f651d37f | Raphael Langella | 2011-05-20 00:55:26 +0200

Standardize the levitation checks.
And fix disarming traps when levitating (#4003).

--------------------------------------------------------------------------------
a8a4848693 | Raphael Langella | 2011-05-20 00:55:26 +0200

Fix inconsistent paralysis duration when hasted.

--------------------------------------------------------------------------------
a13be5be0e | Adam Borowski | 2011-05-19 20:46:15 +0200

Fix an information leak and a crash on targetting a place out of bounds.

--------------------------------------------------------------------------------
ba19999981 | David Lawrence Ramsey | 2011-05-19 11:33:40 -0500

Fix typo.

--------------------------------------------------------------------------------
1d3c54dbe1 | David Lawrence Ramsey | 2011-05-19 11:31:09 -0500

Properly use possessive/reflexive references in more monster speech.

--------------------------------------------------------------------------------
ec90c00bbe | David Lawrence Ramsey | 2011-05-19 11:11:13 -0500

Fix wording.

--------------------------------------------------------------------------------
ace02e0fb2 | David Lawrence Ramsey | 2011-05-19 11:10:34 -0500

Fix apparent misplaced comma.

--------------------------------------------------------------------------------
b218277501 | David Lawrence Ramsey | 2011-05-19 11:07:30 -0500

Properly use possessive/reflexive references in monster speech.

--------------------------------------------------------------------------------
d1a8903cf5 | David Lawrence Ramsey | 2011-05-19 10:57:18 -0500

Properly handle reflexive pronoun replacement in monster speech.

--------------------------------------------------------------------------------
a506afa06e | Raphael Langella | 2011-05-19 00:55:08 +0200

Prefer using the knife over removing gloves for butchering.
The only case left where gloves are removed is if you have claws, wear
gloves and wield a cursed blunt weapon.

--------------------------------------------------------------------------------
227d5ee934 | Raphael Langella | 2011-05-19 00:03:24 +0200

Fix a crash when a felid joins Ashenzari.

--------------------------------------------------------------------------------
113babd68f | Raphael Langella | 2011-05-18 23:49:56 +0200

Ashenzari piety adjustments.
Reduce the base gain per level from 8 to 6.
Bondage bonus changed from x2, x3, x4, x5 to x1.5, x2, x2.5, x3.
Reduce the scrying cost from 5-6 to 2-3.

Fully bound with the temple on D:5 and the Lair on D:10, you reach max piety
rank by mid-Lair.

--------------------------------------------------------------------------------
9fdae32aae | Adam Borowski | 2011-05-17 21:23:15 +0200

Fix incorrect darkening of range when a new-style targetter is used.
Old (beam) ranges use targetter_smite which is almost the same: it will mark
scryed places as invalid.  We can make it smarter (auto-hit beams, etc) later.

Also, what's the reason Fedhas' spawn spores darkens view before showing the
spores that will appear?  It doesn't mark them differently from existing ones,
it doesn't seem to do anything but hiding floor details.  I did not migrate that
behaviour to the new code -- should I?

--------------------------------------------------------------------------------
0ce0d23cea | Adam Borowski | 2011-05-17 16:05:10 +0200

Revert "Prevent weapons of reaching from attacking 2 cells in diagonal. (#3994)"
Every single place but that tile display makes REACH_TWO have range of sqrt(8)
and REACH_KNIGHT of sqrt(5).

This reverts commit d065a6cfe618b931b6dad00f899157529e265086.

--------------------------------------------------------------------------------
dfb6976812 | Adam Borowski | 2011-05-17 15:04:48 +0200

Axe an obsolete include.
I wondered what the hell VACPP is and if we still support it... but of course,
all related junk is long gone.  So everyone gets to use the VACPP path :p

--------------------------------------------------------------------------------
15a27d81d0 | Adam Borowski | 2011-05-17 14:51:40 +0200

Remove a comment about a removed pun.

--------------------------------------------------------------------------------
9782220472 | Adam Borowski | 2011-05-17 13:46:12 +0200

Don't spawn easy ice caves in Elf.
Some folks may dip into for a buckler, but if they can survive a multiple
elf knights at once, they can survive an ice cave.

--------------------------------------------------------------------------------
d065a6cfe6 | Raphael Langella | 2011-05-17 13:30:22 +0200

Prevent weapons of reaching from attacking 2 cells in diagonal. (#3994)
The targetting interface still has a slight inconsistency (at least in
tiles). Targetting the forbidden cell seems to be allowed, even if it isn't.

--------------------------------------------------------------------------------
a3b3824ed8 | Raphael Langella | 2011-05-17 13:14:30 +0200

Skill menu: fix progress not being displayed. (#3993)
Bug introduced by 6c9fd58b.

--------------------------------------------------------------------------------
a9e9ddc9a4 | Raphael Langella | 2011-05-17 12:57:28 +0200

Fix inverted logic when checking for traps in travel code.

--------------------------------------------------------------------------------
628cc57bdb | Adam Borowski | 2011-05-17 03:14:56 +0200

Remember the trap type in map_knowledge.
This fixes information leaks when a trap runs out of ammo out of LOS.

--------------------------------------------------------------------------------
7c11992ab8 | Adam Borowski | 2011-05-17 03:14:56 +0200

Typo.

--------------------------------------------------------------------------------
0a83370c5d | Adam Borowski | 2011-05-17 03:14:56 +0200

Allow ghosts to use Petrify.

--------------------------------------------------------------------------------
2257ac7386 | Raphael Langella | 2011-05-17 00:58:14 +0200

Ashenzari don't warn about not branded items carried by monsters.
Only branded equipment is identified by ash_id_monster_equipment, but the
monster may have picked up identified items from the ground before coming
into view, thus triggering uninteresting warnings from Ash.

--------------------------------------------------------------------------------
bf24cf648e | Raphael Langella | 2011-05-17 00:15:51 +0200

Search: when showing stash content, only show items matching the search.
Maybe we need a toggle to allow showing the whole stash (previous behaviour)

--------------------------------------------------------------------------------
bf23854734 | Raphael Langella | 2011-05-17 00:10:38 +0200

Fix warning prompt for expiring form when move is impossible (#3988).

--------------------------------------------------------------------------------
d92f7861c4 | Raphael Langella | 2011-05-15 23:59:27 +0200

Fix slowdown when felid is resting/searching. (plaidman)

--------------------------------------------------------------------------------
6c9fd58bc1 | Raphael Langella | 2011-05-15 23:51:29 +0200

Fix skill menu not showing cross/anti training help.

--------------------------------------------------------------------------------
f53f75c55d | Raphael Langella | 2011-05-15 23:51:29 +0200

Document the show_newturn_mark option.

--------------------------------------------------------------------------------
77c6a1ae4e | Adam Borowski | 2011-05-15 16:07:58 +0200

Undo a testing weight.

--------------------------------------------------------------------------------
7f1aba1cc6 | Adam Borowski | 2011-05-15 16:05:36 +0200

Plug the trap crash.
This is a WRONG fix as it leaks information, but we need to make CDO playable.

--------------------------------------------------------------------------------
d9e8943239 | Adam Borowski | 2011-05-15 15:52:35 +0200

Petrification resistance: statue form, stone golems, statues, ghostlies.
We might want to grant it to more monsters, for now, I went the conservative
way.

--------------------------------------------------------------------------------
343dfedfc0 | Adam Borowski | 2011-05-15 15:52:35 +0200

Don't let stasis block petrification.
It is a kind of transformation rather than a change to speed or position.

(Committing separately since it's likely to be contentious and reverted.)

--------------------------------------------------------------------------------
5f9477fb90 | Adam Borowski | 2011-05-15 15:52:34 +0200

Player petrification, some changes to monster one.
Before, it was a synonym for paralysis.

New state:
* stage 1 speed is cut to to 2/3 (old monsters)
* stage 1 EV is cut in half (new for both)
* stage 2 EV is eliminated (old player)
* all stage 2 damage is slashed by 3 (before, monsters stab only)
* ... except for LRD, which undoes the reduction and adds x1.5/x2 extra

Durations could use some balancing, monster ones are hard to reuse since
they change wildly with HD.

Nothing uses the effect yet except for chaos weapons (ie, Yiuf as Psyche
can't really hit a player of her level), and even there once in a blue moon.
Since the effect is nice and fluffy compared to paralysis, we can use it
liberally.

--------------------------------------------------------------------------------
a7d93b2396 | Adam Borowski | 2011-05-15 15:52:34 +0200

Testing weight for chaos petrification.

--------------------------------------------------------------------------------
3e33e22571 | Raphael Langella | 2011-05-14 15:02:57 +0200

Fix travel stopping on undiscovered traps (#3969).

--------------------------------------------------------------------------------
2ae89f5c95 | Chris Hamons | 2011-05-14 11:27:58 +0200

Add new option, show_newturn_mark, which can disable the leading character in 
the message log related to new turns.
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
c57974e594 | Raphael Langella | 2011-05-14 11:25:57 +0200

Remove the stap_prompt option.
You can always set trapwalk_safe_hp to 0.

--------------------------------------------------------------------------------
b480a0fd77 | Raphael Langella | 2011-05-14 01:17:39 +0200

Add an is_safe() method to trap_def.
This fix #3966. The method should be usable by monsters too, but it isn't
currently.

--------------------------------------------------------------------------------
8df6e7f64b | Raphael Langella | 2011-05-13 23:04:46 +0200

Also show boosted skills in dumps.

--------------------------------------------------------------------------------
d1c4d87642 | Raphael Langella | 2011-05-13 23:04:46 +0200

Fix tentacles being considered safe.

--------------------------------------------------------------------------------
50ed94da32 | Robert Burnham | 2011-05-13 06:23:23 -0500

Merge mons_attack_you and mons_attack_mons into monster_attack
Also does some build fixes and comment updating. Adds a few todos too.
The merge of these two methods into monster_attack does not completely
leave the original code unchanged. The move removes output messages for
stopping confused / berserked friendly monsters from attacking other monsters
while inside Zin's sanctuary.

--------------------------------------------------------------------------------
abba48c9e0 | Adam Borowski | 2011-05-13 04:26:26 +0200

Spectral frog tile (Robsoie)

--------------------------------------------------------------------------------
4379f2f295 | Chris Campbell | 2011-05-12 23:49:30 +0100

Boost Summon Dragon duration, allow two low-tier dragons at high power

--------------------------------------------------------------------------------
bf6ad8ec46 | David Lawrence Ramsey | 2011-05-12 09:11:18 -0500

Document recent merfolk glyph color changes.

--------------------------------------------------------------------------------
64589e676c | David Lawrence Ramsey | 2011-05-12 09:10:32 -0500

Remove now-unused Berserker Rage spell description, and flag it monster-only.

--------------------------------------------------------------------------------
797e3c42e4 | Adam Borowski | 2011-05-12 14:51:48 +0200

Slightly less 'dozing.
It would be bad to overnerf them just minutes after restoration, though.

--------------------------------------------------------------------------------
7151df5094 | Adam Borowski | 2011-05-12 14:25:15 +0200

Revert "Ghost moth no longer hits like a bulldozer."
We need more bulldozing.

--------------------------------------------------------------------------------
61adee4d37 | Adam Borowski | 2011-05-12 14:23:06 +0200

Disable ghost moths from the early Lair portal vault.
They're supposed to be hardest enemies for a Lair rune branch, akin to
greater nagas or merfolk impalers/javelineers.  Having them gentle and
fluffy hurts their appearances in Zot.

--------------------------------------------------------------------------------
53aeb1f3d9 | Eino Keskitalo | 2011-05-12 11:30:40 +0300

Credit usability testers from Oulu University.
I omitted myself and Janne Lahdenperä, as we are already devteam members.

--------------------------------------------------------------------------------
7b79997c53 | Robert Burnham | 2011-05-12 02:38:18 -0500

Move stab-properties from attack class to melee_attack class
For now at least, we don't have any ranged stabbing (not that ranged
combat uses the attack class anyways, but that's beside the point).

--------------------------------------------------------------------------------
4edf8e8c1f | Robert Burnham | 2011-05-12 02:13:13 -0500

Collapse player_apply_attack_delay into calc_attack_delay
Player_apply_attack_delay used calc_attack_delay to obtain the final
attack delay, then apply it to the player via you.time_taken. In an effort
to streamline the sqeuence of methods called via any attack, removing
monster or player-specific methods helps maintainability.

Perhaps eventually we can move the application of monster attack_delay
into calc_attack_delay and rename it to apply_attack_delay or even
calc_apply_attack_delay.

This commit also in-lines mons_lose_attack_energy since it was only
being used once and is technically a special-case method (most other
adjustments of monster energy use monster->lose_energy().

--------------------------------------------------------------------------------
ef07357242 | Adam Borowski | 2011-05-12 00:32:57 +0200

Typo fix (Excedrin).

--------------------------------------------------------------------------------
8a834fc39a | Chris Campbell | 2011-05-11 19:12:53 +0100

Re-weight potions, make potion of berserk rage more common
Made as common as potions of resistance, invisibility, magic (previously
it was even rarer than cure mutation!)

--------------------------------------------------------------------------------
be4abae6c8 | Chris Campbell | 2011-05-11 19:12:52 +0100

Fix wording

--------------------------------------------------------------------------------
65f56b7b71 | Chris Campbell | 2011-05-11 19:12:51 +0100

Remove the Teleport Self spell
It existed as a spell, ring/evocable property, wand, and scroll. Of
these, the spell is probably the least used and the least interesting,
especially since the ring is fairly common and provides a similar
renewable and cheap source of teleportation.

--------------------------------------------------------------------------------
a1422f39c1 | Vsevolod Kozlov | 2011-05-11 21:55:06 +0400

Rename megabats to bats.
This doesn't bring the 'giant' back, so the original purpose of renaming them is
not defeated.

The rationale is that most people don't care about the name, but the few who do
are in some way dissatisfied with it.  So this just polishes the bats a bit.
Bats remain mega in two vaults (megacathedral and goddamned_bats), in hopes to
make everybody happy.

--------------------------------------------------------------------------------
1b986fcb25 | Robert Burnham | 2011-05-11 11:47:54 -0500

Begin utilizing new handle_phase_ organization
Moves general pre-attack code into handle_phase_attempted, notably fumbled
attacks (which xom finds entertaining and end combat) and confused self-attacks
(xom also finds funny, but does not end combat since damage has to be done to
the attacker).

Moves to_hit calculation into the init_attack code and organizes some other
basic calculations or assignments (wpn_skill, shield, defender_sheid) to
the top of init_attack for readibility. From a preliminary look at the code
moving these assignments up won't impact anything.

Lastly, moves the monsters-hiding-in-rock code into handle_phase_blocked
since its conceivably a blocked attack; we just have to make sure that
no other extraneous effects happen before combat ends, since we want
to make sure that nothing wierd happens to monsters hiding inside rock.

--------------------------------------------------------------------------------
96a2858c61 | Adam Borowski | 2011-05-11 15:15:08 +0200

Stop and ask the player when trying to butcher corpses as a vampire (bmh).
There's no point in doing so unless you know Sublimation or Simulacrum.

--------------------------------------------------------------------------------
b78db85017 | Adam Borowski | 2011-05-11 14:46:23 +0200

Axe the Berserker Rage spell.  Boost Crusaders.
The replacement is intentionally questionable, so there is an incentive
of continuing the discussion and improving it -- but not bad enough so
it would break the game if it stays.

The spell's code stays since it is a valid monster spell (bears,
berserkers), although Rupert needs to get spanked for putting his filthy
magic-using hands in Trog's domain.

--------------------------------------------------------------------------------
7126c74830 | Adam Borowski | 2011-05-11 14:26:34 +0200

Cut attempts to use control, CJK or invalid characters as display glyphs.
This has a side effect of reverting glyphs to ASCII on GNU systems with no
valid locale, as glibc doesn't load character classification data in such
cases.  Other libcs might do the same.  This is good since we wouldn't be
able to display non-ASCII glyphs anyway.

--------------------------------------------------------------------------------
53d52e4f66 | Adam Borowski | 2011-05-11 12:49:47 +0200

Repeat a random test ("any corpse") 100 times to let the failure show up.

--------------------------------------------------------------------------------
49196a3c5f | Raphael Langella | 2011-05-11 01:12:57 +0200

Remove a forgotten debug variable.

--------------------------------------------------------------------------------
1fcdcfc6ce | Raphael Langella | 2011-05-11 01:09:19 +0200

Describe the skill boost in detailed god description.

--------------------------------------------------------------------------------
df6069d36c | Raphael Langella | 2011-05-11 01:09:19 +0200

Remove Ashenzari XP boost.

--------------------------------------------------------------------------------
45f866c627 | Raphael Langella | 2011-05-11 01:09:18 +0200

Ashenzari skill boost.
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:god:ashenzari#plan_for
_09

Boost skills depending on bounded parts. There's 3 level of skill boost and the
formula for the bonus is:
piety_rank * factor - skill_level / 4

piety_rank is capped by bondage level + 2. Factor is 1, 1.25 or 1.5 depending
on bonus level.

Boosted skills are:
Bounded hands
  medium boost to weapon skill (or high for 2 handers).
  low boost to staves and evocations for enhancer and channeling staves.
  medium boost to spellcasting for other staves.
  medium boost to evocation for rods.
  low boost to shield for wearing a cursed shield.

Bound armour
  for light armour (evp < 2) low boost to dodging and stealth.
  for medium armour (evp < 4) low boost to dodging and armour.
  for heavy armour (evp >= 4) medium boost to armour.
  bonus gets better if fully bounded in armour (all slot cursed).

Bound jewellery
  boost to all magic school and evocation. Bonus is low for partial bondage
  and medium for full bondage.

Felids can't get the full bonus since they are limit to 3 for bondage level.
I think it's OK. Ash's thing is binding yourself with cursed items, Felid's
thing is not using items. I don't see why the should receive the benefit
without having to make the sacrifice.

Penance
  All skills are reduced by 4.

--------------------------------------------------------------------------------
7b1df025ce | Raphael Langella | 2011-05-11 01:09:18 +0200

Condense bondage messages into a single one when uncursing several items.

--------------------------------------------------------------------------------
b7efccc0c5 | Raphael Langella | 2011-05-11 01:09:18 +0200

Ahsenzari: add a fourth tier of bondage by differentiating hands.
Also differentiate between partial and full bondage for armour and
jewellery. To be used with skill boost.
Description can get a bit verbose and could probably use some work.

--------------------------------------------------------------------------------
4f0115c733 | Adam Borowski | 2011-05-10 22:13:09 +0200

A sick abyssal vault by bmh.  All hail Xom!

--------------------------------------------------------------------------------
6499e47809 | Adam Borowski | 2011-05-10 13:25:01 +0200

Don't randomize B in the temple_of_Zot temple layout.
This caused random failures on db rebuild.

The overflow temple code reacts to randomization there pretty badly,
and quite for a good reason.  Thus, it's safer to not subst B at all.
I lamely duplicated the coinflip()ped variants.

--------------------------------------------------------------------------------
401ea30d12 | Raphael Langella | 2011-05-10 12:55:45 +0200

Don't allow Ashenzarites to change body armour with a cursed cloak.
Somehow, I forgot this one when I reverted all the exceptions.

--------------------------------------------------------------------------------
8ca271273d | Adam Borowski | 2011-05-10 00:16:43 +0200

Fix a stranded stone arch masquerading as deep water.

--------------------------------------------------------------------------------
cb2951402a | Adam Borowski | 2011-05-10 00:07:42 +0200

Fix the exit_hell tile not being used.

--------------------------------------------------------------------------------
15e7595ec4 | Adam Borowski | 2011-05-10 00:07:41 +0200

Radical re-tiling of the Vestibule.

--------------------------------------------------------------------------------
b69944e894 | Adam Borowski | 2011-05-10 00:07:41 +0200

Denzi's "infernal flower" tile set.
They don't get assigned anywhere yet.

--------------------------------------------------------------------------------
43ecef0e1b | David Ploog | 2011-05-09 23:54:17 +0200

Autumnal temple by oiseaux.
Tiles testing needed!

Also downsized the zot style temple.
And removed a few temple maps.

--------------------------------------------------------------------------------
b346ad7f95 | Chris Campbell | 2011-05-09 21:14:28 +0100

Add missing traps to orb_monky_within_orb

--------------------------------------------------------------------------------
469431b373 | Chris Campbell | 2011-05-09 20:47:29 +0100

Don't allow avoiding good god wrath by swapping via another good god
This prevents players completely bypassing TSO wrath by going TSO ->
Elyvilon -> Makhleb, for example, or avoiding Zin wrath when going to
Jiyva since the other good gods have no problem with chaos.

There's still the problem of wraths not being independent (if you have
two gods angry at you, you won't get wrath twice as often - it'll last
twice as long, instead).

--------------------------------------------------------------------------------
ce10f6eab3 | Chris Campbell | 2011-05-09 20:47:28 +0100

Remove Makhleb's MP on kills

--------------------------------------------------------------------------------
bff156f45b | Adam Borowski | 2011-05-09 20:26:49 +0200

Use ZP rather than XP for Zot abilities.
The display sucks, it could be inserted into the gold_turns line, except
that some heretics might have it disabled.

--------------------------------------------------------------------------------
786bcc9349 | Adam Borowski | 2011-05-09 20:26:49 +0200

Zot Points, for use in ZotDef once the xp pool is removed.

--------------------------------------------------------------------------------
905c25f62d | Chris Campbell | 2011-05-09 17:54:27 +0100

Add a couple more orb guardians to orb_monky_twist

--------------------------------------------------------------------------------
d3ef5dbd49 | Chris Campbell | 2011-05-09 17:32:00 +0100

Add two more orb chamber variations (monqy)

--------------------------------------------------------------------------------
ec73287fe5 | Chris Campbell | 2011-05-09 17:21:54 +0100

Make the border of the Hall of Zot vault undiggable
This prevents a couple of weird abuses like digging all the way around
to the back of the vault with scrying in order to figure out where all
the monsters are, and what orb chamber it is.

--------------------------------------------------------------------------------
d95a1b8b74 | Adam Borowski | 2011-05-09 18:03:27 +0200

This weeks's Zot:5 colour.

--------------------------------------------------------------------------------
3d40279772 | Adam Borowski | 2011-05-09 17:59:59 +0200

Handle races without lips in imp suck-ups.
RL black humans have lips in colours that are still valid for regular roses,
so I guess most humanoids are fine.  Mummies have no lips visible.  Those in
lich form have no meaty parts, including lips.  Cats have them mostly covered
in fur.  Dragons have more prominent body parts to compliment.

--------------------------------------------------------------------------------
5821e79538 | Adam Borowski | 2011-05-09 17:59:59 +0200

Allow lua code to query you.mutation('breathe alcohol').

--------------------------------------------------------------------------------
326ab1fdeb | Chris Campbell | 2011-05-09 16:06:25 +0100

Improve the Sword of Zonguldrok
Give it the weapon stats of a double sword, and add the reaping brand
and the recurse attribute. Make hostile animate dead happen every turn,
and the zombies created by it provide no experience (also fixes zombies
created by Kikuubaqudgha wrath giving experience).

This makes it quite a powerful weapon, creating friendly zombies for
anything you kill directly but hostile ones for anything killed
indirectly (and making the food deprivation much more significant). The
recurse attribute prevents swapping away to get chunks too frequently.

--------------------------------------------------------------------------------
c39de3cc65 | Chris Campbell | 2011-05-09 16:06:25 +0100

Increase Animate Dead's radius from 7 to LOS_RADIUS (8)

--------------------------------------------------------------------------------
d23a70e73a | David Ploog | 2011-05-09 16:37:12 +0200

Update credits (elliptic).

--------------------------------------------------------------------------------
59224c514d | Adam Borowski | 2011-05-09 14:11:02 +0200

Brown-nosed imps.
Need a good deal of extra synonyms before the chance could be raised.
Shakespearean English is not the forte of dirty foreigners like me...

--------------------------------------------------------------------------------
43901c6ad2 | Adam Borowski | 2011-05-09 13:45:20 +0200

Special-case spriggan necromancy:27 title.
"Spriggan of Death" sounds bad :p

--------------------------------------------------------------------------------
f39d2c5bdd | Adam Borowski | 2011-05-09 13:23:16 +0200

Don't teleport shedu on top of walls, other monsters, you, outside the map, etc.

--------------------------------------------------------------------------------
64b888d908 | Adam Borowski | 2011-05-09 13:02:18 +0200

Obey no_rtele_into for monsters as well.
This fixes the Royal Jelly getting inside the treasure vaults, making it
impossible to kill.

--------------------------------------------------------------------------------
caa05f85f2 | Jesse Luehrs | 2011-05-08 16:28:06 -0500

blue death -> blizzard demon

--------------------------------------------------------------------------------
6cc63f9678 | Jesse Luehrs | 2011-05-08 16:02:46 -0500

split abjuration into two spells, single target/los
the single target version is smite targeted at the moment, mostly
because i don't feel like messing with the beam code... can look into
that later

--------------------------------------------------------------------------------
a27fdb691f | Jason | 2011-05-08 16:14:51 +0200

Fix missile tooltip for small species in tiles

--------------------------------------------------------------------------------
27c0084d00 | Jesse Luehrs | 2011-05-08 01:10:57 -0500

reweight all the demons, and clean this up
this will almost certainly need to be adjusted, but we can figure that
out later

--------------------------------------------------------------------------------
f600430666 | Jesse Luehrs | 2011-05-08 00:08:14 -0500

actually, renormalize all of these

--------------------------------------------------------------------------------
27dce86bc5 | Jesse Luehrs | 2011-05-07 23:48:51 -0500

correct some of these percentages

--------------------------------------------------------------------------------
fba2ed7b18 | Jesse Luehrs | 2011-05-07 23:41:18 -0500

why can't quasits be summoned

--------------------------------------------------------------------------------
cf88c85ac3 | Jesse Luehrs | 2011-05-07 23:32:58 -0500

lose a couple random capitalizations

--------------------------------------------------------------------------------
e9aa99035d | Jesse Luehrs | 2011-05-07 23:32:11 -0500

recolor to avoid conflicts

--------------------------------------------------------------------------------
f272d7ca91 | Jesse Luehrs | 2011-05-07 23:16:07 -0500

actually, bump tormentors up to 2

--------------------------------------------------------------------------------
e63e0bcaac | Jesse Luehrs | 2011-05-07 23:14:11 -0500

shift around some demon tiers

--------------------------------------------------------------------------------
0392d60993 | Chris Campbell | 2011-05-08 04:12:37 +0100

Give Tormentors and Shadow Fiends a pain-branded attack

--------------------------------------------------------------------------------
a3605293e6 | Chris Campbell | 2011-05-08 04:12:36 +0100

Adjust some vault depths that weren't changed for shortened Elven Halls

--------------------------------------------------------------------------------
9cff0ba350 | Chris Campbell | 2011-05-08 04:12:36 +0100

Remove some obsolete Donald references, add/reword some speech

--------------------------------------------------------------------------------
7db660fc8d | Jesse Luehrs | 2011-05-07 21:40:23 -0500

couple more xp adjusts: pit/ice/normal fiends, acid blobs

--------------------------------------------------------------------------------
4da0f42b34 | Jesse Luehrs | 2011-05-07 21:19:10 -0500

there's no reason at all for griffons to be worth this much xp

--------------------------------------------------------------------------------
03ccfdd652 | Adam Borowski | 2011-05-08 02:56:55 +0200

Name the feature type you're trying to target in the fail message.
Using long names like "transparent stone wall" or "a wall of the weird stuff
that makes up Pandemonium" is unacceptable, so this code introduces wall type
names: "wall", "tree", "statue", etc.

--------------------------------------------------------------------------------
a216a41cd1 | Adam Borowski | 2011-05-08 02:56:55 +0200

Give more information on bad weapon brand crashes.

--------------------------------------------------------------------------------
e572026645 | Adam Borowski | 2011-05-08 02:56:55 +0200

Make the code for overwriting clouds more readable.

--------------------------------------------------------------------------------
c72633f3ac | Adam Borowski | 2011-05-08 02:56:55 +0200

Let targetters return a custom reason why targetting failed.
This fixes nearby walls being "out of range".

--------------------------------------------------------------------------------
6eee55f5ed | Jesse Luehrs | 2011-05-07 19:22:48 -0500

adjust some merfolk colors, to make them more visible

--------------------------------------------------------------------------------
53a43a8f20 | Adam Borowski | 2011-05-07 03:09:07 +0200

Give enter_trove_3 distinct tiles.
This matters since the player has no clue he needs to search for secret walls.

--------------------------------------------------------------------------------
b646bee852 | Adam Borowski | 2011-05-07 02:24:52 +0200

Simplify gnome sergeants, fix corpses.

--------------------------------------------------------------------------------
ef6dbbc1a0 | Raphael Langella | 2011-05-07 00:56:58 +0200

Use the spell hunger descriptions for abilities.

--------------------------------------------------------------------------------
e881818431 | Adam Borowski | 2011-05-06 15:41:02 +0200

Remove a no longer valid comment.

--------------------------------------------------------------------------------
5990e4f0bc | Adam Borowski | 2011-05-05 12:57:07 +0200

Don't use the identifier "vector".
Not doing bigger changes to eliminate std:: yet, not sure if everyone agrees
and at this point large sed jobs could harm merging unified_combat_control.

--------------------------------------------------------------------------------
e966545144 | Jesse Luehrs | 2011-05-05 02:27:13 -0500

don't allow shift-running to run you into slime walls

--------------------------------------------------------------------------------
7869752efe | Jesse Luehrs | 2011-05-05 01:53:53 -0500

the directory created by cloning the repository will be 'crawl'

--------------------------------------------------------------------------------
d8d9459be6 | Jesse Luehrs | 2011-05-05 01:30:59 -0500

point the install guide at the read-only repo url

--------------------------------------------------------------------------------
43ca6ed20e | Chris Campbell | 2011-05-05 05:29:26 +0100

Show an expiry warning when recasting a form leaves it with low duration
Previously the "You have a feeling this form won't last long." message
was only shown if the spell duration was low upon initially casting the
spell.

--------------------------------------------------------------------------------
28f0754262 | Adam Borowski | 2011-05-05 02:25:14 +0200

Bump statue resistances.

--------------------------------------------------------------------------------
589f31ec62 | Adam Borowski | 2011-05-05 02:25:14 +0200

Make the temple of Zot rare.
dpeg likes it, st_ violently argues against, Zaba is wary.  I wouldn't be
opposed to removing it completely, but before dpeg says something, let's
not have it be more frequent than most other vaults.

--------------------------------------------------------------------------------
4d2d95fe3b | Raphael Langella | 2011-05-04 23:10:06 +0200

Don't toggle autopickup when a safe monster turns invisible (#3917).

--------------------------------------------------------------------------------
58ccf2e157 | Chris Campbell | 2011-05-04 03:40:00 +0100

Typo fix

--------------------------------------------------------------------------------
b30b422aef | Chris Campbell | 2011-05-04 03:39:59 +0100

Change minmay_item_behind_shaft from stone to rock
So that the fact that it's a vault containing a shaft trap isn't
immediately given away.

--------------------------------------------------------------------------------
5631905b45 | elliptic | 2011-05-03 22:35:04 -0400

Fix magic-mapped stairs being incorrectly colored (#3789).

--------------------------------------------------------------------------------
2823e392bd | Raphael Langella | 2011-05-03 22:02:27 +0200

Fix running not stopping to announce items and features.

--------------------------------------------------------------------------------
ffd990633c | Adam Borowski | 2011-05-03 12:18:28 +0200

Remove redundant (X + X) / 2, amend a comment.
I inserted a correction rather than editing the original comment, since
I'm not sure what was the intent.

--------------------------------------------------------------------------------
c3939b18b2 | Adam Borowski | 2011-05-03 11:59:07 +0200

Don't crash on monsters with negative AC.
It's possible with player ghosts.

Other places make negative AC work as 0, so it does here too.

--------------------------------------------------------------------------------
d46eab4552 | David Lawrence Ramsey | 2011-05-02 15:27:10 -0500

Tweak punctuation.

--------------------------------------------------------------------------------
8d47146dea | David Lawrence Ramsey | 2011-05-02 10:40:10 -0500

Remove the overly specific time reference for when Ashenzari was cursed.

--------------------------------------------------------------------------------
0ab6b11ea7 | David Lawrence Ramsey | 2011-05-02 10:35:30 -0500

Disallow artefact holy wrath weapons with Ashenzari's name on them.
The holy wrath brand repels curses, so this seems appropriate.

--------------------------------------------------------------------------------
5b5f660041 | Florian Diebold | 2011-05-01 20:15:25 +0200

Fix DGL compilation.

--------------------------------------------------------------------------------
f5be6fcaf8 | Adam Borowski | 2011-05-01 20:15:13 +0200

Get rid of itoa().
Even worse, it had two redundant implementations.

--------------------------------------------------------------------------------
b413922f74 | Adam Borowski | 2011-05-01 20:15:13 +0200

Old #ifdef purge: USE_FILE_LOCKING.
Skipping this just causes corruption if you start Crawl twice, and it was
not supported only on DOS.

--------------------------------------------------------------------------------
bb538a1b7c | Chris Campbell | 2011-05-01 19:01:41 +0100

Give Eidolons messages when casting
Also make them moan upon noticing you, instead of being silent.

--------------------------------------------------------------------------------
6ec6161b55 | Adam Borowski | 2011-05-01 17:31:46 +0200

Handle SIGHUP in tiles and on Windows.
(Ok, ok, on Windows it's a ConsoleHandler but does basically the same).

--------------------------------------------------------------------------------
c8f860887b | David Lawrence Ramsey | 2011-04-30 10:24:42 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
ac4ce1cfc2 | Adam Borowski | 2011-04-30 11:52:25 +0200

Use the hill giant tile for detected giants.
(It's only the Dowsing card and Xom casting Detect Monsters left, right?)

--------------------------------------------------------------------------------
d804caca3c | Adam Borowski | 2011-04-30 11:28:27 +0200

Declare deletion of save files as "safe".
That's anything but safe, but at the point the user has no expectation
of having to press capital Y, and the reason for requiring that (vi keys)
doesn't apply there.

Or, should we perhaps ask for typing "yes"?

--------------------------------------------------------------------------------
1e30ecfc1b | David Lawrence Ramsey | 2011-04-29 18:50:16 -0500

Fix ogre hunters' not getting large rocks and nets.
Bug also introduced by cff50aae.

--------------------------------------------------------------------------------
806b3e6483 | Chris Campbell | 2011-04-30 00:08:02 +0100

Guarantee the ogre mages in st_orc_ogre_mass to make it comparable to the other 
orc endings

--------------------------------------------------------------------------------
79e28fe3a4 | David Lawrence Ramsey | 2011-04-29 18:06:42 -0500

Add comment.

--------------------------------------------------------------------------------
6a74e912bc | Raphael Langella | 2011-04-30 00:51:20 +0200

Add a fake giant monster to be used as a genus instead of hill giant.
See #3644 and maybe #3901.

--------------------------------------------------------------------------------
7a125c3076 | Raphael Langella | 2011-04-29 23:57:04 +0200

Better butchering messages.
Pass the butchering tool into the delay. Had to increase the number of
delay parameters to 3.
There's no more switching messages. Only:
"You start butchering the foo corpse with your bar."
and:
"You finish ripping/chopping the foo corpse into pieces."

--------------------------------------------------------------------------------
f171c27155 | Raphael Langella | 2011-04-29 23:57:04 +0200

Fix wanderers getting only crap weapons.
Bug introduced by cff50aae.

--------------------------------------------------------------------------------
e8879050bb | Raphael Langella | 2011-04-29 23:57:04 +0200

Replace knife by dagger in a few vaults.

--------------------------------------------------------------------------------
1fbe1cbf3f | Raphael Langella | 2011-04-29 23:57:03 +0200

Remove generation of early uncursed knife.

--------------------------------------------------------------------------------
e697ad69f5 | Raphael Langella | 2011-04-29 23:57:03 +0200

Change the Spriggan's Knife from a knife to a dagger.

--------------------------------------------------------------------------------
9228690309 | Raphael Langella | 2011-04-29 23:57:03 +0200

Fix save compat.

--------------------------------------------------------------------------------
8aee19c2b3 | Gustaf Hallberg | 2011-04-29 23:57:03 +0200

Removed knives from the game.
Updated some stuff on implicit butchering.

--------------------------------------------------------------------------------
bf67be9671 | Gustaf Hallberg | 2011-04-29 23:57:03 +0200

Removed need for sharp weapon when butchering.

--------------------------------------------------------------------------------
221c9c8afc | Robert Burnham | 2011-04-29 16:54:12 -0500

Group and organize melee_attack methods

--------------------------------------------------------------------------------
1f96033f4c | Robert Burnham | 2011-04-29 16:51:25 -0500

Clean up comments and #ifdef DEBUG_DIAGNOSTIC mprfs

--------------------------------------------------------------------------------
849cdca7a3 | Robert Burnham | 2011-04-29 16:44:24 -0500

Update TODO

--------------------------------------------------------------------------------
2bc4ca2132 | Robert Burnham | 2011-04-29 15:59:24 -0500

Merge player_calc_hit_damage and mons_calc_damage
New method is calc_damage(), still uses mon_attack_def (was originally
planning on being able to easily remove it) because the struct is used 
everywhere
in the monster code for checking attack flavour and other things, removing it
isn't impossible (especially in favor of either no struct or a struct that both
players and monsters can use) but doing so would be an additional major rewrite.

--------------------------------------------------------------------------------
b09af68e6c | Adam Borowski | 2011-04-29 21:41:03 +0200

Simplify save file name logic now that uids are gone.

--------------------------------------------------------------------------------
d5ef3a3e12 | Adam Borowski | 2011-04-29 21:41:03 +0200

Properly handle saves whose name doesn't match the character.
Before, they would show up but start a new game after choosing them.

--------------------------------------------------------------------------------
53ad5ca12a | Adam Borowski | 2011-04-29 21:41:03 +0200

Offer to delete incompatible saves.
Declining this question currently exits, which is suboptimal.  It should
be probably merged with any other error when loading a game, though.

--------------------------------------------------------------------------------
70564e2234 | Adam Borowski | 2011-04-29 21:41:02 +0200

Fix unbounded recursion on holding '?' on the startup screen.
Why anyone would do this is beyond me, but a crash is a crash.

--------------------------------------------------------------------------------
69f58376b6 | Adam Borowski | 2011-04-29 21:41:02 +0200

Mark not loadable saves in red.

--------------------------------------------------------------------------------
3a53de700a | Adam Borowski | 2011-04-29 21:41:02 +0200

Make the chr chunk forward-compatible, so the save browser can view all games.
This fixes invisible saves that don't show up until you type that name.  You
still can't load those games, of course.

This code can read all old saves since the save packager was added (30.0), and
new ones until TAG_CHR_FORMAT will be bumped.

--------------------------------------------------------------------------------
ee24d4bd17 | Adam Borowski | 2011-04-29 21:41:02 +0200

Sort makefile.obj

--------------------------------------------------------------------------------
c4833ebdb6 | David Lawrence Ramsey | 2011-04-29 14:17:12 -0500

Fix indentation.

--------------------------------------------------------------------------------
5fc236cb1c | Robert Burnham | 2011-04-29 12:09:37 -0500

Mantis 3858 - Wensley's "bleeding" addition
Monsters with the "bleed" effect will bleed onto tiles (also triggers
smell_alert for nearby monsters).

--------------------------------------------------------------------------------
77b712376b | Robert Burnham | 2011-04-29 07:19:54 -0500

Undo revert, fix a variable mistyping, misc changes
Undo the revert of the externalization of monster attack rounds. Fixes
the problems where monsters would never miss (I thought it was related
to the externliazation, but it was just ev_margin in attack.h being of
type bool instead of int. Re-implement effective_attack_number and
track it both inside and outside of melee_attack (as necessary).

--------------------------------------------------------------------------------
c7d0e2698f | Chris Campbell | 2011-04-29 05:02:19 +0100

Update the options guide

--------------------------------------------------------------------------------
4586510fd6 | Chris Campbell | 2011-04-29 04:37:35 +0100

Increase the default dump_message_count

--------------------------------------------------------------------------------
97907384f5 | Chris Campbell | 2011-04-29 04:37:24 +0100

Show equipped artefacts as the same colour as other equipped items
Being able to distinguish between equipped/unequipped items at a glance
is more helpful than being able to distinguish between artefacts and
nonartefacts, particularly on the W and P menus.

--------------------------------------------------------------------------------
739b116d1f | Adam Borowski | 2011-04-29 01:03:11 +0200

A set of appearances for unidentified randart robes.
Old ones were shared with other armour -- "polished robe", come on...

--------------------------------------------------------------------------------
ed698ef8c7 | Adam Borowski | 2011-04-29 00:49:31 +0200

Remove an obsolete hack to hide "runed" artefacts.

--------------------------------------------------------------------------------
d548d421a4 | Adam Borowski | 2011-04-29 00:44:39 +0200

Split the db query for random armour name into robes, body armour and the rest.
The list of appropriate names can be quite different for these categories.

No actual changes for the content, yet.

--------------------------------------------------------------------------------
2c703faabe | Adam Borowski | 2011-04-29 00:25:24 +0200

Don't use random excursions for randarts.
This was an ugly hack; it also allowed only a limited amount of randarts
ever.  And we don't even ever use the saved value anymore.

--------------------------------------------------------------------------------
bea2e0e990 | Adam Borowski | 2011-04-29 00:11:13 +0200

Give the robe of misfortune, robe of folly and Lear's chain mail random 
appearance.

--------------------------------------------------------------------------------
c038912a24 | David Lawrence Ramsey | 2011-04-28 14:36:48 -0500

Make player/monster "extra balanced" checks check against SIZE_LARGE.
This matches size checks done elsewhere, and produces the same results
as before in any case.

--------------------------------------------------------------------------------
df2b6aa16a | David Lawrence Ramsey | 2011-04-28 14:28:49 -0500

Remove redundant body_size() parameters matched by the default value.

--------------------------------------------------------------------------------
ea30b76e34 | David Lawrence Ramsey | 2011-04-28 13:31:57 -0500

Resort the spells in the Book of Fire in ascending order by level.

--------------------------------------------------------------------------------
d4fa0a47a6 | Adam Borowski | 2011-04-28 15:34:04 +0200

Axe the axe in pan_surprise.

--------------------------------------------------------------------------------
0f6afe6bff | Adam Borowski | 2011-04-28 15:17:39 +0200

Set the signature weapon flag for Ignacio and DDAr.

--------------------------------------------------------------------------------
1bf0e18ab2 | Adam Borowski | 2011-04-28 14:57:03 +0200

Don't mess with the shopping list during post-mortem.

--------------------------------------------------------------------------------
f8867c99da | Adam Borowski | 2011-04-28 14:32:08 +0200

Make the grass greener in a vault.

--------------------------------------------------------------------------------
f8ff9ed5f2 | Jared C | 2011-04-28 10:31:17 +0200

Added Lua hooks for player's burden and max_burden

--------------------------------------------------------------------------------
c705943826 | Adam Borowski | 2011-04-28 06:41:22 +0200

Fix Pan walls being usually same as floor.

--------------------------------------------------------------------------------
e5ddd780d9 | Adam Borowski | 2011-04-28 06:35:06 +0200

Enable Ignacio.

--------------------------------------------------------------------------------
199e348f42 | Adam Borowski | 2011-04-28 06:05:26 +0200

Let Lugonu explain to Abyssal Knights what they're supposed to do.

--------------------------------------------------------------------------------
84417ff40d | Adam Borowski | 2011-04-28 06:05:26 +0200

Don't show hashes in versions that fit an exact tag.
This is git's default, we had silly --long only because the old versioning
needed that.

--------------------------------------------------------------------------------
57d6220634 | Adam Borowski | 2011-04-28 06:05:26 +0200

Makeshift descriptions for unfinished branches.
Just something to hush the error.

--------------------------------------------------------------------------------
e146c5cc0a | Adam Borowski | 2011-04-28 06:05:25 +0200

Move 0.3.4 changes to obsolete/

--------------------------------------------------------------------------------
ee3bd0d9b0 | Robert Burnham | 2011-04-27 15:29:29 -0500

Externalize monster attack rounds to fight.cc
This commit probably still doesn't work, but its a landmark in the process.

--------------------------------------------------------------------------------
9bbe62bb7b | David Lawrence Ramsey | 2011-04-27 12:25:40 -0500

Properly make Yred's Enslave Soul return MON_UNAFFECTED when appropriate.

--------------------------------------------------------------------------------
0127c7c6ab | Chris Campbell | 2011-04-27 17:44:05 +0100

Update Scroll of Enchant Armour description

--------------------------------------------------------------------------------
53f8530f88 | Adam Borowski | 2011-04-27 16:11:18 +0200

Fix a crash when a monster with Injury Mirror dies.
Don't unnecessarily call the foreign object, too.

--------------------------------------------------------------------------------
c240e73d43 | Adam Borowski | 2011-04-27 15:28:03 +0200

Don't assert on the arena if the player is not involved.

--------------------------------------------------------------------------------
0239fc72d1 | Adam Borowski | 2011-04-27 15:22:15 +0200

Fix a crash when fighting unarmed.

--------------------------------------------------------------------------------
b45bb96131 | Adam Borowski | 2011-04-27 15:06:21 +0200

Fix use of an uninitialized variable.

--------------------------------------------------------------------------------
b1bddcdb8f | Robert Burnham | 2011-04-27 07:58:17 -0500

Fix segfault in shield_tohit_penalty

--------------------------------------------------------------------------------
cc26816186 | Chris Campbell | 2011-04-26 17:58:42 +0100

Don't let Jiyva wrath summon giant spores

--------------------------------------------------------------------------------
76a1692e2d | Chris Campbell | 2011-04-26 17:56:09 +0100

Make Jiyva wrath's forced transformations uncancellable

--------------------------------------------------------------------------------
809ea63fb8 | Robert Burnham | 2011-04-26 08:47:05 -0500

Merge branch 'master' into unified_combat_control
Conflicts:
	crawl-ref/source/actor.cc
	crawl-ref/source/delay.cc
	crawl-ref/source/directn.cc
	crawl-ref/source/directn.h
	crawl-ref/source/fight.cc
	crawl-ref/source/files.cc
	crawl-ref/source/mon-act.cc
	crawl-ref/source/monster.cc
	crawl-ref/source/mpr.h
	crawl-ref/source/player.cc
	crawl-ref/source/shopping.cc

--------------------------------------------------------------------------------
8dd12007ab | Adam Borowski | 2011-04-26 15:05:56 +0200

Update the date in the changelog.

--------------------------------------------------------------------------------
88c930bcb4 | Adam Borowski | 2011-04-26 15:04:29 +0200

Update the manual from reST.
It had to be massaged by hand and its appearance sucks, but that's better
than outdated docs.

--------------------------------------------------------------------------------
b39b71eb90 | David Lawrence Ramsey | 2011-04-26 00:19:32 -0500

Document Okawaru's accepting kills of holy beings on the "^" screen.

--------------------------------------------------------------------------------
77b621a0ac | Robert Burnham | 2011-04-25 15:19:01 -0500

Merge several player/monster diverged methods
Combines various monster/player methods. Some of the merges are less optimized
than others, but they serve well as a functional merge for the time beng. Merged
methods include calc_base_unarmed_damage, calc_base_weapon_damage and the three
wrapper methods in fight.cc which were responsible for instantiating the
melee_fight object and starting the whole process.

you_attack, monster_attack, and monsters_fight are all now in fight_melee

Once completed, fight_melee will also loop, handling each of a monster(s) 
various
attacks.

--------------------------------------------------------------------------------
96f00b85b9 | Adam Borowski | 2011-04-25 12:57:01 +0200

Fix crash and non-removal of armour when there's a question asked.
yesno() pops away a delay from the stack, and the delay there is needed
to remove your cloak and previous armour.  The game would then proceed
to wear the new item, notice something else is worn and rightfully assert.

--------------------------------------------------------------------------------
5db3381045 | Adam Borowski | 2011-04-25 02:48:39 +0200

Don't prompt for stat-death items when already <= 0.

--------------------------------------------------------------------------------
b4f28aa61f | Adam Borowski | 2011-04-25 00:12:47 +0200

Fix truncation of "Shoals:X" in character notes (elliptic)

--------------------------------------------------------------------------------
5b523d948c | elliptic | 2011-04-24 23:57:36 +0200

Fix the coloring of radius 1 staircase exclusions.

--------------------------------------------------------------------------------
367190e923 | Adam Borowski | 2011-04-24 23:57:36 +0200

Assert that no passable feature is placed on map border.
layout_cross could put water or lava there, which crashed in a number of
cases: patrolling monsters, wandering monsters, throwing an item, possibly
many more.

--------------------------------------------------------------------------------
f8d813ff35 | Adam Borowski | 2011-04-24 23:57:35 +0200

"Endless lava", for map borders.
Need a glyph/colour pair and a tile.

--------------------------------------------------------------------------------
d2c453bf1f | Adam Borowski | 2011-04-24 23:57:35 +0200

Fix fused descriptions for perm stone and floor.

--------------------------------------------------------------------------------
f37372d40e | Chris Campbell | 2011-04-24 18:00:05 +0100

Allow stacking of Zin vitalisation stat boosts (up to +9)

--------------------------------------------------------------------------------
d16c747d8e | Raphael Langella | 2011-04-24 13:11:05 +0200

Fix scrolls of curse armour/jewellery being always identified (#3868).

--------------------------------------------------------------------------------
70a6d697ae | Adam Borowski | 2011-04-24 02:55:36 +0200

Fix passable lava at the border of evil_forest Lair ending.
This makes the vault a good deal uglier.  There's a lot of things which
will crash when there's something passable at the map edge, so I'm adding
rock to stop the crashes.  We can revert when all of those are plugged.

--------------------------------------------------------------------------------
1143071cbe | Adam Borowski | 2011-04-24 01:23:20 +0200

Fix failures to create non-Orc levels.

--------------------------------------------------------------------------------
c8a0f14c4b | Adam Borowski | 2011-04-24 00:28:56 +0200

Try with lightred Zot:5 stone.
I admit I'm flaying around wildly... the old version was spoilerific, one
with lightgrey stone seems to be hated even though no one said a word about
ZotDef which has it lightgrey since day one.

--------------------------------------------------------------------------------
7658181cf9 | Adam Borowski | 2011-04-24 00:25:33 +0200

Warn and allow aborting when transferring a 0.8 game to 0.9.
There's no going back so the player deserves a warning.  Before, we simply
made saves incompatible, but if we can keep compatibility, it can be nice.

--------------------------------------------------------------------------------
e1c58e5441 | Adam Borowski | 2011-04-24 00:25:33 +0200

Validate Pan colours; simplify.

--------------------------------------------------------------------------------
3b5977b3c7 | Chris Campbell | 2011-04-23 23:17:41 +0100

Make weapon and armour unrandarts a bit rarer

--------------------------------------------------------------------------------
06993f66d5 | Chris Campbell | 2011-04-23 23:17:39 +0100

Don't let Mennas speak when turning neutral

--------------------------------------------------------------------------------
f1a8200283 | Chris Campbell | 2011-04-23 23:17:37 +0100

Reduce steel damage bonus to 30%

--------------------------------------------------------------------------------
3d643ff0c8 | Chris Campbell | 2011-04-23 23:17:34 +0100

Make silver affect only chaotic/shapechanged/mutated creatures, reduce damage 
bonus to 75%
Silver should now be a lot easier to understand, by purely being an
anti-chaotic brand (especially since chaotic creatures are explicitly
labelled as such in-game, which wasn't true of corporeal vs incorporeal
undead).

--------------------------------------------------------------------------------
8ff00f8f22 | Adam Borowski | 2011-04-23 17:21:32 +0200

Don't spawn millions of hatches out of Orc.
This sadly can bring back the bubble bug, but there's no easy way to deal with
hatches for 0.8.  Bubbles are very rare outside of Orc, and you'd have to get
them on two consecutive levels to possibly be affected.

--------------------------------------------------------------------------------
700ffab81b | Adam Borowski | 2011-04-23 17:21:13 +0200

Include build and runtime architectures in version info.
The old info used kernel version and bitness of build machine, which are
irrelevant: most 32 bit systems today will run 64 bit kernels since
distributions tend to install these if the machine is capable of that.
We (very slightly) care about userland, not the kernel.

uname is worthless, too: in scratchbox, you might have an amd64 kernel,
i386 native userland, armel compiler, armhf target.

And if you want real fun, just wait for Debian multiarch.  And all that
complexity is totally not needed, since the compiler knows everything that
is relevant already.

--------------------------------------------------------------------------------
278d22c112 | Adam Borowski | 2011-04-23 17:21:13 +0200

Fix patched stable versions being "devel", sanitize gen_ver.pl, rip unused junk.

--------------------------------------------------------------------------------
731af19d83 | Adam Borowski | 2011-04-23 17:21:13 +0200

Disallow Burn Spellbooks and Ponderousify while silenced.

--------------------------------------------------------------------------------
0b725ba857 | Vsevolod Kozlov | 2011-04-23 10:39:28 +0400

Properly terminate a random_choose_weighted in plan_4.

--------------------------------------------------------------------------------
10c732ac68 | Raphael Langella | 2011-04-22 22:34:40 +0200

Fix duplicate inscription on artefact (#3826).

--------------------------------------------------------------------------------
8f319a2bb6 | Raphael Langella | 2011-04-22 21:58:54 +0200

Treat rotten food as contaminated for saprovores.
Unless level 3 of course.

--------------------------------------------------------------------------------
a37b373663 | Raphael Langella | 2011-04-22 21:36:01 +0200

Update the documentation regarding the new behaviour of easy_eat_chunks.

--------------------------------------------------------------------------------
25c916767a | Raphael Langella | 2011-04-22 20:54:22 +0200

Auto-eat while travelling.
If you set the easy_eat_chunks option and are carrying an edible chunk it will
be automatically eaten without interrupting travel, run or rest.

--------------------------------------------------------------------------------
9e140c92cb | Raphael Langella | 2011-04-22 20:54:22 +0200

Remove a duplicate.

--------------------------------------------------------------------------------
e43de11ae3 | Raphael Langella | 2011-04-22 13:56:25 +0200

Tiles: implement the new targetting for AoE spells.

--------------------------------------------------------------------------------
ae363b5fa6 | Raphael Langella | 2011-04-21 22:42:20 +0200

Force easy exit in the end game inventory menu (#3855).

--------------------------------------------------------------------------------
01be2b2732 | Raphael Langella | 2011-04-21 22:11:58 +0200

Euclidean: fix stealth check for diagonal moves.
There's a 0.4 probability of doing a second stealth check on diagonal moves.

--------------------------------------------------------------------------------
9ab19080f3 | Raphael Langella | 2011-04-21 21:10:22 +0200

Smarter targetting for dispel undead (#3853).
It will only target hostile undeads. I guess other spells could use that kind
of optimisation.

--------------------------------------------------------------------------------
2ea3644847 | Raphael Langella | 2011-04-21 21:10:22 +0200

Remove a forgotten code block in item_use.cc
Forgot it when editing 0bd11bcb5.

--------------------------------------------------------------------------------
eee764c2a5 | Vsevolod Kozlov | 2011-04-21 19:45:40 +0400

Make basic_altar "transparent".
I saw levels getting vetoed because they were supposedly split into several
zones by basic_altar, even though it's quite obvious that it cannot do that,
being all-passable.

--------------------------------------------------------------------------------
8be1362ce3 | Vsevolod Kozlov | 2011-04-21 19:45:40 +0400

Use dgn.is_validating for some more cases.

--------------------------------------------------------------------------------
aab6ca6dcb | David Lawrence Ramsey | 2011-04-21 10:09:00 -0500

Remove redundant force_monster_shout() function.

--------------------------------------------------------------------------------
30de546be9 | Adam Borowski | 2011-04-21 16:01:17 +0200

dprf()ize a number of #ifdef ... mprf(MSGCH_DIAGNOSTICS).
There's no cost for costly functions like name() anymore -- but remember,
if a dprf() had a side effect before, it did happen, but now it won't outside
of debug builds.

I skipped anything even remotely related to combat code, to avoid making
the combat overhaul merge any worse.

--------------------------------------------------------------------------------
846770870d | Adam Borowski | 2011-04-21 15:28:52 +0200

Shorten some mprf(DEBUG_DIAGNOSTICS, ...), axe unused debug #ifdefs.
Sadly, just dprf() is not enough when ->name() or the like is used, since
the compiler doesn't know these are pure functions.
(cherry picked from commit f1550f57c5a325d74bdfc0786d6d75d1adc5b538)

--------------------------------------------------------------------------------
d2c8c6c8c1 | Adam Borowski | 2011-04-21 15:28:26 +0200

Fix some misclassified arena messages.
Some were meant to be debug only -- turned to dprf().
Some are something we got used to -- changed to #ifdef ARENA_VERBOSE, on
by default.
(cherry picked from commit a5b6c13e04c29fad62d15406173f271bc3f1abc5)

--------------------------------------------------------------------------------
57a9775d2e | Adam Borowski | 2011-04-21 15:28:20 +0200

Convert a bunch of #ifdef DEBUG mprf() into dprf(). (cherry picked from commit 
7e171511b2bda4817288e771735cef876dbf3f28)

--------------------------------------------------------------------------------
4137a21d31 | Adam Borowski | 2011-04-21 15:17:19 +0200

Turn dprf() into a #define.
This allows using it to avoid #ifdef DEBUG_DIAGNOSTICS in a lot of places,
but sadly, introduces warnings which need exactly that #ifdef in others.

--------------------------------------------------------------------------------
89b65fc65c | Adam Borowski | 2011-04-21 12:21:43 +0200

Comment out a spammy debug mode message.

--------------------------------------------------------------------------------
82e204c745 | Adam Borowski | 2011-04-21 11:40:33 +0200

Fix lightgrey walls in Coc:7.
Also, don't use the scheme that on Coc:1-6 meant rock for stone.

--------------------------------------------------------------------------------
18657a43e5 | Adam Borowski | 2011-04-21 11:38:59 +0200

Fix Gloorx's level using lightgrey walls.

--------------------------------------------------------------------------------
1f64a78890 | Adam Borowski | 2011-04-21 11:12:10 +0200

Make a couple global variables static.

--------------------------------------------------------------------------------
ee34b6a422 | Adam Borowski | 2011-04-21 00:56:59 +0200

Don't crash when targetting a cloud at your position.
The message is wrong, but I'd rip directn.cc to pieces first.

--------------------------------------------------------------------------------
61c70f2ae8 | Adam Borowski | 2011-04-21 00:07:54 +0200

Fix documentation of tab keys.
\t was never a recognized syntax.

We might allow writing "tab" instead of "^I", but it would be better to
recognize symbolic names for all function keys instead of just one.  And
that's not easy since the same key can give different codes on different
terminals even on the same platform.

--------------------------------------------------------------------------------
b2c48b9c1b | Adam Borowski | 2011-04-21 00:07:54 +0200

Bump the copyright year.

--------------------------------------------------------------------------------
0bd11bcb5c | Raphael Langella | 2011-04-20 23:56:50 +0200

Fix some messages for scrolls of RC and curse foo.

--------------------------------------------------------------------------------
b252888ead | Raphael Langella | 2011-04-20 23:27:20 +0200

Fix identify not taking a turn if cancelled after the first identification.
Also fix the crumbling message being printed for each identified item.

--------------------------------------------------------------------------------
319b302736 | Raphael Langella | 2011-04-20 23:23:59 +0200

New experimental compile time option: EUCLIDEAN.
Diagonal movements cost 1.4 more than orthogonal ones.

Implemented:
Player movement.
Monster movement.
Monster pathfinding.

Not implemented:
Stealth: no idea how to handle it properly since it ignores movement speed.
Travel: it won't always use the shortest path but on the other hand, it already
avoid useless zigzaging so it shouldn't be too bad.
AI: Outside of pathfinding, it's not aware of it, but I'm not sure if it's
really a problem.
LOS: I considered reducing the LOS to 7, so that the diagonal distance and
orthogonal distance of the los are equal (5 * 1.4 = 7), but I'm not sure it's
worth it. Other edge cells will have a slightly different distance anyway.

Changed:
show_game_turns option default to true.

--------------------------------------------------------------------------------
52db06e467 | Raphael Langella | 2011-04-20 23:08:57 +0200

Fix clinging monsters being drawn in water in ^X screen.

--------------------------------------------------------------------------------
e58bd2af3d | Raphael Langella | 2011-04-20 23:08:22 +0200

Fix clinging status not updated when monster doesn't move.
Bug introduced by 4e5e0e8.

--------------------------------------------------------------------------------
3f4ca3dc10 | Chris Campbell | 2011-04-20 01:00:33 +0100

Start Artificers with quarterstaves, instead

--------------------------------------------------------------------------------
e41c3c7b6c | Chris Campbell | 2011-04-20 01:00:31 +0100

No more staff monks
Reverts commits 9e8621d460, 13d79a5e24 and 0f198270be, and partially
reverts c0dc4f46d8.

--------------------------------------------------------------------------------
a9118d0924 | Chris Campbell | 2011-04-20 01:00:29 +0100

Change Translocation book contents slightly
Move Passage of Golubria from the Warp to Spatial Translocations.
Move Recall and Teleport Self from Spatial Tloc to Warp.
Add Recall back to the book of Unlife (for now, hopefully removing it
again once permanent allies handle interlevel travel better).

--------------------------------------------------------------------------------
53d6114195 | Chris Campbell | 2011-04-20 01:00:28 +0100

Adjust Nemelex's "disappointed" message, only use it for targetless destruction 
cards
Also don't make Xom always act when a card is wasted.

--------------------------------------------------------------------------------
ebec7d1540 | Chris Campbell | 2011-04-20 01:00:25 +0100

Adjust pizza messages
(Tweaked some other food messages too).

--------------------------------------------------------------------------------
fb89035815 | Adam Borowski | 2011-04-20 00:34:57 +0200

Fix auto actions (like travel) not applying berserk penalties.

--------------------------------------------------------------------------------
9492bd9643 | Adam Borowski | 2011-04-20 00:25:19 +0200

Make sure death milestones are one line.
The death description code is a nightmare...

--------------------------------------------------------------------------------
9a4242c361 | Raphael Langella | 2011-04-20 00:18:56 +0200

Monsters which can use items are never considered safe if they have LoF.
By trying to rest or travel with a monster in LOS which can't path to you
but could fire at you, you could know if it is carrying a wand or missiles.
Discussed in #3813.

--------------------------------------------------------------------------------
342dd183ba | Raphael Langella | 2011-04-19 23:47:44 +0200

Fix pattern for branded weapon colouring (#3831).

--------------------------------------------------------------------------------
d7bc51aaf0 | Robert Burnham | 2011-04-19 16:21:14 -0500

Update calc_damage TODOs

--------------------------------------------------------------------------------
3a3ed5df84 | Adam Borowski | 2011-04-19 22:09:25 +0200

Don't acquire books of Minor Magic II and III.

--------------------------------------------------------------------------------
208e867c51 | Adam Borowski | 2011-04-19 22:03:06 +0200

Fix maxmp not getting reduced after butchery swap back to antimagic.

--------------------------------------------------------------------------------
104394a06c | Adam Borowski | 2011-04-19 21:57:49 +0200

Don't try to set -fsigned-char, it gets overwritten anyway.
(And using += would be a bit tricky there.)

--------------------------------------------------------------------------------
b6735de0c2 | Adam Borowski | 2011-04-19 19:08:46 +0200

Remove hard-coded masquerading of stone as rock in Zot.
It caused the susceptibility of certain parts of the final vault to be known
only to those who know uncommon spoilers.  Or tile players, who are shown
regular stone tiles!

The Zot:5 vault looks uglier, we may make the stone dark magenta or just
turn it to all rock/permarock.  This won't make this commit irrelevant as it
fixes other vaults that spawn in Zot, though.  I left the final vault ugly
for now since this matches tiles.

--------------------------------------------------------------------------------
d97b47c2e2 | Vsevolod Kozlov | 2011-04-19 21:04:37 +0400

Use dgn.is_validating() instead of crawl.game_started() to check whether map is 
being validated.

--------------------------------------------------------------------------------
086dde6304 | Raphael Langella | 2011-04-19 18:32:39 +0200

Fix autoexplore not stopping on item revealed by an opened door.

--------------------------------------------------------------------------------
d1c5c3445a | Raphael Langella | 2011-04-19 18:32:39 +0200

Remove duplicate assignation.
This is already done in check_for_interesting_features().

--------------------------------------------------------------------------------
12b0cf775d | Raphael Langella | 2011-04-19 18:32:39 +0200

Make grey draconian submerged in deep water.

--------------------------------------------------------------------------------
4e5e0e8f02 | Raphael Langella | 2011-04-19 18:32:39 +0200

Fix some clinging checks.
This should make monster clinging more reliable and fix #3830.

--------------------------------------------------------------------------------
79194120d9 | Raphael Langella | 2011-04-19 18:32:38 +0200

Update the clinging status of monster swapping place.

--------------------------------------------------------------------------------
b0588ba8a0 | David Lawrence Ramsey | 2011-04-19 10:22:12 -0500

Fix uninitialized variable warning.

--------------------------------------------------------------------------------
bac4009f04 | Adam Borowski | 2011-04-19 16:14:09 +0200

Detect incompletely regenerated databases.
This saves the timestamp in the database instead of relying on the .db
file's mtime (which would be newer than source).  There are better ways to
do this, but I did the simplest one for now, since aborted builds result in
very "fun" bugs, and we badly want this fixed for 0.8.

Also, there were nice race conditions, multiple rw opens, and so on.

The whole database system needs to be rewritten quite badly, it's a mess of
layers upon layers, remnants of DBM that was used in the dark past.

This is only the db, dsc files suffer from the same problems, and the fix
there will be a lot more complex :(

--------------------------------------------------------------------------------
0eb8a15021 | Robert Burnham | 2011-04-19 07:27:10 -0500

Move _steal_item out of melee_class
Sure, its a melee effect, but its actually an action of the monster and
could (in the future) take place sometime other than in melee combat.

--------------------------------------------------------------------------------
9874a1fa20 | Adam Borowski | 2011-04-19 13:09:51 +0200

Axe a few debugging writes.

--------------------------------------------------------------------------------
e16a1ef995 | Adam Borowski | 2011-04-19 13:01:29 +0200

Cloud targetting.
Also, the actual effect has slightly changed, to what was described as the
desired behaviour in a comment.  The old way would take quite a tricky
calculation to predict.

TODO: there is a slight information leak currently, allowing people to tell
whether a corridor is blocked.  A proper solution would expand the "maybe"
region when an unknown square is potentially affected.

--------------------------------------------------------------------------------
96f2ada6df | Adam Borowski | 2011-04-19 12:48:05 +0200

Nerf captain's cutlass just a slightest bit.

--------------------------------------------------------------------------------
f0975c9f0e | Adam Borowski | 2011-04-19 12:48:05 +0200

Reformat statuses one per line.
The old way required reformatting every time you added or removed something.

--------------------------------------------------------------------------------
057751d62d | Adam Borowski | 2011-04-19 12:48:05 +0200

Slight reformatting.

--------------------------------------------------------------------------------
32a2dd253c | Raphael Langella | 2011-04-19 12:40:17 +0200

Character status show ranged speed when wielding a launcher.
Currently it shows melee speed which is quite useless and misleading.

--------------------------------------------------------------------------------
ef92d52fa6 | David Lawrence Ramsey | 2011-04-18 19:59:16 -0500

Fix changelog apostrophes.

--------------------------------------------------------------------------------
44d50ad4df | Adam Borowski | 2011-04-19 02:33:42 +0200

Reword parts of the changelog.

--------------------------------------------------------------------------------
5fe1e5da06 | Jesse Luehrs | 2011-04-18 19:01:29 -0500

shorten these native depths, now that elf is shortened

--------------------------------------------------------------------------------
a27170e3cb | Robert Burnham | 2011-04-18 16:04:12 -0500

Clean up removal of mons_self_destructs
Note: there is still a function in mon-util "mons_self_destructs" but it is
not the same as what used to be defined in melee_class.

--------------------------------------------------------------------------------
1be7f4d3fe | Raphael Langella | 2011-04-18 22:38:38 +0200

Revert "Removed need for sharp weapon when butchering."
This reverts commit 7744edeafb50863de594c81f149dfd728720f587.

This patch isn't ready, I pushed it by mistake.

--------------------------------------------------------------------------------
d3fae3f828 | Raphael Langella | 2011-04-18 20:38:30 +0200

Better error message for evoking melded items.

--------------------------------------------------------------------------------
fa3380d0bc | Raphael Langella | 2011-04-18 20:38:30 +0200

Smarter genus factoring for monsters coming into view.
While not strictly fixing #3644, it makes the bug very unlikely to ever happen.
Genus name will only be used when more than 4 monster types come into view and
several of them share the same genus. So in practice, it will only happen for
monsters which have a well defined base genus.

--------------------------------------------------------------------------------
7744edeafb | Gustaf Hallberg | 2011-04-18 20:38:29 +0200

Removed need for sharp weapon when butchering.

--------------------------------------------------------------------------------
f1550f57c5 | Adam Borowski | 2011-04-18 15:36:40 +0200

Shorten some mprf(DEBUG_DIAGNOSTICS, ...), axe unused debug #ifdefs.
Sadly, just dprf() is not enough when ->name() or the like is used, since
the compiler doesn't know these are pure functions.

--------------------------------------------------------------------------------
7edf26d1b4 | Adam Borowski | 2011-04-18 15:34:44 +0200

Don't capitalize error, diagnostic and wizard messages.
It's an ugly hack currently, to 1. not make the combat merge even nastier
than it already will be, 2. not do the work twice when we'll probably
overhaul mprf().

--------------------------------------------------------------------------------
d93c80fc11 | Adam Borowski | 2011-04-18 13:39:07 +0200

A well-familiar temple layout.

--------------------------------------------------------------------------------
2cce0ad51d | Adam Borowski | 2011-04-18 12:46:46 +0200

Hide output charset conversions behind a macro.
They're not that interesting and cloud code readability.  What humans care
about is the conversion of Crawl's internal format to native strings (OUTS)
or native wide strings (OUTW, Windows only).

--------------------------------------------------------------------------------
264a91209d | Adam Borowski | 2011-04-18 12:25:05 +0200

Fix build failure with SOUND_PLAY_COMMAND.

--------------------------------------------------------------------------------
749b47f76a | Adam Borowski | 2011-04-18 03:26:11 +0200

Fix aptitude generation with truly ancient versions of Perl, like those on BSD.

--------------------------------------------------------------------------------
373b9bef18 | Adam Borowski | 2011-04-18 03:26:11 +0200

Don't use simple "Book" in randart spellbook names.
It can produce names identical to a number of standard books.

--------------------------------------------------------------------------------
a9586bca08 | Adam Borowski | 2011-04-18 03:26:11 +0200

Fix mute spellcasters being able to speak.

--------------------------------------------------------------------------------
31238ac0f2 | Raphael Langella | 2011-04-18 00:02:54 +0200

Fix leaving the dungeon prompt taking a turn (#3823).

--------------------------------------------------------------------------------
a93de5562b | Johanna Ploog | 2011-04-17 19:51:43 +0200

Update the change log to 8e11c5f.
Feel free to add, remove, tweak anything you think needs changing.
Please remember to add all options that have been added, removed or
renamed.

--------------------------------------------------------------------------------
8e11c5fbe1 | Johanna Ploog | 2011-04-17 14:58:15 +0200

Add Curio's crystal plate tile as ego/randart variant.

--------------------------------------------------------------------------------
971706a25c | Vsevolod Kozlov | 2011-04-17 16:08:51 +0400

lair.des: Clean up small ending definitions a bit, and make them have a smaller 
weight.

--------------------------------------------------------------------------------
a7b389d34f | Raphael Langella | 2011-04-17 09:06:37 +0200

Fix melded rod being evokable (#3821).

--------------------------------------------------------------------------------
b297e4973c | Vsevolod Kozlov | 2011-04-17 10:54:29 +0400

Place two small Lair ending vaults using a post-place hook.

--------------------------------------------------------------------------------
fd369df9f3 | Vsevolod Kozlov | 2011-04-17 10:49:54 +0400

Revert "Resolve Lair ending loot issues by placing one or multiple vaults."
This partially reverts commit 6da8dc81e50375633b768d3bbf1e1e8b07b9ebb7.

This can be done in a way that does not involve hacking dungeon.cc.

--------------------------------------------------------------------------------
a57b219dc3 | Vsevolod Kozlov | 2011-04-17 09:40:21 +0400

rooms.des: Correctly check whether we're running in level validation.

--------------------------------------------------------------------------------
22a44be3ae | Vsevolod Kozlov | 2011-04-17 09:40:21 +0400

Condense special room definitions using per-range weights.

--------------------------------------------------------------------------------
2f49588f2f | Vsevolod Kozlov | 2011-04-17 09:40:21 +0400

Restrict treasure rooms on layout_roguey to Lair and D, and make them even 
rarer.

--------------------------------------------------------------------------------
387052d2f7 | Jude Brown | 2011-04-17 11:32:44 +1000

Allow setting of shapeshifter initial form via monster spec (#3818)
It's a bit difficult to get a shapeshifter as an unseen horror without
trial and error, so I added this in to allow you to place "shapeshifter
shifter:unseen_horror" to get an unseen horror-flavoured shapeshifter!

It's possible code for this already exists but I couldn't find any.

--------------------------------------------------------------------------------
fb7832e840 | David Lawrence Ramsey | 2011-04-16 19:38:30 -0500

Fix bad item name.

--------------------------------------------------------------------------------
6da8dc81e5 | Jude Brown | 2011-04-17 10:22:09 +1000

Resolve Lair ending loot issues by placing one or multiple vaults.
This commit partially reverts 0fecdd1629b8c375513f13fb5636aadbed4c48fc
by re-introducing loot into some vaults (the larger ones), and removing
loot from some vaults (the smaller ones).

It also removes all PLACE: Lair:$ tags and instead places Lair ending
vaults in _builder_normal -- mimicking how PLACE: Lair:$ would be
accomplished but instead of placing a single vault, placing two vaults
dependent on tags.

Thus, maps for Lair:$ should be tagged as follows:

 * lair_end_large: Large vaults (such as Jungle Book, Evil Forest and
   Enchanted Forest) with either a large foot print or a large amount of
   loot or monsters should be tagged as this.
 * lair_end_small: Smaller vaults (such as Frog Pond, Kennels and
   wormcave) should be tagged with this.

--------------------------------------------------------------------------------
45b45888b7 | Adam Borowski | 2011-04-16 20:11:36 +0200

Rename the monster dummy "octopode" so player glyph redefinitions work.

--------------------------------------------------------------------------------
a8d1939ab3 | Adam Borowski | 2011-04-16 19:32:58 +0200

No pure armour troves for octopodes.
They can wear hats and shields, so troves with a mix are fine.

I used both no_species_oc and no_species_op since the abbreviation is not
fully settled.

--------------------------------------------------------------------------------
14bdfeae18 | Adam Borowski | 2011-04-16 19:29:20 +0200

Say "Blade Tentacles" for stat death due to melding a randart.
(And fix some code duplication.)

--------------------------------------------------------------------------------
b2a838ac3a | Eronarn Palazzo | 2011-04-16 19:07:09 +0200

Only octopodes need to see more rings on the " screen.

--------------------------------------------------------------------------------
f01f30047a | David Lawrence Ramsey | 2011-04-16 07:51:36 -0500

Fix Mantis 3816: Silenced monsters shouldn't be able to read scrolls.

--------------------------------------------------------------------------------
da71e8ec67 | Adam Borowski | 2011-04-16 12:45:41 +0200

Correct ranges of magic mapping.
1. The value of 1000 was a magic cookie, restored.
2. Range cap makes no sense as the spell is no more.
3. Scroll mapping was affected by reduction at 70% range, making standing
   away from map edges still beneficial.

--------------------------------------------------------------------------------
d13ae3def5 | Johanna Ploog | 2011-04-16 11:07:39 +0200

Fix #3810: mouseclick movement working during the stat prompt.

--------------------------------------------------------------------------------
b6b047dc70 | Raphael Langella | 2011-04-16 00:04:54 +0200

Identify brand of vampiric and holy artefact weapons when wielding fail.
3682

--------------------------------------------------------------------------------
e3ae2c5cc0 | Johanna Ploog | 2011-04-15 23:51:41 +0200

Add XuaXua's improved death ooze tile.

--------------------------------------------------------------------------------
6d36c95e2b | Johanna Ploog | 2011-04-15 23:14:53 +0200

Fix #3811: Level annotations could not be cleared.

--------------------------------------------------------------------------------
3b1eaa15a9 | Raphael Langella | 2011-04-15 23:04:39 +0200

Silently return instead of asserting if seen_context is invalid.
I'm not sure why it happens, but it should fix the crashes.

--------------------------------------------------------------------------------
c186ca2bdd | Raphael Langella | 2011-04-15 19:59:36 +0200

Ashenzari detect monsters distinguish friendly ones.

--------------------------------------------------------------------------------
bf5fcf9a4b | Johanna Ploog | 2011-04-15 16:04:41 +0200

Don't let Felids autoquiver anything; suppress "(quivered)" status.

--------------------------------------------------------------------------------
796682c988 | Johanna Ploog | 2011-04-15 16:04:38 +0200

Also disallow Felids quivering stuff from the inventory.

--------------------------------------------------------------------------------
07f93ae5a3 | Adam Borowski | 2011-04-15 15:35:13 +0200

No stat boosts during Cheibriados penance.

--------------------------------------------------------------------------------
ad861fb791 | Johanna Ploog | 2011-04-15 15:01:03 +0200

Block the quiver commands for Felids.

--------------------------------------------------------------------------------
469748d697 | Johanna Ploog | 2011-04-15 15:01:00 +0200

Add a tile for sensed allies.
It's not used anywhere, yet.

--------------------------------------------------------------------------------
982966056c | Johanna Ploog | 2011-04-15 15:00:57 +0200

Filter scrolls of (old) paper out of the item knowledge screen.
Until the next version change, the item itself still exists.

--------------------------------------------------------------------------------
03b57e13bc | Raphael Langella | 2011-04-15 13:16:26 +0200

Use _is_butcher_delay instead of just checking for DELAY_BUTCHER.

--------------------------------------------------------------------------------
a5b6c13e04 | Adam Borowski | 2011-04-15 10:58:05 +0200

Fix some misclassified arena messages.
Some were meant to be debug only -- turned to dprf().
Some are something we got used to -- changed to #ifdef ARENA_VERBOSE, on
by default.

--------------------------------------------------------------------------------
7e171511b2 | Adam Borowski | 2011-04-15 10:58:05 +0200

Convert a bunch of #ifdef DEBUG mprf() into dprf().

--------------------------------------------------------------------------------
41d6e07ffc | Adam Borowski | 2011-04-15 10:58:05 +0200

Capitalized mprf().
It's going to be the default for mprf() since 99% uses are capitalized, but
it's safer to do this piecemeal then sed it back.

--------------------------------------------------------------------------------
41023b32df | Raphael Langella | 2011-04-15 00:31:03 +0200

Fire reduce icy shield and armour duration instead of destroying them.
Duration is reduced by damage * 10. When casting fire spells, duration is
reduced by spell_power * 3. Those numbers probably need to be adjusted.

--------------------------------------------------------------------------------
6c2e1adc93 | Johanna Ploog | 2011-04-14 23:02:06 +0200

Fix #781: handle throwing nets correctly in the Shoals tides.
First, there a 10% chance of a net simply being washed away (as in,
the item is moved by the tide even if the trapped critter isn't).
If this happens, clean up the net properly.

Second, whenever a monster (or the player) that happens to be caught
in a net is shifted by the tides, move the net with it and *don't*
clear the trapping status.

--------------------------------------------------------------------------------
2dd1d7d858 | Chris Campbell | 2011-04-14 20:47:02 +0100

Properly allow DUR_BUILDING_RAGE from battlelust cards to give you a turn to 
swap weapons
Also remove the ability to cancel building rage by drinking a potion of
berserk rage.

--------------------------------------------------------------------------------
29bdc4ac59 | Vsevolod Kozlov | 2011-04-14 22:12:21 +0400

Don't build layout_cross with windows in Lair.
Reportedly, it looks quite odd.

--------------------------------------------------------------------------------
a77f4b0eac | Johanna Ploog | 2011-04-14 20:06:05 +0200

Don't allow monsters pushing past monsters caught in a net.
That's one instance causing those nets stuck on stationary, but from
the various bug reports I got the impression that it can (also) happen
with just a single monster around.

--------------------------------------------------------------------------------
f726887928 | Chris Campbell | 2011-04-14 17:11:42 +0100

Make autopickup_no_burden default to true (#1282)
It seems there was a consensus to change this but then the FR was moved
to the wiki and forgotten about :)

--------------------------------------------------------------------------------
b3b59a4e93 | Johanna Ploog | 2011-04-14 17:07:00 +0200

Mantis #1372: Allow mouseclick-wielding ammunition (for enchantment).
This is likely to be confusing to players who don't know about
enchantment - they might end up thinking bashing monsters with arrows
might be useful - but it does make it more comfortable to wield ammo
you wish to enchant.

A proper solution to this dilemma would be to change the EW scrolls
to prompt for a target item instead of always using the wielded one.

--------------------------------------------------------------------------------
f543e09473 | Johanna Ploog | 2011-04-14 17:03:03 +0200

Mantis #1839: Treat clearing annotation prompt as "safe".
Lowercase 'y' is anough; also give feedback when clearing annotations.

--------------------------------------------------------------------------------
f4e0f7d7b9 | Johanna Ploog | 2011-04-14 15:18:03 +0200

Fix #1177: delay hintsmode altar message if glyph covered by a monster.

--------------------------------------------------------------------------------
a32c3bcafd | Adam Borowski | 2011-04-14 14:48:29 +0200

Work around FreeType having problems opening files on Windows.
According to its documentation, FT_New_Face() expects the file's name in
UTF-8 regardless of the system locale.  Too bad, there's a bug where
sometimes on Windows an 8 bit code page is used instead:
    http://www.mail-archive.com/freetype@nongnu.org/msg00939.html

Since we don't know if the version we're talking to is fixed or not,
it's safer to load the font file ourselves.

This fixes cases where zipped (not installed) builds were put into
a directory with a non-ASCII name.

--------------------------------------------------------------------------------
9f0dde9167 | Adam Borowski | 2011-04-14 14:48:29 +0200

Show non-ASCII in fatal errors on Windows.
They can include path/file names.

--------------------------------------------------------------------------------
30510a390a | Adam Borowski | 2011-04-14 14:48:29 +0200

Show FreeType errors on Windows, make them fatal.
There's no stderr there for graphical programs, except for cygwin which adds
it as a part of Unix emulation.

--------------------------------------------------------------------------------
031ae6b23c | Robert Burnham | 2011-04-14 07:18:21 -0500

Update TODOs

--------------------------------------------------------------------------------
3c2a7a710f | Robert Burnham | 2011-04-14 07:04:42 -0500

Remove mons_check_attack_percieved
Player perception of attack (as well as most monster perception) is handled
in line with the combat (which makes the most sense). This method actually
serves as the controler for a call to interupt the monster AI's activity.

--------------------------------------------------------------------------------
23211633df | Robert Burnham | 2011-04-14 06:57:07 -0500

Cleanup the merge of apply_defender_ac

--------------------------------------------------------------------------------
fcaaf2a1bc | Johanna Ploog | 2011-04-14 13:47:23 +0200

Really fix #3389: don't override food glyph with CMD_EAT.
Again, this is a hack (like 6b978d6c); the mechanic of using the
'%' glyph as a placeholder for command names is problematic.

--------------------------------------------------------------------------------
e7a6258c5f | Johanna Ploog | 2011-04-14 13:47:20 +0200

Add dolphin's shark tile, XuaXua's death ooze tile.

--------------------------------------------------------------------------------
ba1755e42e | Raphael Langella | 2011-04-14 13:43:30 +0200

Ignore wall clinging when checking the safety of a controlled blink.

--------------------------------------------------------------------------------
deea8b6f7c | Raphael Langella | 2011-04-14 13:15:39 +0200

Indentation fix.

--------------------------------------------------------------------------------
289c84a1c9 | Raphael Langella | 2011-04-14 13:15:39 +0200

Fix message when falling off a door.

--------------------------------------------------------------------------------
b0c7d4f3c6 | Raphael Langella | 2011-04-14 13:15:39 +0200

Fix expiration prompt when attacking a monster in deep water. (#3807)
You are now also prompt for controlled blink.

--------------------------------------------------------------------------------
e880ecbb79 | Adam Borowski | 2011-04-14 12:58:46 +0200

Fix dump output corruption in non-UTF8 locales.

--------------------------------------------------------------------------------
d29ee779ad | Johanna Ploog | 2011-04-14 12:14:55 +0200

Try to avoid placing superfluous branch exits on Orc:1.
I had previously forgotten to take branch exits into account, which
meant that the game placed a lot more escape hatches (later turned
into branch exits) on Orc:1 than was strictly necessary.

--------------------------------------------------------------------------------
d0b04f04d0 | Adam Borowski | 2011-04-14 11:09:07 +0200

Abbreviate the XP pool above 100K, for 0.8
In 0.9 we hope to get rid of the pool completely.

Debug mode is unchanged (and will overflow), since the exact number can
matter there.

--------------------------------------------------------------------------------
4e12202f4e | Adam Borowski | 2011-04-14 10:54:46 +0200

Rename it_use3.cc to evoke.cc

--------------------------------------------------------------------------------
586def07c6 | Adam Borowski | 2011-04-14 10:50:48 +0200

Toss noisy_equipment() away from it_use3.cc
All other noise effects are in shout.cc.

--------------------------------------------------------------------------------
30e9b419dc | Adam Borowski | 2011-04-14 10:39:27 +0200

Toss unrand_reacts() away from it_use3.cc
Big numbered source files are bad, mm'kay?

--------------------------------------------------------------------------------
9078915a3d | Adam Borowski | 2011-04-14 06:36:19 +0200

Don't allow using crystal balls if they are guaranteed to fail.

--------------------------------------------------------------------------------
e4e38753a8 | Adam Borowski | 2011-04-14 06:12:10 +0200

Give magic mapping an uniform shape.
For the scroll, it makes no sense to not affect the whole map when you
happen to stand just near an edge.

Ashenzari and the mutation were fine.

For decks and the ball, it makes no sense to see further diagonally.

--------------------------------------------------------------------------------
a3f932ef06 | Chris Campbell | 2011-04-14 02:55:47 +0100

Make Antaeus amphibious again
Since he shouldn't be slowed by or fumble in deep water.

--------------------------------------------------------------------------------
82b30d1f91 | Adam Borowski | 2011-04-14 02:55:44 +0200

Fix lightning bolt being able to hit things out of LOS.
It also could get a huge number of bounces in such cases.

--------------------------------------------------------------------------------
82297baaf0 | Adam Borowski | 2011-04-14 02:55:44 +0200

Fix a crash when an aptitude was improved between saves.
Also, don't increase the skill past 27 in such cases.

--------------------------------------------------------------------------------
ab2f792dce | Adam Borowski | 2011-04-14 02:55:44 +0200

Make '&' demons a tier on their own.

--------------------------------------------------------------------------------
210e41d01f | Johanna Ploog | 2011-04-14 01:50:54 +0200

Also guarantee upwards connectivity in the Orcish Mines.
Place upstair escape hatches in any bubble that does not already have
an upstairs.

I don't particularly like this solution - I'd rather prefer full
interlevel connectivity that sometimes forces the player to continue
downwards first - but as long as we cannot be certain that the
interlevel connectivity check works correctly, this is probably
necessary.

Once shafts no longer result in disconnected levels (the interlevel
connectivity check assumes levels are created in order) and the
bottom level is guaranteed to be fully connected itself (not sure if
that's already the case), this commit can be reverted.

Note that all upstairs on Orc:1 get transformed into branch exits.

--------------------------------------------------------------------------------
ed4d7c4451 | Johanna Ploog | 2011-04-14 01:02:45 +0200

Fix #3763: One more space when listing waypoint names.
Shoals:N is the longest waypoint name currently possible, so %-9s
should be okay.

--------------------------------------------------------------------------------
519bdc7647 | Raphael Langella | 2011-04-14 00:07:53 +0200

More regular skill level costs.
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:misc:experience_system

--------------------------------------------------------------------------------
2d4d623ab1 | Raphael Langella | 2011-04-14 00:07:53 +0200

Reorder the checks in wield weapon.
First, removed a redundant check in the beginning.
Do the unwield check before the wield check.
Do the actual unwielding before the wield check to avoid information leak.
Fix #3611.

--------------------------------------------------------------------------------
2b56197ac2 | Raphael Langella | 2011-04-14 00:07:53 +0200

Don't consume a turn when trying to go downstairs while levitating.
3801

--------------------------------------------------------------------------------
7f26cf1196 | Raphael Langella | 2011-04-14 00:07:53 +0200

Generate glowing mold also out of sight.
So you can follow the fading trail to the next ballisto.

--------------------------------------------------------------------------------
bbb32d60d8 | Raphael Langella | 2011-04-14 00:07:52 +0200

Make glowing mold fade slowly instead of instantly disappearing.
The effect looks more natural this way.

--------------------------------------------------------------------------------
e8064ba6eb | Raphael Langella | 2011-04-14 00:07:52 +0200

Add glowing mold tiles (XuaXua).

--------------------------------------------------------------------------------
dd7c4dc9bc | Raphael Langella | 2011-04-14 00:07:52 +0200

Make all keyhelp menus respect the easy_exit_menu option.

--------------------------------------------------------------------------------
526b1e8fff | Raphael Langella | 2011-04-14 00:07:52 +0200

On terrain change, only update the clinging status of adjacent actors.

--------------------------------------------------------------------------------
0ca68976e7 | Raphael Langella | 2011-04-14 00:07:52 +0200

Allow wall clinging on closed doors (#3778).

--------------------------------------------------------------------------------
99c9c6b525 | Raphael Langella | 2011-04-14 00:07:52 +0200

Fix pathfinding for fake amphibious.
They will take into account the higher travel cost of cells they flounder in
(deep water for giants and both shallow and deep water for grey drac).

--------------------------------------------------------------------------------
36ccd8c6ef | Raphael Langella | 2011-04-14 00:07:52 +0200

Make grey draconians fake amphibious.
Like giant monsters, they can cross deep water but still take the speed penalty
and fumble attacks (#3718).

--------------------------------------------------------------------------------
bcd7e5c6de | Johanna Ploog | 2011-04-13 23:58:13 +0200

Fix #3800: console Abyss map being all black.

--------------------------------------------------------------------------------
be9e933269 | Robert Burnham | 2011-04-13 16:46:57 -0500

Fix compile issues

--------------------------------------------------------------------------------
6eb67f54e2 | Robert Burnham | 2011-04-13 16:36:23 -0500

Crude merge of [player|monster]_apply_defender_ac
Uses an if statement and pastes of the old code to condense these two
melee_attack class methods into one method. Although AC application may
vary slightly between player (has GDR) and monster (if stabbing, bypass
some of it), it should essentially share an AC application method.

--------------------------------------------------------------------------------
9ab156946f | Chris Campbell | 2011-04-13 22:23:33 +0100

Remove the Resist Poison spell
There's no need for both that and Cure Poison to exist, and Cure Poison
has some more interesting drawbacks than simply giving you a resistance
temporarily (you actually have to take poison damage for at least a few
turns).

--------------------------------------------------------------------------------
def89a7db2 | Chris Campbell | 2011-04-13 22:23:31 +0100

Replace Wiglaf with Norris in Sprint 1
Originally Wayne occupied that spot and would smite the player, but his
spell set changed.

--------------------------------------------------------------------------------
0d29180693 | Chris Campbell | 2011-04-13 22:23:30 +0100

Add Olgreb's Toxic Radiance to the Young Poisoner's Handbook

--------------------------------------------------------------------------------
0d7391a59a | Robert Burnham | 2011-04-13 16:23:27 -0500

melee_attack::mons_self_destructs => actor::self_destructs
Hey, maybe now we can have a player balistomacete race which explodes
on other stuff!

--------------------------------------------------------------------------------
c699271b12 | Johanna Ploog | 2011-04-13 22:58:38 +0200

Fix #218: _add_feat_if_missing() returning too early.
_add_feat_if_missing returned true once an escape hatch had been
successfully placed without waiting to check whether there were any
further disconnected areas.

Now the loop continues, disconnected bubbles should be a thing of the
past, and it's become apparent that depending on vault placement
sometimes there are more escape hatches than are strictly necessary
because traversable vault squares are still considered as not being
passable, so the function may end up assuming an area to be "blocked
off" by a minivault when in fact it's perfectly reachable.

--------------------------------------------------------------------------------
814935e9a0 | Chris Campbell | 2011-04-13 19:43:43 +0100

Reword sling bullet description (#1200)

--------------------------------------------------------------------------------
1532df5ea8 | Chris Campbell | 2011-04-13 19:42:59 +0100

More elemental book tweaks
Cap Static Discharge power at 100, adjust fire and air elemental books.

--------------------------------------------------------------------------------
201f75f910 | Chris Campbell | 2011-04-13 19:14:19 +0100

Lower Static Discharge to level 3, adjust some book contents
Lightning Bolt removed from Sky, added to Air.
Recall removed from Unlife

--------------------------------------------------------------------------------
0399b9e6f3 | Chris Campbell | 2011-04-13 19:11:51 +0100

Make the royal jelly stay on Slime:6
Some players still go to the effort of pulling it all the way into Lair
so they can dig a tunnel to melee it safely, and having it stay to guard
the loot seems thematic (making it just not leave Slime would probably
also be a good alternative).

--------------------------------------------------------------------------------
72460f2d84 | Chris Campbell | 2011-04-13 19:11:29 +0100

Acquire cursed items with Ashenzari

--------------------------------------------------------------------------------
c50954c7e3 | Chris Campbell | 2011-04-13 19:10:54 +0100

Revert "Give shrapnel 2x AC reduction instead of 3x"
LRD had its damage boosted significantly (amongst other Earth magic
buffs), so this should keep it strong but make its weakness against
high-AC monsters noticeable again.

This reverts commit 62d0d4cf922786bd0fbc48fef29dfc5f0bbb0602.

--------------------------------------------------------------------------------
32de03a8b1 | Chris Campbell | 2011-04-13 19:08:26 +0100

Don't generate weapons of speed on hell knights

--------------------------------------------------------------------------------
322027ed33 | Chris Campbell | 2011-04-13 19:08:10 +0100

Start Enchanters with some stabbing skill

--------------------------------------------------------------------------------
ccb7a9c7a4 | Chris Campbell | 2011-04-13 19:08:02 +0100

Increase Ozocubu's Refrigeration to level 6

--------------------------------------------------------------------------------
ba77741eb8 | Chris Campbell | 2011-04-13 17:50:05 +0100

Reword a number of monster descriptions
Some general fixes just to make them read a bit better, some longer and
more detailed descriptions for a few monsters, some removals of
unnecessary gender references.

--------------------------------------------------------------------------------
e1689e93ee | Adam Borowski | 2011-04-13 17:01:28 +0200

No elephants in D and Vaults, slightly reduce their frequency in Lair.

--------------------------------------------------------------------------------
1a8f3ac6fb | Johanna Ploog | 2011-04-13 15:49:51 +0200

A few modifications in the FAQ.

--------------------------------------------------------------------------------
eb20197f1b | Johanna Ploog | 2011-04-13 15:44:42 +0200

Update the tutorial/hints mode on berserk being possible while hungry.

--------------------------------------------------------------------------------
27559ec7e3 | Johanna Ploog | 2011-04-13 15:01:58 +0200

Indentation fix.

--------------------------------------------------------------------------------
333b51239a | Robert Burnham | 2011-04-13 07:25:31 -0500

Generalize mons_attack_warded_off
Could potentially allow player attacks to be warded off...or even player's 
summons'
attacks to be warded off.

--------------------------------------------------------------------------------
5585684ff8 | Johanna Ploog | 2011-04-13 14:22:53 +0200

Disallow shop mimics in branches that don't normally feature shops. (cherry 
picked from commit b37f92c082195f959d248b8efe30773e35c0978a)

--------------------------------------------------------------------------------
dc27f9536a | Johanna Ploog | 2011-04-13 14:22:52 +0200

Don't place downstairs mimic on branch bottom, and vice versa. (cherry picked 
from commit b77ee1ade48a0b1450ecbb69fc70317ffbcc8618)

--------------------------------------------------------------------------------
ddf785940a | Robert Burnham | 2011-04-13 06:59:55 -0500

Will I ever stop with TODO's? Who knows
Also cleans up a method declaration for a deprecated (and removed)
melee_attack class method

--------------------------------------------------------------------------------
945fc9602c | Robert Burnham | 2011-04-13 06:36:15 -0500

Update TODOs, reorganize attack class methods

--------------------------------------------------------------------------------
095d039a11 | Adam Borowski | 2011-04-13 13:11:43 +0200

Try to keep demon tiers while polymorphing.
Regular polymorph is based on HD which makes sense in most cases but varies
wildly for demons.

--------------------------------------------------------------------------------
9096de8682 | Adam Borowski | 2011-04-13 12:47:29 +0200

Allow polymorphing demons.
There's no obvious reason why this should be not allowed, since demons
are all about wildly mutated shapes.  The spell and wand are mostly
useless, too.

--------------------------------------------------------------------------------
56e714b260 | Adam Borowski | 2011-04-13 12:36:51 +0200

Allow porkalating holy beings.
With a tile!

Since they are nothing but holy demons, it is wrong for them to have
different resistances where TSO is not concerned.

--------------------------------------------------------------------------------
c1e2b80a99 | Adam Borowski | 2011-04-13 01:11:05 +0200

Cut Grinder's wings (Curio).

--------------------------------------------------------------------------------
4b05dbc5dc | Adam Borowski | 2011-04-13 01:11:05 +0200

Mention dietary and drinkary habits of mummies on the 'A' screen.

--------------------------------------------------------------------------------
85c36af894 | Raphael Langella | 2011-04-13 00:03:57 +0200

Default easy_exit_menu to false.
We should probably just remove the option and disable this behaviour.
I really don't see the point of it and can lead to nasty accidents.

--------------------------------------------------------------------------------
b51dc348a1 | Raphael Langella | 2011-04-12 23:53:05 +0200

Fix a wrapping error when the line end with a tag.
It causes a bad wrapping in the aptitude column of the skill menu.

--------------------------------------------------------------------------------
f4b8d7ebb8 | Robert Burnham | 2011-04-12 16:30:39 -0500

Remove attack_number from melee_attack constructor parameters
It wasnt used anywhere and is one less thing for me to remember to do
when I go to fully remove the attack_number stuff

--------------------------------------------------------------------------------
d942cff164 | Robert Burnham | 2011-04-12 16:08:17 -0500

do_trample => do_knockback(bool trample)
Renames and relocates the declaration of do_trample (now do_knockback)
to keep the potential for do_knockback to handle multiple (very similar)
effects, even though knockback without trample is not implemented.

--------------------------------------------------------------------------------
000ea2f26e | Robert Burnham | 2011-04-12 16:01:45 -0500

Move melee_combat::test_melee_hit

--------------------------------------------------------------------------------
da98dbce45 | Johanna Ploog | 2011-04-12 22:46:13 +0200

Mantis #3790: Keep monster trails if monsters swap on the edge of LOS.
Pointed out as a bug, the behaviour makes a lot of sense to me, because
other than for the monster trails we are trying to get rid of, in this
case there actually is _another monster_ on the edge of LOS and if the
player sees the swap, they _do_ know about it.

Thus, rather than hide this behaviour, I opted to only prevent it for
unmapped areas (so we don't leak information about traversability of
features) and added a special case for monster swapping, so Tiles
players get the full benefit. If, for example, an orc warrior outside
los pushes past a plain orc on the edge of los, the console player
will see the change of colour and will know that the greyish 'o' in
the shaded area is actually a normal orc. In Tiles, they are
distinguished by different tiles, but that's true for remembered
monster tiles in general, and not a problem with monster swapping,
specifically.

--------------------------------------------------------------------------------
45b8cb2200 | Robert Burnham | 2011-04-12 07:19:18 -0500

Reorganize melee_attack methods into categories

--------------------------------------------------------------------------------
de7551ba1b | Robert Burnham | 2011-04-12 07:04:02 -0500

Remove sparsely used wrapper method
In addition to monster_attack (MvP) and monsters_fight (MvM), there was a
monster_attack_actor which was either (MvP OR MvM) and was only used for in
the _handle_reaching method of mons-act.cc.

--------------------------------------------------------------------------------
3053a05a07 | Robert Burnham | 2011-04-12 06:56:14 -0500

Update more TODOs

--------------------------------------------------------------------------------
707386bd64 | Robert Burnham | 2011-04-12 06:46:02 -0500

Update TODO

--------------------------------------------------------------------------------
1d7d12d64f | Chris Campbell | 2011-04-12 04:31:35 +0100

Don't give Green Dracs poison spit in spider form
Since their breath weapon is now mephitic instead of poisonous.

--------------------------------------------------------------------------------
bbaa07de7b | Chris Campbell | 2011-04-12 04:30:25 +0100

Comment fixes

--------------------------------------------------------------------------------
051dc45d33 | Raphael Langella | 2011-04-12 01:09:13 +0200

Fix message when trying to butcher with a melded blunt weapon #3782

--------------------------------------------------------------------------------
2d7b0c83ca | Raphael Langella | 2011-04-11 23:59:32 +0200

Don't interrupt butchering for monsters already in view.
It stops when they come into view. If you start when they are already in
view, you won't be stopped until they hit you.

--------------------------------------------------------------------------------
f11d846bbb | Raphael Langella | 2011-04-11 23:59:31 +0200

Update MF_WAS_IN_VIEW flag after interruption.
So we can distinguish monsters which were in view on the previous turn from
the others while we're handling interruptions.

--------------------------------------------------------------------------------
3a727db368 | Raphael Langella | 2011-04-11 23:59:31 +0200

Fix items not being announced when revealed by openning a door.
Which also cause them to not being identified with Ash (#3787).

--------------------------------------------------------------------------------
e3c5467334 | David Lawrence Ramsey | 2011-04-11 16:39:47 -0500

Remove unreachable god switching message; Xom is not a good god.

--------------------------------------------------------------------------------
b96b0ddf2a | Robert Burnham | 2011-04-11 16:32:44 -0500

Move global var declaration into method

--------------------------------------------------------------------------------
bf3e8ffeda | Robert Burnham | 2011-04-11 16:29:12 -0500

Remove wrapper function calc_your_to_hit
Was only used in player.cc to display to_hit-related information. Wrapper
function declared an instance of melee_attack and called the actual calc_to_hit
methods that we use for combat. Why can't we do this in the player method
itself?

--------------------------------------------------------------------------------
54c3ca9947 | Robert Burnham | 2011-04-11 16:20:44 -0500

Unify monster and player attack_delay
Fixes compiles for the unification of monster and player to_hit,
also removes mon_attk_delay and player_calc_attack_delay and merges
them into calc_attack_delay. Monster attack delay is used in-line,
player attack is manually applied using player_apply_attack_delay,
which is next to be refectored.

--------------------------------------------------------------------------------
90ccf509eb | Robert Burnham | 2011-04-11 15:46:14 -0500

Crude join of player and monster to_hit
Joins the two to_hit methods into a single method (fairly crudely)
simpy by checking if attacker is player, do {paste of player_to_hit}
else, do {paste of monster_to_hit}.

Adds/Removes some pending/incomplete todos as necessary, also removes
an unnecessary method used for calculating and displaying player_to_hit
deterministically.

Creates a new fight function (fight_melee) which will be the new handler
of combat once the rewrite is done.

--------------------------------------------------------------------------------
03516dc29d | Raphael Langella | 2011-04-11 18:32:33 +0200

Don't cling after a teleport.
Or being trampled, or any other mean of moving without stepping. Restore the
behaviour as it was before dae46a01e1.

--------------------------------------------------------------------------------
6c7b304f6d | Chris Campbell | 2011-04-11 15:20:31 +0100

Don't rot while under Death's Door
It causes issues if your maxhp is reduced to 0, and since your body is
invulnerable to all other harm it seems reasonable to be invulnerable
to rot.

--------------------------------------------------------------------------------
a333244f9f | David Lawrence Ramsey | 2011-04-11 07:48:08 -0500

Fix unused variable warning.

--------------------------------------------------------------------------------
dae46a01e1 | Raphael Langella | 2011-04-11 13:55:08 +0200

Fix wall clinging not triggering traps (#3781).
I've moved the check_clinging a bit earlier.

--------------------------------------------------------------------------------
b2e958ad9c | Raphael Langella | 2011-04-11 13:55:08 +0200

Revert Ashenzari curses exceptions.
They made some sense (gameplay-wise) with the skill boost, but with the
current design, they are not necessary and hurt the flavour (#3792).

--------------------------------------------------------------------------------
ad8baf1a14 | Vsevolod Kozlov | 2011-04-11 15:09:05 +0400

Use the can_overwrite tag for place_unique maps.

--------------------------------------------------------------------------------
b988951ad8 | Adam Borowski | 2011-04-11 12:52:25 +0200

Mention that Slings and Throwing cross-train in their description.

--------------------------------------------------------------------------------
d806454372 | Adam Borowski | 2011-04-11 12:52:25 +0200

Display the quiver again when you get out of a net.

--------------------------------------------------------------------------------
e0ca6bca75 | Vsevolod Kozlov | 2011-04-11 14:48:34 +0400

Let Abyss and Pan entrances overwrite vaults.
This is to make the guaranteed gateways truly guaranteed.

--------------------------------------------------------------------------------
9a7a490ff9 | Vsevolod Kozlov | 2011-04-11 14:47:30 +0400

Add a tag, can_overwrite, that lets vaults overwrite existing vaults.

--------------------------------------------------------------------------------
f49d20ab87 | Chris Campbell | 2011-04-11 10:18:03 +0100

Document Jiyva's off-level item eating in the description

--------------------------------------------------------------------------------
30b4412be6 | Chris Campbell | 2011-04-11 10:18:02 +0100

Change help screen headings on ? to be consistent with the manual (#1406)

--------------------------------------------------------------------------------
aba251d77d | Johanna Ploog | 2011-04-11 10:43:55 +0200

Set clinging status colour according to the current feature.
There's no need to use expiration colours as that's already handled
by the Spider status.

--------------------------------------------------------------------------------
2f9c655364 | Chris Campbell | 2011-04-11 09:41:28 +0100

No more darkgrey walls/floors in Geh:7 or Gloorx
Changed to lightgrey (as it's "ashen floor" in Geh:7, as opposed to the
yellow floors in the rest of Geh) in both cases.

--------------------------------------------------------------------------------
93e1beb87b | Chris Campbell | 2011-04-11 08:22:13 +0100

No pain self-damage for the pain-immune generally, instead of just mummies

--------------------------------------------------------------------------------
f9b2b53e44 | Chris Campbell | 2011-04-11 07:40:24 +0100

No hats for spiders (and related fixes)
Prevented spider and ice form from wearing hats (they now consistently
display which armour slots are available, previously they claimed to
disallow helmets entirely in multiple places).

Allowed statue form to wear shields (if they can wield weapons that
should work too).

--------------------------------------------------------------------------------
8899d6eaeb | Chris Campbell | 2011-04-11 07:39:14 +0100

Increase Flame Tongue's accuracy slightly

--------------------------------------------------------------------------------
41524cc3fa | Chris Campbell | 2011-04-11 07:39:12 +0100

Don't cause self-damage to mummies casting pain

--------------------------------------------------------------------------------
3da947012a | Chris Campbell | 2011-04-11 07:39:09 +0100

Remove Animate Dead from the book of Power

--------------------------------------------------------------------------------
0f60652208 | Chris Campbell | 2011-04-11 07:38:56 +0100

Some more minor hell/pan lord adjustments
Adjust the weighting for Asmodeus's fire summons and remove the blink
spell from Mnoleg (his AF_BLINK attack should be sufficient).

--------------------------------------------------------------------------------
3cbde79cb4 | Chris Campbell | 2011-04-11 07:38:35 +0100

Add notes when Beogh names an ally, and when named allies die

--------------------------------------------------------------------------------
07159ce1c8 | Chris Campbell | 2011-04-11 06:16:51 +0100

Don't suggest AM when choosing random/viable characters

--------------------------------------------------------------------------------
7e89148de2 | Darshan Shaligram | 2011-04-10 23:53:19 -0400

Show absolute depth when generating levels in place-population, filter plants, 
fungi and bushes by default.

--------------------------------------------------------------------------------
262acb6238 | Adam Borowski | 2011-04-11 01:12:44 +0200

Fix corrupted screenshots in dump/morgue files.

--------------------------------------------------------------------------------
27097e33c5 | Adam Borowski | 2011-04-11 00:11:00 +0200

A message when you switch from a good god to a good god.

--------------------------------------------------------------------------------
d055d1247a | Adam Borowski | 2011-04-11 00:11:00 +0200

Mention that wizlab portals are fading away in their long description.

--------------------------------------------------------------------------------
abfc77003b | Adam Borowski | 2011-04-11 00:11:00 +0200

Prompt before wearing or wielding a known-cursed item.

--------------------------------------------------------------------------------
329193e884 | Adam Borowski | 2011-04-11 00:11:00 +0200

Fix Okawaru not accepting kills of holy beings.

--------------------------------------------------------------------------------
f5508d19fb | Adam Borowski | 2011-04-11 00:11:00 +0200

Fix a misbehaviour of shifted vi keys on 'X' near map borders.

--------------------------------------------------------------------------------
e0c89c607a | Adam Borowski | 2011-04-11 00:11:00 +0200

Auto-kill toadstools if a mummy, ghoul or in lich form.

--------------------------------------------------------------------------------
c2e0dba7fc | Adam Borowski | 2011-04-11 00:10:59 +0200

Don't auto-attack toadstools when wielding the Wrath of Trog.

--------------------------------------------------------------------------------
1514f761a7 | Adam Borowski | 2011-04-11 00:10:59 +0200

Don't try to suggest certain resistances. [#367]

--------------------------------------------------------------------------------
d70fb184fe | Darshan Shaligram | 2011-04-10 17:23:05 -0400

[3784] Fix Lua macros not being able to long-rest (5) using process_keys.
Note: this has the potential to break the command loop in subtle ways, and
should not be picked for 0.8.

run_macro was calling stop_delay the moment a Lua macro exited, thereby killing
the rest delay before it had a chance to get started.

The fix is to let the macro delay expire like any other delay, without a hard
stop_delay.

This fix does not address Lua macros getting killed by code that uses
AI_FORCE_INTERRUPT. (We have way too much code that gratuitously uses
AI_FORCE_INTERRUPT instead of a more reasonable interrupt type.)

--------------------------------------------------------------------------------
ff9534c765 | Adam Borowski | 2011-04-10 17:26:26 +0200

Prohibit flame-branded missiles from entering trees and wax.
Spell/wand beams can still do that to give a message, but we don't want
items stuck in walls.

--------------------------------------------------------------------------------
b2857e0236 | Adam Borowski | 2011-04-10 17:07:47 +0200

If an item ends up in a wall, show the wall (underlined), not the item.

--------------------------------------------------------------------------------
48ae4b43c0 | Adam Borowski | 2011-04-10 15:18:43 +0200

An update to jumping spider's tile.

--------------------------------------------------------------------------------
415db94f50 | Adam Borowski | 2011-04-10 14:23:41 +0200

Don't delay mirror damage due to tornado until the turn's end.

--------------------------------------------------------------------------------
a0b4e07a01 | Adam Borowski | 2011-04-10 13:16:24 +0200

Don't blame the player for trees felled by monster-cast tornado.

--------------------------------------------------------------------------------
4fdebf294f | Adam Borowski | 2011-04-10 13:08:27 +0200

Use mid not mindex for delayed "final" effects.
Since these are very short lived, this shouldn't happen outside of some very
far-fetched scenarios: something would have to kill a monster with a final
effect and spawn a new one.

--------------------------------------------------------------------------------
d6169c4135 | Adam Borowski | 2011-04-10 12:53:47 +0200

Purge an useless comment.
Git has this kind of stuff already, it was purged away from other files but
I missed this one.

--------------------------------------------------------------------------------
8457c3a67d | Eronarn Palazzo | 2011-04-10 12:50:45 +0200

Make recite train more often.

--------------------------------------------------------------------------------
53c4d2c47f | Adam Borowski | 2011-04-10 12:39:48 +0200

Denzi's flightless shadow imp tile.

--------------------------------------------------------------------------------
a646b10eb5 | Adam Borowski | 2011-04-10 11:59:20 +0200

Fix a crash when reloading a game after restart_after_game.

--------------------------------------------------------------------------------
6b978d6cd4 | Adam Borowski | 2011-04-10 11:50:32 +0200

Hints: you don't eat with '%'.

--------------------------------------------------------------------------------
9a35ab8cf4 | Adam Borowski | 2011-04-10 11:11:57 +0200

Don't show "it sticks to your hand" on cursed unmeld.

--------------------------------------------------------------------------------
76c372e0eb | Adam Borowski | 2011-04-10 11:03:06 +0200

Tell weapon/jewel artefacts it's only a meld.
This fixed recurers cursing themselves repeatedly, and possibly others.

--------------------------------------------------------------------------------
589bc77804 | Adam Borowski | 2011-04-10 10:52:52 +0200

Don't insta-kill people on vampiric weapon unmeld.

--------------------------------------------------------------------------------
29bf593742 | Adam Borowski | 2011-04-10 09:54:21 +0200

Non-BMP characters are not ASCII.

--------------------------------------------------------------------------------
4537a1d26c | Adam Borowski | 2011-04-10 09:54:21 +0200

Use 160 rather than 128 bits of randomness.
The fallback seed can be mixed into true random data rather than being
side-to-side.  Also, when actual randomness is not available, it's better
to put various sources in various slots rather them adding them together
and leaving other slots empty.

--------------------------------------------------------------------------------
d07d678ad9 | Chris Campbell | 2011-04-10 07:32:58 +0100

Allow extending spider form while clinging over dangerous terrain

--------------------------------------------------------------------------------
f3fa798408 | Chris Campbell | 2011-04-10 07:32:30 +0100

Message fix for levitation while clinging

--------------------------------------------------------------------------------
b071afa2f7 | Chris Campbell | 2011-04-10 02:20:51 +0100

Add a message for monsters casting Trog's Hand

--------------------------------------------------------------------------------
4be022e339 | Chris Campbell | 2011-04-10 02:18:00 +0100

Don't autoexplore into lemuel_bear_cage

--------------------------------------------------------------------------------
82a4c24d46 | Chris Campbell | 2011-04-10 01:10:21 +0100

Adjust Roxanne's casting messages, since she can't move

--------------------------------------------------------------------------------
129d0f2a6b | Chris Campbell | 2011-04-09 23:36:11 +0100

Don't avoid glow by cancelling semicontrolled blinks with enter instead of 
escape

--------------------------------------------------------------------------------
86f4b0ab26 | Chris Campbell | 2011-04-09 21:58:27 +0100

Rename some casting/aptitude adjectives for clarity
Also removed the aptitude conversion, since it's been changed for two
versions now. It's not really relevant or useful information for a
help screen.

--------------------------------------------------------------------------------
0b625a5a85 | Johanna Ploog | 2011-04-09 20:49:29 +0200

Fix #3772: Don't "die" if an invalid key symbol is entered.

--------------------------------------------------------------------------------
4e4c5b93a4 | Johanna Ploog | 2011-04-09 18:32:47 +0200

Fix #3764: Replace an assert with some more sensible handling.
Apparently it's possible for a tentacle to get disconnected from its
parent segment (I was able to reproduce this with distorion blinks),
which goes counter to the assumption that they'll always remain
adjacent. If this happens, treat the tentacle as if it had no parent
segment.

--------------------------------------------------------------------------------
867ad51037 | Raphael Langella | 2011-04-09 17:41:20 +0200

Fix verb with the new confirmation prompt whith expiring status.

--------------------------------------------------------------------------------
2bf5c1088a | Raphael Langella | 2011-04-09 17:23:32 +0200

Prompt the player before moving to a deadly cell with an expiring status.
The more prompt was done after the move, so you could still drown yourself
if it ended just after moving over deep water. This is safer and also
simpler (no need to track if the player has already been warned).

--------------------------------------------------------------------------------
7d9ed24700 | Johanna Ploog | 2011-04-09 14:46:09 +0200

Skip Qv line for Felids.
AFAIK, there are no circumstances under which the quiver could ever
be useful for Felids, so this line just takes up space for them that
could be used for e.g. the monster list.

--------------------------------------------------------------------------------
440b1b0876 | Johanna Ploog | 2011-04-09 14:32:30 +0200

Colour unavailable quiver slot darkgrey.
It's the usual "useless/unused" colour, after all.

--------------------------------------------------------------------------------
af5ecec0b9 | Vsevolod Kozlov | 2011-04-09 10:27:03 +0400

Don't generate bigger_room levels in Crypt.
After my previous commit, none of _build_{lake,river} or _many_pools will ever
generate anything, so the level will be entirely open.  That's not nice.

--------------------------------------------------------------------------------
200e02be73 | Vsevolod Kozlov | 2011-04-09 10:24:27 +0400

Disable _many_pools in Crypt.
Could force a specific building material for the pools, but none of the 
available
ones seem to be adequately thematic for Crypt.  So better disable them entirely.

--------------------------------------------------------------------------------
219b0bdeb4 | Adam Borowski | 2011-04-09 07:42:27 +0200

Use the same message for bashing with a ranged weapon as for bashing with 
non-weapons.

--------------------------------------------------------------------------------
66798554a9 | Adam Borowski | 2011-04-09 06:56:18 +0200

Denzi's tile for pressure plate trap triggers.

--------------------------------------------------------------------------------
bbd3c2531c | Adam Borowski | 2011-04-09 06:35:53 +0200

Move all trap tiles into a dir of their own.

--------------------------------------------------------------------------------
b69b35e2d6 | Adam Borowski | 2011-04-09 05:32:30 +0200

Don't read 28 bytes of randomness into a 16 byte array.
The new RNG doesn't use that much state.

--------------------------------------------------------------------------------
43e33a5301 | Eronarn Palazzo | 2011-04-09 03:43:55 +0100

Leaving/entering berserk/nets redraws quiver.

--------------------------------------------------------------------------------
522c0ac7df | Eronarn Palazzo | 2011-04-09 03:43:54 +0100

Output shows "-) Unavailable" or the like for various combinations of 
cannot/not wield/quiver stuff.

--------------------------------------------------------------------------------
600c04b41c | Eronarn Palazzo | 2011-04-09 03:43:54 +0100

Change function to be a more general check.

--------------------------------------------------------------------------------
43a2d9009c | Adam Borowski | 2011-04-09 04:19:31 +0200

Fix win32 compilation with old version of mingw headers.

--------------------------------------------------------------------------------
bce594f50e | Adam Borowski | 2011-04-09 04:15:06 +0200

Rebuild icon.o when compiler flags change.
Win "resources" are incompatible between 32 and 64, and we shouldn't
require "make clean" between builds.

Contribs are still totally broken in this regard.

--------------------------------------------------------------------------------
7376cb9005 | Adam Borowski | 2011-04-08 18:50:34 +0200

Fix win64 compilation.
BTW, what's the point of forcing architecture in the build?  The compiler
already knows that, trying to do that ourselves just caused build failures.

--------------------------------------------------------------------------------
a9f80b79f6 | Raphael Langella | 2011-04-08 18:28:26 +0200

Make artefacts obey show_msgs.
That reduces the spam when butchering with artefacts.

--------------------------------------------------------------------------------
f414b1f75d | Raphael Langella | 2011-04-08 18:28:19 +0200

Fix word wrapping counting 1 char for tags.
It messed up the overview screen with small terms.

--------------------------------------------------------------------------------
8d209ce801 | Johanna Ploog | 2011-04-08 17:09:16 +0200

Fix #3156, #3709: cloud safety checks getting randomized AC reductions.
AC can reduce the amount of damage you take when stepping into a cloud,
but this randomized reduction should not apply if we just want to check
whether a given cloud is safe, or whether we need a prompt.

--------------------------------------------------------------------------------
20ec8c080f | Raphael Langella | 2011-04-08 13:55:43 +0200

Remove a useless debugging line (oops).

--------------------------------------------------------------------------------
cb071fa863 | Raphael Langella | 2011-04-08 13:53:20 +0200

Fix bad wrapping in overview screen.
It's still buggy in console with a terminal width < 86.

--------------------------------------------------------------------------------
748250554e | Adam Borowski | 2011-04-08 03:26:51 +0200

Update the docs wrt removal of DOS support.

--------------------------------------------------------------------------------
c28e2b325a | Adam Borowski | 2011-04-08 03:19:34 +0200

Nerf demon whips and demon tridents.

--------------------------------------------------------------------------------
5577605d78 | Adam Borowski | 2011-04-08 03:14:33 +0200

Drop remnants of the DOS port.
It's broken since 0.5 (where it "just" had a long-unfixed bug with infinite
mana), in 0.6 doesn't even compile and in 0.8 took a number of other tedious
to port blows.  If no one stepped up to revive it, no one probably ever will.
DOS is an ancient coprolith, too, and can't really handle the bloat Crawl has.

As a side effect, I made *h and /h work on Windows.

--------------------------------------------------------------------------------
1491aabfcd | Brendan Hickey | 2011-04-08 01:18:29 +0200

Swapped MT19937 for a 160-bit hybrid alternating step generator

--------------------------------------------------------------------------------
766b489b3f | Adam Borowski | 2011-04-08 01:18:29 +0200

Fix Windows compilation.

--------------------------------------------------------------------------------
f7fc4b94a4 | Raphael Langella | 2011-04-08 00:47:16 +0200

Fix coming into view messages ignoring mislead.
3750

--------------------------------------------------------------------------------
1864cc99f9 | Raphael Langella | 2011-04-08 00:47:16 +0200

Fix a crash when viewing aptitude with CK or Wa selected.
3748

--------------------------------------------------------------------------------
fc5a576bdf | Raphael Langella | 2011-04-08 00:47:16 +0200

Always remove the mold when fungal colony is destroyed.
The previous behaviour was to not remove it if a monster destroyed it. This
had the nasty side effect of leaving the mold if you killed a spore and no
ballistos growed out of it (#3453), making player run around the level
looking for ballistos.

In the rare case where a monster destroy the last ballisto out of LOS,
I don't think we should hide it from the player by leaving the mold. They
would keep looking around not understanding why there is some mold and no
ballisto. It's also inconsistent. Why would the mold only be removed when
the player does the killing?

--------------------------------------------------------------------------------
0f7ff2f656 | Raphael Langella | 2011-04-08 00:47:16 +0200

Fix melded weapon giving their brand to unarmed attacks.
3754

--------------------------------------------------------------------------------
04e59fa7f5 | Raphael Langella | 2011-04-08 00:47:16 +0200

Tiles: fix inventory title width.

--------------------------------------------------------------------------------
eb36edcb62 | Chris Campbell | 2011-04-07 22:42:04 +0100

Don't let Mennas shout or say stuff when casting spells
He's marked as an actual spellcaster rather than getting his spells from
Zin, so changed his spellcasting messages to reflect this.

Still need to fix him speaking to the player on (successful or failed)
conversion, though.

--------------------------------------------------------------------------------
d1078098a0 | Chris Campbell | 2011-04-07 22:42:03 +0100

Only let holies which can speak say things when converted
This fixes monsters such as Pearl Dragons, Apises, Shedu etc speaking
to you when they turn neutral, but unfortunately doesn't fix Mennas yet
as he has M_SPEAKS for his visual speech.

--------------------------------------------------------------------------------
d39ed37394 | Chris Campbell | 2011-04-07 22:42:03 +0100

Remove some special-cased bonuses for passing out after berserking
Users of the spell and the amulet already have the strong advantage of a
renewable source of berserking, and don't really need any other
incentive.

--------------------------------------------------------------------------------
8cd0898045 | Chris Campbell | 2011-04-07 22:42:02 +0100

Give a message when a golubria portal on the level closes

--------------------------------------------------------------------------------
f4342cdedd | Robert Burnham | 2011-04-07 16:39:43 -0500

More TODO

--------------------------------------------------------------------------------
24ca9d0e95 | Robert Burnham | 2011-04-07 16:36:31 -0500

Add TODO

--------------------------------------------------------------------------------
1170cf7e41 | Robert Burnham | 2011-04-07 16:20:09 -0500

Finalize the removal of melee_attack::is_banished(actor)
is_banished is now a class method of actor, defined as necessary in the
inheriting classes.

--------------------------------------------------------------------------------
fa88ad9b1e | Robert Burnham | 2011-04-07 16:12:17 -0500

Condense melee_attack methods
Squash splash_defender_with_acid and splash_monster_with_acid into one method.
This simplification isn't always warranted, but the splash_monster was used
only once.

--------------------------------------------------------------------------------
b7627524be | Eronarn Palazzo | 2011-04-07 15:58:28 -0400

Fix octopode crashes.

--------------------------------------------------------------------------------
fa40992168 | Eronarn Palazzo | 2011-04-07 15:24:29 -0400

Fix octopodes showing up as 'B' glyph.

--------------------------------------------------------------------------------
3e5885c632 | Eronarn Palazzo | 2011-04-07 15:24:11 -0400

An octopus monster entry.

--------------------------------------------------------------------------------
dbf9cd2e38 | Robert Burnham | 2011-04-07 14:17:48 -0500

Generalize player-specific melee_attack::properties
Replaces player_armour_tohit_penalty and player_armour_tohit_penalty with
attacker_ ones. As is the case with other properties, monsters suffer no tohit
penalty at the present time so they were given a stub method on the monster
class that returns 0.

Player class was modified to have its own armour/shield_tohit_penalty methods
which are inherited from the pure-virtual declaration in actor.

--------------------------------------------------------------------------------
1d32eff339 | Adam Borowski | 2011-04-07 16:13:23 +0200

Fix a crash when casting any spell.

--------------------------------------------------------------------------------
53e1231355 | Eronarn Palazzo | 2011-04-07 16:10:08 +0200

Octopodes can use weapons!

--------------------------------------------------------------------------------
36c8ecaf0a | Eronarn Palazzo | 2011-04-07 16:09:54 +0200

Tentacle-ify octopodes.

--------------------------------------------------------------------------------
2e0b006cb9 | Eronarn Palazzo | 2011-04-07 16:09:13 +0200

Octopodes can swim.

--------------------------------------------------------------------------------
cab9dd39e1 | Eronarn Palazzo | 2011-04-07 16:08:31 +0200

Octopodes lose regen, but gain a beak.

--------------------------------------------------------------------------------
9a847eac3a | Eronarn Palazzo | 2011-04-07 16:08:11 +0200

Octopodes can use tentacles in some forms

--------------------------------------------------------------------------------
e9a4dd15a6 | Eronarn Palazzo | 2011-04-07 16:07:58 +0200

Better text for octopode unarmed.

--------------------------------------------------------------------------------
bb8ccdea0a | Eronarn Palazzo | 2011-04-07 16:07:23 +0200

Permit tentacles in statue/lich form.

--------------------------------------------------------------------------------
71027373e7 | Eronarn Palazzo | 2011-04-07 16:06:27 +0200

Aptitude tweaks.

--------------------------------------------------------------------------------
f7ed17bc92 | Eronarn Palazzo | 2011-04-07 16:06:22 +0200

Change octopus from Oc to OP, because they're OP.

--------------------------------------------------------------------------------
01302eae99 | Adam Borowski | 2011-04-07 16:05:58 +0200

Merge branch 'master' into octopodes

--------------------------------------------------------------------------------
4de910bf82 | Adam Borowski | 2011-04-07 14:35:39 +0200

Cache which enchantments are set, mon->has_ench() is the 2nd CPU hog in sprint.

--------------------------------------------------------------------------------
843c20560b | Adam Borowski | 2011-04-07 14:17:23 +0200

Fixed-width bit arrays, a good deal faster than dynamic ones.

--------------------------------------------------------------------------------
b293d2c013 | Adam Borowski | 2011-04-07 14:17:23 +0200

Useless option purge: USE_MORE_SECURE_SEED, always on.
There's no gain in no using /dev/urandom or CryptGenRandom() when available.

--------------------------------------------------------------------------------
54f8445f0b | Adam Borowski | 2011-04-07 14:17:23 +0200

Don't try to catch uncatchable signals.

--------------------------------------------------------------------------------
d1bcfcc6ae | Adam Borowski | 2011-04-07 14:17:22 +0200

A harmless uninitialized variable.
It is never used unless you.penance[GOD_ASHENZARI] is set -- and that is
possible only for pre-20da341c games that were upgraded in an environment
that doesn't zero a process' memory.

It caused a valgrind complaint when being saved, though.

--------------------------------------------------------------------------------
3cec207cff | Johanna Ploog | 2011-04-07 14:04:12 +0200

Special Airstrike message if struck while flying. (Joachim Schipper)
A special message to hint at Airstrike doing more damage if you're
flying.

--------------------------------------------------------------------------------
0c47e62b3b | Raphael Langella | 2011-04-07 13:33:36 +0200

Fix inventory crash at some resolutions.
See #3730. It seems get_number_of_cols() doesn't work properly in tiles.
It returns much lower values than what can actually be printed on screen.

--------------------------------------------------------------------------------
7415e3e25a | Johanna Ploog | 2011-04-07 11:42:12 +0200

Re-add the rltiles alphabetic tiles to the repository.
They got removed ages ago because they weren't useful at the time.
Now, they could be used to display spell or item slots in the tile
panels. Though most letters fit into 7x12 or lower, all tiles have
the same dimension of 8x13. As part of the rltiles set, they are
public domain.

Currently unused, but I'll try to add the necessary code in the
next couple of days. 0.9 target, obviously.

--------------------------------------------------------------------------------
fb6cc5c788 | Raphael Langella | 2011-04-07 00:09:45 +0200

Better error messages for (M)emorisation.
3665

--------------------------------------------------------------------------------
206bfd3722 | Raphael Langella | 2011-04-06 23:17:10 +0200

Fix invisible merfolk not getting the warning when entering water.

--------------------------------------------------------------------------------
4288a3c149 | Raphael Langella | 2011-04-06 22:47:03 +0200

Ashenzari: remove obsolete low skill boost message.
3741

--------------------------------------------------------------------------------
2ee2ea6ef1 | Robert Burnham | 2011-04-06 15:02:59 -0500

Remove player-specific class properties from actor
Replaces player_body_armor_penalty and player_shield_penalty with
attacker_body_armour_penalty and attacker_shield_penalty respectively.
Also, for player.cc, moves the methods that calculate those values
into the player class and renames them to match an actor-agnostic pattern.

Adjusts the variables of one of the new class methods (added last commit) for
compile purposes.

--------------------------------------------------------------------------------
4511f9b746 | Raphael Langella | 2011-04-06 21:14:58 +0200

Add missing brackets in libutil.cc
This fix #3732 and #3733.

--------------------------------------------------------------------------------
73cc6068d4 | Raphael Langella | 2011-04-06 21:14:50 +0200

Fix travel failing to start if standing right next to a cloud.
See #3709. It doesn't address the bug that put you in the cloud (I couldn't
reproduce that).

--------------------------------------------------------------------------------
d54975193e | Robert Burnham | 2011-04-06 09:11:55 -0500

Add actor::[adjusted|unadjusted]_body_armor_penalty
Replaces the player_adjusted_body_armour_evasion_penalty,
player_size_adjusted_body_armour_evasion_penalty, and
player_unadjusted_body_armour_evasion_penalty methods that were just in
player.cc but not in the player class.

Monster:: equivilents of these functions are stubs defined in monster.h and
just return 0 (since monsters do not presently suffer any body armor penalties
with regard to attacking or casting). The monster implementations may be changed
once I get to the combat code where monsters defensive EV is calculated.

--------------------------------------------------------------------------------
ff519cd151 | Johanna Ploog | 2011-04-06 14:29:43 +0200

Fix #3356: clearing the map having no effect in Tiles.
There was no call to tile_clear_monsters.

--------------------------------------------------------------------------------
935a756f6a | Adam Borowski | 2011-04-06 11:50:58 +0200

Report an error but don't crash when wrapping unterminated tags.

--------------------------------------------------------------------------------
5809cc5525 | Chris Campbell | 2011-04-05 23:06:55 +0100

Consistently abort teleportation attempts when wearing stasis or -TELE

--------------------------------------------------------------------------------
72b3c01976 | Chris Campbell | 2011-04-05 23:06:55 +0100

Don't display a success message when aborting sublimation of blood at full mp

--------------------------------------------------------------------------------
8ba6191ea7 | Raphael Langella | 2011-04-05 23:35:35 +0200

Ashenzari: fix some dropped and useless items being autopickuped up.
3735.

--------------------------------------------------------------------------------
5d885853d6 | Robert Burnham | 2011-04-05 15:26:32 -0500

Implement actor::adjusted_body_armour_penalty
Replaces the player.cc (not player class) player_adjusted_body_armour_evasion_
penalty(). monster::adjusted_body_armour_penalty always returns 0, the player
equivilent actually does calculations.

--------------------------------------------------------------------------------
bf2ef4326c | Johanna Ploog | 2011-04-05 17:49:15 +0200

Mantis #3727: When excluding part of a gate, exclude all of it.
To prevent autotravelling through a gate, you need to exclude all
doors belonging to it. Single-excluding a single door tile now sets
exclusions for all doors belonging to the same gate. Similarly,
removing such an exclusion also affects the gate as a whole.

--------------------------------------------------------------------------------
14d3a05d93 | Adam Borowski | 2011-04-05 02:25:12 +0200

Fix missing checks for players bashing with bows, monsters with rods.
A +9,+9 longbow worked just like a +9,+9 short sword when wielded by a
player, but as a non-weapon when wielded by a monster.  Now they both work
like the latter.

Rods did not give any bonuses to monsters.

--------------------------------------------------------------------------------
ab21c8f913 | Raphael Langella | 2011-04-04 23:55:26 +0200

Fix a crash when the player thinks the monster has a wand but it doesn't.

--------------------------------------------------------------------------------
62f6b7a786 | Adam Borowski | 2011-04-04 23:33:52 +0200

dolphin's tile for jumping spiders.

--------------------------------------------------------------------------------
c5540ef31c | Raphael Langella | 2011-04-04 22:35:42 +0200

Fix a typo.

--------------------------------------------------------------------------------
a0e2f53f95 | Raphael Langella | 2011-04-04 22:35:42 +0200

Fix clinging status not updated properly when switching out of spider form.

--------------------------------------------------------------------------------
d32d060a2b | Raphael Langella | 2011-04-04 22:35:42 +0200

Allow spider form to scramble out of deep water by clinging to a wall.
 #2967.

--------------------------------------------------------------------------------
fed893d241 | Johanna Ploog | 2011-04-04 22:31:40 +0200

Fix #2395: Disallow ending forms/levitation if it would cause drowning.

--------------------------------------------------------------------------------
01f29a7544 | Adam Borowski | 2011-04-04 20:07:48 +0200

Generate no katanas.
Not purging the code away yet because of 0.8.  Also, I didn't touch Bloodbane,
but this one can go the cutlass way.

--------------------------------------------------------------------------------
c3f5467d6e | Adam Borowski | 2011-04-04 19:46:41 +0200

Remove a no longer valid description of Vp bat form and cursed gear.

--------------------------------------------------------------------------------
bbb2ca8995 | Adam Borowski | 2011-04-04 18:29:56 +0200

Don't crash on old saves in Ashenzari penance.

--------------------------------------------------------------------------------
ca26cf9097 | Johanna Ploog | 2011-04-04 18:08:13 +0200

Fix #3217: equipping sInv artefact not reactivating autopickup.

--------------------------------------------------------------------------------
9a06c36acb | Adam Borowski | 2011-04-04 17:23:40 +0200

Fix tiles compile.
The code for menu icons removing the hotkey header is ugly like hell :(

Not rewriting this sanely for now, but it needs to be killed with fire,
and the header stored separately.

--------------------------------------------------------------------------------
6bcfdf06c2 | Adam Borowski | 2011-04-04 17:23:40 +0200

Correct the dungeon overview screen on small terminals.
The old code _tried_ to wordwrap it at 75 columns but it was broken.
I fixed a bug in the word-wrapping function, and you can see the result :p

--------------------------------------------------------------------------------
3663c5663a | Johanna Ploog | 2011-04-04 16:23:00 +0200

Fix #3319: Don't prevent butcher swap with temporary distortion brand.

--------------------------------------------------------------------------------
cfe50050c0 | Raphael Langella | 2011-04-04 12:23:24 +0200

Prevent ice form from picking items at the bottom of deep water.
Because they are floating (#2886).

--------------------------------------------------------------------------------
2da05a8b6b | Chris Campbell | 2011-04-04 03:01:59 +0100

Shorten Recite description, remove references to currently unimplemented 
features

--------------------------------------------------------------------------------
93abc8e4b8 | Adam Borowski | 2011-04-04 00:23:48 +0200

Fix and merge away tagged_string_substr().
It was used on user-supplied string (inscribed items), so non-ASCII can happen
in 0.8.

--------------------------------------------------------------------------------
dde024d6f0 | Adam Borowski | 2011-04-04 00:23:48 +0200

s/linebreak_string2/linebreak_string/
The previous commit removed last use of linebreak_string(), there's no need
to label the other one "2".

--------------------------------------------------------------------------------
ad8d8856d6 | Adam Borowski | 2011-04-04 00:23:48 +0200

Fix and merge a yet another word-wrapper.
This one is used, among others, for character notes, so non-ASCII is damn
likely to occur.

--------------------------------------------------------------------------------
dba9c7857f | Adam Borowski | 2011-04-04 00:23:48 +0200

Text truncation fixes.
One of them caused corruption for non-ASCII player names.

--------------------------------------------------------------------------------
3d6dd413fe | Adam Borowski | 2011-04-04 00:23:48 +0200

Fix nowrap_eol_cprintf() overshooting in some cases.
It's used only in four places, none of them can be actually triggered
currently, but might be in the future.

--------------------------------------------------------------------------------
09b5222a26 | Adam Borowski | 2011-04-04 00:23:48 +0200

formatted_string fixes.
Used by, among others, message history, so user-supplied strings can happen.

--------------------------------------------------------------------------------
aaf14668dd | Adam Borowski | 2011-04-04 00:23:48 +0200

Update installation instructions.
Many features are no longer optional:
* regular expressions
* Unicode
* Lua

Also, no one really uses Usenet anymore, let's point people to IRC or the 
Tavern.

--------------------------------------------------------------------------------
0768808614 | Raphael Langella | 2011-04-04 00:15:55 +0200

Fix transform from wall clinging spider to a flying form.
It used to drown you.

--------------------------------------------------------------------------------
aa24a811f6 | Raphael Langella | 2011-04-03 22:07:53 +0200

Revert "Fix monsters recklessly walking into dangerous clouds."
This reverts commit 063c07c3789a7e5fa31d516af2c11bd557d8c9ff.

It actually creates more problems than it solves (#3715).

--------------------------------------------------------------------------------
20a2c4dd72 | Raphael Langella | 2011-04-03 22:07:53 +0200

Revert "Monster use pathfinding to go around clouds."
This reverts commit 48aafb78fca1d16ced2c0b9821e87e09eebc89be.

--------------------------------------------------------------------------------
de8d8cc4d8 | Chris Campbell | 2011-04-03 18:38:00 +0100

Remove references to gender from Ashenzari's description

--------------------------------------------------------------------------------
3786674f8f | Adam Borowski | 2011-04-03 18:29:40 +0200

Alter clouds in old cset_unicode to §.

--------------------------------------------------------------------------------
1d80154027 | Adam Borowski | 2011-04-03 17:54:00 +0200

Revert the explosion animation from Θ to #.
It is no better, looks like 0 in some fonts, and can't be really confused since
it appears only for a fraction of second (if not --more--d).

--------------------------------------------------------------------------------
b67afa076e | Adam Borowski | 2011-04-03 17:52:56 +0200

When Xom lifesaves you, clear stat_zero penalty.

--------------------------------------------------------------------------------
effd6b68ab | Raphael Langella | 2011-04-03 14:40:28 +0200

Don't cancel monster travelling when player goes out of LoS.
I'm not sure what is was for and jpeg doesn't remember. Now that
pathfinding is used more generally (shallow water and clouds), cancelling
travel and reverting to wandering behaviour whenever the player leaves LoS
is really unappropriate.

--------------------------------------------------------------------------------
e6cfca1ae9 | Adam Borowski | 2011-04-03 01:18:28 +0200

Correct the colour of LRDed glass.
Also, recoloured features use their custom colour too.

--------------------------------------------------------------------------------
aa8822dde8 | Adam Borowski | 2011-04-03 00:58:41 +0200

Reduce the amount of unrands among god gifts.
I guess there's something amiss, since nearly every KoBe has the captain's
cutlass even though the formula, if I didn't make a mistake, should yield a
smaller chance than in 0.6.

--------------------------------------------------------------------------------
ec3a845092 | Adam Borowski | 2011-04-02 23:51:05 +0200

Obey no_tele_into when bringing you a new fresh kitty.

--------------------------------------------------------------------------------
1b530ed1ed | Adam Borowski | 2011-04-02 23:45:38 +0200

Doxygenization and junk purging that was missed by my script.

--------------------------------------------------------------------------------
1097d773f7 | Adam Borowski | 2011-04-02 23:29:43 +0200

Don't rely on undocumented behaviour of ncursesw.
The API doesn't provide a way to giveback a function key, so let's do our
own giveback buffer.

--------------------------------------------------------------------------------
63f08da3a9 | Adam Borowski | 2011-04-02 21:07:55 +0200

Add missing cset overrides.
You can now "cset = explosion:Ж", others of note are fired_bolt and
fired_missile.

--------------------------------------------------------------------------------
d769e99db4 | Adam Borowski | 2011-04-02 20:42:41 +0200

Make default books ':' again, use different glyphs for detected items on 
Windows.
For books, it's better to match the shortcut keys by default.

For detected items, there is a discrepancy between the Microsoft's bitmap fonts
and their Windows Glyph List recommendations.  We use the one that works in the
former and is "optional" in the latter.

--------------------------------------------------------------------------------
e1eefe1618 | Adam Borowski | 2011-04-02 19:29:29 +0200

Make clouds paragraph marks by default (Eronarn)

--------------------------------------------------------------------------------
a9ab6c87ea | Adam Borowski | 2011-04-02 19:29:29 +0200

Allow raising trapdoor spider zombies.
They lose their special ability, but that's no different from most
monsters.

--------------------------------------------------------------------------------
ad2e507f97 | Johanna Ploog | 2011-04-02 18:56:43 +0200

Fix #3441: inventory actions occasionally affecting the wrong item.
item.slot may still refer to an old slot the item held at a previous
time it was in your inventory. Depending on whether the old slot is
filled by another item or empty, this may result in a crash or
assertion or in an altogether different item being affected by the
action.

Is there any reason item.slot doesn't get reset to the new slot on
pick up?

--------------------------------------------------------------------------------
0273f5765b | Adam Borowski | 2011-04-02 18:27:47 +0200

Make gravestones light grey rather than bright white.
They stand out too much near actual hostile statues.

--------------------------------------------------------------------------------
fad21f77ef | Adam Borowski | 2011-04-02 18:27:29 +0200

An awesome Crypt end by evilmike.

--------------------------------------------------------------------------------
caef20d8c4 | Adam Borowski | 2011-04-02 17:53:55 +0200

Some (crappy) tornado effect tiles.

--------------------------------------------------------------------------------
e9d51cb4f6 | Adam Borowski | 2011-04-02 17:27:34 +0200

Mention ~/.crawl/init.txt in the sample config.

--------------------------------------------------------------------------------
d56517754d | Adam Borowski | 2011-04-02 16:31:25 +0200

Correct kobolds' short desc: they're obligate carnivores (Soadreqm)

--------------------------------------------------------------------------------
3c9e0a35eb | Adam Borowski | 2011-04-02 15:52:57 +0200

Don't assert on function keys that produce a symbol.
Arrow keys for example produce digits if by a mistake NumLock is on.
This is an user error as NumLock keys should be ripped away from all
keyboards, but there might be actual valid cases like this :p

I'm not sure if the opposite case can happen, but since there's no obvious
thing to do I'm leaving the assertion there for now.

--------------------------------------------------------------------------------
d39bda7561 | Adam Borowski | 2011-04-02 15:52:56 +0200

Revert no ZotDef hunger for non-Sp.

--------------------------------------------------------------------------------
046d0de71e | Johanna Ploog | 2011-04-02 14:16:11 +0200

Fix #3608: leaking of items/features when clearing monster trails.

--------------------------------------------------------------------------------
a004d6f076 | Adam Borowski | 2011-04-02 10:46:14 +0200

Hush gcc-4.4 warnings.

--------------------------------------------------------------------------------
6b1a973545 | Adam Borowski | 2011-04-02 10:46:14 +0200

Advertise native dependencies over contribs in the error message.

--------------------------------------------------------------------------------
0e1d879f34 | David Lawrence Ramsey | 2011-04-01 22:40:01 -0500

Add missing (preliminary) description for sharks.

--------------------------------------------------------------------------------
1130f92052 | Adam Borowski | 2011-04-02 01:29:58 +0200

Fix display corruption in some cases.

--------------------------------------------------------------------------------
6435c656e3 | Adam Borowski | 2011-04-02 01:14:26 +0200

Purge an unused #define.

--------------------------------------------------------------------------------
cdc856af4d | Adam Borowski | 2011-04-02 00:21:36 +0200

Fix displayed time being %02:%02:%02.
Should be at least <blink>0:00</blink> or in the US <blink>12:00</blink>.

--------------------------------------------------------------------------------
597a4ca849 | Adam Borowski | 2011-04-02 00:08:55 +0200

Fix several word wrappers, merge them into one.

--------------------------------------------------------------------------------
ac4b671057 | Raphael Langella | 2011-04-01 22:45:54 +0200

Make resting and running respect the travel_key_stop option (elliptic).

--------------------------------------------------------------------------------
ac2b11c679 | Raphael Langella | 2011-04-01 21:16:47 +0200

Fix crash when memorising from randart books.

--------------------------------------------------------------------------------
6c1f396676 | Johanna Ploog | 2011-04-01 21:12:53 +0200

Comment out the level randart assertions until the next version change.
The books (especially manuals) might still be broken, but this should
prevent any crashes. It's just for keeping track of which levels' books
you've seen already, anyway.

--------------------------------------------------------------------------------
6ec114fd5e | Raphael Langella | 2011-04-01 20:25:28 +0200

Allow Ashenzarites to choose which piece of armour/jewellery to curse.
Only once the scroll is known. They can also cancel it and it does automatically
if you're not wearing any elligible item. Non-Ash worshippers can still use them
any time to victory dance spellcasting.

--------------------------------------------------------------------------------
6c60ecaa9e | Raphael Langella | 2011-04-01 20:25:28 +0200

Allow Ashenzarites to cancel scrolls of remove curse.
But only once the scroll is known. When unknown, you can't choose anymore.
Behaviour is the same as non-Ash worshippers.
Allowing to choose even with unknown scrolls was problematic. If you had no
cursed items and read remove curse, you got a message about not wearing any
cursed items, but the scroll remained unidentified.

--------------------------------------------------------------------------------
0c0bbc2641 | Johanna Ploog | 2011-04-01 20:20:00 +0200

Some more (improved) tiles of Denzi's.
New tiles for Leda's Liquefaction, the chardump command and the arena
icon.

Denzi's alternative air elemental tile has been moved into the UNUSED
directory and codenamed "spirit". Could be used for some water-based
undead creature or something along those lines.

--------------------------------------------------------------------------------
2b3f527f16 | Johanna Ploog | 2011-04-01 20:19:58 +0200

Add Denzi's tiles: pillar of salt, Ashenzari altar, fire bat, darkness.

--------------------------------------------------------------------------------
f790f98014 | Johanna Ploog | 2011-04-01 20:19:55 +0200

Mantis #3112: Mention any skeleton vampiric feeding leaves behind.

--------------------------------------------------------------------------------
ea00c2eac2 | Johanna Ploog | 2011-04-01 20:19:53 +0200

Fix #3703: pickup by mouseclick on player icon not taking a turn.

--------------------------------------------------------------------------------
f7206dc1af | Adam Borowski | 2011-04-01 17:39:39 +0200

Fix corrupted numeric cset overrides.

--------------------------------------------------------------------------------
b1159576b8 | Adam Borowski | 2011-04-01 16:09:22 +0200

Fix some strings being truncated.

--------------------------------------------------------------------------------
6e787a6da7 | Adam Borowski | 2011-04-01 15:14:39 +0200

Totally meaningless (for now) string width.
They can matter only if we ever translate these strings.

--------------------------------------------------------------------------------
3432fb2a50 | Adam Borowski | 2011-04-01 14:54:03 +0200

Make a function static.
tagged_string_tag_length() is used just once, too -- duplicating code that's
done in different ways elsewhere.  A candidate for clean-up.

--------------------------------------------------------------------------------
5ae1524b45 | Adam Borowski | 2011-04-01 14:45:12 +0200

Hardcode ncursesw, instead of doing file checks.
Sadly, this means you always need to specify LIBNCURSES_IS_UNICODE=y on Mac.
This sucks, but without autoconf or something of its kind there is little we
can do.

--------------------------------------------------------------------------------
821553a285 | Adam Borowski | 2011-04-01 13:43:56 +0200

Fix an old buffer overflow.

--------------------------------------------------------------------------------
22f25d0518 | Raphael Langella | 2011-04-01 13:38:05 +0200

Fix sprint map menu offering you to replay tutorial.
 #3700.

--------------------------------------------------------------------------------
9c6c079912 | Adam Borowski | 2011-04-01 13:32:27 +0200

More string width fixes.

--------------------------------------------------------------------------------
13de7371cc | Adam Borowski | 2011-04-01 12:46:12 +0200

Ravage std::setw() as well.

--------------------------------------------------------------------------------
86223b4241 | Adam Borowski | 2011-04-01 12:28:20 +0200

Replace inappropriate uses of std::string.substr().
Also, in most places, the string being chopped is immediately padded with
spaces.  So, the slightly unobvious default for chop_string() proved to be
justified.  Yay simplification.

--------------------------------------------------------------------------------
c42426f17c | Adam Borowski | 2011-04-01 11:26:55 +0200

Correct non-ASCII weapon inscriptions being possibly corrupted.

--------------------------------------------------------------------------------
dd7ffe0ad5 | Adam Borowski | 2011-04-01 11:07:01 +0200

Mention more data in an assertion.

--------------------------------------------------------------------------------
d55761bd94 | Adam Borowski | 2011-04-01 10:16:04 +0200

Revert default altars being pi.  In some fonts, it looks fugly.

--------------------------------------------------------------------------------
e6d145459d | Darshan Shaligram | 2011-03-31 23:22:16 -0400

Fix -DDGAMELAUNCH compile.

--------------------------------------------------------------------------------
4417ad15bb | Adam Borowski | 2011-04-01 01:48:49 +0200

Fix an infinite loop on very long lines in descriptions.

--------------------------------------------------------------------------------
cfe20e7bae | Raphael Langella | 2011-04-01 01:17:34 +0200

Future proof the shield evasion penalty code.
In case we ever add a giant race or form able to use shields (#949).

--------------------------------------------------------------------------------
7465a6be7a | Raphael Langella | 2011-04-01 01:17:34 +0200

Rotate the wall blood splat tiles so they are facing the source.
The effect looks much better this way.

--------------------------------------------------------------------------------
39458c9a80 | Raphael Langella | 2011-04-01 01:17:34 +0200

Increase the chance for blood splatters on adjacent walls.

--------------------------------------------------------------------------------
7d2f6c10e8 | Raphael Langella | 2011-04-01 01:17:34 +0200

Add a script which creates rotated variations of a tile.

--------------------------------------------------------------------------------
452ff38576 | Adam Borowski | 2011-04-01 01:00:14 +0200

Merge branch 'unicode'.
There are some issues left, like incorrect wrapping in some cases, but
we can fix them later.

--------------------------------------------------------------------------------
5485922b1f | Adam Borowski | 2011-04-01 00:55:37 +0200

Documentation updates.

--------------------------------------------------------------------------------
df54441bbb | Adam Borowski | 2011-04-01 00:47:29 +0200

Axe a test display.

--------------------------------------------------------------------------------
dc162fa72b | Adam Borowski | 2011-04-01 00:45:20 +0200

Allow only regular printable chars of width 1 as glyphs.
Control characters are, duh, no good.
Combining characters might be acceptable atop of a space.
CJK take two spaces.

--------------------------------------------------------------------------------
e3935d4ae7 | Adam Borowski | 2011-04-01 00:42:38 +0200

Allow specifying cset, feature and mon_glyph as literals.
Like:
mon_glyph = giant eye : white Θ

--------------------------------------------------------------------------------
0e31a338be | Adam Borowski | 2011-04-01 00:35:05 +0200

Make feature= and mon_glyph= work again in CSET_IBM and CSET_DEC.
Due to the old syntax allowing redefining them before setting the charset,
there's a hack:
* overrides already in UCS use positive numbers
* overrides specified by number are negative
The latter are converted if needed when overrides are applied.

--------------------------------------------------------------------------------
a975bb5545 | Adam Borowski | 2011-04-01 00:06:34 +0200

Make cset overrides more sane.
You don't need to specify the charset anymore, save for cset_ibm and
cset_dec which are for compatibility with legacy config files.

You can even use cset_ibm without char_set=ibm, it will work.

--------------------------------------------------------------------------------
dd07df81c8 | Robert Burnham | 2011-03-31 15:55:22 -0500

Establish handle_{{phase}} class methods
Creates shell class methods in attack to serve as the classes overloaded in
inheriting classes which handle each particular phase of an attack. Any given
handle_{{phase}} class method returns whether or not that phase was successful.
Success indicates to continue to the next phase based on the appropriate
variable configuration (eg, if to_hit and !blocked, do handle_landed()).

handle_phase_attempted is the only non pure-virtual method of the attack class
because there are problably some initialization-related variables that we can
always compute and/or set for all attacks. handle_phase_attempted will be
called by the attack constructor.

--------------------------------------------------------------------------------
acb1ca09f8 | Adam Borowski | 2011-03-31 22:30:39 +0200

Fix a miscast in is_vowel().  It doesn't yet actually support å or ë yet.

--------------------------------------------------------------------------------
6422797ca7 | Adam Borowski | 2011-03-31 22:26:55 +0200

No need to hack around rename() anymore.

--------------------------------------------------------------------------------
24b7e99d30 | Adam Borowski | 2011-03-31 22:22:24 +0200

Axe some debugging code.
I'm getting tired of rebasing it away from the history.

--------------------------------------------------------------------------------
5f8530060b | Adam Borowski | 2011-03-31 22:20:42 +0200

Unbreak arrow keys on win32 console.

--------------------------------------------------------------------------------
aa3932b2c4 | Adam Borowski | 2011-03-31 22:20:39 +0200

Working commands on Unix console.

--------------------------------------------------------------------------------
c782dd144f | Adam Borowski | 2011-03-31 22:17:43 +0200

Input on win32 console.

--------------------------------------------------------------------------------
ba04275a65 | Adam Borowski | 2011-03-31 22:17:43 +0200

Doxygen header.

--------------------------------------------------------------------------------
586997c4f1 | Adam Borowski | 2011-03-31 22:17:43 +0200

Get rid of remaining uses of putch().
One was actually wrong, too -- mangling redefined explosions.

--------------------------------------------------------------------------------
9c0a425e56 | Adam Borowski | 2011-03-31 22:17:43 +0200

Unicode support in the line_reader, including CJK and combining.
There are sadly some redraw errors when there's line-wrapping involved,
especially if you're editing something not at the end of the buffer,
but these appear to be not regressions so I left them for now.

I am tempted to just brute-force it by redrawing the whole thing and
let ncurses optimize it...

--------------------------------------------------------------------------------
1beff1240c | Adam Borowski | 2011-03-31 22:17:43 +0200

Use system's locale in all ports, from the very start.

--------------------------------------------------------------------------------
6f1033c076 | Adam Borowski | 2011-03-31 22:17:07 +0200

Basic cursesw input.
No direction keys yet...

--------------------------------------------------------------------------------
d369795355 | Adam Borowski | 2011-03-31 22:16:07 +0200

Evict all non-character key codes to negative values (tiles).

--------------------------------------------------------------------------------
778a975c1c | Johanna Ploog | 2011-03-31 22:03:44 +0200

Fix #3516: LRD exploding in odd tiles in the Elven Halls.

--------------------------------------------------------------------------------
357cec55e4 | Johanna Ploog | 2011-03-31 18:57:13 +0200

Upgrade weapon tile when fixing a temp. brand with ?vorpalise weapon.

--------------------------------------------------------------------------------
57d6060d12 | Eino Keskitalo | 2011-03-31 19:42:31 +0300

New spellbook: the book of zoology: summon butterflies, sticks to snakes, call 
canine familiar, ice form, summon ice beast, summon hydra.
Mainly a vehicle for keeping summon hydra in the game (apart from randart 
books). Transmutation spells thrown in for theme.

Adding another source of Butterflies might be not so good, but on the other 
hand it was recently nerfed. Not sure about the rarity, but I want Summon Hydra 
to pop up every now and then.

--------------------------------------------------------------------------------
ddc7011b61 | Eino Keskitalo | 2011-03-31 19:23:11 +0300

Remove the book of surveyances description.

--------------------------------------------------------------------------------
89eb417abc | Eino Keskitalo | 2011-03-31 19:23:10 +0300

Arrange spellbook descriptions alphabetically.

--------------------------------------------------------------------------------
53826a4578 | Eino Keskitalo | 2011-03-31 19:23:10 +0300

Remove Summon Hydra from the Book of Summonings.
It's in the Vehumet gifting chain and Vehumet-worshippers already have a good 
enough variety of spells.

--------------------------------------------------------------------------------
8640b91d4a | Eino Keskitalo | 2011-03-31 19:23:10 +0300

Remove the book of divinations description.

--------------------------------------------------------------------------------
c35e67c6c8 | Eino Keskitalo | 2011-03-31 19:23:10 +0300

Prefix an internal function with an underscore. (code conventions)

--------------------------------------------------------------------------------
82eba65f58 | Johanna Ploog | 2011-03-31 17:34:09 +0200

If the Abyss has been wizmode-mapped, update the map on Abyss shifts.

--------------------------------------------------------------------------------
ea40b665ea | Johanna Ploog | 2011-03-31 17:34:07 +0200

Partially fix #3358: re-init tile flavour on Abyss shifts.

--------------------------------------------------------------------------------
c301f90d16 | Johanna Ploog | 2011-03-31 17:34:04 +0200

Fix wizmode-blinking (xm, &b) asserting in the Abyss.
Suppress the assertion checks of player position vs. map border in
wizard mode to allow wizmode-movement commands in the Abyss. This
may result in incomplete Abyss shifts, so it's not a reliable means
to actually testing the shifts themselves. However, this does allow
to use the wizmode-movement as a tool in exploring the Abyss to test
other things.

This also means that the assertions won't be triggered in debug mode,
though there _is_ a message in this case. Ideally, the asserts should
only be suppressed if the wizmode movement was the *cause* of the
shift.

--------------------------------------------------------------------------------
d00ecaebbc | David Lawrence Ramsey | 2011-03-31 09:45:56 -0500

Shorten and tweak Elyvilon's ^! description to fit in an 80x24 screen.

--------------------------------------------------------------------------------
342d029842 | David Lawrence Ramsey | 2011-03-31 09:38:01 -0500

Tweak wording.

--------------------------------------------------------------------------------
e0cc412e21 | David Lawrence Ramsey | 2011-03-31 09:22:27 -0500

Revert "Simplify Ashenzari corse absorption message."
This reverts commit 1c347aef6322320a04a1fc1da3dd5c02b2c98dd1.

--------------------------------------------------------------------------------
4a0806f73b | Johanna Ploog | 2011-03-31 14:39:55 +0200

Move jelly, eye and dragon tiles into appropriate subdirectories.

--------------------------------------------------------------------------------
26021e1108 | Johanna Ploog | 2011-03-31 13:54:52 +0200

Use purge's new eye of devastation tile.

--------------------------------------------------------------------------------
517a298f75 | Johanna Ploog | 2011-03-31 13:33:23 +0200

Add Curio's new tiles for Ilsuiw and the necromancer.
Also use !heal wounds icon (rather than !healing) for the wand of
healing because that effect comes closer, also suggested by Curio.

--------------------------------------------------------------------------------
1c347aef63 | David Lawrence Ramsey | 2011-03-31 00:53:29 -0500

Simplify Ashenzari corse absorption message.

--------------------------------------------------------------------------------
e9d2a106fe | David Lawrence Ramsey | 2011-03-30 17:18:18 -0500

Fix Zin's potentially hating some randart books for no reason.
Based on the fix for Chei in a74b52e6fc96233f96aa61a88aa31cfec93b255e.

--------------------------------------------------------------------------------
6a3d39d105 | David Lawrence Ramsey | 2011-03-30 16:18:51 -0500

Fix shadowed parameter warning.

--------------------------------------------------------------------------------
76489fb0c9 | Raphael Langella | 2011-03-30 22:40:22 +0200

Copy props when cloning monsters.

--------------------------------------------------------------------------------
7f1c7ef383 | Raphael Langella | 2011-03-30 22:40:22 +0200

Copy props in monster_info even for fake monsters.
It only contains public info, and is necessary anyway.

--------------------------------------------------------------------------------
710a650a65 | Raphael Langella | 2011-03-30 22:40:22 +0200

Fix boot of levitation message when melding and not levitating.
 #3334.

--------------------------------------------------------------------------------
75127a5eca | Raphael Langella | 2011-03-30 22:40:22 +0200

Don't hide equipment of Mara and Rakshasa.
You can't use this information to tell them appart from the fakes since the
equipment is cloned anyway.

--------------------------------------------------------------------------------
54f2f19574 | Raphael Langella | 2011-03-30 22:40:22 +0200

Make rakshasa use the same cloning code as Mara.
Enchantments and equipment is cloned too.

--------------------------------------------------------------------------------
d9876f3178 | Raphael Langella | 2011-03-30 22:40:22 +0200

Allow fake rakshasa to use weapons and armour like real ones.

--------------------------------------------------------------------------------
a74b52e6fc | Raphael Langella | 2011-03-30 22:40:22 +0200

Fix Chei hating some randart books for no reason.

--------------------------------------------------------------------------------
6998d9727c | Adam Borowski | 2011-03-30 22:02:19 +0200

Don't check inscriptions on melding stuff -- you're not removing them.

--------------------------------------------------------------------------------
b77ec05b66 | Adam Borowski | 2011-03-30 22:02:14 +0200

Don't consider melding a distortion weapon to be unwielding.

--------------------------------------------------------------------------------
cc29eda054 | Adam Borowski | 2011-03-30 21:57:53 +0200

Don't exempt those non-innately evil from being recited to.
This includes Jessica, human/DD necromancers, and so on.

--------------------------------------------------------------------------------
4e95c674c5 | Adam Borowski | 2011-03-30 20:48:15 +0200

Rename the description for Breathe Power -> Energy (eronarn)

--------------------------------------------------------------------------------
91f5935c01 | Johanna Ploog | 2011-03-30 19:14:26 +0200

Re-add Omndra's demon/orb title screen, with new logo.
It's my favourite of the available title screens. =)
The original is still in the UNUSED/gui directory.

--------------------------------------------------------------------------------
2d373a24f1 | Johanna Ploog | 2011-03-30 18:50:43 +0200

Add phoenix (Porkchop) and silver star (Denzi) tiles.

--------------------------------------------------------------------------------
1fab049809 | Johanna Ploog | 2011-03-30 18:49:19 +0200

Encase _is_explore_horizon() in #ifndef USE_TILE.
No idea what it's supposed to do, but it's only ever called for
console builds.

--------------------------------------------------------------------------------
dfe96dd62d | Adam Borowski | 2011-03-30 11:30:50 +0200

Make statue_bzr always place permanent bazaars.

--------------------------------------------------------------------------------
0a530a3b76 | Adam Borowski | 2011-03-30 10:46:44 +0200

Relax the hp cap for direct placement on the arena.

--------------------------------------------------------------------------------
fa234144bb | Adam Borowski | 2011-03-30 10:43:47 +0200

Revert e9eed917 (to 10000 not 100), introduce such caps everywhere.
If a monster's hp exceeds 32767, it will wrap around when saving.

--------------------------------------------------------------------------------
e9eed91794 | David Lawrence Ramsey | 2011-03-29 22:53:03 -0500

Fix Mantis 3684.
Remove the 100-HP cap on healing from eating corpses, as it causes
problems with ghouls now that they have more than 100 HP.  There's no
similar cap on healing from eating items for jellies and the like, in
any case.

--------------------------------------------------------------------------------
752fcafab5 | Adam Borowski | 2011-03-30 02:15:37 +0200

Make rods of striking betterer: 1d5 -> 1d8.

--------------------------------------------------------------------------------
582e1ef106 | Adam Borowski | 2011-03-30 02:09:41 +0200

Fix a lua view.feature_at() crash.

--------------------------------------------------------------------------------
20da341cf8 | Adam Borowski | 2011-03-30 01:51:56 +0200

Ashenzari's wrath.
Per Galehar's suggestion, he takes a part of your xp for 0.8; we may turn
this into a skill malus or something in the future.  I went for a bigger
penalty, though: 50%.

The wrath doesn't use time like all other gods do.  Using exploration would
be easily gameable: run around, superficially exploring a bunch of levels
while not killing anything big, then go back to harvest the xp.  Thus, the
wrath lasts until you lose a preset amount of xp.

--------------------------------------------------------------------------------
084875d14c | Adam Borowski | 2011-03-30 01:51:56 +0200

Don't let high-power common/rare Experience card be better than legendary.

--------------------------------------------------------------------------------
77e3df9a87 | Raphael Langella | 2011-03-30 00:50:25 +0200

Fix dual wielding monster's description.
3689.

--------------------------------------------------------------------------------
4b7de178e8 | Adam Borowski | 2011-03-30 00:16:38 +0200

Don't say " in 'fixedvector.h' at line 72" in range check errors.
This confuses people into thinking the error is there and that it's
important information that will help us find the crash's cause.

It'd be nice to know the real caller, but C++ doesn't give us that.

--------------------------------------------------------------------------------
1c73ec2856 | Adam Borowski | 2011-03-30 00:03:30 +0200

Don't ranged autofight through walls/glass/scryed walls.

--------------------------------------------------------------------------------
444c947174 | Adam Borowski | 2011-03-29 23:51:42 +0200

Add you.see_cell(), you.see_cell_no_trans(), you.silenced and you.piety_rank to 
clua.
Note: the first two functions work differently in clua and dlua.  The former
takes coordinates relative to the player, the latter absolute.

--------------------------------------------------------------------------------
fad5c31394 | Adam Borowski | 2011-03-29 23:08:32 +0200

Don't destroy items apported if at the item limit.

--------------------------------------------------------------------------------
59a4d7c3b5 | Raphael Langella | 2011-03-29 22:54:55 +0200

Autofight: fire at nearest enemy if wielding a ranged weapon.
It doesn't check if the LOF is clear, but it's still better than walking up
to the monster and bashing it with your bow.

--------------------------------------------------------------------------------
520762ec9a | Raphael Langella | 2011-03-29 22:54:55 +0200

Don't destroy the rest when apporting part of a stack.

--------------------------------------------------------------------------------
2cfde76d6d | Adam Borowski | 2011-03-29 14:24:10 +0200

Don't shutdown uninitialized curses during an early crash.
It ends up with a recursive crash loop with 100% CPU.

--------------------------------------------------------------------------------
216ad1626f | Raphael Langella | 2011-03-29 00:32:24 +0200

Fix Ash on-sight id not identifying mimics.

--------------------------------------------------------------------------------
4e073f5f65 | Raphael Langella | 2011-03-29 00:03:09 +0200

Ash on sight id: limit the autopickup hack to jewellery.
It's a hack and can create some rare oddities. If you change your options,
items not picked up won't update their autopickup status. Thus, we limit
the hack to jewellery since it's only used for them.

--------------------------------------------------------------------------------
75b845c6b0 | Raphael Langella | 2011-03-28 23:57:19 +0200

On-sight identification of items droppped by monsters.

--------------------------------------------------------------------------------
74ac953d95 | Raphael Langella | 2011-03-28 23:39:20 +0200

Better warning messages for form and levitation expiration.
It will give a more prompt if it starts expiring while you're on a deadly
cell, or if you enter one while it's expiring.

--------------------------------------------------------------------------------
bc5ec475be | Raphael Langella | 2011-03-28 18:59:23 +0200

Ashenzari: retroactive identification.
Whenever a search is started, the stash is updated and all item identification
is updated according to current piety and bounded slots.

--------------------------------------------------------------------------------
2cd38c3021 | Raphael Langella | 2011-03-28 18:59:23 +0200

Ashenzari on-sight identification works for all items (not just new ones).

--------------------------------------------------------------------------------
aa2ef77e03 | Raphael Langella | 2011-03-28 18:59:22 +0200

Update Ashenzari description.

--------------------------------------------------------------------------------
d921e74a9d | Eino Keskitalo | 2011-03-28 18:13:02 +0300

Rename book of demonology to Grand Grimoire, to reflect that it is not about 
just demons anymore.
Name from OG17, and new description from dtsund.

--------------------------------------------------------------------------------
9dc6c0a491 | Adam Borowski | 2011-03-28 12:53:41 +0200

Disable Terpsichore, she's not ready for 0.8.

--------------------------------------------------------------------------------
de56ba3904 | elliptic | 2011-03-28 12:49:48 +0200

Add some lua hooks for player stuff.

--------------------------------------------------------------------------------
2bcb5810c1 | Raphael Langella | 2011-03-28 12:20:37 +0200

Ashenzari: disable skill boost and bring back XP boost.
The skill boost is far from being ready for release, so let's just keep the
XP boost for now.

--------------------------------------------------------------------------------
0c5a7e4311 | Raphael Langella | 2011-03-28 12:20:36 +0200

Apportation targetting: allow cycling with +/-.

--------------------------------------------------------------------------------
e13414f529 | Adam Borowski | 2011-03-28 12:07:10 +0200

Make file headers doxygen-friendly, drop useless fields.
"File:" is shown in your editor's status bar.
"Written by:" was used only for the first person who changed a file.  We got
git for that now, and pre-DCSS history is so woefully inaccurate it doesn't
really matter.

--------------------------------------------------------------------------------
f3038967a1 | Adam Borowski | 2011-03-28 11:07:20 +0200

A whitespace fix.
Folks, you can ln -s ../git-hooks/pre-commit ../../.git/hooks/pre-commit
if you want the check to work.  Or copy it if you don't want me to plop
a nice rm -rf into that file.

--------------------------------------------------------------------------------
862370aabb | David Lawrence Ramsey | 2011-03-28 02:28:52 -0500

Readd Cause Fear to monster rod spells (from the rod of warding).
The previous problem with indiscriminate use occurs everywhere the spell
is used anyway (ghost/Pan lord spells, eidolon spells), and the rod is
more uncommon than those cases.

--------------------------------------------------------------------------------
4503ae20c0 | elliptic | 2011-03-28 12:30:19 +0530

Make stopping travel on keypress an option.
Signed-off-by: Darshan Shaligram <scintilla@gmail.com>

--------------------------------------------------------------------------------
0155d9717c | Darshan Shaligram | 2011-03-28 12:00:17 +0530

Remove obsolete stash_filter crud from init.txt

--------------------------------------------------------------------------------
ca23008e14 | Darshan Shaligram | 2011-03-28 11:53:35 +0530

[3676] Fix crashes when butcher delay tries to switch back to empty hands.

--------------------------------------------------------------------------------
1230dd073c | David Lawrence Ramsey | 2011-03-27 21:57:14 -0500

Remove last references to Control Demon at the next major version bump.
It hasn't been available in-game since the demonspawn overhaul.

--------------------------------------------------------------------------------
7ddd175fc9 | Chris Campbell | 2011-03-28 00:26:41 +0100

Properly mark some more permanent summons as such

--------------------------------------------------------------------------------
ef1daec610 | Adam Borowski | 2011-03-28 01:14:44 +0200

A lua function item.is_ranged().

--------------------------------------------------------------------------------
fba93c389a | Adam Borowski | 2011-03-28 01:14:44 +0200

Allow auto-killing toadstools with berserkitis and stasis/clarity.

--------------------------------------------------------------------------------
6b2d06de48 | Adam Borowski | 2011-03-28 01:14:44 +0200

Fix a corrupted string in Zin's debug messages.
It led to pretty fancy memory corruption...

--------------------------------------------------------------------------------
d241bafbe2 | Adam Borowski | 2011-03-28 01:14:43 +0200

Adjust the glowing status of gear monsters get.
For some monsters, items receive a brand, and in some cases they might lose
it, like undead who rolled a weapon of holy wrath.

--------------------------------------------------------------------------------
27748ddfe9 | Adam Borowski | 2011-03-28 01:14:43 +0200

Fix escaping from hints mode char selection not working.
It tried to stuff an int into a char, failing if it was a signed value.
Also, it would break for non-ASCII soon.

--------------------------------------------------------------------------------
43f8cf5273 | William Parker | 2011-03-28 01:14:43 +0200

Actually prevent hell effect banishment

--------------------------------------------------------------------------------
223dfa93d4 | Adam Borowski | 2011-03-28 01:14:43 +0200

Mark permanent summons as such.
The name and theme sucks, but it's hard to come with a decent way to convey
to players which of the two identical monsters next to each will give corpses,
items and xp and which will vanish without even a summon message.

--------------------------------------------------------------------------------
ad3591b505 | Adam Borowski | 2011-03-28 01:14:43 +0200

Don't mark Nikola's cloak as "gauntlets".
The marking was ignored since cloaks don't use plus2 for anything.

--------------------------------------------------------------------------------
0a1994bfc7 | Adam Borowski | 2011-03-28 01:14:43 +0200

Fix a part of Hell population not giving xp or items.
Those who appear next to you are technically created by miscast code.
It doesn't make sense for two identical fiends next to each other to
differ, and here it's not the player's fault.

Some effects produce actual summons, those are unaffected (and shown as such).

--------------------------------------------------------------------------------
d3ed5cb928 | Raphael Langella | 2011-03-28 01:11:54 +0200

Fix antitraining when opposite skill is nil.

--------------------------------------------------------------------------------
f45a1f14b4 | David Lawrence Ramsey | 2011-03-27 17:53:53 -0500

Add formatting fix.

--------------------------------------------------------------------------------
d5784199fa | Raphael Langella | 2011-03-28 00:43:07 +0200

iButchering: ignore inscriptions when switching back to cursed weapon.

--------------------------------------------------------------------------------
38ef6ee739 | Raphael Langella | 2011-03-28 00:17:21 +0200

Allow Ashenzarites to switch body armour with a cursed cloak.

--------------------------------------------------------------------------------
03c82ed021 | Raphael Langella | 2011-03-28 00:17:21 +0200

Update Ashenzari description.

--------------------------------------------------------------------------------
4d0b550ae5 | Raphael Langella | 2011-03-28 00:17:21 +0200

Allow ashenzarites to switch rings with cursed gloves.
It's just a flavour gimmick that hurts the gameplay.

--------------------------------------------------------------------------------
606ecb2c1e | Raphael Langella | 2011-03-28 00:17:21 +0200

Revert "Give Ashenzari a butcher ability."
This reverts commit 431acdf161c16cc92e8222d04b9b6966a97d274d.

--------------------------------------------------------------------------------
9819cf2da3 | Raphael Langella | 2011-03-28 00:17:21 +0200

Allow ashenzarites to butcher when wielding a cursed blunt weapon.
If you're interrupted, you're not prompted and forced to switch back to your
cursed weapon. Thus, this exception doesn't work with a monster in sight.

--------------------------------------------------------------------------------
e2b38c256c | Raphael Langella | 2011-03-28 00:17:21 +0200

Don't print wielding effect when switching back from butchering.
Reduce butchering spam.

--------------------------------------------------------------------------------
1afe7ee874 | Raphael Langella | 2011-03-28 00:17:21 +0200

Fix no wielding prompt when butchering is interrupted by an invisible.
In some cases, you're not prompted to switch back.

--------------------------------------------------------------------------------
f13531e78c | Johanna Ploog | 2011-03-27 23:37:50 +0200

Fix #3255: real staff tiles displayed in the undiscovered items list.

--------------------------------------------------------------------------------
196448119a | Chris Campbell | 2011-03-27 20:28:44 +0100

Buff Ogres a bit
Extra +1 hp per level, and +3 apts in Fighting and M&F.

--------------------------------------------------------------------------------
92746e15a8 | Chris Campbell | 2011-03-27 20:28:43 +0100

Remove some special-casing for amulet of rage success

--------------------------------------------------------------------------------
1282d5c066 | Chris Campbell | 2011-03-27 20:28:42 +0100

Don't give exp or items for killing monsters from miscasts, either

--------------------------------------------------------------------------------
1fc64d34ad | Chris Campbell | 2011-03-27 20:28:41 +0100

Don't give experience or items for killing monsters from god wrath
This prevents farming wrath and allows reinstating immediate
retribution on abandonment for some gods, if that's desired.

--------------------------------------------------------------------------------
672ffcb448 | Johanna Ploog | 2011-03-27 21:18:04 +0200

Fix #3671: Don't meld wielded items that aren't a weapon or staff.
Also, if one of those other types is already melded in the weapon slot,
unmeld it cleanly anyway.

We might allow melding missiles to make life easier for Tm and EE, or
decks for Nemelexites, but things get increasingly awkward after that.

If we allow melding potions of blood because of SoB, should that also
protect them against shattering? (If no, that sounds like it should
cause damage to the player; if yes, it would be optimal to try to meld
your most precious potions before stepping through those freezing
cloud minivaults.)

I guess we could draw the line at melding consumables, but allow
missiles and misc. items.

--------------------------------------------------------------------------------
25a905c2cd | David Lawrence Ramsey | 2011-03-27 11:11:04 -0500

Fix pacification of valid targets that fails due to randomness.
The previous change canceled pacification for both invalid targets and
valid targets that failed due to randomness; only the former is correct.

--------------------------------------------------------------------------------
1d168ff929 | Charles Otto | 2011-03-27 11:05:50 -0400

Put MF_NO_REWARD on Fedhas retribution monsters

--------------------------------------------------------------------------------
3c492df8e8 | Vsevolod Kozlov | 2011-03-27 15:52:45 +0400

spider.des: Move callback function definitions into the proper place.
Previously, they were defined as a part of spiders_nest_scorpion_pit.

The issue with some code being duplicated from traps.des remains.

--------------------------------------------------------------------------------
a727ed6a54 | David Lawrence Ramsey | 2011-03-26 19:46:45 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
6a437510fc | Adam Borowski | 2011-03-27 00:43:55 +0100

Drop the WEIGHT for forest_0.8, tone down the Trog temple.
It is left enabled, with standard weight of 10.

--------------------------------------------------------------------------------
87d5bf9da2 | Raphael Langella | 2011-03-27 00:39:03 +0100

Fix autopickup of stacks under Ashenzari.
Bug introduced by 9a18e06c7. Mantis #3667.

--------------------------------------------------------------------------------
1d62eb1296 | Raphael Langella | 2011-03-27 00:27:47 +0100

Fix unwield message.
You can directly unwield only by clicking on your wielded weapon or from
the inventory action. Also add an unwield command to make the inventory
action code simpler.

--------------------------------------------------------------------------------
c5ce23998e | David Lawrence Ramsey | 2011-03-26 16:20:10 -0500

Mark Ignacio as worshipping Makhleb.

--------------------------------------------------------------------------------
0eb09a90cb | Raphael Langella | 2011-03-26 22:16:00 +0100

Reskilling: keep the same letters between the from and to menu.

--------------------------------------------------------------------------------
2c61913c39 | Raphael Langella | 2011-03-26 22:16:00 +0100

Don't reskill from fighting.
Not that anyone would do it anyway. Just to be consistent, if it doesn't
work one way, there's no reason that it would work the other way.

--------------------------------------------------------------------------------
67e46aa044 | David Lawrence Ramsey | 2011-03-26 16:01:24 -0500

Tweak wording.

--------------------------------------------------------------------------------
dd69363c10 | David Lawrence Ramsey | 2011-03-26 15:38:41 -0500

Tweak wording and punctuation.

--------------------------------------------------------------------------------
21c1dad8b8 | Adam Borowski | 2011-03-26 21:23:01 +0100

My stab at Ignacio the executioner.  Doesn't spawn yet.
Meant for Pandemonium.

--------------------------------------------------------------------------------
c3adba55d7 | Adam Borowski | 2011-03-26 19:20:03 +0100

Give a better message when trying to drop a melded weapon.
Why it comes from can_wield() is weird, but ok.  I added the new one there
as well to guarantee you won't somehow get to wield a different weapon.

--------------------------------------------------------------------------------
c3d4e692b3 | Adam Borowski | 2011-03-26 19:20:03 +0100

Fix malign gateways being used out of Abyss/Hells.

--------------------------------------------------------------------------------
f453700611 | Adam Borowski | 2011-03-26 19:20:03 +0100

Meld all weapons unless you're in a form that allows wielding (jpeg)
Having only cursed weapons behave this way is inconsistent for no reason.

--------------------------------------------------------------------------------
f7df286468 | Eino Keskitalo | 2011-03-26 18:20:35 +0200

Use foo_short instead of foo2 for the short timer function and variable names 
for the unannounced portals.

--------------------------------------------------------------------------------
8fcc62c359 | Eino Keskitalo | 2011-03-26 18:20:35 +0200

Fix double messaging when an unannounced portal comes to view.

--------------------------------------------------------------------------------
1e8e7f6b08 | Eino Keskitalo | 2011-03-26 18:20:35 +0200

Fix ice cave depths and comments.

--------------------------------------------------------------------------------
5f9f4b3ff2 | Eino Keskitalo | 2011-03-26 18:20:35 +0200

Fix the portal timeout messages for unnannonced portals.
They were acting according to the long timer length, meaning that they were 
always only displaying the last message ("almost gone" etc) when the portal was 
in view.

The length of the short timer is now set in the des file (same as before, a 
tenth of the long timer).

--------------------------------------------------------------------------------
110498639f | Eino Keskitalo | 2011-03-26 18:20:35 +0200

Add some clingers to some of the existing sewer maps.

--------------------------------------------------------------------------------
6c50a2248f | Eino Keskitalo | 2011-03-26 18:20:35 +0200

A simple sewer entry vault featuring clingers.

--------------------------------------------------------------------------------
c764c62661 | Eino Keskitalo | 2011-03-26 18:20:35 +0200

Add early clingers to the sewer random monster set (although it's practically 
never used).

--------------------------------------------------------------------------------
2909761981 | Eino Keskitalo | 2011-03-26 18:20:34 +0200

Small tweaks to sewer_co_purgy_island.
State WEIGHT: 10 explicitly. Add crocodile backup in case Purgy was already 
placed. Comment grammar fix + expansion.

--------------------------------------------------------------------------------
7751c34971 | Eino Keskitalo | 2011-03-26 18:20:34 +0200

Add a few layout guidelines to the header comment.

--------------------------------------------------------------------------------
9522d952eb | Eino Keskitalo | 2011-03-26 18:20:34 +0200

Give a few non-spider monsters clinging.
The monsters are: giant ceckos, giant mites, giant cockroaches and demonic 
crawlers.

--------------------------------------------------------------------------------
d7f5799455 | Eino Keskitalo | 2011-03-26 18:20:34 +0200

Trivial comment fix.

--------------------------------------------------------------------------------
02673d105e | Chris Campbell | 2011-03-26 14:54:48 +0000

Don't consume food/mp/piety when trying to pacify invalid targets
Costs are still consumed when trying to pacify empty space (there could
be an invisible monster) but not when trying to pacify a sleeping target
or something that you cannot pacify at all.

--------------------------------------------------------------------------------
1fd2b29b10 | Johanna Ploog | 2011-03-26 14:12:23 +0100

In the crash dump, mention if an equipped item is unid'd or melded.

--------------------------------------------------------------------------------
328a043d8e | Johanna Ploog | 2011-03-26 13:37:55 +0100

Fix an out-of-bounds assertion in only_unided_ring().

--------------------------------------------------------------------------------
10d63e2b86 | Johanna Ploog | 2011-03-26 12:23:34 +0100

Fix #3614: wizmode creating "cards" not working.
Fixes #3614 for real, my previous commit was for #3598. (I got the
numbers confused as I was working on both at the same time.)

--------------------------------------------------------------------------------
bd1ef3510f | Johanna Ploog | 2011-03-26 11:47:15 +0100

Fix #3614: if necessary, update perma-mutation if you gain a mutation.
Increase the perma-mutation counter if you're supposed to get a
mutation but already have it as a normal one.

--------------------------------------------------------------------------------
041d1be68d | Johanna Ploog | 2011-03-26 11:19:30 +0100

Fix #3660: canceling DD recharging ability still costing max MP.

--------------------------------------------------------------------------------
8f09abf18a | Adam Borowski | 2011-03-26 01:05:24 +0100

Guarantee IOOD placement on tiny levels.

--------------------------------------------------------------------------------
93c4f4db7f | Adam Borowski | 2011-03-26 00:14:42 +0100

Rename mons->needs_transit(), it means Abyss only, not rest of transit.

--------------------------------------------------------------------------------
1b3771b847 | Adam Borowski | 2011-03-26 00:14:42 +0100

Don't crash on banishing dancing weapons; don't abyss any kinds of summons.
Monsters that are summoned but not "summoned" -- ie, Tukima's Dance, chaos
clones, IOOD, tentacles, fire vortices -- should be treated like the rest
of summons when transit is concerned.  The only differences are messages
and abjuration.

--------------------------------------------------------------------------------
9a18e06c7f | Raphael Langella | 2011-03-25 23:32:33 +0100

Fix on-sight identification messing up with autopickup.
Mantis #3655.

--------------------------------------------------------------------------------
e3854289fa | Raphael Langella | 2011-03-25 23:32:33 +0100

Ashenzari: silence on-sight item identification.
Items are announced anyway, so ne need to do it twice.

--------------------------------------------------------------------------------
4d5439372f | Johanna Ploog | 2011-03-25 22:44:04 +0100

Make wyvern zombies use the dragon zombie tile.
Better than the bear tile, by far.

--------------------------------------------------------------------------------
3393595462 | Robert Burnham | 2011-03-25 14:02:37 -0500

Fix compilation issues, complete removal of NOCAP/CAP
Removal of NOCAP/CAP DESC items is tentative and may be subject to revision
since the entire replacement of each corresponding CAP/NOCAP item  has not been
tested to verify the quality of output.

--------------------------------------------------------------------------------
4ebbff7296 | Robert Burnham | 2011-03-25 13:45:07 -0500

Replace DESC_NOCAP_ITS with DESC_ITS

--------------------------------------------------------------------------------
f03b72da3b | Robert Burnham | 2011-03-25 13:42:56 -0500

Replace DESC_NOCAP_YOUR and DESC_CAP_YOUR with DESC_YOUR

--------------------------------------------------------------------------------
f6a5725258 | Robert Burnham | 2011-03-25 13:37:13 -0500

Replace DESC_NOCAP_A and DESC_CAP_A with DESC_A

--------------------------------------------------------------------------------
1ff96d184c | Robert Burnham | 2011-03-25 13:24:12 -0500

Replace DESC_NOCAP_THE with DESC_THE

--------------------------------------------------------------------------------
01145de6bf | Robert Burnham | 2011-03-25 13:07:29 -0500

Replace DESC_CAP_THE with DESC_THE
Also makes some replacements for DESC_CAP_YOUR, DESC_NOCAP_YOUR, DESC_CAP_A,
DESC_NOCAP_A as was convenient...so don't expect this to compile...at all.

--------------------------------------------------------------------------------
9242c46d95 | Robert Burnham | 2011-03-25 11:03:00 -0500

Move forward declaration from attack to melee_attack

--------------------------------------------------------------------------------
732c8110eb | Robert Burnham | 2011-03-25 10:33:17 -0500

To-do commentary change

--------------------------------------------------------------------------------
16371b6006 | Robert Burnham | 2011-03-25 10:25:10 -0500

Remove useless, static wrapper method
player-act.cc had _pronoun_you() which was being used by player::name()
to return the correct descriptive pronoun (normally can be a name, but for
players, clearly its always a pronoun)

--------------------------------------------------------------------------------
cbc40fc8f5 | Robert Burnham | 2011-03-25 10:13:16 -0500

Update to-do, juxtapose method declarations

--------------------------------------------------------------------------------
c29de29ce9 | Robert Burnham | 2011-03-25 10:07:31 -0500

Change attack::damage_brand from <int> to <brand_type>
Also moves melee_attack::*shield to attack::*shield (attacker's shield) since
both melee and ranged attacks would benefit from this same member data.

--------------------------------------------------------------------------------
7e0b0d1b42 | Johanna Ploog | 2011-03-25 11:15:17 +0100

Fix #3654: weapons not being melded properly.

--------------------------------------------------------------------------------
86a67b9ba9 | Johanna Ploog | 2011-03-25 11:13:59 +0100

Improve speed brand description (#3628, XuaXua).

--------------------------------------------------------------------------------
d6aa450680 | Johanna Ploog | 2011-03-25 10:11:23 +0100

Fixed #3639: Slight tweaks to the player naga tiles.

--------------------------------------------------------------------------------
e38f22002f | Chris Campbell | 2011-03-24 23:33:41 +0000

Update Ashenzari description

--------------------------------------------------------------------------------
5831c72e81 | Raphael Langella | 2011-03-25 00:14:30 +0100

Stop only once for sensed monsters.

--------------------------------------------------------------------------------
ed92f751d7 | Raphael Langella | 2011-03-24 23:43:54 +0100

Ashenzari on-sight identification.
Only for new items coming into view.

--------------------------------------------------------------------------------
431acdf161 | Raphael Langella | 2011-03-24 23:05:30 +0100

Give Ashenzari a butcher ability.
It's unthematic, but I think it will help balance the god while we look for
a better solution.

--------------------------------------------------------------------------------
22b8d9891f | Raphael Langella | 2011-03-24 22:38:55 +0100

Fix a few messages for Ash.

--------------------------------------------------------------------------------
9596e462ea | Robert Burnham | 2011-03-24 16:05:40 -0500

Move melee_attack properties to attack
Moves some artefact properties I thought I wasn't going to need for the general
attack class from melee_attack into attack since any attacking weapon could
potentially be an attacking weapon.

--------------------------------------------------------------------------------
df0302c5b7 | Raphael Langella | 2011-03-24 22:03:22 +0100

Unerf low piety passive mapping.
I made a mistake with the scaling which made it really weak on low piety.

--------------------------------------------------------------------------------
cd066b1911 | Adam Borowski | 2011-03-24 21:54:46 +0100

Cap stat loss at -100 (elliptic)
Sitting near an orange crystal statue is pretty likely to bail you out by
crashing instead of killing you like retreating and failing to fix it would.

--------------------------------------------------------------------------------
833bced194 | Adam Borowski | 2011-03-24 21:48:01 +0100

Don't include unknown mimics in beam targetting.

--------------------------------------------------------------------------------
0440419004 | Adam Borowski | 2011-03-24 21:36:40 +0100

Don't acquire manuals or sage to utterly useless skills.
This does not include skills that are merely forbidden by your god, those
get half the weight for acquirement.

--------------------------------------------------------------------------------
df38e3068a | Adam Borowski | 2011-03-24 21:26:47 +0100

Manual acquirement: mark more gods as not using Invocations (half the weight).

--------------------------------------------------------------------------------
8cf1acf2f0 | Robert Burnham | 2011-03-24 15:13:42 -0500

Cleanup unnecessary wrapper methods
Removes chaos_affect_actor which just wraps the
melee_attack::chaos_affect_actor class method of melee_class (which is static)

--------------------------------------------------------------------------------
7f9d474e6b | Adam Borowski | 2011-03-24 20:56:54 +0100

Make poison clouds all lightgreen.
The old scheme (green/green/lightgreen) clashes with mephitic (green), and
characters who know Poisonous Cloud almost always have Meph too.

--------------------------------------------------------------------------------
da8ded80a5 | Chris Campbell | 2011-03-24 18:56:53 +0000

Fix message for Ash skill boost

--------------------------------------------------------------------------------
9dae1817f9 | Vsevolod Kozlov | 2011-03-24 21:55:25 +0300

Add a new ossuary.
It might be too brutal and unbalanced, and that is why I didn't make it very
rare: It needs some testing.

Comments and suggestions welcome.  Lua code needs review by somebody who knows
how to write it properly, too.

--------------------------------------------------------------------------------
3239e6458b | Vsevolod Kozlov | 2011-03-24 21:55:25 +0300

Remove unnecessary DEPTHs from some branch entry vaults.

--------------------------------------------------------------------------------
13ab768266 | Robert Burnham | 2011-03-24 12:57:03 -0500

Remove unnecessary #includes from fight.cc
Removed #include linkage that was unnecessary for compilation.

--------------------------------------------------------------------------------
94a54098fe | Raphael Langella | 2011-03-24 18:24:48 +0100

Ashenzari: scale passive mapping density with piety.

--------------------------------------------------------------------------------
6854920e05 | Raphael Langella | 2011-03-24 18:24:48 +0100

Meld cursed weapons on transform.
I considered melding any weapon, but having a weapon of holy wrath meld in your
lich's body seems wrong. And since they cannot be cursed, you can't abuse the
spell to remove cursed weapon anyway.

--------------------------------------------------------------------------------
bdb70b7b5e | Raphael Langella | 2011-03-24 18:24:48 +0100

New Ashenzari passive skill boost.
For each bounded part, one corresponding skill is boosted by piety_rank - 2.
Skills are still capped at 27.

Bound Hands:
  If wielding a weapon, boost the corresponding weapon skill.
  If wielding a staff or a rod, boost evocations, except for staves of power,
    conjuration, enchantment, energy and wizardry. Those ones don't use evoc,
    so we boost spellcasting instead (doesn't count for MP and spell slots).

Bound Armour:
  Boost armour or dodging, whichever is higher.

Bound jewellery:
  Boost highest spell school skill.

Skill level comparison breaks tie by choosing the first skill to reach the
level. It's the same rule as for selecting the character's title.

--------------------------------------------------------------------------------
7832d4d99c | Raphael Langella | 2011-03-24 18:24:48 +0100

Add a function to compare skill levels.
It breaks ties by using skill_order.

--------------------------------------------------------------------------------
b111cea2eb | Adam Borowski | 2011-03-24 16:08:29 +0100

Make kitty xp aptitude more godly -- ie, less lives.

--------------------------------------------------------------------------------
f37324e74f | Adam Borowski | 2011-03-24 16:08:25 +0100

Another FeBe nerf.

--------------------------------------------------------------------------------
76882184f8 | Robert Burnham | 2011-03-24 09:08:26 -0500

Relocate melee_attack class to own cc file
Completes the move of the majority of the melee_attack class method definitions
from fight.cc to melee_attack.cc (the amount of content that was moved out of
fight.cc resulted in git flagging fight.cc as being renamed to melee_attack.cc
and fight.cc being recreated [with much less content]). This commit also
allows the new attack class (with melee_class inheriting from it) to compile,
it does not appear that much functionality has changed with this massive
restructuring of the code.

--------------------------------------------------------------------------------
b5f1625a5e | Raphael Langella | 2011-03-24 14:00:32 +0100

Remove debug informations from non-debug builds.

--------------------------------------------------------------------------------
7861bd20fa | Johanna Ploog | 2011-03-24 13:05:55 +0100

Fix #3643: Kraken simulacra causing crashes in Tiles.

--------------------------------------------------------------------------------
b29fac9605 | Raphael Langella | 2011-03-24 12:25:08 +0100

Don't spent turn/MP when aborting the berserk spell.
Fix #3650.

--------------------------------------------------------------------------------
50abf5739d | Raphael Langella | 2011-03-24 12:25:08 +0100

Ashenzari: add flavour messages for the new passive boost to low skills.

--------------------------------------------------------------------------------
96e0e3f36a | Adam Borowski | 2011-03-24 12:14:47 +0100

A quick hack to disable hunger in ZotDef for non-Vp.
This solves problems with spriggans being flat-out unable to play, and
everyone else unlucky to get a few non-living waves in a row starving
with no recourse.

You can still eat -- needed by ghouls.  Mutagenic chunks can be eaten
only by carni/saprovores or via Fulsome, this is one of problems left.
Messages and spell description about hunger are another.

Does anyone have a better idea before we go to fix such loose ends?

--------------------------------------------------------------------------------
854ddbee73 | Adam Borowski | 2011-03-24 11:35:49 +0100

Correct the colour of slime walls.

--------------------------------------------------------------------------------
10ceba3cda | Adam Borowski | 2011-03-24 10:53:30 +0100

Don't let chuck catch a cold by wading in water.
(He shouldn't be able to leave that place, just chuck rocks.)

--------------------------------------------------------------------------------
b13ecea585 | Adam Borowski | 2011-03-24 04:52:17 +0100

Mark rings of levitation useless when appropriate.

--------------------------------------------------------------------------------
dfc6caed62 | Raphael Langella | 2011-03-23 23:34:42 +0100

Clear clinging status when taking stairs.

--------------------------------------------------------------------------------
bf24d0e877 | Raphael Langella | 2011-03-23 23:34:42 +0100

Simplify low spell success adjectives.
Merge Cruddy (5-10%), Bad (10-20%) and Very Poor (20-30%) into Bad.

--------------------------------------------------------------------------------
c3a220bbb7 | Raphael Langella | 2011-03-23 23:34:42 +0100

Change the explore_stop option to use greedy_pickup_smart by default.
Options that default to smart behaviour is always good.

--------------------------------------------------------------------------------
265e60d3b7 | Raphael Langella | 2011-03-23 23:34:42 +0100

Ashenzari piety adjustment.
The previous nerf was probably a bit too harsh.
Piety gain changed from x1, x1, x2, x3 to x1, x2, x3, x4
(was x1, x2, x4, x6).
Reskilling cost changed from 30 to 25 (was 10).

--------------------------------------------------------------------------------
f6c6488df2 | Chris Campbell | 2011-03-23 18:31:54 +0000

Actually remove nutrition from hits with vampiric weapons
It was partially removed in 29b21b34dc but nutrition was still given if
the hit killed the monster.

--------------------------------------------------------------------------------
af1f8eb2ba | Raphael Langella | 2011-03-23 19:22:07 +0100

No "come into view" messages for summons.

--------------------------------------------------------------------------------
7452799d63 | Raphael Langella | 2011-03-23 19:22:07 +0100

Stop autoexplore when sensing a monster nearby.
Works with antennae (stop at all monsters) and ash (stop for tough and nasty).

--------------------------------------------------------------------------------
4737f6734f | Raphael Langella | 2011-03-23 19:22:07 +0100

Ashenzari's boost to low skills: don't boost level 0 skills.

--------------------------------------------------------------------------------
9a8bf46b4e | Vsevolod Kozlov | 2011-03-23 19:48:31 +0300

Add ORIENT: float to lemuel_bear_cage.
Could also move it into a file with minivaults, but it doesn't look like a
minivault to me.

--------------------------------------------------------------------------------
c96f79c7bf | Vsevolod Kozlov | 2011-03-23 19:47:18 +0300

Add ORIENT: float to lordsloth_entry_two_stooges.
It doesn't affect much, since entries are special-cased, but let's keep things
consistent.

--------------------------------------------------------------------------------
3b55d77997 | Vsevolod Kozlov | 2011-03-23 18:08:19 +0300

Use vault_place_iterator to simplify _labyrinth_level a bit.

--------------------------------------------------------------------------------
0f220049be | Vsevolod Kozlov | 2011-03-23 16:41:36 +0300

Factor out the common stuff in Pan lord vault epilogues into a function.

--------------------------------------------------------------------------------
1e6b6b66fa | David Lawrence Ramsey | 2011-03-22 20:59:22 -0500

Fix compilation.

--------------------------------------------------------------------------------
a00a37e50f | Raphael Langella | 2011-03-23 00:38:32 +0100

Fix trying to climb when overloaded taking a turn.

--------------------------------------------------------------------------------
df766ea6fb | Raphael Langella | 2011-03-23 00:26:42 +0100

Skill menu: bring back the show skill points option in wizmode.
I disabled it be mistake.

--------------------------------------------------------------------------------
f22500ba4d | Raphael Langella | 2011-03-22 23:36:42 +0100

Fix new Ashenzari passive boost to low skills.

--------------------------------------------------------------------------------
fd8095a8ce | Raphael Langella | 2011-03-22 22:54:25 +0100

Rename the show_real_turns option to show_game_turns.
We can use game turns and player turns as a nomenclature.

--------------------------------------------------------------------------------
90c9b69137 | Raphael Langella | 2011-03-22 21:25:18 +0100

Make scrying fail proof.
Since it's instantaneous, we don't want it to fail and take a turn.

--------------------------------------------------------------------------------
8738ed18ae | Raphael Langella | 2011-03-22 21:17:01 +0100

Fix instantaneous abilities not being handled properly with show_real_turns.

--------------------------------------------------------------------------------
d54c3caf39 | Raphael Langella | 2011-03-22 20:31:51 +0100

Make scrying instantaneous.

--------------------------------------------------------------------------------
7592b126cf | Raphael Langella | 2011-03-22 20:22:57 +0100

Forbid reskilling into fighting.
For now, fighting = HP. It's completely unthematic for the god of knowledge
to make the character more buff. If fighting is changed to have a more
general effect on fighting and less effect on HP, this will be reverted.

--------------------------------------------------------------------------------
1b78dd536d | Robert Burnham | 2011-03-22 13:14:50 -0500

Add attack to makelist, compile fixes
Begin to implement the base class: attack for inhereting by other attack
classes sometime in the future.

--------------------------------------------------------------------------------
92818512f9 | Raphael Langella | 2011-03-22 19:00:40 +0100

Add a normal/enhanced toggle to the skill menu.

--------------------------------------------------------------------------------
248b1231d7 | Raphael Langella | 2011-03-22 19:00:40 +0100

Fix autoexplore stopping with no monster in sight.
See #3609.

--------------------------------------------------------------------------------
a49dc2bece | Adam Borowski | 2011-03-22 13:46:30 +0100

Die in a less obscure way when dungeon generation is broken.

--------------------------------------------------------------------------------
70a3b8c2bd | Raphael Langella | 2011-03-22 13:45:07 +0100

Fix the background menu locking itself when selecting banned choices.
Mantis #3629.

--------------------------------------------------------------------------------
b81e611ad9 | Adam Borowski | 2011-03-22 13:11:06 +0100

Name a function more sanely.

--------------------------------------------------------------------------------
2c3dee098d | William Parker | 2011-03-22 12:39:49 +0100

Fix incredibly stupid crash bug.

--------------------------------------------------------------------------------
b09c619731 | William Parker | 2011-03-22 12:39:48 +0100

Fix compile.

--------------------------------------------------------------------------------
68a497cee3 | William Parker | 2011-03-22 12:39:48 +0100

Malign Gateway as a miscast effect; make failed banishment attempts from 
miscasts degrade into Malign Gateways.
Currently the degradation is silent and most of the code for Malign
Gateway creation is duplicated from cast_malign_gateway; it may be
desirable to change this.

--------------------------------------------------------------------------------
065c8a6652 | William Parker | 2011-03-22 12:39:48 +0100

No banishment from hell effects.

--------------------------------------------------------------------------------
447b19a5d1 | William Parker | 2011-03-22 12:39:48 +0100

Differentiate hell effect miscasts from miscellaneous miscasts

--------------------------------------------------------------------------------
f4d2e18917 | Adam Borowski | 2011-03-22 10:00:35 +0100

Add IOOD to the book of Power.
If you have Annihilations, you have better choices.

--------------------------------------------------------------------------------
d2e19bfe5a | Vsevolod Kozlov | 2011-03-22 10:38:01 +0300

Put the abyss gateways back into _plan_6.
This just restores historical behaviour that I've removed not so long ago.

--------------------------------------------------------------------------------
29ce26d1fe | Vsevolod Kozlov | 2011-03-22 10:20:31 +0300

Use CHANCE with depth ranges to shorten dummy vault specifications.

--------------------------------------------------------------------------------
d35ab41f5e | Adam Borowski | 2011-03-22 05:21:38 +0100

Remove the satiation requirements from evokable invis.

--------------------------------------------------------------------------------
1079d134e0 | Adam Borowski | 2011-03-22 03:20:49 +0100

Whitespace and alignment fixes.

--------------------------------------------------------------------------------
206b326da8 | Adam Borowski | 2011-03-22 03:06:00 +0100

Disable Tukima's Ball as a player spell.
We might revisit it, but let's not release dubious spells for 0.8.

--------------------------------------------------------------------------------
9878742b95 | Adam Borowski | 2011-03-22 02:31:35 +0100

ZotDef: no Abyss with Lugonu.

--------------------------------------------------------------------------------
350b47dd68 | Adam Borowski | 2011-03-22 01:54:46 +0100

Temporarily halve the speed brand nerf.
Since there are voices of doubt, let's not risk large changes just before
the release.  On the other hand, I don't buy into the argument that having it
rare might balance it.

--------------------------------------------------------------------------------
71a0489bda | David Ploog | 2011-03-22 00:32:41 +0100

Add two new Spider portal vault maps by 7hm (#3555).

--------------------------------------------------------------------------------
6fc4cd90c7 | Raphael Langella | 2011-03-21 22:52:17 +0100

Halves Ashenzari piety gain.

--------------------------------------------------------------------------------
f32d692534 | Raphael Langella | 2011-03-21 22:46:44 +0100

Nerf Ashenzari transfer knowledge.
Double XP penalty (20%).
Triple piety cost.

--------------------------------------------------------------------------------
8cad4c3686 | Raphael Langella | 2011-03-21 22:45:05 +0100

Remove Ashenzari XP bonus.

--------------------------------------------------------------------------------
86f7879f24 | Raphael Langella | 2011-03-21 22:34:21 +0100

New ash passive ability: boost low skills when not wearing uncursed items.
When you're not wearing any uncursed item, all your skills are raised to
your current piety rank. This is not an additive bonus. If a skill has been
trained to level 3 and your piety rank is 6, then the skill is raised to 6,
not 9.
It still lacks documentation and proper messages when status is gained/lost.

--------------------------------------------------------------------------------
36dc4a416c | Robert Burnham | 2011-03-21 16:11:18 -0500

Additional development of attack.cc, reording of class functions in attack.h
Implements more of non-overloaded class functions of attack.cc and sets up
attack::init_attack to do basic initialization before the derived class calls
its init_attack.

--------------------------------------------------------------------------------
095afaccfe | Raphael Langella | 2011-03-21 22:07:04 +0100

Ashenzari also warns about monsters' wands.
Chance is the same as for other items: boundedness / 3.
It has some (good) side effects. Now, if the player sees a monster pick or use
a wand, then it will be shown in xv and ctrl+x modes. It will respect the
player 's knowledge of the specific wand.

I also added a props.h file to document specific props keys. Not sure if
doxygen has taken it into account or if the syntax is correct, but I felt
we needed a place to document them. Documenting directly in actor.h would
have lead to a lot of recompiling on each documentation update.

--------------------------------------------------------------------------------
20107310e5 | Robert Burnham | 2011-03-21 15:01:17 -0500

Add attack class framework
In an attempt to more generalize the properties and mechanics behind combat,
attack class serves as an inheritble class which sets up both overloaded
methods and default methods which may serve as universal methods for all child
classes.

The attack class is modeled after melee_attack to reduce the amount of new
code that has to be written, but will be continually refined as the rewrite of
fight moves towards completion. The structure of the attack class (and of the
new fight.cc) is limited by my knowledge; as it grows, so too will the strength
of the new implementation.

--------------------------------------------------------------------------------
289229c3ac | Chris Campbell | 2011-03-21 18:58:03 +0000

Don't allow cancelling out of chain lightning with ally prompts
I did this the easy way by just removing the ally prompt - it might be
good to add prompts for this and the various other spells that affect
the whole screen (Ignite Poison, Ozocubu's Refrigeration, etc) if you
have friendlies nearby, though.

--------------------------------------------------------------------------------
a6aecdefb4 | David Lawrence Ramsey | 2011-03-21 13:28:48 -0500

Tweak wording and punctuation.

--------------------------------------------------------------------------------
b4b87243ef | Adam Borowski | 2011-03-21 17:59:09 +0100

Fix placeholders in Xom's book gift names.
It might be better to process these in other messages, but I'm currently
afraid of possibly tainted strings (weird player names, etc) so for now
I tried to go the safest but least general way.

--------------------------------------------------------------------------------
3e5ff7a7dd | Chris Campbell | 2011-03-21 14:41:53 +0000

Don't let Yred gift Eidolons anymore
Now they have cause fear they're an annoying ally.

--------------------------------------------------------------------------------
7c140cb419 | Adam Borowski | 2011-03-21 15:01:53 +0100

A wizmode command (& ^R) to recreate the current level.

--------------------------------------------------------------------------------
37c64b2702 | Adam Borowski | 2011-03-21 15:01:53 +0100

Make console Zot rock consistent with tiles (and not stony).

--------------------------------------------------------------------------------
12f39ce99f | Adam Borowski | 2011-03-21 15:01:53 +0100

Don't block off branches with grates.
Also, this trap can be allowed in more places since it's hardly deadly at all.

--------------------------------------------------------------------------------
320bc3138a | Adam Borowski | 2011-03-21 15:01:52 +0100

Let vaults in Zot spawn more often.
The "dummy_balancer_other" was eating almost all of chances, even on top
of the already minimal 1/9 chance left by the main dummy.

I did not include Zot:5 since none of Zot vaults are eligible there except
for lemuel_zot_upstairs which is no fun if expected.

By the way, what's the point of the second layer of dummies anyway?

--------------------------------------------------------------------------------
0ba5a2a4ac | Adam Borowski | 2011-03-21 15:01:52 +0100

Don't try to place lemuel_elevator on first and last level of a branch.

--------------------------------------------------------------------------------
f7c4fac53a | Adam Borowski | 2011-03-21 15:01:52 +0100

Remove some commented out junk.

--------------------------------------------------------------------------------
5cc9a1fdff | Adam Borowski | 2011-03-21 15:01:52 +0100

Forbid rock from masquerading as stone/metal/slime.
With default config using the same glyph for all of these in all charsets,
they should never use colours that mean something else.

For most branches affected, it applies merely to the Tomb card and perhaps
some rare vaults.  It matters mostly for:
* Temple: some layouts use rock
* Vestibule: the border is diggable rock

To do:
* Elf: altering the pattern might be contentious -> 0.9, let's discuss

--------------------------------------------------------------------------------
3f8890cf5d | Adam Borowski | 2011-03-21 15:01:52 +0100

Give deep parts of the main dungeon better chances for a primary vault.
You'll get around four in the D:20-27 range, the old chance was below one.

--------------------------------------------------------------------------------
b39dc91a6b | Chris Campbell | 2011-03-21 13:25:53 +0000

Warn when equipping armour with a penalty caused by low strength

--------------------------------------------------------------------------------
f055b79cca | Chris Campbell | 2011-03-21 13:25:52 +0000

Remove misleading messages about weapon str/dex weighting
Currently str/dex weighting has very little effect - these messages
could be reinstated if the str/dex interaction with melee combat is
reworked at some point, though.

--------------------------------------------------------------------------------
07b2554d9e | Chris Campbell | 2011-03-21 13:25:51 +0000

Improve random pan lords
The 1/10 random pan lords which get no spells are now guaranteed to have
a melee brand and are likely to be faster than usual.

Tweaked the list of possible pan lord melee brands (don't special-case
orc/dragon slaying to be possible only if you're an orc or draconian,
disallow some other inappropriate brands).

Don't allow random pan lords to cast Tukima's Ball - they're not likely
to be able to make any use of it and it'd be possible to tediously
gather or destroy all weapons in the dungeon for extra safety on the
orb run.

--------------------------------------------------------------------------------
035ddf802c | Darshan Shaligram | 2011-03-21 16:42:00 +0530

Fix crawl.process_keys() refusing to run when called from DELAY_MACRO (ekiM).

--------------------------------------------------------------------------------
bc9b51bd2c | Vsevolod Kozlov | 2011-03-21 13:07:00 +0300

icecave.des: Fix calls to you.branch and you.subdepth.

--------------------------------------------------------------------------------
9c25319866 | Vsevolod Kozlov | 2011-03-21 11:00:15 +0300

Make the call to spotty_map guaranteed in layout_misc.
Its results are very dull without that call, and quite good with it.

--------------------------------------------------------------------------------
cdf0e577f2 | David Lawrence Ramsey | 2011-03-20 20:11:09 -0500

Typo fix.

--------------------------------------------------------------------------------
c57a0fd112 | Raphael Langella | 2011-03-21 02:03:00 +0100

Typo.

--------------------------------------------------------------------------------
556a35e9cd | Raphael Langella | 2011-03-21 02:03:00 +0100

Remove the helpless fake enchantment and use props instead.
Simpler, makes more sense and a good way to test the new monster_info props.

--------------------------------------------------------------------------------
f5904b9546 | Raphael Langella | 2011-03-21 02:03:00 +0100

Add a props hash table to monster_info.

--------------------------------------------------------------------------------
5c09e54c88 | Adam Borowski | 2011-03-21 00:45:07 +0100

Fix compilation on 64 bit.

--------------------------------------------------------------------------------
0972c6cb91 | Johanna Ploog | 2011-03-20 23:28:12 +0100

Fix #1184: Limit tagged block display's lines to screen size.
Puts a stop-gap measure to the frequent assertions for Elyvilonists.
The text still needs shortening, as it's simply cut off when the last
line is reached (which is then overwritten with the ! toggle
explanation, anyway).

--------------------------------------------------------------------------------
c629943d8d | Johanna Ploog | 2011-03-20 20:46:09 +0100

Fix #3535: Buggy movement keys for Windows consoles.

--------------------------------------------------------------------------------
70713b3f46 | Adam Borowski | 2011-03-20 15:13:56 +0100

Disrecommend the Fire/Earth book for Kenku.  +3/-1 apts vs -3/+1.

--------------------------------------------------------------------------------
131662dc39 | Adam Borowski | 2011-03-20 12:47:13 +0100

Make Boris prefer to use Morg.
He doesn't currently pick up items so this is dormant code, but in case
it changes...

--------------------------------------------------------------------------------
d6030e09ca | Adam Borowski | 2011-03-20 12:18:06 +0100

Nerf the speed brand.
The plan was to give it x1.5 speed rather than x2, akin to the Haste nerf,
however dpeg complained that the brand is "boring", too much akin to vorpal.
Those of us who disagreed said the brand has a distinct feel -- visible
flurry of weaker blows.

Thus, I reduced the damage instead.  The reduction is after slaying and
enchantment bonuses, since large slaying would still mostly negate this nerf.

Because of how AC work, I left 80% rather than 75% damage, preferring to err
on the side of nerfing too little rather than too much.

Another issue is monster combat working totally inconsistent from player:
it doesn't affect low-delay weapons at all and even for spiked clubs the brand
was worse than, say, flaming.  I applied the nerf like for players, so right
now monsters with speed brand are often weaker than with no brand at all.
Cryptic's rewrite may solve these issues in the future.

--------------------------------------------------------------------------------
9aa65a6860 | Adam Borowski | 2011-03-20 11:35:15 +0100

Disable a tile.
For some reason it doesn't seem to obey %weight, and with an equal proportion,
stands out too much.

--------------------------------------------------------------------------------
b05b354ce0 | Adam Borowski | 2011-03-20 11:19:59 +0100

Give tiles to a couple altar vaults.
It's silly that they stand out in console but use rock in tiles.

--------------------------------------------------------------------------------
cf169645fa | Adam Borowski | 2011-03-20 10:50:59 +0100

Add a note when entering a Pan Lord level (RangerC)

--------------------------------------------------------------------------------
541bd51fa7 | Adam Borowski | 2011-03-20 10:44:10 +0100

No instant divine retribution -- many gods are abusable.
Some gods are farmeable -- Beogh, Yred, Fedhas, Jiyva.  The risk/benefit
ratio is terrible but some people still do that.

Ditching Vehumet or Makhleb is a popular "Hail Mary" act if you're about
to die -- there's a good chance of abyssing.  For Lugonu, that's even
guaranteed -- less important because of the ability, but sometimes better
(no fail, no MP, no HP).

The rest is for consistency.

--------------------------------------------------------------------------------
1b755426b4 | Raphael Langella | 2011-03-20 07:51:28 +0100

Properly fix compilation.
This restores the previous behaviour.

--------------------------------------------------------------------------------
2fcbc8d1a1 | David Lawrence Ramsey | 2011-03-20 00:09:55 -0500

Fix compilation.

--------------------------------------------------------------------------------
0c9c6ae096 | Raphael Langella | 2011-03-20 01:48:37 +0100

New Ashenzari passive ability: identify monster equipment.
When new monsters come into view, Ashenzari has a chance to warn you if the
monster's equipment is branded. The chance is boundedness/3 (guaranteed when
fully bounded) for each piece of equipment.
Doesn't identify wands yet.

--------------------------------------------------------------------------------
e69d535a70 | Adam Borowski | 2011-03-19 12:55:51 +0100

An off-by-one error.

--------------------------------------------------------------------------------
5a5c3ad46b | Adam Borowski | 2011-03-19 12:54:00 +0100

Octopodes: id one of eight rings the same as one of two for other races.

--------------------------------------------------------------------------------
d2c19b7d86 | Adam Borowski | 2011-03-19 12:52:05 +0100

Merge branch 'master' into octopus

--------------------------------------------------------------------------------
57c2e1d9c5 | Adam Borowski | 2011-03-19 12:49:51 +0100

Identify rings of sust abil if they block stat loss completely.

--------------------------------------------------------------------------------
fbdad0bb0c | Adam Borowski | 2011-03-19 11:54:10 +0100

Clarify an Ashenzari's power desc (ekiM)

--------------------------------------------------------------------------------
c46c504e67 | Raphael Langella | 2011-03-19 10:47:20 +0100

Fix multidrop with monsters in sight.
Bug #3618, introduced by 3620f568.

--------------------------------------------------------------------------------
7a32b22d04 | Jude Brown | 2011-03-19 12:32:47 +1000

Do some checking before placing resurrected shedu.
This should prevent them being placed on top of other monsters or inside
of walls; it might result in situations where shedu cannot be
resurrected, but I think that's certainly better than badly placed
monsters.

--------------------------------------------------------------------------------
fac864a205 | Jude Brown | 2011-03-19 12:26:00 +1000

New conduct: did violate holy corpse.
It's similar to the desecration of orcish remains, but it only affects
players who are worshippers of good gods who begin butchering one of the
corpses left by a holy monster.

There's also code to check for animation of holy corpses. I've yet to
decide if it should be possible to re-animate holy monsters as undead,
but there's no point not including those checks.

The conduct is triggered whenever you butcher a holy animal, or whenever
you eat chunks of a holy animal. Butchering prompts you before hand,
thoguh eating does not -- however, this is the same with Beogh, where
you are not prompted before eating cannibalistic chunks.

This could be improved somehow.

--------------------------------------------------------------------------------
32bb628455 | Jude Brown | 2011-03-19 12:25:59 +1000

Convert shedu's main attack to kick instead of claw.
As kilobyte points out, these are primarily bulls, not lions, and
therefore wouldn't have claws of any description with which to claw
people!

--------------------------------------------------------------------------------
466e9f8248 | Jude Brown | 2011-03-19 12:25:59 +1000

Temporary tile for holy flames.
This is just a recoloured grey smoke tile, which is now yellow to match
the similar colour in ASCII. It doesn't look anything like flames,
though -- but I don't think actually using flames would be a good idea.

--------------------------------------------------------------------------------
3999269f4c | Jude Brown | 2011-03-19 12:25:59 +1000

Resolve pearl dragon breath tile colour issue.
It would appear that the issue here is that there's, obviously, no tile
for the ETC_HOLY colour. Instead, manually force it to use a yellow
coloured tile instead, as this is what we use in console.

--------------------------------------------------------------------------------
4f23edce71 | Jude Brown | 2011-03-19 12:25:59 +1000

Move phoenixes from 'H' to 'b'.
They're birds, and can go on 'b' with ravens.

--------------------------------------------------------------------------------
12616ee2fa | Jude Brown | 2011-03-19 12:25:58 +1000

Arbitrarily standardise new holy monster speeds.
Pearl dragon: 13 -> 12
Shedu: 19 -> 12
Phoenix: 19 -> 10
Blessed toe: 11 -> 10

--------------------------------------------------------------------------------
0fe3a6d92e | Adam Borowski | 2011-03-19 01:41:25 +0100

Assert when trying to blame negative damage.

--------------------------------------------------------------------------------
f39ece5c68 | Adam Borowski | 2011-03-19 01:31:08 +0100

Add coolio's unique executioner tile to UNUSED.
These image hosting places tend to be short-lived, let's not risk this nice
tile turning 404-compliant.  It doesn't match the "executioner" demons we
currently have, though.

--------------------------------------------------------------------------------
9a952ef81f | Jude Brown | 2011-03-19 10:01:13 +1000

Maybe resolve #3411: speech in portal vaults from branches.
This tries again to fetch a speech string from the database if the first
attempt fails -- this time using no prefixes instead of the provided
list of prefixes. I can't think of any situations where a monster
defines a speech-key property (or function) and would ever require the
relevant prefixes.

There's no reason not to try them to start with, however.

--------------------------------------------------------------------------------
c04c84ed55 | Jude Brown | 2011-03-19 09:28:36 +1000

Make Ophan of high intelligence (kilobyte)
It makes no sense for a high-tier angelic being to have the same level
of intelligence as a plant. High is perhaps a bit *too* high, but I
think that holies being mostly intelligent and entirely flying is a good
theme.

--------------------------------------------------------------------------------
bf6460996d | Raphael Langella | 2011-03-18 21:13:49 +0100

Remove experience pool colouring.
Useless since there's no cap anymore.

--------------------------------------------------------------------------------
e5f59d3927 | Raphael Langella | 2011-03-18 21:13:49 +0100

Hopefully fix "too close" message when autoexploring.
This should fix mantis #3609, although as I can't reproduce the bug reliably,
I can't be sure.

--------------------------------------------------------------------------------
1f68d24c8f | Chris Campbell | 2011-03-18 18:45:17 +0000

Don't pick up a butchering tool as a Kenku

--------------------------------------------------------------------------------
65e03ca86a | Robert Burnham | 2011-03-18 11:29:07 -0500

Implement basic layout for attack phases

--------------------------------------------------------------------------------
bedf507efd | Johanna Ploog | 2011-03-18 16:45:42 +0100

Encase some Tiles-only methods in #ifdefs.

--------------------------------------------------------------------------------
3631a5a77d | David Ploog | 2011-03-18 15:31:59 +0100

Better fix for circular labyrinth entry vault.

--------------------------------------------------------------------------------
3620f56883 | Raphael Langella | 2011-03-18 15:27:32 +0100

Fix butchering not interrupted when a monster comes into view.

--------------------------------------------------------------------------------
1df96b0abe | David Lawrence Ramsey | 2011-03-18 09:21:55 -0500

Comment fix.

--------------------------------------------------------------------------------
7bb413f573 | Raphael Langella | 2011-03-18 13:50:03 +0100

Remove experience pool limit.

--------------------------------------------------------------------------------
c440abad0d | Raphael Langella | 2011-03-18 13:50:03 +0100

Don't start the game if terminal is smaller than 80x24.
I don't really understand the point of lay_inline.valid and
crawl_state.need_save, so I've left them as a safety.

--------------------------------------------------------------------------------
cdd4c9d5b6 | elliptic | 2011-03-18 17:50:55 +0530

Make troves handle manuals correctly.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
94b2785163 | Adam Borowski | 2011-03-18 02:01:07 +0100

Disable the hallowed halls vault.
We got enough feedback, and unlike spriggans, new holies can't appear
anywhere but ZotDef.  I'll leave the forest for a while longer, because of
sprints, especially the Fedhas one.

--------------------------------------------------------------------------------
dbae2a0550 | Adam Borowski | 2011-03-18 02:01:07 +0100

Make all sources of berserk consistent wrt hunger, remove insta-kills.
The following used to ignore hunger:
* spell
* potion
* anger
The following blocked berserk at "Hungry":
* Trog
* evocations

All are blocked at "Very Hungry" now.  Berserk automatically stops when you
hit "Starving", this means you might not get the full duration if you were
near the limit at the start.

This removes a number of annoying or silly cases, but also has a downside of
buffing berserkers a bit.

--------------------------------------------------------------------------------
43ae3613e2 | Adam Borowski | 2011-03-18 02:01:07 +0100

Denzi's tiles for due's abyssal monsters.

--------------------------------------------------------------------------------
de39ce0a7c | David Ploog | 2011-03-18 00:49:27 +0100

Make sure that an entry vault does not create a bubble (#3601)

--------------------------------------------------------------------------------
56a90c0cbe | David Ploog | 2011-03-18 00:49:27 +0100

Guarantee two shops in bazaar (#3607)

--------------------------------------------------------------------------------
6c0c7e931b | David Ploog | 2011-03-18 00:49:27 +0100

Give troves more loot items again.
This partially reverts 0b362e7f84821c390e845b10d1540493aa242928.

--------------------------------------------------------------------------------
6889d690ca | Johanna Ploog | 2011-03-18 00:21:31 +0100

Fix #3344: Don't crash if you.transfer_to_skill somehow is SK_NONE.
This can happen if you close the game window at the target skill
prompt. Instead of asserting, quietly reset transfer_from_skill
and the transfer_skill_points variables.

--------------------------------------------------------------------------------
663a8d5b41 | Shayne Halvorson | 2011-03-17 23:27:08 +0100

Obsidian axe bug fixes
* Cannot berserk when mesmerised.
* Can be mesmerised by monsters across deep water / lava.
    The obsidian axe now has evocable levitation so the player can get over
    the lava and kill everything which I think fits the theme better than
    preventing mesmerisation if the player can't reach the monster.

--------------------------------------------------------------------------------
0f5629f400 | Adam Borowski | 2011-03-17 23:25:33 +0100

Let kenku use beak+talons for butchering, like birds they are.

--------------------------------------------------------------------------------
4df2b47ea0 | Raphael Langella | 2011-03-17 22:20:28 +0100

Allow Ijyb to get high-tier wands in normal game.
I special cased him so that he doesn't get HT wands in sprint, but it was
useless (he's HD 3). So now, he's special cased to have one, except in
sprint.

--------------------------------------------------------------------------------
4c9c8ddd97 | Raphael Langella | 2011-03-17 22:20:28 +0100

Background selection menu: add some spacing between the columns.
The removal of Arcane Marksmen leaves a lot of empty space. Revert this
commit when AM comes back.

--------------------------------------------------------------------------------
b99868b5eb | Raphael Langella | 2011-03-17 22:20:27 +0100

Background selection menu: rename battlemage as warrior-mage.

--------------------------------------------------------------------------------
4ae976c00b | Johanna Ploog | 2011-03-17 19:54:25 +0100

Add Eronarn to the credits, remove duplicate name.

--------------------------------------------------------------------------------
9ee393a9a8 | Vsevolod Kozlov | 2011-03-17 21:34:36 +0300

Move lemuel_firewalk_3 to float.des from mini_features.des, as it has ORIENT: 
float.

--------------------------------------------------------------------------------
2fb7005031 | Vsevolod Kozlov | 2011-03-17 21:34:35 +0300

Move statue_cache to large.des from float.des, as it has ORIENT: north.

--------------------------------------------------------------------------------
534f285a91 | Vsevolod Kozlov | 2011-03-17 21:34:35 +0300

Don't return bool from plan_4, as nothing uses its return value.

--------------------------------------------------------------------------------
03f6625beb | Johanna Ploog | 2011-03-17 19:30:13 +0100

Remove an outdated comment.

--------------------------------------------------------------------------------
2cae6124ba | Robert Burnham | 2011-03-17 12:41:24 -0500

Remove unnecessary casts
Spiny code was casting actors to monsters unnecessarily.

--------------------------------------------------------------------------------
7bbce220ad | elliptic | 2011-03-17 18:28:16 +0100

Modified trove descriptions.

--------------------------------------------------------------------------------
c0dc4f46d8 | Chris Campbell | 2011-03-17 14:34:36 +0000

Save weapon selection for quarterstaves with new games

--------------------------------------------------------------------------------
c85c110efe | Chris Campbell | 2011-03-17 14:34:35 +0000

Boost Mnoleg's HP a bit

--------------------------------------------------------------------------------
33caaf30b7 | Chris Campbell | 2011-03-17 14:34:34 +0000

Remove rF+ and rC+ from Nergalle

--------------------------------------------------------------------------------
d2d5b991aa | Raphael Langella | 2011-03-17 15:22:27 +0100

Remove omndra's title screens.
While I find them pretty cool, the author is unable to modify them to use
the new title logo because he lost the source files. He also doesn't like
them as much as Denzi's ones (style is quite different indeed).
Put them under unused, so we can bring them back if someone can edit them
with the new title logo.

--------------------------------------------------------------------------------
8e53a985cf | Raphael Langella | 2011-03-17 15:15:32 +0100

Increase the chance of bleeding on walls.
So we can see the new blood splatters. The ones with the blood dripping
down looks a bit weird when drawn on vertical walls or on a wall south from
the origin.

--------------------------------------------------------------------------------
18eb42aa89 | Johanna Ploog | 2011-03-17 14:51:19 +0100

Fix #2927: Don't place fake (db search) player ghosts on the map.

--------------------------------------------------------------------------------
1a63cf34e2 | Johanna Ploog | 2011-03-17 14:51:16 +0100

Add an assertion.
Catch one fixedvector error early.

--------------------------------------------------------------------------------
d14013eccd | Vsevolod Kozlov | 2011-03-17 15:02:05 +0300

Restore old behaviour of random wall material substitution on _plan_* levels.
With the exception for _plan_4, because it is in C++ and works directly on grd.
Also because it does interesting things with wall material on its own.

--------------------------------------------------------------------------------
d0da535417 | Vsevolod Kozlov | 2011-03-17 14:50:11 +0300

Split the "layout" tag into "overwritable" and "layout".
The latter is now only used for picking the vaults.

--------------------------------------------------------------------------------
8d7bc61925 | Adam Borowski | 2011-03-17 10:47:37 +0100

Use sane defaults when prefix starts with /opt

--------------------------------------------------------------------------------
8f58253b61 | Chris Campbell | 2011-03-17 01:16:18 +0000

Ench split: more spell school changes
Invisibility becomes pure Hex.
Silence becomes Charms/Air.
Brand spells go back to being Charms.

This probably causes all kinds of flavour controversy but more
importantly for 0.8 it makes both Crusaders and Enchanters have fitting
spellbooks which don't require lots of victory dancing, and I think it
can be justified thematically.

The ench split still does have remaining issues (lots of casters will
want to pick up charms, only stabbers will want to pick up hexes) -
but hopefully this will be solved by nerfing individual charms where
necessary and adding new hexes that will appeal to more casters
(compare to Tmut, for example - a good magic school that some casters
will specialise in, others will dabble in, and others will ignore
entirely). The current state should be an improvement and acceptable for
0.8 though, hopefully.

--------------------------------------------------------------------------------
13482d21ae | Chris Campbell | 2011-03-17 01:05:23 +0000

Ench split: temporarily disable Arcane Marksmen
Currently they don't fit into either the charms or hexes camp and it was
suggested to just temporarily disable them for 0.8, pending a rework of
their spellbook.

--------------------------------------------------------------------------------
911022f1a0 | Chris Campbell | 2011-03-17 00:51:29 +0000

Don't give Halfling hunters a buckler for free
The buckler does go very well with slings but that doesn't mean they
shouldn't have to find one themselves first! Gl now gets bucklers,
additionally.

--------------------------------------------------------------------------------
7c86c88bf0 | Adam Borowski | 2011-03-17 01:27:18 +0100

Tornado changes for 0.8: pure Air, 80% damage, negative spell enhancer.
We'll revert it in 0.9, using more interesting elaborate ways.

--------------------------------------------------------------------------------
48aafb78fc | Raphael Langella | 2011-03-16 23:12:22 +0100

Monster use pathfinding to go around clouds.

--------------------------------------------------------------------------------
3e8b1d49f2 | Raphael Langella | 2011-03-16 21:10:02 +0100

Don't fire at friendly monsters when clicking on them.
Fix #3596.

--------------------------------------------------------------------------------
253c36b556 | Darshan Shaligram | 2011-03-17 01:26:47 +0530

[2930] Fix stash search results not being coloured correctly when matching item 
heaps.
This alters menu colouring to prefer a menu item's preset colour value over
using menu_colour on the item string.

This is really a bit of a hack: we should probably switch the stash tracker to
use real InvEntrys at some point and remove this shim.

--------------------------------------------------------------------------------
8e83352488 | David Ploog | 2011-03-16 20:14:21 +0100

A few changes to Shiori's sword in stone vault.
Special case if the vault occurs in Elf or Orc, by making sure that
non-unique defenders are native to the branch.

--------------------------------------------------------------------------------
aa4f317c0c | Darshan Shaligram | 2011-03-17 00:08:27 +0530

[3444] Fix off-by-one error in autopickup_no_burden checks.
This increases carrying capacity by 0.1 aum to harmonise checks and because it
makes more sense for carrying_capacity to be up-to-and-including than
one-beyond-max.

--------------------------------------------------------------------------------
dcdbbad248 | Vsevolod Kozlov | 2011-03-16 20:46:25 +0300

Remove redundant calls to fill_area in some layout vaults.
extend_map already fills the map, if I am not mistaken.

--------------------------------------------------------------------------------
8181c35602 | Vsevolod Kozlov | 2011-03-16 20:46:25 +0300

Choose dungeon layouts by picking a vault with tag "layout".
This affects the distribution of the layouts in the game.  The hell has broken
loose.

But the good thing is that one can now change their distribution by simply
adjusting the WEIGHT/DEPTH/CHANCE of the vaults in layout.des.

Areas that now require cleanup include _builder_by_type and the functions that
it calls (_pan_level in particular).

--------------------------------------------------------------------------------
8f521e6de0 | Johanna Ploog | 2011-03-16 17:24:11 +0100

Add Curio to the credits.

--------------------------------------------------------------------------------
e9e05cd528 | Darshan Shaligram | 2011-03-16 18:14:04 +0530

Fix make failing with NO_INLINE_DEPGEN (needed for Mac universal binaries).

--------------------------------------------------------------------------------
9adec8ab3b | Adam Borowski | 2011-03-16 13:01:11 +0100

"feature = explore horizon {xEA,,lightmagenta}" to make exploring Lair easier.
It might be a good idea to put it in a less obtrusive way in the default
config, right now it's not enabled unless you do it by hand.

--------------------------------------------------------------------------------
4b33aec70b | Adam Borowski | 2011-03-16 13:01:11 +0100

Update burden after wizmode species changes.

--------------------------------------------------------------------------------
0f198270be | David Ploog | 2011-03-16 12:02:25 +0100

Update Monk description.

--------------------------------------------------------------------------------
e02b43ad02 | Johanna Ploog | 2011-03-15 22:18:34 +0100

Fix another fixedvector error with Tiles' monster trails.
I forgot to take clouds into account.

--------------------------------------------------------------------------------
09dc47cb51 | Adam Borowski | 2011-03-15 22:13:00 +0100

Fix shedu being placed in bad places.  Always place it close to where the 
corpse was.

--------------------------------------------------------------------------------
1078687ea0 | Adam Borowski | 2011-03-15 21:49:01 +0100

Reset monster spawn lists in before map generation.
They were reset, but only after the next level was loaded.  This worked only
because Ice Caves and Volcano (the only users) always led to an already
existing level.

--------------------------------------------------------------------------------
063c07c378 | Raphael Langella | 2011-03-15 21:45:07 +0100

Fix monsters recklessly walking into dangerous clouds.

--------------------------------------------------------------------------------
dd7bf0bfd7 | Raphael Langella | 2011-03-15 21:45:07 +0100

Fix some issues with the new "come into view" messages.
The AI will try hard to stay in sight after the message has been given.

--------------------------------------------------------------------------------
e1f25efed6 | Johanna Ploog | 2011-03-15 21:37:32 +0100

Fix #3596: "Unknown command" when mouseclick-travelling.

--------------------------------------------------------------------------------
c86ecd53f5 | Adam Borowski | 2011-03-15 21:31:40 +0100

Fix an extremely moronic off-by-one error.

--------------------------------------------------------------------------------
2f29a1260e | Johanna Ploog | 2011-03-15 19:07:23 +0100

Move blood tiles into subdirectory dc-misc/blood.

--------------------------------------------------------------------------------
7807426cf0 | Johanna Ploog | 2011-03-15 19:07:21 +0100

New tiles definition param %back_sdir for background tile directory.
Works the same as %sdir except it only applies to tile combinations'
background tile like the blood puddles beneath corpse tiles.

--------------------------------------------------------------------------------
a507a18cc0 | Johanna Ploog | 2011-03-15 19:07:19 +0100

Add Omndra's wall blood spatter tiles.

--------------------------------------------------------------------------------
8427755438 | Chris Campbell | 2011-03-15 16:24:35 +0000

Reduce the number of corpses from Kiku's invocation

--------------------------------------------------------------------------------
97cf11ab40 | Chris Campbell | 2011-03-15 15:51:58 +0000

Use fake_abjuration for Death Channel spectrals
They're temporary allies, but not summons, and so shouldn't be
abjurable.

--------------------------------------------------------------------------------
2a9a985609 | Adam Borowski | 2011-03-15 16:02:13 +0100

Don't use obsolete ncurses macros, they cause warnings.
The fun thing is, the man pages declare the functions "legacy", while
in reality it's macros who are deprecated and dangerous.  It turned out
that the "legacy" API is thread safe while the "new" macros can't be.

--------------------------------------------------------------------------------
15d6dda1e3 | Adam Borowski | 2011-03-15 15:51:01 +0100

Fix a warning.

--------------------------------------------------------------------------------
7a4775897b | Adam Borowski | 2011-03-15 15:48:09 +0100

Fix a conflict with a zlib define.
It shouldn't use such a generic name, polluting the namespace that belongs
to actual programs, but since we can't fix this in zlib, we need to move
ourselves.

--------------------------------------------------------------------------------
b6f30ed7e7 | Adam Borowski | 2011-03-15 15:43:37 +0100

Fix a compiler warning.
It could never happen, but was still not totally bogus as we had a
redundant comparison.

--------------------------------------------------------------------------------
0654c59ab0 | Adam Borowski | 2011-03-15 15:39:06 +0100

Change messages for pale dracs so they are not just "grey".

--------------------------------------------------------------------------------
e6e7205686 | Adam Borowski | 2011-03-15 15:03:20 +0100

Allow Sticks to Snakes on javelins, disallow on steel/silver stuff.

--------------------------------------------------------------------------------
c5dbac962f | Adam Borowski | 2011-03-15 14:50:37 +0100

Note if a level has its monster set overridden.

--------------------------------------------------------------------------------
77f1198791 | Adam Borowski | 2011-03-15 14:31:09 +0100

Stop quick actions from letting you search faster.
Haste still works as it speeds up mental actions too, but merely moving
swifter or swapping weapons do not.

Poor spriggies...

--------------------------------------------------------------------------------
6bd477c0ff | Adam Borowski | 2011-03-15 13:57:55 +0100

A mockup of the Forest branch so we get some bug testing.
The weight is intentional for now -- and it's WEIGHT: not PLACE: so testers
don't complain when they don't get the "guaranteed" testing vault.  Only
some layouts allow this vault and there's a big CHANCE: against it so not
every game will get it.  And it'll have that weight only for a week or so...

--------------------------------------------------------------------------------
e041113c79 | Adam Borowski | 2011-03-15 06:56:56 +0100

Make random spawns on the Sea of Fire hotter.

--------------------------------------------------------------------------------
23a55770a3 | Adam Borowski | 2011-03-15 06:35:06 +0100

Revert "Make Ring of Flames a negative enhancer for Ice spells."
All fire enhancers are hard-coded elsewhere to hurt ice.

--------------------------------------------------------------------------------
093556644b | Adam Borowski | 2011-03-15 06:24:24 +0100

No potion troves for mummies.

--------------------------------------------------------------------------------
7cf05f60ff | Adam Borowski | 2011-03-15 05:26:26 +0100

Fix pearl dragon corpses in tiles.

--------------------------------------------------------------------------------
a0e274ae7e | Adam Borowski | 2011-03-15 05:26:26 +0100

Make Ring of Flames a negative enhancer for Ice spells.
It does enhance Fire and give rC--, so it seems to be an omission.

--------------------------------------------------------------------------------
0377db9f28 | Johanna Ploog | 2011-03-15 02:36:53 +0100

Fix monster trails for tiles.

--------------------------------------------------------------------------------
3719b75fd3 | Raphael Langella | 2011-03-14 23:46:28 +0100

Better messages for monsters coming into view.
When more than one monster come into view at once, there's a single message
listing the various monster types. If there is more than 4 types, we list
genera (which is the correct plural of genus :). If there's more than 4
genera, we fall back to "x monsters come into view."

Examples:
4 orcs, an orc wizard, a troll and Psyche come into view.
3 dragons and 6 draconians come into view.

This is commit is also a preparation for the futur Ash ability of
identifying monster equipment.

--------------------------------------------------------------------------------
ba0a6d89f3 | Raphael Langella | 2011-03-14 23:46:28 +0100

Print "come into view" messages after player turn.
By calling it before the monsters turn, we can announce all new monsters at
once.

--------------------------------------------------------------------------------
6441ca109f | Raphael Langella | 2011-03-14 23:46:28 +0100

Fix shouting monsters not being announced.

--------------------------------------------------------------------------------
01569a8c78 | Chris Campbell | 2011-03-14 21:53:02 +0000

Correctly mark amulets of controlled flight useless for Kenku above xl5

--------------------------------------------------------------------------------
d1c619b6ef | Chris Campbell | 2011-03-14 20:28:00 +0000

Increase piety cost of Makhleb's greater servant, since 1s were improved

--------------------------------------------------------------------------------
73a0c4ea42 | Chris Campbell | 2011-03-14 19:24:15 +0000

Swap the order of Mnoleg's attacks

--------------------------------------------------------------------------------
4d0c25140d | Chris Campbell | 2011-03-14 18:27:44 +0000

Improve some 1s and &s
Green Death, Blue Death: remove call imp.
Cacodemon: give confuse instead of call imp, give an extra attack and
more health.
Dispater, Asmodeus: remove common demon.
Dispater: give LCS instead of lightning bolt.
Asmodeus: give fire summon instead of greater demon, remove bolt of
draining.
Mnoleg: give summon eyeballs instead of greater demon, blink range
instead of invisibility, give AF_BLINK and an AF_MUTATE attack.
Lom Lobon: give AF_ANTIMAGIC attacks.

--------------------------------------------------------------------------------
5cf6086634 | Chris Campbell | 2011-03-14 17:34:02 +0000

Give Asmodeus a permanent ring of flames

--------------------------------------------------------------------------------
b219bc4ee6 | Chris Campbell | 2011-03-14 17:33:56 +0000

Add a monster-only spell to summon high-level fiery monsters

--------------------------------------------------------------------------------
143923883e | Chris Campbell | 2011-03-14 17:20:56 +0000

Give Pikel a whip of elec instead of pain

--------------------------------------------------------------------------------
b5595cb0a1 | Chris Campbell | 2011-03-14 17:20:53 +0000

Give Grinder AF_PAIN attacks instead of a weapon

--------------------------------------------------------------------------------
5a5fc376fa | Chris Campbell | 2011-03-14 17:20:48 +0000

Boost undead/demonic monster effective necromancy skill

--------------------------------------------------------------------------------
f414ed6e99 | Chris Campbell | 2011-03-14 17:20:44 +0000

Add pain and antimagic attack flavours for monsters

--------------------------------------------------------------------------------
ef5caf21f2 | Chris Campbell | 2011-03-14 16:57:58 +0000

Fix a duplicate message with AF_BLINK

--------------------------------------------------------------------------------
a0a1f5b251 | David Lawrence Ramsey | 2011-03-14 10:01:11 -0500

Remove the Stonemail spell.

--------------------------------------------------------------------------------
2b7bdc810b | Johanna Ploog | 2011-03-14 15:51:35 +0100

Don't let the vorpalise weapon effect destroy potions or scrolls.
We've specifically added code to avoid the hassle of having to drop
scrolls before reading, and there's no sense to reintroduce it through
the back door, in particular since ?VW is a scroll you read out of
combat, making preparation trivial yet cumbersome.

--------------------------------------------------------------------------------
6cbdb5a659 | Johanna Ploog | 2011-03-14 15:51:33 +0100

Fix mouseclick travel internally using the vi keys.
This caused odd effects if the vi keys were remapped or rebound to
other commands. Now directly calls process_command().

--------------------------------------------------------------------------------
ccfffd28cd | Raphael Langella | 2011-03-14 13:20:38 +0100

Fix scroll of fear not being use-IDed properly.

--------------------------------------------------------------------------------
4188915bd9 | Johanna Ploog | 2011-03-14 12:30:30 +0100

Change N/A position for unavailable background choices.
On the new background selection screen, there's not enough place to
fit the N/A information for Demigods. Putting it in front (where the
letters are for all other backgrounds) fixes this issue.

--------------------------------------------------------------------------------
0448cb3a83 | Adam Borowski | 2011-03-14 12:22:56 +0100

Don't restrict set_random_mon_list() to portal vaults only.
Encompass vaults are valid users too -- like, non-fire monsters shouldn't
generally spawn on minmay_sea_of_fire except for stairs.  And even regular
vaults might reasonably use it with some care, especially if the old
selector is included as an alternative ("gnoll / place:D:4").

--------------------------------------------------------------------------------
a743b71986 | Adam Borowski | 2011-03-14 11:59:46 +0100

Remove redundant special casing for the Hall of Blades.

--------------------------------------------------------------------------------
7f7a4e4afe | Raphael Langella | 2011-03-14 07:37:00 +0100

Background selection menu: use singular for titles.
To avoid having to use Battlemagi which doesn't look good.

--------------------------------------------------------------------------------
63a33eac7e | David Lawrence Ramsey | 2011-03-13 23:14:03 -0500

Revert "Fix tiles compile."
This reverts commit 55d7a591a876ae130893a5fb4b53380468b9ade7.

--------------------------------------------------------------------------------
258a864355 | David Lawrence Ramsey | 2011-03-13 23:13:44 -0500

Revert "Remove tiles references to scrolls of paper and crystal balls of 
fixation."
This reverts commit 0d99015eb3f80146e812db36034d82fa14ccb763.

--------------------------------------------------------------------------------
ad41d94f24 | Raphael Langella | 2011-03-13 21:13:29 +0100

Background selection menu cosmetic changes.

--------------------------------------------------------------------------------
1708357733 | Adam Borowski | 2011-03-13 20:21:01 +0100

Purge away unused conducts.
Most of these were even not implemented.  Those which were are obscure
and trivial to recreate.

--------------------------------------------------------------------------------
2fbbae6305 | Adam Borowski | 2011-03-13 18:20:55 +0100

Change FixedVector messages to be easier to understood by users.

--------------------------------------------------------------------------------
14251fa4c6 | Chris Campbell | 2011-03-13 16:13:09 +0000

No stealth bonus from boots if you're flying or in water

--------------------------------------------------------------------------------
b9b2a41985 | Chris Campbell | 2011-03-13 15:51:33 +0000

Remove some redundant resistances
MR_RES_HELLFIRE only has a single level, and confers fire immunity, so
monsters don't need both.
rAcid is automatically set to 3 so monsters don't need it to be
explicitly set.

--------------------------------------------------------------------------------
a3ce72dd89 | Chris Campbell | 2011-03-13 14:33:06 +0000

Remove vampire mosquitos from some early vaults

--------------------------------------------------------------------------------
dca99492b6 | Chris Campbell | 2011-03-13 14:33:05 +0000

Improve staff of Wucad Mu description

--------------------------------------------------------------------------------
91b8019d0d | David Lawrence Ramsey | 2011-03-13 09:26:37 -0500

Resort fire bats' entry in mons_rare_abyss().

--------------------------------------------------------------------------------
fde92f13f5 | David Lawrence Ramsey | 2011-03-13 09:21:35 -0500

Add an attempt at a fire bat tile to fix Mantis 3580.
Currently, it's just a palette-swapped megabat tile.

--------------------------------------------------------------------------------
3aaa727246 | David Lawrence Ramsey | 2011-03-13 08:54:16 -0500

Remove reference to vampire bat corpses; they don't leave corpses.

--------------------------------------------------------------------------------
51b381ba46 | Adam Borowski | 2011-03-13 01:48:10 +0100

Merge branch 'master' into unicode

--------------------------------------------------------------------------------
ce4dbcfd85 | Adam Borowski | 2011-03-13 01:26:23 +0100

Temporarily revert d57c28b0 (fix monster trails) in tiles.
Tiles don't allow updating a place that's out of LOS, I don't know that part
of code and I want to paper over the pile of bug reports we're getting.  A
proper fix would be nice.

--------------------------------------------------------------------------------
75cf88ab19 | Adam Borowski | 2011-03-12 22:24:22 +0100

Fix a wizmode crash.

--------------------------------------------------------------------------------
7525053876 | Adam Borowski | 2011-03-12 22:02:36 +0100

Disable ghost creation/loading in wizard non-debug mode.
Rationale: it's better to have a concrete line between normal games and
playground.  If you don't label something as cheating, people often don't
realize they're doing something frowned upon.

Both FULLDEBUG (including "make debug") and DEBUG_BONES re-enable this.

--------------------------------------------------------------------------------
2625a93974 | Adam Borowski | 2011-03-12 21:24:58 +0100

Let player elves have elven gear (elliptic)
Elven armour used to be never heavy in the past, but that distinction is
long gone.

--------------------------------------------------------------------------------
5b54327aa7 | Adam Borowski | 2011-03-12 21:24:58 +0100

Delete a misleading comment.

--------------------------------------------------------------------------------
e9fcac11fe | David Lawrence Ramsey | 2011-03-12 12:29:42 -0600

Revert "Fix inverted transform() logic for "You feel like a pig." messages."
This reverts commit 4bbfa1d9eb8f80721da202dfe341051b0c6b704c.

The "You feel like a pig." message is supposed to be displayed when the
spell fails, since "You have been turned into a pig!" message is
displayed when it succeeds.

--------------------------------------------------------------------------------
9a32a1aabc | David Lawrence Ramsey | 2011-03-12 12:22:18 -0600

Add wording fixes.

--------------------------------------------------------------------------------
3fc1cc2adb | Adam Borowski | 2011-03-12 19:18:12 +0100

Fix placing Fire Storm on a wall.
Both in the old and new targetter you could aim it on a wall (tree, statue)
and have no effect other than losing mana and causing noise.

TODO: The message is wrong, fixing that would require a bit of refactoring
I have partially stashed on another machine.

--------------------------------------------------------------------------------
4544842b08 | Adam Borowski | 2011-03-12 19:10:53 +0100

Allow draconian breath under AM, don't allow steam balls for non-steam dragons.
These dragons are non-sentient, so they're not likely to ever be allowed to
cast spells, so it's probably safe.

--------------------------------------------------------------------------------
53324ded89 | Adam Borowski | 2011-03-12 19:00:08 +0100

Fix recite working through walls and squarelosish.

--------------------------------------------------------------------------------
a48c7465f0 | Adam Borowski | 2011-03-12 18:52:35 +0100

Fix spells being unaffected by antimagic in some cases.
These are mostly monsters with both a breath and some magic, like
pearl dragons.  Also, some magical abilities like blink or eyes'
innate spells.  Naga mages can now use their breath -- but plain
nagas and naga warriors which somehow get spells (polymorph, redefining)
don't get a free pass anymore.

--------------------------------------------------------------------------------
d23ca6f500 | Adam Borowski | 2011-03-12 18:18:05 +0100

Clarify the description of staff of enchantments.

--------------------------------------------------------------------------------
723e681af0 | David Lawrence Ramsey | 2011-03-12 11:00:25 -0600

Implement Mantis 1496 (mostly).
Spells that transform the player are considered chaotic for Zin's
purposes: casting them is forbidden, and the actual transformation
effect can be blocked with a chance dependent on piety (except for
transformation back into your original form).  A useful side effect of
this is that Zin can protect his worshippers from Kirke's Porkalator
spell.  Also, the effects on transforming cards are consistent with
other cards: drawing the Pentagram as a good god worshipper doesn't
count as casting an unholy demon-summoning spell, but will still anger
the demon in question.  Furthermore, for consistency, Zin will refuse to
take players as worshippers while they're transformed.

Note that the protection message refers to "unnatural" transformations.
This is mainly to allow merfolk's fishtail transformation (which is not
considered a transformation code-wise, is difficult to deal with for
that reason, and could be considered natural for that species) and
several other corner cases.  Similarly, Stoneskin could be banned as
suggested in the original Mantis report, but Petrify would logically
have to be banned as well; it can be handwaved away by petrification's
being a natural process under some circumstances (and possibly the
spells' descriptions could be tweaked to mention it).

There should probably be some way to indicate transformation protection
on the "%" screen or the like, but I'm not sure how to do it at the
moment.

--------------------------------------------------------------------------------
4bbfa1d9eb | David Lawrence Ramsey | 2011-03-12 10:34:26 -0600

Fix inverted transform() logic for "You feel like a pig." messages.

--------------------------------------------------------------------------------
916b54528c | David Lawrence Ramsey | 2011-03-12 09:58:21 -0600

Add spacing fix.

--------------------------------------------------------------------------------
88c278f631 | Adam Borowski | 2011-03-12 03:08:02 +0100

Fix shedu corpses in tiles.

--------------------------------------------------------------------------------
fd00f1975e | Adam Borowski | 2011-03-12 03:08:02 +0100

A testing vault for new holies.
They appear to be in a pretty bad shape so some testing is needed before
release.  They tend to Pan lord hard so I placed the vault on D:26, and
because we're going to freeze soon, it is guaranteed for now.

The 1/4 chance for a PDA might screw up the balance of other stuff somewhat,
but for a week or so, we'll survive.

--------------------------------------------------------------------------------
908e246a92 | Chris Campbell | 2011-03-12 01:04:40 +0000

Move silence from the book of Maledictions to War Chants (replace haste)
This gives Crusaders more of a mix of charms and hexes (encouraging them
to train both) - but regardless of charm/hex status, silence is very
much a Crusader spell rather than an Enchanter one (and removing haste
from starting spellbooks is also likely a good thing).

--------------------------------------------------------------------------------
c2ad52ce2a | Chris Campbell | 2011-03-12 00:53:29 +0000

Replace Cherub in an abyss vault with an Angel to fix unfinished errors
It can probably be changed back to a Cherub when the holyhaul is
finished and they lose their unfinished tag.

--------------------------------------------------------------------------------
1f0181732b | Raphael Langella | 2011-03-12 01:04:22 +0100

Make trampling use move_player_to_grid function.
So location effect is properly applied and clinging status updated.
It also gives a chance to the player to scramble free.

--------------------------------------------------------------------------------
ce37395c49 | Raphael Langella | 2011-03-12 01:04:22 +0100

Clear clinging status on teleport and dispersal.

--------------------------------------------------------------------------------
0e44d65949 | Raphael Langella | 2011-03-12 01:04:22 +0100

Don't cling to the wall when levitating.

--------------------------------------------------------------------------------
3702d5b55c | Adam Borowski | 2011-03-12 00:06:05 +0100

Don't make monster memory stick if the monster took the stairs with you.
This matters if you come back via a different stair or view the level via X[].

--------------------------------------------------------------------------------
d57c28b011 | Adam Borowski | 2011-03-11 23:29:32 +0100

Don't make a monster at the edge of LOS leave a trail.
Seeing the monster enter means it isn't in the old place anymore.  A corner
case where you know there were two identical monsters each of which could
come in doesn't really apply since in reality you'd see the direction it
moved.

This applies to door mimics who block LOS, too.

--------------------------------------------------------------------------------
c7cddca083 | Adam Borowski | 2011-03-11 23:16:37 +0100

Fix non-ghost spells not getting loaded.

--------------------------------------------------------------------------------
c9a628a6d3 | Raphael Langella | 2011-03-11 22:57:13 +0100

New background choice layout.
Grouped by category, as suggested on the tavern:
https://crawl.develz.org/tavern/viewtopic.php?p=9905#p9905

--------------------------------------------------------------------------------
c780e15100 | David Lawrence Ramsey | 2011-03-11 13:52:00 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
36704966e0 | David Lawrence Ramsey | 2011-03-11 13:28:40 -0600

Remove one last now-unnecessary check regarding mons_make_god_gift().
It no longer asserts, so the monster's god no longer needs to be
manually unset before calling it.

--------------------------------------------------------------------------------
c653ba3922 | Chris Campbell | 2011-03-11 17:32:22 +0000

Update an example in the level syntax docs

--------------------------------------------------------------------------------
dba2feda17 | Chris Campbell | 2011-03-11 17:30:41 +0000

Shrink the hall of blades, guarantee a single rare weapon with a brand
The blade vault is now encompass, and fewer dancing weapons are
generated in total.

--------------------------------------------------------------------------------
a7913933d9 | Chris Campbell | 2011-03-11 15:29:52 +0000

Make the liches behind glass guard their loot

--------------------------------------------------------------------------------
81205422ce | Adam Borowski | 2011-03-11 15:44:10 +0100

Handle Windows newlines when generating MST.

--------------------------------------------------------------------------------
9b3b739426 | Adam Borowski | 2011-03-11 13:02:12 +0100

Properly ignore tabs in the pre-commit hook.
(You won't see this fix unless you manually copy it in...)

--------------------------------------------------------------------------------
99903ee246 | Adam Borowski | 2011-03-11 12:59:10 +0100

Put build.h and compflag.h into GENERATED_FILES since they are ones.

--------------------------------------------------------------------------------
b06ab47ec7 | Adam Borowski | 2011-03-11 12:49:17 +0100

Take flame breath away from fire bats.
Fire-branded scroll-busting melee damage is enough, I wouldn't expect
a bat to have powerful lungs.

It was added because there was no way to give them fire damage initially.

--------------------------------------------------------------------------------
39670e6274 | Raphael Langella | 2011-03-11 12:45:22 +0100

Make clinging monsters retry pathfinding more often.

--------------------------------------------------------------------------------
be085a169e | Raphael Langella | 2011-03-11 12:45:22 +0100

Remove the background colour from the title logo.
This should make it easier to use it in new title screens.

--------------------------------------------------------------------------------
55d7a591a8 | Raphael Langella | 2011-03-11 12:45:22 +0100

Fix tiles compile.

--------------------------------------------------------------------------------
fe68a0adfe | Adam Borowski | 2011-03-11 12:20:18 +0100

Loosen the dependencies on generated files to reduce recompiles.
Sadly, there are some hard-coded dependencies, and art-enum.h remains a
global include, thanks to our dependency tracking being almost non-existant.
Remind me please, why we don't use autotools?

--------------------------------------------------------------------------------
d361707fdb | Adam Borowski | 2011-03-11 12:08:42 +0100

Make all monster spellbook code private to mon-util.cc

--------------------------------------------------------------------------------
7b71993b6a | Adam Borowski | 2011-03-11 11:46:04 +0100

Run checkwhite.

--------------------------------------------------------------------------------
a68d0c1f2e | Adam Borowski | 2011-03-11 11:23:42 +0100

Autogenerate MST enums.

--------------------------------------------------------------------------------
fdb8b3037d | Adam Borowski | 2011-03-11 10:39:10 +0100

Give vampires blood.
Too many vampire stories have them suck blood from one another.
There's Jory too who explodes in a fountain of blood.  Also, without
blood they'd have to stop regenerating.

--------------------------------------------------------------------------------
4ad0b8b396 | Adam Borowski | 2011-03-11 10:36:44 +0100

Make Antaeus bloody, he's a titan.

--------------------------------------------------------------------------------
ffce8c070a | Adam Borowski | 2011-03-11 10:27:00 +0100

Remove M_SPECIAL_ABILITY, nothing queries it.

--------------------------------------------------------------------------------
0d99015eb3 | David Lawrence Ramsey | 2011-03-10 18:32:09 -0600

Remove tiles references to scrolls of paper and crystal balls of fixation.

--------------------------------------------------------------------------------
3ce3fcaec9 | Adam Borowski | 2011-03-11 01:02:01 +0100

Fix ice bats (bat simulacra) not using their tile.
It turns out zombified monsters cannot have their tile redefined, and
there's no point in adding that if we can just make regular bat simulacra
use this tile.

This makes them the only monster with a properly looking simulacrum, but hey.

I wonder, perhaps we can generate these automatically?  We can have a
simulacrum texture, take the base tile and replace all non-#000000
non-transparent pixels by that texture.

--------------------------------------------------------------------------------
782f7e2c2e | Adam Borowski | 2011-03-11 01:02:01 +0100

minmay's phasing addition to goddamned bats.
Sadly, no distortion hits, the vault is too shallow :(

Having phase shift messages would be nice but we can't redefine such
flags, and it's not worth the effort for an one-off monster.

--------------------------------------------------------------------------------
43562ccba9 | Chris Campbell | 2011-03-10 23:31:38 +0000

Make acquiring rods of striking less likely

--------------------------------------------------------------------------------
eb6ba93fe7 | Chris Campbell | 2011-03-10 23:31:37 +0000

Remove crystal balls of fixation

--------------------------------------------------------------------------------
14135e46b8 | David Lawrence Ramsey | 2011-03-10 16:50:01 -0600

Make ghouls have a hit-type attack again, to fix their weapon usage.

--------------------------------------------------------------------------------
136aa19b46 | David Lawrence Ramsey | 2011-03-10 14:04:24 -0600

Simplify draconian-scales-based AC calculation.

--------------------------------------------------------------------------------
eff2768084 | David Lawrence Ramsey | 2011-03-10 13:39:12 -0600

Remove the last references to bears; move the bear tile to UNUSED.

--------------------------------------------------------------------------------
a2830fb424 | Chris Campbell | 2011-03-10 19:19:30 +0000

Make monster ghouls a little more noticeable
(Boost their health and damage significantly)

--------------------------------------------------------------------------------
6a0b72f9b1 | Chris Campbell | 2011-03-10 19:19:30 +0000

Remove bears, replace with grizzly or black bears where appropriate

--------------------------------------------------------------------------------
8c9e835e63 | David Lawrence Ramsey | 2011-03-10 13:17:44 -0600

Remove unneeded spaces from direction prompts.

--------------------------------------------------------------------------------
b2fca74eb8 | David Lawrence Ramsey | 2011-03-10 12:59:20 -0600

Add spacing fix.

--------------------------------------------------------------------------------
965c4df396 | David Lawrence Ramsey | 2011-03-10 12:58:55 -0600

Simplfy monster Trog's Hand duration calculation.

--------------------------------------------------------------------------------
aba0478e71 | David Lawrence Ramsey | 2011-03-10 12:56:46 -0600

Properly use BASELINE_DELAY in monster Call Tide.

--------------------------------------------------------------------------------
6f97511fa7 | Vsevolod Kozlov | 2011-03-10 19:21:05 +0300

Add missing ORIENT to megacathedral.
Bad due, it's in float.des for a reason! Also fixes occasional connectivity
issues, since minivault placement makes no guarantees there.

--------------------------------------------------------------------------------
f1dcc88fdb | Vsevolod Kozlov | 2011-03-10 19:09:01 +0300

(Hopefully) fix infinite bat generation in the megacathedral vault.

--------------------------------------------------------------------------------
e52a38c7d0 | Adam Borowski | 2011-03-10 14:30:56 +0100

Make Fiends and Pit Fiends use regular spells rather than abilities.
The hard-coded reduction of cast frequency is approximated by a fake
"melee" spell which waters down spell choice without taking up a turn.
Ie, "killdudes" by ##crawl parlance.  Trog approves.

--------------------------------------------------------------------------------
a9a60a62b0 | Johanna Ploog | 2011-03-10 07:48:23 +0100

Fix a logic error in the tutorial lua code.
Hasn't been an issue yet as I never explicitly pass false to the
function but if it happens, it should work. :)

--------------------------------------------------------------------------------
baa3eda4e2 | Johanna Ploog | 2011-03-10 07:48:20 +0100

Fix a typo in the pathfinding code.
Also, note that the traversable() and travel_cost() methods may need
to be updated to giant monsters being capable of crossing deep water
and not floundering in shallow.

--------------------------------------------------------------------------------
69987a2c0d | Chris Campbell | 2011-03-10 02:54:11 +0000

Don't enable cTele by quaffing Elf fountains
It only impacts spoiled players and doesn't have any interesting
consequences anyway (there's no reason to quaff the sparkling fountain
once you've cleared the vault sufficiently that it'd be safe to do so).

--------------------------------------------------------------------------------
b280d6877a | Chris Campbell | 2011-03-10 02:13:42 +0000

Don't let antimagic work on priests

--------------------------------------------------------------------------------
b6e86b7d4b | Chris Campbell | 2011-03-10 00:54:48 +0000

Add M_FAKE_SPELLS to a number of monsters whose spells are nonmagical
Includes monsters whose spells are actually gaze attacks (eyes), breath
weapons (pearl dragon, naga and naga warrior, Serpent of Hell),
mesmerisation (mermaid, siren), or otherwise innate abilities (fire bat,
jumping spider, brain worm). It also includes Geryon, whose spells are
actually evoked from his horn. These monsters will no longer be affected
by antimagic branded weapons.

There's a few other monsters that could maybe get this flag but I wasn't
certain about: some of the holies (spirit, ophan, shedu, blessed toe,
silver star?), electric golems, orbs of fire, fire/frost giants and
titans.
I've left them be for now (so they're immune to silence but affected by
antimagic).

Demons, efreeti/rakshasas, curse skulls/toes, etc remain immune to
silence but affected by antimagic.

--------------------------------------------------------------------------------
d9573c17e5 | Chris Campbell | 2011-03-09 01:04:23 +0000

Don't corrode ammo by clumsily bashing jellies with it
(Why would you do that anyway?)

The message about ammo being "resistant to acidic corrosion" only
misleads players into thinking that it has some kind of effect on the
ammo when fired at an acidic opponent (which it doesn't).

--------------------------------------------------------------------------------
410a2c5ef5 | Chris Campbell | 2011-03-09 00:55:56 +0000

Don't give a chance to hit rock worms in walls except in Zotdef

--------------------------------------------------------------------------------
4c18f06084 | Chris Campbell | 2011-03-09 00:36:13 +0000

Fix Makhleb's demon summons relying on specific enum values
Fixes Lesser Servant summoning Chaos Spawn instead of Hellwings.

--------------------------------------------------------------------------------
bf989cde7a | Chris Campbell | 2011-03-08 23:27:48 +0000

Minor changelog fixes
Removed some duplicate lines and fixed a few inaccuracies/spelling
errors.

--------------------------------------------------------------------------------
8ac0cb8626 | Marc H. Thoben | 2011-03-08 23:13:47 +0100

Fix typo in Elyvilon's detailed description.

--------------------------------------------------------------------------------
7ecc7ef077 | Johanna Ploog | 2011-03-08 21:16:42 +0100

Reorder included file listing, for easier readability.

--------------------------------------------------------------------------------
cad36baf77 | Johanna Ploog | 2011-03-08 21:10:50 +0100

Reintroduce item stat loss prompts.
While not fatal, having a stat lowered to zero or below can have nasty
consequences. Thus, prompt if we're trying to put on an item known to
have this effect.

--------------------------------------------------------------------------------
4ba3ca2b26 | Johanna Ploog | 2011-03-08 14:48:53 +0100

Update the change log to g81b92e8.
I might have gone overboard here (the spell level changes probably
don't need to be quite so detailed), but believe me: I left out a lot.
Time for 0.8, I say! :)

--------------------------------------------------------------------------------
a339fdf073 | Johanna Ploog | 2011-03-08 14:48:50 +0100

Replace scroll reading penalty while brainless with 80% failure chance.
Not giving players a way to remove a cursed -Int item is overly harsh.
The 80% failure chance should be enough to make using ?blinking etc.
impractical in combat.

Also fixes manuals being mouseclick-readable while "brainless".

--------------------------------------------------------------------------------
34244263d3 | Adam Borowski | 2011-03-08 12:12:39 +0100

Don't place steam near fire out of bounds.

--------------------------------------------------------------------------------
c1be1ae0a4 | Adam Borowski | 2011-03-08 12:01:19 +0100

A shim to recover saves with forest fires out of bounds.

--------------------------------------------------------------------------------
b26d586e83 | Chris Campbell | 2011-03-07 21:14:26 +0000

Update minmay_entry_shattered_statue

--------------------------------------------------------------------------------
0ef41ae2ac | Johanna Ploog | 2011-03-07 20:59:16 +0100

Add a tile for liquefied floor.
Nothing fancy, but we do need a tile.

--------------------------------------------------------------------------------
ef769522ff | Adam Borowski | 2011-03-07 20:16:09 +0100

Let directn's defaults use the new targetters.
Yay passing a hundred arguments; when cleaning up, let's move all these
small functions to the object.

--------------------------------------------------------------------------------
15537459de | Adam Borowski | 2011-03-07 19:40:23 +0100

New targetting code; for now for reaching and Fire Storm.
directn.cc tried to assume everything is a beam, this make it impossible
to properly visualise spells/effects with different rules, like reaching,
clouds, IOOD, shotgun-targetted spells, cones, etc.  This interface lets
every spell come with an object that answers the question: if I aim at X,
will location Y be affected?

There are three levels of aiming effect now:
* tracer only
* might be affected
* will be affected unless you miss

This means we can show spells that have randomized area: Freezing Cloud,
Fire Storm's radius, etc.

TODO: display in tiles.

The old targetter has a great number of special cases, I did not replace
it yet since it would be a large amount of work.  The new code allows for
showing explosions and bounces, but I'd start with clouds and such first.
Fire Storm is a good sample.

Also, this commit fixes the targetter not allowing you to reach sqrt(8) via
'f' or '.'; you had to use '!' to do that.  A number of places in the code
assumed that, with a special distinction for two modes of reaching.

--------------------------------------------------------------------------------
4c1aef9351 | Adam Borowski | 2011-03-07 16:51:12 +0100

Don't mark Holy Breath as a smite spell.

--------------------------------------------------------------------------------
273693b108 | Chris Campbell | 2011-03-07 02:06:19 +0000

Make AF_HUNGER somewhat harsher
Rather than take a fixed 400 nutrition, it takes 25% of your nutrition.
This makes it quite a bit harsher if you are already Full, but less
harsh if you are Near Starving or worse (and much less likely to
actually directly starve you).

--------------------------------------------------------------------------------
c6bb611c41 | Chris Campbell | 2011-03-07 00:43:06 +0000

Fix randbooks with specifically defined spells

--------------------------------------------------------------------------------
7d382258fd | Chris Campbell | 2011-03-07 00:43:06 +0000

Remove a Chei overflow altar with food

--------------------------------------------------------------------------------
e6a616a5a5 | Chris Campbell | 2011-03-07 00:43:05 +0000

Change the Lugonu bribe altar vault a bit
To get rid of most of the cases where it gives up and just gives you a
manual of Invocations.

--------------------------------------------------------------------------------
1484d48ffb | Adam Borowski | 2011-03-06 21:49:27 +0100

Colour vampiric/anti-magic weapons lightblue like other brands are.

--------------------------------------------------------------------------------
3b97a281ee | Adam Borowski | 2011-03-06 21:33:03 +0100

Fix an invalid return type.

--------------------------------------------------------------------------------
8acd78d96e | Johanna Ploog | 2011-03-06 20:37:38 +0100

Apply Tornado's colour scheme to Tiles, as well.
A huge improvement, indeed!

The blue/lightgrey contrast might be a bit garish but it's the best
I came up with. Other than in console, grey/lightgrey is really ugly.

--------------------------------------------------------------------------------
7fb953b0ac | Jude Brown | 2011-03-06 20:10:14 +1000

Begin work on phoenix resurrection: phoenix map marker.
Currently, resurrection will be per-level, but support can later be
added for moving or recreating markers on the next level you go to if
you happen to be carrying a phoenix corpse with you.

It will also resurrect if the phoenix marker times out while you were
off level and the corpse was not otherwise destroyed. The mechanism will
track the location of the corpse, storing coord(-1, -1) when the corpse
is in your inventory, or the location otherwise.

Finally, none of this is actually coded, but the capacity now exists to
start using the new marker. That's really the hardest bit and the
longest to recompile, as it touches enum.h and mapmark.h.

More to come!

--------------------------------------------------------------------------------
8333f4560c | Jude Brown | 2011-03-06 19:34:16 +1000

De-mermaid-ify mesmerisation for non-mermaid beholders.
It's a little bit odd to be beheld by an ogre, say, and then have them
described as "mermaids" or their actions as "singing". A bit jarring and
odd, but fixed now!

--------------------------------------------------------------------------------
429086523c | Jude Brown | 2011-03-06 19:03:18 +1000

Give Jory Mesmerise instead of Cause Fear.

--------------------------------------------------------------------------------
0b3b26af7e | Jude Brown | 2011-03-06 19:02:04 +1000

Fix Mesmerisation spell (kilobyte).
Forgot to update possible_beholder to accept any monster with the
Mesmerisation spell.

--------------------------------------------------------------------------------
b1d578846b | David Lawrence Ramsey | 2011-03-06 01:18:54 -0600

Make eidola actually use their spells by setting their flags properly.

--------------------------------------------------------------------------------
9d5aaf546f | Jude Brown | 2011-03-06 15:38:28 +1000

New monster spell: Mesmerise.
It has the same action as the mermaid/siren ability, but with a few
minor tweaks in order to make it more like a spell. This means that
monsters now have an entry-point to mesmerisation outside of abilities.

Of course, just because this exists doesn't mean that we need to start
giving this spell out to everyone -- however, Jory at least would do
better with Mesmerise, both functionally and flavour-wise.

Currently, it doesn't work properly; I can't exactly work out why, and
though I don't have the time to fix it right now, I don't want to just
dump all of this code. So, in with a FIXME line, and I'll have another
look at it later.

--------------------------------------------------------------------------------
1f79632dd8 | Jude Brown | 2011-03-06 15:21:40 +1000

Give giant orange brains Cause Fear instead of Polymorph Other.
We already have a polymorphing eyeball (shining eye), and there aren't
many monsters with Cause Fear in general, so this will be interesting
both as a test of the spell and also to actually, finally have it used
in-game.

(Jory will shortly lose cause fear.)

--------------------------------------------------------------------------------
3ca984b8b8 | Jude Brown | 2011-03-06 14:39:53 +1000

Give Eidola spells, fix pluralisation rule.
They now have Cause Fear and Pain.

--------------------------------------------------------------------------------
7fee558ec8 | Jude Brown | 2011-03-06 14:19:48 +1000

New vault: megacathedral, with megabats!
Alas, there aren't any megawraiths or megaeidolons, so they'll have to
suffice on their own. It's a relatively shallow vault, but the majority
of the threat is hidden behind doors, and the loot is not that great.

Also, while being early, it is a guarantee of five (5) random altars.
This might be a bit too much for something that can appear on D:8, but
then, perhaps not. I'm uncertain.

--------------------------------------------------------------------------------
23334941c5 | Chris Campbell | 2011-03-06 03:08:36 +0000

Mention in the description that Zin's cure all mutations is single-use

--------------------------------------------------------------------------------
f73dbc90b4 | David Ploog | 2011-03-05 21:17:19 +0100

Reduce shop randomisation in bazaar_jpeg_triangle_bulge (#3536).

--------------------------------------------------------------------------------
4bd590814e | Chris Campbell | 2011-03-05 17:56:25 +0000

Improve Cacodemons slightly
Give them Energy Bolt instead of Dig, and replace an instance of Call
Imp with Slow. Also give them a full three levels of rPois and rElec.

--------------------------------------------------------------------------------
16b1d75b43 | Chris Campbell | 2011-03-05 16:17:30 +0000

Consistent indentation in spl-data

--------------------------------------------------------------------------------
c4a558973b | Chris Campbell | 2011-03-05 16:13:12 +0000

Fix curse skulls rattling their jaws when casting under silence

--------------------------------------------------------------------------------
76db45cdc7 | Chris Campbell | 2011-03-05 16:12:52 +0000

Fix silence working on demons, orbs of fire, etc

--------------------------------------------------------------------------------
c2a34fe170 | Chris Campbell | 2011-03-05 15:52:26 +0000

Rework monster rElec levels
Monster rElec used to be automatically upgraded from 1 to 2, making them
take 1/6 damage from electricity. Changed the default level of rElec to
1, and manually set monster levels of rElec to be somewhat more sensible
(one level of rElec is 1/3 damage, three levels is immunity).

--------------------------------------------------------------------------------
8410e61478 | Chris Campbell | 2011-03-05 14:47:04 +0000

Restore some monster speeds
Orb Guardian, the Royal Jelly: 12 -> 14
Storm dragon: 11 -> 12
Golden dragon, Greater Mummy, Fiend, Ice Fiend, Shadow Fiend: 9 -> 10
Pit Fiend: 7 -> 8

--------------------------------------------------------------------------------
40033618d6 | Chris Campbell | 2011-03-05 14:20:53 +0000

Reduce electric eel accuracy slightly

--------------------------------------------------------------------------------
8110aa83e0 | Adam Borowski | 2011-03-05 12:58:51 +0100

Felid apt adjustments, mostly FeBe nerfs.
KoBe/HaBe are stronger so the problem seems to be more related to dodging
berserkers in general, but that's no reason to release a bad 0.8.

UC: 0 -> -1
Balance reasons: most wins use melee for primary damage dealing
Theme reasons: cats are weak in combat -- at least housecats.  Crawl felids
  used to be "average housecat", were changed to "large housecat" (spriggan
  sized) -- but that's still a Norwegian Forest or Maine Coon rather than
  a lynx or tiger.  RL cats rely on their agility to avoid fights with larger
  opponents, in full-on melee they lose even to such slobbering dumber than
  amoebas creatures as dogs.
  Heck, theme would warrant further nerfs here...

Fighting: 0 -> -1 (on top of /7 rather than /5 effect)
Balance reasons: FeBe.
Theme reasons: cats are not any good at taking damage either.

Cj: -2 -> -1
Balance reasons: the nerf came from blathering of a single person who
  claimed that Ce and DG are the best races in the same sentence.  While
  that person sometimes has good ideas, here these findings are not based on
  any actual data.  Felid wins are overwhelmingly biased towards melee.
Theme reasons: "not very gifted" doesn't mean "very bad".

Ice: -1 -> -2
Balance reasons: with no AC, Ozocubu's Armour is a no-brainer.  Somewhat
  contrary to the above, though.
Theme reasons: cats absolutely hate cold, even those with copious amounts of
  fur.  They love sitting near fire...

Earth: -1 -> -2
Theme reasons: cats never dig, etc.  They feel very comfortable on heights,
  love flying food, have great 3D awareness, etc.

--------------------------------------------------------------------------------
2a3a0e0d96 | Adam Borowski | 2011-03-05 12:11:08 +0100

Set the xp for vanilla orcs to 3.
Trying to improve threat tiers code, I realized it's not their formula
what's wrong but the xp for orcs being not representative for their
difficulty.  They might be nearly same as hobgoblins when naked, but they
come in packs and get morningstars and war axes rather than clubs or
nothing.

The extra xp shouldn't upset balance of early game much -- you rarely find
them before snakes/gnolls and most of orcs can be found together with 30/100
xp buddies.

--------------------------------------------------------------------------------
43616702ea | Adam Borowski | 2011-03-05 12:01:43 +0100

Fix incomplete spokes on gigabat tile.

--------------------------------------------------------------------------------
400f135ebe | David Ploog | 2011-03-04 23:46:10 +0100

A few additions to the changelog.

--------------------------------------------------------------------------------
cd51d62f91 | Johanna Ploog | 2011-03-04 22:39:57 +0100

Use gate tiles for door mimics, where applicable.
Duplicates the existing gate tile code.

--------------------------------------------------------------------------------
5a2b5081bd | Johanna Ploog | 2011-03-04 22:39:53 +0100

Include item type in item mimics' names.
Flavourwise, this is a bit more interesting than plain "mimic".

--------------------------------------------------------------------------------
7312a133f2 | Adam Borowski | 2011-03-04 20:56:34 +0100

A typo.

--------------------------------------------------------------------------------
7f22d7116d | Adam Borowski | 2011-03-04 19:40:04 +0100

Descriptions of custom bats.

--------------------------------------------------------------------------------
ce1b93220e | Adam Borowski | 2011-03-04 19:29:46 +0100

Tiles for custom bats.

--------------------------------------------------------------------------------
498f0a8412 | Adam Borowski | 2011-03-04 19:22:45 +0100

Correct fire bats' resistances and damage type.
This required using an actual monster, but since unlike all other bats in
the showcase these are cool (well... not literally), it's ok.

--------------------------------------------------------------------------------
539a10389d | Johanna Ploog | 2011-03-04 18:22:24 +0100

A few indentation fixes.

--------------------------------------------------------------------------------
9add49ea0e | Johanna Ploog | 2011-03-04 18:22:22 +0100

Make door mimics replace actual doors.
Overall chance is higher than for other mimics, but otoh, door mimics
don't respawn. The generation chance depends as much on the depth as
on the presence of doors.

--------------------------------------------------------------------------------
91eed01764 | Johanna Ploog | 2011-03-04 18:22:20 +0100

Make item mimics appear earlier, reduce both types' rarity.
Item mimics are immobile and have no ranged attacks, so it doesn't
make sense for their depth to be the same as feature mimics. Rather
than move the latter down, I opted to reduce the former's depth.

--------------------------------------------------------------------------------
b11c0ef230 | Johanna Ploog | 2011-03-04 18:22:17 +0100

In mon-pick.cc, group mimics together.
Sorting them alphabetically into the other monsters is obfuscating the
fact that a lot of the time, they share the same rarities.

--------------------------------------------------------------------------------
238576d287 | Johanna Ploog | 2011-03-04 18:22:14 +0100

Axe trap mimics.
They are trivial to identify because they pose as seen traps you can't
have discovered yet, and other than the other features (except possibly
fountains) they're not something the player wants to step on, anyway.

--------------------------------------------------------------------------------
c4d3ee8e86 | David Lawrence Ramsey | 2011-03-04 08:10:22 -0600

Fix indentation.

--------------------------------------------------------------------------------
de1f5ff293 | Adam Borowski | 2011-03-04 12:56:08 +0100

Rename it_use2.cc to potion.cc, since this is what it is.

--------------------------------------------------------------------------------
1a0e9acfc0 | Adam Borowski | 2011-03-04 12:48:51 +0100

Move unwield_item() to player-equip.cc

--------------------------------------------------------------------------------
2429d934fc | Adam Borowski | 2011-03-04 12:40:03 +0100

Repair Xom's potion of experience, broken by a0c43b2e.

--------------------------------------------------------------------------------
9eeea8b267 | Adam Borowski | 2011-03-04 12:35:34 +0100

Let His Xomminess grant you extra xp at level 27 (xp pool).

--------------------------------------------------------------------------------
251b5ab736 | Adam Borowski | 2011-03-04 12:03:16 +0100

Assert when xp ratio is out of whack.

--------------------------------------------------------------------------------
0900ccf0e2 | Adam Borowski | 2011-03-04 12:01:30 +0100

Fix insane exp in mounted_kill().

--------------------------------------------------------------------------------
40fdd79ec6 | Adam Borowski | 2011-03-04 11:04:57 +0100

Fix returning from portals to Pan clobbering the level.

--------------------------------------------------------------------------------
6a00c1e6ac | Chris Campbell | 2011-03-04 03:06:49 +0000

Alchemist card adjustments
Some number-tweaking (amounts of hp/mp restored, gold cost, chance of
restoring mp) as well as some code re-organisation.

--------------------------------------------------------------------------------
89c193ba6c | Chris Campbell | 2011-03-04 03:06:00 +0000

Tweak minmay_entry_blink_away to be less confusing to new players

--------------------------------------------------------------------------------
4023116783 | Chris Campbell | 2011-03-04 03:05:59 +0000

Remove an orc priest from an entry vault
It can smite players from behind its glass walls, instantly killing
them before they even leave the entry vault.

--------------------------------------------------------------------------------
4c3388865a | Adam Borowski | 2011-03-04 03:22:50 +0100

A tile for air mages.

--------------------------------------------------------------------------------
b47804f0aa | Adam Borowski | 2011-03-04 02:56:54 +0100

Bat zombies have tiles, no need to exclude them from the showcase ("rotten 
bat").

--------------------------------------------------------------------------------
8c7b7bdee2 | Johanna Ploog | 2011-03-04 01:14:47 +0100

Mark a deck as stacked, even if the game is closed in-between.
In this case, naturally the order of the cards won't be changed but
will still be the one originally offered to you.

Does not change the fact that closing the game means that you can
learn about the next five cards without any piety cost.

--------------------------------------------------------------------------------
e03fa36cf6 | Johanna Ploog | 2011-03-04 01:14:44 +0100

Fix #2722: crash when accessing a buggy deck's description.
Also, closing the game window during Stack Five doesn't produce a buggy
deck anymore, but it *does* leak information about the top five cards,
which will need to be fixed in turn.

--------------------------------------------------------------------------------
cecbc80c6c | Johanna Ploog | 2011-03-04 01:14:42 +0100

Fix #2404: Disallow polymorphing monsters taking the stairs.
The check is not entirely necessary (polymorphing works fine), but it
might be confusing if you are messaged about one of your followers
having been polymorphed with the source left behind on another level.

--------------------------------------------------------------------------------
ce0424a49a | Johanna Ploog | 2011-03-04 01:14:39 +0100

Fix 2535: "stasis identification check.

--------------------------------------------------------------------------------
6a6458dfa8 | Charles Otto | 2011-03-03 18:33:56 -0500

Revert accidentally committed change

--------------------------------------------------------------------------------
235f37ae92 | Charles Otto | 2011-03-03 18:27:52 -0500

Allow _add_feat_if_missing to place more than one feat
Fix an issue which made _add_feat_if_missing only place it's feature
if there were no other instances of that feature on the level (so it
could place at most one instance of the feature).
_add_feat_if_missing is used to add escape hatches to regions with no
down stairs as a way of getting rid of 'bubbles'

--------------------------------------------------------------------------------
426b27cfc8 | Chris Campbell | 2011-03-03 23:13:51 +0000

Update deck of wonders description

--------------------------------------------------------------------------------
ab8ff3d9a0 | Chris Campbell | 2011-03-03 23:06:50 +0000

Change the list of possible effects for the Potion card
Make the list contain potions that are useful in battle, to give the
deck of Wonders some cards that have tactical use (Potion, Alchemist)
on top of the strategic effects (Experience, Sage, Helix).

--------------------------------------------------------------------------------
d0cd4b36fa | Eino Keskitalo | 2011-03-03 20:48:12 +0200

Code cleanup: burn_freeze -> cast_freeze.
Removed functionality for using the same function for several beam flavours. 
That stuff hasn't been used in ages.

--------------------------------------------------------------------------------
f7782ccb49 | Eino Keskitalo | 2011-03-03 20:48:12 +0200

Clean out unused DEBRIS enums.

--------------------------------------------------------------------------------
3cdd907899 | Chris Campbell | 2011-03-03 18:08:58 +0000

Add a new card to decks of Wonder: the Alchemist
The Alchemist transmutes some of your gold into health and magic,
usually spending more gold at higher power, as well as having a more
effecient gold to hp ratio.

--------------------------------------------------------------------------------
9ef9254b87 | Eino Keskitalo | 2011-03-03 19:52:49 +0200

Make TSO non-holy summon extension at most double the current duration.

--------------------------------------------------------------------------------
d8c66fcf32 | Chris Campbell | 2011-03-03 15:27:36 +0000

Tweak the weapons created by the Dance card at low power
Change power 0 from Dagger/Club to Short Sword/Hammer, change power 1
from Long Sword/Hand Axe to Long Sword/Trident.

--------------------------------------------------------------------------------
6b21f9db6c | Chris Campbell | 2011-03-03 15:27:35 +0000

Reduce the maximum duration of Pentagram, Dance, Foxfire and Bones cards

--------------------------------------------------------------------------------
59a83246ad | Chris Campbell | 2011-03-03 15:27:35 +0000

Improve the Hammer card at low power
Power 0 changed from Striking to Stone Arrow, power 1 changed from Stone
Arrow to Iron Shot.

--------------------------------------------------------------------------------
136004cd1d | Chris Campbell | 2011-03-03 15:27:34 +0000

Make the Torment and Experience cards a little rarer

--------------------------------------------------------------------------------
81b92e8de9 | David Lawrence Ramsey | 2011-03-02 23:16:03 -0600

Remove Donald's Yred-based hungry ghost complaint, as it's now obsolete.

--------------------------------------------------------------------------------
dab4c953ba | Charles Otto | 2011-03-02 21:07:56 -0500

Merge branch 'slime_connectivity' of ssh://gitorious.org/crawl/crawl

--------------------------------------------------------------------------------
b5c027216a | Charles Otto | 2011-03-02 21:04:32 -0500

Remove debug output

--------------------------------------------------------------------------------
12f9237daf | Charles Otto | 2011-03-02 21:01:05 -0500

Don't remove parts of vaults when changing slime components
Also rename a couple functions, add some more comments

--------------------------------------------------------------------------------
c0ebada9f7 | Chris Campbell | 2011-03-03 00:19:05 +0000

Remove minor magic[frost] from an ice cave's loot (78291)
Swap it for a book of conjurations [ice+air].

--------------------------------------------------------------------------------
b662da1ad1 | Chris Campbell | 2011-03-03 00:09:02 +0000

Updates and fixes to options_guide.txt

--------------------------------------------------------------------------------
fd36efc86d | Johanna Ploog | 2011-03-02 21:59:46 +0100

Update the FAQ.

--------------------------------------------------------------------------------
a0a40dd412 | Chris Campbell | 2011-03-02 19:07:00 +0000

Let Yred gift eidolons, don't gift hungry ghosts
Hungry ghosts make for an uninteresting ally (5 damage with a hunger
effect that only works on the player) as well as the annoyance of them
eating corpses that you might want to raise or butcher.

--------------------------------------------------------------------------------
7a3baae055 | Chris Campbell | 2011-03-02 18:41:04 +0000

Mark scrolls of holy word as dangerous to undead/demonic players

--------------------------------------------------------------------------------
fc2ae4b186 | Adam Borowski | 2011-03-02 13:45:28 +0100

A pre-commit hook doing most of util/checkwhite.  Needs to be installed by hand.
There's code duplication, but relying on checkwhite being present would break
other branches.

--------------------------------------------------------------------------------
58285136b0 | Adam Borowski | 2011-03-02 12:54:45 +0100

Don't exempt Perl scripts from checkwhite.
Tabs are still allowed, though.

--------------------------------------------------------------------------------
e7aaac5c63 | Vsevolod Kozlov | 2011-03-02 10:30:25 +0300

_fixup_stone_stairs: Don't place unneeded downstairs on branch ends.
With an exception for D, which has Zot entrances.

--------------------------------------------------------------------------------
41e3f098da | David Lawrence Ramsey | 2011-03-01 22:13:17 -0600

Remove Summon Elemental reference from _handle_rod().
It's no longer available as a rod spell, so it's redundant now.

--------------------------------------------------------------------------------
a59e7e7f91 | David Lawrence Ramsey | 2011-03-01 22:11:04 -0600

Tweak wording.

--------------------------------------------------------------------------------
b709e9c861 | Chris Campbell | 2011-03-02 02:20:04 +0000

Remove Summon Dragon from the book of Summonings
It's available in the book of the Dragon, and may be added into a
new summoning spellbook but shouldn't be gifted by Vehumet (and the
book of Summonings was very full).

--------------------------------------------------------------------------------
c8e5efdd0e | Chris Campbell | 2011-03-02 02:15:42 +0000

Hopefully fix items.txt line endings

--------------------------------------------------------------------------------
6bce8e5aea | Charles Otto | 2011-03-01 20:46:12 -0500

Clear an output variable before adding to it

--------------------------------------------------------------------------------
6cf7b97fb5 | Charles Otto | 2011-03-01 20:45:59 -0500

Connect parts of slime bubbles blocked by acid walls

--------------------------------------------------------------------------------
375cff31c9 | Charles Otto | 2011-03-01 20:45:49 -0500

Move some search code out of mon-abil.cc

--------------------------------------------------------------------------------
555dc62183 | Charles Otto | 2011-03-01 20:45:36 -0500

Add a connected components implementation
Also add placeholder code for altering slime levels' connectivity
as a post processing step.

--------------------------------------------------------------------------------
f95d80d848 | Charles Otto | 2011-03-01 20:29:53 -0500

Merge branch 'master' of ssh://gitorious.org/crawl/crawl

--------------------------------------------------------------------------------
91bef4b591 | Charles Otto | 2011-03-01 20:28:52 -0500

censorship

--------------------------------------------------------------------------------
c1836ca735 | Chris Campbell | 2011-03-02 00:52:58 +0000

Change summoning/demonology rod contents
Remove Abjuration from the rod of summoning (it's already in two other
rods), and swap Summon Elemental (requires unrelated elemental skills)
for Call Canine Familiar.

Remove Recall from the rod of demonology.

--------------------------------------------------------------------------------
612eef4c81 | Chris Campbell | 2011-03-02 00:45:04 +0000

Improve Summon Swarm
Lower it to level 5 and make the monsters always friendly.

--------------------------------------------------------------------------------
2771927fcc | Chris Campbell | 2011-03-01 23:45:01 +0000

Add the dragon back to wormcave (elliptic)

--------------------------------------------------------------------------------
bc5fb09df3 | Johanna Ploog | 2011-03-02 00:07:54 +0100

Fix #3464: shop location not being cleared on mimic teleport.
I could also replicate the problem when blinking a gold mimic away,
so this check also applies to item mimics. (It appears this only was
a problem if it teleported/blinked while still unknown, which I
believe is only possible via distortion weapons.)

--------------------------------------------------------------------------------
0afec04d72 | Eino Keskitalo | 2011-03-01 23:49:45 +0200

Use KPROP: no_tele_into instead of LFLAGS: no_tele_control in the teleporter 
ice cave. (casmith789)

--------------------------------------------------------------------------------
5f93867cf0 | Eino Keskitalo | 2011-03-01 23:49:45 +0200

Easy and hard ice cave variants, according to portal depth.
Most maps have both ice_cave_easy and ice_cave_hard tags. Which one is called 
for is decided by the entry vault depending on the depth it was placed in. The 
portal vaults themselves check which tag they got picked with via 
you.level_type_tag().

Also includes additional entry vaults and a few other tweaks.

--------------------------------------------------------------------------------
01c4378b2b | Eino Keskitalo | 2011-03-01 23:49:44 +0200

Add you.level_type_tag to the clua API.
Added so that one can check if the ice cave the player is in was called up by 
the ice_cave_easy tag instead of ice_cave_hard tag and vice versa, if the map 
has both.

--------------------------------------------------------------------------------
c7a3a3e19d | Eino Keskitalo | 2011-03-01 23:49:44 +0200

Fix missing oklobs.

--------------------------------------------------------------------------------
91014222f1 | Eino Keskitalo | 2011-03-01 23:49:44 +0200

When going through a portal vault portal in wizmode, allow inputting the full 
map name.
Required for my implementation for easy/hard ice caves, where the map name 
prefix is "ice_cave_", but the actual tags the maps have are ice_cave_easy 
and/or ice_cave_hard.

--------------------------------------------------------------------------------
baae21cdc1 | Adam Borowski | 2011-03-01 21:45:06 +0100

Don't disperse (spell/Solitude card) orbs of destruction.

--------------------------------------------------------------------------------
2e4a09e253 | David Lawrence Ramsey | 2011-03-01 13:29:18 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
a5fbdc77bb | Chris Campbell | 2011-03-01 18:23:36 +0000

Foxfire card: add vampire mosquitoes, tweak hostility chances
Lets Foxfire cards summon a combination of friendly and hostile monsters
(even at higher power levels), as well as adding vampire mosquitoes as a
possible summon.

Don't summon Vapours if you have no SInv.

--------------------------------------------------------------------------------
1d5cf38066 | Chris Campbell | 2011-03-01 18:19:36 +0000

Let the Herd card summon a few more types of animal
Specifically Elephants, Hippogriffs, and Griffons.

--------------------------------------------------------------------------------
09c9c89164 | Chris Campbell | 2011-03-01 18:18:58 +0000

Make Pentagram and Foxfire a little rarer in decks of summoning

--------------------------------------------------------------------------------
e671c982b8 | Chris Campbell | 2011-03-01 17:25:05 +0000

Update Kiku corpse invocation description
It now depends on Necromancy, not Invocations.

--------------------------------------------------------------------------------
d0ed2caa4e | Chris Campbell | 2011-03-01 17:23:13 +0000

Get rid of descriptions for more removed spells

--------------------------------------------------------------------------------
5db7091bae | David Lawrence Ramsey | 2011-03-01 10:55:39 -0600

Remove description of now-unused Portal spell.

--------------------------------------------------------------------------------
582bf173b1 | David Lawrence Ramsey | 2011-03-01 10:51:19 -0600

Remove the last references to Bone Shards and Tame Beasts.

--------------------------------------------------------------------------------
4499b1b1b9 | David Lawrence Ramsey | 2011-03-01 10:37:17 -0600

Remove references to Bone Shards and Tame Beasts; move tiles to UNUSED.

--------------------------------------------------------------------------------
66610049ce | David Lawrence Ramsey | 2011-03-01 10:37:16 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
641841d9a0 | Adam Borowski | 2011-03-01 17:07:33 +0100

Fix an arena crash.

--------------------------------------------------------------------------------
42b8c6d3f2 | Adam Borowski | 2011-03-01 17:07:33 +0100

A woodland arena.

--------------------------------------------------------------------------------
903e5585f8 | Adam Borowski | 2011-03-01 17:07:33 +0100

Full of wind little guys to utilize the "corridors" in Forest.
No CBL, Tornado or Chain Lightning, sadly.

--------------------------------------------------------------------------------
8e26660ceb | Adam Borowski | 2011-03-01 17:07:32 +0100

Fix spriggans having no defined body shape.

--------------------------------------------------------------------------------
948a7ddc0c | Adam Borowski | 2011-03-01 17:07:32 +0100

Don't spawn ancient champions on Crypt:5.
Vault:8 too, but it never could have fit there anyway.

--------------------------------------------------------------------------------
50a9c2b67e | Vsevolod Kozlov | 2011-03-01 18:55:26 +0300

grate_trap: layout_cave -> layout_caves.

--------------------------------------------------------------------------------
1064369efa | Chris Campbell | 2011-03-01 15:52:00 +0000

Artificers always start with scroll of recharging identified
Since recharging scrolls can now be used on rods, too (and actually
it looks like this check never worked anyway, and artificers who chose
rods already have recharging identified).

--------------------------------------------------------------------------------
01a2254fca | Chris Campbell | 2011-03-01 04:48:41 +0000

Lower Felid Conjurations apt to -2

--------------------------------------------------------------------------------
50f1929fdc | Chris Campbell | 2011-03-01 01:06:25 +0000

Make Symbol of Torment a monster-only spell
Players can still access it with Kiku's ability.

--------------------------------------------------------------------------------
f7fa02884e | Chris Campbell | 2011-03-01 01:06:24 +0000

Make Banishment a monster-only spell
Players can still access it with Lugonu's ability.

--------------------------------------------------------------------------------
039c1995bd | Chris Campbell | 2011-03-01 01:06:24 +0000

Shift columns slightly on % screen
To give two-level warding some more space.

--------------------------------------------------------------------------------
bddcff1354 | Chris Campbell | 2011-03-01 01:06:23 +0000

Remove Extension
Even with it only being able to extend spells you know, it's
uninteresting and sort of abusable for high-level Transmutations.

--------------------------------------------------------------------------------
38ccdefff7 | David Lawrence Ramsey | 2011-02-28 17:44:47 -0600

Remove unnecessary spaces.

--------------------------------------------------------------------------------
2c3c70fcb2 | David Lawrence Ramsey | 2011-02-28 16:35:29 -0600

Fix Mantis 3522.
Elyvilon's weapon sacrifices now produce piety gains again; the
gain_piety() call was missing.  The old weapon sacrifice routine, from
before it was moved to a prayer effect, had a piety gain of 1 for
successful sacrifices, although the formula was a bit different, so use
that here.

--------------------------------------------------------------------------------
2473fd9fc6 | Johanna Ploog | 2011-02-28 21:49:37 +0100

Polymorphed uniques may only cast spells if they can speak.
Remove M_SPELLCASTER flag on polymorph, which (if set) enforces
spellcasting even if the new monster is incapable of speech.

Also, add M_FAKE_SPELLS for lab rats (though the flag doesn't appear
to get used anywhere), plus some spacing fixes.

--------------------------------------------------------------------------------
198d40b103 | Chris Campbell | 2011-02-28 18:23:15 +0000

Limit bardings to +4 enchantment (using the same rule as body armour)
Enchant armour scrolls no longer fail, so it seems reasonable to reduce
their maximum enchantment from +8 as well as being more consistent with
other armours.

--------------------------------------------------------------------------------
75cf9cf0bf | Chris Campbell | 2011-02-28 18:23:14 +0000

Minor Pr, DK, He background tweaks
Give DK enough MP and piety to use Animate Remains on D:1, reduce their
weapon to +1,+1.
Give Pr a little more HP and MP (as their healing potion was removed)
Give He one extra dodging and a +1 robe.

--------------------------------------------------------------------------------
3ccb189768 | Adam Borowski | 2011-02-28 18:09:14 +0100

Increase the weight of spider traps, tag them "extra".
They're more like other types of traps rather than vaults, so perhaps
even a CHANCE: could be ok.

--------------------------------------------------------------------------------
2b630105aa | Adam Borowski | 2011-02-28 18:09:14 +0100

Don't match unrands of handedness different than requested.

--------------------------------------------------------------------------------
853f7aeeaa | Adam Borowski | 2011-02-28 18:09:07 +0100

Bind Tab to autofight, shift-Tab to autofight_nomove.

--------------------------------------------------------------------------------
4d95007bfd | Adam Borowski | 2011-02-28 12:33:15 +0100

Fix an autofight-not-included crash (greensnark)

--------------------------------------------------------------------------------
5ccae7e6d5 | Chris Campbell | 2011-02-28 02:40:46 +0000

Don't let slimified uniques cast spells either

--------------------------------------------------------------------------------
af25b5ce98 | Chris Campbell | 2011-02-28 02:15:34 +0000

Make sublimating potions/chunks take a turn again

--------------------------------------------------------------------------------
a8e80b2960 | Chris Campbell | 2011-02-28 02:03:17 +0000

Don't let Degenerated uniques keep their spells

--------------------------------------------------------------------------------
c216b11f85 | Johanna Ploog | 2011-02-27 21:26:54 +0100

Add Denzi's humanoid statue form tile.

--------------------------------------------------------------------------------
026d6f251a | elliptic | 2011-02-27 01:59:07 +0100

Ring of Flames changes.
* When RoF is active, flame clouds will be removed when you step on them
(this makes sense because you are moving that flame into the _ring_ of
flames around you). Since the flame cloud will reappear when you move off
the square, the only real gameplay effect of this is that you no longer
have to worry about being left standing in a flame cloud when RoF ends,
which currently makes the spell very annoying to use (unless you are
keeping it up constantly with extension). In particular, after this change
you can autoexplore after using RoF in a fight without being interrupted by
being in a flame cloud when it ends.

* TSO no longer gives the "your shield is strengthened" message if you use
Divine Shield with RoF active and no shield (this was a silly bug).

--------------------------------------------------------------------------------
4335c4b070 | Adam Borowski | 2011-02-27 00:44:59 +0100

As Kiku's torment is no longer invoked by prayer, update piety messages.

--------------------------------------------------------------------------------
f5b261bd59 | Adam Borowski | 2011-02-27 00:28:16 +0100

Copy damage counters when a monster object is assigned to.

--------------------------------------------------------------------------------
f205c82e20 | Adam Borowski | 2011-02-27 00:26:24 +0100

Correctly handle (all?) cases when a monster suicides (spores, ...).

--------------------------------------------------------------------------------
6dfa234bfd | Adam Borowski | 2011-02-26 23:12:21 +0100

Count damage due to Agony.

--------------------------------------------------------------------------------
8f33260422 | Adam Borowski | 2011-02-26 22:44:08 +0100

If a tentacle goes through a hole out of LOS, is it still hentai?

--------------------------------------------------------------------------------
52c59fdc7a | Eino Keskitalo | 2011-02-26 14:58:03 +0200

Attribute three temple maps correctly (#3501)
A fun bit of detective work, using git blame, git log and git show. Nice 
commands.

--------------------------------------------------------------------------------
aea4d4b0a0 | Chris Campbell | 2011-02-26 05:34:25 +0000

Boost LRD damage
Even with shrapnel checking AC only twice, the damage was incredibly
underwhelming for a level 5 spell.

--------------------------------------------------------------------------------
8ed97e83ec | David Lawrence Ramsey | 2011-02-25 21:38:04 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ee1e90a520 | Chris Campbell | 2011-02-26 02:31:58 +0000

Make Death Channel spectrals temporary, let ally kills work too
Also reduce to level 7 - this may well still need tweaking to be viable
but it's a start, as permanent allies are problematic generally.

--------------------------------------------------------------------------------
fd6c2c91d3 | Chris Campbell | 2011-02-26 02:31:57 +0000

Give the staff of summoning warding, sometimes abjure summons on hit
The warding stacks with the amulet (and is still probably quite weak),
to abjure summons it must pass an evocations check as well as a
summonings check (the abjuration power is much lower than the spell's
will probably be).

--------------------------------------------------------------------------------
c998c90427 | Chris Campbell | 2011-02-26 02:31:57 +0000

Give the staff of death rN+

--------------------------------------------------------------------------------
53a637c5d1 | Chris Campbell | 2011-02-26 02:31:56 +0000

Boost staves of poison (again)
As they still require 14 evocations skill to be as good as a venom-
branded weapon, allow the staff of poison to affect monsters with
rPois (as the staff of Olgreb already does). Boost Olgreb's chance of
penetrating rPois a bit, too.

--------------------------------------------------------------------------------
4b188ad5f1 | Adam Borowski | 2011-02-26 02:02:42 +0100

Auto-id gourmand for non-Mu non-herb3 (Sp).
For most races, you can (spoilerishly) identify it on the first chunk you
come upon.  For carnivores, you'd have to eat/drink several of contaminated
corpses so it's less trivial, but still quite easy.

--------------------------------------------------------------------------------
9c781b321a | Adam Borowski | 2011-02-26 01:22:00 +0100

Fix an error message for banishment with actual transit.

--------------------------------------------------------------------------------
e11f20e5bc | Adam Borowski | 2011-02-26 01:14:32 +0100

Don't record banished monsters as "vanquished".

--------------------------------------------------------------------------------
2bb24a3ff7 | Adam Borowski | 2011-02-26 00:05:05 +0100

Fix "2 ancient champions" showing as "2 skeletal warriors".

--------------------------------------------------------------------------------
6ac3404aac | Adam Borowski | 2011-02-25 23:35:09 +0100

Reduce xp loss from draining, [over]compensating for the recent increase.
Since the chunk drained is a significant percentage of xp to level, it was
quite likely it hit a level boundary, the loss is no longer capped there.

This reduction is somewhat bigger than the effect of the above, though.

--------------------------------------------------------------------------------
7bba5a7761 | Adam Borowski | 2011-02-25 23:27:18 +0100

Fix a future (save 33) breakage.
Subsequent enums are forced to a specific value, so the number of names
before them needs to be constant.

This also means we don't have to care about preserving the removed enums,
as long as they can't appear in saves.

--------------------------------------------------------------------------------
044f27e441 | Johanna Ploog | 2011-02-25 22:56:35 +0100

Schedule DNGN_STATUE_RESERVED for removal on next major version change.
Only serves to make wizmode creating statues more tedious.

--------------------------------------------------------------------------------
a562b9223c | Johanna Ploog | 2011-02-25 22:24:51 +0100

Add Denzi's new statue tiles for both dngn features and statue form.
The latter still requires a nice humanoid-shaped statue tile; centaur
and naga statues are now displayed with their wielded weapon.

Also, I accidentally optimized the already existing statue tiles
(used *.png because I was sure I'd already done that when checking
them in the first time around). I don't think it's a big enough deal
for me to bother with checking them out again to override this change.

--------------------------------------------------------------------------------
78cbcc3540 | Raphael Langella | 2011-02-25 20:23:25 +0100

Make a splash when leaping from a wall into the water.

--------------------------------------------------------------------------------
49c7d7c909 | Raphael Langella | 2011-02-25 20:23:25 +0100

Improve clinging pathfinding.

--------------------------------------------------------------------------------
1990be2cce | Raphael Langella | 2011-02-25 20:23:25 +0100

Boost the range of pathfinding for wall clinging monsters.
This is a bit hackish but is needed to push the spiders on the walls in watery
levels.

--------------------------------------------------------------------------------
dea6e9b779 | Raphael Langella | 2011-02-25 20:23:25 +0100

Clinging monsters don't use same paths as others.

--------------------------------------------------------------------------------
599291e55d | Raphael Langella | 2011-02-25 20:23:25 +0100

Add missing parenthesis.

--------------------------------------------------------------------------------
1e74545ff9 | Raphael Langella | 2011-02-25 20:23:25 +0100

Spiders also use pathfinding to avoid shallow water.
That should force them on the walls in watery levels.

--------------------------------------------------------------------------------
74f0459140 | Raphael Langella | 2011-02-25 20:23:25 +0100

Add Denzi's logo for title screen as a standalone file.
So other contributers can easily use it for their title screen.

--------------------------------------------------------------------------------
7653a149f6 | Raphael Langella | 2011-02-25 20:23:25 +0100

Promote the use of the props hash to store new properties.

--------------------------------------------------------------------------------
2f68eb418e | Adam Borowski | 2011-02-25 19:00:53 +0100

Clear damage record when a monster heals to full.
Zombies never heal so the record sticks; a vampiric weapon or other means
of healing will clear it outright though.  That's probably acceptable.

--------------------------------------------------------------------------------
f5a6d2584f | Adam Borowski | 2011-02-25 18:14:49 +0100

When a dying monster has positive hp, assign that as damage taken.

--------------------------------------------------------------------------------
e39e1cfc2b | Adam Borowski | 2011-02-25 15:55:23 +0100

Assign xp proportional to the damage dealt.
This should fix the kill sniping abuse: having summons beat a monster to
near death, then jumping in to get the death blow.  Also, the rare but
annoying case of monsters dying to friendly fire when you did most of
the work is handled as well.

--------------------------------------------------------------------------------
3c44abb109 | Adam Borowski | 2011-02-25 15:15:59 +0100

Replace an orcish idol with a statue. (minmay)

--------------------------------------------------------------------------------
3abb74966c | Adam Borowski | 2011-02-25 15:15:58 +0100

Drop _I from BOOK_MINOR_MAGIC_I, as other variants are gone.

--------------------------------------------------------------------------------
bd77c08481 | Adam Borowski | 2011-02-25 15:15:58 +0100

Some typos.

--------------------------------------------------------------------------------
a4d6076d4d | Adam Borowski | 2011-02-25 15:15:58 +0100

Run checkwhite.

--------------------------------------------------------------------------------
0bd146626e | Vsevolod Kozlov | 2011-02-25 14:29:19 +0300

Remove the 'dummy' tag from the dummy lair entry vault.
It's not dummy in the sense that the 'dummy' tag gives it.

With the 'dummy' tag, every time the builder would pick this vault, it would
instead use _place_specific_feature to place the branch entrance, making it
possible for them to appear inside vaults.

Instead of forbidding _place_specific_feature from placing features in vaults,
keep it for last resort situations and only use it when placing a vault fails.

This should fix #3498 for cases where it can be considered a bug.

--------------------------------------------------------------------------------
771c497a6f | Eino Keskitalo | 2011-02-25 11:26:03 +0200

Update my e-mail address for CIA.

--------------------------------------------------------------------------------
80f230aa4b | Eino Keskitalo | 2011-02-25 11:20:58 +0200

One more tweak.

--------------------------------------------------------------------------------
9080b54eb2 | Eino Keskitalo | 2011-02-25 11:16:33 +0200

More changes reflecting the SF->gitorious move.
The bit about e-mail may be a little confused, but I'm not sure what would be 
the best advice about which e-mail address to use, so I left the sourceforge 
address in.

--------------------------------------------------------------------------------
cd1466f454 | Eino Keskitalo | 2011-02-25 11:01:12 +0200

Fix a typo. (TGW)

--------------------------------------------------------------------------------
4334eddd29 | Adam Borowski | 2011-02-25 00:23:30 +0100

Remove an unneeded #ifdefing.
canned_msg values are never stored -- in fact, not only in saves but even
in variables.  Every single call is passed a constant...

--------------------------------------------------------------------------------
9618260a5b | David Lawrence Ramsey | 2011-02-24 16:54:28 -0600

Add "There's nothing close enough!" to the canned message list.

--------------------------------------------------------------------------------
b58d3ec742 | David Lawrence Ramsey | 2011-02-24 16:49:42 -0600

Make the burn_freeze() failure message match vampiric_drain().

--------------------------------------------------------------------------------
429231a7e3 | David Lawrence Ramsey | 2011-02-24 16:46:51 -0600

Add comment.

--------------------------------------------------------------------------------
025e1da9ab | David Lawrence Ramsey | 2011-02-24 16:43:24 -0600

Clean up smiting code to match the interface elsewhere.
It now uses a monster directly instead of a position.

Also, move messages about invisible/submerged monsters' not being there
(used in smiting and elsewhere) to the canned message list.

--------------------------------------------------------------------------------
09a8b85493 | David Lawrence Ramsey | 2011-02-24 14:37:54 -0600

Comment fixes.

--------------------------------------------------------------------------------
3a5141c53f | David Lawrence Ramsey | 2011-02-24 13:58:37 -0600

Remove unreachable (and erroneously duplicated) code.

--------------------------------------------------------------------------------
cd47c9570f | David Lawrence Ramsey | 2011-02-24 13:57:48 -0600

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
fcc472514f | David Lawrence Ramsey | 2011-02-24 13:25:14 -0600

Properly use BASELINE_DELAY for enchantments in Zin recite effects.

--------------------------------------------------------------------------------
d3ce8f4c21 | David Lawrence Ramsey | 2011-02-24 13:14:49 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d40bec1bfe | Raphael Langella | 2011-02-24 19:36:31 +0100

Only intelligent monsters path around shallow water.

--------------------------------------------------------------------------------
526d3d6a62 | Raphael Langella | 2011-02-24 19:22:04 +0100

Removes a redundant check.
Fire elemmental are checked again further, and the one chance in 5 is
obsolete now that monsters have a real movement penalty in shallow water
and properly path around it.

--------------------------------------------------------------------------------
787dc3fefd | Raphael Langella | 2011-02-24 19:21:04 +0100

Monsters use pathfinding to go around shallow water.

--------------------------------------------------------------------------------
5cd8323801 | Raphael Langella | 2011-02-24 19:21:03 +0100

Prevent getting the loot of the ancient champions vault with control teleport.

--------------------------------------------------------------------------------
7ead031c66 | Raphael Langella | 2011-02-24 19:21:03 +0100

Apply the same limitation as the player to monsters for casting Leda's.

--------------------------------------------------------------------------------
d90935ef6c | Raphael Langella | 2011-02-24 19:21:03 +0100

Cancel Leda's is player isn't standing on solid ground.
Also, fix shallow water being treated as solid ground.

--------------------------------------------------------------------------------
61fa7851b5 | Raphael Langella | 2011-02-24 19:21:03 +0100

Allow wall clinging when on liquefied ground.
Preventing it isn't very interseting, and allowing it makes the code much 
simpler.

--------------------------------------------------------------------------------
b67fc5b31c | David Ploog | 2011-02-24 18:44:09 +0100

Explain the distinction between no_tele_into and no_rtele_into.

--------------------------------------------------------------------------------
3d678226e8 | David Ploog | 2011-02-24 18:40:04 +0100

Replace some more no_rtele_into by no_tele_into (galehar).

--------------------------------------------------------------------------------
09b08a20a1 | Adam Borowski | 2011-02-24 17:27:27 +0100

Recompress title images.
These get shipped in binary packages, so their size matters a lot, unlike
source images for tile sheets.  I did only those with a significant
difference, even though the rest could be beneficial too.  There are
hundreds as many downloads of packages (who gain) than from git (who loses).

The best scheme for recompression I know so far is:
optipng -o4 -i0 -fix image.png
advpng -z -4 image.png

OptiPNG levels higher than 4 don't improve anything but zlib compression
which is then thrown away anyway; -i0 turns off interlacing which scares
away advpng, decreases compression and gives us nothing; -fix allows it
ignore junk in the file which some of programs used by our artists leave.
AdvPNG attacks just one final stage but does it well; order matters as
optipng has to go first.

--------------------------------------------------------------------------------
e640620e3b | Adam Borowski | 2011-02-24 17:21:43 +0100

An update to Denzi's "kitchen duty" title screen.

--------------------------------------------------------------------------------
3ae055c0ef | Adam Borowski | 2011-02-24 16:20:11 +0100

Don't show blocked claws on Wp: (xyblor)

--------------------------------------------------------------------------------
ad67c2922a | Adam Borowski | 2011-02-24 16:07:52 +0100

Make the status light for exhaustion "Exh" rather than "Fatig".  (Napkin)

--------------------------------------------------------------------------------
714192de90 | Adam Borowski | 2011-02-24 15:19:35 +0100

Cats are not pandas, no kung-fu.
A monk's fighting style strongly relies on a humanoid body's properties,
both for karate-like and judo-style variants.  The former relies on putting
the whole body's strength into blows (even for hand techniques, a good part
of power comes from legs and hips, unlike boxing where legs are used solely
for movement).  I don't know about the latter, but throws are even more
unfeline.

A cat fights by reaching out with its teeth or claws, similar to weapon
combat.  Thus, out of the three redundant backgrounds, Fi seems far more
thematic than Mo.

I've set FeFi's UC to 4, since they're supposed to be strongest among melee
backgrounds.  The full list of skills for those is:

Fi: Fi 3, UC 2, Dod 3.8
Gl: Fi 2, UC 5, Dod 2.6
Mo: Fi 3, UC 4, Dod 3.8, St 2.6
As: Fi 2, UC 2, Dod 1.8, St 3.8, Stab 3

Be: Fi 3, UC 3, Dod 5
CK: Fi 4, UC 2, Dod 3.8
DK: Fi 2, UC 2, Dod 2.6, Invo 2.6
Pr: Fi 2, UC 3, Dod 1.8, Invo 4.4
Cr: Fi 2, UC 2, Dod 2.6, Spc 2, Hex 3, Chrm 2.6
Wr: Fi 1, UC 3, Dod 3.8, Spc 2, Tloc 3.8
Tm: Fi 1, UC 3, Dod 2.6, Spc 2, Tmut 2.25
St: Fi 1, UC 1, Dod 2.6, St 2.6, Stab 3, Spc 1, Tmut 2.25

I did not alter the other of elliptic's contentious changes, removing As.
Using stealth can matter a lot for a species with great both aptitude and
racial bonuses, yet stalkers are probably enough.  This goes against our
rule of never disallowing backgrounds unless outright impossible, though.

All the other changes (the massive overhaul of recommendations) are fine
as they are informative rather than restrictive.

--------------------------------------------------------------------------------
92d5e8278d | Adam Borowski | 2011-02-24 15:14:13 +0100

Include the source in direct damage cloud obituaries.

--------------------------------------------------------------------------------
db9d7ca1f7 | Adam Borowski | 2011-02-24 14:57:53 +0100

Fix "a dark miasma" and two other mass nouns.

--------------------------------------------------------------------------------
ac0d171e78 | Adam Borowski | 2011-02-24 14:57:43 +0100

Include the sources in obituaries due to poisoning by clouds.

--------------------------------------------------------------------------------
e46bb743cd | Adam Borowski | 2011-02-24 13:22:54 +0100

Use necro skill for Kiku's invocations.
There's usually no need to use Receive Corpses often until Pan, so the only
ways to get Invo 27 for high-end corpses were extreme victory dancing or
using another god.

For this reason I didn't make Torment require skill before, it does so now.

--------------------------------------------------------------------------------
3a96062bda | Raphael Langella | 2011-02-24 13:19:06 +0100

Fix a clinging message.
Don't say that going through shallow water is going to be slow if we are
going to cling to the wall.

--------------------------------------------------------------------------------
004b613fed | Raphael Langella | 2011-02-24 13:19:06 +0100

Move the clinging boolean to the props hash.

--------------------------------------------------------------------------------
f1f5126f11 | Raphael Langella | 2011-02-24 13:19:06 +0100

Move the props hash table from the player and monster classes to actor.

--------------------------------------------------------------------------------
3b85171d24 | Raphael Langella | 2011-02-24 13:19:06 +0100

Fix out of LOS clinging message.
And bad grammar. #3493.

--------------------------------------------------------------------------------
7a0ed7aab9 | Adam Borowski | 2011-02-24 11:58:19 +0100

Make Kikubaaqudgha's corpse torment an ability.

--------------------------------------------------------------------------------
0fecdd1629 | Chris Campbell | 2011-02-24 04:25:07 +0000

Reduce Lair:8 loot
Cut back on the Lair:8 loot a good bit - most endings got either less
items or lower quality items (not loads of acquirement-quality stuff!),
a couple had some loot added to even them out a bit.

--------------------------------------------------------------------------------
f80d95fbec | Raphael Langella | 2011-02-24 00:55:59 +0100

Monsters move slowly in shallow water.
Unify the code with Leda's. All monsters floundering will have slow
movement and fumble attacks. Unaffected monsters are:
* Statues.
* Levitating monsters.
* Clinging monsters.
* For shallow water: large and amphibious monsters

--------------------------------------------------------------------------------
7d6f658309 | Raphael Langella | 2011-02-24 00:55:22 +0100

Don't liquefy water.

--------------------------------------------------------------------------------
470680b6af | Raphael Langella | 2011-02-23 23:16:21 +0100

Fix scroll of fear being identified when read with plants in LOS.

--------------------------------------------------------------------------------
622af3e656 | Raphael Langella | 2011-02-23 23:08:31 +0100

Add paralysis and draining to the list of high tier wands.
Paralysis get downgraded to slow and draining to polymorph other.

--------------------------------------------------------------------------------
f21d967780 | Raphael Langella | 2011-02-23 23:08:31 +0100

Don't give high tier wands to Ijyb in sprint.

--------------------------------------------------------------------------------
d036ced358 | Raphael Langella | 2011-02-23 23:08:31 +0100

Force screen redraw after wizard commands in examine mode.

--------------------------------------------------------------------------------
995edf2214 | Johanna Ploog | 2011-02-23 21:50:32 +0100

Nuke a item-stacking special case now that mummy decay is gone.
There is no other case of potions decaying (but keeping their colour),
right?

--------------------------------------------------------------------------------
51fe31ea0c | Johanna Ploog | 2011-02-23 21:50:30 +0100

Fixes crashes during labyrinth shifts.
No calling monster functions if mon is not defined!

--------------------------------------------------------------------------------
a887a8f038 | Chris Campbell | 2011-02-23 19:30:33 +0000

Don't allow immediate recasting of Death's Door
Expiry exhausts the player for 1d3 turns, and it cannot be recast while
exhausted. It can still be cancelled with Borgnjor's Revivification
(but this paralyses and confuses the player already).

--------------------------------------------------------------------------------
9654b67faf | Chris Campbell | 2011-02-23 19:30:32 +0000

Don't waste a turn/MP when failing to cast Sublimation of Blood

--------------------------------------------------------------------------------
ea0c9cee83 | Chris Campbell | 2011-02-23 19:30:32 +0000

Swap Wiglaf for Rupert in the Vaults ambush (david_vaults_3)

--------------------------------------------------------------------------------
2dd22a7c8c | Johanna Ploog | 2011-02-23 20:21:40 +0100

Fix db search footer line not appearing for monster descriptions.

--------------------------------------------------------------------------------
f2292a5555 | Johanna Ploog | 2011-02-23 20:21:38 +0100

Fix necessity of double keypress in database search.
The quote toggle demanded a keypress, and the database search another
one. Fixed except for exact matches where we still need to check for
Space.

--------------------------------------------------------------------------------
29219f319f | Johanna Ploog | 2011-02-23 20:21:36 +0100

Give an indication of returning to the main screen from the db search.
Actually print the "Okay, then" error message when a typo takes you
away from the database prompt.

It's possible this is only an issue with Tiles builds, in which case
the statement should be #ifdef'ed.

--------------------------------------------------------------------------------
3e33dd52fb | Johanna Ploog | 2011-02-23 20:21:32 +0100

Also fix crashes when searching the database for tentacles.

--------------------------------------------------------------------------------
c8b2faea7f | Johanna Ploog | 2011-02-23 20:21:30 +0100

Fix #3313: Zombie tiles in the database search causing crashes.
In the database search, zombified monsters are now getting the fixes
basetypes of goblin and hill giant, respectively.

Also skip tentacle segments, so searching for '*' works properly.
The tiles code expects them to be connected, which they cannot be.
As they're not standalone monsters anyway, I don't think they need
to be included.

Searching for "tentacle" still crashes.

--------------------------------------------------------------------------------
1e0e9fcb4e | David Ploog | 2011-02-23 19:25:53 +0100

More abyss vaults (evilmike).
Among them a number of elaborate rune vaults.

--------------------------------------------------------------------------------
fea6acadd9 | David Ploog | 2011-02-23 18:26:03 +0100

Fix to st_orc_rangers (by st).

--------------------------------------------------------------------------------
f4105e0177 | Adam Borowski | 2011-02-23 15:58:15 +0100

Reorder prayer messages: show piety/penance after everything else.

--------------------------------------------------------------------------------
68eddacafc | Adam Borowski | 2011-02-23 15:55:47 +0100

Move Fedhas' decomposition to 'p'.

--------------------------------------------------------------------------------
ab329a3bdc | Adam Borowski | 2011-02-23 15:25:05 +0100

Get rid of silly hacks with crediting poison kills.
This also lets hurt() know the oppressor, and thus apply effects.

--------------------------------------------------------------------------------
8e05614889 | Adam Borowski | 2011-02-23 15:09:56 +0100

Save mon_ench source when saving games.

--------------------------------------------------------------------------------
d6fcea90f9 | Adam Borowski | 2011-02-23 15:09:56 +0100

Track the source of monster enchantments.
This fixes Injury Mirror not working for delayed damage, kills done
by undead/demon allies not counting as such, damage tracking not handling
ench damage, etc.

--------------------------------------------------------------------------------
3c38b99e2e | Adam Borowski | 2011-02-23 15:09:55 +0100

Mention recent screen resizes in crash dumps.

--------------------------------------------------------------------------------
51e32761ad | Jude Brown | 2011-02-23 21:30:55 +1000

Don't give Grinder a high-tier wand.

--------------------------------------------------------------------------------
71eabdf41c | Chris Campbell | 2011-02-23 01:53:18 +0000

Remove wizardry effect from Archmagi, boost Tmut/Tloc spells
Transmutation and pure Translocation spells previously weren't enhanced
for some reason.

--------------------------------------------------------------------------------
79c7b61e6b | Chris Campbell | 2011-02-23 01:53:17 +0000

Change the oklob temple entry to a sapling
Still nasty, but a little less so.

--------------------------------------------------------------------------------
d7c562cf5b | Chris Campbell | 2011-02-23 01:53:17 +0000

Change temple_entry_steam to mist
The steam blocks autotravel to the temple and creates lots of
unecessary exclusions.

--------------------------------------------------------------------------------
9c60a1f5a1 | David Ploog | 2011-02-23 02:28:40 +0100

New V:8 maps, themed around shops.
There is a very small chance that you get four mall-type quadrants (gold and 
shops).

--------------------------------------------------------------------------------
aace177778 | David Ploog | 2011-02-23 02:28:40 +0100

Fix comment.

--------------------------------------------------------------------------------
57dcac5a28 | David Ploog | 2011-02-23 02:28:40 +0100

Reorder quadrants in vaults.des.
Dedicated sections for ordinary and prize quadrants.

--------------------------------------------------------------------------------
8a4cab6b0d | David Ploog | 2011-02-23 02:28:40 +0100

Massive set of 21 Vault:8 quadrants by minmay!

--------------------------------------------------------------------------------
4ac34420af | Raphael Langella | 2011-02-23 00:34:10 +0100

Implement proper pathfinding for clinging spiders.

--------------------------------------------------------------------------------
f664a849fe | Raphael Langella | 2011-02-23 00:16:35 +0100

Fix wielding the lantern of shadow by clicking ont it.

--------------------------------------------------------------------------------
b543634072 | Raphael Langella | 2011-02-22 23:55:54 +0100

Remove a duplicate check.

--------------------------------------------------------------------------------
4ba96aa8d7 | Raphael Langella | 2011-02-22 23:55:54 +0100

Fix clinging monsters floundering.

--------------------------------------------------------------------------------
9e434b0a9f | Raphael Langella | 2011-02-22 23:55:54 +0100

Move the clinging code from coord_def to terrain.cc

--------------------------------------------------------------------------------
8f0f153b83 | Adam Borowski | 2011-02-22 22:53:26 +0100

Relax the check in find_okay_unrandart() to accept same skill rather than exact 
type.
This should undo the damage caused by turning a number of unrands into things
that never spawn or spawn exceedingly rarely because "their base type sucked".
Normal randarts and armour are not affected.

This also equalizes the rarities of all unrands within the given skill.

--------------------------------------------------------------------------------
5aab95944f | Adam Borowski | 2011-02-22 22:53:26 +0100

Remove a redundant check for blessed weapons.
It is one of things that prevent the new sword of Jihad from spawning,
although that's still not enough, as find_okay_unrandart() is never asked
to provide an eudemon blade.

Acquire weights are not used as there's a _fourth_ check, but I set them to 0
anyway.

--------------------------------------------------------------------------------
bb2fec09f9 | Adam Borowski | 2011-02-22 22:53:26 +0100

Kiku is ok with weapons of pain, allow to use her name in randarts.
She, like most gods, doesn't hand out (non-spellbook) gifts, so this matters
only for random names.

--------------------------------------------------------------------------------
ec0b8329fe | Johanna Ploog | 2011-02-22 22:21:20 +0100

For Windows Tiles builds, also print asserts to STDERR.
Print assert messages both to the message box (if applicable) and
STDERR, so the message also shows up in the shell.

--------------------------------------------------------------------------------
e92ae00e17 | Adam Borowski | 2011-02-22 17:57:35 +0100

Bat species showcase.  Don't tell me you didn't see this coming.

--------------------------------------------------------------------------------
70e0e609b9 | Adam Borowski | 2011-02-22 17:35:35 +0100

Give vampire bats vampiric bites rather than draining hits.
Shouldn't regular bats bite too?

--------------------------------------------------------------------------------
e2f5b7dfc1 | Adam Borowski | 2011-02-22 16:59:46 +0100

Plain bats, for redefining and for player form.
Chunks are currently not affected by redefinitions.  I considered making
n_spe affect them, however, deep elves create "chunk of elf flesh", we
don't want "black sheep" to produce "black sheep" chunks, and so on.
Thus, for consistency, let's have fancy bats produce "bat" flesh.

For players, the bat form is referred to as "bat" not "megabat", and thus
people don't expect they have to write the latter when redefining.  This
is used for non-vampires (Xom, Metamorphosis, Flight), of these, only the
last card is a common occurence.

--------------------------------------------------------------------------------
3fe356921f | Adam Borowski | 2011-02-22 16:47:25 +0100

Monster flag n_zom to allow redefining zombies.

--------------------------------------------------------------------------------
250275da08 | Chris Campbell | 2011-02-22 15:35:20 +0000

Fix Elven Halls description

--------------------------------------------------------------------------------
4b354dc17b | Chris Campbell | 2011-02-22 15:19:17 +0000

Mention glow in Haste/Invis spell descriptions

--------------------------------------------------------------------------------
6df93a71c7 | Chris Campbell | 2011-02-22 15:07:05 +0000

Don't open hells on the orb run

--------------------------------------------------------------------------------
5569c51177 | Raphael Langella | 2011-02-22 13:28:19 +0100

Fix a crash when clicking on a monster unarmed.

--------------------------------------------------------------------------------
1eef3a1eef | Raphael Langella | 2011-02-22 13:17:39 +0100

Fix book of conjurations name breaking vaults.

--------------------------------------------------------------------------------
253ec0838f | Adam Borowski | 2011-02-22 11:30:00 +0100

Fix infinite Zin feeding.
With slow enough metabolism (spriggan, ring of sustenance, or slowmeta 3),
passive piety for waiting rose faster than the cost of feeding.  In the past,
this was countered by gift_timeout, but it was left out by a mistake.

--------------------------------------------------------------------------------
f8be5ed5a1 | Chris Campbell | 2011-02-22 01:13:23 +0000

Rework combo recommendations (elliptic)
Thanks to elliptic's help, completely redid the species/background
recommendations from scratch. Tended towards not recommending something
when unsure. Humans remain recommended for most backgrounds, and
Wanderers and Chaos Knights of Xom are recommended for no species.

This includes banning FeFi, FeGl (redundant with FeMo) and FeAs (banned
for the same reason as FeAr already is - the background relies entirely
on items that cannot be used by Felids).

Also redid the book recommendations for Conjurers, with a book only not
being recommended if the species has a significant difference between
Fire/Earth and Ice/Air apts.

--------------------------------------------------------------------------------
2e34eaf687 | Raphael Langella | 2011-02-22 00:14:54 +0100

Clinging refactor.
Moved several functions to the coord_def class (to use them in pathfinding).
Also fix some bugs and simplify some code.

--------------------------------------------------------------------------------
ce229f1793 | Raphael Langella | 2011-02-22 00:14:54 +0100

Add a time delta when the show_real_turns option is active.
The time delta shows the duration in game turns of the last player action
(player in the sense of the person behind the keyboard). It can be the duration
of the last character action (step, attack,...) or a longer action like
autoexploring or travelling. Macros are treated as individual actions, so only
the duration of the last one is displayed. On the other hand, repeat actions
(with Ins) are treated as a single one and the total duration is displayed.

Thanks to humeral for the patch.

--------------------------------------------------------------------------------
b32c3b2f0e | Raphael Langella | 2011-02-22 00:14:54 +0100

Reverse the monster pathfinding direction.
Instead of searching from target to monster position, we do it straigth. Makes
implementing clinging pathfinding much easier and reliable.

--------------------------------------------------------------------------------
83166bf05d | Johanna Ploog | 2011-02-21 23:09:52 +0100

Revert "Use rusty sewer tile when a sewer times out."
Apparently, the difference between the normal and the rusty drain is
too subtle. Also, the "stone arch" is causing confusion. Easiest to
just revert the change.

This reverts commit 03c708493e382a971cf9c7bc48b1f46a042b0b06.

--------------------------------------------------------------------------------
87218e4b81 | Johanna Ploog | 2011-02-21 22:03:19 +0100

Add corner overlays for eldritch tentacles.

--------------------------------------------------------------------------------
7b4d7bb11a | Johanna Ploog | 2011-02-21 22:03:15 +0100

Add eldritch tentacle tiles clawing right out of the portal.

--------------------------------------------------------------------------------
eaee43c603 | David Lawrence Ramsey | 2011-02-21 14:06:05 -0600

Add spacing fix.

--------------------------------------------------------------------------------
5327dcdd83 | Adam Borowski | 2011-02-21 15:17:46 +0100

Properly clear some uninitialized variables.

--------------------------------------------------------------------------------
debb6ad309 | Jude Brown | 2011-02-21 19:11:26 +1000

Tukima's Dance Party -> Tukima's Ball.
"Dance Party" has a variety of modern connotations. While both Dance and
Party are extremely old words, putting them together summons images of
techno music and flashing lights.

Other options included "Gala" and "Ballet" -- I liked the latter myself,
but "Ball" is much more succinct and clear. "Gala", while also as
"Old"-feeling as Ball, has other connotations beyond simply dance.

--------------------------------------------------------------------------------
df1c42ab83 | Adam Borowski | 2011-02-20 17:05:50 +0100

Update Okawaru's description.

--------------------------------------------------------------------------------
42b1a91185 | Adam Borowski | 2011-02-20 11:49:33 +0100

Denzi's Terpichore tile

--------------------------------------------------------------------------------
93c1fba05d | Raphael Langella | 2011-02-20 09:22:22 +0100

Fix water walking Beoghite tile being drawn in water.

--------------------------------------------------------------------------------
d19f4478b8 | Raphael Langella | 2011-02-20 09:07:41 +0100

Some documentation update regarding change of repository.

--------------------------------------------------------------------------------
13d79a5e24 | Chris Campbell | 2011-02-20 03:38:36 +0000

Add weapon recommendations for Unarmed and Staves
Unarmed isn't recommended for DE, HE.
Staves aren't recommended for Ha, Mf, Sp, Tr, Vp.

--------------------------------------------------------------------------------
67c0865f63 | Chris Campbell | 2011-02-20 03:38:36 +0000

Don't let OgMo pick an ankus

--------------------------------------------------------------------------------
645b3405cd | Adam Borowski | 2011-02-20 02:07:15 +0100

Add Denzi's air elemental tile.

--------------------------------------------------------------------------------
9b4f1b7bc3 | Adam Borowski | 2011-02-20 01:48:26 +0100

Don't let the angels out of early Zig portals, too.
Deep ones don't have such protection, of course.

--------------------------------------------------------------------------------
1197797286 | Adam Borowski | 2011-02-20 01:45:32 +0100

Don't let early angels teleport out.

--------------------------------------------------------------------------------
ca86249eed | Adam Borowski | 2011-02-20 00:59:25 +0100

Add some missing no_rtele_into to spots in a number of altar vaults.

--------------------------------------------------------------------------------
9e8621d460 | Raphael Langella | 2011-02-20 00:21:47 +0100

Add quarterstaff as an option for monks.

--------------------------------------------------------------------------------
4dcdf870d6 | Johanna Ploog | 2011-02-19 23:58:54 +0100

Tweak the spellcasting tutorial, as per galehar's suggestions.

--------------------------------------------------------------------------------
aac74fd3b4 | Johanna Ploog | 2011-02-19 23:58:51 +0100

Fix tiles compilation.

--------------------------------------------------------------------------------
577aba873b | Chris Campbell | 2011-02-19 22:25:12 +0000

Always start Wz with magic dart memorised

--------------------------------------------------------------------------------
10d056910b | Chris Campbell | 2011-02-19 22:24:58 +0000

Remove unused options from init.txt

--------------------------------------------------------------------------------
1cc687962f | Chris Campbell | 2011-02-19 22:21:06 +0000

Remove Reavers at the next major save version

--------------------------------------------------------------------------------
9f5e1ebbc7 | Chris Campbell | 2011-02-19 22:21:03 +0000

Conjure Flame instead of Throw Flame for book of Minor Magic

--------------------------------------------------------------------------------
b2fe2adde7 | Chris Campbell | 2011-02-19 22:21:01 +0000

Reduce Slow to level 2

--------------------------------------------------------------------------------
6b4fb9138b | Chris Campbell | 2011-02-19 22:20:59 +0000

Reduce Passage of Golubria to level 4

--------------------------------------------------------------------------------
09dac4da8a | Chris Campbell | 2011-02-19 22:20:56 +0000

Give Cj[ice] Lightning Bolt instead of Freezing Cloud

--------------------------------------------------------------------------------
1c3772e603 | Chris Campbell | 2011-02-19 22:20:51 +0000

Consolidate the books of Minor Magic into a single book
Wizards always start with this new book of Minor Magic, containing:
Magic Dart, Throw Flame, Blink, Call Imp, Repel Missiles, Slow, Mephitic
Cloud.

--------------------------------------------------------------------------------
a057bea396 | Chris Campbell | 2011-02-19 22:12:28 +0000

Give Stalkers a bit more Tmut skill
And don't identify potions of poison (they'll find out with Distillation
anyway)

--------------------------------------------------------------------------------
53592cd52e | Johanna Ploog | 2011-02-19 16:55:33 +0100

Rename dc-mon/kraken directory to dc-mon/tentacles.

--------------------------------------------------------------------------------
422bc215a3 | Johanna Ploog | 2011-02-19 16:55:30 +0100

Add psyshvl's eldritch tentacle tiles, or at least the first batch.
A few are still missing. Will need to fire up GIMP to create them.

--------------------------------------------------------------------------------
9836a07975 | David Ploog | 2011-02-19 16:39:30 +0100

Typo fix.

--------------------------------------------------------------------------------
41807f2e50 | Johanna Ploog | 2011-02-19 13:17:37 +0100

Also update the patch guide.

--------------------------------------------------------------------------------
4d6b3f6580 | Johanna Ploog | 2011-02-19 13:10:31 +0100

Update git/quickstart.txt SF -> gitorious.
Could someone please check this?

I'm not entirely certain the url is the same for developers and
everyone else and that the new example output is correct in all
cases.

--------------------------------------------------------------------------------
9c88bc7e83 | Johanna Ploog | 2011-02-19 12:28:33 +0100

Tweak a couple of background specific default doll tile sets.
Reintroduce the old DK equipment set, differentiate CK and AK,
and modify Hu to look more like a hunter.

--------------------------------------------------------------------------------
c7e7ef025b | Raphael Langella | 2011-02-19 11:11:46 +0100

Casting at monsters with the mouse: use proper spell validation function.

--------------------------------------------------------------------------------
a75e069212 | Raphael Langella | 2011-02-19 11:09:12 +0100

CREDITS: Added myself as a member of the Stone Soup Dev Team.

--------------------------------------------------------------------------------
fd5205acb2 | Raphael Langella | 2011-02-19 11:05:08 +0100

Whitespace fix.

--------------------------------------------------------------------------------
c2ea1241c9 | Darshan Shaligram | 2011-02-19 13:22:17 +0530

Update credits (monqy, elliptic, RjY).

--------------------------------------------------------------------------------
0637a36c57 | Darshan Shaligram | 2011-02-19 13:19:59 +0530

Use Unicode-aware sort for credits.

--------------------------------------------------------------------------------
919cbff627 | William Parker | 2011-02-19 15:25:56 +1000

Silence _eat_check properly, fix assertion failure This assumes that the code 
is sane enough not to do noisy eating checks after the turn ends.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
e665042ee2 | Steven Noonan | 2011-02-18 20:23:35 -0800

gitmodules: point to gitorious rather than SourceForge
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bb7e10c738 | David Lawrence Ramsey | 2011-02-18 21:12:23 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ce02ba549a | Chris Campbell | 2011-02-19 01:46:59 +0000

Swap XP/Place with Gold/Turns on the main screen

--------------------------------------------------------------------------------
3161c6e2d3 | William Parker | 2011-02-19 10:14:33 +1000

Remove attempts to place uniques on D:1
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
6dff20700f | elliptic | 2011-02-19 10:14:32 +1000

Fix a bug with Hibernation.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
cf63e20e35 | Raphael Langella | 2011-02-19 00:09:10 +0100

Tiles: casting with ctrl+click defaults to last spell if appropriate.

--------------------------------------------------------------------------------
c181563f6b | Raphael Langella | 2011-02-18 23:47:13 +0100

Tiles: fix the need to click an enemy twice to fire or cast at it.

--------------------------------------------------------------------------------
14f3e8d178 | Raphael Langella | 2011-02-18 23:43:12 +0100

Tiles: clicking an enemy while wielding a ranged weapon fire at it.

--------------------------------------------------------------------------------
dcb5134119 | Raphael Langella | 2011-02-18 23:26:56 +0100

Skill menu: fix help overlapping skills in debug tutorial/hints.

--------------------------------------------------------------------------------
89237cb59d | Chris Campbell | 2011-02-18 22:25:28 +0000

Display XL near the pool instead of at the top of the main screen

--------------------------------------------------------------------------------
530e47ba2b | Arxale | 2011-02-18 22:25:28 +0000

Display piety in main screen

--------------------------------------------------------------------------------
ab95a7a8ed | Adam Borowski | 2011-02-18 22:44:46 +0100

Fix a warning.

--------------------------------------------------------------------------------
72ad04a342 | Adam Borowski | 2011-02-18 22:41:57 +0100

Fix doubled OBJ_WEAPONS, enable OBJ_WANDS for "acquire any".  Handle kitties.
Since this is a form of acquirement, they're not supposed to get something
they can't acquire.

--------------------------------------------------------------------------------
b48f8ba718 | Adam Borowski | 2011-02-18 22:37:53 +0100

Explicitely declare the weights for '|'.  They are likely not intentional!
I'm preserving the old behaviour, let's discuss.

--------------------------------------------------------------------------------
e928bc5f2e | Johanna Ploog | 2011-02-18 22:21:16 +0100

Greatly improve the spellcasting tutorial.
* Replace Summon Small Mammals with Animate Skeleton, which is more
  flavourful and allows us to show off the cool skeleton tiles. :)

* Clarify the message on how to forget spells.

* Add a trigger if memorising a spell fails.

* Add a few strategic pointers on resting and meatshields.

* Tweak a few messages to point out important details such as z?
  and the level cap on spells you can memorise.

--------------------------------------------------------------------------------
6c21aff1e0 | Chris Campbell | 2011-02-18 19:41:50 +0000

Fix manual entries for AK, DK for consistency

--------------------------------------------------------------------------------
b82cb9f250 | Chris Campbell | 2011-02-18 19:25:29 +0000

Manual fix for Gladiators

--------------------------------------------------------------------------------
91a64d3ec8 | Chris Campbell | 2011-02-18 19:25:28 +0000

Give DD a couple more charges in their starting wand but no potions

--------------------------------------------------------------------------------
272776b8f1 | Chris Campbell | 2011-02-18 19:25:27 +0000

Allow starting with a Falchion or Trident for Fi and Gl only
Other classes which choose weapons don't get them (Merfolk can cope just
fine without a free weapon upgrade).

--------------------------------------------------------------------------------
aa6f387811 | Chris Campbell | 2011-02-18 19:25:27 +0000

Give DK and AK tiles (just a copy of CK for now)

--------------------------------------------------------------------------------
1d83d27b2f | Chris Campbell | 2011-02-18 19:25:26 +0000

Remove CK[Makh], Pr[Yred]->Death Knight, CK[Lugonu]->Abyssal Knight
In summary:
Chaos Knights worship Xom.
Priests worship Zin (and Hill Orcs can select Beogh).
Death Knights worship Yredelemnul.
Abyssal Knights worship Lugonu.
(Unchanged: Berserkers worship Trog, Healers worship Elyvilon).

--------------------------------------------------------------------------------
07ae994418 | Johanna Ploog | 2011-02-18 18:47:07 +0100

As an intermediary step, make eldritch tentacles use kraken tiles.

--------------------------------------------------------------------------------
c6a0f68d7a | Johanna Ploog | 2011-02-18 18:47:05 +0100

Rename kraken tentacle tile directories.
Necessary for distinction against eldritch tentacles.

--------------------------------------------------------------------------------
657d8beadb | elliptic | 2011-02-18 06:27:28 +0000

Trove price changes.

--------------------------------------------------------------------------------
9d8a9bff0b | Chris Campbell | 2011-02-18 06:27:19 +0000

Remove paladins at the next major save version

--------------------------------------------------------------------------------
fe0f9defb0 | Chris Campbell | 2011-02-18 05:47:46 +0000

Do allow Mummies to cast Sublimation, just not on themselves
Still to do: When Mummies, Liches and thirsty Vampires try to cast
Sublimation on themselves, it fails but still costs a turn and MP.

--------------------------------------------------------------------------------
beeee4ed2f | Chris Campbell | 2011-02-18 05:33:18 +0000

Don't reduce Sif penance for miscasts

--------------------------------------------------------------------------------
e389e1b59d | Chris Campbell | 2011-02-18 05:32:57 +0000

Boost Mummy base MR
Instead of the default 3 per level they get 5 per level (same as Naga).

--------------------------------------------------------------------------------
4cb67e3270 | Chris Campbell | 2011-02-18 05:32:29 +0000

Don't let Mummies cast Sublimation, do let them cast Passwall
Also applies to players in Lichform.

--------------------------------------------------------------------------------
d56e90d928 | Chris Campbell | 2011-02-18 05:05:04 +0000

Remove Alter Self
Since it's only good for scumming.

--------------------------------------------------------------------------------
de22d47dcb | Chris Campbell | 2011-02-18 05:03:44 +0000

Rework Transmutations books
Remove Dig from the Book of Changes.

Give the Book of Transfigurations self-affecting transmutations:
Stoneskin, Condensation Shield, Ice Form, Statue Form, Dragon Form.

Give the Book of Morphology non-self-affecting transmutations:
Sticks to Snakes, Polymorph Other, Cigotuvi's Degenerations, Ignite
Poison.

--------------------------------------------------------------------------------
62d0d4cf92 | Chris Campbell | 2011-02-18 04:33:30 +0000

Give shrapnel 2x AC reduction instead of 3x

--------------------------------------------------------------------------------
cccaef656f | Adam Borowski | 2011-02-18 01:29:54 +0100

Let -flto=jobserver do parallel compilation.

--------------------------------------------------------------------------------
bb8e66c71e | Raphael Langella | 2011-02-18 00:29:21 +0100

Fix silent spells making noise in crypt.

--------------------------------------------------------------------------------
026dfa39b4 | Raphael Langella | 2011-02-18 00:29:21 +0100

whitespaces

--------------------------------------------------------------------------------
d6d1cbfb79 | Raphael Langella | 2011-02-18 00:29:21 +0100

Don't prevent blink from putting you in dangerous clouds.
It can put you in the middle of monsters so there's no reason why it's so
nice with clouds. And it prevents players from using clouds to control the
direction of their blink, or to fill a corridor with a cloud and blink away.

--------------------------------------------------------------------------------
2c821d9b7b | Raphael Langella | 2011-02-18 00:29:21 +0100

Fix the paralysis death message placement.

--------------------------------------------------------------------------------
4a345d3ac9 | Raphael Langella | 2011-02-18 00:29:21 +0100

Fix tornado casting message when cast in flying form.
Replaced is_levitating() by airborne()

--------------------------------------------------------------------------------
1908ecb5c8 | Adam Borowski | 2011-02-17 22:48:57 +0100

Silent Tornado?  Hah.

--------------------------------------------------------------------------------
d777d01b5a | Adam Borowski | 2011-02-17 21:57:59 +0100

Fix Xom being "exalted" by your prayer.

--------------------------------------------------------------------------------
e2f62d56f2 | Adam Borowski | 2011-02-17 21:30:56 +0100

Xom's miscasts: spiders do have eyes.

--------------------------------------------------------------------------------
7c96f4ae32 | Adam Borowski | 2011-02-17 21:07:44 +0100

Tornado+Leda -> no flying.

--------------------------------------------------------------------------------
1b65636845 | Johanna Ploog | 2011-02-17 20:31:02 +0100

Fix misinformation when clicking on rotten chunks as a non-saprovore.
The returned message was "You're not hungry enough" which is completely
misleading. Fixed by adding a can_ingest variant that gets the item
itself rather than base and subtype, so we can check for rottenness.

--------------------------------------------------------------------------------
36cea3e42b | Johanna Ploog | 2011-02-17 20:30:58 +0100

Add a tutorial message when chunks in your inventory become rotten.
I would have prefered giving a message when you try to eat them, but
the eating code is stretched enough that I gave up trying the right
hook. A tiles-only trigger would be easy, but I want it to work for
console, too.

--------------------------------------------------------------------------------
a9e6ede605 | Raphael Langella | 2011-02-17 20:24:53 +0100

Fix corpse placement not working well on levels with high wall density.
The game creates a monster before turning it into a corpse. It wasn't given a
position to place the monster and tried 45 times to find one. On levels with
very high wall density (such as tutorial lesson 4), it often failed.
Now it creates the monster on the cell the corpse will end up.
Fix Mantis #3361.

--------------------------------------------------------------------------------
180b7c537c | Raphael Langella | 2011-02-17 20:24:53 +0100

Print the scroll name when it is identified.
Should reduce the number of questions regarding random uselessness.
Also remove the "This is a scroll of identify!" message as it is redundant now.

--------------------------------------------------------------------------------
1b46cc3e5b | Raphael Langella | 2011-02-17 20:24:53 +0100

Print the potion name when it is identified.

--------------------------------------------------------------------------------
a4d45caf8c | Adam Borowski | 2011-02-17 16:14:15 +0100

Disable monster tiers spam.
One day of stats from real games would be more than enough.

Not purging the code away yet, since it might be useful if we improve the tiers
(they're pretty abysmal right now).

--------------------------------------------------------------------------------
9f1b6d0f17 | Adam Borowski | 2011-02-17 15:15:55 +0100

Make corpses received from Kiku actually fit for reanimation.
1 hp monsters are no good for anything.

This also uses normal rules for hydra heads -- while 20-headed 1 hp hydras
were not overpowered, 20 headed viable hydras would be.

Unfortunately, there are severe concerns about this ability now.  You didn't
need Invocations for anything with Kiku since all it did was slightly
improving the chances for succeeding -- with any but early piety this did
not matter.  Now, if you somehow scum 27 Invo, getting 9 fire giant/foo
dragon zombies per 2 piety is a major deal.

Of course, this also tremendously increases wrath too, as you get those 9
fire giant/foo dragons in addition to torment or 3 necro miscasts.

--------------------------------------------------------------------------------
5cb502c973 | Adam Borowski | 2011-02-17 15:03:40 +0100

Fix a possible crash in Kiku's receive corpses.
Since it's used during wrath, these cases might be triggered intentionally.

--------------------------------------------------------------------------------
725b90b4a7 | Adam Borowski | 2011-02-17 13:50:40 +0100

For scroll acq, give a boost to quick blades.
The weighting formula, dam^3/speed causes a bias away from them.  Giving
speed more weight would be bad due to AC and also due to min delay being
nearly constant for most other items.  We might use min delay instead,
but I don't want to give this boost to demon whips which you may get in
other guaranteed ways.

--------------------------------------------------------------------------------
ffd1c9cfd1 | Johanna Ploog | 2011-02-16 22:15:22 +0100

Two small tutorial tweaks.
1. Hand out a stack of 2 potions of healing, so the player can easily
check the item type after quaffing.

2. Move the spellbook destruction message onto a trigger field. The
message on entering the level doesn't get read.

--------------------------------------------------------------------------------
0483a41469 | Vsevolod Kozlov | 2011-02-16 20:38:10 +0300

Fix whitespace errors.

--------------------------------------------------------------------------------
1eac278e3b | David Ploog | 2011-02-16 18:34:16 +0100

st's Orc:4 vaults. (#3391)

--------------------------------------------------------------------------------
0f76283086 | David Ploog | 2011-02-16 16:54:22 +0100

Ten great large maps by minmay. (#3278)

--------------------------------------------------------------------------------
8b5afa6596 | David Ploog | 2011-02-16 15:23:18 +0100

Evilmike's Abyss vaults. (#3340)

--------------------------------------------------------------------------------
f708771773 | David Ploog | 2011-02-16 14:05:43 +0100

Minor bailey changes.
This is not yet the overhaul.

--------------------------------------------------------------------------------
be0f6f8477 | Adam Borowski | 2011-02-16 11:26:15 +0100

Properly set stats for vault/arena-placed dancing weapons.

--------------------------------------------------------------------------------
1be904f6a5 | Adam Borowski | 2011-02-16 10:40:37 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
cad8df8b68 | Adam Borowski | 2011-02-16 10:40:37 +0100

Typo fix.

--------------------------------------------------------------------------------
501fc1bfb0 | Vsevolod Kozlov | 2011-02-16 11:18:55 +0300

Use vault_place_iterator instead of rectangle_iterator in dgn_register_place.

--------------------------------------------------------------------------------
223da7c5b4 | Vsevolod Kozlov | 2011-02-16 11:08:59 +0300

Remove an obsolete comment.

--------------------------------------------------------------------------------
c522b51ebf | Raphael Langella | 2011-02-16 01:03:59 +0100

Add paralysis status to the death message.

--------------------------------------------------------------------------------
da5a049d0a | Raphael Langella | 2011-02-16 00:55:09 +0100

Add a note when paralysed by a monster.

--------------------------------------------------------------------------------
213ed88753 | Raphael Langella | 2011-02-16 00:46:54 +0100

Paralysis beam calls you.paralyse() instead of potion_effect.
So the paralysing actor is not lost.
Also document the paralyse method.

--------------------------------------------------------------------------------
65e521efc5 | Raphael Langella | 2011-02-16 00:39:14 +0100

Fix Tukima's Dance ignoring spell power.
It was cast with a constant power of 180 instead of the actual spell power.

--------------------------------------------------------------------------------
c23c63aedb | Adam Borowski | 2011-02-15 23:12:04 +0100

Fix a Dance Party arena crash.
It was an actual bug: all dancing weapons were told to follow/target you,
rather than an appropriate foe.

--------------------------------------------------------------------------------
114e01996a | Adam Borowski | 2011-02-15 22:37:53 +0100

Fix a round-off error for Haste+Finesse.

--------------------------------------------------------------------------------
01d299289f | Vsevolod Kozlov | 2011-02-15 14:54:42 +0300

Let _fixup_stone_stairs overwrite vaults if preserve_vault_stairs is false.
Also check _dgn_random_point_in_bounds' return value, and react accordingly when
it fails.

--------------------------------------------------------------------------------
cb8dbc5360 | Chris Campbell | 2011-02-15 03:07:20 +0000

Allow ghosts to cast Agony
(Instead of replacing it with Torment)

--------------------------------------------------------------------------------
a13aeb2238 | Chris Campbell | 2011-02-15 03:07:10 +0000

Tweak numbers for Powered by Pain

--------------------------------------------------------------------------------
df1f320dd6 | Chris Campbell | 2011-02-15 03:06:19 +0000

Tweak descriptions for PbD
Display Regen+ instead of PbD as a status light, and improve the
mutation description to indicate that it's the radius which increases.

--------------------------------------------------------------------------------
eb252ca640 | Chris Campbell | 2011-02-15 03:05:21 +0000

Don't allow any headgear with Horns 3 or Antennae 3 (RangerC)
From RangerC's patch, with some additional fixes.
Acquirement won't give unusable headgear.
Pressing [ should correctly report when slots are restricted or totally
unavailable.
Untransforming will correctly push off incompatible headgear if you
gained some mutation levels in Horns/Antennae while transformed.

--------------------------------------------------------------------------------
5b7e38b86c | Adam Borowski | 2011-02-15 00:37:01 +0100

Fix a fd leak on restart_after_save.

--------------------------------------------------------------------------------
8b7cdb72c9 | Adam Borowski | 2011-02-14 23:42:55 +0100

Prefer ~/.crawl/init.txt over ~/init.txt
The latter is too generic a name, and is likely to clash with something else.

--------------------------------------------------------------------------------
10e80dd6bc | RjY | 2011-02-14 23:39:10 +0100

Allow ~/.crawl/init.txt as alias for ~/.crawlrc on unix
- Reduces proliferation of dotfiles
- Avoids tab completion clash between ~/.crawl and ~/.crawlrc

Signed-off-by: RjY <rjy@users.sourceforge.net>

--------------------------------------------------------------------------------
f4c5e7fa98 | Adam Borowski | 2011-02-14 23:36:31 +0100

Replace Antaeus' tile with co's version, this one fits better a rC++ rF- guy.

--------------------------------------------------------------------------------
996caec246 | Jude Brown | 2011-02-15 08:13:00 +1000

Revert "Update submodules to look at gitorious instead of SourceForge."
This reverts commit d3622d988ed0a6e6c0e5e993a41a5575b628911d.

Currently this is broken for a variety of reasons, all of which are
a mystery to me. Temporarily revertedin order to fix it for people
who are doing a full new clone.

--------------------------------------------------------------------------------
72f948c77e | Johanna Ploog | 2011-02-14 21:57:43 +0100

Replace Charms tiles with Denzi's latest creation.
I think these convey the idea really well.

--------------------------------------------------------------------------------
fbb9bf8877 | Johanna Ploog | 2011-02-14 21:27:11 +0100

Also hide server morgue directory for char dumps.

--------------------------------------------------------------------------------
587cc937dd | Johanna Ploog | 2011-02-14 21:13:03 +0100

Fix #3404: manuals being mouseclick-readable while berserk.

--------------------------------------------------------------------------------
1a1c18f316 | Johanna Ploog | 2011-02-14 20:39:29 +0100

Add tutorial triggers for miscasting a spell and stepping into a cloud.

--------------------------------------------------------------------------------
4ad452db05 | Johanna Ploog | 2011-02-14 20:39:00 +0100

Really hide morgue directory path on the servers.

--------------------------------------------------------------------------------
131bca01dc | Johanna Ploog | 2011-02-14 19:03:27 +0100

Fix #3424: assertion when targeting beyond door mimic.

--------------------------------------------------------------------------------
4ffcede785 | Johanna Ploog | 2011-02-14 18:40:48 +0100

Fix #3436: los not updating when a door mimic is killed.

--------------------------------------------------------------------------------
eed86fbef5 | Johanna Ploog | 2011-02-14 17:53:43 +0100

Fix #3432: Tutorial sickness message assuming chunks as cause.

--------------------------------------------------------------------------------
07b20030e1 | Adam Borowski | 2011-02-14 16:54:46 +0100

Fix missing stairs on box_level_dp.
The map builder would place them at (0,0), causing crashes.

--------------------------------------------------------------------------------
a33823e012 | Adam Borowski | 2011-02-14 15:53:09 +0100

Cap XP losses due to the Wraith card.

--------------------------------------------------------------------------------
690b9a5a7f | Adam Borowski | 2011-02-14 15:36:55 +0100

Remove the need for gaming XL gains/costs.
Before, potions and cards of experience did almost nothing if used with
a few xp points left to the next level, and gave the most when used just
after level-up.  Now, they place you at the same point you were at,
proportionally.

A couple of ZotDef abilities used to cost two levels because you could
game them by using them just after level-up.  They cost a single full
level now.

The wraith card used to first drain a small chunk, then put you down one
xp point shy of your level.  Now, it takes away a full level.

--------------------------------------------------------------------------------
477ff89b56 | Adam Borowski | 2011-02-14 14:40:50 +0100

Shift the weird 2-based argument to exp_needed().
Now, exp_needed(X) is the minimum you need to have to be xl X, while
exp_needed(X+1) is what you need to level.

--------------------------------------------------------------------------------
fddde0e561 | Adam Borowski | 2011-02-14 14:26:42 +0100

Let level_change() go down as well.
Note: there was an interesting off-by-one issue.  Level drain happened
only on xp < exp_needed, level gain only on xp > exp_needed.

--------------------------------------------------------------------------------
12fdba999a | Adam Borowski | 2011-02-14 14:15:30 +0100

Don't artificially stop xp drain when you cross level boundary.

--------------------------------------------------------------------------------
31cf43924d | Adam Borowski | 2011-02-14 13:42:06 +0100

Fix DDDKs almost never using Injury Mirror.
It was placed in the "escape spell" slot.  I think it might be better
to have Drain Life there, since it will heal the DK.

Anyway, using Firestorm or Tornado on dwarf Zig levels suddenly became
a whole lot worse an idea.

--------------------------------------------------------------------------------
fbef33c135 | Adam Borowski | 2011-02-14 12:51:28 +0100

Recompress files with a waste ratio 3 or bigger.
This is a net loss for git checkouts (which keep both the old and new
versions, even though the real contents haven't changed), and reduces only
working dirs and tarballs which don't really matter -- but come on, having
files like beards that are 96% junk is ridiculous.  Thus I recompressed only
the most egregious cases, reducing 3.9MB to 3.6.  A full recompression would
take it down to 2.5MB.

--------------------------------------------------------------------------------
a9a0233424 | David Lawrence Ramsey | 2011-02-13 20:17:07 -0600

Reorganize dc-corpse.txt to account for moving 'I' to dc-mon/animals.

--------------------------------------------------------------------------------
048ab95758 | Jude Brown | 2011-02-14 10:03:53 +1000

Update instructions for Gitorious->CIA gateway.

--------------------------------------------------------------------------------
24c392e4bc | Adam Borowski | 2011-02-14 00:55:55 +0100

Merge branch 'master' into octopus

--------------------------------------------------------------------------------
eecc0bd6db | Johanna Ploog | 2011-02-14 00:47:21 +0100

Move tree tiles into subdirectory dc-dngn/trees.

--------------------------------------------------------------------------------
720f91eb84 | Adam Borowski | 2011-02-13 23:45:58 +0100

Curio's updates to Donald's tile; added weapon overlay.

--------------------------------------------------------------------------------
e8cead29fe | Adam Borowski | 2011-02-13 23:45:58 +0100

coolio's tile for Mennas.

--------------------------------------------------------------------------------
d1cd466011 | Adam Borowski | 2011-02-13 23:45:58 +0100

Replace Joseph's plate-clad tile with coolio's studded leather one.

--------------------------------------------------------------------------------
f366486c26 | Johanna Ploog | 2011-02-13 23:34:31 +0100

Add Curio's mangrove tiles.

--------------------------------------------------------------------------------
1eacdc0868 | Shayne Halvorson | 2011-02-13 22:02:26 +0100

Make it less likely the demon axe will trap the player.
* Mesmerisation no longer works through translucent walls.
* The demon axe will only cause the player to be mesmerised by one monster
  at a time, so the player can't be unable to move due to monsters on two
  sides.
* Preventing noise from stopping the demon axe's effect actually works.

This still leaves monsters that can't or won't reach the player in the
middle of a deep water or lava pool as a general mesmerisation issue (that
sewer vault with the siren at the end, for instance).

--------------------------------------------------------------------------------
8d5a0743cf | Johanna Ploog | 2011-02-13 21:17:20 +0100

Add co's tiles for Ashenzari's sensed monsters.

--------------------------------------------------------------------------------
1c5e72ab02 | Johanna Ploog | 2011-02-13 18:42:15 +0100

Add Denzi's raven tile, lightened up a bit.

--------------------------------------------------------------------------------
e7299fc11d | Adam Borowski | 2011-02-13 17:51:12 +0100

Minmay's monster description updates.

--------------------------------------------------------------------------------
177fad8cce | Adam Borowski | 2011-02-13 17:28:27 +0100

Clear demon's axe effect on unwield.

--------------------------------------------------------------------------------
6542a9cba6 | Adam Borowski | 2011-02-13 17:09:19 +0100

Formatting fixes.

--------------------------------------------------------------------------------
508527f81a | Adam Borowski | 2011-02-13 16:42:54 +0100

Fix reference to demon axe's tile.

--------------------------------------------------------------------------------
a077bd195d | William Parker | 2011-02-13 15:57:22 +0100

Allow OBJ_STAVES to get the "equipped" item prefix

--------------------------------------------------------------------------------
2e938430c0 | Adam Borowski | 2011-02-13 15:53:34 +0100

Add co's tiles for the demon (obsidian) axe.

--------------------------------------------------------------------------------
4437d5930b | Shayne Halvorson | 2011-02-13 15:41:18 +0100

Demon axe unrandart

--------------------------------------------------------------------------------
853564afd7 | Adam Borowski | 2011-02-13 15:37:53 +0100

Add Denzi's tile for Passage of Golubria.

--------------------------------------------------------------------------------
a77eecc3c9 | Adam Borowski | 2011-02-13 15:31:35 +0100

Move the tile for Portal to UNUSED/

--------------------------------------------------------------------------------
5a32725290 | Raphael Langella | 2011-02-13 14:39:08 +0100

Properly fix clicks counted twice.
Precision menu acts on mouse press now instead of mouse release.

This fixes #3426.

This reverts commit af62abd18c2e011fb9bf912e33374e7d78a2c733.
This reverts commit 7a657cdb01a6fb74ff8cf8fcaeeb81d375a7bb04.

--------------------------------------------------------------------------------
709ee15529 | Raphael Langella | 2011-02-13 14:06:57 +0100

Fix terrain not applied when clinging actor fall from a removed wall.
Now you can drown yourself with dig! You can also drown hostile spiders
which is much more fun.

--------------------------------------------------------------------------------
f2468ef258 | Raphael Langella | 2011-02-13 13:52:23 +0100

Document the clinging functions.

--------------------------------------------------------------------------------
1fd3fbe47a | Raphael Langella | 2011-02-13 13:33:15 +0100

Better description for Azure jelly (minmay).

--------------------------------------------------------------------------------
f6fbbe4b6e | Johanna Ploog | 2011-02-13 00:25:18 +0100

Remove a few 0.7.2 changes from the 0.8 changelog.

--------------------------------------------------------------------------------
279e7ce59d | Johanna Ploog | 2011-02-13 00:25:15 +0100

Add a more verbose version of the 0.7.2 change log.

--------------------------------------------------------------------------------
32b3b7f47b | Johanna Ploog | 2011-02-13 00:25:12 +0100

Only print morgue location for local builds.

--------------------------------------------------------------------------------
9afd2087d5 | Johanna Ploog | 2011-02-13 00:25:09 +0100

Print morgue path after the score list rather than after "You die..."

--------------------------------------------------------------------------------
7d0d77e548 | Chris Campbell | 2011-02-12 22:20:56 +0000

Give hell hogs poison+contam corpses too

--------------------------------------------------------------------------------
46519ef4d0 | David Lawrence Ramsey | 2011-02-12 16:00:39 -0600

Clean up Imprison code with regard to Recite.
Remove the commented-out routine to do the latter inside the former, as
the code is entirely different.  Also, remove the imprisoned parameter
from the former, as it's no longer used.

--------------------------------------------------------------------------------
00cc28e0cc | David Lawrence Ramsey | 2011-02-12 15:54:56 -0600

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
8d1bbf040a | David Lawrence Ramsey | 2011-02-12 15:46:41 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
25e25d8081 | David Lawrence Ramsey | 2011-02-12 15:25:12 -0600

Remove the last gender reference in Zin's Recite messages.

--------------------------------------------------------------------------------
63f32fb6fe | David Lawrence Ramsey | 2011-02-12 13:32:39 -0600

Remove still more gender references in Zin's Recite messages.

--------------------------------------------------------------------------------
189ce2d3b7 | David Lawrence Ramsey | 2011-02-12 12:14:24 -0600

Tweak wording of one of Zin's Recite messages.

--------------------------------------------------------------------------------
6d045d7365 | David Lawrence Ramsey | 2011-02-12 12:13:59 -0600

Remove yet more gender references in Zin's Recite messages.

--------------------------------------------------------------------------------
38aeec2a65 | David Lawrence Ramsey | 2011-02-12 02:11:42 -0600

Remove a few more gender references in Zin's Recite messages.

--------------------------------------------------------------------------------
f730a0d3e0 | Adam Borowski | 2011-02-12 02:51:19 +0100

Add LordBistian's tile for Leda's Liquefaction.

--------------------------------------------------------------------------------
d3622d988e | Jude Brown | 2011-02-12 11:46:53 +1000

Update submodules to look at gitorious instead of SourceForge.

--------------------------------------------------------------------------------
36d17362ca | Adam Borowski | 2011-02-12 02:23:17 +0100

Fix monster halos not appearing immediately after save restore.

--------------------------------------------------------------------------------
7a721d9081 | Adam Borowski | 2011-02-12 02:23:17 +0100

Make LOS reducers multiplicative rather than additive.
For example, nighstalker (7/6/5) with lantern of shadows becomes 5/5/4
rather than 5/4/3.

--------------------------------------------------------------------------------
013ac4b423 | Adam Borowski | 2011-02-12 02:23:17 +0100

A light dimmer.
Hex/7, decreases LOS radius by 2.
Instantly dispelled by TSO's halo, but Corona and contamination glow merely
get a larger stealth penalty (the last part applies to nightstalker and the
lantern of shadows as well!).

--------------------------------------------------------------------------------
0fc178be1e | Jude Brown | 2011-02-12 10:56:29 +1000

Another test to ensure we can't push to SourceForge.
We're moving to gitorious! This may be subject to change, but please see
http://gitorious.org/crawl/crawl.git for more information about the
repository.

--------------------------------------------------------------------------------
069489eb75 | Jude Brown | 2011-02-12 10:49:39 +1000

Test commit to make sure we can't push to SourceForge.

--------------------------------------------------------------------------------
ebe5260773 | Raphael Langella | 2011-02-12 00:34:13 +0100

Apply the new ground_level method.
Also fix the following bugs:
Rain message when clinging.
Clinging monsters affected by Leda's.
In water tiles when clinging over it (both player and monster).

--------------------------------------------------------------------------------
db74bba88a | Raphael Langella | 2011-02-11 23:19:05 +0100

Add a ground_level method to actor.
Returns true if the actor is neither airborne nor clinging to walls.
As airborne and clinging checks are often done together, it should simplify
the code.

--------------------------------------------------------------------------------
ffeed6d7ee | Raphael Langella | 2011-02-11 23:19:05 +0100

Allow monster spiders to cling on walls.
Moved is_wall_clinging(), can_cling_to() and check_clinging() to the actor
interface. the AI isn't aware of it, so in some cases, the spider will stay
blocked behind a cell of deep water while taking a side step would allow it
to cling to the wall and cross the water.

--------------------------------------------------------------------------------
08b6ec0e69 | David Lawrence Ramsey | 2011-02-11 16:06:15 -0600

Fix indentation.

--------------------------------------------------------------------------------
b4834b1f31 | David Lawrence Ramsey | 2011-02-11 14:36:56 -0600

Move the tiles for 'I' (various beasts) to dc-mon/animals.

--------------------------------------------------------------------------------
860ae7739b | David Lawrence Ramsey | 2011-02-11 14:36:55 -0600

Update animals.txt to account for 't'.

--------------------------------------------------------------------------------
d751933713 | Johanna Ploog | 2011-02-11 21:12:52 +0100

After some thought, add Denzi's Charms tile after all.

--------------------------------------------------------------------------------
2c5de84d97 | Johanna Ploog | 2011-02-11 20:57:45 +0100

Add Curio's lizard zombie tile.

--------------------------------------------------------------------------------
74f7dcd7ca | Johanna Ploog | 2011-02-11 19:10:16 +0100

Apply galehar's "next map after winning" changes to the tutorial.

--------------------------------------------------------------------------------
6bfdc35c9e | Johanna Ploog | 2011-02-11 19:09:36 +0100

Remove reference to an option that no longer exists.

--------------------------------------------------------------------------------
3c16aee2be | Adam Borowski | 2011-02-11 03:37:58 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
ec752d5c81 | Adam Borowski | 2011-02-11 03:28:21 +0100

Make Murray somewhat more likely to spawn.

--------------------------------------------------------------------------------
c9ddf4885d | Adam Borowski | 2011-02-11 03:28:20 +0100

s/Tukima/Terpsichore/, enable generation.

--------------------------------------------------------------------------------
4491866c09 | Adam Borowski | 2011-02-11 03:28:20 +0100

Fix the music of Tukima's Dance Party being silent.

--------------------------------------------------------------------------------
d7a3265c2d | Adam Borowski | 2011-02-11 03:28:20 +0100

Show stat zero disability on the HUD and in a few other places.
It might be already shown by showing the stat in light red, but new
players are not likely to know it's so much worse than dark red, and
that they are about to die.  It's a condition that should be shown
everywhere possible.

--------------------------------------------------------------------------------
ed3fb14c63 | Adam Borowski | 2011-02-11 03:28:20 +0100

Don't let Conjure Flame be used for free reveal of mimics.

--------------------------------------------------------------------------------
dd97db2744 | Adam Borowski | 2011-02-11 03:28:20 +0100

Don't shaft ./crawl -test.

--------------------------------------------------------------------------------
0a34aa56ff | Adam Borowski | 2011-02-11 03:28:20 +0100

Remove an unused variable (thanks gcc-4.6).

--------------------------------------------------------------------------------
699dfacca9 | Adam Borowski | 2011-02-11 03:28:20 +0100

A better assert message for FixedVector our of bounds access.

--------------------------------------------------------------------------------
199e032f32 | Adam Borowski | 2011-02-11 03:28:20 +0100

Assert out rather than segfaulting for traversable_terrain out of range.

--------------------------------------------------------------------------------
f554425cd2 | Adam Borowski | 2011-02-11 03:28:19 +0100

Fix weapon not showing on most of Tiamat's tiles.

--------------------------------------------------------------------------------
205e760abf | Adam Borowski | 2011-02-11 03:28:19 +0100

Simplify a vault.
Rotations already do all the randomization you'd want.

--------------------------------------------------------------------------------
147e37aef8 | David Lawrence Ramsey | 2011-02-10 19:31:49 -0600

Remove some gender references in Zin's Recite messages; gods are genderless.
This is unfinished, as some parts are harder to reword than others.

--------------------------------------------------------------------------------
039f5c7075 | Chris Campbell | 2011-02-10 23:10:44 +0000

Don't spawn monster bands on stairs
Zotdef changed this to be possible, but it results in bands appearing
all at once in LOS when the leader spawns on a staircase. Fixes #3102.

--------------------------------------------------------------------------------
624c887163 | Chris Campbell | 2011-02-10 23:10:43 +0000

Vampire mosquito/hell hound corpse tweaks
HCl corpses for vampire mosquito, poison+contam corpses for hell hound.

--------------------------------------------------------------------------------
dd9cc47657 | Chris Campbell | 2011-02-10 23:10:42 +0000

Fix S2S description

--------------------------------------------------------------------------------
35083a8af7 | Chris Campbell | 2011-02-10 23:10:41 +0000

Bump grey draconians back up to +1 fighting apt

--------------------------------------------------------------------------------
ca0f940d13 | David Lawrence Ramsey | 2011-02-10 16:47:52 -0600

Simplify debugging message.

--------------------------------------------------------------------------------
2c6898c032 | David Lawrence Ramsey | 2011-02-10 16:47:52 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
e17f813f6e | David Lawrence Ramsey | 2011-02-10 16:47:51 -0600

Fix misconjugation of "smite".
"Smote" is the past tense, while "smitten" is the past participle.  For
example, "Beogh smote you" is correct, but "smote by Beogh" should be
"smitten by Beogh".

Also, fix Zin Recite messages to account for this.  ("Smite" is the only
verb in the list of choices that has a differing past tense and past
participle, so adding another list that differs only in one verb seems
like overkill.)  In the process, fix another tense shift.

--------------------------------------------------------------------------------
0d70d0332c | Johanna Ploog | 2011-02-10 23:36:50 +0100

Mention morgue location when doing a chardump.

--------------------------------------------------------------------------------
83e1519656 | Johanna Ploog | 2011-02-10 23:36:47 +0100

In the [[=== item line, only highlight potentially useful jewellery.
Jewellery was previously always considered interesting. This is now
no longer the case for known, useless jewellery.

--------------------------------------------------------------------------------
2d5e12cd06 | Johanna Ploog | 2011-02-10 23:36:45 +0100

Don't set cosmetic flags for artefacts; tidy up specialness check.
Get rid of the "name contains runed" type of checks in favour of
checking directly against COSMETIC_MASK. We don't hide artefacts
anymore, anyway.

Also, there's no point to setting cosmetic flags for artefacts
because the item name uses the artefact appearance instead, and
codewise it just causes confusion.

--------------------------------------------------------------------------------
c5d78aa504 | Johanna Ploog | 2011-02-10 23:36:43 +0100

Fix randart item tiles never actually being used.

--------------------------------------------------------------------------------
a08a88fb27 | Raphael Langella | 2011-02-10 23:14:58 +0100

Fix an overflow error in transfer knowledge.

--------------------------------------------------------------------------------
a4474b1bae | Raphael Langella | 2011-02-10 22:43:28 +0100

Simplify the clinging code.

--------------------------------------------------------------------------------
6c2a978926 | Raphael Langella | 2011-02-10 20:55:30 +0100

Map selection screen: defaults to next map if previous game was won.
It works with sprint but would be mostly useful for tutorial. Unfortunately,
it seems tutorial maps don't even go through ouch(), so I don't know how to set
last_game_won. I guess it should be done by a trigger on the exit stairs.

--------------------------------------------------------------------------------
46455d9f13 | Raphael Langella | 2011-02-10 20:55:30 +0100

Add the full scroll name to the "crumble to dust" message.
Especially useful if the scroll failed to id itself.

--------------------------------------------------------------------------------
7a657cdb01 | Raphael Langella | 2011-02-10 20:55:29 +0100

Fix click on the title screen making selection in the startup menu.

--------------------------------------------------------------------------------
af62abd18c | Raphael Langella | 2011-02-10 20:55:29 +0100

Skill menu: fix double mouse click when leaving skill description.

--------------------------------------------------------------------------------
c65102909e | Raphael Langella | 2011-02-10 12:40:39 +0100

Mapdef: fix some item flags being ignored for monster items.
mundane, cursed and uncursed where ignored. The training dummy in lesson 2
often had an enchanted whip.

--------------------------------------------------------------------------------
1fb01cd3ae | Raphael Langella | 2011-02-10 12:40:39 +0100

Use inventory colours for stats area and % screen.

--------------------------------------------------------------------------------
0fce0f8e76 | Raphael Langella | 2011-02-10 12:40:39 +0100

Allow (M)emorising from books on the floor.

--------------------------------------------------------------------------------
17b71a70d1 | Raphael Langella | 2011-02-10 12:40:38 +0100

Add a new item_is_spellbook() function.

--------------------------------------------------------------------------------
cafb13c46e | David Lawrence Ramsey | 2011-02-09 11:52:58 -0600

Add missing checks for giant-sized-or-greater players in water.
Currently, the only way to be giant-sized as a player is to be in dragon
form, but that's still a valid case.

--------------------------------------------------------------------------------
2caef83051 | Chris Campbell | 2011-02-09 17:17:53 +0000

Update draconian manual entry

--------------------------------------------------------------------------------
dc09069ab7 | Chris Campbell | 2011-02-09 16:43:07 +0000

Lots of manual updates from the wiki

--------------------------------------------------------------------------------
61eb9ff968 | Adam Borowski | 2011-02-09 12:57:53 +0100

Let player ghosts cast Dance Party, while it lasts.
That ghost in Zig in my game yesterday should have used this rather than
(or in addition to) summoning six or so tentacle monstrosities per turn...

--------------------------------------------------------------------------------
023b13316f | Adam Borowski | 2011-02-09 12:56:31 +0100

Make Flame Tongue a monster spell.

--------------------------------------------------------------------------------
9b4c591ee8 | Adam Borowski | 2011-02-09 10:47:05 +0100

Fix Antaeus getting an amphibiousness speed boost.

--------------------------------------------------------------------------------
12b3fa3846 | David Lawrence Ramsey | 2011-02-08 21:52:56 -0600

Add spacing fix.

--------------------------------------------------------------------------------
8cce98d967 | David Lawrence Ramsey | 2011-02-08 21:42:06 -0600

Make player/monster sizes affect more in-game.
A body size greater than SIZE_MEDIUM provides immunity to floundering in
shallow water.  Also, a body size of SIZE_GIANT or greater provides the
ability to walk through deep water as though it were shallow, with
floundering (essentially, amphibiousness but with floundering).

Accordingly, remove amphibiousness from Antaeus, as he no longer needs
it to swim.

--------------------------------------------------------------------------------
863eec3468 | David Lawrence Ramsey | 2011-02-08 20:25:57 -0600

Remove redundant ways of determining monster amphibiousness.
Some of it, at least, is a holdover from when there were two types of
it: land-primary and water-primary.

--------------------------------------------------------------------------------
9a34b24c7e | David Lawrence Ramsey | 2011-02-08 18:32:30 -0600

Remove redundant static functions.

--------------------------------------------------------------------------------
42a2b6d466 | Raphael Langella | 2011-02-09 01:02:44 +0100

Move decrement paralysis to its own function.
it's called at the end of the turn so that when you get the "You can move
again." message, it's actually your turn to move.

--------------------------------------------------------------------------------
4a5b2af44b | Raphael Langella | 2011-02-09 00:51:29 +0100

Revert "Move _decrement_durations from _player_reacts to 
_player_reacts_to_monsters"
This reverts commit 196d50646adfb66071895c9560c44ffe6863a4a1.

--------------------------------------------------------------------------------
196d50646a | Raphael Langella | 2011-02-08 23:57:22 +0100

Move _decrement_durations from _player_reacts to _player_reacts_to_monsters
The idea is that when you get the message that "You can move again.", it's
actually your turn to move, not the monsters'.
If this break anything, please revert it.

--------------------------------------------------------------------------------
57d621c9d0 | Raphael Langella | 2011-02-08 23:29:03 +0100

Prevent chain paralysis.
When coming out of a paralysis, you're immune for 1d3 turns.

--------------------------------------------------------------------------------
76e9a0c806 | David Lawrence Ramsey | 2011-02-08 15:19:44 -0600

Move species_likes_water() from player.cc to species.cc.

--------------------------------------------------------------------------------
bb6c6677e6 | David Lawrence Ramsey | 2011-02-08 15:10:24 -0600

Add spacing fix.

--------------------------------------------------------------------------------
4613761942 | David Lawrence Ramsey | 2011-02-08 14:55:06 -0600

Compare body sizes, not torso sizes, when determining trampling resistance.

--------------------------------------------------------------------------------
bbe56985e3 | Chris Campbell | 2011-02-08 20:40:05 +0000

Don't allow negative card power under Nemelex penance

--------------------------------------------------------------------------------
5a4f13d08b | Chris Campbell | 2011-02-08 19:26:51 +0000

Slightly better description for dance party

--------------------------------------------------------------------------------
9415363682 | David Lawrence Ramsey | 2011-02-08 12:45:38 -0600

Unrestrict kobold hunters.

--------------------------------------------------------------------------------
831e03aaab | Chris Campbell | 2011-02-08 16:59:26 +0000

Update/improve descriptions
Brings the Kobold/Halfing descriptions up-to-date and improves a few
other species/background descriptions.

--------------------------------------------------------------------------------
a7ce77b2d5 | Chris Campbell | 2011-02-08 16:21:40 +0000

Further Halfling/Kobold tweaks
Attempt to further differentiate Ha/Ko apts based on some of the
existing flavour in the manual:

Ko get better at Summ/Necro/Hex, worse at Charm.
Kobold Hu/AM gets a crossbow instead of a sling and buckler, along with
increased crossbows apt.

Ha get better at Charm/Tloc, worse at Spellcasting/Hex/Tmut/Stabbing,
and gain innate mutation resistance 1.

--------------------------------------------------------------------------------
9350997ecf | Raphael Langella | 2011-02-08 13:48:09 +0100

Fix crash when transfer knowledge brings skills to level 27.
Mantis #3405

--------------------------------------------------------------------------------
513a079fd3 | Raphael Langella | 2011-02-08 12:25:28 +0100

After a tutorial or sprint map, go back to map screen instead of main screen.

--------------------------------------------------------------------------------
cb0cb75d02 | Raphael Langella | 2011-02-08 12:25:28 +0100

Startup menu: when exiting a sub-menu, select the last entry as the default.
This shouldn't break anything this time.

--------------------------------------------------------------------------------
4283068bb8 | Chris Campbell | 2011-02-08 01:01:58 +0000

Highlight monsters with pain mirror active

--------------------------------------------------------------------------------
c2668775c0 | Arxale | 2011-02-07 22:59:54 +0000

More interesting vestibule
Gives Geryon a reaching attack and prevents him from using stairs, and
makes beasts trample.

--------------------------------------------------------------------------------
0e29a53a80 | Chris Campbell | 2011-02-07 22:52:03 +0000

Make 7 min delay the maximum (elliptic)
This fixes the inconsistencies mentioned in #3126 as well as making
attack delay easier to understand. The change only affects a few
weapons - war axes, spiked flails and broad axe + shields go from 8 to 7
min delay.

--------------------------------------------------------------------------------
2a41c51f21 | David Lawrence Ramsey | 2011-02-07 16:18:49 -0600

Add Summon Hydra to Xom's list of tension spells.

--------------------------------------------------------------------------------
1ba35cb550 | David Lawrence Ramsey | 2011-02-07 15:55:50 -0600

Comment fix.

--------------------------------------------------------------------------------
6b35ff0429 | David Lawrence Ramsey | 2011-02-07 15:53:22 -0600

Fix inconsistencies in unarmed descs: "Tooth and claw" -> "Teeth and claws".

--------------------------------------------------------------------------------
02f5bd1b35 | Chris Campbell | 2011-02-07 21:51:58 +0000

Double the dex bonus from thin skeletal structure
It provides a lot less than the other scale mutations currently and even
penalises strength, so the bonuses should be somewhat worthwhile.

--------------------------------------------------------------------------------
7e1dbb5f8b | Chris Campbell | 2011-02-07 21:51:57 +0000

Don't give piety for eating with Chei
It's a hidden and abusable mechanic (eating all your spare permafood to
recover piety shouldn't be possible).

--------------------------------------------------------------------------------
298c30a011 | David Lawrence Ramsey | 2011-02-07 15:36:08 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
b1a24c1281 | David Lawrence Ramsey | 2011-02-07 15:34:40 -0600

Save falchions properly as default starting weapons.

--------------------------------------------------------------------------------
9e79b6f434 | David Lawrence Ramsey | 2011-02-07 15:25:01 -0600

Add Yredelemnul penance message.

--------------------------------------------------------------------------------
9623f2c8e1 | David Lawrence Ramsey | 2011-02-07 14:40:01 -0600

Add missing punctuation.

--------------------------------------------------------------------------------
df74268005 | David Lawrence Ramsey | 2011-02-07 14:35:06 -0600

Fix tense shift in one of Zin's Recite messages.

--------------------------------------------------------------------------------
7b8c4e65d0 | David Lawrence Ramsey | 2011-02-07 13:06:10 -0600

Rename MONS_FIRECRAB to MONS_FIRE_CRAB, to match its in-game name.

--------------------------------------------------------------------------------
e5e064ba66 | David Lawrence Ramsey | 2011-02-07 12:34:33 -0600

Properly pluralize e.g. "demonspawn" as "demonspawn".
This matches its use in the code ("Demonspawn are more deadly with it.",
referring to a demon weapon).

--------------------------------------------------------------------------------
a27e5b4d9c | David Lawrence Ramsey | 2011-02-07 12:13:51 -0600

Remove references to Control Demon at the next major version bump.
It hasn't been available in-game since the demonspawn overhaul.

--------------------------------------------------------------------------------
430a4907cc | David Lawrence Ramsey | 2011-02-07 11:42:07 -0600

Remove Enslave Undead at the next major version bump.
It hasn't been available in-game since the Kiku overhaul.

--------------------------------------------------------------------------------
fb362ea4cb | Adam Borowski | 2011-02-07 15:25:22 +0100

Restore part of the chances for unrand weapon/armour generation.
Since a fix to broken fixedart code, they generated once in a blue moon.
The overall chances are still lower than before, this change restores
only the relative unrand:randart ratio.

Also, fixedarts could generate in the Abyss and Pan before, but I doubt
we should restore that -- except for those "lost in the Abyss", which
part of the code is broken now.

--------------------------------------------------------------------------------
4ad2c648b3 | Adam Borowski | 2011-02-07 14:27:07 +0100

Allow club unrandarts.

--------------------------------------------------------------------------------
489101023c | Adam Borowski | 2011-02-07 13:59:58 +0100

Restore the name of scrolls of paper, they can occur in saves.

--------------------------------------------------------------------------------
c4dadb4db2 | Jude Brown | 2011-02-07 22:16:48 +1000

Fix #3398: Banished monsters don't have corpses to leave behind.
Banished monsters no longer trigger mons_reset and thus the chances of
them leaving a corpse behind were exactly the same as any other killed
monster -- as opposed to zero.

--------------------------------------------------------------------------------
407f256807 | David Lawrence Ramsey | 2011-02-07 00:47:21 -0600

Properly pluralize "mosquito" as "mosquitoes".

--------------------------------------------------------------------------------
9b2be129bd | David Lawrence Ramsey | 2011-02-06 23:49:45 -0600

Clean up the Box of Beasts summoning routine a bit.

--------------------------------------------------------------------------------
3aaf0e29e7 | David Lawrence Ramsey | 2011-02-06 23:45:13 -0600

Fix inconsistency with the Swarm spell.
Specifically, disallow summoning monsters that would anger your god
(e.g. vampire mosquitoes, being both evil and unclean), as is already
done with the box of beasts.  The spell is also no longer marked as
unclean for this reason.

This became a problem when vampire mosquitoes were introduced; the only
way to indicate the spell as both evil and unclean for that case would
be to put it in the Necromancy school, which is overkill since it only
applies to one summonable monster.

--------------------------------------------------------------------------------
27636dba4c | Chris Campbell | 2011-02-07 01:16:39 +0000

Improve Staff of Wucad Mu
Miscast effects on wield/unwield/hit are removed.

--------------------------------------------------------------------------------
253266c334 | Chris Campbell | 2011-02-07 01:15:21 +0000

Rework Divination miscast effects
The map-forgetting and spell-forgetting effects are removed entirely,
as they're problematic for various reasons (maprot is avoidable by
mapping levels externally, and spellrot is abusable for free amnesia).
Sif Muna keeps spell-forgetting as a wrath effect, though. MP drain of
varying severity added to replace some of the removed effects.

--------------------------------------------------------------------------------
32e01f4de4 | Chris Campbell | 2011-02-06 23:19:53 +0000

Give freezing cloud immunity to Icemail instead of Passive Freeze
Also update the mutation description so that the cloud immunity is
mentioned.

--------------------------------------------------------------------------------
074c1ee969 | Chris Campbell | 2011-02-06 23:18:59 +0000

Make LOS-affecting spells work through transparent walls
This affects the legendary Pain card, Slouch, Ignite Poison, Metabolic
Englaciation, and Alistair's Intoxication.

--------------------------------------------------------------------------------
8cc1883ff3 | Chris Campbell | 2011-02-06 23:18:17 +0000

Make apply_area_visible not affect scryed squares by default

--------------------------------------------------------------------------------
75744deb7d | Johanna Ploog | 2011-02-06 22:56:28 +0100

Mention the command panel in the tutorial.
Also: cover berserk/hunger relationship.

--------------------------------------------------------------------------------
86f1db48d3 | Johanna Ploog | 2011-02-06 22:56:26 +0100

Spacing fixes in the tutorial message definitions.

--------------------------------------------------------------------------------
42ae128358 | Johanna Ploog | 2011-02-06 22:56:23 +0100

Fix skill screen commands overlapping with tutorial description.

--------------------------------------------------------------------------------
e1c1cff9e6 | David Lawrence Ramsey | 2011-02-06 14:27:56 -0600

Let wanderers start with falchions, as they're now available starting weapons.

--------------------------------------------------------------------------------
e7ce08aa0f | David Lawrence Ramsey | 2011-02-06 13:30:17 -0600

Fix wording and punctuation.

--------------------------------------------------------------------------------
66ae89d4c4 | David Lawrence Ramsey | 2011-02-06 13:13:59 -0600

Add formatting fix.

--------------------------------------------------------------------------------
ab85242464 | Adam Borowski | 2011-02-06 19:56:32 +0100

Update Recite's description, describe the preaching books.

--------------------------------------------------------------------------------
37a0ec4a99 | Johanna Ploog | 2011-02-06 17:08:56 +0100

Add Denzi's tiles for the Summon Dragon/Hydra spells.

--------------------------------------------------------------------------------
ba0d01ef02 | Johanna Ploog | 2011-02-06 17:07:37 +0100

Add co's prayer tile and Denzi's other command tiles, partly modified.

--------------------------------------------------------------------------------
39ea8112c8 | Johanna Ploog | 2011-02-06 15:10:17 +0100

Extend and rearrange tutorial/hints mode command help.
Now includes movement graphics, autoexplore, etc.
In console mode, reading it completely probably requires scrolling now.

--------------------------------------------------------------------------------
85929572ce | Johanna Ploog | 2011-02-06 11:13:43 +0100

Remove scrolls of paper from vault definitions.

--------------------------------------------------------------------------------
721e0cf434 | Adam Borowski | 2011-02-06 05:03:21 +0100

Make Zin hate monsters with mutagenic/rot corpses.

--------------------------------------------------------------------------------
61dbf2bb16 | David Lawrence Ramsey | 2011-02-05 21:31:40 -0600

Remove obsolete references to the scroll of paper.

--------------------------------------------------------------------------------
0b5cfd918b | David Lawrence Ramsey | 2011-02-05 21:25:22 -0600

Refactor a check for the scroll of paper.

--------------------------------------------------------------------------------
d082ba658d | Adam Borowski | 2011-02-06 03:59:45 +0100

Fix "Foo is  is seared.".

--------------------------------------------------------------------------------
e5bb070658 | David Lawrence Ramsey | 2011-02-05 20:15:47 -0600

Add missing ellipsis to Recite text.

--------------------------------------------------------------------------------
6a409bafc4 | David Lawrence Ramsey | 2011-02-05 20:14:52 -0600

Fix indentation.

--------------------------------------------------------------------------------
01ba9cf864 | David Lawrence Ramsey | 2011-02-05 20:10:26 -0600

Remove unneeded whitespace fron yesno() prompts.

--------------------------------------------------------------------------------
b1fb165c8d | David Lawrence Ramsey | 2011-02-05 20:10:00 -0600

Add punctuation fixes.

--------------------------------------------------------------------------------
7d7b66bf26 | David Lawrence Ramsey | 2011-02-05 20:09:48 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
5bb7ffd217 | Adam Borowski | 2011-02-06 02:37:11 +0100

Demand confirmation when butchering forbidden corpses.

--------------------------------------------------------------------------------
0cc533748d | Chris Campbell | 2011-02-05 21:29:35 +0000

Update an old options guide example

--------------------------------------------------------------------------------
bd9f8806cf | Chris Campbell | 2011-02-05 21:29:33 +0000

Don't hurt rC- players with condensation shield

--------------------------------------------------------------------------------
7b34bc9e00 | David Lawrence Ramsey | 2011-02-05 14:49:51 -0600

Tweak wording, so that Zin doesn't refer to himself in the third person.

--------------------------------------------------------------------------------
20a6c012a1 | David Lawrence Ramsey | 2011-02-05 14:42:46 -0600

Add spacing fix.

--------------------------------------------------------------------------------
f12d027d83 | Adam Borowski | 2011-02-05 21:40:34 +0100

Chop up an overly long line.

--------------------------------------------------------------------------------
667ec5ef6a | Eronarn Palazzo | 2011-02-05 21:32:33 +0100

Various recite fixes.
* Text changes.
* Properly check whether a monster is confused.
* Recite timer (as a mon_ench).
* Fix a crash: you could be interrupted before your recite type is chosen,
  but the interruption text had referenced your recite type.

--------------------------------------------------------------------------------
8804848bc4 | Eronarn Palazzo | 2011-02-05 19:26:12 +0000

Improve quicksilver bolt messages
Change the message to mention that it dispels, since this isn't immediately
obvious from the attack itself.

--------------------------------------------------------------------------------
bb8fe4e93e | Chris Campbell | 2011-02-05 19:04:00 +0000

Give small gladiators darts instead of stones (RangerC)

--------------------------------------------------------------------------------
5fcad2d60d | Chris Campbell | 2011-02-05 19:03:43 +0000

Make long blades a starting weapon choice (RangerC)
Allows backgrounds that get to pick their starting weapon to select a
falchion.

--------------------------------------------------------------------------------
c68df13d33 | Chris Campbell | 2011-02-05 17:11:41 +0000

Make Summon Butterflies require spell power for effectiveness
Summon butterflies previously always summoned at least 15 butterflies,
regardless of spell power. It now summons 15 at most, with only 3-6 at low
spell power, reaching 10-15 at moderate to high spell power.

--------------------------------------------------------------------------------
c97d7f5b54 | MarvintheParanoidAndroid | 2011-02-05 16:57:11 +0000

Don't give Wanderers with Conj/Poison skill the new book of Stalking
Add it as an option for wanderers with Tmut skill, though.

--------------------------------------------------------------------------------
1f3bf3c4c7 | Adam Borowski | 2011-02-05 11:21:59 +0100

Curio's updated tile for Kirke.

--------------------------------------------------------------------------------
424ab51a77 | Adam Borowski | 2011-02-05 11:21:17 +0100

Unbreak tiles.

--------------------------------------------------------------------------------
bb0746e2cc | Jude Brown | 2011-02-05 16:04:19 +1000

Properly use describe_info::title for feature descriptions.
Previously they just pushed the name of the feature onto the description
body. This is problematic for a variety of reasons, but was never
noticed because the body was never not displayed.

Now it should report the title in all instances -- whether viewing the
description or the extended description.

--------------------------------------------------------------------------------
3e89319f16 | Jude Brown | 2011-02-05 16:04:18 +1000

Split monster, feature quotes into another screen.
Now, you're prompted to hit "!" (or, for tiles, right-click) to switch
between the description of the feature (or monster) and the quote for
that feature -- if that monster or feature has a quote associated.

This doesn't touch item description code.

--------------------------------------------------------------------------------
aacbab817b | MarvintheParanoidAndroid | 2011-02-04 23:15:04 +0000

Make semi-controlled blink random if it fails to find a location
Previously it would just fail and cost a turn if there was no room in the
direction you selected.

--------------------------------------------------------------------------------
5b1ebd517a | MarvintheParanoidAndroid | 2011-02-04 23:14:54 +0000

Improve Alistair's Intoxication description
Mention that it doesn't work on rPois monsters (but does affect rPois
casters).

--------------------------------------------------------------------------------
3b7db3e92b | MarvintheParanoidAndroid | 2011-02-04 23:14:40 +0000

Don't cancel Condensation Shield when blinking/teleporting

--------------------------------------------------------------------------------
ed61c0ed73 | Adam Borowski | 2011-02-04 22:13:31 +0100

Move Ely's protection from 'aP' to 'ap'.

--------------------------------------------------------------------------------
4a15e32225 | Adam Borowski | 2011-02-04 21:58:28 +0100

Simplify prayer a bit.
It's still a mess, though.

Fixes:
* no-op prayer doesn't take time anymore
* !p works for all gods, not just Beogh and Nemelex
* don't arbitrarily show "XXX ignores your prayer." for some gods.
  Currently, all show "You offer prayer to Beer." "Beer is uncommittal.",
  but that's probably spam.

--------------------------------------------------------------------------------
1c1d130d64 | Adam Borowski | 2011-02-04 21:21:05 +0100

Rename DUR_PRAYER to DUR_JELLY_PRAYER, as that's what it is.
There's a bug, by the way: jelly paralyzation duration has no relation to
the status light.

--------------------------------------------------------------------------------
0239865da6 | Adam Borowski | 2011-02-04 20:47:49 +0100

Remove the notion of praying for gifts.
Zin's manna and Jiyva's jelly paralysis have nothing in common with regular 
gifts.

--------------------------------------------------------------------------------
4beb0cac1c | Adam Borowski | 2011-02-04 20:24:32 +0100

Make Elyvilon's weapon sacrifice use 'p'.  Lifesaving is 'aP'.

--------------------------------------------------------------------------------
bf3a247e3e | Adam Borowski | 2011-02-04 20:24:32 +0100

Get rid of remnants of tiered unique depths.
They weren't followed for new ones anyway.

--------------------------------------------------------------------------------
43fa06c26c | Raphael Langella | 2011-02-04 18:47:10 +0100

Skill menu: minor cosmetic change to the footer line.

--------------------------------------------------------------------------------
31592c28e8 | MarvintheParanoidAndroid | 2011-02-04 15:14:39 +0000

Don't destroy the orb by apporting it into deep water/lava
It just won't move, instead of destroying itself or becoming inaccessible.

--------------------------------------------------------------------------------
120f289ee8 | Raphael Langella | 2011-02-04 13:44:26 +0100

More verbose skill menu help for tutorial/hint.

--------------------------------------------------------------------------------
80fa047221 | Raphael Langella | 2011-02-04 13:44:26 +0100

Fix cloud spells range (again).

--------------------------------------------------------------------------------
f9d89a5aac | Johanna Ploog | 2011-02-04 00:10:58 +0100

Fix #3321: Don't prompt for viable unarmed attacks.
If your previous "weapon" was actually a stack of arrows or some kind
of ranged implement, the "really attack while unarmed" prompt is not
very useful.

Sure, it does prevent you from accidentally hitting a monster in
melee (like wielding a ranged weapon does), but it's not really worth
the annoyance. I think.

--------------------------------------------------------------------------------
3279d8d5a9 | Johanna Ploog | 2011-02-04 00:10:56 +0100

Fix #2726: Wrong tooltip for evokable staves.

--------------------------------------------------------------------------------
ed87c10e1f | David Ploog | 2011-02-04 00:08:47 +0100

Reduce serial vault chances.

--------------------------------------------------------------------------------
6662e4b5ed | Adam Borowski | 2011-02-04 00:04:36 +0100

Give staves and rods a chance to be generate cursed.

--------------------------------------------------------------------------------
16e4c11c5e | Adam Borowski | 2011-02-03 23:55:10 +0100

Identify staff brands on wield, just like weapons and rods do.
This fixes inconsistencies with TSO warning you about necro and poison
on un-ided staves.  It's not like you won't get that Spellcasting 1 anyway...

--------------------------------------------------------------------------------
494a9cd07d | Raphael Langella | 2011-02-03 23:47:38 +0100

Tutorial: simple skill menu.
No display of aptitudes, and remove the show all button.

--------------------------------------------------------------------------------
dfb1936d63 | Johanna Ploog | 2011-02-03 23:19:42 +0100

Add a message on forgetting a spell by book destruction.
The lack of feedback can leave the player wondering if anything went
wrong.

--------------------------------------------------------------------------------
9d6e1c3315 | Johanna Ploog | 2011-02-03 22:41:30 +0100

Fix #3385: Maurice getting an unnecessary weapon overlay.

--------------------------------------------------------------------------------
620e0c23c9 | Johanna Ploog | 2011-02-03 22:38:35 +0100

Mention scrolling commands on message history screen.
That -More- only showed up if you'd already scrolled up, yet there
was no indication that scrolling was even possible, let alone how to
do so.

--------------------------------------------------------------------------------
2bb74c70dd | Johanna Ploog | 2011-02-03 22:04:29 +0100

Suppress feature quotes in hints mode and tutorial.

--------------------------------------------------------------------------------
4cac62b365 | Johanna Ploog | 2011-02-03 22:04:28 +0100

Suppress tree descriptions on mouseover.
Where trees appear in the dungeon, they usually appear in large groups.
This means that, if you use the mouse for movement, you constantly get
the message area covered by tree descriptions.
Like for floor and walls, descriptions can now only be read via
rightclick.

--------------------------------------------------------------------------------
ff61a5e8c4 | Raphael Langella | 2011-02-03 21:33:39 +0100

Fix "tab for replaying last sprint map" showing up in tutorial menu.

--------------------------------------------------------------------------------
c800eb9f9e | Raphael Langella | 2011-02-03 21:33:34 +0100

Fix cloud spells range.
What a sloppy coder...

--------------------------------------------------------------------------------
d0de38cf98 | Johanna Ploog | 2011-02-03 21:27:35 +0100

Various tutorial tweaks, mostly wording fixes.

--------------------------------------------------------------------------------
3a837c4b60 | Adam Borowski | 2011-02-03 17:53:48 +0100

"Blade tentacles".

--------------------------------------------------------------------------------
6813b019f0 | Adam Borowski | 2011-02-03 17:52:42 +0100

Merge branch 'master' into octopus, fix breakage.

--------------------------------------------------------------------------------
b1d1c8eca8 | MarvintheParanoidAndroid | 2011-02-03 17:02:56 +0100

Adjust ability piety costs
Imprison decreased from 8 to 4 piety.
Summon Divine Warrior increased from 4 to 6 piety.
Major Destruction decreased from 2 to 1 piety.
Greater Demon increased from 3 to 5 piety. [1KB: 4]

--------------------------------------------------------------------------------
30b22cd410 | Adam Borowski | 2011-02-03 17:00:17 +0100

Make "nothing wielded" even betterer.

--------------------------------------------------------------------------------
7ddc97fbe9 | Eronarn Palazzo | 2011-02-03 15:52:32 +0100

Modify the "Nothing wielded" message for forms and claw-havers.

--------------------------------------------------------------------------------
bd743f5f51 | Adam Borowski | 2011-02-03 15:27:54 +0100

Make Tukima's Dance Party tentatively Hex/9.
Most likely still overpowered.

--------------------------------------------------------------------------------
d792155568 | Adam Borowski | 2011-02-03 15:25:50 +0100

Nerf gladiator's shield to a buckler.

--------------------------------------------------------------------------------
34ebe01652 | Matthew M Ince | 2011-02-03 15:14:44 +0100

Tukima v 1.0

--------------------------------------------------------------------------------
e2b04897c0 | Jude Brown | 2011-02-03 22:19:45 +1000

New killer_types: banished, unsummoned, timeout.
Currently only KILL_BANISHED is implemented: KILL_RESET is used in a lot
of instances to denote both a monster that has been unsummoned, a
monster whose enchantment has timed out, as well as banished monsters.

Splitting this out makes a lot more sense and it means that the
was_banished check actually functions properly.

I intend to split summoned monsters out of KILL_DISMISSED into
KILL_UNSUMMONED; likewise, monsters whose durations time out
(specifically dancing weapons and Sticks to Snakes snakes) will switch
to KILL_TIMEOUT.

--------------------------------------------------------------------------------
3eefd2f03e | Adam Borowski | 2011-02-03 13:11:06 +0100

Move tile info during Abyss shifts.
This wasn't needed before we had vaults, but now, any vaults that has any
redefinitions needs to have them shifted as well.

This commit is incomplete: tile flavour needs to be reset where appropriate,
I don't know how to do this.

--------------------------------------------------------------------------------
54bc2e4c5c | Raphael Langella | 2011-02-03 12:56:21 +0100

Fix casting cloud spells out of range.
You used to be able to do it by targetting with !

--------------------------------------------------------------------------------
a12c5a35d6 | Raphael Langella | 2011-02-03 12:56:21 +0100

Switch the colours of cross-training and transfer knowledge.
Now, cross-training is in green.
Heroism and transfer knowledge are lightblue (and are exclusive).
Heroism being lighblue makes sense because that's the colour of stat boosts.

--------------------------------------------------------------------------------
4925e8c729 | Vsevolod Kozlov | 2011-02-03 14:44:57 +0300

_map_feat_is_on_edge: Don't consider cells that aren't in the map as edge ones.
This prevents points that are in the middle of emptiness from being picked as
random exit points in normal vaults or mini_float minivaults.

The rationale is that using such points as exits is very unlikely to be helpful
in achieving connectivity.

--------------------------------------------------------------------------------
8985479674 | Vsevolod Kozlov | 2011-02-03 14:15:32 +0300

Eliminate unnecessary mini_floats.
It has no effect when the vault has at least one @, + or = that is used as an
entry/exit point.

--------------------------------------------------------------------------------
70bffae783 | Vsevolod Kozlov | 2011-02-03 14:03:36 +0300

docs/develop/levels: Mention that + and = are considered entry points.

--------------------------------------------------------------------------------
91247bc552 | Vsevolod Kozlov | 2011-02-03 14:03:36 +0300

Use _map_feat_is_on_edge to determine whether a @, + or = is an exit point of a 
vault.
This makes handling of @ and += consistent.

@s that aren't on the edge of the map are no longer added as exit points.  Such
exit points were possible in the past, but only served the purpose of
potentially isolating the vault by accident.

+=s that aren't on the edge of the bounding box, but are adjacent to cells that
aren't a part of the map, are now considered exit points.

--------------------------------------------------------------------------------
4be90b3bcb | MarvintheParanoidAndroid | 2011-02-03 11:57:33 +0100

Maxwell's Patent Armour of preservation
Increases enchantment to +15, adds MR, and gives preservation ego, to
try and tempt players to die spectacularly by wearing a plate mail with
-TELE.

--------------------------------------------------------------------------------
b0a0089713 | Adam Borowski | 2011-02-03 11:52:55 +0100

Allow kenku to land/liftoff while in lich form.
Since they are wingless, no meat and guts shouldn't affect much -- and
there are bone dragons which can fly as well.

I didn't do this for statue form since skeletons do keep light pneumatic
bones but a bird-shaped piece of stone probably does not.  It'd be good
to force landing there.

--------------------------------------------------------------------------------
b5c807f33a | Adam Borowski | 2011-02-03 11:11:45 +0100

Crash earlier when transiting a broken monster; ass a shim for clouded's save.
It's too late to debug it when unmarshalling, all interesting info is lost by
that time.

--------------------------------------------------------------------------------
2f23645dcc | MarvintheParanoidAndroid | 2011-02-03 10:48:03 +0100

Improve G help
You can use ^ before selecting a branch, so it should be mentioned.

--------------------------------------------------------------------------------
5c73dde22c | Adam Borowski | 2011-02-03 10:46:28 +0100

Remove an unused function.

--------------------------------------------------------------------------------
7e020805dd | Adam Borowski | 2011-02-03 02:44:23 +0100

Fix Heroism's description being mislabeled.

--------------------------------------------------------------------------------
eb9675ed7f | Adam Borowski | 2011-02-03 02:21:55 +0100

Temporarily revert "On game_reset, select the last game type by default on the 
main screen."
It breaks "./crawl -name foo" and thus CDO.
I'm reverting to let people play, let's debug this without hurry.

This reverts commit 2b6b37f78b5189b8dfb5a64b155c022ea1c58a53.

--------------------------------------------------------------------------------
60fc05e14b | Adam Borowski | 2011-02-03 02:20:33 +0100

Run checkwhite.
I guess a new stab at having it in a commit hook would be a good idea...
Even if you can't actually modify files from there.

--------------------------------------------------------------------------------
f9e6f93ddf | Adam Borowski | 2011-02-03 01:28:26 +0100

Tone down Heroism to +5.  It's supposed to be a nerf after all.
With +10, SpAs go from EV 17 to EV 30, unarmed damage gets a mad bonus
as well.  Turns out testing the ability only on MDFi wasn't enough, as
AC and weapon damage don't depend on skills that much.

--------------------------------------------------------------------------------
d4d3d9e940 | Adam Borowski | 2011-02-03 01:19:57 +0100

Save monster flags as 64 bit.

--------------------------------------------------------------------------------
d52db140b0 | Adam Borowski | 2011-02-03 01:19:57 +0100

Don't use enums for MF_ constants, they're a bitfield.

--------------------------------------------------------------------------------
3c4fee0610 | Adam Borowski | 2011-02-03 01:19:57 +0100

Add support for int64_t props.

--------------------------------------------------------------------------------
536ad4b089 | Johanna Ploog | 2011-02-03 00:17:30 +0100

Remove the old tutorial map.

--------------------------------------------------------------------------------
8fee18b0f7 | Johanna Ploog | 2011-02-03 00:12:37 +0100

Improve the tutorial lesson on gods.
Now just Trog, and includes book burning, berserk, and exhaustion.

--------------------------------------------------------------------------------
2b6b37f78b | Raphael Langella | 2011-02-02 23:55:13 +0100

On game_reset, select the last game type by default on the main screen.

--------------------------------------------------------------------------------
db7a7afbe0 | Raphael Langella | 2011-02-02 23:55:13 +0100

Starting sub-menus: escape brings back to main menu instead of exiting the game.

--------------------------------------------------------------------------------
891a862c71 | Raphael Langella | 2011-02-02 23:55:13 +0100

Fix monsters not respecting no_rtele_into.

--------------------------------------------------------------------------------
020ed1a097 | Charles Otto | 2011-02-02 17:49:19 -0500

Update eldritch tentacle base pos if abyss shifted
Update eldritch tentacles' base position if they get shifted by the
abyss, so that they don't immediately break after the shift.

--------------------------------------------------------------------------------
5d765b0a5a | Johanna Ploog | 2011-02-02 20:11:05 +0100

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
aab5037474 | Johanna Ploog | 2011-02-02 20:09:53 +0100

Various tutorial tweaks.
Among others, fix the epilogues sometimes not showing, replace
the wand of fire with flame (bye bye, wax puzzle!) and replace
that one killer gnoll with a hobgoblin.

--------------------------------------------------------------------------------
a0590cf682 | Vsevolod Kozlov | 2011-02-02 21:24:09 +0300

docs/develop/levels: For good measure, mention that mini_float has no effect 
when the vault has @s.

--------------------------------------------------------------------------------
de89358314 | Vsevolod Kozlov | 2011-02-02 21:21:30 +0300

docs/develop/levels: A stab at updating information regarding vault 
connectivity.
This might be less clear than the old version, but it is also less misleading.
@ always gets connected, even in minivaults.  mini_float is needed to get random
exit picking in minivaults.

--------------------------------------------------------------------------------
e6c8257be7 | Vsevolod Kozlov | 2011-02-02 21:11:05 +0300

docs/develop/levels/syntax.txt: Crude attempt at explaining the 'transparent' 
tag.
Wording could be better, and it only explains half of the implementation details
behind the tag and none of the consequences.  Still, better than nothing.

--------------------------------------------------------------------------------
9fc4b3736e | Vsevolod Kozlov | 2011-02-02 21:09:51 +0300

docs/develop/levels/syntax.txt: Remove an out-of-date mention of 'O'.
Entries are placed with KFEAT.  If I recall correctly, this is explained, or at
least is mentioned, elsewhere in the level design documentation.

--------------------------------------------------------------------------------
a55eec42d5 | Johanna Ploog | 2011-02-02 19:00:34 +0100

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
c0a7cbf750 | Johanna Ploog | 2011-02-02 18:57:17 +0100

Continue spellcasting tutorial.
Seeing how skeletons cannot be reliably placed (see #3361), I've now
used Summon Small Mammals instead, though it lacks the oomph! an
undead army would have.

Still TODO: Various triggers for miscasts etc.

--------------------------------------------------------------------------------
d5ec0e4dbf | Johanna Ploog | 2011-02-02 18:55:51 +0100

Reserve tile flags for eldritch tentacles.
Unfortunately, this means we've reached the limit of 32 again...

--------------------------------------------------------------------------------
6f537f9bc7 | Johanna Ploog | 2011-02-02 18:55:34 +0100

Silence a compilation warning.

--------------------------------------------------------------------------------
3bfabe92e2 | Adam Borowski | 2011-02-02 15:39:39 +0100

Okawaru: Haste -> Finesse.
A double speed boost (rather than mere 1.5x), but affects only combat
(melee and ranged).  This is a part of Okawaru's nerf.

The ability doesn't need as much victory dancing of Invocations.

--------------------------------------------------------------------------------
426508ea80 | Adam Borowski | 2011-02-02 15:33:02 +0100

Okawaru: Might -> Heroism.
It increases all non-magic skills by 10 (we might need to adjust this number).
Evoc and Invoc count as magic here.  No skill is increased past 27.

HP bonus from Fighting is not affected.

Because gains from weapon skills taper off, this ability is very useful early
on but weak later, up to uselessness with all relevant skills maxxed (when you
actually are a "hero").

Unlike Might, there are fun possibilities like using this to briefly use a
weapon you are unskilled in -- and it doesn't duplicate a potion.

--------------------------------------------------------------------------------
c7ab4cf82a | Adam Borowski | 2011-02-02 11:24:54 +0100

Make door mimics block LOS.
This doesn't do anything to beams, but that's a pending problem anyway.

--------------------------------------------------------------------------------
86e077bd68 | Jude Brown | 2011-02-02 19:04:50 +1000

Transfer ENCH_FAKE_ABJURATION through polymorph.
Yup, no more polymorphing snakes from Sticks to Snakes into permanent
allies. Oops!

--------------------------------------------------------------------------------
ab3080fdbf | Jude Brown | 2011-02-02 19:03:45 +1000

Nuke superfluous was_banished setting; fix summoned monster banishment.
Summoned monsters will now no longer have their "corpse disappear in a
puff of smoke!" if there was a chance of them leaving a corpse.

--------------------------------------------------------------------------------
6f0792b017 | Jude Brown | 2011-02-02 19:03:01 +1000

Fix reversed login in banished dancing weapon code.
Previously only summoned dancing weapons would leave behind corpses.
Now the logic should be correct.

--------------------------------------------------------------------------------
7c43b3ef19 | Jude Brown | 2011-02-02 18:54:15 +1000

Set was_banished earlier in monster_die.
Rationale: killer == KILL_RESET == banished. A lot of instances check
killer == KILL_RESET and !mons->is_summoned(): this is because
abjuration uses either KILL_RESET or KILL_DISMISSED.

When their timer runs out, they're killed with KILL_DISMISSED. If their
timer runs out while you are off the level (and they're thus
marshalled), they will be killed with KILL_RESET when you re-enter the
level.

This applies only to *summoned* monsters. All other monsters that are
killed with KILL_RESET have been banished. Even if there are borderline
cases, this shouldn't be an issue: none of the code using was_banished
relies on messages.

However, as was_banished wasn't being set until the KILL_RESET case
was being reached, banished dancing weapons were never assumed to be
banished, and thus always left weapon "corpses" behind. The fact that
they were partially fixed relies on accidental behaviour: all dancing
weapons were treated as banished for a short while.

Finally, my rationale for setting was_banished to true regardless of
whether or not a monster was summoned is: What happens when you banish a
summoned monster? Short answer: currently, "The rat is devoured by a
tear in reality!" "The rat's corpses disappears in a puff of smoke!".
I'm not sure whether this is new behaviour, or a regression caused by my
changes to corpse handling for FAKE_ABJURATION monsters (specifically,
sticks to snakes snakes), or whether it was a bug that nobody had
noticed because nobody's banished a summoned monster that had the
possibility of leaving a corpse!

Yup: three hundred word commit messages just for changing the value of
one variable.

This is basically informed by the fact that the KILL_XXX types are
totally broken. The comments in enum.h are totally incorrect in most
instances; there is also weird behaviour (of setting KILL_RESET to
KILL_DISMISSED for some types of monsters: does this result in further
strange messages when they are banished?) that doesn't seem to have any
rhyme or reason.

We should fix it. I would fix it if I wasn't too terrified by the
current state of monster_die.

--------------------------------------------------------------------------------
ea2cc35cab | Adam Borowski | 2011-02-02 00:49:31 +0100

Don't generate minmay_holes on non-shaftable levels.

--------------------------------------------------------------------------------
41cdc40246 | Adam Borowski | 2011-02-01 16:28:05 +0100

No imprisoning invisible stuff, either.

--------------------------------------------------------------------------------
1eea11486f | Adam Borowski | 2011-02-01 16:24:25 +0100

Fix a wrong message when an invis monster blocks imprisonment.

--------------------------------------------------------------------------------
aacc133cea | Adam Borowski | 2011-02-01 16:13:28 +0100

Allow to Tomb over unknown traps.
You already can do this over known ones...

--------------------------------------------------------------------------------
a1603b7a4b | Adam Borowski | 2011-02-01 16:08:55 +0100

Fix card/Xom Tomb crashing.  There's more than your puny Zin, do-gooders!  
Worship the only true god!

--------------------------------------------------------------------------------
7df1b9df79 | Adam Borowski | 2011-02-01 15:53:30 +0100

s/antisin/virtue/

--------------------------------------------------------------------------------
ecdbcf60ea | Adam Borowski | 2011-02-01 14:49:14 +0100

Mark jellies, eyes and cobs as unfleshy.

--------------------------------------------------------------------------------
6e95a0c6ee | Adam Borowski | 2011-02-01 14:43:24 +0100

Fix reversed logic for res_rotting.
A subsequent redundant check made rotting never happen, though, instead
of working for wrong monsters.

--------------------------------------------------------------------------------
147c47ec73 | Adam Borowski | 2011-02-01 14:39:49 +0100

Fix "the lich's flesh is seared" (Zin's silver corona).
Not sure about jellies...

--------------------------------------------------------------------------------
08a9a0163a | Adam Borowski | 2011-02-01 14:03:18 +0100

Remove the declaration of a non-existant function.
It's mon->is_skeletal().

--------------------------------------------------------------------------------
49b357c549 | Adam Borowski | 2011-02-01 13:48:07 +0100

Elaborate on Charms vs Hexes.

--------------------------------------------------------------------------------
cf77e6d5ea | Jude Brown | 2011-02-01 21:46:14 +1000

Transmutation change: Sandblast -> Earth.
This brings it in line with the rest of the spells that involve
explosive breakdown of things into base components, such as Shatter and
Lee's Rapid Deconstruction.

--------------------------------------------------------------------------------
f209e5ab30 | Jude Brown | 2011-02-01 21:44:41 +1000

A short treatise on spell schools.
Well, okay, I lie: it's a thousand words or so. I've attempted to
distill all of the things that I believe we can all agree upon regaring
spell schools into a single document.

There are obviously going to be things that some people agree with and
things that other people loudly do not. I think this is okay: we can
change it and adjust it as necessary.

The primary intent is to be used as a quick reference and a central
point where we can agree upon what is and is not included in a specific
school.

--------------------------------------------------------------------------------
df379fb7e5 | Jude Brown | 2011-02-01 21:44:33 +1000

Reflavour Evaporation description.
Currently there's nothing about the spell that goes "Yes, this is a
transmutation". How does heating something with fire and then throwing
that potion include Transmutation?

Now, the description clearly states that the act of the cloud creation
itself is a result of the Transmutation, rather than the heating of the
potion.

--------------------------------------------------------------------------------
fb6c17e21f | Adam Borowski | 2011-02-01 11:15:34 +0100

Make it possible (although, sadly, very unlikely) to find banished randarts.

--------------------------------------------------------------------------------
4b4ed7869c | Jude Brown | 2011-02-01 19:51:46 +1000

Fix compilation.

--------------------------------------------------------------------------------
abd58db8e7 | Jude Brown | 2011-02-01 19:48:09 +1000

Leda's Liquefaction gains Tmut; loses two levels.
In line with Dig, it is now Transmutation. Hooray!

In order to compensate for it already being a too strongly levelled
spell, and introducing a dual-school factor, I've reduced the level to
4. Might be too much, but we'll see how it goes.

--------------------------------------------------------------------------------
cbeaeb2412 | Jude Brown | 2011-02-01 19:48:09 +1000

Partially revert "Shatter, Dig, Lee's and Maxwell's lose their Transmutiveness."
This partially reverts commit 1e9765f4aca5abdd3018f6a11dedd1f62fa7da74.

Dig is now Earth/Transmutation again.

--------------------------------------------------------------------------------
e2f96321f9 | Adam Borowski | 2011-02-01 10:39:38 +0100

Add a comment stating the additional ancient champions KMONS definition is not 
used.

--------------------------------------------------------------------------------
52784f33d9 | Adam Borowski | 2011-02-01 10:39:38 +0100

Fix some #ifdef WIZARD but not wizmode information leaks.

--------------------------------------------------------------------------------
d44bad3c5a | Jude Brown | 2011-02-01 19:36:13 +1000

Fix #3364: sticks to snake snakes no longer leave corpses.
Hopefully this is properly properly fixed now, unlike last time where it
was merely partially properly fixed. Oops!

--------------------------------------------------------------------------------
42fb131fc9 | Jude Brown | 2011-02-01 19:35:50 +1000

Fix #3355: banished dancing weapons are properly banished.
Instead of "falling to the ground", the weapon is likewise evoured by a
tear in reality!

--------------------------------------------------------------------------------
19d24356fe | Jude Brown | 2011-02-01 19:10:20 +1000

Wizard commands for: banish or kill a monster.
To help track down bugs and make life easier in general.

--------------------------------------------------------------------------------
74b7ce1319 | Mu | 2011-02-01 00:04:39 +0000

Give the Hellbinder and Cloud Mage descriptions
Wizlab monsters.

Due to their random names these descriptions must
be defined in the vault, rather than monsters.txt

--------------------------------------------------------------------------------
fe2ce16010 | Johanna Ploog | 2011-02-01 00:59:33 +0100

Fix #3360: Crash on entering book shops as a good god follower.
Replace the assertion with an early return.
Checking for randart properties is pointless for books anyway.

--------------------------------------------------------------------------------
2b78d2554a | Mu | 2011-01-31 23:49:57 +0000

Properly introduce Gretell to ancient champions
This simply adds another starting KMONS entry to the
ancient_champions_mu vault with all the possible
spellbooks that the ancient champions can have.
This allows Gretell to report their stats more
accurately.

--------------------------------------------------------------------------------
7fcd5deea3 | Raphael Langella | 2011-01-31 19:11:38 +0100

Fix message for using forbidden items ignoring armour and jewellery.
This only affected Chei not warning you when putting on boots of running and
amulet of rage.

--------------------------------------------------------------------------------
e5b26695fd | Raphael Langella | 2011-01-31 19:11:38 +0100

Add wielded weapon to the training dummy tile.

--------------------------------------------------------------------------------
0ab910c95d | Raphael Langella | 2011-01-31 19:11:38 +0100

Fix wording.

--------------------------------------------------------------------------------
7d5a31bddd | David Lawrence Ramsey | 2011-01-31 10:20:25 -0600

Add whitespace fixes.

--------------------------------------------------------------------------------
3113a6af47 | David Lawrence Ramsey | 2011-01-31 10:17:49 -0600

Add wording fix.

--------------------------------------------------------------------------------
64b8576908 | Adam Borowski | 2011-01-31 15:31:01 +0100

Update the school descriptions of Charms and Hexes.

--------------------------------------------------------------------------------
1e9765f4ac | Jude Brown | 2011-01-31 21:24:25 +1000

Shatter, Dig, Lee's and Maxwell's lose their Transmutiveness.
This is based on a couple of conversations that I've had recently: there
seems to be a tendency for Earth-based spells that do some sort of
direct interaction with the earth to having Transmutation come along for
the ride.

For instance, Maxwell's Silver Hammer: the reasoning would appear to be
that you "transmute" the blade into "silver". However, the description
of the spell states that it merely adds a "temporary gravity field" to
the weapon. Thus, it being Transmutation/Earth makes no sense. I've
changed it to Hexes/Earth, in line with the other branding spells.

Dig talks about "liquefying" the earth to make a tunnel through it. I'm
not sure how recent this change is, but as Leda's Liquefaction is
a spell and the function of it does not involved Transmutation, it makes
sense for Dig to lose Transmutation. More on this shortly.

Regarding Shatter: it's described as a burst of percussive force. How is
there transmutation involved in this? Transmutation should be turning
one thing into another. Again, more on this shortly.

Finally, Lee's Rapid Deconstruction: it causes a wall to explode. Again,
you're not actually transmuting the wall (or the wall-like creature,
or whatever) *into* fragments, you are instead using magic to break it
into pieces. There is no transmutation here.

There is also the likelihood that some of these spells had Transmutation
added in order to make them into a dual-school spell and thus slightly
more difficult (this is the "more" I talked about earlier). In these
instances, where possible, the spell should be made more difficult, or
another school should be added (or the difficulty artificially
increased). I don't think it's very good reasoning to go "oh, but
they're too easy to cast, and they're Earth spells, and all Earth spells
are basically Transmutations so why not?"

On the subject of spells that I have not changed (that are Earth and
Transmutation):

Petrify: This turns "flesh" into stone. Clearly a transmutation.

Statue Form: A form spell.

Passwall: You are converting either yourself or the wall into something
passable. This is a borderline case, and in this instance I decided to
go with leaving it as Transmutation, rather than removing Transmutation
as I did with other spells.

Sandblast: Again, borderline. I've left it as Transmutation, but I'm
inclined towards removing this on second thoughts.

Stoneskin: You convert your skin to stone.

This brings an end to me treatise. Enjoy your evening!

--------------------------------------------------------------------------------
9e49f6b3bd | Adam Borowski | 2011-01-31 02:17:28 +0100

Update Ignite Poison's description.

--------------------------------------------------------------------------------
80628ef283 | Adam Borowski | 2011-01-31 02:04:57 +0100

Update a comment.

--------------------------------------------------------------------------------
96eb05ed74 | Adam Borowski | 2011-01-31 02:02:30 +0100

Make Silence Hex/Air.

--------------------------------------------------------------------------------
e71fe38a98 | Adam Borowski | 2011-01-31 01:58:19 +0100

Likewise, move old Ench adjectives to Hexes.
All of "entrancing", etc is pure hex -- including, ironically, "charming"
(this comes from these words in English being mostly synonyms).

--------------------------------------------------------------------------------
e86e78609b | Johanna Ploog | 2011-01-31 01:29:35 +0100

Document that some randbook map tags only work for themed books.

--------------------------------------------------------------------------------
90bfaad60d | Johanna Ploog | 2011-01-31 01:24:19 +0100

Also replace Enchantment -> Charms for adjective randbook entries.

--------------------------------------------------------------------------------
3169ac443a | Johanna Ploog | 2011-01-31 01:24:17 +0100

Apply randbook multi-spell definitions to the spellcasting tutorial.

--------------------------------------------------------------------------------
346ac24ae4 | Johanna Ploog | 2011-01-31 01:24:15 +0100

Allow predefining several spells for randart books in map defs.

--------------------------------------------------------------------------------
4a5bff4dde | Adam Borowski | 2011-01-30 23:58:30 +0100

Revert the move of branding spells to Charms; they're Hexes again.
This leads to some problems with Crusaders...

--------------------------------------------------------------------------------
1bb72aa86a | Adam Borowski | 2011-01-30 23:43:07 +0100

Move all randart book names from Charms to Hexes, bring in some replacements.
All of these were fit only for the latter.

--------------------------------------------------------------------------------
86acd0ce52 | Johanna Ploog | 2011-01-30 22:01:01 +0100

Greatly simplify randart book generation.
Gets rid of the pesky storing of values in a prop vector and nested
recursive calling. Bleh.

Since randart book don't actually get randart properties, all we need
to do is set the randart flag and generate a random appearance.

--------------------------------------------------------------------------------
1eb3f2a599 | Johanna Ploog | 2011-01-30 21:24:33 +0100

Purge a redundant function.

--------------------------------------------------------------------------------
7c9a356e0e | Johanna Ploog | 2011-01-30 21:24:30 +0100

Bring randart book names up-to-date with the Enchantment split.

--------------------------------------------------------------------------------
c41c714b24 | Johanna Ploog | 2011-01-30 21:24:26 +0100

Reorder some monsters in the weapon offset function.

--------------------------------------------------------------------------------
12d441c426 | Johanna Ploog | 2011-01-30 21:24:24 +0100

Fix #3330: Giant tiles with floating/missing weapons.
Readjust weapon offsets for hill giants, and display weapons for
fire/frost giant and ettin, the latter only with one of them.

--------------------------------------------------------------------------------
904519b6bd | David Lawrence Ramsey | 2011-01-30 10:27:56 -0600

Simplify Recite effect messages.

--------------------------------------------------------------------------------
bcf3f9494c | David Lawrence Ramsey | 2011-01-30 10:08:23 -0600

Add wording fixes.

--------------------------------------------------------------------------------
521124c7ec | David Lawrence Ramsey | 2011-01-30 09:50:45 -0600

Move the Recite closure message into the speech database.
It's chosen completely randomly as it is, so this cleans up the code a
bit and also allows more possible closure messages.

Also, fix the lack of space between the Recite message and the Recite
closure message, and add a few formatting fixes.

--------------------------------------------------------------------------------
f8519bb344 | Johanna Ploog | 2011-01-30 14:47:12 +0100

Fix #3284, 3285: click-travel stopping for mimics and toadstools.

--------------------------------------------------------------------------------
b6856975b6 | Johanna Ploog | 2011-01-30 13:02:59 +0100

Simplify a few mimic checks.

--------------------------------------------------------------------------------
67b873d647 | Johanna Ploog | 2011-01-30 12:21:43 +0100

Fix item/feature mouseover leaking mimic information.

--------------------------------------------------------------------------------
5d1f5e4b7f | Johanna Ploog | 2011-01-30 11:04:53 +0100

Swap tutorial lessons 4 and 5 (spellcasting and magic).

--------------------------------------------------------------------------------
7c3e7205a2 | Johanna Ploog | 2011-01-30 11:04:51 +0100

Tweak spellcasting tutorial.
Better handling of memorising a second spell, etc.

--------------------------------------------------------------------------------
f674ec5753 | Jude Brown | 2011-01-30 15:11:11 +1000

Further vampire mosquito tweaks (Sunfall).

--------------------------------------------------------------------------------
452f3b7cdb | Adam Borowski | 2011-01-30 05:16:47 +0100

Fix a broken useless lookup.

--------------------------------------------------------------------------------
7e02490e5f | Adam Borowski | 2011-01-30 03:43:26 +0100

Merge branch 'recite'

--------------------------------------------------------------------------------
be28a35a3f | Jude Brown | 2011-01-30 12:11:26 +1000

Resolve #3335: state that unidentified items are unacceptable.
It's a bit of a roundabout way. We can't say "you have it but it's not
identified" because that's a major information leak. Instead, if we get
to the end of it, and we haven't found the item, always give a "Perhaps
it's not fully identified?" prompt instead.

--------------------------------------------------------------------------------
59c0b7cfb7 | Jude Brown | 2011-01-30 12:11:26 +1000

Remove potions of slowing from 1 Cheibriados altar vault.
Alas, no more free identification of slowing potions with this vault!
Alas? More like hooray!

--------------------------------------------------------------------------------
cdb8f91228 | Adam Borowski | 2011-01-30 02:57:31 +0100

Make potions of experience give some xp for skills as well.
This stops them from being useless at XL 27; you're very unlikely to see
any outside of Ziggurats where they're probably overabundant.

It's for consistency with Nemelex who hands out plenty of Experience cards
cheaply.  The other option would be marking them as useless, and stopping
generatino in Zigs.

--------------------------------------------------------------------------------
5661543d6f | Adam Borowski | 2011-01-30 02:50:06 +0100

Gather statistical data about monster tiers.
I see that the tier assignment is pretty wrong: like, orcs should be
"easy" rather than "trivial" on xl 3 since plenty of people die to
them, and so on.

--------------------------------------------------------------------------------
be916192b4 | Adam Borowski | 2011-01-30 00:35:14 +0100

Add missing descriptions for Ashenzari's abilities.

--------------------------------------------------------------------------------
43d942690a | Adam Borowski | 2011-01-30 00:18:22 +0100

Get rid of some more longs.

--------------------------------------------------------------------------------
14c0c7cb77 | Adam Borowski | 2011-01-29 23:34:11 +0100

Fix flag loss on 32 bit due to too short longs.

--------------------------------------------------------------------------------
ea0d24c344 | Adam Borowski | 2011-01-29 23:34:10 +0100

Use feature_property_type rather than longs.

--------------------------------------------------------------------------------
203fd98eac | Adam Borowski | 2011-01-29 23:34:10 +0100

Drop longs from SHA256's interface.
Come on, a "LOAD32H()" that still uses platform-dependent longs...

--------------------------------------------------------------------------------
32d3da2daa | Johanna Ploog | 2011-01-29 22:06:27 +0100

Several few tweaks to the item tutorial.

--------------------------------------------------------------------------------
592f281109 | Johanna Ploog | 2011-01-29 20:21:49 +0100

Initialise some tutorial triggers in the maps themselves.
Make sure the hints pertaining to shared events (gaining an xp level,
something being cursed) are only triggered once over the course of
the entire tutorial.

--------------------------------------------------------------------------------
1f001ec596 | Johanna Ploog | 2011-01-29 18:13:19 +0100

Extend spellcasting tutorial: Evaporate.
Needs lots of polishing, adding new triggers, and deactivating old
ones. I'll also have to modify randbook generation to allow for an
arbitrary number of predefined spells, which probably requires an
overhaul of the generation code. :(

--------------------------------------------------------------------------------
83128ede56 | Johanna Ploog | 2011-01-29 17:02:25 +0100

Swap owner and title parameters in book randart generation.
This matches the way the function is called and fixes oddities in
book naming introduced in my last commit.

--------------------------------------------------------------------------------
96797cfca3 | Darshan Shaligram | 2011-01-29 17:21:47 +0530

[3280] Fix ghosts and Mara illusions not getting spells.

--------------------------------------------------------------------------------
76db833ce6 | Darshan Shaligram | 2011-01-29 16:47:23 +0530

[3332] Fix _add_tentacle_overlay trying to add tile overlays outside the 
viewport area.

--------------------------------------------------------------------------------
55f503d985 | Raphael Langella | 2011-01-29 10:19:28 +0100

Fix casting cloud spells on (and through) walls.

--------------------------------------------------------------------------------
abea829347 | Raphael Langella | 2011-01-29 10:03:39 +0100

Add missing ENDMAP in sewer.des.

--------------------------------------------------------------------------------
a5db03f97e | Jude Brown | 2011-01-29 18:23:08 +1000

Resolve #3297: further glyph issues in sewers.
I missed applying part of this file. Oops!

--------------------------------------------------------------------------------
1bb2f36cf5 | Jude Brown | 2011-01-29 18:08:42 +1000

Fix TGW's misery.
Vampire mosquitoes are on an acceptable level as the rest of the
high-level threats in the sewers. However, they previously generated
with the same regularity as megabats, which was a bit too much.

I'm not sure exactly where to slot them back in but it appears my
sadistic streak has worn off, so I've just removed them for the time
being.

--------------------------------------------------------------------------------
71b7a5fe91 | Jude Brown | 2011-01-29 18:02:07 +1000

Fix trapdoor spiders being hinted at with } glyphs.
Submersion is not the same as invisibility, however, visible_to returns
false in both instances. Thus, submerged trapdoor spiders were being
treated as though they were actually invisible, in which case }s were
being placed around their location.

Oops!

--------------------------------------------------------------------------------
4d515aeb31 | Darshan Shaligram | 2011-01-29 13:24:48 +0530

Sheep catch fire, instead of catching on fire.

--------------------------------------------------------------------------------
a4c9d43347 | Darshan Shaligram | 2011-01-29 11:20:56 +0530

Acknowledge cancelled pickup prompt with MSG_OK.
Dangling prompts are evil, especially on laggy connections where the
player has no clue whether they're still at the prompt or not.

--------------------------------------------------------------------------------
ddca1db22c | Darshan Shaligram | 2011-01-29 10:58:12 +0530

Fixes to the Mac build+upload script.
This should be replaced by a makefile eventually.

--------------------------------------------------------------------------------
7639f16f4f | Darshan Shaligram | 2011-01-29 10:56:32 +0530

[3324] Fix travel/explore stopping when opening doors.

--------------------------------------------------------------------------------
57c17594be | Jude Brown | 2011-01-29 10:41:47 +1000

Add valrus to CIA hook translation table; reorder table.

--------------------------------------------------------------------------------
b7d310c6fc | Jude Brown | 2011-01-29 10:41:41 +1000

Fix sticks-to-snakes snakes sometimes generating corpses.
When they were killed by anything other than KILL_RESET, the
fake_abjuration flag was never set to true. Thus, when it came time to
place a corpse, one was placed.

--------------------------------------------------------------------------------
58e279dea7 | Jude Brown | 2011-01-29 10:41:40 +1000

Fix #3320: make trove manual requests function properly.

--------------------------------------------------------------------------------
7bcc156f0d | Jude Brown | 2011-01-29 10:41:40 +1000

Rename giant mosquito -> vampire mosquito; remove giant blowfly.
It's actually remove giant mosquito and rename blowfly to vampire
mosquito, because that's literally what I did. However, the resulting
effect is that mosquitoes have now had quite a buff, and blowflies are
now gone.

This hopefully keeps save compatability by transmuting any giant
blowfies into vampire mosquitoes. This will cause issue with attacks,
colour, etc, but these are transitory and will only last the minor
version.

--------------------------------------------------------------------------------
558a425df5 | Jude Brown | 2011-01-29 10:41:40 +1000

Fix mistake in doxygen comments (galehar).

--------------------------------------------------------------------------------
7c66082aca | Adam Borowski | 2011-01-29 00:33:40 +0100

Purge wasteful and confusing longs from MT19937.
The upper bits were never used, and zeroed after every operation.  They also
made people believe the seed is better on 64 bit archs, instead of having
the upper halves thrown away.

--------------------------------------------------------------------------------
2ab0fdc45d | Adam Borowski | 2011-01-29 00:33:39 +0100

Use repeatable pseudo-randomness for invis monster traces.

--------------------------------------------------------------------------------
00c265df89 | Adam Borowski | 2011-01-29 00:33:39 +0100

Move abl-show's private stuff away from the header.
Unnecessary objects have to be compiled once per every file that includes them.

--------------------------------------------------------------------------------
8bed6fcc38 | Raphael Langella | 2011-01-29 00:12:37 +0100

Document gdr_perc function.

--------------------------------------------------------------------------------
e79db7736d | Raphael Langella | 2011-01-28 23:21:59 +0100

Doxygen: document spell_noise.

--------------------------------------------------------------------------------
00876f44e6 | Raphael Langella | 2011-01-28 22:55:34 +0100

Typo.

--------------------------------------------------------------------------------
cae11402d8 | Johanna Ploog | 2011-01-28 21:33:11 +0100

Tweak randbook mapdef tags: predefined title, player name as owner.
* New tag: title, replaces the usual database lookup depending on disc.
* If owner == "player", use you.your_name as owner.

--------------------------------------------------------------------------------
07a9c8fbec | Raphael Langella | 2011-01-28 13:27:57 +0100

Clear stack autopickup flag when dropping an item on top of it.
Mantis #2840

--------------------------------------------------------------------------------
6199a394b3 | Raphael Langella | 2011-01-28 12:26:20 +0100

Don't prompt for partial stack pickup when travelling.

--------------------------------------------------------------------------------
4628df5392 | Raphael Langella | 2011-01-28 12:26:20 +0100

Fix a crash when subliming your last blood potion.

--------------------------------------------------------------------------------
17ab41ceab | David Lawrence Ramsey | 2011-01-27 19:57:28 -0600

Reorder the Powered by Pain mutation enum at next major version bump.

--------------------------------------------------------------------------------
285c6b0591 | David Lawrence Ramsey | 2011-01-27 19:12:51 -0600

Improve the vampire description a bit.

--------------------------------------------------------------------------------
732872410f | David Lawrence Ramsey | 2011-01-27 19:12:51 -0600

After much thought, add a description for unborn deep dwarves.

--------------------------------------------------------------------------------
c3418104f9 | valrus | 2011-01-28 01:35:51 +0100

Don't keep drinking from a corpse after it's raised!

--------------------------------------------------------------------------------
c9b6edec01 | valrus | 2011-01-28 01:35:51 +0100

Fixed crash when a corpse is raised from under a vampire drinking from it.
Vampires drinking now counts as "butchering," as bottling blood does, so
friendly monsters will not animate while you're doing it.

--------------------------------------------------------------------------------
a8f3ca18f2 | Adam Borowski | 2011-01-28 01:21:51 +0100

Fix save compat.

--------------------------------------------------------------------------------
e8f7617f02 | MarvintheParanoidAndroid | 2011-01-28 01:20:13 +0100

Initial version of Powered by Pain
Tier 2 DS mutation that restores MP when sufficient damage is taken.
The damage requirement and MP restored increase with mutation level,
and losing 1/2 hp or more always restores some MP.

--------------------------------------------------------------------------------
d882332dfe | MarvintheParanoidAndroid | 2011-01-28 01:06:39 +0100

Change DS exp apt to 150

--------------------------------------------------------------------------------
0d6bc814c7 | MarvintheParanoidAndroid | 2011-01-28 01:06:38 +0100

Wider choice of demonic guardians

--------------------------------------------------------------------------------
c026ebd740 | MarvintheParanoidAndroid | 2011-01-28 01:06:38 +0100

Remove DS breath weapons
Also tweaks monstrous DS to get no scales, instead of one out of scales/breath.

--------------------------------------------------------------------------------
ee3bcd9809 | MarvintheParanoidAndroid | 2011-01-28 01:06:38 +0100

Minor tweaks to mutation scheduling
The rN+++ and Fire tier 3 facets show up a little earlier, as does Mapping.

--------------------------------------------------------------------------------
faf5f29ebf | Adam Borowski | 2011-01-28 00:18:28 +0100

Restore the grassy floor tile to vaults which used it.

--------------------------------------------------------------------------------
387193d89d | Raphael Langella | 2011-01-27 23:59:00 +0100

New GDR formula (Elliptic).
14 * (bAC-2)^(1/2)
This is a buff to the medium armours, and a slight nerf to the heavier ones.
Plate is almost unchanged.

--------------------------------------------------------------------------------
d3a42c7d00 | Raphael Langella | 2011-01-27 23:41:00 +0100

Change "select items" to "buy items" in shop menu (Napkin).

--------------------------------------------------------------------------------
a355bbe337 | Johanna Ploog | 2011-01-27 22:22:59 +0100

Tooltip consistency fixes.
* When using the message overlay, treat mouseclicks as relevant to the
  map (travel etc.) rather than the message history. That's what the
  tooltips are already claiming, and it's probably more important too.

* Right-click on item/features out of sight has no effect, so don't
  pretend it does.

Also, I've just realize that the mouseover descriptions don't apply
for the message overlay. Not sure if that's a bug or intentional.

--------------------------------------------------------------------------------
6503809055 | Adam Borowski | 2011-01-27 17:50:11 +0100

Pass you as the attacker for recite holy word, so you get the xp (and mummy 
goodies).

--------------------------------------------------------------------------------
c0e89c0716 | Raphael Langella | 2011-01-27 12:50:35 +0100

Only move into firing position if player has taken a step.
Sometimes, the monster can move out of LOS when walking toward the player
(see #3305). Unfortunately, it means the monster won't be looking for a firing
position when LOS is blocked by a cloud and you haven't moved (scroll of fog).

--------------------------------------------------------------------------------
0416e50524 | Adam Borowski | 2011-01-27 12:03:12 +0100

Fix save compat of monster enchantments.

--------------------------------------------------------------------------------
5c8090ca7a | Adam Borowski | 2011-01-27 11:59:58 +0100

Rename ENCH_CORONA_ZIN as well, it's too mistakeable for Corona.

--------------------------------------------------------------------------------
bcea7960ee | Jude Brown | 2011-01-27 19:16:16 +1000

Doxygen: document shop_spec, trap_spec, feature_spec.

--------------------------------------------------------------------------------
01cb1e7cf1 | Jude Brown | 2011-01-27 19:16:16 +1000

Make use_all shop specification work.
Example:

 KFEAT:  s = general shop name:Test suffix:Parlour type:Armour_Shop
 use_all greed:138 ; any armour | any book | wand of fire

Results in a shop containing 1 item of armour, 1 book, and 1 wand of
fire.

I believe this satisfies all requirements for specified shops. Currently
there's no way to specify a set of items that must be placed and then a
set of items to randomly choose from for everything else. That can go on
the agenda for later.

--------------------------------------------------------------------------------
66345ab787 | Jude Brown | 2011-01-27 19:16:16 +1000

Add a "use_all" specifier for vault shops.
Not yet coded, but: "general shop use_all ; wand of fire | arrow | short
sword" will result in a three-item shop containing a wand of fire, an
arrow (or arrows) and a short sword.

If you specify more items in num_items than are contained in the list,
random, shop-relevant items are used to pad out the inventory.

--------------------------------------------------------------------------------
2300627e40 | David Lawrence Ramsey | 2011-01-26 22:34:56 -0600

Make sure that monster::res_rotting() returns 1 for the set flag.
Since mon_class_flag::rotting is boolean, returning it directly can be
problematic if boolean true isn't defined as 1, so explicitly return 1
just in case.

--------------------------------------------------------------------------------
63a455d9ab | Adam Borowski | 2011-01-27 01:42:23 +0100

Make it more obvious Zin's corona is different from the regular stuff.

--------------------------------------------------------------------------------
92855985f0 | Adam Borowski | 2011-01-27 01:33:05 +0100

Fix smiting message not being shown if it kills the monster.

--------------------------------------------------------------------------------
600cd33e55 | Adam Borowski | 2011-01-27 01:23:00 +0100

Convert res_rotting() to a 3-level resistance, use that for Zin.
Only levels 0, 1 and 3 are meaningful:
* 0 leaves you susceptible
* 1 stops all normal necromantic/miasma sources, but still allows divine
  wrath
* 2 and 3 blocks all on-going rot altogether.  You might partially fall
  apart with a similar effect, but you'll never have a rotting status.

--------------------------------------------------------------------------------
c229cc64a3 | Johanna Ploog | 2011-01-27 01:12:01 +0100

Add co's new lair floor tiles, appropriately weighted.
I renamed the old lair tiles to floor_moss, but was too tired
to go through the (small number of) minivaults that make use
of it.

--------------------------------------------------------------------------------
fb6d219f3a | Adam Borowski | 2011-01-27 00:39:08 +0100

Restore mangled SDL submodule.

--------------------------------------------------------------------------------
29ca1af4d2 | Jude Brown | 2011-01-27 09:34:16 +1000

Allow specification of actual items in shops.
In most instances one would use "any <whatever>". Obviously this need to
be extended because only the main types of items (OBJ_WHATEVER) are
acceptable class names. I will extended this functionality to include
different classes ("any hide" -> all animal, troll, dragon, etc, hides).

Currently, placement of items is randomly from the list of items
specified following the semi-colon. If only one item is specified, that
item will be used for every item in the shop.

TODO:
 * "use_all" signifier to place every item specified.
 * any "class": new signifiers.

EXAMPLE:

 NAME:   shop_test
 TAGS:   entry no_monster_gen allow_dup
 KFEAT:  s = general shop name:Test suffix:Parlour \
 	type:Armour_Shop count:14 greed:138 ; w:20 any armour | \
 	w:10 any book | w:5 wand of fire
 ORIENT: float
 WEIGHT: 100000
 MAP
 {[(s
 ENDMAP

--------------------------------------------------------------------------------
5077f48222 | Jude Brown | 2011-01-27 09:34:16 +1000

Doxygen: document keyed_mapspec::parse_shop, ::parse_trap.

--------------------------------------------------------------------------------
54ab349dfe | Johanna Ploog | 2011-01-26 23:45:43 +0100

Add tutorial triggers for gaining spellcasting and fighting in water.

--------------------------------------------------------------------------------
d5688840f7 | Raphael Langella | 2011-01-26 23:26:51 +0100

Remove potion destroying effect from mummy curses.
Chei wrath and curse cards can still destroy potions in addition to cursing
equipment.

--------------------------------------------------------------------------------
3c7a8ad5fa | Raphael Langella | 2011-01-26 23:04:06 +0100

Move partial stack pickup to ;

--------------------------------------------------------------------------------
008287e3fa | Raphael Langella | 2011-01-26 23:04:06 +0100

Add a message for potions destroyed by mummy curse.

--------------------------------------------------------------------------------
46225c2f2e | Raphael Langella | 2011-01-26 23:04:06 +0100

Remove decaying abuses.
Mummy curses and sublimation of blood (on blood potions) don't create decay
potions. The potions are just destroyed. Fix #315, #2488 and #3281.

--------------------------------------------------------------------------------
fde910b244 | Raphael Langella | 2011-01-26 23:04:05 +0100

Add a #define SLOT_BARE_HANDS for weapon unwield.
This replace the very hacky PROMPT_GOT_SPECIAL that was used for unwielding.
This commit also fix what appears to be a bug in l_item_do_remove which called
wield_weapon with -1 instead of -2 causing a weapon swap instead of unwielding.
I can't test it, because I don't know what calls it.

--------------------------------------------------------------------------------
24b1396e00 | Johanna Ploog | 2011-01-26 22:36:53 +0100

Start on tutorial lesson 5: Spellcasting.
Just the basics for now: training Spellcasting, learning a spell
and casting it. Still needs a trigger when you gain Spellcasting.

--------------------------------------------------------------------------------
15f9564af6 | Johanna Ploog | 2011-01-26 22:25:53 +0100

Allow setting skills from the tutorial map.
This is a hacky solution and only handles Spellcasting, Conjurations,
and Invocations. Also, for the default skills already set in ng-setup
reassess_starting_skills (now moved to skills.cc) is applied twice.

--------------------------------------------------------------------------------
8e2100892e | Johanna Ploog | 2011-01-26 21:17:43 +0100

Revert = equalling =i without spells or abilities.

--------------------------------------------------------------------------------
77105c4ee4 | Johanna Ploog | 2011-01-26 21:17:40 +0100

Give survival hints in tutorial death message.
Also, make the wizmode death prompt work in the Tutorial.

--------------------------------------------------------------------------------
877c75fd66 | Johanna Ploog | 2011-01-26 21:17:38 +0100

Various tutorial tweaks.
* better wording
* improved the weapon swap challenge
* replaced training dummy's club -> whip

--------------------------------------------------------------------------------
82ff5eb8d7 | Johanna Ploog | 2011-01-26 21:17:31 +0100

Remove shortcuts in tutorial3.
It turns out that wizmode &d works after all, as long as I'm not on
the upstairs, so it's less of a problem.

Without the early levels' equipment, the player has little chance to
survive the later challenges.

--------------------------------------------------------------------------------
7d7f14421f | Johanna Ploog | 2011-01-26 21:17:28 +0100

Remove tutorial markers once they've been triggered.
The blue tiles remain unchanged.

--------------------------------------------------------------------------------
60d62c0846 | David Ploog | 2011-01-26 21:01:14 +0100

Spelling fix in tutorial lesson 1.

--------------------------------------------------------------------------------
9e75351ca2 | David Lawrence Ramsey | 2011-01-26 12:40:50 -0600

Tweak a few Recite messages dealing with monster effects.

--------------------------------------------------------------------------------
8eeaac88ab | Jude Brown | 2011-01-26 18:51:42 +1000

Allow vaults to specify shop: name, type name, suffix, greed, count.
Example:

NAME:   shop_test
TAGS:   entry no_monster_gen allow_dup
KFEAT:  s = any shop name:Test suffix:Parlour type:Stuff_Thing \
        count:14 greed:138 ORIENT: float
WEIGHT: 100000
MAP
{[(s
ENDMAP

Results in "Test's Stuff Thing Parlour", which contains 14 items
precisely, and a greed of 138, which is ridiculously high.

This doesn't allow for specification of items, but this will shortly be
doable.

--------------------------------------------------------------------------------
a2fc04459e | Jude Brown | 2011-01-26 15:37:20 +1000

Fix #3298: door mimics don't ever generate.
Somehow these got missed, oops!

--------------------------------------------------------------------------------
1396715a56 | Jude Brown | 2011-01-26 15:37:20 +1000

Fix a typo.

--------------------------------------------------------------------------------
5ff52adced | Jude Brown | 2011-01-26 15:37:19 +1000

Store shop_name, shop_type_name, shop_suffix_name in shop_struct.
These fields can thus be used to override shop descriptions explicitly,
allowing for customised shops in vaults (specifically in the tutorial,
but extensions could be used later).

It's a fall-through conditional: if any of these fields are supplied in
the struct, then that value will be used instead of randomly generating
a name, or using the shop's type.

Thus, you could specify a custom shop type name, and still get a
randomly generated shop keeper's name.

Caveats:
 * shop_name is apostrophised (so specify "shop keeper", not
   "shop_keeper's": the latter will be done for you)

--------------------------------------------------------------------------------
c2fe8ebda7 | Jude Brown | 2011-01-26 15:37:19 +1000

Convert place_spec_shop to use shop_spec, as well.
As with the previous commit for trap_spec, this allows for much greater
customisation.

--------------------------------------------------------------------------------
73b5802af9 | Jude Brown | 2011-01-26 15:37:18 +1000

Convert place_specific_trap to use trap_spec.
There's now an overloaded wrapper function that accepts a trap_type,
which then converts this into a trap_spec. It's possibly a bit crazy,
but it allows for a hell of a lot more customisation of traps if we ever
decide that we need them.

--------------------------------------------------------------------------------
e5f827c9f9 | Adam Borowski | 2011-01-26 02:31:11 +0100

Mention in '@' that you are inside an external halo.

--------------------------------------------------------------------------------
e230438d50 | Arxale | 2011-01-26 02:02:58 +0100

Allow cancelling some scrolls without consuming them

--------------------------------------------------------------------------------
c82dbd7e59 | Jude Brown | 2011-01-26 10:41:32 +1000

Split feature_spec into trap_spec, shop_spec.
Use std::auto_ptr to store the trap and shop specs in the feature spec.
Thanks greensnark for explaining how to actually do this. This is
foundation for extended shop customisation in vaults.

--------------------------------------------------------------------------------
ad7b41c261 | Adam Borowski | 2011-01-25 18:23:46 +0100

Make skeletal warriors obey silence.
Since they have so much stronger spell power than liches...

--------------------------------------------------------------------------------
abfcdf88ca | Adam Borowski | 2011-01-25 14:20:11 +0100

Remove a distinct piece of rock wall from an Elf loot vault.
If the whole vault is stone, and there's just a single piece of rock in
the back of the loot chamber, everyone will think there must be something
behind it so they'll dig up the whole area.

--------------------------------------------------------------------------------
4634eb5f6b | Adam Borowski | 2011-01-25 13:03:33 +0100

Make the Vestibule more friendly to autoexplore.

--------------------------------------------------------------------------------
9a3c28fdd7 | Jude Brown | 2011-01-25 19:34:56 +1000

Giant beetle -> goliath beetle. (coolio)
Again, another "giant" monster that seems to only have "giant" in the
name to make it sound more scary. In this instance, "goliath" is an
excellent synonym. Suggested by coolio also on the forum -- I think.

Also, they are real beetles!

--------------------------------------------------------------------------------
58844af5b0 | Jude Brown | 2011-01-25 18:51:26 +1000

Giant ants -> worker ants (coolio, Kekitalo).
Yet another monster that uses "giant" as a modifier. Renaming them to
"worker ant" puts them further in line with our hierarchy of ant-based
monsters: queen ant, soldier ant, worker ant.

--------------------------------------------------------------------------------
4d58a442fd | MarvintheParanoidAndroid | 2011-01-25 02:39:10 +0100

Some more flavourful spellbook descriptions

--------------------------------------------------------------------------------
ec03e18f2a | MarvintheParanoidAndroid | 2011-01-25 02:38:50 +0100

Various spellbook tweaks
Hinderance gains Leda's Liquefaction.
Morphology gains Ignite Poison, Polymorph Other moved to the correct place.
Wizardry gains Agony, Lightning Bolt.

--------------------------------------------------------------------------------
d3fe1abd89 | MarvintheParanoidAndroid | 2011-01-25 02:35:59 +0100

Tweak elemental books
Summon Elemental is now in Summonings as well as the common book of Wizardry, 
and it doesn't really fit in the elemental books:
Book of Fire loses Evaporate and Summon Elemental, gains Fireball and Dragon 
Form.
Book of the Sky loses Summon Elemental.
Book of Geomancy loses Summon Elemental, gains Petrify.

--------------------------------------------------------------------------------
b214f83b62 | Adam Borowski | 2011-01-25 02:33:09 +0100

Fix redundancy, mid/mindex confusion.

--------------------------------------------------------------------------------
6b64c94ad0 | Eronarn Palazzo | 2011-01-25 02:32:41 +0100

Ignite Poison changes.

--------------------------------------------------------------------------------
05167df6b4 | David Lawrence Ramsey | 2011-01-24 19:03:59 -0600

Fix crash due to out-of-bounds array access in zin_recite_text().
564726c had the effect of shifting the valid prayertype values up by
one, but zin_recite_text() still assumed that prayertype was always
greater than zero, which was no longer true.

--------------------------------------------------------------------------------
b8f190282a | Adam Borowski | 2011-01-25 01:31:42 +0100

Make Summon Hydra a monster spell.
Currently, ghosts and pan lords.

--------------------------------------------------------------------------------
068944147a | Raphael Langella | 2011-01-25 00:24:20 +0100

Fix unwielding by clicking on the weapon icon doing weapon swap.
Mantis #3282.

--------------------------------------------------------------------------------
0325dd1f6e | Raphael Langella | 2011-01-25 00:07:03 +0100

Add an item_is_wieldable() function.
This remove some duplication.

--------------------------------------------------------------------------------
d2e0d5b443 | MarvintheParanoidAndroid | 2011-01-24 15:42:36 +0100

Improve silence spell description

--------------------------------------------------------------------------------
24a406a18d | Adam Borowski | 2011-01-24 15:34:12 +0100

Refactor recite effects.
Also, clear a lot of code duplication.

--------------------------------------------------------------------------------
754172b4fb | Jude Brown | 2011-01-24 19:51:21 +1000

Doxygen: include static and private members and functions.

--------------------------------------------------------------------------------
21e529b022 | David Lawrence Ramsey | 2011-01-23 21:41:08 -0600

Add minor fixes to the routine to create Zin's pillars of salt.
First, describe pillars of salt created from zombified types as being
shaped like the zombified type's base monster.  Second, when increasing
the length of time the pillar of salt has before it crumbles away, don't
try to access the original monster's HD, as it's dead; save the original
monster's HD beforehand, and use that.

--------------------------------------------------------------------------------
acb68e6799 | David Lawrence Ramsey | 2011-01-23 20:40:54 -0600

Further clean up the routine to create Zin's pillars of salt.
Specifically, remove its misuse of banishment code to ensure that the
dead monster leaves no corpse.  Instead, check if the killed monster
leaves a corpse and, if so, destroy it.

--------------------------------------------------------------------------------
8ad3dbc13f | Jude Brown | 2011-01-24 11:50:25 +1000

Fix #3274: don't show invisible monsters on top of monsters; document.
Adds a new _valid_invis_spot helper function to determine if a location
is valid to denote with a { glyph.

This also adds doxygen documentation for _valid_invis_spot and
_update_monster_at.

--------------------------------------------------------------------------------
080ea81811 | David Lawrence Ramsey | 2011-01-23 19:46:13 -0600

Fix Mantis 3279: Make sacred scourges dex-weighted as other whips are.

--------------------------------------------------------------------------------
f5d8380c98 | David Lawrence Ramsey | 2011-01-23 19:41:11 -0600

Clean up the routine to create Zin's pillars of salt.
Also, describe said pillars as being shaped like the monsters they were
created from by using base_monster.

--------------------------------------------------------------------------------
db65e1ae04 | Jude Brown | 2011-01-24 10:25:56 +1000

Doxygen: remove the generated directory for distclean target.

--------------------------------------------------------------------------------
09e30df47b | Jude Brown | 2011-01-24 10:14:00 +1000

Doxygen: Split crawl.doxy into "simple" and "all" options.
The "simple" option does not generate CALL_GRAPHS, etc, by setting
HAVE_DOT=NO. This will hopefully make things a little bit quicker for
just testing that the documentation is formatted correctly, etc.

The "all" option is identical to the previous configuration and
generates call graphs, etc.

Thus, the makefile options are now:

- make doxy-simple OR make doxygen-simple
- make doxy-all OR make doxygen-all

--------------------------------------------------------------------------------
897ebf5882 | Adam Borowski | 2011-01-24 00:08:23 +0100

Don't make Tornado drop as sharply in non-open areas.
If you're in the corner in a big rectangular room, the power will now
be 1/4 rather than 1/4^5 at the edge of area affected.

--------------------------------------------------------------------------------
394d2265e0 | Adam Borowski | 2011-01-24 00:06:16 +0100

Make Tornado Conj/Air.

--------------------------------------------------------------------------------
0be75ca893 | Adam Borowski | 2011-01-23 22:59:59 +0100

Simplify away the use of many scalars instead of a single array.

--------------------------------------------------------------------------------
067672eb9b | Adam Borowski | 2011-01-23 22:35:08 +0100

Fix save compat.

--------------------------------------------------------------------------------
564726c22d | Adam Borowski | 2011-01-23 21:29:00 +0100

Fix a memory leak.

--------------------------------------------------------------------------------
f49e533ecb | Adam Borowski | 2011-01-23 21:02:06 +0100

Fix doubled uglies.

--------------------------------------------------------------------------------
8e95222284 | Adam Borowski | 2011-01-23 21:01:50 +0100

Formatting.

--------------------------------------------------------------------------------
c3a34ed49f | Adam Borowski | 2011-01-23 20:24:44 +0100

Fix a fun C-is-no-Python bug.
No sane language uses whitespace for flow control.  Heck, even BASIC used
line numbers :p

--------------------------------------------------------------------------------
70f1de6c00 | Eronarn Palazzo | 2011-01-23 20:22:51 +0100

Reroll of Zin recite patch.

--------------------------------------------------------------------------------
adebc42f76 | Adam Borowski | 2011-01-23 20:19:17 +0100

Whitespace fixes, remove a commented out clause.

--------------------------------------------------------------------------------
e8bf7076d4 | Johanna Ploog | 2011-01-23 19:30:33 +0100

New tutorial lesson covering gods.
Having only 2 MP to work with Makhleb's minor destruction sucks.
But this guy already has 3 Spellcasting. What more do you need?

--------------------------------------------------------------------------------
bbb9ae0b47 | Johanna Ploog | 2011-01-23 19:30:31 +0100

Allow mouseclick movement through exclusions and stationary monsters.
When actual travel is disallowed, mouseclicks take you one step along
the path. That was already the case for normal monsters and has now
been extended to work around stationary monsters (e.g. training dummy)
and in excluded areas.

--------------------------------------------------------------------------------
1cacd72452 | Adam Borowski | 2011-01-23 16:35:02 +0100

Update Tukima's Dance description as it works on staves now.
Also, mention that anything that has something to do with evocations won't be
used by the mindless weapon as well:
* +Blink, +Tele, +Rage, ...
* spells from rods
* special damage from staves
Reaching does use the 'v' key but not the skill, so it's covered by the wording.

--------------------------------------------------------------------------------
8b98058cb5 | Adam Borowski | 2011-01-23 16:00:02 +0100

Don't care about inscriptions when trying to remove cursed items.

--------------------------------------------------------------------------------
c14d439187 | Adam Borowski | 2011-01-23 15:26:23 +0100

Fix use of freed memory (JoachimSchipper).

--------------------------------------------------------------------------------
4e4ea318c4 | Adam Borowski | 2011-01-23 13:54:54 +0100

Add missing tilepicks for lurking horrors and ancient zymes.

--------------------------------------------------------------------------------
a39cdc689b | Adam Borowski | 2011-01-23 13:46:21 +0100

Use "ashen valley" rather than "ashen plains".
"Ge Hinnom" means literally "Valley of Hinnom", so using plains sounds just
broken to anyone who knows the name's origins.

--------------------------------------------------------------------------------
7f003c6052 | Eronarn Palazzo | 2011-01-23 13:45:06 +0100

Minor flavor change: gateway to "the ashen plains of" Gehenna.

--------------------------------------------------------------------------------
f65600405f | Jude Brown | 2011-01-23 16:28:04 +1000

Doxygen: document orb.cc

--------------------------------------------------------------------------------
b0dace13a7 | Jude Brown | 2011-01-23 16:27:57 +1000

Doxygen: Set EXTRACT_ALL to YES.

--------------------------------------------------------------------------------
402400e593 | Jude Brown | 2011-01-23 16:27:47 +1000

Doxygen: add documentation for mon-death.cc.

--------------------------------------------------------------------------------
ecb0e472c6 | Jude Brown | 2011-01-23 15:42:33 +1000

A makefile target for doxygen.

--------------------------------------------------------------------------------
0e4123dc9a | Jude Brown | 2011-01-23 15:39:53 +1000

Add a crawl.doxy file.
Current non-default values are:

CALL_GRAPH = YES
CALLER_GRAPH = YES
GENERATE_TREEVIEW = YES
USE_INLINE_TREES = YES
GENERATE_LATEX = NO

Obviously, changes to it can be made as required. These values were
suggested by bhaak, apart from GENERATE_LATEX, which is excluded simply
because huge collections of PDFs, etc, are annoying.

--------------------------------------------------------------------------------
4fa92824d1 | Darshan Shaligram | 2011-01-23 10:41:33 +0530

Fix inverted hints-mode checks (casmith789).

--------------------------------------------------------------------------------
151a8ba245 | Darshan Shaligram | 2011-01-23 10:04:37 +0530

s/SCORE_WIZARD_MODE/SCORE_WIZARD_CHARACTERS/

--------------------------------------------------------------------------------
e8f1db765f | Jude Brown | 2011-01-23 11:00:39 +1000

Don't mark milestones for Wizard-mode (Napkin).
Unless SCORE_WIZARD_MODE has been defined, which by default it is not.

--------------------------------------------------------------------------------
99014256db | Jude Brown | 2011-01-23 10:49:52 +1000

Fix #3225: don't list fizzing potions in identification screens.
Regardless of whether or not you have previously seen one of these
potions, they're never going to randomly generate, so they don't need to
appear in the unidentified/already identified screens.

--------------------------------------------------------------------------------
a0c43b2ebb | Jude Brown | 2011-01-23 10:46:11 +1000

Fix #3245: Defer call to level_change() to prevent SIGHUP abuse.
You could previously drink a potion of experience, then SIGHUP crawl at
the level change "-More-" prompt. Reloading the game revisited this
window due to the potion directly affecting your experience level, but
due to the fact that the game quit before reaching the end of the potion
function, the quantity of the potion of experience was never decreased.

Thus, infinite potions of experience. Oops!

--------------------------------------------------------------------------------
a711d94a2f | Jude Brown | 2011-01-23 10:34:44 +1000

Move the Orb at least one square for a successful apport.
Previously, and with low spell power, you could have a "successful"
apportation in that the orb did not become a dead weight and move the
orb "one square", but due to the structure of beam.path_taken, the orb
was moved to its present location instead of being moved one square.

--------------------------------------------------------------------------------
b9983c94bd | Jude Brown | 2011-01-23 10:34:44 +1000

Fixes for co's cracked_pipes sewer map.

--------------------------------------------------------------------------------
4f6fcfad69 | Jude Brown | 2011-01-23 10:34:42 +1000

Stick co's eye filled portal tile in UNUSED, too.

--------------------------------------------------------------------------------
d08492f127 | Jude Brown | 2011-01-23 10:34:42 +1000

Resolve #3096, #3091: coolio's ancient zyme tile, co's lurking horror.

--------------------------------------------------------------------------------
9cd6168701 | Johanna Ploog | 2011-01-23 01:26:49 +0100

Remove resistance flags from training dummy.
No reason to make them resistant to everything.

--------------------------------------------------------------------------------
1aa80810b0 | Johanna Ploog | 2011-01-23 01:13:26 +0100

Replace the clunky hints_left counter with a game type check.
For all purposes, this is exactly the same. It's no longer
possible to get all hints in a single hints mode session, so
there's no point in specialcasing this event.

--------------------------------------------------------------------------------
1a379c4e95 | Johanna Ploog | 2011-01-23 01:13:23 +0100

New game state function: game_is_hints_tutorial(), covering both.

--------------------------------------------------------------------------------
f0125bd566 | Johanna Ploog | 2011-01-23 01:13:21 +0100

Remove unnecessary '=' glyph.
Actually, there are no secret doors in the second tutorial3 map. :)

Hmpf. The one time I'm compiling console instead of tiles...

--------------------------------------------------------------------------------
44e45e5cd1 | Johanna Ploog | 2011-01-23 01:13:19 +0100

Don't take corpses into account for the multi pickup hint.
Otherwise, it appears to early in the tutorial and the player isn't
supposed to pick up corpses anyway.

--------------------------------------------------------------------------------
f2dface36c | Johanna Ploog | 2011-01-23 01:13:17 +0100

Still more tweaks.
Special message to pick up darts, and fewer fog generators. :)

--------------------------------------------------------------------------------
8e692f2806 | Jude Brown | 2011-01-23 09:50:52 +1000

Resolve #3036: use Curio's new Frederick tile.
It's really a vast improvement over the old one, in my opinion.

--------------------------------------------------------------------------------
a7cddb529a | Jude Brown | 2011-01-23 09:46:45 +1000

Test portal vault: pvault_test, pvault_test_a.
Use: &Ppvault_test><Enter>: you'll end up in a small, encompass-area map
where you can then place other maps using &L<map name> and then do
whatver tests. I found it useful for ensuring that the Ziggurat
no_rtele_into flags worked, by using the Lua interpreter's
you.random_teleport() function.

The latter also revealed an interesting fact: if there are no suitable
teleportation places (due to them all being blocked by clouds or
no_rtele_into), the game hangs in an endless loop. That should probably
be fixed at some point.

--------------------------------------------------------------------------------
7912d1ee61 | Jude Brown | 2011-01-23 09:46:08 +1000

Fix #3265: Mark all Ziggurat entrances as no_rtele_into.

--------------------------------------------------------------------------------
327de4d6d4 | Jude Brown | 2011-01-23 09:32:18 +1000

Sometimes hint at the location of invisible monsters.
TODO: Seed the RNG so that this is deterministic and holding <Escape>
doesn't re-calculate { positions constantly. See comment in show.cc!

--------------------------------------------------------------------------------
41c4e1c773 | Jude Brown | 2011-01-23 08:51:38 +1000

Fix monster stealth, report when generate monster stats in WizMode.

--------------------------------------------------------------------------------
8eaf1f2390 | Jude Brown | 2011-01-23 08:44:45 +1000

Nerf PDA to AC 10, EV -3.

--------------------------------------------------------------------------------
f7c7cb5553 | Raphael Langella | 2011-01-22 23:37:47 +0100

Fix a typo in tutorial3.

--------------------------------------------------------------------------------
ebd4d1567a | Johanna Ploog | 2011-01-22 23:04:55 +0100

A few more tutorial tweaks.

--------------------------------------------------------------------------------
6b8353f704 | Johanna Ploog | 2011-01-22 22:05:01 +0100

Disallow barding generation in the tutorial.
Also add a note on the "race" tag in syntax.txt.

--------------------------------------------------------------------------------
8cf13789c2 | Johanna Ploog | 2011-01-22 21:54:57 +0100

Fix mispluralisation of staircases/gateways. (#3014, monqy)

--------------------------------------------------------------------------------
171345619f | Johanna Ploog | 2011-01-22 21:26:58 +0100

Add tutorial triggers for healing potions and identifying inaccuracy.

--------------------------------------------------------------------------------
539de1bf34 | Johanna Ploog | 2011-01-22 20:13:24 +0100

New mapdef item tag "charges" for defining wand charges.
Used in the tutorial, so the wands aren't empty right away.

--------------------------------------------------------------------------------
47f296cd5f | Johanna Ploog | 2011-01-22 19:39:43 +0100

Fix force_hit traps sometimes being avoidable.
There was still an arbitrary 20% chance of avoiding the trap.

--------------------------------------------------------------------------------
c3f5a1c6f7 | Johanna Ploog | 2011-01-22 19:32:45 +0100

A few tutorial tweaks.

--------------------------------------------------------------------------------
fc39900d54 | Johanna Ploog | 2011-01-22 18:24:21 +0100

Replace grey (in console) mace and helmet with more colourful items.
mace -> quarterstaff
helmet -> pair of boots

--------------------------------------------------------------------------------
624d41dd3f | Johanna Ploog | 2011-01-22 18:24:18 +0100

Add inter-level shortcuts in tutorial lesson 3.
Is is a bit annoying having to replay the earlier bits if you just
want to check out the shop again.

--------------------------------------------------------------------------------
85be70e4c6 | Johanna Ploog | 2011-01-22 18:24:15 +0100

Add the third (and last) level to the item tutorial.
Covers wands, shopping, wall types and the importance of using
consumables. Includes two puzzle mini-games.

--------------------------------------------------------------------------------
d849b43663 | Darshan Shaligram | 2011-01-22 20:20:11 +0530

Fix Mac dgl compile.

--------------------------------------------------------------------------------
9ff1cffdcc | Charles Otto | 2011-01-22 08:55:40 -0500

Refine check for friendlies currently pathing to the player
An additional check that the current foe is MHITYOU is necessary since
monsters will sometimes be left with travel information, even if not
currently pathing to the player.

--------------------------------------------------------------------------------
9bbcac5562 | Johanna Ploog | 2011-01-22 13:58:17 +0100

Turn check_item_knowledge into a void function, remove quiet param.
You're bound to either know or don't know some items, so we don't
need the special "no items" message anymore.

--------------------------------------------------------------------------------
70ad4111e2 | Johanna Ploog | 2011-01-22 13:32:57 +0100

If you don't recognise any items, make \ shown all unknown ones.

--------------------------------------------------------------------------------
2385edbaa1 | Johanna Ploog | 2011-01-22 13:32:55 +0100

Fix unknown items toggle not working.

--------------------------------------------------------------------------------
3ec65dc05b | Jude Brown | 2011-01-22 22:20:52 +1000

Giant bats are now megabats.
Yup, a pretty extreme change. Reasoning: "giant X" is boring. Just
because it's giant doesn't mean that it's somehow more threatening. We
could comfortably leave them as "bats" but I think "megabat" is better:
it's not a word people hear often, and it conjures up largeness and
slightly more of a threat than you might initially think.

It's also the proper name for bats, so where could we go wrong?

--------------------------------------------------------------------------------
544a0f2a81 | Jude Brown | 2011-01-22 22:20:52 +1000

Remove outdate dolinks.sh, domake.sh.
They mislead people into thinking that they are the standard build
system, when in fact, apart from neunon's changes in 2009, they have not
been properly update since 2008.

If people do use them, feel free to restore.

--------------------------------------------------------------------------------
8ded030a82 | Jude Brown | 2011-01-22 22:20:51 +1000

Calculate a stealth value between -3 and 3 for monsters.
This could be used for a variety of things, but the initial
implementation will be for monster invisibility: the stealthier a
monster, the less likely that it will trail around coloured {s.

--------------------------------------------------------------------------------
7c137b6ed1 | Adam Borowski | 2011-01-22 12:45:46 +0100

Some necrocomputing portability.
FreeBSD 8.1 doesn't install perl to /usr/bin .
FreeBSD 7.1 doesn't allow "env" with arguments.

--------------------------------------------------------------------------------
fd47ce195e | Adam Borowski | 2011-01-22 11:14:50 +0100

Add a plural for seraphim in the off chance we add them some day.

--------------------------------------------------------------------------------
c8901c6cc2 | Jude Brown | 2011-01-22 19:35:34 +1000

Resolve #3138: warning scrawled -> warning-scrawled.

--------------------------------------------------------------------------------
5ec8369acb | Jude Brown | 2011-01-22 19:34:57 +1000

Fix #3223: shedu wake when pair is killed.
Instead of staying asleep while resurrecting, wake them first.

--------------------------------------------------------------------------------
16133129bd | Jude Brown | 2011-01-22 19:34:57 +1000

Resolve #3222: shedu don't resurrect banished pairs.
As pointed out by greensnark, in_transit isn't guaranteed for non-unique
or otherwise special monsters; so, there's now a new was_banished flag
to denote specific instances where we want to do something different
when a monster was banished.

--------------------------------------------------------------------------------
97d2f218a5 | Jude Brown | 2011-01-22 19:34:56 +1000

Shedu don't actually use the resurrection spell.
So, give them anoter heal other, just to be on the safe side.

--------------------------------------------------------------------------------
0f18872705 | Jude Brown | 2011-01-22 19:34:55 +1000

Pearl dragons are actually finished.
The only considerations that should be made about it are its damage and
attacks, etc, but the actual code involved is, as far as I can tell,
complete.

--------------------------------------------------------------------------------
7e6381cc15 | Darshan Shaligram | 2011-01-22 14:24:19 +0530

[3239] Fix 'x' hiding monster shields.

--------------------------------------------------------------------------------
386b557d3b | Jude Brown | 2011-01-22 18:38:15 +1000

Fix orb pickup noise when silenced.
Now, it flashes a variety of coloured, pretty lights, which have the
same effect of waking up nearby monsters. This is achieved by
"fake_noisy", which generates noise (but no message) regardless of
whether or not the area is silenced.

However, it has just occurred to me that the latter function might cause
weird interactions with mesmerisation and fear. Might be something to
keep in mind if its use is extended to areas where mermaids or other
monsters might be causing fear/mesmerising.

--------------------------------------------------------------------------------
c3209b6a25 | Darshan Shaligram | 2011-01-22 13:52:58 +0530

[3257] Fix trees being immune to fire and lightning.

--------------------------------------------------------------------------------
b44c10a24b | Jude Brown | 2011-01-22 14:20:44 +1000

Quiet DGL-build unused function warning.

--------------------------------------------------------------------------------
73c0b8aeac | Jude Brown | 2011-01-22 14:20:44 +1000

Allow DGAMELAUNCH + WIZARD builds to restrict access to wizard mode.
This adds a "-wizard" command-line option that sets Options.wiz_mode to
WIZ_NO, allowing access to Wizard mode via the & key regardless of
whether or not "wiz_mode = never" is set in the options file.

By default, WIZARD + DGAMELAUNCH builds will automatically set "wiz_mode
= never" unless "-wizard" is passed. All wiz_mode flags in the options
file will be ignored.

It should have no specific effect on non-DGL builds apart from
overriding the "wiz_mode = never" in your configuration.

--------------------------------------------------------------------------------
ca3f6ff0e8 | MarvintheParanoidAndroid | 2011-01-22 02:43:38 +0100

Improve Ash piety gain messages
Clearer message when picking up runes with Ashenzari.
Document rune piety gain on the religion screen.

(Also tweaks a Zin message to make it consistent with other piety gain 
descriptions).

--------------------------------------------------------------------------------
1240f29fc8 | MarvintheParanoidAndroid | 2011-01-22 02:43:32 +0100

Fix spell descriptions for Veh/Kiku
Changes descriptions to read "supports the use of this spell" instead of 
"appreciates".

--------------------------------------------------------------------------------
28bbede16e | Adam Borowski | 2011-01-22 02:39:39 +0100

Remove the now unused zot pillar tile.

--------------------------------------------------------------------------------
347b8bda7d | MarvintheParanoidAndroid | 2011-01-22 02:35:48 +0100

Don't feed undead from slurps

--------------------------------------------------------------------------------
f907d06780 | Jude Brown | 2011-01-22 11:29:41 +1000

Declutter the original Orb chamber.
The entire reasoning behind this clutter was to make Apportation
difficult. This has been achieved through other means, and thus the
pillars are no longer required.

--------------------------------------------------------------------------------
11b3842d5c | Jude Brown | 2011-01-22 11:29:41 +1000

Heavily nerf orb apportation.
This is a multi-phase nerf:

1. The distance the orb travel depends on your spell power and the
maximum distance. Most caster's only have a spell power of around 50 or
so. For instance, if you have to apport the orb six squares, and your
spell power is fifty, it will only move four (50/10-1).

2. There is a flat one-in-six chance that the orb will "become a dead
weight" and straight out resist apportation.

3. Regardless of success, attempting to apport the orb results in it
shrieking noisily (with a power of 30).

This is a better solution than straight out preventing apportation or
otherwise blocking the orb chamber by filling it with furniture, in my
opinion.

To prevent spoilrs, etc, I've updated the spell description to state
that the Orb of Zot will actively resist its pull. This might be too
much, but I don't personally think it such.

--------------------------------------------------------------------------------
6ce5257cca | Adam Borowski | 2011-01-22 01:23:38 +0100

Ash mon detection: makeshift tiles.
This is a place that would make the god unplayable without any, so we need
_something_, and the circles are probably bad enough that tile artists will
feel a need to improve them quickly :p

--------------------------------------------------------------------------------
3e91800d49 | Adam Borowski | 2011-01-22 01:00:37 +0100

Replace the enums with displayed names.
We'll have to find another place to use "oy vey gevalt" in the code...

--------------------------------------------------------------------------------
0c7670d31c | Adam Borowski | 2011-01-22 00:58:56 +0100

Ash mon detection: Use tier-specific colours in console.
This breaks Options.detected_monster_colour save for Dowsing, but it's
not like that option makes sense unless you use different glyphs.

The new syntax is:

mon_glyph = trivial sensed monster : lightgray x2460
mon_glyph = easy sensed monster : brown x2461
mon_glyph = tough sensed monster : red x2462
mon_glyph = nasty sensed monster : lightred x2463
(possibly just the colour or glyph)

--------------------------------------------------------------------------------
e6fe2df3f9 | Adam Borowski | 2011-01-22 00:58:56 +0100

Ash's passive monster detection: mark wheat differently than chaff.
The formula is abysmal, copied from tension calculations...

--------------------------------------------------------------------------------
cb1b9666f8 | Johanna Ploog | 2011-01-22 00:11:36 +0100

Also add the old shield tiles.
I didn't feel like testing whether they all align correctly for the
player doll, so for now they all reside in the UNUSED/worn directory.

--------------------------------------------------------------------------------
63f0cf8ffe | Johanna Ploog | 2011-01-22 00:02:40 +0100

Remove shield tiles from various shieldless monsters. (Done by co.)

--------------------------------------------------------------------------------
82135e1f43 | Raphael Langella | 2011-01-21 23:26:05 +0100

Fix compiler warning.
Replaced ~0 by UINT_MAX.

--------------------------------------------------------------------------------
602f257a96 | Johanna Ploog | 2011-01-21 23:20:12 +0100

Add single-turn waiting to the command tab.
Also tweak the existing '5' tile to stress healing and searching as
opposed to just time passing for the waiting tile.

--------------------------------------------------------------------------------
3ea380fd0a | Johanna Ploog | 2011-01-21 23:19:25 +0100

Mention butchery requirement for food in corpse description.

--------------------------------------------------------------------------------
7a06a9c52a | Johanna Ploog | 2011-01-21 23:18:25 +0100

Fix stairs/altar tooltips missing when standing on them.

--------------------------------------------------------------------------------
30586c877b | Johanna Ploog | 2011-01-21 22:33:36 +0100

Make sure mouseover descriptions are only triggered by mouse movement.
Previously, if moving by mouseclick caused the cursor to rest on an
item, monster or feature, this automatically triggered the relevant
description that, being displayed in the message area, usually covered
more important messages and caused confusion to the player.

Now, the descriptions only get displayed if the mouse actively moved,
i.e. changes of the highlighted map square caused by mouseclicks don't
count any longer.

This introduces a compiler complaint about signed vs. unsigned values,
but I couldn't work out how to quieten this without losing the desired
behaviour.

--------------------------------------------------------------------------------
db1e8cf6e1 | Johanna Ploog | 2011-01-21 19:07:47 +0100

Add levitation triggers to the tutorial and hints mode.

--------------------------------------------------------------------------------
7f779b6647 | Johanna Ploog | 2011-01-21 18:52:17 +0100

Move tiles_help.txt into the main directory.
No sense in hiding it. After all, it's supposed to be for
tiles players what quick_help is for console players.

--------------------------------------------------------------------------------
c542cb778e | Johanna Ploog | 2011-01-21 18:50:44 +0100

Overhaul tiles_help.txt.
This is probably what the tutorial bring across, except that it takes
about 3 minutes to read and explains everything. :P

--------------------------------------------------------------------------------
1962c022d6 | Johanna Ploog | 2011-01-21 10:35:06 +0100

New tutorial triggers for tutorial3.
Shortened some existing ones and added a few new ones.

--------------------------------------------------------------------------------
13e61eea17 | Darshan Shaligram | 2011-01-21 11:51:05 +0530

[3258] Fix travel infinite-oscillating when Ashenzari/antennae detect+wipe 
mimic memory.

--------------------------------------------------------------------------------
12cceb5108 | Jude Brown | 2011-01-21 08:51:23 +1000

Tweak some of minmay's vaults: 8 -> 9, D -> D:4-
For minmay_hollow_rounded, etc, replace all instances of '8' glyphs with
'9' glyphs. D:9 monsters on D:4 is fine. D:12 monsters on D:4 is
absolutely not. You could previously get cyclops in this vault, on D:4.

For minmay_holes, drop it's depth to D:4-. That many shafts is "you're
screwed" in early dungeon.

--------------------------------------------------------------------------------
de736c408f | Johanna Ploog | 2011-01-20 23:34:07 +0100

Add the second level to the item tutorial lesson.
Still need to hook in a number of situational triggers, but this is
probably my favourite level so far. :)

--------------------------------------------------------------------------------
43b0bf2a8c | Johanna Ploog | 2011-01-20 20:09:18 +0100

Fix Enter not working for skipping through menus.

--------------------------------------------------------------------------------
319dc09182 | Raphael Langella | 2011-01-20 18:24:01 +0100

Don't use the new ranged AI for monsters with M_FIGHTER.
Except centaur warriors and yaktaur captains.

--------------------------------------------------------------------------------
b1a6f0c7d1 | Raphael Langella | 2011-01-20 18:24:01 +0100

Fix monsters ignoring translucent walls when getting into firing position.
Monsters with smite targetting abilities will still ignore it.

--------------------------------------------------------------------------------
7f671c5fd5 | Raphael Langella | 2011-01-20 18:24:01 +0100

Fix foe_memory not being saved.

--------------------------------------------------------------------------------
679f202db5 | Vsevolod Kozlov | 2011-01-20 14:51:23 +0300

Adjust the chance for loot rooms on layout_roguey levels.
It is now more depth-dependent, and the loot rooms should not appear on early
levels at all, but appear more often on deep ones (where other layouts are more
likely to be employed, so the overall effect is that they are more rare).

--------------------------------------------------------------------------------
581946ee96 | Charles Otto | 2011-01-19 19:34:23 -0500

Friendlies follow you after killing target instead of wandering
Make out of sight friendly monsters transition into following you after
killing their target, rather than start to wander.

--------------------------------------------------------------------------------
ff31778884 | Charles Otto | 2011-01-19 19:14:54 -0500

Allow friendly monsters to path to you across the level
Allow friendly monsters to use pathfinding to get back to the player if
they get out of sight.

--------------------------------------------------------------------------------
11690032e0 | Johanna Ploog | 2011-01-19 23:31:15 +0100

Add curse and remove curse tutorial triggers.
Greatly shorten the existing hints mode explanation on curses, and
add remove curse to the mix.

Also replace holy wrath/zombies with venom/foresty creatures, as
the effects of the latter are more noticeable.

--------------------------------------------------------------------------------
04a08165b7 | Johanna Ploog | 2011-01-19 22:47:07 +0100

Add the first level of the third tutorial lesson (items).

--------------------------------------------------------------------------------
f0563eb49d | Johanna Ploog | 2011-01-19 22:43:07 +0100

Really make the "mundane cursed" item mapdef combination work.

--------------------------------------------------------------------------------
adf825d101 | Johanna Ploog | 2011-01-19 20:08:11 +0100

Make the tiles quantity prompt pull up a single-item pickup menu.
Easier to see what's going on that way. I changed the header prompt
to match the occasion.

--------------------------------------------------------------------------------
8d0b345d69 | Johanna Ploog | 2011-01-19 20:08:09 +0100

Tiles: A single mouseclick is enough to pull up the pickup menu.
Previously, one mouseclick would call up the pickup prompt, and a
second one the menu. Rethinking things, that requirement doesn't
really make sense, so if there's more than one item in the stack
you directly skip ahead to the pickup menu.

--------------------------------------------------------------------------------
7c476f1fd2 | Johanna Ploog | 2011-01-19 20:08:07 +0100

Tweak the tutorial maps.

--------------------------------------------------------------------------------
14bf1e2e3a | Johanna Ploog | 2011-01-19 20:08:05 +0100

Allow "mundane" items (mapdef tag) to be cursed if specified that way.

--------------------------------------------------------------------------------
2cbe1bd3cf | Johanna Ploog | 2011-01-19 20:08:03 +0100

New tutorial trigger: firing without line of sight.
Keeps the already existing standard text, but colours it purple to
make it stand out.

--------------------------------------------------------------------------------
597d0b329d | Johanna Ploog | 2011-01-19 20:08:01 +0100

Actually use the zombie/spectral worm tiles in-game.
Somehow, they got left out so far.

--------------------------------------------------------------------------------
9cd352c194 | Eino Keskitalo | 2011-01-19 18:44:04 +0200

Reduce hydra duration to 1.
It is very short (as I intended), but also long enough for e.g. four 
high-powered hydras take down a suitable pandemonium lord.

--------------------------------------------------------------------------------
3ab1b15574 | RangerC | 2011-01-19 18:43:33 +0200

Add Summon Hydra spell.
Summons a 4-12 headed hydra, dependant on power/chance.  Anything over 8 heads 
requires significant power and luck.

Currenly lvl 7, available in the book of Summonings.  Probably should be in one 
other spellbook, too.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4a7bf6eb2f | Raphael Langella | 2011-01-19 14:26:29 +0100

Fix clouds being ignored when looking for a cell with a line of fire.

--------------------------------------------------------------------------------
4e66067f6f | Raphael Langella | 2011-01-19 14:26:29 +0100

Only intelligent monsters try to regain LOS.
Also, randomise it a bit and move it into its own function (so it's easier to
add special cases).

--------------------------------------------------------------------------------
d0411e85fd | Raphael Langella | 2011-01-19 14:26:29 +0100

Fix monsters not searching for firing position if you didn't move (fog).

--------------------------------------------------------------------------------
82b1cdfea8 | Raphael Langella | 2011-01-19 14:26:29 +0100

Skip out of bounds cells when searching for a firing position.

--------------------------------------------------------------------------------
1bea90d1b5 | Johanna Ploog | 2011-01-19 10:16:09 +0100

Make pickup prompt choices explicit.
This might be borderline overkill, but on the other hand this is
one of the worst offenders in confusing new players.

I've opted not to make (q)uit explicit to save on space and instead
add a (m)enu choice that does the same as ,g?* but is easier to
explain.

Also shortened the special tiles text, but it could still benefit
from further cutting.

--------------------------------------------------------------------------------
a8375daac4 | Johanna Ploog | 2011-01-19 09:48:36 +0100

Replace "Shift-L-Click" tooltips with "Shift + L-Click", etc.
This came up in last year's Usability Project and should help in
making the required keyboard-mouseclick combinations clearer.

--------------------------------------------------------------------------------
ec4bf4d500 | Johanna Ploog | 2011-01-19 09:25:10 +0100

Reorder dungeon tooltips. Display tooltips for seen stairs.
Reordered to be more logical, a few general tweaks.

Features like gates and altars now get their tooltip text even if not
standing on them.

--------------------------------------------------------------------------------
625fe3edfc | Jude Brown | 2011-01-19 14:04:36 +1000

Quick fix for FixedVector assert when dropping wielded weapon.
PROMPT_GOT_SPECIAL currently equals -2; the code that is passed this
value only checks that it's not -1, and if not, attempts to access the
inventory at that slot.

Inventory[-2] is thus what triggers the assert here. Not sure what the
exact cause is or if this quick fix will resolve everything, but it'll
make CDO playable again.

--------------------------------------------------------------------------------
35c5a3f018 | Charles Otto | 2011-01-18 20:37:17 -0500

Fix asserts related to monsters getting out of bounds targets
Apparently radius iterators can visit out of bounds squares, who knew?

--------------------------------------------------------------------------------
cad0f0223d | Charles Otto | 2011-01-18 20:37:05 -0500

Reset wandering monster travel if they don't move
Reset the travel paths of wandering monsters if they don't seem to be
moving (this may be too aggressive).

--------------------------------------------------------------------------------
03bd4004ef | Charles Otto | 2011-01-18 20:36:55 -0500

Let band leaders displace their followers
Let band leaders displace their followers, skipping the type checks

--------------------------------------------------------------------------------
85b6d44db0 | Charles Otto | 2011-01-18 20:36:42 -0500

Make wandering band members path back to the leader
Make wandering band members pathfind back to the band leader if they
get out of range.

--------------------------------------------------------------------------------
d2b876388f | Adam Borowski | 2011-01-19 01:07:29 +0100

Fix demonic guardians relying on enum values.

--------------------------------------------------------------------------------
6da9ddc0a7 | Adam Borowski | 2011-01-19 01:07:28 +0100

Make DD monsters slightly less laughable, especially Be.

--------------------------------------------------------------------------------
4471f07bd0 | MarvintheParanoidAndroid | 2011-01-19 01:07:28 +0100

Make gain stat work for satiated Vampires
A comment claims that this should already have been the case, anyway.

--------------------------------------------------------------------------------
d124174fdf | Johanna Ploog | 2011-01-19 01:03:58 +0100

List prompt choices explicitly, i.e. "(y)es or (n)o" rather than "y/n".
Suggested by last year's UP report, and I think it's a good idea.

--------------------------------------------------------------------------------
94f7b4c7ac | Johanna Ploog | 2011-01-19 01:03:56 +0100

Fix weapon wielding.
Guess I should also have checked with something other than Felids
before committing...

--------------------------------------------------------------------------------
0df4a9f1e6 | Johanna Ploog | 2011-01-19 01:03:54 +0100

Add LoginError's known items tile.

--------------------------------------------------------------------------------
1df817ac1c | Charles Otto | 2011-01-18 18:49:23 -0500

Only consider herd members in range if in LOS
Add an LOS check in addition to seeing whether herd members are within
the distance threshold. This way monsters won't cluster across walls.

--------------------------------------------------------------------------------
c7c7a48478 | Charles Otto | 2011-01-18 18:49:10 -0500

Fix a bug with band member wandering
Fix an incorrect return value in _band_wander_target, the function
could claim to have set a movement target when none had actually been
set in some cases.

Additionally, give herd wander behavior priority over band wander
behavior, since the herd wandering behavior is more interesting.

--------------------------------------------------------------------------------
65f6d8d0f0 | Raphael Langella | 2011-01-19 00:46:02 +0100

Don't end transfer knowledge twice upon reaching skill level 27.
This fix Mantis #3235. This bug was introduced with 9e05d9d0.

--------------------------------------------------------------------------------
0e881dfdd0 | Johanna Ploog | 2011-01-19 00:06:58 +0100

Don't show inscription prompt in the tutorial.

--------------------------------------------------------------------------------
ccf375adc1 | Johanna Ploog | 2011-01-19 00:06:56 +0100

Update tile tooltips to Felid item restrictions.

--------------------------------------------------------------------------------
4995f58fd6 | Johanna Ploog | 2011-01-19 00:06:54 +0100

Shift the tooltip to the right, so the messages are still readable.
This makes it less likely that the tooltip information covers the
message area.

--------------------------------------------------------------------------------
86f13bc905 | Raphael Langella | 2011-01-19 00:03:37 +0100

Better movement AI for ranged attackers.
When you leave the LOS of a monster with ranged attacks, it will try to regain
a line of fire instead of coming straight after you.

This is the end of the "duck behind a corner" strategy. Next CDO update is
going to be fun ;)

This is of course going to make all monsters with ranged attacks more
dangerous, especially to melee. On the other hand, they are a bit easier to
escape from (if too easy, reduce ideal_range to 3). To balance it we can make
scrolls of fog more frequent and/or more effective.

As it is my first time messing with monster AI, the code probably needs some
review. I have cleared firing_pos in several places to be safe, but some may
be useless. Also, the _set_firing_pos function is maybe a bit expensive, but
it shouldn't be too much of an issue, as it is not called very often.

--------------------------------------------------------------------------------
44e800d204 | Raphael Langella | 2011-01-18 23:57:18 +0100

Remove obsolete water elemental check.
As they are not levitating anymore, they won't go into lava anyway.

--------------------------------------------------------------------------------
b8111cbdbc | Adam Borowski | 2011-01-18 23:40:23 +0100

Fix several bugs in measuring play time.
Also, code to handle save compatibility with 4.0 saves is not really needed
(when real_time could be -1).

--------------------------------------------------------------------------------
2f50bef70a | Adam Borowski | 2011-01-18 23:15:26 +0100

Fix antennae/Ashenzari overriding Dowsing (which gives more data).
As a side effect, the duration of Dowsing is one turn less.

--------------------------------------------------------------------------------
fa574be16a | Adam Borowski | 2011-01-18 23:09:19 +0100

Fix Dowsing not updating until the next turn.

--------------------------------------------------------------------------------
95bd759aaf | Adam Borowski | 2011-01-18 22:35:50 +0100

Make detected monsters work in tiles.
This might be totally wrong, though.

--------------------------------------------------------------------------------
f1680c183e | Adam Borowski | 2011-01-18 21:55:33 +0100

Make players wish that pan lord had mere firestorm.
Summoner ghosts got da dragonz too, of course!

--------------------------------------------------------------------------------
d8e9352fb1 | Adam Borowski | 2011-01-18 20:11:56 +0100

Use a full monsterinfo structure for detected ones rather than a flag.

--------------------------------------------------------------------------------
33ab3ac4b2 | Adam Borowski | 2011-01-18 20:11:56 +0100

Make detected mimics known.

--------------------------------------------------------------------------------
381c2d96ad | Johanna Ploog | 2011-01-18 18:01:43 +0100

Don't preselect a spell in the amnesia prompt.
That's just a recipe for disaster.

--------------------------------------------------------------------------------
b5e8b4eef9 | David Lawrence Ramsey | 2011-01-18 10:42:52 -0600

Typo fix.

--------------------------------------------------------------------------------
e9f7c4fb79 | Darshan Shaligram | 2011-01-18 20:32:23 +0530

Fix zig().monster_hook using raw Lua function instead of FunctionWrapper 
(kilobyte).

--------------------------------------------------------------------------------
da16289717 | Adam Borowski | 2011-01-18 15:42:49 +0100

Mention the failed string in formatted string asserts.

--------------------------------------------------------------------------------
1869ba7156 | Adam Borowski | 2011-01-18 12:16:57 +0100

Disable ophan corpses, enable generation in ZotDef.

--------------------------------------------------------------------------------
00941b4712 | Adam Borowski | 2011-01-18 11:20:36 +0100

Whitespace and indendation fixes.

--------------------------------------------------------------------------------
cfa35ac5a5 | RangerC | 2011-01-18 12:00:17 +0200

Readd Summon Dragon as a viable spell
Summon Dragon is back as a level 9 spell (pure summoning) that can summon all 
types of dragons apart from bone dragons.

Probably worse than SHT, but usable by good god worshippers.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
65de3ca75e | Adam Borowski | 2011-01-18 02:18:49 +0100

Remove some fixed enum value assignments, they're misleading.
We don't (and shouldn't) use fixed numbers.

There's a very slight save incompat: Jiyvaites won't get their walk biased
until their next stat gain.

--------------------------------------------------------------------------------
a0902d8bd6 | Adam Borowski | 2011-01-18 02:03:25 +0100

Get rid of OBJ_UNKNOWN_{I,II}, OBJ_GEMSTONES.

--------------------------------------------------------------------------------
ea9e01caf4 | Adam Borowski | 2011-01-18 01:55:07 +0100

Axe a totally irrelevant comment.

--------------------------------------------------------------------------------
e907d45e70 | Adam Borowski | 2011-01-18 01:53:02 +0100

Don't rely on enum values for Pan monsters.

--------------------------------------------------------------------------------
cbfefbcdcd | Johanna Ploog | 2011-01-17 20:12:07 +0100

If the player only knows one spell, set last_cast_spell to that.

--------------------------------------------------------------------------------
5220df6e91 | Johanna Ploog | 2011-01-17 20:12:05 +0100

Remove a redundant check.
No need to check against SPELL_NO_SPELL twice, once with and once
without selector.

--------------------------------------------------------------------------------
bf236b29ee | Johanna Ploog | 2011-01-17 20:12:02 +0100

Take the selector function into account for preselecting spells.
If the Tiles mode selector function reduces the list of eligible spells
to one, preselect that one for casting. (But don't set last_cast_spell
until the selection is actually confirmed.)

--------------------------------------------------------------------------------
5bdf0690ea | Johanna Ploog | 2011-01-17 20:12:00 +0100

In the spells menu, preselect the spell cast last.

--------------------------------------------------------------------------------
0c187c9920 | Johanna Ploog | 2011-01-17 20:11:58 +0100

Implemente a crude spell quiver. Store last spell cast.
The spell gets cleared if you forget it.
Also, the value is not yet stored in the save because I'd rather wait
for feedback first.

--------------------------------------------------------------------------------
1c25b44817 | Johanna Ploog | 2011-01-17 20:11:56 +0100

If you only know a single spell, preselect it in the spells menu.
Seeing how hardly anyone is going to open z? for a single spell,
this mainly affects new players and tiles players (where a certain
mouseclick combination brings up the spell menu).

--------------------------------------------------------------------------------
c411b8e2f9 | Adam Borowski | 2011-01-17 14:22:25 +0100

Allow antimagic on lajatangs and demon stuff.
They allow most of other brands, and having Agnes and balrugs kick the
butt of some sorry caster is nice.

--------------------------------------------------------------------------------
a128b98c7a | Jude Brown | 2011-01-17 20:31:25 +1000

Tweak cerebov_st (clouded).

--------------------------------------------------------------------------------
56cdf4c4df | Jude Brown | 2011-01-17 20:29:52 +1000

Don't generate laboratory rat zombies, skeletons, etc.

--------------------------------------------------------------------------------
b5cfd013cb | Jude Brown | 2011-01-17 20:27:38 +1000

Reimplement Sticks to Snakes as a pure transmutation.
This introduces a new transitory state of monsterness: fake abjuration.
It takes the same values as normal abjuration, but these monsters are
otherwise described as "short lived". They are not abjurable, do not
give EXP, do not leave corpses, and "wither and die" when their timer
runs out.

This will be extended upon for homunculi! Hooray!

I might've missed something, but I think I've gotten everything.

--------------------------------------------------------------------------------
32c3cce915 | Jude Brown | 2011-01-17 20:26:13 +1000

Allow specifying multiple spellbooks in monster specs.
Thus, in the specification "rat spells:magic_dart spells:throw_flame
spells:throw_frost", the rat has one-chance-in-three of getting a spell
book with magic dart, or a spell book with throw flame, or a spell book
with throw frost.

--------------------------------------------------------------------------------
d2881dea0d | Johanna Ploog | 2011-01-17 11:08:02 +0100

Remove scrolls of blank paper.
Or rather disable their generation, proper removal scheduled for the
next major version change.

If the total of scroll weights is supposed to be 10000, there were
140 weight points too many for the early game, so by removing those
all early game scrolls got an infinitesimal frequency increase.

Of the remaining 161 weight points, 50 each were placed on curse foo,
10 on remove curse and 1 on identify. (The latter because I prefer
1800 to 1799, but 1/10000 doesn't really make any difference.)

--------------------------------------------------------------------------------
341728a1fe | Johanna Ploog | 2011-01-17 01:04:09 +0100

Add a tutorial/hints trigger for auto-picking up thrown items.

--------------------------------------------------------------------------------
5b2150eb8c | Johanna Ploog | 2011-01-17 00:43:34 +0100

Display the more concise Hints mode command help in the tutorial.
For some reason, that's missing o and Ctrl-F, but that's still
much better than the normal full command list.

--------------------------------------------------------------------------------
8c98380de0 | Johanna Ploog | 2011-01-17 00:43:32 +0100

Fix numpad being shown inverted in the entire documentation. (galehar)
Either no one else actually has a numpad or no one ever looks at the
command help. Embarassing...

--------------------------------------------------------------------------------
5fe0a28e67 | Johanna Ploog | 2011-01-17 00:43:30 +0100

Get rid of the hints mode bugtesting code.
It's become completely out of date, and only made sense at the
beginning stages of the then-tutorial development anyway.

--------------------------------------------------------------------------------
455d6d45ff | Charles Otto | 2011-01-16 17:59:45 -0500

Try to make wandering band members stick around the leader
Make wandering band members stick around the leader, when possible.

Generally this works somewhat worse than keeping herds together since
the band leader just wanders around as normal, and can lose band
members by going through narrow corridors etc. It's also easier to pull
band members individually since the other band members only follow the
leader, and the leader continues to wander as normal.

--------------------------------------------------------------------------------
de23ef4187 | Johanna Ploog | 2011-01-16 21:43:15 +0100

Move hints enums from enum.h -> hints.h
No idea what they were doing in enum.h. All the relevant files include
hints.h anyway because of learned_something_new().

--------------------------------------------------------------------------------
55fd8cde07 | Johanna Ploog | 2011-01-16 21:42:10 +0100

Fix lua errors in loading a tutorial2 save game.

--------------------------------------------------------------------------------
73ec0142d9 | Johanna Ploog | 2011-01-16 20:18:05 +0100

Add the ranged combat part of the second tutorial lesson.
Still needs some special triggers for ammunition autopickup etc.

--------------------------------------------------------------------------------
775b5d52e0 | Johanna Ploog | 2011-01-16 20:18:03 +0100

Refer to tutorial "lessons" rather than "maps" in the map choice menu.
Also: A few typo and spacing fixes.

--------------------------------------------------------------------------------
a8804fb6c4 | Johanna Ploog | 2011-01-16 20:18:00 +0100

Fix tutorial maps not being stored in the save.
Previously, if you saved on level 1 without having entered level 2,
after loading the save you'd get a normal dungeon level (albeit devoid
of monsters) instead of the second tutorial level.

Breaks tutorial saves, but seeing how I'm probably the only one testing
them, let alone saving in the middle, I figure it doesn't matter. :P

--------------------------------------------------------------------------------
0f496669e0 | Johanna Ploog | 2011-01-16 20:17:58 +0100

Apply "mundane" tag to the old tutorial.

--------------------------------------------------------------------------------
44ca3e30ac | Johanna Ploog | 2011-01-16 20:17:56 +0100

Make the "mundane" tag actually work.
On second thought, don't include not_cursed, so we can produce
cursed non-glowing items, if necessary.

--------------------------------------------------------------------------------
1a8dd4ca20 | Adam Borowski | 2011-01-16 19:32:55 +0100

Count giant spores as objects, too.

--------------------------------------------------------------------------------
0a0d0eabd5 | Adam Borowski | 2011-01-16 19:22:50 +0100

Some bracicide.

--------------------------------------------------------------------------------
c6fff8069e | Adam Borowski | 2011-01-16 19:16:47 +0100

Don't ruin the map boundary.

--------------------------------------------------------------------------------
4a961ce581 | Adam Borowski | 2011-01-16 18:58:08 +0100

Don't consider conjured/hexed object monsters to be creatures.
This changes mostly gods' outlook: no penalties and no rewards.

--------------------------------------------------------------------------------
9c60867e8e | Johanna Ploog | 2011-01-16 12:39:21 +0100

New item tag for map defs: "mundane" => uncursed ego-less +0, +0 item

--------------------------------------------------------------------------------
709e2c0855 | Johanna Ploog | 2011-01-16 12:06:41 +0100

Fix the tutorial turning on hints mode. Oops!

--------------------------------------------------------------------------------
c640349594 | Johanna Ploog | 2011-01-16 10:54:43 +0100

Make tutorial maps set hunger directly.
No longer hardcoded in player generation; allows for different hunger
levels in different lessons.

--------------------------------------------------------------------------------
44dfa26efd | Jude Brown | 2011-01-16 18:31:40 +1000

Fix #3218: "It turns to fight!" for invisible sky beasts.
Check visibility before printing a "turns to fight" message. Possibly no
fleeing monster had invisibility as an ability before, therefore this
was never encountered.

--------------------------------------------------------------------------------
797421cdc9 | Jude Brown | 2011-01-16 18:31:40 +1000

Evaporate no longer uses throwing skill.
Previously you could hit <RETURN> and there would be a chance that the
potion would fly past your target. This chance was determined based on
a combination of your dexterity and throwing skill.

This makes plenty of sense until you take into consideration the fact
that hitting . instead of <RETURN> means that the potion stops at the
target. It does not actually hit the target, but as it is a cloud spell,
this does not matter: it has created a cloud at the location you
desired.

I feel this is spoiler-y. It relies on the player knowing that there's a
difference between <RETURN> and ., and it is unlikely that they would.
Thus, I've made the potion beam auto-hit and removed the SK_THROWING
practice call.

--------------------------------------------------------------------------------
6d61462e27 | Darshan Shaligram | 2011-01-16 12:26:05 +0530

is_harmless_cloud should not match rain, fixed.
Rain is not harmless: rain clouds damage fiery actors.

is_damaging_cloud is better than actor_cloud_immune when checking for
exclusions. actor_cloud_immune may return false, but the cloud may be
non-damaging and have only positive side-effects.

--------------------------------------------------------------------------------
e46dae082d | Raphael Langella | 2011-01-15 16:01:41 +0100

Pickup single stack: allow using g or enter to pick the whole stack.

--------------------------------------------------------------------------------
7ab4e91782 | David Ploog | 2011-01-15 15:40:28 +0100

Nerf some minivaults.
Some of the ancient minivaults could be placed in D:1, and sport 4 or
even 16 good items. Randomised loot, and added DEPTH statements.

--------------------------------------------------------------------------------
fbeb327692 | Johanna Ploog | 2011-01-15 14:03:25 +0100

If you have neither spells nor abilities, make = skip ahead to items.
That's one hoop less to jump through for new players, which makes it
possible to explain its usage in the tutorial. :)

--------------------------------------------------------------------------------
3dd268b2db | MarvintheParanoidAndroid | 2011-01-15 12:15:08 +0100

Shiny new Serpent of Hell colours
Geh: ETC_FIRE (red, yellow, lightred)
Coc: ETC_ICE (lightblue, blue, white)
Dis: ETC_IRON (cyan, lightgrey, darkgrey)
Tar: ETC_NECRO (darkgrey, magenta)

--------------------------------------------------------------------------------
01789f99ed | Jude Brown | 2011-01-15 20:45:26 +1000

Dump quotes and descriptions from .des files.
This should make Zaba happy!

--------------------------------------------------------------------------------
53349c64f9 | Darshan Shaligram | 2011-01-15 15:27:15 +0530

Clamp monster spec hd at 100 (because ##crawl is awesome).

--------------------------------------------------------------------------------
64b5548135 | Darshan Shaligram | 2011-01-15 15:27:15 +0530

Fix parameter name in global_function.

--------------------------------------------------------------------------------
99fdec5a37 | Johanna Ploog | 2011-01-15 09:59:44 +0100

In the second tutorial, replace hand axe -> short sword.
In console, the latter has the nicer colour, which stands out more among
the background.

--------------------------------------------------------------------------------
49c38cb904 | Jude Brown | 2011-01-15 18:37:07 +1000

Rewrap vault-defined monster descriptions for Gretell.

--------------------------------------------------------------------------------
e9c9704960 | Jude Brown | 2011-01-15 18:31:19 +1000

Copy quotes and description into the database from vault definitions.
These should be kept in line with the actual vault definition; probably
there should be comments indicating that this is to take place. This
shouldn't affect the descriptions of any of the monster, as they're
overridden by the vault, however, it does give us the opportunity to
present the information to Gretell via crawl.develz.org/info and to
the player via /?m, the latter not yet functional.

--------------------------------------------------------------------------------
a433921924 | Jude Brown | 2011-01-15 17:28:10 +1000

Fix tiles.

--------------------------------------------------------------------------------
a6f5c8a886 | Jude Brown | 2011-01-15 15:30:11 +1000

Copy vault-defined monster specifications into the actual definitions.
This means Gretell et al will be able to properly access the
information.

--------------------------------------------------------------------------------
b914d3ba18 | MarvintheParanoidAndroid | 2011-01-15 02:41:23 +0100

Altar descriptions for Fedhas, Jiyva, Vehumet

--------------------------------------------------------------------------------
6e48eee244 | David Lawrence Ramsey | 2011-01-14 19:40:18 -0600

Properly pluralize "kenku" as "kenku", not "kenkus".
This change matches how it's pluralized in the manual, at least.

--------------------------------------------------------------------------------
1fdd07e1e0 | MarvintheParanoidAndroid | 2011-01-15 02:38:25 +0100

Fix Veh's range extension description

--------------------------------------------------------------------------------
f8ceb34dd2 | David Lawrence Ramsey | 2011-01-14 19:23:41 -0600

Use MST_NO_SPELLS for unborn DDs and DD necromancers.
Since their spellbooks are chosen randomly, the current values can be
overridden, and so are misleading.

--------------------------------------------------------------------------------
5f9ea088ef | Johanna Ploog | 2011-01-15 00:23:20 +0100

Don't display item/monster quotes in the tutorial.

--------------------------------------------------------------------------------
fb18623548 | Johanna Ploog | 2011-01-15 00:23:18 +0100

In the second tutorial, replace wolf -> hound.
Mostly because having different colours looks more interesting in
console. Also, the hound description sounds more like something the
player would wish to avoid.

--------------------------------------------------------------------------------
e73a8520cd | Johanna Ploog | 2011-01-15 00:23:16 +0100

Display weapon and corpse glyphs in the console tutorial2 recap.

--------------------------------------------------------------------------------
a763e1e695 | Adam Borowski | 2011-01-14 23:57:26 +0100

Bump hairy devils a bit as well.

--------------------------------------------------------------------------------
b2f4db86f2 | Adam Borowski | 2011-01-14 23:57:26 +0100

Make sixfirhies less of a pushover.
Like most 4s, they never spawn in places they might be remotely relevant,
and we can't put a cat's hard naming work go to waste.

--------------------------------------------------------------------------------
e64610d965 | Adam Borowski | 2011-01-14 23:57:26 +0100

Add co's icon for the Homunculus spell.

--------------------------------------------------------------------------------
871b21dd8b | Johanna Ploog | 2011-01-14 23:37:00 +0100

Some tweaks to the second tutorial lesson.
Move entrance and weapon, so the player really can't miss it,
and add a resting reminder after fighting the rats.

--------------------------------------------------------------------------------
63dcba1b7c | Johanna Ploog | 2011-01-14 23:29:48 +0100

Shorten tutorial end screen to 24 lines, fixes console crashes.
Sorry about that!

--------------------------------------------------------------------------------
269eb6e355 | Johanna Ploog | 2011-01-14 22:17:39 +0100

Make Escape from the Sprint/Tutorial menu actually escape the menu.
This is what you expect, the "just confirm the default" behaviour is
completely orthogonal. As a bonus, with restart_after_game this acts
like Backspace should.

--------------------------------------------------------------------------------
af5d5ecc41 | Johanna Ploog | 2011-01-14 22:02:13 +0100

Don't allow viewing aptitudes etc. from tutorial submenu.
For the tutorial target group, aptitudes are just gibberish;
the complete command list is exactly what we're trying to avoid in
the tutorial; and since the tutorial maps are supposed to be played
in order, random map choice doesn't make sense either.

That, and the screen becomes less cluttered. :)

--------------------------------------------------------------------------------
1d96ef2db2 | Johanna Ploog | 2011-01-14 21:22:30 +0100

Hook the hints mode level gain message into the tutorial.

--------------------------------------------------------------------------------
442e52f8c1 | Johanna Ploog | 2011-01-14 20:48:48 +0100

Make tutorial selectable from the command line.
New command line option: -tutorial

--------------------------------------------------------------------------------
1070ce4629 | Johanna Ploog | 2011-01-14 20:47:11 +0100

Fix tutorial map.

--------------------------------------------------------------------------------
4d29b77f0d | Johanna Ploog | 2011-01-14 19:52:43 +0100

Add the beginning of the second tutorial map: Monsters/combat.
Just the first level for now; still got planning to do for the
ranged combat one.

--------------------------------------------------------------------------------
2ec002cba0 | Johanna Ploog | 2011-01-14 19:52:41 +0100

Tweak tutorial death message.

--------------------------------------------------------------------------------
9ab6b7c4cd | Johanna Ploog | 2011-01-14 19:52:39 +0100

Assign the training dummy a fixed tile.
It always got assigned the same one in the tutorial map definitions
anyway.

--------------------------------------------------------------------------------
4896ac9628 | Adam Borowski | 2011-01-14 16:18:22 +0100

Teach CIA about MarvinPA.
He's a more prolific patcher than half the devs.

--------------------------------------------------------------------------------
39c199dfc6 | MarvintheParanoidAndroid | 2011-01-14 15:56:21 +0100

Fix iridescent scales description again

--------------------------------------------------------------------------------
420e55a4ce | Adam Borowski | 2011-01-14 13:40:42 +0100

Fix non-ASSERTS builds.

--------------------------------------------------------------------------------
a15a78951c | Johanna Ploog | 2011-01-14 13:23:23 +0100

During the tutorial, death doesn't trigger inventory and hiscore.
Instead, show a perky "Keep trying!" message. :P

--------------------------------------------------------------------------------
0dfc7b6304 | Johanna Ploog | 2011-01-14 13:23:20 +0100

Actually use the grate tile for DNGN_GRATE.

--------------------------------------------------------------------------------
49f0d5c781 | Raphael Langella | 2011-01-14 12:32:44 +0100

Don't count melded slots when calculating stat modifiers.
Mantis #2329.

--------------------------------------------------------------------------------
29a6f3b720 | Johanna Ploog | 2011-01-14 12:15:44 +0100

Add co's improved vampire tiles.

--------------------------------------------------------------------------------
018d95556b | Johanna Ploog | 2011-01-14 12:13:10 +0100

Add co's new giant tiles capable of weapon display.

--------------------------------------------------------------------------------
64f1ec2592 | Jude Brown | 2011-01-14 19:39:10 +1000

Tweak Grinder's spells, weapon. Afterthought: halve depth.
Likewise Grinder has 33 kills in 0.8-a (trunk on CDO), compared to 110
for Edmund, 200 combined for Dowan and Duvessa, and 220 total for Ijyb.
As is the motto of the Crawl boot camp for uniques: shape up or get out.

Thus, he's lost brain feed and gained another paralyse. The tendency
towards a club is now replaced with a dagger and the club is removed
entirely; he still gets a chance of a whip and a hammer, though reduced.

Finally, his depth goes from 6-10 to 3-6. Slightly dramatic, but we'll
see how he does and it can always be adjusted again if necessary, etc.

--------------------------------------------------------------------------------
4c7d83c80d | Jude Brown | 2011-01-14 19:26:18 +1000

Greatly reduce Eustachio's depth.
Previously it was 8-13, is now 4-10. The previous drop in depth put him
"on the same levels or so as Erolcha". He does not compare. Erolcha is a
strong early caster with high HD and a variety of extremely strong
spells.

A more succinct comparison: Eustachio is a bug smeared across the windscreen
of the 4X4 that is Erolcha. Eustachio has 9 kills on CDO; Erolcha, 900.

Likewise, in comparison to Dowan and Duvessa, Eustachio is still quite
weak. However, Dowan and Duvessa are quite powerful, so this is not
necessarily an adequate comparison.

Either way, you may now encounter Eustachio on D:4. Good luck!

--------------------------------------------------------------------------------
a9ce00c51c | Adam Borowski | 2011-01-14 01:17:15 +0100

Axe the ring of Charms.  Those damn witches hexed it!
After several attempts to balance it, it was always either overpowered or
useless.  No wonders, we have such diverse races as kobolds, orcs, merfolk,
mummies and draconians -- it's hard to come up with a formula that matches
monsters of that races well.

There's a minor save breakage: brooch of Shielding, robe of Clouds and hat
of Pondering have their descriptions shifted by one, the hat of Pondering
causes rain clouds.  We don't have any ifdefs for art-data.txt, the breakage
is small enough I didn't bother with shims.

--------------------------------------------------------------------------------
2b9a81daa0 | Raphael Langella | 2011-01-13 23:08:29 +0100

Special case all branch exits in is_unknown_stair().

--------------------------------------------------------------------------------
7215e7eca3 | Raphael Langella | 2011-01-13 20:51:00 +0100

Check i_feel_safe just once when updating command tab.

--------------------------------------------------------------------------------
5a4495603c | Raphael Langella | 2011-01-13 20:51:00 +0100

Revert "Don't check i_feel_safe and abilities for drawing the command tab."
This reverts commit 61f5d664dbbbb0252a0c8d6572fc8d7af270d0d0.
This wasn't the cause of the slowdown.

--------------------------------------------------------------------------------
28755a29fc | Raphael Langella | 2011-01-13 20:51:00 +0100

Detached the command tab by default.

--------------------------------------------------------------------------------
ee3064ea34 | Raphael Langella | 2011-01-13 20:51:00 +0100

Fix the slowdown caused by the command tab.
Mantis #3160.

--------------------------------------------------------------------------------
ee5186f871 | Raphael Langella | 2011-01-13 20:51:00 +0100

Tiles default layout: give gold_turns a higher priority than detached tabs.
Even if it seems to be less valuable, having the gold/turn line disappear when
spells are learned can be confusing.

--------------------------------------------------------------------------------
0c56123ef4 | Raphael Langella | 2011-01-13 20:51:00 +0100

Deduce tab_margin from available space when placing detached tabs.

--------------------------------------------------------------------------------
4df6271ecc | Raphael Langella | 2011-01-13 20:51:00 +0100

New title logo.
Also renamed existing title images to title_author_name.png and add a new one
with a dragon by Denzi.

--------------------------------------------------------------------------------
783270295c | Raphael Langella | 2011-01-13 20:50:59 +0100

Title images: search all title_* files instead of just tile_xx.png.
Now we can give them proper names.

--------------------------------------------------------------------------------
079296e9a4 | Raphael Langella | 2011-01-13 13:34:39 +0100

Fix the skill menu layout (again). Bring back requirements to 80x24.

--------------------------------------------------------------------------------
09fa8df50d | Raphael Langella | 2011-01-13 07:07:18 +0100

Skill menu: fix layout (enchantment split added a line).

--------------------------------------------------------------------------------
8b191d0978 | Charles Otto | 2011-01-12 23:20:47 -0500

Merge branch 'wandering' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
ae1d2260d8 | Charles Otto | 2011-01-12 23:11:28 -0500

Apply M_HERD to some more monster types
Apply M_HERD (used to keep wandering monsters together) to yaks, death
yaks, ugly things and slime creatures.
Slime creatures and ugly things since they have gimmicks that are only
effective in groups.

--------------------------------------------------------------------------------
94ff4aa56d | Darshan Shaligram | 2011-01-13 09:18:58 +0530

[3198] Fix raw Lua function reference in volcano_aerie fog machine.

--------------------------------------------------------------------------------
08520d229c | Charles Otto | 2011-01-12 22:37:42 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into wandering

--------------------------------------------------------------------------------
fd5378b7fc | Johanna Ploog | 2011-01-13 00:30:08 +0100

Place the two tutorial map parts side by side for the X map.
Now using the X command in the console version actually allows the
player to see the other part of the map.

--------------------------------------------------------------------------------
f29f552f0d | Johanna Ploog | 2011-01-12 22:47:20 +0100

Specialcase the level 1 upstairs in is_unknown_stair(), too.
I'll admit it: I'm a completionist and having stairs marked with
asterisks I cannot get rid of (by peeking into the destination level)
is driving me crazy. :p

--------------------------------------------------------------------------------
3095c9b81d | Johanna Ploog | 2011-01-12 22:21:03 +0100

Also use poison icon for player doll, if poisoned.
This is consistent with monsters and makes poisoning stand out more.

--------------------------------------------------------------------------------
c88e65863e | Johanna Ploog | 2011-01-12 22:11:40 +0100

Describe level 1 upstairs as "staircase leading out of the dungeon."

--------------------------------------------------------------------------------
4d50a50da3 | Johanna Ploog | 2011-01-12 22:01:56 +0100

Add co's killer klown tiles.

--------------------------------------------------------------------------------
8a0514a9d0 | Johanna Ploog | 2011-01-12 21:11:45 +0100

Tiles: Maurice (coolio), rat zombie (Curio), dungeon exit (LoginError).

--------------------------------------------------------------------------------
4c5645cbd6 | Johanna Ploog | 2011-01-12 20:02:17 +0100

Tutorial: Unspam the number pad information.

--------------------------------------------------------------------------------
df42bf32ca | Johanna Ploog | 2011-01-12 20:02:16 +0100

And a tutorial end screen recapping all movement-related commands.

--------------------------------------------------------------------------------
a699ec6330 | Johanna Ploog | 2011-01-12 20:02:14 +0100

Add code to make leaving the tutorial trigger an end of game screen.

--------------------------------------------------------------------------------
d6d52ef80f | Johanna Ploog | 2011-01-12 20:02:11 +0100

Tutorial: Display vi keys rather than numpad keys for shift running.

--------------------------------------------------------------------------------
200cc9e8be | Johanna Ploog | 2011-01-12 20:02:09 +0100

Explicitly describe uppercase keys as such in the tutorial.

--------------------------------------------------------------------------------
74817034b4 | Johanna Ploog | 2011-01-12 20:02:07 +0100

Handle '<' properly in the tutorial messages.

--------------------------------------------------------------------------------
59b6aa4732 | David Lawrence Ramsey | 2011-01-12 11:31:05 -0600

Simplify the message when kraken tentacles die en masse.

--------------------------------------------------------------------------------
1ef65a4dbf | David Ploog | 2011-01-12 12:58:12 +0100

Minor addition to tutorial lesson 1.

--------------------------------------------------------------------------------
b4e17759cb | Darshan Shaligram | 2011-01-12 08:36:28 +0530

Reduce ambient noise in Hive from 20->5; Orc, Lair 5->4.
The very high ambient noise in Hive (20) made it practically impossible to wake
the bees.

--------------------------------------------------------------------------------
aab5a3e720 | Adam Borowski | 2011-01-12 03:14:28 +0100

Mention what weapon is to be blessed in TSO/Kiku/Lugonu final prayer.

--------------------------------------------------------------------------------
f9d11d0b17 | Johanna Ploog | 2011-01-11 23:58:07 +0100

Add the first tutorial lesson: movement/exploration.
TODO: Leaving should not pull up inventory, highscore etc.
      but rather display a screen recapping the movement commands.

Feedback welcome!

--------------------------------------------------------------------------------
21b963c268 | Adam Borowski | 2011-01-11 22:48:26 +0100

Fix naga poison breath.

--------------------------------------------------------------------------------
81efa9f607 | Johanna Ploog | 2011-01-11 19:53:26 +0100

Adapt exclusion radius to the Nightstalker mutation.
Does not apply retroactively.

--------------------------------------------------------------------------------
1ca8e70994 | Vsevolod Kozlov | 2011-01-11 21:44:53 +0300

Squeeze gnoll_camp_medium_01 a little, consequently adjust the positions of 
monsters & loot.

--------------------------------------------------------------------------------
58e99be7d1 | Johanna Ploog | 2011-01-11 19:18:15 +0100

Don't display cloud exclusions on the Ctrl-O screen.
Just clutters the screen without actually being useful.

--------------------------------------------------------------------------------
2c63f35a74 | Johanna Ploog | 2011-01-11 19:18:13 +0100

Implement #2374: Don't prompt for cloud-excluded staircases.

--------------------------------------------------------------------------------
f07d3b5752 | Johanna Ploog | 2011-01-11 19:18:11 +0100

Temporary resistances don't prevent cloud autoexclusions.
This includes Necromutation/miasma.

--------------------------------------------------------------------------------
2b5bbcb055 | Johanna Ploog | 2011-01-11 19:18:09 +0100

Implement #1962: Don't generate cloud autoexclusions when immune.
Currently, this even works for temporary resistances, which is not
ideal.

--------------------------------------------------------------------------------
56266ee012 | Johanna Ploog | 2011-01-11 19:18:08 +0100

Implement #1960: Allow traveling across radius 1 excluded stairs.

--------------------------------------------------------------------------------
3743e2d50c | Johanna Ploog | 2011-01-11 19:18:06 +0100

Don't attempt to set autoexclusions in unmappable areas.

--------------------------------------------------------------------------------
cc4c2b0e84 | Johanna Ploog | 2011-01-11 19:18:04 +0100

Move the common tutorial utility methods into new file tutorial.lua.
Apparently, this breaks existing tutorial saves.

--------------------------------------------------------------------------------
fe4243e2c2 | Vsevolod Kozlov | 2011-01-11 21:10:12 +0300

Fix whitespace errors in dat/clua and vaults.des.

--------------------------------------------------------------------------------
6c62788d2f | Vsevolod Kozlov | 2011-01-11 21:09:35 +0300

Fix whitespace and symmetry in gnoll_camp.des.

--------------------------------------------------------------------------------
ad235bc109 | Arxale | 2011-01-11 19:30:32 +0200

Allows diagonal burrowing
The removed code predates Stone Soup. I suspect it is there for aesthetical 
reasons, and gameplay is now better (boring beetles will dig players out of 
corridors). Hence, I'm picking this version of the patch (#2743)

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f7fbe8cc12 | Eino Keskitalo | 2011-01-11 19:30:32 +0200

Coolio's sergeant and shaman tiles for gnoll camp. Also tweak sergeants.
Sergeants now always get a good spear and a buckler or a shield, also boosted 
their HD up to 4. I did the changes based on the tile, and the fact that 
vault-only tiles don't seem to be able to show the wielded items dynamically. I 
already requested Coolio for yet another sergeant tile tweak - adding a fixed 
spear.

--------------------------------------------------------------------------------
d62ea6d357 | Eino Keskitalo | 2011-01-11 19:30:32 +0200

Other gnoll camp tweaks.

--------------------------------------------------------------------------------
1838a6dacd | Eino Keskitalo | 2011-01-11 19:30:32 +0200

Remember to recolour gnoll sergeants and shamans. (elliptic, monky)

--------------------------------------------------------------------------------
bbe03937d7 | Eino Keskitalo | 2011-01-11 19:30:32 +0200

A bit less padding around the largest gnoll camp maps. (Zaba)

--------------------------------------------------------------------------------
f841a2fb16 | Eino Keskitalo | 2011-01-11 19:30:31 +0200

Spacing fixes.

--------------------------------------------------------------------------------
e7c3fa432c | Adam Borowski | 2011-01-11 13:03:13 +0100

Merge branch 'master' into unicode
Conflicts galore...

--------------------------------------------------------------------------------
cc071d90f3 | Adam Borowski | 2011-01-11 12:38:54 +0100

Always enable "optional" colour.

--------------------------------------------------------------------------------
0ddf2aea89 | Adam Borowski | 2011-01-11 12:34:00 +0100

Remove defines for "a bunch of optional features".

--------------------------------------------------------------------------------
bdb28e3d5a | Adam Borowski | 2011-01-11 12:30:40 +0100

Reduce the clock threshold when the player is idle.

--------------------------------------------------------------------------------
e408bd4286 | Adam Borowski | 2011-01-11 12:26:16 +0100

Give dprf()s with the level's name when entering a level.
Due to recent changes and future plans, this is likely to make errors easier
to spot and debug.

--------------------------------------------------------------------------------
631aad2470 | Johanna Ploog | 2011-01-11 12:16:38 +0100

Fix #3195: Don't set swamp_tree_water for water without trees.

--------------------------------------------------------------------------------
e97add3621 | Vsevolod Kozlov | 2011-01-11 12:05:57 +0300

Split serial_corexii_hall vaults into serial_corexii_hall.des

--------------------------------------------------------------------------------
a44fa09af5 | Vsevolod Kozlov | 2011-01-11 12:04:13 +0300

Split serial_curves vaults into serial_curves.des.

--------------------------------------------------------------------------------
2f89339b67 | Vsevolod Kozlov | 2011-01-11 11:59:39 +0300

Use die() instead of ASSERT("...").
ASSERT("...") never fails, but let's pretend that in these cases, a failure (as
produced by die()) is intended.

--------------------------------------------------------------------------------
ed104f8521 | Vsevolod Kozlov | 2011-01-11 11:46:00 +0300

Don't handle the 'F' glyph in dungeon.cc.
Nothing should be relying on it anyway.

--------------------------------------------------------------------------------
a764049175 | Adam Borowski | 2011-01-11 02:44:26 +0100

Mention the file and line no in die().

--------------------------------------------------------------------------------
ab77b31918 | Adam Borowski | 2011-01-11 02:44:26 +0100

Give all ASSERT(false) proper messages.

--------------------------------------------------------------------------------
78595a95c0 | Adam Borowski | 2011-01-11 02:44:26 +0100

Convert ASSERT(!"foo") to die("foo").

--------------------------------------------------------------------------------
7971002b54 | Adam Borowski | 2011-01-11 02:43:14 +0100

A function die() that does the equivalent of ASSERT(!"foo") but always works.
It's what the old DEBUGSTR() did except for failing to be fatal in non-assert
builds.

Rationale: not aborting in known failure leads to further damage, and unlike
actual (conditional) assertions, there's no gain in skipping checks.

--------------------------------------------------------------------------------
461cf13dde | Adam Borowski | 2011-01-11 01:15:31 +0100

Fix LRD not obeying some checks when destroying walls.

--------------------------------------------------------------------------------
227598c133 | Adam Borowski | 2011-01-11 01:12:32 +0100

Move a function from dungeon.cc.
It doesn't have anything to do with dungeon generation.

--------------------------------------------------------------------------------
655392e33d | David Lawrence Ramsey | 2011-01-10 10:40:10 -0600

For now, move oklob saplings from lightgreen 'p' to lightcyan 'P'.
This puts them on the proper glyph for plants, and makes them stick out
properly, as brought up in Mantis 2961.

--------------------------------------------------------------------------------
f91f7809da | Johanna Ploog | 2011-01-10 17:07:02 +0100

Add code basis for adding different tutorial maps.
Currently unused as we only have a single map, but I've tested it
with a set of dummy maps, and it works.

This changes some of the sprint specific methods to more generic
game mode methods that'll also be usable for ZotDef.

--------------------------------------------------------------------------------
15d977d7ad | Darshan Shaligram | 2011-01-10 21:21:44 +0530

Move game-type-specific branch initialisation to 
initialise_branches_for_game_type() (Zaba).

--------------------------------------------------------------------------------
52beb4e37e | Darshan Shaligram | 2011-01-10 21:08:45 +0530

^G prompt acknowledges cancel with MSG_OK instead of leaving the prompt 
dangling.

--------------------------------------------------------------------------------
64653ce2f1 | Darshan Shaligram | 2011-01-10 21:03:27 +0530

Fix Sprint saves not loading (Napkin).
Sprint set dungeon depth to 1, making D:1's place name "D". However, when
loading Sprint saves, the dungeon depth was not yet set to 1, so the game was
trying to load a chunk with the name "D:1".

--------------------------------------------------------------------------------
52227691bf | Darshan Shaligram | 2011-01-10 20:49:16 +0530

More feedback at the macro prompt: make it clear exactly what macro/keymap was 
defined, deleted, etc. Never leave the prompt dangling without an 
acknowledgement.

--------------------------------------------------------------------------------
aa2e843905 | Darshan Shaligram | 2011-01-10 20:26:04 +0530

Don't spam messages at players standing in Swamp mist.

--------------------------------------------------------------------------------
ecd012bf40 | Adam Borowski | 2011-01-10 15:31:25 +0100

Let monsters say something when they flee away.  A silent sheep fire is no fun.

--------------------------------------------------------------------------------
5354b819a1 | Adam Borowski | 2011-01-10 13:45:26 +0100

Auto-id staves if you can cast spells at all.
It's a matter of casting any spell twenty times or so at most.

Staves of channeling can be evoked with no spellcasting skills too (useful
for invocations/rods/guardian spirit).

--------------------------------------------------------------------------------
d032bde601 | Adam Borowski | 2011-01-10 13:45:26 +0100

No instant retribution from Beogh.
You could keep abandoning and rejoining him for infinite xp with almost
no time cost.

--------------------------------------------------------------------------------
bf614850bc | Darshan Shaligram | 2011-01-10 17:02:07 +0530

Fix dgn_find_nearby_stair to place the PC correctly on descending Ziggurat 
stairs.

--------------------------------------------------------------------------------
a0fdfd53fa | Darshan Shaligram | 2011-01-10 16:48:06 +0530

Fix Ziggurat save/load failure.
We used to call run_map_preludes after loading the game, in case maps wanted to
change their depths, etc. based on character type. With the new Lua function
marshalling, however, we rely on .des file global preludes being loaded before
loading the save file (since any Lua functions referenced in a save file must
be locatable by name when loading the save).

The fix is to split run_map_preludes in two: run_map_global_preludes which runs
.des file global preludes and is called before loading saves, and
run_map_local_preludes which is called after game start.

--------------------------------------------------------------------------------
5cc8e1883a | Darshan Shaligram | 2011-01-10 16:28:56 +0530

Refix global_function() call for OneWayStair onclimb.

--------------------------------------------------------------------------------
7103df2b42 | Darshan Shaligram | 2011-01-10 16:26:34 +0530

Correctly wrap OneWayStair onclimb callback with global_function (Zaba).

--------------------------------------------------------------------------------
24ca22cdc0 | Darshan Shaligram | 2011-01-10 15:45:27 +0530

Acknowledge Escape at amnesia scroll prompt with an explicit "Ok, then" instead 
of leaving the prompt dangling looking like it still wants an answer.

--------------------------------------------------------------------------------
d50b30d902 | Darshan Shaligram | 2011-01-10 14:46:03 +0530

Use fullsized icon as window icon for Mac tiles.

--------------------------------------------------------------------------------
6b5b975f26 | Darshan Shaligram | 2011-01-10 13:51:02 +0530

Use dcss.svg for fullsized Mac Crawl icon.

--------------------------------------------------------------------------------
e484ba7504 | Adam Borowski | 2011-01-10 02:49:43 +0100

Make Enchanters less charming.

--------------------------------------------------------------------------------
161f33782e | Adam Borowski | 2011-01-10 02:46:35 +0100

Fix a crash when playing after arena.

--------------------------------------------------------------------------------
f4e0c80bd6 | Adam Borowski | 2011-01-10 01:27:31 +0100

Call abort() just in case Windows let us write to a null pointer...
(really, this fixes a warning).

--------------------------------------------------------------------------------
be9fba37e6 | Adam Borowski | 2011-01-10 01:25:54 +0100

Render a 256x256 icon for Vista/7.

--------------------------------------------------------------------------------
8583b24bf7 | Adam Borowski | 2011-01-10 00:58:45 +0100

Make the soup yellow, add turbulence to flames and glop.

--------------------------------------------------------------------------------
2c93d1b923 | Adam Borowski | 2011-01-10 00:39:47 +0100

Add the svg operating system icon by Raumkraut.

--------------------------------------------------------------------------------
f01cda1648 | Adam Borowski | 2011-01-10 00:19:12 +0100

Add a tile for pearl dragons.  Improvements welcome!

--------------------------------------------------------------------------------
091774d45a | Raphael Langella | 2011-01-09 23:56:53 +0100

Tileframework: remove m_tabs_it member.
Replaced by local variables. Also add a tab_iterator typedef, and some
simplification.

--------------------------------------------------------------------------------
d03ee3d66c | Raphael Langella | 2011-01-09 23:56:53 +0100

Scale the tab margin with resolution.

--------------------------------------------------------------------------------
1221300507 | Adam Borowski | 2011-01-09 23:35:45 +0100

Fix Tukima's wizlab for the book's removal.

--------------------------------------------------------------------------------
7cf004f933 | Adam Borowski | 2011-01-09 23:34:07 +0100

Axe an unused function.

--------------------------------------------------------------------------------
e4deb4560e | Adam Borowski | 2011-01-09 23:08:08 +0100

Merge branch 'sf/lua-free-saves'

--------------------------------------------------------------------------------
6c5d6897cc | Adam Borowski | 2011-01-09 23:07:39 +0100

Fix tiles breakage.

--------------------------------------------------------------------------------
9d34293122 | Adam Borowski | 2011-01-09 23:07:39 +0100

Use the level's description ("D:15", "Zot:5", "Pan") as the level's chunk name.
For bones, '-' is used instead of ':' to handle Windows.

--------------------------------------------------------------------------------
f7b9c926ff | Adam Borowski | 2011-01-09 23:07:39 +0100

Sort monster enums.

--------------------------------------------------------------------------------
32a622350d | MarvintheParanoidAndroid | 2011-01-09 23:07:38 +0100

Shorten Elf to 5 floors, adjust vault depths

--------------------------------------------------------------------------------
52b7544e8e | Adam Borowski | 2011-01-09 23:07:38 +0100

Bump the major version, purge shims, fix breakage.

--------------------------------------------------------------------------------
4239314eb1 | Darshan Shaligram | 2011-01-10 00:34:41 +0530

[3180] Fix inverted logic in in_damaging_cloud (mea culpa).

--------------------------------------------------------------------------------
d2f1e3c62c | Darshan Shaligram | 2011-01-10 00:24:18 +0530

Make ^G==Escape at the targeting prompt.

--------------------------------------------------------------------------------
8b7192f5a9 | David Lawrence Ramsey | 2011-01-09 12:36:40 -0600

Typo fix.

--------------------------------------------------------------------------------
c7bc400b4b | Darshan Shaligram | 2011-01-09 23:56:34 +0530

Move god fullnames to dat/descript/gods.txt, reinstate Xom titles removed in 
5480f286fa2e.

--------------------------------------------------------------------------------
7ae82785fd | David Lawrence Ramsey | 2011-01-09 12:14:40 -0600

Add descriptions for deep dwarf berserkers and deep dwarf necromancers.

--------------------------------------------------------------------------------
e450ec9457 | David Lawrence Ramsey | 2011-01-09 11:39:00 -0600

Add descriptions for deep dwarf artificers and deep dwarf scions.

--------------------------------------------------------------------------------
8dc4b5562a | David Lawrence Ramsey | 2011-01-09 11:30:38 -0600

Make deep dwarves explicitly get non-racial robes.
Marking their robes as dwarven has no effect, since dwarves don't make
robes or any other kind of non-heavy armor, so this preserves the status
quo.

--------------------------------------------------------------------------------
4f6caadf2c | MarvintheParanoidAndroid | 2011-01-09 21:49:16 +0530

Adjust random demonic rune chances
Every random Pan vault now has a 1/9 chance of having a demonic rune in it.
This prevents players from needing to look up spoilers to see which vaults can 
get a rune.
It also means players have to peek in to every vault, at the very least, 
instead of leaving floors with unwanted vaults immediately.

Also added a guaranteed demonic rune to hellion island, because surely it 
deserves one!

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
74a10821f7 | Vsevolod Kozlov | 2011-01-09 19:13:31 +0300

Correct the 1 in 100 chance for non-granite statue for 'F' glyph in vaults.

--------------------------------------------------------------------------------
226254622a | Darshan Shaligram | 2011-01-09 20:13:48 +0530

Remove need to explicitly register marker classes.

--------------------------------------------------------------------------------
588c147a31 | Darshan Shaligram | 2011-01-09 20:08:24 +0530

Fix RestrictDoor and LockDoor not being registered as markers.

--------------------------------------------------------------------------------
c5eef457bf | Darshan Shaligram | 2011-01-09 19:57:07 +0530

Fix TimedMarker crashes.

--------------------------------------------------------------------------------
28dd35ec67 | Darshan Shaligram | 2011-01-09 19:47:18 +0530

Fix ziggurat onclimb using raw Lua functions.

--------------------------------------------------------------------------------
f9028ffb27 | Darshan Shaligram | 2011-01-09 19:26:22 +0530

Update TriggerableFunction docs to indicate that functions must be passed by 
name.

--------------------------------------------------------------------------------
ca4d01dab5 | Darshan Shaligram | 2011-01-09 19:26:21 +0530

Use FunctionWrapper objects instead of raw functions for all markers.
All markers that use function parameters now take FunctionWrappers instead of
raw functions. FunctionWrappers are saved by name instead of saving the
function's Lua bytecode, thus fixing the save incompatibility issue due to Lua
bytecode being incompatible across platforms.

--------------------------------------------------------------------------------
62cc1eb268 | Darshan Shaligram | 2011-01-09 19:25:16 +0530

Don't save map chunks when saving vault placement.
The map Lua chunks (for maps already placed on the level) are not used for
anything, and, if they're needed, they can be retrieved from the .des cache
instead of polluting saves with platform-dependent Lua bytecode.

--------------------------------------------------------------------------------
3d9826c1b9 | Darshan Shaligram | 2011-01-09 19:24:02 +0530

Add Lua FunctionWrapper class to wrap functions.
The FunctionWrapper class acts as a proxy to a global function specified by
name. When saving, the FunctionWrapper saves as the global function, instead of
saving the function's Lua bytecode.

--------------------------------------------------------------------------------
2e9663a4a7 | Raphael Langella | 2011-01-09 14:43:06 +0100

Tiles: automatically zoom the minimap to fill available space.
On high res, the minimap is zoomed up to 5. This may be a bit excessive
but if anyone doesn't like it, he can still set the tile_map_pixels
option, which disable the auto resize.

--------------------------------------------------------------------------------
bc44f61e1b | Raphael Langella | 2011-01-09 13:54:20 +0100

Don't detach the command tab by default.
The command tab cause slowdown for some people. This will be reverted when
the command tab is fixed.

--------------------------------------------------------------------------------
b482a162a0 | Darshan Shaligram | 2011-01-09 17:06:34 +0530

Fix broken html tag in noise grid dump.

--------------------------------------------------------------------------------
09a3649e96 | David Lawrence Ramsey | 2011-01-08 23:18:34 -0600

Add descriptions for vanilla deep dwarves and deep dwarf death knights.

--------------------------------------------------------------------------------
e7a6df0237 | David Lawrence Ramsey | 2011-01-08 22:25:56 -0600

Fix deep elf conjurer description.

--------------------------------------------------------------------------------
065bf34660 | David Lawrence Ramsey | 2011-01-08 22:14:14 -0600

Tweak more wording.

--------------------------------------------------------------------------------
6ff8a4a512 | Jude Brown | 2011-01-09 14:10:01 +1000

Actually fix tiles compilation.

--------------------------------------------------------------------------------
90676d8a21 | Adam Borowski | 2011-01-09 05:08:25 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
0350982f5f | Adam Borowski | 2011-01-09 05:08:25 +0100

Typo fix.

--------------------------------------------------------------------------------
6782f4e2b5 | Adam Borowski | 2011-01-09 05:08:25 +0100

Fix armour brand checks.
Not that randarts ever generate brands where not forced, currently...

--------------------------------------------------------------------------------
f283390aa6 | Adam Borowski | 2011-01-09 05:08:25 +0100

Automatically update TAG_MINOR_VERSION.

--------------------------------------------------------------------------------
87fd3036fd | David Lawrence Ramsey | 2011-01-08 22:06:30 -0600

Tweak wording.

--------------------------------------------------------------------------------
adb58a5052 | David Lawrence Ramsey | 2011-01-08 22:06:30 -0600

Typo fixes.

--------------------------------------------------------------------------------
59faee2773 | Jude Brown | 2011-01-09 13:59:41 +1000

Let randart PDA have rF+, etc.

--------------------------------------------------------------------------------
5d69e24455 | Jude Brown | 2011-01-09 13:38:58 +1000

Fix tiles compilation.

--------------------------------------------------------------------------------
f80e627b19 | Jude Brown | 2011-01-09 13:25:52 +1000

Pearl dragons now leave pearl dragon armour.
The tiles are merely temporary recolourings of the gold dragon armour
tile: they are scale-like, but are now sort of pale yellow/white gold
colour as opposed to the yellow of gold dragon armour.

They will never generate cursed.

Current stats are: AC 10, EV -2, rN+.

Yes, it's pretty powerful: it's also as rare as gold dragon armour, and
pearl dragons are currently even rarer than gold dragons (ie, they do
not actually generate). However, rarity does not balance automatically,
and these values may be subject to change at a later date.

Hopefully save compat is maintained!

--------------------------------------------------------------------------------
cdda962002 | Adam Borowski | 2011-01-09 04:11:22 +0100

Add coolio's deep dwarf tiles (vanilla, scion, artificer, DK, unborn).

--------------------------------------------------------------------------------
3bf9a6d9bc | Adam Borowski | 2011-01-09 03:13:36 +0100

Fix tiles compilation.
Note: this is compilation only, skill tiles for Charms and Hexes are missing.

Also, why do we have a separate copy of every single skill tile in both "on"
and "off" positions, when it's just a mechanical change of brightness, and
our tile tools support such alterations?

--------------------------------------------------------------------------------
bdee8216e0 | Adam Borowski | 2011-01-09 01:21:34 +0100

Mark rings of hunger as bad for ghouls.

--------------------------------------------------------------------------------
fba2228f7a | Adam Borowski | 2011-01-09 00:40:03 +0100

Fix a documentation error.
SUBST (and all similar stuff) take the sum of all the weights, and give every
choice a weight/sum chance.  This means, a:100 b:1 gives a 100/101 and b 1/101.

--------------------------------------------------------------------------------
15ec3a2e0f | Adam Borowski | 2011-01-09 00:31:56 +0100

Update school descriptions.

--------------------------------------------------------------------------------
c380519499 | Adam Borowski | 2011-01-09 00:12:28 +0100

Merge branch 'ench-split'.
Down with Enchantments, long live Charms and Hexes!

--------------------------------------------------------------------------------
3bc6414c4b | Adam Borowski | 2011-01-09 00:01:52 +0100

Bring water elementals down to the ground/water, so they can swim.
There's no reason, thematic or balance, to have them levitate.

--------------------------------------------------------------------------------
ab6660eec7 | MarvintheParanoidAndroid | 2011-01-09 00:01:52 +0100

Improve tgw_lugonu_bribe
Minor tweaks to the gifts for Ely, TSO, Oka, Vehumet.
Fedhas gets randart spellbooks with forbidden spells (instead of useful 
spellbooks or branded weapons).
Jiyva gets stones or large rocks.
Kiku gets a necromancy spellbook or weak corpse.
Nemelex gets some worthless scrolls.
Zin gets weapons with forbidden brands (instead of useful potions).

--------------------------------------------------------------------------------
f1a0d42a0d | Raphael Langella | 2011-01-08 23:15:21 +0100

Tiles: fix the startuo menu layout.

--------------------------------------------------------------------------------
492397ea0f | Raphael Langella | 2011-01-08 22:43:37 +0100

Simplify

--------------------------------------------------------------------------------
93036ae4a9 | Johanna Ploog | 2011-01-08 20:12:56 +0100

Disallow setting exclusions while targeting. xe still works.

--------------------------------------------------------------------------------
c2f102f037 | Raphael Langella | 2011-01-08 10:37:26 +0100

Fix a crash with small res.
I tried preventing users to detach a tab twice, but this is obviously
not the right way to do it.

--------------------------------------------------------------------------------
0195266c3c | Darshan Shaligram | 2011-01-08 14:19:26 +0530

Remove unused item_corpse prototype.

--------------------------------------------------------------------------------
315efd1a66 | Jude Brown | 2011-01-08 12:27:03 +1000

Don't randomly generate fizzing potions, nor mimic them.
They're a spell-only potion so they shouldn't be mimicked, and they
shouldn't be randomly generated either.

--------------------------------------------------------------------------------
679a460492 | Adam Borowski | 2011-01-08 03:07:19 +0100

Fix the struct/class clang warnings for tiles, too.
I'm unable to test optimized builds as clang (trunk) crashes during compilation.

--------------------------------------------------------------------------------
ea07111754 | Adam Borowski | 2011-01-08 02:55:24 +0100

Fix an extremely spammy clang warning.
Note: we don't build at all with clang 2.7, but do with clang's trunk.

Since the error it throws is totally bogus (even C++0x says enums are ints
unless explicitely declared otherwise), I don't think we should bother
-- but since *BSD are moving to that buggy crap, it's something worth noting.

--------------------------------------------------------------------------------
0ece95b4b3 | Jude Brown | 2011-01-08 11:40:20 +1000

Add the necessary enums, etc, for Homunculus spell.
Tiles required (will go on Wiki):

* Homunculus monster (Google images represents these as small creatures
  with large hands and large heads. I'd prefer we didn't go with this
  but instead have a "miniature" creature, like a very small goblin.
  Homunculi will be on the 'g' glyph and lightcyan.)
* Soupling monster (A "lump" homunculus in white or lightgrey)
* Homunculus spell tile (A smaller version of the homunculus sitting
  inside a flask; could be similar to the evaporation spell tile, but
  without the "broken" pieces of glass nearby).
* "Fizzing potion" item overlay. (A small series of bubbles could work;
  The idea in my head is for an ellipse (shortcut for a "perspective"
  circle) with "fizzing" bubbles above it, or possible lines to denote
  the bubbles if bubbles are too small to work with. I'm reminded of a
  spell from Chrono Trigger, but can't remember the tech name nor find
  an image of it for demonstration).

Just storing this now so when I start work on it, I don't need to wait
for all the enums to compile. Yay enums!

--------------------------------------------------------------------------------
e42825abd4 | Adam Borowski | 2011-01-08 02:11:30 +0100

Bump the minor version so there's no confusion about lack of forward compat.

--------------------------------------------------------------------------------
7c815151b0 | Adam Borowski | 2011-01-08 02:11:30 +0100

Adjust the max chunk name in --edit-save as well.

--------------------------------------------------------------------------------
9ae74c385b | Adam Borowski | 2011-01-08 02:11:30 +0100

Change the max name length of save file chunks from 4 to 255.
The on-disk format has been changed; the saves will be upgraded just fine
but old Crawls will be unable to read them.

--------------------------------------------------------------------------------
96eeefb472 | Jude Brown | 2011-01-08 10:45:13 +1000

Fix compilation.

--------------------------------------------------------------------------------
fcdc7214fd | Jude Brown | 2011-01-08 10:33:34 +1000

Rename holy dragon to pearl dragon (OG17).
"Pearl" has some interesting religious connotations and it sounds
infinitely better than "holy dragon". The latter is much like <a randomly
generate adjective> + "dragon", whereas the former sounds different and
has thought put into it.

Thanks, OG17!

--------------------------------------------------------------------------------
992a0ca00d | Raphael Langella | 2011-01-08 00:48:05 +0100

Add a tile_layout_priority option.
Fully customizable detached tabs. It is even possible to detach the skill
and memorisation tabs. I haven't put it in the documentation as it is quite
useless and the text is already quite long.

I also put a TAG_MAJOR_VERSION condition in the skill enum so NUM_SKILL
actually does give the number of skills in the next major bumb.

--------------------------------------------------------------------------------
7499eb2419 | Darshan Shaligram | 2011-01-08 03:06:13 +0530

Update Mac trunk build+upload-to-CDO script to use the makefile build instead 
of the broken Xcode build.

--------------------------------------------------------------------------------
2e00b12847 | Darshan Shaligram | 2011-01-07 23:20:30 +0530

Inform the user if travel/explore cuts off because the PC is in an excluded 
area (bhaak).

--------------------------------------------------------------------------------
d58480827c | Darshan Shaligram | 2011-01-07 20:11:37 +0530

[3168] Remove stair mimic save shim (st).
The shim was erroneously wiping stair memory from the overview, and the
original problem does not seem to be severe enough to merit a shim.

--------------------------------------------------------------------------------
abf4f0c5ed | Adam Borowski | 2011-01-07 14:47:49 +0100

Fix a double miscast crash.

--------------------------------------------------------------------------------
269fbcadba | Adam Borowski | 2011-01-07 14:23:58 +0100

Fix an irrelevant memory leak on write errors.
They are currently fatal and I doubt we'll ever bother to handle them
(out of disk being the most likely thing we could possibly do).

--------------------------------------------------------------------------------
d78b096eb7 | Adam Borowski | 2011-01-07 14:13:48 +0100

Fix a memory leak and potential crash on browsing corrupted saves.

--------------------------------------------------------------------------------
95d7f0cd5a | Adam Borowski | 2011-01-07 14:00:56 +0100

Allow handling old save package formats.

--------------------------------------------------------------------------------
25929773cf | Adam Borowski | 2011-01-07 13:23:47 +0100

Give monsters AI boosts when you're under Ashenzari penance.
* they can track much better
* they never forget about you
* they're likely to know your position when you're invisible

--------------------------------------------------------------------------------
4592c2569f | Adam Borowski | 2011-01-07 12:50:46 +0100

Fix missing mid on Kirke's hog reversion.

--------------------------------------------------------------------------------
2029ffc6c4 | Adam Borowski | 2011-01-07 11:45:23 +0100

Book of Tukima is an ex-book.

--------------------------------------------------------------------------------
8c03b425ed | Adam Borowski | 2011-01-07 11:06:48 +0100

Handle Ash's reskilling in the ench split save compat code.

--------------------------------------------------------------------------------
d95836431e | Adam Borowski | 2011-01-07 10:54:36 +0100

s/Book of Charms/book of Maledictions/ as it's 100% Hex.
The name "Curses" would be shorter and sweeter, but would cause confusion
with cursed items and mummies.

--------------------------------------------------------------------------------
310eb4a0d6 | Adam Borowski | 2011-01-07 10:27:00 +0100

s/noreturn/NORETURN/ to unbreak Windows builds.
It did resolve in __declspec(noreturn) which is used by the system headers
as well...

--------------------------------------------------------------------------------
3fe7f3a568 | Vsevolod Kozlov | 2011-01-07 12:17:57 +0300

In the third pass of dgn_find_nearby_stair, allow placing the player in vaults.
This makes returning to the vestibule of hell from abyss place the player at a
randomly, instead of failing on an assert.

--------------------------------------------------------------------------------
ff0082f059 | Darshan Shaligram | 2011-01-07 14:06:12 +0530

Don't loop for cascading noises in apply_noises.
This trades off a delay in monsters noticing new noises for speed.

--------------------------------------------------------------------------------
1d9499f645 | Darshan Shaligram | 2011-01-07 13:29:35 +0530

Fix bad type to noise_intensity_millis causing overflow.

--------------------------------------------------------------------------------
1065103f2e | Darshan Shaligram | 2011-01-07 06:17:52 +0530

Fix very loud sounds not being coloured on the debug noise grid.

--------------------------------------------------------------------------------
b3e2b480aa | Darshan Shaligram | 2011-01-07 06:08:06 +0530

Use Euclidean distance noise spread for the pretty grids (sorry, TGWi).

--------------------------------------------------------------------------------
b65933317b | Adam Borowski | 2011-01-07 01:19:54 +0100

Follow the advice of gcc-4.6 -Wsuggest-attribute=noreturn

--------------------------------------------------------------------------------
9c74024aaf | Adam Borowski | 2011-01-07 01:19:06 +0100

Fix tiles compile.

--------------------------------------------------------------------------------
5826ef0949 | Adam Borowski | 2011-01-07 01:03:34 +0100

Mark AssertFailed() as noreturn.

--------------------------------------------------------------------------------
e26350c05b | Adam Borowski | 2011-01-07 01:03:34 +0100

Fix clashes between typedefs and variables.

--------------------------------------------------------------------------------
7c5846f437 | Adam Borowski | 2011-01-07 01:03:34 +0100

Remove some unused logic (thanks gcc-4.6).

--------------------------------------------------------------------------------
482b2c2f27 | Adam Borowski | 2011-01-07 01:03:34 +0100

Some brace cleanup.

--------------------------------------------------------------------------------
ae6dc4e354 | Darshan Shaligram | 2011-01-07 04:11:31 +0530

Protect spammy noise dprfs with DEBUG_NOISE_PROPAGATION.

--------------------------------------------------------------------------------
b79762af95 | Adam Borowski | 2011-01-06 23:03:35 +0100

Fix refrig+Scrying working through walls.

--------------------------------------------------------------------------------
95cc9338a7 | Darshan Shaligram | 2011-01-07 03:23:50 +0530

New noise propagation system.
The old noise propagation system alerted all monsters within `loudness' radius
of the noise source, ignoring obstacles between the observer and the noise
source.

The new noise system applies only to monsters; the player is still messaged as
before. This is for two reasons:

1.  noisy() must return if the player heard the noise, which forces us to
    propagate the noise immediately for each noise, an unacceptable overhead on
    busy maps (such as Sprint). Therefore we cheat and use the old noise rules 
for
    the player. This is relatively simple to work around, since not many code 
paths
    rely on the noisy() return code, and these places can be changed to work 
around
    this lack of information.

2.  The new noise system allows loud noises to drown out quiet noises. This may
    be an unacceptable loss of information for the player.

The new system keeps track of noises produced by noisy(), but does not
act on them immediately. Instead, all noises are processed in world_reacts.

Noises are processed by a simple flood-out from their sources, attenuated by
distance, terrain (such as closed doors, trees), and by twists in the noise's
path (a winding corridor attenuates noise more than a straight line). Noise
propagation and attenuation uses movement geometry, not LOS geometry, *but*
attenuation assumes it is harder for the noise to change direction than to keep
going in its old direction.

To simplify handling of noises, it is assumed that louder noises overwhelm
quieter noises. An actor exposed to both a loud and a quiet noise at the same
distance will hear only the loud noise. However, an actor closer to the quiet
noise than the loud noise will hear first the quiet noise, then the loud noise
(because the floodfill visits points at an increasing radius from each noise
source). Given two equally loud noises, the closer noise will always win.
Multiple quiet noises emitted close together do not combined into a louder
noise.

Monsters hearing a noise at a distance from its source may not correctly guess
the noise's origin if the noise did not travel in a straight line to the
monster.

Noises are currently processed before and after handle_monsters() so that
monsters can react to noises produced by the player and by each other. We could
conceivably drop one of the apply_noises() calls (probably the one after
handle_monsters()) without adverse effects.

Since the new noise system allows closed doors to cut off sound, I've dropped
the Sprint noise attenuation from 1/3 to 1/2.

If Crawl is compiled with DEBUG_NOISE_PROPAGATION, it will write a
noise-grid.html dump file showing noise sources and intensities on the map for
each call to apply_noises that processed a noise.

--------------------------------------------------------------------------------
6129dcaa68 | Adam Borowski | 2011-01-06 22:38:59 +0100

Check monster mids when saving, so the crash doesn't ruin the game.
It's easier to debug this when we crash sooner, too.

--------------------------------------------------------------------------------
fa47127606 | Johanna Ploog | 2011-01-06 22:06:12 +0100

On the next major change, get rid of the old Tile "legacy version".
No idea what "legacy" is actually meant here, but the saves are
sure to be no longer compatible to whatever version it might have
been.

--------------------------------------------------------------------------------
13e00bd092 | Johanna Ploog | 2011-01-06 22:03:05 +0100

Only "seeking" monsters will step next to slime walls.
In practise, this means that if you tell your allies to "wait here",
they will step away from any adjacent slime wall and mill about
in the safe open area.

But as soon as a slime enters the field, all caution is thrown to
the wind. Still, a massive improvement, suggested on IRC.

--------------------------------------------------------------------------------
8652853407 | Johanna Ploog | 2011-01-06 21:17:12 +0100

Reserve MSLOT_ALT_MISSILE for the major version change.
Should come in useful when improving the missile pickup AI.

--------------------------------------------------------------------------------
2edd8d46d6 | Johanna Ploog | 2011-01-06 20:46:23 +0100

Make monsters consider resistances along with AC for armour pickup.
Each resistance counts as one additional enchantment,

Moves armour resistance checks into itemprop.cc. I was considering
making the player resistance also use these functions, but those
rely on player_equip() and player_equip_ego_type() which work
differently. But I still don't like how armour resistance values
are defined in several different places.

Also fixes monsters getting not the same bonuses for wearing dragon
hides that players do.

--------------------------------------------------------------------------------
0680321ad0 | Johanna Ploog | 2011-01-06 20:46:21 +0100

Only allow allies to pick up weapons, armour, and missiles.
Equipping them with potions and such invites micromanagement, and
if they do pick up anything like that, they're likely to use it
differently from how the player wants it because the AI is not
very advanced on that.

I could also have added another friendly_pickup setting, but I
felt lazy. :P

--------------------------------------------------------------------------------
58076b0085 | Vsevolod Kozlov | 2011-01-06 18:29:57 +0300

Use rectangle_iterator in dgn_register_place.

--------------------------------------------------------------------------------
e217dce204 | Vsevolod Kozlov | 2011-01-06 18:29:56 +0300

Split the windows serial vaults from mini_features.des into serial_window.des.

--------------------------------------------------------------------------------
b2f01ef8a9 | Darshan Shaligram | 2011-01-06 20:58:49 +0530

Fix mermaid/siren mesmerise not attracting Shoals merfolk as intended.

--------------------------------------------------------------------------------
61f5d664db | Johanna Ploog | 2011-01-06 16:18:47 +0100

Don't check i_feel_safe and abilities for drawing the command tab.
Doing so slows down the game.

--------------------------------------------------------------------------------
1ae0ddc1ff | Johanna Ploog | 2011-01-06 12:29:44 +0100

Don't display swamp trees as "floating above the water".
Swamp tree tiles are now drawn semi-transparently.

--------------------------------------------------------------------------------
ec53c83693 | Darshan Shaligram | 2011-01-06 14:30:09 +0530

Make .des corpse generation use the actual monster
.des corpse generation now creates the named monster and converts it to a
corpse using the standard corpse-placement routine. Reusing the standard
corpse routines will make this code less likely to break in future. It also
has the advantage of giving the corpse-maker a real monster to inspect for
things like monster properties.

Also add some tests for custom monster names.

--------------------------------------------------------------------------------
ff17aecca7 | Johanna Ploog | 2011-01-06 01:40:37 +0100

At >= 1/2 hp, monsters will willingly step next to slime walls.
The hp check could take into account the number of adjacent walls,
so the less dangerous squares would get chosen more often, but for
now it works.

Beoghites, the Slime Pits are all yours again!

--------------------------------------------------------------------------------
294a726c2a | Johanna Ploog | 2011-01-06 01:40:34 +0100

Add new wizmode targeting command to heal monsters (Ctrl-H)

--------------------------------------------------------------------------------
8c5b824260 | Johanna Ploog | 2011-01-06 01:40:30 +0100

Non-stupid monsters try to avoid slime walls.
Monsters of intelligence > I_INSECT will refuse to step into a square
that increases the number of adjacent slime walls compared to the
current one.

Unfortunately, this means that your allies (there's hardly ever going
to be another non-slime down there) can get stuck easily. Not sure
how to improve that either - we can hardly check the neighbours'
neighbours' neighbours.

Well, at least they won't burn blithely.

--------------------------------------------------------------------------------
82086e0762 | Raphael Langella | 2011-01-06 01:22:00 +0100

TilesFramework: Rename the update_inventory method to update tabs.

--------------------------------------------------------------------------------
c1977c0cb5 | Raphael Langella | 2011-01-06 01:22:00 +0100

Use the same 32x32 icon for Windows.
I don't know why it was special cased to use a crappy icon, the larger one
works perfectly fine (tested under XP). If this is for compatibility with
win9x we can put it back with a check for the windows version. I mean if
anyone is still using that...

--------------------------------------------------------------------------------
49d703b085 | Adam Borowski | 2011-01-06 00:00:21 +0100

Curio's mangrove tile.

--------------------------------------------------------------------------------
f1e85706f7 | Johanna Ploog | 2011-01-05 22:22:35 +0100

Make space for the game mode menu in Tiles. (Very hacky, though.)

--------------------------------------------------------------------------------
30475f5bd4 | Johanna Ploog | 2011-01-05 20:05:52 +0100

Move spell, skill, command tiles into the gui directory.

--------------------------------------------------------------------------------
ec126fe992 | Vsevolod Kozlov | 2011-01-05 21:31:57 +0300

Update the prebuilt levcomp lexer.

--------------------------------------------------------------------------------
7f09a20d97 | Vsevolod Kozlov | 2011-01-05 21:31:57 +0300

Remove support for FLAGS: in vault definitions (TAGS is used instead).

--------------------------------------------------------------------------------
e3e646d47c | Johanna Ploog | 2011-01-05 19:26:45 +0100

Add Denzi's startup tiles.
Unfortunately, you now have to scroll to reach the instructions.
I wouldn't mind giving up two of my ample save lines but I don't
know how to achieve this in a sane way.

How do you convert tiles height to windows lines, anyway?

--------------------------------------------------------------------------------
9552bd0ea6 | Johanna Ploog | 2011-01-05 18:59:42 +0100

Add the ground structure for tiles in the startup menu.

--------------------------------------------------------------------------------
391a496fcd | David Lawrence Ramsey | 2011-01-05 10:34:06 -0600

Rename Zot Defense to Zot Defence.

--------------------------------------------------------------------------------
bff8967a2c | Vsevolod Kozlov | 2011-01-05 19:09:16 +0300

Replace uses of FLAGS with TAGS in vault definitions.

--------------------------------------------------------------------------------
1e2c59190f | Johanna Ploog | 2011-01-05 17:00:02 +0100

Actually clear tile_names if tile_force_regenerate_levels = true

--------------------------------------------------------------------------------
805f25a52f | Adam Borowski | 2011-01-05 16:41:55 +0100

Tukima's Vorpal Blade is pining for the fjords.

--------------------------------------------------------------------------------
9c680bf867 | Adam Borowski | 2011-01-05 16:41:55 +0100

Make the book of Charms pure Hex.

--------------------------------------------------------------------------------
e4101cbae5 | Adam Borowski | 2011-01-05 16:13:46 +0100

Move all branding spells to Chrm, Confusing Touch to Hex.
This lets Crusaders make perfect sense, while breaking AMs.  But hey, the
latter have been a pointless background anyway.

--------------------------------------------------------------------------------
b030f93d42 | David Lawrence Ramsey | 2011-01-05 09:03:41 -0600

Disallow polymorphing into tentacles.
Currently, this is impossible due to kraken tentacles' being marked with
the no-experience flag, and eldritch tentacles' being demonic and hence
immune to polymorph, but if this ever changes, it should be done just in
case.  (It's already done for projectiles, which are currently all
nonliving and hence immune to polymorph.)

--------------------------------------------------------------------------------
35e4a9aed5 | Johanna Ploog | 2011-01-05 15:24:54 +0100

Clear env.tile_names if a level gets vetoed.

--------------------------------------------------------------------------------
f404e926c5 | Johanna Ploog | 2011-01-05 15:24:52 +0100

Reorder ability enums.
Encased in MAJOR_VERSION checks. This only breaks the slot mapping
but still...

--------------------------------------------------------------------------------
5f62a12f86 | Johanna Ploog | 2011-01-05 15:24:51 +0100

Add coolio's withdrawn turtle/agate snail tiles.
Because of their smaller size, they can be a bit hard to make out in
water. Also, except for the woundedness bar, the snapping turtle shells
are hard to make out against brownish backgrounds, but I don't know
whether they even can turn up in Swamp etc.

--------------------------------------------------------------------------------
1824afcec9 | Vsevolod Kozlov | 2011-01-05 16:00:42 +0300

Remove DNGN_FLOOR_SPECIAL, as it is no longer used anywhere.

--------------------------------------------------------------------------------
8b9be2673b | Vsevolod Kozlov | 2011-01-05 16:00:42 +0300

Remove 'entry' tag from sprint2.

--------------------------------------------------------------------------------
77f4024289 | Vsevolod Kozlov | 2011-01-05 16:00:42 +0300

Make tests use FPROP_HIGHLIGHT for marking cells, instead of DNGN_FLOOR_SPECIAL.

--------------------------------------------------------------------------------
198750ec7c | Vsevolod Kozlov | 2011-01-05 16:00:42 +0300

Make FPROP_HIGHLIGHT cells appear as '?'s on debug map dumps.
This removes special handling of DNGN_FLOOR_SPECIAL grids, but I'm going to get
rid of them anyway.

--------------------------------------------------------------------------------
420356ef35 | Vsevolod Kozlov | 2011-01-05 16:00:42 +0300

Let str_to_fprop handle FPROP_HIGHLIGHT.

--------------------------------------------------------------------------------
8d117f150f | Vsevolod Kozlov | 2011-01-05 16:00:41 +0300

Remove DNGN_BUILDER_SPECIAL_{WALL,FLOOR} from enum.h and terrain.cc.
They've been unused for a while now.

--------------------------------------------------------------------------------
4d1bc3250b | Adam Borowski | 2011-01-05 13:42:24 +0100

Hexes: strongly nerf Sp, bump Vp even more, nerf DD, HE.
Sp going from +4 to +2 is a controversial change since their theme includes
"casting mischevious spells", but on ##crawl-dev it was proposed to make them
a great Charms bad (ok, +2 is not that bad...) Hex.  This niche might make
them more interesting, and the last tourney was swamped with SpEn playing the
Hex playstyle, so they sure could use a nerf.

Vp is just as drastic.  Before, they had mere +1 Ench, now with +4 (!) Hex
they could really kick butt... but then, remember that the ench split
effectively degrades all aptitudes by 4, so this might be plausible.  And,
just think about all the paralysis/enslavement in vampire stories...

DDs are supposed to use protection, not enchantments.

HE would use "noble" tactics, leave it to SE to fight underhanded.

--------------------------------------------------------------------------------
d7411b8ef1 | Adam Borowski | 2011-01-05 13:25:19 +0100

Make Invisibility dual school.
Technically it belongs to Charms spot-on: it's a protective/enhancing aura.
However, it is usable mostly in a Hexes playstyle.  Perhaps we could argue
it as an illusion spell which could be shoehorned into Hexes, but for now,
it's the biggest move I can think of while keeping the boundary between the
two schools consistent.

--------------------------------------------------------------------------------
d99dd269f7 | Jude Brown | 2011-01-05 22:18:18 +1000

Desaturate red of Swamp floor tiles.
This makes it slightly prettier! I hope.

--------------------------------------------------------------------------------
90ec54410b | Adam Borowski | 2011-01-05 13:10:51 +0100

Merge branch 'master' into ench-split

--------------------------------------------------------------------------------
f46559a719 | Johanna Ploog | 2011-01-05 13:04:36 +0100

Only define tile_offset_for_labrat_colour in Tiles builds.

--------------------------------------------------------------------------------
fd18e77ace | Adam Borowski | 2011-01-05 12:46:49 +0100

Make Swamp vaults (and Swamp entries) have trees well-watered.

--------------------------------------------------------------------------------
43e77b7903 | Adam Borowski | 2011-01-05 12:46:19 +0100

Add the missing internal feature name for swamp_tree.

--------------------------------------------------------------------------------
f1242ccb90 | Adam Borowski | 2011-01-05 12:39:49 +0100

Convert dry trees to wet ones in Swamp.

--------------------------------------------------------------------------------
367b202b13 | Adam Borowski | 2011-01-05 12:39:15 +0100

Split trees into trees-on-land and trees-on-water.
This gets rid of the hacks where the same tree would turn to either floor or
shallow water depending on the branch it is in.  Also, only a few methods of
destroying trees obeyed the water rule.

--------------------------------------------------------------------------------
943bb48f6f | Vsevolod Kozlov | 2011-01-05 14:13:57 +0300

Try harder to pick correct staircase in wizard interlevel travel.
Now it always places the player on the up staircase when travelling to the
bottom of a branch, and always places the player on the branch exit stair when
travelling to the first level of a branch from a different branch.

Hopefully this helps.

--------------------------------------------------------------------------------
c3d461f506 | Jude Brown | 2011-01-05 21:06:51 +1000

Fix #3146: branch stair mimics breaking overview, ^G travel.
Due to unknown feature mimics, specifically branch stair mimics, being
treated as the feature in question, the level they are found upon was
entered in the overview stair_levels cache. This was also used for ^G
travel.

I've written a rather large shim to check stair_levels against every
loaded level for previous versions. This will mean that people will
still have to go to the level where the mimic was in order to clear it
from the list, but at least it will be cleared.

--------------------------------------------------------------------------------
a788123b38 | Darshan Shaligram | 2011-01-05 16:12:29 +0530

Update SDL contrib to build on Mac with -arch ppc -faltivec with the 10.4u SDK.

--------------------------------------------------------------------------------
82297df3ab | Darshan Shaligram | 2011-01-05 16:12:24 +0530

Mac makefiles to create universal binary app bundles.
Since the current makefile allows all dependencies to be statically linked,
creating an app bundle is as simple as setting up the directory tree.

The baroque Xcode project shenanigans that dynamically link SDL and other libs
and then use relative framework references in the .app bundle should no longer
be necessary.

Running ./mac/mac-release-build will create universal (i386, ppc) app bundles
for tiles and console and drop the zips in mac-app-zips. I've deliberately
skipped x86-64 for now (compile-time and SDL build issues with the 10.4u SDK).

--------------------------------------------------------------------------------
679089538a | Jude Brown | 2011-01-05 20:22:27 +1000

Fix tiles compilation.
I thought I'd ammended the labrat commit with this change when I tested
the tiles build. Apparently I ammended it, then rewound the other
commits on top of it, and then somehow managed to push the unammended
commit. Meh, git!

--------------------------------------------------------------------------------
2d9497dd23 | Jude Brown | 2011-01-05 20:22:27 +1000

Jory's Tower of Silence vault.
It's not complete, but seeing as how I haven't completed it yet and Jory
has been in the game for a number of weeks, I don't see any point
holding this back.

Currently still left to implement is the re-creation idea by dpeg. More
on this later!

--------------------------------------------------------------------------------
c405a85b10 | Jude Brown | 2011-01-05 20:22:27 +1000

Use coolio's tile for Jory.

--------------------------------------------------------------------------------
276ceb58ec | Johanna Ploog | 2011-01-05 10:54:15 +0100

Clear env.tile_names before loading/creating a level.

--------------------------------------------------------------------------------
0013d85e6d | Jude Brown | 2011-01-05 19:01:48 +1000

Place laboratory rats in the laboratory vault!

--------------------------------------------------------------------------------
363d84146c | Jude Brown | 2011-01-05 18:59:58 +1000

Dump the monster enum comments.
As with the previous commit, can be reverted if it is felt that the
monster number comments are necessary. They are almost always hideously
out of date, and as we refer to monster via "MONS_XXX" rather than "31",
unnecessary.

As sorear has also pointed out: if we ever need to find the numeric
value of an enum, gdb provides this functionality.

--------------------------------------------------------------------------------
8e670811de | Jude Brown | 2011-01-05 18:59:48 +1000

Wrap MONS_UNUSED_XXX in #if-preprocessor blocks.
We use this notation elsewhere in enum.h and enums in general to denote
sections or monsters that can be or have been disabled and should be
removed in the next major version.

I think marking these now means that we can clean up the comments
(remove the numbering, which is bad and mostly misleading) and then
continue to add monsters to the end of the enum.

Leaving space "so people can slot monsters in <here>" doesn't really
work because it doesn't seem to me that anyone really does this. Of
course, I could be wrong, so feel free to revert if it's felt that we
should keep this into major version 32.

--------------------------------------------------------------------------------
6e6bef6133 | Jude Brown | 2011-01-05 18:57:45 +1000

Implement laboratory rats, using coolio's tiles as base.
Laboratory rats now have a variety of flavour: armoured, levitating,
fire-breathing, vampiric, etc. They're mainly just a bit of fun and
whimsy, but they do work properly and have an interesting theme.

Hopefully someone will come up with a better vault to use them in!

This commit also finished the previous block of monsters (fire crabs,
porcupines, laboratory rats and bog mummies) that I added earlier.

--------------------------------------------------------------------------------
4a3bc7f771 | Raphael Langella | 2011-01-05 00:56:10 +0100

Allow placement of the spell tab even if not enough room for all spells.
The tab is just truncated to 1 or 2 lines and remaining spells aren't
displayed (still better than nothing).

--------------------------------------------------------------------------------
1a189b6da4 | Raphael Langella | 2011-01-05 00:53:36 +0100

Move the minimap placement into its own function.
The map is now a dynamic region like the detached tabs and the game could
run without one. Options don't allow it yet.

--------------------------------------------------------------------------------
d73320d7a3 | Raphael Langella | 2011-01-04 23:56:53 +0100

Detach the commands tab.

--------------------------------------------------------------------------------
457987d8bd | Raphael Langella | 2011-01-04 23:56:53 +0100

Store detached tabs in a map.
Also move the detach code into its own function.

--------------------------------------------------------------------------------
3f58b967b1 | Johanna Ploog | 2011-01-04 18:42:38 +0100

Actually add the deep dwarf tiles; fixes compilation.

--------------------------------------------------------------------------------
8e106a0de8 | Johanna Ploog | 2011-01-04 17:28:43 +0100

Silently ignore invalid tile_names indices instead of asserting.
Print a debugging message instead, to be changed to dprf once I've
got this worked out.

--------------------------------------------------------------------------------
a698f9ca6c | Adam Borowski | 2011-01-04 14:37:31 +0100

Add coolio's tiles for DDBe and DDNe.

--------------------------------------------------------------------------------
0d88cd3393 | Adam Borowski | 2011-01-04 12:59:56 +0100

Make monsters win ENCH_PERM_TORNADO immune to Tornado themselves.
This is already the case for the player, and implementing conflicts between
clouds could be tricky.  Fortunately theme is at our side, as having control
over winds means no one is going to blow you.

--------------------------------------------------------------------------------
3e7278136a | Adam Borowski | 2011-01-04 12:43:09 +0100

Fix an arena crash.

--------------------------------------------------------------------------------
15725c2db7 | Raphael Langella | 2011-01-04 12:37:16 +0100

White space fix.

--------------------------------------------------------------------------------
3d44236d3a | Raphael Langella | 2011-01-04 12:37:08 +0100

Fix the number of lines being incorrect in the skill menu.

--------------------------------------------------------------------------------
10410ea1f9 | Adam Borowski | 2011-01-04 12:03:23 +0100

Steal the inappropriate air elemental tile for twisters.
It's a recoloured vortex rather than an elemental (cf. all other elemental
tiles we have -- quasi-humanoids), so it should be used for what is an air
vortex.

Also, it is same as the spell tile for Tornado, and air elementals have
nothing to do with it -- unlike twisters which are "unattached" tornados
(technically, a token monster that serves merely as a graphic for the
tornado's stem).

--------------------------------------------------------------------------------
463e125729 | Adam Borowski | 2011-01-04 11:24:10 +0100

New level 3 Air miscasts.
* a single ball lightning
  Weak-sauce and boring, probably.
* airstrike
* a twister (tornado)

--------------------------------------------------------------------------------
ec791c25e1 | Adam Borowski | 2011-01-04 11:24:10 +0100

Allow checking adjusted damage without applying effects/giving messages.

--------------------------------------------------------------------------------
f7bbc6d064 | Adam Borowski | 2011-01-04 11:24:10 +0100

Put airstrike resists/vulnerability into one place.

--------------------------------------------------------------------------------
0d4e94e1ba | Adam Borowski | 2011-01-04 11:24:09 +0100

Add a common prototype for applying a beam with resists.

--------------------------------------------------------------------------------
3e21b120be | Adam Borowski | 2011-01-04 11:24:09 +0100

Adjust level 1 Air miscasts, add a big rain cloud effect.

--------------------------------------------------------------------------------
f5d80a7540 | Adam Borowski | 2011-01-04 11:24:09 +0100

Shift Air miscasts by one level.

--------------------------------------------------------------------------------
540e9a3958 | Adam Borowski | 2011-01-04 11:24:09 +0100

Give hostile Tornado an (abysmal) obituary when it kills you.
"Killed from afar by a XXX (1 damage)
 ... with a tornado"

--------------------------------------------------------------------------------
5c17f22620 | Adam Borowski | 2011-01-04 11:24:09 +0100

Assign a power to monster Tornado.

--------------------------------------------------------------------------------
03abce99c3 | Adam Borowski | 2011-01-04 11:24:09 +0100

Allow adding monster enchantments from Lua.

--------------------------------------------------------------------------------
92daeebfbb | Adam Borowski | 2011-01-04 11:24:09 +0100

A monster ench perm_tornado which does what it says on the tin.

--------------------------------------------------------------------------------
9b6605da55 | Adam Borowski | 2011-01-04 11:24:08 +0100

Make Ring of Flames level 7.
It's just a much weaker Freezing Cloud with a gimmick to resists.

The resistances allow situational rF++, but also make the spell bad
in places where it would otherwise shine the most: Ice Cave, Cocytus
and any group of cold-based monsters.

--------------------------------------------------------------------------------
60ac809f75 | Darshan Shaligram | 2011-01-04 10:28:29 +0530

Fix dungeon builder not correctly checking if chance-selected vaults have 
already been used.
If multiple vaults with a chance are selected for the current level, but two or
more of the chosen vaults are part of the same uniq_foo or luniq_foo group, the
dungeon builder would violate the [l]uniq_foo tag. This is now fixed by
checking each chance vault before placing it.

--------------------------------------------------------------------------------
0b362e7f84 | David Ploog | 2011-01-03 21:20:32 +0100

Nerf troves a bit.
Slightly higher entry fees.
Less loot: in general, 12 items rather than 16.

--------------------------------------------------------------------------------
5dedb11e8f | David Ploog | 2011-01-03 18:27:46 +0100

Only one serial vault per level.
Also reduced generation chances.

--------------------------------------------------------------------------------
5f4be2939c | Darshan Shaligram | 2011-01-03 22:46:09 +0530

Initialize all readers with the sentinel TAG_MINOR_INVALID to catch attempts to 
use getMinorVersion() uninitialised.

--------------------------------------------------------------------------------
0470220645 | Darshan Shaligram | 2011-01-03 22:24:31 +0530

Simplify tag minor version handling.
Make reader::getMinorVersion() the standard way of accessing a tagged chunk's
minor version. The old confusing situation where getMinorVersion() was
sometimes valid and sometimes not was a recipe for problems.

--------------------------------------------------------------------------------
90aec3c277 | Johanna Ploog | 2011-01-03 16:40:32 +0100

Add temporary option tile_force_regenerate_levels.
Set this to true to continue your saved Tiles games that got
corrupted when switching to one of the recent development builds.

--------------------------------------------------------------------------------
39ba49c404 | Johanna Ploog | 2011-01-03 14:56:26 +0100

Fix tile saves sometimes being read incorrectly.
Add minorVersion parameter to tag_read_level_tiles.

--------------------------------------------------------------------------------
57f2a43f0b | Vsevolod Kozlov | 2011-01-03 15:18:52 +0300

Don't keep dgn_regions for all generated rooms in _build_rooms.
It's unnecessary, as it only cares about the point to which it connects the room
it's generating.

--------------------------------------------------------------------------------
228ea80e98 | Vsevolod Kozlov | 2011-01-03 15:18:52 +0300

Remove the unused 'early_exit' parameter from _join_the_dots.

--------------------------------------------------------------------------------
6aee24ef9f | Vsevolod Kozlov | 2011-01-03 15:18:52 +0300

Correct whitespace errors in mini_features.des.

--------------------------------------------------------------------------------
f442e38608 | Raphael Langella | 2011-01-03 00:51:47 +0100

Fix a crash on game restart.
Mantis #3056 and #3129.

--------------------------------------------------------------------------------
555421642e | Raphael Langella | 2011-01-03 00:19:41 +0100

Yet another great new title screen from Denzi.

--------------------------------------------------------------------------------
9e05d9d01c | Raphael Langella | 2011-01-03 00:19:41 +0100

End transfer knowledge when destination skill is trained to level 27.
Fix #3116.

--------------------------------------------------------------------------------
a856142b71 | Raphael Langella | 2011-01-03 00:19:41 +0100

Merge skills_menu.h into skills2.h.
It's stable now.

--------------------------------------------------------------------------------
4b1e26dd2a | Raphael Langella | 2011-01-03 00:19:41 +0100

Properly create and destroy detached tabs when needed.
This fix #3081.

--------------------------------------------------------------------------------
be95543606 | Darshan Shaligram | 2011-01-02 21:34:21 +0530

Document the -dump-maps option in the level-compiler docs.

--------------------------------------------------------------------------------
21e1ab8a0e | Jude Brown | 2011-01-02 12:59:17 +1000

Further Lab generation tweaks (dpeg, elliptic, herself).
Now a ~71% chance of getting a Labyrinth every game, still skewed
towards earlier depths. Now will not ever place in Slime.

--------------------------------------------------------------------------------
f034a26fdc | Jude Brown | 2011-01-02 12:33:37 +1000

levdes.vim: Shoals identifier is "Shoals", not "Shoal".
This was changed a while back.

--------------------------------------------------------------------------------
396cb95098 | Jude Brown | 2011-01-02 12:33:37 +1000

Adjust Labyrinths generation (dpeg, elliptic, et al)
Now instead of having a flat chance of generating between (absdepth) 12
and 27 anywhere, Labyrinths will generate between (absdepth) 10 and 20
outside of Swamp, Shoals, Snake, Hive and Orc.

Finally, and like Troves and Sewers, only one Labyrinth will naturally
generate per game (outside of the Trowel card). This will also skew
Labyrinths towards appearing earlier in the game. Yay!

--------------------------------------------------------------------------------
13c180122c | David Ploog | 2011-01-02 03:10:34 +0100

Add window-themed serial vault. (co)

--------------------------------------------------------------------------------
1fea466462 | Jude Brown | 2011-01-02 12:02:53 +1000

Resolve agrid not being regenerated upon loading game.
Previously loading a save while under the silence effect (or any effect
that uses the agrid; silent spectres, liquefaction) did not have the
agrid properly initialised.

Thus, until either you move, or another monster with relevant agrid came
onto the screen, even if you had the "Sil" effect, silence (or
liquefaction, etc) was not actually in effect.

This made it possible to use silence offensively and still cast spells.
I'm not sure if it was every *used* like this, but the possibility was
there for abuse.

Finally, it was also extremely odd for a TSO worshipper or when fighting
holy monsters (where I first noticed it when testing ophan).

--------------------------------------------------------------------------------
2a9f4a60a4 | David Lawrence Ramsey | 2011-01-01 19:06:54 -0600

Add spacing fix.

--------------------------------------------------------------------------------
5ad76c6f76 | MarvintheParanoidAndroid | 2011-01-01 23:04:07 +0100

Summoning book tweaks
Move Summon Demon from Demonology to Summonings
Add Summon Elemental to Summonings

--------------------------------------------------------------------------------
fa4fa651d5 | Adam Borowski | 2011-01-01 22:01:50 +0100

Don't spam about tile data not being present in console builds.

--------------------------------------------------------------------------------
bd72dfe81c | David Lawrence Ramsey | 2011-01-01 14:05:33 -0600

Tweak wording.

--------------------------------------------------------------------------------
a12db9831c | David Lawrence Ramsey | 2011-01-01 14:05:16 -0600

Rename "deep dwarf unborn" to "unborn deep dwarf".
This resolves most of Mantis 3009.

--------------------------------------------------------------------------------
b98fa1c759 | David Lawrence Ramsey | 2011-01-01 13:39:15 -0600

Revert "Properly pluralize "deep dwarf unborn" as "deep dwarves unborn"."
This reverts commit 8ec2f656c987b688ed0a107d2a330bd3f6668c61.

--------------------------------------------------------------------------------
6098fc64cb | David Lawrence Ramsey | 2011-01-01 13:38:36 -0600

Make a prototype's variable name match the function's.

--------------------------------------------------------------------------------
0a626dba89 | Adam Borowski | 2011-01-01 17:22:57 +0100

Silence a gcc-4.5 warning for a tautological assert.
Sadly, we can't do this in the ASSERT() #define itself, as in GCC
versions up to 4.5 warning pragmas are global, setting them in any
place in the file affects the entire compilation unit no matter where
you specify it.

GCC 4.6 and new Clangs allow you to flip warnings as often as you please,
so we'll be able to do this properly then.

--------------------------------------------------------------------------------
4469633ff5 | Darshan Shaligram | 2011-01-01 21:14:35 +0530

Fix ghosts not getting mids (casmith789's ghost).

--------------------------------------------------------------------------------
65f0ce5894 | Jude Brown | 2011-01-01 20:55:21 +1000

Make Swamp prettier. (Tiles)
Adds a new member to the packed_cell called swamp_tree_water. This
boolean value triggers the following behaviour:

1. Trees in Swamp are drawn on top of TILE_DNGN_SHALLOW_WATER. The
   reasoning here is that trees, when destroyed, are replaced by shallow
   water. It does look a *lot* better, in my opinion, to have the water
   underneath them.
2. The boolean value is stored for DNGN_TREE, DNGN_SHALLOW_WATER and
   DNGN_DEEP_WATER in the Swamp. This value is then passed into the
   wave/shore packing functions and is used to suppress shore overlays.

All in all, I'm very happy with the result.

I think Swamp could have further improvements by changing the tree tile
to be a large mangrove tile instead. The current tree looks great in the
dungeon, but the large amount of them in Swamp combined with the
background (previously floor, currently shallow water) makes them look
very sparse.

--------------------------------------------------------------------------------
aad09a6bfb | Darshan Shaligram | 2011-01-01 14:34:18 +0530

[3114] Fix remembered feature mimic crash.
showsymb.cc attempted to render feature mimics by peeking at the underlying
monster. This causes problems when the monster is a feature mimic outide LOS
that has subsequently moved off that square. Peeking at the monster directly
from showsymb also breaks the separation of display from game state.

The fix is to check for known feature mimics and track the mimicked feature in
monster_info.

--------------------------------------------------------------------------------
f008b53132 | Darshan Shaligram | 2011-01-01 14:34:18 +0530

Clean up >80 column lines in showsymb.cc.

--------------------------------------------------------------------------------
38aababc9e | Jude Brown | 2011-01-01 18:41:36 +1000

Re-implement certain tile flags as packed_cell struct members. (Tiles)
Previously, viewgeom.h:struct_cell_t contained tile_fg and tile_bg
members. These were modified in tileview.cc:tile_apply_properties and
view.cc:viewwindow. Whenever a silenced, haloed, bloody or moldy area
was encountered, TILE_FLAG_x was OR'd into the tile_bg.

This functionality was perfect only until the tile_flags enum stayed
within the bounds of a 32 bit unsigned integer. We've now reached the
limit of tile_flags, so any further interaction would either have to be
done in the buffer (which would add more dependency on the game state to
the tiles code, which we're trying to avoid), or have more attributes
added into screen_cell_t and tilegdnbuf.h:packed_cell.

Hence, I went with the latter option: extend screen_cell_t to contained
boolean flags for silence, halo, etc. Instead of having to add new
members to screen_cell_t *and* packed_cell, I instead added a
packed_cell into screen_cell_t.

And it works now, hooray!

--------------------------------------------------------------------------------
86591b1470 | Darshan Shaligram | 2011-01-01 09:32:44 +0530

Make rltiles use contrib SDL and png if CONTRIB_SDL and NO_PKGCONFIG are set.
The Mac tiles build can trip over MacPorts SDL and libpng being incompatible
versions and compiled for the wrong architecture, so allow the user to force
use of contrib SDL and libpng.

--------------------------------------------------------------------------------
9338ca061e | Adam Borowski | 2011-01-01 04:28:15 +0100

Take spikes from snails and gators, too.

--------------------------------------------------------------------------------
2b21f2b8c3 | Adam Borowski | 2011-01-01 04:25:57 +0100

Strip bog mummies out of their shells.

--------------------------------------------------------------------------------
2c7a5022d6 | Adam Borowski | 2011-01-01 03:50:29 +0100

Fix igniting poison clouds not giving xp.

--------------------------------------------------------------------------------
02d72b998f | Adam Borowski | 2011-01-01 03:34:35 +0100

Don't take notes or cancel tornado when restoring the game.
Notes were then kludged to get suppressed.  I'm not sure if
there's something else that depends on that kludge.

--------------------------------------------------------------------------------
452e414e47 | Adam Borowski | 2011-01-01 03:05:55 +0100

Allow any clouds to overwrite tornado.
This means new clouds will be allowed to mix into the winds.

--------------------------------------------------------------------------------
6e6ab619dd | Adam Borowski | 2011-01-01 02:13:38 +0100

Restrict Tornado to a biconnected graph.
This means it won't go into corridors unless the corridor forms a loop
that fits inside the range.  One square in the corridor is affected,
though, to stop the spell from being outright useless there.  Example:

   xxxxxxxxxxxx
   ...&&&&@&...
   xxxx&x&xxxxx
      x&x&x
      x&&&x
      xxxxx

In the above example, most would be unaffected anyways due to rapidly
diminishing power.  It might be a good idea to relax the formula, as
this restriction simulates a wind system quite well.

--------------------------------------------------------------------------------
93eb30cc1f | Adam Borowski | 2011-01-01 01:08:53 +0100

Fix a crash in read_urandom().

--------------------------------------------------------------------------------
85f1142392 | Vsevolod Kozlov | 2011-01-01 00:55:17 +0300

Simplify dgn.spotty_map by using radius_iterator.

--------------------------------------------------------------------------------
36d5f39f50 | Adam Borowski | 2010-12-31 22:38:32 +0100

Use the Windows equivalent of /dev/urandom there.
Without it, starting Crawl twice in the same second produced identical seeds.

It doesn't matter for real games (no DGL on Windows...), but can be
surprising when doing automated tests or playing with layout generators.

--------------------------------------------------------------------------------
0980a63ef1 | Vsevolod Kozlov | 2010-12-31 21:44:54 +0300

Use radius_iterator in _has_vault_in_radius.

--------------------------------------------------------------------------------
286102fb17 | Vsevolod Kozlov | 2010-12-31 21:20:43 +0300

Simplify third pass in dgn_find_nearby_stair using rectangle_iterator.

--------------------------------------------------------------------------------
c940dc3321 | Vsevolod Kozlov | 2010-12-31 20:39:04 +0300

Add a Hive:2 vault by me.

--------------------------------------------------------------------------------
09d6ee8426 | Darshan Shaligram | 2010-12-31 22:09:42 +0530

Fix off-by-one check for fix-mid tag.

--------------------------------------------------------------------------------
fd8673d119 | Darshan Shaligram | 2010-12-31 21:48:45 +0530

Use TAG_MINOR_FIX_MID correctly (mea culpa).

--------------------------------------------------------------------------------
fc9de525ff | Darshan Shaligram | 2010-12-31 21:34:06 +0530

Add -Wno-unused-function to lexer cflags to shut up the warnings about yyunput.

--------------------------------------------------------------------------------
b9a936f6c6 | Darshan Shaligram | 2010-12-31 21:33:14 +0530

Bump mid shim to handle newer saves.

--------------------------------------------------------------------------------
0915ed9a55 | Darshan Shaligram | 2010-12-31 21:20:03 +0530

[3111] Make monster operator= copy mid so that monsters placed from the transit 
list don't lose their mid.

--------------------------------------------------------------------------------
67f4a81957 | Raphael Langella | 2010-12-31 12:41:32 +0100

Don't treat pressing and releasing the mouse button as the same event.
It doesn't fix any bug, but it could prevents futur problems.

--------------------------------------------------------------------------------
8a8900b6d6 | Johanna Ploog | 2010-12-31 11:41:51 +0100

Storing tile names: fix console compilation.

--------------------------------------------------------------------------------
f02884c98b | Johanna Ploog | 2010-12-31 10:53:51 +0100

Also store tile names defined via lua triggers.

--------------------------------------------------------------------------------
5efdb5dd4c | Johanna Ploog | 2010-12-31 10:53:49 +0100

Also store default floor and rock tile names in the save.

--------------------------------------------------------------------------------
1cf9778054 | Johanna Ploog | 2010-12-31 10:53:47 +0100

Store vault-defined tile names in the save.
Only happens in tiles builds and they're also not saved when
going Tiles -> console -> Tiles.

TODO: tile_default floor/wall settings

--------------------------------------------------------------------------------
dd76e9b607 | Darshan Shaligram | 2010-12-31 14:47:43 +0530

Don't use flex --nounput flag since support for it varies and it's used only to 
get rid of a compiler warning.

--------------------------------------------------------------------------------
6f4ba073f7 | Jude Brown | 2010-12-31 18:59:22 +1000

Generate a Windows Alert dialog on assertions (Tiles).
(Tested by galehar and confirmed functional bar a typo and an incorrect
include for SDL.)

This should hopefully improve usability for Windows Tiles users: the
game will no longer exit when runninng into an assert, but instead
present the assert message in a dialog box before closing.

This will hopefully replace "The game closes when I do X" bug reports
wwith "The game asserts when I do X, this is what the message is". It's
not quite crash erports, but it's somethingl

Future ideas: we could possibly include further information in the
dialog or refer the user to the FAQ for an entry on "What do I do when
the game crashes on an assert?". This could include "don't worry, an
emergency save was made", "please go here and file a bug report", and
so-on.

--------------------------------------------------------------------------------
51afd0a504 | Jude Brown | 2010-12-31 15:37:19 +1000

Resolve #3107: Trove portals shouldn't inspect the ground (elliptic).
This is unexpected behaviour. I'm not entirely sure why I implemented it
like this, but I've remove the checking of the ground from the code.

--------------------------------------------------------------------------------
9ea26faa65 | Adam Borowski | 2010-12-30 23:30:32 +0100

Fix mon.number being 32 bit in memory but only 16 in saves.

--------------------------------------------------------------------------------
1ec7cf2689 | Adam Borowski | 2010-12-30 23:30:31 +0100

When cloning a monster, give it an unique id.

--------------------------------------------------------------------------------
340fef0858 | Adam Borowski | 2010-12-30 23:28:40 +0100

Check for saves with broken monster ids.

--------------------------------------------------------------------------------
1b2363230e | Adam Borowski | 2010-12-30 23:28:39 +0100

Include Options among globals handled by DEBUG_GLOBALS.

--------------------------------------------------------------------------------
ef678e2bfe | Adam Borowski | 2010-12-30 23:28:39 +0100

Plug valgrind errors reachable from no-op --builddb.
The first is colours and mpr data being not freed, it's O(1) so doesn't
matter, merely spams valgrind runs.

The other one is not zeroing save, this is actual error that can turn
crashes into recursive ones.

--------------------------------------------------------------------------------
5755333cd5 | Adam Borowski | 2010-12-30 23:28:39 +0100

With DEBUG_GLOBALS, explicitely free and zero the five big globals to catch 
leaks.

--------------------------------------------------------------------------------
f0091b1b9e | Adam Borowski | 2010-12-30 23:28:39 +0100

Fix a valgrind warning (only in --test, not regular games).

--------------------------------------------------------------------------------
3c3f58b293 | Adam Borowski | 2010-12-30 23:28:39 +0100

Fix a valgrind crash.
For some strange reason, we prepare a blank character at Crawl's init,
but at the time, the game type is not yet known, possibly causing a
crash if the memory has something bad there.

--------------------------------------------------------------------------------
b7ab6e75b0 | Adam Borowski | 2010-12-30 23:28:39 +0100

Cancel Injury Mirror on abandoning Yred.

--------------------------------------------------------------------------------
5bf6e398b8 | Adam Borowski | 2010-12-30 23:28:38 +0100

Allow recasting of Injury Mirror.
As a prayer effect, people expect it to work that way, and it doesn't
have a cost unless you actually get damaged anyway.

--------------------------------------------------------------------------------
1a270545b7 | Adam Borowski | 2010-12-30 23:28:38 +0100

Simplify access to ~/.crawl/macros.txt

--------------------------------------------------------------------------------
18929323f2 | Adam Borowski | 2010-12-30 23:28:38 +0100

Don't make Tornado levitation linger after its effect, no matter permalev.
(The only real result is a wrong colour of the HUD light.)

--------------------------------------------------------------------------------
60ef9db0a5 | Adam Borowski | 2010-12-30 23:28:38 +0100

Split Tornado's code away from spl-damage.cc

--------------------------------------------------------------------------------
47c2299926 | Raphael Langella | 2010-12-30 18:30:41 +0100

Update monster tab before drawing it.
This fix #3092 and probably other bugs with the monster tab.

--------------------------------------------------------------------------------
03c708493e | Johanna Ploog | 2010-12-30 17:50:22 +0100

Use rusty sewer tile when a sewer times out.
Place a stone arch at the sewer's time-out. There should
probably also be a description change because as it is, it's
a bit weird, but I've no idea how to do that.

Rename timed_marker's hitherto unused floor_tile property to
feat_tile, and override the stone arch tile with the rusty grate.

--------------------------------------------------------------------------------
8de0841eee | David Ploog | 2010-12-30 13:17:53 +0100

Some shop vaults (Zaba, Eino).

--------------------------------------------------------------------------------
b0a2d7e72b | Johanna Ploog | 2010-12-30 13:02:43 +0100

New temporary option tile_allow_detached_montab.
As long as the monster tab can cause crashes, players with a large
enough screen to have it open all the time are at a disadvantage.

Setting this option to false forces the monster tab to stay
undetached.

Should be reverted once the crashes are fixed or a more configurable
tab system is introduced, whichever comes first.

--------------------------------------------------------------------------------
5824792c4b | Vsevolod Kozlov | 2010-12-30 14:58:32 +0300

Select the shop vault by tag.
This allows for more shop vaults to be added.

--------------------------------------------------------------------------------
8428bacddc | Johanna Ploog | 2010-12-30 11:03:28 +0100

Add weight to the sewer vault's potion of levitation.
w:4, as mentioned by galehar in #3094.

--------------------------------------------------------------------------------
593e65b6bb | Vsevolod Kozlov | 2010-12-30 12:31:33 +0300

Correct a typo in sewer.des.

--------------------------------------------------------------------------------
871dc77d5f | Vsevolod Kozlov | 2010-12-30 12:30:34 +0300

Remove the no_shop_gen vault tag.
With shop placement being done using vaults, it no longer makes sense.

--------------------------------------------------------------------------------
d41c96c44f | Vsevolod Kozlov | 2010-12-30 12:14:52 +0300

Correct whitespace errors in sewer.des

--------------------------------------------------------------------------------
f51c8e834f | David Ploog | 2010-12-30 01:15:05 +0100

Reduce sewer loot.
I don't think that sewers should possibly yield potions of experience or
cure mutation. We are cutting down on branch lengths to reduce loot and xp,
introducing them via portal vaults through the backdoor. This commit is an
attempt to make the luck from entering (and winning) a sewer more sane.

--------------------------------------------------------------------------------
735fb89997 | Jude Brown | 2010-12-30 09:59:59 +1000

Fix returning weapon message leak (monky).
It modified the message based on whether or not you could see the
thrower, but didn't actually test to see whether or not the target was
visible; hence, it always displayed a message, even if you are nowhere
in the vicinity.

--------------------------------------------------------------------------------
8b8ebcebdf | Jude Brown | 2010-12-30 09:51:49 +1000

Fix message leak for Spriggan riders (pointless).

--------------------------------------------------------------------------------
fe227795de | Jude Brown | 2010-12-30 09:51:48 +1000

Replace grey rats with porcupines in most instances.
Porcupines are slightly harder monsters than grey rats, to compensate
for the fact that they do not generate in massive bands such as grey
rats. They eventually will have a "spine" passive effect which will be
similar to the Demonspawn spine mutation (small amount of damage for
certain types of you-attacks; extra damage for them-attacks).

Hence, grey rats no longer generate in Lair (YAY!). This means that the
only rat bands you will now find will be green rats and possibly orange
rats.

Instances where grey rats have not been replaced: Summon Small Mammals
(reasoning: the balance of the spell is already precarious; altering it
to generate porcupines, which are stronger than grey rats, could be
hazardous), Sewers (where grey rats are thematically good) and certain
vaults (rat nests, etc).

--------------------------------------------------------------------------------
e3df72a713 | Jude Brown | 2010-12-30 09:51:47 +1000

Tweak Leda's Liquefaction (OG17, others); fixes #3086.
Liquefaction can now be cast and now affects all features that have
solid floors; it also recolours anything with a solid floor, rather
than just individual floor tiles. Reasoning: as it affects all solid
features, it should give visual indication of this effect.

--------------------------------------------------------------------------------
7f79a64adf | David Ploog | 2010-12-30 00:45:46 +0100

Five new sewer maps (co).
To celebrate this, added another entry.

--------------------------------------------------------------------------------
4af2d19544 | Johanna Ploog | 2010-12-29 23:27:19 +0100

Also store vault-defined monster tile names in console builds.
The tile will get evaluated later-on, should you decide to switch
to Tiles at some later point in the game.

--------------------------------------------------------------------------------
16aacef1ca | Johanna Ploog | 2010-12-29 22:45:21 +0100

Store tile name for vault-defined monsters.
Each time a saved game is loaded, the actual monster_tile props is
updated based on this string. If the string is no longer valid,
both properties are discarded.

--------------------------------------------------------------------------------
0ec58c456f | Johanna Ploog | 2010-12-29 20:09:42 +0100

Reinitialise dungeon tiles if TILE_WALL_MAX changed between versions.
Whenever this happens, all vault-defined dungeon tiles get clobbered
with their default tiles. But at least the dungeon looks sane!

This does not affect odd tile shifts in remembered monsters, items,
features, but that's also not such a problem.

--------------------------------------------------------------------------------
ef0560ae8f | Johanna Ploog | 2010-12-29 18:48:48 +0100

And the same for walls.

--------------------------------------------------------------------------------
0647c905dc | Johanna Ploog | 2010-12-29 18:48:45 +0100

In dc-floor.txt, set %sdir dc-dngn/floor and change paths accordingly.

--------------------------------------------------------------------------------
cdf65f0f76 | Vsevolod Kozlov | 2010-12-29 19:48:24 +0300

Remove altar_chance from branch data, as it is no longer used.

--------------------------------------------------------------------------------
a51ef52322 | Vsevolod Kozlov | 2010-12-29 19:48:24 +0300

Convert _place_altar(s) into a minivault.
This does not entirely duplicate the old behaviour.  _place_altars has the
ability to place multiple altars on a single level.  Recreating it using vaults
is possible, but seems complicated to me, and the gain is questionable, as the
odds of a second altar to be placed in _place_altars are rather slim (4% for
Orc, 2% for Snake/Forest/Dwarf, 1% for D/Elf/Lair/Slime/Vault/Crypt, 0% for 
Zot).
Given the presence of other altar vaults, and such things as overflow altars,
such a small chance doesn't seem to matter all that much...

--------------------------------------------------------------------------------
d95ef9a508 | Vsevolod Kozlov | 2010-12-29 19:48:24 +0300

Remove the unused 'vault_only' argument from _place_specific_stair, and reorder 
some functions.

--------------------------------------------------------------------------------
68fee44eb4 | Johanna Ploog | 2010-12-29 17:45:20 +0100

Add hellbinder sigil tiles for the demon wizlab.
31 tiles for a single vault (plus several more I didn't use), but the
result is absolutely worth it.

I also did some minor rearrangement in the ASCII patterns so as to make
the tiles fit better.

Players loading old saves will get the opportunity to admire the new
tiles in the main dungeon because, as usual, all wall tiles get
shifted around because of this. :(

--------------------------------------------------------------------------------
87dfcf8a55 | Jude Brown | 2010-12-29 21:41:18 +1000

Properly make bog mummies curse equipment.

--------------------------------------------------------------------------------
e5c4acac7e | Jude Brown | 2010-12-29 21:38:58 +1000

Fix raven quote (Sunfall).

--------------------------------------------------------------------------------
abec47e917 | Jude Brown | 2010-12-29 21:38:22 +1000

New unique: Jory, in the Tower of Silence; new monster enums.
Will only appear in the currently-unfinished (and therefore, not yet
committed) Tower of Silence vault. Concept by Greensnark and dpeg! Has a
tile! Bonus fun death effect: he explodes in a cloud of all the blood he
ever drank! Might be a bit over the top.

Tile could do with being seriously improved.

Also adds enums for the new Abyssal horrors: I was getting sick and
tired of stashing them every time I need to make a commit.

--------------------------------------------------------------------------------
77e59290c3 | Vsevolod Kozlov | 2010-12-29 14:11:43 +0300

Correct whitespace errors using checkwhite.

--------------------------------------------------------------------------------
0daedcb047 | Vsevolod Kozlov | 2010-12-29 14:10:47 +0300

Add #ifndef/#define MONDEATH_H to mon-death.h.

--------------------------------------------------------------------------------
44366bd62b | Jude Brown | 2010-12-29 21:04:47 +1000

Some minor holy clean-ups.
The message regarding "only used for haste" is redundant: we use this
structure for heal other, as well!

Even though SPELL_RESURRECT is not actually used anyway (and instead
uses a monster enchantment as a timer), I've added it to the shedu spell
list. It can be removed at a later date, but now at least Gretell will
report that shedu had the "resurrection" spell.

--------------------------------------------------------------------------------
da128bc421 | Jude Brown | 2010-12-29 20:54:56 +1000

Cast messages for all holy spells; tweak cast look-up.
Tweaks the key generation for look-ups of cast messages as well: it now
includes "<spell name> <monster name> cast" before checking generic
monster casting messages.

I can't see any issue with this, but I could be blind.

--------------------------------------------------------------------------------
3f17aa6699 | Jude Brown | 2010-12-29 20:53:29 +1000

Tweak Ophan colour, too.
ETC_FIRE is actually pretty ugly; no other 'G' uses red, so I've decided
to use that instead.

--------------------------------------------------------------------------------
94874e660d | Jude Brown | 2010-12-29 20:49:34 +1000

Fix Shedu descriptions.

--------------------------------------------------------------------------------
492d7ca412 | Jude Brown | 2010-12-29 20:45:13 +1000

Tweak Ophan description, fix a typo.

--------------------------------------------------------------------------------
400956faf1 | Jude Brown | 2010-12-29 20:26:08 +1000

Add blessed toe casting message for Heal Other.

--------------------------------------------------------------------------------
ec93436a95 | Jude Brown | 2010-12-29 20:18:12 +1000

Finally complete shedu!
They now generate in a band of two. If one dies, the other one will
attempt to resurrect it. This resurrection will succeed as long as the
corpse is still in existance.

Butchering or otherwise destroying the corpse will cause it to fail.
Picking it up or standing on it will have no further effect.

You will only get EXP when you've killed the two of them.

I can't see anything else that needs to be done for these monsters; so
long as they are placed as a band, there shouldn't be any issues.

--------------------------------------------------------------------------------
163785cb0e | Vsevolod Kozlov | 2010-12-29 13:04:17 +0300

Remove shop_chance from branch-data.h.
Only dgn.br_has_shops used it, and that is not used anywhere in dat as far as
grep can see.

The chances are now in dat/des/builder/shops.des anyway.

--------------------------------------------------------------------------------
a8579851cc | Vsevolod Kozlov | 2010-12-29 12:55:51 +0300

Convert random shop generation to serial minivaults.
This has a side-effect of preventing ranndomly generated shops from being placed
within vaults that are already present on the level.

--------------------------------------------------------------------------------
99f35bfacb | Jude Brown | 2010-12-29 10:08:41 +1000

Don't give remove curse scrolls (everyone).

--------------------------------------------------------------------------------
f0218caef1 | Jude Brown | 2010-12-29 09:59:03 +1000

Fix #3085: no item for Ashenzari with tgw_lugonu_bribe.

--------------------------------------------------------------------------------
9319fadfa6 | Johanna Ploog | 2010-12-28 23:57:23 +0100

If no verbose command description is available, use the terse one.
In any case, the mouseover should display _something_ useful.

--------------------------------------------------------------------------------
303463394a | Johanna Ploog | 2010-12-28 22:58:47 +0100

Add co to the credits.

--------------------------------------------------------------------------------
28ad88b2f2 | Johanna Ploog | 2010-12-28 22:57:05 +0100

Add outlined variants of the number icons, use them in the skill tab.

--------------------------------------------------------------------------------
ad30ae6ea7 | Johanna Ploog | 2010-12-28 22:56:04 +0100

Experimentally shift number icons 1 pixel to the right.

--------------------------------------------------------------------------------
5af1bd8396 | Johanna Ploog | 2010-12-28 22:00:52 +0100

Awesome new giant tiles courtesy of co. Thank you!

--------------------------------------------------------------------------------
aaec000433 | Johanna Ploog | 2010-12-28 21:45:19 +0100

Move status icons into subfolder dc-misc/icons.

--------------------------------------------------------------------------------
4fb79a7168 | Johanna Ploog | 2010-12-28 21:45:18 +0100

Move more number icons into dc-misc/numbers.

--------------------------------------------------------------------------------
ae48f81966 | Johanna Ploog | 2010-12-28 21:45:16 +0100

Add aptitude icons to the skill tab.

--------------------------------------------------------------------------------
a72c4f9c5c | Vsevolod Kozlov | 2010-12-28 21:43:14 +0300

Slightly tweak a level veto message.

--------------------------------------------------------------------------------
727075e130 | Vsevolod Kozlov | 2010-12-28 21:42:01 +0300

Don't do branch-dependent fixup of walls when not on a LEVEL_DUNGEON level.

--------------------------------------------------------------------------------
8668ad04e7 | Vsevolod Kozlov | 2010-12-28 20:11:43 +0300

Use orth_adjacent_iterator in _jtd_init_surroundings.

--------------------------------------------------------------------------------
48be1efe7f | Johanna Ploog | 2010-12-28 17:59:45 +0100

Tweak skill and command tab tiles.
Add new skill tab tile, use old one for commands.

--------------------------------------------------------------------------------
abcc0d276f | Johanna Ploog | 2010-12-28 17:08:48 +0100

Occasionally place a decay-delayed skeleton in a labyrinth.

--------------------------------------------------------------------------------
143eba0158 | Johanna Ploog | 2010-12-28 17:08:13 +0100

Another use for orth_adjacent_iterator.

--------------------------------------------------------------------------------
df784e8dc1 | Johanna Ploog | 2010-12-28 15:16:07 +0100

Make glass more likely in labyrinths.
A full-glass labyrinth is bad, but never seeing glass is also boring.

--------------------------------------------------------------------------------
489f8712a4 | Adam Borowski | 2010-12-28 15:10:11 +0100

Fix inconsistent handling of conflicting mutations.
This is mostly merging common code, the actual change is making forced
mutations override conflicts rather than failing.

--------------------------------------------------------------------------------
849a1f7747 | Adam Borowski | 2010-12-28 14:17:39 +0100

Let tornado colouring use centers other than the player.

--------------------------------------------------------------------------------
ac8dde2507 | Adam Borowski | 2010-12-28 14:17:39 +0100

Add Freeze to Vehumet's list, it's unquestionably direct physical damage.
Of course, all you get is a wizardry bonus for a level 1 spell.

--------------------------------------------------------------------------------
5aa71ffc36 | Adam Borowski | 2010-12-28 14:17:39 +0100

Fix Sticky Flame having range 2 under Vehumet.

--------------------------------------------------------------------------------
4fa4a543c2 | Adam Borowski | 2010-12-28 14:17:38 +0100

Use a separate flag for perm levitation/flight rather than duration hacks.
There are so many interactions that beware of drowning deaths if I made a
mistake somewhere!

--------------------------------------------------------------------------------
6753f82600 | Johanna Ploog | 2010-12-28 14:16:51 +0100

Fix labyrinth vitrification.
That piece of code was easy to misunderstand; I've now added a comment.

--------------------------------------------------------------------------------
0fa06d1de0 | Johanna Ploog | 2010-12-28 14:16:50 +0100

Tidy up orcish dagger tile, as pointed out by Mychaelh.

--------------------------------------------------------------------------------
c637bfbf1c | Jude Brown | 2010-12-28 23:12:11 +1000

Restrict casting Fly while Liquefying, too.

--------------------------------------------------------------------------------
fa6b99c708 | Jude Brown | 2010-12-28 23:05:52 +1000

Use Adam's alternate colouring for liquefaction.

--------------------------------------------------------------------------------
696c4facd2 | Vsevolod Kozlov | 2010-12-28 14:48:03 +0300

Add a wizlab entry vault.

--------------------------------------------------------------------------------
8ce9afcb90 | Vsevolod Kozlov | 2010-12-28 14:48:02 +0300

Don't overdo vitrification in labyrinths.

--------------------------------------------------------------------------------
0412296ad0 | Jude Brown | 2010-12-28 21:43:56 +1000

New spell: Leda's Liquefaction.
This one's gone through a couple of iterations during discussions.
Finally, though, we have this: an area of effect slowing. It's a circle
around you that slows you and anyone not insubstantial and not flying
who crosses into that circle.

The slowing effect is implemented as though it were ponderousness (well,
slightly more than ponderousness), rather than as ENCH_SLOW. For
monsters, when cast by the player, it counts as a slightly less speed
malus than standard ENCH_SLOW. Reasoning: the monster casting it has
more stability for being at the centre of the effect.

Currently, I've stolen the colouring from KiloByte's _etc_tornado. It's
implemented using areas, which I've written some additional code for
that finds the "centre" of an area from a coordinate within that area.
Greensnark had a quick look over it for me earlier, but I'd appreciate
further checks for quickness, saneness, etc.

It appears in the Book of the Earth.

Finally: no tile (yet). I attempted to do one up, spent an hour or so
tweaking it, and then compared it to our current spell tiles and decided
that I can't make spell tiles. :-)

--------------------------------------------------------------------------------
17a7108898 | Johanna Ploog | 2010-12-28 12:12:32 +0100

Add coolio's fire crab tile.
It looks more "crablike" than the current one, which somewhat
resembles a small spider.

--------------------------------------------------------------------------------
3b36a6db19 | Johanna Ploog | 2010-12-28 01:33:23 +0100

Fix crash on command tab mouse-over.

--------------------------------------------------------------------------------
27c03f0257 | Raphael Langella | 2010-12-28 01:03:38 +0100

Nerf sticky flame range to 1.

--------------------------------------------------------------------------------
ae7fc709d5 | Johanna Ploog | 2010-12-27 23:11:46 +0100

Add a description for the autofight command.

--------------------------------------------------------------------------------
93ee838105 | Johanna Ploog | 2010-12-27 23:04:49 +0100

Add the hit_closest to the command tile tab.
This means that autofight.lua is now loaded by default.

--------------------------------------------------------------------------------
87d5b9d76b | Vsevolod Kozlov | 2010-12-27 21:03:25 +0300

Correct some whitespace errors using checkwhite.

--------------------------------------------------------------------------------
48b60d1893 | Vsevolod Kozlov | 2010-12-27 20:47:15 +0300

Use map_masked in _fixup_stone_stairs instead of checking env.level_map_mask 
directly.

--------------------------------------------------------------------------------
be4ade1407 | Johanna Ploog | 2010-12-27 18:43:28 +0100

Add preliminary tile for the Malign Gateway spell.
For this purpose, I merged two of psyshvl's eldritch tentacles.

--------------------------------------------------------------------------------
dc6fc4c72d | Johanna Ploog | 2010-12-27 18:33:52 +0100

Add Curio's zombie hound and toad tiles.

--------------------------------------------------------------------------------
451f7771a4 | Johanna Ploog | 2010-12-27 17:30:47 +0100

Add a zombified kraken head tile.
Using the normal tentacles looks okay, so zombifying those is not
at all urgent. (That, and I fear the code duplication necessary
for them.)

--------------------------------------------------------------------------------
b3160a6f80 | Johanna Ploog | 2010-12-27 17:05:22 +0100

Don't include command description in console versions' desc db.

--------------------------------------------------------------------------------
e837e7eadd | Johanna Ploog | 2010-12-27 17:04:54 +0100

Add descriptions for common commands.
This is currently only used for the command tab in Tiles, but could
be useful for the console version as well.

--------------------------------------------------------------------------------
81d9087f1e | Johanna Ploog | 2010-12-27 15:25:23 +0100

Add Denzi's cat lich tile.

--------------------------------------------------------------------------------
ac035c03f4 | Johanna Ploog | 2010-12-27 14:58:51 +0100

Add (preliminary tiles) for some of the commands.

--------------------------------------------------------------------------------
deb340c83f | Vsevolod Kozlov | 2010-12-27 16:41:55 +0300

Revert "Turn primary vaults into secondary vaults."
This reverts commit b622b1e37a219bb918d68491ea9512b386dbabaa.

It's idealistically nice, but, unfortunately, the consequences are far more
serious than anticipated.

--------------------------------------------------------------------------------
bb43867e37 | Vsevolod Kozlov | 2010-12-27 16:38:11 +0300

Revert "Merge _build_secondary_vault and _build_vault_impl into _build_vault."
This reverts commit 035f8159043facedab5727aaf02e0bbdc5f710df.

--------------------------------------------------------------------------------
64a1df2539 | Raphael Langella | 2010-12-27 10:39:47 +0100

Restore minimap after redoing layout.
This fix a bug when the minimap was cleared after memorising or forgetting
a spell (#3061).

--------------------------------------------------------------------------------
70b18cf2bb | Jude Brown | 2010-12-27 18:15:40 +1000

New tiles: porcupine, fire crab. (Malwyn)
Added to credits. Added Curio to credits, also.

Porcupines exist as monsters but haven't actually been defined yet.
They'll probably replace <some> rats as a singular, slightly more
difficult opponent that have spikey quills, etc.

--------------------------------------------------------------------------------
562b78faf6 | Jude Brown | 2010-12-27 17:05:27 +1000

Fix ravens: reduce HP, HD, attacks.
This commit also sorts the unique monsters properly and divides them
into convenient sections.

--------------------------------------------------------------------------------
6805c0a583 | Jude Brown | 2010-12-27 16:08:44 +1000

New monster: raven.
A blue 'b' monster, it eats corpses, pecks and claws at you, and doesn't
generate anywhere in the dungeon. It's specifically designed for a
forthcoming vault ("Tower of Silence"). I'm not really sure where it
would be interesting to generate, but feel free to add it to a specific
branch.

Includes a tile: the raven.bmp from the NetHack rltiles (from
rltiles.sourceforge.net). I've tweaked it by adding a border.

--------------------------------------------------------------------------------
d08ecb6087 | Jude Brown | 2010-12-27 13:29:17 +1000

Give bog mummies a death curse! (clouded).
Currently it's the same as a normal mummy (and therefore the same as
Menkaure's), in that it simply curses potions. It would be cool if they
had a slightly different flavour, but I'm not entirely sure what that
could be.

--------------------------------------------------------------------------------
6282fd3614 | Johanna Ploog | 2010-12-27 03:13:06 +0100

Add a tile tab for common commands.
Currently un-detached, and without command tiles.
(I used one of Denzi's minitiles as a placeholder
for the tab itself.)

--------------------------------------------------------------------------------
2ea14a83b7 | Johanna Ploog | 2010-12-27 03:13:04 +0100

Silence a compilation warning.

--------------------------------------------------------------------------------
6d97f33524 | Johanna Ploog | 2010-12-27 03:13:02 +0100

Fix #3033: Crashes when drawing tentacle tiles for kraken zombies.

--------------------------------------------------------------------------------
db5bb7397e | Mu | 2010-12-27 00:25:08 +0000

One new floating vault.

--------------------------------------------------------------------------------
e7f700517d | Jude Brown | 2010-12-27 10:22:55 +1000

Fix #3051: Zot Defence create traps not identified.
I'm not sure of the exact behaviour previously, but now whenever you
place a trap by selecting the location, the location (if a plausible
trap location) is identified instead of relying on search, T&D skill,
etc.

--------------------------------------------------------------------------------
5f2d60f4f9 | Jude Brown | 2010-12-27 10:22:54 +1000

Refactor Zot trap and monster creation abilities.
Previously, there was a function to convert an ability into a trap that
was only ever used for counting traps on a level (for the cost), and a
separate lookup was done in the ability switch for traps; I've now
converted the ability switch to use this function.

Likewise, there was an ability->monster lookup for ally creation. I've
added a new ability->description lookup function and converted the
ability switch statement to use these instead.

--------------------------------------------------------------------------------
d5d7a98a34 | Raphael Langella | 2010-12-27 01:05:53 +0100

Add 2 new title screens.
One from Omndra #2787 and an old one from Denzi #3007

--------------------------------------------------------------------------------
19329f638e | Raphael Langella | 2010-12-27 00:42:47 +0100

Preserve total_skill_points when simulating a skill transfer.
This fix the following bug: if you cancel transfer knowledge after having
selected the source skill, futur skill training will cost much less XP.

--------------------------------------------------------------------------------
36fba810b7 | Jude Brown | 2010-12-27 09:31:41 +1000

Fix tiles compilation (galehar).

--------------------------------------------------------------------------------
46161bd73e | Jude Brown | 2010-12-27 09:04:55 +1000

Different sky beast tile: quetzalcoatl-like monster.
This is based on the coatl tile from the NetHack rltiles, with a black
border and some elctricity added. I'm not 100% happy with it: it should
perhaps be slightly transparent, and more "cloud-like". In this instance
the previous tile was possibly better, but I still prefer this over the
old one.

--------------------------------------------------------------------------------
a68d6d5036 | Adam Borowski | 2010-12-26 23:54:15 +0100

Fix opening a db with no filename returning success.
This is not an issue currently as we only do this several times with fixed
arguments, but it could possibly cause problems in the future.

--------------------------------------------------------------------------------
9b29d91084 | Adam Borowski | 2010-12-26 22:43:44 +0100

Don't use KILL_NONE for unknown killers.
It's a special value, environment kills are supposed to use KILL_MISC.

--------------------------------------------------------------------------------
d88f5d8d82 | Adam Borowski | 2010-12-26 22:25:26 +0100

Replace the shedu tile with Curio's version.

--------------------------------------------------------------------------------
cfd4ff5b06 | Adam Borowski | 2010-12-26 22:01:45 +0100

Update INSTALL.txt a bit.
* setgid installs are gone
* SAVEDIR must be set
* Lua bindings are on by default (since forever)

--------------------------------------------------------------------------------
645151cb5f | Adam Borowski | 2010-12-26 22:01:44 +0100

Don't claim libz-dev is needed only for tiles.
The new save format uses it to compress save chunks.

--------------------------------------------------------------------------------
58057f0213 | Johanna Ploog | 2010-12-26 21:32:55 +0100

Add Denzi's awesome felid tiles. Miaow!

--------------------------------------------------------------------------------
ef8109b298 | Adam Borowski | 2010-12-26 15:53:11 +0100

Remove unused MISC_UNKNOWN_MISCAST, rename MISC_KNOWN_MISCAST.
The latter doesn't mean it's because of a source which you knew before,
but merely a miscast whose effects you can observe -- which doesn't need
a separate category anyway.

--------------------------------------------------------------------------------
2367b2b889 | Adam Borowski | 2010-12-26 15:35:45 +0100

Pass the blame data when a cloud causes hp damage.
This lets Mirror Damage and xp tracking (currently disabled) work.
We also can include this in obituaries now.

Also, there was an interesting bug: Injury Mirror could trigger against
an unrelated monster who happened to have the same mindex() as the cloud's
number.

--------------------------------------------------------------------------------
be3ce85ef7 | Adam Borowski | 2010-12-26 15:30:48 +0100

Include monster id in wizard xD

--------------------------------------------------------------------------------
c353d41a74 | Adam Borowski | 2010-12-26 12:52:42 +0100

Let "anon friendly monster" mindices provide a valid monster/actor.
This also lets them work with the new monster id system, as it's likely
they will be used together unless we decide to migrate completely.

--------------------------------------------------------------------------------
0da678df97 | Adam Borowski | 2010-12-26 12:52:29 +0100

Store the blame when clouds are placed.
The kill type and kill category are still needed only because we currently
lose blame data when the agent dies or moves off-level.

--------------------------------------------------------------------------------
93ca19a0b9 | Adam Borowski | 2010-12-26 12:48:31 +0100

Add a field to clouds to store those guilty.

--------------------------------------------------------------------------------
4897f2c10a | Jude Brown | 2010-12-26 19:01:20 +1000

Use Curio's bog mummy (with moss) tile!
I've actually darkened it considerably to better match the leathery skin
of an actual bog mummy. The sphagnum moss growing on it is a thousand
times awesome.

--------------------------------------------------------------------------------
689475597b | Jude Brown | 2010-12-26 14:15:34 +1000

Actually fix compile.
I thought I had already run compilation but apparently I hadn't.

--------------------------------------------------------------------------------
aaab792438 | Jude Brown | 2010-12-26 14:13:50 +1000

Fix compile (monky).

--------------------------------------------------------------------------------
8807aa8831 | Jude Brown | 2010-12-26 14:05:17 +1000

New monster: fire crab.
Claws, bites and breathes large amounts of flame clouds. I have been
unable to find a tile for it, so it's going in without one! Naughty me.

Appears in the Swamp fire ending, occasionally in the Lair of the
Beasts (rarer than death yaks), and also rarely in the Dungeon.

--------------------------------------------------------------------------------
40d06d4e0f | Jude Brown | 2010-12-26 10:16:45 +1000

Delay monster-BiA until after first berserk; BiA sets.
All monster berserkers who have the MST_TROG spell set (Trog's Hand,
Berserk and Brother in Arms) will now wait until after their first
berserk has worn off before summoning a "Brother". (dpeg).

Also, the sets of acceptable monsters have been tweaked: nobody will
generate berserk iron trolls or stone giants. Spriggans will only
generate berserk bears (complimentary to the Spriggan druid's bear
summoners).

The random monster choosing could be tweaked to use the power scale;
however, monsters can cast it without penalty therefore assigning
power=higher monster just means you'll get a lot more higher monsters.

--------------------------------------------------------------------------------
ce45d4ab17 | Jude Brown | 2010-12-26 09:46:14 +1000

Resolve #3043: feature mimic glyph changes.
The bug reported was in Unicode, but this applies even to ASCII. For
example, up stair mimics ("<") would, upon becoming known, instantly
change glyph to down stair mimics (">"). I partially resolved this by
setting colours.

This commit should hopefully fix everything else, as it specifically
fetches the feature definition for the feature being mimicked, and
consistently returns that both when known and unknown. The only
difference know is that one is identified as a monster, and the other
not.

Need to double check tiles, also.

--------------------------------------------------------------------------------
41a4db3df8 | Vsevolod Kozlov | 2010-12-25 21:22:55 +0300

In _fixup_stone_stairs, don't place the missing staircases inside vaults.

--------------------------------------------------------------------------------
2be74f93ad | Vsevolod Kozlov | 2010-12-25 18:32:55 +0300

Add missing KFEAT: O = enter_temple to temple entry vaults.

--------------------------------------------------------------------------------
41ce0f0e4a | Vsevolod Kozlov | 2010-12-25 18:16:57 +0300

Make _connect_vault_exit return a boolean value indicating success, and warn if 
exit connection fails.

--------------------------------------------------------------------------------
035f815904 | Vsevolod Kozlov | 2010-12-25 17:39:41 +0300

Merge _build_secondary_vault and _build_vault_impl into _build_vault.

--------------------------------------------------------------------------------
0017e483ee | Jude Brown | 2010-12-26 00:37:55 +1000

Implement bog mummies: water-themed undead.
They're amphibious, but slow; they have a cold touch-based attack, throw
frost, slow, and corpse rot. Every now and then they start to rot, and
then stop rotting. I think they're an interesting threat.

Currently, they spawn in the Swamp with medium rarity, and I've added a
few to the outside of Lemuel's undead themed Swamp ending.

Could probably do with being enable in the main dungeon, but perhaps
not. We'll see.

And no, I haven't done a tile! I'll try to modify the normal mummy tile
tomorrow. Tile people, please forgive me!

--------------------------------------------------------------------------------
7f922103de | Jude Brown | 2010-12-26 00:37:52 +1000

Convert corpse rot into a monster-castable sell.
corpse_rot now accepts an actor parameter!

--------------------------------------------------------------------------------
61a4b33983 | Darshan Shaligram | 2010-12-25 19:22:49 +0530

Make die_on_error default to false in dat/clua place_maps for the common case 
of serial vaults.

--------------------------------------------------------------------------------
b622b1e37a | Vsevolod Kozlov | 2010-12-25 16:23:45 +0300

Turn primary vaults into secondary vaults.
This breaks stuff.  But I have tested it quite a lot, and the game seems to
stay very much playable.

_build_vault_impl's build_only is gone, it now never places stairs,
_place_layout_vault does it instead.

_build_primary_vault is gone, and _build_secondary_vault should be renamed.

Zot and Blade always get _plan_3 levels, to kind-of retain the old behaviour of
having guaranteed _build_rooms levels.

Code should be cleaned up, especially _build_dungeon_level and the bits related
to Pan.

--------------------------------------------------------------------------------
bf655b088a | Vsevolod Kozlov | 2010-12-25 16:23:45 +0300

Use adjacent_iterator in map_safe_vault_place.

--------------------------------------------------------------------------------
0ae67ceecc | Jude Brown | 2010-12-25 21:32:34 +1000

Normalise cast_malign_gateway into several functions.
This refactors the gateway locating code into its own function (for
future use in other "massive gateway" spells), accepting a environment
testing function (defaults to feat_is_malign_gateway_suitable found
in terrain.cc).

--------------------------------------------------------------------------------
ef59218e47 | Jude Brown | 2010-12-25 19:32:34 +1000

Refactor volcano_caves to prevent trapping (#2772).
One of the caves was also lacking an exit; I'm not sure how this
happend. Oops!

--------------------------------------------------------------------------------
cbd6543cce | Jude Brown | 2010-12-25 19:24:37 +1000

Fix #2860: malign gateway through walls via Scrying.

--------------------------------------------------------------------------------
6f2f391696 | Jude Brown | 2010-12-25 19:24:22 +1000

Document wiz-mode scrying toggle.

--------------------------------------------------------------------------------
419203b3d6 | Arxale | 2010-12-25 19:14:34 +1000

Fix shoals open sea background in portals
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
8f04a66574 | Jude Brown | 2010-12-25 19:12:08 +1000

Fix #2400: shadow creatures summoning feature mimics.
There's a hack to make them only temporarily stationary, and this hack
doesn't get picked up with mons_class_is_stationary. Instead, just
ignore all mimics when attempting to find a mobile monster.

--------------------------------------------------------------------------------
65265646d4 | Jude Brown | 2010-12-25 18:56:28 +1000

Fix #2975: crash on loading save after monster cast Malign Gateway.
This dumps the storage of the caster as part of the map marker, and
instead uses, temporarily and for monster-cast MG, the monster's full
name as a non-actor summoner.

Cons: the blame prefix won't work fully for monsters that are summoned
themselves casting Malign Gateway.

Future fix: replace passing of actor into mgen_data with a new struct,
ie "summon_chain", that contains relevant information (caster's name,
serial number, behaviour and own blame vector, for instance).

Increments minor version to 21. Finally, should fix loading of games
currently broken due to this bug.

--------------------------------------------------------------------------------
51c31aabb8 | Darshan Shaligram | 2010-12-25 14:02:16 +0530

Fix maps losing weight and chance when loaded from cache (OG17).

--------------------------------------------------------------------------------
d40d4494ba | Adam Borowski | 2010-12-25 02:42:50 +0100

Make IOOD's caster suffer from Injury Mirror.
It's thematically no different from a Crystal Spear or similar projectile
spells -- you hurl a magically conjured temporary item at a foe.  That it
doesn't get there until a couple of turns later shouldn't matter.

Yredelites can use this to smite those pesky liches, of course.

--------------------------------------------------------------------------------
7b75e1f8f8 | Adam Borowski | 2010-12-25 02:19:09 +0100

Give every monster a globally unique id.

--------------------------------------------------------------------------------
b9e959667c | Adam Borowski | 2010-12-25 01:37:14 +0100

Unify type and id().

--------------------------------------------------------------------------------
b63c04a2f3 | Jude Brown | 2010-12-25 09:47:20 +1000

Hopefully resolve #2865: mupltiple malign gateways.
I'll write a test suite in Lua for this at some point in time.

--------------------------------------------------------------------------------
a124d993e2 | Jude Brown | 2010-12-25 09:47:20 +1000

Allow immediate re-casting of malign gateway (#2991).
The spell itself enforces a period of non-activity through the delay
from the portal opening to the eldritch tentacle actually appearing.
Now, you can cast the spell immediately on the turn/the turn after the
tentacle is severed.

--------------------------------------------------------------------------------
7b165b5951 | Jude Brown | 2010-12-25 09:47:20 +1000

Use coolio's 4-pointed silver star tile. (#2763)
I personally like that it's a four-pointed star, but some people
raised concerns about it on mantis. I'm not sure what their concerns
about it being a four-pointed star was, though; at the very least, it is
better than no tile.

--------------------------------------------------------------------------------
f239748c6e | Raphael Langella | 2010-12-25 00:22:36 +0100

Fix a crash with the monster tab.
Mantis #2884. I've just applied the patch made by lollipop.

--------------------------------------------------------------------------------
587abec326 | MarvintheParanoidAndroid | 2010-12-24 23:32:32 +0530

Rebalance Tloc spell levels
Teleport Other from 4 to 3.
Warp Weapon from 7 to 5.
Dispersal from 7 to 6.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
f4e646046e | MarvintheParanoidAndroid | 2010-12-24 23:23:38 +0530

Reduce Haunt duration
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
dbd6454ca1 | MarvintheParanoidAndroid | 2010-12-24 23:23:19 +0530

Necromancy book tweaks
Lethal Infusion moved from Death to Necromancy.
Excruciating Wounds and Sublimation of Blood moved from Unlife to Death.
Death Channel and Control Undead moved from Necronomicon to Unlife.
Unlife gains Recall.
Borgnjor's Revivification moved from Unlife to Necronomicon.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
5497f9eaba | MarvintheParanoidAndroid | 2010-12-24 23:23:11 +0530

Necromancy level tweaks
Control Undead: 6 to 5.
Borgnjor's Revivification: 5 to 7.
Death Channel: 9 to 8.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
8868fa58c8 | MarvintheParanoidAndroid | 2010-12-24 23:17:04 +0530

Improve some Earth spells
Increase Sandblast to range 2 without stones, range 3 with.
Boost Stone Arrow damage from 2d12 at 50 power to 3d11.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
d84ce67adf | Darshan Shaligram | 2010-12-24 23:17:04 +0530

Call print_error_screen only for actual errors (oops).

--------------------------------------------------------------------------------
216b87e806 | Vsevolod Kozlov | 2010-12-24 20:37:04 +0300

Merge pan_entry and pan_entry_guaranteed.

--------------------------------------------------------------------------------
797f9c5bcd | Vsevolod Kozlov | 2010-12-24 20:37:04 +0300

Merge abyss_entry and abyss_entry_guaranteed.

--------------------------------------------------------------------------------
4791b70c6c | Vsevolod Kozlov | 2010-12-24 20:37:03 +0300

Try to build more rooms in _build_postvault_level regardless of the vault's 
ORIENT.
The effect of the removed code appears mostly negligible from testing, there's
no harm done to levels with non-floating primary vaults, so this is just
simplification.

--------------------------------------------------------------------------------
4ad043f151 | Vsevolod Kozlov | 2010-12-24 20:37:03 +0300

layout_roguey: Simplify make_inner_room.

--------------------------------------------------------------------------------
eef6327f18 | Darshan Shaligram | 2010-12-24 23:03:23 +0530

Tell flex not to generate yyunput, use -Wno-sign-compare to kill level-compiler 
warnings with recent flex and bison.

--------------------------------------------------------------------------------
ee51c36eb9 | Darshan Shaligram | 2010-12-24 22:55:52 +0530

Fix std::string being passed directly to %s format in level compiler.

--------------------------------------------------------------------------------
11fc1d9aeb | Darshan Shaligram | 2010-12-24 22:52:02 +0530

Update canned level compiler with WEIGHT fix.

--------------------------------------------------------------------------------
79ded102a1 | Darshan Shaligram | 2010-12-24 22:49:33 +0530

Fix doubles being passed to %d format strings in level compiler (Zaba).

--------------------------------------------------------------------------------
2cc57573db | Darshan Shaligram | 2010-12-24 22:49:05 +0530

Re-enable warnings for level-compiler lexer and parser.

--------------------------------------------------------------------------------
e506600e33 | Darshan Shaligram | 2010-12-24 22:25:58 +0530

Call print_error_screen from end to void duplication.

--------------------------------------------------------------------------------
53fa0ff3f1 | Darshan Shaligram | 2010-12-24 22:10:38 +0530

Update canned level compiler for depth-constrained CHANCE and WEIGHT changes.

--------------------------------------------------------------------------------
9e6e691946 | Darshan Shaligram | 2010-12-24 22:10:37 +0530

Allow maps to specify different CHANCE and WEIGHT for different depth ranges 
(Zaba).

--------------------------------------------------------------------------------
6a36820c5d | Darshan Shaligram | 2010-12-24 22:10:30 +0530

Don't try to use curses in print_error_screen if curses hasn't been initialised 
yet.

--------------------------------------------------------------------------------
7d44ab2b8c | Charles Otto | 2010-12-24 09:04:42 -0500

Make isolated herd monsters wander less spastically

--------------------------------------------------------------------------------
5bf0089742 | Mu | 2010-12-24 13:47:33 +0000

New sprint map by 78291

--------------------------------------------------------------------------------
122391d31e | Charles Otto | 2010-12-24 08:40:40 -0500

Restructure herd checks
Also, allow monsters to path together from a bit beyond LOS.

--------------------------------------------------------------------------------
9e1ecaeda2 | Adam Borowski | 2010-12-24 12:30:13 +0100

Sheep fires (for greensnark)

--------------------------------------------------------------------------------
1da7669f35 | Adam Borowski | 2010-12-24 12:17:17 +0100

Fix "the spriggan corpse monk".

--------------------------------------------------------------------------------
f15c9f63d8 | Charles Otto | 2010-12-23 22:17:24 -0500

Try to prevent monster herds from wandering apart
A method for trying to keep herd monsters close  together if they
enter BEH_WANDER. This may be too inefficient. Also, groups tend to
stay in one place (at least to some extent), so overall mobility of the
wandering monsters may have decreased (this is not really clear though).

Note: this only affects BEH_WANDER, groups can probably still be split
up easily by pulling them a few at a time.

--------------------------------------------------------------------------------
86c489bc4d | Charles Otto | 2010-12-23 22:14:07 -0500

Introduce a flag for herd monster, apply to sheep
Also add some accessors for the flag in mon-util

--------------------------------------------------------------------------------
e14d5d330f | Charles Otto | 2010-12-23 20:54:55 -0500

If a wandering monster fails to move, try a new wander target
If a wandering monster fails to find a move that approaches its current
target always select a new wander target on the next turn, rather than
relying on the flat 1/20 chance of picking a new target each turn.

--------------------------------------------------------------------------------
f3b5c5cb94 | Raphael Langella | 2010-12-24 01:18:34 +0100

Tiles: fix the startup menu width.
This fix the help wraping needlessly when horizontal res = 800.

--------------------------------------------------------------------------------
140642ffb0 | Raphael Langella | 2010-12-24 01:18:34 +0100

Replace the tile_title_screen option by tile_skip_title.
The title screen is always displayed. The option only controls wether or not
to wait for a key when databases have finished loading.

--------------------------------------------------------------------------------
ae8da757df | Raphael Langella | 2010-12-24 01:18:34 +0100

Don't prompt for quantity when picking up a pile of gold.

--------------------------------------------------------------------------------
6d6ca65265 | David Ploog | 2010-12-23 23:40:08 +0100

Remove an item from saegor's entry vault.
No good items in entry vaults. Some players start scum for everything.

--------------------------------------------------------------------------------
8fd2f83867 | Raphael Langella | 2010-12-23 21:55:57 +0100

Skill menu: reduce the console requirements to 78x24.

--------------------------------------------------------------------------------
aa9f564dec | Raphael Langella | 2010-12-23 18:35:51 +0100

Skill menu: vertically align text with icons.

--------------------------------------------------------------------------------
542ef8ef20 | Raphael Langella | 2010-12-23 18:35:51 +0100

Limit detached monster tab to 3 lines.
Should be more than enough.

--------------------------------------------------------------------------------
3856183b9e | Raphael Langella | 2010-12-23 18:35:51 +0100

Increase tab margin.

--------------------------------------------------------------------------------
6bb017a86a | Vsevolod Kozlov | 2010-12-23 18:39:03 +0300

Use MMT_VAULT instead of FPROP_VAULT, and remove the latter.

--------------------------------------------------------------------------------
a775628f97 | Vsevolod Kozlov | 2010-12-23 17:41:41 +0300

_make_trail: Use a while loop instead of do {} while.

--------------------------------------------------------------------------------
39b11638ea | Vsevolod Kozlov | 2010-12-23 17:41:41 +0300

_make_trail: Turn x_ps/y_ps into coord_def pos.  Also use it instead of 
[xy]_start.

--------------------------------------------------------------------------------
7f37bd8a91 | Vsevolod Kozlov | 2010-12-23 17:41:41 +0300

_make_trail: Turn dir_x/dir_y into a coord_def.

--------------------------------------------------------------------------------
af43cc036a | Vsevolod Kozlov | 2010-12-23 17:41:41 +0300

_make_trail: Pass the beginning/end coordinates in coord_defs.

--------------------------------------------------------------------------------
372a8b39f3 | Vsevolod Kozlov | 2010-12-23 17:41:40 +0300

_make_trail: Factor out some common code into a separate function.

--------------------------------------------------------------------------------
e413ec3891 | Vsevolod Kozlov | 2010-12-23 17:41:40 +0300

_make_trail: Remvoe some bounds checking.
These particular checks are at least partly redundant, given the more
restrictive checks done in the corridor building loop.

Testing shows no obvious changes in the results, so it should be fine.

--------------------------------------------------------------------------------
985b389617 | Vsevolod Kozlov | 2010-12-23 17:41:40 +0300

Clean _make_trail up: remove temp_rand and obsolete comments.

--------------------------------------------------------------------------------
c5c39df8bc | Adam Borowski | 2010-12-23 15:35:23 +0100

Split lemuel_zombie_altar into yred and kiku variants.
It could claim to be an overflow for yred but actually generate an altar
to kiku, or the other way around.  The bug could be fixed by keeping
persistent data, but let's play it safe.

--------------------------------------------------------------------------------
c900f87e9a | Eino Keskitalo | 2010-12-23 15:30:39 +0200

Add two entry vaults from Saegor. (#2992)

--------------------------------------------------------------------------------
4a84de9cd2 | Adam Borowski | 2010-12-23 13:52:49 +0100

Prevent randomly teleporting into the Slime:6 loot chambers.

--------------------------------------------------------------------------------
6ef2568eb1 | Eino Keskitalo | 2010-12-23 13:34:36 +0200

Revert "Trampling for yaks and death yaks."
This reverts commit 44e93c5fb84afd4bbf14cc0eb7df4499e47fac2b.

Plan for yaks (and others) on crd mailing list sounds good so that I now agree 
that this is not the way to go.

--------------------------------------------------------------------------------
062e97cc45 | Eino Keskitalo | 2010-12-23 13:33:01 +0200

Remove another poor minivault of mine.

--------------------------------------------------------------------------------
cf2de67efe | Eino Keskitalo | 2010-12-23 13:33:01 +0200

List the zotdef folder.

--------------------------------------------------------------------------------
3c78c003ed | Raphael Langella | 2010-12-23 00:03:43 +0100

Detach monster tab.

--------------------------------------------------------------------------------
0089ed75cb | Adam Borowski | 2010-12-22 23:39:15 +0100

Add the generated FAQ.html to git ignores.

--------------------------------------------------------------------------------
e157f0700d | Adam Borowski | 2010-12-22 23:36:10 +0100

Run checkwhite on the text files.

--------------------------------------------------------------------------------
8aaf6c97a9 | Adam Borowski | 2010-12-22 23:36:10 +0100

Generate the HTMLized FAQ on the fly.
Any change to either the source file or the converter results in massive
diffs for no good reason -- especially if there's some mishap involving
CRs like what happened recently.

--------------------------------------------------------------------------------
cc93780971 | Adam Borowski | 2010-12-22 23:36:10 +0100

Axe an obsolete script for packaging builds from SVN.

--------------------------------------------------------------------------------
ca0cbe81cf | Adam Borowski | 2010-12-22 23:36:09 +0100

Manually de-tabify init.txt, checkwhite is too simplicistic here.

--------------------------------------------------------------------------------
f86c1a62d8 | Adam Borowski | 2010-12-22 23:36:09 +0100

Axe irrelevant headers from docs that originated as mails.
Details about SF's inner mail configuration are so immensely important...

--------------------------------------------------------------------------------
0c96ff4fe9 | Adam Borowski | 2010-12-22 23:36:09 +0100

Adjust the list of file types exempted by checkwhite.

--------------------------------------------------------------------------------
39c929f09a | Adam Borowski | 2010-12-22 23:36:09 +0100

Automated whitespace fixes.

--------------------------------------------------------------------------------
eba9144faa | Raphael Langella | 2010-12-22 21:53:59 +0100

Adjust the tab margin.

--------------------------------------------------------------------------------
ad1dc564d1 | Raphael Langella | 2010-12-22 21:53:59 +0100

Fix spell tab not properly updated when learning or forgetting a spell.

--------------------------------------------------------------------------------
a7cba1f543 | Raphael Langella | 2010-12-22 21:53:59 +0100

Rename m_region_tsp to m_region_tab_spl

--------------------------------------------------------------------------------
0160d4220a | Raphael Langella | 2010-12-22 21:53:59 +0100

Limit spell tab size to known spells.

--------------------------------------------------------------------------------
d853c1fc54 | Raphael Langella | 2010-12-22 21:53:59 +0100

Fix tab icons position when one is disabled.

--------------------------------------------------------------------------------
f9cbe28282 | Raphael Langella | 2010-12-22 21:53:59 +0100

Disabling active tab switches to next one.

--------------------------------------------------------------------------------
afbca1e196 | Raphael Langella | 2010-12-22 21:53:59 +0100

Tiles: update the stats region when learning or forgetting the first spell.

--------------------------------------------------------------------------------
d55896be76 | Raphael Langella | 2010-12-22 21:53:59 +0100

Fix GridRegion::on_resize.

--------------------------------------------------------------------------------
d88345cc07 | Raphael Langella | 2010-12-22 21:53:59 +0100

Move enabled check in TabbedRegion::on_resize()

--------------------------------------------------------------------------------
39a90de88a | Raphael Langella | 2010-12-22 21:53:59 +0100

Don't detach spell tab if no spell known.

--------------------------------------------------------------------------------
2037e21d11 | Raphael Langella | 2010-12-22 21:53:59 +0100

Fix detach spell tab.

--------------------------------------------------------------------------------
6b358a346d | Raphael Langella | 2010-12-22 21:53:59 +0100

Add methods to disable tabs in TabbedRegion.

--------------------------------------------------------------------------------
1002d34136 | Raphael Langella | 2010-12-22 21:53:59 +0100

Add a TabbedRegion::invalid_index method.

--------------------------------------------------------------------------------
76ac770669 | Raphael Langella | 2010-12-22 21:53:59 +0100

Detach spell tab.

--------------------------------------------------------------------------------
c8e1d5cb24 | Vsevolod Kozlov | 2010-12-22 21:50:08 +0300

Replace downstairs with Zot entrances in _fixup_branch_stairs.

--------------------------------------------------------------------------------
2d27ad75ef | Vsevolod Kozlov | 2010-12-22 21:34:59 +0300

Simplify code that replaces downstairs with Zot entrances.

--------------------------------------------------------------------------------
8ce788680d | Vsevolod Kozlov | 2010-12-22 21:30:50 +0300

Use vaults to place Abyss entrances in D.

--------------------------------------------------------------------------------
dd47daa7ee | Vsevolod Kozlov | 2010-12-22 21:19:08 +0300

Use vaults to place Pandemonium entrances in D.
This might seem rather ugly, but there's no need to hardcode things that can be
adequately implemented using existing reusable mechanisms.  Yes, the vault
definitions are pretty lengthy, but simple and readable, too.  A way to have
different chances for different depths would help here.

--------------------------------------------------------------------------------
39a85a2414 | Vsevolod Kozlov | 2010-12-22 20:54:07 +0300

Replace hardcoded placement of a hell entrance on D:21-27 with a vault.

--------------------------------------------------------------------------------
fefb172c2b | Vsevolod Kozlov | 2010-12-22 20:15:14 +0300

Rename _place_portal_vault to _place_vault_by_tag.
It has nothing to do with portal vaults.

--------------------------------------------------------------------------------
9fba662f54 | Vsevolod Kozlov | 2010-12-22 20:05:47 +0300

Remove _random_portal_vault.
It's trivial, used only in one place, and its name is also rather confusing.

--------------------------------------------------------------------------------
dea84245cc | Vsevolod Kozlov | 2010-12-22 19:55:29 +0300

Use adjacent_iterator in _dgn_fill_zone.

--------------------------------------------------------------------------------
e38cdb0b3e | Vsevolod Kozlov | 2010-12-22 19:40:57 +0300

Use adjacent_iterator in _has_no_floor_neighbours.

--------------------------------------------------------------------------------
546753cc94 | Vsevolod Kozlov | 2010-12-22 14:39:54 +0300

Use rectangle_iterator and adjacent_iterator in dgn_floor_halo.

--------------------------------------------------------------------------------
e314beca87 | Vsevolod Kozlov | 2010-12-22 14:39:27 +0300

Use rectangle_iterator in dgn_fixup_stairs.

--------------------------------------------------------------------------------
b2e1bb126b | Vsevolod Kozlov | 2010-12-22 14:03:40 +0300

Use x_chance_in_y in layout_roguey like it used to be in the original code.

--------------------------------------------------------------------------------
043dd05519 | Vsevolod Kozlov | 2010-12-22 13:43:37 +0300

Use x_chance_in_y instead of temp_rand in layout_city.

--------------------------------------------------------------------------------
4418d4444f | Vsevolod Kozlov | 2010-12-22 13:43:13 +0300

Add x_chance_in_y to the Lua API.

--------------------------------------------------------------------------------
c78b397f55 | Vsevolod Kozlov | 2010-12-22 11:53:46 +0300

Fix whitespace errors in .des files.

--------------------------------------------------------------------------------
946e3aa5f3 | Vsevolod Kozlov | 2010-12-22 11:53:10 +0300

Remove OrthCompass, as it is not used.

--------------------------------------------------------------------------------
77af395cf0 | Vsevolod Kozlov | 2010-12-22 11:53:09 +0300

Use orth_adjacent_iterator in _connect_spotty.

--------------------------------------------------------------------------------
99cc443b3e | Vsevolod Kozlov | 2010-12-22 11:53:09 +0300

Use orth_adjacent_iterator in some more cases.

--------------------------------------------------------------------------------
93b9f7eddb | Vsevolod Kozlov | 2010-12-22 11:53:09 +0300

Add orth_adjacent_iterator, and use it instead of using radius_iterator 
directly.

--------------------------------------------------------------------------------
d800146e6b | David Ploog | 2010-12-22 09:17:26 +0100

Minmay's improve coiled Snake end.
Mantis #2284.

--------------------------------------------------------------------------------
e8b7b7324f | David Ploog | 2010-12-22 09:04:14 +0100

New Lom Lobon map by st.
He also tweaked his old ones.

--------------------------------------------------------------------------------
a264ae8ec5 | David Ploog | 2010-12-22 01:15:46 +0100

More minivaults by minmay.

--------------------------------------------------------------------------------
436931cdf8 | David Ploog | 2010-12-22 01:15:45 +0100

More floating vaults by minmay.

--------------------------------------------------------------------------------
e6d6f54438 | David Ploog | 2010-12-22 01:15:45 +0100

Floating vaults by minmay.

--------------------------------------------------------------------------------
0e4a2ca61a | David Ploog | 2010-12-22 01:15:45 +0100

Remove a number of temple maps.
Those were not as good as the ones we have, in my opinion.

--------------------------------------------------------------------------------
be52bead19 | David Ploog | 2010-12-22 01:15:45 +0100

Temple entries and maps by minmay.
Also sorted temple maps by total weight per theme and shuffled them
around. Minmay also added some nice overflow altars, which should
probably go to altar.des at some point.

--------------------------------------------------------------------------------
e7fe1cac34 | David Ploog | 2010-12-22 01:15:45 +0100

Orc vaults by minmay.

--------------------------------------------------------------------------------
1ebfaefba8 | David Ploog | 2010-12-22 01:15:45 +0100

New Lair vaults by minmay.
This excitingly includes a serial oklob vault, so rejoice.

--------------------------------------------------------------------------------
3c92bb792c | Johanna Ploog | 2010-12-21 22:48:46 +0100

Invert the order monsters, clouds and items are checked for drawing.
Since these use separate map_knowledge properties, this doesn't
affect the console version, but it *does* reduce the number of
comparisons necessary for Tiles. Deciding on the appropriate item
tile and flags is pointless if they get overdrawn by clouds and
monsters anyway.

--------------------------------------------------------------------------------
dd486c4486 | Vsevolod Kozlov | 2010-12-21 21:59:12 +0300

Simplify odds in layout_city by using crawl.random_element.
I just hope I didn't break them too heavily.

--------------------------------------------------------------------------------
9f26b24c91 | Vsevolod Kozlov | 2010-12-21 21:25:44 +0300

Make layout_misc (_plan_5) not so ridiculously rare.
After the tweaking I have done, it seems to generate levels of passable
quality.  Also, it needs more testing.  So make it as rare as other _plan
layouts (aside from _plan_3).

--------------------------------------------------------------------------------
6848dfd900 | Vsevolod Kozlov | 2010-12-21 21:25:05 +0300

More work on layout_misc: guarantee that spotty_map, if done, has boxy = true.
Non-boxy spottiness looks unfitting.  Also clean the code up a little.

--------------------------------------------------------------------------------
197d540be9 | Vsevolod Kozlov | 2010-12-21 20:55:38 +0300

[3015] Modify _plan_5 so it generates saner levels.
Changes are: a higher number of corridors, and new corridors always start at the
previous one's end point.

All this is probably not optimal, but the resulting levels seem to come out much
more playable even with worst luck.

--------------------------------------------------------------------------------
529399795d | Vsevolod Kozlov | 2010-12-21 18:24:48 +0300

Use rectangle_iterator and radius_iterator in _hide_doors.

--------------------------------------------------------------------------------
09e712f468 | Vsevolod Kozlov | 2010-12-21 18:24:48 +0300

Use rectangle_iterator and radius_iterator in _check_doors.

--------------------------------------------------------------------------------
54b118713c | Vsevolod Kozlov | 2010-12-21 18:24:48 +0300

Use rectangle_iterator and adjacent_iterator in _prepare_water.

--------------------------------------------------------------------------------
16c39ca678 | Adam Borowski | 2010-12-21 15:33:56 +0100

For non-god armour acquirement, prefer not yet seen base types as well.

--------------------------------------------------------------------------------
4dd0e4622d | Adam Borowski | 2010-12-21 14:39:03 +0100

Adjust plate acquirement (scrolls/genie) for dodging changes from 0.6.
Before, a heavy armour character didn't get any Dodging at all.  Nowadays,
my ghoul after Lair/Orc/Hive has Armour 11, Dodging 10, Spellcasting 1,
after running in a plate mail since early levels.  The old formula and new
skills would recognize that as "wants a scale".

The new one will go for a plate 72% of the time with these skills, if
the body armour slot is selected.

(Also, should we up the chances of crystal?  It's currently 1/4 of plates,
ie, only 3% total.)

--------------------------------------------------------------------------------
44e93c5fb8 | Eino Keskitalo | 2010-12-21 15:26:06 +0200

Trampling for yaks and death yaks.
Increase the size of yaks (to BIG) and death yaks (to GIANT). Make their attack 
trampling.

I think the trampling is a great feature for yaks. They are the last of the 
great archetypal boring monsters of Crawl (the others being slime creatures and 
ugly things). Being pushed around by herds of yaks should be good.

Also, since yaks are only BIG, the large species won't be pushed around by 
them, which gives them a nice small perk. Could've also not increased yak size, 
so that only small races would've been pushed around by regular yaks, but I'd 
rather give the regular yaks something that is visible against most character 
builds.

Now death yaks and elephants are similar again. I'm in favour of taking out 
elephants from the normal generation again, but that's another decision. It's 
ironic that yaks get the feature that was implemented to differentiate 
elephants from them, but I really think it's spot on for them and if it comes 
choosing between yaks and elephants, yaks are an important part of Crawl legacy 
while the elephants are a new addition. I mean, yaktaurs, maaan.

--------------------------------------------------------------------------------
956b295287 | Adam Borowski | 2010-12-21 13:55:56 +0100

Allow acquirement of non-regular shields, weighted by skills.

--------------------------------------------------------------------------------
a08af7ca05 | Adam Borowski | 2010-12-21 13:55:55 +0100

Don't consider over-expensive shop items as "seen" for acquirement purposes.
There's a hack for items on display behind glass as well, a number of vaults
have those.  It works only for one-square rooms since bigger ones are meant
to be controlled-teleported into.

--------------------------------------------------------------------------------
537098329a | Adam Borowski | 2010-12-21 13:55:55 +0100

Make the redundant armour check consider things seen rather than worn.

--------------------------------------------------------------------------------
e90fb1050b | Adam Borowski | 2010-12-21 13:55:55 +0100

Fix acquirement hardly ever generating crystal plates and similar stuff.
All armours with no brand were considered "plain" even if they never can get
a brand in the first place -- and that results in giving -1 plain hats
(unfilled slot) or retrying.

Note that this may result in an increase of dragon armours, which suffered
from this bug as well.

--------------------------------------------------------------------------------
b42527cd5a | Vsevolod Kozlov | 2010-12-21 15:05:35 +0300

Don't apply could effects twice to the player.

--------------------------------------------------------------------------------
144710e035 | Vsevolod Kozlov | 2010-12-21 14:40:11 +0300

Remove #include "flood_find.h" from files that don't need it.

--------------------------------------------------------------------------------
cbc649f05e | Darshan Shaligram | 2010-12-21 08:23:15 +0530

Fix monsters not being disturbed by clouds unless damaged by the cloud (oops).

--------------------------------------------------------------------------------
44694af91e | Darshan Shaligram | 2010-12-21 08:05:59 +0530

[3010] Unify cloud damage routines for player and monsters.
This is not an exact translation of the old code; in the interest of
compactness I've tossed some minor details like elemental cloud vulnerability
damage rolls being independent of the base damage rolls (resist scaling is now
applied through the standard resist_adjust_damage)

This also fixes Mantis 3010: AC was being applied to cloud damage only if you
did not have the appropriate elemental resistance.

--------------------------------------------------------------------------------
e63b6e7162 | Darshan Shaligram | 2010-12-21 07:10:35 +0530

Don't duplicate no-items-here check for abyss vaults.

--------------------------------------------------------------------------------
94acdcbae3 | Darshan Shaligram | 2010-12-21 07:10:35 +0530

Use MAPGEN_BORDER instead of magic number 2 for minivault border clearance, use 
is_minivault() instead of checking for the tag.

--------------------------------------------------------------------------------
2de2d4008d | Eino Keskitalo | 2010-12-20 22:51:04 +0200

minmay's entries for the Lair sub-branches. (#2976)

--------------------------------------------------------------------------------
baaceb34bc | Eino Keskitalo | 2010-12-20 22:51:04 +0200

Enchanted forest ending for Lair from minmay. (#2585)
I'm not entirely sure if it's the right difficulty, but we'll probably see!

--------------------------------------------------------------------------------
ceccc9b0d0 | Johanna Ploog | 2010-12-20 21:06:45 +0100

Fix a miniscule typo in the FAQ.

--------------------------------------------------------------------------------
bddabb357b | Johanna Ploog | 2010-12-20 21:05:52 +0100

Add the sky beast corpse tile.

--------------------------------------------------------------------------------
4231e17bdf | Johanna Ploog | 2010-12-20 20:20:22 +0100

Update FAQ.html. (Also on the website.)

--------------------------------------------------------------------------------
19b6ccc0db | Eino Keskitalo | 2010-12-20 21:11:59 +0200

Ten classical large vaults from minmay. (#2545)

--------------------------------------------------------------------------------
ab04b9fa1f | Eino Keskitalo | 2010-12-20 20:52:15 +0200

Don't generate the gnoll camp in city levels (looks bad). Also, layout_spotty 
looks incorrect as a layout_foo tag.

--------------------------------------------------------------------------------
2583e1529b | Eino Keskitalo | 2010-12-20 15:26:40 +0200

Move some floating vaults to the right file.

--------------------------------------------------------------------------------
e23cdd317f | Vsevolod Kozlov | 2010-12-20 16:23:08 +0300

Remove mini_float from vaults that I'm pretty sure don't need it.
mini_float only affects things when a minivault that has it has no explicit
exits specified.  An explicit exit is either a @ anywhere on the map, or a + or
= on its border.

--------------------------------------------------------------------------------
b61f770d3d | Vsevolod Kozlov | 2010-12-20 15:50:38 +0300

Get rid of can_create_vault.
All cases where it is checked for, use_random_maps is also checked, so we can
just use that everywhere.

--------------------------------------------------------------------------------
6e3a338eca | Vsevolod Kozlov | 2010-12-20 15:26:26 +0300

Remove parameters from place_minivaults, as they are never used.

--------------------------------------------------------------------------------
bfaf4c746e | Johanna Ploog | 2010-12-20 02:07:07 +0100

Modify tentacle tiles to align correctly along diagonals.

--------------------------------------------------------------------------------
130947e00a | Johanna Ploog | 2010-12-20 02:07:04 +0100

Add and use psyshvl's tentacle overlay tiles.
I've added them via background flags, which seems odd at first, but
works rather well.

Krakens look much better now, though the angles still seem a bit
sharp sometimes and would benefit from further tweaking.

--------------------------------------------------------------------------------
d0af1dae6d | Johanna Ploog | 2010-12-20 02:07:01 +0100

Reorder some tile background flags.
This frees up one bit needed for the kraken overlays.
May cause wonkiness in remembered squares out of sight.

--------------------------------------------------------------------------------
976909c15e | Johanna Ploog | 2010-12-20 02:06:58 +0100

Update the FAQ on questions of Mantis, Tavern, etc.

--------------------------------------------------------------------------------
a991ae124d | Mu | 2010-12-19 18:59:29 +0000

Adjust evilmike_entry_run_for_it slightly.
Mummies can open doors. I have therefore removed the mummy.

--------------------------------------------------------------------------------
4f4238f500 | Vsevolod Kozlov | 2010-12-19 21:55:27 +0300

Use adjacent_iterator in _map_feat_is_on_edge.

--------------------------------------------------------------------------------
eaddd3013e | Vsevolod Kozlov | 2010-12-19 21:55:26 +0300

Change _grid_needs_exit so it takes a coord_def instead of two ints.

--------------------------------------------------------------------------------
14cc1b4874 | Vsevolod Kozlov | 2010-12-19 21:55:26 +0300

Make some more things use rectangle_iterator.

--------------------------------------------------------------------------------
a60e161757 | Adam Borowski | 2010-12-19 16:45:22 +0100

Stop TSO from considering monsters with a Heal Other spell to be holies.

--------------------------------------------------------------------------------
e605019262 | Eino Keskitalo | 2010-12-19 17:36:34 +0200

The gnoll camp serial vault.

--------------------------------------------------------------------------------
f3e568d8e6 | Eino Keskitalo | 2010-12-19 16:45:45 +0200

Remove the gnoll camp minivaults in favour of the gnoll camp serial vault.

--------------------------------------------------------------------------------
a616dde3c2 | Eino Keskitalo | 2010-12-19 16:08:00 +0200

Connectivity fixes to mines2_lemuel and mines3_lemuel (Zaba).
These vaults used to generate unconnected spots of floor inside rock. 
mines3_lemuel was often disconnected. Now the random floors are always entry 
points, which guarantees they get connected to the rest of the level. I assume 
this is (at least close to) what was intended. Now these vaults are usually not 
embedded in wall, but generated in open space instead. This works well esp. 
with the secret doors in my opinion.

--------------------------------------------------------------------------------
7ebbcdc777 | Eino Keskitalo | 2010-12-19 16:08:00 +0200

Add luniq and extra to vim/des highlighting.

--------------------------------------------------------------------------------
418bc0fe55 | Vsevolod Kozlov | 2010-12-19 16:17:53 +0300

Use vault_placement::connect() instead of (dgn)_dig_vault_loose.

--------------------------------------------------------------------------------
d9a2bb8132 | Vsevolod Kozlov | 2010-12-19 16:08:44 +0300

Use place.exits directly in _build_vault_impl.
target_connections as a reference to it doesn't seem to make much sense.

--------------------------------------------------------------------------------
f9d6f10206 | Vsevolod Kozlov | 2010-12-19 15:53:28 +0300

Convert _connect_vault to vault_placement::connect with minor changes.

--------------------------------------------------------------------------------
2aabf53d53 | Vsevolod Kozlov | 2010-12-19 12:05:47 +0300

Remove some no longer used functions.

--------------------------------------------------------------------------------
f78a57daf6 | Vsevolod Kozlov | 2010-12-19 11:58:47 +0300

Don't use _external_connection_points in _connect_vault.
Testing shows that it is necessary for neither _connect_vault_exit nor
_connect_spotty to function properly.

--------------------------------------------------------------------------------
698c6a8a75 | Vsevolod Kozlov | 2010-12-19 11:39:32 +0300

Remove an unused argument from _dig_vault_loose.

--------------------------------------------------------------------------------
613a21cb2a | Johanna Ploog | 2010-12-18 23:15:07 +0100

Add Centaur/Naga variant lich form tiles, as suggested by psyshvl.
Currently, the small quadruped skeleton is used for Felid Lichform,
but obviously this is only a placeholder.

--------------------------------------------------------------------------------
0aa92142c3 | Vsevolod Kozlov | 2010-12-18 19:22:01 +0300

Fix a case of inverted map mask check in _connect_spotty.

--------------------------------------------------------------------------------
7611701512 | Vsevolod Kozlov | 2010-12-18 19:18:16 +0300

Rename 'unforbidden' to 'map_masked' and invert logic accordingly.
Inverted logic right in the function name is rather confusing.

--------------------------------------------------------------------------------
62cfaebcd7 | Vsevolod Kozlov | 2010-12-18 18:24:07 +0300

Remove dgn_Vault_Excavatable_Feats, as it is no longer used.

--------------------------------------------------------------------------------
efd6008498 | Vsevolod Kozlov | 2010-12-18 18:23:18 +0300

Make _connect_vault_exit check for whether the target point is in bounds.
Also remove a harmless dprf that I have accidentally left in.

--------------------------------------------------------------------------------
d2ab2ef026 | Johanna Ploog | 2010-12-18 14:50:20 +0100

Fix #3001: Player drawn on top of large monster tiles.

--------------------------------------------------------------------------------
ece20205d2 | Vsevolod Kozlov | 2010-12-18 16:40:05 +0300

Remove some no longer used functions.

--------------------------------------------------------------------------------
eab1f320bc | Vsevolod Kozlov | 2010-12-18 16:38:36 +0300

Use flood_find to connect primary and mini vaults.
This can probably be improved upon, but seems to work pretty well.

--------------------------------------------------------------------------------
6db22d69a4 | Vsevolod Kozlov | 2010-12-18 16:34:09 +0300

flood_find: Add flags that tell it to avoid searching in vaults, and to check 
traversable features.
This is hacky.  At some point in the future, flood_find should be turned into an
interator, which would let one do such checks right where one uses it in the
code, instead of piling ugly flags into the class.

--------------------------------------------------------------------------------
e5001fba77 | Adam Borowski | 2010-12-18 12:42:31 +0100

Stop lua from adding [string "%s"] to error messages.  (greensnark)

--------------------------------------------------------------------------------
d562ab002f | Adam Borowski | 2010-12-18 12:11:34 +0100

Get rid of one last use of fstream.
The database files are assumed to be always in UTF-8.  This can make editing
them harder on Windows (some editors do cope, even notepad), but assuming the
system's locale would break running directly from git without installing.

Current uses are merely: (all in quotes.txt)
* "Alain René"
* "Rabbi Löw"
* "Öland"
* "Min son på galejan"
* typographical apostrophes
but it's likely it will be a bigger issue in the future (and if we ever do
translations, a lot bigger).

--------------------------------------------------------------------------------
aceb028711 | Vsevolod Kozlov | 2010-12-18 13:49:18 +0300

Simplify finding of exits for float vaults.
_map_feat_is_on_edge seems to cover all the interesting cases.  Also, I have
tested this and nothing has been observably broken.

--------------------------------------------------------------------------------
8b7ed2da51 | Vsevolod Kozlov | 2010-12-18 13:48:21 +0300

Check bounds in map_def::in_map.

--------------------------------------------------------------------------------
fb45791812 | Raphael Langella | 2010-12-18 01:29:31 +0100

Skill menu: fix the size of help and footer when using skill icons.

--------------------------------------------------------------------------------
6c88d1577e | Raphael Langella | 2010-12-18 00:34:03 +0100

Adjust the window height minimum for skill icons.

--------------------------------------------------------------------------------
dec72efede | Raphael Langella | 2010-12-17 23:38:39 +0100

Fix the colouring of new level preview when reskilling.

--------------------------------------------------------------------------------
def30fb4d1 | Raphael Langella | 2010-12-17 23:38:39 +0100

Fix reskilling from fighting reducing your maxHP to 0 or below.
Mantis 2995. If fighting is at the limit, you can still select it as the source
of skill transfer, and the preview shows that the level won't change. The
transfer will end as soon as it will try to transfer points and will have no
more consequence than costing piety. This is such a far fetched case that the
fix is good enough.

--------------------------------------------------------------------------------
4406735778 | Raphael Langella | 2010-12-17 23:38:39 +0100

Fix disabled skill not turning yellow when reaching level 27.
Mantis 2993.

--------------------------------------------------------------------------------
b8c15438d0 | Vsevolod Kozlov | 2010-12-17 22:14:30 +0300

Slightly tweak map placement dprf.

--------------------------------------------------------------------------------
09764e7e4d | Vsevolod Kozlov | 2010-12-17 22:12:05 +0300

Remove the 'Wall builder' dprf.
The information it presents is provided by level_build_method anyway.

--------------------------------------------------------------------------------
c116d8d8ee | Vsevolod Kozlov | 2010-12-17 22:09:37 +0300

Make _build_rooms append 'build_rooms' to the level build method.

--------------------------------------------------------------------------------
f1c0f69ea5 | Johanna Ploog | 2010-12-17 15:36:14 +0100

Draw blood overlay beneath non-wall dungeon feature tiles.

--------------------------------------------------------------------------------
8ebc64588c | Eino Keskitalo | 2010-12-17 16:30:56 +0200

Minotaur vaults with stone walls confuse labyrinth explorers. Replacing the 
stone with green crystal. (Most walls will still be metal, as before.)

--------------------------------------------------------------------------------
ceaa2788e2 | Johanna Ploog | 2010-12-17 13:55:31 +0100

Document g/, split in the in-game command help.

--------------------------------------------------------------------------------
4e4b1a4ba1 | Johanna Ploog | 2010-12-17 13:55:30 +0100

For single items of quantity > 1 'g' now prompts for an amount.
This behaviour is already possible in Tiles (via mouseclick), so it
should also work in the console version.

If you'd like to switch 'g' and ',' use the bindkey option:

bindkey = [g] CMD_PICKUP
bindkey = [,] CMD_PICKUP_QUANTITY

For multi-item stacks, the two commands are interchangeable and work
as before.

--------------------------------------------------------------------------------
bcae4a5cc4 | Johanna Ploog | 2010-12-17 13:55:28 +0100

Spacing fixes.

--------------------------------------------------------------------------------
bbc1968de4 | Adam Borowski | 2010-12-17 13:25:19 +0100

Let Chapayev spell his character's name "Чапаев".

--------------------------------------------------------------------------------
a1ee6baa45 | Vsevolod Kozlov | 2010-12-17 15:00:11 +0300

Don't do vault connection in _build_rooms.
_dig_vault_loose, which is always called after it, connects the vault anyway.
The results are probably different, but I saw no (gameplay-affecting) difference
in my testing.

--------------------------------------------------------------------------------
ab17785371 | Vsevolod Kozlov | 2010-12-17 14:42:47 +0300

iMake _build_rooms respect MMT_VAULT instead of a list of excluded zones.

--------------------------------------------------------------------------------
1532d76bd1 | Vsevolod Kozlov | 2010-12-17 14:38:02 +0300

Make _plan_4 look at map mask for MMT_VAULT instead of a list of exclusion 
zones.

--------------------------------------------------------------------------------
b6d532090f | Adam Borowski | 2010-12-17 09:59:29 +0100

Make strwidth() actually do what it's supposed to.

--------------------------------------------------------------------------------
e5e08161e7 | Adam Borowski | 2010-12-17 09:59:29 +0100

Handle fixed-width characters of width 2 in tiles.

--------------------------------------------------------------------------------
5600077b0b | Adam Borowski | 2010-12-17 09:59:29 +0100

Update the table of combining characters for Unicode 6.0

--------------------------------------------------------------------------------
4732151a9c | Adam Borowski | 2010-12-17 09:59:29 +0100

Add Markus Kuhn's wcwidth().  All libcs but Windows ship it already...
I had to change wchar_t to ucs_t, as Windows cripples it to 16 bits,
making it impossible to support most of Unicode.  32 bits will allow
proper behaviour at least in tiles -- and we might replace the win32
console as well.

--------------------------------------------------------------------------------
8d74ffd849 | Adam Borowski | 2010-12-17 09:58:50 +0100

Set the license info to what we'll probably end up with.
I need to add an outside file with a different license, and this is
forbidden by the current old-Bison crap we have, even for extremely
permissive licenses.  We already are in breach by including mt19937 and
stdint.h -- both under BSD3 which is not the "Crawl license".  That's the
reason why we need GPL, BSD or anything which allows "compatible licenses".

Fortunately, the ongoing relicensing effort is planned to complete before
0.8, in the same time frame as this branch.  Thus, I'm already marking it
GPL since the current license is no good.

This means the branch is undistributable until we get this finished.

--------------------------------------------------------------------------------
476a0770e8 | Johanna Ploog | 2010-12-16 23:31:41 +0100

Split icons out from main.png. Fixes #2981.
This should also allow us to draw clouds beneath monsters.

--------------------------------------------------------------------------------
0347585d53 | Adam Borowski | 2010-12-16 23:28:31 +0100

Someone who's flying won't be "waist-deep" in water.

--------------------------------------------------------------------------------
4337bfb31e | Adam Borowski | 2010-12-16 23:24:46 +0100

Ignore DDoor if maxhp goes to 0 or below.
This would require intentional scheming, but some folks enjoy such stunts.

--------------------------------------------------------------------------------
664bb47bc0 | Adam Borowski | 2010-12-16 23:14:34 +0100

Kill the player instantly if drained below 0 maxhp (possible with Borgnjor's).

--------------------------------------------------------------------------------
84acb90f2b | Adam Borowski | 2010-12-16 23:08:40 +0100

Ensure Death's Door leaves you at least 1 hp.

--------------------------------------------------------------------------------
e49b743447 | Raphael Langella | 2010-12-16 21:47:50 +0100

Skill menu: fix title line not updated on display change.

--------------------------------------------------------------------------------
1974079064 | Raphael Langella | 2010-12-16 21:47:50 +0100

Add a find_item_by_hotkey() function to MenuObject.
Calling select_item_by_hotkey() and then deselecting the item was a bit hackish.

--------------------------------------------------------------------------------
6fc83932d1 | Raphael Langella | 2010-12-16 21:47:50 +0100

Make the skill menu respect the tile_menu_icons option.

--------------------------------------------------------------------------------
863fc174ef | Raphael Langella | 2010-12-16 21:47:50 +0100

Skill menu: Add methods to manipulate flags and replace a boolean by a flag.

--------------------------------------------------------------------------------
cdf3c0bdbb | Raphael Langella | 2010-12-16 21:46:59 +0100

Refuse to start skill menu if terminal is smaller than 80x24

--------------------------------------------------------------------------------
6e0a263a8f | Eino Keskitalo | 2010-12-16 22:07:36 +0200

Spell sergeant correctly.

--------------------------------------------------------------------------------
c38382a74c | Eino Keskitalo | 2010-12-16 21:43:17 +0200

In the small gnoll camp vaults, make the gnoll "seargeants" actually called 
such with name_suffix.

--------------------------------------------------------------------------------
14faef600b | Eino Keskitalo | 2010-12-16 21:43:17 +0200

Remove eino_medium_gnoll_camp.
It has two screenfulls of hard to parse SUBSTs followed by this tiny, 
unspectacular map. I'll try to come up with a gnoll camp themed serial vault, 
and hopefully the results will be better.

--------------------------------------------------------------------------------
3008ad596c | Eino Keskitalo | 2010-12-16 21:43:17 +0200

Clean up some notes left in a map.

--------------------------------------------------------------------------------
001b08e345 | Vsevolod Kozlov | 2010-12-16 21:47:06 +0300

Simplify odds for roguey_level/city_level/plan_4 in _builder_normal.
This alters the chances of those layouts to be used, but not dramatically.
And hey, a little more variety can't hurt.

--------------------------------------------------------------------------------
40f7ddd302 | Vsevolod Kozlov | 2010-12-16 21:13:09 +0300

Simplify _builder_normal somewhat.

--------------------------------------------------------------------------------
3c106f3fe7 | Vsevolod Kozlov | 2010-12-16 20:41:05 +0300

Use random_choose_weighted in _box_room.

--------------------------------------------------------------------------------
478a3e55e6 | Vsevolod Kozlov | 2010-12-16 20:28:33 +0300

Turn the curse skull placement special case of Crypt into minivaults.
The two vaults are the same, apart from the different chance.  This is meant to
reproduce the original behaviour.

--------------------------------------------------------------------------------
763ee6df70 | Vsevolod Kozlov | 2010-12-16 19:17:36 +0300

Remove a vault placement dprf from vault_main.
In most cases, it is not very informational: pos is often not set to anything,
and the message from _build_vault_impl comes afterwards with much more
information.

In case of dgn.resolve_map, it is also misleading, as that is not generating a
level.

--------------------------------------------------------------------------------
cb38198de7 | Adam Borowski | 2010-12-16 16:53:04 +0100

Allow lua files with a BOM -- including Windowsish 16 bit encodings.
REGRESSION: errors say:
Lua error: [string "/home/kilobyte/crawl/crawl-ref/source/meow"]:2: moo
rather than
Lua error: /home/kilobyte/crawl-0.7/crawl-ref/source/meow:2: moo

--------------------------------------------------------------------------------
ad3bbac308 | Adam Borowski | 2010-12-16 16:53:03 +0100

Rename TextFileReader to FileLineInput I didn't notice, use it for config files.

--------------------------------------------------------------------------------
c182b84661 | Adam Borowski | 2010-12-16 16:53:03 +0100

Fix an use of fstream, allow macro files to be in dirs with non-ASCII paths.
It also allows using non-ASCII characters inside, but save for arguments to
lua functions, this is not really meaningful.

--------------------------------------------------------------------------------
64ca3ade49 | Adam Borowski | 2010-12-16 16:53:03 +0100

A reader for Windows-style BOMmed files.

--------------------------------------------------------------------------------
851cdeb3d2 | Adam Borowski | 2010-12-16 16:53:03 +0100

Translate charsets for everything written to the char dump file.

--------------------------------------------------------------------------------
7642fc171f | Adam Borowski | 2010-12-16 16:53:03 +0100

Fix the "screenshot" in the char dump getting mangled to 7 bits.
Quite a rewrite of the function was needed, but it's actually simpler now,
somewhat.  The old code had a number of weird hacks without an explanation
-- they don't appear to be needed, though.

--------------------------------------------------------------------------------
322329c0e7 | Adam Borowski | 2010-12-16 16:53:02 +0100

Fix glyphs in the map dump getting mangled to 7 bits.

--------------------------------------------------------------------------------
203b11eb25 | Adam Borowski | 2010-12-16 16:53:02 +0100

Convert ofstream to fopen() for macro files.

--------------------------------------------------------------------------------
28b815a469 | Adam Borowski | 2010-12-16 16:53:02 +0100

Convert ofstream to fprintf() for stash dumps.  Translate charsets.
Using ofstream requires huge hacks on Polish/Russian/etc Windows,
and is outright impossible on Vietnamese.

--------------------------------------------------------------------------------
767876b734 | Eino Keskitalo | 2010-12-16 14:44:25 +0200

Fix some floor tiles in lemuel_castle (#2989).

--------------------------------------------------------------------------------
dbf49df763 | Charles Otto | 2010-12-15 22:20:49 -0500

Fix [2975], e. tentacle att. change affecting all monsters
Add a blatantly missing type check when propagating an attitude change
across eldritch tentacle segments. This instead of just changing the
attitude of everything on the level.

--------------------------------------------------------------------------------
ebbd9f8da8 | Adam Borowski | 2010-12-16 00:03:35 +0100

checkwhite fixes.

--------------------------------------------------------------------------------
b36b5d7ce1 | Adam Borowski | 2010-12-16 00:03:35 +0100

Ensure a space after "return".
It should never masquerade as a function call.

--------------------------------------------------------------------------------
0c7d8e295c | Adam Borowski | 2010-12-16 00:02:01 +0100

Remove a few unneeded braces.

--------------------------------------------------------------------------------
b2e7c8e38f | Raphael Langella | 2010-12-15 23:45:37 +0100

Fix spacing.

--------------------------------------------------------------------------------
281c24d787 | Raphael Langella | 2010-12-15 23:21:46 +0100

Skill menu: only switch to next entry when selecting with enter.

--------------------------------------------------------------------------------
26dd18235a | Raphael Langella | 2010-12-15 23:21:46 +0100

Add skill tiles to the skill menu.

--------------------------------------------------------------------------------
e086faface | Raphael Langella | 2010-12-15 23:21:46 +0100

Replace hard-coded number by an enum.

--------------------------------------------------------------------------------
bbb61513f3 | Raphael Langella | 2010-12-15 23:21:46 +0100

Fix wrong unit used in TextTileItem::set_bounds.

--------------------------------------------------------------------------------
dccd035e39 | Raphael Langella | 2010-12-15 23:21:46 +0100

Hide progess of level 0 skills.

--------------------------------------------------------------------------------
bfa0c66dda | Raphael Langella | 2010-12-15 23:21:46 +0100

Formatting fix.

--------------------------------------------------------------------------------
01d8de9c12 | Raphael Langella | 2010-12-15 23:21:46 +0100

Add the "spaces around parenthesis" to coding convention.

--------------------------------------------------------------------------------
e3da9c61c4 | Adam Borowski | 2010-12-15 22:44:40 +0100

Troves: don't ask for +5 robes of resistance, +2 is the max.

--------------------------------------------------------------------------------
517c2516e8 | Eino Keskitalo | 2010-12-15 22:54:20 +0200

Recite resistance tweaking; there are less bad effects early on, and it is 
still useful later.
Modeled after 6d17f6c1b, but less overpowered. That seemed fun and enjoyable, 
even if broken.

Early game: with Priests of Zin, there are practically no bad effects, and you 
can Recite quite freely to lone kobolds, goblins and hobgoblins. This will not 
work against orc packs with wizards and priests, however.

If you pick Zin on an altar, with low Invocations Recite you get some bad 
effects from the puny humanoids, and sometimes you succeed.

In late game, there are monsters against which Recite is useful, but on a bad 
roll they may get angered. And then there are monsters, against which it isn't 
useful, but which get angered when you Recite with them around.

I'm committing this to testing, to see if the current Recite is salvageable 
with number tweaking. See #2850 for a more comprehensive Recite patch project, 
which may well be worth implementing even if this works.

--------------------------------------------------------------------------------
410610483b | Eino Keskitalo | 2010-12-15 22:54:20 +0200

Make high-powered Recite try to find an effect that applies to the monster.
Getting full power against non-impressionable monsters (demons, undead, 
chaotics and uncleans) was worse than low power, since you couldn't pacify 
them. Instead, now fall-through to the lower effects if the power-appropriate 
effect doesn't work.

--------------------------------------------------------------------------------
3658b3ba0d | Johanna Ploog | 2010-12-15 21:09:46 +0100

Use new Zz tile for sleeping (stabbable) monsters. Cute.
The may_stab_brand is shifted to the question mark (old stab_brand),
and the exclamation mark (old may_stab_brand) is currently unused.

More Zzz variants can be found in the UNUSED directory.

--------------------------------------------------------------------------------
5f1690d21f | Vsevolod Kozlov | 2010-12-15 21:59:15 +0300

Dump extra vaults properly.
env.properties[LEVEL_EXTRAS_KEY] is now only used for extra vaults, which are
saved into a hash table rather than a vector.  Modify dbg-util.cc accordingly so
it dumps out the right data.

--------------------------------------------------------------------------------
13c9cd89a3 | Vsevolod Kozlov | 2010-12-15 21:39:32 +0300

Make _build_{river,lake} and _many_pools append data to level_build_method 
instead of level extras.

--------------------------------------------------------------------------------
74703b6d8b | Vsevolod Kozlov | 2010-12-15 21:12:44 +0300

Move the special case for swamp level builder after a primary vault into 
_build_postvault_level.
This makes it more in line with other such cases (of which there is not many).
A better mechanism for picking a postvault level builder would indeed be nicer.

--------------------------------------------------------------------------------
bb7ac3fbef | Vsevolod Kozlov | 2010-12-15 21:08:48 +0300

Move the dgn_place_stone_stairs call out of _build_postvault_level.
It was unclear that it is the only thing that function does for layout vaults.
On the other hand, the logic in _build_vault_impl is more complcated now, but I
think it's better this way (and can surely be improved upon somehow).

--------------------------------------------------------------------------------
510fa2c47f | Vsevolod Kozlov | 2010-12-15 20:56:46 +0300

Don't set level layout type in _plan_main.
All the _plan_* functions set it properly anyway.

--------------------------------------------------------------------------------
301fe32494 | Vsevolod Kozlov | 2010-12-15 14:53:45 +0300

Use rectangle_iterator in _bigger_room.

--------------------------------------------------------------------------------
1d1a8b3475 | Vsevolod Kozlov | 2010-12-15 14:53:45 +0300

Don't append [level_number] to level_build_method thousands upon thousands of 
times.
It's the same as absdepth0, which is accessible elsewhere anyway.

--------------------------------------------------------------------------------
86e40da49d | Adam Borowski | 2010-12-15 12:47:51 +0100

Fix debug non-tile builds.

--------------------------------------------------------------------------------
9ea01f5a05 | Darshan Shaligram | 2010-12-15 15:05:19 +0530

Fix trap trigger wording in spider basket trap.

--------------------------------------------------------------------------------
f31470d552 | Charles Otto | 2010-12-14 20:15:16 -0500

Fix [2941], a crash involving kraken heads killing themselves
Fix a crash involving krakens killing their 'head' segment after
creating a tentacle with mindex 0. The check used to determine if a
monster was a connector to be deleted allowed kraken heads, tentacles,
and connectors rather than just connectors, so if a tentacle was created
with mindex 0, the head would get deleted (since the heads number is 0
by default).

--------------------------------------------------------------------------------
fdebd28ce0 | Raphael Langella | 2010-12-14 23:37:06 +0100

SKill menu: easier cursor navigation.
You can now change column even if there's no skill in front, and also go
from the end of a column to the beginning of the other with down.

--------------------------------------------------------------------------------
6ec2b2ebb5 | Raphael Langella | 2010-12-14 23:37:06 +0100

Skill menu: automatically move cursor to next entry when toggling practise.
Now, the cursor is actually useful. You can easily enable or disable several
consecutive skills by repeatedly pressing enter.

--------------------------------------------------------------------------------
70c3006b01 | Adam Borowski | 2010-12-14 22:16:56 +0100

In debug mode, show the number of distinct wall/floor tiles on level.

--------------------------------------------------------------------------------
d94c0b0998 | Johanna Ploog | 2010-12-14 21:15:59 +0100

Don't define max. wand charges in two different places.
For now, I've kept the specialcasing in makeitem.cc, though it
doesn't make a lot of sense: You can get wands with 28 charges
that claim in their description they can have at most 24 charges.

--------------------------------------------------------------------------------
a12a84baaa | Johanna Ploog | 2010-12-14 19:34:53 +0100

Revert "Autosave Zotdef once in a while, same as 7ada25d44 did for Sprint."
This reverts commit bd38819f767f557d9cbe4375ce240361f1da5cbd.

According to the chatter on ##crawl-dev, this is completely redundant.
Ah well...

--------------------------------------------------------------------------------
09dc7e2fc9 | Eino Keskitalo | 2010-12-14 20:05:52 +0200

Add GDR and armour enchantment changes to the changelog.

--------------------------------------------------------------------------------
bd38819f76 | Johanna Ploog | 2010-12-14 18:58:48 +0100

Autosave Zotdef once in a while, same as 7ada25d44 did for Sprint.

--------------------------------------------------------------------------------
5ef27ed5ab | Eino Keskitalo | 2010-12-14 19:38:29 +0200

Double GDR from body armour.
Limited testing suggests that plate is now on average as good protection as a 
robe against a stone giant, and a lot better against an executioner.

With this, enchantments cap changes and removal of AC/EV bonuses from randarts, 
there should be plenty to test regarding heavy armour characters. Happy 
crawling!

--------------------------------------------------------------------------------
00ac9e6a2f | Vsevolod Kozlov | 2010-12-14 20:27:57 +0300

Make _build_rooms specify the level layout type as "rooms".

--------------------------------------------------------------------------------
1d0d674a88 | Vsevolod Kozlov | 2010-12-14 20:27:57 +0300

Convert env.level_layout_type into std::set<std::string> level_layout_types.
This lets one layout specify multiple layout types, which can be useful in
combination with layout_* vault tags.  Nothing uses this as of yet.

--------------------------------------------------------------------------------
a5b6e0f921 | Adam Borowski | 2010-12-14 17:42:38 +0100

Cap armour's enchantments to its base AC.
Yes, it means +14 for crystal plates (which you can find once in ten games...).
Scrolls of enchant armour no longer fail, so getting there is actually possible.

--------------------------------------------------------------------------------
d5c7250c30 | Johanna Ploog | 2010-12-14 16:50:38 +0100

Use a different formula to assign L. hydra tiles by head count.
The 10-headed hydra tile is now used for heads 26 and 27,
9-headed tile for heads 21-25, etc.

The differences are subtle, but still interesting to watch as you
continue lopping off heads. (Though I rather doubt that's a common
killing strategy for the Lernaean hydra.)

--------------------------------------------------------------------------------
383f336cc5 | Johanna Ploog | 2010-12-14 16:23:26 +0100

Don't show the name tag for the Lernaean hydra.
This loss of information is compensated by the unusually large tile
with the unusually large number of heads.

--------------------------------------------------------------------------------
dc0f4f45d2 | Johanna Ploog | 2010-12-14 16:23:24 +0100

Add Denzi's 32x48 Lernaean hydra tiles.

--------------------------------------------------------------------------------
430fdb3a18 | Johanna Ploog | 2010-12-14 16:23:23 +0100

Replace for loop with adjacent_iterator.
Not sure if _adjacent_target() is really supposed to include
the square itself, but I kept the behaviour.

--------------------------------------------------------------------------------
4bc0c704fa | Johanna Ploog | 2010-12-14 16:23:21 +0100

Update gate tiles when changing features in wizard mode.

--------------------------------------------------------------------------------
e365d41734 | Johanna Ploog | 2010-12-14 16:23:19 +0100

Reinit feature tiles for wizmode-created features.
That should make testing variant tiles much more easier.

--------------------------------------------------------------------------------
c9d9ac6e6c | Johanna Ploog | 2010-12-14 16:23:16 +0100

Minor code simplification.

--------------------------------------------------------------------------------
1ba6b60123 | Adam Borowski | 2010-12-14 13:00:15 +0100

Remove an unused saved field.

--------------------------------------------------------------------------------
25df7ca0a1 | Adam Borowski | 2010-12-14 12:54:28 +0100

Trim some uneeded includes.

--------------------------------------------------------------------------------
0d4794485d | Adam Borowski | 2010-12-14 12:21:19 +0100

A compile-time assert.

--------------------------------------------------------------------------------
03200ff6ca | Vsevolod Kozlov | 2010-12-14 14:14:37 +0300

Split _vault_grid into _vault_grid_mapspec and _vault_grid_glyph.
Makes it somewhat easier to follow the code.

--------------------------------------------------------------------------------
011d41ee9f | Vsevolod Kozlov | 2010-12-14 14:14:37 +0300

Correct some vault tags (l_uniq -> luniq).

--------------------------------------------------------------------------------
eb4c875d60 | Vsevolod Kozlov | 2010-12-14 14:14:37 +0300

Remove dungeon.h #include from files that don't need it.
Breaks neither debug nor normal build for me, so I guess it's okay.

--------------------------------------------------------------------------------
0721bf4ea9 | Vsevolod Kozlov | 2010-12-14 14:14:37 +0300

Make count_feature_in_(anti)box static.

--------------------------------------------------------------------------------
7c6235e996 | Eino Keskitalo | 2010-12-14 13:10:50 +0200

Fix typo in ettin xp modifier (OG17).

--------------------------------------------------------------------------------
baf2dbe753 | Adam Borowski | 2010-12-14 10:32:32 +0100

Shave 800 bytes (uncompressed) per level from saves.
Ok, ok, zlib gets that down to almost nothing, but it still pollutes the
deflate buffer, decreasing the compression of other stuff.

--------------------------------------------------------------------------------
bde0a4615a | Adam Borowski | 2010-12-14 10:10:44 +0100

checkwhite's fixes for .txt files.

--------------------------------------------------------------------------------
0da95f8135 | Adam Borowski | 2010-12-14 10:10:44 +0100

Indent valgrind suppressions the way --gen-suppressions does.
It's unorthodox 3 spaces, but let's make pasting easier.

--------------------------------------------------------------------------------
29b1ef009a | Adam Borowski | 2010-12-14 10:10:42 +0100

Don't exempt *.txt, *.rb, *.pl and the makefile from whitespace checks.
Only tabs are allowed, and not for .txt either.

--------------------------------------------------------------------------------
55beb4d449 | Darshan Shaligram | 2010-12-14 14:09:28 +0530

Note that vaults with an empty DEPTH: will not be placed randomly.

--------------------------------------------------------------------------------
6c6c8dbd1e | Darshan Shaligram | 2010-12-14 13:27:23 +0530

Rearrange create_trap code to shut up Mac g++ false alarm about control 
reaching end of non-void function.

--------------------------------------------------------------------------------
40c0a5d35b | Darshan Shaligram | 2010-12-14 13:25:42 +0530

Fix markers not being activated correctly in first serial vault.

--------------------------------------------------------------------------------
718bcb9d37 | Johanna Ploog | 2010-12-14 01:02:32 +0100

Fix #2754: switching from console to tiles now displays map properly.

--------------------------------------------------------------------------------
a3da847f02 | Raphael Langella | 2010-12-13 23:56:08 +0100

Skill menu: cursour always appears on default position.

--------------------------------------------------------------------------------
4c13db1ef7 | Raphael Langella | 2010-12-13 21:43:04 +0100

Don't center the skill menu

--------------------------------------------------------------------------------
f7d6bc4fa4 | Raphael Langella | 2010-12-13 21:43:04 +0100

Skill menu: change the highlight colour to red.

--------------------------------------------------------------------------------
0743c04b1e | Raphael Langella | 2010-12-13 21:43:03 +0100

Allow navigation in the skill menu with numpad.

--------------------------------------------------------------------------------
b87ac07cd5 | Raphael Langella | 2010-12-13 21:43:03 +0100

Don't show the antitrain other * for level 0 skills

--------------------------------------------------------------------------------
567b40458a | Raphael Langella | 2010-12-13 21:43:03 +0100

Skill menu: don't show highlight cursor until an arrow key is pressed.

--------------------------------------------------------------------------------
eb13db80aa | Raphael Langella | 2010-12-13 21:43:03 +0100

Use coord_def for skill menu coordinates.

--------------------------------------------------------------------------------
52743e55d3 | Johanna Ploog | 2010-12-13 20:04:16 +0100

Add an altar tile for Ashenzari, based on psyshvl's submissions.

--------------------------------------------------------------------------------
349ac579a6 | David Lawrence Ramsey | 2010-12-13 11:03:53 -0600

Change the MoV's unidentified description to "great shimmering mace".
Since it's now a great mace, this fits with some other artefacts (e.g.
'great mace "Undeadhunter"' is "great steel mace").

--------------------------------------------------------------------------------
6883fa9d12 | Adam Borowski | 2010-12-13 13:46:10 +0100

Mark ophanim as unfinished so they won't spawn in ZotDef.

--------------------------------------------------------------------------------
0244304e6f | Adam Borowski | 2010-12-13 13:36:03 +0100

Disallow encodings other than UTF-8 in the source.

--------------------------------------------------------------------------------
d0f98332d2 | Adam Borowski | 2010-12-13 11:41:30 +0100

Don't allow any CRs inside text files in the source.

--------------------------------------------------------------------------------
7988e2ceaa | Adam Borowski | 2010-12-13 11:39:01 +0100

Use CRLF in text files shipped with Windows builds.

--------------------------------------------------------------------------------
e9b1716e8f | MarvintheParanoidAndroid | 2010-12-13 11:18:49 +0100

Update iridescent scales description

--------------------------------------------------------------------------------
beb45b0972 | Eino Keskitalo | 2010-12-13 11:23:36 +0200

A new serial vault: curved corridors.
The vaults themselves are a little crude and not numerous. More welcome! Also, 
generating them with a script would probably be quite easy.

--------------------------------------------------------------------------------
874244829c | Eino Keskitalo | 2010-12-13 11:23:36 +0200

Make a serial vault out of the corexii_hall series.
It's a nice series and it's cool to be able to get a themed level out of them. 
I edited BRANCHs and TAGS, hopefully that's allright. Testing (with CHANCE: 
100%), the results were fairly pleasant, even with the fairly random placement. 
The effect was especially good when exploring.

--------------------------------------------------------------------------------
89010125de | Eino Keskitalo | 2010-12-13 11:23:36 +0200

Correct a tag.

--------------------------------------------------------------------------------
065c54c03c | Adam Borowski | 2010-12-13 00:46:37 +0100

Revert "Fix 'radiating silence' bug", it relied on undefined behaviour.
Quoting the C++ standard:

"The operands shall be of integral or unscoped enumeration type and integral
promotions are performed.  The type of the result is that of the promoted
left operand.  The behavior is undefined if the right operand is negative,
or greater than or equal to the length in bits of the promoted left operand."

Thus, the "fixed" version ever working relies on overflow being or not trapped.
The result is flags either being wrapped around to their enum minus 32, or
silently lost.

The proper solution is to have the left operand have the needed width.

--------------------------------------------------------------------------------
8d5cfc3ea2 | Adam Borowski | 2010-12-13 00:22:00 +0100

Fix two misencoding files.
* changes.400 had ISO-8859-1 &nbsp; -- a regular space is just as good
* skills_menu.h used ISO-8859-1 rather than UTF-8

--------------------------------------------------------------------------------
47da0d9bc6 | Arxale | 2010-12-13 00:14:51 +0100

Fix 'radiating silence' bug
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
883f761116 | Johanna Ploog | 2010-12-12 21:04:31 +0100

Display game mode in morgue file and highscore list.

--------------------------------------------------------------------------------
2e1173c01c | David Lawrence Ramsey | 2010-12-12 13:32:36 -0600

Fix non-ASCII punctuation.

--------------------------------------------------------------------------------
def2be0bab | Johanna Ploog | 2010-12-12 20:20:29 +0100

Optimize a few other plant tiles.

--------------------------------------------------------------------------------
804c6c5e1a | Johanna Ploog | 2010-12-12 20:19:32 +0100

Add psyshvl's oklob sapling tile.

--------------------------------------------------------------------------------
72f0dcdcf0 | Johanna Ploog | 2010-12-12 19:51:38 +0100

Update change log.
Probably contains too many unimportant details,
but we can trim it later.

--------------------------------------------------------------------------------
9731da45ef | Johanna Ploog | 2010-12-12 19:26:56 +0100

Add to changelog, now includes everything up to g199d915.
Brought up-to-date with my wordpress post of December 5.

--------------------------------------------------------------------------------
f1d751b571 | Vsevolod Kozlov | 2010-12-12 17:30:09 +0300

Replace _join_the_dots with _join_the_dots_rigorous.
No need to keep more implementations of a single thing than necessary.  The most
visible use case is _build_rooms, and its results have seemed only slightly
different to me---so slightly that I'm not sure whether there _is_ a difference,
or only illusion thereof, caused by my expectation of such.

Nothing is really broken by this as far as I can see.

--------------------------------------------------------------------------------
af2074bd61 | Vsevolod Kozlov | 2010-12-12 17:13:29 +0300

Make join_the_dots static.

--------------------------------------------------------------------------------
66d46ab99a | Vsevolod Kozlov | 2010-12-12 17:05:59 +0300

Zonguldrok's Shrine: Don't define spawn_zombie twice.

--------------------------------------------------------------------------------
3fae6d61f5 | Vsevolod Kozlov | 2010-12-12 17:05:59 +0300

Zonguldrok's Shrine: Don't place the door more than once.

--------------------------------------------------------------------------------
f117c622db | Darshan Shaligram | 2010-12-12 19:34:31 +0530

Don't raise Lua error if dgn.place_maps doesn't find a map to place, return 
number of maps placed.

--------------------------------------------------------------------------------
b57798c3dc | Eino Keskitalo | 2010-12-12 12:46:28 +0200

Slightly adjust a vault regarding ettin buff.

--------------------------------------------------------------------------------
9894222770 | Eino Keskitalo | 2010-12-12 12:36:17 +0200

Boost ettins to hit as hard as dual-wielding stone giants. Move them deeper.
Stats adjusted, with slightly low defences and HP to make them a bit glass 
cannon-y. A small xp factor upwards adjustment. Not sure about the numbers, as 
usual.

--------------------------------------------------------------------------------
3280b023cb | David Lawrence Ramsey | 2010-12-11 20:10:26 -0600

Fix wording.

--------------------------------------------------------------------------------
1e52b0fc52 | Adam Borowski | 2010-12-12 00:41:11 +0100

Tell DGL the encoding is always UTF-8.
(In theory, DGL might run with a different system encoding, but that's
a pointless exercise, and we don't check for that case.)

--------------------------------------------------------------------------------
bc9e9f380e | Adam Borowski | 2010-12-12 00:35:20 +0100

Merge branch 'master' into unicode

--------------------------------------------------------------------------------
dea893dd22 | Adam Borowski | 2010-12-11 22:55:15 +0100

Fix a duplicated build and a race condition on make -j >1.

--------------------------------------------------------------------------------
d7fa60e567 | Adam Borowski | 2010-12-11 22:32:20 +0100

Bump "Eos".

--------------------------------------------------------------------------------
cfbf888d4b | MarvintheParanoidAndroid | 2010-12-11 22:28:15 +0100

Unrandart improvements, part 1
Mace of Variability: Change to great mace, add chaos brand.
long sword "Bloodbane": Change to katana.
sword of Jihad: Change to eudemon blade.
plutonium sword: Change to triple sword.
Lehudib's crystal spear: Add returning brand.

--------------------------------------------------------------------------------
4302e791ec | Matt Mills | 2010-12-11 22:23:06 +0100

Add evil items to default autopickup exceptions

--------------------------------------------------------------------------------
9320b2dde0 | Vsevolod Kozlov | 2010-12-11 22:08:23 +0300

Make dungeon.h functions that are used by nothing but dungeon.cc static.
Also remove the unused dgn_random_direction in progress.

If any of these functions are ever needed in some other file, it can be made
non-static again anyway---no need to keep them non-static 'just in case'.

--------------------------------------------------------------------------------
d6fcd577b4 | Vsevolod Kozlov | 2010-12-11 18:37:55 +0300

Don't declare a variable as 'struct monster', 'monster' is sufficient.

--------------------------------------------------------------------------------
0e4173f83f | Vsevolod Kozlov | 2010-12-11 18:32:20 +0300

Don't retry dgn_place_map in _place_unique_map.
maps.cc:write_vault does quite a lot of retrying anyway.

--------------------------------------------------------------------------------
bc5940ade8 | Adam Borowski | 2010-12-11 13:40:16 +0100

Cowardly assume that systems lack fdatasync() unless on a list.
It's strange that FreeBSD and old MacOS X don't have something that was
mandated in POSIX Issue 5 (1997), but let's cope with that.  It's better
to unfairly accuse other systems of noncompliance and suffer a slowdown
than to fail to build at all.

--------------------------------------------------------------------------------
98a2775efd | Raphael Langella | 2010-12-11 13:19:57 +0100

Revert "Tiles: don't wait fore a key at the splash screen after databases have 
loaded."
This reverts commit ea74d73b47d41443078be4a15245aa5c36e090ef.

--------------------------------------------------------------------------------
226e5e9ecc | Adam Borowski | 2010-12-11 02:36:46 +0100

Give different welcome spam for different game types.

--------------------------------------------------------------------------------
058b482c49 | David Lawrence Ramsey | 2010-12-10 19:04:15 -0600

Add comment.

--------------------------------------------------------------------------------
539df9aaad | Adam Borowski | 2010-12-11 01:53:03 +0100

Don't give more xp for killing berserk monsters.

--------------------------------------------------------------------------------
d400c4612f | Adam Borowski | 2010-12-11 01:53:03 +0100

Fix monsters losing maxhp on berserk.

--------------------------------------------------------------------------------
8853bcd86b | David Lawrence Ramsey | 2010-12-10 18:45:59 -0600

Add spacing fix.

--------------------------------------------------------------------------------
439906c0cf | David Lawrence Ramsey | 2010-12-10 18:42:56 -0600

Remove unneeded player_angers_monster() in summon_berserker().
Since summon_berserker() doesn't use MG_FORCE_BEH anymore, there's no
need to manually make it hostile.  This also fixes an assert in the
arena.

--------------------------------------------------------------------------------
593c591443 | David Lawrence Ramsey | 2010-12-10 18:40:23 -0600

Move the routine to make monsters berserk summons into its own function.

--------------------------------------------------------------------------------
8e28b688a9 | Adam Borowski | 2010-12-11 01:06:11 +0100

Formatting fixes; get rid of an unused function.

--------------------------------------------------------------------------------
9d0f997e24 | Adam Borowski | 2010-12-11 01:06:11 +0100

ZotDef: don't claim there are 27 levels of the dungeon.

--------------------------------------------------------------------------------
0ab8b493d8 | Adam Borowski | 2010-12-11 01:06:10 +0100

Fix plants getting Xom-polymorphed into burning bushes.
Or perhaps, we should keep this?

--------------------------------------------------------------------------------
2c365d975c | Raphael Langella | 2010-12-11 00:59:58 +0100

Enhance the aptitude help.

--------------------------------------------------------------------------------
631cf76b84 | Raphael Langella | 2010-12-11 00:59:58 +0100

Don't show help about cross/anti training when there is none.

--------------------------------------------------------------------------------
d8bbee52d2 | Raphael Langella | 2010-12-11 00:59:58 +0100

Grey all skills in description mode

--------------------------------------------------------------------------------
5329c3222f | Raphael Langella | 2010-12-11 00:59:58 +0100

Remove useless #ifdef

--------------------------------------------------------------------------------
e22c6addf3 | David Lawrence Ramsey | 2010-12-10 17:03:52 -0600

Apply ledtim's fix for Mantis 2642.
Now, as it was in 0.7, you only get a warning from Zin for initial
yellow glow or greater, and you only get penance from Zin for deliberate
additional glow.

--------------------------------------------------------------------------------
b0037f3b87 | Raphael Langella | 2010-12-10 22:29:18 +0100

On big terminals and windows, keep the skill menu at 80x24 and center it.
This is experimental. All the menus in crawl are on the top left. There should
be some consistency, so either this one goes to the corner, or the others are
centered. I'm not sure about console, but int tiles with a big monitor,
having menues in the corner doesn't look very good.

--------------------------------------------------------------------------------
39b1a756fe | Raphael Langella | 2010-12-10 22:28:41 +0100

Whitespaces.

--------------------------------------------------------------------------------
b6c4c502c1 | Raphael Langella | 2010-12-10 22:27:58 +0100

Change the highlight colour of the skill menu footer to brown.

--------------------------------------------------------------------------------
ac6d6a03a0 | Raphael Langella | 2010-12-10 22:27:58 +0100

Fix multi-line FormattedTextItem rendering when not a column 0.

--------------------------------------------------------------------------------
ea74d73b47 | Raphael Langella | 2010-12-10 22:27:58 +0100

Tiles: don't wait fore a key at the splash screen after databases have loaded.

--------------------------------------------------------------------------------
32b334f9bd | Adam Borowski | 2010-12-10 15:02:17 +0100

Remove branch ends from Shoals that didn't make it.
They don't seem easily salvageable for another purpose.

--------------------------------------------------------------------------------
0c4d1f7be3 | Adam Borowski | 2010-12-10 15:00:25 +0100

Split the list of spells away from spl-book.cc

--------------------------------------------------------------------------------
a391f003b4 | Adam Borowski | 2010-12-10 14:23:55 +0100

Sac the Book of Beasts to Trog.  Redundant and too thin.

--------------------------------------------------------------------------------
ebc64e93b0 | Adam Borowski | 2010-12-10 14:06:15 +0100

Thin spellbooks somewhat.
* Bone Shards: 0 use both in 0.4 and 0.7 winner stats.  Requires tedious
  messing with components.
* Tame Beasts: 0 use, gives very weak pets for its level, with lots of
  preparation can be abused ("Rupert farming").
* Portal: very little use, convoluted mechanics.

--------------------------------------------------------------------------------
3f2134ce11 | Adam Borowski | 2010-12-10 14:06:15 +0100

Use the barnacled rune in ZotDef, reserving demonics for extras.

--------------------------------------------------------------------------------
1d3fd1428d | Vsevolod Kozlov | 2010-12-10 16:04:56 +0300

Make octa_room static.

--------------------------------------------------------------------------------
52382c2917 | Vsevolod Kozlov | 2010-12-10 16:04:56 +0300

Replace remaining uses of spec_room with dgn_region, and remove spec_room.
I hope I didn't break anything with regard to absolute vs. relative coordinates.

--------------------------------------------------------------------------------
c44d5bb0ff | Johanna Ploog | 2010-12-10 13:51:48 +0100

Suppress blood overlay for the torch wall variants.

--------------------------------------------------------------------------------
e69ad61e0a | Raphael Langella | 2010-12-10 13:30:57 +0100

Merge branch 'master' into skill_menu

--------------------------------------------------------------------------------
c4f3ab4ad8 | Raphael Langella | 2010-12-10 13:29:21 +0100

Merge branch 'master' into skill_menu

--------------------------------------------------------------------------------
03a630e0df | David Ploog | 2010-12-10 13:28:11 +0100

A serial vault.
Currently just one example, about glass vaults. Can be expanded to
cover all sorts of things later on.

--------------------------------------------------------------------------------
21c4993ae6 | Johanna Ploog | 2010-12-10 13:25:01 +0100

Improve the tentacle end piece tiles.
Basically use modified versions of Denzi's tentacle tiles for this.

--------------------------------------------------------------------------------
388b74ca34 | Johanna Ploog | 2010-12-10 13:24:56 +0100

Ignore the FL_LEVITATE flag for tentacle tiles emerging from water.
A bit hackish, but looks better this way.

--------------------------------------------------------------------------------
eb0ce4b2be | Johanna Ploog | 2010-12-10 13:24:53 +0100

Clean up and optimize tentacle segment tiles.

--------------------------------------------------------------------------------
e99ebefd96 | Raphael Langella | 2010-12-10 13:12:50 +0100

Add a no_scaling boolean to set_transform
This fix the tiles offset bug with the new skill menu. I don't really
understand why scaling breaks the display while translating is still
needed. So, this is more a workaround, than a proper fix. But it works.

--------------------------------------------------------------------------------
e3573653bf | Adam Borowski | 2010-12-10 10:50:26 +0100

Stop arena crashes with monster berserkers.

--------------------------------------------------------------------------------
68351e596c | Adam Borowski | 2010-12-10 02:09:09 +0100

Fix a few cases of LOS distortion.

--------------------------------------------------------------------------------
ca3edeb8f3 | Adam Borowski | 2010-12-10 01:25:45 +0100

Allies animating dead is ok for hungry herb3.

--------------------------------------------------------------------------------
6660c93e78 | Adam Borowski | 2010-12-10 01:12:55 +0100

ZotDef: start with the map mapped.

--------------------------------------------------------------------------------
ee4a970705 | Adam Borowski | 2010-12-10 01:03:24 +0100

ZotDef: greatly cheapen skill training.
People at xl19 barely get skills to level 9.  Since the amount of xp
needed is exponential in that region, even a factor of three won't have
a great effect -- it's certainly a noticeable improvement, though.

--------------------------------------------------------------------------------
92fc89abf3 | Johanna Ploog | 2010-12-10 00:53:20 +0100

Another special case of directional vs. starting segment tile.
If we can see a monster (other than the kraken) in a water tile
we know the segment can't originate there, so don't use that for
blocking directional segments elsewhere.

--------------------------------------------------------------------------------
31b1a80104 | Johanna Ploog | 2010-12-10 00:21:06 +0100

Add missing U-shaped tentacle segment tiles.
Almost done. Still TODO:
 * Some of the diagonals don't match up.
 * Add code for the transitional tiles for diagonal segments. (Urk!)
 * Testing with krakens waving their tentacles in various directions.

--------------------------------------------------------------------------------
904c6acb4b | Raphael Langella | 2010-12-10 00:00:50 +0100

Revert "Remove the call to set_transform() in CRTRegion::render()"
This reverts commit 87b100a148d8c51ae58262a20b0d1cef13b2cad5.

--------------------------------------------------------------------------------
88ff016877 | Raphael Langella | 2010-12-09 23:59:16 +0100

Merge branch 'master' into skill_menu

--------------------------------------------------------------------------------
c3862e5c2e | Johanna Ploog | 2010-12-09 23:58:22 +0100

More curved tentacle segment tiles.
Still missing: U-shaped tile connecting corners.

--------------------------------------------------------------------------------
653ae347c3 | Raphael Langella | 2010-12-09 23:51:17 +0100

Check if the active item is still selectable after action changed.
Fix a crash when you switch to description, move to a level 0 skill,
switch back to practising, press enter and crash the game.

--------------------------------------------------------------------------------
dfb9257f24 | Raphael Langella | 2010-12-09 23:32:31 +0100

Make the highlight colour brown.
It's the only colour which is compatible with all the colours used for
text and always keep it readable.

--------------------------------------------------------------------------------
e62737d506 | Johanna Ploog | 2010-12-09 23:30:29 +0100

Add curved tentacle segment tiles between edges (rather than corners).

--------------------------------------------------------------------------------
5a11618a73 | Johanna Ploog | 2010-12-09 22:53:17 +0100

Use the straight tentacle segment connector tiles.
Er, doesn't appear to be working for me right now,
though it did before... Still, I better check this
in now before I lose it again.

--------------------------------------------------------------------------------
d42a05e53d | Raphael Langella | 2010-12-09 22:37:47 +0100

Use BoxMenuHighlighter also in console.
This preserve the text colour.

--------------------------------------------------------------------------------
cc5a816378 | Johanna Ploog | 2010-12-09 22:17:57 +0100

Move kraken tile definitions into new file dc-kraken.txt.

--------------------------------------------------------------------------------
0bed9f14b3 | Johanna Ploog | 2010-12-09 22:17:55 +0100

Add more of psyshvl's kraken tentacle tiles.

--------------------------------------------------------------------------------
a1ce5eaea4 | Raphael Langella | 2010-12-09 22:14:43 +0100

Fix the help being the wrong colour sometimes.

--------------------------------------------------------------------------------
193f52e3b8 | Raphael Langella | 2010-12-09 22:04:12 +0100

Fix skill not greyed out when disabled in some cases.

--------------------------------------------------------------------------------
d9df4b1b2d | Adam Borowski | 2010-12-09 21:59:17 +0100

Unnerf friendly OCS out of ZotDef.  This includes Arena.
It makes no sense for one side on the Arena to be disadvantaged, and power 1
trowels are quite hard to abuse (?).

--------------------------------------------------------------------------------
70ae86c6ec | Adam Borowski | 2010-12-09 21:52:31 +0100

ZotDef: don't generate several problematic cards.

--------------------------------------------------------------------------------
3797a3b036 | Adam Borowski | 2010-12-09 21:25:08 +0100

ZotDef: disable the Abyss.
It leads to a number of problems (gear you can't reasonably get otherwise,
access to altars of all gods, safe with Zot's abilities, all monsters flock
to (0,0), etc) -- and doesn't fit the game style at all.

--------------------------------------------------------------------------------
6da11d04a0 | Adam Borowski | 2010-12-09 21:10:35 +0100

ZotDef: stop the robe of clouds, storm bow and sky beasts from making deep 
water.

--------------------------------------------------------------------------------
b03ab3ea3a | Adam Borowski | 2010-12-09 21:02:26 +0100

Fix indentation.

--------------------------------------------------------------------------------
5d3c1074c5 | Adam Borowski | 2010-12-09 20:53:10 +0100

ZotDef: let monsters kill their own oklobs in the way (which you made and 
angered).

--------------------------------------------------------------------------------
dbf1909659 | Adam Borowski | 2010-12-09 20:53:09 +0100

Test more than 15 runes in the zotdef test.

--------------------------------------------------------------------------------
44d50a775c | Adam Borowski | 2010-12-09 20:53:09 +0100

Fix several mis-sized tiles.
Issues fixed:
* stump statue was misaligned compared to other statues
* hive vault tiles were slightly shifted up
* Tiamat jumped left/right as her colours changed

--------------------------------------------------------------------------------
657fc6c3e0 | Johanna Ploog | 2010-12-09 20:30:47 +0100

Fix tentacle tiles leaking information about submerged monsters.

--------------------------------------------------------------------------------
37acfd9dd1 | Johanna Ploog | 2010-12-09 20:12:45 +0100

Update kraken corpse tile location. Whoops!

--------------------------------------------------------------------------------
56f3127a9f | Johanna Ploog | 2010-12-09 20:00:03 +0100

Use directional tentacle tiles if adjacent to disturbed shallow water.
Unfortunately, this leaks information you normally don't have, so I'll
have to tone it down a bit.

--------------------------------------------------------------------------------
735fe90286 | Johanna Ploog | 2010-12-09 19:44:30 +0100

Move tentacle tiles into new directory dc-mon/kraken.

--------------------------------------------------------------------------------
2160212b95 | Johanna Ploog | 2010-12-09 19:44:28 +0100

Use new kraken tentacle tiles for segments with only 1 neighbour.
This includes:
 * tentacle (ends)
 * segments adjacent to the kraken body
 * segments adjacent to a submerged segment/tentacle

TODO:
 * segments where both neighbours are unsubmerged
 * segments where neighbours are submerged in shallow water
 * transitional tiles for diagonal tentacles' corner tiles

--------------------------------------------------------------------------------
279415f1b0 | Johanna Ploog | 2010-12-09 19:44:26 +0100

Add first part of psyshvl's new kraken tentacles, some modified by me.

--------------------------------------------------------------------------------
a900e108c3 | Vsevolod Kozlov | 2010-12-09 20:34:08 +0300

Fix an obsolete comment.

--------------------------------------------------------------------------------
2a2b7a35be | Vsevolod Kozlov | 2010-12-09 20:34:08 +0300

Remove DNGN_BUILDER_SPECIAL_{WALL,FLOOR}-related code.
It is no longer relevant, as those features can never be generated.

--------------------------------------------------------------------------------
ffbb4b2b6a | David Lawrence Ramsey | 2010-12-09 11:18:19 -0600

Allow the various deep dwarf types to show up in the Abyss.

--------------------------------------------------------------------------------
0431a893df | Vsevolod Kozlov | 2010-12-09 19:35:37 +0300

Remove some functions that are no longer used.

--------------------------------------------------------------------------------
5ebeaec64a | Vsevolod Kozlov | 2010-12-09 19:34:04 +0300

Rewrite _roguey_level in lua.
This restores its ability to place a special room in one of its rooms.

The code can probably be written in a better manner, but this variant works, or
at least so it seems from my testing.

--------------------------------------------------------------------------------
38d2fd2039 | Vsevolod Kozlov | 2010-12-09 19:34:03 +0300

Convert special rooms to a minivault that uses subvaults.
rooms.des' contents become subvaults, used by the 'special_room' minivault.

The behaviour is now quite different: The room is connected to the rest of the
level just like any minivault, which in most cases means short or no corridor.
So the room now always gets a door.

Placement (DEPTH: 6-30, CHANCE: 20%) should probably be readjusted, but that is
quite easy now.

Special room building code in _roguey_level has been commented out, so it cannot
build special rooms at the moment.

Aside from that, effort has been put into preserving at least the distribution
of different types of special rooms in the dungeon.  Some of the previous
changes have been made to aid this.

I am, as always, not really confident in my lua code, and subvault-related code
in rooms.des in particular.  Somebody with knowledge of the topic should look
into it and fix it.

--------------------------------------------------------------------------------
b0709cd0d0 | Vsevolod Kozlov | 2010-12-09 19:34:03 +0300

Check whether layout type matches for vaults placed by DEPTH+CHANCE.
This might break something, but I don't think it will, since the layout type
checking is done quite rarely.

--------------------------------------------------------------------------------
d904f99c51 | Vsevolod Kozlov | 2010-12-09 19:34:03 +0300

Add the "unrand" vault tag to docs/develop/levels/syntax.txt.
Not that it's useful in any normal case, but still, it exists, and it best be
documented so it's not forgotten about.

--------------------------------------------------------------------------------
ee04161578 | Vsevolod Kozlov | 2010-12-09 19:34:03 +0300

Check subvault depth when picking a subvault by tag.
This breaks neither Vault:8 nor Mu's Hell, so I assume it works.  This is needed
for subvaultification of special rooms.

--------------------------------------------------------------------------------
1428038803 | Vsevolod Kozlov | 2010-12-09 19:34:03 +0300

Prevent _roguey_level from being overwritten by _builder_basic.
This removes levels that are generated by both the builders.  There used to be a
50% chance of any roguey_level to be overwritten by _builder_basic.  The
rationale is that it makes the code path much cleaner; additionally, levels
generated in this manner are usually not very remarkable, often having little in
common with either of the generators employed (_builder_basic tends to overwrite
a good deal of the level).

--------------------------------------------------------------------------------
8d9ba3e0b2 | Robert Burnham | 2010-12-09 10:20:55 -0600

MarvinPA's patch additions to Demonspawn
Detailed in Mantis 2949 but generally affects the following three areas:
1) Fire Facets
2) Nightstalker balance
3) Iridescent scales tweak

--------------------------------------------------------------------------------
1e65bafe76 | Adam Borowski | 2010-12-09 13:32:46 +0100

Fix the properties of the gnome from the "extinct species" vault.
Sadly, this required making it an actual monster.

--------------------------------------------------------------------------------
6205d3cc8a | Adam Borowski | 2010-12-09 13:23:40 +0100

Comment fix for dummies that actually spawn.

--------------------------------------------------------------------------------
91c59bac7c | Adam Borowski | 2010-12-09 13:10:20 +0100

Fix staff of Olgreb on demons with no rPois.
Even though the irresistability works only on living things, some demons
are supposed to suffer from regular poison.

--------------------------------------------------------------------------------
8a95023f29 | Adam Borowski | 2010-12-09 12:55:35 +0100

Boost staves of venom.  Olgreb becomes 1/4 irresistible.
Before, they maxed out at 30% with huge skills, while your D:1 dagger of venom
works 50% from the very start.  Now, staves get 50% || skill-in-8.

Staff of Olgreb, instead of the mundane venom brand it had before, uses
the same formula as staves, except that when hitting something that has
a metabolism, it has a 1/4 chance of overriding rPois, like Poison Arrow.

--------------------------------------------------------------------------------
15314ae60c | Adam Borowski | 2010-12-09 11:25:56 +0100

Fix some mutation messages given by hand and in correctly.
Why would these give the messages themselves, instead of just applying the
effect in the place all other effects happen is beyond me.

--------------------------------------------------------------------------------
cc1ce9a387 | Adam Borowski | 2010-12-09 10:50:10 +0100

Fix a reversed stat loss message.

--------------------------------------------------------------------------------
4f295c8069 | Adam Borowski | 2010-12-09 09:39:03 +0100

Disallow polymorphing plants into oklob saplings, at least for now.

--------------------------------------------------------------------------------
bc920b859d | Adam Borowski | 2010-12-09 09:37:37 +0100

ZotDef: fix an overflow for the cost of oklobs.

--------------------------------------------------------------------------------
913555b82e | Raphael Langella | 2010-12-09 00:03:11 +0100

New skill menu
Features
- Contextual 2 lines help.
- 1 line footer, with current commands
- Can navigate the menu with arrow keys and select skills with enter.
- In tiles, everything can be operated with the mouse.
- Aptitudes are always showned (can be made optional).
- Reskilling is a bit more convenient.
- New features are now much easier to add.

Known bugs and limitation
- Tiles: the whole display is shifted about 2 lines down and 2 columns to the
right. The mouse interacts with items where they are supposed to be, so it's
almost unusable (this might be related to 87b100a1, or not).
- Tiles: If you click to leave a description, the clic isn't eaten, so you
might immediately bring another (or the same) description.
- Console: the highligting doesn't handle properly the change of text colour.
Toggling the practise of a skill with enter turn its name invisible.
- Console: sometimes, the default colour for the help changes.
- The new FormattedTextItem ignores fg_colour (only in tiles). If we fix that
we can merge the new class with TextItem providing multicolour to all derived
classes. Using formatted_string also simplify the render method.
- You can't change column if there isn't a selectable skill right in front of
the current active one. It should move to the nearest selectable one.
- I've added a new header file (skills_menu.h) just to reduce the number of
recompiling while it's beta. It should probably be merged in skills2.h before
the whole branch get merged in trunk.

--------------------------------------------------------------------------------
a0aeab8976 | Raphael Langella | 2010-12-08 23:15:55 +0100

Add a FormattedTextItem class, derived of NoSelectTextItem.
It uses a formatted_string for rendering to allow for multiple colours.
Like TextItem, it ignores bg_colour. In tiles, setting fg_colour doesn't
work.

--------------------------------------------------------------------------------
4f8a8ab4af | Arxale | 2010-12-08 23:10:32 +0100

Reduce spam of 'foo comes into view' messages
Signed-off-by: Raphael Langella <raphael.langella@gmail.com>

--------------------------------------------------------------------------------
9b00d3c096 | Raphael Langella | 2010-12-08 23:03:02 +0100

Apply terrain change to player when banished.
Mantis 2937

--------------------------------------------------------------------------------
dc294f0b07 | Raphael Langella | 2010-12-08 22:36:27 +0100

Fix helpless fake enchantment not removed when aux hit does no damage.

--------------------------------------------------------------------------------
0d1f71ace9 | Raphael Langella | 2010-12-08 22:32:08 +0100

Don't prompt for actions if item isn't in inventory.
Mantis 2943.

--------------------------------------------------------------------------------
8ec2f656c9 | David Lawrence Ramsey | 2010-12-08 14:19:37 -0600

Properly pluralize "deep dwarf unborn" as "deep dwarves unborn".

--------------------------------------------------------------------------------
32ea27778f | David Lawrence Ramsey | 2010-12-08 13:00:41 -0600

Reorder one mon-data.h entry.

--------------------------------------------------------------------------------
139cfbfdee | David Lawrence Ramsey | 2010-12-08 12:49:54 -0600

Add formatting fix.

--------------------------------------------------------------------------------
f2756f8926 | David Lawrence Ramsey | 2010-12-08 12:47:39 -0600

Simplify.

--------------------------------------------------------------------------------
a095e52fb3 | Darshan Shaligram | 2010-12-08 23:46:20 +0530

Don't charge for zotdef Bazaar portal if the portal doesn't show up for 
whatever reason.

--------------------------------------------------------------------------------
763a5c9057 | Darshan Shaligram | 2010-12-08 23:34:10 +0530

Fix broken Bazaar ability in zotdef (Zaba).
This also disallows use of Trowel card in the alternative game modes (Sprint, 
etc.)

--------------------------------------------------------------------------------
aceb6171fc | Darshan Shaligram | 2010-12-08 23:12:27 +0530

Fix crash on creating FeRe or FeCr.

--------------------------------------------------------------------------------
7c9b825f45 | Darshan Shaligram | 2010-12-08 22:52:15 +0530

Start Zot Defence characters near the Orb.

--------------------------------------------------------------------------------
fcef0bdb72 | Adam Borowski | 2010-12-08 17:48:03 +0100

Move zotdef maps to a separate dir.

--------------------------------------------------------------------------------
2621e14f47 | Darshan Shaligram | 2010-12-08 22:03:12 +0530

Set zotdef rune types correctly.

--------------------------------------------------------------------------------
469821d9bc | Adam Borowski | 2010-12-08 17:07:25 +0100

Don't rot people almost instantly when accidentally hitting a plant on the orb.
This affects only plants incapable of acting -- oklobs will hit the orb just 
fine.

--------------------------------------------------------------------------------
16d5140fc4 | Adam Borowski | 2010-12-08 17:01:54 +0100

Fix a clang's warning.

--------------------------------------------------------------------------------
a17fdea42d | Darshan Shaligram | 2010-12-08 21:16:20 +0530

[zotdef] Don't explode if hostile plant lands on Orb (such as from attacking a 
friendly plant). Enjoy the rot. (Ragdoll)

--------------------------------------------------------------------------------
6b8eacdc3b | Darshan Shaligram | 2010-12-08 20:46:58 +0530

Don't show debug messages for return value of Lua epilogues; epilogue return 
value is always ignored anyway.

--------------------------------------------------------------------------------
8aa439da66 | Darshan Shaligram | 2010-12-08 20:46:58 +0530

Don't show "Go fetch the orb" messages for Zot Defence.

--------------------------------------------------------------------------------
3597e25063 | Adam Borowski | 2010-12-08 15:56:40 +0100

A monster flag M_UNFINISHED, for non-dummies that should be never placed.
Arena and Gretell are supposed to warn for those, too.

--------------------------------------------------------------------------------
bbd3d1b6fc | Adam Borowski | 2010-12-08 15:38:53 +0100

ZotDef: don't spawn dummy monsters, orb guardians nor test spawners.

--------------------------------------------------------------------------------
4afa00f74b | Adam Borowski | 2010-12-08 15:14:44 +0100

Store the wave's name as well.

--------------------------------------------------------------------------------
86c9707e4a | Adam Borowski | 2010-12-08 15:11:06 +0100

Dump the ZotDef wave's table during a crash.

--------------------------------------------------------------------------------
683e4db797 | Adam Borowski | 2010-12-08 15:11:06 +0100

Fix DDs not dying to rot.

--------------------------------------------------------------------------------
7c90fac548 | Adam Borowski | 2010-12-08 15:11:06 +0100

ZotDef: save the game every time a boss is spawned.
In regular games there's a save every time you climb stairs, without this
any crash makes you lose the whole game.

--------------------------------------------------------------------------------
b2dfd19ccb | Vsevolod Kozlov | 2010-12-08 16:39:33 +0300

Convert spotty_level into two lua layouts, caves and spotty.
layout_caves is used in Hive, Slime and Orc; layout_spotty is occasionally used
by _builder_normal.

My lua code (spotty_stairs) is ugly, it can probably be rewritten in a much
better manner.

A notable difference from the old version is that _build_postvault_level will
now occasionally add a full set of escape hatches to levels that use these
layouts, but they were able to get at least some hatches before, too, and so I
don't think the impact is all that big.  A way to control stair placement of
_build_postvault_level would, indeed, be a good thing.

--------------------------------------------------------------------------------
04e3b36f1e | Vsevolod Kozlov | 2010-12-08 16:37:44 +0300

Add lua bindings for at_branch_bottom.

--------------------------------------------------------------------------------
621b4a773a | Darshan Shaligram | 2010-12-08 13:44:49 +0530

Fix beam tracer assert when casting mephitic cloud (oops) (Ragdoll).

--------------------------------------------------------------------------------
45ab4f241c | Eino Keskitalo | 2010-12-08 10:13:20 +0200

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
0160427a2e | Eino Keskitalo | 2010-12-08 10:11:10 +0200

Recolour greater nagas to light magenta. Yellow made them not stand out from 
Snake walls. (#2480)

--------------------------------------------------------------------------------
e4f146ad92 | Darshan Shaligram | 2010-12-08 13:34:09 +0530

[2940] Fix Shoals plants being placed before minvaults.

--------------------------------------------------------------------------------
7ea81954e9 | Darshan Shaligram | 2010-12-08 13:14:46 +0530

Add MarvinPA to credits for static discharge patch.

--------------------------------------------------------------------------------
5ed8361cca | MarvintheParanoidAndroid | 2010-12-08 13:12:43 +0530

Buff Static Discharge
Higher damage and slightly higher chance of arcing.
Higher chance of more initial arcs (so it's better with more adjacent enemies).
Less self-damage per arc (but you might get hit more times).

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
8d63f3e21c | Darshan Shaligram | 2010-12-08 12:31:04 +0530

Fix friendly orange statues being completely useless.

--------------------------------------------------------------------------------
75777448f4 | Darshan Shaligram | 2010-12-08 12:31:03 +0530

Make monster tracers round up average expected damage so that monsters like 
oklob plants will use ranged attacks on high-AC targets.

--------------------------------------------------------------------------------
3304bd4758 | Eino Keskitalo | 2010-12-08 08:16:40 +0200

Fix typos.

--------------------------------------------------------------------------------
101e117d9b | Adam Borowski | 2010-12-08 03:12:39 +0100

ZotDef: introduce a hard cap of 350 allies.
When it is met, you cannot use Zot abilities to create more, although
summons and other sources continue to work.

What about Raise Dead?

--------------------------------------------------------------------------------
8619226f1b | Adam Borowski | 2010-12-08 03:12:39 +0100

ZotDef: scale up the cost of plants and fungus when there's hundreds of them.

--------------------------------------------------------------------------------
a929315a7c | Adam Borowski | 2010-12-08 03:12:39 +0100

Don't mislead into dummy monsters (and a few random but also quite 
inappropriate ones).

--------------------------------------------------------------------------------
daaf8a7a4a | Adam Borowski | 2010-12-08 03:12:39 +0100

Felids: preserve EV/AC for skeletons/zombies.

--------------------------------------------------------------------------------
9c7caac744 | David Lawrence Ramsey | 2010-12-07 19:22:40 -0600

Add missing period.

--------------------------------------------------------------------------------
c4e880069b | Adam Borowski | 2010-12-07 21:29:21 +0100

Felids: make corpses and zombies named after you.

--------------------------------------------------------------------------------
f56a503ed3 | Adam Borowski | 2010-12-07 21:06:31 +0100

Limit MAX_SHOPS, spawning 65th one would cause a crash.

--------------------------------------------------------------------------------
d283860156 | Vsevolod Kozlov | 2010-12-07 21:19:00 +0300

Remove the 'seeded' parameter from spotty_level.
It's always called with seeded set to false.

--------------------------------------------------------------------------------
aa9d1eb65b | Vsevolod Kozlov | 2010-12-07 21:14:54 +0300

Split the stair placement code from spotty_level into _place_spotty_stairs.
That's a slight misnomer, given how the function does a little more than just
placing stairs (it also creates patches of floor around them), but I don't think
that's a big enough problem (the code is not used anywhere else).

--------------------------------------------------------------------------------
ece483f5c9 | Vsevolod Kozlov | 2010-12-07 20:53:42 +0300

Remove dungeon.cc:smear_feature.
Apparently its uses have been completely replaced by the smear_map function of
the lua API.

--------------------------------------------------------------------------------
6642fecf50 | Vsevolod Kozlov | 2010-12-07 20:50:38 +0300

Use rectangle_iterator in a few more places in dungeon.cc.

--------------------------------------------------------------------------------
ddcef1a79b | Vsevolod Kozlov | 2010-12-07 17:45:30 +0300

Use rectangle_iterator in _fixup_{hell,pandemonium}_stairs.

--------------------------------------------------------------------------------
b64f0af5cc | Adam Borowski | 2010-12-07 02:02:11 +0100

Fix an off-by-one bug with torment resistance.
Everyone got 1% of it.

--------------------------------------------------------------------------------
8b4805d10f | Adam Borowski | 2010-12-07 01:59:50 +0100

Fix incorrect docs.

--------------------------------------------------------------------------------
d4dd37b65e | Adam Borowski | 2010-12-07 01:58:17 +0100

Guarantee the early knives to be uncursed.
You can still get a randomly generated one cursed, as before.

--------------------------------------------------------------------------------
e6c15eb409 | Adam Borowski | 2010-12-07 01:51:58 +0100

Make predefined waves in ZotDef actually work.
They were accessing only two first entries -- even for lists with only one.

--------------------------------------------------------------------------------
a1e0ca919f | Adam Borowski | 2010-12-07 01:51:57 +0100

Put wave names into a common define.

--------------------------------------------------------------------------------
46826205a2 | Adam Borowski | 2010-12-07 01:51:57 +0100

Run zotdef's debug as part of the test suite.

--------------------------------------------------------------------------------
23fe4239a9 | Adam Borowski | 2010-12-07 01:51:18 +0100

Make a lot of zotdef functions static.
[Heh... I should have pushed this in the morning.  Interesting conflicts :p]

--------------------------------------------------------------------------------
7b60bc94e4 | David Lawrence Ramsey | 2010-12-06 16:44:03 -0600

Make a few more functions static.

--------------------------------------------------------------------------------
cdd857873d | David Lawrence Ramsey | 2010-12-06 16:32:41 -0600

Typo fix.

--------------------------------------------------------------------------------
2488806c97 | Vsevolod Kozlov | 2010-12-06 17:22:44 +0300

Move the knife generation special case into a minivault.
From my testing, the new behaviour seems at least close enough to what it used
to be.  Of course, I might be overseeing some corner case in which this won't
work, but that can likely be fixed through modifying the vault rather than
restoring the hardcoded special case.

--------------------------------------------------------------------------------
63bd08c8e8 | Vsevolod Kozlov | 2010-12-06 16:58:51 +0300

Move the special case for hells/slime pits/hall of blades/temple to 
_num_items_wanted.

--------------------------------------------------------------------------------
34ed057573 | Adam Borowski | 2010-12-06 13:57:24 +0100

In ZotDef, the "safest place" is near the orb, even with 20 pan lords there.

--------------------------------------------------------------------------------
6bcee69406 | Matt Mills | 2010-12-06 12:49:26 +0100

Fix wasted turn when attempting to quaff berserk rage whilst exhausted

--------------------------------------------------------------------------------
14351d9a57 | Adam Borowski | 2010-12-06 11:57:42 +0100

Don't collect dcounter data anymore.

--------------------------------------------------------------------------------
181913c1bc | Darshan Shaligram | 2010-12-06 12:27:11 +0530

Fix map transforms accessing areas outside the map grid (kilobyte).

--------------------------------------------------------------------------------
4f5cb9def1 | Raphael Langella | 2010-12-06 00:05:10 +0100

Simplify the rAcid code.

--------------------------------------------------------------------------------
efbf9211fa | Raphael Langella | 2010-12-06 00:05:09 +0100

Remove an obsolete parameter from form_changed_physiology().
It was never used.

--------------------------------------------------------------------------------
67ef800a9f | Raphael Langella | 2010-12-06 00:05:09 +0100

Some more clean up and consistency in transform.cc

--------------------------------------------------------------------------------
94634525f9 | Raphael Langella | 2010-12-06 00:05:08 +0100

Prevent grey drac from drowning if they fall in deep water when transformed.
They can now quickly turn back into their natural form, just like merfolks.

--------------------------------------------------------------------------------
ce3b77de7f | Johanna Ploog | 2010-12-05 23:41:03 +0100

Add Arxale to the credits.

--------------------------------------------------------------------------------
fe245c2b2e | Johanna Ploog | 2010-12-05 23:35:37 +0100

Allow the player more control over what items to sac to Nemelex.
Implement a toggle on the second religion screen (^!) that allows
fine-tuning over which item types to skip and which ones to actually
sacrifice when praying.

So far, this behaviour is completely undocumented.

There's currently no feedback at all if prayer skips over items or
even if everything in a stack turns out not to match the player's
sacrifice categories.
Also, we probably don't want such ineffective prayer to cost a turn.

--------------------------------------------------------------------------------
020c4ecb8d | Adam Borowski | 2010-12-05 23:26:49 +0100

A vault with kenkus.

--------------------------------------------------------------------------------
c66e5161fc | Matt Mills | 2010-12-05 21:49:09 +0100

Make rage-inducing missiles considered to be potentially hasty

--------------------------------------------------------------------------------
4e29b8c0ab | Johanna Ploog | 2010-12-05 18:54:36 +0100

Rename debug_prompt_for_item() -> prompt_for_item().
Now also used outside wizard mode.

--------------------------------------------------------------------------------
8eb0c05ed5 | Johanna Ploog | 2010-12-05 18:54:34 +0100

Use #ifdef on a function only used for UNIX.

--------------------------------------------------------------------------------
8f1bec8380 | Johanna Ploog | 2010-12-05 18:54:32 +0100

Ctrl-mouseclick asks for quantity for drop/pickup.
I decided to reuse debug_prompt_for_int() for this purpose.

--------------------------------------------------------------------------------
a77d2aa694 | Johanna Ploog | 2010-12-05 18:54:30 +0100

Add missing spaces to secondary actions' wield tooltips.

--------------------------------------------------------------------------------
bed5ca280d | Vsevolod Kozlov | 2010-12-05 20:36:57 +0300

Use the coord_def variant of dgn_replace_area in _build_rooms.

--------------------------------------------------------------------------------
232f44b385 | Vsevolod Kozlov | 2010-12-05 20:36:56 +0300

Simplify _branch_entrances_are_connected by using rectangle_iterator.

--------------------------------------------------------------------------------
6848e169a5 | Vsevolod Kozlov | 2010-12-05 20:36:56 +0300

Simplify the collision check in _build_rooms by using count_antifeature_in_box.

--------------------------------------------------------------------------------
99398b9f31 | Darshan Shaligram | 2010-12-05 23:05:05 +0530

Fix warning noises when sizeof(int) != sizeof(long)

--------------------------------------------------------------------------------
20c306a60f | Darshan Shaligram | 2010-12-05 23:02:59 +0530

Add support for Lua hooks triggered during vault generation (dpeg)
Fire hooks at various points during vault generation and allow Lua code in
vaults to add functions to these hooks. Lua hooks are handy when creating
vaults that want to place other vaults (for instance a vault that places
ten copies of another small minivault).

--------------------------------------------------------------------------------
75874ee824 | Adam Borowski | 2010-12-05 18:10:51 +0100

Add psyshvl's demigod tile, fix weapons and corpses for DG, DS, Ha.

--------------------------------------------------------------------------------
6033f7cc28 | Adam Borowski | 2010-12-05 17:21:23 +0100

Fix weapons and corpses on monster kenku (entry vault).

--------------------------------------------------------------------------------
d02296d59b | Johanna Ploog | 2010-12-05 16:36:54 +0100

Per Denzi's request replace training dummy tile with another one.
(The old one was taken from some other roguelike, also by Denzi,
but not specifically made for Crawl.)

--------------------------------------------------------------------------------
42c7d3773c | Johanna Ploog | 2010-12-05 16:36:52 +0100

Use minmay's sea snake tile.

--------------------------------------------------------------------------------
343c64c023 | Johanna Ploog | 2010-12-05 16:36:50 +0100

New tile for the scroll of amnesia.

--------------------------------------------------------------------------------
25499eb835 | Adam Borowski | 2010-12-05 16:18:39 +0100

Hijack the unused "pyjama gnome" nisse tile for an "extinct species" vault 
gnome.

--------------------------------------------------------------------------------
74196f7900 | Adam Borowski | 2010-12-05 16:12:12 +0100

Mention new saves in the changelog.

--------------------------------------------------------------------------------
7e2ae60610 | Adam Borowski | 2010-12-05 15:43:14 +0100

Mention no setgid multiuser installs in the changelog.
This is important news for downstream (Debian, Red Hat, *BSD, ...) packagers.

jpeg: thanks for starting the changelog!

--------------------------------------------------------------------------------
fd56415b00 | Johanna Ploog | 2010-12-05 15:25:21 +0100

Start on the 0.8 changelog. Just highlights for now.
The in-game version information was still listing 0.6 highlights.

--------------------------------------------------------------------------------
6643f6037c | Vsevolod Kozlov | 2010-12-05 12:38:48 +0300

Use random_choose_weighted in _plan_4 to simplify random choices.
This also fixes what appears to be a bug in the code that picks random wall
type during room generation.  It can now pick something aside from rock walls.

--------------------------------------------------------------------------------
8e62dd779d | Vsevolod Kozlov | 2010-12-05 12:13:28 +0300

Move room building from _builder_basic into a separate function.
Also simplify some odds by using random_choose_weighted, while I'm at it.

--------------------------------------------------------------------------------
11d4efe95f | Vsevolod Kozlov | 2010-12-05 11:39:05 +0300

Make _builder_basic correctly place the second pair of stone stairs.

--------------------------------------------------------------------------------
18c9eceaab | Vsevolod Kozlov | 2010-12-05 11:30:00 +0300

Remove unused spec_room::random_spot().

--------------------------------------------------------------------------------
c307854723 | Johanna Ploog | 2010-12-05 00:44:38 +0100

Re-add the old ghoul tiles, thus fixing #2815.
The code assumes at least two base tiles for each species.
Also, we've kept the old variant tiles for all other species.

--------------------------------------------------------------------------------
cf132f9d1c | Adam Borowski | 2010-12-05 00:00:22 +0100

Fix several bugs wrt monster Brothers in Arms.
* the summons no longer spawn at your position
* blame chain (ikiller) is properly set
* attitude is same as the summoner's instead of hostile

--------------------------------------------------------------------------------
199d9155cc | Adam Borowski | 2010-12-04 22:19:45 +0100

Fix a warning.

--------------------------------------------------------------------------------
634543b568 | Adam Borowski | 2010-12-04 22:13:53 +0100

Let spriggan berserkers show their weapons.

--------------------------------------------------------------------------------
3f72f36120 | Adam Borowski | 2010-12-04 21:17:53 +0100

Make formatting slightly more consistent.

--------------------------------------------------------------------------------
1efa36264b | Adam Borowski | 2010-12-04 20:47:15 +0100

Fix claws when transformed.
Forms that do not alter your hands disabled claw damage and bleeding you
naturally could cause.  Dragon form didn't cause bleeding it was expected to.

This does increase dragon form damage a good deal!  It's trivial to undo
this by decreasing base damage by the same amount, but I'm thinking it might
be good to boost this nearly unused form.

--------------------------------------------------------------------------------
15e0500f4f | Adam Borowski | 2010-12-04 20:42:38 +0100

Get rid of you.attribute[ATTR_TRANSFORMATION].
Galehar's your_name hack was a step in the right direction, but it was still
not fully clean.  There's no reason to use you.attribute[] -- it has a benefit
of not requiring a minor tag (something that was even impossible in the past!),
but has its flaws like verbosity, being hard to read and not allowing using
proper types the compiler can use to give warnings.

--------------------------------------------------------------------------------
a44c70fe63 | Vsevolod Kozlov | 2010-12-04 20:23:33 +0300

Use dprf instead of #ifdef'd mprf(MSGCH_DIAGNOSTICS, ...) in some more places.

--------------------------------------------------------------------------------
48d5f58bb2 | Vsevolod Kozlov | 2010-12-04 19:30:58 +0300

Simplify the odds in _plan_4.
The difference between 138 in 210 and 140 in 210  is rather small.

--------------------------------------------------------------------------------
d6b28ddc44 | Vsevolod Kozlov | 2010-12-04 18:14:58 +0300

Remove some now-unused variables from _build_vault_impl.

--------------------------------------------------------------------------------
456705e9d5 | Vsevolod Kozlov | 2010-12-04 18:11:24 +0300

Change _plan_4 to take a dgn_region_list* for exclusion zones.
This brings it more in line with _build_rooms (even though that takes a
reference), thus letting one share more code in _build_vault_impl.  it also
shortens the check for overlaps somewhat (that part can probably be improved
even further).

--------------------------------------------------------------------------------
86290769e6 | Vsevolod Kozlov | 2010-12-04 17:26:29 +0300

Don't needlessly use dgn_region::absolute where we already have the coord_defs.

--------------------------------------------------------------------------------
5b6fda32fd | Vsevolod Kozlov | 2010-12-04 17:26:29 +0300

Remove arguments of _abyss_place_map that are the same in all cases.

--------------------------------------------------------------------------------
72abb07dea | Vsevolod Kozlov | 2010-12-04 17:26:29 +0300

Remove a no longer used 'stair' argument from _place_portal_vault.

--------------------------------------------------------------------------------
f851d9fd87 | Vsevolod Kozlov | 2010-12-04 17:26:28 +0300

Remove erroneous parameters from some _build_seconday_vault calls.
These are leftovers from rune_subst.

--------------------------------------------------------------------------------
20f1a82bcd | Vsevolod Kozlov | 2010-12-04 17:26:28 +0300

Remove some code that is never reached.
The assert will terminate the program first, shall the vault be NULL.

--------------------------------------------------------------------------------
5506f36894 | Vsevolod Kozlov | 2010-12-04 17:26:28 +0300

Make the "loading spellbook" message more informative, and use dprf for it.
It now uses the monster name regardless of the monster's visibility.

--------------------------------------------------------------------------------
c441d869eb | Vsevolod Kozlov | 2010-12-04 17:26:28 +0300

Move the call to dgn_place_stone_stairs from _roguey_level to _builder_normal.
There's no need to hide it behind an additional argument.

--------------------------------------------------------------------------------
cd43e9c8c8 | Adam Borowski | 2010-12-04 15:20:43 +0100

A comment about fdatasync() on new fruits.

--------------------------------------------------------------------------------
efea598754 | Matthew Tadd | 2010-12-04 15:14:25 +0100

fdatasync() implementation for Mac OS X

--------------------------------------------------------------------------------
2cb71e7823 | Adam Borowski | 2010-12-04 13:18:26 +0100

Restrict the player's name length properly in all(?) cases.

--------------------------------------------------------------------------------
b74532d2ae | Adam Borowski | 2010-12-04 13:06:05 +0100

Add stubs for strwidth().
I don't feel like changing things twice, now for save corruption and then
for Unicode.

--------------------------------------------------------------------------------
281db821fc | Adam Borowski | 2010-12-04 12:49:39 +0100

Assert-crash rather than corrupt saves.
you.your_name being different from the name used for the save's name
currently has nasty results, it'd be tedious to fix it and I see no reason
to not simply restrict length.

--------------------------------------------------------------------------------
59ff4a95de | Adam Borowski | 2010-12-04 12:48:38 +0100

Fix two off-by-one bugs for player's name length.
Ghosts would be ignored with names just at max.

--------------------------------------------------------------------------------
79ee111e39 | Adam Borowski | 2010-12-04 11:47:24 +0100

Fix DGL compilation.

--------------------------------------------------------------------------------
b6fa7e9dab | Raphael Langella | 2010-12-04 09:58:16 +0100

Grey draconians can walk in deep water, but they don't actually swim.
This also fix them being able to enter deep water in any form and sinking to
the bottom even in ice form. They also get proper combat penalties when
in water and are prevented to transform into non-swimming non-flying form
while in deep water.
likes_water means can survive in deep water. Wether by water walking, swimming
or unbreathing.

--------------------------------------------------------------------------------
8f29f8fa7c | David Lawrence Ramsey | 2010-12-03 21:56:11 -0600

Fix indentation.

--------------------------------------------------------------------------------
1de47bfc25 | David Lawrence Ramsey | 2010-12-03 21:55:38 -0600

Simplify.

--------------------------------------------------------------------------------
856a79f9d4 | Adam Borowski | 2010-12-04 03:42:16 +0100

Get rid of two remaining constant length strings in saves.

--------------------------------------------------------------------------------
bc1c19ceb9 | Adam Borowski | 2010-12-04 02:29:29 +0100

Fix octopode aptitudes not being shown.

--------------------------------------------------------------------------------
f9e32ac147 | Adam Borowski | 2010-12-04 02:27:01 +0100

Merge branch 'master' into octopus

--------------------------------------------------------------------------------
9572559636 | Adam Borowski | 2010-12-04 02:10:38 +0100

Eronarn's octopodes.
NOTE: this branch is not endorsement, merely recognition.  The species
proposal deserves at least this much -- and it's tricky for most people
to apply a patch to a quickly moving codebase.

--------------------------------------------------------------------------------
94501abee5 | Raphael Langella | 2010-12-04 00:56:06 +0100

Clean up transform.cc.
Renamed all the transform_can_foo functions into form_can_foo.
Give default argument to each function to check the player's form.
Some simplifying and consistency.

--------------------------------------------------------------------------------
65ed3f68ff | Raphael Langella | 2010-12-04 00:56:05 +0100

Removes a redundant check.
airborne is already checked inside is_feat_dangerous.

--------------------------------------------------------------------------------
40f09fd06f | Adam Borowski | 2010-12-04 00:30:20 +0100

Change ANON_FRIENDLY_MONSTER, let's see if something breaks.
I have a hunch that there might be a broken check somewhere.

--------------------------------------------------------------------------------
7e094232fa | Raphael Langella | 2010-12-03 22:17:32 +0100

Boost yellow scales acid resistance.
Make it (-/rA+/rA++) instead of (-/-/rA+).

--------------------------------------------------------------------------------
f6408ab5c6 | Raphael Langella | 2010-12-03 22:17:32 +0100

Fix the cloak of preservation giving rAcid++.
The cloak and the amulet add up. Wearing both gives rAcid++.

--------------------------------------------------------------------------------
2dd88f92a7 | Raphael Langella | 2010-12-03 22:17:31 +0100

Properly split rCorr and rAcid. Yellow drac and yellow scales only give rAcid.
There's no reason that being resistant to acid should protect your equipment.
rCorr is provided only by the amulet and the cloak of preservation.

--------------------------------------------------------------------------------
d85fbdf577 | Raphael Langella | 2010-12-03 22:17:31 +0100

Properly cap the acid resistance at 3.

--------------------------------------------------------------------------------
012c350f12 | Arxale | 2010-12-03 22:14:19 +0100

Add rAcid to resistance screen

--------------------------------------------------------------------------------
e7bb8ea9ed | Vsevolod Kozlov | 2010-12-03 21:55:41 +0300

Clarify the dis_wallify-related debugging message somewhat.
The vault dimensions are already printed in an earlier dprf, so the only point
of this message is to show what 'wallification' is employed.

--------------------------------------------------------------------------------
c603ab51a3 | Vsevolod Kozlov | 2010-12-03 21:51:18 +0300

Fix map tags in Hell ending vaults.

--------------------------------------------------------------------------------
670c254602 | Vsevolod Kozlov | 2010-12-03 15:52:46 +0300

Make dgn_place_stone_stairs avoid placing duplicates, and use it in 
_build_vault_impl.
The checking for duplicates shouldn't hurt other use cases of
dgn_place_stone_stairs, and, from my testing, seems to replicate the old
behaviour of _build_vault_impl's stair placement code.  In particular, stairs
are not placed inside vaults because dgn_place_feature_at_random_floor_square
passes a mask of MMT_VAULT to dgn_random_point_in_bounds by default.

--------------------------------------------------------------------------------
b784b1963f | Vsevolod Kozlov | 2010-12-03 14:44:02 +0300

Move the special case for Abyss from _build_dungeon_level to 
num_traps_for_place.

--------------------------------------------------------------------------------
30f575f16c | David Lawrence Ramsey | 2010-12-03 00:10:23 -0600

Fix indentation.

--------------------------------------------------------------------------------
791697542d | David Lawrence Ramsey | 2010-12-03 00:02:48 -0600

Add whitespace fix.

--------------------------------------------------------------------------------
fb4d0309a6 | David Lawrence Ramsey | 2010-12-02 23:59:22 -0600

Add missing debug statement for hydra wave.

--------------------------------------------------------------------------------
e45e163136 | David Lawrence Ramsey | 2010-12-02 22:26:47 -0600

Rename set_boss_unique() to zotdef_set_boss_unique().

--------------------------------------------------------------------------------
2391693a75 | Adam Borowski | 2010-12-03 04:12:23 +0100

Fix comments.

--------------------------------------------------------------------------------
5981167d5c | Adam Borowski | 2010-12-03 04:09:01 +0100

Fix some mutations not having effect immediately.

--------------------------------------------------------------------------------
08eac1b97d | Adam Borowski | 2010-12-03 04:00:46 +0100

Nerf Tornado duration somewhat.

--------------------------------------------------------------------------------
68590ac461 | David Lawrence Ramsey | 2010-12-02 20:42:11 -0600

Add formatting fix.

--------------------------------------------------------------------------------
ad52bb3dd9 | Adam Borowski | 2010-12-03 02:34:45 +0100

Add an implementation of fsync() for Windows.

--------------------------------------------------------------------------------
65cf2bb069 | Adam Borowski | 2010-12-03 00:19:09 +0100

Except for public servers, ensure robustness against filesystem crashes.
On a busy disk, this can cause a pause of several seconds -- or a spin-up
on a laptop.  Still, people do lose games to crashes from time to time.

This commit sacrifices performance for a full guarantee against system or
power crashes, as long as the underlying fsync() implementation isn't
broken (many network filesystems and certain ATA disks).

Neither CAO nor CDO ever had a system crash, so we give a guarantee
against Crawl's crashes only.  As long as writes are not maliciously
reordered, this should be enough.  With the loads they experience during
the Tourney, fsync()s would be murder.

(What about emergency saves?  They can write possibly tainted data during
a crash, claiming it's kosher.)

--------------------------------------------------------------------------------
5f6c2d3dee | Adam Borowski | 2010-12-03 00:15:23 +0100

When passwalling into something deadly not water not lava, throw an error 
message.
It can change in the future, let's better not assume it's lava.

--------------------------------------------------------------------------------
e83a522ce6 | Raphael Langella | 2010-12-02 23:48:25 +0100

Make teleport use is_feat_dangerous to exclude cells.
This simplify the function a lot and allow grey drac to teleport into deep
water and permanent flyers (kenku and boots of levitation) to teleport over
deep water and lava.
On the other hand, as a merfolk in a non-swimming form, you can't teleport
over deep water and quickly turn back, but I think this is ok. And if we want
to bring it back, let's do it in a more generic way (ie compatible with grey
draconians).

--------------------------------------------------------------------------------
7108fa947a | Raphael Langella | 2010-12-02 23:41:51 +0100

Make blink use is_feat_dangerous to exclude cells.

--------------------------------------------------------------------------------
811fb110a1 | Raphael Langella | 2010-12-02 23:39:56 +0100

Prevent passwalling into deep water and lava if it would kill you.
Fix mantis 2018.

--------------------------------------------------------------------------------
a2f37a319d | Raphael Langella | 2010-12-02 23:37:45 +0100

Add a "permanently" boolean parameter to is_feat_dangerous.
So now it can also be used to find a safe place to teleport to.
I guess the next step is to move the you.can_cling_to check inside.

--------------------------------------------------------------------------------
e48f0affeb | Raphael Langella | 2010-12-02 20:14:56 +0100

Change kenku aptitudes to air +3 and earth -3.

--------------------------------------------------------------------------------
258aa44bb4 | Raphael Langella | 2010-12-02 20:14:56 +0100

Fix merfolks and grey draconians being able to swim in all forms.

--------------------------------------------------------------------------------
94c34f2b72 | Raphael Langella | 2010-12-02 20:14:55 +0100

Make armour keep its ponderousness when melded.

--------------------------------------------------------------------------------
cbe136d146 | Raphael Langella | 2010-12-02 20:14:55 +0100

Make casting invisibility silent.
Mantis 2904.

--------------------------------------------------------------------------------
05fe7e372a | Raphael Langella | 2010-12-02 20:14:54 +0100

Always remove the helpless fake enchantment after the attack.
The enchantment wasn't removed if no damage were dealt (Mantis 2880).

--------------------------------------------------------------------------------
745041f62f | Vsevolod Kozlov | 2010-12-02 20:21:47 +0300

_roguey_level: Simplify the bounds check by using std::min.
I'm not sure how useful the check is, or why roy2[cn] is not checked in the same
way, though.

--------------------------------------------------------------------------------
d07da88209 | Vsevolod Kozlov | 2010-12-02 20:21:47 +0300

_roguey_level: Remove duplication in inner room placement code.

--------------------------------------------------------------------------------
81b57146a1 | Adam Borowski | 2010-12-02 16:37:29 +0100

Remove monster SpWr, add SpBe.  Coolio forced us by adding the tile.
I see no easy way to code warpers without being boring, and there's
enough abyssers in the spriggan monster set already.  It would be great
if we had spells that screw the topology somehow.

--------------------------------------------------------------------------------
11214880ea | Adam Borowski | 2010-12-02 15:49:48 +0100

Return Ench (well, Hex) to Polymorph Other, lower it to level 4.
No one uses this spell, and theme-wise a majority of tales about witches
have them turning someone into something, so it's an exemplary Hex.

--------------------------------------------------------------------------------
6753a003a6 | Adam Borowski | 2010-12-02 15:24:18 +0100

Add proper skill titles for the new schools.

--------------------------------------------------------------------------------
dc2de1536d | Adam Borowski | 2010-12-02 15:20:07 +0100

Use Hex instead of Ench miscasts as costs in ZotDef.
No ability uses them so I have no clue if Charms or Hexes would be better.

--------------------------------------------------------------------------------
51cf88caa6 | Adam Borowski | 2010-12-02 15:19:55 +0100

Merge branch 'master' into ench-split

--------------------------------------------------------------------------------
bf51478a1c | Adam Borowski | 2010-12-02 14:40:57 +0100

Merge branch 'master' into unicode

--------------------------------------------------------------------------------
709837c551 | Vsevolod Kozlov | 2010-12-02 16:35:10 +0300

Reduce stair placement code duplication by using dgn_place_stone_stairs.

--------------------------------------------------------------------------------
173c58d672 | Vsevolod Kozlov | 2010-12-02 16:08:23 +0300

Only pick coordinates and build a special room when it isn't marked as created.
This lets the code in _roguey_level that builds the special room into one of
already existing rooms actually do something.

--------------------------------------------------------------------------------
1a99076688 | Vsevolod Kozlov | 2010-12-02 15:20:37 +0300

dungeon.cc: Move some duplicated code from _roguey_level into a separate 
function.

--------------------------------------------------------------------------------
2cc29e612a | Vsevolod Kozlov | 2010-12-02 14:57:43 +0300

dungeon.cc: Shorten _builder_by_type somewhat.

--------------------------------------------------------------------------------
9d8151a73b | Adam Borowski | 2010-12-02 12:30:04 +0100

Default SAVEDIR to ~/.crawl for installs to /usr or under.

--------------------------------------------------------------------------------
c5507f3ba5 | Adam Borowski | 2010-12-02 11:55:50 +0100

Don't use setgid, don't chown/chmod at all save for DGL's installation.

--------------------------------------------------------------------------------
e8f337ecb7 | Adam Borowski | 2010-12-02 11:34:46 +0100

Give Wiglaf the same speed as other dwarves.
(Ok, no other dwarf has haste...)

His base damage is proportionally reduced, but since his axe is not, he's
stronger now unless your AC is great.

--------------------------------------------------------------------------------
35f7dc9cf9 | Adam Borowski | 2010-12-02 04:28:35 +0100

Mention -zotdef in the command line help.

--------------------------------------------------------------------------------
e7411984a2 | Adam Borowski | 2010-12-02 04:25:11 +0100

Don't write uids to score files anymore.

--------------------------------------------------------------------------------
1e100b044b | Adam Borowski | 2010-12-02 04:19:07 +0100

Get rid of MULTIUSER logic.

--------------------------------------------------------------------------------
01cf0f4398 | Adam Borowski | 2010-12-02 03:33:40 +0100

Don't ever use uids in filenames on Windows.
They're on their way out, but I want to unify MULTIUSER first.

--------------------------------------------------------------------------------
4180ca9b4b | Adam Borowski | 2010-12-02 03:26:51 +0100

Implement file locking on Windows.

--------------------------------------------------------------------------------
a82b27b5ab | Adam Borowski | 2010-12-02 02:58:29 +0100

Use one-argument version of mkdir() on Windows.
Even DOS takes the mode argument (of which it takes only readonly).

--------------------------------------------------------------------------------
466ea97c53 | Adam Borowski | 2010-12-02 02:53:38 +0100

Drop any chmod() calls from inside Crawl.
They make sense only for setgid binaries which cause no end of security issues.

--------------------------------------------------------------------------------
07d06e55d4 | Adam Borowski | 2010-12-02 02:10:05 +0100

Move the num of runes needed define, it's not really user-configurable.
We depend on it in several places, so it's not a matter of merely changing
this one number.

--------------------------------------------------------------------------------
cc0a54443d | Adam Borowski | 2010-12-02 01:51:09 +0100

Remove an option to disable "new" semi-controlled blink.

--------------------------------------------------------------------------------
5c297c58a7 | Adam Borowski | 2010-12-02 01:48:58 +0100

Remove an unmaintained option to remove the "new" str-dex weighting.

--------------------------------------------------------------------------------
7483cde5dc | Adam Borowski | 2010-12-02 01:47:04 +0100

Remove an unimplemented "new" option from 9 years ago.

--------------------------------------------------------------------------------
4f5ad0ec08 | Adam Borowski | 2010-12-02 00:49:18 +0100

Felids: fix missing "You die...".

--------------------------------------------------------------------------------
01172fd657 | Arxale | 2010-12-01 23:15:39 +0100

Fix stair mimics colouring
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
d67b2a10d5 | Arxale | 2010-12-01 22:35:04 +0100

Cycling through features mimics
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
275271efb7 | Arxale | 2010-12-01 22:09:45 +0100

Fix door mimic displayed tile
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
61c8f95f77 | Arxale | 2010-12-01 22:08:33 +0100

Feature mimics appearing in search results
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
6dac77244f | Arxale | 2010-12-01 22:08:31 +0100

Show feature mimics in dungeon overview
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
e543584e62 | Vsevolod Kozlov | 2010-12-01 21:35:45 +0300

Split skill aptitudes from skills2.cc into aptitudes.h.
This is probably not the best way to separate it, but it seems better than no
separation at all, and should be easy enough to correct.

--------------------------------------------------------------------------------
0e71f3deeb | Vsevolod Kozlov | 2010-12-01 21:35:45 +0300

Split generation of pan levels from _builder_by_type into a separate function.

--------------------------------------------------------------------------------
79fa5f4202 | Vsevolod Kozlov | 2010-12-01 21:35:44 +0300

Remove unused level_type argument from _builder_items.

--------------------------------------------------------------------------------
b3dc828d49 | Johanna Ploog | 2010-12-01 19:27:45 +0100

Fix #2879: De-randomize corrupted_temple. Now 6 Lugonu, 6 random gods.
Crawl can't currently handle a randomized number of ET altars.
See e.g. #2357 for why doing so anyway is a bad idea.

--------------------------------------------------------------------------------
c8286cb1b5 | Johanna Ploog | 2010-12-01 19:27:43 +0100

Use more specific statue tiles in some wizlab maps.

--------------------------------------------------------------------------------
8ca0b340e8 | Johanna Ploog | 2010-12-01 19:27:41 +0100

Add another of LoginError's statue tiles.

--------------------------------------------------------------------------------
05dc8604b3 | Raphael Langella | 2010-12-01 18:50:07 +0100

Fix simulating reskilling from a crosstrained skill.
In some cases, the crosstrain bonus can make ct_skill_points go over
skill_points. And it's irrelevant.

Fix mantis 2900.

--------------------------------------------------------------------------------
8a69a6e5e0 | David Lawrence Ramsey | 2010-12-01 11:27:29 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
1dcaf67bee | David Lawrence Ramsey | 2010-12-01 11:23:28 -0600

Simplify.

--------------------------------------------------------------------------------
ecfed463fc | David Lawrence Ramsey | 2010-12-01 11:06:44 -0600

Replace another magic number with a #define.

--------------------------------------------------------------------------------
f4b2deb833 | David Lawrence Ramsey | 2010-12-01 11:03:30 -0600

Rename a variable, for consistency.

--------------------------------------------------------------------------------
a18f6fc752 | David Lawrence Ramsey | 2010-12-01 10:55:05 -0600

Replace a magic number with a #define.

--------------------------------------------------------------------------------
b842b0eedd | David Lawrence Ramsey | 2010-12-01 10:54:04 -0600

Typo fix.

--------------------------------------------------------------------------------
cdd09749c1 | David Lawrence Ramsey | 2010-12-01 10:51:15 -0600

Add spacing fix.

--------------------------------------------------------------------------------
03baf38873 | David Lawrence Ramsey | 2010-12-01 10:42:45 -0600

Simplify.

--------------------------------------------------------------------------------
ec2dcc5b33 | David Lawrence Ramsey | 2010-12-01 10:42:45 -0600

Add formatting fix.

--------------------------------------------------------------------------------
4714bc64d0 | David Lawrence Ramsey | 2010-12-01 10:42:45 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
85cec73687 | David Lawrence Ramsey | 2010-12-01 10:42:45 -0600

Move Zotdef danger messaging to its own function.

--------------------------------------------------------------------------------
e10a8ac647 | Adam Borowski | 2010-12-01 17:19:25 +0100

Remove an outdated check -- we can allow a player "bones" safely now.

--------------------------------------------------------------------------------
40f395547b | David Lawrence Ramsey | 2010-12-01 10:10:19 -0600

Make some functions static, and factor out unneeded parameters.

--------------------------------------------------------------------------------
09e7261ce6 | David Lawrence Ramsey | 2010-12-01 10:10:19 -0600

Simplify.

--------------------------------------------------------------------------------
8fba4ecb34 | David Lawrence Ramsey | 2010-12-01 10:10:19 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
8419c662af | David Lawrence Ramsey | 2010-12-01 10:10:18 -0600

Comment fixes.

--------------------------------------------------------------------------------
303a3cc33d | David Lawrence Ramsey | 2010-12-01 10:10:18 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
2ece6d89e4 | David Lawrence Ramsey | 2010-12-01 10:10:18 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
29d935899c | Vsevolod Kozlov | 2010-12-01 18:36:33 +0300

dungeon.cc: Simplify _builder_normal, as PLACE: vaults are handled by 
_builder_by_branch.
Unless I'm very confused and mistaken, _dgn_random_map_for_place(false) will not
give a different result for two calls in a row (one in _builder_by_branch,
second in _build_normal).  _builder_normal cannot be reached if
_builder_by_branch built a primary vault, so vault will always be NULL for it.
Thus this simplification.

--------------------------------------------------------------------------------
04da6c6842 | Vsevolod Kozlov | 2010-12-01 17:54:56 +0300

Convert dgn_level_vetoed into an exception.
I've done quite extensive testing to check that nothing has been broken by this,
but something still might have been.

--------------------------------------------------------------------------------
66ff2975d2 | Adam Borowski | 2010-12-01 15:19:27 +0100

Fix save compat, recovering pre-zotdef-merge games.
Newer ones have a good chance of surviving if they didn't progress much
or were freshly upgraded.

--------------------------------------------------------------------------------
45151b0a03 | Adam Borowski | 2010-12-01 14:18:57 +0100

On the next compat break, drop -1000 from save/etc names.
I did not purge the relevant code -- let's check if it doesn't break DGL
first; if it does a small change will be easier to revert.

--------------------------------------------------------------------------------
8ba709c198 | Vsevolod Kozlov | 2010-12-01 16:07:02 +0300

Remove use of mons_global_level to filter results from ?/M.
Also removes mons_global_level itself, since it is no longer used anywhere, and
other things from mon-pick.cc that were only used by it.

The filtering by mons_global_level seems to only have effect when the game is
not started, that is, when ?/M is used on the character selection screen.  When
the game is running, its results are the same as without the mons_global_level
filter.  So there's no point to keep it around.

--------------------------------------------------------------------------------
400095ad5f | Adam Borowski | 2010-12-01 13:53:59 +0100

ZotdeF: rot according to the time elapsed, not number of monster turns.

--------------------------------------------------------------------------------
996f026a1b | Adam Borowski | 2010-12-01 12:30:10 +0100

Evict a function to zotdef.cc

--------------------------------------------------------------------------------
0be8ee0dcd | Adam Borowski | 2010-12-01 12:23:40 +0100

Make an inlined function static.

--------------------------------------------------------------------------------
73fab0d360 | Adam Borowski | 2010-12-01 12:18:20 +0100

Mark functions named _foo static.

--------------------------------------------------------------------------------
f694210ff3 | Adam Borowski | 2010-12-01 12:02:05 +0100

Allow running directly with "crawl -zotdef".

--------------------------------------------------------------------------------
84a49c7883 | Adam Borowski | 2010-12-01 11:45:23 +0100

Merge branch 'zotdef'
There are code issues with zotdef -- such as the massive list of waves being
a number of mostly duplicated functions, etc, however, it's mostly code
cleanup rather than actual changes.

I'm reasonably sure this won't break regular games, so we can finish it in
trunk just as well.

--------------------------------------------------------------------------------
e299cd3c0d | Jude Brown | 2010-12-01 19:13:44 +1000

Static functions should use the private prefix "_".

--------------------------------------------------------------------------------
4ab9f68bb1 | Adam Borowski | 2010-12-01 10:09:09 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
64cee1c08b | Adam Borowski | 2010-12-01 10:09:09 +0100

Remove the stealth malus from Ring of Charms.
It's such an overpowered thing already...

--------------------------------------------------------------------------------
47cd31aa8c | Adam Borowski | 2010-12-01 10:07:42 +0100

Cull damaged weapons/armour as well.

--------------------------------------------------------------------------------
10eacd6f51 | Adam Borowski | 2010-12-01 10:07:38 +0100

Formatting fixes.

--------------------------------------------------------------------------------
3835295c2c | David Lawrence Ramsey | 2010-11-30 21:22:32 -0600

Fix Mantis 2901.
Player undead and demonspawn can now be mutated properly again.

--------------------------------------------------------------------------------
2095eeb44f | David Lawrence Ramsey | 2010-11-30 21:10:02 -0600

Simplify.

--------------------------------------------------------------------------------
46c8e8ddb9 | Johanna Ploog | 2010-11-30 23:36:39 +0100

Remove my erroneous explanation about updating artefact tiles.

--------------------------------------------------------------------------------
e5c762e1d4 | Johanna Ploog | 2010-11-30 23:36:37 +0100

Add Mike Adams (Omndra) to the credits.
A well-deserved mention for the spiffy new splash screen.

--------------------------------------------------------------------------------
116376c2c9 | Johanna Ploog | 2010-11-30 23:36:36 +0100

Spacing fix.

--------------------------------------------------------------------------------
f3203d5f93 | Arxale | 2010-11-30 23:26:28 +0100

Fix various 'found foo' bugs

--------------------------------------------------------------------------------
eb6f652a6c | Arxale | 2010-11-30 23:26:28 +0100

Fix message order for 'found foo'

--------------------------------------------------------------------------------
4badd00a9a | Raphael Langella | 2010-11-30 23:26:27 +0100

Removes an obsolete parameter in the exercise function
It's not needed anymore now that reskilling doesn't use exercise.

--------------------------------------------------------------------------------
e869e6b8e2 | Johanna Ploog | 2010-11-30 22:34:15 +0100

Also use mimic overlay tile for feature mimics.

--------------------------------------------------------------------------------
8f90a49864 | Arxale | 2010-11-30 21:32:40 +0100

Autoexplore will try to visit shop mimics
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
dcab600ae8 | Arxale | 2010-11-30 21:15:39 +0100

Fix feature mimics twitching on apportation
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
4b78309bb5 | Adam Borowski | 2010-11-30 20:52:36 +0100

s/greater wraith/eidolon/ in ZotDef as well.

--------------------------------------------------------------------------------
9b951c0e67 | Johanna Ploog | 2010-11-30 20:09:22 +0100

Disallow starvation by Xom swapping you to a vampiric weapon.
If you don't meet the usual hunger criteria, a monster wielding
a vampiric weapon is not considered for weapon swaps.

--------------------------------------------------------------------------------
6ea07d2206 | Vsevolod Kozlov | 2010-11-30 21:34:48 +0300

descript/monsters.txt: Rename the 'ogre-mage' entry to 'ogre mage'.

--------------------------------------------------------------------------------
56323bba13 | Adam Borowski | 2010-11-30 16:06:24 +0100

Mark ZotDef scores as such.

--------------------------------------------------------------------------------
6040a9010d | Arxale | 2010-11-30 15:50:07 +0100

Shop and portal mimics give 'comes into view' message

--------------------------------------------------------------------------------
2df12566b2 | Adam Borowski | 2010-11-30 15:45:49 +0100

Enable Dwarf monster sets for Ziggurats.
Possible problem: nearly every monster gets massive bands.

--------------------------------------------------------------------------------
2bd8ce8a62 | Adam Borowski | 2010-11-30 15:22:49 +0100

Sort uniques' MST_ enums together.

--------------------------------------------------------------------------------
1c9414851e | Adam Borowski | 2010-11-30 15:17:11 +0100

Remove unneeded value specifiers for MST_ enums.
These never get into a save file, so there's no need to preserve them.

--------------------------------------------------------------------------------
038a8bd767 | David Lawrence Ramsey | 2010-11-30 08:07:49 -0600

Handle the axed nisse the same way as the axed Paracelsus.

--------------------------------------------------------------------------------
76eef0e400 | Adam Borowski | 2010-11-30 14:58:49 +0100

Remove special placing of porridge in the Dwarven Hall.
This can be done easier with vaults if we want that.

--------------------------------------------------------------------------------
5188528250 | Adam Borowski | 2010-11-30 14:55:57 +0100

Give Paracelsus an axe.
That's what you get for inventing gnomes, undines, sylphs and salamanders.

--------------------------------------------------------------------------------
211a048821 | Adam Borowski | 2010-11-30 13:05:37 +0100

A command-line argument --print-charset to query the i/o encoding Crawl wants.
This is to let DGL support both Crawls that obey system locale settings and
ones which do not.

I guess we'll use another approach and this will be reverted, but if not,
having this commit in would reduce the amount of incompatible builds on CDO
(as it's currently impossible to update past trunk versions).

--------------------------------------------------------------------------------
731cd16c0b | Jude Brown | 2010-11-30 21:43:54 +1000

Merge branch 'master' into zotdef
Conflicts:
	crawl-ref/source/dungeon.cc

--------------------------------------------------------------------------------
14f96a4580 | Adam Borowski | 2010-11-30 12:22:49 +0100

Don't nerf ice statues out of Zotdef.

--------------------------------------------------------------------------------
83a779f4b1 | Adam Borowski | 2010-11-30 12:22:49 +0100

Comment that friendly orange statues are crippled out of Zotdef too.

--------------------------------------------------------------------------------
a894667de6 | Adam Borowski | 2010-11-30 12:22:49 +0100

Further formatting fixes (and a few minor regular ones).

--------------------------------------------------------------------------------
45cb568f01 | David Lawrence Ramsey | 2010-11-29 21:11:34 -0600

Mark deep dwarves unborn as CE_NOCORPSE, being undead and without blood.

--------------------------------------------------------------------------------
56baa695d9 | David Lawrence Ramsey | 2010-11-29 21:10:19 -0600

Properly mark non-generic deep dwarves as Z_NOZOMBIE.

--------------------------------------------------------------------------------
ac04957b87 | David Lawrence Ramsey | 2010-11-29 21:05:59 -0600

Rename the Dwarf Hall to the Dwarven Hall; it's still Dwarf for short.

--------------------------------------------------------------------------------
00ca6f0eda | David Lawrence Ramsey | 2010-11-29 20:33:55 -0600

Remove the nisse, and move its tile to UNUSED.

--------------------------------------------------------------------------------
f4f1114c48 | David Lawrence Ramsey | 2010-11-29 20:13:44 -0600

Remove unneeded brackets.

--------------------------------------------------------------------------------
ec42a2d073 | David Lawrence Ramsey | 2010-11-29 20:12:22 -0600

Resort equipment entry for plain deep dwarves.

--------------------------------------------------------------------------------
e43e0f674d | David Lawrence Ramsey | 2010-11-29 20:03:04 -0600

Remove the code for monster Burn Spellbook.
It's easy enough to put back in if/when the AI can handle it.

--------------------------------------------------------------------------------
1bd0d4c54b | David Lawrence Ramsey | 2010-11-29 19:31:13 -0600

Add weapon and armor entries for plain elves, just in case.
Plain orcs, dwarves, and spriggans already have these.

--------------------------------------------------------------------------------
f545168b6b | David Lawrence Ramsey | 2010-11-29 19:29:38 -0600

Resort equipment entry for plain dwarves.

--------------------------------------------------------------------------------
5b32930f23 | David Lawrence Ramsey | 2010-11-29 19:21:51 -0600

Add formatting fix.

--------------------------------------------------------------------------------
2265b7f33a | David Lawrence Ramsey | 2010-11-29 19:21:10 -0600

Minimize enum breakage on the next major binary compatibility break.

--------------------------------------------------------------------------------
9578c10dbe | David Lawrence Ramsey | 2010-11-29 14:23:35 -0600

Move monster Evocations from _generate_rod_power() to monster::skill().

--------------------------------------------------------------------------------
1928ed0317 | David Lawrence Ramsey | 2010-11-29 14:06:55 -0600

Change the staff of air damage message from "jolted" to "electrocuted".

--------------------------------------------------------------------------------
c06fc888be | David Lawrence Ramsey | 2010-11-29 14:04:34 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
63ebe35786 | Johanna Ploog | 2010-11-29 20:32:45 +0100

Fix #2890: Use string instead of const char* in ghost description.

--------------------------------------------------------------------------------
20ddfde79e | Johanna Ploog | 2010-11-29 19:46:19 +0100

Add coolio's water elemental tile.

--------------------------------------------------------------------------------
99e266d46d | Johanna Ploog | 2010-11-29 19:46:17 +0100

Add a tile for the ring of Charms.

--------------------------------------------------------------------------------
50799ddec5 | Johanna Ploog | 2010-11-29 19:46:16 +0100

Slight tutorial tweaks.

--------------------------------------------------------------------------------
f7b579b683 | David Lawrence Ramsey | 2010-11-29 12:34:17 -0600

Simplify.

--------------------------------------------------------------------------------
b4595c2673 | David Lawrence Ramsey | 2010-11-29 12:25:08 -0600

Adjust deep dwarf glyph colors a bit.
Deep dwarf death knights are now green, since they're the closest thing
to priests in the traditional sense, and a lot of similar priestly
monsters are green.

Deep dwarf artificers are now blue, so that they're no longer the same
color as deep dwarf scions.  There's no traditional color for
artificers, but at least they won't be confused with deep dwarf scions
anymore.

--------------------------------------------------------------------------------
bf231fa2a6 | David Lawrence Ramsey | 2010-11-29 12:12:27 -0600

Remove "Burn Spellbook" from the deep dwarf berserker spell list.
Without AI improvements, it'll lead to too much collateral damage.  Note
that the implementation is still in place, although now unused.

--------------------------------------------------------------------------------
69a18755fa | David Lawrence Ramsey | 2010-11-29 12:11:49 -0600

Comment fix.

--------------------------------------------------------------------------------
8cb57eabe0 | Adam Borowski | 2010-11-29 16:58:16 +0100

Fix a vault with unspecified branch.

--------------------------------------------------------------------------------
1d0375c8d7 | Adam Borowski | 2010-11-29 13:14:09 +0100

Fix window size changes sometimes being ignored.

--------------------------------------------------------------------------------
ae6a049401 | Johanna Ploog | 2010-11-29 09:37:25 +0100

Fix jungle_book's use of the elephant statue. Oops!

--------------------------------------------------------------------------------
47c85dc89b | Johanna Ploog | 2010-11-29 09:37:23 +0100

Equip dwarf statue with a small selection of weapons.

--------------------------------------------------------------------------------
a38c454c1d | David Lawrence Ramsey | 2010-11-29 00:03:53 -0600

In trog_book, properly describe the burned book as a spellbook.

--------------------------------------------------------------------------------
24b157133f | Johanna Ploog | 2010-11-29 01:14:27 +0100

Fix doubled article in the ghost description.

--------------------------------------------------------------------------------
270f99eb01 | Johanna Ploog | 2010-11-29 00:36:47 +0100

Mention ghosts' xl rank, species and background in the "seen" note.

--------------------------------------------------------------------------------
67b00ee9dc | Johanna Ploog | 2010-11-29 00:04:14 +0100

Display ghosts' xl rank, species and job when they comes into view.

--------------------------------------------------------------------------------
427c786708 | Johanna Ploog | 2010-11-28 22:45:02 +0100

Mark weapons subject to Tukima's Dance as "thrown" for autopickup.
I have some hazy memories of this working at some point, but when
I just tested this, it didn't.

--------------------------------------------------------------------------------
afae2cb692 | Johanna Ploog | 2010-11-28 22:45:00 +0100

Two more statue tiles by coolio and LoginError.

--------------------------------------------------------------------------------
dca8cbec03 | Arxale | 2010-11-28 22:14:40 +0100

Fix information leak about enchantment level

--------------------------------------------------------------------------------
88fe6c4e19 | Adam Borowski | 2010-11-28 22:14:39 +0100

Felids: nerf the xp apt.

--------------------------------------------------------------------------------
450da5b793 | Adam Borowski | 2010-11-28 22:14:39 +0100

Felids: flip-flop about the Fighting hp nerf once more.
We want late game people to actually lose lives, mere resist disadvantages
don't seem to be enough.

--------------------------------------------------------------------------------
ca13123109 | Johanna Ploog | 2010-11-28 21:44:07 +0100

Also display the skill progress in the skill tab mouseover.

--------------------------------------------------------------------------------
d984541dc5 | Johanna Ploog | 2010-11-28 21:05:28 +0100

Allow wizmode-changing of skill levels from the skill tab region.

--------------------------------------------------------------------------------
0a5115a752 | David Lawrence Ramsey | 2010-11-28 11:33:19 -0600

Make pale draconians use the same glyph color in both console and tiles.

--------------------------------------------------------------------------------
29ce9f581a | David Lawrence Ramsey | 2010-11-28 11:29:27 -0600

Add whitespace fixes.

--------------------------------------------------------------------------------
ba77be05cf | Johanna Ploog | 2010-11-28 17:00:35 +0100

Add minmay's blessed toe tile.

--------------------------------------------------------------------------------
77437c7d29 | Johanna Ploog | 2010-11-28 16:39:14 +0100

Add Minmay's marble golem and purge's palm tree as UNUSED tiles.

--------------------------------------------------------------------------------
4dd766c1a8 | Johanna Ploog | 2010-11-28 16:34:51 +0100

Add Minmay's different-coloured variant tiles for Tiamat.

--------------------------------------------------------------------------------
97a736cfd6 | Johanna Ploog | 2010-11-28 14:23:55 +0100

Many new player doll tiles, courtesy of coolio.

--------------------------------------------------------------------------------
19af79bb41 | Johanna Ploog | 2010-11-28 14:10:14 +0100

Add LoginError's new runed armour/weapon tiles.

--------------------------------------------------------------------------------
2b024865ed | Johanna Ploog | 2010-11-28 13:45:37 +0100

New statue tiles courtesy of coolio and LoginError.

--------------------------------------------------------------------------------
f9d5386e27 | Johanna Ploog | 2010-11-28 13:08:46 +0100

Add purge's wall tiles (curr. vault-only) and new dagger tile.
I've been meaning to add the wall tiles for a while now, but I
now feel that they both of these are too special to just crop up
randomly. Maybe if they were restricted to deeper levels?
Anyway, at least the skeleton one might be useful to vault
designers.

--------------------------------------------------------------------------------
d82590fd07 | Johanna Ploog | 2010-11-28 12:52:54 +0100

Add Chuck tile, modify Geryon tile. (Both done by coolio.)

--------------------------------------------------------------------------------
6e903d9713 | Johanna Ploog | 2010-11-28 12:16:03 +0100

Reposition Fedhas' altar. (Porkchop)

--------------------------------------------------------------------------------
1d2c24060d | Johanna Ploog | 2010-11-28 12:13:55 +0100

Tidy up tilereg-skl.cc: remove unnecessary includes.

--------------------------------------------------------------------------------
f20cd82343 | Johanna Ploog | 2010-11-28 12:13:53 +0100

New tiles: sky beast (psyshvl), spirit (coolio), grey drac. (minmay)

--------------------------------------------------------------------------------
52a126f815 | David Lawrence Ramsey | 2010-11-28 01:56:27 -0600

Tweak grey draconians' description to fit their amphibious nature.
This could probably be improved.

--------------------------------------------------------------------------------
d6273737b8 | David Lawrence Ramsey | 2010-11-28 01:44:40 -0600

Remove unneeded blank line.

--------------------------------------------------------------------------------
422ab5e585 | David Lawrence Ramsey | 2010-11-27 22:16:38 -0600

Fix wording.

--------------------------------------------------------------------------------
5d9b1a7583 | Johanna Ploog | 2010-11-28 01:51:27 +0100

Reuse air elemental tile as placeholder for the tornado spell tile.
No idea if the Stonesoup tornado actually works like that, but at
least it replaces the question mark tile in the books.

--------------------------------------------------------------------------------
c26c3b70b7 | Johanna Ploog | 2010-11-28 01:23:06 +0100

Hook the skill tiles into the tab region, yay! Toggling works now.
Doesn't handle skill redistribution yet because I haven't had a
look at that so far. We might also want to include wiz-mode change
of skill levels here.

--------------------------------------------------------------------------------
126f1aa7ac | Johanna Ploog | 2010-11-28 01:23:04 +0100

Add skill tiles to the gui sheet.

--------------------------------------------------------------------------------
f913ad54ee | Johanna Ploog | 2010-11-28 01:23:03 +0100

Add Denzi's skill tiles.

--------------------------------------------------------------------------------
08e121d30c | Johanna Ploog | 2010-11-28 01:23:00 +0100

Add the ground structure for a skill management tab in Tiles.
We've got the tiles already, after all.

--------------------------------------------------------------------------------
7e61870276 | David Lawrence Ramsey | 2010-11-27 18:05:33 -0600

Rename greater wraiths to eidolons.

--------------------------------------------------------------------------------
30171817a8 | David Lawrence Ramsey | 2010-11-27 18:01:08 -0600

Allow greater wraiths to show up in the Abyss.

--------------------------------------------------------------------------------
dc44756242 | David Lawrence Ramsey | 2010-11-27 17:51:12 -0600

Properly display a message when trying to uncurse an uncursed staff.

--------------------------------------------------------------------------------
c33b22068f | Adam Borowski | 2010-11-27 23:44:10 +0100

Make transformations affect stealth.

--------------------------------------------------------------------------------
bc7d05f61e | David Lawrence Ramsey | 2010-11-27 13:05:55 -0600

Remove obsolete reference to the Dwarf Hall's having multiple levels.

--------------------------------------------------------------------------------
5a3c8e9ecd | David Lawrence Ramsey | 2010-11-27 12:46:06 -0600

Consider monster Drain Life a success if it damaged anything.
Even if it doesn't heal the caster, killing enemy summons is good.

--------------------------------------------------------------------------------
e79f2b9556 | David Lawrence Ramsey | 2010-11-27 11:52:28 -0600

Clarify the Drain Life ability description.
Its targets need only be vulnerable to being drained, not necessarily of
natural holiness.  The two qualities are currently tied together on the
monster side, but if that changes, the description won't become
inaccurate.

--------------------------------------------------------------------------------
7f01bb944c | David Lawrence Ramsey | 2010-11-27 11:45:51 -0600

Make deep dwarves unborn use Agony instead of Symbol of Torment.

--------------------------------------------------------------------------------
4a395c2ec1 | David Lawrence Ramsey | 2010-11-27 11:45:28 -0600

Implement Agony as a monster spell.

--------------------------------------------------------------------------------
7e7997ba6f | David Lawrence Ramsey | 2010-11-27 11:41:46 -0600

Fix a flag for the Agony spell; it's not LOS-free, and needs a tracer.

--------------------------------------------------------------------------------
99748b0f3b | David Lawrence Ramsey | 2010-11-27 11:38:25 -0600

Properly describe a monster that's using Injury Mirror.

--------------------------------------------------------------------------------
ac42a092d3 | David Lawrence Ramsey | 2010-11-27 11:22:46 -0600

Add missing ability description for Injury Mirror.

--------------------------------------------------------------------------------
2155ced8de | Vsevolod Kozlov | 2010-11-27 18:37:44 +0300

Move common code from _plan_[12356] and _city_level into a separate function.

--------------------------------------------------------------------------------
c6b1eb2f79 | Vsevolod Kozlov | 2010-11-27 18:37:44 +0300

dungeon.cc: _plan_3 and _plan_5 don't need _plan_main to place the stairs.
It's already done by _build_vault_impl.

--------------------------------------------------------------------------------
f9714484ff | Johanna Ploog | 2010-11-27 16:33:22 +0100

Add coolio's mimic icon, modified by me to make it smaller.

--------------------------------------------------------------------------------
9ddc41d64f | Vsevolod Kozlov | 2010-11-27 15:26:04 +0300

Convert dungeon.cc:_plan_5 to lua.
Testing (with &P) seems to give reasonable results, so I assume I didn't break
it dramatically.

--------------------------------------------------------------------------------
e7f48bce2e | Vsevolod Kozlov | 2010-11-27 14:24:21 +0300

Add a wizard command (^E) that dumps level generation information.

--------------------------------------------------------------------------------
1e1c66fc45 | Vsevolod Kozlov | 2010-11-27 13:07:35 +0300

Remove paranoid checks for Sprint and Tutorial when hooking up the special room.
The special room can only be created by _builder_normal, and Sprint/Tutorial
levels are always built by _builder_by_branch.  Therefore the check for
sr.created suffices.

--------------------------------------------------------------------------------
f8af82e522 | Vsevolod Kozlov | 2010-11-27 12:54:19 +0300

Rename _specr_2 to _special_room_hook_up.

--------------------------------------------------------------------------------
c7b41a8ad9 | Vsevolod Kozlov | 2010-11-27 12:39:23 +0300

Remove a useless check for dgn_level_vetoed.
It is already checked above, and _specr_2 cannot change it.

--------------------------------------------------------------------------------
f4fdc01282 | Vsevolod Kozlov | 2010-11-27 12:33:40 +0300

Remove old Swamp layout code that was surrounded by #ifdef OLD_SWAMP_LAYOUT.

--------------------------------------------------------------------------------
f461313402 | David Lawrence Ramsey | 2010-11-27 03:01:33 -0600

Properly display a message when monster Injury Mirror expires.

--------------------------------------------------------------------------------
fcb605bcf5 | David Lawrence Ramsey | 2010-11-27 01:56:20 -0600

Fix false positives in _foe_should_res_negative_energy().

--------------------------------------------------------------------------------
0ec29aaae0 | David Lawrence Ramsey | 2010-11-27 01:51:56 -0600

Remove redundant comment.

--------------------------------------------------------------------------------
00bc533210 | David Lawrence Ramsey | 2010-11-27 00:08:04 -0600

For now, disallow friendly monsters from burning spellbooks.
Doing so could harm the player, or deprive them of piety if they worship
Trog.  There's also precedent for the former in disallowing friendly
monsters from casting Polymorph Other.

--------------------------------------------------------------------------------
6c26a20339 | David Lawrence Ramsey | 2010-11-26 23:28:07 -0600

Remove erroneous/redundant checks for natural holiness in Drain Life.
On the monster side, non-natural holiness means full negative energy
resistance, but on the player side, it doesn't.  The explicit check for
negative energy resistance is enough for both sides.

--------------------------------------------------------------------------------
6ae9801b10 | David Lawrence Ramsey | 2010-11-26 23:10:15 -0600

Move checks for foes' appearing rN+++ to their own function.

--------------------------------------------------------------------------------
a1c9b97faf | Adam Borowski | 2010-11-27 03:59:54 +0100

Fix burning bushes not using their tile.

--------------------------------------------------------------------------------
016f9c7561 | Adam Borowski | 2010-11-27 03:03:23 +0100

Merge branch 'master' into zotdef

--------------------------------------------------------------------------------
ca819b6d69 | Adam Borowski | 2010-11-27 02:56:19 +0100

Some formatting fixes.
I for one use i=0 in my own projects as well, but Crawl's standard is i = 0
everywhere.

--------------------------------------------------------------------------------
23041f525f | Adam Borowski | 2010-11-27 02:29:00 +0100

Automated whitespace fixes.

--------------------------------------------------------------------------------
c6bb1de809 | Adam Borowski | 2010-11-27 02:10:12 +0100

Fix a number of items not showing on ^F
The stash_filter just catches people by surprise, so it shouldn't be set
by default.  Also, most settings are wrong in some cases -- it would need
to be done dynamically rather than via a static list.

--------------------------------------------------------------------------------
d829e52995 | Arxale | 2010-11-27 01:48:18 +0100

Fix in_water check for wall-clinging

--------------------------------------------------------------------------------
c41d0d6460 | Adam Borowski | 2010-11-27 01:28:24 +0100

Unnerf liches a bit.

--------------------------------------------------------------------------------
549cf21dd1 | David Lawrence Ramsey | 2010-11-26 16:11:29 -0600

Add whitespace fixes.

--------------------------------------------------------------------------------
6af29a9f91 | Johanna Ploog | 2010-11-26 21:54:02 +0100

Don't display the blood tile if the topmost item is a corpse.
Since the corpse tiles include a different type of blood puddle,
overlaying the two versions looks really odd. So avoid that.

--------------------------------------------------------------------------------
05773df60c | Johanna Ploog | 2010-11-26 21:54:01 +0100

Use Lair's floor/wall tiles for the Forest and Spider Nest branches.

--------------------------------------------------------------------------------
42704fe23c | Vsevolod Kozlov | 2010-11-26 22:05:57 +0300

dungeon.cc: Handle turning rock into slimy walls in Slime in _fixup_walls.

--------------------------------------------------------------------------------
b0ac3737dc | Vsevolod Kozlov | 2010-11-26 22:05:57 +0300

dungeon.cc: Clean _fixup_walls somewhat by using switch.

--------------------------------------------------------------------------------
e983249ed3 | Vsevolod Kozlov | 2010-11-26 22:05:57 +0300

dungeon.cc: Remove an obsolete comment.

--------------------------------------------------------------------------------
a541971e20 | Vsevolod Kozlov | 2010-11-26 22:05:57 +0300

Move special cases for Vaults and Dis level generation into _builder_by_branch.
This makes it more in line with the rest of similar cases.

--------------------------------------------------------------------------------
5ac84345fb | Johanna Ploog | 2010-11-26 19:36:54 +0100

Add Omndra's new blood tiles.
The blood puddles are still in use for corpse tile generation.

--------------------------------------------------------------------------------
e8a224e15a | Johanna Ploog | 2010-11-26 18:22:11 +0100

Tweak travel exclusion tiles to be more helpful and less obnoxious.

--------------------------------------------------------------------------------
2db4d6ad32 | Adam Borowski | 2010-11-26 14:08:37 +0100

Simplify.

--------------------------------------------------------------------------------
d1b263756c | Vsevolod Kozlov | 2010-11-26 16:00:50 +0300

dungeon.cc: Remove unused arguments from _builder_normal and _builder_extras.

--------------------------------------------------------------------------------
96ce46e669 | Vsevolod Kozlov | 2010-11-26 15:40:39 +0300

dungeon.cc: Update comments near _builder_* functions.

--------------------------------------------------------------------------------
7b1f575eab | Vsevolod Kozlov | 2010-11-26 15:31:17 +0300

Replace builder_rc_type with a bool, since BUILD_QUIT is equivalent to 
BUILD_SKIP.
This also removes a redundant check for swamp/shoals in
dungeon.cc:_build_layout_skeleton.  It is not needed, since
dungeon.cc:_builder_by_branch returns false for those anyway.

--------------------------------------------------------------------------------
b1ed904b78 | Vsevolod Kozlov | 2010-11-26 14:45:11 +0300

Fix a small typo in rooms.des.

--------------------------------------------------------------------------------
76f2817638 | Adam Borowski | 2010-11-26 11:17:58 +0100

Special-case the notion of "safety" in the Abyss.
We could follow the actual logic of abyssal shift zone, but this way
is simpler and should be good enough.  Or perhaps, too good for the
player, even.

--------------------------------------------------------------------------------
3324580ba5 | Vsevolod Kozlov | 2010-11-25 21:56:57 +0300

dungeon.cc: Remove an obsolete comment.

--------------------------------------------------------------------------------
3cbdf46a2b | Vsevolod Kozlov | 2010-11-25 21:53:23 +0300

dungeon.cc: Replace a rather pointless switch statement with an if.

--------------------------------------------------------------------------------
c2a7a7b30b | Vsevolod Kozlov | 2010-11-25 21:33:04 +0300

Fix the level design example by adding an explicit KFEAT for O.

--------------------------------------------------------------------------------
a25917b9f4 | Vsevolod Kozlov | 2010-11-25 21:29:50 +0300

Document the removal of the 'O' symbol from .des syntax.

--------------------------------------------------------------------------------
66b28740ec | David Lawrence Ramsey | 2010-11-25 12:06:00 -0600

Add missing TAG_MAJOR_VERSION define for _monuse_names[].

--------------------------------------------------------------------------------
ae751b7158 | Adam Borowski | 2010-11-25 18:51:38 +0100

Detect portals on level when joining Ashenzari.
There's a question about when portal detection should start -- perhaps a
piety threshold would be better, but in any case there should be no need
to leave/enter the level to detect not yet discovered portals there.

Sewers, Ossuaries and even Baileys are likely to occur in the overflow
temple range, and other altars can appear anywhere (with Trovel, literally).

--------------------------------------------------------------------------------
d547018f7c | Adam Borowski | 2010-11-25 18:47:05 +0100

Handle removal of the rune_subst field from saves.

--------------------------------------------------------------------------------
d509b89e63 | Adam Borowski | 2010-11-25 18:47:01 +0100

Revert bump of the major save version.

--------------------------------------------------------------------------------
3a1f44834a | Vsevolod Kozlov | 2010-11-25 19:55:29 +0300

Remove rune_subst; bump save major version, map cache version; clean up after 
version bump.
This is rather large, but rune_subst was in the saves, and I decided it was
cleaner to bump the major version than the minor one.

This updates enum.h.  I apologize for the inconvenience.

This might have broken something, but the previous changes to .des files should
have taken care of that.

--------------------------------------------------------------------------------
4aa9c18a27 | Vsevolod Kozlov | 2010-11-25 18:52:52 +0300

Add explicit KFEAT: O = enter_branch, instead of relying on rune_subst.

--------------------------------------------------------------------------------
eef8659988 | Vsevolod Kozlov | 2010-11-25 18:51:09 +0300

Add KFEAT: O = enter_portal_vault to bazaars instead of relying on rune_subst.

--------------------------------------------------------------------------------
52f0d44d12 | Vsevolod Kozlov | 2010-11-25 17:05:47 +0300

dungeon.cc: Move glyph to feature translation into a separate function.
Not sure how good of an idea an additional, optional 'place' argument is, but it
still seems to be an improvement over duplicating the whole lot of stuff.

--------------------------------------------------------------------------------
6c065b588f | Vsevolod Kozlov | 2010-11-25 15:53:50 +0300

dungeon.cc: Remove some redundant reassignments.
I'm fairly sure it's functionally equivalent to the old version.

--------------------------------------------------------------------------------
60f01e7be8 | Raphael Langella | 2010-11-24 22:21:39 +0100

Pickup/drop menus: allow ' and . keys right from the start.

--------------------------------------------------------------------------------
a524527856 | David Lawrence Ramsey | 2010-11-24 12:33:50 -0600

Mark sky beasts as not having skeletons.
According to their descriptions, they're made of "clouds and tortured
flesh", and something partially made of the former most likely wouldn't
have bones.

--------------------------------------------------------------------------------
f77de5596b | David Lawrence Ramsey | 2010-11-24 11:28:28 -0600

Add formatting fix.

--------------------------------------------------------------------------------
a97cc2144e | Raphael Langella | 2010-11-24 17:23:32 +0100

Limit to LOS when searching for interesting features.
It should be much faster, and also fix Mantis 2863.

--------------------------------------------------------------------------------
10597dbab6 | Raphael Langella | 2010-11-24 17:23:32 +0100

Add proper monster fake enchantment for helpless message
This replace Arxale's ugly hack and fix Mantis 2853

--------------------------------------------------------------------------------
97c7172920 | Raphael Langella | 2010-11-24 17:23:31 +0100

Fix * in drop menu and , in pickup menu.
* now properly inverts selection instead of selecting drop_filter
and , selects all instead of inverting.

--------------------------------------------------------------------------------
241da46587 | Adam Borowski | 2010-11-24 03:04:39 +0100

Get rid of Romanian titles for Ashenzari.

--------------------------------------------------------------------------------
81432e9f0a | David Ploog | 2010-11-24 02:59:38 +0100

Mention cursor mode in pickup/drop help screen.

--------------------------------------------------------------------------------
74f1df85ae | Adam Borowski | 2010-11-24 01:30:25 +0100

When a malign tentacle gets severed, make it neutral (hostile-all) rather than 
hostile.
This makes the case of tentacles summoned by monsters reasonable.
Too bad, the behaviour of neutral monsters is a pile of bugs and accidental
logic, so this change may break it or make it useless.

--------------------------------------------------------------------------------
e65715a652 | David Lawrence Ramsey | 2010-11-23 11:21:34 -0600

Fully fix collateral damage problem with Yred's Drain Life.
Monster Drain Life will no longer drain the player if the monster is
non-attacking.

--------------------------------------------------------------------------------
76feaa5447 | David Lawrence Ramsey | 2010-11-23 11:16:59 -0600

Simplify.

--------------------------------------------------------------------------------
1aa0a81f83 | David Lawrence Ramsey | 2010-11-23 11:13:38 -0600

Fix apostrophization in monster equipment corrosion message.

--------------------------------------------------------------------------------
ebcdfd4a62 | David Lawrence Ramsey | 2010-11-23 10:59:52 -0600

Fix collateral damage problem with Yred's Drain Life.
It no longer drains life from non-attacking monsters in the player
version, or same-aligned monsters in the monster version.

--------------------------------------------------------------------------------
166ec74f3d | David Lawrence Ramsey | 2010-11-23 10:29:16 -0600

Fix Mantis 2862.
When a monster casts Silence, the message now properly references the
caster, and uses simple_monster_message() to avoid offscreen messages,

--------------------------------------------------------------------------------
9417dd1579 | MarvintheParanoidAndroid | 2010-11-23 10:38:28 +0100

Don't incorrectly mark Lev/Flight as useless

--------------------------------------------------------------------------------
f5a7919ee8 | Adam Borowski | 2010-11-23 10:37:16 +0100

Remove unfitting monsters from Dwarf, sanitize rarities.
Outstanding issues before they can be used for Zigs (or anywhere, really):
* berserkers destroy books for no gain
* drain life doesn't care for collateral damage
* neither does torment (replace with Agony)?

--------------------------------------------------------------------------------
15cfe32f09 | David Lawrence Ramsey | 2010-11-22 17:37:18 -0600

Add missing periods.

--------------------------------------------------------------------------------
d5e224dee8 | Raphael Langella | 2010-11-23 00:06:34 +0100

Remove corrosion resistance from artefact description
Mantis 2858

--------------------------------------------------------------------------------
f8933e099c | Raphael Langella | 2010-11-22 23:52:21 +0100

Replace the menu_cursor option by automagic
Happy birthday David :)

--------------------------------------------------------------------------------
0651fb252e | Raphael Langella | 2010-11-22 20:11:27 +0100

Add 2 asserts to transfer_skill_points()

--------------------------------------------------------------------------------
3b5b081490 | Raphael Langella | 2010-11-22 20:11:27 +0100

Fix forget from book

--------------------------------------------------------------------------------
e27ffd12eb | Raphael Langella | 2010-11-22 20:11:26 +0100

Don't destroy the spellbook if forgetting the spell failed

--------------------------------------------------------------------------------
25240fee30 | Adam Borowski | 2010-11-22 13:22:27 +0100

Fix monsters throwing unthrowable weapons if for some reason they have two.

--------------------------------------------------------------------------------
fb65c3d0f6 | Adam Borowski | 2010-11-22 13:09:22 +0100

Return a proper mslot for staves.

--------------------------------------------------------------------------------
ee4e7974c3 | Adam Borowski | 2010-11-22 12:06:56 +0100

Give Zig Spider levels the full weight, they can actually be interesting.
Ghost moths can screw up casters, and many Zig runners disregard rPois as
it's of low use there.  And even with rPois, red wasps may finish you while
ghost moths keep you tapped.

--------------------------------------------------------------------------------
a4ead3e94d | Adam Borowski | 2010-11-22 01:32:11 +0100

Revert "Don't put Ash's preserve message when enchanting uncursed items"
Uncursed items won't get there, this redundant checks just slows things down.

This reverts commit 2f966a98be888c28638ea4aa21676fa19967757a.

--------------------------------------------------------------------------------
e1ab0940b9 | Adam Borowski | 2010-11-22 01:30:51 +0100

Fix reversed logic for Tornado durations.

--------------------------------------------------------------------------------
a590c00412 | Adam Borowski | 2010-11-22 01:30:51 +0100

Abort Tornado when taking stairs.

--------------------------------------------------------------------------------
2f966a98be | Raphael Langella | 2010-11-22 00:56:53 +0100

Don't put Ash's preserve message when enchanting uncursed items

--------------------------------------------------------------------------------
87c29b252e | Adam Borowski | 2010-11-22 00:49:57 +0100

Fix Tornado not using the delay.  This made haste+swift do 3.3x as much damage!

--------------------------------------------------------------------------------
87b100a148 | Raphael Langella | 2010-11-22 00:18:02 +0100

Remove the call to set_transform() in CRTRegion::render()
This fix a bug in the new skill menu which I am currently rewriting.
This change doesn't seem to break anything, but I'm not sure of it.
I'm pushing it now to know as soon as possible if another fix is needed.

--------------------------------------------------------------------------------
1d5ce22577 | David Lawrence Ramsey | 2010-11-21 17:13:05 -0600

Fix Mantis 2855.
Potions of berserk rage are useful for vampires when full or above, so
they should be properly marked as such.

Also, generalize checks for undead using potions of berserk rage, cure
mutation, and gain [stat], as is done elsewhere.

--------------------------------------------------------------------------------
0067a82e9a | David Lawrence Ramsey | 2010-11-21 16:48:36 -0600

Don't spawn not yet coded monsters in classes of beings either.

--------------------------------------------------------------------------------
87b6e4cb8e | Adam Borowski | 2010-11-21 22:52:18 +0100

Use advpng (package advancecomp) instead if available.
This makes optimized builds slower, but still acceptable.

In general pngcrush/optipng are better, but in the case of Crawl's combined
textures, advpng wins by a large margin.  Actually, usually you can gain
from using both as while there's an overlap, they generally mess with
different stages of PNG compression, but here, global filters are null due
to properties of the textures so there are only per-line filters (done
optimally by libpng first) and deflate (where advpng is far stronger).

Note that the best/slowest setting gives significant gains, unlike pngcrush
or optipng for which the default settings are strictly optimal for 99.9%
images.

Other programs doing this task:
* optipng -- a newer implementation of pngcrush, with extra features.
  Generally better but not for these textures; slower.
* pngout (proprietary, Windows only): generally good though sometimes
  causes silent corruption!!!, on these textures hilariously bad.
* punypng (a web service, bleh): worse than advpng here.

--------------------------------------------------------------------------------
3797f704dd | Adam Borowski | 2010-11-21 22:37:58 +0100

Hard-code the best method for pngcrush.
The combined textures all share the same characteristics, no need to waste
build time trying to find the best method when it's already known.

--------------------------------------------------------------------------------
93a88c99c1 | Adam Borowski | 2010-11-21 15:24:36 +0100

Add vanilla spiders to Spider, they're not dummies anymore.  Keep them rare, as 
there's nothing interesting to them.

--------------------------------------------------------------------------------
a4fd03bfcf | Adam Borowski | 2010-11-21 15:17:32 +0100

Add Spider levels to Zigs, with bonus ghost moths and tarantellas.

--------------------------------------------------------------------------------
4856492af8 | Adam Borowski | 2010-11-21 15:07:03 +0100

Don't spawn not yet coded monsters.

--------------------------------------------------------------------------------
b30346bfd6 | Adam Borowski | 2010-11-20 12:47:21 +0100

Use the 3-argument cell_see_cell() rather than the 2-argument one.
They use different algorithms rather than doing the same with merely
a default argument.  This leads to inconsistency, and, if we use asserts,
crashes.

--------------------------------------------------------------------------------
15f7f5000d | Adam Borowski | 2010-11-20 00:21:45 +0100

Fix Scrying allowing smiting/aistriking/firestorming through walls.

--------------------------------------------------------------------------------
4f73572537 | Adam Borowski | 2010-11-20 00:06:02 +0100

Ash smite abuse: autoselecting targets.

--------------------------------------------------------------------------------
020d2add79 | Adam Borowski | 2010-11-20 00:00:37 +0100

Fix a data leak about magic resistance from unindentified items.

--------------------------------------------------------------------------------
23c98f6005 | David Lawrence Ramsey | 2010-11-19 16:52:35 -0600

Add another missing blank line.

--------------------------------------------------------------------------------
b80b829860 | David Lawrence Ramsey | 2010-11-19 16:15:31 -0600

Add missing blank line.

--------------------------------------------------------------------------------
c2d40f48d3 | David Lawrence Ramsey | 2010-11-19 16:14:29 -0600

Make functions check low/high colors in ugly_thing_colour_to_flavour().

--------------------------------------------------------------------------------
3b4da1363b | David Lawrence Ramsey | 2010-11-19 16:14:14 -0600

Move checks for whether a color is low or high into their own functions.

--------------------------------------------------------------------------------
965d79519a | Mark Mackey | 2010-11-19 11:33:06 +0000

Fixed up zot def maps

--------------------------------------------------------------------------------
bb789f0c17 | Adam Borowski | 2010-11-19 11:21:14 +0100

Fix problems with travelling to/from the Vestibule of Hell.

--------------------------------------------------------------------------------
006614036a | Adam Borowski | 2010-11-19 10:50:55 +0100

Remove a pointless assertion.

--------------------------------------------------------------------------------
3ccf70b043 | Adam Borowski | 2010-11-19 10:02:02 +0100

Temporarily revert "Fix the Damnation card not working outside the main 
dungeon."
While this is an obvious bug, it currently can screw players out of unique Pan
runes or make them lose a Zig.  Let's handle that first.

This reverts commit 1afb184b2dc94b2531091eba969284b9673b1522.

--------------------------------------------------------------------------------
1afb184b2d | Adam Borowski | 2010-11-19 01:44:50 +0100

Fix the Damnation card not working outside the main dungeon.
There's no reason it shouldn't work in portal vaults, Pan, labs, etc.
At most the Abyss might be excluded.

--------------------------------------------------------------------------------
76f05665a9 | Raphael Langella | 2010-11-18 21:50:27 +0100

Column adjustement in the skill screen

--------------------------------------------------------------------------------
59b3f4a3cf | David Lawrence Ramsey | 2010-11-18 12:15:19 -0600

Use simple_god_message() in a few more places.

--------------------------------------------------------------------------------
7f9c725802 | David Lawrence Ramsey | 2010-11-18 12:14:11 -0600

Add formatting fix.

--------------------------------------------------------------------------------
205f7446be | David Lawrence Ramsey | 2010-11-18 12:13:33 -0600

Tweak wording.

--------------------------------------------------------------------------------
7b5cdee4bd | David Lawrence Ramsey | 2010-11-18 12:12:39 -0600

Tweak punctuation.

--------------------------------------------------------------------------------
31c886ac34 | David Lawrence Ramsey | 2010-11-18 12:11:41 -0600

Add missing blank line.

--------------------------------------------------------------------------------
b3718a0d0c | Mark Mackey | 2010-11-18 09:34:41 +0000

Don't beef up boss monsters which are already uniques

--------------------------------------------------------------------------------
3f5b08ff29 | Adam Borowski | 2010-11-18 02:32:38 +0100

Make Tornado level 9.

--------------------------------------------------------------------------------
520cd0dc8d | Adam Borowski | 2010-11-18 02:22:51 +0100

Fix spurious Ashenzari's messages and/or {was cursed}.

--------------------------------------------------------------------------------
f963c77b26 | Adam Borowski | 2010-11-18 02:02:52 +0100

Run pngcrush in non-debug builds if installed.
This shaves 700KB per download, and reduces size when installed by the same
amount, at the cost of 10 seconds longer build (parallelizable).

This applies to combined generated textures, messing with source images is
another story.  The former reduces the size of binary builds, the latter
would affect source.

--------------------------------------------------------------------------------
547eca21ab | Adam Borowski | 2010-11-18 00:37:10 +0100

Fix "make clean" not getting rid of a copy of combined tile textures.
Since they depend on files that do get removed, keeping them is pointless.

--------------------------------------------------------------------------------
94452f091a | Adam Borowski | 2010-11-18 00:37:10 +0100

Tornado: reduce the effect's radius to 5.

--------------------------------------------------------------------------------
caa5519827 | Raphael Langella | 2010-11-17 22:51:26 +0100

Add cloud with disturbance tiles for invisible monsters in cloud.
This fix Mantis 2573.

I didn't do ink, forest fire, holy flames and gloom because even though they are
supposed to be opaque clouds, it seemed unnecessary.

To make the tiles, I used the unseen monster tile, filed it with 50% gray,
blurred it and used it as a layer mask to add transparency to the clouds.
I saved the shape as UNUSED/other/cloud_disturbance_shape.png
This is my first tiles, so someone more skilled should be able to do better.

--------------------------------------------------------------------------------
909544d14e | Raphael Langella | 2010-11-17 21:47:42 +0100

Fix merfolk keeping the fishtail tile when levitating out of water.

--------------------------------------------------------------------------------
38a2d669a8 | Raphael Langella | 2010-11-17 21:41:44 +0100

Add missing blank lines

--------------------------------------------------------------------------------
e63b8b6469 | Raphael Langella | 2010-11-17 21:40:30 +0100

Cosmetic: add missing brackets to nested ifs

--------------------------------------------------------------------------------
a64fa21a78 | Raphael Langella | 2010-11-17 21:35:39 +0100

Revert "more descriptive size names"
This reverts commit f51a42e9ed7ae0e17c1361bb16ffbd571602c1f5.

--------------------------------------------------------------------------------
392472d52d | David Lawrence Ramsey | 2010-11-16 17:33:21 -0600

Tweak spacing.

--------------------------------------------------------------------------------
8436c41f32 | Raphael Langella | 2010-11-16 22:11:17 +0100

Fix crash in newgame when pressing % before making any choice.

--------------------------------------------------------------------------------
db6096877c | David Lawrence Ramsey | 2010-11-16 10:31:09 -0600

Fix more inconsistencies with player transformations.
Pseudopods are now preserved in Blade Hands, statue, and lich forms.

--------------------------------------------------------------------------------
e3baefbcea | David Lawrence Ramsey | 2010-11-16 10:29:12 -0600

Remove redundant code banning tail-slaps and pseudopod-slaps in 
_tran_forbid_aux_attack().
None of the forms for which tail-slaps and pseudopod-slaps are banned
have usable tails or pseudopods.

--------------------------------------------------------------------------------
d06460797f | David Lawrence Ramsey | 2010-11-16 10:25:24 -0600

Remove obsolete comment.

--------------------------------------------------------------------------------
f158233c65 | David Lawrence Ramsey | 2010-11-16 10:24:24 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
bf7ec1e821 | David Lawrence Ramsey | 2010-11-15 17:13:37 -0600

Readd missing period.

--------------------------------------------------------------------------------
b074779061 | David Lawrence Ramsey | 2010-11-15 17:12:29 -0600

Fix indentation.

--------------------------------------------------------------------------------
611ed22d1d | Raphael Langella | 2010-11-15 22:48:28 +0100

Add a _skill_is_selectable function.
This simplify conditions a lot.

--------------------------------------------------------------------------------
88e78a625f | Raphael Langella | 2010-11-15 22:13:06 +0100

Fix alignment of aptitude in reskill menu

--------------------------------------------------------------------------------
6f0aad36cc | Raphael Langella | 2010-11-15 22:06:21 +0100

Disallow "show all" when selecting the first skill

--------------------------------------------------------------------------------
33fa8fb24f | Raphael Langella | 2010-11-15 21:59:35 +0100

Use you.transfer_from_skill instead of passing a from_skill parameter.
The select_skill and _display_skill_table function now use directly
you.transfer_from_skill and you.transfer_skill_points instead of parameters.

--------------------------------------------------------------------------------
bd99aaa6a2 | Raphael Langella | 2010-11-15 21:33:57 +0100

Use ashenzari_end_transfer function when transfer is finished

--------------------------------------------------------------------------------
6556034cc5 | Raphael Langella | 2010-11-15 21:14:20 +0100

_display_skill_table: change the show_all boolean into a flag

--------------------------------------------------------------------------------
18d9d3b749 | Raphael Langella | 2010-11-15 21:14:20 +0100

Abilities: change permanent HP/MP cost description

--------------------------------------------------------------------------------
894d9a509b | Raphael Langella | 2010-11-15 21:14:19 +0100

Treat "tried" and "zapped" strings as inscriptions in item_def::name()
This shorten the length of "tried on foo" inscription

--------------------------------------------------------------------------------
f702fe2616 | Raphael Langella | 2010-11-15 21:14:19 +0100

Don't append "tried..." strings when asking for DESC_DBNAME
This fix Mantis 2838

--------------------------------------------------------------------------------
2b370b6b53 | Raphael Langella | 2010-11-15 21:14:18 +0100

Don't include item inscription in the "tried on foo" message

--------------------------------------------------------------------------------
6ecae1189c | Arxale | 2010-11-15 21:14:18 +0100

Show detailed costs of abilities 2

--------------------------------------------------------------------------------
416eb0bc8c | Raphael Langella | 2010-11-15 21:14:17 +0100

Move all corrosion resistance information into its own function

--------------------------------------------------------------------------------
8998f6f38a | Arxale | 2010-11-15 21:14:17 +0100

More detailed corrosion resistance reporting

--------------------------------------------------------------------------------
51c27d2312 | Raphael Langella | 2010-11-15 21:14:16 +0100

Don't report found items twice after being shafted
Fix mantis 2836

--------------------------------------------------------------------------------
1c3fa2f8e0 | David Lawrence Ramsey | 2010-11-15 13:48:03 -0600

Properly put Ash's knowledge transfer abilities in invocation slots.

--------------------------------------------------------------------------------
31a9a56916 | David Lawrence Ramsey | 2010-11-15 13:47:21 -0600

Add missing blank line.

--------------------------------------------------------------------------------
2b9f31dd5f | David Lawrence Ramsey | 2010-11-15 12:28:52 -0600

Add missing end-of-file newline.

--------------------------------------------------------------------------------
73efda5286 | David Lawrence Ramsey | 2010-11-15 10:43:41 -0600

Typo fix.

--------------------------------------------------------------------------------
03cca5261e | David Lawrence Ramsey | 2010-11-15 10:42:44 -0600

Tweak wording.

--------------------------------------------------------------------------------
24f40a530b | David Lawrence Ramsey | 2010-11-15 10:42:16 -0600

Add punctuation fix.

--------------------------------------------------------------------------------
3f63c60e2c | Adam Borowski | 2010-11-15 15:16:20 +0100

Revert "Remove useless TAG_MAJOR_VERSION condition"
This reverts commit 1668a8926a30b46a5b987ef7d9298c8019b629e7.
It was actually needed.
Since few games on CDO use the new system, I'll use the old values.

--------------------------------------------------------------------------------
09a885294c | David Lawrence Ramsey | 2010-11-14 19:29:47 -0600

Add one more missing period.

--------------------------------------------------------------------------------
b86f61f113 | David Lawrence Ramsey | 2010-11-14 19:26:23 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
b9176f1d0c | David Lawrence Ramsey | 2010-11-14 18:37:29 -0600

Display spaces instead of +/- signs before aptitudes of 0.
This makes the numeric values align vertically, as in aptitudes.txt.

--------------------------------------------------------------------------------
eac0088fa5 | David Lawrence Ramsey | 2010-11-14 18:34:43 -0600

Add more missing periods.

--------------------------------------------------------------------------------
4cb6d5f000 | Adam Borowski | 2010-11-14 23:49:32 +0100

Deal with a missing period.

--------------------------------------------------------------------------------
34bebbc0a7 | David Lawrence Ramsey | 2010-11-14 16:30:11 -0600

Add spelling fixes.

--------------------------------------------------------------------------------
58bf720eb1 | Adam Borowski | 2010-11-14 23:10:35 +0100

Tornado: IOODs are indestructible, no need to warn.

--------------------------------------------------------------------------------
7d0849c411 | Adam Borowski | 2010-11-14 22:59:13 +0100

Add Tornado to Vehumet's list.
It doesn't get an increased radius of effect, but it still costs 1 mana less
and receives a wizardry bonus.

--------------------------------------------------------------------------------
1668a8926a | Raphael Langella | 2010-11-14 22:50:11 +0100

Remove useless TAG_MAJOR_VERSION condition

--------------------------------------------------------------------------------
fc7fc18c53 | Raphael Langella | 2010-11-14 22:43:48 +0100

Add an ability to Ash to end skill transfer

--------------------------------------------------------------------------------
b4db311bb8 | Raphael Langella | 2010-11-14 21:49:31 +0100

Preserve crosstrained skill points tracking when simulating reskilling

--------------------------------------------------------------------------------
8c40cdec5c | Raphael Langella | 2010-11-14 21:29:01 +0100

Character selection: highlight recommended species in aptitudes table (%)
If you select a species first, it will be highlighted. If you select a
background first, all recommended species will be highlighted.

--------------------------------------------------------------------------------
2945fa685d | Adam Borowski | 2010-11-14 13:19:51 +0100

Fix capitalization in death milestones.

--------------------------------------------------------------------------------
a69646875f | Adam Borowski | 2010-11-14 02:49:55 +0100

Tornado: fix Fedhas not noticing you being nasty to trees.

--------------------------------------------------------------------------------
193855ffac | Adam Borowski | 2010-11-14 02:41:01 +0100

Tornado: completely ignore submerged monsters.

--------------------------------------------------------------------------------
ec16dad52a | Adam Borowski | 2010-11-14 02:38:41 +0100

Tornado: make monsters be woken by damage if they somehow ignored the noise.

--------------------------------------------------------------------------------
b97f4f5e20 | Raphael Langella | 2010-11-14 00:59:49 +0100

Highlight selected skill in skill transfer menu

--------------------------------------------------------------------------------
d20c3a073e | Raphael Langella | 2010-11-14 00:56:02 +0100

Don't antitrain skills at level 0

--------------------------------------------------------------------------------
0cc2474100 | Raphael Langella | 2010-11-14 00:47:28 +0100

Only show colour for anti/cross-training in aptitude mode

--------------------------------------------------------------------------------
a25b047732 | Raphael Langella | 2010-11-14 00:42:46 +0100

Properly handle reskilling end
This fix a bug where the amount left to transfer could receive a negative value.

--------------------------------------------------------------------------------
60985f5637 | Raphael Langella | 2010-11-14 00:11:35 +0100

Fix typo

--------------------------------------------------------------------------------
36f3b56513 | Raphael Langella | 2010-11-13 23:58:13 +0100

Show Ash's reskilling progress on the m-screen

--------------------------------------------------------------------------------
2c0e06c5bd | Raphael Langella | 2010-11-13 23:58:12 +0100

change the _display_skill_table to use flags instead of booleans
It already has 3 boolean parameters, and I need a fourth one. So better to
switch to flags.

--------------------------------------------------------------------------------
d4ac33fbbb | Adam Borowski | 2010-11-13 23:35:32 +0100

Add some penance welcome messages.
To do: Beogh, CB, Fedhas, Yred; the others don't have penance for worshippers.

--------------------------------------------------------------------------------
4ba8858561 | Shayne Halvorson | 2010-11-13 23:11:03 +0100

Move god welcome messages into godspeak.txt

--------------------------------------------------------------------------------
8d75151506 | Adam Borowski | 2010-11-13 23:06:30 +0100

Tornado: levitate affected monsters.

--------------------------------------------------------------------------------
053c4894db | Adam Borowski | 2010-11-13 23:06:25 +0100

Allow monsters to be temporarily levitated.
Since this was hard-coded to the monster's class, there are likely many places
which won't obey this enchantment.

--------------------------------------------------------------------------------
d1ff33aa9e | Adam Borowski | 2010-11-13 22:17:14 +0100

Tornado: expire it before levitation, so the order makes some sense.

--------------------------------------------------------------------------------
6a1764d4f8 | Adam Borowski | 2010-11-13 22:08:38 +0100

Tornado: don't warn if the friendlies around are immune.

--------------------------------------------------------------------------------
fd1b2a45dc | Eronarn Palazzo | 2010-11-13 21:03:15 +0100

Draconian patch to help flavour a bit.

--------------------------------------------------------------------------------
1f9277b748 | Adam Borowski | 2010-11-13 20:50:35 +0100

Make tornado immunity res_wind(), granting protection from airstrike as well.
Only two monsters have it: air elemental and ball lightning.

Also, monster AI has been updated to make them avoid raging winds.

--------------------------------------------------------------------------------
bd156407ba | Adam Borowski | 2010-11-13 19:28:33 +0100

Give refrig a debug message about damage done so we can compare it with the 
competition.

--------------------------------------------------------------------------------
665e565de5 | Adam Borowski | 2010-11-13 19:04:50 +0100

Fix a crash when autoinscribing items no longer in the inventory.

--------------------------------------------------------------------------------
0904294bef | Adam Borowski | 2010-11-13 17:23:55 +0100

Tornado: make pure meteorological monsters immune (ball lightning, air 
elemental).

--------------------------------------------------------------------------------
14b2efa3c2 | David Lawrence Ramsey | 2010-11-13 08:35:25 -0600

Tweak wording.

--------------------------------------------------------------------------------
3fbd435d38 | Adam Borowski | 2010-11-13 14:33:30 +0100

Tornado: show lava/water underneath by recoloring the clouds.

--------------------------------------------------------------------------------
d3e9afd1d9 | Adam Borowski | 2010-11-13 13:52:06 +0100

Tornado: add a description.

--------------------------------------------------------------------------------
7d16f1f137 | Adam Borowski | 2010-11-13 13:00:38 +0100

Tornado: in debug mode, mention the damage done.

--------------------------------------------------------------------------------
eb8645b7fa | Adam Borowski | 2010-11-13 12:54:14 +0100

Tornado: try to visualize regions where the power is very low.

--------------------------------------------------------------------------------
35a120368b | Adam Borowski | 2010-11-13 12:45:42 +0100

Felids: adjust recommended backgrounds.
I added all types of conjurers since even with baddish apts, speed > 10
makes them a superior choice.

Removed all invocation-based (Pr/He/CK/Pa) and weapon users.

Removed assassins as well, since unarmed stabs are not a good idea.

New stalkers are just weaker transmuters, so they probably should go as
well.  I kept them because of stealth, but it doesn't make up for losing
transformations.

--------------------------------------------------------------------------------
e1c98f1997 | Adam Borowski | 2010-11-13 11:20:27 +0100

Felids: mark milestones of your non-final splats.

--------------------------------------------------------------------------------
1e58f13b11 | Adam Borowski | 2010-11-13 01:27:30 +0100

Enable Tornado in-game.  Moving things around is still not in, though.

--------------------------------------------------------------------------------
4e8b42c869 | Adam Borowski | 2010-11-13 01:24:11 +0100

Reduce Tornado durations at high power.

--------------------------------------------------------------------------------
7056be4ff1 | Adam Borowski | 2010-11-13 00:49:33 +0100

Make semi-automated removal of version tags slightly better.

--------------------------------------------------------------------------------
bc3e30a9ff | Raphael Langella | 2010-11-13 00:47:21 +0100

Reskilling: show aptitudes in the first skill selection menu

--------------------------------------------------------------------------------
e8f6a6bfde | Raphael Langella | 2010-11-13 00:06:17 +0100

Properly scale reskilling with the amount of crosstraining
It is now a bit less harsh if you have just crosstrained a little bit, and
it handle properly the case when you had double crosstrain bonus.

--------------------------------------------------------------------------------
8287a306cd | Raphael Langella | 2010-11-12 23:06:26 +0100

Ash's progressive reskilling
Transfering skill points isn't instantaneous anymore, it's done each time
you earn some XP. The rate might need some adjustment.
It increases TAG_MINOR_VERSION

--------------------------------------------------------------------------------
67213fe752 | Raphael Langella | 2010-11-12 19:38:29 +0100

Ash's reskilling: show the result of the transfer in the skill selection menu.

--------------------------------------------------------------------------------
847dc95d15 | Raphael Langella | 2010-11-12 19:38:28 +0100

Prevent reskilling higher than skill level 27

--------------------------------------------------------------------------------
4d11d611a3 | Raphael Langella | 2010-11-12 19:38:27 +0100

Ash's reskilling uses m-screen layout for skill selection

--------------------------------------------------------------------------------
5a91b43121 | Raphael Langella | 2010-11-12 19:38:26 +0100

Show cross/anti training as aptitude bonus/malus on the m-screen

--------------------------------------------------------------------------------
410a0af17b | Adam Borowski | 2010-11-12 13:10:56 +0100

Ashenzari: don't list cursed items at max enchanment.

--------------------------------------------------------------------------------
26b951591a | Adam Borowski | 2010-11-12 13:07:51 +0100

Ashenzari: block scrolls of enchant foo from removing curses.

--------------------------------------------------------------------------------
c2f7573d49 | Adam Borowski | 2010-11-12 10:52:19 +0100

Add custom clouds for Tornado, coloured in a spiral pattern.

--------------------------------------------------------------------------------
a0c8331f0b | Adam Borowski | 2010-11-12 09:18:41 +0100

Put two of Poor Yurik's submissions into UNUSED/

--------------------------------------------------------------------------------
0a3f00ba83 | Adam Borowski | 2010-11-12 00:27:57 +0100

The Tornado spell, first stab.
There's no separate cloud type yet (I want greyish but not blocking LOS ones),
and moving monsters/items is not implemented yet.

Pushing so people can suggest an improvement to visual effects which suck
currently.

--------------------------------------------------------------------------------
b7777b1bcd | Adam Borowski | 2010-11-11 15:06:47 +0100

Fix a crash with shop mimics.

--------------------------------------------------------------------------------
bb4280c91a | Raphael Langella | 2010-11-11 14:49:12 +0100

Win/Tiles: Fine tune window placement and size

--------------------------------------------------------------------------------
f278bc1286 | Enne Walker | 2010-11-10 18:47:07 -0800

Improved beards! (Thank you, Terence Reeves.)

--------------------------------------------------------------------------------
8fdbcaa6c4 | Raphael Langella | 2010-11-11 00:18:09 +0100

Refix double include of option file
My previous fix just didn't work. We just ignore double include now.

--------------------------------------------------------------------------------
6bd2a451f1 | Raphael Langella | 2010-11-11 00:04:29 +0100

Refactor Ashenzari transfer knowledge abiliy
Make it compatible with the new anti-training system. It is also much simpler
and don't use the exercise function anymore.

--------------------------------------------------------------------------------
94457913f2 | Mark Mackey | 2010-11-10 21:25:07 +0000

Removed files checked-in by mistake

--------------------------------------------------------------------------------
2eb4bbe48f | mark | 2010-11-10 21:23:33 +0000

Merge branch 'zotdef-0.6' into zotdef-master
Much manual merging, and a few fixes for changes in the code (particularly
monsters->monster and the like). Now compiles and seems to work. Zot Def
added to start menu.

--------------------------------------------------------------------------------
538dc9027e | Raphael Langella | 2010-11-10 20:52:59 +0100

Renamed _weap_crosstrain_bonus to crosstrain_bonus

--------------------------------------------------------------------------------
b24ae68eaf | Raphael Langella | 2010-11-10 20:52:07 +0100

Anti-training refactoring
Removed all the slower training conditions for magic schools and replaced it
with double XP cost but only for opposite elemental schools.

--------------------------------------------------------------------------------
237f81113d | Raphael Langella | 2010-11-10 20:45:28 +0100

Make the check_skill_level_change function public
It also now takes a just_check boolean as an optional parameter, and return the
number of level gained/lost. Not used right now, but it will be.

--------------------------------------------------------------------------------
4988141a08 | David Lawrence Ramsey | 2010-11-09 17:45:57 -0600

Fix some inconsistencies with player transformations.
Talons are now preserved in Blade Hands, statue, and lich forms; fangs
are now preserved in statue form; and tails are now preserved in statue
form.

--------------------------------------------------------------------------------
43c036f0d0 | Raphael Langella | 2010-11-09 23:42:32 +0100

Don't load extra_opts twice
This fix Mantis 2806

--------------------------------------------------------------------------------
ebfb02749f | Adam Borowski | 2010-11-09 16:16:05 +0100

Merge branch 'master' into unicode

--------------------------------------------------------------------------------
7a7d45293c | Adam Borowski | 2010-11-09 16:06:41 +0100

Use the system locale rather than hardcoded en_US.UTF-8 (twb).
If it's not an UTF-8 one, we simply set it back.  A proper fix that works
for all charset will come later for 0.8.

--------------------------------------------------------------------------------
3c54a32d4e | U-nexus\tigen | 2010-11-09 16:06:41 +0100

fix compile error with setting escdelay with new ncurses

--------------------------------------------------------------------------------
75be856d0d | Adam Borowski | 2010-11-09 16:06:41 +0100

Wooden missiles are never useless with StS, large rocks with Sandblast.
The old logic was Felid specific, but halflings with javelins or non-ogres
with rocks shouldn't be excluded.

--------------------------------------------------------------------------------
7ada25d44c | Adam Borowski | 2010-11-09 16:06:41 +0100

Autosave sprint every once in a while, to keep crashes from losing the game.

--------------------------------------------------------------------------------
f56cf0f155 | Adam Borowski | 2010-11-09 16:06:41 +0100

Fix max_radius in distance_iterator, rename it again, allow querying current 
radius.

--------------------------------------------------------------------------------
3923d31ba8 | Adam Borowski | 2010-11-09 16:06:41 +0100

Remove an useless compile check.  We don't rely on the enum values anymore.

--------------------------------------------------------------------------------
95ed6714d1 | Eino Keskitalo | 2010-11-09 16:39:26 +0200

Move Horrible Things and Haunt from Summonings into Demonology.
Also remove Call Imp, Abjuration and Recall from the latter.

--------------------------------------------------------------------------------
c8d7b1f2c6 | Arxale | 2010-11-09 13:40:26 +0100

Colouring labyrinth messages

--------------------------------------------------------------------------------
12e179f836 | Arxale | 2010-11-09 12:57:10 +0100

Autoinscribe randarts after death

--------------------------------------------------------------------------------
9161fe4bf3 | Arxale | 2010-11-09 12:56:34 +0100

Inscribe 'tried on foo'

--------------------------------------------------------------------------------
217d7f753e | Arxale | 2010-11-08 23:23:59 +0100

Colours for output of Ctrl-F

--------------------------------------------------------------------------------
5e120389eb | Raphael Langella | 2010-11-08 23:23:58 +0100

Move the static mapshadow to a member of env
This is to avoid having several static shadow maps in different place of the
code.

--------------------------------------------------------------------------------
1626249cf6 | Raphael Langella | 2010-11-08 23:23:58 +0100

Simplify
There's no need to change the running mode here.

--------------------------------------------------------------------------------
8852755ff4 | Raphael Langella | 2010-11-08 23:22:19 +0100

Add missing include to fix compilation

--------------------------------------------------------------------------------
106f0a0db4 | Arxale | 2010-11-08 23:22:18 +0100

Consistent messages for things coming into view

--------------------------------------------------------------------------------
673e9fb9d1 | David Lawrence Ramsey | 2010-11-08 10:59:37 -0600

Experimentally decrease bushes' AC from 30 to 15.
The only other monsters with an AC of 30 are Murray, Cerebov, and
Asmodeus(!); monsters with an AC of 20 include orbs of fire and iron
dragons; and monsters with an AC of 13 include dire elephants and
hellephants.  Other stationary monsters with an AC of 15 include armour
mimics and silver statues.

--------------------------------------------------------------------------------
22201216d1 | David Lawrence Ramsey | 2010-11-08 10:36:23 -0600

Fix reversed minimum AC for large vs. small undead abominations.
Also, set the AC bonus formula back to what it was, since it's now
working with the proper minimum AC.

--------------------------------------------------------------------------------
29fc6c7426 | David Lawrence Ramsey | 2010-11-08 10:19:50 -0600

Make AC bonuses apply to all undead abominations, to an extent.
The freshest abominations still get the highest bonuses.  Also, adjust
the AC bonus formula to compensate for the change to minimum AC.

--------------------------------------------------------------------------------
49a68d8f62 | David Lawrence Ramsey | 2010-11-08 09:36:30 -0600

Add minimum AC value for fresh undead abominations.

--------------------------------------------------------------------------------
8bc98dce95 | David Lawrence Ramsey | 2010-11-08 09:11:26 -0600

Fix off-by-one error in _undead_abomination_convert().

--------------------------------------------------------------------------------
a2e8e47f64 | David Lawrence Ramsey | 2010-11-07 21:48:44 -0600

Attempt to make freshness mean something for small undead abominations.
Currently, they use the same formula as large abominations, but with
minimum and maximum values halved.

--------------------------------------------------------------------------------
619e06a1ed | David Lawrence Ramsey | 2010-11-07 21:35:10 -0600

Simplify.

--------------------------------------------------------------------------------
b789bc249f | David Lawrence Ramsey | 2010-11-07 21:02:02 -0600

Fix erroneous return values in _make_undead_abomination().

--------------------------------------------------------------------------------
2aa8cf0e4a | David Lawrence Ramsey | 2010-11-07 20:43:11 -0600

Readd comment fixes.

--------------------------------------------------------------------------------
4d6a9891c1 | David Lawrence Ramsey | 2010-11-07 20:40:26 -0600

Revert "Move the routines to make demonic abominations undead to mon-util.cc."
This reverts commit 03057ebe2b20d8096af13ffdabcec683901765a8.

I originally moved them to see if they could be useful in placing undead
abominations through means other than the spell, but seeing how they're
currently implemented, it's too difficult.

--------------------------------------------------------------------------------
03057ebe2b | David Lawrence Ramsey | 2010-11-07 19:58:13 -0600

Move the routines to make demonic abominations undead to mon-util.cc.

--------------------------------------------------------------------------------
dd30aa4632 | David Lawrence Ramsey | 2010-11-07 19:48:17 -0600

Remove redundant return.

--------------------------------------------------------------------------------
e99e26fe4b | David Lawrence Ramsey | 2010-11-07 19:12:58 -0600

Split the routine to create undead abominations into subfunctions.
Notably, the routine to create the abomination is now separate from the
routine to convert a demonic abomination into an undead one.

--------------------------------------------------------------------------------
0716da25ca | David Lawrence Ramsey | 2010-11-07 18:03:51 -0600

Set undead abominations' colors after creating them instead of during.

--------------------------------------------------------------------------------
d21b595d17 | David Lawrence Ramsey | 2010-11-07 17:40:47 -0600

Move the routine to create undead abominations into its own function.

--------------------------------------------------------------------------------
2687dae695 | Raphael Langella | 2010-11-08 00:22:54 +0100

Always add helpless when monster is incapacitated regardless of to_hit roll.

--------------------------------------------------------------------------------
b05091fa74 | Raphael Langella | 2010-11-08 00:03:05 +0100

Simplify

--------------------------------------------------------------------------------
90b668c251 | Arxale | 2010-11-07 22:49:57 +0100

Partially remove 'hepless' messages

--------------------------------------------------------------------------------
1a62f6dd4e | David Lawrence Ramsey | 2010-11-07 15:41:47 -0600

Properly set an upper limit for fresh undead abominations' AC bonuses.
There was no limit before, unlike hit dice, which could cause problems
if enough fresh corpses were used (unlikely, but possible).

The current upper limit for abominations with bonuses is 20 AC, since
the upper limit for their HD is 30, and the highest AC to be found on
monsters with 30 HD (e.g. orbs of fire) is 20.

--------------------------------------------------------------------------------
3adce129cd | Raphael Langella | 2010-11-07 22:17:05 +0100

Fix adding unsigned int and int giving wrong result
This fix Mantis 2819

--------------------------------------------------------------------------------
e7ee702475 | David Lawrence Ramsey | 2010-11-07 14:17:54 -0600

Fix off-by-one discrepancy in undead large abominations' minimum mass.

--------------------------------------------------------------------------------
f1bb8035d2 | David Lawrence Ramsey | 2010-11-07 13:29:25 -0600

Reverse logic to randomly determine if an undead abomination is red.
They're now red if there are more unrotted corpses than rotted ones.

--------------------------------------------------------------------------------
89f3dfc285 | David Lawrence Ramsey | 2010-11-07 13:21:42 -0600

Constify.

--------------------------------------------------------------------------------
08934c2ce7 | David Lawrence Ramsey | 2010-11-07 13:15:51 -0600

Tweak success message in Twisted Resurrection.

--------------------------------------------------------------------------------
83f6239432 | David Lawrence Ramsey | 2010-11-07 13:13:47 -0600

Refactor message display logic in Twisted Resurrection.
The "pulpy mess" message, indicating spell failure due to either
insufficient corpse mass or abomination placement failure, is now only
displayed in one place instead of two.

--------------------------------------------------------------------------------
579b1df481 | David Lawrence Ramsey | 2010-11-07 12:24:42 -0600

In Twisted Resurrection, count unrotted instead of rotted corpses.

--------------------------------------------------------------------------------
57aaa2277e | David Lawrence Ramsey | 2010-11-07 11:38:55 -0600

Simplify.

--------------------------------------------------------------------------------
2a81be08b5 | David Lawrence Ramsey | 2010-11-07 11:35:49 -0600

Revert "Add Cause Fear to monster rod spells (from the rod of warding)."
This reverts commit 794a38a1c8ebfc7022c30972e4a3af67a803bdce.

It's too generic in its effects to be used indiscriminately; if the
monster has non-intelligent allies around, they'll be afraid too.

--------------------------------------------------------------------------------
aaacdcc173 | David Lawrence Ramsey | 2010-11-07 11:22:20 -0600

Add minor cosmetic fix.

--------------------------------------------------------------------------------
f77942a381 | David Lawrence Ramsey | 2010-11-07 11:17:40 -0600

Remove now-inaccurate debug message.

--------------------------------------------------------------------------------
794a38a1c8 | David Lawrence Ramsey | 2010-11-07 11:17:40 -0600

Add Cause Fear to monster rod spells (from the rod of warding).

--------------------------------------------------------------------------------
50f0dbb27f | Raphael Langella | 2010-11-07 14:56:53 +0100

Add an assertion

--------------------------------------------------------------------------------
6632c35f1d | Raphael Langella | 2010-11-07 14:56:18 +0100

Simplify phrasing

--------------------------------------------------------------------------------
e5f2eb70b1 | Arxale | 2010-11-07 14:55:25 +0100

More information when MR is effective

--------------------------------------------------------------------------------
0f29ab9ae0 | Raphael Langella | 2010-11-07 13:45:44 +0100

Remove the damage punctuation when missing
This was introduced in the "More information when missing" patch. As I
stated on the wiki, I don't think it's the right way to address the problem

--------------------------------------------------------------------------------
2fede061e1 | Arxale | 2010-11-07 13:45:42 +0100

More information when missing

--------------------------------------------------------------------------------
317645e0b4 | David Lawrence Ramsey | 2010-11-07 01:05:54 -0500

Simplify.

--------------------------------------------------------------------------------
29bea4724e | David Lawrence Ramsey | 2010-11-07 01:00:19 -0500

Move elemental restrictions and terrain changes to their own function.

--------------------------------------------------------------------------------
2396f7d648 | David Lawrence Ramsey | 2010-11-06 23:08:45 -0500

Add Summon Elemental to ghost spells.

--------------------------------------------------------------------------------
8fdf19c56f | David Lawrence Ramsey | 2010-11-06 22:51:31 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e847f57bbb | David Lawrence Ramsey | 2010-11-06 22:50:39 -0500

Don't use mprf() when mpr() will do.

--------------------------------------------------------------------------------
5e74bb2848 | David Lawrence Ramsey | 2010-11-06 21:39:36 -0500

Fix indentation.

--------------------------------------------------------------------------------
545a031225 | David Lawrence Ramsey | 2010-11-06 21:36:38 -0500

Allow giving staves to monsters via the usual wizmode command.

--------------------------------------------------------------------------------
e75bcc6fab | David Lawrence Ramsey | 2010-11-06 21:30:12 -0500

Tweak range check for monsters' rod-cast fireballs.
Since they have a radius of 2, a range of 2 shouldn't be a problem
if the monsters's goal is to avoid fireballing itself.

--------------------------------------------------------------------------------
fccfc32289 | David Lawrence Ramsey | 2010-11-06 21:15:46 -0500

Make get_item_info() display rod charges properly.
This fixes an inconsistency where, if you knew the pluses (and, hence,
the charges) of a rod wielded by a monster, messages from the monster's
using the rod in melee would display the rod's charges properly, but
examining the monster would display the rod's charges as (0/0).

--------------------------------------------------------------------------------
3aeabf5c91 | Raphael Langella | 2010-11-06 23:09:41 +0100

Recheck all skill levels on draconian maturation
So if the changed aptitude makes you gain or lose a skill level, you gain the
message right at the level up, not the next time you train it.

--------------------------------------------------------------------------------
8486de5694 | Raphael Langella | 2010-11-06 23:09:38 +0100

Replace tabs by whitespaces

--------------------------------------------------------------------------------
52c163ed98 | Raphael Langella | 2010-11-06 23:09:35 +0100

Fix level check for faster training of level 0 skills

--------------------------------------------------------------------------------
90ab1da9c6 | David Lawrence Ramsey | 2010-11-06 16:44:24 -0500

Generalize some of the monster rod code.
The list of spells from rods is still hardcoded, but the routine to
determine which spell to cast is now in its own function, and uses
ROD_CHARGE_MULT instead of hardcoded multiples of 100.

--------------------------------------------------------------------------------
a256762432 | David Lawrence Ramsey | 2010-11-06 14:58:21 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
444fdb7866 | David Lawrence Ramsey | 2010-11-06 14:56:38 -0500

Constify.

--------------------------------------------------------------------------------
3ffe176423 | David Lawrence Ramsey | 2010-11-06 13:56:57 -0500

Add spacing fix.

--------------------------------------------------------------------------------
9643ddfc7f | David Lawrence Ramsey | 2010-11-06 13:56:11 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
4d18ef7dc7 | David Lawrence Ramsey | 2010-11-06 13:23:10 -0500

Explicitly return for direct effect rod spells with no target.

--------------------------------------------------------------------------------
a9df68f6e0 | David Lawrence Ramsey | 2010-11-06 13:11:41 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
061de59d1c | David Lawrence Ramsey | 2010-11-06 13:08:37 -0500

Do proper foe checking for rod spells that are direct effects.

--------------------------------------------------------------------------------
81becaaa60 | David Lawrence Ramsey | 2010-11-06 12:46:41 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
6159313199 | David Lawrence Ramsey | 2010-11-06 12:45:49 -0500

Remove redundant return.

--------------------------------------------------------------------------------
09c829986b | David Lawrence Ramsey | 2010-11-06 12:33:41 -0500

Simplify.

--------------------------------------------------------------------------------
4490fba5b4 | David Lawrence Ramsey | 2010-11-06 12:27:22 -0500

Make Summon Elemental available as a monster spell.
The implementation is based on the routine used for the rod of
summoning.

--------------------------------------------------------------------------------
0686fe49f5 | David Lawrence Ramsey | 2010-11-06 12:27:22 -0500

Typo fix.

--------------------------------------------------------------------------------
20cf6bdb42 | Raphael Langella | 2010-11-06 18:17:32 +0100

Fix skill points rescaling when changing race in wizmode

--------------------------------------------------------------------------------
c998cfaedf | Raphael Langella | 2010-11-06 18:17:30 +0100

Remove obsolete call to update_player_symbol()
This was for Ogre -> Ogre Mage. I wrongly changed the comment a while ago.
That's obviously not where draconian maturation is handled.

--------------------------------------------------------------------------------
aa38eec638 | Adam Borowski | 2010-11-06 14:24:46 +0100

Fix a crash on forgetting spells.

--------------------------------------------------------------------------------
b69664f233 | Adam Borowski | 2010-11-06 02:14:23 +0100

Merge branch 'master' into ench-split

--------------------------------------------------------------------------------
dda5d09bfb | Adam Borowski | 2010-11-06 01:47:30 +0100

Haste nerf: adjust the speed of Pan lords, but by less than others.
Also, Pan lords in the main dungeon (Orb run) are NOT modified.
Should they be?

--------------------------------------------------------------------------------
0f5ed2bd6d | Adam Borowski | 2010-11-06 01:44:26 +0100

Force a more on death.

--------------------------------------------------------------------------------
ee4b7d2665 | Raphael Langella | 2010-11-06 01:40:43 +0100

Fix the crosstraining abuse with Ash's reskilling
This updates minor_version. I also replaced the random crosstrain bonus by a
straight x2 (statistically identical).
All the skill related vectors in layer.h now have a size of NUM_SKILLS instead
of 50.

--------------------------------------------------------------------------------
5a47fe6fe7 | Adam Borowski | 2010-11-06 01:21:21 +0100

Felids: remove silence when Boris smotes your sorry ass.
It led to an interesting effect: a perma-silenced region that doesn't follow
you anymore, so you can stand just at the edge with Boris inside.

--------------------------------------------------------------------------------
da93ffd869 | Adam Borowski | 2010-11-05 22:36:19 +0100

Don't consider places next to slime walls as "safe".

--------------------------------------------------------------------------------
9d8bd352a1 | Raphael Langella | 2010-11-05 22:14:44 +0100

Fix crash with gdb and the new random title screen code
Somehow, it worked perfectly when run normally, but it crashed when started
from gdb. Not sure why. Anyway, this fix the problem.

--------------------------------------------------------------------------------
27f95f2227 | Raphael Langella | 2010-11-05 19:38:58 +0100

Small update in the save_compatibility doc

--------------------------------------------------------------------------------
f85fe49358 | Raphael Langella | 2010-11-05 19:38:56 +0100

Add Omndra new title screen
The code now looks for all titlexx.png files and choose one randomly. So adding
new title screen is just a matter of adding a file.

--------------------------------------------------------------------------------
30c0d2fc10 | Raphael Langella | 2010-11-05 19:38:54 +0100

Fix wrong items showing up in the wield screen
Mantis 2807

--------------------------------------------------------------------------------
92fda6dbb2 | David Lawrence Ramsey | 2010-11-05 10:45:17 -0500

Fix Mantis 2596.
When naming the zombified Lernaean hydra, properly treat "Lernaean" as
an adjective, so that we get "X-headed Lernaean hydra zombie".

--------------------------------------------------------------------------------
bb2aa63d00 | David Lawrence Ramsey | 2010-11-05 10:38:27 -0500

Tweak comment.

--------------------------------------------------------------------------------
5b5b0abf80 | David Lawrence Ramsey | 2010-11-05 10:36:00 -0500

Typo fix.

--------------------------------------------------------------------------------
4080d7d1eb | Mark Mackey | 2010-11-05 15:23:35 +0000

Increased trap cost and shuffled around. Made trap costs dependent on the 
number of traps. Possibly too high atm. Fixed zot map 3 Added zot map 4 - still 
needs balancing Added a small amount of randomisation to the monster 
pathfinding A* algorithm. Made blade traps break eventually

--------------------------------------------------------------------------------
4bb8825900 | David Lawrence Ramsey | 2010-11-05 09:48:31 -0500

Remove now-redundant setting of both name_adjective and name_descriptor.

--------------------------------------------------------------------------------
45292ff96e | David Lawrence Ramsey | 2010-11-05 09:43:42 -0500

Attempt to fix monster name override regressions (various Mantises).
Having the "suffix" or "adjective" name overrides will now guarantee
the "descriptor" override to ensure that proper grammar is used.  In
other words, in vaults, you'll get "the withered plant" instead of
"withered plant" again.

It doesn't appear to be necessary for complete name replacements.  In
any case, doing so breaks fake Maras' name overrides.

--------------------------------------------------------------------------------
f3d0072555 | David Lawrence Ramsey | 2010-11-05 09:38:12 -0500

Reorder monster name override logic a bit in mapdef.cc and mon-info.cc.

--------------------------------------------------------------------------------
ee55a365e8 | David Lawrence Ramsey | 2010-11-05 09:31:41 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
56ff0e94d1 | David Lawrence Ramsey | 2010-11-05 08:14:35 -0500

Fix indentation.

--------------------------------------------------------------------------------
de13dc7f54 | David Lawrence Ramsey | 2010-11-05 07:48:41 -0500

Typo fix.

--------------------------------------------------------------------------------
1e37b1cd88 | David Lawrence Ramsey | 2010-11-05 07:44:18 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
db7c4a34ef | David Lawrence Ramsey | 2010-11-04 22:02:09 -0500

Add comment.

--------------------------------------------------------------------------------
8635456a1e | David Lawrence Ramsey | 2010-11-04 21:25:54 -0500

Make the prototype for cast_smiting() match the function.

--------------------------------------------------------------------------------
f7e4a11785 | Adam Borowski | 2010-11-05 01:23:08 +0100

Don't try to match racial tags if the race is invalid.

--------------------------------------------------------------------------------
bcac6ba5b6 | Adam Borowski | 2010-11-05 01:06:16 +0100

Fix infinite berserk walking.

--------------------------------------------------------------------------------
172ec7fd8b | Adam Borowski | 2010-11-05 00:03:14 +0100

Felids: disallow weapon/armour/staff/wand acquirement via scroll/genie.

--------------------------------------------------------------------------------
96193c7807 | Adam Borowski | 2010-11-04 22:58:39 +0100

Don't generate outright useless troves.
Since troves are semi-acquirement, they should be at least partially good.
General troves with a mix of useless and potentially useful items are okay,
so are those which would force you to reskill.  Weapon troves for UC chars
have a small but non-zero weight, so have libraries for Troglodytes.

--------------------------------------------------------------------------------
1d3c2f70c9 | Adam Borowski | 2010-11-04 22:58:39 +0100

Fix outdated comments.

--------------------------------------------------------------------------------
9840592f7d | Raphael Langella | 2010-11-04 21:19:06 +0100

Get rid of the old species_skill() function
This function returned the aptitude value of the old system. I Replaced it with
species_apt() or species_apt_factor(). This simplify the code in several places.

It also reduce rounding error in skill_exp_needed() calculation which has the
funny side effect that you can lose a skill level for a char created before the
change. The good news is you'll regain it very soon (it's only a single point)

--------------------------------------------------------------------------------
179f00214b | Raphael Langella | 2010-11-04 21:19:04 +0100

Move the call to init_skill_order() after skill points have been distributed

--------------------------------------------------------------------------------
b444bcefee | David Lawrence Ramsey | 2010-11-04 11:59:43 -0500

Add another formatting fix.

--------------------------------------------------------------------------------
f577fa4265 | Adam Borowski | 2010-11-04 17:09:30 +0100

Remove the restriction for cursed gear blocking transformations.
It made sense when this would allow you to cheaply get rid of cursed
stuff, but now with melding, this is not a concern anymore.

--------------------------------------------------------------------------------
0cf59cb33f | Adam Borowski | 2010-11-04 17:09:30 +0100

Remove see invis from Wiglaf, there's no reason he should have it.
Okawaru doesn't grant this, dwarves don't have it innately, he doesn't
know magic so he has no way to cast it.  And it's not like he's
underpowered.

--------------------------------------------------------------------------------
9ba6109ceb | David Lawrence Ramsey | 2010-11-04 09:57:52 -0500

Properly mark Paracelsus the unique as not having a zombie.

--------------------------------------------------------------------------------
2af12ea484 | David Lawrence Ramsey | 2010-11-04 09:12:28 -0500

Implement curare adjustments.
Per OG17, have asphyxiation resistance only block curare's asphyxiation
damage, not its slowing, and no longer make poison resistance halve
asphyxiation damage.  Per KiloByte, have poison resistance confer curare
resistance in its entirety (poisoning, asphyxiation damage, slowing),
since curare is a poison.

--------------------------------------------------------------------------------
ae71d771f6 | Adam Borowski | 2010-11-04 13:41:13 +0100

Don't save you.clinging nor the walls, this data can be recreated.
Also, this commit removes redundant DUR_WALL_CLINGING.

--------------------------------------------------------------------------------
d007f26faf | Arxale | 2010-11-04 12:05:51 +0100

Wall clinging

--------------------------------------------------------------------------------
c438898a13 | Adam Borowski | 2010-11-04 12:02:39 +0100

s/spiral_iterator/equidistant_iterator/g (dpeg)

--------------------------------------------------------------------------------
5463161aea | Adam Borowski | 2010-11-04 12:01:41 +0100

Reduce a series of redundant comparisons.

--------------------------------------------------------------------------------
9eec9bd080 | David Lawrence Ramsey | 2010-11-03 21:30:04 -0500

Check for the monster's being alive in _curare_hits_monster().

--------------------------------------------------------------------------------
1e844e414c | David Lawrence Ramsey | 2010-11-03 17:42:32 -0500

Add formatting fix.

--------------------------------------------------------------------------------
1fd772f1eb | David Lawrence Ramsey | 2010-11-03 16:25:25 -0500

Move life force checks (natural/plant holiness) to the actor interface.

--------------------------------------------------------------------------------
546727d92a | David Lawrence Ramsey | 2010-11-03 12:56:45 -0500

Mark smoke demons as levitating instead of flying.
Being made out of smoke, they wouldn't fly per se.

--------------------------------------------------------------------------------
72d75a9a6a | David Lawrence Ramsey | 2010-11-03 11:43:41 -0500

Mark smoke demons as unbreathing.
They're described as being made out of smoke, and marked as
insubstantial (the only demons marked as insubstantial, in fact) and
poison-resistant.  The first two of these points to their not having any
breathing apparatus (which is important, since demons no longer
automatically resist asphyxiation), and the third makes them immune to
Mephitic Cloud, which unbreathing covers anyway.

--------------------------------------------------------------------------------
386f65f7e8 | David Lawrence Ramsey | 2010-11-03 09:25:47 -0500

Revert "Make actors with tracheae paralyzed by curare if they don't asphyxiate."
This reverts commit 5a8a2888f0d178fe9d14d41a062f3b1c3912b44b.

Apparently, the paralysis effect of curare in real life translates to
slowing in-game, so make it match that again.

--------------------------------------------------------------------------------
3b41d55a7f | Adam Borowski | 2010-11-03 12:08:10 +0100

Make the cage in lemuel_castle use an iron grate rather than glass.
It fits that vault so much better.

--------------------------------------------------------------------------------
5095949657 | Adam Borowski | 2010-11-03 12:04:06 +0100

Don't detect shop inventory at 0,5.

--------------------------------------------------------------------------------
d0107dc400 | Adam Borowski | 2010-11-03 11:54:23 +0100

Rename "second_god_name" to indicate it's only Jiyva.

--------------------------------------------------------------------------------
d50f4f19ee | Adam Borowski | 2010-11-02 10:25:52 +0100

Don't reset the breath weapon on untransform.
This can be abused to speed up breathing by rapidly transforming and
untransforming.

--------------------------------------------------------------------------------
4591ae249e | Raphael Langella | 2010-11-02 00:10:00 +0100

Remove some useless static casts

--------------------------------------------------------------------------------
fc1a262d30 | Raphael Langella | 2010-11-01 23:49:20 +0100

Ignore skill disabling when reskilling

--------------------------------------------------------------------------------
57fed5c8f4 | Raphael Langella | 2010-11-01 23:16:45 +0100

Fix the documentation about misc item evocation

--------------------------------------------------------------------------------
4f26cdd9c7 | Raphael Langella | 2010-11-01 23:14:15 +0100

Remove misc items from the wield menu
Except decks and the lantern of shadow.
They don't need to be wielded to be evoked.

--------------------------------------------------------------------------------
e6cfbb6c6b | Raphael Langella | 2010-11-01 22:31:31 +0100

Revert "miscellaneous items need to be wielded to be evoked"
This reverts commit 7265908f776621b9f8b75f5eaf8546dd268d482b.

--------------------------------------------------------------------------------
b589a35528 | Raphael Langella | 2010-11-01 22:30:31 +0100

Revert "auto-wield miscellaneous items on evoke"
This reverts commit 9d363587c114eca476b0aeb31beaf183d8c20931.

--------------------------------------------------------------------------------
d1e7201453 | Raphael Langella | 2010-11-01 22:30:00 +0100

Revert "fix crash when autowielding misc and cancelling unwield"
This reverts commit 5a9772c23952b586fb3aa7e2f763ec1e51af650c.

--------------------------------------------------------------------------------
ab929b08b5 | Raphael Langella | 2010-11-01 22:29:37 +0100

Revert "wield and evoke take 2 turns"
This reverts commit 0e94378b8f0675c8cbdecd0be6e0a9920bb8f39a.

--------------------------------------------------------------------------------
53d647aa19 | Raphael Langella | 2010-11-01 22:29:14 +0100

Revert "add rods and staves to the V screen (and auto-wield)"
This reverts commit b0472ca46d5ecc291440c096338411cd15c988e1.

--------------------------------------------------------------------------------
2d7fc4fd9c | Raphael Langella | 2010-11-01 22:28:52 +0100

Revert "Felids: don't show rods in the new wield-evoke menu."
This reverts commit 5f2955ace701319ffce52a496d28217278ff32bf.

--------------------------------------------------------------------------------
735b435cf6 | Adam Borowski | 2010-11-01 17:08:12 +0100

Fix a crash in tiles with wizard x-ray / Ash scrying out of map bounds.

--------------------------------------------------------------------------------
9565a76022 | Adam Borowski | 2010-11-01 17:08:12 +0100

Haste nerf: adjust electric golems which I somehow missed.

--------------------------------------------------------------------------------
e7f5e1f4d7 | Raphael Langella | 2010-11-01 14:52:44 +0100

Fix the colouring of permafood
No longer brown (Mantis 2714)

--------------------------------------------------------------------------------
cffb13d6d5 | Raphael Langella | 2010-11-01 13:50:44 +0100

replace tabs by spaces

--------------------------------------------------------------------------------
f6063e8637 | Raphael Langella | 2010-11-01 13:49:56 +0100

Protect the amnesia interface against typo

--------------------------------------------------------------------------------
dcf7dfafb3 | Raphael Langella | 2010-11-01 13:27:37 +0100

Revert "Properly cancel amnesia scroll without wasting the scroll"
This reverts commit 52beaa9664334f4ffa9ae51764829730a98771e6.

Wrong way to fix the problem

--------------------------------------------------------------------------------
8c8a9865ea | Adam Borowski | 2010-11-01 00:44:36 +0100

Add a quick and dirty debugging function for where dprf() is of no use.
I use a similar include, but there's no reason to not have this properly
as a part of the project -- as others can benefit from it as well.
Something like this is needed for times such as debugging the save browser
or the text display itself.

--------------------------------------------------------------------------------
5b1c13fbe9 | Raphael Langella | 2010-11-01 00:27:49 +0100

Don't change window size/placement in fullscreen

--------------------------------------------------------------------------------
52beaa9664 | Raphael Langella | 2010-11-01 00:27:48 +0100

Properly cancel amnesia scroll without wasting the scroll

--------------------------------------------------------------------------------
9551df6ad6 | Adam Borowski | 2010-10-31 22:25:28 +0100

Fix missing dependency on libz-dev in Debian install instructions.

--------------------------------------------------------------------------------
bbc2486d1c | Adam Borowski | 2010-10-31 22:25:28 +0100

Give the spiral_iterator an argument, max_radius.

--------------------------------------------------------------------------------
477f6671b5 | Adam Borowski | 2010-10-31 22:25:28 +0100

A "spiral_iterator" that produces coords around a starting point.
It's not an actual spiral; rather, squares at equal distances are returned
in either a random or arbitrary order.

--------------------------------------------------------------------------------
4884c45a1c | Adam Borowski | 2010-10-31 22:25:28 +0100

Get rid of the diagonal moves spam, we gathered more than enough data.

--------------------------------------------------------------------------------
bb817e56d7 | David Ploog | 2010-10-31 22:12:34 +0100

Make scrolls of curse jewellery generate randomly.
I just took the 331+331 (in 10000) chance for curse weapon/curse armour
and squeezed curse jewellery into this.

--------------------------------------------------------------------------------
04e10fe3d2 | David Lawrence Ramsey | 2010-10-31 08:25:34 -0500

Experimentally increase iron imps' AC from 5 to 6.

--------------------------------------------------------------------------------
e6cd0a3301 | Adam Borowski | 2010-10-31 13:46:32 +0100

Bump Vp's Hexes apt.
In most stories, they're masters of hostile enchantments.

--------------------------------------------------------------------------------
cef907db5f | Adam Borowski | 2010-10-31 13:39:31 +0100

Remove the robe of Archmagi's drawback, without any compensation.

--------------------------------------------------------------------------------
b5ffe7526c | Adam Borowski | 2010-10-31 13:28:07 +0100

Fix the robe of the Archmagi doubly enhancing Haunt and Regen.
It no longer gets you more shadows with the lantern of the shadows -- it's
more fitting that only mummies and liches get that.

Certain odd spells like Airstrike, Cure Poison, Toxic Radiance now get
enhanced, they are of schools that had almost all their spells enhanced
before.  Tmut and pure Tloc remain excluded.

--------------------------------------------------------------------------------
44c1d4cc50 | Adam Borowski | 2010-10-31 13:05:55 +0100

Split the Enchantments school.

--------------------------------------------------------------------------------
beaf7fa49b | Adam Borowski | 2010-10-31 12:49:39 +0100

Get rid of a hard-coded number.

--------------------------------------------------------------------------------
64c5cd775d | Adam Borowski | 2010-10-31 02:13:35 +0200

Compensate for the haste nerf by slowing monsters that most people fight hasted.
XP is mostly unchanged, as modifiers were increased to preserve it -- as the
difficulty is mostly the same.

Uniques haven't been changed -- yet?

--------------------------------------------------------------------------------
59df94f2a5 | Adam Borowski | 2010-10-31 00:16:06 +0200

Untie monster berserk from haste+might, make the speed boost x2.

--------------------------------------------------------------------------------
3de0d12ca6 | Adam Borowski | 2010-10-31 00:16:06 +0200

Recalculate monster speed on haste/slow instead of multiplying the old value.

--------------------------------------------------------------------------------
5edd1c1102 | Adam Borowski | 2010-10-31 00:16:06 +0200

Display on the HUD if you're both hasted and slowed.

--------------------------------------------------------------------------------
c520501615 | Adam Borowski | 2010-10-31 00:16:06 +0200

The haste nerf.
Haste now makes you go at x1.5 speed, not x2 as before.
Slow makes you only 1.5 times slower, not 2.
Berserk is unchanged -- x2 speed.

Issues:
* monster berserk is still haste+might
* in some cases monster speed may be permanently affected due to round-off 
errors
* the compensation for high-end monsters haven't been applied yet

--------------------------------------------------------------------------------
46d872cc33 | David Lawrence Ramsey | 2010-10-30 15:38:50 -0500

Fix bad logic keeping the monster Cause Fear checks from being used.

--------------------------------------------------------------------------------
33f9498162 | David Lawrence Ramsey | 2010-10-30 15:29:00 -0500

Improve checks for monster Cause Fear's succeeding on players.
It will now be properly treated as a failure if it's used while the
player is in a sanctuary.

--------------------------------------------------------------------------------
c1b9eff9a2 | David Lawrence Ramsey | 2010-10-30 15:20:41 -0500

Comment fixes.

--------------------------------------------------------------------------------
bc88135308 | David Lawrence Ramsey | 2010-10-30 15:16:10 -0500

Improve checks for monster Cause Fear's actually succeeding.
Model it after Elyvilon's pacification: differentiate between "can't
scare anything", "could scare something", and "did scare something".

--------------------------------------------------------------------------------
68908590ce | David Lawrence Ramsey | 2010-10-30 14:53:59 -0500

Don't use monster Cause Fear if nothing will be scared by it.

--------------------------------------------------------------------------------
a96d03f783 | David Lawrence Ramsey | 2010-10-30 14:10:16 -0500

Consistently display "unaffected" messages in a few more places.

--------------------------------------------------------------------------------
616b1cf208 | David Lawrence Ramsey | 2010-10-30 13:54:54 -0500

Make "You are unaffected." a canned message.

--------------------------------------------------------------------------------
fe8c0eff5c | David Lawrence Ramsey | 2010-10-30 13:50:29 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
bf1a89ed27 | David Lawrence Ramsey | 2010-10-30 13:50:09 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
6cd0585d6e | David Lawrence Ramsey | 2010-10-30 13:46:40 -0500

Make monster Cause Fear ignore unnatural and "firewood" targets.
These restrictions match the player version.

--------------------------------------------------------------------------------
0cf346d5ad | David Lawrence Ramsey | 2010-10-30 13:18:32 -0500

Make monster Cause Fear ignore players for pacified/friendly casters.
The same is already done for mesmerisation.

--------------------------------------------------------------------------------
11d5d64f1e | David Lawrence Ramsey | 2010-10-30 13:15:38 -0500

Simplify check for aligned monsters' being fear-affected.

--------------------------------------------------------------------------------
9b548201d3 | David Lawrence Ramsey | 2010-10-30 12:48:14 -0500

Fix erroneous logic in checks for aligned monsters' being fear-affected.

--------------------------------------------------------------------------------
fff92b5e18 | David Lawrence Ramsey | 2010-10-30 12:37:20 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
222f72752e | David Lawrence Ramsey | 2010-10-30 12:33:12 -0500

In monster Cause Fear, add the fear-inspiring enchantment a bit earlier.

--------------------------------------------------------------------------------
9d28ea0eb4 | David Lawrence Ramsey | 2010-10-30 12:25:37 -0500

Convert monster Cause Fear to use an actor iterator.

--------------------------------------------------------------------------------
37169ac44b | David Lawrence Ramsey | 2010-10-30 12:13:30 -0500

Move monster Cause Fear into its own function.

--------------------------------------------------------------------------------
ff403e5c4c | David Lawrence Ramsey | 2010-10-30 11:56:33 -0500

Remove the erroneous paralysis effect from monster Injury Mirror.

--------------------------------------------------------------------------------
27558fabc7 | Adam Borowski | 2010-10-30 02:55:03 +0200

Fix missing possessive suffix in Call Tide.

--------------------------------------------------------------------------------
b7e26ba9ec | Adam Borowski | 2010-10-30 02:26:45 +0200

Properly remove halo on TSO penance.

--------------------------------------------------------------------------------
5f2955ace7 | Adam Borowski | 2010-10-30 00:57:47 +0200

Felids: don't show rods in the new wield-evoke menu.

--------------------------------------------------------------------------------
3a103b7037 | Raphael Langella | 2010-10-29 23:39:49 +0200

Note when skills are reduced

--------------------------------------------------------------------------------
b5a5e4df81 | Raphael Langella | 2010-10-29 23:39:48 +0200

fix a comment

--------------------------------------------------------------------------------
01cc9c84d5 | Adam Borowski | 2010-10-29 23:29:46 +0200

Disallow autoexploring while berserking.
It doesn't make sense, it would be stopped by berserk expiring in a few turns,
and it can put you in danger if you make this typo.

--------------------------------------------------------------------------------
062615e5cb | David Lawrence Ramsey | 2010-10-29 16:11:40 -0500

Disallow armour mimics from taking the forms of hides.
Hides can't be randarts, get certain cosmetic properties, etc., so
mimics of them are easy giveaways.

--------------------------------------------------------------------------------
6ee502bc1e | David Lawrence Ramsey | 2010-10-29 13:31:06 -0500

Refactor message display logic in enchant_weapon().
The "glows silver" message, indicating that the wielded weapon is only
uncursed, is now displayed in one place instead of two, and is also
properly applied to staves.  (For example, a cursed wielded staff will
now get a proper "glows silver" message if it is uncursed, as opposed to
getting no message before.)

--------------------------------------------------------------------------------
4c5b86f7bd | David Lawrence Ramsey | 2010-10-29 13:17:57 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
6a88e5e5be | David Lawrence Ramsey | 2010-10-29 12:47:12 -0500

Don't display "uncursed" for non-plain staff descriptions.
This seems to fix the "uncursed staff" messages on the item recognition
screen, and is shamelessly lifted from non-plain jewellery descriptions,
as they have similar complexity (e.g. optional pluses).

--------------------------------------------------------------------------------
90f7de2aa7 | David Lawrence Ramsey | 2010-10-29 12:44:53 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
99201e970b | David Lawrence Ramsey | 2010-10-29 12:31:45 -0500

Tweak item name display for staves, based on the same for weapons.
If you know the type, don't display "uncursed", and append "(curse)" for
cursed staves in terse displays.

--------------------------------------------------------------------------------
fef532bb12 | David Lawrence Ramsey | 2010-10-29 12:21:50 -0500

Make sure Detect Curse works properly on staves.

--------------------------------------------------------------------------------
b4a6f38079 | David Lawrence Ramsey | 2010-10-28 19:34:42 -0500

Update Yred description: Injury Mirror doesn't require prayer anymore.

--------------------------------------------------------------------------------
42b31d8681 | Adam Borowski | 2010-10-29 00:09:37 +0200

Mention the damage reduction for short range in IOODs' description.

--------------------------------------------------------------------------------
9bac2f98f1 | Adam Borowski | 2010-10-29 00:07:36 +0200

Give some feedback for minimal range IOODs.

--------------------------------------------------------------------------------
b8664d4c47 | Adam Borowski | 2010-10-28 23:01:45 +0200

Slightly bump IOOD damage.
After the accuracy nerf, no one seems to be using it, especially that it's
mostly useless in corridors (ie, most of the game).

--------------------------------------------------------------------------------
f12f40ff89 | Adam Borowski | 2010-10-28 16:45:39 +0200

Allow Tukimizing staves.
Since they are just unenchanted quarterstaves, this is mostly a nerf of
spellcasting Xommers, but hey, it's mass not quality what counts the most
so they're not useless.

The glyph is those of other dancing weapons, mimicking ammunition in all
default charsets.

--------------------------------------------------------------------------------
1cea24014a | Adam Borowski | 2010-10-28 16:33:45 +0200

Fix staves not fully iding under Ashenzari.
The bug was in them getting pluses on a tier 2 id, but not getting the base
type ided on tier 1.  I could make it consistent with jewelry and making only
self-iding staves identify on tier 1, but then, it's a matter of casting any
spell ~10-20 times, so I just made it reveal the type early.  Rods still get
just the type on tier 1 and enchantment on 2.

--------------------------------------------------------------------------------
b43e2dc5b8 | David Lawrence Ramsey | 2010-10-28 09:14:59 -0500

Add a few more words to Crazy Yiuf's vocabulary.

--------------------------------------------------------------------------------
cfc256c473 | Shayne Halvorson | 2010-10-28 01:46:07 +0200

Fix Jiyva off level eating crash.

--------------------------------------------------------------------------------
e30bbf3297 | Raphael Langella | 2010-10-27 20:13:48 +0200

Replace int by skill_type whenever possible

--------------------------------------------------------------------------------
43c9411826 | David Lawrence Ramsey | 2010-10-27 11:57:31 -0500

Fix Mantis 2770.
Make sky beasts' ability to go invisible use the same routine as the
beam code.  This fixes the message for when the player can see
invisible, and also handles autopickup properly when the player can't.

--------------------------------------------------------------------------------
afd25d6ec4 | David Lawrence Ramsey | 2010-10-27 11:55:04 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2a2de7115d | David Lawrence Ramsey | 2010-10-27 11:52:30 -0500

Move monster invisibility enchantment handling into its own function.

--------------------------------------------------------------------------------
c5ce31f87c | Jude Brown | 2010-10-27 23:13:39 +1000

More tweaks to how feature mimics are described.
Doesn't solve all of the tile issues. To come!

--------------------------------------------------------------------------------
bbbd2e2899 | Jude Brown | 2010-10-27 23:13:39 +1000

Fix =s in tile definitions.

--------------------------------------------------------------------------------
9d9b9e06a9 | Adam Borowski | 2010-10-27 11:48:30 +0200

Remove some redundancy.

--------------------------------------------------------------------------------
baa7238a40 | Adam Borowski | 2010-10-27 01:59:02 +0200

Staticalize, remove cruft.

--------------------------------------------------------------------------------
6f2c9e570b | Adam Borowski | 2010-10-27 01:29:52 +0200

Simplify, underline statics.

--------------------------------------------------------------------------------
2d65edd203 | Adam Borowski | 2010-10-27 00:57:47 +0200

Make some functions static, remove unused among those.

--------------------------------------------------------------------------------
ddeb6cd81a | Raphael Langella | 2010-10-27 00:24:43 +0200

Declare all the functions refixed with _ as static
I used a basic script to find them, so I probably missed a few

--------------------------------------------------------------------------------
738df0a211 | Raphael Langella | 2010-10-27 00:07:11 +0200

Scale the skill disabling factor with skill level

--------------------------------------------------------------------------------
52613e5533 | Raphael Langella | 2010-10-27 00:07:11 +0200

Allow skill_cost_level to be reduced when skill points are lost

--------------------------------------------------------------------------------
e626bb69a2 | Raphael Langella | 2010-10-27 00:07:10 +0200

Properly declare and initialize static maps

--------------------------------------------------------------------------------
d01ddc8b4a | Raphael Langella | 2010-10-27 00:07:09 +0200

Change stealth skill points bonus to reduced base cost

--------------------------------------------------------------------------------
abfeff92bc | Raphael Langella | 2010-10-27 00:07:09 +0200

Add a "show all" toggle to the skill selection menu

--------------------------------------------------------------------------------
4fbcfaf2f2 | David Lawrence Ramsey | 2010-10-26 16:38:41 -0500

For now, give the nisse proper spellcasting flags.
If its ability to turn invisible is supposed to be an intrinsic ability,
its flags are easy enough to change.  As it is, it seems to get the
equivalent of these flags by default, so they should be properly set.

--------------------------------------------------------------------------------
5ddcb46256 | Adam Borowski | 2010-10-26 21:58:55 +0200

Ashenzari: halve piety gains in the Abyss.

--------------------------------------------------------------------------------
24737407a5 | Adam Borowski | 2010-10-26 21:45:47 +0200

Fix "--edit-save repack" and explicit file names.

--------------------------------------------------------------------------------
039bd4377c | Adam Borowski | 2010-10-26 13:50:45 +0200

Simplify a case of contrived logic.
Instead of doing "Y could also have this effect, and not Y, thus X", just check 
X.
This has the benefit that even if something changes, if X, then still X.

--------------------------------------------------------------------------------
fb35730524 | Adam Borowski | 2010-10-26 13:45:14 +0200

Fix a non-up-to-date case of code duplication that causes crashes.

--------------------------------------------------------------------------------
5b04c0b1bb | Adam Borowski | 2010-10-26 02:24:48 +0200

Dwarf Hall: reduce it to a single level.

--------------------------------------------------------------------------------
bce0903714 | Adam Borowski | 2010-10-26 00:48:13 +0200

Dwarf Hall: drop "of Fallen Heroes".
Let's do the part where dwarves actually live, we got enough tombs.

--------------------------------------------------------------------------------
62c370552c | Adam Borowski | 2010-10-26 00:48:13 +0200

Dwarf Hall: fix entries.

--------------------------------------------------------------------------------
859819637b | Adam Borowski | 2010-10-26 00:48:12 +0200

Dwarf Hall: remove the tomb portal vault.
It had about no content anyway, and recursive portal vaults make no sense.

--------------------------------------------------------------------------------
2a8ba2a293 | Adam Borowski | 2010-10-26 00:48:12 +0200

Add an assertion against placing MONS_SENSED or MONS_PLAYER.

--------------------------------------------------------------------------------
e26b3a4ea2 | Raphael Langella | 2010-10-26 00:30:26 +0200

fix window placement for side and top window taskbar
Also resize the window to keep it inside the screen if necessary

--------------------------------------------------------------------------------
4c5da88835 | Robert Burnham | 2010-10-25 13:04:19 -0500

Additional comments for mutation ordering changes

--------------------------------------------------------------------------------
cdddb66163 | Robert Burnham | 2010-10-25 13:00:13 -0500

Allow variable mutation scheduling within a facet
Facets now have an overall tier (this is the actual tier of the
facet and is only used to pick mutations according to the values set
forth in ct_of_tier[]) as well as the tiers array which represents the
tiers of each mutation which compose the facet. The values in the
tiers array should not exceed the overall tier of the facet.

--------------------------------------------------------------------------------
1a871b1f2e | Jude Brown | 2010-10-25 22:33:47 +1000

Fix mimic issues with travel.

--------------------------------------------------------------------------------
19926691c7 | Adam Borowski | 2010-10-25 13:14:16 +0200

Reserve a field in saves for the [g]nome patch.
This does not mean an endorsement of that species (but we don't dismiss it
outright, either!), I'm adding it only because branches with divergent tag
versions are a major pain.

--------------------------------------------------------------------------------
ae2e033d4b | Jude Brown | 2010-10-25 12:05:16 +1000

Properly make feature mimics work with tiles.
Still leaves an issue with door mimics appearing as partial gates.

Does not resolve possible issues with door mimics that are no longer
stationary walking through door ways, trap mimics over traps, and so-on.

--------------------------------------------------------------------------------
0489174fe5 | Adam Borowski | 2010-10-25 00:45:54 +0200

Remove the link between berserk and haste+might.
For now, they are nearly identical, save for magical contamination and
being removable by Sif Muna's wrath and/or purple drac breath -- but we
are free to diverge them.

This also fixes expiration of the three durations being usually a bit off.

--------------------------------------------------------------------------------
c74a49edd8 | Adam Borowski | 2010-10-25 00:45:53 +0200

Rename DUR_BERSERKER to DUR_BERSERK.

--------------------------------------------------------------------------------
7651da5940 | Adam Borowski | 2010-10-25 00:45:53 +0200

Felids: fix a wrong message about armour due to their new size of -2.

--------------------------------------------------------------------------------
111d5aca10 | Adam Borowski | 2010-10-25 00:45:53 +0200

Fix Blade Hands being better for STR and DEX of multiplies of 4.

--------------------------------------------------------------------------------
b0472ca46d | Raphael Langella | 2010-10-25 00:12:36 +0200

add rods and staves to the V screen (and auto-wield)
Fix mantis 2758

--------------------------------------------------------------------------------
e65e059d8a | Adam Borowski | 2010-10-24 20:48:48 +0200

Add psyshvl's tile for spriggan assassins.
This gives an incentive to, you know, actually implement them!

18:08 <+enne> I can't believe you committed monsters without tiles! What's the 
world coming to? *dramatic sigh*
So here's some balance for that :p

--------------------------------------------------------------------------------
a5db56ccd6 | David Lawrence Ramsey | 2010-10-24 11:42:32 -0500

Add monster spell Noxious Cloud (like Poisonous Cloud, but mephitic).
Also, make swamp drakes use it instead of Mephitic Cloud, as it's more
breath-like.

--------------------------------------------------------------------------------
ab3dec36ba | David Lawrence Ramsey | 2010-10-24 11:40:28 -0500

Add more spacing fixes.

--------------------------------------------------------------------------------
2e627fd216 | David Lawrence Ramsey | 2010-10-24 11:40:18 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e9ba3ad041 | David Lawrence Ramsey | 2010-10-24 11:08:17 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
0c1a5d700c | David Lawrence Ramsey | 2010-10-24 10:51:04 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
b5df3eb67a | Jude Brown | 2010-10-24 23:31:03 +1000

Partially implement feature mimics in tiles.
Unfortunately, they get really weird corpse/water overlays and I'm not
sure why. Enne or other tile gurus, can you please look into this?

--------------------------------------------------------------------------------
7febd3b191 | Jude Brown | 2010-10-24 23:31:02 +1000

And actually place mimics in the various levels.
Does not include door mimics, who probably shouldn't be placed randomly
but instead as either a vault or replacing individual doors.

--------------------------------------------------------------------------------
87120d8f88 | Jude Brown | 2010-10-24 23:31:02 +1000

Complete feature mimics: stair mimics.
Will either mimic a suitable branch entry, or a stair or hatch.

--------------------------------------------------------------------------------
6b9a623db1 | Jude Brown | 2010-10-24 23:31:02 +1000

Add the dash to a comment.

--------------------------------------------------------------------------------
0e94378b8f | Raphael Langella | 2010-10-24 14:51:18 +0200

wield and evoke take 2 turns
This fix mantis 2756

--------------------------------------------------------------------------------
fe51cf0a9d | Jude Brown | 2010-10-24 11:41:54 +1000

New monster: sky beasts. Electric/air versions of ice beasts.
They flicker in and out of visibility roughly every eight turns. This is
clearly not a problem for races or character builds with see
invisibility, but it does provide an interesting effect for those
without.

Currently, they appear about the same levels as ice beasts. This could
be problematic as ice beasts appear quite early, and they don't have the
same vulnerabilities as ice beasts. This could just require their HP
being tweaked down, or something.

We'll see!

They need a tile, too.

--------------------------------------------------------------------------------
67a31c0412 | Adam Borowski | 2010-10-24 02:43:37 +0200

Don't do exploration on the arena.

--------------------------------------------------------------------------------
52d0968251 | Adam Borowski | 2010-10-24 02:07:07 +0200

Don't place pressure plates on '^' in vaults.

--------------------------------------------------------------------------------
4e60484da7 | Adam Borowski | 2010-10-24 01:37:19 +0200

Fix clarity being ignored in some cases when it's supposed to be heeded.

--------------------------------------------------------------------------------
776f49ca9c | Raphael Langella | 2010-10-24 00:37:34 +0200

simplify usage of the skill_exp_needed() function
the racial aptitudes are always applied when this function is called.
Might as well do it from within the function.

--------------------------------------------------------------------------------
e2d7435f41 | Raphael Langella | 2010-10-23 22:45:25 +0200

Do proper checks when eating from the inventory
replaced eat_inventory_item() by eat_food()

--------------------------------------------------------------------------------
f35f3437c0 | Adam Borowski | 2010-10-23 22:14:57 +0200

Don't show commands for food/drinks your race can't ever use.
This is simplified: there's no check for kobolds/felids and porridge,
or ghouls and berserk rage.

--------------------------------------------------------------------------------
65a283b382 | Adam Borowski | 2010-10-23 21:51:27 +0200

Cheese is not a vegetable.

--------------------------------------------------------------------------------
4fbdab7a8c | Adam Borowski | 2010-10-23 20:14:08 +0200

Felids: mark Poison Weapon as useless.

--------------------------------------------------------------------------------
a97f023050 | David Lawrence Ramsey | 2010-10-23 12:05:18 -0500

Add spacing fix.

--------------------------------------------------------------------------------
185a93a933 | Adam Borowski | 2010-10-23 15:55:27 +0200

MONS_MERGED_SLIME_CREATURE can never happen.

--------------------------------------------------------------------------------
b79b31bf1f | Arxale | 2010-10-23 15:55:27 +0200

Merged slimes split on polymorph

--------------------------------------------------------------------------------
7465625512 | David Lawrence Ramsey | 2010-10-23 08:21:50 -0500

Add formatting fix.

--------------------------------------------------------------------------------
bc5b9112f1 | Raphael Langella | 2010-10-23 14:29:48 +0200

don't train (or reskill) past level 27

--------------------------------------------------------------------------------
0188d60bdb | Raphael Langella | 2010-10-23 14:20:48 +0200

Simplify

--------------------------------------------------------------------------------
6e5f0180f3 | Raphael Langella | 2010-10-23 09:01:40 +0200

cosmetic fix

--------------------------------------------------------------------------------
e144bc3b96 | Raphael Langella | 2010-10-23 08:29:40 +0200

another low-level reskilling fix

--------------------------------------------------------------------------------
6a783b2fff | Jude Brown | 2010-10-23 13:39:01 +1000

Mention withdrawn in more places.

--------------------------------------------------------------------------------
6abdd1dcc5 | David Lawrence Ramsey | 2010-10-22 21:36:22 -0500

Add missing blank lines.

--------------------------------------------------------------------------------
893ffd0d1c | David Lawrence Ramsey | 2010-10-22 21:32:25 -0500

Add punctuation fixes.

--------------------------------------------------------------------------------
b2d18c0ebe | David Lawrence Ramsey | 2010-10-22 21:18:29 -0500

Fix unused variable.

--------------------------------------------------------------------------------
168c58c710 | David Lawrence Ramsey | 2010-10-22 21:12:08 -0500

Only cast monster Burn Spellbook if it will actually burn something.
This matches monster Animate Dead and monster Drain Life.

--------------------------------------------------------------------------------
f09476f0e2 | David Lawrence Ramsey | 2010-10-22 21:12:07 -0500

Set rarity for player Burn Spellbook rarity setting a bit later.

--------------------------------------------------------------------------------
4a351eb9d5 | David Lawrence Ramsey | 2010-10-22 21:12:07 -0500

Move monster Burn Spellbook to its own function.

--------------------------------------------------------------------------------
658faf7d33 | David Lawrence Ramsey | 2010-10-22 21:12:07 -0500

Remove non-applicable god channel usage in monster Burn Spellbook.

--------------------------------------------------------------------------------
9ce1487463 | David Lawrence Ramsey | 2010-10-22 21:12:07 -0500

Reorganize logic in monster Burn Spellbook to match the player version.

--------------------------------------------------------------------------------
9cf917a1bd | Adam Borowski | 2010-10-23 03:57:02 +0200

Remove monsters: witch, evil witch, forest witch, huldra, trollkonor.
They have major design problems, and if these are fixed, it's easy to
re-add.

--------------------------------------------------------------------------------
201b6c2843 | Adam Borowski | 2010-10-23 03:57:02 +0200

Fix the DHFH alchemist cottage.

--------------------------------------------------------------------------------
b61ec87025 | Adam Borowski | 2010-10-23 03:57:02 +0200

Purge some unneeded braces.

--------------------------------------------------------------------------------
c0f1ffff5b | David Ploog | 2010-10-23 03:37:15 +0200

Add comment to fruit vaults.

--------------------------------------------------------------------------------
d93f7375fa | David Ploog | 2010-10-23 03:34:47 +0200

Add blue_anna's fruit vaults.

--------------------------------------------------------------------------------
3f965fc816 | David Lawrence Ramsey | 2010-10-22 20:20:28 -0500

Fix inconsistencies in monster spellbook-burning messages.

--------------------------------------------------------------------------------
1be578e62f | David Lawrence Ramsey | 2010-10-22 20:16:20 -0500

Fix inconsistencies in spellbook-burning messages.

--------------------------------------------------------------------------------
f5d102f48b | David Lawrence Ramsey | 2010-10-22 20:13:29 -0500

Fix indentation.

--------------------------------------------------------------------------------
c9c63956a8 | Raphael Langella | 2010-10-23 02:49:57 +0200

fix reducing a skill below 0 in the new skill functions
late night ugly fix, but functional.
Will come up with something prettier later.

--------------------------------------------------------------------------------
56b72069a5 | Raphael Langella | 2010-10-23 01:32:23 +0200

Ash transfer knowledge ability

--------------------------------------------------------------------------------
5640d515a5 | argonaut | 2010-10-23 00:44:02 +0200

Color annotations in Overview (Mantis #2741, by argonaut).

--------------------------------------------------------------------------------
1303746994 | David Lawrence Ramsey | 2010-10-22 13:03:32 -0500

Clean up monster and player drowning checks a bit more.
Drowning resistance now depends on the unbreathing quality rather than
asphyxiaytion resistance, and the monster version of
res_water_drowning() is now used properly.

Note that ghouls and vampires still die in deep water, and are still
described as drowning when they do.  The messages in the latter need to
be changed.

(Also, what about monster liches, since players can also transform into
them?  Their deep water death messages may also need to be changed.)

--------------------------------------------------------------------------------
6a9165c1b8 | David Lawrence Ramsey | 2010-10-22 12:23:13 -0500

Simplify drowning check for monsters.
Monsters of demonic holiness no longer need a special case to allow
drowning, since they no longer automatically resist asphyxiation, and
none of them currently have asphyxiation resistance set manually.

--------------------------------------------------------------------------------
5a8a2888f0 | David Lawrence Ramsey | 2010-10-22 12:13:14 -0500

Make actors with tracheae paralyzed by curare if they don't asphyxiate.
This currently covers spiders and insects on the monster side, and
players in spider form on the player side.

Note that the paralysis will last as long as the slowing would in actors
without tracheae.  This may need adjustment.

--------------------------------------------------------------------------------
5bc0a929d0 | Robert Burnham | 2010-10-22 11:58:36 -0500

Prevent monsters from bleeding when no damage was dealt
Adds a bit of commenting to the bleed mechanics in player_attack() as well
as address Mantis 2746.

Bleeding is no longer possible when you do not deal at least some damage
to the monster which is about to bleed.

--------------------------------------------------------------------------------
86ea5a49b9 | Adam Borowski | 2010-10-22 11:10:23 +0200

Felids: don't even consider squares occupied by monsters as a "safe spot" for 
reviving.

--------------------------------------------------------------------------------
4e401e2932 | Adam Borowski | 2010-10-22 11:06:54 +0200

Revert "Felids: nerf the hp gains from Fighting."
This is visible mostly in the late game, where they are already significantly
weaker than most races.  The EV nerf affected them badly too (while giving the
much-needed balancing of early game), so I'm removing Fighting special-casing
for now.

This reverts commit 280a8204bec5bd067bced4e7a6ff78b3578c3dad.

--------------------------------------------------------------------------------
d3fb1560be | David Lawrence Ramsey | 2010-10-21 17:44:15 -0500

Tweak wording.

--------------------------------------------------------------------------------
1b9354f301 | Adam Borowski | 2010-10-22 00:35:37 +0200

A quad damage tile, for Sprint.

--------------------------------------------------------------------------------
717d47d202 | Adam Borowski | 2010-10-21 23:06:32 +0200

Fill in an ench name, they're wizmode-only.

--------------------------------------------------------------------------------
ae94676ea2 | Adam Borowski | 2010-10-21 23:04:46 +0200

Ashenzari: move clarity to *** to make place for reskilling.

--------------------------------------------------------------------------------
2f80b2cfd3 | Adam Borowski | 2010-10-21 23:04:46 +0200

Ashenzari: don't forget portals due to map rot.

--------------------------------------------------------------------------------
1bd0b2c743 | Robert Burnham | 2010-10-21 16:00:58 -0500

Set minimum time of existance for demonic guardians
Adds ENCH_LIFE_TIMER to serve as a minimum duration that a demonic guardian may 
exist, defaults to approximately 4 to 8 turns.

--------------------------------------------------------------------------------
3d3916f914 | Adam Borowski | 2010-10-21 22:54:52 +0200

Add coolio's tile for greater wraiths.
There's a proposal to rename them to eidolons, but with the way git stores
data, renames don't waste disk space so there's no loss there.

--------------------------------------------------------------------------------
9f80739842 | Raphael Langella | 2010-10-21 22:32:27 +0200

fix compil
Sorry, we'll see for the ability messages later :(

--------------------------------------------------------------------------------
53c9aaad10 | Raphael Langella | 2010-10-21 22:23:32 +0200

fix typo

--------------------------------------------------------------------------------
00b4dbbe8f | Raphael Langella | 2010-10-21 22:08:35 +0200

Ash reskilling power UI
It's just a basic menu for selecting skills. The actual skill transfer still
needs to be done.

--------------------------------------------------------------------------------
f80b32e5e7 | Raphael Langella | 2010-10-21 21:46:36 +0200

some taskbar offset adjustment
made a special case for windows 7 because its taskbar behave strangely

--------------------------------------------------------------------------------
40c135dc44 | Robert Burnham | 2010-10-21 14:11:04 -0500

Added comments, clean up a bit of logic
Commented demonic guardian functions to add clarity to the logic, as well
as inverse the balance_demonic_guardian() return logic for clarity.

--------------------------------------------------------------------------------
65d7900e88 | David Lawrence Ramsey | 2010-10-20 21:27:20 -0500

Fix indentation.

--------------------------------------------------------------------------------
9bcd169f8b | David Lawrence Ramsey | 2010-10-20 21:24:42 -0500

Describe Mephitic Cloud-type beams as "noxious fumes", not "poison".
It's clearer, and it avoids confusion, given how unbreathing confers
immunity to it but not poison in general.

--------------------------------------------------------------------------------
84d725c3e0 | David Lawrence Ramsey | 2010-10-20 21:22:27 -0500

Remove obsolete reference to player green draconians' breathing poison.

--------------------------------------------------------------------------------
d9ae5d8d45 | Adam Borowski | 2010-10-21 02:29:08 +0200

Revert "Ashenzari: count cursed/worn, not cursed/wearable."
This turned out to lead to degenerate behaviour.

--------------------------------------------------------------------------------
7b6b40939d | Adam Borowski | 2010-10-21 02:20:24 +0200

Ashenzari: passive mapping in Labs.

--------------------------------------------------------------------------------
4b622e3a5d | Adam Borowski | 2010-10-21 02:15:47 +0200

Get rid of redundant and misindented breaks.

--------------------------------------------------------------------------------
bd94b3dba3 | Adam Borowski | 2010-10-21 02:14:57 +0200

Stop debug spam in labs.

--------------------------------------------------------------------------------
d700b8292b | Adam Borowski | 2010-10-21 02:12:09 +0200

A typo.

--------------------------------------------------------------------------------
954b944837 | Adam Borowski | 2010-10-21 02:09:35 +0200

An indentation fix.

--------------------------------------------------------------------------------
bc3109de6f | Shayne Halvorson | 2010-10-21 01:50:42 +0200

Dragon form changes for draconians

--------------------------------------------------------------------------------
1225bbe306 | Adam Borowski | 2010-10-21 01:37:54 +0200

A whitespace fix.

--------------------------------------------------------------------------------
78a9adc72d | Adam Borowski | 2010-10-21 01:33:20 +0200

Ashenzari: instant detection of portals.  Including the Abyss!
The range is the whole level normally, slightly more than LOS when in the
Abyss -- which with the usual Abyssal geometry is a major boon.

--------------------------------------------------------------------------------
c123be5181 | Adam Borowski | 2010-10-21 01:22:45 +0200

Fix an incorrect comment.

--------------------------------------------------------------------------------
ad3bbb2730 | Adam Borowski | 2010-10-20 23:39:11 +0200

Fix Empathy not working in portal vaults and Pan.
Only Abyss is currently excluded, and even that is questionable.
What with Labyrinths?  I allowed them for now, but that's the second question.

--------------------------------------------------------------------------------
2d12a536ac | Adam Borowski | 2010-10-20 23:23:45 +0200

Felids: give up to the mob and fix messaging for Blade Paws instead of 
disallowing them.
I still don't think this is right.

--------------------------------------------------------------------------------
e008d311f3 | Adam Borowski | 2010-10-20 23:05:01 +0200

Fix some "hands" for transforms/felids.

--------------------------------------------------------------------------------
b458452f0a | Adam Borowski | 2010-10-20 22:47:25 +0200

Felids: fix "hands" in miscasts, spell/card failures, Conf Touch, acid.

--------------------------------------------------------------------------------
eba32cab51 | Adam Borowski | 2010-10-20 22:32:22 +0200

Stop withdrawn snapping turtles from spamming in debug mode.

--------------------------------------------------------------------------------
836bf19217 | Adam Borowski | 2010-10-20 22:26:55 +0200

Don't mark withdrawn monsters as wont_attack.
Our of 97 uses, only 3 use it a literally "won't attack", and the rest as
"is friendly or good_neutral".

--------------------------------------------------------------------------------
dc1bf02bdc | Adam Borowski | 2010-10-20 21:53:05 +0200

Remove a remnant of altar item sacrifices.
The only one left is gold for Zin, and that's not an actual item.

--------------------------------------------------------------------------------
eaf221fd97 | Adam Borowski | 2010-10-20 21:41:46 +0200

Don't destroy items you drop just because you prayed before on an altar.

--------------------------------------------------------------------------------
f14fdda75d | Adam Borowski | 2010-10-20 21:15:36 +0200

Don't give out books with Selective Amnesia anymore.

--------------------------------------------------------------------------------
6d1604cafd | Raphael Langella | 2010-10-20 18:06:27 +0200

add scrolls of fog to emergency items
this is mostly to test the CIA change

--------------------------------------------------------------------------------
803142a87a | David Lawrence Ramsey | 2010-10-20 11:03:58 -0500

Constify.

--------------------------------------------------------------------------------
21716f7d66 | David Lawrence Ramsey | 2010-10-20 11:03:01 -0500

Add spacing fix.

--------------------------------------------------------------------------------
d72491dfab | David Lawrence Ramsey | 2010-10-20 10:59:03 -0500

Make monster felids the same size as player felids.

--------------------------------------------------------------------------------
3a94664038 | Raphael Langella | 2010-10-20 17:54:59 +0200

slightly reduce the taskbar offset

--------------------------------------------------------------------------------
7660c0c433 | David Lawrence Ramsey | 2010-10-20 09:16:09 -0500

Fix compilation.

--------------------------------------------------------------------------------
70b4905e37 | Adam Borowski | 2010-10-20 16:00:51 +0200

A custom trap: falling grate.
Most likely needs a lot of work, but in the first approximation it works.

--------------------------------------------------------------------------------
73408da78c | Adam Borowski | 2010-10-20 14:56:21 +0200

Let fur help against acid, but only for naked slots.
It's rounded down, so to get any benefit from fur 1 at all, you'd
need to be completely naked.  Fur 2 takes a damage dice away if
you have 3+ naked slots, fur 3 saves up to three dice.

End result: except for early game, slime damage is:
most races:  2*X
Sp/Og/Tr/Dr: 3*X
Fe:          4*X (was 7*X)

--------------------------------------------------------------------------------
f59ce47d2f | Adam Borowski | 2010-10-20 14:38:00 +0200

Don't cull useless items until after spells are given (matters for FeEE).

--------------------------------------------------------------------------------
1f6cff752d | Adam Borowski | 2010-10-20 14:35:21 +0200

Felids: rocks are not useless if you know Sandblast.

--------------------------------------------------------------------------------
609fa02eda | Adam Borowski | 2010-10-20 14:22:30 +0200

Felids: make them Norwegian Forest or lynx-sized.
This boosts CC and nerfs EV down to Spriggan level.

--------------------------------------------------------------------------------
7fab7ae509 | Adam Borowski | 2010-10-20 14:21:02 +0200

Reduce the size of vanilla spiders to match description.

--------------------------------------------------------------------------------
4a53645bb5 | Adam Borowski | 2010-10-20 14:18:51 +0200

A custom trap: basket of spiders.

--------------------------------------------------------------------------------
f51eb1b177 | Adam Borowski | 2010-10-20 13:20:29 +0200

Make pressure plates call Lua markers when stepped on.

--------------------------------------------------------------------------------
9eb58e8d93 | Adam Borowski | 2010-10-20 12:43:51 +0200

Remove special casing for detected items.

--------------------------------------------------------------------------------
475154385f | Adam Borowski | 2010-10-20 12:12:39 +0200

Fake an item to fix tiles crash on Xom's/Ashenzari's item detection.
A simpler way would be to show the unseen tile when item_info is 0, but
that would prevent us from having different classes of detected items
in the future.

--------------------------------------------------------------------------------
dac88be3f3 | Adam Borowski | 2010-10-19 14:50:14 +0200

Let torment damage be reflected by Yred.
There's a number of cases like this, but especially for clouds and poison,
they're much harder to fix.

--------------------------------------------------------------------------------
5825ee75f1 | Adam Borowski | 2010-10-19 14:15:12 +0200

Track the portion of damage done by you and friendlies.

--------------------------------------------------------------------------------
0abe7ac4ea | Raphael Langella | 2010-10-18 22:22:50 +0200

remove tile_align_at_top option (much better taskbar overlap fix)
taskbar overlap is now automatically detected, and the window is placed
just above it.

--------------------------------------------------------------------------------
cb4e4dcd0f | David Lawrence Ramsey | 2010-10-18 09:48:15 -0500

Really mark all tentacle types as levitating.

--------------------------------------------------------------------------------
400869f147 | Adam Borowski | 2010-10-18 14:10:21 +0200

Fix the trap name assert.  Doesn't yet name them properly.
The code is wrong for all traps without "trap" in name, like Passage of
Golubria.  Pushing it to fix CDO.

--------------------------------------------------------------------------------
fa5af93abd | Adam Borowski | 2010-10-18 13:00:39 +0200

Remove some duplicated logic.

--------------------------------------------------------------------------------
ed2f23e453 | Adam Borowski | 2010-10-18 12:38:47 +0200

Blank traps: enum and name.

--------------------------------------------------------------------------------
a350c2571c | Adam Borowski | 2010-10-18 12:08:30 +0200

Felids: reenable Canine Familiars.  Kitteh luvs goggie, after all.

--------------------------------------------------------------------------------
51fea9fa61 | Adam Borowski | 2010-10-18 12:06:41 +0200

Allow to dig/LRD/shatter iron grates.  No stone of earth, passwall or boring 
beetles.

--------------------------------------------------------------------------------
d2ac95e13b | Adam Borowski | 2010-10-18 12:06:41 +0200

Make the iron grate an actual feature rather than a Lua redefinition.
The only differences are that it shows as '#' even with CSET_IBM (unless
redefined), and that it's easier to use dynamically as it doesn't need
markers anymore.

--------------------------------------------------------------------------------
4e51379178 | Adam Borowski | 2010-10-18 12:06:41 +0200

s/folder/directory/, the former is Microsoft-centric.

--------------------------------------------------------------------------------
5cc02bb80d | Mu | 2010-10-18 11:02:10 +0100

Place a few scrolls of amnesia in sprint_mu

--------------------------------------------------------------------------------
1350563996 | Jude Brown | 2010-10-18 19:48:46 +1000

Implement snail/turtle shells, rename giant snails -> agate snails.
Agate snails are another name for the Giant African Snail, the largest
land snail ever. It, in my opinion, sounds a lot better than just plain
old boring "giant snail", and as most people don't know what an agate
snail is, we can take advantage of it.

Turtles (alligator snapping and plain snapping) as well as agate snails
will now withdraw into their shells as an "escape spell" (implemented
using the same hp<mhp/4 logic as escape spells, but actually a special
ability rather than a spell). Being "withdrawn" grants them an extra
10AC as well as regen (not specifically stated, should perhaps be?),
causes them to become stationary and cease attacking.

Commit also introduces ENCH_ATTACHED and MB_ATTACHED (enum.h and
mon-info.h respectively) for attached leeches, not yet coded.

--------------------------------------------------------------------------------
f73771734d | Raphael Langella | 2010-10-17 22:39:45 +0200

improve default tiles layout for high res
view_max_width is ignored and view_max_height is mostly ignored (see
options_guide for details)
msg_max_height now works.
The viewport will expand to use all the available space. If you really need
a smaller viewport, it makes more sense to reduce the size of the window or
increase the message area, than have a big window with lots of empty spaces.

--------------------------------------------------------------------------------
242f2fb32e | David Lawrence Ramsey | 2010-10-16 21:24:03 -0500

Mark all tentacle types as levitating.
Rationale: Krakens/eldritch things hold their tentacles aloft, and
making this change fixes problems with how tentacles/tentacle segments
interact with shaft traps.

--------------------------------------------------------------------------------
feca6d2bd3 | David Lawrence Ramsey | 2010-10-16 20:42:45 -0500

Fix punctuation.

--------------------------------------------------------------------------------
51454fc4f0 | David Lawrence Ramsey | 2010-10-16 19:40:07 -0500

Add another formatting fix.

--------------------------------------------------------------------------------
8fb874cf88 | David Lawrence Ramsey | 2010-10-16 16:55:56 -0500

Add formatting fix.

--------------------------------------------------------------------------------
ebd00d291e | David Lawrence Ramsey | 2010-10-16 16:53:22 -0500

Update wizard_change_species() for deep dwarf/felid mutation changes.

--------------------------------------------------------------------------------
2d40cd4d02 | David Lawrence Ramsey | 2010-10-16 15:29:01 -0500

Update wizard_change_species() for new draconian mutation changes.

--------------------------------------------------------------------------------
8141e02499 | David Lawrence Ramsey | 2010-10-16 15:26:41 -0500

Put player draconian species switches in a consistent order.

--------------------------------------------------------------------------------
702d55a608 | David Lawrence Ramsey | 2010-10-16 15:15:05 -0500

Remove redundant comment.

--------------------------------------------------------------------------------
a368661841 | David Lawrence Ramsey | 2010-10-16 15:00:04 -0500

Make the inability to use stairs properly apply to all tentacles.

--------------------------------------------------------------------------------
6b5faad53e | David Lawrence Ramsey | 2010-10-16 14:55:57 -0500

Convert grey draconians' unbreathing into a general quality.
On the player side, it's applied specifically to mature grey draconians
and generically to undead races (in both cases as a single-level
non-random mutation), and also applied as a quality to lich and statue
transformations.  On the monster side, it's a monster class flag,
applied specifically to grey draconians and generically to all undead,
plant, and non-living monsters.

As with grey draconians, having this quality implies asphyxiation
resistance and Mephitic Cloud immunity.

--------------------------------------------------------------------------------
1c1c504fe7 | David Lawrence Ramsey | 2010-10-16 14:43:16 -0500

Fix indentation.

--------------------------------------------------------------------------------
03e6702227 | David Lawrence Ramsey | 2010-10-16 14:21:06 -0500

Clean up asphyxiation resistance.
Remove it from butterflies, kraken parts, and demons in general.

--------------------------------------------------------------------------------
6c736f6c16 | David Lawrence Ramsey | 2010-10-16 14:18:43 -0500

Mention grey draconians' ability to walk through water separately.
Also, to avoid confusion, describe orcs' Beogh-powered water walking as
"walk on water" instead of "water walking".

--------------------------------------------------------------------------------
f132aeefe5 | David Lawrence Ramsey | 2010-10-16 14:10:32 -0500

Typo fixes.

--------------------------------------------------------------------------------
7237c54eca | David Lawrence Ramsey | 2010-10-16 13:55:27 -0500

Make giant cockroaches poison-vulnerable, as other insects are.

--------------------------------------------------------------------------------
83ff5e210b | David Lawrence Ramsey | 2010-10-16 13:53:02 -0500

Fix indentation.

--------------------------------------------------------------------------------
9faeaf4f15 | David Lawrence Ramsey | 2010-10-16 13:50:14 -0500

Rename MONS_KRAKEN_CONNECTOR to MONS_KRAKEN_TENTACLE_SEGMENT.

--------------------------------------------------------------------------------
7615c45dcf | David Lawrence Ramsey | 2010-10-16 13:47:15 -0500

Simplify _get_kraken_head() a bit.

--------------------------------------------------------------------------------
074ee34484 | David Lawrence Ramsey | 2010-10-16 13:45:42 -0500

Make berserking and fear-based checks properly apply to all tentacles.

--------------------------------------------------------------------------------
db701eef12 | David Lawrence Ramsey | 2010-10-16 13:44:28 -0500

Make Ely's pacification check properly apply to all tentacles.

--------------------------------------------------------------------------------
e231fbd2d7 | David Lawrence Ramsey | 2010-10-16 13:43:06 -0500

Simplify monster tentacle detection functions.

--------------------------------------------------------------------------------
b197bc5109 | David Lawrence Ramsey | 2010-10-16 13:42:08 -0500

Typo fixes.

--------------------------------------------------------------------------------
27b411c476 | David Lawrence Ramsey | 2010-10-16 10:53:28 -0500

Constify.

--------------------------------------------------------------------------------
f7f9bc5dbb | Adam Borowski | 2010-10-16 01:26:24 +0200

Add coolio's tiles for nisse and Sprigagnes.

--------------------------------------------------------------------------------
ee460804a9 | Raphael Langella | 2010-10-16 00:03:19 +0200

boost alarm trap noise
now makes a noise of 25 instead of 12

--------------------------------------------------------------------------------
5774257f72 | David Lawrence Ramsey | 2010-10-15 15:06:27 -0500

In mon-data.h, move certain monsters to their proper sections.

--------------------------------------------------------------------------------
af53818c36 | David Lawrence Ramsey | 2010-10-15 14:23:50 -0500

Fix draconian genus/species inconsistency in monster_info.

--------------------------------------------------------------------------------
8bbb2a7352 | David Lawrence Ramsey | 2010-10-15 14:23:11 -0500

Simplify.

--------------------------------------------------------------------------------
cc386ab6c7 | David Lawrence Ramsey | 2010-10-15 12:57:34 -0500

Apply ubergeek's patch in Mantis 2727.
The passive freeze mutation is now properly handled in clouds of cold,
instead of as an erroneous fallthrough from another cloud type.

--------------------------------------------------------------------------------
a2f3022c01 | David Lawrence Ramsey | 2010-10-15 12:32:12 -0500

Use better defaults for draco_type/colour in monster_info::monster_info.

--------------------------------------------------------------------------------
a07d645604 | David Lawrence Ramsey | 2010-10-15 12:31:47 -0500

Add proper monster index assert to mons_class_colour().

--------------------------------------------------------------------------------
502f2de4bd | David Lawrence Ramsey | 2010-10-15 11:22:33 -0500

Properly use mon-util's draco_subspecies() in monster_info (oops).

--------------------------------------------------------------------------------
d13bb4fd49 | David Lawrence Ramsey | 2010-10-15 10:53:03 -0500

Move draco_subspecies() from monster_info back to mon-util.cc.
mon-util.cc seems to set the ghost structure up properly, so assertions
regarding monster type don't seem to occur (e.g. illusions of draconian
players will now use proper breath weapons instead of asserting).

This may fix Mantis 2716.

--------------------------------------------------------------------------------
dc074ce665 | Eino Keskitalo | 2010-10-15 16:10:12 +0300

Fix secret doors being given away by colouring in several volcano_grotto 
subvaults.
I remember testing and not seeing that happen, though..

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0dfea92754 | Adam Borowski | 2010-10-15 13:26:26 +0200

Allow --save-version dir/actual-file.cs as well.

--------------------------------------------------------------------------------
4c96f27c95 | Adam Borowski | 2010-10-15 13:24:06 +0200

Allow --edit-save dir/actual-file-name.cs

--------------------------------------------------------------------------------
8a748be607 | Eino Keskitalo | 2010-10-15 13:09:38 +0300

Reorder scrolls in dc-item.txt. Fixes #2721 (wrong scroll icons).
Looks like the scrolls need to be in the same order as in itemprop-enum.h.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
dca06a7a3a | Adam Borowski | 2010-10-15 11:28:33 +0200

If you get Pikel's slaves to perm friendly, don't degrade them on Pikel's death.

--------------------------------------------------------------------------------
f7717330f1 | Adam Borowski | 2010-10-15 02:17:01 +0200

Merge branch 'master' into unicode

--------------------------------------------------------------------------------
e7572d74b3 | Adam Borowski | 2010-10-15 02:12:34 +0200

Merge branch 'master' into unicode

--------------------------------------------------------------------------------
448542e984 | Adam Borowski | 2010-10-15 02:04:06 +0200

Spacing fix: "if(".

--------------------------------------------------------------------------------
343ede6aa4 | Adam Borowski | 2010-10-15 02:00:55 +0200

Felids: mark scrolls of vorp weapon as useless.

--------------------------------------------------------------------------------
555734fcd3 | Adam Borowski | 2010-10-15 01:55:59 +0200

Massive spacing fixes: "( spaces after parentheses )".
I did review it manually to find places where they made sense (like some
tables), but for a massive sed job like this there might be places that
I missed.

--------------------------------------------------------------------------------
acf5187334 | Adam Borowski | 2010-10-15 01:26:53 +0200

Ashenzari: allow acquirement to produce cursed items.

--------------------------------------------------------------------------------
14c3ef7864 | David Lawrence Ramsey | 2010-10-14 18:18:39 -0500

Fix indentation.

--------------------------------------------------------------------------------
ee4d2da1b8 | David Lawrence Ramsey | 2010-10-14 18:18:24 -0500

Move checks for naturally glowing to an actor-interface function.
Also, make monsters pay attention to it when deciding whether to cast
Corona or Invisibility, or whether to use wands of invisibility.  This
fixes Mantis 2718.

--------------------------------------------------------------------------------
86c81fd8cb | David Lawrence Ramsey | 2010-10-14 17:26:21 -0500

Clarify comments: "backlight" refers only to corona, so use "corona".

--------------------------------------------------------------------------------
571d6a7f0d | David Lawrence Ramsey | 2010-10-14 17:25:41 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
87e2f2dbaa | Mu | 2010-10-14 11:59:58 +0100

On second thought, Remove Ashenzari's altar from sprint_mu
Scrying is far too abusable on such a small map. Perhaps once the
abuses involving scrying and smite-targetted spells have been
addressed we can re-add the altar.

--------------------------------------------------------------------------------
9d976873ef | Raphael Langella | 2010-10-14 09:02:09 +0200

don't prompt twice for autoinscribe

--------------------------------------------------------------------------------
10041396a3 | David Lawrence Ramsey | 2010-10-14 01:09:19 -0500

Fix Mantis 2715: Properly mark acid spit as being limited by breath.

--------------------------------------------------------------------------------
1e92fec714 | David Lawrence Ramsey | 2010-10-14 00:59:43 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
a6af7d537b | David Lawrence Ramsey | 2010-10-13 19:48:53 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
2db695cb6c | Mu | 2010-10-14 00:12:12 +0100

Add an altar of Ashenzari to the temple in sprint_mu

--------------------------------------------------------------------------------
6b069680fd | Raphael Langella | 2010-10-14 00:40:04 +0200

put back autoinscribe on the action line
Mantis 2712
Sometimes, the line overflows, but it is cleanly truncated (the item name is). 
I think it's okay.

--------------------------------------------------------------------------------
37d38e5d2f | Adam Borowski | 2010-10-13 18:43:20 +0200

Fix a warning (NULL instead of 0).

--------------------------------------------------------------------------------
9ddcaee1d4 | Adam Borowski | 2010-10-13 16:56:02 +0200

Avoid infinite loops when the only map[s] eligible are "extra".
This is an erroneous situation, so it might be a good idea to assert out
instead -- I elected to just bail out silently as 10000 bad rolls are not
outright impossible for very small levels and proper detection would be
trickier.

--------------------------------------------------------------------------------
a4167a120e | Adam Borowski | 2010-10-13 16:49:15 +0200

Specify branches for statue_in_the_mist_lemuel explicitely.
Maps with "extra" should not happen in places where they would end up
the only maps eligible.  That infinite loop has to be patched anyway,
but we shouldn't even get there.

--------------------------------------------------------------------------------
d1558a4bac | Adam Borowski | 2010-10-13 16:45:17 +0200

Fix two Orc entrances spawnable in non-D.

--------------------------------------------------------------------------------
9474d72118 | Adam Borowski | 2010-10-13 14:50:21 +0200

Fix some warnings.
A default: case was missing for object types that have no attached commands.
Clang complains loudly about unsigned>=0 (always true), and there's no obvious
way to disable this in asserts but not elsewhere.

--------------------------------------------------------------------------------
30886fb5ae | Adam Borowski | 2010-10-13 12:07:28 +0200

Remove _connected_flood(), it's unused.
It might become useful again, but then, it would probably have a different
interface and different output, and it's easy to write it from scratch in
an iterative form that would be a lot faster.

--------------------------------------------------------------------------------
074c6cd091 | Adam Borowski | 2010-10-13 12:03:48 +0200

Make several functions static.

--------------------------------------------------------------------------------
7b9b1f7bb8 | David Lawrence Ramsey | 2010-10-13 01:18:34 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ba367da1af | David Lawrence Ramsey | 2010-10-13 01:17:27 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
d09b37a7dd | David Lawrence Ramsey | 2010-10-13 01:11:41 -0500

Tweak spacing.

--------------------------------------------------------------------------------
815fcf11aa | David Lawrence Ramsey | 2010-10-13 00:03:37 -0500

Comment fixes.

--------------------------------------------------------------------------------
c4ae2df07a | David Lawrence Ramsey | 2010-10-13 00:00:26 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
d07f6ecd5b | David Lawrence Ramsey | 2010-10-12 22:29:43 -0500

Fold claws_level() into species_has_claws().
They do much the same thing, except that claws_level() only deals with
the claws mutation, so allow controlling that with a parameter in
species_has_claws().

--------------------------------------------------------------------------------
1e65619ce9 | David Lawrence Ramsey | 2010-10-12 21:58:48 -0500

Remove redundant claws mutation level setting for trolls.

--------------------------------------------------------------------------------
a904694c21 | David Lawrence Ramsey | 2010-10-12 21:18:58 -0500

Fix assertion failure with monster grey draconians and Mephitic Cloud.

--------------------------------------------------------------------------------
265e72e1b0 | David Lawrence Ramsey | 2010-10-12 21:14:33 -0500

Fix kraken connector description; they're "tentacle segments" in-game.

--------------------------------------------------------------------------------
3756023bce | David Lawrence Ramsey | 2010-10-12 21:03:25 -0500

Make monster grey draconians resist Mephitic Cloud, as player ones do.

--------------------------------------------------------------------------------
29a915cc8d | David Lawrence Ramsey | 2010-10-12 20:39:31 -0500

Fix inconsistency between max_cloud_damage() and in_a_cloud().
Grey draconian players resist mephitic cloud, so they should be handled
in the former as well as the latter.

--------------------------------------------------------------------------------
6823b8f756 | David Lawrence Ramsey | 2010-10-12 19:31:48 -0500

Make monster grey draconians resist asphyxiation, as player ones do.

--------------------------------------------------------------------------------
ea35ae7818 | David Lawrence Ramsey | 2010-10-12 19:31:08 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
87406cadc4 | David Lawrence Ramsey | 2010-10-12 19:17:57 -0500

Properly display felids' non-mutation "A" screen info on the "%" screen.

--------------------------------------------------------------------------------
335a86f28c | David Lawrence Ramsey | 2010-10-12 19:14:48 -0500

Fix display of mummy necromancy boost (both levels) in the "%" screen.

--------------------------------------------------------------------------------
f705bbbbc0 | David Lawrence Ramsey | 2010-10-12 19:13:48 -0500

Remove erroneous mention of vampire necromancy boost on the "%" screen.

--------------------------------------------------------------------------------
c8bd64b89e | David Lawrence Ramsey | 2010-10-12 18:43:25 -0500

In fight.cc, properly use has_claws() instead of checking for MUT_CLAWS.
This ensures that sources of claws other than the mutation (felids,
transformations such as dragon form) get the proper claw damage.

--------------------------------------------------------------------------------
6609447970 | Adam Borowski | 2010-10-13 01:41:53 +0200

Felids: fix smart-ass players giving them wings in the doll editor.
I know, Red Bull has lots of taurine, which is what cats crave, but come on...

--------------------------------------------------------------------------------
9fa441e301 | Adam Borowski | 2010-10-13 01:33:55 +0200

Fix the Stalker description -- they don't use poison anymore.

--------------------------------------------------------------------------------
d661e6c7ad | David Lawrence Ramsey | 2010-10-12 18:27:33 -0500

Fix compilation.

--------------------------------------------------------------------------------
b1f21bc711 | Adam Borowski | 2010-10-13 01:18:01 +0200

Extending Necromutation you got from a card/Xom -> excommunication.

--------------------------------------------------------------------------------
0f3949f3bd | Adam Borowski | 2010-10-13 00:17:44 +0200

Ashenzari: fix remove curse not working on weapons.

--------------------------------------------------------------------------------
3eba331f39 | Adam Borowski | 2010-10-13 00:17:44 +0200

Ashenzari: show the bondage level on the ^ screen.

--------------------------------------------------------------------------------
d354e88f93 | Adam Borowski | 2010-10-13 00:17:44 +0200

Ashenzari: autoinscribe artefacts when they get passively identified.

--------------------------------------------------------------------------------
b5c199b3f8 | Adam Borowski | 2010-10-13 00:17:44 +0200

Ashenzari: check the bondage level on join/renounce.
The new level worked immediately, yet you got a spurious message the next
time you did something that potentially could affect bondage.

--------------------------------------------------------------------------------
829b8680e7 | Adam Borowski | 2010-10-13 00:17:44 +0200

Felids: wands are indeed useless, so they should be marked as such.
This may be a contentious point for autopickup, but it's better to have
the base logic represent the true state and put tactical decisions at most
into the config file.  Let's think about what should be the default.

--------------------------------------------------------------------------------
280a8204be | Adam Borowski | 2010-10-13 00:17:44 +0200

Felids: nerf the hp gains from Fighting.
With high-level meleers, base hp hardly matters, Fighting bonuses bring
the most.

--------------------------------------------------------------------------------
32308ba701 | Adam Borowski | 2010-10-13 00:17:44 +0200

Felids: nerf UC (no-brainer) and Evoc (Nemelex is too good with saccing wands)

--------------------------------------------------------------------------------
16256cb42d | Adam Borowski | 2010-10-13 00:17:43 +0200

Revert "Felids: bump the tloc skill, for theme." This reverts commit 
3f08241b69eb17f5426d8d8845f76e63c603e39d.
+2 is already better than enough.

--------------------------------------------------------------------------------
45a56ab7e4 | Adam Borowski | 2010-10-13 00:17:43 +0200

Ashenzari: boost XP gains.
This may be badly overpowered, which is good as the god is currently totally
underwhelming.  With some playtesting, we'll find a good spot.

--------------------------------------------------------------------------------
15903ed7c7 | Raphael Langella | 2010-10-12 23:36:09 +0200

Allow setting of the window size relatively to the screen size.

--------------------------------------------------------------------------------
83ad1df840 | Raphael Langella | 2010-10-12 23:35:37 +0200

New option tile_align_at_top (windows only)
When set, the window will be aligned at the top of the screen instead of being 
centered (avoid taskbar overlap, see mantis 2043).

In theory, it would be possible to give the player full control of the window 
position, but it's more complicated and I don't see any use for it. It can 
easily be added if anyone ever request it.

--------------------------------------------------------------------------------
cec1b6e8d6 | David Lawrence Ramsey | 2010-10-12 13:06:29 -0500

Change the hardcoded claw level for felids to 1.
The old return value of true in player::has_claws() is more likely to be
1 than 3, and having it at 3 will cause display problems with tiles due
to its trying to draw claws.

--------------------------------------------------------------------------------
3e2406d8af | David Lawrence Ramsey | 2010-10-12 13:02:04 -0500

Add spacing fix.

--------------------------------------------------------------------------------
b6a756ec12 | David Lawrence Ramsey | 2010-10-12 12:58:43 -0500

Make player::has_claws() return a numeric value for felids.
"true" is only guaranteed to be nonzero.  The value returned is
currently the same value as species_has_claws() for SP_CAT.

--------------------------------------------------------------------------------
d8b0c6157d | David Lawrence Ramsey | 2010-10-12 12:55:05 -0500

Update comment.

--------------------------------------------------------------------------------
ec47778947 | David Lawrence Ramsey | 2010-10-12 12:30:03 -0500

Properly give moths of wrath insect intelligence.

--------------------------------------------------------------------------------
21c621c03c | David Lawrence Ramsey | 2010-10-12 11:28:12 -0500

Add death message for undead Yred worshippers.

--------------------------------------------------------------------------------
787a77e3c0 | Jude Brown | 2010-10-12 22:22:19 +1000

Complete fountain mimics.

--------------------------------------------------------------------------------
a9473007a0 | Jude Brown | 2010-10-12 22:22:19 +1000

Fix indendation.

--------------------------------------------------------------------------------
e313362d6e | Jude Brown | 2010-10-12 22:22:18 +1000

Shift mimic initialisation code down, portal mimics.
Portal mimics can now be of Labyrinths, Ossuaries, Sewers and Bazaars
(all portals that have current entries in dat/descript/features.txt).

--------------------------------------------------------------------------------
5a9772c239 | Raphael Langella | 2010-10-12 12:36:48 +0200

fix crash when autowielding misc and cancelling unwield

--------------------------------------------------------------------------------
aa92885a90 | Jude Brown | 2010-10-12 18:43:22 +1000

Move feature mimic code to mon-place.cc.
Instead of having it spread out all over the place, centralise here.

--------------------------------------------------------------------------------
f3bf75b913 | David Lawrence Ramsey | 2010-10-12 00:22:48 -0500

Fix apparently misplaced felid max HP adjustment.

--------------------------------------------------------------------------------
1d2e39d016 | David Lawrence Ramsey | 2010-10-11 22:13:06 -0500

Rename _disc_of_storms() to disc_of_storms().
It shouldn't start with an underscore now that it's no longer static.

--------------------------------------------------------------------------------
9b63a9bc55 | David Lawrence Ramsey | 2010-10-11 22:01:20 -0500

Fix whitespace.

--------------------------------------------------------------------------------
53b005bb26 | David Lawrence Ramsey | 2010-10-11 21:53:05 -0500

Fix compilation.

--------------------------------------------------------------------------------
6d9b7ee99e | David Lawrence Ramsey | 2010-10-11 21:46:53 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
b45f3dca40 | Shayne Halvorson | 2010-10-12 11:57:52 +1000

Properly apply N78291's Draconian patch.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
ee38deca64 | valrus | 2010-10-12 11:32:43 +1000

Added Xom effect: coloured smoke trail behind player.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
6607a9ce9c | Jude Brown | 2010-10-12 11:32:43 +1000

Fix whitespace.

--------------------------------------------------------------------------------
8145280222 | Shayne Halvorson | 2010-10-12 11:32:42 +1000

Draconian improvement
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
cd99fc5ce0 | David Lawrence Ramsey | 2010-10-11 20:18:21 -0500

Fix Mantis 2706: Add a description for kraken connectors.

--------------------------------------------------------------------------------
aa96fef461 | David Lawrence Ramsey | 2010-10-11 19:59:13 -0500

Add missing description for grey draconians, based on the others.

--------------------------------------------------------------------------------
2ad9cfc258 | David Lawrence Ramsey | 2010-10-11 19:57:49 -0500

Make the descriptions for all types of base draconians match.

--------------------------------------------------------------------------------
b1b5e6fd9e | David Lawrence Ramsey | 2010-10-11 19:53:16 -0500

Add missing newline after draconian description.

--------------------------------------------------------------------------------
7f3d88f889 | David Lawrence Ramsey | 2010-10-11 19:48:23 -0500

Unify monster_info's draco_subspecies() with mon-util.cc's.
mon-util.cc's version now calls the monster_info version (a la
monster::body_size()), and its assertion that the monster passed in is
of the draconian genus is moved to the monster_info version.

--------------------------------------------------------------------------------
87f0dd4a7d | David Lawrence Ramsey | 2010-10-11 19:24:08 -0500

Clean up Tiamat's color-changing routine.
Move it into its own function, and have it set the base type associated
with the color.  This means that the hacks in draco_subspecies() to get
Tiamat's base type and resistances based on color are no longer
necessary, so they're removed.

As a side effect, Tiamat is now always initialized to one of her random
colors instead of always starting out as a purple draconian; if this
were not the case, her base type would be the base draconian until her
first color change, since her genus and species are both set to
MONS_DRACONIAN.

--------------------------------------------------------------------------------
89ac9cc442 | David Lawrence Ramsey | 2010-10-11 18:57:07 -0500

Indent unused monster enum value.

--------------------------------------------------------------------------------
0bfd242d05 | David Lawrence Ramsey | 2010-10-11 16:52:48 -0500

Remove unnecessary extra spacing from draconian descriptions.

--------------------------------------------------------------------------------
95bc405be7 | David Lawrence Ramsey | 2010-10-11 16:46:09 -0500

Get draconian player illusion species in monster_info as in mon-util.cc.

--------------------------------------------------------------------------------
3b7b6bf0d3 | David Lawrence Ramsey | 2010-10-11 16:33:42 -0500

Move conversion of player to monster species to its own function.
Also, use it to get the species of draconian player illusions in
mon-util.cc.

--------------------------------------------------------------------------------
9d363587c1 | Raphael Langella | 2010-10-11 23:02:38 +0200

auto-wield miscellaneous items on evoke

--------------------------------------------------------------------------------
25c9d82958 | Raphael Langella | 2010-10-11 22:23:39 +0200

add an option show_real_turns (default off)
Setting this option change the turn count from player turns to absolute turns

--------------------------------------------------------------------------------
78db70e893 | David Lawrence Ramsey | 2010-10-11 15:05:19 -0500

Add formatting fix.

--------------------------------------------------------------------------------
2f275c757f | David Lawrence Ramsey | 2010-10-11 14:53:10 -0500

Simplify unsuitable_misled_monster(), and add a few missing candidates.
Specifically:

1. mons_is_ghost_demon() covers all monsters in mons_is_pghost(), plus
(very) ugly things, dancing weapons, and Pandemonium demons.

2. mons_class_is_zombified() covers zombies, skeletons, simulacra, and
spectral things.

3. mons_class_is_tentacle() covers kraken connectors and tentacles.  It
also covers eldritch tentacles and eldritch tentacle segments, which
should be covered, since they use number in similar ways.

3. Ballistomycetes are covered, but hyperactive ballistomycetes should
also be covered, since they use number in similar ways.

4. Other monsters that use number for various things (slime creatures,
hydras, kraken heads) are covered, but manticores should also be
covered, since they use number in similar ways.

--------------------------------------------------------------------------------
42129d8098 | David Lawrence Ramsey | 2010-10-11 14:00:40 -0500

Fix more information leaks for misled monsters in monster_info.
This applies to most of the information now using mon-util.cc functions
instead of duplicate code.  Monsters using weapons and armour or
wielding two weapons are obvious, so they're still displayed that way
(e.g. a hobgoblin wielding two great maces is probably not actually a
hobgoblin).

--------------------------------------------------------------------------------
ff2c15420c | David Lawrence Ramsey | 2010-10-11 14:00:22 -0500

Comment fix.

--------------------------------------------------------------------------------
f1f65bba0f | David Lawrence Ramsey | 2010-10-11 13:49:39 -0500

Fix giving away mindless monsters (e.g. fake rakshasas) in monster_info.

--------------------------------------------------------------------------------
23016cc2bf | David Lawrence Ramsey | 2010-10-11 13:49:39 -0500

Add missing blank lines.

--------------------------------------------------------------------------------
2b2597f336 | David Lawrence Ramsey | 2010-10-11 13:49:38 -0500

Use mons_(class)_base_speed() in monster_info instead of duplicate code.

--------------------------------------------------------------------------------
8ad2baa347 | David Lawrence Ramsey | 2010-10-11 13:49:38 -0500

Use mons_(class)_itemuse() in monster_info instead of duplicating code.

--------------------------------------------------------------------------------
0672df3c11 | David Lawrence Ramsey | 2010-10-11 13:49:38 -0500

Reorganize monster resistance setting in monster_info.

--------------------------------------------------------------------------------
721cdb18e0 | Adam Borowski | 2010-10-11 19:47:38 +0200

Fix mislead being blocked when you don't have enough Ashenzari piety yet.
Same for penance (even though there's currently none).  The clarity mutation
wasn't handled either.

--------------------------------------------------------------------------------
a53213bcb0 | Adam Borowski | 2010-10-11 19:43:07 +0200

Ashenzari: wielded cursed non-weapons are considered not cursed.

--------------------------------------------------------------------------------
47aa4aa8fd | Adam Borowski | 2010-10-11 19:36:44 +0200

Ashenzari: count cursed/worn, not cursed/wearable.
This means, if you can wear five items of a given type but wear only one
and it is cursed, this is good enough to be "bound".

--------------------------------------------------------------------------------
6a522124bb | Adam Borowski | 2010-10-11 19:32:52 +0200

Ashenzari: cut the run-away piety gain rate by half.

--------------------------------------------------------------------------------
1248d45908 | Adam Borowski | 2010-10-11 19:21:56 +0200

Felids: assign a corpse tile.

--------------------------------------------------------------------------------
84c7a45a33 | David Lawrence Ramsey | 2010-10-11 10:17:50 -0500

Add formatting fix.

--------------------------------------------------------------------------------
5244535d54 | David Lawrence Ramsey | 2010-10-11 10:17:01 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
8e02ebef2a | Adam Borowski | 2010-10-11 14:50:48 +0200

Felids: mark weapon-branding spell and Tukima's Dance as useless.

--------------------------------------------------------------------------------
2b22e3315d | Adam Borowski | 2010-10-11 14:50:48 +0200

Felids: scrolls of Enchant Foo are all useless.

--------------------------------------------------------------------------------
3b17ff45c7 | Jude Brown | 2010-10-11 21:50:26 +1000

Functions for random stairs.
Primarily for stair mimics, but not currently implemented yet.

--------------------------------------------------------------------------------
8ecffd1622 | Raphael Langella | 2010-10-11 13:44:02 +0200

inscribe from inventory nicer with small terminals

--------------------------------------------------------------------------------
b3e942a29e | Raphael Langella | 2010-10-11 12:54:34 +0200

handle actions from inventory for miscellaneous items

--------------------------------------------------------------------------------
7265908f77 | Raphael Langella | 2010-10-11 12:54:00 +0200

miscellaneous items need to be wielded to be evoked
Fix mantis 2702

--------------------------------------------------------------------------------
9c05b02127 | Adam Borowski | 2010-10-11 11:31:44 +0200

Felids: memorizing Portal Projectile is useless.

--------------------------------------------------------------------------------
2dfdeb8080 | Adam Borowski | 2010-10-11 11:31:44 +0200

Felids: neither Okawaru nor Trog have anything to give to you.

--------------------------------------------------------------------------------
260cd2908b | Jude Brown | 2010-10-11 19:26:18 +1000

Tweak feature mimics: trap mimics.
Now they:
	* use a randomly chosen trap as their appearance (purely
	  mechanical tough)
	* are now known as "<x> mimic" as opposed to "mimic".

--------------------------------------------------------------------------------
2172c6ab03 | Jude Brown | 2010-10-11 19:26:17 +1000

Let Malign Gateway form on shallow water. (Mu)
This lets it work in the Swamp. It'll permanently replace the shallow
water with a floor tile. I don't think that's an issue, but if it's
undesirable, we can change it at a later date.

--------------------------------------------------------------------------------
850d95a64d | Adam Borowski | 2010-10-11 11:15:32 +0200

Felids: don't allow arbitrary teleports on death.

--------------------------------------------------------------------------------
642ae96e6b | Adam Borowski | 2010-10-11 11:02:32 +0200

Felids: abort ascending stairs and passwall when dying.

--------------------------------------------------------------------------------
e9613bf4a5 | David Lawrence Ramsey | 2010-10-10 20:32:32 -0500

Tweak blood potion descriptions to mention nutrition for non-herbivores.

--------------------------------------------------------------------------------
27da7e0e5a | David Lawrence Ramsey | 2010-10-10 19:54:25 -0500

Fix wrapping of kraken tentacle description.

--------------------------------------------------------------------------------
99408bf274 | David Lawrence Ramsey | 2010-10-10 19:54:13 -0500

Mark kraken connectors as unable to use stairs, since tentacles can't.

--------------------------------------------------------------------------------
81634bea8d | David Lawrence Ramsey | 2010-10-10 19:54:13 -0500

Clean up the routines to determine if a monster is a tentacle.

--------------------------------------------------------------------------------
aeca2f3916 | David Lawrence Ramsey | 2010-10-10 19:54:12 -0500

Remove make_fake_undead() and references to it.
With kraken connectors/tentacles inheriting no-regen from their heads,
there's no longer any need to set the no-regen flag in
make_fake_undead(), and the function is something of a hack anyway, so
replace it with setting the MF_FAKE_UNDEAD flag directly, as before.

--------------------------------------------------------------------------------
2cf28222d2 | David Lawrence Ramsey | 2010-10-10 19:54:12 -0500

Simplify sanity check for zombified kraken heads in _get_kraken_head().

--------------------------------------------------------------------------------
e623d7b0b7 | David Lawrence Ramsey | 2010-10-10 19:54:12 -0500

Check for enslaved souls later in mon_intel().
If there's ever an intelligent kraken, and it's enslaved, it'll now get
the proper intelligence.

--------------------------------------------------------------------------------
679f4f134c | Adam Borowski | 2010-10-11 02:44:15 +0200

Ashenzari: vaguely mention that you are told stuff.

--------------------------------------------------------------------------------
096f8a9cbb | Adam Borowski | 2010-10-11 02:31:25 +0200

Ashenzari: for scrolls of Remove Curse, ask for a set of worn items to uncurse.

--------------------------------------------------------------------------------
0517cb2b0f | Adam Borowski | 2010-10-11 02:31:25 +0200

Ashenzari: scrolls of Detect Curse are useless.

--------------------------------------------------------------------------------
da735573f0 | Adam Borowski | 2010-10-11 02:31:24 +0200

Ashenzari: reduce the id spam on join, cursedness is not that interesting.

--------------------------------------------------------------------------------
8697a157a5 | Adam Borowski | 2010-10-11 02:31:24 +0200

Ashenzari: identify Remove Curse, Curse Foo and eligible stuff at conversion.

--------------------------------------------------------------------------------
26cf971134 | Adam Borowski | 2010-10-11 02:31:24 +0200

Ashenzari: mislead immunity.

--------------------------------------------------------------------------------
af79abff6b | David Lawrence Ramsey | 2010-10-10 19:25:26 -0500

Make kraken connectors/tentacles inherit the head's no-regen flag.

--------------------------------------------------------------------------------
0c4dd92bd5 | David Lawrence Ramsey | 2010-10-10 19:11:52 -0500

Simplify setting the two-weapons and no-regen flags in monster_info.

--------------------------------------------------------------------------------
942f6166e3 | David Lawrence Ramsey | 2010-10-10 18:50:37 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
eff01d9e30 | David Lawrence Ramsey | 2010-10-10 18:49:02 -0500

Use make_fake_undead() properly in one more place for kraken connectors.

--------------------------------------------------------------------------------
fbe8ffbb12 | Adam Borowski | 2010-10-11 01:35:53 +0200

Ashenzari: passive identify of gear.
Unlike the proposal, getting eligible later will id the item.  Otherwise,
people would leave things on ground to pick them up later, which is quite
a degenerate thing to do.

--------------------------------------------------------------------------------
37e685bd27 | David Lawrence Ramsey | 2010-10-10 15:43:15 -0500

Remove poison resistance from abominations again.
It was originally added so that their undead versions would be properly
poison-resistant, and so that the two would have identical resistances
in order to avoid confusion, but now that poison resistance is added for
all undead types, and demonic abominations can no longer be confused
with undead abominations in terms of color or damage messages ("wounded"
vs. "damaged"), it seems to no longer be necessary.  Besides, enough
demonic monsters resist poison as it is.

--------------------------------------------------------------------------------
2c5d2efaca | David Lawrence Ramsey | 2010-10-10 15:31:38 -0500

Add spacing fix.

--------------------------------------------------------------------------------
c9d6340523 | Adam Borowski | 2010-10-10 22:23:04 +0200

Felids: dogs are not tameable.  Enslavement still works, though.

--------------------------------------------------------------------------------
57e02e26fc | Adam Borowski | 2010-10-10 22:21:58 +0200

Felids: no Canine Familiars, duh.

--------------------------------------------------------------------------------
4e7a57a7c1 | David Lawrence Ramsey | 2010-10-10 15:20:09 -0500

Fully avoid current gift counter overflows with regard to Yred servants.

--------------------------------------------------------------------------------
9d787e8ed9 | David Lawrence Ramsey | 2010-10-10 15:12:01 -0500

Avoid current gift counter overflows with regard to Yred servants.

--------------------------------------------------------------------------------
f2bd9a1095 | David Lawrence Ramsey | 2010-10-10 14:23:44 -0500

Add missing blank lines.

--------------------------------------------------------------------------------
c6e2444bb1 | Raphael Langella | 2010-10-10 21:19:38 +0200

improve actions from inventory
use a call to the lua function ch_item_wieldable, so chunks can be wielded when 
sublimation is known for example.

--------------------------------------------------------------------------------
70677843c9 | David Lawrence Ramsey | 2010-10-10 14:13:14 -0500

Make monster_info::draco_subspecies() handle grey draconians.
mon-util.cc:draco_subspecies() already does this.

--------------------------------------------------------------------------------
68b9545222 | David Lawrence Ramsey | 2010-10-10 14:09:36 -0500

Make kraken connectors/tentacles inherit the head's resistances.
This is so e.g. tentacles of kraken simulacra also have triple cold
resistance and fire vulnerability.

--------------------------------------------------------------------------------
f48c22540d | David Lawrence Ramsey | 2010-10-10 13:46:08 -0500

Make _get_kraken_head()'s sanity checks handle zombified kraken heads.

--------------------------------------------------------------------------------
694484d3cb | David Lawrence Ramsey | 2010-10-10 13:08:38 -0500

Use a static_cast where applicable.

--------------------------------------------------------------------------------
c1d65b82c6 | David Lawrence Ramsey | 2010-10-10 13:08:38 -0500

Fix compilation.

--------------------------------------------------------------------------------
9a9705ea83 | Adam Borowski | 2010-10-10 20:02:16 +0200

Ashenzari: passive mapping.

--------------------------------------------------------------------------------
751e42844d | Adam Borowski | 2010-10-10 20:02:16 +0200

Ashenzari: recognize curses on sight.
Note that I modify a const object here -- which is a bad thing to do; just
remember how we chastised blue_anna for doing that.  Too bad, fixing that
would require not just merely removing the qualifier from several layers of
functions, but also rewriting the stack_iterator.  Fortunately, when we had
mirror damage, it inflicted damage to a const monster which could remove
(kill it), wake it up, spawn jellies via passive damage, etc -- but here,
it's just setting a flag that cannot invalidate pointers or so on.

--------------------------------------------------------------------------------
ef1c3097b6 | Adam Borowski | 2010-10-10 20:02:16 +0200

Simplify.
Xom doesn't care about distance here, the exit/rune just needs to be in LOS.

--------------------------------------------------------------------------------
164cf571a0 | Adam Borowski | 2010-10-10 20:02:16 +0200

Fix some range inconsistencies.

--------------------------------------------------------------------------------
6108406d5b | Adam Borowski | 2010-10-10 20:02:16 +0200

Update the install instructions, mention Debian package names.

--------------------------------------------------------------------------------
e572b65581 | David Lawrence Ramsey | 2010-10-10 12:57:30 -0500

Set hardcoded undead poison resistance in the right place.
Do it directly in get_mons_resists() instead of in res_poison().

--------------------------------------------------------------------------------
c90c44a078 | David Lawrence Ramsey | 2010-10-10 12:56:57 -0500

Add formatting fix.

--------------------------------------------------------------------------------
b31ae5e700 | Adam Borowski | 2010-10-10 13:16:15 +0200

Fix a pronoun for non-genderless monster.

--------------------------------------------------------------------------------
1f43610ae8 | ctownsend79@gmail.com | 2010-10-10 13:12:00 +0200

Fix Elvy in-game pacification messaging.
Currently, pacifying a sleeping monster returns the regular pacification 
failure message,
rather than a message that indicates that the monster cannot be currently 
pacified.
This patch changes this indicate that sleeping monsters cannot be pacified in 
their current state.

--------------------------------------------------------------------------------
3fa3819547 | Adam Borowski | 2010-10-10 13:08:02 +0200

Fix compilation on 64 bit.

--------------------------------------------------------------------------------
14ec7a86ae | Adam Borowski | 2010-10-10 13:00:07 +0200

Remove a variant of a temple, bump weight of its counterpart.
While most of jpeg's new variants look fine, this one seems ugly to me.

Also, unlike most of my vaults, I'm proud of it, make it one of more
frequent temples -- weight 30 (the max is 40 or 50 with variants).

--------------------------------------------------------------------------------
c7e65e9ced | Adam Borowski | 2010-10-10 12:52:08 +0200

Make several of temples support 15 gods.

--------------------------------------------------------------------------------
f3c5144c60 | David Lawrence Ramsey | 2010-10-10 05:18:47 -0500

Attempt to rebalance Yred's gifts as mentioned on the wiki.
Undead servants are now sorted by power, and the threshold increases
with each servant granted (i.e. it uses the current number of god gifts;
if you're excommunicated, it will of course reset), so that time spent
worshipping is the main factor, rather than piety per se, since piety
gain seems ot be too fast.

Other factors can also be added if necessary.

(There should probably be a cap on god gifts eventually, since the way
they're being used here will result in some oddities if the current
number of god gifts ever overflows.)

--------------------------------------------------------------------------------
1555cc9a1f | David Lawrence Ramsey | 2010-10-10 05:11:47 -0500

Keep track of current god gifts as well as total god gifts.
num_gifts is renamed to num_total_gifts, and num_current_gifts is added.

The main difference between the two is that the current number of god
gifts for a given god is reset to zero upon being excommunicated.

--------------------------------------------------------------------------------
a0407e59af | Jude Brown | 2010-10-10 18:47:06 +1000

Feature mimics!
Still to-do:
	* Tiles, properly.
	* Traps aren't randomised like shops currently are.
	* Generation should place door mimics instead of doors,
	  sometimes.
	* Portal vault mimics don't have proper descriptions.
	* Use different types of fountains.
	* Use different types of stairs!

Done:
	* Doors will snap closed at you when damaging.
	* Fountains will splash you when damaging.
	* Door mimics are "as big as a door", and so-on.

Everything should, actually, in theory, work properly. I'm sure there's
a lot of bugs, but I'm very happy by the "being chased by doors" thing.
If you want to test these in wizmode, use &m521 through &m526 (door,
portal, trap, stair, shop, fountain).

--------------------------------------------------------------------------------
6773e1e76b | David Lawrence Ramsey | 2010-10-10 01:46:43 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
6157ab3577 | David Lawrence Ramsey | 2010-10-10 01:46:22 -0500

Add missing parentheses.

--------------------------------------------------------------------------------
f04a058fca | David Lawrence Ramsey | 2010-10-09 20:46:09 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
4b20b6a643 | David Lawrence Ramsey | 2010-10-09 20:45:12 -0500

Simplify abomination color restrictions to use do/while.

--------------------------------------------------------------------------------
f2eb07af77 | David Lawrence Ramsey | 2010-10-09 20:43:40 -0500

Comment fix.

--------------------------------------------------------------------------------
863140cd18 | David Lawrence Ramsey | 2010-10-09 20:41:53 -0500

Typo fix.

--------------------------------------------------------------------------------
350040c97d | Jude Brown | 2010-10-10 11:37:39 +1000

Restrict abominations from using certain colours (dpeg).

--------------------------------------------------------------------------------
5bd237b504 | David Lawrence Ramsey | 2010-10-09 18:40:01 -0500

Avoid duplicate sacrifice message, even if currently unused.

--------------------------------------------------------------------------------
6b41ac5c7a | Adam Borowski | 2010-10-10 01:37:40 +0200

Ashenzari: use passive voice for the curse absorption message.
Active suggested it's a voluntary action.

--------------------------------------------------------------------------------
5db0433d75 | David Lawrence Ramsey | 2010-10-09 18:35:31 -0500

Shorten Ash's scroll-curse ability description to fit in 80x24.

--------------------------------------------------------------------------------
4fc47b3c30 | David Lawrence Ramsey | 2010-10-09 18:27:01 -0500

Simplify the displaying of certain god abilities.

--------------------------------------------------------------------------------
3a9f930a6a | David Lawrence Ramsey | 2010-10-09 18:27:01 -0500

Add formatting fix.

--------------------------------------------------------------------------------
aab7deb984 | Adam Borowski | 2010-10-10 01:24:06 +0200

Ashenzari: no mummy/deck/miscast/Chei curses.

--------------------------------------------------------------------------------
7632d0aba2 | Adam Borowski | 2010-10-10 01:02:12 +0200

Ashenzari: passive detection of items.

--------------------------------------------------------------------------------
7187bfc6f6 | David Lawrence Ramsey | 2010-10-09 17:58:39 -0500

Move apostrophization functions from kills.cc/h to libutil.cc/h.

--------------------------------------------------------------------------------
26106d48b4 | David Lawrence Ramsey | 2010-10-09 17:58:38 -0500

Make apostrophise_fixup() prototype match the actual function.

--------------------------------------------------------------------------------
89e52a0b01 | Adam Borowski | 2010-10-10 00:29:36 +0200

Ashenzari: passive detection of traps and secret doors.
It effectively bumps the skill by piety/15, but only for purposes of detection.

--------------------------------------------------------------------------------
bb70fffd57 | Adam Borowski | 2010-10-10 00:07:05 +0200

Ashenzari: passive detection of monsters.

--------------------------------------------------------------------------------
04bf36cc82 | Adam Borowski | 2010-10-09 23:54:01 +0200

Fix rods not iding their cursedness outside of wizmode.

--------------------------------------------------------------------------------
885e401fec | Adam Borowski | 2010-10-09 23:43:38 +0200

Don't claim &G "banishes" monsters.

--------------------------------------------------------------------------------
6f0750b3c4 | Adam Borowski | 2010-10-09 23:21:26 +0200

Allow staves and rods to become cursed.
Sadly, there are so many places that assume only OBJ_WEAPONS may be cursed,
that I'm certain I missed some.

Also, a fully ided staff shows as "an uncursed staff of power".  How can
we reduce that?

--------------------------------------------------------------------------------
da7a69eb2a | Adam Borowski | 2010-10-09 23:08:31 +0200

Allow Stick-To-Snakes on staves.  Definitely sticks.

--------------------------------------------------------------------------------
a6c1699da6 | Adam Borowski | 2010-10-09 22:32:16 +0200

Remove the code for a long-gone amnesia effect.

--------------------------------------------------------------------------------
278de29bf4 | Adam Borowski | 2010-10-09 22:16:22 +0200

A whitespace fix.

--------------------------------------------------------------------------------
7603d29c9c | Adam Borowski | 2010-10-09 22:08:41 +0200

Ashenzari: scroll prayer Remove Curse -> Curse Foo.

--------------------------------------------------------------------------------
c5bf44840e | David Lawrence Ramsey | 2010-10-09 13:30:24 -0500

Add wording fix.

--------------------------------------------------------------------------------
89d7ddfbca | David Lawrence Ramsey | 2010-10-09 12:27:42 -0500

Tweak the manual's elven armour description to match the wiki.

--------------------------------------------------------------------------------
9b607be56a | David Lawrence Ramsey | 2010-10-09 12:13:31 -0500

Use static_cast in one place, to match use elsewhere.

--------------------------------------------------------------------------------
a97b8934fa | David Lawrence Ramsey | 2010-10-09 12:08:33 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
ee8e1013d5 | David Lawrence Ramsey | 2010-10-09 12:07:34 -0500

Simplify hardcoded poison resistance for undead.
Also, add comments clarifying why it's done the way it is (mainly for
make_fake_undead()).

--------------------------------------------------------------------------------
bf554ec12c | David Lawrence Ramsey | 2010-10-09 11:54:53 -0500

Check for monster_info's non-displaying of wounds a bit earlier.

--------------------------------------------------------------------------------
062d432bf9 | David Lawrence Ramsey | 2010-10-09 11:52:43 -0500

Make kraken tentacles/connectors inherit the head's intelligence.
This is mainly for kraken zombies, so that their tentacles (which
normally get I_ANIMAL) don't end up more intelligent than their heads
(which, as zombies, get I_PLANT).

--------------------------------------------------------------------------------
2192eeb00a | David Lawrence Ramsey | 2010-10-09 10:43:26 -0500

Add proper message for felids' Injury Mirror (cf. their altar message).

--------------------------------------------------------------------------------
009bf77f19 | David Lawrence Ramsey | 2010-10-09 10:42:35 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
eb793b3761 | David Lawrence Ramsey | 2010-10-09 10:35:55 -0500

Remove manual references to racial ammunition, as there is none anymore.

--------------------------------------------------------------------------------
94fb987072 | David Lawrence Ramsey | 2010-10-09 10:34:08 -0500

Add capitalization fix.

--------------------------------------------------------------------------------
b18d67b7a4 | David Lawrence Ramsey | 2010-10-09 10:33:53 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
3ab823db3b | David Lawrence Ramsey | 2010-10-09 10:32:43 -0500

Add spacing fix.

--------------------------------------------------------------------------------
2fc5746a17 | David Lawrence Ramsey | 2010-10-09 10:32:23 -0500

Add wording fixes.

--------------------------------------------------------------------------------
0f52a983a1 | Jude Brown | 2010-10-09 23:22:56 +1000

Malign Gateway tentacles chaotic, friendliness tied to spell power.

--------------------------------------------------------------------------------
0684742922 | Jude Brown | 2010-10-09 21:41:04 +1000

Implement fancier location choosing for Malign Gateway.
It will try several times along each compass point until it finds a
square surrounded by passable terrain. Hooray!

--------------------------------------------------------------------------------
b4008dd55f | Jude Brown | 2010-10-09 20:20:10 +1000

Don't let portals open right next to the player.
Move messages around slightly, don't show failure messages for
non-player casters, but abort when not able to find a suitable place for
the portal.

There will always be a gap of at least two tiles, and it should
(hopefully) weight towards the more open spaces. It requires a
completely empty surrounding (ie, nine floor tiles). This may change.

--------------------------------------------------------------------------------
230022b17c | Adam Borowski | 2010-10-09 12:15:40 +0200

Use the filename tiles expect.

--------------------------------------------------------------------------------
2564a95c99 | Adam Borowski | 2010-10-09 12:12:22 +0200

Felids: steal a few tiles from NetHack.
They fit pretty badly, but are still better than human ones.

--------------------------------------------------------------------------------
f9dba2a132 | Adam Borowski | 2010-10-09 11:36:51 +0200

Scrolls of Curse Jewellery. Such an useful thing!

--------------------------------------------------------------------------------
1d358ce831 | Adam Borowski | 2010-10-09 11:36:23 +0200

Abuse dpeg's temporary lapse of sanity for a little merge.
Miaow!

--------------------------------------------------------------------------------
fc8716ae68 | Adam Borowski | 2010-10-09 11:35:56 +0200

Ashenzari: clarity at *****.

--------------------------------------------------------------------------------
93834f4337 | Jude Brown | 2010-10-09 19:27:34 +1000

Malign Gateway has a chance of draining int.

--------------------------------------------------------------------------------
1e4cba53f9 | Jude Brown | 2010-10-09 19:10:54 +1000

Don't say tentacles can't move; use "called" for eldritch tentacles.

--------------------------------------------------------------------------------
4802278d53 | Jude Brown | 2010-10-09 18:43:04 +1000

Rename demonic tentacle to eldritch tentacle.

--------------------------------------------------------------------------------
7b62bd514d | Jude Brown | 2010-10-09 18:34:27 +1000

Fix marshalling with minor versions (Kilobyte).

--------------------------------------------------------------------------------
ceddfb7566 | Jude Brown | 2010-10-09 18:04:18 +1000

Give monsters the same limitations for Malign Gateway.

--------------------------------------------------------------------------------
37ff07540b | Jude Brown | 2010-10-09 17:49:41 +1000

Make Malign Gateway a one-at-a-time spell.
This prevents multiple gateways from being opened by the player and
therefore multiple tentacles wreaking havoc upon one's enemies; the
current code means that, for example, if a monster opens a malign
gateway you won't be able to open one in retaliation.

Bumps minor version, hopefully in a safe manner.

--------------------------------------------------------------------------------
6db63e53ac | David Ploog | 2010-10-09 01:34:32 +0200

Don't list Pan, Abyss, Hell ranges in Ctrl-O anymore.
These are of much less interest compared to all other branches: they're
less often used (and almost exclusively by more experienced players who
know the portals will come up) and there are many portals, in contrast
with the unique branch stairs.

--------------------------------------------------------------------------------
8b073fa010 | David Ploog | 2010-10-09 00:56:47 +0200

Realign god columns in Ctrl-O screen.
Now the columns are separated by five whitespaces, instead of the
fixed column sizes we had before. In particular, this part has to
be changed almost every time we add a god.

--------------------------------------------------------------------------------
61533f3cda | Raphael Langella | 2010-10-08 23:29:24 +0200

Perform actions on item from the inventory
Mantis 2156

--------------------------------------------------------------------------------
43cd9ead5e | Raphael Langella | 2010-10-08 23:19:13 +0200

whitespace fix

--------------------------------------------------------------------------------
177016a0ea | David Lawrence Ramsey | 2010-10-08 13:37:19 -0500

Fix compilation.

--------------------------------------------------------------------------------
99ac18ac6d | David Lawrence Ramsey | 2010-10-08 13:34:44 -0500

Add more sanity checks for _get_kraken_head().

--------------------------------------------------------------------------------
ab7fbdc067 | David Lawrence Ramsey | 2010-10-08 13:22:45 -0500

Move the routine to get kraken heads into its own function.

--------------------------------------------------------------------------------
8dd9f85910 | David Lawrence Ramsey | 2010-10-08 12:42:19 -0500

Move "no wounds" monster description checks into their own function.
Also, expand it to work on individual monsters, so that wounds messages
are not displayed for kraken zombie tentacles or connectors.

--------------------------------------------------------------------------------
e37fa5abd2 | David Lawrence Ramsey | 2010-10-08 12:20:49 -0500

Move monster_info::intel() from mon-info.h to mon-info.cc.

--------------------------------------------------------------------------------
95869d05bb | David Lawrence Ramsey | 2010-10-08 11:07:25 -0500

Add spacing fix.

--------------------------------------------------------------------------------
47e53aed81 | David Lawrence Ramsey | 2010-10-08 10:59:24 -0500

Handle demonic tentacle segments' number properly in monster_info.

--------------------------------------------------------------------------------
d123c9f2f0 | David Lawrence Ramsey | 2010-10-08 10:56:39 -0500

Typo fix.

--------------------------------------------------------------------------------
fce1592a10 | David Lawrence Ramsey | 2010-10-08 10:54:15 -0500

Handle kraken connectors' number properly in monster_info.

--------------------------------------------------------------------------------
ab368f9f62 | Adam Borowski | 2010-10-08 15:44:06 +0200

Felids: limit Ashenzari bondage to kitty jewels (eew!)

--------------------------------------------------------------------------------
36f2cc5578 | Adam Borowski | 2010-10-08 15:37:59 +0200

Merge branch 'master' into cats

--------------------------------------------------------------------------------
7d19ae4432 | Adam Borowski | 2010-10-08 15:28:48 +0200

Ashenzari: give constant exploration piety per level.

--------------------------------------------------------------------------------
f5869708d5 | David Lawrence Ramsey | 2010-10-08 08:17:09 -0500

Add missing final comma.

--------------------------------------------------------------------------------
a0e8b5c0de | David Lawrence Ramsey | 2010-10-08 08:17:09 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
8568daa67b | Jude Brown | 2010-10-08 22:07:48 +1000

Flavour, functionality, tentacle buff for Malign Gateway.
Current suppression of casting Malign Gateway more than once is flawed,
well be rectified shortly.

--------------------------------------------------------------------------------
c12db7c656 | Adam Borowski | 2010-10-08 12:15:15 +0200

Ashenzari piety mod for bondage: 1,2,5,6 -> 1,2,4,6

--------------------------------------------------------------------------------
5604d8ef61 | Adam Borowski | 2010-10-08 12:14:05 +0200

Correct a bug in the word "bug".

--------------------------------------------------------------------------------
ae39d9f2dd | Jude Brown | 2010-10-08 17:15:07 +1000

Severed tentacles become hostile regardless.

--------------------------------------------------------------------------------
8cbe5b1cbd | Jude Brown | 2010-10-08 17:02:22 +1000

Fix missing rename for Snakebite.

--------------------------------------------------------------------------------
84b8798b14 | Jude Brown | 2010-10-08 16:35:16 +1000

Properly fix Malign Gateway monster interaction.
No monsters will currently attempt to enter the portal.

Stupid monsters should be blinked away, while intelligent monsters are
clever enough not to attempt it.

--------------------------------------------------------------------------------
ae4459180a | Jude Brown | 2010-10-08 15:46:22 +1000

Re-hack Malign Gateway slightly.
Now:
	* Prompts before entering, no longer tries to enter while
	  attacking (or not attacking).
	* Has a cool description!
	* Has a relatively cool tile!
	* No longer causes a beam.cc assert with feat_is_solid.

May have issues with monsters, lookin at that now.

--------------------------------------------------------------------------------
66a9cddde2 | David Lawrence Ramsey | 2010-10-07 22:31:02 -0500

Only hardcode 1 level of rPois for undead if they don't have it already.
This prevents fake undead created from monsters that have 1 level of
poison resistance from getting a second one.

--------------------------------------------------------------------------------
df632d0a99 | David Lawrence Ramsey | 2010-10-07 21:42:03 -0500

Properly handle hardcoded undead poison resistance in monster_info.

--------------------------------------------------------------------------------
80f566ff5f | David Lawrence Ramsey | 2010-10-07 21:22:27 -0500

Update undead/demonic holiness comments in mon-data.h.

--------------------------------------------------------------------------------
746253693e | David Lawrence Ramsey | 2010-10-07 21:17:21 -0500

Revert the previous fix for Mantis 2690, as it's been improved.

--------------------------------------------------------------------------------
a249f7a07d | David Lawrence Ramsey | 2010-10-07 21:14:15 -0500

Since all undead have 1 level of poison resistance, add it by default.
This means that mon-data.h entries no longer need to specify it, and
ensures that fake undead (undead abominations, kraken zombies, etc.) are
properly described as poison resistant.

--------------------------------------------------------------------------------
cb2107efea | David Lawrence Ramsey | 2010-10-07 21:05:25 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
5c2d615da7 | David Lawrence Ramsey | 2010-10-07 20:57:32 -0500

Reorganize monster_info resist checks a bit.

--------------------------------------------------------------------------------
26d2701aea | David Lawrence Ramsey | 2010-10-07 20:54:01 -0500

Fix Mantis 2690: Make fake undead (e.g. kraken zombies) resist poison.

--------------------------------------------------------------------------------
f967581939 | David Lawrence Ramsey | 2010-10-07 20:35:18 -0500

Fix punctuation.

--------------------------------------------------------------------------------
f29282c128 | David Lawrence Ramsey | 2010-10-07 20:23:40 -0500

Remove now-inaccurate comments.

--------------------------------------------------------------------------------
7ee6e4c648 | Adam Borowski | 2010-10-08 02:37:52 +0200

Fix a missing name for altar_ashenzari.

--------------------------------------------------------------------------------
309bc9d938 | Adam Borowski | 2010-10-08 02:29:55 +0200

Ashenzari: sInv at ***.

--------------------------------------------------------------------------------
aff4b64883 | Adam Borowski | 2010-10-08 02:29:55 +0200

Remove a message inappropriate for mummies.
Since it was ill fitting within the rest, I didn't bother conditionalizing it.

--------------------------------------------------------------------------------
2e149f75be | David Lawrence Ramsey | 2010-10-07 19:17:46 -0500

Fix compilation.

--------------------------------------------------------------------------------
7bc72557a6 | David Lawrence Ramsey | 2010-10-07 19:15:06 -0500

Add sacrifice messages for gods missing them (Fedhas, Chei, Ash).
Currently, none of these gods have sacrifices, but if they get any, or
gods are added after them who have sacrifices, these messages will be
necessary.  Note that they're just placeholders for the time being.

--------------------------------------------------------------------------------
5cbc344872 | David Lawrence Ramsey | 2010-10-07 19:15:06 -0500

Add spelling fixes.

--------------------------------------------------------------------------------
61be93e977 | Adam Borowski | 2010-10-08 02:04:56 +0200

Wensley's SHT messages.  Sanity is for the weak!

--------------------------------------------------------------------------------
08eca60e54 | David Lawrence Ramsey | 2010-10-07 18:34:28 -0500

Mark Antaeus as not having a corpse.
He's not the usual kind of titan, being demonically corrupted, and since
he has no blood, having the contaminated corpse type has no effect.

--------------------------------------------------------------------------------
dd06b8a995 | Adam Borowski | 2010-10-08 01:19:15 +0200

Add an assertion for missing kraken connectivity data.
It doesn't fix the bug, merely makes it slightly easier to debug by crashing
consistently instead of doing a fandango on core.

--------------------------------------------------------------------------------
9d662fcf2d | Adam Borowski | 2010-10-08 00:31:16 +0200

Ashenzari: give a piety boost for picking up runes (dpeg)

--------------------------------------------------------------------------------
1c07d7580e | Adam Borowski | 2010-10-08 00:31:16 +0200

Ashenzari: announce when bondage level changes.

--------------------------------------------------------------------------------
f3c407f1a0 | Adam Borowski | 2010-10-08 00:31:16 +0200

Move a pair of non-saved fields to that section of player.h

--------------------------------------------------------------------------------
b2e012cfc3 | Adam Borowski | 2010-10-08 00:31:16 +0200

Ashenzari: give piety for exploration.
This does not yet implement the improvements dpeg suggested, like not giving
anything for digging, or varying the piety with level's density so each
level gives the same amount of piety no matter if it's open (bigger area ->
currently better) or a maze.

--------------------------------------------------------------------------------
70a7cff46c | Raphael Langella | 2010-10-07 21:23:44 +0200

Restore casting noise for monsters

--------------------------------------------------------------------------------
6468cf3585 | David Lawrence Ramsey | 2010-10-07 10:14:50 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
4983fdc944 | David Lawrence Ramsey | 2010-10-07 10:13:10 -0500

Rename the holy scourge to the sacred scourge.

--------------------------------------------------------------------------------
f2b2a6fe97 | David Lawrence Ramsey | 2010-10-07 09:44:49 -0500

Rename "Serpent-Scourge" to "Snakebite".

--------------------------------------------------------------------------------
5a33281191 | David Lawrence Ramsey | 2010-10-07 09:02:22 -0500

Fix typo.

--------------------------------------------------------------------------------
eb6eb9d20d | Adam Borowski | 2010-10-07 15:11:59 +0200

Make Scrying not use invocations.

--------------------------------------------------------------------------------
ca203269a0 | Adam Borowski | 2010-10-07 15:11:58 +0200

Ashenzari's scrying.
Smite-targetted spells shouldn't probably work through walls, they are not
blocked yet, though.

I dread the thousands places that assume vision to be reciprocal...

--------------------------------------------------------------------------------
00824734f6 | Jude Brown | 2010-10-07 22:39:52 +1000

Improve Malign Gateway.
Done:
	* Portal now appears without tentacles, and generates clouds of
	  translocational energy before the tentacle appears.
	* Portal is no longer a traversible square. This is somewhat
	  hackish but it works. Currently, the only monsters that will
	  enter it will be the actual tentacles themselves; if the
	  player attempts to enter, they will be harmed and blinked away
	  (there should be a prompt before entering).

To-do:
	* Chance of the tentacle being hostile to start.
	* Portal only generates surrounded by open squares.
	* Tentacle eventually turns hostile.
	* Tentacle speed and name (moving from demonic towards
	  "alien"-esque).

I'd rather push what has been done now than have to merge any massive
future changes as before.

--------------------------------------------------------------------------------
0b25078c96 | Adam Borowski | 2010-10-07 13:53:52 +0200

Ashenzari: enums, altar and descriptions.

--------------------------------------------------------------------------------
cf6d6a5160 | Adam Borowski | 2010-10-07 13:52:27 +0200

Track exploration as a god conduct.

--------------------------------------------------------------------------------
22b46237b9 | Raphael Langella | 2010-10-07 12:50:47 +0200

potions of brilliance can be useful in case of stat drain

--------------------------------------------------------------------------------
1b09c4d95b | Raphael Langella | 2010-10-07 12:39:42 +0200

fix dancing weapon resistance description
Dancing weapons have rP, rF:2, rC:2 and rElec:3.

--------------------------------------------------------------------------------
12b7ba421e | Raphael Langella | 2010-10-07 12:39:02 +0200

mark potions of brilliance and scrolls of amnesia as useless for Troglodytes
As suggested on the wiki

--------------------------------------------------------------------------------
517395a21e | Adam Borowski | 2010-10-07 11:27:30 +0200

Show map knowledge flags on 'x' in debug mode.

--------------------------------------------------------------------------------
d0c0a12b5e | Adam Borowski | 2010-10-07 11:27:29 +0200

Make tab expansion a bit smarter.
It will now properly handle tabs after spaces -- but not tabs after other
characters yet.

Also restore the width to standard 8 -- Galehar, it was accidentally changed
while you changed the newlines away from \r\n, right?  All terminals, git
and most editors default to 8, and in many cases you can't even change that,
tabs that are not 8 by default happen only in some Windows editor.
Or is there some need for a debate?

--------------------------------------------------------------------------------
59fab6d7b9 | David Lawrence Ramsey | 2010-10-06 18:39:23 -0500

Properly mark lava worms as not having skeletons.

--------------------------------------------------------------------------------
9816946d09 | David Lawrence Ramsey | 2010-10-06 18:21:56 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
8d9c235db9 | Adam Borowski | 2010-10-07 00:50:55 +0200

Teach CIA about Galehar's name.

--------------------------------------------------------------------------------
3c563cf708 | Adam Borowski | 2010-10-07 00:35:27 +0200

Remove an obsolete comment.

--------------------------------------------------------------------------------
30be6f76d8 | Adam Borowski | 2010-10-07 00:35:26 +0200

Fix a memory leak on failed writes.
Actually, I can't think of a case where such error won't be fatal, but then,
it leaves Crawl in a consistent state so we might in theory merely return to
menu (restart_after_game).

I'm fixing it mostly in case someone reuses the transactional packager for
some purpose other than Crawl.

--------------------------------------------------------------------------------
2d20a979dd | Adam Borowski | 2010-10-07 00:35:26 +0200

Don't leak file descriptors when trying to open a save file fails.
The save browser is likely to open many, especially if you have a lot
of old saves after a compat break.  Actually running out of descriptors
would require a bizarre case, but a bug is a bug...

--------------------------------------------------------------------------------
4ef016b9b4 | Adam Borowski | 2010-10-07 00:35:26 +0200

Move unlinking save files to the save code itself.
This fixes --edit-save foo repack on Windows, and is safer in case the
player's name ever changes (might be possible if we add that "read morgue"
functionality).

--------------------------------------------------------------------------------
26fd388bba | Raphael Langella | 2010-10-07 00:08:18 +0200

add mention of the checkwhite script in patch_guide.txt

--------------------------------------------------------------------------------
c1c29b118b | Raphael Langella | 2010-10-06 23:46:59 +0200

futur-proof the merfolk tail code
In case of more swimming forms

--------------------------------------------------------------------------------
39da56d7ad | Raphael Langella | 2010-10-06 23:30:50 +0200

Sif Muna's destroy spellbook conduct
Destroying a spellbook by forgetting a spell from it or tossing it in lava cost 
piety and penance.
The cost is based on the highest spell level from the book: maxlevel + 5
For books gifted by Sif or featuring his name, the penance is doubled.
The conduct description is only "destroy spellbooks". I don't know how to 
explain the gift and name higher cost without making a huge line

--------------------------------------------------------------------------------
97a5ac3bfc | Raphael Langella | 2010-10-06 23:25:50 +0200

change the mephitic cloud message
mephitic is an explosion and makes as much noise as a fireball. (Mantis 2616)
change "The beam expands into a vile cloud!" into "The beam explodes..."
change "You hear a gentle \'poof\'." by "You hear a loud \'bang\'!"
Add an exclamation mark to all the explosion messages that were missing it.

--------------------------------------------------------------------------------
c66ae66ffb | Raphael Langella | 2010-10-06 23:21:57 +0200

swimming actors noise when falling in water
Add a "Floosh!" message and a noise of 4 when a swimming player or monster 
falls in water (compared to "Splash!" noise of 8 for non-swimming)

--------------------------------------------------------------------------------
db5ae13407 | Raphael Langella | 2010-10-06 23:20:15 +0200

remove spell noise from the advanced spell view (II screen)
It was added by mistake anyway

--------------------------------------------------------------------------------
9da5aed097 | Raphael Langella | 2010-10-06 22:59:56 +0200

remove the windows stuff from checkwite
It's not needed if you follow instructions in config.txt and set

git config core.autocrlf false

and it works better. Also fixed the tab replacement.

--------------------------------------------------------------------------------
5128ec7f7c | Adam Borowski | 2010-10-06 21:57:48 +0200

Remove a redundant special casing for player in holy flames.
The message is identical (save for '!' -> '.').

--------------------------------------------------------------------------------
d3c09381a9 | Adam Borowski | 2010-10-06 21:54:38 +0200

Give a better message for holies moving through holy flames.

--------------------------------------------------------------------------------
a9c3a316d2 | David Lawrence Ramsey | 2010-10-06 12:11:17 -0500

Simplify the holy being summoning message, since more are available.

--------------------------------------------------------------------------------
c9c954e4b0 | Eino Keskitalo | 2010-10-06 18:09:51 +0300

Update the homepage portion of the release guide.
I'm not sure if the branching, tagging etc portions are up to date.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ee35d506d8 | Eino Keskitalo | 2010-10-06 18:09:28 +0300

Slightly update the patching guide (mention Implementables).
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
249babfb22 | Eino Keskitalo | 2010-10-06 18:08:52 +0300

Update the process description.
I think it's reasonably accurate now.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
dfe7c8a3c2 | Eino Keskitalo | 2010-10-06 17:16:06 +0300

Quick horizontal flip of the alligator snapping turtle tile, to make it more 
obviously different from regular snapping turtles.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e2449f1244 | Eino Keskitalo | 2010-10-06 17:03:54 +0300

Death drakes had rarity but no level specified for Zot - remove it.
They may have been meant to appear in Zot (through normal generation), but a 
quick poll on ##crawl-dev decided they aren't desired.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
8d1b9685ea | Eino Keskitalo | 2010-10-06 17:03:17 +0300

Ghost moths in Zot.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
90295b8d55 | Eino Keskitalo | 2010-10-06 16:07:09 +0300

Revert "Doors and warnings before facing ghost moths."
This reverts commit 5937bdb59f3d1c37f3ebfdddfefdc3179ca6e033.

Ghost moths aren't quite as overkill now. Not that the doors & warnings were 
all that good a (temporary) solution anyway.

--------------------------------------------------------------------------------
1e6a708892 | Eino Keskitalo | 2010-10-06 16:07:09 +0300

Ghost moth no longer hits like a bulldozer.
Attacks: 2*stat drain damage 8 (was 24), 1*stat drain poison damage 12 (was 
strong poison). Also reduce HD to 10 from 13 and AC to 10 from 16. Experience 
modifier 30->15.

Heavy armour characters of suitable level should now be able to handle them ok, 
while casters in light armour should still be in trouble. Seems ok from quick 
wizmode testing.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a7bc0a1a16 | Adam Borowski | 2010-10-06 13:31:56 +0200

Fix reversed logic for lich form check at altars.

--------------------------------------------------------------------------------
989c6df5c2 | Eino Keskitalo | 2010-10-06 12:08:26 +0300

Fix the search-and-replace -mangled description for the Summon Scorpions spell.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
aba51f72e7 | Eino Keskitalo | 2010-10-06 12:06:37 +0300

Add coolio's new emperor scorpion tile. (#2607)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
09101fa52d | Eino Keskitalo | 2010-10-06 10:49:59 +0300

Give emperor scorpions only medium poison.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
5e80dcb904 | Eino Keskitalo | 2010-10-06 10:49:59 +0300

Rename giant scorpion to emperor scorpion. (OG17)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
58c376177c | David Lawrence Ramsey | 2010-10-05 13:29:18 -0500

Properly treat Zin's Cure All Mutations ability as an invocation.

--------------------------------------------------------------------------------
ad2d442182 | David Lawrence Ramsey | 2010-10-05 13:28:14 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
b0b0958890 | David Lawrence Ramsey | 2010-10-05 13:03:41 -0500

Simplify more.

--------------------------------------------------------------------------------
d1e2a8b546 | David Lawrence Ramsey | 2010-10-05 13:02:28 -0500

Let invocations with a failure rate of zero go up to perfect.

--------------------------------------------------------------------------------
9056ad0e4c | David Lawrence Ramsey | 2010-10-05 12:59:12 -0500

Simplify.

--------------------------------------------------------------------------------
ee72a1a5ca | David Lawrence Ramsey | 2010-10-05 12:21:18 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
d91d1d2e50 | David Lawrence Ramsey | 2010-10-05 12:19:53 -0500

Remove obvious comment.

--------------------------------------------------------------------------------
63d9711add | David Lawrence Ramsey | 2010-10-05 12:14:59 -0500

Add a stopgap attempt at handling ability slots with multiple abilities.
Currently, it displays "Various" for the cost of such entries, to avoid
inaccurate displays of only the first ability's cost.  The actual
descriptions are still displayed on the "a" screen, in any case.

In the long term, there should be a better way to do this.

--------------------------------------------------------------------------------
f5dc05449d | David Lawrence Ramsey | 2010-10-05 12:11:37 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
f9dc2904fa | David Lawrence Ramsey | 2010-10-05 12:04:23 -0500

Tweak the short description of Yred's Injury Mirror again.
It still fits in 80x24 this way, as a similarly long Nemelex ability
description does.

--------------------------------------------------------------------------------
486abe2ce1 | David Lawrence Ramsey | 2010-10-05 11:09:24 -0500

Comment fix.

--------------------------------------------------------------------------------
ee62edaeb7 | Raphael Langella | 2010-10-05 15:24:37 +0200

Allow merfolk/kenku to blink over deep water/lava
This fix mantis 1522

--------------------------------------------------------------------------------
07a19813d6 | Adam Borowski | 2010-10-05 15:24:37 +0200

Require new contributions to be dual licensed.

--------------------------------------------------------------------------------
ce241da55d | David Lawrence Ramsey | 2010-10-05 01:10:20 -0500

Let Yred's Injury Mirror be available at piety breakpoint 1 again.
Reaching this piety breakpoint will make both Recall Undead Slaves and
Injury Mirror available.  Displayed messages have been adjusted to
reflect this, and shortened to fit easily in an 80x24 screen.  The slot
for piety breakpoint 2 is now officially open again, except for the
Animate Dead upgrade, as before.

The routine for allowing two abilities in one piety breakpoint is
modeled after Elyvilon's similar routines for Heal Self/Heal Other
invocations at certain piety breakpoints.

--------------------------------------------------------------------------------
34baf13664 | David Lawrence Ramsey | 2010-10-05 01:05:09 -0500

Remove now-unused parameter from yred_injury_mirror().

--------------------------------------------------------------------------------
f4f906c80f | David Lawrence Ramsey | 2010-10-05 01:00:44 -0500

Don't allow using Yred's Injury Mirror when it's already active.

--------------------------------------------------------------------------------
75aef1b2c9 | David Lawrence Ramsey | 2010-10-05 00:58:57 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
ec04adf3ab | David Lawrence Ramsey | 2010-10-05 00:32:24 -0500

Fix message inconsistency.

--------------------------------------------------------------------------------
41bf579fc7 | David Lawrence Ramsey | 2010-10-05 00:31:57 -0500

Move the string replacement convenience functions up.

--------------------------------------------------------------------------------
d6637cfeaf | David Lawrence Ramsey | 2010-10-05 00:28:28 -0500

Fix Yred's corresponding ability downgrade message.

--------------------------------------------------------------------------------
5d4e37c59f | David Lawrence Ramsey | 2010-10-05 00:18:32 -0500

Add sanity checks to yred_can_animate_dead().

--------------------------------------------------------------------------------
90461a1d4c | David Lawrence Ramsey | 2010-10-04 23:56:31 -0500

Allow more fine-grained control of ability upgrades.
Instead of being single lines starting with '#', the ability upgrade
text is now surrounded with '[' and ']'.  Reuse some of the text
replacement routines used for the sacrifice messages for this.

Both Yred's Animate Dead and his Injury Mirror are now properly
described using this.

--------------------------------------------------------------------------------
0f3d8c5789 | David Lawrence Ramsey | 2010-10-04 19:29:32 -0500

Fix piety breakpoint check for Yred's Injury Mirror.

--------------------------------------------------------------------------------
2068278473 | Adam Borowski | 2010-10-04 22:17:37 +0200

Fix loading of saves (uh oh!)

--------------------------------------------------------------------------------
d02256b2ad | Adam Borowski | 2010-10-04 21:47:35 +0200

Remove +AC/+EV from randarts.  Fixedarts still keep them.

--------------------------------------------------------------------------------
cceb27ce1f | Adam Borowski | 2010-10-04 21:06:54 +0200

Use a minor version tag for storing you.fishtail

--------------------------------------------------------------------------------
9ad9d9ef6e | Raphael Langella | 2010-10-04 20:49:08 +0200

Merfolk tail and transforms overhaul
changes and bugfixes:
* Make the merfolk tail compatible with blade hands.
* Entering water doesn't cancel transformations. (Mantis 2110)
* Trying to enter deep water with a non-swimming form as a merfolk prints: "You 
cannot swim in your current form.". You have to manually cancel the 
transformation.
* Merfolk can cast all transformations in shallow water and blade hands and ice 
form in deep water. (Mantis 2384)
* Prevent turning into non-flying form (and being porkalated to death) when in 
a flying form above lava/deep water.
* Fix some messages (Mantis 1784, 2312, 2667).
* Fix some special cases where the merfolk doesn't untransform (Mantis 1104).
* When you change from one flying form to another over deep water, you no 
longer drown (extremly rare).
* Add new functions so that it should be much easier to add new swimming and 
flying forms.

bug not fixed:
* If you fly/levitate out of water, the player doll isn't updated properly and 
keeps its tail. I have no idea how to fix this, but if someone does, it now 
should be much easier to fix.

internals:
* A new boolean has been added to the player struct to track the status of the 
fishtail. Currently, it isn't saved (to preserve save compatibility), but as 
the status is checked after each step, this shouldn't be a problem. I put 
preprocessor directives so that it will be saved when the TAG_MAJOR_VERSION 
changes.
* Add 2 functions transform_can_fly and transform_can_swim and use them 
wherever possible.
transformation_can_wield has been renamed to transform_can_wield for 
consistency with all the other transform functions.
* replaced (you.species == SP_MERFOLK && you.swimming()) (and similar 
conditionals) by you.fishtail wherever possible.

--------------------------------------------------------------------------------
9856fdbfc5 | Adam Borowski | 2010-10-04 20:39:25 +0200

Replace Yred's prayer with an ability.
Problems:
- it's currently at *** piety rather than * where it was as our ability code
  doesn't allow two abilities at the same piety level without major hacks
- there's no description (clash with an Animate Dead upgrade)

--------------------------------------------------------------------------------
a05baaa6d9 | David Lawrence Ramsey | 2010-10-04 11:50:39 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
9923ac143d | David Lawrence Ramsey | 2010-10-04 11:39:44 -0500

Revert Xom's potion of restore abilities effect entirely.
Stat drain is apparently the only way to keep mummies from scumming him.

--------------------------------------------------------------------------------
657eb0ae43 | David Lawrence Ramsey | 2010-10-04 11:02:55 -0500

Make Xom's !restore abilities effect as rare as his !experience effect.
Since he only drains one stat at a time, and this restores all stats at
once, it shouldn't be that common.

--------------------------------------------------------------------------------
ea84489a47 | David Lawrence Ramsey | 2010-10-04 10:44:52 -0500

Allow Zin to protect from Hell effects, dependent on piety.
If you're in a sanctuary, the chance of protection is 100%, as before.

--------------------------------------------------------------------------------
a2b319a53f | David Lawrence Ramsey | 2010-10-04 09:45:46 -0500

Add potions of restore abilities to Xom's granted potion effects.
If he can randomly drain your stats, he can also randomly restore them.

--------------------------------------------------------------------------------
07a14424c1 | David Lawrence Ramsey | 2010-10-04 09:31:46 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
1c9b63fc94 | David Lawrence Ramsey | 2010-10-04 06:47:20 -0500

Change the example for "god:" and "god_gift" to use a TSOite orc.
Using TSO more clearly shows the underscores-to-spaces parsing rule.

--------------------------------------------------------------------------------
51a2a26211 | David Lawrence Ramsey | 2010-10-04 06:47:20 -0500

Specify zin_angel's god in lowercase, as parsing is case-insensitive.

--------------------------------------------------------------------------------
925a6898b2 | David Lawrence Ramsey | 2010-10-04 06:47:20 -0500

Fix monster god setting in vaults for gods with spaces in their names.
Borrow here from the other two places in mapdef.cc that specify gods and
accept underscores as replacement spaces.

--------------------------------------------------------------------------------
155ff77319 | Adam Borowski | 2010-10-04 13:02:46 +0200

Get rid of some more insidious longs.
Especially constructs like: long foo = x.props[].get_int()
can get you by surprise on 32 bit arches -- even worse now that most
devs are on amd64.

Item flags I typedeffed as iflags_t, as it's likely we'll have to extend
it soon, yet defining it as uint64_t now would be misleading since there
are so many places it's used in a 32 bit manner.

--------------------------------------------------------------------------------
185dc20a7e | Adam Borowski | 2010-10-04 11:46:25 +0200

Specify the type of mapmask as uint32_t.
Again, this is a code readability change only, as it's a bitfield.

--------------------------------------------------------------------------------
319516fa3f | Adam Borowski | 2010-10-04 10:39:23 +0200

Explicitely specify the type for genflags.
Bitfields need to have their width documented, even if all architectures
we support define "unsigned" as same as uint32_t.

--------------------------------------------------------------------------------
d65e37d0cf | David Lawrence Ramsey | 2010-10-04 01:02:02 -0500

Fix inconsistencies regarding genus vs. species for orcs and draconians.
They both consistently check for the genus now, as the species check
does, since the two are currently equivalent.  If there are any
subspecies added, they should be covered by this.

--------------------------------------------------------------------------------
b826f73ffd | David Lawrence Ramsey | 2010-10-04 00:59:19 -0500

Simplify.

--------------------------------------------------------------------------------
12d444bf77 | David Lawrence Ramsey | 2010-10-04 00:23:27 -0500

Update the documentation to account for dwarven items.

--------------------------------------------------------------------------------
7122411d4a | David Lawrence Ramsey | 2010-10-04 00:21:39 -0500

Update _dgn_give_mon_spec_items() to account for dwarves.
Currently, they have the sane equipment restrictions that elves do.

--------------------------------------------------------------------------------
4d3b7f8828 | David Lawrence Ramsey | 2010-10-03 23:37:03 -0500

Clarify the documentation a bit more regarding "god_gift".

--------------------------------------------------------------------------------
c1133f2db7 | David Lawrence Ramsey | 2010-10-03 23:26:58 -0500

Document the "god:" and "god_gift" tags.  I hope it's clear enough.

--------------------------------------------------------------------------------
2990084807 | David Lawrence Ramsey | 2010-10-03 23:17:32 -0500

Properly reorder "god" and "god gift" vault parameters.

--------------------------------------------------------------------------------
d5ea347801 | David Lawrence Ramsey | 2010-10-03 23:14:26 -0500

Allow specifying whether a monster is a god gift in vaults.
Note that it can only be specified after the "god:" tag, and the monster
will not be marked as a god gift unless it's present.  This fixes the
problem with the Zin angel's being marked as a god gift when it
shouldn't be.

--------------------------------------------------------------------------------
6a46833bb3 | David Lawrence Ramsey | 2010-10-03 22:53:27 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
71a15ff25c | David Lawrence Ramsey | 2010-10-03 22:24:15 -0500

Remove now-unnecessary checks regarding mons_make_god_gift().
It no longer asserts, so e.g. the monster's god no longer needs to be
manually unset before calling it.

--------------------------------------------------------------------------------
6b8b890d80 | David Lawrence Ramsey | 2010-10-03 22:22:33 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
d5a081db80 | David Lawrence Ramsey | 2010-10-03 21:50:09 -0500

Add spacing fix.

--------------------------------------------------------------------------------
846508716d | David Lawrence Ramsey | 2010-10-03 21:17:37 -0500

Add a FIXME comment.
I can't think of an easy way right now to fix monsters with vault-set
gods erroneously getting the MF_GOD_GIFT flag.  At least with the
comment, the problem is documented.

--------------------------------------------------------------------------------
64faaf82f7 | David Lawrence Ramsey | 2010-10-03 21:13:04 -0500

Remove unnecessary include.

--------------------------------------------------------------------------------
e72736aebc | David Lawrence Ramsey | 2010-10-03 21:11:52 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
9c34d9f4a9 | David Lawrence Ramsey | 2010-10-03 21:10:43 -0500

Simplify.

--------------------------------------------------------------------------------
04c1524782 | David Lawrence Ramsey | 2010-10-03 20:47:26 -0500

Fix messaging for Fedhas' oklob-spawning retribution.
Check for success in placing any plants, and display the "plants grow
ominously around you" message upon success.

--------------------------------------------------------------------------------
543b7e8530 | David Lawrence Ramsey | 2010-10-03 20:23:46 -0500

Convert an instance of Fedhas' wrath to use mgen::hostile_at().

--------------------------------------------------------------------------------
ec1edb9dab | David Lawrence Ramsey | 2010-10-03 20:01:42 -0500

Mark giant spores created by Fedhas' invocations as Fedhas' gifts.

--------------------------------------------------------------------------------
8e86797cee | David Lawrence Ramsey | 2010-10-03 19:46:42 -0500

In the mgen_data class, rename the initializer variables for clarity.
Instead of monflags for 32-bit MG_ flags and mflags for 64-bit MF_
flags, which are rather confusable, they're now genflags and extflags.

--------------------------------------------------------------------------------
e82723e3ed | David Lawrence Ramsey | 2010-10-03 19:40:46 -0500

Fix *actual* type mismatch in mgen_data::mgen_data().
The flags parameter in mgen_data::mgen_data() is unsigned int, but the
monflags parameter that initializes it in the constructor was uint64_t.

--------------------------------------------------------------------------------
d62579eda4 | David Lawrence Ramsey | 2010-10-03 19:37:10 -0500

Revert "Fix type mismatch in mgen_data::hostile_at()."
This reverts commit 4f45919f3dedc18a2aed6a22d152ceac6d1f6b85.

There's actually no mismatch (oops); monflags holds MG_-type flags, so
it's only 32-bit.

--------------------------------------------------------------------------------
4f45919f3d | David Lawrence Ramsey | 2010-10-03 19:26:21 -0500

Fix type mismatch in mgen_data::hostile_at().
The monflags parameter in mgen_data::mgen_data() is uint64_t, but the
monflags parameter in mgen_data::hostile_at(), which it passed to
mgen_data::mgen_data(), was still unsigned int.

--------------------------------------------------------------------------------
f2acd80336 | David Lawrence Ramsey | 2010-10-03 18:40:13 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
9e39732c9c | David Lawrence Ramsey | 2010-10-03 18:13:27 -0500

Don't use the vault-specified god if it's GOD_NO_GOD.

--------------------------------------------------------------------------------
2f019e936c | David Lawrence Ramsey | 2010-10-03 18:13:15 -0500

Add spacing fix.

--------------------------------------------------------------------------------
e0de08d220 | David Lawrence Ramsey | 2010-10-03 17:58:21 -0500

Revert "Ensure monsters with vault-specified gods aren't marked as god gifts."
This reverts commit a5d003ef8a738edb68b5b485dba7717bf3b602cf.

The god needs to be set there for monsters with starting
non-vault-specified gods.

--------------------------------------------------------------------------------
a5d003ef8a | David Lawrence Ramsey | 2010-10-03 17:48:00 -0500

Ensure monsters with vault-specified gods aren't marked as god gifts.

--------------------------------------------------------------------------------
f58dc56d52 | David Lawrence Ramsey | 2010-10-03 16:58:00 -0500

Disallow vampire bat corpses and zombies, since they can never spawn.

--------------------------------------------------------------------------------
2ea8c00449 | David Lawrence Ramsey | 2010-10-03 16:39:41 -0500

In the zin_angel vault, properly set the angel's god to Zin.

--------------------------------------------------------------------------------
5f8c033e3d | David Lawrence Ramsey | 2010-10-03 16:34:14 -0500

Allow specifying monster gods in vaults.

--------------------------------------------------------------------------------
9e699c24b2 | David Lawrence Ramsey | 2010-10-03 16:30:08 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
bbaaaa808d | David Lawrence Ramsey | 2010-10-03 15:15:22 -0500

Rename Nergalle's non-base spectral orcs instead of setting base type.
This fixes inconsistencies regarding zombified behavior, and also avoids
any potential problems from having the base type set to a normally
unzombifiable type.

--------------------------------------------------------------------------------
2967dafdf9 | David Lawrence Ramsey | 2010-10-03 15:02:10 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
67979b2b0a | David Lawrence Ramsey | 2010-10-03 14:33:26 -0500

Fix god setting for Nergalle's spectral orcs.

--------------------------------------------------------------------------------
ff1a671da0 | David Lawrence Ramsey | 2010-10-03 14:20:00 -0500

Fix base names for hell demons.

--------------------------------------------------------------------------------
4076e3512f | Adam Borowski | 2010-10-03 18:58:57 +0200

Make silent spectres unable to use stairs.
Also, make player ghosts use the regular function instead of a special case.

--------------------------------------------------------------------------------
af57ca8aa8 | Raphael Langella | 2010-10-02 22:41:42 +0200

Forget spell from book
Add a (F)orget this spell line when reading the spell description
of a known spell, from a book. Forgetting the spell destroys the book.

--------------------------------------------------------------------------------
09ecfb8815 | Adam Borowski | 2010-10-02 21:33:02 +0200

Felids: set your corpse's HD to your level.

--------------------------------------------------------------------------------
52c95272cf | Adam Borowski | 2010-10-02 19:45:03 +0200

Merge branch 'master' into cats

--------------------------------------------------------------------------------
5384d57925 | David Lawrence Ramsey | 2010-10-02 11:34:08 -0500

Preserve individual monster HD for zombified types when possible.
Corpse-type items now save HD in another hash table property, a la the
number of hydra heads.  Note that monsters with zero HD due to draining
can currently still be zombified, with their hit dice reset to 1.
(Adding a more common unanimatable corpse type besides hydra heads could
be annoying for anyone trying to animate the dead en masse, enslave
souls under Yred, etc.)

HD preservation is done for all created zombified types except for those
placed in e.g. the Crypt (newly created, so no HD change is possible),
those made by Nergalle's Summon Spectral Orcs spell (same), and those
created by the Simulacrum spell (hash table properties aren't
transferred from corpse-type items to chunks; the same applies to the
number of hydra heads, which has been the case for awhile).

--------------------------------------------------------------------------------
6f95dbd1e6 | Adam Borowski | 2010-10-02 18:16:00 +0200

Use a less technical term for 0-headed hydras.

--------------------------------------------------------------------------------
a8830bb9c5 | Adam Borowski | 2010-10-02 18:14:24 +0200

Gather some stats about combat and diagonal moves.
We'll let this sit on CDO until there are several long games to analyze,
then revert.

--------------------------------------------------------------------------------
fca7340fe0 | David Lawrence Ramsey | 2010-10-02 10:17:38 -0500

Add another formatting fix.

--------------------------------------------------------------------------------
581f78f4a7 | David Lawrence Ramsey | 2010-10-02 10:13:32 -0500

Add a message for when Death Channel fails on a zero-headed hydra.

--------------------------------------------------------------------------------
8590e06f4b | David Lawrence Ramsey | 2010-10-02 10:00:39 -0500

Fix message when trying to animate zero-headed hydra skeletons.

--------------------------------------------------------------------------------
4d84077401 | David Lawrence Ramsey | 2010-10-02 09:44:45 -0500

Move zombie HP and AC/EV adjustments into their own functions.

--------------------------------------------------------------------------------
a9c3b586cf | Adam Borowski | 2010-10-02 16:16:03 +0200

Reduce the chance of any book to be replaced by Power/Wizardry from 10% to 4%.

--------------------------------------------------------------------------------
3f3bef3ea3 | Adam Borowski | 2010-10-02 16:16:03 +0200

wip -- debug counters

--------------------------------------------------------------------------------
675821f83c | David Lawrence Ramsey | 2010-10-02 08:33:56 -0500

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
f9e7a9cb23 | David Lawrence Ramsey | 2010-10-01 23:49:16 -0500

Add formatting fix.

--------------------------------------------------------------------------------
4e310ed454 | David Lawrence Ramsey | 2010-10-01 23:44:17 -0500

Simplify.

--------------------------------------------------------------------------------
e1ee8614ea | David Lawrence Ramsey | 2010-10-01 15:12:29 -0500

Make all monster item usage check for MONUSE_STARTING_EQUIPMENT.
Also, make sure they all use the same item base type sanity checks.

--------------------------------------------------------------------------------
51c379d3fe | David Lawrence Ramsey | 2010-10-01 14:40:27 -0500

Typo fix.

--------------------------------------------------------------------------------
e8502757cf | David Lawrence Ramsey | 2010-10-01 14:37:59 -0500

Unify wand and rod handling a bit more.

--------------------------------------------------------------------------------
07e68db10d | David Lawrence Ramsey | 2010-10-01 14:01:15 -0500

Add a few rod-related cleanups.
Check for the object in question's actually being a rod instead of just
an OBJ_STAVES type, and apply some of the same checks for wand usage to
rod usage (e.g. sleeping and submerged monsters won't use rods anymore).

--------------------------------------------------------------------------------
091c9128d6 | David Lawrence Ramsey | 2010-10-01 13:41:59 -0500

Remove effectively unused MONUSE_MAGIC_ITEMS.

--------------------------------------------------------------------------------
649349222b | David Lawrence Ramsey | 2010-10-01 13:31:10 -0500

Fix parentheses in the routine to give Maurice a wand.

--------------------------------------------------------------------------------
9fdd5fb364 | David Lawrence Ramsey | 2010-10-01 13:23:14 -0500

Comment fix.

--------------------------------------------------------------------------------
a618980c7b | David Lawrence Ramsey | 2010-10-01 13:20:30 -0500

Make MONUSE_STARTING_EQUIPMENT allow wand/rod use again (oops).
Not having MONUSE_WEAPONS_ARMOUR only prevents picking up wands/rods.
Keep the previous simplification, though.

--------------------------------------------------------------------------------
eb97d8865e | David Lawrence Ramsey | 2010-10-01 13:03:23 -0500

Fix wand usage for monsters to match logic elsewhere.
According to comments in mon-data.h as well as usage, only monsters with
MONUSE_WEAPONS_ARMOUR or greater, which includes MONUSE_MAGIC_ITEMS, are
supposed to be able to use wands (and now rods). Simplify the logic in
_handle_wand() accordingly.  The only monsters that can be generated
with rods, deep dwarf artificers, have MONUSE_WEAPONS_ARMOUR, so they
won't be affected.

--------------------------------------------------------------------------------
4f346745c3 | David Lawrence Ramsey | 2010-10-01 12:48:16 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
97e29d768f | Adam Borowski | 2010-10-01 12:10:41 +0200

Add a KPROP "no_jiyva" that renders items safe.
This was needed to avoid giving people who convert somewhere else and
don't enter Slime:6 before having ****** an edge.  This particular
solution gives that edge to everyone, this was chosen over the other
alternative of pre-eating everything in that vault.

--------------------------------------------------------------------------------
7f6cff1f59 | David Lawrence Ramsey | 2010-09-30 23:33:22 -0500

Resort monsters' god assignments.

--------------------------------------------------------------------------------
9222920c6a | David Lawrence Ramsey | 2010-09-30 23:30:39 -0500

Mark Mennas as belonging to Zin, as it matches his description.

--------------------------------------------------------------------------------
20c6bc499e | Shayne Halvorson | 2010-10-01 00:57:29 +0200

Food, hp and mp for Jiyvaites on jelly eating

--------------------------------------------------------------------------------
79a4f6386f | David Ploog | 2010-10-01 00:20:37 +0200

Another attempt to balance rumbling_trees.
This time, place forest-y monsters (bears, bat).

--------------------------------------------------------------------------------
21b5051a93 | David Lawrence Ramsey | 2010-09-30 13:24:03 -0500

Remove a monster Drain Life message; it's spammy enough as it is.

--------------------------------------------------------------------------------
edf35374a4 | David Lawrence Ramsey | 2010-09-30 13:23:25 -0500

Tweak monster Vampiric Draining messages.

--------------------------------------------------------------------------------
d96f66e4b2 | David Lawrence Ramsey | 2010-09-30 13:11:47 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
f2440bb72a | David Lawrence Ramsey | 2010-09-30 12:50:53 -0500

Allow Ely's Destroy Weapons ability to work on OBJ_STAVES.

--------------------------------------------------------------------------------
3579611073 | David Lawrence Ramsey | 2010-09-30 12:48:24 -0500

Add missing parentheses.

--------------------------------------------------------------------------------
80a15f5e49 | David Lawrence Ramsey | 2010-09-30 12:47:14 -0500

Display weapon wielding warnings for OBJ_STAVES too.

--------------------------------------------------------------------------------
83f5f1cc7b | David Lawrence Ramsey | 2010-09-30 12:46:12 -0500

Add warning for wielding poisoned weapons under TSO.

--------------------------------------------------------------------------------
7fd338edc9 | David Lawrence Ramsey | 2010-09-30 12:34:54 -0500

Move weapon wielding warnings into their own function.

--------------------------------------------------------------------------------
8814b2d852 | David Lawrence Ramsey | 2010-09-30 12:34:01 -0500

Add warning for wielding corpse-violating weapons under Fedhas.

--------------------------------------------------------------------------------
10605f45c6 | David Lawrence Ramsey | 2010-09-30 12:27:27 -0500

Typo fix.

--------------------------------------------------------------------------------
a3ce732805 | David Lawrence Ramsey | 2010-09-30 12:27:00 -0500

Add warning for wielding unclean weapons under Zin.

--------------------------------------------------------------------------------
6350c0078d | David Lawrence Ramsey | 2010-09-30 12:07:38 -0500

Display proper messages when equipping OBJ_STAVES (same as weapons).
Also, allow raised skeletons/zombies to be equipped with them.

--------------------------------------------------------------------------------
d24286dc2d | Mark Mackey | 2010-09-30 15:53:07 +0100

Bazaar creation now costs 3% permanent hp Teleport traps can't be placed too 
close to the Orb Fixed level drain cost Swapped ABIL_MAKE_ACQUIREMENT and 
ABIL_MAKE_BLADE_TRAP levels. Fixed item cleanup to prefer removing +0 weapons 
and ammo.

--------------------------------------------------------------------------------
5ade85b86c | David Lawrence Ramsey | 2010-09-30 09:04:36 -0500

Fix Mantis 2660: Bad grammar for hunter ghosts reloading weapons.

--------------------------------------------------------------------------------
2872f92a68 | David Lawrence Ramsey | 2010-09-30 08:19:41 -0500

Set zombified types to base types in Nergalle's Summon Spectral Orcs.
This is what was done before, and their spectral equipment effectively
marks them as special anyway.

--------------------------------------------------------------------------------
a5913c2314 | Adam Borowski | 2010-09-30 15:09:56 +0200

... and check if it works.

--------------------------------------------------------------------------------
1c7237e65e | Adam Borowski | 2010-09-30 15:09:56 +0200

Make the checkwhite script fix whatever it finds.

--------------------------------------------------------------------------------
471b3ba541 | Raphael Langella | 2010-09-30 15:09:56 +0200

Make checkwhite script windows compatible.

--------------------------------------------------------------------------------
e295bb33a8 | David Lawrence Ramsey | 2010-09-30 08:05:32 -0500

After more thought, don't set zombified types to base types anymore.
Doing so may cause some unintended side effects, since things like base
monster speed have to look at the base type.  As for telling the
difference between zombified types, they can probably be differentiated
by equipment at least (e.g. an animated orc zombie wearing orc warlord
equipment is more of a threat).

--------------------------------------------------------------------------------
4e17e55da6 | David Lawrence Ramsey | 2010-09-30 07:53:54 -0500

Simplify the previous stat preservation routines for zombies.
The use of the original monster type for the stats and the base type is
now the default, so the parameter is removed.  Additionally, the
original monster type is now properly passed in to the original
mgen_data() calls where applicable, so define_zombie() no longer needs
to effectively be called twice for spells and abilities that create
zombified types.  (Yred's Enslave Soul still needs to call it, since it
bypasses the monster placement code entirely when it recreates the
monster.)

--------------------------------------------------------------------------------
147fa4f249 | David Lawrence Ramsey | 2010-09-30 06:58:07 -0500

Let Yred take kills of artificial beings.
Currently, only golems and gargoyles are considered artificial.  Statues
either don't seem alive in the same way due to being immobile and
spellcasting without speaking (cf. silver and orange crystal statues),
or were not always statues and had natural origins (cf. Roxanne).  And
banning Statue Form could be confusing, as you are still considered
alive when using it (you still have MH_NATURAL holiness), but that could
just be an issue with the spell, or a way of balancing it.

Friendly artificial beings are not forbidden; temporary friendly golems
are rare due to high magic resistance (blocking Charm); permanent
friendly golems are only possible as a card effectl and gargoyles are
rare anyway.  Beogh doesn't mind if you enslave non-orcs to do his
bidding either, and I can't currently think of a proper aura that would
enrage artificial beings, in any case.

--------------------------------------------------------------------------------
8e9c951481 | David Lawrence Ramsey | 2010-09-30 00:31:52 -0500

Add spacing fix.

--------------------------------------------------------------------------------
820b7ca5be | David Lawrence Ramsey | 2010-09-29 21:57:15 -0500

Make zombified monsters retain their stats (at least HD and HP).
define_zombie() is no longer static, and is now used when creating all
zombified monsters.  This removes redundancy and inconsistency with
regard to monster flag setting (e.g. the dual-wielding flag no longer
needs to be set in multiple places, and zombified krakens created with
Animate Dead now retain their spellcasting flag and, hence, their
tentacles "spell").

This also fixes inconsistencies with regard to stats, as undead created
with define_zombie() are made by creating the original monster and
applying zombie downgrades.  Now that other places in the code use it,
they no longer create the zombified type and apply zombie downgrades to
it.  The stat retention is accomplished by adding a flag to
define_zombie() to make it use the original monster type.

One potentially controversial bit: this flag also makes define_zombie()
use the original type as the base type (except for uniques, to avoid
things like "Nergalle the spectral Nergalle").  The flag is used for all
spells and abilities that create undead*, but not in the code to place
them randomly (in e.g. the Crypt) or from card effects.  This may be an
issue, as players or monsters can now raise "orc warrior zombies" from
orc corpses that were orc warriors in life, but since orc warrior
zombies are now stronger than plain orc zombies, there should be an easy
way to tell the difference.  The Summon Spectral Orcs spell did this
before anyway.

Issues: The monster's original HD is not preserved yet; the monster
class' original HD is always used.  Also, I don't know at the moment if
the base damage is preserved.

* Animate Dead (spell and Yred power), Simulacrum, Death Channel,
Enslave Soul, Summon Spectral Orcs (Nergalle spell)

--------------------------------------------------------------------------------
fac0a13230 | David Lawrence Ramsey | 2010-09-29 21:17:55 -0500

Move spectral thing creation for Death Channel to its own function.

--------------------------------------------------------------------------------
75121eca38 | David Lawrence Ramsey | 2010-09-29 20:52:25 -0500

Move single-use parameters out of _define_zombie().

--------------------------------------------------------------------------------
4c8d5e7284 | David Lawrence Ramsey | 2010-09-29 20:07:44 -0500

Rename a few variables in cast_simulacrum() to match _raise_remains().

--------------------------------------------------------------------------------
1ca7b7e6ac | David Lawrence Ramsey | 2010-09-29 19:39:44 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
1cc3e9d89a | David Lawrence Ramsey | 2010-09-29 19:39:21 -0500

Comment fix.

--------------------------------------------------------------------------------
3ae213372b | David Lawrence Ramsey | 2010-09-29 19:37:49 -0500

Fix the speed of Yred's enslaved souls.
They now properly retain the speed of the original base monster.

--------------------------------------------------------------------------------
841f79ab52 | Raphael Langella | 2010-09-30 00:23:31 +0200

removed scroll of amnesia map rot effect

--------------------------------------------------------------------------------
ee028013a7 | David Lawrence Ramsey | 2010-09-29 17:10:16 -0500

Reorganize zombie flag-setting a bit.

--------------------------------------------------------------------------------
88b0312fc2 | David Lawrence Ramsey | 2010-09-29 17:07:40 -0500

Fix apparent typo in simulacrum stat mods.

--------------------------------------------------------------------------------
b036649bb2 | David Lawrence Ramsey | 2010-09-29 11:16:48 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
d3ffb0824a | David Ploog | 2010-09-29 18:12:09 +0200

Put welcoming spriggans in rumbling_trees (Pacra).

--------------------------------------------------------------------------------
5fbf8cc4cf | David Ploog | 2010-09-29 17:44:40 +0200

Update CREDITS.
Add Raphaël 'galehar' Langella.

--------------------------------------------------------------------------------
eac6ea4409 | David Lawrence Ramsey | 2010-09-29 09:53:45 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
ecd27cce8e | David Lawrence Ramsey | 2010-09-29 09:30:47 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f1034e17b6 | Raphael Langella | 2010-09-29 13:54:49 +0200

fix display of spells from rod
Remove schools and spell success (irrelevant for rods)
Real hunger cost is displayed
Average power is displayed (5+2*evoc) but real power is still randomized
Range use average power

--------------------------------------------------------------------------------
d19347bdd2 | Adam Borowski | 2010-09-29 13:18:03 +0200

Calculate the LOS range instead of adding/subtracting to it.
This allows correct upgrades from squarelos.

--------------------------------------------------------------------------------
079e5efa0c | MarvintheParanoidAndroid | 2010-09-29 12:52:27 +0200

Make torment rarer in plain/ornate decks

--------------------------------------------------------------------------------
08e90061b1 | Raphael Langella | 2010-09-29 12:47:13 +0200

Fix randomized animation of unidentified wand/missile.
In tiles, firing unidentified branded missiles and evoking un'id wands doesn't
make a random animation anymore

--------------------------------------------------------------------------------
c7574ff401 | Raphael Langella | 2010-09-29 12:35:39 +0200

Restore casting noise for target spells.

--------------------------------------------------------------------------------
16d78edc42 | Adam Borowski | 2010-09-29 12:34:05 +0200

Update the installation docs.

--------------------------------------------------------------------------------
1a9c86cfa7 | Adam Borowski | 2010-09-29 12:19:24 +0200

Add Galehar's note about buggy sdl-config on msys.

--------------------------------------------------------------------------------
48e39d5d01 | Adam Borowski | 2010-09-29 12:14:23 +0200

Rewrap INSTALL.txt

--------------------------------------------------------------------------------
e53403437a | Adam Borowski | 2010-09-29 12:06:59 +0200

Don't be as scary about platforms being "unsupported".
Our portability has improved a lot.  Most platforms should work fine, and
we're not as tied to gcc only as before.  In particular, clang++ works well
and problems with MSVC are mostly because of its asinine project files, not
because of the compiler itself.

--------------------------------------------------------------------------------
5c91f256ba | Raphael Langella | 2010-09-29 11:55:51 +0200

Add noise level to spell description.

--------------------------------------------------------------------------------
7199d528a1 | Raphael Langella | 2010-09-29 11:47:45 +0200

Add noise to missiles

--------------------------------------------------------------------------------
c00f44bd0b | Adam Borowski | 2010-09-29 11:41:31 +0200

Replace a hardcoded number with a #define.

--------------------------------------------------------------------------------
144d58e002 | Raphael Langella | 2010-09-29 11:19:18 +0200

replace selective amnesia with scroll of amnesia

--------------------------------------------------------------------------------
dba92aff0b | David Lawrence Ramsey | 2010-09-28 16:54:53 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
5e3cbdbdd2 | David Lawrence Ramsey | 2010-09-28 12:32:28 -0500

Move check for transformed players' joining gods into its own function.

--------------------------------------------------------------------------------
dc3a55ecaf | David Lawrence Ramsey | 2010-09-28 10:24:12 -0500

Remove unneeded blank lines.

--------------------------------------------------------------------------------
a29408259c | David Lawrence Ramsey | 2010-09-28 10:00:22 -0500

Fix warning.

--------------------------------------------------------------------------------
98cba81361 | David Lawrence Ramsey | 2010-09-28 09:51:37 -0500

Fix binary compatibility breakage.

--------------------------------------------------------------------------------
0607b1341d | Jude Brown | 2010-09-28 23:31:11 +1000

Merge branch 'malign_gateway'

--------------------------------------------------------------------------------
595985e90f | Jude Brown | 2010-09-28 23:14:58 +1000

Merge branch 'master' into malign_gateway
Conflicts:
	crawl-ref/source/directn.cc
	crawl-ref/source/enum.h
	crawl-ref/source/main.cc
	crawl-ref/source/mon-abil.cc
	crawl-ref/source/mon-abil.h
	crawl-ref/source/mon-act.cc
	crawl-ref/source/mon-stuff.cc
	crawl-ref/source/monster.cc
	crawl-ref/source/spells3.cc

--------------------------------------------------------------------------------
7c083da8b7 | David Ploog | 2010-09-28 12:50:36 +0200

Slight anti-rickrolling.

--------------------------------------------------------------------------------
a655d7e83f | Adam Borowski | 2010-09-27 15:05:26 +0200

Use our indents and code style.

--------------------------------------------------------------------------------
7ce8799879 | Brendan Hickey | 2010-09-27 21:06:12 +1000

Beefed up Chei wrath to be interesting and dangerous.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
7f02f5d799 | Brendan Hickey | 2010-09-27 21:06:12 +1000

Began overhaul of Chei wrath
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
84b201e4de | Jude Brown | 2010-09-27 18:33:28 +1000

Fix Mantis #2641, entering Portal Vaults from Hell.
I'm not even sure why there's a restriction on this, as it only affects
staircases and not the Hell entrances.

--------------------------------------------------------------------------------
c940cb760c | Jude Brown | 2010-09-27 18:25:47 +1000

Fix Mantis #1870, #2651: beach-front portal vaults.
The Shoals builder wasn't checking to see if it was actually building a
shoals level before replacing the border with open sea.

--------------------------------------------------------------------------------
d91296e110 | David Lawrence Ramsey | 2010-09-27 00:25:09 -0500

Add a wights band type, modeled after the skeletal warrior band type.

--------------------------------------------------------------------------------
059ce2eb7b | David Lawrence Ramsey | 2010-09-26 22:38:53 -0500

Put dwarf uniques together in mon-data.h.

--------------------------------------------------------------------------------
639eb342bf | David Lawrence Ramsey | 2010-09-26 21:46:09 -0500

Resort monster entries.

--------------------------------------------------------------------------------
634ab294f3 | Adam Borowski | 2010-09-27 01:51:49 +0200

Let tiles output our UTF-8 encoded strings -- only the ISO-8859-1 subset for 
now.
Word wrapping is yet to be corrected, just like in other UIs.

--------------------------------------------------------------------------------
6603ae1fca | David Lawrence Ramsey | 2010-09-26 18:28:50 -0500

Properly let monster Drain Life be used whenever it does damage.

--------------------------------------------------------------------------------
2c2f3c21f2 | David Lawrence Ramsey | 2010-09-26 18:21:05 -0500

Mark 'q'-glyph monsters as humanoid-shaped.

--------------------------------------------------------------------------------
28020bcb45 | David Ploog | 2010-09-27 01:17:07 +0200

Improved Elyvilon healing descriptions (RangerC), #2180.

--------------------------------------------------------------------------------
792f27566f | David Lawrence Ramsey | 2010-09-26 18:15:28 -0500

Reorganize monster glyph changes a bit.

--------------------------------------------------------------------------------
e7dd54faf8 | Adam Borowski | 2010-09-27 01:03:48 +0200

Make DD corpses use Wiglaf's corpse tile for now.

--------------------------------------------------------------------------------
7e2081cd7e | Adam Borowski | 2010-09-27 01:03:47 +0200

Make dwarves 'q'.
Colour adjustments badly needed.

--------------------------------------------------------------------------------
662a165739 | David Lawrence Ramsey | 2010-09-26 16:44:00 -0500

Tweak wording.

--------------------------------------------------------------------------------
935a85495e | David Lawrence Ramsey | 2010-09-26 16:43:07 -0500

Typo fix (noticed by OG17).

--------------------------------------------------------------------------------
d8d6ed077f | David Lawrence Ramsey | 2010-09-26 16:28:41 -0500

Add a description for the greater wraith.

--------------------------------------------------------------------------------
3340b938e4 | Jesse Luehrs | 2010-09-26 03:49:56 -0500

wait to bail out here until all modifications are done
tweak_wall_mmov doesn't like mmov == (0, 0)

--------------------------------------------------------------------------------
b344879a31 | Jude Brown | 2010-09-26 18:01:24 +1000

Properly invalidate agrid for summoned monsters with areas.
This stops silent spectres that have been summoned with shadow creatures
from leaving behind a massive square of silence.

--------------------------------------------------------------------------------
73a6669eb1 | Jude Brown | 2010-09-26 16:13:06 +1000

Fix Shadow Creatures + Dancing Weapons in Blade.
All summoned dancing weapons were specifically not getting their items
marked as summoned. Obviously, this makes sense, as you don't want a
Tukima'd weapon disappearing with that weapon.

However, an oversight meant that dancing weapons summoned with Shadow
Creatures (for instance, in Hall of Blades), would not have their
weapons marked as summoned. Therefore, Shadow Creatures in Blade was a
"weapon generator".

Now instead of checking for MONS_DANCING_WEAPON when marking items as
not summoned, check for SPELL_TUKIMAS_DANCE instead.

--------------------------------------------------------------------------------
c4e178a20c | David Lawrence Ramsey | 2010-09-25 22:35:26 -0500

Rename _mons_vamp_drain() to _mons_vampiric_drain().
This matches the player version, vampiric_drain().

--------------------------------------------------------------------------------
4a125d38e5 | David Lawrence Ramsey | 2010-09-25 22:24:58 -0500

Only set a priestly entourage's gods for those without gods.
This is so that deep dwarf berserkers generated as part of a deep dwarf
death knight's priestly entourage keep Trog as their god, instead of
having it overridden to Yredelemnul.

--------------------------------------------------------------------------------
6c679c596d | David Lawrence Ramsey | 2010-09-25 22:02:40 -0500

Remove the behaviour_event() call from monster Drain Life.
This fixes an assert in arena mode.  Furthermore, monster Vampiric
Draining doesn't have a behaviour_event() call either where player
Vampiric Draining does, so it appears to be unnecessary.

--------------------------------------------------------------------------------
ed2cf30f0d | David Lawrence Ramsey | 2010-09-25 21:52:40 -0500

Add spacing fix.

--------------------------------------------------------------------------------
98f28fd6d1 | David Lawrence Ramsey | 2010-09-25 20:51:58 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
931040fac2 | Adam Borowski | 2010-09-26 03:06:48 +0200

Fix tiles compilation.
I went the lazy way and just stuck stdint.h at the beginning, we include it
from a number of basic and/or platform-dependent headers so was pulled by
AppHdr.h anyway.

--------------------------------------------------------------------------------
8083632f65 | Adam Borowski | 2010-09-26 02:44:06 +0200

Always use Unicode values for glyphs.  Always use ncursesw on Unix console.
CSET_IBM and CSET_DEC are now merely presets and don't change the I/O encoding.
Doing I/O using any encoding other than the one configured using LANG/LC_* is
just wrong and no well-behaving program should do that.

This does require changes on CAO/CDO, but they would fix problems with ttyrec
and spectating as well.

To fix: ncursesw replaces unrepresentable characters with spaces, we'll have
to replace them by hand.

--------------------------------------------------------------------------------
9be9bf6749 | David Lawrence Ramsey | 2010-09-25 18:12:50 -0500

Only let monsters cast Drain Life if it actually has a healing effect.

--------------------------------------------------------------------------------
2cee3b11a0 | David Lawrence Ramsey | 2010-09-25 17:35:26 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e6b3a744ad | David Lawrence Ramsey | 2010-09-25 17:34:38 -0500

Check bound spellcaster flags for monster Vampiric Draining.

--------------------------------------------------------------------------------
2365f90b64 | David Lawrence Ramsey | 2010-09-25 17:31:50 -0500

Remove unneeded variables.

--------------------------------------------------------------------------------
d333b94885 | David Lawrence Ramsey | 2010-09-25 17:29:40 -0500

Typo fix.

--------------------------------------------------------------------------------
de174b1555 | David Lawrence Ramsey | 2010-09-25 17:13:30 -0500

Clean up monster Drain Life a bit, and move it to its own function.

--------------------------------------------------------------------------------
343ab8b86a | David Lawrence Ramsey | 2010-09-25 17:13:30 -0500

Clean up player Drain Life a bit.

--------------------------------------------------------------------------------
2125d389ce | Adam Borowski | 2010-09-25 23:50:50 +0200

Purge some remnants of zip/tar use.

--------------------------------------------------------------------------------
1c07180018 | Adam Borowski | 2010-09-25 23:30:18 +0200

Remove an unused function, we don't do line input anymore.

--------------------------------------------------------------------------------
70f3f56fb2 | David Lawrence Ramsey | 2010-09-25 16:21:52 -0500

Add proper delays to the new spells' screen flashes (a la Call Tide).

--------------------------------------------------------------------------------
9fce165a5a | David Lawrence Ramsey | 2010-09-25 16:19:12 -0500

Typo fix.

--------------------------------------------------------------------------------
044cf7579c | David Lawrence Ramsey | 2010-09-25 16:16:49 -0500

Make monster Drain Life work on the player as well as monsters.

--------------------------------------------------------------------------------
bdae12daab | Adam Borowski | 2010-09-25 23:12:14 +0200

Implement Unicode support on win-console on output.

--------------------------------------------------------------------------------
1fa2b211e4 | David Lawrence Ramsey | 2010-09-25 15:22:56 -0500

Fix compilation.

--------------------------------------------------------------------------------
0bb46f793e | David Lawrence Ramsey | 2010-09-25 15:18:03 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
15c6e060ca | David Lawrence Ramsey | 2010-09-25 15:15:59 -0500

Avoid unnecessary mprf()'s, and tweak punctuation.

--------------------------------------------------------------------------------
f757792cda | David Lawrence Ramsey | 2010-09-25 15:12:10 -0500

Fix messaging (seen and unseen) for monster Vampiric Draining.

--------------------------------------------------------------------------------
7d34acd624 | David Lawrence Ramsey | 2010-09-25 15:00:23 -0500

Remove redundant visibility check for Drain Life's healing.

--------------------------------------------------------------------------------
310921fc84 | David Lawrence Ramsey | 2010-09-25 14:54:46 -0500

Don't let the monster casting Drain Life take damage from it.

--------------------------------------------------------------------------------
9e9e53853a | David Lawrence Ramsey | 2010-09-25 14:48:03 -0500

Add a message for when the monster casting Drain Life can't be seen.

--------------------------------------------------------------------------------
7a9fb8d810 | David Lawrence Ramsey | 2010-09-25 14:42:17 -0500

Fix some inverted visibility logic in the new spells.

--------------------------------------------------------------------------------
3d58a7f3ec | David Lawrence Ramsey | 2010-09-25 14:35:31 -0500

Add spacing fix.

--------------------------------------------------------------------------------
e8b8a03610 | David Lawrence Ramsey | 2010-09-25 12:42:32 -0500

Simplify.

--------------------------------------------------------------------------------
35ef125dab | David Lawrence Ramsey | 2010-09-25 12:24:43 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
4364c937ba | David Lawrence Ramsey | 2010-09-25 12:20:24 -0500

Fix non-boolean return values in is_poisoned_item().

--------------------------------------------------------------------------------
9f19558973 | David Lawrence Ramsey | 2010-09-25 11:56:27 -0500

Ensure that gifts/worshippers of TSO don't use poisoned weapons.

--------------------------------------------------------------------------------
381c2474ad | David Lawrence Ramsey | 2010-09-25 11:54:37 -0500

Reorganize god item filters a bit.

--------------------------------------------------------------------------------
045963d377 | David Lawrence Ramsey | 2010-09-25 11:51:28 -0500

Move TSO's checks for poisoned items into its own function.

--------------------------------------------------------------------------------
55c27e3e03 | David Lawrence Ramsey | 2010-09-25 11:44:04 -0500

Reorganize functions a bit.

--------------------------------------------------------------------------------
8702bec2ac | Jude Brown | 2010-09-26 00:45:45 +1000

Mantis #2632, "There is a rocky tunnel leading out of this place here."

--------------------------------------------------------------------------------
bec243e66d | Adam Borowski | 2010-09-25 11:05:38 +0200

Felids: lower the lives cap to only 2 extras at a time.

--------------------------------------------------------------------------------
03045b56a2 | Adam Borowski | 2010-09-25 10:54:48 +0200

Felids: grant extra lives when levelling up past 27.
It's debatable whether this should grant actual new ones (past 9) or only
postponed ones that you didn't get because of being at the cap.  It's
currently the former to always allow recovery[1], but then, while crippling
characters mid-game is bad, permanent costs late game are more acceptable.

[1]. Save for the absolute exp cap of 8999999, but that applies only to
multi Zig runners.

--------------------------------------------------------------------------------
81f11b0706 | Adam Borowski | 2010-09-25 10:14:53 +0200

Merge branch 'master' into cats

--------------------------------------------------------------------------------
2bf36d4c6a | David Lawrence Ramsey | 2010-09-24 23:11:49 -0500

Tweak descriptions for the paralysis/slowing brands.
They now are tipped or coated with "substances" instead of "poisons",
since they don't trigger the poison conduct.

--------------------------------------------------------------------------------
bbaef880f5 | David Lawrence Ramsey | 2010-09-24 23:10:42 -0500

Add spelling fix.

--------------------------------------------------------------------------------
4afb6ce73b | Jude Brown | 2010-09-25 13:20:16 +1000

Actually fix ASSERT(slot == MSLOT_MISSILE) error.
Rods and staves aren't throwable.

--------------------------------------------------------------------------------
997e938cba | Adam Borowski | 2010-09-25 02:29:11 +0200

Add the missing floor tiles referenced by dwarf.des
The lame solution would be to replace them with some random floor, but we're
not lame.  If these tiles suck (it's likely they do), you know what to do.

--------------------------------------------------------------------------------
f9a7970b35 | Adam Borowski | 2010-09-24 18:41:24 +0200

Remove "scream" from monster banishment message, it's inappropriate in many 
cases.
We could alternatively add a case for every type of monster vocalization, but
I don't feel like adding that complexity.

--------------------------------------------------------------------------------
5e697d35a5 | David Lawrence Ramsey | 2010-09-24 11:38:44 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
0aa7bdb986 | David Lawrence Ramsey | 2010-09-24 11:17:57 -0500

Improve comment.

--------------------------------------------------------------------------------
814b9ad734 | Adam Borowski | 2010-09-24 18:04:59 +0200

Reduce spam when getting hit by multiple attacks while praying to Yred.
This also reduces the piety cost in that case somewhat.
It should also protect against crashes or DEAD MONSTER messages in some
obscure cases (and potentially introduce other bugs...).

--------------------------------------------------------------------------------
14e952c988 | David Lawrence Ramsey | 2010-09-24 10:47:48 -0500

Typo fix.

--------------------------------------------------------------------------------
1e4c6c8ff5 | David Lawrence Ramsey | 2010-09-24 10:33:56 -0500

Remove one last instance of racial missiles.

--------------------------------------------------------------------------------
f7e51f5ccd | David Lawrence Ramsey | 2010-09-24 10:04:40 -0500

Add M_NO_POLY_TO to MONS_STATUE, just in case.

--------------------------------------------------------------------------------
952703f42e | David Lawrence Ramsey | 2010-09-24 09:49:51 -0500

Add M_NO_POLY_TO to vapire bats, since they're non-spawning dummies.

--------------------------------------------------------------------------------
0034ac96fe | Adam Borowski | 2010-09-24 16:36:05 +0200

Fix the message on casting Mirror Damage not being shown.

--------------------------------------------------------------------------------
3c3af76cc7 | Adam Borowski | 2010-09-24 16:36:05 +0200

Make blue_anna's monster enchantments expire.

--------------------------------------------------------------------------------
412fe9abe8 | Adam Borowski | 2010-09-24 16:36:05 +0200

Don't spam for multiple Mirror Damage backlashes -- for example, weapon brands.
Also, this caps elec water discharges for monsters with multiple attacks to one.

--------------------------------------------------------------------------------
ab63cefa5b | Adam Borowski | 2010-09-24 16:36:05 +0200

Use final effects to make monster Mirror Damage safe against crashes.
It would remove the attacker, in the same vein as our numerous chaos brand
problems.

--------------------------------------------------------------------------------
d2cc57c974 | Adam Borowski | 2010-09-24 16:36:05 +0200

Turn "final effects" into a generic system.  Fix water elec not working for 
monsters.

--------------------------------------------------------------------------------
bf5801d246 | Adam Borowski | 2010-09-24 16:36:05 +0200

Comment which dummies can spawn (and thus are not really dummies) and which 
don't.
Especially vanilla humans, which do spawn in a hundred places, certainly
are not ones.

--------------------------------------------------------------------------------
adf8a56638 | David Lawrence Ramsey | 2010-09-24 09:34:32 -0500

Tweak wording.

--------------------------------------------------------------------------------
4bb58ec76d | David Lawrence Ramsey | 2010-09-24 09:01:34 -0500

Remove more unused ability descriptions.
Summon Minor Demon and Summon Demon were removed in the demonspawn
overhaul.

As a side effect, this fixes Mantis 2633, since the latter description
conflicted with the Summon Demon spell.

--------------------------------------------------------------------------------
c714e49c6e | Adam Borowski | 2010-09-24 12:06:20 +0200

Remove a broken since forever tool.
It made some sense in the old days of unmodifiable tags, but today, it would
have to be updated every single time a minor version changes.

--------------------------------------------------------------------------------
bac19199ff | Adam Borowski | 2010-09-24 12:03:14 +0200

Add my script for checking whitespace violations.

--------------------------------------------------------------------------------
37b2b5d081 | Adam Borowski | 2010-09-24 12:01:47 +0200

Purge tabs from the Cocoa stuff.

--------------------------------------------------------------------------------
3b6840349b | MarvintheParanoidAndroid | 2010-09-24 11:28:27 +0200

Card description fixes

--------------------------------------------------------------------------------
7b8c232f30 | MarvintheParanoidAndroid | 2010-09-24 11:28:23 +0200

Spell description fixes/improvements

--------------------------------------------------------------------------------
42b539a8d3 | Jesse Luehrs | 2010-09-24 01:54:26 -0500

Revert "Simplify."
This reverts commit 89b786f24e68587e7add5b56384e2abdb3cf0fb1.

No, this actually isn't equivalent.

--------------------------------------------------------------------------------
e920b30c87 | David Lawrence Ramsey | 2010-09-24 00:24:41 -0500

Add spacing fix.

--------------------------------------------------------------------------------
a793b61b34 | David Lawrence Ramsey | 2010-09-23 22:37:36 -0500

Add another spelling fix.

--------------------------------------------------------------------------------
2395481b1b | David Lawrence Ramsey | 2010-09-23 22:22:10 -0500

Remove references to gods' genders in Donald's complaints.

--------------------------------------------------------------------------------
7b73670433 | David Lawrence Ramsey | 2010-09-23 22:19:06 -0500

Add wording fix.

--------------------------------------------------------------------------------
2d307e71f3 | David Lawrence Ramsey | 2010-09-23 22:11:05 -0500

Typo fix.

--------------------------------------------------------------------------------
3c9aae6fce | David Lawrence Ramsey | 2010-09-23 22:04:33 -0500

Add capitalization fixes.

--------------------------------------------------------------------------------
4b88572664 | David Lawrence Ramsey | 2010-09-23 21:56:53 -0500

Add spelling fix.

--------------------------------------------------------------------------------
b269cd9205 | Jude Brown | 2010-09-24 10:46:11 +1000

Don't tread rods as throwable.
Should hopefully fix a series of crashes and asserts on CDO.

--------------------------------------------------------------------------------
2fc21d1caf | Adam Borowski | 2010-09-24 00:37:36 +0200

Fix ?/M crashing; monster_info won't have a real monster.

--------------------------------------------------------------------------------
50a448dbb0 | Adam Borowski | 2010-09-24 00:06:47 +0200

Fix "Foo draws life force from DEAD MONSTER and is healed".

--------------------------------------------------------------------------------
d125171b3d | Adam Borowski | 2010-09-23 22:40:43 +0200

Mark the female Dwarf Hall monsters as such.

--------------------------------------------------------------------------------
bbdb91367e | David Lawrence Ramsey | 2010-09-23 14:56:53 -0500

Update comments regarding monsters' item usage.
Clarify that the rules apply to monsters who worship gods as well as who
are gifts of those gods.  Also, fix obsolete comments regarding Fedhas.

--------------------------------------------------------------------------------
fd9040eaba | David Lawrence Ramsey | 2010-09-23 14:52:11 -0500

Keep Yred-worshipping monsters from starting with/using holy weapons.

--------------------------------------------------------------------------------
1df6e7bf14 | Mark Mackey | 2010-09-23 17:57:28 +0100

Fixed bazaar placement in Zotdef. Reduced level drain cost for gold and 
acquirement to 1 level.

--------------------------------------------------------------------------------
fd7fbea5a8 | Mark Mackey | 2010-09-23 17:56:45 +0100

Fixed erroneous double-prototype.

--------------------------------------------------------------------------------
5760731325 | David Lawrence Ramsey | 2010-09-23 11:56:43 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
346ea7181a | Mark Mackey | 2010-09-23 17:55:33 +0100

Widened northern kill zone in triangle map. Maybe too easy now? Monster 
pathfinding now strongly biased to one side :(.

--------------------------------------------------------------------------------
1c767bd4e5 | Mark Mackey | 2010-09-23 17:54:30 +0100

Delay of 5 moves on returning from a portal - punish players for using a bazaar 
as a pit stop.

--------------------------------------------------------------------------------
f36eddfe26 | Mark Mackey | 2010-09-23 17:54:05 +0100

Reduced critter frequency for first wave by 33%.

--------------------------------------------------------------------------------
348c13e771 | David Lawrence Ramsey | 2010-09-23 11:53:36 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
0327cca657 | David Lawrence Ramsey | 2010-09-23 11:48:48 -0500

Add missing break.

--------------------------------------------------------------------------------
bf67ebf2da | David Lawrence Ramsey | 2010-09-23 10:14:34 -0500

Typo fix.

--------------------------------------------------------------------------------
7189eda575 | David Lawrence Ramsey | 2010-09-23 10:13:58 -0500

Add M_NO_POLY_TO to plain ghosts, just in case.

--------------------------------------------------------------------------------
eacc9552c7 | David Lawrence Ramsey | 2010-09-23 10:08:16 -0500

Revert "Set the greater wraith's species properly."
This reverts commit c97ddb47cc52d8c8b3dd1f8eb0335c58482c9b96.

After looking into it, none of the other "greater" monsters, nor ancient
liches, are considered separate species.

--------------------------------------------------------------------------------
c31a423448 | David Lawrence Ramsey | 2010-09-23 09:26:01 -0500

Fix message inconsistency.

--------------------------------------------------------------------------------
f418287bb2 | Adam Borowski | 2010-09-23 16:19:30 +0200

Simplify.

--------------------------------------------------------------------------------
748e1c01bf | Adam Borowski | 2010-09-23 15:58:19 +0200

Remove an always true variable from divine_retribution().

--------------------------------------------------------------------------------
facd403af7 | Jude Brown | 2010-09-23 23:57:27 +1000

Rip the flesh off corpses, then animate their skeletons!
Rargh, aaargh, walking dead and zombies oh no! Implements #1844.

Messages could use tweaking, mechanism may need tweaking, but it does
work.

--------------------------------------------------------------------------------
35228ca014 | Adam Borowski | 2010-09-23 15:45:46 +0200

&W to force god wrath.

--------------------------------------------------------------------------------
e434edb199 | Adam Borowski | 2010-09-23 15:45:46 +0200

Remove unused numeric value comments.
These are not even enums, just ordered lists with no meaning for position
numbers whatsoever.

--------------------------------------------------------------------------------
3bfb4b7560 | David Lawrence Ramsey | 2010-09-23 07:31:10 -0500

Fix genus check for kobolds in is_player_same_species().
The logic is reversed; the kobold genus should be ignored.

--------------------------------------------------------------------------------
245f3d3c19 | David Lawrence Ramsey | 2010-09-23 07:19:04 -0500

Comment fix.

--------------------------------------------------------------------------------
fc178cac9a | David Lawrence Ramsey | 2010-09-23 07:17:22 -0500

Revert "Fix genus check for ghouls in is_player_same_species()."
This reverts commit 64233f4b0277aff59f85ac9063f5e9bb8a2ae7f6.

The logic is reversed; the ghoul genus should be ignored.

--------------------------------------------------------------------------------
e396353515 | David Lawrence Ramsey | 2010-09-22 22:01:29 -0500

Add another formatting fix.

--------------------------------------------------------------------------------
1c347141f4 | David Lawrence Ramsey | 2010-09-22 14:52:19 -0500

Add formatting fix.

--------------------------------------------------------------------------------
d8179380d4 | David Lawrence Ramsey | 2010-09-22 14:15:21 -0500

Make radioactive glow different from light glow in-game.
Specifically, allow (very) ugly things to have a chance of mutating when
adjacent to any monster that glows with radiation.  They will still have
a higher chance of mutating when adjacent to their own kin, however.

Note that the only monsters that glow with radiation other than (very)
ugly things are glowing shapeshifters in their original form, shining
eyes, and orbs of fire, so not much should currently be affected.

--------------------------------------------------------------------------------
3512cafd4a | David Lawrence Ramsey | 2010-09-22 13:42:48 -0500

Add comment.

--------------------------------------------------------------------------------
1036b259a1 | David Lawrence Ramsey | 2010-09-22 13:26:08 -0500

Fix capitalization.

--------------------------------------------------------------------------------
7d94839e39 | David Lawrence Ramsey | 2010-09-22 13:24:22 -0500

Tweak wording.

--------------------------------------------------------------------------------
7a8e098313 | David Lawrence Ramsey | 2010-09-22 13:13:08 -0500

Make orbs of fire glow with both light and radiation.

--------------------------------------------------------------------------------
b3cea989fb | David Lawrence Ramsey | 2010-09-22 13:11:55 -0500

Don't treat light glow and radioactive glow as mutually exclusive.

--------------------------------------------------------------------------------
27565f1352 | David Lawrence Ramsey | 2010-09-22 13:06:34 -0500

Mark lindwurms as glowing with light; it matches their description.

--------------------------------------------------------------------------------
9f2d6c6399 | David Lawrence Ramsey | 2010-09-22 13:05:23 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f4cc8e26ca | David Lawrence Ramsey | 2010-09-22 11:01:09 -0500

Add missing parentheses.

--------------------------------------------------------------------------------
a27e177e89 | David Lawrence Ramsey | 2010-09-22 11:00:58 -0500

Simplify the ugly thing mutation iteration loop.

--------------------------------------------------------------------------------
aee1a6db0a | David Lawrence Ramsey | 2010-09-22 10:53:37 -0500

Simplify displaying the ugly thing mutation message.

--------------------------------------------------------------------------------
b785b1ca9d | David Lawrence Ramsey | 2010-09-22 10:52:29 -0500

Add type fixes for setting ugly thing colors.

--------------------------------------------------------------------------------
93f637158f | David Lawrence Ramsey | 2010-09-22 09:54:29 -0500

Move comment.

--------------------------------------------------------------------------------
21c8bdf197 | David Lawrence Ramsey | 2010-09-22 09:53:33 -0500

Add genus check for kobolds in is_player_same_species() (for nisse).

--------------------------------------------------------------------------------
64233f4b02 | David Lawrence Ramsey | 2010-09-22 09:51:40 -0500

Fix genus check for ghouls in is_player_same_species().

--------------------------------------------------------------------------------
c97ddb47cc | David Lawrence Ramsey | 2010-09-22 09:47:59 -0500

Set the greater wraith's species properly.

--------------------------------------------------------------------------------
6336a3ac21 | David Lawrence Ramsey | 2010-09-22 09:47:03 -0500

Add formatting fix.

--------------------------------------------------------------------------------
5fb424c003 | Jude Brown | 2010-09-22 23:09:27 +1000

Implement fear as a monster spell, player status.
The opposite of mesmerisation: instead of not being able to move away
from the creature in question, you are unable to move closer to them.
This is useful for ranged fighters, but useless with monsters that will
move closer to you. One merely needs to hold . until they arrive, or hit
them with spells, etc.

The range could be tweaked slightly. I've set it up as olddist >=
newdist, which means that you get the following effect (where 5 is a
monster causing fear, : are squares you cannot move into, . as normal):

:::::::..
:::::::..
:::5::@..
:::::::..
:::::::..

Switching to olddist > newdist results in:

::::::...
::::::...
:::5::@..
::::::...
::::::...

Square LOS may also make a difference in this case.

No monster currently uses it, but giving them the spell "cause fear"
works as imagined.

--------------------------------------------------------------------------------
c0f0a2dc7f | David Lawrence Ramsey | 2010-09-21 22:40:29 -0500

Fix the rest of Mantis 2566.
Monsters' wounded/damaged messages now take MF_FAKE_UNDEAD into account,
so zombie krakens' tentacles are now properly described as destroyed.
Incidentally, _wounded_damaged() now takes a holiness value directly
instead of a monster type.

--------------------------------------------------------------------------------
639b8f7d70 | David Lawrence Ramsey | 2010-09-21 19:01:35 -0500

Set proper priestly flags and gods for monster DDBe's and DDDK's.

--------------------------------------------------------------------------------
fd6c0625bb | David Lawrence Ramsey | 2010-09-21 19:01:17 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
89b9b09bc1 | Adam Borowski | 2010-09-22 01:20:32 +0200

Fix monster stoneskin overwriting AC.

--------------------------------------------------------------------------------
1760b5ff7f | David Lawrence Ramsey | 2010-09-21 18:13:05 -0500

Bind monster flags properly on loaded ghosts.
Deep dwarf ghosts *actually* don't regenerate now.

--------------------------------------------------------------------------------
734fb2f075 | David Lawrence Ramsey | 2010-09-21 18:12:49 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
89b786f24e | David Lawrence Ramsey | 2010-09-21 17:16:39 -0500

Simplify.

--------------------------------------------------------------------------------
1c9a263331 | David Lawrence Ramsey | 2010-09-21 17:12:19 -0500

Remove unneeded returns.

--------------------------------------------------------------------------------
da5d771ade | David Lawrence Ramsey | 2010-09-21 17:12:19 -0500

Rename variable wields_two_weapons in mon-info.cc to two_weapons.

--------------------------------------------------------------------------------
4c2a3c346b | David Lawrence Ramsey | 2010-09-21 17:12:18 -0500

Allow disabling of regeneration with a monster flag.
MF_NO_REGEN replaces MF_GOING_BERSERK, and is used for the following
cases:

* zombified deep dwarves (so spectral deep dwarves can't heal)
* fake-zombified kraken connectors and tentacles (part of Mantis 2566)
* deep dwarf player ghosts (simpler than always checking ghost species)

--------------------------------------------------------------------------------
7da74d747a | David Lawrence Ramsey | 2010-09-21 17:12:18 -0500

Rename the TWOWEAPON flags to TWO_WEAPONS flags.

--------------------------------------------------------------------------------
98193bd121 | Jesse Luehrs | 2010-09-21 16:35:37 -0500

fix lua memory leak

--------------------------------------------------------------------------------
a8a79c0227 | Jesse Luehrs | 2010-09-21 16:35:37 -0500

silence some (harmless) valgrind warnings

--------------------------------------------------------------------------------
b43597d2bc | David Lawrence Ramsey | 2010-09-21 16:26:51 -0500

Make a prototype match its associated function.

--------------------------------------------------------------------------------
42900aa7f8 | David Lawrence Ramsey | 2010-09-21 16:26:51 -0500

Remove now-obsolete reference to unique base monster types.

--------------------------------------------------------------------------------
5b037ee1ce | Mu | 2010-09-21 22:04:02 +0100

Remove unused marker from wizlab_cloud
Looks like this was accidentally copy/pasted from wizlab_demon.

--------------------------------------------------------------------------------
47d37c292b | Mu | 2010-09-21 21:58:20 +0100

Fix 'the Tonodo the Cloud Mage'.
Articles, begone.

--------------------------------------------------------------------------------
0761c18d11 | David Lawrence Ramsey | 2010-09-21 15:56:47 -0500

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
eecc91ae48 | Mu | 2010-09-21 21:50:06 +0100

Correctly re-align the universe
The staircases in dis_mu were off-centre.
They are now on-centre.

--------------------------------------------------------------------------------
e2f21e1478 | David Lawrence Ramsey | 2010-09-21 15:23:47 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
20db80bbae | David Lawrence Ramsey | 2010-09-21 15:16:32 -0500

Remove now-obsolete references to twisted enslaved souls.

--------------------------------------------------------------------------------
75660363f9 | David Lawrence Ramsey | 2010-09-21 15:02:52 -0500

Remove MF_FAKE_UNDEAD from the list of masked polymorph flags.
Since the flag marks a monster as undead, and undead monsters can't be
polymorphed, it's redundant.

--------------------------------------------------------------------------------
9375cdb991 | David Lawrence Ramsey | 2010-09-21 14:39:37 -0500

Rename MF_HONORARY_UNDEAD to MF_FAKE_UNDEAD.

--------------------------------------------------------------------------------
c7a8849e58 | David Lawrence Ramsey | 2010-09-21 14:39:36 -0500

Replace the MF_GOING_BERSERK flag with a hash value.
It's only used for Duvessa, Dowan uses a hash value too, and the space
the flag took up can be reused.

--------------------------------------------------------------------------------
ec41cae869 | Adam Borowski | 2010-09-21 21:29:27 +0200

Use our usual distance formula for noise as well. [Mantis 2618]

--------------------------------------------------------------------------------
a1b65b577c | David Lawrence Ramsey | 2010-09-21 12:36:42 -0500

Add another typo fix.

--------------------------------------------------------------------------------
fea1f200ae | David Lawrence Ramsey | 2010-09-21 12:32:28 -0500

Rename Wiglaf's spellbook to MST_BK_OKAWARU.

--------------------------------------------------------------------------------
532572b2f9 | David Lawrence Ramsey | 2010-09-21 12:20:20 -0500

Tweak wording.

--------------------------------------------------------------------------------
980cfc1ef0 | David Lawrence Ramsey | 2010-09-21 11:41:30 -0500

Generalize the check for deep dwarves' damage shaving to use species.
Since the base type of all deep dwarves is MONS_DEEP_DWARF, this also
preserves previous behavior.

--------------------------------------------------------------------------------
761817043a | David Lawrence Ramsey | 2010-09-21 11:32:37 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
ba1dc38b2b | David Lawrence Ramsey | 2010-09-21 11:26:34 -0500

Set the species type properly for non-gold mimics.
All mimics now have the MONS_GOLD_MIMISC genus, but not the species.
Accordingly, update mons_is_mimic() to reflect this.  (l_mons.cc's mdef
for mimics already checked the genus instead of the species, so it's
consistent now.)

--------------------------------------------------------------------------------
9662f5bac4 | David Lawrence Ramsey | 2010-09-21 11:03:30 -0500

Typo fixes.

--------------------------------------------------------------------------------
47a8e6b7da | David Lawrence Ramsey | 2010-09-21 11:01:49 -0500

In mon-data.h, move Paracelsus to the non-human uniques section.

--------------------------------------------------------------------------------
267c191728 | David Lawrence Ramsey | 2010-09-21 11:00:16 -0500

Add missing break.

--------------------------------------------------------------------------------
45101f87b7 | Adam Borowski | 2010-09-21 16:15:45 +0200

Refactor monster vamp draining.

--------------------------------------------------------------------------------
a75ac4954a | Adam Borowski | 2010-09-21 15:45:29 +0200

Merge the new enchantments into ms_waste_of_time().

--------------------------------------------------------------------------------
c0014b294f | Adam Borowski | 2010-09-21 15:22:29 +0200

Temporarily disable "fruiting_plants" subvaults.
They were to be placed as regular vaults eligible for use elsewhere
_and_ here.  The first use needs to be reviewed by dpeg.

Please revert this once that is sorted out.

--------------------------------------------------------------------------------
7f14bf7bce | Adam Borowski | 2010-09-21 15:15:18 +0200

Not generate (unmerged) casket of three fates.
This is committed separately to mark this in case we do take the casket later.

--------------------------------------------------------------------------------
8d12bfac5f | Adam Borowski | 2010-09-21 15:15:18 +0200

Merge blue_anna's Dwarf Hall.  MANY ISSUES ARE STILL UNFIXED.
I'm putting this in to not stop others from fixing them, as I had to time
to tackle the issues I found in the last two days.  The list is available
on the wiki.

--------------------------------------------------------------------------------
ede4753bde | David Lawrence Ramsey | 2010-09-19 19:42:27 -0500

Always display ability upgrade messages in the proper sequence.
This fixes the corner case where enough piety is gained to go up more
than one breakpoint (e.g. the wizard mode piety change command).

--------------------------------------------------------------------------------
422d2c42f6 | David Lawrence Ramsey | 2010-09-19 19:19:22 -0500

Fxi the rest of the "^" screen description of Yred's unified ability.
Animating legions of the dead is now considered an upgrade message, and
will only be displayed as an actual message, not on the "^" screen.

--------------------------------------------------------------------------------
7e6fa438f8 | David Lawrence Ramsey | 2010-09-19 19:00:01 -0500

Make _abil_chg_message() properly handle all replacement strings.

--------------------------------------------------------------------------------
cdcade399b | David Lawrence Ramsey | 2010-09-19 18:58:43 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
de5a35f42b | David Lawrence Ramsey | 2010-09-19 18:46:26 -0500

Add spacing fix.

--------------------------------------------------------------------------------
71990ee254 | David Lawrence Ramsey | 2010-09-19 17:13:10 -0500

Shorten the Yred ability replacement string a bit.

--------------------------------------------------------------------------------
92e23fccbe | David Lawrence Ramsey | 2010-09-19 17:08:42 -0500

Remove now-unused code from adjust_abil_message().

--------------------------------------------------------------------------------
b42436436f | David Lawrence Ramsey | 2010-09-19 17:03:59 -0500

Partially fix the "^" screen description of Yred's unified ability.
Only one entry will now be shown for it, as expected.  It still needs a
message upon the ability upgrade, though.

--------------------------------------------------------------------------------
dbc89d7102 | David Lawrence Ramsey | 2010-09-19 13:45:55 -0500

Unify Yred's dead-animating invocations.
Animate Remains is now replaced with Animate Dead at the proper piety
threshold.  The costs of the two abilities are averaged (e.g. the MP
cost of either is 2), and the piety cost of Animate Dead is removed.

--------------------------------------------------------------------------------
613ef74a2f | David Lawrence Ramsey | 2010-09-19 13:22:04 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
9a0ee06052 | Robert Vollmert | 2010-09-19 19:35:18 +0200

Correct missile brand determination for damage boost. (#1993)

--------------------------------------------------------------------------------
61d7e3da79 | Robert Vollmert | 2010-09-19 19:23:41 +0200

Distinguish costly glow in Zin's messages. (#2588)
Also fixes heavy initial glow not costing piety (going from
no contamination to yellow or red glow).

There are now separate messages for:
  * no glow to gray glow (no piety loss, more harmless message)
  * increasing contamination within gray (piety loss)
  * increasing contamination with proper glow at the end (piety loss)

It's unclear to me what is meant to happen, but this seems
reasonable and is close to what was there before.

--------------------------------------------------------------------------------
f19bc3dfa0 | Robert Vollmert | 2010-09-19 18:51:43 +0200

Make spell failure glow anger Zin. (#2588)
This includes extra glow from miscast effects, which
could lead to double messaging.

--------------------------------------------------------------------------------
d2e14c311a | Robert Vollmert | 2010-09-19 18:12:49 +0200

Revert "Add noise level to spell description"
This reverts commit cb7513472897b423502a5d5be05daaebf9695782.

Pushed accidentally.

--------------------------------------------------------------------------------
50f9558106 | Robert Vollmert | 2010-09-19 18:08:52 +0200

Identify teleport control when aborting teleportation. (#2605)

--------------------------------------------------------------------------------
9c8080792f | Robert Vollmert | 2010-09-19 18:08:52 +0200

Make Geryon trample.
This makes it a bit less safe to lure him back to the dungeon.

--------------------------------------------------------------------------------
cb75134728 | Raphael Langella | 2010-09-19 18:07:59 +0200

Add noise level to spell description

--------------------------------------------------------------------------------
1eb1730ff7 | David Lawrence Ramsey | 2010-09-19 10:42:41 -0500

Fix the last instances of uniques' having the wrong species type.
Geryon, Dispater, Asmodeus, and Ereshkigal are hell lords.

(Note: Hell lords are currently only used for the genus and species of
these uniques, so they're a bare-bones implementation.  In terms of
monster data, they're basically pandemonium lords with a name change and
the M_NO_POLY_TO flag added.)

--------------------------------------------------------------------------------
c06bb05435 | Adam Borowski | 2010-09-19 17:20:04 +0200

Remove a bad unimplemented stub.  Fortunately, it had a wrong prototype.

--------------------------------------------------------------------------------
12fd659669 | Adam Borowski | 2010-09-19 17:20:04 +0200

Remove an unused (and unimplemented!) function.

--------------------------------------------------------------------------------
c4124e3d91 | Adam Borowski | 2010-09-19 16:52:55 +0200

Display a set of test messages in various scripts at start.
Don't worry if you can't see some of them, you may lack the necessary
fonts, and terminal emulators don't have full support for those either.

xterm can't do anything non-trivial (forgivable since it relies on ancient
bitmap fonts) or planes >0 (not so forgivable), gnome-terminal can't do
devanagari/arabic shaping, and most of Windows stuff can't do planes >0
or complex scripts at all.

For us, the following matters:
* plane 1 is of special interest to console, since it includes "mathematical
  letter-like symbols" which means a multitude of fancy letters, great for
  monster symbols.
* complex script shaping is useless unless we try translations, since
  monster/item/feature glyphs by definition are singular characters.
* CJK is no good for symbols, but should be easy to support since wrapping
  and trimming text needs to go though a function anyway.  It's a very low
  priority thing, though.
* combining characters: see CJK

--------------------------------------------------------------------------------
b7475dc6c8 | Robert Vollmert | 2010-09-19 11:45:25 +0200

Fix monster missile deflection description. (#2609)

--------------------------------------------------------------------------------
d210c5de82 | Robert Vollmert | 2010-09-19 11:36:49 +0200

Fix duplicate baileys in dungeon due to trowel card. (#1542)
This means that the trowel card will no longer generate more than
one bailey. But infinite baileys are broken anyway, and it's not
even clear how it's supposed to work.

--------------------------------------------------------------------------------
2c5f3a898d | Adam Borowski | 2010-09-19 11:34:14 +0200

Recolor the Zot "crystal pillars" to match tiles.

--------------------------------------------------------------------------------
dda0e40d3c | Adam Borowski | 2010-09-19 11:34:14 +0200

Fix traps on Zot:5 not being generated.

--------------------------------------------------------------------------------
b716bab2e8 | Raphael Langella | 2010-09-19 11:22:54 +0200

change spell_noise function (#2606)
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

noise_mod now modifies spell level instead of noise. This is
simpler to deal with, and could always be changed back if it
turns out to be not general enough.

--------------------------------------------------------------------------------
a596d75482 | David Lawrence Ramsey | 2010-09-19 01:33:29 -0500

Add ledtim's fix to make hellfire ignore monster AC, per Mantis 873.

--------------------------------------------------------------------------------
a07e1e50c2 | David Lawrence Ramsey | 2010-09-19 00:33:41 -0500

Remove obsolete references to recharging and weapons of electrocution.

--------------------------------------------------------------------------------
8f5e3c9773 | David Lawrence Ramsey | 2010-09-19 00:28:46 -0500

Remove more unused ability descriptions.
Enable Demonic Guardian and Disable Demonic Guardian are no longer used
due to changes in demonic guardian mechanics; Torment, Raise Dead,
Control Demon, Channeling, and Bolt of Draining were removed in the
demonspawn overhaul; and Evoke Sense Surroundings is no longer used due
to changes in sense surroundings mechanics.

--------------------------------------------------------------------------------
27cdbd6def | David Lawrence Ramsey | 2010-09-18 23:56:30 -0500

Remove constant parameter value from yred_drain_life().

--------------------------------------------------------------------------------
f02de604f2 | David Lawrence Ramsey | 2010-09-18 23:31:10 -0500

Use ability_name() everywhere instead of reading talent names directly.

--------------------------------------------------------------------------------
23561d3abf | David Lawrence Ramsey | 2010-09-18 22:50:14 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
5e27a86106 | David Ploog | 2010-09-19 01:57:08 +0200

Repair dpeg_entry_water_fire in entry_twisted (CoreXii), fixing #2600.

--------------------------------------------------------------------------------
e126ccb6d0 | Adam Borowski | 2010-09-19 01:49:44 +0200

Replace a couple of inappropriate speeches for charmed mons.
"Heaven" is bad for ghouls, mummies, necromancers (human), etc.

"Baby" with "diseases"... uhm... obvious, innit?

--------------------------------------------------------------------------------
6ed97a1bdf | Adam Borowski | 2010-09-19 01:23:09 +0200

Ring of charms: disallow transforms, try another formula for success.
The former would allow charming spiders while in spider form, liches
while necromutated, and so on.

The latter in turn made the ring useless for any monster with
non-negligible HD.  Even an xl 27 merfolk had minimal changes with
base 9 HD merfolk.  This formula is perhaps way too generous, but
it includes a hard cap.  Improvements welcome.

--------------------------------------------------------------------------------
54a8d98ba0 | Adam Borowski | 2010-09-18 23:12:56 +0200

Add a comment about unobvious cases of species being considered the same.

--------------------------------------------------------------------------------
874b0d4e2f | Adam Borowski | 2010-09-18 22:46:15 +0200

Give the ring of charms a more thematic (but not as informative) description.

--------------------------------------------------------------------------------
b57a0c08e7 | Adam Borowski | 2010-09-18 22:46:15 +0200

Don't add an unused ARTP for the ring of charms, no other fixedart does this.
This is intended for general artefacts properties only.  Adding a special
mark to fixedarts would be a good idea, but adding 14 ARTPs for that is not
a good idea.

--------------------------------------------------------------------------------
49321baaea | Roberto | 2010-09-18 22:45:23 +0200

Add blue-anna's ring of charms.

--------------------------------------------------------------------------------
e599d7c2c2 | Adam Borowski | 2010-09-18 21:00:50 +0200

Fix saves on big-endian systems.

--------------------------------------------------------------------------------
2f6f7b8e78 | David Lawrence Ramsey | 2010-09-18 13:47:47 -0500

Remove unused "Gate Yourself to Pandemonium" ability description.

--------------------------------------------------------------------------------
ff4bfaa766 | David Lawrence Ramsey | 2010-09-18 12:51:19 -0500

Typo fix.

--------------------------------------------------------------------------------
c8737ab242 | Jesse Luehrs | 2010-09-17 17:41:30 -0500

mark Eos as being a morningstar (Eronarn)

--------------------------------------------------------------------------------
bde7c3c007 | David Lawrence Ramsey | 2010-09-17 10:28:39 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
81597d3a42 | David Lawrence Ramsey | 2010-09-17 09:50:55 -0500

Treat randart demonic weapons with the holy wrath brand as conflicting.

--------------------------------------------------------------------------------
1f937b8e60 | David Lawrence Ramsey | 2010-09-17 08:35:21 -0500

Add missing spaces to the Confusing Touch status message.
This fixes the other issue mentioned in Mantis 1598.

--------------------------------------------------------------------------------
de7f74c9d9 | Adam Borowski | 2010-09-17 13:26:09 +0200

Document the limitation of save chunk name length of 4 characters.

--------------------------------------------------------------------------------
0f2125cfd3 | Adam Borowski | 2010-09-17 12:37:32 +0200

Use mons_is_elven_twin() to handle polymorphed D&D. (due)

--------------------------------------------------------------------------------
1c7acef3b6 | Adam Borowski | 2010-09-17 12:10:27 +0200

Make Dowan and Duvessa cheat about shafts.
Weapons of chaos will simply do nothing.
Shaft traps will act as if they legitimately avoided it.

Since the player can't tell there's anything out of the ordinary,
we can get away with skipping the considerable effort of handling
this, especially with quirks like they both landing on the same level.

--------------------------------------------------------------------------------
ada405a888 | Robert Vollmert | 2010-09-17 10:53:53 +0200

More correct Vehumet range extension description. (#2599)
It now concerns "expensive destructive magics". The suggested "strongest"
may read better, but then you might think it always affects some of the
spells you've memorised.

--------------------------------------------------------------------------------
61026d4aa9 | Robert Vollmert | 2010-09-17 10:48:08 +0200

Add a fixme comment.

--------------------------------------------------------------------------------
86ea48af2b | Robert Vollmert | 2010-09-17 10:44:56 +0200

Pass weapon into monster generation code for Tukima's Dance.
This seems to be a bit cleaner, and allows fixing issue #2597
(incorrect "comes into view" message when Xom animates your
weapon during a delay).

The message order is still wrong, but that's a different issue.

--------------------------------------------------------------------------------
c150a30e66 | Robert Vollmert | 2010-09-17 09:23:58 +0200

Fix confusing touch status display (missing "break;"). (#2598)

--------------------------------------------------------------------------------
c0ab6dfc74 | Jude Brown | 2010-09-17 17:20:55 +1000

Finish implementing spirits and their death-summons.
Yes, monsters created by their deaths *are* permanent.

--------------------------------------------------------------------------------
e65b29e9f2 | Adam Borowski | 2010-09-17 01:56:35 +0200

Handle filenames with non-ascii characters.
Only iostreams functions are left; on Windows they don't support Unicode
so a workaround will be needed.

--------------------------------------------------------------------------------
0870cb3860 | David Lawrence Ramsey | 2010-09-16 11:32:06 -0500

Fix one more instance of a unique's having the wrong species type.
The Serpent of Hell is a dragon.

Not fixed yet: Geryon, Dispater, Asmodeus, and Ereshkigal.

--------------------------------------------------------------------------------
0fac9b0ec9 | Adam Borowski | 2010-09-16 16:07:06 +0200

Basic charset conversions: local<->utf8<->utf16.
Their intended use is:
* local: config files, morgues.  File names (non-Windows).
* utf8: everything internal.  Data files (des, database).
* utf16: (Windows only) file names and similar syscalls.

On Unix systems, the "local" charset is in a vast majority of cases UTF-8,
but we can't rely on that and have to convert anyway.

--------------------------------------------------------------------------------
5c062a1c50 | David Lawrence Ramsey | 2010-09-16 02:49:05 -0500

Fix a few more instances of uniques' having the wrong species type.
The Lernaean hydra is a hydra, and the Royal Jelly is a jelly.

Not fixed yet: the Serpent of Hell, Geryon, Dispater, Asmodeus, and
Ereshkigal.

--------------------------------------------------------------------------------
5b1b495a50 | David Lawrence Ramsey | 2010-09-15 23:03:09 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
da990fb024 | David Lawrence Ramsey | 2010-09-15 21:07:33 -0500

Typo fix.

--------------------------------------------------------------------------------
e29ef96e23 | David Lawrence Ramsey | 2010-09-15 20:40:09 -0500

Make Kiku properly accept your undead slaves' kills of demons.
This matches the description of his likes in the "^" screen.

--------------------------------------------------------------------------------
1e9506083b | Adam Borowski | 2010-09-16 01:12:56 +0200

Fix a shriek when Xom casts Excrutiation Wounds while you're silenced.
(Yeah, this is such a common occurence...)

--------------------------------------------------------------------------------
481a0e751b | Adam Borowski | 2010-09-16 01:05:27 +0200

Properly handle igniting spellbooks under clouds or features [411]

--------------------------------------------------------------------------------
0f0de554bf | Robert Vollmert | 2010-09-16 00:18:35 +0200

Fix default god choice not being read correctly. (#2595)

--------------------------------------------------------------------------------
140157d4d2 | Robert Vollmert | 2010-09-16 00:06:51 +0200

Make mephitic cloud fire tracer also if self-aimed.

--------------------------------------------------------------------------------
4794b2c789 | Robert Vollmert | 2010-09-16 00:06:28 +0200

Make player tracer also handle self-targeting.
It's unclear how much this breaks.

--------------------------------------------------------------------------------
cd8e5791a8 | Robert Vollmert | 2010-09-15 23:58:24 +0200

Don't prompt for targeting self with some clouds. (#2487)
There was a "really target self" prompt that was entirely
independent of player state, which is clearly wrong. Instead,
that should be handled by proper cloud tracers.

There's now an extra spell flag that allows bypassing that
prompt, applied to mephitic cloud, poisonous cloud and
evaporate for now.

--------------------------------------------------------------------------------
83352def2b | Robert Vollmert | 2010-09-15 23:28:34 +0200

Move Mara's bolt of fire out of the self-enchantment slot.
Fixes Mara shooting fire bolts through allies.

--------------------------------------------------------------------------------
7dd2c6e72e | Robert Vollmert | 2010-09-15 23:28:33 +0200

Remove Sleep from Aizul's self-enchantment slot. (#2280)

--------------------------------------------------------------------------------
6f4e6f8df7 | David Lawrence Ramsey | 2010-09-15 16:13:46 -0500

Add more spacing fixes.

--------------------------------------------------------------------------------
5221dd2bd2 | David Lawrence Ramsey | 2010-09-15 16:07:50 -0500

Add another spacing fix.

--------------------------------------------------------------------------------
c979a90bc9 | Robert Vollmert | 2010-09-15 22:46:27 +0200

Disable ':'-key when just looking. (#1694)

--------------------------------------------------------------------------------
115a5a41e6 | David Lawrence Ramsey | 2010-09-15 15:43:54 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
3c73f9da83 | David Lawrence Ramsey | 2010-09-15 15:32:08 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
54c8d65e93 | Robert Vollmert | 2010-09-15 21:42:14 +0200

Fix sleeping trapdoor spiders submerging. (#33)
They will no longer submerge while sleeping (e.g. after being hibernated).
They are usually placed submerged, and if they fall asleep while the player
is away, they will usually be submerged again.

--------------------------------------------------------------------------------
1a0d17b9eb | David Lawrence Ramsey | 2010-09-15 14:07:25 -0500

Fix inaccurate message and comments.

--------------------------------------------------------------------------------
e5a69e30e4 | David Lawrence Ramsey | 2010-09-15 13:46:36 -0500

Fix inaccurate comments.

--------------------------------------------------------------------------------
4eff0e800d | David Lawrence Ramsey | 2010-09-15 13:40:05 -0500

Fix inaccurate message.

--------------------------------------------------------------------------------
065d7222d6 | David Lawrence Ramsey | 2010-09-15 13:33:39 -0500

Comment fixes.

--------------------------------------------------------------------------------
73f84f826b | David Lawrence Ramsey | 2010-09-15 13:28:55 -0500

Restrict OgMo and OgTm.
The aptitudes overhaul made them worse at unarmed combat, so these
aren't as good choices as they used to be.

--------------------------------------------------------------------------------
a44542b521 | Robert Vollmert | 2010-09-15 19:56:44 +0200

Handle missing portal vault levels more gracefully.
There's now a map "broken_portal" with various kinds of stairs back to the
dungeon that should help make broken features like the Trowel card not break
games.

Some weird code for maybe generating normal levels if no maps were found was
removed.

Fixes issue #2576 (the crash, not that Trowel can run out).

--------------------------------------------------------------------------------
e5533bbaf3 | Robert Vollmert | 2010-09-15 19:09:35 +0200

A better See Invisible timeout message. (RjY)

--------------------------------------------------------------------------------
b39eb86e85 | Robert Vollmert | 2010-09-15 19:05:58 +0200

Timeout information for See Invisible.

--------------------------------------------------------------------------------
33d6acdff3 | Robert Vollmert | 2010-09-15 19:05:58 +0200

Timeout information for temporary resist cold, fire, poison. (#1793)

--------------------------------------------------------------------------------
b850ada417 | David Lawrence Ramsey | 2010-09-15 11:56:02 -0500

Fix a few more instances of uniques' having the wrong species type.
Mnoleg, Lom Lobon, Cerebov, and Gloorx Vloq are pandemonium demons (both
genus and species).  This shouldn't cause any problem with random
Pandemonium demons defined by ghost_demon structs, since the checks for
those rely on monster->type, which doesn't apply to these four.

Not fixed yet: the Laernaean hydra, the Serpent of Hell, the royal
jelly, Geryon, Dispater, Asmodeus, and Ereshkigal.  I wonder if there
should be a MONS_HELL_DEMON (described as "hell lord") for the last four
of these.

--------------------------------------------------------------------------------
6304eb1755 | Robert Vollmert | 2010-09-15 18:52:45 +0200

Make only heavy armour remove Ozocubu's armour on wearing.
This partially reverts commit 5d5b826dcbd8e8281190f4c8673af953091a4118.

--------------------------------------------------------------------------------
ebd57c8ed8 | Robert Vollmert | 2010-09-15 18:50:44 +0200

Fix stalker description typo. (MarvinPA)

--------------------------------------------------------------------------------
5d5b826dcb | Robert Vollmert | 2010-09-15 18:48:00 +0200

Don't make wearing (or unmelding) armour remove Ozocubu's armour. (#982)
It's hardly a significant effect, and this is easier than removing
the inconsistencies (e.g. no effect when removing armour).

--------------------------------------------------------------------------------
562e015b0e | Robert Vollmert | 2010-09-15 18:34:42 +0200

Fix blood breaking when eaten by jellies. (#2435)

--------------------------------------------------------------------------------
d11d8d3c84 | David Lawrence Ramsey | 2010-09-15 11:27:18 -0500

Fix a few instances of uniques' having the wrong species type.
Specifically, their species type was set to their unique monster type,
so that of a corpse drop or zombification was forced, you'd get e.g.
Antaeus the Antaeus corpse.

Changes, based on monster descriptions: Antaeus is a titan, Dissolution
is a jelly, Grinder is a shadow imp, and Roxanne is a statue.

Not fixed yet: the Laernaean hydra, the Serpent of Hell, the royal
jelly, Mnoleg, Lom Lobon, Cerebov, Gloorx Vloq, Geryon, Dispater,
Asmodeus, and Ereshkigal.

--------------------------------------------------------------------------------
18c388dccb | Robert Vollmert | 2010-09-15 18:16:04 +0200

Fix dispersal and Lugonu's bend space blinking monsters more than once. (#2434)

--------------------------------------------------------------------------------
def439bc55 | Robert Vollmert | 2010-09-15 17:36:31 +0200

Make Fedhas care about trees burned down in forest fires. (#2457)

--------------------------------------------------------------------------------
332de01836 | Robert Vollmert | 2010-09-15 17:16:35 +0200

Fix wizard mode &P crash. (#2094)

--------------------------------------------------------------------------------
ba5b54d212 | Robert Vollmert | 2010-09-15 16:57:21 +0200

Fix cursor placement with messages_at_top.

--------------------------------------------------------------------------------
409650e3a2 | Robert Vollmert | 2010-09-15 16:57:21 +0200

Update stair emphasis on level load. (#2583)
This fixes more stair highlighting misbehaviour. In particular, the
stair you came down wasn't updated on the previous level until you
saw it again.

--------------------------------------------------------------------------------
86c531a076 | Robert Vollmert | 2010-09-15 16:57:20 +0200

Fix passwall and teleportation, trampling. (#2582)
Passwall is now interrupted exactly like stair delays, and
trampling interrupts like teleportation and nets.

Stair delays will now be interrupted properly when trampled,
instead of failing because the player position changed.
You can no longer be trampled from one stair to the next
and ascend that instead.

It's not completely clear to me that this is all implemented
optimally, but if throwing nets pretend to be teleportation,
surely trampling can, too.

--------------------------------------------------------------------------------
b52972c937 | David Lawrence Ramsey | 2010-09-15 09:56:26 -0500

Remove Yred's twisted enslaved souls, as they're hackish.
All enslaved souls are intact now, and Invocations is now only used for
the length of the soul marking.

As a side effect, this fixes Mantis 2478.

--------------------------------------------------------------------------------
90ff876f93 | Jude Brown | 2010-09-16 00:49:40 +1000

Partially implement spirits, though not fully.
They still need to summon a top-tier holy monster when they day, and
need better indications of how far along they are to actually carking
it; currently their message shifts from "fading away" to "mostly faded
away" when they're less than 20 or so turns from completely going.

They're implemented as constantly fleeing, but are quite slow. You can't
actually corner them ever, which may be a problem from an interface
point of view. It's not necessarily the best implementation, but it did
the trick... might have to change. :)

--------------------------------------------------------------------------------
785ef0ada1 | Robert Vollmert | 2010-09-15 15:36:58 +0200

Abort scrolls used on items early if none are available.
Fixes non-bug #2584.

--------------------------------------------------------------------------------
863a2ea4ee | Robert Vollmert | 2010-09-15 15:36:54 +0200

Fix enchant weapon handling of melded weapons.
Not sure those actually exist, but this is better anyhow.

--------------------------------------------------------------------------------
e955ad5db9 | Robert Vollmert | 2010-09-15 11:19:52 +0200

Write negative stats to logfile.
Previously, the logfile had max(actual stat, 0).

--------------------------------------------------------------------------------
2a40ced419 | Robert Vollmert | 2010-09-15 11:19:52 +0200

Don't use light red for stat colours by default.
Light red marks zero stat status. We could also add a status light
if desired.

--------------------------------------------------------------------------------
f7140ee764 | David Lawrence Ramsey | 2010-09-15 00:57:47 -0500

Move the Petrify spell tile from enchantments to earth.

--------------------------------------------------------------------------------
f38ef2ba31 | David Lawrence Ramsey | 2010-09-14 16:53:42 -0500

Add another spacing fix.

--------------------------------------------------------------------------------
ed74f85d62 | David Lawrence Ramsey | 2010-09-14 16:35:26 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
7dc092ad2f | David Lawrence Ramsey | 2010-09-14 15:58:50 -0500

Remove now-unused parameters from yred_make_enslaved_soul().

--------------------------------------------------------------------------------
764b2ca206 | Adam Borowski | 2010-09-14 22:36:05 +0200

Fix a rounding error to make TSO halo look better.
The radius was restricted to squares of full integers, producing a
"bloated diamond", looking worse than X^2+1 we use in other places.
This version allows intermediate radii, reducing sudden jumps.

--------------------------------------------------------------------------------
1b88e0b9eb | David Lawrence Ramsey | 2010-09-14 15:25:57 -0500

Reorganize the flags enum when binary compatibility breaks.
Also, add masks for the melee and spellcasting flags, and use them where
applicable.

--------------------------------------------------------------------------------
ce768fa46d | David Lawrence Ramsey | 2010-09-14 14:59:21 -0500

Properly disable MF_FIGHTER and MF_ARCHER for newly defined zombies.

--------------------------------------------------------------------------------
c856ca52bc | David Lawrence Ramsey | 2010-09-14 14:18:57 -0500

Simplify further.

--------------------------------------------------------------------------------
e0acc2d43a | David Lawrence Ramsey | 2010-09-14 13:50:49 -0500

Clean up enslaved intact souls a bit more.
Manually binding melee and spell flags is redundant, as they were bound
upon monster creation.

--------------------------------------------------------------------------------
e52128f7e3 | David Lawrence Ramsey | 2010-09-14 13:40:58 -0500

Preserve the M_FIGHTER and M_ARCHER flags along with M_TWOWEAPON.
All these flags now have bindable equivalents, and Yred's intact
enslaved souls preserve them, so that e.g. enslaved deep elf master
archers behave properly.  Polymorphed monsters also preserve them for
now.  Other zombified types are unchanged, and still preserve only
M_TWOWEAPON.

Note that the bindable flag MF_FIGHTER replaces MF_DIVINE_PROTECTION,
since the latter is unused.  Also, unlike the spellcasting/priestly
flags, none of these three flags can be set in vaults.

--------------------------------------------------------------------------------
67abf6bb03 | David Lawrence Ramsey | 2010-09-14 12:40:32 -0500

Simplify.

--------------------------------------------------------------------------------
768b600e1e | Robert Vollmert | 2010-09-14 18:03:57 +0200

Stalkers as transmutations-based stabbers.
TGW's design: 
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:background:stalker

- Petrify is now Earth/Tmut.
- New Book of Stalking.
     Fulsome Distillation         Transmutation/Necromancy      1
     Evaporate                    Fire/Transmutation            2
     Passwall                     Transmutation/Earth           3
     Petrify                      Transmutation/Earth           4
     Dig                          Transmutation/Earth           4
- Adapt restrictions slightly, though those may need tweaking.

Projected Noise (Party Tricks) and Sure Blade (Tukima) are a bit
rare now.

--------------------------------------------------------------------------------
69689ea3b2 | Robert Vollmert | 2010-09-14 16:21:50 +0200

Make the wield mass check less harsh for non-weapons.
It's now at 50 aum, so anyone can wield the orb or large skeletons
(so bone shards isn't affected).

--------------------------------------------------------------------------------
02eede0506 | Robert Vollmert | 2010-09-14 16:01:13 +0200

Allow swapping to large rocks when sandblast is memorised.

--------------------------------------------------------------------------------
d15c910eca | Robert Vollmert | 2010-09-14 15:59:18 +0200

Make large rocks do extra damage with sandblast.
They do up to 3d20 instead of 2d20 for stones. Can only be
used by trolls and ogres.

--------------------------------------------------------------------------------
a11d1da322 | Robert Vollmert | 2010-09-14 15:39:57 +0200

Make wield mass check apply to all items.
In particular, don't let non-large species wield large rocks.
Side effect is that they can't wield the orb, but who cares.

--------------------------------------------------------------------------------
db5d9065f9 | Robert Vollmert | 2010-09-14 13:56:05 +0200

Revert "Fix a dgamelaunch compile warning."
This reverts commit d2cd28c2600acebdeac29151f4c9d885ac686d53.

Breaks mingw compile. Conditionally defining that function to
quiet unused-static-function warnings is probably not worth
the effort.

--------------------------------------------------------------------------------
d61fb69e84 | Robert Vollmert | 2010-09-14 11:14:58 +0200

Update stair info before viewwindow() when taking stairs.
Fixes taken stairs staying emphasised until they come into view again.

--------------------------------------------------------------------------------
c105c3c209 | David Lawrence Ramsey | 2010-09-14 01:36:57 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
c8fc00f195 | David Lawrence Ramsey | 2010-09-14 01:30:04 -0500

Make the zombification message from chaos effects match the reaping one.

--------------------------------------------------------------------------------
217327d66f | David Lawrence Ramsey | 2010-09-14 01:29:15 -0500

Revert "Simplify and consolidate zombie messages from chaos effects and 
reaping."
This reverts commit bf85da2f4cf058b177f0deef86bdf2dec75fea63.

(simple_monster_message() isn't appropriate here after all.)

--------------------------------------------------------------------------------
2596508c75 | David Lawrence Ramsey | 2010-09-14 01:21:51 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
bf85da2f4c | David Lawrence Ramsey | 2010-09-14 01:07:22 -0500

Simplify and consolidate zombie messages from chaos effects and reaping.

--------------------------------------------------------------------------------
8919768ce3 | Jude Brown | 2010-09-14 14:29:42 +1000

Fix wizmode monster detection not marking monsters as detected.
Instead, it was merely copying them to map_knowledge, which is now not
enough, as they also need the map_cell flag marked as detected monster
for it to display properly.

--------------------------------------------------------------------------------
804d730614 | Jude Brown | 2010-09-14 13:34:10 +1000

Make gloom clouds function as previously.
Now instead of purple '#' they merely mask the colour of the beneath
symbol. Their tiles functionality has not changed. This may introduce
minor bugs with colouring and display, so this should be kept in mind
and looked to as a starting point for any newly reported colouring
issues.

--------------------------------------------------------------------------------
5b61c76445 | David Lawrence Ramsey | 2010-09-13 21:40:52 -0500

Generalize the god mention in a Dissolution priestly cast message.

--------------------------------------------------------------------------------
a8912510f1 | David Lawrence Ramsey | 2010-09-13 16:35:13 -0500

Add another comment fix.

--------------------------------------------------------------------------------
37140c87bf | Robert Vollmert | 2010-09-13 22:41:53 +0200

Alright, give missiles of flame / frost some bonus damage. (#1993)

--------------------------------------------------------------------------------
e9ae46a3b6 | David Lawrence Ramsey | 2010-09-13 15:32:38 -0500

Add formatting fix.

--------------------------------------------------------------------------------
2625e3306c | David Lawrence Ramsey | 2010-09-13 15:31:38 -0500

Comment fix.

--------------------------------------------------------------------------------
cfe6668725 | Robert Vollmert | 2010-09-13 22:07:12 +0200

Summon placement fixes.
The code is still a horrible hack, but these modifications fix some
old bugs, or at least strange features.

- Animate dead no longer animates through walls (unless a monster
  happens to be standing on the corpse...) (#801)
- Similarly, earth elementals aren't placed behind walls.
- Monsters no longer summon out of their LOS, but still through
  glass.

--------------------------------------------------------------------------------
f02d7d3917 | David Lawrence Ramsey | 2010-09-13 14:43:37 -0500

Fix Mantis 2577.
Make the MP bonus of Elyvilon's Divine Vigour scale the same way the HP
bonus does (5% every 3 levels of Invocations).

--------------------------------------------------------------------------------
086eb4448f | Robert Vollmert | 2010-09-13 21:20:24 +0200

Remove strange extra blank lines in body armour description. (#1766)

--------------------------------------------------------------------------------
7c9f31addd | David Lawrence Ramsey | 2010-09-13 13:59:49 -0500

Fix compilation.

--------------------------------------------------------------------------------
d4cb99fa91 | David Lawrence Ramsey | 2010-09-13 13:56:10 -0500

Don't treat contaminated chunks as clean for ghouls.
Ghouls have a greater chance of positive effects from contaminated
chunks, and the amulet of the gourmand makes chunks contaminated, in any
case, so this seems to be an oversight.

Also, the prefer_safe_chunks option no longer applies to undead, as
ghouls are the only undead that eat chunks, and both clean and
contaminated chunks are safe for them.

--------------------------------------------------------------------------------
fc9a8301cd | Robert Vollmert | 2010-09-13 20:33:10 +0200

Update Jiyva ability description for resist corrosion effect.
The conservation effect seems to not be mentioned.

--------------------------------------------------------------------------------
002ebe0150 | Robert Vollmert | 2010-09-13 20:29:27 +0200

Simplify rCorr output.

--------------------------------------------------------------------------------
0bb96d32ca | Robert Vollmert | 2010-09-13 20:29:27 +0200

Remove Jiyva's duplicate resist corrosion.
Jiyva worshippers now effectively wear an amulet of resist
corrosion at appropriate piety. This also means that wearing
rCorr doesn't have extra benefit.

--------------------------------------------------------------------------------
9418683621 | Robert Vollmert | 2010-09-13 20:29:26 +0200

Remove Jiyva's duplicate preservation. (#1672)
Jiyva no longer provides the "amulet of conservation" effect
and only keeps the random piety-based conservation effect
that includes protection from harpies.

--------------------------------------------------------------------------------
30ed2e36e5 | Robert Vollmert | 2010-09-13 20:29:26 +0200

Remove redundant and confusing use of floor().

--------------------------------------------------------------------------------
4d725fb26f | David Lawrence Ramsey | 2010-09-13 13:19:02 -0500

Add missing default case.

--------------------------------------------------------------------------------
3673528108 | David Lawrence Ramsey | 2010-09-13 13:07:08 -0500

Don't do the evocable-berserk hunger check if undead.
It's redundant, since player::can_go_berserk() handles all undead cases.

--------------------------------------------------------------------------------
419f832369 | David Lawrence Ramsey | 2010-09-13 12:52:49 -0500

Fix another message inconsistency.

--------------------------------------------------------------------------------
c988e16f9c | David Lawrence Ramsey | 2010-09-13 12:49:29 -0500

Allow ghouls to evoke invisibility when below satiated.
They can't starve to death directly, like vampires, who get the same
exception, and they already bypass the hunger check for most evocable
abilities anyway for the same reason.

--------------------------------------------------------------------------------
b8c3367be7 | Robert Vollmert | 2010-09-13 19:12:40 +0200

Correct tiles minimap bounds. (#2090)
It looks correct now. I don't guarantee the code is right however.

--------------------------------------------------------------------------------
b20201d14a | Robert Vollmert | 2010-09-13 19:12:37 +0200

Recolour everything during berserk in tiles builds. (#2523)

--------------------------------------------------------------------------------
bac72c9d26 | Robert Vollmert | 2010-09-13 18:08:01 +0200

Write some active status effects to the log file.
They're in a comma-separated field and use the same text as the @:-line of the
%-screen for now. I made a somewhat arbitrary selection of effects. It's not
clear we shouldn't just save all effects.

--------------------------------------------------------------------------------
c2210b76fa | Robert Vollmert | 2010-09-13 18:08:01 +0200

Restore burden info in the %-screen.

--------------------------------------------------------------------------------
45a3f84ffa | David Lawrence Ramsey | 2010-09-13 10:47:22 -0500

Remove unused variable.

--------------------------------------------------------------------------------
65d04d204b | David Lawrence Ramsey | 2010-09-13 10:38:01 -0500

Make "You're too hungry." a canned message.

--------------------------------------------------------------------------------
242714cf84 | David Lawrence Ramsey | 2010-09-13 10:32:21 -0500

Fix punctuation inconsistency.

--------------------------------------------------------------------------------
2afc335a84 | David Lawrence Ramsey | 2010-09-13 10:31:13 -0500

Clean up dc-mon.txt a bit more, and move angels/daevas to dc-mon/holy.

--------------------------------------------------------------------------------
54d51ac6a6 | Eino Keskitalo | 2010-09-13 18:23:55 +0300

Use feature_description correctly, as per comments in #757.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6e72391daa | Robert Vollmert | 2010-09-13 16:41:19 +0200

Disallow use of staff of channeling when starving. (#2575)

--------------------------------------------------------------------------------
7a4322fc31 | Robert Vollmert | 2010-09-13 16:41:19 +0200

Remove shatter damage to transformed casters.
This prevents synergy between the two highest Earth/Tmut spells
(lots of damage when shattering in statue form), and considering
the statue form slowness, it's not really necessary with respect
to balance.

Also, it's hard to explain why shatter should not hurt an
untransformed caster.

If shatter were too strong, the other option would be to damage
the player even when untransformed.

--------------------------------------------------------------------------------
70ba3a5c50 | Adam Borowski | 2010-09-13 16:38:32 +0200

Don't assert-crash the arena, one of the factions are "pets".

--------------------------------------------------------------------------------
a69893448b | David Lawrence Ramsey | 2010-09-13 09:33:40 -0500

Add punctuation fixes.

--------------------------------------------------------------------------------
aa814ec7b7 | Eino Keskitalo | 2010-09-13 16:40:53 +0300

Fix water colouring in sewer_sea and other tweaks to it (st), #2304
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
cf2fb45b14 | Adam Borowski | 2010-09-13 12:25:41 +0200

Add missing desc for vanilla spiders.

--------------------------------------------------------------------------------
8bc6e6341e | Robert Vollmert | 2010-09-13 12:13:45 +0200

Auto-id items of wizardry when wearing with spellcasting skills. (#290)
This may not handle artefact rings of wizardry correctly (but the
same is true for a lot of other base types), and does not identify
the ring when you gain skills while wearing.

--------------------------------------------------------------------------------
59837c5378 | Robert Vollmert | 2010-09-13 12:13:45 +0200

player_spell_skills() counts if the player has any spellcasting skills.

--------------------------------------------------------------------------------
af5323ffe1 | Adam Borowski | 2010-09-13 12:10:12 +0200

Make jumping spiders leap not blink.
They used blink_{away,close}(), which already disallows blinking through
glass, so all that needed to be done was adjusting the message and removing
the tloc cloud.

--------------------------------------------------------------------------------
4322545b69 | Adam Borowski | 2010-09-13 11:49:05 +0200

Update the old-style glyph settings for nagas.

--------------------------------------------------------------------------------
ff2ff9a259 | Adam Borowski | 2010-09-13 11:43:55 +0200

Add a comment for targetting enums.

--------------------------------------------------------------------------------
70450cb074 | Robert Vollmert | 2010-09-13 11:33:24 +0200

N glyph changes. (#2480)
Change guardian serpents from lightgreen N to white S.
Change Aizul from lightmagenta N to lightmagenta S.
Change salamanders from lightred S to lightred N.
Change greater nagas from lightred N to yellow N.

Don't allow guardian serpents to open doors (but allow Aizul to do so).

--------------------------------------------------------------------------------
b41c98120c | Robert Vollmert | 2010-09-13 11:22:16 +0200

Allow Kenku to stop flying. (#988)
Kenku permanent flight now uses the same DUR_LEVITATION > 1 "hack"
as permanent levitation.

--------------------------------------------------------------------------------
f672540577 | Adam Borowski | 2010-09-13 11:02:57 +0200

Remove an obsolete check for attacking god gifts.
This made sense before the delayed monster gift placement.  Now, it will
trigger just in the case when your attack speed is good enough to get a
turn before the newly created monster gets to move and get unmarked as
MF_JUST_SUMMONED, to, after 0859ab3d, do nothing.

--------------------------------------------------------------------------------
d3c1c683d7 | Adam Borowski | 2010-09-13 11:02:57 +0200

Remove an obsolete function.

--------------------------------------------------------------------------------
a9c49d0719 | Adam Borowski | 2010-09-13 11:02:57 +0200

Give a nicer message for an empty save -- it's not really corrupted.

--------------------------------------------------------------------------------
0dbbb82c9d | Robert Vollmert | 2010-09-13 11:01:59 +0200

Annotate items with singular base name for stash search. (#2571)
In particular, searching for "royal jelly" will now show
stacks of royal jellies.

--------------------------------------------------------------------------------
4dd2a0aff2 | Robert Vollmert | 2010-09-13 10:50:33 +0200

Rings of teleport control are useful in sprint.
For semi-controlled blink at least.

--------------------------------------------------------------------------------
489b98ca24 | MarvintheParanoidAndroid | 2010-09-13 10:49:46 +0200

Amulet of rage isn't useless with Trog
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
b89289bea6 | MarvintheParanoidAndroid | 2010-09-13 10:47:04 +0200

Mention restore abilities in RJ description.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
d7e3af8e66 | Robert Vollmert | 2010-09-13 10:29:38 +0200

Remove possible infinite loop in _place_specific_feature.
Instead of a handrolled loop, rely on dgn_random_point_in_bounds. Veto
level if not successful.

Somewhat fixes issue #839.

--------------------------------------------------------------------------------
c6423be0de | Robert Vollmert | 2010-09-13 10:27:36 +0200

Optimize dgn_random_point_in_bounds for the common case.
Try a bit harder to randomly find a floor tile before searching
exhaustively.

--------------------------------------------------------------------------------
2a458260dc | Robert Vollmert | 2010-09-13 10:01:09 +0200

Fix a wizard mode spellcasting crash. (#537)

--------------------------------------------------------------------------------
53ce7f3a2c | Robert Vollmert | 2010-09-13 09:51:28 +0200

Fix crash for wizard mode generated rods. (#1755)

--------------------------------------------------------------------------------
d2cd28c260 | Robert Vollmert | 2010-09-13 09:51:28 +0200

Fix a dgamelaunch compile warning.

--------------------------------------------------------------------------------
2f6cf0cea8 | David Lawrence Ramsey | 2010-09-12 18:28:47 -0500

Add spacing fix.

--------------------------------------------------------------------------------
8475ff6e6d | David Lawrence Ramsey | 2010-09-12 18:25:13 -0500

Clarify the description of "Enslave Soul" a bit more.

--------------------------------------------------------------------------------
d1047be394 | David Lawrence Ramsey | 2010-09-12 18:24:22 -0500

Properly preserve the spells of Yred's enslaved intact souls again.

--------------------------------------------------------------------------------
0859ab3dd3 | Robert Vollmert | 2010-09-12 23:49:09 +0200

Remove an error message. (#2308)
That situation can occur naturally as shown in the bug report, and
I don't see how it does any harm.

--------------------------------------------------------------------------------
179ebea651 | Robert Vollmert | 2010-09-12 23:22:56 +0200

Limit lamp of fire and fan of air elementals. (#2222)
They get a skill penalty of three instead of the stone of earth elemental's
5 since the skill requirement is higher, the elementals aren't quite as
strong and in the case of fire, they're limited by available flames.

--------------------------------------------------------------------------------
6ebee6f93a | Robert Vollmert | 2010-09-12 23:09:55 +0200

Make equipping armour of see invisible toggle autopickup. (#2539)

--------------------------------------------------------------------------------
bb5b9d9876 | Jesse Luehrs | 2010-09-12 16:07:58 -0500

don't allow _determine_chunk_type to return CE_POISON_CONTAM

--------------------------------------------------------------------------------
e78d6beacb | Robert Vollmert | 2010-09-12 22:47:52 +0200

Make neutral monsters not react to ME_ALERT.
They start wandering instead of seeking you, as monsters with ATT_NEUTRAL
did already.

Fixes Pikel's slaves following the player.

--------------------------------------------------------------------------------
ecc1fae9e4 | Robert Vollmert | 2010-09-12 22:47:51 +0200

Make good and strict neutral monsters not choose nearby foes. (#2423)

--------------------------------------------------------------------------------
761089169c | David Lawrence Ramsey | 2010-09-12 15:17:59 -0500

Simplify.

--------------------------------------------------------------------------------
58957387e4 | David Lawrence Ramsey | 2010-09-12 15:17:58 -0500

Rename drop_any_item() to is_any_item().

--------------------------------------------------------------------------------
5aaa7eafef | Robert Vollmert | 2010-09-12 22:07:30 +0200

Change monster Zot trap messaging. (#427)
You now get a Zot sound when a friendly monster is affected
outside LOS.

--------------------------------------------------------------------------------
cab9f007e6 | David Lawrence Ramsey | 2010-09-12 14:22:56 -0500

Refix dual-wielding for enslaved intact deep elf blademaster souls.

--------------------------------------------------------------------------------
fd8d349143 | David Lawrence Ramsey | 2010-09-12 13:34:27 -0500

Revert "Remove now-unnecessary name_zombie() from yred_make_enslaved_soul()."
This reverts commit 8f538422cd6cfe06294f176eb38dc66727b5309f.

(It's still needed to name uniques with enslaved souls properly.  Oops.)

--------------------------------------------------------------------------------
c35b470bca | David Lawrence Ramsey | 2010-09-12 13:30:23 -0500

Fix equip_undead() comment: it's not used for spectral things anymore.

--------------------------------------------------------------------------------
8f538422cd | David Lawrence Ramsey | 2010-09-12 13:28:30 -0500

Remove now-unnecessary name_zombie() from yred_make_enslaved_soul().

--------------------------------------------------------------------------------
ffb0d019f6 | David Lawrence Ramsey | 2010-09-12 13:20:34 -0500

In equip_undead(), don't allow stupid undead to use gold anymore.

--------------------------------------------------------------------------------
d3b3f21f9e | David Lawrence Ramsey | 2010-09-12 13:20:33 -0500

Remove the handling of smart undead from equip_undead().
It's no longer necessary, now that Yred's intact enslaved souls no
longer use equip_undead().

--------------------------------------------------------------------------------
08de3d381b | David Lawrence Ramsey | 2010-09-12 13:20:33 -0500

Simplify the creation of Yred's enslaved intact souls.
Instead of dropping all equipment, dropping a corpse, and using
equip_undead() to re-equip the soul minus all holy items, use the new
monster-item-dropping filter to just drop all holy items, and keep
wielding everything else.

As a side effect, if you mark a monster's soul, it dies by drowning, and
its soul remains intact, it will now keep all its original equipment
minus all holy items, instead of losing all its equipment.

--------------------------------------------------------------------------------
435a8e38f2 | David Lawrence Ramsey | 2010-09-12 13:20:33 -0500

Allow filtering the items that monsters drop.
monster_drop_ething() is renamed monster_drop_things(), and it now takes
a suitable() function to provide the aforementioned filter.

--------------------------------------------------------------------------------
1591fe2b30 | David Lawrence Ramsey | 2010-09-12 13:20:32 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
238957ac8d | Robert Vollmert | 2010-09-12 19:11:01 +0200

Tweak interaction between boots of levitation and other sources.
Boots of levitation now keep the duration at a constant level,
and it will time out correctly if you remove them but keep a
ring.

Also fixes status light display issues, where the permanent
levitation status light could be non-bright. (#2396)

--------------------------------------------------------------------------------
cb44d9ab4d | Robert Vollmert | 2010-09-12 18:46:58 +0200

Fix levitation removal prevention logic.
Part of issue #2396.

For one, it's a lot simpler and more correct now, and takes into account the
updated uncancellable levitation logic.

Then, it no longer duplicates the scrambling-free-logic. This is really not
something the interface should know about, and if this is done, the check
should not be duplicated. Finally, it now asks the player instead of
outright denying. Aside from scrambling free, there are situations where you
might want to stop levitation anyway (e.g. scramblable lava with enough rF+
if the item has some other bad properties).

--------------------------------------------------------------------------------
ce0bcc04d0 | Robert Vollmert | 2010-09-12 17:56:38 +0200

Clean up and fix monster cloud handling.
Submerging now generally avoids damage from clouds, not just if the
monster doesn't care.

Cloud avoiding submergers don't cut short the monster action loop, so
they don't build up a big energy pool. (#2199)

--------------------------------------------------------------------------------
abb79152bf | Robert Vollmert | 2010-09-12 17:56:37 +0200

Friendly wandering monsters don't follow through stairs. (#2410)

--------------------------------------------------------------------------------
1c139b748d | Eino Keskitalo | 2010-09-12 17:18:53 +0300

Add a silent spectre tile from coolio.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6140779fd9 | Robert Vollmert | 2010-09-12 16:06:55 +0200

Save game state at game start.
This way, crashing on D:1 should no longer cause corrupt saves. Crashing
during startup might still.

--------------------------------------------------------------------------------
5937bdb59f | Eino Keskitalo | 2010-09-12 17:04:07 +0300

Doors and warnings before facing ghost moths.
Spider branch shouldn't have any, these are there just because the monster is a 
bit harsh for a Lair portal vault.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a305b4012a | Robert Vollmert | 2010-09-12 13:47:49 +0200

Make aquatic monster chase instead of submerging if they can. (#2530)
This explicitly doesn't affect fleeing monsters since I'm not sure
what they're supposed to do.

--------------------------------------------------------------------------------
6b6abc64ac | Eino Keskitalo | 2010-09-12 14:19:04 +0300

Make tgw_fedhas a little safer in the shallower dungeon. (#280)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
81dd7837e0 | Robert Vollmert | 2010-09-12 13:11:18 +0200

Make earth elementalist stones start in slot (b). (#2524)

--------------------------------------------------------------------------------
ee85cbe3ce | Robert Vollmert | 2010-09-12 13:02:54 +0200

Allow auto-switching away to slot (b) from unarmed.
This makes ' act a little more intuitively for unarmed
characters.

--------------------------------------------------------------------------------
44a44f66cc | Robert Vollmert | 2010-09-12 12:03:20 +0200

Remove "What a waste." message entirely.
There's just too many cases where it's not actually a waste to chop up
a corpse (also simulacrum, wanting the hide), and the message doesn't
really add much.

--------------------------------------------------------------------------------
269df25679 | Robert Vollmert | 2010-09-12 11:16:41 +0200

Chopping up a corpse is not a waste with sublimation. (#2550)

--------------------------------------------------------------------------------
f672e4ebc5 | Robert Vollmert | 2010-09-12 11:06:52 +0200

Scale vampire hunger for poisonous blood with duration. (#2380)
Fixes hunger resetting to Very Hungry or so when draining large
poisonous corpses. You can now end up poisoned -- not sure whether
that was possible before. It doesn't seem wrong, though.

--------------------------------------------------------------------------------
ee023907a5 | Robert Vollmert | 2010-09-12 10:51:14 +0200

Typedef good_move.

--------------------------------------------------------------------------------
abc087ab12 | Robert Vollmert | 2010-09-12 10:50:56 +0200

Don't make rock worms move to the side when next to the target. (#2547)

--------------------------------------------------------------------------------
41705b8c8e | Robert Vollmert | 2010-09-12 10:50:11 +0200

Make rock wall movement tweaks sane.
They now have the chance of keeping going the way they were, though
I'm not sure there's a lot of situations where that makes a difference.

--------------------------------------------------------------------------------
7ad94ea642 | Robert Vollmert | 2010-09-12 10:40:34 +0200

Short cut monster pathing for i_feel_safe and adjacents.
This at least fixes resting while next to rock worms (not if they're
a bit away since rock worm pathfinding is broken).

Quite a hack, but you really can't say it makes i_feel_safe and friends
any worse.

--------------------------------------------------------------------------------
09cc02ec4e | Robert Vollmert | 2010-09-12 10:04:50 +0200

Move rock wall movement code into separate function.

--------------------------------------------------------------------------------
5f411794f7 | David Lawrence Ramsey | 2010-09-12 01:25:10 -0500

Add missing parentheses.
Among other things, this fixes erroneous "this meat is poisonous"
messages when playing ghouls.

--------------------------------------------------------------------------------
8c1b2459fb | David Lawrence Ramsey | 2010-09-12 01:14:08 -0500

Add more spacing fixes.

--------------------------------------------------------------------------------
87a1c78824 | David Lawrence Ramsey | 2010-09-12 00:34:29 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
7e654b6cc3 | Jesse Luehrs | 2010-09-11 22:40:36 -0500

land on hell gateways when going downstairs in hell

--------------------------------------------------------------------------------
219760c593 | David Lawrence Ramsey | 2010-09-11 19:13:59 -0500

Make equipped zombified deep elf blademasters able to dual-wield.
This applies to both equipped zombies and equipped intact enslaved
souls, and is accomplished by adding a flag to force the monster to be
treated as a dual-wielder, and setting it for the zombified type.

Note that this should also work with any other future monsters that are
dual-wielders, but which have non-dual-wielding base monster types.

--------------------------------------------------------------------------------
3a0fe6e463 | David Lawrence Ramsey | 2010-09-11 17:42:24 -0500

Make a few functions static.

--------------------------------------------------------------------------------
a0f05a3fef | David Lawrence Ramsey | 2010-09-11 17:37:14 -0500

Comment fixes.

--------------------------------------------------------------------------------
77608ea594 | David Lawrence Ramsey | 2010-09-11 16:32:38 -0500

Display spider corpses properly in tiles.

--------------------------------------------------------------------------------
aed86448ee | David Lawrence Ramsey | 2010-09-11 16:30:23 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
7c3594935e | David Lawrence Ramsey | 2010-09-11 16:30:22 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
e95e48ad77 | David Lawrence Ramsey | 2010-09-11 16:30:22 -0500

Simplify.

--------------------------------------------------------------------------------
584c535d3c | Adam Borowski | 2010-09-11 22:06:30 +0200

Add a tile for vanilla spiders.

--------------------------------------------------------------------------------
67a4c2ab81 | Adam Borowski | 2010-09-11 22:06:24 +0200

Move Agnes deeper.

--------------------------------------------------------------------------------
69d4eea98e | Adam Borowski | 2010-09-11 22:06:24 +0200

Put the tiles for recent removals to UNUSED.

--------------------------------------------------------------------------------
fef53c3559 | David Lawrence Ramsey | 2010-09-11 14:10:06 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
23dff9815a | David Lawrence Ramsey | 2010-09-11 14:07:11 -0500

Implement Mantis 2476: Rename spectral warriors to phantasmal warriors.

--------------------------------------------------------------------------------
b2f6ccb9ae | David Lawrence Ramsey | 2010-09-11 13:33:07 -0500

Resort the monster entries in mon-pick.cc.

--------------------------------------------------------------------------------
f483e789c7 | Eino Keskitalo | 2010-09-11 21:04:32 +0300

Remove an apparent debug PLACE: D:1.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
622fe27706 | Robert Vollmert | 2010-09-11 13:40:00 +0200

Don't reset map_cell seen status when terrain changes.
Fixes changed terrain showing with magic map symbols.

--------------------------------------------------------------------------------
759b02d04f | Adam Borowski | 2010-09-11 04:41:35 +0200

... and better eyesight.

--------------------------------------------------------------------------------
1097ecbf1e | Adam Borowski | 2010-09-11 04:36:07 +0200

Let Spriggagnes lose some weight.  Fatties are bad for fan service.

--------------------------------------------------------------------------------
b0e919810e | Adam Borowski | 2010-09-11 04:22:07 +0200

Explain Agnes' speed by reducing her height.

--------------------------------------------------------------------------------
6417763b50 | Adam Borowski | 2010-09-11 03:52:17 +0200

Make the rest of human uniques (-Agnes) speed 10.  Give Maurice swiftness.
Since it's now a good bit harder to avoid Maurice yet his exp decreased,
I bumped his exp modifier.

Left unfixed:
* Wiglaf (speed 7, dwarf)
* Agnes (speed 18!) -- let's make her a spriggan
* killer klowns (speed 15)

--------------------------------------------------------------------------------
ad545252c7 | Jesse Luehrs | 2010-09-10 20:02:11 -0500

add another pattern for pan_disco_hall

--------------------------------------------------------------------------------
58291d7c45 | Adam Borowski | 2010-09-11 02:45:28 +0200

Skip an assertion when crashing down.

--------------------------------------------------------------------------------
8adcbc1eb5 | Jesse Luehrs | 2010-09-10 19:43:05 -0500

only print id message for stasis if it was previously unided

--------------------------------------------------------------------------------
c1fd5e769c | Robert Vollmert | 2010-09-11 00:09:35 +0200

Make perma_mutate() safer against looping.
We don't want to delete an arbitrary number of mutations here.

--------------------------------------------------------------------------------
f8e1847ba7 | Robert Vollmert | 2010-09-11 00:05:39 +0200

Fix a demonspawn mutation loop.
A demonspawn with three levels of mutation resistance would loop
infinitely if they had one level of frail and were to gain robust.
Other such pairs might exist.

--------------------------------------------------------------------------------
72fda85c7c | Jesse Luehrs | 2010-09-10 15:48:19 -0500

fix up the disco ball a bit

--------------------------------------------------------------------------------
950423781d | David Ploog | 2010-09-10 22:46:39 +0200

New greetings for Y and O (RoboCicero, #112)

--------------------------------------------------------------------------------
689ea70b32 | Jesse Luehrs | 2010-09-10 15:40:19 -0500

make pan_disco_hall more disco-y

--------------------------------------------------------------------------------
f3924a6693 | Jesse Luehrs | 2010-09-10 14:18:32 -0500

use lua_datum rather than dump/load for the callbacks

--------------------------------------------------------------------------------
9db4e58ea4 | Jesse Luehrs | 2010-09-10 14:18:03 -0500

add lua function to access the vault containing a coord

--------------------------------------------------------------------------------
3f0505ce1b | Jesse Luehrs | 2010-09-10 14:17:09 -0500

don't assert on redefinition of lua colours
pretty sure they get reevaluated when maps get recompiled or something?

--------------------------------------------------------------------------------
bfd030a493 | Jesse Luehrs | 2010-09-10 13:51:09 -0500

use dlua, not clua, for colour stuff

--------------------------------------------------------------------------------
504a94a174 | Robert Vollmert | 2010-09-10 17:46:30 +0200

Unrestrict SpEE. (#1665)
Mostly so I can close the ticket, but SpEE really have
an easy start and can become good passwall stabbers with their
stealth and stabbing.

--------------------------------------------------------------------------------
5951275b1e | Robert Vollmert | 2010-09-10 17:43:22 +0200

Don't open transparent secret doors with warnings. (#1417)

--------------------------------------------------------------------------------
4fa4465a0e | Eino Keskitalo | 2010-09-10 18:04:09 +0300

Rematch dc-item.txt with itemprop-enum.h. Fixes #2156.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e735067add | Robert Vollmert | 2010-09-10 17:02:27 +0200

Inscribe "was cursed" for items uncursed using enchant foo. (#1791)

--------------------------------------------------------------------------------
fd080e3fb3 | Robert Vollmert | 2010-09-10 16:16:51 +0200

Shadow creatures summons only mobile monsters.
Fixes issues #1789, #2400.

--------------------------------------------------------------------------------
ae7e904710 | Adam Borowski | 2010-09-10 15:53:23 +0200

A yet another minivault.

--------------------------------------------------------------------------------
6ac841fbdd | Adam Borowski | 2010-09-10 15:53:23 +0200

Don't suggest a bad drop_filter.

--------------------------------------------------------------------------------
3ac724cfd5 | Adam Borowski | 2010-09-10 15:53:23 +0200

Add a testing vault.

--------------------------------------------------------------------------------
f1593415c0 | Robert Vollmert | 2010-09-10 15:35:59 +0200

Stop running for exclusions. (#2515)
Outside tiles this also prints a message since you wouldn't be
able to tell what happened otherwise. It'd be better to indicate
exclusions somehow.

--------------------------------------------------------------------------------
3a274c9f94 | Robert Vollmert | 2010-09-10 15:35:58 +0200

Consult map knowledge for running abort checks.
This fixes running stopping silently before bumping into invisible
creatures or mimics.

--------------------------------------------------------------------------------
b2a5a314b4 | Robert Vollmert | 2010-09-10 15:35:58 +0200

Rename runrest::run_grids_changed.
It does quite a bit more than that.

--------------------------------------------------------------------------------
d92fa93efd | Robert Vollmert | 2010-09-10 15:35:58 +0200

Make running stop check use map_knowledge for features.
This removes the need to worry about traps and secret doors.

--------------------------------------------------------------------------------
436185baf4 | Robert Vollmert | 2010-09-10 15:35:58 +0200

A monster_info variant of fedhas_passthrough.
The code is identical to the monster variant, but I don't see
a good way to avoid this (apart from generating a monster_info
instance for every call of the monster variant, which sounds
undesirable).

--------------------------------------------------------------------------------
4f8ba8a27a | Adam Borowski | 2010-09-10 12:54:46 +0200

Fix compilation.

--------------------------------------------------------------------------------
cf8bbfb483 | Adam Borowski | 2010-09-10 12:47:29 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
dd6dcece99 | Adam Borowski | 2010-09-10 12:47:29 +0200

Fix a grave world-shattering typo.

--------------------------------------------------------------------------------
771a4541e4 | Jesse Luehrs | 2010-09-10 05:43:28 -0500

add docs for colour definitions

--------------------------------------------------------------------------------
7d9c54a38f | Jesse Luehrs | 2010-09-10 05:18:03 -0500

add (more boring) colour changes for geh and tar, to remove darkgrey
these can be tweaked still, just want to close the fr

--------------------------------------------------------------------------------
811d55ac19 | Jesse Luehrs | 2010-09-10 05:18:02 -0500

use a slightly less garish colour scheme for elf

--------------------------------------------------------------------------------
0de4de27d1 | Jesse Luehrs | 2010-09-10 05:18:02 -0500

allow defining colour patterns in lua

--------------------------------------------------------------------------------
e8284b8f1c | Jesse Luehrs | 2010-09-10 05:18:02 -0500

generate colour names dynamically too

--------------------------------------------------------------------------------
1662f12c98 | Jesse Luehrs | 2010-09-10 05:18:02 -0500

make add_element_colour public

--------------------------------------------------------------------------------
81857496dd | Jesse Luehrs | 2010-09-10 05:18:02 -0500

make trees use the new colour system

--------------------------------------------------------------------------------
dc739f66a6 | Jesse Luehrs | 2010-09-10 05:18:02 -0500

rewrite elemental colour handling

--------------------------------------------------------------------------------
b57399d596 | Jesse Luehrs | 2010-09-10 05:18:02 -0500

don't require duplicating the coord_def

--------------------------------------------------------------------------------
fe42935f94 | Jesse Luehrs | 2010-09-10 05:18:02 -0500

add waves example

--------------------------------------------------------------------------------
eb772c3835 | Jesse Luehrs | 2010-09-10 05:18:02 -0500

example usage - alternate colors used for walls in elf

--------------------------------------------------------------------------------
e191bff3cf | Jesse Luehrs | 2010-09-10 05:18:02 -0500

pass around the coord_def where a glyph is located
this way, we can access the position from within elemental_colour, and
create fixed patterns. this is pretty clunky though, should find a
better way to do this

--------------------------------------------------------------------------------
ab7cc1101d | David Ploog | 2010-09-10 12:06:41 +0200

Add by's mindless labyrintheers option to a new file.

--------------------------------------------------------------------------------
ce5334f769 | MarvintheParanoidAndroid | 2010-09-10 11:09:47 +0200

Don't prompt for unwielding with Warp Weapon
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
e638383ec0 | MarvintheParanoidAndroid | 2010-09-10 10:57:01 +0200

Mention need for evoc skill in caster stave descriptions.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
0a7ef51e1f | Robert Vollmert | 2010-09-10 10:50:53 +0200

Allow stasis to prevent death's door abortion paralysis.
The only unaffected paralysis effects now seem to be god wrath,
starvation, post-berserk and stat loss paralysis, which can be
argued to be non-magical or unblockable.

That and the crystal ball of fixation.

--------------------------------------------------------------------------------
e604e6fcf1 | Robert Vollmert | 2010-09-10 10:43:28 +0200

Fix ball of energy paralysis ignoring stasis.
It's unclear that doing the same to the ball of fixation is a
good idea, so I've just removed the flavour message that implies
it's the same effect for now.

--------------------------------------------------------------------------------
9abe0ae6d5 | Adam Borowski | 2010-09-10 10:38:12 +0200

Make trying to cast Death's Door when ineligible cost no time nor MP.

--------------------------------------------------------------------------------
a7bf779fa7 | Robert Vollmert | 2010-09-10 10:30:02 +0200

Make evocations skill help with ball of seeing radius.

--------------------------------------------------------------------------------
b61f9f001c | Robert Vollmert | 2010-09-10 10:13:08 +0200

Give the ball of energy a bit of paralysis in return.
Effectively one or two turns when not hasted, since the duration is decreased
once on that turn. The effect is extra, so success chance has gone down a bit.

--------------------------------------------------------------------------------
6a2d32f22d | MarvintheParanoidAndroid | 2010-09-10 09:48:09 +0200

Change ball of seeing/energy confusion to be resistible with clarity.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
2c8d375612 | Adam Borowski | 2010-09-10 01:56:35 +0200

Give the pillars in Zot:5 a tile.

--------------------------------------------------------------------------------
bf18d73f3e | David Ploog | 2010-09-10 00:34:45 +0200

Actually use decks in vault definitions. (Haran)

--------------------------------------------------------------------------------
68af265610 | Jesse Luehrs | 2010-09-09 15:54:05 -0500

don't allow randomizing the location off the map

--------------------------------------------------------------------------------
e13f9dae32 | Robert Vollmert | 2010-09-09 20:32:37 +0200

Fix monster-vs-rock worm messaging and energy use. (#1352)
This removes some dead code and hopefully keeps sensible
messaging. Also monsters lose energy regardless of whether
you can see them.

--------------------------------------------------------------------------------
96b6ae947a | Jesse Luehrs | 2010-09-09 12:10:34 -0500

allow passage of golubria to be cast with no monsters in view

--------------------------------------------------------------------------------
c1760a5c98 | Robert Vollmert | 2010-09-09 18:59:05 +0200

Fix unknown scrolls being usable on themselves. (#1998)

--------------------------------------------------------------------------------
5996773508 | Jesse Luehrs | 2010-09-09 11:43:43 -0500

allow passage of golubria to generate in a couple books

--------------------------------------------------------------------------------
a3df6cf554 | Jesse Luehrs | 2010-09-09 11:43:43 -0500

respect no_ctele_into fprops

--------------------------------------------------------------------------------
f0922118a1 | Jesse Luehrs | 2010-09-09 11:43:42 -0500

disallow creating passages behind transparent walls

--------------------------------------------------------------------------------
006f7b6bcf | Jesse Luehrs | 2010-09-09 11:43:42 -0500

respect no-tele-control

--------------------------------------------------------------------------------
675eafeb63 | Jesse Luehrs | 2010-09-09 11:43:42 -0500

don't allow golubria traps to be generated randomly

--------------------------------------------------------------------------------
24f9ca32f3 | Jesse Luehrs | 2010-09-09 11:43:42 -0500

remove golubria traps on switching levels

--------------------------------------------------------------------------------
098e601fba | Jesse Luehrs | 2010-09-09 11:43:42 -0500

rename the spell to passage of golubria, and add a description

--------------------------------------------------------------------------------
9982a401d2 | Jesse Luehrs | 2010-09-09 11:43:42 -0500

leave a cloud of tloc behind when passing through

--------------------------------------------------------------------------------
1f5b526305 | Jesse Luehrs | 2010-09-09 11:43:42 -0500

actually, only know that it's destroyed if you triggered it

--------------------------------------------------------------------------------
953b26c8c8 | Jesse Luehrs | 2010-09-09 11:43:42 -0500

remove the closed passage from map_knowledge too

--------------------------------------------------------------------------------
3bf664b1bd | Jesse Luehrs | 2010-09-09 11:43:42 -0500

don't place them out of los

--------------------------------------------------------------------------------
e72e6ba629 | Jesse Luehrs | 2010-09-09 11:43:41 -0500

make passages time out, so you can't use them from across the level

--------------------------------------------------------------------------------
88e57d9a4b | Jesse Luehrs | 2010-09-09 11:43:41 -0500

randomize the placement instead

--------------------------------------------------------------------------------
516e036b06 | Jesse Luehrs | 2010-09-09 11:43:41 -0500

get the functionality actually working

--------------------------------------------------------------------------------
ac878cb335 | Jesse Luehrs | 2010-09-09 11:43:41 -0500

handle monster triggering in the message

--------------------------------------------------------------------------------
3c26a3a500 | Jesse Luehrs | 2010-09-09 11:43:41 -0500

couple more spell flags

--------------------------------------------------------------------------------
d1247c2097 | Jesse Luehrs | 2010-09-09 11:43:41 -0500

better error detection and messages

--------------------------------------------------------------------------------
71c489351c | Jesse Luehrs | 2010-09-09 11:43:41 -0500

better error when casting with a passage already open

--------------------------------------------------------------------------------
68f0dadb3b | Jesse Luehrs | 2010-09-09 11:43:41 -0500

don't warn on entering a passage

--------------------------------------------------------------------------------
601698451a | Jesse Luehrs | 2010-09-09 11:43:41 -0500

initial sketch of a new spell

--------------------------------------------------------------------------------
cde5e47f73 | Adam Borowski | 2010-09-09 18:35:41 +0200

Fix good_item gold giving ludicrous amounts.
It somehow assumed it's acquirement, which are supposed to be like an order
of magnitude as good.

--------------------------------------------------------------------------------
668f02069f | David Ploog | 2010-09-09 18:27:42 +0200

Fewer guardians in the new Orb subvaults.
These vaults are harder (no apportation and longer walks), so they should
at least have fewer guardians.

--------------------------------------------------------------------------------
e7ec65f42d | David Ploog | 2010-09-09 18:14:32 +0200

Remove erronous line from ?? screen.

--------------------------------------------------------------------------------
d93280b447 | David Ploog | 2010-09-09 17:53:37 +0200

Switch G and Ctrl-G in cmd-keys.h.
This prints the interlevel travel command in the ?? help again and fixes #2091.

It showed Esc as interlevel travel key before, despite a comment in cmd-keys.h
claiming that ?? would always show the key assigned last. Why exchanging the
two keys made it work I won't know.

--------------------------------------------------------------------------------
9159321b49 | Robert Vollmert | 2010-09-09 17:50:51 +0200

Fix butchery leaking vampiric weapon information. (#2341)
Hurray for get_item_info()!

--------------------------------------------------------------------------------
5bdebd5417 | Eino Keskitalo | 2010-09-09 18:17:52 +0300

Add the granite statue stump tile.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3b7025505b | Eino Keskitalo | 2010-09-09 17:57:44 +0300

Fix a terrifying lack of orb guardians in the orb chamber.

--------------------------------------------------------------------------------
a145445de9 | Robert Vollmert | 2010-09-09 16:37:28 +0200

Give experience at the end of monster_die().
This might switch message order a bit, but it didn't seem like a bad
change in my tests.

This should fix the various monster cleanup issues we have when the game
is interrupted at the stat gain prompt. E.g. corpse and monster inventory
weirdness.

One concrete bug that's fixed is that after blowing up an ogre with
disintegration at XL 1 and hanging up at the stat gain prompt, you'll
get an unlinked item error for the ogre's weapon.

--------------------------------------------------------------------------------
a14891a3b9 | Eino Keskitalo | 2010-09-09 17:14:41 +0300

Add an orb chamber vault.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f65cbc25b6 | Eino Keskitalo | 2010-09-09 17:14:41 +0300

Remove a reference to "current" speed from Chei's likes. This makes you think 
Slowing yourself helps get piety, which it doesn't.
Addressess #800.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3579fadea4 | Robert Vollmert | 2010-09-09 15:22:43 +0200

Check terrain before clouds for moveto check. (#2013)

--------------------------------------------------------------------------------
2d401b529c | Robert Vollmert | 2010-09-09 15:12:27 +0200

Let bloodless vampires evoke invisibility. (#2294)

--------------------------------------------------------------------------------
af608b1dc8 | Robert Vollmert | 2010-09-09 15:05:44 +0200

Colour plain armour acquirements. (#2366)

--------------------------------------------------------------------------------
01ba27c3a5 | Robert Vollmert | 2010-09-09 15:05:40 +0200

Check for non-black colour in item_def::is_valid.

--------------------------------------------------------------------------------
b460960fd1 | Robert Vollmert | 2010-09-09 14:57:02 +0200

Wrap some long lines.

--------------------------------------------------------------------------------
fe3e63ff44 | Robert Vollmert | 2010-09-09 14:37:57 +0200

Don't train stealth for unaware pacified monsters. (#2136)
I'm not quite sure how it happens (probably leave a pacified monster stuck
in a corner and come back after a while).

--------------------------------------------------------------------------------
d459c67878 | Robert Vollmert | 2010-09-09 14:23:16 +0200

Remove unused return value of mass_enchantment().

--------------------------------------------------------------------------------
604da762ad | Robert Vollmert | 2010-09-09 14:23:16 +0200

Don't say "nothing happens" for mass enchantments if monsters visibly resist.
As suggested in #2166.

--------------------------------------------------------------------------------
1f7219d551 | Robert Vollmert | 2010-09-09 14:23:16 +0200

Fix "Nothing appears to happen." if scroll of fear affects invisible monster 
last. (#2166)

--------------------------------------------------------------------------------
7cdcb7c373 | Robert Vollmert | 2010-09-09 14:23:16 +0200

Fix message for confused monster healing with chaos brand. (#2330)

--------------------------------------------------------------------------------
337f787eef | Adam Borowski | 2010-09-09 14:09:57 +0200

Update some genuses.

--------------------------------------------------------------------------------
48ce5cd81a | Adam Borowski | 2010-09-09 14:09:56 +0200

Allow redefining the spider form's glyph ("spider").

--------------------------------------------------------------------------------
e39a1e0e04 | Robert Vollmert | 2010-09-09 13:15:53 +0200

Fix Tab not working correctly in startup menus. (#2399)

--------------------------------------------------------------------------------
9211dd31d2 | Robert Vollmert | 2010-09-09 09:22:12 +0200

Fix exclusion LOS not being updated properly. (#2513)

--------------------------------------------------------------------------------
73021641df | Robert Vollmert | 2010-09-08 23:48:01 +0200

Give invisibility the same treatment as levitation.
That is, spell/potion/wand cause uncancellable invisibility, and
removing an item that grants invisibility only ends the duration
if it was cancelable invisibility and the character is not wearing
other items granting invisibility.

This is based very closely on the levitation code -- hope I didn't
miss anything.

--------------------------------------------------------------------------------
67236b0e68 | Robert Vollmert | 2010-09-08 22:26:18 +0200

A spotty vault connector for the Mines. (#2349)
This is quite experimental; I'm not very familiar with the
dungeon generation code. Please test.

I think it's not too expensive, but I didn't really take care
of that. It would seem the selection of random seeds could
be improved.

Currently it just overrides the join_the_dots-connector in the
Orcish Mines (with fallback). It's not used for other spotty
levels.

--------------------------------------------------------------------------------
448a9fd35b | David Ploog | 2010-09-08 21:02:29 +0200

Another set of minmay'S maps, including Snake and Elf endings and ossuaries!

--------------------------------------------------------------------------------
6ad5a65997 | David Ploog | 2010-09-08 20:16:57 +0200

Add minmay's redone crystal_thing vault.

--------------------------------------------------------------------------------
e5865ddb3d | David Ploog | 2010-09-08 20:07:43 +0200

minivaults restructuring; many new minivaults (CoreXii).

--------------------------------------------------------------------------------
ca73e0862b | Robert Vollmert | 2010-09-08 19:58:32 +0200

Don't waste a turn for not renouncing religion. (#1983)

--------------------------------------------------------------------------------
045c4d691a | Jesse Luehrs | 2010-09-08 12:05:20 -0500

don't color "firewood" monsters during berserk

--------------------------------------------------------------------------------
44b23dbb5e | Robert Vollmert | 2010-09-08 18:56:49 +0200

Enable highlighting of notes. (#862)

--------------------------------------------------------------------------------
01cb2eed6f | Jesse Luehrs | 2010-09-08 11:39:30 -0500

hide pluses for rings and rods in the \ menu

--------------------------------------------------------------------------------
313e1f19cc | Robert Vollmert | 2010-09-08 18:02:57 +0200

Fix Options.clean_map not affecting normal view. (#2472)

--------------------------------------------------------------------------------
d29cc39791 | Jesse Luehrs | 2010-09-08 10:40:21 -0500

only keep normal monster colors during berserk overlays, not others

--------------------------------------------------------------------------------
9b3ecb5ced | David Ploog | 2010-09-08 15:54:13 +0200

Subvaults for the orb chamber (monky).

--------------------------------------------------------------------------------
11930635a9 | Robert Vollmert | 2010-09-08 14:13:07 +0200

Status lights and @-message for temporary resistances.

--------------------------------------------------------------------------------
ec78d4c882 | Robert Vollmert | 2010-09-08 14:13:06 +0200

Status light for See Invisible.

--------------------------------------------------------------------------------
6cf97fa244 | Robert Vollmert | 2010-09-08 14:13:05 +0200

Status light for DUR_STEALTH.

--------------------------------------------------------------------------------
83951f0c35 | Robert Vollmert | 2010-09-08 14:13:05 +0200

Shift levitation status light colours.
Uncancelable levitation is now blue, and cancelable levitation magenta,
consistent with the usual use of blue (magenta) for (better) enchantments.

It also makes green a little less busy now that transformations are in
there.

--------------------------------------------------------------------------------
9b0085752a | Robert Vollmert | 2010-09-08 14:13:04 +0200

Status light for post-berserk fatigue.

--------------------------------------------------------------------------------
452e7101f1 | Robert Vollmert | 2010-09-08 14:13:04 +0200

Fold transformation description into status.cc.
This includes a new status light that indicates timing out, and merges
the %-screen transformation description into the status line.

The status light is currently (light) green, and tacked on to
the end. Both of these could be changed easily.

--------------------------------------------------------------------------------
c132483549 | David Ploog | 2010-09-08 13:54:55 +0200

Many, many more minivaults (minmay).

--------------------------------------------------------------------------------
8ee1b2c476 | David Ploog | 2010-09-08 13:33:03 +0200

Now there are Crypt entry vaults! (minmay)

--------------------------------------------------------------------------------
23ea761eed | Adam Borowski | 2010-09-08 12:24:08 +0200

Give the Wrath of Trog a brand.  Guess which one.

--------------------------------------------------------------------------------
519429cf14 | Adam Borowski | 2010-09-08 12:24:08 +0200

[testing] Generate the antimagic brand on mundane items.
Since I'm partial to having this brand as a randart/Trog thingy, we'll
probably revert this for 0.8 -- but let's have it on to let the brand
see some testing.

--------------------------------------------------------------------------------
cc136dd5fa | Jesse Luehrs | 2010-09-08 04:48:24 -0500

use a less awkward phrasing for the anti-magic description

--------------------------------------------------------------------------------
876b6af08b | Adam Borowski | 2010-09-08 11:04:05 +0200

Update a draconian's glyph when he matures. [Mantis 2506]

--------------------------------------------------------------------------------
f5a38c70fd | Adam Borowski | 2010-09-08 10:38:59 +0200

Make i_feel_safe smarter about stuff behind lava/statues/etc.
It may have nasty effect on CPU use, though.  Since it is called only
for monsters in LOS, this may be not so bad -- but if it is, we'd need
to include speedups.  An easy one would be "can it move to you in direct
line?".

--------------------------------------------------------------------------------
2631789ac9 | Adam Borowski | 2010-09-08 10:13:44 +0200

Revert "make statues block opacity_no_trans".  It'd be inconsistent with other 
statues.
Plus, there are multiple ways for monsters to affect you from behind a statue,
so the fix to i_feel_safe needs to be smarter.

This reverts commit a61615850d9fe7b3f97026472ebac4147f88b5c9.

--------------------------------------------------------------------------------
aa1934c4b0 | Jesse Luehrs | 2010-09-08 02:37:37 -0500

bail out earlier on some monster spells to avoid printing messages

--------------------------------------------------------------------------------
d922c5682b | Jesse Luehrs | 2010-09-08 02:03:35 -0500

suppress messages about no butchering weapon if we have gloved claws

--------------------------------------------------------------------------------
47caa64c5e | Jesse Luehrs | 2010-09-08 01:57:42 -0500

condense butchering messages even more

--------------------------------------------------------------------------------
1069ee130b | Jesse Luehrs | 2010-09-08 01:35:26 -0500

clarify and condense the pickup/drop help screen

--------------------------------------------------------------------------------
adc5ac179b | Jesse Luehrs | 2010-09-08 01:06:49 -0500

fix some escaping issues in macro prompts
we really should think of a better way to handle this, this pseudo-html
tag system with weird escaping rules just causes no end of issues like
this

--------------------------------------------------------------------------------
7d8c746004 | Jesse Luehrs | 2010-09-08 00:34:04 -0500

fix extraneous capitalization

--------------------------------------------------------------------------------
985c2b2d7f | Jesse Luehrs | 2010-09-07 20:06:38 -0500

why did we randomly stop using enums halfway through this function

--------------------------------------------------------------------------------
a61615850d | Jesse Luehrs | 2010-09-07 20:01:01 -0500

make statues block opacity_no_trans
this means that monsters behind statues won't make you feel unsafe
(mantis #832), and it also blocks apportation from working through
granite statues (and also probably some other things like that... is
this what we want? the new granite statues on zot:5 are meaningless
otherwise). people should test various things with this to make sure
the interactions are all still as we want them.

--------------------------------------------------------------------------------
758f9672c7 | Jesse Luehrs | 2010-09-07 19:25:36 -0500

clean up the ring switching code a bit

--------------------------------------------------------------------------------
c80e8d13d7 | Tommy | 2010-09-07 19:25:36 -0500

Don't prompt for which ring to swap if one of them is cursed.

--------------------------------------------------------------------------------
5b0957a03b | Adam Borowski | 2010-09-08 02:14:30 +0200

Fix portal levels not getting deleted [Mantis 2493]

--------------------------------------------------------------------------------
4bbe5e6dd3 | Jesse Luehrs | 2010-09-07 18:31:08 -0500

there's no reason at all to disallow easy exit for the overview screen

--------------------------------------------------------------------------------
d34cbcc2ac | Jesse Luehrs | 2010-09-07 18:25:28 -0500

disable "being crushed", at least until actual constriction goes in
just to reduce message spam a bit - the eventual sequence should be "The
anaconda constricts you!" on the first hit to enable constriction, and
"You are being crushed" for the subsequent hits during constriction. We
don't need the double message at the moment.

--------------------------------------------------------------------------------
ee752e8fa8 | Adam Borowski | 2010-09-07 23:59:59 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
7a7978f7e0 | Adam Borowski | 2010-09-07 23:51:06 +0200

Remove an unnecessary #ifdef.  The order of mon-data.h doesn't matter.
mon-util.cc:mon_entry keeps a mapping between enums and those entries.

--------------------------------------------------------------------------------
1c0746fb46 | David Lawrence Ramsey | 2010-09-07 15:37:34 -0500

Remove redundant variables.

--------------------------------------------------------------------------------
d2af2b5df1 | David Lawrence Ramsey | 2010-09-07 15:37:34 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
362b7ef3ff | David Ploog | 2010-09-07 22:26:40 +0200

Prevent the cave-to-hall vault from teleport incidents. (#2201)

--------------------------------------------------------------------------------
9f985009f6 | David Ploog | 2010-09-07 22:23:16 +0200

Remove imps from the abyssic cave-to-hall entry vault. (#2313)

--------------------------------------------------------------------------------
0e01833ddc | David Ploog | 2010-09-07 22:15:44 +0200

Disallow tgw_xom altar map on D:1. (kilobyte)
From #1948.

--------------------------------------------------------------------------------
ac561f1f3e | David Ploog | 2010-09-07 22:11:43 +0200

Minor tweak to corrupted temple.
Closes 2028. The number of non-Lugonu altars is now random.

--------------------------------------------------------------------------------
de502c03c2 | David Ploog | 2010-09-07 21:58:43 +0200

Make secret door in worm ending of Lair:$ less obscure (OG17).
Also remove a PLACE: D:1.

--------------------------------------------------------------------------------
8d9797a2f0 | Jesse Luehrs | 2010-09-07 14:52:23 -0500

don't warn about entering excluded portals
this warning is basically just for people excluding the staircase
because of something dangerous on the other side of it, so only give the
warning for stairs that have a consistent other side.

--------------------------------------------------------------------------------
5d90a21218 | David Lawrence Ramsey | 2010-09-07 14:40:13 -0500

Tweak wording.

--------------------------------------------------------------------------------
62f4078b08 | David Ploog | 2010-09-07 21:36:20 +0200

Add a number of elaborate entry vaults (evilmike).

--------------------------------------------------------------------------------
39fb921490 | David Lawrence Ramsey | 2010-09-07 14:29:52 -0500

Treat twisted enslaved souls as insubstantial, as intact ones are.

--------------------------------------------------------------------------------
42f1ae56e7 | Adam Borowski | 2010-09-07 21:24:09 +0200

Hush an invalid warning from clang.

--------------------------------------------------------------------------------
3a7e6e0f3e | Jesse Luehrs | 2010-09-07 14:20:17 -0500

accept "summonings" for decks of summonings (not just "summoning")

--------------------------------------------------------------------------------
0bee4a3c8c | Jesse Luehrs | 2010-09-07 14:20:17 -0500

don't crash when given a bad deck spec

--------------------------------------------------------------------------------
b49cb9215a | Adam Borowski | 2010-09-07 21:14:50 +0200

Suppress a valgrind warning for zlib <=1.2.3

--------------------------------------------------------------------------------
30cc5bce8a | Robert Vollmert | 2010-09-07 21:09:02 +0200

Fix out-of-bounds array writes. (oops)
This may well be the cause for recent segfaults and crash weirdness.

--------------------------------------------------------------------------------
b1c4ff81ec | David Lawrence Ramsey | 2010-09-07 13:30:36 -0500

Move the Serpent of Hell to the uniques section in mon.data.h when save 
compatibility breaks.

--------------------------------------------------------------------------------
b3dacce174 | David Ploog | 2010-09-07 20:22:41 +0200

New minivaults (nrook).

--------------------------------------------------------------------------------
f2ed09a34d | David Ploog | 2010-09-07 20:08:54 +0200

Yet another entry vault (minmay).

--------------------------------------------------------------------------------
7049e6048a | David Lawrence Ramsey | 2010-09-07 12:58:16 -0500

Improve the "Enslave Soul" ability description a bit.

--------------------------------------------------------------------------------
b9add36c9c | David Ploog | 2010-09-07 19:54:23 +0200

Split up entry.des.
There are now four parts, plus entry.des containing guidelines.
The vaults in entry_simple.des have been arranged for didactical
purposes, introducing new glyphs or key words one by one.

--------------------------------------------------------------------------------
dee2e8f6e5 | David Lawrence Ramsey | 2010-09-07 12:39:45 -0500

Simplify.

--------------------------------------------------------------------------------
2afc708df8 | David Lawrence Ramsey | 2010-09-07 11:58:46 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
48ff1a7293 | David Ploog | 2010-09-07 17:55:19 +0200

Trying to reestablish message highlighting for item destruction.
Mantis #2460
I hope I got it right. Also, there is now no case for general destruction
anymore (i.e. neither of potion, scroll, food).

--------------------------------------------------------------------------------
e57f0554ea | Robert Vollmert | 2010-09-08 13:12:25 +0200

Fix bleeding with claws and two-handed weapons.
There's now no difference between the main and off-hand
bleeding for simplicity.

--------------------------------------------------------------------------------
f1f2dae0dc | David Ploog | 2010-09-07 17:19:13 +0200

A volley of beautiful entry vaults. (minmay)
One of them is not fully finished: minmay_entry_shattered_statue
has trouble replacing the standard description of granite statues
with a customised one. Also, minmay made a tile, to be found at
https://crawl.develz.org/mantis/view.php?id=2495
which needs to be added.

--------------------------------------------------------------------------------
add97a5e8d | Jesse Luehrs | 2010-09-07 10:02:03 -0500

also disallow airstrike on rock worms in a wall

--------------------------------------------------------------------------------
3bbe43bb8f | Jesse Luehrs | 2010-09-07 09:54:44 -0500

don't allow targeting submerged monsters with airstrike

--------------------------------------------------------------------------------
2655ef6421 | Jesse Luehrs | 2010-09-07 09:29:45 -0500

don't allow targeting submerged trapdoor spiders with reaching

--------------------------------------------------------------------------------
5d31537e75 | Mu | 2010-09-07 14:31:30 +0100

Fix gloorx_vloq_2_st not generating the dark rune.

--------------------------------------------------------------------------------
9fe0fd6c2a | Adam Borowski | 2010-09-07 03:29:54 +0200

Fix "Edmund begins to bleed from its wounds!"

--------------------------------------------------------------------------------
9983ec6333 | Adam Borowski | 2010-09-07 03:09:26 +0200

Hide a couple internal variables.

--------------------------------------------------------------------------------
658843791f | Jesse Luehrs | 2010-09-06 19:58:28 -0500

fix comment

--------------------------------------------------------------------------------
33b8c5575e | Adam Borowski | 2010-09-07 01:29:35 +0200

Fix a crash when something already cleaned up a monster affected by chaos.
One such case is paralysis of an actively flying monster above lava.  In such
cases, the player is not supposed to be eligible for reaping anyway.  The
reaping brand also follows this code path, but all legitimate kills there
work by depleting hp.

--------------------------------------------------------------------------------
5f5131846d | Adam Borowski | 2010-09-07 01:10:59 +0200

Unify string_to_god() and str_to_god().

--------------------------------------------------------------------------------
51d9e118c2 | Adam Borowski | 2010-09-07 00:36:08 +0200

Remove any specific numbers from monster enums.
The MONS_UNUSED_XXX entries may be unsightly but are safer, and can be removed
if we decide to sort the enums later.  I didn't do so since that would break
save compat (or require a lot of shims).

The use of MONS_PROGRAM_BUG for 250-headed hydras was something the compiler
ought shout at people for (an incompatible type); removed.  I used 27 only
because I'm too lazy to add proper error catching there right now.

--------------------------------------------------------------------------------
2a9cc74460 | Robert Vollmert | 2010-09-06 23:52:05 +0200

Unify handling of status output.
The @ messages, @: line on the % screen and status lights
are now mostly treated together in status.cc.

--------------------------------------------------------------------------------
e63501eb31 | David Lawrence Ramsey | 2010-09-06 16:47:46 -0500

Remove redundant comment.

--------------------------------------------------------------------------------
13f1216de9 | Adam Borowski | 2010-09-06 23:25:25 +0200

Merge branch 'master' into cats

--------------------------------------------------------------------------------
0c9ad12806 | David Lawrence Ramsey | 2010-09-06 15:48:15 -0500

Add formatting fix.

--------------------------------------------------------------------------------
8b0e39cd26 | David Lawrence Ramsey | 2010-09-06 13:53:10 -0500

Replace the iron imp tile with minmay's wingless version for now.
I've tweaked it to make its outline consistently black around where the
wings used to be, and to make it the proper size of 32x32.

--------------------------------------------------------------------------------
63f1c48a3c | David Lawrence Ramsey | 2010-09-06 13:06:15 -0500

Tweak the iron devil tile's palette to match the iron imp.

--------------------------------------------------------------------------------
a69bb65e0f | David Lawrence Ramsey | 2010-09-06 13:04:52 -0500

Add coolio's non-flying quasit tile, and move the old tile to UNUSED.

--------------------------------------------------------------------------------
87b71f5b96 | David Lawrence Ramsey | 2010-09-06 12:20:29 -0500

Increase the value of MST_TEST_SPAWNER to not conflict with MST_SPIRIT.

--------------------------------------------------------------------------------
15a17b886b | David Lawrence Ramsey | 2010-09-06 12:13:57 -0500

Fix monster spell numbering comments to enum.h.

--------------------------------------------------------------------------------
187c9d00cd | Adam Borowski | 2010-09-06 18:27:25 +0200

Correct an array that has its own list of brands instead of querying itemname.

--------------------------------------------------------------------------------
a95804b6ea | David Lawrence Ramsey | 2010-09-06 11:02:38 -0500

Actually handle the Dwarf Hall in the check for branch-native monsters.

--------------------------------------------------------------------------------
63ee9a62b7 | David Lawrence Ramsey | 2010-09-06 11:01:15 -0500

Comment fix.

--------------------------------------------------------------------------------
c1db532915 | Adam Borowski | 2010-09-06 17:40:01 +0200

Add the enums and entries for blue_anna's Dwarven Hall.
I'm doing this now since adding a branch is damn likely to break save compat
_somewhere_, and dormant branches don't put any real burden.  We'll sift
through the ideas and merge the builder, monsters and vaults at a more
leisurely pace.

--------------------------------------------------------------------------------
52147c59f0 | Adam Borowski | 2010-09-06 15:20:55 +0200

Merge branch 'holyhaul', to save us from such massive conflict-fests.

--------------------------------------------------------------------------------
fb49de68d1 | Adam Borowski | 2010-09-06 15:13:48 +0200

Merge branch 'master' into holyhaul

--------------------------------------------------------------------------------
deb44ce0b4 | Adam Borowski | 2010-09-06 14:10:08 +0200

Fix broken tile handling for angels.

--------------------------------------------------------------------------------
460b4ef152 | Adam Borowski | 2010-09-06 14:02:23 +0200

Merge commit '3b956b63' (the great spell moving) into holyhaul

--------------------------------------------------------------------------------
29739324ff | Adam Borowski | 2010-09-06 13:28:20 +0200

Merge commit 'd247c107' (before the great spell moving) into holyhaul

--------------------------------------------------------------------------------
64fe048d4a | Adam Borowski | 2010-09-06 12:31:16 +0200

Purge save #ifdefs for TAG_MAJOR 29.

--------------------------------------------------------------------------------
79115ccbe6 | Adam Borowski | 2010-09-06 12:23:25 +0200

Merge branch 'save-package'

--------------------------------------------------------------------------------
ddf65d876d | Adam Borowski | 2010-09-06 12:20:19 +0200

Actually generate the antimagic brand (artefacts and Trog).
It should probably generate normally as well, but let's discuss that first.

--------------------------------------------------------------------------------
5a0ce23af3 | Robert Vollmert | 2010-09-06 11:50:54 +0200

Fix missing initialization of map_cell::_cloud_colour.

--------------------------------------------------------------------------------
a087ed6923 | Adam Borowski | 2010-09-06 11:21:10 +0200

Bump the major save version, as save compat is pretty thoroughly broken.

--------------------------------------------------------------------------------
19306ea694 | Adam Borowski | 2010-09-06 11:17:44 +0200

Fix the save browser on non-Windows.

--------------------------------------------------------------------------------
9ab615828b | Adam Borowski | 2010-09-06 09:56:23 +0200

Remove an useless assignment.

--------------------------------------------------------------------------------
f989d3fc69 | Jesse Luehrs | 2010-09-06 00:57:50 -0500

fix passwall description

--------------------------------------------------------------------------------
5b5ff15939 | Jesse Luehrs | 2010-09-06 00:47:02 -0500

don't override monster color when berserk

--------------------------------------------------------------------------------
1c31074eb6 | Jesse Luehrs | 2010-09-05 23:02:03 -0500

unify these (inconsistent) checks, and remove BEAM_FRAG from the list

--------------------------------------------------------------------------------
18fba5da1f | Jesse Luehrs | 2010-09-05 21:56:36 -0500

as far as i can tell, this isn't true (and doesn't look correct anyway)

--------------------------------------------------------------------------------
b57f867550 | Adam Borowski | 2010-09-06 02:38:25 +0200

Use file locking on the save file to prevent corruption from running Crawl 
twice.
This fixes Mantis 2061.

I did not reuse the existing lk_open() because it's non-portable, waits for the
lock to become available and works using FILE* not a descriptor (bad for random
access).

--------------------------------------------------------------------------------
6bec839c0e | Jesse Luehrs | 2010-09-05 18:27:14 -0500

unify item handling in ignite poison, and handle a few more item types
crawl's item code is certainly not my strong point... i've tested it
reasonably well, but someone more familiar might want to look it over to
make sure nothing's obviously broken.

--------------------------------------------------------------------------------
2569e61fdf | David Lawrence Ramsey | 2010-09-05 16:25:19 -0500

Clean up dc-mon.txt a bit more.

--------------------------------------------------------------------------------
e5c5f74511 | Jesse Luehrs | 2010-09-05 15:34:20 -0500

allow uncursing blowguns with enchant weapon ii

--------------------------------------------------------------------------------
8d370b3b5e | David Lawrence Ramsey | 2010-09-05 14:55:58 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
237ab2fee3 | David Lawrence Ramsey | 2010-09-05 14:55:58 -0500

Don't display "You are rather mundane." for immature draconians.

--------------------------------------------------------------------------------
7c1f7769bf | Jesse Luehrs | 2010-09-05 14:53:32 -0500

make the ally attack prompt slightly different under oka

--------------------------------------------------------------------------------
d2e99c620b | David Lawrence Ramsey | 2010-09-05 14:44:18 -0500

Fix Mantis 1448.
Merfolk in water are no longer considered to have usable talons.  Also,
some inconsistencies in player_has_feet() have been fixed: merfolk in
water do not have feet, while draconians do.

--------------------------------------------------------------------------------
c60709c3a2 | David Lawrence Ramsey | 2010-09-05 14:41:11 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
613d9ba10d | Jesse Luehrs | 2010-09-05 13:41:45 -0500

fix up item appearance if acquirement rerolls a brand for it

--------------------------------------------------------------------------------
532c2ea1ed | Jesse Luehrs | 2010-09-05 13:26:23 -0500

unided scrolls of recharging should fail if they target a full wand

--------------------------------------------------------------------------------
a88d6a9c91 | David Lawrence Ramsey | 2010-09-05 13:07:17 -0500

Move the Serpent of Hell tile to the uniques section.

--------------------------------------------------------------------------------
74a699250a | David Lawrence Ramsey | 2010-09-05 13:07:17 -0500

Comment fix.

--------------------------------------------------------------------------------
6f7e12d8c9 | David Lawrence Ramsey | 2010-09-05 13:07:17 -0500

Update animals.txt using mon-data.h.

--------------------------------------------------------------------------------
9be5f58b16 | Jesse Luehrs | 2010-09-05 12:47:27 -0500

also offer to wield coagulated blood for sublimation

--------------------------------------------------------------------------------
ba3f5502a1 | David Lawrence Ramsey | 2010-09-05 12:22:54 -0500

Move wights to the proper section in dc-mon.txt.

--------------------------------------------------------------------------------
51bd627a54 | David Lawrence Ramsey | 2010-09-05 12:00:59 -0500

Comment fix.

--------------------------------------------------------------------------------
f591bfe21a | Jesse Luehrs | 2010-09-05 11:16:10 -0500

make eustachio a bit shallower (might need to go further, we'll see)

--------------------------------------------------------------------------------
87069047af | Jesse Luehrs | 2010-09-05 11:14:05 -0500

note that mr bonus is related to skill in staff of ench description

--------------------------------------------------------------------------------
d5d0a4d7b0 | Robert Vollmert | 2010-09-05 17:43:31 +0200

Fix part of Vault:8 brokenness.
The four quadrants are now shuffled, so the prize quadrant is not
always next to the two stone stairs.

This doesn't fix the broken rune placement.

--------------------------------------------------------------------------------
112575626a | Jesse Luehrs | 2010-09-05 10:30:09 -0500

also need ISFLAG_KNOW_TYPE for randarts to be fully identified

--------------------------------------------------------------------------------
02e57cf5f0 | Jesse Luehrs | 2010-09-05 10:24:30 -0500

clear randart autoinscription before wizmode-rerandarting

--------------------------------------------------------------------------------
c8c61f6c28 | Jesse Luehrs | 2010-09-05 10:00:24 -0500

allow using ?id to find rod pluses

--------------------------------------------------------------------------------
864168f17c | Robert Vollmert | 2010-09-05 12:56:14 +0200

Fix xom.cc:_confuse_monster not actually doing anything.

--------------------------------------------------------------------------------
31adfd4839 | Robert Vollmert | 2010-09-05 12:56:13 +0200

Rename class "monsters" to "monster".

--------------------------------------------------------------------------------
a49e4492fc | Robert Vollmert | 2010-09-05 12:56:08 +0200

Rename variables named "monster" to "mons" or similar.

--------------------------------------------------------------------------------
a16ef2ae22 | Adam Borowski | 2010-09-05 11:46:07 +0200

Don't try to delete the old-style save parts.

--------------------------------------------------------------------------------
097ee979f8 | Adam Borowski | 2010-09-05 10:51:17 +0200

"--edit-save Joe repack" that defrags the save file.
It's mostly so you can see how much of the file was lost to due to waste.
If everything is working as designed, waste should never exceed the size of
compressed global chunks (chr, you, tc, kil, ...) plus at most two levels
-- that is, the biggest set of chunks rewritten between commits.

If you know a case when the waste explodes in size, tell me!

--------------------------------------------------------------------------------
de7e71ba2b | Adam Borowski | 2010-09-05 10:16:08 +0200

Disable COSTLY_ASSERTS.
They apply only to the core internal format whose code is pretty solid
(stress-tested on hundreds of millions of random operations), and the file
gets fscked on rw opens anyway.

It's code outside of package.cc which could use better checks.

--------------------------------------------------------------------------------
0dddc8ccfb | Jesse Luehrs | 2010-09-04 23:42:27 -0500

remove extraneous monster_polymorph in porkalate during targeting

--------------------------------------------------------------------------------
cd5c1a61c4 | Jesse Luehrs | 2010-09-04 23:37:22 -0500

reveal teleport traps if a monster triggers them while in sight

--------------------------------------------------------------------------------
87e7528543 | Jesse Luehrs | 2010-09-04 23:20:03 -0500

don't give nikola gauntlets of archery

--------------------------------------------------------------------------------
2b4188470c | Jesse Luehrs | 2010-09-04 23:12:54 -0500

fix item descriptions from not copying over plus2 in item_def copies

--------------------------------------------------------------------------------
426aa2f277 | Jesse Luehrs | 2010-09-04 22:02:51 -0500

only give two-weapon monsters two *weapons*, not all other items

--------------------------------------------------------------------------------
e9e6a81c74 | Jesse Luehrs | 2010-09-04 21:40:41 -0500

more accurate conjure flame error messages

--------------------------------------------------------------------------------
33b15a06db | Jesse Luehrs | 2010-09-04 21:15:08 -0500

don't allow accidentally blinking to dangerous places

--------------------------------------------------------------------------------
4552a726d8 | Jesse Luehrs | 2010-09-04 20:45:34 -0500

fix chaos brand segfault

--------------------------------------------------------------------------------
272d1f3a8a | Jesse Luehrs | 2010-09-04 20:38:42 -0500

don't allow monsters to cast spells in porkalated form either

--------------------------------------------------------------------------------
c83acb7bda | Adam Borowski | 2010-09-05 02:42:38 +0200

Actually do commit sometimes, not just on exit.

--------------------------------------------------------------------------------
0a203dee87 | Adam Borowski | 2010-09-05 01:56:08 +0200

Update the doll reader.

--------------------------------------------------------------------------------
6fa7efc481 | Adam Borowski | 2010-09-05 01:40:50 +0200

Update the save browser to the new system.

--------------------------------------------------------------------------------
f5ed8260cf | David Lawrence Ramsey | 2010-09-04 18:18:30 -0500

Tweak wording.

--------------------------------------------------------------------------------
cd84204efb | Robert Vollmert | 2010-09-05 00:23:26 +0200

Make mons_genus() accept MONS_NO_MONSTER.
This fixes a crash where _set_allied_target calls mons_genus() on
targ->base_monster.

--------------------------------------------------------------------------------
0802bfe65c | Jesse Luehrs | 2010-09-04 17:02:33 -0500

check autoinscriptions when blood coagulates

--------------------------------------------------------------------------------
992c966e57 | Jesse Luehrs | 2010-09-04 16:43:35 -0500

okay, so this wasn't as uncontroversial as i thought i guess

--------------------------------------------------------------------------------
f981bca9b4 | Jesse Luehrs | 2010-09-04 16:35:34 -0500

okay, make royal jelly restore a point of one random stat instead

--------------------------------------------------------------------------------
5e85841f21 | Jesse Luehrs | 2010-09-04 16:29:40 -0500

remove royal jelly stat healing

--------------------------------------------------------------------------------
f0a1b2e519 | David Lawrence Ramsey | 2010-09-04 16:21:51 -0500

Generalize Pikel's check for whip-type weapons.

--------------------------------------------------------------------------------
1af2c72602 | David Lawrence Ramsey | 2010-09-04 16:21:37 -0500

Comment fixes.

--------------------------------------------------------------------------------
13dfb8c4f1 | Robert Vollmert | 2010-09-04 22:59:41 +0200

Fix viewport shift by (1,1).

--------------------------------------------------------------------------------
f458d333a1 | David Lawrence Ramsey | 2010-09-04 15:49:47 -0500

Make draconian monks hit instead of punch.
This is so that they can use weapons properly.

--------------------------------------------------------------------------------
ad69564eaf | David Lawrence Ramsey | 2010-09-04 15:49:47 -0500

Fix part of Mantis 2457: Fedhas should care about disintegrating trees.

--------------------------------------------------------------------------------
c6aaba3698 | David Lawrence Ramsey | 2010-09-04 15:49:46 -0500

Remove redundant check.

--------------------------------------------------------------------------------
60738c7bd6 | Jesse Luehrs | 2010-09-04 15:48:38 -0500

make sure we don't try to place multiple serpents of hell

--------------------------------------------------------------------------------
a316ba2d6b | Jesse Luehrs | 2010-09-04 15:42:31 -0500

abbreviate serpent_of_hell_flavour to soh_flavour in monster specs

--------------------------------------------------------------------------------
c30154ccdc | Jesse Luehrs | 2010-09-04 15:32:48 -0500

disable equipment corrosion from slime walls

--------------------------------------------------------------------------------
f8a93de5d0 | Adam Borowski | 2010-09-04 22:32:36 +0200

Simplify ghost I/O.

--------------------------------------------------------------------------------
54f1aa1ec7 | Jesse Luehrs | 2010-09-04 15:04:52 -0500

allow draconians to pick up and use new weapons/armour

--------------------------------------------------------------------------------
b91d32780e | Adam Borowski | 2010-09-04 21:46:20 +0200

Let people read the messages for external fails.

--------------------------------------------------------------------------------
fa22515c35 | David Lawrence Ramsey | 2010-09-04 14:45:16 -0500

Fix two last references to Wayne (-> Wiglaf).

--------------------------------------------------------------------------------
ddea6338ec | Jesse Luehrs | 2010-09-04 14:31:58 -0500

allow explicitly placing any flavour of serpent of hell
added a monster spec tag "serpent_of_hell_flavour" which takes the
branch name that it should be flavoured as. defaults to the hell branch
you're currently in, or gehenna if you're not in hell.

--------------------------------------------------------------------------------
41c34cc35d | David Lawrence Ramsey | 2010-09-04 14:23:06 -0500

Add settings file for 0.8 monster glyph changes.

--------------------------------------------------------------------------------
5d2f88abd7 | David Lawrence Ramsey | 2010-09-04 14:19:49 -0500

Comment fixes.

--------------------------------------------------------------------------------
3506928653 | Adam Borowski | 2010-09-04 21:04:45 +0200

Rip away the multiple tags code.
I especially enjoyed removing that big ALL-CAPS shouting comment telling
people to never touch the write/read functions for individual tags.
Down with hugely granulated inflexible versioning schemes!

--------------------------------------------------------------------------------
52aafa4dff | Adam Borowski | 2010-09-04 20:37:01 +0200

Rename Wayne to Wiglaf. (due)
This reverts commit abf8388a1c26220404b467aa8e035a2096fe4ec4.

--------------------------------------------------------------------------------
6940d8d63e | Jesse Luehrs | 2010-09-04 13:28:16 -0500

handle leading 'the' in unique names properly

--------------------------------------------------------------------------------
71cca75722 | David Lawrence Ramsey | 2010-09-04 13:22:23 -0500

Properly use mons_base_type() to determine if zombified monsters fly.
This preserves the previous fix to ensure that spectral things levitate.

--------------------------------------------------------------------------------
943fe5d5de | David Lawrence Ramsey | 2010-09-04 13:16:54 -0500

Revert "Also use mons_base_type() to determine if zombified monsters fly."
This reverts commit d1156e5a2c6b30c51f8f5b15ffb5d2ec5ff7bfb3.

(This is actually needed to ensure that spectral things levitate.)

--------------------------------------------------------------------------------
91d8f0ae6d | David Lawrence Ramsey | 2010-09-04 13:03:51 -0500

Simplify.

--------------------------------------------------------------------------------
ad8eb563d3 | Jesse Luehrs | 2010-09-04 12:33:51 -0500

don't give !healing to new DD

--------------------------------------------------------------------------------
fbf866da51 | Jesse Luehrs | 2010-09-04 12:28:26 -0500

implement rob's suggestion for paralysis
this isn't quite right, since you can still get reparalyzed if the
monster acts before you on the turn you come out of paralysis
(especially if slowed). probably will need to use a pseudo-enchantment
thing like we do for sleep. this is close enough for a first pass
though.

--------------------------------------------------------------------------------
92453c4ae5 | David Lawrence Ramsey | 2010-09-04 12:04:17 -0500

Remove unneeded blank line.

--------------------------------------------------------------------------------
72fe115a86 | Shayne Halvorson | 2010-09-04 11:53:05 -0500

Spectral orcs spell for Nergalle

--------------------------------------------------------------------------------
045d168bc4 | David Lawrence Ramsey | 2010-09-04 11:44:33 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d27c666bf5 | David Lawrence Ramsey | 2010-09-04 11:42:21 -0500

Fix erroneous fallthrough for spells TSO hates.

--------------------------------------------------------------------------------
b2f20987db | David Lawrence Ramsey | 2010-09-04 11:26:06 -0500

In religion.cc, sort the gods by piety decay rate.

--------------------------------------------------------------------------------
40dfe7eb28 | Jesse Luehrs | 2010-09-04 11:21:02 -0500

don't allow sleep while berserk or undead
this is consistent with hibernate, which just adds additional checks for
cold res and for recently being hibernated - do we want the "recently
been hibernated" bit for sleep too?

--------------------------------------------------------------------------------
740365234a | David Lawrence Ramsey | 2010-09-04 10:50:05 -0500

Put all the Serpent of Hell's spell lists in the unique section when save 
compatibility breaks.

--------------------------------------------------------------------------------
ad6b92ebe1 | Jesse Luehrs | 2010-09-04 10:44:16 -0500

remove debugging mprs

--------------------------------------------------------------------------------
3c8c04d7e0 | Robert Vollmert | 2010-09-04 17:29:15 +0200

Fix tiles compile error (Napkin).

--------------------------------------------------------------------------------
70fecc4164 | Robert Vollmert | 2010-09-04 16:47:17 +0200

Track cumulative damage per turn and death source.
This adds fields "sdam" and "tdam" to the score file.

--------------------------------------------------------------------------------
79223f573b | Darshan Shaligram | 2010-09-04 19:42:39 +0530

Fix travel.find_deepest_explored pegging CPU if used with a bad branch name 
(by).

--------------------------------------------------------------------------------
f07c2355e9 | Robert Vollmert | 2010-09-05 10:12:56 +0200

View coordinates now relative to viewport, not screen.
Also name some bounds checking functions less terribly and move to
viewgeom, and add new screen<->grid transforms.

Fixes issue #2215 (Fedhas targeting with messages_at_top) and is
likely to reduce the chance of future breakage with messages_at_top.

Also likely to introduce bugs.

--------------------------------------------------------------------------------
d8051c6f31 | Robert Vollmert | 2010-09-05 10:09:58 +0200

Get rid of in_los, in_vlos.

--------------------------------------------------------------------------------
d556f6b312 | Robert Vollmert | 2010-09-05 10:03:03 +0200

Make update_visible_stashes use radius_iterator.

--------------------------------------------------------------------------------
9b95ec0288 | Robert Vollmert | 2010-09-05 08:29:52 +0200

Use the crawl_view coordinate transformations in some places.

--------------------------------------------------------------------------------
142eb95b1c | Robert Vollmert | 2010-09-05 08:29:46 +0200

Make coordinate transformations members of crawl_view.

--------------------------------------------------------------------------------
2047b7fc26 | Robert Vollmert | 2010-09-05 08:06:25 +0200

Simplify some coordinate transformations.

--------------------------------------------------------------------------------
379767d64d | Robert Vollmert | 2010-09-05 08:02:30 +0200

Remove some unused coordinate tranformations.

--------------------------------------------------------------------------------
390e44ca6b | Adam Borowski | 2010-09-04 11:25:41 +0200

Merge TAG_YOU_*, split out TAG_CHR.
No chunk bears multiple tags anymore.

Splitting out the basic char data eliminated the need to allow loading only
certain parts of the main subfile/chunk.

--------------------------------------------------------------------------------
73320bf7ff | Jesse Luehrs | 2010-09-04 02:32:09 -0500

allow the serpent of hell to spawn in any hell branch
it's guaranteed (well, sort of) to spawn in exactly one hell end, and
its color/spellbook/resists are customized for that hell branch.

--------------------------------------------------------------------------------
1eba6114b6 | David Lawrence Ramsey | 2010-09-03 21:48:39 -0500

Treat flaming corpses as humanoid-shaped, since they were adventurers.

--------------------------------------------------------------------------------
a2bb1efcf1 | Jesse Luehrs | 2010-09-03 21:44:33 -0500

use 'it' for serpent of hell (clouded)

--------------------------------------------------------------------------------
1c1d2d6013 | Jesse Luehrs | 2010-09-03 21:29:19 -0500

enable elephant generation in D and Lair (with bands)

--------------------------------------------------------------------------------
8802e6fce9 | Adam Borowski | 2010-09-04 04:25:14 +0200

Do bounds checking when reading byte by byte.

--------------------------------------------------------------------------------
fbb8e6aa86 | David Lawrence Ramsey | 2010-09-03 20:45:49 -0500

Actually reorder wights in mon-data.h when save compatibility breaks.

--------------------------------------------------------------------------------
ac53d20a8c | Adam Borowski | 2010-09-04 03:33:30 +0200

Merge TAG_LEVEL_ITEMS, TAG_LEVEL_MONSTERS and TAG_LEVEL_TILES into TAG_LEVEL.
This is part 1 of removing multiple tag madness.

Breaks save compat (well, if you bothered to import files into chunks so far...)

--------------------------------------------------------------------------------
a2f257aecb | Adam Borowski | 2010-09-04 02:44:17 +0200

Store the "lua" subfile as a chunk.

--------------------------------------------------------------------------------
1f40d3bf8b | Adam Borowski | 2010-09-04 02:25:25 +0200

On an abnormal exit, don't insist the save is properly closed.

--------------------------------------------------------------------------------
8f59733060 | Jesse Luehrs | 2010-09-03 18:39:06 -0500

move wights to green 'z' (mantis 2327)
should reorder it in the monster array next time save compat is broken

--------------------------------------------------------------------------------
3a97fa9ebd | Jesse Luehrs | 2010-09-03 18:35:44 -0500

flying skulls are skeletal

--------------------------------------------------------------------------------
52bc83e6a9 | Jesse Luehrs | 2010-09-03 18:33:34 -0500

flying skeletal/icy monsters shouldn't take extra shatter damage

--------------------------------------------------------------------------------
bc4a46f1e0 | Adam Borowski | 2010-09-04 01:22:55 +0200

Write (but not read yet!) doll files as chunks.

--------------------------------------------------------------------------------
44b7459462 | Adam Borowski | 2010-09-04 01:00:54 +0200

Fix tiles compile.

--------------------------------------------------------------------------------
ec1df58464 | Adam Borowski | 2010-09-04 00:38:59 +0200

Allow reads of 0 bytes, they do happen.

--------------------------------------------------------------------------------
f3a8af65ae | Adam Borowski | 2010-09-04 00:36:34 +0200

Store most save subfiles as chunks, except chr, lua, tdl.

--------------------------------------------------------------------------------
768f81b9db | Adam Borowski | 2010-09-04 00:17:08 +0200

"crawl --edit-save", to mess with the innards that used to be separate files.

--------------------------------------------------------------------------------
5a61ae8b6d | Adam Borowski | 2010-09-04 00:17:07 +0200

Fix plain writes to a new chunk as the lone operation being ignored.

--------------------------------------------------------------------------------
cfb0f25d97 | David Lawrence Ramsey | 2010-09-03 14:35:31 -0500

Fix Mantis 2311.
Apply argonaut's fix to properly describe hydras killed by decapitation.

--------------------------------------------------------------------------------
3d3ebf488d | David Lawrence Ramsey | 2010-09-03 13:44:58 -0500

Update comment.

--------------------------------------------------------------------------------
a858cb9fdf | Mu | 2010-09-03 16:44:14 +0100

Prevent Tiamat the inevitable acid blob from eating a door in sprint_mu
Tiamat usually wanders into the mutagenic fog in zot,
transforms into an acid blob and eats the door in
front of the orb. This makes the orb apportable,
which really spoils my fun.

--------------------------------------------------------------------------------
0c6c511b45 | Adam Borowski | 2010-09-03 16:50:57 +0200

Whitespace nazis to the rescue!

--------------------------------------------------------------------------------
77342cd1b1 | Eino Keskitalo | 2010-09-03 17:44:58 +0300

Three new volcano_grotto subvaults, with modified statue monsters. Tiles 
included.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
c2102b4bbc | Eino Keskitalo | 2010-09-03 17:44:58 +0300

One new volcano_tomb subvault.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
634f4f7403 | Eino Keskitalo | 2010-09-03 17:44:58 +0300

Four new volcano_grotto subvaults.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
8165470dff | Eino Keskitalo | 2010-09-03 17:44:58 +0300

Make volcano_grotto and volcano_tomb utilize subvaults. No new maps in this 
commit. volcano_lake subvaultification pending a bugfix.
I modified volcano_setup a bit to re-use it in the subvaults.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1fc0b71c69 | Roberto | 2010-09-03 09:24:32 -0500

fixed (stopped) monsters having emergency casting while berserk

--------------------------------------------------------------------------------
ea38c37cd3 | Adam Borowski | 2010-09-03 16:19:30 +0200

Use a pointer instead of a reference, since you.save will be everywhere.

--------------------------------------------------------------------------------
e2880533b7 | Adam Borowski | 2010-09-03 16:19:29 +0200

Support for writing tags as chunks.

--------------------------------------------------------------------------------
3166d01558 | Adam Borowski | 2010-09-03 16:19:29 +0200

Create and delete the save file.

--------------------------------------------------------------------------------
e5d4a0bd90 | Adam Borowski | 2010-09-03 16:19:28 +0200

Rip away the save tarring/zipping code.

--------------------------------------------------------------------------------
e90b1c9877 | Adam Borowski | 2010-09-03 16:19:28 +0200

Allow "aborting" a save file, to bail out safely, or prepare for discarding.
It effectively reverts to the last commit.  This is the safest thing to do in
an error, and if we're going to delete the save file, it doesn't matter.

--------------------------------------------------------------------------------
12fba43162 | Adam Borowski | 2010-09-03 16:19:23 +0200

Convert ./crawl --save-version to the new format.

--------------------------------------------------------------------------------
fc04c51fdf | Eino Keskitalo | 2010-09-03 17:11:08 +0300

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
f12f457ee4 | Eino Keskitalo | 2010-09-03 17:09:39 +0300

Fix typo.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6b3be4123d | Eino Keskitalo | 2010-09-03 17:09:19 +0300

Edit a dated comment.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4c2823b8bb | Eino Keskitalo | 2010-09-03 17:08:40 +0300

Fix a comment.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4ae2d0f151 | Eino Keskitalo | 2010-09-03 17:08:28 +0300

Fix a typo in jungle_book, preventing the long description of moss-covered 
stone walls from showing.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
73e103df7e | Jesse Luehrs | 2010-09-03 09:04:51 -0500

don't allow blowing the horn of geryon when silenced

--------------------------------------------------------------------------------
9b88f7b218 | Mu | 2010-09-03 13:42:42 +0100

Eliminate strange block of crystal in elf section of sprint_mu

--------------------------------------------------------------------------------
d89cda1a9c | Robert Vollmert | 2010-09-03 13:28:11 +0200

Fix unactivated marker asserts related to corruption and tomb markers. 
(greensnark)
Just clear the "need activate" flag, so other unactivated markers might
occasionally slip through.

Fixes issue #2195.

--------------------------------------------------------------------------------
3c15f1b595 | Jesse Luehrs | 2010-09-02 20:16:34 -0500

make the Serpent of Hell an actual unique

--------------------------------------------------------------------------------
38c4121f53 | Jesse Luehrs | 2010-09-02 19:49:04 -0500

enable Mennas, without !sil

--------------------------------------------------------------------------------
abf8388a1c | Jesse Luehrs | 2010-09-02 18:58:02 -0500

rename wayne to francis
i don't see a problem with this, and people seem to like preserving the
unique "pairs" (francis/frances in this case). there was also talk of
"francis" being a bad fit for a dwarf name though, so feel free to
revert if you feel strongly.

--------------------------------------------------------------------------------
d003f894f8 | Jesse Luehrs | 2010-09-02 18:44:31 -0500

remove duane, francis, and norbert

--------------------------------------------------------------------------------
8f5e864865 | Robert Vollmert | 2010-09-02 23:22:18 +0200

Fix an exercise call without player check. (kilobyte)

--------------------------------------------------------------------------------
2f93068efd | Robert Vollmert | 2010-09-02 22:42:03 +0200

Fix new map_knowledge not handling cloud colours properly.

--------------------------------------------------------------------------------
c2a8facb2a | Robert Vollmert | 2010-09-02 22:35:26 +0200

Spelling.

--------------------------------------------------------------------------------
2c980d25fe | Robert Vollmert | 2010-09-02 21:23:38 +0200

Potions of water don't give extra nutrition. Plain fountains give none. (#2443)

--------------------------------------------------------------------------------
4029701003 | Robert Vollmert | 2010-09-03 11:13:24 +0200

Collect calls to exercise() and sort by action instead of skill.
Code no longer calls exercise() specifying skill and extent of
exercise, but instead calls practise() specifying what has
happened.

The exer_type enum values make explicit whether exercise occurs
before or after dealing damage -- that's a big current
difference between melee and spell training.

We can now safely add new practise() hooks without affecting
skill training, and moving to a different exercise model
should be mostly limited to exercise.cc and skills.cc.

Intended functional changes:

* Slouch now exercises after the action like other abilities.
  If the original behaviour wa intentional, it'd be better to
  lower the training degree instead.
* The dodging mass check no longer affects whether an attack
  is considered "perceived". There's still a dubious
  one_chance_in(3) regarding perception of dodged attacks.

For generic item evocation, the degree of training is just passed
through as parameter for now -- the evoked item should probably
be passed to practise() and the degree decision made there.

--------------------------------------------------------------------------------
0b6663b00a | Robert Vollmert | 2010-09-03 11:09:47 +0200

Remove actor::exercise.
It doesn't seem likely we'll have monsters training skills soon,
so this seems out of place in the actor interface. It would be
easy to reintroduce if new monster-player-generic code required
it.

--------------------------------------------------------------------------------
9d18582655 | Robert Vollmert | 2010-09-03 11:09:47 +0200

Remove an unused parameter from exercise_spell().

--------------------------------------------------------------------------------
8ace29b246 | Robert Vollmert | 2010-09-03 11:09:47 +0200

Simplify shield exercise for unsuccessful beam block.

--------------------------------------------------------------------------------
75e4154515 | Robert Vollmert | 2010-09-03 11:09:46 +0200

Make ability skill training more consistent.
If an ability succeeds well enough to cost mp, etc., it now consistently
exercises the relevant skill. This was mostly violated for some newer
Zin and Jiyva abilities.

--------------------------------------------------------------------------------
789d289d2d | Adam Borowski | 2010-09-02 14:17:13 +0200

Fix chunks not being found due to nulls in their names.

--------------------------------------------------------------------------------
d582910df3 | Adam Borowski | 2010-09-02 14:17:13 +0200

List the save's chunks on open when DEBUG_PACKAGE is defined.

--------------------------------------------------------------------------------
2e9e41d428 | Adam Borowski | 2010-09-02 14:17:13 +0200

Add public constructors for chunk readers/writers, so no ref handling is needed.

--------------------------------------------------------------------------------
5ad504f483 | Adam Borowski | 2010-09-02 14:17:13 +0200

Make external fails catchable.

--------------------------------------------------------------------------------
b1fd974d56 | Adam Borowski | 2010-09-02 14:16:40 +0200

Merge branch 'master' into save-package

--------------------------------------------------------------------------------
d38f0bddf9 | Adam Borowski | 2010-09-02 13:52:44 +0200

Suppress an O(1) memory leak in glibc.

--------------------------------------------------------------------------------
4e15903fb0 | Adam Borowski | 2010-09-02 13:52:39 +0200

Fix a harmless memory leak, to reduce valgrind spam.

--------------------------------------------------------------------------------
76a5d58ca0 | Adam Borowski | 2010-09-02 05:20:22 +0200

Felids: create corpses on death, for necromancy fun.

--------------------------------------------------------------------------------
eadca3df3e | Adam Borowski | 2010-09-02 05:11:26 +0200

Merge branch 'master' into cats

--------------------------------------------------------------------------------
64f35697b4 | Adam Borowski | 2010-09-02 05:06:37 +0200

Make player_mons() usable for purposes other than getting the symbol.

--------------------------------------------------------------------------------
ce13271cfc | Adam Borowski | 2010-09-02 05:06:36 +0200

Show empathy from the Dowsing card on the HUD.

--------------------------------------------------------------------------------
c214cc37e9 | Robert Vollmert | 2010-09-02 00:50:55 +0200

A copy assignment operator for the new map_cell.
Lack of this caused various memory handling badnesses,
e.g. memory leaks or segmentation faults on exit.

--------------------------------------------------------------------------------
d50d872f9d | Mu | 2010-09-01 13:38:07 +0100

New sprint map: The Ten Rune Challenge
This is the same sprint map used in the 2010 tournament,
with some minor tweaks: an early book is now guaranteed,
lots of identify scrolls are now guaranteed, fewer
draining weapons exist on the map, fewer zot traps in
Zot, several doors are monster restricted until opened,
the elemental statues have fewer hit points, and the
'orb door' in zot is now virtually indestructable.

It is still missing some tiles for certain customized
enemies, and the terrain (walls etc) needs tiles
specifying too.

--------------------------------------------------------------------------------
fbebf62b95 | Adam Borowski | 2010-09-01 12:44:39 +0200

Fix power 1 Dance card producing long swords of reaching, dragon slaying, etc.
(A random weapon is generated first, and its brand was not reset.)

--------------------------------------------------------------------------------
7edc6f3382 | Adam Borowski | 2010-09-01 11:36:48 +0200

Fix lajatangs never getting granted by gods to non-Sp if skill is >= 11.
This was caused by a round-off error making the acquirement weight 0,
unless you have low Staves skill, high Shields, or are a spriggan for
whom staves are strictly two-handed.

--------------------------------------------------------------------------------
7d31e05d0d | Adam Borowski | 2010-08-31 13:57:27 +0200

Don't show Forest nor Spider's Nest on ^O.

--------------------------------------------------------------------------------
ab489b243e | Adam Borowski | 2010-08-31 13:42:52 +0200

Felids: cats can't kneel.

--------------------------------------------------------------------------------
d28757cb6d | Robert Vollmert | 2010-08-30 15:25:39 +0200

Fix stat boosting armour not losing bonus when melding.

--------------------------------------------------------------------------------
035acf44ed | Adam Borowski | 2010-08-30 15:12:02 +0200

Place two statues in the orb chamber.
They are not meant to block apportation, just to make it less effortless.
You can't skip the whole chamber outright anymore.  The statues can be
disintegrated, but in the default configuration, orb guardians will block
the line of effect.  LRD will work just fine there -- but otherwise, you'll
need to enter the actual chamber.

--------------------------------------------------------------------------------
6d769b9e13 | Vsevolod Kozlov | 2010-08-29 14:26:56 +0400

Remove mons_can_pass.  Replace with monsters::can_pass_through_feat.

--------------------------------------------------------------------------------
284f16f4e3 | Eino Keskitalo | 2010-08-28 16:47:27 +0300

minmay_eyes: replace giant eyeballs with golden eyes, as per #2381.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
55e2419605 | David Ploog | 2010-08-28 15:44:07 +0200

One more Klown speech change. (due)

--------------------------------------------------------------------------------
0d9eb9b2d7 | David Ploog | 2010-08-28 15:03:22 +0200

Some more Killer Klown speech.

--------------------------------------------------------------------------------
10a838f3b2 | David Ploog | 2010-08-28 14:08:45 +0200

Add Killer Klown speech (greensnark)

--------------------------------------------------------------------------------
59ff81a746 | David Ploog | 2010-08-28 11:49:56 +0200

Repair david_shrine_entry (kilobyte, greensnark).

--------------------------------------------------------------------------------
3c22befb0b | David Ploog | 2010-08-27 22:27:44 +0200

Add new Pan vaults, one for each major demon lord (st).

--------------------------------------------------------------------------------
0e390e0cda | David Ploog | 2010-08-27 22:18:52 +0200

Add force_more_messages for bazaar and labyrinth announcements.
This is not ideal for those who have init files far away from the default
one. But it is a clear improvement for now.

--------------------------------------------------------------------------------
c80335ef7f | David Ploog | 2010-08-27 21:16:23 +0200

Exclude sword-in-stone vault from Lair subbranches. (st_)

--------------------------------------------------------------------------------
13704bcc89 | Darshan Shaligram | 2010-08-28 00:15:23 +0530

[2394] Fix Shoals incremental tide updates to guarantee a shallow water 
intermediate step, produce a warning message when the tide comes in under an 
airborne player.

--------------------------------------------------------------------------------
6f4d09e237 | Darshan Shaligram | 2010-08-27 23:46:44 +0530

[2394] Fix Shoals vault postprocessing not setting correct heights for walls in 
vaults.

--------------------------------------------------------------------------------
dc691e8bff | Darshan Shaligram | 2010-08-27 23:34:15 +0530

Convert map_cell::flags to uint32_t since there are several 32-bit MAP_ flags.

--------------------------------------------------------------------------------
e2c5125f20 | Adam Borowski | 2010-08-27 13:36:00 +0200

Fix monsters being marked as "radiating silence".

--------------------------------------------------------------------------------
127804462f | Robert Vollmert | 2010-08-27 12:29:34 +0200

Tweak healer starting skills and mp.
They don't get unarmed combat skill anymore, but gain one extra
starting magic point.

--------------------------------------------------------------------------------
74ff3c4cf5 | Robert Vollmert | 2010-08-27 12:06:00 +0200

Give healers an extra ration. (syllogism)

--------------------------------------------------------------------------------
077200b918 | Adam Borowski | 2010-08-27 11:08:49 +0200

Felids: s/cat/felid/ in a couple more places.

--------------------------------------------------------------------------------
3f08241b69 | Adam Borowski | 2010-08-27 11:08:48 +0200

Felids: bump the tloc skill, for theme.
My reasoning that they shouldn't be good at tloc magic because they can
do that in RL without it was flawed.  Being great at something typically
makes someone even better if new ways of enhancing that are available.

With tloc being a purely utility skill, it shouldn't have balance concerns.

--------------------------------------------------------------------------------
38fb716698 | Adam Borowski | 2010-08-27 10:57:35 +0200

Felids: manual entry.

--------------------------------------------------------------------------------
4e00bcd900 | Adam Borowski | 2010-08-27 00:33:29 +0200

Felids: add the one-line desc for the menu.

--------------------------------------------------------------------------------
18491d8ab9 | Adam Borowski | 2010-08-27 00:28:33 +0200

Merge branch 'master' into cats

--------------------------------------------------------------------------------
f0ef8532f8 | Adam Borowski | 2010-08-26 11:30:45 +0200

A typo in Dissolution's desc.

--------------------------------------------------------------------------------
2bffa7fb90 | Jesse Luehrs | 2010-08-25 16:57:01 -0500

describe ambient_noise

--------------------------------------------------------------------------------
6c38fdbc4f | Jesse Luehrs | 2010-08-25 16:27:20 -0500

add ambient noise levels to branches
noise loudness is increased or decreased by a branch-dependent amount to
simulate having background noise. hive is very noisy and crypt is very
quiet, and a couple other branches are in between... we might want to
give values to a couple other ones, but couldn't really think of good
ideas for that off the top of my head.

i'm not sure how much this actually affects with our current noise
system, but i think it's a reasonable concept to build on.

this also gives a bonus/malus to stealth, the size of which is certainly
up for tweaking (with the current numbers, hive is +40 and crypt is
-40).

--------------------------------------------------------------------------------
389ec75f11 | Jesse Luehrs | 2010-08-25 09:03:33 -0500

also update halo when losing piety

--------------------------------------------------------------------------------
8f1842db14 | Jesse Luehrs | 2010-08-25 08:59:08 -0500

remove tso item sacrifices

--------------------------------------------------------------------------------
3369e714f0 | Robert Vollmert | 2010-08-25 08:52:45 +0200

Extended rage doesn't cause glow. (#2364)
Also no redundant haste extension message in those cases.

You still get glow if you berserk while hasted. Not sure
that matters.

--------------------------------------------------------------------------------
eecdc00d45 | Jesse Luehrs | 2010-08-24 21:45:55 -0500

use portals to hell rather than upstairs for hell exits

--------------------------------------------------------------------------------
f42618b24d | Jesse Luehrs | 2010-08-24 18:33:04 -0500

...but do allow zot exit defenders (thanks Zannick)

--------------------------------------------------------------------------------
c2b011837e | Jesse Luehrs | 2010-08-24 18:26:35 -0500

don't spawn random monsters in the dungeon in sprint

--------------------------------------------------------------------------------
f51a42e9ed | Jesse Luehrs | 2010-08-24 18:20:25 -0500

more descriptive size names

--------------------------------------------------------------------------------
db82757c0e | Jesse Luehrs | 2010-08-24 18:08:36 -0500

add size information to monster descriptions

--------------------------------------------------------------------------------
2e1f223b45 | Jesse Luehrs | 2010-08-24 17:33:23 -0500

don't allow stationary monsters to stumble back

--------------------------------------------------------------------------------
41aa091cf1 | Jesse Luehrs | 2010-08-24 17:25:09 -0500

give the trample ability to players in dragon form
this is implemented somewhat differently for players, since players with
multiple attack types are treated quite a bit differently from monsters
- tweaking here is certainly welcome (i just preserved the logic for how
it decided to use the verb "trample" earlier (to no effect))

--------------------------------------------------------------------------------
6e4a346e2e | Jesse Luehrs | 2010-08-24 17:00:52 -0500

add trampling to all huge dragons

--------------------------------------------------------------------------------
cc83af3f7f | Robert Burnham | 2010-08-24 16:14:32 -0500

Balance demonic guardian timeout
Increses demonic guardian timeout to 100 + random2(200) speed units.
This will equal (on average) 20 regular-speed player turns, during which
an additional guardian cannot spawn. This should help prevent guardian
mobbing and other issues which cause for gameable gameplay, or flat
balance implications.

--------------------------------------------------------------------------------
7c99070812 | Jesse Luehrs | 2010-08-24 16:09:36 -0500

implement a more interesting action for monster trampling
AT_TRAMPLE attacks now have a size-based chance of pushing the defender
backward (and taking the defender's place). This should help
differentiate elephants from yaks a bit.

--------------------------------------------------------------------------------
fffea480e8 | Robert Vollmert | 2010-08-24 19:42:27 +0200

Remove obsolete special unrand code.

--------------------------------------------------------------------------------
fe0f28858c | Robert Vollmert | 2010-08-24 19:39:38 +0200

Get rid of extra chance for special unrandart generation.
Fixes issue #2361.

Item generation now doesn't distinguish between special and
non-special artefacts. Special artefacts are generated
through the same path as non-special ones.

It would be possible to increase odds of artefact generation to
compensate, but I think with loot levels on the rise over the last
few releases, that's really not necessary.

This also unifies abyss and pandemonium handling: Unrands are
not generated randomly for either. The only exception is that
unrands that are not generated randomly but that were left in
the abyss may show up in the abyss again.

--------------------------------------------------------------------------------
ca6c32f0ae | Robert Vollmert | 2010-08-24 08:00:08 +0200

Format a boolean check more clearly.

--------------------------------------------------------------------------------
459b7f23bf | Robert Vollmert | 2010-08-24 07:19:11 +0200

Fix broken unrand specialness determination. (rwbarton, #2360)

--------------------------------------------------------------------------------
604d79d6c7 | Johanna Ploog | 2010-08-24 00:03:22 +0200

Make exclusion tiles semi-transparent.

--------------------------------------------------------------------------------
dbe6ad3950 | Johanna Ploog | 2010-08-24 00:03:20 +0200

Add overflow altars for Xom.

--------------------------------------------------------------------------------
494127182d | Johanna Ploog | 2010-08-24 00:03:18 +0200

Fix comment typos.

--------------------------------------------------------------------------------
e4147bc072 | Adam Borowski | 2010-08-23 22:58:34 +0200

Fix the size factor for armour EV penalty not affecting anyone but spriggans.
Races affected: Ko, Ha, Og, Tr, Na, Ce.

--------------------------------------------------------------------------------
fd8c75fbca | Johanna Ploog | 2010-08-23 19:19:35 +0200

Add variants of existing Temple designs with fewer altars.
I hope I'm not stepping on anyone's toes here. I like those designs,
or I wouldn't have copied them.

As a result of all the recent Temple map changes, the chances for
getting one of the 12-altar maps is now much lower: 58% (was 81%)

Chance for <  8 altars: 11% (was: 4%)
Chance for < 10 altars: 23% (was: 5%)
Chance for < 12 altars: 32% (was: 6%)

Expected (average) number of altars: 10.7 (was 11.8)

--------------------------------------------------------------------------------
35e61e2226 | Johanna Ploog | 2010-08-23 17:49:32 +0200

Add Cyrus' 13-altar Temple designs.
Ages ago Cyrus presented us with a couple of 13-altar Temple designs,
which, at the time, we had no use for. Today I remembered their
existence, dug them out on SourceForge, and here they are. :)

--------------------------------------------------------------------------------
9c2ab8dac0 | Johanna Ploog | 2010-08-23 17:05:31 +0200

Five new temple maps, with 6-12 altars.

--------------------------------------------------------------------------------
7c1893a64d | Johanna Ploog | 2010-08-23 17:03:47 +0200

Remove fixed altars from corrupted_temple.
Aside from featuring Beogh, AFAIK there's no way to check that one
of the random altars doesn't coincide with one of the fixed ones.

Now 3 out of 9 altars will be random Temple gods, all others Lugonu.

--------------------------------------------------------------------------------
288ec85d76 | Eino Keskitalo | 2010-08-23 17:56:35 +0300

Revert low MR for Mountain Dwarves and Hill Orcs.
Overpoweredness of MD should be adressed through AC, and right now they're 
certainly not OP. Low MR is an interesting drawback, but probably this is not 
the spot. Manual will be edited in the wiki.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0079878aff | Eino Keskitalo | 2010-08-23 17:56:35 +0300

Add a placeholder tile for the antimagic brand. Fixes tiles compile.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a6f370e6c0 | Adam Borowski | 2010-08-23 16:53:11 +0200

Trim unused #includes somewhat.

--------------------------------------------------------------------------------
2d35869d2f | Adam Borowski | 2010-08-23 15:02:03 +0200

Fix consistency checks for antimagic.

--------------------------------------------------------------------------------
9e8cb3fd9a | Adam Borowski | 2010-08-23 14:38:13 +0200

Silent spectres.
They radiate silence in a large radius, and spawn in the Crypt (pretty often),
Tartarus and the Abyss (rarely).

--------------------------------------------------------------------------------
e2c2a855e8 | Adam Borowski | 2010-08-23 12:42:00 +0200

Remove tgw_good, there are multiple problems with that vault.

--------------------------------------------------------------------------------
34ea9adfee | Adam Borowski | 2010-08-23 12:28:54 +0200

Evict all the acquirement code out of effects.cc

--------------------------------------------------------------------------------
efd7a44ec1 | Adam Borowski | 2010-08-23 12:05:58 +0200

Make natural monsters with abilities coded as spells unaffected by antimagic.
Magical creatures like electric golems are still affected, so are all priests
and demons.

--------------------------------------------------------------------------------
4b26746cfc | Adam Borowski | 2010-08-23 12:05:57 +0200

An "anti-magic" weapon brand (design by syllogism).
Players who get hit get their mp drained.
Monsters will have problems casting spells and using any spell-like ability.

--------------------------------------------------------------------------------
432084446b | Johanna Ploog | 2010-08-22 23:35:46 +0200

Add new chunk type that is both poisonous and contaminated.
If the player is poison resistant, its effects are the same as for
contaminated flesh, otherwise poisonous ones. I never liked how,
once you've got poison res. swamp drake or gila monster corpses are
all of a sudden more healthy than, say, goblins or fire drakes.

I changed some monsters to use this one instead of CE_POISONOUS.
Feel free to make further changes.

--------------------------------------------------------------------------------
00e47ed0b5 | Johanna Ploog | 2010-08-22 23:10:33 +0200

Insert 0.6.1 changes into changelog.

--------------------------------------------------------------------------------
30711abe29 | Johanna Ploog | 2010-08-22 16:27:21 +0200

Mantis 1944: Update Poisonous Cloud's position in spell books.

--------------------------------------------------------------------------------
3b956b639b | Johanna Ploog | 2010-08-22 14:00:03 +0200

Rename spl-mis.* -> spl-miscast.*

--------------------------------------------------------------------------------
6b7ff6694e | Johanna Ploog | 2010-08-22 13:59:59 +0200

Redistribute ench. spell code into self/wpn enchantment.
Remove spells1.* and spells2.*.

--------------------------------------------------------------------------------
2d5f3c5367 | Johanna Ploog | 2010-08-22 13:59:57 +0200

Move non-self-enchantment spells into new file.
Merge spells2-4.cc into one file.

--------------------------------------------------------------------------------
2af507a765 | Johanna Ploog | 2010-08-22 13:59:53 +0200

Of the remaining spells, move non-enchantment ones into spl-other.cc.

--------------------------------------------------------------------------------
8feb443b24 | Johanna Ploog | 2010-08-22 13:59:51 +0200

Slight changes in the spell code grouping.
Move Stonemail (currently Xom-only) -> spl-goditem.cc, and
Abjuration -> spl-summoning.cc.

--------------------------------------------------------------------------------
db3cca587c | Johanna Ploog | 2010-08-22 13:59:49 +0200

For clarity, rename spl-other -> spl-goditem.

--------------------------------------------------------------------------------
278049ac8b | Johanna Ploog | 2010-08-22 13:59:47 +0200

Move the remaining damage spells into spl-damage.cc.
This leaves mostly enchantments in spells1-4, with only
weapon branding spells in spells2.cc, in particular.

--------------------------------------------------------------------------------
2e50897d49 | Adam Borowski | 2010-08-22 03:39:58 +0200

Repair the gear of regular angels.
They don't spawn in the abyss or by TSO's power, but many vaults use them, and
in some case cherubim would be ill-fitting there.  Also, the design texts say
cherubim are supposed to be ranged attackers, and that would make angel gear
inappropiate for them.

--------------------------------------------------------------------------------
a581b16a7d | Adam Borowski | 2010-08-22 03:19:31 +0200

Add coolio's tiles for: cherub, apis, holy dragon, ophan, paladin.
I personally prefer the green bearded version of the holy dragon, but per
jpeg and due, I've put the eastern one in.

--------------------------------------------------------------------------------
1dcaa4d508 | Adam Borowski | 2010-08-22 01:20:13 +0200

Fix the cherubs' description.
The one inherited from angels is inappropiate -- at least in Christian myths,
they are the second most powerful class after seraphim.  Also, their shape
certainly deserves mentioning.

--------------------------------------------------------------------------------
2d1960d3c4 | Adam Borowski | 2010-08-22 01:17:16 +0200

A quote for the ophanim.

--------------------------------------------------------------------------------
5684de0ebe | Adam Borowski | 2010-08-22 00:57:19 +0200

Fix a typo in a comment.

--------------------------------------------------------------------------------
772cbac918 | Adam Borowski | 2010-08-22 00:54:48 +0200

Put kilobyte_rumbling_trees deeper, the druid is too deadly in early Lair.
This will nuke my kill count! *sniff*

--------------------------------------------------------------------------------
62e9a08c1b | Johanna Ploog | 2010-08-21 22:34:02 +0200

Move divine and item triggered "pseudo spells" into a new file.

--------------------------------------------------------------------------------
4d7739272d | Johanna Ploog | 2010-08-21 21:10:33 +0200

Move cloud-generating spells into new file spl-clouds.cc.

--------------------------------------------------------------------------------
78c700559a | Johanna Ploog | 2010-08-21 19:16:53 +0200

Move Translocation spells into a file of their own.
Again, I grouped the spells according to shared functionality
rather than actual spell schools, so e.g. Dispersal and
Phase Shift are not included.

--------------------------------------------------------------------------------
75401c404a | Johanna Ploog | 2010-08-21 17:10:38 +0200

Move spells summoning monsters into a file of their own.
This also includes non-Summoning spells that nonetheless share the
same functionality, such as Animate Dead or Tukima's Dance.

Also, god effects etc. that summon monsters are also handled here.

--------------------------------------------------------------------------------
d247c107d3 | Johanna Ploog | 2010-08-21 13:02:29 +0200

Don't consider plants/fungi "interesting", no matter their rarity.

--------------------------------------------------------------------------------
b25ec0a923 | Adam Borowski | 2010-08-20 02:12:53 +0200

The transactional save packager.

--------------------------------------------------------------------------------
a290ba3a83 | Adam Borowski | 2010-08-20 00:31:30 +0200

Enums and base support for Forest and the Spider Nest.
There's no level generator, mon-pick functions need to be properly set,
and so on.

--------------------------------------------------------------------------------
6277ada919 | Adam Borowski | 2010-08-19 22:50:14 +0200

Enclose df62c623 in ifdefs, so it gets auto-reverted on the next save break.

--------------------------------------------------------------------------------
7885266968 | Mark Mackey | 2010-08-19 16:45:06 +0100

Toned down golem wave power

--------------------------------------------------------------------------------
028ad3be5c | Mark Mackey | 2010-08-19 16:44:30 +0100

Hostiles will cut down firewood to get to the Orb

--------------------------------------------------------------------------------
e660887ad8 | Johanna Ploog | 2010-08-19 17:12:43 +0200

Also reinitialize the message window and the notes for new games.

--------------------------------------------------------------------------------
df62c62388 | Johanna Ploog | 2010-08-19 17:10:27 +0200

Comment out the levels_seen/PlaceInfo assert.
This will enable players who fell victim to the PlaceInfo bug to
continue their games as soon as CDO updates trunk.

This change should be reverted after some time has passed, preferably
when the next major version change comes around.

--------------------------------------------------------------------------------
8908dede23 | Johanna Ploog | 2010-08-19 17:08:51 +0200

Reinit global_info (PlaceInfo) when starting a new game. Fixes crashes.
With thanks to Syllogism's throw-away comment on Something Awful.
I hadn't realized it was _that_ easy. :)

--------------------------------------------------------------------------------
077bddfb01 | Mark Mackey | 2010-08-19 11:33:52 +0100

Removed "Are you sure" message for stepping on a known mechanical trap in 
zotdef.

--------------------------------------------------------------------------------
753504945b | Adam Borowski | 2010-08-18 15:10:21 +0200

Base monster for DD... not really statted.
The color and/or glyph could probably be changed, too.

--------------------------------------------------------------------------------
97c298e9a1 | Adam Borowski | 2010-08-18 12:00:11 +0200

Fix no-ctele announcements being affected by Tloc skills.
8162c6d4 was supposed to remove those, but it did so for only 2 of 6 places.

--------------------------------------------------------------------------------
d22027d7bc | Johanna Ploog | 2010-08-18 09:45:10 +0200

Add a toggle to the memorisation screen for the spell descriptions.

--------------------------------------------------------------------------------
0159202fc5 | Johanna Ploog | 2010-08-18 09:44:46 +0200

Take gates into account in the open/close direction prompt.

--------------------------------------------------------------------------------
6b533183f0 | Robert Vollmert | 2010-08-17 16:45:07 +0200

Assert that foe is set to a valid value in monster generation.

--------------------------------------------------------------------------------
d5ae3bba20 | Robert Vollmert | 2010-08-17 16:45:07 +0200

Fix a crash when Jiyva worshippers spawn jellies for non-monster-damage.
 http://crawl.akrasiac.org/rawdata/Ebonnov/crash-Ebonnov-20100817-142945.txt

In this case, the damage was caused by reading a holy word scroll. It's not 
entirely
clear jellies should even spawn when the damage source is not a monster, but 
it's
certainly safer now.

--------------------------------------------------------------------------------
9127fd1e72 | Johanna Ploog | 2010-08-16 22:17:00 +0200

Add "You are wearing:" message when "stasis autoIDs.
It's much too easy to miss otherwise.

--------------------------------------------------------------------------------
5fdc2b4f8e | Johanna Ploog | 2010-08-16 22:16:58 +0200

Add a toggle to the discoveries screen to display _un_known items.
You can already get a list of all these items by searching the db.
This is simply more convenient.
Also, wands on this screen now display their maximum number of
charges rather than 0.

--------------------------------------------------------------------------------
f8c06ea9aa | Johanna Ploog | 2010-08-16 22:16:56 +0200

Don't prompt for casting auto-hit spells "in direction" of allies.
Magic Dart and Enchantment never miss the first target, so the
prompt is misleading and superfluous.

--------------------------------------------------------------------------------
3f36140545 | Johanna Ploog | 2010-08-16 22:16:54 +0200

Add #ifndef USE_TILE for some static console-only functions.

--------------------------------------------------------------------------------
54042eceae | Johanna Ploog | 2010-08-16 22:16:52 +0200

More sensible spell sorting in the memorisation list.
1. Spells for which you have enough spell levels always come first.
2. When sorting spells by failure rate use the same rough groupings
   as for the success description. Otherwise, we're leaking
   information that is otherwise not available.
   (Unfortunately that duplicates the group thresholds.)

--------------------------------------------------------------------------------
63f57020df | Johanna Ploog | 2010-08-16 22:16:50 +0200

Enable autotargeting for Vampiric Draining and Freeze.
As usually, Shift-Dir is also possible, so this should be more
convenient all around, especially as it makes the range limitation
more obvious.

--------------------------------------------------------------------------------
e1ecd3c552 | Robert Vollmert | 2010-08-16 13:33:15 +0200

captain's cutlass -> Captain's cutlass
Artefact names are generally a bit inconsistent, but I'll
leave going over those to a native speaker.

--------------------------------------------------------------------------------
d99d3061ec | Johanna Ploog | 2010-08-15 22:35:19 +0200

Include spell hunger in the chardump.
Unfortunately, this pushes the line length to slightly above 80
(with the Strawberry), but I didn't know where to chop something.
Maybe leave out the slot letters?

--------------------------------------------------------------------------------
61ab73bdf9 | Robert Vollmert | 2010-08-14 13:32:07 +0200

Disallow targeting passwall at self (#2274).

--------------------------------------------------------------------------------
bccb472ca6 | Johanna Ploog | 2010-08-13 21:41:01 +0200

Fix #2188: AutoID'd "clarity doesn't id item type.

--------------------------------------------------------------------------------
9b02521feb | Johanna Ploog | 2010-08-13 19:59:14 +0200

Get rid of the Backspace misinformation in the Hints mode selection.

--------------------------------------------------------------------------------
35322e0685 | Johanna Ploog | 2010-08-13 18:42:04 +0200

Make the . drop/pickup selector respect quantity input.

--------------------------------------------------------------------------------
682a605634 | Johanna Ploog | 2010-08-13 18:42:02 +0200

When enchanting an unknown piece of armour, mark it as uncursed.
Enchanting an item always uncurses it, so afterwards it is safe to wear.

--------------------------------------------------------------------------------
c576ceaa99 | Johanna Ploog | 2010-08-13 18:42:00 +0200

Explicitly say which inventory items are getting destroyed.

--------------------------------------------------------------------------------
4a6535a115 | Robert Vollmert | 2010-08-13 17:10:59 +0200

Fix missing shield stat update on dexterity change. (minced)

--------------------------------------------------------------------------------
6854232195 | Robert Burnham | 2010-08-12 17:04:54 -0500

Confused Giant Eyeball revert & reimplementation
Reverts the patch which implemented giant eyeballs' potentially
paralyzing other things in LOS.

This patch prevents all eyeballs from using any abilities, if confused.

--------------------------------------------------------------------------------
65b4968f2b | Johanna Ploog | 2010-08-12 23:52:06 +0200

Update reference to the tutorial in the FAQ.

--------------------------------------------------------------------------------
79f2b86742 | Johanna Ploog | 2010-08-12 23:49:30 +0200

Fix #2232: Don't draw ogre mages with a weapon tile.

--------------------------------------------------------------------------------
cc48ed47a2 | Johanna Ploog | 2010-08-12 23:49:28 +0200

Replace Xom's altar tiles with coolio's new design.
If anyone wants to readd the sparkles, I put one of them in the
UNUSED folder.

--------------------------------------------------------------------------------
33f764fe69 | Johanna Ploog | 2010-08-12 23:49:26 +0200

Add Poor Yurik's new minotaur doll tile, minus horns.
The horns get added dynamically, so I erased them from the tile.
I also added a second variant that does not have furry legs and hooves.

--------------------------------------------------------------------------------
b50dee4350 | Robert Burnham | 2010-08-12 16:09:16 -0500

Mantis 2194 Confused giant eyeballs
Confused giant eyeballs now will look around their LOS at something randomly
with a chance of paralyzing something other than the player. With one other
creature in LOS, this chance is 1/3, with two other creatures in LOS, it
becomes 1/3 + 1/4 = 7/12, with three creatures in LOS, it becomes 1/3 +
1/4 + 1/5 = 47/60.

Only one monster may be paralyzed by a confused giant eyeball.

--------------------------------------------------------------------------------
42465c0cb4 | Robert Burnham | 2010-08-12 15:31:05 -0500

Change rHellfire into binary resist
Changes hellfire into a binary resistance, foregoing any hellfire damage
for any resist value > 0. This also changes cerebov's rHellfire from +++
to just + to avoid future confusion.

--------------------------------------------------------------------------------
7db9b672f2 | Robert Burnham | 2010-08-12 14:47:38 -0500

Mantis 873 : Monster rF counted as rHellfire
Added a monsters::res_hellfire const and changed the call to res_fire
to res_hellfire in beam when monsters are taking damage from a hellfire
blast. This handles all hellfire damage, including hellions, etc. for
all monsters.

rHellfire still counts as maximum rF+++ (perhaps even more than rF+++?)

--------------------------------------------------------------------------------
e045741e09 | Robert Burnham | 2010-08-12 10:50:24 -0500

Mantis 2267 : Colorless => Colourless
Changes colorless to colourless as per standards for australian english
spelling.

--------------------------------------------------------------------------------
93e49fbaf0 | Robert Vollmert | 2010-08-11 17:59:51 +0200

Fix vetoed levels messing up previous level's connectivity data.
_fixup_interlevel_connectivity was marking the previous level's
regions as connected based on the currently generated one and
not undoing these changes if it failed later.

On future tries, it was then operating on bad data, which could
well explain the Orcish Mines disconnectedness problems we've
been seeing.

Now only change the previous level's data once the checks are
passed successfully. The code still relies on the level not
being vetoed after the call to _fixup_interlevel_connectivity.

--------------------------------------------------------------------------------
6a25c9307c | David Lawrence Ramsey | 2010-08-11 10:53:12 -0500

Fix Mantis 2205.
Allow ghouls to use abilities and invocations with food costs while
starving, since they can never starve to death (a la vampires).

--------------------------------------------------------------------------------
d5eba1a122 | David Lawrence Ramsey | 2010-08-11 10:42:25 -0500

Fix a "you're too hungry" message inconsistency.

--------------------------------------------------------------------------------
a21d487769 | David Lawrence Ramsey | 2010-08-11 10:04:25 -0500

Fix Mantis 2243: "favorite" -> "favourite".

--------------------------------------------------------------------------------
e089c825ac | Eino Keskitalo | 2010-08-11 11:41:13 +0300

Let Kiku protect from ordinary mummy curses. (#1857)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4e21c95143 | Eino Keskitalo | 2010-08-11 10:58:03 +0300

Use "[ or ]" instead of "[/]" in level map help text, and change other similar 
entries to have "or" instead of "/". (June3)
Pick-up help already used "or", and it is clearer than the slash, especially in 
the above case.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
5baa2c3fb7 | Robert Burnham | 2010-08-10 21:58:07 -0500

Mantis 2186 : Make Fire Breath and Ice Facet exclusive
Tracks breath weapons and elemental facets separately, making checks
(in comparable fashion to pre-existing, similar exclusions) for
the aforementioned, invalid combination of fire breath and ice facets.

As a side result, not only does this prevent fire breath + icemail,
but it also prevents fire breath + passive freeze.

--------------------------------------------------------------------------------
687251444d | Robert Vollmert | 2010-08-10 22:10:37 +0200

Make Borgnor's Revivification cost a bit more relevant.
In detail, instead of losing 2 to 11 points of maxhp, you now
lose between 2 and 11 percent of maxhp.

This may not be enough to balance a broken spell, but let's see.

--------------------------------------------------------------------------------
8be3596442 | Robert Vollmert | 2010-08-10 21:57:53 +0200

Tone down Kiku's mummy death curse protection.
Now only 50% to entirely avert the curse, and 50% to reduce
miscast severity by 1, so Kiku still guarantees no top
severity miscast effects.

--------------------------------------------------------------------------------
5d056f51ff | Robert Vollmert | 2010-08-10 21:37:07 +0200

Kikubaaqudgha miscast protection tweaks.
For one, make Kikubaaqudgha's mummy death curse protection explicit,
by giving a message when a curse is averted. I believe this to be an
implementation artefact, but leaving in for now.

Then, remove Kikubaaqudgha's protection from necromantic hell effects
(stat drain, slowing, etc). Those were even harder to justify.

--------------------------------------------------------------------------------
d6bdf77ab7 | Robert Vollmert | 2010-08-10 11:14:57 +0200

Make scrolls of vulnerability not affect post-berserk slowing.
It's exhaustion, not magic.

--------------------------------------------------------------------------------
758e667757 | Robert Vollmert | 2010-08-10 10:32:36 +0200

Change selection of random good/bad mutations.
Previously, they used a skewed weighted choice of all mutations,
with matching mutations getting magnified weight. Since there's
more good mutations than bad mutations, that still meant a
whole lot of good mutations for RANDOM_BAD_MUTATION. Considering
that give_bad_mutation used to give only bad mutations, I've
changed this so RANDOM_{BAD,GOOD}_MUTATION only give bad/good
mutations. That also matches how most calls to mutate() are
used: On a chance, give RANDOM_MUTATION or RANDOM_BAD_MUTATION, etc.

Fixes malmutators and glow giving lots of good mutations, by
returning give_bad_mutation to always give bad mutations.

Will make parts of the code that call mutate(RANDOM_BAD_MUTATION)
less nice to the player, and those that call mutate(RANDOM_GOOD_MUTATION)
more nice to the player.

--------------------------------------------------------------------------------
ab6af14d5b | Robert Vollmert | 2010-08-10 10:32:36 +0200

Fix typo (#2247).

--------------------------------------------------------------------------------
26c61a2e7a | Robert Vollmert | 2010-08-10 10:32:35 +0200

Use get_contamination_level() some more.

--------------------------------------------------------------------------------
7935a8b5cf | Robert Vollmert | 2010-08-10 10:32:35 +0200

Make miscast contamination go through contaminate_player.

--------------------------------------------------------------------------------
4890a0b1d3 | Robert Vollmert | 2010-08-10 10:32:30 +0200

Make contamination level distinguish gray glow.
Also fix the Glow statuslight being dark gray when corona'd and slightly
glowing.

--------------------------------------------------------------------------------
934e36dd58 | Robert Vollmert | 2010-08-10 10:31:05 +0200

Simplify contaminate_player.
Also move you.magic_contamination from uint8_t to int to be a little
safer from contamination overflow.

--------------------------------------------------------------------------------
7f6b40539e | Adam Borowski | 2010-08-10 10:27:21 +0200

Fix non-grassy floor tiles in forest_paths. (jpeg)

--------------------------------------------------------------------------------
29b21b34dc | Robert Vollmert | 2010-08-10 00:15:47 +0200

Remove nutrition on hit for vampiric weapons.
They don't need this help, and it's sort of obsolete since
vampiric weapons don't increase hunger rate anymore.

--------------------------------------------------------------------------------
2d613b2fba | Robert Vollmert | 2010-08-09 21:18:08 +0200

Fix an error in previous berserk delay change. (greensnark)
The minimal delay used to be one hasted turn, was changed to 1/10 normal turn.
Previous patch changed to one normal turn. Now back to one average hasted turn.

--------------------------------------------------------------------------------
185212b584 | Robert Vollmert | 2010-08-09 21:03:35 +0200

Fix another minor(?) berserk penalty error.
Berserk penalty used to make the durations not shorter than one turn, while
after the move to time-based durations, they were not made shorter than
one tick (about 1/5 hasted turn). I'm not sure this actually had noticable
consequences.

--------------------------------------------------------------------------------
06efac65a5 | Robert Vollmert | 2010-08-09 21:03:34 +0200

Fix doubled berserk penalties.
This was apparently missed in the move to absolute time based
durations. The berserk penalty used to be counted in hasted
turns but was now multiplied by baseline delay, giving
effectively double penalties. This might explain berserk
running out faster since 0.6.

--------------------------------------------------------------------------------
c36c71d2bf | Robert Vollmert | 2010-08-09 16:01:13 +0200

Correct coordinate transformation in tile_place_cloud. (#2154)

--------------------------------------------------------------------------------
9b2d51a452 | Robert Vollmert | 2010-08-09 12:42:22 +0200

Don't emphasize slime neighbouring stairs and traps.

--------------------------------------------------------------------------------
8b9bb4619a | Robert Vollmert | 2010-08-09 12:42:06 +0200

Fix slime wall neighbours not being emphasized.

--------------------------------------------------------------------------------
8b79836869 | Robert Vollmert | 2010-08-09 12:21:20 +0200

Remove redundant feature check.
Map knowledge should have no undiscovered traps anymore.

--------------------------------------------------------------------------------
e4c5614259 | Robert Vollmert | 2010-08-09 11:51:24 +0200

Make crash level gen dump not crash on empty vault table.
CrawlHashTable::const_iterator assumes hash_map != NULL
(it probably shouldn't). This doesn't fix that, but should
prevent crashes when the vault table does have hash_map == NULL.

--------------------------------------------------------------------------------
247023163c | Robert Vollmert | 2010-08-08 22:08:57 +0200

Treat stasis like -TELE when casting teleport self (MarvinPA).

--------------------------------------------------------------------------------
731fa41110 | Robert Vollmert | 2010-08-08 22:04:49 +0200

Fix wasted turns for known prevented scroll teleports and blinks. (#2230)

--------------------------------------------------------------------------------
989856dad2 | Robert Burnham | 2010-08-08 11:33:03 -0500

Mantis 2225: Hint at bear-family's capability of berserking
Adds to the description of bear-family monsters that, when provoked, they
can become angry (berserk).

--------------------------------------------------------------------------------
01056024f9 | Robert Vollmert | 2010-08-08 17:19:43 +0200

Fix crash with off-level map viewing. (#2219)
The game would crash if the cursor position was outside map bounds when
using []. This can happen when the player only knows a small part of the
map, which is always centered to avoid leaking information.

Not 100% sure this is the cause for the crash in issue #2219, but it's
quite likely.

--------------------------------------------------------------------------------
e91631d097 | Eino Keskitalo | 2010-08-07 15:50:19 +0300

Sort and annotate sewer.des, also adjust weights.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
c7f49419ec | David Ploog | 2010-08-05 23:46:25 +0200

Fewer level sounds from the boring beetle entry vault. (casmith)

--------------------------------------------------------------------------------
58983fa056 | Eino Keskitalo | 2010-08-05 20:35:29 +0300

Fix a dead end in an ice cave. (dpeg)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
9f4615de1c | Robert Vollmert | 2010-08-04 12:23:56 +0200

Improve mons_make_god_gift diagnostics.

--------------------------------------------------------------------------------
f95ccc2ee8 | Robert Vollmert | 2010-08-04 12:23:55 +0200

Remove a questionable monster god gift assert. (#2192)
There's many conceivable ways that a monster could end up an unconverted orc
that was previously a god gift.

--------------------------------------------------------------------------------
c843f0f8e6 | Robert Vollmert | 2010-08-04 12:23:54 +0200

Synchronize crash file name and milestone time stamp. (greensnark)

--------------------------------------------------------------------------------
84aeac03d8 | Robert Vollmert | 2010-08-04 12:23:54 +0200

Allow overriding death time in scorefile_entry, mark_milestone.

--------------------------------------------------------------------------------
250381148c | David Lawrence Ramsey | 2010-08-03 09:28:51 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
8162c6d489 | Robert Vollmert | 2010-08-03 13:37:17 +0200

Don't link no_tele_control announcement to translocations skill.

--------------------------------------------------------------------------------
b333edd083 | Adam Borowski | 2010-08-02 10:43:08 +0200

On removing +Lev items, cancel levitation only if that was the last one.

--------------------------------------------------------------------------------
3b4e933cb7 | Adam Borowski | 2010-08-02 10:35:33 +0200

Fix reversed logic for removing randarts with +Lev.

--------------------------------------------------------------------------------
5fdb996e86 | Charles Otto | 2010-07-30 18:28:28 -0400

[2127] Consider snozzcumbers fruit for Fedhas purposes

--------------------------------------------------------------------------------
558f088e9a | Adam Borowski | 2010-07-30 18:45:16 +0200

Rename chars used as numbers to int8_t/uint8_t.  Fix some other type usage.
This should help against the signed char problems, and is good for
code readability.  Now, if you have a char, it's either an untyped
in-memory byte, or a symbol inside a string.  Small numbers are instead
[u]int8_t, ints, an enum type, or, in so many cases, bools.

I didn't touch any of the tiles code, as it's currently broken and I don't
want to risk making it unbroken harder.

--------------------------------------------------------------------------------
4817bb3d80 | Adam Borowski | 2010-07-30 18:45:16 +0200

Fix the lua kills report for monsters with non-ascii glyphs.

--------------------------------------------------------------------------------
b580da2a2d | Adam Borowski | 2010-07-30 18:45:16 +0200

Fix a clang warning in the yaccage.

--------------------------------------------------------------------------------
43dba21352 | Adam Borowski | 2010-07-30 18:45:15 +0200

Fix several broken item symbol overrides.

--------------------------------------------------------------------------------
685c36f53f | Adam Borowski | 2010-07-30 18:45:15 +0200

Remove an absolutely unholy, hardcoded function.
std::string::length() is an O(1) operation, so we waste just a single
additional function call, a paltry cost for replacing this abomination.

--------------------------------------------------------------------------------
60af66ae9e | David Lawrence Ramsey | 2010-07-30 11:31:57 -0500

Fix console compilation.

--------------------------------------------------------------------------------
804322c1c6 | Eino Keskitalo | 2010-07-30 18:08:05 +0300

Fix tiles compile (with rob).
Wizard-casting Detect Items seems to crash when it finds something.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
25e948e397 | David Lawrence Ramsey | 2010-07-30 09:34:38 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
52e50efc43 | David Lawrence Ramsey | 2010-07-30 09:33:12 -0500

Make crystal ball power-draining messages consistent.

--------------------------------------------------------------------------------
d450b0f7dd | David Lawrence Ramsey | 2010-07-30 09:30:06 -0500

Fix cut-and-paste error.

--------------------------------------------------------------------------------
7c0e45b8a9 | Robert Vollmert | 2010-07-30 16:20:44 +0200

Make ball of energy stat loss matter a bit.
Instead of 1 point, it now drains between 1 and 2/3 max intelligence.
For the prepared player, it still just means an extra turn spent
restoring abilities, but at least it's not completely irrelevant anymore.

--------------------------------------------------------------------------------
9ee3aa58e0 | David Lawrence Ramsey | 2010-07-30 09:07:44 -0500

Reduce flaming corpses' intelligence to I_ANIMAL.
Unlike ordinary zombie types, they have a purpose (even if it's just to
burn things), so they should be smarter than I_PLANT, I_INSECT doesn't
seem appropriate, and there's precedent for I_ANIMAL undead with e.g.
flying skulls.

Accordingly, remove their ability to open doors.

--------------------------------------------------------------------------------
cb52d98255 | Robert Vollmert | 2010-07-30 14:47:11 +0200

Always store full trap name in kaux.
Fixes things like "killed by triggering a a Zot trap trap" or
"killed by triggering a hand axe trap".

--------------------------------------------------------------------------------
74f76eb085 | Robert Vollmert | 2010-07-30 11:18:33 +0200

Remove outdated message window TODO list.

--------------------------------------------------------------------------------
45425a5373 | Robert Vollmert | 2010-07-30 10:48:33 +0200

Extend unannounced portal timers to around 3000 turns.
There was some slight difference between portals before,
but I'm not sure that would still be significant.

--------------------------------------------------------------------------------
137aa90ddb | Robert Vollmert | 2010-07-30 10:42:54 +0200

Make bazaars and labyrinths use single-timed markers.

--------------------------------------------------------------------------------
2fadf4911c | Robert Vollmert | 2010-07-30 10:41:33 +0200

Give timed markers a second timer, activated on sight.
By default, it's roughly 1/10 the normal duration.

This also changes the timed marker to be started by the player
entering the level. That should help when we start generating
levels the player falls through, for instance.

This patch breaks saves, but again I think this is ok with
the recent major version bump.

--------------------------------------------------------------------------------
515dc085a4 | Robert Vollmert | 2010-07-30 10:18:38 +0200

Make file_unmarshall_boolean Lua-accessible.

--------------------------------------------------------------------------------
59502fff69 | Robert Vollmert | 2010-07-30 09:31:03 +0200

Simplify troves. (#1610)
They aren't timed anymore, and always require an item.

Breaks save compatibility without bumping version, since the
last major version bump is quite recent, servers haven't
updated, and tiles doesn't build anyway.

Flavour text (e.g. portal description) needs to be updated.

--------------------------------------------------------------------------------
57b84528e3 | Robert Vollmert | 2010-07-30 09:30:24 +0200

Don't clear "seen" flag when redrawing.
Fixes multiple trove discovery milestones, for example.

I'm not entirely sure what went wrong, or if this is the right
way to do it.

--------------------------------------------------------------------------------
66edc90ceb | Robert Vollmert | 2010-07-30 09:30:23 +0200

Fix spacing.

--------------------------------------------------------------------------------
0bffd73144 | Charles Otto | 2010-07-29 20:46:17 -0400

Use the base position for demonic tentacle sight checks
Base LOS for demonic tentacle pathfinding on the view from the tentacle
base rather than the tentacle end.

--------------------------------------------------------------------------------
92cf4c342a | Charles Otto | 2010-07-29 20:21:50 -0400

Fix a bug with connection escalation during pathfinding
Only increase the connection level if the current connection level
is present at the square.

--------------------------------------------------------------------------------
f4fea3d0d7 | David Lawrence Ramsey | 2010-07-29 18:09:50 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
635f6c0064 | David Lawrence Ramsey | 2010-07-29 18:04:31 -0500

Reduce demonic crawlers' intelligence to I_INSECT.
Accordingly, remove their ability to open doors.

--------------------------------------------------------------------------------
d24a959ed8 | Adam Borowski | 2010-07-29 23:36:09 +0200

Allow building with ancient sqlite (shuff/hakamadare).

--------------------------------------------------------------------------------
7051678e06 | Robert Vollmert | 2010-07-29 22:55:34 +0200

Halve chance of fainting due to stat loss.
This should avoid endless chains of paralysis near death
since the chance to faint approaches 1/2 instead of 1.

--------------------------------------------------------------------------------
f90727912b | Robert Vollmert | 2010-07-29 22:50:31 +0200

Remove a bad assert in project_noise().
If only a small part of the map is known, the player can place the projected
noise outside map bounds. This is now treated correctly as an unsilenced
solid place.

--------------------------------------------------------------------------------
9f4ff51f20 | Robert Vollmert | 2010-07-29 22:16:37 +0200

Remove god wrath choice comment.
We use this algorithm everywhere.

--------------------------------------------------------------------------------
317fc95c6c | Robert Burnham | 2010-07-29 11:37:45 -0500

Bring Merfolk HP to Human HP levels
Nerf Merfolk HP from 149 (xl27, 1 fighting skill) and 289
(xl27, 27 fighting skill) to 132 (xl27, 1 fighting skill) and
272 (xl27, 27 fighting skill).

--------------------------------------------------------------------------------
6936d684cc | Robert Vollmert | 2010-07-29 14:49:34 +0200

Attribute delayed stat death to whatever brought you past zero. (#2115)

--------------------------------------------------------------------------------
9c58434a66 | Robert Vollmert | 2010-07-29 14:21:46 +0200

Fix poison kills attributed to non-monsters. (greensnark)

--------------------------------------------------------------------------------
26153aece3 | Robert Vollmert | 2010-07-29 12:27:21 +0200

Remove extra semicolons (Luca).

--------------------------------------------------------------------------------
d9564d4363 | Robert Vollmert | 2010-07-29 12:26:53 +0200

Update tiles for env.show change.
Based on part of Luca's "misc fixes". Unfortunately not tiles compile
tested.

--------------------------------------------------------------------------------
01b26fcd11 | Robert Vollmert | 2010-07-29 12:07:56 +0200

No walls adjacent to stairs in slime.

--------------------------------------------------------------------------------
0987f794b6 | Robert Vollmert | 2010-07-29 11:49:43 +0200

Make shafts and hatches choose the safest adjacent destination in slime.
The destination is fudged to the adjacent cell with fewest slime walls next
to it. With the bubble layout, this means usually not directly next to a wall,
and rarely (never?) more than four.

This doesn't help when a slime level has corridors (by digging, Dissolving or
vault placement, e.g.).

--------------------------------------------------------------------------------
e58e173e37 | Robert Vollmert | 2010-07-29 11:10:24 +0200

Fix shaft and hatch always leading to top left of map.

--------------------------------------------------------------------------------
1da3114b54 | Adam Borowski | 2010-07-29 11:03:37 +0200

Don't racialize starting missiles.

--------------------------------------------------------------------------------
e2051631d3 | Adam Borowski | 2010-07-29 11:02:06 +0200

Specify char signedness where it matters.
For passing arguments to a function, int is faster, too.

--------------------------------------------------------------------------------
1405c0790f | Charles Otto | 2010-07-28 21:53:32 -0400

Don't apply bloody to inappropriate feature types.
Don't let severed tentacles put FPROP_BLOODY on water feature types.

--------------------------------------------------------------------------------
a6cd6a0fe6 | Charles Otto | 2010-07-28 21:20:17 -0400

Set base position immediately after creating a tentacle
Set base_position for demonic tentacles immediately after creating
them (via malign gateway). If a tentacle was killed before it got a
turn base_position was not set, stranding the temporary portal.

No this portal scheme is not brittle at all why do you ask?

--------------------------------------------------------------------------------
abf98b111d | Charles Otto | 2010-07-28 21:11:24 -0400

Make segment blinks/teleports kill demonic tentacles
Maybe they should just be immune to tloc effects instead?

--------------------------------------------------------------------------------
fb944a0862 | Charles Otto | 2010-07-28 21:04:20 -0400

Propagate segment attitude changes to the entire tentacle
For demonic tentacles, propagate segment attitude changes to the entire
tentacle.

--------------------------------------------------------------------------------
e426f34e6c | Charles Otto | 2010-07-28 20:39:13 -0400

Merge master into malign_gateway

--------------------------------------------------------------------------------
00e1bed5e9 | David Lawrence Ramsey | 2010-07-28 17:49:59 -0500

Remove now-unneeded #ifdefs.

--------------------------------------------------------------------------------
ae178448a6 | Robert Vollmert | 2010-07-29 00:43:59 +0200

Fix spacing.

--------------------------------------------------------------------------------
af76f809d3 | Luca Barbieri | 2010-07-29 00:43:59 +0200

Make map_cell store feat+cloud+item+mons instead of only the topmost one 
(BREAKS SAVES) (v3)
Changes in v3 (rob):
- update to current master
- fix colouring of out-of-LOS clouds
- fix reload crash due to env.cgrid

Changes in v2:
- Features and monsters should now be properly grayed

Currently map_cell only stores the topmost "thing" in a cell.
This is good enough for the console view, but not for more
sophisticated clients (e.g. tiles).

This commit refactors the code so that all player knowledge about a
cell (including detailed monster and item information) is represented
in map_cell, and so that map_cell is used to build the console view.

Save compatibility is broken since the new map_cell is serialized
instead of the old one.

This will allow, for instance, to load console savegames in the tiles
version, and still get proper tiles for the explored area.

Furthermore, this new map_cell will be the basis of the Crawl protocol
for the client/server split.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
7184b88d88 | Luca Barbieri | 2010-07-29 00:43:58 +0200

Remove env.show in favor of using env.map_knowledge
Currently env.show stores information about the LOS rectangle, while
env.map_knowledge stores the rest of the map.

This unnecessarily complicates the code, makes serialization harder,
and makes it hard to change the LOS model.

This code uses map_knowledge for both kinds of data.

Regressions are quite possible.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
698259e9db | Eino Keskitalo | 2010-07-28 23:40:07 +0300

Up the chances of Spider's Nest appearing in master.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3fca651d93 | Eino Keskitalo | 2010-07-28 23:24:18 +0300

Fix tiles compilation (KiloByte)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ead9fca684 | Adam Borowski | 2010-07-28 21:54:57 +0200

Conditionalize glOrthox(), not all OpenGLs have it. (and OpenGLES doesn't have 
ordinary glOrtho(), just -f and -x)

--------------------------------------------------------------------------------
c5ef8a7d05 | Adam Borowski | 2010-07-28 20:54:38 +0200

OpenGLES porting, part 1.

--------------------------------------------------------------------------------
000de2017e | Luca Barbieri | 2010-07-28 19:21:47 +0200

Convert several functions to use monster_info
This patch converts several parts of the Crawl code to use monster_info
instead of accessing monsters directly.

This change is very intrusive and rewrites parts of the code.
Thus, bugs are quite likely being introduced.
The new code is however easier to understand and maintain and thus hopefully
should be a net gain once any problems are solved.

The code is probably somewhat slower, but this should be undetectable
in practice.

Major semantic changes:
- Rakshasas/Maras fakes are fully described as if they were the unequipped
  base form, instead of having special cases
- MR is no longer reported with perfect information, but only based
  on what the player sees
- Flight is now always perfectly reported (it already was, except
  possibly for randarts giving +Lev)
- Mimics may be handled a bit different (the idea is that known mimics are
  always monsters and unknown mimics are always items)
- Wounded status in messages is now colored (started as a bug, but seems
  a feature to me)

Possible regressions:
- Name generation is totally rewritten, might have regressed
- In general, all the monster UI code has been refactored, possibly
  with regression
- Special cases like mimics, rakshasas, Maras, ghosts, pan lords, named
  monsters, divine minions, draconians and the arena mode are likely to be
  the most at risk of having regressed

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
0d0c82d5f7 | Luca Barbieri | 2010-07-28 19:21:46 +0200

Make monster_info store all the player's knowledge on a monster (v3)
Changes in v3 (rob):
- update for master (bleeding, deflect missiles, ...)
- fix misled not ending
- fix all monsters getting extreme fire resistance

Changes in v2:
- add operator =

monster_info is changed from the monster list's structure to a general
purpose structure storing player-known information about a monster.

The plan is to make all the user interface code read data from
moster_info, so that:
1. There is no risk of accidental leaks, since all the sensitive code
   is in one place
2. Complicated things like misled and fake monsters are correctly
   handled, and the code exists once
3. The structure can be serialized for client/server play, and the
   deserialized structure can be passed to the UI code (this is still
   theoretical)

This will be done in a successive patch.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
8f49829c07 | Luca Barbieri | 2010-07-28 19:21:46 +0200

Add function to clone an item_def with only observable information (v2)
Changes in v2:
- Completely rewritten to whitelist info instead of blacklisting.
- Note: still essentially not tested at all

get_item_info will create a copy of item_def that can completely
be revealed to the player without leaking information.

WARNING: only minimally tested, probably slightly incorrect!
(cherry picked from commit 4c4e06fb0f0a216298e9633ab660c02f675b05ce)

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
758743c329 | Luca Barbieri | 2010-07-28 19:21:46 +0200

Add support for (un)marshalling variable-sized integers
The current serialization code only supports 8/16/32-bit fixed size
integers.

However, a variable sized representation is often more space efficient,
and allows to seamlessly expand the integer size without breaking
compatibility.

This patch uses the common scheme of using 7 bits for data, plus 1 bit
to indicate termination of the integer, all encoded in little endian order.

Signed integers are first transformed to unsigned ones where bit 0 is
the sign bit.

--------------------------------------------------------------------------------
f96f175a23 | Darshan Shaligram | 2010-07-28 22:48:48 +0530

Fix bad rock and floor colours when placing encompass maps with &L.

--------------------------------------------------------------------------------
fb9fa7b3e9 | Adam Borowski | 2010-07-28 12:52:48 +0200

Stop the generation of racial missiles.

--------------------------------------------------------------------------------
6f90c85f0a | Eino Keskitalo | 2010-07-28 13:37:21 +0300

Explicitly mention that dwarven items are resistant to corrosion, that dwarves 
and orcs deal more damage with their racial weapons, and that elves are more 
accurate. [2063]
I didn't bother tweaking ammo, since it the racial ammo bonuses are 
insignificant (and boring), and they should go. Racial properties in general, 
apart from dwarven and elven armour, could use spicing up. (There's a wiki 
page.)

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
40db018114 | Adam Borowski | 2010-07-28 12:17:44 +0200

Rename the windows installer output the true King of Naps' way.

--------------------------------------------------------------------------------
04c280ad8f | Adam Borowski | 2010-07-28 12:12:14 +0200

Protect save compat when NUM_{WEAPONS,ARMOURS,SPELLS,FIXEDBOOKS} changes.

--------------------------------------------------------------------------------
79e402ae70 | Eino Keskitalo | 2010-07-28 12:44:10 +0300

Fix wrong section reference. [2109]
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
244ac5fbac | Charles Otto | 2010-07-27 20:54:19 -0400

Fix some demonic tentacle connectivity breaks
Fix some demonic tentacle connectivity breaks caused by link corruption
when a tentacle retracted to its base position.

--------------------------------------------------------------------------------
53dbc110e6 | Darshan Shaligram | 2010-07-28 04:46:40 +0530

[2107] Stop recording portal vault names before the CrawlVector max size limit.
This is just a stopgap for 0.7; recording every visited portal vault map and 
level-type
in a long list is clearly inappropriate and should be fixed.

--------------------------------------------------------------------------------
394880039a | David Lawrence Ramsey | 2010-07-27 17:23:34 -0500

Fix part of Mantis 1889 and 1895.
Zin's Recite will no longer pacify, even temporarily, monsters that
would be angered by the player's aura.  This covers undead, demonic,
unclean, and chaotic monsters.

--------------------------------------------------------------------------------
fd9d7abe71 | Eino Keskitalo | 2010-07-27 23:40:41 +0300

Add a description for the ambrosia piece.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
363869c41d | Eino Keskitalo | 2010-07-27 23:17:20 +0300

Add the piece_of_ambrosia tile. Sigh.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ddcdb4e9e8 | Eino Keskitalo | 2010-07-27 19:14:30 +0300

Add ambrosia for Spider's Nest.
Used only in Spider destination maps (this commit adds one). Simply gives a 
potion magic + potion of confusion effects when eaten. Tile is a recoloured 
royal jelly.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d2db466bf2 | Adam Borowski | 2010-07-27 18:02:00 +0200

Don't print a debug message for extension in non-debug builds.

--------------------------------------------------------------------------------
907fda0f81 | Robert Burnham | 2010-07-27 09:22:37 -0500

Merge branch 'unarmed_effects'
Implements the following aux attack effects:
Monster Bleeding - Deals random2((claw_level * 3)%) non-lethal damage per turn
Aux Punches with claws cause bleeding
Aux Headbutt Stuns for bestroll(min(damage_done, 7), 1+horns_level)
Aux Kicks with hooves bypass AC-midigated damage on aux attacks

Currently not implemented, but planned: Bleeding on main hand, unarmed attacks,
adjustments to bleed/headbutt/kick damage for balance. Effect for aux
Talon attacks.

--------------------------------------------------------------------------------
ac0c931652 | Eino Keskitalo | 2010-07-27 16:51:15 +0300

Implement tarantella for Spider's Nest.
The confusion bite is non-poisonous, so that rPoison won't negate the threat of 
this monster. This is probably unintuitive.

The tile is, as usual, a placeholder.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
9beee5eab1 | Adam Borowski | 2010-07-27 15:03:07 +0200

Fix non-random potions and compilation.

--------------------------------------------------------------------------------
710f8ec95a | Eino Keskitalo | 2010-07-27 15:47:15 +0300

Implement jumping spiders for Spider's Nest.
Once again, the tile is a placeholder.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
19152e8ed0 | Eino Keskitalo | 2010-07-27 15:47:15 +0300

Make the monster spells SPELL_BLINK_AWAY, SPELL_BLINK_RANGE and 
SPELL_BLINK_CLOSE consume energy.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
224138d32b | Robert Vollmert | 2010-07-27 14:17:31 +0200

Fix generated potion quantities.
Randomly generated potion stacks have always been limited to size 1 for potions
of gain stat, potions of experience and potions of restore abilities. This limit
was bypassed for vault-placed potions of specific type, contrary to e.g. the way
scrolls are handled.

--------------------------------------------------------------------------------
c9a075c4ff | Adam Borowski | 2010-07-27 11:42:56 +0200

Make {fire,spatial} vortices, ball lightnings and IOOD immune to 
Recall/Abjuration.

--------------------------------------------------------------------------------
a9ae7dda71 | Adam Borowski | 2010-07-27 11:01:36 +0200

Remove the word "polearm" from javelin's description. [2101]
That made them show up while looking for polearms, which they are not where
the game's mechanics are concerned.

--------------------------------------------------------------------------------
f49328e94a | Adam Borowski | 2010-07-27 10:48:38 +0200

Make intelligences of some monsters make more sense.
For example, among human uniques, only a lousy thief was I_HIGH.  He got
knocked down a peg; it's now spellcasters with big spells who enjoy that.

Doubtful entries: hell knights being I_HIGH (Margery was just I_NORMAL),
draconians (they're no elves or such, I kept them only because they're late
enemies), demonic crawlers (aren't they just insects?), flaming corpse
(looks like a normal fire-themed zombie rather than a sentient undead to me).

--------------------------------------------------------------------------------
7f633dce00 | Adam Borowski | 2010-07-27 10:30:07 +0200

Give monster vanilla mummies normal intelligence.
Being classified as animals means some unexpected behaviour, and also,
they should be consistent with player mummies.

--------------------------------------------------------------------------------
dc4dbc0eee | Charles Otto | 2010-07-26 21:45:59 -0400

Clear the portal if a summoned tentacle dies (before severing)

--------------------------------------------------------------------------------
7a73c40636 | Charles Otto | 2010-07-26 21:45:33 -0400

Improve severed tentacle behavior

--------------------------------------------------------------------------------
39ff9feeef | Charles Otto | 2010-07-26 21:13:56 -0400

Add a portal feature type for malign gateway, use said feature

--------------------------------------------------------------------------------
6d80c724a7 | Charles Otto | 2010-07-26 20:19:00 -0400

Add monster enchantments for use with malign gateway

--------------------------------------------------------------------------------
47f53a7641 | Charles Otto | 2010-07-26 19:56:35 -0400

Add a malign gateway spell
It just creates a demonic tentacle, various gimmicks have yet to be
implemented.

--------------------------------------------------------------------------------
374a077198 | Charles Otto | 2010-07-26 18:41:51 -0400

Merge master into malign_gateway

--------------------------------------------------------------------------------
304040219c | David Lawrence Ramsey | 2010-07-26 17:38:57 -0500

Comment fix.

--------------------------------------------------------------------------------
e2ab296cb6 | David Lawrence Ramsey | 2010-07-26 17:33:11 -0500

On the next major version bump, group all AF_DRAIN_STAT types together.
This is already done for all AF_POISON_STAT types.

--------------------------------------------------------------------------------
803488611d | Eino Keskitalo | 2010-07-26 23:11:36 +0300

Add ghost moths, plus a Spider's Nest map with one. Seems fairly deadly.
Tile is just a flipped, recoloured moth of wrath.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
af1b5cca4f | Eino Keskitalo | 2010-07-26 23:11:36 +0300

Add AF_DRAIN_STAT for draining a random stat, plus AF_DRAIN_INT for it.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
40e5a56bf8 | RjY | 2010-07-27 00:20:10 +0530

viewmap.cc: fix player symbol on level map
Recently (82a031cb476c362240df2c55979138f2d9008f33) the type of
you.symbol changed from a direct glyph to enum monster_type.
A call to mons_char() to look up the player's glyph is needed.

(The bug was visible as the player showing as "^" on the level
map. MONS_PLAYER currently has numerical value 94 - ASCII "^")

Signed-off-by: RjY <rjy@users.sourceforge.net>
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
64cfdbd7a1 | Robert Burnham | 2010-07-26 10:59:57 -0500

Reword Magic Resist DS Mutation (1792)
Changed "resistant to magic" to "resistant to hostile enchantments"

--------------------------------------------------------------------------------
f66ee95e55 | Robert Vollmert | 2010-07-26 15:45:34 +0200

Handle stat change after setting duration for might, agility, brilliance. 
(#2087)
notify_stat_change was being called while the stat hadn't actually changed, so
e.g. burden was updated at the wrong time.

--------------------------------------------------------------------------------
63a03589a9 | David Lawrence Ramsey | 2010-07-25 16:35:13 -0500

Fix compilation.

--------------------------------------------------------------------------------
272b744de9 | David Lawrence Ramsey | 2010-07-25 16:27:34 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d415408702 | David Lawrence Ramsey | 2010-07-25 16:27:34 -0500

Also use mons_base_type() to determine if zombified monsters are airborne.

--------------------------------------------------------------------------------
8288f0f4fb | David Lawrence Ramsey | 2010-07-25 16:27:33 -0500

Add sanity check for mons_difficulty().

--------------------------------------------------------------------------------
d1156e5a2c | David Lawrence Ramsey | 2010-07-25 16:27:33 -0500

Also use mons_base_type() to determine if zombified monsters fly.

--------------------------------------------------------------------------------
c329224f16 | David Lawrence Ramsey | 2010-07-25 16:27:33 -0500

Use mons_base_type() instead of manually checking (non)zombified status.

--------------------------------------------------------------------------------
043dc4ffc8 | David Lawrence Ramsey | 2010-07-25 16:27:33 -0500

Typo fixes.

--------------------------------------------------------------------------------
801ed5f4ec | David Lawrence Ramsey | 2010-07-25 16:27:32 -0500

Properly use mons_class_hit_dice() in a few more places.

--------------------------------------------------------------------------------
4fc75378a3 | David Lawrence Ramsey | 2010-07-25 16:27:32 -0500

Simplify a few monsterentry access functions.

--------------------------------------------------------------------------------
3cb4c0dc98 | David Lawrence Ramsey | 2010-07-25 16:27:32 -0500

Reorder function prototypes to match their order in the source.

--------------------------------------------------------------------------------
c1e9703b6b | David Lawrence Ramsey | 2010-07-25 16:27:32 -0500

Shorten the list of hardcoded monster body weights.
Since spectral things, spectral warriors, and electric golems are
insubstantial, they should get a weight of 0 without needing hardcoded
body weights.  The same goes for all monsters using the 'p' glyph.

--------------------------------------------------------------------------------
2a9d848f7c | David Lawrence Ramsey | 2010-07-25 16:27:31 -0500

Simplify body weight calculation for zombified monsters.

--------------------------------------------------------------------------------
35d78fe28b | David Lawrence Ramsey | 2010-07-25 16:27:31 -0500

Mark electric golems as insubstantial and glowing with light.
According to their description, they're made entirely of electricity, so
this fits the same way as with e.g. ball lightnings.

--------------------------------------------------------------------------------
fd2d1a05f1 | David Lawrence Ramsey | 2010-07-25 16:27:31 -0500

Add tentative body weight for iron imps, since iron devils have it.

--------------------------------------------------------------------------------
a4760d54d9 | David Lawrence Ramsey | 2010-07-25 16:27:31 -0500

Fix calculation of zombified monsters' body weight.

--------------------------------------------------------------------------------
97de53f45e | David Lawrence Ramsey | 2010-07-25 16:27:30 -0500

Rename mons_type_hit_dice() to mons_class_hit_dice().

--------------------------------------------------------------------------------
254d6ec751 | David Lawrence Ramsey | 2010-07-25 16:27:30 -0500

Remove unused prototype.

--------------------------------------------------------------------------------
43fe90d9f9 | David Ploog | 2010-07-25 21:43:43 +0200

Repair dpeg_entry_water_temple_mockup intentional (by).

--------------------------------------------------------------------------------
d4a2140bef | Adam Borowski | 2010-07-25 20:07:02 +0200

Don't trap teleporting merfolk in a couple of temples.

--------------------------------------------------------------------------------
beef49efac | Charles Otto | 2010-07-25 10:46:32 -0400

Add a "demonic tentacle" monster, refactor tentacle code to support it
Add a demonic tentacle monster, suitable for use with the malign
gateway spell. This is a tentacle with a fixed base position, and no
monster acting as the "base" in the way the main kraken body does for
kraken tentacles.

Refactor some of the tentacle code to handle broken assumptions (there
is no "head" monster in this case, so the tentacle end is what we pay
attention to for damage synch, attitude checks etc.).

--------------------------------------------------------------------------------
827174f638 | Darshan Shaligram | 2010-07-25 19:14:56 +0530

Bounds checks for travel (Warak crash).

--------------------------------------------------------------------------------
6e643e733d | Darshan Shaligram | 2010-07-25 18:31:59 +0530

Remove assert for trying to load non-LEVEL_DUNGEON levels in the travel cache.

--------------------------------------------------------------------------------
8b45c28bcc | Darshan Shaligram | 2010-07-25 17:34:40 +0530

[960] Disable Trowel card outside LEVEL_DUNGEON areas to avoid triggering 
Crawl's level-area-type handling bugs.
We can remove this once Crawl can handle stacked level-area-types nicely;
currently going from Lab -> Zig and then back to Lab will generate a new level,
going from Lab -> Lab will crash, etc.

--------------------------------------------------------------------------------
8ed0f54fc2 | Adam Borowski | 2010-07-25 12:22:54 +0200

Drop the python save reader, it never worked and is a lost concept.
The savefile format changes all the time, and it would be a waste to update
both readers.  Everything that can be gleaned using the reader can be done
from Crawl itself.  And, Python is a good for nothing monstrosity too :p

--------------------------------------------------------------------------------
4f792b057e | Adam Borowski | 2010-07-25 12:22:37 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
ec94c99ead | Adam Borowski | 2010-07-25 12:16:04 +0200

A typo.

--------------------------------------------------------------------------------
111a8a234c | Adam Borowski | 2010-07-25 12:01:11 +0200

Stop the player from vamp draining known demons and undead.

--------------------------------------------------------------------------------
59dec9276f | Adam Borowski | 2010-07-25 04:11:05 +0200

Ensure the savedir gets a trailing / in DGL builds.
All other builds get "/saves/" appended, so this problem doesn't apply for 
non-DGL.

--------------------------------------------------------------------------------
9a80e767ec | Adam Borowski | 2010-07-25 03:53:32 +0200

Fix a mislabeled help entry.

--------------------------------------------------------------------------------
f34043d5a1 | Darshan Shaligram | 2010-07-25 04:38:16 +0530

Fix crash when using Tukima's Dance on a throwable weapon and then attempting 
to throw the qty:0 weapon (which dives straight into the quiver).

--------------------------------------------------------------------------------
4e6cf2fca3 | Darshan Shaligram | 2010-07-25 00:29:35 +0530

Update changelog for 0.7.1.

--------------------------------------------------------------------------------
70261b8afc | Darshan Shaligram | 2010-07-24 23:09:14 +0530

Don't set have_inactive_markers when moving markers or assigning from another 
map_markers object.

--------------------------------------------------------------------------------
1ff9c6231b | Eino Keskitalo | 2010-07-24 20:35:27 +0300

Add the giant scorpion tile to repository (oops)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
8b35f8ad24 | Darshan Shaligram | 2010-07-24 22:55:54 +0530

Clear have_inactive_markers if all markers are removed.
This is just for least surprise.

--------------------------------------------------------------------------------
a00a272778 | Darshan Shaligram | 2010-07-24 22:46:44 +0530

Initialise have_inactive_markers to false.

--------------------------------------------------------------------------------
6d20cd8e06 | Darshan Shaligram | 2010-07-24 22:33:12 +0530

ASSERT in world_reacts if markers are not activated.

--------------------------------------------------------------------------------
d8f5329e76 | Adam Borowski | 2010-07-24 18:58:01 +0200

Felids: improve some skill titles.

--------------------------------------------------------------------------------
4730d9a383 | Robert Vollmert | 2010-07-24 18:39:24 +0200

Fix markers not being activated on reload.

--------------------------------------------------------------------------------
cfd8f0d56c | Eino Keskitalo | 2010-07-24 19:35:17 +0300

Implement giant scorpion for Spider's Nest.
Only used in spider.des. The tile is a placeholder, it's just a flipped and 
recoloured regular scorpion.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e5725eb72f | Adam Borowski | 2010-07-24 15:36:38 +0200

Felids: special-case necro 27 to "Cat of Death" (like demigods)

--------------------------------------------------------------------------------
94b94f1827 | Adam Borowski | 2010-07-24 15:23:38 +0200

Felids: update the species' abbreviation.  FeCK.

--------------------------------------------------------------------------------
752b7e645f | Adam Borowski | 2010-07-24 15:15:04 +0200

Merge branch 'master' into cats

--------------------------------------------------------------------------------
7e4611aa59 | Adam Borowski | 2010-07-24 15:11:54 +0200

Felids: rename the species to something perhaps more palatable to cat-haters.

--------------------------------------------------------------------------------
3fa38573f3 | Charles Otto | 2010-07-24 09:03:06 -0400

Merge branch 'articulated_kraken' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
local_master

--------------------------------------------------------------------------------
8fab9509ce | Adam Borowski | 2010-07-24 14:51:22 +0200

Cats: nuke the dodging and stealth apts all the way from +5 to +2.
They get significant size bonuses to either, so this may be a step to reduce
the runaway values here by a bit.

--------------------------------------------------------------------------------
e26cf731c1 | Adam Borowski | 2010-07-24 14:50:45 +0200

Cats: tmut apt +3 -> +1.  Railroading is bad.

--------------------------------------------------------------------------------
be27b0b756 | Adam Borowski | 2010-07-24 14:31:41 +0200

Make the HUD display for uncancellable levitation neon green.

--------------------------------------------------------------------------------
ae187f29e9 | Adam Borowski | 2010-07-24 14:25:01 +0200

Disallow using a ring/randart/boots to cancel potion/spell/miscast levitation.

--------------------------------------------------------------------------------
4009ffb925 | Darshan Shaligram | 2010-07-24 14:17:31 +0530

[2062] Fix travel excludes not being saved.

--------------------------------------------------------------------------------
1cb374d6ff | Darshan Shaligram | 2010-07-24 14:16:50 +0530

Fix portal vaults failing validation.

--------------------------------------------------------------------------------
713c82c9c2 | Darshan Shaligram | 2010-07-24 08:51:16 +0530

Add release date to changelog.

--------------------------------------------------------------------------------
0bf119a2b7 | Adam Borowski | 2010-07-24 02:08:29 +0200

Make -arena inhibit restart_after_game.
This applies to the command line option only; choosing arena from the menu
is unaffected.

--------------------------------------------------------------------------------
013dd3fd13 | Adam Borowski | 2010-07-24 01:19:33 +0200

Get rid of the you_ref hack for restart_after_game.

--------------------------------------------------------------------------------
85ef844891 | Adam Borowski | 2010-07-24 01:08:29 +0200

Initialize all fields of "you".

--------------------------------------------------------------------------------
0c8e0c8b7d | Adam Borowski | 2010-07-23 22:08:39 +0200

Separate fields of "you" by duration: permanent/long-term/unsaved/same-turn.

--------------------------------------------------------------------------------
d42ec54364 | Adam Borowski | 2010-07-23 22:08:39 +0200

Remove a no-op comparison.
It just slows things down and makes valgrind complain, and it's not like
we'll make Crawl massively multithreaded (when avoiding writes would be
good) in the foreseeable future...

--------------------------------------------------------------------------------
ccbcc2002b | Adam Borowski | 2010-07-23 22:08:39 +0200

A hack to make valgrind show uninitialized data being marshalled.

--------------------------------------------------------------------------------
48c8457d92 | Robert Vollmert | 2010-07-23 15:01:18 +0200

Improve handling of monster foe memory.
Previously it was usually 0, and set to a positive value if the monster
was seeking, foe was out of LOS, and memory was at 0. This was probably
meant to catch the instant the foe left LOS, but could also fire in
different situations, e.g. when the player returned to a level by
a different staircase.

Foe memory is now set every time behaviour is evaluated for a seeking
monster with foe in sight, so it should be at a sensible value when
the foe goes out of LOS. Also, memory is properly reduced when the
player returns from a different level.

This should fix monsters heading straight for the player when they
return to a level, regardless of time elapsed. They'll still head
for the player if foe memory is positive and the player fails a
stealth check.

This does not fix monsters not doing a particularly good job of finding
the player: They don't use pathfinding, hence are likely to get stuck
in corners if the level is not without inside corners.

--------------------------------------------------------------------------------
222eb879d3 | Adam Borowski | 2010-07-23 12:39:45 +0200

s/acr.cc/main.cc/ in comments.

--------------------------------------------------------------------------------
553c2877aa | Adam Borowski | 2010-07-23 12:35:25 +0200

Disallow random zombies of M_NO_POLY_TO monsters.
They can still be explicitely placed.

--------------------------------------------------------------------------------
5a548367d3 | Adam Borowski | 2010-07-23 12:23:16 +0200

Disallow random chunks (ghoul food acq + vaults) from generating M_NO_POLY_TO 
flesh.

--------------------------------------------------------------------------------
68988e4cfb | Adam Borowski | 2010-07-23 12:22:51 +0200

Make M_NO_POLY_TO actually have an effect (doh!).

--------------------------------------------------------------------------------
c6cc57c7f6 | Adam Borowski | 2010-07-23 00:39:55 +0200

Fix the case of SAVEDIR=~/foo, unset SHAREDDIR.

--------------------------------------------------------------------------------
85eca0af3e | Adam Borowski | 2010-07-23 00:39:55 +0200

Fix the "plain" item during acquirement not getting properly cleared.
If you received a helmet with non-plain description and then the code decided
to give you gloves instead, they could get a description out of range.

On all items, this could result in invalid "runed" as well, since plus2
was non-zero.

--------------------------------------------------------------------------------
ea65820906 | Adam Borowski | 2010-07-23 00:39:54 +0200

Disallow fulsoming corpses while levitating. [2048]

--------------------------------------------------------------------------------
673f93d422 | Robert Vollmert | 2010-07-22 22:02:55 +0200

Remove some minor changes/bugfixes.

--------------------------------------------------------------------------------
4757339adc | Robert Vollmert | 2010-07-22 22:02:29 +0200

Resort interface items; remove disabled inventory cursor.

--------------------------------------------------------------------------------
113a481e6e | Robert Vollmert | 2010-07-22 22:00:05 +0200

Tighten up spell changelog.

--------------------------------------------------------------------------------
0bc3c1a0c2 | Robert Vollmert | 2010-07-22 21:51:50 +0200

changelog: Remove some duplicates.

--------------------------------------------------------------------------------
7005ca6f4c | Eino Keskitalo | 2010-07-22 16:53:49 +0300

Remove possibility of two demonic runes in rand_demon_5 (st_)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1cc8ae51ee | Robert Vollmert | 2010-07-22 15:13:39 +0200

Refix colours for console wizard mode detect creatures.

--------------------------------------------------------------------------------
a91b10a779 | Eino Keskitalo | 2010-07-22 16:07:26 +0300

Fix unescapable bazaar (syllogism)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
15473eec78 | Robert Vollmert | 2010-07-22 15:03:32 +0200

Possibly fix tiles wizard mode detect creatures.

--------------------------------------------------------------------------------
7e9305f21c | Robert Vollmert | 2010-07-22 14:49:27 +0200

Show actual monster glyphs for wizard detect creatures (&D). (syllogism)

--------------------------------------------------------------------------------
cf68e75eb1 | Adam Borowski | 2010-07-22 02:21:39 +0200

Fix catpath() producing double /
The filesystem will accept such paths just fine, but they look wrong when
displayed to the user.

--------------------------------------------------------------------------------
286024572c | Adam Borowski | 2010-07-22 00:38:52 +0200

Unbreak non-wizard builds.

--------------------------------------------------------------------------------
889419886d | Adam Borowski | 2010-07-22 00:30:30 +0200

Allow installations with secure saves share their scores and bones.
There is a new compile-time option, SHAREDDIR; it specifies the directory
to put the logfile, scores and bones into -- they used to be in SAVEDIR/saves
(and that's the default when not specified).

A typical layout is SAVEDIR='~/.crawl' SHAREDDIR=/var/games/crawl

--------------------------------------------------------------------------------
7e5f8c4843 | Darshan Shaligram | 2010-07-21 23:51:01 +0530

Add remove_markers_and_listeners_at to safely remove Lua markers and dungeon 
listeners from a square.

--------------------------------------------------------------------------------
5420269c75 | Darshan Shaligram | 2010-07-21 23:51:01 +0530

Fix crash when _close_level_gates removes a marker that was registered for 
dungeon events (by).

--------------------------------------------------------------------------------
fd587fdc4c | Robert Vollmert | 2010-07-21 19:11:06 +0200

Remove scrolls of recharging's effect on weapons of electrocution. (kilobyte, 
doy)

--------------------------------------------------------------------------------
e02ff62e12 | Darshan Shaligram | 2010-07-21 19:50:54 +0530

[1109] Check for available corpse for fulsome distillation before checking for 
spell success.

--------------------------------------------------------------------------------
662309f6eb | Darshan Shaligram | 2010-07-21 19:18:45 +0530

[1848] Fix Sprint starter kit not stacking with items in the character's 
initial inventory.

--------------------------------------------------------------------------------
e34721fb93 | Robert Vollmert | 2010-07-21 14:59:44 +0200

Activate markers early when loading level.
Fixes issue #2034.

Markers were being activated late for some messaging reasons, but
they need to be activated early so they can register listeners
that are interested in events generated during load. In particular,
before update_level() issues DET_TURN_ELAPSED for the time that has
passed while the player was off-level.

I propose that lua markers that now issue messages at inappropriate
times during activation issue them in some other way, for example
by registering a message for level_welcome_message() or a variant
of that when returning, or by registering a listener for
DET_ENTERED_LEVEL, which is issued close to the end of load().

--------------------------------------------------------------------------------
e4b9778d0c | Robert Vollmert | 2010-07-21 14:12:58 +0200

Fix buggy mprf template. (#1919)

--------------------------------------------------------------------------------
32d40c82d1 | Robert Vollmert | 2010-07-21 13:19:42 +0200

In startup menu, trim player name before character selection.
Fixes space only names being allowed.

--------------------------------------------------------------------------------
cd233515f1 | Eino Keskitalo | 2010-07-21 11:05:28 +0300

Use the brown stone tile for stone in ossuary, and the yellow sandstone for 
rock.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
8181273361 | Eino Keskitalo | 2010-07-21 10:55:34 +0300

Specify rock and floor tiles for Spider's Nest.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
83703125ce | Eino Keskitalo | 2010-07-21 10:44:22 +0300

Use the brown brick rock tile for Bailey rock instead of the dungeon tiles.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d304fd6b82 | David Lawrence Ramsey | 2010-07-20 22:23:42 -0500

Fix typo in Phase Shift spellcasting message.

--------------------------------------------------------------------------------
d2085d2dea | Robert Vollmert | 2010-07-20 22:33:53 +0200

Remove monsters::mon_see_cell.

--------------------------------------------------------------------------------
acd87ca227 | Robert Vollmert | 2010-07-20 22:33:53 +0200

Remove other uses of monsters::mon_see_cell.

--------------------------------------------------------------------------------
6f66274f37 | Robert Vollmert | 2010-07-20 22:33:48 +0200

Rewrite _guess_invis_foe_pos to not use monsters::mon_see_cell.

--------------------------------------------------------------------------------
234ed0a73f | Robert Vollmert | 2010-07-20 21:55:20 +0200

Some improvements to can_go_straight.
Mainly due to the use of num_feats_between, it was often
returning false in situations where there obviously was
a straight path to the target.

This should mean that the somewhat broken monster pathfinding
is invoked less often, and hopefully monsters don't forget
about following the player so easily.

--------------------------------------------------------------------------------
63d2a91163 | Robert Vollmert | 2010-07-20 21:08:41 +0200

Fix handle_behaviour::proxPlayer to use monster LOS instead of player LOS.
This is more appropriate in asymmetric LOS situations (xray_vision).

--------------------------------------------------------------------------------
09226ac0c6 | Robert Vollmert | 2010-07-20 17:21:56 +0200

Wizard mode xray vision (Ctrl-V).
It would be nice to expose the whole viewed area, but
LOS code assumes circular bounds in a few places.

--------------------------------------------------------------------------------
ef7bc03388 | Robert Vollmert | 2010-07-20 17:21:56 +0200

Reorganize arena LOS overrides slightly.

--------------------------------------------------------------------------------
0b27c94de9 | Eino Keskitalo | 2010-07-20 17:34:43 +0300

Fix tutorial typos, grammar etc. [2031-2033]
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f1c9630068 | Eino Keskitalo | 2010-07-20 17:34:43 +0300

Fix typo in a comment.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3fafd4aa7b | David Lawrence Ramsey | 2010-07-20 07:50:51 -0500

Fix punctuation inconsistency: "life-force" versus "life force".

--------------------------------------------------------------------------------
4c445b91cf | Robert Vollmert | 2010-07-20 11:38:31 +0200

Nearing stat death causes paralysis, with appropriate messages.
The messages could probably be improved.

There's a chance for a few turns of paralysis once stat_zero reaches 50
(death at 100). This chance increases quadratically.

Paralysis isn't piled up, but you can get paralysed again right away
when you wake up. I think that's ok.

--------------------------------------------------------------------------------
5a20d562f5 | Robert Vollmert | 2010-07-20 10:05:05 +0200

Move enchantment skill MR bonus to staff of enchantment (#2030).
Also boost the bonus a bit: It used to be 2*skill (max 54), now
it's 3*(skill+3) (max 90). The numbers can be changed of course.

--------------------------------------------------------------------------------
122380c96f | Robert Vollmert | 2010-07-20 09:20:38 +0200

Disable generation of missiles and bows of reaping. (#1247)
The code is still there, but reaping clearly needs to be rethought
to make sense in game. Disabling until that is sorted out.

--------------------------------------------------------------------------------
249977303b | Robert Vollmert | 2010-07-20 08:42:14 +0200

Fix negative piety gain for some low-level kills (#2005).
I've added some unnecessary checks in view of
you.experience_level <= 27, but it's better not to rely on that
number.

--------------------------------------------------------------------------------
71a639317c | Charles Otto | 2010-07-19 21:23:33 -0400

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
articulated_kraken

--------------------------------------------------------------------------------
e8f2257ffd | Charles Otto | 2010-07-19 21:11:53 -0400

Make kraken retract tentacles instead of dropping them when fleeing
When kraken flee make their tentacles retract instead of killing them.
It looks nicer and is in some sense simpler than adding code at every
possible behavior shift point.

--------------------------------------------------------------------------------
8f955d76da | Charles Otto | 2010-07-19 20:53:52 -0400

s/type == kraken/mons_base_type == kraken/

--------------------------------------------------------------------------------
4a998008c0 | Charles Otto | 2010-07-19 20:48:00 -0400

Handle kraken/kraken tentacle teleports better
Update mons_relocated to handle kraken tentacles/tentacle segments
getting hit by blink/teleport effects.

--------------------------------------------------------------------------------
b81a4796cb | Charles Otto | 2010-07-19 20:33:52 -0400

Give tentacle segments M_NO_POLY_TO

--------------------------------------------------------------------------------
64fb17c95f | Charles Otto | 2010-07-19 20:31:33 -0400

Update a tentacles foe when pathing it into something

--------------------------------------------------------------------------------
21a3358573 | Charles Otto | 2010-07-19 17:54:44 -0400

Slightly better handling of tentacle length

--------------------------------------------------------------------------------
6ef4446d9a | Robert Vollmert | 2010-07-19 23:03:16 +0200

Fix inverted slime wall damage formula.

--------------------------------------------------------------------------------
81c43abd25 | Darshan Shaligram | 2010-07-19 22:40:20 +0530

Fix Jiyva jellies crashing Crawl when they try to eat shop items (syllogism).

--------------------------------------------------------------------------------
8afe42872c | Darshan Shaligram | 2010-07-19 21:16:45 +0530

sprint2 map fixes (Chapayev).

--------------------------------------------------------------------------------
ac11b1318b | Adam Borowski | 2010-07-19 16:14:58 +0200

Don't roll items' plusses, brands, _appearance_, etc in init_item_name_cache().

--------------------------------------------------------------------------------
b5dfb5413b | Adam Borowski | 2010-07-19 16:14:58 +0200

In the arena mode, don't execute many player-related actions and checks.

--------------------------------------------------------------------------------
dc97600381 | Adam Borowski | 2010-07-19 16:14:58 +0200

Enforce dependencies for the yaccage.
Previously, changing a .h file included by util/levcomp.*.cc didn't cause
it to be recompiled.

--------------------------------------------------------------------------------
42ccd053e2 | Adam Borowski | 2010-07-19 16:14:57 +0200

A compile option (-DDEBUG_GLOBALS) to let valgrind act on global classes.
It's not the default, even for debug builds, since it makes debugging with gdb
nasty -- you have to refer to real_you->field when gdb mentions you.field.
Even naming real_you just you would still force you to use "->" instead of ".".

--------------------------------------------------------------------------------
dbc72c204e | Adam Borowski | 2010-07-19 16:14:57 +0200

Fix an object referencing itself via a global in its constructor.

--------------------------------------------------------------------------------
3ffc8847f1 | Adam Borowski | 2010-07-19 16:14:57 +0200

Add valgrind suppressions for O(1) leaks in ncurses.

--------------------------------------------------------------------------------
d7462fb742 | Adam Borowski | 2010-07-19 16:14:57 +0200

Fix an (invalid) gcc warning.

--------------------------------------------------------------------------------
f7cff99618 | Darshan Shaligram | 2010-07-19 17:34:16 +0530

Don't write ikiller field when ikiller=killer (bhaak).

--------------------------------------------------------------------------------
98973aa9da | Charles Otto | 2010-07-18 20:07:40 -0400

Improve tentacle pathfinding
Fix a bug in pathfinding, actually use a heuristic in pathfinding.

--------------------------------------------------------------------------------
505f69f721 | Charles Otto | 2010-07-18 16:14:44 -0400

Prune some unused code

--------------------------------------------------------------------------------
0ed9109ee3 | Charles Otto | 2010-07-18 15:48:09 -0400

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
articulated_kraken

--------------------------------------------------------------------------------
2b13d36fbd | Charles Otto | 2010-07-18 15:24:13 -0400

Introduce a constraint on tentacle length, drop some LOS checks
For kraken, use a constraint on tentacle length rather than forcing
the tentacle to only move in the kraken's LOS. Update tentacle
pathfinding to use this constraint--incidentally this allows
pathfinding to handle moves that retract the tentacle, leading to more
sane behavior when pathing around a plant or whatever.

--------------------------------------------------------------------------------
4472e40594 | Charles Otto | 2010-07-18 13:08:15 -0400

Minor cleanup of move_kraken_tentacles

--------------------------------------------------------------------------------
968cc6db3f | Darshan Shaligram | 2010-07-18 21:36:09 +0530

Check /usr/include for lua if the Debian-standard location doesn't have it. 
(doy)

--------------------------------------------------------------------------------
46aaf3808f | Darshan Shaligram | 2010-07-18 20:50:52 +0530

Log the value of restart_after_game in crash dumps.

--------------------------------------------------------------------------------
330ce4e854 | Darshan Shaligram | 2010-07-18 20:25:59 +0530

Fix broken macro file location in DGL builds.

--------------------------------------------------------------------------------
781c39080c | Darshan Shaligram | 2010-07-18 20:08:44 +0530

[2007] Fix tmut spells not working with restart_after_game.
The player class doesn't initialise all its fields, and restart_after_game was
resetting it to a stack-initialised instance with garbage values for the
uninitialised fields, such as is_undead.

Fixed to use a static-initialised player object to reset 'you' on game reset.
Eventually, a better fix would be to explicitly initialise all player fields in
the constructor initialiser list.

--------------------------------------------------------------------------------
6e4f93d224 | Adam Borowski | 2010-07-18 13:22:47 +0200

Fix incorrect attribution for Awaken Forest.
The messages are not the best, but doing this right would require either
introducing a new kill method or some hacks, and that would be a bad idea
this close to the release.

The "awoken" version, suggested by due, looks a bit better but may puzzle
people due to a noun phrase split by "(damage: 8)\n ..."; if you think this
is bad please change this to my earlier "awakening".

--------------------------------------------------------------------------------
3d3ff3e5e9 | Adam Borowski | 2010-07-18 12:22:33 +0200

Make Tukima's Vorpal Blade work on all blades (inc. daggers, qb, knives) [1965]

--------------------------------------------------------------------------------
b3e72db644 | Darshan Shaligram | 2010-07-18 12:32:33 +0530

.crawlrc location fixes: Fix "Read options from unknown" idiocy, add 
../settings/init.txt to list of .crawlrc locations to try (Enne).

--------------------------------------------------------------------------------
0089b4db13 | Darshan Shaligram | 2010-07-18 11:42:48 +0530

Fix reference to LUA_SYSTEM_DIR, include SQLITE_INCLUDE_DIR in CFLAGS for the 
case where the sqlite headers are not in /usr/include.

--------------------------------------------------------------------------------
1718cb417a | Darshan Shaligram | 2010-07-18 11:31:41 +0530

[2004] Fix fizzle message for Blade card.

--------------------------------------------------------------------------------
615a95415b | Darshan Shaligram | 2010-07-18 11:29:37 +0530

[2003] Clamp length of name entered at menu at kNameLen.
It would be nice to use one of the dedicated text input routines for the player
name at the main menu.

--------------------------------------------------------------------------------
c758722c4b | Darshan Shaligram | 2010-07-18 11:07:44 +0530

[2001] Clear monster and item transit lists when resetting game.

--------------------------------------------------------------------------------
95eed83973 | Charles Otto | 2010-07-17 22:23:13 -0400

Consider tentacle connectors blocking during kraken pathing
Don't try and pathfind in between segments (of the current tentacle)
this generally screws up connectivity, so consider tentacle connectors
+ their 8 surrounding squares blocked.

--------------------------------------------------------------------------------
ef4dd6923a | Steven Noonan | 2010-07-17 18:42:47 -0700

makefile: add configurable system SQLite and Lua paths
Patch suggested by Joachim Schipper.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
24e7e1e5c7 | Charles Otto | 2010-07-17 20:53:17 -0400

Kraken pathfinding/connectivity improvements
Some refactoring, somewhat more robust tentacle connectivity

--------------------------------------------------------------------------------
2fbee3c09e | David Lawrence Ramsey | 2010-07-17 17:50:34 -0500

Make describe_xom_favour() and _xom_effect_to_name() return std::string.
This avoids problems with c_str()'s going out of scope, and these two
functions are only assigned to std::string variables anyway.
Furthermore, this fixes Mantis 1999.

Also, constify the return value of _describe_favour_generic().

--------------------------------------------------------------------------------
b40fa65a34 | Charles Otto | 2010-07-17 18:47:08 -0400

Don't use a distance estimate in the tentacle connect search
Don't bother using a distance estimate in the tentacle connect search.
The search is highly constrained (based on past tentacle positions) so
it's not really going to help performance, and not using the estimate
gives the tentacle more sway (since equal distance points are visited
in a random order).

--------------------------------------------------------------------------------
a0b970f4ce | Charles Otto | 2010-07-17 16:08:29 -0400

Revert an accidentally committed makefile change

--------------------------------------------------------------------------------
03c84b2698 | Charles Otto | 2010-07-17 16:04:22 -0400

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
articulated_kraken

--------------------------------------------------------------------------------
e9a00c7fc5 | Charles Otto | 2010-07-17 15:58:41 -0400

Don't bother doing a search when retracting a tentacle
When retracting a tentacle just move to the last connector position
in the chain, don't bother trying to pathfind to the head.

--------------------------------------------------------------------------------
b60faeec26 | Charles Otto | 2010-07-17 15:11:31 -0400

Better constraint handling when a tentacle end changes position

--------------------------------------------------------------------------------
950e825a04 | David Ploog | 2010-07-17 18:33:39 +0200

Add Killer Klown speech (greensnark).

--------------------------------------------------------------------------------
fe22e64dcf | Enne Walker | 2010-07-17 09:22:58 -0700

Fix blood animations on stone arches.
The stone arch was placed in the "animated tiles" section with water and
altars.  Fixed by moving it out of that.

--------------------------------------------------------------------------------
5924350ec0 | Enne Walker | 2010-07-17 09:01:55 -0700

Resize the minimap region to take up more space.
This allows scrolling off the map but still being well within the
(perceived) minimap region on screen to not reset the view.

--------------------------------------------------------------------------------
6bb769da38 | Enne Walker | 2010-07-17 09:01:55 -0700

Let minimap right click view go out of bounds.
This prevents the view from resetting after you get out of the known map
bounds, which is irritating on small minimaps.

--------------------------------------------------------------------------------
88232bc39f | RjY | 2010-07-17 20:20:04 +0530

makefile: fix incorrect version number built into version.o
On a partial rebuild, even if build.h and compflag.h were changed,
version.o was not rebuilt. This was because the makefile incorrectly
declared that version.cc (not .o) depended on them.

This could result in out-of-date version information (e.g. output of
"git describe") being embedded in the game executable.

Signed-off-by: RjY <rjy@users.sourceforge.net>

--------------------------------------------------------------------------------
3d390b1ab0 | Darshan Shaligram | 2010-07-17 19:17:31 +0530

Refix linewrap column check to avoid CPU-pegging on small terms.

--------------------------------------------------------------------------------
97f88be3aa | Darshan Shaligram | 2010-07-17 18:55:02 +0530

Fix tiles crash when using 'X' (oops).

--------------------------------------------------------------------------------
8636e5810e | Darshan Shaligram | 2010-07-17 17:54:10 +0530

Increase piety cost for brothers-in-arms and greater servants to 2.5x their 
normal values in Sprint.

--------------------------------------------------------------------------------
33f1f0de87 | Darshan Shaligram | 2010-07-17 17:06:55 +0530

Use ~/.crawl/macro.txt as default macro file only on Unix, fix compile with 
SAVE_DIR_PATH set and !DGAMELAUNCH (oops).

--------------------------------------------------------------------------------
deeda1288b | Darshan Shaligram | 2010-07-17 16:56:46 +0530

Dump macro file in ~/.crawl/macro.txt by default on Unix.

--------------------------------------------------------------------------------
8d37da4254 | Darshan Shaligram | 2010-07-17 16:36:02 +0530

Fix macro_dir handling (Napkin).

--------------------------------------------------------------------------------
7fac83e352 | Stefan O'Rear | 2010-07-17 01:35:07 -0700

Add Matthew Tadd (Fangorn) to CREDITS.txt

--------------------------------------------------------------------------------
86efab317e | Matthew Tadd | 2010-07-17 10:15:38 +0200

Fix cycling quiver backwards from first item (part of #354).
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
96b9b9d7d7 | Charles Otto | 2010-07-16 21:02:55 -0400

Merge master into articulated_kraken

--------------------------------------------------------------------------------
3699c76821 | Enne Walker | 2010-07-16 14:13:58 -0700

Add Ilkka Koskela (coolio) to the credits.

--------------------------------------------------------------------------------
d2529118e6 | Darshan Shaligram | 2010-07-16 23:08:57 +0530

Add ASSERT_SAVE macro for asserts where it should be safe to emergency-save the 
game when the assert fails (doy).
ASSERT_SAVE is currently used only for term size checks, but it can be used any
place if it's known that the game is safe to save at that point.

--------------------------------------------------------------------------------
3b999c2eee | Enne Walker | 2010-07-16 10:28:32 -0700

Remove better transparency option from settings.
This was removed a while ago, just not from the settings file.

--------------------------------------------------------------------------------
61540fe7fc | Enne Walker | 2010-07-16 10:28:32 -0700

Always use max lines in tiles startup menu.
This is an alternate fix for #1840 that is slightly less hacky than using
a tile size / font size multiplier.  I think it's reasonable to just fill
all the available space with potential save file slots.

--------------------------------------------------------------------------------
dd0fe08b9a | Enne Walker | 2010-07-16 10:28:32 -0700

Remove magic numbers from startup menu.
This commit does not contain any logic changes, only refactoring.

--------------------------------------------------------------------------------
fdbd60ccb7 | Enne Walker | 2010-07-16 10:28:31 -0700

Revert "Reserve extra space for tiles save game menu. Fixes mantis #1840"
This reverts commit 6ee71c935cde1cfc8a90e87085ba4ae30279a4c8.

--------------------------------------------------------------------------------
bba8f8c213 | Darshan Shaligram | 2010-07-16 22:23:59 +0530

Reinstate view bounds asserts; these crashes should be fixed by more robust 
handling of SIGWINCH in 0.8.

--------------------------------------------------------------------------------
b8261bfa35 | Darshan Shaligram | 2010-07-16 22:05:29 +0530

Fix tty Crawl crashing or CPU-pegging when the user shrinks their terminal.
Various ASSERTs for view coordinates made it trivial to crash Crawl merely by
reducing your terminal size. Fixed to bail out instead of ASSERT-ing for bad
view bounds.

--------------------------------------------------------------------------------
554cce172d | Adam Borowski | 2010-07-16 16:46:58 +0200

Windows installer changes:
* nuke the staging dir on "make clean"
* obey USE_MERGE_BASE (this applies to package-source as well)
* rename the console binary to crawl-console.exe
  It made sense on Unix since it's typically run from a terminal rather than
  a menu there, but on Windows, it just causes confusion.
* don't purge C:\Program Files\Crawl\ on uninstall, in case someone puts
  some precious data there.
* ship README.{txt,pdf}, LICENCE.txt, CREDITS.txt

--------------------------------------------------------------------------------
b7cedc63f4 | Darshan Shaligram | 2010-07-16 19:04:00 +0530

Fix Aliza's macro crash (!lm Aliza type=crash 1)
The game triggered an assert when

1. The keyboard buffer had several queued keystrokes (not macro-expanded)

2. The first keystroke triggered a Lua macro that added expanded keystrokes to
   the *end* of the macro buffer -- adding expanded keys to the *front* of
   the macro buffer was always safe.

3. The macro buffer ended up looking like this: <keys-waiting-macroexpansion>
   <macroexpanded-keys>

(3) triggers the assert, since Crawl expects macroexpanded keys to always be at
the front of the macro buffer.

Fixed by using a secondary keybuffer to collect keys injected by Lua macros and
add them to the primary macro buffer only when it is empty.

Lua sendkeys and process_keys both add expanded keys to the end of the macro
buffer, which is probably not intended; they should presumably be adding keys
to the front of the macro buffer. This fix does not address that, however.

Also clear macro buffers when restarting after a game ends
(restart_after_game=yes)

--------------------------------------------------------------------------------
3a57810f6f | Adam Borowski | 2010-07-16 14:23:19 +0200

Make rotting hulk corpses pre-rotten.  Drop rotting^2. [1984]

--------------------------------------------------------------------------------
2853989995 | Adam Borowski | 2010-07-16 14:23:14 +0200

Fix crash on ?/m gold, where "gold" is a partial match for a mimic type.

--------------------------------------------------------------------------------
956b740cff | Adam Borowski | 2010-07-16 12:35:13 +0200

Get rid of more longs and all "%ld"s, new gcc + Windows + them = bad mojo.

--------------------------------------------------------------------------------
4bde4b17c7 | Robert Vollmert | 2010-07-16 11:38:21 +0200

Remove random staff ID over time.
This was obsoleted long ago when casting spells was given
a chance to identify the wielded staff.

--------------------------------------------------------------------------------
ca75baaf19 | Jude Brown | 2010-07-16 19:05:46 +1000

Fix bad ize/ise on vorpalise with Troves.

--------------------------------------------------------------------------------
795d6333a2 | Charles Otto | 2010-07-15 21:17:47 -0400

Actually fix death messages for giant spore/ball lightning kills
Address mantis issues 1911, 1776 etc. regarding ball lightning and/or
giant spore explosion kills being misattributed in player death
messages.

--------------------------------------------------------------------------------
459ffb469a | Charles Otto | 2010-07-15 20:50:12 -0400

[1971] Fix canceling sunlight at the prompt still costing
Canceling at a targeting prompt shouldn't cost the player
a turn/mp/food.

--------------------------------------------------------------------------------
623e2decd1 | Charles Otto | 2010-07-15 20:30:24 -0400

[1951] Fix enchantment duration averaging during slime merges
Fix some bad logic when averaging merging slime creatures' enchantment
durations.

--------------------------------------------------------------------------------
5bacebe3c6 | Enne Walker | 2010-07-15 17:05:30 -0700

Add green hair and beard player tiles.
This is applied to merfolk and spriggans by default.

--------------------------------------------------------------------------------
b95f38fe5c | Enne Walker | 2010-07-15 16:41:05 -0700

[1967] Add spriggan player doll tiles. (coolio)

--------------------------------------------------------------------------------
e458e33152 | Enne Walker | 2010-07-15 16:15:07 -0700

[1981] Add iron elemental tile. (coolio)

--------------------------------------------------------------------------------
b5cadccb84 | Darshan Shaligram | 2010-07-15 23:54:33 +0530

Remove mention of Ctrl-T for tutorial from README.pdf

--------------------------------------------------------------------------------
8716dbed76 | Darshan Shaligram | 2010-07-15 23:16:24 +0530

Remove mention of Ctrl-T as the key to start the tutorial.

--------------------------------------------------------------------------------
ec6614ff8b | Darshan Shaligram | 2010-07-15 23:07:59 +0530

[1980] Clear overview in _reset_game.

--------------------------------------------------------------------------------
8fd2f1edb5 | Janne Lahdenpera | 2010-07-15 18:55:51 +0300

In species/bg menu, '+' will now either pick viable or duplicate '*' behaviour 
if no previous choice has been done. Fixes mantis issue 1975.
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
6ee71c935c | Janne Lahdenpera | 2010-07-15 18:21:11 +0300

Reserve extra space for tiles save game menu. Fixes mantis #1840
The solution is a bit klunky.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
9600a61d28 | Darshan Shaligram | 2010-07-15 17:11:11 +0530

Correct changelog (syllogism).

--------------------------------------------------------------------------------
8710a4bc71 | Darshan Shaligram | 2010-07-15 16:49:56 +0530

Add Stone Soup 0.7 heading to changelog, remove unnecessarily confusing mention 
of 0.6.

--------------------------------------------------------------------------------
738592de32 | Darshan Shaligram | 2010-07-15 15:14:20 +0530

Add -DASSERTS to Xcode build.

--------------------------------------------------------------------------------
9cacee8f27 | Darshan Shaligram | 2010-07-15 15:13:01 +0530

Fix build failure when ASSERTS is not defined.

--------------------------------------------------------------------------------
f137746e2c | Steven Noonan | 2010-07-14 22:20:37 -0700

zlib: drop 'gzio.c' from makefile
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e28c36ae0e | Steven Noonan | 2010-07-14 22:19:28 -0700

rltiles: fix build on Mac OS X x86_64
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
098372b8bc | Steven Noonan | 2010-07-14 21:39:16 -0700

contribs: updated to latest upstream
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
93d9f858ba | Adam Borowski | 2010-07-14 23:37:08 +0200

Correct incorrect feature descriptions. [1968]

--------------------------------------------------------------------------------
c0cee7a30d | Adam Borowski | 2010-07-14 23:11:23 +0200

Windows installer: fix the UAC not getting elevated on Vista/7.

--------------------------------------------------------------------------------
97d9cb9753 | Adam Borowski | 2010-07-14 23:11:01 +0200

Clean away TAG_MAJOR 27 #ifdefs.

--------------------------------------------------------------------------------
56b6e971d9 | Darshan Shaligram | 2010-07-14 20:45:23 +0530

Bump save version to 28.0 to avoid conflicts with 0.7 games.

--------------------------------------------------------------------------------
b540edd891 | Darshan Shaligram | 2010-07-14 20:28:37 +0530

Keep track of different fruit types the player has found for the 2010 
tournament Fedhas banner.

--------------------------------------------------------------------------------
08b10a2aef | Darshan Shaligram | 2010-07-14 19:11:07 +0530

Add a milestone for destruction of the Orb.

--------------------------------------------------------------------------------
1b48fd3810 | Darshan Shaligram | 2010-07-14 19:11:07 +0530

Rename is_rune* to item_is_rune*, make mark_milestone usable without dgl check 
at every point of use.

--------------------------------------------------------------------------------
5825bbfabf | Darshan Shaligram | 2010-07-14 19:11:07 +0530

Reinstate full item destruction when dropping stuff into lava, don't destroy 
abyssal runes in water.

--------------------------------------------------------------------------------
27501e37c9 | Eino Keskitalo | 2010-07-14 14:56:18 +0300

Make the wingless player tile the default for kenku, as per description in the 
manual.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e20b67a303 | Eino Keskitalo | 2010-07-14 14:56:18 +0300

Remove wings from the new kenku tile, also add a shadow. Keep the winged one in 
UNUSED.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
96a6a5c628 | Adam Borowski | 2010-07-14 13:48:07 +0200

Fix crash caused by the tide returning to a stranded fish.

--------------------------------------------------------------------------------
6560e46456 | Adam Borowski | 2010-07-14 13:46:06 +0200

Fix crash causes by the tide returning to a stranded fish.

--------------------------------------------------------------------------------
0a08345ef3 | Adam Borowski | 2010-07-14 12:36:28 +0200

An unified installer for Windows, using NSIS.

--------------------------------------------------------------------------------
6b52ec5567 | Adam Borowski | 2010-07-14 10:42:00 +0200

Remove a doubled elf from kb_entry_jail.

--------------------------------------------------------------------------------
b04ef364c0 | Adam Borowski | 2010-07-14 10:31:17 +0200

Add Totaku's tile for kenku (monster).
It probably should have its wings removed, but I'll leave that to the artists.
It'd be nice to use the tile for kenku players, too.

--------------------------------------------------------------------------------
87e4b11c59 | Darshan Shaligram | 2010-07-14 11:08:06 +0530

[1963] Fix abyss not generating new areas in Sprint (reid).
Teleport-blocking items will still prevent abyss warp.

--------------------------------------------------------------------------------
073c4f10a6 | Enne Walker | 2010-07-13 20:50:47 -0700

Properly clear screen after game reset.
This fixes monster tags from being seen after game reset.  It also fixes
an infrequent issue where sometimes the previous dungeon view would be
seen.

--------------------------------------------------------------------------------
00edf0c839 | Enne Walker | 2010-07-13 20:49:50 -0700

Fix view colour flash after game reset.
you.flash_colour was getting set to garbage values, so would sometimes
flash the screen afer game reset.

--------------------------------------------------------------------------------
b13f35da24 | Enne Walker | 2010-07-13 20:40:12 -0700

Don't add wave transition tiles for sewer water.

--------------------------------------------------------------------------------
1ba1ca4449 | Enne Walker | 2010-07-13 20:33:18 -0700

[1961] Add blue tutorial tile. (Poor Yurik)

--------------------------------------------------------------------------------
f780cc8fec | Adam Borowski | 2010-07-13 23:47:59 +0200

Disable quads from acquirement as well.

--------------------------------------------------------------------------------
38ec06aa3b | Adam Borowski | 2010-07-13 21:06:49 +0200

Cats: wear rings on paws rather than hands.

--------------------------------------------------------------------------------
5bcc0ee1ea | Adam Borowski | 2010-07-13 21:03:29 +0200

Cats: improve Tloc apt by a bit (Mu_)

--------------------------------------------------------------------------------
edbdabfcad | Adam Borowski | 2010-07-13 20:18:22 +0200

Cats: describe "wielded" items as "in mouth".

--------------------------------------------------------------------------------
c78ba696d9 | Adam Borowski | 2010-07-13 20:14:29 +0200

Cats: meow or yowl instead of shouting.

--------------------------------------------------------------------------------
3fea210a1e | Adam Borowski | 2010-07-13 20:05:16 +0200

Cats: improve elemental magic apts to -1, degrade Evoc to -1.

--------------------------------------------------------------------------------
aea4b5f257 | Adam Borowski | 2010-07-13 19:07:33 +0200

Cats: set the species' name to "Witch's Cat".
Actually, it sounds a bit strange, plain "Cat" looked a bit better.
Other alternatives include "Felid".  Anyway, it's a non-antropomorphic
cat with sentience and speech, but without prehensile hands.

--------------------------------------------------------------------------------
954f0f8e80 | Adam Borowski | 2010-07-13 11:19:20 +0200

Makeshift dwarf tiles for 0.7 (coolio, edited from NetHack)

--------------------------------------------------------------------------------
5951c36886 | Enne Walker | 2010-07-12 20:51:38 -0700

Change file mode of all tiles to 644.

--------------------------------------------------------------------------------
2d5f92b78d | Enne Walker | 2010-07-12 20:51:38 -0700

Use brighter wall tiles for main dungeon.

--------------------------------------------------------------------------------
1c7a90e05e | Enne Walker | 2010-07-12 20:51:38 -0700

Separate out banner tile from wall tile.

--------------------------------------------------------------------------------
936d6ee796 | Enne Walker | 2010-07-12 20:51:37 -0700

[1936] Fix secret doors using the wrong tile.
Now secret doors that are surrounded by walls that are using custom tiles
will use that tile themselves.

--------------------------------------------------------------------------------
eeaf47ff14 | Enne Walker | 2010-07-12 20:51:37 -0700

[1937] Fix mouseover alt text issues.
The alt text was not redrawing in enough cases, leading to a redraw of
the previous text.  This also fixes an issue where moving the mouse to a
region with no alt text didn't redraw the screen either.

--------------------------------------------------------------------------------
1446076d44 | Enne Walker | 2010-07-12 20:51:37 -0700

Let snails and centipedes use zombie tiles.

--------------------------------------------------------------------------------
29109cd6f3 | Enne Walker | 2010-07-12 20:51:37 -0700

Resize griffon tile to be 32x32.

--------------------------------------------------------------------------------
776de37223 | Adam Borowski | 2010-07-13 01:57:34 +0200

Mark bad rings of evasion as bad.

--------------------------------------------------------------------------------
24dcc36c9a | Adam Borowski | 2010-07-12 18:23:43 +0200

Allow SAVEDIR=~/crawl on Windows.  Unbreak paths starting with C: or such.
~ in this cases stands for C:\Documents and Settings\User Name\Application Data\
or equivalent -- it varies wildly between versions of Windows and localizations.

--------------------------------------------------------------------------------
fbc115dca2 | Adam Borowski | 2010-07-12 18:08:42 +0200

Fix ugly memory-trampling little-endian only pointer misuse.

--------------------------------------------------------------------------------
61b67ee8d6 | Adam Borowski | 2010-07-12 18:08:41 +0200

Unbreak SAVEDIR=~/.crawl

--------------------------------------------------------------------------------
729f06b868 | Adam Borowski | 2010-07-12 18:08:36 +0200

Fix a crash on win32 due to msvc libc screwing up sprintf("%ld", long). Also, 
get rid of a few other longs.

--------------------------------------------------------------------------------
c1700348c4 | Adam Borowski | 2010-07-12 12:35:10 +0200

Cats: add missing res_magic setting.

--------------------------------------------------------------------------------
c4271cef4b | Adam Borowski | 2010-07-12 12:33:25 +0200

Cats: add a dummy for show_player_species.

--------------------------------------------------------------------------------
bb22bb372e | Adam Borowski | 2010-07-12 12:05:06 +0200

Merge branch 'master' into cats

--------------------------------------------------------------------------------
d6448f7229 | Adam Borowski | 2010-07-12 11:43:18 +0200

Don't force bands on Pan monsters other than normal spawns [1945]

--------------------------------------------------------------------------------
f106ed5442 | Adam Borowski | 2010-07-12 11:32:35 +0200

Remove some impossible to trigger code.
At that point, you.level_type will be either ABYSS or PANDEMONIUM,
so player_in_hell() is always false.

Please review if this was supposed to have some functionality.

--------------------------------------------------------------------------------
4d387667ce | Adam Borowski | 2010-07-12 01:27:39 +0200

Grey draconian monsters.

--------------------------------------------------------------------------------
2c85f5a170 | Adam Borowski | 2010-07-11 23:55:35 +0200

Remove an obsolete magic number from best_skill().

--------------------------------------------------------------------------------
2b6e2f9827 | Adam Borowski | 2010-07-11 23:37:16 +0200

Simplify is_player_same_species().

--------------------------------------------------------------------------------
82a031cb47 | Adam Borowski | 2010-07-11 23:20:29 +0200

An option "show_player_species" to make your HOPr a yet another 'o'.
Grey draconians are currently broken, as there are no monster grey dracs,
and adding one would require either breaking save compat or some hackery.

--------------------------------------------------------------------------------
b806c37f92 | Adam Borowski | 2010-07-11 21:45:08 +0200

Dummy monsters: kenku (polyable), demonspawn, demigod, halfling.

--------------------------------------------------------------------------------
6973425606 | Adam Borowski | 2010-07-11 20:13:44 +0200

Rename a weird-named variable.

--------------------------------------------------------------------------------
c0737414c3 | Adam Borowski | 2010-07-11 20:13:44 +0200

Make being an invalid target for polymorphs an actual flag.

--------------------------------------------------------------------------------
508b51e751 | Adam Borowski | 2010-07-11 20:13:43 +0200

Document how to redefine player's glyph/colour.

--------------------------------------------------------------------------------
088ff2eeaa | Adam Borowski | 2010-07-11 20:13:43 +0200

Allow redefining the player's glyph/color.  Obey redefinitions for transforms.

--------------------------------------------------------------------------------
289c504337 | Jude Brown | 2010-07-11 22:31:52 +1000

Fix Mennas's description.

--------------------------------------------------------------------------------
4d0158c707 | Jude Brown | 2010-07-11 22:22:05 +1000

Sprint tweaks: teleportation.
This commit should prevent all forms of teleportation. It doesn't
currently prevent teleportation control, but seeing as teleportation
shouldn't ever occur, this isn't an issue. Teleportitis mutation is
ignored, as are *Tele items, most specifically, rings of teleportation.

Seeing as teleportation is now useless, all such items (scroll of
teleportaton, ring of teleportation, ring of teleport control) are
marked as useless. I've left wand of teleportation as favoured, however,
as you should still be able to use it to get rid of undesirable foes.

--------------------------------------------------------------------------------
2139eb19c9 | Jude Brown | 2010-07-11 13:50:18 +1000

New Sprint unique: Mennas.

--------------------------------------------------------------------------------
c61e56c6dc | Darshan Shaligram | 2010-07-10 18:11:05 +0530

A script to run the Xcode tiles and ASCII builds and upload them to CDO.

--------------------------------------------------------------------------------
cf0144fbba | Haran Pilpel | 2010-07-10 15:32:20 +0300

Allow "plain" as a synonym for "common".

--------------------------------------------------------------------------------
2d57d97a08 | Haran Pilpel | 2010-07-10 15:25:21 +0300

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
32595a14c1 | Haran Pilpel | 2010-07-10 15:22:57 +0300

Allows decks to be specified in ITEM lines. Some sample specs: deck ornate deck 
of dungeons rare deck deck of war legendary deck of punishment

--------------------------------------------------------------------------------
2fe5cebd8e | Jude Brown | 2010-07-10 14:40:21 +1000

Stop jellies eating restricted doors.

--------------------------------------------------------------------------------
b38621aa09 | Enne Walker | 2010-07-09 18:30:16 -0700

Make torch tiles more modular.

--------------------------------------------------------------------------------
028c8dd967 | Enne Walker | 2010-07-09 18:30:15 -0700

Touch up shallow water tiles to look less square.

--------------------------------------------------------------------------------
bcec50d3d7 | Enne Walker | 2010-07-09 18:30:15 -0700

Darken door tiles. (Poor_Yurik)

--------------------------------------------------------------------------------
83a985b57d | Enne Walker | 2010-07-09 18:30:15 -0700

Add updated wall tiles. (Poor_Yurik)

--------------------------------------------------------------------------------
9f87a5de56 | Enne Walker | 2010-07-09 18:30:14 -0700

Darken stone stair tiles.

--------------------------------------------------------------------------------
21cfd6b7a6 | Enne Walker | 2010-07-09 18:30:14 -0700

Revert "Add Poor_Yurik's initial door tiles."
This reverts commit ff54a3b773445f125bac648d59c8997c9f72d4fb.

--------------------------------------------------------------------------------
54eea3e89c | Enne Walker | 2010-07-09 18:30:14 -0700

Make vertical wall tile shadows less opaque.

--------------------------------------------------------------------------------
0ff37dec61 | Enne Walker | 2010-07-09 18:30:05 -0700

Only run tile animations once per turn.
This fixes the issue where animations occurred four times when moving,
thus making the 4 frame torch animation appear like it was not working.

--------------------------------------------------------------------------------
2b7ccdf46d | Enne Walker | 2010-07-09 17:39:18 -0700

Change new dungeon tiles to be floor/wall_normal.
This allows any .des file referring to "floor_normal" to do use the
new dungeon walls and floors.

--------------------------------------------------------------------------------
0f6f5cfd36 | Enne Walker | 2010-07-09 17:39:18 -0700

Touch up vaults using FTILE.

--------------------------------------------------------------------------------
aa51954e8a | Enne Walker | 2010-07-09 17:39:17 -0700

Fix shore tiles being underneath wave tiles.

--------------------------------------------------------------------------------
3a25b55023 | Enne Walker | 2010-07-09 17:39:17 -0700

Desaturate plant tiles.

--------------------------------------------------------------------------------
0c6e4a77e6 | Enne Walker | 2010-07-09 17:39:17 -0700

Desaturate blood tiles.
No longer do orcs spill out ketchup on the ground when they die.

--------------------------------------------------------------------------------
7d8249d818 | Enne Walker | 2010-07-09 17:39:17 -0700

Draw tile shadows on features, not just floors.

--------------------------------------------------------------------------------
c48615db47 | Enne Walker | 2010-07-09 17:39:16 -0700

Rename tile wave functions to overlay functions.

--------------------------------------------------------------------------------
3d59197050 | Enne Walker | 2010-07-09 17:39:16 -0700

Add wall shadow tiles and code.

--------------------------------------------------------------------------------
32f5df7087 | Enne Walker | 2010-07-09 17:39:16 -0700

Handle corner wave transition tiles properly.

--------------------------------------------------------------------------------
4f77d41261 | Enne Walker | 2010-07-09 17:39:16 -0700

Add deep->shallow water transition tiles.

--------------------------------------------------------------------------------
e674db5336 | Enne Walker | 2010-07-09 17:39:15 -0700

Allow shore tiles for lava as well.

--------------------------------------------------------------------------------
c4d39f26ef | Enne Walker | 2010-07-09 17:39:15 -0700

Add Poor_Yurik's initial door tiles.

--------------------------------------------------------------------------------
43aa357ffd | Enne Walker | 2010-07-09 17:39:15 -0700

Add torch tile animations.

--------------------------------------------------------------------------------
11baea8af0 | Enne Walker | 2010-07-09 17:39:14 -0700

Add synonym command to rltiles.
This allows tiles to be given enums without breaking the count of the
previous enum.  In other words, if there's a set of tiles, you can name
the individual tiles with %synonym, but still consider it a set.

--------------------------------------------------------------------------------
2fc3ac3e2b | Enne Walker | 2010-07-09 17:39:14 -0700

Add code for shore tiles.
This adds a slight grey shadow on the north, east, and west sides of
water touching (seen) land, which creates a nice 3D effect.

--------------------------------------------------------------------------------
c1c31c41b5 | Enne Walker | 2010-07-09 17:39:14 -0700

First pass at Yurik's new dungeon tiles.
Default floors and walls are changed with a first pass at weighting.

--------------------------------------------------------------------------------
05e30c2341 | Darshan Shaligram | 2010-07-10 02:06:28 +0530

Fix Vitrification converting permarock to open sea (syllogism).

--------------------------------------------------------------------------------
02aac04455 | Darshan Shaligram | 2010-07-10 01:52:05 +0530

Fix Tab not working in Sprint map menu for DGL builds, fix Sprint startup 
failing when selecting a random character with '!'.

--------------------------------------------------------------------------------
d2e51d5347 | Robert Vollmert | 2010-07-09 22:15:58 +0200

Sort sprint maps in menu.

--------------------------------------------------------------------------------
200b07d23a | Darshan Shaligram | 2010-07-10 00:53:16 +0530

Revert "Fix Sif Muna piety gain still being 3x more than intended in Sprint."
Sprint skill training degree is 27x, which only affects amount of exp pool used
for training, but the actual xp multiplier is 9x.

Thanks to rob for the correction.

This reverts commit b380bfe67f175be2305a06cd113d457ec8fc65b9.

--------------------------------------------------------------------------------
f80c914cfe | Darshan Shaligram | 2010-07-10 00:01:14 +0530

Xcode: disable -pedantic, enable wizmode in Release config, other fixes to 
build master.

--------------------------------------------------------------------------------
ac4e5ffc59 | Darshan Shaligram | 2010-07-09 22:36:37 +0530

Fix "Escaped with the Orb!." in game end screen and logfile.

--------------------------------------------------------------------------------
2f8cee484e | Darshan Shaligram | 2010-07-09 22:14:19 +0530

Revert "BEAM_FRAG affects walls only for Lee's, not for Sandblast and metal 
splinters. Fixes crash."
This breaks Lee's explosions when the targeted wall is not destroyed.

This reverts commit 3dfcf308bf17f903c246cc6fa69e34472bbe918a.

--------------------------------------------------------------------------------
b380bfe67f | Darshan Shaligram | 2010-07-09 22:02:16 +0530

Fix Sif Muna piety gain still being 3x more than intended in Sprint.

--------------------------------------------------------------------------------
487faad4d5 | Darshan Shaligram | 2010-07-09 21:39:16 +0530

Partly revert "Fix beams not reaching some targets within range. (#1926)".
The range check is needed for special cases such as electric eel bolts hitting
trees, which otherwise assert.

Changing the range check to be range_used > range instead of >= also addresses
[1926].

This reverts commit 1d37fd6d0cad1c56d3de9af3b26740b29a1b2eec.

--------------------------------------------------------------------------------
3dfcf308bf | Darshan Shaligram | 2010-07-09 20:39:17 +0530

BEAM_FRAG affects walls only for Lee's, not for Sandblast and metal splinters. 
Fixes crash.

--------------------------------------------------------------------------------
b1033a523a | Adam Borowski | 2010-07-09 16:44:42 +0200

Don't generate quads normally...

--------------------------------------------------------------------------------
7d067807f4 | Adam Borowski | 2010-07-09 16:39:44 +0200

Cats: show lives on the % screen.

--------------------------------------------------------------------------------
767e1b7ff8 | Adam Borowski | 2010-07-09 16:39:44 +0200

Cats: actually store the number of lives left.

--------------------------------------------------------------------------------
028de7ebf3 | Adam Borowski | 2010-07-09 16:39:00 +0200

Cats: saner recommended backgrounds.

--------------------------------------------------------------------------------
c34b21055e | Adam Borowski | 2010-07-09 16:39:00 +0200

Cats: change the stab messages to say "pounce" instead.

--------------------------------------------------------------------------------
f5bb8858ae | Adam Borowski | 2010-07-09 16:39:00 +0200

Cats: fix claws not working.

--------------------------------------------------------------------------------
d9597e27e8 | Adam Borowski | 2010-07-09 16:38:59 +0200

Cats: lives.

--------------------------------------------------------------------------------
48201827f2 | Adam Borowski | 2010-07-09 16:38:59 +0200

Cats: fix improper unarmed messages.

--------------------------------------------------------------------------------
29cf2f75fd | Adam Borowski | 2010-07-09 16:38:59 +0200

Cats: mark scrolls of recharging as useless.

--------------------------------------------------------------------------------
d4ad7b454e | Adam Borowski | 2010-07-09 16:38:59 +0200

Cats: innate mutations.

--------------------------------------------------------------------------------
7fc3f2221f | Adam Borowski | 2010-07-09 16:38:59 +0200

Cats: starting equipment.

--------------------------------------------------------------------------------
f1ee638b51 | Adam Borowski | 2010-07-09 16:38:59 +0200

Cats: no using weapons, armour, missiles or wands.

--------------------------------------------------------------------------------
496e7ac921 | Adam Borowski | 2010-07-09 16:38:59 +0200

Cats: enums and some base stuff.

--------------------------------------------------------------------------------
4dc2f0816f | Adam Borowski | 2010-07-09 16:37:48 +0200

Don't feed Jiyva off-level items in sprint.

--------------------------------------------------------------------------------
01eda2f662 | Adam Borowski | 2010-07-09 16:33:03 +0200

Repair saves containing rods of discovery, demonology, striking or venom.

--------------------------------------------------------------------------------
8db15babd8 | Adam Borowski | 2010-07-09 15:47:56 +0200

Reserve two fields in the save for a side project.

--------------------------------------------------------------------------------
802a5ab06a | Eino Keskitalo | 2010-07-09 16:24:18 +0300

Fix compilation.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3eb863f7db | Eino Keskitalo | 2010-07-09 15:57:48 +0300

Remove rods of discovery.
Getting one gives you three of the removed Div spells for practically free use.

Applying this late for 0.7, unfortunately.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
19dc50898d | Eino Keskitalo | 2010-07-09 15:32:52 +0300

Disable hairy_minivault from Vault and Elf.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
89a77e2783 | Robert Vollmert | 2010-07-09 13:02:42 +0200

Fix Sif piety inflation in sprint.
There was a 9x increase due to scaled monster XP and a 9x increase
due to scaled piety gain. The exercise amount is now scaled back
down for piety gain purposes.

--------------------------------------------------------------------------------
6ca78d4c61 | Robert Vollmert | 2010-07-09 12:15:28 +0200

Chapayev's sprint 2.
(Includes kilobyte's line ending fix.)

--------------------------------------------------------------------------------
cb640d68b2 | Darshan Shaligram | 2010-07-09 15:36:36 +0530

Fix attack conduct midx arrays using NUM_MONSTERS as size instead of 
MAX_MONSTERS (Mu).

--------------------------------------------------------------------------------
699629076b | Nick Cardullo | 2010-07-09 11:13:27 +0200

Don't allow teleport control when berserk. Bug #0001223
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
b3103efd2c | Robert Vollmert | 2010-07-09 10:52:13 +0200

Fix extra turns for shift-run again. (#1405)

--------------------------------------------------------------------------------
d7c5559ff7 | Robert Burnham | 2010-07-08 23:53:58 -0500

Correct spine logic
Inverses the previous logic and changes the new to-hit scalar back
to a less random one (similar to the previous method) so as to
establish a baseline for whether spines needs more nerfs / buffs.

--------------------------------------------------------------------------------
1d37fd6d0c | Robert Vollmert | 2010-07-08 16:55:57 +0200

Fix beams not reaching some targets within range. (#1926)

--------------------------------------------------------------------------------
9aab249cb3 | Robert Burnham | 2010-07-08 09:03:34 -0500

Minor Adjustment to Spiny scale nerf

--------------------------------------------------------------------------------
5eb382805e | Adam Borowski | 2010-07-08 14:51:55 +0200

An otherwise inappropiate toy for Sprint.
* single-use only
* causes corona-like glow
* makes all messages ALL CAPS
* does what it says on the tin to all damage you deal
* cause gibs if it brings someone to less than -50hp

--------------------------------------------------------------------------------
193bc8cdb4 | Adam Borowski | 2010-07-08 13:02:15 +0200

Don't check the base type of undefined items.

--------------------------------------------------------------------------------
76782aa50c | Darshan Shaligram | 2010-07-08 08:48:15 +0530

Fix compile.

--------------------------------------------------------------------------------
a058b35e6d | Charles Otto | 2010-07-07 19:26:11 -0400

Merge master into articulated_kraken

--------------------------------------------------------------------------------
1a20357785 | Robert Burnham | 2010-07-07 15:09:09 -0500

Adjust Spiny to-hit scalar values
Lowers the to-hit from 6 * mutlevel to random2(7-evp)+2 * mutlevel
(minimum 2-6, maximum 8-24) with a mean of 5-15 down from 6-18.

--------------------------------------------------------------------------------
6c32330b3a | Adam Borowski | 2010-07-07 15:52:18 +0200

Fix permament silence if the monster silencing dies.  Fix messaging.

--------------------------------------------------------------------------------
37d61eba7f | Adam Borowski | 2010-07-07 15:35:10 +0200

Differentiate the halo size for celestial species.
They are all a lot bigger than the old angel/daeva halo, not sure how
big we want them.

--------------------------------------------------------------------------------
b69cef0dc5 | Adam Borowski | 2010-07-07 14:21:02 +0200

Smooth the remaining piety gains.  Decouple the messages from actual piety 
gains.

--------------------------------------------------------------------------------
c09e5a67f1 | Enne Walker | 2010-07-06 22:51:24 -0400

[1815] Add new ghoul monster tile. (coolio)

--------------------------------------------------------------------------------
a10e539e9c | Adam Borowski | 2010-07-07 03:15:51 +0200

Smoother piety gain in sprint.
Not all sources of piety are handled, those I didn't do yet include Elyvilon
and Nemelex.  This is because they rely on knowing if the piety was granted
or not.

--------------------------------------------------------------------------------
6372c62da7 | Adam Borowski | 2010-07-07 00:49:35 +0200

Set the damage for non-base spriggans which was somehow lost.

--------------------------------------------------------------------------------
5c22f7d319 | Mark Mackey | 2010-07-06 23:21:54 +0100

Assorted fixes to Zotdef wave algorithms

--------------------------------------------------------------------------------
e8a0531d92 | Mark Mackey | 2010-07-06 23:20:53 +0100

Fixed zotdef monster placement algorithm

--------------------------------------------------------------------------------
401be25034 | Mark Mackey | 2010-07-06 23:19:44 +0100

Zotdef allies take out firewood

--------------------------------------------------------------------------------
10ea460dba | Mark Mackey | 2010-07-06 23:19:07 +0100

Increase frquency of travel resets in zotdef (gridlock avoidance)

--------------------------------------------------------------------------------
bd75a5db52 | Mark Mackey | 2010-07-06 23:18:34 +0100

Remove ballistomycete generation on giant spore move in zotdef

--------------------------------------------------------------------------------
52ee63c8e8 | Mark Mackey | 2010-07-06 23:18:09 +0100

Fixed indentation

--------------------------------------------------------------------------------
8c25f90284 | Mark Mackey | 2010-07-06 23:17:10 +0100

Return oklob sapling creation to L2 ability

--------------------------------------------------------------------------------
0db820516b | Darshan Shaligram | 2010-07-06 22:11:43 +0530

[1917] Clear stash tracker and travel cache when restarting game.

--------------------------------------------------------------------------------
a9323f8918 | Adam Borowski | 2010-07-06 15:23:28 +0200

Fix an assertion crash: don't reconvert friendly orcs.
This was possible if another confused follower triggered the "surrender
under duress" code.

--------------------------------------------------------------------------------
5240248675 | Adam Borowski | 2010-07-06 11:34:34 +0200

Make a few random functions static.

--------------------------------------------------------------------------------
725b7bd79f | Adam Borowski | 2010-07-06 10:43:56 +0200

For functions with names starting with _, actually declare them static.

--------------------------------------------------------------------------------
80a2d8a18e | Adam Borowski | 2010-07-06 00:55:50 +0200

Declare globallos static, telling the compiler there are no nasty aliases.
Surprisingly, this speeds things up by nearly 1%.

--------------------------------------------------------------------------------
d34e9d05fe | Robert Vollmert | 2010-07-06 00:05:38 +0200

Revert "Invalidate LOS entirely at start of manage_clouds for busy maps."
This reverts commit 46bb005ece25b6dc17a2fa46bd2573687334e5af.

Too expensive with increase LOS calculations once monsters wake up.

--------------------------------------------------------------------------------
f255340e22 | Enne Walker | 2010-07-05 17:50:57 -0400

[1908] Fix staff of power tile randomly changing.
The staff of power (unlike other staves and rods) abuses item.special to
store extra information, so the original value (which stored the
description) is not always valid.  Instead, just use the description
stored for the subtype.

--------------------------------------------------------------------------------
ea1d71b7d8 | Adam Borowski | 2010-07-05 22:44:38 +0200

Make orc slaying/drac slaying work on orc/draconian ghosts.

--------------------------------------------------------------------------------
c2b625855c | Adam Borowski | 2010-07-05 22:44:38 +0200

Set the depth for tgw_sif.
Blork's depth is 5-10, even behind water he can insta-kill most players
on D:1.  Orc wizards and Jessica are somewhat more ok, but they will blink
to you.

--------------------------------------------------------------------------------
1cf22c3a71 | Robert Vollmert | 2010-07-05 22:32:10 +0200

Don't set nearest foe for sleeping spores.

--------------------------------------------------------------------------------
46bb005ece | Robert Vollmert | 2010-07-05 21:46:34 +0200

Invalidate LOS entirely at start of manage_clouds for busy maps.
Keep a count of how many LOS-affecting clouds change last turn,
and invalidate LOS at the start of manage_clouds if there were
more than 10 for now.

Additionally, keep track of whether LOS has been completely
invalidated, and skip all LOS invalidations as long as this
is the case.

This should be a safe change in terms of functionality, and
speed things up quite a bit provided that the cloud management
code doesn't cause LOS computations. (Forest fires currently
check player LOS for messaging, and gloom dissipation checks
halos, so if these are around, improvements may be limited.)

--------------------------------------------------------------------------------
1a55a16a99 | Robert Vollmert | 2010-07-05 21:46:14 +0200

Only invalidate LOS when opaque clouds change.

--------------------------------------------------------------------------------
cca98e36f5 | Darshan Shaligram | 2010-07-05 16:55:32 +0530

[1868] Fix converting to Lugonu not giving access to first power in Sprint.

--------------------------------------------------------------------------------
763af6a069 | Darshan Shaligram | 2010-07-05 16:36:48 +0530

[1895] Revert "Tweak the Recite resistance formulas to make them a bit less 
harsh.". The cap of 11 on monster MR looks like a mistake, reverting this 
commit as a temporary fix.
This reverts commit 6d17f6c1b3b9f6b2cc0c1dd2515c987269b4a36a.

--------------------------------------------------------------------------------
7ea934d04f | Adam Borowski | 2010-07-05 12:31:38 +0200

Fix tentacles of a charmed kraken beating on it.

--------------------------------------------------------------------------------
bae5255e64 | Adam Borowski | 2010-07-05 12:28:31 +0200

Make enslavement a hostile act. [1828]

--------------------------------------------------------------------------------
275494ddf1 | Adam Borowski | 2010-07-05 11:53:58 +0200

Give trishulas the stabbing bonus [demon] tridents get.

--------------------------------------------------------------------------------
7c45504648 | Adam Borowski | 2010-07-05 10:55:55 +0200

Make the message for extending See Invis more obvious. [1893]

--------------------------------------------------------------------------------
e3e0691da5 | Jude Brown | 2010-07-05 17:12:55 +1000

Merge branch 'master' into holyhaul

--------------------------------------------------------------------------------
819a50d7cd | Darshan Shaligram | 2010-07-05 12:07:07 +0530

[1809] Fix menu selection with '.' not updating count of items.

--------------------------------------------------------------------------------
efb19ead99 | Darshan Shaligram | 2010-07-05 12:05:58 +0530

[1029] Fix friendly butterflies stopping travel.

--------------------------------------------------------------------------------
d491b7f829 | Robert Vollmert | 2010-07-04 17:08:02 +0200

Fix highlighting of (un)memorized spells in book display. (#1101)

--------------------------------------------------------------------------------
9c85857147 | Robert Vollmert | 2010-07-04 16:56:16 +0200

RBOOK_USE_STAFF implies that the "book" is a staff.
Hence, replace an unnecessary check by an assertion.

--------------------------------------------------------------------------------
97ecc7274b | Robert Vollmert | 2010-07-04 16:22:08 +0200

Remove unused spell_is_{useful,risky}.

--------------------------------------------------------------------------------
5e078e1dc7 | Adam Borowski | 2010-07-04 10:27:09 +0200

Don't say that a recited to monster fell asleep when it resisted that. [1892]

--------------------------------------------------------------------------------
b73fffc66e | Robert Vollmert | 2010-07-04 09:10:13 +0200

Reduce spell colouring.
Cherry-picked from 0.6 since the 0.6 state is far less
broken than the current state and development doesn't seem
to continue.

This removes useful/god-liked/risky colouring. The idea is to
reduce the feature to the obviously good part for 0.6 and see
how the other ones work out for 0.7.

Empowered is still there (good for Vehumet); empowered colouring
for swiftness while flying, stoneskin while in statue form,
oz's armour while in ice form also sound not too invasive.

--------------------------------------------------------------------------------
8285ca3a96 | Darshan Shaligram | 2010-07-04 11:20:12 +0530

Fix message stream leak when playing multiple games without restarting Crawl.

--------------------------------------------------------------------------------
0b1a733c72 | Darshan Shaligram | 2010-07-04 11:03:33 +0530

Add option restart_after_game to make Crawl return to the main menu after the 
game ends, enabled by default for tiles builds.

--------------------------------------------------------------------------------
7ac59aa470 | Jude Brown | 2010-07-04 14:38:39 +1000

Fix compilation.

--------------------------------------------------------------------------------
87f8c553e8 | Jude Brown | 2010-07-04 14:24:26 +1000

Merge branch 'master' into holyhaul
Conflicts:
	crawl-ref/source/cloud.cc
	crawl-ref/source/mon-act.cc

--------------------------------------------------------------------------------
3cbb1e7fc1 | Darshan Shaligram | 2010-07-04 08:56:22 +0530

Fix changes to MAP_CACHE_VERSION breaking saves (MarvinPA).

--------------------------------------------------------------------------------
c1e58e2dc9 | Adam Borowski | 2010-07-04 01:16:56 +0200

Don't recalculate the agrid when it's known there are no areas.

--------------------------------------------------------------------------------
a0390096b8 | Adam Borowski | 2010-07-04 00:09:23 +0200

Move the call to _update_agrid() for easier inlining and profiling.
Any benefits from better inlining are infinitessimally small here, but with
profiling, we can see how many times the actual run was needed.

--------------------------------------------------------------------------------
cc4698932f | Adam Borowski | 2010-07-03 23:36:08 +0200

Reorder beholder checks so non-mermaids don't cause costly LOS runs.

--------------------------------------------------------------------------------
b1169be518 | Janne Lahdenpera | 2010-07-03 22:39:00 +0300

Fix sprint map choice column width, now full screen in width
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
627fa5a140 | Darshan Shaligram | 2010-07-04 00:06:06 +0530

Allow selecting Sprint maps by map desc where available (dpeg).
Needs work; the menu column size is probably too small for Sprint map names.

--------------------------------------------------------------------------------
46c3bdfbb6 | Adam Borowski | 2010-07-03 19:42:00 +0200

Evict the welcome spam to the misc database.

--------------------------------------------------------------------------------
49fe05db7a | David Ploog | 2010-07-03 19:15:22 +0200

Make beehive_2 less spoiler prone. (Mantis 1035)
It used to have 15 potential places scattered around. Now, the two
places in rock have secret doors, and the central places have been
changed into four groups, each containing three of those spots. It
will be much easier to suspect something is inside these (larger)
inaccessible areas, and they always contain something.

--------------------------------------------------------------------------------
6b1da2254b | Adam Borowski | 2010-07-03 18:55:32 +0200

Sprint: a function to delay acquirement.
This is a part of Mu_'s map, committed separately so the maps can work on
unmodified Crawl with just the .des copied.

--------------------------------------------------------------------------------
92b7968ab5 | David Ploog | 2010-07-03 18:52:26 +0200

Add minmay's ziggurat monster sets and pillars. (Mantis 828)

--------------------------------------------------------------------------------
346636306f | Darshan Shaligram | 2010-07-03 22:21:31 +0530

Fix abyss shift not moving undiscovered traps correctly, and triggering an 
assert when the PC steps on the trap after the shift.

--------------------------------------------------------------------------------
657958194d | Darshan Shaligram | 2010-07-03 22:17:17 +0530

Fix assert when abyss shift moves traps or shaps.

--------------------------------------------------------------------------------
9b22ecd277 | Darshan Shaligram | 2010-07-03 21:50:25 +0530

[730] Use a random Temple map if the temple map chosen at game start is no 
longer available when the PC reaches the temple.

--------------------------------------------------------------------------------
ddcc861ce3 | Darshan Shaligram | 2010-07-03 21:35:00 +0530

Fix sprint map choice with -sprint-map.

--------------------------------------------------------------------------------
b6d89f8b74 | David Ploog | 2010-07-03 18:00:51 +0200

Core Xii's vaults from Mantis 1724.

--------------------------------------------------------------------------------
05902d2eb6 | Enne Walker | 2010-07-03 11:19:07 -0400

[1879] Fix subvaults clearing too many markers.
Subvaults were clearing all lua markers contained within their bounding
box, even if it wasn't writing to every cell.  The overlapping large
subvaults in Chapayev's arena were clearing the previously written
markers in the smaller subvaults.  Fixed to check the mask first.

--------------------------------------------------------------------------------
b91fee2702 | Janne Lahdenpera | 2010-07-03 16:39:54 +0300

Partially fix random sprint map selection
Setting ng_choice->map to random fails.
Fixed the ingame selection of random map but selection from external sources 
like dgl and config file is still most likely broken.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
2077bd4590 | Janne Lahdenpera | 2010-07-03 16:24:31 +0300

Hide Backspace from sprint menu
Eventually players should be able to return to the game modes
menu, but it doesn't work right now.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
4ea23949f6 | Janne Lahdenpera | 2010-07-03 16:13:26 +0300

Convert sprint map choice to Precisionmenu
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
809d9e5252 | Adam Borowski | 2010-07-03 15:05:29 +0200

Hard fail when tgrid is invalid.
Please do not pick this commit for 0.7.

--------------------------------------------------------------------------------
33a264bc37 | Adam Borowski | 2010-07-03 15:00:44 +0200

Mark new traps on the tgrid when they are created/moved.

--------------------------------------------------------------------------------
d4f96f476e | Adam Borowski | 2010-07-03 15:00:44 +0200

Be slightly more forgiving when switching between branches.

--------------------------------------------------------------------------------
e4037f9071 | Adam Borowski | 2010-07-03 15:00:44 +0200

Translate a comment from German into English.

--------------------------------------------------------------------------------
fc78969547 | Adam Borowski | 2010-07-03 15:00:44 +0200

Whitespace fixes.
This includes tabs, which are mishandled by MSVC -- and apparently at least
one file was edited using it.

--------------------------------------------------------------------------------
bd3f9f3643 | Darshan Shaligram | 2010-07-03 18:01:32 +0530

Fix tiles compile.

--------------------------------------------------------------------------------
9074f4a647 | Jude Brown | 2010-07-03 21:53:59 +1000

Use you.num_runes in lua:lock_door.

--------------------------------------------------------------------------------
a291910bf1 | Jude Brown | 2010-07-03 21:53:59 +1000

Write a num_runes wrapper for Lua.

--------------------------------------------------------------------------------
683c2a06b7 | Darshan Shaligram | 2010-07-03 17:13:36 +0530

s/enter_abys/enter_abyss/

--------------------------------------------------------------------------------
2f5bafd121 | Darshan Shaligram | 2010-07-03 17:04:16 +0530

Fix crash when starting a new arena round if the arena map uses map markers and 
dungeon events.

--------------------------------------------------------------------------------
2756694d7f | Darshan Shaligram | 2010-07-03 11:47:55 +0530

Implement chaos-brand melee effects for being engulfed in CLOUD_CHAOS (Mu).

--------------------------------------------------------------------------------
74f18d0d78 | Darshan Shaligram | 2010-07-03 09:32:12 +0530

[1846] Fix wand targeting being unaffected by confusion (OG17).

--------------------------------------------------------------------------------
29b59dfd9a | Darshan Shaligram | 2010-07-03 08:46:49 +0530

mark_milestone suppresses milestones that are identical to the previous 
milestone on the same turn.

--------------------------------------------------------------------------------
2ec5c4e30f | David Ploog | 2010-07-03 00:45:29 +0200

Change DS and DG aptitudes as per Mantis 1451 (TGW).
Changes: DS Fire Magic from 0 to -1
         DG Evocations from 0 to -1

--------------------------------------------------------------------------------
78a3aa2579 | David Ploog | 2010-07-03 00:00:23 +0200

Added four guardian serpent vaults (nrook).

--------------------------------------------------------------------------------
e5f47bbd2d | David Ploog | 2010-07-02 22:35:58 +0200

Add some "useful" to the new troves. (Kilobyte)

--------------------------------------------------------------------------------
0f3fcff549 | David Ploog | 2010-07-02 22:31:50 +0200

Minmay's new troves.
The last batch from Mantis 1872.

--------------------------------------------------------------------------------
9b2de0ab0f | David Ploog | 2010-07-02 22:31:50 +0200

Minmay's temples and entries.

--------------------------------------------------------------------------------
2e40905290 | David Ploog | 2010-07-02 22:31:49 +0200

More minmay vaults (this time minivaults with monsters).
Let me draw attention to minmay's list of small, themed vaults
around unrandarts. More entries are welcome!

--------------------------------------------------------------------------------
960b1444bb | David Ploog | 2010-07-02 22:31:49 +0200

More minmay vaults: overflow altars, three general vaults.

--------------------------------------------------------------------------------
fcb9865274 | David Ploog | 2010-07-02 22:31:49 +0200

minmay's Lair vaults, including one ending.
Again from Mantis 1872.

--------------------------------------------------------------------------------
169ad77721 | David Ploog | 2010-07-02 22:31:49 +0200

Add minmay's entry vaults.
Also from Mantis 1872.

--------------------------------------------------------------------------------
fe73dc3451 | David Ploog | 2010-07-02 22:31:49 +0200

Add minmay's Elf maps.
From Mantis #1872. These include some Elf arrivals and a new ending.

--------------------------------------------------------------------------------
09e1186b46 | Adam Borowski | 2010-07-02 22:08:24 +0200

Use a "tgrid" so we don't have to look up traps or shops linearly.
find_trap() used to take over 10% CPU in sprint.

The main optimization here is bailing out early when grd() says there
is no trap -- just that cuts the effort by a factor of several hundred.

That makes making the loopup O(1) mostly moot, but I included it anyway
since tgrid costs just 11KB of memory.

To not risk breaking something for the release, if tgrid is invalid, the
list of traps/shops will be searched the old way.

--------------------------------------------------------------------------------
9b7ba2484e | Darshan Shaligram | 2010-07-03 00:17:53 +0530

Fix crash in get_monster_tension.

--------------------------------------------------------------------------------
f5e221aefa | Darshan Shaligram | 2010-07-02 23:18:58 +0530

Fix wielded non-weapons getting a base delay of 0 that is then clamped to 3 for 
very fast attacks (+ aux unarmed) (nht).

--------------------------------------------------------------------------------
8d67fa0c04 | Enne Walker | 2010-07-02 09:15:03 -0400

Add Risto Saarelma (rsaarelm) to the CREDITS.

--------------------------------------------------------------------------------
7eca21575b | Robert Vollmert | 2010-07-02 14:39:58 +0200

Make Options.menu_cursor not disable the corresponding keys. (dpeg)
It now just hides the cursor by default.

--------------------------------------------------------------------------------
4652434d17 | Darshan Shaligram | 2010-07-02 17:31:37 +0530

Fix confusion preventing long-rest.

--------------------------------------------------------------------------------
92418ba63a | Darshan Shaligram | 2010-07-02 17:28:08 +0530

[1873] Fix monsters no longer cutting down plants to reach player.

--------------------------------------------------------------------------------
255cdde1e1 | David Lawrence Ramsey | 2010-07-01 22:40:51 -0500

Fix Mantis 1875: Zin's Imprison has its error messages swapped.

--------------------------------------------------------------------------------
6a335f87a4 | Adam Borowski | 2010-07-02 00:38:05 +0200

Fix an invalid test failure for los_symm.

--------------------------------------------------------------------------------
a05d96dd49 | Robert Vollmert | 2010-07-02 00:11:20 +0200

Fix LOS not being updated properly on Slime:6.

--------------------------------------------------------------------------------
b00eb9d314 | Robert Vollmert | 2010-07-01 18:13:54 +0200

Invalidate LOS using memset instead of FixedArray::init.
This speeds up Sprint resting quite a bit for me. It's quite
likely that more could be done.

--------------------------------------------------------------------------------
51cff4e5be | Stefan O'Rear | 2010-07-01 08:57:00 -0700

Clamp piety more robustly (#1871)

--------------------------------------------------------------------------------
55d90525eb | Robert Vollmert | 2010-07-01 16:25:29 +0200

Assert that target is in LOS instead of just not drawing the beam.
We shouldn't be getting beams to out-of-LOS targets after
b4992f47e.

--------------------------------------------------------------------------------
0929184191 | Robert Vollmert | 2010-07-01 16:25:29 +0200

Make direction.cc's use of find_ray heed global LOS radius. (#1867)
95d586ab6 changed find_ray's default radius to not track global
LOS radius, causing problems in direction().

--------------------------------------------------------------------------------
714edc53d3 | Darshan Shaligram | 2010-07-01 18:19:52 +0530

Fix floor squares being generatable on map edge in bearwithus (casmith789).

--------------------------------------------------------------------------------
27f6f72e79 | Darshan Shaligram | 2010-07-01 17:58:47 +0530

[1867] Don't try to draw targeting beam if the target is out of LOS -- causes 
nightstalker targeting crash.

--------------------------------------------------------------------------------
84195ed746 | Jude Brown | 2010-07-01 22:07:29 +1000

Replace Angels with Cherubs, give Paladins appropriate gear.

--------------------------------------------------------------------------------
3b3fb3d9b3 | Jude Brown | 2010-07-01 21:53:23 +1000

Fix Holy Flames causing autoexclusions from monster spells.

--------------------------------------------------------------------------------
71f0f4c9f2 | Jude Brown | 2010-07-01 21:23:45 +1000

Roughly finish implementing Ophanim.

--------------------------------------------------------------------------------
9d41aa9585 | Jude Brown | 2010-07-01 15:02:51 +1000

Merge branch 'master' into holyhaul

--------------------------------------------------------------------------------
c23381e8a5 | Darshan Shaligram | 2010-07-01 09:35:20 +0530

Interrupt all run delays when confused.

--------------------------------------------------------------------------------
eda45b1c45 | Darshan Shaligram | 2010-07-01 09:35:20 +0530

s/is_run_delay/delay_is_run/, use delay_type instead of int.

--------------------------------------------------------------------------------
cbec86004f | Enne Walker | 2010-06-30 23:50:56 -0400

Give equipped weapon tiles to spriggans.

--------------------------------------------------------------------------------
8dbb39b202 | Enne Walker | 2010-06-30 23:50:55 -0400

Fix rim on spriggan rider.

--------------------------------------------------------------------------------
17bd8f0049 | Darshan Shaligram | 2010-07-01 08:49:38 +0530

Fix wording for dragon hides, could use more work.

--------------------------------------------------------------------------------
2ceca421fb | Darshan Shaligram | 2010-07-01 08:47:58 +0530

Make _abyss_proto_feature static.

--------------------------------------------------------------------------------
c88befd15f | Darshan Shaligram | 2010-07-01 08:31:57 +0530

Fix corruption not handling translucent walls correctly, make corruption use 
proto-abyss terrain instead of _generate_area.

--------------------------------------------------------------------------------
d748cad4be | Adam Borowski | 2010-07-01 00:29:37 +0200

Store the old human enchantress in UNUSED.
It's a good tile, and it may be used as a base for something else later.

--------------------------------------------------------------------------------
593575201a | Enne Walker | 2010-06-30 18:17:21 -0400

Add iron imp tile.

--------------------------------------------------------------------------------
e34637d7b4 | Enne Walker | 2010-06-30 18:17:21 -0400

Move old shadow imp tile to UNUSED dir.

--------------------------------------------------------------------------------
c302ddc00f | Enne Walker | 2010-06-30 18:17:12 -0400

[1863] Spriggan tile updates. (Poor_Yurik)

--------------------------------------------------------------------------------
17a52b8a53 | Enne Walker | 2010-06-30 13:21:56 -0400

Fix auto-corpsified tile garbage.
Most new monster tiles that were committed for 0.7 had colour values
saved on transparent pixels.  The corpsification code was testing against
(0,0,0,0) instead of just alpha=0 and so thought the transparent pixels
were fully coloured.  This caused all sorts of extraneous shadow garbage
on the corpses.

--------------------------------------------------------------------------------
ffc3a770ae | Enne Walker | 2010-06-30 13:18:16 -0400

[1863] Add assorted spriggan tiles. (Poor_Yurik)

--------------------------------------------------------------------------------
a775ed1bd9 | Enne Walker | 2010-06-30 12:01:08 -0400

[1861] Add shadow imp, Grinder tiles. (Poor_Yurik)
Grinder's cleaver is submitted as a separate tile if anybody ever wants
to make it a weapon, but for now it will just always appear equipped on
Grinder.

--------------------------------------------------------------------------------
fcbeaddbb4 | Adam Borowski | 2010-06-30 15:44:06 +0200

Add some assertions for saves.  We should make these just fail loading instead 
of crashing one day.

--------------------------------------------------------------------------------
46e7d980a7 | Adam Borowski | 2010-06-30 15:27:57 +0200

Fix confusion near lava being 100% safe.

--------------------------------------------------------------------------------
883af1877f | Jude Brown | 2010-06-30 22:30:17 +1000

Merge branch 'master' into holyhaul

--------------------------------------------------------------------------------
e07ac8355f | Adam Borowski | 2010-06-30 13:51:35 +0200

Update autofight for sqrt(5) instead of sqrt(8) reaching.

--------------------------------------------------------------------------------
577da51bb5 | Adam Borowski | 2010-06-30 13:26:29 +0200

Make dragon hides work even when raw.  Mention enchanting in their descs.

--------------------------------------------------------------------------------
c8fe033948 | Jude Brown | 2010-06-30 20:36:29 +1000

Fix blessed fire and Demonspawn (syllogism).

--------------------------------------------------------------------------------
53d7c547b4 | Darshan Shaligram | 2010-06-30 16:02:01 +0530

Don't crash when debug-describing squares outside LOS with 'x' (syllogism).

--------------------------------------------------------------------------------
786187a823 | Jude Brown | 2010-06-30 20:06:28 +1000

Pluralise cherub as cherubim, too.

--------------------------------------------------------------------------------
08d645fe7c | Jude Brown | 2010-06-30 20:05:15 +1000

Begin implementing resurrection, spirit calls.

--------------------------------------------------------------------------------
c0afe6a4a3 | Adam Borowski | 2010-06-30 11:52:47 +0200

Pluralization: "shedu", "lammasu" (null plurals), "ophanim".
I didn't touch cherubs/cherubim, which I leave to a native speaker.
In my research, the anglicized form is more popular, but not by a
large margin.

Current pluralizations of holies:
angel   -> angels
daeva   -> daevas
phoenix -> phoenixes
cherub  -> cherubs (!)
ophan   -> ophanim
apis    -> apis
paladin, spirit, holy dragon, silver star, blessed toe -- obvious.

--------------------------------------------------------------------------------
d29b482732 | Adam Borowski | 2010-06-30 11:27:36 +0200

A monster class flag M_ALWAYS_CORPSE.

--------------------------------------------------------------------------------
33ef6b3a50 | Adam Borowski | 2010-06-30 11:08:55 +0200

An ugly tile for shedu.

--------------------------------------------------------------------------------
77ab4614c9 | Eino Keskitalo | 2010-06-30 10:24:57 +0300

Fix a messed up bailey map NAME in previous commit.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
778165996b | Eino Keskitalo | 2010-06-30 10:19:23 +0300

Fix [1858]: some of the portal vault destinations were unloadable in wizard 
mode.
NAME of each map now has the portal vault type in it first. Perhaps Crawl 
should enforce this?

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
2d3331056c | Stefan O'Rear | 2010-06-29 23:56:41 -0700

Add Poor Yurik to CREDITS

--------------------------------------------------------------------------------
62afff96bc | Darshan Shaligram | 2010-06-30 10:23:49 +0530

[1437] Fix shopping list ASSERT after removing items from list (MarvinPA).

--------------------------------------------------------------------------------
7196836d6a | Enne Walker | 2010-06-29 22:57:08 -0400

[1859] Add new player species tiles (Poor Yurik).

--------------------------------------------------------------------------------
4e02ead6f5 | Enne Walker | 2010-06-29 22:56:59 -0400

[1860] Add new hobgoblin tile (Poor Yurik).

--------------------------------------------------------------------------------
2d37a1d168 | Vsevolod Kozlov | 2010-06-29 21:14:40 +0400

Update the manpage synopsis.

--------------------------------------------------------------------------------
c74b3dfc87 | Darshan Shaligram | 2010-06-29 22:36:07 +0530

[1856] Remove Crypt from default-depth for mini_monsters.

--------------------------------------------------------------------------------
163b8d4ecf | Darshan Shaligram | 2010-06-29 22:23:19 +0530

Add -sprint-map option to allow DGL admin to force the use of a particular 
Sprint map.

--------------------------------------------------------------------------------
92410d617b | Janne Lahdenpera | 2010-06-29 18:40:57 +0300

Restructure some rooms for better auto explore and fix melee attack message
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
78c2c868ac | Jude Brown | 2010-06-29 23:41:49 +1000

Fix haloes while sleeping, haloes remaining after death.
Specifically applying to holy creatures whose haloes weren't being shown
until after they had been woken up (a turn after, at least), and
remaining after their deaths.

--------------------------------------------------------------------------------
bf9f58fe6e | Jude Brown | 2010-06-29 21:38:07 +1000

Finish implementing Heal Other.

--------------------------------------------------------------------------------
48da2ea69a | Jude Brown | 2010-06-29 20:51:52 +1000

More preliminary descriptions (apis, paladin).

--------------------------------------------------------------------------------
b83601e7c0 | Darshan Shaligram | 2010-06-29 16:11:11 +0530

Dump map environments and force Lua GC after each .des file to keep process 
memory footprint small for the first Crawl process to compile .des files.

--------------------------------------------------------------------------------
b508f4e44c | Darshan Shaligram | 2010-06-29 16:02:57 +0530

[1850] Fix stack overflow when interrupt_activity stops an activity, producing 
a message that tries to interrupt the activity again.

--------------------------------------------------------------------------------
aea6ad91d9 | Adam Borowski | 2010-06-29 10:29:59 +0200

Disallow power 1 Warp cards when under stasis/-TELE.

--------------------------------------------------------------------------------
5e2327597e | Jude Brown | 2010-06-29 18:29:58 +1000

Merge branch 'master' into holyhaul

--------------------------------------------------------------------------------
7c96da34ff | Jude Brown | 2010-06-29 18:27:37 +1000

Add Nellie tile, elephant statue, fix jungle book. (Poor_Yurik)
New tile for Nellie and elephant statues by Poor_Yurik. I've also
tweaked the jungle_book vault so that not all of the elephant statues
are converted.

Finally, added the crumbled_column tile I made up a few months back.
It's not perfect, but I'm sure someone can find a use for it.

--------------------------------------------------------------------------------
fc525eaafd | Darshan Shaligram | 2010-06-29 07:52:10 +0530

Write full game version string to .chr file for easy identification of the 
player's game version.

--------------------------------------------------------------------------------
e30461cd42 | Darshan Shaligram | 2010-06-28 22:18:28 +0530

Don't randomly place water creatures below D:6 -- the new depth for minivaults 
causes a lot of eelkill otherwise. (78291)

--------------------------------------------------------------------------------
fbb0e90e7b | Jude Brown | 2010-06-28 22:03:51 +1000

Preliminary descriptions for new holy monsters.
Missing Paladin and Apis.

--------------------------------------------------------------------------------
34b06e04cc | Robert Vollmert | 2010-06-28 13:27:26 +0200

Hide menu cursor behind an option.
It's currently disabled by default, since it doesn't seem to be in a
releasable state.

--------------------------------------------------------------------------------
74ab86bc75 | Robert Vollmert | 2010-06-28 13:25:24 +0200

Undocument cursored selection mode.
The documentation doesn't match the implementation.

--------------------------------------------------------------------------------
599fe1a022 | Jude Brown | 2010-06-28 21:18:39 +1000

Restructure Summon Holies, add text for Holy Word.

--------------------------------------------------------------------------------
ce93d2936b | Robert Vollmert | 2010-06-28 13:03:43 +0200

Make Menu cursor wrapping a little more robust.

--------------------------------------------------------------------------------
b27c654488 | Robert Vollmert | 2010-06-28 13:02:02 +0200

Move Menu::get_cursor() into menu.cc.

--------------------------------------------------------------------------------
bd2f2a6159 | Robert Vollmert | 2010-06-28 13:01:40 +0200

Reset Menu::last_selected from Menu::clear.
It was becoming invalid.

Fixes issue #1765.

--------------------------------------------------------------------------------
716bc6be3e | Jude Brown | 2010-06-28 20:22:14 +1000

Merge branch 'master' into holyhaul

--------------------------------------------------------------------------------
d65a6d4c4d | Robert Vollmert | 2010-06-28 11:59:04 +0200

Fix LOS not being invalidated when jellies eat doors.

--------------------------------------------------------------------------------
b586da84dc | Darshan Shaligram | 2010-06-28 12:57:43 +0530

Update canned level compiler for DESC:

--------------------------------------------------------------------------------
1659bee3ec | Darshan Shaligram | 2010-06-28 12:56:22 +0530

If the PC dies in a vault, log the map name and description.
Map descriptions are intended to be human-readable place name qualifiers, such
as Pan (Cerebov's castle).

--------------------------------------------------------------------------------
25c35d0f71 | Darshan Shaligram | 2010-06-28 08:43:49 +0530

Fix assert when a repeated long-rest is interrupted (Superking).

--------------------------------------------------------------------------------
524008619e | Charles Otto | 2010-06-27 22:41:01 -0400

Rework search method used for joining kraken tentacles
Introduce some constraints on connectivity with the goal of avoiding
obviously bad shifts in tentacle position from turn to turn
(shifting around an obstacle because that forms a shorter path). There
are however some outstanding issues.

--------------------------------------------------------------------------------
8c0131b706 | Jude Brown | 2010-06-28 12:30:59 +1000

Stubs for all of the new holy monsters.
Glyphs and colours may be subject to change.

--------------------------------------------------------------------------------
528114e51f | Jude Brown | 2010-06-28 10:42:29 +1000

Merge branch 'master' into holyhaul

--------------------------------------------------------------------------------
97b888bf28 | Darshan Shaligram | 2010-06-28 02:45:51 +0530

Fix infinite loop when Xom tries to give the player a scroll in Sprint 
(Superking).

--------------------------------------------------------------------------------
4f24a5b97e | Darshan Shaligram | 2010-06-28 02:19:45 +0530

Fix crash when acquiring an item that stacks with an existing item on the floor 
(Noomx).

--------------------------------------------------------------------------------
7cbd954d1a | Darshan Shaligram | 2010-06-28 01:59:53 +0530

Fix status area reporting the wrong place if an attempt to travel to a stash 
search fails (elliptic).

--------------------------------------------------------------------------------
b249892ea5 | David Lawrence Ramsey | 2010-06-27 14:40:29 -0500

Fix compilation.

--------------------------------------------------------------------------------
6e325f770a | Darshan Shaligram | 2010-06-28 00:59:41 +0530

Fix neutral monsters aggressively pursuing and attacking the player (78291).
Also fix neutral hydras attacking the player if their primary target dies with 
some head attacks unused.

--------------------------------------------------------------------------------
fa9febc8f9 | Darshan Shaligram | 2010-06-27 23:44:09 +0530

Log game mode to crash dumps, don't clear game mode when creating a crash dump, 
since that sends Sprint crash milestones to the wrong milestone file.

--------------------------------------------------------------------------------
8895c09e2e | Charles Otto | 2010-06-27 13:53:29 -0400

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
articulated_kraken

--------------------------------------------------------------------------------
d77ae4742c | Adam Borowski | 2010-06-27 17:11:29 +0200

... but don't break non-Windows on the way.

--------------------------------------------------------------------------------
b8248565c1 | Adam Borowski | 2010-06-27 17:00:40 +0200

Fix a crash on win32 due to insane rename() semantics there.

--------------------------------------------------------------------------------
ac085e2d1e | Charles Otto | 2010-06-27 10:24:58 -0400

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
articulated_kraken

--------------------------------------------------------------------------------
b5cdb887c8 | Charles Otto | 2010-06-27 10:24:23 -0400

Only remove a kraken connector in favor of the head in shallow water
Only remove a kraken connector to make room for the main body if it
seems like the head will actually move to that position (i.e. the
position is not shallow water).

--------------------------------------------------------------------------------
104cb59340 | Adam Borowski | 2010-06-27 15:45:40 +0200

Fix compilation failure on clang.

--------------------------------------------------------------------------------
d017669db1 | Jude Brown | 2010-06-27 23:19:01 +1000

Holy dragons, AF_HOLY.
No description or retribution effects yet, but it's a start. I'm still
not happy with the colour, though.

--------------------------------------------------------------------------------
a166ddae4b | Jude Brown | 2010-06-27 22:39:17 +1000

Finish implementing holy breath, as "blessed fire".
For good god worshippers, holy breath should do little or no damage. For
normal people, it'll do similar damage to fire clouds (it is fire,
after all, just blessed by the gods); for evil, it'll do similar damage
as fire with rF-.

Still requires proper definition of resists, etc.

--------------------------------------------------------------------------------
2ae1cd3e94 | Darshan Shaligram | 2010-06-27 17:20:58 +0530

Prompt player for using non-weapons in combat vs anything visible that is not 
an unknown mimic.

--------------------------------------------------------------------------------
6331ca7b73 | Jude Brown | 2010-06-27 20:58:26 +1000

Partially implement CLOUD_HOLY_FLAMES.
No damage or other effects have been implemented at the minute.

--------------------------------------------------------------------------------
562dc42b12 | Jude Brown | 2010-06-27 20:52:05 +1000

Implement Summon Holies and Summon Greater Holy.

--------------------------------------------------------------------------------
432345d8bd | Darshan Shaligram | 2010-06-27 16:01:47 +0530

Reword changelog line on shields affecting attack speed.

--------------------------------------------------------------------------------
08a193f3e3 | Jude Brown | 2010-06-27 20:27:39 +1000

Implement Holy Word as monster-castable.

--------------------------------------------------------------------------------
150164f370 | Jude Brown | 2010-06-27 20:18:22 +1000

Fix ZAPs, BEAMs, spll-data and mon-cast info for new holy spells.

--------------------------------------------------------------------------------
6735ea1e04 | Darshan Shaligram | 2010-06-27 15:45:17 +0530

Fix Sprint startup failing if the user uses '!' to pick a random character 
(sprint map is set to "").

--------------------------------------------------------------------------------
6cea5796c4 | Jude Brown | 2010-06-27 18:58:46 +1000

Begin holy monsters overhaul.
Outline:

- Monster
   * Angels will be replaced by cherubs, holy ranged attackers.
   * New: holy dragons, which breathe cleansing flame.
   * New: blessed toes, with a holy aura and the ability to summon
     holy monsters.
   * New: phoenix. Fast, always leaves a corpse, and is resurrected
     unless butchering.
   * New: shedu. Come in pairs, resurrect each other; need to be split
     up and killed separately, or killed at the same time.
   * New: ophan. Holy eyes that surround foes with holy flame, and shoot
     bolts of fire.
   * New: paladin. Holy-themed human warrior who may sacrifice
     themselves to save a nearby holy monster; sacrifice will leave
     behind a spirit.
   * New: spirit. A timid creature that runs away from the player, and,
     eventually, summons a greater holy creature.
   * New: apis. A holy bull that will only attack you if you are evil.
     Avenged by Elv.
   * New: silver star. An anti-chaotic being that worshippers Zin and
     attempts to purge chaos from the world.
- Spells
   * Resurrect, for use by Shedu.
   * Light beam, removes positive "evil" effects (regen, Death's Door,
     etc), does damage to evil.
   * Holy word, monster-implemented.
   * Summon holies: summons multiple holy monsters.
   * Summon greater holy: summons a single "great" holy monster.
   * Heal other: other-targetted healing.
   * Sacrifice: fully heals another monster at the cost of the monster's
     own life. Leaves behind a spirit.
   * Holy flames: summons a ring of holy fire around the foe.
   * Cleansing flame breath.
- Other
   * Good god monster death revenge will change; major revenge (The
     Shining One's cleansing flame, for instance) will only be triggered
     for top tier monsters (holy dragons, phoenixes, etc). The other
     good gods may also take revenge for the death of their favoured
     creatures.

--------------------------------------------------------------------------------
2115da8ef4 | Darshan Shaligram | 2010-06-27 12:47:12 +0530

Fix abyss dummy vaults not being applied correctly (st_).

--------------------------------------------------------------------------------
0a20fef37e | Darshan Shaligram | 2010-06-27 12:19:35 +0530

Fix vault_position_iterator always considering top-left square of a map's 
bounding rectangle to be within the map (st_).

--------------------------------------------------------------------------------
1048477e61 | Darshan Shaligram | 2010-06-27 12:18:49 +0530

Extra debug info in debug build 'x' look-around.

--------------------------------------------------------------------------------
571d302963 | David Lawrence Ramsey | 2010-06-26 18:34:17 -0500

Remove an unneeded blank line from the changelog.

--------------------------------------------------------------------------------
5d8f22489b | Adam Borowski | 2010-06-27 01:23:51 +0200

Explain why Regeneration and Dispel Undead are evil.

--------------------------------------------------------------------------------
903180c683 | Adam Borowski | 2010-06-27 01:11:40 +0200

Rewrap the changelog.

--------------------------------------------------------------------------------
990650742b | Adam Borowski | 2010-06-27 01:11:35 +0200

Changelog updates for 0.7/0.8.

--------------------------------------------------------------------------------
0485a567bd | Adam Borowski | 2010-06-26 23:34:26 +0200

Reimplement all monster-related actions as delayed ones.  Remove 
apply_to_all_dungeons().
Functional changes:
* Yred's penance won't insta-enslave mons you merely marked.
* Xom-gifted pet perm daevas won't abandon you if you drop TSO.
  (I've actually had this happen to me in a real game!)

--------------------------------------------------------------------------------
b2d9aad984 | Adam Borowski | 2010-06-26 22:34:13 +0200

Use common versioning for the travel cache.

--------------------------------------------------------------------------------
e9efeca1a6 | Adam Borowski | 2010-06-26 22:34:12 +0200

Make passive mapping and Jiyva's death use a delayed action.

--------------------------------------------------------------------------------
9ccab91916 | Adam Borowski | 2010-06-26 22:34:12 +0200

Reimplement Nemelex' shuffle using a delayed action.

--------------------------------------------------------------------------------
12f742fff2 | Adam Borowski | 2010-06-26 22:34:12 +0200

Delayed level actions -- basic functionality.

--------------------------------------------------------------------------------
e968cc3fc0 | Adam Borowski | 2010-06-26 22:34:12 +0200

Fix a crash on reload if wizard &~ was used in the Abyss/Pan/a portal.

--------------------------------------------------------------------------------
67031ce875 | Darshan Shaligram | 2010-06-27 01:41:17 +0530

When saving file "X", first save "X.tmp" and rename to "X" to avoid clobbering 
files under conditions such as full disk or crawl crashing during save.
This probably needs more work. In particular, bones file locking looks broken.

--------------------------------------------------------------------------------
eca484c69b | Enne Walker | 2010-06-26 12:46:29 -0400

Add hyperactive ballistomycete tile.
I can color adjust with the best of them.

--------------------------------------------------------------------------------
62c85002ff | Darshan Shaligram | 2010-06-26 21:59:06 +0530

[1832] Fix i_feel_safe ignoring stationary monsters like oklobs and Roxanne. 
(elliptic)

--------------------------------------------------------------------------------
e16e327aee | Jude Brown | 2010-06-26 17:34:35 +1000

Don't identify mimics with autoexplore: #1199.
This makes the assumption that the current behaviour with unidentified
mimics is the correct one: if you create a mimic in WizMode (&Mmimic)
and then use Xt to teleport right next to it, and then move into it with
a "!a" inscribed weapon (or a ranged weapon), you won't be prompted.

Previous behaviour with autoexplore was to prompt before moving,
allowing you to cancel out, and allowing the mimic to be identified to
the player, but not actually in game, giving you a free turn and the
ability to move away.

Current behaviour is now the same as the example described in paragraph
one.

--------------------------------------------------------------------------------
f5497ce435 | Darshan Shaligram | 2010-06-26 10:48:22 +0530

Increase chances of magic contamination Glow effects.

--------------------------------------------------------------------------------
909c0179ab | Darshan Shaligram | 2010-06-26 10:21:17 +0530

Give monsters a better HD save vs mephitic cloud.

--------------------------------------------------------------------------------
606fa22053 | Jude Brown | 2010-06-26 14:34:24 +1000

Allow victory dancing Fulsome Distillation.
You can now use "Z" to cast Fulsome Distillation despite there being no
corpses in view. It's rather hacky, as I've just passed the Z/z variable
down the spellcasting chain until it gets to the Fulsome code. There's
probably a better way to do this, but it seems to work properly for now.

--------------------------------------------------------------------------------
794994613c | David Lawrence Ramsey | 2010-06-25 21:07:06 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
89ebc6aedc | Jude Brown | 2010-06-26 12:03:41 +1000

Give warpers dispersal darts. (Mantis #1823).
They now start with 20 +1 darts and 5 +0 darts of dispersal.

--------------------------------------------------------------------------------
426447955c | Darshan Shaligram | 2010-06-26 07:27:51 +0530

you.num_turns is now int, fix comparison with LONG_MAX (warning noises on Mac 
x64 build).

--------------------------------------------------------------------------------
068ee31147 | Darshan Shaligram | 2010-06-26 07:22:52 +0530

Disable passive piety gain for the good gods in Sprint (casmith789).

--------------------------------------------------------------------------------
a89a484043 | Jude Brown | 2010-06-26 11:43:01 +1000

Don't announce goals in Sprint.

--------------------------------------------------------------------------------
6084bd9eee | Darshan Shaligram | 2010-06-26 06:52:51 +0530

Add bounds checks to apply_area_cloud. (fixes crash: !lm xyblor type=crash 1).

--------------------------------------------------------------------------------
05f8ab4528 | Darshan Shaligram | 2010-06-26 06:48:44 +0530

Drop fsim default #rounds to 4000 since combat is much slower now.

--------------------------------------------------------------------------------
16e3806324 | Darshan Shaligram | 2010-06-25 11:40:25 +0530

Save 1-based absdepth in logfile and milestone records.

--------------------------------------------------------------------------------
fd6a5325f2 | Darshan Shaligram | 2010-06-25 11:36:49 +0530

Fix crash on MacOS when building without SAVEDIR set and DGAMELAUNCH enabled.

--------------------------------------------------------------------------------
4d34d7b48b | Darshan Shaligram | 2010-06-25 10:34:58 +0530

Fix monster speech crash (!lm * type=crash 51)

--------------------------------------------------------------------------------
446f8218b1 | Darshan Shaligram | 2010-06-25 09:46:40 +0530

Don't save dead monsters.
HUP saves at level-up prompt can have dead monsters on the mgrd; check for and
don't save these, since Crawl will not be prepared to handle them correctly on
reload.

--------------------------------------------------------------------------------
c830e21c2e | Darshan Shaligram | 2010-06-24 20:31:52 +0530

Redo CHANCE handling for vaults.
CHANCE is now an (almost) absolute chance of a vault being placed on a given
level in its DEPTH range. CHANCE applies only to vaults picked by depth.

--------------------------------------------------------------------------------
0ac6e0e7e7 | Darshan Shaligram | 2010-06-24 20:22:25 +0530

Fix missing ENDMAP in lair.des.

--------------------------------------------------------------------------------
0025b48238 | David Lawrence Ramsey | 2010-06-24 09:32:42 -0500

Typo fix.

--------------------------------------------------------------------------------
f602f14b06 | David Lawrence Ramsey | 2010-06-24 09:07:47 -0500

Remove misleading "demonic" from iron elementals' description.

--------------------------------------------------------------------------------
9620990534 | David Lawrence Ramsey | 2010-06-24 09:07:47 -0500

Fix species and genus for Chuck, Polyphemus, and Nellie.
This fixes Mantis 1821.

--------------------------------------------------------------------------------
ca810a83cd | Robert Vollmert | 2010-06-24 15:17:50 +0200

Don't assert if a returning weapon touches a corner. (#1219)

--------------------------------------------------------------------------------
95d586ab63 | Robert Vollmert | 2010-06-24 15:17:48 +0200

Make find_ray/exists_ray not track reduced LOS by default. (#1219)
After all, bolt ranges don't reduce when LOS range is reduced, and that's what
find_ray/exists_ray are mainly used for.

--------------------------------------------------------------------------------
6686ecb04f | Robert Vollmert | 2010-06-24 15:17:43 +0200

Regress any beam that doesn't affect the wall. (#1219)
This is probably redundant with the other checks in bolt::need_regress().
It makes sure that weapons of returning that may not set drop_item (this
is really bad in itself -- weapons of returning should be handled inside
bolt) still get regressed.

--------------------------------------------------------------------------------
0914d94250 | David Lawrence Ramsey | 2010-06-24 07:46:55 -0500

Make the iron giant's description show up properly.

--------------------------------------------------------------------------------
498b6d9626 | David Lawrence Ramsey | 2010-06-24 07:41:32 -0500

Remove redundant flag from iron elementals.

--------------------------------------------------------------------------------
4a2b40dc72 | David Lawrence Ramsey | 2010-06-24 07:41:32 -0500

Set Z_NOZOMBIE for Chuck, as you'll just get a stone giant zombie.

--------------------------------------------------------------------------------
0070559dfe | Jude Brown | 2010-06-24 22:38:39 +1000

A start at allowing doors to be locked.
The default requires that three runes be in the player's inventory
before the door can be opened. No messages are automatically provided,
but can be included.

Will be extended to allow for other items apart from runes; currently
has the capacity to call a function when the door is opened.

--------------------------------------------------------------------------------
8377dbe76b | David Lawrence Ramsey | 2010-06-24 06:53:14 -0500

Add wording and capitalization fixes.

--------------------------------------------------------------------------------
8b044851a7 | Jude Brown | 2010-06-24 21:01:27 +1000

Another new Lair:8 vault: doggies. Lots of them.

--------------------------------------------------------------------------------
d072066010 | Jude Brown | 2010-06-24 19:46:21 +1000

Added rock worms to wormcave.

--------------------------------------------------------------------------------
78bdbfb081 | Jude Brown | 2010-06-24 19:33:55 +1000

Another Lair:$ vault: bears.
Lots of bears, and for the irony, honeycomb. I'm assuming this has
already been done before. Yes, there's barely any loot. This is
intentional.

--------------------------------------------------------------------------------
6473161db0 | Jude Brown | 2010-06-24 18:04:12 +1000

Use coolio's edited griffon tile (Mantis #1819).

--------------------------------------------------------------------------------
7042f9994b | Jude Brown | 2010-06-24 15:32:25 +1000

Fix typo in Nellie's description.

--------------------------------------------------------------------------------
05d4d014e4 | Jude Brown | 2010-06-24 14:56:47 +1000

Mu's Sprint-map uniques.
Specifically designed for Mu's new Sprint map, consists of:

 * Nellie the hellephant. Doesn't have a tile (I imagine a normal
   hellephant with a (stereotypical) ribbon would be amusing. for the
   juxtaposition).
 * Chuck the stone giant, a rock collector. Has a large rock of
   returning.
 * The iron giant: an iron-flavoured stone giant, genderless.
 * Iron elementals: not quite as strong as Mu's original, as the iron
   giant summons these. May need to be tweaked.

--------------------------------------------------------------------------------
ee226e87d5 | Jude Brown | 2010-06-24 12:42:03 +1000

Tweak Grinder's depth.

--------------------------------------------------------------------------------
6296e81716 | Darshan Shaligram | 2010-06-24 06:04:44 +0530

Armour fixes: remove AEVP weapon attack delay, add EVP-based EV penalty.
This commit aims to:
1. Make AC-based games easier at the start.
2. Differentiate AC- and EV-based characters better.
3. Leave other aspects of the 0.6 and 0.7-a AC changes intact.

Remove the AEVP attack delay for melee weapon attacks. Unarmed attacks
still get AEVP delay, and AEVP to-hit penalties still apply for all attacks.

Slightly increase the shield attack delays.

Apply a raw (body-size-adjusted) body-armour-EVP penalty to player
dodging bonus: 30 * (size_adjusted_EVP - 1) / strength
 where size_adjusted_EVP = EVP * (1 - size_factor)
 where size_factor = (size - SIZE_MEDIUM) / 4 if size < SIZE_SMALL
                                              or size > SIZE_LARGE

Slightly increase AC numbers: ac = (item_AC * (22 + sk_arm) / 22)
                         was: ac = (item_AC * (23 + sk_arm) / 23)

--------------------------------------------------------------------------------
0554787c7c | David Lawrence Ramsey | 2010-06-23 19:08:08 -0500

Properly display corpses of elephant-type monsters in tiles.

--------------------------------------------------------------------------------
efe8738d62 | Darshan Shaligram | 2010-06-24 02:52:59 +0530

Fix crash when activating a marker causes it to remove itself from marker list 
(Mu).

--------------------------------------------------------------------------------
cdcb7979c7 | Adam Borowski | 2010-06-23 22:30:57 +0200

Lugonu shouldn't give special books.

--------------------------------------------------------------------------------
3fda858f9b | Darshan Shaligram | 2010-06-23 22:19:15 +0530

Fix elephant statue markers for jungle_book (due).

--------------------------------------------------------------------------------
2ef70ce88e | David Lawrence Ramsey | 2010-06-23 09:45:00 -0500

Add formatting fix.

--------------------------------------------------------------------------------
3c1e972787 | Jude Brown | 2010-06-24 00:25:51 +1000

Fix hellephants (Poor_Yurik)
As Poor_Yurik points out, they don't have trunks; instead, give them a
biting attack and a gore attack.

--------------------------------------------------------------------------------
ce3f7f8dbb | Jude Brown | 2010-06-24 00:25:50 +1000

Make wormcave harder.
Widens out the corridors slightly.

--------------------------------------------------------------------------------
f6480f4c60 | Adam Borowski | 2010-06-23 16:17:30 +0200

Compensate for the removal of overflow temples from the Abyss.

--------------------------------------------------------------------------------
7f716e51ca | Adam Borowski | 2010-06-23 15:45:18 +0200

Remove rotting/negative rottage on +hp scales.

--------------------------------------------------------------------------------
f2f2374399 | Darshan Shaligram | 2010-06-23 19:01:37 +0530

[1797] Fix overflow temples being placed in the abyss.

--------------------------------------------------------------------------------
3d6bc710ca | Adam Borowski | 2010-06-23 01:09:02 +0200

Whitespace fixes.

--------------------------------------------------------------------------------
9b058762b2 | Adam Borowski | 2010-06-23 00:52:49 +0200

Decouple stealth checks from drawing the view window.

--------------------------------------------------------------------------------
d5b208b7eb | Adam Borowski | 2010-06-23 00:21:24 +0200

Cap the effective move time at 10 aut for hunger/regen purposes.
This takes care of naga / CB hunger issues, without letting them dance
in place for cheap healing.

--------------------------------------------------------------------------------
91e435305d | Adam Borowski | 2010-06-23 00:21:24 +0200

Keep track of the distance travelled this turn (0, 1 or sqrt(2)).

--------------------------------------------------------------------------------
442a3e3d79 | Adam Borowski | 2010-06-23 00:21:23 +0200

Unrevert "Make per turn hunger proportional to time_taken""
This reverts commit d79e69eab0f362560e5abadb1cd8673005713d57.

_Any_ inconsistency between hunger and regen can be exploited.

--------------------------------------------------------------------------------
9c8c2b421a | Adam Borowski | 2010-06-23 00:21:23 +0200

Allow varying strictness of brand checks.
Usually, we want to be sure no rocks of returning, etc, get generated,
but special vaults may use them.

--------------------------------------------------------------------------------
1d099d6524 | Adam Borowski | 2010-06-23 00:21:23 +0200

TGW's bribe altar.

--------------------------------------------------------------------------------
07711af4a5 | Adam Borowski | 2010-06-23 00:21:23 +0200

Fix docs: only "jewellery" is accepted, not "jewelry". [1761]

--------------------------------------------------------------------------------
a28cd0b083 | Adam Borowski | 2010-06-23 00:21:23 +0200

Disallow extending Regen while in lich form [1565]

--------------------------------------------------------------------------------
febde3547b | Robert Burnham | 2010-06-22 16:35:52 -0500

Adjust demonic guardian
Adjusts the 'A' text somewhat, increases the timeout after a spawned
guardian, and finally makes use of the adjustments to tension using
LOS only.

--------------------------------------------------------------------------------
fdc289afd4 | Robert Burnham | 2010-06-22 16:35:52 -0500

Fix typo in get_tension rewrite

--------------------------------------------------------------------------------
9d91ee9637 | Robert Burnham | 2010-06-22 16:35:52 -0500

Change get_tension to work on LOS only
Previously, would check all monsters, excluding those which had too
large a travel radius or other behavioral flags. Tension is best managed
by checking only those in LOS, otherwise they do not pose an immediate
threat.

--------------------------------------------------------------------------------
40e095b003 | David Ploog | 2010-06-22 23:24:04 +0200

Fix expected values for portal vaults.
They now all have CHANCE: 5%, with the exceptions
spider: only 1%, as it only has one map right now
sewer:  8%, as it is the easiest shallow portal vault
bazaar: no CHANCE, since bazaars use shop generation and I wasn't sure
        if CHANCE would be appropriate here.

Also some rather long comments on troves and a wizlab.

--------------------------------------------------------------------------------
9bfd947338 | Darshan Shaligram | 2010-06-23 01:38:48 +0530

Convert a couple of misplaced CHANCE: lines to WEIGHT:.

--------------------------------------------------------------------------------
d526fa568d | Darshan Shaligram | 2010-06-22 23:40:35 +0530

Fix crash in get_unrandart_num (Mu).

--------------------------------------------------------------------------------
7a21e1348a | Enne Walker | 2010-06-22 11:02:22 -0400

[1808] Add new Snorg tile.

--------------------------------------------------------------------------------
b4fa663e1c | Darshan Shaligram | 2010-06-22 20:29:30 +0530

Increase item limits, decouple NON_foo from MAX_foo; save major version changed.
MAX_MONSTERS: 350 ->  700
MAX_ITEMS:    600 -> 1000
MAX_CLOUDS:   180 ->  600
MAX_TRAPS:    100 ->  400
MAX_SHOPS:     25 ->  100

Untied NON_MONSTER, NON_ITEM, EMPTY_CLOUD from the values of MAX_MONSTER, etc.
so that MAX_MONSTER and friends can be changed without breaking save
compatibility again.

--------------------------------------------------------------------------------
4c8eeae002 | David Lawrence Ramsey | 2010-06-22 09:38:14 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
69ce21157e | David Lawrence Ramsey | 2010-06-22 09:29:23 -0500

Typo fix.

--------------------------------------------------------------------------------
0370aed6a7 | David Lawrence Ramsey | 2010-06-22 09:20:30 -0500

Update documentation to account for monster name changes, etc.

--------------------------------------------------------------------------------
e8f1face6c | Jude Brown | 2010-06-22 23:38:55 +1000

Fix Grinder's variable HP.

--------------------------------------------------------------------------------
5277ed4c47 | Jude Brown | 2010-06-22 23:29:59 +1000

New unique: Grinder the shadow imp.
Previously an ineffective torturer, he escape from one of the lower
circles of Hell and decided to explore the Dungeon. Unfortunately,
he got a little bit lost.

That won't stop him from experimenting on you.

Requires a tile!

--------------------------------------------------------------------------------
da91a2c190 | Jude Brown | 2010-06-22 23:29:59 +1000

Tweak to Lair ending vaults (dpeg)
As pointed out, they needn't become loot-heavy, merely EXP heavy. For
vaults where it is relevant to assume that there would be loot, allow
it, but otherwise, don't give any (or much).

--------------------------------------------------------------------------------
3e4f4ef9e8 | Darshan Shaligram | 2010-06-22 18:06:51 +0530

Allow corpses to be placed in .des files.
Add item property CORPSE_NO_DECAY to disallow decay on
corpses/skeletons/chunks.

Wizmode &% now creates an item using the .des file item name parser; &o remains
the old wizmode item-gen command.

Corpse decay for corpses placed by maps can be controlled using
dgn.delayed_decay.

--------------------------------------------------------------------------------
154e321cbb | Darshan Shaligram | 2010-06-22 18:06:10 +0530

Fire player-in-los from show_def update rather than seen_notable_thing, so that 
markers don't have to be notable to be notified of the player charging into LOS.

--------------------------------------------------------------------------------
786454b12c | David Ploog | 2010-06-22 12:28:27 +0200

Entry vault tweaks.
Fix a bug in cavernosity.
Repair handbag, using TGW's corrections in Mantis 759.

--------------------------------------------------------------------------------
af483e07d7 | David Lawrence Ramsey | 2010-06-21 22:42:55 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
1b6029e7d5 | Jude Brown | 2010-06-22 10:28:42 +1000

Remove testing weight.

--------------------------------------------------------------------------------
bcedf2a1d4 | Adam Borowski | 2010-06-21 22:44:42 +0200

Stop fireflies from shouting.  Allow them as zombies.

--------------------------------------------------------------------------------
87db9af27e | Adam Borowski | 2010-06-21 22:40:17 +0200

Nerf Extension by allowing extending only spells you know.
Extending a spell with cast chance <50% may fail.

This stops the abuse of getting Lich Form or Dragon Form from a card or
from Xom and extending it indefinitely.

Also, there are no Might, Brilliance and Agility spells.

--------------------------------------------------------------------------------
05e49a6f09 | Adam Borowski | 2010-06-21 20:07:30 +0200

Improve the save version mismatch message.

--------------------------------------------------------------------------------
ee11f4faa9 | Adam Borowski | 2010-06-21 14:50:01 +0200

Don't announce draconian AC gain at level 4, since there's none. [1801]

--------------------------------------------------------------------------------
36cc0ab6db | Adam Borowski | 2010-06-21 14:36:05 +0200

Mark the spell See Invis as useless when appropiate.
Since you can refresh it before it expires, having it still in effect
doesn't count here.

--------------------------------------------------------------------------------
de7881c4c3 | Adam Borowski | 2010-06-21 11:31:19 +0200

Set OBJ_RANDOM to 101, I don't trust other compilers for signed ints in an 8 
bit field.
"must remain set to 255" my ass, it's never used except for comparisons.

--------------------------------------------------------------------------------
3e722040b6 | Adam Borowski | 2010-06-21 11:08:13 +0200

Use a storage specifier for base_type in the item struct.

--------------------------------------------------------------------------------
4e18cdd994 | Adam Borowski | 2010-06-21 11:06:50 +0200

Revert typed enums (ee530f00).

--------------------------------------------------------------------------------
4dea05c577 | Jude Brown | 2010-06-21 17:58:44 +1000

Another Lair ending vault: worm caves.
All flavours of worms, including some not-worms, for your pleasure!

--------------------------------------------------------------------------------
433a2ef945 | Darshan Shaligram | 2010-06-21 09:34:00 +0530

[1780] Fix missing drowning messages when a monster falls into deep water.

--------------------------------------------------------------------------------
88e245f419 | Darshan Shaligram | 2010-06-21 09:21:05 +0530

[1339] Fix wasted turn when trying to go downstairs on vestibule-of-hell exit.

--------------------------------------------------------------------------------
78a66cebf9 | Darshan Shaligram | 2010-06-21 09:04:25 +0530

[1375] Fix statues in dis_mu coming to life even after being destroyed.

--------------------------------------------------------------------------------
aa7dfaa938 | Darshan Shaligram | 2010-06-21 08:24:36 +0530

[1430] fedhas_altar_4 was a minivault without surrounding floor and without a 
mini_float tag to request exits to be generated, fixed.

--------------------------------------------------------------------------------
5b01a0268f | Darshan Shaligram | 2010-06-21 08:17:12 +0530

[1485] Allow normal targeting of kraken tentacles.

--------------------------------------------------------------------------------
5fe3a2c87e | Darshan Shaligram | 2010-06-21 07:51:48 +0530

[1414] Fix crash when killing kraken zombie by destroying a tentacle.

--------------------------------------------------------------------------------
32a1d48757 | Darshan Shaligram | 2010-06-21 07:21:00 +0530

Fix non-debug build.

--------------------------------------------------------------------------------
0ea2284c16 | Darshan Shaligram | 2010-06-21 06:58:53 +0530

Fix test failures -- debug map that looked unplaceable, Snake test failure if 
the Snake branch was disabled.

--------------------------------------------------------------------------------
3fa0fd0436 | Darshan Shaligram | 2010-06-21 06:48:47 +0530

Fix ASSERT when describing items with $LINES+1 description lines (such as the 
unrand "Leech" in an 80x24 term).

--------------------------------------------------------------------------------
e098adb7a0 | Adam Borowski | 2010-06-21 02:01:40 +0200

Fix uninitialized corpse flags (Greensnark).

--------------------------------------------------------------------------------
0b962904c2 | Darshan Shaligram | 2010-06-21 05:06:41 +0530

Fix crash when vampire feeding on a poisonous corpse is interrupted by thirst 
decreasing and removing PR.
handle_delay called vampire_nutrition_per_turn which would stop_delay when the
vampire lost PR when feeding on a poisonous corpse. If stop_delay coverted
corpse->skeleton (1/3) and then handle_delay's _finish_delay tried to do the
same, the skeletonise code would assert at being presented with a skeleton
instead of a corpse.

--------------------------------------------------------------------------------
f4475de022 | Adam Borowski | 2010-06-21 01:12:06 +0200

Drop a now-useless #ifdef for save major 25.

--------------------------------------------------------------------------------
1196655e8b | Adam Borowski | 2010-06-21 01:07:14 +0200

Bump the major save version to 26.

--------------------------------------------------------------------------------
84d7592557 | Adam Borowski | 2010-06-21 01:07:14 +0200

Don't store the cgrid, reconstruct it from cloud data.

--------------------------------------------------------------------------------
ec498f277f | Adam Borowski | 2010-06-21 01:07:13 +0200

When saving an unused item/trap/shop/monster/cloud slot, write just the type.

--------------------------------------------------------------------------------
96b03ebe2b | Adam Borowski | 2010-06-21 01:07:13 +0200

Don't store monster attitudes as a separate tag.  Breaks save compat.

--------------------------------------------------------------------------------
956fc093bd | Darshan Shaligram | 2010-06-21 04:24:05 +0530

Don't use a default macro_dir line in init.txt, since initfile.cc sets it 
anyway + set a sane default macro_dir on Mac OS.

--------------------------------------------------------------------------------
ad130f4461 | Adam Borowski | 2010-06-21 00:15:13 +0200

Fix an infinite loop while reading shops.

--------------------------------------------------------------------------------
05999fbde4 | Adam Borowski | 2010-06-20 23:40:32 +0200

Use a #define instead of hardcoded 20 for the size of Pan mons_alloc, reduce 
that to 10.

--------------------------------------------------------------------------------
1eab4f8078 | Adam Borowski | 2010-06-20 23:15:18 +0200

Clear the slots that were not saved.

--------------------------------------------------------------------------------
5fb26ded0b | Adam Borowski | 2010-06-20 23:04:31 +0200

Don't save monsters past the last used slot.

--------------------------------------------------------------------------------
f95b706f53 | Adam Borowski | 2010-06-20 22:45:13 +0200

Don't save clouds and shops past the last used slot.

--------------------------------------------------------------------------------
76c433efda | Adam Borowski | 2010-06-20 22:12:58 +0200

Conserve disk space by not saving items and traps past the last used slot.

--------------------------------------------------------------------------------
8ca9b209fb | Adam Borowski | 2010-06-20 21:53:11 +0200

Fix an invalid return value.

--------------------------------------------------------------------------------
fb5802231e | Adam Borowski | 2010-06-20 21:41:42 +0200

Placate clang's warnings about shadowing class variables in class functions.

--------------------------------------------------------------------------------
e4c84a0d7f | Charles Otto | 2010-06-20 15:31:53 -0400

get_long -> get_int function name changes.

--------------------------------------------------------------------------------
19238515a4 | Charles Otto | 2010-06-20 15:17:00 -0400

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
articulated_kraken

--------------------------------------------------------------------------------
d3be3a242a | Charles Otto | 2010-06-20 15:16:35 -0400

Do a better job of tracking tentacle connections
Keep track of which segments each part of the tentacle is connected
to.

--------------------------------------------------------------------------------
7ed7668902 | Adam Borowski | 2010-06-20 21:16:10 +0200

Fix a part of armour acq code being ignored.
(An actually useful warning from clang!)

--------------------------------------------------------------------------------
4b241fe7de | David Lawrence Ramsey | 2010-06-20 13:55:56 -0500

Add missing parentheses.

--------------------------------------------------------------------------------
2efa7e6bfc | Darshan Shaligram | 2010-06-21 00:20:09 +0530

Fix crash when snapping turtle is killed by reaching attack hitting spines.

--------------------------------------------------------------------------------
8b086d5ec5 | Darshan Shaligram | 2010-06-21 00:19:49 +0530

Fix lingering ref to unsigned long breaking 32-bit compile.

--------------------------------------------------------------------------------
ee530f001a | Adam Borowski | 2010-06-20 20:27:50 +0200

Use typed enums -- or a non-enum field -- in item_def to save memory.
GCC supports them but warns if --std=c++0x is not given, MSVC works well
from MSVC 2008, clang crashes.  I did use an #ifdef instead of just the
non-enum type in hope the compilers improve soon.

--------------------------------------------------------------------------------
ecfbc8411e | Adam Borowski | 2010-06-20 20:27:50 +0200

Define make_name()'s seed as 32 bit -- the rest was unused anyway.

--------------------------------------------------------------------------------
0fe9a9e878 | Adam Borowski | 2010-06-20 20:27:50 +0200

Make a few flag types use non-ambiguous storage.

--------------------------------------------------------------------------------
0fa67c59d6 | Adam Borowski | 2010-06-20 20:27:50 +0200

Get rid of ambiguous longs from CrawlHashTable and a lot of misc places.

--------------------------------------------------------------------------------
f1f190d3e3 | Adam Borowski | 2010-06-20 20:27:50 +0200

Remove CrawlTableWrapper, unused since times long ago.

--------------------------------------------------------------------------------
f4f8547af1 | Adam Borowski | 2010-06-20 20:27:49 +0200

Disallow longs in the Lua interface.

--------------------------------------------------------------------------------
1f34e72552 | Adam Borowski | 2010-06-20 20:27:49 +0200

Kill some longs from player.h

--------------------------------------------------------------------------------
a201159a83 | Adam Borowski | 2010-06-20 20:27:49 +0200

s/marshallLong/marshallInt/, since this confusion tends to cause bugs.
Actually, it should be named marshallInt32_t as that's what it does, but
that's hard to read, no architecture with smaller ints can conceivably run
Crawl and the only architecture with bigger ints is long dead.  And in even
in such a case, everything will be fine except for name confusion...

--------------------------------------------------------------------------------
239738eefd | Darshan Shaligram | 2010-06-20 23:47:50 +0530

Fix crash when Cerebov's firestorm kills him and creates a fire vortex on his 
mindex (casmith789).

--------------------------------------------------------------------------------
6c83f2ce2f | David Lawrence Ramsey | 2010-06-20 11:45:27 -0500

Add missing parentheses.

--------------------------------------------------------------------------------
b96501a03b | Darshan Shaligram | 2010-06-20 22:03:50 +0530

Force view_lock=true for arena (else arena crashes).

--------------------------------------------------------------------------------
867f45f684 | Charles Otto | 2010-06-20 12:31:52 -0400

Switch kraken tentacle pathing to a weighted distance function
Switch the algorithm used for tentacle pathing to A*, structure cost
functions so that tentacles will try to path around firewood, but go
through them if necessary.

Drop a few outdated functions/structs

--------------------------------------------------------------------------------
8c2721b182 | David Lawrence Ramsey | 2010-06-20 10:17:21 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
37516bb291 | Darshan Shaligram | 2010-06-20 20:38:11 +0530

Include Crawl command-line arguments in crash dump.

--------------------------------------------------------------------------------
7cec2d55cd | Darshan Shaligram | 2010-06-20 20:19:01 +0530

Replace mons_class_flags with a set of const uint64_ts, since C++ doesn't 
guarantee support for 64-bit enum constants, producing bizarre effects such as 
plants having deflect missiles.

--------------------------------------------------------------------------------
173c23167b | Darshan Shaligram | 2010-06-20 20:01:32 +0530

Fix -mapstat aborting early because of broken isolated-zone check; fixed to use 
dgn_count_disconnected_zones.

--------------------------------------------------------------------------------
244cd68d09 | Darshan Shaligram | 2010-06-20 19:42:42 +0530

Don't allow Fedhas mushrooms to attack plants and fungi to reach player.

--------------------------------------------------------------------------------
38d84fd88b | Darshan Shaligram | 2010-06-20 19:14:17 +0530

Fix ASSERT when a Fedhas worshipper on a plant or fungus steps onto a wandering 
mushroom.

--------------------------------------------------------------------------------
bb38f8e67d | Jude Brown | 2010-06-20 22:53:32 +1000

New lair ending: forest from hell. Literally.
What looks like a placid, natural monster-filled little forest turns
into a nightmare when the player discovers that a crazed wizard has
opened up a portal into hell! Complete with endless sea of hellish lava.

--------------------------------------------------------------------------------
26565b35e5 | Darshan Shaligram | 2010-06-20 16:13:32 +0530

Fix join_the_dots crashing on vault exits close to the edge of the map. (due)

--------------------------------------------------------------------------------
f6311f6ed5 | Enne Walker | 2010-06-19 22:27:30 -0400

[1657] Add Poor_Yurik's new goblin tiles.

--------------------------------------------------------------------------------
c2e23f0530 | Enne Walker | 2010-06-19 22:27:08 -0400

[1775] Add Poor_Yurik's new kobold tiles.

--------------------------------------------------------------------------------
9232708823 | Charles Otto | 2010-06-19 21:49:40 -0400

Let tentacles path towards non-foe targets in range
Let kraken tentacles path towards enemies besides the main body's foe
this way the kraken can attack summons etc. Also don't veto kraken
tentacles attacking firewood monsters since they can't actually walk
into them.

Handling of firewood is currently not very good since the kraken will
go out of its way to destroy them.

--------------------------------------------------------------------------------
74f6b80b48 | Charles Otto | 2010-06-19 20:28:19 -0400

Improve support for kraken zombies
This means use mons_base_type where appropriate instead of looking at
the type field directly.

--------------------------------------------------------------------------------
f4dd841a0e | Charles Otto | 2010-06-19 20:01:21 -0400

Drop tentacles when the target is out of view
Drop tentacles if the target is not in view and they are adjacent to
the main body. This is intended to prevent players from sniping
tentacles from 1 square outside the main body's LOS.

--------------------------------------------------------------------------------
22493632b2 | Charles Otto | 2010-06-19 19:53:49 -0400

Remove an unnecessary special case function

--------------------------------------------------------------------------------
fdf9fbe5b0 | Charles Otto | 2010-06-19 19:20:46 -0400

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
articulated_kraken

--------------------------------------------------------------------------------
d9df87148d | Adam Borowski | 2010-06-19 23:40:03 +0200

Set minimum depth on a couple of altar vaults with monsters.

--------------------------------------------------------------------------------
8e75f6f0e2 | Adam Borowski | 2010-06-19 23:16:09 +0200

Let Vehumet bless airstrike and a few others.

--------------------------------------------------------------------------------
69a734c0db | Adam Borowski | 2010-06-19 22:39:13 +0200

Allow hellephants in the Abyss, for a major ouch.  Extremely rare, though.

--------------------------------------------------------------------------------
74a392d840 | Adam Borowski | 2010-06-19 22:39:13 +0200

Show stasis on '%'.

--------------------------------------------------------------------------------
ed7d23949e | Darshan Shaligram | 2010-06-20 01:28:08 +0530

Remove ".txt" from milestones filename for consistency with scores and logfile 
(Napkin).

--------------------------------------------------------------------------------
a9836f6cc0 | Darshan Shaligram | 2010-06-20 01:20:04 +0530

Make more minivaults eligible to be abyss ruins.

--------------------------------------------------------------------------------
1d31c427aa | Darshan Shaligram | 2010-06-20 01:02:00 +0530

Map builder will damage vaults tagged "ruin" or "ruin_<branch>" using the Lair 
ruin code; use ruined minivaults as abyss furniture (jarpiain).

--------------------------------------------------------------------------------
f1602e796f | Adam Borowski | 2010-06-19 21:01:01 +0200

Regenerate yaccage to fix validation in yacc-less environments.
Yeah, shipping generated files sucks, but dependencies are a pain on Windows
and on certain Macs.

--------------------------------------------------------------------------------
147dfd8055 | Adam Borowski | 2010-06-19 20:58:03 +0200

Fix duplicated map_def:: inside a class.

--------------------------------------------------------------------------------
9c2d32961c | Darshan Shaligram | 2010-06-20 00:19:02 +0530

Make dungeon builder reject vaults that have no DEPTH, PLACE or TAGS that can 
be used to place the vault, add default-depths to .des file to pass these 
checks.
The preferred way to disable vaults is to give them a zero weight.

--------------------------------------------------------------------------------
87a1c5ac37 | Adam Borowski | 2010-06-19 19:42:47 +0200

Fix missing newlines.

--------------------------------------------------------------------------------
09f5a5c30b | Adam Borowski | 2010-06-19 19:38:15 +0200

Fix missing extension on a PNG file.

--------------------------------------------------------------------------------
181d1b0394 | Darshan Shaligram | 2010-06-19 20:55:02 +0530

Fix crash generating mimics, Snake visit test failure.

--------------------------------------------------------------------------------
6f64354a69 | Darshan Shaligram | 2010-06-19 20:32:06 +0530

Fix isolated area check failing on ruined levels with vaults.
_dgn_count_disconnected_zones now accepts zones that overlap with vaults as
long as at least one square in the zone is outside the vault.

--------------------------------------------------------------------------------
b70fed538c | Darshan Shaligram | 2010-06-19 20:32:05 +0530

Use subdungeon_depth to get the hell exit depth in the branch from which the 
player entered hell.

--------------------------------------------------------------------------------
8e66828e9c | Jude Brown | 2010-06-20 00:37:09 +1000

Save Hell entry branch as well as level.
Placing entries to Hell outside of the main dungeon caused issues in
that it would store the depth of the level, but not the branch;
therefore, returning from Hell would drop you out in the main dungeon at
the equivalent branch.

Example: entering Hell from Lair:8 would cause you to exit to D:20, or
thereabouts.

--------------------------------------------------------------------------------
faa7f278fb | Darshan Shaligram | 2010-06-19 17:44:15 +0530

[1778] Don't kill crawl if a scorefile line is corrupted.

--------------------------------------------------------------------------------
9d2f4899e9 | Darshan Shaligram | 2010-06-19 17:27:49 +0530

Keep track of whether vaults have been seen by the player, and unregister 
unique abyss vaults if they're shifted away before the player has seen them.
This makes the handling of unique vaults a little more reasonable in the abyss.
If the player never spotted the unique vault, the abyss builder will now be
able to use the vault again for a different area.

--------------------------------------------------------------------------------
be945a57cb | Jude Brown | 2010-06-19 21:31:35 +1000

Hellephant zoo.
A variant of minivault_9: instead of evil zoo, you get an ... evil zoo.
This time, with elephants! And hellephants.

--------------------------------------------------------------------------------
71b8c8d4d0 | Jude Brown | 2010-06-19 21:26:17 +1000

Fix mistake in jungle_book.

--------------------------------------------------------------------------------
38d1f17732 | Jude Brown | 2010-06-19 21:23:08 +1000

Elephants on parade!
New vault: Jungle Book-inspired Lair:$ vault, hopefully the first of
many. Has a considerable number of threats: an anaconda to start with,
and then, once this has been destroyed, a number of dire elephants.
There are also some plain elephants wandering around.

--------------------------------------------------------------------------------
ff1e497c19 | Darshan Shaligram | 2010-06-19 15:52:13 +0530

Reduce chances of abyss vaults, fix the abyss builder sometimes using multiple 
exit vaults for the same area.

--------------------------------------------------------------------------------
4d41c30e93 | Darshan Shaligram | 2010-06-19 14:59:51 +0530

Ignore tmp directories in tree.

--------------------------------------------------------------------------------
bdc215203d | Darshan Shaligram | 2010-06-19 14:49:13 +0530

Move Sprint saves into $SAVEDIR/sprint.
This allows the same character name to have ongoing Crawl and Sprint games
without filename collisions. I'm using a subdirectory instead of a filename
suffix (such as Foo-501-spr.chr) to avoid blowing DOS compatibility.

Add GAME_TYPE_UNSPECIFIED as the uninitialised game_type. It's synonymous with
GAME_TYPE_NORMAL, but allows the code to distinguish between a player having
chosen the main game and the player not having made a choice yet.

get_savefile_directory() returns the current savefile directory based on game
type. Direct use of Options.save_dir should be avoided in new code.

player_save_info now tracks game type as well.

--------------------------------------------------------------------------------
9d2d31534b | Darshan Shaligram | 2010-06-19 14:07:49 +0530

Accept ^K/^P and ^J/^N as aliases for up and down arrows in newgame menus.

--------------------------------------------------------------------------------
a8392f9cc9 | David Lawrence Ramsey | 2010-06-18 18:08:15 -0500

Fix pluralization issues when wielding items.
This should really fix Mantis 1584.

--------------------------------------------------------------------------------
1798288c45 | David Lawrence Ramsey | 2010-06-18 18:06:16 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
04fdb0458c | Robert Burnham | 2010-06-18 16:55:17 -0500

Adjust mutation counts for monstrous DS
Monstrous DS miss out entirely on the tier 2 mutations. This change
allows monstrous DS two additional tier 2 mutations, in addition to the
3 body slot facets they recieve (which are all tier 2 mutations as well).

--------------------------------------------------------------------------------
24d8d4755d | David Lawrence Ramsey | 2010-06-18 07:05:39 -0500

Disallow hellephant zombies.

--------------------------------------------------------------------------------
930cc916eb | David Lawrence Ramsey | 2010-06-18 06:04:12 -0500

Update the 0.7 changelog yet again.

--------------------------------------------------------------------------------
852a76a512 | David Lawrence Ramsey | 2010-06-18 06:04:11 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
9c138171dc | Adam Borowski | 2010-06-18 13:02:40 +0200

Fix another case of a broken "long" on 32-bit machines.

--------------------------------------------------------------------------------
3296bb5012 | Mu | 2010-06-18 11:28:47 +0100

Really give circus_mu elephants.

--------------------------------------------------------------------------------
e030e4077e | Mu | 2010-06-18 11:20:39 +0100

Replace elephant slugs in circus_mu with elephants

--------------------------------------------------------------------------------
345c32780b | Jude Brown | 2010-06-18 18:16:54 +1000

Adjust Lair entry vaults for elephants.
They were previously using renamed dire elephants, which were much too
strong for a Lair entry vault. Instead, use normal elephants.

--------------------------------------------------------------------------------
5d32d13ae6 | Jude Brown | 2010-06-18 17:47:29 +1000

Finish the Elephant family.
This one can be blame on Poor_Yurik, who created three tiles: a plain
elephant, a dire elephant, and a "demonic" elephant (affectionately
called a "hellephant" by ##crawl-dev).

The existence of these tiles obligated the creation of the relevant
monsters, and who can resist blinking, fire-breathing elephants from
Hell?

--------------------------------------------------------------------------------
376b0a5d70 | Enne Walker | 2010-06-17 23:27:27 -0400

Use tileidx_t in more places.

--------------------------------------------------------------------------------
b7e5ad2ba8 | Enne Walker | 2010-06-17 22:52:25 -0400

[827] Show hill giant's equipped weapon tile.

--------------------------------------------------------------------------------
67cf5d08e1 | Enne Walker | 2010-06-17 22:30:23 -0400

[1380] Fix underflow on ridiculously long names.
This prevents a crash on character dump.

--------------------------------------------------------------------------------
2d28cf730a | Adam Borowski | 2010-06-18 01:55:00 +0200

Simply stop healing while under the Death's Door, instead of paralyzing the 
player.
There are too many effects you can't fully control -- Makhleb's healing,
levelling up, increasing Fighting, etc.

The only exception I made is Borgnjor's Revification, being necromancy as
well it specifically handles Death's Door, with the old penalties.

--------------------------------------------------------------------------------
33512b4ce0 | Adam Borowski | 2010-06-18 01:26:41 +0200

Disallow berserk while under Death Door's effect.

--------------------------------------------------------------------------------
32d7c0e6e6 | Adam Borowski | 2010-06-18 01:17:24 +0200

Corpse naming troubles: "human corpse of halfling", "the black sheep corpse".

--------------------------------------------------------------------------------
fe193ee01a | Adam Borowski | 2010-06-18 01:14:11 +0200

Fix elephant's tile not loading.

--------------------------------------------------------------------------------
e475c149ab | Adam Borowski | 2010-06-18 01:12:21 +0200

Fix dire elephant's enum -- it's somehow MONS_ELEPHANT.

--------------------------------------------------------------------------------
3cb362c2c2 | Adam Borowski | 2010-06-17 23:40:46 +0200

Poor Yurik's tiles for dire elephant.  Also, plant plain elephants in two lair 
entry vaults.

--------------------------------------------------------------------------------
213eec4e25 | Darshan Shaligram | 2010-06-18 02:03:40 +0530

Fix Corruption not affecting vaults, make it less likely to block previously 
accessible terrain.

--------------------------------------------------------------------------------
3d22f182c7 | Darshan Shaligram | 2010-06-18 01:30:43 +0530

Allow Lugonu corruption to affect crystal walls, make metal walls more 
susceptible to corruption.

--------------------------------------------------------------------------------
903b730830 | Darshan Shaligram | 2010-06-18 01:25:25 +0530

Fix abyss items being generated in walls of abyss rune vaults.

--------------------------------------------------------------------------------
f12157dd0e | Enne Walker | 2010-06-17 15:24:54 -0400

[1713] Fix close button issue on Windows tiles.
<windows.h> was redefining WM_QUIT, so the switch statement with the
previously defined value never got hit.

--------------------------------------------------------------------------------
08553b5d41 | Robert Vollmert | 2010-06-17 20:50:51 +0200

Rename item_def::is_really_valid() to item_def::is_valid(). (Enne)

--------------------------------------------------------------------------------
5b2a72dc51 | Robert Vollmert | 2010-06-17 20:50:27 +0200

Rename item_def::is_valid() to item_def::defined(). (Enne)

--------------------------------------------------------------------------------
f1786fa2e9 | Robert Vollmert | 2010-06-17 20:19:54 +0200

Fix you_can_wear disregarding MUT_CLAWS (#1759).

--------------------------------------------------------------------------------
0b74ee5ed7 | Robert Vollmert | 2010-06-17 20:19:54 +0200

Item generation asserts.
item_def::is_really_valid() checks sub_type bounds.
Use it for some item creation asserts, others to check
valid force types.

subtype max values are now available through get_max_subtype,
and not in three slightly different arrays. The differences
don't seem to cause problems, but we'll see.

--------------------------------------------------------------------------------
ec5d9b9492 | Enne Walker | 2010-06-17 13:39:46 -0400

[1758] Set OOB tile flavor to fix Shoals crash.
For out of bounds cells, it was just using uninitialized memory to select
a tile, which of course picked an invalid one.

--------------------------------------------------------------------------------
42ca54f590 | Enne Walker | 2010-06-17 13:15:37 -0400

[1748] Fix minimap issues with X[.

--------------------------------------------------------------------------------
448be32d86 | David Lawrence Ramsey | 2010-06-17 12:07:18 -0500

Comment fix.

--------------------------------------------------------------------------------
d51c1fd77e | Adam Borowski | 2010-06-17 18:53:07 +0200

Mark blink frogs as phaseshifting.  Give them -3 AC +4 EV to make it more 
plausible.
Ordinary frogs (not toads) have 0 AC, so this brings blink frogs in line -- and
EV 12 vs 8+8 is not out of whack either.

--------------------------------------------------------------------------------
0fe7952336 | Adam Borowski | 2010-06-17 18:27:30 +0200

Don't create piles of useless items in troves.

--------------------------------------------------------------------------------
8e5af65dd1 | David Lawrence Ramsey | 2010-06-17 11:25:09 -0500

Fix punctuation in vampires' blood-drawing message.

--------------------------------------------------------------------------------
cd1cae65ca | Adam Borowski | 2010-06-17 18:10:53 +0200

Monster Phase Shift in melee.

--------------------------------------------------------------------------------
eb69bcc88f | Enne Walker | 2010-06-17 11:05:57 -0400

[1749] Update minimap when clearing exclusions.
The minimap was being updated first, which did nothing because the cells
were stil excluded at that point.

--------------------------------------------------------------------------------
29f9d8b3d0 | David Lawrence Ramsey | 2010-06-17 09:55:50 -0500

Fix off-by-one errors in Jiyva piety checks.

--------------------------------------------------------------------------------
aa4e31eebe | David Lawrence Ramsey | 2010-06-17 09:43:45 -0500

Remove now-inaccurate comments.

--------------------------------------------------------------------------------
b3a47d57cf | Adam Borowski | 2010-06-17 16:41:56 +0200

Make holy blades eudemon (without "blessed") again.  Evil ones don't get 
"cacodemon", though. (Yeah, those bad ugly racists somehow think any demon is 
evil by default, go figure...)
Note that they appear in their base form only on Daevas, in all other cases
you'll have a Blessed Blade instead.

Only "holy scourge of holy wrath" to go!
Death to all what is holy and pure!

--------------------------------------------------------------------------------
2ddfa78ef9 | David Lawrence Ramsey | 2010-06-17 09:37:27 -0500

Mention Jiyva's corrosion protection on the "^" screen.
I think the formula is right, but given the issues in Mantis 1672, there
is some ambiguity.

--------------------------------------------------------------------------------
44f56af005 | David Lawrence Ramsey | 2010-06-17 09:37:26 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
858f2f16a3 | Adam Borowski | 2010-06-17 16:13:30 +0200

Phase Shift for monsters -- as an always-on flag, like monster DMsl.

--------------------------------------------------------------------------------
3c0f0fd490 | Enne Walker | 2010-06-17 10:08:18 -0400

Add good neutral tile to describe view menu.
Gah, so much painful code duplication here.  Menus should really be
changed to use DungeonCellBuffer which can properly interpret flags.

--------------------------------------------------------------------------------
dbce93e41e | Enne Walker | 2010-06-17 10:08:18 -0400

Fix comment grammar in menu.cc.

--------------------------------------------------------------------------------
2492710588 | Enne Walker | 2010-06-17 10:08:18 -0400

[1744] Fix describe view crash on neutral mon.
The flags weren't stripped so it was using an invalid tile idx.

--------------------------------------------------------------------------------
75c9a2f104 | David Lawrence Ramsey | 2010-06-17 09:07:29 -0500

Add wording and punctuation fixes.

--------------------------------------------------------------------------------
5f542f492a | Adam Borowski | 2010-06-17 15:50:56 +0200

Descs for dwarves and spriggans.

--------------------------------------------------------------------------------
9669f0be51 | Adam Borowski | 2010-06-17 15:12:13 +0200

Give some spriggan riders a blowgun.

--------------------------------------------------------------------------------
0b41f35df7 | Adam Borowski | 2010-06-17 15:02:11 +0200

Show DMsl when looking at the monster.

--------------------------------------------------------------------------------
fdbcd41622 | Adam Borowski | 2010-06-17 15:02:11 +0200

Make monster DMsl an actual flag.

--------------------------------------------------------------------------------
aa066d0681 | Adam Borowski | 2010-06-17 15:02:11 +0200

Make monster->flags 64 bit.

--------------------------------------------------------------------------------
cdb2fd2e9f | Adam Borowski | 2010-06-17 15:02:11 +0200

Spriggans: defenders and the Enchantress.

--------------------------------------------------------------------------------
7e69d92210 | Darshan Shaligram | 2010-06-17 18:18:44 +0530

Fix abyss area gen destroying abyss_exit vaults (Mu_).

--------------------------------------------------------------------------------
fe6c613cf0 | David Lawrence Ramsey | 2010-06-17 07:45:34 -0500

Change the last of (very) ugly things' attack types to trunk-slap.
Constricting is supposed to be limited to crushing attacks, and giving
(very) ugly things trunks seems more flavorful anyway, seeing as they
can get beaks, tentacles, and the like.

--------------------------------------------------------------------------------
1971a6be4a | David Lawrence Ramsey | 2010-06-17 07:38:18 -0500

Revert renames: blessed blade -> holy blade, trishula -> holy trishula.

--------------------------------------------------------------------------------
75ab1bf1d2 | Adam Borowski | 2010-06-17 13:02:48 +0200

Add riders to a vault.

--------------------------------------------------------------------------------
1591c267c9 | Adam Borowski | 2010-06-17 12:48:44 +0200

Poor_Yurik's spriggan firefly riders.

--------------------------------------------------------------------------------
7d372e36bd | Adam Borowski | 2010-06-17 11:24:05 +0200

Show Death's Door and Death Channel on the status bar [1774].

--------------------------------------------------------------------------------
1babb48282 | Robert Vollmert | 2010-06-17 10:39:40 +0200

Clean up brace placement.

--------------------------------------------------------------------------------
9e39fb4d79 | Jude Brown | 2010-06-17 17:48:30 +1000

Don't ruin vaults when building the Lair.

--------------------------------------------------------------------------------
04781000dd | Jude Brown | 2010-06-17 13:52:17 +1000

Some minor elephant tweaks (HD, HP).

--------------------------------------------------------------------------------
22be3fc5a7 | Enne Walker | 2010-06-16 23:17:07 -0400

Use enums for first and last draconian tiles.

--------------------------------------------------------------------------------
94a07b34a5 | Enne Walker | 2010-06-16 23:14:24 -0400

Fix underflow error hiding hair and beards.
tileidx_t got changed to an unsigned int, which caused the checks in
tilep_calc_flags to fail.  There shouldn't be a subtraction anyway.

--------------------------------------------------------------------------------
3863041125 | Enne Walker | 2010-06-16 23:03:13 -0400

Remove use of randomness in tilep_race_default.

--------------------------------------------------------------------------------
570c2f9ebe | Enne Walker | 2010-06-16 22:53:21 -0400

Binary gender is no longer required.
New species tile art is no longer required to conform to binary genders.
All references to player gender have been removed.  All the art is still
there, but the default gender presentations have been swapped around
arbitrarily.

--------------------------------------------------------------------------------
0aff1a109e | Jude Brown | 2010-06-17 11:13:42 +1000

Add new monster type: dire elephant.
Specifically designed for inclusion in Lair:8 vaults, it's not currently
being placed anywhere in the Lair. It's considerably harder than a
normal death yak, though its stats may require adjustment.

--------------------------------------------------------------------------------
e44a78ea49 | Jude Brown | 2010-06-17 11:00:37 +1000

Fix Mantis #1771: incorrect Pikel flavour.

--------------------------------------------------------------------------------
f4b71d1cfe | Darshan Shaligram | 2010-06-17 05:32:49 +0530

Limit shallow portal vaults to 1-ghost-max (ogaz).

--------------------------------------------------------------------------------
41c3356beb | Darshan Shaligram | 2010-06-17 05:22:24 +0530

Reduce extra-ghost code: 1-ghost level limit is now D:1-8, Lair:1, Orc:1 only, 
other levels get MAX_GHOSTS, Temple gets 0 ghosts.

--------------------------------------------------------------------------------
2129020b54 | Darshan Shaligram | 2010-06-17 04:43:28 +0530

Improve hell knight attack damage and hp.

--------------------------------------------------------------------------------
a7636882d7 | Adam Borowski | 2010-06-17 00:58:24 +0200

Fix inverted logic.
And hey, in the tests it worked ('cuz the user was the same...).

--------------------------------------------------------------------------------
8dc17e8307 | Darshan Shaligram | 2010-06-17 03:29:52 +0530

Give Tiamat and Rupert more interesting weapons (ogaz).
Drop Tiamat's primary attack damage slightly to (partly) compensate for her
better equipment.

--------------------------------------------------------------------------------
1fbc5cd20a | Darshan Shaligram | 2010-06-16 22:16:01 +0530

[1769] Fix dungeon overview referencing buggy portals in the Abyss (MarvinPA).

--------------------------------------------------------------------------------
ec644fd768 | Darshan Shaligram | 2010-06-16 21:43:32 +0530

[1769] Fix vault maplines not being saved in vault_placement (MarvinPA).

--------------------------------------------------------------------------------
1c51d17dc9 | Darshan Shaligram | 2010-06-16 18:51:06 +0530

[1769] Fix abyss vault placements not being updated correctly when abyss shifts 
(MarvinPA).

--------------------------------------------------------------------------------
55d86b3c01 | David Lawrence Ramsey | 2010-06-16 08:01:51 -0500

Per KiloByte's suggestion, describe trishulas as tridents again.

--------------------------------------------------------------------------------
cf3d4fd3b8 | Enne Walker | 2010-06-16 08:17:44 -0400

[1768] Add Poor_Yurik's new mummy player tiles.

--------------------------------------------------------------------------------
1f522d333c | Jude Brown | 2010-06-16 22:15:04 +1000

Abyss vaults!
Go forth and plunder, my lichlings.

--------------------------------------------------------------------------------
66713a5979 | David Lawrence Ramsey | 2010-06-16 07:11:14 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
2a4b544263 | David Lawrence Ramsey | 2010-06-16 07:01:42 -0500

Add code to actually display the trishula tiles.

--------------------------------------------------------------------------------
083ecaa92f | David Lawrence Ramsey | 2010-06-16 07:01:14 -0500

In tiles, rename the blessed blade to the holy blade, to match the code.

--------------------------------------------------------------------------------
55a156ab41 | David Lawrence Ramsey | 2010-06-16 06:59:51 -0500

Rename the trishula to the holy trishula, like other blessed base types.

--------------------------------------------------------------------------------
811e028f49 | David Lawrence Ramsey | 2010-06-16 06:14:25 -0500

Ensure that trishulas, if generated, always get the holy wrath brand.

--------------------------------------------------------------------------------
dddd1abb0c | David Lawrence Ramsey | 2010-06-16 06:05:31 -0500

Add proper value multiplier for trishulas.

--------------------------------------------------------------------------------
23b8d28a08 | David Lawrence Ramsey | 2010-06-16 06:04:00 -0500

Set trishula acquirement weight to 0, and fix its placement.

--------------------------------------------------------------------------------
7e4deed129 | David Lawrence Ramsey | 2010-06-16 06:01:51 -0500

Comment fix.

--------------------------------------------------------------------------------
1875958ef4 | David Lawrence Ramsey | 2010-06-16 06:00:36 -0500

Shorten TSO's weapon blessing description a bit.

--------------------------------------------------------------------------------
3bc374cf96 | David Lawrence Ramsey | 2010-06-16 05:59:07 -0500

Tweak trishula description.

--------------------------------------------------------------------------------
701d0f2b51 | Adam Borowski | 2010-06-16 11:56:32 +0200

Allow blessing demon whips to trishulas.

--------------------------------------------------------------------------------
8ba4bc0a77 | Adam Borowski | 2010-06-16 11:48:06 +0200

Tiles for trishula.

--------------------------------------------------------------------------------
10de466f6a | Adam Borowski | 2010-06-16 10:23:57 +0200

Sprigganize a vault, but only deep enough.

--------------------------------------------------------------------------------
f88330556d | Adam Borowski | 2010-06-16 10:23:49 +0200

Use a real druid, not a statue.  No point in making them less unique.
He may wander off from the patch of trees, yeah, but with "patrolling" he
should return there, and there are other spells but Awaken Forest.

Also, ordinary dungeon floor looks abysmal, let's use lair floor.

--------------------------------------------------------------------------------
fe152b215c | David Lawrence Ramsey | 2010-06-15 22:04:30 -0500

Implement Mantis 1757: Change Rupert's color to lightred.
This avoids potential confusion when he's berserk.

--------------------------------------------------------------------------------
2124b5c755 | David Lawrence Ramsey | 2010-06-15 20:57:59 -0500

Make Invisibility not affect glowing monsters, as Corona doesn't.

--------------------------------------------------------------------------------
7d32442f24 | David Lawrence Ramsey | 2010-06-15 20:57:48 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
09520fc744 | Enne Walker | 2010-06-15 20:09:38 -0400

Support flash_view() in tiles mode.

--------------------------------------------------------------------------------
f55284a296 | Adam Borowski | 2010-06-16 01:49:40 +0200

Make druids summon wolves and bears, not mushrooms.
There were problems with Fedhas worshippers who would immediately take
over the summons.

--------------------------------------------------------------------------------
8d2223afce | Charles Otto | 2010-06-15 19:49:09 -0400

Rename connectors "tentacle segment"s
Probably need to rename the tentacle ends also.

--------------------------------------------------------------------------------
1fdeea547c | Charles Otto | 2010-06-15 19:48:12 -0400

Restrict tentacle movement to squares seen by the kraken

--------------------------------------------------------------------------------
26b1832245 | Charles Otto | 2010-06-15 18:53:23 -0400

Remove the kraken tentacle movement clamp since it is no longer used.

--------------------------------------------------------------------------------
98c3545cf9 | Adam Borowski | 2010-06-16 00:42:49 +0200

A statue vault with Awaken Forest.

--------------------------------------------------------------------------------
d60db49b71 | Robert Burnham | 2010-06-15 16:38:44 -0500

Change Jiyva mutations to not be bad
Jiyva mutations had the "is bad" flag set to true, resulting in
the Jiyva god ability clearing out those mutations instead of actual
bad ones. This change simply changes all of the "true" flags for
jiyva mutations to "false".

--------------------------------------------------------------------------------
f769d2da70 | David Lawrence Ramsey | 2010-06-15 11:49:26 -0500

Fix missing punctuation in monster disappearance message.

--------------------------------------------------------------------------------
a6adc0a40c | Robert Burnham | 2010-06-15 11:18:56 -0500

Adjust PBD duration setting
Will only set PBD when the new duration is greater than old duration.

--------------------------------------------------------------------------------
2a3c380b49 | Adam Borowski | 2010-06-15 16:35:41 +0200

Allow "useful" in monster spec as well.
It means "useful for the player", monsters won't ever accept an item they
can't use even without this specification.

--------------------------------------------------------------------------------
e476de5af4 | Adam Borowski | 2010-06-15 16:20:32 +0200

Make most items in trovel guaranteed to be usable (Mantis 1692)

--------------------------------------------------------------------------------
971354337a | Adam Borowski | 2010-06-15 16:20:32 +0200

Add an item descriptor "useful" which weeds out items you can't use at all.

--------------------------------------------------------------------------------
0f766b78bb | Adam Borowski | 2010-06-15 16:17:59 +0200

Windows has no usleep(), emulate.

--------------------------------------------------------------------------------
5f7d7f2fe0 | David Ploog | 2010-06-15 15:46:38 +0200

Add comments.

--------------------------------------------------------------------------------
ec7d054136 | Robert Vollmert | 2010-06-15 15:36:22 +0200

Revert "Disable shaft traps on D:1 and D:2."
This reverts commit cc1af4b350d76034283889ec7816558170c15868.

After communication with dpeg and due.

--------------------------------------------------------------------------------
adde3241bc | Adam Borowski | 2010-06-15 11:23:26 +0200

Fix zombie generation crash.

--------------------------------------------------------------------------------
e7a989c3f2 | Charles Otto | 2010-06-14 21:51:00 -0400

Cleanup and special casing for kraken tentacles
Exclude connector segments from mislead. Kill off connectors when
dropping tentacles, propagate attitude changes to connectors.
Propagate damage to connector segments to tentacle ends.

--------------------------------------------------------------------------------
effae6884c | David Lawrence Ramsey | 2010-06-14 19:21:57 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
09f8f1814d | Charles Otto | 2010-06-14 19:15:38 -0400

Don't consider tentacles firewood

--------------------------------------------------------------------------------
6b4570bdab | Darshan Shaligram | 2010-06-15 02:42:46 +0530

Reduce noise travel distance by 1/3 for Sprint.

--------------------------------------------------------------------------------
f94b218f2e | Robert Burnham | 2010-06-14 15:32:25 -0500

Demonspawn conflicting mutations
Mantis item 1753: temporary mutations which conflict with a ds
mutation that is about to be gained will be removed by the ds
mutation, but that level of ds mutation is forever lost. This
can result (when a player has - for example - Frail 1 [-10%hp])
in being xl 27 but having only 2 of the 3 levels of a facet
(Robust 2 [+20%hp]) instead of all 3 (Robust 3 [+30%hp]).

--------------------------------------------------------------------------------
123089f280 | Robert Burnham | 2010-06-14 15:32:25 -0500

Fix missing #ifdef for milestone

--------------------------------------------------------------------------------
2465aa8bae | Robert Burnham | 2010-06-14 15:32:25 -0500

Remove deprecated special-case code
Sapprovorous and Gourmand were special cased to be not allowed
as random mutations (as they should be). However, they already
have raritys of 0, which prevents them from being acquired
anyways. If mutate blocks of code are resulting in either
of these mutations, those blocks of code need adjusting, not
mutate()

--------------------------------------------------------------------------------
5555eebb69 | Robert Burnham | 2010-06-14 15:32:25 -0500

Add milestone for monstrous
Makes querying monstrous demonspawn feasible through henzell.

--------------------------------------------------------------------------------
0686a9b9f2 | Darshan Shaligram | 2010-06-15 00:16:38 +0530

Make Crawl open sqlite dbs using readonly connections where possible, and don't 
create SQLite transactions unless updating the db.
Crawl can now correctly handle the case where one or more Crawl processes are
running, the database source text files are modified, and a new Crawl is
started. The new Crawl will update the db with the new data, which the old
Crawl processes will also see immediately.

--------------------------------------------------------------------------------
174cd80b10 | Darshan Shaligram | 2010-06-14 23:35:18 +0530

Use dgn_safe_place_map instead of dgn_place_map in abyss.cc and decks.cc to 
handle map_load_exceptions correctly.

--------------------------------------------------------------------------------
cbbe1f3fe3 | Robert Burnham | 2010-06-14 11:52:08 -0500

Fix typo

--------------------------------------------------------------------------------
e3293a3f52 | David Lawrence Ramsey | 2010-06-14 11:41:37 -0500

Fix Mantis 1756: Typos in recharge-related rod descriptions.

--------------------------------------------------------------------------------
30a025b99c | Luca Barbieri | 2010-06-14 11:15:39 +0200

shut up some clang warnings
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
cc1af4b350 | Jude Brown | 2010-06-14 17:54:31 +1000

Disable shaft traps on D:1 and D:2.
These were previously enabled with the reasoning that they had a chance
of being generated as detected. The generation of detected shafts is
nowhere near high enough to justify this, and shaft traps at these
levels are basically a death sentence.

--------------------------------------------------------------------------------
c365caf02b | Charles Otto | 2010-06-13 23:20:58 -0400

Let the main kraken body move again
There are still some bugs with this - in some circumstance the head
will attack the tentacles (just when the player is out of sight? not
really sure).

Damage propagation/tentacle cleanup still not handled.

--------------------------------------------------------------------------------
521d954692 | Charles Otto | 2010-06-13 20:27:12 -0400

First step towards krakens with multi-tile tentacles
Starting towards having kraken tentacles physically joined to the main
body by a chain of sub-monsters. This implementation isn't functional
in various ways, and is probably inefficient, but what can you do.

--------------------------------------------------------------------------------
5c2d51179b | Adam Borowski | 2010-06-14 00:18:54 +0200

Actually place the main reward in ice_cave_small_03.

--------------------------------------------------------------------------------
8daa06edec | Darshan Shaligram | 2010-06-14 03:00:42 +0530

Make Crawl react better to seeing des files and database text files modified 
and recompiled by new Crawl processes while older processes are running.
When mapdef.cc detects that a .dsc file is out of sync, it throws an exception
that dungeon.cc catches. dungeon.cc then discards all loaded maps and reloads
then from the map index (.idx) files.

The old behaviour was to create a panic save and exit for out-of-sync .dsc
files, which is not ideal since the panic save code is rarely used and tends to
bitrot.

When regenerating text database files in DGL installs, the game no longer
unlinks the old .db file, and will instead update the old file with the
new db keys.

None of this code should be relevant to single-user installs.

--------------------------------------------------------------------------------
b115954e0e | David Ploog | 2010-06-13 21:58:04 +0200

Some randomisation for Yiuf's cottage (Darshan).
Apart from flavour, it's now not always trivial to get six shots at Yiuf.

--------------------------------------------------------------------------------
831432f3fb | David Lawrence Ramsey | 2010-06-13 14:29:01 -0500

Set the acquirement weight of holy scourges to 0.
They're supposed to be special gifts of TSO, and holy blades have the
same acquirement weight.

--------------------------------------------------------------------------------
85b15386b7 | David Lawrence Ramsey | 2010-06-13 13:10:52 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ab307f1838 | Darshan Shaligram | 2010-06-13 23:31:15 +0530

[1524] Fix autoexplore not reporting items entering fov if autopickup is turned 
off.

--------------------------------------------------------------------------------
1ac3122a69 | David Lawrence Ramsey | 2010-06-13 12:56:01 -0500

Remove now-inaccurate comments.

--------------------------------------------------------------------------------
50a4ad6ae5 | Darshan Shaligram | 2010-06-13 21:03:32 +0530

Define key_is_escape in terms of CASE_ESCAPE to reduce duplication.

--------------------------------------------------------------------------------
363511407e | Charles Otto | 2010-06-13 11:30:17 -0400

Always consider fruit useful to Fedhas worshipers
This way Kobolds will still autopickup fruit even though they can't eat
it.

--------------------------------------------------------------------------------
cf3bc5c2d7 | Darshan Shaligram | 2010-06-13 20:33:39 +0530

Make ^G equivalent to Escape in all prompts for the Emacs users out there 
(yours truly included).

--------------------------------------------------------------------------------
6255dafc92 | Darshan Shaligram | 2010-06-13 20:33:39 +0530

[1569] Reprint targeting prompt if move_is_ok() returned false.

--------------------------------------------------------------------------------
1575d82cc5 | David Lawrence Ramsey | 2010-06-13 10:01:50 -0500

Add spacing fix.

--------------------------------------------------------------------------------
38a3ab01c5 | Adam Borowski | 2010-06-13 16:57:10 +0200

Allow private save dirs (SAVEDIR=~/.crawl/) (JoachimSchipper)

--------------------------------------------------------------------------------
16b77eb503 | David Lawrence Ramsey | 2010-06-13 09:44:40 -0500

When checking whether corpses are useless, check Yred penance.
This is done elsewhere with e.g. amulets of rage and Trog.

--------------------------------------------------------------------------------
ebf9c89516 | David Ploog | 2010-06-13 16:37:42 +0200

A single line message explaining the game's objective.
Also made both the first greeting and the new message appear in yellow,
so as to stand apart from the help message.

--------------------------------------------------------------------------------
2b4e4f9f25 | Darshan Shaligram | 2010-06-13 19:07:40 +0530

[1745] Fix PC not starting at abyss centre when visiting the abyss.

--------------------------------------------------------------------------------
fbf3314d00 | Darshan Shaligram | 2010-06-13 04:34:15 +0530

Enable versioned .des cache dirs only for dgl builds (kilobyte).

--------------------------------------------------------------------------------
618546a598 | David Lawrence Ramsey | 2010-06-12 17:56:30 -0500

Fix wording.

--------------------------------------------------------------------------------
2e7718d5fe | Adam Borowski | 2010-06-13 00:30:58 +0200

Fixedrandart: faerie dragon armour (the Enchantress only).

--------------------------------------------------------------------------------
4e7b912639 | Darshan Shaligram | 2010-06-13 02:13:30 +0530

Compile .des and database files into a versioned cache directory under the 
savedir so that different save-compatible Crawls can share a common savedir 
while having different data dirs.

--------------------------------------------------------------------------------
bc98f6a58c | Darshan Shaligram | 2010-06-13 00:58:31 +0530

Free memory used for Lua chunks after compiling .des files. This considerably 
reduces heap use in the first Crawl process to run in a fresh install.

--------------------------------------------------------------------------------
c004b39053 | David Lawrence Ramsey | 2010-06-12 13:40:29 -0500

Mention a monster's glowing status on its description screen.

--------------------------------------------------------------------------------
167b78f786 | David Lawrence Ramsey | 2010-06-12 12:15:44 -0500

Mark ball lightnings as glowing with light.

--------------------------------------------------------------------------------
269e9b2da4 | David Lawrence Ramsey | 2010-06-12 12:01:58 -0500

Per Mantis 1729, differentiate between types of monster glow.
There are now two kinds: glowing with light, and glowing with radiation.
Currently, all monsters with mutagenic corpses that glow are assumed to
be glowing with radiation ([very] ugly things, eyes of draining, and
glowing shapeshifters), while all other monsters that glow are assumed
to be glowing with light.

There are no game-visible changes from this, as the Corona spell
currently treats both types of glow equally.

--------------------------------------------------------------------------------
793f48f2aa | David Lawrence Ramsey | 2010-06-12 11:59:31 -0500

Tweak the description of shining eyes.

--------------------------------------------------------------------------------
995a87c047 | David Lawrence Ramsey | 2010-06-12 11:58:55 -0500

Mark sun demons as glowing, as it matches their description.

--------------------------------------------------------------------------------
69f84fcbb4 | David Lawrence Ramsey | 2010-06-12 11:08:13 -0500

Add wording fix.

--------------------------------------------------------------------------------
bd92da8ff6 | David Lawrence Ramsey | 2010-06-12 11:08:12 -0500

Add more formatting fixes.

--------------------------------------------------------------------------------
e33677c850 | Darshan Shaligram | 2010-06-12 21:32:50 +0530

Update crawl-ref-cia to recognise Mu.

--------------------------------------------------------------------------------
fbf15dd5c2 | muuuuu@users.sourceforge.net | 2010-06-12 16:41:47 +0100

Fix coc_mu having diggable edges.

--------------------------------------------------------------------------------
596c447181 | David Lawrence Ramsey | 2010-06-12 10:39:59 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
ac1bd33e62 | David Lawrence Ramsey | 2010-06-12 10:38:45 -0500

Add missing fourth (non)attack for draconian monks.

--------------------------------------------------------------------------------
75ceadf8b8 | Darshan Shaligram | 2010-06-12 20:43:09 +0530

Parse ugly thing colours correctly in maps.

--------------------------------------------------------------------------------
c48789a383 | Darshan Shaligram | 2010-06-12 20:43:09 +0530

Correct deep elf monster level-up paths.
summoner -> demonologist/sorcerer; conjurer -> annihilator

(was) summoner -> demonologist; conjurer -> sorcerer

--------------------------------------------------------------------------------
96eedbcecf | David Lawrence Ramsey | 2010-06-12 10:12:01 -0500

Add missing fourth (non)attack for demonic crawlers.

--------------------------------------------------------------------------------
bbda482e33 | Robert Burnham | 2010-06-12 10:08:46 -0500

Fix mon-util.cc:1175 crashes associated with spiny
A shift in the spiny code could cause monsters which had just died
to attack a player for the rest of the round, resulting in assert(smc)
to unexpectedly crash the player out.

Add check after spines effect to break out if attacker has died.

--------------------------------------------------------------------------------
5bdb1a7a78 | David Lawrence Ramsey | 2010-06-11 18:00:08 -0500

Apply Fangorn's patch to fix Mantis 1734.

--------------------------------------------------------------------------------
b91cba854f | David Lawrence Ramsey | 2010-06-11 10:19:49 -0500

Typo fixes.

--------------------------------------------------------------------------------
924690e015 | Adam Borowski | 2010-06-11 15:45:59 +0200

Don't run epilogues, just markers, during startup before the screen is drawn. 
They do get run a bit later, which looks nicer.  My previous commit made them 
duplicated since I didn't notice that special case.

--------------------------------------------------------------------------------
e7ac8b1c69 | Adam Borowski | 2010-06-11 14:35:49 +0200

Fix markers and epilogues not being run in vaults on the game start.
Markers actually did get run, but only after saving the map, which made
MonPropsMarker throw a fit.

--------------------------------------------------------------------------------
e20140506f | Adam Borowski | 2010-06-11 14:35:49 +0200

A new entry vault, with all player species behind bars.
Parts of shiori's version are redundant, but I didn't remove them yet.

--------------------------------------------------------------------------------
7369433a3a | Adam Borowski | 2010-06-11 14:35:49 +0200

An iron grate tile.

--------------------------------------------------------------------------------
09402d6b6a | Adam Borowski | 2010-06-11 14:35:49 +0200

Add a tile for halflings and demonspawn.  Kenku is still missing!

--------------------------------------------------------------------------------
acfa4e354c | Darshan Shaligram | 2010-06-11 07:15:14 +0530

Enable abyss exit vaults (tagged "abyss_exit").

--------------------------------------------------------------------------------
3f5bf9d0ef | Darshan Shaligram | 2010-06-11 06:16:17 +0530

Remove unnecessary tag filters when picking maps by place and depth.
Place filters are not necessary for layout, place_unique, and temple_* maps
because none of these maps have an associated PLACE:

Depth filters are no longer necessary for pan and bazaar maps because they have
no depth set, nor for layout maps (no depth here either).

--------------------------------------------------------------------------------
04ee20b2bf | David Lawrence Ramsey | 2010-06-10 17:26:46 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
19e9f807a9 | Robert Burnham | 2010-06-10 15:54:43 -0500

Shift in spiny code
Move spiny code upwards within a !shield_blocked block for cleanliness.

--------------------------------------------------------------------------------
e11a34631c | Robert Burnham | 2010-06-10 15:40:43 -0500

Modularize get_tension and demonic guardian
Splits get_tension into get_monster_tension without affecting the
functionality of get_tension so that one can easily obtain the tension
value of an individual monster. This change facilitates the change
in guardian which allows for the number of guardians to be balanced
based on the current tension.

This is achieved by looping through and manually totalling the tension
values for each monster, at any given point if the tension is less
than random2(mutlevel * 5), remove the next monster we iterate to
that is friendly and a demonic guardian.

Also nerfs the spawn rate of demons quite significantly.

--------------------------------------------------------------------------------
9d244e2421 | Robert Burnham | 2010-06-10 15:40:43 -0500

Rewrite DS mutation selection
Previously monstrous mutation selection was done in its own (poorly)
written function which made numerous presumptions on the structure
of the mutations in question (3 mutations per facet, etc.). Furthermore
it was becoming apparent that there were inadvertent selection bugs
which were resulting in conflicting mutations being selected that
would never actually appear (because the conflict forced the mut
to fail).

New code integrates the monstrous selection into the original
_select_ds_mutations in such a manner that is flexible enough
to allow for >3 mutation facets and a varying number of body slot
facets. Hopefully the new code also addresses the bugs arising
where DS are missing mutations ; testing seems to indicate this is
true.

--------------------------------------------------------------------------------
a86090236c | Robert Burnham | 2010-06-10 15:40:43 -0500

Add dodged message for spiny
To improve transparency of the spiny mutation, nests logic and
prints a simple monster message if spines proc'd but was dodged
by the defending monster.

--------------------------------------------------------------------------------
af499d92a4 | Enne Walker | 2010-06-10 16:08:42 -0400

Use ID offsets for tiles instead of known types.

--------------------------------------------------------------------------------
ca7af22713 | Enne Walker | 2010-06-10 16:08:42 -0400

Fix bug where ring unrandart tiles were unused.

--------------------------------------------------------------------------------
b91a5d95fe | Enne Walker | 2010-06-10 16:08:42 -0400

Use tileidx_t in tiledgnbuf instead of uint.

--------------------------------------------------------------------------------
4b13efa986 | Enne Walker | 2010-06-10 16:08:30 -0400

Draw base item tile for identified types.
This is the "fix" for the previous commit to remove baking the base item
tiles underneath their labels in the texture.  Instead, we'll just draw
the two tiles separately.

--------------------------------------------------------------------------------
a07a15a073 | Enne Walker | 2010-06-10 16:06:09 -0400

Remove special logic to bake identified items into the main texture.

--------------------------------------------------------------------------------
b567975d12 | Robert Vollmert | 2010-06-10 14:25:38 +0200

Remove obsolete "force" parameter to move_player_to_grid.
move_player_to_grid now never fails.

--------------------------------------------------------------------------------
b1593da049 | Robert Vollmert | 2010-06-10 14:23:44 +0200

Swap with monster between checking location and applying effects.
Fixes issue #1722, where the code tried to swap with a monster
after falling through a shaft.

For this, the abort checks were moved out of move_player_to_grid
into check_moveto.

--------------------------------------------------------------------------------
8e9347d372 | Enne Walker | 2010-06-09 21:49:51 -0400

Assign tile dolls random trousers for SHOW_EQUIP.
This way they don't have to be hardcoded in dolls.txt.

--------------------------------------------------------------------------------
1583ebae15 | Enne Walker | 2010-06-09 21:49:51 -0400

Fix hardcoded "classic_colours" option in tiles.
Instead of using item colour (which is set only at item create time and
depends on the colour options), use a random number stored with each
item.  Through the magic of member rearranging, this new value doesn't
take up extra space.  Also, rearrange the doll tiles so that reasonable,
non-unrandart and non-goofy tiles are contiguous so that we can use this
new random value to select one of them.

On the upside, more tiles are now used for dolls.  Also, this is a prereq
for a glyphs-in-tiles mode.

--------------------------------------------------------------------------------
5b7fb987cc | Enne Walker | 2010-06-09 21:49:50 -0400

Fix tile dolls so trousers are drawn under boots.

--------------------------------------------------------------------------------
c8c6a8c55d | Enne Walker | 2010-06-09 21:49:44 -0400

Better document special player tiles.

--------------------------------------------------------------------------------
c2f1877ef1 | David Lawrence Ramsey | 2010-06-09 17:54:34 -0500

Only allow divine weapon blessing of actual weapons.
This fixes at least part of Mantis 1718.

--------------------------------------------------------------------------------
2d0ab21c31 | David Lawrence Ramsey | 2010-06-09 17:29:38 -0500

Tweak tomb disappearance messages.

--------------------------------------------------------------------------------
27cf7ac0bb | David Lawrence Ramsey | 2010-06-09 17:16:24 -0500

Add spacing fix.

--------------------------------------------------------------------------------
7400cf0913 | David Lawrence Ramsey | 2010-06-09 17:15:53 -0500

Display a different message for a prematurely disappearing tomb.

--------------------------------------------------------------------------------
07b4806b65 | David Lawrence Ramsey | 2010-06-09 17:04:59 -0500

Update the description of the Imprison ability.

--------------------------------------------------------------------------------
1028490fa4 | David Lawrence Ramsey | 2010-06-09 17:01:33 -0500

Make Recite effects more likely if they're due to imprisonment.

--------------------------------------------------------------------------------
1777330a2f | Enne Walker | 2010-06-09 16:13:27 -0400

Add compile checks for tile brands / ID types.
Now when somebody adds a new brand or a new potion, there won't be a bug
report about a potion looking like some other item entirely because the
wrong tile was implicitly being used.

--------------------------------------------------------------------------------
1cc7a59057 | Enne Walker | 2010-06-09 16:13:21 -0400

Replace item.special magic numbers with enums.

--------------------------------------------------------------------------------
5f7ba71ba7 | Enne Walker | 2010-06-09 10:33:13 -0400

Change player last_clicked globals to members.

--------------------------------------------------------------------------------
85ee7aeeaf | Enne Walker | 2010-06-09 10:33:12 -0400

Remove unneeded detect_items USE_TILE #ifdef.
This is now handled properly by tileidx_out_of_los.

--------------------------------------------------------------------------------
e4312547ff | Enne Walker | 2010-06-09 10:33:12 -0400

Refactor out tiles-specific forget_map code.

--------------------------------------------------------------------------------
0dac8b60c8 | Enne Walker | 2010-06-09 10:33:12 -0400

Update tiles minimap when clearing the map.

--------------------------------------------------------------------------------
9387d936cf | Enne Walker | 2010-06-09 10:33:11 -0400

Change update_minimap to use coord_def.

--------------------------------------------------------------------------------
5614acfac2 | Enne Walker | 2010-06-09 10:33:11 -0400

Remove unneeded USE_TILE #ifdefs for chars.
Now that tileidx_unseen doesn't depend on hardcoded glyphs, there's no
need for bizarre #ifdef logic.

--------------------------------------------------------------------------------
763c5d43a9 | Robert Vollmert | 2010-06-09 15:13:58 +0200

Remove obsolete option macro_meta_entry.

--------------------------------------------------------------------------------
e7c19c992c | Robert Vollmert | 2010-06-09 15:13:58 +0200

Two modes for macro entry.
After the recent change to accept raw keys, it wasn't possible
to enter escapes anymore (e.g. \{13} for Enter), so it wasn't
possible at all to macro Enter.

There's now two modes, by entering 'm' or 'M' at the macro
prompt.

--------------------------------------------------------------------------------
f5043089e6 | Adam Borowski | 2010-06-09 15:01:03 +0200

Death messages for Yred and Kiku.

--------------------------------------------------------------------------------
bf67dade96 | Robert Vollmert | 2010-06-09 13:51:30 +0200

Fix Tab not working for character choice with dgamelaunch. (#1708)

--------------------------------------------------------------------------------
0815031d83 | Adam Borowski | 2010-06-09 13:38:09 +0200

Fix the crash on "?/M mimic". [1705]

--------------------------------------------------------------------------------
70fa10feee | Robert Vollmert | 2010-06-09 13:10:24 +0200

Don't make rings of regeneration cause Deep Dwarves to hunger. (#1715)

--------------------------------------------------------------------------------
811e6164dc | Robert Vollmert | 2010-06-09 12:43:53 +0200

Call che_handle_change on excommunication. (#1720)
For 0.7, this just fixes the messaging and stat redraw.

--------------------------------------------------------------------------------
328fef862c | Robert Vollmert | 2010-06-09 11:52:09 +0200

Get rid of non-coord_def distance, grid_distance.

--------------------------------------------------------------------------------
575dd19e71 | Enne Walker | 2010-06-08 22:03:06 -0400

Use the unseen monster tile for sensed monsters.
It probably needs a replacement, but it's better than using the "program
bug" tile.

--------------------------------------------------------------------------------
2d900bb4c5 | Enne Walker | 2010-06-08 21:36:24 -0400

Properly init missing tile info from show_type.
This also removes the now uneeded (and entirely broken) tileidx_unseen
function.  Instead, when loading saves that don't have a tile tag, use
show_type from the map_knowledge to determine what the player can see.

--------------------------------------------------------------------------------
b4373cee16 | Enne Walker | 2010-06-08 21:36:24 -0400

Remove unneeded tiles #ifdef in _update_monster.
Instead, handle the merged slime creature monster type properly in
tilepick.

--------------------------------------------------------------------------------
24970e8a4a | Enne Walker | 2010-06-08 21:36:24 -0400

Simplify tile_place_monster function.
As tileidx_out_of_los now handles detected monsters implicitly, there's
no need to write monsters to env.tile_bk_fg or to handle detected
monsters at all except through map_knowledge.

--------------------------------------------------------------------------------
324a8f17c3 | Enne Walker | 2010-06-08 21:36:23 -0400

Add tileidx_out_of_los function.
This function properly handles merging player memory with detected
terrain, items, and monsters through map_knowledge, rather than having
the detecting functions themselves write tile info themselves.

This also fixes a magic mapping bug where the real feature was being
displayed, rather than the magic_map_base_feat.

--------------------------------------------------------------------------------
5d16a7dbfa | Enne Walker | 2010-06-08 21:36:23 -0400

Refactor tileidx_monster function.
This splits this function out into one function that knows about the
monster info and one that only knows about the monster type.

--------------------------------------------------------------------------------
99492108ec | Enne Walker | 2010-06-08 21:36:23 -0400

Move tile-specific monprops func into tilepick.cc.

--------------------------------------------------------------------------------
b384af3456 | Enne Walker | 2010-06-08 21:36:18 -0400

Refactor tileidx_feature function.
This splits it out into a function that uses grid-specific knowledge and
an assumption that the player has seen the tile itself and another more
general function to just find a dungeon_feature_type to tile mapping.

--------------------------------------------------------------------------------
97836cfa4e | Enne Walker | 2010-06-08 21:33:33 -0400

Remove tiles-specific map knowledge flag logic.
This doesn't appear to be used by anything.

--------------------------------------------------------------------------------
5837ba9422 | Enne Walker | 2010-06-08 21:33:33 -0400

Add tileidx_out_of_bounds function.

--------------------------------------------------------------------------------
919dd7e782 | Enne Walker | 2010-06-08 21:33:33 -0400

Add compile assert for TILE_DNGN_UNSEEN assumption.

--------------------------------------------------------------------------------
46d2fc5989 | Enne Walker | 2010-06-08 21:33:32 -0400

Remove unused tileidx_unseen_terrain function.

--------------------------------------------------------------------------------
c4b79eddc5 | Enne Walker | 2010-06-08 21:33:22 -0400

Add a tiles function for wiz-mode magic mapping.

--------------------------------------------------------------------------------
0712bba602 | Enne Walker | 2010-06-08 21:19:53 -0400

Clean up tiles-specific behavior in clear_map.

--------------------------------------------------------------------------------
70f65c480b | David Lawrence Ramsey | 2010-06-08 17:44:19 -0500

Fix Mantis 1703.
Per rob's suggestion, don't turn on the MG_PERMIT_BANDS flag for
summoned monsters in Pan, as is already done during the orb run.

--------------------------------------------------------------------------------
896b20b1d7 | Adam Borowski | 2010-06-08 22:03:35 +0200

Fix humans wearing naga bardings (bring me brown paper headgear...) [1709]

--------------------------------------------------------------------------------
13c6cab02a | Adam Borowski | 2010-06-08 21:40:09 +0200

Bring sanity to enums by making them diffable/patchable.

--------------------------------------------------------------------------------
a7e9368205 | Adam Borowski | 2010-06-08 20:58:00 +0200

Drop -pedantic.
It is buggy and also doesn't support newer standards even with -std=.

Before making use of a C++98/C++03/C++0x feature, please make sure it
is supported by both gcc (4.0+) and MSVC, though.

For example, initializer lists Cryp71c wanted:
  int foo[3]; foo={1, 2, 3};
work in gcc, but not in MSVC (even 10) and clang (even today's svn).

But diff-friendly comma at the end of enum works everywhere (hallelujah!).

--------------------------------------------------------------------------------
5057ee2c42 | Robert Vollmert | 2010-06-08 20:48:44 +0200

Fix offset morgue screenshots with messages_at_top. (#1711)

--------------------------------------------------------------------------------
430af9ab3b | Robert Vollmert | 2010-06-08 19:52:12 +0200

Some debug Lua bindings to make player take stairs.

--------------------------------------------------------------------------------
54d3624cb6 | Robert Vollmert | 2010-06-08 19:52:12 +0200

files.cc: Extract save unpacking into function unpack_file.

--------------------------------------------------------------------------------
7a7f2376db | Robert Vollmert | 2010-06-08 19:52:12 +0200

files.cc: Simplify save_exists by using file_exists.

--------------------------------------------------------------------------------
e84710bde9 | Robert Burnham | 2010-06-08 09:54:42 -0500

Restrict possible demonic guardian summons
Disallow demons which summon other demons, contributing to major
demon armies and thus, the imbalancing of demonic_guardian.

--------------------------------------------------------------------------------
c8b90db1f2 | Darshan Shaligram | 2010-06-08 20:23:16 +0530

Fix crash when using ^F to travel to an item.
travel_load_map no longer did the Right Thing after my level_vaults changes, 
tossed it in favour of level_excursion.

--------------------------------------------------------------------------------
4faff9bab9 | Robert Vollmert | 2010-06-08 16:37:57 +0200

Give player non-zero stats in arena.
Fixes the player dying to stat loss after a while. Rather than just
skipping the stat death in arena, give positive stats so that other
stat_zero effects don't mess things up.

--------------------------------------------------------------------------------
4109ace5a8 | Robert Vollmert | 2010-06-08 15:41:06 +0200

Some file output asserts.
These assert that writers actually get passed non-NULL file
or buffer pointers.

--------------------------------------------------------------------------------
0220ef6173 | Robert Vollmert | 2010-06-08 15:20:39 +0200

Add some asserts to unmarshall(C)String.
Also unexport unmarshallCString since it's just used internally by
unmarshallString.

Hopefully these catch some of the unmarshalling crashes we've seen on
cdo (#1615).

--------------------------------------------------------------------------------
30ac188b99 | Adam Borowski | 2010-06-08 13:30:19 +0200

Replace gcc version comparison by feature checks.
They noisily failed to support clang (or anything non-gcc).

We don't support gcc pre-4.0 due to the computed default bug, so
the second version check was moot.

--------------------------------------------------------------------------------
fc187f5893 | Adam Borowski | 2010-06-08 13:18:17 +0200

Purge get-opt{,-x86}.pl, -march=native does the same without incomplete zoology.

--------------------------------------------------------------------------------
edf888b294 | David Lawrence Ramsey | 2010-06-08 06:10:45 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
b60cdfa1fc | Robert Vollmert | 2010-06-08 12:42:06 +0200

Update travel cache before saving level.
Fixes some issues with unsaved exclusions after the recent reduction
of travel cache updates.

--------------------------------------------------------------------------------
09062a67d6 | Robert Vollmert | 2010-06-08 12:42:06 +0200

Use shorter _make_filename some more.

--------------------------------------------------------------------------------
06a73d1d0e | Robert Vollmert | 2010-06-08 12:42:06 +0200

Make visitor's _load_level pass an invalid id as the old level.
That's more appropriate than passing a wrong one.

--------------------------------------------------------------------------------
3582d859ca | Robert Vollmert | 2010-06-08 12:42:05 +0200

Make load() take level_id old_level.

--------------------------------------------------------------------------------
7e4039d061 | Robert Vollmert | 2010-06-08 12:42:05 +0200

Don't consider Portal destination stairs known.

--------------------------------------------------------------------------------
bfbd93d7ff | Robert Vollmert | 2010-06-08 12:42:05 +0200

Replace down_stairs old_level argument by forced destination.
It was only used by portal, which fudged you.absdepth0 before
handing over to down_stairs before. Now it explicitly tells
down_stairs where to go.

--------------------------------------------------------------------------------
4b4c3a1ca4 | Robert Vollmert | 2010-06-08 12:42:05 +0200

Don't use parm1 for DELAY_DESCENDING_STAIRS.
I don't see how you.absdepth0 would change between issuing and finishing the
delay. It doesn't change in the tests I did.

--------------------------------------------------------------------------------
e08777be58 | Robert Vollmert | 2010-06-08 12:42:04 +0200

Don't reset you.prev_targ, you.prev_grd_targ in _save_level.
This does not seem to be the right place for these kinds of side-effects.
files.cc:load() already does this, and other places that call _save_level
and that need this should do the reset themselves.

--------------------------------------------------------------------------------
edf2169b75 | Robert Vollmert | 2010-06-08 12:42:04 +0200

Also erase old level data in down_stairs if appropriate.
Missed this in 838c032ad87.

--------------------------------------------------------------------------------
d6eca3ee69 | David Lawrence Ramsey | 2010-06-07 23:30:38 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
9c53ec3864 | David Lawrence Ramsey | 2010-06-07 20:50:14 -0500

Remove obsolete Donald complaint wrt Lugonu's self-banishment.

--------------------------------------------------------------------------------
3f3a3ecef2 | Adam Borowski | 2010-06-08 01:15:12 +0200

Drop a couple of unneeded xl checks.

--------------------------------------------------------------------------------
0150219d19 | Adam Borowski | 2010-06-08 01:12:39 +0200

Hide immature draconians for old saved games. The chance there are any extant 
saves for low-level dracs is near zero, but hey...

--------------------------------------------------------------------------------
4dfb8e7ee2 | Adam Borowski | 2010-06-08 01:06:06 +0200

Salvage games with buggy dracs in progress.

--------------------------------------------------------------------------------
e9f9e3f367 | Adam Borowski | 2010-06-08 00:45:31 +0200

Simplify species_name() now that draconian hacks are not needed.

--------------------------------------------------------------------------------
befb9a82fc | Adam Borowski | 2010-06-08 00:29:23 +0200

Don't use hacks for hiding draconian colour, change the species at level 7.
User-visible changes:
* the apt table shows immature draconians as well
* non-gray dracs get the stat bonus at level 4 only gray ones used to get
  (which was an information leak)

--------------------------------------------------------------------------------
035a96aada | Robert Burnham | 2010-06-07 14:27:58 -0500

Allow powered by death to be triggered by pets
Powered by death relies on the presence of corpses within a certain range
as well as DUR_POWERED_BY_DEATH > 0 (this prevents kiku worshipers from
dropping a stack of corpses and instantly having uber-regen). However,
in its present form, the powered by death duration will not be set for
pet kills.

--------------------------------------------------------------------------------
156635a1e9 | Darshan Shaligram | 2010-06-08 00:22:21 +0530

[591] Test case to fail if a monster behind plants jumps back and forth between 
a set of locations when trying to move to the player.

--------------------------------------------------------------------------------
fa4d29f457 | Robert Burnham | 2010-06-07 12:54:46 -0500

Slight nerf to demonic guardian mutation
Changed the tension threshold at which a guardian is summoned from
mutlvl*3 + random2(mutlvl*2) to mutlvl*4 + random2(mutlvl*3).

--------------------------------------------------------------------------------
d6a1b5e301 | Robert Burnham | 2010-06-07 12:12:28 -0500

Change claw aux dmg to scale with claw level
As per all other UC mutations, claws should do damage scaling with
mutation level. Presently, aux claw attacks do an additional 1d3
damage, which is insubstantial when compared to other aux attacks.
It also significantly devaules UC for claw-ers if all they have
available is aux attacks.

Also adds in a small debug message for spines.

--------------------------------------------------------------------------------
c163fd603c | Robert Vollmert | 2010-06-07 18:35:45 +0200

Abort instead of asserting for recursive command re-do.
There's just too many ways the repeat key could sneak
into the replay buffer.

--------------------------------------------------------------------------------
32bcd34153 | Robert Vollmert | 2010-06-07 17:25:19 +0200

Trash direction_chooser special command repeat code.
Fixes issue #1681.

Entering junk at the "target self" y/n prompt was remaining
in the repeat buffer after casting thanks to the special
logic there. It would be possible to just flush the buffer
after targeting, but I think it's better if the repeat code
consistently does nothing but repeat keys. If we ever have
a good concept of "last command performed", this can be
rethought.

Command repeat replays keys and nothing

--------------------------------------------------------------------------------
19ee085b01 | Adam Borowski | 2010-06-07 16:43:58 +0200

Remove the block for Lugonu's self-banishment in Pan. [1172]
You can get the same with a weapon of distortion for no permanent cost.

--------------------------------------------------------------------------------
e4a312aaf5 | Darshan Shaligram | 2010-06-07 20:06:33 +0530

Cache is_travelsafe_square results for all map cells before updating interlevel 
travel cache.
This speeds up interlevel travel cache update for fully mapped levels by
roughly 2x (~180ms -> ~90ms on my system with -pg).

--------------------------------------------------------------------------------
49bbc248a8 | Darshan Shaligram | 2010-06-07 19:38:53 +0530

Tweak slime wall neighbour cache and precompute slime wall neighbours only once 
when updating travel cache.

--------------------------------------------------------------------------------
61007a94bd | Adam Borowski | 2010-06-07 15:56:32 +0200

Update shiori_entry_whats_in_store_for_you for new player-specie monsters.
Also, add vampires since it's now possible to have them without spells.

--------------------------------------------------------------------------------
b2525ca807 | Adam Borowski | 2010-06-07 15:56:31 +0200

Remove my SourceForge name.

--------------------------------------------------------------------------------
2fd5618609 | Adam Borowski | 2010-06-07 10:31:55 +0200

Fix illegal initialization (bad in C++03 and C++0x).

--------------------------------------------------------------------------------
a274bf62ed | Adam Borowski | 2010-06-07 10:31:55 +0200

Remove -fno-strict-aliasing, our code does not rely on such tricks.
It was added in a0582692, apparently accidentally.

--------------------------------------------------------------------------------
1dd4d098ea | Adam Borowski | 2010-06-07 10:31:55 +0200

Fix an incorrect comment.

--------------------------------------------------------------------------------
f5dff9f05b | Darshan Shaligram | 2010-06-07 08:00:27 +0530

Fix slime wall checks slowing down travel, particularly interlevel travel-cache 
update.

--------------------------------------------------------------------------------
0ed2676bbe | Darshan Shaligram | 2010-06-07 06:43:57 +0530

Fix interlevel travel not correctly handling excluded stairs if the player is 
standing on the stair.

--------------------------------------------------------------------------------
fd7fda3e14 | Darshan Shaligram | 2010-06-07 05:43:17 +0530

[348] Fix overflow temples smashing existing level layouts -- they were being 
treated as primary vaults.

--------------------------------------------------------------------------------
18fad0453a | David Lawrence Ramsey | 2010-06-06 19:03:18 -0500

Add punctuation fixes.

--------------------------------------------------------------------------------
c6f3ffc674 | David Lawrence Ramsey | 2010-06-06 18:58:10 -0500

Update the 0,7 changelog again.

--------------------------------------------------------------------------------
1b4843ef41 | Darshan Shaligram | 2010-06-07 04:43:06 +0530

[179] Electric discharge should not affect flying things, fixed.

--------------------------------------------------------------------------------
5bdd49094b | Darshan Shaligram | 2010-06-07 03:47:23 +0530

[169] Fix travel not passing trap names correctly to trapwalk.lua.
Travel no longer attempts to cache trap positions.

Warn wizmode user if a trap cannot be created.

--------------------------------------------------------------------------------
c62f8706d2 | Darshan Shaligram | 2010-06-07 03:19:59 +0530

Verify correctness of pick_random_monster return value with 
invalid_monster_type.

--------------------------------------------------------------------------------
a9f3837dcd | Darshan Shaligram | 2010-06-07 02:52:13 +0530

[8] When querying monsters with ?/M, indicate partial matches in monster 
description footer.

--------------------------------------------------------------------------------
d3ddbed53a | Darshan Shaligram | 2010-06-07 01:56:42 +0530

Don't update travel cache when changing excludes. TC is updated anyway before 
interlevel travel and when changing levels.

--------------------------------------------------------------------------------
48db0ad946 | Darshan Shaligram | 2010-06-07 01:49:54 +0530

[97] Fix interlevel travel not handling single-point excludes on stairs 
correctly.

--------------------------------------------------------------------------------
9b724164cd | Robert Vollmert | 2010-06-06 22:09:18 +0200

Make stash distance sort also consult match name.
Fixes weird sorting when all matching stashes have the same distance
(issue #593).

--------------------------------------------------------------------------------
ec94b1530c | Robert Vollmert | 2010-06-06 21:54:09 +0200

Don't call trackers_init_new_level on reload.
This is right for the stash tracker, and fixes
stash tracker save/reload problems in portal vaults
and pandemonium (issue #1048).

On the other hand, travel_init_new_level did some things
that were required on reload, so for that purpose we
now also have travel_init_load_level.

--------------------------------------------------------------------------------
02c3737a34 | Robert Vollmert | 2010-06-06 21:54:09 +0200

Don't run map epilogues when restoring.
The code is now in-line with the comment.

--------------------------------------------------------------------------------
838c032ad8 | Robert Vollmert | 2010-06-06 21:54:09 +0200

Keep travel cache up-to-date for current level everywhere.
Previously, it wasn't for non-dungeon levels, leading to
various strangenesses like exclusions in Pan not surviving
save+reload or viewing other levels, or presumably any
level excursions caused e.g. by piety changes.

Now the current level's LevelInfo is updated unconditionally,
but not written to disk when taking stairs. The travel cache
save/restore code writes out all levels in the cache, but
complains if it reads back info about non-current non-dungeon
levels.

Fixes issue #1519.

--------------------------------------------------------------------------------
d3c0f46bf1 | Darshan Shaligram | 2010-06-07 00:10:24 +0530

[77] Remove temp vault reporting code from mapstat; it did nothing useful and 
it caused crashes.

--------------------------------------------------------------------------------
9733dc3c05 | Darshan Shaligram | 2010-06-06 23:37:43 +0530

[1484] Set item origin when apporting items; fixes missing milestones for 
apported demonic runes.

--------------------------------------------------------------------------------
e07a623114 | Darshan Shaligram | 2010-06-06 23:21:31 +0530

Handle traps and shops correctly when shifting the abyss.

--------------------------------------------------------------------------------
4022adc8ff | David Lawrence Ramsey | 2010-06-06 10:58:47 -0500

For Doroklohe, only lose spell energy if the monster stays in the tomb.

--------------------------------------------------------------------------------
b195642893 | Adam Borowski | 2010-06-06 17:37:09 +0200

Mention body size on the 'A' display.

--------------------------------------------------------------------------------
57ee18aeec | Adam Borowski | 2010-06-06 17:37:09 +0200

Fix a warning.

--------------------------------------------------------------------------------
4f40ca2e47 | David Lawrence Ramsey | 2010-06-06 10:31:28 -0500

In Zin's Imprison, only do Recite if the monster stays in the tomb.

--------------------------------------------------------------------------------
5326d941c7 | Robert Vollmert | 2010-06-06 16:08:12 +0200

thrown_object_destroyed: Simplify and fix rounding errors. (#1599)

--------------------------------------------------------------------------------
315ab77d50 | Darshan Shaligram | 2010-06-06 17:02:07 +0530

[17] Fix god gift monsters with a ghost_demon struct not being placed correctly.

--------------------------------------------------------------------------------
bfb8ec168b | Darshan Shaligram | 2010-06-06 16:48:17 +0530

[1693] Fix crash in _mon_check_foe_invalid.

--------------------------------------------------------------------------------
e66694b34a | Darshan Shaligram | 2010-06-06 03:59:07 +0530

Document abyss vault wrinkles, add dummies for the example abyss vaults.

--------------------------------------------------------------------------------
199006749b | Darshan Shaligram | 2010-06-06 03:59:06 +0530

Remove unnecessary abyss defines.

--------------------------------------------------------------------------------
1d0d3f72c1 | Darshan Shaligram | 2010-06-06 03:59:06 +0530

Update abyss shift to use masks, allowing the shift to move non-rectangular 
areas. Abyss shifts will now try to preserve vaults.

--------------------------------------------------------------------------------
381a2cedc4 | Darshan Shaligram | 2010-06-06 03:59:06 +0530

Extra checks when loading abyss vaults.

--------------------------------------------------------------------------------
38cd069b01 | Darshan Shaligram | 2010-06-06 03:25:41 +0530

Add support for vaults in the Abyss, save vault metadata in the level save.
Vault metadata that was previously discarded at level generation time is now 
saved in the level file instead. This can be quite costly (~30k per level) if 
the level has large vaults.

The abyss can now use vaults as general scenery (tagged "abyss") or to place 
the rune ("abyss_rune"). abyss.des currently includes stub vaults for testing.

--------------------------------------------------------------------------------
c13aec16bd | Adam Borowski | 2010-06-05 21:55:32 +0200

Fix compilation on gcc.

--------------------------------------------------------------------------------
bff5113369 | Adam Borowski | 2010-06-05 21:30:06 +0200

Axe an unused enum type.

--------------------------------------------------------------------------------
daa50b6650 | Adam Borowski | 2010-06-05 21:29:58 +0200

Unify duplicated logic for armour sizes.

--------------------------------------------------------------------------------
61e967d091 | Adam Borowski | 2010-06-05 21:22:33 +0200

Simplify/optimize a bit.

--------------------------------------------------------------------------------
b04b343939 | Robert Vollmert | 2010-06-05 21:01:12 +0200

Update IOOD specially in _catchup_monster_moves.
It gets to move straight for a number of turns, dissipating when encountering
a solid feature or a monster.

Should fix issue #1680.

--------------------------------------------------------------------------------
cfc5e62daf | Robert Vollmert | 2010-06-05 21:01:12 +0200

Don't check LOS for quiet monster teleports.
This also fixes a LOS check problem when the player is off the map
during level load, where the monster under the player is teleported
away.

--------------------------------------------------------------------------------
ba266bf852 | Robert Vollmert | 2010-06-05 21:01:12 +0200

Actors outside the map can't see anything.
This fixes crashes on player LOS checks while the player is off-level
during level load.

--------------------------------------------------------------------------------
bba571c220 | Robert Vollmert | 2010-06-05 21:01:12 +0200

load(): Update level before placing player.
While the level is being updated, the player is not really on the level,
so nothing should reference its position.

The viewwindow() call relating to view updates at changed monster
positions due to _catchup_monster_moves is gone -- it doesn't look
like that actually issues redraw requests anymore.

--------------------------------------------------------------------------------
866f78eb53 | Robert Vollmert | 2010-06-05 21:01:11 +0200

load(): Reset player position after level is saved.
At that point, the player has left the level, so code shouldn't refer
to it.

--------------------------------------------------------------------------------
b8026e3ecc | Robert Vollmert | 2010-06-05 21:01:11 +0200

load(): Move monster-under-player fix right after position update.

--------------------------------------------------------------------------------
04965104a8 | Robert Vollmert | 2010-06-05 21:01:11 +0200

load(): Invalidate LOS right after loading the level.

--------------------------------------------------------------------------------
36ee6925cf | Robert Vollmert | 2010-06-05 21:01:11 +0200

load(): Don't handle lost items on start.

--------------------------------------------------------------------------------
7ad4307290 | Robert Vollmert | 2010-06-05 21:01:11 +0200

load(): Define make_changes more clearly.

--------------------------------------------------------------------------------
9d7622454e | Robert Vollmert | 2010-06-05 21:01:11 +0200

load(): Don't set you.entering_level for LOAD_VISITOR.
Not completely sure this doesn't break anything, but it seems to be true
to the name of the variable, at least.

--------------------------------------------------------------------------------
490815be4b | Robert Vollmert | 2010-06-05 21:01:10 +0200

Make _catchup_monster_moves use env.old_player_pos instead of you.pos().
The monsters shouldn't know of your new position when catching up missed moves.
This may well explain and fix the monsters bee-lining towards the player
occasionally when they come down different stairs. In particular, it would
explain this for monsters with ranged attacks that stand on their target
square. I haven't been able to reproduce that reliably.

--------------------------------------------------------------------------------
3637a2e62f | Robert Vollmert | 2010-06-05 21:01:10 +0200

Save old player position (env.old_player_pos).

--------------------------------------------------------------------------------
29a3c6724d | Janne Lahdenpera | 2010-06-05 20:56:05 +0300

Fix a potential bug with MenuObject::activate_first/last_item
The previous code did not check if the first or last item allows highlighting.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
a9a9a57ef2 | Janne Lahdenpera | 2010-06-05 20:56:04 +0300

Change MenuObject::set_active_item() to use ID instead of index
Fixes mantis 1635

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
6d17f6c1b3 | David Lawrence Ramsey | 2010-06-05 12:07:14 -0500

Tweak the Recite resistance formulas to make them a bit less harsh.
The two formulas for holy and non-holy beings are now unified, and both
involve Invocations skill.  This means that Recite will work slightly
worse on holy beings, and slightly better on non-holy beings.  Also,
magic-immune non-holy beings will no longer always get negative effects.

--------------------------------------------------------------------------------
5811a12aff | Robert Vollmert | 2010-06-05 18:24:09 +0200

Check monsters::submerged instead of ENCH_SUBMERGED for visibility.
This fixed issue #1690, where a visible zombie in deep water was not
attackable.

I'm not sure the submerged zombies in deep water are actually a good
feature, though.

--------------------------------------------------------------------------------
e4a44aac34 | David Lawrence Ramsey | 2010-06-05 11:17:33 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
cf58410148 | Robert Vollmert | 2010-06-05 17:36:52 +0200

Jellies are never interesting for Jiyva worshippers. (#1686)

--------------------------------------------------------------------------------
c5953cbf3b | Robert Vollmert | 2010-06-05 17:13:29 +0200

Sniper is now a crossbow. (#1688)

--------------------------------------------------------------------------------
bcbc448fe0 | Robert Vollmert | 2010-06-05 17:00:45 +0200

Set ng->name, ng->type again after character selection. (#1689)

--------------------------------------------------------------------------------
140b16b49e | Darshan Shaligram | 2010-06-05 11:44:52 +0530

Fix neutral monsters not targeting hostiles correctly and vice versa.

--------------------------------------------------------------------------------
28f2a4d12e | Darshan Shaligram | 2010-06-05 09:58:41 +0530

Set abyss center to the actual center of the level, peg the abyss shift radius 
to the LOS radius.

--------------------------------------------------------------------------------
7e976dc38c | Darshan Shaligram | 2010-06-05 09:52:27 +0530

Fix abyss teleport still using old hardcoded abyss shift radius.

--------------------------------------------------------------------------------
8b5524350d | Darshan Shaligram | 2010-06-05 07:52:43 +0530

Fix Lugonu corruption bugs.
Corruption was only replacing terrain with floor, fixed.

The first hostile corruption spawn would prevent further spawns for that round, 
fixed.

Corruption spawns were being placed only SE of the corruption seed position, 
fixed.

Reduce number of corruption spawns at low Invoc skill.

--------------------------------------------------------------------------------
36f5043a62 | Darshan Shaligram | 2010-06-05 06:08:09 +0530

Fix floor properties being cleared when abyss shifts (oops).

--------------------------------------------------------------------------------
73c7921fdd | Darshan Shaligram | 2010-06-05 05:54:04 +0530

Make abyssal rune odds increase linearly with turns spent in the abyss, instead 
of using the reciprocal of turns spent. This should reduce abyssal rune tedium.

--------------------------------------------------------------------------------
2897d3537f | Darshan Shaligram | 2010-06-05 05:22:53 +0530

Abyss code cleanup.
Clean up the code involved in generating and shifting the abyss. This is 
spadework in preparation for abyss vaults.

Fixes abyss shifts copying the area around the player to the centre of the 
abyss and not clearing the old area (irc conversation between Linley and dpeg 
confirms that the old behaviour of not clearing the duplicate shifted terrain 
is a bug).

Fixes abyssal runes being more likely to appear at the NW of the abyss level, 
particularly as time spent in the abyss increases.

--------------------------------------------------------------------------------
9b4b45760d | Robert Vollmert | 2010-06-04 14:45:15 +0200

No (runed) for missiles with DESC_DBNAME. (#1492)

--------------------------------------------------------------------------------
3ca316a195 | Robert Vollmert | 2010-06-04 14:24:24 +0200

Make Che block haste for unintentional berserk. (#1174)

--------------------------------------------------------------------------------
62d9dfca54 | Robert Vollmert | 2010-06-04 13:57:42 +0200

Check for teleport-preventing items in player::blink_to. (#1069)

--------------------------------------------------------------------------------
2988f08471 | Robert Vollmert | 2010-06-04 13:17:53 +0200

Remove obsolete damage boost for non-missile ranged brands.
They were all changed to be missile beams (and hence not auto-mulch).

--------------------------------------------------------------------------------
8288615408 | Robert Vollmert | 2010-06-04 13:16:43 +0200

Apply steel brand for thrown weapons. (#1603)

--------------------------------------------------------------------------------
cbab75de2f | Robert Vollmert | 2010-06-04 00:04:25 +0200

Remove makefile_tiles.mgw (slipped in accidentally).

--------------------------------------------------------------------------------
a4caa25891 | Robert Vollmert | 2010-06-04 00:00:45 +0200

Add missing library for mingw with sounds.

--------------------------------------------------------------------------------
757813e8d7 | Robert Vollmert | 2010-06-03 23:19:38 +0200

Remove unused scorefile_entry::mon_num.

--------------------------------------------------------------------------------
c99a4868de | xale | 2010-06-03 23:17:15 +0200

properly attribute deaths by a ball lightning
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
29c17b8d7e | xale | 2010-06-03 23:17:15 +0200

properly attribute deaths by a chain lightning
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
0d72ef092e | xale | 2010-06-03 23:17:15 +0200

properly attribute deaths by iood
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
df966cde71 | xale | 2010-06-03 23:17:14 +0200

pass beam's source name to ouch()
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
36824b22df | xale | 2010-06-03 23:17:14 +0200

allow to pass death_source_name directly to a scoreboard entry
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
bb9e897927 | David Lawrence Ramsey | 2010-06-03 16:06:53 -0500

Convert the tomb routine to use a map marker (rob, me).
This fixes Mantis 1675: the map marker will expire as soon as it detects
that there is no monster within the tomb.  Also, the map marker uses
both a source and a target.  The former is needed to detect if it is a
monster-cast Tomb of Doroklohe or a tomb created by Zin's Imprison
ability; and the latter is used to detect the imprisoned monster if it
breaks out of the tomb early, so that any effects of entombment can
still be applied to it.  Entombment can also expire while the player is
off-level.

Accordingly, the "entombed" enchantment is removed.

--------------------------------------------------------------------------------
121e1004f7 | David Lawrence Ramsey | 2010-06-03 15:20:21 -0500

Remove unused radius parameter from corruption map markers.

--------------------------------------------------------------------------------
577c0fd1c3 | David Lawrence Ramsey | 2010-06-03 12:43:35 -0500

Add more spacing fixes.

--------------------------------------------------------------------------------
7f4605526e | David Lawrence Ramsey | 2010-06-03 11:36:54 -0500

Fix issue in Mantis 1675: Do proper messaging for disappearing tombs.

--------------------------------------------------------------------------------
c19af6b76b | David Lawrence Ramsey | 2010-06-03 10:59:56 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
6b4ae4e5bc | Steven Noonan | 2010-06-03 06:29:48 -0700

makefile add -DWINMM_PLAY_SOUNDS to MinGW builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0a1d355c33 | Robert Vollmert | 2010-06-03 15:00:55 +0200

Variable Nemelex death message. (dpeg)

--------------------------------------------------------------------------------
fb25c15890 | Robert Vollmert | 2010-06-03 15:00:55 +0200

Revert "Tomb using map markers."
This reverts commit 3045b999025412edb402c5c4ba646bf258cfcb22.

This wasn't meant to be pushed; I posted a copy to mantis.

--------------------------------------------------------------------------------
c980b46fec | Eino Keskitalo | 2010-06-03 15:53:29 +0300

Increase the hp of some of the training dummies.
The two first training dummies now have 20 hp, so they're not one hit kills. 
The magic dart and Makhleb ability dummies seem to last longer as they are.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
bab9f58084 | Eino Keskitalo | 2010-06-03 15:42:49 +0300

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
0110f59ba2 | Eino Keskitalo | 2010-06-03 15:41:04 +0300

Small fixes for the tutorial texts.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
525dd9230a | Robert Vollmert | 2010-06-03 14:19:20 +0200

Nemelex death message. (#1678)

--------------------------------------------------------------------------------
3045b99902 | Robert Vollmert | 2010-06-03 13:29:04 +0200

Tomb using map markers.
Tie the tomb not to a monster, but to a place.

This is not a complete implementation.

Currently missing:

* energy loss or recite effect after dropping tomb;
  perhaps the marker should get another field that stores the source
  of the tomb (i.e., player or monster).
* _timeout_tomb might also need to be called from update_level?
* ENCH_ENTOMBED has to be removed
* only applied to the spell, not to the Zin ability

--------------------------------------------------------------------------------
0d9a980d1c | Eino Keskitalo | 2010-06-03 14:28:50 +0300

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
1d7a418b9a | Robert Vollmert | 2010-06-03 12:30:23 +0200

Fix secret door tile choice without neighbouring walls.
Fixes issue #1652.

--------------------------------------------------------------------------------
c1ea605bab | Robert Vollmert | 2010-06-03 12:30:23 +0200

Give statue in vehumet_altar an explicit tile.

--------------------------------------------------------------------------------
56bfaa8830 | Janne Lahdenpera | 2010-06-03 13:17:05 +0300

Convert tutorial_basic_3&4 to be tiles sensitive
Changed messages to be tiles sensitive and restructured some of them
to get rid of 'c'hop etc.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
a1d938c3a5 | Robert Vollmert | 2010-06-03 11:50:13 +0200

Fix tile flavour handling on map boundary.
Fixes #1673.

--------------------------------------------------------------------------------
75abfea2be | Robert Vollmert | 2010-06-03 09:46:00 +0200

Fix inverted colour_map logic. (#1677)

--------------------------------------------------------------------------------
34a4bfc196 | Robert Vollmert | 2010-06-03 08:52:03 +0200

Don't issue blood smell from map boundary. (#1679)

--------------------------------------------------------------------------------
5e23b53ca9 | David Lawrence Ramsey | 2010-06-02 22:23:15 -0500

Add another name for ponderous randarts.

--------------------------------------------------------------------------------
196361ac98 | Steven Noonan | 2010-06-02 18:53:20 -0700

makefile: use 10.5 SDK on x86_64 non-TILES builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b28d9d123e | Steven Noonan | 2010-06-02 18:53:20 -0700

makefile: use 'uname -m' instead of 'arch' for finding host architecture
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
68b228d03d | Steven Noonan | 2010-06-02 17:41:37 -0700

makefile: don't check .cflags on 'make test'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0c7e4dd93a | Steven Noonan | 2010-06-02 17:41:37 -0700

ouch.cc: expose _wizard_restore_life to DEBUG builds
It's used under the condition (defined(WIZARD) || defined(DEBUG)), so
we need to make the declaration match.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
daac3443b8 | Robert Vollmert | 2010-06-03 02:32:12 +0200

Don't set aux_source for player-fired wands.
The beam code uses the presence of an aux_source field
to decide whether it's KILLED_BY_WILD_MAGIC... So instead
drop the "a" from "a disintegration bolt" to have a
somewhat appropriate message for disintegrating oneself.

This reverts commit 508f2e281442d8651fa09ed1a6a7204ffdd386ce.

--------------------------------------------------------------------------------
30a71f85be | Robert Vollmert | 2010-06-03 02:32:12 +0200

Update save code for reverted refcounting.

--------------------------------------------------------------------------------
2de784baf7 | Robert Vollmert | 2010-06-03 02:32:12 +0200

Revert monster refcounting.
It was buggy, particularly related to monster transit,
and we weren't able to fix it quickly.

This reverts commit a61e760fa660048489341b82878e2ebed95e89cb.
This reverts commit f5b6923f57381d8207c1ed8fcefa1670b0752f0c.
This reverts commit 80a6a7e5be19c9c819357c193415b27b6c8d7b03.
This reverts commit d0a27c8086eae7a02048caa10786cc4cf0d6ceae.
This reverts commit 95e0957e0dd3b04ac706f508e2d9f36e435bb3b8.
This reverts commit f43d924016a127528e96ad1f173732ec04e188c3.
This reverts commit 3584ca8eae3fb4e81b07d7e69252ca1fb4d4c16f.
This reverts commit 70e85ace771b23d63f9c9a25fd73a07e82f04727.
This reverts commit 7c1760d1b82ff2088f705676e603a267463ac863.
This reverts commit bbc7f4b11b7e33d85d15872a64ce7c61bb4f6b70.

--------------------------------------------------------------------------------
52b2c4e64d | Steven Noonan | 2010-06-02 17:14:38 -0700

makefile: use 'strip -x' on Mac OS X
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a61e760fa6 | Robert Vollmert | 2010-06-03 01:24:54 +0200

Refcount asserts (xale).

--------------------------------------------------------------------------------
851ced10f6 | Robert Vollmert | 2010-06-03 01:16:59 +0200

Fix god miscasts setting bad beam_source.

--------------------------------------------------------------------------------
f5b6923f57 | Robert Vollmert | 2010-06-03 01:04:42 +0200

Improved refcount scanning.

--------------------------------------------------------------------------------
50eadc8f20 | Robert Vollmert | 2010-06-02 23:50:57 +0200

Fix bug in wizard_spawn_control, restoring accidentally deleted statement.

--------------------------------------------------------------------------------
80a6a7e5be | xale | 2010-06-02 23:50:08 +0200

properly handle followers
Should fix monsters disappearing after taking stairs.

--------------------------------------------------------------------------------
dcba8ecbf2 | Robert Vollmert | 2010-06-02 22:57:41 +0200

Fix no-hostile-in-range check for range 8 spells.

--------------------------------------------------------------------------------
79c0c31103 | Janne Lahdenpera | 2010-06-02 23:17:06 +0300

Change tutorial_basic_2 commands to be tiles sensitive
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
03a1f7ccf0 | Janne Lahdenpera | 2010-06-02 23:17:05 +0300

Rename Tutorial message functions
Instead of using 1,2,3... use a more descriptive names for the
message functions.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
ec76b6c0e3 | Robert Vollmert | 2010-06-02 20:41:20 +0200

Mark milestones for crashes. (#1545)

--------------------------------------------------------------------------------
58d53562f6 | Robert Vollmert | 2010-06-02 19:30:41 +0200

Slime wall polish: prevent travel, colour adjacent floor.
For travel purposes, such floor cells are treated like traps,
that is passable, but not safely. This is only for affected
players (i.e., non-Jiyva worshippers).

Also, they're coloured LIGHTGREEN for console. Maybe
manipulating env.grid_colours instead would also work
for tiles?

--------------------------------------------------------------------------------
8edd3fa6f1 | David Lawrence Ramsey | 2010-06-02 12:23:20 -0500

Add spacing fix.

--------------------------------------------------------------------------------
bd5cb1ba89 | Robert Vollmert | 2010-06-02 18:03:12 +0200

Revert "scoring" and "8 color", accidentally committed.
This reverts commit 2ae7433a0a26190da2d52e282cad0463574ac00d.
This reverts commit 172df9011ff46f9a50a63cb54b61dc3b1d41f29d.

--------------------------------------------------------------------------------
0c6af8be9e | Robert Vollmert | 2010-06-02 18:02:17 +0200

Restore kill attribution for illusions of Mara.

--------------------------------------------------------------------------------
2ae7433a0a | Robert Vollmert | 2010-06-02 17:52:44 +0200

scoring

--------------------------------------------------------------------------------
172df9011f | Robert Vollmert | 2010-06-02 17:52:44 +0200

8 color

--------------------------------------------------------------------------------
508f2e2814 | Robert Vollmert | 2010-06-02 17:52:44 +0200

Set bolt::aux_source for player-fired wands.
This gives better death messages, at least when hitting self with
a wand of disintegration. aux_source is set like for monster-zapped
wands.

--------------------------------------------------------------------------------
04404a941a | Robert Vollmert | 2010-06-02 17:52:44 +0200

Reorder cases in bolt::internal_ouch, improving IOOD attribution.
Since IOOD explosions set source == target, bolt::aimed_at_feet is true,
which resulted in KILLED_BY_AIMED_AT_FEET when hitting self with IOOD,
even when not aiming at self.

--------------------------------------------------------------------------------
772a6efee4 | Robert Vollmert | 2010-06-02 17:52:43 +0200

Improved disintegration death source handling.
No longer references death_source, which is not valid for
scorefile_entries loaded from file, thus fixing bad
disintegration entries in score output.

--------------------------------------------------------------------------------
1027d1581d | Robert Vollmert | 2010-06-02 17:52:43 +0200

Don't convert death_source to monster_type in scorefile_entry.
Instead, set death_source_name properly directly. This removed
some Mara trickery that may or may not cause issues.

--------------------------------------------------------------------------------
6f8dd14f31 | David Lawrence Ramsey | 2010-06-02 10:39:58 -0500

Revert erroneous "recite" delay name change.

--------------------------------------------------------------------------------
da3266f2ed | David Lawrence Ramsey | 2010-06-02 10:20:59 -0500

Add spacing fix.

--------------------------------------------------------------------------------
9643666ea0 | David Lawrence Ramsey | 2010-06-02 10:20:59 -0500

Reorder functions in godabil.cc yet again.

--------------------------------------------------------------------------------
4220d1785e | David Lawrence Ramsey | 2010-06-02 10:20:58 -0500

Rename various Recite-related functions to explicitly mention Zin.

--------------------------------------------------------------------------------
8c8afdd824 | David Lawrence Ramsey | 2010-06-02 10:20:58 -0500

Move non-delay-related Recite functions from delay.cc to godabil.cc.

--------------------------------------------------------------------------------
794cbe6a3c | David Lawrence Ramsey | 2010-06-02 10:20:58 -0500

Add Recite effects to imprisoned monsters just after the tomb drops.

--------------------------------------------------------------------------------
8dd0b671f3 | David Lawrence Ramsey | 2010-06-02 10:20:57 -0500

Reorder the Recite parameters so that it can calculate its own power.

--------------------------------------------------------------------------------
077f344523 | David Lawrence Ramsey | 2010-06-02 10:20:57 -0500

Make Recite effects available in a public function.

--------------------------------------------------------------------------------
d27df762a3 | xale | 2010-06-02 16:13:23 +0200

properly attribute deaths by beams
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
d0a27c8086 | xale | 2010-06-02 16:13:23 +0200

dead monsters can still kill you
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
95e0957e0d | xale | 2010-06-02 16:13:23 +0200

connect iood bolt with its source
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
f43d924016 | xale | 2010-06-02 16:13:22 +0200

make bolts track their sources
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
2a84601031 | Robert Vollmert | 2010-06-02 16:13:22 +0200

Don't place dead monsters on restore.

--------------------------------------------------------------------------------
8ee523426f | xale | 2010-06-02 16:13:22 +0200

save/load bits for the refcount and source
Problems with the save compatibility code to be blamed on
me (rob).

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
3584ca8eae | xale | 2010-06-02 16:13:22 +0200

keep track of a monster's source (i.e. what monster caused it appear)
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
70e85ace77 | xale | 2010-06-02 16:13:22 +0200

add auto_mindex to simplify management of menv indices
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
7c1760d1b8 | xale | 2010-06-02 16:13:21 +0200

monsters that try to cast spells must have a valid mindex
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
bbc7f4b11b | xale | 2010-06-02 16:13:21 +0200

refcount menv entries
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
989e27ea28 | David Lawrence Ramsey | 2010-06-02 08:48:25 -0500

Add spacing fix.

--------------------------------------------------------------------------------
feee1cfcd9 | David Lawrence Ramsey | 2010-06-02 08:43:32 -0500

Update the Jiyva entries in the 0.7 changelog.

--------------------------------------------------------------------------------
6295587c2b | Shayne Halvorson | 2010-06-02 14:13:33 +0200

Off level eating for Jiyva.
Changes from original patch:
  * choose fairly among all levels instead of short branch
    levels being more likely
  * don't eat on current level (another option would be
    to allow current level, but only outside LOS)

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
26eb56db21 | Shayne Halvorson | 2010-06-02 14:13:26 +0200

Conservation effect for Jiyva worshippers.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
5eadbac3d1 | Shayne Halvorson | 2010-06-02 14:13:26 +0200

Allow attacking slime shaped shapeshifters with Jiyva.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
af8ac9f242 | Shayne Halvorson | 2010-06-02 14:13:26 +0200

Jiyva worshippers are not affected by slime walls.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
7cdeb11375 | David Lawrence Ramsey | 2010-06-02 06:54:15 -0500

Fix Mantis 1662: Kiku shouldn't shield from torment while pain branding.

--------------------------------------------------------------------------------
5d0d687cc4 | David Lawrence Ramsey | 2010-06-01 19:16:33 -0500

Simplify weapon restriction logic for tridents.
Remove ogres from the unrestricted special case, since they're no longer
resticted from spears.  Also, add deep dwarves to the unrestricted
special case, since mountain dwarves are in it already, and both races
have the same polearms aptitude.

--------------------------------------------------------------------------------
6e2bb2d05a | David Lawrence Ramsey | 2010-06-01 19:11:54 -0500

Remove dead code, since Yred is only available to priests now.

--------------------------------------------------------------------------------
2950b03e0f | David Lawrence Ramsey | 2010-06-01 19:04:57 -0500

Comment fix.

--------------------------------------------------------------------------------
7e84bb3443 | David Lawrence Ramsey | 2010-06-01 19:04:10 -0500

Unrestrict spears for ogres, since their Polearms aptitude is better.

--------------------------------------------------------------------------------
554a3b4959 | Robert Burnham | 2010-06-01 16:08:59 -0500

Nerf DS leveling aptitude to 160%
The bulk of DS power is gained via mutations, which are gained as the player
levels. Continued gameplay indicates that XL 27 DS are easily attainable in
3-rune runs, which is too quick for demonspawn given their current strength.
This change also brings DS closer to their demigod bretheren.

--------------------------------------------------------------------------------
091c303c4d | David Lawrence Ramsey | 2010-06-01 14:28:18 -0500

Also. only display the "cannot pacify" message for divine healing.

--------------------------------------------------------------------------------
16c20add39 | Robert Burnham | 2010-06-01 13:56:45 -0500

Re-remove MUT_FAST from possible DS Mutations
This has been removed once before, I could swear...but git blame
turned up no results on the matter. MUT_FAST has been identified
as vastly overpowered and boring, and thus is to be removed completely.
Might be replaced later on by some kind of wing-type body facet that's
yet to be decided upon.

--------------------------------------------------------------------------------
5398c2aadf | David Lawrence Ramsey | 2010-06-01 13:55:31 -0500

Add spacing fix.

--------------------------------------------------------------------------------
ca1f612182 | David Lawrence Ramsey | 2010-06-01 13:51:57 -0500

Only display the "cannot pacify" healing message for Elyvilonites.

--------------------------------------------------------------------------------
a828a5b26e | Robert Burnham | 2010-06-01 13:40:27 -0500

Remove stealth malus from hooves 3
Although thematic, the conflicts -Stealth has with Stealth+ mutations
means that either hooves would have to be made exclusive from any stealth
modifying mutations (and any addition mutations to come in the future) or
 - more simply - the stealh malus can be removed.

--------------------------------------------------------------------------------
4ecd924b00 | Robert Burnham | 2010-06-01 11:58:44 -0500

Adjust bleed mechanics
Change bestroll back to random2 and remove the 1/3 chance of bleeding
so that bleeding happens every turn (unless the damage would kill).
This should appropriately average out to 1.5, 3, 4.5% hp per turn.

--------------------------------------------------------------------------------
aa31ddd475 | Enne Walker | 2010-06-01 12:58:16 -0400

Remove unused function declaration.

--------------------------------------------------------------------------------
4887d8a2cd | Enne Walker | 2010-06-01 12:58:16 -0400

Add wiz-only tile idx debug tooltips on dungeon.
Hovering the mouse over any cell on the dungeon display will now display the
contents of tile_fg, tile_bk_fg, and crawl_view.vbuf[x]->tile_fg (and the
corresponding background tiles too).  It displays them as index, flag (as hex),
and then name (with multiple names for any mcache entries that comprise
multiple tiles).  This should help debug weird tiles display issues.

--------------------------------------------------------------------------------
63cc524228 | Enne Walker | 2010-06-01 12:58:15 -0400

Replace mcache max tiles magic number with enum.

--------------------------------------------------------------------------------
1e2a717b8a | David Lawrence Ramsey | 2010-06-01 11:29:47 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
1ffe39c06d | David Lawrence Ramsey | 2010-06-01 10:09:39 -0500

Bump ogres' Polearms aptitude from -1 (119) to 0 (100).
Currently, since the coarser aptitudes were adopted, ogres' Maces &
Flails aptitude is +1 (84), and their next best weapon aptitudes
(Polearms, Staves, and Unarmed Combat) are all -1 (119), which makes
selecting Maces & Flails a no-brainer.  This change should remedy that
by giving them another viable option.

--------------------------------------------------------------------------------
42a8eebe99 | Robert Vollmert | 2010-06-01 13:13:53 +0200

Remove obsolete variant of macro_add.

--------------------------------------------------------------------------------
bd2f8618f7 | Robert Vollmert | 2010-06-01 13:13:17 +0200

Echo macro entry.

--------------------------------------------------------------------------------
b09a440a28 | Robert Vollmert | 2010-06-01 13:13:04 +0200

Use a hand-rolled get_line for macro entry. (#718)
Not based on cancelable_get_line anymore, so doesn't interpret various
control keys.

--------------------------------------------------------------------------------
f0de53e1f1 | Robert Vollmert | 2010-06-01 12:26:20 +0200

Inscribe artefacts with positive and negative stealth consistently. (#1033)

--------------------------------------------------------------------------------
3dc795aecd | Robert Vollmert | 2010-06-01 12:13:23 +0200

Don't reveal mimics by targeting beam. (#1334)

--------------------------------------------------------------------------------
bfa3de13bd | Robert Vollmert | 2010-06-01 11:32:53 +0200

Don't use ktyp=mon for miscast damage.
KILLED_BY_MONSTER is intended for melee attacks (verbose death message
reads like "Mangled by ... wielding a ...").

Partially fixes #1628.

--------------------------------------------------------------------------------
3de4cd2649 | Robert Vollmert | 2010-06-01 10:46:34 +0200

rltiles/tool: Use tileidx_t for _name_pair, _colour_pair (#1654).

--------------------------------------------------------------------------------
65a9b8b91e | Robert Vollmert | 2010-06-01 10:30:24 +0200

Calculate you.hunger_level at start (#1639).

--------------------------------------------------------------------------------
1615a8b2c0 | Robert Vollmert | 2010-06-01 10:21:57 +0200

Replace auto hit magic number for debugging ray.

--------------------------------------------------------------------------------
24f1ab1d3b | Robert Vollmert | 2010-06-01 10:21:24 +0200

Make tracers stop at monsters for AUTOMATIC_HIT (#1656).

--------------------------------------------------------------------------------
4ff5179241 | Robert Vollmert | 2010-06-01 09:46:23 +0200

fsim: Use a copy of the monster to keep it alive.
Fixes issue #1563. Crawl would crash if the fsim opponent died for any
reason during the simulation, and the code only took care of hit points.

--------------------------------------------------------------------------------
575a7067f8 | Robert Vollmert | 2010-06-01 09:33:41 +0200

Parse text db using std::string instead of C strings.
Fixes issue #1613.

--------------------------------------------------------------------------------
f0427858e3 | Enne Walker | 2010-05-31 21:48:19 -0400

[1625] Add Poor_Yurik's improved shadow tile.

--------------------------------------------------------------------------------
e745786f89 | Enne Walker | 2010-05-31 21:46:12 -0400

Move tile_draw_floor function to tileview.

--------------------------------------------------------------------------------
71e8388afe | Enne Walker | 2010-05-31 21:46:12 -0400

[1327] Fix broken doors with &L vaults.
Reset the tile flavour after placing any vault in wiz mode.  This isn't
necessary for normal vault placement, as once the level is generated, we
can just do that process once.  This change also fixes any encompass
vaults that change the default floor and wall tile for the entire level.

--------------------------------------------------------------------------------
c615b86963 | Jude Brown | 2010-06-01 10:19:52 +1000

Provide entry points for enter_trove_2 (rob).
This can be placed in such a way that it requires disintegration to gain
access to the portal vault, which is un-ideal.

--------------------------------------------------------------------------------
06dc467e30 | Robert Vollmert | 2010-05-31 23:02:02 +0200

Also apply tile animations to the player cell.

--------------------------------------------------------------------------------
5f4410c134 | Robert Vollmert | 2010-05-31 22:57:40 +0200

Fix Cheibriados altar animation (#1644).

--------------------------------------------------------------------------------
613cfce82b | Robert Vollmert | 2010-05-31 17:18:24 +0200

Adapt target cycling to circular range.

--------------------------------------------------------------------------------
45d413fb11 | David Lawrence Ramsey | 2010-05-31 08:11:22 -0500

Change the message when a Recite-affected monster can't be imprisoned.
The new message deliberately parallels the Recite failure message.

--------------------------------------------------------------------------------
47711c4c01 | Adam Borowski | 2010-05-31 13:56:40 +0200

Greatly increase rot for starving ghouls (OG17).

--------------------------------------------------------------------------------
fcd4888831 | Robert Vollmert | 2010-05-31 08:58:05 +0200

Fix tiles mingw compile.

--------------------------------------------------------------------------------
eebe5194df | Enne Walker | 2010-05-30 23:59:15 -0400

[1310] Fix mipmapping issues with shoal waves.
This would probably be better fixed by adding support for a 1 pixel
clamped border to some tiles, but blowing them out to 32x32 also works.

--------------------------------------------------------------------------------
2d46f5c2e4 | Enne Walker | 2010-05-30 23:59:03 -0400

Split dngn tile page into feat/floor/wall.
Due to the set of coloured floors and walls, it was getting perilously
large.  The tiledef-dngn.h file now just indirectly calls the correct
feat/floor/wall functions depending on which tile index is used.

--------------------------------------------------------------------------------
665bb697be | Enne Walker | 2010-05-30 23:59:00 -0400

rltiles: Allow for new 'abstract' keyword.
This allows us to decouple game logic from reorganization of the tile
pages.  Tile pages can now be split without requiring too many code
changes.  tiledef files that are abstract just present an API for
indirectly accessing a set of tiledef functions.

--------------------------------------------------------------------------------
5ec1237d0f | Enne Walker | 2010-05-30 23:58:53 -0400

rltiles: Remove hard-coded logic for "dngn" file.

--------------------------------------------------------------------------------
f2467bd006 | Enne Walker | 2010-05-30 23:57:23 -0400

rltiles: Allow multiple include files.

--------------------------------------------------------------------------------
8de2a76987 | David Lawrence Ramsey | 2010-05-30 18:22:52 -0500

Attempt to fix Mantis 1597: Elyvilon should be able to block any attack.

--------------------------------------------------------------------------------
d7d7047dc1 | David Lawrence Ramsey | 2010-05-30 18:21:08 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2392c49838 | David Lawrence Ramsey | 2010-05-30 16:08:10 -0500

Reorder functions in godabil.cc one more time.

--------------------------------------------------------------------------------
c7f532a532 | David Lawrence Ramsey | 2010-05-30 16:08:10 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
9520de3223 | David Lawrence Ramsey | 2010-05-30 16:08:10 -0500

Add more spacing fixes.

--------------------------------------------------------------------------------
4e41ba09be | David Lawrence Ramsey | 2010-05-30 16:08:10 -0500

Move elyvilon_purification() from spells1.cc to godabil.cc.

--------------------------------------------------------------------------------
971a8cb01c | David Lawrence Ramsey | 2010-05-30 16:08:09 -0500

Rename purification() to elyvilon_purification().

--------------------------------------------------------------------------------
003c1215cd | David Lawrence Ramsey | 2010-05-30 16:08:09 -0500

Move zin_remove_all_mutations() from religion.cc to godabil.cc.

--------------------------------------------------------------------------------
2f3f61d3b1 | David Lawrence Ramsey | 2010-05-30 16:08:09 -0500

Rename jiyva_accepts_prayer() to jiyva_can_paralyse_jellies().
This makes it clearer what it's actually for, and it's consistent with
zin_sustenance(), yred_injury_mirror(), beogh_water_walk(), etc.

--------------------------------------------------------------------------------
dff201f947 | David Lawrence Ramsey | 2010-05-30 16:08:08 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
b0dba57802 | Enne Walker | 2010-05-30 16:38:19 -0400

[1645] Fix messages_at_top drawing incorrectly.
This was due to broken logic added in 575cfb8d.

--------------------------------------------------------------------------------
0e290b3960 | David Lawrence Ramsey | 2010-05-30 15:15:49 -0500

Remove duplicate declaration from spells2.h.

--------------------------------------------------------------------------------
4da305c5ef | David Lawrence Ramsey | 2010-05-30 15:15:49 -0500

Move yred_drain_life() from spells2.cc to godabil.cc.

--------------------------------------------------------------------------------
14476bdf1b | David Lawrence Ramsey | 2010-05-30 15:15:48 -0500

Rename drain_life() to yred_drain_life().

--------------------------------------------------------------------------------
f65f5b4a65 | David Lawrence Ramsey | 2010-05-30 15:15:48 -0500

Remove unused power parameter from zin_sanctuary().

--------------------------------------------------------------------------------
1dc4b830e4 | David Lawrence Ramsey | 2010-05-30 15:15:48 -0500

Move kiku_receive_corpses() from spells3.cc to godabil.cc.

--------------------------------------------------------------------------------
dc1ba2481a | David Lawrence Ramsey | 2010-05-30 15:15:48 -0500

Reorder functions in godabil.cc yet again.

--------------------------------------------------------------------------------
2bdacb75ed | David Lawrence Ramsey | 2010-05-30 15:15:47 -0500

Rename receive_corpses() to kiku_receive_corpses().

--------------------------------------------------------------------------------
628f4430e7 | David Lawrence Ramsey | 2010-05-30 15:15:47 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
6b03c090e1 | David Lawrence Ramsey | 2010-05-30 15:15:47 -0500

Simplify.

--------------------------------------------------------------------------------
bb609b9101 | David Lawrence Ramsey | 2010-05-30 15:15:46 -0500

Add more spacing fixes.

--------------------------------------------------------------------------------
26a4135440 | David Lawrence Ramsey | 2010-05-30 15:15:46 -0500

Comment fix.

--------------------------------------------------------------------------------
caa4ad3487 | David Lawrence Ramsey | 2010-05-30 15:15:46 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
8a573a0a59 | David Lawrence Ramsey | 2010-05-30 15:15:46 -0500

Move zin_sanctuary() from spells3.cc to godabil.cc.

--------------------------------------------------------------------------------
f13aed5b04 | David Lawrence Ramsey | 2010-05-30 15:15:45 -0500

Rename cast_sanctuary() to zin_sanctuary().

--------------------------------------------------------------------------------
b99d6b4d1a | David Lawrence Ramsey | 2010-05-30 15:15:45 -0500

Add more spacing fixes.

--------------------------------------------------------------------------------
e578b7b68f | Enne Walker | 2010-05-30 16:11:20 -0400

[9] Show draconians in ?/M lookup.
Exposed draco tile look-up functions that used to be in tilemcache and
then used them in the menu.

--------------------------------------------------------------------------------
88b15cda42 | Enne Walker | 2010-05-30 15:39:29 -0400

[1643] Fix tiles dungeon being black after save/reload.
In the previous commit to remove the tiles-specific tag enum, the version
tag was unused, so I just set it to save the value 0.  Unfortunately,
this was special-cased elsewhere to not load any tiles info.  Ack.

--------------------------------------------------------------------------------
ebd9b51c1f | Enne Walker | 2010-05-30 15:29:30 -0400

[491] Add purge's snake pit rune tile.

--------------------------------------------------------------------------------
51db02cd27 | Enne Walker | 2010-05-30 15:14:49 -0400

Fix tiles mingw warnings.

--------------------------------------------------------------------------------
4a2c0e214b | Enne Walker | 2010-05-30 15:12:53 -0400

[1471] Link with -pthread for tiles on OpenBSD.

--------------------------------------------------------------------------------
4e273aafec | David Lawrence Ramsey | 2010-05-30 13:56:58 -0500

Remove more now-unnecessary includes.

--------------------------------------------------------------------------------
f83e7324d4 | David Lawrence Ramsey | 2010-05-30 13:52:15 -0500

Simplify.

--------------------------------------------------------------------------------
ff945e0b1e | David Lawrence Ramsey | 2010-05-30 13:50:45 -0500

Rename divine shield functions to mention their associated god.

--------------------------------------------------------------------------------
a8f034d0b4 | David Lawrence Ramsey | 2010-05-30 13:45:45 -0500

Move TSO's divine shield functions from spells4.cc to godabil.cc.

--------------------------------------------------------------------------------
e656978ab5 | David Lawrence Ramsey | 2010-05-30 13:40:01 -0500

Reorder functions in godabil.cc again.

--------------------------------------------------------------------------------
f77c456301 | David Lawrence Ramsey | 2010-05-30 13:32:57 -0500

Remove now-unnecessary includes.

--------------------------------------------------------------------------------
b860c4d113 | David Lawrence Ramsey | 2010-05-30 13:26:07 -0500

Rename divine status removal functions to mention their associated gods.

--------------------------------------------------------------------------------
b2f17d8b3e | David Lawrence Ramsey | 2010-05-30 13:22:34 -0500

Move remove_divine_(stamina|vigour)() from spells1.cc to godabil.cc.

--------------------------------------------------------------------------------
1cedcc06eb | David Lawrence Ramsey | 2010-05-30 13:14:52 -0500

Simplify.

--------------------------------------------------------------------------------
b67f7f5af1 | David Lawrence Ramsey | 2010-05-30 13:13:07 -0500

Move elyvilon_divine_vigour() from spells1.cc to godabil.cc.

--------------------------------------------------------------------------------
440275db2d | David Lawrence Ramsey | 2010-05-30 13:04:52 -0500

Rename cast_divine_vigour() to elyvilon_divine_vigour().

--------------------------------------------------------------------------------
aa51895c0c | David Lawrence Ramsey | 2010-05-30 13:02:22 -0500

Simplify.

--------------------------------------------------------------------------------
5d299703ca | David Lawrence Ramsey | 2010-05-30 12:59:33 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
92b5f27f7d | David Lawrence Ramsey | 2010-05-30 12:55:11 -0500

Move zin_vitalisation() from spells1.cc to godabil.cc.

--------------------------------------------------------------------------------
a9e69fe267 | David Lawrence Ramsey | 2010-05-30 12:46:38 -0500

Rename cast_vitalisation() to zin_vitalisation().

--------------------------------------------------------------------------------
5f98f78fae | David Lawrence Ramsey | 2010-05-30 12:44:47 -0500

Add formatting fix.

--------------------------------------------------------------------------------
a2e052ea3d | David Lawrence Ramsey | 2010-05-30 12:37:04 -0500

For now, move the zin_remove_all_mutations() prototype to religion.h.

--------------------------------------------------------------------------------
6506162051 | David Lawrence Ramsey | 2010-05-30 12:31:59 -0500

Move zin_sustenance() from religion.cc to godabil.cc.
The prototype for it was already in godabil.h.

--------------------------------------------------------------------------------
0063b0c9a5 | David Lawrence Ramsey | 2010-05-30 12:27:57 -0500

Reorder functions in godabil.cc to match godabil.h again.

--------------------------------------------------------------------------------
a80ec45c69 | David Lawrence Ramsey | 2010-05-30 12:21:28 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
6fd5c684a3 | David Lawrence Ramsey | 2010-05-30 12:21:28 -0500

Rename ely_destroy_weapons() to elyvilon_destroy_weapons().

--------------------------------------------------------------------------------
1760668338 | David Lawrence Ramsey | 2010-05-30 12:21:28 -0500

Move ely_destroy_weapons() from religion.cc to godabil.cc.

--------------------------------------------------------------------------------
e069929d1c | David Lawrence Ramsey | 2010-05-30 12:21:27 -0500

Rename evolve_flora() to fedhas_evolve_flora().

--------------------------------------------------------------------------------
b7d8d7a11c | David Lawrence Ramsey | 2010-05-30 12:21:27 -0500

Simplify.

--------------------------------------------------------------------------------
e22a257745 | David Lawrence Ramsey | 2010-05-30 12:21:27 -0500

Constify a few variables.

--------------------------------------------------------------------------------
5aea03e7d6 | David Lawrence Ramsey | 2010-05-30 12:21:26 -0500

Rename corpse_spores() to fedhas_corpse_spores().

--------------------------------------------------------------------------------
1194550253 | David Lawrence Ramsey | 2010-05-30 12:21:26 -0500

Reorder a bit of godabil.h to match godabil.cc.

--------------------------------------------------------------------------------
22517d9f42 | David Lawrence Ramsey | 2010-05-30 12:21:26 -0500

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
cbe5f3d0e6 | David Lawrence Ramsey | 2010-05-30 12:21:25 -0500

Rename rain() to fedhas_rain().

--------------------------------------------------------------------------------
b8b6b0e265 | David Lawrence Ramsey | 2010-05-30 12:21:25 -0500

Rename lugonu_bends_space() to lugonu_bend_space().

--------------------------------------------------------------------------------
6b64ab4d28 | David Lawrence Ramsey | 2010-05-30 12:21:25 -0500

Reorder godabil.cc functions to match the order in godabil.h.

--------------------------------------------------------------------------------
88f26fc867 | David Lawrence Ramsey | 2010-05-30 12:21:25 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
84bb760922 | David Lawrence Ramsey | 2010-05-30 12:21:24 -0500

Rename plant_ring_from_fruit() to fedhas_plant_ring_from_fruit().

--------------------------------------------------------------------------------
1f758bc142 | David Lawrence Ramsey | 2010-05-30 12:21:24 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
bd2a7f6691 | David Lawrence Ramsey | 2010-05-30 12:21:24 -0500

Rename sunlight() to fedhas_sunlight().

--------------------------------------------------------------------------------
efc0c6eb55 | David Lawrence Ramsey | 2010-05-30 12:21:23 -0500

Rename fungal_bloom() to fedhas_fungal_bloom().

--------------------------------------------------------------------------------
17fec39681 | David Lawrence Ramsey | 2010-05-30 12:21:23 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
f2856cd1df | Robert Vollmert | 2010-05-30 18:51:04 +0200

Fix range calculation for bounced bolts.
For one, range_used() was off when the beam hadn't left the start,
e.g. when regressing from a reflecting wall tile. Then, undoing a
tracer wasn't resetting bounce information.

--------------------------------------------------------------------------------
3de040f249 | Robert Vollmert | 2010-05-30 18:51:04 +0200

Fix beam range checks.
Fixes issue #1640, #1641.

--------------------------------------------------------------------------------
67b070efb2 | David Lawrence Ramsey | 2010-05-30 10:37:58 -0500

Simplify.

--------------------------------------------------------------------------------
67cf887c29 | David Lawrence Ramsey | 2010-05-30 10:35:17 -0500

Properly use get_max_corpse_chunks() in one more place.

--------------------------------------------------------------------------------
d1c6365ccc | David Lawrence Ramsey | 2010-05-30 10:24:50 -0500

Rename you.demon_pow[] to you.innate_mutations[].

--------------------------------------------------------------------------------
28930cf821 | Enne Walker | 2010-05-30 10:40:58 -0400

[1575] Add coolio's new earth elemental tile.

--------------------------------------------------------------------------------
7eb3002075 | Enne Walker | 2010-05-30 10:17:46 -0400

[1626] Add Poor_Yurik's new giant bat tile.

--------------------------------------------------------------------------------
131ac1dc36 | Enne Walker | 2010-05-30 10:13:01 -0400

[1624] Add Poor_Yurik's new Eustachio tile.

--------------------------------------------------------------------------------
1d8523f49a | Enne Walker | 2010-05-30 09:34:51 -0400

Split player tile logic out from tilepick.cc.
All player tile look-ups are now in tilepick-p.cc.

--------------------------------------------------------------------------------
9517433e93 | Enne Walker | 2010-05-30 08:50:38 -0400

Split off tilepick files into tileview.
tileview.h/cc now contains all the functions that change what is shown to
the player via env.  tilepick now contains only "const" functions to look
up tiles.

--------------------------------------------------------------------------------
be734ca30e | Enne Walker | 2010-05-30 08:50:37 -0400

Split up tiles.h.
Most of it has gone into tilepick.h, but also into enum.h and
initfile.cc.  Unlike tiles.h which was included everywhere, tilepick.h is
now only a dependency of about half the files.

--------------------------------------------------------------------------------
ca6e3ae38e | Enne Walker | 2010-05-30 08:50:37 -0400

Use tileidx_t for tile indices.  Also, cleanup.
This new type defines to unsigned int, but it cleans up a lot of the
int/unsigned int/short confusion all over the codebase for tile indices.

This commit also cleans up tiles code to use coord_def more and to change
function signatures to pass const refs and non-const pointers.

--------------------------------------------------------------------------------
575cfb8db1 | Enne Walker | 2010-05-30 08:50:37 -0400

Refactor crawl view buffer.
Rather than using explicit offsets (e.g. buffy[0] and buffy[1]), store
colour, glyph, and tiles for each cell in the view buffer in a struct
with named members.  This refactoring will also theoretically allow for
the tiles version to display glyphs instead of tiles.

--------------------------------------------------------------------------------
7e9196891f | Robert Vollmert | 2010-05-30 08:59:44 +0200

Allow duplicate uniques in arena (#1634).

--------------------------------------------------------------------------------
51bcbead63 | David Lawrence Ramsey | 2010-05-29 19:37:51 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
cb14027732 | David Lawrence Ramsey | 2010-05-29 19:34:06 -0500

Per Mantis 1447, scale the power of Ely's Divine Vigour a bit better.
Instead of gaining 10% HP and MP every 6 levels of Invocations skill,
gain 5% HP and MP every 3 levels of Invocations skill.

--------------------------------------------------------------------------------
f7a0984b1e | David Lawrence Ramsey | 2010-05-29 19:09:53 -0500

Add formatting fix.

--------------------------------------------------------------------------------
0a2a4a7992 | David Lawrence Ramsey | 2010-05-29 19:08:45 -0500

Simplify further.

--------------------------------------------------------------------------------
147c7959a2 | David Lawrence Ramsey | 2010-05-29 19:05:37 -0500

Simplify.

--------------------------------------------------------------------------------
4aeb09a263 | David Lawrence Ramsey | 2010-05-29 19:00:45 -0500

Change one message for Zin's Imprison.
When it's used on a Recite-affected monster, display "Nothing appears to
happen" instead of "You cannot imprison this monster!", as the latter
implies that the monster can never be imprisoned, while it could be once
the Recite effects wear off.

--------------------------------------------------------------------------------
1c60ac9d3a | David Lawrence Ramsey | 2010-05-29 18:45:40 -0500

Clarify Ely's pacification messages.
Monsters that can never be pacified will now be indicated with "You
cannot pacify this monster!", while monsters that can be pacified under
the right conditions will get the usual "Nothing appears to happen."

--------------------------------------------------------------------------------
b4ea0ed394 | David Lawrence Ramsey | 2010-05-29 18:42:48 -0500

Comment fixes.

--------------------------------------------------------------------------------
ac39ced3f1 | Robert Vollmert | 2010-05-30 00:01:37 +0200

Adapt the interface to euclidean range.
This includes: closest hostile in range check, viewwindow
range darkening, targeting out of range check.

--------------------------------------------------------------------------------
97c5eea3f2 | Robert Vollmert | 2010-05-30 00:01:36 +0200

Euclidean range for beams.

--------------------------------------------------------------------------------
bdb4c33e37 | Robert Vollmert | 2010-05-30 00:01:36 +0200

Fix tracking of bolt::bounces.
Might fix issues with reflections of bounced bolts.

--------------------------------------------------------------------------------
fb351136f5 | Robert Vollmert | 2010-05-30 00:01:36 +0200

Simplify electricity beam in water effect.

--------------------------------------------------------------------------------
0b3a339f21 | David Lawrence Ramsey | 2010-05-29 15:52:59 -0500

Fix grammar.

--------------------------------------------------------------------------------
f4de9dacf4 | Robert Vollmert | 2010-05-29 19:43:32 +0200

Update comment.

--------------------------------------------------------------------------------
3a0d0bd6bb | Robert Vollmert | 2010-05-29 17:52:43 +0200

Remove unimplemented player::set_arena_los from header.

--------------------------------------------------------------------------------
62434dd8d5 | Robert Vollmert | 2010-05-29 15:22:23 +0200

Fix non-unicode abort compile and message error.

--------------------------------------------------------------------------------
3f41f49745 | Robert Vollmert | 2010-05-29 15:19:19 +0200

If unicode doesn't work, abort instead of ASCII fall-back.
The ASCII fall-back certainly didn't work, and may well have caused #1242.

--------------------------------------------------------------------------------
486b011a33 | Robert Vollmert | 2010-05-29 10:02:37 +0200

Avoid double necromancy miscasts. Fixes #1544. (xale)

--------------------------------------------------------------------------------
a3f9f995d2 | Robert Vollmert | 2010-05-29 09:52:59 +0200

Don't cgotoxy a line too far down (#1591, #1604).

--------------------------------------------------------------------------------
ed4ea66b2d | David Lawrence Ramsey | 2010-05-28 18:31:22 -0500

Allow demonic crawlers to show up in Pandemonium.

--------------------------------------------------------------------------------
7a8f46dcca | David Lawrence Ramsey | 2010-05-28 18:30:22 -0500

Allow hell hogs to show up in the Abyss.

--------------------------------------------------------------------------------
bd163f9049 | David Lawrence Ramsey | 2010-05-28 17:39:30 -0500

Typo fixes.

--------------------------------------------------------------------------------
6182bb0cbe | David Lawrence Ramsey | 2010-05-28 16:04:08 -0500

Fix punctuation for eyeballs, and document SInv for level 3 antennae.

--------------------------------------------------------------------------------
34e562be15 | Robert Vollmert | 2010-05-28 22:40:39 +0200

Use beam_source for miscast beam attribution.
That is, beam_source_as_target() now returns beam_source when
thrower == KILL_MISCAST, instead of always returning MHITYOU.

beam_source_as_target() in turn is used as the source for
behaviour events (attitude changes) and kill attribution
(through monster_die).

Hell effect and zot trap miscasts will now never be
attributed to the player. It would be possible to attribute
Zot trap miscasts to whoever steps on the trap, but that
functionality would need to be added, and I don't think
it's really a problem that you can step on Zot traps
"safely" around friendlies.

Fixes issues #732, #1313 and duplicates.

--------------------------------------------------------------------------------
8eee4bb713 | Robert Vollmert | 2010-05-28 22:40:39 +0200

Set a valid bolt::beam_source for conjuration miscasts.
Before, the miscast special values were stored in beam_source
(in particular MHITYOU for zot trap miscasts).

--------------------------------------------------------------------------------
e215fac055 | Robert Vollmert | 2010-05-28 22:40:39 +0200

Fix a misuse of NON_MONSTER vs MONS_NO_MONSTER.

--------------------------------------------------------------------------------
dc1bc6d75b | Robert Vollmert | 2010-05-28 22:40:39 +0200

Change MHITNOT, MHITYOU and miscast defines to an enum.
This probably shouldn't be in defines.h, but better than before.

At least, now MHITYOU is no longer equal to ZOT_TRAP_MISCAST.

--------------------------------------------------------------------------------
76712fca1e | Robert Burnham | 2010-05-28 13:18:33 -0500

Fix typo in headbutt aux effect

--------------------------------------------------------------------------------
f80f3c6a0f | Robert Burnham | 2010-05-28 13:15:12 -0500

Implement Hooves aux effect
Moves the switch statement around for all unarmed effects so as to
prevent having to special case the UNAT_KICK code in some wierd location.
For UNAT_KICK aux attacks with MUT_HOOVES, the player does an additional
bestroll(std::min(MUT_HOOVES*5/2, ac_dmg_reduction), MUT_HOOVES) in damage.

That is to say, the damage ranges from 0 to MUT_HOOVES * 5/2 or the amount
of damage that was mitigated by the monster's AC, whichever is lower. Higher
levels of hooves improve (statistically) the amount of ac that is effectively
ignored.

--------------------------------------------------------------------------------
9051e0b348 | David Lawrence Ramsey | 2010-05-28 11:14:50 -0500

Fix wording.

--------------------------------------------------------------------------------
180e33d142 | Adam Borowski | 2010-05-28 17:21:06 +0200

Make "disallowed for generation" a proper fixedart flag.

--------------------------------------------------------------------------------
d6068afbc8 | Janne Lahdenpera | 2010-05-28 15:20:30 +0300

Correct typos and grammar in tutorial
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
881c5e7792 | Janne Lahdenpera | 2010-05-28 15:00:14 +0300

Preliminary Congratulations map for Tutorial
Has a congratulation message and inevitable death
in the next room with scenery.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
ffa7993343 | Robert Vollmert | 2010-05-28 12:35:20 +0200

Use the appropriate position for items owned by mimics (xale).
Fixes issue #1518 (tiles crash for mimic in ctrl-x display).

--------------------------------------------------------------------------------
edb13198fe | Janne Lahdenpera | 2010-05-28 12:53:53 +0300

Tutorial tweaks, Added doors and not_cursed on ring
On some of the ranged rooms, the monster would start hitting the player
way before he had a chance to read the help text. Thus I added doors to
these rooms
Identifying game ring had a chance to spawn cursed, added not_cursed to it.
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
da9ce171f9 | Eino Keskitalo | 2010-05-28 11:17:39 +0300

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
b10d0495c0 | Robert Vollmert | 2010-05-27 23:59:33 +0200

Do not make notes for shop items accessed from search results. (xale)

--------------------------------------------------------------------------------
716fceba49 | Robert Burnham | 2010-05-27 16:07:17 -0500

Implement headbutt mini-stun
Stuns for between 0 and damage_done (or 7, whichever is lower)
as a function of the level of MUT_HORNS. All headbutts stun now,
potentially for a moderately low amount, but with horns the
amounts are likely to be higher (especially at low UNAT skill)
because of extra damage and additional rolls.

--------------------------------------------------------------------------------
b1e9ccdb39 | Robert Burnham | 2010-05-27 16:05:31 -0500

Implement bleed effects framework & for UNAT_PUNCH
Creates the monster enchantments and monster-related
functions for bleeding effects. Does not implement any
player related bleeding or DUR_BLEED.

--------------------------------------------------------------------------------
a54af787fd | Adam Borowski | 2010-05-27 21:21:51 +0200

Fix tiles build on non-MSVC.

--------------------------------------------------------------------------------
3c3acb16c6 | David Lawrence Ramsey | 2010-05-27 10:25:19 -0500

Remove the M_NO_SKELETON flag from golden eyes again.
It's redundant, since they don't leave corpses in the first place.

--------------------------------------------------------------------------------
0fded53b1e | David Lawrence Ramsey | 2010-05-27 10:17:14 -0500

Shining eyes, eyes of devastation, and golden eyes don't have skeletons.

--------------------------------------------------------------------------------
55a8159e38 | Robert Vollmert | 2010-05-27 16:09:18 +0200

Setup beam structure properly for draconian breath.
This should fix issue #1168, draconians sometimes breathing at themselves.

The beam structure stayed in the state of the last monster spell that was
considered, so a self-targeted spell in the monster spell book (e.g.
invisibility on draconian knights) could leave the beam targeting
the monster itself.

--------------------------------------------------------------------------------
abd230282b | Robert Vollmert | 2010-05-27 16:09:17 +0200

Formatting.

--------------------------------------------------------------------------------
d4824fc6fd | Enne Walker | 2010-05-27 10:05:21 -0400

Add monster list to the changelog.

--------------------------------------------------------------------------------
20b59f3005 | David Lawrence Ramsey | 2010-05-27 08:09:01 -0500

Update the 0.7 changelog yet again.

--------------------------------------------------------------------------------
14caa39fb1 | David Lawrence Ramsey | 2010-05-27 08:01:01 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
e12984fb4f | Steven Noonan | 2010-05-27 04:37:09 -0700

makefile: fix NO_INLINE_DEPGEN inconsistency with util/ directory
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
526820c3fe | Steven Noonan | 2010-05-27 04:37:09 -0700

hiscores.cc: fix incorrect if statement
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cca2f724cd | Steven Noonan | 2010-05-27 04:37:09 -0700

chardump.h: fix scorefile_entry class/struct declaration inconsistency
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ee8148a5d2 | Steven Noonan | 2010-05-27 04:37:08 -0700

player.h: remove superfluous semicolon
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
749e98f4c8 | Robert Vollmert | 2010-05-27 13:17:01 +0200

Change stat recovery to be one point at a time.
Recovery rate is the same as loss rate with one level of
MUT_DETERIORATION for the moment.

--------------------------------------------------------------------------------
b7090ef001 | Robert Vollmert | 2010-05-27 13:11:42 +0200

Make restore_stat(STAT_RANDOM) choose a stat with loss.
It was only used for this purpose anyway.

--------------------------------------------------------------------------------
82f42597a0 | Robert Vollmert | 2010-05-27 12:39:47 +0200

Bring dgn_find_nearby_stair in line with the comments.
In particular, shouldn't place the player in pandemonium
lord vaults anymore.

Fixes issue #441.

--------------------------------------------------------------------------------
40939b5301 | Robert Vollmert | 2010-05-27 11:50:25 +0200

Fix extra {unknown} in morgue inventory listings.

--------------------------------------------------------------------------------
3a3f7a341f | Robert Vollmert | 2010-05-27 11:31:24 +0200

Simplify delay handling, and fix some extra wasted turns.
Each iteration of _input now only deals with one delay.

handle_delay, _finish_delay etc. don't chain on to the
next delay anymore.

Make sure finishing a delay doesn't cost a turn. In
particular, passwall works properly again.

Mostly things seem to work, but it's likely I missed
something.

--------------------------------------------------------------------------------
80a4537a17 | Enne Walker | 2010-05-26 23:15:26 -0400

Merge ActorRegion and MonsterRegion.

--------------------------------------------------------------------------------
1f1ceb1cdc | Enne Walker | 2010-05-26 23:15:26 -0400

Allow left-clicking on monster list to attack.
This uses the same code as the dungeon, so firing, casting, evoking on
monsters can all be done via keyboard modifiers.

--------------------------------------------------------------------------------
5babdf18d2 | Enne Walker | 2010-05-26 23:15:26 -0400

Add monster list for tiles.
This is currently implemented as an additional tab.  Possibly
improvements might be to always display it on screen if there's room or
to simply pop to the tab when new monsters appear.

--------------------------------------------------------------------------------
beafec8f2f | Enne Walker | 2010-05-26 23:15:26 -0400

Refactor tile animations and variations.
Rather than have one large function that applies to the entire dungeon,
have simpler functions that just apply to a single cell so that it can be
used elsewhere.

--------------------------------------------------------------------------------
bc13d7a693 | Enne Walker | 2010-05-26 23:15:25 -0400

Move special-case cloud logic.
Mouseover descriptions for dungeon cells displayed information about the
cloud underneath them.  This should really be part of the general case.

--------------------------------------------------------------------------------
d9333cb15b | Enne Walker | 2010-05-26 23:15:25 -0400

Adding monster tile tab images.

--------------------------------------------------------------------------------
ca65751d90 | Jude Brown | 2010-05-27 12:20:10 +1000

Update more of the tutorial messages.
The first level should now be completely tiles/console sensitive.

--------------------------------------------------------------------------------
980150f56d | Charles Otto | 2010-05-26 19:12:01 -0400

Remove some debug output

--------------------------------------------------------------------------------
5e1565eefe | Robert Vollmert | 2010-05-26 21:40:47 +0200

Revert "Do not search for spells inside books player cannot understand. (xale)"
It turns out the highlevel books behave somewhat sensibly
with the stash tracker already in 0.7.

This reverts commit 9acb355451385428160d69b640dcc94a29ba058d.

--------------------------------------------------------------------------------
9acb355451 | Robert Vollmert | 2010-05-26 21:11:12 +0200

Do not search for spells inside books player cannot understand. (xale)

--------------------------------------------------------------------------------
89197f2435 | David Lawrence Ramsey | 2010-05-26 13:18:23 -0500

Document Jiyva changes in the 0.7 changelog.

--------------------------------------------------------------------------------
35b78ff6ac | David Lawrence Ramsey | 2010-05-26 13:12:40 -0500

Typo fix.

--------------------------------------------------------------------------------
02a51a935f | David Lawrence Ramsey | 2010-05-26 13:10:07 -0500

Show the thin skeletal structure mutation's stealth effects differently.

--------------------------------------------------------------------------------
743c67268d | Robert Vollmert | 2010-05-26 19:46:19 +0200

Make fangs and acidic bite give extra aux bite attacks.
This means vampires gain aux bites, which is probably
good, but as before I'm not sure how vampire auxiliary
bites were actually meant to work.

--------------------------------------------------------------------------------
9e9dfb190f | Robert Vollmert | 2010-05-26 19:46:19 +0200

Allow giving slime mutations through wizard mode.

--------------------------------------------------------------------------------
e031ec17b1 | Robert Vollmert | 2010-05-26 19:46:18 +0200

Make acid bite use new SPWPN_ACID.
This reorganizes the weapon brand enum a bit (the numbers
were off, and SPWPN_DEBUG_RANDART is now not forced to 25
anymore. This might cause unforseen problems.

--------------------------------------------------------------------------------
6d268f1676 | Shayne Halvorson | 2010-05-26 19:43:28 +0200

Add several Jiyva specific mutations, Jiyva tweaks
Adds six new slime-related mutations that only Jiyva can give.
Jiyva's royal jelly effect now spawns short-lived friendly slimes.
Passive jelly drops occur under penance to prevent using penance to avoid item 
loss
Stat altering occurs less frequently

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
162ab44c42 | David Lawrence Ramsey | 2010-05-26 11:05:18 -0500

Disallow the venom brand on staves again.  Olgreb's is a special case.

--------------------------------------------------------------------------------
a58dbceb44 | David Lawrence Ramsey | 2010-05-26 11:01:01 -0500

Revert "Remove the restriction on poisoning blunt weapons."
This reverts commit e55b135c3b5bef40b1c5420ecc6c609f3651a714.

--------------------------------------------------------------------------------
e55b135c3b | David Lawrence Ramsey | 2010-05-26 07:06:47 -0500

Remove the restriction on poisoning blunt weapons.
It already has an exception for staves, which are also blunt; aside from
Tukima's Vorpal Blade/Maxwell's Silver Hammer, such restrictions don't
apply to other brands; the brand is only randomly generated on non-blunt
weapons, so it'll be limited to deliberate enchantments and artefacts;
and many later monsters are poison-resistant, in any case.

--------------------------------------------------------------------------------
3faeec86e2 | David Lawrence Ramsey | 2010-05-26 07:03:29 -0500

Fix punctuation and wording.

--------------------------------------------------------------------------------
ab4db4c9ea | David Lawrence Ramsey | 2010-05-26 06:55:11 -0500

Comment fixes.

--------------------------------------------------------------------------------
d1767427b7 | Adam Borowski | 2010-05-26 10:55:33 +0200

Increase major save version to 24.
This skips version 23 due to CDO's workaround for the incompatibility
in 3f6687c4.

--------------------------------------------------------------------------------
d9454ce9c1 | Adam Borowski | 2010-05-26 10:22:17 +0200

Restore save compat for 22 majors.  BREAKS SAVES FROM 3f6687c4.

--------------------------------------------------------------------------------
0885fff148 | Enne Walker | 2010-05-25 22:09:09 -0400

Updating CIA hook for my changed email address.

--------------------------------------------------------------------------------
f786a607b0 | Enne Walker | 2010-05-25 22:09:09 -0400

Abstract dungeon rendering into a separate class.
This cleans up all of the global state access during packing (other than
player_doll).  This new code can also get reused for drawing monsters with
equipment and status effects, such as in a theoretical monster list.

--------------------------------------------------------------------------------
3f6687c46f | Robert Burnham | 2010-05-25 14:35:44 -0500

Rewrite get_tension and Demonic Guardian
New implementation of DG summons temporary guardians based on tension
and an internal timer. Changes to get_tension were necessary to facilitate
the non-religous use of the function (previous implementation assert'ed
when god == GOD_NO_GOD).

--------------------------------------------------------------------------------
bcb8288e70 | Robert Vollmert | 2010-05-25 20:38:38 +0200

Remove type_ids lookup bounds checks.
The FixedArray's asserts should be enough to catch illegal use,
and I don't expect that there was a sensible use of calling
the various item_type functions with out-of-bounds subtypes.

--------------------------------------------------------------------------------
3995117a4f | Robert Vollmert | 2010-05-25 17:30:24 +0200

Remove magic number 50, subtype identification array size.

--------------------------------------------------------------------------------
851349c38e | David Lawrence Ramsey | 2010-05-25 09:04:28 -0500

Make Shatter properly take petrifying/petrified monsters into account.

--------------------------------------------------------------------------------
b5c7c5efac | Adam Borowski | 2010-05-25 00:23:48 +0200

Fix dispersal ignoring stasis/-TELE.

--------------------------------------------------------------------------------
5b446e0b94 | Adam Borowski | 2010-05-24 17:38:31 +0200

Increase Polyphemus' weight, let's give him a chance to spawn.

--------------------------------------------------------------------------------
3ebf080582 | David Lawrence Ramsey | 2010-05-24 09:32:27 -0500

Simplify.

--------------------------------------------------------------------------------
bbdee4a490 | Robert Vollmert | 2010-05-24 14:20:17 +0200

Inscribe unknown items with "unknown" on death (#1190).

--------------------------------------------------------------------------------
c8a6eac1ec | Robert Vollmert | 2010-05-24 12:55:41 +0200

Attempt to fix extra turns wasted by running.
Previously, shift-running always cost an extra 10-unit turn.
Similarly, autoexplore took an extra turn at the end.

As a spriggan, try running away from a centaur with shift-dir.

I'm not confident the change doesn't break other things, however;
review appreciated.

Fixes issue #1405.

--------------------------------------------------------------------------------
042f4c9c8c | Robert Vollmert | 2010-05-24 12:05:50 +0200

Fix endless loop when rebuilding quote db.
This is a hack, since it just increases the input buffer size to enough
to handle the current quotes.

The line-wrapping done in 14e5347de4f8 caused a line longer than the
previous limit of 1000 characters for the "clay golem" quote.

But the DB parser shouldn't go into an endless loop for any line
length.

--------------------------------------------------------------------------------
764110369c | David Lawrence Ramsey | 2010-05-23 19:43:34 -0500

Add another 0.7 changelog entry.

--------------------------------------------------------------------------------
30ad6d4896 | David Lawrence Ramsey | 2010-05-23 17:54:21 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
0fe5fe4e42 | David Lawrence Ramsey | 2010-05-23 16:22:43 -0500

Tweak wording.

--------------------------------------------------------------------------------
a8bb9b05ff | Adam Borowski | 2010-05-23 23:14:18 +0200

Give draconians actual descriptions.

--------------------------------------------------------------------------------
71ec3233f5 | Adam Borowski | 2010-05-23 22:33:18 +0200

Remove special casing for vampiric weapons for ghouls.  All undead work the 
same now.

--------------------------------------------------------------------------------
4f81b192b3 | Adam Borowski | 2010-05-23 22:33:18 +0200

Allow vampires/ghouls to evoke rods when starving, for consistency with spells.

--------------------------------------------------------------------------------
e3388b84ad | Adam Borowski | 2010-05-23 22:33:18 +0200

Rot-based ghoul hunger system [Mantis 1536]
Ghouls can't starve to death anymore, but being hungry accelerates rotting,
more so for every level of hunger.

Actual rate of acceleration needs to be balanced.  I currently set it to 1.5x
per level (5.1x for starving).  If that's too low, 2x (16x for starving) looks
like a good alternative.

--------------------------------------------------------------------------------
e2b27f35da | Charles Otto | 2010-05-23 16:18:34 -0400

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
local_master

--------------------------------------------------------------------------------
dae83e4bc3 | David Lawrence Ramsey | 2010-05-23 15:15:03 -0500

Add formatting fix.

--------------------------------------------------------------------------------
7fc49062db | Charles Otto | 2010-05-23 16:08:05 -0400

Merge branch 'ballisto_upgrade' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
local_master

--------------------------------------------------------------------------------
6cc92329b4 | Charles Otto | 2010-05-23 15:53:31 -0400

Account for h. ballistos when deciding if a fungal colony is dead
Hyperactive ballistos count as part of the colony for determining when
the colony is wiped out, but don't cause or receive activations, and
monsters killing friendly ones doesn't cause Fedhas piety loss (unless
the hyperactive ballisto killed was the last ballisto/spore on the
level).

--------------------------------------------------------------------------------
96b12c91d3 | David Lawrence Ramsey | 2010-05-23 13:59:41 -0500

Comment fix.

--------------------------------------------------------------------------------
161555e728 | David Lawrence Ramsey | 2010-05-23 13:59:00 -0500

Fix off-by-one error when calculating Chei's effect on ghoul rotting.

--------------------------------------------------------------------------------
14e5347de4 | David Lawrence Ramsey | 2010-05-23 13:23:25 -0500

Fix hard wrapping where applicable.

--------------------------------------------------------------------------------
aa3e36880c | David Lawrence Ramsey | 2010-05-23 13:08:12 -0500

Fix missing word.

--------------------------------------------------------------------------------
bf3e0ff387 | David Lawrence Ramsey | 2010-05-23 13:06:16 -0500

Add punctuation-related spacing fixes.

--------------------------------------------------------------------------------
2ace5a74fa | David Lawrence Ramsey | 2010-05-23 12:57:58 -0500

Typo fix.

--------------------------------------------------------------------------------
1af27d67d5 | David Lawrence Ramsey | 2010-05-23 12:47:05 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
46315a7163 | David Lawrence Ramsey | 2010-05-23 12:33:33 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
31cb37786f | David Lawrence Ramsey | 2010-05-22 19:23:11 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
2fcabbcb5a | David Lawrence Ramsey | 2010-05-22 19:10:53 -0500

Fix Zin's Imprison so that it always fully imprisons monsters.

--------------------------------------------------------------------------------
d763d0cf11 | Charles Otto | 2010-05-22 18:56:31 -0400

Special casing to give h. ballistos a radius 2 auto exclusion
Also adding special casing to make sure they are excluded even when
friendly.

--------------------------------------------------------------------------------
dfad3cfddb | David Lawrence Ramsey | 2010-05-22 17:47:14 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
983258a65f | Charles Otto | 2010-05-22 17:58:57 -0400

Make mold around hyperactive ballistos show up as glowing
Make mold within the blast radius of a hyperactive ballistomycete
show up as glowing all the time (hopefully this approach is not too
costly).

--------------------------------------------------------------------------------
e86e83a623 | Charles Otto | 2010-05-22 17:33:55 -0400

Consolidate floor covering descriptions
Do the description text for floor coverings (mold, blood) in exactly
one place. Add a different description for the 'glowing mold'
that shows up when ballistos die.

--------------------------------------------------------------------------------
9d8df7cc9a | Charles Otto | 2010-05-22 16:44:22 -0400

Redo handling of the activation line when ballistos die
Instead of flashing the path to the activated ballisto for a fixed
period of wall time, display it until the player's next turn. I did
this by adding another fprop for the 'activated' mold state and
updating all moldy squares every turn.

--------------------------------------------------------------------------------
20e240ee26 | Charles Otto | 2010-05-22 13:27:18 -0400

Make evolution turn ballistos into the new fungus type
Also clear up some oddities with the monster species field for various
fungi in mon-data.h.

--------------------------------------------------------------------------------
ff25064473 | Charles Otto | 2010-05-22 13:27:08 -0400

Flesh out ENCH_EXPLODING
It causes explosions.

--------------------------------------------------------------------------------
698906749c | Charles Otto | 2010-05-22 13:26:59 -0400

Shuffle 'f' colors a little
List toadstools color as black in mon-data.h--their color is set
depending on what they are created from so it's appropriate to use the
placeholder color in mon-data.h

Move wandering mushrooms back to brown--I believe they were moved to
red simply because toadstools were listed as brown, and the reddish 'f'
color space is getting a little crowded.

Set ballisto colors as: magenta - inactive, red - active,
lightred - hyperactive.

--------------------------------------------------------------------------------
7e6a3e38b1 | Charles Otto | 2010-05-22 13:26:46 -0400

Refactor spore/ball lightning explosion code
Move the spore/ball lightning explosion setup code out of
_spore_goes_pop

--------------------------------------------------------------------------------
6db9b0df12 | Charles Otto | 2010-05-22 13:20:53 -0400

Add a monster type for ballistos to be upgraded into
Add a monster type that Fedhas' evolution can turn a ballistomycete into

--------------------------------------------------------------------------------
5d06129888 | Charles Otto | 2010-05-21 22:35:56 -0400

Don't let summoned giant spores create mold/ballistos
Don't let summoned giant spores (summoned by shadow creatures) leave
mold or ballistomycetes when they move or explode. This is consistent
with how summoned monsters don't leave corpses etc.

--------------------------------------------------------------------------------
b96e074489 | David Lawrence Ramsey | 2010-05-21 10:10:51 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
e67ae02a48 | David Lawrence Ramsey | 2010-05-21 09:10:09 -0500

Handle the new corpses properly in tiles.

--------------------------------------------------------------------------------
278a05d217 | David Lawrence Ramsey | 2010-05-21 08:42:06 -0500

Give demonic crawlers corpses.

--------------------------------------------------------------------------------
da4c8e18ac | David Lawrence Ramsey | 2010-05-21 08:41:09 -0500

Demonic crawlers are centipede-like, so they shouldn't have skeletons.

--------------------------------------------------------------------------------
674d2bbdc7 | David Lawrence Ramsey | 2010-05-21 08:33:15 -0500

Disallow hell hound and hell hog zombies.

--------------------------------------------------------------------------------
59a8752d96 | David Lawrence Ramsey | 2010-05-21 08:31:49 -0500

Ensure that hell hound corpses get a proper corpse type.

--------------------------------------------------------------------------------
f734d737fe | Adam Borowski | 2010-05-21 12:57:17 +0200

Document !d.

--------------------------------------------------------------------------------
fdef2f9c20 | Adam Borowski | 2010-05-21 12:26:57 +0200

Randart names: s/Misfortune/Disaster/ because of the unrand.

--------------------------------------------------------------------------------
e09309aec4 | Adam Borowski | 2010-05-21 12:21:45 +0200

Give hell hogs and hounds corpses.  Yay bacon and Korean food!

--------------------------------------------------------------------------------
aa43c347dd | Robert Burnham | 2010-05-20 15:25:33 -0500

Improve display of pbd status for DS
In an effort to make the effects of PBD more transparent for a non-spoiled
player, the pbd status will go away if there are no corpses in range of
the effect. A "You feel less regenerative." message still occurs when the
duration actually expires.

--------------------------------------------------------------------------------
3815686269 | Robert Burnham | 2010-05-20 15:10:46 -0500

Fix mantis 1593
Body slot facets that utilized the same equipment slot would not be prevented
leading to having both antennae and horns or hooves and talons. Added code
utilizes _body_facets and appends changes to _physiology_conflict.

--------------------------------------------------------------------------------
b36e086146 | Robert Vollmert | 2010-05-20 20:38:52 +0200

Fix buggy ghosts created from ranged weapon brands (#1376).
Brands like SPWPN_REAPING were being copied into the ghost melee
brand.

--------------------------------------------------------------------------------
a331fe6c06 | David Lawrence Ramsey | 2010-05-20 12:39:29 -0500

Fix another part of Mantis 1502.
Remove the check for plant holiness, so that no immobile monsters are
marked as influenced by Zin's Sanctuary.  This means that the fear
effect from the sanctuary won't mark them as fleeing, although they
still won't attack as long as the effect lasts, or as long as they
remain in the sanctuary.

--------------------------------------------------------------------------------
1111ac0e77 | David Lawrence Ramsey | 2010-05-20 11:30:59 -0500

Fix part of Mantis 1501.
Display a proper warning prompt if casting Chain Lightning will violate
Zin's Sanctuary.

--------------------------------------------------------------------------------
15db765914 | David Lawrence Ramsey | 2010-05-20 10:57:12 -0500

Fix part of Mantis 1502.
Make sure that only immobile monsters with plant holiness are unaffected
by Zin's Sanctuary, and allow wandering mushrooms that might attack to
flee while in sight of the player.

--------------------------------------------------------------------------------
f57374bc24 | David Lawrence Ramsey | 2010-05-20 10:56:25 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
933500fe17 | Robert Vollmert | 2010-05-20 15:02:39 +0200

Unconditionally invalidate LOS when loading level.
After 21156d0e4f, LOS was no longer invalidated after
returning from a level excursion, which may well have
caused issues like #1587.

It's certainly right to invalidate it unconditionally,
and not just when returning as before that change.

--------------------------------------------------------------------------------
8e22272e96 | David Lawrence Ramsey | 2010-05-19 20:34:31 -0500

Fix Mantis 1581.
Don't display "You start resting." if you have 3 levels of the slow
healing mutation.

--------------------------------------------------------------------------------
55b7e8e4b5 | David Lawrence Ramsey | 2010-05-19 20:02:37 -0500

Fix missing message when losing Zin's Imprison power.

--------------------------------------------------------------------------------
c372920212 | David Lawrence Ramsey | 2010-05-19 19:28:34 -0500

Ensure that only self-entombed monsters lose energy when unentombed.

--------------------------------------------------------------------------------
2673c50a11 | David Lawrence Ramsey | 2010-05-19 14:36:27 -0500

Document Zin's new power in the 0.7 changelog.

--------------------------------------------------------------------------------
d6f4d66f66 | David Lawrence Ramsey | 2010-05-19 13:44:24 -0500

Implement Zin's Recite ability.
Note that it's a bit crude in some ways.  Also, there are minor issues:

* The check for whether a monster can be imprisoned is currently
  identical to the check for whether Recite will work on it.
* Recite effects are not applied to the imprisoned monster yet.
* The ability costs are roughly a midpoint between Vitalisation and
  Sanctuary.
* The documentation has been updated to mention Imprison, but it could
  probably be improved.

--------------------------------------------------------------------------------
f68c04dcdc | David Lawrence Ramsey | 2010-05-19 11:55:38 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
9fce5685fa | David Lawrence Ramsey | 2010-05-19 11:47:59 -0500

Only mark a monster as entombed if walls were actually built.

--------------------------------------------------------------------------------
58e6926856 | David Lawrence Ramsey | 2010-05-19 11:41:52 -0500

Simplify more.
Also fix a potential crash introduced by the last simplification.

--------------------------------------------------------------------------------
ca67271798 | David Lawrence Ramsey | 2010-05-19 11:10:36 -0500

Simplify.

--------------------------------------------------------------------------------
a4aee64c08 | David Lawrence Ramsey | 2010-05-19 10:14:12 -0500

Fix check for rings of slaying with two negative stats.

--------------------------------------------------------------------------------
06f8367f6a | David Lawrence Ramsey | 2010-05-19 10:00:29 -0500

Fix Mantis 1582.
Explicitly add negative cost multipliers for stat-based rings with
negative stats, so that rings of slaying with negative stats aren't
overpriced.

--------------------------------------------------------------------------------
f4ff5409d7 | David Lawrence Ramsey | 2010-05-19 09:59:56 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c2039055bd | Robert Vollmert | 2010-05-19 15:39:21 +0200

Fix level map not following stairs.

--------------------------------------------------------------------------------
f95222daf3 | Robert Vollmert | 2010-05-19 15:13:02 +0200

Fix you_can_wear allowing gloves for everybody.

--------------------------------------------------------------------------------
22d564b4f4 | Robert Vollmert | 2010-05-19 12:53:03 +0200

Redraw screen after leaving level map (#1585).

--------------------------------------------------------------------------------
b9d6f30758 | Robert Vollmert | 2010-05-19 12:33:32 +0200

Fix level map getting confused when scrolling.

--------------------------------------------------------------------------------
8be7e41ce0 | Robert Vollmert | 2010-05-19 10:51:05 +0200

hiscores.cc: Fix DGL compile.

--------------------------------------------------------------------------------
4b460ffe2c | David Lawrence Ramsey | 2010-05-19 00:52:50 -0500

Fix Mantis 1584.
Also fix a similar issue with the Blade card, making its messages match
those of Tukima's Dance, since the two sets of messages are similar
anyway.

--------------------------------------------------------------------------------
02b7ad9510 | Robert Vollmert | 2010-05-18 15:28:53 +0200

Redisplay stash menu when not travelling.

--------------------------------------------------------------------------------
c3758529d1 | Robert Vollmert | 2010-05-18 14:46:10 +0200

Make stash search show map instead of starting travel.
I'm not sure this is the way to go, but let's try it. This means an
extra Enter to travel to the stash. Alternatively, we could add
another mode to cycle through.

--------------------------------------------------------------------------------
ddd1f21054 | Robert Vollmert | 2010-05-18 14:46:07 +0200

show_map: Follow stair-cases when browsing levels.
At the same time, show_map now takes the level_pos parameter
as starting location (if set).

--------------------------------------------------------------------------------
921d74bba2 | Robert Vollmert | 2010-05-18 14:42:24 +0200

show_map: extra argument to prevent off-level browsing.
This doesn't make sense for projected noise or controlled teleport.

Also get rid of the default argument values.

--------------------------------------------------------------------------------
b09a4c97d6 | Robert Vollmert | 2010-05-18 14:42:23 +0200

show_map: Move travel cache updates into level excursion.

--------------------------------------------------------------------------------
a3885967c2 | Robert Vollmert | 2010-05-18 14:42:23 +0200

Make show_map explicitly return whether a target was chosen.

--------------------------------------------------------------------------------
09a3b0f0e1 | Adam Borowski | 2010-05-18 12:22:51 +0200

Make eyes of draining heal the amount of mp taken, instead of a fixed value.

--------------------------------------------------------------------------------
23cb7fe312 | Adam Borowski | 2010-05-18 11:55:51 +0200

Make Sunray just inaccurate, not ridiculously inaccurate.

--------------------------------------------------------------------------------
bb7599b589 | Adam Borowski | 2010-05-18 11:53:33 +0200

Don't make spriggans / sprigan druids run around naked.  They'd catch a cold.

--------------------------------------------------------------------------------
9dd5427862 | Adam Borowski | 2010-05-18 11:19:01 +0200

Awaken Forest, a spriggan druid spell.

--------------------------------------------------------------------------------
e7274e4da8 | Adam Borowski | 2010-05-18 11:19:01 +0200

Fix reversed logic in slime wall damage to monsters.

--------------------------------------------------------------------------------
015afda211 | Adam Borowski | 2010-05-18 11:19:00 +0200

Optimize div_rand_round() by avoiding the costly random2() call when 
unnecessary.

--------------------------------------------------------------------------------
4e033d97f3 | David Lawrence Ramsey | 2010-05-17 16:35:24 -0500

Implement Mantis 1571.
References to harpies' stealing food are now changed to references to
their devouring food.

--------------------------------------------------------------------------------
14b1683d87 | Robert Vollmert | 2010-05-17 22:01:57 +0200

Fix blowgun code even better.

--------------------------------------------------------------------------------
bfc190a14b | Robert Burnham | 2010-05-17 11:27:57 -0500

Remove regeneration as DS facet fix breath weapons
Overlap with PBD and other regeneration races (trolls, for example) justified
removing MUT_REGENERATION as a DS facet (still exists as a random mut and for
species with it as an innate trait). Also addresses a bug where ds mutations
would re-roll if the breath_weapons counter was > 1, which was the case
whenever MUT_SPIT_POISON or MUT_BREATH_FLAMES was selected, clearly a bug.

--------------------------------------------------------------------------------
b14df69a09 | David Lawrence Ramsey | 2010-05-16 17:36:35 -0500

Comment fix.

--------------------------------------------------------------------------------
d5afdc29fb | David Lawrence Ramsey | 2010-05-16 17:31:05 -0500

Consolidate the player and monster Tombs of Doroklohe where applicable.
The player version now moves items inside the tomb instead of destroying
them, as the monster version does; and the monster version can now
overwrite floor-like terrain other than straight floors, as the player
version does.  Also, the styles of the two versions now match a bit
better.

--------------------------------------------------------------------------------
16a61dd5fe | Steven Noonan | 2010-05-16 13:23:22 -0700

fontwrapper-ft.cc: use malloc()/free() instead of alloca()
'malloc.h' is missing on Mac OS X, but is needed to define alloca() on
platforms such as MinGW.

The easiest solution is to simply use a function other than alloca()
for this task.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
46e7f93b03 | Robert Vollmert | 2010-05-16 18:11:15 +0200

Change USE_TILE to USE_SDL (ixtli).

--------------------------------------------------------------------------------
314e326b79 | Robert Vollmert | 2010-05-16 17:54:44 +0200

Silence a compiler a warning (ixtli).

--------------------------------------------------------------------------------
a7e178d6a2 | Ixtli | 2010-05-16 17:47:18 +0200

Fixed regression in some tilereg files.

--------------------------------------------------------------------------------
70185a735d | Robert Vollmert | 2010-05-16 13:52:07 +0200

Fix two errors in d7cf92ed80.

--------------------------------------------------------------------------------
d7cf92ed80 | Robert Vollmert | 2010-05-16 13:40:20 +0200

Make scorefile_entry aware of removed backgrounds.
For one, don't assert when reading an unknown background from the score file.
Instead, such backgrounds will be output as "unknown" or "??".

Then, make the translation functions from job to and from string aware of the
old "Thief" and "Death Knight" backgrounds, so they can be printed when
crawl lists highscores.

--------------------------------------------------------------------------------
74740e6573 | Robert Vollmert | 2010-05-16 13:40:20 +0200

Make scorefile_entry members private.
That way I'll feel safer changing the meaning of scorefile_entry::cls.

--------------------------------------------------------------------------------
1bf4cb234f | Jude Brown | 2010-05-16 20:07:47 +1000

Add potions of blood to wield menu with Sublimation of Blood. (#1559)

--------------------------------------------------------------------------------
9ae45971fc | Steven Noonan | 2010-05-16 00:56:00 -0700

glwrapper.cc: add missing include for AppHdr.h
Fixes a compilation error due to no definition of DEBUG/NDEBUG.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
7791ac98b2 | Steven Noonan | 2010-05-16 00:54:31 -0700

debug.h: simplify DEBUG/NDEBUG mutual exclusivity check
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bc53cf6f91 | Steven Noonan | 2010-05-15 14:58:07 -0700

makefile: switch to single arch support for Mac OS X builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
be086bc517 | Johanna Ploog | 2010-05-16 00:20:19 +0200

Remove superfluous ASSERT statements.
Should fix #1374.

--------------------------------------------------------------------------------
eddc833a91 | Charles Otto | 2010-05-15 14:03:33 -0400

Include malloc.h in font-wrapper-ft.cc
Not having malloc.h included caused a linker error (undefined reference
to alloca) for me on mingw.

--------------------------------------------------------------------------------
e3cf9f9ec9 | Robert Vollmert | 2010-05-15 19:16:08 +0200

Correct TAG_MAJOR-conditional mon_attack_flavour change.
There was a dangling ',' with version > 22.

--------------------------------------------------------------------------------
a8fdd4e043 | Robert Vollmert | 2010-05-15 19:13:29 +0200

Remove Thief and Death Knight backgrounds (doy, dpeg).
While TAG_MAJOR_VERSION is at 22, they just can't be picked
anymore.

--------------------------------------------------------------------------------
51122390e0 | Robert Vollmert | 2010-05-15 19:12:25 +0200

Correct loop bounds for species and background menus.
We're looping over species and background indices,
not over the enums themselves.

--------------------------------------------------------------------------------
cd6f77500a | Eino Keskitalo | 2010-05-15 19:32:28 +0300

Raise levels of Summon Ugly Thing (L5->L6) and Haunt (L6->L7).
Uglies are strctly better than Ice Beasts. Haunt is very good, and can take the 
level increase, esp. when Uglies would are a L6 spell.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
8c9fc4f898 | Robert Vollmert | 2010-05-15 16:46:14 +0200

Fix bug in robe ego selection.

--------------------------------------------------------------------------------
033a6bb56b | Robert Vollmert | 2010-05-15 09:25:54 +0200

Get rid of get_input_line.
It's not used anymore, and was buggy on windows console.

--------------------------------------------------------------------------------
cc30ee9fb6 | Robert Vollmert | 2010-05-15 09:25:54 +0200

Replace uses of get_input_line with msgwin_get_line.
These were all wizard-mode specific. This improves message window
interaction (input is echoed, etc.), and fixes some obscure recent
bug with get_input_line on windows, because we don't use get_input_line
anymore.

--------------------------------------------------------------------------------
ec2e19a902 | David Lawrence Ramsey | 2010-05-14 22:31:49 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
b59e1b42a2 | David Lawrence Ramsey | 2010-05-14 20:11:07 -0500

And add some unseen monster miscast messages where appropriate.

--------------------------------------------------------------------------------
2a05cf230a | David Lawrence Ramsey | 2010-05-14 20:07:38 -0500

Add some missing monster miscast messages, and tweak some existing ones.

--------------------------------------------------------------------------------
627d376de3 | David Lawrence Ramsey | 2010-05-14 19:52:21 -0500

Per the discussion in Mantis 1516, change the "slurping" miscast again.
It's now a visual message, taken from OG17's suggestion.

--------------------------------------------------------------------------------
61a1465c17 | David Lawrence Ramsey | 2010-05-14 18:15:32 -0500

Comment fixes.

--------------------------------------------------------------------------------
ead0fe7034 | Enne Walker | 2010-05-14 18:18:55 -0400

Clean up GL code function parameters.
Remove any non-const-reference parameters.  Change const pointer
parameters to const reference parameters.  Change all draw(NULL, NULL)
calls to just draw().  Also, refactor to remove pretranslate and prescale
parameters from draw calls.

--------------------------------------------------------------------------------
451ecf4a58 | Enne Walker | 2010-05-14 18:18:55 -0400

Remove "better water transparency" option.
The amount of code complexity to draw ~6 extra transparent pixels isn't
really worth it.  Also, the fact that it can't be turned on by default
due to bad OpenGL drivers means that few people are likely using it.

--------------------------------------------------------------------------------
41576b825c | Enne Walker | 2010-05-14 18:18:55 -0400

Renaming struct GLWRect to be class GLWPrim.

--------------------------------------------------------------------------------
39dd31c724 | Enne Walker | 2010-05-14 18:18:55 -0400

Clean up storage of vertex colours in GLWRect.
Storing member variable pointers to data, even const ones, is sketchy.
Better to depend on compiler optimizations to eliminate redundant
variable copies.

--------------------------------------------------------------------------------
46bd9b7116 | Enne Walker | 2010-05-14 18:18:54 -0400

Clean up unions in glwrapper.h.

--------------------------------------------------------------------------------
a9d79ac529 | Enne Walker | 2010-05-14 18:18:54 -0400

Add "current colour" to GLState.
This simplifies code that was setting and unsetting the global current
colour manually.

--------------------------------------------------------------------------------
6d0f71ae6f | Enne Walker | 2010-05-14 18:18:54 -0400

Reduce header dependencies on glwrapper.h.

--------------------------------------------------------------------------------
6375f13e84 | Enne Walker | 2010-05-14 18:18:54 -0400

Expose GL state to draw call API.
This avoids weird global state setting and then querying in the next
function.

--------------------------------------------------------------------------------
a7c8d89bd1 | Enne Walker | 2010-05-14 18:18:54 -0400

Fixing incorrect OpenGL state logic.

--------------------------------------------------------------------------------
53d2a4b791 | Enne Walker | 2010-05-14 18:18:53 -0400

Remove unused GL_V4F vertex format.

--------------------------------------------------------------------------------
5f37332d3f | Enne Walker | 2010-05-14 18:18:53 -0400

Rename vert buffer 'push' to 'add' for clarity.

--------------------------------------------------------------------------------
e9233e8c0f | Enne Walker | 2010-05-14 18:18:53 -0400

Code cleanup for triangles branch.
Applying standards, simplifying code, removing redundant comments.

--------------------------------------------------------------------------------
0a7ddbff93 | Enne Walker | 2010-05-14 18:18:53 -0400

Remove unused polygon winding enum.
This doesn't need to be exposed as all implementations handle winding
internally.

--------------------------------------------------------------------------------
b0c5379cbb | Enne Walker | 2010-05-14 18:18:53 -0400

Remove unused code from fontwrapper.
State should always be set prior to drawing, so no need to restore it.

--------------------------------------------------------------------------------
b65c556801 | Enne Walker | 2010-05-14 18:18:52 -0400

Reuse the same buffer when drawing fonts.
Don't alloc/delete every time a string is drawn.

--------------------------------------------------------------------------------
63fe4a8f50 | Enne Walker | 2010-05-14 18:18:52 -0400

Remove unused 'flush' option on buffer drawing.
It's not really used anywhere at this point, and it's better to call
clear explicitly when the draw buffer needs to be refilled.

--------------------------------------------------------------------------------
8feb08d178 | Ixtli | 2010-05-14 18:18:52 -0400

Removed QUADS from supported drawing modes.
Signed-off-by: Enne Walker <enne.walker@gmail.com>

--------------------------------------------------------------------------------
eae1e195b3 | Ixtli | 2010-05-14 18:18:52 -0400

Removed GLStateManager::draw and GLPrimitive.
This will force all drawing to be done through VertBuffer.

Signed-off-by: Enne Walker <enne.walker@gmail.com>

--------------------------------------------------------------------------------
34da19e84b | Ixtli | 2010-05-14 18:18:52 -0400

Move static VColour definitions out of tilebuf.cc.
Signed-off-by: Enne Walker <enne.walker@gmail.com>

--------------------------------------------------------------------------------
392f8fd45b | Ixtli | 2010-05-14 18:18:51 -0400

Tilebuf now uses GLVertBuffer exclusively.
Signed-off-by: Enne Walker <enne.walker@gmail.com>

--------------------------------------------------------------------------------
371d811227 | Ixtli | 2010-05-14 18:18:51 -0400

Added GLShapeBuffer.  Changed GLState, Manager.
Added convenience methods to GLState.  Changed GLStateManager to check
current state before using glEnable in case those commands are slow, as
they are being called nearly ever draw.  (Note: GLShapeBuffer is not
currently used.)

Signed-off-by: Enne Walker <enne.walker@gmail.com>

--------------------------------------------------------------------------------
2458d5828e | Ixtli | 2010-05-14 18:18:51 -0400

Struct changes. Added a winding query.
Added a GLWRect for passing rectangles generically.
Moved VColour into glwrapper.h; it will survive the purging.
Can now ask GLStateManager what winding it's using.

Signed-off-by: Enne Walker <enne.walker@gmail.com>

--------------------------------------------------------------------------------
05acae6323 | Adam Borowski | 2010-05-14 23:57:51 +0200

Make the shock resistance mutation work (broken by 81e01a12).

--------------------------------------------------------------------------------
f338fe7d8e | Adam Borowski | 2010-05-14 23:57:50 +0200

Give mutations specific to draconians and nagas only a bigger weight. These 
currently are a waste of code, since they're excedingly rare on rarely played 
races.

--------------------------------------------------------------------------------
a34044a28b | Adam Borowski | 2010-05-14 23:57:50 +0200

Apply the 0.6 weight for shields of resistance to trunk, as discussed in 
February.

--------------------------------------------------------------------------------
55254af4ce | Adam Borowski | 2010-05-14 23:57:50 +0200

Revert the allocation of deep dwarf enums for now. We can re-add that once we 
have some actual code.

--------------------------------------------------------------------------------
156fc6ddf5 | Robert Vollmert | 2010-05-14 23:00:21 +0200

Use msgwin_get_line for some debug prompts.

--------------------------------------------------------------------------------
a0caa330ba | Robert Vollmert | 2010-05-14 22:34:09 +0200

Remove thrown dart half-damage special case.
This was when darts could also be launched from hand-crossbows for full damage.
Instead, halve dart damage from 5 to 2. This lowers dart damage slightly, but
with recent boosts they've had with extra brands and less useless skill, I
think they can take it.

Fixes issue #1431.

--------------------------------------------------------------------------------
3c73925078 | Robert Vollmert | 2010-05-14 22:20:31 +0200

Rid you_can_wear switch of unintentional fall-through.
Fixes issue #1546.

--------------------------------------------------------------------------------
b8cc0aa998 | David Lawrence Ramsey | 2010-05-14 14:30:57 -0500

Tweak the probability for shadow imps in summon_any_demon() again.

--------------------------------------------------------------------------------
462394c875 | David Lawrence Ramsey | 2010-05-14 13:32:11 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
c168fe2140 | David Lawrence Ramsey | 2010-05-14 13:20:07 -0500

Fix Mantis 1516.
Make one minor poison miscast message reference a "sucking noise"
instead of a "slurping noise", to avoid confusion with jellies.

--------------------------------------------------------------------------------
fe124af7c8 | David Lawrence Ramsey | 2010-05-14 12:59:31 -0500

Make the monster version of Doroklohe use an "entombed" enchantment.
This removes Khufu-specific code, and allows the spell (or something
much like it) to be reused for e.g. Zin's eventual Imprison ability.
Note that the regeneration rate in the duration is based on HD instead
of actual regeneration rate, in order to avoid the randomness of the
latter.  In Khufu's case, it seems to be long enough to fully heal him,
as before.  It's a bit hackish, but it's easy enough to change if there
turns out to be a better way.

--------------------------------------------------------------------------------
748edcc3bc | David Lawrence Ramsey | 2010-05-14 12:32:19 -0500

Simplify.

--------------------------------------------------------------------------------
dc7b3bd8b4 | David Lawrence Ramsey | 2010-05-14 11:26:53 -0500

Make regeneration for test spawners work properly.
Regeneration is controlled by MDSC_REGENERATES, and the M_REGEN monster
flag does nothing, so remove the latter and make test spawners use the
former.

--------------------------------------------------------------------------------
45d265cc6c | Robert Vollmert | 2010-05-14 18:17:08 +0200

Revert "Echo input for message window yesno()."
This reverts commit 44d04ec068716dd14355827c697f581c66406b36.

This doesn't work well in conjunction with targeting, because the
message window can't currently handle two levels of temporary
messages.

--------------------------------------------------------------------------------
44d04ec068 | Robert Vollmert | 2010-05-14 18:03:17 +0200

Echo input for message window yesno().
This should make it a little easier to tell you actually did something
in some cases.

--------------------------------------------------------------------------------
b852d8e52c | Robert Vollmert | 2010-05-14 17:49:14 +0200

Move unequip jewellery message out of unequip effects.
Fixes a "You remove ..." message when melding rings.

--------------------------------------------------------------------------------
91d7a78a1d | Robert Vollmert | 2010-05-14 17:49:13 +0200

Handle pig and bat-form consistently regarding equipment.

--------------------------------------------------------------------------------
062de036eb | Robert Vollmert | 2010-05-14 17:49:13 +0200

Slight remove_ring cleanup.
Also prevent removing melded jewellery.

--------------------------------------------------------------------------------
b762d23884 | David Lawrence Ramsey | 2010-05-14 10:14:23 -0500

Comment fixes.

--------------------------------------------------------------------------------
5d63c6e41f | Robert Vollmert | 2010-05-14 16:38:16 +0200

Make LRD invalidate LOS.

--------------------------------------------------------------------------------
cac5822e42 | Robert Vollmert | 2010-05-14 16:32:05 +0200

Abort monster placement if setting position fails.

--------------------------------------------------------------------------------
e655da7dd8 | Robert Vollmert | 2010-05-14 16:30:22 +0200

Permit monsters::move_to_pos() to player pos for toadstools.
Fixes #1180.

--------------------------------------------------------------------------------
ba7af143f4 | Robert Vollmert | 2010-05-14 14:21:22 +0200

Safer actor* handling for blowgun effects.
Fixes #1361.

--------------------------------------------------------------------------------
f57d9699c6 | Robert Vollmert | 2010-05-14 14:17:35 +0200

Formatting, etc.

--------------------------------------------------------------------------------
f2bad8f4ed | Robert Vollmert | 2010-05-14 13:51:52 +0200

Default use_fake_player_cursor to true.
Reportedly, it also works with windows console. This is likely to
fix issue #1525.

--------------------------------------------------------------------------------
7be714194c | Robert Vollmert | 2010-05-14 13:50:44 +0200

Revert "Default use_fake_cursor and use_fake_player_cursor to true."
This reverts commit b6a5306df84971dc94dbbfe64e23aaab6ccad8f1.

--------------------------------------------------------------------------------
b6a5306df8 | Robert Vollmert | 2010-05-14 13:44:09 +0200

Default use_fake_cursor and use_fake_player_cursor to true.
Reportedly, they also work with windows console. This is likely to
fix issue #1525.

--------------------------------------------------------------------------------
14daf98bb3 | Robert Vollmert | 2010-05-14 12:43:49 +0200

Limit number of keys used to those supplied in key replay.
Should fix #1208.

--------------------------------------------------------------------------------
bb31e5c667 | Robert Vollmert | 2010-05-14 12:10:08 +0200

Make scroll of silence ultra-rare through Lua, too.
Follow-up commit to 8c39d7d5a25.

Rarer scrolls (except acquirement) are a little less rare now.

--------------------------------------------------------------------------------
24de58e3c7 | Jesse Luehrs | 2010-05-14 12:10:08 +0200

undo some testing weights
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
c866ff930c | Robert Vollmert | 2010-05-14 12:09:38 +0200

Make robes of resistance less common.
They're strictly better than robes of fire/cold resistance, so they
should at least be rarer. You should expect to not find one in a normal
game, which seems to not be the case (anymore, with more uniques and
draconians?).

                 res  cold fire neg  mr  arch
old (in 1/8)     1    1    1    1    2   2
new (in 1/15)    1    2    2    2    4   4

(Archmagi goes through another check.)

So robes of resistance are now half as common, with the difference
split evenly between the other egos.

--------------------------------------------------------------------------------
c9c88cf36a | Robert Vollmert | 2010-05-14 11:34:14 +0200

Fix switched attribution of dex and int stat death.

--------------------------------------------------------------------------------
24cb6d8c38 | David Lawrence Ramsey | 2010-05-13 21:09:40 -0500

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
0695315fab | David Lawrence Ramsey | 2010-05-13 19:52:55 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a8fd158a1c | Steven Noonan | 2010-05-13 11:57:29 -0700

makefile: disable GNU Make implicit rules
These rules are not used by us, and leaving them enabled significantly
slows MinGW and Cygwin builds. To solve this, simply add the -rR parameters
to the MAKEFLAGS variable in the makefile and things get faster:

  (dry run, WITH implicit rulesets)
  $ make -n BUILD_ALL=YesPlease
  [snip]
  real    0m25.109s
  user    0m4.947s
  sys     0m15.307s

  (dry run, WITHOUT implicit rulesets)
  $ make -rRn BUILD_ALL=YesPlease
  [snip]
  real    0m11.294s
  user    0m1.795s
  sys     0m4.038s

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a113e47914 | Robert Vollmert | 2010-05-13 16:47:16 +0200

Don't try to go off-screen when printing descriptions.
Fixes issue #1443, by clobbering the last line of screen instead of asserting
if the description runs off-screen.

--------------------------------------------------------------------------------
ae0916b66d | Robert Vollmert | 2010-05-13 16:30:32 +0200

Fix shatter not invalidating LOS.
Fixes issue #1412.

--------------------------------------------------------------------------------
83335965b4 | Robert Vollmert | 2010-05-13 15:58:42 +0200

Completely reset previous target (#1435).

--------------------------------------------------------------------------------
9dc5ce5f16 | Robert Vollmert | 2010-05-13 13:15:18 +0200

Track what keys in the macro buffer have been expanded.
This should fix problems where expanded keys were re-expanded,
e.g. #1226.

It's still really messy, and macro.cc:Buffer should eventually
be replaced by something better, either a queue that explicitly
distinguishes the types of things it contains (raw key, expanded
key, etc), or separate containers for different kinds of keys.

--------------------------------------------------------------------------------
5b6c10612e | Steven Noonan | 2010-05-12 10:00:33 -0700

makefile: fix depfile target for util/ sources
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0c40561d97 | Steven Noonan | 2010-05-12 10:00:33 -0700

rltiles/Makefile: use sdl-config instead of pkg-config
On Mac OS X, pkg-config gave a very odd result for --libs, which included
both the static _and_ shared SDL libs. This resulted in numerous multiply
defined symbols. The program warned that it would use either the locally
defined symbol or the shared library one, but which one was at best a
random choice. This could cause very unpredictable runtime behaviour.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
31194360f0 | Steven Noonan | 2010-05-12 10:00:33 -0700

art-data.pl: fit in better with the GNU Make build process (cosmetic change)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a3d94bd09c | Robert Vollmert | 2010-05-12 18:59:18 +0200

Change the way command repetition is handled.
Instead of implicitly making _input() loop by adding a synthetic
key to the input buffer, _do_repeat_cmd() now explicitly handles
the repeats in a for-loop that calls _input().

This is probably far from done, but it already works better than
the current broken state, so I'm pushing it.

--------------------------------------------------------------------------------
f468bf42f1 | Robert Vollmert | 2010-05-12 18:59:17 +0200

Revert "Change key recorder to get unexpanded keys."
This reverts commit f70360de5b65eb8f572bb3d4515aec52ca98b572.

This was a bad idea. Hopefully fixes some of the bugs we've
been seeing.

--------------------------------------------------------------------------------
3246d0188d | David Lawrence Ramsey | 2010-05-12 11:49:24 -0500

Add spacing fix.

--------------------------------------------------------------------------------
49f22ebfb4 | Robert Vollmert | 2010-05-12 12:18:59 +0200

Collect equip and unequip effects in player-equip.cc.

--------------------------------------------------------------------------------
9c61658c3d | Robert Vollmert | 2010-05-12 12:06:18 +0200

Make wizard mode artefact generation use (un)equip_item.

--------------------------------------------------------------------------------
93a3bf0b52 | Robert Vollmert | 2010-05-12 10:50:29 +0200

Allow switching temporary weapon brands.
Previously, you had to unwield then rewield the weapon before casting a
different branding spell, which is more an interface annoyance than
anything else.

--------------------------------------------------------------------------------
4128c2128a | Robert Vollmert | 2010-05-12 10:47:29 +0200

brand_weapon: Move damage type check earlier.
We now know the branding will go through when we reach the weapon_brand switch.

--------------------------------------------------------------------------------
6bef559fe5 | Robert Vollmert | 2010-05-12 00:52:25 +0200

Remove call to player_apply_weapon_skill from aux attacks.
Previously, unarmed combat skill would increase auxiliary attack damage,
but only when wielding a weapon. This cuts damage output for weapon
fighters with high unarmed skill a little. Note that unarmed skill
also factors into base auxiliary unarmed damage, so it's still useful.

--------------------------------------------------------------------------------
45b2e69787 | Robert Vollmert | 2010-05-12 00:35:57 +0200

Make slimy walls not available as random wall type.

--------------------------------------------------------------------------------
7ac0769da3 | Robert Vollmert | 2010-05-11 23:15:56 +0200

Revert "Make MUT_CLAWS give extra unarmed aux attacks."
This reverts commit babaa983a81e6c008716a10acd5d2d981d7adbe3.

It turns out this is not required for the proposed unarmed aux
changes.

--------------------------------------------------------------------------------
5adbc67e63 | Janne Lahdenpera | 2010-05-11 14:55:32 +0300

Fix missing menu options in char/species on 80x24 terminal
Set special keys to start one line earlier

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
d6127a8da5 | David Lawrence Ramsey | 2010-05-09 17:00:12 -0500

Fix Mantis 1521.
When displaying a ghost's title, use the ghost's species instead of the
player's.

--------------------------------------------------------------------------------
babaa983a8 | Robert Vollmert | 2010-05-09 22:58:59 +0200

Make MUT_CLAWS give extra unarmed aux attacks.
This is basically f8e18373932f00, though with chance 1/4 instead of 1/2. This
may still be too much of a boost to players with claws, considering how much
damage the off-hand punch does.

Note that this affects ghouls and trolls, not just demonspawn.

--------------------------------------------------------------------------------
a7d2ca70c9 | Robert Vollmert | 2010-05-09 22:58:59 +0200

Simplify, considering _vamp_wants_blood_... already checks species.

--------------------------------------------------------------------------------
00c1e86479 | Robert Vollmert | 2010-05-09 22:58:58 +0200

Get rid of player_aux_skip_attack().
The only remaining check was a weird UNAT_BITE check. Mostly got
rid of this, in favour of restricting the extra vampire base bites
to vampires that want the monster's blood. I think this is close
to what the original code intended. It will give vampires more
auxiliary unarmed attacks in total, since less bites are chosen
then skipped.

--------------------------------------------------------------------------------
32e6baf8d9 | Robert Vollmert | 2010-05-09 22:58:58 +0200

Fold UNAT_PUNCH check into player_aux_choose_baseattack.
It's now more explicit how UNAT_PUNCH is actually used to decrease the number
of auxiliary attacks. This should not actually change anything, except help
readability.

--------------------------------------------------------------------------------
4b3d25ec87 | Robert Vollmert | 2010-05-09 22:58:58 +0200

Move call to _tran_forbid_aux_attack out of main aux unarmed loop.
The path is now clear for cleaning up player_aux_choose_baseattack.

--------------------------------------------------------------------------------
4398ed0126 | Robert Vollmert | 2010-05-09 22:58:58 +0200

Move player_aux_skip() check into base attack choice.
This is possible because none of the attacks previously aborted through
player_aux_skip() are currently available as extra unarmed attacks
through _extra_aux_attack().

--------------------------------------------------------------------------------
9b5f4c3a04 | Robert Vollmert | 2010-05-09 22:58:58 +0200

Move part of the off-hand punch check into player::has_usable_offhand.
Also fix the off-hand punch part of the unarmed combat skill
description.

--------------------------------------------------------------------------------
66c5048556 | Robert Vollmert | 2010-05-09 22:58:57 +0200

Simplify UNAT_BITE abort check.
The code should be equivalent to the old version.

--------------------------------------------------------------------------------
5aac26579e | Robert Vollmert | 2010-05-09 22:58:57 +0200

player::has_usable_fangs() checks for wearing a visored helmet.
This previously special-cased for auxiliary unarmed attacks. Now
it applies to other things (currently butchery).

This has slight effects on the distribution of auxiliary
attacks for players with fangs and visored helmets. For example,
vampires with visors can get head-butts and kicks again. But
vampire aux attacks will need changes anyway.

--------------------------------------------------------------------------------
66353504e0 | Robert Vollmert | 2010-05-09 22:58:57 +0200

Add player::has_tail,has_usable_tail and use it for aux attacks.
player::has_tail includes draconians, merfolk in water, dragons and the
stinger mutation.

Level is usually 1, or 2 for gray draconians. This makes the damage
an easy 6 * has_tail().

has_usable_tail() returns 0 for TSO worshippers with MUT_STINGER.
I'm not quite sure this is what has_usable_whatever() is meant for.

This causes a few changes:

* Remove the special case disallowing gray draconians to benefit both
  from their tail and MUT_STINGER. Against poison resistant enemies,
  MUT_STINGER was a bad mutation for gray draconians even at level 3.
  I don't think this is overpowered, but it would be easy to reimplement
  in player::has_tail() by not giving the bonus level to gray dracs
  with stinger.

* Dragon form can now get extra tail-slaps. Previously, they got a
  tailslap through the base attack on 1/6 of attacks. Now they get
  the same 1/4 chance of an extra tail-slap as other players with
  tails. I think it's unlikely these dragon form changes will make
  a huge difference, but if they do, we'd better lower dragon form
  base damage rather than special case here.

* TSO worshippers will now not lose auxiliary attacks by gaining
  MUT_STINGER, because we're checking for a usable tail earlier.

--------------------------------------------------------------------------------
1b95d4ff14 | Robert Vollmert | 2010-05-09 22:58:57 +0200

Add player::has_fangs, and use it for aux attacks
player::has_fangs includes MUT_FANGS and dragon form; dragon form
is equivalent to 3 levels of MUT_FANGS.

This means dragon form can now actually get bite attacks.

Previously, dragon form already got UNAT_BITE as its base auxiliary
attack instead of UNAT_HEADBUTT or UNAT_KICK, but was never actually
allowed to perform it.

--------------------------------------------------------------------------------
4a6449bda1 | Robert Vollmert | 2010-05-09 22:58:56 +0200

Check has_usable_claws() for unarmed damage.
Previously, the check was against you.equip[EQ_GLOVES] == -1. This shouldn't 
have
any actual effect since the player is certain to not be transformed at this 
point,
hence gloves can't be melded, but this is safer and clearer.

--------------------------------------------------------------------------------
8fdfeb1ebb | Robert Vollmert | 2010-05-09 22:58:56 +0200

Check for usable talons when giving extra kick attack.
Players with talons in boots now don't get extra kicking attacks.

--------------------------------------------------------------------------------
b99f0aabf7 | Robert Vollmert | 2010-05-09 22:58:56 +0200

Split up melee_attack::player_aux_unarmed().
This is mostly for readability. The only (intentional) functional
changes involve messaging:

For UNAT_PUNCH, we now say
  "Your punch misses the rat."
instead of the previous
  "You miss the rat."
even when the player has claws. This is simpler, and consistent with
  "Helpless, the rat fails to dodge your punch."
which is better than
  "Helpless, the rat fails to dodge your claw."
but not quite correct.

--------------------------------------------------------------------------------
54cf4e07f5 | Robert Vollmert | 2010-05-09 22:58:56 +0200

Fix player::damage_type disregarding weapon melding.

--------------------------------------------------------------------------------
738594ff9f | David Lawrence Ramsey | 2010-05-08 11:41:16 -0500

Add a few more randart names.

--------------------------------------------------------------------------------
bcc471b0af | David Lawrence Ramsey | 2010-05-07 19:33:32 -0500

Add another 0.7 changelog entry.

--------------------------------------------------------------------------------
21156d0e4f | Darshan Shaligram | 2010-05-08 05:03:57 +0530

[1515] Fix X + [] not reactivating Lua markers after excursion.
level_excursion was reactivating Lua markers only if the player was not on the
original level when the destructor was called. Since the level-map explicitly
does a go_to(original), this is never the case.

The fix is to reactivate Lua markers if the level_excursion *ever* moved
off-level.

This also allows us to dispense with the LOAD_RETURN mode of reloading levels.
LOAD_RETURN only served two purposes: to activate markers and then to fire the
dungeon event for the player entering the level. However, this event should not
be fired for level excursions, because the player never physically left the
level, and reactivating markers can be done safely after _load_level returns.

--------------------------------------------------------------------------------
50548869aa | David Lawrence Ramsey | 2010-05-07 17:21:55 -0500

Apply MrMisterMonkey's patch to fix Mantis 1514.
This partially reverts commit 8a05ab05626ce660be798eccc5f11ea355f8e653.

--------------------------------------------------------------------------------
d05ccc4de6 | David Lawrence Ramsey | 2010-05-07 17:17:08 -0500

Comment fix.

--------------------------------------------------------------------------------
403699d767 | David Lawrence Ramsey | 2010-05-07 12:30:20 -0500

Remove code changing the skeleton type; it's unused anywhere else.

--------------------------------------------------------------------------------
7450dd960d | Darshan Shaligram | 2010-05-07 22:58:12 +0530

Don't redraw monsters in check_redraw if curses is not initialised -- this is a 
fix to let the monster-info code invoke monster special abilities without 
messing with curses setup.

--------------------------------------------------------------------------------
6ebfdf2e38 | David Lawrence Ramsey | 2010-05-07 11:25:54 -0500

Revert "Make orange demons resist poison."
This reverts commit 723c8c74d477af9d43677ce8db0ad03f367ddece.

--------------------------------------------------------------------------------
c4ed99a4a0 | David Lawrence Ramsey | 2010-05-07 11:25:41 -0500

Revert "Update 0.7 changelog."
This reverts commit d77c4891607ab5f1fc7f1b1eb232888d7a777c8e.

--------------------------------------------------------------------------------
204f861902 | David Lawrence Ramsey | 2010-05-07 11:25:17 -0500

Revert "Remove poison resistance from the hairy devil."
This reverts commit fcbda40c47bffaf808496dda0c94ee42ae4f5702.

--------------------------------------------------------------------------------
92d029ba60 | David Lawrence Ramsey | 2010-05-07 11:25:04 -0500

Revert "Update the 0.7 changelog again."
This reverts commit 4f79b14d3127046eb8ce5480449ccd60db0296e1.

--------------------------------------------------------------------------------
8a05ab0562 | David Lawrence Ramsey | 2010-05-07 11:03:58 -0500

Fix apostrophization when invisible monsters get equipment corroded.

--------------------------------------------------------------------------------
21b2957e9a | David Lawrence Ramsey | 2010-05-07 11:03:48 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
4f79b14d31 | David Lawrence Ramsey | 2010-05-07 10:01:03 -0500

Update the 0.7 changelog again.

--------------------------------------------------------------------------------
fcbda40c47 | David Lawrence Ramsey | 2010-05-07 09:59:28 -0500

Remove poison resistance from the hairy devil.
Its description is vague enough that this could fit, and this can also
compensate for orange demons' gaining poison resistance.

--------------------------------------------------------------------------------
47002f0ecf | David Lawrence Ramsey | 2010-05-07 09:47:10 -0500

Add check for dwarves to is_player_same_species().

--------------------------------------------------------------------------------
7e23a3c3d2 | David Lawrence Ramsey | 2010-05-07 09:46:13 -0500

Simplify is_player_same_species().

--------------------------------------------------------------------------------
8ee4f254a7 | David Lawrence Ramsey | 2010-05-07 09:38:43 -0500

Remove the block on polymorphing monsters into plain dwarves.

--------------------------------------------------------------------------------
55351e0526 | Adam Borowski | 2010-05-07 16:10:35 +0200

Fix the ring swapping logic.

--------------------------------------------------------------------------------
d6a041feb0 | Adam Borowski | 2010-05-07 16:07:17 +0200

Spriggan druids -- wip

--------------------------------------------------------------------------------
251ab9c8a8 | Adam Borowski | 2010-05-07 16:07:16 +0200

Base spriggan.

--------------------------------------------------------------------------------
2ad48b69cc | Adam Borowski | 2010-05-07 16:07:16 +0200

Allocate enums for spriggans and deep dwarves.

--------------------------------------------------------------------------------
d77c489160 | David Lawrence Ramsey | 2010-05-07 09:00:08 -0500

Update 0.7 changelog.

--------------------------------------------------------------------------------
723c8c74d4 | David Lawrence Ramsey | 2010-05-07 08:58:34 -0500

Make orange demons resist poison.
A demon that apparently produces stat-draining poison should be immune
to its effects.

--------------------------------------------------------------------------------
93320b445f | David Lawrence Ramsey | 2010-05-07 08:55:37 -0500

Comment fix.

--------------------------------------------------------------------------------
cef1016632 | Robert Vollmert | 2010-05-07 15:48:40 +0200

Fix beam tracers using player instead of agent LOS (#1513).

--------------------------------------------------------------------------------
0762b7c7ca | Robert Vollmert | 2010-05-07 15:35:50 +0200

Fix ring swapping failing due to inverted logic.
I'm not sure it really works as intended, however, since
removing a ring with a warning inscription will just fail
it seems.

--------------------------------------------------------------------------------
e83c602a8a | Robert Vollmert | 2010-05-07 15:21:49 +0200

Fix disintegration not affecting slimy walls.

--------------------------------------------------------------------------------
ac91865494 | Mark Mackey | 2010-05-07 12:42:01 +0100

Undid erroneous change from commit ceb51161 - allies that can see invisible 
weren't firing on targets that the player couldn't see.

--------------------------------------------------------------------------------
d253074e16 | David Lawrence Ramsey | 2010-05-07 00:42:15 -0500

Add another 0.7 changelog entry.

--------------------------------------------------------------------------------
96e0b06759 | David Lawrence Ramsey | 2010-05-07 00:01:17 -0500

And fix variable naming issues.

--------------------------------------------------------------------------------
90d6791dfd | David Lawrence Ramsey | 2010-05-06 23:47:56 -0500

Convert int to potion_type in MiscastEffect::_potion_effect().
Also, add consistency fixes to other potion effect-type functions.

--------------------------------------------------------------------------------
4766d8e4ad | David Lawrence Ramsey | 2010-05-06 23:30:53 -0500

Add spacing fix.

--------------------------------------------------------------------------------
5890f5a20e | Luca Barbieri | 2010-05-06 19:03:43 -0700

Break if-else chain in initfile.cc for broken Microsoft compilers
Some Microsoft compilers (even the one in VC++ 2008) are broken, having
a low block nesting limit which applies to if-else too.

Work that around by break the if-else chain if _MSC_VER is defined.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1c8ff79592 | Steven Noonan | 2010-05-06 19:03:43 -0700

random.cc: fix 'warning: "UINT32_MAX" redefined' on Mac OS X
The Mac OS X SDKs define this already.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a2031e12c1 | Steven Noonan | 2010-05-06 19:03:43 -0700

fix uninitialized variable warnings
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
11b5ba194f | Steven Noonan | 2010-05-06 19:03:43 -0700

makefile: on Mac OS X, attempt to automatically detect whether APPLE_GCC should 
be defined
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3d712aaa6d | David Lawrence Ramsey | 2010-05-06 19:00:31 -0500

Update 0.7 changelog again.

--------------------------------------------------------------------------------
d60cc3a518 | David Lawrence Ramsey | 2010-05-06 18:43:24 -0500

Rename DID_ALLY_KILLED_PLANT to DID_PLANT_KILLED_BY_SERVANT.

--------------------------------------------------------------------------------
8938e69ff4 | David Lawrence Ramsey | 2010-05-06 18:34:07 -0500

Put AF_DRAIN_STR and AF_DRAIN_DEX in the proper order.

--------------------------------------------------------------------------------
fea22ac5ae | David Lawrence Ramsey | 2010-05-06 18:27:47 -0500

Consolidate the attack code for AF_DRAIN_STR and AF_DRAIN_DEX.

--------------------------------------------------------------------------------
e3db597929 | David Lawrence Ramsey | 2010-05-06 13:33:37 -0500

Comment fixes.

--------------------------------------------------------------------------------
a8cd56c527 | David Lawrence Ramsey | 2010-05-06 11:43:17 -0500

Make orange demons' poison drain any stat instead of always strength.

--------------------------------------------------------------------------------
94d3962050 | David Lawrence Ramsey | 2010-05-06 10:28:33 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
0291ab1f90 | David Lawrence Ramsey | 2010-05-06 10:25:28 -0500

Attempt to fix Mantis 1503.
Display the "raging storm of fire" message unconditionally before the
explosion, since it shouldn't fail if successfully set up and cast.

--------------------------------------------------------------------------------
a4272f8ad3 | Adam Borowski | 2010-05-06 12:14:01 +0200

Fix warnings triggering for all items when about to teleport. Also, it 
improperly said "while slowed".

--------------------------------------------------------------------------------
fb36518b7a | Adam Borowski | 2010-05-06 12:04:48 +0200

Don't show to-dam on blowguns, disallow EW II on them.

--------------------------------------------------------------------------------
d046fa48f5 | Adam Borowski | 2010-05-06 10:18:49 +0200

Remove the block for magic mapping in Pandemonium.
Without the spell, scrolls are a sharply limited resource.

--------------------------------------------------------------------------------
28b86617f4 | Robert Vollmert | 2010-05-06 09:35:35 +0200

Roll back player_aux_unarmed rewrite.
As discussed privately. A new rewrite will come.

This reverts commit 607bea974114ffd0be153a0af52302bbb04038df.
This reverts commit 58b8890cabd409396c4eb1972fd0249d8971c5d7.
This reverts commit f8e18373932f005fecaadaab00c341f6b6958183.
This reverts commit 870de8f6f67f7b462f1eb17a5f53cb34535f4a60.
This reverts commit 279291369dd4dea4e7c1454fc00b29a7f088fab2.
This reverts part of commit 5a59108b0370ed3aa353192bbec306f7249258b1,
    namely the player_aux_unarmed part.

--------------------------------------------------------------------------------
a884d546f4 | Darshan Shaligram | 2010-05-06 04:40:48 +0530

Revert submodules clobbered in "Add EV Checks to mons_do_spines()"
This reverts commit 67e4e37c9d27835852099de23d424293cd2c07c9.

--------------------------------------------------------------------------------
607bea9741 | David Lawrence Ramsey | 2010-05-05 17:59:44 -0500

Properly check for usable talons when deciding the unarmed attack verb.

--------------------------------------------------------------------------------
58b8890cab | Darshan Shaligram | 2010-05-06 00:33:00 +0530

Fix compile.

--------------------------------------------------------------------------------
b1491921fb | Darshan Shaligram | 2010-05-06 00:30:34 +0530

Fix list of brands in str_to_ego and add COMPILE_CHECK guards (Fangorn).

--------------------------------------------------------------------------------
f8e1837393 | Robert Burnham | 2010-05-05 13:47:21 -0500

Add MUT_CLAWS to allow unarmed aux attacks
Available only if coinflip, has claws mutation, does not have a shield
and either no weapon or if a weapon, not two handed weapons

--------------------------------------------------------------------------------
f568de42da | David Lawrence Ramsey | 2010-05-05 13:27:29 -0500

Fix Zen reference in beam message.

--------------------------------------------------------------------------------
99c907b604 | David Lawrence Ramsey | 2010-05-05 11:38:36 -0500

Move the calculation of the maximum number of chunks a given corpse produces 
into its own function.

--------------------------------------------------------------------------------
67e4e37c9d | Robert Burnham | 2010-05-05 11:26:11 -0500

Add EV Checks to mons_do_spines()
Uses a constant factor of 6, this reduces the chance to one-shot
bats, rats, kobolds, and other weak creatures early on and the chance to
easily kill hydras / executioners later on.

--------------------------------------------------------------------------------
02eca57291 | Mark Mackey | 2010-05-05 16:42:04 +0100

Merge branch 'stone_soup-0.6' into zotdef-0.6

--------------------------------------------------------------------------------
82add6f850 | Steven Noonan | 2010-05-05 08:32:09 -0700

luajit: fix commit reference
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
7607b191b1 | Steven Noonan | 2010-05-05 08:23:10 -0700

contribs: remove target .a file before calling 'ar'
This fixes some build breakage on Mac OS X when switching
architecture targets or compilers between builds.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
62b35f59a1 | Mark Mackey | 2010-05-05 16:16:37 +0100

Assorted fixes to put the zotdef behaviour under the control of the 
game_is_zotdef() conditional. All done except for monster placement, which 
needs more radical hackery.

--------------------------------------------------------------------------------
89b43d5779 | Steven Noonan | 2010-05-05 07:47:54 -0700

sdl: fix commit reference
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
eec87fceb4 | Mark Mackey | 2010-05-05 15:18:30 +0100

Minor code cleanups with multple versions of orb_position()

--------------------------------------------------------------------------------
8149099fb7 | David Lawrence Ramsey | 2010-05-05 09:07:26 -0500

Fix another part of Mantis 1494.
Remove the assumption that hasting yourself is always intentional, as it
can be done unintentionally with a wand of random effects.

--------------------------------------------------------------------------------
30b2ff38f4 | David Lawrence Ramsey | 2010-05-05 08:59:04 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
532f31d4d7 | David Lawrence Ramsey | 2010-05-05 08:58:23 -0500

Add missing break in is_unclean_item().

--------------------------------------------------------------------------------
197fd3bb10 | David Lawrence Ramsey | 2010-05-05 08:56:11 -0500

Fix part of Mantis 1494.
Mark items that could potentially haste the player as disapproved by
Cheibriados.

--------------------------------------------------------------------------------
d55203acf3 | David Lawrence Ramsey | 2010-05-05 08:32:08 -0500

Convert tabs to spaces.

--------------------------------------------------------------------------------
ee10a4ad70 | Eino Keskitalo | 2010-05-05 16:25:30 +0300

Remove the moth of wrath from the Spider's Nest.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1a17dbc5fe | David Lawrence Ramsey | 2010-05-05 07:48:03 -0500

Add one more 0.7 changelog entry.

--------------------------------------------------------------------------------
6b5ecca766 | Mark Mackey | 2010-05-05 13:38:55 +0100

Merge of the original myzotdef branch into the Crawl 0.6 release branch. Quite 
a few edits required...

--------------------------------------------------------------------------------
7152a37895 | David Lawrence Ramsey | 2010-05-05 07:05:27 -0500

Add more 0.7 changelog tweaks.

--------------------------------------------------------------------------------
32051d6b17 | David Lawrence Ramsey | 2010-05-05 06:58:21 -0500

Add more changelog entries for 0.7.

--------------------------------------------------------------------------------
6dec0aa517 | Adam Borowski | 2010-05-05 13:09:25 +0200

Don't let zombies open doors, that requires a modicum of intelligence.
Enslaved souls are handled elsewhere, so even though they count as zombified,
they are unaffected by this change.

--------------------------------------------------------------------------------
86cca53300 | Adam Borowski | 2010-05-05 13:02:54 +0200

Don't block non-full people in lich form from wielding vampiric weapons. They 
don't suffer a food hit anyway.

--------------------------------------------------------------------------------
fe53d8403b | Adam Borowski | 2010-05-05 13:02:54 +0200

Ask when wielding vampiric weapons when not a vampire/mummy/in lich form.

--------------------------------------------------------------------------------
fc14cb1155 | Adam Borowski | 2010-05-05 13:02:54 +0200

Consistently use needs_handle_warning(), even where not yet needed.

--------------------------------------------------------------------------------
3ae91ab0bd | Adam Borowski | 2010-05-05 13:02:54 +0200

Don't rely on autoinscribe for distortion prompts.

--------------------------------------------------------------------------------
4854204854 | Adam Borowski | 2010-05-05 13:02:54 +0200

Allow aborting slow/haste/teleport by donning an amulet of stasis, at cost of 
glow.

--------------------------------------------------------------------------------
45b3f9d4cb | David Ploog | 2010-05-05 11:38:21 +0200

New message for Sif wrath effect on magic. (Kyrris)

--------------------------------------------------------------------------------
cb78d086a2 | David Ploog | 2010-05-05 11:20:22 +0200

Improve message for scroll of vulnerability. (Erik)
Was: "Magic dampens around you."
Now: "Magic dampens, then quickly surges around you."

--------------------------------------------------------------------------------
fa1e2e9b16 | David Lawrence Ramsey | 2010-05-04 18:32:09 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
fd6b7f54c4 | David Lawrence Ramsey | 2010-05-04 18:31:37 -0500

Add more changelog entries for 0.7.

--------------------------------------------------------------------------------
8f179e0d10 | Robert Burnham | 2010-05-04 16:04:43 -0500

Cleanup testing code

--------------------------------------------------------------------------------
870de8f6f6 | Robert Burnham | 2010-05-04 16:02:55 -0500

Change aux attack distributions slightly
Old implementation has 50% punch, 25% kick, 25% headbutt
My recent revision shifted this to 33% to each
This shifts the paradigm back to the old implementation's distributions

--------------------------------------------------------------------------------
ade2f71bd7 | Robert Burnham | 2010-05-04 15:14:43 -0500

Address Mantis 1331 and 1474
Setting the map obj to a (mostly) fresh object instead of carrying over
any potentially previously known knowledge was causing autotravel to break
and would result in specific scenarios where auto-traveling would repeatedly
tell the player they had found whatever items the detected creature (which was
now dead) had dropped.

--------------------------------------------------------------------------------
43a80dde59 | Adam Borowski | 2010-05-04 22:04:26 +0200

No squirting ink on land, please!

--------------------------------------------------------------------------------
dc67aa6ca5 | Darshan Shaligram | 2010-05-05 01:22:32 +0530

Remove shallow water from Ilsuiw's hut -- players without lev/fly might 
teleport there and be trapped.

--------------------------------------------------------------------------------
fe169c6b5f | Darshan Shaligram | 2010-05-05 01:07:03 +0530

Experimental Shoals change to give shallow water a greater depth range. The 
ratio of land to water is still (roughly) the same, but the extra shallow water 
should improve connectivity and encourage players to get their toes wet.
The added depth range of shallow water also improves the look of Shoals islands 
at high/low tide extremes with more natural shallow water contours.

--------------------------------------------------------------------------------
279291369d | Robert Burnham | 2010-05-04 14:23:06 -0500

Fix formatting & Notes for Aux Unarmed Rewrite
The unarmed rewrite that I last commited was lacking in some verbosity as to
what was changed and how it might affect aux attack frequency. In the previous
paradigm a single attack was selected based on a couple of coinflips and
whether the player species was speical cased (SP_NAGA would get UNAT_HEADBUTT
whereas everyone else would coinflip() for UNAT_HEADBUTT and UNAT_KICK,
SP_VAMPIRE would have a !one_chance_in(3) (I believe) to replace whatever their
UNAT attack was with UNAT_BITE. An aux attack could only be made if it was
the one that was selected via the aforementioned coinflip / species check logic
or if the player had a mutation specific to an additional unarmed attack.

In the new paradigm, one attack is selected from UNAT_PUNCH, UNAT_KICK, and
UNAT_HEADBUTT at random if the player satisfies some general qualifications
for performing an unarmed attack (these are the same as in the old paradigm,
primarily using can_do_unarmed). Then, additional unarmed attacks are selected
by checking the uc_special_conditions boolean of the current unarmed attack.
Generally speaking, uc_special_conditions checks for the presence of a mutation
and performs a coinflip or other chance check (so that players with UC
mutations are not ALWAYS making aux attacks).

The rest of the code (which checks for evasion, helpful_evasion, auto_hit,
Elyvilon penance, etc.) was almost entirely copied / pasted from the old
code, with minor changes for improved readability or simplification.

--------------------------------------------------------------------------------
cd15fe398a | Ixtli | 2010-05-04 23:45:06 +0530

Changed structs that acted like classes to classes
Anything that had more than constructors, const or static member functions,
or operator definitions were considered acting like classes.

--------------------------------------------------------------------------------
5a59108b03 | Robert Burnham | 2010-05-04 12:05:10 -0500

Rewrite player_aux_unarmed for maintainability
Also adds in monstrous code for DS monstrous mutation sets.

--------------------------------------------------------------------------------
38b48859bb | David Lawrence Ramsey | 2010-05-04 09:37:16 -0500

Add a few more 0.7 changes to the changelog.

--------------------------------------------------------------------------------
57df33bc60 | Adam Borowski | 2010-05-04 12:29:27 +0200

Kill tentacles when a kraken gets polymorphed.

--------------------------------------------------------------------------------
00d8441352 | Eino Keskitalo | 2010-05-04 12:53:39 +0300

Fix a dead end in an ice cavern. (by)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e24c488cb4 | Eino Keskitalo | 2010-05-04 12:50:53 +0300

Fix a floor spot colour in an ice cave entry. (by)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f5361c2e26 | Robert Vollmert | 2010-05-04 11:40:25 +0200

changelog: variable silence radius is not new to 0.7

--------------------------------------------------------------------------------
9b2cd71083 | Robert Vollmert | 2010-05-04 11:34:23 +0200

Collect some of the 0.7 changes at the start of changelog.txt.
I'm sure I've missed a few.

--------------------------------------------------------------------------------
8605b18883 | David Lawrence Ramsey | 2010-05-03 19:31:25 -0500

Add forced monster shouting as a negative Recite effect.

--------------------------------------------------------------------------------
7464253f91 | David Lawrence Ramsey | 2010-05-03 19:31:25 -0500

Make force_monster_shout() available outside wizard mode.

--------------------------------------------------------------------------------
63fde171c6 | Robert Burnham | 2010-05-03 18:52:30 -0500

Undo spines change

--------------------------------------------------------------------------------
e8a809d977 | David Lawrence Ramsey | 2010-05-03 17:49:59 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
c134c15b96 | Robert Burnham | 2010-05-03 17:16:39 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
f7ef53a9a4 | Robert Burnham | 2010-05-03 17:16:20 -0500

Fix spines not affecting natural reach attacks

--------------------------------------------------------------------------------
7e151b0c50 | Robert Vollmert | 2010-05-03 19:46:56 +0200

Comment on MAX_RANDOM_SHOPS.

--------------------------------------------------------------------------------
6d95e830d8 | Robert Vollmert | 2010-05-03 19:46:55 +0200

Change shop distribution (dpeg).
New shop chances per sourceforge FR 1913201 (chance of level to
have shops at all, percentages):

Dungeon    20       20
Snake      20       20
Shoals     20       20
Lair       20        0
Swamp      20        0
Orc        20       30
Elf        20       40
Vaults     20       40

Expected number of levels with shops increased from 13.2 to 14.0.
While the previous simplification commit lowered the expected number
of shops from 20.5 to 18.7, this raises it back to 19.9.

Considering that deeper shop levels are more likely to get bazaars and
this change moves shops deeper, it's actually likely to increase the
number of shops in the game.

--------------------------------------------------------------------------------
4b29e49045 | Robert Vollmert | 2010-05-03 19:46:55 +0200

Remove obsolete unique placement comment.

--------------------------------------------------------------------------------
1c90bd629c | Robert Vollmert | 2010-05-03 19:46:55 +0200

Replace branch::has_shops by branch::shop_chance.
shop_chance is the chance for a level in that branch to get shops at all.
This commit should result in equivalent placement, giving a flat 20%
for each branch that had has_shops == true.

--------------------------------------------------------------------------------
a81d4e81ce | Robert Vollmert | 2010-05-03 19:46:55 +0200

_place_shops: Simplify numbers.
This raises the expected number of shops per shop-level from
1.34 to 1.42, while lowering the chance of a level to get
shops at all from 23.2% to 20%, so expected number of shops
per level is down to 0.28 from 0.31.

--------------------------------------------------------------------------------
40551fc344 | Robert Vollmert | 2010-05-03 19:46:54 +0200

_place_shops: rewrite choice of number of shops.
The new code should be equivalent. In preparation of variable shop rates.

--------------------------------------------------------------------------------
a759b6a479 | Adam Borowski | 2010-05-03 01:38:22 +0200

JoachimSchipper's fix to the save-eating bug introduced in 401bc108 (cherry 
picked from commit 86675fb4e584e453d9dc7fe12d3893b9178e55cf)

--------------------------------------------------------------------------------
86675fb4e5 | Adam Borowski | 2010-05-03 01:22:01 +0200

JoachimSchipper's fix to the save-eating bug introduced in 401bc108

--------------------------------------------------------------------------------
8c63e0b6ea | Adam Borowski | 2010-05-03 00:59:59 +0200

Negatively enchanted rings are strictly bad.

--------------------------------------------------------------------------------
7012a16b56 | Adam Borowski | 2010-05-02 22:09:44 +0200

Fix problems related to umlauts where Crawl expects 7-bit ASCII letters.

--------------------------------------------------------------------------------
ae9f586b81 | Steven Noonan | 2010-05-02 10:52:19 -0700

Makefiles: fix GCC existence check on broken 'which' implementations
Some 'which' implementations print errors to stdout instead of
stderr, which can give false positives. Fix this by redirecting
all output of 'which' to /dev/null, and checking the return value
instead.

Thanks to JoachimSchipper on Mantis for this suggestion (Issue #926).

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
593ffbd0d0 | Steven Noonan | 2010-05-02 10:50:11 -0700

Makefiles: fix GCC existence check on broken 'which' implementations
Some 'which' implementations print errors to stdout instead of
stderr, which can give false positives. Fix this by redirecting
all output of 'which' to /dev/null, and checking the return value
instead.

Thanks to JoachimSchipper on Mantis for this suggestion (Issue #926).

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
41c9659597 | Steven Noonan | 2010-05-02 10:15:36 -0700

files.cc: fix 'tar' to use non-GNU options
This fixes the save system for BSD-like 'tar' versions (including Mac OS X).

Patch povided by Mantis user 'JoachimSchipper', in #1470.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
401bc10845 | Steven Noonan | 2010-05-02 10:07:14 -0700

files.cc: fix 'tar' to use non-GNU options
This fixes the save system for BSD-like 'tar' versions (including Mac OS X).

Patch povided by Mantis user 'JoachimSchipper', in #1470.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
04e4a4c532 | Luca Barbieri | 2010-05-02 09:26:04 -0700

libutil: enlarge vmake_stringf buffer
It seems it overflows at least with Visual C++.

Thanks to greensnark for debugging this.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
9a87278be6 | Luca Barbieri | 2010-05-02 09:25:53 -0700

Fix los _is_better to be a proper operator <
Currently it may result in a < b && b < a.

Fix the check for first_diag to make it a proper operator <.

The Microsoft debug CRT asserts on this.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
fb39471305 | Luca Barbieri | 2010-05-02 09:25:05 -0700

Don't pass chars >= 256 to isdigit
The Microsoft debug CRT asserts on this.

This happens with keycodes.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d949dcd6ad | Luca Barbieri | 2010-05-02 09:23:48 -0700

Fix clang error due to input_class being used without being defined
gcc doesn't complain because the use is in a template.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
939569abe5 | Luca Barbieri | 2010-05-02 09:22:48 -0700

libutil: enlarge vmake_stringf buffer
It seems it overflows at least with Visual C++.

Thanks to greensnark for debugging this.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ec310b395d | Luca Barbieri | 2010-05-02 09:22:26 -0700

Fix los _is_better to be a proper operator <
Currently it may result in a < b && b < a.

Fix the check for first_diag to make it a proper operator <.

The Microsoft debug CRT asserts on this.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
86a0b7bf3f | Luca Barbieri | 2010-05-02 09:21:24 -0700

Fix tile_colour.cc to not pass FILE* across multiple CRTs on Windows
On Windows, the main program and libpng may use different C libraries,
and passing FILE* between them won't work.

Thus, set a callback function that calls our version of fread, instead
of using the libpng FILE* helpers.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
fe4457834d | Luca Barbieri | 2010-05-02 09:21:14 -0700

Fix tiletex.cc to not pass FILE* across multiple CRTs on Windows
On Windows, the main program and SDL may use different C libraries,
and passing FILE* between them won't work.

Just pass the filename to SDL directly, which also saves code size.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f2207059b9 | Luca Barbieri | 2010-05-02 09:21:05 -0700

Don't pass chars >= 256 to isdigit
The Microsoft debug CRT asserts on this.

This happens with keycodes.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1db4c9a6d7 | Luca Barbieri | 2010-05-02 09:20:57 -0700

Fix clang warning due to extra semicolon
Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ebb91f11b1 | Luca Barbieri | 2010-05-02 09:20:47 -0700

Fix clang warning due to mixing struct/class bolt
Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
950e06df1a | Luca Barbieri | 2010-05-02 09:20:16 -0700

Fix clang error due to input_class being used without being defined
gcc doesn't complain because the use is in a template.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
62f65eabc7 | Janne Lahdenpera | 2010-05-02 18:05:39 +0300

Fix Unchoosable menu options in book etc menus
This adds an enum that lists the miscellaneous choices
mapped to negative numbers so that there will never be an
ID conflict.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
d306c4aa1d | Darshan Shaligram | 2010-05-02 18:51:13 +0530

Place Shoals monsters on land if possible to reduce empty-Shoals-syndrome from 
all monsters sleeping in water far from land (rob).

--------------------------------------------------------------------------------
1495326af3 | Robert Vollmert | 2010-05-02 14:10:19 +0200

Default force_more_message when levitation runs out.

--------------------------------------------------------------------------------
989d9d12b3 | Johanna Ploog | 2010-05-02 13:34:25 +0200

Replace most static commands in the tutorial with calls to get_cmd().

--------------------------------------------------------------------------------
78a37aea3e | Johanna Ploog | 2010-05-02 13:34:25 +0200

Space allowing, use more lines for the saved game startup menu.

--------------------------------------------------------------------------------
ef8bbd4cb0 | David Lawrence Ramsey | 2010-05-01 13:22:12 -0500

Apply MrMisterMonkey's patch in Mantis 1157.
Nemelex will no longer take gold sacrifices.

--------------------------------------------------------------------------------
adb17c3202 | Robert Vollmert | 2010-05-01 18:32:35 +0200

Remove unused slider_menu.

--------------------------------------------------------------------------------
a5163abad9 | Ixtli | 2010-05-01 10:04:53 -0400

Created a static WindowManager::shutdown() fxn
tilesdl.cc now calls this after GLStateManager::shutdown() so
that it is not responsible for managing the wm pointer.

Signed-off-by: Enne Walker <enne.walker@gmail.com>

--------------------------------------------------------------------------------
1ebe1d600d | Robert Vollmert | 2010-05-01 10:34:48 +0200

dungeon.cc:_place_shops simplification.

--------------------------------------------------------------------------------
e56bd9709e | Stefan O'Rear | 2010-04-30 18:07:49 -0700

Chain lightning is AUTOMATIC_HIT, it need not be fudged

--------------------------------------------------------------------------------
de26a0d29f | Robert Vollmert | 2010-04-30 22:46:41 +0200

Scale slime wall damage with depth.
Damage now ranges from 1d1 to 1d6 per adjacent wall per slot per turn.

--------------------------------------------------------------------------------
07931f97e0 | Robert Vollmert | 2010-04-30 22:46:41 +0200

Further acid splash modifications.
If the cloak saves you from damage through a slot, it now also
saves the equipment in that slot from corrosion.

The cloak now doesn't protect itself or the shield slot
(realistically it shouldn't affect much besides body armour,
but let's leave it at this).

Finally, the shield slot doesn't take damage, only corrosion.
The shield already does enough against acid damage by possibly
blocking attacks.

--------------------------------------------------------------------------------
c5428e69c3 | Robert Vollmert | 2010-04-30 22:46:41 +0200

Two extra virtual slots for acid splash damage.

--------------------------------------------------------------------------------
d9a68d4446 | Robert Vollmert | 2010-04-30 22:46:40 +0200

Armour corrosion for slimy walls.

--------------------------------------------------------------------------------
c25eda6649 | David Lawrence Ramsey | 2010-04-30 10:50:59 -0500

Add spelling fix.

--------------------------------------------------------------------------------
e385237f83 | Janne Lahdenpera | 2010-04-30 18:33:14 +0300

Converts tool menu to new Menu
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
d465b26586 | Janne Lahdenpera | 2010-04-30 18:33:13 +0300

Convert god choice to new Menu
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
4ecf94ce6f | Janne Lahdenpera | 2010-04-30 18:33:12 +0300

Converts book choice to new menu
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
667e075d9b | Robert Burnham | 2010-04-30 10:18:32 -0500

Fix DS infinite loop issue
With the removal of some ds mutations there were circumstances which
would cause the mutation-selection code to loop endlessly because it
could not find enough tier-1 mutations without having multiple
scales (which would cause the code to restart).

--------------------------------------------------------------------------------
7401b96347 | Robert Vollmert | 2010-04-30 15:47:43 +0200

Slimy walls.
There's a new dungeon_feature_type DNGN_SLIMY_WALL that behaves
like DNGN_ROCK_WALL in most ways (I'm sure I missed some things).

The player and non-slime monsters are damaged proportionally to
the number of walls they're next to.

This currently goes through splash_with_acid for the player,
which means they're immune if fully equipped, which is suboptimal.
No item corrosion at the moment.

For monsters, the damage doesn't take equipment into account, and
is roughly the same as player damage.

But this is easy to adjust: Just edit effects.cc:slime_wall_damage.

--------------------------------------------------------------------------------
76a5c0c7ff | William Parker | 2010-04-30 13:05:52 +0200

Fixed pizza messages
Fixes issue #1453.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
3ca5ad332a | Robert Vollmert | 2010-04-30 12:51:43 +0200

Allow starting the arena from the startup menu.
This adds a primitive arena team choice screen, and integrates arena
team settings with newgame_def.

--------------------------------------------------------------------------------
fba03ac69d | Robert Vollmert | 2010-04-30 12:24:16 +0200

Remove obsolete SysEnv.board_with_nail.

--------------------------------------------------------------------------------
21d205b0f1 | Robert Vollmert | 2010-04-30 11:33:49 +0200

Reenable arena.
Only command-line arena works for now. The lack of integration
with choose_game/setup_game is suboptimal.

--------------------------------------------------------------------------------
e5a374c218 | David Lawrence Ramsey | 2010-04-29 18:53:19 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
cc12b5e794 | David Lawrence Ramsey | 2010-04-29 16:25:53 -0500

Fix warnings.

--------------------------------------------------------------------------------
f0264b95c7 | Johanna Ploog | 2010-04-29 22:55:50 +0200

Fix a bug preventing the initialization for the hints mode. Ahem.

--------------------------------------------------------------------------------
b281ad6e83 | Johanna Ploog | 2010-04-29 22:54:17 +0200

Add Denzi's superbly awesome skeleton monster tiles. Thank you!

--------------------------------------------------------------------------------
3792061e68 | Johanna Ploog | 2010-04-29 22:54:17 +0200

Scrap the old tutorial's highly verbose introduction screens.
Well, except for the first one because I really like that one.

--------------------------------------------------------------------------------
cd62d9c813 | Johanna Ploog | 2010-04-29 22:51:15 +0200

Change some comments from tutorial -> hints mode.

--------------------------------------------------------------------------------
d7fed6a7e1 | Robert Burnham | 2010-04-29 14:02:48 -0500

Remove slow metabolism as ds mutation

--------------------------------------------------------------------------------
5bfebdbc40 | Janne Lahdenpera | 2010-04-29 19:24:46 +0300

Fix black highlights in non-Windows console builds
Use textbackground() instead of bitshifted textcolor()

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
9de4bc955a | Janne Lahdenpera | 2010-04-29 19:07:09 +0300

Implement textbackground() for Win console builds
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
ee828f3045 | Janne Lahdenpera | 2010-04-29 18:51:19 +0300

Fix input in Windows SDL tiles builds
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
34b26ab173 | Janne Lahdenpera | 2010-04-29 18:07:32 +0300

Convert _prompt_weapon to new Menu system This will allow selection by arrows 
and mouse. I also standardised the option key choices to be the same with 
species/background menu.
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
4761510441 | Robert Vollmert | 2010-04-29 16:13:56 +0200

Implement Tab for sprint map menu.
It's lacking a game description:
  Tab - last game's choice
should become
  Tab - GhWr in dungeon_sprint_1
or similar.

--------------------------------------------------------------------------------
0232e404d2 | Robert Vollmert | 2010-04-29 15:56:26 +0200

Implement Tab for startup menu.
Pressing Tab pulls in the last games choices as it does in
the species/job selection. With this, restarting a sprint
character is a little less painful (just hit Tab).

--------------------------------------------------------------------------------
4f676d67cc | Robert Vollmert | 2010-04-29 15:45:13 +0200

Add a startup menu for sprint map choice.
The menu will show up once more than one sprint map exists.

--------------------------------------------------------------------------------
54cbe5ecbd | Johanna Ploog | 2010-04-29 15:48:47 +0200

Some more tutorial tweaks.

--------------------------------------------------------------------------------
0f21ef22b3 | David Ploog | 2010-04-29 13:55:53 +0200

One more fix for background descriptions.

--------------------------------------------------------------------------------
2a9c3c1542 | Chapayev | 2010-04-29 13:49:50 +0200

Noise scrolls and teleport scrolls and mutations no longer happen in Sprint.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
b2d4953ce6 | Johanna Ploog | 2010-04-29 14:10:59 +0200

Don't save or load ghosts in the tutorial.

--------------------------------------------------------------------------------
9a262a3693 | Johanna Ploog | 2010-04-29 14:10:59 +0200

Make sure tutorial characters start with a limited equipment.
No more shields or bread rations at the beginning!

--------------------------------------------------------------------------------
06936d2d2e | Jesse Luehrs | 2010-04-29 12:41:37 +0200

Revert "Experimentally use the piety pool for large piety gains (Jiyva, Ely)."
Cherry-picked from 9570809a4b. 0.6 piety gain seems unproblematic, so
using the piety pool here seems to add unnecessary complexity.

  This reverts commit e020215c2eb41dda302d86ac580b4b40e46377ca.

  by says that this is somewhat problematic and no longer necessary for
  jiyva

--------------------------------------------------------------------------------
7eb7d9142d | Robert Vollmert | 2010-04-29 11:20:24 +0200

Don't let body armour spellcasting bonus even out shield penalty.
Fixes issue #1118.

--------------------------------------------------------------------------------
6b94e6ebe1 | Robert Vollmert | 2010-04-29 10:59:12 +0200

Fix merfolk and kenku evasions bonus (#1446).

--------------------------------------------------------------------------------
2adbf17e40 | Robert Vollmert | 2010-04-29 10:48:45 +0200

Fix character choice resetting name/type when rerolling.

--------------------------------------------------------------------------------
5c393bc87e | Johanna Ploog | 2010-04-28 23:18:15 +0200

Add a help screen to the drop/pickup menus.

--------------------------------------------------------------------------------
aa47fd81c4 | Janne Lahdenpera | 2010-04-28 20:38:43 +0300

Fix compile for Windows Tiles Added missing header <sys/stat.h>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
1389ebf59d | David Lawrence Ramsey | 2010-04-28 12:05:18 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
a9b2c15a40 | David Lawrence Ramsey | 2010-04-28 11:14:15 -0500

Fix Mantis 1424.
Give the "nothing happens" message and get out instead of crashing if
the player tries to cast Simulacrum using chunks of an unzombifiable
monster.

--------------------------------------------------------------------------------
447c38be98 | Johanna Ploog | 2010-04-28 18:16:53 +0200

Add spectral monster tiles based on Porkchop's designs. Thanks!
Might be nice to draw them semitransparently but I found no quick way
to achieve this.

--------------------------------------------------------------------------------
56b05a520d | David Lawrence Ramsey | 2010-04-28 10:24:19 -0500

Clarify the messages when herbivores try to eat meat.

--------------------------------------------------------------------------------
9442980b82 | Adam Borowski | 2010-04-28 14:41:55 +0200

A couple of vaults.

--------------------------------------------------------------------------------
b5eda56fb8 | Adam Borowski | 2010-04-28 14:41:54 +0200

An Ecumenical Temple of Lugonu.

--------------------------------------------------------------------------------
c88ecce6d9 | Adam Borowski | 2010-04-28 14:41:54 +0200

No amulets of Faith {rCorr EV+4 Dex+4}, please.

--------------------------------------------------------------------------------
5dc19778d9 | Adam Borowski | 2010-04-28 14:41:54 +0200

Make Khufu's tomb shift items to the inside.

--------------------------------------------------------------------------------
4ff376f5a7 | David Ploog | 2010-04-28 14:30:56 +0200

More minor tweaks to species and background descriptions.

--------------------------------------------------------------------------------
e43608c7d3 | David Ploog | 2010-04-28 14:17:22 +0200

Minor changes to background and species descriptions.

--------------------------------------------------------------------------------
58565c56af | Robert Vollmert | 2010-04-28 13:20:30 +0200

Reenable old tutorial as a hints mode.
It's a new game type GAME_TYPE_HINTS.

The hints mode probably needs a bit of updating. Certainly
the character selection menu does.

--------------------------------------------------------------------------------
fe707db904 | Robert Vollmert | 2010-04-28 13:19:41 +0200

Rename old "tutorial" to "hints".
This is to mostly everything inside crawl-ref/source.
I may have missed other places.

--------------------------------------------------------------------------------
a23089eb55 | Robert Vollmert | 2010-04-28 12:25:06 +0200

Safer handling of random species/job resolution.
In particular, choosing a viable species for a job with no viable species
(Thief) doesn't cause an endless loop anymore.

--------------------------------------------------------------------------------
4261ca118f | Robert Vollmert | 2010-04-28 12:12:10 +0200

Don't rely on find_saved_characters to determine if save exists.
Should fix DGL installs not restoring old games.

--------------------------------------------------------------------------------
8e44b7c583 | Robert Vollmert | 2010-04-28 12:10:05 +0200

Fail more gracefully if name not specified with DGL.

--------------------------------------------------------------------------------
41afedaaec | Robert Vollmert | 2010-04-28 11:21:38 +0200

Fix char choice reset blanking name and game type.

--------------------------------------------------------------------------------
ff17b10f29 | Robert Vollmert | 2010-04-28 11:15:46 +0200

Sanity check in choose_game.

--------------------------------------------------------------------------------
6720bce040 | Robert Vollmert | 2010-04-28 11:12:55 +0200

Properly disable name choice for DGL builds.

--------------------------------------------------------------------------------
9e76d334eb | Robert Vollmert | 2010-04-28 09:23:44 +0200

Default game type to "normal" instead of undefined.
Should fix problems when running "crawl -name whatever".

--------------------------------------------------------------------------------
bfeeec6d31 | Johanna Ploog | 2010-04-27 23:23:54 +0200

Use sandstone floor tiles in the ossuary portal vaults.
A way to specify stone wall default tiles (similar to rock walls)
would be nice. I've tried overriding the stone wall tiles but
without success.

--------------------------------------------------------------------------------
1f41d08f0e | Johanna Ploog | 2010-04-27 23:23:54 +0200

Add more of Denzi's dungeon tiles.
Add sandstone, crystal and volcanic floor/wall designs. Currently
unused but appropriate for use in various portal vaults.

--------------------------------------------------------------------------------
24671d0418 | David Lawrence Ramsey | 2010-04-27 15:17:58 -0500

Add punctuation fixes.

--------------------------------------------------------------------------------
f7fe397fb9 | Robert Burnham | 2010-04-27 14:13:49 -0500

Stealth bonus to thin skeletal structure

--------------------------------------------------------------------------------
8ef1d8e144 | Johanna Ploog | 2010-04-27 19:34:41 +0200

Update des/guide.txt to the sprint and tutorial folders.

--------------------------------------------------------------------------------
2497b14b2c | Johanna Ploog | 2010-04-27 19:34:40 +0200

A few minor tutorial tweaks.

--------------------------------------------------------------------------------
ee31212ea4 | David Lawrence Ramsey | 2010-04-27 11:12:43 -0500

Fix typo.

--------------------------------------------------------------------------------
e2788e7cd7 | Robert Vollmert | 2010-04-27 17:11:06 +0200

Update DGL to use Options.game.name instead of Options.player_name.

--------------------------------------------------------------------------------
31fcf35416 | Robert Vollmert | 2010-04-27 17:11:06 +0200

Remove obsolete Options.prev_game.

--------------------------------------------------------------------------------
931c3e11d2 | Robert Vollmert | 2010-04-27 17:11:06 +0200

Unify startup menu with rest of character choice.
Game type is now also stored in newgame_def, and crawl remembers
the last choice.

We could now easily add a Tab key to the startup menu that
functions like the species choice Tab but that includes
filling out the same name.

--------------------------------------------------------------------------------
ae5148397e | Robert Vollmert | 2010-04-27 17:11:05 +0200

Quarantine save game checking code in files.{cc,h}.
In particular, checking save existence in newgame is now not responsible
for unpacking packaged saves...

--------------------------------------------------------------------------------
3510dad131 | David Lawrence Ramsey | 2010-04-27 09:25:20 -0500

Add Summon Swarm back to the list of ghost spells.
For variety, keep Summon Butterflies in the list as well.

This partially reverts commit 206561aada8eb23fc1cd2f16cd1d6659b12d3e2d.

--------------------------------------------------------------------------------
42cec4d9a3 | David Lawrence Ramsey | 2010-04-27 09:25:20 -0500

Implement Swarm as a monster spell.

--------------------------------------------------------------------------------
b20a497688 | Johanna Ploog | 2010-04-27 16:29:39 +0200

Add tutorial training dummy tile.
Actually, this is Slash'em's paper golem tile, as per Denzi's permission
to use these designs for Crawl.

--------------------------------------------------------------------------------
3c5f833ad7 | David Lawrence Ramsey | 2010-04-27 08:53:49 -0500

Update comments to account for demonic crawlers' glyph change.

--------------------------------------------------------------------------------
206561aada | Jude Brown | 2010-04-27 23:31:45 +1000

Replace Summon Swarm with Summon Butterflies [#1439].
Swarm hasn't been implemented as a monster spell, and causes a crash
when random Pandemonium lords get it and try to cast it.

--------------------------------------------------------------------------------
c69456e8f1 | Jude Brown | 2010-04-27 23:00:47 +1000

Further tutorial tweaks.
Remove the text about closing doors, it's unneeded and can be checked in
the commands list if people really want to know. Convert the rest of the
tutorial messages to use the special function for them.

--------------------------------------------------------------------------------
e35a11cdc0 | Robert Vollmert | 2010-04-26 21:59:40 +0200

No bonus headbutt damage for melded helmets.

--------------------------------------------------------------------------------
53eb0404aa | David Ploog | 2010-04-26 21:32:27 +0200

Update CREDITS.
Move Robert Burnham and Janne Lahdenperä to the devteam.

--------------------------------------------------------------------------------
e6fde6b4ad | Robert Vollmert | 2010-04-26 20:51:18 +0200

Make melee_attack::player_aux_unarmed() a little clearer.
Also corrects aux to-hit calculation (as far as I can tell),
though this should only affect vampires.

Whoever is responsible for the vampire aux unarmed code
might want to reevaluate. Is it really intended that a
vampire never gets auxiliary kicks and headbutts, and
a punch only in one sixth of cases?

--------------------------------------------------------------------------------
f5e367644b | David Lawrence Ramsey | 2010-04-26 13:00:09 -0500

Per evktalo's suggestion, remove amphibiousness from (very) ugly things.

--------------------------------------------------------------------------------
21a099dfd6 | Robert Vollmert | 2010-04-26 17:52:08 +0200

newgame.cc: Pass around defaults explicitly.
There's now a very limited number of places that touch
Options.game and Options.prev_game.

--------------------------------------------------------------------------------
511ea879e2 | Enne Walker | 2010-04-26 11:24:16 -0400

Remove unused TDSP enum for initial tab choice.
The documentation was already removed.

--------------------------------------------------------------------------------
bb180e483a | Enne Walker | 2010-04-26 11:24:16 -0400

Clean up a boolean member into a virtual function.

--------------------------------------------------------------------------------
d166485231 | Enne Walker | 2010-04-26 11:24:04 -0400

Move tile2.cc's code to tilepick.cc.
It belongs there and tile2.cc is far too vague of a name.

--------------------------------------------------------------------------------
77f0e7e6c0 | Robert Vollmert | 2010-04-26 17:16:00 +0200

Fix random character choice.
A fully random character (# or ! in species/background menu) will
currently prompt for book, weapon, etc., which I think is fine, but
could obviously be changed.

--------------------------------------------------------------------------------
5d9ed37f74 | Robert Vollmert | 2010-04-26 16:35:36 +0200

Fix two bugs in startup book choice (#1433).

--------------------------------------------------------------------------------
15a02dbf35 | Robert Vollmert | 2010-04-26 16:24:05 +0200

Clean up newgame.cc:_choose_wand.

--------------------------------------------------------------------------------
0a212d52c8 | Robert Vollmert | 2010-04-26 16:19:52 +0200

Clean up newgame.cc:_choose_weapon.

--------------------------------------------------------------------------------
edfc5faeca | Steven Noonan | 2010-04-26 04:02:45 -0700

Xcode: fix ASCII build
Fixes bug 1406.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ee915dbbd4 | Steven Noonan | 2010-04-26 04:02:44 -0700

SDL: fix Xcode project by eliminating X11-related sources from build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ae26de6cd0 | Steven Noonan | 2010-04-26 04:02:44 -0700

itemname.cc: fix incorrect function overload for get_text()
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
16b2698bee | Steven Noonan | 2010-04-26 04:02:44 -0700

stash.cc: fix incorrect overload of get_text()
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e2873e27d1 | Steven Noonan | 2010-04-26 04:02:44 -0700

invent.h: fix incorrect function overload for get_text()
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
dfd5b3cf8c | Steven Noonan | 2010-04-26 04:02:44 -0700

startup.h: fix 'no newline at end of file' warning
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
412dc3e483 | Robert Vollmert | 2010-04-26 10:35:45 +0200

Clean up newgame.cc:_choose_god.

--------------------------------------------------------------------------------
4db473550c | Robert Vollmert | 2010-04-26 10:35:45 +0200

Make religion_restriction cover all cases correctly.

--------------------------------------------------------------------------------
45622b06ef | Jude Brown | 2010-04-26 16:44:48 +1000

Add Cryptic to the CIA hooks.

--------------------------------------------------------------------------------
23a6c29344 | Robert Burnham | 2010-04-25 22:59:03 -0500

Add MUT_SPIKED_TAIL
Builds correctly this time.

--------------------------------------------------------------------------------
7808a07e5d | Steven Noonan | 2010-04-25 19:29:24 -0700

SDL: fix linkage on Mac OS X
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
04c3849ac9 | Steven Noonan | 2010-04-25 19:23:35 -0700

PCRE: ignore .cflags file
This fixes some Git 1.7 'git status' annoyances

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c449924e25 | Steven Noonan | 2010-04-25 19:21:16 -0700

glwrapper.h: check for ASSERTS, instead of DEBUG for _valid()
In glwrapper.cc, we check for ASSERTS. This makes it consistent.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a44aba7015 | Enne Walker | 2010-04-25 21:54:47 -0400

Add Chris Galardi (ixtli) to the credits.
Thanks for all the refactoring work! :)

--------------------------------------------------------------------------------
8305dc11a6 | Enne Walker | 2010-04-25 19:33:13 -0400

Split tilereg.h/cc into multiple files.
No functional changes, just rearranging and exposing functions where
needed.

--------------------------------------------------------------------------------
edacdc0db3 | Enne Walker | 2010-04-25 19:15:12 -0400

Reduce dependencies on tilereg.h.
This was done by pushing ImageManager to tiletex.h, where it better
belongs.

--------------------------------------------------------------------------------
255e8100b2 | Enne Walker | 2010-04-25 19:15:11 -0400

Simplify TileRegion constructors.
Since all the derived classes need the same set of parameters to pass
down to the base class, then just wrap it in a struct.

--------------------------------------------------------------------------------
a8c0ff94c3 | Robert Vollmert | 2010-04-25 22:40:32 +0200

Clean up newgame.cc:_choose_book.

--------------------------------------------------------------------------------
280e33c522 | David Lawrence Ramsey | 2010-04-25 13:38:07 -0500

In Shatter, check for flying monsters after icy and skeletal monsters.
This handles e.g. bone dragons properly again.

--------------------------------------------------------------------------------
1ece4b432c | David Lawrence Ramsey | 2010-04-25 13:33:12 -0500

Generalize checks for icy and skeletal monsters when casting Shatter.

--------------------------------------------------------------------------------
1f452bc437 | David Lawrence Ramsey | 2010-04-25 13:24:43 -0500

Move the check for being skeletal to the actor interface.

--------------------------------------------------------------------------------
b11471e68a | David Lawrence Ramsey | 2010-04-25 12:48:28 -0500

Add missing "else".

--------------------------------------------------------------------------------
92deac9c73 | David Lawrence Ramsey | 2010-04-25 12:31:18 -0500

Implement a few suggestions from Mantis 1423.
Generalize the monster checks in Shatter to make all insubstantial
monsters take no damage from it instead of hardcoding a list of such
monsters (which seems to be inaccurate in some places).  This means that
spectral things take no damage instead of less damage from Shatter.

Also, since the only monster left taking no damage after that change is
the water elemental, which is not insubstantial, make it take less
damage instead of no damage, just as spectral things used to.

--------------------------------------------------------------------------------
2f7f596882 | Eino Keskitalo | 2010-04-25 16:56:29 +0300

Partially fix Windows tiles compilation. It'll now compile, but they keyboard 
input is not working.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
65ebe90c49 | Enne Walker | 2010-04-24 11:41:03 -0400

Simplify tile buffer logic.
No need to check for NULL translate and scale.

--------------------------------------------------------------------------------
2d6f66b257 | Enne Walker | 2010-04-24 11:41:03 -0400

Fix GLPrimitive to use a size_t, as returned by sizeof.

--------------------------------------------------------------------------------
7881570d55 | Enne Walker | 2010-04-24 11:41:03 -0400

Comment cleanup.

--------------------------------------------------------------------------------
db855be418 | Enne Walker | 2010-04-24 11:41:02 -0400

Don't allow event_count to return a negative.
If SDL considers -1 to be an error, just handle that internally and don't
pollute the API with that.

--------------------------------------------------------------------------------
628a7cdd6f | Enne Walker | 2010-04-24 11:41:02 -0400

Move specific create funcs out of generic files.
glwrapper-ogl.cc, windowmanager-sdl.cc, and fontwrapper-ft.cc now contain
the static functions for their parent class's factory create.  This
allows new implementations to be added without requiring modification of
the generic file (with #ifdefs).

--------------------------------------------------------------------------------
a22caea215 | Enne Walker | 2010-04-24 11:41:02 -0400

General coding standards update.
No spaces on parens.  Line up function params.  Sort includes more
rationally.  Put curly braces on their own line.  Don't C-style typedef
enum and structs.  Put if-clauses on their own line.

--------------------------------------------------------------------------------
0f928518b4 | Enne Walker | 2010-04-24 11:40:56 -0400

Removing lines with just whitespace.

--------------------------------------------------------------------------------
99c0f354b2 | Ixtli | 2010-04-24 10:19:49 -0400

Fixed regression in tilesdl.cc

--------------------------------------------------------------------------------
61b6ffc624 | Ixtli | 2010-04-24 10:19:49 -0400

Brought merge changes in line with iPad branch

--------------------------------------------------------------------------------
fc49ef72eb | Ixtli | 2010-04-24 10:19:49 -0400

term colours struct seems to have gotten misplaced.

--------------------------------------------------------------------------------
f56176389e | Steven Noonan | 2010-04-24 10:19:49 -0400

makefile: set up reasonable default config for tiles builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
92399eb0eb | Ixtli | 2010-04-24 10:19:48 -0400

Cleaned up unneeded whitespace on newline in tilebuff.cc

--------------------------------------------------------------------------------
eb02dc846c | Ixtli | 2010-04-24 10:19:48 -0400

Moved comment related to GLState to glwrapper.h

--------------------------------------------------------------------------------
9ae0b88aa1 | Ixtli | 2010-04-24 10:19:48 -0400

Removed tilesdl.h dep in libgui.

--------------------------------------------------------------------------------
9d87b908eb | Ixtli | 2010-04-24 10:19:48 -0400

Fixups for things that broke during rebase.

--------------------------------------------------------------------------------
2c7e60f2c5 | Ixtli | 2010-04-24 10:19:47 -0400

Declaired certain member functions const.

--------------------------------------------------------------------------------
ea2346a8ae | Ixtli | 2010-04-24 10:19:47 -0400

Removed out of date forward declairations of FTFont

--------------------------------------------------------------------------------
f491a7dac6 | Ixtli | 2010-04-24 10:19:47 -0400

More refactoring to reflect UIWrapper -> WindowManager change.

--------------------------------------------------------------------------------
adb9bdd8a8 | Ixtli | 2010-04-24 10:19:47 -0400

Changed uiwrapper filenames.

--------------------------------------------------------------------------------
8afcc8373d | Ixtli | 2010-04-24 10:19:47 -0400

Renamed UIWrapper ABC to WindowManager and instantiation to 'wm'.

--------------------------------------------------------------------------------
aec2b3cc42 | Ixtli | 2010-04-24 10:19:47 -0400

Merged cgcontext into uiwrapper-sdl

--------------------------------------------------------------------------------
024c5583f5 | Ixtli | 2010-04-24 10:19:46 -0400

Changed DEBUG to ASSERTS to comply with changes in master.

--------------------------------------------------------------------------------
c8ba62e0d0 | Ixtli | 2010-04-24 10:19:46 -0400

Map SDLK_KP_ENTER to CK_ENTER.
Mirrors changes in commit 68b67bcfe12cbe1ef546f95537e42a86711b12cc.

--------------------------------------------------------------------------------
6090946414 | Ixtli | 2010-04-24 10:19:46 -0400

Quieted compiler warning about comparison betweened signed and unisgned ints.

--------------------------------------------------------------------------------
2ea0205843 | Ixtli | 2010-04-24 10:19:46 -0400

Fixed a diff conflict in tilesdl.cc

--------------------------------------------------------------------------------
149c762839 | Ixtli | 2010-04-24 10:19:45 -0400

Created FontWrapper, and made FT flag in makefile.

--------------------------------------------------------------------------------
bab61331e9 | Ixtli | 2010-04-24 10:19:45 -0400

Removed conditional inclusion of glwrapper.h

--------------------------------------------------------------------------------
28f98235d7 | Ixtli | 2010-04-24 10:19:45 -0400

Made UIWrapper global creation method a static member of UIWrapper

--------------------------------------------------------------------------------
0f6f1d85f8 | Ixtli | 2010-04-24 10:19:45 -0400

Implemented dynamically dispatched cgwrapper.

--------------------------------------------------------------------------------
c71aabfb7c | Ixtli | 2010-04-24 10:19:44 -0400

Textures are now unloaded before SDL.
This required turning TileManager::m_image int a pointer.

--------------------------------------------------------------------------------
96377c8e38 | Ixtli | 2010-04-24 10:19:44 -0400

Made glwrapper use proper dynamic dispatch for modularity.

--------------------------------------------------------------------------------
dc2af3903a | Ixtli | 2010-04-24 10:19:44 -0400

Added static function to create UIWrapper global.  # Changes to be committed:

--------------------------------------------------------------------------------
2d947390ab | Ixtli | 2010-04-24 10:19:44 -0400

Modified uiwrapper to be an abstract base class.
SDL calls are now done from a specific subclass called SDLWrapper
and the global UIWrapper variable is now a pointer.

--------------------------------------------------------------------------------
015b8c3f39 | Ixtli | 2010-04-24 10:19:44 -0400

Fixed forward declaration of SDL structs as classes.

--------------------------------------------------------------------------------
eb4e4d280e | Ixtli | 2010-04-24 10:19:43 -0400

Cleaned up includes and #ifdefs. Made uiwrapper conditionally support SDL.

--------------------------------------------------------------------------------
7510c643fb | Ixtli | 2010-04-24 10:19:43 -0400

Fixed -h file names referring to specific implementations.
The makefile should now name the .o's based on what libraries you're using, as
well.

--------------------------------------------------------------------------------
b91812a7a4 | Ixtli | 2010-04-24 10:19:43 -0400

Prettied up glwrapper set_transform

--------------------------------------------------------------------------------
38e5cb7bf0 | Ixtli | 2010-04-24 10:19:43 -0400

Cleaned up glwrapper

--------------------------------------------------------------------------------
cd3e3d5b05 | Ixtli | 2010-04-24 10:19:43 -0400

Removed drawTextBox and drawColoredBox and replaced them with calls to 
draw_primitive.  Also added GLStateManager methods for setting the current 
drawing color, and a GLW_4VF struct for completeness.

--------------------------------------------------------------------------------
c7744f87e9 | Ixtli | 2010-04-24 10:19:42 -0400

added native_surface() function in graphicscontext to allow uiwrapper to not be 
reliant on SDL_image.

--------------------------------------------------------------------------------
5f2f3ee17f | Ixtli | 2010-04-24 10:19:42 -0400

Removed unnecessary conditional for texturing lines.

--------------------------------------------------------------------------------
1af9eb811f | Ixtli | 2010-04-24 10:19:42 -0400

UIWrapper camelCase to underscores_as_spaces

--------------------------------------------------------------------------------
1f6e8dc858 | Ixtli | 2010-04-24 10:19:42 -0400

More camel case to underscores_as_spaces

--------------------------------------------------------------------------------
d2b2b4e879 | Ixtli | 2010-04-24 10:19:42 -0400

Changed camelcased function names to underscores_as_spaces

--------------------------------------------------------------------------------
34993de71c | Ixtli | 2010-04-24 10:19:41 -0400

More coding standards changes.  This time s/if\(/if\ \(/g

--------------------------------------------------------------------------------
8e76bc63a3 | Ixtli | 2010-04-24 10:19:41 -0400

Updated files to conform to crawl coding standards

--------------------------------------------------------------------------------
c3202e35e3 | Ixtli | 2010-04-24 10:19:41 -0400

Fixed include order and ifdefs

--------------------------------------------------------------------------------
2792e3b367 | Ixtli | 2010-04-24 10:19:41 -0400

removed opengl from UIWrapper, fixed indenting in uiwrapper-sdl and added a 
resizeWindow method in GLStateManager

--------------------------------------------------------------------------------
39c67a4758 | Ixtli | 2010-04-24 10:19:41 -0400

Added GLPrimitive to glwrapper, condenced all vert-drawing methods to 
drawGLPrimitives and then updated tilebuf, font, reg, and sdl to use it 
propperly.
As well, tilebuf's VertBuffer::draw() method needed to be changed to allow 
passing to pre-render transformations (used in submerged tile rendering.)

--------------------------------------------------------------------------------
780665a3fb | Robert Vollmert | 2010-04-24 10:19:40 -0400

Fix ipad compile with contrib SDL_image.
Signed-off-by: Ixtli <cg@325i.org>

--------------------------------------------------------------------------------
8ff2689843 | Ixtli | 2010-04-24 10:19:40 -0400

Moved MipMapOptions to glwrapper for modularity

--------------------------------------------------------------------------------
ef69303d12 | Ixtli | 2010-04-24 10:19:40 -0400

Removed tiletex dependancy on SDL_opengl and updated glwrapper.h/cc to support 
it

--------------------------------------------------------------------------------
5c4d00b303 | Ixtli | 2010-04-24 10:19:40 -0400

Updated ui_event_type for better padding

--------------------------------------------------------------------------------
c18e9b460d | Ixtli | 2010-04-24 10:19:40 -0400

Updated tilereg.cc to use existing GLStateManager member functions instead of 
direct calls to opengl.

--------------------------------------------------------------------------------
477c89dcc5 | Ixtli | 2010-04-24 10:19:39 -0400

Removed direct calls to opengl from tilefont and updated glwrapper accordingly.

--------------------------------------------------------------------------------
6aaab96c48 | Ixtli | 2010-04-24 10:19:39 -0400

Updated tilesdl.cc to use glwrapper instead of direct gl calls.

--------------------------------------------------------------------------------
2aae294694 | Ixtli | 2010-04-24 10:19:39 -0400

Removed unncecessary creation of a ui_event on the stack to silence warnings.

--------------------------------------------------------------------------------
c31d5b4b44 | Ixtli | 2010-04-24 10:19:39 -0400

Added missing open-bracket in tilesdl.cc

--------------------------------------------------------------------------------
7fa395bb2c | Ixtli | 2010-04-24 10:19:39 -0400

Updated cgcontext-sdl.cc to reflect changes to image loading that fix [941], an 
issue with umlauts in the path.

--------------------------------------------------------------------------------
6af04251ac | Ixtli | 2010-04-24 10:19:39 -0400

Integrated glwrapper into tilebuf.h/cc and tilereg.cc

--------------------------------------------------------------------------------
dd974ddf47 | Ixtli | 2010-04-24 10:19:38 -0400

Added drawing functions and fixed many syntax errors in glwrapper.cc/h

--------------------------------------------------------------------------------
4064d1c1f8 | Ixtli | 2010-04-24 10:19:38 -0400

Removed GLState and GLStateManager classes from tilebuf.cc/h and moved them to 
the new glwrapper files.  Removed SDL_opengl from these files and instead have 
them call static members of the GLStateManager class.

--------------------------------------------------------------------------------
a79a36f5a6 | Ixtli | 2010-04-24 10:19:38 -0400

Added glwrapper, which expands the GLStateManager class from tilebuf into a 
(g)raphics (l)ibrary wrapper.  Also updated the makefile to include it when 
making with GL=y

--------------------------------------------------------------------------------
8067f73bd6 | Ixtli | 2010-04-24 10:19:38 -0400

Comment added for pointer casting

--------------------------------------------------------------------------------
3c6fd6211f | Ixtli | 2010-04-24 10:19:38 -0400

Updated tilesdl.cc to use UIWrapper and added TODOs to UIWrapper-SDL.cc

--------------------------------------------------------------------------------
5d9247b1c3 | Ixtli | 2010-04-24 10:19:37 -0400

Removed unnecessary inclusion of SDL.h in tilebuf and tilefont

--------------------------------------------------------------------------------
f1deb99ebf | Ixtli | 2010-04-24 10:19:37 -0400

Factored out SDL calls from tiletex.cc

--------------------------------------------------------------------------------
fc96edda85 | Ixtli | 2010-04-24 10:19:37 -0400

Created GraphicsContext class and added .o to makefile

--------------------------------------------------------------------------------
106b427bb6 | Ixtli | 2010-04-24 10:19:37 -0400

Added endianness testing fxn to UIWrapper

--------------------------------------------------------------------------------
ee76ebe8f9 | Ixtli | 2010-04-24 10:19:37 -0400

Added uiwrapper getEventCount and UIDelay, and applied them in libui.cc

--------------------------------------------------------------------------------
dcca3a08a4 | Ixtli | 2010-04-24 10:19:36 -0400

Noted a comparison of uint with sint with a FIXME

--------------------------------------------------------------------------------
ecf71b8dba | Ixtli | 2010-04-24 10:19:36 -0400

Updated ui_event struct and MouseEvent for a padding issue.

--------------------------------------------------------------------------------
48bbbf0182 | Ixtli | 2010-04-24 10:19:36 -0400

Coverted tabs to spaces

--------------------------------------------------------------------------------
fed52061ff | Ixtli | 2010-04-24 10:19:36 -0400

Removed unnecessary includes in uiwrapper-sdl.cc

--------------------------------------------------------------------------------
71ca39a4ec | Ixtli | 2010-04-24 10:19:36 -0400

Updated makefile to define USE_SDL if SDL=y

--------------------------------------------------------------------------------
4bfb0dea81 | Ixtli | 2010-04-24 10:19:36 -0400

Modified tilesdl.h/cc to use UIWrapper for SDL

--------------------------------------------------------------------------------
0f342dd201 | Ixtli | 2010-04-24 10:19:35 -0400

Fixed some #include issues in uiwrapper-sdl.*

--------------------------------------------------------------------------------
e0d505c535 | Ixtli | 2010-04-24 10:19:35 -0400

Initial commit of uiwrapper-sdl files

--------------------------------------------------------------------------------
f1285e67e5 | Jude Brown | 2010-04-24 17:26:31 +1000

Further tutorial tweaks.
Improve messages, combine the num-pad and vi-keys into one messag and,
using the default screen size for console, ensure they are visible on
the first turn of actual play.

Outsource some more texts and commands, convert everything to use
tutorial.message, shrink the sizes of the maps so that they're more
visually pleasing to edit, and tweak the placement of the mace/helmet
messages so that there's no way to miss them (such as while
auto-exploring).

Introduces two new markers specifically for traps: poisoned_needle_trap
marks all needle traps as always causing poison, and force_hit, meaning
that there's no way to avoid the trap. Useful for the tutorial.

Finally, a quick wrapper for stop_running that isn't really necessary,
but may come in useful in the future.

--------------------------------------------------------------------------------
324b8816c9 | Robert Vollmert | 2010-04-24 08:51:17 +0200

Make tutorial messages interrupt travel.

--------------------------------------------------------------------------------
f7fe51cc8c | Robert Vollmert | 2010-04-23 23:43:49 +0200

A start at cleaning up handling of new game choices.
No more storing species and background indices. Instead, there's
now a few instances of newgame_def:

Options.game: command line and option game settings
  (used to be Options.cls, Options.race, ...)
Options.prev_game: the previous game's choices
  (used to be Options.prev_cls, ...; should not be in Options)
ngchoice: current choices, internal to newgame.cc

The species and background choice now separate interrogating
the user from applying settings from Options.game. This is not
the case yet for the secondary choices. Secondary choice memory
may be slightly broken at the moment.

--------------------------------------------------------------------------------
7dd7c0d264 | Robert Vollmert | 2010-04-23 23:36:34 +0200

Make newgame remember random selections once again.

--------------------------------------------------------------------------------
11213ff6ef | Robert Vollmert | 2010-04-23 23:36:34 +0200

Fix random species/background choice not leaving character selection.

--------------------------------------------------------------------------------
9b4f19e623 | David Lawrence Ramsey | 2010-04-23 11:17:11 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ae8af63bdc | David Lawrence Ramsey | 2010-04-23 11:15:30 -0500

Add mana capacity increase/decrease messages to the canned messages.

--------------------------------------------------------------------------------
8003275671 | David Lawrence Ramsey | 2010-04-23 09:59:19 -0500

Add typo and wording fixes.

--------------------------------------------------------------------------------
b2c5b9721a | Jude Brown | 2010-04-23 23:35:10 +1000

Remove old/incorrect comments.

--------------------------------------------------------------------------------
67de71b4e5 | Jude Brown | 2010-04-23 21:54:25 +1000

Further tweaks to the tiles.
Hopefully resolves some of the issues; also removes the starting club
from the tutorial character.

--------------------------------------------------------------------------------
ca9247974a | Jude Brown | 2010-04-23 21:12:29 +1000

Update event names.
Oops, forgot to add this to the last commit.

--------------------------------------------------------------------------------
3c2dce4954 | Jude Brown | 2010-04-23 20:30:55 +1000

Add a Dungeon event for low-HP warning.
Also includes relevant Lua coding for use in maps/tutorial, etc.

--------------------------------------------------------------------------------
85563e132f | Jude Brown | 2010-04-23 19:49:10 +1000

Tutorial overhauls.
* Use specific commands instead of hard-coded; this currently isn't
  possible with mice (and not necessarily needed, as I don't believe there
  is much that can be done to re-key mouse commands). Also, as the numpad
  is always accessible by default, this is hard-coded in.
* The welcome messages have been moved into the epilogue of the first
  map. This includes all the necessary welcome text and, for non-tiles
  games, includes a keymap of the numpad (possibly unnecessary) and
  vi-keys (or whatever the user has configured).
* It converts all of the functions from message_at_spot to a custom
  function_at_spot that prints the relevant message, and also clears all
  previous messages, giving a clear look and feel.
* Finally, some other commands have been unhardcoded.

This is just a start, but I'm starting to warm to how this should all go
together. Would welcome some input from the UP team as to whether my
improvements have helped any.

--------------------------------------------------------------------------------
dc74d188af | Jude Brown | 2010-04-23 19:49:09 +1000

Don't display welcome and help messages in tutorial mode.
The point of the tutorial is to welcome the player and provide help.
Having these messages here merely clutters and confuses.

--------------------------------------------------------------------------------
66f69a152e | Jude Brown | 2010-04-23 19:49:09 +1000

Remove hardcoded tutorial welcome in favour of map epilogue.

--------------------------------------------------------------------------------
c8d4bc35b7 | Jude Brown | 2010-04-23 19:49:08 +1000

Update mesclr wrapper, add command_to_string wrapper.

--------------------------------------------------------------------------------
dc9866ecff | Robert Vollmert | 2010-04-23 11:37:55 +0200

Move draconian subspecies choice fully to setup_game().

--------------------------------------------------------------------------------
699a6ef8d1 | Robert Vollmert | 2010-04-23 11:37:55 +0200

Add missing punctuation.

--------------------------------------------------------------------------------
9fbc3242e1 | Robert Vollmert | 2010-04-23 11:37:54 +0200

Make welcome messages treat unnamed characters better.

--------------------------------------------------------------------------------
a60edc3247 | Robert Vollmert | 2010-04-23 11:37:54 +0200

Merge character welcome messages.

--------------------------------------------------------------------------------
3e8b9e467c | Jude Brown | 2010-04-23 16:24:57 +1000

"not_cursed" tag for Vault items, test suite. (#1397).
As requested by felirx, applying "not_cursed" to an item description
prevents it from being generated as cursed (or rather, it removes a
curse if there is one).

Also includes a test suite that generates a hundred iterations of an
item and reports on cursed status: 302 or so out of 5000 "short sword"
items were generated cursed, while 0 out of 5000 "short sword
not_cursed" items were generated cursed.

--------------------------------------------------------------------------------
542e290bdf | Jude Brown | 2010-04-23 14:24:36 +1000

Whitespace fix.

--------------------------------------------------------------------------------
5d13863073 | Jude Brown | 2010-04-23 14:22:45 +1000

Never place tutorial maps randomly outside tutorial mode.
This partially reverts ddb37190cebbc835e0f387da3515528fbb4ca8fb, and
hopefully fixes both issues: tutorial maps being used in the normal
game, and the tutorial not working at all.

--------------------------------------------------------------------------------
78f96ccebd | Robert Vollmert | 2010-04-23 03:05:16 +0200

Cosmetic.

--------------------------------------------------------------------------------
ddb37190ce | Robert Vollmert | 2010-04-23 03:05:02 +0200

Don't load tutorial.des. (Hack)
Fixes normal games using tutorial maps for D:2 and below.

Breaks the tutorial.

--------------------------------------------------------------------------------
7084ebcc08 | David Lawrence Ramsey | 2010-04-22 19:15:44 -0500

Fix compilation.

--------------------------------------------------------------------------------
c51aba1678 | Janne Lahdenpera | 2010-04-23 01:23:16 +0200

Support for wrapping texts in TextItems
Adds support for wrapping texts in TextItems and cleans up some overlapping
code and calls.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
ed4f7b6709 | Robert Vollmert | 2010-04-23 01:13:48 +0200

Split up new_game.
choose_game() is now only concerned with choosing a character, and
doesn't touch "you". setup_game() (ng-setup.cc) then fills out
"you" and other stuff.

--------------------------------------------------------------------------------
b44796a4ed | Robert Vollmert | 2010-04-23 01:13:47 +0200

Move artificer wand choice before character initialization.

--------------------------------------------------------------------------------
41cdd91776 | Robert Vollmert | 2010-04-23 01:13:47 +0200

Move priest god choice before character initialization.

--------------------------------------------------------------------------------
f4ae9aad4a | Robert Vollmert | 2010-04-23 01:13:47 +0200

Move chaos knight god choice before character initialization.

--------------------------------------------------------------------------------
9107401b7c | Robert Vollmert | 2010-04-23 01:13:47 +0200

Remove Death Knight of Yredelemnul (dpeg, doy).
This is highly redundant with Priest of Yredelemnul.

Necromancy death knights are also up for removal,
but:

1. I'm not as convinced of that.
2. The current change is what's required for new_game
   clean-up.
3. That would mean changing the job_type enum.

Death Knight species choice restrictions are now
the species that used to be unrestricted both for
DK and for the necromancy choice, apart from Kenku.
That probably needs updating, but let's wait to see
if DK isn't removed completely first.

--------------------------------------------------------------------------------
e94ed06cf1 | Robert Vollmert | 2010-04-23 01:13:47 +0200

Move weapon choice before character initialization.

--------------------------------------------------------------------------------
7e99eb5204 | David Lawrence Ramsey | 2010-04-22 18:04:42 -0500

Fix compilation.

--------------------------------------------------------------------------------
18ef54e81d | David Lawrence Ramsey | 2010-04-22 18:01:02 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
ee6b5fca13 | Robert Burnham | 2010-04-22 16:14:53 -0500

Modularize and implement ozo armour melting

--------------------------------------------------------------------------------
4164fb5799 | Robert Burnham | 2010-04-22 16:14:53 -0500

Remove unnecessary dprf call

--------------------------------------------------------------------------------
733822ecf7 | Eino Keskitalo | 2010-04-22 20:22:03 +0300

A hatch for the Vehumet trees overflow vault, plus an idea for further 
development. (kilobyte)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0334db7f59 | Adam Borowski | 2010-04-22 18:20:56 +0200

Remove the place.num_runes field, it is never used.
Actually, it had some purpose, protecting against accidentally placing
two runes on the same level, but the branches with variable rune placement
(Vaults and Slime) don't rely on that.

This field got broken by the KITEM: O change, if you think having it is a
good idea, shout and I'll reimplement it.

--------------------------------------------------------------------------------
bc3bfcd342 | Adam Borowski | 2010-04-22 17:49:11 +0200

Remove the connection between rune enums and branch enums. (Actually, schedule 
the removal for the next save compat break.)

--------------------------------------------------------------------------------
3bd72f5bf1 | Adam Borowski | 2010-04-22 17:49:11 +0200

Place runes explicitely instead of 'O' magic.

--------------------------------------------------------------------------------
c796973fe8 | Adam Borowski | 2010-04-22 17:49:11 +0200

Use constants instead of magic numbers for Pan's and Abyss' depth.

--------------------------------------------------------------------------------
5f73c18f20 | Adam Borowski | 2010-04-22 17:49:11 +0200

Allow requesting a specific rune via [K]ITEM.

--------------------------------------------------------------------------------
3e6948147c | David Lawrence Ramsey | 2010-04-22 08:41:07 -0500

Move calculation of the AC bonus from icemail into a utility function.

--------------------------------------------------------------------------------
8bac7b9d7e | Robert Vollmert | 2010-04-22 13:07:47 +0200

Move book selection before character initialization.

--------------------------------------------------------------------------------
6a8168f9ee | Shayne Halvorson | 2010-04-22 11:31:56 +0200

Equipment corrosion for monsters.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
03d3be4f6d | Robert Vollmert | 2010-04-22 11:19:18 +0200

Fix startup menu name blanking.
As initially intended, treat names that come from save games as
filled in by the game (they are), hence make editing them clear
them.

Secondly, make backspace clear them just the same as letter input.

--------------------------------------------------------------------------------
26053a9450 | Robert Vollmert | 2010-04-22 11:14:19 +0200

Update startup menu help regarding blank or . as names.

--------------------------------------------------------------------------------
33eb4bb65b | Robert Vollmert | 2010-04-22 11:13:49 +0200

Don't modify name in is_good_name().
In particular, don't replace blank names with Options.prev_name.
This means that we can now just use a blank name if we want to
ask for the name later.

--------------------------------------------------------------------------------
c0e0b5cdb6 | David Lawrence Ramsey | 2010-04-21 17:24:01 -0500

Fix Mantis 1398: Display the current mutation level properly in "%".

--------------------------------------------------------------------------------
96a681e22f | Robert Vollmert | 2010-04-21 19:23:36 +0200

Reenable command line / options name setting.
Should mean that DGL works, hopefully.

--------------------------------------------------------------------------------
32eaa97c72 | Robert Vollmert | 2010-04-21 18:40:58 +0200

Change handling of name input field.
It is now synced with the selected save game or game type, so it's
less likely for confusing things to happen.

Due to the mess that is new_game() name handling, confusing things
still can happen if you leave with an empty name, but fixing that
is for later.

--------------------------------------------------------------------------------
edaa0c2f85 | Janne Lahdenpera | 2010-04-21 17:55:53 +0200

Adds new fixed game style tutorial mode
Old tutorial code is preserved for future refactoring to a hints mode.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
03682de5cb | Janne Lahdenpera | 2010-04-21 16:57:10 +0200

Fixes console char menu missing options
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
4b3d070012 | Robert Vollmert | 2010-04-21 16:49:27 +0200

Cut a lot of the old name entry code.

--------------------------------------------------------------------------------
79ed0108ad | Robert Vollmert | 2010-04-21 16:31:19 +0200

Convert tabs to spaces.

--------------------------------------------------------------------------------
2952f34453 | Janne Lahdenpera | 2010-04-21 16:29:42 +0200

Fixes a bug that allowed empty containers to become focused
This resulted in a crash during the startup menu if no savegames were
present, yet the user browsed past the last game mode option.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
cc73b77d8a | Robert Vollmert | 2010-04-21 16:11:40 +0200

Don't use references with std::bind2nd.
Fixes compile in some instances.

--------------------------------------------------------------------------------
a9f32f542c | Robert Vollmert | 2010-04-21 16:03:20 +0200

Make PrecisionMenu destructor virtual.

--------------------------------------------------------------------------------
c29aad39c3 | Robert Vollmert | 2010-04-21 15:57:33 +0200

Fix tiles compile (felirx).

--------------------------------------------------------------------------------
0fc60b4ac8 | David Lawrence Ramsey | 2010-04-21 07:40:56 -0500

Really fix Mantis 1322: Make the demonic guardian mutation DS-only.

--------------------------------------------------------------------------------
3d58e5ba4a | Adam Borowski | 2010-04-21 13:27:21 +0200

Mark robes of the archmagi as dangerous -- or, with Trog, strictly bad.

--------------------------------------------------------------------------------
5e1186029b | Robert Vollmert | 2010-04-21 12:40:45 +0200

Improved name handling in startup menu.
If you change the name from the pre-selected save name,
the save is now unselected, so that you get the expected
behaviour: Enter some different name, hit enter -> new game.

If you enter a name that matches an existing save game,
that game is selected.

Due to the way PrecisionMenu works, if you choose "Tutorial"
in the game type list, then enter an existing save name
(selecting that save from the save game list), then change
the name back to a new name, the game type list will jump
back to the first entry instead of staying at "Tutorial",
which might be desirable.

To prevent unnecessary game type resets,
PrecisionMenu::set_active_object() was changed to do nothing
if the given object is already active. I hope this doesn't
cause problems elsewhere.

--------------------------------------------------------------------------------
c601f9d75d | Robert Vollmert | 2010-04-21 12:36:50 +0200

Clean up switch.

--------------------------------------------------------------------------------
039a6073f4 | Robert Vollmert | 2010-04-21 12:36:49 +0200

Call find_saved_characters() just once.

--------------------------------------------------------------------------------
26b5a97026 | Robert Vollmert | 2010-04-21 12:36:49 +0200

Fix start-up menu spacing.

--------------------------------------------------------------------------------
bbd9709f0b | Robert Vollmert | 2010-04-21 12:36:48 +0200

Formatting.

--------------------------------------------------------------------------------
c41c976544 | Janne Lahdenpera | 2010-04-21 12:36:48 +0200

Startup menus.
This patch provides the startup menu.

Things that (seem) to work properly:
Normal game, Sprint, Arena, savegame loading.

Things that need improvement:
Tutorial does not activate, left it for future project when the new
fixed tutorial map is included. Arena needs an options screen before
it starts running. MenuScroller does not have a visible scrollbar or
more texts. Texts are not properly wrapped inside TextItems. Should
also provide an TextItem that uses formatted_string.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
3ec286ef4a | Janne Lahdenpera | 2010-04-21 12:36:41 +0200

A more generic menu structure approach
Converts the menu structure to a more generic approach,
Converts the species / backgrounds menus to use the structure.
Highlighter changed to a nonfilled rectangle in Tiles.
Added descriptions to menu options in species / backgrounds menus.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
e673758509 | David Lawrence Ramsey | 2010-04-20 22:41:15 -0500

Remove hard line wrapping.

--------------------------------------------------------------------------------
24e4ad85cd | David Lawrence Ramsey | 2010-04-20 22:25:34 -0500

Remove trailing whitespace.

--------------------------------------------------------------------------------
d21b85d4e2 | Robert Burnham | 2010-04-20 10:06:38 -0500

Mantis issue 243.

--------------------------------------------------------------------------------
9fbc5fde6a | David Lawrence Ramsey | 2010-04-19 17:42:59 -0500

Add spacing fixes to documentation.

--------------------------------------------------------------------------------
35f447fed5 | David Lawrence Ramsey | 2010-04-19 17:39:09 -0500

Apply maiermrk's patch in Mantis 1390: Fix documentation typos.

--------------------------------------------------------------------------------
726ed80624 | Robert Burnham | 2010-04-19 17:34:16 -0500

Move passive_freeze effects into fight.cc
Better suited to be there instead of ouch.cc, also addresses the
double-proc effects reported in mantis 469 regarding flaming/freezing/
pain/electrocution.

--------------------------------------------------------------------------------
0da65e8411 | Robert Burnham | 2010-04-19 17:19:24 -0500

Change repulsion field mutation loss text

--------------------------------------------------------------------------------
08ad3120a1 | Adam Borowski | 2010-04-19 22:24:45 +0200

Let autofight use weapons of reaching.
There's no proper handling of glass yet (but the rest of autofight can't
handle glass anyway).

--------------------------------------------------------------------------------
d742ad203e | Adam Borowski | 2010-04-19 22:02:43 +0200

A typo.

--------------------------------------------------------------------------------
48f4e98257 | David Lawrence Ramsey | 2010-04-19 11:24:54 -0500

Fix off-by-one error in summoning power for imps/ugly things.
Since the maximum power for both spells seems to be 71, this will put
the chance of summoning the strongest type as close as possible to 33%.

--------------------------------------------------------------------------------
e8538f551a | David Lawrence Ramsey | 2010-04-19 11:02:53 -0500

Add spacing fix.

--------------------------------------------------------------------------------
bb40c239cb | David Lawrence Ramsey | 2010-04-19 10:53:45 -0500

Add assertion to make sure that no mutation is left out of "%".

--------------------------------------------------------------------------------
f6d3f51ab8 | David Lawrence Ramsey | 2010-04-19 10:44:03 -0500

Simplify.

--------------------------------------------------------------------------------
9ea063afbb | David Lawrence Ramsey | 2010-04-19 10:22:02 -0500

Implement Mantis 1384.
All mutations without special cases now have associated short
descriptions for the "%" screen.

--------------------------------------------------------------------------------
e391d8186c | David Lawrence Ramsey | 2010-04-19 08:43:54 -0500

Add another Crazy Yiuf quote.

--------------------------------------------------------------------------------
262d9f693f | David Lawrence Ramsey | 2010-04-19 08:05:13 -0500

Remove unneeded blank lines.

--------------------------------------------------------------------------------
214756a551 | David Lawrence Ramsey | 2010-04-18 21:25:00 -0500

Clear the BLESSED_WEAPON flag after blessing a weapon with pain brand.
This ensures that a formerly TSO-blessed weapon will no longer be so
after branding.

--------------------------------------------------------------------------------
2a8598ccad | David Lawrence Ramsey | 2010-04-18 21:24:50 -0500

Comment fix.

--------------------------------------------------------------------------------
4eaae97630 | David Lawrence Ramsey | 2010-04-18 19:07:14 -0500

Compensate for removing shadow imps from the list of common demons.
Do this by increasing the chance of getting them in the list of lesser
demons by roughly the amount they lost.

--------------------------------------------------------------------------------
b311a6d078 | David Lawrence Ramsey | 2010-04-18 18:19:21 -0500

For consistency, make Ice Fiends glow, since all other fiend types do.

--------------------------------------------------------------------------------
77d8829921 | David Lawrence Ramsey | 2010-04-18 13:48:50 -0500

Fix warning.

--------------------------------------------------------------------------------
410860a281 | David Lawrence Ramsey | 2010-04-18 13:39:56 -0500

Fix Mantis 1385.
In the tile list, account for the demonic crawler's tile being in the
demons directory instead of the animals directory.

--------------------------------------------------------------------------------
182f067404 | David Lawrence Ramsey | 2010-04-18 12:40:08 -0500

Remove hard wrapping from skills.txt.

--------------------------------------------------------------------------------
f894792143 | David Lawrence Ramsey | 2010-04-18 12:32:03 -0500

Remove hard wrapping from branches.txt.

--------------------------------------------------------------------------------
0d62f77f42 | David Lawrence Ramsey | 2010-04-18 12:13:03 -0500

After some more thought, put Summon Ugly Thing back at level 5.
Leave the power nerf for very ugly things in.  Even with it, their HD is
still significantly more than ice beasts.

--------------------------------------------------------------------------------
bfce3e6adb | David Lawrence Ramsey | 2010-04-18 08:35:52 -0500

Fix inverted logic so that Summon Ugly Thing's very ugly chance is 33%.

--------------------------------------------------------------------------------
854173f2e9 | David Lawrence Ramsey | 2010-04-18 08:33:35 -0500

Fix inverted logic so that Call Imp's shadow/iron chance is 33%.

--------------------------------------------------------------------------------
51d18a06de | Robert Vollmert | 2010-04-18 12:05:18 +0200

Display weapon speed in @ player status.
Feel free to adapt the categorization if you like. I'm not attached to the
current version.

Neither maximal delay or any other measure of variance is currently included.
For what it's worth, I'd prefer to see the attack delay become constant.

--------------------------------------------------------------------------------
e2c86e8113 | Robert Vollmert | 2010-04-18 12:05:10 +0200

Cut down on code duplication (transformation description).

--------------------------------------------------------------------------------
12b39e057b | Robert Vollmert | 2010-04-18 12:05:05 +0200

Split up display_char_status a little.

--------------------------------------------------------------------------------
40f23e2933 | Robert Vollmert | 2010-04-18 12:04:39 +0200

Merge branch 'randomvar'

--------------------------------------------------------------------------------
68ad9eecd8 | David Lawrence Ramsey | 2010-04-17 23:58:21 -0500

Tweak the maximum chance of summoning very ugly things again.

--------------------------------------------------------------------------------
cc5d314d2b | David Lawrence Ramsey | 2010-04-17 23:42:05 -0500

Adjust the maximum chance of summoning very ugly things to not be 100%.

--------------------------------------------------------------------------------
f21f4abfa0 | David Lawrence Ramsey | 2010-04-17 23:38:51 -0500

Simplify.

--------------------------------------------------------------------------------
97352ed739 | David Lawrence Ramsey | 2010-04-17 22:54:02 -0500

Per Mu's suggestion, make Summon Ugly Thing a level 4 spell.
Also, tweak the chance for summoning a very ugly thing a bit.

--------------------------------------------------------------------------------
3f48e82b3f | David Lawrence Ramsey | 2010-04-17 22:21:59 -0500

Fix typo.

--------------------------------------------------------------------------------
8084c79fce | David Lawrence Ramsey | 2010-04-17 19:56:54 -0500

Remove hard wrapping from items.txt, as in monsters.txt.

--------------------------------------------------------------------------------
954079013b | David Lawrence Ramsey | 2010-04-17 19:43:50 -0500

Fix spacing at the ends of sentences, as with monsters.txt.

--------------------------------------------------------------------------------
a013ee158e | David Lawrence Ramsey | 2010-04-16 20:06:16 -0500

After some thought, increase iron imps' AC from 4 to 5.
This is to compensate better for their slow speed, and to better match
iron devils, since they have higher AC than other devils.

--------------------------------------------------------------------------------
9a325737a3 | David Lawrence Ramsey | 2010-04-16 19:07:50 -0500

Per OG17's suggestion, adjust iron imps' stats.
They now have 4 AC instead of 2, fittingly more than plain imps.

--------------------------------------------------------------------------------
41f27c64fb | David Lawrence Ramsey | 2010-04-16 18:37:10 -0500

Per OG17's suggestion, swap attacks of iron imps and lemures.
This means that iron imps now get one hit, while lemures get three, even
though the damage is roughly the same.

--------------------------------------------------------------------------------
85bf996fa5 | David Lawrence Ramsey | 2010-04-16 18:13:14 -0500

Change "weird sense of stasis" messages to "strange sense of stasis".
It's more consistent with the other teleport-related messages.

--------------------------------------------------------------------------------
92569a54a7 | David Lawrence Ramsey | 2010-04-16 12:23:07 -0500

Move demonic crawlers into the 's' section in the tile list.

--------------------------------------------------------------------------------
f7e7302889 | David Lawrence Ramsey | 2010-04-16 12:22:04 -0500

Add comment fixes.

--------------------------------------------------------------------------------
b7d1ac8476 | David Lawrence Ramsey | 2010-04-16 12:20:01 -0500

Update various tile lists to account for queen insect glyph changes.

--------------------------------------------------------------------------------
c884d611d2 | David Lawrence Ramsey | 2010-04-16 12:14:44 -0500

Reorder the queen insects in tilepick.cc to account for glyph changes.

--------------------------------------------------------------------------------
8ae7cc0465 | David Lawrence Ramsey | 2010-04-16 11:57:45 -0500

Per evktalo's suggestion, move demonic crawlers from '3' to 's'.
Furthermore, since green 's' is already used, make them lightgreen 's'.

--------------------------------------------------------------------------------
8986c97586 | David Lawrence Ramsey | 2010-04-16 11:51:35 -0500

Comment fixes.

--------------------------------------------------------------------------------
595251d88d | David Lawrence Ramsey | 2010-04-16 10:56:54 -0500

Tweak the mutation display in the output screen.
Move all the helmet-disabling mutations together, and display MUT_FANGS
as "fangs" rather than "sharp teeth".

--------------------------------------------------------------------------------
3ea522252d | Robert Burnham | 2010-04-16 10:46:38 -0500

Add entry for antennae so it properly displays on overview

--------------------------------------------------------------------------------
7f00245ccc | David Lawrence Ramsey | 2010-04-16 10:45:30 -0500

Improve the description of white imps.

--------------------------------------------------------------------------------
19cef96b12 | Eino Keskitalo | 2010-04-16 17:45:30 +0300

Some overflow altars for Vehumet and Okawaru.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
78f7c341f6 | David Lawrence Ramsey | 2010-04-16 08:00:59 -0500

Fix comment again.

--------------------------------------------------------------------------------
a1123dc700 | Adam Borowski | 2010-04-16 01:11:15 +0200

chmod the scores and logfile on "make install". Failure to do so makes 
characters effectively immortal. (cherry picked from commit 
9bef53b7a8e0623d10b7129d435e8352dfae69eb)

--------------------------------------------------------------------------------
9bef53b7a8 | Adam Borowski | 2010-04-16 00:58:54 +0200

chmod the scores and logfile on "make install". Failure to do so makes 
characters effectively immortal.

--------------------------------------------------------------------------------
4fb4624316 | Robert Burnham | 2010-04-15 16:54:09 -0500

Add default value to suppress warning

--------------------------------------------------------------------------------
cd63608e6c | David Lawrence Ramsey | 2010-04-15 15:55:14 -0500

Properly make Zin's sanctuary violation a separate conduct.

--------------------------------------------------------------------------------
74022c6781 | David Lawrence Ramsey | 2010-04-15 15:39:49 -0500

And make Zin care about sanctuary violation again.

--------------------------------------------------------------------------------
f29067a1fe | David Lawrence Ramsey | 2010-04-15 15:30:30 -0500

Give hell hounds animal intelligence, for consistency.

--------------------------------------------------------------------------------
bb5ed6a389 | David Lawrence Ramsey | 2010-04-15 15:10:47 -0500

Make Zin accept your allies' kills of unclean and chaotic monsters.

--------------------------------------------------------------------------------
f12d0e3de2 | David Lawrence Ramsey | 2010-04-15 14:50:34 -0500

Simplify.

--------------------------------------------------------------------------------
152ddc44f6 | David Lawrence Ramsey | 2010-04-15 13:19:06 -0500

Sort the files in makefile.obj again.

--------------------------------------------------------------------------------
1ba8909b07 | Tobias Rehbein | 2010-04-15 20:01:55 +0200

Do not rely on "git" when building from tarball

--------------------------------------------------------------------------------
b49bc54ecc | David Lawrence Ramsey | 2010-04-15 10:40:52 -0500

Mention Zin's disapproval of unclean magic in his description.

--------------------------------------------------------------------------------
855dbd38e8 | David Lawrence Ramsey | 2010-04-15 10:27:14 -0500

Add more punctuation fixes.

--------------------------------------------------------------------------------
88bc3e4f2c | Robert Vollmert | 2010-04-15 17:18:59 +0200

Print attack delay in @ text (wizard mode).

--------------------------------------------------------------------------------
186e7b2e2f | Robert Vollmert | 2010-04-15 17:18:58 +0200

Revert "Weapon parameter for calc_your_attack_delay."
This reverts commit 5cbf957b1b2b979fdc6dc8aa3c31f3bae6eb2c5f.

--------------------------------------------------------------------------------
0843d7e054 | Robert Vollmert | 2010-04-15 17:18:17 +0200

Revert "Print expected and maximal weapon delay."
This reverts commit 66f6c0cf80660b3c2487696b23c41698fdb37e03.

Moving it to @ description instead, since that is where to-hit is
currently, and this allows removing the equipped weapon hackery.

--------------------------------------------------------------------------------
82e2639ba0 | David Lawrence Ramsey | 2010-04-15 10:12:24 -0500

Reference Wayne's god in his spell-speech instead of hardcoding Okawaru.

--------------------------------------------------------------------------------
c5ae665c40 | David Lawrence Ramsey | 2010-04-15 09:50:21 -0500

Make Zin only care about the deaths of sentient allies.

--------------------------------------------------------------------------------
66f6c0cf80 | Robert Vollmert | 2010-04-15 16:35:57 +0200

Print expected and maximal weapon delay.
Wizard mode only, in the item description. It's the melee delay,
so it's not too helpful for ranged weapons at the moment.

--------------------------------------------------------------------------------
5cbf957b1b | Robert Vollmert | 2010-04-15 16:35:57 +0200

Weapon parameter for calc_your_attack_delay.

--------------------------------------------------------------------------------
b5d1ca88cc | Robert Vollmert | 2010-04-15 16:35:56 +0200

calc_your_attack_delay() gives access to attack delay.

--------------------------------------------------------------------------------
a37de029eb | Robert Vollmert | 2010-04-15 16:35:56 +0200

Make melee_attack delay calculations use random_var.
This is probably a lot less efficient, but then this is done at
most once per player turn.

--------------------------------------------------------------------------------
c4b430219a | Robert Vollmert | 2010-04-15 16:35:56 +0200

Integer random variables.
Using these to get at random values is quite inefficient,
but it allows computing expected values for complicated
formulas like those used in fight.cc.

--------------------------------------------------------------------------------
4baeeac951 | Robert Vollmert | 2010-04-15 16:35:48 +0200

Move hand_half_bonus calculation to init.
It was where it was when it still required an unarmed check,
but that's no longer the case.

--------------------------------------------------------------------------------
862cf34adc | David Lawrence Ramsey | 2010-04-15 09:31:27 -0500

And also mention Zin's protection against miasma.

--------------------------------------------------------------------------------
0bef7f5938 | David Lawrence Ramsey | 2010-04-15 09:29:57 -0500

Mention Zin's protection against disease and rotting in his description.

--------------------------------------------------------------------------------
f66bb334cc | David Lawrence Ramsey | 2010-04-15 08:52:52 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
d36c61d4e2 | David Lawrence Ramsey | 2010-04-15 07:19:17 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
feeca4eb73 | zulon | 2010-04-15 12:05:55 +0200

Fix wrong message order on using shafts while flying

--------------------------------------------------------------------------------
d1210d0f52 | Adam Borowski | 2010-04-15 10:45:38 +0200

Update the manual for rod recharge changes.

--------------------------------------------------------------------------------
10c9c8afb8 | David Lawrence Ramsey | 2010-04-14 17:56:56 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
eb99bfa952 | David Lawrence Ramsey | 2010-04-14 17:55:04 -0500

Replace iron imps' fire resistance with hellfire resistance.
This makes them consistent with iron devils, and imps' hellfire
resistance is also precedent.

--------------------------------------------------------------------------------
1edd87182a | David Lawrence Ramsey | 2010-04-14 17:49:00 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
ddce3bf4db | David Lawrence Ramsey | 2010-04-14 17:47:21 -0500

Give shadow imps see invisible.
This makes them consistent with other shadow demons, and also enables
them to see those that are invisible.

--------------------------------------------------------------------------------
1f6ab5fe87 | David Lawrence Ramsey | 2010-04-14 17:45:57 -0500

Give white imps poison resistance and fire vulnerability.
This makes them consistent with ice devils.

--------------------------------------------------------------------------------
4438a70781 | Adam Borowski | 2010-04-14 22:13:18 +0200

No pacifying of tentacles; go heal the head instead!

--------------------------------------------------------------------------------
94ed5dcc56 | David Lawrence Ramsey | 2010-04-14 13:02:48 -0500

Add spacing fix.

--------------------------------------------------------------------------------
f5ea4a15a4 | David Lawrence Ramsey | 2010-04-14 12:53:24 -0500

Add punctuation fixes.

--------------------------------------------------------------------------------
c5d076b437 | David Lawrence Ramsey | 2010-04-14 12:52:20 -0500

Since most in-game speech seems to follow the convention of one space after 
sentences, use it in monster descriptions and speech.  It also takes up less 
room that way.

--------------------------------------------------------------------------------
9c4ceea93c | David Lawrence Ramsey | 2010-04-14 12:46:30 -0500

Fix the Shakespeare reference in Eustachio's speech.

--------------------------------------------------------------------------------
296a76a723 | David Lawrence Ramsey | 2010-04-14 11:57:06 -0500

Per evktalo's suggestion, experimentally remove imps' seeing invisible.

--------------------------------------------------------------------------------
d9e31864f0 | David Lawrence Ramsey | 2010-04-14 11:52:03 -0500

Make quasits moan instead of being silent.

--------------------------------------------------------------------------------
ff9f6f7a36 | David Lawrence Ramsey | 2010-04-14 11:28:33 -0500

Since the manes has been renamed, remove the case for pluralizing it.

--------------------------------------------------------------------------------
c692b386ce | Robert Vollmert | 2010-04-14 15:44:03 +0200

Revert weapon delay calculation changes.
The delay formulas are too complicated to analyze. It turns
out that not only is attack delay randomized in
melee_attack::player_apply_attack_delay, but even base
weapon delay in melee_attack::player_weapon_speed goes
through randomization.

This reverts commit 25ba707d26259f7a35da9367a31df9184fd89b60.
This reverts commit 59cb47231f09c696c38ef72956e962c5b9cea191.
This reverts commit cea96c26d7185e3e46af5ff9497a6a240bd1a2a0.
This reverts commit e2c10d8fc5747b45025b8a48d6c3aa7b9300d6d3.
This reverts commit 43f9de964ec341f165fe942904758e08d56364d8.

--------------------------------------------------------------------------------
25ba707d26 | Robert Vollmert | 2010-04-14 15:19:39 +0200

Print expected and maximal weapon delay.
Wizard mode only, in the item description. It's not pretty, and not
accurate for hand-and-a-half with shield.

--------------------------------------------------------------------------------
59cb47231f | Robert Vollmert | 2010-04-14 15:19:36 +0200

Calculated expected attack delay.
calc_your_attack_delay gets a scale parameter, and an implementation
of R_EXPECTED which is correct except for the hand-and-a-half plus
shield case, since I'm lacking a formula for the expected value
of min(1dN+1dK, 1dN+1dK).

--------------------------------------------------------------------------------
cea96c26d7 | Robert Vollmert | 2010-04-14 15:18:46 +0200

Weapon parameter for calc_your_attack_delay.

--------------------------------------------------------------------------------
e2c10d8fc5 | Robert Vollmert | 2010-04-14 12:48:35 +0200

calc_your_attack_delay() gives access to attack delay.
It currently only allows computing minimal and maximal delay (aside
an actual random value) since the distribution isn't that straight
forward.

--------------------------------------------------------------------------------
43f9de964e | Robert Vollmert | 2010-04-14 12:41:27 +0200

New enum random_type, generalizing "bool random".
Values are R_RANDOM, R_EXPECTED, R_MAXIMUM, R_MINIMUM. This can be
used where more information about a random variable is required
than what is currently done with maybe_random2(bool random).

--------------------------------------------------------------------------------
b6a8c53871 | David Lawrence Ramsey | 2010-04-13 20:31:24 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c58281770b | David Lawrence Ramsey | 2010-04-13 20:28:55 -0500

Make the kinds of imps summoned by Call Imp dependent on spell power.

--------------------------------------------------------------------------------
55f0f9ab9d | David Lawrence Ramsey | 2010-04-13 19:29:31 -0500

Per Mu's suggestion, make Call Imp level 2 instead of level 3.

--------------------------------------------------------------------------------
a61f69c6ca | Adam Borowski | 2010-04-14 00:52:54 +0200

Amulet of rage is useless with Trog only if you have enough piety.

--------------------------------------------------------------------------------
ee96510603 | Robert Burnham | 2010-04-13 17:28:48 -0500

Implement mutation colouring changes and add missing parentheses

--------------------------------------------------------------------------------
de73f9d8c7 | Robert Burnham | 2010-04-13 17:28:48 -0500

Fix mantis 934
Corrects DS mutations not being properly gained when the mutation is already
maxed because of random-mutation gains.

--------------------------------------------------------------------------------
88116748ea | Eino Keskitalo | 2010-04-13 21:49:11 +0300

In magic dart description (both spell and wand), note that they never miss.
This is useful and somewhat spoily information, especially early on.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
c1098e59ac | David Lawrence Ramsey | 2010-04-13 10:36:32 -0500

Fix apparent typo.

--------------------------------------------------------------------------------
6f6fee6892 | David Lawrence Ramsey | 2010-04-13 09:50:42 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
6817b44f69 | David Lawrence Ramsey | 2010-04-13 09:49:49 -0500

Comment fixes.

--------------------------------------------------------------------------------
e84ab6352d | David Lawrence Ramsey | 2010-04-13 09:23:37 -0500

Make a few functions static.

--------------------------------------------------------------------------------
d67042cf77 | David Lawrence Ramsey | 2010-04-13 09:11:00 -0500

Add spacing fix.

--------------------------------------------------------------------------------
9643d69604 | Adam Borowski | 2010-04-13 13:40:54 +0200

Make wizard x, work on the player too.

--------------------------------------------------------------------------------
6145fec7e9 | Adam Borowski | 2010-04-13 13:12:29 +0200

Fix reversed logic that caused either bare "poison" or "poisoned by ".

--------------------------------------------------------------------------------
e081dc4d6f | Adam Borowski | 2010-04-13 13:11:48 +0200

Keep the poison miscast's attribution.

--------------------------------------------------------------------------------
1a82ae8600 | Adam Borowski | 2010-04-13 12:47:02 +0200

Fix "you's poison".

--------------------------------------------------------------------------------
4687187c54 | Adam Borowski | 2010-04-13 12:16:03 +0200

Make kraken's tentacles follow the head's attitude.
This fixes them attacking the head when it gets pacified, enslaved, frienzied, 
etc.

--------------------------------------------------------------------------------
77266bd31d | Adam Borowski | 2010-04-13 12:04:02 +0200

A function called from every single place a monster's attitude changes.

--------------------------------------------------------------------------------
f246905e09 | Adam Borowski | 2010-04-13 10:52:28 +0200

Update LOS for summon elemental, disintegration, firing wax/trees, forest fires.

--------------------------------------------------------------------------------
9979d60303 | Adam Borowski | 2010-04-13 10:34:15 +0200

Make phaseshift work even when paralyzed. Also, reduce some code duplication by 
sharing common code.

--------------------------------------------------------------------------------
f79d2024e6 | David Lawrence Ramsey | 2010-04-12 21:50:57 -0500

Fix crash in _xom_lose_stats().
The random stat is now explicitly chosen instead of being STAT_RANDOM,
so that making a note of stat loss won't cause an out-of-bounds access.

--------------------------------------------------------------------------------
3fa6531636 | Jude Brown | 2010-04-13 11:56:55 +1000

Deal with Kirke pacification properly (Eino).
Kirke's hogs would stay hostile and in their hog form until she left the
level. Now, they'll revert and turn neutral the moment you pacify her.

--------------------------------------------------------------------------------
0fd8317435 | David Lawrence Ramsey | 2010-04-12 19:43:59 -0500

Properly display the rough black scales mutation in the "%" screen.

--------------------------------------------------------------------------------
4327b6cb16 | David Lawrence Ramsey | 2010-04-12 19:16:40 -0500

For now, give EV -1 for more than one level of icy blue scales.
This better differentiates it from shaggy fur, and is also consistent
with molten scales.

--------------------------------------------------------------------------------
29bed32b95 | David Lawrence Ramsey | 2010-04-12 18:48:13 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e712646fec | Eino Keskitalo | 2010-04-13 02:37:26 +0300

Fix a bug in you_can_wear, so that e.g. Fighters start with proper gear again.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
7375539616 | Adam Borowski | 2010-04-13 01:30:11 +0200

Make the slow mutation actually work.  Make naganess work same as slow 2.
Having a random mutation slow you all the way to naga is way too harsh.

--------------------------------------------------------------------------------
4bc94f1366 | David Lawrence Ramsey | 2010-04-12 18:16:02 -0500

Properly handle MUT_SLOW for player ghosts.

--------------------------------------------------------------------------------
468a86e677 | David Lawrence Ramsey | 2010-04-12 18:15:00 -0500

Simplify.

--------------------------------------------------------------------------------
9f8b8bf7ce | David Lawrence Ramsey | 2010-04-12 18:14:08 -0500

Fix apparent typo.

--------------------------------------------------------------------------------
e8c07fb261 | Adam Borowski | 2010-04-13 01:02:01 +0200

Compat files for glyph changes.

--------------------------------------------------------------------------------
337f312dfe | Adam Borowski | 2010-04-13 01:02:01 +0200

Swap '~' and '{' (water and disturbance glyphs).

--------------------------------------------------------------------------------
8685212d08 | David Lawrence Ramsey | 2010-04-12 17:50:36 -0500

Remove one last reference to nagas and MUT_FAST.

--------------------------------------------------------------------------------
4522c744fa | Robert Burnham | 2010-04-12 17:48:46 -0500

Change naga movement speed out of special-case
Presently, this inadvertently prevents them from getting MUT_FAST

--------------------------------------------------------------------------------
e49daf5b5f | Adam Borowski | 2010-04-13 00:30:29 +0200

Make staves of power store some of excess power; it dissipates quickly.

--------------------------------------------------------------------------------
80e49eac86 | David Lawrence Ramsey | 2010-04-12 17:10:30 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
b03fd4fbc0 | Robert Burnham | 2010-04-12 17:10:29 -0500

Make teleport at will a ds only mutation

--------------------------------------------------------------------------------
6ec122579b | Robert Burnham | 2010-04-12 17:10:29 -0500

Refactor you_can_wear to remove special cases

--------------------------------------------------------------------------------
ae61c71fa2 | David Lawrence Ramsey | 2010-04-12 16:28:54 -0500

Fix percentage comments for common demons.

--------------------------------------------------------------------------------
15ef1b9aad | David Lawrence Ramsey | 2010-04-12 16:23:12 -0500

Tweak percentage comments for greater demons for consistency.

--------------------------------------------------------------------------------
dbb793c362 | David Lawrence Ramsey | 2010-04-12 16:17:15 -0500

Tweak percentage comments for lesser demons to display numeric values.

--------------------------------------------------------------------------------
929b54730c | David Lawrence Ramsey | 2010-04-12 16:14:55 -0500

Remove shadow imps from the list of common demons.

--------------------------------------------------------------------------------
592b900248 | David Lawrence Ramsey | 2010-04-12 16:00:48 -0500

Allow white imps to show up in Cocytus.

--------------------------------------------------------------------------------
ee55c272c8 | Adam Borowski | 2010-04-12 22:09:27 +0200

No casting spells or reading scrolls with int=0 (inc. recovery)

--------------------------------------------------------------------------------
6d44b0d469 | Adam Borowski | 2010-04-12 22:08:41 +0200

1/4 regen, 1/2 carrying capacity with str=0 (including recovery).

--------------------------------------------------------------------------------
6a9e37cac4 | Adam Borowski | 2010-04-12 22:08:41 +0200

No evasion, stealth or stabbing with dex=0 (including the recovery period).

--------------------------------------------------------------------------------
ce0c0723a0 | David Lawrence Ramsey | 2010-04-12 13:57:50 -0500

Remove redundant prototype.

--------------------------------------------------------------------------------
29f2169ffc | Cryptic | 2010-04-12 11:29:56 -0500

Fix antennae disallowing hard helmets

--------------------------------------------------------------------------------
9034b044a0 | Cryptic | 2010-04-12 11:28:57 -0500

Remove high mp as ds mutation

--------------------------------------------------------------------------------
f16e4472c1 | Cryptic | 2010-04-12 11:28:32 -0500

Modify high mp rarity value

--------------------------------------------------------------------------------
1c55195509 | David Lawrence Ramsey | 2010-04-12 10:14:29 -0500

Differentiate the mutation gain/loss messages for teleporting/blinking.
This should fix the remaining issues listed in Mantis 1179.

--------------------------------------------------------------------------------
03a9d6fc45 | David Lawrence Ramsey | 2010-04-12 09:43:08 -0500

Fix Mantis 1352: erroneous rock worm messages.

--------------------------------------------------------------------------------
a54540428d | David Lawrence Ramsey | 2010-04-12 09:33:34 -0500

Since Call Canine Familiar is now in the book of Callings, remove it from the 
book of Summonings.  The two books come in sequence (by Vehumet's reckoning), 
so it's redundant, and the book of Callings is more common in any case.

--------------------------------------------------------------------------------
be86927d3c | David Lawrence Ramsey | 2010-04-11 16:12:57 -0500

Add spacing fix.

--------------------------------------------------------------------------------
4c5a115de2 | Eino Keskitalo | 2010-04-11 22:26:01 +0300

Since ammo and launcher brands don't cancel each other out anymore, tweak and 
rename _compatible_launcher_ammo_brands to _nonredundant_launcher_ammo_brands.
I'm not sure if (a) the function is worth it, (b) monsters are picking up ammo 
at all.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4dfe4999b6 | David Lawrence Ramsey | 2010-04-11 11:29:46 -0500

Swap Call Imp and Call Canine Familiar in the book of Callings.
They're the same level, but the memorization screen puts the latter
second, so make the book match it.

--------------------------------------------------------------------------------
8c221a601b | Charles Otto | 2010-04-10 21:32:19 -0400

Replace summon elemental with canines in the book of callings
Summoners can't use summon elemental when they get access to it (unless
they want to kill themeselves), and callings only gives them the ability
to train ice (which is the worst element for summon elemental, not to
mention the questionable practicality of using ice beasts to train ice.
Call canine familiar on the other hand gives them something decent to
use between spammals and scorpions/ice beasts.

--------------------------------------------------------------------------------
cd6d7d3f8d | David Lawrence Ramsey | 2010-04-10 14:36:59 -0500

Allow iron imps to show up in Dis.

--------------------------------------------------------------------------------
9e18a0049f | David Lawrence Ramsey | 2010-04-10 13:50:24 -0500

Give iron imps the M_SPEAKS flag, so that their imp speech shows up.

--------------------------------------------------------------------------------
9006072634 | David Lawrence Ramsey | 2010-04-10 13:21:39 -0500

Implement eronarn's ideas regarding the manes, with a few tweaks.
Rename the manes the iron imp; change its description to mention metal
skin; change its color to cyan; let it use weapons and armor as the iron
devil can; let it use the same speech routines as other imps; and make
it (rarely) available via Call Imp.

--------------------------------------------------------------------------------
b9685c3e16 | David Lawrence Ramsey | 2010-04-10 12:26:50 -0500

Tweak descriptions of strong/stiff and flexible/weak mutations.

--------------------------------------------------------------------------------
afd79d4d52 | Eino Keskitalo | 2010-04-10 18:24:38 +0300

Mention and display the recharge rate in rod descriptions. Also show the 
maximum recharge rate. (CedorDark)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
901e5d49cb | David Lawrence Ramsey | 2010-04-09 17:27:18 -0500

Simplify.

--------------------------------------------------------------------------------
26d5568481 | Eino Keskitalo | 2010-04-10 00:47:29 +0300

Fix a missing mons defintion.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
c36365999d | Eino Keskitalo | 2010-04-10 00:43:21 +0300

Use the new brick walls and cobble floors for two entry vaults as well.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1523d53585 | Eino Keskitalo | 2010-04-10 00:21:57 +0300

Use Denzi's new wall_stone_brick and floor_cobble_blood tiles for lemuel_castle 
vault.
It got a small bit more complicated for the sake of tiles aesthetics.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3e1e6c94f8 | Eino Keskitalo | 2010-04-10 00:21:55 +0300

Use Denzi's new wall_stone_brick and floor_cobble_blood tiles for Bailey portal 
vaults.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e94faff40a | Robert Vollmert | 2010-04-09 21:31:44 +0200

Fix chain lightning noise (notthepope).
Before, it was silent if it remained in player LOS. Now, just suppress
the thunder message (except for the first one) in LOS.

--------------------------------------------------------------------------------
eb0f3765e2 | Robert Vollmert | 2010-04-09 21:27:46 +0200

Wrap long line.

--------------------------------------------------------------------------------
8055c08717 | Robert Vollmert | 2010-04-09 20:48:19 +0200

monsters::find_home_near_place: Restrict to connected places.
Now finds the closest near place that is connected to the given
one via habitable squares. Thus, monsters are placed in your
corridor when taking stairs.

--------------------------------------------------------------------------------
9a7177a108 | David Lawrence Ramsey | 2010-04-09 13:07:17 -0500

Comment fix.

--------------------------------------------------------------------------------
2c1cd98942 | David Lawrence Ramsey | 2010-04-09 12:58:31 -0500

Remove special case for displaying the shaggy fur mutation.

--------------------------------------------------------------------------------
c065ab53e9 | David Lawrence Ramsey | 2010-04-09 12:57:35 -0500

Properly restore the AC bonus for the shaggy fur mutation.

--------------------------------------------------------------------------------
06c84e040e | David Lawrence Ramsey | 2010-04-09 12:48:49 -0500

Improve the descriptions of the different levels of MUT_BLINK.

--------------------------------------------------------------------------------
009f5b6e40 | David Lawrence Ramsey | 2010-04-09 12:46:29 -0500

Remove now-inaccurate comment.

--------------------------------------------------------------------------------
1207149b31 | David Lawrence Ramsey | 2010-04-09 12:43:55 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
a3d34921e1 | David Lawrence Ramsey | 2010-04-09 12:40:40 -0500

Fix the description of the level 3 shaggy fur mutation.

--------------------------------------------------------------------------------
54525203fe | Fangorn | 2010-04-09 17:50:49 +0200

Fix #1320: Oz's armour in heavy armour by casting when transformed.

--------------------------------------------------------------------------------
2d3ce29f41 | David Lawrence Ramsey | 2010-04-09 10:25:32 -0500

Tweak wording.

--------------------------------------------------------------------------------
0a0accdbe3 | Robert Burnham | 2010-04-09 10:25:32 -0500

Change_some_new_mutations_to_be_ds_only

--------------------------------------------------------------------------------
0a4b6d3adc | Robert Burnham | 2010-04-09 10:25:32 -0500

Add_description_for_enable_disable_guardian

--------------------------------------------------------------------------------
0ec82c366a | David Lawrence Ramsey | 2010-04-09 09:19:18 -0500

Add formatting fix.

--------------------------------------------------------------------------------
994344017b | Robert Vollmert | 2010-04-09 16:10:04 +0200

Make antennae ignore plants and fungi.

--------------------------------------------------------------------------------
e7afd6dca3 | Robert Vollmert | 2010-04-09 16:10:04 +0200

Make antennae clean up old detected monsters.

--------------------------------------------------------------------------------
62b493f1fb | Robert Vollmert | 2010-04-09 16:10:03 +0200

Fix spacing.

--------------------------------------------------------------------------------
2c09d98e68 | Robert Vollmert | 2010-04-09 16:10:03 +0200

Make antennae use a dummy monster instead of SH_INVIS_EXPOSED.
Possibly, we should get rid of SH_INVIS_EXPOSED entirely and use a
monster of type MONS_SENSED instead.

--------------------------------------------------------------------------------
43a8e1445e | Jude Brown | 2010-04-09 22:20:50 +1000

Fix extraneous "is". (#1325)

--------------------------------------------------------------------------------
2bd3beb3db | Jude Brown | 2010-04-09 21:23:17 +1000

"always_corpse" tag for Vault monsters (#1314)
This forces monsters to always generate a corpse (if possible). If the
monster doesn't have an appropriate corpse type, or there is no room in
the item grid, a corpse won't be generated. So, this shouldn't be relied
on for always working.

--------------------------------------------------------------------------------
d7a08158ba | Robert Vollmert | 2010-04-09 12:07:28 +0200

lm_monst.lua: Remove obsolete call to you.losight().

--------------------------------------------------------------------------------
65f6dc81f9 | Robert Vollmert | 2010-04-09 12:07:28 +0200

Add missing include.

--------------------------------------------------------------------------------
3685740f89 | Robert Vollmert | 2010-04-09 11:51:56 +0200

Only give player ghosts spells with >50% spell success.

--------------------------------------------------------------------------------
61946048f0 | Robert Vollmert | 2010-04-09 09:59:37 +0200

Make stash tracker shop menu also use '$' instead of '@' for shopping list.

--------------------------------------------------------------------------------
e4a70cae7f | Robert Vollmert | 2010-04-09 09:59:37 +0200

Make Mara player cloning use MONS_PLAYER_ILLUSION all the way.

--------------------------------------------------------------------------------
6eb366f85e | David Lawrence Ramsey | 2010-04-08 10:42:36 -0500

Comment fixes.

--------------------------------------------------------------------------------
5ddef64cce | Eino Keskitalo | 2010-04-08 18:00:44 +0300

Ponderous description, now with added thus. (syllogism)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b109e9c3d7 | Eino Keskitalo | 2010-04-08 17:54:17 +0300

Remove the incorrect bit about reducing evasion from the ponderousness brand 
description.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
727c029291 | Eino Keskitalo | 2010-04-08 17:14:22 +0300

Make the message about soul no longer ripe for taking stand out.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
2ade68e9e9 | Eino Keskitalo | 2010-04-08 17:06:04 +0300

Add a new monster in preparation of the map-based tutorial: training dummy.
The most significant difference compared to the plain statue monster is the 
attack power (1 vs 20). That made the statue a little uncomfortable to use in 
the tutorial.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b4f63ea383 | Jude Brown | 2010-04-08 23:50:23 +1000

New vault tags: no_trap_gen, no_shop_gen (Eino).
As requested, filling #1315 and #1290.

--------------------------------------------------------------------------------
8ed756e54c | David Lawrence Ramsey | 2010-04-08 08:18:13 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
98e73bfd4f | Robert Burnham | 2010-04-08 02:08:09 -0500

Adjust_pbd_for_balance

--------------------------------------------------------------------------------
44926c0320 | Robert Burnham | 2010-04-07 22:10:46 -0500

Remove_tough_skin_as_ds_and_random_mutation

--------------------------------------------------------------------------------
8bd7454062 | Robert Burnham | 2010-04-07 22:09:25 -0500

Adjust_PBD_mutation_rot_factor

--------------------------------------------------------------------------------
55af7ae989 | David Lawrence Ramsey | 2010-04-07 19:21:03 -0500

Make the message for swiftness or its equivalent consistent.
Boots of running now say "You feel quick." without the unnecessary "on
your feet" portion.

--------------------------------------------------------------------------------
00718b022e | David Lawrence Ramsey | 2010-04-07 19:16:03 -0500

Add punctuation fix.

--------------------------------------------------------------------------------
6cf77e8c27 | David Lawrence Ramsey | 2010-04-07 19:15:32 -0500

Simplify.

--------------------------------------------------------------------------------
2d70eeec0f | Adam Borowski | 2010-04-08 01:55:42 +0200

Merge branch 'stone_soup-0.6' of [sf]
Merging not rebasing, since 05c1c913 is referenced by hash in an outside
patch's metadata.

--------------------------------------------------------------------------------
ec27ae3d8c | David Lawrence Ramsey | 2010-04-07 18:53:48 -0500

Since TAG_MAJOR_VERSION has changed, remove now-obsolete references to it in 
enum.h.

--------------------------------------------------------------------------------
fb0d8da3be | Stefan O'Rear | 2010-04-07 16:43:04 -0700

Rename *.sav to *.chr
.sav files are a perennial source of confusion, as many newbies think that
only uploading the .sav (for instance #1301) is sufficient.  They are now
called .chr, making clearer that they only contain the character and similar
global information.  Naturally, this breaks save compatibility.

This problem is compounded by the fact that SAVE_PACKAGE_COMMAND is only
run on orderly shutdowns, not saves.  doy recommends adding a save package
step to the crash handler, but this won't help on platforms with no save
package mechanism, or in conditions where the crash handler doesn't work.

--------------------------------------------------------------------------------
ae22883299 | Steven Noonan | 2010-04-07 16:16:10 -0700

Xcode: fix generation of build.h and compflag.h
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5a9ef363bf | Steven Noonan | 2010-04-07 16:16:05 -0700

Xcode: simplify art-data.h and dc-unrand.txt generation
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f68fb2008e | Steven Noonan | 2010-04-07 16:15:52 -0700

Freetype: fix font hinting quality
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e2ed7da506 | Steven Noonan | 2010-04-07 16:15:05 -0700

SDL: fix Xcode build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
93425a350e | Steven Noonan | 2010-04-07 16:14:29 -0700

Xcode: fix crawl-cmd build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
53953e6c49 | David Lawrence Ramsey | 2010-04-07 18:08:03 -0500

Restore player LOS properly when losing the nightstalker mutation.

--------------------------------------------------------------------------------
2660354a35 | Steven Noonan | 2010-04-07 16:02:12 -0700

Xcode: fix generation of build.h and compflag.h
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1f691759be | David Lawrence Ramsey | 2010-04-07 17:59:49 -0500

Remove vampires from Yred's list of undead servants.
He won't take kills from their summons, since their summons aren't
undead, and the summons get in the waym in any case.

Accordingly, rescale the probabilities of the other undead servants to
compensate.  Notably, the chance of getting a servant with an
experience-draining attack is 5% lower.

--------------------------------------------------------------------------------
eb50e9ddb5 | Steven Noonan | 2010-04-07 15:46:26 -0700

Xcode: simplify art-data.h and dc-unrand.txt generation
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2130ec1edf | Steven Noonan | 2010-04-07 15:26:28 -0700

Freetype: fix font hinting quality
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e482bf3a69 | Steven Noonan | 2010-04-07 15:10:39 -0700

SDL: remove unnecessary Xcode build step
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e5d6ae4e41 | Steven Noonan | 2010-04-07 15:03:19 -0700

SDL: fix Xcode build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4776f82044 | Steven Noonan | 2010-04-07 14:39:52 -0700

Xcode: fix crawl-cmd build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e74eb353d4 | Eino Keskitalo | 2010-04-07 15:00:20 +0300

Document BFLAGS islanded and has_org.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d18a1119ec | Robert Vollmert | 2010-04-07 13:44:53 +0200

Make MONS_PLAYER_GHOST not M_UNIQUE.
This may have unintended consequences, but considering that random
pandemonium ghosts aren't M_UNIQUE, I don't think player ghosts
should be.

Fixes issue #1305.

--------------------------------------------------------------------------------
5fe92d1b55 | Robert Vollmert | 2010-04-07 13:20:41 +0200

Allow setting all branch flags from Lua/.des.
In particular, allow setting BFLAG_ISLANDED.

--------------------------------------------------------------------------------
91b123a288 | David Lawrence Ramsey | 2010-04-06 18:11:39 -0500

Simplify auxiliary damage calculation for some unarmed attacks.

--------------------------------------------------------------------------------
1ecf38337b | David Lawrence Ramsey | 2010-04-06 17:48:09 -0500

Comment fix.

--------------------------------------------------------------------------------
063adf4cf8 | Robert Burnham | 2010-04-06 17:22:26 -0500

Fix_ds_not_getting_scales

--------------------------------------------------------------------------------
1ed6713afb | David Lawrence Ramsey | 2010-04-06 17:14:03 -0500

Fix typo.
This covers part of Mantis 1295.

--------------------------------------------------------------------------------
835f148a2c | Robert Vollmert | 2010-04-06 17:19:02 +0200

Let merfolk movement speed be affected in water.
Fixes issue #1275 (ponderous items not affecting merfolk in water).

Also fixes merfolk speed in water not being affected by burden.

--------------------------------------------------------------------------------
47601dff0d | Adam Borowski | 2010-04-06 17:17:04 +0200

Update LOS when Khufu plays with Tomb of Doroklohe.

--------------------------------------------------------------------------------
a3293de6a2 | Adam Borowski | 2010-04-06 16:54:21 +0200

Gut away broken endianness/word length detection.
It caused build failures on half of Debian's release architectures WHILE
BEING TOTALLY UNUSED!!!  And it was buggy, too -- for example, ARM is big
endian while it was recognized as little endian (le versions of ARM are
usually called ARMEL).

A non-enumerated CPU (like hppa or s390) or OS (kfreebsd) also caused build
failures for no good reason.

If we'll need to known endianness in the future, please, check for it
directly rather than maintaining a big and incomplete list of architectures.

--------------------------------------------------------------------------------
7966235f82 | Robert Vollmert | 2010-04-06 16:50:02 +0200

Make mons_class_can_be_zombified handle invalid arguments more gracefully.
May or may not fix some ASSERT(smc) bugs in mons_zombie_size
we've been getting.

--------------------------------------------------------------------------------
fa83090c0a | Robert Vollmert | 2010-04-06 16:42:19 +0200

Invalidate LOS when labyrinth changes.
Fixes issue #1249.

--------------------------------------------------------------------------------
be4d557cc1 | Robert Vollmert | 2010-04-06 16:37:22 +0200

entomb(): invalidate LOS.

--------------------------------------------------------------------------------
6e830d5117 | Robert Vollmert | 2010-04-06 16:37:06 +0200

entomb(): spacing.

--------------------------------------------------------------------------------
b44f9f770f | Robert Vollmert | 2010-04-06 16:29:54 +0200

_place_monster_aux: move tilenum code to better place.
This should fix issue #1224.

Also make a merged slime creature "shouldn't ever happen" an ASSERT,
like the unique placement check.

--------------------------------------------------------------------------------
e33120e046 | Robert Vollmert | 2010-04-06 16:15:12 +0200

Remove polymorph cloud effect.
As remarked in #1265, it doesn't make sense for the polymorph beam
to affect both cells it passes through and the monster at the end.
Also, cloud polymorphing seems quite nethackish.

--------------------------------------------------------------------------------
c49fd5c0bf | Robert Vollmert | 2010-04-06 15:47:03 +0200

Fix Swamp:5 Lernaean hydra test failure.

--------------------------------------------------------------------------------
3118ab8fa4 | Robert Vollmert | 2010-04-06 15:46:58 +0200

New test: random monster placement doesn't generate uniques.

--------------------------------------------------------------------------------
4ffd37040f | Robert Vollmert | 2010-04-06 14:52:39 +0200

Prevent duplicate uniques from being placed in _place_monster_aux.
Not sure that this really has any effect, but it eliminates one
possible path for duplicate uniques.

--------------------------------------------------------------------------------
54664fffc7 | Robert Vollmert | 2010-04-06 13:47:03 +0200

Fix debug.check_uniques() error message.

--------------------------------------------------------------------------------
5011c052c0 | Robert Vollmert | 2010-04-06 13:34:19 +0200

Merge monster choice code for defining zombies.
_define_zombie and pick_local_zombifiable_monster_type had almost
the same code...

--------------------------------------------------------------------------------
05c1c91321 | Adam Borowski | 2010-04-06 13:18:46 +0200

Gut away broken endianness/word length detection.
It caused build failures on half of Debian's release architectures WHILE
BEING TOTALLY UNUSED!!!  And it was buggy, too -- for example, ARM is big
endian while it was recognized as little endian (le versions of ARM are
usually called ARMEL).

A non-enumerated CPU (like hppa or s390) or OS (kfreebsd) also caused build
failures for no good reason.

If we'll need to known endianness in the future, please, check for it
directly rather than maintaining a big and incomplete list of architectures.

--------------------------------------------------------------------------------
59209a2c43 | Robert Vollmert | 2010-04-06 13:00:11 +0200

Further _define_zombie clean-up.

--------------------------------------------------------------------------------
a4a0098682 | Robert Vollmert | 2010-04-06 12:09:19 +0200

A bit of _define_zombie clean-up.

--------------------------------------------------------------------------------
dcd69f2ac3 | Robert Vollmert | 2010-04-06 11:34:47 +0200

Move to a single define_monster(monsters*) variant.

--------------------------------------------------------------------------------
13411a6b9e | Robert Vollmert | 2010-04-06 11:18:15 +0200

Make _define_zombie work on monsters* instead of mid.

--------------------------------------------------------------------------------
54745e5ea4 | Robert Vollmert | 2010-04-06 11:09:21 +0200

_define_zombie: Move mons_sec2 definition closer to its use.

--------------------------------------------------------------------------------
f40f35fa6b | Robert Vollmert | 2010-04-06 10:45:14 +0200

Move TAG_{MINOR,MAJOR}_VERSION definitions to tag-version.h.
Also #include this from enum.h, for the versioned mutation_type
changes.

This may require updating scripts that determined the versions
by parsing tags.h.

--------------------------------------------------------------------------------
c591f4c86f | David Lawrence Ramsey | 2010-04-05 22:06:28 -0500

Implement part of Mantis 1268.
Use Cryptic's suggestion regarding the "deformed" mutation: the first
level is now "unusually shaped", and the special messages for centaurs
and nagas are removed.

--------------------------------------------------------------------------------
1687dfc5bc | David Lawrence Ramsey | 2010-04-05 22:01:42 -0500

Temporary hack: Define TAG_MAJOR_VERSION in enum.h; no better way now.

--------------------------------------------------------------------------------
611fe9ff7b | David Lawrence Ramsey | 2010-04-05 22:01:41 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ac5b37629e | Robert Burnham | 2010-04-05 22:01:41 -0500

Change_enum_to_use_tag_major_version_preprocessor
Maintains save compatability for version 21, but prepares to reorganize
the mutations lists so that body facets and scales are at the top. Also
adds in MUT_SLOW so it can be implemented on next major version bump.

--------------------------------------------------------------------------------
5e2647d787 | Robert Burnham | 2010-04-05 22:01:41 -0500

PRevent_random_scales_on_ds_with_planned_scales

--------------------------------------------------------------------------------
18a1b6b7ca | Robert Burnham | 2010-04-05 22:01:41 -0500

Limit_scale_mutations_to_3
Reorganize_enum_mutations_major_version_bump

--------------------------------------------------------------------------------
4037005709 | David Lawrence Ramsey | 2010-04-05 20:05:03 -0500

Adjust SH display in overview to account for any penalties it may get.

--------------------------------------------------------------------------------
ccacf3a1e1 | Robert Burnham | 2010-04-05 20:04:08 -0500

Correct_pbd_and_adjust_rot_factor

--------------------------------------------------------------------------------
92d5c4a07d | Robert Burnham | 2010-04-05 20:03:55 -0500

Fix_ev_penalties_display_in_overview

--------------------------------------------------------------------------------
dc66b6dc8d | Robert Burnham | 2010-04-05 20:02:11 -0500

Add_passive_freeze_to_character_screen_mutations

--------------------------------------------------------------------------------
ea136df7ed | David Lawrence Ramsey | 2010-04-05 19:51:54 -0500

Fix typos.

--------------------------------------------------------------------------------
df4a2f694e | David Lawrence Ramsey | 2010-04-05 19:50:46 -0500

Fix message redundancy.

--------------------------------------------------------------------------------
d399f6639c | Robert Vollmert | 2010-04-05 22:11:55 +0200

Make MUT_SLOW_HEALING eligible for random mutation.

--------------------------------------------------------------------------------
8e5c869280 | Robert Vollmert | 2010-04-05 21:53:32 +0200

Remove stat death avoidance code from miscast effects.

--------------------------------------------------------------------------------
6af476025e | Robert Vollmert | 2010-04-05 21:53:27 +0200

mutation.cc cleanup.
* Remove mutation fatality checks, obsolete without instant
  stat death.
* Make give_bad_mutation translate to mutate(RANDOM_BAD_MUTATION).
* Make mutate(RANDOM_MUTATION) use _get_random_mutation.

These may change mutation chances a bit. For instance,
give_bad_mutation now takes rarities into account. But better to
have a consistent use of rarities and to adjust the rarities if
required than the current state.

--------------------------------------------------------------------------------
3136f56984 | Johanna Ploog | 2010-04-05 21:01:52 +0200

Add Denzi's new floor/wall designs, currently unused.
Vault designers, feel free to use these. :)

Maybe, the marble set (or at least it looks like marble to me)
could be used for the Elven Halls...

--------------------------------------------------------------------------------
243893d2b2 | David Lawrence Ramsey | 2010-04-05 12:30:09 -0500

Simplify.

--------------------------------------------------------------------------------
777e44966f | David Lawrence Ramsey | 2010-04-05 12:07:57 -0500

Rescale hoof/talon damage to consistently go up each mutation level.

--------------------------------------------------------------------------------
de3af1a319 | Johanna Ploog | 2010-04-05 18:43:31 +0200

Prompt on unwielding a !w marked weapon for butchery.
Unfortunately, on rewielding, you get prompted *twice* because
weapon_switch() is issued once from _finish_delay (not making use of
ATTR_WEAPON_SWAP_INTERRUPTED, apparently, and another time from
handle_interrupted_swap (which does), and I can't work out which
of the two is the correct one. Disabling the former means you don't
switch back after butchery while the latter is probably needed for
transformations.

--------------------------------------------------------------------------------
a02d9a807e | Johanna Ploog | 2010-04-05 18:43:31 +0200

Fix #1273: Post-butcher weapon swap not checking for hunger level etc.

--------------------------------------------------------------------------------
4244835475 | David Lawrence Ramsey | 2010-04-05 10:12:12 -0500

Add comment.

--------------------------------------------------------------------------------
20d9f14706 | David Lawrence Ramsey | 2010-04-05 10:10:03 -0500

Fix indentation.

--------------------------------------------------------------------------------
279ae959ed | David Lawrence Ramsey | 2010-04-05 10:08:03 -0500

Per rvollmert's suggestion, use player_wearing_slot() instead of equip[] when 
checking for usable claws and talons, as it takes melded equipment into account.

--------------------------------------------------------------------------------
b69fa863bb | Steven Noonan | 2010-04-05 08:07:10 -0700

sqlite: fix linkage on Mac OS X 10.4 SDK
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a44d5f2965 | David Lawrence Ramsey | 2010-04-05 09:30:55 -0500

Fix compilation.

--------------------------------------------------------------------------------
43148cae37 | David Lawrence Ramsey | 2010-04-05 09:29:09 -0500

Make player::has_usable_talons() take transformations into account.

--------------------------------------------------------------------------------
e11c3cb89b | David Lawrence Ramsey | 2010-04-05 08:54:50 -0500

Fix Mantis 1280: Claw attacks from talons no longer work with boots.

--------------------------------------------------------------------------------
3105ed1f50 | David Lawrence Ramsey | 2010-04-05 08:16:02 -0500

Fix Mantis 1278; Makhleb and TSO kills can restore HP again.
This reverts part of e0907dbb.

--------------------------------------------------------------------------------
f1e834499c | Steven Noonan | 2010-04-04 20:32:55 -0700

SQLite: upgrade to v3.6.23.1 and fix SQLITE_HAS_CODEC issue
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
08b9c7c3dd | David Lawrence Ramsey | 2010-04-04 18:34:30 -0500

Implement part of Mantis 1268.
Give trolls and ghouls the claws mutation intrinsically, instead of
faking it in several different places.  Trolls now get claws 3, while
ghouls get claws 1, as species_has_claws() already effectively gave
them.  Also, replace species-specific checks for trolls and ghouls with
checks for the intrinsic claws mutation.

--------------------------------------------------------------------------------
df206bed94 | David Lawrence Ramsey | 2010-04-04 18:31:01 -0500

Add spacing fix.

--------------------------------------------------------------------------------
56b0e60d1f | David Lawrence Ramsey | 2010-04-04 18:17:06 -0500

For consistency, rename GENPC_OGRE to GENPC_OGREISH.
The genus enum uses adjectives in all other cases.

--------------------------------------------------------------------------------
0f48a71b94 | David Lawrence Ramsey | 2010-04-04 17:26:16 -0500

Comment fix.

--------------------------------------------------------------------------------
31c6d4a062 | David Lawrence Ramsey | 2010-04-04 16:55:04 -0500

Since orc wizards exist in-game, allow orcish wizard hats.

--------------------------------------------------------------------------------
4c3abc5c3b | David Lawrence Ramsey | 2010-04-04 16:52:41 -0500

Add missing brackets.

--------------------------------------------------------------------------------
2bb50ff3aa | Johanna Ploog | 2010-04-04 23:27:22 +0200

Change menu item cursor command from - to '
I'd forgotten that '-' is used as special case for "none", e.g. when
unwielding a weapon. ' was previously used as one of many alternatives
to scroll along pages. Still not documented.

--------------------------------------------------------------------------------
64089cc492 | Eino Keskitalo | 2010-04-04 23:30:08 +0300

Gray out messages about shield and/or armour preventing hitting.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1fc68d8312 | David Lawrence Ramsey | 2010-04-04 13:32:53 -0500

Revert "Since orcish bows are allowed, also allow orcish longbows."
This reverts commit c0d14340ca9beebe9cf5b8a6eb12d2ea7d2be282.

--------------------------------------------------------------------------------
6e5ceb7794 | David Lawrence Ramsey | 2010-04-04 13:08:31 -0500

Simplify again.

--------------------------------------------------------------------------------
6509102a73 | Eino Keskitalo | 2010-04-04 20:19:58 +0300

Restore the hive bottom milestone. (greensnark)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6b41623eaf | David Lawrence Ramsey | 2010-04-04 11:02:02 -0500

Simplify further.

--------------------------------------------------------------------------------
16b48c2282 | David Lawrence Ramsey | 2010-04-04 10:57:05 -0500

Consolidate the counting and rotting of PbD corpses into one function.

--------------------------------------------------------------------------------
380247b9ed | David Lawrence Ramsey | 2010-04-04 10:33:03 -0500

Experimentally increase the damage holy word does to monsters.

--------------------------------------------------------------------------------
34c0ef337f | David Lawrence Ramsey | 2010-04-04 10:10:52 -0500

Simplify.

--------------------------------------------------------------------------------
f55fbeaa7e | Johanna Ploog | 2010-04-04 17:26:07 +0200

Implement dpeg's long-wished-for alternative multidrop interface.
Extends on Matthew Cline's work that, once an item within a header
section was chosen, allows selecting the next one with '.' no matter
its actual hotkey.

Changes include:
* Make the cursor visible.
* Allow moving the cursor without selecting, with '-'.
* Allow skipping past item type headers.
* Scroll to a new page if selecting/skipping the last item on a page.
* If selecting the last item, wrap around to the beginning of the menu.

Not documented yet and the cursor takes some getting used to, but
testing reveals that this system really _is_ mightily convenient and
also works really well with the menu colours: you don't even have to
read anything, just select everything marked in red or dark grey. :D

We might have to add an option for those players who refuse to use
this system and hate having to see the cursor, but for now please try
it out before you start complaining.

--------------------------------------------------------------------------------
18cc6659f0 | Robert Vollmert | 2010-04-04 16:54:50 +0200

Simplify corona duration decrement.
Hope I didn't miss anything here.

--------------------------------------------------------------------------------
a841f4f113 | Robert Vollmert | 2010-04-04 16:54:45 +0200

Fix power by death rotting code being called almost always.
Also move power-by-death code out of durations.

--------------------------------------------------------------------------------
6edb273bc5 | David Lawrence Ramsey | 2010-04-04 09:49:09 -0500

Tweak wording.

--------------------------------------------------------------------------------
42a24d6cf0 | David Lawrence Ramsey | 2010-04-04 09:44:58 -0500

Comment fixes.

--------------------------------------------------------------------------------
1c5e75ab70 | Robert Vollmert | 2010-04-04 16:30:59 +0200

Fix compilation.

--------------------------------------------------------------------------------
748ef459bb | Robert Vollmert | 2010-04-04 16:24:12 +0200

Remove "Rot time:" message spam.

--------------------------------------------------------------------------------
a616d9cb73 | David Lawrence Ramsey | 2010-04-04 08:52:03 -0500

Fix compilation.

--------------------------------------------------------------------------------
01d7a0f57f | David Lawrence Ramsey | 2010-04-04 08:38:20 -0500

Bump major save version.
Adding MUT_FEAST was an oversight, and deleting it from the middle of
enum.h broke compatibility anyway.

--------------------------------------------------------------------------------
86a220b71f | David Lawrence Ramsey | 2010-04-04 07:41:38 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
7e96d63db4 | David Lawrence Ramsey | 2010-04-04 07:39:57 -0500

Fix missing bracket.

--------------------------------------------------------------------------------
f25151d449 | Robert Burnham | 2010-04-04 07:38:43 -0500

Remove_MUT_FEAST

--------------------------------------------------------------------------------
955925de80 | Robert Burnham | 2010-04-04 07:38:43 -0500

Fix_nightstalker_los_reduction

--------------------------------------------------------------------------------
ea16d18bd2 | Robert Burnham | 2010-04-04 07:38:43 -0500

Fix_spiny_when_no_armour

--------------------------------------------------------------------------------
6f3981bbd4 | Robert Burnham | 2010-04-04 07:38:43 -0500

Correct_tough_skin_ac_contribution

--------------------------------------------------------------------------------
060c566263 | Robert Burnham | 2010-04-04 07:38:42 -0500

Demonspawn_add_powered_by_death

--------------------------------------------------------------------------------
29a8bdb962 | Robert Vollmert | 2010-04-04 08:14:17 +0200

Make abyss fprops copying a bit more robust.
Not quite sure why it was still apparently generating
sanctuary squares, but this should make it safer
regardless.

--------------------------------------------------------------------------------
c0d14340ca | David Lawrence Ramsey | 2010-04-03 22:59:51 -0500

Since orcish bows are allowed, also allow orcish longbows.

--------------------------------------------------------------------------------
0ef41f3eaf | Jude Brown | 2010-04-04 08:33:03 +1000

Reset Vestibule subvault default depth, fix #1261.
Having a default depth meant that the Vestibule subvaults were being
given a depth, making them eligible for random placement. This meant
Vestibule maps in the main dungeon! Fun!

--------------------------------------------------------------------------------
ad4f63d825 | David Lawrence Ramsey | 2010-04-03 16:06:40 -0500

Put some enum value checks in the proper order.

--------------------------------------------------------------------------------
43c543202b | David Lawrence Ramsey | 2010-04-03 16:02:07 -0500

Fix another typo.

--------------------------------------------------------------------------------
ab0a9c45e1 | David Lawrence Ramsey | 2010-04-03 13:31:30 -0500

Fix typo.

--------------------------------------------------------------------------------
023b178b85 | David Lawrence Ramsey | 2010-04-03 13:18:32 -0500

Fix compilation.

--------------------------------------------------------------------------------
4c6617fbb6 | Robert Vollmert | 2010-04-03 20:04:02 +0200

Shorten range darken delay when 'z' casting fails.
From 500 to 50. Half a second is excessive. For comparison,
travel delay is 20 by default.

--------------------------------------------------------------------------------
29c85040c8 | Robert Vollmert | 2010-04-03 20:04:02 +0200

Make guaranteed damage reduction independent of armour skill.
It's now a flat (base_ac-2)*3/2. The values are similar to what
you used to get at high armour skill. No GDR for robes and animal
skins, minimal GDR for leather armour.

This should make heavy armour a little more attractive from the
start, while having little effect later. Armour skill is already
useful enough with increasing AC and decreasing the penalties.

--------------------------------------------------------------------------------
b7b5db6de2 | David Lawrence Ramsey | 2010-04-03 12:45:03 -0500

Fix comment.

--------------------------------------------------------------------------------
f1022e9efe | David Lawrence Ramsey | 2010-04-03 12:41:52 -0500

In randart weapon names, replace "Stasis" with "Symmetry".

--------------------------------------------------------------------------------
e184b8f6cd | David Lawrence Ramsey | 2010-04-03 11:19:59 -0500

Rename "holy eudemon blade" to "holy blade".
It's less of a mouthful, and it fits more closely with "holy scourge".

--------------------------------------------------------------------------------
4cd3b1e171 | Robert Vollmert | 2010-04-03 17:46:56 +0200

Fix handling of excluded_slot in inventory menu.
May well fix some items mysteriously not showing up when quivering.

--------------------------------------------------------------------------------
e20f16acf0 | Robert Vollmert | 2010-04-03 17:27:07 +0200

For the quiver, take the remembered item itself if possible.
This should fix some quiver misbehaviour.

--------------------------------------------------------------------------------
406c66a87b | David Lawrence Ramsey | 2010-04-03 10:18:47 -0500

Let whips randomly get the draining brand.
This makes them more symmetric with demon whips.  The probability of
getting the brand is the same as for daggers.

--------------------------------------------------------------------------------
0593fab58e | Robert Vollmert | 2010-04-03 15:21:22 +0200

Speed up armour skill training.
Previously, training armour skill went through a check of
    x_chance_in_y(mass, 1000),
now it's
    x_chance_in_y(mass - 100, 50 * skill(SK_ARMOUR)).

For reference, weights are:
  robe 60, animal skin 100, leather armour 150, ring mail 250,
  plate mail 650, crystal plate 120.

Chance of training (armour skill level in parentheses):

robe       6%         0%
skin      10%         0%
leather   15%       100%  (<2)   50%  (2)   14%  (7)    4% (26)
ring      25%       100%  (<4)   75%  (4)   25% (12)   12% (26)
plate     65%       100% (<12)   92% (12)   65% (17)   42% (26)
crystal  100%       100% (<23)   96% (23)              85% (26)

--------------------------------------------------------------------------------
190414c72c | Robert Vollmert | 2010-04-03 14:12:46 +0200

Handle DUR_EXHAUSTED like DUR_SLOW while hasted.

--------------------------------------------------------------------------------
4bb619376f | Robert Vollmert | 2010-04-03 13:50:06 +0200

Paralysis when stat reaches zero.

--------------------------------------------------------------------------------
e3e2f394b2 | Robert Vollmert | 2010-04-03 11:17:38 +0200

Slight mutation.cc clean-up.
Mutations without a mutation-data.h entry should cause asserts
less frequently.

--------------------------------------------------------------------------------
607c0aa62a | Robert Vollmert | 2010-04-03 09:07:54 +0200

Split mutation_defs array out into mutation-data.h.

--------------------------------------------------------------------------------
a4036dce06 | Robert Vollmert | 2010-04-03 02:32:43 +0200

Remove stat death avoidance code.

--------------------------------------------------------------------------------
d9f1b0f35b | Robert Vollmert | 2010-04-03 02:32:43 +0200

Move stat loss update from handle_time to world_reacts.
This fixes the turn counts, which were multiples of 20 before.

--------------------------------------------------------------------------------
fc0b40fd5b | Robert Vollmert | 2010-04-03 02:12:23 +0200

Remove stat insta-death.
This is more proof-of-concept than necessarily a final implementation,
but I think with appropriate effects, the approach can work.

There is a new field player::stat_zero, counting the number of turns
a stat has been at zero. It counts up while the stat is <= 0, and
counts down while it is > 0. When a stat reaches <= 0, the corresponding
counter is initialized to 10, so "stat death" has some lasting effect
even if you undo it immediately.

When the counter reaches 100, you die of stat loss as before.

As a preliminary zero stat effect, any stat with stat_zero[stat] > 0
has a slowing effect (double base delay). This should be enough to
discourage running around with zero stats for the moment.

Stats can now become negative, but the negative numbers are only used
for printing to the stats area. All other code gets a non-negative
number. There may be code that doesn't handle a stat at zero well
currently.

--------------------------------------------------------------------------------
56764605f0 | David Lawrence Ramsey | 2010-04-02 12:31:28 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
44811a228f | Eino Keskitalo | 2010-04-02 20:04:11 +0300

Implement 1248: make shopping list use '$' instead of '@' in shops.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d97be72343 | Eino Keskitalo | 2010-04-02 19:37:18 +0300

Increase the piety cost of Slouch.
Increased from 5 to 8. In my wizmode testing, this seemed suitably less 
spammable, while retaining its strategic usefulness in branch ends and Zot. 
Needs real game testing to see if the piety gain doesn't load the Slouch Cannon 
too fast.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
94a24e6fd2 | Robert Vollmert | 2010-04-02 13:34:28 +0200

Restore contribs/sqlite to its old broken state.

--------------------------------------------------------------------------------
e890227f44 | Robert Vollmert | 2010-04-02 12:58:19 +0200

Store base stats instead of maximal stats.
Player now has a field you.base_stats the excludes modifications
by things like might, equipment, transformations.

you.base_stats is only changed by stat gain on level gain and
by shuffle and focus effects.

Other effects are calculated by player::strength, player::max_strength
etc.

This may well have side-effects on the stat-loss death prevention
code, which was occasionally too weird to understand.

--------------------------------------------------------------------------------
50cd7c2a10 | Robert Vollmert | 2010-04-02 12:30:01 +0200

Replace most uses of modify_stat by notify_stat_change.
The latter just causes messaging, kill attribution and redraw
effects, instead of modifying you.max_stats directly.

--------------------------------------------------------------------------------
56c68f9632 | Robert Vollmert | 2010-04-02 12:30:01 +0200

Move stat death detection to _handle_stat_change.
Also clean-up in {modify,restore,lose}_stat.

--------------------------------------------------------------------------------
a36ee661b3 | Robert Vollmert | 2010-04-02 12:30:01 +0200

Include Che boost in stat_modifier().

--------------------------------------------------------------------------------
e44b5cd9f1 | Robert Vollmert | 2010-04-02 12:29:56 +0200

Make Jiyva stat shuffling go through modify_stat.
This means it can actually kill the player, not just set a stat to 0.

--------------------------------------------------------------------------------
ad8b24f662 | Robert Vollmert | 2010-04-02 12:25:16 +0200

Use you.stat_loss directly in output.cc.

--------------------------------------------------------------------------------
a18009611c | David Lawrence Ramsey | 2010-04-01 21:00:01 -0500

Tweak message.

--------------------------------------------------------------------------------
9d70793703 | David Lawrence Ramsey | 2010-04-01 20:46:56 -0500

Add spacing fix.

--------------------------------------------------------------------------------
1bdc6d0a59 | David Lawrence Ramsey | 2010-04-01 19:47:03 -0500

Undo value change for debugging purposes.

--------------------------------------------------------------------------------
aed0db9bf4 | Robert Burnham | 2010-04-01 19:46:34 -0500

Fix_spines_damaging_ranged_enemies

--------------------------------------------------------------------------------
3b7ca0de93 | Robert Burnham | 2010-04-01 19:46:34 -0500

Hooves_talons_force_boots_off

--------------------------------------------------------------------------------
c8447f4f02 | Robert Burnham | 2010-04-01 19:46:34 -0500

Correct_rugged_brown_scales_ac_value

--------------------------------------------------------------------------------
aab8e1b223 | Robert Burnham | 2010-04-01 19:46:34 -0500

Separate_fire_and_ice_facets
Also changes MUT_SPINY to work off of 1 chance in EVP+1

--------------------------------------------------------------------------------
879060c2ef | Robert Burnham | 2010-04-01 19:46:33 -0500

Correct_nightstalker_los_reduction

--------------------------------------------------------------------------------
2ba1111ae6 | David Lawrence Ramsey | 2010-04-01 19:37:29 -0500

Fix typos.

--------------------------------------------------------------------------------
669e09d9f6 | David Lawrence Ramsey | 2010-04-01 19:36:29 -0500

Fix apparent conflict.

--------------------------------------------------------------------------------
3dc455273f | David Ploog | 2010-04-02 01:27:31 +0200

Another stab at background descriptions for the selection screen.
This time using two lines rather than one.

--------------------------------------------------------------------------------
bbf4c9b650 | David Lawrence Ramsey | 2010-04-01 18:24:49 -0500

Fix abbreviation.

--------------------------------------------------------------------------------
c2ad0bf11b | Robert Vollmert | 2010-04-01 22:58:54 +0200

Replace you.stats by you.stat_loss.
Current stats are now computed as the difference of you.max_stat
you.stat_loss.

--------------------------------------------------------------------------------
37bb996d48 | Robert Vollmert | 2010-04-01 22:05:37 +0200

Make focus and shuffle cards go through modify_stat.

--------------------------------------------------------------------------------
5612c38fcd | Robert Vollmert | 2010-04-01 19:58:21 +0200

Add player::stat() to lookup stat by stat_type.
This in preparation for getting rid of player::stats.

--------------------------------------------------------------------------------
1a178d6f5d | Robert Vollmert | 2010-04-01 19:46:23 +0200

Fix shadowed variable warning.

--------------------------------------------------------------------------------
da044bc82e | Robert Vollmert | 2010-04-01 19:46:03 +0200

Make stat change handling and normalization more sane.
Stats are now not normalized when printed, but when changed.

Also fix some argument types, and some related cleanup.

--------------------------------------------------------------------------------
2362f5aa10 | David Lawrence Ramsey | 2010-04-01 12:15:33 -0500

Fix typo.

--------------------------------------------------------------------------------
bb107f1ff1 | Robert Vollmert | 2010-04-01 18:30:54 +0200

Make some tests a little shorter.

--------------------------------------------------------------------------------
14924dd4ee | Robert Vollmert | 2010-04-01 18:16:14 +0200

Convert stats to use vectors player::stats, player::max_stats.
Stats are now stored in FixedVector<char, NUM_STATS>
player::stats, player::max_stats.

Most code now reads you.strength(), you.max_strength() etc.

--------------------------------------------------------------------------------
d947e0c732 | Robert Vollmert | 2010-04-01 15:29:23 +0200

Shorten stat_type enum names.
Now STAT_{STR,INT,DEX}.

--------------------------------------------------------------------------------
f1e382e94b | Robert Vollmert | 2010-04-01 15:21:24 +0200

Restore contribs/sqlite to its old broken state.

--------------------------------------------------------------------------------
109f219fdd | Robert Vollmert | 2010-04-01 15:17:34 +0200

Move {lose,restore}_stat to player-stats.cc.

--------------------------------------------------------------------------------
3572979943 | Robert Vollmert | 2010-04-01 12:37:19 +0200

Move player stat handling to player-stats.{cc,h}.

--------------------------------------------------------------------------------
6a85c4874b | Robert Vollmert | 2010-04-01 12:37:18 +0200

Move PlaceInfo to place-info.{cc,h}.

--------------------------------------------------------------------------------
88e2246a0e | Robert Vollmert | 2010-04-01 12:37:05 +0200

Start moving code from player.cc to player-act.cc.
player-act.cc is meant for code that implements the actor interface
in player.

--------------------------------------------------------------------------------
c3b0725b26 | Darshan Shaligram | 2010-04-01 08:43:33 +0530

Don't try to handle SIGALRM in crash handler.
The SIGHUP timeout SIGALRM was triggering the crash handler with unfortunate
consequences on cao.

--------------------------------------------------------------------------------
8031d65070 | David Lawrence Ramsey | 2010-03-31 16:33:42 -0500

Fix demonspawn description; in terms of holiness, they're not undead.

--------------------------------------------------------------------------------
0d34c7af9d | David Lawrence Ramsey | 2010-03-31 16:32:44 -0500

Add spacing fix.

--------------------------------------------------------------------------------
d41d922ee5 | David Lawrence Ramsey | 2010-03-31 16:31:26 -0500

Fix typo.

--------------------------------------------------------------------------------
fb9121ffe3 | David Ploog | 2010-03-31 21:59:25 +0200

Add short descriptions for the background/species screens.
Also removed the description for the Sense Surroundings ability; I hope
that's okay.

--------------------------------------------------------------------------------
028e0723f9 | David Lawrence Ramsey | 2010-03-31 14:09:23 -0500

Tweak wording one more time.

--------------------------------------------------------------------------------
bb0a2e31f0 | David Lawrence Ramsey | 2010-03-31 14:02:02 -0500

Fix wording again.

--------------------------------------------------------------------------------
a4037ce2df | Johanna Ploog | 2010-03-31 21:10:37 +0200

Read species/background descriptions from the database.
Added two new files, backgrounds.txt and species.txt, that are for the
most part empty except where filled with placeholder descriptions copied
from the monster descriptions.

--------------------------------------------------------------------------------
9a5822ddc7 | David Ploog | 2010-03-31 18:18:55 +0200

Repair orcish cave_to_temple subvault (clouded).

--------------------------------------------------------------------------------
b86f8146cf | David Lawrence Ramsey | 2010-03-31 10:55:01 -0500

Fix typos and wording.

--------------------------------------------------------------------------------
306e28ce8a | Robert Vollmert | 2010-03-31 14:58:51 +0200

Get rid of option old_selection_order.
Doesn't make sense with the new starting screens.

--------------------------------------------------------------------------------
4ba6aee0b1 | Robert Vollmert | 2010-03-31 14:26:24 +0200

Move antenna effect after monster movement.
This way the information won't be one turn late.

--------------------------------------------------------------------------------
56d75708f8 | Robert Vollmert | 2010-03-31 14:26:23 +0200

Give DUR_DEMONIC_GUARDIAN a name (fixes wiz-you.cc compile check).

--------------------------------------------------------------------------------
e9e958e7af | Robert Vollmert | 2010-03-31 14:26:23 +0200

Bump major version for demonspawn changes.
* mutation_type enum was changed heavily
* player got two new fields {active,disable}_demonic_guardian
* new duration DUR_DEMONIC_GUARDIAN

--------------------------------------------------------------------------------
cb1671a6e5 | Robert Vollmert | 2010-03-31 14:26:23 +0200

Save and restore you.{active,disable}_demonic_guardian.

--------------------------------------------------------------------------------
58f2009887 | Robert Vollmert | 2010-03-31 14:26:22 +0200

Make check_demonic_guardian() safe against monster generation failure.

--------------------------------------------------------------------------------
e0907dbb4e | Robert Burnham | 2010-03-31 14:26:17 +0200

Demonspawn Additions
Implements new demonspawn mutations, removes old scales / mutations
which are deprecated. Adds some limited functionality which was
necessary for new mutations which might prove useful in the future.
Most notably, the monster flag forcing creature inter-level travel
as the player moves up / down in the dungeon.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
20e65c29c6 | Robert Vollmert | 2010-03-31 13:55:38 +0200

Make player_adjusted_evasion_penalty static.

--------------------------------------------------------------------------------
35a1096e2e | Darshan Shaligram | 2010-03-31 13:38:27 +0530

Don't allow aquamancer wave to knock back immobile monsters (Pacra)

--------------------------------------------------------------------------------
9ae4a2e801 | Robert Vollmert | 2010-03-30 23:23:15 +0200

Invalidate LOS earlier in abyss shift.
This fixes env.pgrid getting corrupted when fprops are copied due
to iterating over player LOS.

Fixes issue #1213.

--------------------------------------------------------------------------------
1ff6b1ec17 | Robert Vollmert | 2010-03-30 23:23:15 +0200

Make radius_iterators in abyss shift more explicit.

--------------------------------------------------------------------------------
2778fdb1b7 | Robert Vollmert | 2010-03-30 23:23:14 +0200

Assert valid sanctuary position if a square has sanctuary bits set.

--------------------------------------------------------------------------------
f4227271e5 | Adam Borowski | 2010-03-30 23:13:29 +0200

Don't acquire items of useless types, like amulets of faith for Demigods.

--------------------------------------------------------------------------------
dcb514876c | Robert Vollmert | 2010-03-30 22:10:42 +0200

Invalidate LOS when generating abyss.
This catches abyss shift, abyss teleport and Lugonu's corruption.
Note that the terrain changes involved don't generate
DET_FEAT_CHANGE -- not sure if any code expects that.

Should fix issue #1214.

--------------------------------------------------------------------------------
a26f7ebd1a | Robert Vollmert | 2010-03-30 22:10:42 +0200

Add los_changed() to signal a global LOS changed.
This is instead of calling invalidate_los() directly, and
includes a call to invalidate_agrid(), so we don't need
to call both invalidate_los() and invalidate_agrid() when
loading a new level, etc.

--------------------------------------------------------------------------------
5d327d2668 | Jesse Luehrs | 2010-03-30 12:25:00 -0500

fix compilation warning (felirx)

--------------------------------------------------------------------------------
d448aa9881 | Jesse Luehrs | 2010-03-30 11:54:45 -0500

Merge randomized movespeed changes

--------------------------------------------------------------------------------
a0682bcd5e | Robert Vollmert | 2010-03-30 18:36:21 +0200

Make cancelled controlled teleports take time and cause glow.

--------------------------------------------------------------------------------
a39bd1b1c2 | Janne Lahdenpera | 2010-03-30 18:35:51 +0200

Fixes an ASSERT bug in PrecisionMenu
On some cases, it was possible for highlight_index to become -1
resulting in an ASSERT crash

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
b705969886 | Johanna Ploog | 2010-03-30 17:07:27 +0200

Add large quadruped zombie tile, tweak small one.
Also fix zombie subtype size check.

--------------------------------------------------------------------------------
b5a7564a43 | Adam Borowski | 2010-03-30 13:22:47 +0200

Don't redefine ASSERTS if it's already defined.

--------------------------------------------------------------------------------
0b96abeddb | Adam Borowski | 2010-03-30 12:01:50 +0200

Replace some (but not all) uses of libc's assert() by our ASSERT().

--------------------------------------------------------------------------------
8b243758b1 | Adam Borowski | 2010-03-30 11:23:33 +0200

Enable some more asserts.  Some of these may be expensive.

--------------------------------------------------------------------------------
90f83b5d82 | Adam Borowski | 2010-03-30 11:17:10 +0200

For now, enable asserts in all builds.
It may be a good idea to disable this for release, though.

--------------------------------------------------------------------------------
9145e07527 | Adam Borowski | 2010-03-30 11:17:05 +0200

"make ASSERTS=y" to force assertion checks even in non-debug builds.

--------------------------------------------------------------------------------
ac43205a05 | Robert Vollmert | 2010-03-29 22:44:43 +0200

Cancel command repetition on death.
Hopefull fixes an issued described in the comments to issue #1203.

--------------------------------------------------------------------------------
4fd70dd71d | Janne Lahdenpera | 2010-03-29 21:40:21 +0200

Adds support for mouse and arrow operable menus
Provides implementation that allows multiple types of CRTregions for
tiles. Provides implementation of a menu that allows total freedom of
entry placement. Uses these assets provided to change the Species and
Background menus to allow mouse and arrow-keys selection. Also provides
support for adding descriptions to menu entries.

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
efcc80f48d | Adam Borowski | 2010-03-29 21:27:34 +0200

State that sling bullets are only "usually" made of lead.

--------------------------------------------------------------------------------
48ea74461c | David Ploog | 2010-03-29 21:25:20 +0200

Update CREDITS.
Neil Middleton is now a developer.

--------------------------------------------------------------------------------
992abe43c4 | Johanna Ploog | 2010-03-29 21:11:51 +0200

Add LoginError's zombie tiles, plus code to use them.

--------------------------------------------------------------------------------
4ad1ce1488 | Robert Vollmert | 2010-03-29 19:59:21 +0200

Don't show altars in overview for demigods.
They're irrelevant.

--------------------------------------------------------------------------------
70c8b6cb1d | Robert Vollmert | 2010-03-29 16:44:01 +0200

Fix bazaar portal description spacing.

--------------------------------------------------------------------------------
2120451c03 | Robert Vollmert | 2010-03-29 16:15:08 +0200

Fix buggy ghost speech line (st).

--------------------------------------------------------------------------------
dd91d6230e | Robert Vollmert | 2010-03-29 11:04:14 +0200

Make sure message dumping doesn't dump more messages than available.
Fixes issue #1185.

--------------------------------------------------------------------------------
1bc0cb0e82 | Ixtli | 2010-03-28 22:42:05 +0200

quieted warning about format string type inconsistency

--------------------------------------------------------------------------------
2c5067f17a | Robert Vollmert | 2010-03-28 22:33:16 +0200

Fix horrible coord-circle origin hack.
It's now tracking whether to check map_bounds explicitly; this is
enabled or not depending on the used constructor.

Fixes issue #1191 (crash on Shoals 5 when drawing water tiles near
(0,0), where (0,0) had been magically detected.

I'm not confident this doesn't cause other issues, however, since
it seems too easy.

--------------------------------------------------------------------------------
3e03aaea90 | Robert Vollmert | 2010-03-28 21:48:31 +0200

Remove tiles special case from Menu::do_menu().
According to 89cc8c5f, this was introduced to make menus accept mouse
commands, but that seems to work just fine without.

--------------------------------------------------------------------------------
08efabd74e | Robert Vollmert | 2010-03-28 20:47:15 +0200

Replace c_getch by getch_ck.
It was always just getch_ck for our current platforms, except for
Windows tiles, which seems like an accident more than anything
else.

--------------------------------------------------------------------------------
35a68435d9 | Robert Vollmert | 2010-03-28 20:25:19 +0200

Remove getch()->getchm() define.

--------------------------------------------------------------------------------
e34725ba3a | Robert Vollmert | 2010-03-28 20:25:18 +0200

Replace calls to redefined getch by getchm.
Remaining calls to getch() outside lib*.cc should probably also
be getchm() instead.

--------------------------------------------------------------------------------
675e9c7c27 | Darshan Shaligram | 2010-03-28 23:24:09 +0530

Fix wizard_edit_durations (RjY).

--------------------------------------------------------------------------------
b638d0ecc1 | Robert Vollmert | 2010-03-28 19:48:17 +0200

Remove getche(). Seems to be unused.

--------------------------------------------------------------------------------
aa5c7beefc | Darshan Shaligram | 2010-03-28 23:01:58 +0530

Add greedy_pickup_gold and greedy_visited_item_stack explore stop options.
The old explore behaviour of stopping when visiting a previously unknown item
stack was useful. This is now controlled by the explore_stop option
greedy_visited_item_stack, enabled by default.

Some players prefer explore to stop when picking up gold. This can be enabled
by greedy_pickup_gold (not enabled by default).

--------------------------------------------------------------------------------
3692228332 | Robert Vollmert | 2010-03-28 19:29:58 +0200

Don't export key_to_command from libw32c.{cc,h}.
Seems to not be used outside. A windows compile test would be
appreciated.

--------------------------------------------------------------------------------
68b67bcfe1 | Robert Vollmert | 2010-03-28 19:14:34 +0200

Map SDLK_KP_ENTER to CK_ENTER.
Fixes the keypad enter key not working by default on Mac Tiles
at least (issue #1133). This means that you can no longer
distinguish between these, but I don't think it matters.

--------------------------------------------------------------------------------
28435fe67a | Robert Vollmert | 2010-03-28 16:12:05 +0200

Fix previous command repeat for targetted spells.
Previously, if the target was not valid, spell direction keys could
be taken as normal input.

E.g., repeating zaL for magic dart on a would run right.

--------------------------------------------------------------------------------
f70360de5b | Robert Vollmert | 2010-03-28 16:11:32 +0200

Change key recorder to get unexpanded keys.
This should fix doing macros again (issue #1182).

--------------------------------------------------------------------------------
9ff5ce4ef0 | Robert Vollmert | 2010-03-28 15:23:05 +0200

Remove a lot of unused key_recorder stuff.

--------------------------------------------------------------------------------
dd0a93eb58 | Robert Vollmert | 2010-03-28 13:45:49 +0200

Don't expand macros when one has already been expanded.
This may well break something. Really, the same buffer shouldn't be holding
both unexpanded and expanded keys...

Fixes infinite loop with a macro like 'l -> ll'.

--------------------------------------------------------------------------------
8d072912c4 | Robert Vollmert | 2010-03-28 13:44:42 +0200

Remove unused insert_macro_into_buff.

--------------------------------------------------------------------------------
91638ee8e3 | Jude Brown | 2010-03-28 15:31:41 +1000

Maximum charges of wands is 15, not 16. (greensnark)

--------------------------------------------------------------------------------
2daafbd74e | Adam Borowski | 2010-03-27 17:12:17 +0100

A not quite white sheep.

--------------------------------------------------------------------------------
76685356c4 | Jesse Luehrs | 2010-03-26 18:40:48 -0500

don't include full describe output for actual releases (cherry picked from 
commit b84bd9182b17c123d3350b629dc16a08e3973569)

--------------------------------------------------------------------------------
b84bd9182b | Jesse Luehrs | 2010-03-26 18:39:32 -0500

don't include full describe output for actual releases

--------------------------------------------------------------------------------
fbe6be0bc1 | Jesse Luehrs | 2010-03-26 18:01:40 -0500

update changelog with actual release date (cherry picked from commit 
9e775b7ac87f2f6ff800bf0c0cf7ece8842a693a)

--------------------------------------------------------------------------------
9e775b7ac8 | Jesse Luehrs | 2010-03-26 17:59:26 -0500

update changelog with actual release date

--------------------------------------------------------------------------------
b8127bff93 | Darshan Shaligram | 2010-03-26 17:37:28 -0500

Don't build contribs for package-source target, don't include .d, fix 
s/@echo/echo, include tiles submodules in source bundles (doy).
Since the main makefile generates .d as needed, don't bundle .d files in the 
source tarballs.

Also include tiles dependencies in tarball.
(cherry picked from commit f03f2ddbc3bb5c0af708223537e4b7c8f8ad10c2)

--------------------------------------------------------------------------------
241692e386 | Jesse Luehrs | 2010-03-26 17:30:11 -0500

use system lua on non-debian distros (cherry picked from commit 
909fd2d1f4bdb33af7479dc8c334829d3a9f26dd)

--------------------------------------------------------------------------------
909fd2d1f4 | Jesse Luehrs | 2010-03-26 17:28:23 -0500

use system lua on non-debian distros

--------------------------------------------------------------------------------
7ae14fefcf | Darshan Shaligram | 2010-03-26 17:23:56 -0500

Make package-source also create -nodeps tarball without contribs/ (cherry 
picked from commit 48d787d7351a572467eb1c6f2a19786e5e1cfbe0)

--------------------------------------------------------------------------------
48d787d735 | Darshan Shaligram | 2010-03-27 03:25:08 +0530

Make package-source also create -nodeps tarball without contribs/

--------------------------------------------------------------------------------
02f2e783bd | Matt Mills | 2010-03-26 22:22:23 +0100

Highlight evasion value during the effects of a potion of agility.

--------------------------------------------------------------------------------
f03f2ddbc3 | Darshan Shaligram | 2010-03-27 01:45:11 +0530

Don't build contribs for package-source target, don't include .d, fix 
s/@echo/echo, include tiles submodules in source bundles (doy).
Since the main makefile generates .d as needed, don't bundle .d files in the 
source tarballs.

Also include tiles dependencies in tarball.

--------------------------------------------------------------------------------
5a904f3ee8 | Darshan Shaligram | 2010-03-27 01:32:56 +0530

Fix USE_DGAMELAUNCH compile.

--------------------------------------------------------------------------------
789322b64a | Darshan Shaligram | 2010-03-26 13:37:24 -0500

Correct name in credits (Sophie Hamilton). (cherry picked from commit 
b8cf62f9c0bae396a6f1c65a42933935e7d3bd9d)

--------------------------------------------------------------------------------
5342222e9e | Jude Brown | 2010-03-26 13:37:06 -0500

Orbs of Destruction shouldn't be viable mislead targets. [#1163].
Fixes #1163.
(cherry picked from commit 11a79ecfb5bd47cfaec8abc70a1fa25dd710d131)

--------------------------------------------------------------------------------
dd7441be2e | Adam Borowski | 2010-03-26 13:36:06 -0500

Don't advertise blunt weapons as "big, fiery blades (for hydras)" [Mantis 1159] 
(cherry picked from commit 62292be478067090586d2313ad6396dbaa403494)

--------------------------------------------------------------------------------
a454cc4476 | Adam Borowski | 2010-03-26 13:34:52 -0500

Describe various cset_ encodings. (cherry picked from commit 
594a1edd234a9a828826421bef357e9eb0b72bee)

--------------------------------------------------------------------------------
dd81fb8024 | Adam Borowski | 2010-03-26 13:34:10 -0500

Typo fix: "Unkown". (cherry picked from commit 
3594c072cc1f20698e435a319a079961ed4e3b32)

--------------------------------------------------------------------------------
b8cf62f9c0 | Darshan Shaligram | 2010-03-26 17:53:53 +0530

Correct name in credits (Sophie Hamilton).

--------------------------------------------------------------------------------
b98e291e80 | Darshan Shaligram | 2010-03-26 17:48:43 +0530

Make anacondas amphibious (dpeg).

--------------------------------------------------------------------------------
4f61c08edc | Darshan Shaligram | 2010-03-26 17:46:37 +0530

Timeout call-tide enchantment when returning to Ilsuiw's level (rob).

--------------------------------------------------------------------------------
11a79ecfb5 | Jude Brown | 2010-03-26 09:18:09 +1000

Orbs of Destruction shouldn't be viable mislead targets. [#1163].
Fixes #1163.

--------------------------------------------------------------------------------
62292be478 | Adam Borowski | 2010-03-25 22:20:09 +0100

Don't advertise blunt weapons as "big, fiery blades (for hydras)" [Mantis 1159]

--------------------------------------------------------------------------------
d73f417440 | Robert Vollmert | 2010-03-25 16:29:03 +0100

Fix item_is_equipped check for quivered items.
Previously, it wasn't checking that the item was in inventory, hence
randomly considering floor items as quivered. This lead to occasional
green items on the floor.

--------------------------------------------------------------------------------
0017779adc | Adam Borowski | 2010-03-25 14:09:23 +0100

Fix bushes stopping branded arrows.

--------------------------------------------------------------------------------
594a1edd23 | Adam Borowski | 2010-03-25 13:05:55 +0100

Describe various cset_ encodings.

--------------------------------------------------------------------------------
06b78b9472 | Adam Borowski | 2010-03-25 12:03:39 +0100

Give a better fail message if yacc is not installed in targets that need it.

--------------------------------------------------------------------------------
3594c072cc | Adam Borowski | 2010-03-25 10:35:21 +0100

Typo fix: "Unkown".

--------------------------------------------------------------------------------
419cd61f82 | Robert Vollmert | 2010-03-24 18:12:41 +0100

Fix monsters not opening doors (issue #1151).
There was an extra 'else'.

--------------------------------------------------------------------------------
5d192663ce | Robert Vollmert | 2010-03-24 10:47:42 +0100

load(): don't make_changes on LOAD_RETURN.

--------------------------------------------------------------------------------
7024c91fda | Adam Borowski | 2010-03-23 20:51:26 -0500

Fix divine vigour crashing. (cherry picked from commit 
3cdfdb5edf9f668f2aa3bc14429e87dd8fafdfdb)

--------------------------------------------------------------------------------
ab10571451 | Adam Borowski | 2010-03-23 20:51:08 -0500

Disallow overriding any directory setting from .rc in DGL.
Some other settings still do allow reading/writing to arbitrary
files, beware!
(cherry picked from commit 96cc1cbc2d2c2b664c08cc5a4efa9e7f7cae9720)

--------------------------------------------------------------------------------
a0c9f5ef19 | Robert Vollmert | 2010-03-23 20:50:45 -0500

Adapt mi_get_monster_at to lua_push_moninf-change. (cherry picked from commit 
465f2585162a2eb629238e786d41244e655749c7)

--------------------------------------------------------------------------------
7cfa856d9a | Robert Vollmert | 2010-03-23 20:50:36 -0500

Properly fix ch_mon_is_safe memory leak (greensnark).
Apparently, mons_is_safe was only leaking memory in case ch_mon_is_safe
was undefined.
(cherry picked from commit be3b7cc44ae128235a0086a63b7d4c1672562415)

--------------------------------------------------------------------------------
b46e5a4271 | Adam Borowski | 2010-03-23 20:50:21 -0500

Fix a nasty memory leak.
While sizeof(memory_info) is small, we call it millions of times.
(cherry picked from commit 77cce521a61bc4ffbf73c05d481ffbf9e1d761c6)

--------------------------------------------------------------------------------
eb7d5c3ca1 | Robert Vollmert | 2010-03-23 20:49:50 -0500

Call tiles.set_need_redraw() from message_window::show().
This fixes some tiles lag issues for me (e.g. before dragon breath hits
the player with debug messages). I hope this also catches the lag on
magic missile level up.
(cherry picked from commit d098134e2229f7d865d59d006ec5c505b0196cdd)

--------------------------------------------------------------------------------
3cdfdb5edf | Adam Borowski | 2010-03-24 02:44:53 +0100

Fix divine vigour crashing.

--------------------------------------------------------------------------------
79c02c5261 | Enne Walker | 2010-03-23 20:59:17 -0400

Change tab images on mouseover, not just click.

--------------------------------------------------------------------------------
96cc1cbc2d | Adam Borowski | 2010-03-23 18:14:35 +0100

Disallow overriding any directory setting from .rc in DGL.
Some other settings still do allow reading/writing to arbitrary
files, beware!

--------------------------------------------------------------------------------
465f258516 | Robert Vollmert | 2010-03-23 17:32:06 +0100

Adapt mi_get_monster_at to lua_push_moninf-change.

--------------------------------------------------------------------------------
be3b7cc44a | Robert Vollmert | 2010-03-23 17:28:50 +0100

Properly fix ch_mon_is_safe memory leak (greensnark).
Apparently, mons_is_safe was only leaking memory in case ch_mon_is_safe
was undefined.

--------------------------------------------------------------------------------
79d8622b89 | Robert Vollmert | 2010-03-23 12:17:12 +0100

Make LOS radius change invalidate global LOS
Fixes lantern of shadows.

--------------------------------------------------------------------------------
77cce521a6 | Adam Borowski | 2010-03-23 11:15:08 +0100

Fix a nasty memory leak.
While sizeof(memory_info) is small, we call it millions of times.

--------------------------------------------------------------------------------
d098134e22 | Robert Vollmert | 2010-03-23 10:41:37 +0100

Call tiles.set_need_redraw() from message_window::show().
This fixes some tiles lag issues for me (e.g. before dragon breath hits
the player with debug messages). I hope this also catches the lag on
magic missile level up.

--------------------------------------------------------------------------------
2d6bd84ec8 | Robert Vollmert | 2010-03-23 10:41:28 +0100

bolt::draw clean-up.

--------------------------------------------------------------------------------
a7f55e87a7 | Adam Borowski | 2010-03-23 02:23:51 +0100

Don't crash if a mon dies/is dismissed with pos (0,0).

--------------------------------------------------------------------------------
6e579ed11a | Robert Vollmert | 2010-03-22 15:37:26 -0500

Document create_monster return value. (cherry picked from commit 
eee2a1418045006b132907a3981166df04ac1529)

--------------------------------------------------------------------------------
4a07c47d4d | Johanna Ploog | 2010-03-22 15:37:17 -0500

Add tooltips for opening/closing adjacent doors.
Also add Tiles' doll editor command in the manual.
(cherry picked from commit f1bdcd4b3c550b4a77c2f4cd356a198c9cd7c5ad)

--------------------------------------------------------------------------------
2b109ae647 | David Lawrence Ramsey | 2010-03-22 15:26:31 -0500

Fix Mantis 1131.
Disallow artefact amulets of stasis that make you angry or give you the
ability to go berserk, as berserking fails under amulets of stasis.
(cherry picked from commit 0d838f97437e374adb88636429f86f76e8148181)

--------------------------------------------------------------------------------
85f89d7c6b | Matt Mills | 2010-03-22 15:05:41 -0500

Colour tags are now taken into account for terminal width calculations on the 
^x screen. This fixes weight value misalignment. (cherry picked from commit 
85f82afd47f69e159861c0b8d0442b715f721338)

--------------------------------------------------------------------------------
9ca0bfbc2b | Robert Vollmert | 2010-03-22 15:05:19 -0500

Call tiles.set_need_redraw() from tiles.clrscr().
This seems sensible enough. I hope it doesn't have bad side-effects --
does it look ok, Enne?

Fixes part of issue #1056, the lag when exploring into a shop.
(cherry picked from commit 763e9ebd93199ed0657084adc7ae08243c226048)

--------------------------------------------------------------------------------
313b681e9a | Robert Vollmert | 2010-03-22 15:04:59 -0500

wizlab.des: No more spinal fluid (due, mu). (cherry picked from commit 
14f6e5cbd73502a5de23bbe1bbf92b603c5439c8)

--------------------------------------------------------------------------------
289ab71f2f | Robert Vollmert | 2010-03-22 15:04:10 -0500

Unify stair case colouring in- and outside view.
By default, they're always green/red, or white if unknown.

To revert to the 0.5 behaviour, add the following to your crawlrc:

feature = stone staircase leading up {,,light gray}
feature = stone staircase leading down {,,light gray}
(cherry picked from commit b4e89e0cc3219f615719662dece1ef33fb03aedd)

--------------------------------------------------------------------------------
486bc79d3f | Robert Vollmert | 2010-03-22 15:04:01 -0500

Revert "Unify stair case colouring in- and outside view."
This reverts commit 184c01f6a45d337c8aa80c9f2dce3347d45d0a35.
(cherry picked from commit 3c05f15d8c0c41c5097df1972c2d016338911178)

--------------------------------------------------------------------------------
d5f50e028c | Johanna Ploog | 2010-03-22 15:02:33 -0500

Tweak open door description. (cherry picked from commit 
060fa04547da677464f22aae4b1106529b86dcb1)

--------------------------------------------------------------------------------
8397df8c02 | Robert Vollmert | 2010-03-22 15:01:59 -0500

Update wielded item display for any item on unwield.
Fixes issue #1107.
(cherry picked from commit 83760a2bddcac65f7008fb1fe3216e754cf73c9b)

--------------------------------------------------------------------------------
28cf074090 | Robert Vollmert | 2010-03-22 15:01:41 -0500

Allow doubly activating Lua triggerables.
Before, a previously activated Lua marker aborted reactivation,
which caused Lugonu's Corruption to mess up markers (e.g. no
teleport control after picking up rune in Tomb).

From what I can tell, none of the triggerable code relies on
not being activated twice, but it would be nice if the triggerable
experts could confirm this.

Fixes issue #1096.
(cherry picked from commit b2bf22da044c346c748b917c788f0448620f2433)

--------------------------------------------------------------------------------
6ce086b6b3 | Robert Vollmert | 2010-03-22 15:01:11 -0500

Kill tiles FPS limiter.
It seems to be broken either way, and causing no end of trouble.
(cherry picked from commit c5c3414fbc8dfa7e30f4a55282a7c453ff55c808)

--------------------------------------------------------------------------------
c9c58b9902 | Robert Vollmert | 2010-03-22 21:01:02 +0100

Fix arena with global LOS.
For one, fix several crash bugs related to the player being outside
LOS. These are prevented by checking against actor->alive() to check
actor validity, and having you.alive() return false in the arena.
Then, make sure LOS is actually invalidated for the arena, since
that doesn't go through the usual level initialization path.

--------------------------------------------------------------------------------
c46370995a | Robert Vollmert | 2010-03-22 15:00:47 -0500

Revert "Make tiles maximal FPS configurable."
This reverts commit 5c1c7fb951e64c443a83bc54ad8e78a16ef179b7.
(cherry picked from commit ad1b0153ee9cb65fa0f3c400cadc2088428045f6)

--------------------------------------------------------------------------------
c03b46cf14 | Johanna Ploog | 2010-03-22 14:59:00 -0500

Update 034_monster_glyphs.txt : giant lizard -> crocodile. (cherry picked from 
commit e561aa9968b236fec2d495235eab964608030ca4)

--------------------------------------------------------------------------------
6fc23f5d5e | Eino Keskitalo | 2010-03-22 14:57:30 -0500

Remove a reference to remove curse spell.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit f39a5b5d461bc11dce60ba7387b8d2107552bb7e)

--------------------------------------------------------------------------------
04e4db46e9 | Robert Vollmert | 2010-03-22 14:57:13 -0500

Fix mons_summon_illusion_from use of create_monster.
It was checking the return value against NON_MONSTER instead of -1,
so a failed summon illusion would cause it to overwrite the end of
env.items, likely leading to issue #1089. In debug builds, this
triggered an assertion.

Fixes issue #1089.
(cherry picked from commit 3ec0fb9383c55ae72df179e9ffaf35673c4920a7)

--------------------------------------------------------------------------------
63d646d1fc | Robert Vollmert | 2010-03-22 18:49:34 +0100

Update LOS tests to global los.

--------------------------------------------------------------------------------
93ce09261f | Robert Vollmert | 2010-03-22 18:49:33 +0100

Yet another version of arena LOS hacks.

--------------------------------------------------------------------------------
b4fd6a508a | Robert Vollmert | 2010-03-22 18:49:33 +0100

Move restoring state after level excursion into load().

--------------------------------------------------------------------------------
e862c6b588 | Robert Vollmert | 2010-03-22 18:49:33 +0100

Consider opening/closing doors as terrain change.
This fixes LOS updates when opening/closing doors.

--------------------------------------------------------------------------------
f076dba08f | Robert Vollmert | 2010-03-22 18:49:33 +0100

Update actor::get_los to use global LOS.
This is all not very nice.

los_base is now an abstract base class for both los_def and
los_glob (global LOS-backed los_def variant), and interators
now take a *los_base.

actor::update_los is gone.

Arena LOS is quite probably broken again at the moment.

--------------------------------------------------------------------------------
dea589d649 | Robert Vollmert | 2010-03-22 18:49:32 +0100

Make actor::see_cell use global LOS.

--------------------------------------------------------------------------------
3831bbf8c3 | Robert Vollmert | 2010-03-22 18:49:32 +0100

Invalidate global LOS where appropriate.
Also move the call to areas_actor_moved to actor::set_position.

--------------------------------------------------------------------------------
0d95dc6715 | Robert Vollmert | 2010-03-22 18:49:32 +0100

losglobal.cc: A start at tracking LOS globally.

--------------------------------------------------------------------------------
8cc49931c1 | Robert Vollmert | 2010-03-22 18:49:31 +0100

Make some monster movement code use move_to_pos.
This should be ok now that move_to_pos no longer requires the
old position to be valid.

--------------------------------------------------------------------------------
1d9ce342ce | Robert Vollmert | 2010-03-22 18:49:31 +0100

Fix monster silence not invalidating agrid as appropriate.

--------------------------------------------------------------------------------
1b68651a54 | Enne Walker | 2010-03-22 11:25:43 -0400

Fix tiles compilation errors from halo changes.

--------------------------------------------------------------------------------
c0a67b874b | Adam Borowski | 2010-03-22 11:06:50 +0100

Don't hide aptitudes from draconians.  Use base apts for immature ones.
Before, you could guess your colour by looking how fast your skills
train.

--------------------------------------------------------------------------------
b0ed7fd586 | Adam Borowski | 2010-03-22 10:41:05 +0100

Double the decay of slow when hasted [Mantis 1130]

--------------------------------------------------------------------------------
0d838f9743 | David Lawrence Ramsey | 2010-03-21 21:16:23 -0500

Fix Mantis 1131.
Disallow artefact amulets of stasis that make you angry or give you the
ability to go berserk, as berserking fails under amulets of stasis.

--------------------------------------------------------------------------------
358a6ca54d | Adam Borowski | 2010-03-21 20:53:04 +0100

Re-enable non-bladed vampiric weapons [in defiance of Mantis 866]
The chances are smaller than before, since some characters won't be able to
reasonably use them.  But that's no different from holy wrath or pain.

To not burn permafood at a rapid rate, you need one of:
* sustenation (ring or racial)
* claws
* fangs

--------------------------------------------------------------------------------
09aac6cc39 | Nathaniel Rook | 2010-03-21 20:14:41 +0100

Allow monsters to use Silence.
Monsters can now cast Silence, though none (other than player ghosts) have it.

--------------------------------------------------------------------------------
0eb7ec537f | Robert Vollmert | 2010-03-21 20:14:40 +0100

Reenable holy monster halos.

--------------------------------------------------------------------------------
5bbf015684 | Robert Vollmert | 2010-03-21 20:14:40 +0100

Remove redundant monster LOS update.
This is now done in files.cc:load().

--------------------------------------------------------------------------------
05d50f9d90 | Robert Vollmert | 2010-03-21 20:14:40 +0100

files.cc: Update LOS and invalidate areas in load().

--------------------------------------------------------------------------------
f8d9fc33f7 | Robert Vollmert | 2010-03-21 20:14:40 +0100

Invalidate area grid whenever relevant things change.
That includes monsters moving (those with halo or silence),
LOS changing, TSO piety changing, silence durations changing.

--------------------------------------------------------------------------------
cad05f5d0c | Robert Vollmert | 2010-03-21 20:14:39 +0100

Try to track change to global LOS.
This should allow invalidating cached data structures in case they
depend on global LOS. Right now, this is to make sure the area cache
is recalculated, but might also be used to reduce actor LOS calculations
at some point.

--------------------------------------------------------------------------------
b1fa1bb93e | Robert Vollmert | 2010-03-21 20:14:39 +0100

Clean up backlit/halo handling.
This needed to be touched since halo_radius() changed. The skipped
backlit effect for hitting purposes with your own halo is now
handled through an extra argument to actor::haloed(). It's still
broken (if you're haloed, other monsters' halos don't harm your
evasion), but at least it doesn't override corona, sticky flame
etc. anymore.

--------------------------------------------------------------------------------
a9947b5320 | Robert Vollmert | 2010-03-21 20:14:38 +0100

Adapt descriptions to the pre-squared halo radius.

--------------------------------------------------------------------------------
6ee6a6e528 | Robert Vollmert | 2010-03-21 20:14:38 +0100

New halo and silence handling.
Haloed and silenced squares are now tracked in an array _agrid in
areas.cc, which is recalculated on demand and will be invalidated
when relevant things change.

--------------------------------------------------------------------------------
9f90b2d9a9 | Robert Vollmert | 2010-03-21 20:14:38 +0100

actor_iterator, a variant of monster_iterator that includes the player.

--------------------------------------------------------------------------------
2b188ef6f0 | Robert Vollmert | 2010-03-21 20:14:37 +0100

files.cc: Sort includes.

--------------------------------------------------------------------------------
b8fc5c970a | Robert Vollmert | 2010-03-21 20:14:37 +0100

Move rain cloud watering to separate function.

--------------------------------------------------------------------------------
f485650f08 | Robert Vollmert | 2010-03-21 20:14:37 +0100

Relace use of haloers() by haloed().

--------------------------------------------------------------------------------
f79d6b652c | Adam Borowski | 2010-03-21 15:43:45 +0100

Sort the book of Envenomations.

--------------------------------------------------------------------------------
67b0c1dc64 | Adam Borowski | 2010-03-21 14:17:20 +0100

s/skeletal dragon/bone dragon/

--------------------------------------------------------------------------------
265fc7a6d6 | Adam Borowski | 2010-03-20 22:03:08 +0100

Fix unchecked sprintf(..., "%s") and sscanf(..., "%s").
Worst places seem to be running Crawl in a directory with a long name,
and browsing corrupted dolls.

--------------------------------------------------------------------------------
fd76edd59d | Adam Borowski | 2010-03-20 21:21:20 +0100

Replace all strcpy(static_buffer, variable_data) by strlcpy().
At the first glance, only one place seems to use actual unchecked user input,
but it's better to be safe than sorry.

--------------------------------------------------------------------------------
8194a1c9e4 | Adam Borowski | 2010-03-20 19:38:21 +0100

Two harmless races and one buffer overflow.
strncat(...,sizeof(buffer)) is always an error.

--------------------------------------------------------------------------------
85f82afd47 | Matt Mills | 2010-03-20 19:38:21 +0100

Colour tags are now taken into account for terminal width calculations on the 
^x screen. This fixes weight value misalignment.

--------------------------------------------------------------------------------
7a3d3831b0 | Steven Noonan | 2010-03-20 09:26:19 -0700

sqlite: updated to v3.6.23
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
8cb5ef2a0e | Robert Vollmert | 2010-03-20 09:54:10 +0100

Make runrest options also apply to butchering by default.
In particular, you can now butcher uninterrupted when slightly
poisoned with default settings.

Any negative side-effects of this that I might have missed?

--------------------------------------------------------------------------------
763e9ebd93 | Robert Vollmert | 2010-03-20 09:38:56 +0100

Call tiles.set_need_redraw() from tiles.clrscr().
This seems sensible enough. I hope it doesn't have bad side-effects --
does it look ok, Enne?

Fixes part of issue #1056, the lag when exploring into a shop.

--------------------------------------------------------------------------------
5bb00a2810 | David Ploog | 2010-03-20 00:23:40 +0100

Nerf anti-mulching effect from missile enchantments.
An enchantment of +X used to provide another check against mulching
of chance 1/(1+X). That chance is now 3/(3+X).

X          0   1  2  3  4  5  6  7
-----------------------------------
1/(1+X)   100 50 33 25 20 16 14 13
3/(3+x)   100 75 60 50 43 38 33 30

--------------------------------------------------------------------------------
14f6e5cbd7 | Robert Vollmert | 2010-03-19 13:20:17 +0100

wizlab.des: No more spinal fluid (due, mu).

--------------------------------------------------------------------------------
7f411f1f83 | Robert Vollmert | 2010-03-19 11:02:55 +0100

Move {up,down}_stairs from misc.cc to stairs.cc.

--------------------------------------------------------------------------------
f9dcf9fff8 | David Ploog | 2010-03-19 01:01:24 +0100

Another overhault of entry.des.
This time, I have sorted the entry maps into three sections: simple,
twisted (complicated to read stuff), large.

The main motivation was that someone interested in vault making should
see some nice and plain vaults right away, not horrifiyingly convoluted
pseudo code.

--------------------------------------------------------------------------------
b4e89e0cc3 | Robert Vollmert | 2010-03-18 22:23:46 +0100

Unify stair case colouring in- and outside view.
By default, they're always green/red, or white if unknown.

To revert to the 0.5 behaviour, add the following to your crawlrc:

feature = stone staircase leading up {,,light gray}
feature = stone staircase leading down {,,light gray}

--------------------------------------------------------------------------------
3c05f15d8c | Robert Vollmert | 2010-03-18 22:18:21 +0100

Revert "Unify stair case colouring in- and outside view."
This reverts commit 184c01f6a45d337c8aa80c9f2dce3347d45d0a35.

--------------------------------------------------------------------------------
1e2440665b | Robert Vollmert | 2010-03-18 21:00:25 +0100

Factor out common _moveto_location_effects.
This is now used by both move_player_to_grid and player::apply_location_effects.

--------------------------------------------------------------------------------
34bb424aed | Robert Vollmert | 2010-03-18 21:00:25 +0100

Reorganize move_player_to_grid a bit.
Now first check, then call you.moveto, then do effects.

--------------------------------------------------------------------------------
cd8e7b06fe | Robert Vollmert | 2010-03-18 21:00:25 +0100

Split checks out of move_player_to_grid.
Also simplify and unify some of the effects.

--------------------------------------------------------------------------------
03697ef9d9 | Robert Vollmert | 2010-03-18 21:00:25 +0100

Extract stair repelling from move_player_to_grid.

--------------------------------------------------------------------------------
060fa04547 | Johanna Ploog | 2010-03-18 16:57:49 +0100

Tweak open door description.

--------------------------------------------------------------------------------
83760a2bdd | Robert Vollmert | 2010-03-18 16:07:15 +0100

Update wielded item display for any item on unwield.
Fixes issue #1107.

--------------------------------------------------------------------------------
b2bf22da04 | Robert Vollmert | 2010-03-18 09:21:41 +0100

Allow doubly activating Lua triggerables.
Before, a previously activated Lua marker aborted reactivation,
which caused Lugonu's Corruption to mess up markers (e.g. no
teleport control after picking up rune in Tomb).

From what I can tell, none of the triggerable code relies on
not being activated twice, but it would be nice if the triggerable
experts could confirm this.

Fixes issue #1096.

--------------------------------------------------------------------------------
c5c3414fbc | Robert Vollmert | 2010-03-18 07:48:58 +0100

Kill tiles FPS limiter.
It seems to be broken either way, and causing no end of trouble.

--------------------------------------------------------------------------------
ad1b0153ee | Robert Vollmert | 2010-03-18 07:47:33 +0100

Revert "Make tiles maximal FPS configurable."
This reverts commit 5c1c7fb951e64c443a83bc54ad8e78a16ef179b7.

--------------------------------------------------------------------------------
8859e879ce | MarvintheParanoidAndroid | 2010-03-17 23:53:51 +0100

Sustain abilities gets 2 potential dots on character info screen, to correctly 
reflect the fact that wearing 2 rings stacks the effect.

--------------------------------------------------------------------------------
e561aa9968 | Johanna Ploog | 2010-03-17 22:22:22 +0100

Update 034_monster_glyphs.txt : giant lizard -> crocodile.

--------------------------------------------------------------------------------
800e9671d5 | Robert Vollmert | 2010-03-17 16:48:05 +0100

Don't consider ISFLAG_KNOW_TYPE uninteresting if set.
Fixes issue #1092.

Now only consider the ISFLAG_KNOW_TYPE flag uninteresting if the class
of items is known.

--------------------------------------------------------------------------------
f1bdcd4b3c | Johanna Ploog | 2010-03-17 17:05:28 +0100

Add tooltips for opening/closing adjacent doors.
Also add Tiles' doll editor command in the manual.

--------------------------------------------------------------------------------
f39a5b5d46 | Eino Keskitalo | 2010-03-17 16:40:13 +0200

Remove a reference to remove curse spell.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f08014c021 | Eino Keskitalo | 2010-03-17 16:37:38 +0200

Make the crack in the cracked metal wall more visible.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3ec0fb9383 | Robert Vollmert | 2010-03-17 11:55:46 +0100

Fix mons_summon_illusion_from use of create_monster.
It was checking the return value against NON_MONSTER instead of -1,
so a failed summon illusion would cause it to overwrite the end of
env.items, likely leading to issue #1089. In debug builds, this
triggered an assertion.

Fixes issue #1089.

--------------------------------------------------------------------------------
eee2a14180 | Robert Vollmert | 2010-03-17 11:55:36 +0100

Document create_monster return value.

--------------------------------------------------------------------------------
a09db147ba | Jesse Luehrs | 2010-03-17 04:42:20 -0500

fix save file loading (by)

--------------------------------------------------------------------------------
ad648736cf | Robert Vollmert | 2010-03-17 02:54:37 -0500

Fix player-equip asserts when dealing with rings.

--------------------------------------------------------------------------------
c133a3d1fd | Robert Vollmert | 2010-03-17 02:54:36 -0500

Replace many uses of you_tran_can_wear.

--------------------------------------------------------------------------------
a62e0b3dd6 | Robert Vollmert | 2010-03-17 02:54:36 -0500

Default actor::slot_item argument include_melded to false.

--------------------------------------------------------------------------------
29d9d55e88 | Robert Vollmert | 2010-03-17 02:54:35 -0500

Update melding code around item_is_equipped.

--------------------------------------------------------------------------------
810d638240 | Robert Vollmert | 2010-03-17 02:54:35 -0500

Convert player_wearing_slot and player::slot_item to use you.melded.

--------------------------------------------------------------------------------
92da0dc975 | Robert Vollmert | 2010-03-17 02:54:34 -0500

Concentrate equipping/unequipping in player-equip.cc.
The various equipping effects should eventually move there; for now,
they should only be called throuh (un)equip_item.

--------------------------------------------------------------------------------
765df80363 | Robert Vollmert | 2010-03-17 02:54:15 -0500

New field player::melded.
This is an array of booleans that say whether the corresponding
equipment slot is melded.

Based on ebad4a412b3459e1def3cb3b5f0edbe051d119d8, but modified
to not bump major version.

--------------------------------------------------------------------------------
89802be79d | Robert Vollmert | 2010-03-17 08:29:54 +0100

Revert "Fix permanent stat loss for Che worshippers when transforms cause 
ponderous items to meld (syllogism)."
This reverts commit f9a38fc311ee9ae24afc2c10379a4385bffd3b23.

--------------------------------------------------------------------------------
c3c64d4813 | Adam Borowski | 2010-03-17 02:00:02 -0500

Fix acquirement giving nearly solely 2-handers to those without a great Shields 
apt. (cherry picked from commit 79cfc3cb1197837abc8884ea3ccaea4fb08c6e7c)

--------------------------------------------------------------------------------
80da52d5d8 | Adam Borowski | 2010-03-17 02:00:02 -0500

... and allow using shipped fonts. (cherry picked from commit 
0533438f9a2edaac46713a5a35da905bf50152a9)

--------------------------------------------------------------------------------
718d8a000b | Adam Borowski | 2010-03-17 02:00:01 -0500

Allow using alternate (system) fonts as build #defines. (cherry picked from 
commit 2e7cf33f93080f1c5d65d8c7b49b4c587aa4b0a0)

--------------------------------------------------------------------------------
b010a0238d | Robert Vollmert | 2010-03-17 02:00:01 -0500

Restore TSO healing power gain from killing demons.
Partial revert of b55ef79.

Fixes issue #1080.
(cherry picked from commit 597654f496b8c50a728d83e9ad97dc35425aa4f2)

--------------------------------------------------------------------------------
971aafc2cf | Robert Vollmert | 2010-03-17 02:00:00 -0500

Make tiles maximal FPS configurable.
Option tile_max_fps, defaulting to 60 instead of the previous 30.
(cherry picked from commit 5c1c7fb951e64c443a83bc54ad8e78a16ef179b7)

--------------------------------------------------------------------------------
c36ebd700d | Robert Vollmert | 2010-03-17 02:00:00 -0500

TilesFramework::redraw: comment on slight inaccuracy of fps calculation. 
(cherry picked from commit 39bfd57cd7f0aca9cdc22b65f098bbfac0d3698e)

--------------------------------------------------------------------------------
c8c5f63087 | Robert Vollmert | 2010-03-17 02:00:00 -0500

TilesFramework::redraw: return instead of delay when not drawing.
Previously, we were pausing the game to limit the rate of calls to
redraw(). Now we just skip redraws that are too close to the previous
one.

Should help with issue #1056.
(cherry picked from commit 397258dfb3353f220450f74b25873277f3228aa9)

--------------------------------------------------------------------------------
64dab63a78 | Robert Vollmert | 2010-03-17 01:59:59 -0500

TilesFramework::redraw: Rename min_fps to max_fps. (cherry picked from commit 
a8d4ff32a2aa54ba7c5f46911c1df118220555e0)

--------------------------------------------------------------------------------
6151fb87e5 | Adam Borowski | 2010-03-17 01:59:59 -0500

Pass optimization flags to the linker. (cherry picked from commit 
f1eb9d7bcdbd1401cbf0c4ace8b2d9dd59264e37)

--------------------------------------------------------------------------------
b7c54b244e | Robert Vollmert | 2010-03-17 01:59:58 -0500

Add a viewwindow call before reading a command.
This makes sure that the view is up-to-date when prompting for input. In
particular, viewwindow() is called after handle_delay(), so view changes
caused by delays will show.

Fixes issue #1066 (armour with see invis not causing the view to update
on time).
(cherry picked from commit dd408f933a3ec50c96e7d256e0b173276d2b006c)

--------------------------------------------------------------------------------
c4ff732252 | Robert Vollmert | 2010-03-17 01:59:58 -0500

Link Kirke's humans back into env.mgrid.
Killing Kirke in debug mode caused "floating monster" errors,
and in normal builds, the humans weren't showing up until they
moved.
(cherry picked from commit 3a32df816ea12e9fdb63b265d4bb00d3240f58ad)

--------------------------------------------------------------------------------
e5b3cff732 | Robert Vollmert | 2010-03-17 01:59:57 -0500

Make env.mgrid update in monster::move_to_pos a bit more robust.
Previously, it was resetting env.mgrid(oldpos) unconditionally.
Now check that oldpos is in bounds and env.mgrid(oldpos) actually
points to the monster.
(cherry picked from commit 08d9f5a5f47f9356d8f71738b8d49e410395323b)

--------------------------------------------------------------------------------
cdeae0e817 | Jude Brown | 2010-03-17 01:59:57 -0500

Finalise Wizard Laboratories for 0.6.
Solves the following issues:

 * Entrance maps didn't have any tiles set and were therefore quite ugly
   in tiles. This has been resolved by using a theme of magenta to match
   the colour of the portal tile.
 * One map (wizlab_demon) didn't have any tiles at all, nor did it have
   appropriate redescription. I've selected a theme of dark stone tiles,
   light red floor tiles, and used the snake floor to denote areas of
   sigils; I've also included redescriptions: hot floor, sigil-covered
   floor, and so-on.
 * Changed the growing flowers in the Eringya map to be toadstools; we
   don't have a tile for flowers at the minute, so this was problematic.
   It was also never triggering due to a reversed logic in one of the
   checks, so this has been resolved.
 * Fixed the description of the Zonguldrok floor map. The over-ride was
   trying to use "floor" when "Floor" is required. (This is a bug that
   should be resolved, but isn't essential for now.)
 * Loot should now properly be balanced. Some maps which had repetitive
   loot now included some randomised elements as well. I've also reduced
   the amount of loot in the Zonguldrok map; everything else seemed to
   be quite sane and balanced.
 * Finally, all maps now have random monster lists. This means that
   monsters or players casting shadow creatures will no longer be
   greeted with nothing.

There are still a few issues that I'm unhappy with:

 * The Eringya map does not look as good as it could do in tiles.
 * The Cigotuvi transparent walls look out of place and slightly
   strange.
 * The sigils in the Demon map aren't dealt with particularly well.
 * There's no "sea of clouds" tile for the Cloud map, so I haven't done
   redescriptions for it.

And that's it!
(cherry picked from commit b14b56fe1ce986df2557d30677cea2a0ed4a254d)

--------------------------------------------------------------------------------
c91c4f4bf7 | Jude Brown | 2010-03-17 01:59:57 -0500

Fix #1064, conjurations in rods being highlighted for Vehumet.
This adds a parameter to the spell highlighting utility that ignores all
flags except for useless and god-forbidden for rods. It has no impact on
normal spell books.
(cherry picked from commit 939a76e4b1dd62c01a29043ea057a389e6bc7d89)

--------------------------------------------------------------------------------
3b3282e264 | Robert Vollmert | 2010-03-17 01:21:23 -0500

Fix monster list not updating when toggling targeting.
Fixes issue #1050.

Also fixes some other issues that I may have introduce when
splitting Options.mlist_targeting into Options.mlist_targeting
and crawl_state.mlist_targeting.
(cherry picked from commit a561b8d8881001d0e877023e9bb8794b83d17877)

--------------------------------------------------------------------------------
682daa5f95 | Robert Vollmert | 2010-03-17 01:21:06 -0500

Make mlist targeting work with bottom justified mlist.
Previously, mlist targeting broke if BOTTOM_JUSTIFY_MONSTER_LIST
was defined.
(cherry picked from commit dd1455d4239bdabd0db6703c2dab587b02b1a322)

--------------------------------------------------------------------------------
5bdd5e8c45 | Robert Vollmert | 2010-03-17 01:09:13 -0500

Fix monster list indexing bug.
_mlist_index_to_letter and _mlist_letter_to_index got out of sync when
'e' was added. They're now next to each other which hopefully makes this
less likely to happen in the future. If someone knows a nice way to
combine both into one, that would be even better.
(cherry picked from commit 934a388c504021d1de5bb927b77f3f7cba671771)

--------------------------------------------------------------------------------
193b86d470 | Robert Vollmert | 2010-03-17 00:55:45 -0500

changelog: add wizard mode Lua REPL (cherry picked from commit 
025b866eef3475289fde79304a4abbfa75050638)

--------------------------------------------------------------------------------
d4c6d9a419 | Adam Borowski | 2010-03-17 00:54:31 -0500

Don't list Darts skill in the manual. (cherry picked from commit 
3d74578157b5ee48296b0b371c64cd601c7c4cfd)

--------------------------------------------------------------------------------
654cbeef25 | Adam Borowski | 2010-03-17 00:52:22 -0500

Mention in INSTALL.txt that pkg-config is an absolute requirement for Unix 
tiles builds. (cherry picked from commit 
434f83e1793826e90d82b69f50410171f5f64fd2)

--------------------------------------------------------------------------------
30bc8c58d1 | Adam Borowski | 2010-03-17 00:52:01 -0500

s/class/background/ in a couple of places, one of them the main help menu! 
(cherry picked from commit 73bd216630833b02da753dd3ab39ad4b7e10a069)

--------------------------------------------------------------------------------
b4fccc7772 | Adam Borowski | 2010-03-17 01:59:24 +0100

Don't crash on unknown species in the score file.  Don't trample such scores, 
nor any with unknown fields.

--------------------------------------------------------------------------------
1dfc7ac0dc | Adam Borowski | 2010-03-17 00:32:57 +0100

A tile for Cerebov's crack.  UNTESTED.

--------------------------------------------------------------------------------
597654f496 | Robert Vollmert | 2010-03-16 17:07:31 +0100

Restore TSO healing power gain from killing demons.
Partial revert of b55ef79.

Fixes issue #1080.

--------------------------------------------------------------------------------
5c1c7fb951 | Robert Vollmert | 2010-03-16 14:00:16 +0100

Make tiles maximal FPS configurable.
Option tile_max_fps, defaulting to 60 instead of the previous 30.

--------------------------------------------------------------------------------
39bfd57cd7 | Robert Vollmert | 2010-03-16 13:51:08 +0100

TilesFramework::redraw: comment on slight inaccuracy of fps calculation.

--------------------------------------------------------------------------------
397258dfb3 | Robert Vollmert | 2010-03-16 13:47:16 +0100

TilesFramework::redraw: return instead of delay when not drawing.
Previously, we were pausing the game to limit the rate of calls to
redraw(). Now we just skip redraws that are too close to the previous
one.

Should help with issue #1056.

--------------------------------------------------------------------------------
a8d4ff32a2 | Robert Vollmert | 2010-03-16 13:44:08 +0100

TilesFramework::redraw: Rename min_fps to max_fps.

--------------------------------------------------------------------------------
f26d71f8b9 | Robert Vollmert | 2010-03-16 10:50:53 +0100

test/unique.lua: Unique tracking tests.
This tries to test whether dungeon generation updates you.unique_creatures
correctly.

--------------------------------------------------------------------------------
589e4f6783 | Adam Borowski | 2010-03-15 14:29:31 +0100

"crawl -seed XXX", for repeatable tests.
For normal games started this way we may want to pre-generate all levels
as it was requested by someone; this commit doesn't do this yet.

--------------------------------------------------------------------------------
f1eb9d7bcd | Adam Borowski | 2010-03-15 14:29:30 +0100

Pass optimization flags to the linker.

--------------------------------------------------------------------------------
ab05c9921c | Robert Vollmert | 2010-03-15 11:13:38 +0100

Further input loop changes.
_input now either handles a delay or processes user input, not
both. Thus, updating state in _prep_input (viewwindow, update stashes)
once suffices. Fixes autoexplore hanging in conjunction with
uninterrupting autopickup (gold with current default settings).

--------------------------------------------------------------------------------
4dc73249e5 | Robert Vollmert | 2010-03-14 23:31:39 +0100

Limit vampire drain healing to XL.
Previously, healing was limited to XL against contaminated monsters, but
then they got another unlimited random2(damage_done) against clean monsters.
I assume the intention was to limit both parts. With this change, vampires
can never heal more than 27 hp in one hit, but they're quite likely to
get close to that when stabbing clean monsters.

--------------------------------------------------------------------------------
c07c5df899 | Robert Vollmert | 2010-03-14 23:02:24 +0100

melee_attack: limit damage_done to victim hp.
Fixes vampires healing a guaranteed you.experience_level (double for clean
chunk monster) on successful stabs. They still heal monster maxhp (or double),
which still seems excessive but appears to be as intended.

--------------------------------------------------------------------------------
5d1fef1675 | Robert Vollmert | 2010-03-14 20:59:55 +0100

Move DGL messaging from main.cc to dgl-message.cc.

--------------------------------------------------------------------------------
65a89ee256 | Robert Vollmert | 2010-03-14 20:35:09 +0100

Move starvation handling to food.cc.

--------------------------------------------------------------------------------
c7cce42506 | Robert Vollmert | 2010-03-14 20:28:28 +0100

Clean up input loop a bit.
Reduce number of calls to viewwindow and maybe_update_stashes.

--------------------------------------------------------------------------------
dd408f933a | Robert Vollmert | 2010-03-14 20:03:25 +0100

Add a viewwindow call before reading a command.
This makes sure that the view is up-to-date when prompting for input. In
particular, viewwindow() is called after handle_delay(), so view changes
caused by delays will show.

Fixes issue #1066 (armour with see invis not causing the view to update
on time).

--------------------------------------------------------------------------------
e7082a9e4f | Robert Vollmert | 2010-03-14 19:55:25 +0100

main.cc:_input: Move place info update into separate function.

--------------------------------------------------------------------------------
254d24dd87 | Robert Vollmert | 2010-03-14 19:44:15 +0100

Move some tutorial code from main.cc to tutorial.cc.

--------------------------------------------------------------------------------
899f0742cf | Robert Vollmert | 2010-03-14 12:53:01 +0100

Make tiles.h include player.h explicitly, sice it uses it.
Previously, this only worked out because AppHdr.h includes
tilereg.h, which includes player.h before including tiles.h.

--------------------------------------------------------------------------------
3a32df816e | Robert Vollmert | 2010-03-14 12:01:39 +0100

Link Kirke's humans back into env.mgrid.
Killing Kirke in debug mode caused "floating monster" errors,
and in normal builds, the humans weren't showing up until they
moved.

--------------------------------------------------------------------------------
08d9f5a5f4 | Robert Vollmert | 2010-03-14 12:01:39 +0100

Make env.mgrid update in monster::move_to_pos a bit more robust.
Previously, it was resetting env.mgrid(oldpos) unconditionally.
Now check that oldpos is in bounds and env.mgrid(oldpos) actually
points to the monster.

--------------------------------------------------------------------------------
b14b56fe1c | Jude Brown | 2010-03-14 12:36:34 +1000

Finalise Wizard Laboratories for 0.6.
Solves the following issues:

 * Entrance maps didn't have any tiles set and were therefore quite ugly
   in tiles. This has been resolved by using a theme of magenta to match
   the colour of the portal tile.
 * One map (wizlab_demon) didn't have any tiles at all, nor did it have
   appropriate redescription. I've selected a theme of dark stone tiles,
   light red floor tiles, and used the snake floor to denote areas of
   sigils; I've also included redescriptions: hot floor, sigil-covered
   floor, and so-on.
 * Changed the growing flowers in the Eringya map to be toadstools; we
   don't have a tile for flowers at the minute, so this was problematic.
   It was also never triggering due to a reversed logic in one of the
   checks, so this has been resolved.
 * Fixed the description of the Zonguldrok floor map. The over-ride was
   trying to use "floor" when "Floor" is required. (This is a bug that
   should be resolved, but isn't essential for now.)
 * Loot should now properly be balanced. Some maps which had repetitive
   loot now included some randomised elements as well. I've also reduced
   the amount of loot in the Zonguldrok map; everything else seemed to
   be quite sane and balanced.
 * Finally, all maps now have random monster lists. This means that
   monsters or players casting shadow creatures will no longer be
   greeted with nothing.

There are still a few issues that I'm unhappy with:

 * The Eringya map does not look as good as it could do in tiles.
 * The Cigotuvi transparent walls look out of place and slightly
   strange.
 * The sigils in the Demon map aren't dealt with particularly well.
 * There's no "sea of clouds" tile for the Cloud map, so I haven't done
   redescriptions for it.

And that's it!

--------------------------------------------------------------------------------
939a76e4b1 | Jude Brown | 2010-03-14 11:21:43 +1000

Fix #1064, conjurations in rods being highlighted for Vehumet.
This adds a parameter to the spell highlighting utility that ignores all
flags except for useless and god-forbidden for rods. It has no impact on
normal spell books.

--------------------------------------------------------------------------------
abcfce3602 | David Ploog | 2010-03-13 23:47:44 +0100

Two fixes for entry vaults.

--------------------------------------------------------------------------------
8986be795d | David Ploog | 2010-03-13 23:44:37 +0100

Add Neil's new Vestibule of Hell! (Mu)

--------------------------------------------------------------------------------
dab2513391 | Robert Vollmert | 2010-03-13 21:37:52 +0100

Improve level annotation prompts.
The annotation line reader now uses msgwin_get_line, so the annotation
will be echoed nicely. Also make the prompts more compact, and clarify
the '!' warning hint.

--------------------------------------------------------------------------------
177374589c | Johanna Ploog | 2010-03-13 20:02:14 +0100

Fix #1053: save macro prompts when changing levels.

--------------------------------------------------------------------------------
5cd127b562 | Robert Vollmert | 2010-03-13 15:48:22 +0100

Fix player-equip asserts when dealing with rings.

--------------------------------------------------------------------------------
edeb9915c0 | Robert Vollmert | 2010-03-13 14:47:09 +0100

Replace many uses of you_tran_can_wear.

--------------------------------------------------------------------------------
d401d15621 | Robert Vollmert | 2010-03-13 14:47:08 +0100

Default actor::slot_item argument include_melded to false.

--------------------------------------------------------------------------------
99e780fbda | Robert Vollmert | 2010-03-13 14:47:08 +0100

Update melding code around item_is_equipped.

--------------------------------------------------------------------------------
a132e05fa8 | Robert Vollmert | 2010-03-13 14:47:08 +0100

Convert player_wearing_slot and player::slot_item to use you.melded.

--------------------------------------------------------------------------------
9a7f85e414 | Robert Vollmert | 2010-03-13 14:47:08 +0100

Concentrate equipping/unequipping in player-equip.cc.
The various equipping effects should eventually move there; for now,
they should only be called throuh (un)equip_item.

--------------------------------------------------------------------------------
ebad4a412b | Robert Vollmert | 2010-03-13 14:47:08 +0100

New field player::melded.
This is an array of booleans that say whether the corresponding
equipment slot is melded.

Bump major version.

--------------------------------------------------------------------------------
e2f331b0bf | Robert Vollmert | 2010-03-13 14:47:07 +0100

Revert "Fix permanent stat loss for Che worshippers when transforms cause 
ponderous items to meld (syllogism)."
This reverts commit f9a38fc311ee9ae24afc2c10379a4385bffd3b23.

--------------------------------------------------------------------------------
20d9534777 | Robert Vollmert | 2010-03-13 14:47:07 +0100

Revert "Fix missed unwield effects when transforming."
This reverts commit 71fbb4f3cbdbdaa95a10a50203cc19cd1ea58316.

--------------------------------------------------------------------------------
81e01a12a7 | Cryptic | 2010-03-12 21:27:27 -0800

DS-New-Mutations
Stripped out all old scales, pending a rewrite for generating random
scales for random scale mutations. Implemented the new DS scale
mutations, which will (eventually, but not presently) be exclusive
to DS.

--------------------------------------------------------------------------------
82c02e4614 | David Ploog | 2010-03-13 04:55:35 +0100

Inspection of entry.des.
Removed a few vaults and improved many others. Thanks to modern tools
like lua and subvaults, many old vaults can be improved upon. More
inspection would be good.

--------------------------------------------------------------------------------
71fbb4f3cb | Robert Vollmert | 2010-03-12 22:36:46 +0100

Fix missed unwield effects when transforming.

--------------------------------------------------------------------------------
a561b8d888 | Robert Vollmert | 2010-03-12 13:13:22 +0100

Fix monster list not updating when toggling targeting.
Fixes issue #1050.

Also fixes some other issues that I may have introduce when
splitting Options.mlist_targeting into Options.mlist_targeting
and crawl_state.mlist_targeting.

--------------------------------------------------------------------------------
dd1455d423 | Robert Vollmert | 2010-03-12 13:13:22 +0100

Make mlist targeting work with bottom justified mlist.
Previously, mlist targeting broke if BOTTOM_JUSTIFY_MONSTER_LIST
was defined.

--------------------------------------------------------------------------------
e93d0ce7fc | Robert Vollmert | 2010-03-12 13:13:22 +0100

Undefine BOTTOM_JUSTIFY_MONSTER_LIST.
This was accidentally defined in the #ifdef/#if cleanup commit (eac16624).

--------------------------------------------------------------------------------
934a388c50 | Robert Vollmert | 2010-03-12 13:13:21 +0100

Fix monster list indexing bug.
_mlist_index_to_letter and _mlist_letter_to_index got out of sync when
'e' was added. They're now next to each other which hopefully makes this
less likely to happen in the future. If someone knows a nice way to
combine both into one, that would be even better.

--------------------------------------------------------------------------------
7c32087220 | Charles Otto | 2010-03-11 21:30:39 -0500

Adjust piety costs for Fedhas' spores
Remove the upfront piety cost for Fedhas' reproduction ability,
increase the piety cost for a level being cleared of (friendly)
ballistos.

Reproduction has an opportunity cost of (expected) 1.4 piety per corpse
so there is still a cost to use it, and the higher cost for a level
being cleared of ballistos may be a more interesting way to structure
things.

--------------------------------------------------------------------------------
869f80f3f4 | Charles Otto | 2010-03-11 21:20:49 -0500

Adjust Fedhas ability food costs
Give sunlight a light food cost, bump up the food costs on spores and
rain.

--------------------------------------------------------------------------------
203e7c7220 | Charles Otto | 2010-03-11 21:13:38 -0500

Change some Fedhas religion titles

--------------------------------------------------------------------------------
60df31737c | Charles Otto | 2010-03-11 20:50:12 -0500

Fix the remaining case of enslaved spores producing friendly ballistos
Revert 8dbcc4db and address sourceforge issue 2436051 (Okawaru giving
piety gain for killing an enslaved monster, then immediately giving
penance for attacking an ally) by only doing the behavior change event
for a monster getting hit by the player after the monster has had a
chance to die to the attack.

The method used in 8dbcc4db was to store the attitude of the monster at
the beginning of the attack, counting hostile monsters with ENCH_CHARM
as ATT_FRIENDLY. This led to enslaved giant spores killed by the
player's melee attack creating permanently friendly ballistos in their
explosion. Rather than partially tracking the defending monster's
initial state I simply put the behavior change after the monster has a
chance to die.

--------------------------------------------------------------------------------
4cdaf99143 | Robert Vollmert | 2010-03-11 17:02:01 +0100

Fix monsters not using doors.
Previously, monsters would only open doors if they were straight on
the way to their target.

E.g.:

@#g
.+.

g won't open the door if its target is @. This can be reproduced for
example as follows (eg Sprint 1 start):

.1#3.
..+.2
..###

Stand at one, open door, place monster at 2, close door.
The monster will move to 3 and wait there until you open
the door.

I'm not sure why monsters didn't fall back to pathfinding if they
couldn't get to you directly.

These changes also unify some monster traversability checks between
mon-pathfind and mon-act.

--------------------------------------------------------------------------------
f4f0cf5d0b | Adam Borowski | 2010-03-11 13:57:56 +0100

Let people catch a glance at Cerebov's loot.
There's no tile yet.

--------------------------------------------------------------------------------
d21c3a4454 | Adam Borowski | 2010-03-11 13:57:56 +0100

A missing s/trees/tree/ that escaped my sed.

--------------------------------------------------------------------------------
025b866eef | Robert Vollmert | 2010-03-11 13:41:08 +0100

changelog: add wizard mode Lua REPL

--------------------------------------------------------------------------------
9b85c6db61 | Robert Vollmert | 2010-03-11 13:37:36 +0100

Get rid of some more $ EOL.

--------------------------------------------------------------------------------
6e8bdc215d | Robert Vollmert | 2010-03-11 13:23:20 +0100

Get rid of $ to EOL munging.
Hope I didn't miss any.

--------------------------------------------------------------------------------
a35bce8c29 | Robert Vollmert | 2010-03-11 13:15:30 +0100

Remove EOL.
We were only setting it to "\r\n" on DOS, but according to commens
in #1045, DOS will translate "\n" to "\r\n" automatically for
text output.

Also, the DOS EOL handling was likely broken anyway looking at how
a lot of the linebreaking code only considered "\n".

Fixes issue #1045.

--------------------------------------------------------------------------------
17940946e0 | Robert Vollmert | 2010-03-11 13:14:51 +0100

Fix unescaped printf % uses/workarounds.

--------------------------------------------------------------------------------
3d74578157 | Adam Borowski | 2010-03-11 13:06:02 +0100

Don't list Darts skill in the manual.

--------------------------------------------------------------------------------
381a63b150 | Adam Borowski | 2010-03-11 12:53:54 +0100

Fix doubled newlines -- mpr() shouldn't be given EOLs.

--------------------------------------------------------------------------------
22df51d7af | Adam Borowski | 2010-03-11 12:43:29 +0100

Tone down acquirement of rare items somewhat.
They get 1/2 weight, as opposed to 1/1 of yesterday or 1/5 before.
God acquirement is unchanged, at 1/5.

Since rare items tend to have best stats, they still appear a lot
as non-divine acquirement is biased towards good stuff.

--------------------------------------------------------------------------------
1e8095ba07 | Robert Vollmert | 2010-03-11 11:09:40 +0100

Remove FSOP_CURSOR and formatted_string::cgotoxy.
It's not used anymore, and a lot of code doesn't even deal with it
properly.

Also fix what seemed to be a bug in FSOP_COLOUR handling in
formatted_string::substr.

--------------------------------------------------------------------------------
080c5b0c3e | Robert Vollmert | 2010-03-11 11:09:40 +0100

Don't use formatted_string::cgotoxy in spell book display.

--------------------------------------------------------------------------------
45e47af3b9 | Robert Vollmert | 2010-03-11 11:09:40 +0100

Remove obsolete formatted_string::movexy.

--------------------------------------------------------------------------------
ae14e36f57 | Robert Vollmert | 2010-03-11 11:09:40 +0100

Replace formatted_string::parse_block by display_tagged_block.
The latter invokes parse_string_to_multiple and displays directly.
This fixes line wrapping issues with full lines: on an 80 column
terminal, an 80 character line could cause the cursor to wrap
to the next line, causing extra blank lines due to the manual
line feed in formatted_string::parse_block.

--------------------------------------------------------------------------------
25d77ffbc1 | Charles Otto | 2010-03-10 23:43:59 -0500

Partially address enslaved spores producing friendly ballistos
SAME_ATTITUDE includes the effects of behavior modifying enchantments
(charm etc), leading to enslaved spores creating permanently friendly
ballistomycetes.

This commit does not fix all cases of friendly ballistos from enslaved
spores due to some sketchy behavior in fight.cc which I will address
later.

--------------------------------------------------------------------------------
daf62737cb | Adam Borowski | 2010-03-11 02:29:54 +0100

Significantly improve non-god weapon acquirement.
It probably gives way too much exec axec and triple/double swords,
but take a look and decide.  If it makes Okawaru and Trog irrelevant,
then hey, I'm not going to cry.

--------------------------------------------------------------------------------
d1e13ffe71 | Adam Borowski | 2010-03-11 01:53:35 +0100

Improve non-god armour acquirement.

--------------------------------------------------------------------------------
f1c78b1edc | Adam Borowski | 2010-03-11 01:49:51 +0100

Lua uses -- not # for comments.

--------------------------------------------------------------------------------
ff0a45232f | Adam Borowski | 2010-03-11 01:03:09 +0100

Don't let trapdoor spiders escape clouds by submerging while in sight. They 
will now submerge only if they can't see their foe.
Also, drop some invalid comments.

--------------------------------------------------------------------------------
7ddcec03c6 | Robert Vollmert | 2010-03-11 00:43:27 +0100

Remove travel_stop_message.
All of this can now be done using runrest_stop_message and
runrest.lua.

I haven't replaced the call to crawl.add_travel_stopper
in lm_tmsg.lua yet because non of the portal vaults
seem to actually require it.

travel_stop_message is aliased to runrest_stop_message for now.

--------------------------------------------------------------------------------
14834be140 | Robert Vollmert | 2010-03-11 00:34:50 +0100

Update runrest documentation.
Heavily based on the travel_stop_message documentation.

--------------------------------------------------------------------------------
29fc31328c | Robert Vollmert | 2010-03-11 00:34:34 +0100

Convert travel_stoppers.txt to use runrest.
Rename it to runrest_messages.txt, move the runrest_ignore_message
entries from init.txt there.

Also add lines to ignore Jiyva's sacrifice messages.

--------------------------------------------------------------------------------
6f2870adf2 | Robert Vollmert | 2010-03-11 00:34:33 +0100

Issue message interrupts for more channels.
Only diagnostics and equipment are now filtered.

--------------------------------------------------------------------------------
19deac8d31 | Robert Vollmert | 2010-03-11 00:34:33 +0100

Generalize runrest.lua to allow stopping on messages.
This works using runrest_stop_message, which behaves a lot
like travel_stop_message. As with runrest_ignore_message,
earlier matches (among both ignore and stop) override
later matches.

--------------------------------------------------------------------------------
69e59028b7 | Robert Vollmert | 2010-03-11 00:34:33 +0100

delay.cc: Move sanctuary check into _should_stop_activity.
Previously, sanctuary disallowed any activity interrupts, which seems
quite wrong.

--------------------------------------------------------------------------------
5151199fa9 | Robert Vollmert | 2010-03-11 00:34:33 +0100

Remove ch_stop_run.
It was already commented as obsolete in 2006.

c_interrupt_activity can do anything that ch_stop_run could do.

--------------------------------------------------------------------------------
9180ea4265 | Robert Vollmert | 2010-03-11 00:34:33 +0100

Use dprf in interrupt_activity.

--------------------------------------------------------------------------------
9f20fdce9a | Robert Vollmert | 2010-03-11 00:34:33 +0100

Convert _userdef_interrupt_activity to maybe_bool.

--------------------------------------------------------------------------------
87e15d95a4 | Robert Vollmert | 2010-03-11 00:34:32 +0100

Add lua binding for printing to stderr.
This is useful for debugging lua scripts like the interrupt handlers,
which can't easily use mpr without causing a lot of pain.

--------------------------------------------------------------------------------
434f83e179 | Adam Borowski | 2010-03-10 23:25:26 +0100

Mention in INSTALL.txt that pkg-config is an absolute requirement for Unix 
tiles builds.

--------------------------------------------------------------------------------
14640dfe85 | Adam Borowski | 2010-03-10 23:14:34 +0100

Make deck price depend on rarity.  Lower the price of low-end decks, no one 
ever buys them in shops -- well, no one buys high-end ones too...

--------------------------------------------------------------------------------
73bd216630 | Adam Borowski | 2010-03-10 21:23:32 +0100

s/class/background/ in a couple of places, one of them the main help menu!

--------------------------------------------------------------------------------
a79bbad8a2 | Robert Vollmert | 2010-03-10 14:06:17 +0100

Allow repeating userfunctions.
As with redoing, this may cause problems. Let me know.

--------------------------------------------------------------------------------
43d4dacb04 | Robert Vollmert | 2010-03-10 14:06:17 +0100

Allow redoing userfunctions.
I imagine this might cause issues.

--------------------------------------------------------------------------------
5337e7e8dc | Robert Vollmert | 2010-03-10 14:06:17 +0100

Clean up command repeating.
This fixes some asserts relating to repeating macros and
simplifies the whole thing.

It may also easily break some things: please check whether things
work as expected.

--------------------------------------------------------------------------------
4c4b9d7e8c | Adam Borowski | 2010-03-10 02:18:04 +0100

Fix misbehaviours and crashes caused by redefining monster glyphs.

--------------------------------------------------------------------------------
76e26689ba | Adam Borowski | 2010-03-10 02:18:04 +0100

Fix some inappropiate monster miscast messages -- usually used by chaos.

--------------------------------------------------------------------------------
c57a8331e5 | Adam Borowski | 2010-03-10 02:18:04 +0100

Don't haste, slow, paralyze or petrify unmoving plants.

--------------------------------------------------------------------------------
0751d53831 | David Lawrence Ramsey | 2010-03-09 17:19:53 -0600

Fix apparent cut-and-paste error.

--------------------------------------------------------------------------------
573b2d8979 | Adam Borowski | 2010-03-09 23:57:15 +0100

Make the enums for trees use singular form, just like all other features.

--------------------------------------------------------------------------------
5d9cae2769 | Adam Borowski | 2010-03-09 23:56:22 +0100

Use singular "tree" instead of "trees", some messages don't work well with 
plurals.

--------------------------------------------------------------------------------
b2597cb504 | Adam Borowski | 2010-03-09 17:54:43 +0100

Track the source of poison, for death messages.

--------------------------------------------------------------------------------
77b6525cd9 | Robert Vollmert | 2010-03-09 09:33:18 -0600

Add commented force_more for zapping empty wands.
Also add some explanatory comments around force_more.

Fixes issue #269.
(cherry picked from commit 9e506bd21f4ca4368e397474aea96e6985d945de)

--------------------------------------------------------------------------------
8f96df4ff0 | Johanna Ploog | 2010-03-09 09:33:10 -0600

Add new website to the changelog because why not? (cherry picked from commit 
e2cf5e1147e997f8835d090d0201d8a841715e49)

--------------------------------------------------------------------------------
01ee71d19f | Robert Vollmert | 2010-03-09 13:32:41 +0100

Apply macros to input buffer consistently.
Previously, if _getch_mul() read a lot of keys, macro expansion
was only done once at the start, and not for later keys.

Fixes SF issue 2894488.

--------------------------------------------------------------------------------
2aa5da87db | Robert Vollmert | 2010-03-09 13:32:32 +0100

macro.cc: Correct some commands; formatting.

--------------------------------------------------------------------------------
9e506bd21f | Robert Vollmert | 2010-03-09 12:07:47 +0100

Add commented force_more for zapping empty wands.
Also add some explanatory comments around force_more.

Fixes issue #269.

--------------------------------------------------------------------------------
e2cf5e1147 | Johanna Ploog | 2010-03-09 10:21:37 +0100

Add new website to the changelog because why not?

--------------------------------------------------------------------------------
f80ebec096 | Adam Borowski | 2010-03-08 23:27:58 -0600

Change earth elementals from brown/light red to brown/green.
The old version conflicted with fire.
(cherry picked from commit ee169eaaf285a644b548f2bc8c1973e70357b4c1)

--------------------------------------------------------------------------------
5bb9ed22dc | Robert Vollmert | 2010-03-08 23:27:46 -0600

Shorten "no damage" messages a bit (doy, greensnark).
Reads better, and occasionally allows merging two into one line with
msg_condense_short.

_The rat bites you but does no damage. The goblin hits you but does no damage.
(cherry picked from commit cc65afe47908924f704803ada408e645ece3e6ae)

--------------------------------------------------------------------------------
6330f54317 | Robert Vollmert | 2010-03-08 23:27:34 -0600

Only join short messages if both or neither ends in punctuation.
This prevents a number of ugly merges, e.g.
    e - a ring of protection from cold; You found a trap!
    This is a scroll of identify! o - a ring of see invisible (left hand)

Please report other inappropriate merges on the wiki:
    dcss:feedback:interface:messagewindow
(cherry picked from commit 2176ef85fefec1930715b6b77db21fb53aaa6d3b)

--------------------------------------------------------------------------------
a387650829 | Robert Vollmert | 2010-03-08 23:26:54 -0600

Make get_mons_glyph return real colour by default.
This is a ugly (colour handling is in general).

Fixes elementally coloured monsters showing up wrongly in the
monster list and some other places.
(cherry picked from commit ddf5071a81abba573b382422f115d6a35555ca25)

--------------------------------------------------------------------------------
055a9da3c7 | Robert Vollmert | 2010-03-08 23:26:38 -0600

Restore forget_map minimap update.
This should have been in the previous commit, sorry. Without,
forget_map() doesn't clear the minimap immediately.
(cherry picked from commit 0fcc8160b5a79b5b92b2d40bcc0d44eea22f684e)

--------------------------------------------------------------------------------
7452b34d2b | Robert Vollmert | 2010-03-08 23:26:21 -0600

Simplify tiles code in forget_map.
Fixes issue #976.

This may have been necessary at some point, but was apparently obsoleted
by changes to the view and mapping code.
(cherry picked from commit 4e9f819f47c63c024775c1c8aea9180853ce1e51)

--------------------------------------------------------------------------------
e967390e68 | Adam Borowski | 2010-03-08 23:26:02 -0600

Don't lie that Ozocubu's Armour "protects from cold". (cherry picked from 
commit 933fa59c0d73b14a80a8237cef54d9329cb57778)

--------------------------------------------------------------------------------
375267610c | Adam Borowski | 2010-03-08 23:25:45 -0600

Mention that Poison Weapon doesn't work on blunt stuff. (cherry picked from 
commit 71bc66cc192677f00c062c1221c3025931ccc30d)

--------------------------------------------------------------------------------
cdf7a90597 | Adam Borowski | 2010-03-08 23:25:34 -0600

Fix IOODs disappearing above submerged monsters. (cherry picked from commit 
40663473c6f8bc4ce5cd0cb432b594458d93bda1)

--------------------------------------------------------------------------------
405c6c3bed | Robert Vollmert | 2010-03-08 23:25:00 -0600

Fix Jiyva prayed_for check in do_god_gift.
This reverts commit 30fb3bd0042e35407c49dd778b26ccc5994575a8.

This was in master before as part of 77e9e8b9, but should have
been part of 4c29ac8d.

Will fix Jiyva worshippers not getting any mutations in 0.6.
Please cherry-pick!
(cherry picked from commit 60b9351a1e2500dc7090b41ee5b44eb4e4218941)

--------------------------------------------------------------------------------
c2ecd34917 | Robert Vollmert | 2010-03-08 23:24:25 -0600

Add ability to ^f and set annotations for fruit via Lua.
This reimplements a2af13b2 the way most other such annotations
are handled, using the Lua wrapper food.is_fruit in stash.lua.
Old commit message:

  Make food items considered fruit for Fedhas purposes show up when
  searching for 'fruit' via ctrl-f. Also add the ability to
  auto-inscribe fruit (autoinscribe = fruit:!e for example).
(cherry picked from commit a5304f29b2e37380ec3c2da0584f35549ee4c25c)

--------------------------------------------------------------------------------
b14b32bdee | Robert Vollmert | 2010-03-08 23:24:16 -0600

Add lua wrapper for is_fruit.
I went with food.isfruit next to food.ischunk; it would also
have fit into the item wrapper.
(cherry picked from commit 470eb601b659bdf6fba7f66d98e453af82300b97)

--------------------------------------------------------------------------------
8d46eec8a0 | Charles Otto | 2010-03-08 23:24:10 -0600

Add a commented out line autoinscribing !e on fruit (cherry picked from commit 
86cf0da3ecec2c0a7603fc595ca65310136bdcbf)

--------------------------------------------------------------------------------
e18993eaa3 | Robert Vollmert | 2010-03-08 23:23:13 -0600

Set spellcasting flags for polymorphed monsters.
These were being overwritten with the source monsters' flags,
so polymorphing from non-spellcaster to spellcaster never
allowed the target to cast spells.

Fixes issue #1026.
(cherry picked from commit 726e7eae79d3d00e83c702be9a44c6b46977fea8)

--------------------------------------------------------------------------------
a627ac4e29 | Adam Borowski | 2010-03-09 03:40:32 +0100

Nerf the stone of earth elementals.
It works same as before if you try to summon just one, but for any extra,
there's a penalty of 5 Earth Magic skill.

A similar nerf should probably be applied to the fan and brazier.

--------------------------------------------------------------------------------
ee169eaaf2 | Adam Borowski | 2010-03-09 02:36:28 +0100

Change earth elementals from brown/light red to brown/green.
The old version conflicted with fire.

--------------------------------------------------------------------------------
cc65afe479 | Robert Vollmert | 2010-03-08 20:42:44 +0100

Shorten "no damage" messages a bit (doy, greensnark).
Reads better, and occasionally allows merging two into one line with
msg_condense_short.

_The rat bites you but does no damage. The goblin hits you but does no damage.

--------------------------------------------------------------------------------
2176ef85fe | Robert Vollmert | 2010-03-08 20:23:39 +0100

Only join short messages if both or neither ends in punctuation.
This prevents a number of ugly merges, e.g.
    e - a ring of protection from cold; You found a trap!
    This is a scroll of identify! o - a ring of see invisible (left hand)

Please report other inappropriate merges on the wiki:
    dcss:feedback:interface:messagewindow

--------------------------------------------------------------------------------
79cfc3cb11 | Adam Borowski | 2010-03-08 17:40:15 +0100

Fix acquirement giving nearly solely 2-handers to those without a great Shields 
apt.

--------------------------------------------------------------------------------
ddf5071a81 | Robert Vollmert | 2010-03-08 16:13:04 +0100

Make get_mons_glyph return real colour by default.
This is a ugly (colour handling is in general).

Fixes elementally coloured monsters showing up wrongly in the
monster list and some other places.

--------------------------------------------------------------------------------
0fcc8160b5 | Robert Vollmert | 2010-03-08 16:13:04 +0100

Restore forget_map minimap update.
This should have been in the previous commit, sorry. Without,
forget_map() doesn't clear the minimap immediately.

--------------------------------------------------------------------------------
2c0449dd67 | Adam Borowski | 2010-03-08 15:09:51 +0100

Lower the levels of Poisonous and Freezing Cloud. [Mantis 166]

--------------------------------------------------------------------------------
4e9f819f47 | Robert Vollmert | 2010-03-08 14:52:39 +0100

Simplify tiles code in forget_map.
Fixes issue #976.

This may have been necessary at some point, but was apparently obsoleted
by changes to the view and mapping code.

--------------------------------------------------------------------------------
933fa59c0d | Adam Borowski | 2010-03-08 13:54:58 +0100

Don't lie that Ozocubu's Armour "protects from cold".

--------------------------------------------------------------------------------
71bc66cc19 | Adam Borowski | 2010-03-08 13:48:42 +0100

Mention that Poison Weapon doesn't work on blunt stuff.

--------------------------------------------------------------------------------
40663473c6 | Adam Borowski | 2010-03-08 12:57:48 +0100

Fix IOODs disappearing above submerged monsters.

--------------------------------------------------------------------------------
60b9351a1e | Robert Vollmert | 2010-03-08 11:12:55 +0100

Fix Jiyva prayed_for check in do_god_gift.
This reverts commit 30fb3bd0042e35407c49dd778b26ccc5994575a8.

This was in master before as part of 77e9e8b9, but should have
been part of 4c29ac8d.

Will fix Jiyva worshippers not getting any mutations in 0.6.
Please cherry-pick!

--------------------------------------------------------------------------------
30fb3bd004 | Robert Vollmert | 2010-03-08 11:09:51 +0100

Revert Jiyva god gift commit that slipped into a different one.
77e9e8b9 (wizard mode piety display) got a hunk that should have
been in 4c29ac8d (Jiyva mutations as god gifts). Will reapply
as a separate pickable commit.

--------------------------------------------------------------------------------
a5304f29b2 | Robert Vollmert | 2010-03-08 10:53:10 +0100

Add ability to ^f and set annotations for fruit via Lua.
This reimplements a2af13b2 the way most other such annotations
are handled, using the Lua wrapper food.is_fruit in stash.lua.
Old commit message:

  Make food items considered fruit for Fedhas purposes show up when
  searching for 'fruit' via ctrl-f. Also add the ability to
  auto-inscribe fruit (autoinscribe = fruit:!e for example).

--------------------------------------------------------------------------------
aa06484de6 | Robert Vollmert | 2010-03-08 10:53:10 +0100

Revert "Add ability to ^f and set annotations for fruit"
This reverts commit a2af13b26dbad105493aedff6277b383f3ec8a8d.

Will reimplement using stash.lua.

--------------------------------------------------------------------------------
470eb601b6 | Robert Vollmert | 2010-03-08 10:49:12 +0100

Add lua wrapper for is_fruit.
I went with food.isfruit next to food.ischunk; it would also
have fit into the item wrapper.

--------------------------------------------------------------------------------
86cf0da3ec | Charles Otto | 2010-03-07 21:51:42 -0500

Add a commented out line autoinscribing !e on fruit

--------------------------------------------------------------------------------
a2af13b26d | Charles Otto | 2010-03-07 21:45:11 -0500

Add ability to ^f and set annotations for fruit
Make food items considered fruit for Fedhas purposes show up when
searching for 'fruit' via ctrl-f. Also add the ability to
auto-inscribe fruit (autoinscribe = fruit:!e for example).

--------------------------------------------------------------------------------
78a7561c90 | Robert Vollmert | 2010-03-08 01:12:37 +0100

Show "(runed)" for quivered ammo with unknown brand (due).
This was in before, but I removed it for false consistency
with weapons. But wielded weapons are always brand-id'd
in contrast with ammo.

--------------------------------------------------------------------------------
726e7eae79 | Robert Vollmert | 2010-03-08 00:55:51 +0100

Set spellcasting flags for polymorphed monsters.
These were being overwritten with the source monsters' flags,
so polymorphing from non-spellcaster to spellcaster never
allowed the target to cast spells.

Fixes issue #1026.

--------------------------------------------------------------------------------
267dc185c1 | Robert Vollmert | 2010-03-07 17:17:56 -0600

Don't place clouds when moving monsters away.
Crawl occasionally moves monsters out of a cell by force, e.g.
when you enter a new level and the monster is on the stairs,
by calling monster_teleport. In these cases (detected by
parameter silent == true), don't place clouds of translocational
energy. Fixes issue #1024.
(cherry picked from commit 6a06d3829f557bab4b69e228c59104856e696082)

--------------------------------------------------------------------------------
6a06d3829f | Robert Vollmert | 2010-03-08 00:14:25 +0100

Don't place clouds when moving monsters away.
Crawl occasionally moves monsters out of a cell by force, e.g.
when you enter a new level and the monster is on the stairs,
by calling monster_teleport. In these cases (detected by
parameter silent == true), don't place clouds of translocational
energy. Fixes issue #1024.

--------------------------------------------------------------------------------
9570809a4b | Jesse Luehrs | 2010-03-07 15:46:59 -0600

Revert "Experimentally use the piety pool for large piety gains (Jiyva, Ely)."
This reverts commit e020215c2eb41dda302d86ac580b4b40e46377ca.

by says that this is somewhat problematic and no longer necessary for
jiyva

--------------------------------------------------------------------------------
7995a8dbcf | Johanna Ploog | 2010-03-07 15:20:44 -0600

Add comment about the interaction between Tiles and the IBM charset. (cherry 
picked from commit a27917b2417457d8131926c7229d274710c94413)

--------------------------------------------------------------------------------
77c17fcdbd | David Lawrence Ramsey | 2010-03-07 15:20:44 -0600

Fix typo. (cherry picked from commit 72e3285ebce888ced65e2be55a56663b346be77a)

--------------------------------------------------------------------------------
1db3079687 | Johanna Ploog | 2010-03-07 15:20:43 -0600

Add a hack to make the book glyph show up correctly in Tiles.
Specifically override the IBM book glyph with '+' in Tiles builds.
Fixes #719 (again).
(cherry picked from commit fa6140b95d90e1ad4942b84a5522d1000f1a3426)

--------------------------------------------------------------------------------
de49914f54 | Johanna Ploog | 2010-03-07 15:20:43 -0600

Revert "Use CSET_ASCII for tiles builds."
This reverts commit a6f8ba18ae2fb325e862c02f0443d435e8a07b45.

The tiles code expects IBM characters for evaluating glyphs in
magic mapping. This revert fixes #965.

Maybe we should define a charset specifically for Tiles magic mapping,
and disallow modification of any glyphs for Tiles.
(cherry picked from commit 4df93190ae3395ad0920d37105dab146a11891cb)

--------------------------------------------------------------------------------
0a12496ba5 | Charles Otto | 2010-03-07 15:20:43 -0600

Fix crash when drawing the dance card (1022)
Fix a crash when drawing the dance card. Sometimes (not entirely sure
why this didn't happen all the time), monster creation would attempt to
dereference a dancing weapons 'ghost_demon' before it was allocated.
(cherry picked from commit 2cc6adc088931535d5bbdccfd90b8688869a92b3)

--------------------------------------------------------------------------------
6de6f4ecfe | Robert Vollmert | 2010-03-07 15:20:43 -0600

Fix runaway EV, try 3.
This is a mix of the previous two patches.

First we step down Dex, but not as harshly as before. Then we
step down total (pre-bonus) EV above 30.

Compared to the previous change, this makes dexterity more
significant as long as you're not close to mastering
dodging skill. It also hits really high EV values a bit harder.
The only ones to lose a couple of points of evasion vs. 0.5 are
low-dex high-dodging small characters. I think that's fine.

0.5/0.6/previous fix/this

dodge:        0           6          12          20          27
race: ogre
dex=10:  8/ 9/ 9/ 9 11/12/12/12 14/14/14/14 17/18/18/18 21/21/21/21
dex=16:  8/ 9/ 9/ 9 12/13/13/13 16/18/18/18 21/23/23/23 26/28/28/28
dex=18:  8/ 9/ 9/ 9 12/14/13/14 16/19/18/19 21/25/24/25 26/31/30/31
dex=24:  8/ 9/ 9/ 9 12/15/14/15 16/22/20/22 21/31/27/31 26/38/33/34
dex=30:  8/ 9/ 9/ 9 12/17/15/16 16/25/20/24 21/36/28/32 26/46/35/36
dex=40:  8/ 9/ 9/ 9 12/20/15/18 16/31/22/26 21/45/31/34 26/58/38/39
dex=50:  8/ 9/ 9/ 9 12/22/16/18 16/36/22/28 21/54/32/36 26/70/39/41
race: normal
dex=10: 10/11/11/11 13/14/14/14 16/17/17/17 20/21/21/21 23/24/24/24
dex=16: 10/11/11/11 14/16/16/16 19/20/20/20 25/27/27/27 31/32/32/31
dex=18: 10/11/11/11 14/16/16/16 19/22/21/22 25/29/28/29 31/35/34/33
dex=24: 10/11/11/11 14/18/17/18 19/25/23/25 25/35/31/33 31/43/38/37
dex=30: 10/11/11/11 14/20/17/19 19/29/23/27 25/41/32/34 31/51/39/39
dex=40: 10/11/11/11 14/23/18/20 19/35/25/30 25/51/35/37 31/65/43/42
dex=50: 10/11/11/11 14/26/18/21 19/41/26/31 25/61/36/38 31/78/45/44
race: spriggan
dex=10: 14/15/15/15 17/19/19/19 21/22/22/22 25/27/27/27 29/32/32/31
dex=16: 14/15/15/15 19/21/21/21 25/27/27/27 32/35/35/33 38/42/42/36
dex=18: 14/15/15/15 20/22/21/22 26/28/28/28 34/37/36/34 41/45/44/38
dex=24: 14/15/15/15 20/24/22/24 26/33/30/32 34/45/40/38 41/55/49/43
dex=30: 14/15/15/15 20/26/23/25 26/37/31/33 34/52/41/40 41/66/50/45
dex=40: 14/15/15/15 20/30/24/27 26/45/33/35 34/65/45/43 41/82/55/50
dex=50: 14/15/15/15 20/34/24/28 26/52/34/36 34/77/46/45 41/99/57/51
(cherry picked from commit c89e5b5898fbfa2858325a92dc6e94001ac291ca)

--------------------------------------------------------------------------------
91390500d8 | Robert Vollmert | 2010-03-07 15:20:43 -0600

Fix switched parameters in dex stepdown.
EV comparison: 0.5/pre-fix/post-fix (kilobyte)

dodge:      0        6       12       20       27
race: ogre
dex=10:  8/ 9/ 9 11/12/12 14/14/14 17/18/18 21/21/21
dex=16:  8/ 9/ 9 12/13/13 16/18/18 21/23/23 26/28/28
dex=18:  8/ 9/ 9 12/14/13 16/19/18 21/25/24 26/31/30
dex=24:  8/ 9/ 9 12/15/14 16/22/20 21/31/27 26/38/33
dex=30:  8/ 9/ 9 12/17/15 16/25/20 21/36/28 26/46/35
race: normal
dex=10: 10/11/11 13/14/14 16/17/17 20/21/21 23/24/24
dex=16: 10/11/11 14/16/16 19/20/20 25/27/27 31/32/32
dex=18: 10/11/11 14/16/16 19/22/21 25/29/28 31/35/34
dex=24: 10/11/11 14/18/17 19/25/23 25/35/31 31/43/38
dex=30: 10/11/11 14/20/17 19/29/23 25/41/32 31/51/39
race: spriggan
dex=10: 14/15/15 17/19/19 21/22/22 25/27/27 29/32/32
dex=16: 14/15/15 19/21/21 25/27/27 32/35/35 38/42/42
dex=18: 14/15/15 20/22/21 26/28/28 34/37/36 41/45/44
dex=24: 14/15/15 20/24/22 26/33/30 34/45/40 41/55/49
dex=30: 14/15/15 20/26/23 26/37/31 34/52/41 41/66/50
(cherry picked from commit 6c30ad3ca5cff8766ffa1b8410fce3962f2af239)

--------------------------------------------------------------------------------
45b0a9e122 | Robert Vollmert | 2010-03-07 15:20:42 -0600

Fix runaway EV, try 2 (kilobyte, syllogism).
Instead of stepping down all of EV which hit dodging skill too hard
(27 dodging characters with mediocre dex got significantly lower EV
than in 0.5 with previous try), just step down the dex value that
goes into the formula.
(cherry picked from commit 95f141d167a2266aa26f627b346f5ac0040f54f7)

--------------------------------------------------------------------------------
9143f38333 | Robert Vollmert | 2010-03-07 15:20:42 -0600

Don't show cosmetic flags when brand is known.
Cosmetic = runed, embroidered, etc.

This applies to all of weapon, armour and missiles (should have no
effect for armour).

Fixxes issue #1021.
(cherry picked from commit b36d191a22d3c90cf06381ffee620688c4f8e2eb)

--------------------------------------------------------------------------------
b54be9af9e | Robert Vollmert | 2010-03-07 15:20:42 -0600

Only note interesting features in mappable areas.
Fixes issue #1023.
(cherry picked from commit 4f9dca31e8dfdf80528fd670940c32338a6614ff)

--------------------------------------------------------------------------------
9049c5f006 | Robert Vollmert | 2010-03-07 15:20:36 -0600

Make pre-known missile brands not cause runedness. (cherry picked from commit 
6e9f0e7775880033e63b92273e08859097c77ddf)

--------------------------------------------------------------------------------
8f782087cb | Robert Vollmert | 2010-03-07 15:13:22 -0600

Extract pre-known missile brands into missile_brand_obvious(). (cherry picked 
from commit 40bd0727e5f7c407b9f82b6b6f11f487ab6c2b7e)

--------------------------------------------------------------------------------
a27917b241 | Johanna Ploog | 2010-03-07 21:37:35 +0100

Add comment about the interaction between Tiles and the IBM charset.

--------------------------------------------------------------------------------
995ce220ce | Charles Otto | 2010-03-07 14:35:34 -0600

Fix message spam from charmed mosnters not attacking (oops)
Last commit accidentally caused message spam from enslaved monster.
(cherry picked from commit ca0407beb8e6338d47d2526bff8acf20b482b1c1)

--------------------------------------------------------------------------------
e38f0ff0c3 | Charles Otto | 2010-03-07 14:35:23 -0600

Cut down on message spam from neutrals not attacking (530)
Explicitly check for good/strict neutral status before attempting to
walk into the player. Previously (good) neutral monsters wound attempt
to attack the player, and that attack would be canceled resulting in
message spam about the monster not using energy on the canceled attack.
(cherry picked from commit 682379d6cc162ee4ac5435ae9f5555203ca587d1)

--------------------------------------------------------------------------------
3a48d0fe2e | Charles Otto | 2010-03-07 14:35:02 -0600

Make enslavement fail on friendly monsters (415)
Make enslavement fail on monsters that are actually friendly, not just
on ones that are (already) charmed. This prevents odd messages about
enslaving your own allies, and warnings when said enslavement wears off
(cherry picked from commit 17b899cf65aece712f1a7cc1ea4b1c9a30e22a35)

--------------------------------------------------------------------------------
80c6785e5d | Charles Otto | 2010-03-07 14:34:50 -0600

Only worry about unsubmerging into harmful clouds
The check for not unsubmerging into clouds did not pay attention to
cloud type, so monsters would e.g. avoid unsubmerging into thin mist.
This commit makes monsters only worry about harmful clouds (although it
does not check monster resistances, so an rf+++ monster still worries
about flame clouds currently).
(cherry picked from commit 333fc85d4e9ea1405b8b9cc52f6f9382c0e984bb)

--------------------------------------------------------------------------------
72e3285ebc | David Lawrence Ramsey | 2010-03-07 13:57:41 -0600

Fix typo.

--------------------------------------------------------------------------------
fa6140b95d | Johanna Ploog | 2010-03-07 20:49:24 +0100

Add a hack to make the book glyph show up correctly in Tiles.
Specifically override the IBM book glyph with '+' in Tiles builds.
Fixes #719 (again).

--------------------------------------------------------------------------------
4df93190ae | Johanna Ploog | 2010-03-07 20:12:23 +0100

Revert "Use CSET_ASCII for tiles builds."
This reverts commit a6f8ba18ae2fb325e862c02f0443d435e8a07b45.

The tiles code expects IBM characters for evaluating glyphs in
magic mapping. This revert fixes #965.

Maybe we should define a charset specifically for Tiles magic mapping,
and disallow modification of any glyphs for Tiles.

--------------------------------------------------------------------------------
2cc6adc088 | Charles Otto | 2010-03-07 11:46:52 -0500

Fix crash when drawing the dance card (1022)
Fix a crash when drawing the dance card. Sometimes (not entirely sure
why this didn't happen all the time), monster creation would attempt to
dereference a dancing weapons 'ghost_demon' before it was allocated.

--------------------------------------------------------------------------------
c89e5b5898 | Robert Vollmert | 2010-03-07 17:23:21 +0100

Fix runaway EV, try 3.
This is a mix of the previous two patches.

First we step down Dex, but not as harshly as before. Then we
step down total (pre-bonus) EV above 30.

Compared to the previous change, this makes dexterity more
significant as long as you're not close to mastering
dodging skill. It also hits really high EV values a bit harder.
The only ones to lose a couple of points of evasion vs. 0.5 are
low-dex high-dodging small characters. I think that's fine.

0.5/0.6/previous fix/this

dodge:        0           6          12          20          27
race: ogre
dex=10:  8/ 9/ 9/ 9 11/12/12/12 14/14/14/14 17/18/18/18 21/21/21/21
dex=16:  8/ 9/ 9/ 9 12/13/13/13 16/18/18/18 21/23/23/23 26/28/28/28
dex=18:  8/ 9/ 9/ 9 12/14/13/14 16/19/18/19 21/25/24/25 26/31/30/31
dex=24:  8/ 9/ 9/ 9 12/15/14/15 16/22/20/22 21/31/27/31 26/38/33/34
dex=30:  8/ 9/ 9/ 9 12/17/15/16 16/25/20/24 21/36/28/32 26/46/35/36
dex=40:  8/ 9/ 9/ 9 12/20/15/18 16/31/22/26 21/45/31/34 26/58/38/39
dex=50:  8/ 9/ 9/ 9 12/22/16/18 16/36/22/28 21/54/32/36 26/70/39/41
race: normal
dex=10: 10/11/11/11 13/14/14/14 16/17/17/17 20/21/21/21 23/24/24/24
dex=16: 10/11/11/11 14/16/16/16 19/20/20/20 25/27/27/27 31/32/32/31
dex=18: 10/11/11/11 14/16/16/16 19/22/21/22 25/29/28/29 31/35/34/33
dex=24: 10/11/11/11 14/18/17/18 19/25/23/25 25/35/31/33 31/43/38/37
dex=30: 10/11/11/11 14/20/17/19 19/29/23/27 25/41/32/34 31/51/39/39
dex=40: 10/11/11/11 14/23/18/20 19/35/25/30 25/51/35/37 31/65/43/42
dex=50: 10/11/11/11 14/26/18/21 19/41/26/31 25/61/36/38 31/78/45/44
race: spriggan
dex=10: 14/15/15/15 17/19/19/19 21/22/22/22 25/27/27/27 29/32/32/31
dex=16: 14/15/15/15 19/21/21/21 25/27/27/27 32/35/35/33 38/42/42/36
dex=18: 14/15/15/15 20/22/21/22 26/28/28/28 34/37/36/34 41/45/44/38
dex=24: 14/15/15/15 20/24/22/24 26/33/30/32 34/45/40/38 41/55/49/43
dex=30: 14/15/15/15 20/26/23/25 26/37/31/33 34/52/41/40 41/66/50/45
dex=40: 14/15/15/15 20/30/24/27 26/45/33/35 34/65/45/43 41/82/55/50
dex=50: 14/15/15/15 20/34/24/28 26/52/34/36 34/77/46/45 41/99/57/51

--------------------------------------------------------------------------------
caf4709687 | Robert Vollmert | 2010-03-07 17:23:21 +0100

Fix compile warning (dpeg).

--------------------------------------------------------------------------------
6c30ad3ca5 | Robert Vollmert | 2010-03-07 15:56:41 +0100

Fix switched parameters in dex stepdown.
EV comparison: 0.5/pre-fix/post-fix (kilobyte)

dodge:      0        6       12       20       27
race: ogre
dex=10:  8/ 9/ 9 11/12/12 14/14/14 17/18/18 21/21/21
dex=16:  8/ 9/ 9 12/13/13 16/18/18 21/23/23 26/28/28
dex=18:  8/ 9/ 9 12/14/13 16/19/18 21/25/24 26/31/30
dex=24:  8/ 9/ 9 12/15/14 16/22/20 21/31/27 26/38/33
dex=30:  8/ 9/ 9 12/17/15 16/25/20 21/36/28 26/46/35
race: normal
dex=10: 10/11/11 13/14/14 16/17/17 20/21/21 23/24/24
dex=16: 10/11/11 14/16/16 19/20/20 25/27/27 31/32/32
dex=18: 10/11/11 14/16/16 19/22/21 25/29/28 31/35/34
dex=24: 10/11/11 14/18/17 19/25/23 25/35/31 31/43/38
dex=30: 10/11/11 14/20/17 19/29/23 25/41/32 31/51/39
race: spriggan
dex=10: 14/15/15 17/19/19 21/22/22 25/27/27 29/32/32
dex=16: 14/15/15 19/21/21 25/27/27 32/35/35 38/42/42
dex=18: 14/15/15 20/22/21 26/28/28 34/37/36 41/45/44
dex=24: 14/15/15 20/24/22 26/33/30 34/45/40 41/55/49
dex=30: 14/15/15 20/26/23 26/37/31 34/52/41 41/66/50

--------------------------------------------------------------------------------
95f141d167 | Robert Vollmert | 2010-03-07 15:19:50 +0100

Fix runaway EV, try 2 (kilobyte, syllogism).
Instead of stepping down all of EV which hit dodging skill too hard
(27 dodging characters with mediocre dex got significantly lower EV
than in 0.5 with previous try), just step down the dex value that
goes into the formula.

--------------------------------------------------------------------------------
8c9a55b19c | Robert Vollmert | 2010-03-07 15:00:47 +0100

Revert "Fix runaway EV."
This reverts commit 590b2f526e8efeec998baea1a1edfdefa3fa01cb.

--------------------------------------------------------------------------------
590b2f526e | Robert Vollmert | 2010-03-07 14:35:42 +0100

Fix runaway EV.
With uncapped dex factor in evasion, it was easy for small races
to reach >90 EV, especially with Che's help.

This steps down evasion after the dexterity part comes in, taking
>90 EV to below 50, which is still large enough. Dex effect remains
uncapped, but has less effect at high levels. (On a wizard mode
halfling, increasing dex in steps of 10 from 10 increased EV by
roughly 8,6,4.)

The stepdown is applied before adding EV bonuses, so rings of +EV
can compete with rings of +dex once more.

EV values up to 20 should be unaffected.

If anyone has better ideas how to fix this, I won't be offended
if this change is reverted. I do think something should be done
about this, for 0.6 even.

--------------------------------------------------------------------------------
b36d191a22 | Robert Vollmert | 2010-03-07 13:54:51 +0100

Don't show cosmetic flags when brand is known.
Cosmetic = runed, embroidered, etc.

This applies to all of weapon, armour and missiles (should have no
effect for armour).

Fixxes issue #1021.

--------------------------------------------------------------------------------
053317911d | Robert Vollmert | 2010-03-07 13:24:19 +0100

Don't display "runed" in terse missile description.
We're not showing it for weapons either.

--------------------------------------------------------------------------------
4f9dca31e8 | Robert Vollmert | 2010-03-07 12:20:41 +0100

Only note interesting features in mappable areas.
Fixes issue #1023.

--------------------------------------------------------------------------------
7b897f82cf | Robert Vollmert | 2010-03-07 12:12:10 +0100

Revert "Make enchanted missile runedness random."
This reverts commit e5405d8b94bdce6dded373aa9ef3f5eada6724cd.

Runedness should be deterministic for stacking.

--------------------------------------------------------------------------------
e5405d8b94 | Robert Vollmert | 2010-03-07 09:01:00 +0100

Make enchanted missile runedness random.
Now consistent with weapons and armour.

--------------------------------------------------------------------------------
6e9f0e7775 | Robert Vollmert | 2010-03-07 09:00:58 +0100

Make pre-known missile brands not cause runedness.

--------------------------------------------------------------------------------
40bd0727e5 | Robert Vollmert | 2010-03-07 09:00:58 +0100

Extract pre-known missile brands into missile_brand_obvious().

--------------------------------------------------------------------------------
ca0407beb8 | Charles Otto | 2010-03-07 00:10:16 -0500

Fix message spam from charmed mosnters not attacking (oops)
Last commit accidentally caused message spam from enslaved monster.

--------------------------------------------------------------------------------
682379d6cc | Charles Otto | 2010-03-06 23:41:47 -0500

Cut down on message spam from neutrals not attacking (530)
Explicitly check for good/strict neutral status before attempting to
walk into the player. Previously (good) neutral monsters wound attempt
to attack the player, and that attack would be canceled resulting in
message spam about the monster not using energy on the canceled attack.

--------------------------------------------------------------------------------
17b899cf65 | Charles Otto | 2010-03-06 23:29:13 -0500

Make enslavement fail on friendly monsters (415)
Make enslavement fail on monsters that are actually friendly, not just
on ones that are (already) charmed. This prevents odd messages about
enslaving your own allies, and warnings when said enslavement wears off

--------------------------------------------------------------------------------
333fc85d4e | Charles Otto | 2010-03-06 23:13:20 -0500

Only worry about unsubmerging into harmful clouds
The check for not unsubmerging into clouds did not pay attention to
cloud type, so monsters would e.g. avoid unsubmerging into thin mist.
This commit makes monsters only worry about harmful clouds (although it
does not check monster resistances, so an rf+++ monster still worries
about flame clouds currently).

--------------------------------------------------------------------------------
00fa43d2b8 | Charles Otto | 2010-03-06 22:06:59 -0600

Don't cast firestorm beyond maximum range if ! is used (379) (cherry picked 
from commit 53cbc4ba3eb6931afe70e1113f34c73f9eadd50c)

--------------------------------------------------------------------------------
53cbc4ba3e | Charles Otto | 2010-03-06 22:31:55 -0500

Don't cast firestorm beyond maximum range if ! is used (379)

--------------------------------------------------------------------------------
0ac38aeb08 | Jude Brown | 2010-03-06 18:21:41 -0600

Remove Borgnjor's Mortuary for 0.6.
It's unbalanced and unfinished and needs some more work to improve it.
(cherry picked from commit f9ff493d7b8097289d065c359b9d141a8f725bd9)

--------------------------------------------------------------------------------
fd41d671de | David Lawrence Ramsey | 2010-03-06 18:21:41 -0600

Fix typo. (cherry picked from commit 4f439c7e9e5738dbb4cd838e934940eb872541b4)

--------------------------------------------------------------------------------
fdfd2c745a | Robert Vollmert | 2010-03-06 18:21:41 -0600

Handle missed feature DCHARs. (cherry picked from commit 
567cde7d3ea709d429ed2e135db3129589f6b663)

--------------------------------------------------------------------------------
e86b91d7a7 | Robert Vollmert | 2010-03-06 18:21:41 -0600

Map features to base types based on dchar for magic mapping.
This fixes env.map_knowledge having more information than it
really should; fixes issue #1019.

Instead of creating new generic dungeon_feature_type members,
this just maps to one of the features quite arbitrarily. This
doesn't matter because console crawl will display them all the
same, and tiles chooses its tiles based on the displayed console
character.
(cherry picked from commit 4c70bc29f047e3567f2f1ba4cc5acde950b808fe)

--------------------------------------------------------------------------------
5bce9e013a | Johanna Ploog | 2010-03-06 18:21:40 -0600

Tweak snake descriptions, remove inappropriate colours.
I don't know in how much Stone Soup's snakes match their real-world
namesakes in terms of e.g. size, speed, or amphibiousness, but it's
been brought to my attention that the colours don't match them at
all. I'm not worried about the console glyph colours, but the
colours mentioned in their descriptions also stem from the time when
they were entirely made-up snakes of various colours.
(cherry picked from commit 6facc4189c8efeb69b54a9c84ca0d817347f9e23)

--------------------------------------------------------------------------------
b183660785 | Johanna Ploog | 2010-03-06 18:21:40 -0600

When killing a "fungal colony", clear the entire level of mold traces.
I think the fungal colony also includes ballistomycetes in unconnected
parts of the level, so this should be okay.

Reasoning: Once the entire level is covered in mold, it is neither
flavourful nor provides information anymore. Clearing the mold allows
the player to notice when a new colony settles in.

This does not apply to your own neutral colony being destroyed, or
monsters destroying fungi in general. The former is because followers
of Fedhas can use Evolution to upgrade mold (right?), the latter
because I didn't want to give anything away that isn't already handled
by message.
(cherry picked from commit b1131a32a9b570667bbbc143795f67c47158ee23)

--------------------------------------------------------------------------------
dc25d5375d | Johanna Ploog | 2010-03-06 18:21:40 -0600

Mention Ctrl-O in the tutorial message for loading a saved game. (cherry picked 
from commit 15c5def69bf5e396da9172c3d70ae62e09792a84)

--------------------------------------------------------------------------------
12fa3fb36c | Robert Vollmert | 2010-03-06 18:21:39 -0600

Make two zero cursor_loc instances equal.
The check at tilesdl.cc:948 was always succeeding for
uninitialized m_cursor_loc, i.e., until the mouse was
first moved, causing extra redraws. This in turn
caused the display not to be redrawn at the points
it should have been (I think).

Fixes issue #1003.
(cherry picked from commit 061ce144084b6c9c2155855b53785c5ad443469d)

--------------------------------------------------------------------------------
cbfa7a2197 | Eino Keskitalo | 2010-03-06 18:21:39 -0600

Fix unknown shapeshifters leaking their chaoticness in targeting. (cherry 
picked from commit 78e88a94fbc0b862598013e19c7f4ae5fae817cd)

--------------------------------------------------------------------------------
d14429f1ef | Charles Otto | 2010-03-06 18:21:39 -0600

More robust check for acting monster dying in _monster_move
Move the check for monsters dying after making attacks so that it will
also pick up monsters that died after attacking the player.
(cherry picked from commit b89f9b1c78a86cdfc59edeae1dd0082e39bc4c5e)

--------------------------------------------------------------------------------
e3ac9fae53 | Robert Vollmert | 2010-03-06 18:21:32 -0600

monster_can_submerge: Only submerge in floor.
Together with previous commit, this doubly fixes issue #1017.
(cherry picked from commit 875706de0ed5c947c59f3114584377844da3febe)

--------------------------------------------------------------------------------
817d51d967 | Robert Vollmert | 2010-03-06 18:17:55 -0600

New function terrain.cc:feat_is_floor. (cherry picked from commit 
4e1461b3e7b188826af15b4369d8a328b0d02528)

--------------------------------------------------------------------------------
cb49dad951 | Robert Vollmert | 2010-03-06 18:17:55 -0600

monster_can_submerge: check for habitability. (cherry picked from commit 
f735e2c19de680a2b056194ed3e19205e25488af)

--------------------------------------------------------------------------------
088093017d | Jude Brown | 2010-03-06 18:17:54 -0600

Make Kiku vault only generate "rises from the dead" message in LOS.
Not sure if this was filed on Mantis or just mentioned on IRC; I've also
changed the colour of the glass in tiles, as the cyan colour is just a
little bit jarring and a little bit out of place for Kikubaaqudgha.
(cherry picked from commit 9e478eca0e073028e1320c75ae6eb82826286ef9)

--------------------------------------------------------------------------------
72058a37c9 | Robert Vollmert | 2010-03-06 18:17:54 -0600

Fix LOS checks for blocking messages.
Fixes issue #973.

It may be that there also needs an autopickup toggle?
(cherry picked from commit 2742e51a2e8f9b801966a10e5336274c8f98846e)

--------------------------------------------------------------------------------
33c58875ad | Jude Brown | 2010-03-06 18:17:54 -0600

Fix Mislead not reporting correct monsters on ranged deaths (#1012).
"Shot with a <X> by a <X>" was being set outside of the hiscore, meaning
that the original check-case for Mislead outputting the correct,
original monster name was completely ignored. I've duplicated the
check into mon-act.cc, and everything seems to function correctly.
(cherry picked from commit 51b577e9f49822b4294c0555dcda9128ada23bd0)

--------------------------------------------------------------------------------
4dbf3e12a7 | Jude Brown | 2010-03-06 18:17:53 -0600

Fix typo in Zonguldrok gravestone (#1009). (cherry picked from commit 
0684198817d768d4d59c34d54bc2b8e63dc6fe2c)

--------------------------------------------------------------------------------
68f7412063 | Jude Brown | 2010-03-06 18:17:53 -0600

Fix artefacts in shops using base item instead (Troves, #1016).
I forgot to actually copy over the artefact status of the shop item.
Fixes #1016.
(cherry picked from commit acdab2900886b936541469418f05f5935bdea495)

--------------------------------------------------------------------------------
8b728b6fb5 | Jude Brown | 2010-03-06 18:17:53 -0600

Fix #1014: Lua error on wizlab_demon.
Also, a Lua error on wizlab_cloud; local scope variables in the main Lua
chunk aren't shared with the epilogue chunk, so as a temporary fix, I've
made them global.
(cherry picked from commit f99b83d3b38bf2d44c81b0bd47d11924094c1433)

--------------------------------------------------------------------------------
8be8fe3f67 | Johanna Ploog | 2010-03-06 18:17:48 -0600

Nuke CMD_TOGGLE_SPELL_DISPLAY, made obsolete by the display tabs. (cherry 
picked from commit bef3dcd5bcd10f0276bc23b758d0afcf90d1af3c)

--------------------------------------------------------------------------------
fcef612d83 | Robert Vollmert | 2010-03-06 17:58:25 -0600

Jiyva gets full piety gain during gift timeout. (cherry picked from commit 
8f910f25b3bd18f845935bfd5829ef6287028c87)

--------------------------------------------------------------------------------
1393d2fcd8 | Robert Vollmert | 2010-03-06 17:58:14 -0600

Fix Jiyva slime targets.
Now actually choose the nearest edible item in view. They now do
a much better job of cleaning up the place, though they're maybe
a little less good at finding things outside LOS.
(cherry picked from commit 141cc14dc94da84923dd468696f88277e69a80c2)

--------------------------------------------------------------------------------
28070a91f0 | Johanna Ploog | 2010-03-06 17:58:00 -0600

Make the black mamba tile a bit lighter to make it more visible.
Now that the "grey snake" tile has been replaced with a non-grey viper
one, we can afford making the "black snake" tile somewhat lighter.
(cherry picked from commit ca41668fad62f8630fa4c84b3deec774ec3d9467)

--------------------------------------------------------------------------------
c32160f4da | Johanna Ploog | 2010-03-06 17:57:50 -0600

Use minmay's tiles for viper and anaconda. (cherry picked from commit 
9238db5720bf878b82f0935c1e424a48c8c137ca)

--------------------------------------------------------------------------------
22bfbf289e | Johanna Ploog | 2010-03-06 17:57:43 -0600

Add a tutorial trigger for being silenced.
Belatedly, it occured to me that the scroll of silence actually makes it
possible for players to experience silence during the tutorial.
(cherry picked from commit c04506a0fa657c08461c7a674351afe477fc7127)

--------------------------------------------------------------------------------
ecbcd4f793 | Robert Vollmert | 2010-03-06 17:57:01 -0600

Increase Jiyva piety gain.
Piety gain seemed a bit slow in tests of the current version.

Other piety issues:
 * Worshippers are under constant gift timeout, which reduces
   piety gain (78291).
 * Jellies seem to often do a bad job of actually finding items
   to eat.
(cherry picked from commit 38466ab32e0bec6f0508903e8408f4e353e2fa6a)

--------------------------------------------------------------------------------
d0b486ecf6 | Robert Vollmert | 2010-03-06 17:54:54 -0600

Make Jiyva mutations actual god gifts.
This will make Jiyva mutations try to occur less often (only when
gaining piety instead of every time a jelly eats something), but
the effective mutation rate shouldn't be affected due to
the gift timeouts.

This removes godgift.{cc,h} again for the moment. If cherry-picking
to 0.6, combine this commit with f2019720.
(cherry picked from commit 4c29ac8dbcabde9a523a0ba2d6e561d12a51a986)

--------------------------------------------------------------------------------
93217dd2d9 | Robert Vollmert | 2010-03-06 17:48:57 -0600

Move Jiyva mutation action out of mon-act.cc. (cherry picked from commit 
f2019720b59da9107886b001abdb96d14979e058)

--------------------------------------------------------------------------------
65190c07f5 | Adam Borowski | 2010-03-06 17:45:12 -0600

Don't autopickup extra rings of TC. (cherry picked from commit 
445cdf802963345d3cc21140bcc05306d21974ca)

--------------------------------------------------------------------------------
d564588627 | Adam Borowski | 2010-03-06 17:44:57 -0600

No cursed randarts of holy wrath, please. [Mantis 948] (cherry picked from 
commit 4f38d8b6c6b313e0fcc115723a7cca792a11886e)

--------------------------------------------------------------------------------
d39e99efc3 | Adam Borowski | 2010-03-06 17:44:46 -0600

Stop Evilyon from blocking attacks of neutral people, it's trivially avoidable 
by going Zin or TSO when dumping her. (cherry picked from commit 
1c1496b6c03e761d648f760177ed5d83e54be9c6)

--------------------------------------------------------------------------------
23009a23c4 | Robert Vollmert | 2010-03-06 17:44:35 -0600

changelog: Some more corrections and updates. (cherry picked from commit 
665e988f49bf4d5d129f3a8cef7f98a68030b02c)

--------------------------------------------------------------------------------
7f36e9a9df | Robert Vollmert | 2010-03-06 17:44:10 -0600

changelog: Add monsters sleeping off-level. (cherry picked from commit 
e9e0830037eb37385fa55583c3ef457e89719fc4)

--------------------------------------------------------------------------------
8c05318363 | Robert Vollmert | 2010-03-06 17:44:02 -0600

changelog: Correct some inaccurate entries.
Should the cross-training still be done?
(cherry picked from commit 826d9cc73289f355a4531770d60326ec30cea878)

--------------------------------------------------------------------------------
19075021ff | Robert Vollmert | 2010-03-06 17:42:30 -0600

changelog: Collect major bug fixes.
New sections "major bugfixes" collecting bug fixes from
elsewhere in the changelog. Also add some that I remember --
please add other important ones.

Also rename "Code cleanup" to "Technical improvements", since
there's also stuff like makefiles and new Lua vault features.

Also removed the latter from the "Levels" part since it's not
really relevant there.
(cherry picked from commit f048d37e9daac79a15dfb5f184cfa5b234a9e942)

--------------------------------------------------------------------------------
0504b99994 | Robert Vollmert | 2010-03-06 17:42:08 -0600

Add some assertions in beam.cc to catch #1014 earlier. (cherry picked from 
commit fe1ef8c08287058ee73b2f40a9ef5a0e910f8e10)

--------------------------------------------------------------------------------
813f3a2768 | Robert Vollmert | 2010-03-06 17:41:39 -0600

Make sure maybe_random2 doesn't return negative values.
Fixes issue #1014.
(cherry picked from commit 17b474f8c5905fd706872564855cf2b8b97597e9)

--------------------------------------------------------------------------------
70cc4c01de | Johanna Ploog | 2010-03-06 17:41:25 -0600

Update change log once again. (cherry picked from commit 
c71c7967be0b47ee7bdb9be48a869a7e44ca732b)

--------------------------------------------------------------------------------
f9ff493d7b | Jude Brown | 2010-03-07 09:41:00 +1000

Remove Borgnjor's Mortuary for 0.6.
It's unbalanced and unfinished and needs some more work to improve it.

--------------------------------------------------------------------------------
9ac51f4ce7 | Robert Vollmert | 2010-03-06 17:39:31 -0600

Change bolt::special_explosion tracer handling.
Previously, the tracer only exploded at the end-point, while a
special explosion can explode anywhere it hits. (Special explosion
== exploding missile currently.)

This meant for instance that firing exploding darts at a neighbouring
monster with 'ff' didn't bring up a cancel prompt.

The tracer code now tries to explode at every monster. It does mean
that if you answer "yes" to the first "Really fire at your goblin?"
prompt, you may be prompted again for the same monster for a later
explosion. (e.g. @.rg with g friendly, and fire at the rat with 'ff').
(cherry picked from commit 6d72a803f2af5bd56be4bd3cb6c9ac028c40bc60)

--------------------------------------------------------------------------------
3c0063cde3 | Johanna Ploog | 2010-03-06 17:38:27 -0600

Also set MOUSE_MORE_MODE in cancelable_get_line().
Again, allowing mouseover descriptions to hide the message area while
the game is waiting for input in response to a prompt is confusing and
a bad interface.
(cherry picked from commit 7a2f2a4764a3f2ad5efd0943ae90e2788dc400a6)

--------------------------------------------------------------------------------
3e2a348a07 | Johanna Ploog | 2010-03-06 17:38:17 -0600

Also use menu_colour_prefix_tags for butchery prompts.
This looks like the last instance of get_message_colour_tags() being
replaced. It seemed like a good idea at the time, but as it requires
hardcoding same as the menu colour variant we can just be consistent
about it and always use the latter.
(cherry picked from commit b44d8667f89e620ca8eaa8d0e07cd12cc1fab6ed)

--------------------------------------------------------------------------------
b4730558ee | Johanna Ploog | 2010-03-06 17:37:57 -0600

Use menu colours for prompts for eating dangerous chunks by mouseclick. (cherry 
picked from commit 58c887e4486c27bad1dcaa6c76c87bbf2f7967bc)

--------------------------------------------------------------------------------
6212626fa0 | Johanna Ploog | 2010-03-06 17:37:47 -0600

Prompt when the player tries to eat a dangerous chunk by mouseclick. (cherry 
picked from commit ebbc5650f66a773284b478b9ffb47ee94725fe4f)

--------------------------------------------------------------------------------
60efbb924f | Johanna Ploog | 2010-03-06 17:37:31 -0600

Implement #370: When eating, don't prompt for dangerous chunk types.
You can still access from the inventory, but this requires the player
to actively look for the slot, so it should be harder to eat them by
accident.

This does mean that to deliberately eat a mutagenic chunk you have to
pick it up because the food prompt menu doesn't work from the floor.
(cherry picked from commit f6446a2474035e14cd63578d98348eed57ce6acd)

--------------------------------------------------------------------------------
4f439c7e9e | David Lawrence Ramsey | 2010-03-06 17:29:15 -0600

Fix typo.

--------------------------------------------------------------------------------
b115ffd65d | Johanna Ploog | 2010-03-06 17:27:52 -0600

For consistency, also suppress out of sight mouseover wall descriptions. 
(cherry picked from commit 589e0335ac189b729d716ac4004e15e18be99ede)

--------------------------------------------------------------------------------
5651bc9ccd | Jude Brown | 2010-03-06 17:27:14 -0600

Fix jewellery with pluses being picker from shops (Troves). (cherry picked from 
commit 648f61d6cda9bca6a22ed71efc99459f343647a7)

--------------------------------------------------------------------------------
272825cb9e | Jude Brown | 2010-03-06 17:27:05 -0600

Reduce shop item value for Troves.
Jewellery shops don't usually have anything for over the thousand dollar
mark; as this is purely the lower limit, it means you're still paying a
minimum of 800+locking fee. Of course, there's no upper limit, so you
could end up paying a lot, lot more.

I didn't see any randart jewellery  in 20+ wizmode generated shops for
more than 999, the most expensive being around 800 or so, so I think 800
is a good value for this.
(cherry picked from commit 290976fc87faf33720e7a72ac4818ca8e2d1fffe)

--------------------------------------------------------------------------------
ceda586c07 | Jude Brown | 2010-03-06 17:26:45 -0600

Deal properly with ego-less but ego-able items in Troves.
ego_type returns "" instead of nil for non-egoed items that can have
egoes. This means "+1 ice dragon mail of" as ego_type is not false.
(cherry picked from commit 7a3253365463a4050e3f0546c8194d8cd461f253)

--------------------------------------------------------------------------------
12316658de | Robert Vollmert | 2010-03-06 17:25:12 -0600

Fix thrown weapon inventory handling.
Just clear the used slot (we know it after all) instead of some
magic based on returning. The previous code could only have
worked if weapons of returning were the only non-missiles
thrown by monsters.
(cherry picked from commit 03833ec638ad0428a6784e2526249256585b2d75)

--------------------------------------------------------------------------------
cb203e1d42 | Jude Brown | 2010-03-06 17:22:15 -0600

Hopefully finally fix jewellery issues with Troves.
It was looking for pluses on items that didn't have pluses. Why, I'm not
sure. I have a test suite to run on it still to ensure that it'll work
with every type of accepted item.
(cherry picked from commit 5a8760735ff52aba63ad7812c424be884f96e6f2)

--------------------------------------------------------------------------------
567cde7d3e | Robert Vollmert | 2010-03-06 23:49:18 +0100

Handle missed feature DCHARs.

--------------------------------------------------------------------------------
4c70bc29f0 | Robert Vollmert | 2010-03-06 23:43:23 +0100

Map features to base types based on dchar for magic mapping.
This fixes env.map_knowledge having more information than it
really should; fixes issue #1019.

Instead of creating new generic dungeon_feature_type members,
this just maps to one of the features quite arbitrarily. This
doesn't matter because console crawl will display them all the
same, and tiles chooses its tiles based on the displayed console
character.

--------------------------------------------------------------------------------
4d2f11be07 | Johanna Ploog | 2010-03-06 23:52:10 +0100

Reorder monster descriptions, uniques first, both sections by alphabet.

--------------------------------------------------------------------------------
6facc4189c | Johanna Ploog | 2010-03-06 23:52:09 +0100

Tweak snake descriptions, remove inappropriate colours.
I don't know in how much Stone Soup's snakes match their real-world
namesakes in terms of e.g. size, speed, or amphibiousness, but it's
been brought to my attention that the colours don't match them at
all. I'm not worried about the console glyph colours, but the
colours mentioned in their descriptions also stem from the time when
they were entirely made-up snakes of various colours.

--------------------------------------------------------------------------------
b1131a32a9 | Johanna Ploog | 2010-03-06 23:52:09 +0100

When killing a "fungal colony", clear the entire level of mold traces.
I think the fungal colony also includes ballistomycetes in unconnected
parts of the level, so this should be okay.

Reasoning: Once the entire level is covered in mold, it is neither
flavourful nor provides information anymore. Clearing the mold allows
the player to notice when a new colony settles in.

This does not apply to your own neutral colony being destroyed, or
monsters destroying fungi in general. The former is because followers
of Fedhas can use Evolution to upgrade mold (right?), the latter
because I didn't want to give anything away that isn't already handled
by message.

--------------------------------------------------------------------------------
15c5def69b | Johanna Ploog | 2010-03-06 23:52:09 +0100

Mention Ctrl-O in the tutorial message for loading a saved game.

--------------------------------------------------------------------------------
061ce14408 | Robert Vollmert | 2010-03-06 21:18:20 +0100

Make two zero cursor_loc instances equal.
The check at tilesdl.cc:948 was always succeeding for
uninitialized m_cursor_loc, i.e., until the mouse was
first moved, causing extra redraws. This in turn
caused the display not to be redrawn at the points
it should have been (I think).

Fixes issue #1003.

--------------------------------------------------------------------------------
78e88a94fb | Eino Keskitalo | 2010-03-06 22:02:45 +0200

Fix unknown shapeshifters leaking their chaoticness in targeting.

--------------------------------------------------------------------------------
b89f9b1c78 | Charles Otto | 2010-03-06 11:30:14 -0500

More robust check for acting monster dying in _monster_move
Move the check for monsters dying after making attacks so that it will
also pick up monsters that died after attacking the player.

--------------------------------------------------------------------------------
6d0a798ee1 | Robert Vollmert | 2010-03-06 16:54:10 +0100

Print GDR in HUD in wizard mode.

--------------------------------------------------------------------------------
d52b46dcb9 | Robert Vollmert | 2010-03-06 16:54:10 +0100

Make GDR calculation a member of player.

--------------------------------------------------------------------------------
dbca46d41e | Robert Vollmert | 2010-03-06 16:54:10 +0100

Add const variant of player::slot_item.
Is there a more elegant way to do this?

--------------------------------------------------------------------------------
875706de0e | Robert Vollmert | 2010-03-06 16:54:10 +0100

monster_can_submerge: Only submerge in floor.
Together with previous commit, this doubly fixes issue #1017.

--------------------------------------------------------------------------------
f735e2c19d | Robert Vollmert | 2010-03-06 16:54:10 +0100

monster_can_submerge: check for habitability.

--------------------------------------------------------------------------------
c70f327f2d | Robert Vollmert | 2010-03-06 16:54:10 +0100

monster_can_submerge: rename grid->feat.

--------------------------------------------------------------------------------
4e1461b3e7 | Robert Vollmert | 2010-03-06 16:54:09 +0100

New function terrain.cc:feat_is_floor.

--------------------------------------------------------------------------------
9e478eca0e | Jude Brown | 2010-03-06 17:55:24 +1000

Make Kiku vault only generate "rises from the dead" message in LOS.
Not sure if this was filed on Mantis or just mentioned on IRC; I've also
changed the colour of the glass in tiles, as the cyan colour is just a
little bit jarring and a little bit out of place for Kikubaaqudgha.

--------------------------------------------------------------------------------
2742e51a2e | Robert Vollmert | 2010-03-06 08:44:22 +0100

Fix LOS checks for blocking messages.
Fixes issue #973.

It may be that there also needs an autopickup toggle?

--------------------------------------------------------------------------------
51b577e9f4 | Jude Brown | 2010-03-06 13:00:14 +1000

Fix Mislead not reporting correct monsters on ranged deaths (#1012).
"Shot with a <X> by a <X>" was being set outside of the hiscore, meaning
that the original check-case for Mislead outputting the correct,
original monster name was completely ignored. I've duplicated the
check into mon-act.cc, and everything seems to function correctly.

--------------------------------------------------------------------------------
0684198817 | Jude Brown | 2010-03-06 10:30:01 +1000

Fix typo in Zonguldrok gravestone (#1009).

--------------------------------------------------------------------------------
acdab29008 | Jude Brown | 2010-03-06 10:10:24 +1000

Fix artefacts in shops using base item instead (Troves, #1016).
I forgot to actually copy over the artefact status of the shop item.
Fixes #1016.

--------------------------------------------------------------------------------
f99b83d3b3 | Jude Brown | 2010-03-06 09:22:20 +1000

Fix #1014: Lua error on wizlab_demon.
Also, a Lua error on wizlab_cloud; local scope variables in the main Lua
chunk aren't shared with the epilogue chunk, so as a temporary fix, I've
made them global.

--------------------------------------------------------------------------------
bef3dcd5bc | Johanna Ploog | 2010-03-06 00:16:10 +0100

Nuke CMD_TOGGLE_SPELL_DISPLAY, made obsolete by the display tabs.

--------------------------------------------------------------------------------
8f910f25b3 | Robert Vollmert | 2010-03-05 23:24:01 +0100

Jiyva gets full piety gain during gift timeout.

--------------------------------------------------------------------------------
141cc14dc9 | Robert Vollmert | 2010-03-05 23:24:01 +0100

Fix Jiyva slime targets.
Now actually choose the nearest edible item in view. They now do
a much better job of cleaning up the place, though they're maybe
a little less good at finding things outside LOS.

--------------------------------------------------------------------------------
ca41668fad | Johanna Ploog | 2010-03-05 23:40:10 +0100

Make the black mamba tile a bit lighter to make it more visible.
Now that the "grey snake" tile has been replaced with a non-grey viper
one, we can afford making the "black snake" tile somewhat lighter.

--------------------------------------------------------------------------------
9238db5720 | Johanna Ploog | 2010-03-05 23:40:10 +0100

Use minmay's tiles for viper and anaconda.

--------------------------------------------------------------------------------
c04506a0fa | Johanna Ploog | 2010-03-05 23:40:09 +0100

Add a tutorial trigger for being silenced.
Belatedly, it occured to me that the scroll of silence actually makes it
possible for players to experience silence during the tutorial.

--------------------------------------------------------------------------------
38466ab32e | Robert Vollmert | 2010-03-05 22:51:29 +0100

Increase Jiyva piety gain.
Piety gain seemed a bit slow in tests of the current version.

Other piety issues:
 * Worshippers are under constant gift timeout, which reduces
   piety gain (78291).
 * Jellies seem to often do a bad job of actually finding items
   to eat.

--------------------------------------------------------------------------------
4c29ac8dbc | Robert Vollmert | 2010-03-05 22:51:29 +0100

Make Jiyva mutations actual god gifts.
This will make Jiyva mutations try to occur less often (only when
gaining piety instead of every time a jelly eats something), but
the effective mutation rate shouldn't be affected due to
the gift timeouts.

This removes godgift.{cc,h} again for the moment. If cherry-picking
to 0.6, combine this commit with f2019720.

--------------------------------------------------------------------------------
39f01ead85 | Robert Vollmert | 2010-03-05 22:51:28 +0100

Rename jiyva_grant_jelly() to jiyva_accepts_prayer().
Also remove the unnecessary "actual" parameter.

--------------------------------------------------------------------------------
ccd969b333 | Robert Vollmert | 2010-03-05 22:51:28 +0100

Move Jiyva jelly paralysis into separate function.

--------------------------------------------------------------------------------
d7aa9de294 | Robert Vollmert | 2010-03-05 22:51:28 +0100

Formatting.

--------------------------------------------------------------------------------
77e9e8b943 | Robert Vollmert | 2010-03-05 22:51:28 +0100

In wizard mode, display actual piety in % screen.

--------------------------------------------------------------------------------
cd8cfe106d | Robert Vollmert | 2010-03-05 22:51:28 +0100

Move god piety *'s into separate function.

--------------------------------------------------------------------------------
445cdf8029 | Adam Borowski | 2010-03-05 22:34:15 +0100

Don't autopickup extra rings of TC.

--------------------------------------------------------------------------------
4f38d8b6c6 | Adam Borowski | 2010-03-05 22:29:53 +0100

No cursed randarts of holy wrath, please. [Mantis 948]

--------------------------------------------------------------------------------
1c1496b6c0 | Adam Borowski | 2010-03-05 22:07:20 +0100

Stop Evilyon from blocking attacks of neutral people, it's trivially avoidable 
by going Zin or TSO when dumping her.

--------------------------------------------------------------------------------
665e988f49 | Robert Vollmert | 2010-03-05 19:50:11 +0100

changelog: Some more corrections and updates.

--------------------------------------------------------------------------------
e9e0830037 | Robert Vollmert | 2010-03-05 18:36:24 +0100

changelog: Add monsters sleeping off-level.

--------------------------------------------------------------------------------
826d9cc732 | Robert Vollmert | 2010-03-05 18:35:41 +0100

changelog: Correct some inaccurate entries.
Should the cross-training still be done?

--------------------------------------------------------------------------------
f048d37e9d | Robert Vollmert | 2010-03-05 18:35:17 +0100

changelog: Collect major bug fixes.
New sections "major bugfixes" collecting bug fixes from
elsewhere in the changelog. Also add some that I remember --
please add other important ones.

Also rename "Code cleanup" to "Technical improvements", since
there's also stuff like makefiles and new Lua vault features.

Also removed the latter from the "Levels" part since it's not
really relevant there.

--------------------------------------------------------------------------------
fe1ef8c082 | Robert Vollmert | 2010-03-05 17:33:07 +0100

Add some assertions in beam.cc to catch #1014 earlier.

--------------------------------------------------------------------------------
17b474f8c5 | Robert Vollmert | 2010-03-05 17:20:42 +0100

Make sure maybe_random2 doesn't return negative values.
Fixes issue #1014.

--------------------------------------------------------------------------------
c71c7967be | Johanna Ploog | 2010-03-05 16:05:01 +0100

Update change log once again.

--------------------------------------------------------------------------------
6d72a803f2 | Robert Vollmert | 2010-03-05 13:09:55 +0100

Change bolt::special_explosion tracer handling.
Previously, the tracer only exploded at the end-point, while a
special explosion can explode anywhere it hits. (Special explosion
== exploding missile currently.)

This meant for instance that firing exploding darts at a neighbouring
monster with 'ff' didn't bring up a cancel prompt.

The tracer code now tries to explode at every monster. It does mean
that if you answer "yes" to the first "Really fire at your goblin?"
prompt, you may be prompted again for the same monster for a later
explosion. (e.g. @.rg with g friendly, and fire at the rat with 'ff').

--------------------------------------------------------------------------------
7a2f2a4764 | Johanna Ploog | 2010-03-05 12:35:27 +0100

Also set MOUSE_MORE_MODE in cancelable_get_line().
Again, allowing mouseover descriptions to hide the message area while
the game is waiting for input in response to a prompt is confusing and
a bad interface.

--------------------------------------------------------------------------------
b44d8667f8 | Johanna Ploog | 2010-03-05 12:35:27 +0100

Also use menu_colour_prefix_tags for butchery prompts.
This looks like the last instance of get_message_colour_tags() being
replaced. It seemed like a good idea at the time, but as it requires
hardcoding same as the menu colour variant we can just be consistent
about it and always use the latter.

--------------------------------------------------------------------------------
589e0335ac | Johanna Ploog | 2010-03-05 12:35:26 +0100

For consistency, also suppress out of sight mouseover wall descriptions.

--------------------------------------------------------------------------------
4ddab21511 | Johanna Ploog | 2010-03-05 12:35:26 +0100

Autoinscribe books "beyond your understanding" with {highlevel}.
This is so the player doesn't wonder "What is this book I apparently
haven't read yet?" the first few times until they remember.

I didn't feel like adding an option for this one.

--------------------------------------------------------------------------------
648f61d6cd | Jude Brown | 2010-03-05 19:33:26 +1000

Fix jewellery with pluses being picker from shops (Troves).

--------------------------------------------------------------------------------
290976fc87 | Jude Brown | 2010-03-05 19:30:44 +1000

Reduce shop item value for Troves.
Jewellery shops don't usually have anything for over the thousand dollar
mark; as this is purely the lower limit, it means you're still paying a
minimum of 800+locking fee. Of course, there's no upper limit, so you
could end up paying a lot, lot more.

I didn't see any randart jewellery  in 20+ wizmode generated shops for
more than 999, the most expensive being around 800 or so, so I think 800
is a good value for this.

--------------------------------------------------------------------------------
7a32533654 | Jude Brown | 2010-03-05 19:30:43 +1000

Deal properly with ego-less but ego-able items in Troves.
ego_type returns "" instead of nil for non-egoed items that can have
egoes. This means "+1 ice dragon mail of" as ego_type is not false.

--------------------------------------------------------------------------------
03833ec638 | Robert Vollmert | 2010-03-05 10:14:40 +0100

Fix thrown weapon inventory handling.
Just clear the used slot (we know it after all) instead of some
magic based on returning. The previous code could only have
worked if weapons of returning were the only non-missiles
thrown by monsters.

--------------------------------------------------------------------------------
019df561c5 | Robert Vollmert | 2010-03-05 10:14:40 +0100

_mons_throw cleanup.
In particular, rename the mis-named "hand_used" to "msl". It's
not a monster inventory slot, but an index into env.item.

--------------------------------------------------------------------------------
5a8760735f | Jude Brown | 2010-03-05 18:57:48 +1000

Hopefully finally fix jewellery issues with Troves.
It was looking for pluses on items that didn't have pluses. Why, I'm not
sure. I have a test suite to run on it still to ensure that it'll work
with every type of accepted item.

--------------------------------------------------------------------------------
fbc9110a48 | Robert Vollmert | 2010-03-05 02:25:54 -0600

Allow doors to be disintegrated.
For large doors, this blows up the whole door. This also affects
secret doors, even if they mimic something undisintegrable.

Fixes issue #956.

Note that this means that doors can now be opened at range.
(cherry picked from commit 086e50c05d38cfa47c4fc2f72a52e0a5218de5c9)

--------------------------------------------------------------------------------
08b20343ce | Robert Vollmert | 2010-03-05 02:25:48 -0600

Add connected_doors, wrapper around find_connected_range. (cherry picked from 
commit f0c13ba5bd142027bb4a9c58e16fdb8b8b5789ab)

--------------------------------------------------------------------------------
be1eb49a4a | Robert Vollmert | 2010-03-05 02:25:29 -0600

Reduce redundancy in bolt::nuke_wall_effect. (cherry picked from commit 
1fcb80f057f93a092afc142d82c6aa600fe7d46e)

--------------------------------------------------------------------------------
512f1603e9 | Robert Vollmert | 2010-03-05 02:21:23 -0600

Modify Jiyva piety gain.
It's now closer to the old formula, with maximal piety gain of 4
per item for valuable items at low piety.

This needs to be tested.
(cherry picked from commit 92b8fb58c5daa03cd8d88983659dc9cf8690cf23)

--------------------------------------------------------------------------------
4ae38b36e1 | Robert Vollmert | 2010-03-05 02:20:50 -0600

Merge Jiyva item sacrifice with offer_items().
Precisely, export sacrifice_item_stack() and use that in
_monster_eat_item. Further, update _sacrifice_one_item_noncount
to include Jiyva with Nemelex-like piety gain.

The numbers should probably be tweaked.
(cherry picked from commit fc393cbc9d51506368cc605e0ccbe96b56a99522)

--------------------------------------------------------------------------------
d22b3fdbea | Robert Vollmert | 2010-03-05 02:19:44 -0600

Split up godprayer.cc:offer_items a little. (cherry picked from commit 
ee3283ba2ae8368e3f9a367d7fe78fabadeb8a10)

--------------------------------------------------------------------------------
5a4cf0eada | Johanna Ploog | 2010-03-05 02:13:53 -0600

Use menu colour rather than message colour tags for the chunk prompts.
Fixes "Eat this chunk?" prompts not being coloured anymore since my
overzealous eradication of message colour use in food_colouring.txt.
(cherry picked from commit b1bce0375c36789f625072ed9b93963924adbcea)

--------------------------------------------------------------------------------
d0b0a51a9b | Robert Vollmert | 2010-03-05 02:13:34 -0600

init.txt: Add commented force_more to prevent z/Z errors.
Personally, I'd like this to be default, but am afraid that
might upset some people.
(cherry picked from commit 898d4607774519ecf1e0f00f51ae85d37c327cf8)

--------------------------------------------------------------------------------
22b59cf2d1 | Robert Vollmert | 2010-03-05 02:13:20 -0600

Disable 'z' range check for fire storm.
It is often used against monsters outside LOS.
(cherry picked from commit 4931d5d6872899c461b0ee0a0adf976e26429419)

--------------------------------------------------------------------------------
4ddbf10fbe | Johanna Ploog | 2010-03-05 02:13:01 -0600

Fix #964: special_damage_message not checking for los (cherry picked from 
commit 46fc35f70398b82f29553fb0fdf0df4eca855b56)

--------------------------------------------------------------------------------
02d6372b44 | Johanna Ploog | 2010-03-05 02:12:52 -0600

Reinstate cio_cleanup/databaseSystemShutdown at the beginning of end(). (cherry 
picked from commit f3d247212b503130e6c1c56134913b5d4400f121)

--------------------------------------------------------------------------------
440c9c9f73 | Johanna Ploog | 2010-03-05 02:12:26 -0600

Break lines correctly when printing error messages to the screen.
For the record, this is still only applying to the save incompatibity
message.
(cherry picked from commit 4b725b953c7e6c972db6a08c834608d93d037d71)

--------------------------------------------------------------------------------
b08a7f0fcc | Robert Vollmert | 2010-03-05 02:12:06 -0600

Update monster's LOS if close enough to the player.
Previously we skipped this if the monster couldn't be seen, but
that may mean the monster thinks it can still see the player if say
a door has been closed or the player has read ?fog.

Fixes issue #1007.
(cherry picked from commit 317d40a99d401d8a9446841a05cf6c99eae2b446)

--------------------------------------------------------------------------------
fa0476c124 | Adam Borowski | 2010-03-05 02:11:50 -0600

Announce monsters destroying shafts only if you can see that. (cherry picked 
from commit 8441ee9fedad2fd7f030709bb2c181b1cde7832e)

--------------------------------------------------------------------------------
3f89ff39d9 | Johanna Ploog | 2010-03-05 02:11:38 -0600

Only print error messages for save incompatibility to the screen.
That, at least, should be a case where we can be sure everything else
works correctly. Right?

Unfortunately, for some reason, linebreak_string2() doesn't appear to
have any effect at all in the new function print_error_screen(), so
longer messages aren't getting displayed in full.
(cherry picked from commit 394ba22e3b7ad5d599c90150ac85e8adc7f84fb0)

--------------------------------------------------------------------------------
c497d21965 | Johanna Ploog | 2010-03-05 02:10:40 -0600

Fix #1002: Print error messages passed into end() on a separate screen.
Error messages passed through end() with exit_code != 0 are now printed
on a separate black screen in addition to being printed in the console.

This covers at least the save incompatibility message, though others are
also affected. Might be worthwhile to also adjust assertions accordingly.
(cherry picked from commit 436012f3fd568b903bfd32b62f5b8f67bdea2419)

--------------------------------------------------------------------------------
fe1d6bdd85 | Robert Vollmert | 2010-03-05 02:08:21 -0600

Fix broken brand check in xom.cc::_try_brand_switch.
This was caught by changing the return type of get_ammo_brand to
special_missile_type. In general, there's a lot of places where
we should be using the proper enum types instead of int.
(cherry picked from commit 07dce66f5a8a29c148680903996ba9e65bb8b52c)

--------------------------------------------------------------------------------
9945723894 | Adam Borowski | 2010-03-05 02:06:19 -0600

Touch the scores and logfile so they're owned by root:games. (cherry picked 
from commit a1c3eff7ac2b7f255b24a31198f9628d87ea4fff)

--------------------------------------------------------------------------------
80dd45f0c2 | Adam Borowski | 2010-03-05 02:06:10 -0600

Protect against symlink attacks when writing morgues and dumps. (cherry picked 
from commit eaa8e7b24939de2c49b1d02a8564a01b993dd2d3)

--------------------------------------------------------------------------------
4862b1ba6e | Enne Walker | 2010-03-05 02:01:38 -0600

[975] Fix secret door issues in tiles.
Partially revert and reimplement 03d233ae5.  In the case of a secret
door, tiles will just mimic the grid cell, rather than the dungeon
feature.  This approach covers both normal secret doors, as well as
secret doors that need to pick up an overridden feature (e.g. Tukima's
studio apartment).
(cherry picked from commit 1696ef06816e7057503716d4d9af7d83689fe8b3)

--------------------------------------------------------------------------------
1c99f30abe | Johanna Ploog | 2010-03-05 02:00:57 -0600

Set MOUSE_MODE_MORE while waiting for input in yesno(). Fixes #987.
Also fixes item/dungeon/monster descriptions hiding the yes/no prompt
in the message area.
(cherry picked from commit 3565589be720b8c54090741e76e150195038e7b6)

--------------------------------------------------------------------------------
1c587744b9 | Johanna Ploog | 2010-03-05 02:00:22 -0600

tutorial.cc: Add comment about currently unused "interesting" checks. (cherry 
picked from commit 8c963580c5567d3fbc0de3efb951ea6432b71ae6)

--------------------------------------------------------------------------------
41c534d057 | Johanna Ploog | 2010-03-05 01:59:01 -0600

Update tutorial introduction.
* Don't clear messages between different sections: this only makes sure
  the player will be unable to read the previous ones.
* Mention the display tabs.
(cherry picked from commit 99b5f209933afc8d5835cfde644ff407ccd2cb6d)

--------------------------------------------------------------------------------
fea23c7951 | Jude Brown | 2010-03-05 01:58:36 -0600

Commit Darshan's fix to identified/type checks for dLua items.
Haven't fully tested it, but I trust his code more than I trust mine.
(cherry picked from commit 6c77c474ef7f6f2b3875ca7dd74b97af5cb755cf)

--------------------------------------------------------------------------------
58c887e448 | Johanna Ploog | 2010-03-04 23:56:56 +0100

Use menu colours for prompts for eating dangerous chunks by mouseclick.

--------------------------------------------------------------------------------
ebbc5650f6 | Johanna Ploog | 2010-03-04 23:48:23 +0100

Prompt when the player tries to eat a dangerous chunk by mouseclick.

--------------------------------------------------------------------------------
f6446a2474 | Johanna Ploog | 2010-03-04 23:31:25 +0100

Implement #370: When eating, don't prompt for dangerous chunk types.
You can still access from the inventory, but this requires the player
to actively look for the slot, so it should be harder to eat them by
accident.

This does mean that to deliberately eat a mutagenic chunk you have to
pick it up because the food prompt menu doesn't work from the floor.

--------------------------------------------------------------------------------
b1bce0375c | Johanna Ploog | 2010-03-04 23:31:25 +0100

Use menu colour rather than message colour tags for the chunk prompts.
Fixes "Eat this chunk?" prompts not being coloured anymore since my
overzealous eradication of message colour use in food_colouring.txt.

--------------------------------------------------------------------------------
898d460777 | Robert Vollmert | 2010-03-04 22:54:26 +0100

init.txt: Add commented force_more to prevent z/Z errors.
Personally, I'd like this to be default, but am afraid that
might upset some people.

--------------------------------------------------------------------------------
4931d5d687 | Robert Vollmert | 2010-03-04 22:42:40 +0100

Disable 'z' range check for fire storm.
It is often used against monsters outside LOS.

--------------------------------------------------------------------------------
46fc35f703 | Johanna Ploog | 2010-03-04 22:21:10 +0100

Fix #964: special_damage_message not checking for los

--------------------------------------------------------------------------------
f3d247212b | Johanna Ploog | 2010-03-04 22:21:10 +0100

Reinstate cio_cleanup/databaseSystemShutdown at the beginning of end().

--------------------------------------------------------------------------------
4b725b953c | Johanna Ploog | 2010-03-04 22:21:10 +0100

Break lines correctly when printing error messages to the screen.
For the record, this is still only applying to the save incompatibity
message.

--------------------------------------------------------------------------------
317d40a99d | Robert Vollmert | 2010-03-04 21:14:33 +0100

Update monster's LOS if close enough to the player.
Previously we skipped this if the monster couldn't be seen, but
that may mean the monster thinks it can still see the player if say
a door has been closed or the player has read ?fog.

Fixes issue #1007.

--------------------------------------------------------------------------------
8441ee9fed | Adam Borowski | 2010-03-04 19:55:59 +0100

Announce monsters destroying shafts only if you can see that.

--------------------------------------------------------------------------------
394ba22e3b | Johanna Ploog | 2010-03-04 19:39:54 +0100

Only print error messages for save incompatibility to the screen.
That, at least, should be a case where we can be sure everything else
works correctly. Right?

Unfortunately, for some reason, linebreak_string2() doesn't appear to
have any effect at all in the new function print_error_screen(), so
longer messages aren't getting displayed in full.

--------------------------------------------------------------------------------
0dce169dd8 | Eino Keskitalo | 2010-03-04 20:07:30 +0200

A very modest Spider's Nest portal vault prototype.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e93198d62b | Robert Vollmert | 2010-03-04 15:59:08 +0100

Abort delayed fireball if already charged.

--------------------------------------------------------------------------------
436012f3fd | Johanna Ploog | 2010-03-04 15:36:47 +0100

Fix #1002: Print error messages passed into end() on a separate screen.
Error messages passed through end() with exit_code != 0 are now printed
on a separate black screen in addition to being printed in the console.

This covers at least the save incompatibility message, though others are
also affected. Might be worthwhile to also adjust assertions accordingly.

--------------------------------------------------------------------------------
77402ada56 | Robert Vollmert | 2010-03-04 15:02:56 +0100

Colour targeting wound description.
This restores the colouring which used to be achieved through
colouring of the dedicated damage message that went through
MSGCH_MONSTER_DAMAGE.

--------------------------------------------------------------------------------
a408941b3c | Robert Vollmert | 2010-03-04 15:02:55 +0100

Optionally colour output of get_wounds_description.

--------------------------------------------------------------------------------
44b9f7481f | Robert Vollmert | 2010-03-04 15:02:51 +0100

Clean up message colour handling.
Also add tagstring.cc:colour_string that handles wrapping a
string with appropriate colour strings. It would be nice to
concentrate all the awful colour tagging code in tagstring
and eventually replace it with a dedicated datatype.

--------------------------------------------------------------------------------
07dce66f5a | Robert Vollmert | 2010-03-04 13:51:20 +0100

Fix broken brand check in xom.cc::_try_brand_switch.
This was caught by changing the return type of get_ammo_brand to
special_missile_type. In general, there's a lot of places where
we should be using the proper enum types instead of int.

--------------------------------------------------------------------------------
6b7ee2f4b2 | Robert Vollmert | 2010-03-04 13:51:20 +0100

Merge ammo brand naming from name_aux and missile_brand_name.
This also changes terse descriptions to put all brands at the
end and join it with runed:
    29 darts (flame, runed)
    15 needles (curare)

And the "runed" is put before the prefix brand:
    28 runed exploding darts
instead of
    28 exploding runed darts

--------------------------------------------------------------------------------
a1c3eff7ac | Adam Borowski | 2010-03-04 13:16:45 +0100

Touch the scores and logfile so they're owned by root:games.

--------------------------------------------------------------------------------
eaa8e7b249 | Adam Borowski | 2010-03-04 12:53:42 +0100

Protect against symlink attacks when writing morgues and dumps.

--------------------------------------------------------------------------------
1737cbf0d3 | Robert Vollmert | 2010-03-04 10:18:55 +0100

Use connected_doors in other places.

--------------------------------------------------------------------------------
086e50c05d | Robert Vollmert | 2010-03-04 10:17:37 +0100

Allow doors to be disintegrated.
For large doors, this blows up the whole door. This also affects
secret doors, even if they mimic something undisintegrable.

Fixes issue #956.

Note that this means that doors can now be opened at range.

--------------------------------------------------------------------------------
f0c13ba5bd | Robert Vollmert | 2010-03-04 10:08:17 +0100

Add connected_doors, wrapper around find_connected_range.

--------------------------------------------------------------------------------
132217f132 | Steven Noonan | 2010-03-04 00:20:59 -0800

fix struct/class specifier inconsistency for 'class reader'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
9e1a572b3d | Steven Noonan | 2010-03-04 00:20:59 -0800

fix struct/class specifier inconsistency for 'class monsters'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6d20b7d34e | Steven Noonan | 2010-03-04 00:20:59 -0800

godabil.h: fix struct/class specifier inconsistency for 'struct bolt'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
da8898dd5e | Steven Noonan | 2010-03-04 00:20:58 -0800

effects.cc: fix struct/class specifier inconsistency for 'class dist'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1696ef0681 | Enne Walker | 2010-03-03 23:30:37 -0500

[975] Fix secret door issues in tiles.
Partially revert and reimplement 03d233ae5.  In the case of a secret
door, tiles will just mimic the grid cell, rather than the dungeon
feature.  This approach covers both normal secret doors, as well as
secret doors that need to pick up an overridden feature (e.g. Tukima's
studio apartment).

--------------------------------------------------------------------------------
576a475cf8 | Johanna Ploog | 2010-03-03 20:36:17 +0100

Experimentally use ekolis and ahyangyi's tile design for Hive walls.

--------------------------------------------------------------------------------
3565589be7 | Johanna Ploog | 2010-03-03 18:24:00 +0100

Set MOUSE_MODE_MORE while waiting for input in yesno(). Fixes #987.
Also fixes item/dungeon/monster descriptions hiding the yes/no prompt
in the message area.

--------------------------------------------------------------------------------
92b8fb58c5 | Robert Vollmert | 2010-03-03 15:50:15 +0100

Modify Jiyva piety gain.
It's now closer to the old formula, with maximal piety gain of 4
per item for valuable items at low piety.

This needs to be tested.

--------------------------------------------------------------------------------
8c963580c5 | Johanna Ploog | 2010-03-03 15:59:54 +0100

tutorial.cc: Add comment about currently unused "interesting" checks.

--------------------------------------------------------------------------------
99b5f20993 | Johanna Ploog | 2010-03-03 15:59:54 +0100

Update tutorial introduction.
* Don't clear messages between different sections: this only makes sure
  the player will be unable to read the previous ones.
* Mention the display tabs.

--------------------------------------------------------------------------------
f2019720b5 | Robert Vollmert | 2010-03-03 15:27:10 +0100

Move Jiyva mutation action out of mon-act.cc.

--------------------------------------------------------------------------------
fc393cbc9d | Robert Vollmert | 2010-03-03 15:27:09 +0100

Merge Jiyva item sacrifice with offer_items().
Precisely, export sacrifice_item_stack() and use that in
_monster_eat_item. Further, update _sacrifice_one_item_noncount
to include Jiyva with Nemelex-like piety gain.

The numbers should probably be tweaked.

--------------------------------------------------------------------------------
ee3283ba2a | Robert Vollmert | 2010-03-03 15:27:09 +0100

Split up godprayer.cc:offer_items a little.

--------------------------------------------------------------------------------
1fcb80f057 | Robert Vollmert | 2010-03-03 15:27:09 +0100

Reduce redundancy in bolt::nuke_wall_effect.

--------------------------------------------------------------------------------
6c77c474ef | Jude Brown | 2010-03-03 22:43:22 +1000

Commit Darshan's fix to identified/type checks for dLua items.
Haven't fully tested it, but I trust his code more than I trust mine.

--------------------------------------------------------------------------------
01e99eced5 | Eino Keskitalo | 2010-03-03 12:53:26 +0200

Adjust placement of tier 1 and tier 2 pentagrams to match other tiers.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ed50cd6290 | Jesse Luehrs | 2010-03-03 00:54:15 -0600

make tutorial games use the tutorial game type (this does nothing yet)

--------------------------------------------------------------------------------
191de1a2f5 | Jesse Luehrs | 2010-03-03 00:29:19 -0600

also mention darshan and erik specially in CREDITS (cherry picked from commit 
7c2cae61f9ae0eb7d7951cca602a7dd7aef7b7e7)

--------------------------------------------------------------------------------
7c2cae61f9 | Jesse Luehrs | 2010-03-03 00:24:10 -0600

also mention darshan and erik specially in CREDITS

--------------------------------------------------------------------------------
7f5503e757 | Jesse Luehrs | 2010-03-03 00:12:09 -0600

fix tiles compile

--------------------------------------------------------------------------------
0bf1c7040e | Jude Brown | 2010-03-02 23:43:05 -0600

Further debug functionality for troves.
It appears that part of the issue was the cursed/uncursed, as well as
the ISFLAG_KNOW_TYPE not sufficing for known items that have't been
explicitly identified; likewise, there appears to be some issue with nil
versus 0 for pluses that I haven't quite sorted out yet.
(cherry picked from commit d45872be0b7f2d0fc08c2c2c4f5dc53ede675a57)

--------------------------------------------------------------------------------
ec8394522d | Jude Brown | 2010-03-02 23:36:23 -0600

More test suites for sorting out issues with troves.
Not necessary for 0.6 consumption!
(cherry picked from commit f6f5a2ea24e56250bbbfb49e7a99e47cff8f5665)

--------------------------------------------------------------------------------
1a6ba99e9c | Jude Brown | 2010-03-02 23:36:04 -0600

Test suite for debugging Trove portal vaults. (cherry picked from commit 
27048d13d17f5768b7d5fd2a03f47b54dd9fe2ad)

--------------------------------------------------------------------------------
ea6ef2b8d7 | Jude Brown | 2010-03-02 23:35:28 -0600

Change portal debug command to x-" (jpeg).
Hopefully this is a more adequate symbol for the e'x'amine screen.
Please let me know if there are any conflicts with it!
(cherry picked from commit 8a4ce5da4fc42b37c7be1da885cb44ec332ef132)

--------------------------------------------------------------------------------
7fa43e72ce | Jude Brown | 2010-03-02 23:32:30 -0600

Framework for debugging portal vaults using 'x-d'.
'd' doesn't look like it's currently being used for anything else. 'D'
is currently used for monster debug information, so it makes sense to
have 'd' apply to this.

Currently, it merely returns the string value of the 'portal_debug'
property of the portal in question. If there is no portal, or there is
no property, it will return nothing. Using the standard set of portal
vault markers that use unmangle, it should be possible to store
'portal_debug' as a debugging function.

In other instances, such as TroveMarker, it's necessary to write the
functionality into the property call, and write a separate function to
do the actual debugging.

I don't believe this breaks save compatibility, but if it does, it can
quickly be reverted. Not necessary for 0.6, but it is currently
necessary for debugging why Troves aren't functioning exactly as
intended.
(cherry picked from commit 70f0ac54e5f8a4157a4630ead194a0d2a8abf46f)

--------------------------------------------------------------------------------
2c7ca13c48 | Charles Otto | 2010-03-02 23:25:12 -0600

Fix [997] mummy death curse related crashes
Fix a crash that could occur if a death curse killed a monster if the
attack was made out of _monster_move not one of the other monster
attack code paths (hate _handle_monster_move).
(cherry picked from commit 2b0a1bcd2fa19454471b27ea6b6578245edf72db)

--------------------------------------------------------------------------------
05f7ba1e02 | Enne Walker | 2010-03-02 23:24:52 -0600

[989] Fix beam in tiles when targeting player.
When targeting the player, the beam used to not be updated and would
highlight a square it wouldn't be firing on.  I think this broke with the
viewwindow changes.  I'm not that happy with just adding an #ifdef to
redraw the screen again, but it seems the best solution this close to an
0.6 release.
(cherry picked from commit 676faac2860c9b23e26cba607a5bcb343dd5e8b1)

--------------------------------------------------------------------------------
8ffac1cbbd | Enne Walker | 2010-03-02 23:24:38 -0600

[986] Fix tiles autotravel delay on last step.
All three recent changes to not redraw the screen as much conspired to
create this bug.  The frame rate limiter was changed to just delay
(rather than waiting for the next redraw, which may not happen until
there is an input event.) The code to redraw the screen less when
travelling didn't always force an update at the end, so now the travel
code does when travel stops.
(cherry picked from commit 86be9547e90a10d5f35856e55990598c944441bc)

--------------------------------------------------------------------------------
439cf434a3 | Johanna Ploog | 2010-03-02 23:24:28 -0600

Update tiles creation guide. (cherry picked from commit 
8e8e64d1513d425733c9f9a7164c06790948fa22)

--------------------------------------------------------------------------------
28496b0692 | Robert Vollmert | 2010-03-02 23:18:04 -0600

Don't copy clouds to map_knowledge.
This means that the level map is much more useful, particularly
with the default cloud glyph == wall glyph. Even if the cloud
glyph is remapped, I think it's an improvement: You gain terrain
knowledge under clouds while losing information about clouds.
(cherry picked from commit a4f4847921cc4c18c9e16f5428170ef8d3c35f43)

--------------------------------------------------------------------------------
d49571b342 | Robert Vollmert | 2010-03-02 23:17:50 -0600

Fix env.map_knowledge being filled inappropriately in the abyss.
289d3046 caused map_knowledge to be filled as elsewhere in
unmappable areas; this was then overridden when drawing outside
LOS, but is bound to cause information leak at some point, since
env.map_knowledge is assumed to contain player knowledge all
over the place.

So instead, sync env.map_knowledge to env.show by clearing it
at the start of a viewwindow call.

This may affect divination effects in unmappable areas.
(cherry picked from commit 56dd07f6faa82c2b1f0baecb0512f0e59119cb03)

--------------------------------------------------------------------------------
2e4de0bbb7 | Robert Vollmert | 2010-03-02 23:17:28 -0600

Use env.map_knowledge instead of env.grid in describe_floor.
Fixes issue #994.
(cherry picked from commit 5bfe9fe0308d7ac6c6b4b5c635f06b8a642db9c3)

--------------------------------------------------------------------------------
8fffac619a | Jude Brown | 2010-03-02 23:15:47 -0600

Use new item identified wrapper for troves.
We don't really care about curse/uncursed status of items.
(cherry picked from commit 4e2006d869f8ae423fceb2f99e828ca94b974823)

--------------------------------------------------------------------------------
3fd9338975 | Jude Brown | 2010-03-02 23:15:18 -0600

Improvement on the identified wrapper. (greensnark)
As Darshan points out, ISFLAG_KNOW_TYPE is not enough, and
item_type_known is better used in this instance where an item is
implicitly, rather than explicitly known.
(cherry picked from commit 59714144a0902ee6bf2b996e2a19644f5b26c35a)

--------------------------------------------------------------------------------
3168a17dba | Adam Borowski | 2010-03-02 23:13:39 -0600

Set default hp_warning to 30% (dpeg, usability). (cherry picked from commit 
b52192dfd5ee4c4b90c5a8c9bcc18dbb2c0440a3)

--------------------------------------------------------------------------------
5dadf81abd | Jude Brown | 2010-03-02 23:13:27 -0600

Update credits to better reflect Napkin and rax's roles within DCSS.
Their contributions to the community are immense simply with hosting the
public telnet servers, let alone their other contributions to the game
and its community (tourney organisation, setting up the Mantis tracker,
etc). I feel that more than just a mention in the list of names is
needed.

Wording may need tweaking (or rewriting), but it's a start.
(cherry picked from commit a0e82e6a33deb6bd1edfbc1b0042aa406d9754df)

--------------------------------------------------------------------------------
b21a2a579e | Johanna Ploog | 2010-03-02 23:12:37 -0600

Handle the FAQ's labyrinth entry's numbered list correctly in the html. (cherry 
picked from commit bbc0c16335de25ffba203dd65423cc9d2baa146d)

--------------------------------------------------------------------------------
68da8375da | Johanna Ploog | 2010-03-02 23:12:30 -0600

Fix overly long FAQ entry, improve FAQ entry on labyrinths. (cherry picked from 
commit ead0a8fd406dd8d84df15a8b29d15fb68e0e38d4)

--------------------------------------------------------------------------------
49bd403690 | Eino Keskitalo | 2010-03-02 23:11:57 -0600

Fix Killer Klown chaoticness check.
Couldn't check AF_KLOWN, as it was switched out for another attack flavour.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 28dc3dd5a08f3e9f5238fdc1443e2ae7922ccd45)

--------------------------------------------------------------------------------
c247dafcd6 | Eino Keskitalo | 2010-03-02 23:11:31 -0600

Mention chaoticness when looking at monsters, like mindless.
I think with the new targeting, this isn't too noisy.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit a689aa1c41b081e1559688875187b23d2be3e1d9)

--------------------------------------------------------------------------------
d927711b64 | Jude Brown | 2010-03-02 23:10:52 -0600

Add missing Donald speech for Vehumet.
Also enables speech for Vaults: if he follows you out of the Hall of
Blades or the Crypt, this at least means that you'll get some
interesting flavour. He doesn't currently generate in that area, though.
(cherry picked from commit 36dd705a79d295ccd4635abec190e513ebbb3284)

--------------------------------------------------------------------------------
50250c745d | Johanna Ploog | 2010-03-02 23:09:27 -0600

Tweak tutorial's long -More- line.
Could be misinterpreted to mean that pressing Ctrl-P right away
would pull up the message history.
(cherry picked from commit 423fec0e473b7308597cfe95ef532f33d2a818af)

--------------------------------------------------------------------------------
bf7be8b93d | Johanna Ploog | 2010-03-02 23:08:49 -0600

Some more FAQ tweaks, use italics for mentioned txt files in the html. (cherry 
picked from commit 5902f45a1b3a5836b3e95ec5b74ab04a328f90c9)

--------------------------------------------------------------------------------
33934b6bcb | Johanna Ploog | 2010-03-02 23:08:42 -0600

Update FAQ.txt, explain about FAQ2html.pl in introductory comment. (cherry 
picked from commit 292af13e3901223fb695db840abb5ca763d1599d)

--------------------------------------------------------------------------------
6fe49153da | Johanna Ploog | 2010-03-02 23:07:30 -0600

Tiny Xom speech tweak. (cherry picked from commit 
d9e7be055160b6143489b707a6b4cc7472f9e999)

--------------------------------------------------------------------------------
e19f8e3009 | Enne Walker | 2010-03-02 23:06:57 -0600

[941] Fix tiles issue with umlauts in the path. (cherry picked from commit 
59508909b02a40ef223d768141ca9947cbe92d68)

--------------------------------------------------------------------------------
da71d06be2 | Enne Walker | 2010-03-02 23:05:13 -0600

Update tiles documentation about lag issues. (cherry picked from commit 
cba1b3d1064e7e77a878ad6226817ad13c3bd282)

--------------------------------------------------------------------------------
1e9b3d397c | Enne Walker | 2010-03-02 22:59:36 -0600

Add a maximum FPS rate limiter for tiles.
As a number of issues have come from redrawing the screen too quickly,
cap tiles FPS to 30Hz so that it will never bother redrawing any faster.
(cherry picked from commit 706e8edee123c993b7b056eaa6898ae5ea7c4e1c)

--------------------------------------------------------------------------------
7d701b90c7 | Enne Walker | 2010-03-02 22:57:51 -0600

Fix targeting mode performance issues in tiles.
Because targeting mode actually returns input (CK_MOUSE_MOVE), the input
loop always exited (and then redrew the screen) after even the slightest
mouse movement.  This cause all sorts of lag when moving the mouse around
to target.  Now, if we get multiple mouse movements, they will all be
handled silently before redrawing the screen.  Additionally, input is
only returned when the mouse cursor moves to a semantically different
location.
(cherry picked from commit 1d2570ce72b8cfd04b97a65f23cf6da4efbbe83c)

--------------------------------------------------------------------------------
53bd1ccafe | Jesse Luehrs | 2010-03-02 22:40:19 -0600

bump major version, to make sure things don't conflict with 0.6 saves

--------------------------------------------------------------------------------
1aab39368f | Jesse Luehrs | 2010-03-02 22:40:19 -0600

abyss modifications for sprint
13:37 <@dpeg> still another alternative, to make it more sprint-like:
more (or better, tougher) monsters, no items, no xp, no piety, more
exits

--------------------------------------------------------------------------------
baa04042e1 | Jesse Luehrs | 2010-03-02 22:40:18 -0600

fix arena monster vetoing for abyss monsters

--------------------------------------------------------------------------------
62b4fad98c | Jesse Luehrs | 2010-03-02 22:40:18 -0600

debug info for random monster spawns

--------------------------------------------------------------------------------
2b0a1bcd2f | Charles Otto | 2010-03-02 22:43:59 -0500

Fix [997] mummy death curse related crashes
Fix a crash that could occur if a death curse killed a monster if the
attack was made out of _monster_move not one of the other monster
attack code paths (hate _handle_monster_move).

--------------------------------------------------------------------------------
676faac286 | Enne Walker | 2010-03-02 22:10:55 -0500

[989] Fix beam in tiles when targeting player.
When targeting the player, the beam used to not be updated and would
highlight a square it wouldn't be firing on.  I think this broke with the
viewwindow changes.  I'm not that happy with just adding an #ifdef to
redraw the screen again, but it seems the best solution this close to an
0.6 release.

--------------------------------------------------------------------------------
86be9547e9 | Enne Walker | 2010-03-02 21:41:48 -0500

[986] Fix tiles autotravel delay on last step.
All three recent changes to not redraw the screen as much conspired to
create this bug.  The frame rate limiter was changed to just delay
(rather than waiting for the next redraw, which may not happen until
there is an input event.) The code to redraw the screen less when
travelling didn't always force an update at the end, so now the travel
code does when travel stops.

--------------------------------------------------------------------------------
8e8e64d151 | Johanna Ploog | 2010-03-03 00:51:23 +0100

Update tiles creation guide.

--------------------------------------------------------------------------------
db789b9b70 | Jesse Luehrs | 2010-03-02 17:13:15 -0600

use a different hiscore file for sprint

--------------------------------------------------------------------------------
c9851543f6 | Jesse Luehrs | 2010-03-02 17:03:48 -0600

oops

--------------------------------------------------------------------------------
eaa23e307d | Jesse Luehrs | 2010-03-02 16:31:14 -0600

Add the Dungeon Sprint variant by Chapayev into the main source
Hopefully I didn't screw anything up! Things seem to be working okay...
needs more testing!

--------------------------------------------------------------------------------
291d2fa7b3 | Jesse Luehrs | 2010-03-02 16:23:48 -0600

make 'game type' an enum rather than a bool, and serialize it

--------------------------------------------------------------------------------
d4b735c4c4 | Jesse Luehrs | 2010-03-02 16:22:52 -0600

bump up some #define limits, to accomodate sprint

--------------------------------------------------------------------------------
b5d49a0c6d | Robert Vollmert | 2010-03-02 22:47:26 +0100

Add CMD_SHOW_TERRAIN (key '|') to show just terrain.

--------------------------------------------------------------------------------
61a89c81ef | Robert Vollmert | 2010-03-02 17:17:47 +0100

Remove obsolete env.show.backup.

--------------------------------------------------------------------------------
a4f4847921 | Robert Vollmert | 2010-03-02 16:54:23 +0100

Don't copy clouds to map_knowledge.
This means that the level map is much more useful, particularly
with the default cloud glyph == wall glyph. Even if the cloud
glyph is remapped, I think it's an improvement: You gain terrain
knowledge under clouds while losing information about clouds.

--------------------------------------------------------------------------------
56dd07f6fa | Robert Vollmert | 2010-03-02 16:24:16 +0100

Fix env.map_knowledge being filled inappropriately in the abyss.
289d3046 caused map_knowledge to be filled as elsewhere in
unmappable areas; this was then overridden when drawing outside
LOS, but is bound to cause information leak at some point, since
env.map_knowledge is assumed to contain player knowledge all
over the place.

So instead, sync env.map_knowledge to env.show by clearing it
at the start of a viewwindow call.

This may affect divination effects in unmappable areas.

--------------------------------------------------------------------------------
5bfe9fe030 | Robert Vollmert | 2010-03-02 16:23:53 +0100

Use env.map_knowledge instead of env.grid in describe_floor.
Fixes issue #994.

--------------------------------------------------------------------------------
cb94238103 | Robert Vollmert | 2010-03-02 14:57:17 +0100

Comment on spell_desc::power_cap.

--------------------------------------------------------------------------------
6329d26452 | Robert Vollmert | 2010-03-02 14:56:49 +0100

Bring zap power cap into spell_power_cap.
This is a bit complicated since the spellcasting power cap affects
range before the zap cap comes into play. So for fixed-range spells,
return the minimum of both caps, but only the spellcasting cap
else.

--------------------------------------------------------------------------------
472a009b4b | Robert Vollmert | 2010-03-02 14:56:49 +0100

Comment on ZAP_HIBERNATION power cap.

--------------------------------------------------------------------------------
76809b1cc0 | Robert Vollmert | 2010-03-02 14:56:49 +0100

spell_zap_power_cap: Translates zap power cap to spell power.

--------------------------------------------------------------------------------
ee5e51cb93 | Robert Vollmert | 2010-03-02 14:56:49 +0100

Add zap_power_cap.

--------------------------------------------------------------------------------
48e279ddb5 | Robert Vollmert | 2010-03-02 14:56:49 +0100

Spell-data like array index for zap_data.
This means not every call to zapping() will have to iterate through
half the array.

--------------------------------------------------------------------------------
1ccd207fa1 | Robert Vollmert | 2010-03-02 14:56:48 +0100

Move zap_data definition into zap-data.h.

--------------------------------------------------------------------------------
16abcfaea6 | Robert Vollmert | 2010-03-02 14:56:48 +0100

Move spell-to-zap mapping out from _do_cast into spl-zap.cc.

--------------------------------------------------------------------------------
3dc39b42dc | Robert Vollmert | 2010-03-02 14:56:48 +0100

Split spell repeat cancel out into _maybe_cancel_repeat.

--------------------------------------------------------------------------------
a3453bdfe1 | Robert Vollmert | 2010-03-02 14:56:48 +0100

Rename normal_cast to want_repeat and move into _do_cast.

--------------------------------------------------------------------------------
5ca4edf9cb | Robert Vollmert | 2010-03-02 14:56:48 +0100

Split big spell cast switch out of your_spells to _do_cast.

--------------------------------------------------------------------------------
250a367221 | Robert Vollmert | 2010-03-02 14:56:48 +0100

Make Alter Self abort instead of fail at low HP.
None of the other spells return SPRET_FAIL in that big switch,
and I don't see a good reason for the spell to "fail" at that
point.

--------------------------------------------------------------------------------
d45872be0b | Jude Brown | 2010-03-02 23:11:13 +1000

Further debug functionality for troves.
It appears that part of the issue was the cursed/uncursed, as well as
the ISFLAG_KNOW_TYPE not sufficing for known items that have't been
explicitly identified; likewise, there appears to be some issue with nil
versus 0 for pluses that I haven't quite sorted out yet.

--------------------------------------------------------------------------------
4e2006d869 | Jude Brown | 2010-03-02 23:10:20 +1000

Use new item identified wrapper for troves.
We don't really care about curse/uncursed status of items.

--------------------------------------------------------------------------------
59714144a0 | Jude Brown | 2010-03-02 23:08:16 +1000

Improvement on the identified wrapper. (greensnark)
As Darshan points out, ISFLAG_KNOW_TYPE is not enough, and
item_type_known is better used in this instance where an item is
implicitly, rather than explicitly known.

--------------------------------------------------------------------------------
f8970960b1 | Adam Borowski | 2010-03-02 11:59:52 +0100

Un-unroll a loop.

--------------------------------------------------------------------------------
b52192dfd5 | Adam Borowski | 2010-03-02 11:17:35 +0100

Set default hp_warning to 30% (dpeg, usability).

--------------------------------------------------------------------------------
a0e82e6a33 | Jude Brown | 2010-03-02 09:07:33 +1000

Update credits to better reflect Napkin and rax's roles within DCSS.
Their contributions to the community are immense simply with hosting the
public telnet servers, let alone their other contributions to the game
and its community (tourney organisation, setting up the Mantis tracker,
etc). I feel that more than just a mention in the list of names is
needed.

Wording may need tweaking (or rewriting), but it's a start.

--------------------------------------------------------------------------------
5f28e48fb2 | Robert Vollmert | 2010-03-01 20:57:38 +0100

Remove now-unused ref_skill (forgot in last commit).

--------------------------------------------------------------------------------
a52e83e3f4 | Robert Vollmert | 2010-03-01 20:15:09 +0100

Remove "normalization" of exercise amount for Sif piety.
The number of gained skill points was previously scaled by
relative aptitude, putting species with good aptitudes at
a piety disadvantage. From my reading of the exercise code,
taking the straight skill point increase is likely to be
more fair.

--------------------------------------------------------------------------------
e7b617125a | Johanna Ploog | 2010-03-01 14:42:18 +0100

Use Nobody's hexagonal wax wall tile.

--------------------------------------------------------------------------------
bbc0c16335 | Johanna Ploog | 2010-03-01 11:02:38 +0100

Handle the FAQ's labyrinth entry's numbered list correctly in the html.

--------------------------------------------------------------------------------
ead0a8fd40 | Johanna Ploog | 2010-03-01 11:02:38 +0100

Fix overly long FAQ entry, improve FAQ entry on labyrinths.

--------------------------------------------------------------------------------
8b594a021d | Eino Keskitalo | 2010-03-01 11:03:23 +0200

Experimentally tweak the demon pentagram colouring.
The base pentagram is darkish gray. Colour one point of star for each level of 
demon tier; i.e. imps get one star point coloured, while the rest of the 
pentagram is darkish grey. Fiends etc get the full pentagram coloured.

I thought I'd go ahead and commit this for comments - can be reverted if it 
doesn't work.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
28dc3dd5a0 | Eino Keskitalo | 2010-03-01 09:44:46 +0200

Fix Killer Klown chaoticness check.
Couldn't check AF_KLOWN, as it was switched out for another attack flavour.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a689aa1c41 | Eino Keskitalo | 2010-03-01 09:44:44 +0200

Mention chaoticness when looking at monsters, like mindless.
I think with the new targeting, this isn't too noisy.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
36dd705a79 | Jude Brown | 2010-03-01 14:45:57 +1000

Add missing Donald speech for Vehumet.
Also enables speech for Vaults: if he follows you out of the Hall of
Blades or the Crypt, this at least means that you'll get some
interesting flavour. He doesn't currently generate in that area, though.

--------------------------------------------------------------------------------
2ec70c5e9e | Robert Vollmert | 2010-03-01 02:24:29 +0100

Move old_best_skill calculation into _gain_skill_level.

--------------------------------------------------------------------------------
b1b62d287b | Robert Vollmert | 2010-03-01 02:20:13 +0100

Further _exercise2 cleanup: merge bonus and deg.

--------------------------------------------------------------------------------
9a9b99c793 | Robert Vollmert | 2010-03-01 02:06:12 +0100

Restore cross training bonus to 0.3 levels.
random2(30) is not the same as 10 * random2(3).

Cross training should once again be roughly twice as fast, instead
of 2.5 times as fast.

--------------------------------------------------------------------------------
956137cf33 | Robert Vollmert | 2010-03-01 01:57:19 +0100

_exercise2: rename skill_change to cost.

--------------------------------------------------------------------------------
5b2f97eebd | Robert Vollmert | 2010-03-01 01:57:19 +0100

Further _exercise2 cleanup.
Also restore lost scaling of bonus (efa16086).

--------------------------------------------------------------------------------
e5f7af1132 | Robert Vollmert | 2010-03-01 01:57:19 +0100

_exercise2: clean up handling of fractional learning.
I'm pretty sure these transformations result in equivalent code,
but it's also likely it doesn't really do what was intended.

--------------------------------------------------------------------------------
4264026ecc | Robert Vollmert | 2010-03-01 01:57:18 +0100

Extract discounted throwing skills.

--------------------------------------------------------------------------------
423fec0e47 | Johanna Ploog | 2010-03-01 01:52:29 +0100

Tweak tutorial's long -More- line.
Could be misinterpreted to mean that pressing Ctrl-P right away
would pull up the message history.

--------------------------------------------------------------------------------
5902f45a1b | Johanna Ploog | 2010-03-01 01:52:29 +0100

Some more FAQ tweaks, use italics for mentioned txt files in the html.

--------------------------------------------------------------------------------
292af13e39 | Johanna Ploog | 2010-03-01 01:52:29 +0100

Update FAQ.txt, explain about FAQ2html.pl in introductory comment.

--------------------------------------------------------------------------------
d9e7be0551 | Johanna Ploog | 2010-03-01 01:52:29 +0100

Tiny Xom speech tweak.

--------------------------------------------------------------------------------
960b81b118 | Robert Vollmert | 2010-03-01 00:29:39 +0100

Further _exercise2 cleanup.

--------------------------------------------------------------------------------
f41d3d46e1 | Robert Vollmert | 2010-03-01 00:29:38 +0100

Some clarifying comments and safer range checking.

--------------------------------------------------------------------------------
a0ff248864 | Robert Vollmert | 2010-03-01 00:29:37 +0100

Simplify crosstraining checks.

--------------------------------------------------------------------------------
522c0f9efb | Robert Vollmert | 2010-03-01 00:29:37 +0100

Split _exercise2 up a little.
Extract weapon crosstrain bonus and magic exercise difficulty into
separate functions.

--------------------------------------------------------------------------------
59508909b0 | Enne Walker | 2010-02-28 16:11:35 -0500

[941] Fix tiles issue with umlauts in the path.

--------------------------------------------------------------------------------
cba1b3d106 | Enne Walker | 2010-02-28 15:31:23 -0500

Update tiles documentation about lag issues.

--------------------------------------------------------------------------------
706e8edee1 | Enne Walker | 2010-02-28 15:16:25 -0500

Add a maximum FPS rate limiter for tiles.
As a number of issues have come from redrawing the screen too quickly,
cap tiles FPS to 30Hz so that it will never bother redrawing any faster.

--------------------------------------------------------------------------------
1d2570ce72 | Enne Walker | 2010-02-28 15:16:25 -0500

Fix targeting mode performance issues in tiles.
Because targeting mode actually returns input (CK_MOUSE_MOVE), the input
loop always exited (and then redrew the screen) after even the slightest
mouse movement.  This cause all sorts of lag when moving the mouse around
to target.  Now, if we get multiple mouse movements, they will all be
handled silently before redrawing the screen.  Additionally, input is
only returned when the mouse cursor moves to a semantically different
location.

--------------------------------------------------------------------------------
b0b15b1a11 | Johanna Ploog | 2010-02-28 14:03:55 -0600

Replace demon pentagram icons with smaller designs.
They hide much less of the base tile now, and still look pentagrams.
I also increased the contrast in their coloration.

The old, larger pentagram tiles have been added to the UNUSED folder.
(cherry picked from commit 93513b1b0f57695cd1f403f3dda530959e9dfb57)

--------------------------------------------------------------------------------
9872b1e334 | Johanna Ploog | 2010-02-28 14:03:46 -0600

For non-ego ponderous armour, use ponderous brand tile.
If the artefact already has an ego property, its brand tile take
precedence. Otherwise, use the ponderous tile.
(cherry picked from commit 07ab23ddaf935a1ff3d2732e814c4c14398fc342)

--------------------------------------------------------------------------------
4d0dd2096c | Darshan Shaligram | 2010-02-28 14:02:54 -0600

stash_filter now affects only ^F search; filtered items are still remembered by 
the stash tracker.
Making stash_filter affect only display prevents players from gaming Troves by
tweaking their stash_filter settings. It will also help players who
accidentally filter too much; when they discover their error they can just fix
their filters without having to re-explore the dungeon to locate filtered
items.
(cherry picked from commit 2a5fc67b343500b34c4501eae75c27486acf123c)

--------------------------------------------------------------------------------
65a4e211e1 | Darshan Shaligram | 2010-02-28 14:02:16 -0600

Increase speed for kraken and tentacles (dpeg). (cherry picked from commit 
cee7469671857d44d007cca606c9f83cc81bd905)

--------------------------------------------------------------------------------
f1ad5b1887 | Darshan Shaligram | 2010-02-28 14:02:09 -0600

Use better islanding for atolls.
Instead of clamping radius to max when building an atoll, build atolls as a
large-radius island with a caldera of smaller radius. This allows atoll forms
to have irregular outlines.
(cherry picked from commit bc3c092ba37f9fee15fd2c6803c67e30e0dc2101)

--------------------------------------------------------------------------------
3195fa6d2e | Johanna Ploog | 2010-02-28 14:01:53 -0600

Don't guarantee Jiyva piety gain 1 when jelly's eat items of low value.
Also fix spacing.
(cherry picked from commit 68cdff30738f052afa9451466b9cf942e1a3353f)

--------------------------------------------------------------------------------
d863afd3c6 | Shayne Halvorson | 2010-02-28 14:01:39 -0600

Fix excessive Jiyva piety gain
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>
(cherry picked from commit 82848caa1fcbae8b5a467931bc6272ccc3f88e1a)

--------------------------------------------------------------------------------
4cb08c41a3 | Johanna Ploog | 2010-02-28 14:00:59 -0600

Fix deep elf fighters etc. never starting with a bow.
Because of their conjuration spells deep elf fighters, a bow as
starting equipment was always disallowed, and they would be unarmed
instead. The relevant check is now skipped during the generation of
monster starting equipment, as is the _has_ranged_spell check for
monsters that already have a launcher in inventory.

I'll have to see if there are other monsters that have Conj spells
and are eligible for launchers as starting equipment.
(cherry picked from commit 7b09839b68519149993f10c2700b46a1420f4460)

--------------------------------------------------------------------------------
ba2b9e05d6 | Robert Vollmert | 2010-02-28 14:00:33 -0600

Make slouch not affect sleeping monsters. [951]
It does affect sleep-walking monsters.
(cherry picked from commit 7dc6e6362aef020279e83eb5db849731993c97c8)

--------------------------------------------------------------------------------
f3eaa3fec6 | Robert Vollmert | 2010-02-28 14:00:25 -0600

autofight.lua: Clarify failure message (no unsafe monsters). (cherry picked 
from commit 09a42d0c3024250eb1931a19af0acd2d30acec9f)

--------------------------------------------------------------------------------
c7e94a91aa | Robert Vollmert | 2010-02-28 14:00:19 -0600

autofight.lua: Use monster_info::is_safe. (cherry picked from commit 
8e6b2a9d4110d2727e7339184d2cd5cc75a7d1c5)

--------------------------------------------------------------------------------
27ea066b24 | Robert Vollmert | 2010-02-28 14:00:06 -0600

Revert "Use mons_is_safe check for autofight.lua."
This reverts commit a4138c893d44489c23d6528122a8b956cd9d7390.

It was a good change, but I'm moving the mons_is_safe check
into monster_info for greater flexibility on the Lua side.
(cherry picked from commit d52bb35bff68b4a72cd0c99625697474fa157ec0)

--------------------------------------------------------------------------------
61da74c04e | Robert Vollmert | 2010-02-28 13:59:58 -0600

Export monster_info::is_safe to Lua. (cherry picked from commit 
b284cb6bbdc94407c68b58504108ca753d1c7a94)

--------------------------------------------------------------------------------
8eaa93a4a0 | Darshan Shaligram | 2010-03-01 01:29:37 +0530

Revert "Fix an off-by-1 error which broke freed slave coloring."
init_pair(64, ...) is bad news if COLOR_PAIRS=64.

The original commits by sorear fix real problems, so we'll revisit these later;
this revert is just a temporary fix for various cursor and colour issues.

This reverts commit e9e87715e5725e2651ac1ae8204a7648cabffee8.

--------------------------------------------------------------------------------
93513b1b0f | Johanna Ploog | 2010-02-28 21:15:30 +0100

Replace demon pentagram icons with smaller designs.
They hide much less of the base tile now, and still look pentagrams.
I also increased the contrast in their coloration.

The old, larger pentagram tiles have been added to the UNUSED folder.

--------------------------------------------------------------------------------
07ab23ddaf | Johanna Ploog | 2010-02-28 21:15:29 +0100

For non-ego ponderous armour, use ponderous brand tile.
If the artefact already has an ego property, its brand tile take
precedence. Otherwise, use the ponderous tile.

--------------------------------------------------------------------------------
edff9f4edd | Robert Vollmert | 2010-02-28 13:59:32 -0600

Add monster_info::m_is_safe storing result of mons_is_safe.
Since mons_is_safe passes a monster_info to lua, this required
a constructor flag to avoid stack overflow.
(cherry picked from commit b62ce6897d486eea0ba3c6325673b953d26df3f9)

--------------------------------------------------------------------------------
c10212c7c1 | Robert Vollmert | 2010-02-28 13:58:49 -0600

Fix wizlab portal description (missing space). (cherry picked from commit 
76205da81115fdf37ddcd94a15e424e16ed05f8d)

--------------------------------------------------------------------------------
0be7ee45d7 | Darshan Shaligram | 2010-02-28 13:58:39 -0600

Remove kraken handicap in shallow water. (cherry picked from commit 
2b40d947ab7dbc33b5369f2194c319374f7ea487)

--------------------------------------------------------------------------------
763a0411d0 | Johanna Ploog | 2010-02-28 13:57:55 -0600

Add more placeholders for yet to-be-added portal vault entry tiles. (cherry 
picked from commit e4f7ee766d4fb9cb9824e5d8be5ab20e135b2c5d)

--------------------------------------------------------------------------------
fead1099b7 | Johanna Ploog | 2010-02-28 13:57:44 -0600

Further documentation of tile_runrest_rate. (cherry picked from commit 
d023208b20c26cbf2ab3dd07ee09e85703f029c9)

--------------------------------------------------------------------------------
615de78c3a | Johanna Ploog | 2010-02-28 13:57:23 -0600

Clarify autofight.lua documentation. (cherry picked from commit 
75f00dde63e861c09fbff893ed6d1ea757476bf5)

--------------------------------------------------------------------------------
cb108ad0c0 | Charles Otto | 2010-02-28 13:55:23 -0600

Fix occasional crashes when updating mpane with zombies in view
This should address a couple crashes reported by elliptic:
c.d.o/morgues/trunk/hyperbolic/crash-hyperbolic-20100204-002305.txt
c.d.o/morgues/trunk/hyperbolic/crash-hyperbolic-20100221-212035.txt

Basically a crash occurred when sorting monster info to display in the
monster pane, when a lot of zombies were in view. I think this was due
to the comparison function passed to std::sort handling zombies
inconsistently.

monster_info::less_than returned true immediately if the left hand
monster's base type was less than the right hand monster's, but if the
left side's base type wasn't less it went on to do a comparison based
on the monsters' names--so it wouldn't necessarily return false if
(m2.m_mon->base_type) was less than (m1.m_mon->base_type), but if you
called it with m1 and m2 reversed it would return true.

This was apparently bad enough behavior that std::sort crashed for some
groups of zombies. I was able to reproduce the crash earlier, and after
this change I can't get it to crash anymore.
(cherry picked from commit 71131cef35549b4c808e9b7fb730886083eae855)

--------------------------------------------------------------------------------
0321075229 | Johanna Ploog | 2010-02-28 13:53:57 -0600

Fix #969: Nessos not firing his bow.
The new blink variant spells (blink close/range, blink other, etc.)
weren't handled in _ms_ranged_spell, which led to Nessos being
considered a spellcaster with ranged attack spells who should thus
not "bother" with non-magic ranged attacks.

If we have any monsters who are supposed to have both magic and
non-magic ranged attacks (do we?), we might have to loosen the
restriction in _handle_throw().
(cherry picked from commit 2ea9d2e9c2da0178d0521ad94bad641c70c6815c)

--------------------------------------------------------------------------------
0e454a0b31 | Jude Brown | 2010-02-28 13:53:50 -0600

Give efreeti flame trails. (#968).
The check was against monster->type == MONS_EFREET, not mons_genus ==
MONS_EFREET, meaning that Azrael did not get a flame trail. I see no
issue with him getting one, especially as it is thematically
interesting.
(cherry picked from commit 198deb0eb0af9cce503a6d50389b4e4073c2dc38)

--------------------------------------------------------------------------------
c88f1cf6e5 | Johanna Ploog | 2010-02-28 13:47:24 -0600

Use mons_is_safe check for autofight.lua.
When using the autofight macro, we're probably not interested in moving
towards allies or bashing plants. Using mons_is_safe for this might be
overly restrictive, but it's a definite improvement.
(cherry picked from commit a4138c893d44489c23d6528122a8b956cd9d7390)

--------------------------------------------------------------------------------
1344c7a209 | Johanna Ploog | 2010-02-28 13:46:36 -0600

In autofight.lua, check for traversable features. (cherry picked from commit 
433a4fa2a3d314bb7bc7fe8a49a2c6290b8c6a3f)

--------------------------------------------------------------------------------
2a5fc67b34 | Darshan Shaligram | 2010-02-28 21:52:44 +0530

stash_filter now affects only ^F search; filtered items are still remembered by 
the stash tracker.
Making stash_filter affect only display prevents players from gaming Troves by
tweaking their stash_filter settings. It will also help players who
accidentally filter too much; when they discover their error they can just fix
their filters without having to re-explore the dungeon to locate filtered
items.

--------------------------------------------------------------------------------
cee7469671 | Darshan Shaligram | 2010-02-28 21:44:36 +0530

Increase speed for kraken and tentacles (dpeg).

--------------------------------------------------------------------------------
bc3c092ba3 | Darshan Shaligram | 2010-02-28 21:28:27 +0530

Use better islanding for atolls.
Instead of clamping radius to max when building an atoll, build atolls as a
large-radius island with a caldera of smaller radius. This allows atoll forms
to have irregular outlines.

--------------------------------------------------------------------------------
68cdff3073 | Johanna Ploog | 2010-02-28 17:10:27 +0100

Don't guarantee Jiyva piety gain 1 when jelly's eat items of low value.
Also fix spacing.

--------------------------------------------------------------------------------
82848caa1f | Shayne Halvorson | 2010-02-28 17:01:04 +0100

Fix excessive Jiyva piety gain
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
7b09839b68 | Johanna Ploog | 2010-02-28 16:45:58 +0100

Fix deep elf fighters etc. never starting with a bow.
Because of their conjuration spells deep elf fighters, a bow as
starting equipment was always disallowed, and they would be unarmed
instead. The relevant check is now skipped during the generation of
monster starting equipment, as is the _has_ranged_spell check for
monsters that already have a launcher in inventory.

I'll have to see if there are other monsters that have Conj spells
and are eligible for launchers as starting equipment.

--------------------------------------------------------------------------------
7dc6e6362a | Robert Vollmert | 2010-02-28 15:24:27 +0100

Make slouch not affect sleeping monsters. [951]
It does affect sleep-walking monsters.

--------------------------------------------------------------------------------
09a42d0c30 | Robert Vollmert | 2010-02-28 15:24:27 +0100

autofight.lua: Clarify failure message (no unsafe monsters).

--------------------------------------------------------------------------------
8e6b2a9d41 | Robert Vollmert | 2010-02-28 15:24:27 +0100

autofight.lua: Use monster_info::is_safe.

--------------------------------------------------------------------------------
d52bb35bff | Robert Vollmert | 2010-02-28 15:24:26 +0100

Revert "Use mons_is_safe check for autofight.lua."
This reverts commit a4138c893d44489c23d6528122a8b956cd9d7390.

It was a good change, but I'm moving the mons_is_safe check
into monster_info for greater flexibility on the Lua side.

--------------------------------------------------------------------------------
b284cb6bbd | Robert Vollmert | 2010-02-28 15:24:26 +0100

Export monster_info::is_safe to Lua.

--------------------------------------------------------------------------------
b62ce6897d | Robert Vollmert | 2010-02-28 15:24:26 +0100

Add monster_info::m_is_safe storing result of mons_is_safe.
Since mons_is_safe passes a monster_info to lua, this required
a constructor flag to avoid stack overflow.

--------------------------------------------------------------------------------
76205da811 | Robert Vollmert | 2010-02-28 15:24:26 +0100

Fix wizlab portal description (missing space).

--------------------------------------------------------------------------------
2b40d947ab | Darshan Shaligram | 2010-02-28 19:49:12 +0530

Remove kraken handicap in shallow water.

--------------------------------------------------------------------------------
60bad9becc | Darshan Shaligram | 2010-02-28 19:49:12 +0530

Revert "Simplify the handling of the background_colour option."
This reverts commit 55f480d00c2530b35f35e666826d4b4766ef1d33.

--------------------------------------------------------------------------------
e4f7ee766d | Johanna Ploog | 2010-02-28 14:15:25 +0100

Add more placeholders for yet to-be-added portal vault entry tiles.

--------------------------------------------------------------------------------
d023208b20 | Johanna Ploog | 2010-02-28 14:05:05 +0100

Further documentation of tile_runrest_rate.

--------------------------------------------------------------------------------
75f00dde63 | Johanna Ploog | 2010-02-28 13:56:25 +0100

Clarify autofight.lua documentation.

--------------------------------------------------------------------------------
0521f7cca3 | Steven Noonan | 2010-02-27 22:10:00 -0800

LuaJIT 2.x: added as submodule (for testing purposes)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f6f5a2ea24 | Jude Brown | 2010-02-28 15:06:44 +1000

More test suites for sorting out issues with troves.
Not necessary for 0.6 consumption!

--------------------------------------------------------------------------------
71131cef35 | Charles Otto | 2010-02-27 23:16:01 -0500

Fix occasional crashes when updating mpane with zombies in view
This should address a couple crashes reported by elliptic:
c.d.o/morgues/trunk/hyperbolic/crash-hyperbolic-20100204-002305.txt
c.d.o/morgues/trunk/hyperbolic/crash-hyperbolic-20100221-212035.txt

Basically a crash occurred when sorting monster info to display in the
monster pane, when a lot of zombies were in view. I think this was due
to the comparison function passed to std::sort handling zombies
inconsistently.

monster_info::less_than returned true immediately if the left hand
monster's base type was less than the right hand monster's, but if the
left side's base type wasn't less it went on to do a comparison based
on the monsters' names--so it wouldn't necessarily return false if
(m2.m_mon->base_type) was less than (m1.m_mon->base_type), but if you
called it with m1 and m2 reversed it would return true.

This was apparently bad enough behavior that std::sort crashed for some
groups of zombies. I was able to reproduce the crash earlier, and after
this change I can't get it to crash anymore.

--------------------------------------------------------------------------------
27048d13d1 | Jude Brown | 2010-02-28 11:54:04 +1000

Test suite for debugging Trove portal vaults.

--------------------------------------------------------------------------------
8a4ce5da4f | Jude Brown | 2010-02-28 11:43:44 +1000

Change portal debug command to x-" (jpeg).
Hopefully this is a more adequate symbol for the e'x'amine screen.
Please let me know if there are any conflicts with it!

--------------------------------------------------------------------------------
2ea9d2e9c2 | Johanna Ploog | 2010-02-28 02:30:10 +0100

Fix #969: Nessos not firing his bow.
The new blink variant spells (blink close/range, blink other, etc.)
weren't handled in _ms_ranged_spell, which led to Nessos being
considered a spellcaster with ranged attack spells who should thus
not "bother" with non-magic ranged attacks.

If we have any monsters who are supposed to have both magic and
non-magic ranged attacks (do we?), we might have to loosen the
restriction in _handle_throw().

--------------------------------------------------------------------------------
198deb0eb0 | Jude Brown | 2010-02-28 09:57:01 +1000

Give efreeti flame trails. (#968).
The check was against monster->type == MONS_EFREET, not mons_genus ==
MONS_EFREET, meaning that Azrael did not get a flame trail. I see no
issue with him getting one, especially as it is thematically
interesting.

--------------------------------------------------------------------------------
6e22aa597e | Charles Otto | 2010-02-27 18:02:59 -0500

Fix an unsafe dereference in mons_speaks
monster->get_foe() can return NULL in mons_speaks, so using
foe->as_monster() without checking for NULL foe will cause a crash in
some circumstances (e.g. a wandering mushroom kills a monster, then
dies of HD loss before getting a new target).

--------------------------------------------------------------------------------
a4138c893d | Johanna Ploog | 2010-02-27 23:08:33 +0100

Use mons_is_safe check for autofight.lua.
When using the autofight macro, we're probably not interested in moving
towards allies or bashing plants. Using mons_is_safe for this might be
overly restrictive, but it's a definite improvement.

--------------------------------------------------------------------------------
433a4fa2a3 | Johanna Ploog | 2010-02-27 23:08:33 +0100

In autofight.lua, check for traversable features.

--------------------------------------------------------------------------------
716925a64b | Enne Walker | 2010-02-27 12:39:26 -0600

Revert accidental settings commit.
Oops.
(cherry picked from commit 6e482f8a0866beea0a3c20882efc6fd30662c735)

--------------------------------------------------------------------------------
6e482f8a08 | Enne Walker | 2010-02-27 13:36:57 -0500

Revert accidental settings commit.
Oops.

--------------------------------------------------------------------------------
f8ff305c72 | Enne Walker | 2010-02-27 12:34:52 -0600

Rename tile_runrest_redraw to tile_runrest_rate.
This makes it more consistent with other options.
(cherry picked from commit 97bdc6f6f59613f1be28700c2f9b02775be4b71f)

--------------------------------------------------------------------------------
e643c9ec1e | Enne Walker | 2010-02-27 12:34:21 -0600

[653] Redraw screen less when resting in tiles.
I suspect that Crawl was running very slowly due to how frequently the
screen was being redrawn when resting (due to very fast turns).  I hate
adding Yet Another Option, but it seemed the right thing to do here.  The
default value needs testing by somebody who can reproduce this problem.
(cherry picked from commit 74e6c334063619f236874acab5394ab621663ed4)

--------------------------------------------------------------------------------
42c4ffd241 | Charles Otto | 2010-02-27 12:33:37 -0600

Don't crash if dying to a beam whose thrower is already dead
A crash would occur when a monster killed themselves with a beam, and
the beam killed the player after that. In one case Nikola killed
himself with chain lightning, then the next arc killed the player
causing a crash. I imagine an unusual lightning bounce could trigger
the same issue.

This commit avoids the crash, but the killer is listed as a program
bug, so it's not quite ideal.
(cherry picked from commit b821ea7bd520e23376597ff174986497edad3730)

--------------------------------------------------------------------------------
db8c1513ec | Johanna Ploog | 2010-02-27 12:33:16 -0600

Fix typo in the change log. (cherry picked from commit 
08171f070a66cec9c2db41906d034c4590a22a96)

--------------------------------------------------------------------------------
022dc60a4a | Johanna Ploog | 2010-02-27 12:33:08 -0600

Remove demonspawn overhaul from the change log. (cherry picked from commit 
20ae8d6639e99a7fa8d13b211e5fe3910024dcfb)

--------------------------------------------------------------------------------
97bdc6f6f5 | Enne Walker | 2010-02-27 13:31:44 -0500

Rename tile_runrest_redraw to tile_runrest_rate.
This makes it more consistent with other options.

--------------------------------------------------------------------------------
404e5186fb | Jude Brown | 2010-02-27 12:31:10 -0600

Milestones for Labyrinths.
There were two solutions for this: the first involved always placing a
1x1 dummy map with an epilogue, for customisability and ensuring that
the milestone is only made after actually entering the labyrinth--the
other was to just add the milestone after the messages.

Seeing as there shouldn't be generation issues with placing the
milestone after the entry messages, I chose that option instead.
(cherry picked from commit c7e232387f1bcda8657402fd02bf0849475a58db)

--------------------------------------------------------------------------------
74e6c33406 | Enne Walker | 2010-02-27 13:20:38 -0500

[653] Redraw screen less when resting in tiles.
I suspect that Crawl was running very slowly due to how frequently the
screen was being redrawn when resting (due to very fast turns).  I hate
adding Yet Another Option, but it seemed the right thing to do here.  The
default value needs testing by somebody who can reproduce this problem.

--------------------------------------------------------------------------------
b821ea7bd5 | Charles Otto | 2010-02-27 11:49:24 -0500

Don't crash if dying to a beam whose thrower is already dead
A crash would occur when a monster killed themselves with a beam, and
the beam killed the player after that. In one case Nikola killed
himself with chain lightning, then the next arc killed the player
causing a crash. I imagine an unusual lightning bounce could trigger
the same issue.

This commit avoids the crash, but the killer is listed as a program
bug, so it's not quite ideal.

--------------------------------------------------------------------------------
08171f070a | Johanna Ploog | 2010-02-27 17:48:54 +0100

Fix typo in the change log.

--------------------------------------------------------------------------------
20ae8d6639 | Johanna Ploog | 2010-02-27 17:17:20 +0100

Remove demonspawn overhaul from the change log.

--------------------------------------------------------------------------------
3340529f1d | Darshan Shaligram | 2010-02-27 20:01:01 +0530

Report parent level in branch entry milestones.
When generating a milestone for entering a new area, include the level
containing the entry stair/portal in the 'oplace' key. This will allow Henzell
to report the dungeon level containing the Lair entrance, wizlab, etc.

This isn't perfect: oplace will be plain Wrong when the player uses the Trowel
card to create portal vaults outside the main dungeon (such as Trowel in
Pandemonium). Trowel is generally problematic outside the dungeon
(see http://crawl.develz.org/mantis/view.php?id=960).

Since Ziggurats can legitimately be generated in Pandemonium, generate ziggurat
entry milestones in the onclimb event of the ziggurat portal, instead of
waiting until the player has entered the Ziggurat. Unfortunately this means
that the entry place for Ziggurats will be reported in the 'place' field
instead of 'oplace'.

I recommend that this change not be included in 0.6, since we need additional
work to fix Trowel and other issues before we have full milestone sanity.

--------------------------------------------------------------------------------
70f0ac54e5 | Jude Brown | 2010-02-27 23:14:03 +1000

Framework for debugging portal vaults using 'x-d'.
'd' doesn't look like it's currently being used for anything else. 'D'
is currently used for monster debug information, so it makes sense to
have 'd' apply to this.

Currently, it merely returns the string value of the 'portal_debug'
property of the portal in question. If there is no portal, or there is
no property, it will return nothing. Using the standard set of portal
vault markers that use unmangle, it should be possible to store
'portal_debug' as a debugging function.

In other instances, such as TroveMarker, it's necessary to write the
functionality into the property call, and write a separate function to
do the actual debugging.

I don't believe this breaks save compatibility, but if it does, it can
quickly be reverted. Not necessary for 0.6, but it is currently
necessary for debugging why Troves aren't functioning exactly as
intended.

--------------------------------------------------------------------------------
c7e232387f | Jude Brown | 2010-02-27 20:51:02 +1000

Milestones for Labyrinths.
There were two solutions for this: the first involved always placing a
1x1 dummy map with an epilogue, for customisability and ensuring that
the milestone is only made after actually entering the labyrinth--the
other was to just add the milestone after the messages.

Seeing as there shouldn't be generation issues with placing the
milestone after the entry messages, I chose that option instead.

--------------------------------------------------------------------------------
5747b8b8f9 | Darshan Shaligram | 2010-02-27 00:49:07 -0600

Fix overview not reporting D:1 as explored correctly.
Add a check for the player being physically in the same branch, and report the
current level if that's the case and the travel cache doesn't contain the
current level.

An alternative to this would be to update the travel cache on D:1 in newgame,
but that demands an additional special case for **CK of Lugonu, who enter
through the Abyss (travel cache does not update when moving from
Abyss/Pan->Dungeon).
(cherry picked from commit f1a4b1c0547b097a970ff9140227f1ef80fb5ce2)

--------------------------------------------------------------------------------
b377e5c856 | Jesse Luehrs | 2010-02-27 00:49:02 -0600

fix travel cache not being initialized until the X map is viewed
this fixes the ^O screen not showing correct branch depths until you
view the X map
(cherry picked from commit c6b7860ed39c66221c8b3b4b5cc8b4b4f0eadf92)

--------------------------------------------------------------------------------
27adc11345 | Jesse Luehrs | 2010-02-27 00:48:56 -0600

fix hiding nonexistent lair branch in overview (cherry picked from commit 
b97dc12012d05df31d5ff3eb93168580b61f99d0)

--------------------------------------------------------------------------------
f1a4b1c054 | Darshan Shaligram | 2010-02-27 11:52:53 +0530

Fix overview not reporting D:1 as explored correctly.
Add a check for the player being physically in the same branch, and report the
current level if that's the case and the travel cache doesn't contain the
current level.

An alternative to this would be to update the travel cache on D:1 in newgame,
but that demands an additional special case for **CK of Lugonu, who enter
through the Abyss (travel cache does not update when moving from
Abyss/Pan->Dungeon).

--------------------------------------------------------------------------------
c6b7860ed3 | Jesse Luehrs | 2010-02-26 23:31:46 -0600

fix travel cache not being initialized until the X map is viewed
this fixes the ^O screen not showing correct branch depths until you
view the X map

--------------------------------------------------------------------------------
b97dc12012 | Jesse Luehrs | 2010-02-26 22:54:46 -0600

fix hiding nonexistent lair branch in overview

--------------------------------------------------------------------------------
0c53c25766 | Stefan O'Rear | 2010-02-26 20:43:54 -0600

Revert demonspawn to 0.5 system
The 0.7 system, while superior, is insufficiently complete to be worthy of
a release version of the game.

Other changes to the mutation system - in particular, HP-based abilities
and passive mapping - are not so reverted.

--------------------------------------------------------------------------------
041ae854ca | Johanna Ploog | 2010-02-26 20:38:45 -0600

Fix #954: Bad linebreak in xe documentation. (cherry picked from commit 
dde1465c2478f6c6be2ec9299474f38b0a6fe5d4)

--------------------------------------------------------------------------------
2a69eb68b7 | Charles Otto | 2010-02-26 20:38:06 -0600

Make bolt::agent return the last actor to reflect a beam
If a beam is reflected make bolt::agent return a pointer to the last
actor to reflect the beam rather than the one who originally threw it.

This fixes a crash that occurred when a monster was killed by a
reflected arrow of reaping (the reaping code didn't handle the agent
already being dead), and also makes attribution for status inflictions
caused by missiles more consistent (now e.g. monster poisoning caused
by a reflected poisoned arrow is attributed to the player, consistent
with how killing a monster with a reflected arrow is considered a
player kill).

I didn't see any obvious show stoppers caused by this change, the fact
that now the chance for a reflected needle to cause an affliction
depends on the stats of the last actor to reflect rather than the one
that fired the needle is odd, but it's a niche situation so I don't
imagine it will be noticeable.
(cherry picked from commit 539f9623ce81c8d5071a87a6206b21db04961dca)

--------------------------------------------------------------------------------
a1980cadbe | Charles Otto | 2010-02-26 20:27:12 -0600

Always prompt for self targeting with non SPFLAG_HELPFUL spells
Part 2 of mantis issue 923, evaporate not prompting when you target
yourself. The may_target_self parameter passed to spell_direction was
true for area spells, false otherwise with the apparent intention of
canceling automatically at self target of non-aoe spells, but
may_target_self actually just controls whether or not a prompt is given
on self targeting, the final parameter of spell_direction
(cancel_at_self) controls whether or not self targeting is
automatically canceled.

Anyway, I changed the value used for may_target_self to depend on
SPFLAG_HELPFUL so the user is always prompted when self-targeting
non-helpful spells regardless of whether or not they have an aoe. If
someone is feeling ambitious they can change the value passed for
cancel_at_self to always cancel self targeting with non-aoe spells.

This commit also removed a "are you sure you want to target yourself"
prompt that was used as a special case for meph cloud.
(cherry picked from commit e1006d962d2ed32d1141649c520cf5c02fd18b9a)

--------------------------------------------------------------------------------
f65b998c6f | Charles Otto | 2010-02-26 20:24:12 -0600

Don't override input beam range in cast_evaporate
Part of mantis issue 923, don't let evaporate get extra range by
casting with direction keys.
(cherry picked from commit 738da62e3ed79aebafd4045941dbd1c420bc52a3)

--------------------------------------------------------------------------------
9b4ef462e4 | Darshan Shaligram | 2010-02-26 20:21:33 -0600

[942] Generate ziggurat milestones in epilogue to avoid milestone spam for 
levelgen failure. (cherry picked from commit 
8627d4b0561e6595c95f10e914cedd91f276d1f3)

--------------------------------------------------------------------------------
0e0ea848a7 | Darshan Shaligram | 2010-02-26 19:43:33 -0600

[362] Make kraken tentacles water-only and increase their base speed to 16. 
(cherry picked from commit 6529f3d32f7b49810c06df49f77adaa721ec3d2f)

--------------------------------------------------------------------------------
d571f6523b | Johanna Ploog | 2010-02-26 19:43:08 -0600

Fix tutorial message for monster descriptions without stats/resistances. 
(cherry picked from commit 82cd71c6fd0e33dfaca35da984351228e1b6f9b4)

--------------------------------------------------------------------------------
056773587e | Robert Vollmert | 2010-02-26 19:42:32 -0600

Use CSET_ASCII for tiles builds.
It was using CSET_IBM before for unclear reasons, which was causing
issues. Let me know if there was a good reason.

Fixes issue #719.
(cherry picked from commit a6f8ba18ae2fb325e862c02f0443d435e8a07b45)

--------------------------------------------------------------------------------
316a336168 | Robert Vollmert | 2010-02-26 19:42:14 -0600

Properly encode unicode book glyph in command help.
Fixes book symbol display with char_set=unicode.
(cherry picked from commit f004eb0dbfa71d8b6a9deb4cc64f9c956c2fcea9)

--------------------------------------------------------------------------------
5890a6346a | Robert Vollmert | 2010-02-26 19:42:01 -0600

Fix Ctrl-X display of unicode items.
Fixes issue #378.

Extracted tutorial.cc:_colourize_glyph as glyph_to_tagstr for this.
(cherry picked from commit 0fac1db9f7c3beb282d8455de7cce3641adee03b)

--------------------------------------------------------------------------------
398005e36d | Jude Brown | 2010-02-26 19:41:12 -0600

Fix dLua item ego_type wrapper, Trove shop pluses.
shop_item.plus1 and shop_item.plus2 are not item_def wrapper variables;
instead, it should be calling and using the two returned values off of
item.pluses(); likewise, replace_all_of(" of") was replacing every
instance of " ", "o", "f", etc, resulting in "holy wrath" -> "hlywrath",
and so on.

Still does not fix an issue with the Troves not accepting some items,
but there's now a testing framework in place for doing this quickly.
(cherry picked from commit 453b14152a4eed3518222c48de5a3f2d780f8363)

--------------------------------------------------------------------------------
f7fe3c93b3 | Robert Vollmert | 2010-02-26 19:39:56 -0600

Make CRTRegion update crawl_view.termsz on resize.
Fixes issue #623.
(cherry picked from commit 2c89bfe10b538912b567061a5ae0590af0a1ba62)

--------------------------------------------------------------------------------
0a5bf9f9cd | Robert Vollmert | 2010-02-26 19:38:51 -0600

Some autofight improvements.
Now allows fighting adjacent monsters not standing on floor.
(cherry picked from commit bba09e10f9977373288a775d44ecf4fbab35e420)

--------------------------------------------------------------------------------
9283aa8ce1 | Robert Vollmert | 2010-02-26 19:37:24 -0600

Redraw EV after wielding weapon of evasion.
Fixes issue #940.
(cherry picked from commit 4e5a9f9199a132500b7283c2b7158c556eeadbd3)

--------------------------------------------------------------------------------
c6796ccdcb | Johanna Ploog | 2010-02-26 19:37:17 -0600

traps.cc: Move shaft handling into trap->is_known().
Allied zombies also don't fall through known shafts, so you can't try
to bring your favourite zombie with you into the next level by
leading it across a shaft if you manage to find one on the level.

The message ("carefully avoids the shaft") might be a bit spammy and
looks out of place for zombies, but at least for native monsters I'd
like to keep it, and it seems a bit odd not to also do so for others.
(cherry picked from commit 1241d88fb003a7d30f7b7ac52c6bd63e670318a9)

--------------------------------------------------------------------------------
cbe9bd3152 | Johanna Ploog | 2010-02-26 19:36:45 -0600

Shafts again: Also add friendly monsters into the mix.
Most of these checks are already handled in trap->is_known(), though
with slightly different rules. I really want native insects to be
able to avoid shafts, even though they would not for mechanical traps.
Same for highly intelligent monsters always avoiding shafts but
sometimes triggering mechanical traps. Maybe I should move the shaft
checks over there...
(cherry picked from commit 73e9bba8959b6ebc29619ee1512185ae0394a5e1)

--------------------------------------------------------------------------------
b3c2010589 | Johanna Ploog | 2010-02-26 19:36:16 -0600

Stupid monsters will trigger shafts even if at home in a branch.
They may live there, but they are still not very smart.
(cherry picked from commit 85dcf9459d220eae747477a48bf99c6bae08fc8f)

--------------------------------------------------------------------------------
09ff3574bc | Johanna Ploog | 2010-02-26 19:35:43 -0600

Smart monsters and those native to a branch can cross shafts.
Monsters of I_HIGH and monsters native to a level can side-step shafts
without falling through. The Dungeon currently doesn't have any native
monsters and few smart ones, so pretty much any non-flying creature
will fall through.
(cherry picked from commit 92eda67975495fe3da1a3048d2d30902a64ad4d9)

--------------------------------------------------------------------------------
bc76800cce | Johanna Ploog | 2010-02-26 19:35:05 -0600

Fix monsters flying over unknown traps detecting them. (cherry picked from 
commit 49824d7a8712b78478f40f26de3e22fa0ac719d9)

--------------------------------------------------------------------------------
ca66be5d83 | Robert Vollmert | 2010-02-26 19:34:51 -0600

Fix merfolk entering water twice from ice form.
This was melding their boots twice, causing permanent stat change.
Of course, it shouldn't really be possible to meld a piece of
equipment twice -- a duplicate call should either fail or
do nothing.

Fixes issue #868.
(cherry picked from commit a46073e40fd957c5eea60fe38fd4f42f11cfa089)

--------------------------------------------------------------------------------
dde1465c24 | Johanna Ploog | 2010-02-27 00:58:32 +0100

Fix #954: Bad linebreak in xe documentation.

--------------------------------------------------------------------------------
6760bafe34 | Johanna Ploog | 2010-02-27 00:45:34 +0100

Don't id ?Detect Curse if not carrying anything.
I know it's unlikely, but it seems more correct this way.
Also handle the only thing carried being a stack of DC scrolls.

--------------------------------------------------------------------------------
539f9623ce | Charles Otto | 2010-02-26 16:19:28 -0500

Make bolt::agent return the last actor to reflect a beam
If a beam is reflected make bolt::agent return a pointer to the last
actor to reflect the beam rather than the one who originally threw it.

This fixes a crash that occurred when a monster was killed by a
reflected arrow of reaping (the reaping code didn't handle the agent
already being dead), and also makes attribution for status inflictions
caused by missiles more consistent (now e.g. monster poisoning caused
by a reflected poisoned arrow is attributed to the player, consistent
with how killing a monster with a reflected arrow is considered a
player kill).

I didn't see any obvious show stoppers caused by this change, the fact
that now the chance for a reflected needle to cause an affliction
depends on the stats of the last actor to reflect rather than the one
that fired the needle is odd, but it's a niche situation so I don't
imagine it will be noticeable.

--------------------------------------------------------------------------------
e1006d962d | Charles Otto | 2010-02-26 13:13:33 -0500

Always prompt for self targeting with non SPFLAG_HELPFUL spells
Part 2 of mantis issue 923, evaporate not prompting when you target
yourself. The may_target_self parameter passed to spell_direction was
true for area spells, false otherwise with the apparent intention of
canceling automatically at self target of non-aoe spells, but
may_target_self actually just controls whether or not a prompt is given
on self targeting, the final parameter of spell_direction
(cancel_at_self) controls whether or not self targeting is
automatically canceled.

Anyway, I changed the value used for may_target_self to depend on
SPFLAG_HELPFUL so the user is always prompted when self-targeting
non-helpful spells regardless of whether or not they have an aoe. If
someone is feeling ambitious they can change the value passed for
cancel_at_self to always cancel self targeting with non-aoe spells.

This commit also removed a "are you sure you want to target yourself"
prompt that was used as a special case for meph cloud.

--------------------------------------------------------------------------------
738da62e3e | Charles Otto | 2010-02-26 12:32:32 -0500

Don't override input beam range in cast_evaporate
Part of mantis issue 923, don't let evaporate get extra range by
casting with direction keys.

--------------------------------------------------------------------------------
8627d4b056 | Darshan Shaligram | 2010-02-26 22:28:04 +0530

[942] Generate ziggurat milestones in epilogue to avoid milestone spam for 
levelgen failure.

--------------------------------------------------------------------------------
636a21c761 | Johanna Ploog | 2010-02-26 17:48:59 +0100

Also prompt for saving macros when dying, quitting or escaping.

--------------------------------------------------------------------------------
b7c6f6e2b8 | Johanna Ploog | 2010-02-26 17:48:44 +0100

Only prompt for saving macros if you actually changed them.
New value crawl_state.unsaved_macros keeps track of this.

--------------------------------------------------------------------------------
34bf2f71eb | Cryptic | 2010-02-26 17:48:44 +0100

Mantis #295: Prompts for saving macros when exiting
Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
b84a2751f1 | Jared Tinney (Twinge) | 2010-02-26 17:48:44 +0100

Mantis #855: Scrolls of Detect Curse now always ID when read.
Explanation:
The requirement of having at least one item of unknown curse status
is trivial to work around, but non-obvious to newer players.
Also, the message is now different.

Signed-off-by: Johanna Ploog <j-p-e-g@users.sourceforge.net>

--------------------------------------------------------------------------------
6529f3d32f | Darshan Shaligram | 2010-02-26 21:01:42 +0530

[362] Make kraken tentacles water-only and increase their base speed to 16.

--------------------------------------------------------------------------------
82cd71c6fd | Johanna Ploog | 2010-02-26 16:42:10 +0100

Fix tutorial message for monster descriptions without stats/resistances.

--------------------------------------------------------------------------------
a6f8ba18ae | Robert Vollmert | 2010-02-26 15:07:56 +0100

Use CSET_ASCII for tiles builds.
It was using CSET_IBM before for unclear reasons, which was causing
issues. Let me know if there was a good reason.

Fixes issue #719.

--------------------------------------------------------------------------------
f004eb0dbf | Robert Vollmert | 2010-02-26 14:41:00 +0100

Properly encode unicode book glyph in command help.
Fixes book symbol display with char_set=unicode.

--------------------------------------------------------------------------------
0fac1db9f7 | Robert Vollmert | 2010-02-26 14:41:00 +0100

Fix Ctrl-X display of unicode items.
Fixes issue #378.

Extracted tutorial.cc:_colourize_glyph as glyph_to_tagstr for this.

--------------------------------------------------------------------------------
453b14152a | Jude Brown | 2010-02-26 23:07:10 +1000

Fix dLua item ego_type wrapper, Trove shop pluses.
shop_item.plus1 and shop_item.plus2 are not item_def wrapper variables;
instead, it should be calling and using the two returned values off of
item.pluses(); likewise, replace_all_of(" of") was replacing every
instance of " ", "o", "f", etc, resulting in "holy wrath" -> "hlywrath",
and so on.

Still does not fix an issue with the Troves not accepting some items,
but there's now a testing framework in place for doing this quickly.

--------------------------------------------------------------------------------
825009ffe4 | Robert Vollmert | 2010-02-26 13:26:50 +0100

aptitudes.txt: correct experience explanation. (Xardas-3)

--------------------------------------------------------------------------------
2c89bfe10b | Robert Vollmert | 2010-02-26 13:26:50 +0100

Make CRTRegion update crawl_view.termsz on resize.
Fixes issue #623.

--------------------------------------------------------------------------------
ae088f3226 | Johanna Ploog | 2010-02-26 13:28:13 +0100

Give low-weight critters a chance to escape a shaft.
Depending on total (body + equipment) weight, give monsters and player
a chance to escape a shaft. This only ever applies to shafts unknown
to the player/monster in question.

I wanted to introduce some randomness because if shafts are guaranteed
to allow the player to shake off any critter they can't handle (at
least non-native ones, which applies to all monsters in the Dungeon [*])
that's bad. It's still a viable tactic, but at least it's not
guaranteed anymore. (Rewards pillar dancing, though.)

Still better than the old logic of reliably blocking monsters behind
shafts. Now they either fall in or follow.

Current chance of escaping: 200/weight

Some example weights:
rat/snake: 200 (always escapes)
unequipped human: 550
equipped orc: 1030
equipped orc warlord: 1160
equipped centaur: 1680
8-headed hydra: 1800 (though I don't think the heads matter)
very large slime: 3900

unequipped player spriggan: 300
unequipped player ogre: 1300

*) We could make some monsters native to the Dungeon, of course,
for example goblins, gnolls and ogres.

--------------------------------------------------------------------------------
bba09e10f9 | Robert Vollmert | 2010-02-26 12:52:56 +0100

Some autofight improvements.
Now allows fighting adjacent monsters not standing on floor.

--------------------------------------------------------------------------------
0dd5236906 | Robert Vollmert | 2010-02-26 12:39:12 +0100

Replace dynamic monster casts by actor::as_monster.

--------------------------------------------------------------------------------
4e5a9f9199 | Robert Vollmert | 2010-02-26 12:07:06 +0100

Redraw EV after wielding weapon of evasion.
Fixes issue #940.

--------------------------------------------------------------------------------
1241d88fb0 | Johanna Ploog | 2010-02-26 12:18:05 +0100

traps.cc: Move shaft handling into trap->is_known().
Allied zombies also don't fall through known shafts, so you can't try
to bring your favourite zombie with you into the next level by
leading it across a shaft if you manage to find one on the level.

The message ("carefully avoids the shaft") might be a bit spammy and
looks out of place for zombies, but at least for native monsters I'd
like to keep it, and it seems a bit odd not to also do so for others.

--------------------------------------------------------------------------------
73e9bba895 | Johanna Ploog | 2010-02-26 12:18:05 +0100

Shafts again: Also add friendly monsters into the mix.
Most of these checks are already handled in trap->is_known(), though
with slightly different rules. I really want native insects to be
able to avoid shafts, even though they would not for mechanical traps.
Same for highly intelligent monsters always avoiding shafts but
sometimes triggering mechanical traps. Maybe I should move the shaft
checks over there...

--------------------------------------------------------------------------------
85dcf9459d | Johanna Ploog | 2010-02-26 12:18:05 +0100

Stupid monsters will trigger shafts even if at home in a branch.
They may live there, but they are still not very smart.

--------------------------------------------------------------------------------
92eda67975 | Johanna Ploog | 2010-02-26 12:18:05 +0100

Smart monsters and those native to a branch can cross shafts.
Monsters of I_HIGH and monsters native to a level can side-step shafts
without falling through. The Dungeon currently doesn't have any native
monsters and few smart ones, so pretty much any non-flying creature
will fall through.

--------------------------------------------------------------------------------
49824d7a87 | Johanna Ploog | 2010-02-26 12:18:04 +0100

Fix monsters flying over unknown traps detecting them.

--------------------------------------------------------------------------------
a46073e40f | Robert Vollmert | 2010-02-26 11:19:50 +0100

Fix merfolk entering water twice from ice form.
This was melding their boots twice, causing permanent stat change.
Of course, it shouldn't really be possible to meld a piece of
equipment twice -- a duplicate call should either fail or
do nothing.

Fixes issue #868.

--------------------------------------------------------------------------------
754f844809 | Steven Noonan | 2010-02-26 03:07:33 -0600

makefile: fix '-gcc-name' and '-gxx-name' passed to ICC
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 8f695f2296d05950243c0e9f503c1a0f0993b832)

--------------------------------------------------------------------------------
8e0425b229 | Shayne Halvorson | 2010-02-26 10:07:06 +0100

Skill specific speech for player ghosts

--------------------------------------------------------------------------------
493128680e | Robert Vollmert | 2010-02-26 10:07:00 +0100

Optionally look up ghost speech by best ghost skill.
Based on patch in #939.

--------------------------------------------------------------------------------
273230b1cb | Johanna Ploog | 2010-02-26 03:06:48 -0600

Update copyright information. (cherry picked from commit 
d4bce2e600c2f8ceb9bd2776cc92f5b6097ba0a1)

--------------------------------------------------------------------------------
5cf4d2d8f8 | Johanna Ploog | 2010-02-26 03:05:03 -0600

Add a couple of placeholders to dngn.png.
These are mostly in case we decide we desperately need some previously
postponed tile for vault design after all. Should be rare, if it even
happens at all, so eight tiles should really be enough.
(cherry picked from commit b24a0f0801cb29bed7ec9ed05bd7e65f1e1e153f)

--------------------------------------------------------------------------------
76b145ae11 | Robert Vollmert | 2010-02-26 09:46:26 +0100

Allow player ghosts to speak.
This by using _get_monster_speech and dropping the background
prefix. It wasn't used anyway.

Fixes issue #938.

--------------------------------------------------------------------------------
8f695f2296 | Steven Noonan | 2010-02-26 00:33:31 -0800

makefile: fix '-gcc-name' and '-gxx-name' passed to ICC
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
65a51000cb | Robert Vollmert | 2010-02-26 09:31:38 +0100

Create dummy monster MONS_GHOST as ghost genus.
All ghosts (monster and player) now have genus MONS_GHOST,
fixing monster ghosts getting player ghost speech
(part of issue #938).

May well have unintended side-effects -- please have a look.

--------------------------------------------------------------------------------
d4bce2e600 | Johanna Ploog | 2010-02-26 09:41:53 +0100

Update copyright information.

--------------------------------------------------------------------------------
b24a0f0801 | Johanna Ploog | 2010-02-26 09:41:53 +0100

Add a couple of placeholders to dngn.png.
These are mostly in case we decide we desperately need some previously
postponed tile for vault design after all. Should be rare, if it even
happens at all, so eight tiles should really be enough.

--------------------------------------------------------------------------------
8bebd0d93c | Tommy | 2010-02-26 01:33:55 -0600

Fix spelling of "brilliance". (cherry picked from commit 
20a5d6618fde3d35ad740940b23e094c1c24f4f6)

--------------------------------------------------------------------------------
20a5d6618f | Tommy | 2010-02-26 01:31:44 -0600

Fix spelling of "brilliance".

--------------------------------------------------------------------------------
40d6df1af5 | Enne Walker | 2010-02-25 22:50:35 -0600

Add in-flight tiles for new sling bullet types. (cherry picked from commit 
cfd8d80726b9bbf48ce549fb579c314090b4fa70)

--------------------------------------------------------------------------------
95313a4be3 | Enne Walker | 2010-02-25 22:50:16 -0600

[937] Make needle tile transparent instead of white. (cherry picked from commit 
14c4d3dcb613702524da7fa2e004a34bdf891a94)

--------------------------------------------------------------------------------
efe9ab8b08 | Johanna Ploog | 2010-02-25 22:49:24 -0600

Update the tutorial information on chunks making you sick.
The comments pertaining to "spoiled and inedible" meat probably stem
from times when rotten meat could still be eaten. Instead we now
mention that contaminated chunks only have a chance of making you
sick and that you'll sometimes just have to risk it if you need to
eat.
(cherry picked from commit 78dc6631b38ce64f2863f52e75b5323d6147c117)

--------------------------------------------------------------------------------
37ad137f4c | Johanna Ploog | 2010-02-25 22:48:33 -0600

Don't show descriptions in the message area if pointing at floor/walls.
Suppress the feature descriptions in the message window for boring
features like floor and walls. Should make moving around with the
mouse less likely to cover up the message area with some meaningless
description you didn't even want to see.
(cherry picked from commit 7833db6708c3754d1024d02803bcc8b07d965a87)

--------------------------------------------------------------------------------
e0edc81acc | Johanna Ploog | 2010-02-25 22:47:58 -0600

Fix out of sight mouseover giving away undetected traps.
There was a special check to avoid printing descriptions for out of
sight floor tiles. However, said check did not take effect for
undetected traps, which would get the normal floor descriptions.

Fixed now.
(cherry picked from commit dd68487ac79134adf21a4fa52f188a249ad074fb)

--------------------------------------------------------------------------------
c7f77e1a8a | Johanna Ploog | 2010-02-25 22:47:49 -0600

Add a tutorial description if a monster does *not* have any resistances.
From my various tutorial games, I got the impression that if the player
does as he is told and in the beginning examines any monster he comes
across, he will quickly determine that all that screen shows is a fancy
quote, but no real information, and thus come to the wrong conclusion
that examining monsters is a waste of time.
By the time he meets monsters for whom the screen does contain important
information about speed or resistances, it might already be too late.

We now give a special message explaining this if a monster doesn't have
any stats that would be shown in the screen.
(cherry picked from commit f5a94fc455b37e904cf5df42c5871d073078de73)

--------------------------------------------------------------------------------
ee63592b17 | Johanna Ploog | 2010-02-25 22:46:25 -0600

Be more consistent about spacing in the tutorial.
In the tutorial, replace some double-spacing with single spacing for
general consistency with the greater part of the tutorial messages.
(cherry picked from commit c6849bd3c8feab840044d5d98902e868de9f9e9f)

--------------------------------------------------------------------------------
89df5d01de | Jesse Luehrs | 2010-02-25 22:45:48 -0600

fiddle with the overview display a bit more (cherry picked from commit 
9011aaee8e0dd115b878338c6f0ad2c9115f978f)

--------------------------------------------------------------------------------
e8159a7f9e | Steven Noonan | 2010-02-25 22:45:39 -0600

makefile: delete GENERATED_FILES on 'clean'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit a61123005adc8aa306fd53de59bab465ab33690d)

--------------------------------------------------------------------------------
789f1ef5ea | David Ploog | 2010-02-25 22:45:12 -0600

Repair one Hive entry vault. (cherry picked from commit 
a4b21981793e34c9448ec4659ee498c752a7e8d6)

--------------------------------------------------------------------------------
cea7fe4b50 | David Ploog | 2010-02-25 22:45:00 -0600

Repair one V:8 subvault (Mu). (cherry picked from commit 
9fb5216ac2ed10662e38b625f1522cae0f530e4c)

--------------------------------------------------------------------------------
1d81c72938 | Steven Noonan | 2010-02-25 22:44:37 -0600

makefile: fix compliation with the Intel compiler when using IPO
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 875bf4f08cc7216ee75c8d8fed96d2b494272647)

--------------------------------------------------------------------------------
8fd408ca53 | Steven Noonan | 2010-02-25 22:44:10 -0600

los.cc: add missing access specifier to inherited struct
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 54c7dcab7cb0129555cb5a4548313468ec502e9d)

--------------------------------------------------------------------------------
049284c673 | Steven Noonan | 2010-02-25 22:44:02 -0600

makefile: fix levcomp.*.cc not being compiled with YACC_CFLAGS
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 1c45d2939bb9f2c65575e280d3bf0fe20305c7b9)

--------------------------------------------------------------------------------
4a62d24da2 | Johanna Ploog | 2010-02-25 22:43:12 -0600

Remove duplicate entry in the change log. (cherry picked from commit 
47cf313907142696f93df7ca203c11ae7bd57813)

--------------------------------------------------------------------------------
41c12ea54e | Johanna Ploog | 2010-02-25 22:42:42 -0600

Re-add references to @_generic_Donald_@.
I don't think it really matters if the chances for getting those are
different depending on branch and god. If you don't have a lot of
speech defined elsewhere you'll get more of the generic ones, which
should work well enough in practise.

Anyway, this is (NUM_BRANCHES + NUM_GODS) references, rather than
(NUM_BRANCHES * NUM_GODS) ones. *still reeling*
(cherry picked from commit ea461a30efa300e1ae6fb3ee2b85304cbf986563)

--------------------------------------------------------------------------------
58696d60ca | Johanna Ploog | 2010-02-25 22:41:54 -0600

Remove about 1000 lines worth of combination tags for Donald speech.
Instead of specifying keywords for all branch/god combinations, add
a single line in the code for a 50% chance of picking either branch
or god if both is specified. We might have to add a third chance if
we ever get around to adding speech that covers both place and god,
but I don't think anyone would be so insane to add them for every
possible combination. *mutters* 1000 lines... I kid you not!

This also fixes Donald not giving any speech if you ever encounter
him in the main Dungeon. (Don't know if that's possible.)
(cherry picked from commit 202f91d00ccfad168f9505815fbad6c858440372)

--------------------------------------------------------------------------------
2731063320 | Johanna Ploog | 2010-02-25 22:39:22 -0600

Fix Saint Roka not using his special messiah speech.
The new branch information always took precedence over religion,
which meant that it was impossible to get orcs' Beogh speech since
these don't use any branch keys.
(cherry picked from commit 2cc101eca6f4d41ccdcd155df3f56f1eb1bae2e3)

--------------------------------------------------------------------------------
0c8fdc2a93 | Johanna Ploog | 2010-02-25 22:31:07 -0600

A few tweaks to monster speech. (cherry picked from commit 
ef029635cd50dbf04baa17549da4fa018ceda1c5)

--------------------------------------------------------------------------------
624897277b | Johanna Ploog | 2010-02-25 22:29:02 -0600

Fix Trog appreciating kills of non-spellcasting ghosts. (cherry picked from 
commit ad45864a7d00d92781ed91aa8840ed86b913a5e4)

--------------------------------------------------------------------------------
fc29122092 | Robert Vollmert | 2010-02-25 22:28:50 -0600

Fix yellow draconians supposedly having rcorr. (Mu) (cherry picked from commit 
0a4710cf53296a359595f9acfca19a4267bff379)

--------------------------------------------------------------------------------
896a78063c | Robert Vollmert | 2010-02-25 22:28:29 -0600

Call viewwindow() before delayed god gift more().
Should fix issue #567.
(cherry picked from commit 0cdf9df3f2b55c6fd6e57dab8acae67284e2395e)

--------------------------------------------------------------------------------
310821d7b8 | Robert Vollmert | 2010-02-25 22:25:58 -0600

Describe wandering stationary monsters as "unaware" in monster list.
Fixes issue #611.
(cherry picked from commit 60545397505a07ed7d877d15b4afa4cd59024e8d)

--------------------------------------------------------------------------------
cfd8d80726 | Enne Walker | 2010-02-25 23:20:18 -0500

Add in-flight tiles for new sling bullet types.

--------------------------------------------------------------------------------
3d124b5ced | Robert Vollmert | 2010-02-25 22:20:10 -0600

Reduce spell colouring.
This removes useful/god-liked/risky colouring. The idea is to
reduce the feature to the obviously good part for 0.6 and see
how the other ones work out for 0.7.

Empowered is still there (good for Vehumet); empowered colouring
for swiftness while flying, stoneskin while in statue form,
oz's armour while in ice form also sound not too invasive.

--------------------------------------------------------------------------------
6905be6a75 | Robert Vollmert | 2010-02-25 22:20:00 -0600

Minor formatting. (cherry picked from commit 
62a10d23767763bda6a5491a3ded3ba610f1c5f5)

--------------------------------------------------------------------------------
833ad49c2e | Robert Vollmert | 2010-02-25 22:19:48 -0600

Don't treat necromantic spells as empowered by Kiku.
It's just miscast protection, and then what to do with Sif?
(cherry picked from commit 10b257d1e02ceaa8aab0c9db0216ddde0944213c)

--------------------------------------------------------------------------------
38dd2fe007 | Robert Vollmert | 2010-02-25 22:17:46 -0600

Remove cyan colouring of shopping list items in stash tracker.
This was being overridden by menu colours, hence confusingly
only shown for usually uncoloured items.
(cherry picked from commit abd726132e6232fb51e4a65b25a9df71636a058b)

--------------------------------------------------------------------------------
089a112053 | Robert Vollmert | 2010-02-25 22:17:38 -0600

Show @'s in stash tracker shop menu.
Colouring doesn't work like in shops yet, but that would be a
larger change.

Fixes issue #248.
(cherry picked from commit bd5f6a138a22b3cf7cf816bdd67c4ab9ac6b0a4d)

--------------------------------------------------------------------------------
44fbd64fad | Robert Vollmert | 2010-02-25 22:14:03 -0600

Fix melee noise waking hibernated monsters on same turn.
Fixes issue #902.

This consists of two things:
1. ENCH_SLEEPY (one-turn enchantment designed to keep monsters
                asleep at least one turn)
   is checked against in noisy(), so noise can't wake monsters
   while under ENCH_SLEEPY.
2. ENCH_SLEEPY is no longer decayed as usual (start of monster
   turn), but instead by force after all monsters have moved.
   It's not really treated like an enchantment anymore.
(cherry picked from commit 7ebe7ebd164ec1d964158194755a4e6ce28843b4)

--------------------------------------------------------------------------------
5b713573b7 | David Ploog | 2010-02-25 22:06:26 -0600

Explain difference between | and good_item. (cherry picked from commit 
1d240abf20f1bd7da453423837baa10592df74dc)

--------------------------------------------------------------------------------
93006cdb1f | David Ploog | 2010-02-25 22:05:33 -0600

A few tweaks to the changelog. (cherry picked from commit 
cd31b90480793142a45da30db247b126e20a5361)

--------------------------------------------------------------------------------
efb8c7e891 | Robert Vollmert | 2010-02-25 22:04:11 -0600

Shorten shop gold messages to fit 80 columns with thousands of gold. (cherry 
picked from commit f7bf6dc0fb763083de1be39806c383e47d295536)

--------------------------------------------------------------------------------
d85bf0cf2e | Robert Vollmert | 2010-02-25 22:03:25 -0600

Fix shopping list toggle in shop (@).
It wasn't clearing the list of selections properly.
(cherry picked from commit 3704bf2d01f231bc8266927f7899c558ea1995db)

--------------------------------------------------------------------------------
d83db0f16d | Robert Vollmert | 2010-02-25 22:03:12 -0600

Remove bad mesclr() from shopping list. (cherry picked from commit 
0d48346b8d9f133cb031096330077ba6fee32680)

--------------------------------------------------------------------------------
a64ea9a1cd | Johanna Ploog | 2010-02-25 22:02:56 -0600

Put the rusted sewer portal into the dngn tiles page, after all.
If we don't end up using it in 0.6, it'll serve as a potential
placeholder for something else.
Also, colour Tukima's strange machine a bit darker.
(cherry picked from commit 7415071676fdb40a098efe8ae69bee357cf50944)

--------------------------------------------------------------------------------
dd0ec6e720 | Johanna Ploog | 2010-02-25 22:02:35 -0600

Reorder some change log entries. (cherry picked from commit 
34a0ba64b82638209c263988eb2d576b57bb2edc)

--------------------------------------------------------------------------------
b4a78688dd | Johanna Ploog | 2010-02-25 22:02:27 -0600

Document autofight.lua.
Robert, please review!
(cherry picked from commit 72f43e08fe47148d04c3713a2f85dcc1575213a0)

--------------------------------------------------------------------------------
4eb7729cca | Johanna Ploog | 2010-02-25 22:01:53 -0600

Update change log. (cherry picked from commit 
54b671e204f0caa6a200717d5d1b8a17631070e1)

--------------------------------------------------------------------------------
073d59e543 | Robert Vollmert | 2010-02-25 22:00:16 -0600

Don't generate shaft trails on non-shaft levels.
Fixes issue #145.
(cherry picked from commit 926cce0fd91ef12fdbb3612049ae651bd888b66a)

--------------------------------------------------------------------------------
a37ad3ab3d | Robert Vollmert | 2010-02-25 21:59:44 -0600

Known shafts are safe for monsters. (cherry picked from commit 
c99b9bb762db64e03919f882a0640611b79a217e)

--------------------------------------------------------------------------------
f708f44ce2 | Robert Vollmert | 2010-02-25 21:59:06 -0600

Destroy monster-used shafts.
Fixes issue #328.

This is kind of ugly in that monsters destroy shafts in trap_def::trigger,
while players destroy shafts in down_stairs.
(cherry picked from commit d2d2ddbcb9efadb37d25e291e8a3bb3f0843fe57)

--------------------------------------------------------------------------------
ca1f030bf6 | Eino Keskitalo | 2010-02-25 21:58:54 -0600

Update the bit about milestones to use epilogues.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 5dd1af1dd94115be408f1b9b17ddbca9c6cd2a34)

--------------------------------------------------------------------------------
20ac900bd3 | Eino Keskitalo | 2010-02-25 21:58:27 -0600

Preliminary tiles to mark the teleporter in the_teleporter vaults.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 11939950dc7359cec37941416761edb6b3861e13)

--------------------------------------------------------------------------------
80c8c7ae28 | Robert Vollmert | 2010-02-25 21:58:05 -0600

direction(): Also unset need_beam_redraw when not showing beam.
Fixes issue #931.
(cherry picked from commit a66ecd5f6d289afed076b631cc293156b154449f)

--------------------------------------------------------------------------------
0697a830e4 | Robert Vollmert | 2010-02-25 21:57:41 -0600

Trove: conditionally pluralise scrolls and potions.
Fixes issue #869.
(cherry picked from commit c79328482dd22af129bc630adf81c5f3512758fc)

--------------------------------------------------------------------------------
005de82fd9 | Robert Vollmert | 2010-02-25 21:57:07 -0600

Make trove locking message more explicit.
Could still stand to be improved, but at least it doesn't look like
an error message anymore.
(cherry picked from commit 8c109e894dc8c93dfa460442fc37f36bd558abb0)

--------------------------------------------------------------------------------
7df9720503 | Robert Vollmert | 2010-02-25 21:52:42 -0600

Trove: show full fee in lock portal prompt. (cherry picked from commit 
7c9b7c0307f24863eae83ab0f3c9d609836996e3)

--------------------------------------------------------------------------------
48312b4cea | Robert Vollmert | 2010-02-25 21:49:30 -0600

Trove: Display current portal state more prominently in xv. (cherry picked from 
commit 62bad4a77e363385fece939e8aa525580b141846)

--------------------------------------------------------------------------------
05e38b7b9c | Stefan O'Rear | 2010-02-25 19:49:29 -0800

Simplify handling of animation messages
animate_remains now uses a local copy of the motions variable, so the
various callers can now safely pass NULL again.

--------------------------------------------------------------------------------
a9169ba61f | Stefan O'Rear | 2010-02-25 19:49:28 -0800

Fix end-of-line whitespace

--------------------------------------------------------------------------------
667feac5d7 | Jared Tinney (Twinge) | 2010-02-25 19:49:28 -0800

Animate Dead message tweak (nubinia)
"The dead are walking, swimming and flying!"

--------------------------------------------------------------------------------
36088a3ed5 | Eino Keskitalo | 2010-02-25 21:45:40 -0600

Add milestones for the four big bad pan lord levels.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit e647bcf596f88947f0359ae4faf386a93f520b90)

--------------------------------------------------------------------------------
14c4d3dcb6 | Enne Walker | 2010-02-25 22:45:09 -0500

[937] Make needle tile transparent instead of white.

--------------------------------------------------------------------------------
c5d0c19147 | Jude Brown | 2010-02-26 13:03:04 +1000

Don't let friendlies animate corpses being butchered, or while hungry.
This prevents allies from using animate dead while the player is less
than satiated (this check could be improved to investigate
herbivoreness, etc; found in _animate_dead_okay in mon-cast.cc), or if
the player is currently butchering a corpse.

This does not alter enemy behaviour at all.

--------------------------------------------------------------------------------
78dc6631b3 | Johanna Ploog | 2010-02-26 01:26:48 +0100

Update the tutorial information on chunks making you sick.
The comments pertaining to "spoiled and inedible" meat probably stem
from times when rotten meat could still be eaten. Instead we now
mention that contaminated chunks only have a chance of making you
sick and that you'll sometimes just have to risk it if you need to
eat.

--------------------------------------------------------------------------------
7833db6708 | Johanna Ploog | 2010-02-26 01:17:30 +0100

Don't show descriptions in the message area if pointing at floor/walls.
Suppress the feature descriptions in the message window for boring
features like floor and walls. Should make moving around with the
mouse less likely to cover up the message area with some meaningless
description you didn't even want to see.

--------------------------------------------------------------------------------
dd68487ac7 | Johanna Ploog | 2010-02-26 00:32:03 +0100

Fix out of sight mouseover giving away undetected traps.
There was a special check to avoid printing descriptions for out of
sight floor tiles. However, said check did not take effect for
undetected traps, which would get the normal floor descriptions.

Fixed now.

--------------------------------------------------------------------------------
f5a94fc455 | Johanna Ploog | 2010-02-25 23:57:12 +0100

Add a tutorial description if a monster does *not* have any resistances.
From my various tutorial games, I got the impression that if the player
does as he is told and in the beginning examines any monster he comes
across, he will quickly determine that all that screen shows is a fancy
quote, but no real information, and thus come to the wrong conclusion
that examining monsters is a waste of time.
By the time he meets monsters for whom the screen does contain important
information about speed or resistances, it might already be too late.

We now give a special message explaining this if a monster doesn't have
any stats that would be shown in the screen.

--------------------------------------------------------------------------------
c6849bd3c8 | Johanna Ploog | 2010-02-25 23:57:12 +0100

Be more consistent about spacing in the tutorial.
In the tutorial, replace some double-spacing with single spacing for
general consistency with the greater part of the tutorial messages.

--------------------------------------------------------------------------------
6df7536fc5 | David Ploog | 2010-02-25 23:29:14 +0100

Explain the new aptitudes.
The wording could be improved. Also, for the convenience of players, I have
mentioned the old (0.6 and before) values.

--------------------------------------------------------------------------------
9011aaee8e | Jesse Luehrs | 2010-02-25 15:52:48 -0600

fiddle with the overview display a bit more

--------------------------------------------------------------------------------
a61123005a | Steven Noonan | 2010-02-25 13:47:24 -0800

makefile: delete GENERATED_FILES on 'clean'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a4b2198179 | David Ploog | 2010-02-25 22:15:35 +0100

Repair one Hive entry vault.

--------------------------------------------------------------------------------
9fb5216ac2 | David Ploog | 2010-02-25 22:15:35 +0100

Repair one V:8 subvault (Mu).

--------------------------------------------------------------------------------
122b524c0b | Steven Noonan | 2010-02-25 13:02:49 -0800

coding_conventions: fix some unclear text in the macros section
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
875bf4f08c | Steven Noonan | 2010-02-25 12:52:39 -0800

makefile: fix compliation with the Intel compiler when using IPO
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
16bdb6a8a1 | Steven Noonan | 2010-02-25 12:52:38 -0800

coding_conventions.txt: add Macro Usage section
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
54c7dcab7c | Steven Noonan | 2010-02-25 12:52:38 -0800

los.cc: add missing access specifier to inherited struct
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1c45d2939b | Steven Noonan | 2010-02-25 12:52:38 -0800

makefile: fix levcomp.*.cc not being compiled with YACC_CFLAGS
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cd92c87718 | Steven Noonan | 2010-02-25 12:52:38 -0800

directn.cc: fix linkage problem with FULLDEBUG but not WIZARD
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
eac1662404 | Steven Noonan | 2010-02-25 12:52:38 -0800

code cleanup: fix #ifdef/#if usage inconsistencies
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
47cf313907 | Johanna Ploog | 2010-02-25 22:04:40 +0100

Remove duplicate entry in the change log.

--------------------------------------------------------------------------------
ea461a30ef | Johanna Ploog | 2010-02-25 21:53:03 +0100

Re-add references to @_generic_Donald_@.
I don't think it really matters if the chances for getting those are
different depending on branch and god. If you don't have a lot of
speech defined elsewhere you'll get more of the generic ones, which
should work well enough in practise.

Anyway, this is (NUM_BRANCHES + NUM_GODS) references, rather than
(NUM_BRANCHES * NUM_GODS) ones. *still reeling*

--------------------------------------------------------------------------------
202f91d00c | Johanna Ploog | 2010-02-25 21:53:03 +0100

Remove about 1000 lines worth of combination tags for Donald speech.
Instead of specifying keywords for all branch/god combinations, add
a single line in the code for a 50% chance of picking either branch
or god if both is specified. We might have to add a third chance if
we ever get around to adding speech that covers both place and god,
but I don't think anyone would be so insane to add them for every
possible combination. *mutters* 1000 lines... I kid you not!

This also fixes Donald not giving any speech if you ever encounter
him in the main Dungeon. (Don't know if that's possible.)

--------------------------------------------------------------------------------
2cc101eca6 | Johanna Ploog | 2010-02-25 21:53:03 +0100

Fix Saint Roka not using his special messiah speech.
The new branch information always took precedence over religion,
which meant that it was impossible to get orcs' Beogh speech since
these don't use any branch keys.

--------------------------------------------------------------------------------
ef029635cd | Johanna Ploog | 2010-02-25 21:53:02 +0100

A few tweaks to monster speech.

--------------------------------------------------------------------------------
9399615772 | Johanna Ploog | 2010-02-25 21:53:02 +0100

Let Transmuter ghosts retain Evaporate -> Mephitic Cloud.

--------------------------------------------------------------------------------
ad45864a7d | Johanna Ploog | 2010-02-25 21:53:02 +0100

Fix Trog appreciating kills of non-spellcasting ghosts.

--------------------------------------------------------------------------------
0a4710cf53 | Robert Vollmert | 2010-02-25 17:06:36 +0100

Fix yellow draconians supposedly having rcorr. (Mu)

--------------------------------------------------------------------------------
0cdf9df3f2 | Robert Vollmert | 2010-02-25 16:41:06 +0100

Call viewwindow() before delayed god gift more().
Should fix issue #567.

--------------------------------------------------------------------------------
6054539750 | Robert Vollmert | 2010-02-25 16:20:58 +0100

Describe wandering stationary monsters as "unaware" in monster list.
Fixes issue #611.

--------------------------------------------------------------------------------
82b9fec391 | Robert Vollmert | 2010-02-25 16:20:58 +0100

Simplify _verbose_info.

--------------------------------------------------------------------------------
62a10d2376 | Robert Vollmert | 2010-02-25 15:59:53 +0100

Minor formatting.

--------------------------------------------------------------------------------
10b257d1e0 | Robert Vollmert | 2010-02-25 15:56:14 +0100

Don't treat necromantic spells as empowered by Kiku.
It's just miscast protection, and then what to do with Sif?

--------------------------------------------------------------------------------
abd726132e | Robert Vollmert | 2010-02-25 15:35:19 +0100

Remove cyan colouring of shopping list items in stash tracker.
This was being overridden by menu colours, hence confusingly
only shown for usually uncoloured items.

--------------------------------------------------------------------------------
bd5f6a138a | Robert Vollmert | 2010-02-25 15:33:26 +0100

Show @'s in stash tracker shop menu.
Colouring doesn't work like in shops yet, but that would be a
larger change.

Fixes issue #248.

--------------------------------------------------------------------------------
7ebe7ebd16 | Robert Vollmert | 2010-02-25 15:02:05 +0100

Fix melee noise waking hibernated monsters on same turn.
Fixes issue #902.

This consists of two things:
1. ENCH_SLEEPY (one-turn enchantment designed to keep monsters
                asleep at least one turn)
   is checked against in noisy(), so noise can't wake monsters
   while under ENCH_SLEEPY.
2. ENCH_SLEEPY is no longer decayed as usual (start of monster
   turn), but instead by force after all monsters have moved.
   It's not really treated like an enchantment anymore.

--------------------------------------------------------------------------------
520f6ad74b | David Lawrence Ramsey | 2010-02-25 07:40:10 -0600

Use CE_NOCORPSE for butterflies.
They have weight 0, so they'll never leave corpses anyway, and they have
no blood, so they're useless to vampires while alive.

--------------------------------------------------------------------------------
1d240abf20 | David Ploog | 2010-02-25 14:07:08 +0100

Explain difference between | and good_item.

--------------------------------------------------------------------------------
cd31b90480 | David Ploog | 2010-02-25 14:07:08 +0100

A few tweaks to the changelog.

--------------------------------------------------------------------------------
f7bf6dc0fb | Robert Vollmert | 2010-02-25 13:57:16 +0100

Shorten shop gold messages to fit 80 columns with thousands of gold.

--------------------------------------------------------------------------------
3704bf2d01 | Robert Vollmert | 2010-02-25 13:57:16 +0100

Fix shopping list toggle in shop (@).
It wasn't clearing the list of selections properly.

--------------------------------------------------------------------------------
0d48346b8d | Robert Vollmert | 2010-02-25 13:57:16 +0100

Remove bad mesclr() from shopping list.

--------------------------------------------------------------------------------
1bbf2285c0 | Robert Vollmert | 2010-02-25 13:57:16 +0100

Formatting.

--------------------------------------------------------------------------------
7415071676 | Johanna Ploog | 2010-02-25 14:19:16 +0100

Put the rusted sewer portal into the dngn tiles page, after all.
If we don't end up using it in 0.6, it'll serve as a potential
placeholder for something else.
Also, colour Tukima's strange machine a bit darker.

--------------------------------------------------------------------------------
34a0ba64b8 | Johanna Ploog | 2010-02-25 13:56:43 +0100

Reorder some change log entries.

--------------------------------------------------------------------------------
72f43e08fe | Johanna Ploog | 2010-02-25 13:56:43 +0100

Document autofight.lua.
Robert, please review!

--------------------------------------------------------------------------------
54b671e204 | Johanna Ploog | 2010-02-25 13:56:43 +0100

Update change log.

--------------------------------------------------------------------------------
926cce0fd9 | Robert Vollmert | 2010-02-25 12:56:04 +0100

Don't generate shaft trails on non-shaft levels.
Fixes issue #145.

--------------------------------------------------------------------------------
c99b9bb762 | Robert Vollmert | 2010-02-25 12:52:53 +0100

Known shafts are safe for monsters.

--------------------------------------------------------------------------------
d2d2ddbcb9 | Robert Vollmert | 2010-02-25 12:52:53 +0100

Destroy monster-used shafts.
Fixes issue #328.

This is kind of ugly in that monsters destroy shafts in trap_def::trigger,
while players destroy shafts in down_stairs.

--------------------------------------------------------------------------------
5dd1af1dd9 | Eino Keskitalo | 2010-02-25 13:51:16 +0200

Update the bit about milestones to use epilogues.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
11939950dc | Eino Keskitalo | 2010-02-25 13:42:48 +0200

Preliminary tiles to mark the teleporter in the_teleporter vaults.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a66ecd5f6d | Robert Vollmert | 2010-02-25 12:16:56 +0100

direction(): Also unset need_beam_redraw when not showing beam.
Fixes issue #931.

--------------------------------------------------------------------------------
c79328482d | Robert Vollmert | 2010-02-25 11:36:24 +0100

Trove: conditionally pluralise scrolls and potions.
Fixes issue #869.

--------------------------------------------------------------------------------
8c109e894d | Robert Vollmert | 2010-02-25 11:36:23 +0100

Make trove locking message more explicit.
Could still stand to be improved, but at least it doesn't look like
an error message anymore.

--------------------------------------------------------------------------------
7c9b7c0307 | Robert Vollmert | 2010-02-25 11:36:23 +0100

Trove: show full fee in lock portal prompt.

--------------------------------------------------------------------------------
62bad4a77e | Robert Vollmert | 2010-02-25 11:36:23 +0100

Trove: Display current portal state more prominently in xv.

--------------------------------------------------------------------------------
ab40a8776d | Robert Vollmert | 2010-02-25 11:36:23 +0100

lm_trove.lua: Break overly long lines.

--------------------------------------------------------------------------------
e647bcf596 | Eino Keskitalo | 2010-02-25 11:47:20 +0200

Add milestones for the four big bad pan lord levels.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
62a97e2d19 | Steven Noonan | 2010-02-25 01:46:34 -0600

makefile: fix build on the Intel compiler
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit d6b26f63739d57e6dd762c9c955a8893de9d4a01)

--------------------------------------------------------------------------------
80b250bf0b | Steven Noonan | 2010-02-25 01:46:20 -0600

exclude.cc: add missing access specifier for inherited struct
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit fbc04a5da3a6947c2b1a93b088be2112d68dd3be)

--------------------------------------------------------------------------------
64ce4d0c4a | Steven Noonan | 2010-02-25 01:46:08 -0600

stash.{cc,h}: remove meaningless qualifier on return type
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 38f519b830d307098284ea99308936f288208539)

--------------------------------------------------------------------------------
f70842373c | Steven Noonan | 2010-02-25 01:45:57 -0600

losparam.h: add missing access specifiers for inherited structs
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit ebded3208a5239d82fb8022048ecaf50a4069df3)

--------------------------------------------------------------------------------
0ebc79ee54 | Steven Noonan | 2010-02-25 01:45:17 -0600

AppHdr.h: use 'ifdef __MWERKS__' instead of 'if __MWERKS__'
The Intel compiler hates doing the latter.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 1551cca81ec6ae63aaed361ca8badc67bef3cad6)

--------------------------------------------------------------------------------
c63d9971ef | Johanna Ploog | 2010-02-25 01:44:59 -0600

Add new design for Cheibriados' altar, now complete with clock.
The clock actually works, but it moves backwards. :)
(cherry picked from commit 3454072fb257c7c50361b4f9e491f26f50d19fb2)

--------------------------------------------------------------------------------
38b22c62a6 | Johanna Ploog | 2010-02-25 01:44:46 -0600

Fix #757: Duplicate punctuation in feature descriptions.
Instead of removing the fullstop from all feature descriptions where
this occured, I opted to add a special check in describe.cc instead,
so we don't add a dot if the description already ends in some kind
of punctuation: .!?
(cherry picked from commit 679adf07b98c1f48e7bd9acdcd3ab1383bd2d1b5)

--------------------------------------------------------------------------------
89e1ea29e8 | Eino Keskitalo | 2010-02-25 01:43:26 -0600

Update patch_guide.txt to reflect the use of git.
I think I lost some of the friendly tone and good flow.. at the same time, 
pointing possible contributors more towards using git is good, as it makes the 
workflow easier, and people will be using the right tools from the start.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 3424dfefd13af3a930a1fd62b440325a01967b53)

--------------------------------------------------------------------------------
dc01182855 | Eino Keskitalo | 2010-02-25 01:42:34 -0600

Update process.txt to reflect the move to CDO Mantis/Wiki.
Oh, how much it could be improved.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 0e8db4e15aebe33bbb81a0e4904e0492924536e2)

--------------------------------------------------------------------------------
1266227065 | Johanna Ploog | 2010-02-25 01:42:20 -0600

Change the message upon entering a labyrinth.
Two messages, actually, both only slightly shorter than 80 columns:

1. As you enter the labyrinth, previously moving walls settle noisily
   into place.
2. You hear the metallic echo of a distant snort before it fades into
   the rock.

Message 1 gives an indication that the walls might not be static.
Message 2 ties into the labyrinth timer's message (and is, in fact,
similar enough to also be coloured yellow, which I think is a nice
perk), and hints at the rock > metal rule.
(cherry picked from commit b5c4c8c9870a7b52ccd4144c61b8b8b8e608df56)

--------------------------------------------------------------------------------
dbd0f83f0f | Eino Keskitalo | 2010-02-25 01:41:35 -0600

Fix incorrect listing of CMD_MAP_JUMP commands. Fixes Mantis [925].
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit d48dcf7ac16ce166147786b40ab5d7a62f4a8829)

--------------------------------------------------------------------------------
dcf6d2fe02 | Eino Keskitalo | 2010-02-25 01:41:27 -0600

Add MOD_NONE to key_mod enums (ixtli)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 44d9bb63a9a94f676cb62665ecedf11fe420fdeb)

--------------------------------------------------------------------------------
c6e9f653e0 | Johanna Ploog | 2010-02-25 01:41:20 -0600

Various tutorial tweaks, making the introduction work with ASCII again.
Some of my previous assumptions about message behaviour interact badly
with the message window changes, so it was time to adapt. Doesn't hurt
if the code becomes a bit more streamlined in the process.

Also, repeat the initial hint about ? and Ctrl-P at the end of the
tutorial. I'm afraid all that information can be overwhelming.
(cherry picked from commit f1e0de3db38c45bd29673ec4e5ea2e8cdb5d186a)

--------------------------------------------------------------------------------
6dd7efe478 | Johanna Ploog | 2010-02-25 01:40:37 -0600

Fix double-prompt when leaving the dungeon during the tutorial.
Inverted logic made it ask me twice even if I said 'no' the first
time around.
(cherry picked from commit 497584e782b0b438a30f2bd453344cbd0b284163)

--------------------------------------------------------------------------------
2ed8e795f8 | Johanna Ploog | 2010-02-25 01:40:15 -0600

New Necromutation tile, based on Porkchop's idea.
Now coloured red for easier differentiation from monster lichs, and
uses wielded player weapon.
(cherry picked from commit fc194cb677770af387442d67d41897b031389432)

--------------------------------------------------------------------------------
957c7e3c04 | David Ploog | 2010-02-25 01:39:57 -0600

Minor change to FAQ.txt and friend.
There was no Sourceforge in there, but I still made a small modification.
(cherry picked from commit 144e72823680cb7e2cf69668180d76bcb0ed2ab8)

--------------------------------------------------------------------------------
9ba9015848 | David Ploog | 2010-02-25 01:39:48 -0600

CDO rather than SF in the manual.
Point readers to the new homepage.
(cherry picked from commit 80e94bc6df9ea56935e5fd47026cc7c4fe664f7a)

--------------------------------------------------------------------------------
c6ce365fc8 | David Ploog | 2010-02-25 01:39:40 -0600

Update README.txt and friends.
All references to the Sourceforce page have been replaced by references
to crawl.develz.org (well, with the exception of the mailing list).
(cherry picked from commit a328813ed594ce97f714b6de57373e83698b4ef6)

--------------------------------------------------------------------------------
b3042c92e3 | Eino Keskitalo | 2010-02-25 01:39:24 -0600

Fix Elyvilon's guaranteed protection from harm not being guaranteed.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 724d761ddba6de4cd6ac0346fd0aedc39ad68c01)

--------------------------------------------------------------------------------
0bd8958972 | David Ploog | 2010-02-25 01:38:57 -0600

Update quickstart.txt and friends. (cherry picked from commit 
a26a39b26eb63f378705fdfcadadba83592c8b93)

--------------------------------------------------------------------------------
48637a9281 | Robert Vollmert | 2010-02-25 01:38:49 -0600

Pass a flag instead of checking global state in dgn-overview.
Previously, overview_description_string() checked for a running
game to determine whether to print certain informational things.
They were still being displayed for in-game character dumps ('#')
however.
(cherry picked from commit 741c2fc983f323461a65505206d84e68b9859f77)

--------------------------------------------------------------------------------
8e19dd07ea | Henry | 2010-02-25 01:38:07 -0600

Unseen altars are not displayed in morgue (cherry picked from commit 
53b13b267388c189806fcf4f9a8c8da9c414022f)

--------------------------------------------------------------------------------
ea018a4200 | Johanna Ploog | 2010-02-25 01:37:36 -0600

Implement #913: Mark bad type disintegrated monsters' chunks "dropped".
Depending on chunk type and your current resistances, some desintegrated
monsters' chunks now get the DROPPED flag.
(cherry picked from commit 2c3121f2682302778df05a57c759cda19c414fdf)

--------------------------------------------------------------------------------
21346a0d85 | Robert Vollmert | 2010-02-25 01:36:59 -0600

Make ossuary portals brown.
This distinguishes them from shops, resolving issue #668.
(cherry picked from commit b945aa19e2796b755cdcb91be5e642a8918bf355)

--------------------------------------------------------------------------------
9b8287013c | Robert Vollmert | 2010-02-25 01:35:43 -0600

Don't do distortion unwield effect for temporary brand.
Fixes issue #793. You can wait it out anyway, so it serves no
real purpose.
(cherry picked from commit 54e0ebaa00cab414272f32b7aac7ec02e3e36846)

--------------------------------------------------------------------------------
ac3b96571b | Robert Vollmert | 2010-02-25 01:35:23 -0600

Restore more state when returning from level excursion.
level_excursion was previously clearing env.markers.
Now it restores them in the end, fixing issue #163.

level_excursion::go_to got an extra parameter "orig" that
says whether to load the level including state, which is
set true when restoring the original level.

Also, level_excursion now doesn't update LOS for each level
it visits, which will most likely not make it noticeably
faster.
(cherry picked from commit ccd5f1f8556adfa9db65b1b1efce90011c5c6633)

--------------------------------------------------------------------------------
b22e6f5431 | Johanna Ploog | 2010-02-25 01:34:02 -0600

Update silence descriptions to include the shrinking radius. (cherry picked 
from commit 7042ba6798c13430848cba233428650f13ac48f2)

--------------------------------------------------------------------------------
644ff6a35a | Johanna Ploog | 2010-02-25 01:33:34 -0600

Default small_more to false.
This is just too confusing to new players, and that's who we should
have in mind when deciding on default settings.
(cherry picked from commit 1af13672780bc87ecb0f1493964d0846b1168679)

--------------------------------------------------------------------------------
90b3393b4d | Johanna Ploog | 2010-02-25 01:32:54 -0600

Fix the Tiles tooltip giving away the presence of invisible monsters. (cherry 
picked from commit 9e0ca811eba95308c39e324cb35fa5eef687ec0f)

--------------------------------------------------------------------------------
64079b3b11 | Johanna Ploog | 2010-02-25 01:32:45 -0600

Add LoginError to the credits. (cherry picked from commit 
b73ddf30d92f84be2b5d55ca726e7e9c0b05a2f8)

--------------------------------------------------------------------------------
47740d3bb7 | Johanna Ploog | 2010-02-25 01:32:36 -0600

Add LoginError's tiles for various runed/steel/silver ammunition. (cherry 
picked from commit bf22b3c32dfdc8d2d754a4e7376ffc3527321c20)

--------------------------------------------------------------------------------
c353e8010f | Johanna Ploog | 2010-02-25 01:32:04 -0600

Fix clouds not being described when examining surroundings.
Also covers sanctuary and silence.
(cherry picked from commit 233146c88ed295fef87c3248f2f5fbca514984f7)

--------------------------------------------------------------------------------
2230f170c9 | Robert Vollmert | 2010-02-25 01:31:27 -0600

Fix wizard mode portal descriptions (&P). (cherry picked from commit 
afb1d461cf075e97ede9dc7fe0ffe4d5ea497a40)

--------------------------------------------------------------------------------
d164823c48 | Enne Walker | 2010-02-25 01:29:43 -0600

[885] Fix draconian tile issues in the Abyss.
In the Abyss, the monster cache entries never get their refcounts
incremented because the player doesn't remember what they've seen.  When
viewwindow was getting called again for 'x' and 'X' it would clear the
tile information to draw any monsters that used the mcache, because they
all had a ref count of 0.
(cherry picked from commit f0ba43beab644a2463a3b2ceed8ac0812c4e0b93)

--------------------------------------------------------------------------------
9373136826 | Enne Walker | 2010-02-25 01:29:24 -0600

Make tiles use viewwindow for 'X' map display.
This eliminates a duplicate function that had gotten out of sync with the
original viewwindow.  (In particular, this fixes a bug where using X in
the Abyss would show out of sight tiles and the presence of items.)
(cherry picked from commit 985f4d906106e58a16ca24232ca9b746a02886c1)

--------------------------------------------------------------------------------
883868d12b | Enne Walker | 2010-02-25 01:28:54 -0600

[835] Don't display OOS blood/mold for tiles.
There's no differentiation between what the player remembers and what
actually exists, so information leaks through blood and mold placement if
it is shown on out of sight tiles.
(cherry picked from commit b2e0d9c5140b39c61386b97294ffc590dc19da88)

--------------------------------------------------------------------------------
d5355708ce | Johanna Ploog | 2010-02-25 01:28:30 -0600

Make Jiyva's altar jiggle quite a bit.
Also add LoginError's runed sling tile.
(cherry picked from commit 310886515ab3c5c6381ee0cb4478347a2809a454)

--------------------------------------------------------------------------------
57e1548806 | Johanna Ploog | 2010-02-25 01:28:14 -0600

Fix #915: Corpse glyph and corresponding message wrong in tutorial. (cherry 
picked from commit 1a3efe1645312d8a7f159d88bdd71beefb5c27b7)

--------------------------------------------------------------------------------
1e4af5e7e2 | Johanna Ploog | 2010-02-25 01:27:25 -0600

Add Porkchop's tile (slightly tweaked) for Cigotuvi's Monster. (cherry picked 
from commit d05e88a1d8e8f57ee8c154dc7eb32f2edf353e26)

--------------------------------------------------------------------------------
e20a2ec0cd | Johanna Ploog | 2010-02-25 01:27:11 -0600

Fix double-bracketed terrain descriptions on examining surroundings. (cherry 
picked from commit 72439d9ce10119a6a5bc2be4d24d80de75d1e1d7)

--------------------------------------------------------------------------------
2d702b5a67 | Johanna Ploog | 2010-02-25 01:26:41 -0600

Add inky wave overlays for the kraken's ink clouds.
I experimented a bit with ink blots and cloud shapes and eventually
decided simply overlaying the water with a inky sheen would work
best. This did require adapting the wave combination to ink, but it
works rather well.
(cherry picked from commit 3ee8628f6c117a90842031392000e1f8e66b5a72)

--------------------------------------------------------------------------------
16b53086f8 | Johanna Ploog | 2010-02-25 01:26:11 -0600

Update tiles_help.txt to the Alt -> Ctrl-Shift change. (cherry picked from 
commit bf871946a142a0dd76b2c012304a24ce813c1e25)

--------------------------------------------------------------------------------
4c444e4926 | Johanna Ploog | 2010-02-25 01:25:36 -0600

Add another autoinscribe suggestion, though commented out.
For Transmuters, it is really easy to accidentally quaff their potions
of degeneration etc. It took me a while to realize that bad_item can
be used here as well, so I added it as an example to the documentation
and, while I was at it, also to init.txt.
(cherry picked from commit dc996c5a4dff0715cfdbf996980f508e37c3b37e)

--------------------------------------------------------------------------------
4120052b3e | Eino Keskitalo | 2010-02-25 01:25:08 -0600

Fix rltiles Makefile not working on Windows.
Tested with a local Windows msysgit build and CDO's mingw cross-compile. 
(Thanks to Napkin!)

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 3a3eecdf264cf794433b43fbe95087b56f7cc818)

--------------------------------------------------------------------------------
ed4fac6a3f | Darshan Shaligram | 2010-02-25 01:24:59 -0600

Fix signed-unsigned comparison warning. (cherry picked from commit 
5c29a376833a01ab2515570801cdd1e708368bcd)

--------------------------------------------------------------------------------
151a12871b | Johanna Ploog | 2010-02-25 01:22:25 -0600

Tiles: Extend plant stash brand to stationary monsters in general.
Tiles player would have been unable to tell that the Tukima wizlab
statues have items underneath them. Now the stash (or heap) brand
is applied to all stationary monsters rather than only those of
plant holiness, which didn't make sense for spores etc. anyway.
(cherry picked from commit 6c017082c63faebf02fd5f17ec3b5d3047d1f7e9)

--------------------------------------------------------------------------------
41f98669ff | Johanna Ploog | 2010-02-25 01:21:51 -0600

Add more variant tiles for Makhleb's blazing altar. (cherry picked from commit 
ea4b50b300a379b5831248a8575815b7aae9a9c7)

--------------------------------------------------------------------------------
1ea78b202c | Johanna Ploog | 2010-02-25 01:21:37 -0600

Add tile for the Tukima's wizlab's other "strange machine".
Eight tiles of a set, randomly chosen. I had to add a special case in
tilepick.cc as randomly flickering monster tiles aren't yet handled in
the code. Extending that functionality from dngn to player tiles is
certainly possible, but should wait until 0.7.
(cherry picked from commit 32f9d486798ebf59d3df7142034cdda1fae9658f)

--------------------------------------------------------------------------------
06c7979d47 | Johanna Ploog | 2010-02-25 01:21:23 -0600

Move special minivault dungeon features into subfolder dngn/vaults. (cherry 
picked from commit a23b086b049baa5cfab58c1b2e0ec667a48a983a)

--------------------------------------------------------------------------------
34802bc548 | Johanna Ploog | 2010-02-25 01:20:58 -0600

Add Porkchop's alligator tiles, slightly tweaked.
Also, make the giant newt tile a bit darker again.
(cherry picked from commit 8220285b646121dc81fd653543a77743ae085964)

--------------------------------------------------------------------------------
494c71503e | Robert Vollmert | 2010-02-25 01:20:24 -0600

Fix mummy self-restoration being disabled when just rotted.
Fixes issue #908.

There was code there that specifically disabled this for
no reason I can think of. Mummy restoration has always
unrotted hp from what I can tell.
(cherry picked from commit 458b65ca06bcf1fbf4f40b8ce6977fe289d66587)

--------------------------------------------------------------------------------
4beb2f0caf | Enne Walker | 2010-02-25 01:20:06 -0600

Use correct targets in rltiles/tool/*.d files.
Just another ".d file in a subdirectory" problem.
(cherry picked from commit a9568c0358235516d580dec0369dc2510b8cfa80)

--------------------------------------------------------------------------------
bb6941b0dc | Enne Walker | 2010-02-25 01:19:49 -0600

Revert removal of PNG target dependencies. (cherry picked from commit 
01979264084ef15693ba5930c6e5148fbc8b9840)

--------------------------------------------------------------------------------
eb56dcd84f | Eino Keskitalo | 2010-02-25 01:19:36 -0600

Fix the crocodile shadow a little.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 9dcc67edbd3d20537b458d5059b1e2f942be00f0)

--------------------------------------------------------------------------------
3cd54ed944 | Eino Keskitalo | 2010-02-25 01:19:29 -0600

Adjust brightness and contrast of the giant newt tile. It is now a lighter 
shade of gray, to make it stand out better from the regular dungeon floor.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit b9cdbf11ae812f5407663eae8825aeaf32369902)

--------------------------------------------------------------------------------
9a42fc0f1a | Steven Noonan | 2010-02-25 01:18:58 -0600

Xcode project: fix build failures due to source references and contrib breakage
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 2a48b99d558727d4f5430d20e6ec1d438df86f04)

--------------------------------------------------------------------------------
b38a78f33f | Darshan Shaligram | 2010-02-25 01:18:41 -0600

Don't pick uniques as candidates for random zombies; fixes Lernaean hydra 
zombies being randomly generated. (cherry picked from commit 
a460c7dbc8e9d8df32eaee5d198a01652b410367)

--------------------------------------------------------------------------------
91b0949adc | Steven Noonan | 2010-02-25 01:18:32 -0600

rltiles/tool: add .gitignore
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit e683549c00e2828ac4434cb890059c847958f9cf)

--------------------------------------------------------------------------------
4708eb7e25 | Steven Noonan | 2010-02-25 01:18:25 -0600

rltiles/Makefile: make 'all', 'clean', and 'distclean' phony targets
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 65b8adb52c2ff842b1b99af2f592302585a292aa)

--------------------------------------------------------------------------------
47938a965e | Steven Noonan | 2010-02-25 01:18:17 -0600

rltiles/Makefile: fix dependency generation
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit c25db1b9937fd407310315d59ba98b82fb3916c9)

--------------------------------------------------------------------------------
70d3baceb2 | Steven Noonan | 2010-02-25 01:17:51 -0600

rltiles/Makefile: make $(RLTILES) an order-only dependency
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit f32c1d692519e4bdc6084520c2e4ae8b7e03847c)

--------------------------------------------------------------------------------
5241411211 | Steven Noonan | 2010-02-25 01:17:40 -0600

rltiles/Makefile: fix tilegen targets
They were rebuilding over and over. Now they're not.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 48a8a05a0fcaefbdcac14d79f5d8bd1dfc245e25)

--------------------------------------------------------------------------------
d61b64565b | Steven Noonan | 2010-02-25 01:16:52 -0600

rltiles/Makefile: fix dependency on 'tilegen'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit f4baf1b3c4f941240ae331cbfe9149381df5b191)

--------------------------------------------------------------------------------
8bf00bdd32 | Steven Noonan | 2010-02-25 01:16:23 -0600

tile_list_processor.cc: fix segfault on fclose() of null FILE*
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit e07fbd67e2bbf44b4723232638de3de3a8d02c7d)

--------------------------------------------------------------------------------
833f770d02 | Jesse Luehrs | 2010-02-25 01:15:59 -0600

Revert "Revert "Only generate tiledef files if they have changed.""
This reverts commit c5df005ee86a05a6f11ba4a40520945c89553fbe.

--------------------------------------------------------------------------------
2c642e4a0f | Steven Noonan | 2010-02-25 01:07:36 -0600

rltiles/makefile.unix: rename to rltiles/Makefile
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit db2f4c3819843b1d095504bfc798a20d1319ce26)

--------------------------------------------------------------------------------
25768f550c | Steven Noonan | 2010-02-25 01:07:28 -0600

rltiles/makefile.unix: use system libsdl/libpng where possible
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 92183718e8fa4e2b3e9a7508160100a7f9be9f73)

--------------------------------------------------------------------------------
b3cdb182f5 | Steven Noonan | 2010-02-25 01:07:15 -0600

makefile: add rltiles/dc-unrand.txt to GENERATED_FILES
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
(cherry picked from commit 1b4e7de271b0430788873021b733b65d8317456c)

--------------------------------------------------------------------------------
3b8952139b | Enne Walker | 2010-02-25 01:07:03 -0600

Fix dependencies for files in subdirectories.
-MM and -MD strip off the subdirectory path, so .d files in
subdirectories were getting the wrong target name.  This change should
allow rltiles/tiledef-*.cc files to have proper dependency support which
(for example) will correctly rebuild tiledef-player.cc when dc-main.txt
changes.
(cherry picked from commit 6d65dcaa2c7ccd917059a6db651b1e242679a033)

--------------------------------------------------------------------------------
0b1fef82f4 | Johanna Ploog | 2010-02-25 01:06:47 -0600

Update manual section on autoinscription abbreviations. (cherry picked from 
commit 17503ff64d2c10af995633e5d56afc17354fa612)

--------------------------------------------------------------------------------
f569ca1926 | Johanna Ploog | 2010-02-25 01:06:47 -0600

Show power, range and food cost when browsing spell descriptions.
When reading spell descriptions, list the spells' power, range and
nutrition value they would have if you were to memorize them right
away and then attempt to cast them.

This has already been the case for Tiles for a while now, and I
don't see any reason not to extend it to the console version.
It's not exactly hidden information, either.
(cherry picked from commit acaa8616ccc83d51381a4af59ad02cf7f5b7a879)

--------------------------------------------------------------------------------
1aa024c089 | Johanna Ploog | 2010-02-25 01:06:46 -0600

Fix SF 2938758: Wrong message for unmemorizable spells due to Lich form.
Also takes care of some duplicated messaging code.
(cherry picked from commit e13d4aaf17222d32e822e6927167517a5e9f9e7e)

--------------------------------------------------------------------------------
a82eef6745 | Jude Brown | 2010-02-25 01:06:46 -0600

Fix #903: Only make enchanted needles runed.
All needles are branded, therefore all needles were being marked as
runed; this is pointless, because brands are instantly visible for
needles.
(cherry picked from commit 79f5f8466a18c628fd4137c84d868a54e9455dc1)

--------------------------------------------------------------------------------
02411f0a44 | David Ploog | 2010-02-25 01:06:46 -0600

Repair a line of speech (Mu). (cherry picked from commit 
ded8497143b84220811a2eec29b4a75229eff717)

--------------------------------------------------------------------------------
55dae7155b | Johanna Ploog | 2010-02-25 01:06:46 -0600

Fix #904: preserve_feat being ignored when using Lugonu's corruption.
Two parameters passed to dungeon_terrain_changed() were switched, so
that preserve_feat was in effect always used for affect_player which
probably only would have mattered for lava or something.
(cherry picked from commit c51c8904cffb4255711c3b38849adf74fe3540cc)

--------------------------------------------------------------------------------
f84ea566e1 | Johanna Ploog | 2010-02-25 01:06:45 -0600

Fix #901: Death's door also preventing "death" by winning or leaving. (cherry 
picked from commit 906afacf4a2ad066abb46f235b37009b7fda3220)

--------------------------------------------------------------------------------
80fd73ff93 | Eino Keskitalo | 2010-02-25 01:06:45 -0600

Add milestones for bazaars. (due)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 9f6b1874aace5a7f028fccf089aff1246a66d3a0)

--------------------------------------------------------------------------------
a670b5c140 | Eino Keskitalo | 2010-02-25 01:06:45 -0600

Use epilogues for portal vault milestones and welcome messages.
Use crawl.mpr instead of e.welcome for the bazaar welcome messages.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 0e23f600259fc931da438c19f90a790a7cd1a73e)

--------------------------------------------------------------------------------
624f876e9c | Darshan Shaligram | 2010-02-25 01:06:44 -0600

Skip _place_aquatic_monsters in Shoals; this brings Shoals xp in line with 
Snake (~56k as compared to ~55k for Snake and ~52k for Swamp).
Increased weights for kraken and shark to compensate for 
_place_aquatic_monsters no longer being used.
(cherry picked from commit a0e7f887da0dceab0f459d8c7bd39c146e38d202)

--------------------------------------------------------------------------------
290637fc2a | Steven Noonan | 2010-02-24 21:44:09 -0800

sqlite: fix inconsistent use of SQLITE_HAS_CODEC macro
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
edc19f900d | Steven Noonan | 2010-02-24 19:43:15 -0800

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
d6b26f6373 | Steven Noonan | 2010-02-24 19:29:46 -0800

makefile: fix build on the Intel compiler
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
fbc04a5da3 | Steven Noonan | 2010-02-24 18:54:36 -0800

exclude.cc: add missing access specifier for inherited struct
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
38f519b830 | Steven Noonan | 2010-02-24 18:54:15 -0800

stash.{cc,h}: remove meaningless qualifier on return type
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ebded3208a | Steven Noonan | 2010-02-24 18:38:42 -0800

losparam.h: add missing access specifiers for inherited structs
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
96ea06c7ad | Steven Noonan | 2010-02-24 18:35:25 -0800

sdl: fix gitignore rules
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6dc061e373 | Steven Noonan | 2010-02-24 18:32:38 -0800

sqlite: fix gitignore rules
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d36f928201 | Steven Noonan | 2010-02-24 18:31:53 -0800

sqlite: fix Intel compiler breakage
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1551cca81e | Steven Noonan | 2010-02-24 18:29:49 -0800

AppHdr.h: use 'ifdef __MWERKS__' instead of 'if __MWERKS__'
The Intel compiler hates doing the latter.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3454072fb2 | Johanna Ploog | 2010-02-25 02:01:32 +0100

Add new design for Cheibriados' altar, now complete with clock.
The clock actually works, but it moves backwards. :)

--------------------------------------------------------------------------------
679adf07b9 | Johanna Ploog | 2010-02-25 00:32:10 +0100

Fix #757: Duplicate punctuation in feature descriptions.
Instead of removing the fullstop from all feature descriptions where
this occured, I opted to add a special check in describe.cc instead,
so we don't add a dot if the description already ends in some kind
of punctuation: .!?

--------------------------------------------------------------------------------
709ebbd385 | Johanna Ploog | 2010-02-25 00:02:35 +0100

Mantis #924: Prevent some uniques from ditching their weapon.
Some uniques have speech/descriptions tailored to their weapon, or
it can be considered a "signature weapon" for another reason. For
example, Sigmund was already disallowed from ditching his scythe
for any non-scythe. I've now added more special cases for various
other uniques, most of whom may still switch their weapon against
another one of the same type.

--------------------------------------------------------------------------------
3424dfefd1 | Eino Keskitalo | 2010-02-25 00:11:09 +0200

Update patch_guide.txt to reflect the use of git.
I think I lost some of the friendly tone and good flow.. at the same time, 
pointing possible contributors more towards using git is good, as it makes the 
workflow easier, and people will be using the right tools from the start.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0e8db4e15a | Eino Keskitalo | 2010-02-25 00:11:08 +0200

Update process.txt to reflect the move to CDO Mantis/Wiki.
Oh, how much it could be improved.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b5c4c8c987 | Johanna Ploog | 2010-02-24 23:25:01 +0100

Change the message upon entering a labyrinth.
Two messages, actually, both only slightly shorter than 80 columns:

1. As you enter the labyrinth, previously moving walls settle noisily
   into place.
2. You hear the metallic echo of a distant snort before it fades into
   the rock.

Message 1 gives an indication that the walls might not be static.
Message 2 ties into the labyrinth timer's message (and is, in fact,
similar enough to also be coloured yellow, which I think is a nice
perk), and hints at the rock > metal rule.

--------------------------------------------------------------------------------
d48dcf7ac1 | Eino Keskitalo | 2010-02-24 22:57:41 +0200

Fix incorrect listing of CMD_MAP_JUMP commands. Fixes Mantis [925].
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
44d9bb63a9 | Eino Keskitalo | 2010-02-24 22:41:14 +0200

Add MOD_NONE to key_mod enums (ixtli)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f1e0de3db3 | Johanna Ploog | 2010-02-24 22:00:54 +0100

Various tutorial tweaks, making the introduction work with ASCII again.
Some of my previous assumptions about message behaviour interact badly
with the message window changes, so it was time to adapt. Doesn't hurt
if the code becomes a bit more streamlined in the process.

Also, repeat the initial hint about ? and Ctrl-P at the end of the
tutorial. I'm afraid all that information can be overwhelming.

--------------------------------------------------------------------------------
497584e782 | Johanna Ploog | 2010-02-24 22:00:54 +0100

Fix double-prompt when leaving the dungeon during the tutorial.
Inverted logic made it ask me twice even if I said 'no' the first
time around.

--------------------------------------------------------------------------------
fc194cb677 | Johanna Ploog | 2010-02-24 22:00:54 +0100

New Necromutation tile, based on Porkchop's idea.
Now coloured red for easier differentiation from monster lichs, and
uses wielded player weapon.

--------------------------------------------------------------------------------
144e728236 | David Ploog | 2010-02-24 20:33:15 +0100

Minor change to FAQ.txt and friend.
There was no Sourceforge in there, but I still made a small modification.

--------------------------------------------------------------------------------
80e94bc6df | David Ploog | 2010-02-24 20:10:56 +0100

CDO rather than SF in the manual.
Point readers to the new homepage.

--------------------------------------------------------------------------------
a328813ed5 | David Ploog | 2010-02-24 19:58:53 +0100

Update README.txt and friends.
All references to the Sourceforce page have been replaced by references
to crawl.develz.org (well, with the exception of the mailing list).

--------------------------------------------------------------------------------
724d761ddb | Eino Keskitalo | 2010-02-24 19:34:31 +0200

Fix Elyvilon's guaranteed protection from harm not being guaranteed.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a26a39b26e | David Ploog | 2010-02-24 18:16:29 +0100

Update quickstart.txt and friends.

--------------------------------------------------------------------------------
741c2fc983 | Robert Vollmert | 2010-02-24 16:22:46 +0100

Pass a flag instead of checking global state in dgn-overview.
Previously, overview_description_string() checked for a running
game to determine whether to print certain informational things.
They were still being displayed for in-game character dumps ('#')
however.

--------------------------------------------------------------------------------
53b13b2673 | Henry | 2010-02-24 16:05:26 +0100

Unseen altars are not displayed in morgue

--------------------------------------------------------------------------------
2c3121f268 | Johanna Ploog | 2010-02-24 16:24:31 +0100

Implement #913: Mark bad type disintegrated monsters' chunks "dropped".
Depending on chunk type and your current resistances, some desintegrated
monsters' chunks now get the DROPPED flag.

--------------------------------------------------------------------------------
b945aa19e2 | Robert Vollmert | 2010-02-24 15:53:58 +0100

Make ossuary portals brown.
This distinguishes them from shops, resolving issue #668.

--------------------------------------------------------------------------------
8934b45567 | Robert Vollmert | 2010-02-24 15:24:48 +0100

Adapt sentinel aptitudes.
The previous sentinel value was converted to zero, causing crashes
for &r (sorear, greensnark).

--------------------------------------------------------------------------------
19d9e5e17a | Eino Keskitalo | 2010-02-24 16:04:01 +0200

Fix accidentally committed testing settings.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
af0715d6af | Eino Keskitalo | 2010-02-24 16:01:03 +0200

Reduce default tile_map_pixels by one pixel.
More inventory is displayed this way, and the minimap should still stay 
clickable.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
ca26007aa4 | Eino Keskitalo | 2010-02-24 16:01:02 +0200

Clarify how tiles_map_pixels now works.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
fdd1f71e75 | Eino Keskitalo | 2010-02-24 16:01:01 +0200

Rewrite of TilesFramework::do_layout().
Calculate the region sizes directly and more accurately, and respect the 
options more often. The code can now take better advantage of the bigger 
resolutions.

Notable changes that show externally:
 * Always reserve space for the stat region.
 * Removed margin.

Reserving the stat region makes sure part (or all) of it doesn't "fall out" of 
the screen/window. On the other hand, the font and map pixel defaults are now a 
bit too big - the tile scaling kicks in earlier.

Scaling could be improved to include inventory/tab tiles, map size and fonts.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
54e0ebaa00 | Robert Vollmert | 2010-02-24 14:49:24 +0100

Don't do distortion unwield effect for temporary brand.
Fixes issue #793. You can wait it out anyway, so it serves no
real purpose.

--------------------------------------------------------------------------------
ccd5f1f855 | Robert Vollmert | 2010-02-24 14:29:53 +0100

Restore more state when returning from level excursion.
level_excursion was previously clearing env.markers.
Now it restores them in the end, fixing issue #163.

level_excursion::go_to got an extra parameter "orig" that
says whether to load the level including state, which is
set true when restoring the original level.

Also, level_excursion now doesn't update LOS for each level
it visits, which will most likely not make it noticeably
faster.

--------------------------------------------------------------------------------
7042ba6798 | Johanna Ploog | 2010-02-24 14:41:00 +0100

Update silence descriptions to include the shrinking radius.

--------------------------------------------------------------------------------
1af1367278 | Johanna Ploog | 2010-02-24 14:30:36 +0100

Default small_more to false.
This is just too confusing to new players, and that's who we should
have in mind when deciding on default settings.

--------------------------------------------------------------------------------
9e0ca811eb | Johanna Ploog | 2010-02-24 13:41:54 +0100

Fix the Tiles tooltip giving away the presence of invisible monsters.

--------------------------------------------------------------------------------
b73ddf30d9 | Johanna Ploog | 2010-02-24 12:59:30 +0100

Add LoginError to the credits.

--------------------------------------------------------------------------------
bf22b3c32d | Johanna Ploog | 2010-02-24 12:57:34 +0100

Add LoginError's tiles for various runed/steel/silver ammunition.

--------------------------------------------------------------------------------
233146c88e | Johanna Ploog | 2010-02-24 12:57:34 +0100

Fix clouds not being described when examining surroundings.
Also covers sanctuary and silence.

--------------------------------------------------------------------------------
ba3fd8d315 | Robert Vollmert | 2010-02-24 11:56:21 +0100

Add XXX comment: labyrinth entrances are also converted by Lua.

--------------------------------------------------------------------------------
afb1d461cf | Robert Vollmert | 2010-02-24 11:09:42 +0100

Fix wizard mode portal descriptions (&P).

--------------------------------------------------------------------------------
3f2df81a22 | Robert Vollmert | 2010-02-24 09:17:52 +0100

Show positive aptitudes with '+' in aptitudes.txt (except Exp).

--------------------------------------------------------------------------------
c51bf27d80 | Robert Vollmert | 2010-02-24 09:17:31 +0100

Show positive aptitudes with '+' in skill screen.

--------------------------------------------------------------------------------
f1296fcc7a | Robert Vollmert | 2010-02-24 09:06:35 +0100

Divide aptitudes by 10.

--------------------------------------------------------------------------------
dbe6f3423d | Robert Vollmert | 2010-02-24 08:44:12 +0100

Round last remaining aptitude to 10.

--------------------------------------------------------------------------------
f0ba43beab | Enne Walker | 2010-02-23 22:42:24 -0500

[885] Fix draconian tile issues in the Abyss.
In the Abyss, the monster cache entries never get their refcounts
incremented because the player doesn't remember what they've seen.  When
viewwindow was getting called again for 'x' and 'X' it would clear the
tile information to draw any monsters that used the mcache, because they
all had a ref count of 0.

--------------------------------------------------------------------------------
985f4d9061 | Enne Walker | 2010-02-23 22:34:55 -0500

Make tiles use viewwindow for 'X' map display.
This eliminates a duplicate function that had gotten out of sync with the
original viewwindow.  (In particular, this fixes a bug where using X in
the Abyss would show out of sight tiles and the presence of items.)

--------------------------------------------------------------------------------
b2e0d9c514 | Enne Walker | 2010-02-23 20:41:26 -0500

[835] Don't display OOS blood/mold for tiles.
There's no differentiation between what the player remembers and what
actually exists, so information leaks through blood and mold placement if
it is shown on out of sight tiles.

--------------------------------------------------------------------------------
00e3429588 | David Lawrence Ramsey | 2010-02-23 18:10:28 -0600

Fix a few instances of the new aptitudes' not being multiples of 10.

--------------------------------------------------------------------------------
310886515a | Johanna Ploog | 2010-02-24 01:01:54 +0100

Make Jiyva's altar jiggle quite a bit.
Also add LoginError's runed sling tile.

--------------------------------------------------------------------------------
1a3efe1645 | Johanna Ploog | 2010-02-24 00:17:33 +0100

Fix #915: Corpse glyph and corresponding message wrong in tutorial.

--------------------------------------------------------------------------------
d05e88a1d8 | Johanna Ploog | 2010-02-23 23:35:01 +0100

Add Porkchop's tile (slightly tweaked) for Cigotuvi's Monster.

--------------------------------------------------------------------------------
72439d9ce1 | Johanna Ploog | 2010-02-23 23:07:08 +0100

Fix double-bracketed terrain descriptions on examining surroundings.

--------------------------------------------------------------------------------
3ee8628f6c | Johanna Ploog | 2010-02-23 23:07:07 +0100

Add inky wave overlays for the kraken's ink clouds.
I experimented a bit with ink blots and cloud shapes and eventually
decided simply overlaying the water with a inky sheen would work
best. This did require adapting the wave combination to ink, but it
works rather well.

--------------------------------------------------------------------------------
bf871946a1 | Johanna Ploog | 2010-02-23 23:07:07 +0100

Update tiles_help.txt to the Alt -> Ctrl-Shift change.

--------------------------------------------------------------------------------
dc996c5a4d | Johanna Ploog | 2010-02-23 23:07:07 +0100

Add another autoinscribe suggestion, though commented out.
For Transmuters, it is really easy to accidentally quaff their potions
of degeneration etc. It took me a while to realize that bad_item can
be used here as well, so I added it as an example to the documentation
and, while I was at it, also to init.txt.

--------------------------------------------------------------------------------
3a3eecdf26 | Eino Keskitalo | 2010-02-23 21:47:22 +0200

Fix rltiles Makefile not working on Windows.
Tested with a local Windows msysgit build and CDO's mingw cross-compile. 
(Thanks to Napkin!)

Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
5c29a37683 | Darshan Shaligram | 2010-02-24 00:25:18 +0530

Fix signed-unsigned comparison warning.

--------------------------------------------------------------------------------
aa93ce2314 | Darshan Shaligram | 2010-02-24 00:25:17 +0530

For dgl builds, record timestamps every 100 turns to a .ts file in the morgue 
directory to allow external tools to seek by turn.
Timestamps are written as 32-bit time_t (ware y2k38) in network byte order to 
the append-only .ts file.

No timestamps will be written after 500k turns.

--------------------------------------------------------------------------------
64fd835170 | David Ploog | 2010-02-23 19:48:03 +0100

Round aptitudes towards multiples of 10.
In a few cases, I didn't technically round.

--------------------------------------------------------------------------------
6c017082c6 | Johanna Ploog | 2010-02-23 18:47:58 +0100

Tiles: Extend plant stash brand to stationary monsters in general.
Tiles player would have been unable to tell that the Tukima wizlab
statues have items underneath them. Now the stash (or heap) brand
is applied to all stationary monsters rather than only those of
plant holiness, which didn't make sense for spores etc. anyway.

--------------------------------------------------------------------------------
ea4b50b300 | Johanna Ploog | 2010-02-23 18:47:58 +0100

Add more variant tiles for Makhleb's blazing altar.

--------------------------------------------------------------------------------
32f9d48679 | Johanna Ploog | 2010-02-23 18:47:57 +0100

Add tile for the Tukima's wizlab's other "strange machine".
Eight tiles of a set, randomly chosen. I had to add a special case in
tilepick.cc as randomly flickering monster tiles aren't yet handled in
the code. Extending that functionality from dngn to player tiles is
certainly possible, but should wait until 0.7.

--------------------------------------------------------------------------------
a23b086b04 | Johanna Ploog | 2010-02-23 18:47:57 +0100

Move special minivault dungeon features into subfolder dngn/vaults.

--------------------------------------------------------------------------------
8220285b64 | Johanna Ploog | 2010-02-23 18:47:57 +0100

Add Porkchop's alligator tiles, slightly tweaked.
Also, make the giant newt tile a bit darker again.

--------------------------------------------------------------------------------
458b65ca06 | Robert Vollmert | 2010-02-23 16:46:54 +0100

Fix mummy self-restoration being disabled when just rotted.
Fixes issue #908.

There was code there that specifically disabled this for
no reason I can think of. Mummy restoration has always
unrotted hp from what I can tell.

--------------------------------------------------------------------------------
d7eac97dbd | Robert Vollmert | 2010-02-23 15:46:21 +0100

Adapt gen-apt.pl to new aptitudes.

--------------------------------------------------------------------------------
f6506bc9f6 | Robert Vollmert | 2010-02-23 15:46:21 +0100

Convert to old-style aptitude in species_skills().

--------------------------------------------------------------------------------
5732cbd121 | Robert Vollmert | 2010-02-23 15:46:21 +0100

Convert skill aptitudes to logarithmic scale.
Human aptitude is now 0, and a factor 2 (i.e. 200) becomes -40.

These should eventually be divided by 10, but that requires
deciding how to round certain aptitudes.

--------------------------------------------------------------------------------
a9568c0358 | Enne Walker | 2010-02-23 08:15:17 -0500

Use correct targets in rltiles/tool/*.d files.
Just another ".d file in a subdirectory" problem.

--------------------------------------------------------------------------------
0197926408 | Enne Walker | 2010-02-23 08:14:31 -0500

Revert removal of PNG target dependencies.

--------------------------------------------------------------------------------
9dcc67edbd | Eino Keskitalo | 2010-02-23 13:27:09 +0200

Fix the crocodile shadow a little.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b9cdbf11ae | Eino Keskitalo | 2010-02-23 13:24:50 +0200

Adjust brightness and contrast of the giant newt tile. It is now a lighter 
shade of gray, to make it stand out better from the regular dungeon floor.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b0dd87584f | Steven Noonan | 2010-02-23 01:48:51 -0800

contrib: fix build on Mac
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2a48b99d55 | Steven Noonan | 2010-02-23 01:48:03 -0800

Xcode project: fix build failures due to source references and contrib breakage
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a460c7dbc8 | Darshan Shaligram | 2010-02-23 10:27:39 +0530

Don't pick uniques as candidates for random zombies; fixes Lernaean hydra 
zombies being randomly generated.

--------------------------------------------------------------------------------
e683549c00 | Steven Noonan | 2010-02-22 19:47:37 -0800

rltiles/tool: add .gitignore
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
65b8adb52c | Steven Noonan | 2010-02-22 19:41:30 -0800

rltiles/Makefile: make 'all', 'clean', and 'distclean' phony targets
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c25db1b993 | Steven Noonan | 2010-02-22 19:41:12 -0800

rltiles/Makefile: fix dependency generation
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f32c1d6925 | Steven Noonan | 2010-02-22 19:40:46 -0800

rltiles/Makefile: make $(RLTILES) an order-only dependency
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
48a8a05a0f | Steven Noonan | 2010-02-22 18:55:03 -0800

rltiles/Makefile: fix tilegen targets
They were rebuilding over and over. Now they're not.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f4baf1b3c4 | Steven Noonan | 2010-02-22 18:52:13 -0800

rltiles/Makefile: fix dependency on 'tilegen'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d2067010d8 | Steven Noonan | 2010-02-22 18:49:53 -0800

sdl-image: update 1.2.8 -> 1.2.10
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2663a09031 | Steven Noonan | 2010-02-22 18:49:53 -0800

pcre: update 8.00 -> 8.01
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
55e7c5ff1d | Steven Noonan | 2010-02-22 18:49:53 -0800

libpng: update 1.2.41 -> 1.4.0
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6ac4ecde76 | Steven Noonan | 2010-02-22 18:49:52 -0800

freetype: update 2.3.11 -> 2.3.12
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
adc5f7340f | Steven Noonan | 2010-02-22 18:49:52 -0800

sqlite: update 3.6.20 -> 3.6.22
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
db2f4c3819 | Steven Noonan | 2010-02-22 18:49:52 -0800

rltiles/makefile.unix: rename to rltiles/Makefile
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
92183718e8 | Steven Noonan | 2010-02-22 18:49:52 -0800

rltiles/makefile.unix: use system libsdl/libpng where possible
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1b4e7de271 | Steven Noonan | 2010-02-22 18:49:52 -0800

makefile: add rltiles/dc-unrand.txt to GENERATED_FILES
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6d65dcaa2c | Enne Walker | 2010-02-22 21:46:12 -0500

Fix dependencies for files in subdirectories.
-MM and -MD strip off the subdirectory path, so .d files in
subdirectories were getting the wrong target name.  This change should
allow rltiles/tiledef-*.cc files to have proper dependency support which
(for example) will correctly rebuild tiledef-player.cc when dc-main.txt
changes.

--------------------------------------------------------------------------------
00f2c5191e | Enne Walker | 2010-02-22 21:09:57 -0500

Revert "Add include files to rltiles dependencies."
This reverts commit 6faeda5180ab0c8b437689092e512d67c6ebc176.

My mistake.  There's no need for this, and it doesn't fix the original
problem.

--------------------------------------------------------------------------------
17503ff64d | Johanna Ploog | 2010-02-23 03:04:30 +0100

Update manual section on autoinscription abbreviations.

--------------------------------------------------------------------------------
ce5549d691 | Johanna Ploog | 2010-02-23 03:01:42 +0100

Fix ?/ not showing book descriptions for ASCII.
Apparently, process_description() is overly fussy about the space
available, so we have to skip the extra lines about the book being
too difficult, or the entire description isn't printed.

It all fits into the (r)eading screen, so I don't understand why
it doesn't work for the database output. :/

--------------------------------------------------------------------------------
2d3fd2d1e6 | Johanna Ploog | 2010-02-23 02:41:17 +0100

Fix overly long book descriptions in the console version.

--------------------------------------------------------------------------------
acaa8616cc | Johanna Ploog | 2010-02-23 02:36:18 +0100

Show power, range and food cost when browsing spell descriptions.
When reading spell descriptions, list the spells' power, range and
nutrition value they would have if you were to memorize them right
away and then attempt to cast them.

This has already been the case for Tiles for a while now, and I
don't see any reason not to extend it to the console version.
It's not exactly hidden information, either.

--------------------------------------------------------------------------------
8667fe4680 | Johanna Ploog | 2010-02-23 01:11:22 +0100

Implement #624: Allow browsing of identified "risky" spellbooks.
* If you encounter the book of Annihilations/Demonology or Necronomicon
  in a bookshop, you can now browse its contents.
* If you buy such a book, it is already identified, so you can continue
  to read the spell descriptions at your leisure.
* You can still not memorise these spells if you don't fulfil the
  requirements. They will also be coloured useless while that is the
  case.
* If you find these books lying around in the dungeon, reading them will
  _not_ identify them (or give away their spell list) unless you meet
  the requirements. [1]

I also added the old "beyond your current level of understanding" line
to both book and corresponding spell descriptions.

Tested for the Necronomicon seen in a shop, Demonology seen in a shop
and bought, and Annihilations found unidentified (in wizard mode),
using (r)ead, (i)nventory, (M)emorise, ?/, and the Tiles mouseclick
interface (again, read/describe/Memorise commands and Memorise tab).

[1] I don't know if it's worth keeping that restriction. If we do, we
should add an autoinscription because the simple act of (r)eading it
will give away that it's one of those three special books, though not
which one.

--------------------------------------------------------------------------------
e13d4aaf17 | Johanna Ploog | 2010-02-23 01:08:04 +0100

Fix SF 2938758: Wrong message for unmemorizable spells due to Lich form.
Also takes care of some duplicated messaging code.

--------------------------------------------------------------------------------
c9d58b3936 | Steven Noonan | 2010-02-22 15:24:55 -0800

tile_list_processor.cc: fix indentation
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e07fbd67e2 | Steven Noonan | 2010-02-22 15:22:54 -0800

tile_list_processor.cc: fix segfault on fclose() of null FILE*
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
79f5f8466a | Jude Brown | 2010-02-23 09:10:36 +1000

Fix #903: Only make enchanted needles runed.
All needles are branded, therefore all needles were being marked as
runed; this is pointless, because brands are instantly visible for
needles.

--------------------------------------------------------------------------------
ded8497143 | David Ploog | 2010-02-22 21:46:28 +0100

Repair a line of speech (Mu).

--------------------------------------------------------------------------------
c51c8904cf | Johanna Ploog | 2010-02-22 21:12:40 +0100

Fix #904: preserve_feat being ignored when using Lugonu's corruption.
Two parameters passed to dungeon_terrain_changed() were switched, so
that preserve_feat was in effect always used for affect_player which
probably only would have mattered for lava or something.

--------------------------------------------------------------------------------
906afacf4a | Johanna Ploog | 2010-02-22 21:06:02 +0100

Fix #901: Death's door also preventing "death" by winning or leaving.

--------------------------------------------------------------------------------
9f6b1874aa | Eino Keskitalo | 2010-02-22 21:07:45 +0200

Add milestones for bazaars. (due)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0e23f60025 | Eino Keskitalo | 2010-02-22 21:05:16 +0200

Use epilogues for portal vault milestones and welcome messages.
Use crawl.mpr instead of e.welcome for the bazaar welcome messages.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0ed4154331 | Robert Vollmert | 2010-02-22 17:36:59 +0100

Modify handling of weapon swap interrupts.
Hopefully fixes issue #69 without breaking too much else.

It's still a mess, but in delay.cc, the weapon swap prompts
should now only be issued from DELAY_BUTCHER's stop_delay
and _finish_delay parts, reducing the chance of double
prompts.

In my limited testing (butchery while surrounded by monsters),
it seems to work as intended. Feedback appreciated.

Calls to yesno() from handle_interrupted_swap are now prevented
from issuing activity interrupts since those caused problems --
not sure if this has other bad consequences.

--------------------------------------------------------------------------------
a0e7f887da | Darshan Shaligram | 2010-02-22 21:27:26 +0530

Skip _place_aquatic_monsters in Shoals; this brings Shoals xp in line with 
Snake (~56k as compared to ~55k for Snake and ~52k for Swamp).
Increased weights for kraken and shark to compensate for 
_place_aquatic_monsters no longer being used.

--------------------------------------------------------------------------------
1c1c734a27 | Robert Vollmert | 2010-02-22 09:44:28 -0600

Clean up half-xp handling in _give_adjusted_experience.
This change makes sure you can't get more experience by gaining
half then half (previously (exp/2 + 1) + exp/2). Note that you
can't currently get half + half anyway.
(cherry picked from commit 3c7a9656fb2f8bd80d8e1dbdf8608d5d4e152a69)

--------------------------------------------------------------------------------
472ac49114 | Johanna Ploog | 2010-02-22 09:44:17 -0600

Update tutorial about how to zap wands at monsters. (cherry picked from commit 
790e4bfb63d036c61fb358d7a53b8aa94cc9811c)

--------------------------------------------------------------------------------
0e7045576e | Johanna Ploog | 2010-02-22 09:44:10 -0600

Tiles: Add Ctrl + Shift as synonym to Alt in mouseclick combinations.
This enables us to use mouseclicks for evokables also on Unix systems.
(cherry picked from commit 5d28da5f0fcef8c297b5f7750ab48759e10a28a0)

--------------------------------------------------------------------------------
749cbb2b08 | Johanna Ploog | 2010-02-22 09:43:58 -0600

Make wizmode &o+ always turn mundane items into artefacts.
The normal chance is 1/5, but for wizard mode using force_mundane
only makes sense.
(cherry picked from commit a08e06a7f1173a035b7efc6d3d6b3370f7433dad)

--------------------------------------------------------------------------------
64ad0e8cb4 | Johanna Ploog | 2010-02-22 09:43:42 -0600

Add randart autoinscriptions when wizmode-identifying the inventory. (cherry 
picked from commit d267666010dd786af53b2ba846cc779aa8fe1595)

--------------------------------------------------------------------------------
8e56127eba | Johanna Ploog | 2010-02-22 09:43:33 -0600

Artefacts weapons must have at least one other non-brand property.
Should fix at least part of the buggy artefact issue.
(cherry picked from commit b726dde8e8a970128ac62a88a806b486224d8a6d)

--------------------------------------------------------------------------------
c394fd759b | Robert Vollmert | 2010-02-22 09:43:26 -0600

Update pathfinding to use opacity_immob.
This updates the hacks from af55d9e7 to use the new opacity_immob
instead of opacity_no_trans.
(cherry picked from commit 68691397f9adcfdb6d6c8ef13a1ea4ecae84e8b9)

--------------------------------------------------------------------------------
66dab56cd5 | Robert Vollmert | 2010-02-22 09:43:18 -0600

opacity_immob for monster movement.
This moves the previous opacity_no_trans modifications (a9af5253)
into a separate opacity_func to avoid conflicts with other uses
of opacity_no_trans.
(cherry picked from commit d2d2410aa72b9fc18f10e4b1dd38aceeeb602f0c)

--------------------------------------------------------------------------------
5562859741 | Robert Vollmert | 2010-02-22 09:43:08 -0600

Remove you.{water,lava}_in_sight.
With the previous change to try_pathfind, it wasn't used much
anymore.
(cherry picked from commit 68cd75376ce80d79e998ad13e96bf72299fb5284)

--------------------------------------------------------------------------------
dd2e2e1ee6 | Robert Vollmert | 2010-02-22 09:43:00 -0600

try_pathfind clean-up.
The parameter potentially_blocking is gone; try_pathfind no longer
depends on opacity_no_trans.

Remove a couple of optimizations that are probably not necessary
(anymore), since can_go_straight shouldn't be that expensive.
(cherry picked from commit 12d70544c66f3e4e99c643fa0181379a2b1dea8b)

--------------------------------------------------------------------------------
93af5e4781 | Robert Vollmert | 2010-02-22 09:42:52 -0600

Clean up opacity_no_trans a bit.
Base it on opc_default, and consider trees as transparent walls.

opacity_no_trans currently affects a variety of things
(translocations like blink/apport/portalproj, feeling safe,
trap detection); it would be nice to separate these eventually.
(cherry picked from commit 48b4f875decad6312c738ee4ffdb6bddbaa9a9cb)

--------------------------------------------------------------------------------
dc1c8e0477 | Robert Vollmert | 2010-02-22 09:42:43 -0600

Revert "Make trees and plants block opacity_no_trans."
This reverts commit a9af525338b34c8a527270bdb5f31574f1e333f8.

opacity_no_trans was used for too many things, so this change
had undesired side-effects. Will need to make pathfinding
independent of opacity_no_trans instead.

Fixes issues #778, #836.
(cherry picked from commit 7cead1f03d9108d65b9d95142cd61d224bc2aaf4)

--------------------------------------------------------------------------------
04e063a3b7 | Darshan Shaligram | 2010-02-22 09:42:35 -0600

Don't set natural_leader for Ilsuiw and boss merfolk bands. (cherry picked from 
commit bda0835a957666d92efeb06a95a5b06270f880f9)

--------------------------------------------------------------------------------
7c20a5abae | Darshan Shaligram | 2010-02-22 09:42:20 -0600

Fix bad error reporting in test_lua_boolchunk (due, Keskitalo) (cherry picked 
from commit 354b06865215286ed0cdbdda9aae77816308d154)

--------------------------------------------------------------------------------
25bffc7b2e | Robert Vollmert | 2010-02-22 09:42:07 -0600

Reset msgwin.input_line when clearing messages.
Fixes issue #870.
(cherry picked from commit c803a3a7d84e22bad233a31a305f406ec6286be7)

--------------------------------------------------------------------------------
e0eed755c4 | Robert Vollmert | 2010-02-22 09:41:59 -0600

Comment. (cherry picked from commit f101508ea25e72fa6cd87bd00f41b16a919343b0)

--------------------------------------------------------------------------------
6faeda5180 | Enne Walker | 2010-02-22 09:23:19 -0500

Add include files to rltiles dependencies.
This fixes an issue jpeg pointed out with tiledef-player.h depending on
tiledef-main.h.

--------------------------------------------------------------------------------
5631229edd | Robert Vollmert | 2010-02-22 14:52:27 +0100

Don't give more than ceil(exp/2) for pet kills.
Previously, monsters with exper_value 2 still gave 2 exp when
killed by pets.

Fixes issue #773.

This has summoner balance issues, hence should not go in 0.6:
An XL 5 pure summoner will lose out on 10-20% total experience;
around 2% for XL 10. So it will make the start a little harder.

On the plus side, the formula is cleaner, and summoners aren't
really hard to get going right now.

--------------------------------------------------------------------------------
3c7a9656fb | Robert Vollmert | 2010-02-22 14:52:26 +0100

Clean up half-xp handling in _give_adjusted_experience.
This change makes sure you can't get more experience by gaining
half then half (previously (exp/2 + 1) + exp/2). Note that you
can't currently get half + half anyway.

--------------------------------------------------------------------------------
790e4bfb63 | Johanna Ploog | 2010-02-22 14:12:59 +0100

Update tutorial about how to zap wands at monsters.

--------------------------------------------------------------------------------
5d28da5f0f | Johanna Ploog | 2010-02-22 14:12:59 +0100

Tiles: Add Ctrl + Shift as synonym to Alt in mouseclick combinations.
This enables us to use mouseclicks for evokables also on Unix systems.

--------------------------------------------------------------------------------
a08e06a7f1 | Johanna Ploog | 2010-02-22 14:12:58 +0100

Make wizmode &o+ always turn mundane items into artefacts.
The normal chance is 1/5, but for wizard mode using force_mundane
only makes sense.

--------------------------------------------------------------------------------
d267666010 | Johanna Ploog | 2010-02-22 14:12:58 +0100

Add randart autoinscriptions when wizmode-identifying the inventory.

--------------------------------------------------------------------------------
b726dde8e8 | Johanna Ploog | 2010-02-22 14:12:58 +0100

Artefacts weapons must have at least one other non-brand property.
Should fix at least part of the buggy artefact issue.

--------------------------------------------------------------------------------
68691397f9 | Robert Vollmert | 2010-02-22 13:13:23 +0100

Update pathfinding to use opacity_immob.
This updates the hacks from af55d9e7 to use the new opacity_immob
instead of opacity_no_trans.

--------------------------------------------------------------------------------
d2d2410aa7 | Robert Vollmert | 2010-02-22 13:13:23 +0100

opacity_immob for monster movement.
This moves the previous opacity_no_trans modifications (a9af5253)
into a separate opacity_func to avoid conflicts with other uses
of opacity_no_trans.

--------------------------------------------------------------------------------
68cd75376c | Robert Vollmert | 2010-02-22 13:13:22 +0100

Remove you.{water,lava}_in_sight.
With the previous change to try_pathfind, it wasn't used much
anymore.

--------------------------------------------------------------------------------
12d70544c6 | Robert Vollmert | 2010-02-22 13:13:22 +0100

try_pathfind clean-up.
The parameter potentially_blocking is gone; try_pathfind no longer
depends on opacity_no_trans.

Remove a couple of optimizations that are probably not necessary
(anymore), since can_go_straight shouldn't be that expensive.

--------------------------------------------------------------------------------
48b4f875de | Robert Vollmert | 2010-02-22 13:13:21 +0100

Clean up opacity_no_trans a bit.
Base it on opc_default, and consider trees as transparent walls.

opacity_no_trans currently affects a variety of things
(translocations like blink/apport/portalproj, feeling safe,
trap detection); it would be nice to separate these eventually.

--------------------------------------------------------------------------------
7cead1f03d | Robert Vollmert | 2010-02-22 13:13:21 +0100

Revert "Make trees and plants block opacity_no_trans."
This reverts commit a9af525338b34c8a527270bdb5f31574f1e333f8.

opacity_no_trans was used for too many things, so this change
had undesired side-effects. Will need to make pathfinding
independent of opacity_no_trans instead.

Fixes issues #778, #836.

--------------------------------------------------------------------------------
bda0835a95 | Darshan Shaligram | 2010-02-22 17:03:41 +0530

Don't set natural_leader for Ilsuiw and boss merfolk bands.

--------------------------------------------------------------------------------
354b068652 | Darshan Shaligram | 2010-02-22 16:41:31 +0530

Fix bad error reporting in test_lua_boolchunk (due, Keskitalo)

--------------------------------------------------------------------------------
c803a3a7d8 | Robert Vollmert | 2010-02-22 09:42:25 +0100

Reset msgwin.input_line when clearing messages.
Fixes issue #870.

--------------------------------------------------------------------------------
f101508ea2 | Robert Vollmert | 2010-02-22 09:42:03 +0100

Comment.

--------------------------------------------------------------------------------
c5df005ee8 | Jesse Luehrs | 2010-02-21 23:36:51 -0600

Revert "Only generate tiledef files if they have changed."
This reverts commit 28fad8f5d80d6112c16c4c925543c44fd89c340a.

This causes segfaults when trying to run tilegen.elf.

--------------------------------------------------------------------------------
e76f0b833e | Jesse Luehrs | 2010-02-21 23:12:13 -0600

Revert "Fix an off-by-1 error which broke freed slave coloring."
This reverts commit bf7085be1c148f2e138f33db0b8d75ef5977de5a.

This seems to be broken in some way? Not sure what's going on.

--------------------------------------------------------------------------------
04c2e749cb | Johanna Ploog | 2010-02-21 21:58:56 -0600

Another small tutorial tweak. (cherry picked from commit 
9b7ae9b2c75f4ee9c5d461213ecc11ad92dc26d3)

--------------------------------------------------------------------------------
bcd9daad62 | Johanna Ploog | 2010-02-21 21:58:47 -0600

Update skills.txt.
The four elemental magic are still lacking flavourful descriptions.
If anyone has any ideas, they're welcome to add something.
(cherry picked from commit 49df4d7d812b82a9fe9e74ae4c5399e7f30aedb4)

--------------------------------------------------------------------------------
0f3882a106 | Enne Walker | 2010-02-21 21:58:07 -0600

Regenerate lua cache when executable is rebuilt.
This should fix potential issues like [738], where stale cache files are
using the wrong tiles in vaults after a change to the tiledef enums.

This is currently only done for tiles builds.
(cherry picked from commit afc5cabb6a6364474601bf0257ed7da04d7da04e)

--------------------------------------------------------------------------------
28fad8f5d8 | Enne Walker | 2010-02-21 21:57:59 -0600

Only generate tiledef files if they have changed.
This should prevent needless rebuilds when merely editing tile files.
(cherry picked from commit 5d812b3a48325e4c98a24bd036cba34cb9c9747f)

--------------------------------------------------------------------------------
8d0d97c9e8 | Enne Walker | 2010-02-21 21:57:40 -0600

rltiles now correctly generates .d files.
Now, when included files or images are modified, the tile pages and
headers will be rebuilt properly.  Finally.
(cherry picked from commit 75e65f81dcc39aca173df5c00154178782145547)

--------------------------------------------------------------------------------
e6dfe7b3c3 | Enne Walker | 2010-02-21 21:57:32 -0600

Remove unused rltiles MinGW makefile. (cherry picked from commit 
866b560580fc64cfed524ddbec5d3286791a696f)

--------------------------------------------------------------------------------
b3b02e2c0f | Johanna Ploog | 2010-02-21 21:57:20 -0600

Zap more secret doors on the first level in the tutorial.
I had another tutorial character start in a short corridor that, to
a player unaware of secret doors and searching, is bound to look
like a deadend.

Ideally, we should only have to unhide secret doors that block the
path to one of the downstairs, rather than also affect minivaults.
The tutorial already doesn't make use of entry vaults (because some
of them contain things I'd rather not explain, like dangerous
monsters behind glass, fog generators or doors you'd better not
open), so we should be reasonably safe.

Seeing how the entry vaults are such a nice welcome to the game,
I'd welcome a tag to assign to those vaults that can safely be
used in the tutorial (and exclude the ones mentioned above).
(cherry picked from commit 7309f01579e0cb35d3f73e59f2c749f47c627514)

--------------------------------------------------------------------------------
1aa54b393b | Johanna Ploog | 2010-02-21 21:56:49 -0600

Many more tutorial tweaks.
Among others, expound a bit on the mechanics of !clear_messages,
correct some misinformation, and add a few more special cases.
(cherry picked from commit 229de387ec2d523cfc78b3b4efb5a1dbe9e3c186)

--------------------------------------------------------------------------------
8e6c2ed05e | Johanna Ploog | 2010-02-21 21:56:31 -0600

Actually add the more information to -More- for the tutorial's duration. 
(cherry picked from commit 841d009d4ce72308bde1551a84e4bfa7eb326433)

--------------------------------------------------------------------------------
d5235a6ce5 | Johanna Ploog | 2010-02-21 21:56:12 -0600

In the tutorial, don't give the berserk death hint if already berserk.
It's frustrating to get told you should have used the berserk ability
if you already did.
(cherry picked from commit 9649b5274d6b88e12203feb821e609b548536890)

--------------------------------------------------------------------------------
212eaf378f | Johanna Ploog | 2010-02-21 21:55:05 -0600

Handle % key (resists screen) correctly when printing command keys.
Seeing how '%' is the symbol used to insert stringified command keys,
the resists screen key will get replaced by the next one, unless
specialcased. As far as I know, this only matters for one instance
in the tutorial, elsewhere long sections listing several different
commands are rare.
(cherry picked from commit c7ea4f7e7e5139cacef065d12b4e485acfd76173)

--------------------------------------------------------------------------------
b10119e15b | Johanna Ploog | 2010-02-21 21:54:45 -0600

Change tutorial's hardcoded option settings.
* Don't override clear_messages setting anymore.
  The default is good, but it should be possible for players to
  override it.
* Set show_more to true, otherwise some of the longer tutorial
  messages are chopped without explanation.
* Set small_more to false, because -More- contains additional
  information in the tutorial, and for new players the small more
  is completely confusing.
(cherry picked from commit 6021bfb4c6ef7c5a7b3ec990f8ef3013c313bf07)

--------------------------------------------------------------------------------
dfaf1ff80d | Johanna Ploog | 2010-02-21 21:54:19 -0600

Specialcase Sif Muna's tutorial altar description for non-spellcasters. (cherry 
picked from commit 4d78825bb2a109a3b1733d8d2913160ad4e67a9b)

--------------------------------------------------------------------------------
d7474849d8 | Johanna Ploog | 2010-02-21 21:53:44 -0600

Tiles: Redraw map right away when setting an exclusion with 'xe'. (cherry 
picked from commit 607a8e485e524cda228c69cb0cb9b59a6c470272)

--------------------------------------------------------------------------------
f949f957c9 | Johanna Ploog | 2010-02-21 21:53:36 -0600

release.txt: Correct the release steps' enumeration. (cherry picked from commit 
819f403be30e9d3bd153d4eef8740bec1a2d8730)

--------------------------------------------------------------------------------
4238431bed | Johanna Ploog | 2010-02-21 21:53:24 -0600

Fix description typo, and some slight tweaks. (cherry picked from commit 
f2712aba947a0724124b620dc4bcf6b554cc5ea2)

--------------------------------------------------------------------------------
e817090e24 | Eino Keskitalo | 2010-02-21 21:53:10 -0600

Use the lua epilogues for pan lord level messages.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit a45224ef1f5875027563ad7bc3431e1835d16955)

--------------------------------------------------------------------------------
9464b1f811 | Johanna Ploog | 2010-02-21 21:53:02 -0600

release.txt: Update information about versioning. (cherry picked from commit 
f4fd8d53eec976c6f82d28ef9dfff4e9b3fea10a)

--------------------------------------------------------------------------------
940e91617e | Johanna Ploog | 2010-02-21 21:52:41 -0600

Really fix fire/spell targeting via mouseclick on monster. (cherry picked from 
commit 8aafbfd76005abd9012365f1fac17034af025006)

--------------------------------------------------------------------------------
9b7fc727bc | Johanna Ploog | 2010-02-21 21:52:26 -0600

Implement mouseclick targeting for the Evaporate spell. (cherry picked from 
commit 4d7832eed77e922f031d0bd83448875689648908)

--------------------------------------------------------------------------------
d17c3680ca | Vsevolod Kozlov | 2010-02-21 21:49:39 -0600

Use "sqldbm.h" instead of <sqldbm.h>, as it is a local header file. (cherry 
picked from commit 912a770be0e03e501f2c79c627271d6a9d2eda49)

--------------------------------------------------------------------------------
7cd43b750d | Jude Brown | 2010-02-21 21:49:32 -0600

Hopefully fix "compare value to nil" Trove error.
Subject of several bugs on Mantis, which I haven't got handy to include
numbers. It looks like "plus1" and "plus2" were somehow being set to
nil. This causes more worries in that it shouldn't ever be picking
weapons or armour that are nil, but... We'll see if this resolves the
issue.

Unfortunately, it doesn't actually fix the issue with the save games
reported. Will continue to look into it.
(cherry picked from commit ad6cc2feb064ddb211b05e16dbd52c0f9d0140b9)

--------------------------------------------------------------------------------
7232b08996 | Jude Brown | 2010-02-21 21:49:15 -0600

Increment map cache version number (greensnark).
Addition of epilogues to map and a change to the way map files are saved
and loaded means that Stuff Was Not Right, as I forgot to increment the
version number.
(cherry picked from commit d98b36ebde7825800faf463fbf4da6b24770b1e9)

--------------------------------------------------------------------------------
3728b4f3f4 | Stefan O'Rear | 2010-02-21 21:49:07 -0600

In order to put out fire with water, the water must actually contact the fire. 
(cherry picked from commit a03a84dd73e41402628200a689c60f8588191931)

--------------------------------------------------------------------------------
0b313673f8 | Jude Brown | 2010-02-21 21:48:57 -0600

Update prebuild level compiler code for Lua epilogues. (cherry picked from 
commit ac1e10a64082dbe39e3638a011ad3a7ce20f4931)

--------------------------------------------------------------------------------
5c28417c07 | Jude Brown | 2010-02-21 21:48:28 -0600

Lua map epilogues (Keskitalo).
A new type of Lua associated with maps: an epilogue. This piece of Lua
code is only run once, following the complete building of a dungeon
level. It happens after most everything else has occurred in building a
level, and therefore allows for messages and crawl.more() statements,
without more messages (and so on) occurring before the level is drawn.

Example:

 NAME: mini_test
 PLACE: D:2
 TAGS: allow_dup
 WEIGHT: 1000
 epilogue{{
   crawl.mpr("This is a test!", "warning")
   crawl.more()
 }}
 MAP
 G
 ENDMAP

This hopefully resolves the wishlist of being able to put more
statements in Pandemonium Lord maps without these appearing before the
screen is updated.
(cherry picked from commit e0cd8dda2377b24397b0ef27363a1242d448aee5)

--------------------------------------------------------------------------------
c09be59ca6 | Darshan Shaligram | 2010-02-21 21:48:12 -0600

Make the Lernaean hydra zombifiable. (cherry picked from commit 
fde2f2ee8ef835fab012dc965df3395c393f8e8d)

--------------------------------------------------------------------------------
4f3601261a | David Ploog | 2010-02-21 21:46:09 -0600

More speech for the deformed beings at Cigutovi's (Mu). (cherry picked from 
commit 2980241d3546a58176e6d4d3299f40bd3d5d38c0)

--------------------------------------------------------------------------------
8bb1f349f7 | David Ploog | 2010-02-21 21:45:20 -0600

Update CREDITS.
Added Evan Williams (Vandal).
(cherry picked from commit 6fc47048d510fedc6929203e05edd4d8b653ca21)

--------------------------------------------------------------------------------
a939783b49 | David Ploog | 2010-02-21 21:45:13 -0600

Add a number of improved monster descriptions (Vandal).
We could need many more like these!
(cherry picked from commit b4248b6bbbe887be2ee5c40fd2efda4939c7b06b)

--------------------------------------------------------------------------------
3f4d66500c | Johanna Ploog | 2010-02-21 21:44:55 -0600

A few tutorial tweaks. (cherry picked from commit 
4fa1eaf0886f9c39bc2459e802135c2c4b1848e7)

--------------------------------------------------------------------------------
54c9cf0352 | Johanna Ploog | 2010-02-21 21:44:43 -0600

Added feedback messages when excluding with 'xe'.
Since there's no visual indication that something happened for ASCII,
other measures of feedback are essential. It's not such an issue for
Tiles but it's still nice to get a confirmation.
(cherry picked from commit 436d3f9b166ad951859406b4a69ad3305fa68c02)

--------------------------------------------------------------------------------
b6ea9a6676 | Johanna Ploog | 2010-02-21 21:44:16 -0600

Allow setting/removing exclusions with 'xe'. (cherry picked from commit 
c51282deba8bd8c94aca3921d430d2084e7f3293)

--------------------------------------------------------------------------------
43bda0c3b4 | Johanna Ploog | 2010-02-21 21:43:58 -0600

autopickup_exceptions.txt: Comment out Abyss suppressing autopickup.
I don't understand the circular logic of that definition, but
commenting out reactivates autopickup, and that's all I'm interested
in right now.

It's much easier to turn off autopickup if you don't want it than to
turn it on again, once it's deactivated like that.
(cherry picked from commit 0c46362897cbe238f0379e249517bd6f0cabb7c5)

--------------------------------------------------------------------------------
965137d0df | Johanna Ploog | 2010-02-21 21:43:00 -0600

Colour Abyss portal tile background skyblue, to make it more noticeable.
The old tiles can still be found in the UNUSED folder.
(cherry picked from commit 071c1e597cf08758afd0116d41d8174707437e8e)

--------------------------------------------------------------------------------
1592978b5f | Brendan Hickey | 2010-02-21 21:38:52 -0600

Changed Vehumet's altar description to avoid collisions with TSO
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit b9f4947adfb6a6f78b6478133f0b833cc9e44867)

--------------------------------------------------------------------------------
398d3c46d3 | Charles Otto | 2010-02-21 21:38:32 -0600

Fix crash when hit by a warrior statue [826]
Fix mantis issue 826, crash when hit by a warrior statue.
MONS_STATUE (the base type of warrior statues) has AT_WEAP_ONLY, which
I gather is supposed to act as AT_SHOOT or AT_HIT depending on what
type of weapon they have (if they have a ranged weapon they should
shoot in melee range, if they have a melee weapon they should attack
with it).

AT_WEAP_ONLY was replaced with AT_SHOOT in the ranged weapon case, but
left as is for melee weapons, and AT_WEAP_ONLY is out of bounds in the
array of attack descriptions used in mons_attack_verb, causing a crash.
I substituted AT_HIT for AT_WEAP_ONLY in the same place where the
AT_SHOOT is substituted in.
(cherry picked from commit 6c3eaf258f33864466198fa077ed1cb5b839bab7)

--------------------------------------------------------------------------------
a8e3a55a02 | Darshan Shaligram | 2010-02-21 21:38:06 -0600

Fix controlled blink death spiral when Crawl sees HUP signal. (cherry picked 
from commit f42700c4cebf79e4001d6b1fdd678fb0646645ed)

--------------------------------------------------------------------------------
b6a6a111d6 | Darshan Shaligram | 2010-02-21 21:37:40 -0600

Add alarm to kill Crawl within 10s of seeing SIGHUP (kilobyte). (cherry picked 
from commit cded08e30c65809624ac7c03609e58351d3066e6)

--------------------------------------------------------------------------------
c70f15ed87 | Johanna Ploog | 2010-02-21 21:37:29 -0600

Add a special case for wizlab portal tiles to be picked in order.
Instead of picking a random tile out of the set of wizlab portal
variants, increase the flavour by one every time the tile is drawn,
then reset it to 0 when tile_dngn_count is reached.

Results in flawlessly flowing tile movement, and could also be used
for other features, for example flickering flames.
(cherry picked from commit 00af1ebf9c45ad5b9458f84d2954dc2982ddb91c)

--------------------------------------------------------------------------------
9098bd9868 | Johanna Ploog | 2010-02-21 21:37:16 -0600

Use wizlab portal tiles and strange machine tile in wizlab definitions. (cherry 
picked from commit ea845ab3d0d7212b381af01b53470125c62646ce)

--------------------------------------------------------------------------------
04dfb54a6c | Johanna Ploog | 2010-02-21 21:36:53 -0600

Add purge's wizlab portal tiles. (cherry picked from commit 
2329920c9e970352f905dfabd3f26a9fb46f9e30)

--------------------------------------------------------------------------------
b12adbfd8e | Charles Otto | 2010-02-21 21:36:38 -0600

Actually use a timeout for Jiyva's mutation gifts (78291)
Patch by 78291. Set and use a timeout for Jiyva's mutation gifts
correctly.
(cherry picked from commit 559329a9de18a9486597d07d0f651c6c34eba3e6)

--------------------------------------------------------------------------------
db813a89a7 | Charles Otto | 2010-02-21 21:35:01 -0600

Avoid triggering an assert when reconverting to J (78291)
Patch by 78291.
Clear MF_GOD_GIFT before calling mons_make_god_gift in
jiyva_convert_slime. If the player reconverts to jiyva slimes that
were previously neutralized get re-neutralized and have MF_GOD_GIFT set
which would trigger an assert in mons_make_god_gift.
(cherry picked from commit a60270b5bbb4c63c9a016f97338ce59f27f2165c)

--------------------------------------------------------------------------------
d38662cd25 | Darshan Shaligram | 2010-02-21 21:34:40 -0600

Show numeric spell power only if wizard mode is active. (cherry picked from 
commit 47202cd8c3183d42119cada32c8162012fcc9531)

--------------------------------------------------------------------------------
6de5a00e8b | Darshan Shaligram | 2010-02-21 21:30:50 -0600

Reduce moderate OOD level fuzz to +5 from +7 (dpeg). (cherry picked from commit 
5c94ddf5a5d749f895b8c8a3cd90b4a1657c5713)

--------------------------------------------------------------------------------
3271892e66 | Johanna Ploog | 2010-02-21 21:17:53 -0600

For FINAL releases, give a better save file version mismatch error.
The "Major version mismatch" error message is a bit technical, in my
opinion, and I think that for release versions (tagged "final") we
should be more explicit about save file incompatibility.

I hope I understood the interaction between git tags and gen_ver.pl
correctly.

FIXME: Currently hardcodes 0.6 as the reference version, so that the
       message stays the same whether you try to load a 0.5 save file
       with 0.6 or 0.6.3. This should also be handled dynamically.
(cherry picked from commit db787e555cc8d945bf4d5b8989313d112e4151a4)

--------------------------------------------------------------------------------
4034427382 | Stefan O'Rear | 2010-02-21 21:16:54 -0600

Monsters reveal Zot traps they trigger (cherry picked from commit 
53326c2943651feb63d4328d03039f9f57dc94d6)

--------------------------------------------------------------------------------
b1efd32129 | Stefan O'Rear | 2010-02-21 21:15:55 -0600

Hillbilly sting fix redux
Instead of the older accuracy reduction for needles only, we now deny brand
effects on all 'awkwardly thrown' missiles.  You need to actually carry a
bow to benefit from dispersal!
(cherry picked from commit 5cec4c40fedcfe443de82944f90e10d426e2ff46)

--------------------------------------------------------------------------------
16cc3bb6a0 | Stefan O'Rear | 2010-02-21 21:13:58 -0600

Fix description of randart amulets of inaccuracy
Previously, they were described as a null base type with a -5,+0
slaying power, but this is not quite accurate (in particular,
inaccuracy affects spells).  Now, they're their own property
inscription.
(cherry picked from commit 5ff36bdc1425aa836bdc5f7463781e5e424f7549)

--------------------------------------------------------------------------------
bf7085be1c | Stefan O'Rear | 2010-02-21 21:13:14 -0600

Fix an off-by-1 error which broke freed slave coloring. (cherry picked from 
commit e9e87715e5725e2651ac1ae8204a7648cabffee8)

--------------------------------------------------------------------------------
af31848f0a | Darshan Shaligram | 2010-02-21 21:13:06 -0600

[850] Fix too much gold being generated in Sewer (replaced any good_item with 
|) (cherry picked from commit 824f1a093cc5407e558a3945b6a570c50a142eff)

--------------------------------------------------------------------------------
2a34ed4912 | Charles Otto | 2010-02-21 21:11:18 -0600

Reverse known/unknown spell colors when reading books
For consistency with previous versions color memorized spells
gray, and color unmemorized spells blue when reading books.
(cherry picked from commit 03011059f6b9224cf94c519a36095f55b929f1b3)

--------------------------------------------------------------------------------
e78771d288 | Charles Otto | 2010-02-21 21:11:07 -0600

Account for Kiku's Ne miscast protection to spell_is_empowered (cherry picked 
from commit 232cad6ecab766d7081c3cc83fcd40879787dc7d)

--------------------------------------------------------------------------------
67e7f0bad7 | DMBrownrigg | 2010-02-21 21:10:24 -0600

amend spell highlights
Amends and corrects spell highlighting brands. more brands are
now recognised internally, which should both improve the
correctness of branding, and make it more flexible wrt future
changes.

branding colors have been changed to be more consistant with
colors used elsewhere in the interface, hopefully making the
highlights more intuative to the player.
(cherry picked from commit 174b6723e39cc15591dd720ad206145d822627af)

--------------------------------------------------------------------------------
eddfdeab33 | Charles Otto | 2010-02-21 20:48:05 -0600

Only change SH display color when actually wearing a shield
Only display the SH value in red when the user is incapacitated if they
are actually wearing a shield.
(cherry picked from commit ccdfe1ebcd64611cb3153f655833bdeca9fd6dd8)

--------------------------------------------------------------------------------
efb569f9fc | Johanna Ploog | 2010-02-21 20:47:55 -0600

Add a small "chimney" and smoke to Tukima's strange machine tile. (cherry 
picked from commit ac12766d189fea96c9e1ddf6bb2d6b6fd53eef71)

--------------------------------------------------------------------------------
98024b113b | Johanna Ploog | 2010-02-21 20:47:47 -0600

Cleanup shark tile once again.
The teeth were looking needlessly wonky.
(cherry picked from commit b486604a1153d40c592b8f29a2a7e8d75ea4b4a0)

--------------------------------------------------------------------------------
e28eec4d26 | Johanna Ploog | 2010-02-21 20:47:20 -0600

Add a perfunctory "strange_machine" tile. (cherry picked from commit 
0b309fdfbbc40da705eada5a7caa26b19c20d0b8)

--------------------------------------------------------------------------------
24715931f7 | Johanna Ploog | 2010-02-21 20:47:10 -0600

bookname.txt: Add new unique spellcasters as potential book owners. (cherry 
picked from commit 34035e713d787ec1afd5cee2b9c6c68d812d4722)

--------------------------------------------------------------------------------
88b6bf3ee0 | Johanna Ploog | 2010-02-21 20:46:07 -0600

Update monster speech documentation. (cherry picked from commit 
32ae473e756be974fccf81c0b6e3922dfdc40a02)

--------------------------------------------------------------------------------
0b9716d5da | Johanna Ploog | 2010-02-21 20:28:24 -0600

Update release.txt. (cherry picked from commit 
31972066640e3e523f7983dfd0289d52ad7f41b6)

--------------------------------------------------------------------------------
01c3374e91 | Johanna Ploog | 2010-02-21 20:28:07 -0600

Add some comments on Tiles' save compatibility issues. (cherry picked from 
commit 70033eda7ce79a9780cb7850850952cd3db6f46a)

--------------------------------------------------------------------------------
5dba61056e | Johanna Ploog | 2010-02-21 20:24:14 -0600

Update patch_guide.txt to git and Mantis. (cherry picked from commit 
20dbef2cf9c14e6902862f5abd65461907553cae)

--------------------------------------------------------------------------------
01dfdb7ba0 | Johanna Ploog | 2010-02-21 20:21:54 -0600

Use LoginError's ninja stealth brand tile, thank you! (cherry picked from 
commit b0d275f04aed05221d0634367095906ba9f21f95)

--------------------------------------------------------------------------------
5d6dd17899 | Johanna Ploog | 2010-02-21 20:21:40 -0600

Improve description for robe of the Archmagi.
Now mentions both the xp reduction and the spell schools most affected.
Very long now, might cause problems with artefacts.

Also, we should really outsource the brand descriptions at some point.
(cherry picked from commit 544e1d1fd66edb28487d815a4adb8e637a2e0b95)

--------------------------------------------------------------------------------
735eb14cbc | Johanna Ploog | 2010-02-21 20:20:55 -0600

Add Abyss LOS travel to the changelog. (cherry picked from commit 
b2c66f03ed98bfe98a4de262fa2d5b42e7b9b662)

--------------------------------------------------------------------------------
9b7ae9b2c7 | Johanna Ploog | 2010-02-22 00:35:55 +0100

Another small tutorial tweak.

--------------------------------------------------------------------------------
49df4d7d81 | Johanna Ploog | 2010-02-22 00:35:55 +0100

Update skills.txt.
The four elemental magic are still lacking flavourful descriptions.
If anyone has any ideas, they're welcome to add something.

--------------------------------------------------------------------------------
a7fa6053c4 | Enne Walker | 2010-02-21 17:54:39 -0500

Clean up usage of tile page filenames.

--------------------------------------------------------------------------------
afc5cabb6a | Enne Walker | 2010-02-21 17:54:39 -0500

Regenerate lua cache when executable is rebuilt.
This should fix potential issues like [738], where stale cache files are
using the wrong tiles in vaults after a change to the tiledef enums.

This is currently only done for tiles builds.

--------------------------------------------------------------------------------
5d812b3a48 | Enne Walker | 2010-02-21 17:54:39 -0500

Only generate tiledef files if they have changed.
This should prevent needless rebuilds when merely editing tile files.

--------------------------------------------------------------------------------
75e65f81dc | Enne Walker | 2010-02-21 17:54:38 -0500

rltiles now correctly generates .d files.
Now, when included files or images are modified, the tile pages and
headers will be rebuilt properly.  Finally.

--------------------------------------------------------------------------------
866b560580 | Enne Walker | 2010-02-21 17:54:38 -0500

Remove unused rltiles MinGW makefile.

--------------------------------------------------------------------------------
7309f01579 | Johanna Ploog | 2010-02-21 20:49:32 +0100

Zap more secret doors on the first level in the tutorial.
I had another tutorial character start in a short corridor that, to
a player unaware of secret doors and searching, is bound to look
like a deadend.

Ideally, we should only have to unhide secret doors that block the
path to one of the downstairs, rather than also affect minivaults.
The tutorial already doesn't make use of entry vaults (because some
of them contain things I'd rather not explain, like dangerous
monsters behind glass, fog generators or doors you'd better not
open), so we should be reasonably safe.

Seeing how the entry vaults are such a nice welcome to the game,
I'd welcome a tag to assign to those vaults that can safely be
used in the tutorial (and exclude the ones mentioned above).

--------------------------------------------------------------------------------
229de387ec | Johanna Ploog | 2010-02-21 20:26:51 +0100

Many more tutorial tweaks.
Among others, expound a bit on the mechanics of !clear_messages,
correct some misinformation, and add a few more special cases.

--------------------------------------------------------------------------------
841d009d4c | Johanna Ploog | 2010-02-21 20:25:19 +0100

Actually add the more information to -More- for the tutorial's duration.

--------------------------------------------------------------------------------
9649b5274d | Johanna Ploog | 2010-02-21 18:35:27 +0100

In the tutorial, don't give the berserk death hint if already berserk.
It's frustrating to get told you should have used the berserk ability
if you already did.

--------------------------------------------------------------------------------
c7ea4f7e7e | Johanna Ploog | 2010-02-21 18:26:03 +0100

Handle % key (resists screen) correctly when printing command keys.
Seeing how '%' is the symbol used to insert stringified command keys,
the resists screen key will get replaced by the next one, unless
specialcased. As far as I know, this only matters for one instance
in the tutorial, elsewhere long sections listing several different
commands are rare.

--------------------------------------------------------------------------------
6021bfb4c6 | Johanna Ploog | 2010-02-21 18:06:57 +0100

Change tutorial's hardcoded option settings.
* Don't override clear_messages setting anymore.
  The default is good, but it should be possible for players to
  override it.
* Set show_more to true, otherwise some of the longer tutorial
  messages are chopped without explanation.
* Set small_more to false, because -More- contains additional
  information in the tutorial, and for new players the small more
  is completely confusing.

--------------------------------------------------------------------------------
4d78825bb2 | Johanna Ploog | 2010-02-21 18:01:13 +0100

Specialcase Sif Muna's tutorial altar description for non-spellcasters.

--------------------------------------------------------------------------------
607a8e485e | Johanna Ploog | 2010-02-21 17:34:00 +0100

Tiles: Redraw map right away when setting an exclusion with 'xe'.

--------------------------------------------------------------------------------
819f403be3 | Johanna Ploog | 2010-02-21 16:21:33 +0100

release.txt: Correct the release steps' enumeration.

--------------------------------------------------------------------------------
f2712aba94 | Johanna Ploog | 2010-02-21 16:20:49 +0100

Fix description typo, and some slight tweaks.

--------------------------------------------------------------------------------
a45224ef1f | Eino Keskitalo | 2010-02-21 15:55:18 +0200

Use the lua epilogues for pan lord level messages.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f4fd8d53ee | Johanna Ploog | 2010-02-21 15:06:20 +0100

release.txt: Update information about versioning.

--------------------------------------------------------------------------------
8aafbfd760 | Johanna Ploog | 2010-02-21 15:06:20 +0100

Really fix fire/spell targeting via mouseclick on monster.

--------------------------------------------------------------------------------
bccb138824 | Johanna Ploog | 2010-02-21 15:06:20 +0100

Revert "Fix Shift/Ctrl + L-Click not targeting selected monster."
This reverts commit d38e1c07508b94e6a289c965cfbc7a2e17c7f206.

This may try to autotarget other monsters, which is not what we want.

--------------------------------------------------------------------------------
4d7832eed7 | Johanna Ploog | 2010-02-21 15:06:19 +0100

Implement mouseclick targeting for the Evaporate spell.

--------------------------------------------------------------------------------
641d2138f7 | Johanna Ploog | 2010-02-21 15:06:19 +0100

Fix Shift/Ctrl + L-Click not targeting selected monster.

--------------------------------------------------------------------------------
912a770be0 | Vsevolod Kozlov | 2010-02-21 16:04:47 +0300

Use "sqldbm.h" instead of <sqldbm.h>, as it is a local header file.

--------------------------------------------------------------------------------
ad6cc2feb0 | Jude Brown | 2010-02-21 22:42:30 +1000

Hopefully fix "compare value to nil" Trove error.
Subject of several bugs on Mantis, which I haven't got handy to include
numbers. It looks like "plus1" and "plus2" were somehow being set to
nil. This causes more worries in that it shouldn't ever be picking
weapons or armour that are nil, but... We'll see if this resolves the
issue.

Unfortunately, it doesn't actually fix the issue with the save games
reported. Will continue to look into it.

--------------------------------------------------------------------------------
d98b36ebde | Jude Brown | 2010-02-21 21:45:43 +1000

Increment map cache version number (greensnark).
Addition of epilogues to map and a change to the way map files are saved
and loaded means that Stuff Was Not Right, as I forgot to increment the
version number.

--------------------------------------------------------------------------------
a03a84dd73 | Stefan O'Rear | 2010-02-21 01:06:54 -0800

In order to put out fire with water, the water must actually contact the fire.

--------------------------------------------------------------------------------
ac1e10a640 | Jude Brown | 2010-02-21 16:35:55 +1000

Update prebuild level compiler code for Lua epilogues.

--------------------------------------------------------------------------------
e0cd8dda23 | Jude Brown | 2010-02-21 16:24:48 +1000

Lua map epilogues (Keskitalo).
A new type of Lua associated with maps: an epilogue. This piece of Lua
code is only run once, following the complete building of a dungeon
level. It happens after most everything else has occurred in building a
level, and therefore allows for messages and crawl.more() statements,
without more messages (and so on) occurring before the level is drawn.

Example:

 NAME: mini_test
 PLACE: D:2
 TAGS: allow_dup
 WEIGHT: 1000
 epilogue{{
   crawl.mpr("This is a test!", "warning")
   crawl.more()
 }}
 MAP
 G
 ENDMAP

This hopefully resolves the wishlist of being able to put more
statements in Pandemonium Lord maps without these appearing before the
screen is updated.

--------------------------------------------------------------------------------
fde2f2ee8e | Darshan Shaligram | 2010-02-21 11:31:19 +0530

Make the Lernaean hydra zombifiable.

--------------------------------------------------------------------------------
ec51e0999f | Jared Tinney (Twinge) | 2010-02-21 11:22:30 +0530

Monster Weight/Size/Zombie/Corpse Tweakes
Signed-off-by: Darshan Shaligram <scintilla@gmail.com>

--------------------------------------------------------------------------------
800d94d0fa | Charles Otto | 2010-02-20 22:00:37 -0500

Tiles support for displaying spores prior to creating them

--------------------------------------------------------------------------------
3fb9084e86 | Charles Otto | 2010-02-20 22:00:16 -0500

Unbreak Fedhas' spores retribution, messaging improvements
Fix Fedhas' spore retribution, improve messages, some minor code
cleanups.

--------------------------------------------------------------------------------
2980241d35 | David Ploog | 2010-02-21 02:32:55 +0100

More speech for the deformed beings at Cigutovi's (Mu).

--------------------------------------------------------------------------------
88fb4af5b7 | Charles Otto | 2010-02-20 19:27:54 -0500

Experimental spore UI changes
Draw the places spores will be placed on screen, then ask for a yes/no
about whether to actually place the spores, doesn't work in tiles yet.

Also, only target corpses without monsters standing on them (so that
spore locations are exact).

--------------------------------------------------------------------------------
1d26dea743 | David Ploog | 2010-02-21 01:07:22 +0100

Fix syntax in bazaar.des.

--------------------------------------------------------------------------------
9188909518 | David Ploog | 2010-02-21 01:07:22 +0100

Two new sewer maps (minmay).

--------------------------------------------------------------------------------
af6c2ee531 | David Ploog | 2010-02-21 01:07:22 +0100

More ossuary maps (minmay).
Also sort ossuary destination maps by weight.

--------------------------------------------------------------------------------
6c46079d77 | David Ploog | 2010-02-21 01:07:22 +0100

More bailey maps (minmay).

--------------------------------------------------------------------------------
66848ae393 | David Ploog | 2010-02-21 01:07:22 +0100

Add Hive:2 map by minmay.

--------------------------------------------------------------------------------
6fc47048d5 | David Ploog | 2010-02-21 01:07:22 +0100

Update CREDITS.
Added Evan Williams (Vandal).

--------------------------------------------------------------------------------
b4248b6bbb | David Ploog | 2010-02-21 01:07:21 +0100

Add a number of improved monster descriptions (Vandal).
We could need many more like these!

--------------------------------------------------------------------------------
be61a4ff97 | David Ploog | 2010-02-21 01:07:21 +0100

Add a large number of minmay's bazaar maps.
Also restructured bazaar.des, sorting maps by weights. I changed vault names,
but hopefully there won't be any problems like we had with the temple maps.

--------------------------------------------------------------------------------
4fa1eaf088 | Johanna Ploog | 2010-02-21 00:16:15 +0100

A few tutorial tweaks.

--------------------------------------------------------------------------------
436d3f9b16 | Johanna Ploog | 2010-02-21 00:10:28 +0100

Added feedback messages when excluding with 'xe'.
Since there's no visual indication that something happened for ASCII,
other measures of feedback are essential. It's not such an issue for
Tiles but it's still nice to get a confirmation.

--------------------------------------------------------------------------------
c51282deba | Johanna Ploog | 2010-02-20 22:08:59 +0100

Allow setting/removing exclusions with 'xe'.

--------------------------------------------------------------------------------
0c46362897 | Johanna Ploog | 2010-02-20 22:08:59 +0100

autopickup_exceptions.txt: Comment out Abyss suppressing autopickup.
I don't understand the circular logic of that definition, but
commenting out reactivates autopickup, and that's all I'm interested
in right now.

It's much easier to turn off autopickup if you don't want it than to
turn it on again, once it's deactivated like that.

--------------------------------------------------------------------------------
071c1e597c | Johanna Ploog | 2010-02-20 22:08:59 +0100

Colour Abyss portal tile background skyblue, to make it more noticeable.
The old tiles can still be found in the UNUSED folder.

--------------------------------------------------------------------------------
c3dafd2ca9 | Johanna Ploog | 2010-02-20 22:08:58 +0100

randbook.txt: Remove Mara from the list of potential book owners.
If Mara isn't a spellcaster, there also shouldn't be any books named
after him.

--------------------------------------------------------------------------------
b9f4947adf | Brendan Hickey | 2010-02-20 21:58:48 +0200

Changed Vehumet's altar description to avoid collisions with TSO
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6c3eaf258f | Charles Otto | 2010-02-20 14:50:37 -0500

Fix crash when hit by a warrior statue [826]
Fix mantis issue 826, crash when hit by a warrior statue.
MONS_STATUE (the base type of warrior statues) has AT_WEAP_ONLY, which
I gather is supposed to act as AT_SHOOT or AT_HIT depending on what
type of weapon they have (if they have a ranged weapon they should
shoot in melee range, if they have a melee weapon they should attack
with it).

AT_WEAP_ONLY was replaced with AT_SHOOT in the ranged weapon case, but
left as is for melee weapons, and AT_WEAP_ONLY is out of bounds in the
array of attack descriptions used in mons_attack_verb, causing a crash.
I substituted AT_HIT for AT_WEAP_ONLY in the same place where the
AT_SHOOT is substituted in.

--------------------------------------------------------------------------------
f42700c4ce | Darshan Shaligram | 2010-02-20 22:07:15 +0530

Fix controlled blink death spiral when Crawl sees HUP signal.

--------------------------------------------------------------------------------
cded08e30c | Darshan Shaligram | 2010-02-20 22:07:15 +0530

Add alarm to kill Crawl within 10s of seeing SIGHUP (kilobyte).

--------------------------------------------------------------------------------
00af1ebf9c | Johanna Ploog | 2010-02-20 17:56:09 +0100

Add a special case for wizlab portal tiles to be picked in order.
Instead of picking a random tile out of the set of wizlab portal
variants, increase the flavour by one every time the tile is drawn,
then reset it to 0 when tile_dngn_count is reached.

Results in flawlessly flowing tile movement, and could also be used
for other features, for example flickering flames.

--------------------------------------------------------------------------------
ea845ab3d0 | Johanna Ploog | 2010-02-20 17:56:09 +0100

Use wizlab portal tiles and strange machine tile in wizlab definitions.

--------------------------------------------------------------------------------
2329920c9e | Johanna Ploog | 2010-02-20 17:56:09 +0100

Add purge's wizlab portal tiles.

--------------------------------------------------------------------------------
559329a9de | Charles Otto | 2010-02-20 11:21:50 -0500

Actually use a timeout for Jiyva's mutation gifts (78291)
Patch by 78291. Set and use a timeout for Jiyva's mutation gifts
correctly.

--------------------------------------------------------------------------------
a60270b5bb | Charles Otto | 2010-02-20 11:17:57 -0500

Avoid triggering an assert when reconverting to J (78291)
Patch by 78291.
Clear MF_GOD_GIFT before calling mons_make_god_gift in
jiyva_convert_slime. If the player reconverts to jiyva slimes that
were previously neutralized get re-neutralized and have MF_GOD_GIFT set
which would trigger an assert in mons_make_god_gift.

--------------------------------------------------------------------------------
47202cd8c3 | Darshan Shaligram | 2010-02-20 21:00:10 +0530

Show numeric spell power only if wizard mode is active.

--------------------------------------------------------------------------------
e861a205b0 | Johanna Ploog | 2010-02-20 16:40:29 +0100

mon-enum.h: Add explanation for M_ACTUAL_SPELLS.
Apparently only true wizards can be silenced, and this coincides with
Trog hating the same monsters. (Maybe there should be a connection?)

It wasn't obvious to me, so it's probably not obvious to others, either.

--------------------------------------------------------------------------------
397036d562 | Johanna Ploog | 2010-02-20 16:40:29 +0100

Remove M_ACTUAL_SPELLS flag from Mara and copy.

--------------------------------------------------------------------------------
5c94ddf5a5 | Darshan Shaligram | 2010-02-20 19:55:34 +0530

Reduce moderate OOD level fuzz to +5 from +7 (dpeg).

--------------------------------------------------------------------------------
db787e555c | Johanna Ploog | 2010-02-20 10:25:01 +0100

For FINAL releases, give a better save file version mismatch error.
The "Major version mismatch" error message is a bit technical, in my
opinion, and I think that for release versions (tagged "final") we
should be more explicit about save file incompatibility.

I hope I understood the interaction between git tags and gen_ver.pl
correctly.

FIXME: Currently hardcodes 0.6 as the reference version, so that the
       message stays the same whether you try to load a 0.5 save file
       with 0.6 or 0.6.3. This should also be handled dynamically.

--------------------------------------------------------------------------------
53326c2943 | Stefan O'Rear | 2010-02-20 00:51:01 -0800

Monsters reveal Zot traps they trigger

--------------------------------------------------------------------------------
5cec4c40fe | Stefan O'Rear | 2010-02-20 00:43:13 -0800

Hillbilly sting fix redux
Instead of the older accuracy reduction for needles only, we now deny brand
effects on all 'awkwardly thrown' missiles.  You need to actually carry a
bow to benefit from dispersal!

--------------------------------------------------------------------------------
bd62a54e45 | Stefan O'Rear | 2010-02-20 00:18:34 -0800

Make killing yourself with crystal balls a bit harder.

--------------------------------------------------------------------------------
5ff36bdc14 | Stefan O'Rear | 2010-02-19 23:51:42 -0800

Fix description of randart amulets of inaccuracy
Previously, they were described as a null base type with a -5,+0
slaying power, but this is not quite accurate (in particular,
inaccuracy affects spells).  Now, they're their own property
inscription.

--------------------------------------------------------------------------------
55f480d00c | Stefan O'Rear | 2010-02-19 23:43:42 -0800

Simplify the handling of the background_colour option.

--------------------------------------------------------------------------------
e9e87715e5 | Stefan O'Rear | 2010-02-19 23:43:42 -0800

Fix an off-by-1 error which broke freed slave coloring.

--------------------------------------------------------------------------------
824f1a093c | Darshan Shaligram | 2010-02-20 11:20:17 +0530

[850] Fix too much gold being generated in Sewer (replaced any good_item with |)

--------------------------------------------------------------------------------
03011059f6 | Charles Otto | 2010-02-20 00:39:14 -0500

Reverse known/unknown spell colors when reading books
For consistency with previous versions color memorized spells
gray, and color unmemorized spells blue when reading books.

--------------------------------------------------------------------------------
232cad6eca | Charles Otto | 2010-02-19 23:20:57 -0500

Account for Kiku's Ne miscast protection to spell_is_empowered

--------------------------------------------------------------------------------
174b6723e3 | DMBrownrigg | 2010-02-19 22:31:41 -0500

amend spell highlights
Amends and corrects spell highlighting brands. more brands are
now recognised internally, which should both improve the
correctness of branding, and make it more flexible wrt future
changes.

branding colors have been changed to be more consistant with
colors used elsewhere in the interface, hopefully making the
highlights more intuative to the player.

--------------------------------------------------------------------------------
ccdfe1ebcd | Charles Otto | 2010-02-19 22:23:11 -0500

Only change SH display color when actually wearing a shield
Only display the SH value in red when the user is incapacitated if they
are actually wearing a shield.

--------------------------------------------------------------------------------
ac12766d18 | Johanna Ploog | 2010-02-20 01:08:38 +0100

Add a small "chimney" and smoke to Tukima's strange machine tile.

--------------------------------------------------------------------------------
b486604a11 | Johanna Ploog | 2010-02-20 01:08:07 +0100

Cleanup shark tile once again.
The teeth were looking needlessly wonky.

--------------------------------------------------------------------------------
0b309fdfbb | Johanna Ploog | 2010-02-19 17:27:14 +0100

Add a perfunctory "strange_machine" tile.

--------------------------------------------------------------------------------
7b478432dc | Johanna Ploog | 2010-02-19 15:56:47 +0100

A few more additions to book owners.

--------------------------------------------------------------------------------
43338a0b0c | Johanna Ploog | 2010-02-19 15:35:12 +0100

randbook.txt: Reorder spell schools alphabetically.

--------------------------------------------------------------------------------
40260706ff | Johanna Ploog | 2010-02-19 15:31:32 +0100

Give (fake) Mara the ACTUAL_SPELLS flag.

--------------------------------------------------------------------------------
34035e713d | Johanna Ploog | 2010-02-19 15:28:43 +0100

bookname.txt: Add new unique spellcasters as potential book owners.

--------------------------------------------------------------------------------
bc0a9fe028 | Johanna Ploog | 2010-02-19 15:10:16 +0100

Rename MST_MYSTIC -> MST_NORRIS.

--------------------------------------------------------------------------------
32ae473e75 | Johanna Ploog | 2010-02-19 15:05:18 +0100

Update monster speech documentation.

--------------------------------------------------------------------------------
3197206664 | Johanna Ploog | 2010-02-19 15:05:03 +0100

Update release.txt.

--------------------------------------------------------------------------------
70033eda7c | Johanna Ploog | 2010-02-19 13:46:44 +0100

Add some comments on Tiles' save compatibility issues.

--------------------------------------------------------------------------------
20dbef2cf9 | Johanna Ploog | 2010-02-19 13:34:15 +0100

Update patch_guide.txt to git and Mantis.

--------------------------------------------------------------------------------
b0d275f04a | Johanna Ploog | 2010-02-19 12:10:04 +0100

Use LoginError's ninja stealth brand tile, thank you!

--------------------------------------------------------------------------------
544e1d1fd6 | Johanna Ploog | 2010-02-19 11:57:50 +0100

Improve description for robe of the Archmagi.
Now mentions both the xp reduction and the spell schools most affected.
Very long now, might cause problems with artefacts.

Also, we should really outsource the brand descriptions at some point.

--------------------------------------------------------------------------------
b2c66f03ed | Johanna Ploog | 2010-02-19 11:57:28 +0100

Add Abyss LOS travel to the changelog.

--------------------------------------------------------------------------------
1d611744bd | Jesse Luehrs | 2010-02-19 01:04:53 -0600

fix tiles compile from bad cherry-picking

--------------------------------------------------------------------------------
97b7aa6245 | Charles Otto | 2010-02-19 00:06:05 -0600

Refresh the SH display when the player becomes disabled [452]
Mantis issue 452, refresh the SH display when the player becomes
incapacitated/recovers from being incapacitated. Getting paralyzed,
confused, petrified, put to sleep, or caught in a net temporarily
sets SH to 0. Also color the SH number red when incapacitated.
(cherry picked from commit a0ac0ccdb5631ca37f7b998d8ee8dfbd01a6e425)

--------------------------------------------------------------------------------
81c4799ed3 | Adam Borowski | 2010-02-19 00:05:23 -0600

Don't waste scrolls with a known amulet of stasis. (cherry picked from commit 
b04a3a5eb1c768829c665cf6533608beab9b6280)

--------------------------------------------------------------------------------
69699a5034 | Johanna Ploog | 2010-02-19 00:04:22 -0600

Change ?EW descriptions to mention they affect the _wielded_ weapon.
The scrolls of enchant weapon I-III and vorpalise weapon only affect
the wielded weapon, something that new players have no way of knowing.
Clarifying the descriptions should help.
(cherry picked from commit f1fdb86c59fc690c4852d9ac84255dac9503fe3e)

--------------------------------------------------------------------------------
d37ce46b22 | Johanna Ploog | 2010-02-19 00:02:43 -0600

For negative cloud decay values, cap cloud tile offset at 0.
Fire clouds with a decay of -1 (happens with some fog generators,
apparently) the negative offset resulted in an inappropriate
tile (the "8" tile) being drawn.
(cherry picked from commit cd22bf849b61383c55d97dad3fc084634a6aeaf5)

--------------------------------------------------------------------------------
21dce2ad88 | Johanna Ploog | 2010-02-19 00:02:05 -0600

In inventory prompts, list ? and Esc commands for menu access/quit.
This applies to e.g. drop, scroll prompts, etc.
(cherry picked from commit e74122e3ba67abe6e09db6e753f8a9dbfcded117)

--------------------------------------------------------------------------------
0e316ca46c | Johanna Ploog | 2010-02-19 00:01:14 -0600

Spacing fixes. (cherry picked from commit 
86adb1963f101337273b37240f4ca21ce5f791c4)

--------------------------------------------------------------------------------
523c0823ee | Johanna Ploog | 2010-02-19 00:00:59 -0600

Experimentally make clouds' exclusion radius depend on cloud type.
1. Steam clouds get exclusions with radius size = 0, others size = 1.
2. Replace the adjacency iterator placing exclusion centres with a
   single exclusion of radius size. For size > 0, this means that
   fog generators now also place exclusions on walls, where the
   clouds have no effect (but the same is true for the exclusions).
   At the same time this brings down the number of exclusions listed
   in ^O to some more realistic value and the highly intrusive
   exclusion centre tiles are used more sparingly.
(cherry picked from commit 547a0c32edaac147d4232522048342e581f9fab1)

--------------------------------------------------------------------------------
34f5433333 | Johanna Ploog | 2010-02-19 00:00:41 -0600

The levitation randart property still exists -> correct change log. (cherry 
picked from commit 614da335e1ebb9621580871e4803abfaddbc10a1)

--------------------------------------------------------------------------------
b3787d5846 | Adam Borowski | 2010-02-19 00:00:01 -0600

Fix Vampire's Tooth behaving halfway like old, halfway like new vampiricism. 
[406]
It did cause large ongoing hunger, no hunger hit on wield -- yet you had to
be full to wield it.
(cherry picked from commit 4f97b78d732daac89a7eece58851c5c324e697d8)

--------------------------------------------------------------------------------
9e4e0259da | Johanna Ploog | 2010-02-18 23:59:29 -0600

arena.des: Replace tile reference wall_zot_gray -> wall_zot_lightgray.
tile-dngn.html doesn't list 'wall_zot_gray' and Eino reported a crash
with a corresponding error message. I don't understand why this doesn't
happen more often...
(cherry picked from commit ad52953d28f5021f845ff60959ee2d1419f9da69)

--------------------------------------------------------------------------------
73330740f5 | Johanna Ploog | 2010-02-18 23:59:17 -0600

Some message tweaks. (cherry picked from commit 
574ee1cbb089a86bdefe0c8fd3364cf89dee5835)

--------------------------------------------------------------------------------
9615a69872 | Johanna Ploog | 2010-02-18 23:59:02 -0600

Also don't draw minimap player dot in arena mode. (cherry picked from commit 
c8dc9aca966a5065ad79cb8cc7ec8695f60504df)

--------------------------------------------------------------------------------
5dd34b7fdc | Johanna Ploog | 2010-02-18 23:58:56 -0600

Don't draw tab tiles in the arena. (cherry picked from commit 
eeaa4aa1d5053bef12eb8fed2fa06a5b02dbc482)

--------------------------------------------------------------------------------
ec02e2aaf1 | Adam Borowski | 2010-02-18 23:58:50 -0600

Add a missing message when an IOOD hits the player. (cherry picked from commit 
89bed7ed10faab05aa91fd2117dfcfef938cc1ad)

--------------------------------------------------------------------------------
7d521cb945 | Adam Borowski | 2010-02-18 23:57:46 -0600

Decrease IOOD damage at close range.  Tie the accuracy to spell power.
The damage is:
range 1:   50%
range 2:   70%
range 3:   90%
range 4+: 100%
(cherry picked from commit 7fe3da2fb72451c279e811049c25e224d2cb583c)

--------------------------------------------------------------------------------
00387c69eb | Adam Borowski | 2010-02-18 23:57:34 -0600

Stop some actions that would kill a merfolk due to -stat boots. (cherry picked 
from commit 789ccfa844322e2f60d7eeea9d98b38719f16e6a)

--------------------------------------------------------------------------------
1638875bcd | Charles Otto | 2010-02-18 23:56:26 -0600

Fix neutral slimes given ENCH_EAT_ITEMS not eating items [580]
Modify mons_itemeat to return MONEAT_ITEMS for monsters with
ENCH_EAT_ITEM (non jelly slimes are given the enchantment by jiyva).
This allows neutral slimes with the enchantment to eat items as
intended.
(cherry picked from commit 7f0e9e53f4d0d88be0d951e4a96fbc73c14b0c43)

--------------------------------------------------------------------------------
587d980209 | Charles Otto | 2010-02-18 23:56:11 -0600

Fix firing w/direction keys giving meph. cloud extra range [16]
Don't overwrite the range of the input beam in stinking_cloud.
This prevents meph cloud from getting an extra square of range when
fired using the direction keys (mantis issue 16).
(cherry picked from commit 9156de34ad1bd5a5d6d8f9699627125c8a714370)

--------------------------------------------------------------------------------
67bb317941 | Charles Otto | 2010-02-18 23:55:56 -0600

Let spells target active ballistomyecetes [840]
Consider active ballistomycetes valid targets in the spell range check.
(cherry picked from commit fa7fd6bc5da4aeb4297bf7858bd7cbd589d1f306)

--------------------------------------------------------------------------------
391679e865 | Charles Otto | 2010-02-18 23:55:47 -0600

Prevent growth from reacting to invisible monsters (cherry picked from commit 
d0097abdecedb43860af43e342cbfa26cbd017ee)

--------------------------------------------------------------------------------
dc3e98449e | Charles Otto | 2010-02-18 23:55:30 -0600

Soften the Fedhas piety loss condition for fungal colonies dying
Don't make Fedhas worshipers lose piety if a spore pops and produces
no ballistos, only lose piety if a ballisto was the last thing to die.
This should generally work out OK since ballistos produced by Fedhas
worshipers don't make spores anymore.
(cherry picked from commit a6cab2b59f6115c3e52f778ba6a8d93e680c32bb)

--------------------------------------------------------------------------------
daa838a78f | Charles Otto | 2010-02-18 23:54:12 -0600

More detailed messages for growth not working. (cherry picked from commit 
d01ca4e4e6a55803a1027e9167d47ac927a0811f)

--------------------------------------------------------------------------------
ad957395dc | Charles Otto | 2010-02-18 23:53:56 -0600

Simplify and improve the search method used by growth
Always search from adjacent squares to monsters, and when searching
outwards from an adjacent square consider all other adjacent squares
blocked.
(cherry picked from commit c5ad528334d9ebda7fad3a983cfff1c521a851fc)

--------------------------------------------------------------------------------
bda30bce99 | Enne Walker | 2010-02-18 23:53:35 -0600

[848] Fix net tile being drawn under the player.
The net tile was being added to the player buffer prior to the player
being added.  Instead, just put it in the foreground buffer, which always
draws on top of the player.
(cherry picked from commit 53044e38870ee0013ce0289b73a1c47b280ae30a)

--------------------------------------------------------------------------------
0baf731bcc | Johanna Ploog | 2010-02-18 23:53:07 -0600

Fix #845: Flush messages after Tiles' eXamine level map prompt. (cherry picked 
from commit 1b893776396890c587fe49ff9056bfa8f80f5f3a)

--------------------------------------------------------------------------------
74d8d5a67c | Johanna Ploog | 2010-02-18 23:52:59 -0600

Annotate exclusions centered on doors with "door". (cherry picked from commit 
ec26e36b1454e0ec927231c6f11a1779c867a79f)

--------------------------------------------------------------------------------
5e20b325ab | Johanna Ploog | 2010-02-18 23:51:53 -0600

Make wielding a cursed weapon trigger the tutorial curse message.
This was already the case for putting on cursed jewellery or armour,
but for some reason not for weapons.
(cherry picked from commit c26163970bb7b509acf5d9460e9c4a2497f970e6)

--------------------------------------------------------------------------------
17b5851795 | David Lawrence Ramsey | 2010-02-18 23:51:23 -0600

Fix another typo in Xom's altar description. (cherry picked from commit 
bbc99ef023d9f04383d2c0879f9e9519c36d1540)

--------------------------------------------------------------------------------
591c1dcb7f | Johanna Ploog | 2010-02-18 23:50:47 -0600

Fix a typo in Xom's altar description. (cherry picked from commit 
c519993c3422d27a0cf7d537cc8c340d8477b918)

--------------------------------------------------------------------------------
8e76a806d0 | Johanna Ploog | 2010-02-18 23:50:28 -0600

tiles_options.txt: Adapt some commented out lines to match the default.
For boolean options, the commented out settings should always be the
opposite of the default, so players only need to remove the '#' to
toggle the value.
(cherry picked from commit 7632ffc208c6653acc197bde68801303d1b1c1c6)

--------------------------------------------------------------------------------
3312420b7b | Johanna Ploog | 2010-02-18 23:50:20 -0600

In shops, print shopping list help on a separate line.
Move the shopping list help onto the line above the usual help.
(cherry picked from commit d6c7857b377573e2eed3a8367da235d03fef9313)

--------------------------------------------------------------------------------
41ce44f70d | Johanna Ploog | 2010-02-18 23:48:58 -0600

Add an icon for rotten corpses, and display it if non-saprovorous. (cherry 
picked from commit 357ffb80e1ff7db7f02dd5ba05f7340c782ef619)

--------------------------------------------------------------------------------
b86632d60c | Johanna Ploog | 2010-02-18 23:48:41 -0600

Clean up chunk brand tiles. (cherry picked from commit 
8aa788639d310d1f33983e3b85672b9ffd5149f6)

--------------------------------------------------------------------------------
215fb968e8 | Johanna Ploog | 2010-02-18 23:48:37 -0600

A few tutorial tweaks. (cherry picked from commit 
45e67ba8975f493c3b7ae1d617c8575167894496)

--------------------------------------------------------------------------------
3f73799077 | Johanna Ploog | 2010-02-18 23:46:17 -0600

Use 'Z' rather than 'z' for the Ctrl-L-Click spellcasting behaviour.
By this point the monster is already targeted, so there's no need to
disallow targeting toadstools (why?) or whatever.
(cherry picked from commit e224fabe3975a7138a34f15400f30ed23364100f)

--------------------------------------------------------------------------------
58b0730ee1 | Johanna Ploog | 2010-02-18 23:45:47 -0600

Get rid of "You must be new here" in the character choice menu.
I never really thought about it, but apparently it can be confusing. :p

Instead, the player is now asked to "pick your character's species"
(or background), which allows us to introduce the official terms.
(cherry picked from commit 281c12b8d57fefff0384b12da12e9f35d6436d8a)

--------------------------------------------------------------------------------
38c1a3a6fb | Adam Borowski | 2010-02-18 23:34:06 -0600

Fix some places where Che Guebriados fucks up merfolk stats.
Alas, I'm not sure if I caught all occurences.  che_handle_change() assumes
all changes were done before calling it; there's for example no way to tell
in advance if a change would be fatal.
(cherry picked from commit 1324f0a59d0ab789c54a90826e5c3dc603b12f21)

--------------------------------------------------------------------------------
a0ac0ccdb5 | Charles Otto | 2010-02-19 00:30:30 -0500

Refresh the SH display when the player becomes disabled [452]
Mantis issue 452, refresh the SH display when the player becomes
incapacitated/recovers from being incapacitated. Getting paralyzed,
confused, petrified, put to sleep, or caught in a net temporarily
sets SH to 0. Also color the SH number red when incapacitated.

--------------------------------------------------------------------------------
ee5c1abb6b | Johanna Ploog | 2010-02-18 22:09:07 -0600

Don't show the minimap tooltip in the Abyss. (cherry picked from commit 
471048bf618853fd2a4496c874a08b3c2a2b494e)

--------------------------------------------------------------------------------
e5729feabe | Johanna Ploog | 2010-02-18 22:08:59 -0600

In the Abyss, disallow travel to cells outside los. (cherry picked from commit 
b932be7f6455d41d8d21c90ccddcef816c67a599)

--------------------------------------------------------------------------------
b1bfbdb445 | Johanna Ploog | 2010-02-18 22:07:47 -0600

Allow 'x' and mouseclick travel in the Abyss.
Two changes for unmappable areas (Abyss only, right?):
1. mark seen cells as known
2. handle currently unseen cells as UNSEEN

The first makes sure that travel will recognize cells in los, and thus
accept them as a travel target. The second makes sure that the display
behaviour is unchanged, i.e. you still don't remember cells outside
los.
(cherry picked from commit 289d30469b8e1e8aa364daa6f055c1aa587c811a)

--------------------------------------------------------------------------------
245aa749e0 | Johanna Ploog | 2010-02-18 22:06:00 -0600

Fix #837: inventory mouseover descriptions not being displayed
As far as I can tell, m_items[item_idx].key was only ever used for
differentiating spells and items (at least, that's what I used it
for) and I've yet to see any bad effects to removing it.
(cherry picked from commit ad1f27765840cc6203e93529c4e1806e20c6774d)

--------------------------------------------------------------------------------
6c3f3a90c4 | Johanna Ploog | 2010-02-18 22:05:08 -0600

Fix #829: For randarts, only run drowning checks when actually levitating.
If the player is not levitating over but rather standing in deep water
(as a Merfolk), all the checks for drowning and fatal stat loss to losing
boots are completely superfluous.
(cherry picked from commit c8f044f551bf983d902b0e7513add1106f3b0952)

--------------------------------------------------------------------------------
27b176614a | Charles Otto | 2010-02-18 22:01:35 -0600

Draw plants placed by growth sequentially
Draw plants placed by growth in order of their priority rather than all
at once.
(cherry picked from commit dadecab997c6a7f18ddbf2285ba6c2a6d46a4a23)

--------------------------------------------------------------------------------
35bd6d9339 | Robert Vollmert | 2010-02-18 22:00:41 -0600

Don't assert for GOTO_MSG in cscroll.
Instead just don't do anything for other regions.
(cherry picked from commit 7040191d2aa5ce628473c7cff36318f854e564c8)

--------------------------------------------------------------------------------
84131fda32 | Charles Otto | 2010-02-18 21:59:32 -0600

Tweak the search method used by growth
Count the player's position as blocked, also simplify the check for
stationary monsters.
(cherry picked from commit 4e4437e31f96789eec38ccdeea8bd67515211dd3)

--------------------------------------------------------------------------------
503af8b734 | Charles Otto | 2010-02-18 21:59:17 -0600

Display priority numbers for Fedhas' growth in tiles
Add tiles to use as numerical overlays to indicate the priority given
to squares adjacent to the player by Fedhas' growth ability.
(cherry picked from commit 5fc223fd02cfbd4f5dc3f00e051ddfa7d64e3fdd)

--------------------------------------------------------------------------------
d8d5abb771 | Charles Otto | 2010-02-18 21:58:34 -0600

Add a visualization of the order growth places plants in
At the "How many plants?" prompt draw numbers (1-max plants) around the
player indicating the order growth will place plants in. Not entirely
sure this is a good idea, also it only works for the console version.
(cherry picked from commit 2f555fb541617f1c1cb1af567843ad26c21c172e)

--------------------------------------------------------------------------------
b04a3a5eb1 | Adam Borowski | 2010-02-19 03:15:03 +0100

Don't waste scrolls with a known amulet of stasis.

--------------------------------------------------------------------------------
0533438f9a | Adam Borowski | 2010-02-18 23:25:29 +0100

... and allow using shipped fonts.

--------------------------------------------------------------------------------
2e7cf33f93 | Adam Borowski | 2010-02-18 23:20:53 +0100

Allow using alternate (system) fonts as build #defines.

--------------------------------------------------------------------------------
f1fdb86c59 | Johanna Ploog | 2010-02-18 23:27:13 +0100

Change ?EW descriptions to mention they affect the _wielded_ weapon.
The scrolls of enchant weapon I-III and vorpalise weapon only affect
the wielded weapon, something that new players have no way of knowing.
Clarifying the descriptions should help.

--------------------------------------------------------------------------------
cd22bf849b | Johanna Ploog | 2010-02-18 23:19:48 +0100

For negative cloud decay values, cap cloud tile offset at 0.
Fire clouds with a decay of -1 (happens with some fog generators,
apparently) the negative offset resulted in an inappropriate
tile (the "8" tile) being drawn.

--------------------------------------------------------------------------------
e74122e3ba | Johanna Ploog | 2010-02-18 23:14:30 +0100

In inventory prompts, list ? and Esc commands for menu access/quit.
This applies to e.g. drop, scroll prompts, etc.

--------------------------------------------------------------------------------
86adb1963f | Johanna Ploog | 2010-02-18 21:19:54 +0100

Spacing fixes.

--------------------------------------------------------------------------------
547a0c32ed | Johanna Ploog | 2010-02-18 20:34:52 +0100

Experimentally make clouds' exclusion radius depend on cloud type.
1. Steam clouds get exclusions with radius size = 0, others size = 1.
2. Replace the adjacency iterator placing exclusion centres with a
   single exclusion of radius size. For size > 0, this means that
   fog generators now also place exclusions on walls, where the
   clouds have no effect (but the same is true for the exclusions).
   At the same time this brings down the number of exclusions listed
   in ^O to some more realistic value and the highly intrusive
   exclusion centre tiles are used more sparingly.

--------------------------------------------------------------------------------
614da335e1 | Johanna Ploog | 2010-02-18 20:34:51 +0100

The levitation randart property still exists -> correct change log.

--------------------------------------------------------------------------------
4f97b78d73 | Adam Borowski | 2010-02-18 14:25:52 +0100

Fix Vampire's Tooth behaving halfway like old, halfway like new vampiricism. 
[406]
It did cause large ongoing hunger, no hunger hit on wield -- yet you had to
be full to wield it.

--------------------------------------------------------------------------------
ad52953d28 | Johanna Ploog | 2010-02-18 14:31:55 +0100

arena.des: Replace tile reference wall_zot_gray -> wall_zot_lightgray.
tile-dngn.html doesn't list 'wall_zot_gray' and Eino reported a crash
with a corresponding error message. I don't understand why this doesn't
happen more often...

--------------------------------------------------------------------------------
574ee1cbb0 | Johanna Ploog | 2010-02-18 14:31:55 +0100

Some message tweaks.

--------------------------------------------------------------------------------
c8dc9aca96 | Johanna Ploog | 2010-02-18 14:31:54 +0100

Also don't draw minimap player dot in arena mode.

--------------------------------------------------------------------------------
eeaa4aa1d5 | Johanna Ploog | 2010-02-18 14:31:54 +0100

Don't draw tab tiles in the arena.

--------------------------------------------------------------------------------
89bed7ed10 | Adam Borowski | 2010-02-18 13:23:18 +0100

Add a missing message when an IOOD hits the player.

--------------------------------------------------------------------------------
7fe3da2fb7 | Adam Borowski | 2010-02-18 13:21:55 +0100

Decrease IOOD damage at close range.  Tie the accuracy to spell power.
The damage is:
range 1:   50%
range 2:   70%
range 3:   90%
range 4+: 100%

--------------------------------------------------------------------------------
789ccfa844 | Adam Borowski | 2010-02-18 11:38:17 +0100

Stop some actions that would kill a merfolk due to -stat boots.

--------------------------------------------------------------------------------
7f0e9e53f4 | Charles Otto | 2010-02-18 00:33:04 -0500

Fix neutral slimes given ENCH_EAT_ITEMS not eating items [580]
Modify mons_itemeat to return MONEAT_ITEMS for monsters with
ENCH_EAT_ITEM (non jelly slimes are given the enchantment by jiyva).
This allows neutral slimes with the enchantment to eat items as
intended.

--------------------------------------------------------------------------------
9156de34ad | Charles Otto | 2010-02-18 00:07:08 -0500

Fix firing w/direction keys giving meph. cloud extra range [16]
Don't overwrite the range of the input beam in stinking_cloud.
This prevents meph cloud from getting an extra square of range when
fired using the direction keys (mantis issue 16).

--------------------------------------------------------------------------------
d79e69eab0 | Charles Otto | 2010-02-17 23:30:36 -0500

Revert "Make per turn hunger proportional to time_taken"
This reverts commit af7a73027bddcff39a6ba1b08398a5310e5797ac.
Making hunger proportional to delay had undesirable effects such as
making things easier for spriggan and harder for nagas, not to mention
giving Che worshipers a hard time.

--------------------------------------------------------------------------------
fa7fd6bc5d | Charles Otto | 2010-02-17 20:33:58 -0500

Let spells target active ballistomyecetes [840]
Consider active ballistomycetes valid targets in the spell range check.

--------------------------------------------------------------------------------
d0097abdec | Charles Otto | 2010-02-17 19:52:00 -0500

Prevent growth from reacting to invisible monsters

--------------------------------------------------------------------------------
a6cab2b59f | Charles Otto | 2010-02-17 19:38:05 -0500

Soften the Fedhas piety loss condition for fungal colonies dying
Don't make Fedhas worshipers lose piety if a spore pops and produces
no ballistos, only lose piety if a ballisto was the last thing to die.
This should generally work out OK since ballistos produced by Fedhas
worshipers don't make spores anymore.

--------------------------------------------------------------------------------
d01ca4e4e6 | Charles Otto | 2010-02-17 19:29:06 -0500

More detailed messages for growth not working.

--------------------------------------------------------------------------------
c5ad528334 | Charles Otto | 2010-02-17 19:28:46 -0500

Simplify and improve the search method used by growth
Always search from adjacent squares to monsters, and when searching
outwards from an adjacent square consider all other adjacent squares
blocked.

--------------------------------------------------------------------------------
53044e3887 | Enne Walker | 2010-02-17 18:58:56 -0500

[848] Fix net tile being drawn under the player.
The net tile was being added to the player buffer prior to the player
being added.  Instead, just put it in the foreground buffer, which always
draws on top of the player.

--------------------------------------------------------------------------------
1b89377639 | Johanna Ploog | 2010-02-17 23:48:45 +0100

Fix #845: Flush messages after Tiles' eXamine level map prompt.

--------------------------------------------------------------------------------
ec26e36b14 | Johanna Ploog | 2010-02-17 21:01:58 +0100

Annotate exclusions centered on doors with "door".

--------------------------------------------------------------------------------
c26163970b | Johanna Ploog | 2010-02-17 21:01:58 +0100

Make wielding a cursed weapon trigger the tutorial curse message.
This was already the case for putting on cursed jewellery or armour,
but for some reason not for weapons.

--------------------------------------------------------------------------------
bbc99ef023 | David Lawrence Ramsey | 2010-02-17 13:26:48 -0600

Fix another typo in Xom's altar description.

--------------------------------------------------------------------------------
c519993c34 | Johanna Ploog | 2010-02-17 18:35:59 +0100

Fix a typo in Xom's altar description.

--------------------------------------------------------------------------------
7632ffc208 | Johanna Ploog | 2010-02-17 18:15:38 +0100

tiles_options.txt: Adapt some commented out lines to match the default.
For boolean options, the commented out settings should always be the
opposite of the default, so players only need to remove the '#' to
toggle the value.

--------------------------------------------------------------------------------
d6c7857b37 | Johanna Ploog | 2010-02-17 18:14:01 +0100

In shops, print shopping list help on a separate line.
Move the shopping list help onto the line above the usual help.

--------------------------------------------------------------------------------
357ffb80e1 | Johanna Ploog | 2010-02-17 18:14:01 +0100

Add an icon for rotten corpses, and display it if non-saprovorous.

--------------------------------------------------------------------------------
8aa788639d | Johanna Ploog | 2010-02-17 18:14:00 +0100

Clean up chunk brand tiles.

--------------------------------------------------------------------------------
45e67ba897 | Johanna Ploog | 2010-02-17 18:14:00 +0100

A few tutorial tweaks.

--------------------------------------------------------------------------------
e224fabe39 | Johanna Ploog | 2010-02-17 18:14:00 +0100

Use 'Z' rather than 'z' for the Ctrl-L-Click spellcasting behaviour.
By this point the monster is already targeted, so there's no need to
disallow targeting toadstools (why?) or whatever.

--------------------------------------------------------------------------------
ab1b9689bf | Johanna Ploog | 2010-02-17 18:14:00 +0100

spl-cast.cc/h: Get rid of some unused booleans.

--------------------------------------------------------------------------------
281c12b8d5 | Johanna Ploog | 2010-02-17 18:14:00 +0100

Get rid of "You must be new here" in the character choice menu.
I never really thought about it, but apparently it can be confusing. :p

Instead, the player is now asked to "pick your character's species"
(or background), which allows us to introduce the official terms.

--------------------------------------------------------------------------------
1324f0a59d | Adam Borowski | 2010-02-17 15:40:32 +0100

Fix some places where Che Guebriados fucks up merfolk stats.
Alas, I'm not sure if I caught all occurences.  che_handle_change() assumes
all changes were done before calling it; there's for example no way to tell
in advance if a change would be fatal.

--------------------------------------------------------------------------------
471048bf61 | Johanna Ploog | 2010-02-17 15:05:11 +0100

Don't show the minimap tooltip in the Abyss.

--------------------------------------------------------------------------------
b932be7f64 | Johanna Ploog | 2010-02-17 15:03:17 +0100

In the Abyss, disallow travel to cells outside los.

--------------------------------------------------------------------------------
289d30469b | Johanna Ploog | 2010-02-17 14:53:24 +0100

Allow 'x' and mouseclick travel in the Abyss.
Two changes for unmappable areas (Abyss only, right?):
1. mark seen cells as known
2. handle currently unseen cells as UNSEEN

The first makes sure that travel will recognize cells in los, and thus
accept them as a travel target. The second makes sure that the display
behaviour is unchanged, i.e. you still don't remember cells outside
los.

--------------------------------------------------------------------------------
ad1f277658 | Johanna Ploog | 2010-02-17 13:49:43 +0100

Fix #837: inventory mouseover descriptions not being displayed
As far as I can tell, m_items[item_idx].key was only ever used for
differentiating spells and items (at least, that's what I used it
for) and I've yet to see any bad effects to removing it.

--------------------------------------------------------------------------------
c8f044f551 | Johanna Ploog | 2010-02-17 13:20:49 +0100

Fix #829: For randarts, only run drowning checks when actually levitating.
If the player is not levitating over but rather standing in deep water
(as a Merfolk), all the checks for drowning and fatal stat loss to losing
boots are completely superfluous.

--------------------------------------------------------------------------------
de9ee9c35e | Charles Otto | 2010-02-16 23:12:46 -0600

Add something about the evolution HD bonus to the ability desc. (cherry picked 
from commit 8abd92987a9a11f0ec3e164171bbaaa8bff95d6e)

--------------------------------------------------------------------------------
52ac1f22d4 | Charles Otto | 2010-02-16 23:12:31 -0600

More descriptive 'evolves to an oklob' message
Add information about the chance to fire bonus given to oklob plants.
The message now ends with a word about how quickly the oklob can spit
acid (with a new description every 5 invo. skill), messages could use
some work.
(cherry picked from commit 56be916ab861de71624be8eecc4393c4ff54a62f)

--------------------------------------------------------------------------------
9f75448afd | Charles Otto | 2010-02-16 23:11:50 -0600

Add a message about Fedhas preventing spores from destroying food
Give a message when a Fedhas worshiper is engulfed in spores.
Could probably use a better message.
(cherry picked from commit 0bd1f86deb48b02d67f021e0d8ad9b34bc02a8c3)

--------------------------------------------------------------------------------
8abd92987a | Charles Otto | 2010-02-16 23:25:57 -0500

Add something about the evolution HD bonus to the ability desc.

--------------------------------------------------------------------------------
56be916ab8 | Charles Otto | 2010-02-16 23:25:38 -0500

More descriptive 'evolves to an oklob' message
Add information about the chance to fire bonus given to oklob plants.
The message now ends with a word about how quickly the oklob can spit
acid (with a new description every 5 invo. skill), messages could use
some work.

--------------------------------------------------------------------------------
0bd1f86deb | Charles Otto | 2010-02-16 23:25:18 -0500

Add a message about Fedhas preventing spores from destroying food
Give a message when a Fedhas worshiper is engulfed in spores.
Could probably use a better message.

--------------------------------------------------------------------------------
dadecab997 | Charles Otto | 2010-02-16 23:24:57 -0500

Draw plants placed by growth sequentially
Draw plants placed by growth in order of their priority rather than all
at once.

--------------------------------------------------------------------------------
7e09a649c0 | Jesse Luehrs | 2010-02-16 22:09:56 -0600

vaults didn't have any user-noticeable changes in 0.6 (cherry picked from 
commit df91b73f6178e31e0251561f7a8f4364db60e191)

--------------------------------------------------------------------------------
df91b73f61 | Jesse Luehrs | 2010-02-16 22:07:35 -0600

vaults didn't have any user-noticeable changes in 0.6

--------------------------------------------------------------------------------
d7c364b33d | Johanna Ploog | 2010-02-16 22:04:41 -0600

Fix #805: Autotravel considers doors impassable once you were a bat.
Explicitly mark doors as traversable if you are capable of opening doors.
(Bat Form isn't, but the impassable setting was never removed again.)
(cherry picked from commit 573b2f4f0f97c2995a8b3c640eb2aa29decdedce)

--------------------------------------------------------------------------------
14620b1994 | Johanna Ploog | 2010-02-16 22:04:01 -0600

Remove the "message colourings" from food_colouring.txt.
Seeing how the chunk/corpse messages are handled directly and the
keywords are hidden anyway, this didn't actually do anything except
colour unrelated messages, such as in the tutorial.

If anyone liked the brown colouring for "You feel contaminated with
magical energy", it can be added to messages.txt, where it makes
much more sense.
(cherry picked from commit 7c0e01a38b678b386d2906ea17a5000a54da4171)

--------------------------------------------------------------------------------
19b0f86df3 | Johanna Ploog | 2010-02-16 22:00:43 -0600

Fix autoexplore being triggered by shift-clicking in the inventory. (cherry 
picked from commit 273f4dd78915b65f5de6b0f9278b11dd905278ec)

--------------------------------------------------------------------------------
11379dabbb | Johanna Ploog | 2010-02-16 21:57:15 -0600

Tweak labyrinth entrance description to mention shifting walls. (cherry picked 
from commit 5da22fc8c55c127d9f9b85c66967a9071cade008)

--------------------------------------------------------------------------------
0fd8e859fe | Johanna Ploog | 2010-02-16 21:46:01 -0600

Tiles: Change "wounded" hpbar colour from black -> darkred. (cherry picked from 
commit 1985e7d11496144dbb287f5b2d78eaf7ff932206)

--------------------------------------------------------------------------------
e0da2fcb7c | David Ploog | 2010-02-16 21:35:00 -0600

Update manual.
I tried to get the bits about armours correctly.
Also, I hope I did the new targeting system justice.

Finally, if there have been new Enchantments, inscriptions, or randart
properties, these should be added to the appendices.
(cherry picked from commit 8b569e8f7afb5d4a65b578934736717a951df8de)

--------------------------------------------------------------------------------
188d3767d2 | David Ploog | 2010-02-16 21:33:49 -0600

Remove one blank line from Ctrl-O screen. (cherry picked from commit 
a118664e9e4631805847e90aaef19159155d7fe5)

--------------------------------------------------------------------------------
43f6678319 | David Ploog | 2010-02-16 21:33:26 -0600

Change weapon charges for troves. (cherry picked from commit 
945d170b7f505245a665f7532b4b4abd5b2bec57)

--------------------------------------------------------------------------------
85434e4e09 | Johanna Ploog | 2010-02-16 21:27:53 -0600

Changelog tweaks. (cherry picked from commit 
d8d44bb77208d351fd3b98f9c5cf08117ef300dd)

--------------------------------------------------------------------------------
dc60c13629 | Johanna Ploog | 2010-02-16 21:13:39 -0600

Add spells being forbidden or dangerous to the spell description. (cherry 
picked from commit 5b1eb282cab10bed2d3cb195b63ab2e98fd587a0)

--------------------------------------------------------------------------------
13aa8233c4 | Johanna Ploog | 2010-02-16 21:11:30 -0600

Fix memorisation display not being drawn without memorisable spells.
In a recent commit I accidentally made the memorisation display return
early if you can't memorise any of your spells yet. Fixed now.
(cherry picked from commit 49c646093637f9691a5d44e0cfbdececf3e03e50)

--------------------------------------------------------------------------------
acb957c321 | Johanna Ploog | 2010-02-16 21:07:01 -0600

Also mention minimap exploration in the tutorial. (cherry picked from commit 
0978c4569530a9b8a480940a57451a245aa7d239)

--------------------------------------------------------------------------------
52e6694158 | Johanna Ploog | 2010-02-16 21:06:49 -0600

Mention the memorisation tab in the tutorial. (cherry picked from commit 
e790f95c22de642f5a9b4da8368f74a8d95bb83b)

--------------------------------------------------------------------------------
539cbaec6d | Johanna Ploog | 2010-02-16 21:06:30 -0600

Fix memorisable spells wrongly being marked invalid in Tiles. (cherry picked 
from commit 4c354ff4922b6ca639da26339597066312e25c6e)

--------------------------------------------------------------------------------
31fcb14654 | Johanna Ploog | 2010-02-16 21:06:19 -0600

Tiles: Make Shift-L-Click on the minimap call autoexplore. (cherry picked from 
commit 4c3ce493b9716a909e2dcf31d7312eaa7a72dc13)

--------------------------------------------------------------------------------
40ff89ea1e | Johanna Ploog | 2010-02-16 21:05:36 -0600

Fix Xom saying "No, never mind" after successful acquirement. (cherry picked 
from commit c3aaabf06203740586f47046b7d9d0462bc6b873)

--------------------------------------------------------------------------------
3326f57ee7 | Eino Keskitalo | 2010-02-16 21:04:53 -0600

Fix Mantis 804: Silver gives damage from innate mutations.
Thanks due! I have to say, you.demon_pow does not have the most transparent 
name for its function. Should be named to you.innate_mutations (added that to 
the source cleanup page in the wiki).

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit fd7524e24cf10693465b08fbf691f233ceb1aee2)

--------------------------------------------------------------------------------
eafd917bc4 | Charles Otto | 2010-02-16 20:45:05 -0600

Switch mold's color to lightgreen
This looks nicer than lightcyan, although it is the same color as the
floor of the snake pit. Since (I'm pretty sure) spores don't naturally
occur in snake, that seems OK for now.
(cherry picked from commit 5a1d10e69f73cbd7c9fb4e4a20d5157be73d17cb)

--------------------------------------------------------------------------------
021b58fd33 | Charles Otto | 2010-02-16 20:44:30 -0600

Fix DID_ATTACK_FRIEND not getting triggered
The DID_ATTACK_FRIEND conduct seems to have been broken by commit
917cc2df1. Some initialization code used for evaluating attack conducts
was moved out of religion_turn_start, and then never called from
anywhere else.
(cherry picked from commit 8af57359bcc800f6ba34a4709a31ba88cab6a6dd)

--------------------------------------------------------------------------------
0171d0c629 | Charles Otto | 2010-02-16 20:43:55 -0600

Draw the cursor right away when using direction in tiles
Remove special casing which delayed the cursor from being drawn while
targeting in tiles until the player moved the cursor. This special
casing meant that if you used a smite targeted ability in tiles you
would not be able to see what got auto-targeted by the ability (until
you moved the cursor).

I don't know why the was special casing was there in the first place so
this could cause a regression.
(cherry picked from commit fa7c6d056188a004b54d40c8d746bc2e7ec7b451)

--------------------------------------------------------------------------------
ce8e321466 | Johanna Ploog | 2010-02-16 20:42:55 -0600

Only print the "no spells" message when _switching_ to the memorise tab.
Before, if you kept the tab open, it was printed every turn, again and
again. Of course, there's no reason to keep the tab open in that case,
but it still looked bad.
(cherry picked from commit 8624ccadb9213321748c08540926461b54567716)

--------------------------------------------------------------------------------
7ed579bb6a | Johanna Ploog | 2010-02-16 20:42:01 -0600

Move the larger mold tiles into UNUSED/other.
I feel they're a bit too eye-catching for general use.
(cherry picked from commit b7b3058cab96ee6bff9aaf8618af27d8fe2e7e66)

--------------------------------------------------------------------------------
965bd9cc41 | Johanna Ploog | 2010-02-16 20:41:48 -0600

Add purge's mold tiles.
Because of their green coloration they are all but invisible in Lair,
but show up fine in the Dungeon and other non-greenish branches.
(cherry picked from commit 9321858b190e17d878cb2dedbd5bfeb0065608b1)

--------------------------------------------------------------------------------
15ff4500e8 | Johanna Ploog | 2010-02-16 20:41:25 -0600

Don't overlay altars, stairs/gates, shops, fountains or known shafts with blood 
tiles. (cherry picked from commit 15ba96a19e996ddd0b62100ad1a0c776d76a8291)

--------------------------------------------------------------------------------
c560d93cd4 | Johanna Ploog | 2010-02-16 20:30:43 -0600

Fix #820: character selection falling through to the tutorial. (cherry picked 
from commit 0f97dbc32eae0c32ec0c09d98e764d3c8d9ac283)

--------------------------------------------------------------------------------
de630fa336 | Johanna Ploog | 2010-02-16 20:30:17 -0600

Add a tooltip for disarming adjacent mechanical traps. (cherry picked from 
commit 694e55222848b2231096bdae16456ad3938393db)

--------------------------------------------------------------------------------
f5bed9caf2 | Johanna Ploog | 2010-02-16 20:27:42 -0600

Fix the upstairs command being listed as "<<" in Tiles.
Also mention the spellcasting tab in the tutorial.
(cherry picked from commit 8fe283dbfd43ae902d6023112c34ba92a7c225bd)

--------------------------------------------------------------------------------
5db68c9a1d | David Lawrence Ramsey | 2010-02-16 20:19:32 -0600

Hopefully fix Mantis 818.
Make _determine_(weapon|armour|missile)_subtype() properly take
MAX_RACIAL values into account, to avoid things like orcish/dwarven
animal skins.
(cherry picked from commit 6fb705d08f83d35ffaf8b774776243d7838efb6e)

--------------------------------------------------------------------------------
573b2f4f0f | Johanna Ploog | 2010-02-17 01:47:14 +0100

Fix #805: Autotravel considers doors impassable once you were a bat.
Explicitly mark doors as traversable if you are capable of opening doors.
(Bat Form isn't, but the impassable setting was never removed again.)

--------------------------------------------------------------------------------
7c0e01a38b | Johanna Ploog | 2010-02-17 00:08:50 +0100

Remove the "message colourings" from food_colouring.txt.
Seeing how the chunk/corpse messages are handled directly and the
keywords are hidden anyway, this didn't actually do anything except
colour unrelated messages, such as in the tutorial.

If anyone liked the brown colouring for "You feel contaminated with
magical energy", it can be added to messages.txt, where it makes
much more sense.

--------------------------------------------------------------------------------
273f4dd789 | Johanna Ploog | 2010-02-16 23:58:10 +0100

Fix autoexplore being triggered by shift-clicking in the inventory.

--------------------------------------------------------------------------------
b4063346eb | Johanna Ploog | 2010-02-16 22:07:03 +0100

Revert "For Tiles builds, default use_fake_cursor to false."
This reverts commit 450016a0c7458416a7f85741e3cf9c3629e24f6b.

Doesn't work.

--------------------------------------------------------------------------------
e0381c15ba | Johanna Ploog | 2010-02-16 22:07:03 +0100

For Tiles builds, default use_fake_cursor to false.
It was causing issues with the cursor overwriting single characters
in the HUD, e.g. when resting.

--------------------------------------------------------------------------------
5da22fc8c5 | Johanna Ploog | 2010-02-16 22:07:03 +0100

Tweak labyrinth entrance description to mention shifting walls.

--------------------------------------------------------------------------------
1985e7d114 | Johanna Ploog | 2010-02-16 22:07:03 +0100

Tiles: Change "wounded" hpbar colour from black -> darkred.

--------------------------------------------------------------------------------
81a4c20aff | Jesse Luehrs | 2010-02-16 13:49:35 -0600

fix accidental submodule change

--------------------------------------------------------------------------------
8b569e8f7a | David Ploog | 2010-02-16 20:43:56 +0100

Update manual.
I tried to get the bits about armours correctly.
Also, I hope I did the new targeting system justice.

Finally, if there have been new Enchantments, inscriptions, or randart
properties, these should be added to the appendices.

--------------------------------------------------------------------------------
a118664e9e | David Ploog | 2010-02-16 19:08:43 +0100

Remove one blank line from Ctrl-O screen.

--------------------------------------------------------------------------------
945d170b7f | David Ploog | 2010-02-16 18:53:45 +0100

Change weapon charges for troves.

--------------------------------------------------------------------------------
d8d44bb772 | Johanna Ploog | 2010-02-16 17:36:20 +0100

Changelog tweaks.

--------------------------------------------------------------------------------
3bcf76d745 | Johanna Ploog | 2010-02-16 17:32:28 +0100

Add purge's chest tiles to the UNUSED folder.

--------------------------------------------------------------------------------
5b1eb282ca | Johanna Ploog | 2010-02-16 17:20:04 +0100

Add spells being forbidden or dangerous to the spell description.

--------------------------------------------------------------------------------
3dbc90041c | Johanna Ploog | 2010-02-16 17:20:04 +0100

A couple of indentation fixes.

--------------------------------------------------------------------------------
49c6460936 | Johanna Ploog | 2010-02-16 17:20:04 +0100

Fix memorisation display not being drawn without memorisable spells.
In a recent commit I accidentally made the memorisation display return
early if you can't memorise any of your spells yet. Fixed now.

--------------------------------------------------------------------------------
0978c45695 | Johanna Ploog | 2010-02-16 17:20:04 +0100

Also mention minimap exploration in the tutorial.

--------------------------------------------------------------------------------
e790f95c22 | Johanna Ploog | 2010-02-16 17:20:04 +0100

Mention the memorisation tab in the tutorial.

--------------------------------------------------------------------------------
4c354ff492 | Johanna Ploog | 2010-02-16 17:20:04 +0100

Fix memorisable spells wrongly being marked invalid in Tiles.

--------------------------------------------------------------------------------
4c3ce493b9 | Johanna Ploog | 2010-02-16 17:20:04 +0100

Tiles: Make Shift-L-Click on the minimap call autoexplore.

--------------------------------------------------------------------------------
c3aaabf062 | Johanna Ploog | 2010-02-16 17:20:04 +0100

Fix Xom saying "No, never mind" after successful acquirement.

--------------------------------------------------------------------------------
fd7524e24c | Eino Keskitalo | 2010-02-16 16:22:16 +0200

Fix Mantis 804: Silver gives damage from innate mutations.
Thanks due! I have to say, you.demon_pow does not have the most transparent 
name for its function. Should be named to you.innate_mutations (added that to 
the source cleanup page in the wiki).

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ff3a2a0f7c | Steven Noonan | 2010-02-15 22:39:24 -0800

lua: fix submodule revision
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5a1d10e69f | Charles Otto | 2010-02-16 00:52:17 -0500

Switch mold's color to lightgreen
This looks nicer than lightcyan, although it is the same color as the
floor of the snake pit. Since (I'm pretty sure) spores don't naturally
occur in snake, that seems OK for now.

--------------------------------------------------------------------------------
8af57359bc | Charles Otto | 2010-02-16 00:47:07 -0500

Fix DID_ATTACK_FRIEND not getting triggered
The DID_ATTACK_FRIEND conduct seems to have been broken by commit
917cc2df1. Some initialization code used for evaluating attack conducts
was moved out of religion_turn_start, and then never called from
anywhere else.

--------------------------------------------------------------------------------
fa7c6d0561 | Charles Otto | 2010-02-15 23:39:45 -0500

Draw the cursor right away when using direction in tiles
Remove special casing which delayed the cursor from being drawn while
targeting in tiles until the player moved the cursor. This special
casing meant that if you used a smite targeted ability in tiles you
would not be able to see what got auto-targeted by the ability (until
you moved the cursor).

I don't know why the was special casing was there in the first place so
this could cause a regression.

--------------------------------------------------------------------------------
8624ccadb9 | Johanna Ploog | 2010-02-16 02:47:50 +0100

Only print the "no spells" message when _switching_ to the memorise tab.
Before, if you kept the tab open, it was printed every turn, again and
again. Of course, there's no reason to keep the tab open in that case,
but it still looked bad.

--------------------------------------------------------------------------------
b7b3058cab | Johanna Ploog | 2010-02-16 02:19:16 +0100

Move the larger mold tiles into UNUSED/other.
I feel they're a bit too eye-catching for general use.

--------------------------------------------------------------------------------
9321858b19 | Johanna Ploog | 2010-02-16 02:16:45 +0100

Add purge's mold tiles.
Because of their green coloration they are all but invisible in Lair,
but show up fine in the Dungeon and other non-greenish branches.

--------------------------------------------------------------------------------
15ba96a19e | Johanna Ploog | 2010-02-16 01:31:13 +0100

Don't overlay altars, stairs/gates, shops, fountains or known shafts with blood 
tiles.

--------------------------------------------------------------------------------
0f97dbc32e | Johanna Ploog | 2010-02-16 00:38:47 +0100

Fix #820: character selection falling through to the tutorial.

--------------------------------------------------------------------------------
694e552228 | Johanna Ploog | 2010-02-15 23:16:03 +0100

Add a tooltip for disarming adjacent mechanical traps.

--------------------------------------------------------------------------------
8fe283dbfd | Johanna Ploog | 2010-02-15 23:16:03 +0100

Fix the upstairs command being listed as "<<" in Tiles.
Also mention the spellcasting tab in the tutorial.

--------------------------------------------------------------------------------
7040191d2a | Robert Vollmert | 2010-02-15 21:31:14 +0100

Don't assert for GOTO_MSG in cscroll.
Instead just don't do anything for other regions.

--------------------------------------------------------------------------------
189bdd496e | Robert Vollmert | 2010-02-15 21:30:47 +0100

Clean up inscribe_item() a bit.
Now uses msgwin_get_line when using the message window.

Most likely does not help with issue #623.

--------------------------------------------------------------------------------
6fb705d08f | David Lawrence Ramsey | 2010-02-15 12:02:22 -0600

Hopefully fix Mantis 818.
Make _determine_(weapon|armour|missile)_subtype() properly take
MAX_RACIAL values into account, to avoid things like orcish/dwarven
animal skins.

--------------------------------------------------------------------------------
a33f9984e7 | Jude Brown | 2010-02-15 10:15:29 -0600

Fix "book of bugginess", hopefully (syllogism).
Single-title books (Necronomicon, Young Poisoner's Handbook, etc) were
causing issues with a) the way the item names are generated for the
TroveMarker, and b) the fact that Lua item.sub_type was reporting
"bugginess" for the book type, as these books aren't included in
book_type_name. Bah!
(cherry picked from commit b224eff69092e7cbd2d7fc07200e1cb485e78dd8)

--------------------------------------------------------------------------------
b224eff690 | Jude Brown | 2010-02-16 00:08:16 +1000

Fix "book of bugginess", hopefully (syllogism).
Single-title books (Necronomicon, Young Poisoner's Handbook, etc) were
causing issues with a) the way the item names are generated for the
TroveMarker, and b) the fact that Lua item.sub_type was reporting
"bugginess" for the book type, as these books aren't included in
book_type_name. Bah!

--------------------------------------------------------------------------------
21f952509c | Jude Brown | 2010-02-15 04:02:32 -0600

"There is Edmund nearby!" --> "Edmund is nearby!"
Retains "There are monsters nearby!". This should result in "A kobold is
nearby", and so-on, and is slightly more graceful in its handling of
uniues.
(cherry picked from commit bcfed18fc408a352758e361aaeee71d8ae2ae4cb)

--------------------------------------------------------------------------------
bcfed18fc4 | Jude Brown | 2010-02-15 20:00:29 +1000

"There is Edmund nearby!" --> "Edmund is nearby!"
Retains "There are monsters nearby!". This should result in "A kobold is
nearby", and so-on, and is slightly more graceful in its handling of
uniues.

--------------------------------------------------------------------------------
9fde908cc0 | Jude Brown | 2010-02-15 03:53:41 -0600

Fix typo: vengence -> vengeance (Jiyva's wrath). (cherry picked from commit 
c96fa376b23134f0f172ff383a88e202625683b6)

--------------------------------------------------------------------------------
c96fa376b2 | Jude Brown | 2010-02-15 19:46:26 +1000

Fix typo: vengence -> vengeance (Jiyva's wrath).

--------------------------------------------------------------------------------
43022ada29 | Jude Brown | 2010-02-15 03:40:06 -0600

Unique flavour enchancement, step five: Wayne's speech, description.
Basically tweaked the flavour of Wayne's speech away from typical and
rather cliched "Dwarven"/faux Scots towards more of a Glaswegian accent.
Not perfect, but I think it's a little better. Also added a bit more
flavour to his description.
(cherry picked from commit 5d32a89e1d2f7b7a0ab364a302396cd1f4e45972)

--------------------------------------------------------------------------------
5d32a89e1d | Jude Brown | 2010-02-15 19:20:31 +1000

Unique flavour enchancement, step five: Wayne's speech, description.
Basically tweaked the flavour of Wayne's speech away from typical and
rather cliched "Dwarven"/faux Scots towards more of a Glaswegian accent.
Not perfect, but I think it's a little better. Also added a bit more
flavour to his description.

--------------------------------------------------------------------------------
a5e4f605f9 | Jude Brown | 2010-02-15 03:19:14 -0600

Clean up monster death effects, elven twin death effects, mon-death.cc.
This commit moves the monster "death effects" (primarily for uniques)
out of mon-stuff.cc, and into mon-death.cc. This includes Kirke's
hogs_to_humans(), Pikel's band neutralisation, and Dowan and Duvessa's
death effects.

Introduce some new functions which should condense checks to
monster->type and monster->propes["original_name"]: mons_is_dowan,
mons_is_duvessa, mons_is_pikel, mons_is_kirke. This means that death
effects should trigger and affect monsters even through multiple
polymorphs.

It also with #797, pacification effects: pacifying one pacifies the
other, and experience and piety gain for Elyvilon are similar. This
should work for all forms of pacification (but not necessarily all forms
of neutrality). Attacking one of them while pacified will cause both of
them to turn hostile.

Finally, this commit introduces code and flavour speech for instances
where one of them accidentally kills the other (enslavement wands,
frenzy needles).

Still need to be looked at: turning hostile if friendly when killing a
twin, both confused when dying (#459), and stabbing when neutral
(doens't give a chance for the behaviour code to trigger).
(cherry picked from commit 04479e72bd97c394a52170c4b5a81bf00bd34946)

--------------------------------------------------------------------------------
ab54351e48 | Jude Brown | 2010-02-15 03:16:44 -0600

Do #550, "runed" appears when cycling ammunition.
For ammunition that haven't had their pluses identified, and who have
the "runed" cosmetic flag, that are being displayed in terse mode with
DESC_INVENTORY style descriptions, they will appear as:

 Qv: k) 22 darts (runed) {god gift}

When identified, they'll appear as:

 Qv: k) 22 +3 darts (disperse) {god gift}

This should hopefully only affect the quiver screen. I haven't seen any
other instances of terse DESC_INVENTORY being used, but obviously these
would be affected.
(cherry picked from commit 09f666ae7af0e57535746ed8c4a678664cbd5845)

--------------------------------------------------------------------------------
a86950dd81 | Jude Brown | 2010-02-15 03:16:27 -0600

Fix #810, runed ammunition not showing up as such.
Hopefully this resolves that issue.
(cherry picked from commit 34966286836f3a60463873b1d5a1d7e8bf7dc79e)

--------------------------------------------------------------------------------
a1f98bc9e0 | Enne Walker | 2010-02-15 03:16:02 -0600

More invalid cases for spell/memorise tile tabs. (cherry picked from commit 
d78d8ba2d6919916b85cd3c15f19402c7a726ecd)

--------------------------------------------------------------------------------
4e4675eb2f | Enne Walker | 2010-02-15 03:15:49 -0600

Revert spellcasting logic change.
e44edcb9 switched the order of logic when casting teleport spells.  That
change would have allowed teleport spells to be cast when they shouldn't
have been able to.  This goes back to the previous behavior.
(cherry picked from commit e370a90e46cbe0a65b2b6f75826671839166236d)

--------------------------------------------------------------------------------
882eb13775 | Enne Walker | 2010-02-15 03:15:05 -0600

Generalize tab activation and tip text.
These are now virtual functions so that TabbedRegion can remain agnostic
of what regions it contains.
(cherry picked from commit 05e7cb035ba44034e69b23aa4c97720ecd7f8139)

--------------------------------------------------------------------------------
82d4c00af4 | Enne Walker | 2010-02-15 03:14:50 -0600

Cleaner implementation of tab names.
TabbedRegion is now a GridRegion, so it can draw some text more
elegantly.  Each GridRegion-derived class now owns its own name, so that
the TabbedRegion can draw it when the mouse is over a given tab.
(cherry picked from commit 940c3c2e79ca5b9cafed39b67eb8ec9a19f728c5)

--------------------------------------------------------------------------------
ea1d030600 | Enne Walker | 2010-02-15 03:14:31 -0600

Revert "Add a tooltip for the inventory/spell tabs."
This reverts commit 8d42d33ae0001705105cb29a61bc0b10bde1647d.
(cherry picked from commit 69ba9b76d49b2354c5e5952716de87d13a7d868b)

--------------------------------------------------------------------------------
927646f01b | Enne Walker | 2010-02-15 03:14:16 -0600

Revert "Tiles: Whenever switching tabs, name the new mode in the text tag."
This reverts commit 297b3808c12ba887cc5fcd092527bb5d8ffbb3a7, except for
the changelog update.
(cherry picked from commit 7a749a5d8a5cee34d155e213bded65f2fcedbb39)

--------------------------------------------------------------------------------
baebe934c8 | Enne Walker | 2010-02-15 03:14:06 -0600

Better error messages for tile tabs.
When spells can't be cast or memorised, display a better reason why.
Also, add more cases where spells can't be cast or memorised.
(cherry picked from commit e44edcb9f69e4aef34439df32f4cac768c57bd9e)

--------------------------------------------------------------------------------
5b5a6d839e | Jude Brown | 2010-02-15 03:13:51 -0600

Fix TGW's Kiku altar.
Still not functioning completely as intended, in that there is no delay
from the human's death to its rising (may come!), but the zombie will
always rise. Unless, of course, the human doesn't actually die, which is
itself intended to very rarely occur.
(cherry picked from commit e1841a9c5b0199110259770cea97aea492e25338)

--------------------------------------------------------------------------------
c31d19c553 | Adam Borowski | 2010-02-15 03:12:31 -0600

Remove references to Divinations from the manual (MarvinPA) (cherry picked from 
commit 5aac0e8c30b7c6a5a0851abe6dc9c7cec2881117)

--------------------------------------------------------------------------------
0af979f856 | Nathaniel Rook | 2010-02-15 03:11:43 -0600

Don't let player ghosts get bonus hp from berserking or transformations. 
(cherry picked from commit 7f45921f4e8aaafd1d42c45fa97c95ed4e0365a1)

--------------------------------------------------------------------------------
3232ae77f7 | Jude Brown | 2010-02-15 03:11:26 -0600

Move Troves into their own namespace, weight maps based on skills. (cherry 
picked from commit e0de975c4015d082e430cd882661fc20c2b7b8dc)

--------------------------------------------------------------------------------
2ede5c1c10 | Jude Brown | 2010-02-15 03:10:51 -0600

Fix Troves stealing all you gold when you can't afford them (adrock).
A hold-over from previous code involving vetoing of the level change in
combination with a lack of a check to see if the player has enough gold
meant that any attempt to enter the trove by paying the full amount
would:

 1. take needed off you.gold(), regardless of whether or not needed <
    you.gold()
 2. then veto the level change by saying "you only have 0 gold".
(cherry picked from commit 720f1fa8f2fa90dcf2ac3430bf94087078de7f94)

--------------------------------------------------------------------------------
c703162f16 | Jude Brown | 2010-02-15 03:10:31 -0600

Fix Troves asking for "a healing" (clouded).
This was caused by wand requests not properly setting the item
base_type: item.base_type = wand != item.base_type = "wand".
(cherry picked from commit 26e834ebc8bb22315ac0d06705d113c59c354429)

--------------------------------------------------------------------------------
e48c7fd905 | Johanna Ploog | 2010-02-15 03:09:51 -0600

Add a new canned_msg for "You don't know any spells." (cherry picked from 
commit 78021c021fcca48d7d08b73ff796860d248a9384)

--------------------------------------------------------------------------------
04479e72bd | Jude Brown | 2010-02-15 18:03:16 +1000

Clean up monster death effects, elven twin death effects, mon-death.cc.
This commit moves the monster "death effects" (primarily for uniques)
out of mon-stuff.cc, and into mon-death.cc. This includes Kirke's
hogs_to_humans(), Pikel's band neutralisation, and Dowan and Duvessa's
death effects.

Introduce some new functions which should condense checks to
monster->type and monster->propes["original_name"]: mons_is_dowan,
mons_is_duvessa, mons_is_pikel, mons_is_kirke. This means that death
effects should trigger and affect monsters even through multiple
polymorphs.

It also with #797, pacification effects: pacifying one pacifies the
other, and experience and piety gain for Elyvilon are similar. This
should work for all forms of pacification (but not necessarily all forms
of neutrality). Attacking one of them while pacified will cause both of
them to turn hostile.

Finally, this commit introduces code and flavour speech for instances
where one of them accidentally kills the other (enslavement wands,
frenzy needles).

Still need to be looked at: turning hostile if friendly when killing a
twin, both confused when dying (#459), and stabbing when neutral
(doens't give a chance for the behaviour code to trigger).

--------------------------------------------------------------------------------
09f666ae7a | Jude Brown | 2010-02-15 13:36:37 +1000

Do #550, "runed" appears when cycling ammunition.
For ammunition that haven't had their pluses identified, and who have
the "runed" cosmetic flag, that are being displayed in terse mode with
DESC_INVENTORY style descriptions, they will appear as:

 Qv: k) 22 darts (runed) {god gift}

When identified, they'll appear as:

 Qv: k) 22 +3 darts (disperse) {god gift}

This should hopefully only affect the quiver screen. I haven't seen any
other instances of terse DESC_INVENTORY being used, but obviously these
would be affected.

--------------------------------------------------------------------------------
3496628683 | Jude Brown | 2010-02-15 13:36:36 +1000

Fix #810, runed ammunition not showing up as such.
Hopefully this resolves that issue.

--------------------------------------------------------------------------------
d78d8ba2d6 | Enne Walker | 2010-02-14 22:17:08 -0500

More invalid cases for spell/memorise tile tabs.

--------------------------------------------------------------------------------
e370a90e46 | Enne Walker | 2010-02-14 22:14:51 -0500

Revert spellcasting logic change.
e44edcb9 switched the order of logic when casting teleport spells.  That
change would have allowed teleport spells to be cast when they shouldn't
have been able to.  This goes back to the previous behavior.

--------------------------------------------------------------------------------
05e7cb035b | Enne Walker | 2010-02-14 21:39:40 -0500

Generalize tab activation and tip text.
These are now virtual functions so that TabbedRegion can remain agnostic
of what regions it contains.

--------------------------------------------------------------------------------
940c3c2e79 | Enne Walker | 2010-02-14 21:39:40 -0500

Cleaner implementation of tab names.
TabbedRegion is now a GridRegion, so it can draw some text more
elegantly.  Each GridRegion-derived class now owns its own name, so that
the TabbedRegion can draw it when the mouse is over a given tab.

--------------------------------------------------------------------------------
69ba9b76d4 | Enne Walker | 2010-02-14 21:39:40 -0500

Revert "Add a tooltip for the inventory/spell tabs."
This reverts commit 8d42d33ae0001705105cb29a61bc0b10bde1647d.

--------------------------------------------------------------------------------
7a749a5d8a | Enne Walker | 2010-02-14 21:37:00 -0500

Revert "Tiles: Whenever switching tabs, name the new mode in the text tag."
This reverts commit 297b3808c12ba887cc5fcd092527bb5d8ffbb3a7, except for
the changelog update.

--------------------------------------------------------------------------------
e44edcb9f6 | Enne Walker | 2010-02-14 21:37:00 -0500

Better error messages for tile tabs.
When spells can't be cast or memorised, display a better reason why.
Also, add more cases where spells can't be cast or memorised.

--------------------------------------------------------------------------------
e1841a9c5b | Jude Brown | 2010-02-15 12:30:09 +1000

Fix TGW's Kiku altar.
Still not functioning completely as intended, in that there is no delay
from the human's death to its rising (may come!), but the zombie will
always rise. Unless, of course, the human doesn't actually die, which is
itself intended to very rarely occur.

--------------------------------------------------------------------------------
d196a1635e | Enne Walker | 2010-02-14 19:14:07 -0600

Undelete label tiles for tabs.
This reverts part of b560b7514316308050039e220c76e1225948bfe1.
(cherry picked from commit 023020558ad954c5c42ecd4bba5ca6dcce8676c6)

--------------------------------------------------------------------------------
5d2411b8d2 | Johanna Ploog | 2010-02-14 19:12:45 -0600

Rename new gui tiles. Move unused ones into UNUSED/gui/. (cherry picked from 
commit b560b7514316308050039e220c76e1225948bfe1)

--------------------------------------------------------------------------------
0ca7cc577c | Johanna Ploog | 2010-02-14 19:12:36 -0600

Always show 21 cells in the Tiles' spell display. (22 with Amnesia.)
This should make it more obvious that the number of spell slots is
limited and how many more spells you'll be able to fit.

Also print a special message when switching tabs and the new display
is empty, for items and spells. (Memorise being handled elsewhere.)
(cherry picked from commit 5d55bfa42f2b181e25d92b5b825d7816734eb844)

--------------------------------------------------------------------------------
af4a72b0cd | Johanna Ploog | 2010-02-14 19:12:26 -0600

Add a tooltip for the inventory/spell tabs. (cherry picked from commit 
8d42d33ae0001705105cb29a61bc0b10bde1647d)

--------------------------------------------------------------------------------
17c52928da | Johanna Ploog | 2010-02-14 19:11:14 -0600

Update documentation on Tiles spells display. (cherry picked from commit 
5cb2836939bb4ae542e79fc9ddf276bc2d14746f)

--------------------------------------------------------------------------------
daa126f379 | Johanna Ploog | 2010-02-14 19:11:05 -0600

Tiles: Whenever switching tabs, name the new mode in the text tag. (cherry 
picked from commit 297b3808c12ba887cc5fcd092527bb5d8ffbb3a7)

--------------------------------------------------------------------------------
7eedcbba17 | Johanna Ploog | 2010-02-14 19:10:19 -0600

Tiles: Add new tab tiles and icons.
I've renamed the old ones but left them in the gui/ folder for now.
Once we've decided which ones to keep we should push the others into
the UNUSED/ folder.
(cherry picked from commit 51221081e747f5090c1907f57c09360ec151fb9f)

--------------------------------------------------------------------------------
e870ef8c8e | Enne Walker | 2010-02-14 19:06:12 -0600

Add visual tabs to switch tiles inventory pane.
This adds horizontal tabs to the side of the inventory pane to switch
between items, spells, and memorisation.  InventoryRegion has been
refactored into GridRegion (base class) and split into SpellRegion and
MemoriseRegion, rather than having all of the pesky explicit branching
logic.

I'm not amazingly happy with the tab graphics, but I think they're
workable.
(cherry picked from commit 06e43b85bf23c624001a592a5ae3a47ced07138f)

--------------------------------------------------------------------------------
023020558a | Enne Walker | 2010-02-14 19:58:18 -0500

Undelete label tiles for tabs.
This reverts part of b560b7514316308050039e220c76e1225948bfe1.

--------------------------------------------------------------------------------
5aac0e8c30 | Adam Borowski | 2010-02-15 01:24:47 +0100

Remove references to Divinations from the manual (MarvinPA)

--------------------------------------------------------------------------------
7f45921f4e | Nathaniel Rook | 2010-02-15 01:24:47 +0100

Don't let player ghosts get bonus hp from berserking or transformations.

--------------------------------------------------------------------------------
e0de975c40 | Jude Brown | 2010-02-15 10:20:57 +1000

Move Troves into their own namespace, weight maps based on skills.

--------------------------------------------------------------------------------
720f1fa8f2 | Jude Brown | 2010-02-15 09:30:36 +1000

Fix Troves stealing all you gold when you can't afford them (adrock).
A hold-over from previous code involving vetoing of the level change in
combination with a lack of a check to see if the player has enough gold
meant that any attempt to enter the trove by paying the full amount
would:

 1. take needed off you.gold(), regardless of whether or not needed <
    you.gold()
 2. then veto the level change by saying "you only have 0 gold".

--------------------------------------------------------------------------------
26e834ebc8 | Jude Brown | 2010-02-15 09:30:35 +1000

Fix Troves asking for "a healing" (clouded).
This was caused by wand requests not properly setting the item
base_type: item.base_type = wand != item.base_type = "wand".

--------------------------------------------------------------------------------
78021c021f | Johanna Ploog | 2010-02-15 00:26:54 +0100

Add a new canned_msg for "You don't know any spells."

--------------------------------------------------------------------------------
b560b75143 | Johanna Ploog | 2010-02-14 23:41:55 +0100

Rename new gui tiles. Move unused ones into UNUSED/gui/.

--------------------------------------------------------------------------------
5d55bfa42f | Johanna Ploog | 2010-02-14 23:37:33 +0100

Always show 21 cells in the Tiles' spell display. (22 with Amnesia.)
This should make it more obvious that the number of spell slots is
limited and how many more spells you'll be able to fit.

Also print a special message when switching tabs and the new display
is empty, for items and spells. (Memorise being handled elsewhere.)

--------------------------------------------------------------------------------
8d42d33ae0 | Johanna Ploog | 2010-02-14 23:37:33 +0100

Add a tooltip for the inventory/spell tabs.

--------------------------------------------------------------------------------
3603f74f64 | Darshan Shaligram | 2010-02-14 16:23:12 -0600

Add more rock cover in Shoals, use stone outcrops only for very high points. 
(cherry picked from commit ab623a956f97164bb327eb5d16a4b5501ea49016)

--------------------------------------------------------------------------------
880c3174de | Darshan Shaligram | 2010-02-14 16:21:37 -0600

Shoals tide should be applied after postprocessing vault heights, not during 
initial generation (oops). (cherry picked from commit 
66118df7881b8ea5b23db3113b2e9476c061ad45)

--------------------------------------------------------------------------------
df6d07ca5d | Eino Keskitalo | 2010-02-14 16:20:57 -0600

Make only Zin, not silver care about worship of chaotic gods.
Also move the check of real spellcasters with chaotic spells to is_unclean() 
for Zin appreciation purposes.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 775eed2a23a43d572e05d0c1521223751b7fc317)

--------------------------------------------------------------------------------
4c01668393 | Jude Brown | 2010-02-14 16:00:50 -0600

Hopefully fix religion in speech, remove "evil god" prefix.
The "evil god" prefix was causing issues in that it was overlapping the
"Beogh" prefix, among others. It doesn't appear to have ever been used,
so hopefully this doesn't cause other issues.

For some reason, I can't get Roka's related but non-believing speech
(There can only be one messiah, etc) to ever show up, before and after
this commit. I'm not sure if this is just because it's so rare, or
whether I've actually broken something.
(cherry picked from commit 153b7305df8d8361dcf0ae087ec66552187ef467)

--------------------------------------------------------------------------------
3073864a62 | Jude Brown | 2010-02-14 15:55:42 -0600

Unique flavour enhancement, step four: Frederick, speech, description. (cherry 
picked from commit b28f9fb0d357715ef101e4654d902dddd3550305)

--------------------------------------------------------------------------------
8e11dbb5de | Eino Keskitalo | 2010-02-14 15:50:40 -0600

Tweak the silver description once more.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit e837c552694d401e0abce96b2a74aa4977897641)

--------------------------------------------------------------------------------
f46526b1b6 | Jesse Luehrs | 2010-02-14 15:50:00 -0600

make unseen branches entirely darkgrey (dpeg) (cherry picked from commit 
172f3626602ba715a77380c28ca80eddd970044d)

--------------------------------------------------------------------------------
aec5fe0183 | Eino Keskitalo | 2010-02-14 15:49:38 -0600

Only make silver hurt corporeal undead.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit c3d7fa73a2bab4e0165fbcea96eedcd0ae869f1f)

--------------------------------------------------------------------------------
40846a7e50 | Eino Keskitalo | 2010-02-14 15:49:20 -0600

Refactor mons_is_insubstantial into actor::is_insubstantial.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 26490d6e2e62c4f65f48ef95df73cd133fb2d1ed)

--------------------------------------------------------------------------------
4e4437e31f | Charles Otto | 2010-02-14 16:41:12 -0500

Tweak the search method used by growth
Count the player's position as blocked, also simplify the check for
stationary monsters.

--------------------------------------------------------------------------------
5fc223fd02 | Charles Otto | 2010-02-14 16:40:58 -0500

Display priority numbers for Fedhas' growth in tiles
Add tiles to use as numerical overlays to indicate the priority given
to squares adjacent to the player by Fedhas' growth ability.

--------------------------------------------------------------------------------
2f555fb541 | Charles Otto | 2010-02-14 16:40:48 -0500

Add a visualization of the order growth places plants in
At the "How many plants?" prompt draw numbers (1-max plants) around the
player indicating the order growth will place plants in. Not entirely
sure this is a good idea, also it only works for the console version.

--------------------------------------------------------------------------------
5cb2836939 | Johanna Ploog | 2010-02-14 21:03:15 +0100

Update documentation on Tiles spells display.

--------------------------------------------------------------------------------
297b3808c1 | Johanna Ploog | 2010-02-14 21:03:14 +0100

Tiles: Whenever switching tabs, name the new mode in the text tag.

--------------------------------------------------------------------------------
ab623a956f | Darshan Shaligram | 2010-02-14 19:55:55 +0530

Add more rock cover in Shoals, use stone outcrops only for very high points.

--------------------------------------------------------------------------------
66118df788 | Darshan Shaligram | 2010-02-14 19:55:55 +0530

Shoals tide should be applied after postprocessing vault heights, not during 
initial generation (oops).

--------------------------------------------------------------------------------
51221081e7 | Johanna Ploog | 2010-02-14 15:26:56 +0100

Tiles: Add new tab tiles and icons.
I've renamed the old ones but left them in the gui/ folder for now.
Once we've decided which ones to keep we should push the others into
the UNUSED/ folder.

--------------------------------------------------------------------------------
775eed2a23 | Eino Keskitalo | 2010-02-14 15:38:29 +0200

Make only Zin, not silver care about worship of chaotic gods.
Also move the check of real spellcasters with chaotic spells to is_unclean() 
for Zin appreciation purposes.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
153b7305df | Jude Brown | 2010-02-14 23:05:27 +1000

Hopefully fix religion in speech, remove "evil god" prefix.
The "evil god" prefix was causing issues in that it was overlapping the
"Beogh" prefix, among others. It doesn't appear to have ever been used,
so hopefully this doesn't cause other issues.

For some reason, I can't get Roka's related but non-believing speech
(There can only be one messiah, etc) to ever show up, before and after
this commit. I'm not sure if this is just because it's so rare, or
whether I've actually broken something.

--------------------------------------------------------------------------------
b28f9fb0d3 | Jude Brown | 2010-02-14 23:05:24 +1000

Unique flavour enhancement, step four: Frederick, speech, description.

--------------------------------------------------------------------------------
e837c55269 | Eino Keskitalo | 2010-02-14 14:53:54 +0200

Tweak the silver description once more.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
7342b59d93 | Eino Keskitalo | 2010-02-14 06:16:12 -0600

Update silver ammo description.
Remove demons mention, add mutations and shapechangers.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 4b05dea07b75f8bdd83b1ea920b4ca1c57c88067)

--------------------------------------------------------------------------------
172f362660 | Jesse Luehrs | 2010-02-14 06:11:51 -0600

make unseen branches entirely darkgrey (dpeg)

--------------------------------------------------------------------------------
7d49c69c57 | Darshan Shaligram | 2010-02-14 17:30:08 +0530

Fix signed-unsigned comparison warning (l_mons.cc)

--------------------------------------------------------------------------------
c3d7fa73a2 | Eino Keskitalo | 2010-02-14 13:55:21 +0200

Only make silver hurt corporeal undead.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
26490d6e2e | Eino Keskitalo | 2010-02-14 13:55:20 +0200

Refactor mons_is_insubstantial into actor::is_insubstantial.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4b05dea07b | Eino Keskitalo | 2010-02-14 13:55:19 +0200

Update silver ammo description.
Remove demons mention, add mutations and shapechangers.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1cb9f10b20 | Jesse Luehrs | 2010-02-14 05:27:53 -0600

remove changelog entries for items that didn't make the feature freeze (cherry 
picked from commit d1e00dccf694ce764dca45464feed7c40011f6a2)

--------------------------------------------------------------------------------
d1e00dccf6 | Jesse Luehrs | 2010-02-14 05:26:57 -0600

remove changelog entries for items that didn't make the feature freeze

--------------------------------------------------------------------------------
96bffcc33d | Stefan O'Rear | 2010-02-14 04:56:50 -0600

Remove vampiricism hunger-over-time (long overdue) (cherry picked from commit 
22598e4a0d5c1b54015abbffe03d2abe094d83b7)

--------------------------------------------------------------------------------
9555661f35 | Jude Brown | 2010-02-14 04:55:40 -0600

Goodbye, ancient comment. (cherry picked from commit 
9c7ed0fc581b95a8710d87f229793ae6f33dc6eb)

--------------------------------------------------------------------------------
194cbd09c3 | Stefan O'Rear | 2010-02-14 04:55:25 -0600

Give a warning when invisible hostile vapours are summoned (MarvinPA) (cherry 
picked from commit 960a6a4f164c2d4cda84f2ec8f8ca9f9cd85b89b)

--------------------------------------------------------------------------------
9995696863 | Jared Tinney (Twinge) | 2010-02-14 04:53:07 -0600

Changelog fixes and additions. (cherry picked from commit 
91d6decf4736921ba5170b52518ad66547585faf)

--------------------------------------------------------------------------------
cbac0b0a07 | Stefan O'Rear | 2010-02-14 04:51:25 -0600

Randart launchers shouldn't get evasion (kats) (cherry picked from commit 
c20834da092d30674eb558a51dee459dc4611b4a)

--------------------------------------------------------------------------------
a7050b9418 | Jude Brown | 2010-02-14 04:47:33 -0600

Fix troves working with pluses, rings with pluses, wands.
Instead of accepting an item that has higher pluses than the wanted
item, just because it's first in the inventory, store all the items and
find either the one that matches, or the one with the least pluses.

Rings of protection, evasion, intelligence, strength, dexterity and
slaying should now function properly with troves, not that they will
necessarily be picked.

Wands should now function properly. It will accept a wand with more
charges than stipulated, but will try and take the one closest to that
is equal to or more than the charges stipulated.
(cherry picked from commit 6670d8fe10f668e4ba5e5a82aa104a4746772ebc)

--------------------------------------------------------------------------------
e4e9e28737 | Enne Walker | 2010-02-14 04:46:41 -0600

Adding tile for silenced grid positions. (cherry picked from commit 
77298ededc2a5990a3a86ef36544d903f3072e53)

--------------------------------------------------------------------------------
22d6ab425f | Enne Walker | 2010-02-14 04:46:34 -0600

[744] Add tiles for runed missiles (LoginError). (cherry picked from commit 
ae1bc0b98fa3da95c62810303ffd337d96ed9d40)

--------------------------------------------------------------------------------
f873a9c38d | Enne Walker | 2010-02-14 04:37:31 -0600

Changed branded ammo to runed, not glowing.
I personally prefer this, but it fits better with the new tiles too.
(cherry picked from commit 512abd6aebb73ec2739b2dad60466b9afdb07287)

--------------------------------------------------------------------------------
92c300511a | Enne Walker | 2010-02-14 04:37:17 -0600

Fix branded missiles not getting cosmetic flags.
Even if the brand is obvious, it still seems like they should be visually
interesting.
(cherry picked from commit 2b89220afc666a5783ec7f0ce8c1e40163b47c66)

--------------------------------------------------------------------------------
207c33a400 | Enne Walker | 2010-02-14 04:36:58 -0600

Wiz-created items now get cosmetic flags. (cherry picked from commit 
b8af6f580897d5c67589942429cdadf6ffbf8465)

--------------------------------------------------------------------------------
8170a33bac | Charles Otto | 2010-02-14 04:36:26 -0600

Add an LOS check to Fedhas' shoot through message (cherry picked from commit 
e24552658f443e0c88f535da381814e6c3385880)

--------------------------------------------------------------------------------
d38e2c289d | Charles Otto | 2010-02-14 04:35:52 -0600

Let monsters use special abilities out of sight.
Let monsters use their special abilities if they are out of the
player's LOS but in LOS of their (non-player) target. I believe this is
consistent with how spells are currently handled.
(cherry picked from commit aae599a17553b4081ea468fcc8715ebed37868ca)

--------------------------------------------------------------------------------
0dd88ee4b5 | David Lawrence Ramsey | 2010-02-14 04:35:11 -0600

Fix compilation. (cherry picked from commit 
1d0c00d6f71a7512da5ee08bd5bc6fabab8e4edd)

--------------------------------------------------------------------------------
0344abe3a8 | Charles Otto | 2010-02-14 04:34:58 -0600

Make oklob plants chance to use acid spit a function of their HD
The chance of using acid spit is now HD/30. Normally generated oklob
plants have 10 HD so they have the same 1/3 chance to spit they always
had. Oklob plants created by evolution get bonus HD, and therefore are
more likely to use acid spit (currently a 100% chance at 20 invocations
skill).
(cherry picked from commit a17e0641affa3da1b6e6edc0b8b55af20c1b1d59)

--------------------------------------------------------------------------------
789768516b | Charles Otto | 2010-02-14 04:34:31 -0600

Give targets of evolution bonus HD proportional to invocations
Give plants improved by evolution bonus HD proportional to the user's
invocations skill.
(cherry picked from commit ebe7f1570a77a7503e2b7ecb3743a356b17606be)

--------------------------------------------------------------------------------
879371d0f2 | Charles Otto | 2010-02-14 04:34:04 -0600

Rephrase the 'Fedhas likes decomposition' line in ^! (cherry picked from commit 
41ce1ce9fd5d24c1c17059736c9f0ce01e9ecabd)

--------------------------------------------------------------------------------
766851dc98 | Charles Otto | 2010-02-14 04:33:47 -0600

Fedhas religion screen changes
Put walk through and shoot through on one line in ^. Add a line to the
bottom of ^ about evolution's variable cost when the player gets that
ability.
(cherry picked from commit b9cf3c01b6651bccd67fb8a88dbacf073030bdf5)

--------------------------------------------------------------------------------
aa9a16ea9d | David Ploog | 2010-02-14 04:32:26 -0600

Changing changelog.
I would like to encourage every developer to have a look at the
changelog. And I still have the feeling that some changes aren't
listed.
(cherry picked from commit 96a8478940f38c599133af33746b1dd01945cfb2)

--------------------------------------------------------------------------------
fcebc56323 | Charles Otto | 2010-02-14 04:18:54 -0600

Actually remove mold via dngn_terrain_changed when appropriate
Tides now actually remove mold.
(cherry picked from commit 3356754a84c20de4f379863148d9d1533b2954a8)

--------------------------------------------------------------------------------
0c66747a6d | Charles Otto | 2010-02-14 04:16:22 -0600

Use a placeholder tile for mold (cherry picked from commit 
a2ff67be3ce8842e58878e2fee553325214a3964)

--------------------------------------------------------------------------------
6376133332 | Robert Vollmert | 2010-02-14 04:15:48 -0600

Escape < in portal prompt.
mpr now consistently takes tagged strings.

Fixes issue #605.
(cherry picked from commit 092f2b1672334de784e65e895526f214e27597a6)

--------------------------------------------------------------------------------
edfa8570d9 | Robert Vollmert | 2010-02-14 04:15:09 -0600

Wrap overly long line. (cherry picked from commit 
7ab088953201f8b38fdb63258f435f97ab1df875)

--------------------------------------------------------------------------------
723700bc1d | Robert Vollmert | 2010-02-14 04:14:58 -0600

Simplify (and fix) visibility check. (cherry picked from commit 
ccde6c0ef38055e3cdb60831184f847e48ef9a70)

--------------------------------------------------------------------------------
9c7ed0fc58 | Jude Brown | 2010-02-14 19:29:42 +1000

Goodbye, ancient comment.

--------------------------------------------------------------------------------
960a6a4f16 | Stefan O'Rear | 2010-02-14 01:05:03 -0800

Give a warning when invisible hostile vapours are summoned (MarvinPA)

--------------------------------------------------------------------------------
88535307df | Stefan O'Rear | 2010-02-14 00:54:38 -0800

Remove noncanonical spacing

--------------------------------------------------------------------------------
91d6decf47 | Jared Tinney (Twinge) | 2010-02-14 00:52:42 -0800

Changelog fixes and additions.

--------------------------------------------------------------------------------
960b850f21 | Jared Tinney (Twinge) | 2010-02-14 00:52:41 -0800

Bone Shards Damage Buff

--------------------------------------------------------------------------------
57b52a6f99 | Jared Tinney (Twinge) | 2010-02-14 00:52:41 -0800

Skeleton Depth Fix & D:2 OOD Reduction

--------------------------------------------------------------------------------
c56f544e16 | Jared Tinney (Twinge) | 2010-02-14 00:52:40 -0800

mon-gear Cleanup & new Joseph - now uses slings with enchanted ammo (due)

--------------------------------------------------------------------------------
c20834da09 | Stefan O'Rear | 2010-02-14 00:41:31 -0800

Randart launchers shouldn't get evasion (kats)

--------------------------------------------------------------------------------
22598e4a0d | Stefan O'Rear | 2010-02-14 00:41:31 -0800

Remove vampiricism hunger-over-time (long overdue)

--------------------------------------------------------------------------------
000fc428ef | Jude Brown | 2010-02-14 18:18:17 +1000

dgn.cloud_at wrapper for TGW.
Returns cloud name (using suitable cloud overrides) or "none" for no
cloud.

--------------------------------------------------------------------------------
6670d8fe10 | Jude Brown | 2010-02-14 16:43:01 +1000

Fix troves working with pluses, rings with pluses, wands.
Instead of accepting an item that has higher pluses than the wanted
item, just because it's first in the inventory, store all the items and
find either the one that matches, or the one with the least pluses.

Rings of protection, evasion, intelligence, strength, dexterity and
slaying should now function properly with troves, not that they will
necessarily be picked.

Wands should now function properly. It will accept a wand with more
charges than stipulated, but will try and take the one closest to that
is equal to or more than the charges stipulated.

--------------------------------------------------------------------------------
77298ededc | Enne Walker | 2010-02-13 22:26:02 -0500

Adding tile for silenced grid positions.

--------------------------------------------------------------------------------
ae1bc0b98f | Enne Walker | 2010-02-13 22:26:02 -0500

[744] Add tiles for runed missiles (LoginError).

--------------------------------------------------------------------------------
512abd6aeb | Enne Walker | 2010-02-13 22:25:33 -0500

Changed branded ammo to runed, not glowing.
I personally prefer this, but it fits better with the new tiles too.

--------------------------------------------------------------------------------
2b89220afc | Enne Walker | 2010-02-13 22:08:50 -0500

Fix branded missiles not getting cosmetic flags.
Even if the brand is obvious, it still seems like they should be visually
interesting.

--------------------------------------------------------------------------------
b8af6f5808 | Enne Walker | 2010-02-13 22:08:50 -0500

Wiz-created items now get cosmetic flags.

--------------------------------------------------------------------------------
e24552658f | Charles Otto | 2010-02-13 20:41:49 -0500

Add an LOS check to Fedhas' shoot through message

--------------------------------------------------------------------------------
aae599a175 | Charles Otto | 2010-02-13 20:41:10 -0500

Let monsters use special abilities out of sight.
Let monsters use their special abilities if they are out of the
player's LOS but in LOS of their (non-player) target. I believe this is
consistent with how spells are currently handled.

--------------------------------------------------------------------------------
1d0c00d6f7 | David Lawrence Ramsey | 2010-02-13 17:57:18 -0600

Fix compilation.

--------------------------------------------------------------------------------
a17e0641af | Charles Otto | 2010-02-13 18:52:20 -0500

Make oklob plants chance to use acid spit a function of their HD
The chance of using acid spit is now HD/30. Normally generated oklob
plants have 10 HD so they have the same 1/3 chance to spit they always
had. Oklob plants created by evolution get bonus HD, and therefore are
more likely to use acid spit (currently a 100% chance at 20 invocations
skill).

--------------------------------------------------------------------------------
ebe7f1570a | Charles Otto | 2010-02-13 18:44:15 -0500

Give targets of evolution bonus HD proportional to invocations
Give plants improved by evolution bonus HD proportional to the user's
invocations skill.

--------------------------------------------------------------------------------
41ce1ce9fd | Charles Otto | 2010-02-13 18:22:24 -0500

Rephrase the 'Fedhas likes decomposition' line in ^!

--------------------------------------------------------------------------------
b9cf3c01b6 | Charles Otto | 2010-02-13 18:16:53 -0500

Fedhas religion screen changes
Put walk through and shoot through on one line in ^. Add a line to the
bottom of ^ about evolution's variable cost when the player gets that
ability.

--------------------------------------------------------------------------------
96a8478940 | David Ploog | 2010-02-13 21:11:24 +0100

Changing changelog.
I would like to encourage every developer to have a look at the
changelog. And I still have the feeling that some changes aren't
listed.

--------------------------------------------------------------------------------
3356754a84 | Charles Otto | 2010-02-13 14:57:42 -0500

Actually remove mold via dngn_terrain_changed when appropriate
Tides now actually remove mold.

--------------------------------------------------------------------------------
a2ff67be3c | Charles Otto | 2010-02-13 14:57:24 -0500

Use a placeholder tile for mold

--------------------------------------------------------------------------------
092f2b1672 | Robert Vollmert | 2010-02-13 18:39:38 +0100

Escape < in portal prompt.
mpr now consistently takes tagged strings.

Fixes issue #605.

--------------------------------------------------------------------------------
5d84dcd71e | Robert Vollmert | 2010-02-13 16:35:17 +0100

Extend lua monster wrapper for debug purposes.
Can now read:
  mon.beh
  mon.energy

Read and write:
  mon.targetx
  mon.targety

Call:
  mon.add_energy

--------------------------------------------------------------------------------
b57fd26f68 | Robert Vollmert | 2010-02-13 16:35:17 +0100

handle_monster_move lua debug wrapper.

--------------------------------------------------------------------------------
715d59a0cf | Robert Vollmert | 2010-02-13 16:35:17 +0100

Make MonsterWrap and friends accessible to other files.

--------------------------------------------------------------------------------
90a0556355 | Robert Vollmert | 2010-02-13 16:35:16 +0100

Export handle_monster_move for debug access.

--------------------------------------------------------------------------------
7ab0889532 | Robert Vollmert | 2010-02-13 16:35:16 +0100

Wrap overly long line.

--------------------------------------------------------------------------------
ccde6c0ef3 | Robert Vollmert | 2010-02-13 16:35:15 +0100

Simplify (and fix) visibility check.

--------------------------------------------------------------------------------
e9c0ff975b | David Ploog | 2010-02-13 08:56:30 -0600

Make some altar vaults no_monster_gen (Brendan). (cherry picked from commit 
9fbb23bf4c3fefd019e3b698fc37fe379bd610ef)

--------------------------------------------------------------------------------
e9a15fb71b | David Ploog | 2010-02-13 08:56:09 -0600

Add quantities for potions, scrolls in Trove quests. (cherry picked from commit 
bd07f772d604a1b26e16c424ff5d0dc39696c1fa)

--------------------------------------------------------------------------------
a2bf7cd5f4 | Darshan Shaligram | 2010-02-13 08:54:27 -0600

[723] Fix crash when noise of beam hitting kraken tentacles activates 
behaviour_event and makes the kraken flee, 'killing' the tentacle before the 
beam code tries to damage it. (cherry picked from commit 
d6a17bc256d9541c1477fbc273e21410a8f3de41)

--------------------------------------------------------------------------------
0f8f8bb743 | Darshan Shaligram | 2010-02-13 08:53:58 -0600

[723] Fix crashes when fighting kraken by attacking tentacles in melee.
handle_noise when fighting a tentacle could trigger a wounded kraken into 
submerging tentacles, leaving the player attacking a dead monster. The fight 
code now checks that the defender is still around at these points.
(cherry picked from commit 403d2ba96008c572cc5793d4e45b422546209e37)

--------------------------------------------------------------------------------
bc544bf4f3 | Jude Brown | 2010-02-13 08:52:56 -0600

Weight, quantity potions and scrolls for Trove entrance fees.
Weights are temporary, to be adjusted by David at a later date.

Adding a scroll requires adding a sublist with {weight=XXX,
scroll="XXX"}; potions are the same, substituting scroll="XXX" for
potion="XXX".

Quantities can be specified by including quantity=XXX. Example in this
instance is quantity=crawl.random2(5) for identify scrolls. If not
specified, the default for that group of items will be used.
(cherry picked from commit b6a391c73130f48d6e9a1aaa6daf4ab6ccdf130d)

--------------------------------------------------------------------------------
9d1d4a4a34 | Jude Brown | 2010-02-13 08:52:23 -0600

Troves: Report needed item in ^O, xv, once locked. Update description, too.
Troves will no longer have a duration message when locked, as this is
misleading, but will report that the portal is broken and requires the
item to function. The overview will also report the item required to
unlock.
(cherry picked from commit 285625d507169a73afbe1aa9dbf5b2593f0fa12e)

--------------------------------------------------------------------------------
9fbb23bf4c | David Ploog | 2010-02-13 14:23:39 +0100

Make some altar vaults no_monster_gen (Brendan).

--------------------------------------------------------------------------------
bd07f772d6 | David Ploog | 2010-02-13 14:17:26 +0100

Add quantities for potions, scrolls in Trove quests.

--------------------------------------------------------------------------------
571a1e3e4a | David Ploog | 2010-02-13 14:17:26 +0100

Allow potions of magic to come in stacks.

--------------------------------------------------------------------------------
7eb94a0d8a | David Ploog | 2010-02-13 14:17:26 +0100

Make potion of magic less rare.
Weight was 140, now is 340 (like levitation, resistance).
Magic used to be a (broken) potion with strategic use; now it is a tactically
useful potion. It shouldn't be rarer than cure mutation.

--------------------------------------------------------------------------------
d6a17bc256 | Darshan Shaligram | 2010-02-13 18:46:06 +0530

[723] Fix crash when noise of beam hitting kraken tentacles activates 
behaviour_event and makes the kraken flee, 'killing' the tentacle before the 
beam code tries to damage it.

--------------------------------------------------------------------------------
403d2ba960 | Darshan Shaligram | 2010-02-13 18:31:06 +0530

[723] Fix crashes when fighting kraken by attacking tentacles in melee.
handle_noise when fighting a tentacle could trigger a wounded kraken into 
submerging tentacles, leaving the player attacking a dead monster. The fight 
code now checks that the defender is still around at these points.

--------------------------------------------------------------------------------
b6a391c731 | Jude Brown | 2010-02-13 20:42:10 +1000

Weight, quantity potions and scrolls for Trove entrance fees.
Weights are temporary, to be adjusted by David at a later date.

Adding a scroll requires adding a sublist with {weight=XXX,
scroll="XXX"}; potions are the same, substituting scroll="XXX" for
potion="XXX".

Quantities can be specified by including quantity=XXX. Example in this
instance is quantity=crawl.random2(5) for identify scrolls. If not
specified, the default for that group of items will be used.

--------------------------------------------------------------------------------
285625d507 | Jude Brown | 2010-02-13 15:57:07 +1000

Troves: Report needed item in ^O, xv, once locked. Update description, too.
Troves will no longer have a duration message when locked, as this is
misleading, but will report that the portal is broken and requires the
item to function. The overview will also report the item required to
unlock.

--------------------------------------------------------------------------------
3a7aa0cdbf | Jude Brown | 2010-02-12 22:13:26 -0600

Fix #776, missing descriptions for Troves.
For some reason the Trove marker was attempting to overwrite the call to
"feature_description_long", instead of letting the portal descriptor
handle it.
(cherry picked from commit de3f3c68598db9a37c818b3bb5c610d109edcf4c)

--------------------------------------------------------------------------------
75f5dd1782 | Jude Brown | 2010-02-12 22:11:24 -0600

Fix #625: traps hitting twice when leaving ice form.
This was due to move_player_to_grid being called to force the player
to re-enter dangerous terrain (such as water) and cause drowning to
occur; I've now wrapped this block in a grd(you.pos()) == watery
call, so it shouldn't occur with traps, etc.
(cherry picked from commit 6688ea1c53896172961de40c42b7b8badc28b9c5)

--------------------------------------------------------------------------------
de3f3c6859 | Jude Brown | 2010-02-13 14:10:11 +1000

Fix #776, missing descriptions for Troves.
For some reason the Trove marker was attempting to overwrite the call to
"feature_description_long", instead of letting the portal descriptor
handle it.

--------------------------------------------------------------------------------
6688ea1c53 | Jude Brown | 2010-02-13 14:05:43 +1000

Fix #625: traps hitting twice when leaving ice form.
This was due to move_player_to_grid being called to force the player
to re-enter dangerous terrain (such as water) and cause drowning to
occur; I've now wrapped this block in a grd(you.pos()) == watery
call, so it shouldn't occur with traps, etc.

--------------------------------------------------------------------------------
9ed590a72e | Nathaniel Rook | 2010-02-13 13:31:13 +1000

Added four medium-rarity books: the Dragon, Burglary, Dreams, Chemistry.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
e24043ed73 | Jude Brown | 2010-02-12 21:18:47 -0600

Force shallow water for icy Swamp ending, as azure jellies are not amphibious. 
(cherry picked from commit d4f542b85f52d98a8bee2164a8236877c7bc2bd0)

--------------------------------------------------------------------------------
d4f542b85f | Jude Brown | 2010-02-13 12:55:20 +1000

Force shallow water for icy Swamp ending, as azure jellies are not amphibious.

--------------------------------------------------------------------------------
2a1c807780 | Jude Brown | 2010-02-12 20:15:27 -0600

Check can_override for secret door tiles as well.
This prevents secret doors from not clearing when using X^F (#748) and
also prevents information leakage.
(cherry picked from commit b11820d43d996c78983c846d91eb4127ad5e26bb)

--------------------------------------------------------------------------------
44f8ec5358 | Enne Walker | 2010-02-12 20:15:05 -0600

[742] Add silver/steel dart tiles (LoginError). (cherry picked from commit 
905fd9cced7933c0c5a0fdb7426a91237fb90804)

--------------------------------------------------------------------------------
83de2a91fd | Enne Walker | 2010-02-12 20:14:40 -0600

[453] Use Jinhlk's Fedhas altar tile. (cherry picked from commit 
05fa7537b9a8d92e4bcdf385f83cec645cd30bf9)

--------------------------------------------------------------------------------
823b03de70 | Enne Walker | 2010-02-12 20:14:27 -0600

[748] Fix map clearing not affecting overridden tiles.
The override was applying to DNGN_UNSEEN, which it shouldn't have.
(cherry picked from commit 30f11b119665599a912cef988c85b3ee1a55e9c8)

--------------------------------------------------------------------------------
0f6f69f623 | Johanna Ploog | 2010-02-12 20:13:25 -0600

Update rod descriptions now that they don't depend on player mp anymore. 
(cherry picked from commit 3f71ccaa3c7588fd4aae27aa1794007e0e75f4da)

--------------------------------------------------------------------------------
2905bc851c | David Ploog | 2010-02-12 20:13:11 -0600

Add descriptions for Jiyva and abilities. (Shayne) (cherry picked from commit 
e90022d8b4e255ed64dc9fea95c73080e5807cfb)

--------------------------------------------------------------------------------
6e7203d33d | Darshan Shaligram | 2010-02-12 20:12:07 -0600

Fix missing section separator in randname.txt (TGW). (cherry picked from commit 
43bc5f9f90e9e29ac351014f3787e15d345a581d)

--------------------------------------------------------------------------------
27781e4e3e | Darshan Shaligram | 2010-02-12 20:11:56 -0600

Minor corrections to the changelog. (cherry picked from commit 
f212fd4009b7b138d80bb9eec9670a261810a1cd)

--------------------------------------------------------------------------------
301db8cd8a | Darshan Shaligram | 2010-02-12 20:08:52 -0600

Update changelog with description of OOD changes (dpeg). (cherry picked from 
commit a52d37cdc0d046226991ca6aae3b04fb0f0b7efa)

--------------------------------------------------------------------------------
ae6084c997 | Johanna Ploog | 2010-02-12 20:08:21 -0600

If you know Evaporate, list possible clouds in potions' descriptions.
Duplicates switch-case block of cast_evaporate(), but I didn't know how
to handle this differently. In any case, should be useful to those who
(like me) can't remember the different potion -> cloud assignments.

Doesn't handle the probabilities, but then I don't think that's very
important.
(cherry picked from commit 33f9efd020fc610caf8dd8fcee0de17721f17fe6)

--------------------------------------------------------------------------------
d1be06f4e9 | Darshan Shaligram | 2010-02-12 20:05:27 -0600

Shoals tide occasionally washes blood off walls it goes past. (cherry picked 
from commit 8e94cf0a38867540ff95845934ffe430f12c925c)

--------------------------------------------------------------------------------
50defea206 | Eino Keskitalo | 2010-02-12 20:03:50 -0600

Make do_layout respect msg_min_height in the initialization.
This fixes a problem with tile_force_layout. You couldn't raise view_max_height 
over 23 without reducing the message window height to 5. The "5" is now 
replaced with msg_min_height, which is 7 by default.

This in turn makes the message window bigger, when you start Crawl with default 
setup in low resolutions. We figured setups with low resolutions are special 
enough, that we can expect users to configure options themselves. Enne & jpeg, 
agreed?

Screen estate can still be wasted if overlay is used without the force option.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
(cherry picked from commit cd95a4d52522e3bec54d95ec1f25932412e22b54)

--------------------------------------------------------------------------------
03fc7219e8 | Eino Keskitalo | 2010-02-12 20:03:22 -0600

A little more detailed options_guide.txt entry for tile_force_overlay.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>
(cherry picked from commit ac302994d3d53ff8359852487ebbb6fa9e512c5e)

--------------------------------------------------------------------------------
0514c4c8ae | Eino Keskitalo | 2010-02-12 20:02:03 -0600

Add the option tile_force_overlay.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
b11820d43d | Jude Brown | 2010-02-13 11:42:13 +1000

Check can_override for secret door tiles as well.
This prevents secret doors from not clearing when using X^F (#748) and
also prevents information leakage.

--------------------------------------------------------------------------------
905fd9cced | Enne Walker | 2010-02-12 20:40:57 -0500

[742] Add silver/steel dart tiles (LoginError).

--------------------------------------------------------------------------------
05fa7537b9 | Enne Walker | 2010-02-12 20:08:53 -0500

[453] Use Jinhlk's Fedhas altar tile.

--------------------------------------------------------------------------------
30f11b1196 | Enne Walker | 2010-02-12 19:44:40 -0500

[748] Fix map clearing not affecting overridden tiles.
The override was applying to DNGN_UNSEEN, which it shouldn't have.

--------------------------------------------------------------------------------
06e43b85bf | Enne Walker | 2010-02-12 19:17:09 -0500

Add visual tabs to switch tiles inventory pane.
This adds horizontal tabs to the side of the inventory pane to switch
between items, spells, and memorisation.  InventoryRegion has been
refactored into GridRegion (base class) and split into SpellRegion and
MemoriseRegion, rather than having all of the pesky explicit branching
logic.

I'm not amazingly happy with the tab graphics, but I think they're
workable.

--------------------------------------------------------------------------------
3f71ccaa3c | Johanna Ploog | 2010-02-13 01:08:08 +0100

Update rod descriptions now that they don't depend on player mp anymore.

--------------------------------------------------------------------------------
e90022d8b4 | David Ploog | 2010-02-13 00:27:15 +0100

Add descriptions for Jiyva and abilities. (Shayne)

--------------------------------------------------------------------------------
43bc5f9f90 | Darshan Shaligram | 2010-02-13 03:53:06 +0530

Fix missing section separator in randname.txt (TGW).

--------------------------------------------------------------------------------
f212fd4009 | Darshan Shaligram | 2010-02-13 02:53:34 +0530

Minor corrections to the changelog.

--------------------------------------------------------------------------------
a52d37cdc0 | Darshan Shaligram | 2010-02-13 02:34:45 +0530

Update changelog with description of OOD changes (dpeg).

--------------------------------------------------------------------------------
33f9efd020 | Johanna Ploog | 2010-02-12 22:20:26 +0100

If you know Evaporate, list possible clouds in potions' descriptions.
Duplicates switch-case block of cast_evaporate(), but I didn't know how
to handle this differently. In any case, should be useful to those who
(like me) can't remember the different potion -> cloud assignments.

Doesn't handle the probabilities, but then I don't think that's very
important.

--------------------------------------------------------------------------------
8c393f2d81 | Darshan Shaligram | 2010-02-12 14:48:41 -0600

Che monster-player speed delta ignores burden state and the Slow spell. Che 
piety for killing slow monsters is now awarded only if random2(level + 18 - 
you.experience_level / 2) > 5 (matching piety gain from DID_KILL_LIVING for the 
blood gods). (cherry picked from commit 
3e660da7e8b59a0e598f798666b2be0563d6d051)

--------------------------------------------------------------------------------
91c37c441b | Darshan Shaligram | 2010-02-12 14:48:20 -0600

Che gives +1 more piety for DID_KILL_FAST if x_chance_in_y(monster_speed - 
player_speed, 12).
DID_KILL_FAST events thus produce 1 + x_chance_in_y(speed_delta,12) piety.

Removed the anti-farming check in DID_KILL_FAST, since farming in general has 
been discouraged by other means.
(cherry picked from commit 4507799433cbc6e1f2f0518294b3b9dda2ad6ba7)

--------------------------------------------------------------------------------
3e660da7e8 | Darshan Shaligram | 2010-02-13 02:08:30 +0530

Che monster-player speed delta ignores burden state and the Slow spell. Che 
piety for killing slow monsters is now awarded only if random2(level + 18 - 
you.experience_level / 2) > 5 (matching piety gain from DID_KILL_LIVING for the 
blood gods).

--------------------------------------------------------------------------------
654b43c759 | Jesse Luehrs | 2010-02-12 13:34:50 -0600

'useless' and 'evil' are more important to highlight than cursed (cherry picked 
from commit a5a35235e059f3d8f1109691ed2aea1152d72462)

--------------------------------------------------------------------------------
bac20851e5 | Johanna Ploog | 2010-02-12 13:34:33 -0600

Handle cursed item menu colouring before artefactness etc. (cherry picked from 
commit d9a2fd6b8a028c749860a6c3ca34dc52f5252188)

--------------------------------------------------------------------------------
a5a35235e0 | Jesse Luehrs | 2010-02-12 13:33:02 -0600

'useless' and 'evil' are more important to highlight than cursed

--------------------------------------------------------------------------------
46563fc82c | Johanna Ploog | 2010-02-12 13:28:53 -0600

Fix unmemorisable spells not being greyed out in the memorisation screen.
Spells for which you lacked xp or spell levels were still coloured
lightgrey.
(cherry picked from commit 051404305ca6a0bfa5cdbdaf5bc6c47e8fecddb0)

--------------------------------------------------------------------------------
70eeb254d8 | Johanna Ploog | 2010-02-12 13:27:12 -0600

Reorder sections in the wizmode command help.
The two columns' length had gotten really uneven. I moved around some
sections to make them end around the same line again. Also resorted
some commands alphabetically.
(cherry picked from commit b50a7b97b35fb7e73a3733a5d769e38a7595b9df)

--------------------------------------------------------------------------------
312a9d54bd | Johanna Ploog | 2010-02-12 13:26:18 -0600

Update the change log.

--------------------------------------------------------------------------------
051404305c | Johanna Ploog | 2010-02-12 20:22:47 +0100

Fix unmemorisable spells not being greyed out in the memorisation screen.
Spells for which you lacked xp or spell levels were still coloured
lightgrey.

--------------------------------------------------------------------------------
ffbf212013 | Johanna Ploog | 2010-02-12 13:19:21 -0600

Update documentation for the trap_prompt option.
The option isn't used anymore for disarming traps, so the options guide
shouldn't claim it is.
(cherry picked from commit 5f475240507f537033c9e3666d69bdd6b068c6eb)

--------------------------------------------------------------------------------
b1f71a5b75 | Johanna Ploog | 2010-02-12 13:18:03 -0600

Rename option tile_show_demon_numbers => ...demon_tier, and document it.

--------------------------------------------------------------------------------
ff33a6615c | Johanna Ploog | 2010-02-12 13:11:52 -0600

Add &) to the wizmode help. (cherry picked from commit 
aa60de1e40ff545ba730bebe4ae075dbdf76f4e9)

--------------------------------------------------------------------------------
54da6e626a | Johanna Ploog | 2010-02-12 13:11:26 -0600

Update Ice Form description to mention floating in water. (cherry picked from 
commit df72dfd00231bddc37c87b32b4649e4ce0050acb)

--------------------------------------------------------------------------------
0369db9239 | Johanna Ploog | 2010-02-12 13:10:43 -0600

Switch placement of Stealth and Stabbing on the skills screen. (cherry picked 
from commit 8cab862b37c3b43dd722f0d37be83e2868b858ff)

--------------------------------------------------------------------------------
c32b454c6b | Johanna Ploog | 2010-02-12 13:10:26 -0600

Remove crosstraining references from Slings/Throwing skill descriptions. 
(cherry picked from commit c085440a741677db50c625a8147eb2d5ca691cdc)

--------------------------------------------------------------------------------
8ad54642ea | Johanna Ploog | 2010-02-12 13:09:59 -0600

Add a description for the "Bottle Blood" ability. (cherry picked from commit 
3d6bc07d27ca0fbb4292e69c3b915d674a54f549)

--------------------------------------------------------------------------------
feacb65550 | Johanna Ploog | 2010-02-12 13:09:36 -0600

temple.des: Add comments mentioning the number of altars/temple. (cherry picked 
from commit e5c2aee10f0cc200e3697d78d88bd78e94b6ec4a)

--------------------------------------------------------------------------------
b50a7b97b3 | Johanna Ploog | 2010-02-12 20:07:38 +0100

Reorder sections in the wizmode command help.
The two columns' length had gotten really uneven. I moved around some
sections to make them end around the same line again. Also resorted
some commands alphabetically.

--------------------------------------------------------------------------------
cb3eca65a9 | Johanna Ploog | 2010-02-12 19:21:48 +0100

Update the change log.

--------------------------------------------------------------------------------
5f47524050 | Johanna Ploog | 2010-02-12 19:17:23 +0100

Update documentation for the trap_prompt option.
The option isn't used anymore for disarming traps, so the options guide
shouldn't claim it is.

--------------------------------------------------------------------------------
206a4af44a | Johanna Ploog | 2010-02-12 19:17:23 +0100

Rename option tile_show_demon_numbers => ...demon_tier, and document it.

--------------------------------------------------------------------------------
d9a2fd6b8a | Johanna Ploog | 2010-02-12 19:14:27 +0100

Handle cursed item menu colouring before artefactness etc.

--------------------------------------------------------------------------------
aa60de1e40 | Johanna Ploog | 2010-02-12 19:14:27 +0100

Add &) to the wizmode help.

--------------------------------------------------------------------------------
df72dfd002 | Johanna Ploog | 2010-02-12 19:14:27 +0100

Update Ice Form description to mention floating in water.

--------------------------------------------------------------------------------
8cab862b37 | Johanna Ploog | 2010-02-12 19:14:27 +0100

Switch placement of Stealth and Stabbing on the skills screen.

--------------------------------------------------------------------------------
c085440a74 | Johanna Ploog | 2010-02-12 19:14:27 +0100

Remove crosstraining references from Slings/Throwing skill descriptions.

--------------------------------------------------------------------------------
3d6bc07d27 | Johanna Ploog | 2010-02-12 19:14:26 +0100

Add a description for the "Bottle Blood" ability.

--------------------------------------------------------------------------------
e5c2aee10f | Johanna Ploog | 2010-02-12 19:14:26 +0100

temple.des: Add comments mentioning the number of altars/temple.

--------------------------------------------------------------------------------
8e94cf0a38 | Darshan Shaligram | 2010-02-12 22:40:30 +0530

Shoals tide occasionally washes blood off walls it goes past.

--------------------------------------------------------------------------------
5078a88b56 | Jesse Luehrs | 2010-02-12 10:45:02 -0600

disable references to wayne's axes in monspeak for now

--------------------------------------------------------------------------------
2299c973f7 | Adam Borowski | 2010-02-12 10:43:21 -0600

Fix compilation from a clean tree.  Unbreak "make package-source".
(art-data.h is needed for dependency generation)
(cherry picked from commit a27df209d48851fd4fd10ef5b7571f57d1d660e9)

--------------------------------------------------------------------------------
907a2ee4e8 | Darshan Shaligram | 2010-02-12 10:39:12 -0600

Fix permanent stat loss for Che worshippers when transforms cause ponderous 
items to meld (syllogism).
Each melded item is now removed from its equipment slot before applying unwear 
effects, so that che_handle_change sees that the item is unequipped. Once all 
items are melded, equipment slots are restored.

Similarly, when unmelding items, all melded slots are reset to empty and 
restored one at a time just before applying the corresponding rewear effect.
(cherry picked from commit f9a38fc311ee9ae24afc2c10379a4385bffd3b23)

--------------------------------------------------------------------------------
a1cd055552 | Adam Borowski | 2010-02-12 10:37:54 -0600

Wayne's speech, dwarven accent version. (cherry picked from commit 
64de2a8b3e2e82639bff787023083aa66b0183b9)

--------------------------------------------------------------------------------
9c5e105317 | Jude Brown | 2010-02-12 10:34:07 -0600

Cloud, Hellbinder tweaks. (cherry picked from commit 
7ea3daba250f1d4cb7ead7c57ee54e32b345d6bc)

--------------------------------------------------------------------------------
1ecf8d7c68 | Eino Keskitalo | 2010-02-12 10:26:40 -0600

Prettify ice cave entry vaults a bit.
Moved the colouring to the portal setup function; made the floor blue; used 
tiles.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
(cherry picked from commit 017650cd3752d43a26ffc6162af52facecf128c5)

--------------------------------------------------------------------------------
54db9c6d9c | Darshan Shaligram | 2010-02-12 10:25:42 -0600

Fix unique (transparent) vaults being placed without regard to terrain (due). 
(cherry picked from commit b52dc49029c5a02ee7cfd85b6eaa5a5412d8cc80)

--------------------------------------------------------------------------------
b7850a8bcd | Jude Brown | 2010-02-12 10:24:57 -0600

Variations on wall_hall (white and darkgrey), for Zonguldrok. (cherry picked 
from commit fff4b45eabc38b4243212de5ee8b0559a19acbb1)

--------------------------------------------------------------------------------
5b2aa80a41 | Jude Brown | 2010-02-12 10:22:38 -0600

Dead trees for Zonguldrok! (purge)
I've set them as the variation for "darkgrey" trees. This could be
changed in future, but it might help in using them at a later date
(though it doesn't seem to want to work for me at the minute.
(cherry picked from commit 60cb272f4e449182093381bd54e223567760e0ec)

--------------------------------------------------------------------------------
16f94f6f2e | Jude Brown | 2010-02-12 10:22:04 -0600

Fix Tukima. (cherry picked from commit a3a2fa3483a052edff23d62b68bf8c20a93f8bb7)

--------------------------------------------------------------------------------
7af253ebd3 | Jude Brown | 2010-02-12 10:21:26 -0600

"Mirror" wall tile, use on Tukima.
A slightly tweaked version of tile by purge that was based on a tile I
was making that was based on the green crystal tile! This one is
slightly "whiter" and more "crystal clear" than purge's edit, and I'm
still not sure if it's perfect.

It looks pretty neat in-game though, and I'm over-all happy with the
effect. Colour seems roughly equivalent to the "silver" altars.
(cherry picked from commit bfa6aa92a7469c9873d1ec959c1bbaab7ef9f196)

--------------------------------------------------------------------------------
4507799433 | Darshan Shaligram | 2010-02-12 20:56:34 +0530

Che gives +1 more piety for DID_KILL_FAST if x_chance_in_y(monster_speed - 
player_speed, 12).
DID_KILL_FAST events thus produce 1 + x_chance_in_y(speed_delta,12) piety.

Removed the anti-farming check in DID_KILL_FAST, since farming in general has 
been discouraged by other means.

--------------------------------------------------------------------------------
a27df209d4 | Adam Borowski | 2010-02-12 16:18:58 +0100

Fix compilation from a clean tree.  Unbreak "make package-source".
(art-data.h is needed for dependency generation)

--------------------------------------------------------------------------------
cd95a4d525 | Eino Keskitalo | 2010-02-12 17:00:30 +0200

Make do_layout respect msg_min_height in the initialization.
This fixes a problem with tile_force_layout. You couldn't raise view_max_height 
over 23 without reducing the message window height to 5. The "5" is now 
replaced with msg_min_height, which is 7 by default.

This in turn makes the message window bigger, when you start Crawl with default 
setup in low resolutions. We figured setups with low resolutions are special 
enough, that we can expect users to configure options themselves. Enne & jpeg, 
agreed?

Screen estate can still be wasted if overlay is used without the force option.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
ac302994d3 | Eino Keskitalo | 2010-02-12 16:59:14 +0200

A little more detailed options_guide.txt entry for tile_force_overlay.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
d3697b24a3 | Eino Keskitalo | 2010-02-12 16:58:05 +0200

Add the option tile_force_overlay.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
f9a38fc311 | Darshan Shaligram | 2010-02-12 20:14:40 +0530

Fix permanent stat loss for Che worshippers when transforms cause ponderous 
items to meld (syllogism).
Each melded item is now removed from its equipment slot before applying unwear 
effects, so that che_handle_change sees that the item is unequipped. Once all 
items are melded, equipment slots are restored.

Similarly, when unmelding items, all melded slots are reset to empty and 
restored one at a time just before applying the corresponding rewear effect.

--------------------------------------------------------------------------------
c447156127 | David Lawrence Ramsey | 2010-02-12 08:26:37 -0600

Since one of Wayne's messages invokes Okawaru, make him an Okawarite.

--------------------------------------------------------------------------------
64de2a8b3e | Adam Borowski | 2010-02-12 14:35:14 +0100

Wayne's speech, dwarven accent version.

--------------------------------------------------------------------------------
18e32f92e4 | Adam Borowski | 2010-02-12 14:35:14 +0100

Buff Wayne, deck him in proper gear, make him use more fitting invocations.

--------------------------------------------------------------------------------
7ea3daba25 | Jude Brown | 2010-02-12 23:20:27 +1000

Cloud, Hellbinder tweaks.

--------------------------------------------------------------------------------
1df2bc0cfc | Jude Brown | 2010-02-12 23:18:00 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
831690d6b1 | Jude Brown | 2010-02-12 22:49:46 +1000

Place Murray in Vestibule map, rather than uniques.des. (greensnark)
Reduces chances to 1 in 8, instead of the current (around) 1 in 20.

--------------------------------------------------------------------------------
017650cd37 | Eino Keskitalo | 2010-02-12 14:33:36 +0200

Prettify ice cave entry vaults a bit.
Moved the colouring to the portal setup function; made the floor blue; used 
tiles.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b52dc49029 | Darshan Shaligram | 2010-02-12 18:01:48 +0530

Fix unique (transparent) vaults being placed without regard to terrain (due).

--------------------------------------------------------------------------------
8b6aae3ff2 | Jude Brown | 2010-02-12 05:48:54 -0600

Unique flavour enchancement, step three: Frances, speech, description.
Working off of the "deep facial scar" mention in the original
description and her current spell-set including the summoning of demons,
she's now a warrior who defeated a Pandemonium Lord in combat and took
control of the demon's realm and powers.
(cherry picked from commit bbe2c87d4f016c3a09bc6acbdf0de6f0807b1ab8)

--------------------------------------------------------------------------------
e509b4635d | Jude Brown | 2010-02-12 05:48:40 -0600

Remove misleading line in Erica's speech.
It talks about drinking potions, something that monsters can already do.
This would be extremely confusing if she didn't actually generate with a
potion.
(cherry picked from commit ba7449a90ba9874ade2bedd8310800ae8b311485)

--------------------------------------------------------------------------------
aed6d5f2cc | Jude Brown | 2010-02-12 05:48:27 -0600

Unique flavour enchancement, step two: Edmund, speech, gear, description.
Working off of an idea by sorear, that Edmund is actually Sigmund's
younger and jealous brother, who is not as talented as Sigmund is
magically. Tweaks his gear so that he always generates with some brand
of flail.
(cherry picked from commit 71fddf0908419f406f62a4f3ef1141fb0f0d7a19)

--------------------------------------------------------------------------------
043b5268c6 | Jude Brown | 2010-02-12 05:48:13 -0600

Unique flavour enchancement, step one: Duane's speech and descriptions.
Keeping some of the original flavour of Duane being a "guard" and
mercenary, this takes it a few steps further. This also removes his
using the generic mercenary speech, which is... very generic.
(cherry picked from commit 1c620187af10ee77842e1a0a7b90f68c2fb0b51f)

--------------------------------------------------------------------------------
bbe2c87d4f | Jude Brown | 2010-02-12 21:42:05 +1000

Unique flavour enchancement, step three: Frances, speech, description.
Working off of the "deep facial scar" mention in the original
description and her current spell-set including the summoning of demons,
she's now a warrior who defeated a Pandemonium Lord in combat and took
control of the demon's realm and powers.

--------------------------------------------------------------------------------
ba7449a90b | Jude Brown | 2010-02-12 21:42:05 +1000

Remove misleading line in Erica's speech.
It talks about drinking potions, something that monsters can already do.
This would be extremely confusing if she didn't actually generate with a
potion.

--------------------------------------------------------------------------------
71fddf0908 | Jude Brown | 2010-02-12 21:42:04 +1000

Unique flavour enchancement, step two: Edmund, speech, gear, description.
Working off of an idea by sorear, that Edmund is actually Sigmund's
younger and jealous brother, who is not as talented as Sigmund is
magically. Tweaks his gear so that he always generates with some brand
of flail.

--------------------------------------------------------------------------------
1c620187af | Jude Brown | 2010-02-12 21:42:04 +1000

Unique flavour enchancement, step one: Duane's speech and descriptions.
Keeping some of the original flavour of Duane being a "guard" and
mercenary, this takes it a few steps further. This also removes his
using the generic mercenary speech, which is... very generic.

--------------------------------------------------------------------------------
c323ca1a5a | Adam Borowski | 2010-02-12 05:36:11 -0600

Fix reversed logic when wielding the Singing Sword.

--------------------------------------------------------------------------------
dcd9793806 | Adam Borowski | 2010-02-12 12:23:38 +0100

Fix reversed logic when wielding the Singing Sword.

--------------------------------------------------------------------------------
5a9df276ab | Jesse Luehrs | 2010-02-12 04:06:39 -0600

make reflection slightly less rare (kilobyte)

--------------------------------------------------------------------------------
44a795b4db | Jesse Luehrs | 2010-02-12 03:57:56 -0600

undo some testing weights

--------------------------------------------------------------------------------
85bc92e9be | Darshan Shaligram | 2010-02-12 15:11:05 +0530

Fix crash creating randart books (syllogism).

--------------------------------------------------------------------------------
a34167eee6 | David Ploog | 2010-02-12 10:30:15 +0100

Update CREDITS.
Add Daniel Mark Brownrigg (Textmode).

--------------------------------------------------------------------------------
6e777bb6db | Jude Brown | 2010-02-12 18:51:05 +1000

Fix monster speech, redux.
"Dungeon" isn't considered a branch name for str_to_branch purposes, so
that wasn't being stripped from the prefix list, meaning that unless
monsters had Dungeon-specific speech, nobody would speak.

Oops.

--------------------------------------------------------------------------------
dc3fb3746d | David Lawrence Ramsey | 2010-02-11 22:55:34 -0600

Fix underlining.

--------------------------------------------------------------------------------
87d0030914 | Charles Otto | 2010-02-11 23:18:31 -0500

Mention Kiku's miscast protection on ^ again
Restore the line about kiku protecting you from death magic on ^. This
was probably unintentionally lost during the Kiku overhaul.

--------------------------------------------------------------------------------
a55194f9c0 | Charles Otto | 2010-02-11 22:42:15 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
spell_highlighting

--------------------------------------------------------------------------------
ab023f6a49 | Charles Otto | 2010-02-11 22:24:58 -0500

Don't color haste and berserk as 'useful' when slowed
Remove conditional highlighting berserk and haste as particularly
useful when slowed, per kilobyte's comment in 296.

--------------------------------------------------------------------------------
8c12a7daa1 | Charles Otto | 2010-02-11 22:18:40 -0500

Adjust highlighting of dangerous to memorize spells
Use magenta to highlight spells that are dangerous to memorize (spells
in annihilations/demonology/necronomicon) so that the coloring doesn't
overlap with the color used to indicated spells forbidden by the
player's god.

Give the 'forbidden by god' coloring precedence over the
'in a dangerous spellbook' coloring.

--------------------------------------------------------------------------------
3fa94e71c7 | Charles Otto | 2010-02-11 22:01:39 -0500

Remove outdated references to god_hates_spell_type

--------------------------------------------------------------------------------
6ef9324b84 | DMBrownrigg | 2010-02-11 21:47:33 -0500

correct highlighting of swiftness when levitated (now fly)
The code incoorectly higlighted swiftness as useful when
levitating, when infact it is fly that benifits from
swiftness.

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
f7ac0fea9d | DMBrownrigg | 2010-02-11 21:47:02 -0500

remove unused function _get_mons_distance
Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
961dfa931f | DMBrownrigg | 2010-02-11 21:46:30 -0500

revise god_hates_spell, change parm order on god_(hates|likes)_spell
Pulled in body of defunct 'god_hates_spell_type into
'god_hates_spell', revised parm-order of the two god/spell
functions.

The decision to move the body of god_hates_spell_type
into god_hates_spell might seem odd, the logic is that
I could think of no compleling reason why such a function
should be in goditem.cc, but also had to admit it was
more accurate than god_hates_spell. moving the body of the
function, and replacing all relevant uses seemed the best
option.

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
ebbfb3b5fe | DMBrownrigg | 2010-02-11 21:45:59 -0500

switch god_hates_spell_type in favor of god_hates_spell
I removed god_hates_spell_type, in favor of a (revised)
god_hates_spell. partly because it was easier, partly
because i felt it didn't belong in goditems.cc in the
first place, partly because I'm an arrogant ass.

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
7c633514f7 | DMBrownrigg | 2010-02-11 21:40:09 -0500

fix teleport_blocking check for spell highlighting
Changed the check in spell_is_useless to use
'item_blocks_teleport()', this both removes rundandant
code, and corrects the issue with improper detection of
TP blocking items.

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
060568fd50 | DMBrownrigg | 2010-02-11 21:39:37 -0500

correct utility selection for gods
Corrected the conditions used to select favored/hated
spells for gods, according to suggestion from 'by'.

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
925c91542e | DMBrownrigg | 2010-02-11 21:39:06 -0500

remove debug statements
Removed two debugging statements, and added a //fixme comment

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
ba6d5a0b07 | DMBrownrigg | 2010-02-11 21:38:35 -0500

improve highlighing in read spellbooks
Corrected and improved highlighting of spells in
spellbooks when read (via 'r'). Thus spellbooks read
in this manner should provide more information, and
look better.

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
c8c1e118d7 | DMBrownrigg | 2010-02-11 21:38:03 -0500

Improve useless/useful identification of spell
Improved useful/useless indentfication of spells,
note that there is an an outstanding issue with detection
of "oStasis, it can't reliably determine if they have been
Identified, and acts as if they haven't been.

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
3d65112467 | DMBrownrigg | 2010-02-11 21:37:32 -0500

RC1 of spell highlighting
Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
9bfe7f104a | DMBrownrigg | 2010-02-11 21:37:00 -0500

Continuing with Due's cleaned up version of splColor-patch
Submitted patch was vetted and cleaned by due, but
ultimately rejected due to flaws in highlighting.

Continuing with Due's cleaned version of the prevous patch.

Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
2f99e197bf | David Ploog | 2010-02-12 03:20:26 +0100

More words for ponderousified armours.
Also, add structure to the list.

--------------------------------------------------------------------------------
553a3c5d5d | Charles Otto | 2010-02-11 21:13:36 -0500

Show the floor description when targeting evolution

--------------------------------------------------------------------------------
96954216e8 | Jude Brown | 2010-02-12 11:05:42 +1000

Fix Troves.
Single-item troves were failing on a nil concat.

--------------------------------------------------------------------------------
ee63a9aacc | Darshan Shaligram | 2010-02-12 06:25:15 +0530

Fix Che-touched armour losing its brand (syllogism) and autoinscribe.

--------------------------------------------------------------------------------
abb49efdff | Jude Brown | 2010-02-12 10:29:10 +1000

Some randart names for Cheibriados's ponderousness.
Some of them may be inappropriate, but here's a large block that can be
edited and adjusted as required.

--------------------------------------------------------------------------------
063d347c18 | Darshan Shaligram | 2010-02-12 05:38:38 +0530

Che ponderousness: ponderousness is now an artefact property in addition to an 
ego type, and the Che ability converts the target item into a randart.
The -2 EV for each worn item of ponderousness is gone.

We need more Che ponderous randart names in randname.txt.

--------------------------------------------------------------------------------
45ef6e4adc | David Lawrence Ramsey | 2010-02-11 17:06:01 -0600

Add randart description entry.

--------------------------------------------------------------------------------
f57ece8c53 | Johanna Ploog | 2010-02-11 23:30:42 +0100

Clear "was cursed" inscription once an item is fully identified.

--------------------------------------------------------------------------------
8af7f20af7 | Johanna Ploog | 2010-02-11 22:54:35 +0100

Don't autoinscribe items with "was cursed" that you saw getting cursed.
This should cover ?curse weapon/armour and mummy curses.

The original intent was that items *found* cursed are more likely to
have other unpalatable properties as well, such as a negative base type
(hunger), bad randart properties or negative enchantment.
Also inscribing items that became cursed at a later point muddles that
purpose.

--------------------------------------------------------------------------------
04e1c262be | Robert Vollmert | 2010-02-11 21:44:03 +0100

Fix spacing in TSO religion screen.

--------------------------------------------------------------------------------
d51ffcb59a | Robert Vollmert | 2010-02-11 21:43:57 +0100

Note Kiku weapon blessing on ^ screen.
Fixes issue #365. Patch due to MarvintheParanoidAndroid.

--------------------------------------------------------------------------------
e3fb41cf55 | Robert Vollmert | 2010-02-11 20:04:06 +0100

Make confused monsters zap wands in random directions.
Fixes issue #351.

Previously, they always zapped beneficial wands at themselves,
while they tried zapping other wands at their target (random?)
if the tracer considered it useful.

--------------------------------------------------------------------------------
308721b4f1 | Jesse Luehrs | 2010-02-11 12:17:04 -0600

fix manually specified grid colors

--------------------------------------------------------------------------------
ff2d9f8f21 | Johanna Ploog | 2010-02-11 18:33:01 +0100

mon-speak.cc: For friendly monsters, use player genus for relation check.
Fixes #728. Could potentially cause problems with other speech, but I
*think* relationship is currently only used for allies and for hostile
orcs when directed at the Hill orc player, so as long as that isn't
changed, we should be okay.

Still, somewhat hacky, needs to be fixed for real sometime, but the
monspeak code makes me want to cry... :(

--------------------------------------------------------------------------------
5b1a0d81d8 | David Ploog | 2010-02-11 18:05:24 +0100

Revert "Reduce weight of large rocks, from 600 to 400."
This reverts commit f44f2bc6f575f26209d70243fb9ca7a07893bc59.

The carrying capacity of ogres and trolls has been drastically
increased, so the original reduction turned out to be a double
boost; reverting.

--------------------------------------------------------------------------------
b3865e277d | Adam Borowski | 2010-02-11 17:55:36 +0100

Don't break rest due to Cloud Mage's wizlab clouds.

--------------------------------------------------------------------------------
72c7dfa840 | Robert Vollmert | 2010-02-11 16:31:51 +0100

Make mimics unaffected by invisibility.
Fixes issue #383.

Invisible mimics sounds like more trouble than it's worth.

--------------------------------------------------------------------------------
6a17bcc024 | Robert Vollmert | 2010-02-11 16:19:44 +0100

Fix tracer giving away unid'ed exploding missiles (#358).
This is a little messy. It would seem to be nicer if
throw_it invoked a generalized player_tracer.

--------------------------------------------------------------------------------
f5f0d14e06 | Robert Vollmert | 2010-02-11 16:19:43 +0100

Use mons_is_confused in handle_mon_spell.

--------------------------------------------------------------------------------
af0adba019 | Robert Vollmert | 2010-02-11 16:19:43 +0100

Document confusedness functions better.

--------------------------------------------------------------------------------
0dafd2b855 | Robert Vollmert | 2010-02-11 16:19:42 +0100

mons_cast_noise: treat class-confused monsters as confused.
Fixes vapours throwing beams at NONEXISTENT FOE (issue #483).

Previously, the code was checking monster->confused(), which
is false for butterflies, vapours etc.

--------------------------------------------------------------------------------
c0a1ffe170 | Robert Vollmert | 2010-02-11 16:19:42 +0100

mons_cast_noise: Change default target to "something".
It used to be "nothing", leading to ugly messages.

Fixes issue #156.

--------------------------------------------------------------------------------
7a160c97bd | Darshan Shaligram | 2010-02-11 20:27:06 +0530

Synchronise tide levels across all Shoals levels, so that high tide on one 
level implies high tide on all.

--------------------------------------------------------------------------------
f7f503cc5c | Jude Brown | 2010-02-11 22:45:02 +1000

Fix TroveMarker.

--------------------------------------------------------------------------------
c0300664c1 | Jude Brown | 2010-02-11 22:38:06 +1000

Overhaul of Troves, they now accept items. (dpeg)
Troves now accept items. The back-story is that an imp offers to "lock"
the portal, but then breaks it; the trove then requires a magical item
(a high-value book, weapon, armour, ring or amulet from a shop; a robe
of resistance or a gold dragon armour if your skills are high enough;
or, a large stack of consumables) to open.

Of course, you can still pay the full fee, but you will only have the
originally specified time to do so.

Todo:
 * change overview notes when the portal locks
 * see if items can function on the shopping list (unsure)

There may be bugs and issues, of course, but I've tested every
combination of accepted items (in artefact and non-artefact). It will
also accept items with pluses greater then specified (may be a caveat).

Shop search works, in theory; it's capped at 1000, which may need to be
increased or reduced as necessary. I have't been able to get shop
inventories properly added to the stash tracker, so I'll have to find a
different way to test this.

Finally, finally, done!

--------------------------------------------------------------------------------
b5337eb3dc | Jude Brown | 2010-02-11 22:37:30 +1000

Fix pluses wrapper for dLua items.
Was previously not dLua-only. Also, now converted to a fuction, meaning
that it can return multiple values instead of just pushing a single
value that causes weird issues.

--------------------------------------------------------------------------------
c0bc11901d | Jude Brown | 2010-02-11 22:35:15 +1000

Fix artefact_name dLua wrapper.

--------------------------------------------------------------------------------
4bb5b31a99 | Robert Vollmert | 2010-02-11 13:09:35 +0100

Formatting fix.

--------------------------------------------------------------------------------
ff094fba50 | Robert Vollmert | 2010-02-11 13:07:53 +0100

Make aptitude table a little wider.
This guarantees two spaces between species name and
the first aptitude, allowing the highlighting in ?%
to work.

Fixes #404.

--------------------------------------------------------------------------------
a1e8f00a3d | Robert Vollmert | 2010-02-11 12:39:37 +0100

Mark gourmand usefull for ghouls.
It makes clean chunks contaminated for them, providing
better resiliance chances.

Fixes issue #282.

--------------------------------------------------------------------------------
7d97ca2db3 | Robert Vollmert | 2010-02-11 12:25:50 +0100

Formatting of boolean expression.

--------------------------------------------------------------------------------
d2511db00d | Robert Vollmert | 2010-02-11 12:24:01 +0100

Mark gourmand useful for non-full saprovores.
If saprovore mutation level is below 3, gourmand will improve
the chance of being able to eat contaminated/rotten meat.

Fixes issue #349.

--------------------------------------------------------------------------------
cb15cc83e0 | Robert Vollmert | 2010-02-11 12:01:38 +0100

Makes Che's ponderousify ability MP and failure-free.
These costs are not interesting.

Fixes issue #758.

--------------------------------------------------------------------------------
ee0ab656d2 | Jude Brown | 2010-02-11 20:46:08 +1000

Artefact name wrapper for dLua items.

--------------------------------------------------------------------------------
5bec8c1d40 | Robert Vollmert | 2010-02-11 11:40:58 +0100

Remove artefact.h #include from goditem.h.

--------------------------------------------------------------------------------
cb7da3daad | Robert Vollmert | 2010-02-11 11:40:58 +0100

Split out melee_attack from fight.h.
This means fight.h doesn't need to include artefact.h
anymore, reducing dependencies.

--------------------------------------------------------------------------------
0eb8030b0e | Jesse Luehrs | 2010-02-11 04:00:02 -0600

friendly monsters shouldn't cast self-enchantments at the player

--------------------------------------------------------------------------------
5985eb7753 | Jude Brown | 2010-02-11 19:36:36 +1000

Base type, sub type and ego wrappers for dLua items.
Missile egos currently duplicate code; this is bad, but I don't really
feel like rewriting how the missile ego naming is handled (which isn't
paricularly well, at the minute).

--------------------------------------------------------------------------------
5f7004a89b | Jesse Luehrs | 2010-02-11 03:24:03 -0600

don't let monsters use emergency spells with a target against friendlies

--------------------------------------------------------------------------------
2baad9b930 | Jesse Luehrs | 2010-02-11 03:00:33 -0600

friendly monsters shouldn't cast dig at the player
this chunk of code used to assume that BEH_SEEK monsters without an
enemy in sight can't see the player (sorear said that friendliness used
to be a BEH_ value).

--------------------------------------------------------------------------------
a4d8bc55b4 | Jesse Luehrs | 2010-02-11 01:26:10 -0600

handle unseen branch display for hell, pan, and abyss properly

--------------------------------------------------------------------------------
4df1e6b6ae | Jesse Luehrs | 2010-02-11 01:25:56 -0600

hell portals start showing up on d:21, not d:20

--------------------------------------------------------------------------------
9cded01116 | Jesse Luehrs | 2010-02-11 00:52:05 -0600

if we've found two of the lair branches, don't show the last as missing

--------------------------------------------------------------------------------
c8eb201b06 | Jesse Luehrs | 2010-02-11 00:43:23 -0600

better formatting of seen vs unseen branch entries

--------------------------------------------------------------------------------
b32511525b | Jesse Luehrs | 2010-02-10 22:42:34 -0600

rename overmap -> dgn-overview (it's not a map!)

--------------------------------------------------------------------------------
9557d3d79c | Jesse Luehrs | 2010-02-10 21:31:35 -0600

don't even consider blessed blades for acquirement

--------------------------------------------------------------------------------
63489a28b8 | Jesse Luehrs | 2010-02-10 21:29:22 -0600

trog is divine

--------------------------------------------------------------------------------
c9a460cdf9 | Jesse Luehrs | 2010-02-10 20:39:11 -0600

hunger is a temporary disability

--------------------------------------------------------------------------------
b3ff7df0a9 | Charles Otto | 2010-02-10 20:17:00 -0500

Make evolution prioritize low count stacks of fruit
Sort available fruit by quantity inside _collect_fruit

--------------------------------------------------------------------------------
01a16eade9 | Darshan Shaligram | 2010-02-11 04:35:50 +0530

Fix macro and keymap std::maps expanding until they contain all keysequences 
and subsequences ever entered by the user in one play session.
The code to expand a macro or keymap checked for the existence of a macro using
operator [], which meant that any input keysequence not already present in the
macro map is added to it, and the map swells until it has absorbed all keystroke
combinations.

This leak is particularly egregious when combined with the way macros are
tested: the entire keyboard buffer is checked for a macro; if no macro is
found, one character is dropped off the end and the leading sequence is tested
again, and so on.

With the fix, the macro and keymap maps should contain only explicitly defined
macros/keymaps.

--------------------------------------------------------------------------------
5b85f8c195 | Johanna Ploog | 2010-02-11 00:21:40 +0100

For Vampires of sufficient xp, always show the Bottle Blood ability.
Obviously, you won't be able to bottle anything without corpses or
with corpses that don't contain blood, but the messaging is now
handled in butchery() and, as pointed out in Mantis issue 555, it
is nicer for players to see the ability right away when it's announced.

--------------------------------------------------------------------------------
56594db2a1 | David Lawrence Ramsey | 2010-02-10 15:32:25 -0600

Add more wording fixes.

--------------------------------------------------------------------------------
4836fe4681 | David Lawrence Ramsey | 2010-02-10 15:29:47 -0600

Add wording fixes.

--------------------------------------------------------------------------------
00e6ae76a6 | Eino Keskitalo | 2010-02-10 23:25:18 +0200

Add warnings to the doors of a rotten minivault.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
7ddaac0e84 | Eino Keskitalo | 2010-02-10 23:25:17 +0200

Use autoexplore stopper markers for Lemuel's fog generator vaults with statues 
placed for the purpose.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a221e9a1db | Eino Keskitalo | 2010-02-10 23:25:16 +0200

Remove outdated info about loadmaps.lua.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
685d84a81f | Eino Keskitalo | 2010-02-10 23:25:15 +0200

Make silver hurt players according to how mutated they are.
Adds 5% extra damage each level of mutation, up to double damage.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e27bd1dd68 | Adam Borowski | 2010-02-10 22:21:27 +0100

No worshipping Sif when not knowing any spells.  Also, give a message for 
necromutation.

--------------------------------------------------------------------------------
aaeaf07177 | Darshan Shaligram | 2010-02-11 02:35:23 +0530

Remove autogenerated art-data.h, rltiles/dc-unrand.txt and 
rltiles/tiledef-unrand.cc from repository.
art-data.pl no longer modifies artefact.h, but writes a new file called 
art-enum.h.

--------------------------------------------------------------------------------
28b4774136 | Robert Vollmert | 2010-02-10 22:03:21 +0100

Make i_feel_safe messages more generic.
This way they also fit when interrupting travel/explore. We could
distinguish the cases, but this way seems fine.

--------------------------------------------------------------------------------
47e6ee9658 | David Ploog | 2010-02-10 21:43:56 +0100

Remove testing PLACE: D:1.

--------------------------------------------------------------------------------
4977ad0e8c | David Ploog | 2010-02-10 21:41:16 +0100

Minor change to TGW's caged human kiku vault.

--------------------------------------------------------------------------------
1d09762236 | Robert Vollmert | 2010-02-10 20:00:43 +0100

Make i_feel_safe take into account exposed monsters (~).
Autoexplore will now not bring you next to a ~, though it
won't make any efforts to route around them.

--------------------------------------------------------------------------------
f1904f13ad | Darshan Shaligram | 2010-02-11 00:18:28 +0530

[756] Serpent-scourge is now black mamba hide instead of anaconda hide (TGW).

--------------------------------------------------------------------------------
9efc26e667 | Eino Keskitalo | 2010-02-10 20:14:22 +0200

Make silver hurt the player according to player_is_shapechanged().
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
880c1fba97 | David Lawrence Ramsey | 2010-02-10 11:55:17 -0600

Properly mark undead animated by Kiku's wrath as gifts of Kiku.

--------------------------------------------------------------------------------
6a4ec461d6 | Robert Vollmert | 2010-02-10 18:41:41 +0100

Fix apportation mentioning translucent walls falsely (#755).

--------------------------------------------------------------------------------
eeb389e5fd | Robert Vollmert | 2010-02-10 17:43:57 +0100

Fix crash in _finalise_tile for out-of-bounds cells.
There's a check against is_secret_door(grd(gc)) which
crashes for out-of-bounds gc. On the other hand, it
seems that _finalise_tile never does any work for
out-of-bounds squares anyway, since those should be
whatever_UNSEEN. So put the call to _finalise_tile
inside a bounds check.

Likely fixes issue #753.

--------------------------------------------------------------------------------
14a8b5a720 | Johanna Ploog | 2010-02-10 16:38:29 +0100

On Vamp's mutation screen, don't say that bottling blood works with 'c'.

--------------------------------------------------------------------------------
6cbc9c31d6 | Eino Keskitalo | 2010-02-10 17:07:31 +0200

Separate spellbooks for Boris and Frederick.
They used to use MST_LICH_IV, and when that got IOOD instead of Iron Shot, 
these changes went over to Boris and Frederick.

Frederick gets the old MST_LICH_IV and Boris keeps the IOOD while replacing 
Mystic Blast with Iron Shot.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6d29179dbd | Eino Keskitalo | 2010-02-10 17:07:30 +0200

Code cleanup: Keep the spellbooks of uniques and other monsters separate.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
631ba48185 | Adam Borowski | 2010-02-10 16:05:21 +0100

Make the amulet of inaccuracy affect casting IOOD.

--------------------------------------------------------------------------------
68cbd3eda7 | David Lawrence Ramsey | 2010-02-10 08:49:49 -0600

Add punctuation fix.

--------------------------------------------------------------------------------
cc8448919e | Robert Vollmert | 2010-02-10 15:25:15 +0100

Remove ASSERT against bolt.name.
The bolts that previously had name "0" now have name "", and
failed a !name.empty() assertion.

--------------------------------------------------------------------------------
dd9e1797b2 | Robert Vollmert | 2010-02-10 15:15:17 +0100

Remove bolt::invisible().

--------------------------------------------------------------------------------
5463a99a4f | Robert Vollmert | 2010-02-10 15:15:16 +0100

Give ghosts spellcasting flags.
Fixes issue #661.

All ghosts now get MF_ACTUAL_SPELLS which seems questionable,
but that can be fixed in bind_spell_flags() if necessary.

--------------------------------------------------------------------------------
bbe824de9c | Adam Borowski | 2010-02-10 14:34:54 +0100

Rename hilariously misnamed you.your_level to you.absdepth0.

--------------------------------------------------------------------------------
923974d928 | Robert Vollmert | 2010-02-10 12:44:01 +0100

Rename bolt::type to bolt::glyph.

--------------------------------------------------------------------------------
87f30daeef | Robert Vollmert | 2010-02-10 12:39:16 +0100

Use beam::visible() in mons_cast_noise.
This replaces the horrible visible_beam check.

The check against bolt.type == ' ' is gone; with the previous
changes to beams with DCHAR_SPACE, this should now be handled
by the type == 0 check in beam::visible().

--------------------------------------------------------------------------------
b5910d657e | Robert Vollmert | 2010-02-10 12:24:29 +0100

Replace uses of DCHAR_SPACE with NUM_DCHAR_TYPES.
DCHAR_SPACE was used for invisible beams, but this is a little
questionable since drawing ' ' does actually have a visual
effect.

Now use NUM_DCHAR_TYPES as "no value", which will be translated
to beam.type = 0, hence also cause beam::visible() to return
false.

--------------------------------------------------------------------------------
feff4d744e | Robert Vollmert | 2010-02-10 12:24:28 +0100

Make dchar_glyph return 0 for invalid arguments.
In particular, return 0 for NUM_DCHAR_TYPES.

--------------------------------------------------------------------------------
8a9c315a2d | Robert Vollmert | 2010-02-10 12:24:28 +0100

Kill beam names starting with "0".
This appears to have only been used for beam visibility checks
in mons_cast_noise anymore.

These beams now have name "" (or "agony" for the old "0agony").

Visibility will be tracked with beam::visible(), i.e.
type == 0 || is_enchantment().

--------------------------------------------------------------------------------
620b7dd9e3 | Robert Vollmert | 2010-02-10 12:24:28 +0100

Add convenience method beam::visible().
Also make visible(),invisible() public.

--------------------------------------------------------------------------------
7072607392 | Robert Vollmert | 2010-02-10 12:24:28 +0100

mons_cast_noise: Add FIXME comment.

--------------------------------------------------------------------------------
7e15d7e3d8 | Robert Vollmert | 2010-02-10 12:24:27 +0100

Fix cset_* documentation (add trees).

--------------------------------------------------------------------------------
e8685650ea | Robert Vollmert | 2010-02-10 12:24:06 +0100

Remove demon_beam_type.
Its only use was broken.

pbolt.type is the character used for drawing the beam; putting
another enum in there caused smiting beams to be considered
visible in the monster speech code.

Fixes issue #467.

--------------------------------------------------------------------------------
7204e60369 | Robert Vollmert | 2010-02-10 11:58:05 +0100

Remove unused _prompt_for_fruit.

--------------------------------------------------------------------------------
5db2703f41 | Haran Pilpel | 2010-02-10 07:18:37 +0200

Code cleanups for Fedhas abilities.
_prompt_for_fruit does not seem to be used anywhere.

--------------------------------------------------------------------------------
5b03b93291 | Charles Otto | 2010-02-09 21:55:07 -0500

Make evolution target moldy squares if no monsters can be found
Make evolution auto-target unoccupied moldy squares if no suitable
monsters are in range.

--------------------------------------------------------------------------------
76999ef22e | Charles Otto | 2010-02-09 21:13:35 -0500

Fix cursor move after after drawing sunlight
Use the right coordinate system transformation when moving the cursor
after drawing sunlight.

--------------------------------------------------------------------------------
1eaff6469e | Charles Otto | 2010-02-09 21:05:33 -0500

Don't grow toadstools in harmful clouds (265)
They will just get killed immediately if we do. This addresses mantis
issue 265 (piety loss due to decomposition growing a toadstool in a
player placed flame cloud). This seems like the simplest way to address
the issue.

--------------------------------------------------------------------------------
9eca213c39 | Charles Otto | 2010-02-09 20:51:49 -0500

A stab at detailed descriptions for Fedhas

--------------------------------------------------------------------------------
8d7b6292f8 | Charles Otto | 2010-02-09 20:35:01 -0500

Let beams auto-target active ballistomycetes

--------------------------------------------------------------------------------
295d11f86c | Charles Otto | 2010-02-09 20:20:14 -0500

Don't track the ballisto/spore creation chain
It's not particularly interesting and I think there was an issue with
the chain getting too long at some point.

--------------------------------------------------------------------------------
132fb23e07 | Charles Otto | 2010-02-09 20:11:49 -0500

Give experience if an ally destroys the last ballisto on the level
Summons offer no defensive advantage in destroying ballistos so don't
apply the 1/2 exp penalty either.

--------------------------------------------------------------------------------
d6f54aa0d6 | Charles Otto | 2010-02-09 20:00:28 -0500

Give a message if the user attempts to evolve a tree.

--------------------------------------------------------------------------------
6be9191705 | Charles Otto | 2010-02-09 19:53:04 -0500

Let evolution grow ballistomycetes on moldy open squares.
Let evolution promote moldy squares in open space in to
ballistomycetes for a piety cost.

--------------------------------------------------------------------------------
b1773ce4d0 | Adam Borowski | 2010-02-10 01:34:35 +0100

Swap the order of M&F and Axes in the aptitudes table. This ordering makes more 
sense wrt the way cross-training works.

--------------------------------------------------------------------------------
e4f2c12bc1 | Adam Borowski | 2010-02-10 01:28:58 +0100

Document that Guardian Spirit does not protect from internal damage (poison and 
casting cost of Pain).

--------------------------------------------------------------------------------
bc1d134c9e | Adam Borowski | 2010-02-10 01:00:38 +0100

Don't let tracers continue past features their beams can't destroy.

--------------------------------------------------------------------------------
0d47490dff | Adam Borowski | 2010-02-10 00:23:53 +0100

Balance the discrepancy between hellfire vs AC and vs EV.  The harsh way! Max 
damage has been reduced somewhat, but since it's an equivalent of 15 AC which 
even EV chars in Pan can be expected to have, they're not really any better off.

--------------------------------------------------------------------------------
565c41a4af | Robert Vollmert | 2010-02-09 23:20:37 +0100

Spacing fixes.

--------------------------------------------------------------------------------
86ba4da900 | Robert Vollmert | 2010-02-09 23:20:36 +0100

Some death processing cleanup.
Morgue is now dumped after the death messages, so those should
show up in the morgue.

Fixes part of #752.

--------------------------------------------------------------------------------
e5938d723c | Robert Vollmert | 2010-02-09 23:20:36 +0100

Improve get_last_messages loop.
Should now dump n last noteworthy messages, not the
noteworthy among the last n. Also fix a possible
extra EOL.

Finally, call flush_prev_message at start since that's
appropriate, even though it's probably redundant.

--------------------------------------------------------------------------------
0f3c49dcf2 | Adam Borowski | 2010-02-09 22:45:10 +0100

Make orbs steer when needed, not only when badly off course.
This has the effect of drastically improving accuracy again, but since
accuracy was below 50%, we need to adjust the numbers anyway (probably
putting spell power into the formula), and this change makes hitting or
not less random.

--------------------------------------------------------------------------------
6ab6fed288 | Adam Borowski | 2010-02-09 22:45:10 +0100

Use mon.get_foe() instead of reinventing validness checks.

--------------------------------------------------------------------------------
e36135cad5 | Adam Borowski | 2010-02-09 22:45:10 +0100

Don't skip the cloud on the last position before IOOD hits.

--------------------------------------------------------------------------------
f172ae20d2 | Haran Pilpel | 2010-02-09 23:33:20 +0200

Fix Chei ponderousify ability crashing if you used '*' to choose a bad item.

--------------------------------------------------------------------------------
47c9809ab6 | Haran Pilpel | 2010-02-09 23:09:36 +0200

Implement n(n+1)/2 ponderousness boost for Chei (dpeg).
No counter-nerf yet.

--------------------------------------------------------------------------------
1b56728421 | Adam Borowski | 2010-02-09 21:58:17 +0100

... and off-center by 0.25 square either to the left or right. This can be 
explained as using one of hands to cast.  The result is decreasing accuracy at 
short range, while the direction change affected medium range the most.

--------------------------------------------------------------------------------
fe6cfba581 | Adam Borowski | 2010-02-09 21:58:17 +0100

Make IOOD be off-direction at launch.  It will then try to correct itself.

--------------------------------------------------------------------------------
334ead4f0b | Adam Borowski | 2010-02-09 21:58:17 +0100

Fix premature dissipation before the edge of LOS.

--------------------------------------------------------------------------------
01ad45f352 | Adam Borowski | 2010-02-09 21:58:17 +0100

Stop monsters from attacking IOODs.  Make them immune to damage.

--------------------------------------------------------------------------------
0b3ad8d399 | Adam Borowski | 2010-02-09 21:58:17 +0100

Replace the fugly interface of calling mons_aligned() by mindex.

--------------------------------------------------------------------------------
d046aeba2d | Adam Borowski | 2010-02-09 21:58:17 +0100

Make spells and missiles go past orbs of destruction.

--------------------------------------------------------------------------------
78a96a8c22 | Adam Borowski | 2010-02-09 21:58:16 +0100

Don't give reflected orbs a free move.

--------------------------------------------------------------------------------
d821aeb699 | Haran Pilpel | 2010-02-09 22:51:12 +0200

Add "Out of range" message when targeting cells out of range. Message could be 
improved.

--------------------------------------------------------------------------------
1233d3d6a7 | David Lawrence Ramsey | 2010-02-09 14:23:11 -0600

Fix compilation.

--------------------------------------------------------------------------------
406c731e35 | David Lawrence Ramsey | 2010-02-09 14:17:54 -0600

Move blinking and stasis-related messages to canned_msg().

--------------------------------------------------------------------------------
80952fa56e | David Lawrence Ramsey | 2010-02-09 14:06:32 -0600

Disallow both causing teleportation and allowing blinking on randart amulets of 
stasis.

--------------------------------------------------------------------------------
83a3e6ec39 | David Lawrence Ramsey | 2010-02-09 14:01:01 -0600

Fix another message inconsistency.

--------------------------------------------------------------------------------
20be8315f2 | David Lawrence Ramsey | 2010-02-09 13:54:41 -0600

Make sure that artefact amulets of stasis don't cause teleportation.

--------------------------------------------------------------------------------
f4aea7ca1b | David Lawrence Ramsey | 2010-02-09 13:54:26 -0600

Fix message inconsistency.

--------------------------------------------------------------------------------
2d53975b0b | Jesse Luehrs | 2010-02-09 12:43:07 -0600

remove accidentally committed file

--------------------------------------------------------------------------------
83b32f01f5 | David Ploog | 2010-02-09 17:17:08 +0100

Update CREDITS.
Add Brett Foster (tinymouse).

--------------------------------------------------------------------------------
22032c9f34 | Robert Vollmert | 2010-02-09 17:12:39 +0100

Fix small message prefix bug.

--------------------------------------------------------------------------------
fa7cfadf58 | Robert Vollmert | 2010-02-09 17:12:38 +0100

Split up mons_cast_noise.
Should be mostly functionally equivalent to before, though
"UNSEEN BEAM" was lost.

--------------------------------------------------------------------------------
5fe51a13ee | Johanna Ploog | 2010-02-09 17:26:43 +0100

Move Xom's "snakes to sticks" effect much higher in the order of effects.
The fact that this effect only kicks in if certain conditions are met
(there are hostile snakes around) already makes it much rarer than
unconditional Xom effects. Besides, it's fun and comparatively harmless,
so there's no need to make it rarer even than the lightning bolt.

--------------------------------------------------------------------------------
78d065f1ee | Johanna Ploog | 2010-02-09 17:26:42 +0100

For Vampires, allow corpses as a valid choice for q*.
Also, when aborting the quaff prompt hint about the proper command ('e')
if there are corpses on the ground or in inventory.

--------------------------------------------------------------------------------
06800cbf1d | Johanna Ploog | 2010-02-09 17:26:42 +0100

Update help on Vampires butchering/bottling blood.

--------------------------------------------------------------------------------
b6825d8530 | Johanna Ploog | 2010-02-09 17:26:42 +0100

Change Vampires bottling blood to a proper (a)bility.
This is much less confusing and allows players to decide whether they want
to butcher some bottleable corpses, e.g. for simulacra.

--------------------------------------------------------------------------------
fff4b45eab | Jude Brown | 2010-02-09 22:27:55 +1000

Variations on wall_hall (white and darkgrey), for Zonguldrok.

--------------------------------------------------------------------------------
60cb272f4e | Jude Brown | 2010-02-09 22:12:47 +1000

Dead trees for Zonguldrok! (purge)
I've set them as the variation for "darkgrey" trees. This could be
changed in future, but it might help in using them at a later date
(though it doesn't seem to want to work for me at the minute.

--------------------------------------------------------------------------------
a0f7c4951c | Jude Brown | 2010-02-09 19:38:31 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
51d572c98b | Jared Tinney (Twinge) | 2010-02-09 19:22:29 +1000

dlua mons.mimic check returns mimic type. Place-pop sorting.
Place-pop script now groups mimics, dancing weapons, and very ugly
things properly. Added sort by count option.

Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
03d233ae53 | Jude Brown | 2010-02-09 19:12:33 +1000

A less hackish way of dealing with tiles for secret doors.
Instead of using the last_tile trick, actually pick a tile from the
surrounding area. This means that a secret door near a selection of wall
with overridden tiles will attempt to use a variation of that base tile,
instead of using the default tile for that feature type. This uses a
slight hack of tile_flv.special, which I hope is okay.

It may introduce some issues, the first of which I've noticed is that
opened, previously detected secret doors occasionally appear to be half
of a gate.

My attempt to resolve this was to place:

 #ifdef USE_TILE
 env.tile_flv(p).special = 0;
 #endif

in reveal_secret_door in main.cc, but doing this seemed to break
everything else for reasons that I can't even begin to comprehend. I've
also changed the assert in the _get_door_offset to simply return nothing
if it's an invalid number; this will mean that features that have a
tile, but are not cleared when convered to a door, will cause weird
visual anomalies.

--------------------------------------------------------------------------------
8f81861364 | Robert Vollmert | 2010-02-09 08:53:11 +0100

Flush messages manually before reading targeting key.
This fixes for example the cycled target mode not being printed.

--------------------------------------------------------------------------------
434266935c | Jude Brown | 2010-02-09 16:38:00 +1000

Tweaks to mimic/dancing weapon properties (Twinge), monsterentry name.

--------------------------------------------------------------------------------
fcca9c6588 | Charles Otto | 2010-02-08 23:50:23 -0500

Make Fedhas forbid bone shards
Make Fedhas forbid bone shards and update his dislikes to say no
skeletons. I think allowing necromancy on skeletons in some contents
and forbidding it in others is not very intuitive, so bone shards is
forbidden for the sake of consistency.

--------------------------------------------------------------------------------
ca541e386b | Tommy | 2010-02-08 21:28:07 -0600

Ogre hunters start with a club and a knife in stead of a hand axe (issue #38).

--------------------------------------------------------------------------------
8c8e3723f8 | Jesse Luehrs | 2010-02-08 21:28:07 -0600

add cia alias for yobbo

--------------------------------------------------------------------------------
9c9e0cda90 | Charles Otto | 2010-02-08 22:07:04 -0500

Make active ballistomycetes show up in mlist and interrupt travel

--------------------------------------------------------------------------------
2e6ab6c3a3 | Charles Otto | 2010-02-08 22:06:47 -0500

Make friendly giant spores place friendly ballistos
Along with that, only inflict piety loss for a level being cleared of
ballistos rather than for each individual being destroyed.

--------------------------------------------------------------------------------
f05ae9dac7 | Charles Otto | 2010-02-08 22:06:32 -0500

Suppress ballisto activation for Fedhas worshipers
Don't activate balliistomycetes if the player worships Fedhas (neutral
ballistos spawning spores is annoying). When a ballisto dies draw a
line to the Fedhas worshiper (if they are connected) instead of another
ballisto.

--------------------------------------------------------------------------------
ee8845d80c | Jude Brown | 2010-02-09 12:37:19 +1000

rltiles: tile_*_basetile function.
Converts a variation of a tile to its base tile. For example, if the
tile in question is TILE_WALL_NORMAL + 3 (a random offset), this
function will return TILE_WALL_NORMAL.

--------------------------------------------------------------------------------
9b7644ee37 | Jude Brown | 2010-02-09 12:31:33 +1000

Mimic, dancing weapon wrappers for dlua Monsters (Twinge).

--------------------------------------------------------------------------------
1909616b63 | Robert Vollmert | 2010-02-08 22:40:35 +0100

Break some overly long lines.

--------------------------------------------------------------------------------
873583f56d | Robert Vollmert | 2010-02-08 22:40:14 +0100

Change two reinterpret_cast to dynamic_cast (felirx).

--------------------------------------------------------------------------------
107302b555 | David Lawrence Ramsey | 2010-02-08 12:37:32 -0600

Add spacing fix.

--------------------------------------------------------------------------------
f0f687b9e7 | Robert Vollmert | 2010-02-08 19:18:11 +0100

Use temporary messages instead of mesclr(force) in direction().
This makes the targeting prompt work more nicely with delayed
messaging (fixes issues #612).

Haran, do the modifications look good to you? Seems to work
with both clear_messages and without, but may well have
missed something.

--------------------------------------------------------------------------------
fb1a8b72e8 | Robert Vollmert | 2010-02-08 19:18:05 +0100

Redo handling of temporary messages.
Any number of temporary messages can now be printed by first
setting a flag with msgwin_set_temporary(true). These messages
may then be cleared from both history and message window by
calling msgwin_clear_temporary. Calling
msgwin_set_temporary(false) will make previously temporary
messages permannet.

--------------------------------------------------------------------------------
68d1ef5ca1 | Robert Vollmert | 2010-02-08 17:03:53 +0100

Tweak wording in fungal destruction message.

--------------------------------------------------------------------------------
3b7463e6dd | David Ploog | 2010-02-08 12:38:58 +0100

New targeting help screen (x?).
I removed the reference to targeting submerged creatures, as
that is not possible anymore, right?

--------------------------------------------------------------------------------
78d8ab0606 | David Ploog | 2010-02-08 11:37:02 +0100

s/targett/target/
And take care of capital letters. This seems to be problematic,
bit I learned that it's "targeting" from Darshan :)

--------------------------------------------------------------------------------
a3b5b854c5 | Robert Vollmert | 2010-02-08 11:15:11 +0100

Annotate exclusions based on map knowledge.
This means proper annotations for remembered monsters.

For detected monsters, append a "(detected)" to the description,
which probably suffices with the current state of divinations.

Note that env.map_knowledge will contain the detected base monster
(mons_detected_base), so putting an exclusion on detected Anteaus
will currently result in "ettin (detected)", or
"small zombie (detected)" on a curse skull. At some point, we
could add
  std::string mons_detected_class_name(monster_type)
that would resolve MONS_ETTIN to "giant" if desired.

--------------------------------------------------------------------------------
29b3456b0e | Jesse Luehrs | 2010-02-08 03:03:52 -0600

show branch depths for undiscovered branches in ^O
only branches that you are of the correct depth for are displayed

--------------------------------------------------------------------------------
c4f35244c0 | Jesse Luehrs | 2010-02-08 03:02:13 -0600

make the branch depth possibilities a member of the branch struct

--------------------------------------------------------------------------------
189aaad139 | Jesse Luehrs | 2010-02-07 22:15:41 -0600

more proper stdarg usage (yobbo)

--------------------------------------------------------------------------------
64a6c9bbf4 | Haran Pilpel | 2010-02-08 01:00:44 +0200

Code cleanup and reorganization, mainly for process_command().

--------------------------------------------------------------------------------
0f3bc7705f | Charles Otto | 2010-02-07 17:30:14 -0500

Revert 51c89be, let ghosts worship Fedhas again
Allow player ghosts to keep worshiping Fedhas since incorporeal undead
aren't really against Fedhas' conducts at this point.

--------------------------------------------------------------------------------
f0247fb55a | Robert Vollmert | 2010-02-07 22:46:44 +0100

Fix compilation (DID_CORPSE_VIOLATION name).

--------------------------------------------------------------------------------
1192336ab8 | Robert Vollmert | 2010-02-07 22:40:13 +0100

Make outer labyrinth wall permarock.
This should help clear up the metal wall confusion.

--------------------------------------------------------------------------------
508e7aa140 | Charles Otto | 2010-02-07 15:53:53 -0500

Make Fedhas only care about necromancy that affects corpses/chunks
Alter Fedhas' necromancy conduct, now Fedhas only cares about a
necromancy effects that involve corpses or chunks.

--------------------------------------------------------------------------------
382d8eb1a8 | Darshan Shaligram | 2010-02-08 02:03:18 +0530

Fix references to Shoal:X in place-pop usage text.

--------------------------------------------------------------------------------
ec5210d9e6 | Robert Vollmert | 2010-02-07 21:20:07 +0100

Reduce chance of large unique clumps (greensnark, dpeg).
Make unique placement chance drop steeply after three have been placed.
This should reduce the huge numbers of uniques per level that have
been occurring recently.

--------------------------------------------------------------------------------
f803c1e616 | Robert Vollmert | 2010-02-07 21:19:11 +0100

Make Khufu silenceable again.
Khufu was the only really odd one out; otherwise silenceable
can be determined by glyph.

Also, silence has been nerfed.

--------------------------------------------------------------------------------
12ab201379 | Robert Vollmert | 2010-02-07 21:19:10 +0100

Fix message joining for "Things that are here:" variant.

--------------------------------------------------------------------------------
b7dc864044 | Darshan Shaligram | 2010-02-08 01:38:57 +0530

Fix rare crash in acquirement code (misplaced parenthesis).

--------------------------------------------------------------------------------
15b3bfe982 | Adam Borowski | 2010-02-07 20:58:00 +0100

Bring trapdoor spiders in line with other submergers.

--------------------------------------------------------------------------------
033400da40 | Adam Borowski | 2010-02-07 20:58:00 +0100

Drop an obsolete check for kraken submerging.

--------------------------------------------------------------------------------
907a602007 | Darshan Shaligram | 2010-02-08 00:52:52 +0530

Add -groupuniques option to merge uniques into one record in 
place-population.lua.

--------------------------------------------------------------------------------
026c81c21b | Adam Borowski | 2010-02-07 19:29:10 +0100

Assign the IOOD's final beam loudness so it causes noise on hit.

--------------------------------------------------------------------------------
b850c5b4ac | Adam Borowski | 2010-02-07 19:29:10 +0100

Randomize IOOD's initial move, slowing it a bit so there's no guaranteed range 
where it does instant damage.

--------------------------------------------------------------------------------
e0ae6c579d | Darshan Shaligram | 2010-02-07 23:54:16 +0530

[585] Fix aquamancers firing icicles through friendlies.

--------------------------------------------------------------------------------
f40811b845 | Charles Otto | 2010-02-07 13:21:32 -0500

Make Fedhas congratulate you on dying.

--------------------------------------------------------------------------------
08300701a0 | Charles Otto | 2010-02-07 13:21:10 -0500

Use the circles version of Fedhas' oklob retribution more often
Make Fedhas use the concentric circles version of oklob retribution
more often (relative to the single circle version, the chance of
getting oklobs relative to other forms of retribution is unchanged).

This commit allows the oklob circle to be placed as low as radius 4,
previously it could only be placed at radius 6.

--------------------------------------------------------------------------------
426c914a6e | Darshan Shaligram | 2010-02-07 23:37:23 +0530

Make "oStasis behave more consistently with ARTP_PREVENT_TELEPORT (Textmode).

--------------------------------------------------------------------------------
5001258517 | Darshan Shaligram | 2010-02-07 23:25:52 +0530

Make Xom less likely to polymorph plants, since Lair and Shoals now have lots 
of plants.

--------------------------------------------------------------------------------
01aa19db93 | Robert Vollmert | 2010-02-07 18:46:17 +0100

Give some liches IOOD.
It replaces iron shot in MST_LICH_IV. Maximal damage is similar,
with reduced variance. Unlike iron shot, it can't be dodged at
short range; on the other hand, it can be avoided entirely
at long range.

--------------------------------------------------------------------------------
c18bf312b3 | Charles Otto | 2010-02-07 12:37:01 -0500

Give Fedhasites a message about not walking through trees.
Print a message when a Fedhas worshiper fails to walk through a tree.

--------------------------------------------------------------------------------
8cdc8ec710 | Enne Walker | 2010-02-07 12:21:54 -0500

[470] Fix opaque white shallow water in tiles.
Alpha testing is apparently not a dependable feature of OpenGL.  Instead,
provide an alternate method of drawing submerged tiles that does not
depend on it.  The older (better looking, in my opinion) behavior can be
enabled via an option.  It's off by default, so that folks don't file bug
reports about shallow water.

--------------------------------------------------------------------------------
a4b097865a | Charles Otto | 2010-02-07 12:19:21 -0500

Give a more informative message when Fedhas' spores fail.
Give a more informative message when Fedhas' reproduction ability fails
due to no corpses being in range.

--------------------------------------------------------------------------------
09cbcdb675 | Charles Otto | 2010-02-07 12:02:59 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
local_master

--------------------------------------------------------------------------------
02be416e73 | Johanna Ploog | 2010-02-07 18:23:07 +0100

Use menu colours for colouring corpses in the distillation prompt.
This should make it easier to only distill the poisonous or contaminated
corpses out of a stash of them.

--------------------------------------------------------------------------------
a031a2d6c8 | Johanna Ploog | 2010-02-07 18:23:07 +0100

Abort Fulsome Distillation without costs if there aren't any corpses.
You can still lose mp and the turn by miscasting, of course.

--------------------------------------------------------------------------------
53e0734976 | Johanna Ploog | 2010-02-07 18:23:07 +0100

Indent player editor command list.

--------------------------------------------------------------------------------
f954f25333 | Johanna Ploog | 2010-02-07 18:23:06 +0100

Tweak two player doll hair tiles.

--------------------------------------------------------------------------------
1b69201086 | Charles Otto | 2010-02-07 12:01:09 -0500

Merge ballistomycete changes from spore_trails

--------------------------------------------------------------------------------
90cdd10e89 | Darshan Shaligram | 2010-02-07 21:42:13 +0530

Restore active armour training to 1.5 per successful train attempt -- went to 1 
when light/heavy training distinction was removed (78291).

--------------------------------------------------------------------------------
7b71f78f93 | Darshan Shaligram | 2010-02-07 20:44:24 +0530

[597] Fix uniques not being placeable on encompass levels (Murray could not be 
generated).

--------------------------------------------------------------------------------
af55d9e7e9 | Robert Vollmert | 2010-02-07 16:08:31 +0100

Hack monster pathfinding to respect opacity_no_trans.
This means that monsters will now try to path-find around things
that block opacity_no_trans, which is currently solid features
as well as (oklob) plants, fungi, bushes. We could add other
immoblie monsters there, but they're unlikely to block movement,
so I'm leaving it for now.

Eventually (0.7?) we should redo monster pathfinding based on
a monster movement "opacity".

--------------------------------------------------------------------------------
a9af525338 | Robert Vollmert | 2010-02-07 16:08:30 +0100

Make trees and plants block opacity_no_trans.
opacity_no_trans is used for you.trans_wall_block, which in turn
is used in monster pathfinding. This fixes some pathfinding issues
in the new woody swamp. If the "no_trans" opacity is used for
other purposes, this change may also have negative side-effects.

--------------------------------------------------------------------------------
6be404bd97 | Johanna Ploog | 2010-02-07 15:47:37 +0100

Update location of development documentation listed in the FAQ.

--------------------------------------------------------------------------------
0bf80e9666 | Johanna Ploog | 2010-02-07 15:47:37 +0100

Actually add the generated FAQ.html.
Incidentally, the most recent version can now also be found on the
Wordpress site.

--------------------------------------------------------------------------------
cb7e25fd79 | Johanna Ploog | 2010-02-07 15:47:37 +0100

Tweak FAQ.txt to make it work nicely in html format.
Also, be nicer about saying "no". :p

--------------------------------------------------------------------------------
91adc17446 | Johanna Ploog | 2010-02-07 15:47:37 +0100

Add a script FAQ2html.pl that translates FAQ.txt into docs/FAQ.html

--------------------------------------------------------------------------------
22cbbebdf0 | Darshan Shaligram | 2010-02-07 19:44:05 +0530

Make place-population report shapeshifters correctly, and merge hydras and ugly 
things when counting.

--------------------------------------------------------------------------------
609e8d3028 | Darshan Shaligram | 2010-02-07 19:10:08 +0530

Remove monster from mgrd before firing death event to Lua (due).
This fixes the zombie in tgw_kikubaaqudha being generated at a random spot on 
the level.

--------------------------------------------------------------------------------
2bafbfdd31 | Darshan Shaligram | 2010-02-07 18:05:28 +0530

Disable bands for OOD monsters (due).
OOD monsters can only be generated in bands after 1.4k turns spent on D:1, or
1.4k - 117 * depth turns spent on any level.

--------------------------------------------------------------------------------
1541932492 | Robert Vollmert | 2010-02-07 12:49:57 +0100

Fix message window clearing after disabled more prompts.
Fixes arena crash (greensnark).

We're still clearing the message window after --more--
prompts, but might consider just scrolling off without
delayed messaging. That would need some way of marking
the last message before scrolling however (first column
+ or red _?). Not for now.

--------------------------------------------------------------------------------
d47e73b8aa | Darshan Shaligram | 2010-02-07 16:05:37 +0530

Fix confusing comment (due).

--------------------------------------------------------------------------------
69d995e8e8 | Darshan Shaligram | 2010-02-07 15:06:49 +0530

Fix lingering references to Shoal:X (due).

--------------------------------------------------------------------------------
e483324c17 | Darshan Shaligram | 2010-02-07 15:01:50 +0530

Fix hydra zombies being allowed to multitarget (oops).

--------------------------------------------------------------------------------
4b0d9dee58 | Darshan Shaligram | 2010-02-07 13:54:26 +0530

Allow the Lernaean hydra to target multiple enemies in one attack round.

--------------------------------------------------------------------------------
453197072a | Darshan Shaligram | 2010-02-07 13:50:52 +0530

Restore the Lernaean hydra's multi-head attack (Grimm).

--------------------------------------------------------------------------------
ab0c02b6ab | Darshan Shaligram | 2010-02-07 13:26:26 +0530

Use better flood when deepening water in Shoals to avoid rectangular deep water 
outlines at low tide.

--------------------------------------------------------------------------------
e5bdef8f2c | David Lawrence Ramsey | 2010-02-06 20:20:32 -0600

Tweak wording.

--------------------------------------------------------------------------------
cf82e8e8ec | David Lawrence Ramsey | 2010-02-06 18:55:07 -0600

Add changelog entry.

--------------------------------------------------------------------------------
de215a216c | Johanna Ploog | 2010-02-07 01:55:48 +0100

Add a short description for non-items examined in the shopping list.
It's just too odd not to get any description at all.

--------------------------------------------------------------------------------
913797091a | Johanna Ploog | 2010-02-07 01:55:48 +0100

Fix crashes when attempting to examine Ziggurats in the shopping list.
Instead attempting to examine a Ziggurat now fails to do anything.
There's nothing we _could_ do (except hardcode a description) since
a description can't even be accessed via database.

--------------------------------------------------------------------------------
84d9e8c3a6 | Johanna Ploog | 2010-02-07 01:55:48 +0100

Add a FAQ item on labyrinths.

--------------------------------------------------------------------------------
613597876c | Stefan O'Rear | 2010-02-06 16:30:03 -0800

Add Twinge to the name remapping tables

--------------------------------------------------------------------------------
f88ad309c6 | Jared Tinney (Twinge) | 2010-02-07 10:12:10 +1000

41 more monster XP tweaks, zombie/skeleton XP fix. (Second XP pass)
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
374180330a | Robert Vollmert | 2010-02-06 23:39:28 +0100

Never use last message line when not using the + prompts.
Probably fixes issue #716.

--------------------------------------------------------------------------------
806551aa06 | Johanna Ploog | 2010-02-06 23:59:55 +0100

Autopickup chunks after butchery involving gloves (un)equipment.

--------------------------------------------------------------------------------
1ed765248b | Johanna Ploog | 2010-02-06 23:59:55 +0100

viewmap.cc: Add #ifndef USE_TILE around _get_feat_glyph() definition.

--------------------------------------------------------------------------------
79218e3c9e | Robert Vollmert | 2010-02-06 23:08:17 +0100

Nerf silence.
Radius is now variable, depending on remaining duration.

The radius starts shrinking with 43 turns to go, and the last 6
turns only the center (you) is silenced. Pre-squared radius
is reduced linearly from 37 = 6*6+1, which means that radius
is reduced like sqrt(dur) (slowly at large radius, and faster
near the end).

For reference, cast_silence has:
    you.increase_duration(DUR_SILENCE, 10 + random2avg(pow,2), 100);

That's at least 10 turns, at most 100. At 50 power (mid-game enchanter)
you'll get an average of 35, which means you'll usually start below
maximal radius. I think that's ok probably, but this could obviously
be tweaked.

Seeing how difficult it is to reach high power, we could even consider
raising the maximal radius by a bit.

The scroll has power 25, so it will start at radius just under 5 on
average.

One problem with this is that you can now precisely read off the
duration from the radius, though I don't think it's a problem.

I have some code to offset the radius by a random amount, walking
from -3 to +3 over time. But that's a somewhat inelegant solution
(new field in player, etc.).

--------------------------------------------------------------------------------
6f3ab2f187 | Robert Vollmert | 2010-02-06 23:03:05 +0100

Show actual power in wizard mode spell-casting screen.
I think this is a useful change, but it does prohibit testing of
the bar display in wizard mode.

--------------------------------------------------------------------------------
e13581f3e0 | Robert Vollmert | 2010-02-06 23:03:05 +0100

Change max message length for merging from 30 to 40.

--------------------------------------------------------------------------------
218157d8d2 | Robert Vollmert | 2010-02-06 23:03:05 +0100

Make msg_min_height default to 7.
Previously, the message window defaulted to height 7 in 24 line
terminals, but only 6 in 25 line terminals, leading to some
confusion.

Fixes issue #713.

--------------------------------------------------------------------------------
eab5932fe4 | Robert Vollmert | 2010-02-06 22:04:22 +0100

Minor cleanup.

--------------------------------------------------------------------------------
c2518ba2f0 | Robert Vollmert | 2010-02-06 22:04:22 +0100

Disable "Items here: " message joining.

--------------------------------------------------------------------------------
cd1feccb53 | Robert Vollmert | 2010-02-06 22:04:22 +0100

Improved joining of short messages.
They will now only be joined if they fit together in a message
line. There's still the arbitrary restriction of <= 30 characters,
though I guess that could be dropped or raised.

mpr() has an extra parameter (ugh) to disable joining.

force_more messages are guaranteed a single line.

There's now a check_join() that could be adapted to filter out
certain channels or messages, possibly by user configuration at
some point should that be necessary. For now, MSGCH_EQUIPMENT
is prevented from joining, fixing the problems with commands
[" etc, though it may affect too many messages.

If you find messages joining up that shouldn't, please add
to dcss:feedback:interface:messagewindow on the cdo wiki.

--------------------------------------------------------------------------------
751d75980b | Robert Vollmert | 2010-02-06 22:04:22 +0100

Add local msgwin_line_length() to read effective message window width.

--------------------------------------------------------------------------------
f870be64f8 | Robert Vollmert | 2010-02-06 22:04:22 +0100

Fix floor item listing message line calculations.

--------------------------------------------------------------------------------
ab65b16f11 | Robert Vollmert | 2010-02-06 22:04:21 +0100

Export effective message window height with msgwin_lines().

--------------------------------------------------------------------------------
83cab0675c | Johanna Ploog | 2010-02-06 22:13:38 +0100

Prefer swapping to a butchery tool to unequipping gloves.
Will automatically unequip gloves if:
* You have no butchery tools in inventory.
* You are wielding a cursed non-cutting weapon.
* You are wielding a non-cutting weapon of distortion.

Otherwise swaps to or prompts for a butchery tool, as normally.

--------------------------------------------------------------------------------
4d1fc6ff49 | Johanna Ploog | 2010-02-06 22:13:38 +0100

Fix typo.

--------------------------------------------------------------------------------
e020215c2e | Johanna Ploog | 2010-02-06 22:13:38 +0100

Experimentally use the piety pool for large piety gains (Jiyva, Ely).
Two issues:
* amulet of faith gets applied twice
* How do we bring across the mechanism? It may not be obvious to the player
  why they get a new piety status many turns after a sacrifice when they
  are just idly walking around or resting.

--------------------------------------------------------------------------------
fad7d4bcc8 | Adam Borowski | 2010-02-06 21:44:30 +0100

Forbid amphibious monsters from submerging in floor.

--------------------------------------------------------------------------------
8918365ffe | Haran Pilpel | 2010-02-06 20:46:46 +0200

Handle monsters exposed via clouds and shallow water.

--------------------------------------------------------------------------------
8613cd6b4b | Haran Pilpel | 2010-02-06 19:58:17 +0200

Fix extraneous periods in monster description prompt.

--------------------------------------------------------------------------------
156979666f | Johanna Ploog | 2010-02-06 19:13:48 +0100

Replace orb guardian tile with Porkchop's new design.
As usually, the old tile can be found in the UNUSED folder.

--------------------------------------------------------------------------------
d086a66337 | David Ploog | 2010-02-06 16:23:42 +0100

Add comments and todo for new vault.

--------------------------------------------------------------------------------
a5a4e97d86 | David Ploog | 2010-02-06 16:21:23 +0100

Kikubaaqudgha altar vault by TGW.

--------------------------------------------------------------------------------
8ec5c1e69b | Johanna Ploog | 2010-02-06 16:28:34 +0100

release.txt: Update information about updating the website.

--------------------------------------------------------------------------------
578e317c95 | Haran Pilpel | 2010-02-06 16:04:01 +0200

Make target(t)ing describe monster status, enchantments, etc.
Some minor refactoring in mon-stuff which hopefully didn't break anything.

--------------------------------------------------------------------------------
a8723822e3 | David Lawrence Ramsey | 2010-02-06 07:36:14 -0600

Don't mark weapons of distortion as chaotic or potentially unholy anymore.  
It's too harsh for worshippers of good gods who find distortion weapons early.  
Leave the is_potentially_unholy_item() function in as a stub, however.

--------------------------------------------------------------------------------
63268568b8 | David Ploog | 2010-02-06 11:35:02 +0100

Add Andrew Minton (minmay) to CREDITS.

--------------------------------------------------------------------------------
052ca7a38f | Jude Brown | 2010-02-06 19:53:51 +1000

Fix missing description for permanent Bazaars (clouded).

--------------------------------------------------------------------------------
b9fc821de9 | Jude Brown | 2010-02-06 19:11:18 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
f939c59253 | David Lawrence Ramsey | 2010-02-05 21:37:00 -0600

Fix comment.

--------------------------------------------------------------------------------
ae5305bc01 | David Lawrence Ramsey | 2010-02-05 21:35:36 -0600

Give (very) ugly things two more random attack types, for flavor.

--------------------------------------------------------------------------------
41895e6bd7 | Johanna Ploog | 2010-02-05 23:35:28 +0100

travel.cc: Remove the SAFE_EXPLORE compile-time flag.
The new travel algorithm (avoiding cutting corners) has been in for
months and there have been no complaints, so I see no reason to make
it optional.

--------------------------------------------------------------------------------
d3610488b0 | David Lawrence Ramsey | 2010-02-05 15:34:06 -0600

Mark weapons of distortion as chaotic and potentially unholy.
Rationale: The Banishment spell is considered chaotic and unholy, and
the distortion effects aside from banishment are chaotic.

--------------------------------------------------------------------------------
e4629a550a | David Lawrence Ramsey | 2010-02-05 15:12:11 -0600

Resort brand priorities for whips to better match other weapons.

--------------------------------------------------------------------------------
73dc3e12f6 | Darshan Shaligram | 2010-02-06 02:35:03 +0530

[Mantis 669] AC and shield penalties/training should not check melded armour.

--------------------------------------------------------------------------------
9bbda8aad7 | David Ploog | 2010-02-05 21:55:45 +0100

Added a great number of temple entry vaults (minmay).

--------------------------------------------------------------------------------
24119d6f2f | David Ploog | 2010-02-05 20:37:08 +0100

Add many vaults by Minmay. Split up mini.des.
Added almost all minivaults from
http://crawl.develz.org/mantis/view.php?id=646
(although one ended up in zot.des and another in float.des).

Also, I found mini.des to be annoyingly large, so split it up into
mini.des          - dummy, default depths, notes for designers
mini_features.des - minivaults without monsters
mini_monsters.des - minivaults with monsters

--------------------------------------------------------------------------------
0fbdbf61f8 | Robert Vollmert | 2010-02-05 19:54:19 +0100

Make sure joining punctuation is always light gray.

--------------------------------------------------------------------------------
eded3819bc | Robert Vollmert | 2010-02-05 19:08:50 +0100

Quiet Controlled Blink.
Previously, it woke everything within radius 7, which
just about killed it for stabbers. This might need
checking once the noise system is revisited.

--------------------------------------------------------------------------------
0cddfde233 | Robert Vollmert | 2010-02-05 18:46:25 +0100

Optionally join short messages into one line.
This happens if all messages are short enough (< 30 characters currently)
and on the same channel. If people like this, but messages that shouldn't
go together are being joined, we should consider differentiating them by
creating more channels if that's appropriate.

--------------------------------------------------------------------------------
cf870ab623 | Robert Vollmert | 2010-02-05 18:46:05 +0100

New option msg_condense_short.
Implemented in following commit.

--------------------------------------------------------------------------------
462e02e405 | Robert Vollmert | 2010-02-05 18:45:59 +0100

Utility method message_item::pure_text.

--------------------------------------------------------------------------------
a04ec4951d | Robert Vollmert | 2010-02-05 17:24:05 +0100

Add option small_more.
Default is true, which means to use the small + more prompts
with delayed messaging. Set to small_more = false to disable,
giving up one line of messages.

--------------------------------------------------------------------------------
8cde5a3f48 | Johanna Ploog | 2010-02-05 17:18:00 +0100

Update, tweak and reorder some FAQ entries.
Among others, I changed all references from SourceForge to Mantis.

--------------------------------------------------------------------------------
ed34442788 | Robert Vollmert | 2010-02-05 16:08:44 +0100

Change feature list glyph colouring.
For one, pass the result through real_colour, which should fix
missing Beogh altars and others (issue #706).

Also, monsters over features should now not affect the feature
colour (issue #568).

--------------------------------------------------------------------------------
a51b44cffd | Johanna Ploog | 2010-02-05 15:59:51 +0100

In the help screen, rename "List of keys" -> "List of commands".

--------------------------------------------------------------------------------
0a26003278 | Johanna Ploog | 2010-02-05 15:59:51 +0100

At game start, print a message mentioning the '?' command.
Hopefully, this will make the game more accessible to newbies. The
help screen is rather full, but the "List of keys" is listed at the
top left, so that should be okay.

If anyone is really bothered the message, they can mute it. :p

--------------------------------------------------------------------------------
39cdb71e12 | Robert Vollmert | 2010-02-05 14:50:19 +0100

Call msgwin_got_input from direction().
This should mean that the direction() prompt will now scroll away
without causing a --more-- prompt.

--------------------------------------------------------------------------------
d802ec68fc | Robert Vollmert | 2010-02-05 14:50:19 +0100

Make wiz-mode acquirement interact with message window properly.
This is an example of how to interact with the message window
in order to avoid extra --more-- prompts.

--------------------------------------------------------------------------------
3abbc5606a | Robert Vollmert | 2010-02-05 14:50:19 +0100

Improved input tracking in message window.
--more-- prompts now don't rely just on messages-since-last-mesclr(),
but on messages since last user input.

This 'last user input' needs to be told to the message window, most easily
by using msgwin_prompt/msgwin_reply/msgwin_get_line for user interaction.
Using these is also required to have the user input show properly in the
message window.

Or you can notify of input manually with msgwin_got_input.

--------------------------------------------------------------------------------
166f76233b | Robert Vollmert | 2010-02-05 14:50:18 +0100

Add msgwin_got_input() to notify message window of input.

--------------------------------------------------------------------------------
9287c02ef1 | Robert Vollmert | 2010-02-05 13:24:51 +0100

Abort travel when not feeling safe.
Previously, i_feel_safe() was only called when starting travel.

One might consider skipping the call to i_feel_safe(want_move = false)
when resting as that's unnecessary work.

This is one extra call to i_feel_safe() per turn -- considering how
often it is already being called, this is unlikely to have a large
performance impact.

This makes travel/explore/resting actually interact with mimics
and the like halfways sensibly, without even requiring the use
of runrest_ignore_*.

Fixes issues #126, #652.

--------------------------------------------------------------------------------
1c685053d0 | Robert Vollmert | 2010-02-05 13:24:51 +0100

Revert "Make travel refuse to enter cells adjacent to mimics."
This reverts commit 468b5880fcee3bc59677b3a963ba47c819674ae5.

Fixes issue #690:

As due noted, the additional check in is_travelsafe_square is possibly too
expensive: showing the colour coded X map now takes over a second on his
computer. To reproduce, go to vault:8, teleport to a corner, magic map and
detect monsters, and then bring up the X map.

Also, this leaks information: After magic mapping, you'll see all monster
locations by the grayed out cells on the X map. autotravel/explore should
work on player knowledge only, hence shouldn't consider the actual monster
grid (monster_at, mons_is_safe) but only env.map_knowledge(c).mons
(remembered monster class).

--------------------------------------------------------------------------------
439b3e856f | Robert Vollmert | 2010-02-05 13:24:51 +0100

Convert ch_mon_is_safe to pass monster_info* instead of monsters*.
This fixes the bug with runrest_ignore_monster not working. The
actual cause of that bug may still be a bug -- the problem seemed
to lie with accessing mon.name for the Lua monsters* wrapper.

--------------------------------------------------------------------------------
868cb59351 | Robert Vollmert | 2010-02-05 13:24:50 +0100

Allow passing of monster_info arguments via CLua::push_args.
These are marked as 'I'.

--------------------------------------------------------------------------------
a85e4c549f | Robert Vollmert | 2010-02-05 13:24:50 +0100

Allow lua code to access monster_info description.
This is not really safe since it accesses the underlying monsters*;
it would be preferable to generate the necessary info on construction
of the monster_info instance and not storing the monsters* pointer.

--------------------------------------------------------------------------------
f881a22c23 | Robert Vollmert | 2010-02-05 13:24:50 +0100

Add missing "else" statements in option parsing.
That whole nested "if" could probably be improved.

Judging from the one MSVC related comment, this may break
the MSVC compile. Please #ifndef some of the "else" in that case.

--------------------------------------------------------------------------------
a3a2fa3483 | Jude Brown | 2010-02-05 22:01:29 +1000

Fix Tukima.

--------------------------------------------------------------------------------
bfa6aa92a7 | Jude Brown | 2010-02-05 21:47:07 +1000

"Mirror" wall tile, use on Tukima.
A slightly tweaked version of tile by purge that was based on a tile I
was making that was based on the green crystal tile! This one is
slightly "whiter" and more "crystal clear" than purge's edit, and I'm
still not sure if it's perfect.

It looks pretty neat in-game though, and I'm over-all happy with the
effect. Colour seems roughly equivalent to the "silver" altars.

--------------------------------------------------------------------------------
9bdb92523e | David Ploog | 2010-02-05 11:44:23 +0100

Ensure Jiyva altar at the Slime entry.
This is temporary, for testing purposes.

--------------------------------------------------------------------------------
e26c51a97c | Robert Vollmert | 2010-02-05 10:39:51 +0100

Make draconian scales force_more catch all colours.

--------------------------------------------------------------------------------
e5049f434f | Adam Borowski | 2010-02-05 10:37:51 +0100

Fix saving floats on big endian 64 bit arches.

--------------------------------------------------------------------------------
dbe4be8970 | Adam Borowski | 2010-02-05 10:37:51 +0100

Don't have stash tracking use separate versioning.  Drop another int-in-float 
abuse.

--------------------------------------------------------------------------------
ab4793bd9d | Robert Vollmert | 2010-02-05 10:29:31 +0100

Always clear message window after more() prompts.
Fixes issue #695.

Possibly this window clear could be conditional on settings. It might be
not be necessary to clear the window at all with clear_messages=false.

--------------------------------------------------------------------------------
d2cb599351 | Robert Vollmert | 2010-02-05 10:27:29 +0100

Add level gain force_more_message lines to default config.
This replaces (some of) the previously removed more() calls in a
user configurable way.

--------------------------------------------------------------------------------
3678259b77 | Robert Vollmert | 2010-02-05 10:25:36 +0100

Remove more() prompts on level gain entirely.
There was some weird skip_more code relating to macros that should
really already be handled by message.cc:more() -- at any rate this
shouldn't be a problem now that more prompts have been removed.

Also make dubious calls to redraw_screen() tiles only -- I assume
they're there to force a player doll redraw.

--------------------------------------------------------------------------------
ce17b801a9 | Eino Keskitalo | 2010-02-05 08:22:54 +0200

Fix Shoals Ziggurat levels. (wya & jarpiain)
Fixes Mantis issue #699.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
37beeaf093 | David Lawrence Ramsey | 2010-02-04 12:55:36 -0600

Since Wayne is a dwarf, give him dwarven equipment.

--------------------------------------------------------------------------------
51004da5f1 | Adam Borowski | 2010-02-04 17:23:24 +0100

Another aquarium, the fish shouldn't submerge.

--------------------------------------------------------------------------------
2f01f03caa | Johanna Ploog | 2010-02-04 16:35:02 +0100

Add LoginError's tiles for potions of brilliance/agility.

--------------------------------------------------------------------------------
396be56cb8 | Johanna Ploog | 2010-02-04 15:59:19 +0100

Apply felirx' patch, adding indication of loading state at game start.
Only happens for Tiles games when tile_title_screen == true. If said
option is set to false, or I'd guess in ASCII games, the screen stays
entirely black until the game has finished loading the database and
level maps.

--------------------------------------------------------------------------------
b7e8e24de5 | Adam Borowski | 2010-02-04 14:22:58 +0100

Fix DOS compilation.  Move this DOS-only include to AppHdr.h.

--------------------------------------------------------------------------------
bcf4fefef3 | Adam Borowski | 2010-02-04 13:38:44 +0100

Extend time counters from 23 bits (float) to 31 bits (int).
In most places, they were stored as doubles (mantissa of 52 bits), but
often passed as floats (mantissa 23 bits).  Such bugs were present in
stabwound's 92M turns game but in that version of Crawl we didn't use
absolute counters for much and turn count was (and is) an int so nothing
was visibly broken.  In current Crawl, it would either crash or trigger
an assert due to counters not adding up.

This commit drops all abuses of double to store integer values.

--------------------------------------------------------------------------------
f10e23079f | Adam Borowski | 2010-02-04 13:38:44 +0100

Hush a compiler warning (can't happen).

--------------------------------------------------------------------------------
38ace87b12 | Adam Borowski | 2010-02-04 13:38:44 +0100

Comment out a debug message that's too spammy for normal debugging.

--------------------------------------------------------------------------------
117fd1bc01 | Adam Borowski | 2010-02-04 13:38:44 +0100

Add a time limit of ~200M turns, to safeguard against time wraps.

--------------------------------------------------------------------------------
ae68d65cf7 | Robert Vollmert | 2010-02-04 13:33:28 +0100

Fix inverted logic in actor::set_position.
This is another attempt at fixing recent monster LOS bugs.

Also call monsters::reset() at the start of monsters::init_with(),
as reset() zeroes some things that init_with doesn't touch.

--------------------------------------------------------------------------------
a2367277a1 | Robert Vollmert | 2010-02-04 11:35:34 +0100

Simplify handling of glowing missiles.
They're now treated like weapons, in that the "glowing" remains
until pluses are known.

Fixes issue #686.

--------------------------------------------------------------------------------
34b625bafa | Robert Vollmert | 2010-02-04 11:35:25 +0100

Identify missile ego before throwing message.
This should make sure that a kobold doesn't fire one glowing dart,
and then darts of reaping, without any effect explaining the
identification in between.

It's not clear to me that missile egos should identify at all without
obvious effect, but going with what we have now.

--------------------------------------------------------------------------------
5536d4fd44 | Robert Vollmert | 2010-02-04 09:47:06 +0100

Restore condensing of multi-turn messages.
This requires deferring the output of the new-turn indicator
until flushing messages, instead of flushing at the start of
each turn.

--------------------------------------------------------------------------------
fd3627efae | Charles Otto | 2010-02-03 20:37:31 -0500

Lower the ballisto activation cap
Given the connectivity constraints, 25 seems like a better place for
the cap since it is now based on the number of ballistos in a connected
group rather than over the entire level.

--------------------------------------------------------------------------------
3f35257940 | Johanna Ploog | 2010-02-04 02:18:03 +0100

fight.cc: Only identify_mimic(defender) after the attack took place.
This fixes Mantis 412, unknown mimics being stabbable.
Also, identifying mimics early resulted in a mimic being identified even
if you fumble the attack.

The wall protection check returns before player_attack(), so mimics in
walls would not be identified, but that's not gonna happen anyway. Right?

--------------------------------------------------------------------------------
fbe3fadd0e | Johanna Ploog | 2010-02-04 01:45:54 +0100

Hardcode monster list description of several mimics as "mimics".
This to avoid several mimic types being described as "piles of gold".
Very hacky!

Is there any reason why gold mimics get a special name? Also, I can
understand that having an appropriate mimic type might be interesting
for vault design or in case we decide to restrict item generation by
type in certain branches, but wouldn't it be easier to just have one
mimic type and enforce the base type (if necessary) differently?

--------------------------------------------------------------------------------
7ab7353ee4 | Charles Otto | 2010-02-03 19:39:42 -0500

Merging master

--------------------------------------------------------------------------------
a9184742d2 | Charles Otto | 2010-02-03 19:21:20 -0500

Display text for mold when 'x'ing around
Also changes the mold description text.

--------------------------------------------------------------------------------
9a9b508a14 | Charles Otto | 2010-02-03 19:14:20 -0500

Don't place mold under ballistomycetes
Also make having a ballisto on a square count for the activation
connectivity check.

--------------------------------------------------------------------------------
fae6dadcc8 | Johanna Ploog | 2010-02-04 01:05:52 +0100

In mons_is_safe(), treat all unknown mimics as safe.

--------------------------------------------------------------------------------
468b5880fc | Johanna Ploog | 2010-02-04 00:42:47 +0100

Make travel refuse to enter cells adjacent to mimics.
Unfortunately, there's no special message when travel stops because of
this (no other path), though attempting to restart exploration with
'o' will give the usual "Not with ..." warning.

Another problem is that, at least, autoexplore is kinda stubborn about
its next target, so it will refuse to budge until you move your
character enough to change target priorities.

--------------------------------------------------------------------------------
d09dfcb5d7 | Johanna Ploog | 2010-02-04 00:42:46 +0100

Treat non-adjacent mimic as safe for resting/travel.
Problem: For some reason autoexplore/travel also considers adjacent
         cells as safe.

--------------------------------------------------------------------------------
530644da8a | Johanna Ploog | 2010-02-04 00:42:46 +0100

Reuse the animated weapon icon for known mimics.
It's a bit unobtrusive, but better than nothing, I guess.

--------------------------------------------------------------------------------
166e099d78 | Johanna Ploog | 2010-02-04 00:42:45 +0100

Don't display health bars for unknown mimics.
This could happen if you encounter a wounded mimic that teleported away.

--------------------------------------------------------------------------------
2f74f684ab | Johanna Ploog | 2010-02-04 00:42:45 +0100

Describe known mimics as such again, unknown still pose as items.

--------------------------------------------------------------------------------
600bd0cf03 | Johanna Ploog | 2010-02-04 00:42:45 +0100

Fix unknown mimics not being displayed in Tiles.

--------------------------------------------------------------------------------
d3e8ab7ba2 | Charles Otto | 2010-02-03 18:26:27 -0500

Name change - spore covered to mold covered
Call the fprop giant spores leave behind them mold instead of spores.

--------------------------------------------------------------------------------
3e23eabec6 | Adam Borowski | 2010-02-04 00:09:20 +0100

Flat out refuse to sac the Orb, runes and unused horn of Geryon (Mantis 610).

--------------------------------------------------------------------------------
8ee4961e91 | Adam Borowski | 2010-02-03 22:24:48 +0100

Attribute slouch kills to the player.

--------------------------------------------------------------------------------
3d10a0d733 | Robert Vollmert | 2010-02-03 21:17:42 +0100

Flush messages in msgwin_new_turn.
There were extra new-turn underscores otherwise.

--------------------------------------------------------------------------------
9616a528a5 | Robert Vollmert | 2010-02-03 20:42:55 +0100

Fix message window underscores.
This is done by reintroducing msgwin_new_turn, called at turn
start.

--------------------------------------------------------------------------------
8b9588893e | Robert Vollmert | 2010-02-03 20:18:56 +0100

Fix off-by-one error in message history.
The underscores were in the wrong places (doy, Napkin).

--------------------------------------------------------------------------------
32143c04f4 | Robert Vollmert | 2010-02-03 17:55:37 +0100

Reset --more-- line count after user input.
This should avoid some more --more-- prompts, where the user prompted
in between messages. Note that this will only work with prompts that
go through msgwin_prompt/msgwin_reply -- others should be adapted
anyway.

--------------------------------------------------------------------------------
4c43d1cda8 | Robert Vollmert | 2010-02-03 17:49:49 +0100

Unify the handling of more prompts.
The full-window more prompts and other more prompts now look
similar (either --more-- or the +, the latter with varying
colours). This should fix issues where the one type of more
prompt caused the other.

--------------------------------------------------------------------------------
171ce009c9 | Robert Vollmert | 2010-02-03 17:11:49 +0100

Message window: experimentally replace dashes by underscores.
This is visually not as pleasing, but saves another line.

--------------------------------------------------------------------------------
b278fb9ec6 | Adam Borowski | 2010-02-03 16:06:26 +0100

KPROP no_submerge, for those aquarium vaults.

--------------------------------------------------------------------------------
649eca599f | Adam Borowski | 2010-02-03 15:45:25 +0100

Let crocs and sea snakes submerge.

--------------------------------------------------------------------------------
071136d9b1 | Adam Borowski | 2010-02-03 15:45:25 +0100

Properly handle salamanders with weapons of reaching wrt submerging.

--------------------------------------------------------------------------------
4a789fbbb9 | Adam Borowski | 2010-02-03 15:45:07 +0100

Submerging changes, first stab.
Points left to address:
* amphibious creatures
* eels -- should they ever submerge?
* trapdoor spiders
* aquarium vaults

--------------------------------------------------------------------------------
5803f2e716 | Johanna Ploog | 2010-02-03 14:54:04 +0100

In doll editor, make left/right choice switch away from SHOW_EQUIP.

--------------------------------------------------------------------------------
d00e59d607 | Johanna Ploog | 2010-02-03 14:54:04 +0100

Draw dolls' hair and headgear behind shields and weapon.

--------------------------------------------------------------------------------
894a3236af | Jude Brown | 2010-02-03 22:41:56 +1000

More description tweaks (Cigotuvi, Zonguldrok, others).

--------------------------------------------------------------------------------
4cf3d6dbbf | Jude Brown | 2010-02-03 22:29:55 +1000

veto_fire, rebranding for Wucad Mu map.

--------------------------------------------------------------------------------
4aee96879e | Jude Brown | 2010-02-03 18:55:07 +1000

Further tweaks to Cloud Mage map.
Blue tiles, white tiles; switch to crystal instead, it matches the glass
walls much clearer. Still requires "ocean of clouds", and the clouds
themselves could do with being better.

--------------------------------------------------------------------------------
84887d73dd | Jude Brown | 2010-02-03 18:46:21 +1000

Tweak "random" milestone texts.

--------------------------------------------------------------------------------
fb2e546cc0 | Jude Brown | 2010-02-03 18:41:36 +1000

All variations of coloured glass tiles.

--------------------------------------------------------------------------------
85d0af3214 | Jude Brown | 2010-02-03 18:22:26 +1000

Fix Zonguldrok description, functions.

--------------------------------------------------------------------------------
e3ea1ddc58 | Jude Brown | 2010-02-03 17:28:26 +1000

Add Porkchop's altered lich tile, rename Zonguldrok lich.
Was originally known as "Zonguldrok", but dpeg expressed concern over
actually creating (pseudo-)uniques in WizLabs. I've decided to go with
"antique lich", as suggested by Stathol on IRC.

I loved both tiles, but I preferred the one with blood. I've put the
other tile in the UNUSED folder, though; I'm sure there'll be some use,
eventually!

--------------------------------------------------------------------------------
8e0b193cd0 | Jude Brown | 2010-02-03 17:09:56 +1000

Recolour metal walls for the entire set of non-light colours.

--------------------------------------------------------------------------------
88a5c7f0cf | Jude Brown | 2010-02-03 17:09:20 +1000

Don't duplicate unmarked wall tiles with marked, use Lua instead.

--------------------------------------------------------------------------------
2dbe54ae07 | Jude Brown | 2010-02-03 17:09:05 +1000

Add Porkchop's (autumnal) coloured trees.
These look excellent! I'm using them as variations on lightred, yellow
and red respectively.

--------------------------------------------------------------------------------
5d13645f84 | Jude Brown | 2010-02-03 15:55:36 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
19b67d71ca | Jude Brown | 2010-02-03 15:47:45 +1000

Fix potion of blood acquirement quantity (Sunfall).
The quantity set by the SP_VAMPIRE if block was being overwritten a
short time later. I've moved the quantity out of there and into the
block of ifs relating to qauntity at the end.

--------------------------------------------------------------------------------
3df4e2db7a | Jude Brown | 2010-02-03 12:39:12 +1000

Status message for Control Teleport spell (Porkchop).
This has been a request for ages and is really a simple matter, so I
didn't see anything wrong with just implementing it quickly.

--------------------------------------------------------------------------------
dfff495eb7 | Charles Otto | 2010-02-02 20:31:56 -0500

Keep track of and draw the path used for ballisto activation
When activating ballistomycetes draw the spore colored squares forming
the path to the ballisto being activated in red. Drop the replacement
spore message, hopefully the visual is hint enough.

--------------------------------------------------------------------------------
572a1d7601 | Charles Otto | 2010-02-02 19:07:22 -0500

Add a connectivity check to ballistomycete activation
Only consider activating ballistomycetes which are connected to the
dying spore/ballisto by spore covered squares. Also make spore
explosions cover the aoe with spores so that ballistos placed by the
explosion are connected.

--------------------------------------------------------------------------------
00c5531f19 | Johanna Ploog | 2010-02-02 20:24:59 +0100

Fix the shadow tile sometimes not being remembered correctly.

--------------------------------------------------------------------------------
4f6f8f071e | Johanna Ploog | 2010-02-02 20:09:13 +0100

Go back to storing base tile variants rather than gender. This time it actually 
works! :D

--------------------------------------------------------------------------------
569601d816 | Johanna Ploog | 2010-02-02 19:25:52 +0100

Add purge's altar tile for Fedhas, somewhat tweaked.

--------------------------------------------------------------------------------
998f886753 | Johanna Ploog | 2010-02-02 18:22:31 +0100

Replace FILLER type of tile names with the previous enum + number.
This gets rid of the too technical PLAYER_FILLER_197 type of equipment
names in the player doll editor.

Also added a few tile names in dc-player.txt that would otherwise not
be strictly be necessary.

--------------------------------------------------------------------------------
c3b7dd2657 | Johanna Ploog | 2010-02-02 17:38:17 +0100

Add doll equipment tiles: crowns and viking helmets.

--------------------------------------------------------------------------------
ded2124393 | Johanna Ploog | 2010-02-02 17:05:10 +0100

Remove unnecessary hackiness in player doll code (my bad, ugh!)
Also fix Merfolk fishtail not being handled correctly.

--------------------------------------------------------------------------------
b58e4f8ef0 | Jude Brown | 2010-02-02 21:50:19 +1000

Iskenderun's colours and tiles; brown metal wall tile (for recolouring).

--------------------------------------------------------------------------------
d5293d6eb5 | Jude Brown | 2010-02-02 21:21:00 +1000

Make Borgnjor's lab look pretty in tiles!
Also, descriptions. Still requires a scream machine and slaves actually
being drained, but this can be worked upon.

--------------------------------------------------------------------------------
70afb11246 | Robert Vollmert | 2010-02-02 10:19:26 +0100

Update message window todo list.

--------------------------------------------------------------------------------
7eb0a5f510 | Robert Vollmert | 2010-02-02 10:10:43 +0100

Unify more-shortcutting.
The new message window code distinguishes between window-full
--more-- prompts and those issued after important messages.
Only the latter had the old short-cutting code (say not
prompting during travel or in the arena); this is now done
for both.

--------------------------------------------------------------------------------
d8684ff769 | Robert Vollmert | 2010-02-02 10:08:43 +0100

Make message_store::flush_prev more robust.
Flushing a message causes it to be written out to the window,
which on occasion has caused recursive calls to flush_prev_message
(via mesclr(), say). Now we clear message_store::prev_msg before
writing it out, which should prevent this in the future.

--------------------------------------------------------------------------------
11b1253429 | Jude Brown | 2010-02-02 17:33:38 +1000

Hopefully properly update contribs.

--------------------------------------------------------------------------------
6dfb77abf8 | Jude Brown | 2010-02-02 15:16:59 +1000

Revert "Revert "Hopefully solve issues with overriden door tiles.""
This reverts commit 66e93c47af30d720145eac379161cf5e48c65da2.

Didn't actually mean to push this revert, RTILE has some other unforseen
issues that need discussion first.

--------------------------------------------------------------------------------
db97e0b063 | Jude Brown | 2010-02-02 15:15:31 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
66e93c47af | Jude Brown | 2010-02-02 14:53:32 +1000

Revert "Hopefully solve issues with overriden door tiles."
This reverts commit 78d5cc11dc2aa121798c85549d68af5ce0f92abd.

RTILE is a better solution in this instance.

--------------------------------------------------------------------------------
5aef43fce6 | Jesse Luehrs | 2010-02-01 22:43:50 -0600

remove gates to pan from the abyss
pan and the abyss are already fairly blended together in theme, and
I don't think this is a good thing... we should be working to make them
more distinct.

--------------------------------------------------------------------------------
362e60ac27 | Charles Otto | 2010-02-01 22:08:31 -0500

Experimentally introduce a cap on ballisto spread
Don't activate ballistomycetes if there are already a lot of ballistos
on the level (threshold arbitrarily set at 50).

--------------------------------------------------------------------------------
64f9c56ea6 | Charles Otto | 2010-02-01 21:43:38 -0500

Ballistomycete exp changes
Don't give experience for killing ballistomycetes, instead give
experience for killing all ballistos and giant spores on a level.

--------------------------------------------------------------------------------
5c4110d076 | Charles Otto | 2010-02-01 20:40:11 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
ballistomycetes

--------------------------------------------------------------------------------
f6105b37f7 | Charles Otto | 2010-02-01 20:35:01 -0500

Fix a typo in the ability description for evolution

--------------------------------------------------------------------------------
916903a2ab | Charles Otto | 2010-02-01 20:33:48 -0500

Fix evolution targeting inappropriate monsters
Fix a bug where evolution would target monsters of an unsuitable type
if the player's target was set.

--------------------------------------------------------------------------------
ab45843ef3 | Charles Otto | 2010-02-01 20:33:30 -0500

Don't do evolution if the user cancels at the prompt

--------------------------------------------------------------------------------
51c89be0d4 | David Lawrence Ramsey | 2010-02-01 19:20:34 -0600

Don't allow player ghosts to worship Fedhas, since Fedhas hates undead.

--------------------------------------------------------------------------------
3efded09e3 | David Lawrence Ramsey | 2010-02-01 18:55:14 -0600

Tweak Cheibriados message, for consistency.

--------------------------------------------------------------------------------
9dcb421fb3 | Johanna Ploog | 2010-02-02 00:05:52 +0100

Create a new subfolder rltiles/UNUSED/features.
Filled with appropriate tiles that up to now were included in "other".

--------------------------------------------------------------------------------
01b3945b9c | Johanna Ploog | 2010-02-02 00:02:21 +0100

Add a rusted variant of the sewer drain tile into UNUSED/other.
The sewer portal currently only leaves floor behind, but maybe we can
use it anyway, somehow. This'd probably also require changing the
feature description, but I leave that to the vault wizards. :)

--------------------------------------------------------------------------------
282b56028b | Johanna Ploog | 2010-02-01 21:04:48 +0100

Replace the very much outdated dolls.txt file with a mostly clean one.
Two of the dolls have fixed gender and are wearing trousers;
everything uses the equipment settings.

--------------------------------------------------------------------------------
58a2c0f487 | Johanna Ploog | 2010-02-01 21:04:48 +0100

Switch back to storing gender (rather than base tile) in dolls.txt.
I'll have to handle base tile variants (for e.g. Centaurs) some other
way, preferably by storing them per-species, rather than per-character.

Also, disallow water merfolk tiles in the doll editor. This is confusing
and probably not what the player wants.

--------------------------------------------------------------------------------
428b9d0a44 | David Lawrence Ramsey | 2010-02-01 09:05:24 -0600

Fix compilation.

--------------------------------------------------------------------------------
904006b07a | Johanna Ploog | 2010-02-01 14:10:17 +0100

Replace demons' number icons with coloured pentagrams.
The adjacent colours are a bit easy to mix up, but it's probably an
improvement over the technical numbers. Also, I'm proud of myself
for managing such a nice pentagram. :)

--------------------------------------------------------------------------------
a8088faf95 | Robert Vollmert | 2010-02-01 13:39:46 +0100

Sort glyphs in feature list.
This is a naive sort by char value and colour. Feel free to
adapt to your likes: Just modify _comp_glyphs to sort glyphs
by other criteria. To sort by information that's not in the
glyphs (say feature properties), add that information into
feature_list::data.

--------------------------------------------------------------------------------
09a8e22467 | Robert Vollmert | 2010-02-01 13:38:13 +0100

Revert "Sort glyphs in feature list."
This reverts commit 7bbfd0ebd11e100050581975d97368e723e43f95.

--------------------------------------------------------------------------------
7bbfd0ebd1 | Robert Vollmert | 2010-02-01 13:35:58 +0100

Sort glyphs in feature list.
This is a naive sort by char value and colour. Feel free to
adapt to your likes: Just modify _comp_glyphs to sort glyphs
by other criteria. To sort by information that's not in the
glyphs (say feature properties), add that information into
feature_list::data.

--------------------------------------------------------------------------------
6e8c4732ca | Jude Brown | 2010-02-01 22:34:49 +1000

Use Purge's Ice Cave and Sewer entry tiles.
Also uses the Ice Cave entry as the exit for the Ice Caves, not sure if
this is acceptable. I haven't done the same for the Sewer, as those
entrances are described differently.

--------------------------------------------------------------------------------
e8d74b2afc | Jude Brown | 2010-02-01 22:08:13 +1000

Add Purge's grave stones, use them in Zonguldrok.

--------------------------------------------------------------------------------
602ef5e269 | Jude Brown | 2010-02-01 21:52:54 +1000

Tweak WALL_STONE_DARK, add Porkchop's marked dark stone walls.
Use them for Doroklohe; also use yellow stone temporarily until we come
up with a nice looking tile for use on the tombs. If it comes to it, we
may just have to swap the colour scheme and use the marked tiles for the
tombs instead.

--------------------------------------------------------------------------------
31974d0185 | Jude Brown | 2010-02-01 21:35:20 +1000

Use vines/dirt floor for Erinya.

--------------------------------------------------------------------------------
a19deafe80 | Jude Brown | 2010-02-01 21:29:46 +1000

Erinya->Eringya (greensnark), vine and dirt tiles for that map.

--------------------------------------------------------------------------------
e9ff1df975 | Jude Brown | 2010-02-01 21:09:42 +1000

White fountain variant, for use in the Tukima map.

--------------------------------------------------------------------------------
0d15df53f7 | Adam Borowski | 2010-02-01 11:34:13 +0100

Lair doesn't have 10 levels anymore, update vault depths.

--------------------------------------------------------------------------------
62cb3ae122 | Jude Brown | 2010-02-01 19:54:56 +1000

Use the last_tile trick for Tukima.

--------------------------------------------------------------------------------
78d5cc11dc | Jude Brown | 2010-02-01 19:53:07 +1000

Hopefully solve issues with overriden door tiles.
This would occasionally cause an assertion error (more often than not).
See the comment in tilepick.cc's _finalise_tile for more information.
This may eventually cause issues if we attempt to recolour doors, but
this can probably be solved by making them variations of each other.

--------------------------------------------------------------------------------
a3829d4081 | Jude Brown | 2010-02-01 17:52:26 +1000

Use Porkchop's dark stone tiles for Wucad Mu and Tukima.

--------------------------------------------------------------------------------
053c886a01 | Jesse Luehrs | 2010-02-01 01:02:25 -0600

add ch_deny_autopickup, and make autopickup_exceptions.txt use it

--------------------------------------------------------------------------------
c8933d06d4 | Jude Brown | 2010-02-01 16:46:13 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
7c933e8fe3 | Enne Walker | 2010-01-31 21:58:48 -0500

[627] Additional slime creature tiles. (Porkchop)

--------------------------------------------------------------------------------
61b8b84e86 | Steven Noonan | 2010-01-31 18:58:30 -0800

lua: fix gitignore to hide .cflags and object files
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c8bd3c875e | Jude Brown | 2010-02-01 10:46:40 +1000

Add a check for feat==floor in feature's tile override.
This means that a feature that is converted to a floor tile (such as an
archway when timing out portal vaults, or a statue when disintegrated)
will revert to use the floor's tile (or the default for that level)
instead of the overridden tile being displayed still.

I've left the code that changes the tile in the timed markers (and 1-way
stairs) as people likely won't want to use the same tile for the
timed-out feature ("empty arch", or whatever) as they would for the
initial entrance.

--------------------------------------------------------------------------------
77f1f94a24 | Steven Noonan | 2010-01-31 14:19:38 -0800

makefile: don't include $(DEPS) if $(DEPS) is an empty string
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f7fbd82d37 | Steven Noonan | 2010-01-31 14:15:36 -0800

msvc: fix ambiguous calls to sqrt(), log(), etc
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cccca3b98f | Steven Noonan | 2010-01-31 14:15:36 -0800

spells4.cc: fix if statement and indentation
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
034343cf5b | Steven Noonan | 2010-01-31 14:15:35 -0800

msvc.h: add math.h for floor() and ceil()
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
dc2340242b | Steven Noonan | 2010-01-31 14:15:34 -0800

msvc.h: move include to before externs.h to fix warnings
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
76f1fa8aa2 | Steven Noonan | 2010-01-31 14:15:33 -0800

msvc: fix build problems
build.h and compflag.h weren't being generated, and the projects
didn't have the latest source tree layout.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3922b3f514 | Steven Noonan | 2010-01-31 14:15:32 -0800

gitignore: ignore MSVC incremental linker files
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
24cef5c20d | Johanna Ploog | 2010-01-31 22:14:53 +0100

Re-add the -5 to follower::place() monster loop.
I don't understand its purpose, but commenting out the -5 was entirely
accidental. There's no comment either. Can anyone explain?

--------------------------------------------------------------------------------
e350cfb814 | Darshan Shaligram | 2010-02-01 01:16:13 +0530

[Mantis 643] Fix shop items being reported by 'x' look around and autoexplore.

--------------------------------------------------------------------------------
c756fcc477 | Darshan Shaligram | 2010-01-31 21:42:25 +0530

Fix bogus warnings about armour/shield penalties blocking hits (TGW).

--------------------------------------------------------------------------------
93057974cd | Johanna Ploog | 2010-01-31 15:56:03 +0100

Make Yred's gifts follow through stairways even if behind zombies.
Monsters that would qualify as followers but are incapable of
using stairs now also get the MF_TAKING_STAIRS flag. In files.cc,
_grab_follower_at() they get filtered out from transit, but this
way followers not adjacent to the player, but connected via other
allies can be considered anyway.

Tested for Beogh and Yredelemnul, without problems.

In practise this currently only matters for Yredelemnul if your
gifted undead are not adjacent to you, but rather standing behind
some zombies or skeletons. However, I am certain we'll find quickly
other applications, too. :)

--------------------------------------------------------------------------------
72324ce5f5 | Darshan Shaligram | 2010-01-31 19:49:15 +0530

Update Ozocubu's armour description to spell out the kinds of armour that block 
it.

--------------------------------------------------------------------------------
977d6b9069 | Darshan Shaligram | 2010-01-31 19:46:51 +0530

Change light armour checks to EP < 2 (all the existing light armours except 
elven armours).
Note that Ozocubu's armour will no longer work with elven ring mail and the 
like.

--------------------------------------------------------------------------------
688dabc3f9 | Eino Keskitalo | 2010-01-31 16:15:40 +0200

Recoloured the crocodile tile.
Put the old giant lizard tile into UNUSED.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
2b02a1eb64 | Darshan Shaligram | 2010-01-31 18:58:20 +0530

Interim armour/dodging/stealth training changes to remove heavy/light armour 
distinction.
This is a temporary change to ADS training, which we'll revisit
early in 0.7. The intent is not to change ADS training radically
since we have only a few weeks to go before 0.6.

For reference, some armour masses:
robe - 60, animal skin - 100, leather - 150, chain - 400, plate - 650

- Active Armour training still uses x_chance_in_y(mass, 1000),
  but trained amount is 1 everywhere, whereas armour training
  amount used to be 1.5 in melee combat.

- Active Dodging training happens on a probability of
  !x_chance_in_y(mass, 800), but is otherwise unchanged.

- Passive Armour training is allowed for all body armour now (vs
  only heavy armour). The inverted mass check for passive Armour
  training is now fixed.

- Passive Stealth training is allowed in all body armour, but the
  mass check is now !x_chance_in_y(mass, 1000) (was random2(mass) < 100).

- Stealth penalty now uses Rob's formula of 6 * EVP * EVP, where
  EVP is the raw evasion penalty of the worn body armour.

- Active stealth penalty uses a probability of !x_chance_in_y(mass, 1000)
  instead of checking for light armour, and is otherwise unchanged.

The heavy/light armour distinction is still made in some places:
- To check whether Ozocubu's armour is usable.
- To decide whether to allocate Armour or Dodging skill at character creation.
- To warn about armour penalties in the tutorial.

--------------------------------------------------------------------------------
3fc3ad01a0 | Jude Brown | 2010-01-31 21:21:31 +1000

Throwing the Abyssal Rune into deep water destroys it.
Does what it says on the tin.

--------------------------------------------------------------------------------
f81f2d07bf | Jude Brown | 2010-01-31 21:21:31 +1000

Don't give gifts on hostile terrain; don't accept unaccessible sacrifices.
This commit adds a check to all three God gift blocks that relate to
items (Nemelex's function, Okawaru/Trog, and Vehumet/Sif
Muna/Kikubaaqudga block) to ensure that your current position isn't over
hostile terrain. If it is, it breaks out without actually doing
anything; it should break out before any timers are incremented, so it
shouldn't have any effect on the actual gift-giving.

I've also altered the sacrifice code, which was using igrd instead of
you.visible_igrd; I'm not sure if this was deliberate or not, but being
able to sacrifice items you can no longer access doesn't make any sense.

Hopefully, I've done all of this right. I had thought there was already
checks for hostile terrain and god gifts, but I wasn't able to find any
of them.

--------------------------------------------------------------------------------
ceefb5e974 | Darshan Shaligram | 2010-01-31 16:47:05 +0530

[Mantis 609] Autoexplore no longer goes into deep water if the player has ice 
form.

--------------------------------------------------------------------------------
be57873786 | Darshan Shaligram | 2010-01-31 16:37:47 +0530

Don't allow aquamancer wave to push actors into hostile terrain.

--------------------------------------------------------------------------------
d9c139202b | Darshan Shaligram | 2010-01-31 16:23:07 +0530

Fix subvault validation not working (Mu).

--------------------------------------------------------------------------------
eb308c9a17 | Jude Brown | 2010-01-31 19:00:37 +1000

Use visible_igrd instead of igrd for item_check, top_item_at.
Looks like this was missed. Should prevent instances where you are
hovering over lava/deep water and you "You see <XYZ> here." if you
cannot access it.

--------------------------------------------------------------------------------
3e58f06533 | Darshan Shaligram | 2010-01-31 14:17:09 +0530

Don't allow Mara to clone Mara fakes.

--------------------------------------------------------------------------------
29148ae7c8 | Darshan Shaligram | 2010-01-31 14:05:09 +0530

Give 1/3 of all vanilla merfolk throwing spears (was 2/3) (due).

--------------------------------------------------------------------------------
6b485cb309 | Jude Brown | 2010-01-31 17:07:20 +1000

Only mark unidentified items as "was cursed".
This should prevent some of the "was cursed" spam that people have been
complaining about. As always, you can disable this completely by setting
the option:

autoinscribe_cursed = false

In your .crawlrc.

--------------------------------------------------------------------------------
891a5325e8 | Jude Brown | 2010-01-31 15:49:20 +1000

Add giant spores's old glyph to the 0.5.2 settings file.

--------------------------------------------------------------------------------
7d764513a9 | Jude Brown | 2010-01-31 15:31:22 +1000

Fix reference to ##crawl (was #crawl) (Sunfall)

--------------------------------------------------------------------------------
401081dd1a | Jude Brown | 2010-01-31 13:50:45 +1000

Add scoprions to 052 settings, make earth elementals elementally coloured.

--------------------------------------------------------------------------------
2980918128 | Jude Brown | 2010-01-31 12:21:56 +1000

Don't give EXP/2 for pacified MF_NO_REWARD monsters.
This should fix the issue where Pikel's spell being broken gives extra
EXP, and doesn't overly inflate (130 * 5 / 2 + 983) the EXP gained from
killing him.

--------------------------------------------------------------------------------
e800d42887 | Jude Brown | 2010-01-31 11:58:32 +1000

Tweak Joseph's placement.
Was 10-13, now 7-12. As Twinge points out, he's basically a weaker ogre
that doesn't always get nice equipment.

--------------------------------------------------------------------------------
7fbd0fab72 | Darshan Shaligram | 2010-01-31 00:50:42 +0530

Fix capitalization when Mara uses summon illusion on another monster.

--------------------------------------------------------------------------------
eef60edaee | Darshan Shaligram | 2010-01-31 00:40:02 +0530

Don't show more() prompts for arena.

--------------------------------------------------------------------------------
9b6df87a5f | Darshan Shaligram | 2010-01-31 00:31:48 +0530

Don't let Mara clone player illusions (when enslaved), fix attitude for 
monsters cloned by enslaved Mara (syllogism).

--------------------------------------------------------------------------------
8e0fc9e6af | Darshan Shaligram | 2010-01-31 00:09:56 +0530

Delete unsuitable enchantments from Mara-cloned monsters.

--------------------------------------------------------------------------------
eb06c7ae72 | Darshan Shaligram | 2010-01-30 23:53:28 +0530

Allow Mara to clone any foe, not just the player.
When cloning the player, Mara will now create MONS_PLAYER_ILLUSION instead of 
MONS_PLAYER_GHOST. Illusions are identical to ghosts, but will get the correct 
breath weapon (for draconian players) and the correct holiness (i.e. undead 
only if the player is undead).

Clones also inherit appropriate enchantments from their original, so if the 
player/other target is berserk, the clone will also be berserk.

--------------------------------------------------------------------------------
b2dc39ecdd | Robert Vollmert | 2010-01-30 18:56:47 +0100

Initialize actor::changed_los_center to true.
I hope this fixes LOS bugs (eyes paralyzing through walls, priests
smiting through walls); these monsters presumably never had their
LOS initialized.

--------------------------------------------------------------------------------
3a5da6b93f | Robert Vollmert | 2010-01-30 17:42:17 +0100

Revert "Convert mons_is_fast to mons_fastness."
This reverts commit 98aa8c95f48c49502db9bbcb37841a17258e3944.

--------------------------------------------------------------------------------
0dc473ac3f | Robert Vollmert | 2010-01-30 17:42:17 +0100

Revert "Use mons_fastness() to determine Che piety gain."
This reverts commit 9ecba229098ad339ffe77cc0ae9a0b81293835c2.

--------------------------------------------------------------------------------
2597c232fd | Robert Vollmert | 2010-01-30 17:42:16 +0100

Revert "Give Che piety for monsters with hasty spells."
This reverts commit 3ebfe9c7dea7e3d617e38602497ae44adc2dc0e7.

--------------------------------------------------------------------------------
8c843e4cf5 | Darshan Shaligram | 2010-01-30 20:46:19 +0530

Don't combine armour and shields when reporting what made the PC miss a melee 
attack.

--------------------------------------------------------------------------------
d4f1aa480a | Darshan Shaligram | 2010-01-30 20:30:06 +0530

Use Shoals:X instead of Shoal:X.
The status area used Shoals:X for levels in the Shoals, while .des files and 
the logfile used Shoal:X, which caused a lot of confusion. Both now use 
"Shoals".

--------------------------------------------------------------------------------
a42752a06e | Jude Brown | 2010-01-30 20:38:43 +1000

Tweak entrance portals for Volcanos and tiles.

--------------------------------------------------------------------------------
1b8735b113 | Jude Brown | 2010-01-30 20:05:34 +1000

Use Volcano portal tile for the Volcano exits.

--------------------------------------------------------------------------------
39fb33df3a | Jude Brown | 2010-01-30 19:59:57 +1000

Framework for portal vault entries having tiles; Volcano tile (purge).
Unfortunately, just using tile("O = <xyz>") is not enough, as the tile
won't go away when the portal is actually removed; I've added a new Lua
function "tile_feat_changed", which specifically alters
env.tile_flv(gc).feat, allowing you to change the override feature tile
on-the-fly.

Probably could do with tile_wall_changed and tile_floor_changed
variants, but they aren't needed at the minute and I'm not sure I can
see a use for them just yet.

I've also altered the 1way stair (and timed stair marker variants) to
accept a "floor_tile" as well as a "floor" parameter. If provided, this
will be the string value that is passed to tile_feat_changed when the
marker times out (or the player uses the stair).

If not provided, it will default to no tile (using the default tile of
whatever feature is provided in "floor").

Finally, use Purge's dark tunnel tile for Volcano entry. Thank you!

--------------------------------------------------------------------------------
2f29aed707 | David Lawrence Ramsey | 2010-01-29 21:30:13 -0600

Remove the M_ACTUAL_SPELLS flag from fake Maras, for consistency with the real 
Mara.

--------------------------------------------------------------------------------
e211096e8a | Jude Brown | 2010-01-30 13:21:15 +1000

Tweak Mara resists, experience levels.
His experience was reduced by reducing his HD, so I've increased the
modifier to keep it in the 7000 experience points range (to compensate
for the fact that he is roughly three uniques put together).

I've also removed the electricity resistance and instated two levels of
fire resistance, to compensate for the fact that the clones will shoot
through each other.

--------------------------------------------------------------------------------
929bb7055a | Robert Vollmert | 2010-01-29 19:16:26 +0100

Merge branch 'master' into che

--------------------------------------------------------------------------------
042abbcf03 | Robert Vollmert | 2010-01-29 19:06:47 +0100

Che gives piety for eating perma-food when full.

--------------------------------------------------------------------------------
3f1595aa4e | Robert Vollmert | 2010-01-29 18:50:52 +0100

Change wizard_set_piety to use lose/gain_piety.
This allows checking piety-change effects.

--------------------------------------------------------------------------------
f6f5b63df2 | Robert Vollmert | 2010-01-29 18:50:47 +0100

Che messages for gaining/losing ponderous support at *.

--------------------------------------------------------------------------------
3ebfe9c7de | Robert Vollmert | 2010-01-29 18:38:41 +0100

Give Che piety for monsters with hasty spells.

--------------------------------------------------------------------------------
e30f19e901 | Robert Vollmert | 2010-01-29 18:28:34 +0100

Make Che support the use of ponderous armour per dpeg's design.
Che supports up to piety-rank (number of *'s) pieces of
ponderous armour, giving resists rN, rC, rF for the first three,
and +1 to all stats for each.

The code mostly lives in the new file godpassive.cc that's meant
to collect passive god effects. Changes to piety and number of
equipped ponderous items result in calls to che_change_level
which will do what needs to be done.

--------------------------------------------------------------------------------
aef2564627 | Robert Vollmert | 2010-01-29 18:27:33 +0100

Call armour_wear_effects after ponderifying equipped armour.
This is generally good because you get the equip message.

Also, there'll be Che support for equipping ponderous armour,
so we need to simulate that here.

--------------------------------------------------------------------------------
2361941a8c | David Lawrence Ramsey | 2010-01-29 09:52:17 -0600

Remove integer_sqrt() and replace it with sqrt().

--------------------------------------------------------------------------------
7ad2e159d5 | David Lawrence Ramsey | 2010-01-29 09:50:33 -0600

Switch ouch.cc to C++-style includes.

--------------------------------------------------------------------------------
b1084de265 | Haran Pilpel | 2010-01-29 17:23:04 +0200

If a monster is over deep water or laval, mention it in the Aim line. or lava.

--------------------------------------------------------------------------------
ba924a0dbd | Eino Keskitalo | 2010-01-29 17:11:53 +0200

Make do_layout respect msg_min_height option. Clarify the options_guide entry 
for it.
Now the message overlay (in small resolutions/window sizes) will take more 
space by default, six lines instead of five. Users can get the old behaviour by 
setting msg_min_height to 5.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>
Signed-off-by: Janne Lahdenpera <felirx@gmail.com>

--------------------------------------------------------------------------------
fcb892452a | Haran Pilpel | 2010-01-29 16:43:46 +0200

Change (fix?) gold donation behaviour.
Used to be that you got piety proportional to g * floor(log(g)), now you'll
get piety proportional to g * log(g).

--------------------------------------------------------------------------------
5f6162a4a0 | Haran Pilpel | 2010-01-29 16:43:46 +0200

Nuke a whole lot of old-style casts, and remove some casts completely (you 
don't need to cast an X* to a void* and you don't need to cast arguments to 
math.h functions such as sqrt.)

--------------------------------------------------------------------------------
9ecba22909 | Robert Vollmert | 2010-01-29 14:52:53 +0100

Use mons_fastness() to determine Che piety gain.
mons_fastness returns an integer (currently 0 <= x <= 4); positive
means fast. Piety gain is between 1 and x for fast monsters.

In particular, Che piety gain is now independent of player
speed.

--------------------------------------------------------------------------------
98aa8c95f4 | Robert Vollmert | 2010-01-29 14:52:53 +0100

Convert mons_is_fast to mons_fastness.
This can return higher levels of fast.

For the moment, it just considers unmodified monster movement speed.

--------------------------------------------------------------------------------
f3937104d9 | Robert Vollmert | 2010-01-29 14:52:53 +0100

Revert "Cheibriados piety loss for unequipping ponderous armour."
This reverts commit 44ecb0af9a9bd904770fd64246e043088f4a2ddc.

Conflicts:

	crawl-ref/source/religion.cc

--------------------------------------------------------------------------------
98b41f16e0 | Robert Vollmert | 2010-01-29 14:52:52 +0100

Revert "Give a message when removing ponderousness as a CB worshipper."
This reverts commit 26ebeafe33e9b057f16087013c2fa17de4ab6c7d.

Conflicts:

	crawl-ref/source/religion.cc

--------------------------------------------------------------------------------
962aca832a | Robert Vollmert | 2010-01-29 14:52:52 +0100

Revert "Add another grade for piety loss after mere -10 "extremely guilty"."
This reverts commit cfdaf57f2fb02ad5a3d220cc03d6636969ccc330.

--------------------------------------------------------------------------------
ba57119f95 | Robert Vollmert | 2010-01-29 14:52:52 +0100

Bump minor version for previous revert.

--------------------------------------------------------------------------------
4ba7f0d8da | Robert Vollmert | 2010-01-29 14:52:52 +0100

Revert "Add field player::che_saved_ponderousness."
This reverts commit 364737a546fd5b3fb1fa0759b881a6be47baf895,
apart from the minor version bump.

--------------------------------------------------------------------------------
7500f71d96 | Robert Vollmert | 2010-01-29 14:52:52 +0100

Revert "Optionally count melded armour in player_equip_ego_type."
This reverts commit 9d6ab8d275d21ce659a14cf727e84e8a830348aa.

--------------------------------------------------------------------------------
025f0d922d | Robert Vollmert | 2010-01-29 14:52:51 +0100

Revert "Enable Cheibriados prayer, tracking ponderousness at start and end."
This reverts commit bc868ace66093296dceba88244524262d8fd46dd.

--------------------------------------------------------------------------------
febb03e62a | Robert Vollmert | 2010-01-29 14:52:51 +0100

Revert "Don't cut piety for unpondering during prayer."
This reverts commit 978a9999a27697b7ed5f5cf91732cec0d1063bd8.

--------------------------------------------------------------------------------
d6fa61fd50 | Robert Vollmert | 2010-01-29 14:52:51 +0100

Revert "Make DID_UNPONDEROUS piety cut depend on level."
This reverts commit 1511ae9402e547563ca330834e31a4e17641732d.

Conflicts:

	crawl-ref/source/godconduct.cc

--------------------------------------------------------------------------------
721a4e7bc5 | Jude Brown | 2010-01-29 23:32:30 +1000

Fix reagents not appearing in wield menu. (#602)

--------------------------------------------------------------------------------
cb1ee35260 | Jude Brown | 2010-01-29 22:15:23 +1000

Whoops.

--------------------------------------------------------------------------------
2cf65be4db | Jude Brown | 2010-01-29 22:10:26 +1000

Fix tiles.

--------------------------------------------------------------------------------
b4f4e76f12 | Jude Brown | 2010-01-29 21:40:35 +1000

Fully finish the giant iguana -> iguana change.

--------------------------------------------------------------------------------
0f8e2e0cd2 | Jude Brown | 2010-01-29 21:34:22 +1000

Fix "was cursed was cursed was cursed" ad infinitum.
Autoinscribe cursed will no longer add a "was cursed" inscription if the
item was previously cursed. There have been some suggestions that only
items which you didn't see being cursed should be marked as "was
cursed".

This would require some sort of tracking flag, ISFLAG_SAW_BEING_CURSED,
or something similar to this, to implement properly. A bit too much work
for now, so this should suffice as a simple fix.

--------------------------------------------------------------------------------
dbd733c53b | Jude Brown | 2010-01-29 21:09:27 +1000

Rename "giant iguana" to "iguana".
As TGW points out, green iguana grow to an average of three to six feet
long; gila monsters only grow to a maximum of two feet long, but are
defined as being larger and heavier than iguanas.

I think that using "giant" as a metaphor for "dangerous" isn't
particularly necessary, threats can be identified in other ways.

--------------------------------------------------------------------------------
fab2318e7c | Robert Vollmert | 2010-01-29 11:56:28 +0100

Fix godconduct.cc indentation.

--------------------------------------------------------------------------------
b4307e0d21 | Robert Vollmert | 2010-01-29 11:15:00 +0100

Randomize movement energy loss.

--------------------------------------------------------------------------------
b5f40eae11 | Robert Vollmert | 2010-01-29 10:23:44 +0100

Revert "Randomise monster energy slightly."
This reverts commit 78d78651f0be33a7ec51905503dd5187b88bb67f.

This branch is for an alternative approach. Goals:
* Keep the pillar dancing nerf: same speed monster can hit you
  occasionally.
* Avoid normal speed monsters hitting you twice in melee.
* Avoid ranged attackers coming into view and shooting, or you
  moving into attackers view and them shooting twice.

--------------------------------------------------------------------------------
56544e8772 | Robert Vollmert | 2010-01-29 10:20:51 +0100

Revert "An attempt at preventing "double" more prompts."
This reverts commit 089a10b3131f38cfa49ed5c20439fcccf46783bd.

Didn't work, because the + prompt and hence window clearing is
only done *after* issuing the --more-- prompt.

--------------------------------------------------------------------------------
1b139c3dd7 | David Ploog | 2010-01-29 10:06:15 +0100

Very minor tweaks to Ctrl-O screen.

--------------------------------------------------------------------------------
9e9125fb4d | Nathaniel Rook | 2010-01-29 08:16:37 +0100

Make fulsome distillation not prompt the player when there is only one corpse.

--------------------------------------------------------------------------------
8775cc39d4 | Robert Vollmert | 2010-01-28 22:05:19 +0100

Fix inverted logic in previous large rock commit.
Also quiet a shadowing warning.

--------------------------------------------------------------------------------
9b8f131190 | Robert Vollmert | 2010-01-28 21:24:28 +0100

Fix blank message when large rock shatters in view.

--------------------------------------------------------------------------------
d9fc357306 | Johanna Ploog | 2010-01-28 20:18:50 +0100

Apply patch by Cryptic: New Xom effect "Snakes to sticks".
Turns hostile snakes in los into wooden weapons. Numbers still subject
to change.

--------------------------------------------------------------------------------
8b27969cab | Johanna Ploog | 2010-01-28 20:18:50 +0100

Suppress debugging messages when creating Xom debugging stats file. Also output 
mapping/exploration estimate in the debugging header.

--------------------------------------------------------------------------------
f037188784 | Adam Borowski | 2010-01-28 18:46:24 +0100

Make elementals 'E', in elemental (duh) colours.
I'm afraid this glyph, while mnemonic, looks butt-ugly.  My own config
used '&' but that's pan lords.  Perhaps we can default to something else
at least in Unicode?  There's currently no support for default monster
glyphs being different across charsets, but that can be added -- and that's
already the case for items and map features.

--------------------------------------------------------------------------------
0edf9c3eeb | Adam Borowski | 2010-01-28 18:46:24 +0100

Make efreets 'R'.

--------------------------------------------------------------------------------
2e70fd5677 | Robert Vollmert | 2010-01-28 18:36:35 +0100

Comment on once-per-turn mesclr() in main.cc.

--------------------------------------------------------------------------------
7aa8b63a47 | Robert Vollmert | 2010-01-28 18:35:18 +0100

Treat CK_MOUSE_CMD as synthetic (tiles).
Not sure this is quite the right way to do things.

Tiles getch() returns CK_MOUSE_CMD to mean that it's handled some event
itself. The main loop checks the key against is_synthetic_key() to
determine whether to do the once-per-turn mesclr(). This should fix some
tiles actions getting cleared from the message window prematurely.

This fixes issue #572.

--------------------------------------------------------------------------------
6642393eb2 | Eino Keskitalo | 2010-01-28 17:59:35 +0200

Use mons_is_firewood as suggested by Rob.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
8279fbb4ea | Darshan Shaligram | 2010-01-28 21:07:00 +0530

[Mantis 595] Fix downstairs missing in Dis.

--------------------------------------------------------------------------------
c448164974 | David Ploog | 2010-01-28 13:44:49 +0100

Add Henry to CREDITS.

--------------------------------------------------------------------------------
0e05a7b8ee | Robert Vollmert | 2010-01-28 13:40:28 +0100

Fix compile warning for int conversion.
Should probably make iround() from ray.cc accessible instead.

--------------------------------------------------------------------------------
ce656e131f | Robert Vollmert | 2010-01-28 13:40:17 +0100

Convert overmap to get the sorted list of gods from religion.cc.
There should now be just one place that stores whether a god
is a temple god, hence less chance of breakage if the list of
gods gets changed.

--------------------------------------------------------------------------------
61a64f8952 | Robert Vollmert | 2010-01-28 13:34:03 +0100

Sort temple_god_list by name.
This shouldn't affect old uses, and should allow using this
in the overmap.

Also add nontemple_god_list.

This could be done without sorting if we just sorted the
god_type enum appropriately:

GOD_NO_GOD,
GOD_CHEIBRIADOS,
GOD_FIRST_GOD = GOD_CHEIBRIADOS,
...
GOD_ZIN,
GOD_LAST_TEMPLE_GOD = GOD_ZIN,
GOD_BEOGH,
GOD_FIRST_NONTEMPLE_GOD = GOD_BEOGH,
GOD_JIYVA,
GOD_LUGONU,
GOD_LAST_GOD = GOD_JIYVA,
NUM_GODS

But then, sorting shouldn't really hurt.

--------------------------------------------------------------------------------
ded71b8801 | Robert Vollmert | 2010-01-28 13:34:02 +0100

temple_god_list: Factor out static function _is_temple_god.

--------------------------------------------------------------------------------
cf06bd33be | Robert Vollmert | 2010-01-28 13:34:02 +0100

Minor formatting.

--------------------------------------------------------------------------------
0202c38c78 | Robert Vollmert | 2010-01-28 13:32:11 +0100

Remove magic number one: first non-dungeon branch.

--------------------------------------------------------------------------------
c4fe04ddb2 | Robert Vollmert | 2010-01-28 13:32:11 +0100

Make local functions static.

--------------------------------------------------------------------------------
8c4f12f832 | Adam Borowski | 2010-01-28 13:25:50 +0100

Show penance on Ctrl-O.

--------------------------------------------------------------------------------
dbf986fe47 | Adam Borowski | 2010-01-28 13:06:17 +0100

Fix splelling errors in the source.

--------------------------------------------------------------------------------
da6165bb77 | Henry | 2010-01-28 12:34:23 +0100

Text changes for information and space optimization.

--------------------------------------------------------------------------------
8b75b7f501 | Henry | 2010-01-28 12:33:32 +0100

Updated Overmap (^O) output
* Dungeon is now added to the list of seen branches.
* All guaranteed altars are displayed, gray if unseen, white otherwise.
* Unguaranteed altars appear once they are found.
* Level annotations have been condensed to save space.

--------------------------------------------------------------------------------
5db597ef1e | Adam Borowski | 2010-01-28 11:44:24 +0100

Make AUTOMATIC_HIT work even vs DMsl, invis or glow.
The chances to avoid it with DMsl were still once in a blue moon
(base to-hit 1500), so it's not a noticeable change, and it makes
tracer logic simpler.

--------------------------------------------------------------------------------
45e10df5f7 | Jude Brown | 2010-01-28 19:50:21 +1000

dlua Wrapper for item identification status.
Can be passed a series of string values, any combination of: curse,
type, pluses, properties, or simply passing the string "any" or not
passing any string value will check against that mask.

--------------------------------------------------------------------------------
f5ba7e9c2b | Robert Vollmert | 2010-01-28 10:33:37 +0100

Fix second ring not being displayed in ring remove prompt.

--------------------------------------------------------------------------------
515f1bd24a | Vsevolod Kozlov | 2010-01-28 12:21:46 +0300

Update manpage.

--------------------------------------------------------------------------------
5e2f8f48da | Eino Keskitalo | 2010-01-28 09:52:21 +0200

Really fix the Cause Fear & plants commit.
I managed to:
- commit a non-working version locally
- sleep for 8 hours
- fix it but not commit
- make another commit
- think "oh I need to amend these beam.cc changes to that earlier commit"
- git reset --hard HEAD^ (wiping the uncommitted changes to beam.cc)
- git commit --amend beam.cc (did nothing)
- git cherry-pick the another commit
- push

What I should've done was to git stash the beam.cc changes, then reset, then 
unstash, then amend, then cherry-pick, then push.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ec4deecb44 | Jude Brown | 2010-01-28 17:36:57 +1000

Fix compilation.
immobile_monster is a mon-act.cc-only variable that isn't exported. I
think what is being looked for here is mons_class_is_stationary, which
checks for immoving monsters, not ones that are merely currently
immobile.

--------------------------------------------------------------------------------
32ddccf01d | Jude Brown | 2010-01-28 17:23:12 +1000

Buff and nerf Mara, in the same breath! (doy)
As doy points out, bolt of lightning is around 3d24 at Mara's current
HD; combining this with two clones usually means for a pretty quick
death. Bolt of fire, while stronger (apparently around 3d27), is a
slight nerf because it doesn't bounce, and a lot more people are likely
to have rF or access to a source of rF by the time you run into him.

I wasn't particularly attached to lightning bolt, either. :-)

--------------------------------------------------------------------------------
a2f5dc160d | Eino Keskitalo | 2010-01-28 09:17:50 +0200

Add Windows thumbnail files to .gitignore.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3ff03b4de9 | Eino Keskitalo | 2010-01-28 09:17:49 +0200

Cause Fear shouldn't cause a flood of 'is unaffected' messages around lots of 
plants/fungi.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6d6f4f443a | Jude Brown | 2010-01-28 10:44:10 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
a2f2d6413a | David Ploog | 2010-01-27 22:41:32 +0100

Fix {was cursed} lines being coloured red.

--------------------------------------------------------------------------------
6dcca1f372 | Haran Pilpel | 2010-01-27 23:12:23 +0200

Add a direction_chooser_args struct which wraps the gazillion options to 
direction(). Could still be cleaner.

--------------------------------------------------------------------------------
3051ff277d | Darshan Shaligram | 2010-01-28 02:07:49 +0530

place-population: also report combined monster stats for all levels to give 
convenient branch summaries.
Example: ./crawl -script place-pop Lair:1 Lair:8

-uniques option can be used to enable counts for uniques (disabled by default).

As before, reports go to monster-report.out.

--------------------------------------------------------------------------------
c4ee32123b | Haran Pilpel | 2010-01-27 22:19:41 +0200

Change Healing and deck-card direction prompts slightly.

--------------------------------------------------------------------------------
c398a2df19 | Haran Pilpel | 2010-01-27 22:19:41 +0200

Remove no-longer-helpful lines for some spells (generally clouds.) Only Smiting 
and Apport should still have Aim: replacements.

--------------------------------------------------------------------------------
beb3dfd0ac | Haran Pilpel | 2010-01-27 22:19:41 +0200

Really minor cleanups.

--------------------------------------------------------------------------------
9aac196e36 | Haran Pilpel | 2010-01-27 22:19:41 +0200

Give a direction title prompt when zapping wands.

--------------------------------------------------------------------------------
c58a08ba3e | Johanna Ploog | 2010-01-27 20:05:13 +0100

Add icons for armour brands.
I'm still not sure myself whether this is actually a good idea. On the
one hand we display information that is already available but currently
requires more "work" (hovering the mouse over the item) to see, on the
other hand you don't change armour remotely as often as you do jewellery
or even weapons, so it might be information that is not really necessary.

If we do keep them, the icons (mostly copied together from potions,
jewellery etc.) need to become smaller. I think that both my own archery
tile and Porkchop's reflection one have a good size, not as intrusive as
some of the resistances covering a quarter of the armour tile but there
if you look for it. Also, silence and archmagi only have placeholder
tiles at the moment.

--------------------------------------------------------------------------------
232760e271 | Eino Keskitalo | 2010-01-27 19:33:52 +0200

Add a FIXME comment.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
18c869e2b8 | Johanna Ploog | 2010-01-27 18:21:02 +0100

Add Porkchop's tiles for missile dispersal/exploding brands.

--------------------------------------------------------------------------------
2753d5c2fb | Johanna Ploog | 2010-01-27 17:50:19 +0100

Clean up stab brand tile's outline.

--------------------------------------------------------------------------------
eb6ac1c5f3 | Johanna Ploog | 2010-01-27 17:49:55 +0100

Minor spacing changes, fix typo.

--------------------------------------------------------------------------------
dfb8ff1737 | Johanna Ploog | 2010-01-27 17:29:59 +0100

Experimentally overlay demon tiles with the corresponding numbers.
I added an option tile_show_demon_numbers, defaulting to true (at
least for testing purposes). Not documented yet, as things are still
subject to change.

One of the big disadvantages of tiles vs. console is that it is
impossible to get an idea of demons' difficulty from their tiles.
Tiles players have to learn the connection between their tiles and
danger (and it's very easy to get them mixed up, probably more so
even than their names), whereas console players can tell at a glance
that a '1' is more dangerous than a '3'. These numbers now also get
displayed for tiles, which is heavy-handed, technical and confusing
for players otherwise unused to arbitrary glyphs. ("Why is 1 worse
than 5?"). I've also coloured the numbers in a range from yellow (5)
to red (1), which is much easier to understand, and this at least
should be kept even if the numbers get replaced with other symbols.

For example, if we interpret the demon glyphs correspond with their
"ranks" in hell, the tiles could display stars instead, or skulls,
or coloured flames. Whatever, anything but numbers. :p

--------------------------------------------------------------------------------
e2d098c9dd | Adam Borowski | 2010-01-27 17:00:34 +0100

Code readability: it's unobvious EQ_CLOAK..EQ_BODY_ARMOUR means "all armours", 
replace such uses with proper defines.

--------------------------------------------------------------------------------
557c6a8c95 | Adam Borowski | 2010-01-27 17:00:34 +0100

Identify most misc items on use.  Even for balls, the messages are unique.

--------------------------------------------------------------------------------
205a58a0a8 | Eino Keskitalo | 2010-01-27 17:52:52 +0200

Fix minibars staying on the center of the screen while being in the map view 
('X').
The used method of locating if the player is not in the center of the view 
might not be the most elegant. Enne/jpeg, can you review?

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d9c9890bd7 | Eino Keskitalo | 2010-01-27 17:52:51 +0200

Comment fix.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
512e552297 | Eino Keskitalo | 2010-01-27 17:52:50 +0200

With default options, always show both minibars if either is not full.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
63855f59c0 | Eino Keskitalo | 2010-01-27 17:52:49 +0200

Document draw_minibars() with a comment.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d516b7ed94 | Eino Keskitalo | 2010-01-27 17:52:48 +0200

Make drawing the player tile minibar into its own function.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
075a39c3db | Darshan Shaligram | 2010-01-27 20:29:53 +0530

Separate Shoal rune hut and decoy hut map again.
Increase the number of top-tier merfolk guarding the rune room and Ilsuiw's
hangout.

Remove stair-must-be-adjacent-to-floor check in shoal-hut test, since
minivaults can break that assumption.

--------------------------------------------------------------------------------
ae222e607d | David Lawrence Ramsey | 2010-01-27 08:50:28 -0600

Properly put the M_SPEAKS flag on all merfolk, for consistency.

--------------------------------------------------------------------------------
b92d5aa013 | Darshan Shaligram | 2010-01-27 19:43:54 +0530

The tide should not submerge runes in deep water, fixed.

--------------------------------------------------------------------------------
3e5fb3684b | Darshan Shaligram | 2010-01-27 19:30:04 +0530

Make top-tier merfolk rarer in the Shoals.

--------------------------------------------------------------------------------
de85649957 | Jude Brown | 2010-01-27 23:32:27 +1000

Actually fix compilation.
Must've had an old copy of mon-behv.cc open, sorry!

--------------------------------------------------------------------------------
e3e9abe064 | Jude Brown | 2010-01-27 23:31:57 +1000

Revert "Fix compilation."
This reverts commit bfdd4530e9e17435b60b6b811a93fdf8f5477c5d.

--------------------------------------------------------------------------------
bfdd4530e9 | Jude Brown | 2010-01-27 23:15:20 +1000

Fix compilation.

--------------------------------------------------------------------------------
d42dd6456b | Jude Brown | 2010-01-27 23:09:36 +1000

Kraken unsummon tentacles when fleeing.
Could probably use some other fancy mechanism for unsummoning them, but
I just wanted to make sure it works. As N78291 points out, the ink cloud
is great, but you can just take hits at the tentacles as it flees, and
kill it that way.

--------------------------------------------------------------------------------
00af2d7c5c | Robert Vollmert | 2010-01-27 14:06:39 +0100

Apply a similar "sense invisiblity" change to player visibility.
Here it goes in the other direction: Previously, monsters with
sense invisible could always "see" the player. Now they only
see the player when they're within radius 4.

The previous monster change checks adjacency, but I was afraid
doing the same for the player would boost player invisibility too
much. As it stands, it is probably fine as regards balance, but
the hard cut off rewards being spoiled a bit.

This definitely boosts invisibility (you can sneak past sense invis
monsters if you don't get too close, and have a better chance of
stabbing them because you spend fewer turns in their view), but
also helps to make the distinction between "sense" and "see" more
meaningful.

--------------------------------------------------------------------------------
6e62d3c888 | Robert Vollmert | 2010-01-27 14:06:39 +0100

Allow monsters that sense invisible to see adjacent monsters.
Previously, they couldn't at all. This should make canine familiars
more useful against invisible monsters, and seems fine as regards
flavour and balance.

--------------------------------------------------------------------------------
d39370e68d | Robert Vollmert | 2010-01-27 14:06:39 +0100

const variants of actor::as_{monster,player}

--------------------------------------------------------------------------------
b9210ede43 | Adam Borowski | 2010-01-27 13:39:41 +0100

Unbreak spirit shield on shields.

--------------------------------------------------------------------------------
e721eceb1d | Robert Vollmert | 2010-01-27 12:17:09 +0100

Revert "Debug tracking of calls to _set_nearest_monster_foe."
This reverts commit b16aec54bbff6dd3f81cb18253b0789b9f2ece58.

868ab330 seems to do a good job of reducing calls to
_set_nearest_monster_foe. There's still the issue that
the AI loop does a lot of unnecessary work for sleeping
monsters, but the worst offender is gone.

--------------------------------------------------------------------------------
addc7850ac | Robert Vollmert | 2010-01-27 12:16:44 +0100

Revert "Shortcut main AI loop for sleeping monsters."
This reverts commit ea724affe2f12198de545db72de948a233cbebd3.

Bah.

--------------------------------------------------------------------------------
ea724affe2 | Robert Vollmert | 2010-01-27 12:06:42 +0100

Shortcut main AI loop for sleeping monsters.

--------------------------------------------------------------------------------
59f2772ef3 | Robert Vollmert | 2010-01-27 11:29:51 +0100

Fix compile.
The commits after 78d786 were pushed accidentally; I'll
take care of them.

--------------------------------------------------------------------------------
868ab3306a | Robert Vollmert | 2010-01-27 11:18:57 +0100

Don't set nearest monster foe for sleeping monsters.

--------------------------------------------------------------------------------
b16aec54bb | Robert Vollmert | 2010-01-27 11:18:57 +0100

Debug tracking of calls to _set_nearest_monster_foe.

--------------------------------------------------------------------------------
47e4f693b2 | Robert Vollmert | 2010-01-27 11:18:57 +0100

Cosmetic.

--------------------------------------------------------------------------------
78d78651f0 | Robert Vollmert | 2010-01-27 11:18:57 +0100

Randomise monster energy slightly.
There was a div_rand_round in there already with a comment about
counting off monster moves, but the round was only random when
neither monster nor player is normal speed (actually, if
player speed * monster speed is not a multiple of 10).

We now randomly add or subtract one from the monster movement
energy. Since the extra energy is stored over turns, this
should mean that a monster might get an extra move (or one less)
only quite rarely. It's possible the effect won't be noticable
unless the player is actually counting monster energy.

We'll have to see how it works out -- easy enough to revert.
Experiment supported by greensnark and sorear.

--------------------------------------------------------------------------------
859237a795 | Jude Brown | 2010-01-27 18:12:37 +1000

Tweak Volcano exit description.
"rocky tunnel" was apparently misleading, so I've changed it to "rocky
tunnel leading out of here". This still requires a tile, which would be
very nice, but I suppose it's not necessary.

--------------------------------------------------------------------------------
81f01216f7 | Jude Brown | 2010-01-27 18:09:11 +1000

Add mspang to the credits.

--------------------------------------------------------------------------------
066adbb1b7 | Michael Spang | 2010-01-27 18:03:53 +1000

Use signed char for player::equip.
PowerPC uses an unsigned char by default here, and this breaks later
when we compare the value to -1.

Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
86b4029fb5 | Jude Brown | 2010-01-27 17:28:12 +1000

Use KMASK no_item_gen to prevent Triggerable issues.
As experienced by Napkin on CDO, Triggerable's using the "auto" target
for items complain if there is more than one item at the location in
question; as this usually involves linking to the Orb (or rune) and
teleport control, it can be problematic.

Tagging the runes/Orb with no_item_gen should mean that random items
aren't generated on top of the rune/Orb, and therefore should prevent
this from occuring.

Temporary fix, though, as there's probably a way to improve the
Triggerable identification method.

--------------------------------------------------------------------------------
a3fe300c4b | Jude Brown | 2010-01-27 17:22:52 +1000

Fix item_pickup Triggerables (elliptic).
Was using dgn.item_from_index, which used the old lightuserdata method
of pushing items through to the Lua, rather than the new clua_push_item
method. Previous version lacked the "name" method, which proved
problematic when picking up the orb.

--------------------------------------------------------------------------------
b1fd1d21f6 | Jude Brown | 2010-01-27 17:11:00 +1000

Use door_restrict in the Borgnjor WizLab.
This should address issues where the threat isn't staying in its
allotted place.

--------------------------------------------------------------------------------
b42847f0e1 | Jude Brown | 2010-01-27 17:07:02 +1000

Fix Hellbinder's name, remove lava.
It's too easy to just mephitic cloud him and then cause him to fall into
the laval, which, as Mu points out, is quite cheap. Hence, I've removed
the lava from the vault.

Also, fixed the name, so it now appears at "<random>" instead of "The
<random>".

--------------------------------------------------------------------------------
942ab6b6d0 | Jude Brown | 2010-01-27 17:03:39 +1000

Lua wrapper for travel_stoppers, auto-add portal vault messages.
Hits one of the items on jpeg's wish-list (hopefully!). This commit adds
a Lua (clua-accessible) wrapper for adding phrases to the travel stopers
list. It does't currently deal with message channel travel stoppers at
the minute, and just uses the string as-is (this can be changed).

This commit also adds functionality to lm_tmsg.lua that automatically
includes any portal vault messages (with entities included) in the
travel stoppers list.

Hopefully, it works properly. I haven't been able to figure out a sane
way to test it yet.

--------------------------------------------------------------------------------
7a9b696ee8 | Jude Brown | 2010-01-27 17:03:38 +1000

Option to inscribe items being uncursed as "was cursed".
I decided to make it an option, but it currently defaults to true. Some
people might find this annoying, but after reading the idea on the
interface page of the wiki, I thought it actually sounded rather useful.

--------------------------------------------------------------------------------
01d90ab200 | Charles Otto | 2010-01-26 22:18:17 -0500

Update a monsters AI state if evolution is used on it
This make friendly wandering mushrooms start out following you.

--------------------------------------------------------------------------------
fb2436798a | Charles Otto | 2010-01-26 22:18:04 -0500

Tweak friendly wandering mushroom behavior
Friendly wandering mushrooms will now follow you like normal allies do
if no hostiles are in sight and stop moving when hostile enemies are in
view (this mostly depends on your LOS, rather than the toadstools).

--------------------------------------------------------------------------------
d0c4aed799 | David Lawrence Ramsey | 2010-01-26 20:51:18 -0600

Add one more Donald complaint.

--------------------------------------------------------------------------------
767edb42e5 | David Lawrence Ramsey | 2010-01-26 20:51:18 -0600

Fix typo.

--------------------------------------------------------------------------------
25ba124e58 | Charles Otto | 2010-01-26 21:43:54 -0500

Don't give a target prompt in evolution if nothing is in range

--------------------------------------------------------------------------------
6cc520966c | Jude Brown | 2010-01-27 12:19:43 +1000

More glyph changes: move elementals to 'i'.
Quite a dramatic change, but it fixes the last of the issues that exist
with glyphs: monsters sharing the same glyph as features is confusing
and problematic.

This commit makes the following changes:

 * water elemental lightblue "{" becomes lightblue "i"
 * earth elemental brown "#" becomes yellow "i"
 * fire elemental yellow "#" becomes lightred "i"
 * air elemental white "v" becomes white "i"

The "i" glyph was previously unused for anything. I've also tweaked the
colouring so that they are all lightly coloured, made the fire
elementals lightred instead of yellow, and gave earth elementals yellow.

Hopefully, a likewise non-contentious issue. "i" may change at a later
date, but I think that having the elementals off the feature glyphs is
the most important part of this change.

Previous suggestions were to move efreets to "R" and put elementals on
"E"; this could still be done, but it would cause colour confusion
between Mara and Azrael, and also requires shifting of other monsters,
while this change doesn't require any further shifting.

--------------------------------------------------------------------------------
5d2c165443 | Charles Otto | 2010-01-26 20:59:43 -0500

Experimentally switch evolution to a single target ranged ability
The messages could use some work.

--------------------------------------------------------------------------------
563243285f | Jude Brown | 2010-01-27 11:22:18 +1000

Replace Jiyva's jelly shield with jelly paralyse. (N78291)
This patch implements the idea to replace the unintuitive and not very
useful jelly shield prayer with short paralysis on all fellow slimes.
Using the ability costs piety similar to the previous jelly shield
ability.

Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
aa890a5f19 | Jude Brown | 2010-01-27 10:58:10 +1000

Move giant spores to '*', don't spawn them in Slime.
Giant spores used to spawn in Slime, assumedly because the 'G' made them
a type of eyeball/slime. However, with recent changes to ballistomycete
spawn mechanisms and the introduction of Fedhas, spores are definitely
classed as a type of plant, so their placement in Slime is now dubious.

Moving them to the '*' glyph also brings them in line with other
monsters that "explode": specifically, ball of lightning and orb of
destruction.

--------------------------------------------------------------------------------
6357d55b57 | Jude Brown | 2010-01-27 10:56:08 +1000

Bring monster MR wording in line with player's.
Tweak "immune to magical enchantment" and "resistant to magic" to use
"hostile enchantments" instead, similarly to the player.

--------------------------------------------------------------------------------
c6d3b57411 | Jude Brown | 2010-01-27 10:54:38 +1000

Don't special-case Mara with resistance messages.
Seeing as his fakes are now of identical stats to him, there isn't a
problem with reporting their magic resistance on the description screen;
indeed, it would probably be more helpful to do so, so that people
recognise the threat level.

--------------------------------------------------------------------------------
a2cad0f293 | Jude Brown | 2010-01-27 10:37:58 +1000

Change "xyz resistant to magic" to "resistant to hostile enchantments".
This helps to clear up confusion for new players who think that magic
resistance is something that will help against conjurations and
elemental spells (like I did when I first started playing). Change
suggested by TGW.

--------------------------------------------------------------------------------
9f3742434e | Charles Otto | 2010-01-26 19:10:04 -0500

Let sunlight auto-target disturbances in water again

--------------------------------------------------------------------------------
01c72a72c7 | Johanna Ploog | 2010-01-26 23:47:26 +0100

Correct near bloodless Vampires' innate cold resistance shown in 'A!'

--------------------------------------------------------------------------------
98003eee41 | Robert Vollmert | 2010-01-26 23:05:33 +0100

Hack monster LOS to reduce updates.
It's now only updated if the monster has moved or is in view of
the player. That means it will not necessarily be accurate if
terrain or clouds are LOS-affecting monsters change/move.

I'm not sure that this is much better than just not updating
LOS for sleeping monsters -- depends on to what extent monsters
just stay in place.

Previously, crawl spent a significant amount of time with the
monster LOS updates.

Other options:
- Calculate monster LOS on-demand (unlikely to help much)
- Reduce monster LOS range away from the player
  (this might require some changes to LOS code to actually save
   time)
- Track LOS globally: for each cell, which other cells are visible?
  An estimated 200 kB of data.
  This would then only be updated if terrain/clouds/LOS-affecting
  monsters changed.

--------------------------------------------------------------------------------
3b4e8ee7e2 | Robert Vollmert | 2010-01-26 23:05:33 +0100

Disable holy monster haloes.
Also (re?) introduce bool haloed(p) that just checks
the player halo when drawing the map.

The naive implementation of monster haloes was a
little too expensive.

--------------------------------------------------------------------------------
778f964e15 | Haran Pilpel | 2010-01-26 22:40:50 +0200

Make Apportation work in areas, such as the Abyss, with no map knowledge. I 
hope I'm doing this right; rvollmert, can you review?

--------------------------------------------------------------------------------
8062925f76 | Haran Pilpel | 2010-01-26 22:28:27 +0200

Some movement from x,y to coord_def.

--------------------------------------------------------------------------------
b6740d2635 | Haran Pilpel | 2010-01-26 21:30:56 +0200

Reinstate rvollmert's changes from 1b0e160 (flush_prev_messages) for directn.cc.
This is after I accidentally clobbered them in 36b2bd4. In practice it
shouldn't make much difference since there's little to be condensed in the
direction prompt.

--------------------------------------------------------------------------------
36b2bd4d94 | Haran Pilpel | 2010-01-26 21:23:19 +0200

Merge branch 'direction-rewrite'
Conflicts:
	crawl-ref/source/directn.cc

--------------------------------------------------------------------------------
a924211145 | Haran Pilpel | 2010-01-26 21:17:55 +0200

Handle out-of-sight cells better in targetting. Also minor cleanups elsewhere.

--------------------------------------------------------------------------------
d0052e1526 | Haran Pilpel | 2010-01-26 20:50:06 +0200

Colour the Aim: prompt a bit better.

--------------------------------------------------------------------------------
51a66bd6e7 | Haran Pilpel | 2010-01-26 19:57:20 +0200

Colour spell name when casting it. Clean up fire_targetting_behaviour() some 
more.

--------------------------------------------------------------------------------
1b0e160558 | Robert Vollmert | 2010-01-26 16:59:14 +0100

Remove a whole lot of flush_prev_message().
flush_prev_message() should only be called before reading input
or before calling delay() if possible. If some messages now get
lost, please either let me know or put calls to flush_prev_message()
before the appropriate getch() or delay().

With this change, we can now condense multi-turn messages (say
taking off armour or butchering).

--------------------------------------------------------------------------------
889760fbfa | Johanna Ploog | 2010-01-26 16:52:31 +0100

Don't autoquiver the wielded weapon (if it's similar to the quiver one).

--------------------------------------------------------------------------------
290e404fd6 | Adam Borowski | 2010-01-26 16:06:06 +0100

0.5.2 compat glyphs: shadows -> ' ', shadow wraiths -> blue 'W'.

--------------------------------------------------------------------------------
20d12b36ce | Adam Borowski | 2010-01-26 15:57:52 +0100

Don't warp IOODs during abyss shifts, Time Step/stairs displacing, etc.

--------------------------------------------------------------------------------
81f0a66467 | Adam Borowski | 2010-01-26 15:57:52 +0100

Make IOODs (and rolling boulders when we'll get them) immune to some effects. 
These are banishment, a couple of cards and Xom acts.

--------------------------------------------------------------------------------
889197c22f | Johanna Ploog | 2010-01-26 16:02:46 +0100

Remove special case for examing gold piles, now always list quantity.

--------------------------------------------------------------------------------
7a32c532e2 | Johanna Ploog | 2010-01-26 15:42:30 +0100

&^ now also resets penance and handles excommunication for piety 0.

--------------------------------------------------------------------------------
32358e642e | Johanna Ploog | 2010-01-26 15:42:30 +0100

Regard known shafts as safe for travel.

--------------------------------------------------------------------------------
e31823c89c | David Lawrence Ramsey | 2010-01-26 07:19:32 -0600

Add wording fixes.

--------------------------------------------------------------------------------
1d117d8143 | Jude Brown | 2010-01-26 22:55:16 +1000

Bring shadow wraith colour in line with other shadow creatures.

--------------------------------------------------------------------------------
74dced809b | Jude Brown | 2010-01-26 21:52:08 +1000

Revert "Backlit starts at contamination of 5, in line with yellow glow."
This reverts commit 5604b1e86a6e2ef6c16af50fb74427e73ffe9fcb.

get_magical_contamination() is a function that rounds down the current
magical contmation; it's not just a public function accessor for
you.magical_contamination.

--------------------------------------------------------------------------------
dc3098d78f | Jude Brown | 2010-01-26 21:51:43 +1000

Indicate actual invisible status in @ and % screens.

--------------------------------------------------------------------------------
5604b1e86a | Jude Brown | 2010-01-26 21:14:28 +1000

Backlit starts at contamination of 5, in line with yellow glow.
This appears to have been a recent change, and basically causes all form
of Invisibility to be instantly useless if you have any form of
contamination.

--------------------------------------------------------------------------------
adb224b381 | Jude Brown | 2010-01-26 21:14:27 +1000

Grey-out the "Invis" status message when not invisible (backlit, etc).
As requested by Keskitalo.

--------------------------------------------------------------------------------
d15d277fe2 | Jude Brown | 2010-01-26 21:14:27 +1000

Fix dgn.stash_items with new items table.
Also, refer to the right vector: the shops items push to Lua was trying
to reference the floor items vector, which would probably cause weird
bounds issues.

--------------------------------------------------------------------------------
b111ba7312 | Robert Vollmert | 2010-01-26 11:55:25 +0100

Update message.cc TODO list.

--------------------------------------------------------------------------------
9aa81663f0 | Robert Vollmert | 2010-01-26 11:50:03 +0100

Fix altar prayer screen writing to message window.
It now uses the new yesno() variant.

While I was at it, I removed the obnoxious extra confirmation
yesno().

--------------------------------------------------------------------------------
c657462681 | Robert Vollmert | 2010-01-26 11:48:28 +0100

yesno() gets a parameter to determine target GotoRegion.
This is used to determine whether to print straight to screen, or
whether to use mpr()/mesclr().

It's quite a hack, but some things use yesno() while the message
window isn't even displayed.

--------------------------------------------------------------------------------
623fa48422 | Robert Vollmert | 2010-01-26 10:54:14 +0100

Reduce mlist_min_height default to 4.
With show_gold_turns=true, the debug build was previously forcing
the message window to 6 lines.

--------------------------------------------------------------------------------
089a10b313 | Robert Vollmert | 2010-01-26 10:51:11 +0100

An attempt at preventing "double" more prompts.
Try not to show a ::more()-issued --more-- prompt if we just
showed a window-full --more-- prompt.

--------------------------------------------------------------------------------
26e68231fc | Robert Vollmert | 2010-01-26 10:43:51 +0100

Show cursor on single-char more prompt.

--------------------------------------------------------------------------------
cc822e213c | Robert Vollmert | 2010-01-26 09:56:13 +0100

Nerf poison arrow.
Halve the irresistable part from 60% to 30%.

Poison arrow has seen a significant relative boost
with the range nerfs to other conjurations.

As compared with other options (raise level, lower range),
this has the advantage of furthering differentiation between
schools: It is not desirable that a conjurer should want to
branch out into poison magic to handle the omni-resistant
end-game monsters.

If this turns out to be too hard on the spell, a more
interesting buff than higher damage would be to make
the spell quieter to cast -- currently, only non-conjuration
poison magic gets reduced spellcasting noise.

--------------------------------------------------------------------------------
98e3c33d54 | Robert Vollmert | 2010-01-26 09:35:58 +0100

Implement window-full --more-- prompts for delayed messaging.
The current prompt is just a little '+' in the bottom left corner,
saving a line of messages. This could be changed.

Disable this by setting show_more=false.

--------------------------------------------------------------------------------
d2a021c341 | Robert Vollmert | 2010-01-26 09:35:58 +0100

Add option show_more.
Defaults to true, and determines whether to show a --more--
prompt for full message window when clear_messages is not
set.

--------------------------------------------------------------------------------
fe6e1d309a | Jude Brown | 2010-01-26 18:13:15 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
6b9c49922c | Robert Vollmert | 2010-01-26 09:03:24 +0100

Fix a crash with another GOTO_CRT/GOTO_DNGN confusion.

--------------------------------------------------------------------------------
be8bed08d8 | Jude Brown | 2010-01-26 18:03:05 +1000

Update documentation for the various WizLabs.

--------------------------------------------------------------------------------
3003e89d4b | Robert Vollmert | 2010-01-26 09:01:42 +0100

Make display_notes() start at the end.

--------------------------------------------------------------------------------
86750070b1 | Jude Brown | 2010-01-26 17:55:54 +1000

And randomise Hellbinder too.

--------------------------------------------------------------------------------
9c11f6147f | Jude Brown | 2010-01-26 17:49:00 +1000

Overhaul layout, convert random Lab to Borgnjor, randomise Cloud.
I've also commented out the currently incomplete maps in preparation of
merging back into master. Not done yet, though.

--------------------------------------------------------------------------------
aca0e9bbb2 | Robert Vollmert | 2010-01-26 08:46:09 +0100

menu.cc: Improve handling of MF_START_AT_END.
It now starts with a full last page, fixing issue #549.

--------------------------------------------------------------------------------
b532e5542f | Robert Vollmert | 2010-01-26 08:42:14 +0100

Show repeats in message history.

--------------------------------------------------------------------------------
7cc82fd8aa | Robert Vollmert | 2010-01-26 08:41:24 +0100

Make repeats-appending a method of message_item.

--------------------------------------------------------------------------------
79f2493d40 | Robert Vollmert | 2010-01-26 08:38:07 +0100

Remove unused and unimplemented string cast from message_item.

--------------------------------------------------------------------------------
8f2b434468 | Robert Vollmert | 2010-01-26 08:35:55 +0100

Print new-turn leading dashes in message history.

--------------------------------------------------------------------------------
8f02fb45c1 | Robert Vollmert | 2010-01-26 08:22:22 +0100

Update message.cc todo list.

--------------------------------------------------------------------------------
73bc29e49e | Haran Pilpel | 2010-01-26 09:02:18 +0200

Make the top prompt in direction() controllable by targetting_behaviour. Clean 
up fire_targetting_behaviour() and have it conform to the new interface. Also, 
fix a bug with cursor disappearing if Options.use_fake_cursor was set.

--------------------------------------------------------------------------------
1790236c8f | Jude Brown | 2010-01-26 15:35:42 +1000

Merge branch 'master' into wizlab
Conflicts:
	crawl-ref/source/rltiles/dc-mon.txt

--------------------------------------------------------------------------------
8baaba4b13 | Jude Brown | 2010-01-26 14:56:32 +1000

Allow auto-travel through teleport traps with stasis, -TELE.
Addresses the other part of #546, also consolidates calls to Lua
trapwalk functionality into one instance, rather than multiple
instances.

--------------------------------------------------------------------------------
cdfe5b67b6 | Jude Brown | 2010-01-26 14:13:25 +1000

Don't prompt for entering teleport traps with stasis, -TELE.
This addresses part of the issue described in #546.

--------------------------------------------------------------------------------
6547921dd7 | Jude Brown | 2010-01-26 13:41:19 +1000

Hopefully finally fix "of flame of flame" and other errata.
This was not helped by the fact that ammo_name, as passed to
setup_missile_beam, is only used by the player throwing functionality.
Flaming, frost, and chaos missiles will now identify when thrown, so you
shouldn't see "XYZ shoots an arrow of flame" and then pickup "a glowing
arrow".

You will still get "XYZ shoots a glowing arrow" for some types of
missile (dispersal, etc), but these should identify as per normal.

This hopefully sorts everything out, but really should only be
considered a temporary fix: the code is messy and confusing as hell, and
needs to be rewritten to be clearer, and to use the same naming and beam
structure code for both.

This commit doesn't address the issue that casting poison weapon or fire
brand doesn't identify on the weapon, something I noticed occuring when
using &I in WizMode. Unsure if it's actually an issue in non-WizMode
play, so I'll look into it.

--------------------------------------------------------------------------------
d98f808f6d | Jude Brown | 2010-01-26 12:21:17 +1000

Hopefully fix #54, identified branded ammunition not stacking properly.
The items_stackable function didn't seem to ever compare ammunition
brands, merely ammunution pluses. This meant that branded and
non-branded ammunition with the same pluses would stack, and one of them
would lose its brand (or gain a brand).

--------------------------------------------------------------------------------
26b47dd25c | Jude Brown | 2010-01-26 12:00:27 +1000

Tweak slime_altar_2 to be less instantaneous death, but still threatening.
Unfortunately, as there's no indication as to what's behind the door,
and there is quite a high chance of acid blobs (I got two in one game),
the moment you open the door, you're pretty much dead unless you have a
scroll of blinking or some instantaneous means of escape.

I've therefore tweaked the vault and placed glass around the door, so
that you can see inside, and also placed a warning and a restriction on
the door: the first is so that you don't auto-explore it open, and the
second is so that the jellies don't see you and decided to come out and
visit.

It still presents an interesting threat, but not one that you are forced
to deal with immediately.

--------------------------------------------------------------------------------
85155ad7b7 | Jude Brown | 2010-01-26 12:00:26 +1000

Tweak poisoned needle stack sizes again.
Poisoned needles, according to Darshan, were unaffected by the recent
poisoned ammo buff, and therefore didn't need their sizes reduced as
much.

--------------------------------------------------------------------------------
f6be3b4215 | Johanna Ploog | 2010-01-26 02:20:42 +0100

Make the wizmode god gift command a bit more useful.
* Remove some dice rolls if forced == true.
* Clean up the code a bit.
* Add &- to the wizmode help.

Doesn't handle Xom's item gifts yet, but should.
Also gives no indication if a god won't ever hand out any gifts.

--------------------------------------------------------------------------------
c1c15c6b4c | Johanna Ploog | 2010-01-26 02:20:42 +0100

Change &^ to prompt for a value instead of increasing by fixed values.
For Xom, in addition prompt for an interest value. This should be more
useful for debugging.

Setting piety to 0 this way doesn't excommunicate the player, though it
probably should.

--------------------------------------------------------------------------------
1680f12550 | Adam Borowski | 2010-01-26 01:28:45 +0100

Remove some magic number comments. This doesn't touch enums with strategic 
holes, since getting rid of these in a reasonable way would require breaking 
saves.

--------------------------------------------------------------------------------
54a6322192 | Johanna Ploog | 2010-01-25 23:48:48 +0100

Allow leaving the doll edit screen without saving any changes.
Distinguish between saving and quitting as it's really annoying to
find that you can't undo your experimentation and that leaving the
screen actually saves them.

--------------------------------------------------------------------------------
9e9ae1496d | Johanna Ploog | 2010-01-25 23:48:48 +0100

Fix a tile I'd accidentally modified.

--------------------------------------------------------------------------------
ca715a4748 | Johanna Ploog | 2010-01-25 23:48:48 +0100

Only save tutorial files for tutorial characters.

--------------------------------------------------------------------------------
58474395e1 | Johanna Ploog | 2010-01-25 23:48:47 +0100

Update credits.

--------------------------------------------------------------------------------
509d2a49ce | Robert Vollmert | 2010-01-25 22:44:41 +0100

Initialize crawl_view.termsz in tiles.
Setting it to 80x24 -- tiles experts should correct this if
inappropriate.

This fixes issue #556.

--------------------------------------------------------------------------------
3cae7b462d | Robert Vollmert | 2010-01-25 22:20:06 +0100

Rename P_MESCLR by P_NEW_CMD.
Initially, the dark gray dashes were meant to be output after
each mesclr(), but that doesn't seem to be so helpful. Rename
it to the current purpose.

--------------------------------------------------------------------------------
25a59e3b6d | Robert Vollmert | 2010-01-25 22:19:58 +0100

An implementation of any_messages().
This should fix the recently obnoxious paralysis behaviour.

--------------------------------------------------------------------------------
179dc7be7b | Robert Vollmert | 2010-01-25 22:19:58 +0100

Change handling of delayed messaging leading dash.
This is now output throught msgwin_new_cmd, called from the
main loop from input().

It outputs the normal light gray new turn dash if a turn
has passed since the light command; this dash will move
up through messages, indicating the last turn start.

If no turn has passed, it outputs a dark gray dash.

--------------------------------------------------------------------------------
f1d7d9c63e | Robert Vollmert | 2010-01-25 22:19:58 +0100

Replace tracking of turn_line by mesclr_line.
The message window now tracks at which line it was last "cleared".
This is to be able to implement any_messages() which will say
whether there have been new messages since the last mesclr().

msgwin_new_turn is gone.

--------------------------------------------------------------------------------
a719e8c4b3 | Robert Vollmert | 2010-01-25 22:19:58 +0100

Track the last output leading dash prompt.
Also add the generic message_window::output_prefix.

--------------------------------------------------------------------------------
eb87534942 | Robert Vollmert | 2010-01-25 22:19:57 +0100

Convert message_window::add_item to use prefix_type.

--------------------------------------------------------------------------------
a7fdcffd3c | Robert Vollmert | 2010-01-25 22:19:57 +0100

Implement prefix_glyph.

--------------------------------------------------------------------------------
d7a7c1dcd3 | Robert Vollmert | 2010-01-25 22:19:57 +0100

Add enum prefix_type.

--------------------------------------------------------------------------------
d3cc322e02 | Robert Vollmert | 2010-01-25 22:19:57 +0100

Explanatory comment in message_window::add_item.

--------------------------------------------------------------------------------
d7254ccd0d | Robert Vollmert | 2010-01-25 22:19:57 +0100

Sort includes.

--------------------------------------------------------------------------------
44973dede5 | Robert Vollmert | 2010-01-25 22:19:57 +0100

Reduce level-up --more-- prompts.

--------------------------------------------------------------------------------
5cc2e6f284 | Robert Vollmert | 2010-01-25 22:19:56 +0100

Add formatted_string::empty().

--------------------------------------------------------------------------------
46eeaea3c8 | David Lawrence Ramsey | 2010-01-25 10:29:49 -0600

Don't make snapping turtles level up into alligator snapping turtles anymore, 
as they're apparently two different species.

--------------------------------------------------------------------------------
60cd7af1f5 | Johanna Ploog | 2010-01-25 17:04:05 +0100

Add Porkchop (he of the many tiles) to the credits.

--------------------------------------------------------------------------------
b6d4361458 | David Ploog | 2010-01-25 16:13:31 +0100

Make ossuary_due_mausoleum harder. (syllogism)
Slightly less loot in the treasure chamber.
Only one secret door.
Removed the exit portal from the chamber.

--------------------------------------------------------------------------------
6c84e91fc8 | David Lawrence Ramsey | 2010-01-25 08:36:53 -0600

Add comment and spacing fixes.

--------------------------------------------------------------------------------
247cc87488 | David Lawrence Ramsey | 2010-01-25 08:35:36 -0600

Add wording fixes.

--------------------------------------------------------------------------------
69777bf649 | David Lawrence Ramsey | 2010-01-25 08:35:18 -0600

Add spacing fix.

--------------------------------------------------------------------------------
06b9c1bc86 | David Lawrence Ramsey | 2010-01-25 08:05:11 -0600

Fix [2827189]: Remove electricity resistance from liches.
Ancient liches still have it, but they should be more of a threat.

--------------------------------------------------------------------------------
2094260a19 | David Lawrence Ramsey | 2010-01-25 07:54:02 -0600

Update _item_race_matches_monster() to account for dwarves,

--------------------------------------------------------------------------------
e9ad877268 | David Lawrence Ramsey | 2010-01-25 07:07:21 -0600

Make phantoms and shadows levitate, for consistency with all other 'p's.

--------------------------------------------------------------------------------
9a9cb988de | Adam Borowski | 2010-01-25 12:52:59 +0100

&) has changed meaning, update the help.

--------------------------------------------------------------------------------
ca2f0d0f88 | Adam Borowski | 2010-01-25 12:50:26 +0100

Try to eject monsters from your spot when you step back into time.

--------------------------------------------------------------------------------
e8fa64ae89 | Adam Borowski | 2010-01-25 12:41:53 +0100

Hasting others makes things faster, so CB hates that.

--------------------------------------------------------------------------------
f6b589340d | Jude Brown | 2010-01-25 17:47:53 +1000

Tweak Donald speech slightly.
This removes or rewords some contentious lines.

--------------------------------------------------------------------------------
d2c5c8df9f | Robert Vollmert | 2010-01-25 08:44:07 +0100

Allow stabbing of friendly monsters.
I hope this is uncontroversial (allowing to stab friends, not
stabbing friends itself).

It makes a lot of sense to be able to catch them off-guard. Mostly
flavour -- I don't think the gameplay effect will be huge. Let me
know if I missed something!

Ally stabs do damage like confused stabs. The messages fit nicely:
    "You catch %s completely off-guard!"
    "You strike %s from behind!"

--------------------------------------------------------------------------------
fce9e9888d | Jude Brown | 2010-01-25 17:09:27 +1000

Pikel's slaves turn neutral when he follows you off the level.
This might cause issues with the fact that you can just take Pikel down
the stairs, and then straight back up again, to have his freed slaves
attack him.

However, I think that it's thematically good, as the spell doesn't last
when he's charmed, nor does it last when he's banished or killed, and it
also prevents issues where killing Pikel on one level doesn't neutralise
slaves on another.

This only applies to slaves that are left behind, rather than to slaves
that follow you up (or down) the stairs. Finally, this doesn't affect
slaves (and not Pikel) following you up and down stairs. Will do that
shortly.

--------------------------------------------------------------------------------
58955c4e67 | Jude Brown | 2010-01-25 15:19:28 +1000

Don't hand out darkgrey to 'BLACK' monsters. (TGW)
Monsters that specify BLACK are given a random colour on placement.
Unfortunately, due to the fact that random_colour() picks any colour,
this means that these monsters sometimes end up with DARKGREY, which
clashes with our policy of not using DARKGREY as a monster colour.

This commit introduces random_monster_colour(), which will re-pick a
colour if DARKGREY is given, and continue to re-pick until it gets a
colour that isn't DARKGREY.

--------------------------------------------------------------------------------
494db5b6af | Jude Brown | 2010-01-25 14:46:24 +1000

A few further (simple) glyph and colour changes.
Hopefully these are non-contentious. This commit consolidates larvae
onto the relevant glyph:

 * yellow "w" for killer be larvae become lightgrey "k".
 * lightgrey "w" for ant larvae become lightgrey "a".

To compensate for the fact that soldier ants already exist as lightgrey
"a", though are a considerable threat:

 * lightgrey "a" for soldier ants become white "a".

The other changes involved furthers the recent adjustments to
insubstantiality: as "p" has primarily the undead on it, apart from
insubstantial wisps, these have been moved to "v". Vapours, likewise
insubstantial, have also been moved to "v". This changes helps to
remove confusion between "#" for monster glyphs and walls, the only
remaining "#" monsters are the elementals.

 * lightgrey "v" for air elemental becomes white "v".
 * lightgrey "p" for insubstantial wisp becomes lightgrey "v".
 * lightgrey "#" for vapour becomes lightcyan "v".

Finally, the long contentious darkgrey/black shadow on " " (no glyph),
which causes visual issues on some platforms, and goes against our
principle of no having any monsters on darkgrey, becomes magenta "p".
This change is fitting because they are undead, and with the above
change to insubstantial wisps now meaning that "p" is purely undead, it
seems to work quite well. Magenta was chosen to match various other
"shadow" creatures (shadow dragons, shadow imps, shadow demons, to name
three).

 * darkgrey/black " " for shadows becomes magenta "p".

--------------------------------------------------------------------------------
82ebec50ae | Charles Otto | 2010-01-24 21:14:20 -0500

Don't shift giant spores when reloading a level
Doing so would disrupt their trail.

--------------------------------------------------------------------------------
55e4806392 | Charles Otto | 2010-01-24 21:09:44 -0500

Describe squares with FPROP_SPORES as "covered in spores"

--------------------------------------------------------------------------------
20efee2c8b | Jude Brown | 2010-01-25 11:31:15 +1000

Don't let Mara summon a player ghost while the player is out of LOS.

--------------------------------------------------------------------------------
e359836722 | Charles Otto | 2010-01-24 19:11:06 -0500

Preliminarily add FPROP_SPORES and make giant spores leave a trail with it

--------------------------------------------------------------------------------
dd70574047 | Haran Pilpel | 2010-01-25 00:59:59 +0200

Merge branch 'direction-rewrite' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
direction-rewrite

--------------------------------------------------------------------------------
c7db6edd35 | Adam Borowski | 2010-01-24 23:51:43 +0100

Make trees in the Swamp 25% brown, 75% dark green.

--------------------------------------------------------------------------------
cac99abb0f | Haran Pilpel | 2010-01-25 00:48:31 +0200

Merge branch 'master' into direction-rewrite

--------------------------------------------------------------------------------
d9662cfaa6 | Haran Pilpel | 2010-01-25 00:47:30 +0200

Really add the better ally-attack message.

--------------------------------------------------------------------------------
553c0cd8d1 | Haran Pilpel | 2010-01-25 00:42:05 +0200

Many more changes to direction().
1. 't' is gone. 'f' now means 'fire at target'.
2. Spells now show their name when zapping. The prompt could be improved.
3. Better messaging while 'x'ing.
4. Better 'Aim:' line.
5. Object-targetted items will show items. Object-cycling (say with ';')
will display information about items, once.
6. CMD_TARGET_SHOW_PROMPT now meaningless. Should be removed soon.
7. Better top prompt for some commands (e.g. Sunlight, ordering allies
to attack.)

--------------------------------------------------------------------------------
fbcabc8f60 | Darshan Shaligram | 2010-01-25 04:01:59 +0530

Remove god_likes_butchery check from butcher-knife pickup logic.

--------------------------------------------------------------------------------
2f373b1b70 | Johanna Ploog | 2010-01-24 23:51:58 +0100

Move player doll non-weapon hand1/non-shield hand2 tiles into subfolders.
New subfolders misc for misc. item, book etc. tiles for the player doll.

--------------------------------------------------------------------------------
b9b0a30431 | Johanna Ploog | 2010-01-24 23:51:58 +0100

Replace the default player doll holy scourge tile with another one.

--------------------------------------------------------------------------------
fcbd835ac9 | Darshan Shaligram | 2010-01-25 03:46:32 +0530

Calculate EV and spellcasting penalty with a scale of 2, rounding the final EV 
number up and the final spellcasting penalty down.

--------------------------------------------------------------------------------
5b3dcb418c | Enne Walker | 2010-01-24 16:52:07 -0500

[520] Add purge's newer tree tiles.

--------------------------------------------------------------------------------
b44f682441 | Adam Borowski | 2010-01-24 22:27:03 +0100

Revert the XP cap for hundreds of kills.

--------------------------------------------------------------------------------
b4a6c95b53 | Johanna Ploog | 2010-01-24 22:15:01 +0100

Add Porkchop's tile for the penetration brand.

--------------------------------------------------------------------------------
fea4fc75c9 | Johanna Ploog | 2010-01-24 22:15:01 +0100

Also rename weapon tiles to match their normal/ego variants' order.

--------------------------------------------------------------------------------
9365853fd0 | Johanna Ploog | 2010-01-24 22:15:01 +0100

Also rename other armour tiles to match their plain/ego/randart order.

--------------------------------------------------------------------------------
c9bc0edf78 | Johanna Ploog | 2010-01-24 22:15:01 +0100

Add Porkchop's ego/randart tiles for banded/plate/splint mail. Thanks!

--------------------------------------------------------------------------------
b83ba7411f | Johanna Ploog | 2010-01-24 22:15:01 +0100

Experimentally, use hp_colour to decide player doll hp bar colour. After some 
experimentation, I decided to always use RED as the background colour and to 
use BLACK as the hp colour at low values.

--------------------------------------------------------------------------------
1865e01c83 | Robert Vollmert | 2010-01-24 21:16:41 +0100

Moving into and fighting plants is not a "good move".
Unless the monster has been told to attack it.

Another part of the fix of issue #535.

--------------------------------------------------------------------------------
fa621cc097 | Robert Vollmert | 2010-01-24 21:16:41 +0100

Monster movemement: Don't move-into-fight plants.
Part of fixing issue #535.

--------------------------------------------------------------------------------
34c66fc9c2 | Robert Vollmert | 2010-01-24 21:16:41 +0100

Update mons_is_firewood documentation to reflect new use.

--------------------------------------------------------------------------------
a2c4c6a850 | Robert Vollmert | 2010-01-24 21:16:40 +0100

Make monsters not autotarget firewood.
This should prevent allies from focusing on plants, fixing
part of issue #535.

--------------------------------------------------------------------------------
dac4468bf5 | Robert Vollmert | 2010-01-24 21:16:40 +0100

Convert _may_cutdown to consult the restored mons_is_firewood.

--------------------------------------------------------------------------------
e26087ec7b | Robert Vollmert | 2010-01-24 21:16:40 +0100

Revert "Revert "mons_is_firewood: Monsters that other monsters may cut 
through.""
This reverts commit a21ab46018f3971b7d15e390c7eee45f8d32b92b.

The property found a second use.

--------------------------------------------------------------------------------
f2fbd09ae4 | Darshan Shaligram | 2010-01-25 01:45:31 +0530

Double the effect of Shields skill on ASP.
New formula for ASP: SP - (Shields / (5 + size))

--------------------------------------------------------------------------------
6c1134becf | Charles Otto | 2010-01-24 15:02:53 -0500

Display the food acquirement option as 'Fruit' for Fedhas worshipers

--------------------------------------------------------------------------------
92649d2880 | Charles Otto | 2010-01-24 15:02:33 -0500

Fedhas worshipers get fruit from food acquirement (patch by MarvinPA)
Mantis issue 251 - let Fedhas worshipers get a stack of fruit from
acquirement instead of honeycomb.

--------------------------------------------------------------------------------
eb50c020e6 | Darshan Shaligram | 2010-01-25 01:24:53 +0530

Don't let shield penalty turn into a bonus.

--------------------------------------------------------------------------------
796fa0d4be | Darshan Shaligram | 2010-01-25 00:57:59 +0530

Fix broken pickup.lua (78291).
The pickup code was pushing item_defs as lightuserdata instead of a wrapped 
item userdata, and item.can_cut_meat() should have been written 
item.can_cut_meat.

--------------------------------------------------------------------------------
431f7c2fa9 | Robert Vollmert | 2010-01-24 19:45:17 +0100

Fix long messages not being linebroken in history.

--------------------------------------------------------------------------------
d561732543 | Johanna Ploog | 2010-01-24 20:04:09 +0100

Fix Mantis BR 523: Tiles player mini hp/mp bar misbehaviour.

--------------------------------------------------------------------------------
cf2d864238 | Johanna Ploog | 2010-01-24 19:34:30 +0100

Fix gates not being handled correctly in Xom's "change scenery" act. Doors are 
now handled correctly, but I still get visibility issues with stuff that 
changes before the doors slam shut, which is fairly minor but a bit weird. 
Also, Xom opening/closing doors is properly noisy now.

--------------------------------------------------------------------------------
5dcf04fdaa | Darshan Shaligram | 2010-01-24 23:00:06 +0530

Armour/shield spellcasting penalty should not be negative (i.e. never a bonus).

--------------------------------------------------------------------------------
65d3a42293 | Johanna Ploog | 2010-01-24 17:13:42 +0100

Fix "stairs" not being pluralised correctly.

--------------------------------------------------------------------------------
5e625c350d | Johanna Ploog | 2010-01-24 16:16:44 +0100

Remove dangling transparent pixels from angel and Menkaure tiles.

--------------------------------------------------------------------------------
0f881e00c4 | Johanna Ploog | 2010-01-24 16:16:44 +0100

Unlink .tdl (tile doll file) upon character death.

--------------------------------------------------------------------------------
ce1dfc7b2b | Robert Vollmert | 2010-01-24 15:44:36 +0100

Provide an implementation of round() for MSVC.
Should hopefully fix the compile.

--------------------------------------------------------------------------------
48b44ea901 | Johanna Ploog | 2010-01-24 15:26:49 +0100

Revert check for .tdl files, doesn't work.

--------------------------------------------------------------------------------
6b0ad0f051 | Jude Brown | 2010-01-24 23:32:09 +1000

Give (adult) alligators tail-slap attacks.

--------------------------------------------------------------------------------
2be18d1431 | Darshan Shaligram | 2010-01-24 19:00:43 +0530

Throw a Lua error instead of killing Crawl if a Lua state does not have a known 
matching clua (this can happen when coroutines are involved).

--------------------------------------------------------------------------------
73905f957c | Darshan Shaligram | 2010-01-24 18:55:19 +0530

Fix stash-tracker item annotations and restrict user scripts to access items 
only on the same turn the items were wrapped for Lua by the core C++ code.

--------------------------------------------------------------------------------
ba8c91386a | Robert Vollmert | 2010-01-24 14:07:01 +0100

Disambiguate uses of sqrt by casting to double.
Should fix a a Visual Studio compile error (felirx).

--------------------------------------------------------------------------------
8d1597fae9 | Robert Vollmert | 2010-01-24 13:54:16 +0100

Fix explosion drawing with messages_at_top.
Another case of view coordinate confusion -- they're unfortunately
screen-absolute.

--------------------------------------------------------------------------------
9a9a26857f | Robert Vollmert | 2010-01-24 13:40:47 +0100

Clear messages before the tutorial messes with options.
There was --more-- prompt weirdness because Options.clear_messages
was changed in the middle of messaging.

--------------------------------------------------------------------------------
d15f7f13d9 | Jude Brown | 2010-01-24 22:07:52 +1000

Convert items Lua library to use metatable. May case end-user issues.
Like the monster library, the item library now uses a metatable to store
its functions. Instead of using lightuserdata, as before, and passing
this to the different item.* functions, the functions are now members of
the actual item.

The item library has also been renamed to "items": this allows for its
use in Vault definitions without it clashing with the item specifier and
dgn.item function.

Example:

 * Previously, you would use:
     local x = item.inventory()[1]
     print(item.name(x, false))
 * Now, you would use:
     local x = items.inventory()[1]
     print(x.name(false))

This will have an impact on end-user scripts that use the old version of
the item library. I have already updated the uses of the items library
in the dat/lua scripts, as well as vault definitions and marker
definitions. I think I've caught them all.

There may be bugs or issues, but hopefully that's everything. (Does
cause issues with annotations such as {artefact}, will be fixed
shortly.)

--------------------------------------------------------------------------------
6f65497b7f | Darshan Shaligram | 2010-01-24 17:18:24 +0530

The Lernaean hydra can now knock down trees, and is SIZE_HUGE.

--------------------------------------------------------------------------------
6f76b8ac1f | Robert Vollmert | 2010-01-24 12:03:50 +0100

Don't call flush_prev_message in c_getch in tiles or w32.
This could cause stack overflows because more prompts read keys
using c_getch; there's also no reason that c_getch should need
to flush on some platforms and not others.

--------------------------------------------------------------------------------
019904d248 | Darshan Shaligram | 2010-01-24 16:15:21 +0530

Allow hand-and-half bonus even if the player qualifies for aux unarmed rounds 
(affects only minimum attack speed).

--------------------------------------------------------------------------------
f050211e9b | Johanna Ploog | 2010-01-24 03:05:19 +0100

Fix .tdl files not being unlinked on character death.

--------------------------------------------------------------------------------
e4e5e02a48 | Johanna Ploog | 2010-01-24 03:02:54 +0100

Don't attempt to unpack non-existing .tdl files.
A character created in the console version naturally doesn't have a
tile doll (tdl) file and if you switch to the Tiles version you
kept getting error messages about said file not being found until
you eventually open the savefile in the Tiles version. This is
no longer the case.

--------------------------------------------------------------------------------
11eab33e6c | Johanna Ploog | 2010-01-24 02:34:12 +0100

Merge branch 'direction-rewrite' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
direction-rewrite

--------------------------------------------------------------------------------
21f6bc5647 | Johanna Ploog | 2010-01-24 01:19:58 +0100

Fix SF BR 2913259: Bad pluralisation in database lookup.

--------------------------------------------------------------------------------
e7e71e2419 | Johanna Ploog | 2010-01-24 00:35:42 +0100

Add purge's burning bush tile.

--------------------------------------------------------------------------------
1b43f5a16b | Enne Walker | 2010-01-23 22:30:59 -0500

Make flying actors not appear to be in water.
A few checks were not respecting the FLYING flag, and so flying monsters
and players would appear to be submerged in water in tiles.

--------------------------------------------------------------------------------
bdf6493164 | Johanna Ploog | 2010-01-23 23:50:35 +0100

Add a variation of Nessos' tile to UNUSED, for a future CePa unique. Done by 
Porkchop.

--------------------------------------------------------------------------------
b2163f1ee0 | Robert Vollmert | 2010-01-23 22:24:15 +0100

Revert "During Che prayer, removing ponderous armour doesn't speed you up."
This reverts commit 7fe2bb4e80a977ca92e8c62df84ae63de98fa89d.

As TGW pointed out, this would mean you could get ponderous effect
without wearing the armour by keeping up prayer.

--------------------------------------------------------------------------------
7fe2bb4e80 | Robert Vollmert | 2010-01-23 22:16:16 +0100

During Che prayer, removing ponderous armour doesn't speed you up.

--------------------------------------------------------------------------------
1511ae9402 | Robert Vollmert | 2010-01-23 22:10:24 +0100

Make DID_UNPONDEROUS piety cut depend on level.
level = number of items of ponderousness unequipped.

Each item cuts piety by 1/3 currently.

--------------------------------------------------------------------------------
978a9999a2 | Robert Vollmert | 2010-01-23 22:10:24 +0100

Don't cut piety for unpondering during prayer.

--------------------------------------------------------------------------------
bc868ace66 | Robert Vollmert | 2010-01-23 22:10:24 +0100

Enable Cheibriados prayer, tracking ponderousness at start and end.
Ending prayer will cause DID_UNPONDEROUS with level the net
number of items removed.

Prayer has no other effects at the moment. It needs to get some
to discourage just praying all game if you want to remove some armour.

--------------------------------------------------------------------------------
9d6ab8d275 | Robert Vollmert | 2010-01-23 22:10:23 +0100

Optionally count melded armour in player_equip_ego_type.
Cheibriados is interested in all armour you have equipped
and should not be trickable by changing form.

--------------------------------------------------------------------------------
364737a546 | Robert Vollmert | 2010-01-23 22:10:23 +0100

Add field player::che_saved_ponderousness.
The name is too long.

This will be used to store the amount of ponderous armour
worn at prayer start.

Increment minor version.

--------------------------------------------------------------------------------
8e9310a21b | Adam Borowski | 2010-01-23 21:46:41 +0100

Don't use "of Pain" as a randart name.

--------------------------------------------------------------------------------
29850c7c47 | Darshan Shaligram | 2010-01-24 01:53:09 +0530

AC/EV changes as outlined on CDO wiki.
The first iteration of AC/EV changes as described on
http://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:misc:ac

Although the distinction between heavy and light armour has been
removed for the actual AC and EV calculations, the heavy/light armour
distinction is still in place for skill training. Skill training is
not modified in any way by this change.

Change details follow, with Armour = armour skill, Dodge = Dodging skill:

New total AC
  = base_AC * (23 + effective_armour_skill) / 23
    + enchantments
    + modifiers
    Where
     - effective_armour_skill = armour skill + racial armour skill bonus.
     - enchantments = armour enchantments
     - modifiers = transforms, mutations, etc. affecting AC.

New guaranteed damage reduction:
  = body_base_AC*(13+Armour)/17 * max_dam/100

New total EV:
  = 10 + size + (7 * Dodge * Dex) / (20 * AEVP - size) - AEVP - ASP + bonuses
    Where size = 2 * (medium - body_size)
              having: body_size be one of:
                  tiny = 0
                  little = 1
                  small  = 2
                  medium = 3
                  large  = 4
                  big    = 5
                  giant  = 6
                  huge   = 7
              For ref: halfling = small, human = medium, ogre = large,
                       dragon = huge
          AEVP (adjusted evasion penalty for armour):
              = body_AEVP + piece_EVP
                Where body_AEVP is for the body armour, calculated as:
                        = (EVP + MAX(0, 3*EVP - Str)) * (45 - Armour) /45
                          where EVP = base evasion penalty of the armour
                      piece_EVP is the sum of the base evasion penalties of
                      the non-body armour worn, excluding shields. Currently
                      this is only applicable to bardings (EVP of 2).
          ASP (adjusted shield evasion penalty):
              = SP - (1 + Shields) / (2 * (5 + size))
                where SP = 1 for buckler, 3 for shield, 5 for large shield

New spellcasting penalty:
  = 25 * (body_AEVP + ASP) - 20 - race_mod
    where race_mod = 25 for elven, -15 for dwarven,
          15 for races in their native armour.

New combat penalties:
  - to-hit penalty = 1d(body_AEVP) + 1d(ASP)
  - to-hit penalty for 1.5 hand weapons = 1d(body_AEVP) + 2d(ASP)
  - to-dam penalty for 1.5 hand = 1d(ASP)

  - base_delay is unchanged if body_AEVP is 0, otherwise:
    - base_delay             = max(base_delay, 1d10 + 1d(body_AEVP))
    - base_delay for unarmed = max(base_delay, 1d10 + 2d(body_AEVP))

    - final_delay              += min(1d(body_AEVP), 1d(body_AEVP))
    - final_delay for 1.5 hand += min(1d(body_AEVP) + 1dASP,
                                      1d(body_AEVP) + 1dASP)

1.5-hand weapons now receive penalties when wearing shields, whereas
before they had bonuses handed out when *not* wearing shields. To
compensate for this, more or less, I've changed existing
hand-and-halfer stats as follows (dam/hit/attack delay):
    - katana             13/2/13  -> 14/3/12
    - blessed katana     14/1/13  -> 15/2/12
    - double sword       15/-2/16 -> 16/-1/15
    - blessed dbl swd    15/-2/15 -> 16/-1/14
    - broad axe          14/-2/17 -> 14/-2/16  (axes don't need help :P)
    - spear              6/3/12   -> 7/4/11
    - trident            9/2/14   -> 10/3/13
    - demon trident      13/0/14  -> 14/1/13

These changes do not match the old 1.5 hander behaviour - they make
hand and halfers stronger, because the boost is to base damage,
whereas the old behaviour was to boost damage after weapon skill was
applied. The 1.5 hander changes will probably need to be discussed and
revisited.

--------------------------------------------------------------------------------
7149ab91fb | Robert Vollmert | 2010-01-23 21:21:42 +0100

Split out godprayer.{cc,h} from religion.cc.
This is directly prayer related code, as well as some things
on sacrifice that were pulled along. Ideally, the sacrifice-related
code should follow, or be collected in a further file.

--------------------------------------------------------------------------------
788a92e75c | Robert Vollmert | 2010-01-23 20:45:07 +0100

Fix compile.

--------------------------------------------------------------------------------
917cc2df17 | Robert Vollmert | 2010-01-23 20:26:25 +0100

Split out did_god_conduct and some other things to godconduct.{h,cc}.

--------------------------------------------------------------------------------
cfdaf57f2f | Adam Borowski | 2010-01-23 18:32:23 +0100

Add another grade for piety loss after mere -10 "extremely guilty".

--------------------------------------------------------------------------------
26ebeafe33 | Adam Borowski | 2010-01-23 18:23:47 +0100

Give a message when removing ponderousness as a CB worshipper.

--------------------------------------------------------------------------------
9b4a7a57ae | Haran Pilpel | 2010-01-23 17:50:02 +0200

Always print items when just_looking. Fix capitalization.

--------------------------------------------------------------------------------
67be55e3c3 | Haran Pilpel | 2010-01-23 17:12:25 +0200

Merge branch 'master' into direction-rewrite

--------------------------------------------------------------------------------
dbb4f7ba38 | Haran Pilpel | 2010-01-23 17:11:41 +0200

More improvements to direction().

--------------------------------------------------------------------------------
4afa74bf06 | David Lawrence Ramsey | 2010-01-23 07:23:25 -0600

Make snapping turtles level up into alligator snapping turtles, and make baby 
alligators level up into alligators.

--------------------------------------------------------------------------------
7d59d745cd | Jude Brown | 2010-01-23 21:03:31 +1000

Alligators now generate as patrolling, unless they're in a band.
All that's left now is for them to be "timid" (only attack if you attack
them first, or come within four or so grid squares of them), which
Darshan is looking into.

--------------------------------------------------------------------------------
21cb4595aa | Jude Brown | 2010-01-23 20:57:55 +1000

Kraken no longer submerge while fleeing, but squirt clouds of ink.
New cloud type of "ink": it can only exist "over" water (and should be
detailed in Tiles transparently, as though it's under the water as well
as above it, if posible).

Also, tentacles will now flee when the kraken head flees. This means
that the kraken head doesn't flee, and then stop because the tentacles
are too busy attack you to do anything interesting. It does't mean it
will always continue fleeing, however.

--------------------------------------------------------------------------------
bc4a1481e3 | Jude Brown | 2010-01-23 17:56:44 +1000

Let alligators spawn regularly in Swamp.
You should get one or two per level. There is also a chance of the
alligator spawning with several young (baby alligators), which I think
is thematically interesting.

--------------------------------------------------------------------------------
9ea65f5612 | Jude Brown | 2010-01-23 17:13:12 +1000

Move volcano.des to the right folder, spellcheck.

--------------------------------------------------------------------------------
d619ec97ac | Jude Brown | 2010-01-23 17:10:52 +1000

Add (rename) crocodiles and alligators.
Giant lizards are now aphibious, brown 't', known as 'crocodile'.
Otherwise, their stats are identical (apart from the swim speed bonus).

Alligators and baby alligators are lightblue and blue 't' respectively:
the "adult" form is slow, but puts on a "burst of speed" (emulated by
using swiftness). I considered using a combination of high speed and
adjusted movement energy, but it looked odd.

--------------------------------------------------------------------------------
a537b5aa96 | Haran Pilpel | 2010-01-23 09:05:23 +0200

Merge branch 'master' into direction-rewrite

--------------------------------------------------------------------------------
be1ab9342e | Robert Vollmert | 2010-01-23 08:01:55 +0100

Disallow Freeze and Vampiric Draining from affecting submerged monsters.
Similar justification to the beam change -- using these against
submerged monsters is very obscure and grindy.

--------------------------------------------------------------------------------
667e710dba | Robert Vollmert | 2010-01-23 08:01:54 +0100

Never target submerged monsters.
Since they're not affected by beams anymore, they shouldn't
be targetted.

--------------------------------------------------------------------------------
c4f5129ce7 | Robert Vollmert | 2010-01-23 08:01:54 +0100

Don't allow beams to affect submerged monsters.
Targetting submerged creatures is part spoiler-knowledge, part
interface nightmare, and leads to grindy play.

This obviously makes it even harder to kill submerged monsters,
but other solutions for this problem are planned.

--------------------------------------------------------------------------------
f62438ab20 | Robert Vollmert | 2010-01-23 08:01:54 +0100

Rename _mons_submerged_in_water to _mons_exposed_in_water.
The check also handles invisible monsters walking through water.

--------------------------------------------------------------------------------
e64a17d5a2 | Robert Vollmert | 2010-01-23 08:01:54 +0100

Don't abort vampiric draining freely if no monster present.
This allowed locating adjacent invisible monsters for free.

--------------------------------------------------------------------------------
c79320d973 | Haran Pilpel | 2010-01-23 09:01:12 +0200

Merge remote branch 'origin/master' into direction-rewrite
Conflicts:
	crawl-ref/source/directn.cc

--------------------------------------------------------------------------------
9f331bee8b | Haran Pilpel | 2010-01-23 08:47:22 +0200

Complete rewrite of direction(). Tiles people need to look at this.
Rewrite direction and make message spam much more controllable. Unfortunately,
this seems to have had the side effect of making it much slower on tiles.
Can the tiles people take a look at this and figure out what I'm doing wrong?

Not 100% tested, might still have bugs.

--------------------------------------------------------------------------------
8ee56eafe0 | Jude Brown | 2010-01-23 13:32:09 +1000

Hopefully fix "Triggerable already removed" issues with burning trog altar.

--------------------------------------------------------------------------------
629a7ffc5d | Charles Otto | 2010-01-22 20:03:46 -0500

Make toadstools generated by decomposition neutral again
Now that Fedhas worshipers can shoot through neutrals there is no need
for them to be friendly (and making the toadstools neutral means we
don't have to special case the ally died conduct).

--------------------------------------------------------------------------------
96b195144c | Charles Otto | 2010-01-22 19:30:27 -0500

Fix an assert triggered by drawing sunlight in the console version
Add a missing coordinate conversion before moving the cursor after
drawing sunlight in the console version.

--------------------------------------------------------------------------------
795832d886 | Charles Otto | 2010-01-22 19:28:36 -0500

Fix call to player_can_hear used for the monster splashing message
Use hearing distance = 8 for the "You hear a splashing noise" message
and fix a typo in the call to player_can_hear which prevented the
distance restriction from being used.

--------------------------------------------------------------------------------
728ac87d58 | rburnham | 2010-01-22 18:41:14 -0500

0000460 : "you hear a splashing noise." message leak
Modified player_can_hear, added hear_distance argument which defaults to 
level-wide (so as to not break any previous uses of player_can_hear which 
represents the distance a player can hear). Modified monster.cc to pass in a 
parameter of 20 to player_can_hear when generating the splashing message.

--------------------------------------------------------------------------------
e88af52afc | Johanna Ploog | 2010-01-23 00:34:06 +0100

Use Porkchop's tile for the Robe of Clouds.

--------------------------------------------------------------------------------
f55474b781 | Johanna Ploog | 2010-01-23 00:21:38 +0100

Use "character background" in the FAQ.

--------------------------------------------------------------------------------
6033313e12 | Johanna Ploog | 2010-01-23 00:02:51 +0100

Replace holy scourge tile with a more glowy version, also by Porkchop. Also, 
deactivate the %rim property for it to show up correctly.

--------------------------------------------------------------------------------
44ecb0af9a | Robert Vollmert | 2010-01-22 22:29:08 +0100

Cheibriados piety loss for unequipping ponderous armour.
This solves the problem that before, players were urged to
wear their ponderous armour against easy opponents but not
when exploring and against strong opponents.

Taking off ponderous armour cuts piety by 1/4.

It would be nice to allow the player to switch armours
while retaining the same level of ponderousness, but it's
unclear how to do that correctly and elegantly. Suggestions
welcome (Chei wiki page).

If this is done, the piety cost could be raised by a bit.

--------------------------------------------------------------------------------
e31a025185 | Robert Vollmert | 2010-01-22 22:29:08 +0100

Bring did_god_conduct header parameter naming in line with implementation.

--------------------------------------------------------------------------------
9c721b900c | Robert Vollmert | 2010-01-22 22:29:07 +0100

Allow Cheibriados worshippers to ponderousify any armour slot.
Shields excepted.

There's no obvious reason why allowing this would hurt. dpeg
says that Ponderousify should allow the player to fine-tune
his movement speed, which requires more than one slot.

This also moves the armour check out to is_ponderousifiable()
and uses this to filter the inventory, making things a little
simpler.

--------------------------------------------------------------------------------
334aa95dff | Eino Keskitalo | 2010-01-22 22:35:51 +0200

Consistency for MONS_ORANGE_STATUE enum constants.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
47defd3b8f | Darshan Shaligram | 2010-01-23 01:37:36 +0530

[Mantis 514] Reduce steam cloud generation for flame cloud near water.

--------------------------------------------------------------------------------
6518ffd732 | Eino Keskitalo | 2010-01-22 21:36:28 +0200

Fix snapping turtle tile pick (Napkin)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
5ae694d0e6 | Robert Vollmert | 2010-01-22 18:18:39 +0100

Fix beam drawing in the wrong place.
_draw_ray_glyph was writing with GOTO_DNGN, while view coordinates
(as by grid2view) appear to be screen-absolute.

It might be worth either changing grid2view to return coordinates relative
to GOTO_DNGN, or renaming grid2view to grid2screen.

--------------------------------------------------------------------------------
16ddaad714 | Robert Vollmert | 2010-01-22 18:18:39 +0100

Change cursorxy to always use screen coordinates.
It was using GOTO_DNGN, which could mess up with messages_at_top
or when drawing outside the view window.

--------------------------------------------------------------------------------
d4435c8b8b | Robert Vollmert | 2010-01-22 18:18:39 +0100

Redraw SH for strength change.
Fixes #509.

--------------------------------------------------------------------------------
5495fc57da | Johanna Ploog | 2010-01-22 17:28:19 +0100

Move transformation tiles into their own folder player/transform.
Except for the pig_form tile they're all identical to the corresponding
monster but I expect that at some point in the future they'll all be
differentiated. (Though I don't plan on doing that myself, at least not
within the next couple of weeks.)

--------------------------------------------------------------------------------
9af80fca27 | Johanna Ploog | 2010-01-22 17:28:19 +0100

Replace player hog tile with one based on Porkchop's creation. Thanks!

--------------------------------------------------------------------------------
74872017b2 | Robert Vollmert | 2010-01-22 16:16:40 +0100

Update includes after the mon-util.h split.

--------------------------------------------------------------------------------
4911b06171 | Robert Vollmert | 2010-01-22 16:16:40 +0100

Move mon_resist_def implementation to mon_resist_def.cc.

--------------------------------------------------------------------------------
c246f8a975 | Robert Vollmert | 2010-01-22 16:16:40 +0100

Split mon_resist_def out of mon-util.h.
This means ghost.h no longer needs to include all of mon-util.h.

--------------------------------------------------------------------------------
69801c3c6f | Robert Vollmert | 2010-01-22 16:16:40 +0100

Move enums from mon-util.h to mon-enum.h.
This should reduce the number of headers that need to include mon-util.h.

--------------------------------------------------------------------------------
fb00b04351 | Robert Vollmert | 2010-01-22 16:16:39 +0100

Move monster casts from melee_attack to actor.
They might be useful elsewhere, and this means fight.h
doesn't need to know "class monster".

The new methods

    monsters* actor::as_monster();
    player* actor::as_player();

return NULL if the class doesn't match.

--------------------------------------------------------------------------------
ff178309a7 | Robert Vollmert | 2010-01-22 16:16:39 +0100

Replace print_formatted_paragraph by mpr.

--------------------------------------------------------------------------------
b00a92348e | Robert Vollmert | 2010-01-22 16:16:39 +0100

Update message.cc TODO list.

--------------------------------------------------------------------------------
66c4191b1c | Eino Keskitalo | 2010-01-22 17:01:16 +0200

Add options to control showing the minibars on the player tile.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0ea43b2706 | Johanna Ploog | 2010-01-22 15:34:35 +0100

Mention artefactness of unidentified artefacts in their description.
Artefacts now contain the "ancient artefact" that "cannot be changed"
line (instead of the one about maximum enchantment), whether they are
identified or not. That should make it much easier for players to work
out the pattern behind item descriptors and special colours/tiles.

--------------------------------------------------------------------------------
2529c57241 | Jude Brown | 2010-01-22 23:03:44 +1000

Very occasionally use _many_pools with Trees instead.
This should be quite rare, and I think it would provide an interesting
and thematic look to levels.

--------------------------------------------------------------------------------
60ebd32f17 | Jude Brown | 2010-01-22 23:03:43 +1000

Generate an error for no markers on Lua slave iterator.
This prevents obscure messages about nil tables: in instances where
there are no copies of a marker with the required prop=value, an error
message that makes sense will instead be generated.

--------------------------------------------------------------------------------
9af02c492a | Robert Vollmert | 2010-01-22 14:01:57 +0100

Fix --more-- prompts not being flushed.
Fixes issue #505.

--------------------------------------------------------------------------------
75be38c6a4 | Johanna Ploog | 2010-01-22 14:01:01 +0100

Don't allow exclusions in labyrinths.
They weren't remembered before, but you could try to set one anyway
and the game would give no indication that it would be removed right
away.
I've considered adding a message but was unsure how to handle this
in the console version, so I didn't.

--------------------------------------------------------------------------------
445a015973 | Jude Brown | 2010-01-22 22:32:40 +1000

Remove monster and player water attack bonus.
The final part of the amphibious monsters overhaul. Water-based monsters
no longer get an attack bonus when attacking floundering monsters;
likewise, the player (specifically, merfolk) no longer get an attack
bonus while swimming and attacking floundering monsters.

--------------------------------------------------------------------------------
e6389b48e1 | Jude Brown | 2010-01-22 22:32:40 +1000

Unlink habitat and submerging.
Second part of the changes to aquatic monsters: submerging is no longer
linked to habitat, but instead to M_SUBMERGES. Merfolk no longer
submerge, so removing some outdated code.

Giant leeches no longer submerge. Air elementals use a different
mechanism for submerging (enforced submerging, randomly). Trapdoor
spiders and aquatic/lava monsters should behave as per normal.

This commit doesn't deal with the issues of submerging that still
remain: ie, that submerging is annoying.

--------------------------------------------------------------------------------
97508e645b | Jude Brown | 2010-01-22 22:32:40 +1000

Merge HT_AMPHIBIOUS_WATER/LAND, remove amphibious speed boni.
First part of the amphibious/water creatures overhaul: speed boni are
now handed out per-monster using SWIM_ENERGY. Most previous monsters
that were amphibious have retained their speed boni; some have lost them
(jellies and slime creatures, ice beasts).

--------------------------------------------------------------------------------
a3504a65ba | Robert Vollmert | 2010-01-22 13:29:29 +0100

Save stash tracker reply to stash tracker.
Also don't redraw the prompt each iteration, since the message
window can now redisplay the prompt after exiting the help
menu.

--------------------------------------------------------------------------------
fcfcb486ba | Robert Vollmert | 2010-01-22 13:28:40 +0100

Move display_message_window() to the end of redraw_screen().
This makes sure the cursor is at the correct position if a
prompt is still active.

--------------------------------------------------------------------------------
05e793241f | Robert Vollmert | 2010-01-22 11:57:26 +0100

Annotate snakable items with "stick" for the stash tracker.

--------------------------------------------------------------------------------
db2f87eebc | Robert Vollmert | 2010-01-22 11:56:51 +0100

item.snakable: Lua binding for item_is_snakable.

--------------------------------------------------------------------------------
ac585e0816 | Robert Vollmert | 2010-01-22 11:56:23 +0100

item_is_snakable: Whether an item is suitable for Sticks to Snakes.

--------------------------------------------------------------------------------
f45e327980 | Robert Vollmert | 2010-01-22 11:35:59 +0100

Update artefact stash search comment.

--------------------------------------------------------------------------------
a5c0dcc216 | Robert Vollmert | 2010-01-22 11:35:59 +0100

l_item.cc: item.artefact doesn't check identified status anymore.
We're giving away whether an item is an artefact by colouring
anyway, so we can also tell client-lua.

Fixes stash search not finding unidentified artefacts when
search for {artefact} (issue #431).

--------------------------------------------------------------------------------
d3eb308ad2 | Darshan Shaligram | 2010-01-22 15:54:56 +0530

Make super OOD chances start at 1/5000 again, and increase ramp time to 9k 
turns (0.02% at 3k -> 100% at 12k turns).

--------------------------------------------------------------------------------
e2dbb8c140 | Robert Vollmert | 2010-01-22 11:17:06 +0100

Move cutting down check out of _monster_move.

--------------------------------------------------------------------------------
a21ab46018 | Robert Vollmert | 2010-01-22 11:17:05 +0100

Revert "mons_is_firewood: Monsters that other monsters may cut through."
This reverts commit 7c2d3651258cf4493cf84f7c405449382d1d6fb5.

The check for mons_is_firewood turned out not to be enough for
determining whether a monster should cut down a plant, and it's
not used elsewhere, so folding this into mon-act.cc:_may_cutdown.

--------------------------------------------------------------------------------
e2ec8461d3 | Adam Borowski | 2010-01-22 10:47:33 +0100

Multiple copies of new amulets are useless (Marvin)

--------------------------------------------------------------------------------
e330e68623 | Adam Borowski | 2010-01-22 10:43:35 +0100

Scrolls (not spells) of torment are definitely not useless for undead (Marvin)

--------------------------------------------------------------------------------
256b3fc73c | Jude Brown | 2010-01-22 16:39:17 +1000

Don't let monsters pathfind through friendly firewood. (MarvinPA)
Friendlies killing other friendlies or neutrals will cause piety loss
for Fedhas and other gods. Good neutral are specifically specified to
not attack friendlies (according to enum.h), so disallowing them from
killing friendly firewoood.

Otherwise, they should destroy toadstools as per original intent.

--------------------------------------------------------------------------------
f98e13e46b | Robert Vollmert | 2010-01-22 02:37:23 +0100

Fix abundance of new turn dashes.

--------------------------------------------------------------------------------
a0d0bf1178 | Robert Vollmert | 2010-01-22 02:37:23 +0100

Handle both types of more prompts the same for input.
Also reenable autoclearing.

There's one issue remaining where the main loop
disables autoclearing at turn start: The autopickup
message can cause an uncleared --more-- prompt.

I'm not sure if this is a new issue, or how to fix it.

--------------------------------------------------------------------------------
17897d12d1 | Robert Vollmert | 2010-01-22 02:37:23 +0100

Reenable forced (delay-also) mesclr; use sparingly.

--------------------------------------------------------------------------------
8bfcf9208e | Robert Vollmert | 2010-01-22 02:37:23 +0100

Remove almost all instances of mesclr(true).
This works better with delayed messaging in general.

If some of these turn out to have been really necessary,
just replace them.

--------------------------------------------------------------------------------
263f3d1fb3 | Robert Vollmert | 2010-01-22 02:37:23 +0100

Don't call new_level from redraw_screen.
Instead, call print_stats_level directly.

--------------------------------------------------------------------------------
fb227f3f1b | Robert Vollmert | 2010-01-22 02:37:23 +0100

Turn off cursor in print_stats.

--------------------------------------------------------------------------------
060d406c2e | Darshan Shaligram | 2010-01-22 06:35:39 +0530

Fix super OOD chances not rising linearly (syllogism).
Super OOD ramp-up is now from 3k->9k turns spent on level.

Also fix monster level escalating if an initial monster candidate is rejected.

--------------------------------------------------------------------------------
ce0d8176f0 | David Ploog | 2010-01-22 02:04:08 +0100

Split up des files into four folders.
These are: portals, branches, variable, builder.

--------------------------------------------------------------------------------
8af4e42790 | Johanna Ploog | 2010-01-22 01:41:22 +0100

Add a comment.

--------------------------------------------------------------------------------
fc94cdcedd | Johanna Ploog | 2010-01-22 01:07:34 +0100

Fix post-mortem inventory sometimes not being browsable.
I replaced the you.turn_is_over hack that was supposed to prevent
the player being able to continue browsing through her inventory
after having started to memorise a spell with a direct check
against the delay.
This reallowed browsing the post-death inventory, but did include
memorisation prompts after death, which I've decided to suppress
using a new crawl_state function player_is_dead().

I'm sure we'll find other applications elsewhere.

--------------------------------------------------------------------------------
125ae6e64b | Darshan Shaligram | 2010-01-22 04:22:22 +0530

Restore respawn rate to 1/240 per standard turn, subject to scaling for time 
spent on the level.

--------------------------------------------------------------------------------
25bf26adf3 | Robert Vollmert | 2010-01-21 23:41:42 +0100

Scroll message window one-line-at-a-time when adding messages.
This makes sure that long messages get the intermediate --more--
prompts, fixing issue #494.

--------------------------------------------------------------------------------
b18974f645 | Robert Vollmert | 2010-01-21 23:41:31 +0100

Redraw message window before printing --more-- prompt.

--------------------------------------------------------------------------------
3a0fe26cea | Johanna Ploog | 2010-01-21 23:19:43 +0100

Add Porkchop's holy scourge tiles.

--------------------------------------------------------------------------------
24a88db198 | Johanna Ploog | 2010-01-21 23:19:42 +0100

Respect key bindings in a great number of tutorial messages.

--------------------------------------------------------------------------------
104b10d63f | Darshan Shaligram | 2010-01-22 03:12:21 +0530

Discard unused function.

--------------------------------------------------------------------------------
95a44477da | Darshan Shaligram | 2010-01-22 03:06:59 +0530

Decrease rarity of tentacled monstrosities in Swamp (they're still quite rare).

--------------------------------------------------------------------------------
141c1e7bbf | Darshan Shaligram | 2010-01-22 03:06:59 +0530

Monster respawn rate reduces after 3k turns on level, respawning ends after 15k 
turns on level, monster level fuzz and super OOD rates increase with time spent 
beyond 3k turns on level.
The four hells, Zot, and all non-LEVEL_DUNGEON areas (Pan, Abyss and friends) 
are not affected by these changes.

Monster level fuzz can now be up to +7 levels (was +4); this also applies to 
monsters placed during level-generation (14% chance per monster as before).

Super OODs can now be up to +26 (random2avg(27, 2); was +11). Super OOD gen 
only begins after over 1k turns spent on level and is still quite rare 
initially (1 in 500, was 1 in 5000 in 0.5).

Monster fuzz chances (chance of +0-7 to monster level) increase after 3k turns 
from 14% to 100% after 7.8k turns.

Super OOD chances increase after 3k turns from 1 in 500 (0.2%) to 100% after 
12k turns.

--------------------------------------------------------------------------------
18a740f01d | Robert Vollmert | 2010-01-21 22:29:08 +0100

Fix last column in message window not being cleared properly.

--------------------------------------------------------------------------------
8226ea335d | Johanna Ploog | 2010-01-21 22:36:20 +0100

Add a missing break in the delay starting message switch conditional.

--------------------------------------------------------------------------------
779740b333 | Johanna Ploog | 2010-01-21 22:18:18 +0100

Turn autopickup back on when killing backlit invisible monsters.

--------------------------------------------------------------------------------
912746a560 | Robert Vollmert | 2010-01-21 17:24:21 +0100

Use msgwin_prompt/reply when adding a macro.
Fixes issue #482.

--------------------------------------------------------------------------------
b6ed277a9e | Robert Vollmert | 2010-01-21 17:24:21 +0100

msgwin_prompt and msgwin_reply to allow generic saving of replies.
Rewrite msgwin_get_line to use these.

--------------------------------------------------------------------------------
e7cb82bc02 | Adam Borowski | 2010-01-21 15:54:27 +0100

Fix bad display of Chei's powers.

--------------------------------------------------------------------------------
6d2b6e59eb | Adam Borowski | 2010-01-21 15:54:27 +0100

Disallow scumming D:1 for CB piety.  Slightly increase the gains otherwise.

--------------------------------------------------------------------------------
6ef73463ab | Adam Borowski | 2010-01-21 15:54:27 +0100

Drop piety for gourmand with CB (scummable).
A fix for good gods' free piety is being discussed, but it wouldn't fit
well for CB either since it promotes hasty exploration.

--------------------------------------------------------------------------------
17679527ba | Adam Borowski | 2010-01-21 15:54:26 +0100

Mummy reform 3/3: cut monster spawns by half, generate more OODs.
This affects everyone, not just mummies.

--------------------------------------------------------------------------------
42b59c174d | Adam Borowski | 2010-01-21 15:54:26 +0100

Mummy reform 2/3: diminishing gains for hundreds of kills.
The soft cap is high enough that it shouldn't affect normal play or light
scumming much or at all.  Even several long trips to Pan are unlikely to
bring more than a couple of demon species over the first threshold (100),
and people doing mummy scumming by hand are not likely to be affected
badly either.

Scum bots, with 10k kills per species, are a different story.

--------------------------------------------------------------------------------
bf6576bdb2 | Adam Borowski | 2010-01-21 15:54:26 +0100

Mummy reform 1/3: the goodies.

--------------------------------------------------------------------------------
573a83e1da | Darshan Shaligram | 2010-01-21 20:22:47 +0530

Fix clean_map so it only affects level-map display and does not actually erase 
map monster memory (Napkin).
^C (clear map) no longer erases immobile monsters from memory (dpeg).

--------------------------------------------------------------------------------
8914c41b98 | Eino Keskitalo | 2010-01-21 14:31:42 +0200

Being an actual spellcaster with chaotic spells doesn't make you chaotic; 
having chaotic spells without being an actual spellcaster does - you have 
"innate" chaotic abilities. (Forgot to commit this earlier.)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
473a792160 | Eino Keskitalo | 2010-01-21 14:24:46 +0200

Add Tiamat to the chaotic monsters, for her changing colours.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
c984256563 | Jude Brown | 2010-01-21 22:14:09 +1000

Merge branch 'master' into wizlab
Conflicts:
	crawl-ref/source/dat/des/wizlab.des

--------------------------------------------------------------------------------
99c2300750 | Robert Vollmert | 2010-01-21 12:43:55 +0100

Allow line_reader to scroll its region.
This fixes issue #484.

There's still the problem that it will wrap to screen column
zero -- a region-aware version of wrapcprintf would be
required to fix this.

It's currently limited to the message window, since that's the
only region that implements scrolling. line_reader itself takes
care of printing its scrolled buffer.

This is something of a hack. It might eventually be desirable
to have some more window-like regions that all store their
content and allow scrolling; there would be some overlap with
tiles' TextRegion etc. But that would mean redoing curses
windows on top of cprintf/cgotoxy...

--------------------------------------------------------------------------------
a98ae0f60d | Robert Vollmert | 2010-01-21 12:43:54 +0100

Move cgetsize and cscroll outside #ifdef USE_TILE.
I'm not quite sure cgetsize does the right thing for tiles.

Compiles but not tested.

--------------------------------------------------------------------------------
b375614cbd | Robert Vollmert | 2010-01-21 12:41:16 +0100

Fix message_window::scroll to blank the new lines.

--------------------------------------------------------------------------------
0056c04dd8 | Robert Vollmert | 2010-01-21 12:41:16 +0100

Fix buffer not being terminated correctly in line_reader.

--------------------------------------------------------------------------------
9c594d7ed3 | Darshan Shaligram | 2010-01-21 17:02:59 +0530

Update tests to use crawl.message() instead of low-level crawl.mpr().

--------------------------------------------------------------------------------
bd71ccdb37 | Darshan Shaligram | 2010-01-21 16:31:59 +0530

Move .des files to dat/des, and allow them to be placed in subdirectories of 
dat/des.

--------------------------------------------------------------------------------
5ca03a6951 | Jude Brown | 2010-01-21 20:47:46 +1000

Iskenderun tweaks, Wucad Mu tiles.

--------------------------------------------------------------------------------
a886ce98f2 | David Ploog | 2010-01-21 11:18:03 +0100

Fixed testing WEIGHT for glass lich vault.

--------------------------------------------------------------------------------
138c8a952c | Adam Borowski | 2010-01-21 10:39:48 +0100

Whitespace fixes.

--------------------------------------------------------------------------------
3526973df9 | Adam Borowski | 2010-01-21 10:27:47 +0100

Fix newlines at end of file.

--------------------------------------------------------------------------------
0b392a6cf5 | Adam Borowski | 2010-01-21 09:58:42 +0100

Move Blade to a separate file, for consistency.

--------------------------------------------------------------------------------
01871c5f4b | Jude Brown | 2010-01-21 18:00:53 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
5afbacd64d | Jude Brown | 2010-01-21 14:44:58 +1000

Fix david_glass_crypt.
Unfortunately, item_pickup with "auto" as its target doesn't seem to
work with a variety of "|"s. Either way, I think I've fixed the player
movement.

--------------------------------------------------------------------------------
8724391af9 | Jude Brown | 2010-01-21 13:30:00 +1000

Move Tomb maps into their own files.
Apart from the Hall of Blades, which is just a single map in vaults.des,
that is every branch with its own map file. I think this is much
cleaner, and means that we don't have to scroll through all the
different branches and branch ends just to find the one being looked
for.

--------------------------------------------------------------------------------
1ea47049cb | Jude Brown | 2010-01-21 13:27:58 +1000

Tweak wording on Shoals atoll map.

--------------------------------------------------------------------------------
43d4ad1189 | Jude Brown | 2010-01-21 13:15:03 +1000

Add FHEIGHT to levdes.vim.

--------------------------------------------------------------------------------
d7d031de1f | Johanna Ploog | 2010-01-21 00:18:55 +0100

Add purge's tile for the orb of destruction and its magic trail.

--------------------------------------------------------------------------------
24e1062cb8 | Johanna Ploog | 2010-01-20 23:24:45 +0100

Add an equipment tile for the holy scourge.
I'll probably be replacing this with Porkchop's version soon enough
but I'd already finished drawing the tile when I realized he's also
working on it, so I might as well use it. :/

--------------------------------------------------------------------------------
51efcdce0e | Johanna Ploog | 2010-01-20 22:44:40 +0100

Fix tile asserts whenever tilemcache tried to draw a holy scourge.
The holy scourge still doesn't have a tile, but I've plugged the more
generic hole that made tilemcache sometimes attempt to draw weapons
without a tile yet using index 0, which failed all assertion checks.

--------------------------------------------------------------------------------
ea8f597314 | Robert Vollmert | 2010-01-20 21:47:50 +0100

A bunch of convenience functions for dealing with screen regions.
These are console only for the moment, and not used yet.

--------------------------------------------------------------------------------
00a86ae18e | Robert Vollmert | 2010-01-20 21:47:50 +0100

Export function to scroll message window.

--------------------------------------------------------------------------------
3c8124153e | Robert Vollmert | 2010-01-20 21:47:50 +0100

Revert "Fix crash in line_reader."
This reverts commit cce4866b9b9252c659c9570571fa4339875debb0.

The modified line_reader should get the actual region.

Conflicts:

	crawl-ref/source/libutil.cc

--------------------------------------------------------------------------------
7704e93a01 | Eino Keskitalo | 2010-01-20 20:17:33 +0200

Add a bit about updating the PDFs.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d7a36ae668 | Robert Vollmert | 2010-01-20 18:42:37 +0100

Fix tiles compile completing the libutil.h change.

--------------------------------------------------------------------------------
a1bcc86c3c | Robert Vollmert | 2010-01-20 17:08:03 +0100

Make line_reader aware of its region.
This should provide more clarity around the wherex()/wherey()/
get_cursor_region() confusion, which has to do with wherex()/wherey()
being screen relative in console mode and region relative in tiles.

It's still a hack, thought, and untested in tiles at the moment.

The main reason behind this is to eventually allow the line_reader
to scroll the region it's working in (see #484).

--------------------------------------------------------------------------------
50af0d3f07 | Robert Vollmert | 2010-01-20 17:08:03 +0100

Implement cgetpos for tiles.
Untested since I can't compile tiles here...

--------------------------------------------------------------------------------
e0c2efd668 | Robert Vollmert | 2010-01-20 17:08:02 +0100

Add cgetpos() as a region-aware replacement for wherex()/wherey().
Currently only for non-tiles build.

--------------------------------------------------------------------------------
c7ee5f5347 | Robert Vollmert | 2010-01-20 17:08:02 +0100

Remove libutil.h from AppHdr.h and include explicitly.
Also extract unwind_var template to unwind.h. The latter is now
included from AppHdr.h, though it needn't really be.

This means it's now possible to use coord_def in libutil.h.

--------------------------------------------------------------------------------
623638dc03 | Robert Vollmert | 2010-01-20 17:08:01 +0100

Extract pattern templates to pattern.h.

--------------------------------------------------------------------------------
1f4b2d5d17 | Robert Vollmert | 2010-01-20 17:08:01 +0100

Fix cgotoxy not handling GOTO_DNGN properly.
This was an evil hidden assumption on the dungeon view starting
in the top left corner.

--------------------------------------------------------------------------------
81e587013b | David Lawrence Ramsey | 2010-01-20 10:05:54 -0600

Since abominations are now chaotic, scrolls of summoning should be too.

--------------------------------------------------------------------------------
42b8b68576 | Darshan Shaligram | 2010-01-20 20:32:14 +0530

Update level compiler for FHEIGHT.

--------------------------------------------------------------------------------
569c332691 | Darshan Shaligram | 2010-01-20 20:32:14 +0530

shoals_atoll support: FHEIGHT sets heights for map squares, tide_seed property 
requests that a marker be treated as a source for tide effects.
Added support for setting heightmap heights using FHEIGHT: xyz = <height>.

Any property marker can return a non-empty property value for "tide_seed" to 
use that marker's position as a seed point for the tide. Tide effects will 
otherwise propagate in only from the open sea at the four corners of Shoals 
maps, and can only affect squares connected by water to the four default tide 
seeds.

Removed code that forces features to floor or shallow water when placing items 
in vaults.

--------------------------------------------------------------------------------
bbfb1fdf50 | Johanna Ploog | 2010-01-20 16:13:10 +0100

Finally fix savegame chooser. :D

--------------------------------------------------------------------------------
57ce023677 | Johanna Ploog | 2010-01-20 16:13:10 +0100

Rename unix background option to background_colour. The keyword "background" is 
now used for the character background, previously "job".

--------------------------------------------------------------------------------
f6757c3343 | Robert Vollmert | 2010-01-20 15:00:03 +0100

Fix the first ring not being displayed in _prompt_ring_to_remove.
The '<' was not escaped -- I don't quite understand why this
only showed up now.

Fixes issue #485.

--------------------------------------------------------------------------------
2cfb86c0f2 | Johanna Ploog | 2010-01-20 14:37:27 +0100

Whoops, forgot to update the aptitudes _template_.

--------------------------------------------------------------------------------
b2b7b68710 | Johanna Ploog | 2010-01-20 14:37:27 +0100

Update documentation on job -> background.
I had to reword some sentences but overall, "background" is a much better fit
than "job" ever was. :)

Also fixed some inaccuracies in the manual. (Thieves starting with hand
crossbows, Humans being the only species allowed all backgrounds - really?)

--------------------------------------------------------------------------------
a3b0565252 | Johanna Ploog | 2010-01-20 14:37:27 +0100

Rename character job -> background.
I'm actually a bit leery of renaming the functions or enums because
that might be confusing with background also having meanings such
as desktop colour or background (as opposed to foreground) tiles.

--------------------------------------------------------------------------------
ff6f57e532 | Johanna Ploog | 2010-01-20 14:37:27 +0100

Fix Ctrl-X viewing monsters having no effect with messages_at_top.
This gets rid of the use of describe_info in this case, which I never
could get to work for tiles and which doesn't interact nicely with
delay_message_clear and not at all with messages_at_top. Instead, we
now simply call _describe_monster().

--------------------------------------------------------------------------------
0fb512e282 | Jude Brown | 2010-01-20 22:51:42 +1000

Some Cigotuvi buffs and tweaks.
Uglies -> very uglies; Cigotuvi's Monster always has same HP; tweak loot
just slightly; make the amulet of resist mutation a nice item; move some
of the eyeballs away from the fog.

--------------------------------------------------------------------------------
773bbd4e65 | Jude Brown | 2010-01-20 22:44:52 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
0ed472ac90 | Jude Brown | 2010-01-20 22:38:42 +1000

Let monster_dies work with props, Shoals Kraken atoll map!

--------------------------------------------------------------------------------
068e22250f | Jude Brown | 2010-01-20 22:21:42 +1000

Additional monster Lua wrappers for props: get_prop, has_prop.
get_prop only deals with strings and numbers, and coord_defs (returned
as two values); has_prop returns monster->props(prop_name).

--------------------------------------------------------------------------------
61e1c80be4 | Johanna Ploog | 2010-01-20 12:31:53 +0100

Experimentally, default Ctrl-X behaviour to ACT_EXECUTE.
The default now is the travel mode for items/features, and the
status description for monsters.
To have a look at the database descriptions for both items and
monsters you have to toggle the menu with '!'.

--------------------------------------------------------------------------------
b7d209a4a7 | Johanna Ploog | 2010-01-20 12:31:53 +0100

Switch Ctrl-X monster's examine/execute modes for consistency with items. 
ACT_EXAMINE will now call the database entry, same as for items. ACT_EXECUTE 
will display the monster status (woundedness etc.) instead.

--------------------------------------------------------------------------------
5cdf988e02 | Johanna Ploog | 2010-01-20 12:31:53 +0100

In the Ctrl-X menu, also list monsters' attitude as charmed and peaceful.

--------------------------------------------------------------------------------
0b8f4b95af | Robert Vollmert | 2010-01-20 11:16:07 +0100

Fix inverted use of return value of cancelable_get_line.

--------------------------------------------------------------------------------
610e12ba8f | Robert Vollmert | 2010-01-20 11:09:50 +0100

Macro entry with msgwin_get_line_autohist.

--------------------------------------------------------------------------------
7fb1e08fc3 | Robert Vollmert | 2010-01-20 11:09:46 +0100

Move prompt display out of msgwin_get_line.

--------------------------------------------------------------------------------
88057237d9 | Darshan Shaligram | 2010-01-20 14:18:04 +0530

Add wizmode &) to modify tide speed or level.

--------------------------------------------------------------------------------
f22333f7d0 | Darshan Shaligram | 2010-01-20 13:40:00 +0530

Fix signed-unsigned comparison warning (due).

--------------------------------------------------------------------------------
0be1cdcb2c | Darshan Shaligram | 2010-01-20 12:58:01 +0530

Fix Call Tide never ending (MarvinPA), increase the duration of call tide.

--------------------------------------------------------------------------------
cface99c9a | Charles Otto | 2010-01-19 23:37:20 -0500

Use grid distance (not e. distance) to decide if slimes can split
The function 'distance' calculates euclidean distance (well without the
sqrt), so using grid_distance makes more sense given the way monsters
move in crawl.

--------------------------------------------------------------------------------
618b19628f | Charles Otto | 2010-01-19 23:26:45 -0500

Conserve current HP (not just max HP) when merging/splittings slimes

--------------------------------------------------------------------------------
032b0667f4 | David Lawrence Ramsey | 2010-01-19 20:47:58 -0600

Comment fixes.

--------------------------------------------------------------------------------
0a00b03015 | Robert Vollmert | 2010-01-20 02:13:57 +0100

Start message replay at end.

--------------------------------------------------------------------------------
484ac2f6e4 | Robert Vollmert | 2010-01-20 02:12:52 +0100

Add menu flag to allow a menu to start at the end of its content.

--------------------------------------------------------------------------------
555315dded | Robert Vollmert | 2010-01-20 02:11:11 +0100

Fix long messages causing assert when placing cursor.

--------------------------------------------------------------------------------
36393951c7 | Robert Vollmert | 2010-01-20 01:48:58 +0100

More proper linebreaking of tagged strings.
Fixes an assertion reported by kilobyte.

--------------------------------------------------------------------------------
fe19693b81 | Robert Vollmert | 2010-01-20 01:17:50 +0100

Make (some) more prompts respond to the same keys as they used to.
That's space/enter/escape; also autoclear_more is there once more.

Currently only for --more-- prompts issued through "void more()",
not those issued for the full message window which will take
any key.

--------------------------------------------------------------------------------
48d6890187 | Robert Vollmert | 2010-01-20 00:22:44 +0100

Redo hud quiver display formatting.
This is like 9dfbca, and should fix overly long quiver names from
clearing the following line.

Reported by napkin.

--------------------------------------------------------------------------------
ab88305b67 | Johanna Ploog | 2010-01-20 00:30:19 +0100

Tweak Roxanne's tile some more.

--------------------------------------------------------------------------------
ada73be6b5 | Johanna Ploog | 2010-01-20 00:30:19 +0100

Clean up Roxanne's tile.

--------------------------------------------------------------------------------
797faf6b9c | Johanna Ploog | 2010-01-20 00:30:19 +0100

Tidy up Purgy's tile.

--------------------------------------------------------------------------------
4d8ea11091 | Johanna Ploog | 2010-01-20 00:30:19 +0100

Clean up Menkaure's tile a bit.

--------------------------------------------------------------------------------
6cf9350cf9 | Adam Borowski | 2010-01-19 23:58:42 +0100

Purge Purgy's entry of misspellings.

--------------------------------------------------------------------------------
a43b069c4b | Adam Borowski | 2010-01-19 23:45:35 +0100

Fix compilation.

--------------------------------------------------------------------------------
37bf5d3247 | Robert Vollmert | 2010-01-19 23:15:19 +0100

Bump minor version.
The message history format has changed, and while this is not
read/written through tags.cc and not explicitly tagged, this
works fine.

--------------------------------------------------------------------------------
fb16e12e7d | Robert Vollmert | 2010-01-19 22:48:16 +0100

Merge branch 'master' into messagewindow

--------------------------------------------------------------------------------
f510601b82 | Johanna Ploog | 2010-01-19 23:02:40 +0100

Replace Polyphemus' tile with Porkchop's version, slightly edited by me.

--------------------------------------------------------------------------------
dd96410fc7 | Robert Vollmert | 2010-01-19 22:45:49 +0100

Filter message history according to channel_message_history.

--------------------------------------------------------------------------------
d0a5dfbfd4 | Johanna Ploog | 2010-01-19 22:37:23 +0100

Add old (male) Frances tile into the UNUSED folder. Getting quite full there. :)

--------------------------------------------------------------------------------
1f0627bf87 | Robert Vollmert | 2010-01-19 22:34:49 +0100

Update messagewindow todo list.

--------------------------------------------------------------------------------
e05abe36a7 | Robert Vollmert | 2010-01-19 22:34:30 +0100

User-forced --more-- prompts.

--------------------------------------------------------------------------------
c59fafcf05 | Johanna Ploog | 2010-01-19 22:34:15 +0100

Feminize Frances' tile, building on Porkchop's tile submissions.

--------------------------------------------------------------------------------
cedac7ec14 | Robert Vollmert | 2010-01-19 22:34:01 +0100

Fix inverted initialization of crawl_state.show_more_prompt.

--------------------------------------------------------------------------------
b08279a5ed | Johanna Ploog | 2010-01-19 22:20:11 +0100

Add health/magic bar to player tile. (Patch by felirx and Eino, thanks!)

--------------------------------------------------------------------------------
94f8c5521b | Eino Keskitalo | 2010-01-19 21:30:04 +0200

Make abominations chaotic.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
eb1973f2c5 | Eino Keskitalo | 2010-01-19 21:29:55 +0200

Mark Cigotuvi's Degeneration, Summon Horrible Things, Twisted Resurrection and 
Banishment as chaotic spells.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
64245c9741 | Eino Keskitalo | 2010-01-19 21:29:39 +0200

Move Crazy Yiuf from is_chaotic to is_unclean, plus add Psyche and Gastronok. 
Zin doesn't like crazy people, or slugs in wizard hats.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
853fa8d888 | Eino Keskitalo | 2010-01-19 21:29:30 +0200

Add monster that are actual spellcasters and know chaotic spells to Zin's 
DID_KILL_CHAOTIC check.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a26e1f348a | Eino Keskitalo | 2010-01-19 21:29:18 +0200

Silver doesn't double-damage demons. (Unless they're chaotic, of course).
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0c7441d0a5 | Johanna Ploog | 2010-01-19 19:09:41 +0100

Rename several functions involving player "class" to "job". We still need 
another synonym, right? *sighs*

--------------------------------------------------------------------------------
e2d8c6792e | Johanna Ploog | 2010-01-19 19:09:40 +0100

Fix wizmode created ghosts (&m ghost) not being handled correctly. If no 
profession was specified, the job was uninitialized which caused crashes when 
examining the ghost (at least in Tiles).

--------------------------------------------------------------------------------
af27f25603 | Eino Keskitalo | 2010-01-19 19:05:31 +0200

New Donald tile (with Jude).
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
9880a2e31d | Robert Vollmert | 2010-01-19 17:08:47 +0100

Merge branch 'master' into messagewindow

--------------------------------------------------------------------------------
139300ccba | Robert Vollmert | 2010-01-19 17:04:29 +0100

Move Options.show_more_prompt to crawl_state.show_more_prompt.
Options isn't for generic global state variables.

--------------------------------------------------------------------------------
8fc2d176c0 | Robert Vollmert | 2010-01-19 16:55:13 +0100

More prompts for full window (in case of clear_messages=true).
There's also some code to do more prompts in the delayed case,
but that is incomplete (would maybe prompt for the next
new-turn message). That part is designed to save a line by
using the bottom left character as a prompt -- that might
be an option for clear_messages also, perhaps with a
coloured '+' in the bottom right corner.

--------------------------------------------------------------------------------
9e930d4290 | David Lawrence Ramsey | 2010-01-19 08:31:44 -0600

Add a few more Donald complaints.

--------------------------------------------------------------------------------
925555a34b | David Lawrence Ramsey | 2010-01-19 08:30:39 -0600

Fix typo.

--------------------------------------------------------------------------------
4ec1662cbd | David Lawrence Ramsey | 2010-01-19 07:51:32 -0600

Add a few miscellaneous fixes to Donald's speech.

--------------------------------------------------------------------------------
90dc25ccbb | Jude Brown | 2010-01-19 23:25:51 +1000

Further Donald tweaks, use mon->shield().
Always give Donald a shield, with a chance of reflection; never give him
a two-handed weapon. Convert one instance of mon->mslot_item(MSLOT_SHIELD)
to mon->shield().

--------------------------------------------------------------------------------
65c9bd1aa9 | David Ploog | 2010-01-19 14:12:37 +0100

No more hand axes of reaching in/near baileys (doy).

--------------------------------------------------------------------------------
2a6d60d934 | Robert Vollmert | 2010-01-19 13:48:46 +0100

Enable more().
These are just the game-issued --more-- prompts. The filled
message window isn't handled yet.

--------------------------------------------------------------------------------
8d83e26dfd | Robert Vollmert | 2010-01-19 13:44:06 +0100

Update todo list.

--------------------------------------------------------------------------------
3cabc03d50 | Robert Vollmert | 2010-01-19 13:41:18 +0100

Implement message saving and restoring.
The format has changed, so will need to fix the tags before
merging.

This automatically conserves the message window across
save/restore, though we're manually clearing it for
the conservatives.

--------------------------------------------------------------------------------
18ced1057e | Robert Vollmert | 2010-01-19 13:22:36 +0100

Implement dumping of last messages in character dump.

--------------------------------------------------------------------------------
9c30aa1705 | Robert Vollmert | 2010-01-19 13:10:23 +0100

Implement activity interrupt for error messages.
This needs testing.

--------------------------------------------------------------------------------
0cc54f5340 | Robert Vollmert | 2010-01-19 13:02:40 +0100

Implement mesclr() and Options.clear_messages.
If clear_messages = true, crawl will now do the old
non-delay_message_clear style messaging.

The force parameter to mesclr() is currently ignored. It's
not clear to me at the moment the the message are should
ever be force cleared with delayed messaging.

--------------------------------------------------------------------------------
fe056633af | Robert Vollmert | 2010-01-19 13:01:29 +0100

Add message_window::clear for clearing the message window.
The old internal message_window::clear is now
message_window::clear_lines.

message_window::set_starting_line can be changed if we want
message output to start at the bottom again.

--------------------------------------------------------------------------------
fdf16a2070 | Robert Vollmert | 2010-01-19 13:01:03 +0100

message_window::show is const.

--------------------------------------------------------------------------------
2451ce5166 | Robert Vollmert | 2010-01-19 13:00:17 +0100

Make first column marker dependent on !clear_messages.

--------------------------------------------------------------------------------
edc38e9cc3 | Robert Vollmert | 2010-01-19 12:44:28 +0100

Fix broken backward iteration.

--------------------------------------------------------------------------------
1958582e6f | Robert Vollmert | 2010-01-19 12:28:38 +0100

Merge branch 'master' into messagewindow

--------------------------------------------------------------------------------
954e7cc301 | Jude Brown | 2010-01-19 20:38:00 +1000

Update Donald's speech: includes generic, Gods, and branches.
Has to use a bit of evil hackish magic to get it to all work together
properly (see the 300 or so lines of "<God> <Branch> Donald"
combinations). I haven't included Vaults at the minute, but that can be
done later.

--------------------------------------------------------------------------------
de0bbc51ae | Eino Keskitalo | 2010-01-19 12:26:05 +0200

Tweak Duvessa's stance a bit.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4f473b976b | Jude Brown | 2010-01-19 19:52:56 +1000

Add religion to speech prefixes, fix broken monster speech.
After adding branches and religion, I forgot to include them in
__try_exact_match in mon-speak.cc as "skip these if we've already tried
looking for them and got no message". This meant that the only monster
who was currently speaking was Donald, who had branch info. Whoops!

--------------------------------------------------------------------------------
5895e172ac | Jude Brown | 2010-01-19 18:27:29 +1000

Fix mistake in vault code that was not placing Lernaean hydra.

--------------------------------------------------------------------------------
3f655f5caa | Jude Brown | 2010-01-19 18:06:05 +1000

Tweak ossuary_due_mausoleum to use restrict_door.
This now means that even if you wake up the guardian mummy, it won't
come out unless you open one of the doors. You could always teleport
inside, but... then you're locked in there with it!

--------------------------------------------------------------------------------
7f33a89a36 | Jude Brown | 2010-01-19 14:13:24 +1000

Make ice form amphibious to match ice beasts (FR #461).
This makes ice formed players able to walk through water (though
described as "float", really). If it wears off while in deep water,
you'll still drown.

This does not give ice formed players a movement bonus in deep water
though, nor are they able to see or access items that are in deep water
(like player merfolk).

--------------------------------------------------------------------------------
6931b8ce8d | Johanna Ploog | 2010-01-19 01:43:29 +0100

Replace the angel tile with one using dynamic weapons (by Porkchop again).

--------------------------------------------------------------------------------
22597f1bde | Adam Borowski | 2010-01-19 00:13:51 +0100

Fix a doubled word in steel ammo's description.

--------------------------------------------------------------------------------
bf955b2d3a | Robert Vollmert | 2010-01-19 00:08:36 +0100

Merge branch 'master' into messagewindow
Conflicts:
	crawl-ref/source/message.cc
	crawl-ref/source/tutorial.cc

--------------------------------------------------------------------------------
58d13375a7 | Robert Vollmert | 2010-01-19 00:07:05 +0100

Update message window TODO list.

--------------------------------------------------------------------------------
c123509144 | Robert Vollmert | 2010-01-19 00:05:45 +0100

Output solitary leading dash on new turn.

--------------------------------------------------------------------------------
e03a91056a | Robert Vollmert | 2010-01-19 00:04:08 +0100

Initialize colour when drawing message window.
It seems that the formatted_string instances should already
initialize the colour to LIGHTGREY, but maybe LIGHTGREY means
"don't touch the text colour"?

This fixes a bug where the leading dash of the first line
sometimes wasn't drawn.

--------------------------------------------------------------------------------
0e6910f596 | Robert Vollmert | 2010-01-19 00:02:57 +0100

Handle multiple temporary lines properly.
This didn't fix the problem I was trying to fix, but should help
with multi-line prompts in msgwin_get_line.

--------------------------------------------------------------------------------
f291642713 | Robert Vollmert | 2010-01-18 22:56:04 +0100

Move turn count increase to the end of world_reacts.
This helps with the leading dash in messaging, and
seems like more of a right time to do it. I'm not
sure if this breaks any assumptions.

--------------------------------------------------------------------------------
07b89cf284 | Johanna Ploog | 2010-01-18 20:00:32 +0100

Also replace the tutorial's Ctrl-P reminder with the appropriate key.

--------------------------------------------------------------------------------
1d8b9f4c38 | Johanna Ploog | 2010-01-18 19:46:33 +0100

First steps to make tutorial messages respect key bindings.

--------------------------------------------------------------------------------
9c98e92642 | Johanna Ploog | 2010-01-18 19:46:33 +0100

Comment out list_all_commands and remove its call from chardump.cc.

--------------------------------------------------------------------------------
bd992184d2 | Johanna Ploog | 2010-01-18 19:46:32 +0100

Display real keys for commands in the Tiles' tooltip.

--------------------------------------------------------------------------------
dd710175ca | Johanna Ploog | 2010-01-18 19:46:32 +0100

Move insert_commands() methods into macro.cc.

--------------------------------------------------------------------------------
194ed9dabf | Johanna Ploog | 2010-01-18 19:46:32 +0100

Remove shift-click running as travel-by-mouseclick is much superior.

--------------------------------------------------------------------------------
9855f968a6 | Johanna Ploog | 2010-01-18 19:46:32 +0100

Fix adjacent Ctrl-clicks having no effect (trap disarming, opening doors).
From the comments it appears this was changed when spellcasting/firing
by mouseclick was added, and (if I read the code correctly) it looks like
trap disarming won't work if you've got an area effect spell memorised.
These two functionalities really need to be unlinked!

--------------------------------------------------------------------------------
0d339bb7a4 | Johanna Ploog | 2010-01-18 19:46:32 +0100

Fix a debugging statement.

--------------------------------------------------------------------------------
847e2272f8 | Johanna Ploog | 2010-01-18 19:46:32 +0100

Handle reassigned keys correctly for the Tiles version's mouse commands.

--------------------------------------------------------------------------------
4080444e46 | Robert Vollmert | 2010-01-18 17:19:43 +0100

Allow monsters to cut through plants.
Fixes #221 (and the duplicate #408).

Some people think that this used to work in the past, but I couldn't
find traces of this in the code. 0.5.2 at least doesn't appear to
have monsters cutting through plants.

This works by letting monsters attack their mmov target if it's
a monster with mons_is_firewood and there are no good moves, so
that monsters will walk around plants if possible.

--------------------------------------------------------------------------------
7c2d365125 | Robert Vollmert | 2010-01-18 17:19:42 +0100

mons_is_firewood: Monsters that other monsters may cut through.
Better naming welcome. Also, please check if this affects the
wrong monsters.

--------------------------------------------------------------------------------
716d798472 | Robert Vollmert | 2010-01-18 15:16:27 +0100

Merge branch 'master' into messagewindow

--------------------------------------------------------------------------------
7db34a3169 | Adam Borowski | 2010-01-18 15:12:32 +0100

Try multiple times to place an orb, there are claims it can randomly fail.
At least for now, if the spell fizzles due mons_place() failing, give
an error message rather than papering it over by "Nothing happens".

--------------------------------------------------------------------------------
a5c9ad4882 | Robert Vollmert | 2010-01-18 15:09:56 +0100

Flush old message in msgwin_get_line.

--------------------------------------------------------------------------------
cff89ad3ee | Robert Vollmert | 2010-01-18 15:09:14 +0100

Convert luaterp to use msgwin_get_line.
This fixes the scrolling removing old input.

--------------------------------------------------------------------------------
1a45c20c82 | Robert Vollmert | 2010-01-18 15:02:20 +0100

Copy cancelable_get_line_autohist to msgwin_get_line.
It's doubtful that this is the best way to do things.

--------------------------------------------------------------------------------
c416333307 | Robert Vollmert | 2010-01-18 14:57:13 +0100

Use msgwin_get_line for note taking.

--------------------------------------------------------------------------------
83ab3b5133 | Robert Vollmert | 2010-01-18 14:51:31 +0100

Add msgwin_get_line.
This wraps cancelable_get_line to write the reply to the
message history.

--------------------------------------------------------------------------------
315a29e5e8 | Jude Brown | 2010-01-18 23:32:29 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
eb2694d6ba | Jude Brown | 2010-01-18 23:25:48 +1000

Buff Donald, and make him considerably more interesting.
Now found in Swamp, Shoals, Slime, Snake, Crypt, Elf, Orc and Blades!
His speech is tailored to each branch. There's speech for Vaults, but
it's not complete as Vaults are likely to be re-done shortly.

Stat-wise, he's now closer to a orc warlord in stats (though not quite
as buff). Might need tweaking later, but I'm pretty happy with him so
far. He also now gets Maud/Frederick/Margery-esque weapons, and this
also may need tweaking.

Finally, speech is not complete: still needs player-god specific speech
(requires pushing gods into prefixes, which is currently not done). Also
needs generic complaints.

Thanks to ##crawl-dev for a lot of the speech!

--------------------------------------------------------------------------------
59eebf4486 | Robert Vollmert | 2010-01-18 13:19:51 +0100

Remove maxcol parameter from cancelable_get_line.

--------------------------------------------------------------------------------
01864d1706 | Robert Vollmert | 2010-01-18 12:30:25 +0100

Merge branch 'master' into messagewindow

--------------------------------------------------------------------------------
ae857123a3 | Jude Brown | 2010-01-18 21:13:14 +1000

Include Branch name in speech prefixes.

--------------------------------------------------------------------------------
fa4afe65f7 | Jude Brown | 2010-01-18 21:01:57 +1000

Mark Mara's summons as "woven by" instead of "summoned by".

--------------------------------------------------------------------------------
26fa45ccfe | Jude Brown | 2010-01-18 20:31:58 +1000

Tweak needle brand weights and some stack sizes (greensnark).
All needles will now generate in smaller stacks. The weights have now
been adjusted so that the commonest "rare" needle brands are: sleep and
slow; in-between are sickness and confusion. Rarest are paralysis and
frenzy. These may be tweaked at a later date, but previously, paralysis
were the most common.

Seeing as poisoned ammunition has been unnerfed, nerf it slightly by
reducing the size of generated stacks of poisoned needles and poisoned
darts. As greensnark indicated on IRC, two poisoned darts can take out
most monsters in the early game very quickly, and they were previously
generated in large stacks.

--------------------------------------------------------------------------------
cf61d02e8b | Jude Brown | 2010-01-18 20:25:49 +1000

New events: door opened, closed. Lua marker for door restriction.
The events are triggered whenever a door is opened or closed by the
player, or opened by a monster (monsters can never close doors). These
events can be used by Triggerables.

The RestrictDoor Lua marker restricts monsters from opening doors unless
the player has already opened them. In combination with teleport
restriction, this allows wandering monsters to not interfere with loot
chambers. Obviously, the uses of this should be limited.

--------------------------------------------------------------------------------
6501bd6f99 | Adam Borowski | 2010-01-18 10:50:42 +0100

Stop puny magic like Sticks To Snakes from messing with artefacts.

--------------------------------------------------------------------------------
a263b6c9d9 | Jude Brown | 2010-01-18 19:18:39 +1000

Fix statues in dis_mu not coming to life (Mu_).
Kind of a hack, in that it's just reverting to the previous version of
hells.des. It seems like the monster/slave integration doesn't work
properly in this regard. The best I could do was to get Dispater's death
to convert one statue (instead of making a statue where he died).

This now converts all statues.

--------------------------------------------------------------------------------
f7867134d3 | Darshan Shaligram | 2010-01-18 13:34:25 +0530

Scale berserk maxhp also by 1.5 (hp was 1.5x, maxhp was 2x).

--------------------------------------------------------------------------------
e15bfc7dc6 | Darshan Shaligram | 2010-01-18 11:34:25 +0530

Don't allow Ilsuiw to appear on Shoal:1-2.

--------------------------------------------------------------------------------
d4abb0d1e0 | Charles Otto | 2010-01-17 23:59:31 -0500

Fix allies making a beeline for the map origin when out of LOS
Fix a bug introduced in commit 8e49c668 which caused the movement
target of friendly monsters outside the players LOS to be set to (0,0).

monsters::get_foe() returns NULL for friendly monsters with foe equal
to MHITYOU, so it was not being used correctly in handle_behaviour
(since this part of it is just concerned with where monsters are trying
to move rather than what they will actually attack).

--------------------------------------------------------------------------------
856be18105 | Charles Otto | 2010-01-17 22:18:47 -0500

Let players cast sunlight on themselves
Let players target themselves with sunlight (but give a prompt).

--------------------------------------------------------------------------------
227420e531 | Enne Walker | 2010-01-17 19:53:13 -0500

Tile transparency in water without overlays.
In order for jpeg's waves to work on deep water as well as shallow, we
need to not use partially transparent overlays to simulate an actor or an
item being submerged.  Now, non-flying objects on water will be drawn
transparently to blend with the water below.  This should mostly look the
same, except it will now work on top of waves and will not require a mask
for each water type.

As a nice side-effect, ghosts are now transparent again and the water on
top of submerged objects now animates properly.

See the comments in tilebuf.cc for details.  The mask tile itself can be
adjusted to change the water level, but the parameters to
SubmergedTileBuffer will need to be changed to compensate depending on
what the new art looks like.

--------------------------------------------------------------------------------
f903462645 | Charles Otto | 2010-01-17 17:36:51 -0500

Allow toadstools on tiles Fedhas worshipers are standing on
Mostly this is so that decomposition can work on corpses the player is
standing on. Update the decomposition ability description accordingly.

--------------------------------------------------------------------------------
13ba95e8a7 | Charles Otto | 2010-01-17 15:40:21 -0500

Update the growth and evolution ability descriptions

--------------------------------------------------------------------------------
87b9507010 | Charles Otto | 2010-01-17 15:39:03 -0500

Change the cost display for Fedhas evolution

--------------------------------------------------------------------------------
3f8f37db59 | Charles Otto | 2010-01-17 15:38:45 -0500

Increase the casting difficulty of Fedhas' rain

--------------------------------------------------------------------------------
616a366a35 | Johanna Ploog | 2010-01-17 21:57:10 +0100

Add flowered grass tiles, with appropriate weights.
Well, they're really just coloured dots, but when you see coloured dots
on a greenish background, your brain automatically goes, "Oh, flowers!"

IMHO, this finally makes the tiled bazaars as nice-looking as they are
in ASCII. :)

--------------------------------------------------------------------------------
8ec9443032 | Johanna Ploog | 2010-01-17 21:57:10 +0100

Colour grass tiles a darker and (I feel) more natural colour. Move grass tiles 
into subfolder floor/grass.

--------------------------------------------------------------------------------
3b7c8a454e | Johanna Ploog | 2010-01-17 21:57:09 +0100

Nicer coloration of the strawberry vaults.

--------------------------------------------------------------------------------
a41a9d625e | Charles Otto | 2010-01-17 15:25:25 -0500

Fix decomposed skeletons getting the wrong speed and HP
monsters::upgrade_type doesn't handle derived undead well so I
switched to destroying and replacing zombies that are affected by
Fedhas' decomposition.

--------------------------------------------------------------------------------
9070ae69f6 | Johanna Ploog | 2010-01-17 19:39:48 +0100

Use Porkchop's Nessos tile, tweaked to make the bow flaming. As usual, the old 
tile can be found in the UNUSED folder.

--------------------------------------------------------------------------------
04b52db46c | Johanna Ploog | 2010-01-17 18:31:36 +0100

For monster detection, use the human tile for dwarves (Wayne).

--------------------------------------------------------------------------------
6722bf4745 | Johanna Ploog | 2010-01-17 18:30:27 +0100

Use Wayne's tile for the calculation of the dwarf corpse tile.

--------------------------------------------------------------------------------
d50b26f051 | Jude Brown | 2010-01-17 21:32:46 +1000

Increase generation of giant leeches in Swamp.
Chances of generation were around a maximum of one per level; they are
now around a maximum of four per level, which I think is reasonable.
They were previously as ultra-rare as tentacled monstrosities and other
unseen Swamp denizens.

--------------------------------------------------------------------------------
550bd520c1 | Darshan Shaligram | 2010-01-17 16:11:57 +0530

Don't include the cumulative monster count when calculating pop totals.

--------------------------------------------------------------------------------
8a6746ad0a | Darshan Shaligram | 2010-01-17 16:06:46 +0530

Fix swamp drakes not getting effective meph cloud in Swamp.

--------------------------------------------------------------------------------
f57c75887a | Jude Brown | 2010-01-17 20:31:47 +1000

Increase number of hydrae/swamp dragons in swamp_alternative (greensnark).
From a quick glance over statistics, this seems to introduce another
three or so monsters per generation of the map.

--------------------------------------------------------------------------------
52641bf576 | Jude Brown | 2010-01-17 20:29:12 +1000

New Swamp ending: "old school" Swamp, Lernaean hydra.
This ending reproduces the look and feel of the "old" Swamp: this
specifically includes weird corridors through passages of water,
randomly placed rock walls, and randomly placed deep and shallow water.

It is considerably larger than most other ending vaults in order to
continue this theme. The map has a similar number of hydrae and other
threat to the original swamp and swamp_alternate maps.

As a bonus, this map contains the Lernaean hydra! It's tucked away in a
corner. Blame greensnark for this. It can be removed if it proves too
much of a killer.

--------------------------------------------------------------------------------
39aa226164 | Jude Brown | 2010-01-17 20:23:32 +1000

Swamp pools, Swamp entry vault.
Pools of deep water surrounded by trees. Occasionally, these have
patrolling monsters (specifically, swamp drakes). Sizes vary, all are
luniq.

Swamp pools may require slightly more randomisation than they currently
have, but we'll see how they go. On average, you get one or so per every
second level or so; occasionally you'll get one per Swamp level, but I
think this is okay. Weights, etc, can be adjusted.

Swamp entry follows through on the theme of the random pool surrounded
by trees.

--------------------------------------------------------------------------------
a13d622c1d | Jude Brown | 2010-01-17 20:17:11 +1000

Split the Swamp balancer out into it's own.
Decreases chances of not placing a minivault to 1/3, as opposed to the
current 2/3.

--------------------------------------------------------------------------------
7443446f38 | Jude Brown | 2010-01-17 20:15:49 +1000

Disable some mini/float vaults that don't work with new Swamp.
Specifically, worms in a box, swampy vault, ice statue vault (island
version), and the library vault.

--------------------------------------------------------------------------------
0ef3a565b7 | Darshan Shaligram | 2010-01-17 15:38:58 +0530

Update place-population to report xp stats as well as monster numbers (due).

--------------------------------------------------------------------------------
2d9a94641d | Darshan Shaligram | 2010-01-17 14:25:30 +0530

Set build method and layout type for swamp builder.

--------------------------------------------------------------------------------
0ac7928587 | Jude Brown | 2010-01-17 17:58:49 +1000

Give Amulet of Stasis a cost (ogaz).
Same price as an amulet of rage.

--------------------------------------------------------------------------------
7cab36931b | Jude Brown | 2010-01-17 17:03:26 +1000

Convert fprop instances in mapdef.* to unsigned long. (greensnark)
fprop lists, and fprop_spec, now use unsigned long instead of int. This
matches env.pgrid, and means that there won't be size issues in future
when we end up with more feature properties.

--------------------------------------------------------------------------------
a660d9f8bb | Darshan Shaligram | 2010-01-17 11:45:53 +0530

Remove unused you.youpos, fix comment on actor::move_to_pos.

--------------------------------------------------------------------------------
8d1fa5916d | Darshan Shaligram | 2010-01-17 11:28:50 +0530

Add FPROP_NO_TIDE to tell the tide not to touch certain squares.
Wizmode &( now accepts fprop names to set the fprop on the current square.

--------------------------------------------------------------------------------
c4246fc216 | Jude Brown | 2010-01-17 15:38:52 +1000

Code to alter/check feature properties in Lua.
This commit moves str_to_fprop from initfile.cc to fprop.cc. It also
introduces two new dungeon Lua wrappers: fprop_changed(x, y, fprop),
and fprop_at(x, y, fprop).

fprop_at(x, y, fprop) will return testbits(coord_def(x, y), fprop).

fprop_changed will either add the fprop to that location, or if it
already exists there, it will remove it from that location. It will
returrn a boolean value of true if it altered the location, and false if
it did nothing.

--------------------------------------------------------------------------------
34d58cf898 | Darshan Shaligram | 2010-01-17 10:41:16 +0530

All secondary vaults in the Swamp get an implicit water_ok tag, since they'll 
otherwise never be placed.

--------------------------------------------------------------------------------
4bbe9c5b6b | Darshan Shaligram | 2010-01-17 10:38:08 +0530

Burning trees in Swamp produces shallow water. Fire clouds adjacent to watery 
squares now produce steam.

--------------------------------------------------------------------------------
f990094082 | Jude Brown | 2010-01-17 14:45:33 +1000

Convert Swamp ending vaults to work with new Swamp layout.
This basically converts all instances of rock to trees. It looks quite
good, and I've kept the stone as thematically, this works in the branch.
This commit also increases the chance of an azure jelly in the Ice
ending, instead of an equal chance of an azure jelly or an ice dragon.

--------------------------------------------------------------------------------
b8aec48a6b | Jude Brown | 2010-01-17 14:45:32 +1000

Split lair.des into swamp.des, snake.des, slime.des and lair.des.
Having to scroll through all of the Lair vaults to find the branch ends
for Swamp and Slime, etc, is proving to be quite annoying. The new files
are now quite short, but hopefully we'll end up with new vaults to
add to these branches!

--------------------------------------------------------------------------------
82fdff580c | Darshan Shaligram | 2010-01-17 09:35:33 +0530

Discard Swamp heightmap after building level so it doesn't get saved and waste 
space.

--------------------------------------------------------------------------------
1236bd2410 | David Ploog | 2010-01-17 02:38:56 +0100

Make loot always accessible in bailey_polearm_2.
This fixes Bug #450.

--------------------------------------------------------------------------------
ceb13c4aad | Johanna Ploog | 2010-01-17 01:49:15 +0100

Re-add accidentally removed outlines from a number of monster tiles.

--------------------------------------------------------------------------------
96ad883e73 | Johanna Ploog | 2010-01-17 01:26:59 +0100

Add purge's tiles for Dowan and Duvessa, yay! :D

--------------------------------------------------------------------------------
a6ac3f8273 | Johanna Ploog | 2010-01-17 01:21:54 +0100

Add the old angel tile to UNUSED/monsters.

--------------------------------------------------------------------------------
88ef256226 | Johanna Ploog | 2010-01-17 01:19:35 +0100

Add Porkchop's improved angel tile, slightly tweaked.
The old tile erroneously displayed angels wielding a long blade and
wearing a shield. It was, in fact, identical to the Daeva one, except
in coloration.

--------------------------------------------------------------------------------
3f519b4a9a | Johanna Ploog | 2010-01-17 01:10:41 +0100

Remove my debugging lines.

--------------------------------------------------------------------------------
06c542a2d1 | Johanna Ploog | 2010-01-17 01:05:57 +0100

Add a tile for sixfirhy, drawn by Porkchop and slightly tweaked by me.

--------------------------------------------------------------------------------
4797da8a59 | Johanna Ploog | 2010-01-16 23:44:52 +0100

Specialcase mimics and dancing weapons in tilenum initialisation.

--------------------------------------------------------------------------------
888b4555a4 | Darshan Shaligram | 2010-01-16 23:09:16 +0530

Fix pan lords being silenceable (Mu).

--------------------------------------------------------------------------------
c0aa968809 | Darshan Shaligram | 2010-01-16 22:50:49 +0530

Experimental level builder changes for Swamp.
The Swamp now gets a border of trees and uses trees instead of walls. Swamp:5 
vaults may need tweaking to fit in better.

--------------------------------------------------------------------------------
fc861cd85f | Darshan Shaligram | 2010-01-16 21:23:28 +0530

Re-enable Swamp, randomly disable one of the Swamp, Snake Pit, or Shoals 
instead of flipping between Swamp and Shoals only (rob, dpeg).

--------------------------------------------------------------------------------
d70fef927f | Johanna Ploog | 2010-01-16 14:50:00 +0100

Replace the bush tile with a brighter version, also by purge.

--------------------------------------------------------------------------------
dd8ec1b5c6 | Johanna Ploog | 2010-01-16 14:27:41 +0100

Also use key bindings in the tutorial help screen.

--------------------------------------------------------------------------------
a68c22639f | Johanna Ploog | 2010-01-16 14:27:41 +0100

In cmd-keys.h move vi keys further down, so they get listed in the help.
Oddly enough, if the vi keys get reassigned to something else, the help
screen doesn't switch to one of the other keys. This actually suits me
as someone reassigning the keys apparently has no intention of using
them but already knows what they do. (It does mean, however, that
reassigning another duplicate key will also not update the display.)

For players using the new Dvorak settings, the Dvorak vi keys get
displayed instead, which strikes me as much more useful.

--------------------------------------------------------------------------------
73fd972183 | Johanna Ploog | 2010-01-16 14:27:41 +0100

More dynamic command display in the command help, including vi movement.

--------------------------------------------------------------------------------
ad28312cd2 | Darshan Shaligram | 2010-01-16 17:25:34 +0530

Give Ilsuiw a better tide peak for Call Tide.

--------------------------------------------------------------------------------
41fd120631 | Darshan Shaligram | 2010-01-16 17:25:34 +0530

Fix name sorting in columnise-credits.

--------------------------------------------------------------------------------
7423e92a65 | Jude Brown | 2010-01-16 18:49:28 +1000

Provide "waste of time" checks for Mislead, fake Mara summon, player ghost.
This moves the code out of the relevant functions and into the
ms_waste_of_time function in mon-util.cc.

--------------------------------------------------------------------------------
be0954da38 | Jude Brown | 2010-01-16 17:50:46 +1000

Tweak Cloud Mage colours slightly.

--------------------------------------------------------------------------------
6d4f3a0282 | Jude Brown | 2010-01-16 17:30:53 +1000

Tweak Wucad Mu monster weights.
Less Iron Trolls, and less monsters in general.

--------------------------------------------------------------------------------
fd6cab9f7c | Jude Brown | 2010-01-16 17:16:59 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
decb6b25c7 | Haran Pilpel | 2010-01-16 09:16:21 +0200

Fix 440: beam path display improperly initialized in Tiles.

--------------------------------------------------------------------------------
6dc4f972a2 | Haran Pilpel | 2010-01-16 08:35:15 +0200

Fix for bug 438: when drawing Dance, and probably creating dancing weapons in 
other ways too, we would call _maybe_init_tilenum_props, which tries to get the 
basetile for the dancing weapon, which crashes because we haven't given it the 
weapon yet (this was all happening in create_monster().) This is a major hack; 
someone more familiar with tiles should fix this better.

--------------------------------------------------------------------------------
cd1279820c | Adam Borowski | 2010-01-16 02:47:31 +0100

Unlike other dummy monsters, disallow polymorph into dwarves.

--------------------------------------------------------------------------------
3c9a803519 | Adam Borowski | 2010-01-16 02:27:34 +0100

Don't ask confirmation when using an identified Tome of Destruction.

--------------------------------------------------------------------------------
11cb8e4030 | Johanna Ploog | 2010-01-16 02:20:49 +0100

Document how to override (vi) keys with CMD_NO_CMD_DEFAULT.
no_vi_command_keys.txt doesn't handle targeting or movement on
the level map. Should it?

--------------------------------------------------------------------------------
2fb97f8460 | Johanna Ploog | 2010-01-16 02:09:43 +0100

Add a keybindings document for overriding the vi keys.

--------------------------------------------------------------------------------
e398d71d3e | Johanna Ploog | 2010-01-16 02:04:14 +0100

Add pseudocommand CMD_NO_CMD_DEFAULT for overriding the vi keys. CMD_NO_CMD is 
handled specially in many different ways, but the new command's sole purpose is 
to allow key bindings involving invalid commands, so as to override the vi keys 
for players who don't need them, don't want to replace them with other keys, 
but are worried about typos making their character walk into a fatal ambush.

--------------------------------------------------------------------------------
91c7e65979 | Johanna Ploog | 2010-01-16 01:10:43 +0100

Add tiles for bush and sleeping brand, both courtesy of purge. Thanks!

--------------------------------------------------------------------------------
22843389ce | Jude Brown | 2010-01-16 09:42:28 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
1be109f3b5 | Johanna Ploog | 2010-01-16 00:36:13 +0100

More dynamic command key listings on the help screen.
Except for the movement keys (uh, help?) and the item commands that have
their starting letters highlighted (again, help?) all commands are now
shown as actually assigned.

As I said before, the key that's get displayed might not be the one the
player actually uses. Likewise, there are still a few instances where
alternative keys get listed that might no longer be correct and have been
assigned elsewhere.

I'm sorry to see that the command help is no longer WYSIWYG[*] for
developers (so recompilation cannot be avoided), but it _is_ WYSIWYG
for players, which is much more important.

The best way to test this is to include the new dvorak settings and
have a look at the ?? help screen.

*) What You See Is What You Get

--------------------------------------------------------------------------------
34d0bd0cf8 | Johanna Ploog | 2010-01-16 00:36:13 +0100

Remove more of those commented out lines.

--------------------------------------------------------------------------------
5250c9a05b | Johanna Ploog | 2010-01-16 00:36:13 +0100

Replace more hardcoded command keys with dynamic ones on the help screen.

--------------------------------------------------------------------------------
2478df2591 | Johanna Ploog | 2010-01-16 00:36:13 +0100

Remove comments about old command/key information on the help screen.

--------------------------------------------------------------------------------
c8a8272bde | David Ploog | 2010-01-16 00:09:57 +0100

An attempt to equalise bailey loot.

--------------------------------------------------------------------------------
14c77aae51 | David Ploog | 2010-01-16 00:09:57 +0100

Add Janne Lahdenperä to CREDITS.

--------------------------------------------------------------------------------
f39d39faaf | Eino Keskitalo | 2010-01-16 00:59:19 +0200

Sort potions alphabetically.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
77034762eb | Johanna Ploog | 2010-01-15 22:23:53 +0100

Use the dynamic command key names for some commands on the help screen.
More to follow! :)

It appears the command screen has been optimized for space. Whereever
possible, the key has been capitalized in the description, and often
alternative keys are mentioned. All of that may not apply for
reassigned keys. What do we do about this?

--------------------------------------------------------------------------------
db0e3300dd | Johanna Ploog | 2010-01-15 21:26:39 +0100

New method _command_to_string() returning human-readable key names.
The plan is to replace the hardcoded command key names on the help screen
and in the tutorial with these dynamic ones respecting redefined keys.

Unfortunately, several commands have multiple assignments and macro.cc's
command_to_key() only returns the last one, which might not be what the
player is actually using. For example, I don't have a Numpad, so all
mentions of it are of no use to me, and I'd rather have the vi keys
listed, which in turn many other players have no interest in.

You can check the current key assignments if you comment out the
DEBUG_DUMP_COMMANDS definition in chardump.cc and then create a character
dump. This will be removed once I'm finished here.

--------------------------------------------------------------------------------
4224dfb2d2 | Johanna Ploog | 2010-01-15 19:39:02 +0100

Recolour Dissolution again to increase the difference to the jelly tile.

--------------------------------------------------------------------------------
d3b316cb62 | Johanna Ploog | 2010-01-15 19:28:55 +0100

Add new props value "tile_num" and use it for randomized monster tiles.
Monsters that have several variant tiles will now get a random value
written into tile_num at creation, so when their tile gets drawn one
of the set is picked, but always the same one.

In practise, this is currently only used for slaves and toadstools.
Other monsters that have variant tiles, such as ugly things, kraken
tentacles, or slimes creatures, are handled specially.

Generally, such differences should be small and flavourful. The greater
the threat of a given monster the more important it is that the player
will recognize it immediately. (Of course, this restriction does not
hold if the tile actually transport information as is the case for
ugly things' colours etc.)

--------------------------------------------------------------------------------
e9a337536b | Johanna Ploog | 2010-01-15 19:28:55 +0100

Fix tiles compilation.

--------------------------------------------------------------------------------
07819f0aa5 | Johanna Ploog | 2010-01-15 19:28:54 +0100

Add purge's toadstool tiles.

--------------------------------------------------------------------------------
171243aee1 | Eino Keskitalo | 2010-01-15 19:55:26 +0200

Remove M_INSUBSTANTIAL from fake rakshasas again. It made them identifable by 
just looking at them.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
11b086105f | Johanna Ploog | 2010-01-15 17:40:12 +0100

Add tiles for the new merfolk monsters. The plain merfolk is only used for the 
corpse tile but I decided to add it anyway, especially as I'm considering using 
that for the base merfolk and the current fighter one for the impaler.

--------------------------------------------------------------------------------
27a4db5c21 | Eino Keskitalo | 2010-01-15 17:38:00 +0200

Dvorak keybindings for use with vi keys.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
9382906ac7 | Adam Borowski | 2010-01-15 15:14:39 +0100

Make Wayne a dwarf once again.

--------------------------------------------------------------------------------
cf1e3ef75b | Eino Keskitalo | 2010-01-15 15:10:34 +0200

Add an include guard. (felirx)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
61b77be6b6 | Jude Brown | 2010-01-15 22:30:19 +1000

Fix inverted logic with berserk + harmful clouds.

--------------------------------------------------------------------------------
54c9e3877a | Johanna Ploog | 2010-01-15 12:56:13 +0100

Replace Pikel's black "markings" with darkgreen ones. No idea what they're 
supposed to be, ribbons or tattoos or whatever, but plain black should really 
only be used for outlines and shadow.

--------------------------------------------------------------------------------
b137892e70 | Johanna Ploog | 2010-01-15 12:56:04 +0100

Fix tiles compilation.

--------------------------------------------------------------------------------
efe1b2f075 | Darshan Shaligram | 2010-01-15 16:42:04 +0530

Make alligator snapping turtles rarer.
Fix warning about unchecked enum constant in switch in religion.cc.

--------------------------------------------------------------------------------
dccba09075 | Jude Brown | 2010-01-15 19:26:27 +1000

Tweak Aizul's spells and placement slightly.
Now found 14-20, and has Blink Other as an escape spell instead of a
standard enchantment. I've also replaced one of the Poison Arrows with
Venom Bolt instead. Hopefully these changes should help to allay fears
that he's too powerful at his assigned depth.

--------------------------------------------------------------------------------
9e2960c3a8 | Jude Brown | 2010-01-15 19:13:08 +1000

Fix bugs involving branded ammunition and their messages.
This fix multiple bugs, including one reported on SourceForge that
Poison Weapon wasn't working properly for any launchers; that has now
been fixed.

This commit should also solve the issue with "poisoned poison arrow" and
"arrow of flame of flame". Hopefully we won't see any more of them.

--------------------------------------------------------------------------------
0358884996 | Haran Pilpel | 2010-01-15 11:08:31 +0200

Merge Firing and Aim lines, per dcss:messagespam.

--------------------------------------------------------------------------------
317d05294c | Eino Keskitalo | 2010-01-15 02:43:11 +0200

Mark several befitting monsters as insubstantial, remove the flag from two.
Added: phantom, flayed ghost, fake rakshasa, wraith, freezing wraith, spectral 
warrior, spectral thing.

Removed: giant spore, chaos spawn. The latter sounds more like an ooze than an 
immaterial being, and oozes aren't M_INSUBSTANTIAL.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
242d6f4b23 | Johanna Ploog | 2010-01-14 22:50:37 +0100

New change log section: Ranged combat.

--------------------------------------------------------------------------------
932826b6dc | Johanna Ploog | 2010-01-14 22:44:23 +0100

Update change log.

--------------------------------------------------------------------------------
d104b133aa | Johanna Ploog | 2010-01-14 22:03:03 +0100

Add some spikes to the alligator snapping turtle's tile. Despite my misgivings 
it actually looks reasonably well.
In other news, I finally figured out who the turtle tile reminds me of:
I've got a photo where my cat has that exact same look and posture. :)

--------------------------------------------------------------------------------
5e052ee696 | Johanna Ploog | 2010-01-14 22:03:03 +0100

Recolour player hog tile to increase difference from monster hog.

--------------------------------------------------------------------------------
8e7dcff4e0 | Johanna Ploog | 2010-01-14 22:03:02 +0100

Replace bland human tile with a nicer one. Move the old tile into the 
UNUSED/monsters folder.

--------------------------------------------------------------------------------
4d2c382bc7 | Johanna Ploog | 2010-01-14 22:03:02 +0100

Small code cleanup.

--------------------------------------------------------------------------------
8a7bf32370 | David Ploog | 2010-01-14 19:42:55 +0100

Tweak elf bailey (Jesse, Vsevolod).

--------------------------------------------------------------------------------
216124f702 | David Lawrence Ramsey | 2010-01-14 10:11:03 -0600

Remove the last references to god_hates_butchery().

--------------------------------------------------------------------------------
0cdca121f3 | Eino Keskitalo | 2010-01-14 17:10:19 +0200

Remove some dedicated butchery conduct code.
It's not used anymore, and since the corpse offering mechanism has changed, is 
unlikely to be used again.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d110270fe9 | Johanna Ploog | 2010-01-14 13:48:01 +0100

Replace the contaminated chunk icon with a less intrusive one. Oh, and I forgot 
to remove the old rslow tile in my last commit.

--------------------------------------------------------------------------------
08e1fb3115 | Johanna Ploog | 2010-01-14 13:46:53 +0100

Use the old rslow tile for "stasis and add a preliminary one for "faith.

--------------------------------------------------------------------------------
8189b289bc | Johanna Ploog | 2010-01-14 13:03:26 +0100

Use purge's Pikel tile.

--------------------------------------------------------------------------------
6011983f9d | Johanna Ploog | 2010-01-14 13:02:34 +0100

Also handle alligator snapping turtle's corpse tile.

--------------------------------------------------------------------------------
798300e2d7 | Johanna Ploog | 2010-01-14 12:48:15 +0100

When the slave monster is placed, sometimes make it use the new tile. This 
should lead to a more flavourful look of Pikel's slave band.

--------------------------------------------------------------------------------
f926d0bc38 | Johanna Ploog | 2010-01-14 12:48:15 +0100

Tweak slave tile and add a smaller alternative one. The large one looks a bit 
too burly, the small one really puny. A combination of the two would be ideal.

--------------------------------------------------------------------------------
20391adc52 | Eino Keskitalo | 2010-01-14 11:41:21 +0200

Remove the message from Call Canine Familiar.
Now that CCF doesn't produce hostiles, it is unnecessary.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e37165ecd6 | Eino Keskitalo | 2010-01-14 10:36:38 +0200

Add no_monster_gen tag to the generic overflow altar vault. It could produce 
electric eels on D:2, and could produce lava snakes, I figure, which is a 
little nasty. (greensnark)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d1be6c4ccb | Haran Pilpel | 2010-01-14 10:23:02 +0200

Code cleanups.

--------------------------------------------------------------------------------
06c710f913 | Eino Keskitalo | 2010-01-14 10:17:32 +0200

Add a comment.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
80d258a614 | Eino Keskitalo | 2010-01-14 10:15:04 +0200

Fix turtle corpse tile.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
922df58a50 | Jude Brown | 2010-01-14 13:26:30 +1000

Remove accidentally committed test weights on layout selection.

--------------------------------------------------------------------------------
11aaef4f43 | Darshan Shaligram | 2010-01-14 08:42:31 +0530

Shoals monster changes: more harpies, weaken impalers, alligator snapping 
turtles, sea snakes.
Merfolk impalers: 28->26 dam, 23->18 EV.

Alligator snapping turtles: 8->10 action cost.

Sea snakes: 14->12 speed.

Harpies are now more common.

--------------------------------------------------------------------------------
3568100f8f | Darshan Shaligram | 2010-01-14 08:07:16 +0530

Add Robert Burnham to credits (dpeg).
Also tweak the columnise-credits script to directly update CREDITS.txt instead 
of sending its output to stdout.

--------------------------------------------------------------------------------
0c88e9b4d4 | Johanna Ploog | 2010-01-14 01:46:38 +0100

Add shadows to mermaid/siren/Ilsuiw tiles.

--------------------------------------------------------------------------------
2c5b81c859 | Johanna Ploog | 2010-01-14 01:46:38 +0100

Recolour Dissolution. The old colours (green/red) really clashed awfully.

--------------------------------------------------------------------------------
96af68df80 | Johanna Ploog | 2010-01-14 01:46:38 +0100

Add a new turtle design and use it for the (alligator) snapping turtle. Move 
the old turtle tile into UNUSED/monsters.

--------------------------------------------------------------------------------
c1de3fc787 | Adam Borowski | 2010-01-13 23:35:09 +0100

Fix a throwback to the 8-bit era in "Items here: +++ /// ))".

--------------------------------------------------------------------------------
8beb1c180d | Adam Borowski | 2010-01-13 23:29:03 +0100

Trim unnecessary #includes.

--------------------------------------------------------------------------------
f6a7496a21 | Adam Borowski | 2010-01-13 20:48:24 +0100

Don't mess with memory of slime creatures when in tiles.

--------------------------------------------------------------------------------
6b9548eb3d | Adam Borowski | 2010-01-13 20:43:59 +0100

Make merged slime creatures light green, acid blobs light cyan.
You can override that, both the colour and the glyph.  The code
is exceedingly hairy (the check is tripled!), thanks to glyphs
sometimes stored as character:colour, sometimes as type:colour.

--------------------------------------------------------------------------------
9a308a7dd9 | Darshan Shaligram | 2010-01-13 23:18:45 +0530

Move island-building code from dgn-shoals.cc->dgn-height.cc.

--------------------------------------------------------------------------------
cf4b73981b | Johanna Ploog | 2010-01-13 15:52:26 +0100

Clean up some of the wizlab tiles.
For the deformed elf/human/orc tiles and the human_monk_ghost, I redrew
the outline in standard black. I also removed some dangling transparent
pixels and changed a few other transparent pixels to either be completely
blank or fully drawn, as seemed appropriate.

General tip: When compiling tiles into the game, check e.g. player.png
to see how they'll look like in-game, outline and all.

--------------------------------------------------------------------------------
df6adc3625 | Johanna Ploog | 2010-01-13 15:52:26 +0100

Clean up and recolour Sonja's tile.
I always figured her tile was a bit too similar to the plain Kobold one.

Also, a tip to other tiles designers: just before declaring a tile as
"finished", try setting the alpha threshold to 0. Chances are there are
some highly transparent residues on the edges that will completely throw
off the automated %rim outline and make the tile look much uglier than
it deserves.
(And here I've been wondering where Sonja's odd outline came from...)

--------------------------------------------------------------------------------
559bdc3c5f | Johanna Ploog | 2010-01-13 15:52:25 +0100

Add a tile for Pikel.

--------------------------------------------------------------------------------
598f36ee1b | Johanna Ploog | 2010-01-13 15:52:25 +0100

Don't allow spellcasters to throw items at you.
I had two orc priests throw their spears at me instead of smiting me.
Monsters with a ranged attack were prevented from picking up missiles
but not from throwing their melee weapons.

If we want e.g. mermaids to be able to throw stuff at the player, we
will have to tweak the check to ignore some los abilities.

--------------------------------------------------------------------------------
5624103727 | Jude Brown | 2010-01-13 22:18:00 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
f5af2c84c7 | Jude Brown | 2010-01-13 22:17:52 +1000

And further Iskenderun tweaks.

--------------------------------------------------------------------------------
ed8f8e0dbe | Jude Brown | 2010-01-13 21:44:55 +1000

Convert _city_level to Lua.
This commit translates the original C++ _city_level code into Lua. It
opens up the way for nicer Vault layouts, using a series of subvaults.
Hopefully it doesn't break anything too much! Should be reverted if it
does.

--------------------------------------------------------------------------------
14f692c24b | Jude Brown | 2010-01-13 21:34:28 +1000

Further tweaks to the Iskenderun map.

--------------------------------------------------------------------------------
2ee889338d | Haran Pilpel | 2010-01-13 12:14:28 +0200

s/USE_TILES/USE_TILE/

--------------------------------------------------------------------------------
0006e0fb40 | Haran Pilpel | 2010-01-13 12:10:12 +0200

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
526626fe4e | Haran Pilpel | 2010-01-13 12:08:41 +0200

Fix line_reader crashing at random on non-tiles build. This is #ifdefed out for 
tiles. This is a hack.

--------------------------------------------------------------------------------
73fe6ed849 | Jude Brown | 2010-01-13 19:20:40 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
45145bc51b | Robert Vollmert | 2010-01-13 09:46:30 +0100

Fix exclude_set iteration.
This should fix unreachable excludes not being coloured in the
level map.

--------------------------------------------------------------------------------
b56e2eb546 | Robert Vollmert | 2010-01-13 09:28:11 +0100

Remove redundant check in _reset_travel_colours.

--------------------------------------------------------------------------------
cce3c6e018 | Haran Pilpel | 2010-01-13 10:01:03 +0200

Various cleanups, use you.weapon() more often, fix a note in README.txt.

--------------------------------------------------------------------------------
253d997346 | Adam Borowski | 2010-01-13 01:19:41 +0100

Set mimics' glyphs accordingly if the player redefined it for items.

--------------------------------------------------------------------------------
7bd75d9f1c | Johanna Ploog | 2010-01-13 00:00:29 +0100

Draw the Tiles splash screen before initialising the database. It leaves a 
better impression if the player has a pretty screen to look at while waiting 
for the database getting ready. (KiloByte)

--------------------------------------------------------------------------------
93b425987d | Johanna Ploog | 2010-01-12 23:11:11 +0100

Update Chei's ability being called Slouch rather than Ruinous Time. This fixes 
part of BR 2909126, someone please review the descriptions!

--------------------------------------------------------------------------------
a0aa135f0c | Johanna Ploog | 2010-01-12 23:06:30 +0100

Handle KILL_MISCAST in _killer_type_name().

--------------------------------------------------------------------------------
4bfee3ed9c | Johanna Ploog | 2010-01-12 22:47:01 +0100

Actually commit 0000134 fix (upstairs not marked untaken at game start).

--------------------------------------------------------------------------------
fb7b7bbe38 | Johanna Ploog | 2010-01-12 22:29:40 +0100

Fix stash tracker not being fully up-to-date at game start. Fixes BR 2929449: 
Ctrl-X not knowing about items in los, and Mantis BR 134: upstairs not marked 
as unvisited.

--------------------------------------------------------------------------------
f91590d981 | Johanna Ploog | 2010-01-12 22:00:21 +0100

Make append_spells() align spell levels correctly.

--------------------------------------------------------------------------------
8f574480e6 | Johanna Ploog | 2010-01-12 21:51:42 +0100

Without Spellcasting skill, make L-click on book call read_book instead.

--------------------------------------------------------------------------------
0b63c742e4 | Johanna Ploog | 2010-01-12 20:43:52 +0100

Change Slime Pits starting range from 5-8 to 6-8.
Before the Lair was shortened, this used to be 8-10. This change pushes
them back into the last three levels. In Mantis tracker item 297, rob
suggested 7-8, which would also be okay, but I prefer a range where it
can occasionally co-appear with another subbranch, namely Snake with 3-6.

--------------------------------------------------------------------------------
65790ee977 | Johanna Ploog | 2010-01-12 20:13:52 +0100

Tweak ring of regeneration's description.

--------------------------------------------------------------------------------
307197d96b | Johanna Ploog | 2010-01-12 20:11:19 +0100

Autoannotate exclusions placed on staircases with "up/downstairs".

--------------------------------------------------------------------------------
e4a2ae96f7 | Johanna Ploog | 2010-01-12 20:03:45 +0100

Don't display chunk effect icons for skeletons.

--------------------------------------------------------------------------------
25634a7027 | Johanna Ploog | 2010-01-12 19:54:24 +0100

Add new killer_type KILL_MISCAST whose clouds don't autoexclude. Not to be 
confused with KILL_MISC, which is used, among other for the flamethrower 
vaults. Aside from spell miscasts, KILL_MISCAST also applies to Zot traps and 
Xom effects.

--------------------------------------------------------------------------------
1767660614 | Johanna Ploog | 2010-01-12 19:26:06 +0100

Update exclusion annotations for flamethrower exclusions. If a flamethrower 
cell is already excluded, add a description if it doesn't have one already.

--------------------------------------------------------------------------------
84a9fb36ae | Johanna Ploog | 2010-01-12 18:08:10 +0100

Also reduce weights for the special flesh wall tiles.

--------------------------------------------------------------------------------
882ea23bcf | Johanna Ploog | 2010-01-12 17:51:39 +0100

Make water bubbles in Shoals' deep water "animation" rarer. I've tweaked the 
water tiles to create variants with/without bubbles or dark shapes, then used 
the %weight command to give the plain water tiles a total probability of 66%.

--------------------------------------------------------------------------------
0c04d8ad55 | Johanna Ploog | 2010-01-12 17:21:26 +0100

Also add wave tiles for deep water. The water masks still look wonky. When it 
comes to drawing waves, deep water always trumps shallow water.

--------------------------------------------------------------------------------
02dff30831 | Johanna Ploog | 2010-01-12 17:16:57 +0100

Don't make slimes split if they could instead move closer to their foe.

--------------------------------------------------------------------------------
b091697fdc | Darshan Shaligram | 2010-01-12 20:50:14 +0530

Make boss merfolk and sirens rarer (rob).
New average number of sirens=0.26 (was 1.3), boss merfolk=0.16 (was 0.3) on 
Shoal:1.

--------------------------------------------------------------------------------
9c8f9c870f | Jude Brown | 2010-01-12 23:39:45 +1000

And preliminary threat for Iskenderun wizlab.

--------------------------------------------------------------------------------
d458a7edd3 | David Lawrence Ramsey | 2010-01-12 07:36:52 -0600

Fix [2826100]: Make silver statues unholy, to match demon summoners.

--------------------------------------------------------------------------------
8151f00662 | Jude Brown | 2010-01-12 23:29:14 +1000

Rudiments of an Iskenderun map.

--------------------------------------------------------------------------------
29824143fa | Adam Borowski | 2010-01-12 14:28:32 +0100

Allow disintegrating trees.

--------------------------------------------------------------------------------
4368944db5 | Adam Borowski | 2010-01-12 14:20:47 +0100

Trees don't reflect electricity; for bolts of lightning they ignite instead.

--------------------------------------------------------------------------------
8ac66c3def | Jude Brown | 2010-01-12 23:07:38 +1000

Zonguldrok map, by Zaba.

--------------------------------------------------------------------------------
082e5d6cf9 | Adam Borowski | 2010-01-12 13:36:09 +0100

Remove electric missiles.
The launcher brand is still there, currently on the storm bow and 1/5 of
branded (ie, 1/3 of them) randart crossbows.

--------------------------------------------------------------------------------
6b5fba054e | Jude Brown | 2010-01-12 22:33:39 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
1c8e80d2d8 | Adam Borowski | 2010-01-12 13:15:59 +0100

Make TAG_MAJOR_VERSION a #define not a pansy enum, so you can use it in #if.

--------------------------------------------------------------------------------
9c1370e65f | Adam Borowski | 2010-01-12 12:26:27 +0100

Mark holy weapons as useless more faithfully to their actual uselessness.

--------------------------------------------------------------------------------
d551e03fd1 | Jude Brown | 2010-01-12 21:13:44 +1000

Fix incorrect math in make_box_doors.
In most settings, three passable glyphs are those on the inside of the
room; we want some passable glyphs on the *outside* of the room as well.
This does mean that immediate corners of doors will now be excluded from
possible door spots, but this can be hacked around. The other solution
is to look "outside" of the room, which could probably be calculated
from the specified side.

--------------------------------------------------------------------------------
e22f0de5a4 | Adam Borowski | 2010-01-12 11:44:06 +0100

Die noisily on invalid box_side (mostly to silence compiler warnings).

--------------------------------------------------------------------------------
7e1f74b990 | Johanna Ploog | 2010-01-12 11:07:59 +0100

In tile-dngn.html display tile weights as percent values.

--------------------------------------------------------------------------------
be20930c20 | Jude Brown | 2010-01-12 18:54:02 +1000

Fix #388, disallow poison combos except for Nessos.
This commit fixes "poison poisoned arrow of flame hits you" (#388, Core
Xii).

This commit also removes the ability to combine venom-branded bows with
branded ammunition, except for Nessos, who is given an exception. In
other words, he can shoot "poisoned arrow of flame", but you can kill
him, pick up his bow and arrows, and only shoot "poisoned arrows".

--------------------------------------------------------------------------------
c6f5386588 | Jude Brown | 2010-01-12 18:10:21 +1000

More new dungeon build functions, and some adjustments.
Adjusted _valid_coord to allow the checking of a coordinate without
generating an error message; moved fill_area's filling code to its own
function so that it can be called by multiple functions; implemented
count_passable_neighbors in C++ instead of Lua, to make it more
accessible in multiple layouts.

Implemented "make_box" and "make_box_doors"; both work on a series of
two coordinates (top left and bottom right corners), the first making a
box of specified width and using specified glyphs for walls and floor,
while the second function will randomly add doors to the box, ignoring
corners.

make_box_doors will not work on instances where the wall thickness is
more than 1 square; this could be adjusted at a later date.

--------------------------------------------------------------------------------
87f6bc7bfb | Jude Brown | 2010-01-12 15:26:34 +1000

A quick "god gift" Wizard function.
It will probably do nasty things to piety and god gift timeouts, but
it's useful for quickly checking what acquirements can be got for
different gods, and also testing Okawaru's missile acquirement (which
wasn't working with slings before, but is now.)

--------------------------------------------------------------------------------
acabbaacbc | Jude Brown | 2010-01-12 13:35:39 +1000

Some new Lua wrappers for dungeon building and ranges.
Introduces util.range(start, stop), returning an array consisting of the
numeric values between start and stop inclusive.

Also introduces "is_valid_coord" Lua wrapper, which does the same work
as _valid_coord but does not generate an error message for invalid
coordinates, "find_in_area" (a straight translation of the function in
dungeon.cc), and "is_passable_coord" which checks the glyph at that
location against traversable_glyphs.

--------------------------------------------------------------------------------
af50b39780 | Jude Brown | 2010-01-12 12:18:32 +1000

A start at fixing missile acquirement (Vandal).
Vandal points out that SK_SLINGS was returning MI_STONE instead of sling
bullet, and also had some legacy code around for SK_CROSSBOWS, darts and
hand crossbows.

This commit fixes that, but does not fix the issue of being unable to (I
believe) acquire hand axes, dagger, javelins, throwing nets or large
rocks for people with throwing skill.

--------------------------------------------------------------------------------
b1b883e344 | Johanna Ploog | 2010-01-12 00:22:23 +0100

Add a coinflip() to slimes splitting, so it's not as reliable.

--------------------------------------------------------------------------------
56bdc43adb | Johanna Ploog | 2010-01-12 00:22:22 +0100

Make slime creatures split in open space.
I removed an "unoccupied" because a comment claimed this shouldn't
matter for splitting and also because doing so seemed to have the
desired effect.

I also added a check to make sure that splitting only takes place
if it doesn't increase the distance to the foe, other adjacent
cells are fine of course.

With these changes, luring merged slime creatures into open areas
causes them to split.

--------------------------------------------------------------------------------
ab90ed61c3 | David Lawrence Ramsey | 2010-01-11 16:27:54 -0600

Remove forced update when gaining Necromancy while wielding a weapon of pain, 
since they're no longer marked as useless without it.

--------------------------------------------------------------------------------
09547177cc | Johanna Ploog | 2010-01-11 23:42:43 +0100

Replace another tile duplication with a weight setting.

--------------------------------------------------------------------------------
599db8351e | Johanna Ploog | 2010-01-11 23:38:53 +0100

Only display tile probabilities in the dngn html file.

--------------------------------------------------------------------------------
df9fdbfa36 | Robert Vollmert | 2010-01-11 23:14:14 +0100

Output trailing x2, etc. for repeated messages.

--------------------------------------------------------------------------------
2131c7d87b | Adam Borowski | 2010-01-11 22:31:55 +0100

Don't mark weapons of pain as useless with Necro=0, they're same as unbranded.

--------------------------------------------------------------------------------
ebd4b71650 | Adam Borowski | 2010-01-11 22:27:57 +0100

Change the messages on wielding a weapon of pain. (MarvinPA) I dropped "great" 
from "great ineptitude", though.

--------------------------------------------------------------------------------
a6dc4a5857 | Robert Vollmert | 2010-01-11 21:41:15 +0100

In trog_book, burn all books at the book location.
Previously, it was possible to prevent the book from
being burned by throwing an item on top.

The timing of incineration has been a little unreliable in
in my tests, but I believe (hope) this is not related to the
change.

Burning all books except just one so players can't throw
away a junk book to get at a new one.

--------------------------------------------------------------------------------
175d5142b6 | Johanna Ploog | 2010-01-11 21:33:49 +0100

Replace the triple-defined water tiles with the appropriate %weights.

--------------------------------------------------------------------------------
8faad6519e | Johanna Ploog | 2010-01-11 21:33:48 +0100

Also apply _pick_random_dngn_tile() to animated feature tiles.

--------------------------------------------------------------------------------
c9a153bf0e | Johanna Ploog | 2010-01-11 21:33:48 +0100

List tile weights in tile-dngn.html.

--------------------------------------------------------------------------------
bd7a961334 | Johanna Ploog | 2010-01-11 21:33:48 +0100

Implement rltiles %weight command and skewed dngn tile probabilities.
In dc-dngn.txt you can now use the %weight command to specify the
probability of a given tile whenever a variant is chosen randomly
from a set of variant tiles.

Example:
%weight 5
floor/floor_sand_stone0 FLOOR_SAND_STONE
floor/floor_sand_stone1
floor/floor_sand_stone2
floor/floor_sand_stone3
%weight 2
floor/floor_sand_stone4
floor/floor_sand_stone5
floor/floor_sand_stone7
%weight 1
floor/floor_sand_stone6

... will make plain sand more likely than the rocky versions and the
big rock rarer than the smaller ones.

This is not visible from the dngn.png but you can check the (cumulative)
weights in tiledef-dngn.cc.

Aside from the above, this is also used for the brick wall in all its
colorations. (The repeat command also repeats the weight settings.)

--------------------------------------------------------------------------------
04163afa8a | Darshan Shaligram | 2010-01-11 22:37:23 +0530

Set hard limit of 180 plants per Shoals level, reduce density of plant clusters.

--------------------------------------------------------------------------------
4fd99e7de4 | Darshan Shaligram | 2010-01-11 22:01:36 +0530

Make place-population also report max, min and sigma for monsters generated per 
level.

--------------------------------------------------------------------------------
7f9e4fc838 | Robert Vollmert | 2010-01-11 16:13:28 +0100

Blink quietly when timing out monster confusion.
monsters::timeout_enchantments is called when returning to a
level; it blinks monsters that were confused and used to message
that the monster blinks. This fixes that message.

Things are still a little weird: You still see the confused monsters
when entering the level and get the "less confused" messages before
they're redrawn elsewhere. Not quite sure how this should be done
properly.

--------------------------------------------------------------------------------
1e1a9815d4 | Robert Vollmert | 2010-01-11 16:13:28 +0100

Pass on quiet flag in monster_blink.

--------------------------------------------------------------------------------
b9443559cd | Johanna Ploog | 2010-01-11 16:18:08 +0100

Move Ely's white altar description back into alphabetic order.

--------------------------------------------------------------------------------
6a06a01ea4 | Johanna Ploog | 2010-01-11 16:18:08 +0100

Add a perfunctory shaft description.

--------------------------------------------------------------------------------
80d8b3a8cd | Johanna Ploog | 2010-01-11 16:18:08 +0100

Experimentally always draw tile names in the inventory header line. Used to be 
always one line above the tile in question but with the background this can be 
sometimes hard to see. Also, I found it difficult to compare names with them 
always being centered on the tiles. Feedback welcome!

--------------------------------------------------------------------------------
e31ea7d79d | Johanna Ploog | 2010-01-11 16:18:08 +0100

Experimentally draw tool tip below the mouse pointer rather than above. It's a 
bit less distracting this way and doesn't cover up the inventory header line 
(description).

--------------------------------------------------------------------------------
2196a7adf6 | Robert Vollmert | 2010-01-11 13:12:29 +0100

Merge branch 'master' into messagewindow

--------------------------------------------------------------------------------
1e577870f2 | Robert Vollmert | 2010-01-11 13:11:07 +0100

Support for overwritable items in messagewindow.
This would allow outputting just the leading dash if the
current turncount-based approach doesn't work out and
appending to it with the next message. Similarly, it
should allow amending prompts with the user response.

--------------------------------------------------------------------------------
4f0acf41b3 | Robert Vollmert | 2010-01-11 13:07:58 +0100

Implement leading dash.
This is now output for each new turn, not after each mesclr() as
used to be the case with delay_message_clear.

The dash is printed every time the turn count increases from one
message to the next. This sounds right, but leads to weird
messaging because monsters appear to act first on a turn.

Also, the circular buffer no longer tracks its size.

--------------------------------------------------------------------------------
40b5e8b46a | Darshan Shaligram | 2010-01-11 17:12:07 +0530

Merge branch 'amulet-refactoring'

--------------------------------------------------------------------------------
00abd7f656 | Darshan Shaligram | 2010-01-11 17:11:03 +0530

Set randart base descriptions for new amulets.

--------------------------------------------------------------------------------
89b4e230ad | Darshan Shaligram | 2010-01-11 16:13:36 +0530

Amulet of stasis, first cut.
Amulets of stasis blocks:
- Teleport self
- Blink in all forms
- Slowing
- Hasting
- Paralysis
- Petrify
- Berserker rage

The amulet auto-ids the first time it triggers.

The amulet does not affect existing conditions (such as an existing Haste spell 
or an existing post-berserk Slow).

--------------------------------------------------------------------------------
577f5d3f5a | Johanna Ploog | 2010-01-11 10:35:45 +0100

In skill menu, allow reading descriptions of skills at 27.

--------------------------------------------------------------------------------
61234ca48c | Johanna Ploog | 2010-01-11 10:35:45 +0100

Add an explanatory line about skill training to the skills menu. (Napkin)

--------------------------------------------------------------------------------
03630bb93d | Johanna Ploog | 2010-01-11 10:35:45 +0100

In the skills menu, move Stealth to the right column, above T&D. This frees one 
line at the bottom on consoles with 24 rows.

--------------------------------------------------------------------------------
cac38e346d | Darshan Shaligram | 2010-01-11 13:20:54 +0530

Mark Okawaru wrath minions as summoned.

--------------------------------------------------------------------------------
f2aa833106 | Darshan Shaligram | 2010-01-11 13:20:10 +0530

Fix monster enchantment names for debug_stethoscope.

--------------------------------------------------------------------------------
cacdc4a681 | Darshan Shaligram | 2010-01-11 12:31:58 +0530

Disallow intrinsic reaching attacks (turtles) from reach-attacking at full 
diagonals (2,2).

--------------------------------------------------------------------------------
0879f0bf6c | Darshan Shaligram | 2010-01-11 12:07:31 +0530

Fix xp modifier for turtles.

--------------------------------------------------------------------------------
7ddd2e7068 | Jude Brown | 2010-01-11 11:15:29 +1000

Make blue smoke blue in due_chaos_kobolds.

--------------------------------------------------------------------------------
f0872643a9 | Jesse Luehrs | 2010-01-10 18:50:24 -0600

don't ruin special room walls

--------------------------------------------------------------------------------
63a5074a96 | Charles Otto | 2010-01-10 19:48:35 -0500

Adjust the activation cost of evolution and change Fedhas ability order
Change Fedhas ability order to:
decomposition - evolution - sunlight - growth - spores - rain
and adjust the activation cost/casting difficulty of evolutino to be
more reasonable for a low level ability. Also change the corresponding
religion titles for these abilities.

--------------------------------------------------------------------------------
e0d3f22102 | Charles Otto | 2010-01-10 19:48:18 -0500

Redo evolution UI and costs
Fedhas' evolution ability now uses (only) piety to upgrade fungi and
only fruit to upgrade plants. UI was changed to only affect monsters
adjacent to the player.

--------------------------------------------------------------------------------
f92b455909 | Jesse Luehrs | 2010-01-10 18:41:20 -0600

more lair tweaking

--------------------------------------------------------------------------------
ce1ef6f9fb | Jude Brown | 2010-01-11 10:07:23 +1000

Remove accidentally committed test weight on glass_crypt.

--------------------------------------------------------------------------------
66a603dc84 | Jude Brown | 2010-01-11 10:04:25 +1000

Set the glass_crypt liches free when you get to the loot.

--------------------------------------------------------------------------------
b62a72ee0d | Jude Brown | 2010-01-11 09:55:57 +1000

Make haloes interact sanely with gloom.

--------------------------------------------------------------------------------
2ec2ff85d8 | Jesse Luehrs | 2010-01-10 15:34:50 -0600

typo fix

--------------------------------------------------------------------------------
4671c6a945 | Jesse Luehrs | 2010-01-10 15:27:55 -0600

tweak the parameters a bit more

--------------------------------------------------------------------------------
ed0a77dc2f | Jesse Luehrs | 2010-01-10 15:17:18 -0600

parameterize add_plant_clumps

--------------------------------------------------------------------------------
61087e629e | Jesse Luehrs | 2010-01-10 15:17:09 -0600

parameterize ruin_level

--------------------------------------------------------------------------------
4ccdb5ec4e | Jesse Luehrs | 2010-01-10 14:55:13 -0600

try to avoid crashes due to reallocation better

--------------------------------------------------------------------------------
e46a80b5fd | Jesse Luehrs | 2010-01-10 14:49:18 -0600

remove free standing doors

--------------------------------------------------------------------------------
2a48502991 | Jesse Luehrs | 2010-01-10 13:54:23 -0600

allow bushes to be placed as well, at low chance

--------------------------------------------------------------------------------
c5f8606a36 | Jesse Luehrs | 2010-01-10 13:54:23 -0600

better plant clumping algorithm

--------------------------------------------------------------------------------
67cbd7ec76 | Jesse Luehrs | 2010-01-10 13:54:23 -0600

give doors a smaller chance to be removed

--------------------------------------------------------------------------------
b1ff610c3a | Charles Otto | 2010-01-10 14:13:45 -0500

Don't prompt the user in growth if they can't use the ability
Don't prompt the user to specify the amount of plants to create if they
can't create any due to having no fruit or no empty adjacent squares
to put plants on.

--------------------------------------------------------------------------------
09782b43af | Charles Otto | 2010-01-10 14:13:24 -0500

Remove the piety cost for growth, reduce piety loss for allies dying
Removing the piety cost at activation for growth since players already
lose piety when the plants die. Also switch the piety hit for plants
dying to just -1 per plant instead of a function of monster HD since
plant HD doesn't mean all that much.

--------------------------------------------------------------------------------
7d4bea3c73 | Charles Otto | 2010-01-10 14:13:03 -0500

Give plants created by growth an hp bonus
The bonus is proportional to the user's invocations skill, parameters
may need adjustment.

--------------------------------------------------------------------------------
1d9f712c6d | Charles Otto | 2010-01-10 14:12:44 -0500

Redo the Fedhas' growth UI
Prompt the user to enter the total number of fruit to use instead of
an inventory slot.

--------------------------------------------------------------------------------
7815696da9 | Johanna Ploog | 2010-01-10 19:43:51 +0100

Reorder demons by glyph in dc-mon.txt.
I was originally planning to add a preliminary tile for sixfirhy
(red devil recoloured cyan) but then got confused about the pitchfork
description. I took that to mean it's generated with a trident, but
it isn't mentioned in mon-gear at all... So, should it get a weapon
or not?

--------------------------------------------------------------------------------
88bc1cd2f7 | Jesse Luehrs | 2010-01-10 11:57:36 -0600

ruin lair levels after doors are placed

--------------------------------------------------------------------------------
5871154a2e | Darshan Shaligram | 2010-01-10 23:19:31 +0530

Amulet of Faith, mark I.
Amulets of faith have these effects:
- Piety gain is 1/3 faster.
- Gods that protect from harm are more likely to do so (your piety is 1/3rd
  higher for such checks).
- Xom piety walk is 1/3 faster.
- Xom is more likely to act.
- Removing the amulet leaches away some piety, but will never cause
  excommunication, or drop piety too close to excommunication.

Amulets auto-id if the player already has a religion, or when the player
acquires a religion while wearing the amulet.

--------------------------------------------------------------------------------
8a78afdcea | Darshan Shaligram | 2010-01-10 18:24:05 +0530

Remove resist slowing, increment tag major version.

--------------------------------------------------------------------------------
1acfe36802 | Darshan Shaligram | 2010-01-10 17:18:39 +0530

Reduce berserk hp scaling to 1.5.

--------------------------------------------------------------------------------
5b7dc12c9c | Jude Brown | 2010-01-10 18:50:05 +1000

Don't give Thieves crossbow skills (by).
Now that they don't start with hand crossbows, there's no point in
giving them any skill in crossbows. Instead, give them Throwing skill.

--------------------------------------------------------------------------------
28adee4174 | Jude Brown | 2010-01-10 18:39:03 +1000

New type of cloud: thick gloom.
It's a fast-moving, long-lasting cloud that clumps together. It will
dissipate very quickly unless it is near other clouds. It is opaque, and
blocks line of sight with two or more clouds, but unlike other clouds,
it does not actually use the '#' glyph. Instead, it colours the ground
underneath it magenta.

It's currently unused, and while it's an interesting visual effect that
will have some great potential in portal vaults and specific branches,
should probably be used very rarely.

Also includes a tile for these, though I'm not too happy with the
effect.

--------------------------------------------------------------------------------
958627e9c8 | Jesse Luehrs | 2010-01-10 02:26:13 -0600

place clumps of plants/fungi in lair levels too

--------------------------------------------------------------------------------
8c6033d18d | Jesse Luehrs | 2010-01-10 02:03:14 -0600

actually place the plants in the place that the wall was removed from

--------------------------------------------------------------------------------
241dd89547 | Jude Brown | 2010-01-10 17:30:58 +1000

All other demons are immune to silence (greensnark, ogaz).
Therefore, make Rakshasas and Mara likewise immune.

--------------------------------------------------------------------------------
26707f530e | Charles Otto | 2010-01-09 21:17:11 -0500

Make Fedhas' shoot through plants more lenient
Allow players to fire through neutral (as well as friendly) plants and
let explosion spells (fireball etc.) pass through plants although the
explosion from those spells still affects plants.

--------------------------------------------------------------------------------
19a3b09d45 | Johanna Ploog | 2010-01-10 02:55:27 +0100

Limit memorisation screen to at most 52 spells per page.

--------------------------------------------------------------------------------
f058457322 | Charles Otto | 2010-01-09 19:57:03 -0500

Restrict sunlight's plant creating
Restrict sunlight to only have a chance of making plants when it evaporates 
water

--------------------------------------------------------------------------------
6aafe49570 | Charles Otto | 2010-01-09 19:56:44 -0500

Make Fedhas' sunlight always use MP and train invocations
The ability is intended to be used for training invocations and it has
no piety cost so canceling mp cost/training when it doesn't hit
anything is unnecessary.

--------------------------------------------------------------------------------
f01cabdb41 | Charles Otto | 2010-01-09 19:56:27 -0500

Restore player kill attribution for Fedhas' sunlight
Give the player exp. if aquatic monsters die due to ENCH_AQUATIC_LAND
caused by the player evaporating the water they were in with sunlight.

--------------------------------------------------------------------------------
ca5fe3a360 | Jesse Luehrs | 2010-01-09 18:41:22 -0600

implement 'ruined level' idea for lair layouts
each wall tile has a x/10 chance of being replaced by floor, where x is
the number of adjacent floor tiles. each wall replaced in this way has a
20% chance of being replaced by a plant or a fungus.

--------------------------------------------------------------------------------
f9fdd3ccb2 | Johanna Ploog | 2010-01-10 01:43:47 +0100

Fix 0000374: All subtypes equal to Geryon's treated as unsafe sacrifice.

--------------------------------------------------------------------------------
6234b8246f | Jesse Luehrs | 2010-01-09 18:16:49 -0600

fix exclude.cc compile

--------------------------------------------------------------------------------
1dd6376269 | Johanna Ploog | 2010-01-10 01:16:58 +0100

Combine identical exclusion annotation descriptions.
A typical annotation may now look as follows:
exclusion: 5 flame clouds, oklob plant and 2 more exclusions

FIXME: The 2 more are probably also flame clouds but don't get
described as such seeing how they were already added as flame
cloud neighbours earlier when they were harmless floor themselves.

--------------------------------------------------------------------------------
0f55e73c6f | Johanna Ploog | 2010-01-10 00:43:01 +0100

Also list cloud type for fog generator exclusion annotations. Increases minor 
version by one as travel_exclude now stores a string rather than the monster 
type, which is more versatile and can also be used for cloud names.

--------------------------------------------------------------------------------
9d79dc038f | Johanna Ploog | 2010-01-10 00:11:03 +0100

Don't annotate fog generator exclusions as monster-triggered.

--------------------------------------------------------------------------------
f1a12d1241 | Johanna Ploog | 2010-01-09 23:50:11 +0100

Add a message when an autoexclusion is placed because of a monster.

--------------------------------------------------------------------------------
1a0866d425 | Johanna Ploog | 2010-01-09 23:48:57 +0100

Don't display chunk/corpse brands for herbivores.

--------------------------------------------------------------------------------
de60920312 | Johanna Ploog | 2010-01-09 23:29:25 +0100

Change Lugonu's ^ screen to say "corrupted" rather than "blessed".

--------------------------------------------------------------------------------
a991cdbff6 | Darshan Shaligram | 2010-01-09 23:17:43 +0530

Remove obsolete commands to delete save pieces in make clean to fix cdo clean 
build (Napkin).

--------------------------------------------------------------------------------
7446d2b0ec | Enne Walker | 2010-01-09 11:42:15 -0500

Adding some unused floor tiles from Denzi.

--------------------------------------------------------------------------------
8b1fac167b | Darshan Shaligram | 2010-01-09 20:29:40 +0530

Don't let monsters wield stacks of throwing weapons (fixes NetHackish messages 
about monsters wielding 6 spears).

--------------------------------------------------------------------------------
f402990b9d | Darshan Shaligram | 2010-01-09 19:33:59 +0530

Change stair placement on Shoal:$ so it no longer groups all stairs together.

--------------------------------------------------------------------------------
43274d595d | Johanna Ploog | 2010-01-09 14:23:37 +0100

Add an icon for contaminated chunks/corpses.

--------------------------------------------------------------------------------
3c2f2b23ae | Johanna Ploog | 2010-01-09 14:16:52 +0100

Rename corpse.png -> chunk.png, corpse_rotten.png -> chunk_rotten.png

--------------------------------------------------------------------------------
8f662453f5 | Johanna Ploog | 2010-01-09 14:12:15 +0100

Tiles: Add icons for poisonous/mutagenic/... chunks or corpses. I'm not sure 
how to visualize contaminated chunks, so they haven't got an icon yet (maybe 
use coagulated blood?) Also, I've opted to only show the icons for rotten 
chunks if the character is capable of eating them. Otherwise, them being rotten 
is all that's of interest to the player.

--------------------------------------------------------------------------------
40a5cf776b | Darshan Shaligram | 2010-01-09 16:48:49 +0530

Script to generate a level and dump the map to dump-<place>.map for inspection.

--------------------------------------------------------------------------------
3000618dd5 | Jude Brown | 2010-01-09 19:10:03 +1000

Don't autokill with berserkitis (Twinge).

--------------------------------------------------------------------------------
40fad994a1 | Stefan O'Rear | 2010-01-08 22:33:04 -0800

Add Twinge to CREDITS

--------------------------------------------------------------------------------
52122a89a5 | Jared Tinney (Twinge) | 2010-01-09 16:19:37 +1000

Tweak monster experience gains to better fit actual monster difficulty.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
31d6aa605a | Cryp71c | 2010-01-09 14:16:47 +1000

Fix monster-cast Fireball causing suicide.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
52a0cc3281 | Darshan Shaligram | 2010-01-09 08:05:01 +0530

Restore missing Crypt:5 vault.

--------------------------------------------------------------------------------
0af1dc336f | Jude Brown | 2010-01-09 08:13:18 +1000

Fix return values (rob).

--------------------------------------------------------------------------------
faf758758c | Jude Brown | 2010-01-09 08:13:05 +1000

Disallow randomly-generated chaos branded ammunition (dpeg, Napkin).

--------------------------------------------------------------------------------
6f7bad89c9 | Darshan Shaligram | 2010-01-09 01:53:00 +0530

Add -script usage note to commandline option help.

--------------------------------------------------------------------------------
9841ce45ea | Darshan Shaligram | 2010-01-09 01:47:09 +0530

Add -script option to Crawl to run a Lua script. Scripts are similar to tests, 
but can be parameterised.
Add a script to generate 150 level at a named place and report on all the 
monsters generated there.

--------------------------------------------------------------------------------
915b92e552 | Darshan Shaligram | 2010-01-09 01:47:08 +0530

Adjust shoals monster distribution.

--------------------------------------------------------------------------------
dd83d4d2be | David Ploog | 2010-01-08 19:35:38 +0100

Remove my Crypt:5 vault (glassed liches).

--------------------------------------------------------------------------------
21bbd0b712 | Johanna Ploog | 2010-01-08 17:05:44 +0100

Make harpies also steal food from the ground at the player's position. 
Previously, players could (and did!) drop all their food before engaging in 
combat with harpies. As long as they didn't step off the grid, their stash of 
food was safe. This is now no longer the case.

--------------------------------------------------------------------------------
c82178a80f | Johanna Ploog | 2010-01-08 17:05:44 +0100

Move undead monsters' tiles into subfolder dc-mon/undead.
It should be much easier now to sift through the monster tiles for the ones
I'm looking for.

--------------------------------------------------------------------------------
87404d97d0 | Darshan Shaligram | 2010-01-08 19:23:56 +0530

Refix shim for permanent transforms (duration is apparently set to 0).

--------------------------------------------------------------------------------
4d4cc1f7c1 | Darshan Shaligram | 2010-01-08 19:12:41 +0530

Fix shim to undo negative transform durations (workaround for MarvinPA's 
permanent hog form).

--------------------------------------------------------------------------------
60e491cc65 | Jude Brown | 2010-01-08 23:12:23 +1000

A simple noisy wrapper for Zaba.

--------------------------------------------------------------------------------
36ea33205e | Johanna Ploog | 2010-01-08 14:21:06 +0100

Add a powder-blue snake tile variant for sea snakes.

--------------------------------------------------------------------------------
d04148fa81 | Johanna Ploog | 2010-01-08 14:21:06 +0100

Add preliminary turtle tile.
It's a bit on the smallish side, having been originally intended for altar
decoration, and also a bit too dark. I've no idea how an alligator turtle
is supposed to look, so the two share the same tile for now.

--------------------------------------------------------------------------------
82a7b6bf2d | Johanna Ploog | 2010-01-08 14:21:06 +0100

Move nonliving monsters' tiles into subfolder dc-mon/nonliving.

--------------------------------------------------------------------------------
7b7f0f9f0b | Jude Brown | 2010-01-08 22:45:34 +1000

Lua item pluses wrapper.
Will only report pluses in instances where pluses are actually known to
the player.

--------------------------------------------------------------------------------
36092d671b | Johanna Ploog | 2010-01-08 12:55:16 +0100

Give Kirke's tile a staff and remove her from the weapon offset function.
Since Kirke is a spellcaster and not wielding a weapon, she looks kinda stupid
holding her hand like that and the staff is a common sign of a unique being
a spellcaster.

--------------------------------------------------------------------------------
059ab80901 | Adam Borowski | 2010-01-08 11:50:52 +0100

Sort testudines into their place.

--------------------------------------------------------------------------------
da6cd30a31 | Adam Borowski | 2010-01-08 11:10:30 +0100

Anacondas are not pythons.

--------------------------------------------------------------------------------
1f8eaa7055 | Jude Brown | 2010-01-08 18:58:26 +1000

Mara's summoned ghosts are "illusions".

--------------------------------------------------------------------------------
1e193cb797 | Jude Brown | 2010-01-08 18:58:26 +1000

Give Halflings the same HP gains as Sludge Elves (Vandal, dpeg).
Currently, at XL10, a Halfling Hunter (with no fighting skill) will have
46hp. With the new changes, they would now have 54hp. I think this helps
to differentiate them further from Kobolds.

--------------------------------------------------------------------------------
ba666a038d | Jesse Luehrs | 2010-01-08 02:52:12 -0600

give aquamancers steam ball instead of bolt of cold
steam is much more water-themed than 'cold', and having both fire and
ice attacks is cool

--------------------------------------------------------------------------------
eae626d898 | Jude Brown | 2010-01-08 18:26:56 +1000

Increase weight of stones (dpeg).
They are lighter than arrows, which is confusing. Thematically, it would
make more sense for them to be heavier than sling bullets: they are just
stones, and they aren't shaped particularly well for slinging. They are
also larger!

--------------------------------------------------------------------------------
b49f10b294 | Jude Brown | 2010-01-08 18:26:55 +1000

And let single centaurs spawn in Shoals. (Greensnark, sorear)
This keeps with the current "Greek" theme of Shoals. Single monsters are
certainly more desirable than packs in this context.

--------------------------------------------------------------------------------
6b1312b42f | Jude Brown | 2010-01-08 18:26:55 +1000

Make turtles green! (Greensnark)

--------------------------------------------------------------------------------
10cf7d676b | Jude Brown | 2010-01-08 18:26:54 +1000

Give Dowan Throw Icicle/Stone Arrow instead.
Fireball is an XL6 spell, and with HD3, that means 3d10 damage per hit.
With haste, this makes it slightly overpowered. It's a great theme and I
like the idea, but unfortunately Fireball is just too deadly in this
context.

--------------------------------------------------------------------------------
05f50c3e65 | Jude Brown | 2010-01-08 18:26:54 +1000

Tweak a vault (Mu).

--------------------------------------------------------------------------------
8f04c0d401 | Darshan Shaligram | 2010-01-08 13:50:45 +0530

Unwrap monster descriptions (Zaba).

--------------------------------------------------------------------------------
2bacb2008a | Darshan Shaligram | 2010-01-08 13:49:26 +0530

Allow snapping turtle zombies to retain their reaching bites.

--------------------------------------------------------------------------------
6d0eb30001 | Darshan Shaligram | 2010-01-08 13:16:12 +0530

Add snapping turtles, alligator snapping turtles and sea snakes to the Shoals, 
remove yaktaurs, centaurs and stone giants.
Snapping turtles get reaching attacks. Sea snakes get strong venom.

--------------------------------------------------------------------------------
2aef97c764 | Darshan Shaligram | 2010-01-08 11:12:50 +0530

Fix order of trees and open sea in feature names.

--------------------------------------------------------------------------------
f792fc9364 | Darshan Shaligram | 2010-01-08 10:20:25 +0530

Remove floor surrounded by deep water in Ilsuiw's hut.

--------------------------------------------------------------------------------
60e7de28f1 | Johanna Ploog | 2010-01-08 00:22:05 +0100

Greatly improve tiles for mermaids, sirens and Ilsuiw.

--------------------------------------------------------------------------------
132901b920 | Johanna Ploog | 2010-01-08 00:22:05 +0100

Clean up harpy tile.

--------------------------------------------------------------------------------
fcc750d580 | Adam Borowski | 2010-01-07 23:18:37 +0100

Don't reduce the EV of a halo's source (angels/daevas/player) (Mantis 323) This 
has about no effect on heavy armour users, and makes dodgy chars use TSO just 
for the starting blade or weapon blessing.  Stealth is of course still nuked.

--------------------------------------------------------------------------------
ee183b1212 | Adam Borowski | 2010-01-07 23:09:38 +0100

Make unknown potions of rage override clarity.  Drugs > being focused > anger.

--------------------------------------------------------------------------------
443ff1cd18 | Adam Borowski | 2010-01-07 22:19:00 +0100

A kludge to salvage Marvin's CDO perma-pig game.  Please revert it soon!

--------------------------------------------------------------------------------
b4f11b1704 | Adam Borowski | 2010-01-07 22:03:23 +0100

Make the Swine card always last at least 1 turn.  In fact, let's make that 50% 
max at the minimum.

--------------------------------------------------------------------------------
f536c27859 | Adam Borowski | 2010-01-07 21:35:39 +0100

Rename transfor.{cc,h} to transform.{cc,h}.

--------------------------------------------------------------------------------
81ae2f6d11 | Johanna Ploog | 2010-01-07 20:29:28 +0100

Fix 0000353: Make Agnes' tile wield a lajatang.
The short sword probably dates back from before lajatangs were added. Rather
than draw in a lajatang, I removed the weapon and added her into the
weapon offset function.

--------------------------------------------------------------------------------
8c4d829ecf | Johanna Ploog | 2010-01-07 20:28:47 +0100

Slight reordering in get_weapon_offset().

--------------------------------------------------------------------------------
316462f8ec | Johanna Ploog | 2010-01-07 20:27:47 +0100

Correct comments in get_weapon_offset()

--------------------------------------------------------------------------------
a78feb871b | Johanna Ploog | 2010-01-07 19:07:24 +0100

Tweak "hat of Pondering" tile to be less garish.

--------------------------------------------------------------------------------
9f8953a178 | Johanna Ploog | 2010-01-07 19:02:35 +0100

Remove commented out conditionals.
I played around with how the mesmerisation restriction tiles look when
only applying to floor and within los (as is the case for ASCII) but I
feel that's confusing and misleading in that it completely disregards
the possibility of controlled teleport placing you outside your current
los and still within sight of the mermaid.

--------------------------------------------------------------------------------
e5d02f46f3 | Johanna Ploog | 2010-01-07 19:02:35 +0100

Reuse "out of range" tile for movement restrictions when mesmerised.

--------------------------------------------------------------------------------
14d28e2628 | Darshan Shaligram | 2010-01-07 21:28:04 +0530

Fix bug in handling .des map validation failures (Eifeltrampel).
snake_hunt would very rarely fail validation 25 times without vetoing the 
level, leaving Snake:$ without a rune.

--------------------------------------------------------------------------------
d67ff3694b | Darshan Shaligram | 2010-01-07 20:58:22 +0530

Set wizmode flag correctly in milestones even for non-wizard builds.

--------------------------------------------------------------------------------
f608a02a66 | Darshan Shaligram | 2010-01-07 20:30:18 +0530

Move BEAM_WATER out of the random range used by BEAM_RANDOM, since the game 
crashes if BEAM_RANDOM picks water (kilobyte).

--------------------------------------------------------------------------------
3746a0d9be | Johanna Ploog | 2010-01-07 15:49:44 +0100

Fix 0000188: monster list bug with player ghost
A stupid typo (mine, probably) caused monster names to actually be compared
with themselves, so the check would always return false.

--------------------------------------------------------------------------------
dfe4d971e4 | Jude Brown | 2010-01-07 22:02:23 +1000

Prompt before offering the Horn of Geryon (Mu).
You can accidentally cheat yourself out of entry to all of the Hells if
you sacrifice this before using it.

--------------------------------------------------------------------------------
55a78fd8ac | Jude Brown | 2010-01-07 22:00:17 +1000

Unnerf Dowan.
The previous incarnation basically made it a necessity to kill Duvessa
first, otherwise she would go berserk and easily kill the player; this
is both spoiler-ridden and unbalanced.

Instead of making Dowan run away in fear, he'll be temporarily hasted,
and receive an upgrade of spells. Fireball will replace both of his
conjurations, and Corona and Haste Other are replaced by Blink and Haste
respectively.

Fireball tracers currently don't seem to work properly, meaning that
Dowan can kill himself with his own Fireball. This is undesirable.

--------------------------------------------------------------------------------
437d515083 | Darshan Shaligram | 2010-01-07 17:19:31 +0530

Fix rare hang attempting to generate item with spec "acquire:the_shining_one 
any".

--------------------------------------------------------------------------------
b5014a9034 | Jude Brown | 2010-01-07 21:25:57 +1000

Frenzy needles count as hasty for Cheibriados purposes.

--------------------------------------------------------------------------------
57495e5eb5 | Jude Brown | 2010-01-07 21:25:57 +1000

Unlink Slings and Throwing. (Vandal)
Using slings also trained throwing; slings and their uses don't work at
all off the throwing skill, so it seems utterly pointless to do this. I
am assuming the reasoning is that slings use stones, and stones use
throwing, but I think that's a bit confusing.

It also means that extraneous EXP is sunk into throwing with really
using throwing.

--------------------------------------------------------------------------------
00005320c5 | Jude Brown | 2010-01-07 21:25:57 +1000

Change "wrath" needles to "frenzy".
This introduces a new monster enchantment: ENCH_INSANE (or frenzy),
sends the monster neutral and berserk at the same time. The needle now
has the effect of causing this enchantment, instead of just sending
monsters berserk.

It now actually has some use, even if it is slightly risky.

--------------------------------------------------------------------------------
cf714fb898 | Johanna Ploog | 2010-01-07 12:46:51 +0100

Don't colour bad food (poisoned, mutagenic, ...) as "preferred".

--------------------------------------------------------------------------------
d6697da62b | Johanna Ploog | 2010-01-07 12:10:43 +0100

New minimap colour option for peaceful monsters, by default same as friendly.

--------------------------------------------------------------------------------
f3dd1c1ca8 | Darshan Shaligram | 2010-01-07 13:52:23 +0530

Move map sanity checks into read_maps.

--------------------------------------------------------------------------------
14ab593bd4 | Jude Brown | 2010-01-07 16:23:55 +1000

Call them "<missile> of <brand>", not "bolt of <brand>".
Using the bolt terminology provides confusion if the weapon in question
is a sling or a bow and not a crossbow, and as the relevant brands are
"frost" and "flame", it causes confusion with "bolt of cold" and "bolt
of fire".

The relevant bolt names for wands of flame and frost are "puff of flame"
and "puff of frost".

--------------------------------------------------------------------------------
3f0203caad | Darshan Shaligram | 2010-01-07 11:32:32 +0530

Throw Icicle should not be a beam for monsters (monsters could fire it through 
multiple targets).

--------------------------------------------------------------------------------
d798e969ea | Jude Brown | 2010-01-07 15:55:58 +1000

Fix bows of venom branding ammo permanently (#347).
The previous behaviour of venom weapons was to automatically brand the
ammunition regardless. This meant that temporarily branded weapons (now
using Poison Weapon) permanently branded the ammunition as such.

Instead, now check for temporary brands; the behaviour will remain the
same as before for permanent venom branded weapons.

--------------------------------------------------------------------------------
278d5e8a89 | Darshan Shaligram | 2010-01-07 11:14:16 +0530

Crawl now checks for the availability of branch ending vaults before starting 
up.

--------------------------------------------------------------------------------
f8419c6ec1 | Darshan Shaligram | 2010-01-07 10:53:37 +0530

Another Snake:$ rune test case, this time moving down the dungeon and 
generating all intermediate levels from D:1 to Snake:$ before checking for the 
rune.

--------------------------------------------------------------------------------
9dc168e1b5 | Darshan Shaligram | 2010-01-07 10:09:28 +0530

Add test case to generate branch ends and verify that runes and orb exist.

--------------------------------------------------------------------------------
4019ecbcd1 | Jude Brown | 2010-01-07 11:28:13 +1000

Re-use the Ring of Evasion brand for weapons of evasion.

--------------------------------------------------------------------------------
91a461104c | Johanna Ploog | 2010-01-06 21:59:22 +0100

Clean up shark tile.

--------------------------------------------------------------------------------
b5889b702d | Johanna Ploog | 2010-01-06 20:35:22 +0100

Tweak Nikola's tile to make him look like his hair is standing on end.

--------------------------------------------------------------------------------
6df1f8df4d | Johanna Ploog | 2010-01-06 20:01:13 +0100

Distinguish icons of neutral and good neutral monsters.

--------------------------------------------------------------------------------
e3e05b1622 | Johanna Ploog | 2010-01-06 19:29:33 +0100

Move ranged weapon tiles into new weapon/ranged folder.
Also reorder weapon tiles in dc-item.txt by skills and distribute the gem tiles
(gold, stone, rock) as appropriate into the misc and weapon/ranged folders.

--------------------------------------------------------------------------------
9adf111e4d | Johanna Ploog | 2010-01-06 19:15:43 +0100

Reuse potion icons for new needle brands: slow, sickness, paralysis, rage, ...

--------------------------------------------------------------------------------
0cbe9f7261 | Stefan O'Rear | 2010-01-06 07:42:08 -0800

Add ais523 to CREDITS.txt

--------------------------------------------------------------------------------
8005831c3a | Alex Smith | 2010-01-06 07:38:33 -0800

Don't crashdump on SIGTTIN and SIGTTOU
Neither SIGTTIN nor SIGTTOU is a fatal signal; the default handling
for them is fine for Crawl (suspending the process until a tty is
available for the input/output it needs), but before this change it
causes an (incorrect) crashdump. This change simply removes the
crashdump in this case, as there isn't actually a crash.

Signed-off-by: Stefan O'Rear <stefanor@cox.net>

--------------------------------------------------------------------------------
7fc0151d13 | Darshan Shaligram | 2010-01-06 19:47:21 +0530

Fix fractured grammar in miscast death/foo causes.

--------------------------------------------------------------------------------
65df1b1f5f | Jude Brown | 2010-01-06 23:12:01 +1000

Saving throws for new needle brands (syllogism, Twinge, others).
The current needle brands are overpowered in the fact that you can
practically paralyse or confuse anyone (including Cerebov) with little
or no effort.

Twinge has kindly provided a workable formula: it includes a 2% chance
of automatically applying the brand to monsters with less than 15 HD.
The raw formula is:

2 + random2(4 + throwing skill + blowgun to_hit) > monster HD.

Twinge also provided the following statistics of success: With no skill
you're still at 100% to proc on HD1 or HD2 (gnoll, D1 monsters), 75% on
HD3 (Sigmund), 50% on HD4 (Divessa), and 25% on HD5 (ogre). With say 4
skills as an early Assassin, you're up to 56% on an Ogre, or 33% on a
Yak.

We still may need to investigate the possibility of resistances; with
this code, there is still a chance of confusing or paralysing Cerebov,
but one would need a high Throwing skill and an extensively enchant
blowgun to achieve.

Eronarn has suggested re-using the multiple levels of resist poison, or
possibly using a new type of multi-level resistance to "organic
compounds".

Finally, descriptions will need to be updated somewhere to include
information about high skills and enchantments allowing you to overcome
monsters' resistances; this currently does not include poison or curare,
though.

--------------------------------------------------------------------------------
2d0a1ea072 | Jude Brown | 2010-01-06 20:59:35 +1000

Throwing needles does not confer status affects.
A temporary change at the minute; this is to prevent needles of wrath
being used as a re-usable source of berserk by having the player throw
it at themselves.

--------------------------------------------------------------------------------
01618296bf | Robert Vollmert | 2010-01-06 11:51:54 +0100

Store turn count in message items.
Also remove field cleared_after.

--------------------------------------------------------------------------------
a997ac598f | Robert Vollmert | 2010-01-06 11:45:23 +0100

Merge branch 'master' into messagewindow

--------------------------------------------------------------------------------
4bd3b68069 | Jude Brown | 2010-01-06 20:36:50 +1000

Reduce stack sizes of non-poisoned needles.

--------------------------------------------------------------------------------
e02bcd2c58 | Jude Brown | 2010-01-06 19:14:26 +1000

Fix "0 spell level left". (#335)

--------------------------------------------------------------------------------
d1d617a234 | Jude Brown | 2010-01-06 19:06:25 +1000

Give open/close messages full stops. (#336)

--------------------------------------------------------------------------------
eda4212fbf | Vsevolod Kozlov | 2010-01-06 11:49:30 +0300

Fix a typo in closing doors while levitating.

--------------------------------------------------------------------------------
afd40ce114 | Johanna Ploog | 2010-01-06 08:47:22 +0100

Fix more typos.

--------------------------------------------------------------------------------
8535e71feb | Johanna Ploog | 2010-01-06 08:07:19 +0100

Fix a typo, remove some of the more minor changes from the change log.

--------------------------------------------------------------------------------
7b3d552160 | Johanna Ploog | 2010-01-06 08:07:19 +0100

Update the change log.

--------------------------------------------------------------------------------
2505636ce4 | Johanna Ploog | 2010-01-06 08:07:19 +0100

Indentation fixes.

--------------------------------------------------------------------------------
26c21c4e8c | Jude Brown | 2010-01-06 13:25:24 +1000

Change Mara's depth (greensnark)
He's not much of a threat at 22+. Made his depth slightly less than
Margery's, as he does not come with a band of hell knights, and he is
slightly less buff than her.

--------------------------------------------------------------------------------
15849cecaa | Adam Borowski | 2010-01-06 01:45:16 +0100

Auto-id rings of regeneration (Vandal).

--------------------------------------------------------------------------------
666caed849 | Darshan Shaligram | 2010-01-05 21:36:46 +0530

Make seen weapon/armour load conditional on v>=15.1 (rob).

--------------------------------------------------------------------------------
75767212fc | Darshan Shaligram | 2010-01-05 21:23:43 +0530

Increment minor version for beholder save change, since cdo's current save 
version was already 15.1 as of b1ee54b1.

--------------------------------------------------------------------------------
465c2fbeb4 | Johanna Ploog | 2010-01-05 16:41:37 +0100

Fix exclusions not being listed on the overmap screen.

--------------------------------------------------------------------------------
91ed6f9744 | Robert Vollmert | 2010-01-05 16:25:22 +0100

Remove some more old message window code from tiles.

--------------------------------------------------------------------------------
6387200174 | Adam Borowski | 2010-01-05 14:07:33 +0100

Make holy scourges have same handedness as unblessed demon whips.

--------------------------------------------------------------------------------
150e490398 | Stefan O'Rear | 2010-01-05 00:28:18 -0800

Fix marshalling of beholders and unrandarts (#338)
Beholders were getting saved as signed bytes, so any mermaid with a monster
index higher than 127 would come out as a negative number, crashes ensuing.

Only the first 50 unrandart existance entries were getting saved, allowing
roughly 1/3 of the unrandarts to be created multiple times.

--------------------------------------------------------------------------------
b7392f4332 | Stefan O'Rear | 2010-01-04 23:48:39 -0800

Remove some old save code
I would appreciate it if people would use TAG_MINOR constants instead of
just sprinkling magic numbers in the save code.  Stuff like this makes it
impossible to systematically expunge old minor code, since we do that by
looking for uses of the removed TAG_MINOR constants.

--------------------------------------------------------------------------------
d4ad9bb7b6 | Darshan Shaligram | 2010-01-05 03:28:43 +0530

Fix Shoals:$ sometimes producing huts with entrances facing each other, so that 
both huts are isolated from the rest of the level.

--------------------------------------------------------------------------------
ed85466e02 | Darshan Shaligram | 2010-01-05 01:34:27 +0530

Fix Shoal:$ generation bugs: stairs could be surrounded by deep water, hut 
entrances could be blocked by rock.
shoal-hut.lua test generates 1k Shoal:$ levels and verifies that the levels 
pass sanity tests.

--------------------------------------------------------------------------------
e88370a40d | Johanna Ploog | 2010-01-04 20:41:43 +0100

Add a comment.

--------------------------------------------------------------------------------
64ae3b98cc | Johanna Ploog | 2010-01-04 20:41:42 +0100

Fix 2903951: duplicate letters in the Ctrl-X menu.

--------------------------------------------------------------------------------
8084c80b47 | Darshan Shaligram | 2010-01-04 23:06:10 +0530

Remove unused static fn (Napkin).

--------------------------------------------------------------------------------
b1ee54b1fe | Darshan Shaligram | 2010-01-04 22:48:24 +0530

Move to a more compile-safe way of defining species skill aptitudes.
This also fixes broken aptitudes after Darts skill was removed.

--------------------------------------------------------------------------------
a9610912e7 | Adam Borowski | 2010-01-04 16:24:23 +0100

Bias non-divine weapon acquirement towards better items.

--------------------------------------------------------------------------------
cce4866b9b | Robert Vollmert | 2010-01-04 15:43:07 +0100

Fix crash in line_reader.

--------------------------------------------------------------------------------
ad552ae673 | Adam Borowski | 2010-01-04 15:42:43 +0100

Try to avoid repeats when acquiring already seen weapons/armour.
Weapons: both type and brand is handled, separately.  This means,
    once you've seen any lajatang, there is no more any bonus to
    get them -- you'll get 5 times as many quarterstaves, brand
    repeat protection comes only within the type.

Armour: currently only brand is handled, type will have to be merged
    with the old code which suffered from no information about stash.

--------------------------------------------------------------------------------
f1fdc16676 | Darshan Shaligram | 2010-01-04 20:08:44 +0530

[Mantis 331] Fix inverted chunk-stacking logic that caused missiles of 
different brands to stack (syllogism).

--------------------------------------------------------------------------------
22c5ea7fdd | Robert Vollmert | 2010-01-04 15:34:42 +0100

Output prompts directly.

--------------------------------------------------------------------------------
1665431340 | Robert Vollmert | 2010-01-04 15:12:18 +0100

Make cursor placement also work for non-full msgwin.

--------------------------------------------------------------------------------
dbc5b31287 | Robert Vollmert | 2010-01-04 14:53:51 +0100

Merge branch 'master' into messagewindow
Conflicts:
	crawl-ref/source/libgui.cc
	crawl-ref/source/libgui.h

--------------------------------------------------------------------------------
e74d8b6975 | Robert Vollmert | 2010-01-04 14:51:24 +0100

Update message.cc todo list.

--------------------------------------------------------------------------------
31ec56c182 | Robert Vollmert | 2010-01-04 14:47:39 +0100

Replace option delay_message_clear by clear_messages.
It's not implemented yet.

--------------------------------------------------------------------------------
9767ea5576 | Robert Vollmert | 2010-01-04 14:44:24 +0100

Remove tiles message_out.

--------------------------------------------------------------------------------
7b2434cfae | Robert Vollmert | 2010-01-04 14:43:33 +0100

Make print_formatted_paragraph a straight call to mpr.
It should be removed entirely, but I want to reduce merge
conflicts for a bit.

--------------------------------------------------------------------------------
5fa07b8e6e | Robert Vollmert | 2010-01-04 14:34:36 +0100

Display message window from redraw_screen.
Should fix the message window not filling after say
leaving the inventory screen.

--------------------------------------------------------------------------------
e36ed2cdb3 | Robert Vollmert | 2010-01-04 14:24:09 +0100

Update TODO list.

--------------------------------------------------------------------------------
30dc9be384 | Darshan Shaligram | 2010-01-04 18:15:58 +0530

Fix skill display bug with Darts skill removed.

--------------------------------------------------------------------------------
351147f561 | Adam Borowski | 2010-01-04 13:34:04 +0100

Track all seen weapon/armour base types and their brands, for acq purposes.

--------------------------------------------------------------------------------
21e755bcfd | Darshan Shaligram | 2010-01-04 16:57:44 +0530

Weaken merfolk javelineers slightly (msl cost increased to 100%).

--------------------------------------------------------------------------------
a84fefbc09 | Darshan Shaligram | 2010-01-04 16:57:00 +0530

Fix javelineers and master archers producing warnings about not using attack 
energy when they attack in melee (due, kilobyte).

--------------------------------------------------------------------------------
7403a3dfc9 | Jude Brown | 2010-01-04 20:53:14 +1000

Fix skills order issue with Sage card. (sorear)
This commit bumps TAG_MAJOR_VERSION.

--------------------------------------------------------------------------------
37ca61fa33 | Jude Brown | 2010-01-04 20:42:01 +1000

Fix chaos beams causing "software bugs nibble at your feet" (Darshan)
This was caused by a switch statement not handling BEAM_BERSERK and
BEAM_MIGHT.

--------------------------------------------------------------------------------
337f1de1f6 | Stefan O'Rear | 2010-01-04 02:41:32 -0800

Restore poisoned missiles to their rightful glory
Poisoned missiles shot by the player have been much weaker since pre-Soup
days, and the best explanation I know is that this is to compensate for
the existance of permanent branding spells.  Now that those are gone, we
don't need the confusing power disparity.

--------------------------------------------------------------------------------
bc341fd60b | Stefan O'Rear | 2010-01-04 02:25:51 -0800

Tweak wording on SPMSL_PENETRATION (dshaligram)

--------------------------------------------------------------------------------
e19f1b69fc | Stefan O'Rear | 2010-01-04 02:21:48 -0800

Make monster berserk a bit more consistent with player (dshaligram)
Previously, they were getting +50% HP and no healing.  Now, they get +100%
HP and no healing.  They still use 0.2 timeout rules though - no penalty
for walking around.

--------------------------------------------------------------------------------
20956f9f4c | Adam Borowski | 2010-01-04 11:12:56 +0100

Let chunks stack, if their age is similar.

--------------------------------------------------------------------------------
0c8fe019dd | Darshan Shaligram | 2010-01-04 03:44:34 +0530

Fix Crawl assert if user tries to repeat a command with Enter macroed to \{13} 
(Eifeltrampel).

--------------------------------------------------------------------------------
4294ce7ebf | Enne Walker | 2010-01-03 16:59:23 -0500

[212] Fixing prompts clearing screen in tiles.
The line reader was always switching back to GOTO_CRT.  When receiving
input from the message window, this ended up causing the screen to blank
and switch to the CRT layer.  Adding a function get the current cursor
region allows the line reader to not change regions.

--------------------------------------------------------------------------------
1d312f238e | Robert Vollmert | 2010-01-03 22:28:06 +0100

Move cursor back after printing line.
Fixes prompts to some extent.

--------------------------------------------------------------------------------
49840080f1 | Haran Pilpel | 2010-01-03 23:27:14 +0200

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
a549338acb | Haran Pilpel | 2010-01-03 23:26:23 +0200

Issue 318: artificers with rods of striking should start out wielding them 
(this is done regardless of M&F skill because they have no other weapon.)

--------------------------------------------------------------------------------
615250dffe | Robert Vollmert | 2010-01-03 21:56:47 +0100

Merge branch 'master' into messagewindow
Conflicts:
	crawl-ref/source/message.cc

--------------------------------------------------------------------------------
ce68320378 | Adam Borowski | 2010-01-03 21:45:00 +0100

Sort the Book of Brands by level.

--------------------------------------------------------------------------------
494a04fef6 | Eino Keskitalo | 2010-01-03 22:31:13 +0200

A small overflow altar for Yred.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
cf82459f23 | Darshan Shaligram | 2010-01-04 01:56:10 +0530

Fix two-weaponing monsters throwing their offhand weapon in combat.

--------------------------------------------------------------------------------
25100ac4c4 | Eino Keskitalo | 2010-01-03 22:18:39 +0200

Temple overflow altar vaults for Elyvilon.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6f8b0a36cc | Eino Keskitalo | 2010-01-03 22:18:38 +0200

Move a non-overflow altar out of the overflow section.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b8fc8202e0 | Adam Borowski | 2010-01-03 21:03:04 +0100

IOOD: use the actual (floating point) ray traced.

--------------------------------------------------------------------------------
da5a6f678e | Haran Pilpel | 2010-01-03 21:47:34 +0200

Type-identify amulets of clarity when you resist confusion based on them; this 
works even if you're drinking an unIDed !oConfusion or similar, because nowhere 
else that I know of gives that exact message.

--------------------------------------------------------------------------------
5ee20d6f13 | Enne Walker | 2010-01-03 14:38:35 -0500

[291] New slime creature tiles (purge).
This adds a large and a titanic slime creature tile.  Slightly edited
from purge's original versions to be more vertically centered.

--------------------------------------------------------------------------------
cf69ea8402 | David Lawrence Ramsey | 2010-01-03 12:49:46 -0600

Make dolinks.sh create docs/ links.
This fixes generation of aptitudes.txt when using domake.sh.

--------------------------------------------------------------------------------
be54114465 | Eino Keskitalo | 2010-01-03 20:39:28 +0200

Trim now unnecessary logic for darts, monsters and launchers.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0847ae964a | Eino Keskitalo | 2010-01-03 20:23:58 +0200

Don't mark darts as having launcher type. (Napkin)
Had at least the effect of saying "works better with elven launchers" when 
looking at elven darts description.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
030db706c8 | Eino Keskitalo | 2010-01-03 20:23:57 +0200

Tweak sling bullet description. (Vandal)
It's now a bit more informative about the bullets being better than stones.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
cc6ada7def | Adam Borowski | 2010-01-03 18:49:01 +0100

Desc fix: Chei rewards only being full+, not merely satiated.

--------------------------------------------------------------------------------
27ac9ff237 | Darshan Shaligram | 2010-01-03 22:59:40 +0530

Fix game crash on generating needles.

--------------------------------------------------------------------------------
087f00c2fb | Darshan Shaligram | 2010-01-03 22:40:38 +0530

Fix alignment of unarmed combat skill column.

--------------------------------------------------------------------------------
5fa1b6f847 | Darshan Shaligram | 2010-01-03 22:26:57 +0530

Generate aptitudes.txt as part of the build, remove generated file from repo.

--------------------------------------------------------------------------------
5568306ba8 | David Lawrence Ramsey | 2010-01-03 08:03:55 -0600

Update Halflings' Shields aptitude in aptitudes.txt.

--------------------------------------------------------------------------------
7a82217543 | Jude Brown | 2010-01-03 23:54:26 +1000

Make sling bullets as common as bolts.
I discussed this with dpeg a while ago when doing a slings Kobold Arcane
Marksman. Sling bullets generate too sparsely for slings to be a viable
build, and using stones is too underpowered.

In combination with the previous commit, this should hopefully go some
way to improving sling builds.

--------------------------------------------------------------------------------
d629390bb0 | Jude Brown | 2010-01-03 23:54:26 +1000

Give Hunters using slings Bucklers, shield apt. (Vandal).
The reasoning being is that slings no longer receive penalties for using
with bucklers, and allowing hunters that use slings to start with
bucklers makes them more attractive. Slings are currently a weak build,
so hopefully this should do something to help improve them.

This commit also improves Halfling's shields apt from 130 to 90, as
suggested by Vandal. I've left Kobold shield apts the same, as they
already have other bonuses, and giving Halfling's something special and
unique might help them on their way to the gallows.

--------------------------------------------------------------------------------
8c9938f88a | Jude Brown | 2010-01-03 23:54:25 +1000

Branded and positively enchanted missiles are "glowing". (Eronarn)

--------------------------------------------------------------------------------
196415dd32 | Jude Brown | 2010-01-03 23:54:25 +1000

New (ranged) weapon brand: evasion.
This replaces "protection" on all ranged weapons, and will only generate
on those.

This commit also fixes shopping values for the new needle brands.

--------------------------------------------------------------------------------
a0c81e59f0 | Jude Brown | 2010-01-03 23:54:24 +1000

New needle brands! Sleep, paralysis, rage, confusion, sickness, slowing.
The numbers and the names will likely need tweaking. Better throwing
skill and blowgun enchantment will increase the duration of most of the
effects, except for sleep and rage.

--------------------------------------------------------------------------------
865ad15a82 | Jude Brown | 2010-01-03 23:54:24 +1000

Fix put_to_sleep, implement for monsters.

--------------------------------------------------------------------------------
12e2dc2661 | Johanna Ploog | 2010-01-03 12:57:34 +0100

Move recently removed tiles into UNUSED subfolders.

--------------------------------------------------------------------------------
f72697dec6 | Darshan Shaligram | 2010-01-03 16:27:33 +0530

Give vanilla merfolk throwing spears instead of javelins.

--------------------------------------------------------------------------------
3afcc226b5 | Darshan Shaligram | 2010-01-03 16:26:23 +0530

Repair monster ability to use throwing weapons.
Monsters were unable to use throwing weapons in inventory, and would reject 
throwing weapons at generation time, fixed.

--------------------------------------------------------------------------------
804b380b9b | Jude Brown | 2010-01-03 18:45:00 +1000

D:3 is too early for an iron golem, patrolling or not (##crawl).
They do 32 damage in one hit. This is basically instant death,
especially if you round a corner and don't see it in time.

--------------------------------------------------------------------------------
7c4a8778de | Jude Brown | 2010-01-03 17:57:40 +1000

Don't refer to Cheibriados as "he". (Mu)

--------------------------------------------------------------------------------
0c24cb6711 | Stefan O'Rear | 2010-01-02 23:56:35 -0800

Rods don't need to block shield acquirement now

--------------------------------------------------------------------------------
2f1d5b4be9 | Stefan O'Rear | 2010-01-02 23:53:49 -0800

Unbreak rod descriptions

--------------------------------------------------------------------------------
45257acf3e | Stefan O'Rear | 2010-01-02 23:53:15 -0800

Rods function in melee as a +x/+x club (#300)

--------------------------------------------------------------------------------
ecb85a0402 | Stefan O'Rear | 2010-01-02 23:21:15 -0800

Fix extra space in staff description

--------------------------------------------------------------------------------
3f5f106613 | Stefan O'Rear | 2010-01-02 23:20:47 -0800

Tweak rod enchantment formula

--------------------------------------------------------------------------------
fb05fa7e72 | Stefan O'Rear | 2010-01-02 21:11:42 -0800

Oops!  Ugly things are supposed to be fast at moving, not attacking (dolorous 
caught)

--------------------------------------------------------------------------------
15d9924a92 | David Lawrence Ramsey | 2010-01-02 22:21:56 -0600

Fix comment.

--------------------------------------------------------------------------------
49cbc40fb5 | David Ploog | 2010-01-03 05:06:00 +0100

Make sure an ossuary entry isn't hidden.

--------------------------------------------------------------------------------
2b9aeac74c | Stefan O'Rear | 2010-01-02 19:12:50 -0800

Give ugly things fixed speed (Eronarn)
18:58 < Eronarn> All of these are "weird creature with random described attacks"
18:58 < Eronarn> Chaos spawn get a random brand, abominations get random speed,
                 ugly things get the color thing. This is good differentiation
18:58 < Eronarn> Making ugly things able to have random speed too just blurs
                 them together

I agree with this line of reasoning.  Also, it prevents using speed differences
to separate packs.

--------------------------------------------------------------------------------
6ab8afedb1 | Stefan O'Rear | 2010-01-02 19:12:49 -0800

Increase effects of Recharging on rods and allow it to affect enchantment 
(Eronarn).

--------------------------------------------------------------------------------
0dd2649516 | Jude Brown | 2010-01-03 12:58:29 +1000

Tweak vault8_construction monsters (Mu).
A swap in the SUBST lines was causing monsters in the "construction"
area to never actually be assigned.

--------------------------------------------------------------------------------
22019ceee8 | Stefan O'Rear | 2010-01-02 17:50:56 -0800

Rods have an intrinsic recharge rate (#300)
Using Eronarn's proposed system.  Rods get a baseline of 4 MP per 100
turns; every rod has an enchantment, which adds to this.  On top of
that, you get the old Evocations bonus.  At maxed Evocations with a
+9 rod, you gain 52 MP per 100 turns.

Unfortunately, all four of the multi-purpose fields were already used
for rods, so I had to spill enchantment into props.

--------------------------------------------------------------------------------
985744902f | Steven Noonan | 2010-01-02 16:08:59 -0800

makefile: don't check .cflags or *.d files on clean targets
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
41a83b477c | Steven Noonan | 2010-01-02 15:45:15 -0800

makefile: fix build of util/levcomp.*.o
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6e6c67f02a | Enne Walker | 2010-01-02 18:11:56 -0500

Renaming ambiguous rltiles command.
%end is now called %end_ctg.

--------------------------------------------------------------------------------
99aba816a6 | Stefan O'Rear | 2010-01-02 15:08:50 -0800

Axe shield leakage [Mantis 300]

--------------------------------------------------------------------------------
74a7f08509 | Stefan O'Rear | 2010-01-02 15:08:50 -0800

Decouple rod recharge from availability of player MP (Mantis 300)

--------------------------------------------------------------------------------
d54de77e23 | Steven Noonan | 2010-01-02 14:07:55 -0800

makefile: add depfile regeneration rule
Due to earlier changes, this rule is only executed when the .d file
exists but it's out-of-date. For initial .d generation, the object
compilation rule is executed instead.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
96237179cd | Steven Noonan | 2010-01-02 14:07:31 -0800

makefile: use QUIET_CC when compiling *.m files
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
23703df3d4 | Steven Noonan | 2010-01-02 14:02:18 -0800

makefile: use simpler build rule syntax
Bah, we don't even need patsubst at all. Why didn't I read
the GNU Make manual before?

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
14960780da | Steven Noonan | 2010-01-02 14:01:42 -0800

makefile: only include depfiles that exist
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
286ada1ca2 | Steven Noonan | 2010-01-02 13:42:37 -0800

makefile: use patsubst instead of subst for depgen
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0b1331a926 | Stefan O'Rear | 2010-01-02 12:59:42 -0800

Describe red wasp attack (dpeg)

--------------------------------------------------------------------------------
86db07d18c | David Ploog | 2010-01-02 21:39:32 +0100

Added a comment to gold acquirement.

--------------------------------------------------------------------------------
4688d21089 | Darshan Shaligram | 2010-01-03 02:01:46 +0530

New gold acquirement formula (dpeg).

--------------------------------------------------------------------------------
2f88dcd080 | Darshan Shaligram | 2010-01-02 23:17:13 +0530

Corruption changes (dpeg). Corruption is now usable only once-per-level, but 
produces only neutrals, no hostiles, and applies all corruption effects close 
to the player instead of using random seed points scattered over the level.
The Zot orb antechambers get a little more protection from being 
short-circuited completely by Corruption.

--------------------------------------------------------------------------------
b6fcb6516c | Johanna Ploog | 2010-01-02 17:44:29 +0100

Give player-zapped wand bolts the "friendly" attitude. Fixes bug 0000244 (Xom 
being amused by the player zapping beneficial wands at himself.)

--------------------------------------------------------------------------------
830ba2b653 | Jude Brown | 2010-01-02 18:03:29 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
2a673e4ca8 | Jude Brown | 2010-01-02 18:02:28 +1000

Fix feat library errors here, too (sorear).

--------------------------------------------------------------------------------
8c466f0fa4 | Jude Brown | 2010-01-02 18:02:00 +1000

Convert to feat.has_solid_floor (sorear).

--------------------------------------------------------------------------------
0f193b5d06 | Jude Brown | 2010-01-02 17:56:56 +1000

Merge branch 'master' into wizlab
Conflicts:
	crawl-ref/source/dat/wizlab.des

--------------------------------------------------------------------------------
81fb320813 | Jude Brown | 2010-01-02 17:50:29 +1000

Revert "Preparation for merging into master."
This reverts commit 340043be9b4c5b7abff48236ee390d04bde989dd.

--------------------------------------------------------------------------------
5456eceb4f | Jude Brown | 2010-01-02 17:22:27 +1000

Change badly worded description (doy)
"Tummy" (and "tummies") are inappropriate in this context.

--------------------------------------------------------------------------------
cc5602c5e8 | Jude Brown | 2010-01-02 17:06:11 +1000

Fix MP+X property in unrands (Mantis #294, Vandal).
calc_mp() only seemed to be called when games are loaded, meaning that
putting on the unrand Hat of Pondering did not cause the player's max MP
to immediately increase.

Saving and reloading fixed this. The same happened with removing the
hat: the player's max MP stays at the same value as when the hat was
worn. Saving and reloading also fixed this.

Fixed this by calling calc_mp(), and also cleaned up the code slightly.
It still doesn't seem to be printing the "Your magic
increases/decreases" messages, however.

--------------------------------------------------------------------------------
2bd7c49b57 | Darshan Shaligram | 2010-01-02 05:42:28 +0530

[Mantis 299] Fix door-blocking messages using pointer into freed memory 
(syllogism).

--------------------------------------------------------------------------------
a9f4df1bf8 | Jude Brown | 2010-01-02 09:40:20 +1000

Tweak open sea sewer mermaids. (Keskitalo)
De-buff them slightly, as mermaids have been given a buff recently. Also
mark them as either sickly or diseased (malarious) in order to emphasise
that they are weaker than normal mermaids would be (which they now are).

--------------------------------------------------------------------------------
e122135c24 | Darshan Shaligram | 2010-01-02 04:41:10 +0530

Allow Corruption to be used in Hells and Pan.

--------------------------------------------------------------------------------
ba3af17065 | Jude Brown | 2010-01-02 08:51:57 +1000

Unban TrAM, OgAM, mark as restricted instead.

--------------------------------------------------------------------------------
cf0d62b28f | Steven Noonan | 2010-01-01 13:54:36 -0800

makefile: don't generate dependencies for AppHdr.h.gch
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
9e2aae8e87 | Steven Noonan | 2010-01-01 13:51:03 -0800

makefile: greatly simplify dependency generation
I feel ashamed to have overlooked this awesome trick.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bccd94fcb6 | Darshan Shaligram | 2010-01-01 22:29:24 +0530

Reduce chances of Shoals island rings further.

--------------------------------------------------------------------------------
9e0813ec9b | Jude Brown | 2010-01-02 00:13:03 +1000

Always initialise door offset (Napkin).
Don't think there are any instances where this could be used
uninitialised, but it's probably a bad idea not to set it to 0 when doing
so would cause no harm.

--------------------------------------------------------------------------------
3e5df64c76 | Jude Brown | 2010-01-02 00:02:40 +1000

Fix tiles compile, mark Poison Ammunition unused. (Napkin)

--------------------------------------------------------------------------------
234b5adf1d | Jude Brown | 2010-01-02 00:00:46 +1000

Remove wrapper for Lua map markers.

--------------------------------------------------------------------------------
27eb1eb696 | Jude Brown | 2010-01-01 23:04:17 +1000

Another ranged combat target: branded launcher + branded ammo.
This specifically allows for the combination of poison + flaming arrows,
so that Nessos is not unfairly nerfed. Otherwise, launcher brands will
not affect ammunition at all. They will only apply to unbranded
ammunition.

I'm not too sure on this myself. The idea that a flaming bow does not
affect a missile of frost, or vice versa, a freezing bow does not affect
a missile of flame is a little bit odd. It's possible that I
misunderstood, and if so, this commit should be reverted.

--------------------------------------------------------------------------------
d9875be622 | Jude Brown | 2010-01-01 22:56:07 +1000

Adjust launcher generation brands.
Only crossbows may generate with penetration, and only bows may generate
with reaping. I have also decreased the chances of vorpal appearing on a
launcher.

Hopefully I haven't broken the logic here too much.

--------------------------------------------------------------------------------
b0c2870e78 | Jude Brown | 2010-01-01 22:22:53 +1000

Change temporary Pain brand cease message.
I've chaned it to "seems less pained", which makes more sense that
"seems less painful": it's described as being in pain initially, rather
than causing pain to others.

--------------------------------------------------------------------------------
7e0fff0108 | Jude Brown | 2010-01-01 22:21:27 +1000

Continuation of the range combat overhaul: branding spells.
As outlined in dpeg's ranged combat overhaul, branding spells should no
longer be permanant, nor apply directly to the ammunition. This commit
removes all previous "<X> Ammunition" spells, including the original
"Poison Ammunition" spell.

Instead, branding ammunition is now done via the launcher and the
currently existent weapon branding spells. Currently, those that can be
applied to a launcher are: Fire Brand, Freezing Aura and Poison Weapon.
There is the capacity of Excruciating Wounds to also be applied, but
this would require the addition of the Pain ego for missiles, of which
the mechanics would need to be decided upon first.

Like temporary brands on weapons currently, these brands on launchers
are permanantly affixable by using a scroll of vorpalise weapon.

This commit also overhauls the Arcane Marksman class. It began by
removing the non-existent ammunition spells; this left Devastating
Missiles with two spells: haste and deflect missiles. On reflection, I
decided to delete the book instead.

The Book of Elemental Missiles was easily adjusted by replacing the
three branding spells by the existent (and aforementioned) branding
spells. As there are no (according to the 0.6 ranged combat overhaul
spec) spells intended for use with translocation effects on missiles,
this left The Book of Warped Missiles rather empty.

Attempts were made (with discussion with Eronarn on IRC) to work out
something else to fill up the Book of Warped Missiles with, but I made
the decision to get rid it instead, as the only good suggestions
basically made it the Book of Spatial Translocations, and in that case,
the player may as well select the warper class.

We also discussed whether or not to remove Poison Weapon from the
Elemental starting book; I decided it was best to leave it now, but
increase its level from 2 to 3, to give the book more of a range of
levels (starting a Spriggan Arcane Marksman had all the spells listed as
"excellent" or "very good"; more on this shortly). I also decided that
Repel Missiles is over-used in this context, and upon Eronarn's
suggestion and sorear's agreement, have replaced it with Cause Fear.

I think this will provide for interesting game play, and that the level
of the spell is suitably high enough for it to not be abused. I also
made the executive decision that "Elemental Missiles" was no longer an
appropriate title, as it didn't contain any ammunition-specific spells
any longer, and have renamed the book to the "Book of Brands".

It is now:

Book of Brands

Level 1, Corona
Level 2, Swiftness
Level 2, Fire Brand
Level 2, Freezing Aura
Level 3, Poison Weapon
Level 5, Cause Fear

As the Arcane Marksmen class is now launcher-specific, rather than
ammunition-specific, I have adjusted it to no longer give Hill Orcs,
Sludge Elves and Merfolk javelins and throwing nets (they get bows like
everyone else), and made the decision to ban Trolls and Ogres from the
class altogether.

The reasoning here is that they have bad launcher aptitudes, and as they
are described as "marksmen", it makes no sense to give them a book full
of launcher-specific spells and some large rocks and throwing nets. This
change could, of course, be reverted, and they could simply be given
bows, crossbows or slings as relevant, in line with all other races
being given launchers and ammunition.

I have adjusted the starting skill levels for enchantments, spell-
casting and dodging to that of Crusaders. I have also removed Poison
Ammunition from the Book of Envenomations, and replaced it with Poison
Weapon instead.

Finally, I have increased TAG_MAJOR_VERSION to 14.

--------------------------------------------------------------------------------
a60ff1ae3b | Adam Borowski | 2010-01-01 04:54:23 +0100

Fix "the your".

--------------------------------------------------------------------------------
8e554990d1 | Darshan Shaligram | 2010-01-01 06:03:44 +0530

Don't allow Ilsuiw to submerge either, pending AI fixes to submerged creatures.

--------------------------------------------------------------------------------
7cdbc2d289 | Adam Borowski | 2010-01-01 01:26:19 +0100

Properly bracket va_copy() with va_end().  Don't leak saved args.

--------------------------------------------------------------------------------
ef58eb82c6 | Darshan Shaligram | 2010-01-01 02:58:24 +0530

Allow Shoals tide to wash through doorways, increase incoming tide speed when 
call tide is active.

--------------------------------------------------------------------------------
5a78294f6e | Darshan Shaligram | 2010-01-01 02:44:31 +0530

Guarantee a small guard around the shoal rune.

--------------------------------------------------------------------------------
60c15d1dff | Darshan Shaligram | 2010-01-01 01:16:43 +0530

Don't allow kraken tentacles to use stairs.

--------------------------------------------------------------------------------
1f798f3b7b | Darshan Shaligram | 2010-01-01 01:14:49 +0530

Don't allow NPC merfolk to submerge (sirens and mermaids can still submerge).

--------------------------------------------------------------------------------
7c6281f089 | Adam Borowski | 2009-12-31 17:16:38 +0100

Allow javelins to be poisoned.

--------------------------------------------------------------------------------
b592463f64 | Jude Brown | 2010-01-01 00:09:45 +1000

And give that statue a nice tile.

--------------------------------------------------------------------------------
2e145eebe4 | Adam Borowski | 2009-12-31 15:05:57 +0100

A lone statue that launches orbs.

--------------------------------------------------------------------------------
c48d7313e2 | Adam Borowski | 2009-12-31 14:50:41 +0100

Move IMB back to the Book of Power (greensnark, due).

--------------------------------------------------------------------------------
f8ab5653d8 | Adam Borowski | 2009-12-31 14:50:26 +0100

Merge branch 'iood'

--------------------------------------------------------------------------------
9939a9514e | Adam Borowski | 2009-12-31 14:45:31 +0100

Apply a stepdown on power to make damage more constant.

--------------------------------------------------------------------------------
1b66d630c1 | Jude Brown | 2009-12-31 23:30:03 +1000

Update deep elves' crossbow aptitudes.

--------------------------------------------------------------------------------
2cc9f58a30 | Jude Brown | 2009-12-31 23:21:13 +1000

Remove speed from randomly generated launchers. (dpeg)
Artefacts and unrands can still use the speed brand, but this will now
only show up on those, rather than on normal ego weapons.

--------------------------------------------------------------------------------
584c35091f | Jude Brown | 2009-12-31 23:21:13 +1000

Update apt table to remove darts.

--------------------------------------------------------------------------------
20de84ea52 | Jude Brown | 2009-12-31 23:21:12 +1000

Subsume Darts skill into Throwing.
Instances where Darts skill was previously check (such as blow guns,
throwing of darts, etc), now check the throwing skill instead. This
causes a few problems:

* missile acquirement is possibly skewed now
* aptitudes are now wrong, and should be adjusted

This doesn't include code to compensate for large monsters that used to
have a good throwing skills and bad dart skills now using the lower
throwing skill, and vice versa, but it's a major start.

TAG_MAJOR_VERSION was bumped in the previous commit. Hopefully I haven't
broken anything too major, but if so, the commit can be reverted.

--------------------------------------------------------------------------------
b194faa1f7 | Jude Brown | 2009-12-31 23:21:11 +1000

Increase deep elf crossbows apt to 110.
With hand crossbows removed, it makes no sense for this to be one of
their lowest skills. Increased as per dpeg's ranged combat overaul plan.

--------------------------------------------------------------------------------
bdef58ca99 | Jude Brown | 2009-12-31 23:21:11 +1000

Remove hand crossbows.
This involves a lot of changes, and also increments TAG_MAJOR_VERSION to
13. The unrand "Sniper" is now a crossbow (hopefully its current title
is still suitable for this task), and thieves no longer start with hand
crossbows (but still retain darts).

Wanderers with crossbow skills will now get a crossbow and bolts. This
may be overpowered, but I didn't want to change the code here too much.
It can always be adjusted.

This removes the "quiver_type" enum from enum.h, and uses NUM_AMMO in
the player.h quiver vector instead. Random elves that generated with
hand crossbows before no longer do so, and this has not been replaced by
normal crossbows.

I hope that's everything!

--------------------------------------------------------------------------------
03293efdca | Jude Brown | 2009-12-31 23:21:10 +1000

Start of range combat overhaul: ego changes. (dpeg)
As per http://crawl.develz.org/wiki/doku.php?id=DCSS%3Aissue%3A41. This
means that the following combinations of missile and brand are the only
allowed combinations:

    Needles: poison, curare (as now).
    Stones: Never generated with brands, but slings can be branded.
    Large Rocks: No brands whatsoever.
    Javelins: Returning, Penetration, Steel, Silver, Chaos.
    Nets: Steel, Silver, Chaos.
    Darts: All brands except for Returning, Penetration.
    Bullets: Flame, Frost, Poison, Chaos, Steel, Silver, Exploding.
    Arrows: Flame, Frost, Poison, Chaos, Reaping, Dispersal.
    Bolts: Flame, Frost, Poison, Chaos, Steel, Silver, Penetration.

Non-missile weapons can be branded as per spells.

--------------------------------------------------------------------------------
d9455c8463 | Adam Borowski | 2009-12-31 14:19:44 +0100

Don't give exp for kills by neutrals.

--------------------------------------------------------------------------------
28e38031fb | Darshan Shaligram | 2009-12-31 18:44:23 +0530

Reduce experience for base merfolk.

--------------------------------------------------------------------------------
8d8a727b80 | Adam Borowski | 2009-12-31 14:08:54 +0100

IOOD vs shields: blocks (boo!) and reflection (yay!)

--------------------------------------------------------------------------------
46a63f7912 | Stefan O'Rear | 2009-12-31 04:22:14 -0800

Nerf monster airstrike damage variance (bookofjude)

--------------------------------------------------------------------------------
f3a3978b98 | Darshan Shaligram | 2009-12-31 17:37:55 +0530

Adjust Shoals monster depths and tweak new Shoals monsters to reduce experience 
overdose in the Shoals.
Weaken impalers and javelineers. They should still be a threat, but more in 
line with the Shoals depth.

--------------------------------------------------------------------------------
66a86ff1f0 | Stefan O'Rear | 2009-12-31 04:05:19 -0800

Give tentacles zombie damage. (syllogism)

--------------------------------------------------------------------------------
17d55a7806 | Stefan O'Rear | 2009-12-31 03:15:40 -0800

Make 100% of Cocytus fish undead.  (dshaligram)

--------------------------------------------------------------------------------
721260a4ac | Stefan O'Rear | 2009-12-31 03:15:40 -0800

Kraken and jellyfish are invertibrates

--------------------------------------------------------------------------------
1013e7337c | Johanna Ploog | 2009-12-31 12:34:41 +0100

Make Crawl use corpse tiles for aquatic monsters.

--------------------------------------------------------------------------------
76230985d8 | Darshan Shaligram | 2009-12-31 15:13:49 +0530

Adjust shoals monster generation to make top tier merfolk rarer.

--------------------------------------------------------------------------------
589582ad4d | Darshan Shaligram | 2009-12-31 15:06:35 +0530

Reduce monster count in Shoal huts.

--------------------------------------------------------------------------------
d6bebce0e9 | Darshan Shaligram | 2009-12-31 14:42:21 +0530

Push ZAP_PRIMAL_WAVE to end so it doesn't get used by wands of random effects 
(due).

--------------------------------------------------------------------------------
451a04299e | Jude Brown | 2009-12-31 18:34:20 +1000

Some vault tweaks (Mu).
Hourglass is supposed to look like an hourglass, with the gold in the
bottom, hence it should have the no_hmirror tag (it already has
no_rotate).

Likewise, with the glyph change of giant cockroaches, the special
(low-chance) 'C/crawl' starting vault would occasionally read 'C/crswl'.
Removed the giant cockroach from the moster list.

--------------------------------------------------------------------------------
02888d9ff4 | Jude Brown | 2009-12-31 09:48:19 +1000

Removed shadowed/duplicated variable definition.

--------------------------------------------------------------------------------
2e14e93cef | Jude Brown | 2009-12-31 09:47:11 +1000

Fix "shallow water" -> "shallow_water".

--------------------------------------------------------------------------------
e63435a2db | Jude Brown | 2009-12-31 09:25:49 +1000

Properly comment out unfinished WizLabs. (Sticking)

--------------------------------------------------------------------------------
d795dad2a7 | Stefan O'Rear | 2009-12-30 15:16:46 -0800

Fix obviously broken code in has_los_spell

--------------------------------------------------------------------------------
03198aca0d | Stefan O'Rear | 2009-12-30 15:16:02 -0800

Account for indicator column when using &" with delay_message_clear

--------------------------------------------------------------------------------
03c70abf21 | Stefan O'Rear | 2009-12-30 15:12:04 -0800

Zombie fish in Cocytus <3

--------------------------------------------------------------------------------
29e6ceef04 | David Ploog | 2009-12-30 23:37:37 +0100

Minor changes to sewer_kobolds.

--------------------------------------------------------------------------------
e0bbdb8d6d | Johanna Ploog | 2009-12-30 23:21:30 +0100

Correct the links used in the tile design documentation.

--------------------------------------------------------------------------------
2bcfb277b4 | Stefan O'Rear | 2009-12-30 13:55:39 -0800

Don't give DS multiple breath weapons, they overlap and devalue each other 
(Xiberia)

--------------------------------------------------------------------------------
a45301cf5c | Johanna Ploog | 2009-12-30 23:13:51 +0100

Replace the old Tiles creation guide with the current wiki version.

--------------------------------------------------------------------------------
e0e44091de | Johanna Ploog | 2009-12-30 22:41:34 +0100

Add wave tiles to smoothen the transition between shallow water and floor.
Currently only applies to Shoals, partly because the relevant base tiles are
only used in the Shoals, partly because it's experimental. The checks needed
for adjacent water tiles increase the drawing time, but I'm not sure by how
much, seeing how in my test runs I only measured the seconds used for &O and
came up with no noticeable difference. Still might increase lags on computers
already prone to slow tiles, in which case we'll need to revert this change.

Making the dungeon look less "gridlike" greatly improves the graphics and
makes me want to extend the concept to floor/floor transitions, but it could
potentially harm the interface. Not sure where to draw the line, and in any
case the lag appears to be the more imminent problem.

I've also played around with also adding waves for the shallow/deep water
transitions but this would require special behaviour also for the water masks
used for monsters and items, which is not a problem for floor tiles.

--------------------------------------------------------------------------------
f5cf60aa3d | Darshan Shaligram | 2009-12-31 00:54:23 +0530

Disable Swamp for dgl builds to direct more playtesting towards Shoals (dpeg, 
Napkin).

--------------------------------------------------------------------------------
71dd651436 | Darshan Shaligram | 2009-12-30 20:53:40 +0530

[Mantis 270] Fix excessive ghosts on early levels.

--------------------------------------------------------------------------------
0de7915012 | Darshan Shaligram | 2009-12-30 20:45:17 +0530

[Mantis 286] Fix broken level connectivity sanity checks when a layout is 
chosen (MMT_OPAQUE should not be set for layouts).

--------------------------------------------------------------------------------
c32e17b7b6 | Johanna Ploog | 2009-12-30 15:02:14 +0100

Use the base merfolk tiles as placeholders for the new merfolk monsters.

--------------------------------------------------------------------------------
70f32d224f | Johanna Ploog | 2009-12-30 15:02:14 +0100

Minor application of the coding conventions.

--------------------------------------------------------------------------------
fdfbfdeb22 | Adam Borowski | 2009-12-30 14:42:38 +0100

A new cloud type: magical condensation trails, used by IOOD.

--------------------------------------------------------------------------------
49d56513e9 | Darshan Shaligram | 2009-12-30 19:08:54 +0530

Add a touch more randomness to shoal island shapes.

--------------------------------------------------------------------------------
d8190f4c63 | Adam Borowski | 2009-12-30 14:31:12 +0100

Merge branch 'master' into iood

--------------------------------------------------------------------------------
6e3091bac7 | Darshan Shaligram | 2009-12-30 18:57:44 +0530

Prevent Shoals tide from drowning monsters and player if they cannot be moved 
out of the way. (syllogism)

--------------------------------------------------------------------------------
23a78d07d2 | Darshan Shaligram | 2009-12-30 18:44:25 +0530

More sanity checks for Shoals vault and stair connectivity (due).

--------------------------------------------------------------------------------
30ad58ea18 | Johanna Ploog | 2009-12-30 14:09:07 +0100

Add shadows to the tree tiles.
How comes I'm writing tutorials and don't even listen to my own advice?

--------------------------------------------------------------------------------
964f798ab9 | Vsevolod Kozlov | 2009-12-30 15:44:32 +0300

vmake_stringf: Copy the va_list argument for the second vsnprintf call.
It needs to be copied, otherwise the second call to vsnprintf will be passed
a va_list that has been messed up by the first call, and weird segfaults will
occur.  (They did for me.)

--------------------------------------------------------------------------------
dc6da664d1 | Stefan O'Rear | 2009-12-30 04:25:33 -0800

Implement fish corpses and kraken zombies.

--------------------------------------------------------------------------------
33bb370e46 | Stefan O'Rear | 2009-12-30 04:11:04 -0800

Fix four cosmetic errors in one line

--------------------------------------------------------------------------------
b18886c774 | Darshan Shaligram | 2009-12-30 17:11:00 +0530

Reduce kraken attack damage, make ice beasts amphibious (aquamancer escort).

--------------------------------------------------------------------------------
74c535b701 | Stefan O'Rear | 2009-12-30 03:27:57 -0800

Ignore obscured items in the UI
I probably missed a few spots.

--------------------------------------------------------------------------------
a144abbba0 | Jude Brown | 2009-12-30 20:46:35 +1000

Merge branch 'wizlab'

--------------------------------------------------------------------------------
9e0d51966b | Jude Brown | 2009-12-30 20:46:06 +1000

And actually provide depths for the maps.

--------------------------------------------------------------------------------
7c6b7fecd4 | Jude Brown | 2009-12-30 20:39:49 +1000

Merge branch 'wizlab'

--------------------------------------------------------------------------------
340043be9b | Jude Brown | 2009-12-30 20:37:50 +1000

Preparation for merging into master.

--------------------------------------------------------------------------------
b32bebf09b | Jude Brown | 2009-12-30 20:32:30 +1000

Further tweaks.

--------------------------------------------------------------------------------
4b4962a2b6 | Jude Brown | 2009-12-30 20:28:43 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
e9f0cdca10 | Stefan O'Rear | 2009-12-30 02:22:09 -0800

Let tide break up piles (dshaligram)

--------------------------------------------------------------------------------
2bbd33ecce | Stefan O'Rear | 2009-12-30 02:02:37 -0800

Killing a merfolk should not cause it to leap 10 feet into the air and drop its 
gear from a height.

--------------------------------------------------------------------------------
5b697e0c33 | Stefan O'Rear | 2009-12-30 01:48:16 -0800

Shoals tide washes over items, does not push them away

--------------------------------------------------------------------------------
4e7ce852ff | Stefan O'Rear | 2009-12-30 01:47:57 -0800

Deny apportation of items in deep water / lava

--------------------------------------------------------------------------------
9483afb144 | Stefan O'Rear | 2009-12-30 01:35:10 -0800

Hide items under deep water and lava

--------------------------------------------------------------------------------
41fe930161 | Stefan O'Rear | 2009-12-30 01:10:43 -0800

Don't generate splash messages twice

--------------------------------------------------------------------------------
e4206960f8 | Stefan O'Rear | 2009-12-30 01:08:16 -0800

Do not destroy items in deep water and lava
In the past, this made sense, because deep water was forever.  Now,
with Shoals tides and Fedhas Sunlight, deep water can dry up, and it
makes no sense for waterproof items to cease to exist after a stint
as a reef.  Scrolls are still destroyed in lava because they are
flammable.

--------------------------------------------------------------------------------
4edafcc005 | Jude Brown | 2009-12-30 19:01:02 +1000

Add another new map by Mu.

--------------------------------------------------------------------------------
4db1d75dca | Stefan O'Rear | 2009-12-30 00:57:03 -0800

Allow tiles to destroy only some items.

--------------------------------------------------------------------------------
8a504d20b9 | Stefan O'Rear | 2009-12-29 22:44:54 -0800

Give move/copy_item_to_grid responsibility for hazardous terrain
We now have much less duplication of logic, yay.

--------------------------------------------------------------------------------
6b67ac4588 | Jude Brown | 2009-12-30 15:08:15 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
75c0968931 | Enne Walker | 2009-12-29 22:15:47 -0500

Don't create name.tdl files in non-tiles builds.
There is no reason to create this file if it doesn't exist.  This should
prevent extraneous files being created on servers.

--------------------------------------------------------------------------------
5f66b931c0 | Darshan Shaligram | 2009-12-30 08:37:10 +0530

Readjust Ilsuiw's minivault.

--------------------------------------------------------------------------------
1f88b2d7c9 | Jude Brown | 2009-12-30 12:59:01 +1000

Change scorpion to yellow (N78291), 052 glyph settings (jpeg).
Yellow scorpions work better with brown giant cockroaches, now that they
are on the same glyph, and they represent large threats than
cockroaches; they also are no longer visually similar to wolf spiders,
who are a completely different type of threat.

This commit also includes a new settings file based on the
034_monster_glyphs.txt file, instead using the recent changes since
0.5.2: this includes the demon tier and colour changes, as well as the
recent insect changes. Hopefully I've formatted it correctly, as I
haven't worked out how to test it yet. :-)

--------------------------------------------------------------------------------
6f40e4499e | Darshan Shaligram | 2009-12-30 08:24:00 +0530

Remove shoal decoy huts. The rune huts are now also used as decoys, with the 
rune replaced by |

--------------------------------------------------------------------------------
82c047ea3c | Darshan Shaligram | 2009-12-30 07:53:50 +0530

Add a Shoal:$ Ilsuiw minivault to (almost) guarantee her showing up on Shoal:$ 
if she hasn't already appeared.

--------------------------------------------------------------------------------
2aaee630b7 | Steven Noonan | 2009-12-29 17:07:38 -0800

headers: fix inconsistent struct/class forward declarations
Some classes were erroneously referred to as 'struct' in forward
declarations, and vice versa.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
80cea433b4 | Steven Noonan | 2009-12-29 17:07:38 -0800

message.h: remove superfluous semicolon
This blows up on clang++ and pedantic GCC builds.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
456c88a32c | Steven Noonan | 2009-12-29 17:07:38 -0800

store.{cc,h}: remove pointless special case for MSVC
The version currently in use by TARGET_COMPILER_VC only works on
GCC, Clang, and MSVC. Why use the other one?

Even an objdump output shows there's no difference between the two, except
in terms of function naming:

    --- store.byref.D	2009-12-29 13:59:36.364840900 -0800
    +++ store.byval.D	2009-12-29 14:04:29.313840690 -0800
    @@ -712,32 +712,32 @@
          57b:	48 03 42 08          	add    0x8(%rdx),%rax
          57f:	c3                   	retq

    -0000000000000580 <CrawlStoreValue::operator bool()>:
    -     580:	e9 00 00 00 00       	jmpq   585 <CrawlStoreValue::operator 
bool()+0x5>
    +0000000000000580 <CrawlStoreValue::operator bool&()>:
    +     580:	e9 00 00 00 00       	jmpq   585 <CrawlStoreValue::operator 
bool&()+0x5>
          585:	90                   	nop
          586:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
          58d:	00 00 00

    -0000000000000590 <CrawlStoreValue::operator char()>:
    -     590:	e9 00 00 00 00       	jmpq   595 <CrawlStoreValue::operator 
char()+0x5>
    +0000000000000590 <CrawlStoreValue::operator char&()>:
    +     590:	e9 00 00 00 00       	jmpq   595 <CrawlStoreValue::operator 
char&()+0x5>
          595:	90                   	nop
          596:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
          59d:	00 00 00

    -00000000000005a0 <CrawlStoreValue::operator short()>:
    -     5a0:	e9 00 00 00 00       	jmpq   5a5 <CrawlStoreValue::operator 
short()+0x5>
    +00000000000005a0 <CrawlStoreValue::operator short&()>:
    +     5a0:	e9 00 00 00 00       	jmpq   5a5 <CrawlStoreValue::operator 
short&()+0x5>
          5a5:	90                   	nop
          5a6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
          5ad:	00 00 00

    -00000000000005b0 <CrawlStoreValue::operator float()>:
    -     5b0:	e9 00 00 00 00       	jmpq   5b5 <CrawlStoreValue::operator 
float()+0x5>
    +00000000000005b0 <CrawlStoreValue::operator float&()>:
    +     5b0:	e9 00 00 00 00       	jmpq   5b5 <CrawlStoreValue::operator 
float&()+0x5>
          5b5:	90                   	nop
          5b6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
          5bd:	00 00 00

    -00000000000005c0 <CrawlStoreValue::operator long()>:
    -     5c0:	e9 00 00 00 00       	jmpq   5c5 <CrawlStoreValue::operator 
long()+0x5>
    +00000000000005c0 <CrawlStoreValue::operator long&()>:
    +     5c0:	e9 00 00 00 00       	jmpq   5c5 <CrawlStoreValue::operator 
long&()+0x5>
          5c5:	90                   	nop
          5c6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
          5cd:	00 00 00
    @@ -1863,8 +1863,8 @@
         1324:	66 66 66 2e 0f 1f 84 	nopw   %cs:0x0(%rax,%rax,1)
         132b:	00 00 00 00 00

    -0000000000001330 <CrawlStoreValue::operator level_pos()>:
    -    1330:	e9 00 00 00 00       	jmpq   1335 <CrawlStoreValue::operator 
level_pos()+0x5>
    +0000000000001330 <CrawlStoreValue::operator level_pos&()>:
    +    1330:	e9 00 00 00 00       	jmpq   1335 <CrawlStoreValue::operator 
level_pos&()+0x5>
         1335:	90                   	nop
         1336:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         133d:	00 00 00
    @@ -1982,8 +1982,8 @@
         14bb:	90                   	nop
         14bc:	0f 1f 40 00          	nopl   0x0(%rax)

    -00000000000014c0 <CrawlStoreValue::operator level_id()>:
    -    14c0:	e9 00 00 00 00       	jmpq   14c5 <CrawlStoreValue::operator 
level_id()+0x5>
    +00000000000014c0 <CrawlStoreValue::operator level_id&()>:
    +    14c0:	e9 00 00 00 00       	jmpq   14c5 <CrawlStoreValue::operator 
level_id&()+0x5>
         14c5:	90                   	nop
         14c6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         14cd:	00 00 00
    @@ -2090,8 +2090,8 @@
         1612:	66 66 66 66 66 2e 0f 	nopw   %cs:0x0(%rax,%rax,1)
         1619:	1f 84 00 00 00 00 00

    -0000000000001620 <CrawlStoreValue::operator coord_def()>:
    -    1620:	e9 00 00 00 00       	jmpq   1625 <CrawlStoreValue::operator 
coord_def()+0x5>
    +0000000000001620 <CrawlStoreValue::operator coord_def&()>:
    +    1620:	e9 00 00 00 00       	jmpq   1625 <CrawlStoreValue::operator 
coord_def&()+0x5>
         1625:	90                   	nop
         1626:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         162d:	00 00 00
    @@ -2329,8 +2329,8 @@
         1919:	90                   	nop
         191a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

    -0000000000001920 <CrawlStoreValue::operator CrawlVector()>:
    -    1920:	e9 00 00 00 00       	jmpq   1925 <CrawlStoreValue::operator 
CrawlVector()+0x5>
    +0000000000001920 <CrawlStoreValue::operator CrawlVector&()>:
    +    1920:	e9 00 00 00 00       	jmpq   1925 <CrawlStoreValue::operator 
CrawlVector&()+0x5>
         1925:	90                   	nop
         1926:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         192d:	00 00 00
    @@ -2423,8 +2423,8 @@
         1a56:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         1a5d:	00 00 00

    -0000000000001a60 <CrawlStoreValue::operator CrawlHashTable()>:
    -    1a60:	e9 00 00 00 00       	jmpq   1a65 <CrawlStoreValue::operator 
CrawlHashTable()+0x5>
    +0000000000001a60 <CrawlStoreValue::operator CrawlHashTable&()>:
    +    1a60:	e9 00 00 00 00       	jmpq   1a65 <CrawlStoreValue::operator 
CrawlHashTable&()+0x5>
         1a65:	90                   	nop
         1a66:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         1a6d:	00 00 00
    @@ -2566,8 +2566,8 @@
         1c36:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         1c3d:	00 00 00

    -0000000000001c40 <CrawlStoreValue::operator std::string()>:
    -    1c40:	e9 00 00 00 00       	jmpq   1c45 <CrawlStoreValue::operator 
std::string()+0x5>
    +0000000000001c40 <CrawlStoreValue::operator std::string&()>:
    +    1c40:	e9 00 00 00 00       	jmpq   1c45 <CrawlStoreValue::operator 
std::string&()+0x5>
         1c45:	90                   	nop
         1c46:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         1c4d:	00 00 00
    @@ -2825,8 +2825,8 @@
         1fed:	90                   	nop
         1fee:	66 90                	xchg   %ax,%ax

    -0000000000001ff0 <CrawlStoreValue::operator dlua_chunk()>:
    -    1ff0:	e9 00 00 00 00       	jmpq   1ff5 <CrawlStoreValue::operator 
dlua_chunk()+0x5>
    +0000000000001ff0 <CrawlStoreValue::operator dlua_chunk&()>:
    +    1ff0:	e9 00 00 00 00       	jmpq   1ff5 <CrawlStoreValue::operator 
dlua_chunk&()+0x5>
         1ff5:	90                   	nop
         1ff6:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         1ffd:	00 00 00
    @@ -2979,8 +2979,8 @@
         2206:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         220d:	00 00 00

    -0000000000002210 <CrawlStoreValue::operator monsters()>:
    -    2210:	e9 00 00 00 00       	jmpq   2215 <CrawlStoreValue::operator 
monsters()+0x5>
    +0000000000002210 <CrawlStoreValue::operator monsters&()>:
    +    2210:	e9 00 00 00 00       	jmpq   2215 <CrawlStoreValue::operator 
monsters&()+0x5>
         2215:	90                   	nop
         2216:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         221d:	00 00 00
    @@ -3120,8 +3120,8 @@
         2448:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
         244f:	00

    -0000000000002450 <CrawlStoreValue::operator item_def()>:
    -    2450:	e9 00 00 00 00       	jmpq   2455 <CrawlStoreValue::operator 
item_def()+0x5>
    +0000000000002450 <CrawlStoreValue::operator item_def&()>:
    +    2450:	e9 00 00 00 00       	jmpq   2455 <CrawlStoreValue::operator 
item_def&()+0x5>
         2455:	90                   	nop
         2456:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
         245d:	00 00 00

The only difference is that the non-TARGET_COMPILER_VC version
breaks non-GCC compilers.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
315f93f92a | Darshan Shaligram | 2009-12-30 06:29:02 +0530

Give Shoals huts a guard of shoals monsters, remove plants from Shoals random 
gen - the terrain builder will place lots of plants as scenery anyway.

--------------------------------------------------------------------------------
d6d6ba04b6 | Darshan Shaligram | 2009-12-30 06:13:06 +0530

Give boss merfolk small bands of regular merfolk as lackeys.

--------------------------------------------------------------------------------
b40563be50 | Darshan Shaligram | 2009-12-30 05:40:31 +0530

Fix grouping of monster names in wizmode &"

--------------------------------------------------------------------------------
91adc42738 | Johanna Ploog | 2009-12-29 23:41:59 +0100

Move the giant spore tile into the fungi_plants subfolder.

--------------------------------------------------------------------------------
fe24d203fa | Johanna Ploog | 2009-12-29 23:35:39 +0100

Remove the statue tiles predating the weapon overlays.

--------------------------------------------------------------------------------
c33c77fcd7 | Johanna Ploog | 2009-12-29 23:33:50 +0100

And use it for the non-vinecovered statue tiles.
Looks really odd on the recoloured ones.

--------------------------------------------------------------------------------
48586bbe93 | Johanna Ploog | 2009-12-29 23:33:20 +0100

Add a mage statue overlay including a wizard hat.

--------------------------------------------------------------------------------
846946afdb | Johanna Ploog | 2009-12-29 23:32:18 +0100

Cleanup animated statues' weapon overlays.

--------------------------------------------------------------------------------
884a020ab8 | Darshan Shaligram | 2009-12-30 00:36:59 +0530

More call tide fixes: don't flash view if Ilsuiw is not in LOS, apply tide 
reset even if the player is not messaged about it.

--------------------------------------------------------------------------------
0822d05b5a | Darshan Shaligram | 2009-12-30 00:29:14 +0530

Add extra check to prevent Ilsuiw using call tide outside Shoals.

--------------------------------------------------------------------------------
7152c75c89 | Darshan Shaligram | 2009-12-29 23:33:41 +0530

Change aquamancer -> green, Ilsuiw -> lightgreen, remove aquamancer cold res. 
(Ero)

--------------------------------------------------------------------------------
43d86ff397 | Darshan Shaligram | 2009-12-29 20:24:07 +0530

Merge branch 'shoals++'

--------------------------------------------------------------------------------
8efdaf11a2 | Darshan Shaligram | 2009-12-29 20:14:23 +0530

Give Ilsuiw a more interesting band.

--------------------------------------------------------------------------------
225b0e70b8 | Darshan Shaligram | 2009-12-29 20:04:27 +0530

Weaken merfolk impalers and javelineers, give sirens and mermaids extra hp, and 
sirens extra HD, remove ettin and sheep from Shoals.

--------------------------------------------------------------------------------
9cc1ba155f | Darshan Shaligram | 2009-12-29 19:48:21 +0530

Boost Ilsuiw stats and give her Call Tide, which strongly boosts the tide in 
Shoals, pegs it towards high tide, and includes a local high tide maximum 
centered on Ilsuiw, which can be double the height of the normal high tide.

--------------------------------------------------------------------------------
3f8334b021 | Adam Borowski | 2009-12-29 14:23:50 +0100

Make clarity allow intentional berserk. Unknown potions of rage override it as 
well.  This is a debatable thing, but since other sources of involuntary 
berserk are caused by "being angry", it makes sense a drug is not affected by 
merely being calm.

--------------------------------------------------------------------------------
8657d1a1b6 | Adam Borowski | 2009-12-29 14:23:50 +0100

Give tier 3 (= long blade) stabbing bonuses to all 1-handed polearms.

--------------------------------------------------------------------------------
87427dc9d9 | Adam Borowski | 2009-12-29 14:23:50 +0100

Remove resistances from Ilsuiw that other merfolk lost.

--------------------------------------------------------------------------------
07ec071cac | Jude Brown | 2009-12-29 22:58:13 +1000

Add light and dark vine-covered statue bases.
Also, convert the weapons wielded by the current statue into overlays,
and add relevant combination lines to dc-mon.txt to generate. The names
may require changing if they cause confusion, or if unneeded, the
section could be commented out.

Also update the relevant vaults.

--------------------------------------------------------------------------------
cfdb6e14f5 | Darshan Shaligram | 2009-12-29 17:56:38 +0530

Add merfolk javelineers to the Shoals, add descriptions for the three new 
merfolk types.

--------------------------------------------------------------------------------
fe97e90bb0 | Darshan Shaligram | 2009-12-29 17:55:13 +0530

Fix warnings for double->int implicit conversion (Napkin).

--------------------------------------------------------------------------------
cccb371a91 | Darshan Shaligram | 2009-12-29 16:20:41 +0530

s/merfolk gladiator/merfolk impaler/

--------------------------------------------------------------------------------
a527e772ec | Jude Brown | 2009-12-29 18:29:37 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
43e630ae90 | Jude Brown | 2009-12-29 18:27:50 +1000

Colour-variant "white smoke" tile.
Basically just a test to make sure that cloud recolouring using
recoloured tiles (if they exist) works. As far as I can see, it works
exactly as hoped-for! It's just a matter of reorganising the base cloud
associations so that you can specify any type of smoke, recolour it, and
get the proper tile.

--------------------------------------------------------------------------------
ebbacbf127 | Jude Brown | 2009-12-29 18:27:35 +1000

Rename clouds to "white fluffiness".

--------------------------------------------------------------------------------
c2be49557c | Jude Brown | 2009-12-29 18:01:49 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
45cd93ff14 | Jude Brown | 2009-12-29 18:01:40 +1000

Add a note about Cloud vault, tweak.

--------------------------------------------------------------------------------
d85ce5fca3 | Darshan Shaligram | 2009-12-29 08:34:11 +0530

s/merfolk elementalist/merfolk aquamancer/ (sorear).

--------------------------------------------------------------------------------
22c9c1dd3f | Darshan Shaligram | 2009-12-29 08:26:24 +0530

Merfolk (water/ice) elementalists join the Shoals guard.

--------------------------------------------------------------------------------
468eddcb57 | Stefan O'Rear | 2009-12-28 15:52:16 -0800

Update Fulsome description

--------------------------------------------------------------------------------
7bf522535b | Stefan O'Rear | 2009-12-28 15:46:22 -0800

Fulsome Distillation tweaks (dshaligram)
Fulsome no longer uses power; the chance for self-affliction is removed.
The typo which caused contaminated corpses to make poison is gone.

--------------------------------------------------------------------------------
98949eaaf9 | Johanna Ploog | 2009-12-29 00:48:35 +0100

Switch the order of trees and deep sea in enum.h, makes more sense.

--------------------------------------------------------------------------------
c3833168fc | Johanna Ploog | 2009-12-29 00:47:21 +0100

Add two placeholder tiles for trees.
Crayon-style they're not strictly bad but I feel they don't fit the feel
of the rest of the dungeon. Still, much better than error tiles.

--------------------------------------------------------------------------------
da206768a4 | Darshan Shaligram | 2009-12-29 04:08:08 +0530

Boost harpy attack damage.

--------------------------------------------------------------------------------
5fccd300ac | Darshan Shaligram | 2009-12-29 04:00:08 +0530

Merfolk gladiators join the Shoals party.

--------------------------------------------------------------------------------
6af92e2651 | Darshan Shaligram | 2009-12-29 03:59:18 +0530

Generalise shopping-list-disable-check to need_save; fixes crashes on arena.

--------------------------------------------------------------------------------
de9c971619 | Johanna Ploog | 2009-12-28 23:01:06 +0100

Move plant and fungi tiles into their own subdirectory.
This seems sensible especially considering we'll also be adding tiles for
the toadstool, bush, burning bush, and possibly more plants. That said, the
folder could use some renaming itself. Not very creative right now.

--------------------------------------------------------------------------------
1f325d8c00 | Johanna Ploog | 2009-12-28 22:53:51 +0100

Add purge's ballistomycete tiles, thanks!

--------------------------------------------------------------------------------
e9017206fd | Darshan Shaligram | 2009-12-29 01:09:18 +0530

Experimental kraken adjustments.
Boost kraken and tentacle damage. Force the tentacles to stay close to the body 
of the kraken to make the creature look more like a unit.

Tentacles are now amphibious and can reach out onto land, although they cannot 
stray too far from the main body.

--------------------------------------------------------------------------------
bad09911df | Darshan Shaligram | 2009-12-28 23:05:38 +0530

Place clumps of plants on Shoals levels.

--------------------------------------------------------------------------------
87f499df5e | Darshan Shaligram | 2009-12-28 19:01:59 +0530

Fix shoals tides being arrested on squares with items that cannot be moved to 
an adjacent square.

--------------------------------------------------------------------------------
adcc6b42f2 | Darshan Shaligram | 2009-12-28 18:58:40 +0530

Postprocess shoals levels to fix heightmap for vaults on the level so that the 
tide interacts reasonably with vaults.

--------------------------------------------------------------------------------
4bd11a2119 | Stefan O'Rear | 2009-12-28 02:23:13 -0800

Rename MF_CREATED_FRIENDLY to MF_NO_REWARD, since that's all it's used for 
these days.

--------------------------------------------------------------------------------
1f482e4025 | Jude Brown | 2009-12-28 20:20:40 +1000

Give Lua access to DESC_QUALNAME and DESC_BASENAME.
These do not seem to leak any information. If so, they can be limited to
dlua implementations of item->name.

--------------------------------------------------------------------------------
7c39d1c666 | Jude Brown | 2009-12-28 20:20:40 +1000

Inventory and stash iterators for lua.

--------------------------------------------------------------------------------
679e8fa715 | Jude Brown | 2009-12-28 20:20:40 +1000

Item quantity adjustment wrappers for dLua.

--------------------------------------------------------------------------------
e4e726475b | Vsevolod Kozlov | 2009-12-28 12:44:41 +0300

Add the long description to ossuary.des.

--------------------------------------------------------------------------------
02962c9ca9 | Stefan O'Rear | 2009-12-27 23:41:17 -0800

Forms never lower weight cap
I'm just building the bikeshed - somebody else needs to paint this stupid thing.

--------------------------------------------------------------------------------
cc6a658772 | Stefan O'Rear | 2009-12-27 22:18:44 -0800

Fix insane non-monotonic fulsome behavior, per Eronarn
The following two coder's discretion choices were made:
1. "Lots of chunks" is 5+, as for a draconian
2. "Self affliction at low power" means less than 1dN-1 where N
   depends on the potion.

--------------------------------------------------------------------------------
3c1f575a5c | Jude Brown | 2009-12-28 13:55:53 +1000

Move and tweak Mislead code.
Newly placed monsters during the mislead status are also given a
mislead_as monster type.

--------------------------------------------------------------------------------
719f1284e8 | Jude Brown | 2009-12-28 13:55:53 +1000

Mark spec'd items for summoned monsters as summoned.

--------------------------------------------------------------------------------
cf6032ded2 | Jude Brown | 2009-12-28 13:15:05 +1000

Further tweaks to Mu's cloud wizard vault.

--------------------------------------------------------------------------------
79dc4f1a09 | David Ploog | 2009-12-28 02:42:30 +0100

Ensure that Vault:8 has a loot rich quadrant.

--------------------------------------------------------------------------------
09f88ea76c | Jude Brown | 2009-12-28 11:31:01 +1000

Merge branch 'master' into wizlab
Conflicts:
	crawl-ref/source/rltiles/dc-mon.txt

--------------------------------------------------------------------------------
b29345dd9d | Jude Brown | 2009-12-28 11:22:20 +1000

Move and tweak Mislead code.
Newly placed monsters during the mislead status are also given a
mislead_as monster type.

--------------------------------------------------------------------------------
5f928a55ff | Jude Brown | 2009-12-28 11:22:20 +1000

Mark spec'd items for summoned monsters as summoned.

--------------------------------------------------------------------------------
608eec9696 | Darshan Shaligram | 2009-12-28 06:26:28 +0530

Fix map masks not being checked correctly for collisions.

--------------------------------------------------------------------------------
585dab9ccd | Jesse Luehrs | 2009-12-27 18:45:47 -0600

remove mpr message length limitation

--------------------------------------------------------------------------------
892714e8a9 | Darshan Shaligram | 2009-12-28 06:10:50 +0530

Fix shoals builder dying if an island is placed too close to map edge.

--------------------------------------------------------------------------------
4e6820b10d | Darshan Shaligram | 2009-12-28 06:10:50 +0530

Make _build_vaults check for collisions by default, should fix minivaults 
appearing in encompass vaults.

--------------------------------------------------------------------------------
64f064aa95 | Johanna Ploog | 2009-12-28 00:37:54 +0100

A few spacing changes.

--------------------------------------------------------------------------------
1d0cbf5f8b | Adam Borowski | 2009-12-27 23:36:38 +0100

A (sucky) pair of tiles for Orb of Destruction.

--------------------------------------------------------------------------------
d333f654e9 | David Ploog | 2009-12-27 23:31:24 +0100

Minor modifications of cavernous ossuary (Lordsloth).

--------------------------------------------------------------------------------
56c839b54f | Darshan Shaligram | 2009-12-28 03:56:44 +0530

Shoals tides do not fill in features when the tide is receding. Sunlight-dried 
squares will stay dry until reached by a rising tide.

--------------------------------------------------------------------------------
0d5366e8b6 | Adam Borowski | 2009-12-27 21:08:55 +0100

Add Orb of Destruction to allowed spells for pan lords and player ghosts.

--------------------------------------------------------------------------------
c2c12235d7 | Adam Borowski | 2009-12-27 21:08:55 +0100

Spell description for [i]ood.

--------------------------------------------------------------------------------
8d1ebe62cb | Adam Borowski | 2009-12-27 21:08:49 +0100

Set the visible name to just "Orb of Destruction", "IOOD" is too long.

--------------------------------------------------------------------------------
0bb2d8e6c9 | Adam Borowski | 2009-12-27 20:32:21 +0100

Don't make monsters seek projectiles.  That's, uhm, unhealthy.

--------------------------------------------------------------------------------
b3e625f6c1 | Adam Borowski | 2009-12-27 20:11:52 +0100

Make player-cast ioods restricted to the LOS radius.
This is a discrepancy from the monster version, but since there's much fun
to be had if we allow long-lived orbs, we'll explain that by a scribal error
in most copies of spellbooks or something like that.

--------------------------------------------------------------------------------
4625fe5165 | Adam Borowski | 2009-12-27 19:25:07 +0100

Use grey not tloc smoke, iood uses no instant translocations. This departs from 
the original idea.

--------------------------------------------------------------------------------
25249b3649 | Vsevolod Kozlov | 2009-12-27 21:23:53 +0300

Make item_is_mundane a method of item_def.

--------------------------------------------------------------------------------
42d227a273 | Adam Borowski | 2009-12-27 17:48:37 +0100

Merge branch 'master' into iood

--------------------------------------------------------------------------------
dc3e12a4da | Vsevolod Kozlov | 2009-12-27 19:25:32 +0300

Replace uses of item_cursed with item_def::cursed.

--------------------------------------------------------------------------------
507c3523d5 | Vsevolod Kozlov | 2009-12-27 19:00:10 +0300

Make item_is_critical a method of item_def.

--------------------------------------------------------------------------------
76b76949fb | Vsevolod Kozlov | 2009-12-27 18:50:20 +0300

Don't show normal teleport messages on wizard teleports.
The "You may choose your destination..." and "Expect minor deviation" messages
are lost due to the absence of the more prompt on wizard teleports, and arrive
after the teleport, which is more annoying than not at all.

--------------------------------------------------------------------------------
2be5d5f085 | Adam Borowski | 2009-12-27 16:44:05 +0100

Untie disarm confirmations from autotravel settings (Mantis 254). Since it is 
done only on an explicit request, copious safety margins are not needed.
I didn't provide an alternate way to disable the confirmation, but
since the danger is now always real, I don't think that's needed.

--------------------------------------------------------------------------------
fa0307d345 | Vsevolod Kozlov | 2009-12-27 18:24:21 +0300

dungeon.cc: Kill a small piece of code duplication in special room handling.
Hopefully I've got the logic inversion right...

--------------------------------------------------------------------------------
caad029e61 | Vsevolod Kozlov | 2009-12-27 18:24:21 +0300

Unify wizard_create_feature_{name,number}.
It works fine, but it does not show the verbose message about placing the
feature, as wizard_create_feature_name used to.  (This doesn't seem very
necessary since debug-mode 'x' tends to give enough information.)

--------------------------------------------------------------------------------
21c3ed598c | Adam Borowski | 2009-12-27 15:37:47 +0100

Use the old message for rain, "You are engulfed in the rain." is bad.

--------------------------------------------------------------------------------
8b00e00511 | Darshan Shaligram | 2009-12-27 20:02:40 +0530

Reset tag minor version, since major version has been incremented (due).

--------------------------------------------------------------------------------
23929ee3b2 | Jude Brown | 2009-12-28 00:29:40 +1000

Customisable clouds!
cloud_struct now has members for colour, name, and tile; colour will be
used instead of the default colour of the cloud type, and will be used
to recolour the tile of the cloud (if it exists). Name will be used to
rebrand the cloud's description, and also alter the message generate
while standing in a cloud.

Finally, tile can be used to completely customise the tile used for the
cloud. The value is stored as a string in order to maintain save
compatibility across ASCII and tiles. A random tile (found using
tile_main_count) from that set will also be used, however, no duration
effects will be applied.

Recoloured cloud tiles using just the colour code should be possible,
though aren't yet fully tested.

This commit bumps TAG_MAJOR_VERSION: changing marshalling of the
FogMachine Lua code causes nasty crashes on reloading saved games.
Otherwise, I don't think I broke anything else. :-)

--------------------------------------------------------------------------------
e42132c99b | Adam Borowski | 2009-12-27 15:24:47 +0100

Before a better solution is decided on, slash TSO holy revenge by a factor of 
4. This is roughly half of maxhp for vampires and mummies -- still harsh after 
a hard battle, especially when there's more holies around.

--------------------------------------------------------------------------------
f10addfc13 | Adam Borowski | 2009-12-27 15:24:47 +0100

Replace '+' by '∞' for books in CSET_UNICODE and CSET_IBM.

--------------------------------------------------------------------------------
21d39fbc5b | Adam Borowski | 2009-12-27 15:24:47 +0100

Don't say that "Kiku likes sacrifices of corpses", as that costs piety.

--------------------------------------------------------------------------------
1b9f02892b | Darshan Shaligram | 2009-12-27 19:49:53 +0530

Apply second smoothing pass to Shoals deep water to reduce ugly rectangular 
deep water outlines at low tide.

--------------------------------------------------------------------------------
22d52312ea | Darshan Shaligram | 2009-12-27 19:33:10 +0530

Shoals tides should not try to move flying/swimming monsters out of the way, 
fixed.

--------------------------------------------------------------------------------
fd52f05d8b | Darshan Shaligram | 2009-12-27 19:28:37 +0530

Merge branch 'shoals++'

--------------------------------------------------------------------------------
34c10bc02d | Darshan Shaligram | 2009-12-27 19:25:19 +0530

Reduce low tide effects in the Shoals.

--------------------------------------------------------------------------------
c0788ba060 | Vsevolod Kozlov | 2009-12-27 16:50:24 +0300

Reduce code duplication in trap_def::shot_damage.

--------------------------------------------------------------------------------
0fe55b6adb | Vsevolod Kozlov | 2009-12-27 16:40:20 +0300

Use strip_tag for cursed/randart/damaged in parse_single_spec.

--------------------------------------------------------------------------------
bd29fc66d1 | Darshan Shaligram | 2009-12-27 18:36:02 +0530

Add tides to the Shoals.

--------------------------------------------------------------------------------
191aad1fa6 | Johanna Ploog | 2009-12-27 13:29:50 +0100

Replace the flat Maurice tile with a more 3dimensional one.
I'm not entirely convinced this is actually better but the flat one stood out
like a sore thumb, so that's a nogo.

--------------------------------------------------------------------------------
382a17cfc8 | Darshan Shaligram | 2009-12-27 15:49:39 +0530

Increase depths of deep water by distance from shore.

--------------------------------------------------------------------------------
5684de7409 | Darshan Shaligram | 2009-12-27 15:22:34 +0530

Save Shoals heightmap in level tag, increment tag minor version.

--------------------------------------------------------------------------------
e19066eb49 | Jude Brown | 2009-12-27 18:44:35 +1000

Add a tile for human slaves (purge).

--------------------------------------------------------------------------------
d5382a4e13 | Jude Brown | 2009-12-27 18:05:15 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
04eb4061b7 | Jude Brown | 2009-12-27 18:01:52 +1000

Update prebuilt level compiler files for TILE specifier.
Hopefully I've done this right.

--------------------------------------------------------------------------------
88efeae832 | Jude Brown | 2009-12-27 18:01:05 +1000

More excellent maps from Mu.

--------------------------------------------------------------------------------
5de602e8c5 | Jude Brown | 2009-12-27 16:12:46 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
79479ce91e | Jude Brown | 2009-12-27 13:45:19 +1000

Don't mark milestones for summoned ghosts or uniques.
This should also hopefully deal with summoned ghosts in the kills
tracker.

--------------------------------------------------------------------------------
061e97f172 | Jude Brown | 2009-12-27 12:57:27 +1000

Fix "shot with an orcish bolt by a yellow wasp" during Mislead.
Hopefully that's every occurence.

--------------------------------------------------------------------------------
359d6d7fe9 | Jude Brown | 2009-12-27 12:28:17 +1000

Fix ugly things/butterflies going black while Misled.

--------------------------------------------------------------------------------
caa3c8aacc | Jude Brown | 2009-12-27 12:25:16 +1000

Make berserk monsters ignore unsafe clouds (FR256).

--------------------------------------------------------------------------------
67a41e9887 | Jude Brown | 2009-12-27 12:19:06 +1000

Change some colours and glyphs as per FR#250.
* Queen bees become yellow 'k'.
* Bees become brown 'k'.
* Queen ants become lightred 'a'.
* Minotaurs become lightred 'H'.
* Trapdoor spiders become lightcyan 's'.
* Wolf spiders become white 's'.
* Giant cockroaches become brown 's'.

Of all of the changes, the most disconcerting may be the minotaur and
the cockroach; the minotaur is not often seen, and as it is actually a
hybrid, is more properly represented on the 'H' glyph.

The giant cockroach is seen regularly throughout the early game, and it
may cause confusion to old players who are used to brown 's' being
either trapdoor spiders of wolf spiders. However, there are currently
more insects on the 's' glyph than there are on the 'a' glyph, which
itself is described as being dedicated to insects.

As queen bees have been moved onto 'a', it makes more sense for them to
be on their own on this glyph, similarly to the fact that bees are on
their own on the 'k' glyph.

This now means that the following glyphs are empty: 'i', 'Q', 't', '6'.

--------------------------------------------------------------------------------
7df95877aa | Jude Brown | 2009-12-27 12:19:06 +1000

Make steel ammo rarer before D:10.
Centaurs with steel ammo seem to do an average of 17 to 20 damage, as
opposed to another with flame ammo, which did between 5 and 10 damage
per hit. At low levels, this is an instantaneous kill.

--------------------------------------------------------------------------------
8c410379d0 | David Ploog | 2009-12-27 02:21:58 +0100

Slight changes to labyrinth vaults.

--------------------------------------------------------------------------------
b9b709e2e7 | David Ploog | 2009-12-27 02:10:10 +0100

Three new Vault:8 subvaults (Neil).
Guarantee exactly one Vault:8 subvault rich in loot.

--------------------------------------------------------------------------------
ec717839b6 | Darshan Shaligram | 2009-12-27 02:46:16 +0530

Remove floor at corners of shoal huts.

--------------------------------------------------------------------------------
1622664e84 | Darshan Shaligram | 2009-12-26 23:54:57 +0530

Add the occasional cliff in the shoals.

--------------------------------------------------------------------------------
0195242aa2 | Darshan Shaligram | 2009-12-26 22:46:16 +0530

Add rock outcrops at the highest points of the Shoal islands. Also fix Shoal:$ 
having no rune.

--------------------------------------------------------------------------------
61e082e669 | Darshan Shaligram | 2009-12-26 22:21:53 +0530

Move Shoals code out into its own file.

--------------------------------------------------------------------------------
e498a6cf12 | Johanna Ploog | 2009-12-26 17:14:33 +0100

Actually use the archer statue tile in the corresponding vault definition.

--------------------------------------------------------------------------------
f751c126a1 | Johanna Ploog | 2009-12-26 17:14:33 +0100

Fix a typo.

--------------------------------------------------------------------------------
b1ede8b9a0 | Johanna Ploog | 2009-12-26 17:14:32 +0100

Add default answer 'n' to several instances of yesno().

--------------------------------------------------------------------------------
4a400aebb9 | Johanna Ploog | 2009-12-26 17:14:32 +0100

Include all monsters containing the word "statue" in the autoexclude list.
This is better than listing all the names used for vault modified statue
names. Granite statues are no monsters, so that isn't an issue, either.

--------------------------------------------------------------------------------
414b1c3e9e | Robert Vollmert | 2009-12-26 16:45:10 +0100

Revert beams to not affect the source cell.
The change was originally done to allow hostile oklobs to target
the player if he happens to be standing in the same cell, but
they appear to do that successfully regardless.

Fixes issue #133, issue #246.

--------------------------------------------------------------------------------
e5e6474f33 | Adam Borowski | 2009-12-26 16:25:41 +0100

Deuglify a temple layout, now that we're not limited to 12 altars only.

--------------------------------------------------------------------------------
7024702fd9 | Darshan Shaligram | 2009-12-26 19:36:52 +0530

Adjust number of islands per Shoal level.

--------------------------------------------------------------------------------
14da0d8a05 | Darshan Shaligram | 2009-12-26 19:17:44 +0530

Tweak placement of rune hut on Shoal:$.

--------------------------------------------------------------------------------
f0dccf9077 | Darshan Shaligram | 2009-12-26 18:58:53 +0530

Experimental changes to Shoals level generation.
Use more random Shoal island generation. Still needs work on placing Shoal:$ 
huts correctly and connectivity fixes.

--------------------------------------------------------------------------------
0ede21ec50 | Adam Borowski | 2009-12-26 14:11:14 +0100

Broaden Agnes' range.

--------------------------------------------------------------------------------
8238ce8d9d | Jesse Luehrs | 2009-12-26 02:18:50 -0600

clean up one more warning

--------------------------------------------------------------------------------
c124daef6c | Jude Brown | 2009-12-26 14:02:32 +1000

Some tweaks to Mu's elemental vault.

--------------------------------------------------------------------------------
0a55f4c9f2 | Jude Brown | 2009-12-26 13:46:39 +1000

Auto-ID rods when wielded (cbus).

--------------------------------------------------------------------------------
9db07b06e8 | Jude Brown | 2009-12-26 12:50:09 +1000

Tweak Mara's depth and stats.
After watching some people fight against him on CDO, I've reduced his
magic resistance as HD adjusts this considerably (giving him an MR of
around 260) to around 210. His HP and HD remain the same, but I've also
reduced AC and EV back to those of a normal Rakshasa. (10 and 14
respectively).

I've also increased his depth to 22-27 and tweaked the EXP modifier
slightly (though this may be too much and require adjusting back down in
future).

--------------------------------------------------------------------------------
98a4866e0c | Jude Brown | 2009-12-26 12:49:25 +1000

Deal with summoned player ghost milestones (N78291, pointless)
Hopefully this is the last of them. Summoned ghosts shouldn't be treated
as milestones, especially as, when they time out, it gives a "banished
XYZ's ghost" milestone.

--------------------------------------------------------------------------------
16b3fe2aa3 | Jude Brown | 2009-12-26 10:55:28 +1000

Rename a shadowed variable.

--------------------------------------------------------------------------------
1c6fbd31a1 | Johanna Ploog | 2009-12-26 01:38:35 +0100

Make wizard heal clear the misled effect.

--------------------------------------------------------------------------------
43719e94ae | Johanna Ploog | 2009-12-26 01:35:29 +0100

Display Crazy Yiuf's tile with the wielded weapon.

--------------------------------------------------------------------------------
b4730459f0 | Johanna Ploog | 2009-12-26 01:26:15 +0100

Move other statue tiles into the new dc-mon/statues folder.

--------------------------------------------------------------------------------
3098343996 | Johanna Ploog | 2009-12-26 01:15:05 +0100

Add tiles for animated statues wielding bow, axe, mace, ...
Hope these are okay, more can be added if needed. :)

--------------------------------------------------------------------------------
6f1c1d411e | Jude Brown | 2009-12-25 23:41:32 +1000

Further tweaks to Ozocubu's.

--------------------------------------------------------------------------------
cff7a75e11 | Robert Vollmert | 2009-12-25 13:03:38 +0100

Credit player with kills by reflection.
The player now gains experience both for player-thrown beams
that are reflected by monsters, and monster-thrown beams
reflected by the player.

I assume not giving experience wasn't by design.

--------------------------------------------------------------------------------
f6c1220aec | Jude Brown | 2009-12-25 21:11:39 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
cff43655c6 | Darshan Shaligram | 2009-12-25 16:20:15 +0530

Fix util.append (due).

--------------------------------------------------------------------------------
214c798064 | Robert Vollmert | 2009-12-25 11:36:22 +0100

Add new inventory menu type for item knowledge.
This means the knowledge menu is not affected by the
main inventory sort options. In particular, this
fixes item knowledge sort order breaking down once
you know a lot of items of a given type.

--------------------------------------------------------------------------------
ee90bf85eb | Jude Brown | 2009-12-25 16:08:18 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
e711d4b1bb | Jude Brown | 2009-12-25 13:22:48 +1000

A start at a dLua spells library.
Provides wrappers for non-player Toxic Radiance and Ozocubu's
Refrigeration. These are basically just an adjustment of kill categories
and messages to allow them to be used as background effects in WizLabs
(Ozocubu's and Olgreb's).

Hopefully a wrapper for monster (and possibly player)-cast bolt
structures can also be included, which could then be accessed with the
(planned) Lua traps functionality.

--------------------------------------------------------------------------------
f6b7d89042 | Jude Brown | 2009-12-25 13:22:12 +1000

Fill Ozocubu's disconnected areas.

--------------------------------------------------------------------------------
f7c91af1f8 | Jude Brown | 2009-12-25 12:05:06 +1000

Add Purge's transparent flesh tiles.

--------------------------------------------------------------------------------
19b8243f7b | Jude Brown | 2009-12-25 11:55:25 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
750012d6a9 | Adam Borowski | 2009-12-25 02:42:20 +0100

Remove an empty typedef.

--------------------------------------------------------------------------------
8ea088ee38 | Jude Brown | 2009-12-25 02:39:05 +0100

Add another missing include.

--------------------------------------------------------------------------------
243d8f82f9 | Jude Brown | 2009-12-25 11:37:39 +1000

Add another missing include.

--------------------------------------------------------------------------------
97c650b116 | Jude Brown | 2009-12-25 11:20:27 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
701f0d3bae | Jude Brown | 2009-12-25 11:10:30 +1000

Make auto-travel killing toadstools saner.
Use wielded_weapon_check, though in this instance do not print a prompt.
This means that if you have previously been asked about your weapon and
say yes, it will kill toadstools while autoexploring.

This means no more "Really attack while wielding your bow?" prompts, and
it also should obey no-attack/etc inscriptions.

--------------------------------------------------------------------------------
fe8e010a84 | Jude Brown | 2009-12-25 11:02:38 +1000

Allow access to the memorisation screen regardless of spell levels. (FR #235)
This commit still prevents access to the screen when you have no books
available, but will suppress the "low XP" and "no spell levels"
warnings.

--------------------------------------------------------------------------------
3597a68805 | Enne Walker | 2009-12-24 20:00:16 -0500

Fixing rltiles compile.
Missing std includes. (Thanks, due).

--------------------------------------------------------------------------------
efa480596a | Enne Walker | 2009-12-24 19:47:01 -0500

[160] Fixing vaults not spawning in Pan.
Because layout vaults were changed to be true vaults rather than just
writing to grd, they also wrote MMT_OPAQUE.  This caused vault placement
to fail (usually) on top of the layout vaults.  Fixed by letting
MMT_VAULT be the only mask that causes vault placement to fail.

--------------------------------------------------------------------------------
9fc99a71b4 | Enne Walker | 2009-12-24 19:47:01 -0500

Updating zot.des due to previous rltiles change.

--------------------------------------------------------------------------------
67f150128c | Jude Brown | 2009-12-25 10:31:44 +1000

Remove Ely's dislike of butchery during prayer. (FR231)
As sacrifice is now simply praying over a corpse rather than butchering
while praying, butchering during pray to Ely should no longer be
construed as an attempt to sacrifice to her.

--------------------------------------------------------------------------------
d8bcaddd74 | Jude Brown | 2009-12-25 10:27:30 +1000

Adjust unique placement levels (dpeg).
Make A=2 instead of 3.

--------------------------------------------------------------------------------
52eb7cb1ac | Jude Brown | 2009-12-24 21:29:22 +1000

Actually let Mara generate (same area as Margery).

--------------------------------------------------------------------------------
9fcc7c4176 | Jude Brown | 2009-12-24 21:17:11 +1000

New (rakshasa) unique: Mara, Lord of Ilusions.
This re-uses several ideas from the Emerald Eye FR, and implements the
spell "Mislead": this grants the "Misled" status effect to the player,
and causes on-level monsters to appear (glyph, name and tile) to be
other monsters. Only their appearance is changed.

Healing potions and rain remove this status effect.

Mara also has a beefed-up version of the Rakshasa clone spell: it
instead creates an "exact" clone (slightly altered spells list, and
non-unique status for his clones). Only two will ever be created at
once.

Finally, he has the spell "Summon Player Ghost". This spell creates a
ghost of the player (though marked as a summon, meaning that it
(shouldn't) register a milestone, though it will be treated as a
self-ghost kill) that is hostile. Only one of these should be existant
at any one point in time.

I'm pretty sure that I haven't broken anything, but would definitely
appreciate someone sanity-checking this commit.

Known minor issue: Kirke's summon ugly things being cast while having
the Misled status causes them to show up with no glyph.

--------------------------------------------------------------------------------
bcc249f77c | Enne Walker | 2009-12-24 00:15:48 -0500

Basic support for tile recolouring.
Added %variation, %repeat, %desat, %lum, %hue, %pal, %resetcol commands
to rltiles.  Also, multiple enum synonyms can now be specified.
Documentation on all rltiles commands is forthcoming. Sorry.

Added coloured variations for a number of floor and wall tiles, removing
duplicate source art where it made sense.  The variations probably need
some adjusting to look less like fruit salad.

COLOUR in a vault specification will now automatically try to pick
coloured variations of basic floor and rock wall tiles by default.  It
will also pick coloured variations of any tiles specified by
FTILE/RTILE/TILE.

I'll leave it as an exercise for due to generalize this to features and
monsters.  tile_dngn_coloured (and corresponding functions for other tile
sheets) can be used to look up coloured variations for a given tile
index.

--------------------------------------------------------------------------------
5b9916a319 | Enne Walker | 2009-12-23 23:17:11 -0500

Fixing power-of-two image loading issue.
If any tile image was a power of two, it would use a different path to
load and swap R and B.

--------------------------------------------------------------------------------
4b8c9fc025 | Adam Borowski | 2009-12-24 02:02:06 +0100

Let ghouls wield vampiric weapons.  Change the wield fail message.

--------------------------------------------------------------------------------
d60fd07417 | Johanna Ploog | 2009-12-24 01:59:18 +0100

Improve Kirke's tile by removing the superfluous internal outlines.
(With thanks to Enne for pointing out the value of pixel art tutorials! :D)

--------------------------------------------------------------------------------
cdda3cfe04 | Johanna Ploog | 2009-12-23 23:13:16 +0100

Add base tiles for altars and statues (pedestal) to the UNUSED folder.

--------------------------------------------------------------------------------
419a15a2f1 | Johanna Ploog | 2009-12-23 23:13:16 +0100

Improved shaft tile.
The thicker outline makes it easily visible on *all* terrain types, and the
transparent gradient makes it fit differently coloured backgrounds. While I
was at it, I also corrected the shadows falling in the wrong direction.

Considering the shaft was my first tile back then, it's easy to see I've
become better at drawing them. I'm very happy with this one. :)

--------------------------------------------------------------------------------
b0c8e0751e | Adam Borowski | 2009-12-22 15:18:16 +0100

Add sixfirhies to summon_any_demon(), with a 3% chance in the middle tier.

--------------------------------------------------------------------------------
bc3529421a | Adam Borowski | 2009-12-22 15:07:58 +0100

Remove rPois and rC from monster merfolk, they can't drown anymore (Mantis 034).

--------------------------------------------------------------------------------
86fe0e02db | Adam Borowski | 2009-12-22 13:54:56 +0100

Make petrified and sleeping monsters not "fast" wrt Che piety gain and slouch.

--------------------------------------------------------------------------------
e4920e5fdf | Adam Borowski | 2009-12-22 12:41:24 +0100

Don't mimic potions of blood, they decay.

--------------------------------------------------------------------------------
19b368a30a | Adam Borowski | 2009-12-22 12:14:25 +0100

Don't destroy monster inventory prematurely -- banished/summoned mimics need it.

--------------------------------------------------------------------------------
123e41762d | Jude Brown | 2009-12-22 18:34:36 +1000

Vine-covered golem tile for Erinya's Garden (purge).

--------------------------------------------------------------------------------
98d71fd0a3 | Jude Brown | 2009-12-22 18:16:22 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
0e15cbcd05 | Jude Brown | 2009-12-22 14:44:11 +1000

Add a tile for Nikola (purge).

--------------------------------------------------------------------------------
452089b27e | Adam Borowski | 2009-12-21 17:05:33 +0100

Fix a crash with pickup of items with subtype=21 mysteriously failing.

--------------------------------------------------------------------------------
e73c57e244 | Steven Noonan | 2009-12-21 02:16:03 -0800

contribs: ignore more junk files
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b8bd27fabb | Steven Noonan | 2009-12-21 02:02:59 -0800

contribs: correct some minor build issues, ignore junk files
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5b7701dc9d | Adam Borowski | 2009-12-21 01:44:48 +0100

Short-circuit behaviour_event(), projectiles are not supposed to behave.

--------------------------------------------------------------------------------
c546c371c4 | Adam Borowski | 2009-12-21 01:44:36 +0100

Revert "Don't trust mon.foe, too many things mess with that."

--------------------------------------------------------------------------------
7512f07d9a | Adam Borowski | 2009-12-21 01:00:44 +0100

Actually use spell power.

--------------------------------------------------------------------------------
96abf90502 | Adam Borowski | 2009-12-20 23:11:01 +0100

Don't trust mon.foe, too many things mess with that.

--------------------------------------------------------------------------------
ea22cd80a5 | Adam Borowski | 2009-12-20 23:02:35 +0100

Make the "killing friend" conduct, slouch and swapping place treat projectiles 
as non-monsters.

--------------------------------------------------------------------------------
586a911d21 | Johanna Ploog | 2009-12-20 22:41:24 +0100

Add a turtleshaped altar tile for Cheibriados. Can still be improved.

--------------------------------------------------------------------------------
32b5cab8ca | Adam Borowski | 2009-12-20 22:20:10 +0100

Make orb-orb explosion prettier.

--------------------------------------------------------------------------------
c56e3c96ac | Johanna Ploog | 2009-12-20 21:52:15 +0100

Only inform wizmode players about lack of ghosts if they want to load one.

--------------------------------------------------------------------------------
3abead0503 | Johanna Ploog | 2009-12-20 21:52:15 +0100

Give shields of reflection the same price modifier as robes of resistance.

--------------------------------------------------------------------------------
397c47295f | Adam Borowski | 2009-12-20 20:34:32 +0100

Use dprf().

--------------------------------------------------------------------------------
679a19dda6 | Adam Borowski | 2009-12-20 20:30:43 +0100

Replace long debug message calls with dprf(), except for cases where a dumb 
compiler could call unnecessary functions.  For paranoia, I left even any uses 
of std::string.

--------------------------------------------------------------------------------
ab23b2d884 | Adam Borowski | 2009-12-20 20:30:37 +0100

dprf(...), does same as mprf(MSGCH_DIAGNOSTICS, ...) in debug builds, nothing 
otherwise.

--------------------------------------------------------------------------------
fe2bf66390 | Adam Borowski | 2009-12-20 19:09:23 +0100

Make clarity prevent berserk.  Only Trog may override this, and even then, 
there's a penalty to success rate.

--------------------------------------------------------------------------------
76442a6a83 | Adam Borowski | 2009-12-20 19:04:36 +0100

Homing.

--------------------------------------------------------------------------------
9dfbca5a88 | Robert Vollmert | 2009-12-20 18:08:24 +0100

Redo hud weapon display formatting.
Should now not clear next line by accident, fixing issue #223.

--------------------------------------------------------------------------------
85138818b7 | Adam Borowski | 2009-12-20 17:29:37 +0100

IOOD as a monster spell.

--------------------------------------------------------------------------------
198cb7cf63 | Adam Borowski | 2009-12-20 17:29:37 +0100

Stop tracers from complaining about the previous orb. Also, make them 
imprevious to disintegration -- should we explode instead?

--------------------------------------------------------------------------------
2425ac2d2f | Adam Borowski | 2009-12-20 17:29:37 +0100

Disallow targetting self.

--------------------------------------------------------------------------------
7db74e3bb5 | Adam Borowski | 2009-12-20 17:29:37 +0100

Fix visibility for hitting a wall just out of LOS.

--------------------------------------------------------------------------------
38abbd0d71 | Adam Borowski | 2009-12-20 17:29:37 +0100

When two orbs collide, make a big boom!

--------------------------------------------------------------------------------
b161ada09a | Adam Borowski | 2009-12-20 17:29:36 +0100

Announce when an iood hits a wall.

--------------------------------------------------------------------------------
75cf943abb | Adam Borowski | 2009-12-20 17:29:36 +0100

Tloc smoke trail.  Doesn't look good IMO, I'd replace it with normal 
transparent smoke.

--------------------------------------------------------------------------------
8e45c6edf1 | Adam Borowski | 2009-12-20 17:29:36 +0100

Make debug messages show only in debug builds.

--------------------------------------------------------------------------------
0cebeb433d | Adam Borowski | 2009-12-20 17:29:36 +0100

Iskenderun's Orb of Destruction

--------------------------------------------------------------------------------
7e4b512c4c | Adam Borowski | 2009-12-20 16:42:17 +0100

A vault with archer/warrior/wizard statues.

--------------------------------------------------------------------------------
249e014a29 | Adam Borowski | 2009-12-20 14:39:11 +0100

Fix mummies being unable to use vampiric weapons (in line with the FR and 
former behaviour).

--------------------------------------------------------------------------------
948af24915 | Adam Borowski | 2009-12-20 14:06:24 +0100

Slouch shouldn't damage those who can't move.

--------------------------------------------------------------------------------
14cc4b127e | Adam Borowski | 2009-12-20 03:21:22 +0100

A giant one-space typo.

--------------------------------------------------------------------------------
eb11a5fe64 | Stefan O'Rear | 2009-12-19 16:27:02 -0800

Sticky flame negates invisibility (myuzinn)

--------------------------------------------------------------------------------
858e7e3ec5 | Johanna Ploog | 2009-12-19 22:05:38 +0100

Add reaping brand tile by rsaarelm, thanks!

--------------------------------------------------------------------------------
461330f336 | Johanna Ploog | 2009-12-19 21:45:15 +0100

Ah, what the heck! Fainting is funny even if there are no monsters around.

--------------------------------------------------------------------------------
747eee0fa5 | Johanna Ploog | 2009-12-19 21:35:32 +0100

Raise minimum xp level for Xom's animated weapon event. Under penance, this is 
always allowed.

--------------------------------------------------------------------------------
2268822945 | Johanna Ploog | 2009-12-19 21:30:27 +0100

Xom thinks it's funny if you faint from hunger while tension is > 0.

--------------------------------------------------------------------------------
090149e113 | Johanna Ploog | 2009-12-19 21:26:01 +0100

Only check the monster paths for monsters within los.

--------------------------------------------------------------------------------
d981be314e | Johanna Ploog | 2009-12-19 20:51:00 +0100

Don't make monsters fully encaged in glass increase the tension.

--------------------------------------------------------------------------------
c3e6c4afd5 | Johanna Ploog | 2009-12-19 18:48:50 +0100

Add purge's tile for the wielded demon blade. Thanks!

--------------------------------------------------------------------------------
0194e3ae59 | Johanna Ploog | 2009-12-19 16:33:08 +0100

Fix Xom acts also being suppressed for the &X command.

--------------------------------------------------------------------------------
5502e2dc99 | Jude Brown | 2009-12-19 19:05:42 +1000

Implement Summon Butterflies as a monster spell.

--------------------------------------------------------------------------------
76fbdc86b3 | Jude Brown | 2009-12-19 19:02:37 +1000

Add a tile for Khufu (purge).
Thanks!

--------------------------------------------------------------------------------
d218309c47 | Jude Brown | 2009-12-19 16:29:24 +1000

Add fleshy doors and (temporary) transparent flesh walls for Cigotuvi's.

--------------------------------------------------------------------------------
bacea2f697 | Jude Brown | 2009-12-19 16:29:10 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
cd25b9d47f | Jude Brown | 2009-12-19 16:15:15 +1000

Make KMASK: c = no_wall_fixup work. (nrook)

--------------------------------------------------------------------------------
3f8fcfb513 | Jude Brown | 2009-12-19 15:45:29 +1000

Extend lua feat library for feat_is_door.

--------------------------------------------------------------------------------
9cfc4ea7c8 | Jude Brown | 2009-12-19 15:20:09 +1000

Allow vaults to specify door tiles sets.
In this instance, you need at least two tiles (closed, open), and up to
nine (detected, closed, gateway left open, middle open, right open,
closed, left closed, middle closed, right closed), and these should
always include the "no_random" option.

This also doesn't properly deal with detected doors.

--------------------------------------------------------------------------------
c0020f5a1c | Jude Brown | 2009-12-19 15:11:56 +1000

Add feat_is_door.

--------------------------------------------------------------------------------
7a7711583a | Johanna Ploog | 2009-12-18 23:52:19 +0100

Fix Xom still banishing at early xp levels when bored.

--------------------------------------------------------------------------------
b2f09ceeac | Johanna Ploog | 2009-12-18 23:52:19 +0100

Sometimes suppress good Xom events at 0 tension, bad acts at tension > 0.
Note that a good act is not changed to a bad one, or vice versa. Rather, Xom
simply doesn't act after all, so that overall, bad acts become more likely
when the player is just walking around, without actually making the game
nastier.

This should make the tension effect actually noticeable in-game. Hopefully,
this will also reduce the number of item gifts while simply walking around.

--------------------------------------------------------------------------------
ad2ab46004 | Johanna Ploog | 2009-12-18 23:52:19 +0100

Under Xom's penance, don't limit number of hostile demons summoned.

--------------------------------------------------------------------------------
a515e3fef2 | Johanna Ploog | 2009-12-18 23:52:19 +0100

Skills unusable with your current god are less likely in manual acquirement.

--------------------------------------------------------------------------------
246140dae9 | Johanna Ploog | 2009-12-18 23:52:19 +0100

Acquirement should never give Demigods manuals of Invocations.

--------------------------------------------------------------------------------
a57fb3fd47 | Robert Vollmert | 2009-12-18 08:20:09 +0100

Move Nessos a bit earlier.
He's reasonably interesting, but seems a little out of his
depth from the last 10 encounters on c.d.o that I've watched.

--------------------------------------------------------------------------------
2eaf880b8c | Adam Borowski | 2009-12-18 00:42:50 +0100

When a kraken dies due to a tentacle being damaged, temp revive the tentacle so 
post-hit effects can take place.

--------------------------------------------------------------------------------
d96a6c804f | Adam Borowski | 2009-12-18 00:42:50 +0100

A wizard command "x,", to bring a mon down to 1hp. It could be made to ask for 
a specific number, but I'm too lazy to code that right now.

--------------------------------------------------------------------------------
3a67b94669 | Johanna Ploog | 2009-12-17 23:50:21 +0100

Fix 2916323: move an ASSERT inside a DEBUG #ifdef.
The variable wasn't even declared outside the DEBUG check.

--------------------------------------------------------------------------------
aeb5ddbd1b | Robert Vollmert | 2009-12-17 22:17:33 +0100

Update spell hunger documentation.

--------------------------------------------------------------------------------
dd1ef1f939 | Robert Vollmert | 2009-12-17 21:50:26 +0100

Reduce siren and orc warlord noise to LOS radius.
After all, that's the area they affect.

--------------------------------------------------------------------------------
c8ee7010be | Robert Vollmert | 2009-12-17 21:50:26 +0100

Bring down random uselessness noise levels.
These probably don't have a huge gameplay effect, but it's closer to
the miscast noises.

--------------------------------------------------------------------------------
73eea24134 | Robert Vollmert | 2009-12-17 21:38:33 +0100

Reduce miscast loudness drastically.
These were unreasonably loud. They could be louder than
this, but we should be careful not to make stealthy
play too difficult.

--------------------------------------------------------------------------------
5aaecc4b6f | Robert Vollmert | 2009-12-17 21:38:33 +0100

Fix shopping list uninitialized asserts in 'crawl -test'.

--------------------------------------------------------------------------------
5c9c66d113 | Robert Vollmert | 2009-12-17 17:06:51 +0100

Disallow apporting from the map boundary (shop inventories).

--------------------------------------------------------------------------------
5eb6eed0ac | Robert Vollmert | 2009-12-17 17:05:58 +0100

Don't draw anything but features on map boundary.
This should fix the shop inventories being visible in open sea.

--------------------------------------------------------------------------------
7ff0bb74bc | Robert Vollmert | 2009-12-17 16:49:07 +0100

Stop shift-running at map boundary.

--------------------------------------------------------------------------------
e673127cb4 | Robert Vollmert | 2009-12-17 16:43:39 +0100

Allow beams to bounce on the map border.

--------------------------------------------------------------------------------
bbe853ff8b | Robert Vollmert | 2009-12-17 16:34:57 +0100

Fix crash when targetting the map boundary.
Fixes bug #151.

--------------------------------------------------------------------------------
354816b2ff | Robert Vollmert | 2009-12-17 15:51:51 +0100

Fix bad varargs handling.
You can't pass a va_list to a variadic function.

--------------------------------------------------------------------------------
1ab177757b | Adam Borowski | 2009-12-17 12:48:02 +0100

Replace static snprintf() with make_sprintf() where the result is immediately 
cast to std::string.

--------------------------------------------------------------------------------
c266f14414 | Adam Borowski | 2009-12-17 11:38:36 +0100

Use snprintf() on DOS, we don't want crashes.  Non-ancient compilers have it. 
Preferably, we would detect the presence of such functions, but _some_ folks 
oppose feature tests.

--------------------------------------------------------------------------------
b7d134a9c8 | Adam Borowski | 2009-12-17 11:29:22 +0100

In make_sprintf(), don't call sprintf() twice if the first call succeeds. This 
spares us the second call, a malloc() and free() in 99.999% cases.

--------------------------------------------------------------------------------
51f76411e2 | Adam Borowski | 2009-12-17 11:21:14 +0100

Make make_sprintf() actually work when there are any arguments. va_begin and 
va_end let you traverse the list of arguments just once, you need to call them 
again for another go.

--------------------------------------------------------------------------------
941e86d30e | Adam Borowski | 2009-12-17 10:24:49 +0100

Put all armour brand logic into one place; this fixes an assert crash.

--------------------------------------------------------------------------------
795d91157c | Robert Vollmert | 2009-12-17 10:08:26 +0100

A different fix to --more-- overwriting the last line.
This should remove the current abundance of more prompts.

--------------------------------------------------------------------------------
f47020b3d8 | Robert Vollmert | 2009-12-17 09:49:45 +0100

Revert "Do also increment message count for prompts."
This reverts commit 6efa910975ee9276ad90a84016a4bbece541448c.

--------------------------------------------------------------------------------
9deab55988 | Jude Brown | 2009-12-17 18:20:51 +1000

Milestones for polymorphed uniques.
This sets monster::props["original_was_unique"] to a boolean value. This
value is also carried across polymorphs, so polymorphing multiple times
will still generate a milestone.

--------------------------------------------------------------------------------
386ab752ac | Eino Keskitalo | 2009-12-17 09:58:16 +0200

Add a nick to the CIA lookup table.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3943cc4256 | Jude Brown | 2009-12-17 16:57:39 +1000

Wrapper for "divine retribution": debug.god_wrath(god, bonus).

--------------------------------------------------------------------------------
df67479383 | Jude Brown | 2009-12-17 16:57:38 +1000

Switch Cheibriados' wrath to sleep, not hibernation.
This means that it cannot be bypassed by simply having adequate cold
resistance. player::put_to_sleep with a power of fifty is congruent with
hibernation's default power, besides the rolls.

--------------------------------------------------------------------------------
58dbfedffb | Darshan Shaligram | 2009-12-17 12:15:14 +0530

Report Lua marker property errors on the error channel (due).

--------------------------------------------------------------------------------
70c76ef768 | Jude Brown | 2009-12-17 16:23:41 +1000

Actually use previous added tiles.

--------------------------------------------------------------------------------
563c49bab4 | Jude Brown | 2009-12-17 15:57:12 +1000

Add more tiles for Cigotuvi WizLab.
This includes deformed human (sickly green, with a single wing), a deformed
elf (horrible fleshy grey colour with a hole in the middle), and a
deformed orc (missing an arm and part of its face).

Also, add a tile for "flesh golem". This is basically a reworked stone
golem, using some colours from the wall_flesh series of tiles. Might be
a bit dark, but it looks okay at the minute.

--------------------------------------------------------------------------------
bcded162d4 | Jude Brown | 2009-12-17 15:40:35 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
b87aa0f9d3 | Jesse Luehrs | 2009-12-16 23:32:58 -0600

remove line length limit for .des files

--------------------------------------------------------------------------------
fc4c1660e5 | Jude Brown | 2009-12-17 13:40:59 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
761b088e91 | Johanna Ploog | 2009-12-17 01:53:40 +0100

Add a tile for Maurice. :)
Might be a bit too hard to see on some textures, though I tested it in all
branches.

--------------------------------------------------------------------------------
013eca8ddb | Adam Borowski | 2009-12-16 16:24:15 +0100

A couple more SHT messages (Zauren).  MOAR!

--------------------------------------------------------------------------------
1a5d9e2987 | Adam Borowski | 2009-12-16 16:16:05 +0100

Give a thematic message when Summon Horrible Things drains int. (Eronarn)

--------------------------------------------------------------------------------
adea42fe53 | Eino Keskitalo | 2009-12-16 16:52:34 +0200

Provide another pillar for dancing in the forest entry vault.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ff1d25ff47 | David Lawrence Ramsey | 2009-12-16 08:51:27 -0600

Fix a few more "grey snake" -> "anaconda" references.

--------------------------------------------------------------------------------
516d77dd6e | Eino Keskitalo | 2009-12-16 16:43:43 +0200

Move spl-dat.txt to docs/obsolete, remove docs/historical.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1ad4408f77 | Adam Borowski | 2009-12-16 14:11:31 +0100

Rename grey snakes to anacondas.  Give them constriction, message-only for now.

--------------------------------------------------------------------------------
305ccfbf1b | Eino Keskitalo | 2009-12-16 14:58:22 +0200

Change part of the pan lord warning message all the four lords share. (Eronarn)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f6803f5545 | Eino Keskitalo | 2009-12-16 14:12:29 +0200

Use explicit upward escape hatches on Hive:2, Vaults:8 and Vestibule.
The used to have downward stairs and be converted to upward escape hatches.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
7344b40499 | Adam Borowski | 2009-12-16 10:37:52 +0100

Fix mimics getting the heap brand when not standing over items.

--------------------------------------------------------------------------------
6bd4b1027a | Adam Borowski | 2009-12-16 10:32:59 +0100

Add the missing name for SPARM_NORMAL ("").

--------------------------------------------------------------------------------
fef2c6f069 | Jude Brown | 2009-12-16 18:15:31 +1000

Tweak 'tile:' specifier for monsters.
No longer automatically prepends 'mons_', as this is not a standard.
Instead, generates an error for invalid tiles. Update documentation and
uses.

--------------------------------------------------------------------------------
349da9e285 | Jesse Luehrs | 2009-12-16 00:33:50 -0600

fix incorrect item heap branding

--------------------------------------------------------------------------------
92d22c5ad9 | Jesse Luehrs | 2009-12-16 00:31:42 -0600

silence some warnings

--------------------------------------------------------------------------------
5d66ced3af | Jesse Luehrs | 2009-12-16 00:14:40 -0600

Revert "Remove hard skill pool cutoff."
This reverts commit c652cbec1739a628f87aedc4874c782429f8d7ce.

This really needs more discussion; the current implementation isn't
reallly reasonable

--------------------------------------------------------------------------------
eb57a1698a | David Ploog | 2009-12-16 05:30:24 +0100

Repair quadcrypt vault (Neil).

--------------------------------------------------------------------------------
c16de2dd43 | Johanna Ploog | 2009-12-16 00:37:57 +0100

Also handle manuals' skills in book acquirement statistics.

--------------------------------------------------------------------------------
c8a2ada59f | Johanna Ploog | 2009-12-16 00:37:57 +0100

Don't use terse output for spellbook acquirement statistics.

--------------------------------------------------------------------------------
4bfec60944 | Johanna Ploog | 2009-12-16 00:37:57 +0100

Also handle fixed level randart books in acquirement statistics.

--------------------------------------------------------------------------------
cccc238366 | Johanna Ploog | 2009-12-16 00:37:56 +0100

Add religion to acquirement statistics output.

--------------------------------------------------------------------------------
615f045509 | Johanna Ploog | 2009-12-16 00:37:56 +0100

For the acquirement statistics, count unseen/total spells per discipline.

--------------------------------------------------------------------------------
eafd79ae66 | Johanna Ploog | 2009-12-16 00:37:56 +0100

Don't mark books acquired during acquirement statistics as "seen".
This _could_ be useful for the question "Which books can I expect to have
seen after N acquirements?"

However, when running the acquirement statistics I prefer a slightly
different question: "What are the chances of getting a certain book in
this precise situation?"

Don't know which of the two is the "correct" one, but I think it is annoying
if I have to recreate a character for my book acquirement statistics just
because the old one already "saw" all interesting spells, thus heavily
skewing the results.

--------------------------------------------------------------------------------
88cc1ee262 | Johanna Ploog | 2009-12-16 00:37:56 +0100

Shorten acquirement debug statistics' header to the basic information.

--------------------------------------------------------------------------------
d2d7498a24 | Johanna Ploog | 2009-12-16 00:37:56 +0100

Add wands to acquirement statistics.

--------------------------------------------------------------------------------
499f07fc51 | Johanna Ploog | 2009-12-16 00:37:56 +0100

Count primary disciplines in themed randart book acquirement statistics.

--------------------------------------------------------------------------------
381bd5c28b | Johanna Ploog | 2009-12-16 00:37:56 +0100

Print the overview screen and skills in the acquirement statistics output.

--------------------------------------------------------------------------------
4ae94589a3 | Johanna Ploog | 2009-12-16 00:37:55 +0100

Add autoinscriptions when creating an artefact in wizard mode.

--------------------------------------------------------------------------------
dffde3bb59 | Robert Vollmert | 2009-12-15 21:56:53 +0100

Bump major version.
Increase of ART_PROPERTIES caused asserts in artefact.cc.

--------------------------------------------------------------------------------
b6f7e68151 | Adam Borowski | 2009-12-15 16:03:26 +0100

Explicitely forbid fire res, cold res and resistance brands on da, ida and gda.

--------------------------------------------------------------------------------
7fa010c5fe | Adam Borowski | 2009-12-15 15:49:46 +0100

Autoinscribe armour brands.

--------------------------------------------------------------------------------
a80d16e06a | Adam Borowski | 2009-12-15 15:49:46 +0100

Autogenerated junk. Someone remind me why exactly do we keep this under version 
control?

--------------------------------------------------------------------------------
ba0dc93455 | Adam Borowski | 2009-12-15 15:49:46 +0100

Remove code duplication by making artifacts use SPARM_SPIRIT_SHIELD.

--------------------------------------------------------------------------------
ded9e45204 | Robert Vollmert | 2009-12-15 15:41:33 +0100

Rehide triggered shaft traps.
This should fix shaft milestones not being reported (bug #157),
and also make the shaft destination logic work as apparently
intended.

--------------------------------------------------------------------------------
d27f7d3379 | Johanna Ploog | 2009-12-15 15:46:37 +0100

Remove some debugging statements.

--------------------------------------------------------------------------------
cfb6bcb25a | Johanna Ploog | 2009-12-15 15:32:28 +0100

Sometimes give the hat of Pondering to Gastronok.

--------------------------------------------------------------------------------
df34198b7d | Johanna Ploog | 2009-12-15 15:32:28 +0100

Add the unrandart "hat of Pondering" (ponderousness).

--------------------------------------------------------------------------------
897011da36 | Johanna Ploog | 2009-12-15 15:32:27 +0100

Fix all branded unrandarts being created cursed.

--------------------------------------------------------------------------------
078604b473 | Johanna Ploog | 2009-12-15 15:32:27 +0100

Allow artefact armours to use "brands", i.e. egos.

--------------------------------------------------------------------------------
28cd903a83 | Adam Borowski | 2009-12-15 14:14:20 +0100

Constify g{et,ive}_mimic_item(). (by)

--------------------------------------------------------------------------------
72a55c4b5b | Johanna Ploog | 2009-12-15 13:51:14 +0100

Fix tiles compilation.

--------------------------------------------------------------------------------
bbf3ca601f | Johanna Ploog | 2009-12-15 13:22:56 +0100

Make Gastronok's wizard hat a "good item". Still just +0, a lot of the time.

--------------------------------------------------------------------------------
4dee9d6d1f | Robert Vollmert | 2009-12-15 12:11:57 +0100

TODO comment.

--------------------------------------------------------------------------------
4f7f129924 | Robert Vollmert | 2009-12-15 11:58:49 +0100

Add message flushing and clearing.
mesclr is still a dummy of sorts.

--------------------------------------------------------------------------------
1e11d23c6d | Robert Vollmert | 2009-12-15 11:37:58 +0100

Merge branch 'master' into messagewindow
Conflicts:
	crawl-ref/source/libgui.cc
	crawl-ref/source/libgui.h
	crawl-ref/source/message.cc

--------------------------------------------------------------------------------
b40b28c874 | Robert Vollmert | 2009-12-15 11:29:30 +0100

Semi-functional message window.
Messages are now being output. They're not flushed on time yet,
more prompts aren't implemented, neither are the various options.

--------------------------------------------------------------------------------
7f23ed5b3f | Robert Vollmert | 2009-12-15 11:29:19 +0100

Reduce message.cc includes.

--------------------------------------------------------------------------------
16e1641c1e | David Ploog | 2009-12-15 05:20:38 +0100

Make bear cage vault autoexplore-proof.

--------------------------------------------------------------------------------
f5ad2d06f0 | Adam Borowski | 2009-12-15 00:06:49 +0100

Make mimics hold the item they're mimicking, instead of fragile hacks with 
saving RNG state.

--------------------------------------------------------------------------------
08b32044b9 | Adam Borowski | 2009-12-15 00:06:49 +0100

A way to remove monsters without getting "program bug" in old saves.

--------------------------------------------------------------------------------
7745f7e3ad | Johanna Ploog | 2009-12-14 22:52:25 +0100

Add Xom's pseudo banishment to the list of effect names for debugging.

--------------------------------------------------------------------------------
8d5bc24353 | Johanna Ploog | 2009-12-14 22:13:09 +0100

Only allow Xom's animate weapon effect for xp 4 and upwards.

--------------------------------------------------------------------------------
3b2184fee6 | Johanna Ploog | 2009-12-14 22:13:09 +0100

Increase Xom's banishment chances again once xp > 8.

--------------------------------------------------------------------------------
954cd9dd74 | Johanna Ploog | 2009-12-14 22:13:09 +0100

Remove a debugging statement.

--------------------------------------------------------------------------------
5d63d987b7 | Johanna Ploog | 2009-12-14 22:13:09 +0100

Limit number of demons summoned by experience level.

--------------------------------------------------------------------------------
539dbf5709 | Johanna Ploog | 2009-12-14 22:13:09 +0100

Increase tension in the Abyss by a factor of 3/2.
Not sure if this matters to anyone except Xom.

--------------------------------------------------------------------------------
7da14e8092 | Johanna Ploog | 2009-12-14 22:13:09 +0100

Restrict Xom's banishment effect to xp > 8, or xp > 5 if bored. Also, allow Xom 
to sometimes revert a banishment right after exacting it.

--------------------------------------------------------------------------------
2033e2af04 | Robert Vollmert | 2009-12-14 20:05:31 +0100

Implement rng pushing and popping for sha256 hardened prng (Adeon)
the rng.cc used to call just push_mt_state which bypassed the
hashing process and didn't return the state as it was after
popping the state

Fixes bug #52.

--------------------------------------------------------------------------------
09636d72ed | Robert Vollmert | 2009-12-14 18:36:54 +0100

Implement dolls_data copy assingment operator.
Hopefully, this fixes #189.

--------------------------------------------------------------------------------
33836a9a7f | Robert Vollmert | 2009-12-14 18:15:28 +0100

Fix formatting.

--------------------------------------------------------------------------------
e26588af61 | Johanna Ploog | 2009-12-14 17:13:08 +0100

Colour completely inactive mutations (for Vampires) darkgrey. Also, partially 
inactive mutations are bracketed.

--------------------------------------------------------------------------------
4f1494ceb0 | Johanna Ploog | 2009-12-14 17:00:11 +0100

Prevent Maurice from stealing something when confused.
Also add some appropriate messages for this case.

--------------------------------------------------------------------------------
7d826f1228 | Adam Borowski | 2009-12-14 13:20:21 +0100

Fix label at an end of block.

--------------------------------------------------------------------------------
7b4b174763 | Adam Borowski | 2009-12-14 12:50:49 +0100

Revert "Allow worshippers of good gods to kill hostile-neutral beings."

--------------------------------------------------------------------------------
421ef9076d | Adam Borowski | 2009-12-14 12:49:55 +0100

Make folks pacified via Evilyon neutral-hostile (dpeg).

--------------------------------------------------------------------------------
ae60902e58 | Adam Borowski | 2009-12-14 12:41:54 +0100

Remove a misleading statement that's nearly no-op.

--------------------------------------------------------------------------------
9052b54387 | Adam Borowski | 2009-12-14 01:00:49 +0100

Fix equip funcs of artefact armour and jewelry being called with no show_msgs.

--------------------------------------------------------------------------------
a69acd1169 | Adam Borowski | 2009-12-14 00:48:50 +0100

Revert "Remove Robe of Clouds' equip message."

--------------------------------------------------------------------------------
9fb414849e | Adam Borowski | 2009-12-14 00:45:31 +0100

Let sixfirhies spawn in Pan.

--------------------------------------------------------------------------------
c9b30db022 | Johanna Ploog | 2009-12-13 20:12:32 +0100

Remove messages about monsters "peering into the shadows".
With sense/see invisible being included in monster descriptions it's not
necessary any more and only serves in making monster status longer.

--------------------------------------------------------------------------------
3fe33bab44 | Johanna Ploog | 2009-12-13 20:01:09 +0100

Add missing include to fix my previous commit.

--------------------------------------------------------------------------------
6434f5435b | Johanna Ploog | 2009-12-13 19:59:36 +0100

Use the trap_prompt option to decide whether disarming traps prompts you.

--------------------------------------------------------------------------------
4c86a4c178 | Johanna Ploog | 2009-12-13 19:56:17 +0100

Don't disallow trap disarming if there's a harmless cloud in the way.

--------------------------------------------------------------------------------
0eada15f56 | Johanna Ploog | 2009-12-13 19:55:57 +0100

Don't let "You are standing in the rain" interrupt resting.

--------------------------------------------------------------------------------
27f8296229 | Johanna Ploog | 2009-12-13 19:55:05 +0100

Prompt when trying to disarm traps with hp < specified for trapwalk.lua.

--------------------------------------------------------------------------------
ada4ca321b | Johanna Ploog | 2009-12-13 18:22:17 +0100

Really add the Crazy Yiuf tile.

--------------------------------------------------------------------------------
46408de254 | Johanna Ploog | 2009-12-13 18:21:32 +0100

Add a section of differences to other roguelikes to the FAQ.

--------------------------------------------------------------------------------
1d2afe79f4 | Johanna Ploog | 2009-12-13 17:26:56 +0100

Add a tile for Crazy Yiuf.
This is basically my old Grum design with a beard. :)
Also reorder the nonhuman unique tiles in tilepick.cc by glyph and use the
base monster tiles as placeholders for those that don't have a tile yet,
which should be an improvement over displaying question marks.

--------------------------------------------------------------------------------
8e05ca48a4 | Johanna Ploog | 2009-12-13 16:02:26 +0100

Replace the giant leech tile with a version that should be more visible.

--------------------------------------------------------------------------------
3773414c38 | Johanna Ploog | 2009-12-13 16:00:13 +0100

Use a recoloured guardian serpent tile for Aizul.
Also add an older tile of Aizul I made before the guardian serpent decision
into the UNUSED tiles folder. We can use it for some (other) naga unique.

--------------------------------------------------------------------------------
e86c5d67d5 | Steven Noonan | 2009-12-12 16:11:59 -0800

player.{cc,h}: fix copy constructor for dolls_data struct
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
14bfaca7e0 | Steven Noonan | 2009-12-12 15:49:14 -0800

tiles: only include tiledef-*.h in files where they're needed
This eliminates the annoying full rebuild that happens when the tiledefs
are modified.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3325e63310 | Adam Borowski | 2009-12-13 00:06:16 +0100

Allow worshippers of good gods to kill hostile-neutral beings. This is still an 
unchivalric act for TSO since they don't seek you out as aggressively as normal 
hostiles.

--------------------------------------------------------------------------------
92bf67d036 | Adam Borowski | 2009-12-13 00:06:16 +0100

Rename ENCH_NEUTRAL to ENCH_TEMP_PACIF since it's what it does. Also, keep 
afflicted monsters from attacking the player.  It's bad if they just got 
"impressed by your words" yet they hunt you and you can't even fight back.

--------------------------------------------------------------------------------
a6622f0a21 | Adam Borowski | 2009-12-13 00:06:16 +0100

Make perma-pacified monsters good_neutral instead of neutral. This means they 
won't attack the player.
Perma-pacifying can currently occur for:
* Ely's healing
* Zin's "totally impressed" (an extreme case of recite)
* Pikel's slaves being freed

--------------------------------------------------------------------------------
3cb73e26c3 | Adam Borowski | 2009-12-13 00:06:16 +0100

Describe good_neutral monsters differenly from neutral (hostile to you) ones.

--------------------------------------------------------------------------------
b3c353bf56 | Jesse Luehrs | 2009-12-12 16:38:57 -0600

remove code for old minor tags

--------------------------------------------------------------------------------
86e253afdc | Johanna Ploog | 2009-12-12 22:44:44 +0100

Add tiles for rain clouds and mutagenic fog.

--------------------------------------------------------------------------------
bcd6d56029 | Adam Borowski | 2009-12-12 22:17:35 +0100

Allow setting monster's friendliness with att:XXX.

--------------------------------------------------------------------------------
19ed4e0af0 | Jesse Luehrs | 2009-12-12 12:17:22 -0600

allow -save-version to take actual filenames too

--------------------------------------------------------------------------------
37c0c9ef30 | Jesse Luehrs | 2009-12-12 11:54:28 -0600

add a --save-version option for checking a player's save file version

--------------------------------------------------------------------------------
f2a4951d8e | David Ploog | 2009-12-12 01:41:11 +0100

More sanity for demon altar vault (due).

--------------------------------------------------------------------------------
f8a60f7513 | Johanna Ploog | 2009-12-11 23:09:58 +0100

Fix tiles compilation by using the guardian serpent corpse tile.

--------------------------------------------------------------------------------
189ca3377b | David Ploog | 2009-12-11 18:27:43 +0100

Add Matthew's speech for guardian serpents.

--------------------------------------------------------------------------------
305b967be4 | Johanna Ploog | 2009-12-11 17:05:06 +0100

Fix a comment.

--------------------------------------------------------------------------------
4476ddab6e | Johanna Ploog | 2009-12-11 17:02:39 +0100

Add a new guardian serpent tile. Move guardian naga tile -> UNUSED.

--------------------------------------------------------------------------------
20bbb617e3 | Adam Borowski | 2009-12-11 13:28:44 +0100

Berserk is a state of mind, so mindless mons shouldn't zerk.

--------------------------------------------------------------------------------
0f87da22f3 | Adam Borowski | 2009-12-11 12:55:47 +0100

Give whips a third damage verb (Mantis 0000143).

--------------------------------------------------------------------------------
7bbf91ea26 | Adam Borowski | 2009-12-11 12:29:50 +0100

Generic fallbacks for non-humanoid wizards casting. Also fixes @objective@ in 
spell messages.

--------------------------------------------------------------------------------
a94ec41b50 | Adam Borowski | 2009-12-11 12:15:29 +0100

Rename guardian nagas to guardian serpents. The tile is left untouched for now.

--------------------------------------------------------------------------------
ec0ce305e8 | Adam Borowski | 2009-12-11 11:32:52 +0100

If we explicitely give mon a ranged weapon, pre-wield it. This already is the 
case for weapons generated by default.

--------------------------------------------------------------------------------
630655e6f0 | Jude Brown | 2009-12-11 20:25:11 +1000

Add tiles for Wucad Mu's ghosts, descriptions.

--------------------------------------------------------------------------------
54c2ea1ac1 | Adam Borowski | 2009-12-11 11:08:59 +0100

Use AT_ not AF_ for WEAP_ONLY, so statues won't use bows like a cudgel.

--------------------------------------------------------------------------------
5b107528c6 | Jude Brown | 2009-12-11 19:46:38 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
b87399f832 | Adam Borowski | 2009-12-11 01:49:15 +0100

A vault featuring an archer statue.

--------------------------------------------------------------------------------
3294e3da73 | Adam Borowski | 2009-12-11 01:38:10 +0100

A blank "statue" monster, to be redefined by vaults.

--------------------------------------------------------------------------------
9e885d6d13 | Jude Brown | 2009-12-11 09:54:15 +1000

Actually add the aforementioned tile (jpeg).
Whoops!

--------------------------------------------------------------------------------
b4339d1973 | Adam Borowski | 2009-12-11 00:32:18 +0100

Don't autopickup known amulets of guardian spirit, but do rings whose power 
stacks. The only way to have amulet type identified is to already have one.

--------------------------------------------------------------------------------
abc77db2db | Robert Vollmert | 2009-12-10 16:34:45 +0100

cgotoxy now takes GotoRegion instead of int.

--------------------------------------------------------------------------------
7a07c0abc0 | Robert Vollmert | 2009-12-10 16:32:41 +0100

Remove unused GOTO_LAST.

--------------------------------------------------------------------------------
f1ef80cc67 | Johanna Ploog | 2009-12-10 14:24:40 +0100

Tidy up bracket placement according to our coding conventions.

--------------------------------------------------------------------------------
0a718b7a41 | Jude Brown | 2009-12-10 21:50:41 +1000

A start on the Ozocubu vault.

--------------------------------------------------------------------------------
4b71037efe | Johanna Ploog | 2009-12-10 12:26:55 +0100

Fix a pronoun in Chei's description.

--------------------------------------------------------------------------------
b5174dd8fb | Jude Brown | 2009-12-10 18:45:53 +1000

New tile: plant_crypt for withered plants in Crypt vaults. (Eino)
Useable with the syntax "plant tile:withered_plant". Not strictly
limited to Crypt, of course.

--------------------------------------------------------------------------------
c06a6dcbe2 | Jude Brown | 2009-12-10 18:20:18 +1000

Overriding monster tiles in vault definitions.
It is now possible to specify a tile for monsters when specifying
monsters in vault definitions. The syntax is "tile:<tile name>". All
tiles that don't start with "mons_" will have this prefixed, therefore
"tile:giant_bat" will become "tile:mons_giant_bat", but "tile:mons_rat"
will remain unchanged.

--------------------------------------------------------------------------------
2c6f84f7b2 | Robert Vollmert | 2009-12-10 08:34:11 +0100

Make orb run demons seek the player.
Commit c2a93a39 fixed a bug where all randomly spawned monsters
were generated aware of the player. However, for the pan run
demons, having them seek the player is probably a good idea,
so I'm reactivating this explicitly.

--------------------------------------------------------------------------------
1938b31a10 | Robert Vollmert | 2009-12-10 08:03:32 +0100

Functional message history.
It's currently unfiltered, but that will be easy to add.

--------------------------------------------------------------------------------
fef781932a | Robert Vollmert | 2009-12-10 08:03:11 +0100

Wrap message string in channel colour (ugh).
Also remove line-breaking from mpr. This should be done on display.

--------------------------------------------------------------------------------
076bae805c | Jude Brown | 2009-12-10 15:13:45 +1000

Pre-emptively adjust Aizul. (dpeg)
In preparation for the guardian naga -> guardian serpent change. A
compromise of sorts.

--------------------------------------------------------------------------------
0300c8a132 | Jude Brown | 2009-12-10 15:10:17 +1000

Give Cigotuvi's map fleshy walls.

--------------------------------------------------------------------------------
185ea02157 | Jude Brown | 2009-12-10 11:28:37 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
c602df19e3 | Jude Brown | 2009-12-10 11:00:54 +1000

Minor tweaks to TILE: specifier.

--------------------------------------------------------------------------------
9f4bc8c473 | Jude Brown | 2009-12-10 11:00:53 +1000

Remove extraneous safety code from maps.
you.teleport_to now does most of this in-house, as well as displacement.
The moving of monsters at the location is now no longer necessary.

--------------------------------------------------------------------------------
33369e6dae | Adam Borowski | 2009-12-10 01:00:10 +0100

If you can't move (paralyzed or slept), you won't move towards sirens.

--------------------------------------------------------------------------------
358e7b7fe4 | Robert Vollmert | 2009-12-09 22:46:21 +0100

Some dummy implementations to fix the compile.

--------------------------------------------------------------------------------
383f199e09 | Robert Vollmert | 2009-12-09 22:46:21 +0100

Replace formatted_message_history by mpr.

--------------------------------------------------------------------------------
25c259f4fc | Robert Vollmert | 2009-12-09 22:46:21 +0100

Start of a rewrite of message.cc.
This is in an intermediate state: it compiles, but messages aren't
shown yet. A variety of functions only have dummy implementations.

Main changes:
* Circular buffer that stores messages is now not spread throughout
  the file.
* All messages go through mpr().
* All messages are stored in the message store; history and
  message window will be rendered off this.

--------------------------------------------------------------------------------
2b53a359a4 | Robert Vollmert | 2009-12-09 22:46:20 +0100

Remove unused message.h:set_colour.

--------------------------------------------------------------------------------
d6f049e0c7 | Robert Vollmert | 2009-12-09 22:46:20 +0100

Move alternative god colouring to religion.cc.
Also clean up the switch.

--------------------------------------------------------------------------------
d75f47e7d5 | Robert Vollmert | 2009-12-09 22:46:20 +0100

Adapt options to msg_colour_type changes.

--------------------------------------------------------------------------------
899dfb076f | Robert Vollmert | 2009-12-09 22:46:20 +0100

Convert channel_to_colour to return msg_colour_type.

--------------------------------------------------------------------------------
d6aba91237 | Robert Vollmert | 2009-12-09 22:46:20 +0100

Implement msg_colour (conversion from colour to msg_colour_type).

--------------------------------------------------------------------------------
c6f7d86e7e | Robert Vollmert | 2009-12-09 22:46:19 +0100

Add MSGCOL_LIGHTRED to msg_colour_type.
May well fix (or cause) colouring bugs due to silent conversion
between colours and msg_colour_type.

--------------------------------------------------------------------------------
53b8252fda | Robert Vollmert | 2009-12-09 22:46:19 +0100

Move message side effects earlier.
prepare_message now calls mpr_check_patterns before overriding
message colour according to Options.message_colour_mappings.

Before, configuration could have game play effects. E.g., muting
the sound channel might cause the player not to be awoken.

--------------------------------------------------------------------------------
044de1cd1e | Robert Vollmert | 2009-12-09 22:46:19 +0100

Move message streams out to separate file.

--------------------------------------------------------------------------------
f067d0f5f7 | Robert Vollmert | 2009-12-09 22:46:19 +0100

Fix libunix.cc.
* Completely remove Message_Window.
* Put get_number_of_{lines,cols} back in.

--------------------------------------------------------------------------------
6ddf0bb428 | Robert Vollmert | 2009-12-09 22:46:00 +0100

Merge branch 'master' into messagewindow

--------------------------------------------------------------------------------
b8f3c183df | Johanna Ploog | 2009-12-09 21:31:02 +0100

Make Xom sometimes (< 5% chance) revive the player after death.
The chance of this happening depends strongly on tension and mood, as well
as type of death. I also tried the normal protection from harm but I figure
it's more interesting this way. :D

--------------------------------------------------------------------------------
f4efe0a7c1 | Johanna Ploog | 2009-12-09 21:29:11 +0100

Large rocks mulch into a pile of stones and make noise when they do so.

--------------------------------------------------------------------------------
111f97cd88 | David Ploog | 2009-12-09 20:00:38 +0100

Some additions and changes to changelog.

--------------------------------------------------------------------------------
4ce6c9d5f1 | David Ploog | 2009-12-09 19:22:54 +0100

Add new Vault:8 subvaults (Neil).

--------------------------------------------------------------------------------
e629e853d4 | Johanna Ploog | 2009-12-09 17:20:38 +0100

More additions to the change log.

--------------------------------------------------------------------------------
b03ae0bd75 | Jude Brown | 2009-12-09 21:52:44 +1000

Massively expand tile functionality in vault definitions.
This commit creates a new specifier for vaults: "TILE". Used much in the
same way as COLOUR, it can apply any specific tile to a feature. Example
syntax is specified in the syntax file, but copied here for clarity:

TILE: x = wall_flesh
      Identical to FTILE and RTILE in syntax, but closer to COLOUR in
      functionality. Instead of replacing the floor or relevant rock
      tiles, this can be used to replace the tile used for any specific
      feature.

      This can be used in combination with FTILE and RTILE to change
      the appearance of features. It can only be used with previously
      specified tiles, however.

      Like COLOUR and FTILE, this should be used sparingly and to good
      effect.

Please, feel free to update vaults to use this! We want to ensure that
tiles players get the same experience as ASCII players do. This is only
the first stage in a push for greater flexibiltiy through tiles, but
hopefully it'll have a good impact.

--------------------------------------------------------------------------------
b186dbd518 | David Lawrence Ramsey | 2009-12-08 17:01:05 -0600

Add typo and wording fixes.

--------------------------------------------------------------------------------
ca952f9afe | David Ploog | 2009-12-08 23:27:35 +0100

Make remaining Ossuary entry vault stand out (Eronarn).

--------------------------------------------------------------------------------
1ce4570ecb | David Ploog | 2009-12-08 23:27:34 +0100

Allow a few uniques to show up in Lair or Slime.
For some of the adventurer type uniques. Also added a bit of unique speech.

--------------------------------------------------------------------------------
e6cf5f6263 | Johanna Ploog | 2009-12-08 18:00:34 +0100

More additions to the changelog. Still more to come!

--------------------------------------------------------------------------------
e31a6c1128 | Johanna Ploog | 2009-12-08 18:00:33 +0100

Add brackets.

--------------------------------------------------------------------------------
3df4398feb | Johanna Ploog | 2009-12-08 18:00:33 +0100

Fix indentation.

--------------------------------------------------------------------------------
7e820aaa9f | David Ploog | 2009-12-08 17:20:54 +0100

Greatly simplified unique vault syntax. (Darshan)

--------------------------------------------------------------------------------
db5889abba | Jude Brown | 2009-12-08 23:43:06 +1000

Tweak Cigotuvi's loot.

--------------------------------------------------------------------------------
48997de9e2 | Jude Brown | 2009-12-08 23:38:59 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
6efa910975 | Robert Vollmert | 2009-12-08 14:24:25 +0100

Do also increment message count for prompts.
Otherwise, the line count is off when prompts are involved,
causing the "more" prompt to overwrite the last line.

--------------------------------------------------------------------------------
de30595826 | Jude Brown | 2009-12-08 23:16:37 +1000

Allow vaults to create specifically themed randart books.
It is basically a simple wrapper onto spl-book.cc's
make_book_theme_randart. More documentation can be found in syntax.txt.

--------------------------------------------------------------------------------
9840acaf22 | Jude Brown | 2009-12-08 23:16:37 +1000

Don't convert item spec strings to lowercase.
parse_single_spec itself does transformations to lowercase, so it can be
assumed that it doesn't expect a lowercase string. See mapdef.cc:3799 to
mapdef.cc:3802.

--------------------------------------------------------------------------------
30c5d0fa1a | Johanna Ploog | 2009-12-08 13:01:24 +0100

Add missing changes to change log. More to come!

--------------------------------------------------------------------------------
f6ecbbce31 | Johanna Ploog | 2009-12-08 13:01:24 +0100

Remove redundant #ifdef.

--------------------------------------------------------------------------------
c8e7d52951 | Jesse Luehrs | 2009-12-07 18:09:34 -0600

enable walkability colors on the level map again for water/lava

--------------------------------------------------------------------------------
8ba30b8cf3 | Johanna Ploog | 2009-12-08 00:34:19 +0100

Add *.stat (debug files) to .gitignore.

--------------------------------------------------------------------------------
fc9d8a0f6c | Johanna Ploog | 2009-12-08 00:32:31 +0100

Add command for wizmode Xom debugging to main.cc. Whoops!
Looks like whoever committed my patch didn't actually try whether
it worked. ;) Also prompt for the number of iterations as is done
for the item and fight statistics.

--------------------------------------------------------------------------------
013438cf6c | Robert Vollmert | 2009-12-07 21:42:37 +0100

Remove message window handling from lib*.{cc,h}
They haven't been remimplemented outside these yet.

--------------------------------------------------------------------------------
389bb3b9bc | Johanna Ploog | 2009-12-07 18:12:17 +0100

Use proper newlines in the ?v version information.
I hope this isn't another one of those ascii/tiles or OS differences but
for me at least the empty lines between sections weren't being displayed
in the console version, either.

--------------------------------------------------------------------------------
87da8db7d1 | Johanna Ploog | 2009-12-07 18:09:28 +0100

Add purge's tile for berserk monsters. Very neat, thanks!

--------------------------------------------------------------------------------
e0d592b0a5 | Matthew Cline | 2009-12-07 03:04:10 -0800

New monster props "speech_func" and "shout_func"
MonPropsMarker can be used to set "speech_func" and "shout_func" on a
monster, functions which return a string to be used as the monster's
speech/shout message.

--------------------------------------------------------------------------------
a2285dbfa4 | Jude Brown | 2009-12-07 18:51:48 +1000

Let uniques spawn in Orc. (dpeg)
At the very least, give control of uniques spawning in Orc over to
unique.des.

--------------------------------------------------------------------------------
32fa23aaf2 | Jude Brown | 2009-12-07 18:45:10 +1000

Fix another possible instance of NUM_TRAPS.

--------------------------------------------------------------------------------
2574105cd5 | Jude Brown | 2009-12-07 18:39:37 +1000

Only place natural and magical traps in Slime.
The jellies and acid blobs would've eaten any mechanical traps.

--------------------------------------------------------------------------------
7a14cd46a6 | Jude Brown | 2009-12-07 18:39:37 +1000

Keep trying until we get a valid trap.
random_trap_for_place defaults to NUM_TRAPS; none of the functions that
it calls currently do, but others might.

--------------------------------------------------------------------------------
af6becb7a7 | Matthew Cline | 2009-12-06 23:33:38 -0800

Beholding + berserk/fleeing/sanctuary
If a mermaid goes berserk or starts fleeing it stops singing, and if the
player is in Sanctuary then the mermaid's song sounds muted and has no
effect on the player.

--------------------------------------------------------------------------------
468799bc8d | David Ploog | 2009-12-07 08:07:54 +0100

Sort the dungeon uniques alphabetically.

--------------------------------------------------------------------------------
61e3677517 | David Ploog | 2009-12-07 07:46:52 +0100

Uniques's weights.
Make default weight for uniques 10 (again).
Use dummy uniques with different weights for Slime, Lair and rest.

--------------------------------------------------------------------------------
d3c8a2962a | Jude Brown | 2009-12-07 16:45:07 +1000

Reduce chances of TSO's wrath on killing holy monsters.
This system will need to be rewritten for the new holy unique monsters
and their tier system, but that is for 0.7.

--------------------------------------------------------------------------------
794312c0a6 | Jude Brown | 2009-12-07 16:44:56 +1000

Actually fix compilation.

--------------------------------------------------------------------------------
a58a14a519 | Jude Brown | 2009-12-07 16:43:11 +1000

Fix compilation.

--------------------------------------------------------------------------------
57748b3e59 | Jude Brown | 2009-12-07 16:40:00 +1000

Fix unique placement code (doy).

--------------------------------------------------------------------------------
1161d23462 | Jude Brown | 2009-12-07 15:25:03 +1000

Switch to dpeg's new unique placement system.
Requires overall weight chance in unique.des and new dummies per-branch.

--------------------------------------------------------------------------------
b7cea23ab0 | Jude Brown | 2009-12-07 13:29:00 +1000

Ribbit spawns with blink frogs when spawning in Lair (dpeg).

--------------------------------------------------------------------------------
230af05b7f | Johanna Ploog | 2009-12-07 02:19:49 +0100

Fix typo in the change log.

--------------------------------------------------------------------------------
c1bbd6cfcb | Johanna Ploog | 2009-12-07 02:09:19 +0100

Also disallow randart names "of Protection" to avoid confusion with the ego.

--------------------------------------------------------------------------------
d6c68db9e4 | Jude Brown | 2009-12-07 10:28:19 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
0af1253c30 | Johanna Ploog | 2009-12-07 01:20:31 +0100

Add more stuff to the change log, drawing on the wordpress Playtesting posts.
Still doesn't include everything (for which I'll check the change log later)
but does include some changes that are too minor to be included in the
release notes. As usual, the "Highlights" are extremely subjective.

--------------------------------------------------------------------------------
b2f811ae50 | Johanna Ploog | 2009-12-06 22:43:11 +0100

Also remove Michael from dc-mon.txt.

--------------------------------------------------------------------------------
eca0601a2d | Johanna Ploog | 2009-12-06 22:11:06 +0100

Tweak Norris' tile to not include a surfboard anymore. Move Michael -> UNUSED.

--------------------------------------------------------------------------------
5711ba1d28 | Johanna Ploog | 2009-12-06 21:56:51 +0100

Chop changelog into topic based portions.
I haven't included anything new (or thrown out existing mentions),
just changed the ordering and, occasionally, phrasing.

--------------------------------------------------------------------------------
fed5590334 | Robert Vollmert | 2009-12-06 12:06:27 +0100

Disable cursor earlier on initialization.

--------------------------------------------------------------------------------
c8621042e4 | Jude Brown | 2009-12-06 20:46:25 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
efb32830c9 | Jude Brown | 2009-12-06 20:43:07 +1000

Update monsters documentation: dur, sum, seen, and 0/8/9.

--------------------------------------------------------------------------------
9eaa47e8cf | Jude Brown | 2009-12-06 20:08:09 +1000

Remove mark_summoned wrapper.
It's now superfluous with the dur: and sum: tags.

--------------------------------------------------------------------------------
c5a04bfecc | Jude Brown | 2009-12-06 20:00:49 +1000

Remove superfluous --more-- prompt after purchase. (Napkin)

--------------------------------------------------------------------------------
bc5897fc09 | Jude Brown | 2009-12-06 20:00:48 +1000

Add a --more-- prompt after immolation scroll (Napkin).

--------------------------------------------------------------------------------
a20b45352d | Jude Brown | 2009-12-06 20:00:48 +1000

Unique placement-related function find_maps_for_tag.
Generates a vector of map_defs that have the relevant tag. Can check
depth (defaults to false) as well as whether or not a vault has
previously been placed (defaults to true).

Convenience function weight_map_vector returns an integer corresponding
to the total weight of all of the maps contained within the vector.
These functions will be used to re-do unique placement as per dpeg's
design (see c-r-d email).

--------------------------------------------------------------------------------
c2a93a39ec | Robert Vollmert | 2009-12-06 10:54:54 +0100

Don't make monsters that are generated hostile seek the player.
Randomly spawned monsters were previously being alerted to the
player position on generation, by code that was apparently
intended to make summons aware of the player. Those will still
attack the player if in view however by the ME_EVAL.

--------------------------------------------------------------------------------
0bc6cfcbda | Robert Vollmert | 2009-12-06 10:54:54 +0100

Check proximity when placing band members.
Previously, only the band leader was placed away from the player
with PROX_AWAY_FROM_PLAYER. The solution isn't too elegant,
but works for now.

--------------------------------------------------------------------------------
1d8f47972e | Robert Vollmert | 2009-12-06 10:54:54 +0100

Correct monster placement proximity check radius.

--------------------------------------------------------------------------------
d301b53bfc | Jude Brown | 2009-12-06 18:42:17 +1000

Temporary hack to make set_border_fill_type work.
See the comment in l_dgn.cc:dgn_set_border_fill_type. Should be replaced
with something that works on map_lines instead, but this will do for the
meantime.

--------------------------------------------------------------------------------
3bde341201 | Jude Brown | 2009-12-06 16:15:26 +1000

Add further flavour to vaults, comments, tweaks.

--------------------------------------------------------------------------------
a5e9f50cd6 | Jude Brown | 2009-12-06 15:42:28 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
d8e6385908 | Jude Brown | 2009-12-06 15:10:53 +1000

Don't let ugly things heal when changing colour.

--------------------------------------------------------------------------------
941d1b59de | Jude Brown | 2009-12-06 14:54:14 +1000

Give deep elves long blades again. (dpeg, doy, sorear).

--------------------------------------------------------------------------------
befca6763c | Jude Brown | 2009-12-06 14:09:21 +1000

Remove outdated comment.

--------------------------------------------------------------------------------
e30ba21fd3 | Jude Brown | 2009-12-06 14:08:22 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
259fa0c5a6 | Matthew Cline | 2009-12-05 20:03:57 -0800

Sometimes give msg when mermaid stops beholding

--------------------------------------------------------------------------------
ba0c790605 | Matthew Cline | 2009-12-05 20:03:57 -0800

Bug #125: Pacifying mermaid -> still mesmerized
If a mermaid is pacified (or otherwise changes attitude so that it won't
attack the player) then it will stop mesmerizing the player.

--------------------------------------------------------------------------------
2b926c9360 | Jude Brown | 2009-12-06 13:39:03 +1000

Remove "Preservation" and "Conservation" from randart names.
This is extremely misleading. These can be applied too armour types that
do not have this brand (the leather armour of Conservation, etc) and
confuse people.

--------------------------------------------------------------------------------
68e4aa6149 | Jude Brown | 2009-12-06 13:31:17 +1000

Remove "Preservation" and "Conservation" from randart names.
This is extremely misleading. These can be applied too armour types that
do not have this brand (the leather armour of Conservation, etc) and
confuse people.

--------------------------------------------------------------------------------
2f74c64ef8 | Jude Brown | 2009-12-06 13:28:41 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
0b387fd8a2 | Jude Brown | 2009-12-06 13:27:19 +1000

Don't give deep elves long blades or maces (dpeg).

--------------------------------------------------------------------------------
4d92056142 | Jude Brown | 2009-12-06 13:23:18 +1000

Add further door_XXX properties for opening, closing, etc.
See documentation. This is somewhat hackish (or at least, hackier), but
I think there's a precendent for it at least.

--------------------------------------------------------------------------------
cce2486a3c | Jude Brown | 2009-12-06 13:23:07 +1000

Add props for door stages.

--------------------------------------------------------------------------------
5a3f1e9bbe | Jude Brown | 2009-12-06 11:51:25 +1000

Make butterflies NO_EXP_GAIN and have no attacks again (dpeg).

--------------------------------------------------------------------------------
d2b57e9347 | Jude Brown | 2009-12-06 11:47:56 +1000

Change the door description to "fleshy".

--------------------------------------------------------------------------------
25d28173ff | Jude Brown | 2009-12-06 11:23:44 +1000

Speech and speech keys for Mu's Cigotuvi lab.

--------------------------------------------------------------------------------
64da169067 | Jude Brown | 2009-12-06 11:08:49 +1000

New Wizlab: Cigotuvi's Fleshworks, by Mu.

--------------------------------------------------------------------------------
5ed14641ac | Jude Brown | 2009-12-06 10:46:17 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
48d02a7565 | Robert Vollmert | 2009-12-05 22:58:05 +0100

Fix travel colouring leaking into viewport.

--------------------------------------------------------------------------------
0b01405b86 | Robert Vollmert | 2009-12-05 22:41:11 +0100

Fix player::rot(0, x) not rotting maxhp (#119).

--------------------------------------------------------------------------------
f7af155c34 | Robert Vollmert | 2009-12-05 21:14:06 +0100

Fix stairs outside LOS not being emphasised in viewport.

--------------------------------------------------------------------------------
b355f3d86f | Enne Walker | 2009-12-05 13:53:54 -0500

Fixing custom tile settings for portal vaults.

--------------------------------------------------------------------------------
2817e29bf3 | Eino Keskitalo | 2009-12-05 18:20:36 +0200

A new sewer map opening to the sea, by st.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
20f3194591 | Robert Vollmert | 2009-12-05 17:16:05 +0100

Document maximal viewport settings.
Going over the limits causes startup warnings now
because the code uses INT_OPTION.

--------------------------------------------------------------------------------
2cb7160608 | Eino Keskitalo | 2009-12-05 15:41:04 +0200

Tweak info on removed P and R glyphs.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
dec7b16e44 | Eino Keskitalo | 2009-12-05 15:25:40 +0200

Handle the deprecated R symbol in the new Hive ends.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
5953a40d05 | Jude Brown | 2009-12-05 22:41:12 +1000

Remove accidentally committed test WEIGHTs.

--------------------------------------------------------------------------------
34a5b0deb6 | Jude Brown | 2009-12-05 21:37:32 +1000

New Hive:2 maps by R1!

--------------------------------------------------------------------------------
a29affda66 | Jude Brown | 2009-12-05 19:39:55 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
cca75d0d96 | Jude Brown | 2009-12-05 19:39:20 +1000

Make "seen" flag in monster specs work.
(Somewhat hackish.)

--------------------------------------------------------------------------------
239710af30 | Jude Brown | 2009-12-05 19:39:05 +1000

Further tweaks to Wucad. It's starting to take proper shape, now!

--------------------------------------------------------------------------------
89b781d97d | Jude Brown | 2009-12-05 19:11:03 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
f1bba03762 | Jude Brown | 2009-12-05 18:58:53 +1000

Use place_name, not custom _level_description_string.

--------------------------------------------------------------------------------
8069f7106f | Matthew Cline | 2009-12-05 00:53:46 -0800

Do "post_activate_remove" in dgn_place_map()
Fixes MonPropsMarkers not being removed-on-activation when a vault is
placed via &L.

--------------------------------------------------------------------------------
aa95d78c68 | Robert Vollmert | 2009-12-05 09:36:36 +0100

Reset map knowledge colour in clear_map.
Fixes #120 (clear map removing walls).

--------------------------------------------------------------------------------
6bf1a6f9a9 | Jude Brown | 2009-12-05 18:22:43 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
b251a92396 | Jude Brown | 2009-12-05 17:25:49 +1000

Fix uniques spawning multiple times (bug #123, Kyrris).
dgn_reset_level(), which resets you.unique_creatures, was being called
before temp_unique_creatures (where you.unique_creatures was being
backed) was actually initialised.

--------------------------------------------------------------------------------
5676812f1b | Jude Brown | 2009-12-05 16:30:33 +1000

Properly use you.level_type_origin instead.
When changing levels and generating a note, misc.cc uses
you.level_type_origin. place_name uses you.level_type__name instead. As
you.level_type_origin is set to a variant of you.level_type_name, use
that instead! That makes no sense.

--------------------------------------------------------------------------------
d1b84d61df | Jude Brown | 2009-12-05 14:50:54 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
01c241d058 | Jude Brown | 2009-12-05 14:48:04 +1000

Add a "seen" flag.
This allows dgn.create_monster to create monsters as though summoned,
without generating "XYZ comes into view" messages (if the player happens
to be resting at the time).

--------------------------------------------------------------------------------
75be793554 | Jude Brown | 2009-12-05 14:47:58 +1000

Apply extra_monster_flags earlier to fix "comes into view" errors.
Rebranded monsters (ie, "kobold name:Durwent name_replace") who are
created with Lua and dgn.create_monster while the player is resting will
generate a "XYZ comes into view" warning message.

However, as this message is triggered by handle_seen_interrupt, which is
triggered before the additional flags are applied, it will disregard
MF_NAME_SUFFIX, MF_NAME_REPLACE, MF_NAME_ADJECTIVE, etc. Applying these
flags earlier fixes this.

--------------------------------------------------------------------------------
4d10fb107c | Jude Brown | 2009-12-05 14:45:41 +1000

Alistair and Wucad tweaks.

--------------------------------------------------------------------------------
05e1084f7e | Jude Brown | 2009-12-05 11:31:58 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
98b441d511 | Jude Brown | 2009-12-05 11:18:56 +1000

New monster spec tags for marking monsters summoned.
dur:1-6, marks the abjuration duration of a monster. sum:<str>, any of
"clone", "animate", "chaos", "miscast", "zot", "wrath" or "aid", or the
relevant spell we're mimicking; nas:<str> equivalent to the non-actor
summoner.

Not setting the non-actor summoner will mean that kills by these pseudo-
summons are unmarked as such.

--------------------------------------------------------------------------------
70b4882ab1 | Jude Brown | 2009-12-05 09:18:37 +1000

Fix typo, add section on 'wall_hit'.

--------------------------------------------------------------------------------
4b5b177d49 | Robert Vollmert | 2009-12-05 00:10:31 +0100

Fix bad line wrapping in shop list (#118).

--------------------------------------------------------------------------------
36f23f4ab8 | Steven Noonan | 2009-12-04 10:38:01 -0800

rltiles/makefile: add -lpthread on Linux to avoid missing pthread symbols
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4a10fcf0a1 | Robert Vollmert | 2009-12-04 19:29:00 +0100

Do out-of-LOS staircase emphasis when drawing.
This fixes emphasised stair colours being out of date until they
come into LOS again.

--------------------------------------------------------------------------------
6429ff85d1 | Steven Noonan | 2009-12-04 10:15:59 -0800

sqlite: update 3.6.18 -> 3.6.20
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b573cc7f04 | Steven Noonan | 2009-12-04 10:15:44 -0800

pcre: update 7.9 -> 8.00
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
999bffc9f1 | Steven Noonan | 2009-12-04 10:15:30 -0800

libpng: update 1.2.40 -> 1.2.41 Signed-off-by: Steven Noonan 
<steven@uplinklabs.net>

--------------------------------------------------------------------------------
0ed0c91eaa | Steven Noonan | 2009-12-04 10:15:10 -0800

freetype: update 2.3.9 -> 2.3.11
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
57f7d0bf2c | Steven Noonan | 2009-12-04 10:14:32 -0800

rltiles/makefile: add -ldl on Linux to avoid dlopen/dlsym missing symbols
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e41a6adeac | Steven Noonan | 2009-12-04 10:12:57 -0800

makefile: add BUILD_ALL flag to build all contribs into binary
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
41d4d89729 | Robert Vollmert | 2009-12-04 16:15:19 +0100

Only reset env.tile_* when updating env.show.
This should fix items and monsters sometimes not being drawn.

--------------------------------------------------------------------------------
c19fef06b4 | Adam Borowski | 2009-12-04 13:48:19 +0100

A temple of Zin, with a spammy preacher angel.

--------------------------------------------------------------------------------
6e44ee420b | Jude Brown | 2009-12-04 22:21:47 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
d680acf00f | Jude Brown | 2009-12-04 22:20:48 +1000

Let message_at_spot accept props; function_at_spot.

--------------------------------------------------------------------------------
430a417e2b | Jude Brown | 2009-12-04 22:20:38 +1000

Tweak Wucad Mu much further.

--------------------------------------------------------------------------------
7ef9b381e0 | Jude Brown | 2009-12-04 20:32:18 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
f26b0447e7 | Jude Brown | 2009-12-04 19:43:47 +1000

dLua "mark_summoned" wrapper for monsters.

--------------------------------------------------------------------------------
24fa1749d2 | Robert Vollmert | 2009-12-04 09:18:30 +0100

De-duplicate magic res and stealth adjective choice.

--------------------------------------------------------------------------------
83a78c65ab | Robert Vollmert | 2009-12-04 09:18:30 +0100

Added monster MR display (petato, mantis-id 113).
    Adds a line to the monster description screen that tells you how
    resistant it is to magic. Uses the same scale as player MR (eg on the
    % screen) except it skips "not resistant" levels of (non-)resistance.

    Uploaded a new version of the patch; now includes experimental MR
    display rescaling for both players and npcs. Try it out on the %
    screen, or examine a creature. Adverbs stolen from the stealth
    display, crazy resistant creatures are described as "almost entirely
    resistant".

--------------------------------------------------------------------------------
a0bdc689b4 | Jude Brown | 2009-12-04 11:53:13 +1000

Further Alistair tweaks.

--------------------------------------------------------------------------------
4775fdbf3a | Jude Brown | 2009-12-04 11:02:31 +1000

Add Zaba's Alistair map.

--------------------------------------------------------------------------------
b006adb45b | Jude Brown | 2009-12-04 10:50:38 +1000

Tweak header.

--------------------------------------------------------------------------------
802b6fc717 | Jude Brown | 2009-12-04 10:48:09 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
c4c9ac1d41 | Jude Brown | 2009-12-04 10:09:53 +1000

New Swamp ending: icy swamp.
With hydra simulacra hibernating in the tunnel to the rune, which itself
is guarded by ice dragons (and occasionally an azure jelly), freezing
clouds and more hydra simulacra! There are also giant fish simulacra and
freezing wraiths.

--------------------------------------------------------------------------------
751bbe5bdb | Robert Vollmert | 2009-12-03 17:05:55 +0100

Don't copy DNGN_UNDISCOVERED_TRAP to map knowledge.
Fixes trave colouring revealing undiscovered traps.

--------------------------------------------------------------------------------
ceb8826442 | Robert Vollmert | 2009-12-03 17:05:29 +0100

Turn cursor off when drawing delay_message_clear dash.

--------------------------------------------------------------------------------
6c14b48b8d | Robert Vollmert | 2009-12-03 16:42:17 +0100

Fix off-by-one error in passwall depth calculation.
Also reorganize cast_passwall() a bit.

--------------------------------------------------------------------------------
9dc6a97ec5 | Jude Brown | 2009-12-03 20:48:58 +1000

Don't assume a square is safe if there are a monster there.
Could be a lava snake, swamp worm, etc.

--------------------------------------------------------------------------------
1621cc868e | Jude Brown | 2009-12-03 20:48:37 +1000

Mentioned Wizard commands are listed at x?.

--------------------------------------------------------------------------------
c5c48b5bd7 | Jude Brown | 2009-12-03 19:48:18 +1000

Hopefully fix tiles compile.

--------------------------------------------------------------------------------
8c1e6ead29 | Jude Brown | 2009-12-03 19:35:39 +1000

Convert the_teleporter (and related Ice Cave) to you.teleport_to.

--------------------------------------------------------------------------------
9cd18f2ef6 | Jude Brown | 2009-12-03 19:35:30 +1000

Fix missed firedrake -> fire drake.

--------------------------------------------------------------------------------
2d549e2707 | Jude Brown | 2009-12-03 19:32:24 +1000

New fiery Swamp:5 ending.

--------------------------------------------------------------------------------
01dc5b84b8 | Jude Brown | 2009-12-03 19:32:23 +1000

Teleport code refactor, you_teleport_to.
Move the post-teleport update to its own function so that it can be
called from other functions. Provide a new function that accepts a
coord_def; try hard to move the player here, moving monsters if allowed,
but return false if we weren't able to.

Lua wrappers for you_teleport_to.

--------------------------------------------------------------------------------
6858bd1384 | Robert Vollmert | 2009-12-03 09:02:40 +0100

Reduce minimum message window height to 5.
This is FR 2814313.

This required adding a new option msg_min_height
defaulting to 6 to keep the same default layout.

I don't believe anything requires a message window
of more than 5 lines (acquirement is fine with that).

--------------------------------------------------------------------------------
7208f8f4b2 | Robert Vollmert | 2009-12-03 09:02:40 +0100

Clean up window size option handling.
view_{min,max}_width now use INT_OPTION (hope I didn't miss anything
there), and msg_max_height gets an explicit minimum.

--------------------------------------------------------------------------------
3ace87921b | Robert Vollmert | 2009-12-03 09:02:39 +0100

Reduce MSG_MIN_HEIGHT from 7 to 6.
On an 80x24 terminal, this won't change anything, since viewsz.y
still can't grow 17 to 19, so msgsz.y will increase from 6 to 7.

I'm not aware of anything that requires a message window height
of 7.

Fixes msg_max_height=6 not working in an 80x25 terminal (SF id
2823419).

--------------------------------------------------------------------------------
de685cf43c | Adam Borowski | 2009-12-03 01:15:20 +0100

Split a KMASK line into two; why this helps remains an issue.

--------------------------------------------------------------------------------
60a8f22dec | Adam Borowski | 2009-12-03 00:45:39 +0100

Give piety for the worst god for killing the best monster.

--------------------------------------------------------------------------------
8071ced06b | Adam Borowski | 2009-12-02 18:03:57 +0100

Use env in hashbangs to placate necrocomputing OSes with packaged perl 
installed in /usr/local/bin/

--------------------------------------------------------------------------------
e3f1b964b8 | Adam Borowski | 2009-12-02 18:03:57 +0100

Disable crash traces on BSD.

--------------------------------------------------------------------------------
e903323165 | Robert Vollmert | 2009-12-02 16:36:14 +0100

Get rid of you.synch_time.
Also, the check for whether to do the corresponding effects has
been moved into effects.cc:handle_time.

--------------------------------------------------------------------------------
472560d73f | Adam Borowski | 2009-12-02 15:06:39 +0100

Don't mistake Hurd for some fruit, both use Mach (Pino Toscano).

--------------------------------------------------------------------------------
a2c9f19f6f | Matthew Cline | 2009-12-02 05:44:17 -0800

Fix mesmerisation being broken too soon

--------------------------------------------------------------------------------
9a0d6db186 | Robert Vollmert | 2009-12-02 13:54:21 +0100

Remove FPROP_FORCE_EXCLUDE.
It's not used anymore, and has issues, such as revealing
information on the level map.

--------------------------------------------------------------------------------
8543fdca76 | Robert Vollmert | 2009-12-02 13:54:21 +0100

Replace door force_exclude in david_entry_070 with door marker.

--------------------------------------------------------------------------------
85745b485e | Robert Vollmert | 2009-12-02 13:54:21 +0100

Remove obsolete force_excludes.
The cloud autoexcludes should take care of these, if I'm not
mistaken.

--------------------------------------------------------------------------------
6b349d23bd | Robert Vollmert | 2009-12-02 13:54:17 +0100

Move map colouring to function get_map_col.

--------------------------------------------------------------------------------
1c5c56ce9d | Adam Borowski | 2009-12-02 13:28:37 +0100

.gitignore: add Debian build junk I'm committing this to master instead of the 
debian branch because switching between branches doesn't purge untracked files.

--------------------------------------------------------------------------------
dd457d00d3 | Adam Borowski | 2009-12-02 13:28:37 +0100

.gitignore: add util/release_ver

--------------------------------------------------------------------------------
8236a7434a | Vsevolod Kozlov | 2009-12-02 14:54:20 +0300

Fix a small formatting issue.

--------------------------------------------------------------------------------
3a2679fdf6 | Vsevolod Kozlov | 2009-12-02 14:54:19 +0300

Make &Z an alias to &z.

--------------------------------------------------------------------------------
266060b5b8 | Jude Brown | 2009-12-02 21:52:07 +1000

Move teleport location checks into their own function.
Should be exactly the same as the previous incarnation, but considerably
more flexible.

--------------------------------------------------------------------------------
0bc6fd0fea | Adam Borowski | 2009-12-02 12:41:26 +0100

Don't fail packaging the source if there's no zip.

--------------------------------------------------------------------------------
80cae993ca | Adam Borowski | 2009-12-02 12:41:26 +0100

"make source", same as "make package-source" except for not messing with yacc.

--------------------------------------------------------------------------------
f848afd425 | Vsevolod Kozlov | 2009-12-02 14:26:00 +0300

Make &z accept both spell number and name.

--------------------------------------------------------------------------------
9fd59af7bc | Jude Brown | 2009-12-02 20:57:20 +1000

Don't prompt for cancelling Wizard teleport.
Also ignore beholders.

--------------------------------------------------------------------------------
2251107755 | Robert Vollmert | 2009-12-02 11:53:47 +0100

Don't always call deferred_exclude_update.
This was now causing general slowness.

--------------------------------------------------------------------------------
42ffc507b4 | Robert Vollmert | 2009-12-02 11:17:19 +0100

Defer exclusion updates for cloud autoexcludes.
This fixes associated slowness.

--------------------------------------------------------------------------------
f13b738524 | Robert Vollmert | 2009-12-02 11:17:18 +0100

Optionally defer set_exclude updates.
This is a bit of a hack to get around cloud autoexclusions each
resulting in a floodfind through _exclude_update.

--------------------------------------------------------------------------------
3892819c3a | Jude Brown | 2009-12-02 17:52:09 +1000

Add tile for Scroll of Silence (purge).

--------------------------------------------------------------------------------
3241f92fc9 | Jude Brown | 2009-12-02 17:18:55 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
d84f9a5e75 | Jude Brown | 2009-12-02 16:22:45 +1000

New monster: giant leech (Eronarn).
A blood-sucking amphibious 'w'-glyph. It also submerges, much like swamp
worms, but will follow you onto dry land.

It has a tile, but after a quick play through of Swamp and using wizard
mode to create some, it's quite difficult to see. Hopefully someone can
improve the tile for me!

--------------------------------------------------------------------------------
c30b21d140 | Jude Brown | 2009-12-02 15:34:37 +1000

Rename "wizard" to "wizard_tele" so it doesn't shadow player::wizard.

--------------------------------------------------------------------------------
cb8c1f9af8 | Jude Brown | 2009-12-02 15:33:06 +1000

Fix tiles build.

--------------------------------------------------------------------------------
94db942d6a | Jude Brown | 2009-12-02 13:50:00 +1000

Rename "firedrake" to "fire drake".
This brings it in line with all the other "drake" monsters: "swamp
drake", "death drake", etc. I don't believe this change is contentious,
and I hopefully haven't broken tiles build.

--------------------------------------------------------------------------------
b16b25683f | Jude Brown | 2009-12-02 13:18:34 +1000

Wizard-mode controlled teleport (Ctrl-B).
Instantaneous, non-contaminating controlled teleport. Bypasses
FPROP_NO_CTELE_INTO as well as -TELE artefacts.

--------------------------------------------------------------------------------
bd1ceb7e58 | Jude Brown | 2009-12-02 11:54:05 +1000

Further elemental_lab_mu tweaks.
Fix "deep elf elementalist hits you" to "The deep elf elementalist hits
you".

--------------------------------------------------------------------------------
00659cb4d5 | Jude Brown | 2009-12-02 11:41:05 +1000

Tweak elemental_lab_mu (Mu).
Use name_descriptor to correct grammar of the wizard, and use the
'wizard' base monster type with an increased hit dice to compensate for
weaknesses.

--------------------------------------------------------------------------------
299540296b | David Ploog | 2009-12-01 20:26:20 +0100

Mentio how to colour staircases in options guide.

--------------------------------------------------------------------------------
d2d7df22ac | Robert Vollmert | 2009-12-01 17:05:18 +0100

Group features in feature list.

--------------------------------------------------------------------------------
2fa03a5e30 | Robert Vollmert | 2009-12-01 16:53:35 +0100

Fix wizard mode magic mapping.

--------------------------------------------------------------------------------
184c01f6a4 | Robert Vollmert | 2009-12-01 15:51:35 +0100

Unify stair case colouring in- and outside view.
By default, they're always gray, or white if unknown.

To revert to the old behaviour, add the following to your crawlrc:

feature = stone staircase leading up {,,,,green}
feature = stone staircase leading down {,,,,red}

--------------------------------------------------------------------------------
e12f92d931 | Robert Vollmert | 2009-12-01 15:26:52 +0100

Unify colour handling in env.show and env.map_knowledge.
Colour is now always precomputed, and only possibly overridden
by travel information on display.

It's quite unclear that storing the colour in env.show and
env.map_knowledge is the right thing to do, but at least it's
handled consistently now.

--------------------------------------------------------------------------------
83436251ef | Adam Borowski | 2009-12-01 14:22:17 +0100

Append a / to absolute DATADIR.

--------------------------------------------------------------------------------
87b65a2daa | Robert Vollmert | 2009-12-01 13:03:54 +0100

Remove last traces of interruptible passwall.

--------------------------------------------------------------------------------
43d38d0781 | Robert Vollmert | 2009-12-01 12:39:10 +0100

Quiet compiler warning.

--------------------------------------------------------------------------------
e258004991 | Robert Vollmert | 2009-12-01 12:37:47 +0100

Disallow statues for passwall.
Statues aren't really walls, and it hardly makes passwall less
useful.

--------------------------------------------------------------------------------
a825726eed | Robert Vollmert | 2009-12-01 12:31:03 +0100

Simplify passwall.
Treatment of entry point and later obstacles is unified. It
doesn't work as "detect secret door" anymore.

This also means that you can now passwall into statues --
before, you could passwall through them but not start
with one.

--------------------------------------------------------------------------------
bce5f7020a | Robert Vollmert | 2009-12-01 12:12:34 +0100

Make passwall use standard targetting system.
This means it's properly abortable now.

--------------------------------------------------------------------------------
945d7c4c94 | Jude Brown | 2009-12-01 20:58:05 +1000

Further tweaks to Wucad's map.

--------------------------------------------------------------------------------
20889107ee | Robert Vollmert | 2009-12-01 11:44:42 +0100

Passwall interface improvement (petato).
Patch slightly modified from
http://crawl.develz.org/mantis/view.php?id=106.

    I've made a little patch that improves passwall's
    behavior somewhat. It now gives different messages
    depending on whether you failed the power check,
    there's something blocking your path, or the wall is too
    deep.

    Additionally, the prompts have been removed: if it would
    have been possible to cast the spell without dying,
    that's what happens, and if the wall is too deep it's
    canceled.

    So basically it works like before, except you don't have
    to worry about committing suicide by accident.

--------------------------------------------------------------------------------
74584418a0 | Robert Vollmert | 2009-12-01 09:25:49 +0100

Convert feature list to use formatted_string.

--------------------------------------------------------------------------------
5d616ec645 | Robert Vollmert | 2009-12-01 09:25:49 +0100

Add general formatted_string::add_glyph, remove others.

--------------------------------------------------------------------------------
3d7ddfb14a | Jude Brown | 2009-12-01 18:25:10 +1000

Wucad Mu's Monastery: basic layout and colouring.
Still not sure if I like it.

--------------------------------------------------------------------------------
b0da6a4f48 | Jude Brown | 2009-12-01 13:39:47 +1000

Fix placeholder issues.

--------------------------------------------------------------------------------
f38cf4bbb4 | Jude Brown | 2009-12-01 13:24:39 +1000

Add placeholders for future Wizlabs.

--------------------------------------------------------------------------------
38d0ce719a | Jude Brown | 2009-12-01 12:39:26 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
756ebe7bf6 | Adam Borowski | 2009-11-30 23:42:50 +0100

Revert 74685cd9 (except for comments) -- a static build needs to link 
everything.

--------------------------------------------------------------------------------
5c691a1fab | Robert Vollmert | 2009-11-30 18:43:49 +0100

Start messages at window bottom with delay_message_clear.

--------------------------------------------------------------------------------
67649f268e | Eino Keskitalo | 2009-11-30 18:22:40 +0200

Fix typo.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
de4f176760 | Eino Keskitalo | 2009-11-30 17:17:04 +0200

Add process.txt, which explains how Stone Soup is developed.
Could still be improved with at least the following:

 * The process of a proposal/patch making its way into into the game
 * Versioning: use of agendas for major versions; only fixes for minor versions

And of course, needs to be updated for the new Mantis/Wiki once it's official. 
Feedback welcome!

--------------------------------------------------------------------------------
c5ae9840ae | Jude Brown | 2009-11-30 23:23:59 +1000

Revert "Convert dgn.set_border_fill_type to BORDER."
This reverts commit 941444076c26e5e5149c6368a4261d60842fe3ec.

After consultation with Enne, this doesn't really fix the issue, and is
therefore superfluous.

--------------------------------------------------------------------------------
6f06963cd9 | Robert Vollmert | 2009-11-30 13:23:53 +0100

Make passwall silent.
Previously, it had a noise level of 3, making it all but useless
for stabbing when going through walls of width one.

--------------------------------------------------------------------------------
941444076c | Jude Brown | 2009-11-30 20:32:41 +1000

Convert dgn.set_border_fill_type to BORDER.
The Lua prelude of maps isn't executed early enough now. Using 'BORDER'
sets map->border_fill_type as soon as the map is read, rather than after
it is placed.

This commit increases the value of MAP_CACHE_VERSION.

Can be reverted if it causes issues or is unwanted.

--------------------------------------------------------------------------------
7344fbfdf9 | Jude Brown | 2009-11-30 16:29:08 +1000

Change flavour for Dowan/Duvessa banishment.
Also provide checks for whether or not the monsters can speak or not:
they may have been polymorphed.

--------------------------------------------------------------------------------
251dab3190 | Jude Brown | 2009-11-30 16:29:08 +1000

Use nominative pronoun rather than objective in banishment messages.
This solves "Duvessa screams as her is devoured by a tear in reality".

--------------------------------------------------------------------------------
0655b711ff | Adam Borowski | 2009-11-30 02:16:17 +0100

Fix an odd rock wall.

--------------------------------------------------------------------------------
0b44e07ef4 | Jude Brown | 2009-11-30 09:48:06 +1000

Fixed box_glyph being adjusted for 0-indexed.
As mapgrd is now 0-indexed like everything else, it causes issues to be
adjusting these value!

--------------------------------------------------------------------------------
ab833532f7 | Jude Brown | 2009-11-30 09:41:04 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
c2c52e296b | Jude Brown | 2009-11-30 09:39:55 +1000

A quick bit of cleanup with the Doroklohe vault.

--------------------------------------------------------------------------------
01cd855aaf | David Lawrence Ramsey | 2009-11-29 14:41:14 -0600

Fix indentation.

--------------------------------------------------------------------------------
58ef5ce5a9 | Robert Vollmert | 2009-11-29 21:00:21 +0100

Optionally display message window at top of terminal.
Set messages_at_top=true to use.

This is not quite aesthetically pleasing since character name
and title which form a kind of heading for the screen are now
in the middle. It might be better to display them in an extra
line across the top.

Also, the layout should really be moved out to lua and made
completely user configurable.

--------------------------------------------------------------------------------
8963333ffd | Robert Vollmert | 2009-11-29 21:00:20 +0100

Allow the message window to use the bottom right terminal position.
This was causing scrolling problems, but now that scrolling is off,
this shouldn't occur anymore.

For reference, if problems with writing to the bottom right corner
of the terminal show up:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=311345

--------------------------------------------------------------------------------
5572f37c06 | Robert Vollmert | 2009-11-29 21:00:20 +0100

Default libunix curses scrolling to off.
There may have been some obscure reason for turning this on, but
as far as I can tell it only causes problems.

--------------------------------------------------------------------------------
60f777a427 | Enne Walker | 2009-11-29 14:30:03 -0500

Fix floor tiles being blank after &L.

--------------------------------------------------------------------------------
645e79be66 | Enne Walker | 2009-11-29 14:02:32 -0500

Add missing NON_ITEM check for tiles.

--------------------------------------------------------------------------------
fa6e376242 | Enne Walker | 2009-11-29 13:39:23 -0500

Change mapgrd and mapbld funcs to be 0-indexed.
All the other dgn and map functions in Crawl are 0-indexed, so this makes
everything more consistent.

I've changed all the uses in the master branch, but if you're using these
functions in another branch (dpeg and due), then you'll need to adjust
all your coordinates to match.

--------------------------------------------------------------------------------
37cce550d1 | Jude Brown | 2009-11-29 19:27:43 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
26131411a6 | Jude Brown | 2009-11-29 19:26:44 +1000

Commit some changes to the Doroklohe vault for dpeg.
As an aside, we need a document explaining how to set up for pushing and
pulling new branches, as it is usually unclear when you start new ones.
Unless this information is already in Darshan's email...

--------------------------------------------------------------------------------
e9dc6e7d4f | Jude Brown | 2009-11-29 19:24:44 +1000

Documentation for star_item and superb_item.

--------------------------------------------------------------------------------
7f9e84d767 | Matthew Cline | 2009-11-29 01:14:47 -0800

Reduce dependency on travel.h
Removed inclusion of travel.h from most .h files to reduce the number
of .cc files dependant on it.  This involved moving the level_pos
declaration to externs.h, moving the flood_find template to it's own
header file, and moving two typedefs from travel.h to travel_defs.h
because typedefs can't be forward declared (argh).

--------------------------------------------------------------------------------
9eaf425ceb | Jude Brown | 2009-11-29 18:52:43 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
83b3d564bc | Jude Brown | 2009-11-29 18:43:32 +1000

Add text names for * and | items in vault, as per %.
"any", "random" and "%" are all synonyms in vault definitions, whereas
"|" and "*" have no synonyms.

"star_item" = "*" (as good_item is a tag which does something else)
"superb_item" = "|".

This is mostly useful for clarity (only) in instances where "%" and "|"
glyphs have been used by KFEAT to mean other things. In these instances
KITEM: r = % will still work, but may cause confusion: having textual
names will help to alleviate any confusion.

--------------------------------------------------------------------------------
4ce958ff4e | Jude Brown | 2009-11-29 18:18:57 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
c6f75d72f4 | Jude Brown | 2009-11-29 18:18:27 +1000

Resolve Tukima secret door issue (dpeg).
Hopefully this at least gives an indication of there being a secret
treasure room. It doesn't actually tell you where to look, but it's a
hint.

--------------------------------------------------------------------------------
5556ce4cde | Jude Brown | 2009-11-29 18:06:32 +1000

Place uniques before connectivity checks.
Placing them after connectivity checks causes issues when (larger)
vaults split the level or clobber staircases. This, in combination with
setting it to non-clobber, should solve all of these issues.

It may mean that some uniques are placed less than others (such as
Yiuf's vault), and thus may require that his vault has its weight
increased slightly to compensate.

However, it also means that it's now safe to create other, similar
vaults.

--------------------------------------------------------------------------------
2af84a1dc5 | Jude Brown | 2009-11-29 18:06:05 +1000

Reset uniques and unrands when a level is vetoed.

--------------------------------------------------------------------------------
0680cf8d68 | Jude Brown | 2009-11-29 17:58:10 +1000

Revert Yiuf changes.

--------------------------------------------------------------------------------
7331ae20d3 | Jude Brown | 2009-11-29 16:56:12 +1000

Monster-flavour LOS, adjacent, rectangle and circle iterators.

--------------------------------------------------------------------------------
a16f7fef47 | David Lawrence Ramsey | 2009-11-29 00:38:23 -0600

Tweak wording.

--------------------------------------------------------------------------------
2943dc2999 | Jude Brown | 2009-11-29 15:38:17 +1000

New Lua iterators: point_iterator, slave_iterator, tweaks.
The first (point_iterator) accepts a table of points (such as the ones
return by dgn.find_marker_positions_by_prop, or any other function which
returns points) and is filterable and stateful.

The second is a quick wrapper over dgn.find_marker_positions_by_prop.

Tweaked rectangle_iterator to supply an "rvi" (return value instead)
which will store the value of the filter instead of expecting the filter
to return a true or false value. Setting this to false will behave as
before; setting it to true allows us to have the filter alter the point
(mons_at, items_at, marker_at_pos, etc).

--------------------------------------------------------------------------------
e44ce374c8 | Matthew Cline | 2009-11-28 20:50:05 -0800

ShoppingList: deal better with mult identical item

--------------------------------------------------------------------------------
d7694dcce0 | Jude Brown | 2009-11-29 13:57:29 +1000

Give the Doroklohe vault an entry chamber, tweak colours slightly.

--------------------------------------------------------------------------------
0db6ddf2ef | Jude Brown | 2009-11-29 13:21:29 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
6549b8ba1c | Jude Brown | 2009-11-29 13:20:16 +1000

Further rF- message tweak.
Specify who is being burnt terribly. In this case, it is the player.

--------------------------------------------------------------------------------
4ec601cafa | Jude Brown | 2009-11-29 13:15:12 +1000

Clarify rF- messages (TGW).
"It burns terribly" is unclear in some instances, so change to "The
fire/the lava burns terribly". Also change "It scalds you terribly" to
"The steam scalds you terribly" for steam.

--------------------------------------------------------------------------------
400edb7e91 | David Lawrence Ramsey | 2009-11-28 21:09:15 -0600

Simplify the multiple chances for unique maps to be placed.
0 to <= 3 is the same as 0 to < 4, so it's actually 4 chances, not 3.

--------------------------------------------------------------------------------
fbaa9dc161 | Enne Walker | 2009-11-28 21:36:35 -0500

Change confusing vaults.des comment.

--------------------------------------------------------------------------------
7bb32694c2 | Enne Walker | 2009-11-28 21:23:57 -0500

Don't rotate or mirror 1x1 vaults.
This cuts down on message spam when placing uniques.

--------------------------------------------------------------------------------
4fe67e14ca | Enne Walker | 2009-11-28 20:53:42 -0500

Subvaults.
Vaults can now include other vaults as a part of their definition.  These
subvaults are currently included by tag only and replace glyphs in their
parent vault.  See documentation for more details.

Vault:8 has been modified to use subvaults.

--------------------------------------------------------------------------------
13d037ff0e | Jude Brown | 2009-11-29 08:57:05 +1000

Hacked uniq_crazy_yiuf_cottage a bit.
It was regularly splitting levels up. Despite the fact that it no longer
clobbers stairs, it's still placed after the connectivity confirmation,
so it can still split the level. I've added paths through it and entry
points, so hopefully this should solve the issue.

May need to be reverted if it doesn't fix the issue, or causes other
problems.

--------------------------------------------------------------------------------
842740547b | Robert Vollmert | 2009-11-28 22:16:22 +0100

Add shaft milestone.

--------------------------------------------------------------------------------
40753bacfa | Robert Vollmert | 2009-11-28 20:21:52 +0100

Use append_weapon_stats for staff stat description.
Fixes staffs showing stats in a different order from weapons, and
makes the description safe from future stat changes.

--------------------------------------------------------------------------------
b1ad22ee0d | Robert Vollmert | 2009-11-28 18:18:16 +0100

Remove aged commented #ifdef COLOUR_OPTS from defines.h.

--------------------------------------------------------------------------------
6e1cc1abcf | Robert Vollmert | 2009-11-28 18:18:15 +0100

Add an option to draw the player cursor manually.
Set use_fake_player_cursor = true to use this. This allows
defaulting the cursor to off, which means less cursor blinking
say when travelling.

This patch also moves the cursor control closer to where it's
used, so that the cursor is only turned on for actual input
prompts. I've definitely missed some prompts here: almost
anything that prompts for a single character and reads it
using getch() will not have a cursor with use_fake_player_cursor
set at the moment.

--------------------------------------------------------------------------------
a7280a4d1b | Jude Brown | 2009-11-28 22:29:06 +1000

Make death effects unaffected by polymorph.
Polymorphing either Pikel, Kirke or Duvessa/Dowan rendered their death
effects useless, as it checked monster->type and not the original
monster (ie, monster->mname).

Instead of checking monster->mname, though, store the name in
monster->props, to stop sorear complaining.

--------------------------------------------------------------------------------
97870b6170 | Jude Brown | 2009-11-28 21:37:36 +1000

Give unique maps a second and third chance to place.
If the map doesn't get placed, give it a second and third try at it.
Give up after these, though; this means that uniques should probably
generate at the same rate as they were at before.

--------------------------------------------------------------------------------
4c967be214 | Robert Vollmert | 2009-11-28 11:55:18 +0100

Place uniques with noclobber=false.
This should help with broken levels created by Yiuf's cottage. It may
mean that we won't be seeing much of Yiuf anymore.

--------------------------------------------------------------------------------
0f04bb79d7 | Robert Vollmert | 2009-11-28 11:53:29 +0100

Fix tiles compile.
I just duplicated the player robe_clouds.png to urand_clouds.png.
No idea if this is correct.

--------------------------------------------------------------------------------
5265a61456 | Robert Vollmert | 2009-11-28 11:53:10 +0100

Colour excluded stairs pink in level map title.
Also increase maximal feature list width to 20.

--------------------------------------------------------------------------------
b4640f2297 | Jude Brown | 2009-11-28 20:05:40 +1000

Update dpeg's Doroklohe map.
It now has colour, though it still requires an entrance hall. The
monsters need to be more solidly balanced (it varies between 10k EXP and
30k EXP). I am quite happy with the colour, now.

The boxes also fall away after a certain number of turns (can be
increased it not enough). Coming along nicely!

--------------------------------------------------------------------------------
82adc75c9a | Jude Brown | 2009-11-28 18:00:38 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
6f299c822f | Jude Brown | 2009-11-28 17:59:58 +1000

Remove Robe of Clouds' equip message.
This function would appear to only work for melee items and not for body
armours. It was flavour anyway.

--------------------------------------------------------------------------------
e5fd9990b9 | Jude Brown | 2009-11-28 17:59:14 +1000

Remove Robe of Clouds' equip message.
This function would appear to only work for melee items and not for body
armours. It was flavour anyway.

--------------------------------------------------------------------------------
584fc18bb7 | Jude Brown | 2009-11-28 17:42:07 +1000

Added new possible WizLabs.
Wucad Mu's Monastery, Botono's Bayou, Ukta's Hut and The Alchemist's
Tower, all themed after the relevant unrand (Bear Spirit hat for Ukta).

--------------------------------------------------------------------------------
257af9cdcc | Jude Brown | 2009-11-28 16:58:11 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
1ae80c393d | Jude Brown | 2009-11-28 16:48:23 +1000

New unrand: +3 robe of Clouds (rElec, +Lev)
It creates clouds of rain and thin mist around the player (very
occasionally). Provides insulation and evocable levitation. Also has a
tile!

--------------------------------------------------------------------------------
f7d19cfa76 | David Ploog | 2009-11-28 07:29:21 +0100

Update CREDITS.

--------------------------------------------------------------------------------
26461c1f62 | Matthew Cline | 2009-11-27 21:29:51 -0800

Fix stash-tracker shop-menu on non-travel levels

--------------------------------------------------------------------------------
6d0546ed89 | Jude Brown | 2009-11-28 14:39:18 +1000

Fix reversed logic in is_damaging_cloud (bug #80).
Was returning you.res_rotting() instead of !you.res_rotting(), meaning
that you don't get a prompt for entering miasma clouds when you don't
have rotting resistance, and that you do get a prompt when you do.

--------------------------------------------------------------------------------
b42076112c | Jude Brown | 2009-11-28 14:30:43 +1000

Make '8' and '9' obey random monster list in portal vaults.
Move the set_vault_mon_list code out of dgn_register_place, as that
function is called after the random monsters are picked. Hopefully, this
also does not cause any future problems.

--------------------------------------------------------------------------------
8c6d089862 | Matthew Cline | 2009-11-27 19:49:05 -0800

Manipulate shopping list from stash tracker

--------------------------------------------------------------------------------
cd00c7c937 | Matthew Cline | 2009-11-27 19:49:05 -0800

ShoppingList::item_name_simple(): include pluses
Include pluses in the name returned by item_name_simple(), so that a
shop with two wands of the same type but with different charges will be
distinguishable.

--------------------------------------------------------------------------------
07709472a2 | Matthew Cline | 2009-11-27 19:49:05 -0800

ShoppingList: pass level_pos* as const

--------------------------------------------------------------------------------
6d16cbb7c1 | Jude Brown | 2009-11-28 13:12:13 +1000

Make RANDOM_MONSTER work properly in portal vaults.
When the random monster list isn't set in a portal vault, it generates
MONS_PROGRAM_BUGS. Instead of doing this, pick random monsters from
where you entered the portal vault from.

Hopefully this code doesn't cause any bugs.

--------------------------------------------------------------------------------
f886116c80 | Matthew Cline | 2009-11-27 17:20:47 -0800

mons_cast_noise(): wrong key order for poly'd mons
Wizard and priest monsters which kept their spells after polymorphing
into a monster without hands had the "targeted" key placed in the wrong
order.

--------------------------------------------------------------------------------
e845ff9fa5 | Jude Brown | 2009-11-28 08:59:46 +1000

Add Doroklohe's Tomb. (dpeg)
Put dpeg out of his misery! It requires a bit more customisation to work
thematically with the rest of the WizLabs, and it needs a lot more
colour, but it is an excellent start.

--------------------------------------------------------------------------------
c4c4381674 | Jude Brown | 2009-11-28 08:52:46 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
01b14be4f3 | Robert Vollmert | 2009-11-27 23:03:58 +0100

A first version of features in the level map title.
They're not sorted yet, and the implementation is deficient in
quite a few ways, but it's a start.

--------------------------------------------------------------------------------
da7d77fb82 | Robert Vollmert | 2009-11-27 23:03:58 +0100

Move level map title out of _draw_level_map.
Also move the wizard position output in there.

--------------------------------------------------------------------------------
9b59974ebf | David Lawrence Ramsey | 2009-11-27 15:05:49 -0600

Comment fixes.

--------------------------------------------------------------------------------
61f557c4c2 | David Lawrence Ramsey | 2009-11-27 15:00:36 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
3d40a67ac3 | Robert Vollmert | 2009-11-27 20:40:05 +0100

Remove redundant 1-level branch check.

--------------------------------------------------------------------------------
43ecefb893 | Robert Vollmert | 2009-11-27 20:15:38 +0100

Give shafts in corridor ends a good chance of being preknown.

--------------------------------------------------------------------------------
9c0902acd3 | Robert Vollmert | 2009-11-27 20:15:38 +0100

Quiet debug message spam.

--------------------------------------------------------------------------------
0b0f05c8a9 | Robert Vollmert | 2009-11-27 19:47:25 +0100

Make early undiscovered shaft traps a little milder.
As per FR 2905062, the drop you at most 1 level from D:1 or
2 levels from D:2. Considering the steep difficulty increase
in the early dungeon, this seems like a good idea, even once
they become as rare as intended.

--------------------------------------------------------------------------------
e9cced7968 | David Lawrence Ramsey | 2009-11-27 12:11:15 -0600

Fix compilation.

--------------------------------------------------------------------------------
255816a46b | Robert Vollmert | 2009-11-27 18:31:16 +0100

Don't update map knowledge when revealing traps.
For "Detect Traps", map knowledge is already update by
reveal_traps, and if a trap is in view, it will be copied to
env.map_knowledge from env.show already.

Fixes #78, which was caused by pre-known shaft traps changing
map knowledge through trap_def::reveal.

--------------------------------------------------------------------------------
20cfc8cceb | Robert Vollmert | 2009-11-27 18:06:58 +0100

Fix tiles compile (missing includes).

--------------------------------------------------------------------------------
9368f57866 | Robert Vollmert | 2009-11-27 17:57:40 +0100

Remove header includes from mon-place.h.

--------------------------------------------------------------------------------
21e5d28ecd | Robert Vollmert | 2009-11-27 17:31:55 +0100

Remove further header-header includes.

--------------------------------------------------------------------------------
400830315d | Robert Vollmert | 2009-11-27 17:26:57 +0100

Remove further header-include. env.h now always directly included.

--------------------------------------------------------------------------------
eef5ee8386 | Robert Vollmert | 2009-11-27 17:19:40 +0100

Remove unnecessary header-header includes.

--------------------------------------------------------------------------------
b2ab02a834 | Robert Vollmert | 2009-11-27 16:53:49 +0100

Move trap_def from externs.h to trap_def.h.

--------------------------------------------------------------------------------
df9015848b | Jude Brown | 2009-11-28 00:03:56 +1000

Revert accidentally committed vault.
Oops.

--------------------------------------------------------------------------------
c7857e47b9 | Jude Brown | 2009-11-28 00:02:39 +1000

Re-add Purple Smoke cloud type (sorear).
This is visually identical to translocational energy, but will have uses
in portal vaults (specifically, wizlabs).

--------------------------------------------------------------------------------
ff7569cb8f | Robert Vollmert | 2009-11-27 14:30:36 +0100

Correct bounds in assert.

--------------------------------------------------------------------------------
0b18822703 | Robert Vollmert | 2009-11-27 14:30:36 +0100

Cleanup: remove unused code and inaccurate diagnostic.

--------------------------------------------------------------------------------
6f2528d6b9 | Robert Vollmert | 2009-11-27 14:30:36 +0100

Also veto dungeon if second stair fixup attempt failed.

--------------------------------------------------------------------------------
285fe6789c | Jude Brown | 2009-11-27 23:12:29 +1000

Take advantage of "hp" and "hd" tags in Tukima's Studio.
This makes the strange machines in the loot vaults slightly more of a
threat, though it does mean that the EXP loot is also increased
slightly.

--------------------------------------------------------------------------------
2f7fc4747e | Jude Brown | 2009-11-27 23:09:29 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
d4c755abfe | Jude Brown | 2009-11-27 23:07:36 +1000

Documentation for "hp" and "hd" tags.
Might not make any sense, as I'm a bit tired.

--------------------------------------------------------------------------------
d1b7b6522f | Jude Brown | 2009-11-27 23:00:11 +1000

Re-roll random HP after adjusting HD in monster specs.

--------------------------------------------------------------------------------
b506866218 | Jude Brown | 2009-11-27 22:44:12 +1000

New tags for monster specs: "hd" and "hp". (kilobyte)
Both values override the default class values. Placing "rat hd:20" will
generate a rat with a hit dice of 20, while placing "rat hp:20" will set
its hp to 20.

--------------------------------------------------------------------------------
1f6a372b1d | Jude Brown | 2009-11-27 22:42:56 +1000

Documentation on the various speech_XXX props.

--------------------------------------------------------------------------------
61355ed8d1 | Jude Brown | 2009-11-27 22:22:47 +1000

Check monster props for a speech key as well as prefixes (kilobyte).
This now means that speech_key will override the lookup: instead of
looking up the monster's name, it will first look up the speech_key's
value.

speech_prefix retains the original implementation of speech_key (adding
a single prefix to a list of possibles).

--------------------------------------------------------------------------------
58e8489c81 | Matthew Cline | 2009-11-27 04:08:05 -0800

Fix shopping list crashing during map_stat_gen

--------------------------------------------------------------------------------
9f174bb4dd | Jude Brown | 2009-11-27 22:04:15 +1000

Give Erinya's Garden loot, finalise a few things.

--------------------------------------------------------------------------------
d829dcb142 | Jude Brown | 2009-11-27 21:52:37 +1000

Updates to Erinya's Formal Garden.

--------------------------------------------------------------------------------
1e8b27a093 | Jude Brown | 2009-11-27 21:23:26 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
ec60900d97 | Jude Brown | 2009-11-27 21:22:06 +1000

Fix include center being broken.
Typo in the variable name ("y" instead of "_y") meant that the center
was always being included, even if it was specifically excluded.

--------------------------------------------------------------------------------
2c9120bf3e | Matthew Cline | 2009-11-27 02:53:01 -0800

Bug #74: fix shopping list crash

--------------------------------------------------------------------------------
2579ebdc85 | Matthew Cline | 2009-11-27 02:47:16 -0800

Fix deleting entries from shopping list.

--------------------------------------------------------------------------------
14f12cc4f9 | Matthew Cline | 2009-11-27 02:46:56 -0800

Remert menu::del_entry() addition

--------------------------------------------------------------------------------
d000c257fe | Matthew Cline | 2009-11-27 02:22:37 -0800

Can now delete shopping list items via '$' menu

--------------------------------------------------------------------------------
c039e7e846 | Matthew Cline | 2009-11-27 02:20:59 -0800

New method menu::del_entry()

--------------------------------------------------------------------------------
0f8cd49c9c | Matthew Cline | 2009-11-27 01:40:34 -0800

Add third menu action type ACT_MISC
To the menu actions ACT_EXECUTE and ACT_EXAMINE add the third action
type ACT_MISC, for things like deleting menu entries.  The member
"allow_toggle" has been changed to "action_cycle", with the possible
values CYCLE_NONE (default) , CYCLE_TOGGLE (allow_toggle == true), and
CYCLE_CYCLE (cycle through all three possible action types).

--------------------------------------------------------------------------------
3e6a77f46b | Matthew Cline | 2009-11-27 00:31:51 -0800

ShoppingList: simplify.

--------------------------------------------------------------------------------
2eab9ba113 | Matthew Cline | 2009-11-27 00:31:51 -0800

Bug #51: Shopping list travel bug fix
Shopping list travel now always goes all the way to the shop.

--------------------------------------------------------------------------------
65f7bd4b12 | Matthew Cline | 2009-11-27 00:31:51 -0800

Bug #51: Remove gone portals from shopping list

--------------------------------------------------------------------------------
7230429666 | Jude Brown | 2009-11-27 18:27:15 +1000

Fix bug in the Teleporter (Eronarn)

--------------------------------------------------------------------------------
4895b3c908 | Matthew Cline | 2009-11-26 23:41:00 -0800

Quiet unitialized variable compiler warning.

--------------------------------------------------------------------------------
bec57e5c9d | Matthew Cline | 2009-11-26 23:36:19 -0800

Dumb monsters can't pathfind through secret doors

--------------------------------------------------------------------------------
b79b287790 | Jude Brown | 2009-11-27 17:01:11 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
aed5e7f8d9 | Jude Brown | 2009-11-27 16:56:31 +1000

Fix Deep Dwarf's Guardian Spirit message being shown for all races (mumblerit).

--------------------------------------------------------------------------------
b633856c0a | Jude Brown | 2009-11-27 14:59:07 +1000

Merge branch 'master' into wizlab

--------------------------------------------------------------------------------
5194ce66d6 | Jude Brown | 2009-11-27 14:58:10 +1000

New Lua library: feat.
Provides wrappers for all of the feat_is_XXX functions from terrain.cc,
as well as a few other functions. Also provides a macro which can wrap a
function to take:

  * a set of co-ordinates (parsed with grd(coord_def(x, y)))
  * a string (parsed with dungeon_feature_by_name)
  * an integer (cast into dungeon_feature_type, can be fetched from
  	dgn.grid(x, y))

All of the feat library functions can be used in this manner. For
example:

  * feat.is_wall(x, y)
  * feat.is_wall(dgn.grid(x, y))
  * feat.is_wall(7)
  * feat.is_wall("rock_wall")

--------------------------------------------------------------------------------
74685cd974 | Enne Walker | 2009-11-26 20:02:48 -0500

Removing zlib from linking against a tiles build.
libpng was the only consumer of zlib, so zlib is no longer needed either.

--------------------------------------------------------------------------------
d35b18cd77 | Jude Brown | 2009-11-27 10:35:02 +1000

Store in-progress Wizard's Laboratory Portal Vault.
It currently requires a lot of work, and there are a lot of maps that
still need doing. Current maps mostly by me, though dpeg's map needs to
be added in when I find the email.

--------------------------------------------------------------------------------
ed9bd2a254 | Jesse Luehrs | 2009-11-26 15:54:23 -0600

fix slot selection for picked up items

--------------------------------------------------------------------------------
4aefee616c | Robert Vollmert | 2009-11-26 21:53:22 +0100

More compile fixes.

--------------------------------------------------------------------------------
9008aba73e | Robert Vollmert | 2009-11-26 21:06:53 +0100

Fix tiles compile.

--------------------------------------------------------------------------------
28fc081282 | Robert Vollmert | 2009-11-26 17:30:49 +0100

Fix translevel travel to previously unvisited levels.
This involves only updating stair distances if the target position
is more than just a level id.

--------------------------------------------------------------------------------
9ff367c141 | Robert Vollmert | 2009-11-26 17:16:08 +0100

Simplify scrolling handling in message_out.
The newline parameter to message_out is gone. Instead, a
pointer to the message line is passed which may lie outside
the message window. The window is then scrolled to make
that line the last line.

This also updates libnonunix.cc, but I haven't been able
to test those changes.

--------------------------------------------------------------------------------
ef78118cbd | Vsevolod Kozlov | 2009-11-26 14:13:26 +0300

Use actor::can_see in ball lightning's special ability.

--------------------------------------------------------------------------------
35a7de76e0 | Vsevolod Kozlov | 2009-11-26 14:13:25 +0300

Reformat arena specification in the manpage.

--------------------------------------------------------------------------------
38708a9d6d | Vsevolod Kozlov | 2009-11-26 14:13:25 +0300

Tweak the short description in crawl.6.

--------------------------------------------------------------------------------
4bd6ffea6d | Vsevolod Kozlov | 2009-11-26 14:13:25 +0300

Add book_number to debug-mode item descriptions.

--------------------------------------------------------------------------------
aa2c935b3c | Robert Vollmert | 2009-11-26 11:56:05 +0100

Put more() prompt on new line with delay_message_clear.

--------------------------------------------------------------------------------
0ff2cc1976 | Robert Vollmert | 2009-11-26 11:56:05 +0100

Flush previous messages in more().
This fixes the level up message disappearing with
delay_message_clear and is probably the right thing to do
anyway.

Before, the ---more--- would be printed before older messages
were shown.

--------------------------------------------------------------------------------
42b35070b3 | Robert Vollmert | 2009-11-26 11:56:05 +0100

Only scroll if window is actually full.

--------------------------------------------------------------------------------
a4b3634349 | Robert Vollmert | 2009-11-26 11:56:05 +0100

delay_message_clear: Output leading dash on mesclr already.
This gives a clear indication of which messages happened in the
current turn.

--------------------------------------------------------------------------------
ea5213b7e2 | Robert Vollmert | 2009-11-26 11:56:05 +0100

Reorder message window scrolling.
This should fix display of bottom message window line.

--------------------------------------------------------------------------------
f97ca6b326 | Adam Borowski | 2009-11-26 11:14:54 +0100

Don't link tiles against ncurses nor libpng.
The former is a "duh" case, the latter because Crawl itself doesn't depend
on libpng, it's needed by libsdl-image only.  Such unneeded dependencies
can then result in waste (if all libraries use proper symbol versioning)
or crashes (if not) once sdl is rebuilt against a different version of libpng.
(Suggestions I'm doing this not to avoid future crashes but merely because
Debian tools are screaming at me are evil lies, honest! :þ).

--------------------------------------------------------------------------------
852e9454c3 | Jude Brown | 2009-11-26 18:42:28 +1000

Give Harold and Executioners their own spell books.

--------------------------------------------------------------------------------
19556431fc | David Ploog | 2009-11-26 09:10:23 +0100

Another repair for bailey_3 (Omnijim, Robert).

--------------------------------------------------------------------------------
0cc3c2ec15 | Matthew Cline | 2009-11-25 18:57:40 -0800

Bug #35: auto-exlcusions from monster clouds
Monsters leaving behind trails of clouds (like fire elementals) or
leaving clouds on death (like simulacrums) were causing auto-exclusions
to be placed, as if they were generated by fog machines; fixed.

--------------------------------------------------------------------------------
c34814cfad | David Lawrence Ramsey | 2009-11-25 19:25:16 -0600

Put the demons in mons_pan() in alphabetical order again.

--------------------------------------------------------------------------------
431d91b3a7 | David Lawrence Ramsey | 2009-11-25 18:56:43 -0600

Fix comment.

--------------------------------------------------------------------------------
bfd2527922 | David Lawrence Ramsey | 2009-11-25 18:52:00 -0600

Tweak sixfirhy description, as it doesn't actually wield anything.

--------------------------------------------------------------------------------
7c145da3a3 | David Ploog | 2009-11-26 01:34:47 +0100

Repair bubbles in a bailey map (Omnijim, Zaba).

--------------------------------------------------------------------------------
9e9e0bbdc9 | Adam Borowski | 2009-11-26 01:24:43 +0100

Install the tiles into a sane place.

--------------------------------------------------------------------------------
535cae2eb0 | Adam Borowski | 2009-11-26 00:06:31 +0100

Promote beasts from '4' to '2'.

--------------------------------------------------------------------------------
27b3e26606 | Adam Borowski | 2009-11-26 00:06:31 +0100

Let sixfirhies spawn in Pan and in Abyss, being quite rare.

--------------------------------------------------------------------------------
58c32846fc | Adam Borowski | 2009-11-26 00:06:31 +0100

Un-underpopulate '4's by adding sixfirhy: elec theme, unorthodox timings.
Sixfirhies move in bursts: speed 30, but act only on 4 turns out of 12.
They also get a bonus to moving compared to other actions (move cost 60%).

Damage brand is AF_ELEC -- it's unproportionately dangerous, so the numbers
only look small.

Also, electricity heals them!  It won't bring the back from over the edge
if physical part of damage got them to 0 hp or less, in this case, they'll
explode instead.

Keeping with the long tradition of Crawl's demon names, the credit for this
one goes to timecircuits' cat.

--------------------------------------------------------------------------------
4e9088e3e1 | Jude Brown | 2009-11-26 09:02:03 +1000

Fix wiz-mode Ziggurats not being properly initialised [BR2903984]
The code references the "portal" object (created in ziggurat_portal,
which is also passed to the onclimb initialiser) which is not actually
used for Wizard Mode portals.

Fixed this by a) checking whether or not there was a portal included in
the zig() "check to see if we're using &P", and also adding a parameter
to to ziggurat_portal which just returns the actual portal.

--------------------------------------------------------------------------------
d14f7a3f2f | Adam Borowski | 2009-11-25 23:56:47 +0100

Delete .cflags on "make clean".

--------------------------------------------------------------------------------
0b0dc6a731 | Adam Borowski | 2009-11-25 23:42:10 +0100

Properly build when out of git (using packaged source).

--------------------------------------------------------------------------------
a410ea842a | Adam Borowski | 2009-11-25 23:09:28 +0100

Use $(MAKE) not make -- on BSD, make is no good so we need gmake.

--------------------------------------------------------------------------------
29242ada3e | Adam Borowski | 2009-11-25 23:09:28 +0100

Don't assign food to 'e' and potions to 'y' unless that's the only slot left.

--------------------------------------------------------------------------------
e7e1a8a227 | Robert Vollmert | 2009-11-25 20:44:47 +0100

Revert "Deny skill exercise if not enough available xp (mesilliac)."
This reverts commit 2fc79a6d0d709878025fa1f06cf2a5344098f333.

Didn't work out too well -- it turns out that this starves rarely
trained skills compared to skills that are exercised often (and
usually with empty pool before this change).

That doesn't mean the approach of a never emptying skill pool
couldn't work, but it would require more invasive changes, like
randomly denying exercise of the heavily exercised skills.

--------------------------------------------------------------------------------
fa8b82009f | David Lawrence Ramsey | 2009-11-25 11:10:16 -0600

Tweak wording.

--------------------------------------------------------------------------------
f6ba4a965e | Robert Vollmert | 2009-11-25 17:19:20 +0100

Do fix upstairs on D:1 since otherwise level is vetoed.
_fixup_interlevel_connectivity may fail otherwise.

This fixes the dungeon builder failing when it doesn't choose
an entry vault (say if entry.des is wiped).

--------------------------------------------------------------------------------
62bb479598 | Robert Vollmert | 2009-11-25 17:19:19 +0100

Use connected dump map in _add_feat_if_missing.

--------------------------------------------------------------------------------
70814e4479 | Robert Vollmert | 2009-11-25 17:19:18 +0100

Add option to dump zone index to dump_map.

--------------------------------------------------------------------------------
9734b6dd43 | Robert Vollmert | 2009-11-25 17:19:16 +0100

Don't use is_travelsafe_square for dungeon generation.
This hopefully fixes recent disconnected level problems.

--------------------------------------------------------------------------------
2627a794d8 | Robert Vollmert | 2009-11-25 17:19:14 +0100

Fix map_stat_gen assert.
magic_mapping was called without center, which caused it to use
player position, which was the origin, which caused radius_iterator
to not do bounds checking. Now sets center of map.

--------------------------------------------------------------------------------
99e9af0c42 | Adam Borowski | 2009-11-25 15:56:09 +0100

Remove unportable hacks from the invocation of tar.

--------------------------------------------------------------------------------
9305aa6caa | Adam Borowski | 2009-11-25 15:56:09 +0100

Rename SAVE_PACKAGE_TAR to USE_TAR/USE_ZIP to reduce confusion.

--------------------------------------------------------------------------------
6b9d5a24d6 | Adam Borowski | 2009-11-25 15:56:09 +0100

Allow using tar or zip on FreeBSD. Unlike what the comment says, FreeBSD can 
have zip, and like Linux, it won't usually have it unless installed by hand.

--------------------------------------------------------------------------------
31ff16b5d8 | Robert Vollmert | 2009-11-25 15:15:18 +0100

Properly #ifdef diagnostic statement.
Fixes the "add stair at pos" message appearing in normal builds
(BR 2901951).

--------------------------------------------------------------------------------
ec4cba57dd | Robert Vollmert | 2009-11-25 15:00:20 +0100

Sort out translevel travel initialization.
All translevel travel now goes through start_translevel_travel(pos),
which in particular makes sure destination stair distances are
determined, fixing travel failure to waypoints.

This was not failing earlier because prompt_translevel_target used
to call start_translevel_travel(pos) through the now-unused
TravelCache::travel_to_waypoint.

--------------------------------------------------------------------------------
9e4ff27375 | Adam Borowski | 2009-11-25 14:03:09 +0100

Implement reaping as a melee brand.

--------------------------------------------------------------------------------
9a1056ab7e | Adam Borowski | 2009-11-25 14:03:09 +0100

Be more nazi about illegal brands (like, reaping on melee weapons like scythes).

--------------------------------------------------------------------------------
763bb56f6a | Matthew Cline | 2009-11-25 04:46:35 -0800

Remove undeed Berkely DB supression
The uninitialized memory problem seems to have been fixed.

--------------------------------------------------------------------------------
f86dbda480 | Matthew Cline | 2009-11-25 04:40:27 -0800

Quiet save-and-quit Valgrind leak warnings
Split save_game() code which allocates std::string's on the stack out
into seperate functions, so they'll go out of scope and be free'd before
end() is called, thus getting rid of the spurious complaints Valgrind
gives.

--------------------------------------------------------------------------------
64cedc8717 | Robert Vollmert | 2009-11-25 12:30:19 +0100

Update xcode project (gulbanana).

--------------------------------------------------------------------------------
6aee160591 | Robert Vollmert | 2009-11-25 12:02:01 +0100

Fix tiles compile.

--------------------------------------------------------------------------------
8fff000e0d | Matthew Cline | 2009-11-24 23:28:28 -0800

Lets jellies pathfind through eatable doors.

--------------------------------------------------------------------------------
8b2941aed8 | Matthew Cline | 2009-11-24 23:25:11 -0800

Message for seen jelly eating door.

--------------------------------------------------------------------------------
41912d836f | Matthew Cline | 2009-11-24 23:10:43 -0800

monster_pathfind: Initialize all members

--------------------------------------------------------------------------------
e5c79d90cf | Matthew Cline | 2009-11-24 22:58:06 -0800

Let monsters pathfind through doors...
if they can open them.

--------------------------------------------------------------------------------
7f10f7daee | Matthew Cline | 2009-11-24 22:57:36 -0800

Wiz cmd pathfind: print diagnostic messages

--------------------------------------------------------------------------------
1bf16fdce2 | Adam Borowski | 2009-11-25 01:21:00 +0100

Name the file of an invalid save (http://bugs.debian.org/498080) Really, we'd 
want to ask the player whether to discard the save, but at that point the 
interface is not yet initialized, and I'm not sure how to do this to make tiles 
happy.

--------------------------------------------------------------------------------
21ec471851 | Adam Borowski | 2009-11-25 01:21:00 +0100

Remove a save compat hack for major tag 6 (we're in tag 8 already).

--------------------------------------------------------------------------------
fb479a5a36 | Robert Vollmert | 2009-11-25 00:09:14 +0100

Fix non-wizard compilation.

--------------------------------------------------------------------------------
c309a750a4 | Charles Otto | 2009-11-24 18:04:19 -0500

Adjust the ballistomycete spore production rate
Bump the ballistomycete spawn timer up to ~500 turns for now. I'll do
something more elaborate with them later.

--------------------------------------------------------------------------------
d0ef64f0b4 | Robert Vollmert | 2009-11-24 23:33:50 +0100

Don't pass needs_path=true when looking around.
This makes sure you can cycle to stashes outside LOS.

--------------------------------------------------------------------------------
6a8fd2eaff | Robert Vollmert | 2009-11-24 23:06:26 +0100

Add new targetting flag SPFLAG_TARG_OBJ for object targetting.
Also make apportation use this. Apportation now doesn't target
out-of-sight objects anymore.

--------------------------------------------------------------------------------
4f9a9aa77b | Robert Vollmert | 2009-11-24 23:02:25 +0100

Make object targetting heed range and needs_path.
Also simplify mimic handling by referring to map_knowledge.

--------------------------------------------------------------------------------
7e011d2d22 | Robert Vollmert | 2009-11-24 23:02:25 +0100

Properly deal with mimics in env.show.
Unknown mimics are now stored as items, not monsters.

--------------------------------------------------------------------------------
9ad1ed0ee3 | Robert Vollmert | 2009-11-24 23:02:25 +0100

map_cell item accessor.

--------------------------------------------------------------------------------
5df61c5574 | Robert Vollmert | 2009-11-24 22:58:11 +0100

Make different direction targets independent; cleanup.
If you first cycle to a monster, then to some object, the object
will be searched starting at the center.

Also use coord_def& mfp for both input and output.

--------------------------------------------------------------------------------
a201e90e17 | Robert Vollmert | 2009-11-24 21:07:28 +0100

Rename lua interpreter context (doy).

--------------------------------------------------------------------------------
798aa2e33a | Robert Vollmert | 2009-11-24 20:54:02 +0100

Default delay_message_clear to true (dpeg).

--------------------------------------------------------------------------------
03d1923a54 | Robert Vollmert | 2009-11-24 20:48:19 +0100

Remove options target_oos and target_los_first.

--------------------------------------------------------------------------------
77ac1569d4 | Robert Vollmert | 2009-11-24 17:02:39 +0100

Only destroy shaft traps if they exist.
Fixes crash for example when shafted by chaos weapons.

--------------------------------------------------------------------------------
f60ed1a40e | Robert Vollmert | 2009-11-24 16:18:03 +0100

Fix wandering monsters always targetting the player if in sight.

--------------------------------------------------------------------------------
baf03926db | Robert Vollmert | 2009-11-24 15:52:59 +0100

Fix another callmbooleanfn bug.

--------------------------------------------------------------------------------
04d3f6151e | Adam Borowski | 2009-11-24 13:46:43 +0100

Killing freed slaves and other friendles may give no xp, but Makhleb likes it 
nevertheless.

--------------------------------------------------------------------------------
077a18f576 | Robert Vollmert | 2009-11-24 13:41:24 +0100

Fix compile with newer gcc.

--------------------------------------------------------------------------------
6a454cd127 | Matthew Cline | 2009-11-24 03:19:36 -0800

Debugging functions to call from &^T
Currently only holds "debug_wrath()".  After pressing "&^T",
etner "debug_wrath()" to repeatedly throw divine wrath the player,
without the player dying; stops when any key is pressed.

--------------------------------------------------------------------------------
abc9ebbd1b | Matthew Cline | 2009-11-24 03:19:36 -0800

debug.cull_monsters() and debug.dismiss_adjacent()

--------------------------------------------------------------------------------
66206d9c37 | Matthew Cline | 2009-11-24 03:19:36 -0800

you.never_die: restore stat on stat-death

--------------------------------------------------------------------------------
ca996d2ca6 | Matthew Cline | 2009-11-24 03:19:36 -0800

Fix crawl.process_keys(), add crawl.redraw_stats()

--------------------------------------------------------------------------------
dad87859c8 | Matthew Cline | 2009-11-24 03:19:36 -0800

Auto-clear more while luaterp is running

--------------------------------------------------------------------------------
db67164e0f | Matthew Cline | 2009-11-24 03:19:36 -0800

you.never_die tweaks

--------------------------------------------------------------------------------
e362a71223 | Matthew Cline | 2009-11-24 03:19:36 -0800

craw.more_autoclear()

--------------------------------------------------------------------------------
2805b3beeb | Matthew Cline | 2009-11-24 03:19:36 -0800

you.never_die (player::never_die)
If the macros DEBUG or WIZARD are defined, then class player will have
the member never_die, which if set to true makes any deadly calls to
ouch() return without the game ending.

--------------------------------------------------------------------------------
6ca662b8cc | Matthew Cline | 2009-11-24 03:19:36 -0800

reset_more_autoclear() -> set_more_autoclear()
You can now also turn on autoclear-more status from outside message.cc,
rather than just turning it off.

--------------------------------------------------------------------------------
64a27196fc | Robert Vollmert | 2009-11-24 11:25:40 +0100

Remove unused option target_wrap.

--------------------------------------------------------------------------------
24891de52a | Robert Vollmert | 2009-11-24 11:25:10 +0100

Remove unused default arguments.

--------------------------------------------------------------------------------
254c2ac607 | Robert Vollmert | 2009-11-24 11:05:13 +0100

Remove option target_zero_exp.
The same effect can now be achieved by overriding
ch_target_monster. If anyone wants this, I'm happy
to provide lua code.

--------------------------------------------------------------------------------
0c9cba8792 | Robert Vollmert | 2009-11-24 11:05:13 +0100

Allow overriding of monster target selection through Lua.
_find_monster now calls ch_target_monster with coordinates of
a possible target.

Currently ch_target_monster is only passed the relative
coordinates of the possible target. It could easily be
passed flags like need_path. Eventually, it should be able
to check what the targetting is about (which spell, etc.),
but that's not so easy to do currently.

--------------------------------------------------------------------------------
e022aaa532 | Robert Vollmert | 2009-11-24 11:05:13 +0100

Move player2grid and grid2player to coord.

--------------------------------------------------------------------------------
6728050e3e | Robert Vollmert | 2009-11-24 11:05:13 +0100

Add "maybe_bool CLua::callmbooleanfn".
This allows Lua hooks to say they don't have an opinion.

--------------------------------------------------------------------------------
5648dce611 | Robert Vollmert | 2009-11-24 11:05:13 +0100

Add ternary logic type maybe_bool.

--------------------------------------------------------------------------------
f8bbfc037a | David Ploog | 2009-11-24 08:42:50 +0100

Reduce weight for general overflow temple (Adam).

--------------------------------------------------------------------------------
8c39d7d5a2 | Robert Vollmert | 2009-11-24 08:05:24 +0100

Make scroll of silence ultra-rare.
The spell is automatically balanced to some extent by preventing
the caster (who will have invested heavily in magic) from casting
anymore. This is not at all the case for the scroll.

Could remove, but balancing by rarity instead.

--------------------------------------------------------------------------------
163a5137f9 | Robert Vollmert | 2009-11-24 07:12:42 +0100

Allow reactivation of lua marker.
Failed reactivation was causing error messages on travel to
off-level stashes, for example.

_loadlev_populate_stair_distances reactivates all markers, so
markers should probably handle reactivatiion gracefully.
Not sure this is the correct way to handle things, however.

--------------------------------------------------------------------------------
d4e0b56366 | Robert Vollmert | 2009-11-24 07:12:41 +0100

Remove redundant check.

--------------------------------------------------------------------------------
739fbc00f7 | Jude Brown | 2009-11-24 12:28:37 +1000

Make Khufu immune to silence (dpeg).
Also fix some erroneous whitespace in the syntax file.

--------------------------------------------------------------------------------
bb0e38e158 | Jude Brown | 2009-11-24 12:11:41 +1000

Put monster-overriden quotes in the right place.

--------------------------------------------------------------------------------
09553219c7 | Charles Otto | 2009-11-23 20:52:10 -0500

Fix a crash in Fedhas's retribution
Fix an overrun caused by incrementing the wrong variable in a loop.

--------------------------------------------------------------------------------
f2bb7ce8d3 | Vsevolod Kozlov | 2009-11-23 21:33:12 +0300

Fix off-by-one error in mapping of rod subtypes to spellbook numbers.

--------------------------------------------------------------------------------
10523dc697 | Vsevolod Kozlov | 2009-11-23 20:58:14 +0300

Remove unused _ammo_count.

--------------------------------------------------------------------------------
57d35526d2 | Adam Borowski | 2009-11-23 15:41:33 +0100

Border a vault in rock, it looks butt ugly when approached from the back.

--------------------------------------------------------------------------------
9a861e3dc4 | Adam Borowski | 2009-11-23 15:04:33 +0100

Give a message and FX when you banish people.

--------------------------------------------------------------------------------
3bea6e2e7a | Adam Borowski | 2009-11-23 15:04:33 +0100

Move _polyd_can_speak() to monsters::can_speak() so others can use it.

--------------------------------------------------------------------------------
2d3e3d3d42 | Adam Borowski | 2009-11-23 15:04:32 +0100

If you die to disintegration, say "blown up" not "killed".

--------------------------------------------------------------------------------
d4d28a2bee | Robert Vollmert | 2009-11-23 14:27:38 +0100

Remove multi-purpose Options.mlist_targetting.
The option is now just a boolean option, and whether we're
actively targetting with the mlist is stored in
crawl_state.mlist_targetting.

Also remove some duplication of mlist logic from direction().

--------------------------------------------------------------------------------
f88703cc64 | Robert Vollmert | 2009-11-23 14:27:38 +0100

Mark read-only parameters to direction() const.

--------------------------------------------------------------------------------
d4b04e4f44 | Robert Vollmert | 2009-11-23 14:27:38 +0100

Extract target mode description.

--------------------------------------------------------------------------------
0eaa5344bb | Eino Keskitalo | 2009-11-23 14:03:40 +0200

Increase dummy vault WEIGHT to 200. (due)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
73d6545ba6 | Matthew Cline | 2009-11-23 03:04:23 -0800

receive_corpses(): don't crash if no items avail
If there aren't any floor item slots available, don't crash.

--------------------------------------------------------------------------------
c58f6e940a | Matthew Cline | 2009-11-23 02:20:52 -0800

Don't crash for Beogh dancing weapons in clouds
create_monster(), when trying to avoid placing Beogh wrath dancing
weapons into dangerous clouds, would crash because the dummy dancing
weapon it created didn't have it's demon_ghost setup.

See bug #17.

--------------------------------------------------------------------------------
f1c1f6fd2c | Robert Vollmert | 2009-11-23 11:03:56 +0100

Rename tutorial_first_monster to tutorial_monster_seen.
It's not just used for the first monster.

--------------------------------------------------------------------------------
08a9922a39 | Robert Vollmert | 2009-11-23 11:03:56 +0100

Tutorial: fix brands being explained for first monster.
tutorial_first_monster is now called from fewer places, and doesn't
issue TUT_MONSTER_BRAND itself anymore.

--------------------------------------------------------------------------------
00752442e1 | Matthew Cline | 2009-11-23 02:00:57 -0800

Make monster-info pane work in arena

--------------------------------------------------------------------------------
6dbc0873be | Jude Brown | 2009-11-23 19:18:14 +1000

Adjust Aizul's range: 16-25, Snake:2-5, instead of 20-27.

--------------------------------------------------------------------------------
38594b5d9b | Jesse Luehrs | 2009-11-23 02:49:26 -0600

allow ammo gifts again, even if we already have some ammo

--------------------------------------------------------------------------------
c6e1802d74 | Matthew Cline | 2009-11-23 00:22:47 -0800

Tiny teleports don't throw monster off track
If a teleport moves the player so little it's more like a blink, then
monsters which are tracking the player won't lose the scent.

--------------------------------------------------------------------------------
b71fe38f3c | Matthew Cline | 2009-11-23 00:07:19 -0800

Give "struct dist" a constructor, for initing
Fix Valgrind warnings about uninialized values in the dist struct (now
class) by giving it a constrcutor which initializes all values.

--------------------------------------------------------------------------------
99426d184c | Matthew Cline | 2009-11-23 00:00:08 -0800

Fix targeting do-command-again
Oops.

--------------------------------------------------------------------------------
85764ca065 | Matthew Cline | 2009-11-22 22:59:38 -0800

More dc-foo.txt dependencies.

--------------------------------------------------------------------------------
c94f94d695 | Matthew Cline | 2009-11-22 21:02:48 -0800

tiles: Make mod-L-click actions do-again-able
If you fire/cast/zap at a monster with mod-L-click, then you can do the
command over again with the "`" key.  Doesn't work yet with spells cast
via the spell pane (toggled on with "_"), or with items fired via
clicking on the inventory pane.

--------------------------------------------------------------------------------
ce0b009e85 | Matthew Cline | 2009-11-22 21:02:48 -0800

New class pause_all_key_recorders
If declared on the stack, it will pause all key recorders as soon as
declared, then return them to their previous pausing state when it goes
out of scope.

--------------------------------------------------------------------------------
55abf2cd3e | Matthew Cline | 2009-11-22 17:46:23 -0800

On player teleport, reset mon->foe_memory
This should fix the problem of monsters tracking the player knowing
where the player teleports to.

--------------------------------------------------------------------------------
6442131a34 | Matthew Cline | 2009-11-22 17:05:40 -0800

TODO tiles for new ammunition spells

--------------------------------------------------------------------------------
11e26b98d4 | Matthew Cline | 2009-11-22 17:00:20 -0800

Use TILEG_ERROR, not TILE_ERROR, for bad spells
tileidx_spell() returning TILE_ERROR for bad spells was causing
assertions in rltiles/tiledef-gui.cc; it should have been returning
TILEG_ERROR.

--------------------------------------------------------------------------------
7b22a3c233 | Jude Brown | 2009-11-23 10:12:03 +1000

Counterpart fprop for NO_RTELE_INTO: NO_CTELE_INTO.
NO_CTELE_INTO causes grid-cells marked as such to reject controlled
teleport into them, with the message: "A strong magical force throws you
back!".

NO_TELE_INTO combines both of these flags (NO_RTELE_INTO and
NO_CTELE_INTO) to prevent both controlled and random teleports into a
specific cell.

Also document both of these.

--------------------------------------------------------------------------------
2fc79a6d0d | Robert Vollmert | 2009-11-22 20:36:05 +0100

Deny skill exercise if not enough available xp (mesilliac).
Patch 1744207. Should be easy enough to revert if it doesn't work
out, and seems quite independent from other 0.6 changes. From the
request:

  After a while of playing i found that available xp for
  exercising skills decreases to zero quickly after gaining it.
  It means most skills don't get excercised unless you usually
  use them right after fighting.

  I hacked my version to randomly deny a skill exercise if you
  don't have much available xp. The chance is available xp /
  total xp needed this level. Seems to work well - skills are
  getting exercised more evenly and it finds its own equilibrium.
  You can still do something repeatedly to practice its skill,
  just you don't have to do it immediately after killing a
  powerful monster.

--------------------------------------------------------------------------------
c652cbec17 | Robert Vollmert | 2009-11-22 20:36:05 +0100

Remove hard skill pool cutoff.
There's now a soft cutoff at player::exp_pool_cutoff() that scales
with you.total_skill_points. Above that, you.exp_available is
stepped down.

It currently starts at ~800 skill points for a new character. A human
melee fighter (weapon skill 27, fighting 15, traps 8, armour 15,
invo 12) gets around 18000 points (skill level 21).

The cutoff is not currently limited.

Side-effects are a nerf to the experience card -- it could easily
be changed to still give the usual 20000 points.

--------------------------------------------------------------------------------
1b497b95a9 | Vsevolod Kozlov | 2009-11-22 22:29:21 +0300

Add -builddb to the manpage.

--------------------------------------------------------------------------------
f35a35cedf | Adam Borowski | 2009-11-22 20:08:41 +0100

Use tar on Unix for save files, zip is unlikely to be installed.

--------------------------------------------------------------------------------
440636cfb2 | Adam Borowski | 2009-11-22 20:08:41 +0100

Add an option, -builddb, to build the database and exit.

--------------------------------------------------------------------------------
a32b296a7e | Jesse Luehrs | 2009-11-22 12:33:22 -0600

add save file information to crawl --version

--------------------------------------------------------------------------------
a50cfa0b55 | Robert Vollmert | 2009-11-22 18:26:09 +0100

Colour experience pool.
Now yellow between 10000 and 15000 and red above 15000. If
required, this could be configurable, but I'd prefer not
to introduce more options.

--------------------------------------------------------------------------------
2734cf27fe | Robert Vollmert | 2009-11-22 18:26:09 +0100

Make experience pool defines unsigned.

--------------------------------------------------------------------------------
a0501938d1 | Robert Vollmert | 2009-11-22 18:26:09 +0100

Fix vampire xp level check.

--------------------------------------------------------------------------------
95ac64548a | David Lawrence Ramsey | 2009-11-22 10:24:19 -0600

Check for ogre genus when possible, for consistency.

--------------------------------------------------------------------------------
98126e5812 | Robert Vollmert | 2009-11-22 16:23:34 +0100

Rebalance distracted stabs (FR 2902035).
For any of the stab attempts with a roll, the chance to stab
is increased by a factor 3/2 (now around dex+stab in 100
instead of dex+stab in 150), and damge bonus is halved.

This may still improve damage output of highly-developed
stabbers if they still do enough to kill most monsters
in one hit, but I think it's ok.

For the record, such a stabber will know do around 80-90
damage per hit against a confused monster, less against
a distracted one.

--------------------------------------------------------------------------------
c7d57b1486 | Robert Vollmert | 2009-11-22 16:23:34 +0100

Convert skill pool magic numbers to named constants.

--------------------------------------------------------------------------------
32e689581d | David Lawrence Ramsey | 2009-11-22 08:16:32 -0600

Fix typo.

--------------------------------------------------------------------------------
26e351bcdf | Matthew Cline | 2009-11-22 04:19:10 -0800

Fix typo

--------------------------------------------------------------------------------
8527cebf89 | Matthew Cline | 2009-11-22 03:19:03 -0800

Quite valgrind unitialized memory warning.

--------------------------------------------------------------------------------
32ca5181ef | Jude Brown | 2009-11-22 20:47:05 +1000

Remove accidentally commited test vault.

--------------------------------------------------------------------------------
058224d30d | Vsevolod Kozlov | 2009-11-22 12:48:08 +0300

Replace uses of disease_player with player::sicken.

--------------------------------------------------------------------------------
81d0709e17 | Jude Brown | 2009-11-22 18:34:26 +1000

Tweak the Trog's book altar vault.
Sanity check the item being destroyed; give the player a single turn
before destroying the item.

--------------------------------------------------------------------------------
722243eb20 | Matthew Cline | 2009-11-22 00:21:14 -0800

explore_stop: new condition greedy_pickup_thrown
explore_stop condition greedy_pickup_smart no longer stops for items
which were thrown by the player.  The new condition greedy_pickup_thrown
can be used by those who wish to stop auto-explore when thrown items are
auto-pickup'd.

--------------------------------------------------------------------------------
41814e9593 | David Ploog | 2009-11-22 08:29:05 +0100

Overhaul of overflow temple vaults. (Adam)
Reduced difficulty. Added new Trog vault (Jude). Sorted overflow vaults
alphabetically by god name.

--------------------------------------------------------------------------------
98e00e2ae1 | Matthew Cline | 2009-11-21 22:22:54 -0800

tiles: show spell tile for lookup and memorization

--------------------------------------------------------------------------------
b232c1bc26 | Matthew Cline | 2009-11-21 22:22:54 -0800

tiles: spell_list() now shows spell tiles
Also, spell_list() now always displays in tiles mode for tiles builds.

--------------------------------------------------------------------------------
c54cc580ef | Matthew Cline | 2009-11-21 22:22:54 -0800

All menu entries can have tiles
The base MenuEntry class can now have tiles, and all menu entries
can have tiles added to them by calling add_tile() (or directly
manipulating the tiles member).  This is for menus where selecting
the tile(s) to use is very easy, so there's no need to make a subclass
of MenuEntry.

--------------------------------------------------------------------------------
ab3ea04380 | Jude Brown | 2009-11-22 15:54:24 +1000

Stop Deep Dwarf MP from regenerating with spirit shield.
Don't allow Deep Dwarves to use spirit shields as a free source of
regenerating HP.

However, this simply stops natural regeneration. Potions of magic,
crystal balls, staffs of channeling, and other God powers (Makhleb,
Vehumet and Sif Muna) are still acceptable methods.

--------------------------------------------------------------------------------
15a43070d5 | Jude Brown | 2009-11-22 15:35:22 +1000

Change no-autoexplore message (dpeg).

--------------------------------------------------------------------------------
3048e47616 | Jude Brown | 2009-11-22 15:24:14 +1000

Disable auto-explore in Labyrinths again.
As per discussion on c-r-discuss, don't even bother with a prompt, just
disallow auto-explore in Labyrinths.

--------------------------------------------------------------------------------
17e64a4967 | Jude Brown | 2009-11-22 15:21:55 +1000

Iteration-related functions: stack_search and stack_destroy.
The first will return the first item whose name matches the search term
in the relevant stack, while the second will destroy each item in the
stack. Hopefully the precautions in stack_destroy will be enough.

--------------------------------------------------------------------------------
47ed564372 | Matthew Cline | 2009-11-21 19:57:49 -0800

Info on developers using IRC

--------------------------------------------------------------------------------
d5e749ac9b | David Lawrence Ramsey | 2009-11-21 21:03:54 -0600

Add another changelog entry.

--------------------------------------------------------------------------------
bd599b2121 | David Lawrence Ramsey | 2009-11-21 20:40:45 -0600

Update changelog entry.

--------------------------------------------------------------------------------
78168b3ea1 | David Lawrence Ramsey | 2009-11-21 20:40:06 -0600

Typo fixes.

--------------------------------------------------------------------------------
7fc87a9ee8 | Matthew Cline | 2009-11-21 18:25:43 -0800

Various changelog updates

--------------------------------------------------------------------------------
5e5d112ca9 | Matthew Cline | 2009-11-21 17:39:55 -0800

Dependencies for dc-corpse.txt and dc-mon.txt

--------------------------------------------------------------------------------
a8883544d5 | David Lawrence Ramsey | 2009-11-21 19:09:35 -0600

change the ETC_SHIMMER_BLUE color to use tmp_rand.
It doesn't quite match with the original random_choose_weighted()
values, but it should be close enough.

--------------------------------------------------------------------------------
84488d2b62 | David Lawrence Ramsey | 2009-11-21 19:00:35 -0600

Change the ETC_KRAKEN color to use tmp_rand.
This is so element_colour()'s no_random parameter is taken into account
properly.

Also, so it divides evenly, add lightmagenta to the list of colors.

--------------------------------------------------------------------------------
5961e9e4fc | David Lawrence Ramsey | 2009-11-21 18:40:50 -0600

Make (very) ugly thing corpse tiles handle the different colors.
I can't test this in-game, but main.png displays all the different
colored corpses properly, so I think it works.

--------------------------------------------------------------------------------
23a44595f9 | David Lawrence Ramsey | 2009-11-21 18:39:47 -0600

Make _tileidx_corpse() take an item instead of item.plus directly.

--------------------------------------------------------------------------------
90104081ec | David Lawrence Ramsey | 2009-11-21 18:39:01 -0600

Make ugly_thing_colour_offset() take only a color instead of a monster.

--------------------------------------------------------------------------------
e64350b0f7 | David Lawrence Ramsey | 2009-11-21 18:38:27 -0600

Remove the ETC_UGLY and ETC_VERY_UGLY colors, as they're now unused.

--------------------------------------------------------------------------------
4d17184374 | David Lawrence Ramsey | 2009-11-21 18:37:46 -0600

Make (very) ugly things' corpses retain their original color again.

--------------------------------------------------------------------------------
ab26f91275 | David Lawrence Ramsey | 2009-11-21 18:36:49 -0600

Add spacing fix.

--------------------------------------------------------------------------------
c37c870f18 | Robert Vollmert | 2009-11-21 23:22:33 +0100

Restore redrawing when resting.
This means that you'll see allies moving, summons disappearing
and clouds changing while resting, like before (console) or
newly (tiles).

--------------------------------------------------------------------------------
e1f5627fdb | Robert Vollmert | 2009-11-21 23:10:24 +0100

Don't issue erroneous seen-interrupts during level generation.
There was a check against you.can_see() in _place_monster_aux
which took place on the new level, while player position and
LOS were still on the old level.

Aside from possible other bugs, this was apparent in the
tutorial, which occasionally told the player about such
monsters.

--------------------------------------------------------------------------------
59b5c92844 | Robert Vollmert | 2009-11-21 23:06:37 +0100

Modify ponderousification failure message (Butch).

--------------------------------------------------------------------------------
6f2640b2b5 | Robert Vollmert | 2009-11-21 21:56:46 +0100

Redraw view window earlier when entering a new level.
In particular, before update_level is called.
This prevents monsters being shown acting on the previous level.

--------------------------------------------------------------------------------
d2b1a3bc57 | Robert Vollmert | 2009-11-21 21:56:46 +0100

Rework off-level monsters going to sleep (FR 2163705).
The fleeing/cornered/batty check whose purpose I didn't get is gone with
this.

After x turns (depends on intelligence), half of the monsters will have
forgotten about the player, and a quarter has gone to sleep. A given
monster has a 95% chance of forgetting the player after 4*x turns, and
going to sleep after 10*x turns.

--------------------------------------------------------------------------------
9f9997ca82 | David Lawrence Ramsey | 2009-11-21 14:34:45 -0600

Remove M_NO_SKELETON from monsters with corpse types but zero weights.

--------------------------------------------------------------------------------
05251bd49f | David Lawrence Ramsey | 2009-11-21 14:23:17 -0600

Add an attempt at a golden eye tile.
Currently, it's just a palette-swapped giant eyeball tile.

--------------------------------------------------------------------------------
693d43bc28 | David Lawrence Ramsey | 2009-11-21 14:21:14 -0600

Give golden eyes poisonous corpses, for consistency with other eyes.

--------------------------------------------------------------------------------
3471d2ccb7 | David Lawrence Ramsey | 2009-11-21 14:18:21 -0600

Revert "Ensure that shining eyes and eyes of devastation get corpse tiles."
This reverts commit 17fd0dfface1f6fa727571c275b0b474aebadecf.

These monsters have weights of 0, so they never get corpses (oops).

--------------------------------------------------------------------------------
17fd0dffac | David Lawrence Ramsey | 2009-11-21 13:21:11 -0600

Ensure that shining eyes and eyes of devastation get corpse tiles.

--------------------------------------------------------------------------------
a6026dc6b6 | David Lawrence Ramsey | 2009-11-21 13:21:10 -0600

Add consistency fixes for monsters without skeletons.
Specifically, ensure that all such monsters with corpse types get the
M_NO_SKELETON flag, while others don't (as it's redundant).
Make sure all monsters with corpse types get M_NO_SKELETON

--------------------------------------------------------------------------------
739c5a7122 | Robert Vollmert | 2009-11-21 19:46:08 +0100

Remove some exclamation marks.

--------------------------------------------------------------------------------
4277eaea5e | David Lawrence Ramsey | 2009-11-21 12:37:25 -0600

Add formatting fixes.
This mostly puts && and || on the proper lines, per the style guide.

--------------------------------------------------------------------------------
505571294e | David Lawrence Ramsey | 2009-11-21 11:51:00 -0600

Simplify.

--------------------------------------------------------------------------------
1920e37b7d | David Lawrence Ramsey | 2009-11-21 11:43:07 -0600

Remove now-unused function offer_and_butcher_corpse().

--------------------------------------------------------------------------------
b2915ea664 | Robert Vollmert | 2009-11-21 17:14:36 +0100

Update burden on transformation.
Regardless of changing strength, transformations can affect
carrying capacity, hence require a call to burden_change.

There may be issues with message order or when both shape
and strength are modified.

--------------------------------------------------------------------------------
aaa3bc2421 | David Lawrence Ramsey | 2009-11-21 10:01:28 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
36b6c11996 | Robert Vollmert | 2009-11-21 16:55:35 +0100

Choose sanctuary-style once.
Cross-like, grid, circle etc. now actually appear as such. I
assume this is how it was intended?

--------------------------------------------------------------------------------
78ab73b26c | Jude Brown | 2009-11-21 22:58:57 +1000

Update CREDITS.txt.
Removed one as requested.

--------------------------------------------------------------------------------
c262f0a60d | Robert Vollmert | 2009-11-21 13:54:24 +0100

Hack player::los for arena.
This should fix recent arena display problems.

Also fix los_def::in_bounds to translate coordinates.

--------------------------------------------------------------------------------
b9101bc371 | Jude Brown | 2009-11-21 22:41:18 +1000

A nasty hack to allow access to the item library in vaults.
As the item library is aptly named "item", and the function for
specifying item slots in a vault is likewise named "item", there's no
way for vaults to access any of the functionality in the item library
(it just returns errors about accessing a function value).

I'm not sure what changing the name of the item library will do,
however, so I've left it the same and simply added a second copy using
the library name of "items". It seems to function correctly, and
hopefully will not cause any issues. Perhaps the current "item" library
could actually be renamed, but this may have impact on user-defined
scripts.

--------------------------------------------------------------------------------
15d9b87898 | Jesse Luehrs | 2009-11-21 05:27:31 -0600

typo fixes

--------------------------------------------------------------------------------
98bd91125d | Matthew Cline | 2009-11-21 03:05:11 -0800

docs/devel/testing.txt: ways of testing Crawl

--------------------------------------------------------------------------------
2f4955f77e | Jesse Luehrs | 2009-11-21 04:38:29 -0600

give the "passes through" message for penetration on initial hit

--------------------------------------------------------------------------------
0f564ac5ed | Robert Vollmert | 2009-11-21 11:20:30 +0100

Merge halo.cc into areas.cc.

--------------------------------------------------------------------------------
2fb6a7e3d9 | Robert Vollmert | 2009-11-21 11:20:30 +0100

Move silenced(pos) to areas.cc.

--------------------------------------------------------------------------------
201207baf2 | Robert Vollmert | 2009-11-21 11:20:30 +0100

Simplify.

--------------------------------------------------------------------------------
7a5fc61d8e | Robert Vollmert | 2009-11-21 11:20:30 +0100

Create areas.cc and move sanctuary code there.
areas.cc is meant to collect all area effects like sanctuary,
silence, halo, pending future unification.

--------------------------------------------------------------------------------
5497e2078e | Jude Brown | 2009-11-21 19:41:17 +1000

Lua wrapper for place_cloud.
dgn.apply_area_cloud is useful for applying clouds, but clunky for
attempting to place single clouds.

--------------------------------------------------------------------------------
53a908731b | Matthew Cline | 2009-11-21 01:04:23 -0800

"&:" wiz-command overflow temple comment tweak

--------------------------------------------------------------------------------
9dbb0dcfa3 | Matthew Cline | 2009-11-21 00:57:49 -0800

player ghosts: bugfix, debugging/diagnostics
* Fixed bug where the player's ghost was never being placed in the
dungeon, even though the file was being properly loaded.

* The wizard command &^G can now both save and load bones files, so you
don't have to quit/restart/go-to-level multiple times to get a bones
file to load.

* All possible failure points for both loading and creating bones files
now generate diagnostic messages (when diagnostics is turned on).

--------------------------------------------------------------------------------
e077609ef9 | Jude Brown | 2009-11-21 18:47:16 +1000

Some clean up of Lua iterator code.

--------------------------------------------------------------------------------
4ac8908825 | David Ploog | 2009-11-21 09:31:32 +0100

New altar vaults, almost all by Lemuel.

--------------------------------------------------------------------------------
e5407d8a69 | Jesse Luehrs | 2009-11-21 02:11:46 -0600

dragons can now have non-targeted spells, occasionally
for instance, polymorphed monsters keep their spellbooks now

--------------------------------------------------------------------------------
e3f6a41cd1 | Jude Brown | 2009-11-21 18:03:43 +1000

New Lua iterator: circle_iterator. Fix LOS/adjactent iterator.
LOS and adjacent iterators were only working if include_center was set
to true; setting it to false (or nil) results in no points being
returned.

--------------------------------------------------------------------------------
f2552fc090 | Jesse Luehrs | 2009-11-21 01:56:46 -0600

autoid steel and silver on sight

--------------------------------------------------------------------------------
e24ea09997 | Jesse Luehrs | 2009-11-21 01:56:46 -0600

make non-tiles builds compile

--------------------------------------------------------------------------------
493425c55e | Matthew Cline | 2009-11-20 23:55:29 -0800

tiles monster lookup: dancing weapons tiles
Handle faked dancing weapons tiles in MonsterMenuEntry::get_tiles()

--------------------------------------------------------------------------------
e672992760 | Robert Vollmert | 2009-11-21 08:24:34 +0100

Beholder check now uses proper LOS.
This should fix corners cutting mesmerization short (2901182).

--------------------------------------------------------------------------------
5ea2782c48 | Jesse Luehrs | 2009-11-21 01:24:28 -0600

only refresh when actually necessary

--------------------------------------------------------------------------------
1e40dff21f | Jesse Luehrs | 2009-11-21 01:24:28 -0600

0 gold owed in a shop is valid

--------------------------------------------------------------------------------
fa80bf483a | Matthew Cline | 2009-11-20 23:19:07 -0800

lookup feature (?/F): show tiles
In a tiles builds, when looking up features (?/F) show the tiles in the
selection menu.

--------------------------------------------------------------------------------
4da6707399 | Matthew Cline | 2009-11-20 23:18:02 -0800

Init FeatureMenuEntry from dungeon_feature_type
Add a second FeatureMenuEntry constructor, which accepts the
dungeon_feature_type to use instead of the positon of the feature in
question.

--------------------------------------------------------------------------------
37c7bf6bde | Matthew Cline | 2009-11-20 20:47:07 -0800

monster lookup: Don't show tile for dancing weapon
Generating a temporary dancing weapon monster to diplsay in the monster
lookup menu (?/M) is somewhat hackish; implement it later (as opposed to
crashing).

--------------------------------------------------------------------------------
0c0e03aa42 | Matthew Cline | 2009-11-20 20:45:11 -0800

define_monster(): init ghost_demon for some mons
Move setting up of mons.ghost for pandemonium lords to define_monster(),
and also have define_monster() do some default initialization for (very)
ugly things and player ghosts, so that a simple define_monster() will
generate something valid to be displayed in the monster lookup menu
(?/M).

--------------------------------------------------------------------------------
cd26a67dc7 | Matthew Cline | 2009-11-20 18:52:05 -0800

Fix console monster lookup (?/M)

--------------------------------------------------------------------------------
fd138a2253 | Matthew Cline | 2009-11-20 18:30:56 -0800

tiles: use monster tile for lookup monster (?/M)
When looking up monsters via "?/M" with a tiles build, show each
monster's tile instead of showing a colored text glyph.  Console lookup
monster should remain the same, but hasn't been tested yet.

--------------------------------------------------------------------------------
9f36949d9b | Matthew Cline | 2009-11-20 16:49:06 -0800

Supress SDL/Nvidia-GL cond memory error

--------------------------------------------------------------------------------
fb4a4eb190 | Charles Otto | 2009-11-20 18:56:33 -0500

Fix bugs 2900276 and 2901145, monster beams hitting their thrower
Switch to the YOU_KILL and MON_KILL macros for determining whether a
beam was fired by a monster or the player (used to decide whether a
beam can hit a monster or the player at its point of origin). This
fixes manticores not using their ability, and also stops electric eels
(and electric eel pallet swaps) from shooting themselves.

--------------------------------------------------------------------------------
9adbeda686 | David Lawrence Ramsey | 2009-11-20 17:49:40 -0600

Remove trailing whitespace.

--------------------------------------------------------------------------------
2b1fcc1c22 | David Lawrence Ramsey | 2009-11-20 17:34:14 -0600

Fix typo.

--------------------------------------------------------------------------------
45b2f1669a | David Lawrence Ramsey | 2009-11-20 17:29:32 -0600

Clarify comment.

--------------------------------------------------------------------------------
da87bdc2d2 | David Ploog | 2009-11-20 23:17:56 +0100

Some more Fedhas vault tweaks.

--------------------------------------------------------------------------------
eb8814c886 | David Ploog | 2009-11-20 23:13:54 +0100

Remove oklob platoon from Fedhas vault (TGW).

--------------------------------------------------------------------------------
bf288cdaff | Robert Vollmert | 2009-11-20 22:21:29 +0100

Remove unused crawl_exit_hook.

--------------------------------------------------------------------------------
1a1d9ecee3 | Eino Keskitalo | 2009-11-20 22:51:14 +0200

Mention shield not slowing down rate of fire of slings in the description of 
slings.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
e52f946460 | Eino Keskitalo | 2009-11-20 22:47:37 +0200

Make shields not delay slings.
Slings are now HANDS_ONE (instead of HANDS_HALF like blowguns and hand 
crossbows), and made the delay for such ranged weapons in 
launcher_shield_slowdown to be 100.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
55f26887d8 | David Lawrence Ramsey | 2009-11-20 14:33:33 -0600

Remove DOS/Windows EOLs from hells.des.

--------------------------------------------------------------------------------
3af48f6fc3 | David Ploog | 2009-11-20 21:31:08 +0100

Some more tweaks to hell maps (Neil).

--------------------------------------------------------------------------------
cbf4418a7f | David Ploog | 2009-11-20 20:56:30 +0100

Make mulching of branded ammunition multiplicative.
For now, it's double for fire and frost (removed the distinction at least
for the time being) and quadrupled for reaping.

--------------------------------------------------------------------------------
1010ec5516 | Robert Vollmert | 2009-11-20 20:40:18 +0100

Test branch flags against BFLAG not LFLAG.

--------------------------------------------------------------------------------
05eb29bffa | Robert Vollmert | 2009-11-20 20:33:21 +0100

Move Tomb branch flag no_tele_control from crypt.des to branch.cc.
This fixes shaft traps being generated on Tomb:1; apparently,
BFLAGS: was being interpreted after placing traps on the level;
shaft traps are not placed in no-telecontrol levels.

A better fix would be to make sure BFLAGS is called earlier.
Alternatively, BFLAGS could be remove -- it doesn't appear
to be used any more.

--------------------------------------------------------------------------------
ab09f427ff | Steven Noonan | 2009-11-20 09:55:00 -0800

makefile: Darwin needs SQLite built
/usr/include/sqlite3.h isn't the include used when we actually compile, because
Mac OS X uses SDK versions. The 10.4 SDK is the default, and its SQLite doesn't
have new enough functions.

So we force building it.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
df09da49b1 | Robert Vollmert | 2009-11-20 18:38:01 +0100

Don't fully describe zombified monsters in ?/m.
This was causing a buggy message or assert since base monster
wasn't set up.

Fixes 2845355.

--------------------------------------------------------------------------------
c0a90b453e | Robert Vollmert | 2009-11-20 18:19:03 +0100

Fix clear map revealing changed terrain information.
Fixes BR 2862579.

--------------------------------------------------------------------------------
590faac64a | Robert Vollmert | 2009-11-20 17:59:10 +0100

Reword "Extension" spell description.
Fixes BR 2875554, but could use better wording.

--------------------------------------------------------------------------------
7a7856183b | Adam Borowski | 2009-11-20 16:20:30 +0100

A hack to check if system sqlite3 is no good.

--------------------------------------------------------------------------------
2a05832a0f | Robert Vollmert | 2009-11-20 15:44:38 +0100

Replace a few more uses of env.grid with env.map_knowledge.

--------------------------------------------------------------------------------
2c625f9afe | Robert Vollmert | 2009-11-20 15:44:19 +0100

Use remembered terrain instead of actual terrain in pathfind.
This fixes travel colour revealing changed terrain.

--------------------------------------------------------------------------------
87e8df0226 | Robert Vollmert | 2009-11-20 13:52:24 +0100

Make emphasise() and is_unknown_stair() refer to map_knowledge.
They are no longer passed a "remembered feature" as parameter.

--------------------------------------------------------------------------------
a1f03b4ec4 | Robert Vollmert | 2009-11-20 13:52:23 +0100

map_cell::feat() -- easy remembered feat access.

--------------------------------------------------------------------------------
1c16bab090 | Robert Vollmert | 2009-11-20 13:01:25 +0100

Simplify determination of feat_value.
map_knowledge now always stores the player-known features.

--------------------------------------------------------------------------------
da2087dbf4 | Robert Vollmert | 2009-11-20 12:56:27 +0100

Remove unused is_player_seen.

--------------------------------------------------------------------------------
c4a8eb37d0 | Robert Vollmert | 2009-11-20 12:55:07 +0100

Reading and writing of extended show_type.
Also bumped minor version number.

--------------------------------------------------------------------------------
9e63876590 | Robert Vollmert | 2009-11-20 12:55:07 +0100

Remove union in show_type.
show_type can now separately store feature type, item type
and monster class. env.show and env.map_knowledge are
guaranteed to have filled object.feat, so player terrain
knowledge is available now.

This is a bit of a hack.

--------------------------------------------------------------------------------
cd397dc4d7 | johnny shelley | 2009-11-20 02:34:28 -0800

ammo mulch changes
fire / frost / electric / reaping are not auto mulch flame has chance to
save reduced by 2 frost has chance to save reduced by 1 reaping has
chance to save reduced by 3 electric has standard chance as it only
procs 1 in 3 added was_missile to beam properties in order to not auto
mulch other beam types than BEAM_MISSILE

Signed-off-by: Matthew Cline <zelgadis@sourceforge.net>

--------------------------------------------------------------------------------
1dcce9fd98 | johnny shelley | 2009-11-20 02:31:13 -0800

reorder devastating missiles for level 5 exploding ammo
Signed-off-by: Matthew Cline <zelgadis@sourceforge.net>

--------------------------------------------------------------------------------
b449537ec1 | johnny shelley | 2009-11-20 02:31:13 -0800

remove redundant 'charged' when firing electric arrows
Signed-off-by: Matthew Cline <zelgadis@sourceforge.net>

--------------------------------------------------------------------------------
7f34e34ed8 | Matthew Cline | 2009-11-20 01:57:45 -0800

find_item_type(): recognize Orb of Zot

--------------------------------------------------------------------------------
62b43a8414 | Stefan O'Rear | 2009-11-19 23:39:20 -0800

Fix X-map last travel memory for new 3D X-map

--------------------------------------------------------------------------------
38cee7a509 | David Lawrence Ramsey | 2009-11-20 00:28:53 -0600

Fix the last missing instances of the unclean/chaotic split.

--------------------------------------------------------------------------------
64eb612845 | David Lawrence Ramsey | 2009-11-19 23:24:11 -0600

After some thought, remove the holy scourge -> demon whip tile mapping.
Ideally, the demon whip tile should be edited so as to match the color
scheme of the blessed blade tile relative to the demon blade tile, and
that edited tile should be the holy scourge tile.

--------------------------------------------------------------------------------
5f0ad13731 | David Ploog | 2009-11-20 05:56:00 +0100

Two altars to Jiyva, found in the dungeon.

--------------------------------------------------------------------------------
b75d8b65f4 | David Lawrence Ramsey | 2009-11-19 22:53:56 -0600

Fix inconsistencies in holy blades' and scourges' descriptions.

--------------------------------------------------------------------------------
9626e74a03 | David Lawrence Ramsey | 2009-11-19 22:53:56 -0600

Rename blessed eudemon blades to holy eudemon blades.
This is shorter, consistent with the other demon-converted weapon, and
consistent with its always getting the holy wrath brand.

--------------------------------------------------------------------------------
9c717124d2 | Matthew Cline | 2009-11-19 20:40:15 -0800

explore_stop: greedy_pickup_smart, pickup_ignore
* Added the explore_stop option "greedy_pickup_smart", which is like
greedy_pickup, but only stops for thrown items and items different than
any in your inventory (and for fruit if you worship Fedhas).

* Added the option explore_stop_pickup_ignore.  Any items matching any
of the regexes in the list will *not* cause
"explore_stop = greedy_pickup" (or greedy_pickup_smart) to stop
auto-explore.

* "explore_stop = greedy_pickup" no longer stops when picking up gold.

* "explore_stop = greedy_pickup" (or greedy_pickup_smart) now stops
auto-explore after auto-pickup has happened, rather than right before
it happens.

* Removed obsolete ES_PICKUP.

--------------------------------------------------------------------------------
8ae09e1699 | David Lawrence Ramsey | 2009-11-19 22:36:56 -0600

Clean up a few references to holy scourges.

--------------------------------------------------------------------------------
cbf5fe7b39 | David Lawrence Ramsey | 2009-11-19 22:16:37 -0600

Properly mark blessed whips as TSO gifts (Scourges instead of Blades).

--------------------------------------------------------------------------------
8e6f0b9972 | David Lawrence Ramsey | 2009-11-19 21:36:23 -0600

Properly ignore all conducts when a god makes you cast a spell.

--------------------------------------------------------------------------------
e8ecec817a | Jude Brown | 2009-11-20 12:26:11 +1000

Lua wrapper for god_speaks (again, dlua).

--------------------------------------------------------------------------------
0b2fbcfe0d | Jude Brown | 2009-11-20 11:59:24 +1000

A dlua wrapper for you.piety.
Returns a numerical value of your piety.

--------------------------------------------------------------------------------
e388ec5211 | Jude Brown | 2009-11-20 11:47:54 +1000

Add "wall_hit" to possible DgnTriggerer types.

--------------------------------------------------------------------------------
d929dd0063 | David Lawrence Ramsey | 2009-11-19 19:06:15 -0600

Switch angels from maces to whips.
As before, speed and healing can compensate for the loss in damage.

--------------------------------------------------------------------------------
bbd82aa198 | David Lawrence Ramsey | 2009-11-19 19:05:21 -0600

Allow the holy wrath brand to show up on whips.
As with daggers, the chance is 1 in 12, and it's at the top, so it can
be overridden by any other brand.

--------------------------------------------------------------------------------
11e7de69d0 | David Lawrence Ramsey | 2009-11-19 18:56:26 -0600

Display holy scourges with the nonblessed tile equivalent, as elsewhere.

--------------------------------------------------------------------------------
01c2c98a5a | David Lawrence Ramsey | 2009-11-19 18:43:13 -0600

Switch angels from using great maces to holy scourges.
They'll do less damage, but their great speed and healing powers mean
that they won't be weakened much.

--------------------------------------------------------------------------------
215ab4d845 | David Lawrence Ramsey | 2009-11-19 18:42:26 -0600

Update description of TSO's weapon blessing to account for demon whips.

--------------------------------------------------------------------------------
d0b9064457 | David Lawrence Ramsey | 2009-11-19 18:26:53 -0600

Tweak wording.

--------------------------------------------------------------------------------
0b00d0d228 | David Lawrence Ramsey | 2009-11-19 18:15:26 -0600

Split the kill-natural-unholy/evil and kill-unclean/chaotic conducts.

--------------------------------------------------------------------------------
f9f2105b11 | David Lawrence Ramsey | 2009-11-19 18:15:26 -0600

Don't specially display Zin's taking of unclean/chaotic kills.
First, they're the only kills he takes.  Second, they don't stack with
other kills as the other specially displayed kills do (e.g. kill-living
and kill-wizard for Trog).

--------------------------------------------------------------------------------
a6b73ff917 | David Lawrence Ramsey | 2009-11-19 18:15:26 -0600

Add comments to properly document certain god-specific conducts.

--------------------------------------------------------------------------------
240c45dd9d | Adam Borowski | 2009-11-20 01:10:40 +0100

Nerf holy scourges a wee bit.

--------------------------------------------------------------------------------
8b5fc4449a | Adam Borowski | 2009-11-20 00:54:27 +0100

Improve demon whips, just like regular ones were upgraded.  Let people bless 
them.

--------------------------------------------------------------------------------
2ad3fffbef | johnny shelley | 2009-11-20 00:53:24 +0100

portal projectile was duping returning ammo - fixed.

--------------------------------------------------------------------------------
a6f20f10d1 | johnny shelley | 2009-11-20 00:53:23 +0100

call affect_endpoint in order to generate explosions when using portal 
projectile

--------------------------------------------------------------------------------
bcc9f0a918 | David Lawrence Ramsey | 2009-11-19 17:50:50 -0600

Make TSO properly take servants' kills of natural unholy beings again.

--------------------------------------------------------------------------------
4a720e0521 | David Lawrence Ramsey | 2009-11-19 15:50:17 -0600

Fix apparent inconsistency.

--------------------------------------------------------------------------------
60dd85a9c9 | David Lawrence Ramsey | 2009-11-19 15:19:41 -0600

Convert mons_has_los_ability() to use monster_type instead of int.

--------------------------------------------------------------------------------
6b87b7db8e | David Lawrence Ramsey | 2009-11-19 15:08:26 -0600

Set manticores' number of spike volleys in the proper place.

--------------------------------------------------------------------------------
319f9da34b | David Lawrence Ramsey | 2009-11-19 14:30:16 -0600

Allow the venom brand on staves; e.g. the Staff of Olgreb is precedent.

--------------------------------------------------------------------------------
fb463b88c0 | David Lawrence Ramsey | 2009-11-19 09:52:46 -0600

Simplify.

--------------------------------------------------------------------------------
208679e27f | David Lawrence Ramsey | 2009-11-19 08:04:57 -0600

After some thought, remove Porkalator from the list of chaotic spells.
It's not an uncontrolled transformation; Kirke is the only monster who
casts it; and her casting Summon Ugly Thing makes her chaotic anyway.

--------------------------------------------------------------------------------
8e6eafaca2 | johnny shelley | 2009-11-19 13:59:09 +0100

Make confusion actually confuse ranged weapon users.

--------------------------------------------------------------------------------
117cfdbc39 | David Lawrence Ramsey | 2009-11-19 06:31:39 -0600

And update what monsters can wield one more time, in a better way.
Currently, there are no unclean weapons, and Fedhas gives no monsters as
gifts that can wield weapons, but cover those cases anyway, just in
case.

--------------------------------------------------------------------------------
88bcacdbb3 | David Lawrence Ramsey | 2009-11-19 06:31:39 -0600

Update what monsters can wield based on unholy/evil and unclean/chaotic.

--------------------------------------------------------------------------------
ad599ad1c8 | David Lawrence Ramsey | 2009-11-19 06:31:39 -0600

Split chaotic things into unclean and chaotic things.
Chaotic things are now shapeshifters, mutators, etc., while unclean
things are diseasing things, rotting things, etc.

Zin still hates both.  As good gods treat both unholy and evil monsters
as evil, he'll treat both unclean and chaotic monsters as chaotic.

Note that silver will only do extra damage to chaotics, as before.

--------------------------------------------------------------------------------
b1aaf507f2 | David Lawrence Ramsey | 2009-11-19 06:31:38 -0600

Update comment to account for the unholy/evil spell distinction.

--------------------------------------------------------------------------------
ef5da6e98f | David Lawrence Ramsey | 2009-11-19 06:31:38 -0600

Make Summon Drakes necromantic, since it can summon a draining monster.

--------------------------------------------------------------------------------
4e7bdb53a1 | Adam Borowski | 2009-11-19 13:30:05 +0100

Auto-pickup things which that dirty son-of-a-hobbit Maurice got his grubby paws 
on.

--------------------------------------------------------------------------------
32548e5073 | Adam Borowski | 2009-11-19 11:26:31 +0100

No, an entrance with 4 oklobs in LOS is not good on D:2, m'kay?

--------------------------------------------------------------------------------
a6f9027e9d | Adam Borowski | 2009-11-19 11:26:31 +0100

Spec out the shield of the gong.
For now: +6 {rElec rN+ MR Spirit}, makes everyone in most of the level
flock towards you.  A scroll of noise has loudness of 25, this shield 40
(from the initial implementation, probably insane), and procs every block.

--------------------------------------------------------------------------------
c5e7569364 | Matthew Cline | 2009-11-19 02:08:37 -0800

tiles: how to close door with mouse
For tiles build, the open door description now notes how to close the
door using the mouse.

--------------------------------------------------------------------------------
4f887ce918 | Matthew Cline | 2009-11-19 02:08:13 -0800

you.is_tiles(): check if build is tiles or not

--------------------------------------------------------------------------------
b742e25f68 | Matthew Cline | 2009-11-19 01:58:17 -0800

Fix Ctrl-L-Click closing doors.

--------------------------------------------------------------------------------
eeb5735738 | Matthew Cline | 2009-11-19 01:41:45 -0800

tiles: Don't zap empty wands.

--------------------------------------------------------------------------------
7334982fb7 | Matthew Cline | 2009-11-19 00:12:21 -0800

Tiles tutorial note on items pane.

--------------------------------------------------------------------------------
552dc77be4 | Matthew Cline | 2009-11-19 00:06:21 -0800

No Ctrl-L-Click for Evaporate
Since Evaporate requires choosing a potion form inventory, the current
Ctrl-L-Click tiles interface won't handle it.

Also remove some obsolete comments.

--------------------------------------------------------------------------------
93d95397af | Matthew Cline | 2009-11-19 00:03:53 -0800

Update tiles documentation

--------------------------------------------------------------------------------
feb0e449b8 | Matthew Cline | 2009-11-18 23:59:46 -0800

tiles: spell cast tip, no walk with mod-keys
Add in the "Ctrl-L-Click" tip for casting spells.

Don't walk if you shift/ctrl/alt-click a monster or cell, since that
likely happened because you were trying to fire/cast/evoke when you
didn't have anything appropriate.

--------------------------------------------------------------------------------
266c17af69 | Matthew Cline | 2009-11-18 23:43:15 -0800

Update tiles tutorial
Add text about shift/ctrl/alt-click to fire/cast/evoke.

--------------------------------------------------------------------------------
11f47e25bc | Matthew Cline | 2009-11-18 22:59:22 -0800

Don't use reaching if you decided to fire/wand/etc

--------------------------------------------------------------------------------
93b3678de6 | Matthew Cline | 2009-11-18 22:55:45 -0800

Ctrl-L-Click to cast spell
Ctrl-L-Click on a monster or the player will cast a spell.  Clicking on
the player will let you select both non-targeted spells and targeted
spells which can usefully be aimed at the player.  Spells which are
aimed at a dungeon cell rather than an actor aren't handled yet,
nor are neutral spells like Dig.

--------------------------------------------------------------------------------
12db5eb08d | Matthew Cline | 2009-11-18 22:54:01 -0800

list_spells(): tiles menu, selector callback
The list_spells() menu can now optionally be a tiles menu, and it can be
passed a callback to select which spells to list or not (and to select
which spells should be greyed-out).

Also made _calc_spell_range() a globally available function.

--------------------------------------------------------------------------------
92a3159b05 | Matthew Cline | 2009-11-18 22:53:28 -0800

Let ToggleableMenu be a tiles menu

--------------------------------------------------------------------------------
629136e976 | Matthew Cline | 2009-11-18 20:10:19 -0800

Alt-L-Click to zap wand
Alt-L-Click on either the player or a monster will offer a menu of wands
to zap, and then zap it.  Only appropriate identified wands will be
offered in the menu: healing/haste/etc for the player and non-hostile
monsters, and attack wands for hostile monsters (unidentified wands will
be ofered for all targets).  Player targetting still doesn't work quite
right yet.

Evoking rods will be added in the future.

--------------------------------------------------------------------------------
708e779998 | Matthew Cline | 2009-11-18 20:10:19 -0800

zap_type_to_spell(): get spell which causes zap
Go backwards from a zap_type to the spell which caused it (or would have
caused it if it were a spell).  Currently only handles zap types which
wands use.

--------------------------------------------------------------------------------
070c36855d | David Lawrence Ramsey | 2009-11-18 21:31:30 -0600

Fix comments.

--------------------------------------------------------------------------------
e4a45e0efc | David Lawrence Ramsey | 2009-11-18 21:31:30 -0600

Mark Summon Swarm as chaotic, since it can summon chaotic monsters.

--------------------------------------------------------------------------------
848b22d824 | David Ploog | 2009-11-19 04:29:47 +0100

Very rarely, make Maud appear in Lair or Slime.

--------------------------------------------------------------------------------
b356b9a168 | David Lawrence Ramsey | 2009-11-18 21:25:47 -0600

Add Summon Swarm to the ghost spells, too.

--------------------------------------------------------------------------------
48d7d8377e | David Lawrence Ramsey | 2009-11-18 21:22:10 -0600

Add Chain Lightning to the ghost spells.

--------------------------------------------------------------------------------
9266cdd3cb | Jude Brown | 2009-11-19 12:39:00 +1000

Item destruction wrapper for (d)Lua.
Will (hopefully, properly) destroy an item. Example use:
item.destroy(dgn.items_at(point)[1]). Will return a false value if it
didn't get a valid item, true otherwise.

--------------------------------------------------------------------------------
2f0795cae1 | Jude Brown | 2009-11-19 12:25:55 +1000

Prompt before auto-exploring the Labyrinth.
The wording may require work. I'm not sure if this is acceptable, but
the reasoning is that hitting 'o' by accident in the Labyrinth,
especially when you have travel_delay = -1, can take you from just near
the exit to miles away, and you have to start all over again.

There are instances where auto-explore may be useful in the Labyrinth,
so don't outright disable it.

--------------------------------------------------------------------------------
66c12d383e | Jude Brown | 2009-11-19 11:39:39 +1000

Stop uniques from spawning in Slime.
This was hacked so that Dissolution could spawn in Slime; the change to
the new system meant that other uniques could also spawn there, as they
weren't explicitly prevented. Fix that.

--------------------------------------------------------------------------------
f95ed5801c | Jude Brown | 2009-11-19 10:59:18 +1000

dat/clua/iter.lua: iterators for Lua.
Currently only includes:

rectangle_iterator: iterates points between two corners.
los_iterator: iterates over currently visible points in LOS.
adjacent_iterator: iterates over adjacent points to the center.

Most iterators accept a "filter" parameter that is a function which
should either return true if the point is acceptable for the iteration,
or false if it is not.

los_iterator is currently restricted to player LOS rather than actor or
monster LOS, but could be expanded at a later date.

All of the iterators seem to work as intended: hopefully I haven't made
too many mistakes with them.

--------------------------------------------------------------------------------
d608f8e495 | Jude Brown | 2009-11-19 10:36:42 +1000

Fix Lugonu prayer messages.
Remove erroneous & print symbol that was resulting in "The giant bat
corpse is disappears into the Void".

--------------------------------------------------------------------------------
a3f28ce770 | David Ploog | 2009-11-18 23:12:19 +0100

Fix typo in Gastronok speech. (Neil)

--------------------------------------------------------------------------------
3084bd2ba6 | Matthew Cline | 2009-11-18 11:59:37 -0800

macro_buf_add_cmd() to add commands to key buffer
Commands (command_type) are now added to the keypress buffer as negative
numbers, which should hopefully take care of the problem with arrow keys
not working.

--------------------------------------------------------------------------------
3593fbb549 | David Lawrence Ramsey | 2009-11-18 13:57:05 -0600

Expand Zin's protection from just mutation to other chaotic effects.
Specifically, protect from rotting, disease, and miasma, since the first
of them is tied to the other two, and all three are chaotic.  Since
negative energy resistance no longer provides rotting resistance, this
fills in the gap left by TSO.

--------------------------------------------------------------------------------
d358ba6df5 | David Lawrence Ramsey | 2009-11-18 13:55:33 -0600

Fix compilation.

--------------------------------------------------------------------------------
cd7d5deb23 | David Lawrence Ramsey | 2009-11-18 13:46:55 -0600

Remove Zin's summoning-based wrath, as it no longer fits.
First, Jiyva considers eyeballs slimes for his purposes.  Second, insect
plagues are more suited to old Zin, who coupled them with angels for an
Old Testament theme, so to speak.  (The latter is most closely suited to
Fedhas, or it would be if he were the god of nature in general instead
of just plants and fungi.  It's also inappropriate for Zin now, since
one of the insects summoned causes disease and is, hence, chaotic.)

--------------------------------------------------------------------------------
2a6fe10091 | David Lawrence Ramsey | 2009-11-18 13:23:41 -0600

Display rotting resistance in-game.

--------------------------------------------------------------------------------
29dcbc0ab9 | David Lawrence Ramsey | 2009-11-18 13:01:15 -0600

Update Zin's and TSO's descriptions to mention which magics they hate.

--------------------------------------------------------------------------------
82da1aa146 | David Lawrence Ramsey | 2009-11-18 12:43:13 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
a7cf1b9a69 | David Lawrence Ramsey | 2009-11-18 12:34:35 -0600

Clean up rotting resistance checks, as they're effectively boolean.

--------------------------------------------------------------------------------
67d62e68ee | David Lawrence Ramsey | 2009-11-18 11:47:36 -0600

Count AF_DISEASE attacks as chaotic, to cover e.g. rotting hilks.

--------------------------------------------------------------------------------
26d05004ac | David Lawrence Ramsey | 2009-11-18 10:41:33 -0600

And update the description of the natural kills TSO likes.

--------------------------------------------------------------------------------
4e8f694dc3 | David Lawrence Ramsey | 2009-11-18 10:39:07 -0600

Make TSO take kills of MH_NATURAL monsters with unholy spells again.

--------------------------------------------------------------------------------
7bbb133d0b | David Lawrence Ramsey | 2009-11-18 09:58:47 -0600

Remove Divinations reference in aptitudes.txt.

--------------------------------------------------------------------------------
e532bca43e | Adam Borowski | 2009-11-18 14:25:44 +0100

Fix non-tiles compilation.

--------------------------------------------------------------------------------
79625b6df6 | Adam Borowski | 2009-11-18 14:25:43 +0100

Fix compilation on gcc.

--------------------------------------------------------------------------------
6b83d8ae5f | Robert Vollmert | 2009-11-18 12:22:01 +0100

Remove outdated comment.

--------------------------------------------------------------------------------
dfea268663 | Robert Vollmert | 2009-11-18 12:12:48 +0100

Simplify show update using radius iterator.

--------------------------------------------------------------------------------
7ea68756e6 | Robert Vollmert | 2009-11-18 11:43:27 +0100

Fix circle_def's ignoring global LOS radius.
circle_def::contains was disregarding the los_radius field.
This led to lantern of shadows not working (reported by
peten on ##crawl).

--------------------------------------------------------------------------------
eb9511f80e | Matthew Cline | 2009-11-18 02:01:54 -0800

tiles: Ctrl-L-Click to fire quivered ammo.

--------------------------------------------------------------------------------
b70e383469 | Matthew Cline | 2009-11-18 01:36:14 -0800

tiles: Handle weapons of reaching
If you have a weapon of reaching wielded and are within reach of a
monster, then attack when the monster is left-clicked.

--------------------------------------------------------------------------------
ab3bd97a99 | Matthew Cline | 2009-11-18 01:36:14 -0800

directn.cc: Handle CMD_TARGET_CENTER

--------------------------------------------------------------------------------
8dda54788b | Matthew Cline | 2009-11-18 01:36:13 -0800

Key press buffer can hold raw commands
Raw commands (command_type enumerations) can be added to the key press
buffer with macro_buf_add(), and key_to_command() will return them
unaltered.  This is useful for commands which have no key bidnings.

--------------------------------------------------------------------------------
09d3bbd881 | Matthew Cline | 2009-11-18 01:26:21 -0800

options_guide.txt: typo fix

--------------------------------------------------------------------------------
0097c10054 | Robert Vollmert | 2009-11-18 09:27:47 +0100

Revert "Bug 2899436: Seen tiles not drawn on load game"
This reverts commit 3a6efa8421c1461ae7b8191d3ac57a819abe5eb4.

The earlier los_update call seems to not be required anymore.

--------------------------------------------------------------------------------
b96b6dccf3 | Robert Vollmert | 2009-11-18 09:27:38 +0100

Remove now-redundant bounds check from tile_draw_floor.

--------------------------------------------------------------------------------
4cb74bb382 | Robert Vollmert | 2009-11-18 09:27:38 +0100

Reorder some tiles calls in viewwindow.
tile_draw_floor should be after los update but before
show update.

--------------------------------------------------------------------------------
7a1d7018bc | Robert Vollmert | 2009-11-18 09:27:38 +0100

Move tile_draw_floor into view.cc.
It seems like it should be merged with some of the other code
there.

--------------------------------------------------------------------------------
01c78d3add | Jude Brown | 2009-11-18 16:19:09 +1000

Fix typos, provide documentation for short name_XXX tags.

--------------------------------------------------------------------------------
5202355238 | Charles Otto | 2009-11-18 01:16:52 -0500

Tweak ballistomycete activation
When an active ballistomycete dies activate a number of other ballistos
equal to its count + 1, instead of just activating one other.

--------------------------------------------------------------------------------
597572eaf8 | Jude Brown | 2009-11-18 16:11:33 +1000

hort version of name_XXX flags for vaults.
There is a limit on how long MONS/KMONS tags can be, and name_replace,
etc, contribute to this; therefore, provide some shortened alternatives
for long descriptions:

name_suffix     -> n_suf
name_adjective  -> n_adj
name_replace    -> n_rpl
name_descriptor -> n_des
name_definite   -> n_the.

--------------------------------------------------------------------------------
ba8b214661 | Matthew Cline | 2009-11-17 20:28:01 -0800

Revert to stop auto-explore on greedy-pickup

--------------------------------------------------------------------------------
1d3bc0d683 | Matthew Cline | 2009-11-17 20:28:01 -0800

Bug 2886291: middle of secret gates looked wrong
If you had a bunch of secret doors in a row, forming a gate, then only
the ones at the end one pick up the right feature to immitate, with the
ones in the middle always being rock wall.

--------------------------------------------------------------------------------
ca49d65dbd | Charles Otto | 2009-11-17 21:57:04 -0500

Avoid triggering an assert when firing while standing on a plant
An assert in ray_blocker was being triggered off of a call to
_get_monster_desc when attempting to cast targeted spells while
standing on a plant (as a Fedhas worshiper).
find_ray returns false when the target square is equal to the source,
which triggers the assert in ray_blocker. I added a check for the
monster being on the same square as the player prior to the call to
_blocked_ray in _get_monster_desc, although this may not be the right
way to deal with the issue.

--------------------------------------------------------------------------------
60739d905f | Alex MacDonald | 2009-11-18 00:21:21 +0100

Shaft trap behavior modified. They now are one-time use and pre-knowledge of 
shaft traps (i.e. using them intentionally) will improve the chances of the 
player landing fewer levels away. Shaft traps also now randomly determine their 
destination. Monsters cannot follow the player through shaft traps.
Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
905d7f0ef5 | Alex MacDonald | 2009-11-18 00:21:21 +0100

Change shaft generation behavior: Escape hatches are not generated by 
_builder_basic. Instead, there is a chance for a trail to be created with a 
shaft at the end. Shaft generation rate upped from ~2% of all traps to ~5%. 
Shafts have 50% chance of being created as revealed, this chance decreases as 
dungeon depth increases.
Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
3f513f2dd1 | Alex MacDonald | 2009-11-18 00:21:21 +0100

Change _make_trail to give coordinates for start/end points instead of directly 
writing feature to start/end points.
Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
b9a8bf470a | Alex MacDonald | 2009-11-18 00:21:21 +0100

Added wizard command to reveal all traps on level ('}').
Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
ed68368fe1 | Alex MacDonald | 2009-11-18 00:21:21 +0100

Created generic interface for detecting traps within a radius.
Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
3a6efa8421 | Matthew Cline | 2009-11-17 14:50:12 -0800

Bug 2899436: Seen tiles not drawn on load game
Seems adding "you.update_los();" right before "viewwindow()" in
_initialise() fixes the problem.

--------------------------------------------------------------------------------
3a85576b56 | Enne Walker | 2009-11-17 17:40:29 -0500

Amending tile_draw_floor bug fix.
The check was earlying out sooner that it should and skipping some
initialization.

--------------------------------------------------------------------------------
0d745fb1e2 | Matthew Cline | 2009-11-17 14:38:14 -0800

Oops, don't show cloud info for unseen cells.

--------------------------------------------------------------------------------
5219408a87 | Matthew Cline | 2009-11-17 14:28:39 -0800

tiles: Include clouds in hover tip and description

--------------------------------------------------------------------------------
b82226b741 | Matthew Cline | 2009-11-17 14:08:01 -0800

tiles: Fix "show beam path" hiding monsters

--------------------------------------------------------------------------------
b9b8f3d184 | Matthew Cline | 2009-11-17 13:52:16 -0800

Prevent assert in tile_draw_floor()
The assert might be caused by a bug somewhere else in the tiles code;
I'm not familiar enough with tiles to say.

--------------------------------------------------------------------------------
649129f7d0 | Adam Borowski | 2009-11-17 22:00:47 +0100

Typo: "consuming 0 spell level".

--------------------------------------------------------------------------------
81cdafcf3e | Adam Borowski | 2009-11-17 21:57:33 +0100

Mention that all Brand Ammunition spells have permanent effects.

--------------------------------------------------------------------------------
fc4a6b0cef | Enne Walker | 2009-11-17 15:32:19 -0500

Adding missing includes for tiles compilation.

--------------------------------------------------------------------------------
76266acfba | Matthew Cline | 2009-11-17 11:44:35 -0800

torment(): set attacker from caster

--------------------------------------------------------------------------------
155946e893 | Matthew Cline | 2009-11-17 11:26:28 -0800

Alert tormented monsters even if attacker == NULL

--------------------------------------------------------------------------------
12fafd6bf0 | Matthew Cline | 2009-11-17 11:03:18 -0800

Fix detection of system lua/sqlite
Or at least fix it on my system, where it was falsely detecting the
presence of /usr/include/lua5.1 and /usr/include/sqlite3.h.  I *think*
the fix is valid, since I don't see "$wildcard" defined anywhere, but I
haven't tested it with the lua/sqlite devel packages installed.

--------------------------------------------------------------------------------
607b3cedc0 | David Lawrence Ramsey | 2009-11-17 11:50:52 -0600

Remove now-inaccurate comment.

--------------------------------------------------------------------------------
f1f15b7afb | Enne Walker | 2009-11-17 12:16:45 -0500

Fixing ziggurats missing fill_area function.
fill_grd_area now fills an area on the dungeon grd.  Only Ziggurats use
this function.

--------------------------------------------------------------------------------
840bf56930 | Robert Vollmert | 2009-11-17 17:33:50 +0100

Add one-key-fighting.
Adds dat/lua/autofight.lua, which provides the macro-able
hit_closest. It's quite primitive but could easily be
improved.

--------------------------------------------------------------------------------
a387822ef4 | Robert Vollmert | 2009-11-17 17:33:49 +0100

Rewrite view.feature_at.
Now returns the feature name of the appearance of a feature in view.

--------------------------------------------------------------------------------
272ec57939 | David Lawrence Ramsey | 2009-11-17 10:17:21 -0600

Tweak documentation: pkg-config is needed, but it's not Gnome-specific.

--------------------------------------------------------------------------------
3bf2520b8e | Robert Vollmert | 2009-11-17 17:04:29 +0100

Fix stunning message capitalization.

--------------------------------------------------------------------------------
65536dc4d7 | Adam Borowski | 2009-11-17 16:02:42 +0100

Document that Gnome's pkg-config is needed for the tiles build.

--------------------------------------------------------------------------------
de82fbd153 | Adam Borowski | 2009-11-17 16:02:42 +0100

Don't build against contrib lua and sqlite when system libs are available.
On Debian (and probably most others), it's a severity "Important" bug:
while not enough to get the package kicked out, this can get the Security
Team pretty angry.

--------------------------------------------------------------------------------
3d45092b1f | Robert Vollmert | 2009-11-17 15:10:56 +0100

Split itemprop enums out into itemprop-enum.h.
Other headers now don't need to include all of itemprop.h.

--------------------------------------------------------------------------------
02dec00a6a | Robert Vollmert | 2009-11-17 14:54:52 +0100

Flatten header dependencies a bit.
This removes a couple of unnecessary includes from header files.

I may have missed adding some tiles includes.

--------------------------------------------------------------------------------
9875c3fd57 | Matthew Cline | 2009-11-17 00:01:17 -0800

Get rid of arena -- more --
Adding a "-- more --" after arena errors was getting in the way of
unattended arena runs, plus the log file can be grepped for ERROR to
find them.

--------------------------------------------------------------------------------
eb530ce633 | Matthew Cline | 2009-11-17 00:01:17 -0800

Fix delayed monster explosions
If a monster "dies" from disintegration/nuke, but then is saved by
divine intervention, it shouldn't still explode when it dies later.

--------------------------------------------------------------------------------
48624c055f | Matthew Cline | 2009-11-17 00:01:17 -0800

Bug #2898311: fix memory problem leading to crash

--------------------------------------------------------------------------------
156bccf542 | David Lawrence Ramsey | 2009-11-17 00:53:52 -0600

And do the same for the rest of Fedhas' invocations.

--------------------------------------------------------------------------------
1135ed738a | David Lawrence Ramsey | 2009-11-17 00:39:42 -0600

Make sunlight() properly return false when it has no effect.

--------------------------------------------------------------------------------
e879272dad | David Lawrence Ramsey | 2009-11-16 23:28:48 -0600

Add an attempt at a ballistomycete description.

--------------------------------------------------------------------------------
5eaa6a0e3b | Adam Borowski | 2009-11-17 00:20:45 +0100

Fix the "depend" target not being always available.

--------------------------------------------------------------------------------
af5c601305 | Robert Vollmert | 2009-11-16 22:52:01 +0100

Expose invisible monsters in opaque clouds.
Implements FR 2898414.

--------------------------------------------------------------------------------
5c93440b00 | Robert Vollmert | 2009-11-16 22:33:46 +0100

Fix uninitialized warning.

--------------------------------------------------------------------------------
b4544535b4 | Robert Vollmert | 2009-11-16 21:51:49 +0100

Move tutorial state out of Options.

--------------------------------------------------------------------------------
5e4363aeaf | Robert Vollmert | 2009-11-16 21:30:46 +0100

Fix error in show coordinate calculation in tutorial.
This was causing the wrong features to be displayed. Now
uses grid2show instead of magic numbers.

--------------------------------------------------------------------------------
44e7c9eb4c | Robert Vollmert | 2009-11-16 21:22:10 +0100

Move running short-circuit earlier in viewwindow (tiles).
Tiles main viewwindow loop now doesn't have side-effects either.

Also unify the short-circuit checks: Console version also skips
redrawing when resting.

--------------------------------------------------------------------------------
4d1aa77622 | Robert Vollmert | 2009-11-16 21:19:54 +0100

Disable tutorial waking monsters.
Tutorial shouldn't have side-effects; also, the "may stab" brand
can still be explained later.

In console debug + tutorial, this was causing an assertion. Briefly:

Handle_seen_interrupt issues a monster "newly seen" interrupt, which
calls tutorial_first_monster, which in turn alerts the monster, which
causes it to shout, which calls learned_something_new(MONSTER_SHOUT),
which prints a message, which issues a message interrupt, which
issues another message, which calls flush_comes_into_view, which
interrupts with the same monster again, but now "just seen", which
causes an assertion.

--------------------------------------------------------------------------------
2c9b3ce286 | Robert Vollmert | 2009-11-16 20:32:25 +0100

Simplify out-of-range darkening.
Also fixes the range_view_annotator destructor
clobbering option "darken_beyond_range".

Options.target_range is now really an option, and called
Options.darken_beyond_range. Current darkening range is
now stored in crawl_state.darken_range.

I can't reproduce SIGHUP retaining darkened range
(BR 2151183) (why would it be saved?), so
range_view_annotator is not a crawl_exit_hook anymore.

crawl_exit_hook is not used anymore, but still present.

--------------------------------------------------------------------------------
5059f54824 | Robert Vollmert | 2009-11-16 18:23:00 +0100

Make some viewwindow show update requirements explicit, remove others.

--------------------------------------------------------------------------------
ff283eb9d0 | Robert Vollmert | 2009-11-16 17:36:34 +0100

Remove viewwindow call from travel().

--------------------------------------------------------------------------------
08e51db0d5 | Robert Vollmert | 2009-11-16 17:34:05 +0100

Remove calls to viewwindow from tutorial.

--------------------------------------------------------------------------------
71adb1db29 | Robert Vollmert | 2009-11-16 17:29:52 +0100

Wrap view flashing in flash_view.
This also removes env.show updates when flashing.

--------------------------------------------------------------------------------
6acd640e5a | Robert Vollmert | 2009-11-16 17:11:30 +0100

Remove redundant env.tile_bk_{fg,bg} update from draw_player.

--------------------------------------------------------------------------------
4bcef28b4a | Robert Vollmert | 2009-11-16 17:01:43 +0100

Make show updates conditional in viewwindow.

--------------------------------------------------------------------------------
0c7ce1921d | Robert Vollmert | 2009-11-16 16:52:08 +0100

Move some pathfinding code from mon-behv.cc to mon-movetarget.cc.

--------------------------------------------------------------------------------
540b53d5a8 | Robert Vollmert | 2009-11-16 15:51:29 +0100

Unindirect an include.

--------------------------------------------------------------------------------
0f68e18e64 | Robert Vollmert | 2009-11-16 15:49:44 +0100

Split monster_pathfind out into mon-pathfind.cc.

--------------------------------------------------------------------------------
3dc8e63fb4 | Robert Vollmert | 2009-11-16 15:27:23 +0100

Two more arenas showing stupid monster pathing.
arena_glasswall has a glass wall through the arena with gaps
at the ends. arena_wall has a wall with a window in the middle
and gaps at the end. arean_doorwall has doors in the gaps.

--------------------------------------------------------------------------------
a7fb7c5402 | Adam Borowski | 2009-11-16 15:10:59 +0100

Give hunters +1 ammo, to boost them vs AM. This does include large rocks, which 
may be questionable.

--------------------------------------------------------------------------------
e660ba2e75 | Adam Borowski | 2009-11-16 15:10:59 +0100

A few typos.

--------------------------------------------------------------------------------
dd8e93594f | Robert Vollmert | 2009-11-16 15:03:18 +0100

Add arena glassdoors.
This shows monsters not doing a very good jobs of pathing through
closed doors. Just a quick hack on glassbaffles, could stand to
be improved.

--------------------------------------------------------------------------------
b8bdf26a61 | Robert Vollmert | 2009-11-16 14:11:32 +0100

Fix ray_def::on_corner not getting initialized in los.cc:fallback_ray.
This was eventually causing not _valid() asserts in the smoky arena
(BR 2898267).

--------------------------------------------------------------------------------
c114b6995b | Jude Brown | 2009-11-16 21:26:59 +1000

Make Pikel's slaves actually slaves (new monster).
Identical stats to a normal human, but start with an animal skin and a
different description. They should probably spawn with a weapon too.

--------------------------------------------------------------------------------
94efa11e16 | Robert Vollmert | 2009-11-16 12:19:59 +0100

Fix information leakage in detect creatures.
Also fix tiles giving more information than console version.

There's now mons_detected_base, which assigns a base monster
type to every monster type based on the default displayed
glyph. It just takes the first entry for a given glyph
based on the mon-data.h order, so this may need tweaking
in some cases.

--------------------------------------------------------------------------------
975e3a8852 | Robert Vollmert | 2009-11-16 11:33:11 +0100

Give Lom Lobon blink range and blink away.

--------------------------------------------------------------------------------
e69b18a5d7 | Robert Vollmert | 2009-11-16 11:12:51 +0100

Remove obsolete TAG_MINOR_PATHFIND comment.

--------------------------------------------------------------------------------
46fc27b8e1 | Robert Vollmert | 2009-11-16 11:10:52 +0100

Fix out-of-range colouring logic.
This fixes items out of view not being coloured anymore.

--------------------------------------------------------------------------------
67c7f20af3 | Robert Vollmert | 2009-11-16 11:10:52 +0100

Remove map_cell::colour.

--------------------------------------------------------------------------------
f30792570c | Robert Vollmert | 2009-11-16 11:10:52 +0100

Remove 'set_map_knowledge_glyph'.

--------------------------------------------------------------------------------
942e576a38 | Robert Vollmert | 2009-11-16 11:10:51 +0100

Use object colour instead of map_cell colour in colour_code_map.

--------------------------------------------------------------------------------
fe79e985ac | Robert Vollmert | 2009-11-16 11:10:51 +0100

Remove unused set_map_knowledge_col.

--------------------------------------------------------------------------------
ac57710a1b | Robert Vollmert | 2009-11-16 10:35:20 +0100

Possible fix for monsters in starting LOS.

--------------------------------------------------------------------------------
65a1613c83 | Matthew Cline | 2009-11-16 00:06:30 -0800

Don't auto-exclude clouds in arena mode.
During arena mode, the hazardous clouds made by some monsters were being
auto-excluded as if they had ben generated via a fog machine.

--------------------------------------------------------------------------------
35356f4069 | Matthew Cline | 2009-11-15 23:27:18 -0800

Fix player LOS when examining arena.

--------------------------------------------------------------------------------
950d0852c9 | Matthew Cline | 2009-11-15 23:02:06 -0800

_guess_invis_foe_pos(): fix radius_iterator
Use the radius_iterator constructor whihc doesn't depend upon the
player's LOS.

--------------------------------------------------------------------------------
5d53fe4d76 | Stefan O'Rear | 2009-11-15 22:55:29 -0800

Remove speed from polearms, long blades, and maces (dpeg)

--------------------------------------------------------------------------------
69baeb7c93 | Jude Brown | 2009-11-16 16:20:25 +1000

Make Pikel's band a static four humans.
This counters the issue of him giving enough EXP for four humans plus
himself on death, but the possibility of as few as only one human
spawning.

--------------------------------------------------------------------------------
2bb04dce85 | David Lawrence Ramsey | 2009-11-15 23:06:16 -0600

Simplify the description of Kiku's liking kills of holy beings.

--------------------------------------------------------------------------------
ceebd0a82d | David Lawrence Ramsey | 2009-11-15 22:58:27 -0600

Simplify the description of Kiku's liking kills of living beings.

--------------------------------------------------------------------------------
d891367d9e | David Lawrence Ramsey | 2009-11-15 22:57:28 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
b22ba0f51d | David Lawrence Ramsey | 2009-11-15 22:57:27 -0600

Rename a variable for clarity.

--------------------------------------------------------------------------------
3aad50a2ca | David Lawrence Ramsey | 2009-11-15 22:57:27 -0600

Simplify the message when Kiku forces necromancy miscasts.

--------------------------------------------------------------------------------
6049a2a746 | David Lawrence Ramsey | 2009-11-15 22:57:27 -0600

Add spacing fixes.

--------------------------------------------------------------------------------
c368df0474 | David Lawrence Ramsey | 2009-11-15 22:57:27 -0600

Simplify the description of Kiku's accepting kills of demons.

--------------------------------------------------------------------------------
809ee96dad | Charles Otto | 2009-11-15 23:47:00 -0500

Delay adjustments for ring of fire
Update ring of fire's duration, also fix one use of DUR_REPEL I missed
previously.

--------------------------------------------------------------------------------
a647fb9485 | Charles Otto | 2009-11-15 23:46:59 -0500

Delay adjustment for death's door
Also update 1 use of DUR_PARALYSIS I missed previously.

--------------------------------------------------------------------------------
e18e5ec63e | Charles Otto | 2009-11-15 23:46:57 -0500

Adjust durations for divine vigour and divine stamina

--------------------------------------------------------------------------------
af7a73027b | Charles Otto | 2009-11-15 23:46:56 -0500

Make per turn hunger proportional to time_taken
This is somewhat sloppy numerically since the per turn hunger values
are rather small and scaling them can easily take the value to zero.
I'm assuming using div_rand_round is good enough.

Also doubling the hunger increase from haste to keep parity now that
hasted turns cause half the hunger of unhasted turns.

--------------------------------------------------------------------------------
59fc719763 | Charles Otto | 2009-11-15 23:46:55 -0500

Make MP and HP regen proportional to time_taken

--------------------------------------------------------------------------------
e2e53f8672 | Charles Otto | 2009-11-15 23:46:54 -0500

Delay adjustment for sickness
Store total time to recovery instead of turns in you.disease, change
you.disease to an integer, update tags and bump TAG_MINOR_VERSION
accordingly.

--------------------------------------------------------------------------------
ec62dd87b6 | Charles Otto | 2009-11-15 23:46:53 -0500

Delay changes for corona, berserk, lev, and cfly

--------------------------------------------------------------------------------
f77c84bb4c | Charles Otto | 2009-11-15 23:46:51 -0500

Delay adjustment for might, brilliance and agility

--------------------------------------------------------------------------------
13d70d82c4 | Charles Otto | 2009-11-15 23:46:50 -0500

Adjust slow and haste durations
Attempt to keep the number of slowed/hasted turns a player gets
constant by doubling/halving the total amount of delay needed for the
effects to wear off.

Also adjust durations for berserk.

--------------------------------------------------------------------------------
b0b6e9bc52 | Charles Otto | 2009-11-15 23:46:49 -0500

Update delay for mesmerisation, slowing, and haste
Also fix a couple compile issues and change over one last case for
paralysis

--------------------------------------------------------------------------------
67c7f8f9db | Charles Otto | 2009-11-15 23:46:48 -0500

Update delay for exhaustion, confusing touch, and sure blade

--------------------------------------------------------------------------------
f3181091e8 | Charles Otto | 2009-11-15 23:46:46 -0500

Convert several more durations
Change over durations for magic shield (this is from the helm card),
TSO's divine shield, paralysis, and petrification.

--------------------------------------------------------------------------------
0da3322c57 | Charles Otto | 2009-11-15 23:46:45 -0500

On second thought abstract increasing/setting durations a little.
Add (and use) player methods for setting/increasing durations.

--------------------------------------------------------------------------------
01e5123d49 | Charles Otto | 2009-11-15 23:46:44 -0500

Use correct symbol in it_use2 (oops)

--------------------------------------------------------------------------------
753f2ca4d4 | Charles Otto | 2009-11-15 23:46:41 -0500

Delay adjustment for lowered MR and jivya's slimify

--------------------------------------------------------------------------------
bdd962a781 | Charles Otto | 2009-11-15 23:46:39 -0500

Delay adjustment for confusion

--------------------------------------------------------------------------------
41c2fda9ff | Charles Otto | 2009-11-15 23:46:38 -0500

Delay adjustment for DUR_SLAYING

--------------------------------------------------------------------------------
096aefc399 | Charles Otto | 2009-11-15 23:46:37 -0500

Delay adjustments for invisibility and the shadow card

--------------------------------------------------------------------------------
91d651ec93 | Charles Otto | 2009-11-15 23:46:36 -0500

Delay adjustments for the sage, dowsing, and bargain cards

--------------------------------------------------------------------------------
6ab56c7129 | Charles Otto | 2009-11-15 23:46:34 -0500

Delay adjustment for death channel

--------------------------------------------------------------------------------
b83fbd2150 | Charles Otto | 2009-11-15 23:46:33 -0500

Delay adjustment for cteleport from the portal card

--------------------------------------------------------------------------------
b7146954ad | Charles Otto | 2009-11-15 23:46:32 -0500

Make teleportation delay based on total delay not turns

--------------------------------------------------------------------------------
2fdb9bf315 | Charles Otto | 2009-11-15 23:46:31 -0500

Convert some sources of temporary insulation to delays
Specifically potions of resistance and the helm card.

--------------------------------------------------------------------------------
b2e9640e07 | Charles Otto | 2009-11-15 23:46:30 -0500

Update phaee shift, condensation shield, stoneskin and see invis
Make their durations count total delay not turns.

--------------------------------------------------------------------------------
56ccc8544b | Charles Otto | 2009-11-15 23:46:29 -0500

Modify breath weapon recovery to be delay based.

--------------------------------------------------------------------------------
3a9d60e749 | Charles Otto | 2009-11-15 23:46:28 -0500

Moidfy DUR_TRANSFORMATION to be delay based.

--------------------------------------------------------------------------------
bd50c076d3 | Charles Otto | 2009-11-15 23:46:26 -0500

Modify temporary brand spells to be delay based

--------------------------------------------------------------------------------
b9151ca4e5 | Charles Otto | 2009-11-15 23:46:25 -0500

Modify silence to use delay not turn count

--------------------------------------------------------------------------------
4dc2c63095 | Charles Otto | 2009-11-15 23:46:24 -0500

Make _increase_durations set values proportional to delay
_increase_durations is used by ozocubus armour, stonemail, rmissile
dmissile, regen, swiftness, fly, insluation, rpoison, control teleport,
ring of flames, confusing touch, and sure blade.

I modified it to add numbers proportional to normal movement delay
instead of using the number of turns an enchantment should last
directly.

--------------------------------------------------------------------------------
2cc88f46f5 | Charles Otto | 2009-11-15 23:46:23 -0500

Modify DUR_LIQUID_FLAMES to count delay instead of turns
Decrease (and increase) sticky flames duration by the players delay
instead of using perceived turns. This is a behavioral change,
previously sticky flame did damage proportional to delay but the
counter was only decreased once per perceived turn. Compared to the
old behavior slow players take less damage and fast players take more
damage over the course of the sticky flame.

--------------------------------------------------------------------------------
08a05ceabd | Charles Otto | 2009-11-15 23:46:22 -0500

Change DUR_SLEEP and DUR_BUILDING_RAGE durations
Make DUR_SLEEP and DUR_BULIDING_RAGE durations proportional to baseline
delay (well it hardly matters for DUR_BUILDING_RAGE).

--------------------------------------------------------------------------------
69950a6dbd | Charles Otto | 2009-11-15 23:46:20 -0500

Changes to _decrement_a_duration
Make _decrement_a_duration accept a delay as a parameter, make all
calls to decrement_a_duration give it a delay. Adjust the thresholds in
get_expiration_threshold to be proportional to baseline delay.

--------------------------------------------------------------------------------
2a1149664a | Charles Otto | 2009-11-15 23:46:19 -0500

Make icemail recovery proportional to delay
Subtract you.time_taken from DUR_ICEMAIL_DEPLETED instead of
subtracting 1 each player turn. Adjust the corresponding time constant.

--------------------------------------------------------------------------------
1328286a0d | Charles Otto | 2009-11-15 23:46:17 -0500

Make the gourmand effect proportional to delay not perceived turns
Add time_taken to DUR_GOURMAND instead of adding 1 each time
decrement_duration is called, along with that adjust the baseline and
max values used in gourmand calculations.

--------------------------------------------------------------------------------
3edb0b71f5 | Matthew Cline | 2009-11-15 20:43:40 -0800

Message for unseen eyes starting at you
If an eye you can't stares at you, you get the message "You feel you are
being watched by something" before the effect happens.

--------------------------------------------------------------------------------
1b490890d2 | Matthew Cline | 2009-11-15 20:30:38 -0800

Bug #2896412: Breath broken after polymorph
If a wizard or priest is polymorphed into a monster without hands, then
when it casts a spell preserved across the polymorph (rather than any
innate ability or spell) then to avoid getting weird messages (like
"Harold breaths UNSEEN BEAM at you") the first lookup key for
dat/database/monspell.txt is "polymorphed wizard" or
"polymorphed priest."

NOTE: There should probably be a greater variety of messages depending
on shpae, like "quadruped wizard" and "blob wizard".

--------------------------------------------------------------------------------
9f3f309821 | Matthew Cline | 2009-11-15 20:30:38 -0800

Group spell msgs for uniques together

--------------------------------------------------------------------------------
df4701911a | Matthew Cline | 2009-11-15 20:30:38 -0800

arena_smoke: Increase cloud size again
That should get rid of the gaps sometimes opening up in the center.

--------------------------------------------------------------------------------
9282c221f9 | Alex MacDonald | 2009-11-16 05:30:04 +0100

Kikubaaqdgha finetuning.
Kiku corpse invocation now costs less piety and hunger.
 Kiku accepts all forms of killing, now including demons.
 Kiku wrath buffed severely; player can expect miasma, titan zombies,
 and necromantic miscasts.  Casting necromantic spells will also
 incur miscast effects (but not cause the spell to fail).
 Kiku '?/G' flavor text updated.

Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
e3afab40e6 | Alex MacDonald | 2009-11-16 05:30:04 +0100

Worshippers of Xom will find Crazy Yiuf to be rather enlightening!
Signed-off-by: David Ploog <dploog@users.sourceforge.net>

--------------------------------------------------------------------------------
8c9924e60f | Matthew Cline | 2009-11-15 17:28:40 -0800

Fixed monsters class unitialized memory propblem
The monsters constructor wasn't initializing the base_monster member,
which led to a Valgrind unitialized memory warning in
monsters::upgrade_type()

--------------------------------------------------------------------------------
2b54fbf65f | Matthew Cline | 2009-11-15 16:53:46 -0800

show.cc: fix compile error.

--------------------------------------------------------------------------------
dbc5b8b9f0 | David Lawrence Ramsey | 2009-11-15 17:35:25 -0600

Fix compilation.

--------------------------------------------------------------------------------
b89087d8c9 | David Lawrence Ramsey | 2009-11-15 17:29:35 -0600

Mention the crosstraining of Staves and M&F in the manual.

--------------------------------------------------------------------------------
b2f52278a5 | Adam Borowski | 2009-11-16 00:19:35 +0100

Typo fix.

--------------------------------------------------------------------------------
9545c801be | Brendan Hickey | 2009-11-16 00:17:05 +0100

Used cannonical ego counting.

--------------------------------------------------------------------------------
e99302324e | Brendan Hickey | 2009-11-16 00:15:51 +0100

Chei Fluff: * Ruininous Time -> Slouch * Better player titles Mechanics: * 
Ponderous items stack * The ponderous brand can be placed on all armour.

--------------------------------------------------------------------------------
f364926f27 | Eino Keskitalo | 2009-11-16 00:29:34 +0200

Remove obsolete comment. (dpeg)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
85814c0cab | Eino Keskitalo | 2009-11-16 00:24:22 +0200

Two new Ice Cave maps.
These are "ice statue gardens" - the player has to face some to get the loot. 
In the teleporter version, there's no way to back out except out of the vault. 
Which is pretty good.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
491010fa1c | Robert Vollmert | 2009-11-15 23:11:42 +0100

Merge get_symbol and get_show_glyph.

--------------------------------------------------------------------------------
f5b0269efd | Robert Vollmert | 2009-11-15 23:11:42 +0100

Replace get_show_symbol by get_show_glyph.

--------------------------------------------------------------------------------
fe2ab0f017 | Robert Vollmert | 2009-11-15 23:11:42 +0100

Add get_feat_symbol.

--------------------------------------------------------------------------------
a189aa47eb | Robert Vollmert | 2009-11-15 23:11:42 +0100

Remove unused call to get_show_symbol.

--------------------------------------------------------------------------------
4973016b50 | Robert Vollmert | 2009-11-15 23:11:42 +0100

Add get_item_symbol to showsymb.

--------------------------------------------------------------------------------
c99489055f | Robert Vollmert | 2009-11-15 23:11:41 +0100

Remove one version of get_screen_glyph.

--------------------------------------------------------------------------------
d13f2354db | Robert Vollmert | 2009-11-15 23:11:41 +0100

Convert get_mons_glyph to return a glyph struct.

--------------------------------------------------------------------------------
ddf80f7077 | Robert Vollmert | 2009-11-15 23:11:41 +0100

Convert get_item_glyph to return a glyph struct.
Also don't use get_symbol.

--------------------------------------------------------------------------------
c6c0a0f71e | Robert Vollmert | 2009-11-15 23:11:41 +0100

Remove grid_character_at.

--------------------------------------------------------------------------------
d1f82e784c | Robert Vollmert | 2009-11-15 23:11:41 +0100

Move feature colouring into show_def from get_symbol.

--------------------------------------------------------------------------------
3d1dc136ee | Robert Vollmert | 2009-11-15 23:11:40 +0100

Actually use monster_info in full_describe_view.

--------------------------------------------------------------------------------
0110531a5e | Adam Borowski | 2009-11-15 21:51:35 +0100

Cross-train Staves and M&F.

--------------------------------------------------------------------------------
2e53646709 | Eino Keskitalo | 2009-11-15 22:35:02 +0200

Re-order altar.des. More overflow altars welcome!
Move overflow altars to their own section and order by god. Added headings for 
the gods with no overflow altars. Add some!

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4d72130f86 | Robert Vollmert | 2009-11-15 19:42:16 +0100

Rename acr.cc to main.cc.

--------------------------------------------------------------------------------
842b2c91c8 | Robert Vollmert | 2009-11-15 19:33:39 +0100

Rename fixary.h and fixvec.h.

--------------------------------------------------------------------------------
222de20491 | David Lawrence Ramsey | 2009-11-15 12:30:02 -0600

After some more thought, make Fulsome Distillation non-chaotic again.
Even though it can be used to create chaotic potions, it can't directly
cause chaotic effects, as e.g. summoning chaotic monsters or creating
miasma clouds can.

--------------------------------------------------------------------------------
dcace2f033 | David Lawrence Ramsey | 2009-11-15 12:27:03 -0600

Revert "Mark the Banishment spell as chaotic, since the Abyss is chaotic."
This reverts commit 46cf860a1acc4449a51142cb0aa1c15261a53c4d.

(After some thought, the act of banishment is not necessarily chaotic,
as, presumably, Zin was part of the divine coalition that had Lugonu
banished.)

--------------------------------------------------------------------------------
72fcf705d9 | David Lawrence Ramsey | 2009-11-15 12:16:54 -0600

Remove now-inaccurate comment.

--------------------------------------------------------------------------------
46cf860a1a | David Lawrence Ramsey | 2009-11-15 12:15:26 -0600

Mark the Banishment spell as chaotic, since the Abyss is chaotic.

--------------------------------------------------------------------------------
26c3b08c11 | Charles Otto | 2009-11-15 12:56:28 -0500

Fix spore production always getting re-added (oops)
Fix a logical error preventing spore production from ever getting
removed from a ballistomycete.

--------------------------------------------------------------------------------
df14ad5de0 | David Lawrence Ramsey | 2009-11-15 11:12:36 -0600

Fix compilation.

--------------------------------------------------------------------------------
0ce1a4494c | David Lawrence Ramsey | 2009-11-15 11:01:59 -0600

Since sling bullets can be poisoned now, let them be generated that way.

--------------------------------------------------------------------------------
a25350471f | David Lawrence Ramsey | 2009-11-15 11:01:59 -0600

Change the message for reaping branding, so that checking for the player's 
ability to smell isn't required.

--------------------------------------------------------------------------------
9894f97f32 | David Lawrence Ramsey | 2009-11-15 11:01:58 -0600

Move the brand_ammo() failure messages to the spellcasting routine.

--------------------------------------------------------------------------------
04d5d1b2d3 | David Lawrence Ramsey | 2009-11-15 11:01:58 -0600

Remove canned messages in brand_ammo() when it fails.

--------------------------------------------------------------------------------
022f59dd19 | David Lawrence Ramsey | 2009-11-15 11:01:58 -0600

Make brand_ammo() return bool, indicating whether it succeeded.

--------------------------------------------------------------------------------
a4a5504e50 | David Lawrence Ramsey | 2009-11-15 11:01:58 -0600

Move brand_ammo() to spells2.{cc,h}, right after brand_weapon().

--------------------------------------------------------------------------------
e5b09096c9 | David Lawrence Ramsey | 2009-11-15 11:01:57 -0600

Rename cast_brand_ammo() to brand_ammo(), for consistency.

--------------------------------------------------------------------------------
9886581926 | Adam Borowski | 2009-11-15 17:35:59 +0100

Change descriptions of *** Ammunition spells to not mention "missile weapons" 
but "ammunition". The former would mean these spells work on bows themselves.

--------------------------------------------------------------------------------
65705e1099 | Adam Borowski | 2009-11-15 16:02:06 +0100

Fix a few whitespace errors.

--------------------------------------------------------------------------------
6b9d38645f | Adam Borowski | 2009-11-15 15:59:37 +0100

Capitalize the M in "Am" (Arcane Marksman).

--------------------------------------------------------------------------------
0b6db30715 | johnny shelley | 2009-11-15 15:39:37 +0100

Returning ammo + launchers works now The relative skill is checked depending on 
what launcher was used. Yes, i know returning needles is silly, but someone 
will probably try it

--------------------------------------------------------------------------------
a95b106ef7 | Adam Borowski | 2009-11-15 15:13:15 +0100

Fix CRLF line ends in the config files.

--------------------------------------------------------------------------------
d391100903 | Jude Brown | 2009-11-15 23:36:38 +1000

Give ancient_champions_mu vault monster descriptions.
Also tweak "dies"->"destroyed": undead monsters don't really die, as
they're already dead. Instead, use the relatively standard "destroyed".

--------------------------------------------------------------------------------
b9f8889950 | Jude Brown | 2009-11-15 23:01:19 +1000

Update documentation of MonPropsMarker to include example usage.

--------------------------------------------------------------------------------
5c67cc6617 | johnny shelley | 2009-11-15 22:54:18 +1000

Book descriptions for new Arcane Marskman books.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
0510022aff | johnny shelley | 2009-11-15 22:54:17 +1000

Restore Warper class, Arcane Marksman tweaks.
Adds warper back and moves arcane marksman close to hunter in selection
screen. Changes spell level of exploding ammo to 5. Fixes abbreviation of
Am. Removes scroll of blink from AM starting equipment.

Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
fa1a2da73b | Matthew Cline | 2009-11-15 04:28:27 -0800

random_space_weighted() memory bug fixed
Bug was fixed in random-weight.h, reverting work-around.

--------------------------------------------------------------------------------
287d2535c7 | Matthew Cline | 2009-11-15 04:23:48 -0800

Was being passed choices via value, not reference
Since the vector random_choose_weighted() used was copied, the pointer
it returned became invalkid as soon as the function returned an the
copied vector went out of scope.

--------------------------------------------------------------------------------
3be53369f5 | Matthew Cline | 2009-11-15 04:05:31 -0800

luaterp (&^T): load files via terp_file option
You can now specify Lua files to be loaded for use in the wizard Lua
interpreter via "terp_file = file_path" in your init file.  These
files will be run in the context of dlua, as opposed to the clua
context of files included with "lua_file = file_path".

--------------------------------------------------------------------------------
df940b3d40 | Matthew Cline | 2009-11-15 03:14:10 -0800

Make test-spawners work properly again.

--------------------------------------------------------------------------------
74ff4a4b88 | Matthew Cline | 2009-11-15 03:04:27 -0800

arena_smoke: increase smoke cloud size

--------------------------------------------------------------------------------
e430f98960 | Matthew Cline | 2009-11-15 02:56:22 -0800

mon-stuff.cc: hogs should keep their attitude
The hogs that come with Kirke should keep their original attitude when
they turn human.

--------------------------------------------------------------------------------
45fa19fe2c | Matthew Cline | 2009-11-15 02:43:47 -0800

handle_behaviour(): fix infinite loop.

--------------------------------------------------------------------------------
dd7da972e6 | Jude Brown | 2009-11-15 20:38:58 +1000

Fix missing include (Napkin).

--------------------------------------------------------------------------------
9857ce0a4e | Jude Brown | 2009-11-15 20:35:50 +1000

Utilise monster->props["speech_key"] for Dowan and Duvessa.
Their speech is now different when one of them dies.

--------------------------------------------------------------------------------
18b78b0ccc | Jude Brown | 2009-11-15 20:35:49 +1000

Allow monsters to specify a speech prefix.
Setting monster->props["speech_key"] to a string value will add that
string to the monster speech lookup prefixes.

--------------------------------------------------------------------------------
8aec1a6bc3 | Jude Brown | 2009-11-15 20:35:49 +1000

Duvessa and Dowan death effect changes (dpeg).
As suggested by dpeg, they will now only climb the stairs as a pair, or
if one of them is already dead. This is slightly scummable, but they
still get a free turn against you.

--------------------------------------------------------------------------------
047483716a | Jude Brown | 2009-11-15 20:35:49 +1000

Don't penalise Xom amusement for Minotaurs leaving labyrinths.
As they can no longer map the labyrinth, this penalty doesn't make that
much sense now.

--------------------------------------------------------------------------------
2c87e67ff8 | Matthew Cline | 2009-11-15 02:14:34 -0800

arena_smoke: smoke-filled arena layout

--------------------------------------------------------------------------------
d9a1917bf8 | Matthew Cline | 2009-11-15 02:13:38 -0800

Make Lua markers work in the arena.

--------------------------------------------------------------------------------
d650ba38f0 | Matthew Cline | 2009-11-15 02:01:05 -0800

teleport.cc: quite non-debug unused warning
Get rid of "unused variable" warnings for non-debug builds.

--------------------------------------------------------------------------------
370dc08f28 | Matthew Cline | 2009-11-15 01:46:46 -0800

Travel exclude speedup
Speed up is_excluded() by making the class exclude_set, which caches the
set of excluded points, calculating the set only when exclusions are
added or removed (or when an old level is loaded).

NOTE: This recomputes the set of excluded points once upon entering
level-map mode and once upon exiting it.  If this takes to long on slow
machines, this can be improved.

--------------------------------------------------------------------------------
e4ea11efbb | Stefan O'Rear | 2009-11-15 01:29:29 -0800

Add Johnny Shelley (_cryo) to CREDITS for AM work

--------------------------------------------------------------------------------
3e4c55a7f2 | Matthew Cline | 2009-11-15 01:20:33 -0800

handle_behaviour(): guess pos of invis foes
If a monster didn't know the position of an unseen but nearby foe, then
casting a spell against the foe would cause an assert.  So now the
monster tries to guess the position of the foe: a random square within
radius 3 of the foe, or radius 2 if the monster can sense invisible.
This algorithm no doubt needs improvement.

--------------------------------------------------------------------------------
421babd740 | Matthew Cline | 2009-11-15 01:20:33 -0800

Fix some arena asserts.

--------------------------------------------------------------------------------
497913340c | Matthew Cline | 2009-11-15 01:20:33 -0800

mon-stuff.cc: de-porkalator bug fixes
* Define a new monster for hogs that came with Kirke turning to
  humans.

* Keep reverted monsters at same location.

--------------------------------------------------------------------------------
6cda5fe31d | Matthew Cline | 2009-11-15 01:20:33 -0800

teleport.cc: hack to deal with memory bug
random_space_weighted() sometimes gets this weird memory bug which
causes the return value to be random (and usually out-of-bounds).
"Fixed" by testing the result against in_bounds()

--------------------------------------------------------------------------------
a04238cb7b | Matthew Cline | 2009-11-15 01:20:33 -0800

debug_dump_levgen(): Don't dump arena info

--------------------------------------------------------------------------------
7390a461b5 | Stefan O'Rear | 2009-11-15 01:18:13 -0800

Use Master Archer only for 27 Bows

--------------------------------------------------------------------------------
8c8da93717 | Stefan O'Rear | 2009-11-15 01:05:16 -0800

Allow Corona to work in ranged combat
This also means that centaurs will have a much easier time shooting
at paladins.  Could become a problem.

--------------------------------------------------------------------------------
872ec1e196 | Stefan O'Rear | 2009-11-15 00:52:18 -0800

Rarity records for new books

--------------------------------------------------------------------------------
9454f08a3d | Stefan O'Rear | 2009-11-15 00:49:34 -0800

Merge branch 'master' of 
git://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
b3db32a102 | Jude Brown | 2009-11-15 18:20:00 +1000

set_feature_quote, complement to set_feature_desc_long/short.

--------------------------------------------------------------------------------
31af7d6cff | Jude Brown | 2009-11-15 18:19:28 +1000

Fix "Triggerable already activated" errors. (zelgadis, others)

--------------------------------------------------------------------------------
05010f1d26 | Stefan O'Rear | 2009-11-15 00:04:52 -0800

Merge Johnny Shelley's arcane marksman patch

--------------------------------------------------------------------------------
dd56050f2d | johnny shelley | 2009-11-14 23:22:03 -0800

Warper Overhaul - Renamed to Arcane Marksman
Missile Changes
--
electricity missiles are now an option - they are always destroyed
reaping / dispersal ammo is now always destroyed as it can be created by players
poison ammo can again affect rocks / bullets etc - still no nets. Apparently
this is a contact poison, but mainly it's to close the gap between sling users
and archers.

SKILLS
--
Ranged weapon 3
Dodging 2
Spellcasting 2
Enchantments OR Translocations 3

EQUIPMENT
--
Robe
Ration
Scroll of blink
Some ranged weapon options as Hunter
No melee weapon!
Either book of elemental missiles or warped missiles

The book of Elemental Missiles

 Spells                             Type                      Level
 a - Corona                       Enchantment                   1
 b - Swiftness                    Enchantment/Air               2
 c - Repel Missiles               Enchantment/Air               2
 d - Flame Ammunition             Enchantment/Fire              3
 e - Frost Ammunition             Enchantment/Ice               3
 f - Poison Ammunition            Enchantment/Poison            4

The book of Warped Missiles

 Spells                             Type                      Level
 a - Apportation                  Translocation                 1
 b - Portal Projectile            Translocation                 2
 c - Repel Missiles               Enchantment/Air               2
 d - Blink                        Translocation                 2
 e - Returning Ammunition         Enchantment/Translocation     3
 f - Warp Ammunition              Enchantment/Translocation     5

The book of Devastating Missiles

 Spells                             Type                      Level
 a - Poison Ammunition            Enchantment/Poison            4
 b - Warp Ammunition              Enchantment/Translocation     5
 c - Shocking Ammunition          Enchantment/Air               5
 d - Haste                        Enchantment                   6
 e - Deflect Missiles             Enchantment/Air               6
 f - Exploding Ammunition         Enchantment/Fire/Air          7
 g - Reaping Ammunition           Enchantment/Necromancy        7

Signed-off-by: Stefan O'Rear <stefanor@cox.net>

--------------------------------------------------------------------------------
177b2ec86c | Jude Brown | 2009-11-15 17:01:29 +1000

Fix string fetching from CrawlHashTable.

--------------------------------------------------------------------------------
5bba7e89fd | Jude Brown | 2009-11-15 16:00:24 +1000

Allow MonPropsMarker to set monster descriptions and quotes.

--------------------------------------------------------------------------------
098c6bcea1 | Jude Brown | 2009-11-15 14:56:24 +1000

Give Village Volcano open sea border fill.

--------------------------------------------------------------------------------
a300ba4c60 | Jude Brown | 2009-11-15 14:56:24 +1000

Give firewalk bazaar an entry point. (LordSloth)
Otherwise, there's a chance that it will be a disconnected stone room in
the middle of nowhere. This is bad for various reasons. I assume this
was unintentional.

--------------------------------------------------------------------------------
577cebe5f3 | Adam Borowski | 2009-11-15 04:06:00 +0100

Axe some broken and useless numeric values in comments.

--------------------------------------------------------------------------------
79c3d7c397 | Adam Borowski | 2009-11-15 04:06:00 +0100

Remove the Divinations school.

--------------------------------------------------------------------------------
15ce950565 | Charles Otto | 2009-11-14 19:40:20 -0500

Change the prompt for entering abyss/pan (dpeg)

--------------------------------------------------------------------------------
f6f3fb084e | Charles Otto | 2009-11-14 19:18:29 -0500

Add a prompt when entering pan/the abyss via a portal.

--------------------------------------------------------------------------------
c9f5e47a78 | Robert Vollmert | 2009-11-14 23:11:49 +0100

Untangle map memory and get_symbol.

--------------------------------------------------------------------------------
38819ab92f | Robert Vollmert | 2009-11-14 22:48:48 +0100

Remove unused show_symbol default argument.

--------------------------------------------------------------------------------
47fefb8315 | Robert Vollmert | 2009-11-14 22:43:24 +0100

Merge monster_grid into show_def.

--------------------------------------------------------------------------------
a90ac74e64 | Charles Otto | 2009-11-14 16:01:15 -0500

Decrease the ballistomycete spawn timer
Reduce the expected time to spore production to 100 (was 150).

--------------------------------------------------------------------------------
5e976748e0 | Adam Borowski | 2009-11-14 21:27:49 +0100

Don't say "sacrificing corpses" wrt Kiku's torment, giving back sounds bad.

--------------------------------------------------------------------------------
94f5f2f519 | Charles Otto | 2009-11-14 15:18:05 -0500

Fix an issue with noise generation in melee combat
Noise generated by attacking in melee range is handled by
melee_attack::handle_noise. handle_noise was using defender->pos() as
the point of origin for the noise, but defender->pos() is not reliable
in some situations, if a monster is killed its position is reset to
zero. I added a coord_def parameter to handle_noise to use as the point
of origin instead of trying to use defender->pos and made all calls to
handle_monster store the defender's position prior to damage being
applied.

Aside from creating noise in the wrong area calling noisy with a
position of (0, 0) can cause an assertion failure at mon-behv.cc,
line 1609 in some situations.

--------------------------------------------------------------------------------
94b9505063 | Vsevolod Kozlov | 2009-11-14 21:38:23 +0300

Make Kirke lightgreen.

--------------------------------------------------------------------------------
8f183a4cca | Adam Borowski | 2009-11-14 18:57:08 +0100

Revert removal of the speed brand, pending discussion.
Such grand changes should not be made out of the blue.  There was not a single
mention of it before, save a line in a long brainstorm FR.  It has a large
impact (badly hurting short blade users, making axes far more a non-brainer
over long blades/polearms, and so on).  We may decide this is the way to go,
but a discussion needs to be done first.

And, re-reverting it is a single command so no work is lost...

--------------------------------------------------------------------------------
983afd1a34 | Adam Borowski | 2009-11-14 18:25:33 +0100

Fix a bad assertion when throwing something with a non-weapon wielded.

--------------------------------------------------------------------------------
6aad7a2a18 | Robert Vollmert | 2009-11-14 17:26:43 +0100

Implement spell "blink close".
This allows a monster to blink close to its target.

--------------------------------------------------------------------------------
1cc856bac7 | Robert Vollmert | 2009-11-14 17:26:42 +0100

Add sanctuary option to random_space_weighted.

--------------------------------------------------------------------------------
39c107535e | Robert Vollmert | 2009-11-14 17:26:39 +0100

Rename 'blink * closer' to 'blink * close'.

--------------------------------------------------------------------------------
8e6f5ab8a4 | Robert Vollmert | 2009-11-14 17:05:45 +0100

Revert "Move Nessos shallower: now appears 11-16, rather than 14-16, 17-19."
Nessos now has "blink range", which is probably buff enough.

This reverts commit a1a2ba77be1cde5e0020e3a5c05ab1f46d10a5a2.

--------------------------------------------------------------------------------
5a6c759737 | David Lawrence Ramsey | 2009-11-14 10:04:47 -0600

Move general initialization of monster spells into its own function.

--------------------------------------------------------------------------------
2320627550 | Robert Vollmert | 2009-11-14 16:59:23 +0100

Give Nessos "blink range".

--------------------------------------------------------------------------------
782038ad8d | Robert Vollmert | 2009-11-14 16:59:22 +0100

Add "blink away" and "blink range" to spl-data.h.

--------------------------------------------------------------------------------
31abd56225 | Robert Vollmert | 2009-11-14 16:59:22 +0100

Add "blink away" and "blink ranged" to mon-cast.cc.

--------------------------------------------------------------------------------
56340c3e05 | Robert Vollmert | 2009-11-14 16:56:31 +0100

Implement blink_range and blink_away.
This is done by generalizing random_close_space to
random_space weighted.

Also tweak the weights a little. These might still need work.

--------------------------------------------------------------------------------
ead894c010 | Robert Vollmert | 2009-11-14 16:56:30 +0100

Use monster::blink_to in monster_blink.

--------------------------------------------------------------------------------
e3392e343f | Robert Vollmert | 2009-11-14 16:56:30 +0100

Document random_choose_weighted.

--------------------------------------------------------------------------------
3f6d4183b3 | David Lawrence Ramsey | 2009-11-14 09:31:59 -0600

Make good gods properly object to placed unholy monsters again.

--------------------------------------------------------------------------------
81af5ed131 | Robert Vollmert | 2009-11-14 14:35:33 +0100

Give Roxanne "blink other closer".
Roxanne is currently the only user of this spell.

--------------------------------------------------------------------------------
d8435ada14 | Robert Vollmert | 2009-11-14 14:35:33 +0100

Implement "blink other closer" as a monster spell.

--------------------------------------------------------------------------------
bddd83ea2d | Robert Vollmert | 2009-11-14 14:35:33 +0100

Generalise blink_closer to arbitrary victims.

--------------------------------------------------------------------------------
de8f8489a0 | Robert Vollmert | 2009-11-14 14:35:32 +0100

Add actor::blink_to for handling blink movement and messaging.

--------------------------------------------------------------------------------
32f2619586 | Robert Vollmert | 2009-11-14 14:35:32 +0100

Add "blink closer" enchantment beam flavour to beam.cc.

--------------------------------------------------------------------------------
5a685eaf18 | Robert Vollmert | 2009-11-14 14:35:32 +0100

Use switch statement in enchantment beam colouring.

--------------------------------------------------------------------------------
e473c289a9 | Robert Vollmert | 2009-11-14 14:35:32 +0100

Revert "Convert monster spell BLINK_OTHER to blink victim closer to caster."
This reverts commit 2100de921196354c2e4187646a9c2c8d29792fb0.

--------------------------------------------------------------------------------
d5ddd96f65 | Robert Vollmert | 2009-11-14 14:35:31 +0100

New enchantment beam flavour BEAM_BLINK_CLOSER.

--------------------------------------------------------------------------------
72963a0451 | Robert Vollmert | 2009-11-14 14:35:31 +0100

Add "blink away" and "blink range" as valid escape spells.

--------------------------------------------------------------------------------
21dd116608 | Robert Vollmert | 2009-11-14 14:35:31 +0100

Revert "Remove BLINK_OTHER as an escape spell."
This reverts commit 4cdebaedfe4b1d2d49b527ebe190dd6a7e03caf1.

--------------------------------------------------------------------------------
73321b0d68 | Robert Vollmert | 2009-11-14 14:35:31 +0100

Add new monster blink variants to spell_type.
SPELL_BLINK_OTHER_CLOSER: draw the target closer to caster.
SPELL_BLINK_AWAY: try to blink away from the player.
SPELL_BLINK_RANGE: try to keep target at distance but in view.
SPELL_BLINK_CLOSER: try to blink close to the target.

--------------------------------------------------------------------------------
dafed8ff16 | Adam Borowski | 2009-11-14 14:20:27 +0100

Remove #include <conio.h> from all over the place.  Convert COLORS to an enum.

--------------------------------------------------------------------------------
ba1b899ac1 | Vsevolod Kozlov | 2009-11-14 15:40:08 +0300

Remove duplicated #include from spl-util.cc.

--------------------------------------------------------------------------------
adde060772 | Matthew Cline | 2009-11-14 04:36:31 -0800

l_dgnit.cc: dgn.stash_items() function

--------------------------------------------------------------------------------
4cb4bea310 | Matthew Cline | 2009-11-14 04:35:48 -0800

stash: ST_ItemIterator class
Class for iterating over all the items in the stash tracker.

--------------------------------------------------------------------------------
704b61fede | Matthew Cline | 2009-11-14 03:50:17 -0800

Reset tag_minor_version to 0

--------------------------------------------------------------------------------
843ae0761b | Jude Brown | 2009-11-14 21:33:42 +1000

Bump TAG_MAJOR_VERSION (sorear).

--------------------------------------------------------------------------------
b3b37a17ba | Jude Brown | 2009-11-14 21:33:20 +1000

Oops, missed some Michael stuff.

--------------------------------------------------------------------------------
6eb956da22 | Jude Brown | 2009-11-14 21:13:52 +1000

Remove Michael. (dpeg, pointless)
With 30 kills to 5696 deaths, Michael just isn't unique enough.

--------------------------------------------------------------------------------
f009514cec | Robert Vollmert | 2009-11-14 12:04:40 +0100

Display explored depth in level overview (anonymous).
SF artefact 2897410.

--------------------------------------------------------------------------------
a69476ae7d | Robert Vollmert | 2009-11-14 12:04:39 +0100

Make find_deepest_explored public.

--------------------------------------------------------------------------------
9901d91693 | Robert Vollmert | 2009-11-14 12:04:39 +0100

Make formatted_scroller handle line-breaks more gracefully.
Now uses formatted_string::parse_multiple, providing an alternate
fix to bug [2864019] - assertion failure after pressing ctrl-O.

--------------------------------------------------------------------------------
aa71df8a07 | Robert Vollmert | 2009-11-14 12:04:39 +0100

Revert "Fix bug [2864019] - assertion failure after pressing ctrl-O"
This reverts commit 068459aa20c4a7c7abb759ca42a1caabf3e58750.

--------------------------------------------------------------------------------
65def119b7 | Eino Keskitalo | 2009-11-14 12:55:03 +0200

Clean up double !Lairs.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a1a2ba77be | Jude Brown | 2009-11-14 20:15:04 +1000

Move Nessos shallower: now appears 11-16, rather than 14-16, 17-19.

--------------------------------------------------------------------------------
cef50da82a | Jude Brown | 2009-11-14 19:37:39 +1000

Update branch depths per shorter Lair.
Slime is now Lair:5-8, Snake is now Lair:3-6, and Shoals/Swamp Lair:2-5.

--------------------------------------------------------------------------------
6dabd6cbfd | Jude Brown | 2009-11-14 19:31:13 +1000

Add in-game Lua interpreter to Wizard commands list (Zaba).

--------------------------------------------------------------------------------
7c73c7d7aa | Jude Brown | 2009-11-14 19:31:13 +1000

Quick how-to-exit message for wizard Lua interpreter. (rob, zelgadis)

--------------------------------------------------------------------------------
dbc4e4df08 | Jude Brown | 2009-11-14 19:31:11 +1000

Provide sanity checking for set_border_fill_type.
On second thoughts, while an endless milieu of Trog altars sounds nice,
limit it to walls, lava, water and trees.

--------------------------------------------------------------------------------
550af32eec | Jude Brown | 2009-11-14 19:31:11 +1000

Allow portal vaults to specify fill and border glyph.
Also move dungeon_feature_by_name into terrain.cc, as it does not make
sense it being in l_dgngrd.cc.

The Lua function "set_border_fill_type(feature)" will replace the
default DNGN_ROCK_WALL fill of a portal vault with the specified
feature. This could be abused, and should probably only be limited to
floor, water and sea, different types of walls, trees and lava; there
are no sanity checks for endless traps, statues, stairs, etc.

Finally, apply this to the island Trove, giving endless water effect.

--------------------------------------------------------------------------------
a988600392 | Jude Brown | 2009-11-14 19:31:11 +1000

Bounds check for non-confused player movement.
Currently, the only bounds check for player movement is while the
player was confused. This doesn't case issues at the minute, as the
only in-use out of bounds glyphs are impassable, so it hasn't been
encoutered as a bug yet.

--------------------------------------------------------------------------------
f37bed5062 | Jude Brown | 2009-11-14 19:31:10 +1000

Fix dry land in Treasure Island Trove.
Now that levitating monsters can be placed over water, do so.

--------------------------------------------------------------------------------
6bb806bdca | Vsevolod Kozlov | 2009-11-14 12:21:50 +0300

Move mtransit to mon-transit.

--------------------------------------------------------------------------------
54c2248f1d | Vsevolod Kozlov | 2009-11-14 12:05:20 +0300

Remove unused player_damage_type.

--------------------------------------------------------------------------------
fc47d3d34c | Vsevolod Kozlov | 2009-11-14 12:05:20 +0300

Remove unused player_damage_brand.

--------------------------------------------------------------------------------
e7c8daa764 | Vsevolod Kozlov | 2009-11-14 12:05:16 +0300

Move player_can_smell to player::can_smell.

--------------------------------------------------------------------------------
7938404979 | Steven Noonan | 2009-11-14 00:29:35 -0800

makefile: only do dependency generation on build of $(GAME)
This is _hardly_ an ideal solution. It would look a lot cleaner
than this if you could use a logical OR operator, but Makefile
syntax doesn't have such an operator for ifeq/ifneq.

But this will resolve the situation for the moment.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0243dd75b7 | Steven Noonan | 2009-11-14 00:29:35 -0800

makefile: use 'findstring' for target type checks
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
37516af4cd | Steven Noonan | 2009-11-14 00:29:35 -0800

makefile: remove obsolete reference to UNSUPPORTED_BUILD variable
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2b82f3b37f | Stefan O'Rear | 2009-11-13 23:59:24 -0800

Remove speed from all mundane weapons

--------------------------------------------------------------------------------
a98250a9c5 | Stefan O'Rear | 2009-11-13 23:48:57 -0800

Cut vorpal to 12.5% average (FR 2883704)

--------------------------------------------------------------------------------
61b0b54b65 | Matthew Cline | 2009-11-13 23:00:50 -0800

By default, don't stop explore for greedy pickup

--------------------------------------------------------------------------------
8a5051e746 | Matthew Cline | 2009-11-13 21:44:55 -0800

Move more monster description code to text file.

--------------------------------------------------------------------------------
b2d4890bce | Charles Otto | 2009-11-13 23:46:51 -0500

Allow auto-travel/explore to kill toadstools

--------------------------------------------------------------------------------
b0fe954dba | Matthew Cline | 2009-11-13 20:19:46 -0800

mon-place.cc: assert if summoner is dead...
... and mg.non_actor_summoner is empty.

--------------------------------------------------------------------------------
32aea1bdf1 | Matthew Cline | 2009-11-13 20:19:46 -0800

beam: new member source_name
New bolt class member source_name, which is automatically set if the
monster which created the beam kills itself.  Currently only used
when Fire Storm places fire vortexes, so that they'll have a monster
name for summon blaming.

--------------------------------------------------------------------------------
6fb017686e | Jude Brown | 2009-11-14 13:53:54 +1000

Clean up Pikel band code, name them "slaves", then "freed slaves".
As per kilobyte's suggestion on c-r-d, Pikel's humans are named "slave"
until they are released from bondage on Pikel's death, in which case
they're called "freed slave".

Also clean up the Pikel band neutralisation code: instead of assuming
that all human monsters that are band members are Pikel's band, store a
value in monsters.props that signifies them as such.

--------------------------------------------------------------------------------
d39ce6d858 | Jude Brown | 2009-11-14 13:22:05 +1000

New monster vault flags: name_descriptor, name_definite.
This changes the mechanics of naming slightly, allowing you to give a
monster a name that is a descriptor and will be treated with the usual
articles (your, the, a, etc) rather than as a name. See documentation.

--------------------------------------------------------------------------------
59caf0a6e2 | Matthew Cline | 2009-11-13 19:11:31 -0800

view.c: fix magic-mapping crash

--------------------------------------------------------------------------------
9e43866287 | Charles Otto | 2009-11-13 21:35:55 -0500

Fix a crash when _passive_freeze is called with NULL aux
ouch can get called with a NULL aux parameter (for example by
splash_with_acid), passing that null pointer to _passive_freeze was
causing a crash.

--------------------------------------------------------------------------------
3975eefb99 | Matthew Cline | 2009-11-13 17:49:12 -0800

mon-place.cc: don't blame if summoner is dead
The Fire Storm spell could kill the summoner before the fire vortexes
could be placed, in which case trying to do blame annotation would cause
assertions.

--------------------------------------------------------------------------------
7e99e3c55e | Stefan O'Rear | 2009-11-13 17:37:48 -0800

Give giant spiked clubs a nonzero acquirement weight
They're the best weapon in the game for the races that can weild them,
it makes no sense to exclude them from acquirements.

Also give mundane items generated by acquirement enchantments and
artifact status.

--------------------------------------------------------------------------------
cbde1e51fc | Matthew Cline | 2009-11-13 17:09:16 -0800

Move some monster descrption code to text file

--------------------------------------------------------------------------------
b054a2033c | David Lawrence Ramsey | 2009-11-13 18:57:06 -0600

Remove redundant did_god_conduct() parameter.

--------------------------------------------------------------------------------
2a812c8d1f | Robert Vollmert | 2009-11-14 01:48:11 +0100

Fix blood spatter bloodifying water.
Blood is still allowed to spread via non-bloodifiable cells, but
it doesn't stay there.

--------------------------------------------------------------------------------
dfc417fb13 | Charles Otto | 2009-11-13 19:47:28 -0500

Change ballistomycete spawn mechanics (again)
When a spore pops or a ballistomycete is killed randomly select a
single ballisto to activate instead of activating the entire level's
worth. Along with this, only deactivate the ballisto that produced a
spore instead of deactivating the entire level.

Rationale: since inactive ballistos don't interrupt travel anymore it's
nicer from an interface perspective to keep most of the ballistos on
the level inactive.

--------------------------------------------------------------------------------
693fc69505 | Charles Otto | 2009-11-13 19:47:25 -0500

Ballistomycete behavior improvements
Don't show wandering/dormant etc. for ballistomycetes.

Consider inactive ballistomycetes harmless for travel purposes.

--------------------------------------------------------------------------------
d0a94abb98 | David Lawrence Ramsey | 2009-11-13 18:46:06 -0600

Fix misplaced parentheses.

--------------------------------------------------------------------------------
93d0d5a902 | David Lawrence Ramsey | 2009-11-13 18:41:16 -0600

Revert "Mark potions of decay as chaotic, since they cause rotting."
This reverts commit ad48240fe8672b50b10cf08aea2a99c4f0ca9467.

(This was after some more thought.  As an analogy, TSO hates poison, but
doesn't punish you for poisoning yourself.  Also, if you use Evaporate
with such a potion and get a miasma cloud that rots monsters, it's
already treated as a chaotic act.)

--------------------------------------------------------------------------------
ad48240fe8 | David Lawrence Ramsey | 2009-11-13 18:30:13 -0600

Mark potions of decay as chaotic, since they cause rotting.

--------------------------------------------------------------------------------
f3308ac8fa | Adam Borowski | 2009-11-14 01:25:44 +0100

Remove references to butchery, it's sacrifice by prayer now.

--------------------------------------------------------------------------------
3854b12e44 | Adam Borowski | 2009-11-14 01:21:48 +0100

Fix zombies/skeletons/... casting spells they could do during life.
This was caused by bind_spell_flags() marking them as spellcasters when
mcls was temporarily changed to the base type to get the stats.

--------------------------------------------------------------------------------
8784d423f3 | Alex MacDonald | 2009-11-14 01:21:47 +0100

Tied up loose ends regarding prayer to offer corpses to gods. Kiku now invokes 
torment when corpses are offered via prayer, in the same way that other gods 
accept corpses for piety. god_likes_butchery() has been removed and tutorial 
messages referencing the old style of offering corpses have been updated.

--------------------------------------------------------------------------------
e7d868d98d | Adam Borowski | 2009-11-14 01:21:47 +0100

Let people in the ice form butcher [FR 2888195].

--------------------------------------------------------------------------------
66b0b08f85 | David Lawrence Ramsey | 2009-11-13 18:16:09 -0600

Fix compilation.

--------------------------------------------------------------------------------
d9d9752822 | Robert Vollmert | 2009-11-14 01:01:17 +0100

Make blink_closer fail on player in sanctuary.
Not sure this is the right thing to do, but also not sure if
it matters.

--------------------------------------------------------------------------------
4cdebaedfe | Robert Vollmert | 2009-11-14 01:00:59 +0100

Remove BLINK_OTHER as an escape spell.

--------------------------------------------------------------------------------
4399b93a02 | Robert Vollmert | 2009-11-14 00:50:33 +0100

Fix "blink closer" not to try blinking into occupied cells.

--------------------------------------------------------------------------------
2100de9211 | Robert Vollmert | 2009-11-14 00:45:06 +0100

Convert monster spell BLINK_OTHER to blink victim closer to caster.
This is meant for Roxanne, but the other users also got this for
now.

--------------------------------------------------------------------------------
ed044f5b88 | Robert Vollmert | 2009-11-14 00:45:06 +0100

Implement function to blink an actor closer to another actor.

--------------------------------------------------------------------------------
5c15e6abda | Robert Vollmert | 2009-11-14 00:45:06 +0100

Implement weighted choice from array.

--------------------------------------------------------------------------------
93534c2212 | Charles Otto | 2009-11-13 17:42:46 -0500

Make level_excursion clear and load exclusions
Make level_excursions::go_to clear and load exclusions. This avoids
exclusions leaking across levels when using apply_to_all_dungeons with
a function that can set exclusions.

Also when applying an auto-exclusion to an out of sight stationary
monster you have seen before (oklob plants after renouncing Fedhas)
associate the monster species with the exclusion.

--------------------------------------------------------------------------------
fac85079e6 | Charles Otto | 2009-11-13 17:42:43 -0500

Improve Fedhas' interaction with auto-exclusions
Make neutralization work on monsters that are out of sight, also make
it clear auto-exclusions for e.g. oklobs that previously got auto-ann.
but are now out of sight.

Make the monster_hostile stuff put auto-exclusions on oklobs you have
already seen (if it turns them hostile).

--------------------------------------------------------------------------------
d5e801f43d | Stefan O'Rear | 2009-11-13 14:40:02 -0800

Fix passive freeze proccing on torment

--------------------------------------------------------------------------------
9792c928e8 | Eino Keskitalo | 2009-11-14 00:06:51 +0200

Make Purgy both earlier (DEPTH: 3-4) and rarer (WEIGHT: 1) in the dungeon. He 
should be more associated with the Sewers.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
726bbec9c9 | Robert Vollmert | 2009-11-13 23:05:10 +0100

Restrict torment and holy word to LOS.
Fixes 2842516.

Also make them fill LOS properly.

--------------------------------------------------------------------------------
64a27c34a4 | Robert Vollmert | 2009-11-13 22:53:33 +0100

Fix bug in adjacent_iterator.

--------------------------------------------------------------------------------
841d476dbd | Robert Vollmert | 2009-11-13 22:51:35 +0100

Convert adjacent_iterator to new radius_iterator constructor.

--------------------------------------------------------------------------------
eecba1f24c | Robert Vollmert | 2009-11-13 22:51:35 +0100

Some radius_iterator documentation.

--------------------------------------------------------------------------------
d958695281 | Robert Vollmert | 2009-11-13 22:51:35 +0100

Convert a bunch of coordinate loops to new radius_iterator.

--------------------------------------------------------------------------------
2021591fae | Robert Vollmert | 2009-11-13 22:51:34 +0100

Some coord-circle.h documentation.

--------------------------------------------------------------------------------
bb4f0a1ac8 | Robert Vollmert | 2009-11-13 22:51:34 +0100

Add translating constructor to circle_def.

--------------------------------------------------------------------------------
d15c5257fb | Robert Vollmert | 2009-11-13 22:51:34 +0100

Make circle_def aware of map bounds.
circle_def now has two modes, depending on whether origin is set.
This is a little ugly.

--------------------------------------------------------------------------------
46d8063d5c | Robert Vollmert | 2009-11-13 22:51:34 +0100

Add method to intersect rectangles.
Also define rectangle RECT_MAP_BOUNDS and
add containment check to rect_def.

--------------------------------------------------------------------------------
b0d21459b7 | Robert Vollmert | 2009-11-13 22:51:34 +0100

Reimplement radius_iterator on the basis of circle_def.

--------------------------------------------------------------------------------
8f81aa0a6f | Robert Vollmert | 2009-11-13 22:51:33 +0100

Add los_def::get_bounds.

--------------------------------------------------------------------------------
a1f031fb94 | Stefan O'Rear | 2009-11-13 13:49:59 -0800

Fix ikiller brokennes

--------------------------------------------------------------------------------
0b2938bbfc | Adam Borowski | 2009-11-13 22:15:54 +0100

Put duplicated body weight calculations into actor::.

--------------------------------------------------------------------------------
13ac52b42d | Adam Borowski | 2009-11-13 22:15:54 +0100

Clean up death reasons.

--------------------------------------------------------------------------------
ca91dc75f9 | Eino Keskitalo | 2009-11-13 23:12:50 +0200

Another new temple with three variations (8, 12 and 14 altars).
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b6759039f6 | Stefan O'Rear | 2009-11-13 13:01:46 -0800

Excempt Roxanne and ice statues from statuic XP

--------------------------------------------------------------------------------
2f3076fab0 | Stefan O'Rear | 2009-11-13 13:00:33 -0800

Quadruple Pikel's XP modifier to compensate

--------------------------------------------------------------------------------
93644d5a12 | Stefan O'Rear | 2009-11-13 12:56:58 -0800

No XP for Pikel's slaves

--------------------------------------------------------------------------------
c07daa36e7 | Stefan O'Rear | 2009-11-13 12:48:45 -0800

Certain bands, mostly uniques, credit leader for kills

--------------------------------------------------------------------------------
82a0fc6f7b | Stefan O'Rear | 2009-11-13 12:31:05 -0800

Fix line breaking for being smited to death by a summon

--------------------------------------------------------------------------------
7ec7eeeab0 | Stefan O'Rear | 2009-11-13 12:26:49 -0800

Add a little variety in summoned by tags

--------------------------------------------------------------------------------
7ac3138dd9 | David Ploog | 2009-11-13 20:10:07 +0100

Increase effect of Str on carrying capacity.
Was 20 per point of Str, is 30. (Used to be 10 in the dark past.)

--------------------------------------------------------------------------------
40ce8c0ee0 | Adam Borowski | 2009-11-13 19:51:51 +0100

Fixedart: shield of the gong.  Wakes up everyone in a large radius on being 
struck. The exact resists are not yet filled in, we'd need to interrogate 
zelgadis who provided the idea.

--------------------------------------------------------------------------------
14be7c5cfe | Adam Borowski | 2009-11-13 19:51:51 +0100

Let unrandart shields have a melee_effect func, called on successful block.

--------------------------------------------------------------------------------
5aba0fa49e | Charles Otto | 2009-11-13 13:58:10 -0500

Change ballistomycete messaging
Drop the deactivation message, simplify and change the activation
messaging.

--------------------------------------------------------------------------------
c27779f9fc | Vsevolod Kozlov | 2009-11-13 21:55:29 +0300

Redraw quiver even if an item that was unquivered is only awkwardly throwable.

--------------------------------------------------------------------------------
e25e8110f3 | David Ploog | 2009-11-13 19:03:43 +0100

Better header for altar.des.

--------------------------------------------------------------------------------
d47e840aba | Robert Vollmert | 2009-11-13 17:48:38 +0100

Fix bushes not being affected by explosions.
This also fixes Cerebov not fire-storming bushes in the arena.

--------------------------------------------------------------------------------
faaed30006 | Vsevolod Kozlov | 2009-11-13 18:45:36 +0300

Make do_stairs in dungeon.cc:_plan_main a bool.
None of the _plan_* functions used the 'do spotty' return values.

--------------------------------------------------------------------------------
87333802a5 | Vsevolod Kozlov | 2009-11-13 18:45:36 +0300

Re-sort options in the manpage.

--------------------------------------------------------------------------------
16b68bcca9 | Vsevolod Kozlov | 2009-11-13 18:45:36 +0300

Update man page.

--------------------------------------------------------------------------------
cea2f935d2 | Robert Vollmert | 2009-11-13 16:39:02 +0100

Allow monsters to gain experience in the arena.

--------------------------------------------------------------------------------
432f4a3b29 | Robert Vollmert | 2009-11-13 16:38:47 +0100

Remove a few redundant arena visibility checks.

--------------------------------------------------------------------------------
e63d9087da | Robert Vollmert | 2009-11-13 15:53:51 +0100

Make arena without team spec play random v random.

--------------------------------------------------------------------------------
e902e699c6 | Robert Vollmert | 2009-11-13 15:47:44 +0100

Change arena foe check to assert.

--------------------------------------------------------------------------------
934725f25e | Robert Vollmert | 2009-11-13 15:47:43 +0100

Remove arena AI forcing option.
It's not strictly necessary anymore to have sensible fights with
recent AI changes, and could easily be restored if required.

Better to improve non-arena AI, however.

--------------------------------------------------------------------------------
715680dd8c | Vsevolod Kozlov | 2009-11-13 17:26:12 +0300

Rename mgrow to mon-grow.

--------------------------------------------------------------------------------
020f721eb9 | Robert Vollmert | 2009-11-13 15:22:17 +0100

Remove obsoleted los.h includes.

--------------------------------------------------------------------------------
11670ba75f | Robert Vollmert | 2009-11-13 15:22:17 +0100

Replace calc_show_los by you.update_los.

--------------------------------------------------------------------------------
d21b754210 | Robert Vollmert | 2009-11-13 15:22:17 +0100

Move trans_wall_blocking into player.

--------------------------------------------------------------------------------
310d043088 | Robert Vollmert | 2009-11-13 15:22:16 +0100

Replace observe_cell by you.see_cell.

--------------------------------------------------------------------------------
d4189cb030 | Robert Vollmert | 2009-11-13 15:22:16 +0100

Hack player LOS routines for arena.
Player now sees everything in the arena.

--------------------------------------------------------------------------------
cc0860dfea | Matthew Cline | 2009-11-13 06:02:15 -0800

exclude.cc: revert _find_exclude_root() speed-up
Was causing memory problems.

--------------------------------------------------------------------------------
86b2a07772 | Jude Brown | 2009-11-13 23:30:22 +1000

Move duplicated can_hibernate code into actor.

--------------------------------------------------------------------------------
14bd854568 | Jude Brown | 2009-11-13 23:30:22 +1000

Give Aizul the Poison Arrow spell.

--------------------------------------------------------------------------------
0ea57891fc | Jude Brown | 2009-11-13 23:30:21 +1000

Convert tabs to spaces.

--------------------------------------------------------------------------------
6963b000a2 | Vsevolod Kozlov | 2009-11-13 16:28:55 +0300

Replace monster_index with monsters::mindex.

--------------------------------------------------------------------------------
227c580bbb | Vsevolod Kozlov | 2009-11-13 16:28:55 +0300

view.cc: Remove an extra USE_TILE after #else.

--------------------------------------------------------------------------------
32f4bcec24 | Robert Vollmert | 2009-11-13 13:28:50 +0100

Revert "Move arena check to draw_player."
This reverts commit 3da2a539cae5cd1838f45b598355ab58d039fa6b.

Was causing player position not be updated at all in arena.

--------------------------------------------------------------------------------
79a08c38a6 | Robert Vollmert | 2009-11-13 13:06:25 +0100

Leave viewwindow early when not drawing.
viewwindow has code to not draw if the player is travelling (depending
on travel_delay etc). This check is now moved before the code that
updates buffy for non-tiles builds. I'm not sure whether the tiles
drawing code doesn't have important side-effects -- if not, the
tiles check could be moved before the main loop as well.

--------------------------------------------------------------------------------
3da2a539ca | Robert Vollmert | 2009-11-13 13:06:25 +0100

Move arena check to draw_player.

--------------------------------------------------------------------------------
5a674a9c4d | Robert Vollmert | 2009-11-13 13:06:24 +0100

Make tiles and non-tiles use the "same" screen_buffer_t buffy.
This change also gets rid of the ugly intermediate macroing.

--------------------------------------------------------------------------------
affe43ff3d | Robert Vollmert | 2009-11-13 13:06:24 +0100

Clean up colour munging.
With the previous change to unseen cells, the check against
buffy[bufcount] is not needed anymore, so we no longer
need to fill buffy for the tiles build.

--------------------------------------------------------------------------------
50bd79855e | Robert Vollmert | 2009-11-13 13:06:24 +0100

Remove comment that doesn't apply (anymore?).

--------------------------------------------------------------------------------
9ed37af357 | Robert Vollmert | 2009-11-13 13:06:24 +0100

Don't treat off-map or unknown differently.

--------------------------------------------------------------------------------
6c8f5db8d3 | Robert Vollmert | 2009-11-13 13:06:24 +0100

Extract player updates from main draw loop.

--------------------------------------------------------------------------------
18b6cac90b | Robert Vollmert | 2009-11-13 13:06:24 +0100

Collect view map updates.

--------------------------------------------------------------------------------
b12c002927 | Robert Vollmert | 2009-11-13 13:06:24 +0100

Split up viewwindow.
Since at the moment, different buffers need to be passed depending
on whether or not we're doing a tiles build, this involves some
ugly macroing.

--------------------------------------------------------------------------------
d393b923b2 | Robert Vollmert | 2009-11-13 13:06:23 +0100

Generalize crawl_view_buffer to also handle the tile buffers.
Also make view.cc use crawl_view_geometry.tbuf for tiles drawing.

--------------------------------------------------------------------------------
81545efb57 | Robert Vollmert | 2009-11-13 13:06:23 +0100

Extract player info updates from viewwindow.

--------------------------------------------------------------------------------
f4ff4c0ab8 | Matthew Cline | 2009-11-13 03:58:21 -0800

options_guide.txt: various atuo-stop stuff
More info on runrest_ingore_message and explore_stop

--------------------------------------------------------------------------------
f424787fb0 | Matthew Cline | 2009-11-13 03:30:54 -0800

mon-stuff.cc: Jiyva slimify-monster stuff
* Don't slimify insubstantial monsters.

* Remove shapeshifting-ness when slimifying a monster, so that it
  won't later shape-shift to a non-slime.

--------------------------------------------------------------------------------
30c0986c27 | Matthew Cline | 2009-11-13 03:24:45 -0800

Jiyva won't slimify god-gift monsters.

--------------------------------------------------------------------------------
df750a0139 | Matthew Cline | 2009-11-13 03:21:41 -0800

religion.cc: mons_make_god_gift(): switching gods
mons_make_god_gift() would assert if a monster already had mon->god set
to something besides GOD_NO_GOD or the god doing the gifting, but this
didn't work with Jiyva slimifying orcs that worship Beogh.  I think this
is left over from before there was MF_GOD_GIFT, when
mon->god != GOD_NO_GOD mean that the monster was a god-gift.  So now
instead it asserts if the monster is already a god gift.

--------------------------------------------------------------------------------
a228636066 | Matthew Cline | 2009-11-13 03:12:21 -0800

Don't remove marker while it's being activated
Removing a marker while it's being activated leads to memory weirdness,
so instead while activating all markers see if each marker has the
"post_activate_remove" set, and afterwards remove those that do.

--------------------------------------------------------------------------------
ada5301a6d | Stefan O'Rear | 2009-11-13 02:05:00 -0800

Add new, futureproof enum serialization primitives

--------------------------------------------------------------------------------
fd7d500606 | Matthew Cline | 2009-11-13 01:44:02 -0800

Move most Royal Jelly code to dat/lair.des

--------------------------------------------------------------------------------
f436e7d24f | Matthew Cline | 2009-11-13 01:44:02 -0800

seen_replace_feat(): replace one feat with another
Replacement for replace_area_wrapper, and a lua accessor for the
function.  Returns true if the player saw the feature being changed.

--------------------------------------------------------------------------------
63d0387082 | Matthew Cline | 2009-11-13 01:44:02 -0800

dungeon.lua: dgn_set_persistent_var()
A function to for setting lua persistent data from C/C++

--------------------------------------------------------------------------------
a169aac622 | Matthew Cline | 2009-11-13 01:44:02 -0800

l_you.cc: you.silenced()

--------------------------------------------------------------------------------
f3f5da932b | Matthew Cline | 2009-11-13 01:44:02 -0800

l_mons.cc: mon.you_can_see monster method

--------------------------------------------------------------------------------
5b564a802e | Matthew Cline | 2009-11-13 01:44:02 -0800

mon-stuff.cc: monster_die() Lua callback
A Lua function can be stored in the monsters::props CrawlHashTable,
which will be called when the monster dies.

--------------------------------------------------------------------------------
6321ec9aee | Matthew Cline | 2009-11-13 01:44:02 -0800

MonPropsMarker: set hash properties on monsters
A marker class which will take the monster on top of it, set any number
entries in that monster's props CrawslHashTable member, and then
disappear.

--------------------------------------------------------------------------------
3afcd8d5b4 | Matthew Cline | 2009-11-13 01:44:02 -0800

lm_trig.lua: monster_dies can look for "any"

--------------------------------------------------------------------------------
02c9b0ce87 | Matthew Cline | 2009-11-13 01:44:02 -0800

l_mons.cc: mon.set_prop(), for hash props member
The set_prop() lua method can be used to set and unset entries in the
CrawlHashTable monsters::props member.

--------------------------------------------------------------------------------
e4da38144d | David Ploog | 2009-11-13 09:05:20 +0100

New great vault by Neil and Jude.

--------------------------------------------------------------------------------
d49f9dd310 | David Ploog | 2009-11-13 08:39:27 +0100

More altar vaults as temple overflow.

--------------------------------------------------------------------------------
bdfc63ce91 | David Ploog | 2009-11-13 08:39:27 +0100

A few more lines for pas-de-faq section.

--------------------------------------------------------------------------------
ecd43741ea | David Ploog | 2009-11-13 08:39:27 +0100

Various temple map tweaks.

--------------------------------------------------------------------------------
30193ffb77 | Matthew Cline | 2009-11-12 23:23:56 -0800

Fix all vault monsters having random colour

--------------------------------------------------------------------------------
31c5d4f42b | Matthew Cline | 2009-11-12 23:03:41 -0800

wiz-mon.cc: fix monser color always being random

--------------------------------------------------------------------------------
63beb01e92 | Charles Otto | 2009-11-13 01:50:58 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref into 
spore_merge2

--------------------------------------------------------------------------------
e55cf763ff | Charles Otto | 2009-11-13 01:50:34 -0500

Use monster_iterator in ballistomycete functions
Also some comment and whitespace changes.

--------------------------------------------------------------------------------
5e448f7064 | Charles Otto | 2009-11-13 01:34:35 -0500

Messaging and code formatting (+comment) improvements.

--------------------------------------------------------------------------------
c1676b3f93 | Matthew Cline | 2009-11-12 22:32:31 -0800

mon_spec: "col:any" to get random colours

--------------------------------------------------------------------------------
ca7c789cfc | Charles Otto | 2009-11-13 01:12:37 -0500

Fix a couple compile errors caused by the merge.

--------------------------------------------------------------------------------
91a0670e70 | Matthew Cline | 2009-11-12 22:01:12 -0800

dungeon.cc: use specialized overflows only %50

--------------------------------------------------------------------------------
e7d888537c | Charles Otto | 2009-11-13 00:51:56 -0500

Merge spore experiments branch.

--------------------------------------------------------------------------------
a8933da038 | Jude Brown | 2009-11-13 15:41:14 +1000

Tweak Menkaure's spells (dpeg, Lemuel).
He now has Symbol of Torment. It might be too much, but we'll see how it
goes.

--------------------------------------------------------------------------------
4a7b398e33 | Jude Brown | 2009-11-13 15:14:02 +1000

Allow uniques in Tomb again.
An oversight on my part.

--------------------------------------------------------------------------------
1a0aefe636 | Matthew Cline | 2009-11-12 21:03:29 -0800

mon-cast.cc: fix unitialized var warning

--------------------------------------------------------------------------------
5747b7feb4 | Jude Brown | 2009-11-13 14:58:30 +1000

Remove "weary" message from Sleep spell, made no sense in context.

--------------------------------------------------------------------------------
6c05a8337e | Jude Brown | 2009-11-13 14:54:40 +1000

New monster spell: Sleep. Give sleep to Aizul.
Unlike Ensorcelled Hibernation, Sleep checks MR only, rather than MR and
cold resistance. It also does not check monsters having SLEEP_WEARY. It
will not act on something that is already sleep.

--------------------------------------------------------------------------------
be0551c220 | Matthew Cline | 2009-11-12 20:16:21 -0800

porkulator: completely restore reverted monsters

--------------------------------------------------------------------------------
81909732f6 | Matthew Cline | 2009-11-12 20:16:21 -0800

store: can now handle monsters and Lua chunks
CrawlHashTables and CrawlVectors can now contain monsters and Lua
chunks.

--------------------------------------------------------------------------------
eb59a79d8f | David Lawrence Ramsey | 2009-11-12 21:00:15 -0600

Give feedback when Fedhas' decomposition has no effect.

--------------------------------------------------------------------------------
a880ee8e1c | Matthew Cline | 2009-11-12 18:32:09 -0800

mon-stuff.cc: de-porkulator: bugfix, improvements
Fix bug where all monsters were being "reverted" to their original form,
not just hogs.

Shapeshifters don't revert from hog form when Kirke dies.

Preserve a monster's enchantments when it reverts from hog form.

--------------------------------------------------------------------------------
3c1420d004 | Stefan O'Rear | 2009-11-12 18:24:03 -0800

Implement monster swiftness, and give it to Gastronok

--------------------------------------------------------------------------------
b5f8d2289d | Jude Brown | 2009-11-13 11:39:38 +1000

Add some documentation on Triggerables.

--------------------------------------------------------------------------------
c0bb067ecc | Stefan O'Rear | 2009-11-12 17:36:34 -0800

Add summoner chain information to death reports

--------------------------------------------------------------------------------
8075717d13 | Charles Otto | 2009-11-12 20:30:12 -0500

Change ballistomycete spore mechanics again
New status: if a ballistomycete or giant spore dies any ballistos on
the level get +1 to a counter. Ballistos with a count higher than zero
get spore production on a short (~150 turn) timer. When a spore is
spawned (by a ballisto) the count of all ballistos on the level is
decreased by 1.

--------------------------------------------------------------------------------
36bf008a57 | Stefan O'Rear | 2009-11-12 17:06:36 -0800

Add ikiller and kpath to the logfile

--------------------------------------------------------------------------------
1105fd0a56 | Matthew Cline | 2009-11-12 16:26:46 -0800

dat/entry.des: elemental_entry excludes/warnings
Remove vault-placed exlcudes from the elemental entry vault, and instead
put warnings on the secret doors.  When the secret doors pop open after
they're detected, the player will be notified of the opening-prompt
placed on them, and asked if they wish to put a travel-exclude on top of
the door.  If users ignore that warning and wander in anyways, they were
adequetly warned.

--------------------------------------------------------------------------------
4fcdab4768 | Matthew Cline | 2009-11-12 16:26:22 -0800

New door Lua marker properties
door_description_prefix: String to prefix to door name.

door_open_prompt: Prompt user if they really want to open the door.

--------------------------------------------------------------------------------
fcd9486498 | Matthew Cline | 2009-11-12 15:32:05 -0800

command.cc: "&:" help update
In the wiz-command help screen, explain that "&:" also shows the
locations of overflow temples.

--------------------------------------------------------------------------------
23aa20deff | Adam Borowski | 2009-11-12 23:35:28 +0100

A shooting booth for centaurs.  You're the target.

--------------------------------------------------------------------------------
3b6078a2a7 | Robert Vollmert | 2009-11-12 23:32:38 +0100

Make the radius_iterator do what it should.

--------------------------------------------------------------------------------
86d2ebe14a | Robert Vollmert | 2009-11-12 23:27:37 +0100

An improved attempt at zapping monsters in starting LOS.
Now make sure that clouds don't temporarily block LOS
to monsters in view of the starting position. It's
possible that no clouds can exist at that point, but
this is safer.

--------------------------------------------------------------------------------
4659bda92e | Robert Vollmert | 2009-11-12 23:21:01 +0100

Revert "Rewrite zap_los_monsters using monster_iter."
This reverts commit a57747c0c0f207a2cb5bee3e4d576f1feb355f96.

--------------------------------------------------------------------------------
a57747c0c0 | Robert Vollmert | 2009-11-12 23:10:43 +0100

Rewrite zap_los_monsters using monster_iter.
Not sure it was broken before, but it's cleaner now.
Also move tutorial item zapping into a separate function.

--------------------------------------------------------------------------------
4f78c6e2e9 | Adam Borowski | 2009-11-12 22:59:47 +0100

A yet another temple.

--------------------------------------------------------------------------------
699d988a21 | Adam Borowski | 2009-11-12 22:36:19 +0100

Add some folks to pan_disco_hall, and some distortious loot carried by the band.

--------------------------------------------------------------------------------
226cab762d | Robert Vollmert | 2009-11-12 22:40:38 +0100

Add more env.pgrid initialization.
Two places: startup (probably already handeld by dgn_reset_level)
and in abyss new area generation.

--------------------------------------------------------------------------------
c9bda0d87e | Robert Vollmert | 2009-11-12 22:19:32 +0100

Extract and move file deletion on game end.
This should prevent problems with the morgue dump
from making a game unlosable, fixing 2782923. Note
that the other problem in that bug report (crash
of mons_type_name on invalid monster type) has
already been fixed.

--------------------------------------------------------------------------------
cbb378630e | Eino Keskitalo | 2009-11-12 23:15:11 +0200

A few new temples.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a511725f34 | Stefan O'Rear | 2009-11-12 12:43:22 -0800

Monsters track who summoned them

--------------------------------------------------------------------------------
1498653cf1 | Adam Borowski | 2009-11-12 21:29:23 +0100

False description: projectiles can now have multiple brands.

--------------------------------------------------------------------------------
73efe6fec4 | Adam Borowski | 2009-11-12 21:04:20 +0100

Relax checks for whether a brand fits a piece of armour.

--------------------------------------------------------------------------------
28af63f40c | Adam Borowski | 2009-11-12 21:03:21 +0100

Fix the Volcano producing launchers of flaming (the ranged brand is "flame").

--------------------------------------------------------------------------------
806878936a | Adam Borowski | 2009-11-12 20:29:23 +0100

Re-add the old version of a temple layout.

--------------------------------------------------------------------------------
6b6424b474 | David Lawrence Ramsey | 2009-11-12 11:14:18 -0600

Typo fixes.

--------------------------------------------------------------------------------
f10cf3c72a | David Lawrence Ramsey | 2009-11-12 11:13:40 -0600

Correct Crazy Yiuf's description; he's a gnoll, not a goblin.

--------------------------------------------------------------------------------
b631deef54 | Adam Borowski | 2009-11-12 15:50:32 +0100

Expand two of the temples to 14 gods.

--------------------------------------------------------------------------------
fbec8fbe56 | David Lawrence Ramsey | 2009-11-12 08:46:42 -0600

In dolinks.sh, also link .txt files, so we properly get art-data.txt.

--------------------------------------------------------------------------------
03cb73a113 | Adam Borowski | 2009-11-12 15:12:56 +0100

Include the new brands.  Dissallow clubs of penetration, caps of running and 
such.

--------------------------------------------------------------------------------
5eb5710adc | Adam Borowski | 2009-11-12 14:29:39 +0100

An overflow altar for TSO.

--------------------------------------------------------------------------------
3031fc6db1 | Jude Brown | 2009-11-12 23:08:37 +1000

Rename can_sleep/put_to_sleep to can_hibernate/hibernate.
This reflects the fact that these functions are currently only used to
player and monster ensorcelled hibernation/metabolic englaciation, and
thus both check monster's cold resistance.

--------------------------------------------------------------------------------
832d0ed621 | Adam Borowski | 2009-11-12 13:55:05 +0100

Re-do the "make package-source" target.

--------------------------------------------------------------------------------
e41fc09843 | Matthew Cline | 2009-11-12 04:36:18 -0800

view.cc: Auto-exclude harmful clouds
Automatically add exclusions for harmful clouds which are generated by
nither monsters nor the player.

--------------------------------------------------------------------------------
56a569bfc1 | Matthew Cline | 2009-11-12 04:36:18 -0800

exclude.cc: Speed up finding exclude roots

--------------------------------------------------------------------------------
5845f866b7 | Matthew Cline | 2009-11-12 04:36:18 -0800

cloud.cc: KC_OTHER -> KILL_MISC
cloud_struct::whose_to_killer() maps KC_OTHER to KILL_MISC

--------------------------------------------------------------------------------
d518ae51c1 | Jude Brown | 2009-11-12 22:34:54 +1000

Further elven twin death effect tweaks.
Fix a minor bug (always giving a distance message unless the twin is
invisible), and add a waken event.

--------------------------------------------------------------------------------
eae49c6fcb | Jude Brown | 2009-11-12 22:11:20 +1000

Further tweaks to Dowan/Duvessa death effects.
New MF_GOING_BERSERK flag: monsters with this flag will go berserk the
next turn after they see you.

Remove sight limitations from Dowan/Duvessa death effects. Flavour
messages will now always occur, as will Dowan's fear effect, even if you
cannot see him.

Duvessa's berserk effect is only triggered if you are in her line of
sight upon Dowan's death. If you are not, she's given the
MF_GOING_BERSERK flag, and will go berserk when she next sees you.

Reasoning is that they have some magical ability to sense the other's
death.

--------------------------------------------------------------------------------
0780196442 | Stefan O'Rear | 2009-11-12 03:53:13 -0800

Add summoner and non_actor_summoner to mgen_data
Monsters now know who summoned them.  This will be important later.
Probably breaks something; saves are not one of them.

--------------------------------------------------------------------------------
7f502e2077 | Robert Vollmert | 2009-11-12 12:27:53 +0100

set_exclude/del_exclude lua bindings.

--------------------------------------------------------------------------------
d728a1cd0d | Matthew Cline | 2009-11-12 03:25:21 -0800

Wiz cmd "&:": list altars in overflow temples

--------------------------------------------------------------------------------
ce5dd6cec3 | Matthew Cline | 2009-11-12 03:18:07 -0800

New macro DEBUG_TEMPLES
The macro DEBUG_TEMPLES can be defined to get diagnostics messages
regarding the main temple and overflow temples.

--------------------------------------------------------------------------------
1ad42555a2 | Matthew Cline | 2009-11-12 02:54:18 -0800

Fedhas/Cheibriados altar cleanup
Remove WEIGHTs and PLACEs for Fedhas and Cheibriados temples now that
they can also appear in the main temple.

--------------------------------------------------------------------------------
4ec1ab4e07 | Matthew Cline | 2009-11-12 02:52:27 -0800

Randomly placed overflow temples
Specialized single-altar overflow temples which also have the tag
"uniq_altar_GODNAME" can be placed randomly even if that altar has been
chosen at new-game time to be an overflow temple on a specific level,
and if it's randomly placed before being generated specifically then it
will only be placed once, rather than also being placed a second time at
the location chosen at new-game time.

--------------------------------------------------------------------------------
af5862b9ed | Robert Vollmert | 2009-11-12 11:31:57 +0100

Add wiz-mode arbitrary radius exclude command.
This is quite a hack: Hitting 'R' on the level map in
wizard mode will silently read a number that specifies
the exclude radius. If you have an idea for making this
nicer, please improve or tell me.

--------------------------------------------------------------------------------
b5e04497a8 | Robert Vollmert | 2009-11-12 11:31:56 +0100

Allow radius 1 exclusions.
Special-case to not require LOS calculations. Also make cycling
not crash when exclusions have radius != 0, LOS_RADIUS.

--------------------------------------------------------------------------------
99dd2c330e | Matthew Cline | 2009-11-12 02:12:51 -0800

Use specialized single-altar overflow temples
For overflow temples with a single altar, look for a map tagged with
"temple_overflow_GODNAME" and use that if available.

--------------------------------------------------------------------------------
087b6279a0 | Matthew Cline | 2009-11-12 02:12:51 -0800

Choose main temple at new-game time
Randomly choose the main temple map at new game time, and count the
altars in it to determine how many altars have to go into overflow
temples.

--------------------------------------------------------------------------------
7a9b9a3ade | Matthew Cline | 2009-11-12 02:12:51 -0800

mapdef: extra validation for temple maps

--------------------------------------------------------------------------------
07a9895dd0 | Matthew Cline | 2009-11-12 02:12:51 -0800

temple.des: Comment out five_temple
Comment out five_temple, since the altars found in the main temple are
now randomly chosen at new game initialization, and turning all the
altars into 'B' would give 15 altars, which is too many.

--------------------------------------------------------------------------------
f80d6f4e45 | Jude Brown | 2009-11-12 19:45:44 +1000

Rename SPELL_BACKLIGHT -> SPELL_CORONA, and relevant ZAP/BEAM/DUR.

--------------------------------------------------------------------------------
576ccd691e | Jude Brown | 2009-11-12 19:44:14 +1000

Rename SPELL_MASS_SLEEP -> SPELL_ENGLACIATION.

--------------------------------------------------------------------------------
87db512f77 | Jude Brown | 2009-11-12 19:41:50 +1000

Rename SPELL_SLEEP -> SPELL_HIBERNATE, and relevant ZAP/BEAM.

--------------------------------------------------------------------------------
d96f555a55 | Jude Brown | 2009-11-12 19:27:33 +1000

Give Gastronok elephant slug stats, instead of giant slug stats.
Adjust his placement to be more weighted towards Lair.

--------------------------------------------------------------------------------
c62161db7b | Jude Brown | 2009-11-12 19:27:33 +1000

Don't place Swampy vault in Slime.

--------------------------------------------------------------------------------
0f338eb725 | Stefan O'Rear | 2009-11-12 01:05:50 -0800

Add a CrawlHashTable to monster objects

--------------------------------------------------------------------------------
9f7066eab0 | Robert Vollmert | 2009-11-12 09:38:24 +0100

Use get_free_monster in other places.

--------------------------------------------------------------------------------
62a3121fcb | Robert Vollmert | 2009-11-12 09:38:20 +0100

Extract funtion to find an unused monster.

--------------------------------------------------------------------------------
bf9183f652 | Robert Vollmert | 2009-11-12 09:38:15 +0100

More monster_iterator conversions.

--------------------------------------------------------------------------------
a32d122dd8 | Robert Vollmert | 2009-11-12 09:26:39 +0100

Fix another monster_type == -1 check.

--------------------------------------------------------------------------------
f4a4403f65 | David Ploog | 2009-11-12 07:42:37 +0100

Greatly improve elemental_lab (Neil).

--------------------------------------------------------------------------------
b3309bdf09 | Matthew Cline | 2009-11-11 22:36:20 -0800

stuff.cc: fix zap_los_monsters()

--------------------------------------------------------------------------------
578de264d1 | David Ploog | 2009-11-12 07:20:28 +0100

Move some shrine maps to altar.des.
Removed the shrine portal vault. Used some of the maps for altar.des.
Update Credits.

--------------------------------------------------------------------------------
768644f211 | David Ploog | 2009-11-12 07:20:28 +0100

Layout tweak for Ice Caves.
Make sure that there are no places where you can retreat into a corridor,
fighting monsters one on one. (Intentionally not applied to the caverns.)

--------------------------------------------------------------------------------
934e301717 | Matthew Cline | 2009-11-11 22:07:38 -0800

dolinsks.sh: only link needed files

--------------------------------------------------------------------------------
fe91130c20 | Matthew Cline | 2009-11-11 22:02:32 -0800

tilereg.cc: quite Valgrind warning

--------------------------------------------------------------------------------
fc13700a1c | Matthew Cline | 2009-11-11 22:00:48 -0800

tilereg.h: don't redefine inherited member
DungeonRegion was needlessly redefining the inherited member "m_dirty".

--------------------------------------------------------------------------------
ea834f31f7 | Matthew Cline | 2009-11-11 21:56:45 -0800

coord-circle.cc: set radius_sq before use

--------------------------------------------------------------------------------
4ff972df49 | Matthew Cline | 2009-11-11 21:44:33 -0800

makefile: make fastdep work with tiles
fastdep wasn't picking up all tiles dependencies.

--------------------------------------------------------------------------------
4cf89bf43f | Charles Otto | 2009-11-11 23:57:28 -0500

Change the ballistomycete activation mechanic
Give ballistomycetes a counter, when it's at zero they have the slow
spawn rate (are considered inactive), when it's greater than zero they
have the fast spawn rate. Killing a ballisto gives +1 to any others on
the level, a ballisto spawning a spore subtracts 1 from its own counter

--------------------------------------------------------------------------------
37ba8b3ae6 | Charles Otto | 2009-11-11 23:04:23 -0500

Give giant spores a chance of spawning ballistos while wandering
Give giant spores a chance of creating a ballistomycete when they move
while wandering. This ability is on a timer, so they can't create more
than 1 ballisto per 20 turns. Numbers may need tweaking.

--------------------------------------------------------------------------------
0333e02340 | Matthew Cline | 2009-11-11 19:49:34 -0800

FixedVector varargs init method used by tilepick
Revert removal of varargs init method for FixedVector, since tilepick.cc
uses it.

--------------------------------------------------------------------------------
1b6b184131 | Matthew Cline | 2009-11-11 19:24:33 -0800

view.cc: Fix tiles compile error

--------------------------------------------------------------------------------
694c5c99ab | Matthew Cline | 2009-11-11 19:23:58 -0800

tutorial.cc: fix shadow warning

--------------------------------------------------------------------------------
ece54abd39 | Stefan O'Rear | 2009-11-11 16:56:12 -0800

Swap accuracy and damage in weapon long descriptions (Twinge)

--------------------------------------------------------------------------------
e609fa1634 | Adam Borowski | 2009-11-12 01:29:02 +0100

Autogenerated changes to junk which shouldn't be under version control.

--------------------------------------------------------------------------------
cb1642d116 | Adam Borowski | 2009-11-12 01:24:27 +0100

Make the storm bow occasionally cause rain clouds.

--------------------------------------------------------------------------------
f6ded04da5 | Adam Borowski | 2009-11-12 01:07:16 +0100

Don't number entries in art-data.h, this serves no purpose but clouds diffs.

--------------------------------------------------------------------------------
b97d3f1ecc | Adam Borowski | 2009-11-12 00:58:17 +0100

Unrandarts: captain's cutlass and storm bow.

--------------------------------------------------------------------------------
b104d76e51 | Adam Borowski | 2009-11-12 00:58:17 +0100

Electricity discharge through water when hit by a charged projectile.
This also makes the order of hit_funcs vs range_funcs consistent.  The latter
were usually called first, but not always -- contrary to what one would expect.
I made hit_funcs go first in all cases.

--------------------------------------------------------------------------------
12bb914d94 | Adam Borowski | 2009-11-12 00:58:17 +0100

Portals to Pan and empty arches in the Abyss.

--------------------------------------------------------------------------------
251549e47f | Adam Borowski | 2009-11-12 00:58:16 +0100

Fix missing dot.

--------------------------------------------------------------------------------
d8934d1f49 | Adam Borowski | 2009-11-12 00:58:16 +0100

Let TSOites bless their bows.

--------------------------------------------------------------------------------
646e9d9981 | Adam Borowski | 2009-11-12 00:58:16 +0100

Increase avg plusses on Crazy Yiuf's quarterstaff.
The original idea was to dupe players into using this stick and then
splatting on a berserk ogre.

--------------------------------------------------------------------------------
c8f280dbc8 | Adam Borowski | 2009-11-12 00:58:16 +0100

Crossbows of shocking, for everyone.  Launchers of holy wrath, for dpeg's 
angels.
Neither cause additional mulching of ammo, since both the charge and blessing
is temporary.  Blessing and reaping cancel each other.

Holy wrath launchers are a lot weaker than silver ammo, but these two stack.
Plus, they're permanent while ammo is scarce.

--------------------------------------------------------------------------------
e188af641b | Adam Borowski | 2009-11-12 00:58:16 +0100

Tiles for captain's cutlass and storm_bow.

--------------------------------------------------------------------------------
65cdfd2ee2 | Adam Borowski | 2009-11-12 00:58:15 +0100

Uniques like Pikel or Grum shouldn't be less chatty when in a band.

--------------------------------------------------------------------------------
d6856bb929 | Matthew Cline | 2009-11-11 16:04:03 -0800

ng-init.cc: use temple_god_list()

--------------------------------------------------------------------------------
293fabd573 | Matthew Cline | 2009-11-11 15:56:04 -0800

dungeon: Randomized altars for mini-temples
Randomize the altars placed in mini-temples, rather than always going in
enum order.  If multiple mini-temples are placed on the same level with
a combined altar count larger than the number of gods which can appear
in temples, then a single mini-temple might contain duplicate altars.q

Eliminates altar_count from vault_placement struct.

--------------------------------------------------------------------------------
be10fc3e15 | Matthew Cline | 2009-11-11 15:55:25 -0800

religion: temple_god_list()
New function temple_god_list(), which returns a list of gods whose
altars can appear in the main temple, overflow temples, and
mini-temples.

--------------------------------------------------------------------------------
4aec7022c1 | Matthew Cline | 2009-11-11 15:48:21 -0800

art-data.h: dispater, cerebov evil, not unholy
The Sword of Cerebov and the Staff of Dispater are now marked as evil,
rather than as unholy.

--------------------------------------------------------------------------------
d0ff439d74 | Matthew Cline | 2009-11-11 15:47:33 -0800

rltiles/dc-unrand.txt: util/art-data.pl modified
util/art-data.pl modified this file for some reason, so I'm checking the
new one in.

--------------------------------------------------------------------------------
c5950794e9 | Jude Brown | 2009-11-12 09:10:40 +1000

Rename monspeak/monplace/monstuff to mon-speak/place/stuff.
I'm pretty sure I've managed to replace every instance of a reference to
these files, so I hopefully haven't missed anything.

--------------------------------------------------------------------------------
f0b1c25fa9 | Matthew Cline | 2009-11-11 14:19:00 -0800

Place arbitrarily sized main temple
The main Temple (temple branch) can now have an arbitrary number of
altars, decided at new-game initialization time.  Vaults with differing
numbers of altars can be given the tag "temple_main_N", with N being the
number of altars.

--------------------------------------------------------------------------------
193248a7eb | Matthew Cline | 2009-11-11 13:48:57 -0800

develop/levels/advanced: DEBUG_TESTS macro
How to use the DEBUG_TESTS to get tests without having to do a full
debug build.

--------------------------------------------------------------------------------
53a5f1b2f8 | Matthew Cline | 2009-11-11 13:08:49 -0800

lm_trig.lua: monster_dies fix, slaved marker fix
monster_dies now uses the full name of the monster, rather than the name
of the monster's type.

Fixed error with using slave markers.

--------------------------------------------------------------------------------
86d3b14238 | Matthew Cline | 2009-11-11 13:07:17 -0800

l_mons.cc: More monster name accessors
Renamed mons.name() to mons.type_name(), made mons.name() actually
call mons->name(DESC_PLAIN), and added mons.base_name(),
mons.full_name(), and mons.db_name()

--------------------------------------------------------------------------------
8876eedb60 | Matthew Cline | 2009-11-11 12:53:14 -0800

Bug 2895857: make Oklobs acid resistant

--------------------------------------------------------------------------------
50c63fe994 | Robert Vollmert | 2009-11-11 20:13:26 +0100

Extract Matrix class from fixary.h.
It didn't really have anything to do with FixedArray.

--------------------------------------------------------------------------------
f082540fd6 | Robert Vollmert | 2009-11-11 20:13:26 +0100

Remove unused FixedVector initialization code.

--------------------------------------------------------------------------------
adb21570e7 | Robert Vollmert | 2009-11-11 19:14:39 +0100

Convert another 45 monster loops to monster_iterator.
A total of 53 have been converted; 39 left, of which some should
stay. Now at a net loss of lines of code for monster_iterator.

Occurrences of MAX_MONSTERS down to 65 from 116 in *.cc.

--------------------------------------------------------------------------------
24636262ad | Robert Vollmert | 2009-11-11 16:26:21 +0100

Convert some more monster loops to monster_iterator.

--------------------------------------------------------------------------------
113f5584b4 | Robert Vollmert | 2009-11-11 16:26:21 +0100

Convert drain life and oz's refrigeration to monster_iterator.

--------------------------------------------------------------------------------
730293f797 | Robert Vollmert | 2009-11-11 16:26:21 +0100

Convert cast_toxic_radiance to use monster_iterator.
Testing monster_iterator functionality.

--------------------------------------------------------------------------------
9c2352a579 | Robert Vollmert | 2009-11-11 16:26:20 +0100

Add actor::get_los.

--------------------------------------------------------------------------------
f7b29b8139 | Robert Vollmert | 2009-11-11 16:26:20 +0100

Implement monster_iterator.
monster_iterator allows iterating over live monsters in
env.mgrid, possibly subject to some location/visibility
restrictions.

Possible restrictions:
- within some radius (circle_def::contains(mon->pos())
- position inside some LOS (los_def::see_cell(mon->pos())
- visible to some actor (actor::can_see(mon))

Sample use:

for (int i = 0; i < MAX_MONSTERS; ++i)
{
    monsters* const monster = &menv[i];
    if (!monster->alive())
        continue;
    // ...

// becomes

for (monster_iterator mi; mi; ++mi)
{
    // ..., replacing monster-> by mi->
    //      and monster by *mi

If you were checking for mons_near(monster), use
    monster_iterator mi(&you.get_los());
if you were checking for you.can_see(monster), use
    monster_iterator mi(&you);
if you were checking for
(monster->pos()-you.pos()).abs() <= r*r+1, use
    monster_iterator mi(circle_def(you.pos(), r, C_ROUND)).

This is not as general as one might hope, but it should
allow reducing the amount of code that knows how monsters
are stored.

--------------------------------------------------------------------------------
4aebd25253 | David Lawrence Ramsey | 2009-11-11 08:40:13 -0600

Improve wielding messages for unholy weapons and good gods, and for hasty 
weapons and Cheibriados.

--------------------------------------------------------------------------------
17cf232a36 | David Lawrence Ramsey | 2009-11-11 08:39:51 -0600

Add missing prototype for is_hasty_item().

--------------------------------------------------------------------------------
6b84e07db1 | David Lawrence Ramsey | 2009-11-11 08:23:06 -0600

Fix good_god_hates_item_handling() to handle the unholy/evil split.

--------------------------------------------------------------------------------
5148e63355 | David Lawrence Ramsey | 2009-11-11 08:05:09 -0600

Adjust FIXME comment to account for the unholy/evil split.

--------------------------------------------------------------------------------
85b70c927b | Jude Brown | 2009-11-11 22:22:08 +1000

Move monster speech calculations to monspeak.cc. Make Yiuf chattier.
Crazy Yiuf now speaks with more regularity than normal; this is a
special case, and could probably be converted to a flag (M_CHATTY) or
something similar for other uniques.

The monster-speaking chance code seems to make more sense being in
monspeak.cc, so moved it there under maybe_mons_speaks.

--------------------------------------------------------------------------------
e4d5c6039f | Matthew Cline | 2009-11-11 02:34:35 -0800

Place some of the altars outside of the Temple
Framework for placing altars outside the Temple, into what I call
"overflow temples".  It currently places twelve altars in the Ecumenical
Temple and two outside at D:2 through D:9, with each of the two overflow
altars being placed in a "temple" which consists of a bare altar.  The
overflow temples can actually contain any number of altars, but I'm not
a vault designer, so I went the minimalistic route.

The levels the overflow temples are placed on can be listed with the
wizard command "&:".

--------------------------------------------------------------------------------
9b1fdd7ba5 | Matthew Cline | 2009-11-11 02:33:21 -0800

store.cc: Allow unset/unused values to be saved
Allow unset/unused values to be saved and restored.

--------------------------------------------------------------------------------
0691b2a7f8 | Matthew Cline | 2009-11-11 02:32:16 -0800

rng.cc: seed_rng() also calls srand()
Call srand() when seeding the RNG, since std::random_suffle uses rand()

--------------------------------------------------------------------------------
25e42bedb5 | Matthew Cline | 2009-11-10 23:20:10 -0800

Corpse names for unusally named monsters
Fix corpse names (and zombie names) for monsters which are named with
name_adjective, name_suffix or name_replace.

--------------------------------------------------------------------------------
a7ae274043 | Jude Brown | 2009-11-11 17:08:51 +1000

Laboratory vault redux!
This one features a polymoprhing, fire-themed wizard, and fire breathing
rats.

--------------------------------------------------------------------------------
37b3a12cfd | David Ploog | 2009-11-11 06:49:54 +0100

Fix off-by-one error for glyphs in Ctrl-X listing. (doy)

--------------------------------------------------------------------------------
21cc906692 | Charles Otto | 2009-11-11 00:47:58 -0500

Change ballistomycete spore spawning mechanics
Make spore production use a timer instead of a chance per turn.

Give ballistomycetes 2 basic states, for now differentiated by glyph
color. They start out magenta and have a slow spawn rate (1 per ~1500
turns), when a ballisto dies any others on the level become active,
changing color to light red and spawning spores quickly (1 per ~150
turns)

--------------------------------------------------------------------------------
4bf7a0a7ff | Matthew Cline | 2009-11-10 20:41:09 -0800

tutorial.cc: Mention shopping list

--------------------------------------------------------------------------------
992bc1c1b6 | David Ploog | 2009-11-11 05:26:31 +0100

Reformat comments for modified Tukima spell.

--------------------------------------------------------------------------------
4d643d58d1 | Matthew Cline | 2009-11-10 20:24:30 -0800

tutorial.cc: Description for bloodstains

--------------------------------------------------------------------------------
4a2e918c73 | Matthew Cline | 2009-11-10 20:24:30 -0800

tutorial: plant/fungus and toadstool events
New events for the first time seeing a zero-experience monster and for
first seeing a toadstool.

--------------------------------------------------------------------------------
401c228a8c | Matthew Cline | 2009-11-10 20:24:30 -0800

misc.cc: Extra leave-dungeon prompt in tutorial
During tutorial mode, ask a second time if the player is *sure* they
want to leave the dungeon.

--------------------------------------------------------------------------------
d209dced6e | David Lawrence Ramsey | 2009-11-10 22:04:09 -0600

Properly split up unholy and evil items, reworking is_(unholy|evil)().
This is mainly for Fedhas, who hates the latter but not the former.

--------------------------------------------------------------------------------
219ce41e67 | David Lawrence Ramsey | 2009-11-10 22:04:09 -0600

Typo fix.

--------------------------------------------------------------------------------
af420e3517 | David Lawrence Ramsey | 2009-11-10 22:04:09 -0600

Replace actor::is_unholy() with actor::undead_or_demonic().

--------------------------------------------------------------------------------
42876e1c49 | David Lawrence Ramsey | 2009-11-10 22:04:08 -0600

Add actor::undead_or_demonic() to check for those holiness types.

--------------------------------------------------------------------------------
46a9a48fae | David Lawrence Ramsey | 2009-11-10 22:04:08 -0600

Use wrapper functions properly when checking for holy spells.

--------------------------------------------------------------------------------
5801d6f242 | David Lawrence Ramsey | 2009-11-10 22:04:08 -0600

Since is_chaotic() checks the subject for a chaotic god, don't use it to mark 
players that can't worship Zin, as they'll never be able to convert from a 
chaotic god in that case.

--------------------------------------------------------------------------------
53c9ff1a2e | Matthew Cline | 2009-11-10 18:26:31 -0800

beam.cc: seeing clouds polymorphed
Seeing a cloud changed by a polymorph beam will give a message (with a
different message for one you're standing in), and will also make the
effect of the beam obvious.

--------------------------------------------------------------------------------
25c10a2929 | Adam Borowski | 2009-11-11 03:13:16 +0100

Update the long descriptions for swapped Zin's and Ely's altars.

--------------------------------------------------------------------------------
f2b624102d | Matthew Cline | 2009-11-10 18:15:24 -0800

Bug 2891438: spellcaster new level tut outdated
The tutorial message for a spellcaster gaining a new level didn't match
the new spell memorization interface.

--------------------------------------------------------------------------------
7f330c97c7 | David Lawrence Ramsey | 2009-11-10 19:00:59 -0600

Simplify some spell discipline checks.

--------------------------------------------------------------------------------
c12391f696 | David Lawrence Ramsey | 2009-11-10 18:57:02 -0600

For consistency, make torment set the necromancy conduct.

--------------------------------------------------------------------------------
56865aec73 | David Lawrence Ramsey | 2009-11-10 18:41:59 -0600

Remove trailing whitespace.

--------------------------------------------------------------------------------
38a73fb2e3 | David Lawrence Ramsey | 2009-11-10 18:41:58 -0600

Fix inconsistencies with regard to chaotic spells.
Trigger the chaotic conduct for players that cast miasma, and mark
Fulsome Distillation as chaotic, since it can create chaotic potions.

--------------------------------------------------------------------------------
2508432895 | Stefan O'Rear | 2009-11-10 16:37:20 -0800

Fix off-by-one error that prevented claws from being considered a body mutation 
(N78291)

--------------------------------------------------------------------------------
9550aee5ca | Jude Brown | 2009-11-11 10:07:31 +1000

Tweak Dowan/Duvessa death effects + invisibility (jpeg).
Should now work even if one (the one being killed) or the other (the
living twin) or bother are invisible. Add a new subset of flavour
message to cope with this ("It weeps, then rights herself and shakes her
weapon" doesn't work with invisible).

Still needs to be tweaked, as Dowan will flee/Duvessa will go berserk if
one of them is stabbed. Also, flavour messages may need to be adjusted
to take into consideration trap deaths.

--------------------------------------------------------------------------------
03c7a3c5ea | Robert Vollmert | 2009-11-11 00:42:31 +0100

Update description of "Make Ponderous".
Make it clear that you will be prompted for the piece of armour
to affect.

--------------------------------------------------------------------------------
12ec86d5f8 | Adam Borowski | 2009-11-11 00:26:45 +0100

Quaffing an unided potion of berserk rage is "unintentional" berserk -- it 
matters for Che.

--------------------------------------------------------------------------------
03d90bdfaa | Robert Vollmert | 2009-11-11 00:21:16 +0100

Revert "temporary"
This reverts commit 7ad81857b0a7f679f193ca482d5dac571ee43803.

--------------------------------------------------------------------------------
8b4ccf7e8e | Robert Vollmert | 2009-11-11 00:19:28 +0100

Use grid_appearance instead of env.grid for LOS calculation.
Previously, undetected secret doors in clear rock walls were
blocking LOS. Now they don't but do once you detect them...

--------------------------------------------------------------------------------
f7a0f944d1 | Robert Vollmert | 2009-11-11 00:15:36 +0100

Merge branch 'master' of 
ssh://rvollmert@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
7ad81857b0 | Robert Vollmert | 2009-11-11 00:15:19 +0100

temporary

--------------------------------------------------------------------------------
e903325064 | Adam Borowski | 2009-11-11 00:04:36 +0100

Tomb of Doroklohe: delete clouds at the walls; proper message if the tomb is 
visible while being dropped.

--------------------------------------------------------------------------------
dee99078b0 | Robert Vollmert | 2009-11-10 22:19:51 +0100

Clear env.pgrid (fprops) on level reset.
This might well remove the bloody levels on c.d.o.

--------------------------------------------------------------------------------
954606e186 | Robert Vollmert | 2009-11-10 21:20:23 +0100

Remove stray header file dgn-maps.h.

--------------------------------------------------------------------------------
b1b91ff158 | Eino Keskitalo | 2009-11-10 21:40:43 +0200

New Norris description and speech. (dpeg, ##crawl-dev)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b3cefaa00e | David Lawrence Ramsey | 2009-11-10 13:28:25 -0600

Simplify Yred's and Okawaru's sending of random servants.

--------------------------------------------------------------------------------
626505ac84 | David Lawrence Ramsey | 2009-11-10 13:23:24 -0600

Improve Yred's choosing of hostile skeleton types.

--------------------------------------------------------------------------------
777fefa8f1 | David Lawrence Ramsey | 2009-11-10 12:42:03 -0600

Ensure that Yred's hostile skeletons are valid skeleton types.

--------------------------------------------------------------------------------
a8e32820e3 | David Lawrence Ramsey | 2009-11-10 11:07:59 -0600

Add explanatory comment and, for now, a FIXME to _get_spellbook_list().

--------------------------------------------------------------------------------
64336d12b0 | David Lawrence Ramsey | 2009-11-10 11:02:43 -0600

Replace monsters::is_magic_user() with monsters::is_actual_spellcaster(), as 
it's simpler, and monsters with the "actual spells" flag should always have 
spells anyway.

--------------------------------------------------------------------------------
87d388e09b | David Lawrence Ramsey | 2009-11-10 10:40:43 -0600

Replace mons_is_magic_user() with monsters::is_magic_user().

--------------------------------------------------------------------------------
a70fa41dbe | David Lawrence Ramsey | 2009-11-10 10:39:45 -0600

Move monsters::is_shapeshifter() in monster.cc down to match monster.h.

--------------------------------------------------------------------------------
892eaad5f1 | David Lawrence Ramsey | 2009-11-10 10:00:00 -0600

Ensure that both deep elf conjurer spellbooks are evil.
In the first deep elf conjurer book, replace Sticky Flame with Bolt of
Draining; the second book has Sticky Flame, as well as having Bolt of
Draining in the same slot.

--------------------------------------------------------------------------------
20356607e5 | David Lawrence Ramsey | 2009-11-10 09:40:22 -0600

And actually commit the altar color changes.

--------------------------------------------------------------------------------
066102f758 | David Lawrence Ramsey | 2009-11-10 09:35:09 -0600

Given silver's new status, tweak descriptions of Zin's and Ely's altars.
Zin: "glowing white altar" -> "glowing silver altar"
Ely: "silver altar"        -> "white altar"

Also swap the altar colors in console mode.  The tiles are left as-is,
since they seem okay to me.

--------------------------------------------------------------------------------
8622115c48 | Adam Borowski | 2009-11-10 15:57:17 +0100

Fix monsters with static spellbooks not getting any spells. Praise be to 'git 
bisect'!

--------------------------------------------------------------------------------
1ad8edc040 | Adam Borowski | 2009-11-10 15:57:17 +0100

Indent the prefix/DATADIR parts of the makefile.

--------------------------------------------------------------------------------
54ccf63c38 | Vsevolod Kozlov | 2009-11-10 16:48:44 +0300

Make actor::heal return bool; move heal_monster to monsters::heal.
monsters::heal and heal_monster used to have slightly different logic for
increasing maximum HP.  Now the heal_monster logic is used everywhere.

player::heal always returns true at the moment, but since its return value is
never checked, that does not affect anything.

--------------------------------------------------------------------------------
672df2f6a4 | Robert Vollmert | 2009-11-10 14:34:37 +0100

Add conditional bloodifying function and use it in some places.
This might help the reported blood-covered deep water, though
I didn't see any obvious case that was a likely cause.

--------------------------------------------------------------------------------
d2b8c2a72d | Robert Vollmert | 2009-11-10 14:17:53 +0100

Remove redundant bleeding check.

--------------------------------------------------------------------------------
dba0e92876 | Robert Vollmert | 2009-11-10 14:01:20 +0100

Remove a few obsolete includes.
Also add a few previously indirect includes.

--------------------------------------------------------------------------------
8c21895bda | Robert Vollmert | 2009-11-10 13:57:07 +0100

Update a few special cases in includes.sh.

--------------------------------------------------------------------------------
7296afe57a | Robert Vollmert | 2009-11-10 13:57:07 +0100

Remove inside_level_bounds.
This was a weird mix of in_bounds and map_bounds (exclusive
top-left, inclusive top-right). Replaced with in_bounds.

--------------------------------------------------------------------------------
9ea804adc3 | Jude Brown | 2009-11-10 22:38:31 +1000

Dowan and Duvessa "death" effects: berserk and fear.
Dowan now flees (ENCH_FEAR) when Duvessa is killed nearby (in your line
of sight, while Dowan is in your line of sight). Likewise,  Duvessa goes into a
berserk rage. Flavour mesages for both situations provided!

--------------------------------------------------------------------------------
84d08117f4 | Jude Brown | 2009-11-10 22:38:31 +1000

Give Crazy Yiuf sane speech for when he's confused.

--------------------------------------------------------------------------------
b32961261d | Robert Vollmert | 2009-11-10 12:44:19 +0100

Remove some obsolete view.h-includes.

--------------------------------------------------------------------------------
3977b123c4 | Robert Vollmert | 2009-11-10 12:44:19 +0100

Split shouting and stealth code from view.cc.

--------------------------------------------------------------------------------
ba3b7dbaad | Adam Borowski | 2009-11-10 12:11:19 +0100

Fix installation with DATADIR="" DESTDIR="" prefix!=""

--------------------------------------------------------------------------------
eba5fc84b7 | Matthew Cline | 2009-11-10 03:11:44 -0800

CrawlHashTable: free memory on assignment
Free a CrawlHashTable's used memory when it's clobbered via being
assigned to.

--------------------------------------------------------------------------------
1569a7ec6c | Robert Vollmert | 2009-11-10 12:10:21 +0100

Make types and bounds in random2 a bit more explicit.

--------------------------------------------------------------------------------
272eaa7b97 | Robert Vollmert | 2009-11-10 12:10:20 +0100

Fix compiler warning.
12:00 < Napkin> los.cc: In constructor `los_ray::los_ray(geom::ray)':
12:00 < Napkin> los.cc:154: warning: converting of negative value 
`-0x000000001' to
                `unsigned int'

--------------------------------------------------------------------------------
eca809f540 | Stefan O'Rear | 2009-11-10 02:50:44 -0800

Fix off by 1 error in _select_ds_mutations
This bug resulted in a crash, but only with -O2 and only on x86_64.  Finding
this bug turned out to require two hours of staring at gdb disassembly output
and tracking the values of registers, since info locals didn't work.  I think
my hacker level just went up.

--------------------------------------------------------------------------------
9e2b5b695e | Adam Borowski | 2009-11-10 11:26:23 +0100

Don't chown on DGL builds (Napkin).

--------------------------------------------------------------------------------
f9cfe9a344 | Marc H. Thoben | 2009-11-10 11:12:13 +0100

Adjust SAVE_DIR_PATH to work with DGL.

--------------------------------------------------------------------------------
75921593c0 | Matthew Cline | 2009-11-10 02:13:09 -0800

CrawlHashTable: reduce RAM overhead
The RAM overhead for an unused CrawlHash table has been reduced from 32
to 4 (on 32 bit systems), with an increased overhead of 4 bytes for ones
which are used.  This leads to a 35% RAM reduction for item_def
instances with an unused props field.

--------------------------------------------------------------------------------
5e9e9773f7 | Matthew Cline | 2009-11-10 02:13:09 -0800

tags: Store minorVersion in reader class
Store the minor version of a savefile being read into the reader class,
so that it doesn't need to be passed around as a method/function
parameter everywhere.

--------------------------------------------------------------------------------
2ebed5e396 | Matthew Cline | 2009-11-10 02:13:09 -0800

Brief crash output for exit() crashes
If a crash happens while exit() callbacks are being processed then just
output a bare minimum of info to stderr, since anything we might want to
reference would likely have been free'd, and we don't want to reference
free'd memory (plus information about the player, level and monsters
probably won't be of any help in tracking down a crash of that kind).

--------------------------------------------------------------------------------
4bd335dab6 | Robert Vollmert | 2009-11-10 10:31:10 +0100

Make disintegration splatter not end up behind actors.
Also not at actors' feet.

Might be even nicer to have them thrown as missiles:
You are hit by a piece of orc flesh. The giant bat is hit by
a chunk of yak flesh. The giant bat dies.

--------------------------------------------------------------------------------
aa69f6aa45 | Jude Brown | 2009-11-10 19:10:59 +1000

Oops, didn't notice the C symbol. Remove randomly extra altars in Shrines.

--------------------------------------------------------------------------------
26d7a6182a | Jude Brown | 2009-11-10 17:31:08 +1000

Fix missing include (Napkin).

--------------------------------------------------------------------------------
9420a2faa5 | David Lawrence Ramsey | 2009-11-10 00:11:25 -0600

Tweak spell flags a bit.
Brain Feed is necromantic but not unholy.  Eating someone's brain is
fitting as necromancy, but making it unholy as well is redundant.

Fake Rakshasa Summon is unholy but not necromantic.  Rakshasas are
demonic, and all other demonic summoning spells are merely unholy.

--------------------------------------------------------------------------------
6a39de14e4 | David Lawrence Ramsey | 2009-11-10 00:07:37 -0600

For artefact spellbook purposes, mark necromancy as hated by Fedhas.

--------------------------------------------------------------------------------
2377eb11de | Charles Otto | 2009-11-10 01:02:11 -0500

Make Fedhas worshipers immune to spore food destruction.

--------------------------------------------------------------------------------
5d7a50baaa | David Lawrence Ramsey | 2009-11-09 23:59:39 -0600

Add spell flag SPFLAG_HASTY, and mark hasty spells with it.

--------------------------------------------------------------------------------
e79ba3e8f2 | David Lawrence Ramsey | 2009-11-09 23:50:23 -0600

Properly mark rods and spellbooks disliked by Cheibriados.

--------------------------------------------------------------------------------
60a31bad0f | David Lawrence Ramsey | 2009-11-09 23:33:06 -0600

Tweak message for Cheibriados' restarting time.

--------------------------------------------------------------------------------
f72939d282 | David Lawrence Ramsey | 2009-11-09 23:30:47 -0600

Fix a genus check for blink frogs, and species checks for giant spores.

--------------------------------------------------------------------------------
43e85458c7 | Jude Brown | 2009-11-10 14:24:07 +1000

Make Crazy Yiuf an actual unique, combining aspects of the Mad Roy FR.
Yiuf still only appears in his cottage (generated from D:2-7), still
generates with a quarterstaff of chaos and a cloak, but is now randomly
coloured at the start of the game, and has randomised speech. You leg
down broken song!

--------------------------------------------------------------------------------
81177ef944 | Charles Otto | 2009-11-09 22:43:13 -0500

Allied giant spore behavior tweaks
Make allied spores consistently ignore 't' commands, also make them
wander unless they spot an enemy (instead of following you around until
they find an enemy).

--------------------------------------------------------------------------------
c314b43fca | Jude Brown | 2009-11-10 13:22:56 +1000

Clean up Shrines a lot!
Mostly syntax, the only major change is removing Michael from the Sif
Muna shrine and replacing with Blork the Orc.

--------------------------------------------------------------------------------
0252d85727 | David Lawrence Ramsey | 2009-11-09 19:29:52 -0600

Add punctuation and formatting fixes.

--------------------------------------------------------------------------------
871a3796a3 | Adam Borowski | 2009-11-10 01:59:33 +0100

Allow calling did_god_conduct() with no monster ref without crashing.

--------------------------------------------------------------------------------
1e6bb9e867 | Stefan O'Rear | 2009-11-09 17:03:50 -0800

Check in the save compatibility mailing

--------------------------------------------------------------------------------
ef37e50015 | Stefan O'Rear | 2009-11-09 16:38:19 -0800

Fix broken steam cloud damage (Kyrris)

--------------------------------------------------------------------------------
138af01081 | Jude Brown | 2009-11-10 09:52:40 +1000

Remove ogre from shrine_trog_oka.
Berserk ogre from a D:2-accessible Shrine is instant death for most
characters; orc warriors are not much better, so I've added in a normal
orc (which is still quite scary while berserk) as well. Also tweaked the
weapon placement slightly, and moved the exit to be closer to the entry,
allowing for quicker escape if you don't want to face the threat.

--------------------------------------------------------------------------------
a874f4a9b0 | David Lawrence Ramsey | 2009-11-09 17:18:17 -0600

Ensure only beings with MH_HOLY holiness (angels and daevas) get haloes.

--------------------------------------------------------------------------------
aac9aa113c | Robert Vollmert | 2009-11-10 00:06:31 +0100

Change some uses of viewwindow to not do monster updates.

--------------------------------------------------------------------------------
9e55c89e58 | Adam Borowski | 2009-11-09 23:28:55 +0100

Fix b0rken check for $prefix == /usr

--------------------------------------------------------------------------------
193c54187f | Adam Borowski | 2009-11-09 23:28:55 +0100

Doing distclean together with other things is a losing idea, serialize it.

--------------------------------------------------------------------------------
c35d536426 | Robert Vollmert | 2009-11-09 23:21:41 +0100

Convert main viewwindow loop to use radius_iterator.

--------------------------------------------------------------------------------
f8d69cbe96 | Robert Vollmert | 2009-11-09 23:21:41 +0100

Remove option draw_it from viewwindow.
The only use was just removed.

Also move the draw check closer to where it's used.

--------------------------------------------------------------------------------
4faab1b80e | Robert Vollmert | 2009-11-09 23:21:40 +0100

Remove call to viewwindow(false, false) from mass_enchantment.
It is unclear what that call was meant to achieve.

--------------------------------------------------------------------------------
dfda276192 | Robert Vollmert | 2009-11-09 23:21:40 +0100

Split up monster_grid into update and non-update part.

--------------------------------------------------------------------------------
d28e78dbe5 | David Lawrence Ramsey | 2009-11-09 16:01:25 -0600

Fix typo in one of Pikel's messages.  This also fixes [2894853].

--------------------------------------------------------------------------------
fa2f65b7a8 | David Lawrence Ramsey | 2009-11-09 12:58:58 -0600

Add spell flag SPFLAG_CHAOTIC, and mark all chaotic spells with it.
The list of chaotic spells is now generalized instead of being hardcoded
in is_chaotic_spell().  This is modeled somewhat after SPFLAG_UNHOLY.

--------------------------------------------------------------------------------
5204dd7710 | David Lawrence Ramsey | 2009-11-09 12:57:59 -0600

Since Corpse Rot causes rotting, mark it as a chaotic spell too.

--------------------------------------------------------------------------------
7d7193d1f2 | David Lawrence Ramsey | 2009-11-09 12:41:07 -0600

Adjust hell knights again.
They only get hellfire resistance now (with the fire resistance that
implies), and their spellbooks have been tweaked so that both contain
evil spells: the first has Throw Flame added as a complement to the
second's Bolt of Fire, and the second has Pain added as a complement to
the first's Pain.

Accordingly, the check for natural monsters' resisting hellfire has been
removed from monsters::is_evil().

--------------------------------------------------------------------------------
d04ebcaf6c | David Lawrence Ramsey | 2009-11-09 12:13:40 -0600

Reorder entries in _get_spellbook_list().

--------------------------------------------------------------------------------
0f824030c0 | David Lawrence Ramsey | 2009-11-09 11:55:00 -0600

Mark Summon Drakes as chaotic, since it can summon death drakes.

--------------------------------------------------------------------------------
4c1b42c83e | David Lawrence Ramsey | 2009-11-09 11:40:00 -0600

Mark Summon Drakes as unholy, since it can summon (evil) shadow dragons.

--------------------------------------------------------------------------------
aaf3800ab3 | David Lawrence Ramsey | 2009-11-09 11:35:02 -0600

Since miasma causes rotting, add it to the list of chaotic spells.

--------------------------------------------------------------------------------
9e4097d1fe | David Lawrence Ramsey | 2009-11-09 11:12:43 -0600

And add sanity check.

--------------------------------------------------------------------------------
4789c1cf28 | David Lawrence Ramsey | 2009-11-09 11:10:07 -0600

Simplify.

--------------------------------------------------------------------------------
0ea8572743 | David Lawrence Ramsey | 2009-11-09 11:07:29 -0600

Make _get_spellbook_list() return true if we got a list.

--------------------------------------------------------------------------------
901cd59c41 | David Lawrence Ramsey | 2009-11-09 11:01:52 -0600

Simplify check for magic-using monsters.

--------------------------------------------------------------------------------
8bb7706376 | David Lawrence Ramsey | 2009-11-09 09:41:40 -0600

Add an is_holy() function to the actor interface.
This is consistent with similar functions in that it checks not only for
MH_HOLY holiness, but whether the monster is a priest of a good god
(currently, there are none) and whether it uses holy spells (currently,
there are none after the changes described below).

Minor and Major Healing are now enchantments rather than holy spells.
The beam code treats them as such; wands of healing aren't holy items
the way e.g. wands of draining are evil items; and unholy monsters
(among others, Lom Lobon!) can cast these spells.

--------------------------------------------------------------------------------
8b0bdcb627 | Adam Borowski | 2009-11-09 14:48:20 +0100

Don't use /usr/local/games, only /usr/games and /usr/local/bin are in normal 
$PATH.

--------------------------------------------------------------------------------
2b0a18297e | Adam Borowski | 2009-11-09 14:48:14 +0100

Correct permissions on multi-user installs.

--------------------------------------------------------------------------------
9f0a0fc8b4 | Adam Borowski | 2009-11-09 13:38:40 +0100

Document most commonly used build arguments in a handy place.

--------------------------------------------------------------------------------
8881d4e48c | Adam Borowski | 2009-11-09 13:38:40 +0100

Unbreak absolute DATA/SAVEDIRs.

--------------------------------------------------------------------------------
c72ae76443 | Adam Borowski | 2009-11-09 13:38:40 +0100

Don't set a $prefix by default.  Set DATADIR/SAVEDIR if $prefix is /usr or 
/usr/local

--------------------------------------------------------------------------------
f3cad8dced | Adam Borowski | 2009-11-09 13:38:40 +0100

Special-case $prefix values of /usr and /usr/local to set bin_prefix to "games".

--------------------------------------------------------------------------------
b0abf04f6d | Adam Borowski | 2009-11-09 13:38:40 +0100

Support $DESTDIR, as needed by distro packaging. This is different from 
$prefix, since the latter leaks into the compiled binary, while the former is 
needed to install to a staging area.  Both Debian and Red Hat had to patch this 
in...

--------------------------------------------------------------------------------
288cb7259a | Adam Borowski | 2009-11-09 13:38:40 +0100

Kludge around a stray ' for syntax highlighting.

--------------------------------------------------------------------------------
efd4161864 | Adam Borowski | 2009-11-09 13:38:40 +0100

Default bin_prefix to . (the install root) on DOS and Windows.

--------------------------------------------------------------------------------
c17d319861 | Adam Borowski | 2009-11-09 13:38:39 +0100

Install files in docs/develop/levels

--------------------------------------------------------------------------------
0a0627bd38 | Adam Borowski | 2009-11-09 13:38:39 +0100

Silently ignore errors on chmod/chown.

--------------------------------------------------------------------------------
b432abd0e8 | Adam Borowski | 2009-11-09 13:38:39 +0100

Link the Windows icon into crawl.exe

--------------------------------------------------------------------------------
2633544c49 | Vsevolod Kozlov | 2009-11-09 14:58:20 +0300

Replace mons_is_pacified with monsters::pacified.

--------------------------------------------------------------------------------
9338556ebf | Vsevolod Kozlov | 2009-11-09 14:58:19 +0300

Replace mons_wont_attack with monsters::wont_attack.

--------------------------------------------------------------------------------
bf03515e22 | Jude Brown | 2009-11-09 21:56:57 +1000

Fix "Gastronok drinks a potion. Gastronok speeds up!".
Forgot to include Gastronok in the list of monsters who do not drink
potions.

--------------------------------------------------------------------------------
c4dbdd7b4d | Jude Brown | 2009-11-09 21:43:58 +1000

Tweakes to uniques.des: Lair, add Gastronok, fix Grum.
Lair:8 can be relatively as deep as 20, and as low as 8, so mark any
unique spawning between these levels as !Lair. Unfortunately,
default-depth doesn't stack with DEPTH, so it is not possible to use
this to automatically exclude Lair as a possible branch.

Also fix Grum's entry, which somehow got merged with Gastronok's, the
latters being deleted.

Finally, remove old code from the end of the file, as it is unneeded.

--------------------------------------------------------------------------------
7f311ffb3f | Matthew Cline | 2009-11-09 00:29:53 -0800

Can't enter Hell from outside the dungeon
A bit of paranoia: only allow the player to enter a Hell entrance inside
the dungeon (you.level_type == LEVEL_DUNGEON), since otherwise doing so
generates a weird Vestibule level and then crashes when saving.  I don't
think anyone is ever going to think about putting a Hell entry in a
portal vault, but just in case...

--------------------------------------------------------------------------------
970581d63a | Jude Brown | 2009-11-09 18:02:00 +1000

Fix compilation error, put note in unique.des about fixed-place uniques.

--------------------------------------------------------------------------------
283ff59362 | Matthew Cline | 2009-11-08 23:58:04 -0800

uniques.des: line-length formatting

--------------------------------------------------------------------------------
6f22c1aa22 | Jude Brown | 2009-11-09 17:51:07 +1000

Finally move unique monster placement to Lua.
See dat/uniques.des for more information and a quick run down on how
things work. Unique placement now should be roughly similar to unique
placement before; weights may need to be adjusted, but initial
statistics seem to be very, very similar.

--------------------------------------------------------------------------------
c3074999a9 | Matthew Cline | 2009-11-08 23:49:54 -0800

lm_trig.lua: "listen_to_slaves" not for globals
"listen_to_slaves" shouldn't apply to global events, only
position-dependent events.

--------------------------------------------------------------------------------
b06c289636 | Matthew Cline | 2009-11-08 23:44:52 -0800

item_pickup_change_flags: "auto" item name
item_pickup_change_flags (and the underlying DgnTriggerable) can take
the item name "auto", in which case it automatically picks the item
placed on top of the marker.

--------------------------------------------------------------------------------
dce267d966 | Stefan O'Rear | 2009-11-08 23:36:10 -0800

Reform SH to be more transparent
Before: SH was a function of items and skills.  Blocking was a function
of SH, skills, and stats.

Now: SH is a function of items, skills, and stats.  Blocking is a
function of SH and SH alone.

Your ability to block attacks in given equipment should be more or less
the same, although there will be small differences.  Condensation Shield
was doubled (since nobody uses it), Divine Shield was made to not use
intelligence.

SH values have been rescaled to be on approximately the same scale as
AC and EV.  This meant increasing the max enchant of shields to +3.

--------------------------------------------------------------------------------
6521776b1f | Matthew Cline | 2009-11-08 23:25:20 -0800

Bug 2852602: wall stopped beam gets two chances
If a wall stopped an item beam, and there was an actor right in front of
the wall, then the beam would try to hit the actor with the item, even
if the beam had already missed.

--------------------------------------------------------------------------------
b3f20c3f81 | David Lawrence Ramsey | 2009-11-09 01:21:17 -0600

Move random spellbook selection for monsters into its own function.

--------------------------------------------------------------------------------
077bd451d3 | David Lawrence Ramsey | 2009-11-08 23:55:37 -0600

Miasma is no longer tied to negative energy; don't mark it necromantic.

--------------------------------------------------------------------------------
2a25d30006 | David Lawrence Ramsey | 2009-11-08 23:54:03 -0600

Simplify.

--------------------------------------------------------------------------------
cf7c04f8ec | David Lawrence Ramsey | 2009-11-08 23:36:48 -0600

Ensure that only the Vampire Summon monster spell summons orange rats.

--------------------------------------------------------------------------------
b75566639f | Stefan O'Rear | 2009-11-08 20:53:54 -0800

EV feedback for melee: Phase Shift and helplessness

--------------------------------------------------------------------------------
cd6085dcc7 | David Lawrence Ramsey | 2009-11-08 22:49:12 -0600

Add changelog entry.

--------------------------------------------------------------------------------
1079d2e2b1 | Matthew Cline | 2009-11-08 20:42:00 -0800

monstuff.cc: Hog reversion attitude change
* Only monsters which were hostile become neutral after reverting from
  hogs when you kill Kirke, because it'd suck to lose a permanent
  ally to neutrality that way (or lose a fellow slime).

* If a reverted monster is of animal intelligence or less it will
  stay hostile, since it's not smart enough to realize that it owes
  you a debt.

--------------------------------------------------------------------------------
ca6e89921a | Matthew Cline | 2009-11-08 20:25:29 -0800

crypt.des: grey plants are called "withered"
All of the grey coloured plants which occur in the Crypt or Tomb are now
named "withered plant".

--------------------------------------------------------------------------------
282c4c46c0 | David Lawrence Ramsey | 2009-11-08 22:23:51 -0600

Tweak the power of Beogh's dancing weapons again to match the maximum.

--------------------------------------------------------------------------------
cdd501fcf0 | David Lawrence Ramsey | 2009-11-08 22:21:06 -0600

Scale up the power of Beogh's dancing weapons.

--------------------------------------------------------------------------------
7aef3e986f | Jude Brown | 2009-11-09 14:14:59 +1000

Fix typo (twb).

--------------------------------------------------------------------------------
4f6b29bae5 | Jude Brown | 2009-11-09 14:13:36 +1000

Changelog wording tweak. (dpeg, twb)

--------------------------------------------------------------------------------
5b6f31a4eb | Jude Brown | 2009-11-09 14:12:18 +1000

Death oozes leave clouds of miasma upon eating corpses and chunks (dpeg).

--------------------------------------------------------------------------------
1a44a619bb | Matthew Cline | 2009-11-08 20:02:10 -0800

lm_trig.lua: Forgot to remove master listener

--------------------------------------------------------------------------------
0d3adcf82d | Matthew Cline | 2009-11-08 19:54:11 -0800

lm_trig.lua: Master markers can listen to slaves
Master markers can now listen to events happening at slave markers by
setting the property "listen_to_slaves", and can only trigger at the
slave marker which had the event by also setting "only_at_slave".

--------------------------------------------------------------------------------
356b0c4c2f | Matthew Cline | 2009-11-08 19:54:11 -0800

l_dgn.cc: dgn.marker_at_pos()

--------------------------------------------------------------------------------
9701b3016d | Charles Otto | 2009-11-08 22:40:49 -0500

Rename Feawn
In most places Feawn is now referred to as "Fedhas," its long name
(used in the religion screen) is "Fedhas Madash"

--------------------------------------------------------------------------------
0a3c856d3d | Matthew Cline | 2009-11-08 18:04:41 -0800

random.h: More comments for defer_rand

--------------------------------------------------------------------------------
61a3e40c9b | David Lawrence Ramsey | 2009-11-08 18:45:45 -0600

Fix a few more ghost_demon struct issues with dancing weapons.
Remove unneeded reset() in the initialization function, and set
resistances properly to avoid crashes when e.g. checking poison
resistance when trying to place them in poison clouds.

--------------------------------------------------------------------------------
a7fa0ac3f1 | David Lawrence Ramsey | 2009-11-08 18:28:27 -0600

Make Beogh's creation of dancing weapons account for their new ghost_demon 
struct, as the Dance card does.

--------------------------------------------------------------------------------
5e8a2e302e | David Lawrence Ramsey | 2009-11-08 18:24:12 -0600

Simplify logic for Beogh's wrath.

--------------------------------------------------------------------------------
5e9711e3e4 | Stefan O'Rear | 2009-11-08 16:01:23 -0800

Beam feedback for Phase Shift and paralysis

--------------------------------------------------------------------------------
444cf58a14 | Stefan O'Rear | 2009-11-08 15:29:54 -0800

Add hooks to evasion for observing the size of modifiers

--------------------------------------------------------------------------------
7eb0ec4b7f | David Lawrence Ramsey | 2009-11-08 17:21:03 -0600

Remove redundant setting of ghost parameters for dancing weapons.

--------------------------------------------------------------------------------
6c99655d84 | David Lawrence Ramsey | 2009-11-08 17:18:08 -0600

Add golden eyes to Zin's eyes retribution, until the latter is properly 
reworked to not overlap with Jiyva in that respect.

--------------------------------------------------------------------------------
247a84445d | David Lawrence Ramsey | 2009-11-08 17:18:07 -0600

Use fewer local variables when creating groups of hostile monsters.

--------------------------------------------------------------------------------
a4be9baa7a | David Lawrence Ramsey | 2009-11-08 17:18:07 -0600

Reorder the parameters in mgen_data::hostile_at() to be closer to the order 
used in mgen_data(), and allow the former to specify the base monster, as the 
latter does.

--------------------------------------------------------------------------------
edc0fa1655 | Darshan Shaligram | 2009-11-09 04:06:00 +0530

Fix compile (stdint.h needed for uint*_t).

--------------------------------------------------------------------------------
6bc45a16ae | David Lawrence Ramsey | 2009-11-08 16:36:10 -0600

In Yred's retribution, replace forced Animate Dead with summoning hostile 
zombified monsters.

--------------------------------------------------------------------------------
264758cf86 | Adam Borowski | 2009-11-08 22:38:14 +0100

Install the tiles when doing a tiles install...

--------------------------------------------------------------------------------
ba4c4649a8 | Adam Borowski | 2009-11-08 22:38:14 +0100

Force the binary name to be crawl.exe on DOS.

--------------------------------------------------------------------------------
6a43fcb066 | Adam Borowski | 2009-11-08 22:38:14 +0100

Don't make DATADIR mandatory.

--------------------------------------------------------------------------------
b1a34dea62 | Adam Borowski | 2009-11-08 22:38:14 +0100

Allow overriding "bin/".  Strip on install.

--------------------------------------------------------------------------------
1444694325 | Charles Otto | 2009-11-08 16:16:38 -0500

Prevent chaos weapons from using SPWPN_CONFUSE on the player
SPWPN_CONFUSE is what confusing touch uses to inflict confusion. The
SPWPN_CONFUSE case in melee_attack::apply_damage_brand isn't set up to
work on the player, and when that case came up with the player
defending an assertion failure was triggered.

I made the case in apply_damage_brand do nothing if used on the player.
The case could be made more general, but it might make sense to
implement a confuse brand specifically for chaose weapons since the
HD check used for confusing touch isn't consistent with how the other
chaos-weapon-caused status effects work.

--------------------------------------------------------------------------------
c445956fab | Robert Vollmert | 2009-11-08 22:11:20 +0100

Revert "Make get_symbol() a little clearer."
This reverts commit c4a0e05b9d3328834444e374a89d354ee0536396.

Haven't managed to find out what's wrong with that one, but it
breaks map memory badly.

--------------------------------------------------------------------------------
3af1c1befe | Robert Vollmert | 2009-11-08 21:55:59 +0100

FIXME comment.

--------------------------------------------------------------------------------
82089b877c | Robert Vollmert | 2009-11-08 21:47:09 +0100

Remove unneeded colour argument from a variant of get_symbol.

--------------------------------------------------------------------------------
8b6f27f551 | Robert Vollmert | 2009-11-08 21:38:13 +0100

Fix findray test.
There's a conflict between you.see_cell_no_trans and
los.find_ray with default argument opc_solid. As a quick fix,
make los.find_ray use opc_no_trans, but this doesn't increase
the general usefulness of los.find_ray...

--------------------------------------------------------------------------------
c4a0e05b9d | Robert Vollmert | 2009-11-08 21:38:13 +0100

Make get_symbol() a little clearer.

--------------------------------------------------------------------------------
0d955f6437 | David Lawrence Ramsey | 2009-11-08 14:30:42 -0600

Make monsters::body_size() take merged slime creatures into account.

--------------------------------------------------------------------------------
e4ed21470a | David Lawrence Ramsey | 2009-11-08 14:13:17 -0600

When mutiplying/dividing by slime creatures' number, check if it's greayer than 
1, to avoid redundant operations.

--------------------------------------------------------------------------------
f5c61bd43b | Charles Otto | 2009-11-08 14:55:42 -0500

Fix a crash when the player is hit by a distortion weapon

--------------------------------------------------------------------------------
9aa4d9bc6f | David Lawrence Ramsey | 2009-11-08 13:52:49 -0600

Reformat entries in mon-data.h to be a bit more readable, and not to use overly 
long lines.

--------------------------------------------------------------------------------
83b6c39b53 | David Lawrence Ramsey | 2009-11-08 13:41:27 -0600

Give Blork the orc speed 10, for consistency with other orcs.

--------------------------------------------------------------------------------
e42d6650b3 | David Lawrence Ramsey | 2009-11-08 13:37:02 -0600

Give Saint Roka high intelligence.
He's supposed to be better than orc high priests, which have it.

--------------------------------------------------------------------------------
94f10ef125 | David Lawrence Ramsey | 2009-11-08 13:27:56 -0600

Sort the non-human uniques in mon-data.h by symbol again.

--------------------------------------------------------------------------------
5eeb2563be | David Lawrence Ramsey | 2009-11-08 13:27:56 -0600

Add a few more sanity checks for slime creatures' number.

--------------------------------------------------------------------------------
b0c4420a21 | Charles Otto | 2009-11-08 14:18:31 -0500

Make Psyche actually get a chaos or distortion weapon
The brand given to Psyche's weapon was getting overridden farther along
in _give_weapon

--------------------------------------------------------------------------------
58b3ab725d | Adam Borowski | 2009-11-08 20:04:10 +0100

Split away monsters' starting gear from makeitem.cc to mon-gear.cc

--------------------------------------------------------------------------------
44191bee0b | Robert Vollmert | 2009-11-08 20:05:47 +0100

Fix halo_contains always returning true for the actor.
There was a check of distance <= radius squared, which always
passed for radius 0.

--------------------------------------------------------------------------------
302c451890 | David Lawrence Ramsey | 2009-11-08 13:04:46 -0600

Make monsters::body_weight() take merged slime creatures into account.

--------------------------------------------------------------------------------
ae03dd1f95 | David Lawrence Ramsey | 2009-11-08 12:56:39 -0600

After some thought, don't allow Prince Ribbit to be polymorphed into a human.  
It could go the other way, with an appropriate message for when you do so, but, 
in order to avoid duplicate messages if he gets polymorphed multiple times, 
whether he's been turned into a human once will have to be saved in-game, and 
breaking savegame compatibility for this little bit of flavor seems like 
overkill to me.

--------------------------------------------------------------------------------
8b360b6347 | David Lawrence Ramsey | 2009-11-08 12:56:39 -0600

Move blink frogs into their own genus, in order to make checks for both blink 
frogs and Prince Ribbit in blink frog form consistent (i.e., so if Prince 
Ribbit is polymorphed into another form, he'll no longer erroneously act like a 
blink frog in some cases).

--------------------------------------------------------------------------------
de0dc3b6be | David Lawrence Ramsey | 2009-11-08 12:56:39 -0600

Constify a variable in acotr::check_res_magic().

--------------------------------------------------------------------------------
8adcc3ba10 | Robert Vollmert | 2009-11-08 19:52:37 +0100

Revert actor::haloed() to be player-halo specific again.
There's something buggy in haloers, apparently. Also, the
constant calls to haloers appear to be too expensive.

--------------------------------------------------------------------------------
b2af62384d | Robert Vollmert | 2009-11-08 19:46:20 +0100

Formatting; use better constant.

--------------------------------------------------------------------------------
03d23bd4a5 | Robert Vollmert | 2009-11-08 19:46:20 +0100

Remove obsolete losight_permissive.

--------------------------------------------------------------------------------
ddbab5049a | Robert Vollmert | 2009-11-08 19:46:19 +0100

Remove dead code.

--------------------------------------------------------------------------------
eb9ddc3ba3 | Robert Vollmert | 2009-11-08 19:46:19 +0100

Get rid of a few uses of mon_see_cell.

--------------------------------------------------------------------------------
3ba101e847 | Vsevolod Kozlov | 2009-11-08 21:25:49 +0300

Replace uses of player_can_swim with player::can_swim.

--------------------------------------------------------------------------------
4fd3b662d0 | David Lawrence Ramsey | 2009-11-08 12:15:23 -0600

Give quasits normal intelligence; no other demon has less than that.

--------------------------------------------------------------------------------
bffb9c894f | David Lawrence Ramsey | 2009-11-08 11:58:02 -0600

Make iron trolls shout instead of roar.
This is consistent with all other trolls.

--------------------------------------------------------------------------------
c5e8ee7470 | David Lawrence Ramsey | 2009-11-08 11:51:25 -0600

Give kobold demonologists and Erolcha high intelligence.
This is consistent with other ogre magi and other demonologists.

--------------------------------------------------------------------------------
615038114f | Stefan O'Rear | 2009-11-08 09:45:24 -0800

Remove the bias from random2()
Worst case for the old version was random2(65535) == 65534, which had a
1 in 2^30 chance of being true.

--------------------------------------------------------------------------------
d591b00625 | Stefan O'Rear | 2009-11-08 09:26:10 -0800

Implement Eronarn's demonspawn generator
At 6am last night it all made sense, and except for the skill influence which
I'll need to confer with dpeg on, this is in.  Rough outline:

1. Pick facets by tier, each facet consists of 1-3 mutations, tiers are
   associated with mutation/level pairs.

2. Order mutations; you will not be gaining mutations for more than two
   tiers at a time.

3. Schedule mutations, with some probability of overlap.

--------------------------------------------------------------------------------
4f700904d0 | David Lawrence Ramsey | 2009-11-08 11:24:10 -0600

Comment out the unused monster flag in mon-util.h.

--------------------------------------------------------------------------------
0909f7ded4 | Robert Vollmert | 2009-11-08 17:26:39 +0100

Get rid of los_param::appearance.
This is not required anymore since we just store bools in
los_grid.

--------------------------------------------------------------------------------
68d87e76cd | Robert Vollmert | 2009-11-08 17:23:31 +0100

env_show_grid is now only used inside the LOS code.
It's also called los_grid, and is a SquareArray of boolean since it
doesn't need to store "objects" any more.

--------------------------------------------------------------------------------
6bdaccfb8c | Robert Vollmert | 2009-11-08 17:01:14 +0100

Move see_cell_no_trans into player.
Also collect actor/player LOS code in actor-los.cc.

--------------------------------------------------------------------------------
19c3c95b8d | Robert Vollmert | 2009-11-08 15:57:59 +0100

Add opc_no_trans and use that for see_cell_no_trans.
The difference between no_trans and solid is whether granite statues are
considered opaque.

Granite statues are somewhat weird in that they behave completely differently
from other statues: You can't shoot missiles at or past them, no items can be
in their cell, etc.

--------------------------------------------------------------------------------
e0fbec4e41 | Vsevolod Kozlov | 2009-11-08 17:55:47 +0300

Remove declaration of player_wielded_item.

--------------------------------------------------------------------------------
a03c6336aa | Vsevolod Kozlov | 2009-11-08 17:40:48 +0300

behold.cc: Don't use 'you' in methods of player.

--------------------------------------------------------------------------------
d57125aef7 | Vsevolod Kozlov | 2009-11-08 17:25:40 +0300

Remove unused armour_not_shiny.

--------------------------------------------------------------------------------
56d5d35905 | Vsevolod Kozlov | 2009-11-08 17:21:20 +0300

Remove unused armour_str_required.

--------------------------------------------------------------------------------
fd202fad96 | Vsevolod Kozlov | 2009-11-08 17:04:28 +0300

Replace uses of spelltype_name with spelltype_long_name.

--------------------------------------------------------------------------------
28f6c800df | Robert Vollmert | 2009-11-08 14:46:22 +0100

Split map knowledge and FPROPs.
map_cell no longer has the field "properties", which has been
replaced by the unsigned long array env.pgrid.

env.map has been renamed to env.map_knowledge. It should really
be moved into player.

--------------------------------------------------------------------------------
a4eda3c37b | Vsevolod Kozlov | 2009-11-08 16:32:21 +0300

Use this instead of &you in player::melee_evasion.

--------------------------------------------------------------------------------
ce42ec3ebf | Vsevolod Kozlov | 2009-11-08 16:20:49 +0300

Replace uses of player_AC with player::armour_class.

--------------------------------------------------------------------------------
5562dfc2a3 | Stefan O'Rear | 2009-11-08 05:14:12 -0800

Relax the one mutation per level rule for DS
Breaks saves.

--------------------------------------------------------------------------------
5d78f4fbac | Vsevolod Kozlov | 2009-11-08 15:57:39 +0300

Replace mons_cannot_act with monsters::cannot_act.

--------------------------------------------------------------------------------
d43819dd41 | Vsevolod Kozlov | 2009-11-08 15:51:58 +0300

Replace mons_cannot_move with monsters::cannot_move.

--------------------------------------------------------------------------------
63ee0e170c | Vsevolod Kozlov | 2009-11-08 15:47:06 +0300

Replace mons_is_petrifying with monsters::petrifying.

--------------------------------------------------------------------------------
b6b37f3ffd | Stefan O'Rear | 2009-11-08 04:06:56 -0800

Fix a stupid bug in defer_rand::random2avg

--------------------------------------------------------------------------------
4c4e2fa260 | Stefan O'Rear | 2009-11-08 03:54:06 -0800

Fix message order when training shields on a miss

--------------------------------------------------------------------------------
53585ee588 | Vsevolod Kozlov | 2009-11-08 14:38:30 +0300

Remove unused check_armour_shape.

--------------------------------------------------------------------------------
ef0e98055f | Stefan O'Rear | 2009-11-08 03:38:23 -0800

Give feedback when repel or deflect missiles did anything.

--------------------------------------------------------------------------------
640eb1e648 | Stefan O'Rear | 2009-11-08 03:38:23 -0800

A nifty new abstraction for the RNG: defer_rand
A defer_rand object stores random numbers in a resolution-independant
fashion, providing interesting monotonicity guarantees.  See the next
patch for a good use.

--------------------------------------------------------------------------------
025b87d903 | Vsevolod Kozlov | 2009-11-08 14:29:00 +0300

Remove unused transform_can_equip_type.

--------------------------------------------------------------------------------
e2f498423c | Vsevolod Kozlov | 2009-11-08 13:49:33 +0300

Remove unused check_jewellery_size.

--------------------------------------------------------------------------------
749d086b94 | Jude Brown | 2009-11-08 20:12:14 +1000

float.des: Remove some blank lines from some vaults.

--------------------------------------------------------------------------------
a5f05f0a4c | Matthew Cline | 2009-11-08 02:08:48 -0800

describe.cc: Fix compile error.

--------------------------------------------------------------------------------
23433172af | Robert Vollmert | 2009-11-08 10:43:24 +0100

Give holy monsters a small halo.
This is mostly an experiment to see if the latest changes work.
Feel free to improve on this.

--------------------------------------------------------------------------------
2c53503bb6 | Robert Vollmert | 2009-11-08 10:37:06 +0100

Enable proper monster LOS.
monsters::see_cell replaced by actor::see_cell. monsters::update_los
called once per turn in handle_monsters -- this might not suffice.

There's still monsters::mon_see_cell etc. waiting to be converted.

--------------------------------------------------------------------------------
24c51a72c7 | Robert Vollmert | 2009-11-08 10:36:55 +0100

Add forgotten halo.h.

--------------------------------------------------------------------------------
47b88fd8a6 | Robert Vollmert | 2009-11-08 10:25:30 +0100

Generalize feature colouring to use any actor halo.
This may be too expensive with haloers() implemented as now.

--------------------------------------------------------------------------------
0ccae520b8 | Robert Vollmert | 2009-11-08 10:22:51 +0100

actor::haloed() now returns whether the actor is within any halo.
This may not always be what is meant.

--------------------------------------------------------------------------------
0869a80df1 | Robert Vollmert | 2009-11-08 10:14:16 +0100

Rename some halo functions.

--------------------------------------------------------------------------------
06004d1b28 | Robert Vollmert | 2009-11-08 10:12:37 +0100

Global inside_halo(c) giving list of haloers.

--------------------------------------------------------------------------------
6a883aea39 | Robert Vollmert | 2009-11-08 10:02:38 +0100

Add a general halo interface to actor.
Also convert the TSO halo to use this. actor::haloed() is still
specific to the player TSO halo.

--------------------------------------------------------------------------------
14710e6fd4 | Vsevolod Kozlov | 2009-11-08 11:57:07 +0300

Remove unused SPELL_DISRUPT and ZAP_DISRUPTION.

--------------------------------------------------------------------------------
eeb424b3d3 | Vsevolod Kozlov | 2009-11-08 11:50:19 +0300

Remove // <number> comments from the spells enum.
They were wildly inaccurate.

--------------------------------------------------------------------------------
a927523e75 | Stefan O'Rear | 2009-11-08 00:47:41 -0800

Remove duplicated logic for DMsl/RMsl
Also fix a bug where Kirke's DMsl was incorrect for bolts.

--------------------------------------------------------------------------------
a103e213a8 | Stefan O'Rear | 2009-11-08 00:47:40 -0800

Remove some code duplication

--------------------------------------------------------------------------------
0e18c9cc6e | Vsevolod Kozlov | 2009-11-08 11:33:57 +0300

Remove SPFLAG_DEVEL and the only spell that had it set, Disrupt.

--------------------------------------------------------------------------------
f52c2f9713 | Vsevolod Kozlov | 2009-11-08 11:33:57 +0300

Remove unused is_tool.

--------------------------------------------------------------------------------
d0b1ebb446 | Matthew Cline | 2009-11-08 00:25:51 -0800

fight: Generate noise on fighting
Very rough draft of "make noise when fighting".  Needs extensive
play-testing and tuning.  Noise scales linearly with damage done, and
also linearly with noise_factor, which is determined by weapon type
(clubs make more noise than dagger) or monster attack type (tail slaps
make more noise than stinging).  Plus, a litle extra noise is added on
for the flaming and electrocution brands.

--------------------------------------------------------------------------------
5bbad271f4 | Matthew Cline | 2009-11-08 00:25:51 -0800

fight: base_damage member unused, removing

--------------------------------------------------------------------------------
af639057a6 | Robert Vollmert | 2009-11-08 09:15:47 +0100

Convert reflect_grid to SquareArray.

--------------------------------------------------------------------------------
037aedaee6 | Robert Vollmert | 2009-11-08 09:15:47 +0100

Add unary negation operator to coord_def.

--------------------------------------------------------------------------------
8f7f707125 | Robert Vollmert | 2009-11-08 09:15:47 +0100

Add variant SquareArray of FixedArray.
SquareArray is indexed in local coordinates and is specified by
RADIUS. Valid indices are (-RADIUS,-RADIUS) to (RADIUS,RADIUS),
size 2*RADIUS+1 x 2*RADIUS+1.

--------------------------------------------------------------------------------
9255dd6cfa | Brendan Hickey | 2009-11-08 17:44:15 +1000

Patch to satisfy FR 2892713. Hunger on wielding VAMP weapons
They are now wieldable by mummies and ghouls, but no healing effect. Vampires 
get nourished per hit.

Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
7401f365d1 | Jude Brown | 2009-11-08 17:32:53 +1000

Tweak Pikel's whip stats (sorear).
That'll teach me to copy and paste code!

--------------------------------------------------------------------------------
75c9dc3f07 | Charles Otto | 2009-11-08 02:28:10 -0500

Give ogre mages haste other

--------------------------------------------------------------------------------
e4305add25 | Steven Noonan | 2009-11-07 23:09:57 -0800

menu.cc: add missing include
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ee575f8e41 | David Lawrence Ramsey | 2009-11-08 00:00:59 -0600

Redraw the wielded weapon when first gaining necromancy skill, in case it's a 
weapon of pain.

--------------------------------------------------------------------------------
227c7f40fc | David Ploog | 2009-11-08 06:25:44 +0100

Split up level_design.txt into smaller files.
Namely introduction.txt, syntax.txt, advanced.txt all inside of
docs/develop/levels.

--------------------------------------------------------------------------------
1c0a611a9e | Eino Keskitalo | 2009-11-07 23:21:21 -0600

Merge from chaotic_experiment branch:
Replace mons_is_shapeshifter(const monsters *m) in mon-util.cc with 
is_shapeshifter() in monster.cc

--------------------------------------------------------------------------------
ee4d8d69cd | Matthew Cline | 2009-11-07 21:05:59 -0800

Different launchers make different amount of noise

--------------------------------------------------------------------------------
5f88766c2a | Jude Brown | 2009-11-08 14:30:55 +1000

New unique: Pikel, the big kobold slaver.
Appears from D:4 through D:9, and comes with a band of human slaves.
They will turn neutral (and be pacified, granting 1/2 EXP) if you
destroy Pikel before destroying them. Pikel generates with a whip
(either flaming or pain), and a black robe.

The "pikel_band_neutralise()" function is quite hacky and assumes that
all MONS_HUMANS with MF_BAND_MEMBER are part of Pikel's band. This
should be changed as soon as there is a better way of tracking who is in
what band.

--------------------------------------------------------------------------------
4915a3d61f | David Lawrence Ramsey | 2009-11-07 22:24:48 -0600

Remove mons_is_holy(), as it's redundant.

--------------------------------------------------------------------------------
6b3f882a81 | Matthew Cline | 2009-11-07 18:41:34 -0800

monstuff.cc: Death-by-explosion message
Give a different message if a monster is killed by a wand of
disintegration.

--------------------------------------------------------------------------------
ce06b541a0 | Matthew Cline | 2009-11-07 18:27:27 -0800

beam.cc: don't porkulate ghost-using monsters

--------------------------------------------------------------------------------
52b47e9dd0 | Jude Brown | 2009-11-08 12:14:23 +1000

Change hard-coded _give_wand exceptions to class flags.
New class flags: M_NO_WAND. Do not give this unique a wand. Currently
applied to Gastronok, removing the hard-coded exception. M_NO_HT_WAND:
don't give a high-tier wand to this monster, even if their HD is 5 or
higher.

--------------------------------------------------------------------------------
9d183aa841 | Matthew Cline | 2009-11-07 17:25:16 -0800

Bug 2891630: hogs awlays revert to humans
If Kirke turned a monster into a hog, it would always revert into a
human, regardless of what it originally was.  Now it remembers the
original form.  It has some problems (noted in _hogs_to_humans()), but
since they turn neutral on reverting these problems shouldn't affect
gameplay too much.

--------------------------------------------------------------------------------
b33014e551 | Robert Vollmert | 2009-11-08 01:41:41 +0100

Replace bounds_func with circle_def.
The various LOS objects and functions now accept a circle_def
instead of a bounds_func. This is a little less generic, but
should eventually help with iterating over coordinates in
any los_def.

--------------------------------------------------------------------------------
dbb39bdfc8 | Robert Vollmert | 2009-11-08 01:41:37 +0100

Create coord-circle.cc containing circle_def.
circle_def unifies the shapes that a radius_iterator can iterate
over. It's meant to replace bounds_func in losparam.h and eventually
provide a base for radius_iterator.

--------------------------------------------------------------------------------
ef9199151b | Robert Vollmert | 2009-11-08 01:31:42 +0100

Formatting.

--------------------------------------------------------------------------------
9fe79e18ac | Robert Vollmert | 2009-11-08 01:31:42 +0100

Remove debugging code from losparam.h.

--------------------------------------------------------------------------------
85c17b8719 | Robert Vollmert | 2009-11-08 01:31:42 +0100

Shortcut indirect include.

--------------------------------------------------------------------------------
d6ce2c2506 | Robert Vollmert | 2009-11-08 01:31:41 +0100

Remove an unnecessary header env.h include.

--------------------------------------------------------------------------------
1cce7a8e92 | Robert Vollmert | 2009-11-08 01:31:41 +0100

Remove externs include from itemprop.h.

--------------------------------------------------------------------------------
69adf77de8 | Robert Vollmert | 2009-11-08 01:31:41 +0100

Slight formatting cleanup in AppHdr.h.

--------------------------------------------------------------------------------
4fdde140f0 | Robert Vollmert | 2009-11-08 01:31:41 +0100

Fix godabil.h define type.

--------------------------------------------------------------------------------
05c8dfaba3 | Robert Vollmert | 2009-11-08 01:31:41 +0100

Remove player.h dependency from coordit.h.
adjacent_iterator had a default center of you.pos(), which is now
gone (also the uses of).

I was running into circular header dependencies with actor.h
including los_def.h including coordit.h including player.h including
actor.h.

--------------------------------------------------------------------------------
5a1a9596b2 | Charles Otto | 2009-11-07 18:40:44 -0500

Fix the vestibule exit portal

--------------------------------------------------------------------------------
b0df4ca970 | Matthew Cline | 2009-11-07 15:36:05 -0800

ctest.cc: give msg on test being run

--------------------------------------------------------------------------------
6b6ba7b163 | Charles Otto | 2009-11-07 18:11:24 -0500

Avoid an infinite loop in tilse related to Feawn neutralizing plants
Avoid an infinite loop caused caused by calling remove_auto_exclude on
plants that get neutralized by Feawn. feawn_neutralise is called via
viewwindow, and it was calling remove_auto_exclude, in tiles
remove_auto_exclude calls viewwindow creating an infinite loop.

Instead of calling  remove_auto_exclude directly I added an attitude
check to maybe_remove_autoexclusion which is (safely) called from
viewwindow already.

--------------------------------------------------------------------------------
1b6b5735d0 | Matthew Cline | 2009-11-07 15:04:28 -0800

articles.txt: organization, GPG signed tags

--------------------------------------------------------------------------------
646aac1367 | Matthew Cline | 2009-11-07 15:01:58 -0800

docs/develop: move git files to subdir

--------------------------------------------------------------------------------
37f3b6a119 | Stefan O'Rear | 2009-11-07 14:58:31 -0800

Properly ID vamp weapons on wield failure

--------------------------------------------------------------------------------
87fab62dd1 | Stefan O'Rear | 2009-11-07 14:53:03 -0800

Add major cosmetic fixes

--------------------------------------------------------------------------------
397ab12c5b | Stefan O'Rear | 2009-11-07 14:49:09 -0800

Vampiricism tweaks per FR#2892713

--------------------------------------------------------------------------------
e155ef1258 | Charles Otto | 2009-11-07 16:45:50 -0500

Fix the floor not getting drawin in tiles.

--------------------------------------------------------------------------------
f4fae4b563 | Adam Borowski | 2009-11-07 21:33:57 +0100

Increase the hunger hit of troll armour, to be consistent with rings of regen.

--------------------------------------------------------------------------------
5775da5b7d | Vsevolod Kozlov | 2009-11-07 20:00:56 +0100

Remove unused weapon_impact_mass and weapon_str_required.

--------------------------------------------------------------------------------
3c9fa6372b | Vsevolod Kozlov | 2009-11-07 20:00:44 +0100

Remove unused is_colourful_item.

--------------------------------------------------------------------------------
5e294c8cc2 | Vsevolod Kozlov | 2009-11-07 19:24:19 +0100

Remove unused get_inv_wielded and get_inv_in_hand.

--------------------------------------------------------------------------------
5d2a499bab | Vsevolod Kozlov | 2009-11-07 19:24:10 +0100

Remove unused check_weapon_shape.

--------------------------------------------------------------------------------
d84e50da7a | Vsevolod Kozlov | 2009-11-07 19:24:00 +0100

Remove unused check_weapon_tool_size and get_inv_hand_tool.

--------------------------------------------------------------------------------
63c1479a6d | Vsevolod Kozlov | 2009-11-07 19:23:49 +0100

Remove unused is_double_ended and double_wpn_awkward_speed.

--------------------------------------------------------------------------------
816b651b68 | Vsevolod Kozlov | 2009-11-07 18:47:53 +0100

Replace uses of get_player_wielded_{item,weapon} with player::weapon.

--------------------------------------------------------------------------------
553ef80b59 | Adam Borowski | 2009-11-07 18:41:16 +0100

Fix coinflips, in Lua 0 is true (Mu_)

--------------------------------------------------------------------------------
2d9adfea3d | Adam Borowski | 2009-11-07 18:34:29 +0100

Double Cheibriados' slow meta to half of a ring of sustenation.

--------------------------------------------------------------------------------
e4c1104b77 | Adam Borowski | 2009-11-07 18:31:25 +0100

Remove extra hunger from rings of regeration when you're at full hp. Increase 
the hunger when the rings work to compensate.

--------------------------------------------------------------------------------
2ac4093ff9 | Vsevolod Kozlov | 2009-11-07 10:42:15 -0500

Replace mons_is_summoned with monsters::is_summoned.
Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
96b804bb7a | Vsevolod Kozlov | 2009-11-07 22:21:47 +1000

Replace uses of mons_is_icy with monsters::is_icy.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
dac82a0df3 | Matthew Cline | 2009-11-07 04:14:02 -0800

lair.des: "plant" -> "strawberry plant"
Name the plants in the "strawberry fields" vaults "strawberry plant"
instead of plain "plant".

--------------------------------------------------------------------------------
37b6c1ad5f | Matthew Cline | 2009-11-07 04:12:47 -0800

wiz-dgn.cc: Check for out-of-bounds maps
If you try to place a map right on top of you (&L *vault_name) then
check to make sure than this wouldn't place any of the map
out-of-bounds.

--------------------------------------------------------------------------------
cbcaadf4ed | Matthew Cline | 2009-11-07 03:42:40 -0800

los.cc: Get rid of uninitialized warning

--------------------------------------------------------------------------------
10af6d0aea | Matthew Cline | 2009-11-07 03:39:41 -0800

makefile: New variable EXTERNAL_DEFINES
You can use EXTERNAL_DEFINES on the make command line to add -DFOO
defines which will be picked up by fastdep.

--------------------------------------------------------------------------------
0436dabebd | Jude Brown | 2009-11-07 21:02:40 +1000

Remove lm_func.lua and FunctionMachines.
These have been replaced TriggerableFunctions, which provide much more
flexibility.

--------------------------------------------------------------------------------
dc35d7b1ac | Jude Brown | 2009-11-07 21:01:06 +1000

Convert the_teleporter to use TriggerableFunction.

--------------------------------------------------------------------------------
9e7d6a830a | Jude Brown | 2009-11-07 21:00:42 +1000

"Tloc energy" -> "Translocational energy".
Must be referred to by its full name.

--------------------------------------------------------------------------------
d991a1b684 | Jude Brown | 2009-11-07 20:33:55 +1000

Convert Overflow map to TriggerableFunction.

--------------------------------------------------------------------------------
d351be2e98 | Jude Brown | 2009-11-07 20:32:48 +1000

Make TriggerableFunction's data parameter always a table.
And make it use lmark.marshall_table and lmark.unmarshall_table instead.

--------------------------------------------------------------------------------
7a869a2b8f | Vsevolod Kozlov | 2009-11-07 20:09:50 +1000

Replace mons_strict_neutral with monsters::strict_neutral.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
cef3b84219 | Jude Brown | 2009-11-07 20:04:15 +1000

Add check to stop tw_machine from firing constantly.

--------------------------------------------------------------------------------
ef68100a9c | Vsevolod Kozlov | 2009-11-07 19:52:54 +1000

Replace mons_good_neutral with monsters::good_neutral.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
3232b4719e | Vsevolod Kozlov | 2009-11-07 19:52:53 +1000

Replace mons_neutral with monsters::neutral.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
19c21942c0 | Matthew Cline | 2009-11-07 01:39:30 -0800

volcano.des: Use Triggerable master/slave code
Change to using the Triggerable builtin master/slave framework, and also
to using TriggerableFunction instead of FunctionMachine.
clua/lm_mslav.lua and clua/lm_func.lua are now not being used for
anything.

--------------------------------------------------------------------------------
08b73995ad | Matthew Cline | 2009-11-07 01:39:30 -0800

lm_fog.lua: now a Triggerable subclass

--------------------------------------------------------------------------------
46317865c8 | Matthew Cline | 2009-11-07 01:39:30 -0800

lm_trig.lua: turn and enter event, listeners
Triggerable now handles listeners, and DgnTriggerer now handles turn and
entered_level events.  For turn events, DgnTriggerer also handles
randomized, repeating countdowns.

Also added a TriggerableFunction class.

--------------------------------------------------------------------------------
61f9fdc9f2 | Jude Brown | 2009-11-07 19:17:47 +1000

Fix weird dialogue issues with Dowan and Duvessa.
@at_foe@ is replaced with "at @foe@" for ally-targetted speech, or ""
for player-targetted speech.

--------------------------------------------------------------------------------
2f21ea04c4 | Vsevolod Kozlov | 2009-11-07 18:42:53 +1000

Replace player_weapon with player::weapon.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
f2a54d7ab1 | Vsevolod Kozlov | 2009-11-07 18:42:47 +1000

Replace player_shield with player::shield.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
0041be617c | Vsevolod Kozlov | 2009-11-07 18:42:34 +1000

Remove unused player_slot_item.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
5026a1be87 | Robert Vollmert | 2009-11-07 09:26:05 +0100

Split los_def implementation out into los_def.cc.

--------------------------------------------------------------------------------
dc74095a57 | Robert Vollmert | 2009-11-07 09:11:50 +0100

Get rid of env.show_los.

--------------------------------------------------------------------------------
96944cb324 | Steven Noonan | 2009-11-06 23:26:01 -0800

makefile: cleanup, simplify, and optimize dependency generation
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
66bf04b844 | Robert Vollmert | 2009-11-07 08:13:18 +0100

Fix moves.target getting out of sync with ray in targetting.
This was causing ASSERTs in tiles (BR 2886295). Also, beams
weren't getting drawn when mouse-targetting.

Now tracking ray target separately from moves.target.
Also some slight cleanup. More needed.

--------------------------------------------------------------------------------
77a32300cd | Robert Vollmert | 2009-11-07 07:13:17 +0100

Change a bunch of you.can_see(mon) to mon->observable.
Without player LOS, this was causing messaging errors in
the arena.

--------------------------------------------------------------------------------
eba334b16c | Robert Vollmert | 2009-11-07 07:13:17 +0100

Make player use actor LOS instead of env.show_los.

--------------------------------------------------------------------------------
10273d6339 | Robert Vollmert | 2009-11-07 07:13:17 +0100

Give actors their own LOS.

--------------------------------------------------------------------------------
a8aa8b394e | Robert Vollmert | 2009-11-07 07:13:17 +0100

los_def: Implement default constructor and initialize field show.

--------------------------------------------------------------------------------
65399d69a3 | Robert Vollmert | 2009-11-07 07:13:16 +0100

Add default value constructor to FixedArray.

--------------------------------------------------------------------------------
fbec546219 | Robert Vollmert | 2009-11-07 07:13:16 +0100

Split out los_def into separate header file.

--------------------------------------------------------------------------------
7e656bd3d6 | Steven Noonan | 2009-11-06 21:51:45 -0800

rltiles/makefile: pay attention to appropriate ARCHS flags
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d485fefd26 | Steven Noonan | 2009-11-06 21:11:28 -0800

makefile: util/*.o should also pay attention to CFLAGS changes
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a3d33d748c | Steven Noonan | 2009-11-06 21:02:22 -0800

makefile: rebuild .d files and contribs if CFLAGS change
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
31558c55c9 | Steven Noonan | 2009-11-06 21:02:22 -0800

makefile: build native arch on Mac OS X
The previous default was 'i386', but that obviously wouldn't go
well on a PowerPC machine.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2073e99f24 | Steven Noonan | 2009-11-06 21:02:22 -0800

makefile: change ARCHS variable to use literal archs rather than flags
i.e. ARCHS="-arch i386 -arch ppc" is now ARCHS="i386 ppc"

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
515f957a67 | Steven Noonan | 2009-11-06 21:02:21 -0800

makefile: unify two Darwin-specific sections
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
35c879c6f7 | Jude Brown | 2009-11-07 14:20:37 +1000

Fix a few more mising includes.

--------------------------------------------------------------------------------
4809b6908d | Matthew Cline | 2009-11-06 20:00:44 -0800

Forgot to include some include files
Didn't check compilation with DEBUG_DIAGNOSITCS (oops)

--------------------------------------------------------------------------------
3807330ab5 | Matthew Cline | 2009-11-06 19:50:29 -0800

mon-cast: fix is_valid_mon_spell()
is_valid_mon_spell() should now correctly return true for non-targetted
monster spells.

--------------------------------------------------------------------------------
e665413aeb | Jude Brown | 2009-11-07 13:46:06 +1000

Remove generalised quote for nagas due to length restriction.
The quote doesn't show up for any naga now due to the combination of its
length, and of the extended length of descriptions (statistics,
resistances, etc). It should be replaced with a shorter one.

--------------------------------------------------------------------------------
889a46f0ec | David Lawrence Ramsey | 2009-11-06 21:29:09 -0600

Simplify the formula for Jiyva-worshipping players' royal jelly spawns.

--------------------------------------------------------------------------------
be871d682e | Matthew Cline | 2009-11-06 19:26:31 -0800

Split up debug.cc

--------------------------------------------------------------------------------
8051b93a75 | Matthew Cline | 2009-11-06 19:25:35 -0800

showsymb.cc: Fix compilation errror.

--------------------------------------------------------------------------------
799b97da52 | Charles Otto | 2009-11-06 21:45:52 -0500

Simplify rain and sunlight a bit
Use dungeon_terrain_changed in rain and sunlight, inflict and remove
ENCH_AQUATIC_LAND solely in monsters::apply_location_effects.

Make sunlight alert monsters it affects.

--------------------------------------------------------------------------------
eef51d7a1e | Charles Otto | 2009-11-06 21:32:10 -0500

Move Feawn's abilities to godabil.h/cc

--------------------------------------------------------------------------------
5ba6135921 | Charles Otto | 2009-11-06 21:32:08 -0500

Generalize monster targeting of beneficial spells slightly.

--------------------------------------------------------------------------------
3a5f25a4a7 | Stefan O'Rear | 2009-11-06 18:09:30 -0800

Remove the relation between royal jelly spawns and attack sizes
It was too scummable, especially with Sticky Flames.

--------------------------------------------------------------------------------
0d1d7bc953 | Matthew Cline | 2009-11-06 18:01:50 -0800

externs.h: Move monsters class forward declare
The forward declaration of the monsters class wasn't early enough in the
file.

--------------------------------------------------------------------------------
35cf70955a | David Lawrence Ramsey | 2009-11-06 19:31:24 -0600

Update the list of brands that TSO's weapon blessing can override.

--------------------------------------------------------------------------------
416e70038e | David Lawrence Ramsey | 2009-11-06 18:45:16 -0600

Simplify.

--------------------------------------------------------------------------------
24998da9e6 | David Lawrence Ramsey | 2009-11-06 18:39:12 -0600

Remove trailing whitespace.

--------------------------------------------------------------------------------
c03846e341 | David Lawrence Ramsey | 2009-11-06 18:34:53 -0600

Make messages consistent between opening and closing doors.

--------------------------------------------------------------------------------
28873b06f5 | David Lawrence Ramsey | 2009-11-06 18:32:23 -0600

Use coord_defs in one more place.

--------------------------------------------------------------------------------
fd607e7aa0 | Adam Borowski | 2009-11-07 01:16:41 +0100

Split away divine retribution into godwrath.cc

--------------------------------------------------------------------------------
dfa1f6979f | David Lawrence Ramsey | 2009-11-06 18:19:03 -0600

Simplify.

--------------------------------------------------------------------------------
e47db99b5c | Jude Brown | 2009-11-07 10:00:48 +1000

New unique: Aizul, disgraced guardian naga turned naga warrior.
Casts Venom Bolt, Blink Other, Ensorcelled Hibernation, Slow and heals
himself. Comes with a ruby-red naga barding, a shield, and a chance of a
very nice weapon. Can appear on Snake:4 and Snake:5, and also on similar
dungeon levels to Margery and co.

Backstory: the guardian of a horde of treasure who fell asleep on the
job. Thieves raided the place, and he was disgraced and kicked out.
Turned to the role of a warrior, seeking redemption through battle.

Currently, there's something weird with the debug build at 'xv' for
monster description not displaying the right information all the time.

--------------------------------------------------------------------------------
d7532db0cf | Jude Brown | 2009-11-07 09:25:11 +1000

Change "summon free zone" to blue smoke in due_chaos_kobolds.

--------------------------------------------------------------------------------
b9674b8cc2 | Stefan O'Rear | 2009-11-06 14:34:48 -0800

Add vim tags to .gitignore

--------------------------------------------------------------------------------
52a4ca93a6 | Eino Keskitalo | 2009-11-07 00:27:06 +0200

A hack to convert CIA's idea of committeer names into IRC handles where 
applicable.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b56e52a70c | Eino Keskitalo | 2009-11-07 00:27:05 +0200

Suppress CIA spam when merging between branches.

--------------------------------------------------------------------------------
4cc5a68125 | David Lawrence Ramsey | 2009-11-06 16:23:26 -0600

Use coord_defs in a few more places.

--------------------------------------------------------------------------------
f9b61b5115 | David Lawrence Ramsey | 2009-11-06 15:12:26 -0600

Consolidate player/monster sleep checks.

--------------------------------------------------------------------------------
b192fdbbbe | David Lawrence Ramsey | 2009-11-06 15:12:25 -0600

Tweak the message when distortion heals blink frogs.

--------------------------------------------------------------------------------
21d502bfa5 | Adam Borowski | 2009-11-06 21:56:20 +0100

Make DOS compilable with just make xxx CROSSHOST=i386-pc-msdosdjgpp

--------------------------------------------------------------------------------
dde0770def | Adam Borowski | 2009-11-06 21:56:19 +0100

Put DJGPP's round() into a #define so other builds don't suffer.

--------------------------------------------------------------------------------
8e818e928f | Stefan O'Rear | 2009-11-06 12:02:12 -0800

Rename the tile, too

--------------------------------------------------------------------------------
25262bdbce | Stefan O'Rear | 2009-11-06 11:56:57 -0800

Rename purple smoke to clouds of translocational energy

--------------------------------------------------------------------------------
ceb51161c8 | Robert Vollmert | 2009-11-06 20:41:29 +0100

Replace global see_cell by observe_cell and disambiguate old uses.
Calls to plain see_cell(pos) were replaced with either observe_cell(pos)
or you.see_cell(pos). observe_cell where related to drawing the
interface and messaging, you.see_cell for game mechanics, and
one or the other in less clear cases (targetting, say).

--------------------------------------------------------------------------------
f858cfc602 | David Lawrence Ramsey | 2009-11-06 13:37:52 -0600

Move checks for the berserk state into actor::berserk().

--------------------------------------------------------------------------------
79d8c3044d | gunofdis | 2009-11-06 21:36:48 +0200

Import showsymb.h in tiles files and fix some mismatched parens
Fixes tiles build (on Windows).

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b4b8747ec4 | Vsevolod Kozlov | 2009-11-06 19:52:58 +0100

Move mons_is_friendly to monsters::friendly.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
22adbee6a6 | Robert Vollmert | 2009-11-06 19:32:09 +0100

Restore direct setting of you.position in arena.
The call to set_position was triggering an ASSERT.

--------------------------------------------------------------------------------
8786fef5e4 | Robert Vollmert | 2009-11-06 19:26:33 +0100

Implement actor::can_see.
This just relies on actor::visible_to and actor::see_cell. An arena
special case was removed.

--------------------------------------------------------------------------------
f626e442c7 | Robert Vollmert | 2009-11-06 19:16:20 +0100

Add actor::set_position.
This should be used instead of setting position directly.
actor::position could be made "protected" except for the arena's
unwind_var(you.position), which is too difficult for me to fix.

The reason behind this change is that actors should get their
own LOS, whose origin should be synchronized with the actor's
position.

This change also removes the non-const "coord_def& actor::pos()" (yuk).

--------------------------------------------------------------------------------
4412160c9f | Robert Vollmert | 2009-11-06 19:16:19 +0100

Make some passed references const.
A couple of the Feawn functions were passed read-only arguments
(coordinate center, etc.) as non-const references, which leaked out
to require you.pos() to be non-const.

--------------------------------------------------------------------------------
def6a88b38 | Robert Vollmert | 2009-11-06 19:16:19 +0100

Convert a few read-only uses of actor::position to actor::pos().

--------------------------------------------------------------------------------
00c3064954 | Robert Vollmert | 2009-11-06 19:16:19 +0100

Don't trash player position in _siren_movement_effect.
swap_check's second argument is the monster's possible swap destination,
not the position you want to swap from.

_siren_movement_effect is likely still broken, since it doesn't take
this desired swap target into account.

--------------------------------------------------------------------------------
1d256ce080 | Robert Vollmert | 2009-11-06 19:16:19 +0100

Make "int rain()" take a const coord_def&.

--------------------------------------------------------------------------------
30e93ba6ea | Robert Vollmert | 2009-11-06 19:16:19 +0100

Replace you.pos() with last_player_pos.
Before, the code implicitly assumed that you.pos() hadn't already
been updated.

--------------------------------------------------------------------------------
d60108eb30 | Stefan O'Rear | 2009-11-06 09:39:44 -0800

Simplify and nerf Summon Small Mammals

--------------------------------------------------------------------------------
0f01338ab3 | Stefan O'Rear | 2009-11-06 09:14:10 -0800

Properly mark Tukima as a 150 max power spell

--------------------------------------------------------------------------------
43c4410a02 | Stefan O'Rear | 2009-11-06 09:11:59 -0800

Clarify role of you.elapsed_time

--------------------------------------------------------------------------------
70d52f5b11 | David Lawrence Ramsey | 2009-11-06 11:04:41 -0600

Fix target/caster aligned attitude check for Haste Other.

--------------------------------------------------------------------------------
32792aa54b | David Lawrence Ramsey | 2009-11-06 10:44:28 -0600

Simplify.

--------------------------------------------------------------------------------
f7274ebf7b | Vsevolod Kozlov | 2009-11-06 17:29:06 +0100

Remove mons_friendly_real and mons_wont_attack_real.
They were the same as non-_real functions.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
298af9dfc8 | David Lawrence Ramsey | 2009-11-06 09:12:31 -0600

Remove erroneous second call to _determine_weapon_subtype() in 
_generate_weapon_item().  This appears to fix [2893001].

--------------------------------------------------------------------------------
4dd53d9526 | Robert Vollmert | 2009-11-06 15:36:09 +0100

Collect attitude changing code.

--------------------------------------------------------------------------------
3babe0c87e | David Lawrence Ramsey | 2009-11-06 08:34:08 -0600

Un-hyphenate ogre-mage, for consistency with other mage types.

--------------------------------------------------------------------------------
01b40e683e | Robert Vollmert | 2009-11-06 14:43:40 +0100

Move get_show_symbol to showsymb.cc.

--------------------------------------------------------------------------------
87489927a9 | Robert Vollmert | 2009-11-06 14:43:40 +0100

Simplify.

--------------------------------------------------------------------------------
2ce2d22a0c | Robert Vollmert | 2009-11-06 14:43:39 +0100

Remove redundant level_type check.

--------------------------------------------------------------------------------
8aaaca3d1c | Vsevolod Kozlov | 2009-11-06 23:22:04 +1000

Rename is_valid_item to item_def::is_valid.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
cddc002566 | Jude Brown | 2009-11-06 22:20:05 +1000

Full set of (monster) summon elemental spells (Mu).
It's somewhat hackish; the monster summon system could do with a bit of
an overhaul, but that should wait until after the summoning nerf.

--------------------------------------------------------------------------------
c1a16aada6 | Eino Keskitalo | 2009-11-06 13:21:41 +0200

Hell-hog -> hell hog changes in docs and settings.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
5aaf885970 | Robert Vollmert | 2009-11-06 11:48:33 +0100

Add missing showsymb.cc and showsymb.h.
Also split out feature colouring into separate function.

--------------------------------------------------------------------------------
a37af0a764 | Robert Vollmert | 2009-11-06 11:33:08 +0100

Split get_symbol from view.cc.

--------------------------------------------------------------------------------
89eaa39aa9 | Robert Vollmert | 2009-11-06 11:33:08 +0100

Move dchar_by_name declaration to proper header.

--------------------------------------------------------------------------------
2e379a184c | Robert Vollmert | 2009-11-06 11:33:08 +0100

Explanatory comment.

--------------------------------------------------------------------------------
cb3cd93f1f | Robert Vollmert | 2009-11-06 11:33:08 +0100

Get rid of _get_viewobj_flags.

--------------------------------------------------------------------------------
8022157bc5 | Matthew Cline | 2009-11-06 02:13:04 -0800

Make monster name flags available to vaults
The monster name modifier flags MF_NAME_SUFFIX, MF_NAME_ADJECTIVE, and
MF_NAME_REPLACE can be used by monster specs via the spec tags
name_suffix, name_adjective and name_replace.

--------------------------------------------------------------------------------
634346b199 | Matthew Cline | 2009-11-06 02:13:04 -0800

Monster name flags fixups
Rename MF_NAME_NO_THE to MF_NAME_ADJECTIVE, since that's what it does.

Make description_level_type apply properly to monsters with MF_NAME_FOO
flags set.

--------------------------------------------------------------------------------
95fae39c5b | Vsevolod Kozlov | 2009-11-06 20:06:38 +1000

Convert calls you.duration to relevant player:: check.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
37dddc69c0 | Vsevolod Kozlov | 2009-11-06 09:56:26 +0100

Add actor::petrified, which replaces mons_is_petrified.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
dbdfb48c06 | Stefan O'Rear | 2009-11-06 00:34:30 -0800

Reduce Tukima power requirement
On testing, power levels near 200 are actually impossible to achieve
under realistic circumstances (a robe of the archmagi, max skills,
and 72 int gets you 199 power).  So reduce the max power to 150, and
rescale appropriately.

--------------------------------------------------------------------------------
caef806e73 | Matthew Cline | 2009-11-06 00:26:25 -0800

arena.cc: different msgs for respawns and summons
Say "A monster respawns!" or "A monster is summoned!" instead of "A
monster enters the arena!" for respawns and (non-real) summons.

--------------------------------------------------------------------------------
657c92b435 | David Lawrence Ramsey | 2009-11-06 01:51:22 -0600

Ensure that, if Jiyva is dead, no Jiyva altars can be placed in vaults.

--------------------------------------------------------------------------------
48b209bc75 | Matthew Cline | 2009-11-05 23:37:28 -0800

monspell.txt: Fire Breath and Cold Breath msgs
Messages for Fire Breath and Cold Breath monster spells, in case they're
used by non-dragon monster via "spells:" in monster specs.

--------------------------------------------------------------------------------
d3c2214dea | Matthew Cline | 2009-11-05 23:37:28 -0800

Error for non-monster spells in monster specs
Give an error when parsing a monster spec if it lists a spell a monster
can't cast, rather than causing an assertion when the monster tries to
cast it.

--------------------------------------------------------------------------------
d6874ba95d | Matthew Cline | 2009-11-05 23:37:28 -0800

spl-data.h: Move all monster-only spells to end

--------------------------------------------------------------------------------
b86a0edcfc | Robert Vollmert | 2009-11-06 08:33:00 +0100

Make timestamp in crash dumps readable.

--------------------------------------------------------------------------------
4e225eea73 | Robert Vollmert | 2009-11-06 08:33:00 +0100

Extract morgue file time formatting into make_file_time.

--------------------------------------------------------------------------------
cb5fbd4ea6 | David Lawrence Ramsey | 2009-11-06 01:21:28 -0600

Increase the value of MST_TEST_SPAWNER to not conflict with MST_DISSOLUTION.

--------------------------------------------------------------------------------
3aa8195291 | Jude Brown | 2009-11-06 17:12:15 +1000

Give Dissolution "Summon Eyeballs" spell (dpeg).
Though do not actually give him the actual_spells flag. Instead, treat
the slimes as gifts from Jiyva. Flavour messages could use a tweak.

--------------------------------------------------------------------------------
abc1c21bea | David Lawrence Ramsey | 2009-11-06 00:55:02 -0600

Move up the natural holiness/hellfire resistance check in is_evil().

--------------------------------------------------------------------------------
f459b1b8e2 | David Lawrence Ramsey | 2009-11-06 00:32:15 -0600

Simplify.

--------------------------------------------------------------------------------
f9a255f2e1 | Charles Otto | 2009-11-06 00:40:05 -0500

Give Dowan haste other.

--------------------------------------------------------------------------------
8c0f2ef1e0 | Charles Otto | 2009-11-06 00:15:50 -0500

Add haste other as a monster spell

--------------------------------------------------------------------------------
2cd18cf916 | David Lawrence Ramsey | 2009-11-05 22:39:58 -0600

Tweak hell knights' resistances so that they resist hellfire, and mark natural 
monsters with hellfire resistance as evil (since they likely got it through 
evil pacts or the like, as opposed to things like fire elementals, which are 
just made of fire).
This ensures that all hell knights are evil, even if they get the
spellbook with only Bolt of Fire and Blink, without marking Harold as
evil for getting that same spellbook.

--------------------------------------------------------------------------------
c48b4e0e82 | David Lawrence Ramsey | 2009-11-05 22:04:28 -0600

Make deep elf high priests resist hellfire, as they cast it, and orc high 
priests resist it too.

--------------------------------------------------------------------------------
c8e39879f1 | David Lawrence Ramsey | 2009-11-05 21:57:01 -0600

Rename the hellion spell list from MST_BURNING_DEVIL to MST_HELLION.

--------------------------------------------------------------------------------
f6fed03829 | David Lawrence Ramsey | 2009-11-05 20:48:01 -0600

Remove the rest of the M_EVIL references.

--------------------------------------------------------------------------------
142d889bc7 | David Lawrence Ramsey | 2009-11-05 20:17:47 -0600

Remove the M_EVIL flag from orc wizards.
Also, properly anger monsters that start off non-evil, but level up into
evil monsters.

--------------------------------------------------------------------------------
fe0c876c15 | Jude Brown | 2009-11-06 11:59:46 +1000

Remove level_type checks from set_level_type_* Lua wrapers.
These checks are used to ensure the functions are only called from
Portal vaults. However, they cause errors in the initial Lua map
validation, regardless of whether or not the functions are actually
being used in a Portal vault.

--------------------------------------------------------------------------------
ccb3985d0c | Jude Brown | 2009-11-06 11:58:11 +1000

Change "hell-hog" to "hell hog".

--------------------------------------------------------------------------------
5d2792b538 | David Lawrence Ramsey | 2009-11-05 19:48:11 -0600

Un-hyphenate "hell-hog", for consistency with other hell beings.

--------------------------------------------------------------------------------
cf079ad5f2 | David Lawrence Ramsey | 2009-11-05 18:59:14 -0600

Remove the M_EVIL flag from necromancers, as all of the spellbooks they can 
randomly get contain evil spells.

--------------------------------------------------------------------------------
b55ef796da | David Lawrence Ramsey | 2009-11-05 18:47:11 -0600

Since all unholy monsters are considered evil, remove mons_is_evil_or_unholy(), 
and replace it with monsters::is_evil().

--------------------------------------------------------------------------------
1587373bce | David Lawrence Ramsey | 2009-11-05 18:35:11 -0600

Simplify player::res_holy_energy() a bit.

--------------------------------------------------------------------------------
8784c9f907 | David Lawrence Ramsey | 2009-11-05 18:24:43 -0600

Remove unneeded comment.

--------------------------------------------------------------------------------
45df513e61 | David Lawrence Ramsey | 2009-11-05 18:20:24 -0600

In is_evil(), mark monsters with evil attack flavors.

--------------------------------------------------------------------------------
dae9316990 | David Lawrence Ramsey | 2009-11-05 18:13:37 -0600

Reorder a few functions.

--------------------------------------------------------------------------------
5d7f8159be | David Lawrence Ramsey | 2009-11-05 18:07:37 -0600

Make AF_HUNGER, AF_STEAL, and AF_STEAL_FOOD chaotic attack flavors.
Zin, as a lawful god, dislikes hunger-causing artefacts, so he would
dislike hunger-causing effects as well.  Also, he would probably frown
on stealing in general.

--------------------------------------------------------------------------------
408f486dfc | David Lawrence Ramsey | 2009-11-05 17:54:28 -0600

Mark (very) ugly things as having miscellaneous shapes.

--------------------------------------------------------------------------------
9a89cf75df | David Lawrence Ramsey | 2009-11-05 17:54:28 -0600

Clean up flight status checks for monsters.
In mon-data.h, remove the M_FLIES and M_LEVITATE flags, and instead use
a flight_type variable indicating flight status.

--------------------------------------------------------------------------------
5b5a6bc82d | Adam Borowski | 2009-11-06 00:27:17 +0100

Fix the DOS port.

--------------------------------------------------------------------------------
7a9cf7d5df | Adam Borowski | 2009-11-06 00:27:16 +0100

Standard <cmath> has no round().

--------------------------------------------------------------------------------
b3e5fd0bf3 | David Lawrence Ramsey | 2009-11-05 17:03:51 -0600

Revert erroneously committed bit.

--------------------------------------------------------------------------------
6a61a14d3d | David Lawrence Ramsey | 2009-11-05 16:41:54 -0600

Name the checks for monsters with evil or chaotic spells consistently.

--------------------------------------------------------------------------------
8906a6bb5c | David Lawrence Ramsey | 2009-11-05 16:13:54 -0600

In is_evil(), mark monsters with explicitly evil spells.
Unify checks for monsters with chaotic spells, and do the same for them.

--------------------------------------------------------------------------------
b11642c211 | Robert Vollmert | 2009-11-05 23:10:14 +0100

Restore genus check in beholder update.

--------------------------------------------------------------------------------
e09a3173a9 | Robert Vollmert | 2009-11-05 23:07:40 +0100

Fix arena assert.

--------------------------------------------------------------------------------
282bc37721 | Robert Vollmert | 2009-11-05 23:07:40 +0100

Fix map boundary not being drawn.

--------------------------------------------------------------------------------
05a0629e18 | David Lawrence Ramsey | 2009-11-05 16:01:34 -0600

Properly mark Porkalator as a chaotic spell.

--------------------------------------------------------------------------------
09b6736c53 | David Lawrence Ramsey | 2009-11-05 15:42:58 -0600

In is_chaotic(), mark player followers/monster priests of chaotic gods.

--------------------------------------------------------------------------------
361c86ab3c | David Lawrence Ramsey | 2009-11-05 15:36:18 -0600

In is_evil(), mark player followers and monster priests of evil gods.

--------------------------------------------------------------------------------
dc3f573c6e | Robert Vollmert | 2009-11-05 22:30:03 +0100

Unify mesmerisation code.
There were several places that had copies of the same code, checking
whether mesmerisation blocked movement to a given target.

The various mesmerisation functions have become methods of player
and were moved into behold.cc.

--------------------------------------------------------------------------------
31124ec682 | David Lawrence Ramsey | 2009-11-05 15:00:28 -0600

Mark golden eyes as glowing, since it seems to fit their description.

--------------------------------------------------------------------------------
b5ea5e1bc6 | David Lawrence Ramsey | 2009-11-05 14:59:05 -0600

Create an is_evil() function in the actor interface.
Currently, only unholy monsters are marked as evil this way.

--------------------------------------------------------------------------------
823bd7c3cb | Vsevolod Kozlov | 2009-11-05 20:54:38 +0100

Replace mons_is_caught with monsters::caught.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
5cae6a4d1a | Vsevolod Kozlov | 2009-11-05 20:54:38 +0100

Replace mons_is_paralysed with monsters::paralysed.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
3b56c74923 | Vsevolod Kozlov | 2009-11-05 20:54:37 +0100

Use this instead of you in player::rot.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
51ded01382 | David Lawrence Ramsey | 2009-11-05 12:57:13 -0600

Make many checks for monster (non)existence on squares use monster_at().
Not all are changed yet, as there are several index checks still needed
for debugging purposes.

Also, make many checks for player/monster (non)existence use actor_at().

--------------------------------------------------------------------------------
418a2664a3 | David Lawrence Ramsey | 2009-11-05 12:27:19 -0600

Fix compilation.

--------------------------------------------------------------------------------
762122c1e5 | David Lawrence Ramsey | 2009-11-05 12:24:10 -0600

Simplify setting kraken colors when placing one in wizard mode.

--------------------------------------------------------------------------------
3de30c1689 | David Lawrence Ramsey | 2009-11-05 12:22:36 -0600

Fix apparent typo in swap_features().

--------------------------------------------------------------------------------
08a20c3dc9 | Vsevolod Kozlov | 2009-11-05 18:50:57 +0100

Replace uses of player_in_water with you.in_water.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
de162132f7 | Vsevolod Kozlov | 2009-11-05 18:50:57 +0100

Replace uses of player_is_swimming with you.swimming.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
cf225c256f | David Lawrence Ramsey | 2009-11-05 11:12:50 -0600

Clean up random coordinate usage a bit.
Specifically, use random_in_bounds() in a few places instead of random
ranges involving X_BOUND and Y_BOUND values.  The former won't return
any coordinates in the dungeon's map border (which acts as a wall), but
the latter will, and all the changed places are looking for empty
dungeon squares, so this should make these operations more efficient.

--------------------------------------------------------------------------------
48f785a271 | Vsevolod Kozlov | 2009-11-05 17:31:29 +0100

Replace uses of player_is_airborne with you.airborne.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
0dc3e02bc8 | Robert Vollmert | 2009-11-05 17:25:36 +0100

A variety of changes to make the reflection code more robust.
In particular, round things to grid or corner when they're regarded
as on the grid or corner, and normalize direction vectors.

--------------------------------------------------------------------------------
259a353db2 | Adam Borowski | 2009-11-05 16:22:35 +0100

Move rot_player() to player::rot() (Zaba)

--------------------------------------------------------------------------------
8a71b54ce2 | Adam Borowski | 2009-11-05 15:24:46 +0100

Merge monsters,player::check_res_magic() (Zaba)

--------------------------------------------------------------------------------
329209bca2 | Adam Borowski | 2009-11-05 15:01:52 +0100

Put lots of actor:: methods where they belong (Zaba)

--------------------------------------------------------------------------------
24c5e57c05 | Adam Borowski | 2009-11-05 14:43:16 +0100

Another couple of yous busted (Zaba)

--------------------------------------------------------------------------------
63e4d7c54f | Adam Borowski | 2009-11-05 14:05:58 +0100

Let clubs (small ordinary ones only) stun back-coshed targets for 1-3 turns.

--------------------------------------------------------------------------------
6f79556d09 | Adam Borowski | 2009-11-05 14:05:57 +0100

Give middling backstab bonus to ordinary clubs and spears. Also, mention that 
daggers do awesome stab damage.

--------------------------------------------------------------------------------
d3dac1d95f | Adam Borowski | 2009-11-05 14:05:57 +0100

Give OgEn, OgTh, OgAs, OgSt clubs instead of short swords. Same with trolls of 
these professions.  Both races have abysmal aptitudes with short blades but are 
good with M&F.

--------------------------------------------------------------------------------
ff1476960e | Vsevolod Kozlov | 2009-11-05 22:59:52 +1000

Convert all instances of "you" to "this" in player member functions.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
e1c9271f46 | Vsevolod Kozlov | 2009-11-05 22:57:18 +1000

Move player_res_asphyx/rotting to player::res_asphyx/rotting.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
504bcf4bd3 | Vsevolod Kozlov | 2009-11-05 22:03:07 +1000

Combine player_knows_spell, player_has_spell into player::has_spell.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
fc0e79dabb | Jude Brown | 2009-11-05 20:56:46 +1000

New monster spell: Summon Eyeballs.
Summons from a (weighted) selection of: giant eyeballs, eyes of
draining, golden eyes, shining eyes, great orbs of eyes, and eyes of
devastation. Does not summon giant orange brains, as those aren't really
eyeballs.

Currently programmed only as a monster spell, and the only monsters who
can get it are Pan Lords.

--------------------------------------------------------------------------------
b9def01221 | Vsevolod Kozlov | 2009-11-05 19:58:50 +1000

Move *_res(ist)_magic to relevant classes, provide actor interface.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
313465bf23 | Jude Brown | 2009-11-05 19:20:31 +1000

New monsters: golden eyes, with a confuse ability.
Small, blinking, and fast, these eyes come in packs and are found
natively in Slime (though somewhat rarely). Their confusion ability does
check MR before passing, however, and can be completely avoided by
having Clarity.

--------------------------------------------------------------------------------
1c37881948 | Jude Brown | 2009-11-05 19:09:22 +1000

New monsters: golden eyes.
Small, blinking, and fast, these eyes come in packs and are found
natively in Slime (though somewhat rarely). Their confusion ability does
check MR before passing, however, and can be completely avoided by
having Clarity.

--------------------------------------------------------------------------------
d6b92b199d | Matthew Cline | 2009-11-05 00:50:40 -0800

view.cc: viewwindow() don't always update mon grid
viewwindow() was always calling monster_grid() with "do_updates ==
true".

--------------------------------------------------------------------------------
808d95388e | Stefan O'Rear | 2009-11-04 23:52:52 -0800

And propagate power from Tukima / the Dance.

--------------------------------------------------------------------------------
1b5fee7b01 | Stefan O'Rear | 2009-11-04 23:29:00 -0800

Rebalance dancing weapon stats
They now depend a great deal on the weapon and your skill; see the
comments for details.

--------------------------------------------------------------------------------
22dcda95ae | Matthew Cline | 2009-11-04 22:52:51 -0800

lm_trig.lua: do_trigger(): simplify

--------------------------------------------------------------------------------
1dcf964cd3 | Charles Otto | 2009-11-05 01:51:40 -0500

Make merging slime creatures lose at most 1 turn after the merge.
If two (or more I guess) slime merge onto a third slime in one turn
make the merged slime only lose 1 turn.

--------------------------------------------------------------------------------
b9593f0b29 | Charles Otto | 2009-11-05 01:18:29 -0500

Let Feawn worshipers travel/run through plants they can pass through.

--------------------------------------------------------------------------------
3890b0dcf7 | Matthew Cline | 2009-11-04 22:16:26 -0800

show.cc: Fix show_def::init() arena crash.

--------------------------------------------------------------------------------
c73c1dad0a | Matthew Cline | 2009-11-04 21:51:35 -0800

Slave/master handling in the Triggerable class
The Triggerable class can now handle master/slave marker logic.  See
dis_mu in hells.des for an example.

--------------------------------------------------------------------------------
1c4f4dd987 | Stefan O'Rear | 2009-11-04 21:36:26 -0800

Allow each dancing weapon to have its own stats

--------------------------------------------------------------------------------
48ab3b1a8d | Matthew Cline | 2009-11-04 18:32:06 -0800

test/bounce.lua: Turn beam range into a variable.

--------------------------------------------------------------------------------
f5dd3f8ffa | Jude Brown | 2009-11-05 11:49:31 +1000

New Vaults vault: the Teleporter.
Fight your way through the monsters, and then get to the (hidden) loot
chamber. The walls are unbreakable (even with shatter), although the
player could, theoretically, randomly or controlled teleport in.
However, the room has no internal entrances or exits, so it shouldn't
show up on magic mapping.

--------------------------------------------------------------------------------
e17c1cb70c | Jude Brown | 2009-11-05 11:49:30 +1000

Fix up MDEFN closures, add random monster teleport wrapper.
MDEFN was currently hardcoded to wrap l_mons_do_dismiss, fixed
(greensnark). Provide a wrapper for instant random teleport of monsters
(restricted to dlua).

--------------------------------------------------------------------------------
a9553d73ed | Jude Brown | 2009-11-05 11:49:30 +1000

Give Jelly rooms the chance of having a Jiyva altar.
Current chance is 1-in-30 per square. The larger the room (and thus, the
more jellies), the higher the chance of getting an altar. Shouldn't
leave behind erroneous altars when vetoed.

--------------------------------------------------------------------------------
ebce0ae5a2 | Matthew Cline | 2009-11-04 17:29:34 -0800

Sound overhaul: sound where spell hits
Directed spells now do noise where they hit a monster/player, rather
than where they're cast (enchantment spells have 0 noise when they hit);
casting these spells generates a noise of loudness 1 where the spell
caster is.  The noise level is hard-coded in beam.cc's zap_data array
(and setup by zapping()), and is constant regardless of the amount of
damage done or the beam's power.  Beam-ish spells generates a seperate
sound event for each target hit.  Spells which miss generate no noise.

--------------------------------------------------------------------------------
984882ad63 | Enne Walker | 2009-11-04 20:12:04 -0500

Fixing exclusions and tiles after level veto.
Prior to this, exclusions and tiles from vaults would continue to exist,
even though the level their vault was placed on was vetoed. This was
causing weird visual anomalies.

--------------------------------------------------------------------------------
9902559dba | Charles Otto | 2009-11-04 20:03:17 -0500

Fix mingw compilation
Add some includes missed during recent file splits.

--------------------------------------------------------------------------------
f3df7a0554 | Adam Borowski | 2009-11-05 00:42:52 +0100

Fix an assert crash when a monster picks up missiles that merge into his stack.

--------------------------------------------------------------------------------
c6d136cb11 | Matthew Cline | 2009-11-04 14:51:23 -0800

Make tests compile with DEBUG_TESTS.

--------------------------------------------------------------------------------
0ae4b3ebec | Adam Borowski | 2009-11-04 22:48:13 +0100

Fix test failure: need to clear the item before rerolling a randart.

--------------------------------------------------------------------------------
700f4d873b | Adam Borowski | 2009-11-04 22:48:13 +0100

Run tests of brand validness on "./crawl -test".

--------------------------------------------------------------------------------
2fa5820369 | Adam Borowski | 2009-11-04 22:48:12 +0100

Making an item randart can fail _and_ return true.  Cope with that.

--------------------------------------------------------------------------------
24940bfaa9 | Adam Borowski | 2009-11-04 22:48:12 +0100

Fix is_armour_brand_ok: helmets can be int, only them can be see invis.

--------------------------------------------------------------------------------
64c38d95bf | Robert Vollmert | 2009-11-04 22:45:50 +0100

Split up view.cc.

--------------------------------------------------------------------------------
ce5c888dac | Stefan O'Rear | 2009-11-04 13:33:52 -0800

Buff passive mapping, esp. at low levels.

--------------------------------------------------------------------------------
cb65145237 | Stefan O'Rear | 2009-11-04 13:30:28 -0800

Remove a few placeholders from enum.h

--------------------------------------------------------------------------------
7d98adbee3 | Stefan O'Rear | 2009-11-04 13:06:42 -0800

[ and ] respect dungeon topology (by)

--------------------------------------------------------------------------------
5eeaf5d109 | Matthew Cline | 2009-11-04 12:01:41 -0800

show: Quiet Valgrind warnings

--------------------------------------------------------------------------------
612f495b38 | Adam Borowski | 2009-11-04 20:15:04 +0100

Simplify by reusing commin brand vetoing code.

--------------------------------------------------------------------------------
99aa489a8d | Adam Borowski | 2009-11-04 20:11:25 +0100

Allow specifying "any weapon ego:XXX", "... missile", "... armour". This will 
select an item type that can have brand XXX.  This requires a large list of 
allowable type/brand combinations in the code :(

--------------------------------------------------------------------------------
17571e0199 | David Lawrence Ramsey | 2009-11-04 12:15:34 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
7660cd4286 | David Lawrence Ramsey | 2009-11-04 12:06:43 -0600

Fix inconsistencies in checks for monsters' being slime creatures.

--------------------------------------------------------------------------------
b912a934ae | David Lawrence Ramsey | 2009-11-04 10:09:26 -0600

Fix warning.

--------------------------------------------------------------------------------
526f9d476a | David Lawrence Ramsey | 2009-11-04 10:02:53 -0600

Remove obsolete comment.

--------------------------------------------------------------------------------
6f10cd2574 | Robert Vollmert | 2009-11-04 16:50:18 +0100

Get rid of multiple-meaning "int object" in env.show.
env.show is now a class show_def that stores tagged
unions of type show_type. For the moment, there's also
env.show_los for use in LOS determination, but that
should become an array of boolean at some point.

This breaks save compatibility.

Tiles and console version build and appear to work
fine, but this kind of change is likely to have
some side-effects.

--------------------------------------------------------------------------------
9ad8543568 | Darshan Shaligram | 2009-11-04 20:15:34 +0530

Allow vaults to override monster spells with spells:<xyz>
Vaults can now override monster spell sets, or give non-casting monsters
spells, and mark monsters as wizard or priest types.

The M_ACTUAL_SPELLS, M_SPELLCASTER and M_PRIEST monster class flags are
converted into MF_* flags at monster creation/polymorph time, and only the
per-monster flags are checked when determining wizard/priestliness. See caveats
in level_design.txt.

--------------------------------------------------------------------------------
f7c29d55ca | David Lawrence Ramsey | 2009-11-04 08:42:47 -0600

Remove some hardcoded monster flags.
Since insubstantial monsters all resist sticky flame, move the check for
insubstantiality into monsters::res_sticky_flame(), and remove the
MR_RES_STICKY_FLAME flag from such monsters.

--------------------------------------------------------------------------------
2095831bd6 | David Lawrence Ramsey | 2009-11-04 08:34:58 -0600

Add formatting fixes.

--------------------------------------------------------------------------------
2287cbbbf5 | David Lawrence Ramsey | 2009-11-04 08:24:49 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
741b291022 | Jude Brown | 2009-11-04 23:12:03 +1000

New Trog altar vault. (Mu)

--------------------------------------------------------------------------------
0198e0c9ca | Adam Borowski | 2009-11-04 14:02:04 +0100

Allow forcing randarts in vaults.

--------------------------------------------------------------------------------
7e4eee789a | Jude Brown | 2009-11-04 21:44:47 +1000

Update volcano_lake and volcano_pools.
Updating the volcanoes in volcano_lake to use a better system, which
will hopefully mean that the warnings work properly for them now. Also
slightly tweak the monsters in volcano_pools.

--------------------------------------------------------------------------------
124ff384ce | Stefan O'Rear | 2009-11-04 03:06:44 -0800

Fix player bloodspatter

--------------------------------------------------------------------------------
ea68750028 | Adam Borowski | 2009-11-04 11:50:27 +0100

Revert Crazy Yiuf to D:2-7, Sigmund pwns him 10:1.

--------------------------------------------------------------------------------
3c67852a7a | Stefan O'Rear | 2009-11-04 02:47:56 -0800

Less blood from rotten corpses (due)

--------------------------------------------------------------------------------
30387f6a83 | Stefan O'Rear | 2009-11-04 02:25:24 -0800

Disintegration can be very messy.

--------------------------------------------------------------------------------
b6bb6178f8 | Adam Borowski | 2009-11-04 09:46:06 +0100

Move Crazy Yiuf from D:2-7 to D:3-7, he can be a nasty bugger.

--------------------------------------------------------------------------------
4a5125341b | Jude Brown | 2009-11-04 18:10:47 +1000

Further work on the "chaos" kobolds theme altar vault.
Include a Xom-themed Chaos Kobolds vault with kobolds with chaos
weapons, and maybe even an orange crystal statue! Also introduce further
randomness to the vault.

--------------------------------------------------------------------------------
182fb011ad | Robert Vollmert | 2009-11-04 08:45:44 +0100

Move feature_def and Feature array into feature.cc from view.cc.

--------------------------------------------------------------------------------
89ff79ab00 | Robert Vollmert | 2009-11-04 08:45:44 +0100

Split game_options from externs.h into options.h.

--------------------------------------------------------------------------------
aa8110a920 | Robert Vollmert | 2009-11-04 08:45:42 +0100

Rename map_feature() from mapdef.h to map_feature_at.
This was causing conflicts with enum map_feature (not sure
why this didn't show up earlier).

--------------------------------------------------------------------------------
2edcff5f95 | Charles Otto | 2009-11-04 00:13:04 -0500

List Feawn's passive bonuses on the ^ screen.

--------------------------------------------------------------------------------
6acc0dc2d9 | Stefan O'Rear | 2009-11-03 21:09:48 -0800

Fix Vp crash
Unused mutations still need a placeholder entry, or else the vampire
mutation capping gets very confused.

--------------------------------------------------------------------------------
6953f04ec9 | Charles Otto | 2009-11-04 00:01:01 -0500

Make slime creatures' merge behavior somewhat less aggressive.
Prevent slime creatures from merging if there is an empty square for
them to move on that would reduce the distance to their target.

--------------------------------------------------------------------------------
dc3b9654d7 | Steven Noonan | 2009-11-03 20:32:38 -0800

makefile: add 'libw32c.o' and 'libunix.o' to clean target
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e20947fc4b | Matthew Cline | 2009-11-03 20:04:33 -0800

view.cc: Unitialized warnings in show_map()

--------------------------------------------------------------------------------
e47be5bb6b | Matthew Cline | 2009-11-03 20:04:33 -0800

Artefact property tweaking menu
Skip unused artefact properties when constructing the property tweaking
menu, and include the SPIRIT_SHIELD property.

--------------------------------------------------------------------------------
f251994ff0 | Enne Walker | 2009-11-03 22:36:12 -0500

Support for X map multi-level viewing on tiles.
Fixes seeing in-LOS squares on incorrect levels.  Fixes the minimap not
updating.  Fixes the player dot appearing on the minimap on wrong levels.

--------------------------------------------------------------------------------
1bf203aaf5 | Matthew Cline | 2009-11-03 18:36:53 -0800

Fixed MONS_NO_MONSTER == NUM_MONSTERS + 1
Fixed MONS_NO_MONSTER == NUM_MONSTERS + 1, which was a problem because
MONS_NO_MONSTER can end up in savefiles, meaning that when NUM_MONSTERS
increased old save files would become broken.

unmarshall_monster() has a temporary hack to preserve compatibility with
old save files, and will fail a COMPILE_CHECK() when NUM_MONSTERS
increases beyond its current value.

--------------------------------------------------------------------------------
20161f77a8 | David Lawrence Ramsey | 2009-11-03 19:49:12 -0600

Fix hardcoding of "hands" in the wielding message for weapons of speed.

--------------------------------------------------------------------------------
f135e519c6 | Jude Brown | 2009-11-04 11:18:59 +1000

Update ITEM section to mention item stacks.
Item stacks can be made using the KITEM directive, but this is only
mentioned in the KITEM section.

--------------------------------------------------------------------------------
a94369456a | Matthew Cline | 2009-11-03 17:03:19 -0800

Artefacts no longer provide tele or mapping
Evokable teleporataion and evokable mapping are gone from artefacts.

--------------------------------------------------------------------------------
b9c2a1e344 | Matthew Cline | 2009-11-03 16:46:15 -0800

tags.cc: Debug msgs for invalid, !in_bounds mons
With DEBUG or DEBUG_MONS_SCAN, give error messages if marshalling or
unmarshalling a monster with an invalid type or which is out of bounds.

--------------------------------------------------------------------------------
4a4204b4ae | Matthew Cline | 2009-11-03 16:44:39 -0800

monster.cc: More info than just INVALID MONSTER
When trying to get the name of a monster with an invalid type, provide a
little more information that just the fact that it's an invalid monster.

--------------------------------------------------------------------------------
68deacab7a | Jude Brown | 2009-11-04 10:01:42 +1000

Remove +Tele from Cloak of Flash and documentation.
After discussion with sorear on IRC, Cloak of the Flash's evocable
teleportation will not work with recent changes, so remove it. Also
remove "mapping" and "cantelep" from the list of possible brands for
unrands, as these will no longer work.

The util/art-data.pl script will need to be updated.

--------------------------------------------------------------------------------
e10d5cb12d | Adam Borowski | 2009-11-04 00:06:51 +0100

Cope with old saves with 0-piece slime creatures. Can be reverted once CDO is 
updated or purged.

--------------------------------------------------------------------------------
5770878427 | Robert Vollmert | 2009-11-03 21:54:20 +0100

Add get_degrees and set_degrees to ray_def; reenable chaos bolt munging.

--------------------------------------------------------------------------------
85ea7c827f | Robert Vollmert | 2009-11-03 21:19:22 +0100

Split up ray_def::bounce and implement better corner handling.
Rays shot directly at diagonal walls should now reflect
appropriately. For this, diagonal walls are assumed to be
flat.

Example:

...###
@***##
...*.#
...*..

It's different from before, but I think it's probably a
nice change without huge impact.

--------------------------------------------------------------------------------
88d00c26d2 | Robert Vollmert | 2009-11-03 21:19:08 +0100

Improve reflections when starting in a corner.

--------------------------------------------------------------------------------
91c5ceb9a3 | Robert Vollmert | 2009-11-03 21:19:08 +0100

Move regress next to advance.

--------------------------------------------------------------------------------
8910118eef | Adam Borowski | 2009-11-03 21:00:56 +0100

Fix inverted logic wrt curare and res_aphyx.

--------------------------------------------------------------------------------
7cc2d00970 | Robert Vollmert | 2009-11-03 18:55:43 +0100

A few additional test maps for los_maps.

--------------------------------------------------------------------------------
2e4e476df9 | Robert Vollmert | 2009-11-03 18:48:55 +0100

Reenable los_maps.lua.
Add a new des file test/des/debug-diamond-los.des with adapted
maps -- compare to debug-los.des to see the differences.

--------------------------------------------------------------------------------
edad265ebe | Robert Vollmert | 2009-11-03 18:36:39 +0100

Make parse_maps not call end() when reading old .des files.
Instead, it just returns without doing anything. I don't know why
the call to end() was there in the first place. May well be missing
something but this change hasn't had any obvious bad effects for
me.

This was causing problems with different tests trying to load the
same .des file multiple times.

--------------------------------------------------------------------------------
01f2ad3d1a | Robert Vollmert | 2009-11-03 18:32:57 +0100

Add a second bounce test.
This one chooses random targets and uses rays returned by find_ray.
That should give a few different angles.

--------------------------------------------------------------------------------
01a5049990 | Robert Vollmert | 2009-11-03 18:32:31 +0100

Flush map memory in bounce.lua to avoid conflict with other tests.

--------------------------------------------------------------------------------
c2ab8031a5 | Robert Vollmert | 2009-11-03 18:31:53 +0100

Add option to use find_ray to debug_bouncy_beam.

--------------------------------------------------------------------------------
25d67b3e76 | David Lawrence Ramsey | 2009-11-03 10:13:14 -0600

Note Khufu's use of monster::number in the relevant monplace.h comment.

--------------------------------------------------------------------------------
9b79bc256f | David Lawrence Ramsey | 2009-11-03 10:11:24 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
38910f01ca | David Lawrence Ramsey | 2009-11-03 10:09:59 -0600

Add punctuation fixes.

--------------------------------------------------------------------------------
96f86b7f4c | David Lawrence Ramsey | 2009-11-03 10:09:18 -0600

Add whitespace fixes.

--------------------------------------------------------------------------------
2cba7ec21c | Adam Borowski | 2009-11-03 16:30:34 +0100

Make Chain Lightning a monster spell, add an user of it (Nikola).

--------------------------------------------------------------------------------
41e35978a7 | Robert Vollmert | 2009-11-03 15:27:27 +0100

Also assert validity in ray_def::pos().

--------------------------------------------------------------------------------
cf72e9d750 | Robert Vollmert | 2009-11-03 15:27:27 +0100

Fix a bug with corner rays.
Rays that reflected on corners could go too far.
Now passes the bounce test.

--------------------------------------------------------------------------------
e79394f321 | Robert Vollmert | 2009-11-03 15:27:27 +0100

Add function to fudge corner ray into a non-solid cell.

--------------------------------------------------------------------------------
a836385ed0 | Robert Vollmert | 2009-11-03 15:27:27 +0100

Split _mirror into point and direction parts.

--------------------------------------------------------------------------------
ccf8d8af59 | Robert Vollmert | 2009-11-03 15:27:26 +0100

Add round_vec.

--------------------------------------------------------------------------------
31c7960750 | Robert Vollmert | 2009-11-03 15:27:26 +0100

Bug fixes.

--------------------------------------------------------------------------------
938f201e91 | Robert Vollmert | 2009-11-03 15:27:26 +0100

Simplify bounce in view of ray_def::bounce guarantee.

--------------------------------------------------------------------------------
8e5e988616 | Robert Vollmert | 2009-11-03 15:27:26 +0100

ray_def::bounce now guarantees it leaves the ray in a clear tile.

--------------------------------------------------------------------------------
339ded6179 | Robert Vollmert | 2009-11-03 15:27:26 +0100

Add pre- and post-asserts to ray_def::regress.

--------------------------------------------------------------------------------
4d71072831 | Robert Vollmert | 2009-11-03 15:27:26 +0100

Fix bugs in diagonal corridor reflections.

--------------------------------------------------------------------------------
a6bcd9f87a | Adam Borowski | 2009-11-03 14:02:49 +0100

Make slaying apply to missile launchers as well.

--------------------------------------------------------------------------------
f42c337184 | Adam Borowski | 2009-11-03 14:02:48 +0100

Bracers of archery: 5,3 slaying for ranged combat, -1,-1 for melee.

--------------------------------------------------------------------------------
7f8b6d8569 | Adam Borowski | 2009-11-03 14:02:48 +0100

Cosmetic desc of gloves: 50% of them will be "gauntlets", 0% "bracers".

--------------------------------------------------------------------------------
120d0bec40 | Jude Brown | 2009-11-03 22:26:51 +1000

Documentation changes: remove +Map, expand on vault generation.
Mapping is no longer available as a randart property, so removing it
from the list. While +Tele is likewise no longer available, the unrand
Cloak of the Flash has evocable teleportation, so leaving it there for
now (randart rings of teleportation appear as *TELE).

The vault generation test set can be run individually by specifying it
on the command-line. This saves going through all the LOS tests if
generating maps with some regularity.

--------------------------------------------------------------------------------
bfe3354fb9 | Matthew Cline | 2009-11-03 03:40:43 -0800

spells1.cc: fix Chain Lightning

--------------------------------------------------------------------------------
f4f1ff8cba | Robert Vollmert | 2009-11-03 12:01:50 +0100

Move reflection line choice into separate function.

--------------------------------------------------------------------------------
c3ef566864 | Robert Vollmert | 2009-11-03 12:01:50 +0100

Improve error handling in lua interpreter.
lua_pcall is now passing 0 for errfunc so the plain error message
comes out. Also, remove the call to lua_gc on error since that
was causing further errors.

This is probably not the right way to do things but hopefully an
improvement for now.

--------------------------------------------------------------------------------
095295bd6f | Matthew Cline | 2009-11-03 02:56:33 -0800

Undid accidental/stale commit (oops)

--------------------------------------------------------------------------------
96aa6d3c84 | Matthew Cline | 2009-11-03 02:54:13 -0800

Unit test for beams bouncing

--------------------------------------------------------------------------------
972b919091 | Matthew Cline | 2009-11-03 02:49:08 -0800

l_dgn.cc: define 'dgn.in_bounds()' lua func

--------------------------------------------------------------------------------
e26dbf39d5 | Robert Vollmert | 2009-11-03 11:33:23 +0100

Implement diagonal corridor reflections.

--------------------------------------------------------------------------------
e6cb68071e | Robert Vollmert | 2009-11-03 11:33:23 +0100

Add geom::line constructor.

--------------------------------------------------------------------------------
3b48ada8fe | Robert Vollmert | 2009-11-03 11:33:23 +0100

Make geom::parallel visible outside geom2d.

--------------------------------------------------------------------------------
ae6a056743 | Jude Brown | 2009-11-03 20:13:57 +1000

Moved historical notes in spl-data.h to their own file.
As noted in the spl-data.h header, a lot of the comments are obsolete. They are 
still interesting to read and should be kept regardless, so I've moved them to 
a new folder in docs/: "historical". Other comments could also be moved here in 
future.

--------------------------------------------------------------------------------
41878a6a0e | Robert Vollmert | 2009-11-03 10:58:07 +0100

Restore lua binding for in_bounds.
It's now in the more fitting l_dgngrd.cc.

--------------------------------------------------------------------------------
712c03631e | Robert Vollmert | 2009-11-03 10:44:46 +0100

Disable los_maps test until the maps have been updated.

--------------------------------------------------------------------------------
94516a290b | Robert Vollmert | 2009-11-03 10:42:20 +0100

Possibly fix diagonal corridor asserts.

--------------------------------------------------------------------------------
e65199ef20 | Vsevolod Kozlov | 2009-11-03 10:19:23 +0100

Remove "called from:" comments.
These were of questionable use and freshness.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
2fbd97bae9 | Robert Vollmert | 2009-11-03 10:15:44 +0100

Fix diagonal corner case leaving the ray on the boundary.

--------------------------------------------------------------------------------
d49f04f323 | Robert Vollmert | 2009-11-03 10:15:44 +0100

Refine ray_def assertions.
ray_def::advance() and ray_def::bounce() now check pre- and post-
conditions on validity.

--------------------------------------------------------------------------------
24cffd1388 | Robert Vollmert | 2009-11-03 10:15:44 +0100

Remove bidirectionality from radius_iterator.
This wasn't used anywhere and could easily be restored if
required.

--------------------------------------------------------------------------------
d955c2c1d4 | Matthew Cline | 2009-11-03 00:43:43 -0800

Remove mstuff2.h and mstuff2 references

--------------------------------------------------------------------------------
66dae41a9b | Stefan O'Rear | 2009-11-03 00:42:12 -0800

Mention new mapping rules in item description

--------------------------------------------------------------------------------
3a79f2410e | Stefan O'Rear | 2009-11-03 00:32:37 -0800

Enable the new Ice/Fire I/II demon facets

--------------------------------------------------------------------------------
dec3c687da | Stefan O'Rear | 2009-11-03 00:04:31 -0800

Remove +Tele as a randart property

--------------------------------------------------------------------------------
ec56a2051c | Matthew Cline | 2009-11-02 23:52:58 -0800

Wizard inscription 'range:' for wands
While in wizard mode, inscribing a wand with 'range:number' will change
that wand's range to 'number' when zapped by the player.

--------------------------------------------------------------------------------
458c930834 | Stefan O'Rear | 2009-11-02 23:40:09 -0800

Ballistomycetes should not be M_NO_EXP_GAIN
They represent a direct threat to the PC.

--------------------------------------------------------------------------------
236984fc0e | Matthew Cline | 2009-11-02 23:33:53 -0800

arena: respawning slime creatures
Deal with two respawning slime creatures merging and then splitting.

--------------------------------------------------------------------------------
27c812572c | Matthew Cline | 2009-11-02 22:52:32 -0800

Allow running tests with DEBUG_TESTS
Automatic/unit tests can now be run if you define the macro DEBUG_TESTS,
rather than only having the option of having to define
DEBUG_DIAGNOSTICS.

--------------------------------------------------------------------------------
218e102a06 | abrahamwl | 2009-11-03 16:35:39 +1000

Updating my vault "The Shining One Protects a Powerful Item"
Was one vault, now is three: protected_by_tso_1, protected_by_tso_2,
protected_by_tso_3.

Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>

--------------------------------------------------------------------------------
7e4e5ebd6a | Bookofjude | 2009-11-03 16:21:58 +1000

Chained FogMachine convenience function, documentation, minor corrections.
chained_fog_machine now performs relevant lmark.synchronized_markers 
modification to fog machines. Provided documentation for this. Cleaned up 
volcano.des, removed some unused functions and fixed some line lengths, other 
minor corrections.

--------------------------------------------------------------------------------
0addd910ea | Stefan O'Rear | 2009-11-02 22:12:55 -0800

Mutated spell-like abilities are fueled by %HP, not MP

--------------------------------------------------------------------------------
2ffa9dc23f | David Lawrence Ramsey | 2009-11-03 00:10:20 -0600

Comment fix.

--------------------------------------------------------------------------------
db5642e2d8 | Stefan O'Rear | 2009-11-02 21:43:25 -0800

Greatly upgrade player hellfire
It's now smite targetted with maximum 6d26 damage.  Have fun.

--------------------------------------------------------------------------------
8b4c163569 | Stefan O'Rear | 2009-11-02 21:01:27 -0800

Implement "Passive Freeze" mutation (DS)

--------------------------------------------------------------------------------
e1eac6bb01 | David Lawrence Ramsey | 2009-11-02 21:33:53 -0600

Add whitespace fixes.

--------------------------------------------------------------------------------
018d96d74c | Enne Walker | 2009-11-02 22:32:10 -0500

Fixing tiles compilation due to s/fling/throw/.

--------------------------------------------------------------------------------
b02230ce49 | David Lawrence Ramsey | 2009-11-02 21:28:52 -0600

Apply n78291's patch in [2891024] to fix Jiyva's piety gain.

--------------------------------------------------------------------------------
e181fa40e7 | Charles Otto | 2009-11-02 22:24:53 -0500

Less consumables for wanderers
Just identify teleportation scrolls/healing potions instead of giving
them out.

--------------------------------------------------------------------------------
6d4419975b | Charles Otto | 2009-11-02 22:06:03 -0500

Explicitly mention using 0-9 in the prompts for growth and evolution

--------------------------------------------------------------------------------
a6f2d01db0 | Charles Otto | 2009-11-02 22:06:02 -0500

Remove Feawn's prayer ability, make plant walking a passive bonus.
Experimentally set the movement delay for walking on plants to
1.5 * normal movement delay. Maybe it should be higher?

--------------------------------------------------------------------------------
9397dc1a7f | Charles Otto | 2009-11-02 22:06:00 -0500

Some tweaks to decomposition
Make toadstools created via decomposition friendly, exempt toadstools
from the allies dying conduct.

Increase decomposition toadstool base duration.

--------------------------------------------------------------------------------
7da5fd2d97 | Charles Otto | 2009-11-02 22:05:59 -0500

Increase sunlight's draw delay.

--------------------------------------------------------------------------------
efdc56d53a | David Ploog | 2009-11-03 03:56:45 +0100

Rename "Fling Icicle" to "Throw Icicle".

--------------------------------------------------------------------------------
d634b20d14 | Stefan O'Rear | 2009-11-02 19:03:48 -0800

Document XG

--------------------------------------------------------------------------------
385b092e89 | Stefan O'Rear | 2009-11-02 19:01:25 -0800

Use G in the overmap to directly change levels

--------------------------------------------------------------------------------
3f3c0139c0 | Stefan O'Rear | 2009-11-02 17:41:23 -0800

Implement map viewing for other levels
There are three new commands described on the X? screen.  Interlevel
travel works.  Other levels are not currently highlighted by reachability;
let me know if you want this.  Interface stolen from TAEB :).  dpeg's
stair view is not yet in.

--------------------------------------------------------------------------------
26d303da42 | David Lawrence Ramsey | 2009-11-02 19:38:18 -0600

Add formatting fix.

--------------------------------------------------------------------------------
4ce1e36fd9 | David Lawrence Ramsey | 2009-11-02 19:34:14 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f09d1387ea | Eino Keskitalo | 2009-11-02 15:57:41 -0800

Mark monsters with Summon Ugly Thing chaotic.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
5ec5ae6e0d | Adam Borowski | 2009-11-03 00:03:18 +0100

Drop empty mstuff2.cc

--------------------------------------------------------------------------------
45447fb9f4 | Stefan O'Rear | 2009-11-02 14:03:40 -0800

Factor a visitor object out of apply_to_level

--------------------------------------------------------------------------------
0f69bed947 | Eino Keskitalo | 2009-11-02 23:16:44 +0200

Fix converse potions mutation text.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
25e46658ca | David Lawrence Ramsey | 2009-11-02 15:07:10 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e899ce42db | Stefan O'Rear | 2009-11-02 12:36:30 -0800

Give +Invis the same treatment as +Lev

--------------------------------------------------------------------------------
6722acc40a | Stefan O'Rear | 2009-11-02 12:14:09 -0800

Mapping should be able to see through closed doors

--------------------------------------------------------------------------------
112341df79 | David Lawrence Ramsey | 2009-11-02 13:01:03 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9cb05b863b | Eino Keskitalo | 2009-11-02 12:56:26 -0600

Death oozes eating silver and holy wrath items take damage instead of gain hp.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
4875e5b28f | David Lawrence Ramsey | 2009-11-02 12:33:59 -0600

Until the issue of transformations' being chaotic or not is worked out, don't 
mark any players as chaotic.
(Recommit of the one part of d50bd43ba9936c27f4f90ecd324d14cb52c9f381
that isn't in the branch.)

--------------------------------------------------------------------------------
6bd6976abd | Robert Vollmert | 2009-11-02 19:16:59 +0100

Move new map_lines methods outside USE_TILE #ifdef (greensnark).

--------------------------------------------------------------------------------
df0f714647 | David Lawrence Ramsey | 2009-11-02 12:14:28 -0600

Revert "Merge a few bits of Eino's chaotic_experiment branch that make sense"
This reverts commit d50bd43ba9936c27f4f90ecd324d14cb52c9f381.

--------------------------------------------------------------------------------
5605a2f602 | Steven Noonan | 2009-11-02 10:12:58 -0800

contribs: fix contrib references
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
216618b74d | Robert Vollmert | 2009-11-02 18:55:13 +0100

Make ray.cc ASSERTs a little safer.
Not sure if this helps with the chain lightning problems, but the
assertions should be less likely to trigger wrongly now.

Also deal with "on_corner" in bounce().

--------------------------------------------------------------------------------
8c993f339f | David Lawrence Ramsey | 2009-11-02 11:00:51 -0600

Add spacing and comment fixes.

--------------------------------------------------------------------------------
d50bd43ba9 | David Lawrence Ramsey | 2009-11-02 10:30:56 -0600

Merge a few bits of Eino's chaotic_experiment branch that make sense with the 
current code:
1. Death oozes eating silver and holy wrath items take damage instead of
gaining hp.

2. Mark monsters with Summon Ugly Thing chaotic.

Also, until the issue of transformations' being chaotic or not is worked
out, don't mark any players as chaotic.

--------------------------------------------------------------------------------
3ab78a4e4e | David Lawrence Ramsey | 2009-11-02 08:50:22 -0600

Give scythes a chance of getting the reaping brand.

--------------------------------------------------------------------------------
acca198b69 | David Lawrence Ramsey | 2009-11-02 08:42:16 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f8f1e6fb68 | Enne Walker | 2009-11-02 09:00:06 -0500

Lua builder funcs act on map_lines, not grd.
This lets regular vaults use the same Lua functions that layout vaults
do.  Convert functions in l_dgnbld that acted on grd.  Update layout
vaults to use these new functions.  Also, remove l_dgn_bf, as all of
its functionality is now in l_dgnbld.

--------------------------------------------------------------------------------
0ba4567b4b | Adam Borowski | 2009-11-02 13:15:42 +0100

Make same square teleport no-scatter no-fail and no-contamination.
We can have either this, making SIGHUP on teleport control prompt
make you randomly teleport, or forcing a teleport on reload.

--------------------------------------------------------------------------------
33ae475ef2 | Stefan O'Rear | 2009-11-02 03:50:33 -0800

Handle branded armour for unthinking acts

--------------------------------------------------------------------------------
b6249cf8af | Stefan O'Rear | 2009-11-02 03:40:56 -0800

Removing +Lev items cancels levitation
Complete with removal-over-water blocking!  Logic is very fiddly,
don't trust it to not kill you.

--------------------------------------------------------------------------------
f4ef35e877 | Robert Vollmert | 2009-11-02 11:51:07 +0100

Move random_near_space into new teleport.cc.

--------------------------------------------------------------------------------
6a3d89b3c7 | Stefan O'Rear | 2009-11-02 02:48:15 -0800

Remove mapping abilities from the game
Mapping still exists on cards, scrolls, Xom, and as the passive mutation.
The ball of seeing exists, but will have to be dealt with.

--------------------------------------------------------------------------------
ecca91a48b | Stefan O'Rear | 2009-11-02 02:25:59 -0800

Magic mapping scrolls ignore sealed areas

--------------------------------------------------------------------------------
085f837bc5 | Robert Vollmert | 2009-11-02 10:15:58 +0100

Quick fix for arena dispersal assertions.
The issue is blink referencing player posistion, which is invalid.

Better random_near_space fix will come.

--------------------------------------------------------------------------------
b5cf9fc684 | Stefan O'Rear | 2009-11-02 01:16:01 -0800

Implement conservation mutations for new DS

--------------------------------------------------------------------------------
533471df12 | Adam Borowski | 2009-11-02 09:52:31 +0100

Mention that those vulnerable to arrows with silver arrowheads can still handle 
them.

--------------------------------------------------------------------------------
ff10c868e3 | Adam Borowski | 2009-11-02 09:47:03 +0100

Make it obvious the word "biology" will be replaced.

--------------------------------------------------------------------------------
a3673d5b42 | Matthew Cline | 2009-11-02 00:19:26 -0800

Ziggurats can now be added to the shopping list.

--------------------------------------------------------------------------------
945b0cd650 | Stefan O'Rear | 2009-11-02 00:08:28 -0800

Implement 'Icemail' mutation for new DS

--------------------------------------------------------------------------------
22dc55568b | Matthew Cline | 2009-11-01 21:53:30 -0800

shopping.cc: Note that '$' can access list

--------------------------------------------------------------------------------
f316177ea5 | Steven Noonan | 2009-11-01 21:05:40 -0800

Freetype: attempt to fix build errors when compiling on 10.5 and below
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f607bf40b5 | Matthew Cline | 2009-11-01 20:30:47 -0800

Remove AppHdr.h from header files
gcc precompiled headers didn't work properly if AppHdr.h was included in
include files, or included twice.

--------------------------------------------------------------------------------
9683d9d03b | Matthew Cline | 2009-11-01 20:24:41 -0800

Information on our git-hooks
Local copies of the git hooks, plus intructions on how to change them.

--------------------------------------------------------------------------------
60df59bb21 | Matthew Cline | 2009-11-01 19:19:11 -0800

Use lm_trig.lua instead of lm_func. lua for msgs
Start of triggerable/function_machine merger: use triggerable class
TriggerableMessage for messages instead of message_machine.

--------------------------------------------------------------------------------
f4ea5b334d | Matthew Cline | 2009-11-01 18:19:54 -0800

lm_trig.lua: Handle player_move, player_los
DgnTriggerer now handles the dungeon event player_move and player_los.

--------------------------------------------------------------------------------
aa7e103e58 | Matthew Cline | 2009-11-01 18:04:33 -0800

lm_trig.lua: event() uses method dispatch
Use a method-dispatch type mechanism to deal with the different types of
dungeon events, rather than a long series of "elseif"s.

--------------------------------------------------------------------------------
f3283fc237 | Matthew Cline | 2009-11-01 16:26:05 -0800

git-config.txt: how to list all current options

--------------------------------------------------------------------------------
858419aa4e | Adam Borowski | 2009-11-02 00:47:12 +0100

Let Cb slow down ghoul decay.  Make the message about biology appropiate for 
undead.

--------------------------------------------------------------------------------
dde86f0f2b | Matthew Cline | 2009-11-01 15:12:31 -0800

beam.cc: bug #2890126: cancel from exploding ammo
Tracer beams which used special_explosion didn't fold beam_cancelled
from the special explosion back into the beam proper, making it so that
if you cancelled out from firing an exploding ammo because the explosion
would catch you, it would still fire anyways.

--------------------------------------------------------------------------------
46554fa28c | Matthew Cline | 2009-11-01 14:29:04 -0800

mapdef.cc: add new(ish) ammo brands
Let item specs understand the new(ish) brands "chaos" through "silver".

--------------------------------------------------------------------------------
fa6b7a2ec8 | Robert Vollmert | 2009-11-01 22:16:38 +0100

Remove unused function from geom2d.cc.

--------------------------------------------------------------------------------
81b06ec875 | Robert Vollmert | 2009-11-01 22:15:35 +0100

Some changes to the reflection details.
In particular, don't flatten outer corners, so air elementalists
aren't hurt too badly. Also, start special casing rays that pass
through corners, though they don't currently work the way I want
for diagonals.

Should now be usable including reflections.

TODO
- Diagonal wall reflections, both for corner rays and diagonal
  corridors.
- Reenable chaos beam munging.
- Fix test/los_maps.lua. It would be easy to make the test pass,
  but I should really work out what the result should be first.
- Generally clean up reflections code -- it's a mess.

--------------------------------------------------------------------------------
80034f54ce | Robert Vollmert | 2009-11-01 21:45:27 +0100

Permit rays to go from diamond directly to diamond.
Also recenter the cardinal direction rays.

Before, we didn't have centered rays going straight north/south
or east/west, which was awkward for shift-firing.

--------------------------------------------------------------------------------
0ddf2cdcb9 | Robert Vollmert | 2009-11-01 21:45:26 +0100

Implement reflection (except for the diagonal corridor case).
Reflection is modelled on diamond-shaped features, with gaps
filled in as far as they don't affect LOS.

Working on a case by case analysis: After normalization, a ray
leaves cell * through the south-east diamond face. Then determine
the line of reflection in each case.

--------------------------------------------------------------------------------
be58c68878 | Robert Vollmert | 2009-11-01 21:45:26 +0100

Simplify geom2d ray advance code.

--------------------------------------------------------------------------------
b81b08f9aa | Robert Vollmert | 2009-11-01 21:45:26 +0100

Add a bunch of ASSERTs to ray.cc.

--------------------------------------------------------------------------------
f6cf2bbe46 | Robert Vollmert | 2009-11-01 21:45:26 +0100

Change ray_def bouncing interface.
For one, rename ray_def::advance_and_bounce to ray_def::bounce.

Then, pass a grid of bools for adjacent cells which states which
cells are considered solid (reflecting).

--------------------------------------------------------------------------------
c8f4dd7a1f | Robert Vollmert | 2009-11-01 21:45:25 +0100

Some geom2d changes.
1. Add function to reflect vector at a line.
2. Implement scalar multiplication as external operator.

--------------------------------------------------------------------------------
d106005da5 | Robert Vollmert | 2009-11-01 21:45:25 +0100

Make nextcell and movehalfcell methods of geom::ray.
Seems sensible given they modify the ray, even if it's not really
something intrinsic to a ray.

--------------------------------------------------------------------------------
5dcf2e4501 | Robert Vollmert | 2009-11-01 21:45:25 +0100

Comment bolt::bounce and bolt::reflect.

--------------------------------------------------------------------------------
28bee19400 | Robert Vollmert | 2009-11-01 21:45:25 +0100

ray_def introductory comment.

--------------------------------------------------------------------------------
2130c83144 | Robert Vollmert | 2009-11-01 21:45:24 +0100

Change corner handling.
ray_def should now deal with hitting corners gracefully, though the
raycasting will still discard such rays. If a ray hits a corner
between two diamonds, it will stay there, and calling ray_def::pos
will arbitrarily give one of the squares -- this is not optimal,
but these rays shouldn't usually show up anyway.

--------------------------------------------------------------------------------
a062c664e4 | Robert Vollmert | 2009-11-01 21:45:24 +0100

Adapt l_los.cc to new ray_def and reenable.

--------------------------------------------------------------------------------
b456d4c4fa | Robert Vollmert | 2009-11-01 21:45:24 +0100

Adapt los.cc to new ray_defs.
* Adapt los_ray.
* Register rays using geom::ray.
* Change cellray comparison functions (remove slope_diff which
  I didn't understand, add first_diag which prefers rays that
  start on diagonals for easier meph cloud targetting)

The rays that are actually being cast may need changing. For now,
rays that hit diamond corners are simply discarded.

--------------------------------------------------------------------------------
b9aa144a7f | Robert Vollmert | 2009-11-01 21:45:24 +0100

Replace ray_def by a version using "diamond rays".
Think of the map tiled with squares (the cells).

Previously, a ray was blocked by any part of an opaque cell
except the very corners (to allow looking through diagonal
maps -- we can move through those after all).

In the new version, the rays are the same, but a dungeon feature
is only considered to occupy the the central "diamond": convex
hull of the mid points of the edges. The corners of the
diamond are considered part of the feature, so vertically or
horizontally adjacent walls still block.

This has some effect on LOS: It's a bit more permissive on
diagonals and around corners.

The main advantage is that most rays will now have a footprint
(the sequence of cells it passes through) that is like the
old anti-aliased rays, without requiring any ray munging.

TODO:
  * Make sure we don't hang because of stopping at a corner.
  * Implement proper bouncing.
  * Reenable setting/getting degrees for chaos beams.

--------------------------------------------------------------------------------
03350fc556 | Robert Vollmert | 2009-11-01 21:45:24 +0100

Simplify geom2d.cc to stop at corners.
Remove the unsure fudging. This does introduce the possiblity
of hanging in place.

--------------------------------------------------------------------------------
8145afa69c | Robert Vollmert | 2009-11-01 21:45:23 +0100

Add simple 2d geometry library.
Its point is to allow intersecting rays with grid lines and
advancing rays from one cell to the next.

--------------------------------------------------------------------------------
1c16d581d9 | Robert Vollmert | 2009-11-01 21:45:23 +0100

Remove get/set_degrees from ray_def.
These were used by the temporarily disabled chaos beams.

--------------------------------------------------------------------------------
81392eb43b | Robert Vollmert | 2009-11-01 21:45:23 +0100

Remove ray antialiasing.
Previously, rays were always cut short at corners: If a ray really
went like
.....
@**..
..***
.....
it was cut short (for find_ray/targetting/shooting purposes) to
.....
@*...
..***
.....
Note that a wall at the removed cell would still block the given
ray!

This makes ray footprint length matter, so rays are sorted to
prefer those that pass through fewer cells.

However, this gives quite a few ugly beams, in particular around
corners.

--------------------------------------------------------------------------------
972124395a | Robert Vollmert | 2009-11-01 21:45:23 +0100

Disable l_los.cc.
Disabling the LOS lua bindings while ray.h changes.

--------------------------------------------------------------------------------
2f84398d83 | Robert Vollmert | 2009-11-01 21:45:23 +0100

Temporarily disable chaos beam fudging.
The new ray_def won't have set/get_degrees for a while.

--------------------------------------------------------------------------------
afca77968d | Robert Vollmert | 2009-11-01 21:44:15 +0100

Special case source==target in num_feats_between.
This was causing a crash through monsters::mon_see_cell.
Also special case monster position there.

--------------------------------------------------------------------------------
842722ca2c | David Lawrence Ramsey | 2009-11-01 11:54:48 -0600

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
fde9480145 | David Lawrence Ramsey | 2009-11-01 11:51:07 -0600

Add various color-related fixes.

--------------------------------------------------------------------------------
1fb4a8139f | Charles Otto | 2009-11-01 12:33:04 -0500

Fix an assertion failure triggered via is_hasty_item

--------------------------------------------------------------------------------
6e839a764a | Charles Otto | 2009-11-01 12:18:32 -0500

Give evil_items a higher priority in menu_colours
Move the line for evil_items higher up in menu_colours.txt so that
artefact weapons with evil brands, the lantern of shadows, haste
items etc. get colored as evil for the appropriate gods.

--------------------------------------------------------------------------------
44d5908a94 | Charles Otto | 2009-11-01 11:51:33 -0500

Lantern of shadows conduct issues (eronarn)
ID the lantern of shadows when it first creatures a shadow, consider
that first shadow an unintentional act for conduct purposes.

--------------------------------------------------------------------------------
bd9981c012 | Eino Keskitalo | 2009-11-01 18:31:10 +0200

Proper weights for big baddie maps, plus a comment tweak.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1421adf405 | Eino Keskitalo | 2009-11-01 18:25:46 +0200

New sewer map, plus some tweaks.
Consolidated the various setup functions into one call. Also fix a typo'ed 
glyph in sewer_big_baddie. The new map has a giant slug.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
a0de356f3d | David Lawrence Ramsey | 2009-11-01 10:10:59 -0600

Move checks for a player or monster's being chaotic into another convenience 
function in the actor interface.

--------------------------------------------------------------------------------
7e8ebade4e | Charles Otto | 2009-11-01 11:03:57 -0500

Stop Feawn's item coloring from leaking information (eronarn)
Unidentified evil items were getting flagged as disliked by Feawn.

--------------------------------------------------------------------------------
7c931bf7e5 | Jude Brown | 2009-11-01 19:25:14 +0530

New Volcano, tweak Collapsing Caverns.
Collapsing Caverns now places some smoke after collapsing one of the entrances.

New Volcano: Overflowing lava lake. A lake surrounded by a scattering of loot, 
and every (max 20) turns, the lake overflows. Eventually, it will fill the 
cavern, destroy all the loot, and temporarily strand the player. The lava will 
recede, however, offering a way out.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
e429a3c7e7 | David Lawrence Ramsey | 2009-11-01 07:26:14 -0600

Simplify.

--------------------------------------------------------------------------------
4af76e9099 | David Lawrence Ramsey | 2009-11-01 07:21:13 -0600

Update silver ammo's description to account for its damaging chaotics.

--------------------------------------------------------------------------------
8cad052df1 | Jude Brown | 2009-11-01 18:20:39 +0530

Tweak Trove loot weights.

--------------------------------------------------------------------------------
ec11188245 | Jude Brown | 2009-11-01 17:36:34 +0530

Volcano alterations: change map, fix FunctionMachine.
Collapsing Caverns Volcano map now in line with original design (all chambers 
and possible treasures visible, though threat not). It also now uses 
synchronised FunctionMachines, meaning that saving and reloadnig does not 
collapse all entrances.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
97d457112c | Matthew Cline | 2009-11-01 03:05:46 -0800

Access shopping list via '$'
If you have anything on your shopping list, pressing '$' will display it
as a menu.  You can then select a thing from the menu, either to travel
to it or examine it, like with the stash tracker menu.

--------------------------------------------------------------------------------
9f6de9fef2 | Jude Brown | 2009-11-01 16:20:46 +0530

Lua distance bindings, Volcano tweaks, FogMachine message tweaks.
New binding for coord.cc's distance functions (dgn.distance(x1, y1, x2, y2)), 
lua function "point_in_radius", accepts two dgn.point functions and a radius 
and returns true if point1 is in radius around point2.

Extensive tweaks to FogMachine warning messages: most now accept a "see 
function" as the final parameter, which should take two parameters: an x and a 
y. The function should return true if the player can "see" this point.

Finally, tweaks to Volcanoes: utilise see_function and dgn.point_in_radius to 
provide better warning for lake. Utilise greensnark's new slave/master system 
for chaining FogMachines together in Bunker and Village.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
cc61ee4e8a | Eino Keskitalo | 2009-11-01 12:43:02 +0200

Make silver ammo apply extra hurt to chaotic beings as well. The additional 
creatures affected are ugly things, giant orange brains, shining eyes, 
pulsating lumps and most notably orbs of fire.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
062ea31fff | Matthew Cline | 2009-11-01 01:25:18 -0800

Some useful information on git

--------------------------------------------------------------------------------
204607ad3e | Matthew Cline | 2009-11-01 01:55:04 -0700

Split up monstuff.cc
A lot of monstuff.cc was moved into mon-abil.cc (monster abilities),
mon-act.cc (the main monster loop), mon-behv.cc (monster behaviour) and
mon-cast.cc (monster spells).  mstuff2.cc was completely merged into
other files.

--------------------------------------------------------------------------------
82ab217c80 | David Ploog | 2009-11-01 05:45:12 +0100

Simplify branch check in new vault.

--------------------------------------------------------------------------------
766f9b2f52 | David Ploog | 2009-11-01 05:23:26 +0100

New vaults (Neil Middleton).

--------------------------------------------------------------------------------
020b3d8b5c | Matthew Cline | 2009-10-31 19:33:56 -0700

monster.cc: Split of monsters clasxs methods
First step in splitting up mon-util.cc: move monsters class methods out
into monster.cc

--------------------------------------------------------------------------------
a57f61d4c8 | Charles Otto | 2009-10-31 21:42:05 -0400

Fix bug [2890062] zot exit portals not working.

--------------------------------------------------------------------------------
dd04f7f28d | David Lawrence Ramsey | 2009-10-31 20:01:40 -0500

Another typo fix.

--------------------------------------------------------------------------------
7081bee00e | David Lawrence Ramsey | 2009-10-31 19:59:47 -0500

Comment fixes.

--------------------------------------------------------------------------------
1c13fa5dc9 | David Lawrence Ramsey | 2009-10-31 19:57:41 -0500

Fix typo.

--------------------------------------------------------------------------------
16f4be7559 | Charles Otto | 2009-10-31 20:55:48 -0400

Fix bug [2874237] monster info display corruption
Examining monsters with ctrl-X can lead to message corruption if the
title and body fields of the describe_info struct used by
process_description take up lines than fit in the message area.

This patch avoid the problem by allowing process_description to print
just the title field if title + body would take up too many lines.

Also make view_desc_proc start one line later since it seemed to be
trying to print the first line it was given one line above where it
should have been.

--------------------------------------------------------------------------------
ada7f5b32b | Matthew Cline | 2009-10-31 17:47:47 -0700

level_design.txt: n-headed hydras and large slimes
Document usage of "n-headaed hydra" and "large/enourmous/etc slime
creature".

--------------------------------------------------------------------------------
123f12ca47 | Adam Borowski | 2009-11-01 01:29:47 +0100

A new vault (abrahamwl)

--------------------------------------------------------------------------------
432fd31116 | David Lawrence Ramsey | 2009-10-31 18:19:04 -0500

Simplify (very) ugly thing color-related functions.

--------------------------------------------------------------------------------
e2270069f7 | David Lawrence Ramsey | 2009-10-31 18:17:58 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
fa2f58d30f | Eino Keskitalo | 2009-11-01 00:04:36 +0200

Make creatures with AF_KLOWN considered chaotic. (doy, sorear)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ea446e0e4f | Robert Vollmert | 2009-10-31 22:49:13 +0100

Make steam block LOS again.

--------------------------------------------------------------------------------
5b0503840d | David Lawrence Ramsey | 2009-10-31 16:29:22 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
36c1e052d3 | David Lawrence Ramsey | 2009-10-31 15:58:22 -0500

Implement [2888962]: Disallow shapeshifters from changing form while sleeping.

--------------------------------------------------------------------------------
a418d15295 | David Lawrence Ramsey | 2009-10-31 15:09:10 -0500

Merge mons_holiness() into monster::holiness(), and add an is_unholy() 
convenience function.

--------------------------------------------------------------------------------
c96b134988 | Adam Borowski | 2009-10-31 19:51:06 +0100

A slightly better, but more redundant, title for Cb worshippers.

--------------------------------------------------------------------------------
af41e26b03 | David Lawrence Ramsey | 2009-10-31 13:53:25 -0500

Simplify description of holy wrath weapons.

--------------------------------------------------------------------------------
f261fbf624 | Darshan Shaligram | 2009-11-01 00:12:43 +0530

Move dat/debug-los.des -> test/des/debug-los.des.

--------------------------------------------------------------------------------
67493d9323 | Darshan Shaligram | 2009-11-01 00:12:43 +0530

loadmaps.lua auto-loads .des files in dat.

--------------------------------------------------------------------------------
60ac7168be | David Lawrence Ramsey | 2009-10-31 13:41:08 -0500

Add typo and wording fixes to the descriptions of the new launcher and ammo 
types.

--------------------------------------------------------------------------------
7106e3be7e | David Lawrence Ramsey | 2009-10-31 12:23:07 -0500

Simplify refreshing the quiver display when Elyvilon dulls your quivered 
missiles.

--------------------------------------------------------------------------------
860800690c | David Lawrence Ramsey | 2009-10-31 12:13:22 -0500

And do the same for Feawn.

--------------------------------------------------------------------------------
13408c6a52 | David Lawrence Ramsey | 2009-10-31 12:11:22 -0500

For consistency, make the previous check generic to the good gods, since chaos 
weapons are potentially evil weapons.

--------------------------------------------------------------------------------
756f57690d | David Lawrence Ramsey | 2009-10-31 12:07:45 -0500

Ensure that Zin's name never goes on artefact weapons with the chaos brand.  
Such weapons aren't currently generated, but do it just in case.

--------------------------------------------------------------------------------
9e289c6c51 | Darshan Shaligram | 2009-10-31 22:21:03 +0530

s/helper/listener/ for function machines that act as listeners.

--------------------------------------------------------------------------------
ad11744e5d | Darshan Shaligram | 2009-10-31 22:16:46 +0530

lmark.synchronized_markers(): apply one marker's effects to multiple points 
simultaneously.
synchronized_markers() takes a marker, and a list of method names to override,
and returns a set of markers that fire simultaneously, to allow, say, fog
machines that fire at random intervals, but always fire in unison. lm_mslav.lua
has details. volcano.des has an example volcano entry vault that uses this.

Allow fetching a list of Lua markers/marker positions by property value.

Renamed dgn.find_marker_prop -> dgn.find_marker_position_by_prop.

s/helper/listener/ for fog machine listeners.

--------------------------------------------------------------------------------
23f8631266 | Robert Vollmert | 2009-10-31 17:38:52 +0100

Fix a few things in previous commit.

--------------------------------------------------------------------------------
09687dbfa8 | abrahamwl | 2009-10-31 17:31:05 +0100

Combine mons_res_foo(monsters *m) into monsters::res_foo()
...and replace all references to mons_res_foo() with res_foo(). Where "foo"
is one of the many different things monsters can resist that happened to
have a function of that format.

TGfR! (Thank God for Regex!)

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
c1d8dc0f1c | Charles Otto | 2009-10-31 12:19:25 -0400

Refresh the quiver and weapon slots when changing gods (bug [2889493])

--------------------------------------------------------------------------------
11ab202827 | David Lawrence Ramsey | 2009-10-31 11:06:33 -0500

Add whitespace fixes.

--------------------------------------------------------------------------------
0299c91350 | David Lawrence Ramsey | 2009-10-31 10:41:17 -0500

Properly mark artefacts that make you angry or let you go berserk as hasty 
items for Cheibriados' purposes.

--------------------------------------------------------------------------------
7070dd05f0 | Charles Otto | 2009-10-31 11:10:43 -0400

Fix inverted logic for canceling transformation (bug [2886011])

--------------------------------------------------------------------------------
a034529ce4 | Enne Walker | 2009-10-31 11:09:28 -0400

Whitespace.

--------------------------------------------------------------------------------
95746496df | Enne Walker | 2009-10-31 11:09:28 -0400

Adding you.in_branch(string) as a lua function.
This also removes you.where_are_you() so as not to require lua scripts to
know the value of C++ enums.  This change also fixes stricmp incorrectly
falling through to strcmp on non-MSVC platforms.

--------------------------------------------------------------------------------
3877db329c | David Lawrence Ramsey | 2009-10-31 10:05:42 -0500

Comment fix.

--------------------------------------------------------------------------------
6e48e349fe | Eino Keskitalo | 2009-10-31 16:59:54 +0200

Add new portal vault files to the .des file list.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3f4e793385 | Eino Keskitalo | 2009-10-31 16:59:53 +0200

Remove padding from sewer.des as well.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
9de5340aff | David Lawrence Ramsey | 2009-10-31 09:50:53 -0500

Fix polymorphing monsters into slime creatures by setting the monster number 
properly in define_monster().

--------------------------------------------------------------------------------
7b790d22c6 | David Lawrence Ramsey | 2009-10-31 09:50:19 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d7c6fd9aec | David Lawrence Ramsey | 2009-10-31 09:12:59 -0500

Ensure that ugly things' colors are always low, just in case, and use 
random_colour() for ETC_RANDOM.

--------------------------------------------------------------------------------
ebd817b97a | David Lawrence Ramsey | 2009-10-31 09:00:43 -0500

Implement [2889948]: In the console version, make (very) ugly thing corpses 
randomly cycle through all their available colors instead of always being 
(light)red.

--------------------------------------------------------------------------------
a6fe99646b | Matthew Cline | 2009-10-31 06:33:00 -0700

monstuff.cc: Don't polymorph into slime creatures.
Polymorphing into a slime creature was crashing, because the polymorph
left the monster's number member at 0 rather than 1, so that the monster
naming code was trying to access cell -1 of an array.

--------------------------------------------------------------------------------
76596a5ea2 | abrahamwl | 2009-10-31 06:29:17 -0700

Combine mons_is_submerged(monsters *m) into monsters::submerged()
...and replace all references to mons_is_submerged() with submerged().

It's a dirty job, but someone's got to do it. (Thank God for regex!)

--------------------------------------------------------------------------------
e232445b81 | Steven Noonan | 2009-10-31 06:29:17 -0700

makefile: add cflag difference check
This should eliminate occasional inconsisten builds caused by
switching between 'make wizard TILES=y' and 'make wizard', and
other such bad combination switches.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b57dddb1a1 | Steven Noonan | 2009-10-31 06:29:16 -0700

version.cc: combine CFLAGS_L and CFLAGS
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f3e85be18a | David Lawrence Ramsey | 2009-10-31 08:00:39 -0500

Adjust the chance for randarts based on mundane items again.

--------------------------------------------------------------------------------
6a27579279 | David Lawrence Ramsey | 2009-10-31 07:58:51 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4f4bf0d17a | Robert Vollmert | 2009-10-31 13:58:22 +0100

Remove unnecessary stack iterator test.
Pointed out by Steve on c-r-d.

--------------------------------------------------------------------------------
d7c89049ee | Eino Keskitalo | 2009-10-31 14:55:37 +0200

Remove pools that aren't there to impede digging. Also, remove all xxxxx 
padding that's not necessary, since the maps look cooler this way. (And their 
actual shape is often easier to discern.)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
77b9d999ee | David Lawrence Ramsey | 2009-10-31 07:23:39 -0500

After some thought, allow mundane items to be artefacts again, but more rarely 
than non-mundane items.  After all, there are some unrandarts made from mundane 
items, so there's precedent for it.

--------------------------------------------------------------------------------
d57059f214 | Eino Keskitalo | 2009-10-31 14:17:51 +0200

Add no_monster_gen to most ice cave entries.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
fb72f08444 | Eino Keskitalo | 2009-10-31 14:17:50 +0200

Add patrolling as a tag to vim hilighting.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
567a7b5391 | Eino Keskitalo | 2009-10-31 14:17:48 +0200

Tag most Ice Cave entries as patrolling.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
916eefc5b8 | David Lawrence Ramsey | 2009-10-31 07:02:48 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
49a8679145 | Matthew Cline | 2009-10-31 04:57:05 -0700

visible -> non-visible slime merge
If, during a slime creature merge, the one which 'dies' is visible to
the player, but the one which is being merged into isn't visible, then
give a "suddenly disappears" message.

--------------------------------------------------------------------------------
5de294e474 | Matthew Cline | 2009-10-31 04:45:14 -0700

arena.cc: Respawning merged slime creatures
Deal with slime creatures 'dying' when they merge with another slime
creature.  Still not quite working 100% properly.

--------------------------------------------------------------------------------
504d29bc76 | Jude Brown | 2009-10-31 04:15:30 -0700

Volcano tweaks, you.where_are_you()
you.where_are_you dlua binding, further Volcano tweaks.

Signed-off-by: Matthew Cline <zelgadis@sourceforge.net>

--------------------------------------------------------------------------------
1eb5294b87 | Matthew Cline | 2009-10-31 02:59:27 -0700

Can specify size in slime creature monster spec
You can now use monster specs like "titanic slime creature".  The
initial HP given to them in _place_monster_aux() might need tweaking.

--------------------------------------------------------------------------------
ec58c7bd88 | Jude Brown | 2009-10-31 11:26:40 +0200

Some minor tweaks to Volcanoes.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
59068ce8da | Matthew Cline | 2009-10-31 02:16:00 -0700

Auto-update shopping-list when new items seen
Automatically update the shopping list if you see the same item for less
cost in another shop, or if you get an item identical to one on the
shopping list (currently only applies to jewellery, books and staves).

--------------------------------------------------------------------------------
ea0a802d98 | Eino Keskitalo | 2009-10-31 11:00:49 +0200

Up Gastronok's HD to 12 and HP to 150. (due)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
de39886396 | Robert Vollmert | 2009-10-31 09:39:53 +0100

Fix more missing includes. Sorry.

--------------------------------------------------------------------------------
72891addff | Robert Vollmert | 2009-10-31 09:39:53 +0100

Fix missing include.

--------------------------------------------------------------------------------
16fabb6ee1 | Robert Vollmert | 2009-10-31 09:39:52 +0100

Trivial losight test case for performance testing.

--------------------------------------------------------------------------------
ee3b9a6aba | Robert Vollmert | 2009-10-31 09:39:52 +0100

Remove unnecessary header include.

--------------------------------------------------------------------------------
fa5e0146d5 | David Lawrence Ramsey | 2009-10-30 23:57:46 -0500

Fix compilation.

--------------------------------------------------------------------------------
ef456d5cbf | abrahamwl | 2009-10-30 21:37:19 -0700

Combine mons_is_sleeping(monsters *m) into monsters::asleep()
...and replace all references to mons_is_sleeping with asleep.

--------------------------------------------------------------------------------
9e0fc66a0d | Steven Noonan | 2009-10-30 20:58:12 -0700

msvc: fix tilegen debug build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d2b03c1493 | Steven Noonan | 2009-10-30 20:56:08 -0700

tags.cc: fix msvc precompiled header placement
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d3ca060ac6 | Steven Noonan | 2009-10-30 20:28:55 -0700

msvc: fix compile errors
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
8db5bdfd3d | David Lawrence Ramsey | 2009-10-30 21:42:02 -0500

After some more thought, give gnolls a chance to get clubs again, as well as 
whips.

--------------------------------------------------------------------------------
3f33b18c6c | David Lawrence Ramsey | 2009-10-30 21:33:37 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
6a55766e50 | Charles Otto | 2009-10-30 22:22:05 -0400

Restructure the slime creature merge/split code a little.
This is mostly just refactoring, but there are a couple gameplay
changes:

Forbid merging/splitting when a slime creature is disabled in some way
(confused paralyzed etc.)

Experimentally stop requiring slime creatures to be at full HP to
split.

--------------------------------------------------------------------------------
94f7ad9ad9 | David Lawrence Ramsey | 2009-10-30 20:33:30 -0500

Add spacing fix.

--------------------------------------------------------------------------------
b930ff879e | David Lawrence Ramsey | 2009-10-30 20:31:40 -0500

Comment fix.

--------------------------------------------------------------------------------
50763db13b | David Lawrence Ramsey | 2009-10-30 20:28:52 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
6420b73c2e | David Lawrence Ramsey | 2009-10-30 20:27:40 -0500

Simplify.

--------------------------------------------------------------------------------
48edd0b868 | David Lawrence Ramsey | 2009-10-30 20:18:20 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
38579f4d00 | David Lawrence Ramsey | 2009-10-30 19:45:08 -0500

Tweak gnolls' weapons one more time, to ensure that they're all medium-sized 
and have roughly the same damage as before.

--------------------------------------------------------------------------------
d315563b40 | Charles Otto | 2009-10-30 20:31:32 -0400

Merge a change to monster_info that got lost somehow.

--------------------------------------------------------------------------------
38e8db8e3c | Charles Otto | 2009-10-30 20:31:31 -0400

Add a screen flash when slime creatures merge.
It's LIGHTGREEN.

--------------------------------------------------------------------------------
2fb3e671aa | Charles Otto | 2009-10-30 20:31:30 -0400

A few slime creature tweaks
On second thought don't stack HD when merging.
Merge monster flags when merging.
Merging costs the merged slime a turn.

--------------------------------------------------------------------------------
c7d2e28d17 | Charles Otto | 2009-10-30 20:31:29 -0400

Various slime creature improvements
Make splitting while out of sight actually work

When merging average enchantment durations for the two slimes
When splitting add the parents ench durations to the offspring slime

Better messaging for merging/splitting

Cap the merge count to 5, use size adjectives instead of numbers for
the combiend slime creature names.

Don't group different size slime creatures together in the monster list

--------------------------------------------------------------------------------
d0f35e86de | Charles Otto | 2009-10-30 20:31:27 -0400

Preliminary support for slime creatures merging and splitting.
A slime creatures will merge onto an adjacent slime creature if the
merge brings it closer to its target, merging only happens when slime
creatures aren't wandering, sleeping, or fleeing.

A slime creature will split (if it merged previously) if it is at full
hp and is resting or wandering.

I added a hack to make the experienced gained for merged slime
creatures approximately equal to killing however many were merged
individually, exp from merged slimes may be too low now.

For now the number of slime  creatures merged into one J is given
explicitly in their description (one-blob slime creature), that
should get changed at some point.

Damage and maxHP for merged slime creatures are linear with the
number merged, an arbitrary cap of 8 is currently in place.

--------------------------------------------------------------------------------
387e5d2db1 | David Lawrence Ramsey | 2009-10-30 19:29:40 -0500

Give gnolls a chance of getting a whip, as they can get it elsewhere, and it 
fits the example of Grum.

--------------------------------------------------------------------------------
6b175b0347 | David Lawrence Ramsey | 2009-10-30 19:26:20 -0500

Revert the changes to uniques' weapons and armor in volcano.des, as they're for 
flavor and survival purposes.

--------------------------------------------------------------------------------
2a304ef0da | David Lawrence Ramsey | 2009-10-30 18:47:04 -0500

Comment fix.

--------------------------------------------------------------------------------
76fe900e18 | Adam Borowski | 2009-10-30 23:46:21 +0100

Fix wrong comment char [BR 2889549].

--------------------------------------------------------------------------------
cd8b9170c5 | Adam Borowski | 2009-10-30 23:11:16 +0100

Encase a vault in rock so the builder won't attach corridors to the back.

--------------------------------------------------------------------------------
58618a1dde | Adam Borowski | 2009-10-30 23:07:24 +0100

A tiny typo that managed to confuse us...

--------------------------------------------------------------------------------
083f578d8b | Adam Borowski | 2009-10-30 23:03:52 +0100

Death to hippies!

--------------------------------------------------------------------------------
c72f09adfa | Robert Vollmert | 2009-10-30 21:32:06 +0100

Splitting up stuff.cc.
New: colour.cc, coord.cc, coordit.cc, random.cc, rng.cc.

--------------------------------------------------------------------------------
764ee1d67a | David Lawrence Ramsey | 2009-10-30 13:40:41 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4ec3018c07 | David Lawrence Ramsey | 2009-10-30 13:19:56 -0500

And tweak them again, as Grum is always supposed to wear an animal skin 
according to his description.

--------------------------------------------------------------------------------
d3e6966626 | David Lawrence Ramsey | 2009-10-30 11:49:59 -0500

Tweak uniques' weapons and armor in volcano.des and makeitem.cc to only have 
the flaming/fire resistance brands where they'd normally show up in-game.

--------------------------------------------------------------------------------
c46d8d1daa | David Lawrence Ramsey | 2009-10-30 11:18:53 -0500

Comment fix.

--------------------------------------------------------------------------------
b57925e63b | David Lawrence Ramsey | 2009-10-30 10:44:18 -0500

After some thought, and considering that animal skins show up less often now, 
make them mundane items.

--------------------------------------------------------------------------------
b7077e621c | David Lawrence Ramsey | 2009-10-30 10:36:00 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
53aa6239b1 | David Lawrence Ramsey | 2009-10-30 10:31:30 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5a65031b5a | Adam Borowski | 2009-10-30 13:16:00 +0100

Blessed Blades created the round before shouldn't be "ancient artifacts". I 
didn't make them "new artifacts" either -- they're enchantable now.

--------------------------------------------------------------------------------
8c8e062020 | Robert Vollmert | 2009-10-30 11:29:12 +0100

Initialize __echo in lua interpreter.

--------------------------------------------------------------------------------
5b1a286168 | Matthew Cline | 2009-10-30 01:23:33 -0700

Interrupt less often when repeating wiz commands
Interrupt/cancel command repetition less often when repeating a wizard
command.

--------------------------------------------------------------------------------
c6fc0f2147 | Matthew Cline | 2009-10-30 00:26:31 -0700

religion.cc: Don't slimify god gifts
Jiyva's retribution shouldn't slimify the god-gifts of other gods.

--------------------------------------------------------------------------------
083094948e | David Lawrence Ramsey | 2009-10-29 21:19:18 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
66c65dac49 | David Lawrence Ramsey | 2009-10-29 21:17:21 -0500

Simplify check for good gods and potentially evil items.

--------------------------------------------------------------------------------
6aaff50007 | David Lawrence Ramsey | 2009-10-29 20:57:53 -0500

Add whitespace fixes.

--------------------------------------------------------------------------------
84ad1b209d | Enne Walker | 2009-10-29 21:43:15 -0400

Whitespace.

--------------------------------------------------------------------------------
2029620b59 | Enne Walker | 2009-10-29 21:42:17 -0400

Allow assignment to multiple glyphs at once.
All glyph assignment declarations in maps (e.g. COLOUR, KPROP, FTILE)
can now assign multiple glyphs simultaneously.  This should make some
vault definitions less cumbersome.  See the doc for more details.

--------------------------------------------------------------------------------
2386094200 | Matthew Cline | 2009-10-29 18:36:53 -0700

FR 2017276: '<' and '>' both work for portal/shop
Up and down ('<' and '>') now both work for entering shops and portals.

--------------------------------------------------------------------------------
a7aeeaec76 | David Ploog | 2009-10-30 02:21:29 +0100

Tiny bit of randomisation for volcanoes.

--------------------------------------------------------------------------------
e87d3c4781 | David Lawrence Ramsey | 2009-10-29 20:11:34 -0500

Fix check for good gods' and Feawn's disliking weapons of chaos so that it 
actually works.  Note that the first of these is no longer in 
good_god_hates_item_handling(), as weapons of chaos are only potentially evil.  
Also, add wands of random effects to the list of potentially evil items, as 
they might as well be wands of chaos.

--------------------------------------------------------------------------------
33606730c0 | David Lawrence Ramsey | 2009-10-29 20:10:58 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
efa07aeb2d | David Lawrence Ramsey | 2009-10-29 19:24:03 -0500

Replace tabs with spaces.

--------------------------------------------------------------------------------
3ee3c36bb7 | David Lawrence Ramsey | 2009-10-29 19:19:00 -0500

When using items that can directly turn monsters to zombies (weapons of shadows 
or chaos) as a good god worshipper, ensure that the "turns into a zombie" 
message always comes before the "enraged by your holy aura" message.

--------------------------------------------------------------------------------
0b6632423e | David Lawrence Ramsey | 2009-10-29 19:19:00 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
38f80187eb | Adam Borowski | 2009-10-30 01:00:57 +0100

Being hasted upon being hit by a weapon of chaos shouldn't cause Cb penance.

--------------------------------------------------------------------------------
99e4ad7726 | Eino Keskitalo | 2009-10-30 01:54:14 +0200

Generate the new ammo brands randomly.
Weights now being:

Flame 3
Frost 3
Poiso 2
Penet 1
Reapi 1
Silve 1
Steel 1
Dispe 1
Explo 2

Also gave all the new brands a shopping price multiplier - *30, same as curare.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
86b09e2f21 | Eino Keskitalo | 2009-10-30 01:33:29 +0200

SPWPN_SHADOW -> SPWPN_REAPING (my bad)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
929d367d19 | Eino Keskitalo | 2009-10-30 01:10:25 +0200

Rename shadows brand into reaping for unique name.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
67a0bc6e88 | Adam Borowski | 2009-10-29 23:48:05 +0100

Add milestones to Shrines, make them luniq. (TGW)

--------------------------------------------------------------------------------
c36e2b4982 | David Lawrence Ramsey | 2009-10-29 17:53:26 -0500

Tweak amulet of the gourmand description, partially based on suggestions in 
[2881667].

--------------------------------------------------------------------------------
ad124f324f | David Lawrence Ramsey | 2009-10-29 17:46:18 -0500

Typo fix.

--------------------------------------------------------------------------------
81494df938 | David Lawrence Ramsey | 2009-10-29 16:37:35 -0500

Disallow artefacts with the shadow brand for necromancy-hating gods.

--------------------------------------------------------------------------------
44f905e537 | abrahamwl | 2009-10-29 23:08:14 +0200

Bolt of Iron->Iron Shot, Ice Bolt->Fling Icicle
Based on FR 1801710

Bolt of Iron and Ice Bolt were both mechanically different from the other
"bolts" in that they didn't penetrate targets. In addition, Ice Bolt was
very easy to confuse with Bolt of Cold. So they got their names changed to
Iron Shot and Fling Icicle, respectively. This change is both external (in
the game output) and internal (how the code refers to the spells). This
commit also changes the names of the spells in the data files (ie. for
tiles) and the names of some data files themselves (tile images).
(See the file list.)

Note that Lemuel's comment about the concept (and tile art)of "bolt" not
fitting with the way the "bolt" spells behave is still valid, but that's
another issue. I think this stems from a confusion between lightning
"bolts" and crossbow "bolts."

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
1a22a6c5f2 | David Lawrence Ramsey | 2009-10-29 15:54:37 -0500

Readd prayer duration fixes for gods who accept fresh corpses or butchery, as 
long prayers in such cases are redundant.

--------------------------------------------------------------------------------
82ee11b072 | Adam Borowski | 2009-10-29 21:01:14 +0100

Slow down the monster spawn rate in the Abyss for worshippers of Cheibriados. 
Currently, this god makes Abyss a hell, let's let him compensate a bit...

--------------------------------------------------------------------------------
37cf70232c | Adam Borowski | 2009-10-29 20:30:56 +0100

Typo fix: "the it".

--------------------------------------------------------------------------------
7e52c55e70 | Robert Vollmert | 2009-10-29 19:00:40 +0100

Rewrite _set_nearest_monster_foe.
With the previous one_chance_ins, it was failing quite often with
enemies in view.

--------------------------------------------------------------------------------
142509155d | Robert Vollmert | 2009-10-29 19:00:40 +0100

Remove mons_friendly special casing in arena.
This was preventing _mons_check_set_foe from choosing targets
in the arena.

Also some checks to avoid setting MHITYOU and you.pet_target
to fail triggering arena asserts.

--------------------------------------------------------------------------------
f8aaba03ea | David Lawrence Ramsey | 2009-10-29 12:50:46 -0500

Typo fixes.

--------------------------------------------------------------------------------
b1e8120d61 | David Lawrence Ramsey | 2009-10-29 11:37:44 -0500

Add comment fixes.

--------------------------------------------------------------------------------
92a7420db9 | David Lawrence Ramsey | 2009-10-29 11:25:56 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c180044aa2 | David Lawrence Ramsey | 2009-10-29 10:40:35 -0500

Simplify.

--------------------------------------------------------------------------------
856829a7da | David Lawrence Ramsey | 2009-10-29 10:30:42 -0500

Fix part of [2879725]: Don't let Xom close an open door if monsters or items 
are in the way.

--------------------------------------------------------------------------------
264f2e4835 | David Lawrence Ramsey | 2009-10-29 10:24:04 -0500

Remove unneeded blank lines.

--------------------------------------------------------------------------------
0494f2c39e | Eino Keskitalo | 2009-10-29 17:00:28 +0200

Add Volcanoes, early-midgame portal vaults by Jude, with dpeg and Zaba.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3e9a111e4c | Matthew Cline | 2009-10-29 06:28:55 -0700

Bug #2887690: fixed by Robert's patch (fc6f5d1b)

--------------------------------------------------------------------------------
fc6f5d1bfa | Robert Vollmert | 2009-10-29 12:58:23 +0100

Fix initialisation of autoex in travel_exclude.
Hopefully this fixes the autoremove-on-restore bug (2887690).

--------------------------------------------------------------------------------
2e40e11193 | Jude Brown | 2009-10-29 12:06:25 +0100

"Helper" FunctionMachines, messages for FogMachines.
Allow FunctionMachines to act as a "helper" for another marker and implement 
use of these in FogMachines. Helper FunctionMachines can provide on-trigger 
messages for FogMachines, and pre-trigger warning messages.

Also includes three FogMachine-specific helpers: warning_machine, 
trigger_machine and tw_machine, providing simple and easy access to 
warning/trigger messages.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
705ce3aad8 | Robert Vollmert | 2009-10-29 12:05:34 +0100

Initialize foepos to (0,0) instead of (-1,-1).
Should fix a number of assertion errors.

--------------------------------------------------------------------------------
264be66598 | Matthew Cline | 2009-10-29 04:00:59 -0700

exclude.cc: was passing too many parms to mprf()

--------------------------------------------------------------------------------
cecf00e329 | Eino Keskitalo | 2009-10-29 12:51:20 +0200

Regroup .des files in loadmaps.lua. Signed-off-by: Eino Keskitalo 
<evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ef429e1b78 | Matthew Cline | 2009-10-29 03:48:02 -0700

Bug 2887690: hack to fix false-autoexclude problem
GCC 4.3.2 -O1 and -O2 optimization causes some weirdness with
maybe_remove_autoexclusion() in exclude.cc.  This hack fixes the problem
and gives a diagnostic message when the problem is encountered.

--------------------------------------------------------------------------------
b47f233b39 | Robert Vollmert | 2009-10-29 10:52:29 +0100

Reset seen_context in monsters::reset.

--------------------------------------------------------------------------------
3e559f10ad | Stefan O'Rear | 2009-10-29 10:38:15 +0100

Make passive maping use a circular region
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
ebfbb6fbb7 | Stefan O'Rear | 2009-10-29 10:38:11 +0100

Give deep dwarves passive, not active mapping
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
3b5ca2d045 | Stefan O'Rear | 2009-10-29 10:38:07 +0100

Nerf low levels of the blink mutation so blink 2 matters
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
b3e04f70d2 | Stefan O'Rear | 2009-10-29 10:37:59 +0100

Reword passive map description
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
b8fa5abe49 | Robert Vollmert | 2009-10-29 10:28:12 +0100

Fix handling of empty input lines.

--------------------------------------------------------------------------------
84b73c76a3 | Matthew Cline | 2009-10-29 01:43:53 -0700

player::del_gold(): use set_gold(), not add_gold()

--------------------------------------------------------------------------------
66d9bbd835 | Matthew Cline | 2009-10-29 01:06:07 -0700

FR 2839627: notify when player has enough gold
The basics of a wish-list/shopping-list.  While in a shop the
shopping-list can be modified, and the player is notified as soon as
they have enough money to buy things on the shopping-list.

--------------------------------------------------------------------------------
aefbb02ff5 | Matthew Cline | 2009-10-29 01:03:34 -0700

store.{cc,h}: Handle level_id and level_pos
level_id and level_pos instances can now be stored in CrawlHashTables
and CrawlVectors.

--------------------------------------------------------------------------------
f5cf3b8200 | Matthew Cline | 2009-10-29 00:59:40 -0700

Pre- and post-savefile callbacks.
The constructor of class SavefileCallback can be used to add a callback
which is called before a game is saved and after it's restored.  This is
useful to move data in and out of you.props, or after a restore if
there's data not stored in the savefile which can be easily regenerated.

NOTE: I experienced some weirdness with C++ global constructors, and
since global constructors probably differ with compiler and system,
until this has been tested on all compiler/system combinations, any code
which uses the callbacks should fail gracefully if the callbacks aren't
called.

--------------------------------------------------------------------------------
e083e2c09a | Matthew Cline | 2009-10-29 00:57:54 -0700

level_pos: add methods current() and is_on()
Added to level_pos the static method current(), similar to
level_id::current(), and is_on(level_id lev), which returns true if the
level_pos is on the given level_id.

--------------------------------------------------------------------------------
a94e957868 | David Lawrence Ramsey | 2009-10-28 14:08:28 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
46c80af550 | David Lawrence Ramsey | 2009-10-28 14:04:58 -0500

Simplify.

--------------------------------------------------------------------------------
6a490e36dd | abrahamwl | 2009-10-28 19:09:26 +0100

rC+ protects monsters from being slowed by cold.

--------------------------------------------------------------------------------
06bf811e45 | abrahamwl | 2009-10-28 19:07:59 +0100

Beams can be assigned custom hit verbs now
If a beam is not, old behavior is default.

--------------------------------------------------------------------------------
4e14802376 | Adam Borowski | 2009-10-28 18:20:42 +0100

Limit the guaranteed early altars to Feawn and Cb to one each.

--------------------------------------------------------------------------------
184bf73204 | David Lawrence Ramsey | 2009-10-28 12:09:48 -0500

Add wording fixes.

--------------------------------------------------------------------------------
7bf7993409 | David Lawrence Ramsey | 2009-10-28 11:41:20 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
efa51af108 | Robert Vollmert | 2009-10-28 17:09:47 +0100

Move a little more code out of newgame.cc.

--------------------------------------------------------------------------------
890ed0d6d4 | Adam Borowski | 2009-10-28 15:31:00 +0100

Disable dummy vaults for D:1-7, so something else than altars can likely show 
up.  Besides, there's more than enough new vaults to make the dummies 
unnecessary -- perhaps they should be deleted entirely?

--------------------------------------------------------------------------------
cfcca7469d | Adam Borowski | 2009-10-28 15:20:02 +0100

Allow Feawn's and Cheibriados' altars before D:8/D:7.

--------------------------------------------------------------------------------
1cd5f59969 | abrahamwl | 2009-10-28 14:54:38 +0100

Electrocution discharge in water ala FR 1637214
Weapons of electrocution now discharge in water, if the target is
touching the water and not rElec, hitting all adjacent
water-touching non-rElec creatures for about half the normal
electrocution damage.

Particularly notable new code is the implementation of an
area-of-effect callback for beams, as well as a function and
structure for weapon effects that should only happen after the
target would have died, if it was going to die, and therefore
cannot safely make use of its data.

Issues that still need to be decided:
- How doe Xom feel about this? (eg. If creatures hurt themselves
  this way.)
- Should it ask you if you want to attack when you know the
  discharge will hit yourself?

--------------------------------------------------------------------------------
67ab2ff904 | Adam Borowski | 2009-10-28 14:39:23 +0100

An early vault with a quarterstaff of chaos.

--------------------------------------------------------------------------------
ed83b86f12 | Robert Vollmert | 2009-10-28 12:51:30 +0100

Luaterp: introductory comments and renaming.
To use, set "delay_message_clear = true" and call wizard mode Ctrl+T.

To echo return values from statements, prefix them with '=' and
define the global __echo. (__echo = crawl.mpr will work for single
return values.)

--------------------------------------------------------------------------------
de5375ccbc | Robert Vollmert | 2009-10-28 12:44:10 +0100

Convert to cancelable_get_line_autohist.

--------------------------------------------------------------------------------
55ff07fddd | Robert Vollmert | 2009-10-28 12:40:18 +0100

A lot more functional, now, though still deficient.

--------------------------------------------------------------------------------
0f91bf2a78 | Robert Vollmert | 2009-10-28 11:44:55 +0100

Partial lua interpreter.

--------------------------------------------------------------------------------
4f1035708a | Robert Vollmert | 2009-10-28 11:27:13 +0100

Replace some more occurrences of -1 by MONS_NO_MONSTER.

--------------------------------------------------------------------------------
c1121941e7 | Matthew Cline | 2009-10-27 21:39:14 -0700

acr.c: Prompt to open excluded doors
If an exclusion is placed right on top of a door, prompt before opening
it.

--------------------------------------------------------------------------------
12f74fc875 | Matthew Cline | 2009-10-27 20:25:02 -0700

(MONS_PROGRAM_BUG || -1) --> MONS_NO_MONSTER
Change MONS_PROGRAM_BUG to MONS_NO_MONSTER when "no monster" is what was
meant.  Now all instances of MONS_PROGRAM_BUG should indicated some sort
of failure or error.

Also, fixed some places which were still using -1 instead of
MONS_NO_MONSTER.

--------------------------------------------------------------------------------
d45dd6b199 | David Lawrence Ramsey | 2009-10-27 19:23:03 -0500

Add another potential artefact name.

--------------------------------------------------------------------------------
32116015eb | Robert Vollmert | 2009-10-27 23:43:45 +0100

Refer to env.grid instead of env.show for actual data in l_view.cc.

--------------------------------------------------------------------------------
bf18513ac0 | Robert Vollmert | 2009-10-27 23:16:54 +0100

Add lua binding for inspecting env.show.

--------------------------------------------------------------------------------
227fc6f7a5 | David Lawrence Ramsey | 2009-10-27 16:48:55 -0500

Fix compilation.

--------------------------------------------------------------------------------
1068b22f3b | Robert Vollmert | 2009-10-27 21:04:35 +0100

Actually load new moninf library.
As a first test that this works, add the following to your .crawlrc:

<
function test_mon()
  local m = monster.get_monster_at(1, 0)
  if m then
    crawl.mpr("damage: " .. m:damage_desc())
  else
    crawl.mpr("no monster")
  end
end
>

Bind the macro "===test_mon" to some key, stand to the left of a
creature, and invoke the macro.

--------------------------------------------------------------------------------
0eb3a62c89 | Robert Vollmert | 2009-10-27 20:24:42 +0100

Add function to return monster info for a given coordinate.

--------------------------------------------------------------------------------
5c2086ac6f | Robert Vollmert | 2009-10-27 19:16:50 +0100

Start of monster_info lua binding.

--------------------------------------------------------------------------------
4c3e424676 | Robert Vollmert | 2009-10-27 15:43:01 +0100

Make the monster pane use the new fields in monster_info.

--------------------------------------------------------------------------------
f8c9d635cd | Robert Vollmert | 2009-10-27 15:37:07 +0100

Add glyph and damage info to monster_info.

--------------------------------------------------------------------------------
eda188d2d5 | Robert Vollmert | 2009-10-27 15:18:53 +0100

Move monster_pane_info out into mon-info.cc and rename.
I plan to use monster_info to get monster data out to
the player safely via Lua.

--------------------------------------------------------------------------------
588ba77a56 | Robert Vollmert | 2009-10-27 14:39:25 +0100

Move Lua monster bindings into the dungeon lua.
They appear to be used only for ziggurat monster placement, and
I'm finding it hard to see a safe use of these for the user.
Correct me if I'm wrong.

--------------------------------------------------------------------------------
e98848e2ee | Robert Vollmert | 2009-10-27 14:20:47 +0100

Fix typo in previous commit.

--------------------------------------------------------------------------------
e9229ee0bc | Robert Vollmert | 2009-10-27 14:13:50 +0100

Make all monsters choose near foe if they don't have one.
Previously this was apparently the case only for berserking
monsters, giant spores and neutral but not pacified monsters.

--------------------------------------------------------------------------------
729ba7c8ea | Robert Vollmert | 2009-10-27 14:07:58 +0100

_handle_behaviours: foe_memory simplification.

--------------------------------------------------------------------------------
8e49c66853 | Robert Vollmert | 2009-10-27 13:46:21 +0100

Further simplification of _handle_behaviour.

--------------------------------------------------------------------------------
c1b8b2033c | Robert Vollmert | 2009-10-27 13:25:45 +0100

Simplify player proximity handling in _handle_behaviour.
The result should be mostly equivalent, except that playerProx
can't be true for out-of-LOS monsters anymore when the player
is invisible.

--------------------------------------------------------------------------------
88b208ce6d | Robert Vollmert | 2009-10-27 13:06:24 +0100

Get rid of part of mons_near.
mons_near now only checks player proximity. Checking for foe
proximity is now handled by monsters::near_foe.

--------------------------------------------------------------------------------
a518714cb8 | Robert Vollmert | 2009-10-27 13:06:23 +0100

Commenting.

--------------------------------------------------------------------------------
92e1388c71 | Adam Borowski | 2009-10-27 10:47:26 +0100

(void) the ncurses warnings away.

--------------------------------------------------------------------------------
e9fe23fdd3 | David Lawrence Ramsey | 2009-10-26 22:37:30 -0500

And fix redundant burden_change() call.

--------------------------------------------------------------------------------
5adba81b0d | David Lawrence Ramsey | 2009-10-26 22:09:35 -0500

If you're having a blessed weapon reblessed by an evil god, convert it back to 
a non-blessed weapon, so that you can't get e.g. a blessed eudemon blade of 
pain from Kiku.

--------------------------------------------------------------------------------
69cd15f050 | Robert Vollmert | 2009-10-27 03:50:56 +0100

Move exclusion marshalling code to exclude.cc.

--------------------------------------------------------------------------------
c9b7a93349 | Robert Vollmert | 2009-10-27 03:28:34 +0100

Fix missing include (caught by BuildBot).

--------------------------------------------------------------------------------
acaa14cd0e | Robert Vollmert | 2009-10-27 03:28:33 +0100

Move most exclusion code from travel.cc to exclude.cc.

--------------------------------------------------------------------------------
f848a81e60 | David Lawrence Ramsey | 2009-10-26 21:02:43 -0500

Remove asphyxiation resistance from various monsters in which it's redundant: 
all monsters of undead, demonic, nonliving, or plant holiness, according to 
mons_res_asphyx().

--------------------------------------------------------------------------------
ac1a3a0f92 | Robert Vollmert | 2009-10-27 02:55:42 +0100

Fix missing tiles include.

--------------------------------------------------------------------------------
8b79545d66 | Robert Vollmert | 2009-10-27 02:51:45 +0100

Fix missing include.

--------------------------------------------------------------------------------
d282133c01 | Robert Vollmert | 2009-10-27 02:33:05 +0100

Fix travel_exclude constructor not initialising monster.

--------------------------------------------------------------------------------
4c82c5be80 | Robert Vollmert | 2009-10-27 02:32:58 +0100

Move autoexclude code from misc.cc to exclude.cc.

--------------------------------------------------------------------------------
928479a2ce | Robert Vollmert | 2009-10-27 02:32:06 +0100

Convert some ints to monster_type.
There's a whole lot of places that pass monster_type as int, often
with varying meanings for the value -1. This moves some of these
to monster_type, introducing MONS_NO_MONSTER and MONS_PLAYER as
new invalid special values.

Also improve on the autoexclude descriptions.

--------------------------------------------------------------------------------
2c33ddb4c8 | Robert Vollmert | 2009-10-26 22:52:03 +0100

Fix compile.
The previous fix was right in spirit, but incomplete. Fixed to
compile for now, though the autoexclusion descriptions are
broken until I figure out how to get a monster_type's name.

--------------------------------------------------------------------------------
15bf1ee0d6 | Steven Noonan | 2009-10-26 14:51:21 -0700

contrib/Makefile: use perl instead of sed for the stupid hack
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ebb31ec9ea | Robert Vollmert | 2009-10-26 22:34:30 +0100

Consistenly regard travel_exclud::mon as monster_type.
Should fix the segmentation fault reported by steve in
monsters.push_back(get_monster_data(curr_excludes[i].mon)->name);

--------------------------------------------------------------------------------
1664447c57 | Adam Borowski | 2009-10-26 22:05:13 +0100

Make wand (0) act like wand {empty} wrt being regarded as useless.

--------------------------------------------------------------------------------
1d130039fe | Steven Noonan | 2009-10-26 11:44:02 -0700

contrib/Makefile: fix regex to match one-or-more
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c231dba11e | David Lawrence Ramsey | 2009-10-26 12:45:01 -0500

Add more comment fixes.

--------------------------------------------------------------------------------
ac8fb19f6e | David Lawrence Ramsey | 2009-10-26 12:23:53 -0500

Fix inconsistencies in gold-related messages.

--------------------------------------------------------------------------------
981c9b9d5a | David Lawrence Ramsey | 2009-10-26 12:14:24 -0500

Properly mark slime creatures and giant amoebae as asphyxiation-resistant, just 
as other jelly-type 'J' monsters are.  They don't have lungs, after all.

--------------------------------------------------------------------------------
9829766ea5 | David Lawrence Ramsey | 2009-10-26 11:51:09 -0500

Typo fix.

--------------------------------------------------------------------------------
122b1cada6 | David Lawrence Ramsey | 2009-10-26 11:42:30 -0500

Add comment fixes.

--------------------------------------------------------------------------------
8c892c6009 | Adam Borowski | 2009-10-26 17:21:55 +0100

Don't color speedy items as "good" if you worship Cheibriados.

--------------------------------------------------------------------------------
815149f22c | Robert Vollmert | 2009-10-26 16:43:04 +0100

Member renaming in travel_exclude.

--------------------------------------------------------------------------------
4cead2d3ab | Robert Vollmert | 2009-10-26 16:43:04 +0100

Rewrite los_def to handle function parameters sensibly.
Previously, it was holding on to pointers to objects it
didn't own, causing various bugs.

los_def now copies the opacity_func and bounds_func
parameters. Making them copyable required introducing
opacity_func::clone(). Also implement los_def
copy constructor and copy assignment operator.

Finally, update travel exclusions and monster
patrolling to these changes.

--------------------------------------------------------------------------------
cc1219315e | David Lawrence Ramsey | 2009-10-26 10:32:22 -0500

Add wording fix.

--------------------------------------------------------------------------------
919c189ce3 | Adam Borowski | 2009-10-26 16:16:33 +0100

Explicitely set Cb's penance to 25.  Same as default, but more readable.

--------------------------------------------------------------------------------
56f4565dfd | Darshan Shaligram | 2009-10-26 17:29:49 +0530

remove unnecessary include of player.h (oops).

--------------------------------------------------------------------------------
d96b3e46e6 | Stefan O'Rear | 2009-10-26 17:23:01 +0530

Implement passive mapping
As you explore, a halo of mapping tracks you.  The halo includes a
percentage of tiles within a distance of every seen tile; optimal
play dictates seeing every tile, which just happens to be what
autoexplore does.  Added as random generation and to the demonspawn
tier-2 list.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
771f91f267 | Jude Brown | 2009-10-26 15:33:56 +0530

Persistent table for FunctionMachines. A single table can be passed to multiple 
markers, allowing for shared access, using the marker_params option (which 
defaults to a blank table). The table is passed as a second parameter each time 
the function is called.
Add a message_machine wrapper around function_machine, providing simplified 
message functionality; change ossuary.des to use this.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
32994d1ea7 | Matthew Cline | 2009-10-26 01:28:32 -0700

chardump.cc: Count bazaars/Ziggurats visited
In the "visits" character dump section, count the number of bazaars and
Ziggurats visited, and list the names of visited non-bazaar/Ziggurat
portal vaults.

--------------------------------------------------------------------------------
d55c844e48 | Stefan O'Rear | 2009-10-26 13:40:51 +0530

Add stochastic torment resistance per dpeg
The mutation comes in three levels and blocks 20%, 40%, or 60% (shown
to the user) of torments.  Right now, you can cast Symbol of Torment
with it; I doubt this is too good.  It is on the tier-1 list for
demonspawn mutations, and I expect it to be balanced appropriately.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
270ec5c73a | Stefan O'Rear | 2009-10-26 13:40:46 +0530

Nerf early mutation gain
After concerns from James Meickle and watching a few characters on CDO, I've
instated two small nerfs:

* It is not possible to have a long run of mutations in the early game; you
  are capped at 3 mutations per 4 levels.

* Tier 1 mutations do not start to appear until level 12; tier 2 mutations
  do not start until level 6.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
ad0e497ea4 | Stefan O'Rear | 2009-10-26 13:40:40 +0530

Floor colors shouldn't override items and clouds
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
7448e4e9a9 | Matthew Cline | 2009-10-26 00:48:14 -0700

FR 1837856: note vaults generated in dump
Include new dump section "vaults", which for game-end dumps (or any
wizard-mode dumps) will include a list (by place) of all the vaults
generated in the game.

The savefile now includes a player-associated CrawlHashTable
(you.props), which can be used for storing player information which
doesn't need to be accessed efficiently.

--------------------------------------------------------------------------------
c001f88140 | Steven Noonan | 2009-10-26 00:33:18 -0700

makefile: remove obsolete config option
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
018d932591 | Steven Noonan | 2009-10-26 00:28:15 -0700

makefiles: add support for command-line builds of Mac Tiles executables
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ef7e9ee256 | Steven Noonan | 2009-10-26 00:10:57 -0700

gitignore: ignore 'make depend' outputs in rltiles directory
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
58dd3bfdc7 | Steven Noonan | 2009-10-25 23:07:31 -0700

makefile: fix rltile-build contrib dependency chain
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
10122d4ef0 | Steven Noonan | 2009-10-25 22:54:54 -0700

makefile: don't fail 'distclean' target on Mac
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b48afbe760 | Steven Noonan | 2009-10-25 21:48:30 -0700

contrib/Makefile: hack to eliminate need for absolute paths
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
aba6024bbc | David Lawrence Ramsey | 2009-10-25 23:16:53 -0500

Attempt to make whips viable starting weapons:
1. Increase their damage from 4 to 6.
2. Reduce the probability for reaching a bit, and introduce the
   probability for pain.
3. Give (big) kobolds a small chance to start with whips.

--------------------------------------------------------------------------------
0c22902610 | Matthew Cline | 2009-10-25 18:47:28 -0700

FR 2839615: comment on # of altars/shops sensed
FR: Magic mapping now comments on the number of altars and shops/portals
sensed.

Also, take a note when a notable feature is first seen.

--------------------------------------------------------------------------------
f9b1762f8f | Matthew Cline | 2009-10-25 17:06:22 -0700

entry.des: Don't auto-open door to caged monsters
In Caged fury (david_entry_070) force_exclude the door trapping the
monsters so that auto-explore won't unleash a swarm of monsters right at
the start of the game.

--------------------------------------------------------------------------------
1151689658 | Steven Noonan | 2009-10-25 16:33:09 -0700

contrib/Makefile: add check for Makefile existence in subdirs
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
43b622e8b5 | Steven Noonan | 2009-10-25 16:12:48 -0700

contrib/Makefile: improve readibility of directory check error
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
887083d455 | Steven Noonan | 2009-10-25 16:09:39 -0700

makefile: move contrib directory check to contrib/Makefile
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c7a3d3b4e2 | Steven Noonan | 2009-10-25 15:58:37 -0700

INSTALL.txt: updated to reflect current setup
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cc4a0ee3e7 | Steven Noonan | 2009-10-25 15:48:43 -0700

sdl: add cross-compile support for Linux
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f7c971a7cf | Steven Noonan | 2009-10-25 15:48:30 -0700

makefile: fix 'distclean' target
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d6e7e3908b | Steven Noonan | 2009-10-25 14:55:21 -0700

makefiles: improve 'clean' and 'distclean' targets to clean all outputs
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6d2b0d5c6b | Steven Noonan | 2009-10-25 14:20:11 -0700

files.cc: eliminate 'shadowed declaration' warning
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0a4e5ec94a | Steven Noonan | 2009-10-25 14:11:51 -0700

tilefont.{cc,h}: eliminate "array subscript is of type 'char'" warnings
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bbd85319ef | Steven Noonan | 2009-10-25 14:11:50 -0700

makefile: use more sane rules for regenerating build.h/compflag.h
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c0be22150c | Steven Noonan | 2009-10-25 14:11:50 -0700

freetype: eliminate unnecessary warnings
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
08b4268403 | David Lawrence Ramsey | 2009-10-25 15:42:54 -0500

Add proper checks for artefacts that Cheibriados doesn't like.

--------------------------------------------------------------------------------
6c4ddca996 | David Lawrence Ramsey | 2009-10-25 15:38:13 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
a7419bfd5c | David Lawrence Ramsey | 2009-10-25 15:21:04 -0500

Fix inconsistencies in weapon blessing-related messages.

--------------------------------------------------------------------------------
d9d1146f78 | David Lawrence Ramsey | 2009-10-25 15:19:06 -0500

For flavor, mark 6 out of 7 demons in the Abyss as belonging to Lugonu.

--------------------------------------------------------------------------------
2193ad859e | David Lawrence Ramsey | 2009-10-25 13:58:30 -0500

Consistently mark poison-resistant plants as immune to asphyxiation, as bushes 
are.

--------------------------------------------------------------------------------
09eb24a032 | Steven Noonan | 2009-10-25 04:52:38 -0700

makefile: initial work to improve 'install' target
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
77620b7075 | Charles Otto | 2009-10-25 14:44:42 -0400

Preliminarily add a new fungus species to replace fungus w.r.t. spores
Add a fungus species ('ballistomycete') to use in place of fungus in
spores explosions etc.

Fix a couple message leaks (wrong version of see_cell used in
monaters::apply_enchantment)

--------------------------------------------------------------------------------
ff071c7f1a | Steven Noonan | 2009-10-25 03:27:20 -0700

makefile: auto-rebuild contribs if needed
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c0c34e74af | David Lawrence Ramsey | 2009-10-25 12:24:23 -0500

Sort makefile.obj again.

--------------------------------------------------------------------------------
cacd371bee | Steven Noonan | 2009-10-25 10:18:59 -0700

makefile: allow build.h to be generated based on git-merge-base
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b127eb5181 | Steven Noonan | 2009-10-25 10:06:14 -0700

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
51a330d589 | Steven Noonan | 2009-10-25 10:02:53 -0700

makefile: replace 'atomic' with simplified resulting code
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0971e94a69 | Steven Noonan | 2009-10-25 10:02:52 -0700

sqlite: fix cleanup
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
eb09cb19eb | Adam Borowski | 2009-10-25 17:55:08 +0100

There's no point in slowing down fungi...

--------------------------------------------------------------------------------
1fa4a5be4d | Robert Vollmert | 2009-10-25 17:52:27 +0100

Unset havebeam when shift-targetting.
This was causing moves.choseRay to be overwritten, meaning
shift-targetting failed after having targetted any cell.

Reported by N78291.

--------------------------------------------------------------------------------
2d971303df | Robert Vollmert | 2009-10-25 17:52:27 +0100

Method alternatives to losparam operators.
This adds variants bounds_func::call(p) of
bounds_func::operator()(p) and similar which
I know how to call from gdb.

--------------------------------------------------------------------------------
68dacf2cd4 | Steven Noonan | 2009-10-25 02:41:52 -0700

sdl: alter configure to only modify SDL_config.h
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
75f88ae0ea | Steven Noonan | 2009-10-25 02:35:53 -0700

Makefile: bomb on 'make'-in-subdirectory failure
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a0d7a8518f | Steven Noonan | 2009-10-25 09:08:25 -0700

makefile: move EXTRA_LIBS to be after CONTRIB_LIBS (fix MinGW tiles build)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
65c341e7c3 | David Lawrence Ramsey | 2009-10-25 10:52:36 -0500

Add comment fixes.

--------------------------------------------------------------------------------
5e1b1aeec7 | Robert Vollmert | 2009-10-25 16:33:41 +0100

Revert "Convert exclusions to los_def."
This reverts commit 7afa089db8b01b1810c5903309f7302545638550.

los_def is currently buggy, leading to weird behaviour when
deleting exclusions.

--------------------------------------------------------------------------------
21060a38ec | Robert Vollmert | 2009-10-25 16:27:21 +0100

Replace what was originally mons_player_visible by you.visible_to.
I had accidentally replaced these by mon->can_see_invisible(),
causing for instance stealth checks to hardly ever fail.

--------------------------------------------------------------------------------
07e6eec5db | Robert Vollmert | 2009-10-25 16:27:21 +0100

Remove obsolete actor::visible.

--------------------------------------------------------------------------------
7c0a1cdefe | Adam Borowski | 2009-10-25 15:08:36 +0100

Clear the map properties after a level design was vetoed.

--------------------------------------------------------------------------------
6dca0fa1e8 | Adam Borowski | 2009-10-25 14:43:26 +0100

Make all but one weapon size checks use you.could_wield(), they were out of 
sync, that caused autoexplore ignore butchering knives for nagas, many weapons 
being randomly shown as useless while perfectly wieldable, and so on.

--------------------------------------------------------------------------------
98b7f12e57 | Matthew Cline | 2009-10-25 03:45:53 -0700

beam.cc: Statues don't scream
Grantie statues no longer scream when they're disintegrated, since
they're entirely mundane.

--------------------------------------------------------------------------------
056b1c337e | Jude Brown | 2009-10-25 16:15:24 +0530

Give some warning of what's to come in ossuary_due_cavern.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
777d1f9c16 | Steven Noonan | 2009-10-25 03:27:06 -0700

makefile: use atomic target for contribs
This is not the ideal solution, but it avoids an infinite loop, so...

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
072c4b78e2 | Steven Noonan | 2009-10-25 03:27:06 -0700

Revert "makefile: remove phony 'contrib' target, use .contrib-libs instead"
This reverts commit 045ee813f5c30b1a660017c891bcd9d203c44224.

--------------------------------------------------------------------------------
a351b1055c | Jude Brown | 2009-10-25 15:40:38 +0530

FunctionMachines: call a specified Lua function when certain conditions are 
met. Conditions currently are "random" (every random(min, max) turns), "turns" 
(every turns turns), "in_los" (when you.see_cell(marker:pos())), "player_at" 
(when you're standing on the marker).
Needs merge with lm_trig.lua.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
d6b40e981b | Matthew Cline | 2009-10-25 02:48:22 -0700

FR 2792379: stop auto-explore on marked statues
Markers can be placed on statues or orcish idols to cause auto-explore
to stop when those statues/idols are first found.

--------------------------------------------------------------------------------
045ee813f5 | Steven Noonan | 2009-10-25 02:11:46 -0700

makefile: remove phony 'contrib' target, use .contrib-libs instead
This fixes a weird 'make' loop with:
  make CROSSHOST=i686-pc-mingw32 NO_YACC=1

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
31828feded | Stefan O'Rear | 2009-10-25 01:21:36 -0700

New slot-based demonspawn generator.
This generator divides facets into body, awesome, great, and good ranks
and assigns a fixed number of each.

--------------------------------------------------------------------------------
9a8639b1ac | David Ploog | 2009-10-25 01:21:36 -0700

Tweaks to vaults with harmful clouds.

--------------------------------------------------------------------------------
0af767c786 | David Ploog | 2009-10-25 01:20:39 -0700

Document new vault testing function (Jude Brown).

--------------------------------------------------------------------------------
130a8d595c | Matthew Cline | 2009-10-25 01:20:06 -0700

Let markers change the description of any feature
Allow markers to change the short and/or long description of any
feature, not just portal vault entrances.  The feature_description() and
feature_description_long() functions have been removed from the mapmark
classes and turned into ordinary properties.  Also added the marker
property "door_description_suffix", which can be used to alter the short
description of (known) doors by appending a string to them.

--------------------------------------------------------------------------------
568903e4f3 | Steven Noonan | 2009-10-24 17:53:52 -0700

makefile: generate dependencies using GCC by default
This also automatically regenerates dependencies when needed.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
8137d9e8ff | Steven Noonan | 2009-10-24 17:39:43 -0700

makefile: fix .cc file dependencies
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b1759e8235 | David Ploog | 2009-10-25 08:27:58 +0100

Tweaks to vaults with harmful clouds.

--------------------------------------------------------------------------------
64a101af57 | David Ploog | 2009-10-25 08:27:58 +0100

Document new vault testing function (Jude Brown).

--------------------------------------------------------------------------------
5923cd05e6 | David Ploog | 2009-10-25 08:27:58 +0100

Update CREDITS.
Note that the "Jr" in "William Tanksley, Jr." confuses the perl script used
for columnising the list. This is avoided by removing the "Jr" before running
the script and adding it afterwards.

--------------------------------------------------------------------------------
a0ae32c8f8 | Matthew Cline | 2009-10-25 00:23:09 -0700

Let markers change the description of any feature
Allow markers to change the short and/or long description of any
feature, not just portal vault entrances.  The feature_description() and
feature_description_long() functions have been removed from the mapmark
classes and turned into ordinary properties.  Also added the marker
property "door_description_suffix", which can be used to alter the short
description of (known) doors by appending a string to them.

--------------------------------------------------------------------------------
83d7fbfa11 | Steven Noonan | 2009-10-24 23:48:04 -0700

mutation.cc: fix compiler warning about 'mdef' being unused in non-DEBUG builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3a4a3e4b52 | Steven Noonan | 2009-10-24 22:53:48 -0700

makefile: set '.contrib-libs' file as an intermediate
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c490242aa9 | Steven Noonan | 2009-10-24 22:50:05 -0700

sdl: fix makefile to use uname_S properly
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e5c35dd08e | Stefan O'Rear | 2009-10-24 22:38:26 -0700

Roll demonspawn mutations at the start of the game.
All demonspawn mutations are now stored in the player data, and are
determined at the same time.  This makes a lot of things a lot simpler.
On the other hand, it means that the influence of skills and gods on
demonspawn mutations is now broken.

--------------------------------------------------------------------------------
5bae81aab8 | Stefan O'Rear | 2009-10-24 22:38:26 -0700

Add the 0.6 launcher brands to the randart list
Penetration has been added with a generation probability of 10% (same
as speed) and shadow has been added at 15%,  5% has been removed from
vorpal, flame, frost, protection, and venom.

--------------------------------------------------------------------------------
2b827ffacb | Stefan O'Rear | 2009-10-24 22:38:26 -0700

Force all randart weapons to have some brand.

--------------------------------------------------------------------------------
f472a23f7a | Steven Noonan | 2009-10-24 22:36:44 -0700

Revert "Add still more minor cosmetic fixes."
This reverts commit 6d62ab1b7cf0fbf6dda50f86f27822a9551da8ae.

--------------------------------------------------------------------------------
0005451eb7 | David Lawrence Ramsey | 2009-10-25 00:16:09 -0500

Fix the color check when mutating (very) ugly things due to proximity to other 
(very) ugly things, so that they never mutate into the same color. Also, 
simplify the logic for proximity to very ugly things versus ugly things.

--------------------------------------------------------------------------------
9521e3a256 | Steven Noonan | 2009-10-24 21:56:50 -0700

makefile: correct contributing library dependencies
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
59f286f836 | Steven Noonan | 2009-10-24 21:31:34 -0700

rltiles/makefile: fix linkage on cross-compiles
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
39ed0a2d9f | Steven Noonan | 2009-10-24 21:31:26 -0700

tile.cc: add missing includes
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f329212977 | Steven Noonan | 2009-10-24 20:56:33 -0700

contribs: fix parallel make and simplify MinGW builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
098417848a | Steven Noonan | 2009-10-24 20:56:33 -0700

rltiles/makefile: fix MinGW build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
db8d7cf3b5 | Steven Noonan | 2009-10-24 20:56:32 -0700

makefile: move '-g' option to CFOTHERS, making it a global flag
Otherwise, contributing libraries are built without the
'-ggdb' flag, but are still built with '-O0'. Which really
doesn't help at all.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0c638891c7 | Steven Noonan | 2009-10-24 20:56:31 -0700

makefile: rename 'LIB' variable to 'LIBS'
It's not uncommon to get environment conflicts with the
LIB variable (Python on Windows sets it, as well as older
versions of Visual C++). So the easy fix is to rename it.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
68e5979539 | Steven Noonan | 2009-10-24 20:56:31 -0700

msvc: add x86_64 build support
This updates all the contrib projects for this support
as well.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
92822bfc98 | Steven Noonan | 2009-10-24 20:56:30 -0700

MSVC: fix build (add missing source files to project)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6d62ab1b7c | David Lawrence Ramsey | 2009-10-24 22:15:11 -0500

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
6f1afaa774 | David Lawrence Ramsey | 2009-10-24 20:57:26 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
dc57404f4a | David Lawrence Ramsey | 2009-10-24 20:50:07 -0500

Simplify.

--------------------------------------------------------------------------------
224b548b0e | David Lawrence Ramsey | 2009-10-24 20:43:11 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d9414a0daf | Adam Borowski | 2009-10-25 02:27:23 +0100

Extend potions of resistance to same duration as might. [FR 2885026]

--------------------------------------------------------------------------------
efcde028c2 | Adam Borowski | 2009-10-25 02:21:39 +0100

Also briefly flash red when Igniting Poison.

--------------------------------------------------------------------------------
497ea67ad7 | Adam Borowski | 2009-10-25 02:14:31 +0100

Give a message when a monster is affected by Ignite Poison.

--------------------------------------------------------------------------------
f88b5e0414 | Adam Borowski | 2009-10-25 02:59:07 +0200

Factor the shields skill while determining handedness during weapon acquirement 
[FR 2885568]

--------------------------------------------------------------------------------
5ed2653977 | Adam Borowski | 2009-10-25 01:02:28 +0200

Revert Cb's piety only while resting, change the description instead.

--------------------------------------------------------------------------------
e5947ad199 | Adam Borowski | 2009-10-25 00:08:00 +0200

Give Cb's piety only while resting, but at much faster rate.

--------------------------------------------------------------------------------
0773235a1b | Adam Borowski | 2009-10-24 23:59:12 +0200

Make it possible for demigods to get the hard books [BR 2883646] (sorear)

--------------------------------------------------------------------------------
f0f31671b0 | David Ploog | 2009-10-24 18:16:46 +0200

Update CREDITS.

--------------------------------------------------------------------------------
f3df2a2e84 | Steven Noonan | 2009-10-24 09:22:51 -0700

ctest.cc: kill memory access violation
The line removed caused a crash occasionally.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
943a81f92a | Darshan Shaligram | 2009-10-24 21:51:02 +0530

Fix build with -DDGAMELAUNCH (Napkin).

--------------------------------------------------------------------------------
1d36c840c8 | Enne Walker | 2009-10-24 12:11:36 -0400

Fixing Xcode project again due to missing files.

--------------------------------------------------------------------------------
4df36849b8 | Adam Borowski | 2009-10-24 17:50:24 +0200

Corona/glow makes invisibility only temporarily useless, unlike TSO's halo.

--------------------------------------------------------------------------------
de5e67bd99 | Robert Vollmert | 2009-10-24 17:12:21 +0200

Move opening_screen and name reading routines to ng-input.cc.

--------------------------------------------------------------------------------
6bbd3e9e43 | Robert Vollmert | 2009-10-24 16:26:48 +0200

Convert player::your_name to std::string.
Doesn't seem to break anything...

--------------------------------------------------------------------------------
e4d195a439 | Jude Brown | 2009-10-24 14:37:58 +0200

Make FPROP_FORCE_EXCLUDE set an actual travel exclusion.
FPROP_FORCE_EXCLUDE now sets an actual travel exclusion rather than
bypassing the travel exclusion system. Exclusions are single
squares.

Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
394fb595f6 | Robert Vollmert | 2009-10-24 14:31:30 +0200

Extract newgame character restrictions from newgame.cc.
The functions in the new ng-restr.cc are "pure": They don't
access global state; data is passed in via the new and
incomplete newgame_def.

Eventually, new_game should be split into something like
  newgame_def choose_game();
that doesn't access "you", and
  void setup_game(newgame_def);
that sets up the player.

Also get rid of player_size in favour of player::body_size. Rename
player_size_type to size_part_type since it's not really
player-specific (used in actor::body_size). Move parts of
player_genus, player::has_claws, body_size out into species.cc.

--------------------------------------------------------------------------------
ea81f9787b | Darshan Shaligram | 2009-10-24 16:31:51 +0530

Fix minor bugs in vault_generation test (due).

--------------------------------------------------------------------------------
ec8080afa4 | Jude Brown | 2009-10-24 16:01:45 +0530

Wrapper for find_map_by_name (dgn.map_by_name). Test set for generation of 
specific vaults multiple times, in order to test SUBSTs, SHUFFLEs, etc, quickly 
and easily.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
2ba16f4a38 | Matthew Cline | 2009-10-24 01:23:32 -0700

Do nothing if unwielding a non-weapon artefact
Fix a bug where wielding a non-weapon artefact would do nothing, but
unwielding it would could change your stats, leading to permanent stat
loss (or permanent stat gain).  Now unwielding an artefact
armor/jewellery which you accidently wielded has no effect.

--------------------------------------------------------------------------------
d14ce181fb | Matthew Cline | 2009-10-24 01:02:56 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
9d69ea03a9 | Robert Vollmert | 2009-10-24 09:57:49 +0200

Fix Humans not being selectable on character selection.

--------------------------------------------------------------------------------
a698d53591 | Matthew Cline | 2009-10-24 00:50:41 -0700

Don't use invisibility items when pointless
Since the game won't let you waste (known) scrolls or wand charges of
teleportation if it's known that you can't teleport (you're wearing an
identified artefact which prevents teleportation) do something similar
for invisiblity: if you're haloed because of worshipping TSO then
refuse to use known wands or potions of invisibility, and if you're
glowing from magical contamination then prompt before usage (since the
glow *might* wear off before the invisibility).

Also: 1) add some informational messages about the interaction of
invisibility and being backlit, 2) if you use-identify invisibility
while haloed then just print a message, but don't actually get the
invisibility duration.

--------------------------------------------------------------------------------
9c08ad575d | Matthew Cline | 2009-10-23 22:28:14 -0700

Specify arbitrary options on the command line
This introduces two new command line options, -extra-opt-first and
-extra-opt-last, which make crawl think that the specified options were
(respectively) at the start and end of the options file.  For example:

    crawl -extra-opt-last wiz_mode=yes

The two options can be used multiple times to specify multiple options.

--------------------------------------------------------------------------------
068459aa20 | Charles Otto | 2009-10-24 00:30:21 -0400

Fix bug [2864019] - assertion failure after pressing ctrl-O
An assert was getting triggered in format.cc when the line wrapping
used in display_overmap placed a line break after a text color tag
was opened and before it was closed. This was happening with the brown
text used for shop locations and also the yellow text used for branch
locations.

Using linebreak_string2 instead of linebreak_string takes care of the
shop location lines since it places line breaks on whitespace. For the
branch location strings placing the padding spaces after the </yellow>
tag instead of between the tags took care of the issue.

A more principled thing to do would be to make formatted_scroller keep
track of what tags are open across line breaks, but I got lazy.

--------------------------------------------------------------------------------
77b88793c6 | Steven Noonan | 2009-10-23 20:57:26 -0700

tilereg.cc: add missing includes
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4c1bf47654 | Steven Noonan | 2009-10-23 20:43:39 -0700

files.cc: use proper data type for get_class_by_name
Whoops, apparently it was declared, but not with the correct prototype.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1c3f8a9bab | Steven Noonan | 2009-10-23 20:37:24 -0700

newgame.h: add declaration of get_class_by_name to fix tiles builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6e019117a0 | Jude Brown | 2009-10-23 22:03:34 -0400

Potions/Rings of Invisibility considered useless when backlit, glowing, or 
surrounded by The Shining One's divine halo.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>
Signed-off-by: Charles Otto <ottochar@gmail.com>

--------------------------------------------------------------------------------
f98ae79c4b | David Lawrence Ramsey | 2009-10-23 20:52:42 -0500

When (very) ugly things mutate due to proximity with their kind, bias their 
colors in favor of the ugly things around them, and even more so for the very 
ugly things around them.

--------------------------------------------------------------------------------
88022edbd4 | David Lawrence Ramsey | 2009-10-23 20:35:53 -0500

When mutating (very) ugly things due to the proximity of other (very) ugly 
things, bias their colors toward those of very ugly things.

--------------------------------------------------------------------------------
3478f40f49 | David Lawrence Ramsey | 2009-10-23 20:14:59 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9b2e837860 | Matthew Cline | 2009-10-23 18:02:42 -0700

level_design.txt: document special marker props
Document the marker properties connected_exclude, veto_disintegrate,
veto_fragmentation, and veto_shatter, which can effect the dungeon cell
a marker is on is treated by the game.

--------------------------------------------------------------------------------
117bda0ee0 | Adam Borowski | 2009-10-23 22:33:30 +0200

Make Cb's Slow Biology and Time Bend available one piety breakpoint earlier.

--------------------------------------------------------------------------------
315853b773 | Adam Borowski | 2009-10-23 22:30:33 +0200

No free Cb piety if you're not full.  Sorry, mummies.

--------------------------------------------------------------------------------
a918fa5811 | Adam Borowski | 2009-10-23 22:27:12 +0200

Sync Cb's Slow Biology effects with announcements.

--------------------------------------------------------------------------------
8cc7f8f9a7 | Robert Vollmert | 2009-10-23 20:30:14 +0200

Renumber species_type starting from 0.
It now behaves like the other enums (e.g. job_type). I hope I
got all places where SP_HUMAN == 1 was assumed.

--------------------------------------------------------------------------------
4c378295ed | Robert Vollmert | 2009-10-23 20:30:14 +0200

Use species_type/job_type instead of int.

--------------------------------------------------------------------------------
921c44bb1d | Robert Vollmert | 2009-10-23 20:30:14 +0200

Assert get_species argument.

--------------------------------------------------------------------------------
bea4408fe9 | Robert Vollmert | 2009-10-23 20:30:14 +0200

Moving data out of newgame.cc.
Also move species<->string translation from player.cc to species.cc.

--------------------------------------------------------------------------------
99a646377e | Robert Vollmert | 2009-10-23 20:30:13 +0200

Move new-game enums to newgame.h.

--------------------------------------------------------------------------------
4e9f5b7e8e | Adam Borowski | 2009-10-23 15:30:27 +0200

beh, KMASK doesn't support multiple glyphs per line

--------------------------------------------------------------------------------
f1400a4f12 | Adam Borowski | 2009-10-23 15:35:58 +0200

No eels in entry vaults, please.

--------------------------------------------------------------------------------
cca7b78d7e | Robert Vollmert | 2009-10-23 15:31:05 +0200

Don't calculate LOS for radius-0 exclusions.

--------------------------------------------------------------------------------
0e30c9dc11 | Adam Borowski | 2009-10-23 14:27:32 +0200

Move the guarantee for Cheibriados altars to D:7 since D:8 is for Feawn and 
only one Place: vault is placed per level.

--------------------------------------------------------------------------------
b765f114c8 | dis_astranagant | 2009-10-23 12:36:57 +0200

Fsim improvements.
The current combat simulation system is flawed in that it only considers 2
skills for all melee attacks: fighting and the relevant weapon skill. This
has made meaningful studies of pain weapons and the enhancer staves
difficult. In addition, unarmed delay in heavy armour is very dependent on
armour skill, is not considered. The way this is implemented causes
unarmed delay to be fractional on average (you have a chance of not
lowering delay using your unarmed skill if you're in heavy armour), while
the fsim module only considers time as an integer.

This patch sets all magic skills to the same level as the weapon skill and
the armour skill equal to the fighting skill (roughly half weapon) during
the simulation. It also calculates the average time per attack as a double
instead of a long, outputting a decimal value as needed.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
d173ac00c4 | Stefan O'Rear | 2009-10-23 12:11:11 +0200

New demonspawn core mechanic (from dpeg on IRC)
Demonspawn gain all mutations at level 1, and the levels increase
over time, such that at level 27 5 mutations are level 3 and the
6th is level 2.

At 17 (6 * 3 - 1) randomly chosen levellups, the PC gains one level
in a current or new mutation; the chance of raising an existing
mutation is (# of demon mutations) / 6, so the number of total
mutations will reach 6 around level 15 and stay there, but the levels
of the mutations will increase.

This is the first part of the DS rework; it is applicable as is, and
has been tested (raising 8 demonspawn to level 27 in debug mode and
sanity checking the results).  However, it is not fully balanced as
is for two reasons:

1. Not all demonspawn mutations have 3 levels yet, so you sometimes
   run out of available mutations before level 27.  When this happens,
   this patch gives a bonus mutation.

2. Some demonspawn mutations are very broken at level 3, such as fire
   resistance and teleport at will (level 3 is instantaneous).

So demonspawn will get a lot stronger until the rest of the changes
come in.

Signed-off-by: Stefan O'Rear <stefanor@cox.net>
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
31429d39b7 | Matthew Cline | 2009-10-23 01:35:58 -0700

Removed 0.5 savefile minor versions, renumbered
Removed the savefile minor versions which were introducded in 0.5, since
bumping the major version from 5 to 6 breaks compatibility with 0.5
savefiles.  Renumbered the 0.6 minor versions to start with 0.

This contains a hack to maintain compatibility with 0.6 savefiles before
the renumbering, a hack which should be removed before 0.6 is released.

--------------------------------------------------------------------------------
4b41d9b5d5 | David Ploog | 2009-10-23 08:54:42 +0200

Rename Chronos to Cheibriados. (Jude Brown)

--------------------------------------------------------------------------------
c51e405ca1 | David Ploog | 2009-10-23 08:15:03 +0200

Update CREDITS.

--------------------------------------------------------------------------------
e66412d67f | Matthew Cline | 2009-10-22 22:47:03 -0700

options_guide.txt: Can't conditionalize start opts
None of the options listed under "Starting Screen" can be set
conditionally via Lua.

--------------------------------------------------------------------------------
6c533e886a | Charles Otto | 2009-10-22 23:01:13 -0400

Fix a crash caused by monsters::check_redraw using the wrong see_cell
Fix an assertion failure triggered by view_update_at getting called
for out of sight squares. view_update_at was getting called for out
of LOS squares because monsters::check_redraw was using
monsters::see_cell instead of the global function see_cell for the LOS
check.

--------------------------------------------------------------------------------
a21a339080 | Enne Walker | 2009-10-22 21:46:00 -0400

Updating Xcode project file listing.
Adding missing .cc files for tiles and console build.  Adding a number of
missing headers.  Also, changing l_defs.h and l_libs.h to not be
considered as source files.

--------------------------------------------------------------------------------
d32b125d1d | David Ploog | 2009-10-22 23:48:17 +0200

Great new vaults (Neil Middleton).

--------------------------------------------------------------------------------
3f52702c6f | Robert Vollmert | 2009-10-22 23:47:00 +0200

Also remove monster::visible.

--------------------------------------------------------------------------------
ef6fb07fd5 | Adam Borowski | 2009-10-22 23:09:08 +0200

Train Invocations on Ruinous Time.

--------------------------------------------------------------------------------
38a5c6e0bc | Adam Borowski | 2009-10-22 22:52:16 +0200

Don't take a turn when you decline to ponderousify anything.

--------------------------------------------------------------------------------
69ff5f66dc | Adam Borowski | 2009-10-22 22:52:16 +0200

Remove Chronos debug messages from non-debug builds.

--------------------------------------------------------------------------------
37a5773ffb | Adam Borowski | 2009-10-22 22:52:16 +0200

Descriptions for Chronos-granted abilities.

--------------------------------------------------------------------------------
9b4674477d | Adam Borowski | 2009-10-22 22:52:16 +0200

Make Time Bend use Invocations for power.

--------------------------------------------------------------------------------
e9c4ad3ff5 | Robert Vollmert | 2009-10-22 22:37:09 +0200

Rename actor::visible to actor::observable.
This should reduce potential for confusion -- compare mon->visible() and
mon->invisible(). The uses of actor::visible for messaging are replaced by
actor::observable, others by you.can_see(...) or actor::visible_to(&you).

--------------------------------------------------------------------------------
1fdd4abbce | Robert Vollmert | 2009-10-22 22:37:09 +0200

Get rid of player_monster_visible.
The special casing for drowning monsters appears to have been
obsoloted by checking ENCH_SUBMERGED instead of calling
mons_is_submerged.

--------------------------------------------------------------------------------
8d4d79655d | Robert Vollmert | 2009-10-22 22:37:08 +0200

Fold mon_can_see_monster and mons_monster_visible into monsters.

--------------------------------------------------------------------------------
fd19580013 | Robert Vollmert | 2009-10-22 22:37:08 +0200

Move mons_player_visible into player::visible_to.

--------------------------------------------------------------------------------
346761406b | Robert Vollmert | 2009-10-22 22:37:07 +0200

Remove mons_see_invis in favour of monsters::can_see_invisible.

--------------------------------------------------------------------------------
78f7b9d8e5 | Robert Vollmert | 2009-10-22 22:37:07 +0200

Move player_see_invis into player class.

--------------------------------------------------------------------------------
ed4a22bce4 | Robert Vollmert | 2009-10-22 22:37:07 +0200

Introduce actor::see_cell.
Implemented using the existing LOS functions for now. In particular,
monster-monster visibility still uses num_feats_between.

--------------------------------------------------------------------------------
07ef1ffe1c | Robert Vollmert | 2009-10-22 22:37:06 +0200

Simply visibility checks in fight.cc.
Make use of actor::visible_to. Also fix player::visible_to to make
the player invisible to himself when not seeing invisible.

--------------------------------------------------------------------------------
7afa089db8 | Robert Vollmert | 2009-10-22 22:37:06 +0200

Convert exclusions to los_def.

--------------------------------------------------------------------------------
1ad65d74a1 | Robert Vollmert | 2009-10-22 22:37:06 +0200

Replace calls to losight() with the new class los_def.

--------------------------------------------------------------------------------
baac5dcb6b | Robert Vollmert | 2009-10-22 22:37:06 +0200

Wrap losight() in class los_def together with env_show_grid.

--------------------------------------------------------------------------------
e14a242819 | Adam Borowski | 2009-10-22 21:49:04 +0200

Make Ponderousify available from day 1.  Announce newly available powers when 
piety changes.

--------------------------------------------------------------------------------
bba95ae0e5 | Adam Borowski | 2009-10-22 21:21:44 +0200

Make the Ruinous Time damage random (dpeg).

--------------------------------------------------------------------------------
32f2d30ad3 | Adam Borowski | 2009-10-22 20:57:00 +0200

Make quadratical damage for Ruinous Time linear, it can't be scaled to be sane 
both for executioners and less excessive cases.

--------------------------------------------------------------------------------
84f25c66f2 | David Lawrence Ramsey | 2009-10-22 12:56:49 -0500

Add spelling fix.

--------------------------------------------------------------------------------
4d8b0d6a78 | David Lawrence Ramsey | 2009-10-22 12:54:42 -0500

Tweak wording of a few god messages.

--------------------------------------------------------------------------------
13fffb8fc9 | Steven Noonan | 2009-10-22 08:42:19 -0700

Xcode: don't rerun tilegen every time, add missing source files
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5628f0c453 | Steven Noonan | 2009-10-22 08:22:00 -0700

player.cc: fix tiles builds (sighup_save issue)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
285e514f69 | Adam Borowski | 2009-10-22 15:08:25 +0200

Make Chronos account for player's haste/slow/statue form.

--------------------------------------------------------------------------------
9f1bde77a7 | Adam Borowski | 2009-10-22 14:33:25 +0200

Fix another case of reversed speed.

--------------------------------------------------------------------------------
7bfdcb1598 | Darshan Shaligram | 2009-10-22 18:04:04 +0530

Fix Crawl pegging CPU when it sees HUP at the level-up stat gain prompt.

--------------------------------------------------------------------------------
9ae7a2dccc | Adam Borowski | 2009-10-22 14:14:03 +0200

Slap costs and fail chances on Chronos' abilities.

--------------------------------------------------------------------------------
e2f1168cb2 | Adam Borowski | 2009-10-22 13:41:03 +0200

... and resting, too.

--------------------------------------------------------------------------------
e964110cdb | Adam Borowski | 2009-10-22 13:36:19 +0200

Disallow autoexplore when starving.

--------------------------------------------------------------------------------
c58bea2d65 | Darshan Shaligram | 2009-10-22 17:11:47 +0530

Retrieved names lost from CREDITS.

--------------------------------------------------------------------------------
897ce67495 | Darshan Shaligram | 2009-10-22 17:11:47 +0530

columnise-credits should remove duplicate names.

--------------------------------------------------------------------------------
07c3f86aee | Adam Borowski | 2009-10-22 13:28:12 +0200

Swap transform_cancellable into transform_uncancellable, since that's the 
default. It broken normal transformations...

--------------------------------------------------------------------------------
49870f2bc4 | Matthew Cline | 2009-10-22 03:53:05 -0700

Observerable/observer-ish pattern for Lua markers
A new framework for Lua markers, similar to the observable/observer
design pattern, which decouples the thing being activated from the thing
watching for the activating condition.  This makes it easier to create
new types of Lua markers which are triggered by dungeon events, and
easier to add new triggering conditions to already existing marker
types.  Currently only ChangeFlags (clua/lm_flags.lua) and
MonsterOnTrigger (clua/lm_monst.lua) use it.

--------------------------------------------------------------------------------
a724290e7a | Adam Borowski | 2009-10-22 12:21:50 +0200

Fix the Chronos speed reversal bug.  It's now bad to be spriggan, good to be 
naga.

--------------------------------------------------------------------------------
d2ccd1e021 | Adam Borowski | 2009-10-22 12:02:13 +0200

Prevent non-body armour from being made ponderous, it has no effect.

--------------------------------------------------------------------------------
916a89eb14 | Adam Borowski | 2009-10-22 11:44:34 +0200

Make the out of time flash lightblue, cyan is taken.

--------------------------------------------------------------------------------
5111da635a | Adam Borowski | 2009-10-22 11:44:33 +0200

Clean up some unused #includes

--------------------------------------------------------------------------------
1d61fc979e | Adam Borowski | 2009-10-22 11:44:33 +0200

... and from abl-show.cc into godabil.cc

--------------------------------------------------------------------------------
c15a9271c7 | Adam Borowski | 2009-10-22 11:44:33 +0200

Yank some god invocations from religion.cc into godabil.cc

--------------------------------------------------------------------------------
052fcd7f52 | Robert Vollmert | 2009-10-22 10:14:46 +0200

youdie test comment.

--------------------------------------------------------------------------------
c866e0c71f | Jude Brown | 2009-10-22 09:59:34 +0200

Updated levdes.vim for KPROP. NO_RTELE_INTO property.
NO_RTELE_INTO restricts random teleport from choosing a specific grid square 
marked with this. This does not stop controlled teleport onto specific grid 
squares; controlled teleport is completely unrestricted.

Updated documentation for new property. Do not apply to branch ends/Orb chamber 
yet, please!

--------------------------------------------------------------------------------
22d680f23c | Robert Vollmert | 2009-10-22 09:42:26 +0200

Bypass player death in test mode.

--------------------------------------------------------------------------------
1279846ae6 | Robert Vollmert | 2009-10-22 09:30:43 +0200

Set job and species in test.

--------------------------------------------------------------------------------
42581a30c4 | Robert Vollmert | 2009-10-22 09:30:43 +0200

Player death test test.

--------------------------------------------------------------------------------
f53943235a | Steven Noonan | 2009-10-22 00:19:47 -0700

debug.cc: when doing 'crawl -test', don't redirect stderr to a file
This helps with automated testing.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ff31ad90f3 | Steven Noonan | 2009-10-22 00:19:47 -0700

makefile: redirect stdout to /dev/null during 'make test'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b6d6b0c1c8 | Steven Noonan | 2009-10-22 00:02:38 -0700

makefile: fix MacPorts-based tiles build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2ef730772d | David Ploog | 2009-10-22 08:49:21 +0200

Allow shallow troves again, duration depends on depth.

--------------------------------------------------------------------------------
b919cfe957 | Steven Noonan | 2009-10-21 22:03:37 -0700

prebuilt yacc/lex: regenerate to fix NO_YACC builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
07f89daecc | David Ploog | 2009-10-22 06:34:10 +0200

Some vaults for the new god of slowing.
Using WEIGHTs and PLACEs to make sure the god is present by D:8 the
latest. This is temporary until the Temple system has been updated.

--------------------------------------------------------------------------------
9a0a90e361 | David Ploog | 2009-10-22 06:34:10 +0200

Allow vaults to place altars of Chronos.

--------------------------------------------------------------------------------
5a3209988f | David Ploog | 2009-10-22 06:34:10 +0200

Update CREDITS.

--------------------------------------------------------------------------------
3c3e2f0a82 | Steven Noonan | 2009-10-21 21:11:07 -0700

libw32c.cc: fix "format not a string literal" warning
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bebd6e128a | Steven Noonan | 2009-10-21 20:56:51 -0700

religion.cc: fix broken compile-time check caused by conduct absent from list
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2bb3520ef7 | Steven Noonan | 2009-10-21 20:36:38 -0700

makefile: make test into phony target, fix path to $(GAME)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
303a373867 | Steven Noonan | 2009-10-21 19:55:15 -0700

makefile: don't make test target depend on 'profile'
A 'debug' or 'profile' build should work with this, just run
'make debug' or 'make profile' before running 'make test'.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
8b22aadbe9 | David Lawrence Ramsey | 2009-10-21 21:40:00 -0500

Comment fix.

--------------------------------------------------------------------------------
c846410edb | David Lawrence Ramsey | 2009-10-21 21:37:43 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
ff06f60e89 | David Lawrence Ramsey | 2009-10-21 21:33:34 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f4bdb16d14 | Darshan Shaligram | 2009-10-22 07:41:58 +0530

Fix bug in columnise-credits that could cause it to lose names (dpeg).

--------------------------------------------------------------------------------
df9bbe2bc3 | Matthew Cline | 2009-10-21 17:55:18 -0700

arena.cc: Make sure adjust_spells() gets all mons
Apply arena::adjust_spells() in arena_placed_monster() to make sure that
it gets absolutely everything.

--------------------------------------------------------------------------------
c6eb2f02bb | Steven Noonan | 2009-10-21 17:44:14 -0700

sqlite: fix annoying "memset used with constant zero length parameter" warning
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bfaf29ee16 | Steven Noonan | 2009-10-21 17:07:33 -0700

makefile: add option for ncurses install prefix
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ba1dd86d6c | Steven Noonan | 2009-10-21 17:07:32 -0700

crash-u.cc: add a simple way to blacklist systems because backtrace() is 
unavailable
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e29feeb9d2 | Steven Noonan | 2009-10-21 17:07:32 -0700

platform.h: detect MIPS processor
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4e18c829e2 | Adam Borowski | 2009-10-22 01:53:39 +0200

Shrines, by TGW.

--------------------------------------------------------------------------------
e4e5306b41 | Adam Borowski | 2009-10-22 01:25:48 +0200

Amulet of resist slowing docks some Cronos piety when it triggers.

--------------------------------------------------------------------------------
4acb670639 | Adam Borowski | 2009-10-22 01:18:10 +0200

Document Chronos' dislikes on the god screen.

--------------------------------------------------------------------------------
623696a46a | Adam Borowski | 2009-10-22 00:37:56 +0200

Consider quick blades to be weapons of speed for Chronos' purposes.

--------------------------------------------------------------------------------
e7fa27e258 | Adam Borowski | 2009-10-22 00:30:11 +0200

Fix a nitpicky compiler warning.

--------------------------------------------------------------------------------
cf20e27621 | Adam Borowski | 2009-10-22 00:28:00 +0200

Show god rank as [****..] (abrahamwl).

--------------------------------------------------------------------------------
482db9a0b3 | Adam Borowski | 2009-10-22 00:13:43 +0200

Add a missing header for the tiles build.

--------------------------------------------------------------------------------
439667b69f | Adam Borowski | 2009-10-21 23:24:30 +0200

A typo.  Also, make Time Step train Invocations.

--------------------------------------------------------------------------------
ba76ed1fa7 | Adam Borowski | 2009-10-21 23:21:29 +0200

Chronos' time step.

--------------------------------------------------------------------------------
cf2aa57b5d | Matthew Cline | 2009-10-21 13:27:34 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
c7a7fb4439 | Matthew Cline | 2009-10-21 13:21:20 -0700

Don't disturb monsters witth their own sound
A monster making noise was causing an ME_DISTURB behaviour_event() for
itself, possibly causing it to get a new foe, which could cause strange
results if it switched foes during the middle of spell-casting when it
made noise from chanting.  Now noisy() can accept a "who" parameter, in
which case the monster which caused the noise will ignore the noise.
This is done in all cases except for when a monster of animal or lower
intelligence sets off an alarm trap or does a spell miscast.

--------------------------------------------------------------------------------
80dbdf1828 | Adam Borowski | 2009-10-21 22:15:36 +0200

Slightly reduce religion.cc by yanking item-handling stuff to goditem.cc

--------------------------------------------------------------------------------
10cffb19a8 | Adam Borowski | 2009-10-21 21:49:57 +0200

Tentatively color Chronos lightcyan.

--------------------------------------------------------------------------------
1995a2a643 | David Lawrence Ramsey | 2009-10-21 11:48:47 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
6256b83c6e | Adam Borowski | 2009-10-21 15:50:01 +0200

Feature desc for altars of Chronos.

--------------------------------------------------------------------------------
f38686da31 | Adam Borowski | 2009-10-21 15:42:08 +0200

Add missing Chronos conducts for hasting yourself, casting swiftness, using 
weapons of speed and boots of running.

--------------------------------------------------------------------------------
841ed044c9 | Adam Borowski | 2009-10-21 15:33:54 +0200

Documentation for no_cloud_gen.

--------------------------------------------------------------------------------
d0ff6986fc | Jude Brown | 2009-10-21 15:31:14 +0200

FPROP_NO_CLOUD_GEN, stop specific lava and shallow water grids generating 
relevant clouds.
Signed-off-by: Adam Borowski <kilobyte@angband.pl>

--------------------------------------------------------------------------------
36ac6df414 | Robert Vollmert | 2009-10-21 14:42:01 +0200

Split actors and env from externs.h.

--------------------------------------------------------------------------------
83d597313c | Adam Borowski | 2009-10-21 14:20:23 +0200

Similarly safeguard a notorious D:1 vault.

--------------------------------------------------------------------------------
8ee4dfad22 | Adam Borowski | 2009-10-21 14:13:08 +0200

Make autoexplore not blunder into the flame in oz_shiori.

--------------------------------------------------------------------------------
5de2baeb90 | Jude Brown | 2009-10-21 13:56:54 +0200

Documentation for KPROP. "force_exclude" for stopping auto-explore and 
auto-travel across a single square.

--------------------------------------------------------------------------------
2c835d08ac | Jude Brown | 2009-10-21 13:56:37 +0200

KPROP: assign feature properties in Lua vaults: FPROP_BLOODY, etc.

--------------------------------------------------------------------------------
17151da354 | Matthew Cline | 2009-10-21 04:06:46 -0700

clua.cc: needed algorithm header file
Needed "#include <algorithm>" for std::find()

--------------------------------------------------------------------------------
effa82373c | Robert Vollmert | 2009-10-21 12:54:11 +0200

Fix missing levcomp include properly.

--------------------------------------------------------------------------------
548dfe2081 | Robert Vollmert | 2009-10-21 12:52:45 +0200

Revert "Fix broken include."
Messed up the submodule again, I'm afraid.

This reverts commit 4c9ce77b6e7a7494e3e4ada71eb4155210af1455.

--------------------------------------------------------------------------------
4c9ce77b6e | Robert Vollmert | 2009-10-21 12:52:09 +0200

Fix broken include.

--------------------------------------------------------------------------------
d9a9f676d1 | Robert Vollmert | 2009-10-21 12:32:59 +0200

Move print_?lua_stack into CLua.

--------------------------------------------------------------------------------
df9d0d88a1 | Robert Vollmert | 2009-10-21 12:25:48 +0200

Move more utility code from dlua to cluautil.

--------------------------------------------------------------------------------
5b65cad743 | Robert Vollmert | 2009-10-21 12:15:06 +0200

Create l_defs.h and move stuff there.
l_defs.h contains headers for things defined in the Lua functions
but used elsewhere. This should probably not exist long-term.

--------------------------------------------------------------------------------
caae982848 | Robert Vollmert | 2009-10-21 12:05:50 +0200

Fix non-fastdep depend target.
The call to g++ was failing for files that included library headers,
since the library -Is weren't passed.

--------------------------------------------------------------------------------
b3b5d901b0 | Robert Vollmert | 2009-10-21 11:53:18 +0200

Move userdata templates to cluautil.h.

--------------------------------------------------------------------------------
0b68859a8d | Robert Vollmert | 2009-10-21 11:43:44 +0200

Move clua_register_metatable to cluautil.

--------------------------------------------------------------------------------
7974b1cb0f | Robert Vollmert | 2009-10-21 11:36:17 +0200

Move more macros and functions to cluautil.cc.

--------------------------------------------------------------------------------
3ab7bb0a81 | Robert Vollmert | 2009-10-21 10:54:30 +0200

Sort makefile.obj.

--------------------------------------------------------------------------------
fccc2460c9 | Robert Vollmert | 2009-10-21 10:54:13 +0200

Move utility functions from clua.cc to cluautil.cc.
cluautil.cc should eventually contain all of the functions
for passing objects from and to lua, at least the shared
ones.

Also cut down on clua.cc include list.

--------------------------------------------------------------------------------
6b4885b07d | Robert Vollmert | 2009-10-21 08:53:14 +0200

Complete rename to mapgrd.
Previously, I had renamed  only the C++-side of things.

Also update documentation.

--------------------------------------------------------------------------------
6dc31aef78 | David Ploog | 2009-10-21 05:47:13 +0200

Update CREDITS.

--------------------------------------------------------------------------------
5b7746fb77 | Jude Brown | 2009-10-20 20:16:47 -0700

Fix compile error with new Slow God conducts mismatch.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b5c1561ec8 | David Lawrence Ramsey | 2009-10-20 21:53:49 -0500

Add comment fixes.

--------------------------------------------------------------------------------
641b3a30c9 | David Lawrence Ramsey | 2009-10-20 21:51:25 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
0b9380cc19 | Charles Otto | 2009-10-20 22:48:43 -0400

Fix bug [2879187] Gods gifting duplicate books
Mark the type of a book as known when gifting it so that gods that
give books in a fixed order don't gift the same book twice if the
player never bothers to read the book the first time it is given.

I guess this is relevant because updated kiku doesn't use a gift
timeout.

--------------------------------------------------------------------------------
00c00d528a | Charles Otto | 2009-10-20 21:54:19 -0400

Fix bug [2880266] permanent stat loss when mutating
Fix a bug where getting a mutation that restricts equipment slots could
cause permanent stat loss by subtracting the stat bonuses from a piece
of equipment being removed twice.

--------------------------------------------------------------------------------
2bba6d94b2 | Matthew Cline | 2009-10-20 18:17:34 -0700

beam.cc: Half of arena fungi are friendly
In arena mode, half of the fungi generated by giant spore explosions are
friendly, chosen randomly (I just couldn't get the same thing to work
with toadstools growing from corpses, for some reason)

--------------------------------------------------------------------------------
0fa8777fbf | Matthew Cline | 2009-10-20 18:11:39 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
e3a04ec3a1 | David Lawrence Ramsey | 2009-10-20 20:01:58 -0500

Remove tabs, and add minor cosmetic fixes.

--------------------------------------------------------------------------------
5f84c0299a | Matthew Cline | 2009-10-20 17:49:03 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
00e0df0c6c | Adam Borowski | 2009-10-21 02:30:06 +0200

Fix altars of Chronos being invisible, include them when searching for altars.

--------------------------------------------------------------------------------
8228c67995 | Adam Borowski | 2009-10-21 02:19:18 +0200

Change the glyph for trees to '7'.

--------------------------------------------------------------------------------
0323b8ba69 | Adam Borowski | 2009-10-21 02:18:49 +0200

Edit early Chonos' titles.

--------------------------------------------------------------------------------
fd986393c0 | Steven Noonan | 2009-10-20 16:54:08 -0700

Makefile: add -lSDL_image to LIB line for pkg-config based builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4862ac7ba8 | Steven Noonan | 2009-10-20 16:46:47 -0700

gods: added "Chronos", the slow god
Signed-off-by: Brendan Hickey <brendan@bhickey.net>
Acked-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2c88c64bea | Matthew Cline | 2009-10-20 16:04:37 -0700

misc/grind.sh: Make work with -arena option

--------------------------------------------------------------------------------
d36356021c | Matthew Cline | 2009-10-20 15:52:12 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
d6ea58e6f1 | Steven Noonan | 2009-10-20 14:13:42 -0700

cosmetic: strip trailing whitespace
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c0d232cd85 | Steven Noonan | 2009-10-20 14:01:29 -0700

makefile: simplify cross-compiles, eliminate need for sdl-config
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a9faac32f6 | Steven Noonan | 2009-10-20 14:01:29 -0700

SDL: fix MinGW static builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
87f1439c5b | Steven Noonan | 2009-10-20 14:01:29 -0700

contrib/Makefile: add SDL as dependency of SDL_image
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d090e50618 | Steven Noonan | 2009-10-20 14:01:29 -0700

makefile: fix consistency of 'NEEDS_*' -> 'NEED_*'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1d595f47d0 | Robert Vollmert | 2009-10-20 22:27:39 +0200

Comments and renaming for consistency.

--------------------------------------------------------------------------------
c6df756b86 | Robert Vollmert | 2009-10-20 22:27:33 +0200

Move remaining libraries from clua.cc.
That's l_file.cc, l_food.cc, l_global.cc.

--------------------------------------------------------------------------------
7d6b9d881b | Matthew Cline | 2009-10-20 13:03:17 -0700

arena: Respawn fix, "move_respawns" option, msgs
Give dgn_place_monster() the proper monster level when respawning.

New "move_respawns" option teleports respawned monsters as soon as
they're placed, so that monsters don't clump up together in a brawl at
the center of the arena.

Don't filter out monster death messages when dumping messages to
arena.result

--------------------------------------------------------------------------------
52818f7c83 | Robert Vollmert | 2009-10-20 22:01:09 +0200

Move library "item" from clua.cc to l_item.cc.

--------------------------------------------------------------------------------
30beda4d0f | Robert Vollmert | 2009-10-20 22:00:53 +0200

Move library "options" from clua.cc to l_option.cc.

--------------------------------------------------------------------------------
62d3a1d12c | Robert Vollmert | 2009-10-20 21:26:08 +0200

Move monster libraries from clua.cc to l_mons.cc.

--------------------------------------------------------------------------------
bd3a484b40 | Matthew Cline | 2009-10-20 09:04:22 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
a99ad56b2d | Robert Vollmert | 2009-10-20 16:57:51 +0200

Move grd_lib out of clua.cc into l_mapgrd.cc.
Rest of commit comment only as accurate as my
understanding...

Renaming from grd to mapgrd to avoid confusion with
grd == env.grid: This grd is the maplines-section of
a vault definition.

Also move mapgrd_lib from clua to dlua since it's only
used for dungeon building.

clua and dlua need more descriptive names.

--------------------------------------------------------------------------------
dd65128ada | Steven Noonan | 2009-10-20 07:46:15 -0700

Xcode: upgrade to SDL 1.2.14, SDL_image 1.2.8, add support for x86_64
Woohoo! Finally!

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
04c97e69ce | Robert Vollmert | 2009-10-20 16:34:25 +0200

Move clua functions with ASSERT_DLUA to dlua.

--------------------------------------------------------------------------------
62129ffeac | Robert Vollmert | 2009-10-20 16:29:48 +0200

Move clua you_lib to l_you.cc.
Also remove you.pos() from clua since grid coordinates aren't
supposed to be known to the user.

--------------------------------------------------------------------------------
32e9f18033 | Robert Vollmert | 2009-10-20 16:17:27 +0200

Change you_dlib load style.

--------------------------------------------------------------------------------
7c97899cef | Robert Vollmert | 2009-10-20 16:06:40 +0200

Move clua crawl_lib from clua to l_crawl.cc.
To avoid name clashes, rename dlua libs from *_lib to *_dlib.

--------------------------------------------------------------------------------
fb872b6780 | Robert Vollmert | 2009-10-20 15:01:00 +0200

Silence int cast warning.

--------------------------------------------------------------------------------
f26a5d74bd | Robert Vollmert | 2009-10-20 15:00:06 +0200

Simplify make_name binding and silence int cast warning.

--------------------------------------------------------------------------------
a4870dc248 | Jude Brown | 2009-10-20 14:12:43 +0200

A wrapper for itemname:make_name().
Seed is always stuff:random_int(), but "all caps", "maxlen" and "start"
are specifiable, though default to false, -1, and 0 (as per
make_name()).

As each parameter is a different type (bool, int and char), it would be
good if the wrapper looked at type instead of parameter position, but
this will do for now.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
e4018b3ebf | Robert Vollmert | 2009-10-20 11:19:41 +0200

Split debug lua bindings out to new library "debug".

--------------------------------------------------------------------------------
b00943ff50 | Robert Vollmert | 2009-10-20 11:01:36 +0200

Split out grid and feature-related bindings.

--------------------------------------------------------------------------------
fb8e411ac2 | Robert Vollmert | 2009-10-20 10:40:00 +0200

Make Maurice green (jpeg, sorear).

--------------------------------------------------------------------------------
f95105155d | Robert Vollmert | 2009-10-20 10:38:13 +0200

Split builder functions out from l_dgn.cc.
Now sub-2k lines of code.

--------------------------------------------------------------------------------
29aa709171 | Robert Vollmert | 2009-10-20 10:15:35 +0200

Split level and branch functions out of l_dgn.cc.

--------------------------------------------------------------------------------
40c9bc1600 | Robert Vollmert | 2009-10-20 10:15:10 +0200

Add l_dgntil.cc which was missing in the last commit.

--------------------------------------------------------------------------------
84e175e70f | Robert Vollmert | 2009-10-20 09:54:20 +0200

Split out tiles specific functions from l_dgn.cc.
Also a little cleanup.

--------------------------------------------------------------------------------
01df4fd74a | Matthew Cline | 2009-10-19 22:25:14 -0700

arena.cc: Try harder to preserve respawners
If there isn't any room to place a respawning monster in, then rather
than letting it vanish, keep it on the list of pending-respawns and hope
that space clears up later.  Also, if a side with pending-respawns is
about to loose because it has 0 active members, then *make* room to
place a respawn.

--------------------------------------------------------------------------------
5dc279a921 | Matthew Cline | 2009-10-19 18:42:43 -0700

directn.cc: Some more non-PLAIN message channels
Send messages describing unkown mimics to MSGCH_FLOOR_ITEMS, and send
all of _describe_monster()'s output to MSGCH_EXAMINE.

--------------------------------------------------------------------------------
515e08e5bd | Matthew Cline | 2009-10-19 18:41:35 -0700

arena.cc: Don't dump examination messages
Don't dump message to arena.result if they're the result of the user
examine the arena.

--------------------------------------------------------------------------------
c46a242c68 | Enne Walker | 2009-10-19 20:16:32 -0400

Applying patch from Vsevolod Kozlov for dungeon.cc:_plan_3 in lua.

--------------------------------------------------------------------------------
593cdef2b0 | Steven Noonan | 2009-10-19 16:08:36 -0700

levcomp: regenerated due to luadgn.h disappearance
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1aaa302b92 | Steven Noonan | 2009-10-19 15:54:30 -0700

makefile: force regeneration of compflag.h and build.h on revision change
The build.h and compflag.h files stayed around regardless of
whether or not they were dependencies of the .INTERMEDIATE
pseudo-target. This led to stale headers.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cd3d964fcd | Steven Noonan | 2009-10-19 15:54:30 -0700

makefile: move compflag.h target closer to build.h target
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
378834da4d | Robert Vollmert | 2009-10-20 00:44:30 +0200

Split some parts of lua library "dgn" out.
Specifically, item and monster-related functions to l_dgnit.cc and
l_dgnmon.cc.

--------------------------------------------------------------------------------
a4f9da4c2d | Robert Vollmert | 2009-10-20 00:44:30 +0200

Move part of dgn_lib out to l_dgnevt.cc.

--------------------------------------------------------------------------------
fac213f267 | Robert Vollmert | 2009-10-20 00:44:30 +0200

Split out builder functions from dlua.cc.
Also minor cleanup.

--------------------------------------------------------------------------------
725154d095 | Steven Noonan | 2009-10-19 15:07:55 -0700

compflag.h: generate via perl script instead of shell
Some platforms broke because they used /bin/sh, which doesn't have
the '-n' parameter for 'echo'.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0102f92c2f | Steven Noonan | 2009-10-19 14:32:50 -0700

rltiles/makefile.unix: use full name of host compiler
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0878b0e8ab | Steven Noonan | 2009-10-19 14:32:50 -0700

makefile: cosmetic fix
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b440c948d5 | Steven Noonan | 2009-10-19 14:32:50 -0700

Makefile: attempt to use 'autoreconf' in SDL and SDL_image builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0be8c4ef12 | Steven Noonan | 2009-10-19 14:32:50 -0700

mingw-cross: eliminate need to override uname_S on make command line
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2bbc6dd25a | Steven Noonan | 2009-10-19 14:32:50 -0700

win32: eliminate need for WIN32TILES/WIN32CONSOLE macros
Instead of
  defined(WIN32CONSOLE)
we should use:
  defined(TARGET_OS_WINDOWS) && !defined(USE_TILE)

As well as replace
  defined(WIN32TILES)
with:
  defined(TARGET_OS_WINDOWS) && defined(USE_TILE)

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cf2b911c89 | Robert Vollmert | 2009-10-19 23:29:48 +0200

Reduce #includes in dlua.cc.

--------------------------------------------------------------------------------
8e94f18008 | Robert Vollmert | 2009-10-19 23:22:39 +0200

Split out lib_mapmark from dlua.cc.

--------------------------------------------------------------------------------
8e048c2d18 | Robert Vollmert | 2009-10-19 23:17:53 +0200

Split out dgnevent_lib from dlua.cc.

--------------------------------------------------------------------------------
49a01f5ae4 | Robert Vollmert | 2009-10-19 23:15:11 +0200

Split you_lib out from dlua.cc.

--------------------------------------------------------------------------------
99551ab330 | Robert Vollmert | 2009-10-19 23:11:43 +0200

Split file_lib out.
Move lua library headers to separate l_libs.h, fixing another
compilation error...

--------------------------------------------------------------------------------
5bb58a2e08 | Robert Vollmert | 2009-10-19 22:53:57 +0200

Split out crawl_lib from dlua.cc.
Also fix error in previous commit.

--------------------------------------------------------------------------------
49eb883334 | Robert Vollmert | 2009-10-19 22:46:37 +0200

Split dgn_lib out of luadgn.cc; rename luadgn to dlua.

--------------------------------------------------------------------------------
c0aa07cd0d | Steven Noonan | 2009-10-19 13:21:13 -0700

makefile: try to use full gcc compiler name when possible
This assists both distcc and ccache in doing their jobs properly.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
272242196e | Steven Noonan | 2009-10-19 13:19:55 -0700

makefile: fix doublequote escaping for compflag.h
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d8171e3eab | David Lawrence Ramsey | 2009-10-19 15:10:56 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d1518942ea | Matthew Cline | 2009-10-19 05:09:59 -0700

directn.cc: Fix arena crash on examine monster
Arena mode would crash if you examined monsters.

--------------------------------------------------------------------------------
2cc88c3a51 | Matthew Cline | 2009-10-19 05:08:38 -0700

fight.cc: Fix undrandart/unarmed crash
The game would crash if a monster wielding an unrandart with a special
melee function could do an armed an unarmed attack in the same round.

--------------------------------------------------------------------------------
a94b70783e | Matthew Cline | 2009-10-19 04:41:44 -0700

New arena option "respawn"
If the arena option "respawn" is used then when one of the originally
placed monster dies it will be replaced by a copy.

--------------------------------------------------------------------------------
41246dc535 | Matthew Cline | 2009-10-19 04:21:17 -0700

monstuff.cc: friendly arena jellies can eat

--------------------------------------------------------------------------------
5c475d386e | Adam Borowski | 2009-10-19 12:26:41 +0200

Kraken tentacles shouldn't zerk.

--------------------------------------------------------------------------------
492f5dc025 | Adam Borowski | 2009-10-19 11:15:32 +0200

Mark krakens as "BLACK" so they are listed same as other random colours.

--------------------------------------------------------------------------------
7b852ce085 | Robert Vollmert | 2009-10-19 08:35:13 +0200

Move cell_see_cell from dgn_lib to los_lib.

--------------------------------------------------------------------------------
21a091c6f1 | Robert Vollmert | 2009-10-19 08:35:13 +0200

Simplify.

--------------------------------------------------------------------------------
9ec4ec86a3 | David Ploog | 2009-10-19 06:10:57 +0200

Naming monsters via MONS: rat name:Yves (Jude & Vsevolod).

--------------------------------------------------------------------------------
355302abda | David Ploog | 2009-10-19 06:10:57 +0200

More iron statues near Dispater. (Neil Middleton)

--------------------------------------------------------------------------------
a27697c69b | Steven Noonan | 2009-10-18 19:42:26 -0700

makefile: correct dependencies to always generate build.h and compflag.h
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
485b2406be | Steven Noonan | 2009-10-18 19:42:26 -0700

version.cc: add OS version to the compilation_info() printout
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f226d809e7 | Steven Noonan | 2009-10-18 19:42:22 -0700

gen_ver.pl: add OS version to the list of defines
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
04a82f7a69 | Steven Noonan | 2009-10-18 19:28:57 -0700

gen_ver.pl: use 'uname -s' instead of 'uname -o'
Some versions of 'uname' do not have an '-o' option.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5fb0e5e3cc | Matthew Cline | 2009-10-18 18:13:29 -0700

makefile: remove 'compile-flags' target/dependency

--------------------------------------------------------------------------------
0dc73bc54f | Matthew Cline | 2009-10-18 18:12:27 -0700

arena.cc: Avoid divide-by-zero error

--------------------------------------------------------------------------------
5d359c101c | Matthew Cline | 2009-10-18 18:07:02 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
1ae2ee1468 | Steven Noonan | 2009-10-18 17:28:10 -0700

makefile: don't use intermediate .compflag.h file
It's not necessary, because the compflag.h header will never exist, because
the makefile has it marked as an .INTERMEDIATE, which means it's deleted
automatically if the build is cancelled or finishes.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2c979d9691 | Steven Noonan | 2009-10-18 17:22:45 -0700

gen_ver.pl: don't bother with MD5 checking
Comparing MD5 hashes used to be important for this script, because in the
project I developed it for, it was a globally included header (by something
akin to AppHdr.h). Preventing it from changing was pretty important. But it
doesn't matter now, since we only make it a dependency of version.cc, and
the makefile regenerates it on every build (which is handy).

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
58d3a0522e | Steven Noonan | 2009-10-18 17:22:14 -0700

gcc-opt.pl: use gcc-opt-x86.pl for x86_64 as well
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
fb90268fca | Matthew Cline | 2009-10-18 16:31:28 -0700

makefile: EXTERNAL_FLAGS_L and EXTERNAL_FLAGS
Split makefile variable EXTERNAL_FLAGS into EXTERNAL_FLAGS_L and
EXTERNAL_FLAGS, which apply to CFOTHERS_L and CFOTHERS respectively.

--------------------------------------------------------------------------------
dee470bf63 | Matthew Cline | 2009-10-18 16:09:51 -0700

Add compilation information to Version namespace
The Version namespace now provides the compiler which was used, the OS,
machine type and processor type the compilation was done on, and the
CFLAGS, CFLAGS_L and LDFLAGS which were used.  If GCC was the compiler,
it also provides the compiler version.

This information is included in crash reports, and can be dumped using
the new command line option "-version".

--------------------------------------------------------------------------------
b347547482 | Eino Keskitalo | 2009-10-18 23:59:58 +0300

Generate shields of reflection randomly.
Half of the branded shields are generated with reflection, for testing purposes.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
f2b2d2ed9d | Enne Walker | 2009-10-18 16:52:02 -0400

Updating prebuilt levcomp files.

--------------------------------------------------------------------------------
df0b2a5165 | Enne Walker | 2009-10-18 16:52:02 -0400

Lua map improvements.
The previous dungeon layout.des functions all apply directly to the grid
and so are unsuitable for use in vaults.  This aims to correct that by
providing lua functions that can manipulate maps (of glyphs).

grd[x][y] in a .des file can now be used to get and set glyphs in the
current map.  This should allow for less cumbersome map variations
than what you can do with just SUBST and SHUFFLE.

To support that, map_def no longer batches up transforms--it applies
them all immediately.  This resulted in a good bit of refactoring.

FTILE/RTILE map commands now support setting the tile for multiple
features at once.

There are also a small number of new lua functions that apply to maps
(map_octa_room, map_smear, and map_extend).  Ideally, these will
eventually replace the existing builder funcs that work on grd.

--------------------------------------------------------------------------------
52fce0a778 | Eino Keskitalo | 2009-10-18 23:29:13 +0300

Generate launchers of penetration and shadow randomly.
The chances of getting each ego when branding, new and (old):

flame       25% (37.5%)
frost       25% (37.5%)
penetration 15% (N/A)
shadow      15% (N/A)
protection  12% (17%)
vorpal       6% (6%)
speed        2% (2%)

Hopefully, the chances for new brands are sufficient for testing. I didn't up 
the generation of launchers, or chances of the launcher getting an ego.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d4696cfa88 | David Lawrence Ramsey | 2009-10-18 13:46:07 -0500

Remove the build.h generation from dolinks.sh, as it's generat4ed by the 
makefile (and works after doing a clean build).

--------------------------------------------------------------------------------
2a3df39505 | David Lawrence Ramsey | 2009-10-18 11:17:18 -0500

And generate source/build.h unconditionally, in case there have been new 
commits.

--------------------------------------------------------------------------------
ae52274c95 | David Lawrence Ramsey | 2009-10-18 11:13:14 -0500

Make dolinks.sh generate source/build.h before generating source links, if the 
former doesn't exist.

--------------------------------------------------------------------------------
a3a6694332 | David Lawrence Ramsey | 2009-10-18 11:11:53 -0500

Changelog update.

--------------------------------------------------------------------------------
a288c6bc9b | David Lawrence Ramsey | 2009-10-18 10:34:49 -0500

Properly print the version number as a string in all cases.

--------------------------------------------------------------------------------
2f656a0430 | Steven Noonan | 2009-10-18 07:59:54 -0700

versioning: remove SVN-specific revision data, add Git versioning
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4a5e722897 | Steven Noonan | 2009-10-18 07:59:54 -0700

remove unnecessary "version.h" includes, AppHdr.h does it already
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
75990d7777 | Steven Noonan | 2009-10-18 07:59:49 -0700

gen_ver.pl: add build.h generator script
This works best with 'git describe', but if it can't use that (i.e. in an
official release tree, outside of git), it will use release_ver in the util
directory.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
8420352d20 | Robert Vollmert | 2009-10-18 16:46:48 +0200

Don't cap spell power for failure rate calculations.
This means that capped spells continue getting easier to cast
after hitting the cap, which is probably how it should be.

Fixes 2881204.

--------------------------------------------------------------------------------
8ed81a833a | Robert Vollmert | 2009-10-18 16:30:17 +0200

Assert that find_ray isn't called with bad bounds_func.

--------------------------------------------------------------------------------
e750222e13 | Robert Vollmert | 2009-10-18 16:17:49 +0200

Ensure precalculations are done before find_ray is called.
Fixes BR 2881139.

Arena mode doesn't result in a call to losight() anymore, which
was doing the precalculations before.

--------------------------------------------------------------------------------
9441995c25 | Adam Borowski | 2009-10-18 16:06:23 +0200

Limit alarm traps to 1-3 charges.

--------------------------------------------------------------------------------
4286f58f0b | Darshan Shaligram | 2009-10-18 19:29:46 +0530

Add a call to reset the dungeon level before placing maps in los_maps test.
Dungeon cruft left behind from other tests was causing los_maps to fail 
occasionally; we now wipe the level clean before placing maps to test.

--------------------------------------------------------------------------------
16fdd3ec80 | Robert Vollmert | 2009-10-18 14:48:43 +0200

Fix see_cell for tighter ENV_SHOW_OFFSET.
This was causing see_cell to fail for cells at the edge of LOS.

--------------------------------------------------------------------------------
1a0813b58a | Robert Vollmert | 2009-10-18 14:48:43 +0200

Fix off-by-one and remove magic numbers.
Slight clean-up to random_near_space removing the magic numbers --
they're in defines that maybe should move elsewhere.

Also fix another induced off-by-one error due to hard-coded
show-view-offset.

--------------------------------------------------------------------------------
8a55e19c00 | Robert Vollmert | 2009-10-18 14:48:42 +0200

Be more explicit about why los_maps test fails.
One class of false errors is when a stair gets placed in the
LOS map.

--------------------------------------------------------------------------------
6f728490c3 | Robert Vollmert | 2009-10-18 14:48:42 +0200

Remove obsolete copy of footprint().

--------------------------------------------------------------------------------
4eae47b874 | Darshan Shaligram | 2009-10-18 18:17:47 +0530

[2881182] Fix being unable to place flying monsters over lava in maps (due).

--------------------------------------------------------------------------------
20499e4d29 | Darshan Shaligram | 2009-10-18 18:17:47 +0530

Add test for monster placement.
Adds test/monplace.lua to test placing monsters using the Lua direct monster 
creation binding (does not exercise all the map code).

Allow choosing what tests to run with "crawl -test test1,test2".

--------------------------------------------------------------------------------
ebf9ea59c9 | Steven Noonan | 2009-10-18 04:54:23 -0700

gcc-opt-x86.pl: add Core 2 and Atom
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
7e695233dc | Steven Noonan | 2009-10-18 04:40:41 -0700

gcc-gte.pl: use 1/0 instead of Yes/No
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0a32c9f823 | Matthew Cline | 2009-10-18 04:34:20 -0700

git-opt-x86.pl: Detect some more arches
Detect pentium, pentium-mmx, pentiumpro, athlon, and amdfam10.

--------------------------------------------------------------------------------
b2aa4add5e | Steven Noonan | 2009-10-18 03:31:17 -0700

util/gcc-opt.pl: added (whoops)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6aec5ed01c | Steven Noonan | 2009-10-18 03:30:18 -0700

AUTO_OPT: add a bit of flexibility for future porting, Mac OS X support
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0b1a6a2371 | Robert Vollmert | 2009-10-18 11:36:54 +0200

Language.

--------------------------------------------------------------------------------
bd56474d78 | Robert Vollmert | 2009-10-18 11:36:54 +0200

Simplify mons_near, using see_cell.

--------------------------------------------------------------------------------
43873ef0ff | Matthew Cline | 2009-10-17 20:22:24 -0700

makefile: Automatically optimize for your machine
Setting the makefile variable AUTO_OPT_GCC will give GCC a list of
optimization flags suited for the machine make is run on. It does this
using util/auto-opt.sh.  "-march=native -mtune=native" are always
outputted, which causes GCC to detect the CPU type you use and generate
code for that.  On Linux systems it also looks at the flags line of
/proc/cpuinfo to pick x86 optimization flags.

--------------------------------------------------------------------------------
f923d3b75a | Adam Borowski | 2009-10-18 00:48:01 +0200

Keep krakens from submerging unless you're away from water.

--------------------------------------------------------------------------------
b715966689 | Adam Borowski | 2009-10-17 22:35:18 +0200

Make a stray debug message show in debug builds only.

--------------------------------------------------------------------------------
617c9afabd | Adam Borowski | 2009-10-17 22:01:43 +0200

Show unknown stairs as unknown.

--------------------------------------------------------------------------------
7277970ea2 | Enne Walker | 2009-10-17 16:07:57 -0400

Fixing one more tiles off-by-one issue.

--------------------------------------------------------------------------------
f75f1e6013 | Enne Walker | 2009-10-17 15:40:06 -0400

Fixing off-by-one issues in the tiles build due to the off-by-one fix to 
crawl_view.  (This was manifesting as weird artifacts or crashes.)

--------------------------------------------------------------------------------
e14cd499af | Steven Noonan | 2009-10-17 09:54:54 -0700

contribs: fix contrib commit references
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b151b68bd4 | Robert Vollmert | 2009-10-17 17:36:45 +0200

Replace monster_los by calls to losight.
los_param got a new opacity_monmove to help. The change compiles
and the game runs, but I'm unsure how to test monster pathfinding.
Please tell me if anything went wrong!

Removes mon-los.{cc,h}, so I'm afraid I may have broken the
non-Unix builds again.

--------------------------------------------------------------------------------
86adff1f48 | Robert Vollmert | 2009-10-17 17:20:57 +0200

Revert accidental change to default LOS radius.

--------------------------------------------------------------------------------
b2de5ccac1 | Steven Noonan | 2009-10-17 07:56:24 -0700

makefile: add option for static linking
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
050ad8a6b9 | Robert Vollmert | 2009-10-17 16:45:18 +0200

Make default LOS configurable.
Setting LOS_RADIUS in defines.h now works. Fixed a couple of
things to allow this, including an apparent off-by-one error
in crawl_view -- not quite sure this doesn't break anything.

--------------------------------------------------------------------------------
47332d4cd5 | Robert Vollmert | 2009-10-17 16:45:17 +0200

Clean up LOS precalculation settings.
The maximal boundary within which losight/find_ray will work is
now clearly defined at the start of los.cc. By default, it's
the circle with radius LOS_MAX_RADIUS == LOS_RADIUS.

--------------------------------------------------------------------------------
2f62da4f8d | Robert Vollmert | 2009-10-17 16:45:17 +0200

Remove chain-lightning specific LOS test from beam.cc.
There's now a spell-specific _lightning_los which may require
some fine-tuning -- I'm not quite sure of the intention of the
original check.

--------------------------------------------------------------------------------
e6d4aa80db | Steven Noonan | 2009-10-17 06:51:52 -0700

rltiles: use the system SDL, SDL_image, etc when compiling/linking
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6a2d943e27 | Steven Noonan | 2009-10-17 06:51:07 -0700

makefile: don't use the system's sdl-config on a cross-compile
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
9286df6aa0 | Steven Noonan | 2009-10-17 06:45:15 -0700

SDL: pay attention to CONFIGURE_FLAGS
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c13e172b78 | Steven Noonan | 2009-10-17 06:45:06 -0700

makefile: export CONFIGURE_FLAGS variable
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ea55eb4411 | Steven Noonan | 2009-10-17 06:39:18 -0700

contrib/Makefile: pay attention to CONFIGURE_FLAGS variable
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
58889ea3d4 | Steven Noonan | 2009-10-17 06:31:23 -0700

makefile: add -Wno-uninitialized on < GCC 4.0
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
8f9e678d9e | Steven Noonan | 2009-10-17 06:22:37 -0700

lua, pcre, sqlite: inherit top-level Makefile's RANLIB setting
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
63d477eda9 | Steven Noonan | 2009-10-17 06:09:01 -0700

makefile: basic cross-compilation support
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a56fa852eb | Steven Noonan | 2009-10-17 06:02:08 -0700

tilepick.cc: fix compile error caused by misspelling
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
dda12bf355 | Adam Borowski | 2009-10-17 13:32:00 +0200

Remove food cost from Zin's recite, as it doesn't involve magic or any other 
strenuous activity that would justify the nutrition cost. Let's hope this can 
make recite something more than a painful way to victory-dance Invocations.

--------------------------------------------------------------------------------
3c6d609655 | Jude Brown | 2009-10-17 13:30:01 +0200

Recite should not cause monsters to go berserk. (dpeg, Eronarn, due)

--------------------------------------------------------------------------------
ce61d4dca1 | Matthew Cline | 2009-10-17 02:17:53 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
d7b6983134 | Matthew Cline | 2009-10-17 02:11:00 -0700

Makefile: get rid of some 'make clean' errors
When doing "make clean" for contribs, don't give an error if a submodule
isn't checked out, or if the module's makefile has a 'clean' target but
not a 'distclean' target.

--------------------------------------------------------------------------------
23d8378913 | Robert Vollmert | 2009-10-17 10:17:26 +0200

Simplify unknown stair emphasis.

--------------------------------------------------------------------------------
6845f79a5e | Robert Vollmert | 2009-10-17 10:09:35 +0200

Unify check for unknown staircases in is_unknown_staircase.

--------------------------------------------------------------------------------
0c36a4832d | Robert Vollmert | 2009-10-17 09:47:34 +0200

Simplification.

--------------------------------------------------------------------------------
91480fa09b | Robert Vollmert | 2009-10-17 09:09:43 +0200

More renaming and reorganization of feature checks.
There were a couple of functions is_something(dgn_feature_type feat)
defined in travel.cc that were otherwise independent of travel. For
consistency, move these to terrain.cc and rename to feat_is_something.

One might also consider renaming the various feat_is_whatever functions
to just is_whatever.

--------------------------------------------------------------------------------
dcc94e4df2 | Robert Vollmert | 2009-10-17 07:51:25 +0200

Naming consistency.
Mostly rename functions from terrain.h that accept features of typ
dgn_feature_type from grid_is_* to feat_is_*.

--------------------------------------------------------------------------------
4b9dbd4fc2 | Steven Noonan | 2009-10-16 20:06:34 -0700

INSTALL.txt: more corrections
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cb503e3607 | Steven Noonan | 2009-10-16 19:26:13 -0700

INSTALL.txt: updated to reflect current build system
The Cygwin section might not be entirely accurate yet (and I haven't personally
verified the DOS instructions), but most of this is now correct.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4860bed383 | Steven Noonan | 2009-10-16 16:05:19 -0700

SDL: fix repository reference and SDL_config.h failures
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f6541dfa87 | Steven Noonan | 2009-10-16 15:56:21 -0700

zlib: fix build to use 'AR' variable correctly
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
531fb55971 | Steven Noonan | 2009-10-16 15:42:42 -0700

makefile: cleaning up, improving readibility and speed
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
7cc1ed820a | David Lawrence Ramsey | 2009-10-16 17:39:09 -0500

Comment fixes.

--------------------------------------------------------------------------------
fbd3998f59 | David Lawrence Ramsey | 2009-10-16 17:29:52 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
241ceb5971 | Robert Vollmert | 2009-10-17 00:16:20 +0200

Globally replace see_grid by see_cell.

--------------------------------------------------------------------------------
f6e6b6b715 | Robert Vollmert | 2009-10-16 23:49:51 +0200

Rewrite cell_see_cell using exists_ray.
For this, add new opacity_func that disregards half-opaque things.

--------------------------------------------------------------------------------
756894ef3f | Robert Vollmert | 2009-10-16 23:49:51 +0200

Remove duplicated version of _move_stairs.

--------------------------------------------------------------------------------
0adf2c9dd9 | Robert Vollmert | 2009-10-16 23:49:51 +0200

Some find_ray related cleanup.
Introduce a function exists_ray when the ray is not actually needed.
Also factor out part of _blocked_ray from directn.cc to ray_blocker.

--------------------------------------------------------------------------------
1feac7b0b1 | Charles Otto | 2009-10-16 17:12:32 -0400

Fix bug [2874791], Merfolk stat change issues
Fix some conditions causing permanent stat loss or gain for Mf with
stat modifying boots.

Unmerge boots when the player starts levitating or flying on a water
square.

Use move_player_to_grid in blink, semi-controlled blink, and
teleportation.

Also fix a bug where Mf could random teleport into solid walls.

--------------------------------------------------------------------------------
d5c9626b31 | Charles Otto | 2009-10-16 17:12:31 -0400

Let Feawn's rain ability place deep water again (oops).

--------------------------------------------------------------------------------
67daccbb0e | Steven Noonan | 2009-10-16 11:34:08 -0700

rltiles: fix MinGW build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1241f456b2 | Robert Vollmert | 2009-10-16 20:17:48 +0200

Generalize find_ray to accept opacity_func and bounds_func parameters.

--------------------------------------------------------------------------------
af4b501551 | Robert Vollmert | 2009-10-16 20:17:48 +0200

Get rid of los_param outside of los.cc/losparam.cc.
The nicer interface to losight is now
void losight(env_show_grid& sh, const coord_def& center,
             const opacity_func &opc = opc_default,
             const bounds_func &bds = bds_default);

bounds_func provides the LOS boundary (usually just a circle with
radius the current LOS radius). opacity_func is a mapping of grid
coordinates to opacity values.

--------------------------------------------------------------------------------
564dac43f5 | Robert Vollmert | 2009-10-16 20:17:48 +0200

On the way to a simplified losight interface.
Added a function
void losight(env_show_grid& sh, const coord_def& center,
             opacity_func opc, bounds_func bounds)
with sensible defaults for opc and bounds.

It's not necessary to abstract away the geometry as I initially
did with los_param.

--------------------------------------------------------------------------------
6c3f2bb249 | Steven Noonan | 2009-10-16 11:16:04 -0700

makefile: fix to specifically reference the self-built lib
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
37d39dff8f | Steven Noonan | 2009-10-16 09:55:46 -0700

makefiles & contribs: add support for MinGW tiles builds
Incredibly hairy to get this to work, largely because MinGW's GCC
is picky about the link order, among other things.

But now we have a working build!

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0a624bcd94 | Robert Vollmert | 2009-10-16 16:09:28 +0200

Rewrite find_ray to use precomputed cellrays.
During precomputation, we store the minimal cellrays by target
and sort them according to niceness.

find_ray now simply picks the first non-blocked ray to a
target, which means looping through the 10 or so minimal
cellrays with that target -- this should be a lot more
efficient. (An extended findray test went from 150s to 40s
(debug) and 40s to 26s (profile)).

The interface to find_ray has changed: cycle_dir=-1,0,1 was
changed to cyle=false/true since we never cycle in the other
direction anyway. find_shortest was removed: all rays to a
target had the same length all along, but now we also return
the straightest one automatically.

The change also eliminates the duplicate corner-cutting code
between ray_def::advance and find_ray as imbalance calculation
now relies on ray_def::advance.

--------------------------------------------------------------------------------
8ba1550e40 | Steven Noonan | 2009-10-16 04:13:47 -0700

makefile: add 'REPORT' flag, for compile time profiling
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3d01612472 | Matthew Cline | 2009-10-16 04:11:36 -0700

dungeon.cc: use dungeon_terrain_changed()
Use dungeon_terrain_changed() in dgn_place_monster() instead of doing
"grd(pos) = FOO".

--------------------------------------------------------------------------------
c659d9e7a0 | Matthew Cline | 2009-10-16 04:07:12 -0700

Lua marker to create monsters on triggering
New lua marker MonsterOnTrigger, which creates a monster when the
triggering condition is met (which currently only includes a monster
dying).

Use it in the dis_mu Dis:7 vault to turn all of the iron statues into
iron golems when Dispater dies.

--------------------------------------------------------------------------------
fca02d5a9d | Matthew Cline | 2009-10-16 04:01:53 -0700

Protect features from damage with marker props
A marker can protect the feature it's on from damage by:

* Setting property "veto_fragmentation" to "veto" to protect it from
  fragmentation (Lee's Rapid Deconstruction spell).

* Setting property "veto_shattering" to "veto" to protect it from
  shattering (Shattering spell).

* Setting property "veto_disintegration" to "veto" to protect it from
  disintegration and nuking.

TODO: Document this.  I'm not sure where to put info on this in
docs/develop/level_design.txt

--------------------------------------------------------------------------------
bf5490b041 | Steven Noonan | 2009-10-16 03:56:31 -0700

contribs: update HEAD position for new Contribs.sln usage
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
403d55fd98 | Robert Vollmert | 2009-10-16 11:48:11 +0200

Revert radiance and refrigeration patches for the moment.
There's a couple of issues with these that were missed.

This reverts commits
 70c41610927b7f9adfc3a0fd6c72c7af6756427e
 dce44e60507ec723f3cf94cdeadc6762ee492786
 6525d257d208e990f5d62213adf6a062943e6626
 6d9b6f226847487b3fd9e2ff408d7c0f42361c93.

--------------------------------------------------------------------------------
e0f64f36d0 | Robert Vollmert | 2009-10-16 10:22:11 +0200

Comments.

--------------------------------------------------------------------------------
70c4161092 | Robert Vollmert | 2009-10-16 10:15:50 +0200

Set killer for monster refrigeration.

--------------------------------------------------------------------------------
dce44e6050 | Jude Brown | 2009-10-16 10:15:50 +0200

Resolve issues with monster-cast refrig/radiance kills being assigned to player.

--------------------------------------------------------------------------------
6525d257d2 | Matthew Cline | 2009-10-16 00:14:10 -0700

ghost.cc: typo fix for spell enumeration

--------------------------------------------------------------------------------
afa189167b | Matthew Cline | 2009-10-16 00:13:01 -0700

stuff.cc: end() can output bigger messages
Made end()'s buffer[] 1K long, so that end() can output long messages.

--------------------------------------------------------------------------------
6d9b6f2268 | Jude Brown | 2009-10-16 08:56:35 +0200

Make Toxic Radiance and Refrigeration monster castable.
Allow player ghosts and random pandemonium lords to also cast it.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
abb48a2dd6 | David Ploog | 2009-10-16 07:51:00 +0200

Forgot one colour for Coc:7.

--------------------------------------------------------------------------------
1989e965ff | Charles Otto | 2009-10-16 00:20:24 -0400

Change some of Feawn's religion titles.

--------------------------------------------------------------------------------
751cdbfdbe | Steven Noonan | 2009-10-15 20:03:06 -0700

Contribs.sln: LF -> CRLF
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2ae0112357 | Steven Noonan | 2009-10-15 15:54:40 -0700

msvc: add tile build support
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4e50731697 | Steven Noonan | 2009-10-15 15:53:48 -0700

AppHdr.h: move warning-disabler for 4290 to before externs.h include
externs.h is where the warning is generated, so...

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
58076d0f9d | Matthew Cline | 2009-10-15 15:20:46 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
484bc0261f | Matthew Cline | 2009-10-15 15:04:50 -0700

.gitignore: organization, comments, Vim, misc
* Made some more sections headed with a comment and moved lines there.

* Added a Vim modeline so that Vim will treat .gitingore as a config
  file.

* If the same file is opened mulitple times by separate instances of
  Vim, the first swap file will be .FOO.swp, the second .FOO.swo,
  the third .FOO.swn, and so on; deal with having up to three
  swap files.

* A "/" at the start of a filename matches the local repository root,
  so (for example) "/dat" will only match a file named "dat" if it's
  in the top-level directory, rather than matching "dat" anywhere.

* A "/" at the end of a filename means that the file must be a
  directory, so git-status will still note the file's presence if
  it's a link or normal file.

--------------------------------------------------------------------------------
ab5aa63e27 | Matthew Cline | 2009-10-15 14:18:18 -0700

makefile: New targets clean-pcre and clean-contrib
Added clean target for pcre "clean-pcre", and a target to clean out all
contrib subdirs, "clean-contrib"

--------------------------------------------------------------------------------
ddde3b5345 | David Lawrence Ramsey | 2009-10-15 15:37:09 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
6d503bc944 | Robert Vollmert | 2009-10-15 22:18:12 +0200

Update all exclusions' LOS from travel_init_new_level().
This fixes a bug related to BR 2849608: If you created an exclusion on a
level, left that level, saved and restored off-level, and returned to
the level, the exclusion filled the complete LOS radius.

I'm not sure why it was even restricted to LOS radius, though, and
didn't fill an entire ENV_SHOW_OFFSET-size square.

--------------------------------------------------------------------------------
3b3743e4ef | Steven Noonan | 2009-10-15 12:38:52 -0700

AppHdr.h: disable VC++ warning 4290
Microsoft warns us that they're ignoring the C++ specification.

How nice.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a2f57f7ee1 | Steven Noonan | 2009-10-15 12:16:29 -0700

los.cc: fix _find_minimal_cellrays iteration
From an earlier email about this bug:

  It bombed on the min_it++, which was odd.

  Looking at the loop, I suspect what happens is this:
  - Erases the last item in the 'min' list, setting min_it to min.end(),
  - Attempts to increment min_it (which isn't valid on the end iterator)

  The patch at the bottom of this mail avoids the crash, but DOES NOT
  fix the root bug. The root bug is a bit more insidous (imagine that,
  MSVC helped us catch a real bug!). Consider the following test case:

  -- BEGIN --
  #include <iostream>
  #include <list>

  int main()
  {
     std::list<int> ilist;
     for (int i = 1; i < 10; i++)
     {
         ilist.push_back(i);
     }

     for (std::list<int>::iterator l_it = ilist.begin();
          l_it != ilist.end();
          l_it++)
     {
         std::cout << *l_it << " ";
         if (*l_it == 4)
             l_it = ilist.erase(l_it);
     }
     std::cout << std::endl;

     return 0;
  }
  -- EOF --

  Here's the output:

  $ ./test
  1 2 3 4 6 7 8 9

  Note that it skipped over '5'. The reason is because the iterator ends
  up being incremented _twice_ (the erase() moves the iterator one
  forward of the previous position). So the obvious solution might be to
  decrement the iterator immediately after erase(), right? Wrong. If you
  erased the last element in the list, your iterator will be ==
  list.end(), which is an iterator you should NEVER use ++ or -- on.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ebba710786 | Steven Noonan | 2009-10-15 11:03:51 -0700

MSVC: do not use edit-and-continue for Visual C++ builds
It breaks on compiling debug.cc, because __LINE__ is variable

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
76a28bca88 | Steven Noonan | 2009-10-15 10:46:17 -0700

platform.h: add support for Intel's C++ compiler on Windows
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0ab1ec01b2 | Steven Noonan | 2009-10-15 10:45:36 -0700

it_use2.cc: remove bad 'const' qualifier on variable declaration
This broke Visual C++ builds.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2928233ac4 | Steven Noonan | 2009-10-15 10:42:49 -0700

abl-show.cc: fix constant assertion
It's supposed to bomb there, not succeed.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1a2749448d | Steven Noonan | 2009-10-15 09:34:14 -0700

MSVC: move contrib projects to contrib, fix some compile errors
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5a1a72cee6 | Steven Noonan | 2009-10-15 09:34:14 -0700

art-data.pl: add tiledef-player.h include to fix undeclared identifiers
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
23c5e4f002 | Steven Noonan | 2009-10-15 09:34:13 -0700

MSVC: fix build for updated PCRE
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
37f9cd1dd4 | Steven Noonan | 2009-10-15 09:34:12 -0700

libgui.cc: #ifdef out on non-USE_TILE builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2335a4c24b | Steven Noonan | 2009-10-15 09:34:12 -0700

AppHdr.h: don't redefine REGEX_PCRE if it's already there
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4b1c1bc74a | David Lawrence Ramsey | 2009-10-15 11:22:12 -0500

Swap kobolds' aptitudes for bows and crossbows, as it (a) differentiates them 
from halflings a bit more, (b) makes kobolds the one non-dwarf race that is 
better with (hand) crossbows than bows, and (c) seems fitting for a race that's 
supposed to have more strength than agility.

--------------------------------------------------------------------------------
85cb24e611 | Robert Vollmert | 2009-10-15 18:06:07 +0200

Rewrite part of the exclusion code.
* Exclusion radius 0 no longer encodes "no exclusion".
* toggle_exclusion split into set_exclusion and del_exclusion: It was
  never used as a toggle.
* Exclusion updates for changed cells unified in
  void update_exclusion_los(std::vector coord_def changed). Now doesn't
  leave invalidly non-uptodate exclusions laying around.

Still need to find out why off-level exclusions aren't updated after
restore.

--------------------------------------------------------------------------------
42edbf7d41 | Robert Vollmert | 2009-10-15 18:06:07 +0200

Fix questionable implementation of travel_exclude::radius_sq.

--------------------------------------------------------------------------------
b9b320d812 | Eino Keskitalo | 2009-10-15 19:04:35 +0300

Simplify. (dploog)
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
34c30b42da | Steven Noonan | 2009-10-15 08:08:59 -0700

contribs: added SDL, SDL_image, Freetype, libpng
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
39818bd980 | Steven Noonan | 2009-10-15 08:08:59 -0700

Xcode: build fixes for tiles on Mac
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
49f9c4bd46 | David Lawrence Ramsey | 2009-10-15 09:20:32 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
38f9191609 | David Lawrence Ramsey | 2009-10-15 09:18:28 -0500

Since Haunt is partially a Summoning spell again, put it back in the book of 
Summonings.

--------------------------------------------------------------------------------
eaac2ae863 | David Lawrence Ramsey | 2009-10-15 09:15:01 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ee5f2c7a44 | Eino Keskitalo | 2009-10-15 17:14:26 +0300

Some sewer tweaks.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
39eb1bb024 | Robert Vollmert | 2009-10-15 15:06:01 +0200

More sanity checks in find_ray.

--------------------------------------------------------------------------------
0291d82e00 | Robert Vollmert | 2009-10-15 14:50:59 +0200

Remove outdated comment.

--------------------------------------------------------------------------------
058c0c7d7a | Eino Keskitalo | 2009-10-15 15:33:39 +0300

Reduce the threat in Elf arrival vaults as per FR#2854879. They were too 
powerful, blocking off the branch instead of warning about the threat. Might 
still be, so playtesting and feedback is welcome.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
b02539ff4a | Robert Vollmert | 2009-10-15 13:48:03 +0200

Simplify ray handling in directn.cc.
Existence of a valid ray is now tracked with a separate boolean
have_beam. fallback_ray has been removed almost completely. The
change appears fine in console crawl; tiles untested at the
moment.

find_ray now correctly returns false for rays with
source == target.

Also rename CMD_TARGET_HIDE_BEAM to CMD_TARGET_TOGGLE_BEAM.

--------------------------------------------------------------------------------
727a5f87e3 | Robert Vollmert | 2009-10-15 13:48:03 +0200

Remove redundant conditional.

--------------------------------------------------------------------------------
8a1c8f0ebf | Eino Keskitalo | 2009-10-15 14:45:50 +0300

Make the HP of all uniques fixed.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ebf5a24863 | Robert Vollmert | 2009-10-15 11:36:21 +0200

Remove fallback calculation from find_ray.
There is now a separate fallback_ray() that needs to be called
explicitly.  I've manually converted uses of find_ray with
allow_fallback == true.

find_ray with allow_fallback set always returned true, yet there
were a number of places that used the return value, in particular
in directn.cc. I'll check these later.

--------------------------------------------------------------------------------
26cadc0296 | Adam Borowski | 2009-10-15 10:51:51 +0200

A mutagenic fog vault.

--------------------------------------------------------------------------------
1d62e4f9a7 | Robert Vollmert | 2009-10-15 10:46:34 +0200

Log find_ray fallback in debug mode.

--------------------------------------------------------------------------------
5e48c1e8b5 | Robert Vollmert | 2009-10-15 10:46:34 +0200

Further find_ray simplification.
Ray length doesn't actually need to be computed; confirmed by the
assert introduced in the previous commit not triggering.

--------------------------------------------------------------------------------
77deedc363 | Robert Vollmert | 2009-10-15 10:46:34 +0200

Assert invariant in find_ray.

--------------------------------------------------------------------------------
4eac726aa1 | Adam Borowski | 2009-10-15 09:29:33 +0200

Nerf Haunt back to Necro/Sum :(  Lower it to level 6.

--------------------------------------------------------------------------------
9d51433ef6 | Steven Noonan | 2009-10-14 21:33:59 -0700

contribs: moved to contribs dir, added as submodules
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
59134ed3b2 | David Ploog | 2009-10-15 04:49:45 +0200

Added global preludes to hells.des.
This should make it easier to fill in the floor and wall tiles.
Apart from the floor for Coc:7 ("floor_ice"), these are still missing.

--------------------------------------------------------------------------------
f907dae0db | Charles Otto | 2009-10-14 21:51:06 -0400

Give Feawn's rain ability a chance of making rainclouds.

--------------------------------------------------------------------------------
150ccf9c56 | Adam Borowski | 2009-10-15 00:57:55 +0200

Make forest vaults use grassy FTILE.

--------------------------------------------------------------------------------
a016a2a956 | Jude Brown | 2009-10-15 01:23:07 +0300

you.uniques() should not be user-accessible, as sorear pointed out.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
fdf55b8b7d | Eino Keskitalo | 2009-10-15 00:59:49 +0300

Rename giant brown frog to giant toad (Eronarn). Tiles build not tested.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
47f5a9a845 | Matthew Cline | 2009-10-14 14:32:18 -0700

Fix it returning "No" if any of the parts of gcc's version was less than the 
target version (e.g., "4.3.0 >= 4.2.5" was returning "No" because 0 < 5).

--------------------------------------------------------------------------------
d54d56fd8a | Adam Borowski | 2009-10-14 22:35:34 +0200

Napalm is no thermite, it doesn't burn underwater.

--------------------------------------------------------------------------------
c4a44a733c | Adam Borowski | 2009-10-14 22:12:26 +0200

A woody altar to Feawn.

--------------------------------------------------------------------------------
ed0feb50dc | David Lawrence Ramsey | 2009-10-14 14:13:48 -0500

Fix EOLs in hells.des.

--------------------------------------------------------------------------------
786359c8d4 | David Ploog | 2009-10-14 20:18:47 +0200

New hell end maps (Neil Middleton).
Also applied the cosmetic changes (colours and descriptions for walls,
colours for floors) to the already existing branch end maps. Did not
apply those to the whole branches because it might be best to have the
branch ends stand out visually.
Someone should probably have a look at Coc:7, Geh:7, Tar:7 and Dis:7
in tiles.

--------------------------------------------------------------------------------
820b968f44 | David Ploog | 2009-10-14 20:13:49 +0200

Remove testing WEIGHT from new Crypt:5 map.

--------------------------------------------------------------------------------
0b7626706e | David Ploog | 2009-10-14 18:56:47 +0200

Update documentation now that Z is deprecated.

--------------------------------------------------------------------------------
1d80b711e7 | Robert Vollmert | 2009-10-14 17:34:06 +0200

Fix beams not being show when targetting.
This was because directn.cc silently assumes find_ray returns
true when source == target...

--------------------------------------------------------------------------------
70c5ac5066 | David Lawrence Ramsey | 2009-10-14 09:32:47 -0500

Add formatting fix.

--------------------------------------------------------------------------------
564ba44683 | David Lawrence Ramsey | 2009-10-14 09:28:25 -0500

Allow krakens to actually be placed, at the same rarity as sharks.

--------------------------------------------------------------------------------
7076929590 | David Lawrence Ramsey | 2009-10-14 08:50:55 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c4e7e2eae3 | Robert Vollmert | 2009-10-14 15:06:35 +0200

Replace quadrants by signs.

--------------------------------------------------------------------------------
2f6262a7da | Robert Vollmert | 2009-10-14 15:06:35 +0200

Fix int cast warning.

--------------------------------------------------------------------------------
b4a349bc6f | Robert Vollmert | 2009-10-14 15:06:35 +0200

Clean up.
Made some functions "static" and improved quadrant flipping.

--------------------------------------------------------------------------------
5be236ddc6 | Robert Vollmert | 2009-10-14 15:06:35 +0200

Split find_ray into positive quadrant part.
This is a working but temporary state, eventually to be integrated
with los_params or something derived.

--------------------------------------------------------------------------------
db50ccc39e | Robert Vollmert | 2009-10-14 15:04:05 +0200

Fix bug with find_ray always falling back.
This was caused by an incorrectly inverted test.

Also update the find_ray binding so the findray test would have
found the bug.

--------------------------------------------------------------------------------
8583568428 | Adam Borowski | 2009-10-14 14:37:46 +0200

... and vim-unhighlight the Orb as well.

--------------------------------------------------------------------------------
4d67f67925 | Adam Borowski | 2009-10-14 14:33:49 +0200

Forest entry vault: provide a pillar to dance around.

--------------------------------------------------------------------------------
3dc52ea4df | Jude Brown | 2009-10-14 14:20:54 +0200

Allow access to you.unique_creates in Lua, via you.uniques("Michael"), etc.

--------------------------------------------------------------------------------
8a134b6ef9 | Adam Borowski | 2009-10-14 14:16:55 +0200

Remove deprecated map glyphs: S, H, Z.

--------------------------------------------------------------------------------
fb3daeef1a | Adam Borowski | 2009-10-14 13:45:54 +0200

Forther update vim stuff (unhighlight R and P) (Zaba).

--------------------------------------------------------------------------------
32cd0e7472 | Adam Borowski | 2009-10-14 13:36:48 +0200

Update vim highlights (Zaba).

--------------------------------------------------------------------------------
994128334f | Adam Borowski | 2009-10-14 13:15:25 +0200

Allow fireballs to melt wax as well.

--------------------------------------------------------------------------------
96f8115e99 | Steven Noonan | 2009-10-14 04:15:21 -0700

makefile: fix warning flag order and contents
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ed19f0ca7d | Adam Borowski | 2009-10-14 13:00:39 +0200

Let fireballs (but not fireball explosions) ignite trees as well.

--------------------------------------------------------------------------------
eb61c8b8f8 | Steven Noonan | 2009-10-14 04:07:31 -0700

makefile: detect if GCC is >= 4.3.0 before adding -Wno-array-bounds
GCC versions less than 4.3.0 had a compiler error because
the -Wno-array-bounds flag wasn't valid.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
97ac9424c4 | Robert Vollmert | 2009-10-14 12:03:30 +0200

Correct findray test.
Now only targets cells that are not blocked by transparent walls
etc. find_ray can't currently check for real visibility.

--------------------------------------------------------------------------------
832acfd181 | Robert Vollmert | 2009-10-14 12:02:46 +0200

Some find_ray cleanup.

--------------------------------------------------------------------------------
0c40d9f567 | Adam Borowski | 2009-10-14 11:34:12 +0200

A different level 3 long blades hit message vs ogres.

--------------------------------------------------------------------------------
81cda29403 | Jude Brown | 2009-10-14 11:27:30 +0200

List available colours in level_design.txt, including "elemental".

--------------------------------------------------------------------------------
fe21b85ab4 | Steven Noonan | 2009-10-14 02:29:00 -0700

tilesdl.cc: fix loader for app icon to allow absolute paths
If someone uses DATA_DIR_PATH, we don't want the game to break.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
dd0b061def | Steven Noonan | 2009-10-14 02:19:30 -0700

tiles: move 'transmigration.png' to 'transmutation.png'
This fixes a tiles build compilation error.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f44e72db13 | Steven Noonan | 2009-10-14 02:10:27 -0700

makefiles: 'clean'/'distclean' now do RM on all intermediates at once
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
36bef24e69 | Matthew Cline | 2009-10-14 01:59:10 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
a4f9a079be | Matthew Cline | 2009-10-14 01:53:45 -0700

Add messages about gaining and loosing non-dangerous amounts of magical 
contamination (you.magic_contamination <= 5), since we now display a grey 
"Glow" status line for such non-dangerous amounts.

--------------------------------------------------------------------------------
730ac0d9ce | Steven Noonan | 2009-10-14 01:51:42 -0700

makefile: stomp stupid "ignoring return value of 'int foo()', declared with 
attribute warn_unused_result" warnings
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ba64f5cdc8 | Steven Noonan | 2009-10-14 01:39:40 -0700

makefile: disable stupid "array subscript is above array bounds" errors
They're pretty much never accurate, and they're hard to avoid because
of how they're raised.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0ea49abc9d | Steven Noonan | 2009-10-14 01:24:29 -0700

makefile: add USE_PCRE option to force usage of PCRE for regex
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
42f60b21d0 | Charles Otto | 2009-10-14 01:10:08 -0400

Prevent (glowing) shapeshifters from changing shape while taking the stairs, 
this takes care of bug [2864706].

--------------------------------------------------------------------------------
27fdc593f2 | Steven Noonan | 2009-10-13 21:57:17 -0700

view.cc: fix "'uint32_t' was not declared in this scope" error
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cafb25aa34 | Matthew Cline | 2009-10-13 20:42:13 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
48b3a226df | Matthew Cline | 2009-10-13 20:41:10 -0700

Add string name for trees feature, so it can be reference by scripts and wizard 
commands.

--------------------------------------------------------------------------------
acd4638620 | David Lawrence Ramsey | 2009-10-13 21:36:32 -0500

Since miasma is no longer associated with negative energy, remove death drakes' 
resistance to it.

--------------------------------------------------------------------------------
d3a0f25227 | David Lawrence Ramsey | 2009-10-13 21:19:21 -0500

Add wording fixes.

--------------------------------------------------------------------------------
572caa8206 | Matthew Cline | 2009-10-13 18:26:17 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
94177b946e | David Lawrence Ramsey | 2009-10-13 20:17:43 -0500

Simplify.

--------------------------------------------------------------------------------
b693006ae5 | David Lawrence Ramsey | 2009-10-13 20:15:40 -0500

If Xom is making you blink, don't allow it to be a controlled blink.

--------------------------------------------------------------------------------
91527afd3e | Matthew Cline | 2009-10-13 18:12:47 -0700

New option explore_delay, which lets you make the delay between auto-explore 
moves be different than the delay between the moves of other types of travel.  
By default (explore_delay == -1) the auto-explore delay is the same as 
travel_delay, preserving the old behaviour.

--------------------------------------------------------------------------------
6bfc75cc70 | David Lawrence Ramsey | 2009-10-13 20:07:48 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4b6fda9b56 | David Lawrence Ramsey | 2009-10-13 19:55:21 -0500

Xom teleportation fixes: Consolidate checks for artefacts preventing 
teleportation, and don't make the player cast Blink if such an artefact will 
stop it.

--------------------------------------------------------------------------------
6904f9003a | David Lawrence Ramsey | 2009-10-13 19:54:20 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
325031f160 | David Lawrence Ramsey | 2009-10-13 19:22:22 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
5db24dfec9 | David Lawrence Ramsey | 2009-10-13 19:21:16 -0500

Rename Summon Wraiths to Haunt everywhere, for consistency, and adjust the 
tiles accordingly.

--------------------------------------------------------------------------------
02ddc794a1 | David Lawrence Ramsey | 2009-10-13 19:18:27 -0500

Remove Haunt from Xom's spell list, as it now requires an explicit, and, hence, 
player-controllable, target.

--------------------------------------------------------------------------------
2aa94a597f | David Lawrence Ramsey | 2009-10-13 19:18:11 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2d1d75ac39 | Matthew Cline | 2009-10-13 16:42:10 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
978b0e68e7 | Adam Borowski | 2009-10-14 01:27:39 +0200

A foresty entry vault.

--------------------------------------------------------------------------------
58bacfc912 | Matthew Cline | 2009-10-13 16:25:03 -0700

Append currently processed init filename and line number to the end of init 
file parsing error/warning messages.

--------------------------------------------------------------------------------
69fb24caca | Robert Vollmert | 2009-10-14 00:39:28 +0200

Add test for find_ray.
Tests for the existence of unobstructed rays to points within LOS.

--------------------------------------------------------------------------------
2b69971d71 | Robert Vollmert | 2009-10-14 00:39:28 +0200

Lua bindings for find_ray test.
Extra file to keep luadgn.cc from growing even larger.

--------------------------------------------------------------------------------
b6c2789b34 | Adam Borowski | 2009-10-14 00:12:58 +0200

Rename Summon Wraiths to Haunt, make it a targetted spell, necro only, that can 
summon multiple wraiths and ghosts (FR 2865657).

--------------------------------------------------------------------------------
f7670d170e | Eino Keskitalo | 2009-10-13 23:14:19 +0300

Remove a 0.5.2 item from the 0.6 list plus one other tweak.
Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
39c854694b | Eino Keskitalo | 2009-10-13 22:37:19 +0300

Update docs/develop/release.txt with git commands. Reviewing by more 
experienced git users appreciated.
Section 0. should probably be rewritten, as git should make branching and 
merging much smoother.

Signed-off-by: Eino Keskitalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
71d9e45b12 | Robert Vollmert | 2009-10-13 19:16:08 +0200

Fix bug in find_ray that made 'f' targetting pass through walls.

--------------------------------------------------------------------------------
2eaca2a4e5 | David Lawrence Ramsey | 2009-10-13 11:28:59 -0500

Tweak ability descriptions for Feawn, and update them for new kikubaaqudgha.

--------------------------------------------------------------------------------
dda98d9dc6 | David Lawrence Ramsey | 2009-10-13 11:28:05 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
15a1314c90 | David Lawrence Ramsey | 2009-10-13 11:27:24 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f022cb01dd | Robert Vollmert | 2009-10-13 18:05:01 +0200

Move imbalance calculation into separate function.

--------------------------------------------------------------------------------
7c413e4ddf | Robert Vollmert | 2009-10-13 17:48:30 +0200

Rewrite cellray comparison; parametrize precomputations.
There are now defines LOS_MAX_ANGLE and LOS_INTERCEPT_MULT
that determine what rays are cast in the precomputation.
Current values should be the minimal correct ones.

Also check subray relationship both directions at once.

--------------------------------------------------------------------------------
3fb12ce7cd | Robert Vollmert | 2009-10-13 17:48:30 +0200

Improved detection of duplicate cellrays.
Before  Cellrays: 3709 Fullrays: 399 Compressed: 441
After   Cellrays: 3709 Fullrays: 399 Minimal cellrays: 266

Slight speed up in both precomputation and LOS computation:

                    before  after
all los tests       14s     12s
just los_maps test  1.7s    1.5s

--------------------------------------------------------------------------------
24de8cf932 | Robert Vollmert | 2009-10-13 17:48:30 +0200

More explanation and some renames.

--------------------------------------------------------------------------------
2b67ddec74 | Robert Vollmert | 2009-10-13 17:48:30 +0200

Introductory definitions and explanation.

--------------------------------------------------------------------------------
05731d7f52 | Robert Vollmert | 2009-10-13 17:48:30 +0200

Convert LOS code to iterate through quadrants with iterator.

--------------------------------------------------------------------------------
383ade6bdf | Steven Noonan | 2009-10-13 06:42:48 -0700

luadgn.cc: disable dgn_dbg_test_explore in non-WIZARD builds
Whoops, caused a linker error if you built a non-WIZARD build.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bb9f927140 | Steven Noonan | 2009-10-13 06:23:14 -0700

luadgn.cc: add 'dbg_test_explore' Lua binding
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5d27773ad8 | Steven Noonan | 2009-10-13 06:23:14 -0700

unit tests: fix crash when running unit tests under a tiles build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6aeefc9277 | Steven Noonan | 2009-10-13 06:23:14 -0700

makefile: include DEFINES_L in CFLAGS_L
Not sure how this slipped through the cracks...

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
fe3c4d816c | Steven Noonan | 2009-10-13 06:23:14 -0700

acr.cc: suppress '--more--' prompt while running unit tests
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e7353ab11c | Steven Noonan | 2009-10-13 06:23:13 -0700

makefile: move USE_ICC conditional to avoid CFWARN changes
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
fed87eedaa | Steven Noonan | 2009-10-13 06:23:13 -0700

debug.h: add #ifdef for __MSL__ macro
I still don't know what this macro is, but '#if __MSL__' doesn't
make any sense without it defined, so we can ifdef it out.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
475091c673 | Steven Noonan | 2009-10-13 06:23:13 -0700

platform detection: clean up abuse of '_MSC_VER' macro
Use TARGET_COMPILER_VC instead, unless you need to find
the Visual C++ version information.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
18bf8b6c7b | Steven Noonan | 2009-10-13 06:23:13 -0700

initfile.cc: use new platform identification macros in find_executable_path()
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
997a4469a2 | Steven Noonan | 2009-10-13 06:23:13 -0700

fix 'DEBUG' macro usage consistency
Sometimes we were doing #if DEBUG and others we were doing #ifdef DEBUG.

If we mix both, we have problems: If the DEBUG macro isn't defined, the
statement '#if DEBUG' doesn't really make sense logically, because 'DEBUG'
has no value. And if we '#define DEBUG 0', then the '#ifdef DEBUG's
become true statements.

The easiest fix is to swap out the #ifs with #ifdefs.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3f6c3a3969 | Steven Noonan | 2009-10-13 06:23:13 -0700

sqlite3.c: fix SQLITE_HAS_CODEC macro usage
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e7c3566af0 | Steven Noonan | 2009-10-13 06:23:13 -0700

sqlite/Makefile: define missing macros and fix THREADSAFE macro
One macro was incorrectly referred to (THREADSAFE -> SQLITE_THREASAFE),
and two others were not defined but their value was checked by
preprocessor statements.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
09777d71b5 | Steven Noonan | 2009-10-13 06:23:13 -0700

sqlite3.c: stomp trailing whitespace
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
61bb928288 | Matthew Cline | 2009-10-13 05:50:42 -0700

In arena mode, scale zapping and explosion animation delays to match change in 
arena_delay from the default.

--------------------------------------------------------------------------------
acead6e912 | Steven Noonan | 2009-10-13 02:48:48 -0700

makefile: disable some annoying ICC warnings
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0172282f4d | Steven Noonan | 2009-10-13 02:46:13 -0700

makefile: add ICC support through use of USE_ICC=y flag
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3ecee91a57 | Matthew Cline | 2009-10-13 02:09:47 -0700

Merge branch 'master' of 
ssh://zelgadis@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
a17dd5628f | Matthew Cline | 2009-10-13 02:07:43 -0700

Bug 2877419: do error checking on autoinscribe initfile lines, to     prevent 
the game from crashing.

--------------------------------------------------------------------------------
7cb4b81939 | Adam Borowski | 2009-10-13 09:57:09 +0200

Merge branch 'trees'. There's still the issue of glyph choice, and cutting them 
down with an axe is not coded yet.

--------------------------------------------------------------------------------
ffa4e38d65 | Adam Borowski | 2009-10-13 09:47:21 +0200

Keep one of the testing vaults.

--------------------------------------------------------------------------------
072864bdfd | Steven Noonan | 2009-10-13 00:38:42 -0700

artefact.cc: eliminate "array subscript is above array bounds" warnings
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b1f1fd413c | Steven Noonan | 2009-10-13 00:35:02 -0700

hiscores.cc: fix meaningless type qualifier on return type
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b93e6c68bc | Steven Noonan | 2009-10-13 00:35:02 -0700

invent.{cc,h}: fix meaningless type qualifier on return type
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
fab44a2728 | Steven Noonan | 2009-10-13 00:35:02 -0700

los: provide explicit access specifiers for inherited structs
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b451832031 | David Ploog | 2009-10-13 05:07:10 +0200

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
f30b63fba0 | David Ploog | 2009-10-13 05:05:13 +0200

Remove testing WEIGHT.

--------------------------------------------------------------------------------
5385c32ea2 | David Ploog | 2009-10-13 05:04:13 +0200

Awesome new Dis:8 map (Neil Middleton).

--------------------------------------------------------------------------------
30980976e3 | David Ploog | 2009-10-13 04:39:07 +0200

New Zot vault (Neil Middleton).

--------------------------------------------------------------------------------
9cc9c13505 | David Lawrence Ramsey | 2009-10-12 20:14:49 -0500

Apply n78291's patch in [2877049], with a few tweaks, to expand Jiyva's wrath, 
allow uncancelable transformations as part of it, and adjust his Slimify power.

--------------------------------------------------------------------------------
533796c8ca | David Lawrence Ramsey | 2009-10-12 20:11:00 -0500

Add whitespace fixes.

--------------------------------------------------------------------------------
8d7221b0d0 | David Lawrence Ramsey | 2009-10-12 20:03:38 -0500

Add manual tweaks.

--------------------------------------------------------------------------------
8419ed9fd3 | Matthew Cline | 2009-10-12 16:45:06 -0700

Fixed Lua compile of super_loot item spec in ziggurat_create_loot_at().

--------------------------------------------------------------------------------
839d2108df | Matthew Cline | 2009-10-12 16:26:20 -0700

* Changed libstdc++ stack depth for the get_savedir_filename() leak   
suppression to match the latest C++ library.
* Added suppression for occasional escape_path_spaces() save leak.

--------------------------------------------------------------------------------
83cf913599 | Adam Borowski | 2009-10-12 23:31:14 +0200

A vault: yaktaur_hedge, test for monsters shooting through bushes.

--------------------------------------------------------------------------------
9695f808e2 | Adam Borowski | 2009-10-12 23:28:24 +0200

Fix an use of uninitialized menv[].

--------------------------------------------------------------------------------
c9af2ab4e8 | Adam Borowski | 2009-10-12 23:09:22 +0200

Merge branch 'master' into trees

--------------------------------------------------------------------------------
64b7947034 | Adam Borowski | 2009-10-12 23:08:18 +0200

Yank Shoals vaults to a separate file.

--------------------------------------------------------------------------------
f4ad8b8f8d | Steven Noonan | 2009-10-12 14:00:58 -0700

8 color terminal: check whether getenv() returns null before string compare
Oops.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
487e80ffa4 | Adam Borowski | 2009-10-12 22:53:57 +0200

Let missiles go past bushes.

--------------------------------------------------------------------------------
fa9a5721b1 | Steven Noonan | 2009-10-12 13:48:08 -0700

8 color terminals: switch to conditional usage based on terminal type
Apple's Terminal.app sets a TERM_PROGRAM environment variable to
"Apple_Terminal". This gives us a good way to detect at runtime
whether or not the terminal supports more than 8 colors.

The main reason for checking at runtime is that Mac users are
able to run other terminal apps (xterm, rxvt, etc), and should
expect to see more than 8 colors in terminals that support it.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
8abd03d448 | Steven Noonan | 2009-10-12 13:46:07 -0700

makefile: fix dependencies for levcomp.lex.cc
It was occasionally possible that levcomp.lex.cc was compiled
before levcomp.tab.cc was generated, causing this build error:

   YACC levcomp.tab.c
   LEX levcomp.lex.cc
   CXX util/levcomp.lex.o
levcomp.lpp:13:25: error: levcomp.tab.h: No such file or directory
   CXX util/levcomp.tab.o
levcomp.lpp: In function 'void clean()':

Adding levcomp.tab.cc as a dependency of levcomp.lex.cc fixes
the issue.

Reported-by: Robert Vollmert <rvollmert@gmx.net>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2d8bce8bd8 | Adam Borowski | 2009-10-12 22:14:25 +0200

Make Feawn like bushes (walking over them, penance for killing, ...).

--------------------------------------------------------------------------------
759d9c1e18 | Adam Borowski | 2009-10-12 22:01:42 +0200

Bushes -- tree-like monsters than can be destroyed with any means of damage, 
and are much easier to set on fire than trees.

--------------------------------------------------------------------------------
9025fd35d8 | David Ploog | 2009-10-12 21:24:50 +0200

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
b11705fcad | David Ploog | 2009-10-12 21:23:27 +0200

New vault by Jude, featuring a Lugonu altar.

--------------------------------------------------------------------------------
2495f7b7d5 | Adam Borowski | 2009-10-12 19:47:19 +0200

Don't say that plants are "very slow", say they can't move instead.

--------------------------------------------------------------------------------
87cb077372 | David Ploog | 2009-10-12 17:35:26 +0200

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
e0e9d62f91 | Steven Noonan | 2009-10-12 08:11:12 -0700

MSVC: add minimal rebuild support
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e902c1dbf8 | Steven Noonan | 2009-10-12 08:03:13 -0700

MSVC: add tiles build support
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
94c8330d25 | Steven Noonan | 2009-10-12 06:30:05 -0700

msvc: fix projects to compile Crawl properly
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
73caeb4198 | Steven Noonan | 2009-10-12 06:29:52 -0700

project-wide: fix msvc compile breakage
MSVC is like a chimp with Down's syndrome.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
48a7ef0bd9 | David Lawrence Ramsey | 2009-10-12 08:11:24 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
5281b389c9 | David Lawrence Ramsey | 2009-10-12 08:10:55 -0500

Simplify.

--------------------------------------------------------------------------------
d688e3a8a3 | Matthew Cline | 2009-10-12 06:02:51 -0700

* Giant spores exploding in the arena should never be attributed to   the 
player.
* Assert if an arena kill is attributed to the player.

--------------------------------------------------------------------------------
37a1959682 | Matthew Cline | 2009-10-12 06:00:46 -0700

* Add -DDEBUG to DEFINES when DEBUG is set.
* Add variable EXTERNAL_FLAGS, for setting compiler flags from the
  make command line.  Trying to do this with EXTRA_FLAGS clobbers
  the makefile's changes to EXTRA_FLAGS, like adding "-ggdb".

--------------------------------------------------------------------------------
058810edf9 | David Lawrence Ramsey | 2009-10-12 07:48:55 -0500

Fix compilation.

--------------------------------------------------------------------------------
9851b74162 | David Lawrence Ramsey | 2009-10-12 07:47:56 -0500

Put one butchery-related sanity check back in, just in case.

--------------------------------------------------------------------------------
c51c56772b | David Lawrence Ramsey | 2009-10-12 07:41:40 -0500

Comment fixes.

--------------------------------------------------------------------------------
aa6a5a0787 | Steven Noonan | 2009-10-12 05:10:01 -0700

pcre: implement QUIET_CC, etc. for more pretty build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4e4afe0ebe | Steven Noonan | 2009-10-12 05:06:40 -0700

pcre: use global CFLAGS when compiling
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
9afcc4c188 | Steven Noonan | 2009-10-12 05:06:10 -0700

makefile: move WIN32TILES and WIN32CONSOLE macros to local list
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
482c383680 | Steven Noonan | 2009-10-12 04:58:51 -0700

makefile: disable architecture-specific optimizations
I intended to set up some good defaults, and unfortunately added
ones that would break on non-Intel machines. Whoops.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
9c13afce9a | Steven Noonan | 2009-10-12 04:46:21 -0700

makefiles: set up global vs. local cflags, optimize sqlite build
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2dcd1edb5e | Steven Noonan | 2009-10-12 04:45:32 -0700

xom.cc: fix 'format string not string literal' warning
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
724409aaf9 | Steven Noonan | 2009-10-12 04:44:11 -0700

makefile: kill annoying 'Wuninitialized not supported without -O' warning
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
da18f9c379 | Adam Borowski | 2009-10-12 13:08:43 +0200

Description and a quote for trees.

--------------------------------------------------------------------------------
7c2d63074d | Steven Noonan | 2009-10-12 03:57:37 -0700

makefile: don't rebuild the makefile.dep with clean or distclean targets
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c1182b90c5 | Steven Noonan | 2009-10-12 03:57:37 -0700

makefile: fix build on Mac OS X when APPLE_GCC=n
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4b1ee0b916 | Steven Noonan | 2009-10-12 03:57:37 -0700

makefiles: add APPLE_GCC option, to enable or disable use of Apple's GCC
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e1efdcdfac | Steven Noonan | 2009-10-12 03:57:37 -0700

Xcode: add 'settings' directory to Resources
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3d3874afd3 | Steven Noonan | 2009-10-12 03:57:37 -0700

makefile: fix distclean target
RLTILES has to be defined for it to work.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1b8073bced | Steven Noonan | 2009-10-12 03:57:37 -0700

Xcode: set minimum OS versions by architecture
i386 and ppc are able to run on 10.4 and above. x86_64 is able
to run on 10.6 and above.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bb38340278 | Adam Borowski | 2009-10-12 12:30:59 +0200

Merge branch 'master' into trees

--------------------------------------------------------------------------------
ea87539549 | Robert Vollmert | 2009-10-12 12:00:39 +0200

Fix complete LOS failure.
Rays weren't actually being registered; no idea how this got through.

--------------------------------------------------------------------------------
c4a5a667f2 | Steven Noonan | 2009-10-12 02:45:51 -0700

makefile: add example CFOPTIMIZE flags for Intel's compiler
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f1ccc39d1d | Adam Borowski | 2009-10-12 11:41:40 +0200

Fix non-debug compilation, broken by recent Xom changes.

--------------------------------------------------------------------------------
240a845752 | Steven Noonan | 2009-10-12 02:41:12 -0700

fix compile errors on Intel C++ Compiler v10.1
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
abb84805f0 | Robert Vollmert | 2009-10-12 11:32:05 +0200

Fix debug compile.

--------------------------------------------------------------------------------
0ac5e3dbc5 | Steven Noonan | 2009-10-12 02:11:36 -0700

RHIDE project files removed
They haven't been touched since 2006. Probably not being used anymore...

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
bf20d3750b | David Ploog | 2009-10-12 06:57:28 +0200

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
87c2827f29 | Charles Otto | 2009-10-12 00:50:46 -0400

Fix infinite recursion when Sif attempts to gift high level fixed-level randart 
spellbooks (bug 2876139)

--------------------------------------------------------------------------------
e9a682d0b4 | David Lawrence Ramsey | 2009-10-11 23:25:52 -0500

Since corpse sacrifices for Trog no longer require butchery, let berserkers 
start with maces/flails instead of axes if they have higher skills in the 
former.

--------------------------------------------------------------------------------
4c053cf820 | David Ploog | 2009-10-12 06:09:04 +0200

Changelog additions.

--------------------------------------------------------------------------------
6d1d871771 | David Lawrence Ramsey | 2009-10-11 18:14:12 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
fa1f442ef7 | David Lawrence Ramsey | 2009-10-11 18:11:30 -0500

Apply jpeg's patches in [2876380] (automate Xom testing) and [2876688] (new Xom 
effects), tweaked to fit into current trunk.

--------------------------------------------------------------------------------
6c8b8a556e | David Lawrence Ramsey | 2009-10-11 17:35:14 -0500

Revert the prayer duration change for gods who like fresh corpses/butchery, 
since it keeps the status quo.

--------------------------------------------------------------------------------
5d07ac8c99 | David Lawrence Ramsey | 2009-10-11 16:22:18 -0500

Add prayer duration fixes for gods who accept fresh corpses or butchery.

--------------------------------------------------------------------------------
7d6de33069 | David Lawrence Ramsey | 2009-10-11 16:04:45 -0500

Make gods that take corpse offerings do so without the butchery step, i.e., 
allow merely praying over said corpses.  Now, the only gods that pay attention 
to butchery are Kikubaaqudgha and Elyvilon.  Also, add several miscellaneous 
fixes.

--------------------------------------------------------------------------------
f5441fc9dd | Adam Borowski | 2009-10-11 22:01:05 +0200

Try to autodetect whether Unicode support is available. Since the user needs to 
enable it in his .rc, I see no reason to not compile it in when possible. I 
hope this won't break Mac stuff...

--------------------------------------------------------------------------------
476c156d47 | Robert Vollmert | 2009-10-11 21:32:23 +0200

Remove makefile.unix again.

--------------------------------------------------------------------------------
6375a952f7 | Robert Vollmert | 2009-10-11 21:30:30 +0200

Further cleanup of los.cc.
Don't store ray lengths in a second array, instead store them in
the rays. Also store their starting index, which makes the
ray_coords indexing a little cleaner.

--------------------------------------------------------------------------------
38d50b4e0d | Robert Vollmert | 2009-10-11 21:30:30 +0200

Make advance direction and quadrants explicit as enums.

--------------------------------------------------------------------------------
4783b4ed0e | Robert Vollmert | 2009-10-11 21:30:30 +0200

More ray_def simplification.

--------------------------------------------------------------------------------
bc91b96ff7 | David Lawrence Ramsey | 2009-10-11 13:58:41 -0500

Properly indicate the source of Kiku's torment.

--------------------------------------------------------------------------------
9382227d37 | Steven Noonan | 2009-10-11 10:46:07 -0700

Xcode: enable support for 32/64-bit universal builds
SDL 1.2.14 is coming out very soon, and there's a fully functional
preview release up on libsdl.org. Might as well enable 64-bit now.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f66c94be98 | Adam Borowski | 2009-10-11 19:35:18 +0200

Icon for the "guardian spirit" amulet type.

--------------------------------------------------------------------------------
f2b5ebc9cb | Robert Vollmert | 2009-10-11 18:05:01 +0200

Some more ray_def cleanup.

--------------------------------------------------------------------------------
76155fcf6a | Robert Vollmert | 2009-10-11 18:05:00 +0200

Simplify quadrant mirroring in ray_def::raw_advance.

--------------------------------------------------------------------------------
4b84fa4805 | Robert Vollmert | 2009-10-11 18:05:00 +0200

Use floor() instead of static_cast<int> for rounding.
This way the code is less likely to fall over with negative
coordinates.

--------------------------------------------------------------------------------
0f2a6c57d4 | Robert Vollmert | 2009-10-11 18:05:00 +0200

Move _find_next_intercept into ray_def.

--------------------------------------------------------------------------------
6d7f5cbc0e | Robert Vollmert | 2009-10-11 18:05:00 +0200

Comments and formatting.

--------------------------------------------------------------------------------
9850303d66 | Adam Borowski | 2009-10-11 17:25:41 +0200

Mark amulet of rage as useless for mummies and ghouls.

--------------------------------------------------------------------------------
d2256098d6 | David Lawrence Ramsey | 2009-10-11 08:35:43 -0500

Add minor cosmetic fix.

--------------------------------------------------------------------------------
0b0dc470a4 | Steven Noonan | 2009-10-11 03:14:27 -0700

makefile: split EXTRA_FLAGS into two variables, with macros in DEFINES
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
81bf1fb4e5 | Steven Noonan | 2009-10-11 03:03:27 -0700

makefile: use the Mac OS X compatibility level on TILES as on non-TILES builds
Whoops, I put the whole compatibility level thing into the TILES
conditional. I meant for it to affect all Mac builds.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6cbf855310 | Steven Noonan | 2009-10-11 02:59:35 -0700

makefiles: on Mac OS X, use the same frameworks the Xcode project uses
Before, I had it use the MacPorts libs, but this isn't the best way to do
it, even with a development build. Ideally, for debugging purposes, we
really want to be using the same libraries we'd use for a release build.

This also adds some command-line options to set the type of build:
  ARCHS: This can be set to something like "-arch i386 -arch ppc" for
         a 32-bit universal build.
  SDK_VER: The Mac OS X SDK version (i.e. 10.4, 10.5, etc)
  GCC_VER: The GCC version to compile with. For 10.4, you must use
         version 4.0, but for 10.5 and above, you may use 4.2.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c3d83c65b9 | Steven Noonan | 2009-10-11 02:59:35 -0700

makefiles: inherit CC and CXX variables from top-level Makefile
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f4b8d77bc8 | Steven Noonan | 2009-10-11 02:59:35 -0700

Xcode: fix SQLite flags, reorganize file groups
It was a mess. Looks better now.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4c0a92c6e5 | Robert Vollmert | 2009-10-11 10:54:52 +0200

Formatting.

--------------------------------------------------------------------------------
10489c8d50 | Jude Brown | 2009-10-11 09:34:54 +0200

Allow disc of storms to place rain clouds.
Power is dependant on evocations skill; chance of leaving a cloud per-grid is 1
in 60-evocations skill.

Signed-off-by: Robert Vollmert <rvollmert@gmx.net>

--------------------------------------------------------------------------------
bdb4df70e8 | Robert Vollmert | 2009-10-11 09:24:25 +0200

Convert LOS algorithm to use coord_def instead of separate x,y.

--------------------------------------------------------------------------------
58f42dec26 | Steven Noonan | 2009-10-10 23:49:54 -0700

kill some DEBUG/WIZARD compiler warnings about unused functions
cloud.cc:45: warning: "bool _killer_whose_match(kill_category, killer_type)" 
defined but not used
mutation.cc:1923: warning: "bool _is_random(mutation_type)" defined but not used
ouch.cc:891: warning: "void _wizard_restore_life()" defined but not used

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5fc330e598 | Steven Noonan | 2009-10-10 23:09:30 -0700

player.cc: fix call to body_weight()
Missing a parameter list.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5c33abb31f | David Ploog | 2009-10-11 07:49:07 +0200

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
57ccb0eb3b | David Ploog | 2009-10-11 07:39:10 +0200

New carrying capacity formula; Strength worth more.
New formula: CC = 200*Str + 2*body_weight
Old formula: CC = 100*Str + 3500
In both cases, you get another 1000 for being airborne.
body_weight is 300 (Sp), 425 (Ha, Ko), 1300 (Ce, Na, Og, Tr), 550 (else).

Statue form has a positive effect on CC, lich form has a negative effect.
Formula may need tweaking after some testing.

--------------------------------------------------------------------------------
2f77be9011 | Steven Noonan | 2009-10-10 22:19:46 -0700

Merge branch 'new-makefiles'

--------------------------------------------------------------------------------
66c59ae9c9 | Steven Noonan | 2009-10-10 22:18:48 -0700

project-wide: implement use of platform.h detection macros
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6eb4f8d495 | Steven Noonan | 2009-10-10 22:18:47 -0700

platform.h: created to allow for much better platform detection
platform.h is a tool I made to allow for effortless detection of the
compiler, OS, and architecture that the app is being compiled for.

- To check the operating system, you can check whether these macros are
  defined:

    TARGET_OS_WINDOWS
    TARGET_OS_MACOSX
    TARGET_OS_LINUX
	TARGET_OS_SOLARIS // OpenSolaris, Solaris, etc
    TARGET_OS_FREEBSD
    TARGET_OS_OPENBSD
    TARGET_OS_NETBSD
    TARGET_OS_DOS
    TARGET_OS_NDSFIRMWARE // NDS == Nintendo DS

- To check whether the platform is 32 or 64-bit:

    TARGET_CPU_BITS == 32
    TARGET_CPU_BITS == 64

- To check your platform's endianness (byte ordering), check whether
  these are defined:

    TARGET_LITTLE_ENDIAN // x86, x86_64, Alpha, IA64, ARM
    TARGET_BIG_ENDIAN    // PowerPC, SPARC

- To check for a compiler, you can check whether these macros are
  defined:

    TARGET_COMPILER_MSVC // Visual C++
    TARGET_COMPILER_ICC  // Intel C/C++ compiler
    TARGET_COMPILER_GCC  // GCC
     Note that there are some subsets of GCC that you may want
     to check for (these macros will be defined *in addition*
     to the TARGET_COMPILER_GCC macro:
       TARGET_COMPILER_CYGWIN
       TARGET_COMPILER_MINGW
       TARGET_COMPILER_DJGPP  // DOS port
    TARGET_COMPILER_BORLAND

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a0582692a2 | Steven Noonan | 2009-10-10 22:18:47 -0700

Makefiles: unifying makefile.unix and makefile_tiles.unix, and cleaning up
Lots of major build changes here:

   - No longer have multiple makefiles for Linux, Mac, MinGW, etc.
   - To build a USE_TILE build, simply do 'make <target> TILES=y'.
   - Makefiles now use a much prettier output while building. To see
     verbose messages, add 'V=1' to the command-line for 'make'.
   - Lots of weird dependency bugs corrected in the Makefiles.
   - makefile.unix now works for Mac OS X builds too (both tiles and
     ASCII builds).
   - Added GCC precompiled header support to makefile.unix. In my
     tests, it doesn't add much of a speedup, if any, but it's at
     least convenient to have it implemented. To use it, add 'PCH=y'
     to your 'make' command line.
   - Added fastdep support, and enabled by default on machines with
     fastdep installed. This allows for the Makefile to be sensitive
     to changed header files (recompiling those source files that
     are affected by the changes). If fastdep isn't installed, you
     can still use the the old (and much slower) GCC built-in
     dependency generator, but it's not enabled by default.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
930477f201 | Charles Otto | 2009-10-11 00:22:46 -0400

Fix bug 2876251, monsters taking 2 turns to open a door.

--------------------------------------------------------------------------------
e4f5817638 | Charles Otto | 2009-10-10 23:24:00 -0400

Patch 2873911 by Jude: add rain clouds

--------------------------------------------------------------------------------
5b5271eebe | David Ploog | 2009-10-11 04:50:15 +0200

Update Credits.

--------------------------------------------------------------------------------
c9a5a4dea4 | David Ploog | 2009-10-11 04:41:17 +0200

New Crypt:5 map (Neil Middleton).

--------------------------------------------------------------------------------
3b1deee4b8 | Adam Borowski | 2009-10-11 01:37:41 +0200

Show racial AC on the mutations/innates screen.

--------------------------------------------------------------------------------
544a010585 | Robert Vollmert | 2009-10-10 23:52:04 +0200

Further cleanup by converting to bit_array.

--------------------------------------------------------------------------------
13aacae3ac | Robert Vollmert | 2009-10-10 23:49:25 +0200

Implement bit array class.

--------------------------------------------------------------------------------
370d19ae92 | Robert Vollmert | 2009-10-10 20:50:34 +0200

Cleanup of raycasting code.
Notably, the 3D bit arrays are now recognizable as such.

Also various formatting fixes, and removed some "unsigned"'s that
were cluttering up the code.

--------------------------------------------------------------------------------
712d071190 | evktalo | 2009-10-10 20:32:27 +0300

A new Ice Cave map by Zaba.
Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
6746d9740a | Robert Vollmert | 2009-10-10 19:16:54 +0200

Add more xcode files to .gitignore.

--------------------------------------------------------------------------------
b7afef93c4 | Robert Vollmert | 2009-10-10 19:16:54 +0200

Declare ray_def::footprint const.

--------------------------------------------------------------------------------
ecf93b9763 | evktalo | 2009-10-10 20:11:28 +0300

Revert "A new Ice Cave map by Zaba." (Whitespace mess-up).
This reverts commit 12ec49f4941b83c362269a7a420d0f709c05a6a6.

--------------------------------------------------------------------------------
12ec49f494 | evktalo | 2009-10-10 20:08:18 +0300

A new Ice Cave map by Zaba.
Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
9ebe6ac58f | evktalo | 2009-10-10 17:53:39 +0300

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
5c34915cca | Robert Vollmert | 2009-10-10 16:13:47 +0200

Fix bug in ray_def::footprint.
footprint was trampling on the ray's starting position.

--------------------------------------------------------------------------------
a95cc98402 | evktalo | 2009-10-10 16:40:00 +0300

Up their experience modifier (10->12) too.
Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
539a4531f4 | evktalo | 2009-10-10 16:37:54 +0300

Up the damage of beetles.
Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
34c7994659 | Robert Vollmert | 2009-10-10 15:13:38 +0200

More comments and formatting.

--------------------------------------------------------------------------------
5ca1ca1a6c | Steven Noonan | 2009-10-10 04:42:11 -0700

crash-u.cc: don't compile _crash_signal_handler if USE_UNIX_SIGNALS isn't 
defined
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
e0e65f6ed5 | Steven Noonan | 2009-10-10 04:41:58 -0700

libunix.h: declare itoa and stricmp as extern "C", itoa returns char*
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
6af0b4c01f | Steven Noonan | 2009-10-10 04:41:39 -0700

gitignore: ignore MinGW and Cygwin binary outputs
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f2410b8e5b | Steven Noonan | 2009-10-10 04:41:10 -0700

headers: remove 'AppHdr.h' include from .h files
This breaks the GCC if you're using precompiled headers, and we
don't need this included in these headers anyway. All the .cc
files have AppHdr.h included first anyway.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
687af248e0 | David Lawrence Ramsey | 2009-10-10 06:19:42 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
4340d17a45 | David Lawrence Ramsey | 2009-10-10 06:19:08 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
8a065b2810 | Robert Vollmert | 2009-10-10 12:52:09 +0200

Comment.

--------------------------------------------------------------------------------
8d5ace4a76 | Robert Vollmert | 2009-10-10 12:36:02 +0200

Remove unused return value from _register_ray.

--------------------------------------------------------------------------------
df3c7e3421 | Robert Vollmert | 2009-10-10 12:33:12 +0200

Formatting.

--------------------------------------------------------------------------------
28112f6099 | Robert Vollmert | 2009-10-10 12:26:58 +0200

Move shoot_ray into ray_def.

--------------------------------------------------------------------------------
32f7f9c056 | Robert Vollmert | 2009-10-10 11:34:54 +0200

Revert "Revert xcodeproj to before my changes and add the missing source files 
cleanly."
I had missed Steve's intermediate changes.

This reverts commit bb2f6a8a8fce64986a08f0b31bb1f5316233fd3e.

--------------------------------------------------------------------------------
e8b3d33689 | Robert Vollmert | 2009-10-10 10:23:36 +0200

Remove duplicate cxxabi.h includes.

--------------------------------------------------------------------------------
bb2f6a8a8f | Robert Vollmert | 2009-10-10 10:17:48 +0200

Revert xcodeproj to before my changes and add the missing source files cleanly.
Both tiles and console version compile.

--------------------------------------------------------------------------------
230f3d29e8 | Robert Vollmert | 2009-10-10 10:05:20 +0200

Include "externs.h" instead of <externs.h> in AppHdr.h.
This fixes compiling some source files separately (make crash-u.o now
works while it failed before), but I may well have missed something.

--------------------------------------------------------------------------------
4f90cee0b5 | Robert Vollmert | 2009-10-10 10:05:04 +0200

Improve conditional #includes in crash-u.cc.

--------------------------------------------------------------------------------
ef9c582e01 | Robert Vollmert | 2009-10-10 09:41:23 +0200

Language.

--------------------------------------------------------------------------------
5778c23559 | Jude Brown | 2009-10-10 09:24:14 +0200

Tweak Troves (per BR2874711): Generate from D:14 instead of D:7, tweak duration 
just a bit, and include a note in the description about them being temporary 
portals.

--------------------------------------------------------------------------------
6bc929173c | David Lawrence Ramsey | 2009-10-09 23:32:28 -0500

Update changelog.

--------------------------------------------------------------------------------
e5a5d57f66 | David Lawrence Ramsey | 2009-10-09 23:09:53 -0500

Reorder Zin's dislikes a bit.

--------------------------------------------------------------------------------
ef19432ef6 | David Lawrence Ramsey | 2009-10-09 18:49:25 -0500

Simplify further.

--------------------------------------------------------------------------------
76cf404e58 | Steven Noonan | 2009-10-09 15:45:15 -0700

Xcode: add missing GCC_VERSION_*, MACOSX_DEPLOYMENT_TARGET_*, SDKROOT_* 
variables
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
959b8c9837 | Robert Vollmert | 2009-10-09 22:16:24 +0200

Remove a lot of unneccessary includes.
The console version still compiles on Linux; both console and
tiles version compile in OS X. I haven't been able to test the
DOS and Windows compiles -- please fix or tell me about any
errors that show up.

--------------------------------------------------------------------------------
c22f98cb6f | Robert Vollmert | 2009-10-09 21:54:57 +0200

More xcodeproj modifications, now both targets compile successfully.
Overall, I think all I've done is to add the new source files
(los.cc, losparam.cc, mon-los.cc, ray.cc, sha256.cc) and change
some settings from OS X 10.4 to OS X 10.5 because the stack
trace code requires 10.5.

The ASCII version doesn't launch as a bundle, though the executable
at Resources/crawl appears fine.

The Tiles version launches but hangs.

--------------------------------------------------------------------------------
b65e32d753 | David Ploog | 2009-10-09 21:04:35 +0200

Merge branch 'master' of 
ssh://dploog@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
b003a3c41f | David Ploog | 2009-10-09 21:01:26 +0200

Scrolls and cure mutation can come up in ziggurats.
Added a long, weighted list of useful scrolls to dungeon.lua which may
be of use elsewhere. This list is used for the ziggurat loot, together
with some potions (cure mutation, experience, porridge) and two wands
(hasting and healing, both very rare).

--------------------------------------------------------------------------------
f3cb0b5b9e | David Lawrence Ramsey | 2009-10-09 13:12:16 -0500

Resync the 0.6 changelog with the 0.5 one.

--------------------------------------------------------------------------------
9144e5b4f5 | David Lawrence Ramsey | 2009-10-09 12:30:53 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
4e0fe7bd10 | David Lawrence Ramsey | 2009-10-09 12:30:04 -0500

Simplify.

--------------------------------------------------------------------------------
605e928f27 | Robert Vollmert | 2009-10-09 19:29:58 +0200

Add new source files to xcodeproj.
Still does not compile unfortunately.

--------------------------------------------------------------------------------
805250f6a8 | David Lawrence Ramsey | 2009-10-09 12:24:28 -0500

Tweak the player contamination check for mutating (very) ugly things.

--------------------------------------------------------------------------------
0c6f0c29b2 | David Lawrence Ramsey | 2009-10-09 12:23:58 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
5cbdafd351 | David Lawrence Ramsey | 2009-10-09 12:23:34 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
879aa7579e | Robert Vollmert | 2009-10-09 19:01:39 +0200

Fix tiles compile (missing includes after view.cc split).

--------------------------------------------------------------------------------
71e629d364 | Robert Vollmert | 2009-10-09 19:01:38 +0200

Fix includes.sh: POSIX sed doesn't support alternation...

--------------------------------------------------------------------------------
b3a51db253 | David Lawrence Ramsey | 2009-10-09 11:57:54 -0500

Tweak (very) ugly things' proximity mutation rate again.

--------------------------------------------------------------------------------
123f5ce544 | David Lawrence Ramsey | 2009-10-09 11:53:03 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
a721bcb5bf | David Lawrence Ramsey | 2009-10-09 11:51:48 -0500

Allow (very) ugly things to mutate when near you if you're glowing enough.

--------------------------------------------------------------------------------
704b8970f4 | Robert Vollmert | 2009-10-09 15:59:39 +0200

Further improvements to util/includes.sh.
Currently running
$ checkall | cleanup | removelst
strips a bunch of includes while the result still
compiles (Unix console build).

--------------------------------------------------------------------------------
e604c28541 | Robert Vollmert | 2009-10-09 15:59:39 +0200

Shortcut indirect include of mon-util.h.

--------------------------------------------------------------------------------
784503fe0f | David Lawrence Ramsey | 2009-10-09 08:58:54 -0500

Add formatting fixes.

--------------------------------------------------------------------------------
667a7541a9 | Adam Borowski | 2009-10-09 14:53:02 +0200

testing vault

--------------------------------------------------------------------------------
6fb64ab3ac | Adam Borowski | 2009-10-09 14:46:00 +0200

Trees -- a new wall type, can be seen through (2nd square blocks LOS). 
Available as 't' for vault builders.  Can be ignited using wands of fire, but 
the fire can't be controlled.

--------------------------------------------------------------------------------
41e5d3228c | Steven Noonan | 2009-10-09 04:48:44 -0700

crash-u.cc: prettify stack trace and add Mac OS X stack trace support
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c3ef6541c7 | Robert Vollmert | 2009-10-09 13:09:44 +0200

Remove unnecessary includes of view.h.
Compilation of console crawl on Linux succeeds;
please complain if other platforms break.

--------------------------------------------------------------------------------
731382be49 | Robert Vollmert | 2009-10-09 13:05:36 +0200

Extend and correct includes.sh slightly.
You can now do say
$ . util/include.sh
$ checkhdr view.h | removelst
to remove all doubtful includes of view.h.

--------------------------------------------------------------------------------
f4fbc401fe | Robert Vollmert | 2009-10-09 12:10:59 +0200

Add shell script to find unneeded includes.

--------------------------------------------------------------------------------
477b8798b3 | Robert Vollmert | 2009-10-09 10:15:39 +0200

Initialize ray.full_idx to -1 and remove outdated(?) valgrind intialization 
lines.

--------------------------------------------------------------------------------
f54c573cd0 | Robert Vollmert | 2009-10-09 08:51:04 +0200

Comment and formatting.

--------------------------------------------------------------------------------
5104ca27df | David Lawrence Ramsey | 2009-10-08 20:14:34 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a02ac88221 | David Lawrence Ramsey | 2009-10-08 20:00:13 -0500

Add spelling fixes.

--------------------------------------------------------------------------------
6c9bc68512 | David Lawrence Ramsey | 2009-10-08 17:26:28 -0500

Fix tiles compilation, as pointed out by Steven Noonan.

--------------------------------------------------------------------------------
4d393402a8 | Robert Vollmert | 2009-10-08 23:03:57 +0200

Move losight radius check into los_param.

--------------------------------------------------------------------------------
ac38661a15 | Robert Vollmert | 2009-10-08 22:52:03 +0200

Move can_go_straight from los.cc to monstuff.cc.

--------------------------------------------------------------------------------
d87a308f44 | Robert Vollmert | 2009-10-08 22:45:29 +0200

Split and correct grid_see_grid.
There's now cell_see_cell which tests for visibility correctly,
albeit slowly. That's only used for placing features in the abyss
currently, but needs to be improved if it gets used more.

The second function used in monster movement was left as is, but
renamed to can_go_straight. This remains unreliable but probably
serves its purpose.

The grid_see_grid test is adapted to cell_see_cell; the
grid_see_grid lua binding is now actually useful.

Also reduce the number of tests in los_csc and los_symm.

--------------------------------------------------------------------------------
9cc7466db0 | Robert Vollmert | 2009-10-08 20:13:13 +0200

Remove legacy losight() function.
Also remove an obsoleted variant of grid_appearance.

--------------------------------------------------------------------------------
2fb004a5ae | Robert Vollmert | 2009-10-08 20:12:46 +0200

Convert remaining uses of losight to los_param-style.

--------------------------------------------------------------------------------
c7a9fecd4b | Robert Vollmert | 2009-10-08 18:31:55 +0200

Add los_param_permissive.
This was intended for the arena; keeping as example or test case.

--------------------------------------------------------------------------------
e7fe416eb6 | Robert Vollmert | 2009-10-08 18:31:55 +0200

Use new losight() with custom los_param_excl for exclusions.

--------------------------------------------------------------------------------
efbe1be543 | Robert Vollmert | 2009-10-08 18:31:55 +0200

A rewrite of losight() to allow future generalization.
Parameters relevant to the LOS calculation are now passed as
an object los_param that takes care of coordinate translation,
bounds checking, opacity of cells and what is written to the
output array.

A check for in_bounds was changed to map_bounds for simlicity;
this should not have any effect.

Special casing for arena was removed from losight; instead
calc_show_los now calls the new losight_permissive.

--------------------------------------------------------------------------------
ed5f5311c2 | David Lawrence Ramsey | 2009-10-08 11:06:00 -0500

Add comment fix.

--------------------------------------------------------------------------------
2b0ca51113 | David Lawrence Ramsey | 2009-10-08 09:55:43 -0500

Change ugly things' color to red and very ugly things' color to lightred, so 
that their corpses are always the same colors.

--------------------------------------------------------------------------------
3f927565ef | David Lawrence Ramsey | 2009-10-08 09:17:32 -0500

Fix compilation.

--------------------------------------------------------------------------------
9b3f28120d | David Lawrence Ramsey | 2009-10-08 09:05:42 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
2f36937e52 | David Lawrence Ramsey | 2009-10-08 09:03:58 -0500

Reorganize (very) ugly things' colors again so that red is the first one, as in 
the tiles version.

--------------------------------------------------------------------------------
5fc4ef91a5 | Robert Vollmert | 2009-10-08 15:49:27 +0200

Split LOS code from view.cc.
los.cc: basic raycasting algorithm; losight(), see_grid() etc.
ray.cc: ray_def implementation.
mon-los.cc: monster_los

This includes adding a bunch of #includes; there's probably some
obsolete includes of view.h now.

--------------------------------------------------------------------------------
2298241553 | David Lawrence Ramsey | 2009-10-08 08:37:11 -0500

With help from jpeg, fix tile picking for (very) ugly things found via Detect 
Monsters.

--------------------------------------------------------------------------------
41775ce5f4 | David Lawrence Ramsey | 2009-10-08 07:58:44 -0500

Properly set the colors of single (very) ugly things again.

--------------------------------------------------------------------------------
19b6e4e681 | David Lawrence Ramsey | 2009-10-08 07:30:37 -0500

Simplify resetting (very) ugly things' band colors.

--------------------------------------------------------------------------------
82fd798480 | David Lawrence Ramsey | 2009-10-08 07:18:30 -0500

Simplify further.

--------------------------------------------------------------------------------
eb35aeaf1c | David Lawrence Ramsey | 2009-10-08 06:53:21 -0500

Attempt to make the new (very) ugly thing tiles map to their colors properly.

--------------------------------------------------------------------------------
3b9a193c88 | David Lawrence Ramsey | 2009-10-08 06:46:07 -0500

Simplify.

--------------------------------------------------------------------------------
e50e6c03a0 | David Lawrence Ramsey | 2009-10-08 06:27:21 -0500

List (very) ugly thing colors in the proper order.

--------------------------------------------------------------------------------
94b31353fc | David Lawrence Ramsey | 2009-10-08 06:06:16 -0500

Replace the original (very) ugly thing tiles for palette-swapped (very) ugly 
thing tiles, to account for their new colors.  The red versions are mostly 
identical to the originals: the ugly thing tile is resaved, and the very ugly 
thing tile has one overly subtle shade of red removed and is resaved.

--------------------------------------------------------------------------------
1042d20ab3 | David Lawrence Ramsey | 2009-10-07 21:43:23 -0500

Add comment fix.

--------------------------------------------------------------------------------
8714cd06cd | David Lawrence Ramsey | 2009-10-07 21:39:44 -0500

Add chaos-branded weapons to the good gods' dislike list, for the same reason 
as with Feawn.  Also, fix some warnings, and add some minor cosmetic fixes.

--------------------------------------------------------------------------------
365652a8e0 | Charles Otto | 2009-10-07 20:01:19 -0400

Put chaos branded weapons on Feawn's dislike list because players can get 
penance if a chaos weapon comes up with a necromantic effect.

--------------------------------------------------------------------------------
ea03e34552 | Charles Otto | 2009-10-07 19:26:10 -0400

Avoid triggering an assert when throwing returning weapons at a wall.

--------------------------------------------------------------------------------
0b21b9fcf0 | Robert Vollmert | 2009-10-07 22:21:14 +0200

Add test to compare LOS against sample maps.
New test cases can be added by adding appropriate maps to
debug-los.des.

Also separate the LOS tests into three separate files.

--------------------------------------------------------------------------------
ed0614af8d | Robert Vollmert | 2009-10-07 22:20:08 +0200

Wrap more() for lua (crawl.more()).

--------------------------------------------------------------------------------
50b9bb4b63 | Adam Borowski | 2009-10-07 22:01:31 +0200

Allow Gastronok and Prince Ribbit to generate in the Lair. (due)

--------------------------------------------------------------------------------
34f6cf483c | David Lawrence Ramsey | 2009-10-07 09:17:03 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
1d8f64e263 | David Lawrence Ramsey | 2009-10-07 09:09:28 -0500

After some thought, give ugly things mutagenic corpses.

--------------------------------------------------------------------------------
4617b8e5df | Adam Borowski | 2009-10-07 12:36:22 +0200

Using Tukima's Dance on a weapon your god hates is a bad thing.

--------------------------------------------------------------------------------
a4d44c0243 | Robert Vollmert | 2009-10-07 11:27:44 +0200

Properly remove MUT_SLOW_HEALING from the given bad mutations.
give_bad_mutation doesn't heed the probabilities in mutation_defs,
so MUT_SLOW_HEALING could be obtained but not cured.

This is a quick fix; give_bad_mutation should reallly be integrated
with mutation_defs at some point.

--------------------------------------------------------------------------------
33026bda3a | Adam Borowski | 2009-10-07 10:44:33 +0200

Bugfix: repeating delayed commands (rest, eat, ...) crash [BR2873916]

--------------------------------------------------------------------------------
60bbd0964c | Robert Vollmert | 2009-10-07 08:50:42 +0200

Enable monsters to drink potions of berserk rage.

--------------------------------------------------------------------------------
55957d0f93 | Robert Vollmert | 2009-10-07 08:49:08 +0200

Merge monster berserk and might; improve ordering of timeout messages.
ENCH_BERSERK now implies ENCH_MIGHT as with ENCH_HASTE, and ENCH_MIGHT
is responsible for increased damage.

ENCH_HASTE gets a timeout message (monster is no longer moving quickly).

This unsubmerged a lurking bug where sub-enchantments could time out
before or after the master enchantment depending on the ordering
of ench_type. ench_type is reordered to have the master enchantments
come first and appropriate comments are added

Breaks save compatibility.

--------------------------------------------------------------------------------
dcbbee0355 | Robert Vollmert | 2009-10-07 08:40:36 +0200

Enable monsters to drink potions of might.
This adds new beam and enchantment types, so probably breaks
save compatibility.

--------------------------------------------------------------------------------
bca0a29a79 | David Lawrence Ramsey | 2009-10-06 21:42:02 -0500

Add spacing fix.

--------------------------------------------------------------------------------
7c9d4c11c4 | David Lawrence Ramsey | 2009-10-06 21:39:43 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
ef846648c5 | David Lawrence Ramsey | 2009-10-06 21:39:13 -0500

Add wording tweak.

--------------------------------------------------------------------------------
c2c25b5eaa | Charles Otto | 2009-10-06 22:31:25 -0400

Implement FR 2872334 'don't auto-target neutrals' by replacing most uses of 
TARG_ENEMY with TARG_HOSTILE.

--------------------------------------------------------------------------------
0e2154d50e | David Lawrence Ramsey | 2009-10-06 20:24:03 -0500

Fix resistances for very ugly things created from leveled-up ugly things again.

--------------------------------------------------------------------------------
bfc6dd1f6e | David Lawrence Ramsey | 2009-10-06 19:48:37 -0500

Rename very ugly things' attack flavor upgrade function to make its use clearer.

--------------------------------------------------------------------------------
700ebc8adc | David Lawrence Ramsey | 2009-10-06 19:38:14 -0500

Simplify and display resistances for (very) ugly things.

--------------------------------------------------------------------------------
55ba0f6e4d | David Lawrence Ramsey | 2009-10-06 19:12:25 -0500

Display (very) ugly things' colors in their descriptions.

--------------------------------------------------------------------------------
26ca2cac76 | David Lawrence Ramsey | 2009-10-06 19:10:24 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
2e5693e151 | David Lawrence Ramsey | 2009-10-06 19:09:48 -0500

Add whitespace fix.

--------------------------------------------------------------------------------
da8bc0fd33 | Adam Borowski | 2009-10-07 01:32:20 +0200

Mutagenic fog.  Comes from Evaporate and fog generators.  (due)

--------------------------------------------------------------------------------
f408bf9c35 | David Lawrence Ramsey | 2009-10-06 18:31:13 -0500

Make sure that all (very) ugly things in a band start with the same colour.

--------------------------------------------------------------------------------
36868a5a6d | Adam Borowski | 2009-10-07 01:31:13 +0200

Stack identified and unidentified ammo when picking it up. (mesilliac) If you 
have a stack of +0 stones, identical stones will auto-id.

--------------------------------------------------------------------------------
23ff814fd3 | evktalo | 2009-10-06 20:38:34 +0300

Revert "Modify a few tutorial messages according to the z/Z changes" from 
master too.
This reverts commit eb076f4e8e72b8c9f839892bf8d1aba4838bf06a.

--------------------------------------------------------------------------------
eb076f4e8e | evktalo | 2009-10-06 20:22:38 +0300

Modify a few tutorial messages according to the z/Z changes.
Signed-off-by: evktalo <evktalo@users.sourceforge.net>
(cherry picked from commit ba32b4c6d13011afc9e89b01c9a4aba693f2a7b0)

--------------------------------------------------------------------------------
9712c77f98 | Robert Vollmert | 2009-10-06 17:45:16 +0200

Convert varius occurrences of LOS_RADIUS * LOS_RADIUS.
LOS actually goes to LOS_RADIUS * LOS_RADIUS + 1. None of the
occurrences are likely to have had a big effect, however.

--------------------------------------------------------------------------------
f409c04e8f | Robert Vollmert | 2009-10-06 17:38:18 +0200

LOS radius fix for blood smelling.
Players now smell blood "in the distance" if the corpse is
properly outside LOS radius.

--------------------------------------------------------------------------------
4bd296b7d1 | Robert Vollmert | 2009-10-06 17:36:44 +0200

Mention entry price in 'xv' description of toll portals (ziggurat).

--------------------------------------------------------------------------------
6f647bad4a | Robert Vollmert | 2009-10-06 17:32:06 +0200

Cleanup in melee_attack.
potential_damage is only really used in one method, so move it there
as a local variable.

--------------------------------------------------------------------------------
f460cbf1c8 | Robert Vollmert | 2009-10-06 17:30:56 +0200

Comments in fight.cc on dex/str weighting.

--------------------------------------------------------------------------------
558cf63b8d | Robert Vollmert | 2009-10-06 17:28:51 +0200

Clean up ms_low_hitpoint_cast.

--------------------------------------------------------------------------------
98a1e903da | Robert Vollmert | 2009-10-06 17:25:29 +0200

Use inclusive bounds for grid_is_{solid,opaque}.

--------------------------------------------------------------------------------
357ace6f45 | Robert Vollmert | 2009-10-06 17:16:12 +0200

Add test for symmetry of grid_see_grid.
Includes adding a LUA binding dgn.grid_see_grid.

--------------------------------------------------------------------------------
eab7d70f37 | Robert Vollmert | 2009-10-06 17:04:23 +0200

Fix _decrement_a_duration going from 2 to 0.

--------------------------------------------------------------------------------
e8633bdc7e | Robert Vollmert | 2009-10-06 17:02:43 +0200

Comment on duration of mephitic cloud confusion.

--------------------------------------------------------------------------------
3e2d621b66 | David Lawrence Ramsey | 2009-10-06 09:00:13 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
93216905bc | David Lawrence Ramsey | 2009-10-06 08:58:57 -0500

Add minor cleanups.

--------------------------------------------------------------------------------
35bb2fd5f7 | Adam Borowski | 2009-10-06 15:40:04 +0200

Give Khufu a quote (due), make him spawn in Tomb and Crypt.

--------------------------------------------------------------------------------
c591003b88 | Adam Borowski | 2009-10-06 15:04:22 +0200

Khufu, the mummy emperor.  Uses Tomb of Doroklohe as an escape spell.
He will blink and teleport away any allies, and resort to blinking
himself only if there's something else blocking the tomb.

The tomb is dropped when he emerges from it, as teleporting out could
leave the player stranded and having unlimited means of digging
shouldn't be mandatory.

--------------------------------------------------------------------------------
9970d45869 | Adam Borowski | 2009-10-06 13:33:42 +0200

Drop obsolete CVS last-committed headers ($Author$).

--------------------------------------------------------------------------------
2b4de19a7a | Adam Borowski | 2009-10-06 12:53:38 +0200

.gitignore: ignore only rltiles/*.png, not the actual tile dirs.

--------------------------------------------------------------------------------
cd381a34e0 | Robert Vollmert | 2009-10-06 10:35:13 +0200

Don't let Vehumet increase range for spells with no range (-1).
Should fix BR 2873158, 2872867.

--------------------------------------------------------------------------------
16f1079a86 | David Ploog | 2009-10-06 06:47:01 +0200

Merge branch 'master' of 
ssh://dploog@crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
fcb71db1fc | David Ploog | 2009-10-06 06:45:22 +0200

Add develop/ and license/ folders in docs/.

--------------------------------------------------------------------------------
4f27387b90 | unknown | 2009-10-06 00:14:50 -0400

Allow mummies to memorize summon horrible things because the summoned Xs are no 
longer permanent.

--------------------------------------------------------------------------------
3a2c243707 | Charles Otto | 2009-10-05 23:54:34 -0400

Increase the piety gain from decomposition, list the fruit cost for growth and 
evolution on the a and ^ screens. Add toadstools to the list of monsters Feawn 
protects.

--------------------------------------------------------------------------------
5eb01527a7 | Adam Borowski | 2009-10-06 00:10:15 +0200

Give a message and a milestone when Nemelex' active wrath stops [BR 2844717]

--------------------------------------------------------------------------------
168f0f9cde | Adam Borowski | 2009-10-05 23:06:13 +0200

Make Hive:2 a bit more autoexplore-friendly.

--------------------------------------------------------------------------------
8183af49f3 | Adam Borowski | 2009-10-05 22:02:26 +0200

autogenerated art data needed by the Windows build

--------------------------------------------------------------------------------
68ab4cfd29 | Adam Borowski | 2009-10-05 22:02:25 +0200

Unrandart: hat of the Bear Spirit {+2, Spirit rN+ MR +Rage}

--------------------------------------------------------------------------------
b7dee52a41 | Adam Borowski | 2009-10-05 22:02:25 +0200

Amulet of guardian spirit, it comes as an amulet or a cap.
When worn, all non-poison damage will drain mana instead, hurting hp
only after mana is depleted.

The cap brand is intended only for a fixedart, but per dpeg's request,
it will be generated on ordinary caps for now, as a test.

--------------------------------------------------------------------------------
ef6ad2cc03 | David Ploog | 2009-10-05 00:42:37 +0200

Option doc fixes (Maciej Lapinski).

--------------------------------------------------------------------------------
cf2043f5e0 | David Ploog | 2009-10-05 00:10:59 +0200

Ensure Feawn altar by D:8 the latest.

--------------------------------------------------------------------------------
857726995d | David Lawrence Ramsey | 2009-10-04 06:54:07 -0500

Properly tie rotting resistance to disease resistance.

--------------------------------------------------------------------------------
7ac6680a75 | David Ploog | 2009-10-04 06:20:30 +0200

Two new ossuary maps (Jude Brown, Vsevolod Kozlov).
Also changed weights for the various maps and added another entry vault.

--------------------------------------------------------------------------------
322904f753 | David Ploog | 2009-10-04 04:51:27 +0200

Demon changes (Jude Brown).
Hellwing was 3, is 4. Smoke Demon was 4, is 3. Hellion was 3, is 2.
Ynoxinuals was cyan, is lightcyan.
Tormentors have torment as misc spell, not just as unused escape spell.

--------------------------------------------------------------------------------
e1d1992bbb | David Lawrence Ramsey | 2009-10-03 14:23:48 -0500

Tweak previous simplification to make sure that zombified types can't 
multitarget.

--------------------------------------------------------------------------------
7b68885a4e | David Lawrence Ramsey | 2009-10-03 10:24:59 -0500

Simplify further.

--------------------------------------------------------------------------------
0979f91903 | David Lawrence Ramsey | 2009-10-03 10:21:13 -0500

Simplify.

--------------------------------------------------------------------------------
458bf564f3 | David Lawrence Ramsey | 2009-10-03 09:47:13 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
9c4f7e5109 | David Lawrence Ramsey | 2009-10-03 09:46:03 -0500

As discussed awhile ago, make healers go unarmed instead of using staves.

--------------------------------------------------------------------------------
e359cd2b94 | evktalo | 2009-10-03 17:37:02 +0300

Generalize the hydra targetting into multitargetting a bit. Extend it to 
two-headed ogres, ettins, deep elf blademasters, tentacled monstrosities and 
electric golems. (Thanks, ##crawl!)
Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
0a2a247a5a | evktalo | 2009-10-03 14:30:30 +0300

Kiku now gifts the lesser Necromancy books in a quick succession. Also, took a 
switch statement out of the book gifting department.
Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
ff237f26c6 | Darshan Shaligram | 2009-10-02 17:00:39 +0530

readlink does not NULL-terminate, must terminate explicitly.

--------------------------------------------------------------------------------
d7f62c71f7 | Robert Vollmert | 2009-10-02 12:48:18 +0300

Small bug fix in SAFE_EXPLORE code.
This prevented the diagonal check from working, so autoexplore would
occasionally hang in front of closed doors.

Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
7836c6b176 | Steven Noonan | 2009-10-02 00:13:14 -0700

Xcode: enable SQLite in Xcode builds, fix preprocessor macros
 - SQLite wasn't enabled in Xcode, but it worked fine for
   builds with makefile.unix. Now it's enabled and it works
   fantastically.

 - The preprocessor macros for each of the configurations for
   the Crawl Tiles target were wrong. Now set to inherit from
   project properties instead, adding only USE_TILE and
   CLUA_BINDINGS for all targets.

 - Optimization is enabled in the Development configuration
   now, as I figure most development will be done only on the
   native machine architecture, but optimization will be fine
   unless there's a bizarre bug that requires a complete lack
   of optimizations (which is what the Debug build is really
   for anyway).

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a7f3f5ce88 | David Lawrence Ramsey | 2009-10-01 22:08:17 -0500

Add spell messages for Airstrike, to avoid "INVALID BEAM" messages.

--------------------------------------------------------------------------------
b4e0ccc78a | Steven Noonan | 2009-10-01 19:35:22 -0700

tilesdl.cc: fix segfault caused by negative Y-value
In my case, the cause was a crawlrc with these values:
  view_max_width=80
  view_max_height=70

I did a USE_TILE build, ran it, and the value of
crawl_view.msgsz.y became negative, causing a rather nasty
segfault later in initialization.

I'm pretty sure that using 'std::max' here is not the best
solution, but it at least avoids the negative number case.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2ba02b60b6 | David Lawrence Ramsey | 2009-10-01 21:21:08 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
251663830e | David Lawrence Ramsey | 2009-10-01 21:18:29 -0500

Replace extraneous tabs with spaces.

--------------------------------------------------------------------------------
fe4f2f1430 | Steven Noonan | 2009-10-01 18:58:19 -0700

food.cc, religion.cc: remove merge conflict markers
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
25e998d40e | David Lawrence Ramsey | 2009-10-01 20:47:44 -0500

Fix compilation (oops).

--------------------------------------------------------------------------------
38a99d5fb2 | David Lawrence Ramsey | 2009-10-01 20:32:38 -0500

Clean up the Kiku changes a bit.

--------------------------------------------------------------------------------
2a56957bec | evktalo | 2009-10-02 00:13:21 +0300

Applying Kiku patch by Alex MacDonald (timecircuits). Kiku now has an 
invocation to provide corpses, provides (partial) torment resistance, provides 
torment when butchering while praying, and gifts Necromancy books. As the final 
gift, the player can choose between blessing the wielded weapon with Pain 
brand, or Necronomicon.
Flavour and help texts haven't been altered yet.

Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
60c100224a | Darshan Shaligram | 2009-10-01 22:45:41 +0530

Fix debug build where OSX is not #defined.

--------------------------------------------------------------------------------
3a248ca4fd | Darshan Shaligram | 2009-10-01 22:40:43 +0530

Version -> 0.6

--------------------------------------------------------------------------------
5df016088f | David Lawrence Ramsey | 2009-10-01 07:55:00 -0500

Update changelog.

--------------------------------------------------------------------------------
c99dc714c3 | David Lawrence Ramsey | 2009-10-01 07:50:56 -0500

Allow spectral things to take stairs again, to make Death Channel more useful.

--------------------------------------------------------------------------------
b6e861ec55 | David Lawrence Ramsey | 2009-10-01 06:11:10 -0500

Disallow zombification of (very) ugly things, as there's no easy way to 
preserve their attack type in that state, as we do with other zombified 
monsters.

--------------------------------------------------------------------------------
cfd0b51431 | Darshan Shaligram | 2009-10-01 14:46:43 +0530

Update credits (Mikko)

--------------------------------------------------------------------------------
fb49425915 | Mikko Juola | 2009-10-01 14:42:06 +0530

Harden the PRNG for public servers.
Detailed discussion is here: http://www.genodeen.net/index.clua?cwrng

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
f44f2bc6f5 | David Ploog | 2009-10-01 05:25:30 +0200

Reduce weight of large rocks, from 600 to 400.

--------------------------------------------------------------------------------
7a0c25727e | David Ploog | 2009-10-01 05:20:51 +0200

Disallow rotations for most bailey maps. (Zaba)

--------------------------------------------------------------------------------
689138d9dd | David Lawrence Ramsey | 2009-09-30 21:32:06 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ed7c46f298 | David Lawrence Ramsey | 2009-09-30 21:25:33 -0500

Add spacing fix.

--------------------------------------------------------------------------------
21864e0fca | David Lawrence Ramsey | 2009-09-30 21:23:33 -0500

Add wording fix.

--------------------------------------------------------------------------------
b1b06aa17c | David Lawrence Ramsey | 2009-09-30 19:54:08 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
48341e27ba | Steven Noonan | 2009-09-30 17:32:49 -0700

domake.sh: use a better check for BSD make vs GNU make
Apparently BSD make returns an error code if you use '--version'. GNU make
simply gives the version information and returns 0.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
af0464fd0a | evktalo | 2009-09-30 23:37:28 +0300

Added Sandblast to the list of Vehumet-boosted spells. Tweaked int spell_range 
accordingly. (thanks amacleod) Also forgot to thank rob for co-hacking the 
Vehumet check.
Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
9bf7b8a11f | David Lawrence Ramsey | 2009-09-30 14:05:40 -0500

Clean up includes a bit.

--------------------------------------------------------------------------------
b2bd008c7b | David Lawrence Ramsey | 2009-09-30 14:02:12 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
c6ecb32c7f | David Lawrence Ramsey | 2009-09-30 14:01:10 -0500

Clean up fungal_bloom()'s zombie decay/ghoul-type monster destruction routines 
a bit.

--------------------------------------------------------------------------------
088bde5333 | evktalo | 2009-09-30 21:49:06 +0300

Generalize the check for Vehumet supported spells. Add Shatter and Lee's Rapid 
Deconstruction (SPELL_FRAGMENTATION) to the list.
Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
3d29622183 | David Lawrence Ramsey | 2009-09-30 07:35:21 -0500

Add wording fix.

--------------------------------------------------------------------------------
917ad81b8d | Matthew Cline | 2009-09-30 02:53:07 -0700

Ignore UNIX makefile dependencies file (mafefile.dep) and Emacs/vim backup 
files (*~).

--------------------------------------------------------------------------------
7082bff8e9 | evktalo | 2009-09-30 11:33:06 +0300

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
e7514fb683 | Charles Otto | 2009-09-30 11:31:13 +0300

Vehumet modifications. Remove the warding effect, replace it with extended 
range for conjurations spells. Starting at **** piety reduce the cost of high 
level (>=5) conjurations and summonings spells by 1.
(Additional wording tweaks by Eino)

Signed-off-by: evktalo <evktalo@users.sourceforge.net>

--------------------------------------------------------------------------------
d1e8257d2d | Steven Noonan | 2009-09-30 01:01:19 -0700

Revert "util/*/Makefile: allow compiler selection on command-line"
This reverts commit 4be2bf2502f892afebbb0ea51d621556c0e88019.

For some reason, CC is defined by GNU make by default.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2345ad3da2 | Steven Noonan | 2009-09-30 01:00:55 -0700

Revert "makefiles: set CXX variable only if not overridden on command-line"
This reverts commit 72068573977f6c562a7a0928ba37a16172a57b13.

For some reason, CXX is defined by GNU make by default.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a98267af0f | Steven Noonan | 2009-09-30 00:17:16 -0700

files.cc, newgame.cc: support savegame paths with spaces in them
For instance, on Mac OS X, we save to this path:
   ~/Library/Application Support/Dungeon Crawl Stone Soup

But if we just pass this path to an external program via system()
without doing anything to it, the app assumes that spaces are
intended to indicate separate parameters.

We have to escape the paths in one of two ways.

UNIX (backslashes):
   ~/This\ Crappy\ Path\ Has\ Spaces\ In\ It

or Windows (doublequotes):
   "C:\This Crappy Path Has Spaces In It"

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
70de00643f | Steven Noonan | 2009-09-30 00:16:55 -0700

Xcode: add AppHdr.h to project for easy access
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
55c5340560 | Steven Noonan | 2009-09-30 00:16:44 -0700

libutil.cc: add escape_path_spaces()
Spaces need to be escaped in any system() calls, so we have this simple
function which escapes spaces with either doublequotes (Windows style) or
backslashes (UNIX style).

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5c67594c4d | Steven Noonan | 2009-09-29 22:49:16 -0700

Lua updated to v5.1.4
Worth noting that this was done as follows, to preserve the
project-specific changes we've made:

wget http://www.lua.org/ftp/lua-5.1.2.tar.gz
wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar -xzf lua-5.1.2.tar.gz
tar -xzf lua-5.1.4.tar.gz
cd lua-5.1.2
git init
git add .
git commit -sv -m "Lua 5.1.2"
rsync --exclude .git ../lua-5.1.4/. .
git commit -asv -m "Lua 5.1.4"
git checkout -b patched-version HEAD~1
rsync --exclude .git ~/Development/crawl-ref/crawl-ref/source/util/lua/. .
git commit -asv -m "patched"
git rebase master

And voila, we've rebased our patches with the latest Lua!

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c4c474d09d | Steven Noonan | 2009-09-29 22:13:56 -0700

Mac OS X: use SQLite on Mac OS X builds
There's no reason not to.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4e1c906598 | Steven Noonan | 2009-09-29 22:13:56 -0700

util/sqlite: update from v3.3.16 to v3.6.18
Why has a two year old sqlite been used this long?

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0fba3e2df8 | Steven Noonan | 2009-09-29 22:13:34 -0700

AppHdr.h: fix "already defined" macro warnings on OSX and FREEBSD
If you specify OSX as a macro, it shouldn't cause the compiler
to throw a warning.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
387ac2d132 | Steven Noonan | 2009-09-29 21:47:08 -0700

Xcode: rename non-USE_TILE app bundle
Just calling it "Crawl.app" doesn't tell how it's different
from "Dungeon Crawl Stone Soup.app".

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
0e83d8f5b3 | Steven Noonan | 2009-09-29 21:40:37 -0700

Fix makefile.obj reference to 'Kills.o'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b23b8d01e5 | Steven Noonan | 2009-09-29 21:25:58 -0700

Fix projects referencing 'Kills.cc' to reference 'kills.cc'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
da980e3a23 | Steven Noonan | 2009-09-29 21:11:42 -0700

Move 'FixAry.h' -> 'fixary.h', 'FixVec.h' -> 'fixvec.h' for file naming 
consistency
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
da6fbde7ef | Steven Noonan | 2009-09-29 21:11:42 -0700

move 'Kills.h' -> 'kills.h', 'Kills.cc' -> 'kills.cc' for file naming 
consistency
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
8e8643721d | David Lawrence Ramsey | 2009-09-29 23:00:31 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
9c3c901527 | David Lawrence Ramsey | 2009-09-29 22:59:29 -0500

Since miasma is no longer tied to negative energy, death drakes shouldn't be 
evil.

--------------------------------------------------------------------------------
1841fe746f | Steven Noonan | 2009-09-29 20:15:46 -0700

gitignore: ignore folders and symlinks created by dolinks.sh
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a6cd628e89 | Steven Noonan | 2009-09-29 20:15:46 -0700

gitignore: add dat/tiles/gui.png to ignore list
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
a05d0c156c | David Lawrence Ramsey | 2009-09-29 22:11:02 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
45001d37f2 | David Lawrence Ramsey | 2009-09-29 22:08:46 -0500

Make miasma and miasma resistance more consistent.  It no longer depends on 
negative energy resistance, but on rotting resistance.

--------------------------------------------------------------------------------
5f6474e368 | Steven Noonan | 2009-09-29 20:08:30 -0700

AppHdr.h: FreeBSD support added
With FreeBSD, we have to use SAVE_PACKAGE_NONE for now, because
the /usr/bin/zip program isn't part of the base installation, and
GNU tar isn't either. FreeBSD has a 'tar' command, but it's BSD
tar, rather than GNU tar. And FreeBSD's tar doesn't have the very
important '--remove-files' parameter.

I've posted on the FreeBSD forums asking about the best way to
emulate the '--remove-files' option using nothing but FreeBSD's
stock commands. I'll add a SAVE_PACKAGE_BSD_TAR option or similar
once I have more information.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
5998b26538 | Steven Noonan | 2009-09-29 18:16:02 -0700

Xcode: target 10.4 on i386 and ppc, 10.5 on x86_64
We don't really have a 64-bit (x86_64) target yet, but we eventually
will once SDL 1.2.14 comes out. Until then, we can at least prepare
for the eventuality.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
f3b1dada23 | David Lawrence Ramsey | 2009-09-29 19:41:49 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
f8e1484646 | David Lawrence Ramsey | 2009-09-29 19:40:13 -0500

Give green ugly things AF_POISON_NASTY instead of AF_POISON, as it's more 
fitting given their hit dice.

--------------------------------------------------------------------------------
4be2bf2502 | Steven Noonan | 2009-09-29 17:33:13 -0700

util/*/Makefile: allow compiler selection on command-line
Allows neat compilers like 'llvm-gcc' or even experimental
ones like 'clang' to be used.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
7206857397 | Steven Noonan | 2009-09-29 17:27:33 -0700

makefiles: set CXX variable only if not overridden on command-line
Allows compiler selection on the command-line. For instance,
if we wanted to use llvm-g++, we'd use 'make CXX=llvm-g++'.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
d0ffdd174d | Steven Noonan | 2009-09-29 17:17:48 -0700

makefile_tiles.unix: cleanup and compile corrections
 - Replace 'make' with '$(MAKE)'
 - Allow jobserver option to be inherited via '+$(MAKE)'
 - Use pkg-config for Freetype2 and PNG cflags/ldflags

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
dfc2d97414 | Steven Noonan | 2009-09-29 16:58:22 -0700

Makefiles: $(MAKE) -> +$(MAKE)
This allows for recursive $(MAKE) calls to run with
the appropriate job count option (i.e. -j2).

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
2028940538 | Steven Noonan | 2009-09-29 16:57:05 -0700

domake & dolinks: use BASH shell and GNU make
FreeBSD's /bin/sh doesn't understand pushd/popd.

FreeBSD's 'make' is BSD make. Use gmake instead.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
9f5ffcc679 | David Lawrence Ramsey | 2009-09-29 18:33:11 -0500

Remove DOS line endings from trove.des again.  (What's the git equivalent of 
svn:eol-style?)

--------------------------------------------------------------------------------
69f3e40c49 | evktalo | 2009-09-29 22:24:25 +0300

Spacing fix.

--------------------------------------------------------------------------------
2fb25991c3 | evktalo | 2009-09-29 22:22:31 +0300

Reset default-depth before the trove maps proper. (##crawl)

--------------------------------------------------------------------------------
c6529a5876 | evktalo | 2009-09-29 21:45:52 +0300

Updated Statue Form description with a mention of it's effectiveness in unarmed 
combat. (Borsuk)

--------------------------------------------------------------------------------
8feccff0a5 | evktalo | 2009-09-29 21:41:16 +0300

Added a line about slowing down cold-blooded creatures to the freezing weapon 
description. (Borsuk)

--------------------------------------------------------------------------------
eee477d44f | evktalo | 2009-09-29 21:39:27 +0300

Added a bit about effectiveness against hydras to the flaming weapon 
description.

--------------------------------------------------------------------------------
7f72c37783 | David Lawrence Ramsey | 2009-09-29 10:17:05 -0500

Simplify several random array selections by using RANDOM_ELEMENT().

--------------------------------------------------------------------------------
75f92afc22 | Darshan Shaligram | 2009-09-29 20:21:39 +0530

Ignore more core dumps (Zaba).

--------------------------------------------------------------------------------
5ab40202bb | David Lawrence Ramsey | 2009-09-29 09:41:40 -0500

Add formatting fix.

--------------------------------------------------------------------------------
955c8c90a8 | David Lawrence Ramsey | 2009-09-29 09:38:43 -0500

Add whitespace fixes.

--------------------------------------------------------------------------------
ace15c8b3e | David Lawrence Ramsey | 2009-09-29 09:18:14 -0500

Apply bookofjude's patch in [2869430] to adjust Duvessa's and Dowan's stats.

--------------------------------------------------------------------------------
1673c5396d | David Lawrence Ramsey | 2009-09-29 08:56:53 -0500

Add wording fix.

--------------------------------------------------------------------------------
749c8a0b53 | Vsevolod Kozlov | 2009-09-29 18:49:23 +0530

Man page update.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
fd1ba253d5 | Adam Borowski | 2009-09-29 17:27:04 +0530

a new card: "the Swine"
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
dc3ff8fc28 | Adam Borowski | 2009-09-29 17:27:04 +0530

make porkalator castable by wizards
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
d73a0fcaf0 | Jude Brown | 2009-09-29 15:20:15 +0530

Give titans airstrike (dpeg).
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
09145b40bc | Jude Brown | 2009-09-29 15:16:51 +0530

Make monster airstrike damage more of a threat.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
71c7665e58 | Jude Brown | 2009-09-29 15:06:26 +0530

Give Gastronok extra airstrike, remove magic dart.
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
6a8cc75019 | David Lawrence Ramsey | 2009-09-28 21:46:04 -0500

Simplify checks for whether players/monsters can hit monsters, and make sure 
that the latter can properly hit monsters submerged in shallow water if they 
have tentacles.

--------------------------------------------------------------------------------
b64541c7ef | David Lawrence Ramsey | 2009-09-28 21:23:10 -0500

Implement feature [2584052]: Apply caotto's patch in [2869396] (based on work 
done by castamir) to seal the four specific hell portals instead of the single 
hell vestibule portal when the player picks up the orb.

--------------------------------------------------------------------------------
f05884f49b | David Lawrence Ramsey | 2009-09-28 17:09:09 -0500

Attempt to make monster attacks on submerged monsters consistent with player 
attacks on the same (aside from tentacle attacks, which only monsters can 
currently have and which work on all submerged monsters).

--------------------------------------------------------------------------------
bba212516d | Steven Noonan | 2009-09-28 11:28:51 -0700

dolinks.sh and domake.sh: chmod +x
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
cc59c94645 | Steven Noonan | 2009-09-28 11:14:49 -0700

INSTALL.txt: updated to reflect current Mac build information
 - No Fink dependencies
 - How to build the dependencies (libpng, Freetype2) and install
   others (SDL, SDL_image).

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
74e2f3fdac | David Lawrence Ramsey | 2009-09-28 09:27:02 -0500

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
f0d371b01c | David Lawrence Ramsey | 2009-09-28 09:04:45 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
32e36581cd | David Lawrence Ramsey | 2009-09-28 08:47:53 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ba9e8a28d4 | David Lawrence Ramsey | 2009-09-28 08:33:27 -0500

Apply kotk's patch in [2868294] to make monsters properly pick up throwable 
melee weapons for throwing.

--------------------------------------------------------------------------------
83efefc37d | David Lawrence Ramsey | 2009-09-28 08:24:56 -0500

Apply caotto's patches in [2868303]: Put toadstool spawning/dying messages in 
runrest_ignore, and mark evil items in the player's inventory as disliked by 
Feawn.

--------------------------------------------------------------------------------
f1842e3677 | David Lawrence Ramsey | 2009-09-28 08:15:08 -0500

Apply caotto's patch in [2868369], with a few cosmetic tweaks: Make hydras 
attack adjacent hostiles if they kill their target and have attacks left over.

--------------------------------------------------------------------------------
56741fe543 | David Lawrence Ramsey | 2009-09-28 08:14:16 -0500

Comment fixes.

--------------------------------------------------------------------------------
f12fc34b13 | David Lawrence Ramsey | 2009-09-28 08:02:47 -0500

And simplify further.

--------------------------------------------------------------------------------
169f94f8b4 | David Lawrence Ramsey | 2009-09-28 07:59:33 -0500

Simplify the proximity check for (very) ugly things.

--------------------------------------------------------------------------------
7a73ea4293 | Steven Noonan | 2009-09-28 02:07:18 -0700

Xcode: add missing file for full debug or wizard builds
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
b66e6dabd0 | Steven Noonan | 2009-09-28 02:01:19 -0700

tilesdl.cc: fix layout bug and crash with certain resolutions
This one was a pain to hunt down, but it was a surprisingly simple
fix. Can you believe an X value was used where a Y value was needed?

Anyway, the bug was that with certain resolutions (i.e. 1440x900),
the game would crash once the message list needed to be rendered.

And the layout was also completely wrong if you did something like
an abnormal resolution of 800x850, which shows the message list
near the middle of the screen instead of at the bottom.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
176d5bc497 | Steven Noonan | 2009-09-25 19:39:53 -0700

initfile.cc: move 'saves' and 'morgue' to appropriate Mac locations on Mac OS X
The '~/Library/Application Support/<Application Name>' path is widely
used as a settings or save folder for Mac applications.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
3fa08bdca8 | Steven Noonan | 2009-09-25 14:27:00 -0700

Lua: load/save architecture-independent bytecode
If you run the Intel version of Crawl and then the PowerPC version,
you will get "Lua error: global_prelude: bad header in precompiled
chunk" seven times during the start of Crawl.

This patch corrects the issue by making the bytecode architecture
independent.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
c24fc269c5 | Robert Vollmert | 2009-09-25 23:52:59 +0530

More LOS refinements.
Increase LOS rays used in raycast(), limit LOS rays to LOS radius for 
efficiency.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
4a5e01f142 | David Lawrence Ramsey | 2009-09-25 12:02:00 -0500

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
4b60645572 | David Lawrence Ramsey | 2009-09-25 11:56:07 -0500

And add more consistency fixes.

--------------------------------------------------------------------------------
c4d63c569f | David Lawrence Ramsey | 2009-09-25 11:51:11 -0500

Make screen color flashes from god effects more consistent.

--------------------------------------------------------------------------------
b56c9a0d57 | David Lawrence Ramsey | 2009-09-25 10:51:59 -0500

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
5746c28190 | David Lawrence Ramsey | 2009-09-25 10:45:13 -0500

Merge branch 'master' of 
ssh://crawl-ref.git.sourceforge.net/gitroot/crawl-ref/crawl-ref

--------------------------------------------------------------------------------
a6215ebe54 | David Lawrence Ramsey | 2009-09-25 10:44:28 -0500

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
046f84f160 | Darshan Shaligram | 2009-09-25 21:09:22 +0530

_give_monster_item checks that the item is valid (fixes crash when gold cannot 
be generated for Maurice).

--------------------------------------------------------------------------------
2b42ba6088 | David Lawrence Ramsey | 2009-09-25 10:27:43 -0500

Don't allow no-XP monsters to gain experience, so that kraken tentacles can't 
go up in levels.  (Plants and fungi are already covered.)

--------------------------------------------------------------------------------
58eff259a0 | David Lawrence Ramsey | 2009-09-25 10:02:38 -0500

Add a vorpal type for tentacle attacks, and use it for the tentacle-slap attack 
type.  Also, allow unarmed attacks to work on submerged monsters if they use 
the tentacle vorpal type.  Finally, make kraken tentacles use the tentacle-slap 
attack type.

--------------------------------------------------------------------------------
f07a8e99cd | David Lawrence Ramsey | 2009-09-25 09:52:57 -0500

Add spacing fixes.

--------------------------------------------------------------------------------
292ffecef2 | David Lawrence Ramsey | 2009-09-25 09:27:09 -0500

Comment fixes.

--------------------------------------------------------------------------------
c592806b56 | David Lawrence Ramsey | 2009-09-25 09:17:41 -0500

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
4b6eba016a | David Lawrence Ramsey | 2009-09-25 00:02:22 -0500

Simplify.

--------------------------------------------------------------------------------
c5811dc957 | David Lawrence Ramsey | 2009-09-24 23:53:20 -0500

Fix [2866313]: The asphyxiation resistance check in monsters::can_drown() was 
accidentally inverted when the resistance was converted to boolean (oops).

--------------------------------------------------------------------------------
290984b8da | Darshan Shaligram | 2009-09-24 18:50:41 -0700

Fix MinGW build.
#include <windows.h> without WIN32_LEAN_AND_MEAN includes winsock.h, which 
defines AF_CHAOS as an int constant.

--------------------------------------------------------------------------------
961048f9c2 | Steven Noonan | 2009-09-25 06:20:14 +0530

Mac OS X: add proper build target for USE_TILE builds
We don't need the wrapper script (see 'crawl-ref/source/mac/crawl') in
USE_TILE builds, because the terminal prints no output anyway, and the
compiled binary from Crawl-tiles-cmd is Mac OS X native already. So
instead of building a command line version and wrapping it, use a
proper target which builds an app bundle.

Also drops the Crawl-tiles-cmd target on Xcode.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
de12ddf8d0 | Steven Noonan | 2009-09-25 06:20:12 +0530

version.h: we're using git now, change VER_QUAL to '-git'
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
8412abfc01 | Darshan Shaligram | 2009-09-25 06:04:33 +0530

LOS asymmetry fix, courtesy Robert Vollment.
./crawl -test runs successfully with this fix.

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
1a1e5b15ac | Darshan Shaligram | 2009-09-25 06:03:17 +0530

Reduce LOS test iterations, flush messages periodically to avoid -more- prompts.

--------------------------------------------------------------------------------
3dd0550373 | Darshan Shaligram | 2009-09-25 06:02:51 +0530

Ignore unused return codes in find_executable_path.

--------------------------------------------------------------------------------
0bfa6c34ee | David Lawrence Ramsey | 2009-09-24 18:51:40 -0500

After some thought, let butterflies do a minimum amount of damage, since you 
can gain experience from killing them.

--------------------------------------------------------------------------------
4f86bfa5a0 | David Lawrence Ramsey | 2009-09-24 18:41:59 -0500

Apply anonymous patch in [2836447], with a few tweaks, to fix spell hunger 
descriptions.

--------------------------------------------------------------------------------
18bb78ba48 | David Lawrence Ramsey | 2009-09-24 18:10:04 -0500

Remove unused AF_BAD_MUTATE attack flavor.

--------------------------------------------------------------------------------
e0d0f5919e | David Lawrence Ramsey | 2009-09-24 17:46:21 -0500

Add spacing fix.

--------------------------------------------------------------------------------
c23e2d1e29 | David Lawrence Ramsey | 2009-09-24 14:54:54 -0500

Comment fix.

--------------------------------------------------------------------------------
9c9ae28ef9 | David Lawrence Ramsey | 2009-09-24 14:42:53 -0500

Make (very) ugly things glow, since they're supposed to be mutated and possibly 
mutagenic.

--------------------------------------------------------------------------------
c72cef9fe1 | David Lawrence Ramsey | 2009-09-24 14:24:56 -0500

Make "Alter Self" properly trigger the deliberate mutation conduct again, for 
the same amount as "Polymorph Other" when used on monsters.

--------------------------------------------------------------------------------
18f8fc2699 | David Lawrence Ramsey | 2009-09-24 14:02:22 -0500

Since casting Polymorph Other or Alter Self now results in penance for their 
being chaotic spells, as well as the original piety loss for mutating, remove 
the unconditional penalty for even attempting to cast them.

--------------------------------------------------------------------------------
4f153c5988 | David Lawrence Ramsey | 2009-09-24 13:56:29 -0500

Various religion-related fixes: Update the player's title when gaining or 
losing piety or penance, so that Invocations-based titles are handled properly; 
don't display Zin's message about mutagenic glow if the player isn't glowing; 
and have Zin treat all chaotic spells consistently.

--------------------------------------------------------------------------------
1de3f0a488 | David Lawrence Ramsey | 2009-09-24 11:41:35 -0500

Simplify.

--------------------------------------------------------------------------------
c1ab37674e | David Lawrence Ramsey | 2009-09-24 11:19:58 -0500

Comment fix.

--------------------------------------------------------------------------------
00465cc2dc | David Lawrence Ramsey | 2009-09-24 11:06:01 -0500

Revert harpies' getting "peck" attacks, as they don't actually have beaks.

--------------------------------------------------------------------------------
1f4de875d0 | David Lawrence Ramsey | 2009-09-24 10:51:57 -0500

For flavor, add "peck" and "headbutt" attack types.  The former is now used by 
some birdlike monsters as an alternative to "claw".  The latter is currently 
used only by chaos spawns and (very) ugly things, although it could be useful 
if non-draconian monks are added.  Also, rename AT_BUTT to AT_GORE, as it's 
described as "gore" anyway.

--------------------------------------------------------------------------------
e65f117311 | Darshan Shaligram | 2009-09-24 20:27:06 +0530

Set up a basic testing framework for LOS. ./crawl -test with a full debug build 
will run the test.

--------------------------------------------------------------------------------
383469b3ec | David Lawrence Ramsey | 2009-09-24 09:55:54 -0500

Add another sanity check for player ghosts.

--------------------------------------------------------------------------------
42c04eb9ff | David Lawrence Ramsey | 2009-09-24 09:50:51 -0500

Add more spelling fixes.

--------------------------------------------------------------------------------
3ed0f149cf | David Lawrence Ramsey | 2009-09-24 09:05:40 -0500

Apply jpeg's patch in [2865661] to fix the "unlinked item" bug with potions.

--------------------------------------------------------------------------------
54ea5f1b75 | David Lawrence Ramsey | 2009-09-23 22:55:25 -0500

Apply anonymous patch in [2865489]: Properly give draconian knights the 
M_ACTUAL_SPELLS flag, so that they can be silenced.

--------------------------------------------------------------------------------
503c03fb9d | David Lawrence Ramsey | 2009-09-23 21:55:00 -0500

Tweak Feawn's miscast wrath message.

--------------------------------------------------------------------------------
b0ed14492f | David Lawrence Ramsey | 2009-09-23 21:50:33 -0500

Add spelling fixes.

--------------------------------------------------------------------------------
b8e97166ca | David Lawrence Ramsey | 2009-09-23 21:19:57 -0500

Remove "The" from Nemelex's religios titles, as they're redundant now that 
they're displayed after "the" on the main screen.

--------------------------------------------------------------------------------
207ef163c1 | Darshan Shaligram | 2009-09-24 03:27:48 +0530

Merge branch 'master' of git://github.com/tycho/crawl

--------------------------------------------------------------------------------
f176a95f03 | j-p-e-g | 2009-09-24 02:58:10 +0530

* Also allow Maurice to steal the occasional spellbook or piece of   jewellery. 
* As per FR 1937144, leave a purple cloud if the player or a monster   blinks 
or teleports away. For some reason this doesn't yet work   correctly with 
scrolls of blinking, even though wizard blink (which   uses the same function) 
does work.
--
(from svn)

Signed-off-by: Darshan Shaligram <dshaligram@users.sourceforge.net>

--------------------------------------------------------------------------------
2e8eedbf48 | Darshan Shaligram | 2009-09-24 01:13:10 +0530

Explicitly link sqlite3 bundled with Crawl. (Jukka Kuusisto)
Avoid linker errors on systems with older libsqlite3 that don't have the
functions Crawl uses (Mac OS 10.4 for instance) by explicitly linking the
static lib we build in util/sqlite.

--------------------------------------------------------------------------------
307fc0a28c | Steven Noonan | 2009-09-23 11:34:37 -0700

README: give credit to libpng
libpng is used by SDL_image, and we make heavy use of the PNG
loader in particular.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
df8438dc4c | Steven Noonan | 2009-09-23 11:34:37 -0700

initfile.cc: improve accuracy of crawl_base variable
Windows, Mac OS X and Linux all provide handy ways to retrieve
the absolute path of the running executable. This is especially
useful since argv[0] can be a relative path.

This fixes a bug on the Mac OS X build where the app cannot
locate the graphics resources when when they're needed, so the
application bombs out instead.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
fc34e6860c | Steven Noonan | 2009-09-23 11:34:37 -0700

tilesdl.cc: search for PNG icon by using datafile_path()
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
1fee50da5c | Steven Noonan | 2009-09-23 11:34:37 -0700

.gitignore: ignore Xcode cruft
Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
85dbe64eec | Steven Noonan | 2009-09-23 11:34:36 -0700

SDLMain.{h,m}: added for Xcode builds
Mac OS X gets really cranky if you don't use this. Crashes,
memory leaks, etc.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
23fb764d62 | Steven Noonan | 2009-09-23 11:34:36 -0700

libunix.cc: remove textattr() from USE_TILE builds
USE_TILE builds instead pay attention to the textattr macro. Leaving
this function here causes a duplicate function declaration in such
builds.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ebd0ab27f1 | Steven Noonan | 2009-09-23 11:34:36 -0700

libunix.cc: add forward declarations where needed
unixcurses_{startup,shutdown}() and sighup_save_and_exit()
were used before they were declared/defined.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
ab835374e8 | Steven Noonan | 2009-09-23 11:34:36 -0700

libgui: fix declaration consistency
Lots of little things here. The forward declarations for some
of these functions simply did not match the function definitions.

 - clrscr() was declared twice
 - cprintf(), putch(), putwch(), window(), clrscr() all
   returned 'void' instead of 'int'.
 - getch() and strlwr() were defined extern "C", but not
   declared as such.

Also made libgui.cc functions behave like their ncurses equivalents,
except that our functions always return the ncurses 'OK' (0) response.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
215b4e4720 | Steven Noonan | 2009-09-23 11:34:36 -0700

directn.cc: fix GCC 4.0 warning "'me' may be used uninitialized in this 
function"
It's an inane warning, as it doesn't consider the loop immediately after
the declaration sets the value on the first iteration.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
4f63d90dfa | Steven Noonan | 2009-09-23 11:34:36 -0700

Xcode: Mac OS X build fixed
I was originally going to split this up into multiple patches, but
the Xcode project file format is a bit difficult to cleanly split
for patching. So anyway, I've made a few changes:

 - Fixed Xcode 3.2 compatibility (complaints about using GCC
   4.2 with the Mac OS X 10.4 SDK, among other things).
 - Removed the tilegen target (this is now done via a script)
 - Fixed the Crawl-tiles-cmd target
   + Now links to AppKit.framework and OpenGL.framework
   + Set the search path for the  SDL, SDL_image and libpng
     frameworks to be /Library/Frameworks, which is standard.
 - Fixed the Crawl target
   + Now copies the necessary non-standard frameworks to the
     Frameworks directory (this eliminates the dependency on
     Fink).
   + Eliminated a couple redundant or worthless steps which
     did things we really didn't need.
 - Added precompiled header support to the Crawl-cmd and
   Crawl-tiles-cmd targets.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
53187e6f7e | Steven Noonan | 2009-09-23 11:34:36 -0700

rltiles: add makefile.mac for Mac OS X builds
It deviates enough from the UNIX makefile that it really should
be separate.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>

--------------------------------------------------------------------------------
82cedf838d | dolorous | 2009-09-23 15:08:59 +0000

Comment fix.

--------------------------------------------------------------------------------
5d8703b59f | dolorous | 2009-09-23 15:07:55 +0000

Tweak (very) ugly things' proximity mutation rate again.

--------------------------------------------------------------------------------
4ca31e5ade | dolorous | 2009-09-23 14:48:25 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
9a6610aeb3 | dolorous | 2009-09-23 14:16:23 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
fd8a1db305 | j-p-e-g | 2009-09-22 23:45:08 +0000

Implement another new unique, this time of my own coding: Maurice the thief.
Equipment: a cloak, a dagger or short sword, and some gold.
Spells   : Blink, Invisibility, Teleport Self

Most importantly, in melee combat Maurice will try to steal items from
the player. Due to technical limitations he can only steal item types
monsters can carry and only if said item slot is still free. All
applicable items get weighted by item value, and if nothing is
applicable he will steal some gold instead. If even that isn't possible,
he'll complain a bit and teleport away.

Maurice is placed in the same depth as Gastronok. He's not actually
hard (except for the occasional weapon brand or wand), but rather
annoying. :p

Stealing from monsters hasn't been implemented, and I don't think it's
as interesting. Maurice is currently prevented from stealing items the
player has equipped, though I'm considering allowing him to steal a
wielded weapon, at least.
The limitations of monsters' inventories means that Maurice will never
attempt to steal armour (slot already filled) or jewellery (missing
slot). Maybe we could try to force valuable items into inappropriate but
rarely used slots, e.g. MSLOT_MISC. 

Other than in the FR (see 2838375) Maurice does not disappear from the
level, so you can still hunt him down. He also doesn't get a crossbow or
blowgun yet, though that's an interesting idea. However, handing out a 
secondary weapon would mean that he couldn't steal weapons either.

Doesn't have a tile yet, and I have no image of him in my head either.

--------------------------------------------------------------------------------
342644a1df | dolorous | 2009-09-22 15:21:55 +0000

Let player ghosts and random Pandemonium demons cast Airstrike.

--------------------------------------------------------------------------------
0650cb7c5d | j-p-e-g | 2009-09-22 10:42:23 +0000

Add new unique Gastronok (slug wizard), via a patch by bookofjude and some 
tweaks to make his speech and casting work correctly. Turns up around the same 
time as Erolcha and Grum.

--------------------------------------------------------------------------------
040d4ec8b5 | dploog | 2009-09-22 02:08:41 +0000

Add descriptions for trove and bailey.

--------------------------------------------------------------------------------
80a207adf4 | dolorous | 2009-09-22 01:55:58 +0000

Add a proper message for when the player isn't carrying any fruit.

--------------------------------------------------------------------------------
0550a5c505 | dolorous | 2009-09-22 01:50:59 +0000

Set proper SVN properties on trove.des.

--------------------------------------------------------------------------------
5ec9245724 | dploog | 2009-09-22 01:43:53 +0000

New portal vault: Trove by Jude. There is one issue: gold should never be part 
of the loot but I don't know how to get rid of it.

--------------------------------------------------------------------------------
33b24e66a7 | j-p-e-g | 2009-09-21 21:13:09 +0000

* Actually use the rock worm's corpse tile. * Tweak a few skill titles. * 
Update the change log (not for these, though).

--------------------------------------------------------------------------------
1b6bfb7856 | j-p-e-g | 2009-09-21 18:05:35 +0000

Apply a patch by an anonymous contributor to fix the bug with Lee's Rapid 
Deconstruction having no effect at low power.

--------------------------------------------------------------------------------
0e472a37cd | j-p-e-g | 2009-09-21 17:54:43 +0000

* Fix 2862312: examination of items in shops not working after buying           
     something * FR 2836364 : Make controlled blink contaminate the player. * 
Fix 2841232: display "very slow" in the % screen. * FR 2858960 : Re-add 
mouseover descriptions for previously seen (but                not detected) 
features out of sight, and for plain floor                the stash description 
like when using 'x'. * Disallow placement of corpses within walls, and allow 
rock worms to   leave corpses elsewhere. * Minor tweaks to the documentation.

--------------------------------------------------------------------------------
a36fd3f9f0 | dshaligram | 2009-09-21 08:23:35 +0000

Allow vaults to request use of the acquirement code with "acquire <item_class>" 
or "acquire:<god> <item_class>" in item specs (due).

--------------------------------------------------------------------------------
02c7a7e290 | dploog | 2009-09-21 04:43:43 +0000

Two Pan vaults by Adam, one of them very funky.

--------------------------------------------------------------------------------
84196d7271 | dolorous | 2009-09-20 23:51:45 +0000

Tweak (very) ugly things' flavor text again.

--------------------------------------------------------------------------------
620c30ae93 | dolorous | 2009-09-20 23:37:46 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
d3691fbcbf | j-p-e-g | 2009-09-20 23:15:10 +0000

Add some comments.

--------------------------------------------------------------------------------
edba7af2f7 | j-p-e-g | 2009-09-20 23:04:12 +0000

Small fix.

--------------------------------------------------------------------------------
08fc2cd40f | j-p-e-g | 2009-09-20 22:57:59 +0000

Tweak autoexplore and travel to try to avoid moving adjacent to unseen grids 
where monsters might be lurking waiting to instakill you, as suggested by 
Kenneth Boyd. Tested in wizard mode (though not in a test game) and it works 
really well.
The code currently uses a #define flag, in case anyone wants to try both
versions and compare, but I think it should either be replaced with a
proper option or removed entirely. Either way, the new behaviour should
be the default.

--------------------------------------------------------------------------------
240bb4a4cc | dolorous | 2009-09-20 21:29:26 +0000

Comment fix.

--------------------------------------------------------------------------------
e471ef1cad | dolorous | 2009-09-20 21:28:35 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
78972e9b4d | dolorous | 2009-09-20 21:23:45 +0000

Apply jokeserver's patch in [2862815] to properly handle polymorphed submerged 
monsters.

--------------------------------------------------------------------------------
76044b8181 | dolorous | 2009-09-20 21:14:13 +0000

Set proper SVN properties on bailey.des.

--------------------------------------------------------------------------------
ed0ffbc927 | j-p-e-g | 2009-09-20 20:00:21 +0000

And get rid of a debugging statement...

--------------------------------------------------------------------------------
19c33df1b5 | j-p-e-g | 2009-09-20 19:57:21 +0000

Fix exhaustion not slowing the player, unless hasted. Whoops!

--------------------------------------------------------------------------------
cb57dfea1e | j-p-e-g | 2009-09-20 19:50:18 +0000

* Fix wizmode autoexplore (used for debugging) not nuking traps, as it   
claimed to do. * Fix post-berserk exhaustion not cancelling haste if not 
wearing the "RS. * Update change log.

--------------------------------------------------------------------------------
bf3897048c | dploog | 2009-09-20 19:09:46 +0000

Added new portal vault, the bailey. (Together with Zaba.)

--------------------------------------------------------------------------------
fde0951850 | dolorous | 2009-09-20 18:51:12 +0000

Comment fix.

--------------------------------------------------------------------------------
06d2ccb54b | dolorous | 2009-09-20 18:50:43 +0000

Tweak ugly thing band generation a bit.

--------------------------------------------------------------------------------
4d6fbcb866 | dolorous | 2009-09-20 17:56:47 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2e6296a0b8 | dploog | 2009-09-20 17:36:14 +0000

Added three altars dedicated to Feawn. They have very high chances. This is 
temporary until the Temple system has been updated to cater for more than the 
12 apostles.

--------------------------------------------------------------------------------
eb8ca2e8a7 | dolorous | 2009-09-20 15:43:55 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
2762079790 | dolorous | 2009-09-20 15:39:41 +0000

Make (very) ugly things appreciate polymorph beams.

--------------------------------------------------------------------------------
5f61dbb68e | dolorous | 2009-09-20 14:53:28 +0000

Add spacing fix.

--------------------------------------------------------------------------------
250575fde2 | dolorous | 2009-09-20 14:52:00 +0000

Since there seems to be a connection between miasma and rotting, make death 
drakes immune to rotting.

--------------------------------------------------------------------------------
d9d67a71bc | dolorous | 2009-09-20 14:46:47 +0000

Convert asphyxiation resistance to a boolean, since you can either be 
asphyxiated or not.

--------------------------------------------------------------------------------
7f87a01c11 | dolorous | 2009-09-20 14:21:49 +0000

Remove guaranteed acid resistance for acid-flavored (very) ugly things, and add 
rotting resistance for rotting-flavored very ugly things.

--------------------------------------------------------------------------------
1db426b1b8 | dolorous | 2009-09-20 14:19:42 +0000

Add monster-specific rotting resistance.

--------------------------------------------------------------------------------
913179f028 | dolorous | 2009-09-20 14:09:25 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
40c5f6d3c6 | dolorous | 2009-09-20 13:34:06 +0000

Comment fixes.

--------------------------------------------------------------------------------
db5e9bc8f1 | dolorous | 2009-09-20 03:38:06 +0000

Add weapon blessing fixes.  Use a delay when in console mode for both TSO and 
Lugonu so that the latter's flash can be seen.  Also, make Lugonu's flash 
magenta instead of red to match his altar.

--------------------------------------------------------------------------------
940470ac0a | dolorous | 2009-09-19 19:53:05 +0000

Tweak (very) ugly things' mutation messages.

--------------------------------------------------------------------------------
c0f0bfa066 | dolorous | 2009-09-19 19:28:08 +0000

After some thought, put (very) ugly things' healing from mutation back in, but 
still leave their maximum hit points alone when doing so.

--------------------------------------------------------------------------------
00b182be47 | dolorous | 2009-09-19 18:58:40 +0000

Make (very) ugly things no longer heal all damage when they mutate.

--------------------------------------------------------------------------------
d91ad5d1d2 | dolorous | 2009-09-19 18:34:09 +0000

Make sure (very) ugly things never resist polymorph beams.

--------------------------------------------------------------------------------
5904e93aa4 | dolorous | 2009-09-19 17:46:25 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
8b5ae1fa03 | j-p-e-g | 2009-09-19 15:08:37 +0000

Add Mitsuhiro's new kraken tiles, slightly modified to make them work with the 
water overlays. Experimentally disallow krakens (heads) to be placed in or move 
into shallow water. If the player wants to get rid of the source of all those 
tentacles he'll have to use ranged combat/spells or face the disadvantage of 
standing inside shallow water.

--------------------------------------------------------------------------------
c14bc1d072 | dolorous | 2009-09-19 14:13:03 +0000

Comment fixes.

--------------------------------------------------------------------------------
ad5274e3ea | dolorous | 2009-09-19 14:12:14 +0000

And guarantee vampires only one level of unarmed combat instead of two.

--------------------------------------------------------------------------------
456697f9cf | dolorous | 2009-09-19 14:08:12 +0000

Allow the player to train only one level of fighting/unarmed combat by 
attacking e.g. plants and fungi.

--------------------------------------------------------------------------------
25cccfde93 | evktalo | 2009-09-19 12:52:42 +0000

For flavour (and following his description), give Grum an animal skin instead 
of a proper piece of armour. (patch by due)

--------------------------------------------------------------------------------
be1aec14ba | evktalo | 2009-09-19 09:49:59 +0000

In an attempt to make bears not both rare and unremarkable, they now often 
berserk when fleeing. Uses berserk rage as an escape "spell". No changes to 
vaults (esp. Ice Caves) yet, the situation is being monitored. (patch by due)

--------------------------------------------------------------------------------
abdd6971bd | dolorous | 2009-09-19 04:52:12 +0000

Tweak proximity mutation chance for very ugly things.

--------------------------------------------------------------------------------
dfb1347f58 | dolorous | 2009-09-19 04:37:16 +0000

Allow (very) ugly things to sometimes mutate when near other (very) ugly things.

--------------------------------------------------------------------------------
5062f0ba97 | dolorous | 2009-09-19 04:35:38 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
250f0154be | dolorous | 2009-09-18 22:54:01 +0000

Add formatting fixes.

--------------------------------------------------------------------------------
d36257deff | dolorous | 2009-09-18 17:49:14 +0000

Ensure that mutated very ugly things always get a different color from before.

--------------------------------------------------------------------------------
7859ec7d10 | dolorous | 2009-09-18 17:43:28 +0000

Simplify.

--------------------------------------------------------------------------------
9343efdd70 | dolorous | 2009-09-18 17:31:44 +0000

Comment fix.

--------------------------------------------------------------------------------
e685572907 | dolorous | 2009-09-18 17:30:17 +0000

Fix polymorphing of (very) ugly things: When polymorphed, they now mutate into 
(very) ugly things of a different color.  Also, shapeshifters can no longer 
take their forms, and they can no longer be made shapeshifters themselves.

--------------------------------------------------------------------------------
55808ceb59 | dolorous | 2009-09-18 16:41:09 +0000

Update the "Summon Ugly Thing" spell description.

--------------------------------------------------------------------------------
f9dfefeb37 | dolorous | 2009-09-18 16:38:01 +0000

Since (very) ugly things are now considered chaotic, mark "Summon Ugly Thing" 
as a chaotic spell.

--------------------------------------------------------------------------------
17fbf0ea44 | dolorous | 2009-09-18 15:59:13 +0000

For flavor, add a gurgling sound, and make (very) ugly things use it.

--------------------------------------------------------------------------------
878fa9a7fa | dolorous | 2009-09-18 15:55:47 +0000

Comment fixes.

--------------------------------------------------------------------------------
9fecf22f4e | dolorous | 2009-09-18 14:43:36 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
a34374ed7d | dolorous | 2009-09-18 14:31:29 +0000

Remove inaccurate comment.

--------------------------------------------------------------------------------
1c59fb1479 | j-p-e-g | 2009-09-18 09:56:54 +0000

Don't treat electric eels as safe just because they're aquatic.

--------------------------------------------------------------------------------
30335e8ff7 | j-p-e-g | 2009-09-18 09:28:48 +0000

Switch (temporary) tiles for potions of brilliance and agility, fixing BR 
2861061.

--------------------------------------------------------------------------------
9f751c796f | dolorous | 2009-09-18 06:52:42 +0000

Implement part of [2837033]: Randomize colors, resistances, and attack 
types/flavors for ugly things.  They now use the ghost_demon struct, expanded 
to account for these characteristics.

--------------------------------------------------------------------------------
a06edf5979 | dolorous | 2009-09-18 06:24:45 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
30c7c25e95 | dolorous | 2009-09-18 04:20:57 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
e10520f2d6 | dolorous | 2009-09-18 01:42:32 +0000

And really fix it this time.

--------------------------------------------------------------------------------
db1ef99998 | dolorous | 2009-09-18 01:39:45 +0000

And display the sticky flame boolean properly.

--------------------------------------------------------------------------------
85643d2e20 | dolorous | 2009-09-18 01:37:57 +0000

Display acid and sticky flame resistance in the debugging stethoscope.

--------------------------------------------------------------------------------
90f4f82c22 | dolorous | 2009-09-17 22:51:22 +0000

Fix typo.

--------------------------------------------------------------------------------
05f54cec19 | dolorous | 2009-09-17 22:42:42 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
aeb4ec07c4 | j-p-e-g | 2009-09-17 22:04:34 +0000

Add a check for whether a monster with water habitat can reach the player and 
only consider such monster unsafe if there is a path. Replace the old 
runrest_ignore_monster checks for aquatic monsters with this one, which has the 
side effect of being nicer to Merfolk.

--------------------------------------------------------------------------------
d636d3368b | dolorous | 2009-09-17 21:04:04 +0000

Simplify further.

--------------------------------------------------------------------------------
04a7ba1ee4 | dolorous | 2009-09-17 20:56:13 +0000

Simplify.

--------------------------------------------------------------------------------
2c81cf635d | dolorous | 2009-09-17 20:41:24 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
f05c7abfcc | dolorous | 2009-09-17 20:36:26 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
175a84aa52 | dolorous | 2009-09-17 18:19:51 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
7879563f94 | dolorous | 2009-09-17 18:04:08 +0000

Add one last minor cosmetic fix.

--------------------------------------------------------------------------------
119b661460 | dolorous | 2009-09-17 17:26:49 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
21575938a2 | dolorous | 2009-09-17 17:17:58 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
bc4b49b3bd | dolorous | 2009-09-17 16:18:41 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
e06f39be10 | j-p-e-g | 2009-09-17 16:15:20 +0000

Add the most recent version of Adam's kraken patch into trunk. Might still need 
some tweaks but overall looks great!
And... we need more tiles (kraken head + tentacles).

--------------------------------------------------------------------------------
58fadd8bee | j-p-e-g | 2009-09-17 11:03:36 +0000

* Fix 2860301: armour acquirement failing when transformed. * Fix 2829495: 
certain missiles and large weapons not being marked as useless. * Post-berserk 
exhaustion cancels Haste even wearing an amulet of RS. If you've   got a lot of 
speed piled up it will last 2-3 more turns, but that's it. * Make tiles spell 
clicking use Z rather than z behaviour. (Assuming that   mindless mouseclicks 
are more difficult to do than mindless keyboard   bashing. That, and macros 
don't take into account mouseclicks.)

--------------------------------------------------------------------------------
43d9191f4b | j-p-e-g | 2009-09-16 19:46:22 +0000

Experimentally use Denzi and/or Mitsuhiro's water tiles for the Shoals. It's 
possible that they make the water look too busy, but maybe I only need to get 
used to it. Also add some more alternative tiles for the plain dungeon floor 
and walls, and move around some spell tiles again.
Also fix 2844278: melding stacks stat bonuses for Merfolk.
Update change log for the starting stat and exclusion changes.

--------------------------------------------------------------------------------
c66ef96bf7 | dshaligram | 2009-09-16 14:57:39 +0000

Fix assert triggered when ziggurat levels are generated (syllogism).

--------------------------------------------------------------------------------
e00f724da4 | dploog | 2009-09-16 14:40:58 +0000

By popular demand and taking pointers from DC4.1 and DCSS0.1, reduce AC of gold 
dragon armour (by 2) and of gold dragon hide (by 1) without any compensation.

--------------------------------------------------------------------------------
b66a2f98a7 | dshaligram | 2009-09-16 14:01:21 +0000

[2860010] Fix crash fetching annotations (rob). Crash dumps for the win!

--------------------------------------------------------------------------------
3791572ef7 | j-p-e-g | 2009-09-16 07:32:25 +0000

Rearrange some tiles, add some alternative tiles into the UNUSED folder.

--------------------------------------------------------------------------------
aa62dae1b9 | j-p-e-g | 2009-09-15 20:15:24 +0000

Apply castamir's antiscum patch. Except for Wanderers, starting stats, skills 
and equipment enchantment are now fixed, as are hp gains when leveling. (Stat 
gains during level up are still random.)
Thank you!

--------------------------------------------------------------------------------
d1f97f2a95 | j-p-e-g | 2009-09-15 19:34:34 +0000

Also document that the Wild Magic card can turn up in decks of changes.

--------------------------------------------------------------------------------
4dddf114ec | dshaligram | 2009-09-15 11:35:10 +0000

[2857812] Fix crash on entering portal vaults (my bad).

--------------------------------------------------------------------------------
325516c607 | j-p-e-g | 2009-09-15 11:02:27 +0000

Smarter exclusions, yay! * Exclusions are now treated similarly to annotations 
and automatically   added to the overmap (with the monster name if centered on 
a monster). * Exclusions remember whether they were placed automatically and if 
so,   what monster triggered it. * If a grid that was previously autoexcluded 
comes back into sight and no   longer contains the monster that triggered the 
autoexclusion (dead,   moved away or invisible), the autoexclusion is removed 
again.
I updated the tags, so it should be save compatible but I'm not making
any promises.

Also fix the Wild magic card not being documented correctly.

--------------------------------------------------------------------------------
298c1e905c | j-p-e-g | 2009-09-14 23:15:56 +0000

Fix 2841668: Crawl segfaulting when attempting to use mpr() within the 
DollEditRegion. Also, if the target file (dolls.txt) within settings/ is 
writing protected create the file locally instead.

--------------------------------------------------------------------------------
94530c7cbe | j-p-e-g | 2009-09-14 20:23:08 +0000

Jump from the memorisation display back to spells if you cannot memorise any 
further spells.

--------------------------------------------------------------------------------
33bfc8a3d4 | j-p-e-g | 2009-09-14 15:20:59 +0000

Fix multiple mouseclicks causing the same spell to be memorised several times.

--------------------------------------------------------------------------------
a58a578813 | j-p-e-g | 2009-09-14 14:25:03 +0000

Fix 2858572: tiles spell memorisation crashes. Also handles dangerous 
spellbooks correctly now, prompts and all.

--------------------------------------------------------------------------------
ce630aeacd | dolorous | 2009-09-14 12:37:50 +0000

Properly set SVN properties on tiles_creation.txt.

--------------------------------------------------------------------------------
3f413ab79f | j-p-e-g | 2009-09-14 12:32:31 +0000

* Show item type shortcuts in inventory. I think it's too intrusive for   ASCII 
even though it works well in tiles. * Always display memorise button because 
it's less confusing that way. I   still can't work out why the error messages 
disappear right away. *sighs* * Add a short document on tiles creation.

--------------------------------------------------------------------------------
72d421a986 | j-p-e-g | 2009-09-13 21:20:59 +0000

A bug fix commit! (I didn't do one of these in a while...)
* 2856912: being turned into a pig while berserk complaining about being
           "too berserk" when unequipping the weapon
* 2849963: shields working even when melded
* 2845355: melded equipment not being affected by remove curse
* 2836148: disallow toggle_with_I if you've got a spell on 'I'

--------------------------------------------------------------------------------
280d409759 | j-p-e-g | 2009-09-13 16:04:24 +0000

Commit several patches: * patch 2849505 by weyrava: make submerged monsters use 
the correct colour * patch 2857771 by caotto:  another Feawn update * patch 
2838771 by camedo:  add potions of brilliance/agility * BR 2841651 by 
bookofjude: allow Merfolk to control-tele into deep water
Now we need tiles for the new potions!

--------------------------------------------------------------------------------
8b4a043aa1 | j-p-e-g | 2009-09-13 14:25:59 +0000

Add the last missing spell tiles. Update change log.

--------------------------------------------------------------------------------
1166a9ad59 | j-p-e-g | 2009-09-13 12:08:52 +0000

Add tiles for Stonemail, Phase Shift and Portal Projectile.
Still missing: Warp Weapon, Death's Door and Summon Ugly Thing.

--------------------------------------------------------------------------------
df1ad0a3b4 | j-p-e-g | 2009-09-13 10:50:38 +0000

Shorten Lair to 8 levels.
In monster generation I collapsed monsters of Lair:1-2 to Lair:1 and Lair:3-4 
to Lair:2, with the rest following as usual. Monster weights have *not* been 
changed.

The subbranch entrances are now as follows:
Swamp/Shoals: 2-5
Snake       : 3-6
Slime Pits  : 5-8

--------------------------------------------------------------------------------
bfa4a6fb7a | ennewalker | 2009-09-13 00:50:59 +0000

Adding base images used in many of the existing spell images.

--------------------------------------------------------------------------------
85c5db55c0 | dolorous | 2009-09-12 20:17:53 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
48bd58131a | dolorous | 2009-09-12 20:16:52 +0000

Fix an error I accidentally introduced when tweaking the previous patch.

--------------------------------------------------------------------------------
dbef5aed8b | j-p-e-g | 2009-09-12 20:02:32 +0000

Apply Markus Maier's patch to add missing descriptions to several features, 
most importantly altars.

--------------------------------------------------------------------------------
5324e92872 | j-p-e-g | 2009-09-12 19:25:13 +0000

Adapt Matthew's new memorisation interface for tiles, using the same display as 
for spellcasting. Also force a redraw() if the player clicked on a spell.

--------------------------------------------------------------------------------
1eee7e398b | dolorous | 2009-09-12 18:54:14 +0000

Apply caotto's patch in [2853994] to overhaul wanderers, with a few tweaks.

--------------------------------------------------------------------------------
c9a8223e94 | dolorous | 2009-09-12 16:33:06 +0000

Comment fixes.

--------------------------------------------------------------------------------
1d8171ac35 | dolorous | 2009-09-12 14:37:24 +0000

Apply kotk's patch to make e.g. Zin properly care about ally deaths again.

--------------------------------------------------------------------------------
0e291587ce | dolorous | 2009-09-12 02:07:59 +0000

Tweak probability of harpies' eating off the floor again.

--------------------------------------------------------------------------------
8cc9699166 | j-p-e-g | 2009-09-11 22:46:43 +0000

Reassign some of the spell tiles.

--------------------------------------------------------------------------------
2d4d6508f4 | j-p-e-g | 2009-09-11 21:35:05 +0000

Add a button to memorise spells to the new spell display. All this does at the 
moment is call learn_spell(), but I'm planning to reuse the spell display for 
this purpose.

--------------------------------------------------------------------------------
0f0706a062 | dolorous | 2009-09-11 13:25:15 +0000

Add one more changelog update.

--------------------------------------------------------------------------------
c05e097028 | j-p-e-g | 2009-09-11 13:03:14 +0000

Move around a couple of spell tiles, reorder spells in the tiles code, and 
document the missing tiles. Also add a tile for small skeletons, and update the 
change log.

--------------------------------------------------------------------------------
1fcba9f392 | ennewalker | 2009-09-11 03:29:42 +0000

...and draw these new spell tiles too.

--------------------------------------------------------------------------------
96c783237f | ennewalker | 2009-09-11 02:51:00 +0000

Adding spell images, rltiles build script, and a tileidx_spell function.  There 
are quite a few spells that don't have images (marked as TODO in tileidx_spell) 
and about three images that are named "unknown" because I can't figure out what 
they map to.

--------------------------------------------------------------------------------
64c2a308e7 | j-p-e-g | 2009-09-10 22:21:17 +0000

Some tweaks to the FAQ file.

--------------------------------------------------------------------------------
af7fe6ad37 | j-p-e-g | 2009-09-10 21:34:21 +0000

Display spell cost, success chance, schools, power, range, and hunger in the 
new tiles display (in the title, quantity, mouse-over description, and 
right-click description).

--------------------------------------------------------------------------------
1d23ad9eae | j-p-e-g | 2009-09-10 15:58:46 +0000

Add an inventory-like region for the Tiles version to make spells clickable. 
'_' toggles between inventory and spell display. Actual tiles are still 
missing, but everything works as it should.

--------------------------------------------------------------------------------
383d392c17 | j-p-e-g | 2009-09-10 11:13:10 +0000

Make sure toadstools don't pop up on really fresh corpses.

--------------------------------------------------------------------------------
f9a588e063 | dploog | 2009-09-09 03:33:10 +0000

Add Jiyva altar to Slime:6. Also made two small Slime entry vaults featuring 
the altar.

--------------------------------------------------------------------------------
4d0788ea36 | dshaligram | 2009-09-08 10:26:26 +0000

[2854085] Qualify multiple matches in a stack with (+extra) instead of (n) in 
stash search listings. Still somewhat confusing.

--------------------------------------------------------------------------------
49eed80f31 | dshaligram | 2009-09-08 10:25:19 +0000

Fix g++ complaining about using a non-literal string without a format string.

--------------------------------------------------------------------------------
7833d2e154 | dolorous | 2009-09-08 04:38:44 +0000

Remove misplaced semicolon noticed by Steven Noonan.

--------------------------------------------------------------------------------
21e9c510e9 | dolorous | 2009-09-08 02:13:18 +0000

Remove the debugging routine to give a corpse to a monster, as it no longer 
works after the introduction of the monster eating type.

--------------------------------------------------------------------------------
fe9dbbfe11 | dolorous | 2009-09-08 01:29:02 +0000

Fix [2852805]: Repair contradictory Stoneskin description.

--------------------------------------------------------------------------------
0e33755da2 | dolorous | 2009-09-08 00:54:06 +0000

Add a monster ability to eat food (including corpses), and let harpies have it.

--------------------------------------------------------------------------------
37750174d0 | dolorous | 2009-09-07 23:37:38 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5ced5e9448 | dolorous | 2009-09-07 23:06:57 +0000

Comment fix.

--------------------------------------------------------------------------------
8ea8e8c042 | dolorous | 2009-09-07 22:56:45 +0000

And fix it again.

--------------------------------------------------------------------------------
81162e9ea1 | dolorous | 2009-09-07 22:48:31 +0000

Simplify still further.

--------------------------------------------------------------------------------
d0ae1d8149 | dolorous | 2009-09-07 22:46:18 +0000

Simplify further.

--------------------------------------------------------------------------------
5fc42c0902 | dolorous | 2009-09-07 22:39:30 +0000

Simplify.

--------------------------------------------------------------------------------
a51cc596c6 | dolorous | 2009-09-07 22:39:15 +0000

Add sanity check to make sure that monsters that can eat items but not use 
weapons or armor don't do the latter.

--------------------------------------------------------------------------------
a65d6f746d | dolorous | 2009-09-07 17:44:15 +0000

And really fix it this time.

--------------------------------------------------------------------------------
aa6e21e491 | dolorous | 2009-09-07 17:41:25 +0000

Make monsters that both use items and eat able to do both again (oops).

--------------------------------------------------------------------------------
3ebe016492 | dolorous | 2009-09-07 17:29:36 +0000

Decouple monsters' item pickup ability from their eating ability, and properly 
generalize the checks for item-eating monsters.
Currently, monsters' eating abilities are restricted to items (jelly 
types) and corpses (necrophagi, ghouls, and hungry ghosts; the last can 
eat corpses in some legends).  It should probably be extended to harpies 
at some point, too.

--------------------------------------------------------------------------------
6bfc79d735 | dolorous | 2009-09-07 15:24:08 +0000

Add missing space.

--------------------------------------------------------------------------------
bebc8dc174 | dshaligram | 2009-09-06 13:21:09 +0000

Fix explore being confused by exclusions containing items on the edge of the 
exclusion (elliptic).

--------------------------------------------------------------------------------
e5d67a7291 | dolorous | 2009-09-05 13:55:22 +0000

For Feawn, really fix neutralization of giant spores.

--------------------------------------------------------------------------------
08935d76ee | dolorous | 2009-09-05 12:43:12 +0000

Apply caotto's fungus lifecycle patch in [2850879].

--------------------------------------------------------------------------------
722e5bdfcc | evktalo | 2009-09-05 08:54:56 +0000

Applying patch #2842856 by ?:
* Much better descriptions for several uniques (including removal of "evil" if 
not really evil)
* Jessica gets Pain instead of Magic Dart (so she's actually evil now, in the 
Crawl sense of the word) - might make her more dangerous
* More diverse eating habits for Prince Ribbit

--------------------------------------------------------------------------------
aeca9bf5b9 | dolorous | 2009-09-04 17:10:37 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
3426bfa520 | evktalo | 2009-09-04 16:58:08 +0000

Call Canine Familiar only calls friendly canines (plus changelog update on the 
summon changes).

--------------------------------------------------------------------------------
459a7d4171 | dolorous | 2009-09-04 12:28:38 +0000

Apply caotto's patch in [2850890] to display the lowest piety level title in 
the "^" screen for players under penance.

--------------------------------------------------------------------------------
5dbcbe0214 | dolorous | 2009-09-03 22:03:40 +0000

Add noise levels for sound-related random uselessness messages, hell effect 
messages, and spell miscast messages.

--------------------------------------------------------------------------------
6a1119f3d9 | dolorous | 2009-09-03 22:01:48 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a7b1591e9f | dolorous | 2009-09-03 16:19:50 +0000

Add Jiyva to the list of chaotic gods for Zin's recital.

--------------------------------------------------------------------------------
2c742f802e | dolorous | 2009-09-03 16:05:09 +0000

Apply caotto's Feawn evolution update patch in [2841648], with a few tweaks.

--------------------------------------------------------------------------------
50bbaa43b8 | dploog | 2009-09-03 00:41:59 +0000

Make Arthur legend vault's teleport trap known. (##crawl group pressure)

--------------------------------------------------------------------------------
491d02a8ca | dploog | 2009-09-02 22:43:32 +0000

Fixed Duvessa speech (greensnark, due).

--------------------------------------------------------------------------------
c0bd71d416 | dploog | 2009-08-30 05:37:13 +0000

A few vault tweaks.

--------------------------------------------------------------------------------
a2d508911c | dshaligram | 2009-08-30 04:51:20 +0000

Change master archers to speed 10, attack cost 60%, as discussed with dpeg.

--------------------------------------------------------------------------------
b3b450db6b | dshaligram | 2009-08-30 03:54:24 +0000

Allow adding amount=X property to timed markers to make them timed toll markers 
(due).

--------------------------------------------------------------------------------
251e99167c | dshaligram | 2009-08-30 03:53:40 +0000

Fix labyrinths being unable to place minotaur vaults.

--------------------------------------------------------------------------------
1a5a0bf789 | j-p-e-g | 2009-08-28 19:41:00 +0000

Apply patch by (?) to make Apportation autotarget the nearest object. Thanks!

--------------------------------------------------------------------------------
717609abca | evktalo | 2009-08-28 06:51:23 +0000

Make Duvessa and Dowan not appear so early. (due)

--------------------------------------------------------------------------------
3f60fc2466 | dploog | 2009-08-26 19:34:22 +0000

Set rarity of the slow healing mutation to 0. It is now only available to Deep 
Dwarves.

--------------------------------------------------------------------------------
58e99626af | evktalo | 2009-08-25 16:05:10 +0000

Fix temple_eino_001 not having any altars.

--------------------------------------------------------------------------------
be578dbaa7 | evktalo | 2009-08-24 18:02:18 +0000

Mark all monster vampires with M_ACTUAL_SPELLS so they give Trog piety. (cbus)

--------------------------------------------------------------------------------
d903e4a65a | evktalo | 2009-08-24 17:35:15 +0000

Make walls in the cloud arrival vaults rock instead of stone.

--------------------------------------------------------------------------------
a8d6758179 | dolorous | 2009-08-24 15:03:16 +0000

Attempt to fix [2842867] by holding off one more death event properly in case a 
monster avoided death.

--------------------------------------------------------------------------------
a09593da82 | evktalo | 2009-08-24 15:02:26 +0000

Add a bit more lava where I forgot to do so.

--------------------------------------------------------------------------------
5889305ca4 | evktalo | 2009-08-24 15:00:33 +0000

Tweaked temple_eino_001, especially the bit where you teleport and get stuck. 
(eithelonnen)

--------------------------------------------------------------------------------
c693a42ee3 | dolorous | 2009-08-23 22:20:06 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9c6fd880e9 | evktalo | 2009-08-22 19:45:59 +0000

Slight changelog tweak.

--------------------------------------------------------------------------------
ac8c760ef0 | dolorous | 2009-08-22 19:20:12 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d0d9e361b5 | dolorous | 2009-08-22 18:23:47 +0000

Typo fix.

--------------------------------------------------------------------------------
037334b111 | evktalo | 2009-08-22 17:11:53 +0000

Implement FR#2365870: Hill Orcs as dirty fighters by giving them aptitude 70 in 
Stabbing. (Their Stealth apt is 150). Also adjust their Summoning aptitude from 
120 to 100 in trying to make HOSu attractive. This is a buff to an already 
strong race, but they got their MR lowered (still experimentally) in r10467 
along with MD, while being weaker of the two. These changes differentiate HO 
and MD a bit. The downside is that HOPr benefit from this boost without really 
needing a buff.
Also adjust manual regarding the changes in this commit and in r10467.

--------------------------------------------------------------------------------
91a2a28940 | dshaligram | 2009-08-22 02:23:08 +0000

Fix Shoal:5 not being generated.
Reinstate the distinction between minivaults and regular vaults when placing
maps based on PLACE:, because minivaults cannot be placed before the rest of
the level is built.

Change Shoal huts to be picked by tag instead of PLACE.

Allow DEPTH: to use branch:$.

--------------------------------------------------------------------------------
918de5413f | j-p-e-g | 2009-08-21 14:16:02 +0000

Another minor doll edit screen tweak.

--------------------------------------------------------------------------------
b9982a4998 | evktalo | 2009-08-21 10:48:27 +0000

In init.txt, on as default: force_more_message = You fall through a shaft

--------------------------------------------------------------------------------
85644ab4f6 | evktalo | 2009-08-20 18:10:27 +0000

Use female pronouns for Duvessa. (due)

--------------------------------------------------------------------------------
1840649561 | dolorous | 2009-08-20 14:37:25 +0000

For flavor, add a tentacle-slap attack, and have tentacled monstrosities use it.

--------------------------------------------------------------------------------
861d9a16ef | dolorous | 2009-08-20 14:31:35 +0000

Add missing empty final attack for tentacled monstrosities.

--------------------------------------------------------------------------------
d89b964876 | j-p-e-g | 2009-08-20 10:10:42 +0000

Tweak the doll edit screen some more.

--------------------------------------------------------------------------------
3b258c759a | dploog | 2009-08-20 01:23:20 +0000

Update Credits.

--------------------------------------------------------------------------------
f76829ed22 | zelgadis | 2009-08-19 21:59:45 +0000

A KFEAT specified trap can start out known to the player by adding "known" to 
the trap name.

--------------------------------------------------------------------------------
b7fc7189b8 | zelgadis | 2009-08-19 21:51:22 +0000

Make dungeon_terrain_changed() not destroy traps when the feature is changing 
*into* a trap, so that Trowel cards and the "&L" wiz command can place traps.

--------------------------------------------------------------------------------
dc1341888c | j-p-e-g | 2009-08-19 15:22:26 +0000

Fix draconians not being handled correctly in the doll edit screen.

--------------------------------------------------------------------------------
3094252140 | evktalo | 2009-08-19 14:55:09 +0000

Apply patch #2838024 by bookofjude: new Elven twins uniques, Duvessa and Dowan. 
I'll do the tiles later.

--------------------------------------------------------------------------------
a0ac735b25 | zelgadis | 2009-08-19 12:54:24 +0000

Prevent "make item by name" wiz command from crashing if the string entered 
partially matches "dummy unrandart".

--------------------------------------------------------------------------------
9466d49676 | j-p-e-g | 2009-08-19 11:31:09 +0000

More doll changes: * Restrict BASE to species-fitting dolls after all. (We may 
want to add this once we've worked out a way to distinguish between 
species-dependent differences, and those the player wishes to apply to all 
characters. For now, it's just terribly confusing to have all characters look 
like Centaurs just because I prefer the brown tiles over the grey ones.) * 
Allow the old gnome tiles as alternative for Mountain Dwarf. * Using Enter in 
the doll menu confirms the current choice and automatically   changes equip to 
the current index and mode to custom.

--------------------------------------------------------------------------------
5d470f5b5e | j-p-e-g | 2009-08-19 09:45:08 +0000

Add more doll tiles: differently coloured Centaurs, Nagas, Demonspawn, wingless 
Kenku, and a few more hair styles.

--------------------------------------------------------------------------------
bb06ee5d09 | j-p-e-g | 2009-08-19 09:07:57 +0000

Disallow choice of "none" for species/base in the doll edit screen.

--------------------------------------------------------------------------------
70f67f351c | zelgadis | 2009-08-19 09:05:18 +0000

C code for Chapayev's and Eino's request for a wall mounted "switch": if the 
player takes a swing at a solid grid (ctrl-direction at it), or it's hit by a 
solid-ish beam (normal thrown item, Magic Dart, etc), then a "wall hit" dungeon 
event will be issued for that square; a Lua marker can listen to that event to 
implement a switch/lever/button.
No Lua glue or Lua convenience classes yet.

--------------------------------------------------------------------------------
9095c0dff2 | dploog | 2009-08-19 04:45:33 +0000

FR 2823681: Mention ssh to cao and also ##crawl in the manual.

--------------------------------------------------------------------------------
675337f432 | ennewalker | 2009-08-19 01:43:58 +0000

Link non-standard libraries statically on OS X.  This should prevent players 
from needing to install fink to run the executable.

--------------------------------------------------------------------------------
010c4ac823 | j-p-e-g | 2009-08-18 21:07:04 +0000

Tweak the doll edit screen.

--------------------------------------------------------------------------------
dc5faea665 | ennewalker | 2009-08-18 13:53:14 +0000

Fixing blurriness on some tiles textures.  This may fix the related issue on SF.

--------------------------------------------------------------------------------
1f0b02a561 | ennewalker | 2009-08-18 13:46:12 +0000

Reimplementing playing with dolls ('-' command).  Keys are mostly the same as 
the 0.4 version and are documented.
Dolls are no longer limited in what features they can force, so your character 
can always look like a flaming centaur with wings if that's how you want to 
present yourself.

This shouldn't cause any major breakage with save games or dolls.txt files, 
although expect some weirdness.  Sorry.

Also, fixed a bug where barding wasn't appearing on nagas or centaurs.

--------------------------------------------------------------------------------
cec34e68c2 | evktalo | 2009-08-18 12:44:27 +0000

ossuary_due_mausoleum tweaks from due.

--------------------------------------------------------------------------------
a7af3aa2e3 | dolorous | 2009-08-18 11:54:32 +0000

Apply bookofjude's patch in [2837552] to fix "-um" pluralization issues.

--------------------------------------------------------------------------------
5387461d1c | dolorous | 2009-08-18 11:39:19 +0000

Apply bookofjude's patch in [2838117] to fix unique in-band placement issues.

--------------------------------------------------------------------------------
22cfebd4a9 | dolorous | 2009-08-18 11:16:48 +0000

Apply caotto's other patch in [2839372], with a few tweaks, to improve 
Feawn-related descriptions.

--------------------------------------------------------------------------------
c0e2f5481a | dolorous | 2009-08-18 11:08:08 +0000

Simplify.

--------------------------------------------------------------------------------
9df4c3a097 | dolorous | 2009-08-18 11:05:49 +0000

Really fix compilation.

--------------------------------------------------------------------------------
194faab70e | dolorous | 2009-08-18 10:58:33 +0000

Fix compilation.

--------------------------------------------------------------------------------
2066dddf7e | dolorous | 2009-08-18 10:53:01 +0000

Apply caotto's patch in [2839372], with a few minor tweaks, to fix a few issues 
with Feawn's evolution ability.

--------------------------------------------------------------------------------
badc21cfcd | zelgadis | 2009-08-18 10:44:12 +0000

FR 2810959: If a player reads a spellbook which is in inventory, then looks at  
   a spell's description, pressing 'M' will try to memorise that spell from     
that particular book.
FR 2815575: Instead of moving "spell levels left" to the top of the spell
    memorisation menu, make it light-green in color.

--------------------------------------------------------------------------------
2a67f62a9a | evktalo | 2009-08-17 13:56:32 +0000

Fix deprecated F symbol.

--------------------------------------------------------------------------------
8bbcc20e01 | evktalo | 2009-08-17 11:54:10 +0000

Add Elf and Vaults into DEPTHs of some ice cave entries, in order to generate 
them earlier in a game where the player doesn't descend to at least D:20 before 
going to those branches. Use Elf:2-6 to be kind to those who check out Elf:1 
early and possibly back away because of the arrival vault.

--------------------------------------------------------------------------------
d00853ac97 | j-p-e-g | 2009-08-16 18:03:35 +0000

Use Jude's nicer messages for the Phase Shift spell.

--------------------------------------------------------------------------------
614cdcf042 | j-p-e-g | 2009-08-16 17:24:46 +0000

As per FR 2795134, nerf damage reduction of elemental resistances. Damage is 
now reduced to 50% (level 1, unchanged), 33% (level 2, was 20%), and 20% (level 
3, was 10%), respectively.
This only applies to players, monster resists are unchanged. The purpose of 
this change is to make the mid and late game harder without unduly affecting 
the early game.

--------------------------------------------------------------------------------
761776ba73 | dploog | 2009-08-15 17:41:38 +0000

Sometimes use glass stone in the Crypt:5 vault with caged liches. (greensnark)

--------------------------------------------------------------------------------
16adb3598b | evktalo | 2009-08-15 10:39:21 +0000

Add FIXME to a comment.

--------------------------------------------------------------------------------
bfc61563ad | evktalo | 2009-08-15 10:15:23 +0000

First part of implementing FR#2831931: Special messages when entering the 
unique pan lords' levels.

--------------------------------------------------------------------------------
314ae3993b | dploog | 2009-08-15 06:15:11 +0000

Added Menkaure speech (Jude).

--------------------------------------------------------------------------------
aa1f92eea0 | dploog | 2009-08-15 04:14:48 +0000

Remove luniq_zig tag from ziggurat portals vaults in Pan, so that more than 
four ziggurats can occur in Pan. (zipcode)

--------------------------------------------------------------------------------
6e95fa8022 | j-p-e-g | 2009-08-14 23:35:55 +0000

As per FR 2837779, change Forescry to Phase Shift (Trl). Same level, same 
effect, but different name, description, and messages.
Also, See Invisible is now pure Ench, and has been moved into the Book
of Enchantments.

--------------------------------------------------------------------------------
23b548a717 | j-p-e-g | 2009-08-14 22:21:27 +0000

Fix friendly fire among monsters by restricting the tracer check I added for 
the ally prompts to player bolts.

--------------------------------------------------------------------------------
9c61a3fb37 | j-p-e-g | 2009-08-14 21:21:58 +0000

Improve comment.

--------------------------------------------------------------------------------
cb479a4015 | j-p-e-g | 2009-08-14 21:19:38 +0000

Implement 2830788: Randomize the order of exercised skills for                  
  multischool spells.

--------------------------------------------------------------------------------
115d82391c | j-p-e-g | 2009-08-14 08:05:04 +0000

Fix 2836574: butchering with fingernails removing both gloves and              
wielding a weapon. Patch by jokeserver. Thanks!

--------------------------------------------------------------------------------
c237acf0e4 | j-p-e-g | 2009-08-14 07:51:41 +0000

Apply patch 2837206 by jokeserver to fix Agony dealing 1500 damage.

--------------------------------------------------------------------------------
309c246160 | j-p-e-g | 2009-08-13 20:36:56 +0000

Remove four scroll-duplicate spells: Detect Curse, Remove Curse, Magic Mapping, 
and Identify. [*]
This leaves six spells in the Divinations school, of which Forescry and
See Invisible could easily be moved to other schools; Detect Secret
Doors could be removed; and Detect Traps/Items/Creatures should be moved
to some kind of misc. item with charges (whether rechargeable or not). I
didn't want to remove those until the replacement code is in.

I added a hack to make sure the probabilities of Xom "casting" magic
mapping remain the same. That will have to be repaired later,
preferrably by handling it together with Detect Items/Creatures as a
separate Xom effect.

Shifts spells in saves and bones files.

*) This is different from the recent addition of the scroll of silence
in that these four spells pose no risk whatsoever and can be spammed
safely, making even the food and magic costs negligible.

--------------------------------------------------------------------------------
e9181a121c | j-p-e-g | 2009-08-13 18:54:17 +0000

Because I couldn't resist dploog's jibe: start the change log for 0.6. Yes, I 
know that some of the smaller stuff might already make it into 0.5.2, but at 
least we don't forget about it. Right? :)

--------------------------------------------------------------------------------
c037773236 | j-p-e-g | 2009-08-13 18:01:43 +0000

Apply Jude's scrolls of silence patch.
The scrolls cast the spell with a power of 25 which means it has a
duration of about 24, and is the same as casting the spell with 
5 levels in each of Spc, Ench, Air, as well as 21 Int.

--------------------------------------------------------------------------------
6229f7e7bb | j-p-e-g | 2009-08-13 17:41:10 +0000

Change message about holy wrath weapons not being cursed as suggested by Rachel.

--------------------------------------------------------------------------------
089176f9fe | j-p-e-g | 2009-08-13 17:34:40 +0000

Add a quote from The Frog King for Prince Ribbit, as suggested by Jude.

--------------------------------------------------------------------------------
54d7409816 | evktalo | 2009-08-13 17:05:40 +0000

* Modified the frog island sewer map to give the player a bit more options when 
facing the frogs * Added another frog island map

--------------------------------------------------------------------------------
429bfc5a5c | dshaligram | 2009-08-13 15:43:15 +0000

Fix being unable to create hydra undead with requested number of heads (Eino).

--------------------------------------------------------------------------------
e9e8ee7be9 | evktalo | 2009-08-13 15:39:06 +0000

Made small snakes amphibious for sewer purposes.

--------------------------------------------------------------------------------
2de657642d | j-p-e-g | 2009-08-13 10:25:22 +0000

FR 2819565: Abort when trying to read a known ?blinking or ?teleportation       
      or when zapping a known /teleportation at yourself if you know            
 you have a -TELE artefact equipped.             In the same situation, prompt 
when trying to evoke Blink or             cast one of the teleportation spells, 
in case the player             insists on training 
Evoc/Spellcasting/Translocations that way.
Also, automatically update the autoinscriptions when tweaking artefact
properties in wizard mode.

--------------------------------------------------------------------------------
3f3afe7a26 | j-p-e-g | 2009-08-12 23:21:24 +0000

Implement part of FR 2829379 - half of this already slipped into my last 
commit. Ah well...
* Psyche gets a chaos (75% chance) or distortion (25%) branded weapon.
* Terence gets some kind of mail (50% scale, rest 2/3 chain, else ring)
  and gets some kind of Gladiator weapon, other than in the FR not
  restricted to maces because I didn't see the point.

--------------------------------------------------------------------------------
995e9fc728 | j-p-e-g | 2009-08-12 23:10:14 +0000

FR 2823234: Note getting the Blessed Blade right away FR 2433928: Holy wrath 
weapons cannot be cursed.             The message could stand to be improved.

--------------------------------------------------------------------------------
3e1bc33f1e | dolorous | 2009-08-12 22:45:25 +0000

Fix compilation.

--------------------------------------------------------------------------------
05f78a6764 | j-p-e-g | 2009-08-12 21:48:37 +0000

As per FR 2539914, round all aptitudes to the nearest multiple of 10. This 
includes Spellcasting and Evo-/Invocations.
Actual gameplay effects of losing 5 points somewhere should be small.

--------------------------------------------------------------------------------
ad28f4a286 | evktalo | 2009-08-12 18:59:03 +0000

Add M_SPEAKS to gnolls. It was added in r10033 to 0.5, no mention in the log 
message but I think it makes sense.

--------------------------------------------------------------------------------
2c29d7b55c | evktalo | 2009-08-12 18:44:56 +0000

Monster intelligence changes, for consistency and to spice up pacification a 
bit:
* all 'w' apart from brain worms are now mindless (I_PLANT) (changed: worms, 
larvae, lava worms)
* changed yellow wasp to be mindless, like other 'y's except moths of wrath

--------------------------------------------------------------------------------
934a2dd68e | dolorous | 2009-08-12 14:32:12 +0000

Allow Vehumetite demonspawn to get the "strength from death and destruction" 
mutation, since Vehumet only restores MP.

--------------------------------------------------------------------------------
b6c4a30cf2 | j-p-e-g | 2009-08-12 09:46:37 +0000

In the ASCII version, colour silenced grids CYAN and grids both silenced and 
within TSO's halo LIGHTCYAN. Also display a line "This square is shrouded in 
silence" wherever applicable. We might also need to display silence with tiles.

--------------------------------------------------------------------------------
c0f5bc0910 | j-p-e-g | 2009-08-11 20:43:45 +0000

Tweak probabilities for wand acquirement.

--------------------------------------------------------------------------------
3a3d0a3e4f | j-p-e-g | 2009-08-11 19:33:06 +0000

Replace more() after explosions with a 150 ms delay.

--------------------------------------------------------------------------------
33b7d2256b | evktalo | 2009-08-11 16:33:13 +0000

Place a normal mummy in the pyramid ossuary if Menkaure was already generated.

--------------------------------------------------------------------------------
e1fa13d12e | evktalo | 2009-08-11 16:18:40 +0000

Actually add the tile of Menkaure to the repository.

--------------------------------------------------------------------------------
f4a0665730 | evktalo | 2009-08-11 16:16:58 +0000

Add a new unique mummy, Menkaure, and three new ossuaries. All courtesy of due.
Also added a tile for Menkaure, and made him generate in the dungeon.

--------------------------------------------------------------------------------
3294105b95 | evktalo | 2009-08-11 11:53:31 +0000

Major ice cave tweaking mainly based on player comments & feedback from ##crawl
* the ice statue onslaught at the beginning of the small caves was contrary to 
the design goals, toned it down for most maps
* no placing freezing fog on top of the entrance
* make the ice cave zone D:14-20 instead of D:14-24
* don't give the necromancer a redundant wand of cold
* try to place clouds so they don't kill off monsters
* fix a missing milestone
* fix a missing frost giant/ice fiend

--------------------------------------------------------------------------------
0dab186b84 | dolorous | 2009-08-09 23:44:01 +0000

Fix piety cost for Jiyva's jelly shield.

--------------------------------------------------------------------------------
4eb17c9d10 | dolorous | 2009-08-09 23:36:32 +0000

Fix [2832760]: Don't remove the rock walls in Slime:6 unless the player is 
worshipping Jiyva.

--------------------------------------------------------------------------------
dedf3d075e | j-p-e-g | 2009-08-09 19:52:43 +0000

Fix the weird beam tiles for unknown beam types.

--------------------------------------------------------------------------------
f7a49b238c | evktalo | 2009-08-09 12:47:45 +0000

A bunch of no_monster_gen KMASK for fountains, mainly the temple entries 
mentioned in BR#2833297.

--------------------------------------------------------------------------------
e37ca88807 | evktalo | 2009-08-09 11:39:28 +0000

Revert r10337 (should be fixed by r10498).

--------------------------------------------------------------------------------
e67248cc8e | j-p-e-g | 2009-08-09 09:28:31 +0000

Another armour acquirement tweak: * Seeing how animal skins never get an ego 
property, lower the chance of   acquirement handing out animal skins. * For 
armour-restricted species slightly increase the chance of getting one   of the 
simpler hide armours (troll, steam, swamp, dragon). * Remove the chance to 
reroll for items with egos you already have, but   increase the chance to 
reroll for mundane items if all secondary slots are   already filled. * Make 
Oki's armour acquirements a bit more expensive.

--------------------------------------------------------------------------------
60f91a809b | j-p-e-g | 2009-08-08 20:24:47 +0000

Add wands to the list of items available from acquirement. Weights are assigned 
arbitrarily and probably much too good. (There's a 50% chance of getting one of 
hasting, healing, teleportation, or fireball.)

--------------------------------------------------------------------------------
aa1566cb31 | j-p-e-g | 2009-08-08 18:02:53 +0000

* Add a few exceptions to the new armour acquirement for Xom. * Tweak book 
acquirement: if more than 25% of your skills are magic you   will never get 
manuals. If you get a manual, use increased weights for   Fighting, Armour, 
Spellcasting, Invocations, Evocations (arbitrarily   chosen).

--------------------------------------------------------------------------------
c4263fdd9a | j-p-e-g | 2009-08-08 15:25:02 +0000

More artefact/acquirement modifications:
* When handing out body armour via scroll acquirement, use a rough order of
  armour subtypes and assign weights according to Armour skill, i.e.
  robes are most likely at Armour skill 0 and crystal plate mail is most
  likely at Armour skill 27 (well, 24+, to be exact).

* When handing out mundane items, consider the shield slot to be filled
  if the character is unarmed has a high UC skill, or is wielding a
  two-hander, a ranged weapon, or a rod. I don't know how much shields
  hamper spellcasting - that could be included as well.

* In the creation of artefacts (also outside acquirement) make sure that
  those boring randarts that only have one stat property (AC, EV, Str, Dex, 
  Int) get another one, and there's a chance of getting a third. Also,
  if the only property is Acc or Dam there's a 50% chance of getting one
  or two more. As before, the bonus properties are all stat properties,
  so this shouldn't be too powerful.

--------------------------------------------------------------------------------
8ec73a1e28 | j-p-e-g | 2009-08-07 22:10:48 +0000

Fix armour acquirement generating no bardings, whoops!
Also, because mundane items are so terribly rare in acquirement use another
check to occasionally produce mundane items filling empty equipment slots:
If the rolled item is an ego item and you're already wearing an item in
the same slot that has the same ego and better or equal enchantment, try
for a mundane item filling an empty slot instead.

--------------------------------------------------------------------------------
a413ee4118 | j-p-e-g | 2009-08-07 14:53:36 +0000

* Fix capitalization is staff description (2832393). * Use MSGCH_WARN for stat 
loss messaging (2831539). * Make debug armour acquirement statistics really 
ignore artefacts when   counting egos.

--------------------------------------------------------------------------------
a9c6a9b1e9 | dshaligram | 2009-08-07 07:52:39 +0000

Fix broken minivault placement guarantee: minivaults could be placed without 
overlapping existing floor squares.

--------------------------------------------------------------------------------
61fa0d29ca | j-p-e-g | 2009-08-06 21:18:32 +0000

Clean up acquirement routine by replacing a looooong else block with an early 
return.

--------------------------------------------------------------------------------
6f12496dcf | j-p-e-g | 2009-08-06 20:41:55 +0000

sExperimentally tweak armour acquirement to give out more equipment for 
secondary slots. (Okawaru still uses the old 50% armour, rest secondary 
chances.)
If mundane items are created, preferably replace subtype with an unfilled
equipment slot. When trying this in wizard mode, this never came up,
though: ~50 acquirements while naked and all were egos, with a few
artefacts strewn in. I then ran some tests when enforcing non-egos, and this
worked fine. (And yes, I did take the hack out again.)

--------------------------------------------------------------------------------
0b2862490e | dolorous | 2009-08-06 13:03:41 +0000

Fix previous message to actually mention Elyvilon's name (oops).

--------------------------------------------------------------------------------
967a6fd081 | dolorous | 2009-08-06 12:57:19 +0000

Also experimentally use mpr() instead of simple_god_message() for Ely's other 
no-piety pacification message.

--------------------------------------------------------------------------------
f45ff50603 | j-p-e-g | 2009-08-06 09:23:49 +0000

Experimentally use mpr() instead of simple_god_message() for Ely's no-piety 
gain "support" when pacifying monsters.

--------------------------------------------------------------------------------
b331266740 | j-p-e-g | 2009-08-06 08:55:04 +0000

* Don't give the CHANNEL_HELL mutation to Demonspawns worshipping Trog. * Check 
for mummy genus rather than species, in the can_drink_potion check.

--------------------------------------------------------------------------------
eb331955f2 | j-p-e-g | 2009-08-05 17:41:29 +0000

Give Sonja curare needles, and make distortion more likely (but not guaranteed).

--------------------------------------------------------------------------------
8080c40c74 | j-p-e-g | 2009-08-04 19:53:09 +0000

* Implement 2831014: !a inscription prompts when attempting to attack           
           with this wielded item. As usual, once you answer yes                
      you won't be prompted again until you switch weapons. * Nonmoving 
monsters shouldn't flounder and "splash around" in shallow   water.

--------------------------------------------------------------------------------
3a788f6705 | evktalo | 2009-08-03 16:44:18 +0000

Fix BR#2831299: Disconnected pan vaults.

--------------------------------------------------------------------------------
883ddf3060 | dolorous | 2009-08-03 15:28:43 +0000

Fix [2831008]: Don't describe rakshasa clones as mindless, since it gives away 
their being clones.

--------------------------------------------------------------------------------
5b034d3af0 | j-p-e-g | 2009-08-03 10:28:09 +0000

Really fix Xom's teleportation journeys.

--------------------------------------------------------------------------------
e3193b3225 | j-p-e-g | 2009-08-03 10:07:38 +0000

Fix spellcasting ghosts being described as "Ogre-Mage" if the player happens to 
be an Ogre.

--------------------------------------------------------------------------------
6ebcd3f73e | j-p-e-g | 2009-08-03 09:45:16 +0000

* Fix infinite Xom teleportation rides. Whoops! * Move unseen altar/entrance 
tiles to dngn.png, so they're handled   correctly with magic mapping.

--------------------------------------------------------------------------------
e0906f57db | evktalo | 2009-08-02 19:24:03 +0000

"Channel" rather than "hurl" blasts of cleansing flame. (Zannick)

--------------------------------------------------------------------------------
d6f3433f92 | evktalo | 2009-08-01 16:23:56 +0000

Fix portal_ice_cave_entry_ice_statue_002 being generated all over the place.

--------------------------------------------------------------------------------
b0f86f7c15 | evktalo | 2009-08-01 10:04:21 +0000

Use KMASK on entry vault fountains to get rid of unfortunate fish.

--------------------------------------------------------------------------------
b39b3cc60c | evktalo | 2009-08-01 09:39:11 +0000

Replace the non-functional shaft trap in whats_in_store_for_you with a teleport 
trap.

--------------------------------------------------------------------------------
7446faa8f4 | dploog | 2009-08-01 08:20:05 +0000

Added the no_monster_gen TAG to all entry vaults which might possibly feature a 
fountain. (This can probably be done in a less blunt way.)

--------------------------------------------------------------------------------
a437217f1e | dolorous | 2009-08-01 04:04:41 +0000

Forward-port 0.5 r10472 to trunk.

--------------------------------------------------------------------------------
76873419df | dshaligram | 2009-07-31 17:08:03 +0000

Fix bogus gold numbers being written to logfile (oops)

--------------------------------------------------------------------------------
5a57868f95 | evktalo | 2009-07-31 15:30:35 +0000

Make the lab_fountain vault contain a fountain instead of a deprecated statue 
symbol.

--------------------------------------------------------------------------------
2db469812d | evktalo | 2009-07-31 10:50:32 +0000

* Experimentally lower Mountain Dwarf magic resistance to XL*2 (was XL*4, and 
the default and the former lowest MR was XL*3) in an attempt to give them some 
weak point. * Match MR of Hill Orcs with MDs'. (Darshan) * Eye the high MR of 
Deep Dwarves with suspicion.

--------------------------------------------------------------------------------
2c0e694b22 | dshaligram | 2009-07-30 19:47:33 +0000

Fix fulldebug compile.

--------------------------------------------------------------------------------
dbdbda1639 | dolorous | 2009-07-30 14:52:56 +0000

Don't let Xom be amused by rune loss that would keep you out of Zot if you've 
already opened Zot.

--------------------------------------------------------------------------------
765df0d996 | j-p-e-g | 2009-07-30 10:20:26 +0000

Bring release.txt up to date with SF's new file release system.

--------------------------------------------------------------------------------
6ce5131f6b | j-p-e-g | 2009-07-29 13:25:10 +0000

Don't change dungeon flavour for tiles out of sight. (Fixes 2828717.)

--------------------------------------------------------------------------------
268bc2a45c | dolorous | 2009-07-28 23:12:24 +0000

Forward-port 0.5 r10458 to trunk.

--------------------------------------------------------------------------------
f817a160c3 | dolorous | 2009-07-28 22:01:47 +0000

Forward-port 0.5 r10454 to trunk, minus the version number change.

--------------------------------------------------------------------------------
7630def4bb | dolorous | 2009-07-28 20:48:37 +0000

Forward-port the remaining applicable parts of 0.5 r10447.

--------------------------------------------------------------------------------
6d5bf15add | dolorous | 2009-07-28 18:39:07 +0000

Forward-port vampire satiation fixes and cosmetic fixes from 0.5 r10447.

--------------------------------------------------------------------------------
3b56aaee9f | dolorous | 2009-07-28 16:09:06 +0000

Apply RjY's patch in [2828451], slightly tweaked, to fix compilation.

--------------------------------------------------------------------------------
8ee1f488e2 | evktalo | 2009-07-28 14:57:25 +0000

Fix typo in previous commit.

--------------------------------------------------------------------------------
00ad2b3dc9 | evktalo | 2009-07-28 14:49:15 +0000

Fix david_entry_009 mixed with teleport resulting in awkward stuckiness.

--------------------------------------------------------------------------------
dd4a870519 | dshaligram | 2009-07-28 12:58:22 +0000

Move .gitignore into crawl-ref (RjY).

--------------------------------------------------------------------------------
9ce3949248 | zelgadis | 2009-07-28 05:40:26 +0000

Generalized solution to the "disconnect at --more--" problem (e.g., disconnect 
at the more after "You have lost your religion!" to avoid the negative 
consequences of excommunication): when a HUP signal is received, instead of 
immediately saving the game, close the stdin stream, which will cause all of 
the Curses calls which normal block on key-presses to unblock, so that the code 
after a more() call will execute before the disconnected game is saved (which 
will happen in _input() in acr.cc).  This only affects Curses 
(non-tiles/console) UNIX builds which have both USE_UNIX_SIGNALS and 
SIGHUP_SAVE defined.
Exceptions to the above:

* If HUP is received during a call to yesno() with safeanswer == 0, then
  the game will be saved immediately, since there's no way for the
  function to tell which answer is safe to give automatically.

* If HUP is received while selecting the target for a controlled teleport
  then the teleport will be canceled, since otherwise a target other than
  the intended one might be the one under the cursor when the disconnect
  happened.

--------------------------------------------------------------------------------
72c1249ae7 | dolorous | 2009-07-28 03:39:01 +0000

Apply caotto's patch in [2827204] to finish the plant god, with some cleanups 
added by me.

--------------------------------------------------------------------------------
102ecc2482 | dolorous | 2009-07-28 03:14:18 +0000

Ensure that no demonic artefacts are named after good gods.

--------------------------------------------------------------------------------
ae187c5a96 | dolorous | 2009-07-28 02:02:14 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
561bada1e5 | dolorous | 2009-07-28 01:23:23 +0000

Disallow artefacts with Jiyva's name on them, since jellies can't eat artefacts.

--------------------------------------------------------------------------------
841f9e1a5b | dolorous | 2009-07-27 18:15:26 +0000

Fix [2827921]: Remove spurious "empty-handed" message.

--------------------------------------------------------------------------------
3732a3c751 | evktalo | 2009-07-27 16:13:05 +0000

Fix shafts generated in Tomb by changing '^' from the maps to '~'.

--------------------------------------------------------------------------------
b43c0d48a5 | dolorous | 2009-07-27 14:07:55 +0000

Describe the poison resistance mutation as resistance to poison instead of 
immunity, as e.g. Venom Bolt can poison you in spite of it.

--------------------------------------------------------------------------------
2f4194a97f | dolorous | 2009-07-27 13:48:58 +0000

Make sure that Xom and chaos weapons can only turn monsters with natural 
holiness into shapeshifters.

--------------------------------------------------------------------------------
33cd5f7627 | j-p-e-g | 2009-07-27 13:32:04 +0000

Disallow vaults placing shaft traps if shafts are disallowed on that level.

--------------------------------------------------------------------------------
d80b2858a0 | j-p-e-g | 2009-07-27 12:39:28 +0000

* Change rElec mutation description to "resistant" rather than "immune". * Make 
monsters of I_ANIMAL or higher and vulnerable to a cloud type   avoid to enter 
such clouds. For example, for fire clouds, this affects   ice beasts and 
mummies.

--------------------------------------------------------------------------------
e96b82e8da | j-p-e-g | 2009-07-27 12:09:36 +0000

* Apply patch by kotk to fix the Alt-Tab bug (BR 2805959). * Apply patch by 
trentbuck to allow packaging with tar (BR 2827595). * Fix 2827342: Consider 
weapons "too large to wield" as useless.

--------------------------------------------------------------------------------
5dd828e3ca | dolorous | 2009-07-27 04:10:15 +0000

Add yet one more Jiyva cleanup.

--------------------------------------------------------------------------------
6d7a83ed41 | j-p-e-g | 2009-07-26 21:46:22 +0000

Fix typo.

--------------------------------------------------------------------------------
28aee35366 | j-p-e-g | 2009-07-26 20:43:30 +0000

Experimentally mark the Alt key as unpressed everytime we get a CMD_NO_CMD 
result with Tiles in case it's the result of the Alt-Tab bug.

--------------------------------------------------------------------------------
3dd428f3f2 | dolorous | 2009-07-26 13:33:54 +0000

Forward-port some applicable parts of 0.5 r10419 to trunk.

--------------------------------------------------------------------------------
cf8b9522f2 | dshaligram | 2009-07-26 09:21:24 +0000

Record gold found, spent and remaining for tournament banners.

--------------------------------------------------------------------------------
c42f897ecb | dshaligram | 2009-07-26 08:09:14 +0000

Add milestone for mollifying gods (tournament banner).

--------------------------------------------------------------------------------
89bf4fdfd4 | dolorous | 2009-07-26 03:09:45 +0000

Add another Jiyva cleanup.

--------------------------------------------------------------------------------
0c41d89490 | dolorous | 2009-07-26 02:03:09 +0000

Typo fix.

--------------------------------------------------------------------------------
e0299eccdf | dolorous | 2009-07-25 23:20:43 +0000

Apply kotk's delay.cc patch in [2827129].

--------------------------------------------------------------------------------
71b6b1d375 | dolorous | 2009-07-25 21:01:38 +0000

Apply kotk's minor fixes patch in [2827129], with minor tweaks.

--------------------------------------------------------------------------------
4b16c906a2 | dshaligram | 2009-07-25 16:30:03 +0000

Remove more() that allow players on telnet to escape god-abandonment effects by 
killing their telnet connections and reconnecting, since Crawl saves game state 
as-is on SIGHUP. This is not a permanent fix, since players can arrange their 
configs to make it likely for a --More-- to show up at a bad time due to mpr() 
paging.

--------------------------------------------------------------------------------
b736da8409 | dshaligram | 2009-07-25 16:25:25 +0000

More milestones and logfile fields for the Crawl tournament.
Add milestones for worshipping and renouncing gods.

Record number of kills and all skills at level 27 in the logfile and milestones.

--------------------------------------------------------------------------------
3cd7d88e4a | dshaligram | 2009-07-25 15:43:20 +0000

Change Ziggurat milestones to be more convenient for tourney parsing.

--------------------------------------------------------------------------------
dd09e43664 | j-p-e-g | 2009-07-25 14:38:15 +0000

Apply patch 2824637 by Trent Buck: making save_dir and morgue_dir include 
"/saves" and "/morgue", respectively.

--------------------------------------------------------------------------------
b4b1187fa1 | j-p-e-g | 2009-07-25 14:25:13 +0000

Apply zebez' patch to differentiate gates some more from stairs.

--------------------------------------------------------------------------------
6604f9f600 | dolorous | 2009-07-25 13:44:39 +0000

Resync credits with 0.5.

--------------------------------------------------------------------------------
5dc962c50a | dolorous | 2009-07-25 13:38:19 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
552a180614 | j-p-e-g | 2009-07-25 12:36:43 +0000

* Add support for packaging save files with tar. (Patch by Trent W. Buck.) * 
Fix random blink placing the player in dangerous clouds. * Fix message when 
trying to place Conjure Flame in a wax wall.

--------------------------------------------------------------------------------
ebb6673550 | nlanza | 2009-07-25 02:07:34 +0000

Compiler version fixes and a case-statement cleanup so we build on OS X 10.6.

--------------------------------------------------------------------------------
685985f831 | j-p-e-g | 2009-07-24 22:54:44 +0000

Port r10393 (magic mapping fixes for tiles) to trunk.

--------------------------------------------------------------------------------
b1606bd733 | j-p-e-g | 2009-07-24 14:54:12 +0000

Fix clearing the map leaking information on magic mapped features.

--------------------------------------------------------------------------------
17c673c46b | j-p-e-g | 2009-07-23 20:30:37 +0000

Apply my previous two commits to trunk.

--------------------------------------------------------------------------------
e6e8b4a9e4 | evktalo | 2009-07-23 20:22:54 +0000

The Magical Staff Adventures III: Take out the MP cost, make the damage formula 
1d(1.25*(skill+skill)), which is a sixth less than originally, and has high 
variance.

--------------------------------------------------------------------------------
aa8f10d7e2 | dolorous | 2009-07-23 14:05:53 +0000

Tweak Yred's soul-marking duration one more time.

--------------------------------------------------------------------------------
5868e750f1 | j-p-e-g | 2009-07-23 12:13:35 +0000

Prompt if you target yourself with Mephitic Cloud and there are no visible 
adjacent monsters.

--------------------------------------------------------------------------------
2aa047a8a3 | j-p-e-g | 2009-07-23 11:05:37 +0000

* Prompt before moving while confused and next to lava/deep water. * Change 
Portal Projectile range to LOS. * Fix crash with Summon Horrible Things if 
there's not enough space.

--------------------------------------------------------------------------------
d40b5c49a2 | j-p-e-g | 2009-07-23 09:53:41 +0000

* Fix Xom gifts not going Splash! in deep water. * Limit Xom tele rounds to a 
maximum of 12 (unlikely, but you know...) * Update player doll for Merfolk 
entering/leaving water.

--------------------------------------------------------------------------------
2487cbfe77 | zelgadis | 2009-07-23 01:29:28 +0000

Fix bug #2816691: possessive improperly used when hostile monster speaks to     
friendly monsters.
Added @foe_possessive@ monster speech variable, and fixed a few monster
speech entries to not be player centric.

--------------------------------------------------------------------------------
ce544c59c4 | j-p-e-g | 2009-07-22 21:44:31 +0000

Apply patch 2825337 by zebez: move trapping net tile to player.png to save on 
memory and only load title.png if Options.tile_title_screen is true.
Also: delete m_region_title once the title screen was shown.

--------------------------------------------------------------------------------
3ea0d9a50e | evktalo | 2009-07-22 20:54:02 +0000

Revert the elemental staff special damage to 3d((1+skill+evo)/2) again. Fix a 
bug that prevented the special damage costing 2 mp per kerpoww. Staff of earth 
keeps taking monster AC to account.

--------------------------------------------------------------------------------
27f833f02c | j-p-e-g | 2009-07-22 20:46:22 +0000

Revert some changes in rltiles/tool, and some further cleanup.

--------------------------------------------------------------------------------
a31a16b269 | dolorous | 2009-07-22 17:25:25 +0000

Fix [2825414]: Leave the proper hide type when bottling blood from a corpse as 
a vampire.

--------------------------------------------------------------------------------
ecb59b4de1 | evktalo | 2009-07-22 16:40:46 +0000

* Change elemental staff damage from 3d((1 + spell skill + Evocations)/2) to 
1d(1 + spell skill + Evocations), reducing the overall damage by a third and 
increasing the variance. * Apply monster AC to the special damage from staff of 
earth.

--------------------------------------------------------------------------------
50286f06b7 | zelgadis | 2009-07-22 08:13:47 +0000

Some arena tweaks:
* When Kirke dies and hogs are turned into humans, don't change their
  attitute if in arena mode, since that messes up arena book-keeping.

* Give an error if a neutral monster is placed in the arena.

* If a summoned band leader makes it past the summon throttle restriction,
  let in all of its band members, even if that will exceed the throttle.

--------------------------------------------------------------------------------
c7d56c3833 | j-p-e-g | 2009-07-22 06:19:37 +0000

Some more spacing fixes.

--------------------------------------------------------------------------------
98c82601a4 | j-p-e-g | 2009-07-21 21:24:06 +0000

Fix some warnings for gcc 4.4 as per trentbuck's patch 2824633. Add flavour 
messages to opening the gate to Zot. Really, we'd need something like that for 
winning the game, but what?

--------------------------------------------------------------------------------
41f78a6961 | j-p-e-g | 2009-07-21 17:53:49 +0000

Make fish on dry land (due to Feawn's Sunlight power) flop about and lose hit 
points until back in water, using ENCH_AQUATIC_LAND. (Bug 2824663)
Also fix tiles compilation (patch 2824632) and add DATA_DIR_PATH to tiled 
icons (patch 2824635). Both patches (and some more) by Trent W. Buck.

--------------------------------------------------------------------------------
a17368df4f | zelgadis | 2009-07-21 04:10:52 +0000

Allow unrandart launchers to modify the beam of the missile they fire.

--------------------------------------------------------------------------------
c2aad9d537 | j-p-e-g | 2009-07-20 21:41:27 +0000

Fix 2824455: Blade Hands not counting as slicing when wearing melded            
  gloves. Fix 2824494: Transformation check not taking into account special 
armour              properties when trying to prevent fatal stat loss.

--------------------------------------------------------------------------------
a28741dd2b | j-p-e-g | 2009-07-20 21:18:13 +0000

Fix 2822832: temporary brands not being removed when thrown with LRET_FUMBLED   
           plus: thrown weapon permabrand being removed when                    
DUR_WEAPON_BRAND is active              plus: double messaging of "You are now 
empty-handed."
Fix 2810517: Added a pre-ability requirements check that handles Lugonu's 
             enter/exit abyss, berserking, recite, breath attacks and
             some more. If the requirements aren't met, the check fails
             before the success check, thus no turn is wasted.

--------------------------------------------------------------------------------
c917efe2ec | j-p-e-g | 2009-07-20 19:32:38 +0000

Use ETC_MAGIC for beam animations with unknown effect, so we don't accidentally 
leak information about unID'd wands etc. Some additional space fixes.

--------------------------------------------------------------------------------
0da6681bc0 | j-p-e-g | 2009-07-20 19:06:47 +0000

Spacing fixes.

--------------------------------------------------------------------------------
3a83e92a99 | j-p-e-g | 2009-07-20 18:07:51 +0000

Apply caotto's plant god patch, for now named "Feawn". Also fix potions of 
porridge's menu colour being yellow for Mummies.

--------------------------------------------------------------------------------
0bcbd855b8 | dolorous | 2009-07-20 15:26:11 +0000

Fix [2824313]: Fix messages when pacified monsters take escape shafts.

--------------------------------------------------------------------------------
166dcd1acc | evktalo | 2009-07-20 11:31:38 +0000

Fix eino_temple_003, recolour eino_temple_001 and adjust probablities a bit.

--------------------------------------------------------------------------------
7ed0be12c0 | evktalo | 2009-07-20 09:59:17 +0000

Milestones for entering Ice Cave, Sewer and Ossuary. Document making these for 
portal vaults in level_design.txt.

--------------------------------------------------------------------------------
2e507b0064 | evktalo | 2009-07-20 09:54:17 +0000

Don't make a milestone of reaching the Hive bottom, just for entering.

--------------------------------------------------------------------------------
c52e267a7c | zelgadis | 2009-07-20 02:35:00 +0000

Bug 2820876: don't do a big cloud miscast in non-lethal mode if two player 
turns in the cloud could kill the player.

--------------------------------------------------------------------------------
bbccc4cd6a | j-p-e-g | 2009-07-19 23:15:31 +0000

Apply patch 2789368 to make AltGr work as expected for Tiles. This has always 
worked for me on Linux and I've got no way to test it on Windows, so I'll just 
have to hope it's okay.

--------------------------------------------------------------------------------
4409982937 | j-p-e-g | 2009-07-19 21:42:46 +0000

Fix tiles compilation if save files are not zipped.

--------------------------------------------------------------------------------
c4459f0623 | j-p-e-g | 2009-07-19 20:45:51 +0000

Move all tiles for stairs, gates and portals into a new subfolder 
dc-dngn/gateways/. Also prompt for randomly rolled unnamed characters.

--------------------------------------------------------------------------------
cc5863ffc5 | evktalo | 2009-07-19 20:14:30 +0000

Fix bzr_entry_005 being generated inside stone.

--------------------------------------------------------------------------------
5061214c70 | dolorous | 2009-07-19 19:30:44 +0000

Add missing space.

--------------------------------------------------------------------------------
0cbc3be58f | dolorous | 2009-07-19 19:23:39 +0000

Handle one more case of Jiyva's altar removal.

--------------------------------------------------------------------------------
a40e94b923 | dolorous | 2009-07-19 19:14:15 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
7b1eb1adab | dolorous | 2009-07-19 19:11:21 +0000

Put the messages about the power ruling the Slime Pits' vanishing in the god 
channel.

--------------------------------------------------------------------------------
2817900512 | dolorous | 2009-07-19 19:04:23 +0000

Add yet more Jiyva-related cleanups.  Make sure his altars are never generated 
if the royal jelly is dead, you don't worship Jiyva, and you're not under 
penance from Jiyva; don't destroy Jiyva's altars if the royal jelly dies after 
you start worshipping him or go under penance from him; and clean up the 
alternate method for unlocking the Slime Pits.

--------------------------------------------------------------------------------
af7b69fc59 | dolorous | 2009-07-19 18:16:18 +0000

Add missing check for whether the player can mutate.

--------------------------------------------------------------------------------
607f6940b5 | dolorous | 2009-07-19 18:04:13 +0000

Make the code to turn all your fellow slimes against you upon being 
excommunicated by Jiyva actually work.

--------------------------------------------------------------------------------
d4f5ea97b2 | dolorous | 2009-07-19 17:31:28 +0000

Comment fixes.

--------------------------------------------------------------------------------
8cb908ac8f | dolorous | 2009-07-19 17:24:57 +0000

Fix assertion when changing a monster's god via the Crusade card.

--------------------------------------------------------------------------------
aa42374509 | dolorous | 2009-07-19 17:04:09 +0000

Add more Jiyva-related fixes.

--------------------------------------------------------------------------------
38a9a32f1d | dolorous | 2009-07-19 16:37:20 +0000

Allow Jiyva altars to actually show up.

--------------------------------------------------------------------------------
b8d3a36cbb | dolorous | 2009-07-19 16:23:51 +0000

Tweak message.

--------------------------------------------------------------------------------
81f3da4803 | evktalo | 2009-07-19 15:00:53 +0000

Separate makefiles for cross-compiling the Windows builds on crawl.develz.org.

--------------------------------------------------------------------------------
d319c2e18d | j-p-e-g | 2009-07-19 14:52:59 +0000

Add a yes_or_no prompt if you attempt to leave the Dungeon and picked up the 
Orb at one point, but are not carrying it now.

--------------------------------------------------------------------------------
56e35d4925 | dolorous | 2009-07-19 14:39:41 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
c6c62c6243 | dolorous | 2009-07-19 14:36:35 +0000

Revert r10315, as there should be a better way to eliminate Jiyva altars in the 
Abyss once the royal jelly is dead.

--------------------------------------------------------------------------------
e229eea5f8 | dolorous | 2009-07-19 14:31:51 +0000

Disallow Jiyva altars in the Abyss.

--------------------------------------------------------------------------------
49ff1f136a | dolorous | 2009-07-19 14:27:51 +0000

Comment fix.

--------------------------------------------------------------------------------
4e03bfe81c | dolorous | 2009-07-19 14:15:30 +0000

Simplify the royal jelly effect for both players and monsters, and make sure 
that both spawn Jiyva-worshipping jellies.

--------------------------------------------------------------------------------
d759dc51dd | dolorous | 2009-07-19 14:09:06 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
d06c6bd4cf | dolorous | 2009-07-19 14:05:58 +0000

Remove erroneous parameter.

--------------------------------------------------------------------------------
9e4917b395 | j-p-e-g | 2009-07-19 12:52:21 +0000

ATTR_RUNES_IN_ZOT is no longer needed. I couldn't decide if I should simply 
remove it or leave it for the weak save file compatibility we try to maintain 
within trunk, so I left its definition in enum.h. Also, change Beogh's altar 
tile to include the orcish idol.

--------------------------------------------------------------------------------
fae235b09c | j-p-e-g | 2009-07-19 10:59:26 +0000

* Open Zot for good the first time you enter (with three runes or more). * Add 
tiles for Zot entrance (both closed and open). * Apply zebez' patch 2823787 to 
make Magic Mapping show altars/gates.

--------------------------------------------------------------------------------
bbb205e0b5 | dshaligram | 2009-07-19 04:47:02 +0000

Don't mark milestones before game start (Keskitalo)

--------------------------------------------------------------------------------
9899c2b4ed | dolorous | 2009-07-19 04:16:57 +0000

Remove unneeded blank lines.

--------------------------------------------------------------------------------
6284953d6b | dolorous | 2009-07-19 04:12:23 +0000

Mark the royal jelly as a Jiyva worshipper.

--------------------------------------------------------------------------------
edc341c548 | dolorous | 2009-07-19 01:11:58 +0000

Add still more minor fixes.

--------------------------------------------------------------------------------
e6cf5d9218 | dolorous | 2009-07-19 00:56:18 +0000

Attempt to fix display error with Jiyva's jelly shield on the "^" screen.

--------------------------------------------------------------------------------
c880f2b034 | dolorous | 2009-07-18 23:58:33 +0000

Remove superfluous more().

--------------------------------------------------------------------------------
a37bf04ca8 | dolorous | 2009-07-18 23:52:57 +0000

Properly disallow Jiyva altars in the main dungeon, as is done for e.g. Lugonu 
and Beogh already.

--------------------------------------------------------------------------------
08b52212b1 | dolorous | 2009-07-18 23:45:51 +0000

Add a few last cleanups.

--------------------------------------------------------------------------------
482864797b | dolorous | 2009-07-18 23:23:27 +0000

Also fix the check for the player's being undead in Jiyva's retribution, and 
add yet more cleanups.

--------------------------------------------------------------------------------
892868004c | dolorous | 2009-07-18 23:10:43 +0000

Fix the check for the player's being undead when giving mutations from Jiyva, 
and avoid "nothing has changed" message spam under those circumstances.

--------------------------------------------------------------------------------
190bfa1c55 | dolorous | 2009-07-18 22:50:26 +0000

And simplify Jiyva's curing of bad mutations.

--------------------------------------------------------------------------------
f7c519b393 | dolorous | 2009-07-18 22:48:31 +0000

And fix the last delete_mutation() call again.

--------------------------------------------------------------------------------
25586f037e | dolorous | 2009-07-18 22:45:49 +0000

Ensure the the Helix card only removes bad mutations, and that Zin's 
retribution only removes good mutations, by adding a parameter to 
delete_mutation() to disallow mismatches of random good and bad mutations.

--------------------------------------------------------------------------------
77025c5c65 | dolorous | 2009-07-18 22:20:15 +0000

Fix missing parameter in delete_mutation() call (oops).

--------------------------------------------------------------------------------
0bfa591f1e | dolorous | 2009-07-18 22:12:21 +0000

Add still more cleanups.

--------------------------------------------------------------------------------
61fca12c44 | dolorous | 2009-07-18 21:15:50 +0000

Add still more cleanups.

--------------------------------------------------------------------------------
c74e246db3 | dolorous | 2009-07-18 21:02:57 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4fc450cf55 | dolorous | 2009-07-18 20:43:51 +0000

Apply vonbrand's patch in [2823698] to fix compilation under g++ 4.4.0.

--------------------------------------------------------------------------------
a7186ba452 | dolorous | 2009-07-18 20:40:11 +0000

Tweak description for now to indicate that Jiyva is a chaotic god.

--------------------------------------------------------------------------------
42b470cdc7 | dolorous | 2009-07-18 20:36:39 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
b4338a00f5 | j-p-e-g | 2009-07-18 20:29:53 +0000

Change part of the z/Z handling: * added option darken_beyond_range (defaults 
to true) * Z doesn't show the spell list anymore

--------------------------------------------------------------------------------
ef5094188d | dolorous | 2009-07-18 20:26:48 +0000

Forward-port 0.5 r10276 to trunk, and add a few more cleanups.

--------------------------------------------------------------------------------
10ed609e9b | dolorous | 2009-07-18 20:10:56 +0000

Forward-port 0.5 r10274 to trunk.

--------------------------------------------------------------------------------
01fe8d9fc1 | dolorous | 2009-07-18 19:49:01 +0000

Forward-port 0.5 r10272 to trunk (except that Dissolution actually gets the 
Slime God as its god), and add a few minor cleanups.

--------------------------------------------------------------------------------
6d7627cb65 | j-p-e-g | 2009-07-18 18:58:52 +0000

Add the Slime god as per n78291's (Shayne?) patch. Thanks! :D

--------------------------------------------------------------------------------
66c0054398 | dolorous | 2009-07-18 13:15:25 +0000

Comment fixes.

--------------------------------------------------------------------------------
bb1feaf335 | dolorous | 2009-07-18 13:12:03 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
3ca471953a | evktalo | 2009-07-18 10:19:11 +0000

Don't place vaults with downward escape hatches on D:27, as they turn into 
portals to Zot.

--------------------------------------------------------------------------------
5fad1a49dc | peterb12 | 2009-07-18 03:36:36 +0000

Xcode changes.

--------------------------------------------------------------------------------
a847b70b8a | dolorous | 2009-07-18 02:14:09 +0000

Improve the redundancy check for the amulet of the gourmand.

--------------------------------------------------------------------------------
3df5cc1800 | dolorous | 2009-07-18 01:09:17 +0000

Tweak wording.

--------------------------------------------------------------------------------
d51d8308a5 | dolorous | 2009-07-17 23:29:23 +0000

Forward-port the renaming of changes.stone_soup to changelog.txt from 0.5 
r10259.

--------------------------------------------------------------------------------
a915f78e78 | dolorous | 2009-07-17 21:43:35 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
1f2ac26685 | dolorous | 2009-07-17 21:41:30 +0000

Forward-port the FAQ update from 0.5 r10256.

--------------------------------------------------------------------------------
4b806f77ff | j-p-e-g | 2009-07-17 20:52:54 +0000

A number of small bug fixes: * 2811005: unknown mimics being stabbable * 
2818709: restrict monsters picking up stuff to 2 items per turn * 2820097: 
reintroduce prompts for firing _in the direction_ of allies            and fix 
message * 2821462: returning from tutorial screen swallowing a keypress * 
2822771: fire elementals could be placed in shallow water            Also, 
Azrael is no longer generated in the Shoals/Swamp
Also, implement the second part of FR 2820876: Xom will no longer
confuse the player if there's adjacent deep water or lava. This
restriction doesn't apply if Xom is feeling nasty (penance or bored)
and there's also no checks for water/lava further away.

--------------------------------------------------------------------------------
4280b17922 | dolorous | 2009-07-17 20:39:13 +0000

Fix the other part of [2823233]: Runes shouldn't be listed as wieldable 
inventory items.

--------------------------------------------------------------------------------
5cd7546682 | dolorous | 2009-07-17 20:31:11 +0000

Fix part of [2823233]: Runes shouldn't be listed as evokable inventory items.

--------------------------------------------------------------------------------
5a624920ca | evktalo | 2009-07-17 17:31:27 +0000

The oklob gauntlet turned into an impromptu Zot entry vault on D:27 - altered 
some DEPTH tags to try to avoid this.

--------------------------------------------------------------------------------
9b1cdaf406 | j-p-e-g | 2009-07-16 22:23:42 +0000

Fix 2819298: sling bullets not counting towards _ammo_count for slings Fix 
2822293: colour "slot restricted" darkgrey on % screen Fix 2822279: polymorph 
other taking MR into account Fix 2821651: berserking monsters respecting 't' 
orders

--------------------------------------------------------------------------------
e5921968c3 | j-p-e-g | 2009-07-16 21:26:13 +0000

Reduce the chance for the new alternative water tiles as they make them a bit 
too unruly for my taste. We might even want to remove the alternative for 
shallow water entirely, seeing how they're often just puddles, but for now I 
think it's okay.

--------------------------------------------------------------------------------
5a4c99fc27 | dolorous | 2009-07-16 17:49:07 +0000

Tweak the duration of soul-marking one more time.

--------------------------------------------------------------------------------
3c2b4ba3c7 | dolorous | 2009-07-16 17:29:22 +0000

Add miscellaneous Enslave Soul fixes: make the mark last for 2 turns instead of 
1 at 0 Invocations, since the mark expires on the last turn, and fix inverted 
logic for determining when an enslaved soul should be twisted.

--------------------------------------------------------------------------------
8456b844c6 | dolorous | 2009-07-16 16:19:12 +0000

Update the Enslave Soul ability description one more time.

--------------------------------------------------------------------------------
54cf1bc04d | dolorous | 2009-07-16 16:08:48 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
508e46c4ef | dolorous | 2009-07-16 15:57:22 +0000

Make the chance of getting an intact enslaved soul from Yred dependent on 
Invocations skill instead of straight 50%.

--------------------------------------------------------------------------------
a6e2dbfb70 | dolorous | 2009-07-16 15:28:46 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
5feccd8e03 | dolorous | 2009-07-16 12:49:37 +0000

Fix inconsistencies with resistance displays in the "%" screen, including a fix 
for [2822291].  (For the record, there still seem to be some inconsistencies 
with how many levels some resistances have; do acid resistance and clarity have 
3 levels or 1?)

--------------------------------------------------------------------------------
419037df33 | j-p-e-g | 2009-07-15 21:54:04 +0000

Apply patch by zebez to add variants for a number of tiles (mostly mirrored) as 
well as some nicer tiles for disturbance in water and the entrance to Pan. 
Thanks!
Also, update commandline options help to use of species/job.

--------------------------------------------------------------------------------
22fdbcb9d2 | evktalo | 2009-07-15 19:36:10 +0000

Four new temple vaults.

--------------------------------------------------------------------------------
caf27fb755 | dolorous | 2009-07-15 13:45:52 +0000

Fix gloved butchery, using part of evktalo's patch plus a minor hack to ensure 
that the gloves are removed exactly when they should be.

--------------------------------------------------------------------------------
9238257d62 | evktalo | 2009-07-15 10:23:29 +0000

Make ghosts, elementals, ball lightnings and orbs of fire M_LEVITATE instead of 
M_FLIES. (Darshan, syllogism)

--------------------------------------------------------------------------------
8a38e4765e | dploog | 2009-07-15 04:21:25 +0000

Reduce chances to spot the secret doors into the dangerous chambers of the 
elemental entry vault. (Zauren)

--------------------------------------------------------------------------------
f6c9ed8736 | j-p-e-g | 2009-07-14 22:45:38 +0000

Comment fix.

--------------------------------------------------------------------------------
314d93a981 | j-p-e-g | 2009-07-14 22:41:26 +0000

Fix closing/opening doors not prompting if there are several adjacent doors. 
Also, confusion is now handled more consistently.

--------------------------------------------------------------------------------
26f8d2de7b | j-p-e-g | 2009-07-14 20:26:05 +0000

Tweak Shoals algorithm to place the islands a bit more central and away from 
the border (so they're not cut off anymore). Also add a new feature type 
DNGN_OPEN_SEA that is an impassible feature only intended for the Shoals 
border. Will need special handling for confusion, I guess. I've also tweaked 
the level generation, so Shoals vaults don't need to be connected anymore (the 
algorithm just adds superfluous floor corridors), but I still get loads of 
corridors on the bottom level - frustratingly enough only inside the map 
border, and they (usually) don't even contain any stairs or other features. 
It's maddening!

--------------------------------------------------------------------------------
258300c2d7 | dshaligram | 2009-07-14 14:04:36 +0000

Fix Zot random non-minivaults not being placeable. This change also allows 
random vault use on top of 'layout' maps.

--------------------------------------------------------------------------------
432a476393 | dshaligram | 2009-07-14 12:49:16 +0000

Fix bug that prevented the random placement of minivaults (syllogism)

--------------------------------------------------------------------------------
fb79a7fe55 | dshaligram | 2009-07-13 18:20:54 +0000

Add milestones for progress in ziggurats (##crawl, dpeg).

--------------------------------------------------------------------------------
429cc16cb8 | j-p-e-g | 2009-07-13 17:14:35 +0000

* Add a tile for detected secret doors as suggested by zebez, then turned   the 
idea on its head. * Fix corpses getting the wrong blood stain background tile 
(also a   patch by zebez), and change around the colours a bit: a red blood   
stain now shows that Vampires can drain the corpse, undrainable   corpses get 
the green background instead * Apply a small patch by Josh Triplett to give 
more appropriate messages   when glowing weapons are sacrificed and disappear 
"without a glow"

--------------------------------------------------------------------------------
e7f07ca398 | dolorous | 2009-07-13 15:46:38 +0000

Make mutations from god-given spell miscasts count as god-given mutations.

--------------------------------------------------------------------------------
5d5987a633 | dolorous | 2009-07-13 14:15:26 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
03959cdb26 | dolorous | 2009-07-13 13:21:12 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
7abbab5a09 | evktalo | 2009-07-12 21:39:02 +0000

Fix for BR#2820443: Crawl will now read and keep cursor size information from 
Windows when it starts. TODO: Make it respect changes to cursor size while 
running. Thanks to Darshan for all the pointers!

--------------------------------------------------------------------------------
db26ba941c | dolorous | 2009-07-12 18:39:42 +0000

Resimplify again.

--------------------------------------------------------------------------------
bb8ae716b8 | dolorous | 2009-07-12 18:31:49 +0000

Resimplify ghoul claw display.

--------------------------------------------------------------------------------
17a3b5eb02 | dolorous | 2009-07-12 18:25:06 +0000

Really fix the display of ghouls' claws on the "A" screen.

--------------------------------------------------------------------------------
76c9e52b70 | dolorous | 2009-07-12 18:02:48 +0000

Simplify the display of ghouls' claws on the "A" screen.

--------------------------------------------------------------------------------
53b88f7ab3 | evktalo | 2009-07-12 16:30:47 +0000

* Let Ghouls wear gloves again (they have the equivalent of MUT_CLAWS 1) * Have 
Ghouls' mutation screen mention the claws

--------------------------------------------------------------------------------
32db69fe90 | j-p-e-g | 2009-07-12 16:19:55 +0000

Apply my previous commit to trunk: plants/fungi not triggering conducts.

--------------------------------------------------------------------------------
c8e3a82938 | dolorous | 2009-07-12 15:29:57 +0000

Resort the maces and flails so that they're in ascending order of damage again 
after the recent adjustments.

--------------------------------------------------------------------------------
98ec0f6dd0 | evktalo | 2009-07-12 13:21:55 +0000

Cosmetic fix.

--------------------------------------------------------------------------------
081535b6cf | evktalo | 2009-07-12 12:21:20 +0000

Forgot to save all the changes before previous commit; here's more "her", 
"his", "its" --> @possessive@ changes.

--------------------------------------------------------------------------------
43e5bdb75e | evktalo | 2009-07-12 12:11:16 +0000

Replaced "his", "her" and "its" with @possessive@.

--------------------------------------------------------------------------------
406496ad1c | j-p-e-g | 2009-07-12 11:28:10 +0000

Fix monsters not entering map edge.

--------------------------------------------------------------------------------
5989395ace | evktalo | 2009-07-12 10:12:45 +0000

In mons_pronoun, consider Kirke female.

--------------------------------------------------------------------------------
dff2c6cbba | dolorous | 2009-07-12 08:29:41 +0000

Add missing ability description.

--------------------------------------------------------------------------------
3889c68a4f | dolorous | 2009-07-12 08:19:20 +0000

Mention the mutation-curing ability on the "^" screen.

--------------------------------------------------------------------------------
21695abdc3 | dolorous | 2009-07-12 08:05:12 +0000

Give Zin a one-shot ability at piety > 160 (cf. TSO's/Lugonu's weapon 
blessings) to remove all mutations.

--------------------------------------------------------------------------------
f14293feb8 | dolorous | 2009-07-12 07:29:49 +0000

Typo fix.

--------------------------------------------------------------------------------
058f2c9536 | dolorous | 2009-07-12 07:15:00 +0000

Make troll hides and troll leather armors light armors, to match their light 
armor flags.

--------------------------------------------------------------------------------
144d923598 | j-p-e-g | 2009-07-11 23:18:30 +0000

Detected secret doors are now treated as a distinct new door type, so that 
stupid monsters will continue to ignore them as long as they've never been 
opened.
Shifts wall and door types of existing save files.

Also apply patch by one the "nobodies" to make bloody tiles show up again.

--------------------------------------------------------------------------------
cc99e42dae | dolorous | 2009-07-11 17:22:32 +0000

Tweak wording.

--------------------------------------------------------------------------------
02fc9d6612 | dolorous | 2009-07-11 17:18:55 +0000

Prompt before blessing the player's wielded weapon.  Since TSO uses the altar 
for evil item sacrifices as well as weapon blessings, this allows the player to 
do the latter without doing the former.

--------------------------------------------------------------------------------
240d34ef7d | dolorous | 2009-07-11 16:49:25 +0000

Adjust god ability descriptions a bit.

--------------------------------------------------------------------------------
0a3ce5265c | dolorous | 2009-07-11 16:08:08 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
02e8a1b752 | dolorous | 2009-07-11 15:59:51 +0000

Add missing blank line.

--------------------------------------------------------------------------------
7447619bcc | dolorous | 2009-07-11 15:57:24 +0000

Move the non-random part of mutation removal into its own function.

--------------------------------------------------------------------------------
927eafb9e1 | dolorous | 2009-07-11 14:14:41 +0000

Allow the mutation resistance mutation to be god-gifted again, since god-gifted 
mutations now ignore it.

--------------------------------------------------------------------------------
e9eb138981 | dolorous | 2009-07-11 13:42:41 +0000

Let god-given mutation effects override the mutation resistance mutation again.

--------------------------------------------------------------------------------
03b86669c6 | evktalo | 2009-07-11 12:45:13 +0000

Avoid additional fish in portal_sewer_entry_d.

--------------------------------------------------------------------------------
d64eb21808 | evktalo | 2009-07-11 12:40:58 +0000

Make portal_sewer_entry_c rarer.

--------------------------------------------------------------------------------
5fea6587dc | dolorous | 2009-07-11 12:21:22 +0000

Make Yred's Drain Life work on summons again, too, but without the healing.

--------------------------------------------------------------------------------
be59b04a8a | evktalo | 2009-07-11 09:40:57 +0000

Mention the effectiveness of Polymorph Other against shape-changers in the 
spell description too.

--------------------------------------------------------------------------------
fc0a7cb32c | evktalo | 2009-07-11 09:36:21 +0000

Implement FR#1756327: Polymorph other always works on shapeshifters, reverting 
them to their original form (they immediately polymorph again on their turn). 
Wand of polymorph other description mentions it being effective against 
shapechangers.

--------------------------------------------------------------------------------
145a784f92 | evktalo | 2009-07-11 09:07:45 +0000

Implement FR#2812523: Vampiric Draining works against summons, just without the 
healing.

--------------------------------------------------------------------------------
72cbf102e2 | evktalo | 2009-07-11 08:39:20 +0000

Spacing fix.

--------------------------------------------------------------------------------
a283c61f57 | evktalo | 2009-07-10 18:36:21 +0000

Some weapons stat tweaks as per FR#2793567 by Megane (with suggestions from 
Lemuel). Whips are now faster, eveningstars are more powerful, blessed blades 
are always better than basic versions, giant maces and clubs are much improved.

--------------------------------------------------------------------------------
8eaf2628e1 | evktalo | 2009-07-10 17:13:28 +0000

Comment fix.

--------------------------------------------------------------------------------
95935fd7c1 | dolorous | 2009-07-10 16:22:11 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
dad9db1f20 | dolorous | 2009-07-10 16:17:11 +0000

Increase duration of Yred's soul-marking.

--------------------------------------------------------------------------------
b9ec191e5b | dolorous | 2009-07-10 15:53:50 +0000

Implement [2805989]: Improve Yred's Enslave Soul ability.  Remove the 
HD-dependent random resistance check, replace it with an Invocations-dependent 
timeout, and restrict it to monsters that are no worse than lightly 
wounded/damaged.

--------------------------------------------------------------------------------
49acbb9fe3 | dolorous | 2009-07-10 15:47:04 +0000

Indicate in a monster's description if it's mindless.  This is mostly for 
healers, since mindless things can't be pacified.

--------------------------------------------------------------------------------
7d68c463cb | dolorous | 2009-07-10 14:39:23 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
5d87f8966f | evktalo | 2009-07-09 20:36:50 +0000

Swap the colours of Snorg and Purgy (now LIGHTGREEN and GREEN, respectively). 
Also, recolour Nessos as MAGENTA at least tentatively.

--------------------------------------------------------------------------------
873c564dcd | evktalo | 2009-07-09 20:16:56 +0000

* Summon Small Mammals gives maximum of 2 mammals per casting. The possibility 
of getting two begins at power 32, where it used to be guaranteed. At maximum 
power (80), you should be getting about 1.75 per casting.
* Instead of rerolling, give good god worshipers a green rat when they'd 
otherwise get an orange rat.

--------------------------------------------------------------------------------
230557b313 | dolorous | 2009-07-09 15:18:14 +0000

Add minor fixes.

--------------------------------------------------------------------------------
0b4d91ee71 | evktalo | 2009-07-09 15:11:18 +0000

Add a new low-level unique: Purgy, the meek troll. Used in a Sewer vault.

--------------------------------------------------------------------------------
67d64d5da2 | dolorous | 2009-07-09 14:23:42 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
81ab2d0292 | dolorous | 2009-07-09 00:22:23 +0000

Fix [2818619]: Clarify display of multiple levels of the "spit poison" mutation.

--------------------------------------------------------------------------------
525a9c680e | dolorous | 2009-07-07 14:59:14 +0000

Fix compilation.

--------------------------------------------------------------------------------
e734432458 | j-p-e-g | 2009-07-07 10:44:55 +0000

Tiles: Save per-character equipment setting and use it in the character        
selection menu.
TODO: Use this instead of dolls.txt for initialising dolls, falling back on
      dolls.txt if name.tdl cannot be found and for new characters.

I've tried displaying floor type but found it resulted in an information
overload, and also distracts from the main information (species,
equipment), esp. since it's mostly floor and most of the tile is covered
anyway. I left it in (though commented out), so it's in the repository,
but will remove it afterwards.

--------------------------------------------------------------------------------
1219201e40 | evktalo | 2009-07-07 09:48:47 +0000

Change "resting" to "dormant" for undead, non-living and plant monsters. (Adam 
Borowski)

--------------------------------------------------------------------------------
47214b7775 | evktalo | 2009-07-07 08:56:25 +0000

New sewer entry vault; also altered sewer_kobolds a bit - there seemed to be a 
place that you could get stuck in.

--------------------------------------------------------------------------------
f8ddd7fae6 | evktalo | 2009-07-06 20:00:19 +0000

Apply jarmok's patch (FR#1768835): visored helmet prevents bite attack.

--------------------------------------------------------------------------------
37e2e34541 | evktalo | 2009-07-06 08:43:11 +0000

Increase the magic resistance of monster purple draconians. (Darshan)

--------------------------------------------------------------------------------
7058e5a093 | evktalo | 2009-07-06 08:39:19 +0000

Show undead, nonliving and plant monsters as "resting" instead of "sleeping" in 
the monster panel.

--------------------------------------------------------------------------------
0e0d7e925d | evktalo | 2009-07-06 08:33:19 +0000

Fix a deprecated F statue symbol.

--------------------------------------------------------------------------------
38f009e66b | evktalo | 2009-07-06 08:12:56 +0000

Fix BR#2816791: missing temple entrance in temple_firewalk

--------------------------------------------------------------------------------
1a31c65e9f | evktalo | 2009-07-06 08:05:25 +0000

Fix typo.

--------------------------------------------------------------------------------
37caba740f | evktalo | 2009-07-06 08:00:50 +0000

Mention halo and extending summons/charms in the TSO powers description.

--------------------------------------------------------------------------------
eca574ec5f | dolorous | 2009-07-05 23:45:19 +0000

Add formatting fixes.

--------------------------------------------------------------------------------
67fd9a8cc1 | j-p-e-g | 2009-07-05 21:11:56 +0000

Use MOUSE_MODE_MORE during the ring swap prompt, so mouse clicks are ignored 
instead of taking zero turn actions or crashing the game.

--------------------------------------------------------------------------------
4cee10a22c | dolorous | 2009-07-05 15:11:05 +0000

Also mark the amulet of the gourmand as useless if we have the gourmand 
mutation.

--------------------------------------------------------------------------------
9256d7e70d | dolorous | 2009-07-05 14:47:10 +0000

Fix [2816850]: Mark the amulet of the gourmand as useless for level 3 
herbivores, since they can't eat chunks at all; and mummies, since they can't 
eat at all.

--------------------------------------------------------------------------------
adf10d7dd2 | j-p-e-g | 2009-07-04 21:18:28 +0000

Fix 2815574: Venom card not waking monsters. Fix 2815185: Not updating wield 
display for rotting chunks. Fix 2812496: Wrong message when attempting to chop 
with unwieldable              weapons. (Small patch by rafalmaj.) Fix 2811476: 
Turn autopickup back on when gaining see invisible              (mutation, 
ring, artefact, spell). Fix 2806314: Remove coinflip() for Sandblast range. 
Wielding rocks now              guarantees range of 2.

--------------------------------------------------------------------------------
a51373bd73 | dolorous | 2009-07-04 17:32:32 +0000

Add punctuation fixes.

--------------------------------------------------------------------------------
c26c1d03ff | dolorous | 2009-07-04 05:59:42 +0000

Add minor wording fixes.

--------------------------------------------------------------------------------
2440ea297d | zelgadis | 2009-07-03 23:32:50 +0000

Update use of "fixed" in relation to artefacts.
Note that helmets which are winged/plumed/etc aren't necessarily special.

--------------------------------------------------------------------------------
cb7b5313b3 | j-p-e-g | 2009-07-03 23:12:08 +0000

Add some documentation on the steps needed for a project release.

--------------------------------------------------------------------------------
ab971eca3b | j-p-e-g | 2009-07-03 23:05:47 +0000

* Overhaul Crawl's man page as per Markus Maier's suggestions. * Add Enne's 
list of benefits of using openGL to the FAQ, copied   verbatim from r.g.r.d.
Thanks!

--------------------------------------------------------------------------------
e03b7f869d | zelgadis | 2009-07-03 16:37:38 +0000

Updated randart answer to match the merger of fixed arts into unrands.

--------------------------------------------------------------------------------
2c2a0304ec | j-p-e-g | 2009-07-03 16:18:02 +0000

* Fix centaur/naga tiles not being displayed correctly in the character   
selection menu. * Add dolls_data to player_save_info struct, to make it easier 
to read   in per-character doll information once we get around to that.   
Including the tiledef files in externs.h is probably overkill, though,   so we 
might want to move player_save_info into another header file. * Fix Xom's repel 
stair effect moving shops. * Fix decks granting permanent summons at low power 
(and only at low   power). * Make default settings of the brand options 
consistent between init.txt   and initfile.cc. * Update FAQ.

--------------------------------------------------------------------------------
1127ccc6b5 | j-p-e-g | 2009-07-02 08:42:38 +0000

Set svn properties for patch_guide.txt.

--------------------------------------------------------------------------------
8b092953bd | j-p-e-g | 2009-07-02 08:37:30 +0000

Add a document explaining about how to build a patch.

--------------------------------------------------------------------------------
f4fe098066 | j-p-e-g | 2009-07-01 23:28:27 +0000

Add player icons (default species/job tile) to the selection menu for saved 
games.
Bugs/issues:
* cannot handle more lines than fit the screen [*]
* does not show actual equipment
* probably should respect dolls.txt settings

I guess the equipment problem could be solved by yet another per-character 
save file similar to dolls.txt, so newgame.cc could read directly from this 
rather than have to open the save to calculate equipment tiles or any such 
insanity.

*) presumably because maxpagesize() assumes the entire screen is
available for use by the menu

--------------------------------------------------------------------------------
995e35a5fa | dolorous | 2009-06-30 15:53:00 +0000

Fix [2813620]: The sizes of player nagas and centaurs don't match the sizes of 
their monster equivalents.  The latter are SIZE_BIG, while the former are, at 
most, SIZE_LARGE; and SIZE_BIG, in addition to being one value higher than 
SIZE_LARGE, allows use of two-handed weapons as though they're 
one-and-a-half-handed weapons under the current logic in hands_reqd().  For 
now, fix this by making monster nagas and centaurs (and all other monsters 
capable of using weapons and armour) no bigger than SIZE_LARGE.

--------------------------------------------------------------------------------
e732b7ba11 | dolorous | 2009-06-30 15:41:40 +0000

Fix bad logic where the address of coinflip() was used instead of the return 
value of coinflip(), making the result always true.

--------------------------------------------------------------------------------
c401e8dc8e | dolorous | 2009-06-30 14:50:05 +0000

Simplify.

--------------------------------------------------------------------------------
16acbf55b7 | j-p-e-g | 2009-06-29 20:56:20 +0000

* Replace rock stair tiles with Eino's cool new escape hatch tiles. * Don't 
check milestones in arena mode.

--------------------------------------------------------------------------------
e66c77b50d | j-p-e-g | 2009-06-29 19:44:39 +0000

Apply caotto's neat patch to make toadstools grow on or around corpses. 
Obviously, this might affect food balance and Necromancy. Tweaks may be 
necessary, but overall this looks good.

--------------------------------------------------------------------------------
4dc30336a6 | j-p-e-g | 2009-06-29 19:25:47 +0000

Add Eino's totally awesome Grum tile, as well as my own significantly less 
awesome tile for Kirke. Thanks, Eino, you rock!
Some modifications for Kirke:
* reduce the size of Kirke's hog band
* replace Summon Ice Beasts with another instance of the "porkalator"
* give the porkalator a 33% chance of upgrading a nearby hostile monster
  to hog

Also, open a new category in dc-mon.txt for transformations, so specific
tiles are easier to add. The player's pig form now looks subtly different 
from the other hogs, some greater difference would be better, though.

--------------------------------------------------------------------------------
5060b8b617 | dolorous | 2009-06-29 14:52:38 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
37d741587d | zelgadis | 2009-06-29 06:35:58 +0000

Let search pattern extend across all lines of a monster definition.

--------------------------------------------------------------------------------
02a625bc48 | dolorous | 2009-06-29 04:19:07 +0000

Fix [2813672]: Eliminate use of non-standard C function strcasestr().

--------------------------------------------------------------------------------
876e6f79a7 | dolorous | 2009-06-28 23:41:41 +0000

Typo fix.

--------------------------------------------------------------------------------
b75573a9c0 | dolorous | 2009-06-28 23:23:15 +0000

Add punctuation fixes.

--------------------------------------------------------------------------------
72b2f48d51 | j-p-e-g | 2009-06-28 21:15:38 +0000

Add new unique gnoll Grum, courtesy of Eino's patch. Thanks! Also added a 
preliminary tile.

--------------------------------------------------------------------------------
14ef201543 | j-p-e-g | 2009-06-28 18:28:54 +0000

Applying Eino's patches renaming snakes and eels.

--------------------------------------------------------------------------------
2d53bc7872 | dploog | 2009-06-28 07:11:28 +0000

Remove two unfinished vaults from last commit.

--------------------------------------------------------------------------------
85bbe69c7c | dploog | 2009-06-28 07:08:51 +0000

Two more instances of deprecated R glyphs in maps (Eino).

--------------------------------------------------------------------------------
61ec8a7fa0 | zelgadis | 2009-06-28 05:36:43 +0000

Now any noisy unrandart weapon can have its own set of messages, not just the 
Singing Sword.  No new messages for the spear of the Botono or the Elemental 
Staff, though.

--------------------------------------------------------------------------------
80efaa1927 | dolorous | 2009-06-28 04:26:42 +0000

Implement [2812924]: Make cold-flavored monster attacks properly affect 
monsters (e.g. slow them if they're cold-blooded), as fire-flavored monster 
attacks already do.

--------------------------------------------------------------------------------
e2537ef139 | dolorous | 2009-06-28 03:40:19 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
12d9e94201 | zelgadis | 2009-06-28 00:45:09 +0000

Gave more unrandarts elemental (shimmering/changing/etc) colours.  44 now have 
elemental colours, with 30 having normal, unchanging colours.

--------------------------------------------------------------------------------
0b56ccc1b8 | zelgadis | 2009-06-27 22:40:38 +0000

Fixed item_value() valuation of unrandarts with non-standard values.

--------------------------------------------------------------------------------
1be101fd1f | j-p-e-g | 2009-06-27 17:04:31 +0000

Apply patch by Adam Borowski, introducing new unique enchantress Kirke. This 
includes a new transformation TRAN_PIG that the player can not end at will but 
rather will have to time out. Pigs (or rather hogs) are fast but cannot use any 
equipment except amulets, or cast spells. If the transformation would cause 
death by stat loss (due to equipment loss) the player is paralysed instead.

--------------------------------------------------------------------------------
39e1fb93fe | dolorous | 2009-06-27 11:35:27 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
c2e9a6bbb5 | dolorous | 2009-06-27 11:33:06 +0000

Typo fix.

--------------------------------------------------------------------------------
8ffc1d0f5d | dolorous | 2009-06-27 11:29:36 +0000

Fix compilation.

--------------------------------------------------------------------------------
ba538e9810 | zelgadis | 2009-06-27 10:43:43 +0000

Remove invalid wield warning.

--------------------------------------------------------------------------------
88c9d616cd | j-p-e-g | 2009-06-27 10:42:01 +0000

Fix Peter's rltiles/tool warnings.

--------------------------------------------------------------------------------
7aa3305f41 | zelgadis | 2009-06-27 09:58:49 +0000

* Moved most hard-coded non-standard unrandart behaviour to art-func.h,   
specifically code for equipping, unequpping, an equipped unrandart doing   
something every time world_reacts() is called (special wield effects),   melee 
hit effects, and evoking.  Left hardcoded outside of art-func.h:
  * Sword of Cerebov temproarily downgrading the defender's fire
    resistance.

  * Staff of Olgreb boosting poison spells, as if it were a staff
    of poison.

  * Vampire's Tooth always getting maximal vampiric drain.

  * Mace of Variablity's initial pluses being chosen at creation time.

* Since what used to be special wield effects is now handled very
  differently, noisy weapons and the lantern of shadows effects
  are handled with player attributes rather than SPWLD_NOISES and
  SPWLD_SHADOW.

* Unrandarts can now have an elemental colour for their colour
  (currently only used for the Mace of Variability).

* Unrandarts' value modification, being special, and being
  evil are now handled in art-data.txt rather than being hardcoded.

--------------------------------------------------------------------------------
3cc681e30a | j-p-e-g | 2009-06-26 23:10:17 +0000

* Also allow definition of equipment tiles in art-data.txt. * Rename some tiles 
and tile folders.

--------------------------------------------------------------------------------
00ceeefaae | dploog | 2009-06-26 17:48:29 +0000

Deprecate various symbols for vault making: F (was granite statue or rarely 
hostile statue), P (was non-guaranteed rune), R (was chance between honeycomb 
and royal jelly). Patch by Zaba.

--------------------------------------------------------------------------------
ff3b2cc007 | dolorous | 2009-06-26 15:29:49 +0000

Properly set more SVN properties.

--------------------------------------------------------------------------------
2f4e7b8e26 | j-p-e-g | 2009-06-26 10:40:41 +0000

Add tile definitions into art-data.txt, though only for the item tiles. (The 
doll definitions are too complicated.)

--------------------------------------------------------------------------------
f0c0cfd09c | dolorous | 2009-06-26 04:51:35 +0000

Typo fixes.

--------------------------------------------------------------------------------
37bed71089 | zelgadis | 2009-06-26 04:07:54 +0000

Unrandart properites which are either on/off are now turned on via the BOOL 
field, with the different properties all listed at once, separated by commas.  
E.g., "BOOL: poison, life, elec" gives resistance to posion, negative energy 
and lightning.
Added documentation of fields to art-data.txt

--------------------------------------------------------------------------------
639b1fdb02 | zelgadis | 2009-06-26 01:04:41 +0000

Fix special wield effects for former fixed arts.

--------------------------------------------------------------------------------
c49670d415 | zelgadis | 2009-06-26 00:47:41 +0000

Fix description of unrandarts.

--------------------------------------------------------------------------------
d8c8e32023 | zelgadis | 2009-06-26 00:28:00 +0000

Oops, unrandarts weren't having their properties properly set.

--------------------------------------------------------------------------------
b791456793 | zelgadis | 2009-06-25 22:50:05 +0000

Replace "is_random_artefact()" with "is_artefact()" in a few places where this 
was missed, and add checks for unrandart and special unrandarts where 
applicable.

--------------------------------------------------------------------------------
048093d6df | j-p-e-g | 2009-06-25 20:59:40 +0000

Add more semi-animations to the dungeon. This just means that some tiles with 2 
or more variants get a random one whenever the buffer is refilled. Right now 
the following tiles are variable like that: * Item: orb of Zot (should be the 
only animated item in the game) * Features: portal, abyssal exit, altars to 
Xom/Makhleb, lava
I also added tiles for the crystal spear (nice) and the ratskin cloak
(abysmal). I also tidied up the tiles some more.

--------------------------------------------------------------------------------
cc56c117f1 | zelgadis | 2009-06-25 20:50:45 +0000

Make the "more" line of the spell memorization menu show the number of 
available spell levels, the number of spell books which can't be read from, and 
the number of spells which can't be memorized due to player's species.
Make the spell memorization confirmation prompt show the number of
spell levels to be consumed by memorization, and the number which will
be left after memorization.

--------------------------------------------------------------------------------
a6cc69a168 | zelgadis | 2009-06-25 18:14:33 +0000

Remove "#define SPWPN_FOOBAR UNRAND_FOOBAR" backwards compatibility for 
fixed-art brand_type enumerations.

--------------------------------------------------------------------------------
c9af2ce662 | dolorous | 2009-06-25 12:47:08 +0000

Typo fixes.

--------------------------------------------------------------------------------
1a725b5ffa | j-p-e-g | 2009-06-25 09:30:14 +0000

Apply r10037 to trunk: arena documentation.

--------------------------------------------------------------------------------
5b10a9fe6e | j-p-e-g | 2009-06-25 09:09:42 +0000

Fix tiles build, and mention tiles handling in art-data.txt.

--------------------------------------------------------------------------------
b26e46df23 | zelgadis | 2009-06-25 04:49:36 +0000

Repair fixed/unrand mixed pointed out by David.

--------------------------------------------------------------------------------
2fad05374f | zelgadis | 2009-06-25 02:29:14 +0000

First part of the merger of fixed artefacts into unrandom artefacts (further 
changes will be much smaller).  Breaks savefile compatibility, and bumps the 
major savefile version up to 6.
Some changes made to some tiles files, but it hasn't been tested with a tiles
build.

Overview of changes:

* Unrand artefacts are now defined in art-data.txt and is turned into
  C code via util/art-data.pl.  This has the dual advantage of being
  more readable by humans, and that if the unrand data structure
  changes then you can just change util/art-data.pl and regenerate
  the C code rather than having to change some 70 different C structs
  by hand.

* util/art-data.pl automatically updates NO_UNRANDARTS, and also
  automatically generates an enumeration of all the unrands which are
  equal to their item.special field.

* randart.cc and randart.h have been renamed to artefact.cc and artefact.h,
  since the files covers all types of artefacts, and the differences
  between randarts, unrandarts and (former) fixed arts have been
  minimized since the terms were introduced.  Also renamed unrand.h to
  art-data.h

* The brands and resistances of former fixed arts are now handled via
  artefact properties, but the rest of their special behaviours are still
  hardcoded.

* Unrandarts are now distinguished between normal and "special",
  with the special ones currently just being identical to the list of
  the formed fixed arts.  Special unrandarts are randomly generated less
  often than normal unrandarts, can be generated in the Abyss if they've
  been lost, can't be picked up by monsters, and can't be affected by
  Tukima's Dance.

--------------------------------------------------------------------------------
ab0e3274d5 | j-p-e-g | 2009-06-24 21:53:22 +0000

Apply r10031 to trunk.

--------------------------------------------------------------------------------
b6f98c66de | j-p-e-g | 2009-06-24 21:17:25 +0000

Allow lava tiles to look different from turn to turn to give the impression of 
boiling lava. It's a very neat effect if I may say so. I've got some more ideas 
along that scale but those will require new tiles (or rather tweaked existing 
ones) that'll make old saves look wonky, something I'm trying to avoid until 
we've got a halfway playable official tiles version out there. Has the side 
effect of visualizing how often the tiles buffer gets updated, apparently not 
remotely as often as I thought, but rather with every viewwindow which seems 
reasonable.

--------------------------------------------------------------------------------
853833ef19 | dploog | 2009-06-24 15:37:37 +0000

Allow the level builder to try to place another vault after choosing one of the 
smaller minivaults, leading to more interesting vaults.

--------------------------------------------------------------------------------
50f205740c | j-p-e-g | 2009-06-24 06:52:51 +0000

Apply my previous commit to trunk.

--------------------------------------------------------------------------------
34c9b0d27c | dolorous | 2009-06-24 04:13:58 +0000

Give ossuary.des proper SVN properties.

--------------------------------------------------------------------------------
4cc5c01913 | dploog | 2009-06-24 02:55:47 +0000

Rename Minitomb (a portal vault made by Zaba) to Ossuary.

--------------------------------------------------------------------------------
f4215d61e1 | dploog | 2009-06-23 18:34:17 +0000

Correct CHANCEs for ziggurats (Darshan). Also made shallow portals to ziggurats 
slightly more probable.

--------------------------------------------------------------------------------
702ff1be2f | dolorous | 2009-06-23 17:16:55 +0000

Fix redundancy in Xom teleportation journey note.

--------------------------------------------------------------------------------
82367e1b57 | dploog | 2009-06-23 01:47:58 +0000

Added some missing no_monster_gen to entry vaults.

--------------------------------------------------------------------------------
ca2f459c0c | dploog | 2009-06-22 21:33:41 +0000

Added new vault (Zaba).

--------------------------------------------------------------------------------
9d966b8b82 | j-p-e-g | 2009-06-22 20:04:08 +0000

Better feedback on old saves/bones.

--------------------------------------------------------------------------------
a34de2b319 | j-p-e-g | 2009-06-22 19:17:05 +0000

Apply crash fixes to trunk.

--------------------------------------------------------------------------------
53b94b89c7 | j-p-e-g | 2009-06-21 21:25:58 +0000

Apply commits r10013 and 10014 to trunk.

--------------------------------------------------------------------------------
43b1796995 | j-p-e-g | 2009-06-20 21:34:03 +0000

Apply my tile doll fixes to trunk.

--------------------------------------------------------------------------------
807b16ee9d | j-p-e-g | 2009-06-20 16:23:53 +0000

Also remove the "chunks about to rot away" warning in trunk.

--------------------------------------------------------------------------------
2971eb60b2 | j-p-e-g | 2009-06-20 15:48:37 +0000

Another (final?) update of the doll selection prompt. Things now work exactly 
like I envisioned them, and I think we can take the current state and use it 
for 0.5.1.

--------------------------------------------------------------------------------
f41625092d | dploog | 2009-06-19 18:44:17 +0000

A few additions to appendix 5 of the manual (list of afflictions and 
enchantments).

--------------------------------------------------------------------------------
7fcf92b49e | dploog | 2009-06-19 17:01:55 +0000

Slightly change Elyvilon's ^! text on pacification.

--------------------------------------------------------------------------------
b9b26f6ed6 | dolorous | 2009-06-18 23:56:01 +0000

Add proper SVN properties to dolls.txt.

--------------------------------------------------------------------------------
744953395a | dploog | 2009-06-18 22:44:18 +0000

New entry vault (Lordsloth).

--------------------------------------------------------------------------------
d05d98b63e | j-p-e-g | 2009-06-18 22:16:44 +0000

Fix crashes when spore explosions kill the attacking monster. And we're at our 
10.000 commit! o_O

--------------------------------------------------------------------------------
d120c8b855 | j-p-e-g | 2009-06-18 21:03:49 +0000

Another step on the way to player doll customization. Including some predefined 
doll settings in dolls.txt, so players can actually use this. TODO: Save choice 
back into file.

--------------------------------------------------------------------------------
92f29fb388 | dploog | 2009-06-18 19:48:18 +0000

Added minivault (Joshua). Update CREDITS.

--------------------------------------------------------------------------------
1e9eaa16a3 | j-p-e-g | 2009-06-18 07:27:45 +0000

Allow tile players to toggle their avatar between job default, equipment, or 
predefined. Also, remove a stupid debugging statement.

--------------------------------------------------------------------------------
2c46bca1c1 | dploog | 2009-06-18 05:29:07 +0000

Add unrandart cloak (Lemuel).

--------------------------------------------------------------------------------
7b768f7fac | j-p-e-g | 2009-06-17 21:36:30 +0000

* More steps on the path to reintroducing player doll customization.
Also apply my two previous commits to trunk.

--------------------------------------------------------------------------------
5f770d9133 | dploog | 2009-06-16 23:23:28 +0000

Renamed the unrandart spear of Voo-Doo to spear of the Botono. Added new 
unrandart: Lehudib's crystal spear. Breakes saves, so not to be applied to the 
0.5 tree. The header of unrand.h is dated in some places.

--------------------------------------------------------------------------------
9a9653dd93 | dploog | 2009-06-16 22:00:15 +0000

Mention spell hunger costs in the manual. Also changed the section about 
primary attributes.

--------------------------------------------------------------------------------
7e82b56513 | j-p-e-g | 2009-06-16 20:37:03 +0000

Apply my previous commits to trunk: fewer uses of m_dirty, and a description 
for Sigmund.

--------------------------------------------------------------------------------
42bde3cb0c | j-p-e-g | 2009-06-16 18:22:29 +0000

Apply my mouse speed-up commit to trunk.

--------------------------------------------------------------------------------
678e0a6c13 | j-p-e-g | 2009-06-16 17:26:36 +0000

Reintroduce a *very* basic version of the player doll.
Crawl can now read in dolls.txt again but there's no in-game editor or
anything. What you can do is take your old dolls.txt file (if you still
have it) and modify the numbers until you get something you like.
Alternatively, you could create the doll settings using 0.4.5 (though
the order of weapons has changed, so they'll still look a bit different).

Yeah, I know it's a bit of a hassle but for those who absolutely *need* 
their avatar to be properly dressed it is an improvement. :)
Hint: The 5th column is for legs, i.e. trousers.

--------------------------------------------------------------------------------
141a6b8304 | j-p-e-g | 2009-06-15 20:09:19 +0000

Apply my recent commits to trunk.

--------------------------------------------------------------------------------
ceb4c8964c | peterb12 | 2009-06-15 11:55:12 +0000

Mac build fixes.

--------------------------------------------------------------------------------
6bace4cedf | peterb12 | 2009-06-15 11:54:58 +0000

Release build fixes.

--------------------------------------------------------------------------------
54705c0c81 | j-p-e-g | 2009-06-14 11:48:30 +0000

Apply my recent commits to trunk.

--------------------------------------------------------------------------------
bf43967bc6 | zelgadis | 2009-06-14 11:03:40 +0000

Merge r9975 from 0.5 branch: fix spurious line-of-fire warning bug.

--------------------------------------------------------------------------------
ba3e4b9147 | zelgadis | 2009-06-12 21:20:27 +0000

Merge r9971 from 0.5: fix self-destructing monster tacer bug (2805528).

--------------------------------------------------------------------------------
fcd17e388b | dolorous | 2009-06-11 21:09:36 +0000

Properly set SVN properties on more text files.

--------------------------------------------------------------------------------
f9ebc8f9bd | j-p-e-g | 2009-06-11 18:03:58 +0000

Apply r9964 to trunk, and documentation update.

--------------------------------------------------------------------------------
6358632409 | dolorous | 2009-06-11 15:37:07 +0000

Make messages about monsters' submerging show up again, using the same logic as 
for drowning messages (since you should be able to see a disturbance due to the 
submerging even if the monster is invisible).

--------------------------------------------------------------------------------
568460872b | dolorous | 2009-06-11 15:28:40 +0000

Fix [2804570]: Make pacified monsters leave the level when they submerge.

--------------------------------------------------------------------------------
db09981790 | j-p-e-g | 2009-06-11 09:23:54 +0000

* Rename CREDITS -> CREDITS.txt * Change Trog's Hand to rr += 100.

--------------------------------------------------------------------------------
a83003cc35 | dolorous | 2009-06-11 00:27:10 +0000

Fix Trog's Hand again, so that it consistently gives the same regeneration rate.

--------------------------------------------------------------------------------
0b0ada3bf7 | dolorous | 2009-06-11 00:03:54 +0000

Make Trog's Hand cause regeneration even in races that can't heal naturally 
(deep dwarves, starving vampires).

--------------------------------------------------------------------------------
9148c89ed5 | dolorous | 2009-06-10 23:45:35 +0000

Properly set SVN properties on the copy of the LGPL.

--------------------------------------------------------------------------------
6cc2e3029d | dploog | 2009-06-10 22:44:58 +0000

Mention use of SDL and SDL_image libraries in the READMEs and that they fall 
under the LGPL 2.1 license which has been added.

--------------------------------------------------------------------------------
cdaf940f3b | j-p-e-g | 2009-06-10 22:43:43 +0000

For spells with inadequate range with 'z', add a brief flash of the spell 
range. The delay might need tweaking.

--------------------------------------------------------------------------------
8139324f50 | haranp | 2009-06-10 22:15:27 +0000

Fix 2800089: the standard does not guarantee that you can convert from integer 
types to pointers and back. While we're at it, fix an older bug which might 
trigger if we ever have a platform where different pointer types have different 
sizes. Technically the standard does not guarantee (I think) that this isn't 
the case.

--------------------------------------------------------------------------------
677bb30a8e | dploog | 2009-06-10 15:17:49 +0000

Pan vaults featuring blood fountains. (Adam)

--------------------------------------------------------------------------------
1259d744b6 | j-p-e-g | 2009-06-10 14:38:24 +0000

A few consistency changes to the trunk README.

--------------------------------------------------------------------------------
7d4176701c | dploog | 2009-06-10 13:50:36 +0000

Mention Ctrl-T for tutorials (again) in README.tex and pdf.

--------------------------------------------------------------------------------
5500ccf5c9 | j-p-e-g | 2009-06-10 13:35:36 +0000

Fix lua errors for Ziggurats in Tiles.

--------------------------------------------------------------------------------
dc9cbdc0f0 | dolorous | 2009-06-10 12:10:50 +0000

Forward-port 0.5 r9938 to trunk.

--------------------------------------------------------------------------------
bf58207918 | dolorous | 2009-06-10 05:19:26 +0000

Add wording fix.

--------------------------------------------------------------------------------
8ff4daf8cf | dploog | 2009-06-10 04:31:16 +0000

Reviewed all entry vaults; apart from minor improvements, made some entries 
safer.

--------------------------------------------------------------------------------
53c4537cd6 | dploog | 2009-06-09 22:36:05 +0000

Minor changes to README files.

--------------------------------------------------------------------------------
79158e1cdf | dolorous | 2009-06-09 20:26:13 +0000

Forward-port 0.5 r9932 to trunk.

--------------------------------------------------------------------------------
f182d494b5 | dolorous | 2009-06-09 15:02:37 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
e67dc8bb39 | dolorous | 2009-06-09 15:01:24 +0000

Forward-port missing part of 0.5 r9925 to trunk.

--------------------------------------------------------------------------------
2ff6ea797e | j-p-e-g | 2009-06-09 14:50:56 +0000

Remove check for 0 MP from 'z' command.

--------------------------------------------------------------------------------
4e0fe6c197 | dolorous | 2009-06-09 14:44:28 +0000

Make Escape at the tutorial prompt take you back to the race selection screen.

--------------------------------------------------------------------------------
70d0158e1d | dolorous | 2009-06-09 14:33:26 +0000

Forward-port applicable parts of 0.5 r9925 to trunk.

--------------------------------------------------------------------------------
d4577487e6 | j-p-e-g | 2009-06-08 11:19:12 +0000

Apply tiles inscription fixes to trunk.

--------------------------------------------------------------------------------
d5f262eb18 | zelgadis | 2009-06-08 04:56:38 +0000

Since fixed artefacts are going to be folded into unrandarts, and unrandarts 
have already become almost identical to randarts, change "randart" to 
"artefact" everywhere except for things that deal exclusively with randarts.
Artefact related files will be renamed later.

--------------------------------------------------------------------------------
eff7b910f0 | dolorous | 2009-06-08 03:24:15 +0000

Resync changes.stone_soup with 0.5 again.

--------------------------------------------------------------------------------
43e1106505 | dploog | 2009-06-08 03:12:02 +0000

New bazaar map (due).

--------------------------------------------------------------------------------
fd5880c67a | dolorous | 2009-06-07 20:26:00 +0000

Fix [2777866]: Don't automatically target monster types that give no experience 
(i.e., plants and fungi).

--------------------------------------------------------------------------------
5d5389034d | j-p-e-g | 2009-06-07 19:13:12 +0000

Make weapons of reaching work through granite statues again.

--------------------------------------------------------------------------------
771ccf9a0c | dolorous | 2009-06-07 18:48:20 +0000

Make banished pacified monsters silently leave the level, and remove an unused 
parameter from _monster_die_cloud().

--------------------------------------------------------------------------------
2acc952de1 | j-p-e-g | 2009-06-07 11:59:04 +0000

* Apply r9909 to trunk. * Treat granite statues/orcish ideas as transparent 
walls for   clear_walls_block in losight(). Fixes BR 2802483.   Please run some 
tests before porting to branch in case it breaks reaching   or summoning or 
something like that.

--------------------------------------------------------------------------------
4fa98a2fc0 | dolorous | 2009-06-06 19:48:48 +0000

Fix non-tiles build.

--------------------------------------------------------------------------------
c62f818ed6 | dolorous | 2009-06-06 19:40:41 +0000

Resync changes.stone_soup with 0.5 branch.

--------------------------------------------------------------------------------
c7116e761c | j-p-e-g | 2009-06-06 19:19:35 +0000

Apply r9904 to trunk.

--------------------------------------------------------------------------------
d73eb4aaef | dolorous | 2009-06-06 03:39:26 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
58dce990ad | dploog | 2009-06-06 02:31:39 +0000

Actually generate the rune in Lemuel's Swamp ending.

--------------------------------------------------------------------------------
ea8a3f4c30 | dolorous | 2009-06-06 00:54:48 +0000

Forward-port applicable changes from 0.5 r9886 to trunk.

--------------------------------------------------------------------------------
a0101f6e23 | zelgadis | 2009-06-05 22:43:31 +0000

Bug 2800889: beams that can pass through a monster and run into a wall behind 
it would warn that there was a wall blocking the line of fire.

--------------------------------------------------------------------------------
aff54353f3 | dolorous | 2009-06-05 22:11:20 +0000

Forward-port applicable fixes from 0.5 r9896 to trunk.

--------------------------------------------------------------------------------
4f824cd14b | dploog | 2009-06-05 20:54:33 +0000

Added a huge number of vaults, all made by Lemuel and using fog generators. 
ice_spiral_2 complains when created via &L but seems to work fine otherwise. 
The new Swamp end may need revision.

--------------------------------------------------------------------------------
95609de1c1 | dploog | 2009-06-05 18:35:43 +0000

Added Lemuel's bazaar entries. For some reason, testing them with PLACE: D:2 
leads to buggy runes, but it works with &L. I've also begun to remove ORIENT: 
float from small vaults; I hope that's ok.

--------------------------------------------------------------------------------
557affa4f7 | dploog | 2009-06-05 17:47:32 +0000

Add some vaults (due).

--------------------------------------------------------------------------------
ce65758963 | dolorous | 2009-06-04 21:57:38 +0000

Add spelling fixes.

--------------------------------------------------------------------------------
d5c46b944d | zelgadis | 2009-06-04 19:46:18 +0000

Spellbook memorisation stuff:
* Simplify the message given when none of the available spells can
  be memorised.

* The descriptions of the three dangerous spellbooks now mention that the
  books will lash out at the player if a memorisation fails.  Also, the
  "some of the more powerful grimoires are not to be toyed with" warning
  has been removed from all of the normal spellbooks, since the dangerous
  spellbooks are adequetly warned.

* If a spell to be memorised is only available from a dangerous spell
  book then colour that spell light red and warn the player if they
  select it for memorisation. (Not yet handled is any logic for choosing
  between multiple dangerous spell books if the same spell is in more than
  one of them)

* is_dangerous_item() now returns true for the three dangerous spellbooks,
  so they'll be colored differently in the inventory.

--------------------------------------------------------------------------------
ed6970cf64 | dolorous | 2009-06-04 19:20:31 +0000

Add various fixes to the new spell memorization messages.

--------------------------------------------------------------------------------
93317003f5 | dolorous | 2009-06-04 01:54:09 +0000

Cancel Trog's Hand when you're excommunicated, as we do already when you're 
under penance.

--------------------------------------------------------------------------------
2714d313e1 | zelgadis | 2009-06-03 19:48:08 +0000

* Make messages about rotting corpses/skeletons in inventory more   concise.
* Use an alias to "you.inv[i]" instead of repeatedly using it directly.

--------------------------------------------------------------------------------
b0e9dd8144 | j-p-e-g | 2009-06-03 19:33:28 +0000

* Fix compilation for Tiles. * Make several of the old uniques appear earlier.

--------------------------------------------------------------------------------
c0baf5ac21 | zelgadis | 2009-06-03 08:43:56 +0000

* Change "Your inventory suddenly weighs less" message to messages which   are 
more self explanatory.
* Remove tutorial event explaining the "Your inventory suddenly weighs
  less".

--------------------------------------------------------------------------------
c70705a813 | zelgadis | 2009-06-02 09:08:25 +0000

FR 2722830 and related changes:
* Memorization now lists all spells in all carried books (minus spells
  which are already memorized or which can never be memorized because of
  the player's species), sorted by easy of memorization.

* Miscast effects from failing to memorize from out of the Necronomicon,
  the book of Demonology and the book of Annihilations is commented out,
  pending figuring out how to do it with the new interface.

* Spells which can't be memorized because of the player's species are
  highlighted as light red when reading a spell book, and a note is added
  when describing the spell.

--------------------------------------------------------------------------------
b8b49ddd42 | zelgadis | 2009-06-02 08:59:42 +0000

The wizard command to create a book (&%:) can now take the string "all" 
(without the quotes), which will cause all non-randart spellbooks to be created.

--------------------------------------------------------------------------------
f971ca6da4 | j-p-e-g | 2009-06-01 20:10:04 +0000

Apply r9879 to trunk, minus harpies.

--------------------------------------------------------------------------------
907c8096a9 | dolorous | 2009-06-01 18:04:58 +0000

Apply 0.5 r9875 to trunk.

--------------------------------------------------------------------------------
e9a58044e3 | dolorous | 2009-06-01 17:58:23 +0000

Fix [2794986]: Special damage descriptions weren't being displayed for weapons 
with multiple damage types.

--------------------------------------------------------------------------------
d813da0afb | j-p-e-g | 2009-06-01 15:34:21 +0000

Apply r9873 to trunk.

--------------------------------------------------------------------------------
057f3edf4f | dolorous | 2009-05-31 21:19:02 +0000

Make sure anonymous friendly monsters count as friendly for the purposes of 
undead slave kills.

--------------------------------------------------------------------------------
c9c5a253fe | dolorous | 2009-05-31 21:15:37 +0000

Consolidate the confused undead checks, and unbreak the killer index sanioty 
checks for anonymous friendly monsters (oops).

--------------------------------------------------------------------------------
bca15bacae | j-p-e-g | 2009-05-31 21:06:01 +0000

Commit r9867 to trunk.

--------------------------------------------------------------------------------
87c78aab39 | dolorous | 2009-05-31 20:49:04 +0000

Consolidate the killer index sanity checks, and unbreak attacker holiness 
checks (oops).

--------------------------------------------------------------------------------
64bbfca8bb | dolorous | 2009-05-31 19:19:11 +0000

Clean up monster_die(): Add killer index sanity checks, and save monster 
friendliness, holiness, and anonymity in variables instead of manually 
accessing them twice.

--------------------------------------------------------------------------------
1fd9d05cd4 | dolorous | 2009-05-31 16:02:40 +0000

Forward-port updated change list from 0.5 branch r9856 and r9858.

--------------------------------------------------------------------------------
a5c9f6118f | dolorous | 2009-05-31 13:18:33 +0000

Simplify the message logic for pacified monsters' going down shafts.

--------------------------------------------------------------------------------
ff657dbbf3 | dolorous | 2009-05-31 13:10:52 +0000

Forward-port minor shaft trap tweaks for pacified monsters from 0.5 branch 
r9858.

--------------------------------------------------------------------------------
ab9e5b3a88 | zelgadis | 2009-05-30 22:51:06 +0000

Stricter sanity checking of player ghosts.

--------------------------------------------------------------------------------
f4bb02dd66 | j-p-e-g | 2009-05-30 19:13:17 +0000

* AutoID rings of teleport control after teleporting. * Fix 2788773: Infinite 
scroll uses by clicking on a stack in tiles. * Fix 2792095: Tiled menus 
possibly containing more than 52 items. * Fix clicking on items not setting 
just_clicked_on_item until after the   effect happened.

--------------------------------------------------------------------------------
5277bf424b | dolorous | 2009-05-30 16:44:14 +0000

Remove tabs.

--------------------------------------------------------------------------------
5554f58f9f | dolorous | 2009-05-30 16:32:47 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
6980c82b99 | dolorous | 2009-05-30 07:02:37 +0000

Add a message for when a pacified flying monster leaves the level via a shaft 
trap.

--------------------------------------------------------------------------------
d37e9c38c9 | zelgadis | 2009-05-30 05:31:35 +0000

Fix bug which was preventing the crash reporter from dumping the message 
history to the report file.

--------------------------------------------------------------------------------
01f51424ed | zelgadis | 2009-05-30 05:03:54 +0000

Fix crash when a monster without ammo considers dropping its launcher to pick 
up one on the floor.

--------------------------------------------------------------------------------
6a14f41c86 | zelgadis | 2009-05-29 22:46:41 +0000

Added the objective case of pronouns ("him", "her") for use in the 
blocked-line-of-fire description.

--------------------------------------------------------------------------------
0bdad6413a | zelgadis | 2009-05-29 04:44:23 +0000

Add bounds checking to line-of-fire warning code.

--------------------------------------------------------------------------------
f9bb873c8b | zelgadis | 2009-05-29 03:21:19 +0000

FR 2797173:
* When hovering the cursor/cross-hair over a visible monster which has
  a blocked line of fire, describe the monster as having a blocked
  line of fire.

* If a player tracer beam is fired at a visble monster or square which has
  a blocked line of fire, warn the player about it and allow the player
  to cancel.

--------------------------------------------------------------------------------
7c4d30f73e | dolorous | 2009-05-28 18:28:51 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
a09665b04d | dolorous | 2009-05-28 18:26:51 +0000

Add message tweak suggested in [2796890]: For players with a level of saprovore 
between 1 and 2 (inclusive) who don't like chunks, describe raw flesh as 
tasting "unpleasant" instead of "terrible."

--------------------------------------------------------------------------------
988bedb07d | zelgadis | 2009-05-28 10:38:57 +0000

Fix miscast message typo.

--------------------------------------------------------------------------------
67b7383f8f | j-p-e-g | 2009-05-28 10:06:05 +0000

Fix 2797560: Tiles crashing when clicking outside the map while targeting.

--------------------------------------------------------------------------------
64bceda514 | j-p-e-g | 2009-05-28 09:28:25 +0000

Fix fake rakshasas being described as summoned.

--------------------------------------------------------------------------------
bb8e9480ef | zelgadis | 2009-05-28 03:58:15 +0000

Reduce screen-flicker and clearing of the message window when re-doing the 
previous command (`) (at least for actions involving selecting an item from 
inventory, selecting an ability to use, selecting a spell to cast, and 
selecting a spell to memorize).
Not tested with the tiles build.

--------------------------------------------------------------------------------
0e9f823830 | zelgadis | 2009-05-28 00:53:09 +0000

FR 2722830: make memorize spell work with redo-command (`).

--------------------------------------------------------------------------------
da81aa1f63 | zelgadis | 2009-05-27 04:38:33 +0000

Bug 2792673: when attempting auto-targeting, if the only monsters in LOS have 
the line-of-firing to them blocked by a wall then auto-targetting won't happen 
and the cursor/cross-hair will remain on the player.  Give a message in such 
circumstances so the player will know why the monster wasn't auto-targetted. 
(Might also want to give the same message when doing "target cycle forward" in 
examination mode)

--------------------------------------------------------------------------------
db2529a4be | dolorous | 2009-05-26 22:55:52 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
5989b928e0 | dolorous | 2009-05-26 17:42:52 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
f7057d27e8 | dolorous | 2009-05-26 17:38:04 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
cbf38e3c13 | dolorous | 2009-05-26 16:23:15 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a33ad3c3e6 | j-p-e-g | 2009-05-26 13:47:37 +0000

Run some sanity checks when loading ghosts. If anything seems fishy * don't 
load the ghost(s) * print an error message mentioning the bones file * don't 
delete the bones file, so players can attach it to a bug report
The last point means that the player (or admin, in the case of the
servers) has to delete a buggy bones file themselves, but the benefits
of making tracking down bugs easier should outweigh that inconvenience.

Add a new wizmode command that calls debug_stethoscope even if the game 
is not compiled in debugging mode.

Also, Stone Soup 0.5 bones files are now officially incompatible with 0.4.
(The changes to the spell ids cause ghosts casting spells to crash the
game.)

--------------------------------------------------------------------------------
d73035c539 | j-p-e-g | 2009-05-26 08:39:40 +0000

Add a tutorial trigger for the highly unlikely case the player encounters a 
monster (oklob plant, hostile statue) during the tutorial that triggers an 
autoexclusion.
There really needs to be an in-game way of explaining what they're for
when such an autoexclusion happens to the player for the first time,
particularly for the tiles build where excluded grids are visibly
different from non-excluded ones. I'm afraid the FAQ is too obscure for
this one, as well. Maybe add something to descriptions of monsters that
have an exclusion centered on them?

--------------------------------------------------------------------------------
043b5d69de | dolorous | 2009-05-25 18:18:52 +0000

Add minor consistency fixes.

--------------------------------------------------------------------------------
6d82a40ed5 | dolorous | 2009-05-25 18:15:19 +0000

Make Elyvilon's evil weapon destruction messages properly account for stacks of 
weapons, for the currently unused evil missile brands.

--------------------------------------------------------------------------------
a1e498be02 | dolorous | 2009-05-25 14:18:47 +0000

Add a few more tutorial tweaks.

--------------------------------------------------------------------------------
0e88d35a45 | j-p-e-g | 2009-05-25 09:07:41 +0000

* More tutorial tweaks (tiles, mostly). * Allow (r)eplacing an existing 
inscription as a shortcut to (c)learing   + (i)nscribing.

--------------------------------------------------------------------------------
57bdaabbe4 | zelgadis | 2009-05-25 09:02:49 +0000

Reset Message_Line and New_Message_Count to 0 after loading message history 
from the save file.  This fixes a two-fold bug with the tutorial "welcome back" 
message, a lack of a --more-- prompt and some line-wrapping glitches.

--------------------------------------------------------------------------------
db5cbf586b | dolorous | 2009-05-25 07:45:35 +0000

Add more typo and wording fixes.

--------------------------------------------------------------------------------
7a1a54aea0 | dolorous | 2009-05-25 07:17:44 +0000

Typo fixes.

--------------------------------------------------------------------------------
781c1cda9c | zelgadis | 2009-05-25 07:09:56 +0000

Added some new tutorial events (not tested with the tile build):
* Auto-explore hint (200 turns after level map hint).

* Explanation of the "Your equipment suddenly weighs less" message.

* Explanations of trap and heap branding (non-tile builds only).

* A note that monsters that have moved out of LOS haven't just vanished.

* Events for gaining an ability from a mutation and gaining one from
  an item which was just equipped, separate from the event for the first
  divinely granted ability.

* An explanation that shouting monsters have just noticed you, plus that
  their shout is likely to attract the attention of other monsters.

* A "seen portal vault entrance" event, since the entry to the sewers can
  appear on DL 3 through 6, and there's also a very small chance of a
  Zigguart entrance apearing as early as DL 3.

--------------------------------------------------------------------------------
7a3b0b0a92 | dolorous | 2009-05-25 05:21:48 +0000

Add spacing fix.

--------------------------------------------------------------------------------
6ff053fecb | dolorous | 2009-05-25 05:20:53 +0000

Revert previous change, as it erroneously displays that lesser healing costs 
piety in the "a" screen.

--------------------------------------------------------------------------------
ffa43adfcb | dolorous | 2009-05-25 05:15:16 +0000

In the "^" screen, display that Elyvilon's lesser healing for yourself and 
others has a piety cost, since it does in the former case, and there's only 
room for one line there.

--------------------------------------------------------------------------------
a02d2b42da | dolorous | 2009-05-25 05:12:24 +0000

Comment fixes.

--------------------------------------------------------------------------------
c86837a908 | dolorous | 2009-05-24 19:25:49 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
d60673a651 | dolorous | 2009-05-24 19:23:00 +0000

Unrestrict OgHe, as a few other races with a staves aptitude of 120 can be 
healers (and pacification can hold off beginning monsters until they can find a 
better weapon); ogres have average invocations aptitude; and the healing powers 
can keep them alive.

--------------------------------------------------------------------------------
4fd5210858 | zelgadis | 2009-05-24 08:22:40 +0000

Tutorial changes:
- If a friendly monster is enslaved/charmed, note that it is only
  *temporarily* friendly, and that it will become hostile when its
  friendliness wears out.

- Make sure TUT_MONSTER_FRIENDLY is fired for summoned friendly
  monsters, not just for enslaved/charmed monsters.

--------------------------------------------------------------------------------
2b81f6d336 | zelgadis | 2009-05-24 07:10:46 +0000

Move tutorial ending check from gain_exp() to level_change(), so that if the 
player gains XL 7 via a potion of experience the tutorial will end.

--------------------------------------------------------------------------------
29b5d5c498 | zelgadis | 2009-05-24 05:37:19 +0000

Oops, wands are now e'V'oked, not 'Z'apped.

--------------------------------------------------------------------------------
ed1a302134 | dolorous | 2009-05-24 05:17:52 +0000

As suggested in [2795535], take current piety into account when pacifying 
monsters.

--------------------------------------------------------------------------------
0c023f544c | zelgadis | 2009-05-24 05:16:26 +0000

Tutorial changes:
* Note items which give abilities or resistances even if they're
  not equipped.

* Don't give conjurers the item note about heavy armour for non-body armour,
  but do give a note about shields making casting harder.

* Miscellaneous other improvements.

--------------------------------------------------------------------------------
bd7b5f7cce | dolorous | 2009-05-23 21:52:44 +0000

Add sanity checks.

--------------------------------------------------------------------------------
e4a8dcc31b | dolorous | 2009-05-23 21:50:37 +0000

Indicate via the message whether healing a friendly monster gained piety with 
Elyvilon, based on the previous messages.

--------------------------------------------------------------------------------
547bfe2ffd | dolorous | 2009-05-23 21:35:29 +0000

Remove one more reference to the POISONED_II missile brand.

--------------------------------------------------------------------------------
7a91270832 | dolorous | 2009-05-23 21:13:52 +0000

And tweak the formula again.

--------------------------------------------------------------------------------
8cd1ead540 | dolorous | 2009-05-23 21:12:13 +0000

Tweak the chance of gaining piety under Elyvilon by destroying missiles, since 
they're worth much less relative to weapons now that their being stacked 
doesn't count.

--------------------------------------------------------------------------------
99a2d02f8b | dolorous | 2009-05-23 20:48:22 +0000

Comment fixes.

--------------------------------------------------------------------------------
e25da1bbfc | dolorous | 2009-05-23 20:29:14 +0000

Remove unused POISONED_II missile brand, as it's redundant.

--------------------------------------------------------------------------------
00fa3aab73 | j-p-e-g | 2009-05-23 19:02:40 +0000

Give an indication of whether pacification raised piety or nor. Currently, this 
seems to hardly ever happen. (?)

--------------------------------------------------------------------------------
a63220f812 | j-p-e-g | 2009-05-23 18:43:42 +0000

Don't give away a shifter's identity post-mortem if it doesn't leave a corpse, 
so as to keep the player wondering.

--------------------------------------------------------------------------------
764966f7e5 | j-p-e-g | 2009-05-23 18:35:21 +0000

Fix evoking the box of the beasts or the efreet flask destroying or modifying 
the wielded weapon rather than the misc. item in question. Also update tooltips.

--------------------------------------------------------------------------------
093e48fae1 | dolorous | 2009-05-23 18:29:36 +0000

Fix [2795524]: Use the correct evocations aptitude for vampires in 
aptitudes.txt.

--------------------------------------------------------------------------------
f89db136d0 | j-p-e-g | 2009-05-23 18:02:41 +0000

Apply patch by Markus Maier: corrections to the manual.

--------------------------------------------------------------------------------
4426d6e72f | j-p-e-g | 2009-05-23 17:53:49 +0000

Add an option that controls whether the tiles build displays tiles in menus or 
not. (Defaults to true.) Tiled menus may seem like a great feature (and I love 
them) but they can also be a bit confusing/distracting (though much less so now 
than they used to be), and I respect that.

--------------------------------------------------------------------------------
966e7d165b | zelgadis | 2009-05-23 01:57:10 +0000

Some tutorial additions:
* In tutorial messages about butchering a corpse, give additional info
  if you're unable to butcher because you're wielding a cursed non-chopping
  weapon or because you have no chopping weapons.

* In the tutorial message about being burdened or having a full pack,
  mention that you can easily find items you've left on the ground by
  using the "search stashes" command, and also warn that items left on the
  ground can be picked up and used by monsters.

* When giving detailed info on an examined staircase, mention if the
  staircase is one that you have not yet passed through.

* A new tutorial-end hint about the #crawl IRC channel on freenode.

--------------------------------------------------------------------------------
f7d3c6a24b | j-p-e-g | 2009-05-22 09:36:06 +0000

Fix 'z' aborting for the Dig spell with no monsters in sight.

--------------------------------------------------------------------------------
fa105771ec | dolorous | 2009-05-20 14:36:41 +0000

Simplify.

--------------------------------------------------------------------------------
73cc0b8924 | dolorous | 2009-05-20 12:58:20 +0000

Properly display all enhanced stats on the "%" screen.

--------------------------------------------------------------------------------
160877d241 | j-p-e-g | 2009-05-20 07:00:21 +0000

* Add Shock/Lightning Bolt to list of spells that don't abort for 'z' if   
there are no monsters within range. * Give a message if extending a 
transformation doesn't make it last long   enough for the "about to time out" 
message. * Extension has no effect on Bat Form.

--------------------------------------------------------------------------------
e187903154 | dolorous | 2009-05-18 20:58:14 +0000

Fix shopping messages mentioning "0 gold piece", and fix reading unidentified 
scrolls of immolation counting as attacking friends.

--------------------------------------------------------------------------------
c229c0161f | j-p-e-g | 2009-05-18 13:52:43 +0000

Add Evaporate to the list of spells that get a bonus of 1 when checking range 
against distance to monsters, so z doesn't bail out if a monster is *just* 
outside the range but would be hit by the cloud.

--------------------------------------------------------------------------------
5deb29bf24 | j-p-e-g | 2009-05-18 13:26:18 +0000

* Fix Bat Form restrictions not applying to choice by clicking (Tiles). * Allow 
</> as synonyms for left/right hand in swap_rings().

--------------------------------------------------------------------------------
4cac38979d | j-p-e-g | 2009-05-17 11:00:04 +0000

Fix 2792807: Autoexplore attempting to open doors in bat form. Fix 2792782: 
vaults not initialising blood potions properly

--------------------------------------------------------------------------------
f8c5f8fbe0 | dolorous | 2009-05-17 01:38:19 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
1f5977e328 | dolorous | 2009-05-17 01:36:00 +0000

Adjust the value of large rocks again, after looking at the comparative values 
of giant clubs and giant spiked clubs.

--------------------------------------------------------------------------------
a10146ff5a | dolorous | 2009-05-17 01:29:38 +0000

When using Elyvilon's weapon destruction against missiles, count each missile 
individually, as we do with Nemelex already.  Also, increase the value of large 
rocks; they're mundane, but they do massive damage, so they should be worth 
more than ordinary darts or stones.

--------------------------------------------------------------------------------
a08c869de3 | dolorous | 2009-05-17 00:59:34 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
b9ebec07d5 | dolorous | 2009-05-17 00:30:37 +0000

Add another comment fix.

--------------------------------------------------------------------------------
41d7822afc | dolorous | 2009-05-17 00:27:26 +0000

Comment fix.

--------------------------------------------------------------------------------
3451d72641 | dolorous | 2009-05-17 00:12:35 +0000

Replace hardcoded piety value with piety_breakpoint(0).

--------------------------------------------------------------------------------
23805e8607 | dolorous | 2009-05-17 00:09:27 +0000

Make pacified monsters sometimes change the exit they're traveling towards even 
if it's reachable, as sometimes exits that are supposed to be reachable lead to 
monsters' standing in one place indefinitely.

--------------------------------------------------------------------------------
348e00452a | dolorous | 2009-05-16 14:34:47 +0000

Change the short description of Divine Vigour to "divinely vigorous" instead of 
"divinely robust", as it doesn't affect just HP anymore.

--------------------------------------------------------------------------------
123b89f428 | dolorous | 2009-05-16 05:20:47 +0000

Make Elyvilon's Divine Vigour temporarily increase MP as well as HP.

--------------------------------------------------------------------------------
0d4f396c1c | dolorous | 2009-05-16 00:41:20 +0000

Comment fix.

--------------------------------------------------------------------------------
5bf0b52eb3 | dolorous | 2009-05-16 00:30:01 +0000

Properly disallow Elyvilon's "Heal Other" abilities when they're aimed at the 
player, just as we do with Lugonu's "Banish" ability.

--------------------------------------------------------------------------------
3ac377c1d1 | dolorous | 2009-05-16 00:02:54 +0000

Simplify.

--------------------------------------------------------------------------------
2687b83ea6 | dolorous | 2009-05-15 23:38:49 +0000

Make the logic for servants' killing holy beings match that for your killing 
holy beings.

--------------------------------------------------------------------------------
c804a3c563 | dolorous | 2009-05-15 23:28:09 +0000

Fix [2792504]: Fix inverted logic causing penalties for necromancy to be 
disabled along with penalties for attacking hostile holy beings.

--------------------------------------------------------------------------------
92bd916f11 | dolorous | 2009-05-15 17:34:17 +0000

Make Yred's Recall Undead Slaves invocation train Invocations once instead of 
2-5 times, as other recall invocations do, and rename it internally for 
consistency.

--------------------------------------------------------------------------------
05639282ce | dolorous | 2009-05-15 17:27:56 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
3db5488580 | dolorous | 2009-05-15 17:12:14 +0000

Display a message when renewing TSO's divine shield, and redraw armor class 
when doing so in case it's begun to fade.

--------------------------------------------------------------------------------
879785b3d2 | dolorous | 2009-05-15 17:10:17 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
ae6df292b0 | dolorous | 2009-05-15 02:16:29 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
6f2121469d | dolorous | 2009-05-15 02:12:34 +0000

Make ogres' aptitude for evocations match their aptitude for spell schools 
again, scaled to the average evocations aptitude of 75.

--------------------------------------------------------------------------------
c492a510ba | j-p-e-g | 2009-05-14 14:45:57 +0000

Re-add a highlights line. :)

--------------------------------------------------------------------------------
e011e485ad | dolorous | 2009-05-14 14:42:28 +0000

Unrestrict DDPa and OgMo.

--------------------------------------------------------------------------------
1111d5809c | dolorous | 2009-05-14 14:39:57 +0000

Add proper SVN properties to key_changes.txt.

--------------------------------------------------------------------------------
77398364e7 | j-p-e-g | 2009-05-14 14:34:31 +0000

Modify ?v to read in the list of changed command keys. Modify version 
highlights.

--------------------------------------------------------------------------------
4153ebb74a | dolorous | 2009-05-14 13:44:12 +0000

Fix pluralization problem when recharging a wand only gives it 1 charge.

--------------------------------------------------------------------------------
4759bd4866 | j-p-e-g | 2009-05-14 12:01:47 +0000

* Fix wielding a quivered weapon not changing the quiver. * Change Ely ability 
slots.

--------------------------------------------------------------------------------
d912b36910 | dploog | 2009-05-13 22:09:18 +0000

Update documenation.

--------------------------------------------------------------------------------
714de3b1ae | dolorous | 2009-05-13 17:01:15 +0000

Add minor documentation updates.

--------------------------------------------------------------------------------
5c4f3b7474 | j-p-e-g | 2009-05-12 20:18:24 +0000

Use wield_weapon(-) instead of unwield_item() when dropping/throwing a wielded 
weapon, so inscriptions are respected.

--------------------------------------------------------------------------------
5f92d00d2f | j-p-e-g | 2009-05-12 18:35:19 +0000

Make some of the new uniques appear earlier.

--------------------------------------------------------------------------------
22338b7685 | dploog | 2009-05-12 16:30:16 +0000

Swapped two lines of aptitudes. (Anym)

--------------------------------------------------------------------------------
9025aaa119 | dploog | 2009-05-10 22:10:29 +0000

Leaving a sewer portal vault turns the portal into floor, not an empty stone 
arch anymore. (Zaba)

--------------------------------------------------------------------------------
d7b0cd55b9 | dploog | 2009-05-10 20:51:51 +0000

Improve rat nest vault (poop).

--------------------------------------------------------------------------------
f24effa7e6 | j-p-e-g | 2009-05-09 17:50:45 +0000

* Monsters shout only when they notice you (i.e. you are in sight). * Add a 
tile for out of range grids (lighter shade than out of sight). * Make Xom's 
repel stairs effect only happen during tension. * Add Z to keybind.txt.

--------------------------------------------------------------------------------
ed25e26edc | dolorous | 2009-05-08 02:31:39 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
286d91d783 | dolorous | 2009-05-08 02:25:05 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a54ad17311 | dolorous | 2009-05-07 16:08:55 +0000

When going under penance as a Trog worshipper, make his Brothers in Arms on the 
current level disappear.

--------------------------------------------------------------------------------
3a460cc384 | dolorous | 2009-05-07 15:58:35 +0000

Simplify.

--------------------------------------------------------------------------------
486ae12ad2 | dolorous | 2009-05-07 13:31:00 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
d8b8431ffc | dolorous | 2009-05-07 13:29:21 +0000

Add consistency fix.

--------------------------------------------------------------------------------
0701c6f7d0 | dolorous | 2009-05-07 13:27:03 +0000

Display regeneration/magic resistance from Trog's Hand as "Regen MR+" in the 
output panel.

--------------------------------------------------------------------------------
4e17842966 | dolorous | 2009-05-06 22:18:31 +0000

Add wording fixes.

--------------------------------------------------------------------------------
a649a53ccb | dploog | 2009-05-06 21:16:59 +0000

Update changelog.

--------------------------------------------------------------------------------
13c65c10e5 | dploog | 2009-05-06 20:04:30 +0000

Also update the Trog powers entry to be read with ^!.

--------------------------------------------------------------------------------
2f69104709 | dploog | 2009-05-06 19:45:16 +0000

Mention increased MR in the description of the Trog's Hand ability.

--------------------------------------------------------------------------------
17e4fa58d4 | dolorous | 2009-05-06 18:08:50 +0000

Update documentation.

--------------------------------------------------------------------------------
5eb82b7b46 | dolorous | 2009-05-06 17:56:57 +0000

Increase and randomize the piety cost of Trog's Hand, since it now does more.  
Also, change the ability name to better reflect what it now does.

--------------------------------------------------------------------------------
aaaf251736 | dolorous | 2009-05-06 17:47:45 +0000

Make Trog's Hand grant both regeneration and magic resistance.

--------------------------------------------------------------------------------
dc09560ed3 | dolorous | 2009-05-06 17:25:43 +0000

Fix warning.

--------------------------------------------------------------------------------
11742d5789 | dploog | 2009-05-06 07:14:12 +0000

Reduce ranges for Mephitic Cloud and Dispel Undead (to 5).

--------------------------------------------------------------------------------
27a907319c | dolorous | 2009-05-06 05:56:05 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
89841b5940 | dolorous | 2009-05-06 05:54:17 +0000

And properly check for being a shapeshifter when looking at a polymorphed 
monster's god and god gift status.

--------------------------------------------------------------------------------
30bbc25a50 | dolorous | 2009-05-06 05:19:06 +0000

Preserve a monster's god and god gift status when applicable, and discard them 
otherwise (when the form the monster is polymorphed into angers its god, or 
when the monster is a Beoghite orc and is polymorphed into a non-orc).
Note that Beoghite orcs polymorphed into non-orcs will still remain 
friendly if they were friendly before and the force_beh parameter in 
monster_polymorph() isn't set, but they will no longer count as gifts of 
Beogh, meaning that Beogh will no longer accept their kills.

--------------------------------------------------------------------------------
8929d6cdc7 | j-p-e-g | 2009-05-05 15:32:14 +0000

* Replace the range_view_annotator loop with an simple check for the   current 
range, which if set to a value > 0 will cause viewwindow to   colour all grids 
not in los or not in range to be coloured grey.   Has the side effect to also 
work for Tiles. :) * Change THELM_DESC_JEWELLED to golden, do as to avoid 
overlap with the   randart description. * Make porridge sometimes brown and 
blood potions sometimes   viscous/sedimented. (Yes, these don't really fit but 
I don't like the   fixed descriptions.)

--------------------------------------------------------------------------------
0d81298cc2 | dploog | 2009-05-05 02:30:23 +0000

Deeper ziggurat levels may block controlled teleports and/or have all monsters 
generated awake.

--------------------------------------------------------------------------------
c68ef2df67 | j-p-e-g | 2009-05-04 19:20:28 +0000

* Some more tweaks to the spellcasting interface. * Colour items out of range 
darkgrey, like we do for floor/monsters. * Fix berserk monsters choosing one of 
the nearest monsters randomly.   (Seriously, I must have been half asleep when 
I wrote that.)

--------------------------------------------------------------------------------
6945b9d587 | j-p-e-g | 2009-05-04 11:19:30 +0000

Update tutorial information, inscription warnings and tooltips for wands and 
misc. items.

--------------------------------------------------------------------------------
faa0373f54 | j-p-e-g | 2009-05-04 09:13:34 +0000

A few tweaks to the range checks for z.

--------------------------------------------------------------------------------
ec8fd27e56 | dploog | 2009-05-04 05:09:05 +0000

A few more updates for the ?? screen.

--------------------------------------------------------------------------------
ba50b332f4 | dploog | 2009-05-04 01:01:59 +0000

Change magic aptitudes for Ogres from 180 to 160.

--------------------------------------------------------------------------------
eb7a6b06f2 | dploog | 2009-05-04 00:44:46 +0000

Some Minitomb changes (Zaba).

--------------------------------------------------------------------------------
3ede9fff7f | j-p-e-g | 2009-05-03 22:04:54 +0000

Some spellcasting modifications, as discussed on c-r-d. * Spells are marked 
grey if you lack the necessary magic   or if there are no visible monsters 
within range. * z bails out if there are no monsters in range * Z is the same 
as the old z behaviour * Wands now need to be e(V)oked.
Feedback welcome!

--------------------------------------------------------------------------------
f40a57bf2e | j-p-e-g | 2009-05-03 16:54:15 +0000

Replace a few more calls of seen_monster with handle_seen_interrupt, just in 
case.

--------------------------------------------------------------------------------
b936849419 | dshaligram | 2009-05-03 15:33:14 +0000

[2784933] Fix monsters sometimes not stopping travel.
This may break messaging for monsters coming into view.

--------------------------------------------------------------------------------
17f12dbb2e | dolorous | 2009-05-03 15:19:26 +0000

Apply patch in [2785966] to fix "You have visited 0 branch" messages.

--------------------------------------------------------------------------------
437176f5bd | dshaligram | 2009-05-03 13:39:59 +0000

Fix annoying behaviour with cursor being left at the end of prompt lines 
instead of centered on the @.

--------------------------------------------------------------------------------
e3ddef14a3 | dshaligram | 2009-05-03 09:12:07 +0000

Fix for compile failure on 32-bit g++

--------------------------------------------------------------------------------
37ab188047 | dploog | 2009-05-02 20:31:45 +0000

Repair ziggurat pillar vault.

--------------------------------------------------------------------------------
57c4e4771d | dshaligram | 2009-05-02 19:59:20 +0000

Allow ziggurat levels to generate all monsters awake

--------------------------------------------------------------------------------
77799c38dc | j-p-e-g | 2009-05-02 19:04:00 +0000

Fix 2784872: Take off not working for wearing (with the option). Also, add 
another item selector for worn armour for the takeoff prompt (and equip_unequip 
is false). I figured in the 'W'ear menu armour already worn takes up less 
space, and you're rather likely to directly switch to another piece of clothing.

--------------------------------------------------------------------------------
1b49ddb74f | j-p-e-g | 2009-05-02 17:50:19 +0000

Add new command for evoking non-wielded items, placed on 'V'. * Also applies to 
wand, and will soon replace 'Z'. * Decks, rods, and weapons of reaching still 
need to be wielded ('v'). * The tiles tooltips will need to be adjusted.

--------------------------------------------------------------------------------
fb58bd0b0b | dploog | 2009-05-02 05:07:43 +0000

Replace "shiny" by "dazzling" as a general randart adjective. (jericho)

--------------------------------------------------------------------------------
8297dab824 | ennewalker | 2009-05-01 16:54:46 +0000

[2781617] Fixing issue where targets in LOS but with no valid beam (i.e. 
through a statue) were being picked for firing targets.  This could have been 
fixed by changing see_grid_no_trans to treat statues like clear walls (and then 
changing the reach code appropriately), but this still allows you to blink 
through a statue.

--------------------------------------------------------------------------------
31561ffda6 | dolorous | 2009-05-01 14:50:29 +0000

Fix capitalization.

--------------------------------------------------------------------------------
1254d490d0 | dolorous | 2009-05-01 13:49:30 +0000

Fix [2785020]: Make messages regarding monsters' attacking themselves more 
consistent.

--------------------------------------------------------------------------------
2fbe578ccb | dolorous | 2009-05-01 11:59:51 +0000

Fix [2784959]: Properly substitute "staircase" for "@staircase@" in the 
stair-repelling Xom message.

--------------------------------------------------------------------------------
06fba355d8 | dolorous | 2009-05-01 00:10:47 +0000

Fix [2728128]: Properly scale current HP to maximum HP when changing levels.

--------------------------------------------------------------------------------
0f446f8a47 | dolorous | 2009-04-30 23:57:10 +0000

Add still more spacing fixes.

--------------------------------------------------------------------------------
e67f90c313 | dolorous | 2009-04-30 23:30:35 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
fc34c2118c | dolorous | 2009-04-30 23:10:08 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
0b97115e76 | j-p-e-g | 2009-04-30 20:57:58 +0000

* Disallow monsters to pick up launchers that will also refuse to   pick up the 
corresponding ammunition. * Allow monsters without ammo to pick up darts and 
stones even if   their launcher is not a hand crossbow or sling, respectively.  
 (They'll be replaced as soon as it comes across some matching ammo.)

--------------------------------------------------------------------------------
a55988bcff | j-p-e-g | 2009-04-30 20:06:15 +0000

* For friendly monsters, don't use knowledge of summoning spells   as a 
restriction for missile pickup. * Take weapon brands into account when picking 
up weapons. * Allow monsters to upgrade to another launcher type if they're   
out of ammo for their old one. * When comparing item values during monster 
pickup treat items   as if they were identified.

--------------------------------------------------------------------------------
f49200987b | dolorous | 2009-04-29 14:15:28 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
30b4c5f1fe | dolorous | 2009-04-29 06:47:49 +0000

Add a few more Xom messages.

--------------------------------------------------------------------------------
f8ca5b11fe | dolorous | 2009-04-29 05:18:46 +0000

Comment fix.

--------------------------------------------------------------------------------
fb6040c6a0 | dolorous | 2009-04-29 05:14:10 +0000

Add spacing fix.

--------------------------------------------------------------------------------
fe1b3c9af9 | dolorous | 2009-04-29 04:52:00 +0000

Give Vehumet worshippers the "Prodigal" title for Invocations, as he doesn't 
care about Invocations either.

--------------------------------------------------------------------------------
5e110769e5 | dolorous | 2009-04-29 04:48:29 +0000

Check for the ogre genus in more places, in case another ogre species is ever 
added.

--------------------------------------------------------------------------------
5fd8034bab | dolorous | 2009-04-28 14:14:43 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c842a2b176 | j-p-e-g | 2009-04-27 11:16:18 +0000

* Remove unnecessary winhdr.h, as pointed out by kotk. * Special message when 
piercing actual pigs, patch by hammerbroish.

--------------------------------------------------------------------------------
d75188ff7c | ennewalker | 2009-04-26 18:36:31 +0000

[2781364] Updating INSTALL file for new tiles prerequisites in 0.5.

--------------------------------------------------------------------------------
c6ad594b7e | j-p-e-g | 2009-04-26 12:43:29 +0000

Some debugging fixes, once again.

--------------------------------------------------------------------------------
7e7f803549 | j-p-e-g | 2009-04-26 12:13:36 +0000

* Fix _place_monster_aux() not interrupting autoexplore.   Apparently, monsters 
can be directly placed at the edge of los, after all. * Change Ctrl-X -> 
Ctrl-S, V -> Ctrl-X, not documented yet.

--------------------------------------------------------------------------------
2d8d61996d | dolorous | 2009-04-26 03:23:24 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
d6a4e4b51c | dolorous | 2009-04-24 20:18:06 +0000

Fix warnings.

--------------------------------------------------------------------------------
0125a4c867 | dolorous | 2009-04-24 19:54:04 +0000

Mention that clubs can be thrown in their description.

--------------------------------------------------------------------------------
cee3bd0bef | j-p-e-g | 2009-04-24 17:45:26 +0000

Fix diagonal movement for monsters moving aside for allied monsters.

--------------------------------------------------------------------------------
a4cf0d15ce | j-p-e-g | 2009-04-24 15:45:20 +0000

Change Options.autopickup_on from boolean to 3-state: 1 (autopick up), 0 
(autopickup off), -1 (autopickup turned off automatically). Only in the latter 
case does killing an invisible monster turn autopickup (back) on.

--------------------------------------------------------------------------------
1c46649f35 | dolorous | 2009-04-23 22:44:50 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
ea9b361540 | dolorous | 2009-04-23 22:40:45 +0000

Add the potion of magic to Xom's list of potion effects.

--------------------------------------------------------------------------------
3ded41cea4 | dolorous | 2009-04-23 22:37:35 +0000

Make pacified monsters only interrupt autotravel if they're next to you, and 
increase the distance from the player that's required to make them leave the 
level back to its old value.

--------------------------------------------------------------------------------
4c65e31e2a | dolorous | 2009-04-23 22:01:11 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
6fe187f0ba | dolorous | 2009-04-23 20:29:52 +0000

Add punctuation fix.

--------------------------------------------------------------------------------
9b8726ed7a | dolorous | 2009-04-23 19:20:52 +0000

Add minor cosmetic fixes.  Also, tweak the message for when non-chunk lovers 
drink potions of blood to not use "Blech", as it gives nutrition, unlike other 
cases (e.g. when partial carnivores drink potions of porridge).

--------------------------------------------------------------------------------
6f3235272a | dolorous | 2009-04-23 18:07:57 +0000

Typo fixes.

--------------------------------------------------------------------------------
a2d58511f1 | dolorous | 2009-04-23 18:05:48 +0000

Remove handling of unseen horror corpses in Fulsome Distillation, as unseen 
horrors don't leave corpses.

--------------------------------------------------------------------------------
50c8807c05 | dolorous | 2009-04-23 01:21:36 +0000

Fix [2777074]: Properly add the negative dexterity effects from certain scale 
mutations instead of subtracting them.

--------------------------------------------------------------------------------
5b76b7f58f | dolorous | 2009-04-22 22:37:25 +0000

If a pacified monster reaches an exit, make it leave the level even if that 
exit isn't its target.

--------------------------------------------------------------------------------
cc111c31b9 | dolorous | 2009-04-22 22:20:45 +0000

Simplify.

--------------------------------------------------------------------------------
a9488d6e84 | dolorous | 2009-04-22 22:12:12 +0000

Typo fix.

--------------------------------------------------------------------------------
be019eb253 | dolorous | 2009-04-22 22:02:18 +0000

Change ankuses' vorpal type from crushing to piercing/bludgeoning, as it's more 
appropriate given their description.

--------------------------------------------------------------------------------
7bc3a2b9ca | dolorous | 2009-04-22 22:01:15 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ee49cc369e | dolorous | 2009-04-22 22:00:44 +0000

Remove trailing whitespace.

--------------------------------------------------------------------------------
13abff2716 | j-p-e-g | 2009-04-22 15:58:36 +0000

* Tweak Xom's ideas about what makes a funny or boring death. * Add another 
option (*sigh*) covering whether W=T and P=R. (Defaults to   false.) * Various 
spacing and comment fixes.

--------------------------------------------------------------------------------
5c8009179a | ennewalker | 2009-04-22 02:50:17 +0000

Fixing potential &" crash due to non-stable sorting function.  (At least, I 
suspect this is the issue.  My std::sort knowledge is limited.)

--------------------------------------------------------------------------------
0fdc8a1b6c | j-p-e-g | 2009-04-21 19:19:01 +0000

Xom doesn't even attempt to do the teleportation journey if the player is 
wearing a randart that prevents teleportation. Spells don't face any such 
restriction seeing as the direct call of your_spells() bypasses the randart 
check. Also, a few more spacing cleanups.

--------------------------------------------------------------------------------
1be8dfb3f2 | dploog | 2009-04-21 03:50:23 +0000

Update credits and changelog.

--------------------------------------------------------------------------------
3819fb35af | ennewalker | 2009-04-21 00:32:24 +0000

Fixing centering of title screen image.

--------------------------------------------------------------------------------
5295af15b9 | j-p-e-g | 2009-04-20 19:03:18 +0000

Fix my overzealous replacements with rectangle_iterator. Note to self: Checking 
for x < GXM - 1 does not equal GXM-1 in the bottom right corner.

--------------------------------------------------------------------------------
d9dd888a10 | j-p-e-g | 2009-04-20 18:01:09 +0000

* Fix database search crashing on pandemonium demons/player ghost. * Make Xom 
say e.g. "gate" for the repel stair effect if there's only a   gate nearby. * 
Weapons of vampiricism have no effect on summoned creatures, as is   already 
the case for Vampire bites and the Vampiric Draining spell. * Make berserking 
monsters immune to fear. (The sanctuary still works.) * General clean-up.

--------------------------------------------------------------------------------
bb3b8b8286 | j-p-e-g | 2009-04-20 09:37:00 +0000

* Fix non-prompting when firing through allies. * Don't autopickup chunks if 
starving.   (Yes, I died because of that. Xom was very much amused...) * Some 
spacing fixes.

--------------------------------------------------------------------------------
6452e938ce | dolorous | 2009-04-20 03:43:07 +0000

Add formatting fix.

--------------------------------------------------------------------------------
fb593e14d1 | dolorous | 2009-04-20 03:37:53 +0000

Remove now-superfluous information regarding piety gain from healing abilities.

--------------------------------------------------------------------------------
c89f8d2a56 | ennewalker | 2009-04-20 00:32:19 +0000

[2473043] Adding a rock tile setting for the green crystal/brown wall entry 
vault.

--------------------------------------------------------------------------------
d6ce45f536 | ennewalker | 2009-04-20 00:14:25 +0000

[2719487] Fixing off-by-one error for artificer previous start wand.

--------------------------------------------------------------------------------
eafcae549c | ennewalker | 2009-04-19 22:33:56 +0000

[2773135] Fixing bug where Options.weapon could specify a weapon that was not 
an available option for the character.

--------------------------------------------------------------------------------
a2f3fb49a0 | ennewalker | 2009-04-19 20:29:52 +0000

[2773914] Fixing the "Edmund the Edmund comes into view" message.

--------------------------------------------------------------------------------
9a91411815 | ennewalker | 2009-04-19 19:49:33 +0000

Fixing typo in init.txt.

--------------------------------------------------------------------------------
58a13c73c6 | dploog | 2009-04-19 19:39:04 +0000

Added speech for Nessos, FR 2763823.

--------------------------------------------------------------------------------
e340c3770e | ennewalker | 2009-04-19 19:34:01 +0000

[2725123] Fixing issue with the tiles window not redrawing properly when it is 
switched to from another window.

--------------------------------------------------------------------------------
69dba83ab0 | ennewalker | 2009-04-19 19:17:31 +0000

[2774528] Tiles splash screen.

--------------------------------------------------------------------------------
6c343fd8e3 | j-p-e-g | 2009-04-19 16:06:29 +0000

Enable menu colour for the 'V' item sub-menu.

--------------------------------------------------------------------------------
90a29a297d | dolorous | 2009-04-19 15:23:07 +0000

Update healing ability descriptions to account for the previous changes.

--------------------------------------------------------------------------------
9fc42394f2 | dolorous | 2009-04-19 15:03:47 +0000

Add some of the suggested changes to Elyvilon in [2762165]: Lesser Heal Other 
no longer costs piety, but it will no longer work as well on weak monsters.
Note that the documentation for Heal Other has not been updated yet.

--------------------------------------------------------------------------------
382bc98830 | dolorous | 2009-04-19 14:46:11 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
1bdc77fffd | dolorous | 2009-04-19 14:41:08 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
6154ce26f0 | j-p-e-g | 2009-04-19 11:48:04 +0000

* Properly print (non-spoily) resists descriptions for ghosts/pandemonium   
lords, using mons_class_resists (currently only poison) instead of   
mons_resists(). * Add option note_xom_effects (defaults to true) that causes 
note-taking   for all Xom effects, hopefully spoiler free. * Autoinscribe hides 
from unique monsters' corpses with the monster name,   as suggested on rgrm. 
Currently only applies to Snorg and Tiamat.

--------------------------------------------------------------------------------
b652f0fadf | dploog | 2009-04-19 07:21:31 +0000

A bit more speech for Dissolution.

--------------------------------------------------------------------------------
da840d8347 | dolorous | 2009-04-19 05:46:34 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
e254b7d790 | dploog | 2009-04-19 05:36:14 +0000

Updates to the manual.

--------------------------------------------------------------------------------
4b46f911df | dolorous | 2009-04-19 04:37:52 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
b2b8a5c2ad | dolorous | 2009-04-19 04:36:22 +0000

Comment fix.

--------------------------------------------------------------------------------
d51c04cc41 | dolorous | 2009-04-19 02:56:28 +0000

Fix typo.

--------------------------------------------------------------------------------
18e359fad1 | dolorous | 2009-04-19 01:48:18 +0000

Fix assertion when healing a monster as a non-Elyvilonite (oops).

--------------------------------------------------------------------------------
a1574880f1 | ennewalker | 2009-04-19 01:44:53 +0000

[2765110] Making capitalization of branch name articles more consistent.

--------------------------------------------------------------------------------
2e1a0765e5 | j-p-e-g | 2009-04-18 21:36:32 +0000

Mention monsters regenerating (e.g. trolls) or not regenerating (e.g. zombies) 
in their descriptions.

--------------------------------------------------------------------------------
7267cbb0b9 | dolorous | 2009-04-18 20:43:59 +0000

Typo fixes.

--------------------------------------------------------------------------------
cb1865fe00 | dolorous | 2009-04-18 20:42:46 +0000

Add capitalization fixes.

--------------------------------------------------------------------------------
8f5cab8144 | dolorous | 2009-04-18 20:30:10 +0000

Simplify.

--------------------------------------------------------------------------------
77a23de544 | dolorous | 2009-04-18 19:58:02 +0000

Move the HALF_MAX_PIETY define to religion.h, as it's used with Xom in several 
places outside xom.cc.

--------------------------------------------------------------------------------
34ed092618 | dolorous | 2009-04-18 19:39:55 +0000

Add spacing and SVN property fixes.

--------------------------------------------------------------------------------
7ee7731233 | dolorous | 2009-04-18 19:32:08 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
a402c85f58 | j-p-e-g | 2009-04-18 19:00:44 +0000

Once again, remove some debugging statements.

--------------------------------------------------------------------------------
31f090ece8 | dolorous | 2009-04-18 18:54:09 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
52635e528e | j-p-e-g | 2009-04-18 18:46:56 +0000

* Fix Xom's piety wrapping around from 0 -> 255. * Fix Xom piety 100 (initial 
state) favouring bad effects. * Limit tension bonus for good effects to 199. * 
Add penalty for tension 0, so bad effects become more likely without   tension. 
* Revert order of Xom's amusement to actually match the amusement gain.   (Was 
getting "roars with laughter" for gain of 2, etc.) * Add damage shaving to Deep 
Dwarf ghosts. * Add 'o' to pickup list commands -> stop prompting, start 
autoexplore. * Default menu_colour_item_class to true in initfile.cc. * Allow 
autopickup of chunks in Lich form.

--------------------------------------------------------------------------------
89b84f43d7 | dolorous | 2009-04-18 18:24:40 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
ae1a7ea0f4 | dolorous | 2009-04-18 18:19:17 +0000

Add more Xom messages, plus some minor cosmetic fixes.

--------------------------------------------------------------------------------
a720340413 | dolorous | 2009-04-18 17:40:17 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
29efa68f86 | ennewalker | 2009-04-18 17:31:49 +0000

[2721962] Fixing database lookup issues for tiles where a non-guarded mpr was 
printing item info to the message window.

--------------------------------------------------------------------------------
568b290975 | dolorous | 2009-04-18 17:14:21 +0000

Fix [2769326]: Deep dwarf ghosts shouldn't regenerate.

--------------------------------------------------------------------------------
3275e9d0f8 | ennewalker | 2009-04-18 17:03:18 +0000

[2735312] Don't squelch multiple EOLs in the same cprintf for tiles.  This 
should remove the inconsistency between tiles and console text printing.

--------------------------------------------------------------------------------
40e6cec1c6 | dolorous | 2009-04-18 16:59:42 +0000

Deep dwarves get the same number of initial strength points as mountain 
dwarves, so give their ghosts the same strength bonus that mountain dwarves get.

--------------------------------------------------------------------------------
0cb617b221 | dolorous | 2009-04-18 16:46:54 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
c632e0bcfa | ennewalker | 2009-04-18 16:27:11 +0000

[2708302] Fixing crash when trying to repeat a failed repeat command.

--------------------------------------------------------------------------------
b12a108002 | dolorous | 2009-04-18 16:05:44 +0000

And properly consolidate monster hostility checks.

--------------------------------------------------------------------------------
363109b68d | dolorous | 2009-04-18 16:02:13 +0000

And do the hostility check before the pacification check, to avoid gaining 
piety for healing a fellow creature if it wasn't so before being pacified in 
the same turn.

--------------------------------------------------------------------------------
ee1127d456 | dolorous | 2009-04-18 15:58:09 +0000

Fix [2748638]: Try to pacify monsters before healing them instead of afterward. 
 Also, do the pacification check only once and use the result both times 
instead of doing the pacification check twice, as it has a random factor.

--------------------------------------------------------------------------------
b673afdd95 | dolorous | 2009-04-18 15:54:14 +0000

Reduce the minimum distance from the player that pacified monsters have to be 
in order to disappear (for e.g. those too stupid to go down the right set of 
stairs).

--------------------------------------------------------------------------------
7c70dc2935 | dolorous | 2009-04-18 15:35:37 +0000

Add wording fix.

--------------------------------------------------------------------------------
b9f95422cd | ennewalker | 2009-04-18 15:27:18 +0000

[2771954] Fixing spell key reassign menu, which no longer allowed reassignment 
and only showed descriptions.  This is a partial revert of r9589.

--------------------------------------------------------------------------------
4f56baa35d | ennewalker | 2009-04-18 15:08:40 +0000

[2758242] Fixing segfault during debug_mons_scan due to an mprf not matching 
its format string with its var args.  Also, fixing clone function from chaos 
brand that was causing this where cloned items in monster inventories weren't 
setting their link to be part of the new monster's inventory.  Refactoring 
monster holding functions into item_def, where they probably should be.

--------------------------------------------------------------------------------
92a70a7bda | ennewalker | 2009-04-18 14:04:04 +0000

[2742178] Don't save when closing the window if the player is dead, allowing 
them to reload the save and still be alive.

--------------------------------------------------------------------------------
114bb236eb | dolorous | 2009-04-17 23:53:40 +0000

Unrestrict the summoning book for ogres, since they can be summoners.

--------------------------------------------------------------------------------
3b86a06d39 | dolorous | 2009-04-17 20:46:06 +0000

Apply minor fixes patch [2727286] by kotk, minus the sqldbm.h type changes (as 
I have no way of testing them on multiple platforms).

--------------------------------------------------------------------------------
4758caffda | dolorous | 2009-04-17 20:18:41 +0000

Since making player ghosts retain their religions breaks binary compatibility 
with previous bones files, increase the minor version number of bones files.

--------------------------------------------------------------------------------
1f8a899b0a | dolorous | 2009-04-17 20:16:12 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
bbd60e62c3 | dploog | 2009-04-17 20:07:40 +0000

Update aptitudes.txt to reflect the DD M&F change.

--------------------------------------------------------------------------------
7e052d41c2 | dolorous | 2009-04-17 19:51:32 +0000

Increase Deep Dwarves' aptitude for Maces & Flails by 10.

--------------------------------------------------------------------------------
04809fe65d | dolorous | 2009-04-17 19:48:04 +0000

Unrestrict ogre hunters.

--------------------------------------------------------------------------------
25c5eda307 | dolorous | 2009-04-17 19:45:26 +0000

Implement [2756996]: Swap Kobolds' aptitudes for Long Blades and Maces & Flails.

--------------------------------------------------------------------------------
abd777d7d9 | dolorous | 2009-04-17 19:29:12 +0000

Fix [2722767]: Since Twisted Resurrection creates permanent monsters, don't set 
their spell origin, as this will cause an assertion.

--------------------------------------------------------------------------------
f434c8054d | dolorous | 2009-04-17 19:23:41 +0000

Since player ghosts now retain their religions (under most circumstances), 
display it in their descriptions if applicable.

--------------------------------------------------------------------------------
a2ee945eae | dolorous | 2009-04-17 19:20:53 +0000

Since Pandemonium lords can get chaos-branded attacks, allow chaos spawns to 
show up in Pandemonium as well.

--------------------------------------------------------------------------------
12096345ed | dolorous | 2009-04-17 19:18:51 +0000

When destroying weapons with Elyvilon's power, gain piety after displaying the 
weapon destruction message instead of before.

--------------------------------------------------------------------------------
df7642d92e | dolorous | 2009-04-17 19:17:27 +0000

Add a sample wand entry for init.txt, since we need one for artificers.

--------------------------------------------------------------------------------
1f0e3e2749 | dolorous | 2009-04-17 19:16:12 +0000

When annoying monsters affected by holy word, make them target the holy word 
user instead of the player, as is done with torment already.

--------------------------------------------------------------------------------
a15e97c27c | dolorous | 2009-04-17 19:11:53 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
309836923b | dolorous | 2009-04-17 19:09:40 +0000

Add minor documentation updates.

--------------------------------------------------------------------------------
9fecb78809 | j-p-e-g | 2009-04-13 20:40:39 +0000

* Add stair repelling as a bad Xom effect. * Experimentally make tension 
increase the odds for good effects.

--------------------------------------------------------------------------------
cab797009b | j-p-e-g | 2009-04-13 08:04:42 +0000

* Allow panlords to have the chaos-branded weapons. * update stash tracker 
after Xom's teleportation journey. * A few tweaks to Xom debug noting.

--------------------------------------------------------------------------------
659553d325 | j-p-e-g | 2009-04-12 16:55:43 +0000

* Automate all the notetaking I always do when testing Xom.   NOTE_DEBUG_XOM 
might be a tiny bit technical or spoily, but at the same   time I like the 
results and think this flag could actually be turned into   an option to 
autonote all Xom effects, so I've left it on in this commit,   in case someone 
else is playtesting Xom. * Fix a monster polymorphing into an (invisible) 
unseen horror naming it. * Reactivate autopickup if you kill an invisible 
monster or see an   invisible monster become visible.

--------------------------------------------------------------------------------
dae63e7aa1 | haranp | 2009-04-12 11:14:12 +0000

Fix 2738062: disc of storms was not specifying range.

--------------------------------------------------------------------------------
bc721ca0cd | j-p-e-g | 2009-04-12 09:49:39 +0000

* Fix compilation. * Fix wording of stair slide chaos effect. * Add new 
stimulation triggers for Xom (monsters being polymorphed,   accidentally 
hasted/healed, or going berserk) which has the side   effect of keeping Xom's 
interest up if you actually use the chaos   branded weapon he gifted you. * 
Greatly reduce stimulation possible from deliberately quaffing bad   potions.

--------------------------------------------------------------------------------
e80122a2ce | j-p-e-g | 2009-04-11 20:03:20 +0000

* Fix 2744875 (mutation screen assert). * Rename KeymapContext KC_* -> KMC_* to 
avoid overlap with   kill_category KC_*. * Increase odds for chaos brands 
mimicking brands that hurt the defender. * Tweak chaos_affects_attacker().

--------------------------------------------------------------------------------
2947940736 | j-p-e-g | 2009-04-11 10:49:36 +0000

* Allow viewing known items from "Use on what item?" scroll prompt. * Default 
use_fake_cursor to true on Unix, else false. * Tweak some descriptions.

--------------------------------------------------------------------------------
6f24f85632 | j-p-e-g | 2009-04-10 19:56:31 +0000

* Update descriptions as per Markus' patch. * Make ignored prayer not take any 
turn.

--------------------------------------------------------------------------------
917bef7c3d | j-p-e-g | 2009-04-09 19:45:50 +0000

* Allow 'Ctrl-T' as tutorial trigger (currently 'T'). * Allow choice of deck 
for Stack Five like for the other abilities. * Include revision in chardump.

--------------------------------------------------------------------------------
534738993b | dploog | 2009-04-08 13:42:10 +0000

Small changes to the manual.

--------------------------------------------------------------------------------
01c928dcd4 | dploog | 2009-04-07 14:22:08 +0000

Update level_design.txt (Eino).

--------------------------------------------------------------------------------
1f949e4b0f | j-p-e-g | 2009-04-06 19:36:52 +0000

* After some thought, remove the description toggle from the spell menu as   
the double toggle makes everything much more complicated, and you can   easily 
access the spell descriptions from the very similar 'I' menu. * Don't offer 
weapons of unknown brand types for ?recharging. I tested   a few combination 
cases, but I might have overlooked something.

--------------------------------------------------------------------------------
c5887300c0 | j-p-e-g | 2009-04-06 18:13:14 +0000

Fix 2726622: untransforming not prompting for safe-inscribed equipment Also, 
when transforming voluntarily (i.e. not via Xom or by drawing a card) you get 
prompted for the loss of safe-inscribed equipment. If you opt out, it costs 
neither turn nor mana. There's an edge case when you change from one 
transformation to another  one: if that fails for whatever reason you lose the 
turn (due to untransforming) and the spell fizzles (including mana loss).

--------------------------------------------------------------------------------
acd89a148d | zelgadis | 2009-04-06 07:35:43 +0000

When tormenting a monster, alert it to the actual sorce of the torment, rather 
than assuming the player is always the source.

--------------------------------------------------------------------------------
c9d385badb | j-p-e-g | 2009-04-05 20:28:15 +0000

Fix 2726027: Warpwright card being broken. Fix 2731677: Sleeping "patrolling" 
monsters being unwakable. Fix 2729898: Debugging markers on the level map 
showing up in nonwizmode games.

--------------------------------------------------------------------------------
15fa09f801 | j-p-e-g | 2009-04-05 18:27:44 +0000

* Tweak FAQ and change log some more. * Default use_fake_cursor to true since 
it appears to be a common enough   problem that we regularly get bug reports 
about the cursor   disappearing in X mode. * Add altars to the list of features 
displayed in V.

--------------------------------------------------------------------------------
b8999a7fc5 | dploog | 2009-04-05 17:32:56 +0000

additions to some FAQ entries.

--------------------------------------------------------------------------------
20306d6856 | dploog | 2009-04-05 16:25:07 +0000

Point out FAQ in manual and readme.

--------------------------------------------------------------------------------
a3d677965e | j-p-e-g | 2009-04-05 15:21:03 +0000

Make the toggle actually update the title for V and a.

--------------------------------------------------------------------------------
b35bbebf2c | j-p-e-g | 2009-04-05 10:12:16 +0000

Update change log and FAQ. David, could you please add the latter (in-game 
command: ?q) to the readme and manual? Thanks.

--------------------------------------------------------------------------------
65babfc67f | dploog | 2009-04-05 07:15:23 +0000

First approach towards more relentless ziggurats at deeper levels. Also fixed 
on ziggurat pillar vault.

--------------------------------------------------------------------------------
c8abbb6f12 | j-p-e-g | 2009-04-04 18:06:05 +0000

* Change TARG_NOT_SELF to TARG_HOSTILE (not to confused with TARG_ENEMY   that 
also includes neutral monsters) for Ely's Heal Other powers. * Update change 
log.

--------------------------------------------------------------------------------
c6ae3ddc62 | dploog | 2009-04-04 17:21:06 +0000

Update changelog.

--------------------------------------------------------------------------------
6cdfce3a5d | dploog | 2009-04-04 16:39:47 +0000

Elyvilon ability descriptions split into healing and self-healing. Removed two 
more stray uses of minor/major healing. Shortened too long ability lines on ^ 
display.

--------------------------------------------------------------------------------
90d9577ea2 | j-p-e-g | 2009-04-03 21:00:12 +0000

Make Ely's "Destroy Weapons" start at 'a', and increment the letters for the 
other god abilities from there. The same could be said for Trog's "Burn Books" 
but that isn't used as often, nor as early, as Destroy Weapons.

--------------------------------------------------------------------------------
02a23f0ae5 | j-p-e-g | 2009-04-03 20:21:50 +0000

Implement a hack to differentiate between Ely's self healing and healing 
others. I've added a new targetting mode TARG_NOT_SELF that basically just 
forces the autotargetting to skip the player in favour of the previous target 
or, failing that, the nearest monster (no matter whether friendly, hostile or 
neutral). Both types of ability crop up at the same piety point, and the 
ability letters are changed accordingly (which is likely to wreak havoc on 
those relying on their finger memory, but makes more sense and is easier to 
remember in the long run).
I haven't changed/added the ability descriptions. If someone could do
that, please?

--------------------------------------------------------------------------------
2d1dc73ba8 | j-p-e-g | 2009-04-03 17:06:22 +0000

* Allow fleeing monster to push past higher ranked monsters of the same   type. 
* Allow quivering of wielded missiles (stones for Sandblast etc.) and   wielded 
weapons of returning if your throwing skill is > 0. * Add stairs/gates/shops to 
the 'V' command, mostly for the convenience   of the easy travel feature.

--------------------------------------------------------------------------------
20e25439ca | j-p-e-g | 2009-03-31 07:05:53 +0000

Add some checks to Xom making you cast spells, so you don't attempt to e.g. 
cast a branding spell, or a transformation that will fail for whatever reason. 
You may still occasionally get a "The spell fizzled" (or whatever) message but 
that should be rarer now. Apply the same fail chances for Detect Items as for 
Magic Mapping for fully explored levels, and for low severity make Summon 
Butterflies more likely to avoid endless attempts of casting Magic Mapping on 
fully explored levels.

--------------------------------------------------------------------------------
4f02417442 | ennewalker | 2009-03-31 03:08:39 +0000

[2722438] Fixing crash when viewing shop contents.  shop_item* was being 
blindly casted to monsters*, which didn't play well with a non-existent virtual 
function table.  Fixed by creating a ShopItemEntry and a MonstersMenuEntry 
class to differentiate the meaning of MenuEntry::data and to avoid crashes in 
the future by having MenuEntry::get_tiles() be a no-op.

--------------------------------------------------------------------------------
0425b58d7a | ennewalker | 2009-03-29 21:38:53 +0000

Change the monster kill limit for hiding name tags in tutorial mode from 3 to 
0.  A little bit of playtesting showed that groups of monsters being tagged 
looked weird.  Hiding the tags sooner should make this far more infrequent.

--------------------------------------------------------------------------------
547d716b3d | ennewalker | 2009-03-29 21:34:06 +0000

Removing vestigial code to set option for showing all items.  All items are 
shown now, regardless of the option, so there's no need to set it for tutorials.

--------------------------------------------------------------------------------
4d5d1240b3 | ennewalker | 2009-03-29 21:13:35 +0000

Tiles-specific doc additions.

--------------------------------------------------------------------------------
0be12e05b2 | ennewalker | 2009-03-29 20:46:47 +0000

Tiles performance improvements to eliminate mouse lag on slower systems.  It 
should redraw the screen far less frequently.

--------------------------------------------------------------------------------
e8dcf648f9 | j-p-e-g | 2009-03-29 20:04:47 +0000

Remove DEBUG setting.

--------------------------------------------------------------------------------
ce8b57822e | j-p-e-g | 2009-03-29 19:42:25 +0000

* Merfolk may wear heavy armour while swimming, though their armour   penalty 
is doubled in deep water. * Change "zombified ally" -> "mindless thrall" (and 
only count friendly   monsters). * Call trackers_init_new_level() earlier, in 
load(), so that TileNewLevel()   can use the correct travel information when 
drawing exclusions on the   minimap.

--------------------------------------------------------------------------------
996361d167 | j-p-e-g | 2009-03-29 12:43:34 +0000

* When Xom decides to cast Magic Mapping or send you on a teleportation   
journey, use a random sample of level grids as a guesstimate of the   explored 
portion of the level, and reduce chances for mostly explored   levels. * Don't 
attempt to cast spells you wouldn't be able to cast (e.g. the   transformations 
for undead). * Tweak random uselessness messages as per FR 2595700.

--------------------------------------------------------------------------------
262fc856cc | dolorous | 2009-03-28 22:25:51 +0000

Implement jpeg's suggestion in [2717473]: you'll now get a message like "Your 
zombified allies stay behind." if you go down stairs with them adjacent.

--------------------------------------------------------------------------------
1164be44d0 | j-p-e-g | 2009-03-28 21:14:58 +0000

Scrolls of fear no longer make allies hostile. Fleeing allies will still run 
away from you, but they'll eventually return to your side. Note that charmed 
allies *will* abandon you.

--------------------------------------------------------------------------------
2c8f3a56d7 | dolorous | 2009-03-28 21:13:15 +0000

Fix compilation.

--------------------------------------------------------------------------------
b51dc9e972 | j-p-e-g | 2009-03-28 19:59:33 +0000

Xom again: * tweak values for tension and amusement * Xom only laughs about 
"funny" deaths * gift_timeout rerolling after a bad act depends on its severity 
* replace the blink effect with position swapping

--------------------------------------------------------------------------------
f7eda5bc39 | dploog | 2009-03-27 17:32:22 +0000

Remove superfluous blank lines from card description screens.

--------------------------------------------------------------------------------
f35c0d8ae4 | dshaligram | 2009-03-27 07:37:49 +0000

Make it easier for ziggurat monster specs to weight monsters by ziggurat depth.
Fix ziggurat spec weights being ignored.

--------------------------------------------------------------------------------
3883849859 | dploog | 2009-03-27 04:15:21 +0000

Mention new behaviour of '&' for dropping.

--------------------------------------------------------------------------------
f3b1762e5a | j-p-e-g | 2009-03-26 23:24:34 +0000

* Fix Xom's interest wrapping around from 0 to 255. (!!!) * In xom_acts, if Xom 
was bored (and now did something bad) reroll interest. * Greatly decrease 
amusement derived from the player entering a new   level. (However, entering a 
new level via escape hatch or shaft is   REALLY amusing, more so the deeper the 
shaft.) * Xom may be amused if you are caught in a net and there are hostile   
monsters around. * Fix draconian tiles not showing up correctly for Detect 
Creatures. * Improve card descriptions output for Triple Draw/Stack Five. * In 
inventory, add '&' hotkey for useless (== inedible) chunks.   Still needs 
documentation.

--------------------------------------------------------------------------------
07a3ce3ad4 | dolorous | 2009-03-26 22:24:37 +0000

Fix various minor issues in, and add various wording tweaks to, ability.txt, 
via maiermrk's patch in [2714722].

--------------------------------------------------------------------------------
87fd0e6ba2 | haranp | 2009-03-26 16:39:30 +0000

Fix crash on returning [2712300]

--------------------------------------------------------------------------------
5699e0b53c | haranp | 2009-03-26 16:24:02 +0000

Fix 2714466: rods and spellbooks leaking goodness information.

--------------------------------------------------------------------------------
5aff13932a | ennewalker | 2009-03-26 02:07:17 +0000

[2652326] Fixing invisible border walls.

--------------------------------------------------------------------------------
d4b3b00c17 | dolorous | 2009-03-26 01:29:17 +0000

Make Sandblast available to player ghosts and random Pandemonium demons, as 
Shock already is.

--------------------------------------------------------------------------------
00ee106a30 | dolorous | 2009-03-26 01:25:20 +0000

Simplify.

--------------------------------------------------------------------------------
bdb33fda79 | dolorous | 2009-03-26 01:14:00 +0000

Make player ghosts keep the gods they worshipped in life, if any (except if 
they worshipped good gods, since player ghosts are undead and, hence, evil by 
good gods' reckoning).  This gives them the proper title if Invocations was 
their highest skill in life.

--------------------------------------------------------------------------------
2a7a9ce4b2 | dolorous | 2009-03-26 01:08:40 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
10cf462136 | dolorous | 2009-03-26 00:58:40 +0000

Remove unused parameters.

--------------------------------------------------------------------------------
9c10577f12 | dolorous | 2009-03-26 00:33:26 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a99482600e | j-p-e-g | 2009-03-25 20:38:08 +0000

* Use menu colours (rather than message colours) for item announcements   and 
the like. * Fix 'V' if there are more than 52 monsters/items in the list. * 
Make Xom act more often, with the probability depending strongly on   tension. 
Also tweak a few action probabilities according to tension,   so that e.g. 
summons are more likely for high tension. * Fix monsters being created with 
large quantities of curare needles.

--------------------------------------------------------------------------------
94d9e1a1db | j-p-e-g | 2009-03-25 08:03:14 +0000

* Tweak Xom's (non)tension spell selection. * Skip the harmless effects when 
Xom is BORED. * &^ for Xom randomizes piety and has a 10% chance of making Xom 
bored.

--------------------------------------------------------------------------------
351920562e | dolorous | 2009-03-24 23:14:25 +0000

Typo fix.

--------------------------------------------------------------------------------
0e672fb6b2 | j-p-e-g | 2009-03-24 21:35:54 +0000

* A few starting choice restriction tweaks. * Increase probability of Xom acts 
some more, in particularly tension ones. * Greatly lower the chance of Xom 
doing a bad act despite xom_is_nice()   having been rolled. (Now that Xom's 
mood is no longer predefined, it's   not really necessary anymore.) * When 
making Xom cast a spell, distinguish between spells that require   tension and 
those that don't. * Monsters that are more than 3 waypoints away from their 
target grid   don't count towards tension. (This applies to monsters attracted 
by   noise to a nearby position, or monsters "tracking" you.) * If there are no 
monsters within line of sight (including invisible   ones), tension will always 
be zero. (This avoids the mysterious   berserk effects while a monster is 
lurking around the corner.)

--------------------------------------------------------------------------------
230e608dbc | j-p-e-g | 2009-03-23 21:28:48 +0000

Remove vestiges of a debugging attempt.

--------------------------------------------------------------------------------
2bcedfdf3c | j-p-e-g | 2009-03-23 21:08:10 +0000

* Allow viewing of card descriptions from Triple Draw and Stack Deck. * Sort 
items in 'V' screen according to pickup menu sort order. * Name Xom's randart 
book gifts more randomly. * Colour items seen by 'x' with message colour tags 
and same for pickup   messages.

--------------------------------------------------------------------------------
c38a52f937 | dolorous | 2009-03-23 14:42:42 +0000

Restrict deep dwarf crusaders, as deep dwarves are bad with enchantments, just 
as mountain dwarves are.

--------------------------------------------------------------------------------
b9712bbb7d | dolorous | 2009-03-23 14:11:14 +0000

Fix [2705960]: Give deep dwarf hunters axes, as mountain dwarf hunters get them 
as well.

--------------------------------------------------------------------------------
4571829797 | dolorous | 2009-03-23 07:36:37 +0000

Unrestrict fire and ice spellbooks for ogres, so that ogre conjurers don't have 
both books restricted.

--------------------------------------------------------------------------------
e08467bf83 | dolorous | 2009-03-23 04:20:57 +0000

Adjust ogre aptitudes to make them better with Maces & Flails and Unarmed 
Combat.

--------------------------------------------------------------------------------
3978c79c81 | dolorous | 2009-03-23 04:11:39 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
aff23ef653 | j-p-e-g | 2009-03-22 21:01:59 +0000

* Don't offer rotten chunks for wearers of "otG since it doesn't   actually 
allow eating of rotten stuff. * Tweak Xom's mood descriptions -> shortened to 
7. * Increase chance of Xom acting under tension: 5% -> 10%

--------------------------------------------------------------------------------
667fb5a810 | dolorous | 2009-03-22 20:19:59 +0000

Tweak wording of god descriptions again.

--------------------------------------------------------------------------------
374e5422ec | dolorous | 2009-03-22 20:06:38 +0000

Update descriptions of good gods' holy being-related conducts.

--------------------------------------------------------------------------------
47386690ed | dolorous | 2009-03-22 19:45:42 +0000

Fix [2701428]: TSO will no longer give piety loss and penance for attacking and 
killing hostile holy beings (not counting holy beings that weren't hostile 
until you attacked them, of course).  The warning prompt now takes this into 
account, as well.

--------------------------------------------------------------------------------
e253274f72 | dploog | 2009-03-22 17:37:44 +0000

Update changelog.

--------------------------------------------------------------------------------
5552cd2b64 | j-p-e-g | 2009-03-22 12:21:32 +0000

Fix Xom doing no high-level effects. (Whoops!)

--------------------------------------------------------------------------------
9ccdd5af6a | haranp | 2009-03-22 10:40:11 +0000

Fix mesmerisation list corruption.

--------------------------------------------------------------------------------
098bf70e23 | haranp | 2009-03-21 20:29:47 +0000

Change default bolts to use 1 range, not 2, when hitting a target.

--------------------------------------------------------------------------------
558369bbce | haranp | 2009-03-21 20:06:40 +0000

Berserking now gives double HP instead of 50% more.

--------------------------------------------------------------------------------
184e389300 | dploog | 2009-03-21 19:34:30 +0000

More speech for the singing sword.

--------------------------------------------------------------------------------
d9ea3d23c7 | dolorous | 2009-03-21 18:32:15 +0000

Fix [2700197]: Use "a" instead of "an" for one-headed hydras.

--------------------------------------------------------------------------------
a827d0a2fe | dolorous | 2009-03-21 04:55:50 +0000

Restrict ogres' using hand axes and being paladins.  Regarding the latter, 
ogres have a horrible aptitude for axes; regarding the latter, ogres have a 
horrible aptitude for long swords, and can't wear heavy armor, so they'll waste 
time training dodging and stealth for the most part.

--------------------------------------------------------------------------------
f86f721a09 | j-p-e-g | 2009-03-20 21:50:54 +0000

* Add ability descriptions to the database search. * Xom no longer gifts stuff 
that unquestionably makes for a more boring   adventure (scrolls of 
Detect/Remove Curse, Magic Mapping, Identify;   potion of cure mutation, amulet 
of resist mutation, ring of control   teleport). * Xom's "niceness" is no 
longer automatically defined by his mood, but   it's now randomly picked 
according to piety > random2(200), which   translates to nice, else the 
opposite. A "beloved toy" is extremely   likely to get nice effects, and vice 
versa for the "beloved plaything". * In xom_acts, instead of 50% chance for 
piety flip, there's now a 20%   chance of piety being randomly rerolled.

--------------------------------------------------------------------------------
3219115e22 | j-p-e-g | 2009-03-20 11:53:32 +0000

* Change size restrictions for banded, splint, plate and crystal plate   mail 
to [SIZE_SMALL, SIZE_MEDIUM] like for the other mails.   (Fixes 2695530.) * 
There's a 50% chance of Xom being amused about former playthings dying.

--------------------------------------------------------------------------------
c8057b4430 | dolorous | 2009-03-20 06:01:05 +0000

Only display Xom's death message for Xom worshippers.

--------------------------------------------------------------------------------
09df3fcb00 | dolorous | 2009-03-20 01:02:43 +0000

Add a few more Xom messages.  Also, since he already has a mass confusion 
effect, replace Mass Confusion with Cause Fear in his random spell list.

--------------------------------------------------------------------------------
a56eea02ae | j-p-e-g | 2009-03-19 22:28:38 +0000

* For flavour, let Xom laugh himself silly whenever a follower dies. * Fix Xom 
being amused about rotten corpses being butchered. (As opposed   to clean 
corpses becoming rotten while butchered, which is how it was   originally 
intended.) * Xom no longer is amused if you deliberately hit yourself with a   
missile/wand/spell in safe surroundings. (Identifying wands that way   or 
zapping /random effects is still considered amusing.)

--------------------------------------------------------------------------------
dbea6550fa | dolorous | 2009-03-19 19:10:59 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
7a384021ca | dolorous | 2009-03-19 19:06:36 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
05a9956798 | j-p-e-g | 2009-03-19 09:46:26 +0000

* Change Roxanne's spells to include Blink Other (instead of Sandblast)   as 
spell to fall back on if all others are out of range. (Fixes 2686559.) * Fix 
2690141: Tiles inventory leaking cursedness of items. * Fix 2687108: 
inappropriate message flushing during repeat command. * Fix opening/closing 
doors not updating exclusion los.

--------------------------------------------------------------------------------
361d79f107 | haranp | 2009-03-18 16:23:40 +0000

Fix [2686013]: remove confusing "You resist." message from monster Cantrip 
spell effect.

--------------------------------------------------------------------------------
744fc99610 | haranp | 2009-03-18 11:43:07 +0000

TSO worshippers with the stinger mutation will not use the tailslap unarmed 
attack.

--------------------------------------------------------------------------------
feedf73958 | haranp | 2009-03-17 22:26:20 +0000

s/targetting/targeting/. Note that targetting is likely actually correct (since 
Crawl uses British spelling) but it's "targeting" everywhere else the user sees 
it (though not necessarily inside the code) and this is the shorter fix. I'm 
sure some language gurus can weigh in on this. Fixes [2688748].

--------------------------------------------------------------------------------
9e53db8d5a | haranp | 2009-03-17 21:51:34 +0000

Fix [2688044]: targeting a wall when firing a missile can leave it stuck in the 
wall.

--------------------------------------------------------------------------------
305618f279 | j-p-e-g | 2009-03-16 20:49:42 +0000

* Fix 2687930: Shorten the spell menu more, and don't call update_title()   at 
'?' as apparently all it does is hide the first spell line. * Uncomment the 
autoinscription of weapons of distortion in init.txt.

--------------------------------------------------------------------------------
e517615e56 | ennewalker | 2009-03-15 22:36:20 +0000

rltiles now creates tile-dngn.html (and others) when creating tile pages.  
These should make it easier to figure out which tiles go by which name.

--------------------------------------------------------------------------------
9bfc46fded | dolorous | 2009-03-15 19:24:20 +0000

Add one more punctuation fix.

--------------------------------------------------------------------------------
923144dd52 | dolorous | 2009-03-15 19:22:46 +0000

Add punctuation fixes.

--------------------------------------------------------------------------------
ad2be26bfe | ennewalker | 2009-03-15 18:52:12 +0000

Adding FTILE entries for hiddenorc2_lemuel.

--------------------------------------------------------------------------------
24dd7bfc96 | j-p-e-g | 2009-03-15 18:51:46 +0000

* Add deck names to card descriptions, and vice versa. This should   eventually 
be done procedurally but for now this will do. * Use non-verbose descriptions 
when hovering over spellbooks in Tiles,   so the description will include the 
spell list.

--------------------------------------------------------------------------------
7426d81458 | dolorous | 2009-03-15 17:35:26 +0000

Fix [2687629]: When checking whether body armour is unwearable, check against 
torso size, not body size, since these are different for nagas, and they should 
be able to wear body armour.

--------------------------------------------------------------------------------
94c124d229 | dolorous | 2009-03-15 17:27:11 +0000

Add still more spacing fixes.

--------------------------------------------------------------------------------
d9eb1773cd | dolorous | 2009-03-15 17:21:08 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
51c7e2c369 | dolorous | 2009-03-15 17:18:51 +0000

Comment fix.

--------------------------------------------------------------------------------
b49960b206 | dolorous | 2009-03-15 17:16:51 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
23aa6c5f88 | dolorous | 2009-03-15 17:13:06 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
3138aa79d0 | dolorous | 2009-03-15 17:04:55 +0000

Add spacing fix.

--------------------------------------------------------------------------------
5ec81a1f66 | dolorous | 2009-03-15 17:02:02 +0000

Per jpeg's suggestion, add a "desecrate orcish remains" conduct for Beogh.  
This will cause a small piety hit, but no penance, for butchering orc corpses, 
or for using non-area necromantic spells on orcish remains which can (a) 
destroy them without creating zombified orcs, or (b) turn them non-orcish 
(Fulsome Distillation, Sublimation of Blood, Bone Shards, and Twisted 
Resurrection).

--------------------------------------------------------------------------------
b0e7dda359 | j-p-e-g | 2009-03-15 16:25:56 +0000

* Tweak shop command help for Tiles. * Hook card descriptions into database.   
This is far from optimal at the moment, e.g. searching for the portal   card 
returns the Portal spell as best match.

--------------------------------------------------------------------------------
66a7042768 | dolorous | 2009-03-15 15:37:10 +0000

Only stop daevas from smiting unchivalrously if they worship TSO.

--------------------------------------------------------------------------------
9b6421c073 | dolorous | 2009-03-15 15:32:32 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
47935805d0 | dolorous | 2009-03-15 15:22:51 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
e57ebac54a | dolorous | 2009-03-15 14:46:50 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
b9fc673ced | dolorous | 2009-03-15 05:24:59 +0000

Typo fix.

--------------------------------------------------------------------------------
e151d570d6 | dolorous | 2009-03-15 05:19:36 +0000

When casting Vampiric Draining, don't mention the monster you're draining.  
First, it's consistent with Yred's Drain Life; second, it should generally be 
obvious from the wounding message which monster you're draining; and third, it 
avoids the message "You feel life coursing from DEAD MONSTER into your body!" 
if the damage the monster takes before its life force courses into you kills it.

--------------------------------------------------------------------------------
f7086e275f | dploog | 2009-03-15 03:04:32 +0000

Slight modification of the shop interface. In console mode, the last two lines 
(explaining the available keys) are now aligned. Left the tiles output 
unchanged as far as possible; could someone still look at a shop in tiles? 
(Also added another ziggurat vault.)

--------------------------------------------------------------------------------
45afe28ca9 | dolorous | 2009-03-15 01:28:50 +0000

Add yet more miscellaneous minor fixes.

--------------------------------------------------------------------------------
2c75973165 | dolorous | 2009-03-15 00:42:20 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
0bb35c8c59 | dolorous | 2009-03-14 23:46:48 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
8a369e0e98 | dolorous | 2009-03-14 23:42:00 +0000

Add still more miscellaneous minor fixes.

--------------------------------------------------------------------------------
d5a459111e | dolorous | 2009-03-14 23:26:17 +0000

Simplify.

--------------------------------------------------------------------------------
07dae10ec5 | dolorous | 2009-03-14 23:21:21 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
cc6e8a3109 | dolorous | 2009-03-14 23:04:25 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
dc9818f51f | dolorous | 2009-03-14 22:28:47 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
d1423a8d90 | dolorous | 2009-03-14 21:17:52 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
f5c222adb9 | j-p-e-g | 2009-03-14 20:51:20 +0000

* Fix tiles 'V' crashing for mimics and dancing weapons. * Display 
wound/attitude overlays.

--------------------------------------------------------------------------------
795bc0f140 | dolorous | 2009-03-14 19:54:08 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
b571afa475 | dolorous | 2009-03-14 19:27:00 +0000

Properly mark cards.txt as having native line endings (oops).

--------------------------------------------------------------------------------
8c58a5f6f1 | j-p-e-g | 2009-03-14 18:30:25 +0000

Overlay tiles in menu with tiles for being equipped/cursed/melded, the 
flavoured floor, and weapon brands.

--------------------------------------------------------------------------------
998211ec14 | dolorous | 2009-03-14 17:39:24 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
0a4a6d5626 | dolorous | 2009-03-14 17:27:42 +0000

Fix [2686874]: Make torment wake sleeping monsters if it damages them.

--------------------------------------------------------------------------------
6f58c0476e | j-p-e-g | 2009-03-14 16:36:33 +0000

Remove references to unimplemented branches (Caverns, Pit, Inferno).

--------------------------------------------------------------------------------
fb0c1ee8cb | dploog | 2009-03-14 15:45:37 +0000

Correct changelog (Eino + Markus).

--------------------------------------------------------------------------------
590bb5a190 | dolorous | 2009-03-14 07:14:53 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
91ea2e466e | dploog | 2009-03-14 06:16:52 +0000

Update branch descriptions. Finally fixes 2664641.

--------------------------------------------------------------------------------
4f1251f61c | dolorous | 2009-03-14 06:14:52 +0000

Add wording fix.

--------------------------------------------------------------------------------
0a0fa00702 | dolorous | 2009-03-14 06:08:34 +0000

Add more minor fixes, and give cards.txt the proper text file properties.

--------------------------------------------------------------------------------
377c5faade | dploog | 2009-03-14 05:53:51 +0000

Added Markus' card descriptions. No use as of yet.

--------------------------------------------------------------------------------
9c8806246f | dploog | 2009-03-14 05:52:46 +0000

Minor changes to the FAQ.

--------------------------------------------------------------------------------
e11defbcde | dploog | 2009-03-14 05:27:33 +0000

Minitomb review.

--------------------------------------------------------------------------------
a367d38b0f | dploog | 2009-03-14 02:11:55 +0000

Hint at the hidden orc entry by using coloured floor. (Zauren) Should use 
FTILES as well, but I don't know which floor tile is correct for the orc mines. 
Could someone please add them to hiddenorc2_lemuel?

--------------------------------------------------------------------------------
c85f2804b6 | dploog | 2009-03-14 01:54:15 +0000

Repair unbalanced entry vault.

--------------------------------------------------------------------------------
d0526412b9 | dolorous | 2009-03-14 01:42:28 +0000

Give abominations and beasts average speed in their data entries, so no speed 
entry is displayed in the "x" screen (as is already done with player ghosts), 
and, hence, no inaccurate speed entry is displayed.

--------------------------------------------------------------------------------
6d727780c5 | dolorous | 2009-03-14 01:20:45 +0000

Go back to speed 0 for abominations and beasts, as it's stored as a char, and 
-1 could cause problems on machines where char is unsigned by default.

--------------------------------------------------------------------------------
7acf4623e3 | dolorous | 2009-03-14 01:03:24 +0000

Add two last speed handling fixes: give skeletons the same speed as zombies, so 
they don't get zero (this will be overridden when they're created anyway), and 
give abominations and beasts speeds of -1 (this will be overridden in 
_mons_real_base_speed() when they're created anyway).  Note that the "x" screen 
still doesn't display the right speeds for the latter.

--------------------------------------------------------------------------------
50ffb58c89 | dolorous | 2009-03-14 00:57:33 +0000

Add missing assert.

--------------------------------------------------------------------------------
0c0f4d1241 | dolorous | 2009-03-14 00:56:54 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
ce5f315c26 | dolorous | 2009-03-14 00:38:12 +0000

Simplify yet again.

--------------------------------------------------------------------------------
d686480e66 | dolorous | 2009-03-14 00:32:22 +0000

Really fix monster speed handling, so that enslaved intact souls can have their 
speed properly overridden.

--------------------------------------------------------------------------------
d7711166c7 | dolorous | 2009-03-14 00:27:21 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
289b890fb1 | j-p-e-g | 2009-03-13 23:14:13 +0000

* Call message flush before entering a shop. * Indent shopping commands 
correctly.

--------------------------------------------------------------------------------
672a1cbf17 | dolorous | 2009-03-13 23:00:07 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
5f60ed597a | dolorous | 2009-03-13 22:58:32 +0000

Simplify.

--------------------------------------------------------------------------------
42daa4ad68 | dolorous | 2009-03-13 22:44:31 +0000

Fix detection of chaotic monsters when the chaotic attack isn't first in the 
list (as with ghouls), and make sure Zin's sustenance is always a prayed-for 
effect.

--------------------------------------------------------------------------------
eaef97383e | dolorous | 2009-03-13 22:05:57 +0000

Add spacing fix.

--------------------------------------------------------------------------------
5cdc09afe6 | dolorous | 2009-03-13 22:04:03 +0000

Clean up Zin's mutation-removal retribution a bit more.

--------------------------------------------------------------------------------
2fbda6fca2 | dolorous | 2009-03-13 21:35:56 +0000

Rework messaging when Zin removes mutations to work the same way as when Xom 
gives mutations.

--------------------------------------------------------------------------------
d955374337 | dolorous | 2009-03-13 21:28:21 +0000

Typo fix.

--------------------------------------------------------------------------------
9386e5f373 | dolorous | 2009-03-13 21:26:41 +0000

Simplify yet again.

--------------------------------------------------------------------------------
38c62f570c | dolorous | 2009-03-13 21:18:08 +0000

Simplify further.

--------------------------------------------------------------------------------
bf628d67a3 | dolorous | 2009-03-13 21:13:00 +0000

Simplify.

--------------------------------------------------------------------------------
3ee21dc2fd | dolorous | 2009-03-13 21:10:21 +0000

Remove erroneous changes.

--------------------------------------------------------------------------------
14f11978fa | dolorous | 2009-03-13 21:08:07 +0000

Move Zin's mutation-removal retribution into its own function.

--------------------------------------------------------------------------------
a7ab45eca4 | dolorous | 2009-03-13 21:06:47 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
92dfc8d106 | dolorous | 2009-03-13 20:46:02 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
6c3f8c2e4d | dolorous | 2009-03-13 20:20:47 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4c9cb7b8e0 | dolorous | 2009-03-13 20:18:22 +0000

Add a few last consistency fixes.

--------------------------------------------------------------------------------
4569bd57d9 | dolorous | 2009-03-13 20:14:34 +0000

Fix Vampiric Drain backlash check.

--------------------------------------------------------------------------------
c806d0576c | dolorous | 2009-03-13 20:13:34 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
efa261989c | dolorous | 2009-03-13 19:53:41 +0000

Fix inconsistencies between Vampiric Draining and Yred's Drain Life: the former 
no longer gives 1 HP minimum, but no longer displays the "life coursing into 
your body" message if you don't gain any HP; and the latter no longer works on 
summoned monsters.

--------------------------------------------------------------------------------
82f5dc3055 | dolorous | 2009-03-13 19:44:25 +0000

Fix comment.

--------------------------------------------------------------------------------
ac47f23453 | dolorous | 2009-03-13 19:38:07 +0000

Refix [2686002]: Vampiric draining, if it successfully damages a monster, will 
now always restore a minimum of 1 HP.

--------------------------------------------------------------------------------
0dcc48ebb8 | dolorous | 2009-03-13 19:37:00 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
faa444b896 | dolorous | 2009-03-13 19:22:20 +0000

Simplify again.

--------------------------------------------------------------------------------
a95a50ff25 | dolorous | 2009-03-13 19:21:04 +0000

Revert r9430, as Yred's Drain Life ability has a minimum gain of 3 (which, when 
divided by 2, is always at least 1).

--------------------------------------------------------------------------------
40dd030218 | dolorous | 2009-03-13 19:03:11 +0000

Fix [2686002]: Vampiric draining (and Yred's Drain Life ability) could succeed, 
but give you 0 HP, so make them give a minimum of 1 HP.

--------------------------------------------------------------------------------
1bb4f01f65 | dolorous | 2009-03-13 18:46:23 +0000

Fix [2686115]: Remove references to the clarity mutation's having three levels, 
since it only has one.

--------------------------------------------------------------------------------
eaa52e83a8 | j-p-e-g | 2009-03-12 20:12:49 +0000

FR 2093461: add player + allies FRIENDLY_PICKUP mode Make Roxanne immune to 
disintegration (like ice statues). Move rock worms a bit lower in the dungeon 
and increase their damage (a tiny bit).

--------------------------------------------------------------------------------
b7559dcd3b | dolorous | 2009-03-12 18:53:51 +0000

Fix wording.

--------------------------------------------------------------------------------
5285161fac | dolorous | 2009-03-12 18:52:09 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
2ad1fa9b0f | j-p-e-g | 2009-03-12 17:35:45 +0000

Various documentation tweaks. Among others, replace all references to "class" 
with "job", and "race" with "species" because that comes much closer to what 
they actually are.

--------------------------------------------------------------------------------
84f487691c | dolorous | 2009-03-12 08:00:15 +0000

And fix database lookup of "Device Recharging".

--------------------------------------------------------------------------------
ca585d704a | dolorous | 2009-03-12 07:58:43 +0000

Display deep dwarves' recharging ability on the "A" screen, as we do with 
mummies' stat restoration ability, and change its name to "Device Recharging" 
instead of "Wand Recharging", as it can also work on items like rods.

--------------------------------------------------------------------------------
47147a830b | dolorous | 2009-03-12 06:37:51 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
9b36224504 | dolorous | 2009-03-12 06:03:59 +0000

Remove unused god abilities.

--------------------------------------------------------------------------------
a2f295f3b8 | dolorous | 2009-03-11 22:43:20 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
ead9a6a6bd | dolorous | 2009-03-11 22:32:31 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
2a2610e618 | dolorous | 2009-03-11 22:20:21 +0000

Simplify.

--------------------------------------------------------------------------------
db37e43a07 | dolorous | 2009-03-11 22:16:30 +0000

Properly disallow randart versions of mundane items.

--------------------------------------------------------------------------------
0b8e38c4f5 | j-p-e-g | 2009-03-11 21:47:36 +0000

Prompt for pre-named characters chosen completely randomly (via option 
random_pick, !, or #), defaults to 'y' == "I want to play this combination." 
(Implements part of FR 2088453.)

--------------------------------------------------------------------------------
3f1f5c2f77 | dolorous | 2009-03-11 21:39:34 +0000

Since Poison Weapon won't work on crushing-type weapons, don't allow randart 
crushing-type weapons to have the venom brand either.

--------------------------------------------------------------------------------
da2c683586 | j-p-e-g | 2009-03-11 21:07:48 +0000

Make you_tran_can_wear take item size into account. (Fixes 2680313.)

--------------------------------------------------------------------------------
ec5b80d6bf | j-p-e-g | 2009-03-11 20:49:29 +0000

* Add description toggle (only '?' this time) into spellcasting menu and   make 
I use a loop as well, so that z?? and I are now functionally   identical. 
(Which of course brings up the question of whether you really   need an 
additional key to do this. :p) * Simplify a bit.

--------------------------------------------------------------------------------
4c540e1c4e | j-p-e-g | 2009-03-11 20:01:06 +0000

Generalize the menu toggle from InvMenu to Menu and use it to properly tie 
ability descriptions into the menu. Still haven't worked out how to update the 
titles, though. :(

--------------------------------------------------------------------------------
f792f9b19c | dolorous | 2009-03-11 17:43:51 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4413ba0a17 | dolorous | 2009-03-11 00:21:49 +0000

Comment fix.

--------------------------------------------------------------------------------
b2d325166e | j-p-e-g | 2009-03-10 20:02:38 +0000

Greatly improve 'V' command: * Add toggle to travel to items. (FR 2180269)   
(Basically copied from StashSearchMenu, but I couldn't work out how to   change 
the title after the toggle.) * Display monster tiles, yay! * Space allowing, 
display monsters' description along with 'x'   information. (Ironically, though 
this was copied from Tiles, it only   works for ASCII at the moment.) * 
Right-shift all entry types by 1 instead of just InvEntry, so it's   more 
consistent and looks better on the 'V' screen.

--------------------------------------------------------------------------------
ae2a0b9197 | dolorous | 2009-03-10 17:30:15 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
9206d5f989 | dolorous | 2009-03-10 16:11:24 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
cdd916da06 | dolorous | 2009-03-09 23:33:18 +0000

Tweak duration messages a bit, and mention the risk of magic contamination in 
the description of the Extension spell, as suggested in [1946662].

--------------------------------------------------------------------------------
966ce459bd | dolorous | 2009-03-09 23:11:37 +0000

In remove_divine_stamina(), actually set the duration of divine stamina to 0 
(oops).

--------------------------------------------------------------------------------
c051b90beb | dolorous | 2009-03-09 23:01:48 +0000

Remove one last reference to Repel Undead.

--------------------------------------------------------------------------------
7ca813e3ed | dolorous | 2009-03-09 22:54:53 +0000

Fix compilation.

--------------------------------------------------------------------------------
43f4b1aede | dolorous | 2009-03-09 22:49:27 +0000

Remove more references to the now-unused Repel Undead.

--------------------------------------------------------------------------------
45907051a7 | j-p-e-g | 2009-03-09 21:35:56 +0000

Call flush_prev_message() in prompt_invent_item().

--------------------------------------------------------------------------------
e3af78b8bb | j-p-e-g | 2009-03-09 21:29:12 +0000

* Don't count chunks as "useless" (even if inedible) if the player knows   
Sublimation of Blood or Simulacrum. * Fix missing message flush when memorising 
spells.   (This should probably be handled globally in prompt_invent_item().)

--------------------------------------------------------------------------------
31ecf11f2b | j-p-e-g | 2009-03-09 18:49:14 +0000

* Add tile for Nergalle, who's actually not all that ugly but apparently   has 
a really bad fashion sense. * Add a sticky flame marker for monsters. * Replace 
the trapdoor spider tile with a less original, but nicer one. * Improve 
shopping interface: replace "examine item" command with a   toggle between 
browsing and shopping.

--------------------------------------------------------------------------------
8387025f9d | dolorous | 2009-03-09 10:14:13 +0000

Comment fix.

--------------------------------------------------------------------------------
1052e0b0eb | dolorous | 2009-03-09 10:11:14 +0000

When trying to animate single undead, only count instances of remains instead 
of all items, so that the "no remains/skeleton here" message is properly 
displayed when there are items on the floor but no remains.

--------------------------------------------------------------------------------
ba15bdad80 | j-p-e-g | 2009-03-09 09:46:44 +0000

* Add tile for Sonja. * Display wielded weapons for zombies, Sonja, Ilsuiw and 
Saint Roka. * Reorder get_weapon_offset() to be more logical.

--------------------------------------------------------------------------------
6e70e96606 | dolorous | 2009-03-09 08:51:49 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
0a6132fc67 | dolorous | 2009-03-09 08:17:15 +0000

Comment fix.

--------------------------------------------------------------------------------
bd37c90189 | dolorous | 2009-03-09 08:15:43 +0000

Tweak description of level 3 of the stinger mutation.

--------------------------------------------------------------------------------
6602561914 | dolorous | 2009-03-09 07:44:05 +0000

Add randart name entry.

--------------------------------------------------------------------------------
3c08b394ad | dolorous | 2009-03-09 07:40:24 +0000

Simplify.

--------------------------------------------------------------------------------
b58a21bf33 | dolorous | 2009-03-09 07:31:05 +0000

Add a few last monster speed cleanups.

--------------------------------------------------------------------------------
e0a29b1ce8 | dolorous | 2009-03-09 07:03:40 +0000

Comment fix.

--------------------------------------------------------------------------------
89cc8c5fc5 | j-p-e-g | 2009-03-08 21:23:15 +0000

Tiles: * (Re?)allow mouseclicks in menus (Tiles, only):   L-click = scroll 
down, R-click = Esc * Clear last_clicked_grid if you move your mouse. * When 
entering a new level, draw the map before handling monster shouts.
Enne, please review the changes. Thanks!

--------------------------------------------------------------------------------
6760ab3170 | j-p-e-g | 2009-03-08 17:00:33 +0000

* Rarely, allow randart books to use entirely random names. * Use monsters' 'x' 
descriptions as inf.title when hovering your mouse   over monster tiles. * A 
bit of code cleanup.

--------------------------------------------------------------------------------
1854b1209c | j-p-e-g | 2009-03-08 12:16:32 +0000

Add tiles for Azrael and Saint Roka.

--------------------------------------------------------------------------------
631c886e57 | dolorous | 2009-03-08 08:45:34 +0000

Add wording tweaks to the manual.

--------------------------------------------------------------------------------
e28640bd80 | dolorous | 2009-03-08 03:56:17 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
18ae724a6b | dolorous | 2009-03-08 03:54:17 +0000

Make Xom more amused by the slow healing mutation, and less amused by the 
regeneration mutation.

--------------------------------------------------------------------------------
ec34c00344 | dolorous | 2009-03-08 03:39:54 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
3e1b423c4c | dolorous | 2009-03-08 03:35:55 +0000

Simplify the creation of Yred's enslaved intact souls, taking cues from how 
_define_zombie() works.

--------------------------------------------------------------------------------
5a8bb18ce8 | dolorous | 2009-03-08 03:33:56 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
69eb9a98d4 | dolorous | 2009-03-08 02:55:44 +0000

Remove the now-unused blue and green marks mutations.

--------------------------------------------------------------------------------
ac1d827458 | dolorous | 2009-03-08 00:30:25 +0000

Typo fix.

--------------------------------------------------------------------------------
3eb5546d18 | dolorous | 2009-03-08 00:20:53 +0000

And use it in one more place.

--------------------------------------------------------------------------------
ff81fe1844 | dolorous | 2009-03-08 00:12:21 +0000

Consolidate routines for picking a random draconian monster species.

--------------------------------------------------------------------------------
43c5095baf | dolorous | 2009-03-07 23:33:36 +0000

Add spacing fix.

--------------------------------------------------------------------------------
3aed82040c | dolorous | 2009-03-07 20:20:37 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
f1ee1d885d | dolorous | 2009-03-07 20:16:38 +0000

Remove one more unneeded blank line.

--------------------------------------------------------------------------------
45afb8585a | dolorous | 2009-03-07 19:55:43 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
88143ee1e8 | dolorous | 2009-03-07 19:54:05 +0000

Enable the stinger mutation for nagas and draconians.

--------------------------------------------------------------------------------
4257d4e4ef | j-p-e-g | 2009-03-07 18:07:55 +0000

* Fix wizmode targetting commands not flushing messages correctly. * Fix Sif 
Muna's randart book gifts never containing the Vehumet/Kiku   special spells, 
as was originally intended. (Books found elsewhere   will never contain the 
spells.) * In the highly unlikely case the player already has seen all spells   
don't crash when attempting to gift a book. Instead, simply make the   
acquirement fail, but be quiet about "the demon of the infinite void"   if it 
was instigated by Sif Muna.

--------------------------------------------------------------------------------
0d60a36be8 | dolorous | 2009-03-07 08:58:10 +0000

Add more minor fixes to the manual.

--------------------------------------------------------------------------------
f0027eb531 | dolorous | 2009-03-07 02:31:14 +0000

Remove reference to the old max-HP damage hack for zombified monsters, as it no 
longer applies.

--------------------------------------------------------------------------------
3b222c9b47 | dolorous | 2009-03-07 00:08:57 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
e107eee04e | dolorous | 2009-03-07 00:02:55 +0000

Remove unused demonspawn mutation to gate yourself to Pandemonium.

--------------------------------------------------------------------------------
e8cc1218eb | dolorous | 2009-03-06 23:42:17 +0000

Give Yred's enslaved intact souls the same speed as their base monsters.

--------------------------------------------------------------------------------
673f730759 | dolorous | 2009-03-06 23:35:51 +0000

Properly calculate speed on the level of individual monsters.

--------------------------------------------------------------------------------
bc0e74bb8e | dolorous | 2009-03-06 23:26:44 +0000

Fix miscalculation of zombie downgrades (oops).

--------------------------------------------------------------------------------
edad8f8fa5 | dolorous | 2009-03-06 23:20:22 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
9f9642bd5a | dolorous | 2009-03-06 23:18:36 +0000

Put monster speed calculation back in _define_zombie(), and fix problem where 
the speed was being downgraded for zombies twice.

--------------------------------------------------------------------------------
b69c46eaf0 | dolorous | 2009-03-06 23:08:57 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
7b30912a99 | dolorous | 2009-03-06 23:00:57 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
0e92e916d1 | dolorous | 2009-03-06 22:49:31 +0000

Remove zombified speed downgrade from _define_zombie(), as define_monster() now 
does it.

--------------------------------------------------------------------------------
c19dcb6de6 | dolorous | 2009-03-06 22:46:52 +0000

Add more zombie speed-related fixes.

--------------------------------------------------------------------------------
34fa15a3d2 | dolorous | 2009-03-06 22:22:51 +0000

Clean up monster speed handling a bit.

--------------------------------------------------------------------------------
0b4c292810 | dolorous | 2009-03-06 22:10:47 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
e8eb55d2b0 | dolorous | 2009-03-06 21:36:20 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
880c154e2e | dolorous | 2009-03-06 21:35:13 +0000

Fix description of monsters' flight status.

--------------------------------------------------------------------------------
f2cf0d501b | dolorous | 2009-03-06 20:56:42 +0000

Remove a few more references to Gnomes.

--------------------------------------------------------------------------------
4e3038e689 | dolorous | 2009-03-06 18:43:38 +0000

Fix [2666231]: Remove erroneous extra space.

--------------------------------------------------------------------------------
fde2770c08 | dolorous | 2009-03-06 18:31:18 +0000

Fix the amulet of the gourmand autoid when drinking potions of blood.

--------------------------------------------------------------------------------
2772e5117b | haranp | 2009-03-06 14:35:34 +0000

Fix permanent-MP abilities being usable when only temporary MP (e.g. from a 
ring of magical power) is available. [2664906] This does not apply to HP costs 
because there's no way to abuse that. In theory it might still be possible to 
get negative real MP with the high/low magic mutations.

--------------------------------------------------------------------------------
3d14b002a1 | haranp | 2009-03-06 11:21:22 +0000

Allow enchantments to affect wall monsters.

--------------------------------------------------------------------------------
42a0605263 | haranp | 2009-03-06 11:19:08 +0000

Fix [2667739]: monsters in walls were being hit twice by bolts, once with a 
test, once without.

--------------------------------------------------------------------------------
0eccbe92f1 | haranp | 2009-03-06 11:13:35 +0000

FR [2163236]: Passwall should wake monsters it displaces. Fix Passwall 
instadeaths not working for deep dwarves.

--------------------------------------------------------------------------------
1a3922fd4a | j-p-e-g | 2009-03-06 09:29:24 +0000

Tiles again: * Store index of last cell clicked on in inventory and suppress 
item   description if you just clicked on it, so you can see the messages   
describing whatever you just did (should fix 2660578). * Allow right-click as a 
synonym for '!' when toggling ^, A, m. * Let shift left-click on avatar 
standing on altar = prayer.

--------------------------------------------------------------------------------
cd3044ce7a | dolorous | 2009-03-05 20:08:16 +0000

Fix zombified monsters' speed downgrades: monsters::number no longer holds the 
zombie base type, so properly use mons_zombie_base() instead.

--------------------------------------------------------------------------------
963af9e9ed | dolorous | 2009-03-05 19:54:53 +0000

Comment fix.

--------------------------------------------------------------------------------
44723972dd | dolorous | 2009-03-05 16:02:37 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
65f0d679e9 | dolorous | 2009-03-05 13:48:56 +0000

Fix most of the rest of [2664641] by applying maiermrk's patch, with a few 
tweaks.

--------------------------------------------------------------------------------
48c3be7842 | dolorous | 2009-03-05 13:31:17 +0000

Fix part of [2664641]: Mark FAQ.txt as having native line endings.

--------------------------------------------------------------------------------
523bc8d6c7 | haranp | 2009-03-05 12:08:02 +0000

Fix [2650618]: polymorphing a damaged monster to a lower-HP form could kill it.

--------------------------------------------------------------------------------
85699d8241 | haranp | 2009-03-05 10:56:46 +0000

Fix [2664479]: handle monster lookups from ?/M better. Handle mimics better. 
Note that the monster pane will unify two mimics if you see both at once; I 
think this is not because of what I just changed but it might be.

--------------------------------------------------------------------------------
f847b23932 | haranp | 2009-03-05 10:25:57 +0000

Fix bad indentation [2664448].

--------------------------------------------------------------------------------
18b6b14298 | haranp | 2009-03-05 10:24:00 +0000

Fix non-active hooves/talons not conflicting.

--------------------------------------------------------------------------------
7281afe5a1 | haranp | 2009-03-05 10:11:37 +0000

Allow getting the slow healing mutation. Be less nice when a god gifts a 
negative mutation: clear away the appropriate positive mutation (e.g., 
eliminate Regeneration if a god gifts Slow Healing), instead of the previous 
behaviour, which was to fail. Fix bug where demonspawn with the 
genetically-stable mutation could get conflicting mutations. Clean up mutation 
code.

--------------------------------------------------------------------------------
ef7c9dcb3f | dploog | 2009-03-04 23:09:10 +0000

Some more changes to the changelog.

--------------------------------------------------------------------------------
ec8a35f9aa | dolorous | 2009-03-04 22:03:37 +0000

Update documentation again.

--------------------------------------------------------------------------------
c070fa4aa1 | j-p-e-g | 2009-03-04 22:01:15 +0000

[Tiles] Keep track of which dungeon grid the player last clicked and don't 
display the grid description (feature, item, monster) for that grid. Fixes 
(part of) 2660578, i.e. monster descriptions hiding fighting messages.

--------------------------------------------------------------------------------
d81fc850da | dolorous | 2009-03-04 21:53:34 +0000

Update documentation to account for the removal of grey elves and gnomes.

--------------------------------------------------------------------------------
a6772d2fdc | haranp | 2009-03-04 21:23:23 +0000

Remove gnomes and grey elves. (Can someone check the tiles compile?) 
Species-shifts saves.

--------------------------------------------------------------------------------
ad41e88ccd | haranp | 2009-03-04 20:36:12 +0000

Fix [2661474]: note_all_skill_levels was being ignored.

--------------------------------------------------------------------------------
a615f8180b | dolorous | 2009-03-03 20:17:49 +0000

Tweak sanctuaries' influence on monsters, now that giant spores have MH_PLANT 
holiness and aren't stationary.

--------------------------------------------------------------------------------
46a94fe9c1 | haranp | 2009-03-03 20:14:28 +0000

Fix [2657235]: pacified monsters leaving the level caused a crash.

--------------------------------------------------------------------------------
fdaca8c91d | dolorous | 2009-03-03 06:10:20 +0000

Comment fix.

--------------------------------------------------------------------------------
db2502244a | dolorous | 2009-03-03 06:09:41 +0000

"!p" and similar inscriptions are not specific to Nemelex anymore, since Beogh 
now takes corpses anywhere, so update the manual to account for this.

--------------------------------------------------------------------------------
9e0b75bbaf | dolorous | 2009-03-03 06:02:34 +0000

Add minor cosmetic fixes.  (Yes, the "x" monster description uses the serial 
comma, but the logic to describe what the monster has equipped under what 
circumstances is complicated enough that it's easier to leave it that way for 
now.  Besides, the monster resistances list uses the serial semicolon, and 
probably for similar reasons.)

--------------------------------------------------------------------------------
e4f8f08d63 | dolorous | 2009-03-03 03:14:26 +0000

Comment fixes.

--------------------------------------------------------------------------------
d99ef7b654 | dolorous | 2009-03-03 00:10:04 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
f07f08abcb | dolorous | 2009-03-02 23:47:12 +0000

Display the proper message when using a scroll of Enchant Weapon III on 
missiles.

--------------------------------------------------------------------------------
4d6afd27c4 | dolorous | 2009-03-02 23:19:56 +0000

Remove obolete reference to Repel Undead from the manual.

--------------------------------------------------------------------------------
f21ffbab16 | dolorous | 2009-03-02 23:16:39 +0000

Minor documentation update.

--------------------------------------------------------------------------------
475c5568e7 | dolorous | 2009-03-02 23:04:31 +0000

Simplify.

--------------------------------------------------------------------------------
fa172dfcf7 | j-p-e-g | 2009-03-02 21:19:53 +0000

Correct "Burn Books" to "Burn Spellbooks" in ability.txt.

--------------------------------------------------------------------------------
3ef70e6dea | dolorous | 2009-03-02 18:49:18 +0000

Use monsters::mindex() in a few more places.

--------------------------------------------------------------------------------
02f124467e | dolorous | 2009-03-02 18:36:23 +0000

Clean up.

--------------------------------------------------------------------------------
52c7e79cd7 | dolorous | 2009-03-02 18:35:22 +0000

Make artificers' rods of striking start with a constant number of charges, as 
their wands do.

--------------------------------------------------------------------------------
da683c2f2f | dolorous | 2009-03-02 08:14:06 +0000

Tweak probabilities of racial helmets a bit.

--------------------------------------------------------------------------------
2f55bb611d | dolorous | 2009-03-02 08:01:04 +0000

Simplify.

--------------------------------------------------------------------------------
a33e5fa47d | dolorous | 2009-03-02 07:27:33 +0000

Add a few fighting-related consistency checks: don't try to convert sleeping 
orcs if they're shapeshifters or summoned, and check if a monster can bleed 
before making it do so on the floor when it's hurt.

--------------------------------------------------------------------------------
83ea81594f | dolorous | 2009-03-02 05:07:07 +0000

Change Elyvilon's healing abilities back to Lesser and Greater Healing, 
respectively, and rename the healing spells to Minor and Major Healing instead.

--------------------------------------------------------------------------------
d9575442e5 | dolorous | 2009-03-02 02:49:15 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
b8e88063e8 | dolorous | 2009-03-02 01:47:54 +0000

Fix description cut-and-paste error.

--------------------------------------------------------------------------------
c5f6240b11 | dolorous | 2009-03-02 01:41:59 +0000

Typo fixes.

--------------------------------------------------------------------------------
ea1e9c929f | dolorous | 2009-03-02 00:37:31 +0000

Add capitalization fix.

--------------------------------------------------------------------------------
c07c675fb1 | dploog | 2009-03-01 23:49:56 +0000

Update Deep Dwarf description (William Tanksley).

--------------------------------------------------------------------------------
852567bef7 | dolorous | 2009-03-01 19:15:17 +0000

Add comments.

--------------------------------------------------------------------------------
f2693552b6 | j-p-e-g | 2009-03-01 14:30:31 +0000

Update the Tiles section of the installation guide seeing how the makefile 
names have changed. The OSX section probably needs to be overhauled (we now 
have a makefile.osx) but I don't know anything about that.

--------------------------------------------------------------------------------
95495bfd3a | dploog | 2009-03-01 03:10:31 +0000

Restored the original idea of Onia's zoo entry vault.

--------------------------------------------------------------------------------
b872c3121b | dolorous | 2009-03-01 03:01:23 +0000

Fix more monster placement problems: After falling down shafts, if the monsters 
weren't placed near the player, they'd all be placed at the same location, 
causing "floating monster" errors.  Place them all *near* that same location 
instead, and check for terrain the monster can inhabit instead of just floor.

--------------------------------------------------------------------------------
46f119b34b | haranp | 2009-02-28 23:56:48 +0000

Typo fix.

--------------------------------------------------------------------------------
e33656cdd4 | haranp | 2009-02-28 23:53:21 +0000

When wizard-tweaking object flags, read input in hex, not decimal.

--------------------------------------------------------------------------------
ae6e9ade3b | dolorous | 2009-02-28 23:15:19 +0000

Update the manual to account for non-Zin priests' no longer starting with 
healing potions.

--------------------------------------------------------------------------------
2599a2f0d8 | haranp | 2009-02-28 23:04:06 +0000

Fix [2644366]: place a space between prefixes and the item name. Also, fix the 
documentation which used to say that the prefixes are comma-separated (they're 
not.)

--------------------------------------------------------------------------------
ce35ea47d3 | haranp | 2009-02-28 22:41:08 +0000

Code cleanups with monster speech (targeted beams, etc.) Paranoia for [2482120] 
("you resist" message across the level.)

--------------------------------------------------------------------------------
bfebe3f89a | dolorous | 2009-02-28 22:27:24 +0000

Only give starting healing potions to priests of Zin, as they only fit him 
thematically, and priests of Yred and Beogh are strong enough without them.

--------------------------------------------------------------------------------
b6ccd63153 | dolorous | 2009-02-28 21:13:12 +0000

Simplify further.

--------------------------------------------------------------------------------
ebbcb6e4ba | dolorous | 2009-02-28 21:09:23 +0000

Simplify.

--------------------------------------------------------------------------------
e5b16ab69b | dolorous | 2009-02-28 20:55:14 +0000

When you dump Beogh, after making all your orcish allies hostile, make any 
monsters created by your orc high priests hostile, too.

--------------------------------------------------------------------------------
7dee23de06 | dolorous | 2009-02-28 19:03:25 +0000

Add conducts for undead slaves' killing undead and demons.  Currently, the only 
difference between these and the conducts for servants' killing undead and 
demons are the messages ("slaves' kills" vs. "collateral kills").

--------------------------------------------------------------------------------
2b335fe17e | dolorous | 2009-02-28 18:22:41 +0000

When sacrificing items to a god, display the message indicating the god's favor 
before the sacrifice, not after.

--------------------------------------------------------------------------------
e63eb3df32 | dolorous | 2009-02-28 18:12:27 +0000

Make Beogh accept kills from zombies raised by orc high priests, as he already 
does with demons summoned by orc high priests.

--------------------------------------------------------------------------------
966c3e5d50 | j-p-e-g | 2009-02-28 18:05:35 +0000

Fix recursive loops for flushing messages when more() is calling getch() by 
adding a boolean to keep track on whether we already called 
flush_prev_message() this round, reset once a new message is pushed into 
prev_message. There's probably a better solution, but this one works well 
enough.

--------------------------------------------------------------------------------
0b15bc15b8 | dolorous | 2009-02-28 17:17:33 +0000

Comment fix.

--------------------------------------------------------------------------------
c751e31247 | dolorous | 2009-02-28 17:17:04 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
91ce2cd608 | dolorous | 2009-02-28 17:04:55 +0000

If, as a Beoghite, you forcibly convert an orc by attacking while it's asleep, 
end the attack round afterwards, so that you don't make an auxiliary unarmed 
attack and immediately annoy your new convert.

--------------------------------------------------------------------------------
3fa87ed849 | dolorous | 2009-02-28 16:36:36 +0000

Since Beogh now accepts kills of more than just living monsters, allow 
followers to be properly blessed for such kills.

--------------------------------------------------------------------------------
1d1741d318 | j-p-e-g | 2009-02-28 15:53:10 +0000

Flush messages, just in case, in the two definitions of getch_ck() that don't 
use getch(), for Tiles and win32.

--------------------------------------------------------------------------------
918d9df900 | haranp | 2009-02-28 15:39:43 +0000

Fix some more bugs with imp taunts.

--------------------------------------------------------------------------------
03049032de | dolorous | 2009-02-28 13:46:43 +0000

Tweak follower blessing probabilities.

--------------------------------------------------------------------------------
e4225e7cbb | dolorous | 2009-02-28 13:38:21 +0000

Remove more unused static functions.

--------------------------------------------------------------------------------
5e30a58c2a | dolorous | 2009-02-28 13:23:26 +0000

In choose_random_monster_on_level(), decouple the preference for named monsters 
from the preference for priestly monsters; if both are used, named priestly 
monsters are most likely to be blessed.

--------------------------------------------------------------------------------
431848df80 | j-p-e-g | 2009-02-28 12:52:46 +0000

Call flush_prev_message() before getch(), cancelable_get_line() and 
mpr_formatted_output(). Fixes 2647846.

--------------------------------------------------------------------------------
7c77ddbf2a | haranp | 2009-02-28 11:55:43 +0000

Fix another missing speech replacement (also in 2634507).

--------------------------------------------------------------------------------
571e3ccff2 | dolorous | 2009-02-28 06:43:05 +0000

Adjust descriptions for Elyvilon's healing abilities again, and rename them 
"Minor Healing" and "Major Healing" so as not to overlap with the "Lesser 
Healing" and "Greater Healing" spells.

--------------------------------------------------------------------------------
674518fefb | dolorous | 2009-02-28 06:23:37 +0000

Move descriptions of obsolete spells into docs/obsolete/cut_spells.txt.

--------------------------------------------------------------------------------
669907e13f | dolorous | 2009-02-28 06:01:00 +0000

Adjust Lesser Healing and Greater Healing descriptions a bit.

--------------------------------------------------------------------------------
073d9add58 | dploog | 2009-02-28 04:45:53 +0000

Some more tweaks to ability descriptions.

--------------------------------------------------------------------------------
1289f24139 | dploog | 2009-02-28 04:16:28 +0000

Improved several entries in ability.txt. (Please check the Lesser and Greater 
Healing entries.)

--------------------------------------------------------------------------------
ebd69d95f4 | dploog | 2009-02-28 03:53:21 +0000

Point out a! in manual and ??, and note context sensitive help in ?? and I 
screens.

--------------------------------------------------------------------------------
a3d435d6dd | dolorous | 2009-02-27 23:09:00 +0000

Simplify.

--------------------------------------------------------------------------------
9b2dcc4ad0 | dolorous | 2009-02-27 23:05:45 +0000

Adjust piety gain for blessed dead orcs one more time: 20% chance for 
non-priestly orcs, 40% chance for orc priests, 60% chance for orc high priests, 
and 80% for Saint Roka.

--------------------------------------------------------------------------------
dc97622b5f | j-p-e-g | 2009-02-27 22:19:29 +0000

* Make message condensation merge messages into history correctly. * Fix grid 
descriptions only showing belatedly. * Fix tutorial starting prompt not being 
shown.
There are likely to be more instances where flush_prev_message() needs 
to be called although the turn isn't over yet and it's not a prompt.

--------------------------------------------------------------------------------
498e7da04f | haranp | 2009-02-27 22:13:06 +0000

Fix [2646326]: restore LOS properly after using the applicator functions to 
visit a different level.

--------------------------------------------------------------------------------
18c6841dbd | haranp | 2009-02-27 21:53:45 +0000

Fix crash bug with trolls/nagas pointed out by dolorous.

--------------------------------------------------------------------------------
ffd7b999da | j-p-e-g | 2009-02-27 21:05:46 +0000

Implement a very basic attempt at message condensation: Store the most recent 
message in prev_message and only output it when another non-matching message 
rolls in or the player gets a turn. Matching messages (must be identical and 
issued in direct succession, like is the case with the message history 
condensation) increase the counter, so you end up with messages like:
You feel sick.
The killer bee misses you. (x3)
The killer bee stings you.
The killer bee stings you but doesn't do any damage.
The killer bee misses you. (x5)

...instead of the 11 lines it would have been in total.

This behaviour is controlled by the same option as the condensation in the 
message history, msg_condense_repeats.

There's definitely room for improvement. At the moment the bracketed
information is written into the message itself, which will prevent
further merging in the message history, or, probably worse, cause ugly 
double-merging like "The killer bee misses you. (x3) (x2)".

--------------------------------------------------------------------------------
6c3c530aa8 | dolorous | 2009-02-27 19:33:56 +0000

Fix one more monster placement inconsistency.

--------------------------------------------------------------------------------
191eef419b | j-p-e-g | 2009-02-27 16:03:19 +0000

* Fix 2644253: mgrd bogosity with shafts. * Fix wizmode regex "dismiss monster" 
command &G only dismissing monsters   in sight. * Make fixed level randart 
books a bit more expensive depending on spell   level.

--------------------------------------------------------------------------------
147f57b823 | j-p-e-g | 2009-02-27 13:38:06 +0000

* Mention the spell's name in the forget_spell() miscast effect. * Remove a 
dangling if-statement in monster_die KILL_RESET check.   (It really didn't look 
like it had any purpose, but if I was wrong    please correct me.)

--------------------------------------------------------------------------------
0e6ace1ac9 | j-p-e-g | 2009-02-27 11:50:19 +0000

Axe some more obsolete functions as well as the rotting ability that isn't used 
anywhere.

--------------------------------------------------------------------------------
7a5efda30e | j-p-e-g | 2009-02-27 11:21:45 +0000

Remove now unneeded function.

--------------------------------------------------------------------------------
83c4d3f517 | dolorous | 2009-02-27 07:06:58 +0000

Comment fix.

--------------------------------------------------------------------------------
599961b82f | dolorous | 2009-02-27 06:44:41 +0000

Add more visibility fixes.

--------------------------------------------------------------------------------
f155d043cb | dolorous | 2009-02-27 04:22:32 +0000

Fix a few more potential monster positioning problems.

--------------------------------------------------------------------------------
a77e1d86ee | nlanza | 2009-02-27 02:54:00 +0000

FR 2533562: Move the CRAWL_PIZZA / -pizza options into the init file so that 
they're more easily accessible in hosted games.

--------------------------------------------------------------------------------
1453a4ca61 | dolorous | 2009-02-27 02:33:47 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
a4fafc6644 | dolorous | 2009-02-27 01:58:24 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
1d0af0c9a6 | dolorous | 2009-02-27 00:37:13 +0000

Fix visibility check for enslaved souls.

--------------------------------------------------------------------------------
63b58c4a91 | dolorous | 2009-02-27 00:07:08 +0000

Mention enslaved souls' enhanced regeneration ability in the "Enslave Soul" 
ability description.

--------------------------------------------------------------------------------
84a525ac60 | dolorous | 2009-02-27 00:03:34 +0000

Make enslaved souls regenerate twice as fast as other undead.

--------------------------------------------------------------------------------
142db52cf0 | j-p-e-g | 2009-02-27 00:00:16 +0000

Remove all traces of TRAN_AIR and TRAN_SERPENT_OF_HELL, the latter together 
with the corresponding unused ability.

--------------------------------------------------------------------------------
517f9b7f33 | dolorous | 2009-02-26 23:59:49 +0000

Properly set more SVN properties.

--------------------------------------------------------------------------------
36241f7582 | dolorous | 2009-02-26 23:46:28 +0000

Properly set SVN properties on cut_spells.txt.

--------------------------------------------------------------------------------
2b5374e59b | j-p-e-g | 2009-02-26 23:35:12 +0000

Cut 30 obsoleted spells. (Included in docs/obsolete/cut_spells.txt.) Breaks 
saves.

--------------------------------------------------------------------------------
d58c4046b6 | dolorous | 2009-02-26 23:24:41 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
43d4f34c18 | dolorous | 2009-02-26 23:23:07 +0000

Add spacing fix.

--------------------------------------------------------------------------------
21407febed | dolorous | 2009-02-26 23:16:56 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
cbf2db9dda | dolorous | 2009-02-26 23:13:26 +0000

Add another wording fix.

--------------------------------------------------------------------------------
26c4710f21 | dolorous | 2009-02-26 23:04:42 +0000

Add wording fix.

--------------------------------------------------------------------------------
b45f2604a7 | dolorous | 2009-02-26 22:53:39 +0000

Comment fixes.

--------------------------------------------------------------------------------
a893b18e74 | haranp | 2009-02-26 22:17:15 +0000

Mutations cleanup. Fixes [2641583]. Syncing between the various lists is no 
longer necessary. However, holes in the mutation numbering will cause a crash 
(random2(NUM_MUTATIONS) is used in a few places.) Breaks saves badly, sorry. I 
tested this somewhat but some bugs might have slipped in. Fixes a few other 
bugs (e.g. draconians not having any messages if their wings disappear) and 
highlights some unused code (e.g. no way to get the stinger mutation.)

--------------------------------------------------------------------------------
2d782466ff | dolorous | 2009-02-26 19:31:24 +0000

Mention starving vampires' inability to regain lost stats in the manual.

--------------------------------------------------------------------------------
6684480920 | dolorous | 2009-02-26 18:12:30 +0000

Properly differentiate between blasts and bursts of hellfire in the beam name, 
to avoid getting "killed with a hellfire" death messages.

--------------------------------------------------------------------------------
8925f3861d | dolorous | 2009-02-26 18:08:59 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
f2e7869558 | dolorous | 2009-02-26 17:45:12 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
9a7eaa1f75 | dolorous | 2009-02-26 17:23:03 +0000

Add wording fix.

--------------------------------------------------------------------------------
973e65361e | dolorous | 2009-02-26 17:19:00 +0000

Since swamp worms, quicksilver dragons, and iron dragons can now leave corpses, 
attempt to add proper corpse entries for them in tiles.

--------------------------------------------------------------------------------
0c77c2fbe9 | dolorous | 2009-02-26 16:58:54 +0000

Remove the Book of Healing again, properly this time.  Note that the spells in 
it are still available.

--------------------------------------------------------------------------------
342d93c81d | j-p-e-g | 2009-02-26 16:14:20 +0000

* Add tiles for Eustachio and Roxanne. This leaves Sonja, Azrael,   Nergalle, 
and Saint Roka, for none of which I've got a clear image I can   reconcile with 
the depiction of the base monster. :p * Add quiver backwards key to 
keybind.txt.   (Some other newer commands may still be missing, I don't know.)

--------------------------------------------------------------------------------
2c81407fbf | ennewalker | 2009-02-26 00:46:15 +0000

Switch to using 32-bit types instead of 64-bit types for sqlite.  (dpeg--this 
should fix your compilation issues.)

--------------------------------------------------------------------------------
a6ac606f52 | dolorous | 2009-02-25 23:48:56 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
dc0f86e29f | dolorous | 2009-02-25 22:44:51 +0000

In transform_allows_wearing_item(), disallow wearing armor in bat form, as was 
the case before the recent transformation code cleanup.  This also fixes a 
warning about an unknown transformation type when turning into or back from a 
bat as a vampire.

--------------------------------------------------------------------------------
292205dc2d | dolorous | 2009-02-25 22:39:31 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
b08370cd17 | dolorous | 2009-02-25 22:31:30 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
503a7bd461 | dolorous | 2009-02-25 21:45:15 +0000

Simplify.

--------------------------------------------------------------------------------
85b3bc43e6 | dolorous | 2009-02-25 21:25:16 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
20f905a51c | dolorous | 2009-02-25 18:52:47 +0000

Add more miscellaneous fixes to the manual.

--------------------------------------------------------------------------------
6c25c0eee6 | dolorous | 2009-02-25 18:51:33 +0000

Update the manual to account for ogres' no longer having innate gourmand.

--------------------------------------------------------------------------------
8bfaf6ef81 | haranp | 2009-02-25 16:05:10 +0000

Fix second half of [2628480]: monsters that shout while in view will instantly 
be tagged as seen so that you get the appropriate message if they then move out 
of sight.

--------------------------------------------------------------------------------
12b89633e8 | haranp | 2009-02-25 15:37:08 +0000

Don't give shout/talk messages if they're on the TALK_VISUAL channel (e.g., 
"The jelly quivers", "The jelly jiggles") and you can't see the relevant 
monster. Fixes half of [2628480].

--------------------------------------------------------------------------------
038933c536 | dolorous | 2009-02-25 15:15:33 +0000

Make the tough skin mutation no longer count as a body-covering mutation, and 
replace the hardcoded constant AC bonuses for ogres, centaurs, and trolls with 
equivalent levels of it.  Also, reduce trolls' AC back to 3, since they've been 
getting 4 ever since gaining the fur mutation.

--------------------------------------------------------------------------------
7f087da1e6 | haranp | 2009-02-25 14:08:46 +0000

Fix silly monster AI bug introduced in r9129. Oops. Fixes [2635574]. Also fix 
mons_near() to be more correct.

--------------------------------------------------------------------------------
2365944fa6 | j-p-e-g | 2009-02-25 06:53:51 +0000

* Describe monsters with hellfire resistance (imps) as "extremely   resistant 
to fire" when viewing them. * Don't equip Venom Mages with a short sword 
anymore since Sting is   really powerful and getting a weapon to poison is not 
that hard.

--------------------------------------------------------------------------------
0830a9b5ce | dolorous | 2009-02-25 06:20:50 +0000

Always prompt when trying to drain a corpse as a vampire.

--------------------------------------------------------------------------------
d549ba06db | dolorous | 2009-02-25 06:15:37 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
4e53f8d9cc | dolorous | 2009-02-25 06:10:42 +0000

Disallow vampires' getting the regeneration or slow healing mutations, since 
their healing rate depends on their blood level.

--------------------------------------------------------------------------------
5403e4a838 | dolorous | 2009-02-25 06:05:27 +0000

Comment fix.

--------------------------------------------------------------------------------
5b2d84c8b5 | dolorous | 2009-02-25 05:58:54 +0000

Simplify healing rate calculation for vampires, and make vampires' hunger level 
affect their stat recovery rate similarly to how it affects their healing rate.

--------------------------------------------------------------------------------
55cecf35a3 | dolorous | 2009-02-25 02:14:16 +0000

Since simulacra have changed color in what will be 0.5, add entries for them in 
034_monster_glyphs.txt.

--------------------------------------------------------------------------------
5c50b81977 | dploog | 2009-02-24 23:19:52 +0000

Update in-game help and other documentation about recent command key chances: 
), }. Note: keybind.txt is not up to date yet!

--------------------------------------------------------------------------------
a5c4bf7209 | dolorous | 2009-02-24 21:10:37 +0000

Fix shaggy fur mutation gain message: 3 levels give you 1 level of cold 
resistance, not heat resistance.

--------------------------------------------------------------------------------
c387404526 | dolorous | 2009-02-24 20:43:53 +0000

Describe the effects of the fur mutation in its "mutation gain" messages.

--------------------------------------------------------------------------------
5dc0f00b89 | dolorous | 2009-02-24 20:33:11 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4e947e8808 | j-p-e-g | 2009-02-24 20:30:25 +0000

Change Transmutations back to Transmutation in randbook.txt to reenable the 
synonyms. (All spell types use the singular form, skills use plural.)

--------------------------------------------------------------------------------
b4be22cd4f | dolorous | 2009-02-24 20:09:12 +0000

Add punctuation fix.

--------------------------------------------------------------------------------
1da0974e29 | haranp | 2009-02-24 19:30:59 +0000

When a monster wakes up, give it a foe *before* it shouts, not after. Fixes 
[2634507].

--------------------------------------------------------------------------------
0162697360 | dolorous | 2009-02-24 19:30:41 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
cef2c17b4e | haranp | 2009-02-24 18:44:55 +0000

Partial fix for [2628480]: use you.can_see() instead of 
player_monster_visible() in monsters::name() and do_mon_str_replacements(), so 
that noninvisible monsters which shout when out of sight are handled correctly. 
This isn't really the bug that's there, but it needed to be done sometime. Note 
that this is a change: if a monster is too far away to see and you want to get 
its name, you'll have to set force_vis. I hope this doesn't break anything. 
Also, make the mgrd-out-of-sync message trigger outside of DEBUG_DIAGNOSTICS.

--------------------------------------------------------------------------------
de1e3653a0 | dolorous | 2009-02-24 16:57:47 +0000

Simplify.

--------------------------------------------------------------------------------
3ccd9f8c08 | dolorous | 2009-02-24 16:42:17 +0000

Now that everything in the player's inventory is identified at the start of the 
game, simplify _give_basic_knowledge() to only give knowledge of things that 
wouldn't be in the player's inventory.

--------------------------------------------------------------------------------
af5cb32564 | dploog | 2009-02-24 16:29:54 +0000

A few changes to the changelog.

--------------------------------------------------------------------------------
c09d900dbb | ennewalker | 2009-02-24 01:15:36 +0000

Adding tiles for deep dwarves.

--------------------------------------------------------------------------------
dd65df5b97 | dolorous | 2009-02-24 00:30:31 +0000

Allow prompting to eat chunks when the player doesn't have the gourmand effect, 
but is hungry.

--------------------------------------------------------------------------------
17bbd72f17 | dolorous | 2009-02-23 23:03:28 +0000

Add more wording tweaks.

--------------------------------------------------------------------------------
b3ea87dc7a | dolorous | 2009-02-23 22:59:54 +0000

Add wording tweaks.

--------------------------------------------------------------------------------
1eaec75773 | dolorous | 2009-02-23 21:55:53 +0000

After some thought, remove the starting rod of striking for spriggan 
transmuters, as they have very similar aptitudes to deep elves when it comes to 
transmuters' starting skills, and deep elves don't get the rod of striking.

--------------------------------------------------------------------------------
17379aed73 | dolorous | 2009-02-23 21:52:20 +0000

Add yet another minor cosmetic fix.

--------------------------------------------------------------------------------
7e3979a7b5 | dolorous | 2009-02-23 20:59:57 +0000

Give ghouls one level of the slow healing mutation instead of hardcoding slow 
healing for them.

--------------------------------------------------------------------------------
08af592fcd | dolorous | 2009-02-23 20:54:24 +0000

Properly display the gourmand and slow healing mutations on the "%" screen.

--------------------------------------------------------------------------------
e0b41052ea | dolorous | 2009-02-23 20:01:38 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
20f61e40c4 | dolorous | 2009-02-23 19:01:20 +0000

Simplify.

--------------------------------------------------------------------------------
f886bb92d5 | dolorous | 2009-02-23 18:44:47 +0000

Comment fix.

--------------------------------------------------------------------------------
3cf848cdc8 | dolorous | 2009-02-23 18:38:39 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
293cca37f8 | dolorous | 2009-02-23 18:30:48 +0000

Unrestrict Makhleb for Hill Orcs as well.

--------------------------------------------------------------------------------
6dc2f56559 | dolorous | 2009-02-23 18:27:14 +0000

Unrestrict Makhleb as a religion choice for Deep Dwarves, so that Deep Dwarf 
Chaos Knights don't have all gods restricted.

--------------------------------------------------------------------------------
512f8e9eb3 | dolorous | 2009-02-23 17:52:55 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
54f56857a3 | dolorous | 2009-02-23 17:43:27 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
5e736681c8 | dolorous | 2009-02-23 17:36:38 +0000

Tweak non-healing message for starving vampires to match that from deep 
dwarves.  It's not the same thing, but "not healing naturally" is clearer than 
"not healing", since starving vampires can still be healed by external means.

--------------------------------------------------------------------------------
308065d4bc | dolorous | 2009-02-23 17:20:31 +0000

Add documentation for Deep Dwarves (apparently from a slightly newer version of 
the Deep Dwarves patch).

--------------------------------------------------------------------------------
4e381e6a08 | haranp | 2009-02-23 13:22:17 +0000

Add Deep Dwarves patch, with some minor changes. Add a new mutation, 
MUT_SLOW_HEALING, which at level 3 blocks all healing; it can't be acquired 
randomly, but deep dwarves start with it at level 3. This overrides 
regeneration, including the god-given kind (Trog's Hand.) Fix mutation listings 
(hopefully I got this right.) There are still some cases where DD HP shaving is 
not applied: ability HP costs, Staff of Dispater effect, vampiric draining 
backlash, Sublimation of Blood spell. Fix dancing weapons leaving mgrd 
incorrect if their weapon can't be generated. Breaks saves.

--------------------------------------------------------------------------------
4f849c43a3 | j-p-e-g | 2009-02-23 10:30:25 +0000

Remove aptitude multipliers when picking skills for randart books since they're 
also not used for other acquirements.

--------------------------------------------------------------------------------
3c5f4948b8 | dolorous | 2009-02-23 08:35:38 +0000

Remove now-unneeded prototype.

--------------------------------------------------------------------------------
2b5f67c49a | dolorous | 2009-02-23 04:51:22 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
20860476f6 | dolorous | 2009-02-23 04:49:46 +0000

Simplify.

--------------------------------------------------------------------------------
d31dfb8bad | dolorous | 2009-02-23 04:45:48 +0000

Adjust handling of blood potion nutrition again.

--------------------------------------------------------------------------------
72a538fb6a | dolorous | 2009-02-22 21:51:58 +0000

Typo fixes.

--------------------------------------------------------------------------------
04c6089882 | dolorous | 2009-02-22 21:47:21 +0000

Go back to checking for wearing the amulet of the gourmand when necessary, as 
it differentiates from the gourmand mutation properly.

--------------------------------------------------------------------------------
5dc22152db | dolorous | 2009-02-22 21:13:37 +0000

Add more gourmand-related fixes.

--------------------------------------------------------------------------------
42d8d07399 | j-p-e-g | 2009-02-22 21:03:01 +0000

Fix 2603266: Additional '(' needed for cycling ammo after emptying the          
    previously quivered stack. FR 2594741: Make ')' cycle quiver backwards.     
        The previous behaviour has been moved to '}'. The equipped inventory 
listing ']' now also includes the quivered item(s).

--------------------------------------------------------------------------------
910f0c606f | dolorous | 2009-02-22 20:57:36 +0000

Fix inverted logic when checking if the player likes chunks.

--------------------------------------------------------------------------------
d9c379b296 | dolorous | 2009-02-22 20:22:49 +0000

Fix gourmand logic for blood potions yet again.

--------------------------------------------------------------------------------
d76ec35de3 | dolorous | 2009-02-22 20:17:21 +0000

Clarify.

--------------------------------------------------------------------------------
fc4cb8c992 | dolorous | 2009-02-22 19:24:52 +0000

Check for wearing the amulet of the gourmand again in the "%" screen, so that 
gourmand status isn't given away by an unidentified one.

--------------------------------------------------------------------------------
6aabd413b5 | dolorous | 2009-02-22 18:58:10 +0000

And fix them for vampires, too.

--------------------------------------------------------------------------------
05804ad125 | dolorous | 2009-02-22 18:30:17 +0000

Really fix gourmand checks regarding potions of blood.

--------------------------------------------------------------------------------
fcd1dbe62a | haranp | 2009-02-22 18:06:13 +0000

Add some paranoia for monsters submerging while entangled in a net.

--------------------------------------------------------------------------------
0300a6e6d6 | dolorous | 2009-02-22 17:46:21 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d01e42a27a | dolorous | 2009-02-22 17:44:18 +0000

Fix gourmand checks regarding potions of blood.

--------------------------------------------------------------------------------
03725e8183 | dolorous | 2009-02-22 17:36:57 +0000

Clean up gourmand-related routines: only check for gourmand duration instead of 
checking for wearing the amulet *and* gourmand duration, account for gourmand 
(both the amulet and the mutation) in the output screen, and treat gourmand 
(both the amulet and the mutation) consistently with regard to potions of blood.

--------------------------------------------------------------------------------
e23410c57e | dolorous | 2009-02-22 16:23:24 +0000

Fix the wizard mode mutation list again (oops).

--------------------------------------------------------------------------------
15c6cbeb85 | dolorous | 2009-02-22 16:14:45 +0000

Account for the new gourmand mutation in mutation-related wizard mode commands.

--------------------------------------------------------------------------------
46a6c5db99 | j-p-e-g | 2009-02-22 15:59:03 +0000

Change Transmutation -> Transmutations for consistency with Translocations and 
because it sounds a bit better.

--------------------------------------------------------------------------------
af45612708 | j-p-e-g | 2009-02-22 15:11:32 +0000

* Fix Sif Muna occasionally gifting manuals. * Change innate gourmand eating 
behaviour to MUT_GOURMAND (innate only). * Only bother prompting to eat chunks 
if the player has the gourmand mutation   or the carnivorous mutation at level 
3, or is wearing an amulet of the   gourmand or an unidentified amulet. * 
Remove gourmand behaviour from Ogres, i.e. only Trolls get the   mutation.

--------------------------------------------------------------------------------
f00872b7a5 | dshaligram | 2009-02-22 11:25:01 +0000

[2615112] Fix portal vaults sharing ghosts. Ghosts are now saved into bones.XXX 
where XXX is set from the 'dstext' property of the portal, or to the first 
three letters of the 'dst' property.

--------------------------------------------------------------------------------
50dd7b8473 | haranp | 2009-02-22 11:17:11 +0000

For [2625984], disallow caught monsters from submerging.

--------------------------------------------------------------------------------
bf946a85fe | haranp | 2009-02-21 23:16:42 +0000

For 2089989, reallow friendlies to walk into your damaging clouds in some 
cases, regardless of god.

--------------------------------------------------------------------------------
476b01632e | j-p-e-g | 2009-02-21 20:12:55 +0000

Removing another debugging statement. *sighs* Looks like my commits are spaced 
to far apart for me to remember the basics...

--------------------------------------------------------------------------------
6fe9d2d636 | j-p-e-g | 2009-02-21 19:52:14 +0000

* Tweak spell number of randart books some more. * Loosen restrictions on spell 
levels of unknown spells for normal books,   so there are more matches even for 
untrained schools. * Add a new option dump_book_spells that, if set to true 
(default), will   dump the spells even for non-randart book. Useful if you 
don't know   the books' contents by heart and want to know spells at your 
disposal   without checking some spoilers.

--------------------------------------------------------------------------------
2846de5311 | j-p-e-g | 2009-02-20 22:53:45 +0000

* Lower randart probabilities for book acquirement. * Lower number of spells in 
randart books. * Fix acquirement generating manuals of (null). * Lower chance 
of randart books being named after Pan lords.

--------------------------------------------------------------------------------
1fd9aa7314 | dshaligram | 2009-02-20 18:14:03 +0000

[2418267] Disable stair connectivity fixups in the Tomb so that vault stair 
placement is preserved.

--------------------------------------------------------------------------------
0bf94e351d | dolorous | 2009-02-20 05:18:13 +0000

Give brain worms a melee attack, so that they're useful when zombified.

--------------------------------------------------------------------------------
5799afe36a | dploog | 2009-02-20 05:12:20 +0000

Hint at the force prompt feature when entering annotations.

--------------------------------------------------------------------------------
93fada6f09 | dolorous | 2009-02-20 05:09:59 +0000

Fix [2612652] as consistently as possible.  Of the monsters that have no melee 
attacks, disallow giant eyeballs from being zombified, but go on allowing 
butterflies and brain worms to be zombified.
Rationale: Nothing else in the giant eyeball category can be zombified.  
However, everything else in the "batty monster" and worm categories can 
be zombified.  (Besides, regarding the former, summoning butterflies is 
more about putting barriers between you and monsters, so creating 
butterfly zombies should do the same.)

--------------------------------------------------------------------------------
45fe761d0a | ennewalker | 2009-02-20 03:53:51 +0000

Changing function call in fight.cc to be more dpeg compliant.

--------------------------------------------------------------------------------
c89b568c87 | haranp | 2009-02-20 00:37:20 +0000

Fix [2566927]: add new keymap codes for targeting and levelmap.

--------------------------------------------------------------------------------
207f41de95 | haranp | 2009-02-20 00:20:43 +0000

For [2615112], add a hook for portal vault levels to override the default 
extension (ptl) for ghost filenames. This currently has no effect, as I don't 
know how to hook in Lua code; can someone who knows this better put in code to 
allow .des files to override this extension? [The idea is to give "suffix" a 
good value in _make_ghost_filename().]

--------------------------------------------------------------------------------
b846daeeb2 | dolorous | 2009-02-19 17:41:24 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
aaf17c6100 | dolorous | 2009-02-19 17:35:12 +0000

Add spacing fix.

--------------------------------------------------------------------------------
b0a6446e49 | dolorous | 2009-02-19 14:49:36 +0000

Since the rod of striking has been removed for spriggan enchanters, remove it 
from spriggan thieves the same way, but leave it with spriggan transmuters.
Rationale: Spriggans' aptitude for hand crossbows is average, and, while 
it's the worst aptitude relative to their aptitude for other missile 
weapons, average isn't bad.  In any case, they get a dagger instead of a 
short sword (also taken from spriggan enchanters), which should help 
them stab what they can't shoot, and their speed will let them run when 
necessary.  On the other hand, spriggans' aptitude for unarmed combat is 
bad, and that's the main attack skill given to transmuters.

--------------------------------------------------------------------------------
688e9e139c | dolorous | 2009-02-19 14:43:09 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
e849fa3399 | haranp | 2009-02-19 13:22:30 +0000

And a few more gotos, this time in dgamelaunch code.

--------------------------------------------------------------------------------
cf8a26d051 | haranp | 2009-02-19 13:14:57 +0000

More code cleanups; another goto bites the dust.

--------------------------------------------------------------------------------
65a126fb1a | haranp | 2009-02-19 11:40:35 +0000

Don't allow monsters to walk into you and continue playing innocent. Fixes 
[2021213].

--------------------------------------------------------------------------------
55cbef395f | haranp | 2009-02-18 22:07:53 +0000

Fix [2613867]: Cantrip gives messages even when the casting monster is far away.

--------------------------------------------------------------------------------
e81ad07606 | dolorous | 2009-02-18 18:50:08 +0000

Fix [2611509]: Trog's Brothers in Arms ability is now described as "calling in 
reinforcements",

--------------------------------------------------------------------------------
fe97995cef | haranp | 2009-02-18 10:49:16 +0000

Fix [2612149]: killing the Royal Jelly after drawing Vitrification kept the 
walls as clear stone rather than diggable clear rock.

--------------------------------------------------------------------------------
b6300bc52f | haranp | 2009-02-18 10:17:59 +0000

Fix [2023189]: berserking monsters with friendly targets (e.g. because they got 
hit by dragon breath) kept their target with no effect.

--------------------------------------------------------------------------------
a9dac8d2c4 | haranp | 2009-02-18 09:09:23 +0000

Fix [2610764]: 5% of all misses gave 'Your armour prevents you from hitting 
$MONSTER' regardless of armour. Also put in some paranoia to prevent this 
happening in the future.
The minimum chance of hitting a monster has been reduced from
1 - 0.95^2 = 9.75% (which was a bug) to 5% (which was the
intention.)

--------------------------------------------------------------------------------
f81ebd6b07 | j-p-e-g | 2009-02-18 08:15:47 +0000

Book acquirement again: * Weigh magic skills stronger to bias against manuals. 
* Fall through to randart (theme) books if all spells are known. * Allow spell 
school combinations (Conj/Fire) in naming randarts after   hell lords and 
others.

--------------------------------------------------------------------------------
94d956b872 | haranp | 2009-02-17 22:48:28 +0000

Implement [2535038]: monsters now have a chance of shouting whenever they are 
woken up, unless it's by a successful stab. (The previous behaviour made them 
shout only when they were woken up by the player walking around.)

--------------------------------------------------------------------------------
00c8183d49 | haranp | 2009-02-17 21:29:56 +0000

Fix [2472876]: tutorial possibly taking up too much real estate on skills ('m') 
screen.

--------------------------------------------------------------------------------
5b888a167a | haranp | 2009-02-17 21:13:31 +0000

Fix [1974594]: tutorial item description going off the bottom of the screen.

--------------------------------------------------------------------------------
3738559721 | haranp | 2009-02-17 20:41:45 +0000

Fix [2604363]: stashes and autoexplore leaked information about mimics. 
(Incidentally, if you walk into a mimic by accident, the stash won't go away 
until the next turn. Technically a bug, but a minor one.)

--------------------------------------------------------------------------------
999f4ba812 | haranp | 2009-02-17 19:33:25 +0000

Fix 'V' leaking information about mimics.

--------------------------------------------------------------------------------
27b9f892b8 | dolorous | 2009-02-17 18:21:25 +0000

Make _mutations_prevent_wearing() properly account for the beak mutation (which 
disallows hard helmets).

--------------------------------------------------------------------------------
b20abee634 | haranp | 2009-02-17 18:03:31 +0000

Clean up transformation code. There are still at least four (!) different 
functions which check if you can or can't wear something...that should be 
cleaned up.

--------------------------------------------------------------------------------
bb38cc0d86 | dolorous | 2009-02-17 16:47:06 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
ec77cae6ce | dolorous | 2009-02-17 14:42:06 +0000

Fix [2581197]: Make glow status consistent with magical contamination by fixing 
off-by-one errors when checking the latter.

--------------------------------------------------------------------------------
a3583438b7 | dolorous | 2009-02-17 13:38:21 +0000

Simplify.

--------------------------------------------------------------------------------
386f074019 | haranp | 2009-02-17 11:41:45 +0000

Fix [2608901]: too many transforms got to keep their soft caps. We should 
really merge you_tran_can_wear() and the various tests in transfor.cc.

--------------------------------------------------------------------------------
a298a87264 | haranp | 2009-02-17 10:26:02 +0000

Change elemental type colour enum to use ETC_ prefix instead of EC_ prefix, 
which was conflicting with the Abyssal entry cause enum. Fixes [2605869].

--------------------------------------------------------------------------------
77e8bbcc1d | ennewalker | 2009-02-17 02:02:19 +0000

Halving the time before tooltips appear.

--------------------------------------------------------------------------------
5f2ee354b4 | ennewalker | 2009-02-17 01:43:15 +0000

Allowing multiple mouse clicks on the character to go to the pickup menu.

--------------------------------------------------------------------------------
b5115cd0a5 | ennewalker | 2009-02-17 01:19:21 +0000

Fixing compilation problem with std::min.

--------------------------------------------------------------------------------
3d210e2db0 | dolorous | 2009-02-17 00:13:33 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
3b2fb36c15 | zelgadis | 2009-02-16 23:26:45 +0000

Use up some of a monster's energy when it eats a corpse.

--------------------------------------------------------------------------------
24f3903e3f | dolorous | 2009-02-16 23:11:58 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
8eea21776e | dolorous | 2009-02-16 23:00:11 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
5da6339cc9 | j-p-e-g | 2009-02-16 19:24:52 +0000

Minor fix.

--------------------------------------------------------------------------------
67251d8f0c | j-p-e-g | 2009-02-16 18:58:08 +0000

Fix randart books being much too cheap. (Yes, this was actually a bug.) A 
randart book's rarity is now defined as the average of its three rarest spells.

--------------------------------------------------------------------------------
78a45dd909 | haranp | 2009-02-16 13:14:09 +0000

Fix [2004960]: clean up sanctuary logic. Monsters will now stop fleeing and 
attack you if you step outside of sanctuary; also, they can acquire and chase 
new targets while still respecting sanctuary. Hopefully non-buggy.

--------------------------------------------------------------------------------
263a61728d | zelgadis | 2009-02-16 12:48:57 +0000

Use up some of a monster's energy if it does nothing because there's nowhere 
for it move.

--------------------------------------------------------------------------------
0b23da9f37 | haranp | 2009-02-16 10:36:42 +0000

Fix some more bad accesses to strings.

--------------------------------------------------------------------------------
77e8d85b52 | zelgadis | 2009-02-16 07:15:59 +0000

Don't start a single-line message with "@Possessive@", since the "His/Her/Its" 
won't make it clear which monster the message is referring to.

--------------------------------------------------------------------------------
1c3415a86c | haranp | 2009-02-15 22:18:34 +0000

Fix warning.

--------------------------------------------------------------------------------
2a497a24d4 | j-p-e-g | 2009-02-15 19:50:10 +0000

And Haran is right that deprecated code should be removed rather than commented 
out. Thus axing the old book acquirement code.

--------------------------------------------------------------------------------
5a6e7e3f47 | j-p-e-g | 2009-02-15 19:42:55 +0000

Remove debugging statements (argh!) and tweak book acquirement chances.

--------------------------------------------------------------------------------
e4209979f2 | j-p-e-g | 2009-02-15 19:34:39 +0000

Overhaul book acquirement. 1. Do a skill check to decide on manual vs. 
spellbook (except for Xom    and Sif Muna who never gift manuals). 2. If a 
spellbook, pick randart or normal books with fixed chances. 3. Make randart 
themes dependant on actual skills, not aptitudes. 4. For normal spellbooks, 
pick the book randomly with weights favouring    books with many unknown spells 
of schools you're highly skilled in.    (Bye-bye, fixed book acquirement order!)
Formulas (as suggested by David) may need tweaking, feedback welcome!

--------------------------------------------------------------------------------
1be0369055 | dolorous | 2009-02-15 17:35:54 +0000

Comment fix.

--------------------------------------------------------------------------------
e7502d19aa | dolorous | 2009-02-15 17:34:34 +0000

Implement part of [2595777]: Mark (non-unrandart) knives as mundane items, as 
clubs, giant clubs, and giant spiked clubs are.

--------------------------------------------------------------------------------
b5bfdcc6e0 | dolorous | 2009-02-15 17:27:15 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
7d72224311 | dolorous | 2009-02-15 17:09:18 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
7e85c2da88 | dolorous | 2009-02-15 17:02:32 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
a5f8b4aacc | haranp | 2009-02-15 17:01:48 +0000

Lots more cleanups. Remove the sound-strength #defines because they're not used 
anymore (except for SL_SPLASH, which has been replaced by its value.) Change 
some #defines to const variables.

--------------------------------------------------------------------------------
cf4b68bb3c | haranp | 2009-02-15 10:02:19 +0000

Various cleanups, mostly having to do with coord_def().

--------------------------------------------------------------------------------
bc30076f91 | haranp | 2009-02-15 09:00:16 +0000

Make paralysed creatures auto-stabbable and brand them appropriately. Petrified 
creatures are still only may-stabbable.

--------------------------------------------------------------------------------
e1fa1a0646 | haranp | 2009-02-14 23:24:28 +0000

More mgrd elimination and moving to coord_def().

--------------------------------------------------------------------------------
03e3fad75b | dolorous | 2009-02-14 21:59:41 +0000

Fix the description of the rod of demonology to not be identical to that of the 
rod of destruction, lifting from the description of the book of demonology.

--------------------------------------------------------------------------------
04fde3bc89 | dolorous | 2009-02-14 21:30:39 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
48f4ef8ce3 | dolorous | 2009-02-14 21:29:23 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
8b385cea6f | dolorous | 2009-02-14 20:12:26 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
82afadec06 | dolorous | 2009-02-14 20:11:20 +0000

Since Erolcha is effectively a unique ogre-mage, give her a robe, just as with 
an ogre-mage.

--------------------------------------------------------------------------------
35e9236db1 | dolorous | 2009-02-14 19:43:42 +0000

Apply evktalo's patch in [2586241]: Update level_design.txt and tweak .des 
files.

--------------------------------------------------------------------------------
f5ecdf95ee | haranp | 2009-02-14 19:26:16 +0000

Give green draconians spit poison (a downgrade from breathe poison) in spider 
form.

--------------------------------------------------------------------------------
09cadff304 | dolorous | 2009-02-14 19:15:59 +0000

And tweak it to act (mostly) like the old code used to.

--------------------------------------------------------------------------------
b150867582 | haranp | 2009-02-14 19:14:59 +0000

Give may_stab_brand to unable-to-act (paralysed, petrified) monsters, since 
they're not a guaranteed stab. Only sleeping monsters are. Fixes [2595731].

--------------------------------------------------------------------------------
cec7644b28 | dolorous | 2009-02-14 19:06:49 +0000

Move checks for visibly special armour into their own function, a la 
_weapon_is_visibly_special().

--------------------------------------------------------------------------------
6ffb3b2ebe | dolorous | 2009-02-14 18:57:58 +0000

For completeness, add a mundanity check for armor items.  Note that, since no 
armors are considered mundane, it currently has no effect.

--------------------------------------------------------------------------------
0e7c1bcaa4 | dolorous | 2009-02-14 18:45:14 +0000

Consolidate checks for mundane items.

--------------------------------------------------------------------------------
262dc833c6 | haranp | 2009-02-14 18:41:47 +0000

Fix nasty bug that I introduced in r9012: dungeon generation was relying on 
travel, so in those cases travel *should* know everything about the level. 
Fixes [2596125] and unbreaks cdo. Sorry about that.

--------------------------------------------------------------------------------
08a97b0cc6 | dolorous | 2009-02-14 18:13:19 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
2337ac0cf1 | haranp | 2009-02-14 18:11:26 +0000

Fix spore monsters (ball lightning, giant spore) always giving the "You feel a 
bit more experienced" message, since they were detached from the mgrid before 
getting around to dying. Fixes [2598088]. This is a hack; improvements welcome.

--------------------------------------------------------------------------------
5c24925f58 | haranp | 2009-02-14 17:43:13 +0000

Fix [2598159]: conjure flame not respecting range limits.

--------------------------------------------------------------------------------
dfe6cae403 | dolorous | 2009-02-14 17:14:25 +0000

For now, revert r9064, so that Elyvilonites can use wands of healing again, and 
refix [2594209], to not allow such wands to pacify un-pacifiable monsters.

--------------------------------------------------------------------------------
b99e3d1997 | ennewalker | 2009-02-14 16:59:13 +0000

[2412841] Removing fragile support for Berkely dbm and using SQLite instead.

--------------------------------------------------------------------------------
0de1090c0c | ennewalker | 2009-02-14 16:56:19 +0000

Adding some rock and floor tile settings to entry vaults, especially where 
COLOUR was already specified.

--------------------------------------------------------------------------------
e60961de9e | dolorous | 2009-02-14 16:38:35 +0000

Fix [2594209]: Make sure Elyvilonites can only pacify monsters using Elyvilon's 
healing invocations.

--------------------------------------------------------------------------------
2141d5e29b | ennewalker | 2009-02-14 15:27:07 +0000

[2541020] Fixing minimap being drawn on top of the dungeon.

--------------------------------------------------------------------------------
56ec9dd204 | ennewalker | 2009-02-14 15:18:04 +0000

Making tutorial and named monster tags consistent.  Also, making tooltips not 
disappear until the mouse moves to another square, to address [2564067].

--------------------------------------------------------------------------------
61b8176337 | dolorous | 2009-02-13 21:02:42 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
e6f8b61aa8 | dolorous | 2009-02-13 20:59:36 +0000

Comment fix.

--------------------------------------------------------------------------------
2918c2a6be | dolorous | 2009-02-13 16:22:30 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
0f79077d3f | dploog | 2009-02-13 06:21:07 +0000

Modified Unarmed Combat in-game descriptions. (FR 2594007, slinkies)

--------------------------------------------------------------------------------
b01f304476 | dolorous | 2009-02-13 01:16:01 +0000

Fix inverted logic for checking whether monsters are affected by mass draining.

--------------------------------------------------------------------------------
412bcd6e77 | haranp | 2009-02-13 00:47:33 +0000

Remove a great many cases where mgrd is accessed directly in favour of 
monster_at(). The hope is to eventually remove mgrd completely (in favour of 
scanning through the monster list, or a different datastructure which gets 
updated automatically when monsters move), and thus fix all the 
mgrd-out-of-sync bugs in one fell swoop.

--------------------------------------------------------------------------------
2dd4fe4a7f | dolorous | 2009-02-12 23:08:01 +0000

Give giant spores MH_PLANT holiness (fixing [2538868]), and allow monsters with 
MH_PLANT holiness to be polymorphed, so that they can still be handled quietly. 
 Note that, according to the rules of polymorphing, they can only be turned 
into monsters of the same holiness that give experience when killed.  This 
means that giant spores, wandering mushrooms, and oklob plants can now be 
quietly polymorphed into each other.

--------------------------------------------------------------------------------
b5d0536089 | dolorous | 2009-02-12 20:20:27 +0000

Comment fixes.

--------------------------------------------------------------------------------
e19beca3fe | dolorous | 2009-02-12 20:12:06 +0000

Fix inverted logic that was allowing ranged weapons to have the +Rage property.

--------------------------------------------------------------------------------
a6541942ad | dolorous | 2009-02-12 20:10:40 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
71f58563ea | haranp | 2009-02-12 19:01:03 +0000

Call mons_clear_trapping_net() in monsters::moveto(), so it shouldn't be needed 
in other places. Should fix [2456879].

--------------------------------------------------------------------------------
6dce7d753b | dolorous | 2009-02-12 18:53:48 +0000

Fix use of the serial comma.

--------------------------------------------------------------------------------
576aa0699a | dolorous | 2009-02-12 18:08:49 +0000

Fix warning.

--------------------------------------------------------------------------------
46dff5896c | dolorous | 2009-02-12 18:04:00 +0000

Properly use default parameters when displaying comma-separated lists.

--------------------------------------------------------------------------------
16b8d5a29f | dolorous | 2009-02-12 17:53:01 +0000

Tweak punctuation.

--------------------------------------------------------------------------------
fc433497ef | dolorous | 2009-02-12 17:49:21 +0000

Tweak Zin's and TSO's descriptions and power descriptions.

--------------------------------------------------------------------------------
42a720373a | dolorous | 2009-02-12 17:16:14 +0000

Unbreak database lookups.

--------------------------------------------------------------------------------
0bd9c6b0a4 | dolorous | 2009-02-12 17:15:46 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
34efc668b8 | dolorous | 2009-02-12 16:57:29 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
6848d045c8 | dolorous | 2009-02-12 16:04:32 +0000

Add formatting fix.

--------------------------------------------------------------------------------
08279d913b | dolorous | 2009-02-12 16:03:40 +0000

Add typo and wording fixes.

--------------------------------------------------------------------------------
9eee1107df | dolorous | 2009-02-12 15:45:44 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
ab5e23d711 | dolorous | 2009-02-12 15:35:27 +0000

Don't give away rotting for monsters you can't see.

--------------------------------------------------------------------------------
9940a7eb29 | dolorous | 2009-02-12 15:22:14 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
b6d3c97062 | dolorous | 2009-02-12 15:20:44 +0000

Add formatting fix.

--------------------------------------------------------------------------------
ed3c8c2ae5 | haranp | 2009-02-12 13:13:40 +0000

Clearing trapping nets moved into player::moveto() and level change. This fixes 
some bugs (e.g. Portal spell and nets interact properly.)

--------------------------------------------------------------------------------
2368157486 | haranp | 2009-02-12 09:28:21 +0000

Fix [2591166]: Unbound keys (which produce CMD_NO_CMD) still count for the last 
command, thus causing an ASSERT when repeating.

--------------------------------------------------------------------------------
a7e2693b2e | haranp | 2009-02-12 09:10:49 +0000

Dancing weapons fix for trunk.

--------------------------------------------------------------------------------
cc1f76cb96 | dploog | 2009-02-12 05:22:07 +0000

Item descriptions for the three special books and for executioner's axes (the 
latter by Andy).

--------------------------------------------------------------------------------
76a5cc5049 | ennewalker | 2009-02-12 05:05:43 +0000

Mousing over monsters, items, and features will now show their description in 
the message window.  This inadvertantly fixes [2469950], where some lines would 
appear off screen.

--------------------------------------------------------------------------------
aa6dd78dce | haranp | 2009-02-11 23:34:34 +0000

Fix [2590746]: casting Blink with teleport control active did not clear 
trapping nets. This might be have caused a few other similar bugs (maybe 
[2456789], for example.)

--------------------------------------------------------------------------------
66a5899faf | haranp | 2009-02-11 21:58:55 +0000

Fix [2035741]: give different messages when an attack is completely stopped by 
AC and when at least some of it bypasses AC but it is completely stopped by 
resistance. Fix bug where determine_damage() was ignoring AC. Fix negative 
energy always being known even if it hits something you can't see.

--------------------------------------------------------------------------------
f5ce15870a | haranp | 2009-02-11 20:36:46 +0000

Fix [2586695]: you can no longer throw items (including via Portal Projectile) 
if you can't wield weapons. Don't allow base-shape breath attacks when 
shapechanged, except for Nagas in spider form. Fix [2589913]: melded shields 
counted for heavy armour penalties.

--------------------------------------------------------------------------------
50a255f8ea | dolorous | 2009-02-11 17:29:22 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
bca18c2aa4 | dolorous | 2009-02-11 17:02:11 +0000

Fix part of [2578176]: Fix help database lookups of spell names, so that Bolt 
of Inaccuracy is properly listed as being in one of the rods of destruction.

--------------------------------------------------------------------------------
e5db234d57 | haranp | 2009-02-10 08:27:18 +0000

Fix [2583985]: autoexplore not refreshing stats when T&D skill prevents walking 
into a trap. There could be other places lurking where turn_is_over is manually 
overriden, but a quick check didn't find any problematic ones (i.e. ones that 
change game state.)

--------------------------------------------------------------------------------
25d3b62862 | haranp | 2009-02-10 08:16:22 +0000

Better message for Trog's ignite spellbooks ability failing. [2579830]

--------------------------------------------------------------------------------
f1252be022 | dploog | 2009-02-10 05:02:39 +0000

Repair broken randomisation in castamir's vault.

--------------------------------------------------------------------------------
3d61cb6bfb | haranp | 2009-02-09 23:32:48 +0000

Better fix for [2478607]: colours leaking information about trap status. There 
is still a bug in that 'x'ing over a former trap will describe the feature as 
'floor' rather than 'trap'. This is because _describe_feature() looks at the 
actual grid, not the envmap. However, there is currently no perfect way to 
prevent this: map_cell only stores an appearance, not the actual feature layer. 
So if a monster was on a trap when you last saw it, and then the trap gets 
disarmed, there is no way to know that there was once a trap there. The correct 
fix is to have map_cell remember the object, feature and monster layers 
separately, but since this will break savefiles and require some work, I'm not 
fixing it yet.

--------------------------------------------------------------------------------
c71ba7d095 | dolorous | 2009-02-09 17:58:13 +0000

Fix wording again.

--------------------------------------------------------------------------------
0b2fd72c23 | dolorous | 2009-02-09 17:57:11 +0000

Add punctuation fix.

--------------------------------------------------------------------------------
2056987a1e | dolorous | 2009-02-09 17:56:09 +0000

Add more wording fixes.

--------------------------------------------------------------------------------
d59fa2af7d | dolorous | 2009-02-09 17:54:13 +0000

Simplify wording.

--------------------------------------------------------------------------------
c3d3ae5b47 | haranp | 2009-02-09 17:38:54 +0000

Don't give an empty Stash: line when describing squares which have an empty 
stash.

--------------------------------------------------------------------------------
393265212c | dolorous | 2009-02-09 13:32:52 +0000

And fix messaging for abjuration protection.

--------------------------------------------------------------------------------
ddb9d09c44 | dolorous | 2009-02-09 13:30:31 +0000

Handle things properly when abjuration protection cancels out abjuration 
entirely.

--------------------------------------------------------------------------------
b5e9ab44fd | haranp | 2009-02-09 12:44:48 +0000

Fix level map, and travel, knowing too much about the level. Hopefully this 
didn't break anything which travel depends on. Fixes [2051248].

--------------------------------------------------------------------------------
d59655f1d4 | dolorous | 2009-02-09 10:47:54 +0000

Simplify.

--------------------------------------------------------------------------------
291962f531 | ennewalker | 2009-02-09 02:28:44 +0000

Allow BUILD_REVISION to be defined at compilation time to manually specify the 
SVN revision, overriding the number derived from keywords.

--------------------------------------------------------------------------------
a44a3a7b1e | dolorous | 2009-02-09 01:55:44 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
fa625da229 | dolorous | 2009-02-09 01:50:38 +0000

Comment fixes.

--------------------------------------------------------------------------------
ddb3090f8d | dolorous | 2009-02-09 01:50:07 +0000

Adjust odds of Xom-worshipping holy beings in the Abyss again.

--------------------------------------------------------------------------------
57a4ce31b5 | dolorous | 2009-02-09 01:39:17 +0000

Rarely, allow holy beings in the Abyss to worship Xom instead of TSO.

--------------------------------------------------------------------------------
2dd497a059 | dolorous | 2009-02-09 00:57:42 +0000

Comment fix.

--------------------------------------------------------------------------------
f355d0cc4d | dolorous | 2009-02-09 00:47:48 +0000

Implement [2546032]: Aside from orc priests and orcs, which can worship Beogh, 
and holy beings, which can worship TSO (or, specially, Xom), give other 
priestly monsters that need gods the new god GOD_NAMELESS. Monsters with this 
god will produce messages like "The monster invokes the aid of its god against 
you."

--------------------------------------------------------------------------------
c5f0a9b166 | dolorous | 2009-02-09 00:37:13 +0000

Another wording fix.

--------------------------------------------------------------------------------
deae829ee0 | dolorous | 2009-02-09 00:30:55 +0000

Wording fix.

--------------------------------------------------------------------------------
b0f60edc94 | haranp | 2009-02-08 23:26:33 +0000

Revert r8981, specifically the part which changed how max MP depends on class 
and spellcasting (the !oMagic change is still in.)

--------------------------------------------------------------------------------
228bd3081c | haranp | 2009-02-08 23:14:34 +0000

Fix [2580344]: don't give the Drain Life mutation unless your top weapon skill 
is Unarmed Combat. (Giving Drain Life to secondary attacks is a bit over the 
top.)

--------------------------------------------------------------------------------
4000c36207 | haranp | 2009-02-08 23:01:50 +0000

Fix [2151183]: SIGHUP with the range view annotator active maintained the 
annotated colours when saving. Fixed by adding the ability to store arbitrary 
exit hooks to be executed on (unusual) shutdown; for now they're executed FIFO, 
but it should probably be LIFO with a stack. Anyway the only thing that uses 
this now is the range view annotator. Oh, and it only works if you're using 
libunix.cc.

--------------------------------------------------------------------------------
bd14ba83d0 | dolorous | 2009-02-08 22:11:12 +0000

Comment fixes.

--------------------------------------------------------------------------------
cfad065611 | dolorous | 2009-02-08 22:09:53 +0000

Rescale ghouls' attacks one last time.

--------------------------------------------------------------------------------
0d1eb612ac | dolorous | 2009-02-08 21:32:42 +0000

For monsters that can use weapons and engage in melee, make sure the AT_HIT 
attack is first.  The one exception is the deep elf master archer, but, 
according to the code in mstuff2.cc, monsters with the M_ARCHER flag (of which 
it's the only one) should have the AT_SHOOT attack first.

--------------------------------------------------------------------------------
9742b9a9c9 | dolorous | 2009-02-08 21:15:47 +0000

Add formatting fixes.

--------------------------------------------------------------------------------
149ddd794a | dolorous | 2009-02-08 21:14:15 +0000

And rescale it a bit more.

--------------------------------------------------------------------------------
75f1ce546f | dolorous | 2009-02-08 21:12:44 +0000

Rescale ghouls' attacks as well.

--------------------------------------------------------------------------------
66d627a0bb | dolorous | 2009-02-08 21:05:37 +0000

Rescale attacks for vampires and vampire mages to be in line with their hit 
dice again.

--------------------------------------------------------------------------------
903545490b | haranp | 2009-02-08 21:03:03 +0000

Fix [1974504]: eating from the floor did not respect !e.

--------------------------------------------------------------------------------
830ed9f159 | dolorous | 2009-02-08 20:59:41 +0000

Fix [2537470]: Add AT_HIT attacks to those monsters that don't have any, but 
can use weapons: vampires, vampire mages, and ghouls.

--------------------------------------------------------------------------------
1559af94f5 | haranp | 2009-02-08 20:46:24 +0000

Comment the workaround for a Windows display bug.

--------------------------------------------------------------------------------
55e07ce8aa | dolorous | 2009-02-08 20:46:07 +0000

Add punctuation fix.

--------------------------------------------------------------------------------
38d2d78cba | haranp | 2009-02-08 20:39:03 +0000

Also redraw if monsters use a non-spell projectile.

--------------------------------------------------------------------------------
5ce861e8ce | haranp | 2009-02-08 20:37:01 +0000

Update viewport before monsters cast a beam. Fixes [2533571].

--------------------------------------------------------------------------------
73209aa97c | haranp | 2009-02-08 20:25:21 +0000

Allow monsters that can't swim or drown (e.g. the Royal Jelly) which have been 
dumped into deep water (e.g. by the Water card) to move along the bottom in 
order to get out. Fixes [2519093].

--------------------------------------------------------------------------------
57ee36faeb | dolorous | 2009-02-08 20:11:00 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
06c5d3d754 | dolorous | 2009-02-08 19:13:30 +0000

Clean up nutrition-related functions a bit, and handle non-vampires' nutrition 
from blood potions more consistently.

--------------------------------------------------------------------------------
9a20cf0a34 | haranp | 2009-02-08 18:29:52 +0000

Fix debugging ray zaps (e.g. unknown wands) always setting obvious_effect by 
making ZAP_DEBUGGING_RAY no longer an obvious_effect. It might be more correct 
to restore obvious_effect on a tracer, or at least a player_tracer, but bug 
2515082 [and r8500] makes me cautious. Fix healing being too generously 
identified. Fix wand of healing not working on enemies if you happen to worship 
Ely. Fixes [2580106]. Also some dead code elimination.

--------------------------------------------------------------------------------
459e277ada | haranp | 2009-02-08 16:36:57 +0000

Redo potions of magic again. They are now effectively potions of heal wounds 
for MP; there is never any max-MP gain. Classes no longer influence max MP. 
Instead, you get an extra MP point for each level of Spellcasting between 1 and 
5. (This might be too good.) Invocations does not get this boost.

--------------------------------------------------------------------------------
b5d57494a0 | haranp | 2009-02-08 16:14:57 +0000

Be (much) nicer about damage when climbing up/down stairs while confused.

--------------------------------------------------------------------------------
80c7baf5a9 | haranp | 2009-02-08 16:02:03 +0000

[2577409]: minor improvements to the shopping interface.

--------------------------------------------------------------------------------
bc14cb50b1 | haranp | 2009-02-08 15:45:37 +0000

Fix errno includes, and hopefully DOS compile [2573206]. If errno.h doesn't 
exist on DOS, this will fail, but then it would have failed anyway.

--------------------------------------------------------------------------------
dbb1ff3329 | haranp | 2009-02-08 15:28:01 +0000

Give a message when you don't succeed in writing a macro file.

--------------------------------------------------------------------------------
9626f03317 | haranp | 2009-02-08 14:39:02 +0000

Fix high score names pretending that they are char*s rather than std::strings.

--------------------------------------------------------------------------------
87cb7dadb7 | dolorous | 2009-02-08 04:22:06 +0000

Comment fix.

--------------------------------------------------------------------------------
f2e0ffdb73 | dolorous | 2009-02-08 04:20:10 +0000

Properly handle holy word when it kills a monster and the monster avoids death.

--------------------------------------------------------------------------------
0b5382599b | dolorous | 2009-02-08 04:19:07 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
44125ccb35 | dolorous | 2009-02-08 02:16:32 +0000

Add a power parameter to monsters::drain_exp(), and use it for the mass drain 
card effect.

--------------------------------------------------------------------------------
20a096b93d | dolorous | 2009-02-08 01:25:37 +0000

Tweak the mass draining card effect to more closely match 
monsters::drain_exp().  They should eventually be consolidated, as soon as I 
figure out how to scale the power.

--------------------------------------------------------------------------------
11ac9d188a | dploog | 2009-02-08 01:18:34 +0000

Modified description of Elyvilon powers.

--------------------------------------------------------------------------------
ad5d097f19 | dploog | 2009-02-08 01:14:48 +0000

New vault, using the "damaged" and "fixed" egos. (castamir)

--------------------------------------------------------------------------------
78d87483db | dolorous | 2009-02-08 00:50:13 +0000

Fix _player_hurt_monster() to handle things properly if the monster avoided 
death.

--------------------------------------------------------------------------------
d419d7dc79 | dolorous | 2009-02-08 00:44:14 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
dbab0ee932 | dolorous | 2009-02-07 23:24:12 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
b70db250ec | dolorous | 2009-02-07 22:36:02 +0000

Nagas should have big zombies, not small, since centaurs are roughly the same 
size and leave big zombies.

--------------------------------------------------------------------------------
6ddc7e7c66 | dolorous | 2009-02-07 22:13:07 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
818897f487 | dolorous | 2009-02-07 22:11:14 +0000

Fix neutralization of Xom-worshipping holy beings again.

--------------------------------------------------------------------------------
d0b6c02132 | dolorous | 2009-02-07 21:57:26 +0000

Comment fixes.

--------------------------------------------------------------------------------
549ae0ce2b | dolorous | 2009-02-07 21:56:06 +0000

Generalize a bit more.

--------------------------------------------------------------------------------
05644ce2ae | dolorous | 2009-02-07 21:49:12 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
905d9b0f61 | dolorous | 2009-02-07 21:29:12 +0000

Add formatting fix.

--------------------------------------------------------------------------------
722a4e3100 | dolorous | 2009-02-07 21:22:37 +0000

Fix [2578352]: If Xom sends you holy beings as allies, you switch to another 
god, and then you switch back to Xom, those holy beings won't abandon you when 
you do so.
Also, if you make a holy being originally sent by Xom good neutral 
through being a pious worshipper of a good god, that holy being will 
then start worshipping TSO (the usual god for holy beings) instead of 
Xom.

--------------------------------------------------------------------------------
537692804e | dolorous | 2009-02-07 20:19:31 +0000

Display rods' charges after their type, so that rods that have sub-subtypes 
(such as the rod of destruction [ice]) can be looked up via "destruction 
[ice]", the same way books that have sub-subtypes (such as the book of 
Conjurations [ice]) can.

--------------------------------------------------------------------------------
cf924211cb | dolorous | 2009-02-07 18:14:22 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
b089c109c9 | dolorous | 2009-02-07 18:09:18 +0000

Add punctuation fixes.

--------------------------------------------------------------------------------
0a6bc87537 | dolorous | 2009-02-07 07:38:51 +0000

Comment fix.

--------------------------------------------------------------------------------
ed75755982 | dolorous | 2009-02-07 07:37:37 +0000

Fix _do_high_level_summon() to take monster gods into account, too.

--------------------------------------------------------------------------------
5c78fa3fd5 | dolorous | 2009-02-07 07:22:07 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
40d45085f0 | dolorous | 2009-02-07 07:20:54 +0000

Properly handle the gods of monsters created by monster spells.  If the monster 
that created them is a priest, assume they're from priestly abilities, and if 
the monster that created them is neither a priest nor a wizard, assume they're 
from intrinsic abilities; in both cases, they'll have the same god as the 
monster.  The latter should cover cases such as god-summoned shadow imps' 
casting Animate Dead; if the imp abandons you due to your abandoning its god, 
its zombies will abandon you too.
Also, mark skeletal warriors as no longer being wizards, so that their 
casting Animate Dead is an intrinsic ability, and the above rule will 
apply when the skeletal warrior is a gift of Yredelemnul; if the 
skeletal warrior abandons you due to your abandoning Yredelemnul, its 
zombies will abandon you too.

--------------------------------------------------------------------------------
4f955d1dd5 | dolorous | 2009-02-07 06:27:02 +0000

Fix [2575361]: Properly differentiate between spells a god hates in general and 
spells a god dislikes for the purpose of artefact spellbooks, in order to avoid 
e.g. Elyvilon's hating a book of conjurations.

--------------------------------------------------------------------------------
80219219be | dolorous | 2009-02-07 05:35:41 +0000

Add wording and typo fixes.

--------------------------------------------------------------------------------
324e57233f | dolorous | 2009-02-07 05:29:18 +0000

Implement [2557153]: Display HP boosted by Berserk or Divine Vigour in light 
blue.

--------------------------------------------------------------------------------
3f366c0cc7 | dploog | 2009-02-07 05:03:46 +0000

Updated descriptions for Dissolution (fixes 2517160) and Zot. New descriptions 
for Abyss and Pan (vimpulse) but these aren't working yet.

--------------------------------------------------------------------------------
704da9dff7 | dolorous | 2009-02-07 01:51:33 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
5a12edebed | dolorous | 2009-02-07 01:24:39 +0000

Clarify message when trying to bless inappropriate things under Beogh.

--------------------------------------------------------------------------------
a8d3f41ff4 | dolorous | 2009-02-07 01:21:43 +0000

Disallow Beogh's accepting orc skeletons, since they can be left by butchering, 
and butchering orc corpses should be discouraged.

--------------------------------------------------------------------------------
72ec93e42a | ennewalker | 2009-02-07 01:18:46 +0000

Fixing warnings.

--------------------------------------------------------------------------------
0b6a234507 | dolorous | 2009-02-07 00:39:33 +0000

For now, expand Beogh's blessing of dead orcs to include all orcish remains 
(corpses, rotting corpses, and skeletons).

--------------------------------------------------------------------------------
4758c6c4a6 | zelgadis | 2009-02-07 00:31:14 +0000

Fix bug #2569430: Throwing temporarily branded weapon makes brand permanent.
When throwing a wielded weapon, give the "you are now empty handed" message
last.

--------------------------------------------------------------------------------
6420501e44 | dolorous | 2009-02-07 00:25:56 +0000

Replace references to "sacrificing fresh orc corpses" to Beogh with references 
to "blessing newly dead orcs".

--------------------------------------------------------------------------------
6155701e66 | dolorous | 2009-02-06 21:15:42 +0000

Adjust odds one more time: 10% for ordinary orc corpses, 30% for orc priest 
corpses, 50% for orc high priest corpses, and 70% for Saint Roka's orc corpse.  
(For reference, the odds of gaining piety for killing a heretic priest under 
Beogh are 70%.)

--------------------------------------------------------------------------------
97b8a19372 | dolorous | 2009-02-06 20:52:21 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
3c78c0667c | dolorous | 2009-02-06 20:48:49 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
7fdcbf5cb0 | dolorous | 2009-02-06 20:47:29 +0000

Adjust piety gain for orc corpses yet again.  The odds are now:
25% chance of 1 piety gain from an ordinary orc corpse
50% chance of 1 piety gain from an orc priest corpse
75% chance of 1 piety gain from an orc high priest corpse
100% chance of 1 piety gain from Saint Roka's orc corpse

--------------------------------------------------------------------------------
a42d227461 | dolorous | 2009-02-06 20:37:18 +0000

Adjust piety gain for sacrificed orc corpses.  The chances are now:
50% chance of gaining 1 piety: ordinary orc corpses
100% chance of gaining 1 piety: priestly orc corpses
100% chance of gaining 2 piety: Saint Roka's orc corpse

--------------------------------------------------------------------------------
41db1a9a17 | dolorous | 2009-02-06 19:58:34 +0000

Allow Beoghites to gain piety by sacrificing fresh orc corpses.  The odds of 
piety gain are currently the same as those of butchering corpses for gods that 
take them.

--------------------------------------------------------------------------------
4e0f792aff | dolorous | 2009-02-06 17:14:43 +0000

Also fix the same size comments in mon-data.h.

--------------------------------------------------------------------------------
9d66ff6013 | dolorous | 2009-02-06 16:55:37 +0000

Fix size-related comments to match nagass and centaurs' actual body sizes.

--------------------------------------------------------------------------------
78e4b50a9c | haranp | 2009-02-06 16:31:52 +0000

Fix [2573054]: idle time not being clamped on level save/load (e.g. SIGHUP or 
when the game is saved.)

--------------------------------------------------------------------------------
96797ebeaa | dolorous | 2009-02-06 16:31:24 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a00fc45d39 | dolorous | 2009-02-06 16:30:47 +0000

Fix one last weapon size check inconsistency.

--------------------------------------------------------------------------------
2a50f2e864 | dolorous | 2009-02-06 16:13:04 +0000

Make monster size checks for weapons and armor consistent with those for 
players: torso size, not body size, counts.  This should fix [2508934], without 
having to fix any monster flags :)

--------------------------------------------------------------------------------
3839702b5d | haranp | 2009-02-06 16:05:46 +0000

Fix for [2054894]: LOS not being reset while building a new level. When I put 
this fix in a while ago, it caused lots of "floating monsters" when changing 
levels, but that doesn't seem to happen anymore. Hopefully that was due to a 
different bug which has been fixed meanwhile.

--------------------------------------------------------------------------------
5d283404c9 | haranp | 2009-02-06 15:13:06 +0000

Don't allow monsters wielding two-handed weapons to pick up shields. Partial 
fix for [2508934]; the bug is still there because monster nagas count as 
SIZE_BIG, not SIZE_LARGE. I'll let dolorous fix the monster flags. :)

--------------------------------------------------------------------------------
8dbcc4dbe1 | haranp | 2009-02-06 14:32:02 +0000

Restore a monster's attitude from the beginning of the attack if it changes 
during the attack and the monster is about to die, so that you don't get 
Okawaru piety for killing an ally just before you receive the penance. Fixes 
[2436051].

--------------------------------------------------------------------------------
31fb4f573f | haranp | 2009-02-06 12:57:36 +0000

Have 'V' work properly on non-stash-trackable levels. The current behaviour is 
not optimal; you'll only see the top item in a stack on such levels (even if 
you're standing right on top of it, or dropped a stack somewhere a turn ago.)

--------------------------------------------------------------------------------
1ace4250c5 | dploog | 2009-02-06 07:01:27 +0000

Added information on how to define random monster sets in portal vaults (Eino).

--------------------------------------------------------------------------------
e48b238d9e | dolorous | 2009-02-06 05:03:02 +0000

Tweak spell miscast messages to not overlap with monster speech.

--------------------------------------------------------------------------------
e8753da0b9 | dolorous | 2009-02-06 04:50:55 +0000

Remove erroneous semicolon in mons_speaks().

--------------------------------------------------------------------------------
e5683d70fc | dolorous | 2009-02-06 04:39:39 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
0478cf9dc1 | ennewalker | 2009-02-06 02:20:27 +0000

[2455926] [2004675] Fixing "strange colored box" problem on Win32.

--------------------------------------------------------------------------------
56c98916d5 | dolorous | 2009-02-06 01:21:21 +0000

Move the wielding exception for staves and lajatangs into 
check_weapon_wieldable_size().

--------------------------------------------------------------------------------
7ddac74599 | dolorous | 2009-02-06 01:07:16 +0000

After some thought, make quarterstaves and lajatangs large again, and put the 
wielding exception for them back in, since it's in multiple places already.

--------------------------------------------------------------------------------
a7b2e92173 | dolorous | 2009-02-06 00:55:21 +0000

Fix previous change, so that e.g. kobolds can't wield two-handed weapons 
anymore.

--------------------------------------------------------------------------------
8e7ee98e54 | dolorous | 2009-02-06 00:40:24 +0000

In check_weapon_wieldable_size(), adjust fit a bit depending on size. To 
compensate for this, make quarterstaves and lajatangs medium instead of large, 
and dire flails large instead of medium.  This eliminates the need for special 
cases when small races wield quarterstaves, lajatangs, or bows, and also 
hopefully restores 0.4's behavior regarding wieldable weapons, fixing [2569070].

--------------------------------------------------------------------------------
e84562b1b7 | haranp | 2009-02-05 22:31:20 +0000

Fix buggy charge descriptions of rods [2566892]. I'm still not too happy with 
the description, but such is life.

--------------------------------------------------------------------------------
73aba681ac | dolorous | 2009-02-05 20:47:30 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
8f4d4c0db2 | dolorous | 2009-02-05 20:23:57 +0000

Properly treat miasma resistance as a boolean resist.

--------------------------------------------------------------------------------
4b5c3ef623 | dolorous | 2009-02-05 19:46:25 +0000

Fix sticky flame resistance level for ball lightning: there's only one level of 
resistance, not three.

--------------------------------------------------------------------------------
2a68b06b2f | dolorous | 2009-02-05 19:23:45 +0000

Explicitly mention that Yredelemnul's Drain Life power has a healing effect.

--------------------------------------------------------------------------------
57c51e2a47 | dolorous | 2009-02-05 18:22:19 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ea46882237 | dolorous | 2009-02-05 18:08:03 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
436784b951 | dolorous | 2009-02-05 18:04:59 +0000

Simplify.

--------------------------------------------------------------------------------
783a80c3a2 | dolorous | 2009-02-05 17:49:27 +0000

After some thought, remove assumptions about armor subtype order again. There 
are still some left, but they're mostly checks for armor greater than plate 
mail, and they still work with the current code.

--------------------------------------------------------------------------------
7ca638385f | dolorous | 2009-02-05 17:22:38 +0000

Fix assumptions about the order of weapon subtypes in _give_weapon() and 
_beogh_retribution(), and fix them so that they work the same way as before 
r8681.

--------------------------------------------------------------------------------
79e40b730c | dolorous | 2009-02-05 17:17:56 +0000

Comment fix.

--------------------------------------------------------------------------------
3a20b60453 | dolorous | 2009-02-05 16:48:39 +0000

Clean up armor subtype handling again.  There's other code that relies on the 
assumption that the normal armours are in ascending order by AC, from ARM_ROBE 
to ARM_PLATE_MAIL, so it seems okay to use that for now.

--------------------------------------------------------------------------------
825b546178 | dolorous | 2009-02-05 16:07:06 +0000

Consistently anger monsters turned into shapeshifters again, so that they 
immediately turn on you if you worship Zin, or turn on you when in the form of 
an evil monster if you worship another good god.

--------------------------------------------------------------------------------
f69ba51dd3 | haranp | 2009-02-05 14:09:48 +0000

Possible fix for 2530342: full_describe_view() iterating over the viewport 
instead of over LOS squares.

--------------------------------------------------------------------------------
37a8bc70c5 | dolorous | 2009-02-05 01:28:33 +0000

Fix assumptions about the order of armor subtypes in get_random_armour_type(), 
and fix it so that it works the same way as before r8681.  Sorry for the 
breakage.

--------------------------------------------------------------------------------
9eb7c7447e | dolorous | 2009-02-05 00:39:52 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
f28237548b | haranp | 2009-02-04 23:06:57 +0000

Fix [2514815]: better messaging for Transmutatin miscasts.

--------------------------------------------------------------------------------
bd3278609f | haranp | 2009-02-04 22:45:41 +0000

Fix 2355689: player ghosts and swamp drakes now get the player Mephitic Cloud 
effect.

--------------------------------------------------------------------------------
f4c98b5c1f | haranp | 2009-02-04 21:55:51 +0000

Don't consider user options when deciding monster behaviour and when giving a 
bonus for escaping nets due to dangerous monsters nearby. Don't give a bonus to 
escaping nets if nondangerous monsters (allies, plants, etc.) are nearby.

--------------------------------------------------------------------------------
85186cca64 | haranp | 2009-02-04 21:39:27 +0000

Fix Triple Draw not updating num_marked on a deck. Fixes [2516231].

--------------------------------------------------------------------------------
22e8777cd2 | haranp | 2009-02-04 20:47:43 +0000

Don't pass number of columns to print_formatted_paragraph(), since it always 
uses the width of the screen anyway. Have print_formatted_paragraph() respect 
delay_message_clear. Fixes [2492045].

--------------------------------------------------------------------------------
013e0c0e9f | haranp | 2009-02-04 19:41:08 +0000

Fix [2187753]: friendlies with spells targeting you if you don't give them 
another target. This is a hack, not a good solution, and it assumes that 
friendlies do not want to target you with spells (I believe this is currently 
true, but if we implement an enslavable monster that can heal others, it won't 
be.)

--------------------------------------------------------------------------------
55d5736219 | haranp | 2009-02-04 17:32:00 +0000

Move a bit more things to use coord_defs and iterators instead of x,y.

--------------------------------------------------------------------------------
1df63f2d24 | haranp | 2009-02-04 17:07:43 +0000

Partially fix get_random_armour_type being completely broken (e.g. wizard hats 
and caps can get generated again.) get_random_armour_type makes assumptions 
about the order of armour_type, which were invalidated by r8681; I'm hesitant 
to touch the order again for fear of breaking something. dolorous, can you 
check?

--------------------------------------------------------------------------------
f5b7079207 | haranp | 2009-02-04 14:32:24 +0000

Clean up acquirement subtype determination code. (Another goto bites the dust.) 
Be a bit more generous regarding books for Evoc and Invoc types.

--------------------------------------------------------------------------------
5be9c59587 | haranp | 2009-02-04 11:48:03 +0000

Take range information from the beam if applicable in spell_direction(). 
Implements [2553289].

--------------------------------------------------------------------------------
09aad943f1 | haranp | 2009-02-03 23:14:48 +0000

Very minor cleanup. (OK, so I wanted r8888. Sue me.)

--------------------------------------------------------------------------------
268bb648e9 | haranp | 2009-02-03 23:05:15 +0000

Typo fix [2562372]

--------------------------------------------------------------------------------
49815faa5c | haranp | 2009-02-03 23:02:32 +0000

[2070013]: newly created, animated, etc. friendly monsters now default to 
'follow me' behaviour, rather than following your last command (even if was 
before they were summoned.) Their behaviour can still be changed by giving them 
commands, of course. The previous behaviour was clearly intentional so I'm not 
too sure about this change; feel free to revert if I'm missing something.

--------------------------------------------------------------------------------
72aae92fdb | haranp | 2009-02-03 22:29:53 +0000

Added castamir's patch to fix 2550022. Seems to work.

--------------------------------------------------------------------------------
7031bb9bc2 | dploog | 2009-02-03 22:16:48 +0000

Update Ice Bolt description. Fixes 2555926.

--------------------------------------------------------------------------------
be29b29946 | dploog | 2009-02-03 22:05:35 +0000

Update description of ranged skills. Fixes 2028850.

--------------------------------------------------------------------------------
b0afcc8dd3 | haranp | 2009-02-03 18:02:39 +0000

Fix [2504221]: if a monster gets both Slow and Haste (by being slowed and then 
speeding up from Zin's Recitation power) don't give a confusing description. I 
left in the possibility of actually having both enchantments at once; arguably 
Slow should just be deleted in this case. Fixed doubled message when enchanting 
a creature with haste/slow.

--------------------------------------------------------------------------------
81af4f8654 | haranp | 2009-02-03 17:08:47 +0000

Fix bad messaging when monsters drop an item which stacks with something on the 
floor. Fixes [2514315].

--------------------------------------------------------------------------------
8a7f4ec404 | haranp | 2009-02-03 11:29:17 +0000

Implement [2480452] following dpeg's suggestion: You can't go berserk while 
mesmerised; being berserk provides immunity to mesmerisation.

--------------------------------------------------------------------------------
2a26233126 | haranp | 2009-02-03 11:08:23 +0000

Fix [2220297]: nonenchantment tracers were improperly doublecounting each 
creature, once with and once without resistances. Also reduced fireball 
foe_ratio to 60 to make fire giants more aggressive.

--------------------------------------------------------------------------------
f19756c625 | haranp | 2009-02-03 10:30:18 +0000

Gave all M_INSUBSTANTIAL monsters MR_RES_STICKY_FLAME. (I prefer this solution 
to a code-level solution; we give all demons res poison manually, after all.) 
Fixes [2540348].

--------------------------------------------------------------------------------
be5d26b600 | haranp | 2009-02-03 10:11:04 +0000

Change description of Poison Arrow to make it clear that there's an 
unresistable component. (Better descriptions welcome.) "Fixes" [2542400].

--------------------------------------------------------------------------------
25666681f2 | zelgadis | 2009-02-01 18:09:50 +0000

Get the crash dumping code to compile on MGW.

--------------------------------------------------------------------------------
4509d7ddb9 | j-p-e-g | 2009-02-01 14:31:36 +0000

* Make the fixed level type of randart books more rare. * Add 0.4.5 change log 
to trunk log.

--------------------------------------------------------------------------------
93812c92d8 | haranp | 2009-02-01 13:26:15 +0000

Typos and other minor issues.

--------------------------------------------------------------------------------
3277cad8b2 | haranp | 2009-02-01 13:00:18 +0000

Fix Swap card not applying terrain effects, and not unsubmerging monsters. 
Fixes [2502780].

--------------------------------------------------------------------------------
24af43ae3c | haranp | 2009-02-01 12:41:01 +0000

Fix an ancient bug where monsters couldn't swap positions vertically (only 
horizontally or diagonally.) Quash a couple of potential bugs too. Code 
cleanups.

--------------------------------------------------------------------------------
bca4e714b0 | haranp | 2009-02-01 10:48:41 +0000

Fix doubled MSG_OK when cancelling Ely's healing. [2554386]

--------------------------------------------------------------------------------
22ade5c378 | haranp | 2009-02-01 10:33:01 +0000

Prevent confused monsters from drifting towards the center of the level. Fixes 
[2472560]. Code cleanups in _handle_monster_move().

--------------------------------------------------------------------------------
0179b500e3 | haranp | 2009-01-31 21:39:37 +0000

More type safety.

--------------------------------------------------------------------------------
e1a0e73434 | haranp | 2009-01-31 21:04:08 +0000

Fix leftover comment from r8130: since water monsters can now be generated in 
(blue) fountains, don't pretend they can't be.

--------------------------------------------------------------------------------
ce67b9fb70 | haranp | 2009-01-31 20:51:29 +0000

More code cleanups (mainly in transformations.)

--------------------------------------------------------------------------------
7faa917855 | haranp | 2009-01-31 20:19:37 +0000

Fix [2553441]: casting Regeneration gives a doubled message.

--------------------------------------------------------------------------------
0ca19d27de | haranp | 2009-01-31 18:41:16 +0000

Code cleanups, mainly in clouds.

--------------------------------------------------------------------------------
522d82aa2e | j-p-e-g | 2009-01-31 16:52:53 +0000

Fix starting books being unidentified at game start.

--------------------------------------------------------------------------------
8214e2be4b | zelgadis | 2009-01-31 16:26:27 +0000

Fix bug #2551376: CrawlStoreValue conversion constructors were crashing.

--------------------------------------------------------------------------------
cbceff8b6a | haranp | 2009-01-31 15:20:58 +0000

Fix [2549941]: don't give the shapeshifter death message unless it's an actual 
death (as opposed to KILL_DISMISS or KILL_RESET, e.g. when a monster climbs 
stairs or is banished.)

--------------------------------------------------------------------------------
907ba5ab45 | j-p-e-g | 2009-01-31 13:57:35 +0000

* Fix mesmerization not breaking when mermaids/sirens submerge. * Fix 
mesmerization not working through glass walls. * Fix sirens' attempts to draw 
you through a glass wall resulting in   a crash. * Fix wizmode prompt for 
feature placing prompting twice.

--------------------------------------------------------------------------------
a776e7cb85 | j-p-e-g | 2009-01-31 12:10:48 +0000

Be less strict about spell school restrictions when naming randart books. Fix 
titles such as "Sif Muna's A Primer on Magic". Add a fourth step for fixed 
level naming: starting for level 1.

--------------------------------------------------------------------------------
e4fff5095f | haranp | 2009-01-31 10:59:48 +0000

Don't give piety for pacifying summoned monsters. [2552138]

--------------------------------------------------------------------------------
d85ff5d260 | haranp | 2009-01-31 10:54:56 +0000

Fix message for monsters leaving through gates. [2550128]

--------------------------------------------------------------------------------
85f8a4e5ed | haranp | 2009-01-30 16:08:31 +0000

Pacified monsters change their behaviour to BEH_WANDER, in case they were 
fleeing, etc. when you pacified them. I'm not completely sure this is correct 
as I'm not too knowledgeable about pacified monsters. Review welcome. Fixes 
[2540905].

--------------------------------------------------------------------------------
8d4a4ac462 | haranp | 2009-01-30 15:33:28 +0000

Fix maxHP being reported incorrectly in morguefile if you have 
percentage-changing effects (robustness, divine vigour) and rotting. Fixes 
[2478011].

--------------------------------------------------------------------------------
e5e14cbc64 | haranp | 2009-01-30 15:15:59 +0000

Give an informative message when stair delays are cancelled.

--------------------------------------------------------------------------------
464e945f78 | haranp | 2009-01-30 15:13:02 +0000

Fix [2478469]: teleport should stop stair use delays.

--------------------------------------------------------------------------------
f984dabc74 | haranp | 2009-01-30 14:07:45 +0000

Clean up Animate Dead. Also fix messaging.

--------------------------------------------------------------------------------
9f1b85395c | haranp | 2009-01-30 12:20:32 +0000

Clean up wizard commands. Fix a bug in wizard-spawning monsters (max was used 
instead of min.)

--------------------------------------------------------------------------------
f04f543b62 | zelgadis | 2009-01-30 10:47:49 +0000

Fixed bug #2544413: slashing off a hydra's last head with a branded weapon 
which wasn't the flaming brand would cause a crash.

--------------------------------------------------------------------------------
ee9ddc532b | zelgadis | 2009-01-30 09:12:28 +0000

Initialize player's inventory with item_def::clear()

--------------------------------------------------------------------------------
3672daef4b | zelgadis | 2009-01-30 09:06:17 +0000

Store level generation information in env.properties, so that it can be 
included in a crash dump even if the crash happens after level generation is 
complete.

--------------------------------------------------------------------------------
10676923ec | j-p-e-g | 2009-01-29 22:20:54 +0000

FR 2532818: Allow randart books to be named after uniques and legendary mages. 
Also, randart books created by acquirement (not gifts) have a chance to be 
named after the player.

--------------------------------------------------------------------------------
eeaba130f2 | haranp | 2009-01-29 15:47:28 +0000

Fix [2541331]: monster blinking only looked to the southeast. Also fix a subtle 
bug causing monsters to be able to teleport through walls if there was clear 
rock there too. (This is because num_feats_between() is not symmetrical in its 
first two arguments.)

--------------------------------------------------------------------------------
942a2a13a9 | haranp | 2009-01-29 12:57:33 +0000

Clean up potion effects as per [2544231]; get rid of the "power == 40 means 
it's a potion" hack. Fix security issue in dumping code (never dump a string 
without using %s.)

--------------------------------------------------------------------------------
e5713cc0c9 | haranp | 2009-01-29 12:22:09 +0000

Potion of magic changed to restore all MP and rarely boost maximum MP. Fixes 
[2544129].

--------------------------------------------------------------------------------
04b6d88224 | zelgadis | 2009-01-29 05:04:47 +0000

Make table_to_string() more robust, so it won't raise an error if it encounters 
anything weird.

--------------------------------------------------------------------------------
42fdd5f87b | zelgadis | 2009-01-29 05:00:24 +0000

mprf() truncates strings that expand to more than 199 characters, so use 
fprintf() instead.

--------------------------------------------------------------------------------
749bf6db69 | haranp | 2009-01-28 21:13:36 +0000

s/Almanach/Almanac [2540280]

--------------------------------------------------------------------------------
cb5601f0a4 | haranp | 2009-01-28 20:53:44 +0000

Fix [2542259]: explosions do affect monsters in the sense that they cause the 
beam to terminate.

--------------------------------------------------------------------------------
dffee84997 | zelgadis | 2009-01-28 16:40:16 +0000

Add the field CLASS to the metatable of each class, containing the name of the 
class, so that table_to_string() can describe the class of each object.

--------------------------------------------------------------------------------
0371e07ab6 | zelgadis | 2009-01-28 16:23:06 +0000

On a crash, do consistency checking on the level's markers, dump the level's 
markers, and dump the persistant Lua data.

--------------------------------------------------------------------------------
fec3e431ad | zelgadis | 2009-01-28 11:33:27 +0000

When crashing, dump information about the player.
When crashing, dump information about the current level, and if the crash
happens during level generation dump which vaults were placed.

--------------------------------------------------------------------------------
7c6b9c70e0 | zelgadis | 2009-01-28 08:38:42 +0000

Move the monster dumping code from state.cc to debug.cc, and dump to stderr to 
reduce the need to pass a file pointer all over the place.

--------------------------------------------------------------------------------
b8e35c8332 | zelgadis | 2009-01-28 07:33:13 +0000

Give shout and speech messages to snails/slugs and moths of wrath, and a shout 
message to giant spores.

--------------------------------------------------------------------------------
ba85b54442 | zelgadis | 2009-01-28 05:58:07 +0000

During arena mode make random_in_bounds() return a point inside the view port.

--------------------------------------------------------------------------------
ce025121d1 | zelgadis | 2009-01-28 05:17:11 +0000

Inform the arena when a jelly splits in two.

--------------------------------------------------------------------------------
88d323ed2f | zelgadis | 2009-01-28 02:52:28 +0000

Don't allow rock worms to be placed in permanent rock.

--------------------------------------------------------------------------------
d83dd96d98 | dolorous | 2009-01-28 00:31:43 +0000

Fix inverted logic keeping the multiple chances to neutralize holy beings from 
working.

--------------------------------------------------------------------------------
f3f0b988e3 | dolorous | 2009-01-27 23:43:07 +0000

Add speech for when the player fails to neutralize holy beings.

--------------------------------------------------------------------------------
018f10b4f4 | haranp | 2009-01-27 23:41:46 +0000

Xom-forced spells shouldn't trigger penance. [2509398]

--------------------------------------------------------------------------------
a65b46bf18 | dolorous | 2009-01-27 23:36:52 +0000

Fix holy being speech target.

--------------------------------------------------------------------------------
be49043121 | haranp | 2009-01-27 23:01:23 +0000

Monsters should be annoyed by being hit by spells. [2266773]

--------------------------------------------------------------------------------
9049bb8243 | dolorous | 2009-01-27 22:58:45 +0000

Fix orc message target.

--------------------------------------------------------------------------------
e9d0e3c96b | haranp | 2009-01-27 22:46:16 +0000

Colour the Horn of Geryon properly when generating it in debug mode. [2036803]

--------------------------------------------------------------------------------
01817c529b | haranp | 2009-01-27 22:30:20 +0000

Artefacts should have "the" prepended. [2540413]

--------------------------------------------------------------------------------
61e4522795 | dolorous | 2009-01-27 21:28:49 +0000

Add arena check for holy being neutralization.

--------------------------------------------------------------------------------
f598d81681 | zelgadis | 2009-01-27 14:53:26 +0000

If a faction has a new member enter the arena after the faction is defeated but 
before the other faction is declared the winner then forget the win and 
continue the fighting.

--------------------------------------------------------------------------------
1e5eb7f2b3 | zelgadis | 2009-01-27 13:48:49 +0000

Added missing "@" to a monster miscast message.

--------------------------------------------------------------------------------
1123d50843 | zelgadis | 2009-01-27 12:17:09 +0000

Fix crash when the game attempted to place a corpse for a giant spore shaped 
shifter which exploded.

--------------------------------------------------------------------------------
bd28b58f3c | zelgadis | 2009-01-27 12:06:29 +0000

Added the arena tag "miscasts", which causes each monster to randomly miscast 
each turn.

--------------------------------------------------------------------------------
2ceda1a01b | zelgadis | 2009-01-27 12:02:24 +0000

Crash report dump formatting tweak.

--------------------------------------------------------------------------------
9e831b6461 | zelgadis | 2009-01-27 12:01:57 +0000

If a crash happens with a currently acting monster then dump information on the 
monster, its foe and its target.

--------------------------------------------------------------------------------
d4d339dd7c | haranp | 2009-01-27 11:25:05 +0000

Make allied mutators more careful about hitting you.

--------------------------------------------------------------------------------
9af67278ee | haranp | 2009-01-27 11:02:30 +0000

[2538766]: grammar when getting wield warnings on artefacts.

--------------------------------------------------------------------------------
cfc594a6e4 | haranp | 2009-01-27 10:40:27 +0000

Fix misleading comment [2540006].

--------------------------------------------------------------------------------
a124171efd | haranp | 2009-01-27 08:46:50 +0000

Various cleanups. (I can't run tiles, but it compiled fine, so I hope I didn't 
introduce a subtle bug.)

--------------------------------------------------------------------------------
1332e506af | dolorous | 2009-01-27 08:18:28 +0000

Add spacing fix.

--------------------------------------------------------------------------------
105ff262d7 | dolorous | 2009-01-27 07:57:43 +0000

Add wording and punctuation fixes.

--------------------------------------------------------------------------------
44be1815b2 | dolorous | 2009-01-27 06:27:58 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
463c60aa17 | dolorous | 2009-01-27 06:20:56 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
7cd6bf781c | dolorous | 2009-01-27 06:13:56 +0000

Clean up routines for monsters' avoiding death again.

--------------------------------------------------------------------------------
2fc08be2ba | dolorous | 2009-01-27 00:52:47 +0000

Use random_in_bounds() properly in yet another place.

--------------------------------------------------------------------------------
061439ed33 | dolorous | 2009-01-27 00:40:48 +0000

Comment fixes.

--------------------------------------------------------------------------------
a473262a52 | dolorous | 2009-01-27 00:30:50 +0000

Add one more level boundary fix.

--------------------------------------------------------------------------------
0fab232344 | dolorous | 2009-01-26 21:54:54 +0000

Fix [2538578]: _random_draconian_species() was calculating the number of 
draconian species as 8 instead of 9, so pale draconian players were never being 
generated.

--------------------------------------------------------------------------------
229eb5e575 | dolorous | 2009-01-26 21:24:35 +0000

Properly do bounds checks in _catchup_monster_moves().  After a short time 
between levels, monsters with ranged attacks were shifting their target without 
checking it afterwards with in_bounds(), and all monsters were later making 
their "dirt simple movement" and checking it with the equivalent of 
map_bounds() instead of in_bounds().  I believe this should finally fix 
[2488905].

--------------------------------------------------------------------------------
e98f2b79cc | dolorous | 2009-01-26 21:17:00 +0000

Comment fix.

--------------------------------------------------------------------------------
69de941ecd | dolorous | 2009-01-26 21:14:54 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
4698cb53dc | dolorous | 2009-01-26 20:50:09 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
6717f13e25 | dolorous | 2009-01-26 20:36:15 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
46444e5e55 | dolorous | 2009-01-26 20:33:38 +0000

Use random_in_bounds() in another place, and, for paranoia's sake, check that 
monsters don't run off the grid instead of the map.

--------------------------------------------------------------------------------
7b6bfa7d8c | dolorous | 2009-01-26 20:19:40 +0000

Fix bounds checks for monsters' moving off the map to use map_bounds().

--------------------------------------------------------------------------------
105d4e75d3 | dolorous | 2009-01-26 16:01:19 +0000

Add spacing fix.

--------------------------------------------------------------------------------
7227d0b00e | dolorous | 2009-01-26 15:52:54 +0000

Comment fixes.

--------------------------------------------------------------------------------
17fb80af7a | dolorous | 2009-01-26 15:38:40 +0000

Simplify monster_random_space().

--------------------------------------------------------------------------------
416bb292eb | dolorous | 2009-01-26 13:48:41 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
5efa1b02a6 | dolorous | 2009-01-26 13:15:08 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
0b0c504b01 | dolorous | 2009-01-26 12:21:52 +0000

Add yet another cosmetic fix.

--------------------------------------------------------------------------------
7b6825cd2b | dolorous | 2009-01-26 10:54:40 +0000

Clean up direct_effect().

--------------------------------------------------------------------------------
e3e36ce2ea | zelgadis | 2009-01-26 10:32:00 +0000

Reformat Pandemonium entrance description to properly display in a 80 column 
wide text console.

--------------------------------------------------------------------------------
7d9b773b07 | dolorous | 2009-01-26 10:14:04 +0000

Tweak racial types of a few monsters' weapons again, and remove ITEM_NO_RACE 
from things that can't be racial anyway.

--------------------------------------------------------------------------------
cf90584352 | zelgadis | 2009-01-26 10:13:23 +0000

Formatting fix for Abyss entrance description.

--------------------------------------------------------------------------------
9e594e16c7 | dolorous | 2009-01-26 09:24:55 +0000

Rework the probabilities for Yredelemnul's random servants again, to allow for 
a bit more variety in the beginning.

--------------------------------------------------------------------------------
7fd5677273 | zelgadis | 2009-01-26 08:38:37 +0000

Oops, had "older" and "fresher" reversed.

--------------------------------------------------------------------------------
62c7b4b32b | dolorous | 2009-01-26 08:30:22 +0000

Capitalization fix.

--------------------------------------------------------------------------------
84990bc273 | dolorous | 2009-01-26 08:20:42 +0000

Add another adjective for artefact spellbooks.

--------------------------------------------------------------------------------
02f3f01a76 | dolorous | 2009-01-26 07:58:04 +0000

Comment fix.

--------------------------------------------------------------------------------
36b4006471 | dolorous | 2009-01-26 07:54:33 +0000

Change one Nemelex title from Charlatan to Jester, to eliminate an overlap with 
the Evocations title of Charlatan.

--------------------------------------------------------------------------------
b88952aa35 | zelgadis | 2009-01-26 07:54:28 +0000

debug_item_scan() and debug_mons_scan() should report an error, rather than 
crash, when encountering an out-of-bounds monster or an invalid monster/item 
index.  (A crash will soon happen anyways, but this prevents the crash reporter 
from recursively crashing when it calls the scan functions).
Make debug_mons_scan() give the index of the monsters it's reporting on.

--------------------------------------------------------------------------------
5eba3aa5a1 | haranp | 2009-01-26 07:44:29 +0000

Fix crash on seeing shop which I introduced in r8742. Fixes [2536472].

--------------------------------------------------------------------------------
0e9c3f379b | dolorous | 2009-01-26 07:25:06 +0000

Fix inverted logic (oops).

--------------------------------------------------------------------------------
5a67f2e659 | dolorous | 2009-01-26 07:00:50 +0000

Use dungeon_feature_type properly in one more place.

--------------------------------------------------------------------------------
6045e1fd7a | dolorous | 2009-01-26 06:56:02 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
31aa9afe48 | dolorous | 2009-01-26 06:49:14 +0000

Typo fix.

--------------------------------------------------------------------------------
44b5715b78 | zelgadis | 2009-01-26 06:41:29 +0000

Last of bug #2518014 fix: if a monster which just came into view can't avoid 
immediately moving out of view then give a "<monster> moves out of view" 
message so the player will know why there's no monster in view.

--------------------------------------------------------------------------------
6d74ff5a74 | zelgadis | 2009-01-26 06:23:04 +0000

Added options easy_eat_gourmand and easy_eat_contaminated.

--------------------------------------------------------------------------------
c19d575e17 | dolorous | 2009-01-26 06:11:39 +0000

Add spacing fix.

--------------------------------------------------------------------------------
e1ae3e2330 | dolorous | 2009-01-26 05:03:44 +0000

Since DNGN_WATER_STUCK appears to only be used as a placeholder when generating 
the Shoals, rename it DNGN_WATER_RESERVED, and make grid_is_water() take it 
into account just in case.

--------------------------------------------------------------------------------
07fef52005 | dolorous | 2009-01-26 04:57:41 +0000

*Really* fix compilation.

--------------------------------------------------------------------------------
407b446d10 | dolorous | 2009-01-26 04:54:48 +0000

Really fix compilation.

--------------------------------------------------------------------------------
567351d20b | dolorous | 2009-01-26 04:49:06 +0000

Fix compilation.

--------------------------------------------------------------------------------
7124f889e3 | dolorous | 2009-01-26 04:43:58 +0000

Simplify checks for grids containing water.

--------------------------------------------------------------------------------
8921c5b270 | zelgadis | 2009-01-26 03:29:14 +0000

Fix "submerged" (hidden) trapdoor spiders being visible.

--------------------------------------------------------------------------------
8467370eab | dolorous | 2009-01-26 03:20:58 +0000

Clean up item handling a bit, and don't give uniques potions if they won't be 
able to drink them.

--------------------------------------------------------------------------------
d64fd2263b | dolorous | 2009-01-26 03:19:00 +0000

Change the flaming corpse's color from lightred to red, so it doesn't overlap 
with Murray.

--------------------------------------------------------------------------------
b463367176 | zelgadis | 2009-01-26 02:31:33 +0000

Only give one message if a monster teleporting into view interrupts a delay.

--------------------------------------------------------------------------------
e1ff548807 | dolorous | 2009-01-26 02:31:01 +0000

Consolidate checks for potions that monsters can't use.

--------------------------------------------------------------------------------
0536bbb8ff | dolorous | 2009-01-26 02:14:30 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
e47d8ea632 | dolorous | 2009-01-26 01:59:01 +0000

Add a few more randart names.

--------------------------------------------------------------------------------
b013932cee | dolorous | 2009-01-26 01:46:54 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
9088c74287 | dolorous | 2009-01-26 00:18:44 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
a742266236 | dolorous | 2009-01-26 00:15:50 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
d840e0a03c | dolorous | 2009-01-26 00:13:39 +0000

Add random_in_bounds() to two other places that need it.

--------------------------------------------------------------------------------
1069ff1d4c | haranp | 2009-01-25 22:13:03 +0000

Implement [2383585]: picking up part of a stack (e.g. 3 of 6 bread rations) 
marks the rest of the stack as dropped, so that greedy autoexplore and 
autopickup won't try to take it.

--------------------------------------------------------------------------------
537d8cfed4 | haranp | 2009-01-25 22:04:30 +0000

Following dolorous's comments on 2488905, use random_in_bounds() instead of 
manual randomization. Also fixes the bug where this was biased towards the 
bottom-right section of the map. Unfortunately, it doesn't fix 2488905.

--------------------------------------------------------------------------------
7cfe05ee41 | haranp | 2009-01-25 20:26:28 +0000

Fix repeated messages when getting HP/MP restored interrupts with multiple 
delays queued (e.g., when butchering several items.) However, this fix means 
that Lua can't suppress the "HP restored" message on the relevant interrupt. If 
this is a problem it should be changed. Fixes [2494104].

--------------------------------------------------------------------------------
304f59e923 | haranp | 2009-01-25 19:58:57 +0000

Allow player to cancel stepping into a dangerous place when it's done by 
swapping places with a monster. Fixes [2535944].

--------------------------------------------------------------------------------
a9b549f307 | haranp | 2009-01-25 19:43:39 +0000

Scroll of vulnerability shouldn't annoy friendlies. Don't train stealth on 
unseen monsters.

--------------------------------------------------------------------------------
dd016fa361 | j-p-e-g | 2009-01-25 18:45:25 +0000

* Move eating logic from lua to C again, so as to handle more than   boolean 
responses (eat, skip, cancel). * Remove the now deprecated eat.lua.

--------------------------------------------------------------------------------
8c0ebd4d4c | dolorous | 2009-01-25 18:41:22 +0000

Also mark crawlhistory.txt as having native line endings.

--------------------------------------------------------------------------------
3df5dc9959 | dolorous | 2009-01-25 18:29:42 +0000

Mark some of the newer .des and .txt files as having native line endings.

--------------------------------------------------------------------------------
f24dd0d78e | haranp | 2009-01-25 17:57:03 +0000

Code quality fixes.

--------------------------------------------------------------------------------
d54f454b7f | j-p-e-g | 2009-01-25 14:24:54 +0000

* Move randart book names into a new file, randbook.txt. * Remove quotes from 
book names (use the props vector instead for   book_has_title()), and 
occasionally allow random owner names for   Sif's gifts (25% chance), as per FR 
2532818.

--------------------------------------------------------------------------------
90159f80a5 | dolorous | 2009-01-25 08:48:26 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
e1f8e4f7fe | dolorous | 2009-01-25 08:44:27 +0000

Simplify.

--------------------------------------------------------------------------------
6a52227c0b | zelgadis | 2009-01-25 07:55:12 +0000

If a monster which is out of LOS of the player hears the player make a noise, 
then make the monster move towards the player (if the player is within the 
monster's tracking range).  Might want to make this the default behaviour of 
behaviour_event(mon, ME_ALERT, MHITYOU), rather than just for noises centered 
on the player.  This doesn't change the behaviour of Projected Noise (unless 
the noise is centered on the player, since Projected Noise has a radius of 30 
and shouting only 12).

--------------------------------------------------------------------------------
8370211096 | dolorous | 2009-01-25 04:00:39 +0000

Typo fix.

--------------------------------------------------------------------------------
dfc3164140 | zelgadis | 2009-01-25 03:50:05 +0000

Monsters whose primary habitat is water or lava can't drown, even if they're 
lacking asphyxiation resistance.

--------------------------------------------------------------------------------
a9d5ca4e09 | dolorous | 2009-01-25 03:42:55 +0000

Use the proper article when monsters throw or shoot things.

--------------------------------------------------------------------------------
ecdd435edc | zelgadis | 2009-01-25 03:40:24 +0000

Make name(), base_name() and full_name() return a more informative string (and 
be less likely to crash) if given an invalid monster.

--------------------------------------------------------------------------------
1e75395870 | dolorous | 2009-01-25 01:41:43 +0000

Add comment.

--------------------------------------------------------------------------------
8c640e21d5 | dolorous | 2009-01-25 01:32:27 +0000

Allow soul enslavement to work properly on drowned monsters.

--------------------------------------------------------------------------------
a4818a2dc0 | dolorous | 2009-01-25 01:30:32 +0000

Consolidate the soul enslavement messages.

--------------------------------------------------------------------------------
313d6e00d6 | dolorous | 2009-01-25 01:29:56 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
778843af30 | dolorous | 2009-01-25 01:22:28 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
578e411f08 | dolorous | 2009-01-25 01:12:34 +0000

Revert erroneous change.

--------------------------------------------------------------------------------
23a32795d4 | dolorous | 2009-01-25 01:03:56 +0000

In player_monster_visible(), treat monsters who are submerged due to drowning 
as visible, so we get proper messages when they die.

--------------------------------------------------------------------------------
5d3d376185 | dolorous | 2009-01-25 00:47:11 +0000

Clean up monsters::can_drown().

--------------------------------------------------------------------------------
b23105c93a | dolorous | 2009-01-25 00:26:35 +0000

Add more miscellaneous minor cleanups.

--------------------------------------------------------------------------------
258aca6995 | dolorous | 2009-01-25 00:13:44 +0000

Add miscellaneous minor cleanups.

--------------------------------------------------------------------------------
2467ac1756 | dolorous | 2009-01-24 23:49:48 +0000

For consistency with intact enslaved souls, allow twisted enslaved souls to 
levitate.

--------------------------------------------------------------------------------
3ec5cfe6d3 | dolorous | 2009-01-24 23:37:25 +0000

Add miscellaneous minor cleanups.

--------------------------------------------------------------------------------
c5fc8279ea | dolorous | 2009-01-24 22:46:38 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
3175aaabe8 | dolorous | 2009-01-24 20:50:29 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5bbfb3bae5 | dolorous | 2009-01-24 20:31:51 +0000

Tweak vampires' being given Unarmed Combat skill when they lack it to be like 
that of spellcasters' being given Spellcasting skill when they lack it.  They 
now get two levels of Unarmed Combat unmodified by their above-average 
aptitude, i.e. level 2 at 0% instead of level 2 at 15%.

--------------------------------------------------------------------------------
661b1aea1f | dolorous | 2009-01-24 06:43:07 +0000

Fix [2532410]: Mention the player's being mesmerized in the "%" screen.

--------------------------------------------------------------------------------
4edb53f104 | dploog | 2009-01-24 05:42:19 +0000

Reinstate old formula for difficulty per ziggurat depth. Needs tweaking.

--------------------------------------------------------------------------------
6855ac274a | ennewalker | 2009-01-24 04:22:16 +0000

Reverting change to enable crashes on OS X.  Apparently it's 10.5 only.  If 
only we had autoconfigure...

--------------------------------------------------------------------------------
c7df550de4 | ennewalker | 2009-01-24 04:18:19 +0000

Enabling crash dump on OS X.  Adding extra version information to dumps.

--------------------------------------------------------------------------------
16e3c0a6d8 | ennewalker | 2009-01-24 03:33:29 +0000

Allowing LClick to close the view item screen.

--------------------------------------------------------------------------------
5fec4a5d73 | ennewalker | 2009-01-24 03:19:30 +0000

Fixing right-click on minimap not working unless the mouse was moving.

--------------------------------------------------------------------------------
8c4e3a30eb | ennewalker | 2009-01-24 03:04:31 +0000

[2523860] Fixing interlevel travel again.

--------------------------------------------------------------------------------
c7a0a4b52c | haranp | 2009-01-23 16:54:33 +0000

Fix [2530350]: flags set incorrectly on coagulated potions which spill out of 
inventory. It looks like some attributes (.link, .slot) still don't get set; 
jpeg, can you review?

--------------------------------------------------------------------------------
cf81724d60 | dolorous | 2009-01-23 09:33:24 +0000

Comment fix.

--------------------------------------------------------------------------------
cc7766e30b | dolorous | 2009-01-23 09:31:29 +0000

When randomly leaving skeletons from butchery or blood potion bottling, make 
the skeleton from the original corpse instead of the copy, so that it gets the 
same item slot as the corpse and equip_undead() on the skeleton works properly.

--------------------------------------------------------------------------------
639c8fe55e | dolorous | 2009-01-23 05:42:54 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
8ba107149b | dolorous | 2009-01-23 05:40:11 +0000

Make messages for animating single skeletons/corpses versus multiple ones 
consistent.  Also, display a proper warning message if a player tries to 
animate a single skeleton/corpse while not actually standing on one.

--------------------------------------------------------------------------------
a19dd0dd92 | dolorous | 2009-01-23 05:01:44 +0000

Add spacing fix.

--------------------------------------------------------------------------------
59b4a255cc | zelgadis | 2009-01-23 03:27:38 +0000

Force monster movement to keep the monster in LOS immediately after the monster 
gives a "comes into view" message, not immediately after it shouts.

--------------------------------------------------------------------------------
5a9bc366df | dolorous | 2009-01-22 20:53:18 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
a3fcdc009b | dolorous | 2009-01-22 20:49:42 +0000

Make sure orcs always get orcish equipment, and simplify.

--------------------------------------------------------------------------------
0f08175358 | dolorous | 2009-01-22 20:44:50 +0000

Fix naming of uniques' enslaved souls.

--------------------------------------------------------------------------------
b1fc09d918 | dolorous | 2009-01-22 19:08:33 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
cabed2e3fe | j-p-e-g | 2009-01-22 19:01:54 +0000

Fix 2525570: buggy orc priest name.

--------------------------------------------------------------------------------
752b66f301 | j-p-e-g | 2009-01-22 18:36:03 +0000

Commit patch by castamir: * allow placement of fixedarts and damaged/cursed 
items in vaults

--------------------------------------------------------------------------------
461b3e21bd | dolorous | 2009-01-22 18:20:06 +0000

In the shopping code, add price modifiers for weapons of returning, branded and 
racial missiles (of the former, only those that are currently randomly 
generated), and scrolls of vulnerability.

--------------------------------------------------------------------------------
03d0dc004f | dolorous | 2009-01-22 18:05:50 +0000

For consistency with branded missile weapons, make branded missiles "of flame" 
and "of frost" rather than "of flame" and "of ice".

--------------------------------------------------------------------------------
2f0b704c91 | zelgadis | 2009-01-22 13:19:54 +0000

Only force a moving monster to stay in the player's LOS if it just shouted, as 
per Johanna's comments.

--------------------------------------------------------------------------------
a12d1862eb | zelgadis | 2009-01-22 12:25:18 +0000

Oops, a monster might be hit with a mutation attack or a Polymorph Other beam 
while MF_JUST_SUMMONED is still set, so handle polymorphing just-placed 
shifters slightly differently.

--------------------------------------------------------------------------------
ec5b5dfca3 | zelgadis | 2009-01-22 11:00:14 +0000

Include the Lua stack trace and currently acting monsters in the crash report.

--------------------------------------------------------------------------------
a54e6bb23d | zelgadis | 2009-01-22 09:58:12 +0000

Overload MF_KNOWN_MIMIC to also mean "a shapeshifter the player has seen 
shift", append "shaped shifter" to the end of the name of known shifters, and 
give a special death message when a non-known shifter dies to let the player 
know it was a shifter.
Immediately polymorph shifters as soon as they are placed (with no messages to
the player) so that if the player enters a new level with a shifter in LOS (or
if a shifter is summoned in LOS) the player will never see it as a plain/raw
shifter.

--------------------------------------------------------------------------------
581c0cd227 | dolorous | 2009-01-22 09:28:34 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
7da2a9fee7 | dolorous | 2009-01-22 09:27:55 +0000

Increase the probability of randomly generated elven blowguns a bit.

--------------------------------------------------------------------------------
d8293d7a06 | dolorous | 2009-01-22 08:54:18 +0000

Remove erroneous monster miscast message.

--------------------------------------------------------------------------------
50d4d026d2 | dolorous | 2009-01-22 08:50:31 +0000

Call do_msg() in the same place for the other "engulfed in negative energy" 
necromancy miscast.

--------------------------------------------------------------------------------
c0f4acdb67 | dolorous | 2009-01-22 08:35:16 +0000

Cleanup, again:
Add a WPN_MAX_RACIAL parameter to the weapons enum, and make 
set_equip_race() use it.  Also, reorganize the weapons list a bit.

--------------------------------------------------------------------------------
d13e2a5a65 | dolorous | 2009-01-22 08:30:40 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
49ed6aea2e | zelgadis | 2009-01-22 07:41:26 +0000

Since you.turn_is_over is now always true once world_reacts() starts 
processing, simplify the religion_turn_over() pre-condition assertion.

--------------------------------------------------------------------------------
5a4705a1b7 | zelgadis | 2009-01-22 07:37:56 +0000

Partial fix for bug #2518014: attempt to make monsters heading for the player 
stay in LOS.

--------------------------------------------------------------------------------
ae49764313 | zelgadis | 2009-01-22 07:36:30 +0000

If &H is a repeated command then increase HP all at one go, skipping the delay 
of repeatedly updating the screen.

--------------------------------------------------------------------------------
6cdd66c768 | zelgadis | 2009-01-22 07:35:07 +0000

If death from stat loss is escaped via wizard mode then reset the stat to max, 
and don't reset HP to max HP.

--------------------------------------------------------------------------------
70debc598c | zelgadis | 2009-01-22 07:33:49 +0000

Fix Necromancy severity 2 miscast assertions.

--------------------------------------------------------------------------------
2cbbec1b2a | dolorous | 2009-01-22 06:05:50 +0000

Various cleanups:
1. Move the blessed eudemon blade down in the weapon_type enum so that 
it's with the other blessed weapons, add a WPN_MAX_NONBLESSED parameter 
to indicate where the non-blessed weapons end, and make weapon mimics 
use it.  Mimics can now no longer imitate blessed weapons, which makes 
them less of a giveaway, since only the blessed eudemon blade shows up 
normally, and it's normally colored yellow, neither of which are true 
for mimic versions.

2. Since all non-racial armors are in one contiguous block at the end of 
the armour_type enum, and since very little code depends on the armors' 
being in a particular order, add an ARM_MAX_RACIAL parameter to indicate 
where the potentially racial weapons end, and make set_equip_race() use 
it.  Also, rearrange the armors a bit in the enum.

3. Since no code depends on the missiles' being in a particular order, 
move the non-racial missiles down to the end of the missile_type enum, 
add a MI_MAX_RACIAL parameter to indicate where the potentially racial 
missiles end, and make set_equip_race() use it.

--------------------------------------------------------------------------------
a1f59ee435 | dolorous | 2009-01-22 05:55:30 +0000

Simplify again.

--------------------------------------------------------------------------------
a100526068 | dploog | 2009-01-22 05:50:32 +0000

Fixed (and higher) chances for portals to Ziggurats. No more Ziggurats in Zot, 
but much better chances in Pan. Faster monster generation per depth in 
Ziggurats.

--------------------------------------------------------------------------------
ffb761770c | dolorous | 2009-01-22 05:46:57 +0000

Simplify, now that centaur and naga bardings are properly non-racial.

--------------------------------------------------------------------------------
93e3e93ac5 | zelgadis | 2009-01-22 05:40:53 +0000

Fix wizard-mode corpse force-feeding leading to crash on game reload if the 
force-fed monster skeletonizes the corpse.

--------------------------------------------------------------------------------
c4779b6bb5 | dolorous | 2009-01-22 05:34:56 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d42a180a16 | zelgadis | 2009-01-22 05:17:56 +0000

Put platform dependant crash handling code into crash-X.cc files, and link 
against them in the make files like libunix/libgui/etc are.

--------------------------------------------------------------------------------
e547d7f8d9 | zelgadis | 2009-01-22 05:08:10 +0000

Split miscast code off from spl-cast.cc into spl-mis.cc
Get rid of members mon_target and mon_source from MiscastEffect class, replace
with methods target_as_monster() and source_as_monster().

--------------------------------------------------------------------------------
ad4c63dc32 | ennewalker | 2009-01-22 04:10:07 +0000

Allowing Xom to still cast detect spells in the labyrinth.

--------------------------------------------------------------------------------
2b38959cd0 | dolorous | 2009-01-22 04:06:28 +0000

Fix inverted logic that was allowing racial centaur/naga bardings to be created.

--------------------------------------------------------------------------------
6902cd6f6f | ennewalker | 2009-01-22 03:18:26 +0000

For items during character creation that get random colours (armour in 
tiles/classic colour scheme), apply some job-thematic colours.  For example, 
this prevents assassins from starting out in sky blue outfits.

--------------------------------------------------------------------------------
d623e84a98 | dolorous | 2009-01-22 02:52:35 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
ea7f0c49e5 | dolorous | 2009-01-22 02:15:10 +0000

In melee_attack::player_apply_aux_unarmed(), explicitly return true if 
_monster_die() was called, or false if it wasn't, instead of returning 
!defender->alive().  The latter could return true if the monster avoided death 
(from e.g. conversion to Beogh by force), leading to an erroneous wounds 
display afterward, or to your erroneously making an unarmed attack on the 
monster and angering it.

--------------------------------------------------------------------------------
413367e626 | dolorous | 2009-01-22 01:18:32 +0000

Make stupid undead not pick up ranged weapons or missiles, since they can't use 
them.

--------------------------------------------------------------------------------
972dbbf367 | dolorous | 2009-01-22 01:17:22 +0000

Make monsters that can't at least use starting equipment unable to throw or 
shoot, since they won't start with or be able to pick up anything to throw or 
shoot.

--------------------------------------------------------------------------------
331232ee03 | dolorous | 2009-01-22 00:51:17 +0000

After some thought, for now, remove stupid undead not retaining alternate 
weapons.  With monsters::pickup_item(), they always seem to get missile weapons 
over melee weapons, and code in _handle_throw() makes all zombies unable to 
throw or shoot, so, effectively, they'll now always use melee and never switch 
weapons.

--------------------------------------------------------------------------------
65b9720cd0 | dolorous | 2009-01-22 00:12:33 +0000

Fix equip_undead() to make stupid undead not pick up alternate weapons again.  
Since monsters::pickup_item() may change the slot a weapon goes into, and 
includes checks with regard to picking up two melee weapons or two ranged 
weapons, check both the weapon and alternate weapon slots, and only fill both 
if the monster can wield two weapons or is a smart undead.

--------------------------------------------------------------------------------
2110d762af | dolorous | 2009-01-21 22:28:52 +0000

Add spacing fix.

--------------------------------------------------------------------------------
62fc8116fb | dolorous | 2009-01-21 21:20:20 +0000

Simplify.

--------------------------------------------------------------------------------
255b08d72a | dolorous | 2009-01-21 21:17:44 +0000

Add still more monster miscast messages.

--------------------------------------------------------------------------------
1ed77e6ef0 | dolorous | 2009-01-21 20:48:45 +0000

Actually display the "engulfed in negative energy" miscast messages.

--------------------------------------------------------------------------------
601fa4aa11 | haranp | 2009-01-21 20:39:32 +0000

Remove some unneeded externs.

--------------------------------------------------------------------------------
44361fc174 | dolorous | 2009-01-21 20:28:14 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
675e240cda | dolorous | 2009-01-21 20:26:29 +0000

Add another monster miscast message.

--------------------------------------------------------------------------------
75e1916d77 | dolorous | 2009-01-21 19:26:17 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
4ab3d4ca38 | zelgadis | 2009-01-21 13:50:20 +0000

Remove more useless diagnostics.

--------------------------------------------------------------------------------
48628de4eb | haranp | 2009-01-21 12:38:42 +0000

Grammar fix.

--------------------------------------------------------------------------------
cda0d0202d | zelgadis | 2009-01-21 12:29:02 +0000

Remove some old diagnostics code (oops).

--------------------------------------------------------------------------------
0e9baadffe | zelgadis | 2009-01-21 12:10:09 +0000

If a crash is caused by an assertion, then include the assertion message in the 
crash dump.

--------------------------------------------------------------------------------
13ce21e448 | zelgadis | 2009-01-21 11:07:27 +0000

Don't let ghouls or necrophages eat skeletons, so as to avoid an assertion 
where the code attempts to skeletonize a skelton (and also it seems weird for 
them to gobble up something with no flesh on it).

--------------------------------------------------------------------------------
7d317e6fc0 | haranp | 2009-01-21 11:04:32 +0000

Remove a few more unnecessary casts. Don't cheat on constness in 
_mons_has_path_to_player.

--------------------------------------------------------------------------------
6d641e67f0 | zelgadis | 2009-01-21 11:04:22 +0000

Allow testers to force-feed corpses to ghouls and necrophages.

--------------------------------------------------------------------------------
50bf4fcc44 | haranp | 2009-01-21 10:42:37 +0000

Upcasting doesn't require a dynamic_cast<> (or in fact any cast.)

--------------------------------------------------------------------------------
15eb0909f5 | haranp | 2009-01-21 10:36:27 +0000

Code cleanup for traps.

--------------------------------------------------------------------------------
1b6083af89 | zelgadis | 2009-01-21 10:19:41 +0000

If a monster surfaces and then submerges again in the same turn then give the 
message "The monster surfaces briefly" instead of "The monster surfaces", so 
the player will have some idea as to why the monster isn't in view.

--------------------------------------------------------------------------------
af6dde3945 | haranp | 2009-01-21 09:46:00 +0000

Fix explosions hitting their endpoint twice. [2481715] As of now, explosion 
beams do not do affect anything until they actually explode. I can't think of 
any explosions that should do this, but I'm pretty sure there are some that I'm 
forgetting. Fix a security issue with crash dump reporting.

--------------------------------------------------------------------------------
1a33b2f941 | haranp | 2009-01-21 09:05:55 +0000

Mention that allow_self_target does not influence area effect spells. [2510197]

--------------------------------------------------------------------------------
e0da824d64 | zelgadis | 2009-01-21 08:41:13 +0000

Prevent trapdoor spider from repeatedly unhiding/hiding in the same turn when 
it's heavily damaged and attempting to stay hidden.

--------------------------------------------------------------------------------
3f54daf5f3 | dolorous | 2009-01-21 04:44:18 +0000

Make the message used for detection spells in non-magic-mappable areas match 
the message used for detection abilities in non-mappable areas.

--------------------------------------------------------------------------------
069ab225fe | ennewalker | 2009-01-21 04:30:40 +0000

[2496621] Disallowing detect spells in non-magic-mappable levels.

--------------------------------------------------------------------------------
3bc5803595 | ennewalker | 2009-01-21 03:58:34 +0000

[2496621] Fixing view recentering on abyss shifts.  Shifts now preserve any 
scrolling that had occured.

--------------------------------------------------------------------------------
20435a6543 | dolorous | 2009-01-21 03:43:21 +0000

Clean up.

--------------------------------------------------------------------------------
d726992a76 | dolorous | 2009-01-21 03:41:29 +0000

Alow Yred's retribution with regard to enslaved souls to produce twisted souls, 
for variety.

--------------------------------------------------------------------------------
97936566ee | ennewalker | 2009-01-21 01:54:25 +0000

[2521773] Fixing octagon extending out of bounds by reverting the parameters to 
octa_room.  Fixing failures of that level by toning down the "smear" factor on 
smaller rooms.  For large numbers of smear iterations, it could cover most of 
the room, making it impossible to place stairs.

--------------------------------------------------------------------------------
345c5b18e4 | ennewalker | 2009-01-20 23:22:14 +0000

[2523738] Fix assertion in inter-level travel.  (Sorry!)

--------------------------------------------------------------------------------
8e6aed77dc | dolorous | 2009-01-20 22:53:13 +0000

Clean up rotting in melee attacks to not kill the target directly and to use 
special_damage_msg, as with draining.

--------------------------------------------------------------------------------
28b0d8ccf5 | dolorous | 2009-01-20 22:51:00 +0000

And fix it again.

--------------------------------------------------------------------------------
7fc58697c3 | dolorous | 2009-01-20 22:41:19 +0000

And fix rotting players' becoming diseased.

--------------------------------------------------------------------------------
86707b300c | dolorous | 2009-01-20 22:24:02 +0000

Make monsters' rotting attacks actually rot the player again (oops).

--------------------------------------------------------------------------------
1cae4690f8 | dolorous | 2009-01-20 21:58:56 +0000

Add consistency fixes.

--------------------------------------------------------------------------------
15c1ed6a82 | dolorous | 2009-01-20 21:39:04 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
17c9dbde2c | dolorous | 2009-01-20 20:06:04 +0000

Properly save and restore the starting wand or rod for the Artificer class.

--------------------------------------------------------------------------------
f494038250 | dolorous | 2009-01-20 19:38:09 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
e12f29053e | dolorous | 2009-01-20 17:21:05 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
63d8942833 | zelgadis | 2009-01-20 14:35:26 +0000

Attempting to move or copy and item to a out-of-bounds position on the grid 
will now assert.

--------------------------------------------------------------------------------
31940f5b3a | zelgadis | 2009-01-20 14:33:54 +0000

Fix bug #2517821: if a trap killed a monster and then tried to drop ammo it 
would get a position of (0, 0) from the dead monster and place it there, 
leading to a debug_item_scan() warning.

--------------------------------------------------------------------------------
dc59d20255 | zelgadis | 2009-01-20 13:37:58 +0000

Fix "Unlinked temporary item" messages when a game is saved and restored, since 
otherwise they just get on your nerves.

--------------------------------------------------------------------------------
327c313f2b | zelgadis | 2009-01-20 12:35:10 +0000

Was using wrong method to get the last element of a vector.

--------------------------------------------------------------------------------
9c8871bc3e | zelgadis | 2009-01-20 10:41:45 +0000

Make extra-sure that a monster won't be announced to have come into view, only 
to immediately move out of view, by introducing the notion of the currently 
acting monster to crawl_state, and only flushing out the "comes into view" 
message in mpr() for the currently acting monster.  Not sure if it's worth it 
just for the sake of avoiding doing a "has this monster just now come into 
view" check in every place that a monster might issue a message, but at least 
this way we won't miss any places such a check should be placed.

--------------------------------------------------------------------------------
68b3b5ac34 | zelgadis | 2009-01-20 10:30:20 +0000

Fix assertion when buying items from shops.

--------------------------------------------------------------------------------
e3a40721bf | zelgadis | 2009-01-20 07:39:59 +0000

Yet another attempt to fix problems with the monster "comes into view" 
messsages.  Such messages are not not flushed immediately upon the monster 
coming into view, but:
1) After world_reacts() is done.

2) When mpr() is called and the player is either delayed or repeating a
   command.

This should make sure that the "comes into view" message comes before any other
messages the monster might give, and also fix the problem of the player moving
into a monster's LOS, getting a "comes into view" message, and the monster then
moving back out of LOS during the immediately following world_reacts(), which
would leave the player puzzled as to why there's no monster in view.

As part of the change you.turn_is_over is set to true as soon as world_reacts()
starts, which might cause bugs in other places, yet some play testing indicates
that it's okay.

--------------------------------------------------------------------------------
9e60cc1e81 | dolorous | 2009-01-20 06:49:40 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
59be8a24d2 | dolorous | 2009-01-20 06:42:34 +0000

Simplify.

--------------------------------------------------------------------------------
9f9b63b478 | dolorous | 2009-01-20 05:52:36 +0000

Remove now-unused redraw_gold flag.

--------------------------------------------------------------------------------
f2972cf05b | dolorous | 2009-01-20 05:33:07 +0000

Add miscellaneous minor cleanups.

--------------------------------------------------------------------------------
a7eaf9dc5e | zelgadis | 2009-01-20 05:14:03 +0000

Make the genus of slime creatures and giant amoebas MONS_JELLY, instead of the 
same as their species.
Jelly-type and snail-type monster remove bloodstains from features they move
over.

Changes to mons_is_native_in_branch():

* Changed to use mons_genus() instead of mons_species() (where applicable).

* Made orbs of fire and death cobs native to Zot.

* Made all undead native to the Crypt (previously, nothing was native to
  the Crypt).

--------------------------------------------------------------------------------
7ac9f20ef3 | ennewalker | 2009-01-20 04:13:07 +0000

Adding FTILE/RTILE vault commands for setting per-glyph floor and rock tiles.  
Most vaults with COLOUR tags now also use FTILE/RTILE.
FLOORCOL, ROCKCOL, FLOORTILE, and ROCKTILE have been renamed to LFLOORCOL, 
LROCKCOL, LFLOORTILE, and LROCKTILE to emphasize the fact that they are a 
per-level setting (similar to LFLAGS) and to disambiguate them from 
COLOUR/FTILE/RTILE.

This change also fixes green water not appearing green outside of the sewers 
and vaults (like the ice cave) not getting their default tiles set 
appropriately due to a recent change.

--------------------------------------------------------------------------------
aaa2d20241 | dploog | 2009-01-20 03:31:39 +0000

Added Enne's Shoal ruins.

--------------------------------------------------------------------------------
d1a3c2e7dc | dolorous | 2009-01-20 03:27:51 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
22ca6cabf2 | dolorous | 2009-01-20 03:04:56 +0000

Fix wasp vault depth, since there is no Hive:3 anymore.

--------------------------------------------------------------------------------
52450afbda | dploog | 2009-01-20 02:41:17 +0000

Uncomment Lemuel's wasp vault for Hive again. Update year on welcome screen.

--------------------------------------------------------------------------------
384d9a2c1f | ennewalker | 2009-01-20 01:46:16 +0000

Fixing warnings.

--------------------------------------------------------------------------------
4c04644248 | ennewalker | 2009-01-20 01:33:45 +0000

[2521835] Adding arena.cc and version.cc to the OSX project file.

--------------------------------------------------------------------------------
48cc52c40f | dolorous | 2009-01-20 00:30:10 +0000

Add still more monster miscast messages.

--------------------------------------------------------------------------------
c24b486eb7 | dolorous | 2009-01-20 00:17:15 +0000

Add more monster miscast messages.

--------------------------------------------------------------------------------
e1d8ce31f8 | dolorous | 2009-01-19 23:56:01 +0000

Per Haran's suggestion, simplify by using monsters::mindex().

--------------------------------------------------------------------------------
fad49feb8f | dolorous | 2009-01-19 23:11:07 +0000

Clean up.

--------------------------------------------------------------------------------
5d67b7dd20 | dolorous | 2009-01-19 23:07:02 +0000

Fix monster targeting yet again.

--------------------------------------------------------------------------------
d1f33de720 | dolorous | 2009-01-19 22:55:29 +0000

Add spacing fix.

--------------------------------------------------------------------------------
ddafd81639 | dolorous | 2009-01-19 22:43:25 +0000

And fix handling of unset attackers again (oops).

--------------------------------------------------------------------------------
074a9dc0cd | dolorous | 2009-01-19 22:24:57 +0000

Set the targets properly for player-caused cleansing flame and immolation 
(oops).

--------------------------------------------------------------------------------
943325b14f | dolorous | 2009-01-19 22:18:40 +0000

Allow chaos spawns to be generated in the Abyss.

--------------------------------------------------------------------------------
f2e1abc584 | dolorous | 2009-01-19 21:59:56 +0000

Expand immolation and cleansing flame as well, so that monsters may be able to 
use scrolls of immolation or holy word in the future.  Also, add a power 
parameter to immolation, so that it can be reused for an exploding Tome of 
Destruction.

--------------------------------------------------------------------------------
96edac1d64 | dolorous | 2009-01-19 21:02:48 +0000

Expand effect applicator functions to take an actor parameter, and use it for 
holy word in order to generalize it.  This way, monsters as well as players may 
be able to use it in the future.

--------------------------------------------------------------------------------
e40eb81627 | dolorous | 2009-01-19 20:46:51 +0000

Fix [2520066]: Don't clean up dead monsters if they're quietly drained to death 
in melee, to avoid messages like "You drained INVALID MONSTER!".

--------------------------------------------------------------------------------
34bc1903dd | dolorous | 2009-01-19 18:45:32 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
436078067b | dolorous | 2009-01-19 18:36:11 +0000

Rename cleansing flame resistance to holy energy resistance, and clean up holy 
wrath weapon checks.

--------------------------------------------------------------------------------
76d8c3651d | dolorous | 2009-01-19 18:19:59 +0000

Fix crash with holy word scrolls.

--------------------------------------------------------------------------------
fddb84a8c9 | dolorous | 2009-01-19 17:53:25 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
ed5d2b2e4f | dolorous | 2009-01-19 17:49:45 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
292e72845a | zelgadis | 2009-01-19 10:39:40 +0000

Don't place monster death clouds when the monster is submerged or dismissed by 
wizard command.

--------------------------------------------------------------------------------
b3ee0a265f | zelgadis | 2009-01-19 09:44:27 +0000

apply_location_effects() should check_pool() with the monster's new location, 
not the old one.

--------------------------------------------------------------------------------
0fbf14e3d5 | zelgadis | 2009-01-19 09:26:13 +0000

Make monsters::seen_context more short-lived.

--------------------------------------------------------------------------------
51c4c3f59e | dolorous | 2009-01-19 08:53:01 +0000

Add spacing fix.

--------------------------------------------------------------------------------
238c5c4c9b | dolorous | 2009-01-19 08:51:33 +0000

Add punctuation fix.

--------------------------------------------------------------------------------
4b864a6159 | j-p-e-g | 2009-01-19 08:33:16 +0000

Cut Hive depth to 2. Could someone check the Hive vaults, please?

--------------------------------------------------------------------------------
2e7a87cbd1 | dolorous | 2009-01-19 08:30:12 +0000

Go back to using the special damage message for draining monsters in melee 
attacks, as the previous way could result in out-of-sequence messages.  Keep 
the other message for draining beams and miscasts, though.

--------------------------------------------------------------------------------
5343fcdfc6 | dolorous | 2009-01-19 07:59:28 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
990084e0bd | dolorous | 2009-01-19 07:57:15 +0000

Make draining beams properly take full negative energy resistance into account.

--------------------------------------------------------------------------------
b353902c5b | zelgadis | 2009-01-19 07:53:07 +0000

Take advantage of check_redraw() generating an AI_SEE_MONSTER interrupt when 
appropriate, and fix dispersal ammo's usage of apply_location_effects() and 
check_redraw().

--------------------------------------------------------------------------------
94328e825e | dolorous | 2009-01-19 07:50:25 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
1c64eccb78 | zelgadis | 2009-01-19 07:49:53 +0000

Oops, my simplification of the "comes into view" message handling requires that 
viewwindow() be called whenever a monster being moved causes it to enter the 
player's view, in order to prevent messages from being out of order.

--------------------------------------------------------------------------------
d8aa5ed19f | dolorous | 2009-01-19 07:43:58 +0000

Clean up monsters::drain_exp() a bit.

--------------------------------------------------------------------------------
dc6ac50dd3 | dolorous | 2009-01-19 07:33:59 +0000

Fix incorrect logic.

--------------------------------------------------------------------------------
d567ea506b | dolorous | 2009-01-19 07:32:17 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
aadec04e07 | dolorous | 2009-01-19 07:23:43 +0000

Simplify further.

--------------------------------------------------------------------------------
48e6d3f0a1 | dolorous | 2009-01-19 07:22:14 +0000

Simplify check for negative energy resistance.

--------------------------------------------------------------------------------
42937236bd | zelgadis | 2009-01-19 06:56:02 +0000

Fix shouting and "comes into view" messages for submerged mermaids.

--------------------------------------------------------------------------------
6f1468c6da | dolorous | 2009-01-19 06:32:44 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
33005dad6d | zelgadis | 2009-01-19 06:20:51 +0000

Simplify the code that issues the "comes into view" monster interrupt message, 
so we don't have to check in multiple places to make sure that "comes into 
view" is given before any of the other monster messages.

--------------------------------------------------------------------------------
8f82bd1f8a | zelgadis | 2009-01-19 04:55:39 +0000

Fix bug #2517795: debug_item_scan() errors when the Abyss shifts.

--------------------------------------------------------------------------------
59a3c76e56 | ennewalker | 2009-01-19 03:49:43 +0000

[2517979] Fixing double inventory items for items on the ground.

--------------------------------------------------------------------------------
4333f1287c | zelgadis | 2009-01-19 03:38:37 +0000

Partialy fix bug #2518014: flush out any "comes into view" messages before a 
monster shouts.

--------------------------------------------------------------------------------
0a716835ce | dolorous | 2009-01-19 02:28:12 +0000

Add more monster miscast messages.

--------------------------------------------------------------------------------
ac834df2d5 | dolorous | 2009-01-19 01:24:51 +0000

Attempt to fix [2516521] by setting act_source equal to the target when dealing 
with Zot miscasts and the like, since many actor interfact functions require a 
valid source on the monster side.  This way, for example, divination miscasts 
will use the monster's own HD when confusing.  With kill_category and kill_type 
set as they are, no one should get improper credit for any kills caused by Zot 
traps.  Also, if the player worships TSO and gets the "poisonous cloud" Zot 
miscast, any monsters poisoned from it will not trigger the poisoning conduct.

--------------------------------------------------------------------------------
9e383fbf69 | dolorous | 2009-01-19 01:17:07 +0000

Properly pluralize "antenna" as "antennae".

--------------------------------------------------------------------------------
cd2263afc2 | dolorous | 2009-01-19 00:11:43 +0000

Simplify.

--------------------------------------------------------------------------------
a8b134e880 | dolorous | 2009-01-19 00:09:59 +0000

Make draining from spell miscasts take full negative energy resistance into 
account, too.

--------------------------------------------------------------------------------
29fa18eaae | dolorous | 2009-01-18 23:32:04 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
92a5a273fc | haranp | 2009-01-18 22:52:55 +0000

Player tracers had thrower set incorrectly, so no prompt was given when firing 
through friendlies. [greensnark]

--------------------------------------------------------------------------------
0b0a48757e | dolorous | 2009-01-18 22:45:14 +0000

Fix missing space in Xom's chaos upgrade message.

--------------------------------------------------------------------------------
bb2c2015d9 | dolorous | 2009-01-18 22:35:59 +0000

Ensure that magical explosions have a minimum explosion size of 1.

--------------------------------------------------------------------------------
333ecf9fda | haranp | 2009-01-18 22:20:18 +0000

Fix 2511848: manual explosions having their flavour overriden.

--------------------------------------------------------------------------------
9848185528 | dolorous | 2009-01-18 22:04:29 +0000

Simplify.

--------------------------------------------------------------------------------
1006525876 | haranp | 2009-01-18 22:02:28 +0000

Fix [2515428]: gold display not reprinting properly when log10(gold) decreases.

--------------------------------------------------------------------------------
b0656caf08 | dolorous | 2009-01-18 21:59:41 +0000

After some more thought, make draining and vampiric attacks (both weapons and 
monster attacks, not just the latter) take full negative energy resistance into 
account.

--------------------------------------------------------------------------------
f027a300ee | j-p-e-g | 2009-01-18 21:58:00 +0000

Lower generation chance of fixed level randart books (from 1/6 down to about 
1/20, or 1/10 if gifted by Sif Muna).

--------------------------------------------------------------------------------
be19ab82a3 | dolorous | 2009-01-18 21:47:18 +0000

Simplify.

--------------------------------------------------------------------------------
f4435f6507 | dolorous | 2009-01-18 21:44:51 +0000

Fix check for monsters' negative energy resistance with regard to draining 
attacks.

--------------------------------------------------------------------------------
3b4bc6d250 | j-p-e-g | 2009-01-18 21:42:02 +0000

* Also add blood bottling to command help for Vampires. * Better feedback when 
quiver cycling doesn't do anything.

--------------------------------------------------------------------------------
a6d89fbabb | dolorous | 2009-01-18 21:31:22 +0000

Consolidate the player and monster draining functions in fight.cc, make monster 
draining take multiple levels of negative energy resistance into account, and 
only set the necromancy conduct if draining actually took place, as with 
draining beams.

--------------------------------------------------------------------------------
cff1172ef0 | dolorous | 2009-01-18 20:29:17 +0000

Add spacing fix.

--------------------------------------------------------------------------------
a2452b1313 | haranp | 2009-01-18 20:27:23 +0000

More Xom code cleanups.

--------------------------------------------------------------------------------
f43b77a1ae | dolorous | 2009-01-18 20:19:03 +0000

Simplify again.

--------------------------------------------------------------------------------
27480c3fd4 | dolorous | 2009-01-18 17:07:52 +0000

Simplify.

--------------------------------------------------------------------------------
80e9ad6c90 | zelgadis | 2009-01-18 12:46:41 +0000

UNIX/mgw tiles stubs for crash handler; stop-gap until it's made to use the 
same crash handling code as the console/ASCII version.

--------------------------------------------------------------------------------
5ce6c53bfc | zelgadis | 2009-01-18 12:28:32 +0000

Fix bug #2482254: a giant spore exploding was having the mgrd where it used to 
be set to NON_MONSTER *twice*, the second time after the royal jelly had 
responded to the explosion and spat out a new jelly on the spot the spore used 
to occupy, leading to the new jelly becoming detached from the mgrd.
Allowing the royal jelly to be radnomly generated in the arena with the
random_uniques tag, since it's no longer causing a crash.

--------------------------------------------------------------------------------
8f6cfc7dc4 | zelgadis | 2009-01-18 11:45:43 +0000

Limit crash handling recursion to being commented upon just once.

--------------------------------------------------------------------------------
35b66c2f1c | zelgadis | 2009-01-18 11:43:47 +0000

Don't do anything for more() or mesclr() if the game has crashed (they might 
get called during crash debug dumping from debug_item_scan() or 
debug_mons_scan() )

--------------------------------------------------------------------------------
a895c5348b | zelgadis | 2009-01-18 09:49:47 +0000

When using the "change friendliness" wizard targetting command in arena mode, 
skip the good neutrla and neutral stages in the attitude cycle.

--------------------------------------------------------------------------------
3adabca6af | zelgadis | 2009-01-18 09:33:06 +0000

Actors are now always visible to themselves.  If an actor should behave 
differently if it is invisble yet can't see invisible then that will have to be 
be special cased, rather than using can_see() or visible_to().

--------------------------------------------------------------------------------
90f5308b71 | zelgadis | 2009-01-18 09:23:45 +0000

During arena mode, don't describe a monster as "It's doesn't appear to have 
noticed you."
If a monster has an invisible foe that isn't the player, describe it as
watching the foe rather than watching the player.

--------------------------------------------------------------------------------
f01756531d | zelgadis | 2009-01-18 08:53:10 +0000

During arena mode, scale draw_delay according to how much arena_delay has been 
changed from it's default.

--------------------------------------------------------------------------------
772a3e1404 | zelgadis | 2009-01-18 08:28:53 +0000

Always call _arena_set_foe() for arena monsters whose target is (0, 0). 
Obviates the need for setting the monster's target via an ME_ALERT event in 
mons_place().

--------------------------------------------------------------------------------
64a3024d16 | zelgadis | 2009-01-18 07:01:48 +0000

Fix boundary condition error when computing the oldest stored message.

--------------------------------------------------------------------------------
b3cca065ea | zelgadis | 2009-01-18 06:17:54 +0000

Oops, forgot to put "#ifndef USE_TILE" around unixcurses_shutdown() (though it 
probably doesn't make much difference if the game is in the process of 
crashing).

--------------------------------------------------------------------------------
c4aac58723 | zelgadis | 2009-01-18 06:09:54 +0000

When dumping info upon a crash:
* For Unix builds, shut down curses in case the crash reporter can't
  open up a file and has to dump the crash directly to stderr.

* Include all saved messages in the crash report.

* Use EOL instead of \n or \r\n.

--------------------------------------------------------------------------------
d95060f1e6 | ennewalker | 2009-01-18 05:37:18 +0000

Disallowing travel to impassable terrain.

--------------------------------------------------------------------------------
8a0f04d1b2 | dolorous | 2009-01-18 05:29:10 +0000

Clean up explosion routines a bit more, and put back erroneously removed Tome 
of Destruction explosion.

--------------------------------------------------------------------------------
ddb951a57e | zelgadis | 2009-01-18 05:12:24 +0000

Implemented crash data reporting, though it's only some stubs on Windows and 
DOS.  On UNIX with USE_UNIX_SIGNALS defined, when any crash causing signal 
happens it will dump to a file the current crawl_state, anything caught by the 
items and monsters scans, and level building info if the crash happened during 
level generation.
Also, if crawl is linked against the GNU C library (and the exectuable is in
ELF format) it will dump the stack trace.  The code attempts to automatically
detect the presence of glibc, but that might not work on all systems.  This
should work on OS X, since there's an OS X man page for the glibc functions
that get the stack trace.  Don't know if it would work with MinGW.

Actually getting function names for the stack trace requires the use of the
"-rdynamic" linker option, which increases the size of the stripped executable
by 27% (yikes!), but still prints the function names even when stripped.

All of the function names in the stack trace are mangled C++ ones, but that
shouldn't be too much of a problem.

--------------------------------------------------------------------------------
b8f4f50faa | ennewalker | 2009-01-18 05:11:16 +0000

[2514205] [2484157] Reverting my r7976 change to travel code that broke travel 
that routed through other levels.  (Sorry!)

--------------------------------------------------------------------------------
829e64f681 | dolorous | 2009-01-18 04:56:58 +0000

Clean up manual explosion routines a bit.

--------------------------------------------------------------------------------
977383e8f5 | ennewalker | 2009-01-18 04:11:43 +0000

[2406286] Fixing inventory overlaying messages.  (Thanks, jpeg!)

--------------------------------------------------------------------------------
b84750cf46 | dolorous | 2009-01-18 02:31:37 +0000

Check for cleansing flame resistance in bolt::nasty_to(), since it's the one 
non-enchantment that may not be nasty to monsters.

--------------------------------------------------------------------------------
24dcf42aa8 | dolorous | 2009-01-18 01:59:10 +0000

Generalize the check for unchivalric attacks via cleansing flame.

--------------------------------------------------------------------------------
26bb11fa44 | dolorous | 2009-01-18 01:38:07 +0000

Fix cleansing flame resistance for neutral monsters.

--------------------------------------------------------------------------------
e558b05033 | zelgadis | 2009-01-18 01:29:33 +0000

Tweaks to make it less likely that command repitition will be cancled when it's 
being used to wizard test Xom acts.

--------------------------------------------------------------------------------
dfb4f758b5 | dolorous | 2009-01-18 01:05:10 +0000

Use the same type for shield_blocks on both the player and monster sides.

--------------------------------------------------------------------------------
d9a793b722 | dolorous | 2009-01-18 00:52:30 +0000

Move cleansing flame (BEAM_HOLY) resistance to the actor interface.

--------------------------------------------------------------------------------
6817824379 | dolorous | 2009-01-18 00:34:22 +0000

Consolidate checks for the player's being undead or a demonspawn into 
player_is_unholy(), a la mons_is_unholy(), and use it where possible.

--------------------------------------------------------------------------------
b5890e8e1f | dolorous | 2009-01-18 00:32:34 +0000

Fix inverted logic.

--------------------------------------------------------------------------------
79979ccfd1 | dolorous | 2009-01-17 22:46:24 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
3e216ff17f | dolorous | 2009-01-17 22:14:39 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
56f6b03480 | dolorous | 2009-01-17 22:08:52 +0000

Tweak the miscast message again.

--------------------------------------------------------------------------------
6290321f3a | ennewalker | 2009-01-17 22:07:13 +0000

Fixing &L vaults not having their tile flavor initialized properly.  In 
particular, non-gate doors would appear as half a gate.

--------------------------------------------------------------------------------
739b54aa92 | ennewalker | 2009-01-17 22:05:36 +0000

Updating options guide for tile_show_items.

--------------------------------------------------------------------------------
c808848b61 | dolorous | 2009-01-17 22:04:55 +0000

Tweak a few monster miscast messages.

--------------------------------------------------------------------------------
8c0880b4a1 | ennewalker | 2009-01-17 22:04:09 +0000

[2508699] Fixing issue where the orb doesn't appear in the tiles inventory.  
Now, tile_show_items only to specify sorting and not which items are shown or 
not.

--------------------------------------------------------------------------------
8d9984e539 | ennewalker | 2009-01-17 21:55:31 +0000

[2483963] Really fix minimap issues after save/reload.

--------------------------------------------------------------------------------
ffc01fc2ab | ennewalker | 2009-01-17 21:46:17 +0000

Remove assert for unhandled mouse button.

--------------------------------------------------------------------------------
621029a73e | dolorous | 2009-01-17 20:42:26 +0000

Fix [2514743]: Control Teleport should set teleport control, not controlled 
flight.

--------------------------------------------------------------------------------
fbbf5107ba | dolorous | 2009-01-17 19:30:47 +0000

Make draining beams use actor::drain_exp() too, and make the necromancy conduct 
for draining consistent between beams and melee attacks.

--------------------------------------------------------------------------------
fcee3b48a9 | dolorous | 2009-01-17 17:45:09 +0000

On second thought, make it 30000.

--------------------------------------------------------------------------------
ff84cd51e1 | dolorous | 2009-01-17 17:43:32 +0000

Decrease maximum piety pool duration to 32000, to keep it from going over the 
16-bit limit.

--------------------------------------------------------------------------------
5019b6d9ab | dolorous | 2009-01-17 17:41:02 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
6a72f1b4a4 | dolorous | 2009-01-17 17:39:51 +0000

Add wording fix.

--------------------------------------------------------------------------------
9494e8204a | j-p-e-g | 2009-01-17 17:38:15 +0000

Remove debugging weight from entry vault. (Another oops!)

--------------------------------------------------------------------------------
9786fe37b5 | j-p-e-g | 2009-01-17 17:36:58 +0000

Fix compilation, whoops!

--------------------------------------------------------------------------------
4cb403f321 | j-p-e-g | 2009-01-17 17:26:46 +0000

* Tweak FAQ as suggested in FR 2472030. * Fix 2515108: stash tracker not being 
initialized at game start. * Fix 2514024: melded armour hindering melee. * Fix 
2512301: =regeneration described as useless for Mummies. * Fix weapon swap 
prompt when untransforming with monsters in view.

--------------------------------------------------------------------------------
7e4d7e95e6 | zelgadis | 2009-01-17 09:44:27 +0000

Fix casting Ball Lightning asserting.  The Ball Lightning spell manually sets 
the "short-lived" duration on the summoned monsters, so it doesn't need to 
supply an abjuration longevity.

--------------------------------------------------------------------------------
c2864252f1 | dolorous | 2009-01-17 09:16:56 +0000

Adjust Zin's donation routines to only take half your money at once, to 
preserve the piety pool when it would cause an overflow, and to increase the 
maximum value such that donations won't be lost in a normal game. I'm not sure 
what upper limit to set, especially considering that this is supposed to 
support DOS and possibly 16-bit values, so, seeing as durations are signed 
ints, I've set it to 32767, which you can only get all at once with a donation 
of a little less than 500000 gold.

--------------------------------------------------------------------------------
85b49e8168 | zelgadis | 2009-01-17 09:02:59 +0000

Don't restore the old value of a beam's "seen" field after firing a tracer, 
since determining if the player will see the beam might be one of the reasons 
the tracer is being fired.  Fixes bug #2515082.

--------------------------------------------------------------------------------
db93fadd50 | dolorous | 2009-01-17 08:31:54 +0000

Tweak monster draining message to be consistent with other messages, and also 
to avoid mentioning the attacker's name in case there is no attacker.

--------------------------------------------------------------------------------
38a7bcfc4f | zelgadis | 2009-01-17 08:21:24 +0000

When a monster is given an ME_ALERT event concerning it's current foe, update 
the monster's target to the foe's new position.
A few more assertions about a monster's target during behaviour_event() and
_handle_behaviour().

--------------------------------------------------------------------------------
6643dbc4e8 | zelgadis | 2009-01-17 08:18:56 +0000

In arena mode, if a monster is summoned against a specific foe then alert the 
monster the foe's presence and location, rather than using ME_EVAL.

--------------------------------------------------------------------------------
99a78d22c9 | dolorous | 2009-01-17 08:17:14 +0000

Move experience draining for players and monsters to the actor interface, and 
use it in necromancy miscasts that drain experience.

--------------------------------------------------------------------------------
750a8a1633 | dolorous | 2009-01-17 06:23:19 +0000

Fix stabbing check for petrifying monsters.

--------------------------------------------------------------------------------
39993ad45e | zelgadis | 2009-01-17 05:46:58 +0000

Fix torment_player() crashing when Xom was the source of the torment.

--------------------------------------------------------------------------------
aab81bbb1a | zelgadis | 2009-01-17 05:45:32 +0000

Fix bug #2512419: game crashing when there isn't any room to place god-sent 
monsters.

--------------------------------------------------------------------------------
8c7fce6973 | zelgadis | 2009-01-17 05:20:10 +0000

Fix bug #2512403: dancing weapons sent by Beogh vengeance giving item warning 
messages.

--------------------------------------------------------------------------------
3b900a8c8c | zelgadis | 2009-01-17 05:19:41 +0000

Fix Tukima's Dance crashing if the player is holding no weapon.

--------------------------------------------------------------------------------
94b43ee8dc | dolorous | 2009-01-17 05:14:32 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
12e8a89223 | dolorous | 2009-01-17 05:01:24 +0000

Fix information leak about monster damage levels for monsters with no damage 
messages in the "V" screen.

--------------------------------------------------------------------------------
7ea8464463 | zelgadis | 2009-01-17 04:26:38 +0000

Fix the 'V' command crashing.

--------------------------------------------------------------------------------
4598d26f55 | dolorous | 2009-01-17 04:11:44 +0000

Increase durations of Zin's Divine Stamina and Elyvilon's Divine Vigour a bit.

--------------------------------------------------------------------------------
5adcae973f | dolorous | 2009-01-17 01:41:04 +0000

After some thought, remove the check for evil potions for now, since it's 
effectively never used.

--------------------------------------------------------------------------------
2e78cbca95 | dolorous | 2009-01-17 01:38:18 +0000

Add missing bits of good monsters vs. evil items (oops).

--------------------------------------------------------------------------------
71873b25d2 | dolorous | 2009-01-17 01:37:13 +0000

Comment fixes.

--------------------------------------------------------------------------------
db13a5a4d6 | dolorous | 2009-01-17 01:35:26 +0000

Generalize checks for good monsters' picking up evil items, and extend them to 
scrolls and potions (scrolls of summoning and blood potions are evil, even if 
only vampires can currently use the latter).

--------------------------------------------------------------------------------
a5cf40b6a0 | dolorous | 2009-01-17 01:20:43 +0000

And fix it properly for monsters.

--------------------------------------------------------------------------------
1b5f70fc81 | dolorous | 2009-01-17 01:17:44 +0000

Anger abominations created via scrolls of summoning after the initial summoning 
message.

--------------------------------------------------------------------------------
a226812664 | dolorous | 2009-01-17 00:44:25 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
938d297d2b | dolorous | 2009-01-17 00:41:44 +0000

Add an unchivalric attack type for petrifying monsters.

--------------------------------------------------------------------------------
8067633855 | dolorous | 2009-01-17 00:17:57 +0000

Clean up the previous monster miscast messages a bit.

--------------------------------------------------------------------------------
9c353ccfad | dolorous | 2009-01-17 00:13:37 +0000

Add more monster miscast messages.

--------------------------------------------------------------------------------
9a263e903f | dolorous | 2009-01-16 23:56:13 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f7eccbd85f | dolorous | 2009-01-16 23:36:57 +0000

Fix [2498711]: In arena mode, mark monsters duplicated by chaos as having 
entered the arena.

--------------------------------------------------------------------------------
7e3641ff78 | dolorous | 2009-01-16 22:41:29 +0000

Fix [2500622]: Xom dislikes some spell types and disciplines for the purpose of 
determining which artefact spellbooks get his name on them, but he doesn't 
dislike any spellbooks or rods (or any items for that matter).

--------------------------------------------------------------------------------
60883cc992 | zelgadis | 2009-01-16 09:02:13 +0000

Fix bug #2511719: never note batty monsters as "(wandering)".

--------------------------------------------------------------------------------
f88d7141b6 | zelgadis | 2009-01-16 07:35:14 +0000

Make sure the "comes into view" monster messages are displayed before the 
monsters uses a special/nearby ability or before it speaks, in addition to 
before it uses a spell.
Ensure that two monsters won't speak to each other if neither is close to the
player.

--------------------------------------------------------------------------------
3c4a609084 | zelgadis | 2009-01-16 07:05:32 +0000

Fix bug #2510110: blood potions coagulating while in a monster's inventory was 
causing crashes.
Get rid of drop_blood_potions_stack() and pick_up_blood_potions_stack(),
replace with the more general merge_blood_potion_stacks() and
merge_item_stacks().

When creating blood potions via debug command you can now specify how many
turns away from coagulating/rotting it should be.

--------------------------------------------------------------------------------
c4968d0089 | dolorous | 2009-01-16 05:52:42 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a6409aab4e | zelgadis | 2009-01-16 02:41:41 +0000

Fix bug #2510205: prevent monsters from using visual speech messages when the 
player can't see them.

--------------------------------------------------------------------------------
b7fba6b11f | zelgadis | 2009-01-16 02:00:13 +0000

Add game option evil_colour, set from the options file variable $evil, and use 
it to colour monster pane entries for when it would be unchivarlic for a 
TSO-ite to attack them.

--------------------------------------------------------------------------------
c5f460f024 | dolorous | 2009-01-15 23:20:44 +0000

Add various beam explosion-related cleanups.  Also, make cleansing flame an 
explosion of BEAM_HOLY around the player instead of an aimable effect.

--------------------------------------------------------------------------------
b845b3611b | haranp | 2009-01-15 15:15:19 +0000

Code cleanup for Xom. Also fixes a few bugs.

--------------------------------------------------------------------------------
698f20f5f3 | haranp | 2009-01-15 14:53:23 +0000

OK, third time's the charm, I hope. Sorry for the mixups.

--------------------------------------------------------------------------------
49ebcf9eeb | haranp | 2009-01-15 14:42:45 +0000

Oops. Really fix it this time.

--------------------------------------------------------------------------------
3e19a2c17e | haranp | 2009-01-15 14:31:48 +0000

Fix [2506229].

--------------------------------------------------------------------------------
2854a6cf54 | zelgadis | 2009-01-15 13:27:43 +0000

res_poison() returns -1 for vulnerability, which evaluates to true, so check 
for res_poison() > 0 instead.

--------------------------------------------------------------------------------
ce85dc60ef | zelgadis | 2009-01-15 10:00:10 +0000

Make Xom be nice 1/2 the time to non-believers (like drawing the Xom card), 
except for those under penance from Xom, whom he's never nice to.

--------------------------------------------------------------------------------
bd0b11ffe6 | zelgadis | 2009-01-15 09:43:11 +0000

Fix game asserting when the player is paralyzed (oops).

--------------------------------------------------------------------------------
1b94af7d48 | j-p-e-g | 2009-01-15 09:21:50 +0000

* Clean up duration handling some more. * Fix Xom confusing unconfusable 
monsters (plants!) - Xom may be Xom but   even he has to follow some rules. * 
Add a message for shortlasting durations when cast since they miss out   on the 
"transformation about to time out" message. * Add Eino's description for 
Death's Door.

--------------------------------------------------------------------------------
6e5f05d27b | zelgadis | 2009-01-15 08:11:00 +0000

Make verbose_monster_pane default to true, and for TSO-ites colour monster pane 
entries magenta if attacking that monster would be unchivalric.

--------------------------------------------------------------------------------
c564056078 | zelgadis | 2009-01-15 08:08:41 +0000

Fix the "unfinished string near" error I was getting for ice_cave_small_04; I 
don't know why I seem to be the only one getting it.

--------------------------------------------------------------------------------
67c6b22b2b | zelgadis | 2009-01-15 04:01:09 +0000

Fix bug #2507343: give brain worms a spell casting message, and make sure any 
"comes into view" delay interruption messages happen before the monster 
spell-casting messages.

--------------------------------------------------------------------------------
7f265db06a | zelgadis | 2009-01-15 02:47:31 +0000

Implement tracer += operator logic.

--------------------------------------------------------------------------------
04dd7f785c | zelgadis | 2009-01-15 01:52:44 +0000

Wield messages for the new launcher egos, and descriptions for all the new 
launcher/ammo egos.
Better explosion message for exploding ammo.

Note that fire/ice/chaos/exploding ammo will always be destroyed upon impact,
rather than falsely saying that increasing its enchantment will increase its
chance of surviving.

--------------------------------------------------------------------------------
6feef3bd8b | ennewalker | 2009-01-15 01:46:47 +0000

Disallowing mouse clicks on force_more messages to help avoid accidental deaths.

--------------------------------------------------------------------------------
2ed4f389c2 | j-p-e-g | 2009-01-14 15:31:00 +0000

* Fix 2477235: Use inscription check when switching back from butchering        
        tool in case it was autoinscribed {!w}. * Make TSO reclaim holy wrath 
weapons an Elyvilon worshipper is   attempting to destroy (flavour only). (FR 
2497133) * Disallow Dissolution outside of the Slime Pits. * Explain 'e' as 
"Drain corpses" for Vampires in the command help.

--------------------------------------------------------------------------------
85e11d2d3c | zelgadis | 2009-01-14 12:00:48 +0000

Implented some ranged brands from FR #2006917 and #1891231: shadow and 
penetration (not phasing) for launchers and shadow, penetration, dispersal, 
exploding, steel and silver for ammo.  Never randomly generated.
If a launcher of venom is used to launch flame or ice ammo then the resulting
bolt will be poisoned, just like poisoned ammo launched from a launcer of flame
or frost.

Put missile beam setup code that's common to monsters and the player in
setup_missile_beam().

Removed mons_thrown_object_destroyed(), thrown_object_destroyed() is now used
for both monsters and the player.

The bolt struct has several new callback fields that can be set to alter the
beam's behaviour; currently only used by the brands implemented in this commit,
but they should be general enough to be used by anything.

The bolt struct has the new field "special_explosion" which can be used to
cause an explosion with flavour and/or damage dice different than the rest of
the beam.

--------------------------------------------------------------------------------
b83cbbcaed | zelgadis | 2009-01-14 04:42:59 +0000

When generating stats on acquirement items, note the percent of artefacts 
created, and for weapons/armour the frequency of the various brands/egos.

--------------------------------------------------------------------------------
92decbef35 | dolorous | 2009-01-14 04:11:36 +0000

Update the manual's description of Artificers.

--------------------------------------------------------------------------------
79136298e9 | haranp | 2009-01-13 22:57:15 +0000

More code cleanups.

--------------------------------------------------------------------------------
c32244f1ca | haranp | 2009-01-13 15:46:45 +0000

Remove atk and def from melee_attack. Rewrite some code to use actor methods 
instead of calling things directly. In theory, attacker_as_monster() and 
defender_as_monster() are hacks; any calls to them that can be replaced by 
calls to actor methods should be. Fix some inconsistencies with monster 
bleeding and summoned creatures. (This should probably go into 
actor::can_bleed().)

--------------------------------------------------------------------------------
d436eeaf8f | haranp | 2009-01-13 12:38:31 +0000

is_orckind() and is_dragonkind() no longer duplicate their arguments.

--------------------------------------------------------------------------------
a09546a8bd | haranp | 2009-01-13 12:24:13 +0000

Dead code removal and minor cleanup on the new monster descriptions.

--------------------------------------------------------------------------------
45dada5074 | zelgadis | 2009-01-13 08:58:46 +0000

Let the shield ego "reflection" be used in item specs.

--------------------------------------------------------------------------------
a3f2067233 | dolorous | 2009-01-13 07:49:45 +0000

Typo fixes.

--------------------------------------------------------------------------------
d8f3a3bf40 | zelgadis | 2009-01-13 07:33:02 +0000

Use fill_out_corpse() to make wizard-created corpse, and allow hydra corpses to 
be given a requested number of heads.

--------------------------------------------------------------------------------
97bdcb5bee | zelgadis | 2009-01-13 07:31:53 +0000

Tiamat should drop a plain draconian corpse, rather than dropping different 
types depending upon what colour she was at death.

--------------------------------------------------------------------------------
75f9186ae5 | zelgadis | 2009-01-13 02:43:04 +0000

FR #2483700: give a better message than "You are not carrying any armour" when 
transformed either your armour is melded into you or if none of the armour 
you're carrying can fit your current form.

--------------------------------------------------------------------------------
86d73e66d5 | zelgadis | 2009-01-13 00:35:52 +0000

Fix bug #2442834: ego blades having no effect when chopping off a hydra's head.

--------------------------------------------------------------------------------
244f45bc06 | zelgadis | 2009-01-13 00:22:32 +0000

Fix bug #2502460: delays causing asserts (oops).
Xom gift monsters are placed immediately, so it's possible for them to get
damaged by the ongoing actions of the player.

--------------------------------------------------------------------------------
3e24519612 | haranp | 2009-01-12 23:00:19 +0000

Try a bit harder not to make unreasonable Swaps.

--------------------------------------------------------------------------------
0af5a8f293 | haranp | 2009-01-12 22:48:46 +0000

Implement Sandblast for monsters. (Parameters might need tuning.) Fixes 
[2497210].

--------------------------------------------------------------------------------
b46063bf89 | haranp | 2009-01-12 22:28:18 +0000

Fix [2497208]: implement Controlled Blink for monsters. For now it's the same 
as Blink. Code cleanups.

--------------------------------------------------------------------------------
d2ba487dec | j-p-e-g | 2009-01-12 21:48:27 +0000

* Add speech for Dissolution, courtesy of David. * Change Nessos stats to that 
of centaur warrior.

--------------------------------------------------------------------------------
d5d34346f4 | j-p-e-g | 2009-01-12 20:34:23 +0000

* Fix non-tile compilation as suggested by Enne. * Don't give half xp when 
pacifying summoned monsters (BR 2501795).

--------------------------------------------------------------------------------
6b3ba00fbb | dolorous | 2009-01-12 16:22:19 +0000

Comment fixes.

--------------------------------------------------------------------------------
8898bc387f | zelgadis | 2009-01-12 10:59:26 +0000

Oops, fix bad messages when Yred grants an undead servant.

--------------------------------------------------------------------------------
af82384c24 | zelgadis | 2009-01-12 09:32:55 +0000

Fix bug #2089989: only place friendly god gifts after the player's turn is 
over, so that any in-progress effects won't hurt them, thus turning them 
hostile and angering the player's god.  Also try to avoid placing god gifts 
(friendly or hostile) in a damaging cloud, and if it's unavoidable and placing 
a friendly god gift there would anger the god then don't place them at all.

--------------------------------------------------------------------------------
53dd513378 | zelgadis | 2009-01-12 09:24:07 +0000

Fix bug #2496766: don't let Geryon use his horn to summon beasts while silenced.

--------------------------------------------------------------------------------
de48f1d83f | j-p-e-g | 2009-01-12 07:10:20 +0000

Add a special description to summoned monsters.
This does introduce a balancing change since AFAIK it was previously
impossible to distinguish between a summoned and a permanent monster.
It's possible that this change leads to players always having to check a
monster's description, in which case we might want to add a line to the
monster's 'x' description, stating "It has been summoned."

--------------------------------------------------------------------------------
a8f3beb7df | j-p-e-g | 2009-01-12 06:54:40 +0000

Apply a patch to improve Artificers (as per FR 2407979) by Happylisk and nendo. 
Thanks!
* Artificers may now start with a rod of striking, but don't get a wand
  of random effects in this case.
* All wands start at 15 charges.
* Spriggan Enchanters no longer get a rod of striking.

--------------------------------------------------------------------------------
8805026338 | ennewalker | 2009-01-12 04:07:31 +0000

[2316330] Add a red film for berserk mode.

--------------------------------------------------------------------------------
6a0126ebdd | ennewalker | 2009-01-12 03:48:04 +0000

[2499489] Allowing mouse clicks for picking up items and for --more-- prompts.

--------------------------------------------------------------------------------
d2e316cecd | zelgadis | 2009-01-12 03:12:54 +0000

Fix bug #2498696: animating corpses which were killed by chaos spawn causing an 
assertion.  (Maybe CrawlStoreValue should do a cast when possible instead of 
asserting in a situation like this?)

--------------------------------------------------------------------------------
ff8b9f6197 | zelgadis | 2009-01-12 03:05:08 +0000

Fix bug #2499021: during arena mode, make monster_random_space() only pick 
spaces inside the arena viewport.  Since rock worms can be teleported into 
non-permanent rock walls, and the entire level outside the arena is filled with 
non-permanent rock walls, this prevents rock worms from being teleported 
outside the arena.

--------------------------------------------------------------------------------
f2dadb170e | ennewalker | 2009-01-11 22:49:25 +0000

[2499508] Left-clicking on the minimap now behaves identically to left-clicking 
on the dungeon (in both travel behavior and shift/ctrl-clicking.)

--------------------------------------------------------------------------------
c189cc37d4 | haranp | 2009-01-11 22:47:30 +0000

Make Flame Tongue have range 1-4. This might be overpowered. [2470382]

--------------------------------------------------------------------------------
10b6e46cd7 | j-p-e-g | 2009-01-11 22:17:24 +0000

* Clean up handling of duration values that trigger expiration warnings   and 
the like. * On '%': add " (expiring)" to durations about to expire. * On '@': 
Prepend "Expiring: " to durations about to expire. * Add a few messages that 
were missing to '@'.
No changes of duration thresholds.

--------------------------------------------------------------------------------
6f27175d3c | j-p-e-g | 2009-01-11 20:00:52 +0000

Rename Transmigration -> Transmutation. Move randart spellbook tiles into 
subfolder /artefact, like for other artefacts.

--------------------------------------------------------------------------------
260284a5ad | ennewalker | 2009-01-11 19:59:41 +0000

[2467406] Improving tiles screen layout.

--------------------------------------------------------------------------------
6ff6324e12 | j-p-e-g | 2009-01-11 17:10:51 +0000

Fix 2496474: Bardings melding into centaurs. Fix 2496520: Quivered weapons 
getting displayed as melded.
Also, summoned monsters can no longer be affected by vampiric draining
(spell or brand, vampire bite was already disallowed).

--------------------------------------------------------------------------------
f6e92f4f5e | j-p-e-g | 2009-01-11 15:08:31 +0000

Update change log.

--------------------------------------------------------------------------------
d90612ecda | j-p-e-g | 2009-01-11 13:50:07 +0000

Extend on Haran's monster resistance description. Thanks, Haran! :)
Now lists: 
* all resistances on one line, sorted by resistance level.
* susceptibility
* magic immunity
* see/sense invisible
* monster speed
* flying/levitating

An example output:

A fire vortex

A swirling cloud of flame.

It is extremely resistant to fire, very resistant to electricity, and
resistant to poison.
It is susceptible to cold.
It is immune to magical enchantments.
It is fast.
It can levitate.

I also removed all those symbol/quote/etc. checks from the database
lookup. Instead describe_monster() is now called directly, so the
descriptions are now identical when (v)iewing a monster and when
searching the database.

In other news, I removed Eringya's Surprising Bouquet since I doubt
we'll ever get it implemented, disagree balance-wise, and it was 
shamelessly nicked from Pratchett in the first place.
Breaks saves.

--------------------------------------------------------------------------------
6b7d71f720 | dolorous | 2009-01-11 06:04:19 +0000

Add spacing fix.

--------------------------------------------------------------------------------
48723b40bd | dploog | 2009-01-11 05:06:21 +0000

Added Eino's demonic minivaults.

--------------------------------------------------------------------------------
9d048940ef | zelgadis | 2009-01-11 03:36:07 +0000

A limited set of commands are now available to use during arena mode: look 
around ('x'), message history (Control-P) and suspend game (Control-Z).

--------------------------------------------------------------------------------
da22878d26 | zelgadis | 2009-01-11 02:04:06 +0000

Allow for the creation of named zombies and spectral things from named 
non-unique monsters (including polymorphed uniques, so you can get things like 
"A rat shaped Royal Jelly zombie").
Include the name of unique and named monsters in their corpse names, for things
like "The corpse of the Lernaean hydra" or "The human corpse of Sigmund".

--------------------------------------------------------------------------------
c811dc1ac3 | dolorous | 2009-01-11 01:21:53 +0000

Attempt to fix [2498635]: Use memset() instead of bzero().

--------------------------------------------------------------------------------
9b46d25c77 | dolorous | 2009-01-11 01:18:40 +0000

Remove unused variable.

--------------------------------------------------------------------------------
a84ce42148 | ennewalker | 2009-01-11 00:41:28 +0000

Turning back on minimap for labyrinths, but fixing it so that it recenters 
during map rot, as if the forgotten squares were never seen.  (Sorry, jpeg.  If 
you can see it using 'X', I think you should be able to also see it on the 
minimap.)

--------------------------------------------------------------------------------
aece73f445 | haranp | 2009-01-10 23:10:46 +0000

More code cleanups.

--------------------------------------------------------------------------------
a528b7387d | ennewalker | 2009-01-10 23:09:52 +0000

[2495807] Fixing overlay color when walking through green water.

--------------------------------------------------------------------------------
e27e2c60f9 | haranp | 2009-01-10 22:56:06 +0000

General code quality improvements.

--------------------------------------------------------------------------------
3709b00c8a | ennewalker | 2009-01-10 22:29:39 +0000

[2495846] Fixing beams not being drawn fully.

--------------------------------------------------------------------------------
d5bfb320fb | ennewalker | 2009-01-10 22:16:58 +0000

[2498067] Fixing tiles menu graphics.

--------------------------------------------------------------------------------
6ab8bec6b7 | dolorous | 2009-01-10 22:16:26 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
5d63ba55c3 | dolorous | 2009-01-10 22:11:04 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
537160d971 | haranp | 2009-01-10 22:10:44 +0000

Display basic resistance information. I'm putting this in so that there'll be a 
base to work on; of course the format can (and should) be improved. Currently 
it's one line per resistance.

--------------------------------------------------------------------------------
6e22dc58cf | ennewalker | 2009-01-10 21:57:34 +0000

[2498067] Fixing tiles cursor.

--------------------------------------------------------------------------------
7b1cca057e | dolorous | 2009-01-10 21:26:39 +0000

On second thought, remove monsters' glowing on the "distortional energy" 
miscast, as it's not used anywhere else the player glows, and the fact that 
backlight is used on monsters as a substitute for levitation means that 
monsters glow often enough as a result of miscasts.

--------------------------------------------------------------------------------
e6d1a69cf5 | dolorous | 2009-01-10 20:08:18 +0000

Comment fix.

--------------------------------------------------------------------------------
451efda4b2 | dolorous | 2009-01-10 19:58:12 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
aba17ef62e | dolorous | 2009-01-10 19:56:31 +0000

If a monster gets the "flooded with distortional energies" miscast, make it 
glow, since the player will probably glow from the same effect.

--------------------------------------------------------------------------------
255a01cbf6 | dolorous | 2009-01-10 19:29:40 +0000

When doing something after _ouch() in a spell miscast, check for the target's 
being alive first.  Among other things, this fixes an assertion failure when a 
translocation miscast kills a monster, and then attempts to blink the dead 
monster afterward.  Don't bother to check for being alive if the miscast effect 
is player-only, of course, since, once the player's dead, the game's over.

--------------------------------------------------------------------------------
ae4fa94093 | dolorous | 2009-01-10 19:13:28 +0000

Properly generalize the target in the "space warps crazily" translocation 
miscast.

--------------------------------------------------------------------------------
e3e699f45f | dolorous | 2009-01-10 18:32:08 +0000

Typo fix.

--------------------------------------------------------------------------------
551d4117b9 | dolorous | 2009-01-10 18:17:48 +0000

Remove the mention of insects' exoskeletons from "Bone Shards", as insects 
don't leave skeletons anymore.

--------------------------------------------------------------------------------
43cb8a9ef4 | dolorous | 2009-01-10 18:12:14 +0000

Remove the last vestiges of hellfrost.

--------------------------------------------------------------------------------
cea88b54eb | dolorous | 2009-01-10 17:39:31 +0000

Fix [2496040]: Insects shouldn't have skeletons.

--------------------------------------------------------------------------------
ba6c7c772e | ennewalker | 2009-01-10 16:42:11 +0000

Fix tiles compile.

--------------------------------------------------------------------------------
abec3e39f3 | ennewalker | 2009-01-10 16:23:13 +0000

[2495836] Show names for friendly uniques during arena mode.  Also, add a 
tile_tag_pref option.

--------------------------------------------------------------------------------
87616cef0d | j-p-e-g | 2009-01-10 15:53:13 +0000

Add yet another unique courtesy of castamir: Dissolution, sentient jelly. 
Update Credits.

--------------------------------------------------------------------------------
83a1f5bb1c | dshaligram | 2009-01-10 13:27:08 +0000

Conditionalise define_key on ncurses as a token gesture to classic curses 
compatibility.

--------------------------------------------------------------------------------
3a1e34e901 | dshaligram | 2009-01-10 13:21:45 +0000

[2149330] Apply castamir's keypad patch.

--------------------------------------------------------------------------------
56f8c2bfbc | haranp | 2009-01-10 12:51:04 +0000

Code cleanups again, fix Twist.

--------------------------------------------------------------------------------
db5b5c9c29 | j-p-e-g | 2009-01-10 11:42:55 +0000

Apply Eino's patches 2495756 and 2496205. Thanks!

--------------------------------------------------------------------------------
02610e421c | zelgadis | 2009-01-10 10:30:20 +0000

Remove redundant affects_nothing logic.

--------------------------------------------------------------------------------
a1a096727b | zelgadis | 2009-01-10 08:22:52 +0000

When announcing a monster spell in mons_cast_noise():
* Try a bit harder to avoid using "nothing" as the target of the spell.

* Set the target to "DEAD FOE" or "NON-EXISTANT FOE" if the monster is
  attempting to cast a spell at a dead or non-existant foe.

--------------------------------------------------------------------------------
609f9f1570 | zelgadis | 2009-01-10 08:21:07 +0000

Include the end-point of a beam in path_taken.

--------------------------------------------------------------------------------
d43aba40fe | zelgadis | 2009-01-10 05:43:17 +0000

If mons_spells() is given an unknown monster spell then assert with the name of 
the spell and the name of the casting monster, rather than just "Unknown spell".

--------------------------------------------------------------------------------
61022d7cf0 | dolorous | 2009-01-10 05:34:00 +0000

Add another comment fix.

--------------------------------------------------------------------------------
405fab4907 | dolorous | 2009-01-10 04:53:44 +0000

Comment fix.

--------------------------------------------------------------------------------
19790c0c47 | dolorous | 2009-01-10 04:45:52 +0000

Add wording fixes.

--------------------------------------------------------------------------------
0f6f045fcc | dolorous | 2009-01-10 04:12:29 +0000

Tweak the flaming corpse's description.

--------------------------------------------------------------------------------
ec32ceb456 | zelgadis | 2009-01-10 04:02:16 +0000

dgn_place_monster() returns -1 on failure, not 0.

--------------------------------------------------------------------------------
59ab95d726 | zelgadis | 2009-01-10 03:29:00 +0000

When a monster picks up a spear prevent it from being placed in the monster's 
missile slot, even though it's throwable.  Fixes an assertion that was 
happening in mons_throw() by spears of returning.

--------------------------------------------------------------------------------
118bbbd748 | zelgadis | 2009-01-10 02:59:18 +0000

Actually pay attention to the affects_nothing member, so that retraced beams 
won't affect the beam's source, so that weapons of returning won't damage their 
thrower upon returning.

--------------------------------------------------------------------------------
1c094ea492 | zelgadis | 2009-01-10 00:10:57 +0000

Fix the strings for the weapon egos "dragon slaying" and "venom" being smushed 
together, which caused an off-by-one error for all subsequent egos (in addition 
to preventing the dragon slaying and venom egos from being used in monster 
specs).

--------------------------------------------------------------------------------
58b2849832 | j-p-e-g | 2009-01-09 22:21:30 +0000

Deactivate the minimap in labyrinths since it gave away information about 
placement on the map and also looked a bit odd.

--------------------------------------------------------------------------------
beb6500245 | dolorous | 2009-01-09 18:27:36 +0000

Revert r8362; I was misreading the code (oops).

--------------------------------------------------------------------------------
16cb681af8 | dolorous | 2009-01-09 18:07:01 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
395f42d437 | dolorous | 2009-01-09 17:57:14 +0000

Remove redundancy: if a monster resists hellfire, it also resists normal fire.

--------------------------------------------------------------------------------
a85ad1e638 | dolorous | 2009-01-09 17:33:30 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
9a2414cb17 | haranp | 2009-01-09 16:31:08 +0000

Clean up Selective Amnesia. Sif Muna worshippers no longer get autosuccess when 
casting the spell (as opposed to using the god ability.)

--------------------------------------------------------------------------------
0dba454bb6 | dolorous | 2009-01-09 16:12:34 +0000

Fix warning.

--------------------------------------------------------------------------------
b174cc45ae | haranp | 2009-01-09 16:04:47 +0000

Fix spell power caps not being respected (looks like a long-standing bug.) Code 
quality improvements for Twist.

--------------------------------------------------------------------------------
05a13a2e67 | j-p-e-g | 2009-01-09 13:16:57 +0000

Add a few things to the arena documentation.

--------------------------------------------------------------------------------
5c013b3c98 | j-p-e-g | 2009-01-09 12:35:02 +0000

Apply Eino's patches 2494428, 2494591 and 2494703. Thanks!
I had to comment out the line set_random_mon_list in icecave.des because
that gave an error "Too many arguments" and I couldn't find any example
where it was already used.

--------------------------------------------------------------------------------
a4a77c9170 | haranp | 2009-01-09 11:55:01 +0000

Fix [2484866]: affects_nothing was being ignored. Also cleaned up returning 
weapons somewhat; they will no longer overshoot you and then try to hit you on 
the way back.

--------------------------------------------------------------------------------
e6d7e4233b | dolorous | 2009-01-09 05:24:00 +0000

Simplify.

--------------------------------------------------------------------------------
f41659a8e8 | zelgadis | 2009-01-09 05:22:44 +0000

Fix the naming of the royal jelly which has been polymorphed into a hydra.

--------------------------------------------------------------------------------
bf53059242 | dolorous | 2009-01-09 05:04:01 +0000

Add a few more miscast messages.

--------------------------------------------------------------------------------
3061694e09 | zelgadis | 2009-01-09 05:02:50 +0000

Fix mistake in saying how to specify a monster via place.

--------------------------------------------------------------------------------
8767119a72 | zelgadis | 2009-01-09 05:00:22 +0000

First draft of documation for the arena.

--------------------------------------------------------------------------------
ca86c98390 | zelgadis | 2009-01-09 04:18:30 +0000

Change arena item culling to cull oldest items first instead of most boring 
items first.
Removed arena tag "move_spawners", replaced it with "move_summons", which moves
summons to a random location as soon as they're placed.

Added tag "summon_throttle:", which if set prevents summons from being placed
if the summoner has N or more allies.

Make arena monsters ignore test spawners, since spawners are only
pseudo-monsters placed in order to summons real monsters (plus attacking them
is a waste of time since they're unkillable).

Tell the arena when a corpse is placed.

--------------------------------------------------------------------------------
c15760bd3d | zelgadis | 2009-01-09 03:41:34 +0000

Fix the name of Lernaean hydra zombies by adding special handling for named 
hydras; kind of hackish.
During arena mode don't give "You see a puff of smoke" message if the arena
vetoed the placement of a monster, don't brand item stacks, and always
use full names for zombified uniques.

--------------------------------------------------------------------------------
7ea1d488da | dolorous | 2009-01-09 01:51:43 +0000

Minor fix: actor::rot()'s third parameter is an int, not a bool.

--------------------------------------------------------------------------------
cbfad48615 | haranp | 2009-01-09 01:24:48 +0000

Cleaned up Apportation, fixed a few bugs in it too.

--------------------------------------------------------------------------------
d2fccb02f6 | haranp | 2009-01-09 00:43:46 +0000

Prevent unneeded message if Xom flips you from piety == 100 to piety = 100 
[2450763].

--------------------------------------------------------------------------------
a40073ac31 | dolorous | 2009-01-09 00:39:11 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
73c7ba7653 | dolorous | 2009-01-09 00:34:32 +0000

Simplify.

--------------------------------------------------------------------------------
7d52150177 | dolorous | 2009-01-09 00:08:25 +0000

Refix [2484631], in a way that won't require changes to draining or rotting 
attacks: Put the draining attack code back where it was, and instead explicitly 
check for a death-by-banishment when determining whether to skip 
chaos_killed_defender().  Sorry for any confusion.

--------------------------------------------------------------------------------
f25770a09d | dolorous | 2009-01-08 23:34:58 +0000

Clean up rotting routines again.

--------------------------------------------------------------------------------
65fe438926 | dolorous | 2009-01-08 23:01:33 +0000

Clean up the rotting routines a bit.
For the record, rotting attacks from monsters currently have the same 
problem that draining attacks used to, due to monsters::rot()'s directly 
modifying the monster's max HP, as well as its directly calling 
monsters::hurt().

--------------------------------------------------------------------------------
92250a09d1 | j-p-e-g | 2009-01-08 23:00:53 +0000

Fix 2493899: colour tags in inventory after using 'V'.

--------------------------------------------------------------------------------
0d3cdb0135 | dolorous | 2009-01-08 22:37:22 +0000

Fix [2484631]: Move all monster-based experience-draining effects other than 
the setting of special_damage from mons_apply_attack_flavour() to 
mons_perform_attack_rounds(), after the check for chaos effects' banishing the 
defender.
Without this, the latter check, which only determines if a monster is 
alive, can succeed on mortally draining a monster as well as banishing 
it, and the drained monster's death event will never be triggered.  
Among other things, the check is based on the assumption that all attack 
flavors only set special_damage instead of directly damaging and 
possibly killing the monster.  With this, the assumption is now true.

The change in r8336 to allow cleanup of the dead in monsters::hurt() 
even for already dead monsters is necessary for this, as well, since 
draining can still kill the monster via monsters::hurt() before 
special_damage does.

--------------------------------------------------------------------------------
f55a8b913e | j-p-e-g | 2009-01-08 22:09:25 +0000

Implement FR 2489034: Disallow known scrolls of enchant armour/recharging on 
armour that cannot be enchanted or items that cannot be recharged, respectively.

--------------------------------------------------------------------------------
1b7c5aa3c4 | dolorous | 2009-01-08 20:39:46 +0000

If monsters::hurt() is called on a monster that's already dead, but 
cleanup_dead is true, do the cleanup.

--------------------------------------------------------------------------------
04cf662efd | dolorous | 2009-01-08 20:22:09 +0000

Comment fixes.

--------------------------------------------------------------------------------
f21c5f55fa | dolorous | 2009-01-08 20:13:07 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
2af2ded061 | dolorous | 2009-01-08 19:50:38 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f0c54ae2b5 | dolorous | 2009-01-08 17:49:47 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
5c424327fa | haranp | 2009-01-08 15:45:54 +0000

Fix [2494017]: up-left and up-right swapped in open/disarm.

--------------------------------------------------------------------------------
69a474cabd | haranp | 2009-01-08 14:26:19 +0000

Better output in '^' screen.

--------------------------------------------------------------------------------
25c3f06730 | haranp | 2009-01-08 13:41:04 +0000

Print passive god abilities. Fixes [2483099].

--------------------------------------------------------------------------------
25f7b56428 | j-p-e-g | 2009-01-08 13:18:05 +0000

Make Nessos more dangerous (and thus, more interesting). Still needs speech.

--------------------------------------------------------------------------------
8d801a1540 | haranp | 2009-01-08 11:47:24 +0000

Proper radius for Ice Storm tracer. Fixes [2472601].

--------------------------------------------------------------------------------
97a7a86c6b | haranp | 2009-01-08 11:42:53 +0000

Unbreak Fire Storm.

--------------------------------------------------------------------------------
82294d69b4 | haranp | 2009-01-08 11:29:52 +0000

Code cleanup for ignite_poison(), inspired by [2204223].

--------------------------------------------------------------------------------
d247c643b6 | haranp | 2009-01-08 09:41:37 +0000

Some code cleanup, inspired by [2483180].

--------------------------------------------------------------------------------
2f8d39149c | haranp | 2009-01-08 09:03:20 +0000

Fix wording [2492342].

--------------------------------------------------------------------------------
2af58b0346 | zelgadis | 2009-01-08 06:34:25 +0000

Make the position of monster held items (-2, -2) rather than (0, 0), so that 
any valid item in mitm[] which is still at (0, 0) by the time debug_item_scan() 
is called must be buggy.  Also set the link fields of monster held items to 
NON_ITEM + 1 + monster_index, so that it's easy to tell which monster is 
holding any given item; this is used in debug_mons_scan() and 
monsters::pickup() to do some sanity checking of monster inventory.  I've tried 
to thoroughly test this, but there might still be some bugs left.
Breaks savefile compatibility (or, rather, will lead to endless error messages
if you use an old save file).

--------------------------------------------------------------------------------
3fe0cf688e | ennewalker | 2009-01-08 03:50:16 +0000

Clean up tiles code to use the VertBuffer classes.

--------------------------------------------------------------------------------
bac007c913 | dolorous | 2009-01-08 03:18:15 +0000

Add another comment fix.

--------------------------------------------------------------------------------
42ffb2da16 | dolorous | 2009-01-08 03:15:52 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
c14289d9e1 | dolorous | 2009-01-08 01:31:54 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
77db3409a1 | dolorous | 2009-01-08 01:31:04 +0000

Fix default value for the force parameter of place_monster_corpse().

--------------------------------------------------------------------------------
5d406217b4 | dolorous | 2009-01-08 01:28:53 +0000

Comment fix.

--------------------------------------------------------------------------------
df9690ec8d | dolorous | 2009-01-08 01:25:40 +0000

Make sure spectral things can actually levitate (oops).

--------------------------------------------------------------------------------
9bed4331d7 | dolorous | 2009-01-08 01:13:31 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
35883348f6 | dolorous | 2009-01-08 01:13:04 +0000

Make all spectral things levitate again, instead of flying if their base 
monsters flew, since levitation provides immunity from falling into e.g. deep 
water due to being immobilized.  Also, when enslaving a monster's soul, free 
the monster first if it's trapped in a net.

--------------------------------------------------------------------------------
fd94c376a0 | dolorous | 2009-01-08 00:50:21 +0000

Remove the experience check for killing monsters with enslaved souls, since if 
you take their souls, you won't get any experience anyway.
This is also consistent with the behavior if you enslave a monster's 
soul, and then confuse it; if it e.g. steps in deep water and drowns, 
you'll get a normal kill with experience.  Seeing as it's difficult to 
manually move a newly created abomination or spectral thing to the 
nearest habitable ground if it's not there initially, and the potential 
oddities if there is no habitable ground nearby, I'm choosing to 
interpret the behavior as a feature.  As for an in-game explanation, you 
can only bind enslaved souls to you when you're near them, and if 
they're e.g. at the bottom of deep water, they're not near you.

--------------------------------------------------------------------------------
d1fd8adfdb | dolorous | 2009-01-08 00:17:51 +0000

Comment fix.

--------------------------------------------------------------------------------
20bb21380e | dolorous | 2009-01-08 00:09:03 +0000

Expand equip_undead() to handle smart undead as well as stupid undead, and use 
it to equip Yred's enslaved intact souls.  Also, allow undead capable of using 
items and drinking potions to drink potions of healing and heal wounds, since 
undead players can.

--------------------------------------------------------------------------------
a9cbe2e3d8 | dolorous | 2009-01-07 16:17:51 +0000

Fix compilation.

--------------------------------------------------------------------------------
c95c0c4fbc | dolorous | 2009-01-07 16:11:22 +0000

Use Z_NOZOMBIE for Nessos, since he leaves an ordinary centaur corpse, which is 
zombifiable.

--------------------------------------------------------------------------------
b12dd9a0fe | j-p-e-g | 2009-01-07 15:47:02 +0000

Add two more uniques: Nessos and the Lernaean hydra, also implemented by 
castamir.
Nessos still needs to be buffed (he's a normal centaur with fixed
equipment) and is also in need of speech.
The Lernaean hydra shouldn't be generated randomly but instead be placed
via vaults (which will favour spoiled players, but you can't have
everything).

--------------------------------------------------------------------------------
289e554166 | haranp | 2009-01-07 13:20:17 +0000

Comment the previous commit.

--------------------------------------------------------------------------------
06c0cabf87 | haranp | 2009-01-07 13:17:41 +0000

Fix [2483184]: submerged and invisible monsters caused bad messaging for Oz's 
Refrigeration.

--------------------------------------------------------------------------------
37f8faa9ae | haranp | 2009-01-07 12:59:23 +0000

Typo fixes.

--------------------------------------------------------------------------------
c968629bb3 | haranp | 2009-01-07 12:42:02 +0000

Add an explosion message for Mephitic Cloud. bolt now has affect_items = true 
by default. Fixes [2484658].

--------------------------------------------------------------------------------
3e5e7a27aa | haranp | 2009-01-07 12:28:43 +0000

Kenku, like draconians, can fly whenever they levitate (once they hit XL 5.) 
Fixes [2489782].

--------------------------------------------------------------------------------
b0ebf6fe9b | haranp | 2009-01-07 12:19:50 +0000

Fix 2488357: ability beams not getting their ranges set. I chose ranges more or 
less arbitrarily; better suggestions welcome.

--------------------------------------------------------------------------------
7ce4f0c31f | zelgadis | 2009-01-07 12:03:36 +0000

Yet another fix to the arena win/loss/tie logic.
During arena mode don't reserve any of mitm[] when creating new items, and when
mitm[] fills up call arena_cull_items() instead of _cull_items(), since in
arena mode we can cull via how boring/interesting the items are rather than
having to consider game balance and fairness to the player.

Allow the arena to veto monster placement, rather than culling them immediately
after they're placed.

New arena tags:

* "no_bands" prevents band members from being placed.

* "move_spawners" teleports test spawners every turn to spread their
  summons randomly over the arena.

* "ban_glyphs:" lists a set of text glyphs of types of monsters which
  shouldn't be allowed in the arena.

--------------------------------------------------------------------------------
f001432886 | haranp | 2009-01-07 11:44:22 +0000

Fix [2487773]: off-by-one error in determining out of range display.

--------------------------------------------------------------------------------
84b77bc123 | zelgadis | 2009-01-07 10:55:08 +0000

Get "The dead are walking!" message working for the arena.

--------------------------------------------------------------------------------
431c988b90 | zelgadis | 2009-01-07 10:32:19 +0000

Allow monsters to pick up fixed artefacts during arena mode.

--------------------------------------------------------------------------------
20adb5cb37 | zelgadis | 2009-01-07 10:13:00 +0000

Mark another fake-spell message as player only.

--------------------------------------------------------------------------------
55d6cdf0e2 | zelgadis | 2009-01-07 09:21:27 +0000

When MF_HARD_RESET monsters die/reset/etc, destroy the items they hold so they 
don't hang around cluttering up mitm[]
Don't set the values of a cell from mitm[] unless it's sure to be used; using
it as a scratch object or partially setting it up and then bailing clutters up
mitm[] with valid but unused items, preventing those slots from being used.

--------------------------------------------------------------------------------
4eaf99959d | dolorous | 2009-01-07 05:31:14 +0000

Add another weird smell to the miscellaneous names list.

--------------------------------------------------------------------------------
ea6e10c7c3 | dolorous | 2009-01-07 05:28:20 +0000

Add wording fix.

--------------------------------------------------------------------------------
1c2a47e2f1 | dolorous | 2009-01-07 05:22:50 +0000

Add one last minor cosmetic fix.

--------------------------------------------------------------------------------
9abfa46a13 | dolorous | 2009-01-07 04:05:12 +0000

In equip_undead(), don't equip the undead with holy items.

--------------------------------------------------------------------------------
e479108ca3 | ennewalker | 2009-01-07 03:10:33 +0000

Adding a few randart book tiles (and using a few from UNUSED.)

--------------------------------------------------------------------------------
b4e8262a08 | dolorous | 2009-01-07 03:07:22 +0000

Remove the setting of spectral things' attack flavor in their monster entry, as 
it's overridden there by the base monster type and implemented elsewhere in 
downscale_zombie_attack().

--------------------------------------------------------------------------------
5f990db08c | dolorous | 2009-01-07 00:18:15 +0000

Typo fix.

--------------------------------------------------------------------------------
1579f75e63 | zelgadis | 2009-01-06 23:57:13 +0000

Fix bug #2489023: dismiss new-game LOS monster with MF_HARD_RESET to prevent 
them from dropping items rather than making them summoned, so as to avoid any 
"disappears in a puff of smoke" message.  And to avoid anything similar in the 
future make the monster_die() call a silent, wizard-mode one.

--------------------------------------------------------------------------------
dbeaea2cef | dolorous | 2009-01-06 23:05:28 +0000

Implement [2489129]: Remove the maximum HP hack for zombified monsters other 
than spectral things, and make them use the M_NO_REGEN flag instead.  Also, 
make them unable to flee, in order to preserve previous behavior and fix 
[2482719].

--------------------------------------------------------------------------------
6f8607037f | dolorous | 2009-01-06 23:00:46 +0000

Typo fixes.

--------------------------------------------------------------------------------
964b0b1d28 | j-p-e-g | 2009-01-06 22:42:30 +0000

Add speech for the new uniques, courtesy of David.

--------------------------------------------------------------------------------
24634ffe34 | dolorous | 2009-01-06 22:30:19 +0000

Fix [2488346]: If a monster steps on an ammo-shooting trap, only poison/hurt it 
if the ammo actually hit it, and don't display messages like "An [ammo type] 
misses the [monster], but does no damage!".

--------------------------------------------------------------------------------
a2df2a7e98 | j-p-e-g | 2009-01-06 21:20:56 +0000

Greatly improve eating interface, as suggested in FRs 1923273 and 2018733.
When you now press 'e' the following takes place:
1) If you can eat chunks, the game builds a list out of all chunks on
the floor and in your inventory, sorted by age [1], and prompts you to
eat them [2].
2) If none are found, or you decline all of them you get prompted for
non-chunk food items on the floor.
3) Prompt for non-chunk food in your inventory.
4) Open up the food menu of your inventory.

Because of the way lua works, there's currently a problem that in the
early stages (1-3) "q" (now also accepts Escape) will cause to skip
ahead to the next stage rather than leaving the process entirely, which
is of course less than optimal.

I also added two new options
[1] prefer_safe_chunks (defaults to true) which will offer clean chunks
before contaminated ones, even if the latter happens to be older

[2] easy_eat_chunks (defaults to false) which causes the prompting to be
skipped for safe (i.e. clean) chunks, so you will automatically eat the 
oldest chunk that applies. This is ignored for undead characters.

I also got rid of the outdated safechnk.lua and chnkdata.lua seeing how
chunk effects are no longer spoily information.

Added a new wizmode command: Ctrl-H, which allows you to set your
character's hunger state. (Hopefully this will make Vampire testing
easier.)

Also fix 2488374: "Controlled Flight being named upon levitation even if
its type is already known.

--------------------------------------------------------------------------------
ef970c20a9 | dolorous | 2009-01-06 21:14:33 +0000

Add the last of the apostrophe-related fixes.  Words that end in "x" will now 
get proper "'s" endings; simple_monster_message() and simple_god_message() will 
now replace all "s's" with "'s" (there's no need to worry about the "its" rule 
here, since invisible monsters are excluded from the former, and no gods are 
named "It" or are invisible with regard to the latter); and the tutorial will 
now generically apostrophize the one god name it has (since doing the 
aforementioned replacement would take too long on the tutorial text).  The high 
score message still appends "'s" unconditionally to user names, but they may 
not be English, so that seems okay to me.

--------------------------------------------------------------------------------
7f97bf0e03 | dolorous | 2009-01-06 21:05:35 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
09a1c70aa4 | dolorous | 2009-01-06 20:44:37 +0000

Simplify.

--------------------------------------------------------------------------------
30dd4b88f2 | dolorous | 2009-01-06 19:31:41 +0000

Revert previous change, as setting the beam range to -2 is an intentional bug 
trap.

--------------------------------------------------------------------------------
bf816a1e29 | dolorous | 2009-01-06 19:21:12 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
25dbd02e31 | dolorous | 2009-01-06 19:15:56 +0000

Add one more apostrophe-related fix.

--------------------------------------------------------------------------------
7d8f213e50 | dolorous | 2009-01-06 19:08:10 +0000

Properly use apostrophise() in a few more places.

--------------------------------------------------------------------------------
d717830fb8 | dolorous | 2009-01-06 18:27:18 +0000

Attempt to fix [2488357] by fixing the default uninitialized beam range. It was 
being set to -2, but the code was checking for -1.

--------------------------------------------------------------------------------
ea3628b9ef | dolorous | 2009-01-06 18:24:44 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
05073278bb | dolorous | 2009-01-06 17:01:12 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
6fd898e221 | dolorous | 2009-01-06 16:59:23 +0000

Make name_zombified_unique() return a bool to indicate whether it succeeded.

--------------------------------------------------------------------------------
58ac4b5e85 | dolorous | 2009-01-06 16:47:42 +0000

Consolidate the routines for naming zombified uniques.

--------------------------------------------------------------------------------
097c7f86ad | dolorous | 2009-01-06 16:25:23 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
0b83e4380f | zelgadis | 2009-01-06 10:27:55 +0000

Get the arena tied-round and giant spore logic working again, partially by 
making self-initiated explosions happen directly in 
melee_attack::mons_self_destructs() and by calling arena_monster_died() after 
the spore has exploded instead of before.

--------------------------------------------------------------------------------
f739b7d8bb | zelgadis | 2009-01-06 08:53:11 +0000

Slightly improved handling of ties and suicidal giant spores, plus more sanity 
checking.

--------------------------------------------------------------------------------
1b3ea6aede | dolorous | 2009-01-06 06:27:38 +0000

Add yet another comment fix.

--------------------------------------------------------------------------------
c0137fb345 | dolorous | 2009-01-06 06:14:33 +0000

Add another comment fix.

--------------------------------------------------------------------------------
8d65d92c6a | dolorous | 2009-01-06 06:04:52 +0000

Comment fixes.

--------------------------------------------------------------------------------
1c3aa73078 | zelgadis | 2009-01-06 05:44:05 +0000

Consider a round a tie if there aren't any monsters at all left at the end of a 
turn.  Unless one of the monster involved was a giant spore or ball lightning, 
in which case if the explosion caused the death of the final monster then the 
exploder is considered to be the winner (with "giant spore v giant spore" the 
first to explode is the winner).
Figure out if a fight is still ongoing by doing book-keeping on how many
members of each faction is alive, rather than sweeping through menv[] after
every turn looking for living monsters.

--------------------------------------------------------------------------------
3c02f75ffc | dolorous | 2009-01-06 05:18:24 +0000

Typo fix.

--------------------------------------------------------------------------------
9443fbbfd4 | zelgadis | 2009-01-06 04:33:03 +0000

Don't use the random_uselessness() miscast effect during arena mode.
If a melee miscast kills the attacker don't let it get any more hits in.

--------------------------------------------------------------------------------
013fcc5c55 | dolorous | 2009-01-06 04:19:42 +0000

Fix spacing of new miscast messages.

--------------------------------------------------------------------------------
d5bf4ca8ce | dolorous | 2009-01-06 04:00:11 +0000

Add a few more monster miscast messages.

--------------------------------------------------------------------------------
1c21e60921 | dolorous | 2009-01-06 03:23:27 +0000

Fix potential assertion when doing an ice miscast in arena mode (e.g. 20 chaos 
spawns vs. 20 glowing shapeshifters), by using the target parameter properly.

--------------------------------------------------------------------------------
eb9ac5f3b8 | zelgadis | 2009-01-06 03:04:53 +0000

Make all the starting equipment of arena monsters fully identified, plus 
randomize the colour of their potions and scrolls so as to not leak any info to 
the player.
During arena mode don't display the pluses, curse status or glowing/runed/etc
status of items.

Don't learn-through-observation the identities of potions/wands/etc during
arena mode.

--------------------------------------------------------------------------------
dd0eb9eb3a | dolorous | 2009-01-06 01:39:27 +0000

Document the "-MR" status in the manual.

--------------------------------------------------------------------------------
b047730f0c | zelgadis | 2009-01-06 01:37:30 +0000

In arena mode, make mons_friendly() and mons_wont_attack() always return false, 
with mons_friendly_real() and monst_wont_attack_real() having the old behaviour 
of ignoring arena mode.  Remove all special casing of "mons_friendly(mon) && 
!crawl_state.arena", instead using mons_friendly_real() and 
mons_wont_attack_real() in the monster code which distinguishes friend from 
foe.  Might be a bit buggy.
Make Zot traps affect all monsters in arena mode, and never the player.

--------------------------------------------------------------------------------
d91b7c79b3 | ennewalker | 2009-01-06 01:24:14 +0000

Support colorkey entry in indexed palettes so indexed PNGs get loaded with 
transparency properly.

--------------------------------------------------------------------------------
b81690b056 | dolorous | 2009-01-06 00:42:49 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
98b0b18cad | dolorous | 2009-01-05 18:42:02 +0000

Consistently set weights for monsters that leave corpses of different types 
(mostly uniques).  This doesn't affect whether they leave corpses.

--------------------------------------------------------------------------------
6c0c787bc9 | dolorous | 2009-01-05 18:30:32 +0000

Use Z_NOZOMBIE for Sonja, Prince Ribbit, and Ilsuiw, as with other uniques.  
Note that this won't make them un-zombifiable, as they'll leave ordinary 
kobold, human, and merfolk corpses, which are zombifiable.

--------------------------------------------------------------------------------
84ececa04c | dolorous | 2009-01-05 16:21:10 +0000

Add another comment fix.

--------------------------------------------------------------------------------
5b6b2876bd | dolorous | 2009-01-05 16:20:27 +0000

Tweak comment.

--------------------------------------------------------------------------------
df465b19a7 | dolorous | 2009-01-05 16:14:17 +0000

Increase the chance of Yred's granting you undead servants by 5%.  Since 
zombified monsters can no longer use stairs, those servants that can are that 
much more important.

--------------------------------------------------------------------------------
ce93717dde | dolorous | 2009-01-05 16:09:57 +0000

Add comment.

--------------------------------------------------------------------------------
1de6a5afbe | j-p-e-g | 2009-01-05 13:41:59 +0000

Reorder monster tiles in dc-mon.txt. Add Ilsuiw tiles (mermaid with green hair).

--------------------------------------------------------------------------------
f03762a310 | j-p-e-g | 2009-01-05 11:58:41 +0000

Remove the BUILD_REVISION define which was apparently never used, and directly 
use svn_revision in the version output. Also add 0.5 version highlights, while 
I was at it.

--------------------------------------------------------------------------------
5ed69dea25 | zelgadis | 2009-01-05 11:03:50 +0000

Make all worms have no skeleton.

--------------------------------------------------------------------------------
547cea4f19 | zelgadis | 2009-01-05 10:50:38 +0000

The arena tag "real_summons" causes summoned monsters to be turned real as soon 
as they're placed, allowing them to drop items and corpses and protecting them 
from abjuration and timing out.  (Still doesn't let summoned monster be created 
with throwing nets, though)
The arena tag "no_chain_summons" strips summoning spells from summoned monsters
(even in conjunction with "real_summons"), while not stripping such spells from
the original arena monsters.  (Though for some reason it doesn't prevent
summoned Lom Lobon from summoning ball lightning)

--------------------------------------------------------------------------------
f68c2c0bdf | zelgadis | 2009-01-05 10:02:51 +0000

monsters::pickup_item() treats friendlies no differently than hostiles during 
arena mode.

--------------------------------------------------------------------------------
22c92033c0 | dshaligram | 2009-01-05 09:47:37 +0000

Place arena factions in different order on alternating rounds to prevent one 
team from getting the first move advantage on all rounds.

--------------------------------------------------------------------------------
739361a8ab | zelgadis | 2009-01-05 08:41:22 +0000

Allow for ESC clearing --more-- until you get control back to work for resting 
and other delays.

--------------------------------------------------------------------------------
4180d6f661 | zelgadis | 2009-01-05 08:02:07 +0000

Fix MONS_HELL_KNIGHT being considered an invalid monster class.

--------------------------------------------------------------------------------
b04080e0cc | zelgadis | 2009-01-05 07:42:35 +0000

In monster_die(), place cloud of smoke after the monster has its chance to give 
a death speech.

--------------------------------------------------------------------------------
464c6c2079 | zelgadis | 2009-01-05 07:25:56 +0000

Oops, forgot to special-case "@says@ @to_foe@".

--------------------------------------------------------------------------------
bc0ee393e8 | dolorous | 2009-01-05 07:09:53 +0000

Comment fixes.

--------------------------------------------------------------------------------
cfc5e8cefc | zelgadis | 2009-01-05 06:59:32 +0000

Generalize the mechanism for Boris' death message, so that any monster can 
potentially have a death message (or a message for when the monster is banished 
or a summon runs out of time).

--------------------------------------------------------------------------------
dc942d2989 | zelgadis | 2009-01-05 06:45:19 +0000

Oops, forgot to remove "@to_foe@" and "@at_foe@" when the target of the monster 
message is the player.
When ENCH_ABJ times out and a new ENCH_ABJ is put back in before calling
monster_die(), set it's duration to -1 so that monster_die() can tell that the
monster "died" from being abjured or having its time run out.

--------------------------------------------------------------------------------
bd2206a5ad | zelgadis | 2009-01-05 06:43:24 +0000

Allow wizards to turn uniques into summons.

--------------------------------------------------------------------------------
5bca164f9d | dolorous | 2009-01-05 05:57:04 +0000

Add spacing fix.

--------------------------------------------------------------------------------
27bc7176af | zelgadis | 2009-01-05 04:57:15 +0000

Determine if an orc is an unbeliever when it's generated, and use an orc's god 
field to determine whether to use a believer speech or an unbeliever speech. 
This prevents orc priests from using unbeliever speech, and has the side 
benefit of preventing other orcs from flip-flopping on whether they believe.
If a band leader is a priest then make all band members have the same god (so
that Saint Roka won't have any unbelievers among his entourage).

--------------------------------------------------------------------------------
dd28fe417e | ennewalker | 2009-01-05 04:35:50 +0000

Fixing warning in non-debug mode.

--------------------------------------------------------------------------------
b89e0d55ff | zelgadis | 2009-01-05 03:29:46 +0000

For the purposes of spell messages, self-aimed invisible beams aren't 
considered to be targeted, to prevent lots of "The monster gestures at itself" 
messages.

--------------------------------------------------------------------------------
a1daed8d59 | zelgadis | 2009-01-05 03:28:21 +0000

Self targeted visible beams are seen, even though they don't leave a visible 
path.
Self targeted beams have a "path" consisting soley of the source square.

path_taken() is reset at the start of polt::fire()

--------------------------------------------------------------------------------
b681a24f5e | zelgadis | 2009-01-05 03:10:08 +0000

Oops, I'd made cycle_random cycle through uniques instead of through 
place-appropraite monsters.
Tags like "no_immobile" now apply to random_uniques

--------------------------------------------------------------------------------
f4a3ad5b61 | zelgadis | 2009-01-05 02:31:06 +0000

Fix Boris sometimes dying with foe == MHITNOT, and thus having no foe to which 
to address his death speech.

--------------------------------------------------------------------------------
cae8554b62 | ennewalker | 2009-01-05 02:19:21 +0000

Fixing floating exclusion areas in 'X' mode.

--------------------------------------------------------------------------------
dfbb2ae3ab | zelgadis | 2009-01-05 02:10:44 +0000

Allow monster speech to be directed at other monsters, as well as at the player.

--------------------------------------------------------------------------------
59ceaadc7d | zelgadis | 2009-01-05 02:09:30 +0000

During arena mode, the Cantrip spell should only use buff messages, so none of 
the messages are directed at the player.

--------------------------------------------------------------------------------
1560fcf13b | ennewalker | 2009-01-05 02:09:23 +0000

Setting temporary tiles for new uniques (and adding a real tile for Prince 
Ribbit.) Also, auto-excluding Roxanne.

--------------------------------------------------------------------------------
6cdd5e7f21 | ennewalker | 2009-01-05 01:30:25 +0000

Removing a vestigial debug printf.  Oops.

--------------------------------------------------------------------------------
e92999f120 | ennewalker | 2009-01-05 01:26:53 +0000

Adding SVN revision number (and build date) into .sav files.

--------------------------------------------------------------------------------
5f0ddf6624 | j-p-e-g | 2009-01-04 22:58:18 +0000

Fix monspeak error. Update change log once again.

--------------------------------------------------------------------------------
5305c84eea | ennewalker | 2009-01-04 22:48:42 +0000

Setting all .h/.cc files in source to have a consistent keyword propset.

--------------------------------------------------------------------------------
db6a1af169 | ennewalker | 2009-01-04 22:37:05 +0000

Adding REVISION() macro to all source files.

--------------------------------------------------------------------------------
43780c7ebd | zelgadis | 2009-01-04 22:34:23 +0000

When dumping arena messages to the results file, prefix talk messages with 
"TALK: " and sound messages with "SOUND: ".
The arena tag "names" can be used to give random names to all non-unique
monsters.

The arena tag "random_uniques" can be used to make Shadow Creatures summon
uniques instead of non-unqiues.

--------------------------------------------------------------------------------
7bf5e13211 | dolorous | 2009-01-04 22:05:33 +0000

Mark shapeshifters as not having skeletons, as other monsters that can 
intrinsically change form don't have them.

--------------------------------------------------------------------------------
cd32b91808 | ennewalker | 2009-01-04 21:52:11 +0000

Fixing incorrect properties on new file version.cc.

--------------------------------------------------------------------------------
7cc832b8f9 | ennewalker | 2009-01-04 21:50:38 +0000

Addition of REVISION() macro for tracking SVN revision.

--------------------------------------------------------------------------------
78157d2c33 | dolorous | 2009-01-04 21:39:07 +0000

Comment fix.

--------------------------------------------------------------------------------
c0ee7d9db0 | dolorous | 2009-01-04 21:38:27 +0000

Tweak message when you hear a buggy beam explosion.  (There's no "clapping" in 
that particular koan.)

--------------------------------------------------------------------------------
1908e43b6b | dolorous | 2009-01-04 21:28:38 +0000

Add one last spacing fix.

--------------------------------------------------------------------------------
83b83d1ae9 | dolorous | 2009-01-04 20:58:54 +0000

Add more wording tweaks.

--------------------------------------------------------------------------------
5f3eecdecf | dolorous | 2009-01-04 20:55:02 +0000

Tweak wording.

--------------------------------------------------------------------------------
e828bafa67 | j-p-e-g | 2009-01-04 20:50:21 +0000

Introduce a number of new uniques taken from a patch by castamir. These are: * 
Roxanne (statue spellcaster) * Sonja (Kobold assassin) * Eustachio (human 
summoner, was: Francisco) * Azrael (efreet, was: Abdul) * Ilsuiw (Merfolk witch 
* Prince Ribbit (blink frog prince) * Nergalle (orc sorceress) * Saint Roka 
(orc priest of Beogh)
Tweaked make_book_theme_randart() to allow for one forced spell and
owner's name. Used to occasionally give Roxanne a randart book containing 
Statue Form. (Was: always book of earth)

--------------------------------------------------------------------------------
07828b7852 | ennewalker | 2009-01-04 20:29:17 +0000

Small fix to the tile_convert utility to allow PNGs to be loaded too.

--------------------------------------------------------------------------------
40829b7538 | dolorous | 2009-01-04 18:16:04 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
50956115d5 | dolorous | 2009-01-04 16:45:22 +0000

Add a few more corpse and zombie-related cleanups.  Swamp worms now leave 
zombifiable contaminated corpses, for consistency with the other worms.  Also, 
quicksilver and iron dragons now have weight, so they now leave corpses in 
addition to their already being zombifiable.

--------------------------------------------------------------------------------
2ca6fdc595 | dolorous | 2009-01-04 16:37:55 +0000

Disallow moth of wrath zombies, since, as with boggarts, they're weak in terms 
of HD, and their signature attack doesn't work when they're zombified.

--------------------------------------------------------------------------------
5fb35b48dd | ennewalker | 2009-01-04 15:07:33 +0000

[2334374] Explicitly don't handle a number of state keys (numlock, capslock, 
meta keys, Alt Gr).  I'm hoping that this will fix the AltGr wizard key issue.

--------------------------------------------------------------------------------
21b9fb7a4e | j-p-e-g | 2009-01-04 12:43:46 +0000

In preparation of the new uniques, decouple unique generation from their 
definition order in enum.h.

--------------------------------------------------------------------------------
67c6a7edc9 | dolorous | 2009-01-04 06:57:34 +0000

Disallow boggart zombies, as boggarts have a weight of 0, are weak in terms of 
HD, and their signature casting of Shadow Creatures won't be available to 
zombies.

--------------------------------------------------------------------------------
cdcf380b7b | ennewalker | 2009-01-04 06:10:04 +0000

[2424512] Fixing pink square appearing at random in the message window.  On a 
related note, making more variables int instead of unsigned int where it made 
sense and fixing a number of int/unsigned int comparison warnings.

--------------------------------------------------------------------------------
8079104c39 | ennewalker | 2009-01-04 06:05:54 +0000

Fixing compilation warnings.

--------------------------------------------------------------------------------
68e4a13020 | dshaligram | 2009-01-04 05:59:04 +0000

Move arena place setting to take effect before monsters are generated so that 
the "random" monster spec produces the right monsters.

--------------------------------------------------------------------------------
f56a2f7730 | dshaligram | 2009-01-04 05:42:35 +0000

[2484833] Fix being unable to generate multiple random monsters for arena.

--------------------------------------------------------------------------------
f7fb0796e6 | dolorous | 2009-01-04 05:34:32 +0000

For consistency with the other bears, give black bears Z_BIG instead of Z_SMALL.

--------------------------------------------------------------------------------
ead5290e94 | dolorous | 2009-01-04 03:55:04 +0000

Increase probability of non-decay-based skeleton drops from 25% to 33%. This is 
the inverse of the chance of hide drops, and considering that corpse drops are 
required first and don't always occur, the actual probability is less.

--------------------------------------------------------------------------------
27c7ad7498 | dolorous | 2009-01-04 03:45:52 +0000

Fix inverted logic.

--------------------------------------------------------------------------------
a7c35a2ccb | dolorous | 2009-01-04 02:09:43 +0000

After some thought, remove flaming corpses' vulnerability to cold, as other 
sticky flame-using monsters, e.g. mottled dragons, don't have it.

--------------------------------------------------------------------------------
2b7c327174 | dolorous | 2009-01-04 02:05:21 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
28867342aa | dolorous | 2009-01-04 01:52:47 +0000

Add another spacing fix.

--------------------------------------------------------------------------------
e99b682e24 | dolorous | 2009-01-04 01:50:13 +0000

Add spacing fix.

--------------------------------------------------------------------------------
7b3ff0858f | j-p-e-g | 2009-01-04 00:43:53 +0000

Add the old misc_book tile to the UNUSED tiles.

--------------------------------------------------------------------------------
20b028d2c3 | j-p-e-g | 2009-01-03 23:19:30 +0000

FR 2479384: Mention ammunition and enchantment limits in ?EW descriptions.

--------------------------------------------------------------------------------
97c06946c9 | ennewalker | 2009-01-03 23:03:35 +0000

Properly handle the window being closed (by saving).  Also, reattaching 
stdout/stderr on Windows.

--------------------------------------------------------------------------------
708a45a49c | dolorous | 2009-01-03 22:51:21 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
e9fd95f6c3 | zelgadis | 2009-01-03 22:35:28 +0000

Add ASSERT(!crawl_state.arena) to a number of places.

--------------------------------------------------------------------------------
bf2a59fd76 | dolorous | 2009-01-03 21:57:12 +0000

Add missing tension check for one of Xom's friendly summoning routines.

--------------------------------------------------------------------------------
d0e164c212 | ennewalker | 2009-01-03 21:48:04 +0000

[1904556] Fixing duplicate cursor during teleport/blink [2429406] Fixing 
targeting cursor appearing even if mouse hasn't moved.

--------------------------------------------------------------------------------
189cd2fc24 | zelgadis | 2009-01-03 21:31:12 +0000

Only do non-player stuff in handle_time() during arena mode.

--------------------------------------------------------------------------------
211258df01 | zelgadis | 2009-01-03 21:30:15 +0000

When setting a random wandering target, make sure it's in bounds by using 
X_BOUND_2 and Y_BOUND_2 rather than GXM and GYM.
Assert that _handle_behaviour() has set a valid target.

--------------------------------------------------------------------------------
6545de6186 | zelgadis | 2009-01-03 21:22:08 +0000

When disturbing a monster because of BEAM_VISUAL, inform it of the beam's 
source.

--------------------------------------------------------------------------------
3c509c1d18 | dolorous | 2009-01-03 21:03:55 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
75f050a1f4 | ennewalker | 2009-01-03 19:42:10 +0000

[2483963] Fixing minimap not updating properly when reloading a game.

--------------------------------------------------------------------------------
c5e23e5f34 | dolorous | 2009-01-03 19:37:35 +0000

Add one more skeleton change: Allow vampires' bottling blood from corpses to 
leave skeletons 25% of the time, as butchering them does.

--------------------------------------------------------------------------------
f965ee9d68 | j-p-e-g | 2009-01-03 19:12:35 +0000

Fix 2483722: EQ_ALL_ARMOUR not skipping melded armour. Fix 2483708: 
Transformations regarding wielded non-weapons as meldable. Fix 2483528: 
Disallow randart book names like "Sif Muna's Lost Book of                       
                         Boris" Fix 2483332: Silly logic error that only 
offered fully recharged wands              for recharging

--------------------------------------------------------------------------------
a6ba15c18b | ennewalker | 2009-01-03 19:08:20 +0000

[2483338] Fixing tiles crash during 'Detect Items' spell.

--------------------------------------------------------------------------------
8ab0577c78 | ennewalker | 2009-01-03 18:53:47 +0000

[2471488] Fixing crash from randart books.  (We probably need randart book 
tiles anyway...)

--------------------------------------------------------------------------------
41974509cd | dolorous | 2009-01-03 16:13:04 +0000

Make eyes of draining only use their draining ability on the player, since it 
only works on the player anyway.

--------------------------------------------------------------------------------
6ab4b3ada4 | dshaligram | 2009-01-03 14:36:59 +0000

Fix &L being unable to place encompass vaults (oops).

--------------------------------------------------------------------------------
8d58d4f592 | dshaligram | 2009-01-03 10:48:55 +0000

Allow Frederick to polish his monocle now and then.

--------------------------------------------------------------------------------
fb869dee39 | dshaligram | 2009-01-03 10:47:44 +0000

[2468791] Reduce distinction between minivaults and floating vaults. All vaults 
are now handled by _build_vaults.

--------------------------------------------------------------------------------
df23c385f3 | dshaligram | 2009-01-03 10:45:44 +0000

Try to place monsters in a wider radius around the chosen square, fixes arena 
not being able to create large numbers of monsters.

--------------------------------------------------------------------------------
9e2b79426e | zelgadis | 2009-01-03 10:16:30 +0000

In arena mode always announce when a monster submerges or surfaces, make 
submerged monsters visible to the player except for them still showing as a 
disturbance in the water, and prefix the name of submerged monsters with 
"submerged".
Fix simple_monster_message() to always give the message during arena mode.

--------------------------------------------------------------------------------
772d401724 | zelgadis | 2009-01-03 09:07:55 +0000

Generalize the trapdoor spider staying submerged to all lurking monsters.

--------------------------------------------------------------------------------
0bd8f00f48 | zelgadis | 2009-01-03 08:42:03 +0000

The arena now prevents undesired random monsters from being placed by telling 
pick_random_monster() to try something else, rather than by culling them after 
they're placed.
By default the arena prevents zero xp monsters from being randomly placed.  To
allow them to be placed use the spec tag "allow_zero_xp".

Removed the arena spec tag "alert", since it's no longer needed.

Added the arena spec tag "cycle_random", which if set causes
pick_random_monster() to cycle through all the monsters valid for the level_id
chosen as the arena's place.  Produces a greater variety of monsters when
using test spawners.

If arena mode is dumping message to the output file then prefix error messages
with "ERROR: " and diagnostic messages with "DIAG: "

--------------------------------------------------------------------------------
400b9fc504 | zelgadis | 2009-01-03 08:35:04 +0000

Assert in mpr() during arena mode if a channel innapropriate for arena mode is 
used.

--------------------------------------------------------------------------------
64deac3cd2 | dolorous | 2009-01-03 07:00:16 +0000

For now, remove unused holy being class type.

--------------------------------------------------------------------------------
a59ecb47aa | dolorous | 2009-01-03 06:37:43 +0000

Expand the setting of spell_type in mgen_data to include all monster-creating 
spells, and avoid assertion failures caused by setting an abjuration duration 
of 0 and a spell_type to something other than 0.

--------------------------------------------------------------------------------
55e422bf9d | dolorous | 2009-01-03 06:15:49 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
372b7c5803 | dshaligram | 2009-01-03 06:07:13 +0000

Add arena_force_ai option (also settable as "force_ai" or "no_force_ai" in the 
arena spec) that when unset, uses the real game's monster AI, and when set, 
forces monsters to attack.

--------------------------------------------------------------------------------
784b37028a | zelgadis | 2009-01-03 05:21:58 +0000

Added "pool" arena which is entirely made of shallow water, in which land and 
water creatures can fight each other even if neither is amphibious.

--------------------------------------------------------------------------------
ab7669a0a1 | zelgadis | 2009-01-03 03:50:24 +0000

Added option "verbose_monster_pane", which when set to true makes the monster 
pane give more detailed information than just "resting" or "distracted".
I probably put the option in the wrong section in options_guide.txt and
init.txt, but I couldn't figure out the right section for it.

--------------------------------------------------------------------------------
49414c2dc3 | ennewalker | 2009-01-03 03:33:06 +0000

Fixing issue where some randart books had incorrect tiles.

--------------------------------------------------------------------------------
929f13b8fc | dolorous | 2009-01-03 02:57:03 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
eee579a060 | dolorous | 2009-01-03 02:56:36 +0000

Tweak placement of Zin's eyes again.

--------------------------------------------------------------------------------
d1100a0b89 | ennewalker | 2009-01-03 02:45:29 +0000

Fixing cursor and text tag for 'V' menu.

--------------------------------------------------------------------------------
631dff0b53 | ennewalker | 2009-01-03 02:38:47 +0000

Tile menus now support multiple tiles per entry (see MenuEntry::get_tiles).

--------------------------------------------------------------------------------
834b2b5479 | dolorous | 2009-01-03 02:30:57 +0000

Attempt to fix oddity when equipping undead when e.g. an orc warrior dies and 
leaves its corpse and equipment are on the floor, a ghoul then dies and leaves 
its equipment on the same spot, and an attempt is then made to animate the 
dead.  With this change, the orc zombie will be properly equipped.

--------------------------------------------------------------------------------
a9e569676b | dolorous | 2009-01-03 02:11:22 +0000

Fix assertion failure (oops).

--------------------------------------------------------------------------------
10600478b3 | dolorous | 2009-01-03 02:06:39 +0000

Fix warning.

--------------------------------------------------------------------------------
0a9ebf7263 | zelgadis | 2009-01-03 01:24:46 +0000

In monster_grid() check for monster->alive() instead of monster->type != -1, 
since giant spores and ball lightning are no longer left dead while still 
attached to the grid.
When a giant spore or ball lightning explodes, treat the explosion message as
the monster's death message, between the explosion message and the actual
explosion remove it from view and mark it as dead, and after the explosion
don't re-attach it to the grid since it isn't there anymore.

--------------------------------------------------------------------------------
ddbbc16134 | dolorous | 2009-01-03 01:03:14 +0000

Simplify.

--------------------------------------------------------------------------------
daef1e0a3b | zelgadis | 2009-01-03 00:54:59 +0000

Fire an AI_SEE_MONSTER activity interrupt if a non-safe monster un-submerges 
while the player is running, and provide a message if it's a trapdoor spider 
doing it.

--------------------------------------------------------------------------------
316e842f2d | ennewalker | 2009-01-03 00:30:46 +0000

[2481628] Adding tiles for the recognized item list.

--------------------------------------------------------------------------------
8e5c98fdea | zelgadis | 2009-01-03 00:28:09 +0000

When drawing a damaging card, set the beam range to LOS_RADIUS.
Remove unused function hurt_monster().

In monsters::hurt() if, after hurting the monster, hit_points > max_hit_points,
then hurt the monster some more until hit_points == max_hit_points.

Use monsers::hurt() instead of directly descreasing the hit_points member.

--------------------------------------------------------------------------------
229273780d | zelgadis | 2009-01-03 00:22:54 +0000

Make the test spawner monster land prefering amphibious.

--------------------------------------------------------------------------------
4d1ed355a8 | j-p-e-g | 2009-01-03 00:20:30 +0000

Allow tiles in 'V' menu, at least for items - the menu structure can't handle 
monster information (yet?) This means that the two parts (monsters/items) are 
differently formatted but for Tiles this looks much better this way than it did 
before.

--------------------------------------------------------------------------------
3a61889e9e | ennewalker | 2009-01-02 23:36:55 +0000

[2467399] Auto-centering screen on Windows.

--------------------------------------------------------------------------------
291ba43f69 | ennewalker | 2009-01-02 23:29:02 +0000

[2467399] Improving Windows icon.

--------------------------------------------------------------------------------
79abc2a82d | ennewalker | 2009-01-02 23:26:11 +0000

Silencing warnings.

--------------------------------------------------------------------------------
d93ab4e7a4 | dolorous | 2009-01-02 22:18:42 +0000

Fix [2482708]: When searching for equipment in a pile of items in 
_equip_undead(), properly skip over corpses in the pile instead of going into 
an infinite loop.

--------------------------------------------------------------------------------
7485651718 | dolorous | 2009-01-02 22:09:59 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
4aacb73d9e | dshaligram | 2009-01-02 21:42:13 +0000

Fix .des files not using the right brands (sorear).

--------------------------------------------------------------------------------
54ece9142d | dolorous | 2009-01-02 21:41:57 +0000

Add yet one more minor cosmetic fix.

--------------------------------------------------------------------------------
cc083c722f | dolorous | 2009-01-02 21:29:24 +0000

Add one last minor cosmetic fix.

--------------------------------------------------------------------------------
dea64bc901 | dshaligram | 2009-01-02 21:07:55 +0000

Reinstate old arena behaviour of monsters accurately seeking to foes out of LOS.

--------------------------------------------------------------------------------
96d6e4c41d | ennewalker | 2009-01-02 20:58:33 +0000

Silence rltiles warnings.

--------------------------------------------------------------------------------
957edee965 | dshaligram | 2009-01-02 20:56:12 +0000

Discard junk file I accidentally committed.

--------------------------------------------------------------------------------
410c1e9727 | dshaligram | 2009-01-02 20:50:10 +0000

Keep wandering monsters moving in the arena.

--------------------------------------------------------------------------------
5e61cb2529 | dshaligram | 2009-01-02 20:37:59 +0000

Fix arena not placing water monsters correctly, remove monster habitat 
special-casing for "generation" time. Also fix arena "friendlies" not picking 
up items.

--------------------------------------------------------------------------------
78edf358ee | dshaligram | 2009-01-02 20:36:51 +0000

Make monster behaviour in arenas smarter, allow delay:N in arena spec to set 
arena_delay.

--------------------------------------------------------------------------------
17125f2506 | j-p-e-g | 2009-01-02 20:27:50 +0000

Fixed 2481704: Travel stopping for spellcasting monsters without LOS            
    spells behind glass. Fixed 2174517: V giving information about unknown 
items in stashes.

--------------------------------------------------------------------------------
5a1d298413 | dolorous | 2009-01-02 18:47:58 +0000

Simplify.

--------------------------------------------------------------------------------
ab6f215b18 | dolorous | 2009-01-02 18:47:18 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
10e20e9390 | dolorous | 2009-01-02 18:35:10 +0000

Fix inverted logic (oops).

--------------------------------------------------------------------------------
772dae4e1f | dolorous | 2009-01-02 18:29:43 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
99f7bcaeb4 | ennewalker | 2009-01-02 18:00:23 +0000

Miscellaneous arena improvements: items, lua preludes, tiles fixes.

--------------------------------------------------------------------------------
748d46d89b | dolorous | 2009-01-02 17:02:47 +0000

Generalize monsters::can_drink_potion().  First, monsters that don't have at 
least MONUSE_STARTING_EQUIPMENT can't drink them, as they can't use them anyway 
(which covers wraiths; the same check is also done in 
monsters::should_drink_potion()).  Second, skeletal monsters in general can't 
use them, since they require digestion of some type (which covers skeletal 
warriors).  Third, insubstantial monsters can't use them, for the same reason 
(since all insubstantial monsters use, at most, MONUSE_OPEN_DOORS).

--------------------------------------------------------------------------------
39b970fbeb | dolorous | 2009-01-02 16:58:29 +0000

Make smoke demons use MONUSE_OPEN_DOORS instead of MONUSE_WEAPONS_ARMOUR, for 
consistency with all the other low-level insubstantial demons.

--------------------------------------------------------------------------------
c4ff646a2b | dolorous | 2009-01-02 16:56:29 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
d07c0fd21b | dshaligram | 2009-01-02 15:57:03 +0000

Reduce arena end-of-round delay, do arena LOS from current LOS center, not 
center of displayed grid (vgrdc can be different from glosc() if view_lock=no). 
Also fix monster behaviour to seek instead of wander in the arena.

--------------------------------------------------------------------------------
e0ca31828a | haranp | 2009-01-02 15:16:23 +0000

initialize_fire() was setting things in the wrong order. Fixes [2482380].

--------------------------------------------------------------------------------
1fa08a0d8d | haranp | 2009-01-02 13:53:55 +0000

Blowguns can't receive brands apart from speed and protection. Fixes [2482180].

--------------------------------------------------------------------------------
7bf391c9b0 | ennewalker | 2009-01-02 13:49:00 +0000

Fixing arena LOS/env.show issues.  Adding a test spawner monster tile.

--------------------------------------------------------------------------------
654f48b0e2 | haranp | 2009-01-02 13:42:17 +0000

Fix monster blinks not respecting their preferred habitat. Fixes [2482177].

--------------------------------------------------------------------------------
1fa85b4ecc | j-p-e-g | 2009-01-02 11:35:21 +0000

* Move wall tiles into the dc-dngn/wall folder. * Flip downstairs tiles to 
match the upstairs (FR 2479239).

--------------------------------------------------------------------------------
2c46b8a251 | haranp | 2009-01-02 11:20:18 +0000

Factored out bolt tracer variables into tracer_info struct.

--------------------------------------------------------------------------------
145574d7fa | haranp | 2009-01-02 09:21:55 +0000

Fix [2481621]: positive self-targeting enchantments prompted.

--------------------------------------------------------------------------------
99fcce0830 | zelgadis | 2009-01-02 08:51:25 +0000

A place string can be specified via the arena_place tag to control what 
monsters are summoned via the Shadow Creatures spell.
The no_immobile tag can be used to cause summoned immobile monsters to be
immediately culled after they're summoned.

--------------------------------------------------------------------------------
17b0158eef | haranp | 2009-01-02 08:50:37 +0000

Prevent memory corruption.

--------------------------------------------------------------------------------
64c8bcacb7 | zelgadis | 2009-01-02 08:48:31 +0000

Mermaids and sirens shouldn't mesmerise the player during arena mode.

--------------------------------------------------------------------------------
fd9dab19ca | haranp | 2009-01-02 08:41:43 +0000

Fix [2480689]: skeletal warriors and wraiths shouldn't drink.

--------------------------------------------------------------------------------
0b7197080d | zelgadis | 2009-01-02 07:01:58 +0000

monster_die() should place corpses and make summoned corpses disappear in a 
puff of smoke even during arena mode.  (Oops)

--------------------------------------------------------------------------------
fd8d4ccb43 | zelgadis | 2009-01-02 06:53:48 +0000

Make angels and daevas worship TSO.
Give daevas an appropriate message when they smite something.

--------------------------------------------------------------------------------
e5c2d08635 | zelgadis | 2009-01-02 06:39:14 +0000

Don't apply god conducts in monster_die() while in arena mode.  In partiuclar, 
this prevents TSO from smiting the player when the friendly faction kills an 
angel or daeva.
Assert in god_speaks() and did_god_conduct() if called during arena mode.

--------------------------------------------------------------------------------
469f183e63 | ennewalker | 2009-01-02 05:21:54 +0000

Fixes for arena mode in tiles mode.  It runs now, but there are still some 
visual issues (error tiles) because env.show gets updated weirdly in arena mode.
Tangentially related to fixing this, also cleaning up logic in view.cc to use 
grid2show, adding a number of asserts for tiles-related problems, adding error 
tiles for all textures, and fixing some incorrect logic about centering on the 
player instead of vgrdc.

--------------------------------------------------------------------------------
ea12034397 | zelgadis | 2009-01-02 04:49:06 +0000

beem was being setup too early in the _handle_monster_move() loop, causing 
mons_cast() to sometimes be called with an outdated target.

--------------------------------------------------------------------------------
23d661663d | zelgadis | 2009-01-02 03:19:15 +0000

Fix weird trapdoor spider behaviour.

--------------------------------------------------------------------------------
77b120229e | zelgadis | 2009-01-02 02:17:23 +0000

If a monster gestures, throws a visible beam, and the beam misses, say "The 
monster gestures at the target", not "The monster gestures past the target". 
(Oops)

--------------------------------------------------------------------------------
6dc9ca121e | zelgadis | 2009-01-02 01:27:52 +0000

Make the spell message key suffix "gestures" works as documented.
If a targeted spell doesn't exactly hit anything (because the monster was
confused or the target was invisible) then, if appropriate, use the
prepositions "past" or "next to" instead of "at".

If a targeted spell with an invisible beam with a message saying "gestures at"
or "points to" doesn't exactly hit anything, then assume anything near the path
implied by the gesture/pointing is the desired target.

--------------------------------------------------------------------------------
e23d39b2d0 | zelgadis | 2009-01-02 01:22:36 +0000

For tracers don't reset bounces, bounce_pos, reflections, reflector or seen, 
since the caller might be interested in those.

--------------------------------------------------------------------------------
ccced10fd8 | zelgadis | 2009-01-02 01:06:23 +0000

For LOS-free spells and aimed-at-self spells set the range to 0.

--------------------------------------------------------------------------------
27c6ad307d | dolorous | 2009-01-02 00:15:59 +0000

Fix assertion failure when turning a corpse into both a skeleton and chunks.

--------------------------------------------------------------------------------
7a9db35653 | ennewalker | 2009-01-02 00:15:39 +0000

Fixing rltiles build.

--------------------------------------------------------------------------------
151e03aa3b | dolorous | 2009-01-01 23:20:18 +0000

Add various long-standing skeleton changes, to compensate for their 
stairs-related weakness:
* For consistency, skeletons created by vampire draining now have the 
normal duration of 200, instead of 90.  To compensate for this, they are 
left 25% of the time imstead of 75%.

* Skeletons can now be left after butchering corpses, with the same 
chance of 25%, so that vampires don't have an exclusive advantage.

* Monsters that eat corpses (and effectively butcher them) can leave 
skeletons from doing so, with the same chance of 25%.

--------------------------------------------------------------------------------
9bd7a3af19 | dolorous | 2009-01-01 23:01:54 +0000

For flavor, make monsters that eat corpses effectively butcher them first (e.g. 
leave blood from them on the floor if they're fresh).

--------------------------------------------------------------------------------
f9d00d00e2 | zelgadis | 2009-01-01 22:36:23 +0000

Some assertions for behaviour_event().
In mons_place(), don't alert summons to the player's presence during arena
mode.

In monster_grid(), don't do check_awaken() on monsters during arena mode.

--------------------------------------------------------------------------------
e9ad680742 | dolorous | 2009-01-01 22:28:58 +0000

Remove erroneously added code chunk (oops).

--------------------------------------------------------------------------------
c95ef49e8b | dolorous | 2009-01-01 22:23:54 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
6b86fb90d8 | dolorous | 2009-01-01 22:04:03 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
95fe18d3e6 | dolorous | 2009-01-01 22:01:15 +0000

Fix inverted logic (oops).

--------------------------------------------------------------------------------
83ca5514f4 | dolorous | 2009-01-01 21:47:10 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
ca398a84ec | dolorous | 2009-01-01 20:42:35 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
25c9c865c5 | dolorous | 2009-01-01 19:39:53 +0000

Comment fix.

--------------------------------------------------------------------------------
70b9b52063 | dolorous | 2009-01-01 19:28:02 +0000

Add minor message tweak.

--------------------------------------------------------------------------------
0732bcb874 | haranp | 2009-01-01 15:12:44 +0000

Fix [2076940]: swapping to artefacts to butcher corpses could fail.

--------------------------------------------------------------------------------
f347a1fdff | dolorous | 2009-01-01 14:14:48 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f2522c21ce | haranp | 2009-01-01 13:54:23 +0000

Default bolt range to -2 in order to catch bugs.

--------------------------------------------------------------------------------
52a3eb86dd | haranp | 2009-01-01 13:51:27 +0000

Wands now all have range 8, rather than the undefined range they used to have.

--------------------------------------------------------------------------------
4c3ded9257 | haranp | 2009-01-01 13:29:00 +0000

Sandblast now has a range of 1 when not wielding rocks, and a range of 1-2 (50% 
each) when wielding rocks. Fixes [2364044].

--------------------------------------------------------------------------------
06a2793826 | zelgadis | 2009-01-01 10:03:39 +0000

You can add the tag "alert" to the arena spec in order to alert the factions to 
each others presence, even if they aren't in LOS of each other.

--------------------------------------------------------------------------------
e26ee9bec5 | zelgadis | 2009-01-01 07:55:09 +0000

Don't let the player starve to death while observing the arena.
ouch() asserts if called while in arena mode.

--------------------------------------------------------------------------------
d685dc65c3 | zelgadis | 2009-01-01 07:28:10 +0000

Allow arena_delay to be 0, instead of having a minimum of 1.

--------------------------------------------------------------------------------
9988c4ff7b | zelgadis | 2009-01-01 06:16:21 +0000

Set aimed_at_feet to true if monster zaps a wand at itself.

--------------------------------------------------------------------------------
e0ba9cc02b | zelgadis | 2009-01-01 05:13:10 +0000

Add member path_taken to the bolt class, a coord_def vector defining the path 
the beam took.
In mons_cast_noise(), if the spell's target isn't a dead-on hit for anything,
then fire a tracer to figure out who it *looks* like the spell is aimed at.

--------------------------------------------------------------------------------
86dc398a7b | zelgadis | 2009-01-01 04:38:06 +0000

Bug #2025033: To prevent a vault's rock walls from being changed to match the 
walls of the rest of the level in the Vaults, the Crypt and in Dis you can use 
the tag no_wall_fixup

--------------------------------------------------------------------------------
595e6714fd | zelgadis | 2009-01-01 03:50:29 +0000

Bug #2478490: provide casting message for titans doing Lesser Healing.
Also provide a default message for targeted beams.

--------------------------------------------------------------------------------
c24cfde50a | zelgadis | 2009-01-01 02:31:13 +0000

Added arena game options:
* arena_dump_msgs, which if true will dump all mpr()'d messages into
  arena.result

* arena_dump_msgs_all, which will cause arena_dump_msgs to dump all messages,
  not just ones considered "dump worthy"

* arena_list_eq, which if true will cause all items the monsters came
  equipped with to be dumped to arena.result

Also, made arena_delay option settable, so you can do "arena_delay = 0" to make
the simulation zip by.

--------------------------------------------------------------------------------
3f0a535a9d | zelgadis | 2009-01-01 01:30:15 +0000

If the two factions are identical, like "rat v rat", then name one "rat (A)" 
and the other "rat (B)".
Put the monster spec in the arena.result file before the win/loss record.

--------------------------------------------------------------------------------
eb4d97db72 | zelgadis | 2009-01-01 00:01:19 +0000

Fix bug #2478713: do previous command again (`) was taking an additional turn 
during which monsters could act.

--------------------------------------------------------------------------------
2fbcfdf086 | zelgadis | 2008-12-31 23:51:49 +0000

Added the new monster "test spawner", an unkillable, stationary monster which 
does nothing but cast Shadow Creatures over and over.  If there's a randomly 
occuring, hard to reproduce monster bug then run
    crawl -arena "test spawner v test spawner"

and wait for the endless hordes of battling monster to eventually reproduce it.

--------------------------------------------------------------------------------
6e01ad4051 | zelgadis | 2008-12-31 23:41:10 +0000

Fix bug #2477792: caused by recycling the bolt instance "beem" inside     of 
the loop in _handle_monster_move() without reseting it between     iterations; 
now uses a fresh instance on each iteration.  Also     the loop in 
_handle_spell() saves and restores the beem object on     each of its internal 
iterations, just in case any of the called     functions alters it.
Initialize the bolt member affects_items to false.

--------------------------------------------------------------------------------
d752c86b83 | haranp | 2008-12-31 22:55:24 +0000

Fix Evaporate not being an explosion and going through walls (range was 
uninitialized.)

--------------------------------------------------------------------------------
5c4a95d110 | haranp | 2008-12-31 22:24:48 +0000

Range display was always using minimum range. Fixes [2470382], at least 
partially.

--------------------------------------------------------------------------------
fa2d083bd0 | dolorous | 2008-12-31 13:53:04 +0000

Remove redundant setting of the monster's god in mons_place(), since it calls 
_place_monster_aux(), and the latter now handles that.

--------------------------------------------------------------------------------
438834186a | dolorous | 2008-12-31 13:51:11 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
55f5f9eef5 | zelgadis | 2008-12-31 10:08:10 +0000

For god gift monsters have _place_monster_aux() set the monster's god field in 
addition to its MF_GOD_GIFT flag.

--------------------------------------------------------------------------------
2fe9be622f | dshaligram | 2008-12-31 09:07:02 +0000

Allow choosing different arena layouts (patch by sorear).

--------------------------------------------------------------------------------
86d488e3ef | dshaligram | 2008-12-31 08:41:27 +0000

Add arena mode, activated on the command-line by 'crawl -arena "monster v 
monster"' (eg: crawl -arena "Sigmund v Jessica") to let monsters fight each 
other undisturbed by the player. Good to examine monster AI and monster 
behaviour when the player is AWOL.

--------------------------------------------------------------------------------
496a1b4c58 | dolorous | 2008-12-31 06:49:53 +0000

Fix redundant setting of the MF_GOD_GIFT flag when placing a monster.

--------------------------------------------------------------------------------
245cf3acae | dolorous | 2008-12-31 06:49:04 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
8b972e3091 | zelgadis | 2008-12-31 05:20:46 +0000

Grammar fix for slime covered wall.

--------------------------------------------------------------------------------
3a08f4ea63 | dolorous | 2008-12-31 04:39:36 +0000

Simplify.

--------------------------------------------------------------------------------
d348b697e8 | dolorous | 2008-12-31 04:37:30 +0000

Really fix compilation (oops).

--------------------------------------------------------------------------------
078f2b0563 | dolorous | 2008-12-31 04:30:48 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
ff743f4fcf | dolorous | 2008-12-31 04:23:39 +0000

Properly name spectral things made from uniques via Death Channel.

--------------------------------------------------------------------------------
2b0b87df11 | dolorous | 2008-12-31 04:10:52 +0000

Occasionally allow dwarven long swords, since dwarves are above average with 
long blades, and so that the sequence of racial long blades is more even 
(dwarves: falchions and long swords, elves: dwarves' weapons plus scimitars, 
orcs: elves' weapons plus great swords).

--------------------------------------------------------------------------------
173be63334 | dolorous | 2008-12-31 03:59:21 +0000

Make the tests for icy and skeletal monsters in Lee's Rapid Deconstruction more 
generic.

--------------------------------------------------------------------------------
7b01d6eec2 | dolorous | 2008-12-31 03:48:07 +0000

Simplify.

--------------------------------------------------------------------------------
a4ac6194c0 | zelgadis | 2008-12-31 03:24:34 +0000

When adding on a line to a monster description like "It smells", "It is 
incapable of using stairs", etc, put a blank line between it and the main body 
of the description.

--------------------------------------------------------------------------------
0ba12af5e5 | zelgadis | 2008-12-31 02:15:16 +0000

Fix giant orange brain messages crash; was setting a boolean pointer to false 
instead of the boolean that was pointed to.  Why didn't the compiler catch that?

--------------------------------------------------------------------------------
41360b7915 | zelgadis | 2008-12-31 01:58:21 +0000

Inedible chunks of flesh are useless unless you know Sublimation of Blood or 
Simulacrum, and skeletons are useless unless you can animate them or know Bone 
Shards.

--------------------------------------------------------------------------------
dc10636ab5 | zelgadis | 2008-12-31 01:27:38 +0000

Sync up "disappears in a puff of smoke" regex with summoned_poof_msg()

--------------------------------------------------------------------------------
9e7d72f3d9 | zelgadis | 2008-12-31 01:25:03 +0000

Add standard colour variables for message highlighting: $danger, $warning, 
$boring and $item_dmg.

--------------------------------------------------------------------------------
51cf2e590f | zelgadis | 2008-12-31 01:07:33 +0000

drop_filter can now match against the same keywords as menu_colour, minus the 
identification status and chunk/corpse information.
drop_filter now defaults to useless_item

You can prevent an init file variable from being changed by turning it into a
constant.

Clear variables and aliases when resetting the game options.

--------------------------------------------------------------------------------
c6f2e85b44 | zelgadis | 2008-12-31 01:01:45 +0000

Only give "Nothing appears to happen" message if you can see the monster which 
reach the scroll.

--------------------------------------------------------------------------------
cd4d3eb090 | zelgadis | 2008-12-31 00:54:23 +0000

When a monster reads a scroll of summoning, if the player can see the resulting 
small abomination say "A small abomination appears!", and if the player can't 
see it (or it doesn't get summoned for some reason) say "Nothing appears to 
happen" and don't identify the scroll.

--------------------------------------------------------------------------------
9de6bb8dc7 | dolorous | 2008-12-31 00:36:18 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
bc45592369 | dolorous | 2008-12-31 00:35:15 +0000

Mention the inability of simulacra to use stairs.

--------------------------------------------------------------------------------
f280ca6b57 | dolorous | 2008-12-31 00:32:36 +0000

Add wording fixes.

--------------------------------------------------------------------------------
d165d992ab | dolorous | 2008-12-31 00:30:36 +0000

And mention that all enslaved souls can use stairs (since intact ones are based 
on spectral things).

--------------------------------------------------------------------------------
2578ec6bd7 | dolorous | 2008-12-31 00:27:52 +0000

And do the same for zombified type-creating spells.

--------------------------------------------------------------------------------
a2ef315425 | dolorous | 2008-12-31 00:25:22 +0000

Fix descriptions of zombified type-creating abilities to mention that zombified 
types can't leave their original level *via stairs*.  They can still leave it 
via banishment or shaft traps.

--------------------------------------------------------------------------------
f77258b7ef | dolorous | 2008-12-31 00:11:33 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
1692e3c729 | dolorous | 2008-12-30 23:21:03 +0000

Fix [2472552]: Remove Ice Storm from _mons_can_smite(), as it requires LOS to 
aim properly.

--------------------------------------------------------------------------------
22900fa9c8 | j-p-e-g | 2008-12-30 13:51:13 +0000

Restrict Polyphemus to the Shoals, and make sharks not appear in the Swamp 
(randomly on water levels with a lot of water, is okay).

--------------------------------------------------------------------------------
a93986dd68 | j-p-e-g | 2008-12-30 12:58:15 +0000

Correct max armour enchantment to 8 (was 5). Sorry about that!

--------------------------------------------------------------------------------
3aa8f2c3c6 | j-p-e-g | 2008-12-30 12:31:12 +0000

* Fix charge/enchantment description leaking information about   unidentified 
items. * Add two new inscriptions: {fully charged} and {tried on item} * Add 
freshness to default sort_menus (sorting chunks by age)
One question: Is it guaranteed that artefacts (of any type) will have 
different descriptions than ego items?

If so, we should probably display the "This is an ancient artefact. It
cannot be modified by any means. It may have hidden properties" text for
unidentified ones.

--------------------------------------------------------------------------------
beac344a52 | haranp | 2008-12-30 11:44:22 +0000

Save a few more things in tracers.

--------------------------------------------------------------------------------
104854da41 | dshaligram | 2008-12-30 07:51:37 +0000

Fix fractured grammar when a monster casts a spell at a friendly.

--------------------------------------------------------------------------------
3a445645c5 | dshaligram | 2008-12-30 06:14:41 +0000

Allow giant eyeballs to act against monsters as well as the player, fixed 
monsters not using special abilities out of player LOS.

--------------------------------------------------------------------------------
50c2196b35 | zelgadis | 2008-12-30 03:58:03 +0000

Describe the rock walls of the Slime Pit as "slime covered rock wall". Describe 
the stone walls making up the vaults in Slime:6 as slime-free rune carved rocks 
walls, with the runes mentioning "the royal jelly".
Make the metal and crystal walls of Vault:8 be described as "heavily etched",
with the long description saying that they're covered with etched murals
depecting exactly what is done to theives.

--------------------------------------------------------------------------------
47d7437c65 | zelgadis | 2008-12-30 03:12:59 +0000

Spelling fixes, as noted by Eino Keskitalo.

--------------------------------------------------------------------------------
23b05e04fd | zelgadis | 2008-12-30 02:47:25 +0000

If debug_mons_scan() detects a problem which happened during level generation, 
and there's vaults on the level, then report which vaults (if any) the problem 
monsters are in.

--------------------------------------------------------------------------------
47b61a2032 | zelgadis | 2008-12-29 21:43:06 +0000

Mark created/summoned god gifts as MF_GOD_GIFT, not just convereted orcs (oops).

--------------------------------------------------------------------------------
cf5a7d069c | j-p-e-g | 2008-12-29 19:38:30 +0000

Actually use MAX_WPN_ENCHANT instead of hardcoding +9 everywhere.

--------------------------------------------------------------------------------
85e282c81b | j-p-e-g | 2008-12-29 19:27:55 +0000

* Also describe enchantment limits for weapons (+9, right?), missiles,   and 
armour (+5 for body armour and bardings, else +2).   Tidied up the code a bit. 
* Prettify waypoint messages as suggested by slinkies in FR 2329972.   (I 
really should reread those tracker items before starting to code   them...)

--------------------------------------------------------------------------------
fca2ba3fa4 | j-p-e-g | 2008-12-29 18:37:38 +0000

* Nerf Dwarfs' Evocations aptitude 45 -> 67 (as e.g. Grey Elf). * Correct Evoc 
aptitude listed in aptitudes.txt for High Elf. * List max charges for wands in 
their descriptions. * Mention waypoint number when creating waypoints.

--------------------------------------------------------------------------------
a8624b062f | dshaligram | 2008-12-29 16:34:57 +0000

Fixed monster fire storm crashes (in_explosion_phase), fixed explosions 
affecting dead monsters (endless loop on conjure ball lightning), fixed crash 
on Tiamat breathing with colour==darkgrey.

--------------------------------------------------------------------------------
4c207745e7 | dshaligram | 2008-12-29 16:27:12 +0000

Fix attitude of silver statue summons (oops).

--------------------------------------------------------------------------------
f5d7515c3c | dshaligram | 2008-12-29 16:09:35 +0000

Implement divination miscasts for orange statues, fix silver and orange statues 
to attack monsters as they attack the player. Also fix clouds not being cleared 
on level reset in dungeon.cc.

--------------------------------------------------------------------------------
14c07a62da | zelgadis | 2008-12-29 13:55:59 +0000

Forgot to give draconian zealots a god.

--------------------------------------------------------------------------------
f65b0e512e | j-p-e-g | 2008-12-29 13:20:43 +0000

Vampires may no longer draw blood from summoned monsters. Remove Vampires being 
"in touch with the powers of death". Only print Mummies death boost message 
from xp >= 13 where it actually appears.

--------------------------------------------------------------------------------
25c2c3a8d8 | zelgadis | 2008-12-29 12:05:51 +0000

Fix copy/paste mistake.

--------------------------------------------------------------------------------
f56d33e067 | zelgadis | 2008-12-29 12:00:53 +0000

If detached monsters were caused during level generation then list maps in 
Level_Vaults and Temp_Vaults, show dgn_Build_Method and dgn_Layout_Type, and 
say if the level is a river level, lake level or many-pools level.

--------------------------------------------------------------------------------
d725200391 | zelgadis | 2008-12-29 11:12:55 +0000

Argh, monsters::moveto() is too low level for an assertion like that.

--------------------------------------------------------------------------------
7fcfce7d25 | j-p-e-g | 2008-12-29 11:11:32 +0000

* Dump spells contained in randart spellbooks, marking memorised spells   with 
an asterisk. * Sif Muna no longer gifts the books specific to Kiku and Vehumet  
 (Necronomicon, Annihilations, Demonology) though the spells contained   
there-in may crop up in randart books.

--------------------------------------------------------------------------------
10a49dc866 | zelgadis | 2008-12-29 10:48:02 +0000

Oops, my last change broke _monster_swaps_places().

--------------------------------------------------------------------------------
2cc1fcd4c2 | zelgadis | 2008-12-29 10:32:57 +0000

Some more attempts to prevent/catch/diagnose floating monster problems.  Among 
other things:
* If level generation leaves some monsters detached then this will be
  specifically noted.

* If applying _handle_monster_move() to a monster causes that monster to
  become detached it will be noted (those it won't catch *other* monster
  being detached by that monster moving).

--------------------------------------------------------------------------------
3744c360da | zelgadis | 2008-12-29 05:59:51 +0000

Differentiate between god gift monsters and non-gift monsters with a god via 
MF_GOD_GIFT.  When a non-god gift priestly monster is first created it will be 
given a god: orcs Beogh, mummies Kikubaaqudgha or Yredelemnul, and deep elves 
Kikubaaqudgha, Yredelemnul or Makhleb.
Monster spell announcments/messages for priestly monsters now uses the name of
their god.

--------------------------------------------------------------------------------
3ccb84a86f | zelgadis | 2008-12-29 04:38:32 +0000

Changes to monster spell messages:
* If the monster's casting would be affected by Silence then attempt to
  indicate that the monster is using words.

* Allow for different messages for targeted spells vs untargeted spells.

* Provide some special messages for the Animate Dead spell.

* Don't let sphinxes gesture or point.

--------------------------------------------------------------------------------
8f4023a8f1 | j-p-e-g | 2008-12-28 21:29:53 +0000

Tidy up tiles some more. Add subfolders for some armour types, demonic 
monsters, and reinstate some of the unused tiles that conceivably could see use 
in the future (e.g. for new unrandarts or for meta-commands) in an UNUSED 
folder.

--------------------------------------------------------------------------------
571e6c5aac | j-p-e-g | 2008-12-28 14:41:57 +0000

Apply a patch by castamir to fix a multitude of typos.

--------------------------------------------------------------------------------
90d0e8c3f9 | j-p-e-g | 2008-12-28 14:09:26 +0000

Fix 2471146: equipment being melded due to mutations. Fix 2426301: melding not 
working properly for Merfolk transformation. Colour melded equipment darkgrey 
on the % screen.
Disallow Merfolk slipping out of their boots if doing so would kill the
player due to stat loss. (Falling into water when flying will still kill 
them.) When this is the case, deep water is regarded as unsafe for
travel.
TODO: Ending a transformation should likewise be impossible if doing so
would cause stat loss due to unmelding of items.

Add a stat_colour option to highlight the stats when they're below a
given threshold. By default, lightred at 1, red at 2-3. You could argue
for setting the default to 7 but that would mean colouring almost all
stats for each beginning character. (FR 2022232)
Tidy up the stat colouring methods.

--------------------------------------------------------------------------------
971e4ca792 | zelgadis | 2008-12-28 09:52:52 +0000

Make mummy death curses work when killed by the player via the new beam code.

--------------------------------------------------------------------------------
96e3458b10 | zelgadis | 2008-12-28 08:48:10 +0000

Print all entries in mon-data.h which match the given regexp

--------------------------------------------------------------------------------
04d5776a5c | zelgadis | 2008-12-28 06:53:07 +0000

The entry gates to portal vaults can now set their long feature description via 
the desc_long property of the Lua marker.  The lets the portal vault code be 
enitrely self contained, rather than having to have a portion of the 
description in dat/descript/features.txt.  Also, in theory each different entry 
vault could have its own version of the description, or it could even 
programatically vary after the entry vault had been generated (since it can be 
a function in addition to a string).  Also, since the gate's short feature 
description is no longer needed as a key into the features database, the short 
description doesn't need to be the same for each entry vault.
The way I put the descriptions into the .des files is a bit clunky, but when I
tried to use the Lua multi-line string quote ([[string]]) each line displayed
by Crawl was indented one space.

--------------------------------------------------------------------------------
d04224e3fc | zelgadis | 2008-12-28 03:32:17 +0000

Oops, don't automatically set aimed_at_feet, since the caller might be doing 
weird stuff with source and target.  Make setup_mons_cast() deal with it for 
monster spells which the monster aims at itself.
Force range to 0 when source == target.

In mons_cast() assert that targeted spells have an in-bounds target and that
harmful spells are only aimed at the caster when the caster is confused.

--------------------------------------------------------------------------------
56cb1b5202 | zelgadis | 2008-12-28 03:02:45 +0000

Make stiking cloud (Mephitic Cloud) work properly.

--------------------------------------------------------------------------------
11b35be52c | zelgadis | 2008-12-28 02:24:51 +0000

Set aimed_at_feet to true if source == target.  Fixed monsters resisting when 
they cast Teleport Self.

--------------------------------------------------------------------------------
5b4694b16c | j-p-e-g | 2008-12-28 00:03:02 +0000

Add harpy and shark tiles. (I feel the harpy bears some similarity to Amy 
Winehouse, but I swear that's not intentional! :D)

--------------------------------------------------------------------------------
ace80c9370 | zelgadis | 2008-12-27 23:32:36 +0000

If a beam has range == -1 then set it to LOS_RADIUS and, in debug builds, 
complain about it.  Eventually turn this into an ASSERT when all code that 
makes this assumption is caught and fixed.
If beam.chose_ray is true and source is still the default then change source to
ray.pos()

Fix Banishment and Dig having range -1.

Sanity check spell definitions at startup in init_spell_descs()

--------------------------------------------------------------------------------
61bc1cd16b | j-p-e-g | 2008-12-27 19:26:20 +0000

Also handle EQ_RINGS_PLUS etc. in you_tran_can_wear(). Tweak FAQ.

--------------------------------------------------------------------------------
62b50aa870 | dshaligram | 2008-12-27 14:40:00 +0000

Fix typo.

--------------------------------------------------------------------------------
ae7a8697e6 | j-p-e-g | 2008-12-27 11:55:58 +0000

Don't place zombified monsters using PROX_NEAR_STAIRS. Mention the incapability 
of leaving levels in the descriptions of zombified monsters, and also for 
Animate Dead/Skeleton.

--------------------------------------------------------------------------------
973a85d8d2 | zelgadis | 2008-12-27 10:30:31 +0000

Let portal vaults (and places like Vault:8 and Slime:6) change the short and 
long descriptions of features.  For example, "An ice covered rock wall" instead 
of "A rock wall".  See dat/icecave.des function ice_cave_feat_descs() for 
examples.

--------------------------------------------------------------------------------
2b793343f9 | zelgadis | 2008-12-27 07:58:15 +0000

Make beehives in the Lair occur at the same absolute frequency as in 0.4 by 
making the functions for special rooms innapropriate for the Lair do nothing. 
Can't do this via dummy vaults since special rooms are chosen based on absolute 
depth, not branch depth.

--------------------------------------------------------------------------------
29287f79ef | zelgadis | 2008-12-27 07:54:22 +0000

Oops, my stash_filter change broke looking up items by their glyph; fixed.
stash_filter shouldn't affect artefacts.

Don't try to cache the names for BOOK_RANDART_LEVEL and BOOK_RANDART_THEME,
since randarts don't have a single name.

--------------------------------------------------------------------------------
9ac7d2a9a5 | zelgadis | 2008-12-27 06:41:37 +0000

The stash_filter option can now accept strings (full item names, not regexes).  
init.txt filters out the useless scrolls and jewelry.

--------------------------------------------------------------------------------
85e414e499 | zelgadis | 2008-12-27 01:39:46 +0000

Give all BEAM_POTION_* beams a minimum explosion size of 1.

--------------------------------------------------------------------------------
6b56e4a147 | dploog | 2008-12-27 00:39:45 +0000

Some more FAQ entries. Formatting may be off.

--------------------------------------------------------------------------------
b624fad933 | dploog | 2008-12-27 00:05:32 +0000

Update Credits.

--------------------------------------------------------------------------------
fdf4a732d8 | j-p-e-g | 2008-12-26 23:36:20 +0000

Reset RAP_CURSE < 0 to 0 after initially cursing the item, so it's not counted 
as a valid property. (Fixes 2393950)
Wrap FAQ questions longer than a line.

--------------------------------------------------------------------------------
02561cdbb4 | zelgadis | 2008-12-26 23:01:43 +0000

If a multi-line message matches message_colour or note_messages then apply them 
to the whole message before it gets split into lines, rather than to each 
individual line after it gets split.  Breaks previous-messages savefile 
compatability.

--------------------------------------------------------------------------------
6ceab003bb | j-p-e-g | 2008-12-26 22:21:16 +0000

Fix 2448686: some jewellery properties not working properly while transformed.

--------------------------------------------------------------------------------
3cfe89ce02 | j-p-e-g | 2008-12-26 20:21:02 +0000

Fix "suicidal travelling" towards monsters you can see through glass. Fix 
=sustenance not being treated as useless for Mummies.

--------------------------------------------------------------------------------
3df2c03fc7 | j-p-e-g | 2008-12-26 16:39:35 +0000

Add a FAQ part to the database, which can be accessed from the help screen. 
This is intended as a pointer for general questions, not for complicated 
information about rare, specific occurences. Feel free to change stuff, or add 
more.
The Q:keyword/A:keyword solution is pretty rough, but I couldn't get the
database not to turn the questions into all lowercase otherwise. If
someone knows of a better method, I'm all ears!

--------------------------------------------------------------------------------
9c48662001 | haranp | 2008-12-26 14:11:38 +0000

2467413: mention that casting Pain damages yourself.

--------------------------------------------------------------------------------
d00bca7cd6 | zelgadis | 2008-12-26 07:03:51 +0000

Tracers shouldn't affect walls.

--------------------------------------------------------------------------------
db4441f34f | zelgadis | 2008-12-26 06:28:31 +0000

Fix explosions not affecting the right grids and exploding inside walls.
Don't finish beam if it's reflected by a monster.

--------------------------------------------------------------------------------
ab2a95081c | zelgadis | 2008-12-26 05:40:06 +0000

Don't let chaos beam bounce off of one wall immediately into an adjacent wall; 
prevents chaos beams from bouncing *thorugh* walls.
If the beam passes out of bounds (the player was right at an edge of the map
and fired the beam off the map) then finish the beam and regress back into
bounds.

Always finish beam if it hits a wall and neither affects the wall nor bounces.

Regress out of walls before dropping an item.

Don't regress out of walls if target == source.

More assertions.

--------------------------------------------------------------------------------
ecb9b51784 | ennewalker | 2008-12-25 19:16:13 +0000

[2182289] Fixing travel problems when trying to travel to a non-traversable 
square.  (It would try to route to other levels, which was wrong.) I'm far from 
an expert on the travel code, so if this breaks something that my small set of 
manual tests didn't turn up, please let me know.

--------------------------------------------------------------------------------
b1c2d6e096 | haranp | 2008-12-25 17:04:20 +0000

Complete rewrite of the beam code, making it considerably saner. However, there 
might be quite a few bugs lurking in this rewrite. Sorry.

--------------------------------------------------------------------------------
287e5f0820 | ennewalker | 2008-12-25 13:20:35 +0000

...and another typo.

--------------------------------------------------------------------------------
32a6f6976e | ennewalker | 2008-12-25 13:17:09 +0000

Fixing typo.

--------------------------------------------------------------------------------
b10406efd7 | ennewalker | 2008-12-25 13:15:50 +0000

Adding keybinding documentation for newly used CMD_MAP_* commands.

--------------------------------------------------------------------------------
4a3fd7e32d | zelgadis | 2008-12-25 11:18:32 +0000

If the player chooses the character name "shaped Royal Jelly" then don't open 
up the Slime:6 vaults when the player's ghost dies.

--------------------------------------------------------------------------------
c5f945ee7a | zelgadis | 2008-12-25 10:13:49 +0000

FR #2083661: when polymorphed, unique (and named) monsters now retain their 
name (but not spells, yet), and use their old speech text if it makes sense for 
them to be able to do so.
Polymorphed monsters now retain some of their old flags, like
MF_CREATED_FRIENDLY and MF_GOT_HALF_XP.

If the Royal Jelly is polymorphed into something else then the Slime:6 vaults
will unlock when that monster is killed.

If the Royal Jelly is banished the player will be given a hint that it's gone
and that the vaults will remain locked.

--------------------------------------------------------------------------------
299e58e1ca | zelgadis | 2008-12-25 08:14:55 +0000

Let e.set_random_mon_list() work, as well as dgn.set_random_mon_list()

--------------------------------------------------------------------------------
ef9621cf23 | ennewalker | 2008-12-25 03:05:05 +0000

[2455489] Fixing "dark" levels after crashes, due to the tile flavor being set 
after the level was saved.  (This wasn't a problem until it started being saved 
recently.)

--------------------------------------------------------------------------------
516c667752 | ennewalker | 2008-12-24 23:37:46 +0000

[2443156] Fixing plants giving experience when killed by pets.

--------------------------------------------------------------------------------
947b44004a | ennewalker | 2008-12-24 23:10:58 +0000

[2444309] Fixing description for the Shoals.

--------------------------------------------------------------------------------
93e7444ded | ennewalker | 2008-12-24 22:50:45 +0000

[2462140] Reverting previous check in to add more lines to the help menus.  The 
better solution is to pick the text-only menu or the graphical menu in the 
constructor.
This fixes an issue where there's a floating '=' x 80 line on the help screen 
sometimes, due to the graphical and textual draw_stock_item functions being 
inappropriately mixed.

--------------------------------------------------------------------------------
f295ec844a | dolorous | 2008-12-24 22:14:46 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f9d0f0ca5f | ennewalker | 2008-12-24 22:12:54 +0000

Increasing the amount of text on screen for tiles help menus by separating out 
graphical menus from text only ones.

--------------------------------------------------------------------------------
386aa83701 | dolorous | 2008-12-24 21:21:16 +0000

Change the color of simulacra from WHITE to EC_ICE, so that small simulacra are 
distinguishable from flying skulls in the console version.

--------------------------------------------------------------------------------
f20c7f11f7 | ennewalker | 2008-12-24 21:00:23 +0000

[2455904] Improving on-screen inventory by clarifying how many inventory slots 
the character has.  Extra rows are filled up with ground items.  Extra columns 
(after ENDOFPACK, but prior to full rows of ground items) are darkened out.

--------------------------------------------------------------------------------
522c134ee1 | dolorous | 2008-12-24 20:50:26 +0000

Comment fixes.

--------------------------------------------------------------------------------
118eaaf94b | dolorous | 2008-12-24 20:15:09 +0000

Fix chaotic weapon checks.

--------------------------------------------------------------------------------
d13d44f05e | ennewalker | 2008-12-24 19:54:21 +0000

[2457584] Don't show health bars for zombies.

--------------------------------------------------------------------------------
8a0b544323 | ennewalker | 2008-12-24 19:34:26 +0000

[2458672] Fixing level map not using CMD_MAP_* commands or going through 
cmd-keys.h.  This will allow these commands to be remapped correctly.
Also, fixing issue where cancelling the level map help screen in tiles wouldn't 
go back to viewing the dungeon.

--------------------------------------------------------------------------------
52b347d043 | dolorous | 2008-12-24 18:37:57 +0000

Typo fix.

--------------------------------------------------------------------------------
a767f7dab9 | dolorous | 2008-12-24 18:30:22 +0000

Add another comment fix.

--------------------------------------------------------------------------------
2adb5b2bd0 | dolorous | 2008-12-24 18:23:19 +0000

Comment fix.

--------------------------------------------------------------------------------
edb2191188 | dolorous | 2008-12-24 18:19:40 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a17f0f5844 | dolorous | 2008-12-24 18:15:46 +0000

Make angels' holy weapons yellow, to match daevas' holy weapons.

--------------------------------------------------------------------------------
db55de1b81 | ennewalker | 2008-12-24 17:11:17 +0000

Add a hack to make the spell menu titles aligned in the tiles menus.  (The 
non-hack version involves much larger changes to the menu system.  
Eventually...)

--------------------------------------------------------------------------------
d0dea4d21f | ennewalker | 2008-12-24 17:09:08 +0000

Adding flaming corpse tile from Bill Beher.

--------------------------------------------------------------------------------
4235033f3b | dolorous | 2008-12-24 14:51:15 +0000

Comment fixes.

--------------------------------------------------------------------------------
9ff8242e38 | dolorous | 2008-12-24 14:50:18 +0000

Improve checks for monsters' picking up chaotic weapons.

--------------------------------------------------------------------------------
e8dfea7919 | dolorous | 2008-12-24 14:15:53 +0000

Simplify.

--------------------------------------------------------------------------------
92f2ce6622 | dolorous | 2008-12-24 06:46:30 +0000

Give chaos spawns the CE_NOCORPSE corpse type instead of CE_MUTAGEN_RANDOM, 
since they have zero weight and won't leave corpses, and also since they have 
no blood for vampires to draw.

--------------------------------------------------------------------------------
add5ad8252 | dolorous | 2008-12-24 06:40:04 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
2d3d14b4a2 | dolorous | 2008-12-24 06:38:48 +0000

Comment fix.

--------------------------------------------------------------------------------
4486efb938 | dolorous | 2008-12-24 06:25:33 +0000

Comment fix.

--------------------------------------------------------------------------------
a69ccea3ff | dolorous | 2008-12-24 06:24:39 +0000

And consistently handle angering Xom's newly created shapeshifters.

--------------------------------------------------------------------------------
46f0d2976d | dolorous | 2008-12-24 06:19:10 +0000

Comment fix.

--------------------------------------------------------------------------------
b381a5459d | dolorous | 2008-12-24 06:17:48 +0000

Treat polymorphs from chaos weapons that aren't the result of turning monsters 
into shapeshifters consistently with other polymorphs of that nature.

--------------------------------------------------------------------------------
97d451eaa3 | dolorous | 2008-12-24 06:09:37 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
377d566d94 | dolorous | 2008-12-24 05:55:56 +0000

Revert previous change, as a delay before angering Zin seems more Xom-like.

--------------------------------------------------------------------------------
574f040afa | dolorous | 2008-12-24 05:53:34 +0000

Properly anger (for Zin worshippers) monsters turned into shapeshifters by Xom 
again.

--------------------------------------------------------------------------------
39ff572d16 | dolorous | 2008-12-24 05:50:30 +0000

Simplify.

--------------------------------------------------------------------------------
8d1f7b423d | dolorous | 2008-12-24 05:38:04 +0000

Wording fixes.

--------------------------------------------------------------------------------
49470d3a06 | dolorous | 2008-12-24 05:36:47 +0000

Make Xom's turning a monster into a shapeshifter more obvious, as with chaos 
weapons.

--------------------------------------------------------------------------------
df9b213928 | dolorous | 2008-12-24 05:31:10 +0000

Fix [2462495]: Fix typo in options_guide.txt.

--------------------------------------------------------------------------------
6e00d2b2ea | zelgadis | 2008-12-24 03:23:07 +0000

Oops, shouldn't unlock Slime:6 vaults if the Royal Jelly is banished; my bad.

--------------------------------------------------------------------------------
905e3a284a | zelgadis | 2008-12-24 01:24:15 +0000

Prevent spurious ID notes when wizard creating items (&%).
Get &Z (cast spell by name) to work with command history (re-do/repeat
command).

Fix message-type notes doubling the message with a "Found" stuck between the
copies.

--------------------------------------------------------------------------------
cd0672dfe7 | zelgadis | 2008-12-24 01:01:31 +0000

"The Wrath" card: never choose Nemelex (to prevent Nemelex from recursively 
forcing the player to draw from his Deck of Punishment), and keep trying 
different gods until one is found who is willing to punish the player (the good 
gods will only punish you if you're worshipping an evil god, plus Zin will 
punish the worshippers of chaotic gods).

--------------------------------------------------------------------------------
9578f87107 | dolorous | 2008-12-24 00:56:02 +0000

Typo fix.

--------------------------------------------------------------------------------
dd34bc7bf8 | dolorous | 2008-12-24 00:50:31 +0000

Generalize checks for spellbooks and rods of a particular class, or which your 
god disapproves of.  Now, if at least half of the spells in a spellbook or rod 
are in a particular class (this threshold may need adjustment; it's in 
is_spellbook_type()), the entire item is considered to be, too.  This means 
that artefact spellbooks containing many evil spells may be considered evil 
items by good gods, as will artefact rods if/when they're implemented.

--------------------------------------------------------------------------------
532d8dccff | zelgadis | 2008-12-24 00:34:10 +0000

Fix re-do/repeat command not working with commands that targetted a monster.

--------------------------------------------------------------------------------
eef6876fa4 | zelgadis | 2008-12-23 23:31:32 +0000

Bug #2455248: open Slime:6 vaults if the Royal Jelly is polymorphed.

--------------------------------------------------------------------------------
ebe2b790bd | dolorous | 2008-12-23 20:10:54 +0000

Add another comment fix.

--------------------------------------------------------------------------------
3c52517101 | dolorous | 2008-12-23 20:10:08 +0000

Comment fix.

--------------------------------------------------------------------------------
92d31c9e9a | dolorous | 2008-12-23 20:05:40 +0000

Refine zombie shoving logic so that only undead can push past them.

--------------------------------------------------------------------------------
dc8086eb4f | dolorous | 2008-12-23 19:45:52 +0000

Comment fix.

--------------------------------------------------------------------------------
88dd0ec068 | dolorous | 2008-12-23 19:01:00 +0000

Account for Ice Storm in _mons_can_smite(), as it's similar to Fire Storm in 
many ways.

--------------------------------------------------------------------------------
57f1655322 | dolorous | 2008-12-23 18:35:07 +0000

Fix [2432196]: Properly allow spriggans to use bows (but not longbows) again, 
as they could before the size check simplification.  Maybe weapon sizes should 
be adjusted eventually, so that specific weapon exceptions for bows and any 
weapon exercising the Staves skill no longer needed here?

--------------------------------------------------------------------------------
6c91dd4dae | dolorous | 2008-12-23 18:15:22 +0000

Fix [2461180]: Update the list of TSO's dislikes, since he now only disapproves 
of unchivalric attacks on intelligent monsters.

--------------------------------------------------------------------------------
853fce22a2 | dolorous | 2008-12-23 18:13:04 +0000

Fix [2460756]: Clarify the message given when a god ignores your prayer.

--------------------------------------------------------------------------------
eb8fb2b966 | dolorous | 2008-12-23 18:02:07 +0000

Make enslaved souls the EC_UNHOLY color, and make zombies shovable.

--------------------------------------------------------------------------------
9c1205b7ab | ennewalker | 2008-12-23 03:25:21 +0000

Partial improvements to graphical menus to make them more readable.

--------------------------------------------------------------------------------
7ff426cf4a | zelgadis | 2008-12-23 02:38:13 +0000

Bug 2455248: unlock the slime pit vaults if the Royal Jelly is banished.

--------------------------------------------------------------------------------
a792e2a40b | zelgadis | 2008-12-23 01:49:34 +0000

Possibly detect and work around bug #2455248: if a map for a specific place 
(e.g., Slime:6) tries to place a unique monster which has already been 
generated elsewhere then force it to be placed anyways and give an error 
message.

--------------------------------------------------------------------------------
8bb3d6a64b | zelgadis | 2008-12-23 01:00:57 +0000

Some more level zero (message only) miscast effects.

--------------------------------------------------------------------------------
87310618d4 | zelgadis | 2008-12-22 08:42:08 +0000

Don't die or end up with negative HP when using &^X to go from a high XL to a 
low one.

--------------------------------------------------------------------------------
aecf0e083f | zelgadis | 2008-12-22 08:06:20 +0000

_do_description() now only appends stats/info/spells/etc when looking up spells 
and items.  Fixes a bug where the branch Dis was listed as being a level 4 
Conjuraion/Air spell found in several spellbooks, and presumably fixes other 
bugs of the same type (if any exist).

--------------------------------------------------------------------------------
f6f2678aad | zelgadis | 2008-12-22 06:33:28 +0000

Minor tweak to "make monster summoned" interface.

--------------------------------------------------------------------------------
d56e934e66 | dolorous | 2008-12-22 06:11:29 +0000

Typo fix.

--------------------------------------------------------------------------------
0ad52e7de7 | dolorous | 2008-12-22 06:05:56 +0000

Display a warning when Zin worshippers wield a chaotic item.

--------------------------------------------------------------------------------
fa35b18622 | zelgadis | 2008-12-22 05:35:55 +0000

Two cosmetic-only changes to Xom miscasts:
1) For zero-level (message only) miscasts there's a 1 in 20 chance that
   a non-standard message will be given, like "Your shield spins",
   "The scales of your dragon armour briefly wiggle", and so on.

2) For all other miscasts the string used for "your hands" will be
   randomized to only sometimes be normal, to get messages like
   "Your nose glows momentarily" or "Noxious gasses pour from your feet".
   This can lead to some bizarre messages like "Sparks play between your
   ears", but then, this *is* Xom.

--------------------------------------------------------------------------------
fb3043bc74 | dolorous | 2008-12-22 05:29:36 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
d3dc033d07 | dolorous | 2008-12-22 04:57:56 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
5df03ebcfd | dolorous | 2008-12-22 04:52:25 +0000

Add another adjective for Zin's recitals.

--------------------------------------------------------------------------------
7c834afb81 | dolorous | 2008-12-22 04:43:29 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5068f6dc94 | zelgadis | 2008-12-21 22:44:54 +0000

Ignore neutral monsters when computing tension.
god_speaks() shouldn't detatch submerged monsters that the player is standing
over.

--------------------------------------------------------------------------------
f9617e163d | zelgadis | 2008-12-21 22:35:35 +0000

Improved handling of Xom accidentally killing the player.

--------------------------------------------------------------------------------
0480b2a904 | ennewalker | 2008-12-21 19:32:40 +0000

[2456075] Fixing accidently swapped keys for CMD_OPEN_DOOR_UP_RIGHT and 
CMD_OPEN_DOOR_UP_LEFT.

--------------------------------------------------------------------------------
164413a87b | dolorous | 2008-12-21 17:26:20 +0000

Implement reliable protection from harm for Elyvilon (available under prayer at 
high enough piety, but with a significant piety cost).

--------------------------------------------------------------------------------
33652ed46d | zelgadis | 2008-12-21 09:36:42 +0000

Non-fatal mutations weren't actually preventing death by stupidity.

--------------------------------------------------------------------------------
900520a3ac | zelgadis | 2008-12-21 09:09:33 +0000

bolt::agent() could crash if beam_source was negative (the beam was caused by a 
miscast effect).

--------------------------------------------------------------------------------
a656d1df3b | dolorous | 2008-12-21 07:27:09 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
4caf249f71 | zelgadis | 2008-12-21 07:04:54 +0000

You can now request that a spell miscast effect not directly kill the player 
and leave him/her with at least N hp (it can still indirectly kill the player 
by causing the death of a mummy, giant spore or ball lightning).  Doesn't cover 
the case of a level 3 transmigration miscast deleting the robust mutation or 
giving the frail mutation before causing hp damage.
The Xom bad effects code now requests (unless Xom is being nasty) that spell
miscasts not directly kill the player, rather than avoiding miscasts
alltogether if the player has low HP (which didn't cover things like miscasts
leading to death via XP drain or stat loss, in addition to it avoiding spell
miscasts much too often).

--------------------------------------------------------------------------------
cf72d214ea | zelgadis | 2008-12-21 06:37:39 +0000

If the user presses ESC in response to --more-- then automatically clear all 
--more--s until the player can enter a command again, the player gets a prompt, 
or an error message is given.
Move where activity is interrupted on error messages, and also do that
for error messages sent through formatted_mpr().

--------------------------------------------------------------------------------
8a71071e3d | zelgadis | 2008-12-21 03:57:31 +0000

Change the spell_type enumerations so that SPELL_NO_SPELL is 0 and the first 
valid spell (Identify) is 1.  This way any bug that causes a spell_type 
variable to be 0 will be recognized as an invalid spell.

--------------------------------------------------------------------------------
0e1304a15a | ennewalker | 2008-12-20 23:22:36 +0000

Fixing redraw not being called enough (due to my previous check in to fix 
slowdowns during resting.)

--------------------------------------------------------------------------------
aa4f3948a8 | ennewalker | 2008-12-20 21:16:32 +0000

[2423866] Fixing bug where corpses don't appear in the inventory window by 
default.

--------------------------------------------------------------------------------
91e8400448 | ennewalker | 2008-12-20 21:03:48 +0000

Adding auto-sizing for font, map, and window sizes.  Windows should fit on the 
screen by default now.  The options are still somewhat of a mess, but I don't 
think that they'll need to be modified by most people.

--------------------------------------------------------------------------------
8be1faf8bf | j-p-e-g | 2008-12-20 19:36:34 +0000

Update 0.5 change log to include the correct changes listed for 0.4.4.

--------------------------------------------------------------------------------
476b6a7003 | dolorous | 2008-12-20 19:14:46 +0000

Typo fixes.

--------------------------------------------------------------------------------
7349f13b44 | ennewalker | 2008-12-20 15:55:02 +0000

Fixing tiles slowdowns while resting.

--------------------------------------------------------------------------------
63c4125874 | dolorous | 2008-12-20 06:31:00 +0000

Make scrolls of summoning also create permanent abominations when monsters read 
them.

--------------------------------------------------------------------------------
4043eececa | zelgadis | 2008-12-20 06:18:24 +0000

When doing "make debug" (which is used by calling makefile "makefile" for both 
the "wizard" and "debug" targets) don't re-link the crawl binary if none of the 
dependencies have changed.

--------------------------------------------------------------------------------
a7da0224ae | dolorous | 2008-12-20 06:17:38 +0000

Add missing newline.

--------------------------------------------------------------------------------
52c1e5fd31 | dolorous | 2008-12-20 06:15:20 +0000

Add spelling fixes.

--------------------------------------------------------------------------------
cb7ebecdf9 | dolorous | 2008-12-20 06:05:18 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
467d47e582 | dolorous | 2008-12-20 05:49:08 +0000

Resync makefile_tiles.unix with makefile.unix.

--------------------------------------------------------------------------------
ffabf27020 | dolorous | 2008-12-20 05:39:36 +0000

Attempt to make stair-tagging of adjacent monsters work properly when monsters 
that can't use stairs are between them and the player.  Be warned: this is 
somewhat hackish.

--------------------------------------------------------------------------------
05b5a38039 | zelgadis | 2008-12-20 05:27:12 +0000

When doing "make depend" only clobber the current makefile.dep after the new 
one is complete, instead of deleting it before making the new one.

--------------------------------------------------------------------------------
e6ce8067c5 | zelgadis | 2008-12-20 05:17:48 +0000

Make player::is_habitable_feat() deal with deep water and lava.

--------------------------------------------------------------------------------
e1962aec97 | dolorous | 2008-12-20 04:58:10 +0000

Update description of the scroll of summoning.

--------------------------------------------------------------------------------
b585b53c43 | dolorous | 2008-12-20 04:44:03 +0000

Make scrolls of summoning create permanent abominations.

--------------------------------------------------------------------------------
d78ace02b2 | zelgadis | 2008-12-20 03:23:46 +0000

Fix bug 2444303: Vestibule of Hell branch description says to file a bug report.

--------------------------------------------------------------------------------
c793dc8288 | zelgadis | 2008-12-20 02:59:08 +0000

Fix bug 2430493: re-weild weapon when untransforming.

--------------------------------------------------------------------------------
cd4f718dbc | zelgadis | 2008-12-20 02:26:25 +0000

Some wizard/debugging commands:
* The &" command now shows the total experience value of all monster on
  the level.

* &G now prevents dismissed monsters from dropping their original equipment,
  except for unrandarts and fixed arts.  You can force the dismissed
  monsters to drop all of their non-summoned items by adding "keepitem"
  to the regexp string.

* &R can now either change the random monster spawn rate for the
  current level, or immediately spawn a given number of random monsters.

* &^D can be used to examine and alter player enchantments/durations.

* The targeting command "S" can be used to turn a permanent monster into
  a summoned one.

* The targeting command "~" can be used to polymorph a monster into one
  of a particular type.

--------------------------------------------------------------------------------
f4cd5aede3 | zelgadis | 2008-12-19 20:29:26 +0000

First draft of god tension, and of Xom using tension.

--------------------------------------------------------------------------------
86da4aff35 | dshaligram | 2008-12-19 08:09:14 +0000

Remove extra setting of you.your_level in apply_to_all_dungeons (Haran).

--------------------------------------------------------------------------------
30824b7084 | zelgadis | 2008-12-19 05:12:15 +0000

Added "The Stairs" card (not yet in any deck), eventually to be the card which 
re-arranges all stairs on the level, but now is just used to test the code used 
to move stairs in LOS away or towards the player.
Added beam flavour BEAM_VISUAL for animating someting moving in a line which
doesn't have any effects on its own, and removed BEAM_LINE_OF_SIGHT, which was
no longer being used.  Added bolt structure field "delay", which can be used to
change the delay between animating each square in a beam from the default of 15
msec.

For eventual use as a Xom effect added the stairs-are-avoiding-you durations
DUR_REPEL_STAIRS_MOVE and DUR_REPEL_STAIRS_CLIMB.  If DUR_REPEL_STAIRS_MOVE
alone is set then stepping onto a stairs/portal/etc has a 50% chance of making
it move away in a random direction.  If DUR_REPEL_STAIRS_CLIMB alone is set
then attempting to climb a stairs/etc has a 50% chance of making it move away
before you can get through it (and ending your turn in the process).  If both
are set then moving onto it and attempting to climb each have a 29% chance of
making it move, for a combined chance of 49.59% of a move-and-climb making the
stairs move away.  Once a stair is successfully taken there's a 50% chance of
the stair on the other end moving away from the player, and then both durations
are reset to 0.

These can be tested by drawing The Stairs card ("&c stair"), which will set
DUR_REPEL_STAIRS_CLIMB if you're on top of a stair or DUR_REPEL_STAIRS_MOVE if
your'e not.

Added a few wizard targetting command placeholders.

--------------------------------------------------------------------------------
10391ff4e6 | j-p-e-g | 2008-12-18 22:11:21 +0000

Lower max levels for randart books a bit (25 -> 22). Fix naming by secondary 
type for real.

--------------------------------------------------------------------------------
fe6051abc7 | j-p-e-g | 2008-12-18 18:25:39 +0000

Remove spells from randart books that don't fit at least one of primary and 
secondary spell type. Move definite articles in spell type synonyms in front of 
the adjective when one is used.

--------------------------------------------------------------------------------
8a2d405ada | dshaligram | 2008-12-18 14:13:15 +0000

Fix royal jelly death in the Abyss destroying you.your_level.

--------------------------------------------------------------------------------
eaebdf783c | j-p-e-g | 2008-12-17 23:14:03 +0000

Fix 2442018: excessive tomes of destruction.

--------------------------------------------------------------------------------
553b70383a | j-p-e-g | 2008-12-17 17:06:13 +0000

Fix randname.txt comments, add a few more adjectives.

--------------------------------------------------------------------------------
1d19e5d9da | dploog | 2008-12-17 15:08:44 +0000

randart book names fixes.

--------------------------------------------------------------------------------
385f0c4fda | zelgadis | 2008-12-17 13:58:21 +0000

New wizard command &R: change the monster spawn rate for the current level 
(env.spawn_random_rate).

--------------------------------------------------------------------------------
b3f1a22f00 | haranp | 2008-12-17 12:10:45 +0000

Fix _restore_level() mishandling non-Dungeon levels. This is hack; improvements 
welcome. Fixes 2434656.

--------------------------------------------------------------------------------
63da2b2852 | haranp | 2008-12-17 11:55:54 +0000

Fix all variable ranges using minimum range [2435891].

--------------------------------------------------------------------------------
171ea8d9b5 | haranp | 2008-12-17 11:44:21 +0000

Fix compilation issue pointed out by vonbrand [2435089].

--------------------------------------------------------------------------------
7919322f48 | dploog | 2008-12-17 01:33:57 +0000

Add some more words for randart books.

--------------------------------------------------------------------------------
c372c9cad3 | dploog | 2008-12-17 00:04:43 +0000

Change labyrinth announcement message (pointless).

--------------------------------------------------------------------------------
b38f5d5360 | j-p-e-g | 2008-12-16 21:54:12 +0000

Remove all "the" from spell type dependant nouns since it doesn't work with the 
adjective version. Add a few more adjectives.

--------------------------------------------------------------------------------
8f90ca2d3f | j-p-e-g | 2008-12-16 21:45:25 +0000

Allow randart book names of the type "Aerial Bewitchment" or "Fiery Darkness". 
(More synonyms welcome!) Also, if a randart book is not a god gift occasionally 
give it an old owner anyway, using make_name() like for shopkeepers.
I might have fixed the Divination issue. (It looks like for some reason
SPELL_NO_SPELL always returns true for Div, though I don't understand
why. At least in all three cases where I had this the counter for Div
spells was equal to 8 - spells in the book.)

--------------------------------------------------------------------------------
60cf3e365d | j-p-e-g | 2008-12-16 20:14:41 +0000

Also add variety to fixed level randarts, distinguishing between "easy" (1-3), 
"moderate" (4-6) and "difficult" (7-9).
Recount how often each spell school is used and use the two most
prominent schools (biasing by their order of definition in spl-util.h if
two are tied). 
This doesn't completely work yet: I got a book of Enchantment and Divination 
although not a single spell in the book belonged to Divination (5 of them were 
Enchantment, so that was okay). Also, the way spells are currently
selected (from two random disciplines) you can get a spell that does not fit 
either leading school (as later derived by counting) and might look odd with 
the title, e.g. a book is built on the premise of Conj/Fire and ends up
as Conj/Air with Fire/Trm thrown in.

--------------------------------------------------------------------------------
730cdd33ba | j-p-e-g | 2008-12-16 17:39:26 +0000

Add some variations of spell schools' names for randart book titles.

--------------------------------------------------------------------------------
34f6c79ec9 | zelgadis | 2008-12-16 06:21:17 +0000

dgn.set_random_mon_list() shouldn't complain about it being used outside of 
portal vaults if the map is being loaded/validated.
dgn.set_random_mon_list() turns "nothing" into "program bug", which is the
correct behaviour if you sometimes want the Shadow Creatures spell to fail.

--------------------------------------------------------------------------------
92716cc1c2 | zelgadis | 2008-12-16 05:15:03 +0000

Pass the message given to god_speaks() and simple_god_message() through 
do_mon_str_replacements() to do replacements on things like 
@player_genus_plural@ and @player_god@.

--------------------------------------------------------------------------------
8e48f4a3c0 | zelgadis | 2008-12-16 02:45:50 +0000

Fix bug 2430400: god-gift randart books having bad names.

--------------------------------------------------------------------------------
69f34130bc | zelgadis | 2008-12-16 01:29:20 +0000

Fix for bug 2430493: forget about interrupted butchering when doing 
auto-explore or inter-level travel.

--------------------------------------------------------------------------------
ef52f15919 | dploog | 2008-12-15 23:39:15 +0000

New entry vaults (Eino).

--------------------------------------------------------------------------------
4d42648286 | haranp | 2008-12-15 22:08:01 +0000

Differentiate intrinsically safe monsters and ones which the user options 
consider safe. Fixes 2430467.

--------------------------------------------------------------------------------
81824ba1b4 | haranp | 2008-12-15 21:16:02 +0000

Fix for Lee's Rapid Deconstruction: it will no longer work if the path to the 
target is blocked by wall. It can still bypass creatures. So it's now somewhere 
between Smite and Fireball. Done this way because it's the easiest fix; this 
spell will need some refactoring. (As does all the beam code, sigh.)

--------------------------------------------------------------------------------
79282d0e5b | zelgadis | 2008-12-15 10:57:23 +0000

FR #2424917: holy monsters should drop non-summoned items when they die rather 
than taking their entire inventory with them.
If a monster drops/fires/throws a summoned item the item will vanish (assuming
it's not a fired/thrown item which returns to the monster).

Don't generate summoned monsters with throwing nets since the net will
disappear as soon as it hits the target.

If a monster drops an item onto a item destroying grid the item will be
destroyed, accompanied by the approriate sound.  This should never happen,
since monsters only drop items in order to pick up another one, and they can't
pick up items off of item destroying grids since there won't be any items
there, but maybe in the future confused monsters will spontaneously drop items
or something.

Don't let orcs use orc-slaying weapons or draconians use dragon-slaying
weapons.

--------------------------------------------------------------------------------
4140d2abd9 | zelgadis | 2008-12-15 05:37:57 +0000

FR #2011386:
When giving or deleting a random mutation you can now request that the mutation
picked doesn't instantly kill the player.  Xom code now uses this option,
except for when the player is under penance from Xom or Xom is bored.

Improvements to the code that prevents Xom from accidently killing the player.

--------------------------------------------------------------------------------
5599c20eb6 | ennewalker | 2008-12-15 02:39:00 +0000

Brief change to my previous commit to make rltiles use those newfangled C++ 
headers instead.

--------------------------------------------------------------------------------
3d3d03f771 | zelgadis | 2008-12-14 13:34:33 +0000

Partial implementation of FR #2011386: Xom shouldn't directly kill the player 
unless he's being nasty (the player is under penance from Xom or Xom is bored). 
I've put checks into _xom_is_good() and _xom_is_bad() to avoid this as much as 
possible, and as a safety-net changed ouch() to return early if the player dies 
from a Xom effect when Xom wasn't being nasty so that xom_acts() can then fix 
things up (this causes Xom to give a message from "Xom accidental homicide" in 
dat/database/godspeak.txt)
Next up will be an addition to mutate() so you can request random mutations be
non-lethal, which should take care of all known situations where ouch() returns
early due to Xom making a mistake.

--------------------------------------------------------------------------------
4bd5cef214 | ennewalker | 2008-12-14 13:25:12 +0000

Fixing compile error where strcmp couldn't be found.

--------------------------------------------------------------------------------
88c3cb054f | zelgadis | 2008-12-14 09:34:57 +0000

Some updates to the chaos brand based on discussions:
1) Remove behavior/logic which wouldn't be evident to the player.

2) Xom only gives chaos branded missiles and launchers to hostile monsters,
   never as a gift to the player.

3) The frequency of a branded Xom gift being switched to the chaos brand
   has decreased from 33% to 20%.

--------------------------------------------------------------------------------
69dcbce751 | zelgadis | 2008-12-14 09:03:23 +0000

Oops, beams can sometimes have an empty name when fired.

--------------------------------------------------------------------------------
c42a7b4b46 | zelgadis | 2008-12-14 07:42:37 +0000

Dragons and draconians now give a breath message of "breathes @beam@ at 
@target@." instead of merely "breathes."
If an invisible monster on a square visible to the player fires a visible
beam then give a message to the player about it.

--------------------------------------------------------------------------------
d8e6562b89 | zelgadis | 2008-12-14 02:23:59 +0000

Got rid of setup_dragon(), moving it's functionality into setup_mons_cast() and 
mons_spells(), and added the new spells Fire Breath, Cold Breath and Draconian 
Breath to trigger that functionality.  Also added the new spell Acid Splash to 
replace monstuff's _plant_spit(), and Sticky Flame Splash, which is exactly the 
same as Sticky Flame except for the messages it gives and when it makes noise 
(monsters now spit sticky flame instead of breathing it).  All things that were 
handled as monster special abilities are still handled as such, and were just 
changed to manually invoke mons_cast().
The spell messages in dat/database/monspell.txt can now take advantage of a new
substitution, "@target@", which is expanded into the spell's target.

Added the spell flags SPFLAG_INNATE, for monster spells which are innate even
when the monster is a priest or wizard, and which can be used by them when
silenced, and SPFLAG_NOISY, for spells which produce noise even when used by
monsters other than priests or wizards.

Added the monster class flags M_SPELL_NO_SILENT, for monsters which aren't
wizards or priests, yet still can't use spells if silenced (currently only used
for Geryon blowing his horn to summon beasts), and M_NOISY_SPELLS, for monsters
which can cast spells when silenced, yet whose spells make noise when not
silenced (currently only used by curse skulls and Murray).

--------------------------------------------------------------------------------
5669e0adf5 | dploog | 2008-12-13 23:55:49 +0000

Improved descriptions of Enchant Armour and Vorpalise Weapons scrolls.

--------------------------------------------------------------------------------
58f49334e9 | haranp | 2008-12-13 14:55:08 +0000

Take enchantment into account with monster shields. Fixes 2370612. Take player 
shield class from itemprop.cc, rather than hardcoding it.

--------------------------------------------------------------------------------
06454491ac | dploog | 2008-12-13 14:54:32 +0000

Dragon speech typo fix (Eino).

--------------------------------------------------------------------------------
c6c218acfc | haranp | 2008-12-13 14:32:28 +0000

autopickup_no_burden no longer influences manual pickup. Fixes 2375482. This 
might have unintended consequences; jpeg, can you review?

--------------------------------------------------------------------------------
59ed129598 | haranp | 2008-12-13 14:18:22 +0000

Fix spurious encumberance messages when combining ammo in inventory. Fixes 
2354891.

--------------------------------------------------------------------------------
8d97ef9f44 | haranp | 2008-12-13 13:14:54 +0000

Removed bad #define.

--------------------------------------------------------------------------------
aa3747d95b | haranp | 2008-12-13 13:09:55 +0000

Fix a security hole introduced in r7048 (bad parsing of search regexps.) Add 
-Wno-parentheses to remove all the warnings about && vs. ||. (I agree with g++ 
here, actually...)

--------------------------------------------------------------------------------
f41f4cb56e | zelgadis | 2008-12-13 10:06:40 +0000

First draft of the spell noisyness system: spells cast by the player and by 
wizard/priest monsters now make noise, with the loudness depending upon level 
and spell disciplines: conjuration spells have a loudness equal to their level, 
spells containing only air and/or poison equal to 50% of their level (rounded 
up), and everything else to 75% of the level (rounded up).  This undoudedtly 
needs rebalancing, and a better level+disciplines -> loudness formula.  Also, 
each spell can have it's loudness tweaked from the default via the noise_mod 
field of the spell_desc field in spl-data.h, for those spells whose desired 
loudness don't quite fit into whatever formula is used.
The messages used to announce a spell have been moved out to
source/dat/database/monspell.txt, which uses the same format and conventions as
monspeak.txt.  So far this has just been used to make invisible wizard/priest
monsters give a message to the player if the player can hear them cast, and
also to make curse skulls and Murray not "gesture wildly".  However, it could
be used to give a greater variety of spell announcement messages based upon the
spell used or the monster's type/species/genus, and/or to give multi-part
messages.

--------------------------------------------------------------------------------
0b90b4a00a | zelgadis | 2008-12-13 07:50:50 +0000

Fixed _fake_spell_effect_ capitalization problem.

--------------------------------------------------------------------------------
4eca7c3f1b | zelgadis | 2008-12-13 05:43:36 +0000

Fixed some book acquirement crashes, and not getting any more manuals after 
having seen all nine of the different levels of fixed level randart books.

--------------------------------------------------------------------------------
9e6fb5de4c | zelgadis | 2008-12-13 02:05:34 +0000

Zooko's Xom patch (piety handling and whether his acts are good or bad).

--------------------------------------------------------------------------------
42d0d63ae2 | zelgadis | 2008-12-13 01:00:01 +0000

Breaks savefile compatibility.
Allow Shadow Creatures spell (along with anything that uses create_monster(),
mons_place(), place_monster() or pick_random_monster()) to work in portal
vaults; only fixed ziggurats to use it.  Must be done by manually calling
dgn.set_random_mon_list(); can't automatically set it from MONS since the
actual frequency of the monster specified that way is controlled by the number
of 1/2/3/etc symbols that are in the map combined with symbol shufflings and
substitutions.  Can add an RMONS keyword to handle it if needed.

Limitations: can only use level id or monster type + base type.  Monster number
(specific number of hydra heads), colour, items, band, and patrolling are all
discarded/ignored.  This can be improved if it's too limiting.

New per-level env.properties CrawlHashTable stores the information.
env.properties can be used to store new per-level data without breaking
savefile compatibility (though changing the handling of old data in
env.properties can still break compatibility).

Random monster spawn rate is now controlled by the per-level
env.spawn_random_rate (though the default rates are all the same as before), in
case any weird portal vaults want to turn on random monster spawning.  Could
also be used to alter the random spawn rate for places like Vault:8

Prevented Shadow Creatues from working in the Temple.

--------------------------------------------------------------------------------
43d6d67d14 | zelgadis | 2008-12-12 23:41:46 +0000

Fix compiler warning.

--------------------------------------------------------------------------------
82833a4666 | dploog | 2008-12-12 21:40:21 +0000

Update CREDITS. Some entry vault cleanup.

--------------------------------------------------------------------------------
46becae1fd | haranp | 2008-12-12 17:25:58 +0000

Spellcasting allies never picked up ranged ammo (because SPELL_NO_SPELL was 
considered ranged.) Improved the logic somewhat. Fixes 2398859.

--------------------------------------------------------------------------------
fdc208fd6a | dploog | 2008-12-11 21:17:46 +0000

Commit level_design.txt change (Eino) for reals.

--------------------------------------------------------------------------------
b3aa3fc7b6 | dploog | 2008-12-11 18:43:02 +0000

General vault improvement (Eino): * remove obsolete mention of padding 
ORIENT:east etc vaults in level_design.txt * remove some of such paddings from 
vaults * some other general cleanup of vault files * slight changes to some 
vaults * two new vaults (gargoyle_guard in float.des, rats_and_rats_again in 
mini.des)

--------------------------------------------------------------------------------
f3244b61a5 | zelgadis | 2008-12-11 12:21:26 +0000

Bug 2414178: applied Brendan MacDonell's patch (2414671) to make the book order 
in spl-book.cc match enum.h

--------------------------------------------------------------------------------
907b837e7c | zelgadis | 2008-12-11 11:59:07 +0000

Take a note when a labyrinth entrance is first found (via either magic mapping 
or seeing it) and when a portal vault is first found (via seeing it only, since 
magic mapping doesn't provide the description of the portal).

--------------------------------------------------------------------------------
cc9ba6c057 | j-p-e-g | 2008-12-11 11:31:22 +0000

* Nerf harpies a bit: they are now slower and have no bite attack   (which 
didn't make sense anyway). * Also list player god in the saved game selection 
menu.

--------------------------------------------------------------------------------
a9ac64d3b9 | zelgadis | 2008-12-11 11:12:18 +0000

Generalize swapping two pieces of terrain in function swap_terrain().
Encapsulate filling out a corpse object for a particular monster in
fill_out_corpse().

Started work on "swap chaos weapon with weapon of victim" chaos effect, but am
putting that off until there's some actor class virtual methods for changing
inventory and equipment.

--------------------------------------------------------------------------------
dec341f5c1 | zelgadis | 2008-12-11 07:35:25 +0000

Allow hydras to be specified by strings like "two-headed hydra" as well as 
"2-headed hydra".  Also, increase maximum number of hydra heads to 20, since an 
19 headed hydra can become a 20 headed one but a 20 headed one can't become 21 
headed.

--------------------------------------------------------------------------------
dfca2b67f0 | dploog | 2008-12-10 12:30:16 +0000

Whitespace fixes (Zaba).

--------------------------------------------------------------------------------
5e333ce7bd | zelgadis | 2008-12-10 11:59:16 +0000

Changed weights of the brands a chaos weapon might simulate and the weight of 
the various chaos effects, to make chaos brand less powerful.
Added berserk and miscast effects for chaos effects, plus chaos weapons will
occasionally give a message-only miscast effect if it would otherwise have done
nothing.

Added several effects that have a chance of happening to an attacker every time
it uses a chaos brand/AF_CHAOS: dropping through temporary a shaft, having the
stairs move out from under them, the weapon making a loud noise.

Monsters killed by a chaos weapon/AF_CHAOS have a chance of immediately turning
into a zombie (assuming the monster didn't leave a corpse; chaos effects don't
(yet) use up corpses).

--------------------------------------------------------------------------------
a9561bf49a | zelgadis | 2008-12-10 07:19:45 +0000

Make debug_item_scan() complain about summoned items found on the floor.
Warn if transfering summoned items to/from a monster, or if giving an item
to a monster with MF_HARD_RESET.

--------------------------------------------------------------------------------
e9a49b7279 | dploog | 2008-12-09 17:20:52 +0000

Update CREDITS.

--------------------------------------------------------------------------------
880504e7f3 | dploog | 2008-12-09 15:08:39 +0000

Remove daevas from teaser ziggurat entry vaults.

--------------------------------------------------------------------------------
e63286e0c4 | zelgadis | 2008-12-09 08:07:19 +0000

When upgrading a hostile monster's non-artefact weapon to the chaos brand, make 
it glowing if it doesn't already have any cosmestic flags (in case the player 
didn't see it get upgraded) and increase it's pluses to more like what it would 
have been if it had been created an ego item.

--------------------------------------------------------------------------------
9da27c1648 | dolorous | 2008-12-09 06:16:29 +0000

Fix [2383845]: Monsters that avoid death from a beam should not be annoyed by 
the damage from that beam.

--------------------------------------------------------------------------------
495876a952 | dolorous | 2008-12-09 06:14:24 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e056021a38 | dolorous | 2008-12-09 03:58:36 +0000

Fix selection of wand type for artificers.

--------------------------------------------------------------------------------
0c09cd621f | dolorous | 2008-12-09 01:43:00 +0000

Allow dwarven cloaks to have egos.

--------------------------------------------------------------------------------
05b9f81386 | dolorous | 2008-12-09 01:41:41 +0000

Fix warning (untested).

--------------------------------------------------------------------------------
59c34de896 | dolorous | 2008-12-08 23:16:10 +0000

Typo fixes.

--------------------------------------------------------------------------------
dca278f491 | dolorous | 2008-12-08 22:50:47 +0000

Simplify.

--------------------------------------------------------------------------------
979227dfb5 | dolorous | 2008-12-08 22:28:21 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
80cf465fff | dolorous | 2008-12-08 21:39:09 +0000

Fix monster positioning in Zin's eyeball-type retribution.

--------------------------------------------------------------------------------
377d299f3a | j-p-e-g | 2008-12-08 16:18:08 +0000

* Colour ASCII sharks WHITE. :) * Adapt Artificer description to make it 
non-gender specific.

--------------------------------------------------------------------------------
d90d423649 | j-p-e-g | 2008-12-08 14:36:42 +0000

* Add sharks. They go into a battle frenzy if they smell blood. * Make harpies 
actually appear in packs. (Oops...) * Properly pluralise hippogriffs as such. * 
Regard butcher swap prompt as safe and default to 'n'.

--------------------------------------------------------------------------------
596223a146 | zelgadis | 2008-12-08 14:29:42 +0000

Chaos beams now bounce off walls at a completely random angle.
NOTE: This uses a weird hack to prevent a bug which sometimes happens when a
chaos beam is fired into the corner of a room.  I think it's caused by
ray.advance(true) and ray.regress() not being symmetrical.

--------------------------------------------------------------------------------
f437c6820c | j-p-e-g | 2008-12-08 13:03:31 +0000

Use an explicit (int) cast for _gold_to_donation. That should fix Eino's 
compile time warning. :)

--------------------------------------------------------------------------------
891c1a9ccb | j-p-e-g | 2008-12-08 11:59:07 +0000

Apply Artificer patch, with small modifications: * Artificers start with a 
knife unless their second wand is a supporting   one (confusion, enslavement) 
in which case they get a dagger. * Enslavement only has 6 charges. * Centaurs 
and Ghouls are restricted, as well.

--------------------------------------------------------------------------------
9cbd1d97ff | zelgadis | 2008-12-08 07:27:52 +0000

Oops, somehow when I moved the monster cloning code to mstuff2 I didn't manage 
to check in the changes to fight.cc

--------------------------------------------------------------------------------
e2a8e84861 | zelgadis | 2008-12-08 06:54:42 +0000

Fix bug 2398445: "Ignite Poison" had the Holy spell discipline.
Trapdoor spiders now leave their own corpses, rather than that of wolf
spiders.

--------------------------------------------------------------------------------
0a035731a0 | zelgadis | 2008-12-08 06:11:34 +0000

Added BEAM_CHAOS and changed chaos launchers/ammo to use that.  Currently only 
chooses a different, random beam flavour (which undoudtedly needs to have their 
relative weights changed after playtesting) for each square it passes through, 
but in the future it might do things like bounce off walls at weird angles or 
animate weapons left laying on the ground.
Added CLOUD_CHAOS, though it doesn't do anything yet.

Monsters which are marked summoned or otherwise given ENCH_ABJ can also be
marked with the type of summoning that happened, which is stored in the
until-now-unused ENCH_SUMMON.  This is useful for figuring out if a monster has
ENCH_ABJ but isn't really summoned (like fire vortices created by Fire Storm or
dancing weapons created by Tukima's Dance) so that they won't be affected by
abjuration.  It's also currently used to do a different "dissapears in a puff
of smoke" messages for summoned monsters based on the summoning type, so that
monsters summoned by Shadow Creature "dissolve into shadows" and don't leave
behind any clouds, and temporary god gift monsters from good gods "dissolve
into sparkling lights".  In the future it might be used to do temporarily
animated corpses, which turn back into a corpse when killed or when the
animation runs out.

--------------------------------------------------------------------------------
5dc8d3bb78 | dploog | 2008-12-08 04:26:29 +0000

Repair two ziggurat entry vaults.

--------------------------------------------------------------------------------
6980d1d146 | ennewalker | 2008-12-08 03:22:46 +0000

Tiles performance improvements. redraw() is not needlessly done three times as 
often as it should.

--------------------------------------------------------------------------------
cdd74d0b46 | j-p-e-g | 2008-12-07 23:44:02 +0000

Actually replace sold out shops with the new feature DNGN_ABANDONED_SHOP. This 
makes comparisons much easier and also avoids giving away information about far 
away shops being opened/closed. (This was only an issue if a shop only held 
blood potions that rotted away, but still.)

--------------------------------------------------------------------------------
f4d7abfdc2 | dploog | 2008-12-07 23:39:58 +0000

Add sort_menus=inv:true:equipped to init.txt, making all worn gear appear on 
top of the listings for PTWR commands. Fixes 2013121. If this works well, we 
should make this a true default in initfille.cc.

--------------------------------------------------------------------------------
8c22e72c14 | j-p-e-g | 2008-12-07 22:12:08 +0000

Erase closed shops from the overmap.

--------------------------------------------------------------------------------
7b19365a5c | j-p-e-g | 2008-12-07 21:25:14 +0000

Describe closed shops as "abandoned" and colour its glyph grey (= lights turned 
off).

--------------------------------------------------------------------------------
b43c29a045 | ennewalker | 2008-12-07 19:13:56 +0000

Changing rltiles to store name -> idx lookup in a straight array, rather than a 
std::map.  (This should hopefully fix Johanna's compile troubles.)

--------------------------------------------------------------------------------
669510fbfe | dploog | 2008-12-07 18:24:46 +0000

Indicate that the new portal vaults are timed.

--------------------------------------------------------------------------------
b6eeacb0eb | j-p-e-g | 2008-12-07 16:36:09 +0000

Fix BR 2398262: tiles giving away unidentified weapon brands

--------------------------------------------------------------------------------
8d874e6ef4 | dploog | 2008-12-07 16:13:13 +0000

Rarely have ziggurat entries in D:3-20.

--------------------------------------------------------------------------------
9575aca856 | j-p-e-g | 2008-12-07 16:04:17 +0000

Add tiles for disturbance in shallow water (only preliminary since you can only 
recognize them if you're looking for them), and for closed shops. Move statue 
tiles into monster folder.

--------------------------------------------------------------------------------
247c86d819 | dploog | 2008-12-07 16:04:06 +0000

Replace "plastic" as colour attribute for wands and amulets by "fluorescent".

--------------------------------------------------------------------------------
e5619f6af0 | dploog | 2008-12-07 15:57:38 +0000

Some more words for artefact books.

--------------------------------------------------------------------------------
3ce915baea | dshaligram | 2008-12-07 14:13:58 +0000

Fixed ziggurat entry vaults appearing too early.

--------------------------------------------------------------------------------
e389d95705 | zelgadis | 2008-12-07 08:41:09 +0000

Fix bug 2398346: don't record note on identify-by-wearing of mundane armour.
Fix some god gift autoinscription problems.

--------------------------------------------------------------------------------
0f4b659ddd | zelgadis | 2008-12-07 07:53:33 +0000

Breaks savefile compatibility.
Re-arranged book_type so that books you might find on the floor come first,
then books only given out by certain gods, and so on.  Added book types
BOOK_RANDART_LEVEL, BOOK_RANDART_THEME and BOOK_CARD_EFFECT.

Can now get randart books both from acquirement and shops/floor.  Acquirement
books have a chance of being a manual with a spell discipline skill.

Randart books have their own appearances now, and fixed level books their own
naming scheme.  Needs more entries.

Randart books aren't hilited in the menu like other randarts are; don't know
why.

Added some assertions to choose_random_weighted().

--------------------------------------------------------------------------------
fea3c8df37 | dploog | 2008-12-07 01:04:52 +0000

Repair Ctrl-F help page. Use royal jelly as example now. (slinkies)

--------------------------------------------------------------------------------
902c96c3a1 | j-p-e-g | 2008-12-06 19:12:27 +0000

Remove a debugging statement.

--------------------------------------------------------------------------------
a7015583f9 | j-p-e-g | 2008-12-06 19:03:47 +0000

Try harder to make rock worms stay in rock until you actually lure them out 
into the open.

--------------------------------------------------------------------------------
63560aa98c | j-p-e-g | 2008-12-06 13:38:23 +0000

Actually add the chaos brand tile...

--------------------------------------------------------------------------------
5b2a293404 | j-p-e-g | 2008-12-06 13:24:25 +0000

Reuse the ?random_uselessness tile (multicoloured question mark) for the chaos 
brand. Still can't compile Tiles (*sigh*) but I trust I won't break anything.

--------------------------------------------------------------------------------
41271ed5d2 | ennewalker | 2008-12-06 05:12:53 +0000

[2392486] Fixing infinite loop in map generation.  (Stupid comma operator.)

--------------------------------------------------------------------------------
4080747652 | zelgadis | 2008-12-06 02:45:10 +0000

Make titled artifact spellbooks dislay properly in inventory.

--------------------------------------------------------------------------------
45318493e4 | ennewalker | 2008-12-06 02:16:31 +0000

[2216931] Fixing crash from player ghosts.

--------------------------------------------------------------------------------
5f2400efb4 | ennewalker | 2008-12-06 01:57:40 +0000

[2311141] Adding tile for scroll of vulnerability.

--------------------------------------------------------------------------------
ac768abe15 | ennewalker | 2008-12-06 01:29:45 +0000

Fixing debug compile errors.

--------------------------------------------------------------------------------
2a33319de7 | zelgadis | 2008-12-05 21:01:44 +0000

Weighted themed randart spellbooks.

--------------------------------------------------------------------------------
9c36f47f3c | dploog | 2008-12-05 12:26:51 +0000

Make ziggurat outerwalls permarock. New entry vault.

--------------------------------------------------------------------------------
b2695542fe | dshaligram | 2008-12-05 12:11:58 +0000

Fix broken ziggurat (David).

--------------------------------------------------------------------------------
a79faf873b | dploog | 2008-12-05 11:20:19 +0000

Apply white colouring for artefacts and lightgreen colouring for equipped items 
to the inventory only. (But keep lightred colourng for cursed items 
everywhere.) This gives artefact wielded weapons their natural colour on the 
main screen and lets the Mace of Variability switch colours again, fixing 
2381462.
For some reason, the line
 menu = inventory:white:*.artefact.*
colours artefacts in pickup listings white.

--------------------------------------------------------------------------------
ffc2688d71 | zelgadis | 2008-12-05 06:09:49 +0000

Non-weighted themed randart spellbooks, and prices for randart spellbooks.

--------------------------------------------------------------------------------
0c5066560f | zelgadis | 2008-12-04 08:12:50 +0000

Allow monsters to be created by partial name with the &M wizard command.

--------------------------------------------------------------------------------
360ab04717 | zelgadis | 2008-12-04 07:42:48 +0000

Make the royal jelly's name and pronoun come out right now that it's a unique.

--------------------------------------------------------------------------------
4c38f6bad4 | zelgadis | 2008-12-04 07:19:27 +0000

Activated code that equips raised dead with the equipment they died with (minus 
scrolls, potions and wands).  Ignores items which have been droped and corpses 
which have been moved.

--------------------------------------------------------------------------------
cc0f9b2965 | zelgadis | 2008-12-04 06:38:17 +0000

Savefile compatibility breakage from keeping track of which spells have been 
seen.
Implemented fixed-level randart spell books, which is all randart spellbooks as
of now.  All my attempts at sorting the spell list so that spells with the same
schools group together have utterly failed.

Got rid of the hackish "non-monster origin is stored in item.orig_monnum as
(-origin - 2)" logic, replaced with the slightly less hackish "-origin".  Added
the two enumerations IT_SRC_START and IT_SRC_SHOP to do it.  Also,
origin_is_god_gift() and origin_is_acquirement() can retrieve the god/source of
the item so that you don't have to do the negation and typecasting yourself.

Added some new spell flags:

* SPFLAG_BATTLE for non-conjuration spells which are still combat/battle
  related (branding spells and single school attack spells like "Pain"),

* SPFLAG_CARD for spells which are card-type effects which don't show up in
  ordinary spellbooks (Tomb of Doroklohe and (I assume) Disintigrate)

* SPFLAG_TESTING for spells which are only used for testing (Debugging Ray)

* SPFLAG_DEVEL for spells that are still under development (Crush,
  Disrupt, and Detect Magic).

--------------------------------------------------------------------------------
fccc5c8dd6 | zelgadis | 2008-12-04 01:14:17 +0000

Properly pluralise words ending in "ay", "ey", "iy", "oy" and "uy".

--------------------------------------------------------------------------------
a09b77dfd6 | zelgadis | 2008-12-04 00:52:15 +0000

Properly conjugate verbs ending in "f", "fe" and "y".

--------------------------------------------------------------------------------
36e3e193a6 | zelgadis | 2008-12-04 00:45:09 +0000

Fixed some melee_attack::chaos_affects_defender() bugs.

--------------------------------------------------------------------------------
c408f8b544 | j-p-e-g | 2008-12-03 23:21:52 +0000

Harpies now also eat food on the ground. Add a description (as suggested by 
David) and two quotes. Since harpies will eat anything they are now resistant 
to poison.

--------------------------------------------------------------------------------
419f00a759 | dploog | 2008-12-03 19:47:16 +0000

Repaired minivault_15 (Lava pond).

--------------------------------------------------------------------------------
fddd033600 | dploog | 2008-12-03 17:34:35 +0000

Added #include <algorithm> to randart.cc (cbus).

--------------------------------------------------------------------------------
ba3d08acb4 | j-p-e-g | 2008-12-03 16:16:06 +0000

Implement harpyes. They ... * appear in bands of 2-5 * use bat like movement * 
may steal (= destroy) the player's food.
Still needs a tile.

Also, actually use the M_BATTY flag instead of hardcoding batty monsters.

--------------------------------------------------------------------------------
c4d32f0ab7 | dploog | 2008-12-03 15:27:58 +0000

Fix messages for disappearing portals.

--------------------------------------------------------------------------------
275cb245c1 | dshaligram | 2008-12-03 15:27:19 +0000

Expand portal entity prop in disappearance messages.

--------------------------------------------------------------------------------
9a7fc9ef17 | dploog | 2008-12-03 11:16:16 +0000

Timer message fixes for the new times portal vaults.

--------------------------------------------------------------------------------
7615e051dd | dploog | 2008-12-03 10:45:34 +0000

Ice cave tweaks (Eino).

--------------------------------------------------------------------------------
589b315069 | zelgadis | 2008-12-03 10:40:13 +0000

Make the Royal Jelly a unique monster.
Don't allow monsters to polymorph into a unique.

--------------------------------------------------------------------------------
5a97fcc4c5 | dploog | 2008-12-03 10:31:30 +0000

Improved miniature tomb description (slinkies).

--------------------------------------------------------------------------------
8bf4f93aa1 | zelgadis | 2008-12-03 06:08:48 +0000

Add another optional parameter to items() of makeitem.{cc,h}, the agent 
parameter.  If not -1 then it will be used to set the acquirement agent of the 
item.  This is done in items() so that make_item_randart() can use it if it's 
called from items().  Before this _god_fits_artefact() in randart.cc was only 
being called for choosing an appropriate god for random artifact names, and not 
to check the appropriateness of the randart proeprties chosen for randart god 
gifts.
Changed _god_fits_artefact() so that if a bug leads a god to gifting an item
with an inapropriate base_type or sub_type that it will give an assertion or
error message instead of causing make_item_randart() to go into an infinite
loop.

--------------------------------------------------------------------------------
921d8f93a3 | dploog | 2008-12-03 01:30:54 +0000

Made Ice Cave and Minitomb portal vaults timed. (Thanks to slinkies.)

--------------------------------------------------------------------------------
74e9d8c6bc | dploog | 2008-12-02 22:58:23 +0000

Minor changes to help screens. Fixes 2375517.

--------------------------------------------------------------------------------
566adb26e6 | dploog | 2008-12-02 19:23:57 +0000

Ice cave portal vault: new maps (Eino), added cloud generators.

--------------------------------------------------------------------------------
021366461a | zelgadis | 2008-12-02 14:09:20 +0000

The start of randart spellbooks.  Never randomly generated and only created via 
the wizard command &+, since there's no logic to how the random set of spells 
are selected and there's no valuation code in shopping.cc.  No randart manuals 
or books of destruction, since I have no clue what they'd be like.
The code allows for any book or spell to have its normal set of spells
overridden by an arbitrary/customized set of spells, but this is only used by
randart spellbooks as of now.

--------------------------------------------------------------------------------
29d2d1be7e | zelgadis | 2008-12-02 11:16:08 +0000

Implemented "flee towards/into walls" behaviour for rock worms.  It isn't very 
sophisticated, especially if there's friendly monsters between the worm and the 
nearest wall, but it's a srart.
Added rock worms to the Lair and the Dungeon with the same depth and
rarity as trapdoor spiders.

--------------------------------------------------------------------------------
8bc4633d7a | zelgadis | 2008-12-02 08:09:26 +0000

Only switch branded gift items to chaos brand 50% of the time.

--------------------------------------------------------------------------------
d264d1b7fa | zelgadis | 2008-12-02 07:45:24 +0000

Ooops, wasn't actually prompting player for weapon swap if butchery was 
interrupted by a monster coming into view.
Also, give "monster comes into view" warning message if butchery is
interrupted.

--------------------------------------------------------------------------------
00eb4216ea | zelgadis | 2008-12-02 06:39:09 +0000

Changed interrupted butchering behaviour as per Johanna's 
suggestions/observations:
1) Get rid of option swap_when_safe and its behaviour.

2) If auto-swap butchery is interrupted by teleportation or chagning levels
   (banishment) then auto-swap back if there's no monsters nearby.

2b) Do the same if butchery is interrupted and then later a large position
    change happens.

3) If auto-swap butchery is interrupted by something like poison damage,
   if the butchery is resumed and finished then swap back.

4) If auto-swap butchery is interrupted by a monster, then if the
   new option prompt_for_swap is set the game will ask if you wish to
   swap back from your butchering tool.

4b) Do the same if butchery is interrupted and then later a large
    position change lands you near some hostile monsters.

--------------------------------------------------------------------------------
fa6393b63b | dshaligram | 2008-12-02 04:36:18 +0000

Fix broken sewer messaging (dpeg).
Fixed bad bounds checks for minivaults placed by dgn_place_map.

--------------------------------------------------------------------------------
20c98d6789 | ennewalker | 2008-12-02 01:34:14 +0000

Fixing Linux compile warnings and errors.  (Although, not the one Johanna is 
seeing.)

--------------------------------------------------------------------------------
86b89c04ff | dploog | 2008-12-01 21:27:08 +0000

Add lua function to icecave.des for later cloud production.

--------------------------------------------------------------------------------
9618dbde9f | dploog | 2008-12-01 20:03:05 +0000

Repair of medium_gnoll_camp (Eino).

--------------------------------------------------------------------------------
ebd917c9d8 | j-p-e-g | 2008-12-01 18:43:44 +0000

Use Tomb rock and floor tiles for the minitomb portal vault. The ziggurats 
should probably use the Zot tile of the ASCII colour chosen in 
clua/ziggurat.lua but since I'm unable to compile Tiles at the moment I didn't 
want to touch that.

--------------------------------------------------------------------------------
ae2d625b60 | j-p-e-g | 2008-12-01 16:32:51 +0000

Make sirens draw the player in their direction. This will not actually pull the 
player into deep water, but it's a scary enough effect.

--------------------------------------------------------------------------------
c2a617f20f | dshaligram | 2008-12-01 16:02:08 +0000

Include distance hints for timed portals (dpeg).

--------------------------------------------------------------------------------
e5fc908cc5 | dshaligram | 2008-12-01 14:03:23 +0000

Fix .des timer messaging to be easier to customise, applied timer to sewer 
portals.
Fix typo in monspeak.txt (slinkies).

Fixed hippogriff plural.

--------------------------------------------------------------------------------
6384f9c708 | zelgadis | 2008-12-01 13:31:32 +0000

Oops, wasn't setting beam.item_pos and beam.item_index when a beam item was 
dropped.

--------------------------------------------------------------------------------
b2ad1e469c | j-p-e-g | 2008-12-01 13:01:27 +0000

* Fixed siren movement into deep water. * Reorder branch dependent placement 
functions in monplace.cc. * Added chances for trapdoor spider in the Dungeon, 
Lair, Hive,   and Tomb (!)
I know it doesn't fit there in an obvious way, not being undead, 
but aren't the pyramids rumoured to contain traps and such? 
A self-hiding poisonous spider pretty much fits that bill.

--------------------------------------------------------------------------------
18fa553884 | zelgadis | 2008-12-01 12:44:27 +0000

Slightly improve melee_attack::chaos_affects_defender()'s use of fire_beam().

--------------------------------------------------------------------------------
f5e97453a4 | zelgadis | 2008-12-01 12:29:07 +0000

Added shields of reflection, though they're not randomly generated and have no 
valuation is shopping.cc.  It currently only reflects missiles that are blocked 
with the shield.  They could also reflect the brand effects of blocked melee 
weapons, but I'm not sure if that's a good idea.
drop_item and the item to be dropped have been moved from fire_beam()'s
parameters into the bolt structure, along with the beam's remaining range.
Seems to work fine, but it might still lead to some buggyness.

The game now distinguishes between killing yourself by hitting yourself with a
beam bounced off a wall versus other forms of self targeting.

--------------------------------------------------------------------------------
04f5058cac | zelgadis | 2008-12-01 04:00:00 +0000

Add some chaos attacks/weapons.  Missiles and launchers of chaos fire a bolt of 
a random type (including enchantments, which isn't so good since they don't 
have a visible beam).  Might want to add BEAM_CHAOS and make it a beam of that.
Weapons of chaos either does a random brand effect (fire, poison, etc) or a
random chaos effect (which includes cloning the attack victim).

The AF_CHAOS monster attack flavour either does a random monster flavour or
chaos effect (same chaos effects as for weapons).

The relative frequency of all the different effects/brands/flavours no doubt
needs adjustment.

All of this is currently only available via Xom.  10% of all common-type demons
sent in by Xom will be chaos spawn (the only kind that use AF_CHAOS, and never
randomly generated otherwise).  All item gifts from Xom which are generated
with a brand will have their brand switched to chaos (this should probably be
made to happen less than 100% of the time).  And finally one of Xom's bad acts
is to upgrade a non-branded weapon of a nearby hostile monster to a chaos brand
(this might need to be made less (or more) common).

Oh, and if a randart has a brand which would be identified if it were merely an
ego weapon, it now identifies the RAP_BRAND property of the randart.

--------------------------------------------------------------------------------
6e3985b473 | zelgadis | 2008-12-01 03:16:49 +0000

Don't pass a std::string to mprf().

--------------------------------------------------------------------------------
7923d4e2c0 | zelgadis | 2008-12-01 03:16:00 +0000

In mons_adjust_flavoured(), check for hellfire with BEAM_HELLFIRE, not the 
string "hellfire", and add a similar flavour adjustment for BEAM_HELLFROST.
If the player uses BEAM_HELLFIRE or BEAM_HELLFROST it's considered
an unholy act.

--------------------------------------------------------------------------------
50e0fa5f27 | dploog | 2008-12-01 03:01:18 +0000

Change range for the Sewer portal vault to D:3-6 (was 3-7).

--------------------------------------------------------------------------------
2e4aeb705d | ennewalker | 2008-12-01 02:22:31 +0000

[2054793] Partial implementation of the request to have COLOUR tags affect tile 
choice.  Vaults can now override the default tileset (walls and floors) for an 
entire level.  This has been pushed to vaults where it makes sense (sewers, ice 
caves, ziggurats, bazaars, Shoals:5, Zot).
ROCKTILE and FLOORTILE can be used when authoring vaults to set these values, 
both of which take a single tile name as a string.  These values are ignored in 
console builds.

--------------------------------------------------------------------------------
a2bd3ea6e6 | ennewalker | 2008-12-01 01:59:24 +0000

Updating dc-corpse.txt to use new dc-mon/animals subdirectory.

--------------------------------------------------------------------------------
97fb0d78f6 | j-p-e-g | 2008-12-01 00:34:40 +0000

* Rename beheld -> mesmerised. * Fix forget_map routine for Tiles.   There are 
two problems remaining:     a) Calling forget_map every ~20 turns is fine for 
ASCII since it        mostly happens outside vision range anyway but looks 
really odd        and spurious when watched in the minimap.        Potential 
solution: Call the function more often.     b) The minimap currently does not 
recenter but of course it should        from time to time. The problem with 
this is that this is likely        to look wobbly.        Potential solution: 
Disable the minimap entirely while in                            labyrinths.
I don't like the solutions I came up with, so if anyone has a better
idea please speak up.

--------------------------------------------------------------------------------
845cc22c39 | j-p-e-g | 2008-11-30 20:37:15 +0000

* Move all tiles of animal monsters into a subfolder animals/. * Reorder 
dc-mon.txt accordingly, and by difficulty. * Add the siren tiles I forgot in my 
last commit.

--------------------------------------------------------------------------------
fd3efe3290 | j-p-e-g | 2008-11-30 19:20:23 +0000

* Repurpose program bug tile for chaos spawns (using error tile for   program 
bugs instead). * Add sirens (don't really work yet). * Reorder monsters in tile 
code.

--------------------------------------------------------------------------------
9240715aa2 | dploog | 2008-11-30 14:47:24 +0000

Minor vault tweak.

--------------------------------------------------------------------------------
4fd0303bb9 | dploog | 2008-11-30 14:35:45 +0000

Ziggurats: entry fee now has some effect on loot.

--------------------------------------------------------------------------------
5b635a64eb | dshaligram | 2008-11-30 11:32:43 +0000

Set ziggurat portal properties as zig().portal instead of zig().props.

--------------------------------------------------------------------------------
26bcfb30d8 | dploog | 2008-11-30 03:41:37 +0000

Ziggurat tweaks: Reduced map area slightly. Weights for more monster sets. 
Limit to 27 ziggurat levels.

--------------------------------------------------------------------------------
bf056bb739 | dploog | 2008-11-30 02:18:23 +0000

Make permanent bazaars more rare. The bazaar timer now depends on depth (and is 
more generous at shallow depths).

--------------------------------------------------------------------------------
2a11b40172 | j-p-e-g | 2008-11-29 21:17:35 +0000

Also add the armour/artefact folder.

--------------------------------------------------------------------------------
20aa0dca0b | j-p-e-g | 2008-11-29 21:02:11 +0000

Really rename dc-co.txt -> dc-corpse.txt, and readd the armour tiles folder.

--------------------------------------------------------------------------------
ba4464faa7 | dploog | 2008-11-29 15:06:23 +0000

Added another minitomb entry vault (Zaba).

--------------------------------------------------------------------------------
0bd7ab6a01 | dploog | 2008-11-29 14:21:41 +0000

More portal vault guidance in level_design.txt. Fixed a minitomb. Updated 
CREDITS.

--------------------------------------------------------------------------------
170ce4cf0c | dploog | 2008-11-29 14:00:34 +0000

Repaired a minitomb entry (Darshan). Added another minitomb map (Zaba).

--------------------------------------------------------------------------------
59158b8c06 | dshaligram | 2008-11-29 13:25:03 +0000

Fix broken timed portals (pointless).
Fix floor/rock colour changes running LOS when entering bazaars before the 
player is moved to the destination stair.

--------------------------------------------------------------------------------
3544990ee5 | dshaligram | 2008-11-29 12:05:46 +0000

Make .des file depth-parse stricter, fixed default-depth for minitomb.

--------------------------------------------------------------------------------
54a8ee37c5 | zelgadis | 2008-11-29 06:09:05 +0000

Changed player attribute type from unsigned char to unsigned long.  Breaks 
savefile compatibility.
Keep track of how much gold the player has collected, spent at shops,
donated, and otherwise used (like at ziggurats) and include that info
in the misc section of the character dump file.

Place-holder for chaos spawn monster.

--------------------------------------------------------------------------------
f44df6134a | dploog | 2008-11-29 01:34:17 +0000

And send the maps, too.

--------------------------------------------------------------------------------
0e263f7d43 | dploog | 2008-11-29 01:33:13 +0000

Added miniature tomb portal vault (Zaba).

--------------------------------------------------------------------------------
5331993d1a | j-p-e-g | 2008-11-28 23:07:05 +0000

* Add icons for weapon brands, mostly borrowing from potions/wands and   with a 
few new creations. :) * Move tiles for unrandarts and fixedarts into artefact/ 
subfolders. * Move the Knife of Accuracy into the unrandart list. * Add a lab 
vault containing a hungry ghost (maybe should be rarer).

--------------------------------------------------------------------------------
fde21eb9a2 | dshaligram | 2008-11-28 21:29:47 +0000

Fixed slow ziggurat level build, fixed ziggurat dismissals of simulacra 
resulting in messages.

--------------------------------------------------------------------------------
c8e9d5bb28 | dshaligram | 2008-11-28 21:28:30 +0000

Fix all manuals generated by vaults becoming manuals of Fighting (dpeg).

--------------------------------------------------------------------------------
eaa40e6931 | dploog | 2008-11-28 20:08:01 +0000

Fix FR 2354344: entry vaults with many fountains.

--------------------------------------------------------------------------------
b7c631c9c9 | dploog | 2008-11-28 20:04:39 +0000

Added more ziggurat pillars. Repaired ziggurats DEPTHs.

--------------------------------------------------------------------------------
e83e677584 | dshaligram | 2008-11-28 19:22:03 +0000

Make it easier to conditionalise ziggurat monster sets by depth, and allow 
weighting monster sets. Removed the completely random monster set.

--------------------------------------------------------------------------------
9a362faf55 | zelgadis | 2008-11-28 12:53:12 +0000

Pandemonium lords and player ghosts are now automacially marked as interesting 
when they're created/placed.

--------------------------------------------------------------------------------
007ead191a | j-p-e-g | 2008-11-28 11:58:20 +0000

* Fixed a few issues with transformations. * Moved fixed arts' plusses, name 
and colour into a struct in   randart.cc. (This should maybe be moved into 
unrand.h.)   Name and description are now stored in the props vector like for   
randarts, and artefact_name() now handles all randarts, unrandarts   and fixed 
artefacts.
The Knife of Accuracy should probably be turned into an unrandart.

--------------------------------------------------------------------------------
d04de65856 | zelgadis | 2008-11-28 11:10:55 +0000

Don't take notes on messages in certain channels, like MSGCH_EXAMINE and 
MSGCH_TUTORIAL.

--------------------------------------------------------------------------------
b4bd9e532d | zelgadis | 2008-11-28 10:36:12 +0000

Oops, asking for no ego was giving a flaming ego.

--------------------------------------------------------------------------------
6c655e395f | zelgadis | 2008-11-28 10:25:45 +0000

Use full-sized buffer when asking for ego type of created-by-name item.

--------------------------------------------------------------------------------
730c638ee6 | zelgadis | 2008-11-28 10:16:40 +0000

Fix bug 2354889: if shallow water has its colour overriden, then make items 
laying in it the same colour.

--------------------------------------------------------------------------------
3073a55293 | dploog | 2008-11-28 09:35:39 +0000

Added welcome message when entering a ziggurat.

--------------------------------------------------------------------------------
28efc383ff | dploog | 2008-11-28 09:16:09 +0000

Moved unused documentational lua code to a separate file. Added some words to 
"how to help" in the README.

--------------------------------------------------------------------------------
f36164d02a | zelgadis | 2008-11-28 08:55:48 +0000

Speed up explosion() by reducing the amount of useless recursion that 
_explosion_map() does.

--------------------------------------------------------------------------------
91d2dd8e66 | j-p-e-g | 2008-11-28 01:33:20 +0000

* Tweak Snorg's tile to increase the difference to the plain troll. * Add a new 
tile each for the flaming corpse and trapdoor spider. * Add a sticky flame 
overlay for the player tile. * Move all unique monsters into dc-mon/unique 
(minus Adolf). * Remove comments and commented out monsters from the tile 
definitions. * Minor comment fixes and code cleanup.
I'm really starting to get the hang of the tile creation. :)

--------------------------------------------------------------------------------
460910fa3e | dploog | 2008-11-27 23:26:36 +0000

Added ziggurat entry vault and pillars.

--------------------------------------------------------------------------------
68a8b35ba8 | dploog | 2008-11-27 22:29:41 +0000

Ziggurats: repaired hexagon builder; tweaked map areas.

--------------------------------------------------------------------------------
51c0252568 | dploog | 2008-11-27 19:16:57 +0000

Two ziggurat entry vaults. Holy monster set (angel, daeva).

--------------------------------------------------------------------------------
fd66a3b7e1 | dploog | 2008-11-27 18:39:57 +0000

More ziggurat monster sets. More greater mummies (syllogism).

--------------------------------------------------------------------------------
9f55db013b | dshaligram | 2008-11-27 18:31:15 +0000

Add (incomplete) hex builder for ziggurats (dpeg).

--------------------------------------------------------------------------------
b62d7f6ff2 | dshaligram | 2008-11-27 17:56:48 +0000

Don't apply Swamp rock fixup inside vaults.

--------------------------------------------------------------------------------
586e083528 | dploog | 2008-11-27 17:49:17 +0000

Minor changes to speech.

--------------------------------------------------------------------------------
5969571c6c | dshaligram | 2008-11-27 17:11:41 +0000

ziggurat ellipse builder (dpeg), needs work.

--------------------------------------------------------------------------------
a6513eb40f | j-p-e-g | 2008-11-27 17:05:56 +0000

Randomize monster speech, and a few new lines. Also added Polyphemus' speech 
while I was at it (courtesy of freakingretard).

--------------------------------------------------------------------------------
826f76090e | j-p-e-g | 2008-11-27 14:00:53 +0000

* Add special tiles for the special runes (hells, demon lords). * Really use 
Cocytus tiles for the Ice Cave. * Add a small lab vault containing the trapdoor 
spider because it just   fits.

--------------------------------------------------------------------------------
12c403b697 | zelgadis | 2008-11-27 13:54:08 +0000

Explosion weren't propagating along diagonal tunnels (like those made by a wand 
of digging).  Fixed by making _explosion_map() recurse in all 8 directions 
instead of just north/south/east/west; might introduce some problems that I'm 
not aware of.

--------------------------------------------------------------------------------
62ba7977a2 | zelgadis | 2008-11-27 13:29:07 +0000

Giant spores and lightning balls exploding is now handled immediately inside of 
monster_die(), removing the need to ever check for "monster is dead but still 
present because it's about to explode".  It also lets you get the credit (and 
blame) for any monsters the explosion hits if you attacking it triggered the 
explosion.  While I was at it I made the death-cause display show if death from 
spore/ball explosion was due to an explosion triggered by the player or one of 
the player's pets.
Also made it so that when similacrums and fire vortices are banished
or wizard-command-genocided that they don't leave behind a
freezing/burning cloud.

--------------------------------------------------------------------------------
0566854703 | zelgadis | 2008-11-27 08:54:49 +0000

Made flip_rectangle() use clamp_in_bounds().
Prevented divide-by-zero error in rectangle_dimensions().

Shrunk clamping rectangle in clamp_in_bounds() one square away from
each side to prevent floor squares from ever abutting the very edge of
the level grid.

--------------------------------------------------------------------------------
d7ca99b68d | zelgadis | 2008-11-27 08:30:54 +0000

Added functions print_dlua_stack() and print_clua_stack(), which can be called 
from the debugger to print the call stacks of the dlua interpreter and the clua 
interpreter.  Code borrowed from ToME 3 (code I originally wrote, so borrowing 
is definitely okay).

--------------------------------------------------------------------------------
c5ce2cf3db | zelgadis | 2008-11-27 06:42:53 +0000

place_name(): use you.level_type_name_abbrev for the short form of of a portal 
vault's name.

--------------------------------------------------------------------------------
b86f2dde44 | zelgadis | 2008-11-27 06:28:38 +0000

When entering a portal vault, don't prompt wizards for which map to use if 
there's only one possibility to choose from.

--------------------------------------------------------------------------------
a740ffefc3 | zelgadis | 2008-11-27 05:58:14 +0000

Can now use wizard command &D to go down levels in a ziggurat.

--------------------------------------------------------------------------------
1583874512 | zelgadis | 2008-11-27 05:26:45 +0000

Changed "dstovermap" portal vault entrance parameter to "overmap".
New portal vault entrance parameter "overmap_note" can be used to
associate a note with a particular entrance on the overmap display.

The overmap display now notes entry fee for each known ziggurat.

--------------------------------------------------------------------------------
9056ed35e1 | zelgadis | 2008-11-27 03:52:25 +0000

Oops, fix weight of deep-level jelly pits.

--------------------------------------------------------------------------------
8d0d07de3c | zelgadis | 2008-11-27 03:44:22 +0000

All special room code has been moved to dat/rooms.des
DEBUG_SPECIAL_ROOMS can be defined to cause special rooms to be placed
as often as possible.

--------------------------------------------------------------------------------
c96ce81a54 | zelgadis | 2008-11-27 03:24:41 +0000

Fill in special rooms like it was while still coded in C++

--------------------------------------------------------------------------------
ccaab92e8a | zelgadis | 2008-11-26 22:28:03 +0000

Placeholders for the various types of special rooms now occur at approximations 
of the frequency they did in 0.4 (see end of dat/rooms.des for the 0.4 
frequencies).  Only bee-hives and jelly pits appear in the Lair, and only 
morgues appear in the Crypt.
The depths at which special rooms appear is now entirely controlled by
the DEPTH lines in dat/rooms.des, so they can appear at any depth except
for D:1, since D:1 is constructed by differnt code than the other levels.
With the current set of depths this means that special rooms on roguey
levels can start appearing 3 levels earlier than in crawl 0.4

--------------------------------------------------------------------------------
b81f40c68c | dshaligram | 2008-11-26 18:59:26 +0000

Ziggurat tweaks (dpeg).

--------------------------------------------------------------------------------
a41a228894 | dshaligram | 2008-11-26 18:48:08 +0000

Use Branch:$ instead of spelling out explicit depths in ziggurat (dpeg).

--------------------------------------------------------------------------------
59e2725ce1 | dshaligram | 2008-11-26 18:42:47 +0000

Slim down the loot vault to make it easier to place.

--------------------------------------------------------------------------------
21cfdbc398 | dshaligram | 2008-11-26 18:34:19 +0000

Attempt to place ziggurat loot vault inside the ziggurat. If the vault doesn't 
fit, we fall back to generating the loot in the open.

--------------------------------------------------------------------------------
851436e3e1 | dshaligram | 2008-11-26 17:08:12 +0000

[2123909] Fix Lua macros wasting turns.

--------------------------------------------------------------------------------
13d0f16c1a | j-p-e-g | 2008-11-26 15:43:29 +0000

Add blood and glass to labyrinths. In ASCII wizard mode these features are 
highlighted in the level map (&{) and can then easily be reached via xm (normal 
map), but only until the first shift takes place. Feedback welcome!

--------------------------------------------------------------------------------
265597e3aa | zelgadis | 2008-11-26 08:22:29 +0000

When viewing the level map in console (non-tile) builds, if wizard mode is on 
then display the coordinates of the cursor at the top of the screen.

--------------------------------------------------------------------------------
942d3a4f94 | zelgadis | 2008-11-26 08:20:13 +0000

A monster can also be made floating by being displaced off of mgrd by a monster 
with hp <= 0 but whose type != -1.
Also, make debug_mons_scan force monster visibility when naming the monster.

--------------------------------------------------------------------------------
f6549233f0 | zelgadis | 2008-11-26 08:18:36 +0000

Reset all of menv in tag_read_level_monsters().  Fixes bug where sometimes 
floating monstes would be detected by debug_mons_scan() when going from one 
level to another, but the problem would be fixed if you saved and restored the 
game.
In tag_read_level_monsters() if DEBUG or DEBUG_MONS_SCAN is defined give
an error message if restoring a monster onto a square which already
has a monster.

--------------------------------------------------------------------------------
82092097b5 | zelgadis | 2008-11-26 07:11:47 +0000

In debug_mons_scan() if a monster is floating because another monster is also 
on the same square then print a warning message about it.

--------------------------------------------------------------------------------
837c720f3d | dolorous | 2008-11-26 04:52:55 +0000

Add spacing fix.

--------------------------------------------------------------------------------
6cad483232 | dolorous | 2008-11-26 04:51:31 +0000

Limit the number of tries used to find a random space on the level in 
monster_random_space(), as is done with random_near_space().

--------------------------------------------------------------------------------
59088a6aff | dolorous | 2008-11-26 04:49:42 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9629076ee9 | zelgadis | 2008-11-26 04:49:33 +0000

Start of moving special room definitions (monster lairs and monster pits) to 
lua.  As of now all special rooms are filled with rats.
Introduces two new members to map_def, weight_depth_mult and weight_depth_div,
which change a map's weight based on the absolute dungeon depth (not yet
accesible via lua or vault definitions).  This needs to be done in C++
rather than in lua since a map's lua isn't re-invoked every time a random
map is chosen, but only when the map is placed.

NOTE: When I first made this change crawl started crashing until I manually
forced the recompilation of util/levcomp.lex.o and util/levcomp.tab.o;
if crawl starts crashing after this change, try doing that.

--------------------------------------------------------------------------------
300286dd91 | dolorous | 2008-11-26 02:13:31 +0000

Make cleansing flame properly explode again.

--------------------------------------------------------------------------------
02f86de3ea | dolorous | 2008-11-26 00:15:13 +0000

Remove divine lightning from Makhleb's "Greater Destruction" effects, because 
(a) all of his other destructive powers are aimed at monsters, not the player; 
(b) it's probably in for symmetry with Xom, but since Lugonu was added to the 
Chaos God sub-pantheon and doesn't have it, it's no longer as fitting; (c) 
among Makhleb's "Greater Destruction" effects, the orb-of-electricity effect 
covers electric attacks nicely; and (d) Xom's effects are generally not 
conjurations-oriented, except for divine lightning, and making it unique to him 
is good.

--------------------------------------------------------------------------------
41a0cfe50a | dshaligram | 2008-11-25 23:40:13 +0000

Don't allow loot chamber to be rotated.

--------------------------------------------------------------------------------
83b1c7b2cc | dshaligram | 2008-11-25 23:36:07 +0000

Place external loot chamber for ziggurat levels with jellies.

--------------------------------------------------------------------------------
527fdaf634 | zelgadis | 2008-11-25 22:29:06 +0000

Make a note about how much you paid to enter a ziggurat.

--------------------------------------------------------------------------------
407e5c7135 | zelgadis | 2008-11-25 20:55:19 +0000

Set dstovermap parameter for ziggurat entrance.

--------------------------------------------------------------------------------
f95c6bfc4d | dshaligram | 2008-11-25 20:48:58 +0000

Fixed ziggurat not generating acquirement-level items.

--------------------------------------------------------------------------------
eca2b4e128 | zelgadis | 2008-11-25 20:36:42 +0000

Added you.level_type_name_abbrev, which on portal levels is stored in notes 
(adding an overhead of 4 bytes per note) to be used as the place name when 
displaying notes, like this:
    34 | Zig:2   | Shot with a bolt by a yaktaur captain (26 damage)

Breaks savefile compatibility.

--------------------------------------------------------------------------------
2184f5a98e | dshaligram | 2008-11-25 18:39:07 +0000

Fix compile warnings (Napkin).

--------------------------------------------------------------------------------
f9496f504d | dshaligram | 2008-11-25 17:43:10 +0000

Fix ziggurat dying when choosing random monster set, fixed pan lord odds.

--------------------------------------------------------------------------------
0556eb1013 | dshaligram | 2008-11-25 17:28:54 +0000

Set depth limits for ziggurat monster sets (pan lords and dracs) so that 
shallow ziggurat levels don't use those sets.

--------------------------------------------------------------------------------
eaefe5b3c8 | dolorous | 2008-11-25 17:25:36 +0000

Add another spacing fix.

--------------------------------------------------------------------------------
0fe4d7fbc5 | dolorous | 2008-11-25 17:15:42 +0000

Add comment.

--------------------------------------------------------------------------------
447aafdcc3 | dolorous | 2008-11-25 17:13:42 +0000

Consolidate the two immolation routines (the scroll and the effect when 
affixing a fire brand) into one function.

--------------------------------------------------------------------------------
1bb43d66dd | dolorous | 2008-11-25 16:41:43 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
7dd510af4d | zelgadis | 2008-11-25 16:39:05 +0000

Oops, was forgetting to set the portal vault origin string from within 
origin_set().

--------------------------------------------------------------------------------
d31f0d6820 | dolorous | 2008-11-25 16:37:57 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
74ecb4ad57 | dshaligram | 2008-11-25 16:03:36 +0000

Ditch baroque dgnevent veto mechanism in favour of marker-property-based veto, 
which is trivial to extend. Also fix turn loss when trying to use a toll portal 
without enough gold.

--------------------------------------------------------------------------------
0afe4c455b | dshaligram | 2008-11-25 15:33:36 +0000

Ziggurat portals charge gold for entry.

--------------------------------------------------------------------------------
ad382c58bd | dshaligram | 2008-11-25 14:06:58 +0000

Clean up TimedMarker to inherit from OneWayStair. Breaks saves.

--------------------------------------------------------------------------------
e7c403614a | zelgadis | 2008-11-25 14:05:53 +0000

Guard against referncing repeat_again_rec.keys[0] if the queue is empty.
Reset previous command state if a repeated command is interrupt by a key
press.

--------------------------------------------------------------------------------
4779ce0e52 | zelgadis | 2008-11-25 12:05:29 +0000

The "Place:" for ziggurats now displays as "Ziggurat:1"/"Ziggurat:2"/etc 
instead of "A Ziggurat".
Notes now remember which type of portal you entered:
   153 | Portal  | Entered level 1 of a ziggurat.
   168 | Portal  | Entered level 2 of a ziggurat.
   189 | Bazaar  | Entered a bazaar.

--------------------------------------------------------------------------------
ea472cc73c | j-p-e-g | 2008-11-25 10:29:00 +0000

Make the Ice Caves use Cocytus floor and wall tiles. (These could stand to be 
improved since it's not at all obvious they're supposed to represent ice.) This 
is, of course, provisional until tiles can be set in the maps themselves.

--------------------------------------------------------------------------------
cf8c3ccefe | dolorous | 2008-11-25 07:53:40 +0000

Fix [2253304]: Allow potions of gain [stat] to work in spite of mutation 
resistance from either the amulet or Zin, but let them fail with the mutation 
resistance mutation.

--------------------------------------------------------------------------------
bb3e02f663 | dolorous | 2008-11-25 07:46:50 +0000

Add more miscellaneous minor cleanups.

--------------------------------------------------------------------------------
ae2dd17beb | dolorous | 2008-11-25 06:50:37 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
25827049eb | dshaligram | 2008-11-25 01:01:34 +0000

Enable vault generation for non-LEVEL_DUNGEON levels, make ziggurat eligible 
for random gen in main dungeon and Pan; still needs entry portal 
timing/charging fixes, and ziggurat builder is still incomplete.

--------------------------------------------------------------------------------
f53c0fd020 | dshaligram | 2008-11-25 00:41:00 +0000

Pandemonium and the Abyss were hosed, refixed.

--------------------------------------------------------------------------------
470bb5822e | dshaligram | 2008-11-25 00:09:35 +0000

Fix message channel for deleting-non-dungeon-level message (oops).

--------------------------------------------------------------------------------
97f93f7d2d | dshaligram | 2008-11-25 00:01:38 +0000

Allow ziggurats placed in Pandemonium to return to the same Pan level when the 
player leaves the ziggurat. Breaks saves.
Cleaned up up_stairs() and down_stairs() to remove spurious depth changes when 
changing you.level_type - depth (you.your_level) now changes only for stairs 
with both ends in LEVEL_DUNGEON.

All levels are now saved on exit, including non LEVEL_DUNGEON levels. 
Re-entering non-dungeon levels from down_stairs will still delete the old 
level. Re-entering non-dungeon levels from up_stairs (i.e. returning to a 
non-dungeon level from some other place, like a ziggurat) will reload the old 
level.

Fixed bogus marker trashing when player attempts to use a Zot entrance with 
insufficient runes.

Delete .msg files when game ends.

--------------------------------------------------------------------------------
be49ad27a0 | dploog | 2008-11-24 23:19:28 +0000

Ice Cave feature description, dstorigin and dstovermap.

--------------------------------------------------------------------------------
4f44b6cf91 | dploog | 2008-11-24 23:05:07 +0000

Simplify.

--------------------------------------------------------------------------------
d0960cef6e | j-p-e-g | 2008-11-24 22:49:31 +0000

Prompt for players with the teleportitis mutation before attempting to enter a 
labyrinth. Switch the order of travel exclusion radii: first LOS_RADIUS, then 
1, then 0.

--------------------------------------------------------------------------------
18e0873492 | dolorous | 2008-11-24 21:55:23 +0000

Fix the description of Zin's divine sustenance.

--------------------------------------------------------------------------------
1c5dd2f5fa | dolorous | 2008-11-24 21:43:51 +0000

Clean up ability handling to display costs for prayer-activated abilities 
(Zin's sustenance and Yred's injury mirror) in a less hackish way.

--------------------------------------------------------------------------------
0e3ada71c2 | dshaligram | 2008-11-24 20:57:52 +0000

Don't call viewwindow when generating ziggurat to avoid mapping glitches.

--------------------------------------------------------------------------------
376669c407 | dshaligram | 2008-11-24 20:43:26 +0000

Add pillars to ziggurat, more utility functions for Lua to handle maps.

--------------------------------------------------------------------------------
b369e7edc1 | dolorous | 2008-11-24 18:34:25 +0000

Beogh adjustments: Cannibalism is now forbidden, corpse sacrifices are now 
ignored, and kills of all kinds are now taken (anything in the orcs' way must 
die).

--------------------------------------------------------------------------------
38c18cfd68 | dshaligram | 2008-11-24 17:54:02 +0000

Ziggurat fixes (zelgadis, dolorous).

--------------------------------------------------------------------------------
1f810df6c1 | dolorous | 2008-11-24 17:15:06 +0000

Fix invalid monster index check for mummy death curses.

--------------------------------------------------------------------------------
8ae4d86eb6 | j-p-e-g | 2008-11-24 15:26:17 +0000

Add a description to sewers (David) and replace the "melded" tile with a 
grayish overlay, as suggested by Enne. The yellow background is now free to be 
used by something else (main weapon, maybe, if that can be derived somehow).

--------------------------------------------------------------------------------
236b9abaae | dploog | 2008-11-24 13:06:18 +0000

Minor editing.

--------------------------------------------------------------------------------
b59e322ffd | dploog | 2008-11-24 12:55:55 +0000

Update CREDITS.

--------------------------------------------------------------------------------
693fa6cb4f | dploog | 2008-11-24 12:22:36 +0000

Added a bit to godspeak. Much more could be done here, including randomisation 
and skewing the distribution.

--------------------------------------------------------------------------------
d2cdd021c7 | zelgadis | 2008-11-24 09:36:00 +0000

Portal vault entries now show up on the overmap.  Breaks savefile compatabilty.

--------------------------------------------------------------------------------
7e0d56433b | zelgadis | 2008-11-24 06:44:51 +0000

When changing dungeon features with a wizard command use 
dungeon_terrain_changed() so that events will be fired and the overmap will get 
updadated if things like portals or altars are overwritten.

--------------------------------------------------------------------------------
27a42940bf | dolorous | 2008-11-24 06:32:59 +0000

Make zombified orcs vulnerable to weapons of orc slaying, too.

--------------------------------------------------------------------------------
78146d5a23 | dolorous | 2008-11-24 06:15:13 +0000

Comment fixes.

--------------------------------------------------------------------------------
74721db6c9 | dolorous | 2008-11-24 06:14:35 +0000

Simplify.

--------------------------------------------------------------------------------
ee53c253f4 | dolorous | 2008-11-24 06:12:43 +0000

Put skeletal dragons back in the dragon genus, and treat all dragon-types 
consistently when dealing with weapons of dragon slaying (dragons, draconians, 
dragon-transformed players, zombified dragons, and zombified draconians).  New 
function is_dragonkind() handles this.

--------------------------------------------------------------------------------
87b16bb06d | zelgadis | 2008-11-24 05:05:29 +0000

For items that originate in a portal vault, store the string describing their 
origin place in "portal_vault_origin" in the item's prop hash table, so that 
(for example) an item bought in a bazaar will display its origin as "in a 
bazaar" after exiting the bazaar, instead of "in a Portal Vault". The string 
can be made different than the default with the "dstorigin" property of the 
entrance portal marker, or via the lua function dgn.set_level_type_origin().
Ziggurat items now say "on level X of a ziggurat", and sewer items
"in the sewers", with other portal vaults using the default.

Breaks savefile compatibilty.

--------------------------------------------------------------------------------
7facfd7958 | dolorous | 2008-11-24 03:35:20 +0000

Add one more message for Norris.

--------------------------------------------------------------------------------
36a3feded9 | dploog | 2008-11-24 03:26:00 +0000

Added elaborate Crypt vaults from weyrava.

--------------------------------------------------------------------------------
d7dd5d64e8 | dolorous | 2008-11-24 03:22:38 +0000

Fix typos in Norris' speech, including one mentioned in [2335370].

--------------------------------------------------------------------------------
da6a74256b | dploog | 2008-11-24 02:09:52 +0000

Slightly improved inventory colouring.

--------------------------------------------------------------------------------
0dc7cb3fed | dshaligram | 2008-11-24 02:01:23 +0000

Add dstname for Ice Cave.

--------------------------------------------------------------------------------
7f7c2f12b9 | dshaligram | 2008-11-24 01:54:58 +0000

Oops, fixed rune_subst not being applied to branch entry vaults.

--------------------------------------------------------------------------------
f2910fd67b | dolorous | 2008-11-24 01:53:18 +0000

Tweak the probability of Yred's "animate dead" retribution.

--------------------------------------------------------------------------------
209183f62c | dolorous | 2008-11-24 01:28:27 +0000

Add Yred retribution effect: if there are corpses around, animate them as 
hostile zombies.

--------------------------------------------------------------------------------
f028040d1c | dolorous | 2008-11-24 01:21:01 +0000

Simplify.

--------------------------------------------------------------------------------
09e033f34f | dploog | 2008-11-24 00:46:19 +0000

Minor changes to Ice Cave, added remarks to its header.

--------------------------------------------------------------------------------
5cdc193ad6 | dploog | 2008-11-24 00:36:44 +0000

Added Ice Cave portal vault (Eino). Not yet fully finished, but easier to get 
feedback this way. And also easy to temporarily block it by removing it's tag 
from loadmaps.lua.

--------------------------------------------------------------------------------
0c4a32de94 | dolorous | 2008-11-24 00:08:06 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
275ffdabdf | dshaligram | 2008-11-23 23:54:02 +0000

Allow Lua to place vaults with dgn.place_map().

--------------------------------------------------------------------------------
9cdeda9a8b | dploog | 2008-11-23 23:52:00 +0000

Added some remarks on portal vaults.

--------------------------------------------------------------------------------
da1eea9b9b | dshaligram | 2008-11-23 22:52:53 +0000

Use map_def* instead of map indices.

--------------------------------------------------------------------------------
9b92f3a9ba | dshaligram | 2008-11-23 22:07:45 +0000

Update level compiler for include changes.

--------------------------------------------------------------------------------
281255938e | dshaligram | 2008-11-23 22:06:04 +0000

Removed redundant buffer used to go from map_def to env.grid and all the 
tedious code used to mess with this pointless buffer.

--------------------------------------------------------------------------------
c8189c13fa | dolorous | 2008-11-23 20:44:27 +0000

Since Trog can gift you missile weapons, make it possible for him to gift you 
missiles as well.

--------------------------------------------------------------------------------
742b5eb983 | dshaligram | 2008-11-23 20:38:59 +0000

Discard more junk parameters from vault building routines.

--------------------------------------------------------------------------------
9007dee727 | dshaligram | 2008-11-23 20:17:08 +0000

Clean up legacy cruft involved in placing vaults.

--------------------------------------------------------------------------------
6866898a80 | dolorous | 2008-11-23 19:39:24 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
b802de9f84 | dolorous | 2008-11-23 19:37:31 +0000

For consistency, split off the conduct for your undead slaves' killing holy 
beings.

--------------------------------------------------------------------------------
5f4fe73fe0 | dshaligram | 2008-11-23 19:09:20 +0000

Adjust ziggurat loot level, reenable monster gen.

--------------------------------------------------------------------------------
be8748fa44 | dshaligram | 2008-11-23 18:58:31 +0000

More steps toward ziggurats.

--------------------------------------------------------------------------------
1392155c0c | dolorous | 2008-11-23 17:50:46 +0000

Generalize the cannibalism checks.

--------------------------------------------------------------------------------
2837f061c5 | dolorous | 2008-11-23 17:29:13 +0000

For TSOites, restrict unchivalric attacks to monsters of normal intelligence or 
higher.  This should solve the jelly annoyance problem, among other things.

--------------------------------------------------------------------------------
f7d34b29bd | dshaligram | 2008-11-23 14:22:58 +0000

Allow place:X in MONS specifications to place random monsters suitable for 
place X.

--------------------------------------------------------------------------------
76c82d66da | dshaligram | 2008-11-23 13:07:05 +0000

Allow .des files to place manuals with names as "manual of Fighting" or "random 
manual" (dpeg).

--------------------------------------------------------------------------------
f3b465a2e3 | dshaligram | 2008-11-23 12:43:59 +0000

Fixed nsubst restricting counts to single digits (dpeg).

--------------------------------------------------------------------------------
7bb02de9ea | dshaligram | 2008-11-23 12:34:08 +0000

Lua functions for FLOORCOL and ROCKCOL are now named floorcol() and rockcol() 
instead of floor_colour and rock_colour, to match the convention for other .des 
headers (dpeg).

--------------------------------------------------------------------------------
b51b5a77fc | j-p-e-g | 2008-11-23 08:57:20 +0000

Add the 0.4.x changes to the trunk change log and list the stuff changed in 
trunk so far as well. This does not mean that 0.5 is just around the corner - 
it's not. It's just that I occasionally feel like we're not making any 
progress. Looking at the (pretty extensive) list, this is not the case. :)

--------------------------------------------------------------------------------
4943263f8a | dolorous | 2008-11-23 04:35:18 +0000

Fix [2330091]: Remove erroneous duplicated "you" from food-related messages.

--------------------------------------------------------------------------------
4acb62332e | dolorous | 2008-11-23 01:54:39 +0000

Comment fixes.

--------------------------------------------------------------------------------
5e60d79907 | dolorous | 2008-11-23 01:53:31 +0000

Add one more sticky flame comsistency fix.

--------------------------------------------------------------------------------
eb3c29aae7 | dolorous | 2008-11-23 01:33:59 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
6b7f1752bd | dolorous | 2008-11-23 01:32:11 +0000

Fix the sticky flame fire miscast for monsters.

--------------------------------------------------------------------------------
fd9e0949eb | dploog | 2008-11-22 21:38:15 +0000

Some modifications to the Sewers.

--------------------------------------------------------------------------------
18c9b72d36 | j-p-e-g | 2008-11-22 20:43:21 +0000

Remove message about which items you bought in a shop as that's automatically 
noted now.

--------------------------------------------------------------------------------
4b12be556b | dolorous | 2008-11-22 15:38:13 +0000

Add more miscellaneous minor cleanups.

--------------------------------------------------------------------------------
e00a0d1e00 | zelgadis | 2008-11-22 12:37:20 +0000

Oops, mon->type should be compared to MONS_PROGRAM_BUG, not NON_MONSTER.

--------------------------------------------------------------------------------
5484cadcd6 | zelgadis | 2008-11-22 10:55:09 +0000

Inform user on why a known shaft trap isn't triggered (fixes bug 2294949).
Be more agressive about making shaft traps on invalid levels disappear in
a puff of logic.

If a wizard command creates a trap shaft on an invalid level, inform the
user.

--------------------------------------------------------------------------------
d473edf767 | zelgadis | 2008-11-22 10:01:35 +0000

Fix bug 2325392: Ring of Flames interface problems.  Whether stepping into a 
potentially damaging cloud prompts or not now takes into consideration 
temporary resistances and immunties, where before it only took into account 
permanent ones.

--------------------------------------------------------------------------------
8f6c276eff | j-p-e-g | 2008-11-22 08:41:43 +0000

* Add the diagonal movement logic for monsters moving aside for other   
monsters of the same type. * Allow vampires of xp > 9 to meld with cursed gear 
in their bat form.   (As always, exempting weapons, of course.)

--------------------------------------------------------------------------------
0a8713d0c3 | zelgadis | 2008-11-22 07:03:34 +0000

Oops, used tabs instead of spaces for indentation in items.cc and mon-util.cc. 
Fixed the same problem in initfile.cc and directn.cc while I was at it.

--------------------------------------------------------------------------------
9e7cea2837 | zelgadis | 2008-11-22 06:38:30 +0000

Possible fix for bug 2293518: if a monster tries to unsubmerge while there's 
already a different monster on the same square, then treat it like a monster 
trying to unsubmerge from underneath the player.  Also give an error message 
(with a reference to the bug number) since two monsters aren't supposed to be 
on the same square.

--------------------------------------------------------------------------------
8ab4abaf14 | zelgadis | 2008-11-22 06:03:43 +0000

Improve AI handling of clouds, so that clouds will only cause sumbergable 
monsters to submerge if it's a cloud tpye the monster wants to avoid, rather 
than always for all cloud types, and prevent lurking monsters from unsubmerging 
if it would expose them to a cloud type they want to avoid.
Monsters submerging now consume some energy, except for air elementals
and vapours submerging into the air.

--------------------------------------------------------------------------------
f119c29736 | zelgadis | 2008-11-22 03:48:27 +0000

Fix bug 2298697: for dealing with weapons of returning which fail to return, 
mons_throw() should have been using the mslot of the weapon, not weapon's mitm 
index.
Introduces the new functions get_mon_equip_slot() and item_to_mslot().

--------------------------------------------------------------------------------
21243c536b | dploog | 2008-11-22 00:31:14 +0000

Added new Sewer vault (Eino).

--------------------------------------------------------------------------------
61d4458f71 | j-p-e-g | 2008-11-21 13:03:29 +0000

Modify shop entry tile to show the shop type. Ignoring antique for now.

--------------------------------------------------------------------------------
27c70daeaf | zelgadis | 2008-11-21 13:01:00 +0000

Initialize a variable in order to quiet some Valgrind warnings.

--------------------------------------------------------------------------------
6dc77c25f6 | zelgadis | 2008-11-21 13:00:21 +0000

Added a convenience script for invoking Valgrind to find memory errors/bugs, 
and a Valgrind suppressions file to suppress things that either aren't really 
memory bugs or are bugs in third party libraries which we can't fix.

--------------------------------------------------------------------------------
47a3ee47e2 | zelgadis | 2008-11-21 12:45:56 +0000

Third argument to dgn.grid() is optional.  Fixed error that happened in placing 
timed messaging markers (including labyrinth entrances).

--------------------------------------------------------------------------------
9ba2e9d569 | dolorous | 2008-11-21 06:24:15 +0000

Fix [2260261]: Don't display a beam tracer for healing, since it doesn't 
require a clear LOS.

--------------------------------------------------------------------------------
bf8a801d9c | dolorous | 2008-11-21 06:16:01 +0000

Tweak Ely's healing to have a chance of successfully pacifying monsters even 
when the player has no Invocations skill.

--------------------------------------------------------------------------------
f382ac5fc0 | j-p-e-g | 2008-11-20 21:47:40 +0000

Add tiles for the sewers' murky (deep and shallow) water, as well as a yellow 
background for melded items in inventory.
Allow higher level transformations (level 5 and above) to work even
if your to-be-melded equipment is cursed, exempting weapons, as before.

--------------------------------------------------------------------------------
43e1f3ff5c | dploog | 2008-11-20 19:06:43 +0000

A few lines of speech.

--------------------------------------------------------------------------------
f1d9756f8c | dshaligram | 2008-11-20 18:53:40 +0000

Spadework for ziggurats and other multilevel portal vaults.

--------------------------------------------------------------------------------
683599a4fa | dshaligram | 2008-11-20 12:54:39 +0000

Update canned level compiler (Eino); update .gitignore.

--------------------------------------------------------------------------------
abd9b56c16 | dolorous | 2008-11-20 04:14:33 +0000

Clean up the piety pool and donation routines one last time.

--------------------------------------------------------------------------------
b70aeb6530 | dolorous | 2008-11-20 03:34:44 +0000

Clean up the donation routine a bit.

--------------------------------------------------------------------------------
2f2643bce3 | dolorous | 2008-11-20 03:04:57 +0000

Add yet one more piety pool tweak.

--------------------------------------------------------------------------------
6cfcad1d69 | dploog | 2008-11-20 01:01:25 +0000

Allow bazaars outside of the main dungeon.

--------------------------------------------------------------------------------
f1b2beea0a | dploog | 2008-11-19 23:20:21 +0000

Adjust level for an ice statue vault (Darshan).

--------------------------------------------------------------------------------
1de264903c | dploog | 2008-11-19 21:42:01 +0000

Mention trowel_portal in level-design.txt (Darshan).

--------------------------------------------------------------------------------
a5709c645b | dshaligram | 2008-11-19 21:33:40 +0000

Lab entries should be tagged "extra" to allow additional minivaults to be 
placed after the lab entry.

--------------------------------------------------------------------------------
9726d74a32 | dshaligram | 2008-11-19 21:23:25 +0000

Remove labyrinth entry placement from dungeon.cc, added support for "luniq" and 
"extra" tags.

--------------------------------------------------------------------------------
74d429f39c | dolorous | 2008-11-19 19:57:39 +0000

Add one last piety pool tweak.

--------------------------------------------------------------------------------
ba9c41e5dd | dolorous | 2008-11-19 19:55:16 +0000

Add penance-related cleanups.

--------------------------------------------------------------------------------
8c8dc394ed | dolorous | 2008-11-19 19:45:12 +0000

Tweak the piety pool routine yet again.

--------------------------------------------------------------------------------
64e63ce318 | dshaligram | 2008-11-19 19:37:48 +0000

Fixed process_disconnected_zones sometimes filling the whole level with solid 
rock (affecting layout_big_octagon). Speeded up mapstat report for random vault 
probabilities.

--------------------------------------------------------------------------------
16cca6c2b5 | dolorous | 2008-11-19 19:25:22 +0000

Comment fix.

--------------------------------------------------------------------------------
415f936b78 | dolorous | 2008-11-19 19:23:27 +0000

Fix previous piety pool tweak.

--------------------------------------------------------------------------------
01f766a657 | dolorous | 2008-11-19 19:14:24 +0000

Change one Divinations title from "Soothsayer" to "Clairvoyant", as one of 
Nemelex's titles is "The Soothsayer".

--------------------------------------------------------------------------------
b14254ddb7 | dolorous | 2008-11-19 19:05:42 +0000

Tweak Zin's piety pool routine a bit.

--------------------------------------------------------------------------------
fdbbb6d9f4 | dshaligram | 2008-11-19 18:08:18 +0000

Add missing dummy.des, oops.

--------------------------------------------------------------------------------
6e304ee422 | dshaligram | 2008-11-19 18:02:31 +0000

Separate CHANCE and WEIGHT. CHANCE is a probability, WEIGHT is a raw number 
used as a generation weight (i.e. WEIGHT is what the old CHANCE used to be).

--------------------------------------------------------------------------------
db54671af1 | j-p-e-g | 2008-11-19 16:22:01 +0000

Fix 2307176: Bladehanded butcher not respecting gloves being melded.

--------------------------------------------------------------------------------
a87a8f0e1c | dploog | 2008-11-19 14:19:11 +0000

Proper CHANCEs for Eino's bear vaults.

--------------------------------------------------------------------------------
63c37b555c | dploog | 2008-11-19 14:10:37 +0000

Randomised a sewer map (Zaba).

--------------------------------------------------------------------------------
ff113c7392 | dploog | 2008-11-19 13:38:16 +0000

Minor fixes in level-design.txt.

--------------------------------------------------------------------------------
963a0e3e6c | dshaligram | 2008-11-19 12:56:11 +0000

Added notes on how .des files are converted to Lua to level_design.txt.

--------------------------------------------------------------------------------
8e0b3b5ef6 | dolorous | 2008-11-19 08:09:52 +0000

Fix [2039271]: The staff of channeling now trains Evocations at the rate of 
similar evocables.

--------------------------------------------------------------------------------
067eab99d0 | dolorous | 2008-11-19 07:45:20 +0000

Fix mutation message array lengths (oops).

--------------------------------------------------------------------------------
a1dd87704d | dolorous | 2008-11-19 01:46:28 +0000

Turn kenkus' hardcoded pecking attack and inability to wear helmets into an 
intrinsic beak mutation (assuming, of course, that the beak is what makes 
helmets unwearable).

--------------------------------------------------------------------------------
7383236892 | dolorous | 2008-11-19 01:38:57 +0000

Add more consistency fixes for staves.

--------------------------------------------------------------------------------
75521a519b | dolorous | 2008-11-19 01:14:42 +0000

Comment fixes.

--------------------------------------------------------------------------------
e8392b1b31 | dolorous | 2008-11-19 01:07:39 +0000

Add more size-related cleanups.

--------------------------------------------------------------------------------
57971c576d | dolorous | 2008-11-19 00:56:37 +0000

Fix spacing in death-by-trap message.

--------------------------------------------------------------------------------
0af6e3ad82 | dploog | 2008-11-18 23:00:20 +0000

Added another entry vault for the Sewer.

--------------------------------------------------------------------------------
91eed2a808 | dshaligram | 2008-11-18 22:49:54 +0000

Oops, fix portal exit marker cleanup.

--------------------------------------------------------------------------------
101296a727 | dploog | 2008-11-18 22:19:52 +0000

Portal vault entries' TAG: uniq_ labels should not end in "entry".

--------------------------------------------------------------------------------
d942459833 | dshaligram | 2008-11-18 21:55:39 +0000

Fixed crawl -mapstat segfaulting.

--------------------------------------------------------------------------------
b1550dd18c | dolorous | 2008-11-18 21:48:52 +0000

Update wizard portal command description, now that portals lead to more than 
just bazaars.

--------------------------------------------------------------------------------
f6ecf26afb | dploog | 2008-11-18 21:23:48 +0000

Each new type of portal vault should get its own des file.
Renamed portal.des to sewer.des. Added description.

--------------------------------------------------------------------------------
41c81a73fe | dploog | 2008-11-18 20:49:06 +0000

Update of the level making guide. Replaced all FLAGS by TAGS.

--------------------------------------------------------------------------------
c8392d9bd4 | dshaligram | 2008-11-18 20:12:30 +0000

Update canned level compiler.

--------------------------------------------------------------------------------
7c663d89c0 | dolorous | 2008-11-18 20:09:55 +0000

Add cosmetic fix.

--------------------------------------------------------------------------------
42c0cf0662 | dshaligram | 2008-11-18 20:09:38 +0000

Lua marker code is now converted into an anonymous function in the same scope 
as the rest of the map Lua code so that locals defined in the map Lua are 
visible to the marker code.

--------------------------------------------------------------------------------
82cc08db33 | dshaligram | 2008-11-18 20:08:30 +0000

Fix off-by-one error in StairConnectivity access (player_branch_depth() is 
1-based).

--------------------------------------------------------------------------------
a06523dd0f | dshaligram | 2008-11-18 20:07:42 +0000

Added lua_datum to wrap the common task of retaining references to Lua objects 
in the Lua registry.

--------------------------------------------------------------------------------
ff00ffd9da | dolorous | 2008-11-18 19:57:48 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
cb1d25a9a8 | dshaligram | 2008-11-18 14:59:13 +0000

Use the correct portal description in explore stop messages.

--------------------------------------------------------------------------------
564115dd01 | dshaligram | 2008-11-18 14:57:52 +0000

Show place as "Sewer" in the HUD and in character dumps for the sewer portal 
vaults (portal vault entry marker's dst field is used as the name). Portal 
vault entrance is replaced with stone arch on use.

--------------------------------------------------------------------------------
acb58afeec | dshaligram | 2008-11-18 14:55:58 +0000

Transformed naga should not get bonus defence vs water attack.

--------------------------------------------------------------------------------
f60a6632ba | dshaligram | 2008-11-18 13:51:50 +0000

.gitignore for rltiles generated files.

--------------------------------------------------------------------------------
32eb84c3ad | dshaligram | 2008-11-18 13:48:54 +0000

Fix broken portal vault exits.

--------------------------------------------------------------------------------
45c785fc5a | dshaligram | 2008-11-18 13:46:22 +0000

Portal vault and labyrinth exits will return to the point on the dungeon level 
where the entrance was.

--------------------------------------------------------------------------------
8c1ef076ff | dolorous | 2008-11-18 09:17:29 +0000

Update the key command for exclusions in the options guide.

--------------------------------------------------------------------------------
b9e944bb45 | dploog | 2008-11-18 00:19:42 +0000

Added Eino's Sewer portal vault.

--------------------------------------------------------------------------------
cba36e09a9 | dolorous | 2008-11-17 21:02:13 +0000

Clean up handling of thrown items (mostly large rocks) again.

--------------------------------------------------------------------------------
2d63ab533a | dolorous | 2008-11-17 20:08:50 +0000

Display a proper message in the description of large rocks for those races that 
can't throw them, as we do for javelins and throwing nets.

--------------------------------------------------------------------------------
c79074eb5a | dolorous | 2008-11-17 19:51:48 +0000

Make all the checks for throwable items consistent.

--------------------------------------------------------------------------------
0297f504cb | dolorous | 2008-11-17 19:25:04 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
b305e13fcd | dolorous | 2008-11-17 18:02:58 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
f2cbb9bba1 | dolorous | 2008-11-17 17:48:03 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
47457d86d3 | dolorous | 2008-11-17 17:44:57 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
f74d96458e | dshaligram | 2008-11-17 17:40:24 +0000

Fixed makefile dependencies to build cleanly with make -jX (Napkin).

--------------------------------------------------------------------------------
038a00b2e5 | dolorous | 2008-11-17 17:22:40 +0000

Fix identification of weapons.  Without this, you could e.g. take an 
non-artefact uncursed blowgun off a kobold, wield it to know its curse status 
and type, auto-identify its pluses after using it for awhile, and an identify 
scroll would still see it as unidentified because the ISFLAG_KNOW_PROPERTIES 
flag wasn't set.

--------------------------------------------------------------------------------
87ebfe9803 | dolorous | 2008-11-17 17:11:26 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
1301256d61 | dploog | 2008-11-17 12:59:42 +0000

Added vaults (Eino).

--------------------------------------------------------------------------------
cc4623cc00 | dolorous | 2008-11-17 04:09:51 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
c7c59e9de8 | dshaligram | 2008-11-17 01:32:46 +0000

Fix entry vaults being rejected if they don't contain all three stone stairs 
(David).

--------------------------------------------------------------------------------
0d0e71a163 | dolorous | 2008-11-17 01:27:33 +0000

Add the attack types AT_PUNCH and AT_KICK, and make draconian monks use them, 
since they don't get weapons.  These are currently identical to AT_HIT, except 
that they don't use a weapon, as with the already existing AT_TAIL_SLAP.

--------------------------------------------------------------------------------
1f3c5e509b | dolorous | 2008-11-17 01:15:56 +0000

Don't always give kobold demonologists orcish weapons.

--------------------------------------------------------------------------------
8d5b001605 | dolorous | 2008-11-16 19:13:32 +0000

Move asphyxiation resistance to the actor interface.

--------------------------------------------------------------------------------
b0d1c0cf73 | dolorous | 2008-11-16 18:27:36 +0000

And remove now-unused variable.

--------------------------------------------------------------------------------
c8f9d2f9a4 | dolorous | 2008-11-16 18:24:38 +0000

Simplify again.

--------------------------------------------------------------------------------
65ad20dff0 | dolorous | 2008-11-16 18:20:22 +0000

Add a few more poison-related cleanups.

--------------------------------------------------------------------------------
96c41a6954 | dploog | 2008-11-15 23:28:54 +0000

Tweaked some temple entry vaults.

--------------------------------------------------------------------------------
be89746797 | j-p-e-g | 2008-11-15 08:22:15 +0000

Another tweak of the chokepoint AI: Hostile monsters of animal-like 
intelligence now only make space for other monsters of the same type.

--------------------------------------------------------------------------------
d7a6a7c797 | j-p-e-g | 2008-11-14 21:14:20 +0000

Extend monsters' chokepoint AI to work for monster enemies as well, and add 
some explanatory comments.

--------------------------------------------------------------------------------
6f887751e5 | j-p-e-g | 2008-11-14 20:43:09 +0000

Another monster AI improvement, as suggested somewhere in one of the many FRs 
on Sourceforge.
When standing at the end of a corridor, monsters of animal intelligence
or higher may swarm out to semi-surround you rather than block the entrance 
for all monsters behind them.

Example:

####.
.rgo@
####.

will now within two turns change to

####g
...r@
####o

which is obviously much smarter. The same logic applies to friendly
monsters who presumably form a semicircle around you to protect you.

Also, hostile monsters will even move out of the way if the next monster 
farther down the corridor has a ranged attack (think centaurs).

This does not yet work for diagonals (but I'm working on that one), and
also does not handle monsters stepping out of a corridor to surround
non-allied monsters (though this should be easy enough to add).

--------------------------------------------------------------------------------
d2a1017761 | j-p-e-g | 2008-11-13 13:56:45 +0000

FR 2046572: Don't anger allies by teleporting them. (Maybe enslaved monsters 
should be exempted from that, but for now they're not.)
Make *all* allies (including zombies) avoid Zot traps known to the
player, but don't let them avoid unknown ones (unless native, or highly
intelligent, as usual.)

--------------------------------------------------------------------------------
7a66364b0a | dshaligram | 2008-11-12 22:47:16 +0000

Added crawl.process_keys to user Lua API to allow a Lua macro to ask Crawl to 
process keystrokes immediately, i.e., not wait until the macro has finished 
running. Also removed player EV penalty during run/rest/travel.

--------------------------------------------------------------------------------
53c6ceba3b | dshaligram | 2008-11-12 21:38:53 +0000

Fix multiline Lua <> blocks in .crawlrc ending on empty lines (doy).

--------------------------------------------------------------------------------
e4476864dd | dolorous | 2008-11-12 17:56:09 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
c44a23c617 | dolorous | 2008-11-12 17:31:24 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
4fd0078136 | dolorous | 2008-11-12 17:27:03 +0000

Add more player duration cleanups, and fix ouch() napalm death sources.

--------------------------------------------------------------------------------
b0636c2afd | dploog | 2008-11-12 15:42:04 +0000

Two more ant vaults by Zaba.

--------------------------------------------------------------------------------
9f55216468 | dshaligram | 2008-11-12 14:29:22 +0000

Fix debug build.

--------------------------------------------------------------------------------
079c7e85fc | dploog | 2008-11-11 15:53:01 +0000

Add new vault (Zaba).

--------------------------------------------------------------------------------
a3b90b35f2 | dolorous | 2008-11-10 19:17:56 +0000

Fix a few cases where spellbooks didn't have spells in ascending order by level.

--------------------------------------------------------------------------------
0d2414a4c6 | j-p-e-g | 2008-11-10 14:03:05 +0000

Unrestrict Ogre, Merfolk, and Draconian Paladins, as suggested by Jeff.

--------------------------------------------------------------------------------
f499e23ced | j-p-e-g | 2008-11-10 13:20:23 +0000

Melded equipment may no longer be cursed, uncursed, or enchanted. I'm still 
dithering on identify.

--------------------------------------------------------------------------------
223f7f7080 | dolorous | 2008-11-09 23:38:14 +0000

Simplify handling of monsters without skeletons.  Note that monsters that have 
skeletons, but cannot be zombified, will now leave skeletons after their 
corpses rot.

--------------------------------------------------------------------------------
874447efa3 | dolorous | 2008-11-09 22:57:53 +0000

And rename _raise_corpse() to _raise_remains().

--------------------------------------------------------------------------------
63e5b1bafd | dolorous | 2008-11-09 22:55:07 +0000

For consistency, rename _is_animatable_corpse() to _animatable_remains().

--------------------------------------------------------------------------------
ec077252cc | dolorous | 2008-11-09 22:44:58 +0000

Implement [2245856]: Clarify the description of the amulet of inaccuracy.

--------------------------------------------------------------------------------
3ee907b3d4 | j-p-e-g | 2008-11-09 22:08:22 +0000

Fix the ASSERT when undetected traps run out of ammo and display "You hear a 
click" instead of "The trap is out of ammo". Also, fix the miscolouring of the 
lua eating prompt.

--------------------------------------------------------------------------------
297b7ce169 | j-p-e-g | 2008-11-09 20:22:37 +0000

So many files? That's probably some debugging messages included, again...
Anyway, I added a check to make sure that monsters that somehow end up
in deep water (confusion!) can get out of it again if not aquatic.
Monsters that can drown, will still do so, of course. 
I also removed the drowning conditional for zombies and skeletons. 
They'll now slog invisibly underwater and eventually reappear in shallow 
water or dry land. I think this is more interesting than making them
drown. That, and they've seen a lot of nerfs lately.

Oh, right, and I replaced some ENCH_SUBMERGED with mons_is_submerged(),
that might explain the number of modified files...

--------------------------------------------------------------------------------
d148c905a2 | j-p-e-g | 2008-11-09 15:51:04 +0000

Extract a number of pathfinding/travelling/patrolling routines into static 
methods to hopefully make the code more readable. Change berserking monster foe 
check to use a random order when searching the neighbour grids, so the upper 
left monsters aren't always prefered.

--------------------------------------------------------------------------------
ecca9ffb97 | dolorous | 2008-11-08 21:47:00 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
396fd7c013 | dolorous | 2008-11-08 20:58:19 +0000

Rework _choose_book() to remove assumptions about book order relative to 
starting book types.

--------------------------------------------------------------------------------
6976e548e2 | dolorous | 2008-11-08 20:28:55 +0000

Remove unneeded parentheses.

--------------------------------------------------------------------------------
8040663d73 | dolorous | 2008-11-08 18:45:08 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c2f198269d | j-p-e-g | 2008-11-08 18:17:24 +0000

Add alternative messages for efreet speech when silenced. (BR 2238678)

--------------------------------------------------------------------------------
6dd738e46a | dolorous | 2008-11-08 18:06:45 +0000

Fix misplaced break in _book_restriction().

--------------------------------------------------------------------------------
feb7b10dfd | dolorous | 2008-11-08 16:02:53 +0000

Add missing break to _choose_book(), as there already is in _choose_weapon().

--------------------------------------------------------------------------------
cdce1a6d43 | dolorous | 2008-11-08 00:19:42 +0000

Make monsters' glowing quality a class flag, instead of hardcoding a list of 
glowing monsters.

--------------------------------------------------------------------------------
479b5e7711 | dolorous | 2008-11-08 00:16:48 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4d81ea5456 | dolorous | 2008-11-08 00:14:23 +0000

Fix the value of BEAM_LAST_ENCHANTMENT.

--------------------------------------------------------------------------------
883a805b84 | j-p-e-g | 2008-11-08 00:05:39 +0000

Remove my debugging statements. And I forgot to mention: of course my previous 
commit breaks saves!

--------------------------------------------------------------------------------
99578a522d | j-p-e-g | 2008-11-07 23:25:16 +0000

Change floor_property (blood, sanctuary) to flags, and add two new settings: 
vault and highlight. Vault means a grid is part of a vault (set in dungeon.cc), 
and currently used to exempt vault grids when shifting labyrinths. Highlight is 
a meta flag currently only used to highlight labyrinth changes on the 'X' map 
in wizard mode, but I can think of a couple of other uses, mostly for debugging 
purposes.
Also replace a few for loops in the lab shift function with
rectangle_iterators.

--------------------------------------------------------------------------------
e8a014fe9b | dolorous | 2008-11-07 23:17:24 +0000

Add the flaming corpse to the list of monsters that glow, since it's on fire.

--------------------------------------------------------------------------------
d1b1e8d8db | dolorous | 2008-11-07 22:54:47 +0000

Simplify.

--------------------------------------------------------------------------------
0cb4fd82cd | dolorous | 2008-11-07 22:29:12 +0000

Fix compilation.

--------------------------------------------------------------------------------
c80534b26c | dolorous | 2008-11-07 22:26:40 +0000

Increase the maximum duration of sticky flame to 100.

--------------------------------------------------------------------------------
356d2e3e4b | dolorous | 2008-11-07 21:39:26 +0000

Clean up sticky flame handling.

--------------------------------------------------------------------------------
100d0a3c95 | dolorous | 2008-11-07 21:37:34 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
f2bd755240 | dolorous | 2008-11-07 21:25:05 +0000

Fix inverted logic.

--------------------------------------------------------------------------------
3b0e3ef5d0 | dolorous | 2008-11-07 21:17:13 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
a98e607b10 | dolorous | 2008-11-07 21:14:32 +0000

More comment fixes.

--------------------------------------------------------------------------------
099afa1e22 | dolorous | 2008-11-07 21:10:25 +0000

Comment fixes.

--------------------------------------------------------------------------------
61aa2965b3 | dolorous | 2008-11-07 20:56:57 +0000

Consolidate the routines to remove the player's condensation shield into one 
function.

--------------------------------------------------------------------------------
0f8343ac42 | dolorous | 2008-11-07 20:23:35 +0000

Add more miscellaneous fixes.

--------------------------------------------------------------------------------
a92d651069 | dolorous | 2008-11-07 19:48:16 +0000

Add miscellaneous cosmetic fixes.

--------------------------------------------------------------------------------
39bd7b8798 | dolorous | 2008-11-07 19:29:37 +0000

Add poison-related cleanups.

--------------------------------------------------------------------------------
7498bf3467 | dolorous | 2008-11-07 18:41:21 +0000

Clarify wording.

--------------------------------------------------------------------------------
61de8fa78b | dolorous | 2008-11-07 16:10:38 +0000

Comment fixes.

--------------------------------------------------------------------------------
d870c8ec6d | dolorous | 2008-11-07 16:08:36 +0000

In choose_weapon(), fix erroneous fallthrough to '%' when pressing Enter.

--------------------------------------------------------------------------------
b063f3e1bf | dploog | 2008-11-07 12:50:01 +0000

Update documentation.

--------------------------------------------------------------------------------
f265e67ca2 | j-p-e-g | 2008-11-07 12:22:55 +0000

Change exclusion commands.
e => set exclusion (radius 1), change radius to LOS, remove exclusion

(Because of the LOS restriction, the intermediary step of 4 is not
needed any more.)

E => cycle through exclusions
Ctrl-E => clear all exclusions

I also reordered the commands on the 'X' help screen.

--------------------------------------------------------------------------------
023a42be1a | dolorous | 2008-11-07 01:06:44 +0000

Properly allow small races to use staves again (oops), and handle all 
staff-type weapons consistently.

--------------------------------------------------------------------------------
a5248544dc | j-p-e-g | 2008-11-06 20:02:26 +0000

* Tweak a number of starting choice restrictions. (FR 2106062) * FR 2088441: 
Add an aptitudes hotkey for the book/weapon choice submenus. * FR 2196437: 
Check entire stack of (selected) items, even if your pack               is 
full, in case some of them can merge.

--------------------------------------------------------------------------------
b6f9c63b61 | j-p-e-g | 2008-11-06 12:33:39 +0000

Fix crash when items have to be moved around after a labyrinth shift.

--------------------------------------------------------------------------------
dad292b686 | dolorous | 2008-11-06 04:38:54 +0000

Fix [2211019]: Retain the teleportation enchantment on polymorphed monsters.

--------------------------------------------------------------------------------
96c16ddbfc | j-p-e-g | 2008-11-05 22:44:45 +0000

In labyrinths, forget all grids outside a radius of 25*25 (non-Minotaur) or 
40*40 (Minotaur). This significantly increases difficulty again. The numbers 
are completely arbitrary but they appeared to work fine in testing.

--------------------------------------------------------------------------------
55c9acf15c | j-p-e-g | 2008-11-05 15:48:33 +0000

Some more labyrinth tweaks: * A floor now gets turned into a wall of the 
adjacent wall types   rather than replaced by the original one (which might be 
a long way   away). * Improve the look of the shifted labyrinth a bit.

--------------------------------------------------------------------------------
828bd177e9 | j-p-e-g | 2008-11-04 23:47:15 +0000

Add comments for the labyrinth changes.

--------------------------------------------------------------------------------
a7bf0d48fb | j-p-e-g | 2008-11-04 22:25:25 +0000

Implement second part of labyrinth tweaks: * allow mapping of labyrinths, but 
apply heavy map rot * lab walls shift from time to time * added a wizmode 
command (&k) to test the changes   My usual sequence goes something like &l, >, 
&{, #,   (copy map dump elsewhere), X, Ctrl-F, y, Esc, &k, &{, #.
I've tweaked my monster pathfinding A* algorithm to only work for
non-monsters, so I've been using that.

Because of the mapping, labyrinths are now actually easier to solve. 
(It's a bit hard to tell, though, since I got *really* good at solving 
labyrinths over the 40 something trial runs. :) )
At the same time they are now much more interesting and flavourful 
because of the map rot, and the shifting provides some wonderful excitement. 
So, whoever came up with that idea, thanks! :D

Still to do:
* Exceptions for vaults. (Distinction between vault/non-vault walls.)
* Better handling of walls. (They currently "teleport" to the chosen
  floor grid, leading to unusual wall types appearing somewhere else.)
* Improve the feel of the shifted mazes. (They come really close to 
  the original now but still do not look exactly the same.)

The numbers may need tweaking. Currently, they are:
shift rate  : 10% chance, every 20 turns
map rot rate: 45% of the map, every 20 turns
size of shifted area: 12x12 to 24x24
number of shifted walls per round: 12-45

Shifting will only ever take place between unexplored (or forgotten) 
grids. Thus, the chance of changes taking place is greater in areas
away from the player.

I also increased the starting distance from the centre from 20*20 to 28*28.

--------------------------------------------------------------------------------
7c805921b8 | dolorous | 2008-11-04 20:38:11 +0000

Simplify, based on the fact that there are no non-evil priestly monsters, so 
TSOites will have none for allies.

--------------------------------------------------------------------------------
f15f0492a0 | dolorous | 2008-11-04 20:13:56 +0000

Comment fix.

--------------------------------------------------------------------------------
da9379a27b | dolorous | 2008-11-04 20:11:30 +0000

Make Beogh prefer to bless priestly monsters as well as named monsters.

--------------------------------------------------------------------------------
59b053efd2 | j-p-e-g | 2008-11-04 13:14:08 +0000

Apply the first part of the labyrinth tweaks: * labyrinths are bordered by 
(undiggable) metal walls * teleporting inside a labyrinth will always send you 
away from the centre   (as the crow flies: you'll end somewhere in the stone or 
rock area)
Also make sure melded equipment cannot corrode.
(I'm still undecided about whether curses should affect melded items.)

--------------------------------------------------------------------------------
f5e55fd944 | dolorous | 2008-11-04 07:14:34 +0000

Comment fixes.

--------------------------------------------------------------------------------
02d8c0aadd | dolorous | 2008-11-04 07:13:50 +0000

Simplify one more time.

--------------------------------------------------------------------------------
6d14199d3d | dolorous | 2008-11-04 07:09:37 +0000

Simplify yet again.

--------------------------------------------------------------------------------
4fd18e9c80 | dolorous | 2008-11-04 04:26:30 +0000

Remove the out-of-LOS restriction from monster_random_space(), as levels are 
generally big enough that things will most often be placed out-of-LOS anyway.

--------------------------------------------------------------------------------
58f3401b46 | dolorous | 2008-11-04 02:37:13 +0000

Make some god-related functions static.

--------------------------------------------------------------------------------
8152dfbf1c | dolorous | 2008-11-03 21:58:43 +0000

Add still more miscellaneous minor fixes.

--------------------------------------------------------------------------------
89ad96df05 | dolorous | 2008-11-03 21:55:44 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
24018292b0 | dolorous | 2008-11-03 21:48:09 +0000

Reenable gods' revenge for atheists and Xom worshippers (oops).

--------------------------------------------------------------------------------
8e9b229d34 | dolorous | 2008-11-03 21:15:27 +0000

Simplify one more time.

--------------------------------------------------------------------------------
537041db91 | dolorous | 2008-11-03 20:43:20 +0000

Simplify yet again.

--------------------------------------------------------------------------------
09c586c9f0 | dolorous | 2008-11-03 20:39:33 +0000

Simplify again.

--------------------------------------------------------------------------------
af6cb48eda | dolorous | 2008-11-03 20:31:32 +0000

Simplify again.

--------------------------------------------------------------------------------
b16a25f6b9 | dolorous | 2008-11-03 20:23:49 +0000

Simplify.

--------------------------------------------------------------------------------
08ee245110 | dolorous | 2008-11-03 19:45:38 +0000

Reword Beogh's "You will pay..." vengeance speech to make it sound less like 
the standard penance message.

--------------------------------------------------------------------------------
fe19455a2b | dolorous | 2008-11-03 19:38:58 +0000

Revert one of the previous changes: Put back the unconditional "You will 
pay..." message, as leaving it out may be confusing.

--------------------------------------------------------------------------------
3797ce8f75 | dolorous | 2008-11-03 19:23:00 +0000

Consolidate gods' vengeance handling, and don't display a penance lecture if 
there's vengeance (so that you don't get "You will pay..." followed by "Beogh 
whispers, "You will pay..." for destroying an orcish idol; the "You feel 
guilty." message is enough then).

--------------------------------------------------------------------------------
87727fcee7 | dolorous | 2008-11-03 19:17:07 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
4fe1891322 | dolorous | 2008-11-03 19:02:18 +0000

Remove erroneous duplicate code.

--------------------------------------------------------------------------------
51f25d2d40 | dolorous | 2008-11-03 18:47:36 +0000

Add more conduct handling fixes.

--------------------------------------------------------------------------------
98d093c371 | dolorous | 2008-11-03 18:39:48 +0000

Clean up conduct handling a bit.

--------------------------------------------------------------------------------
801e0e4b3a | dploog | 2008-11-03 18:33:14 +0000

Fixed vault.

--------------------------------------------------------------------------------
f0f05c9137 | dolorous | 2008-11-03 18:25:33 +0000

Rename DID_CREATED_LIFE to DID_CREATE_LIFE, for consistency.

--------------------------------------------------------------------------------
8065cc9622 | dolorous | 2008-11-03 18:03:52 +0000

When a non-good-god-worshipping player or their allies kill a holy being, make 
TSO sometimes avenge it with cleansing flame.

--------------------------------------------------------------------------------
cdaee3e7e2 | dolorous | 2008-11-03 03:09:40 +0000

Simplify check for weapons that are too large for the player to wield.

--------------------------------------------------------------------------------
1be28fe39c | dolorous | 2008-11-03 02:19:44 +0000

Make big kobolds medium-sized instead of small-sized, so that they're actually 
bigger than normal kobolds, just as hobgoblins are bigger than goblins.

--------------------------------------------------------------------------------
ec8d3cd89e | dolorous | 2008-11-03 02:06:34 +0000

Add yet another minor cosmetic fix.

--------------------------------------------------------------------------------
75bd9d4101 | dploog | 2008-11-03 01:52:47 +0000

Some spelling fixes.

--------------------------------------------------------------------------------
eadd04b9ec | dolorous | 2008-11-03 01:34:15 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
80f0f54c82 | dolorous | 2008-11-03 01:23:37 +0000

Fix typo.

--------------------------------------------------------------------------------
09a0184218 | dploog | 2008-11-03 01:21:28 +0000

New vault (inspired by ##crawl).

--------------------------------------------------------------------------------
48aad94209 | dolorous | 2008-11-02 22:09:59 +0000

Add one last minor cosmetic fix.

--------------------------------------------------------------------------------
49aa881bbe | dolorous | 2008-11-02 22:07:43 +0000

Add yet another minor cosmetic fix.

--------------------------------------------------------------------------------
f0265da2ec | dolorous | 2008-11-02 21:54:24 +0000

Remove Zin's extra penance for killing friendly or neutral holy beings, as he's 
not associated with them anymore.

--------------------------------------------------------------------------------
0edfb7e137 | dolorous | 2008-11-02 21:11:23 +0000

Add spacing fix.

--------------------------------------------------------------------------------
02b574a73d | dolorous | 2008-11-02 20:37:47 +0000

Capitalization fix.

--------------------------------------------------------------------------------
d6d852eff6 | dolorous | 2008-11-02 20:10:29 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
5042b1cc84 | dolorous | 2008-11-02 19:32:13 +0000

Readd quotes to the message displayed when one god averts another's smiting.

--------------------------------------------------------------------------------
83c5c40d9c | dolorous | 2008-11-02 19:24:14 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
802b41d43d | dolorous | 2008-11-02 19:06:57 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
6ab583f0e7 | dolorous | 2008-11-02 18:10:46 +0000

Fix zombie size check when creating enslaved twisted souls.

--------------------------------------------------------------------------------
7a7f5ffd6a | dolorous | 2008-11-02 16:34:23 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
b86d4640d4 | dolorous | 2008-11-02 16:31:58 +0000

Increase the number of tries for a random space again.

--------------------------------------------------------------------------------
e2a73e925c | dolorous | 2008-11-02 05:52:38 +0000

Add "vampiric" as the adjective form for vampires.

--------------------------------------------------------------------------------
8eecdc8f47 | dolorous | 2008-11-02 05:46:09 +0000

Implement [2169326]: Put back some adjective skill titles.

--------------------------------------------------------------------------------
74269d47bb | dolorous | 2008-11-02 04:44:44 +0000

Add punctuation fixes.

--------------------------------------------------------------------------------
89fde72d66 | dolorous | 2008-11-02 04:31:54 +0000

Fix wording.

--------------------------------------------------------------------------------
033369a3bf | dolorous | 2008-11-02 02:54:58 +0000

Increase the number of tries when looking for an empty space on the level.

--------------------------------------------------------------------------------
7ad73d3195 | dolorous | 2008-11-02 02:09:59 +0000

Replace Zin's angelic retribution with a surveillance-based retribution: giant 
eyeballs, eyes of draining, eyes of devastation, or great orbs of eyes will now 
be spawned outside player LOS.

--------------------------------------------------------------------------------
7375cb9e07 | dolorous | 2008-11-01 21:28:57 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
b1375b0ec4 | dolorous | 2008-11-01 21:28:24 +0000

For consistency with most other 'z' types, make flaming corpses able to sense 
invisible instead of see invisible.

--------------------------------------------------------------------------------
07b5e56b34 | dolorous | 2008-11-01 21:08:39 +0000

Comment fix.

--------------------------------------------------------------------------------
01590bfc70 | dolorous | 2008-11-01 21:03:43 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
15c2696068 | dolorous | 2008-11-01 21:02:49 +0000

Fix [2162875] by applying the rest of rvollmert's patch.

--------------------------------------------------------------------------------
3048edbd3b | dolorous | 2008-11-01 20:57:46 +0000

Simplify define_monster() for plain draconians, using part of rvollmert's patch 
in [2162875].

--------------------------------------------------------------------------------
cb58b68541 | dolorous | 2008-11-01 19:45:12 +0000

Simplify.

--------------------------------------------------------------------------------
c10bc5a2f2 | dolorous | 2008-11-01 18:44:18 +0000

Add hungry ghosts to the list of Yred's random servants.

--------------------------------------------------------------------------------
61f06ccdba | dolorous | 2008-11-01 18:11:05 +0000

Revert Twisted Resurrection's abominations' being unable to use stairs, as it 
weakens the spell too much.

--------------------------------------------------------------------------------
edf19d1872 | dolorous | 2008-11-01 17:14:31 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
084970ae2d | dolorous | 2008-11-01 17:03:22 +0000

Simplify.

--------------------------------------------------------------------------------
43b958a1ca | dolorous | 2008-11-01 16:42:36 +0000

Disallow permanent abominations created via Twisted Resurrection from taking 
stairs, and consolidate the logic for this and other stair-ignoring undead in a 
monsters::can_use_stairs() function.

--------------------------------------------------------------------------------
e1a0bc1ab9 | dolorous | 2008-11-01 03:41:09 +0000

Disallow hostile zombified monsters' use of stairs, too.

--------------------------------------------------------------------------------
6987aba04a | dolorous | 2008-10-31 18:55:05 +0000

Disallow zombified monsters' use of stairs.

--------------------------------------------------------------------------------
9866c3c4ef | dolorous | 2008-10-31 00:40:12 +0000

Add one last holy being-related fix.

--------------------------------------------------------------------------------
eace5833b8 | dolorous | 2008-10-30 22:56:44 +0000

Switch the corpse types of the shining eye and the eye of draining, as the 
former mutates monsters and the latter doesn't.

--------------------------------------------------------------------------------
c8a3fe6ed2 | dolorous | 2008-10-30 22:54:21 +0000

Simplify again.

--------------------------------------------------------------------------------
c1bb85e6d4 | dolorous | 2008-10-30 20:46:52 +0000

Add yet more holy being-related cleanups.

--------------------------------------------------------------------------------
451fb7b499 | dolorous | 2008-10-30 20:08:55 +0000

Add yet another minor cosmetic fix.

--------------------------------------------------------------------------------
8011d5b961 | dolorous | 2008-10-30 20:02:49 +0000

Add more holy being-related cleanups.

--------------------------------------------------------------------------------
afa3bd5cf5 | dolorous | 2008-10-30 19:21:03 +0000

Comment fix.

--------------------------------------------------------------------------------
d275844090 | dolorous | 2008-10-30 19:20:33 +0000

Fix previous cleanup.

--------------------------------------------------------------------------------
450f6fd14f | dolorous | 2008-10-30 19:08:31 +0000

Add various holy being-related cleanups.

--------------------------------------------------------------------------------
5680f596aa | dolorous | 2008-10-30 19:06:26 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
94a5e7d262 | dolorous | 2008-10-30 18:17:43 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
e506e3ecf0 | dolorous | 2008-10-30 18:08:26 +0000

Make Zin's retribution-summoned plagues permanent.

--------------------------------------------------------------------------------
55cd93aada | dolorous | 2008-10-30 17:55:21 +0000

Implement [2182736]: Eliminate RAP_ANGRY and RAP_BERSERK for missile weapons.

--------------------------------------------------------------------------------
28bd7fa74e | dolorous | 2008-10-30 17:48:37 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f27e46e05f | dolorous | 2008-10-30 15:57:57 +0000

For Yred worshippers, allow non-mindless undead to follow you if they're not 
adjacent.  Mindless undead will still only follow you if they're adjacent.

--------------------------------------------------------------------------------
8ed6770554 | dolorous | 2008-10-30 14:59:30 +0000

Make is_follower() return true for all undead slaves under Yred.

--------------------------------------------------------------------------------
eaa5abaa3b | dolorous | 2008-10-30 14:46:43 +0000

Give flayed ghosts I_NORMAL intelligence instead of I_PLANT, to match most of 
the other ghosts, and give skeletal dragons I_ANIMAL intelligence instead of 
I_PLANT, to both match other dragons and differentiate them more from dragon 
skeletons.

--------------------------------------------------------------------------------
e4f7febe69 | dolorous | 2008-10-30 14:44:29 +0000

Simplify.

--------------------------------------------------------------------------------
65be5d6e5e | j-p-e-g | 2008-10-27 20:00:09 +0000

Fix the skill toggle again.

--------------------------------------------------------------------------------
97fe1affe7 | j-p-e-g | 2008-10-26 19:14:07 +0000

* Properly deactivate shields during transformations. * Fix a few 
transformation edge cases: make sure inappropriate   equipment is removed when 
untransforming e.g. if the player was   mutated during transformation or 
wielded a two-handed weapon. * Mention mulching in ammo descriptions. * Fix 
2178374: Spell descriptions for items. * FR 2183104: Get rid of training toggle 
for skills at 27.

--------------------------------------------------------------------------------
c96c36a047 | j-p-e-g | 2008-10-26 13:18:19 +0000

Implement FR 1894211: All transformations will now cause your equipment to meld 
into your body than rather than being removed, so that when untransforming you 
don't have to put everything on again.
* Wielded stuff cannot be melded, and does not yet use the autoswap
  function.
* As before, the low-level transformation spells refuse to work with 
  cursed equipment.
* The messages are unnecessarily spammy if you change forms while
  already transformed (first everything is re-equipped, then unequipped
  again). Conversely, on simply untransforming the lack of messages
  might be confusing.
* Might be buggy, feedback welcome!

--------------------------------------------------------------------------------
a2c2fe61d7 | ennewalker | 2008-10-26 02:31:18 +0000

[2195540] Fixing secret doors having an incorrect tile flavour that would cause 
an assert.

--------------------------------------------------------------------------------
125d18d9c7 | ennewalker | 2008-10-25 18:41:25 +0000

Fixing egregious font outlining issues.

--------------------------------------------------------------------------------
666178eeec | ennewalker | 2008-10-25 17:50:58 +0000

Removing vestigial code from previous submission.

--------------------------------------------------------------------------------
7db47d41a1 | ennewalker | 2008-10-25 17:47:37 +0000

More graphical menu improvements.  Inventory menus now have columns.  Long 
entries are now wrapped and then truncated.

--------------------------------------------------------------------------------
b94b86b02e | dolorous | 2008-10-23 16:24:30 +0000

In Lee's Rapid Deconstruction, use "shatters" instead of "explodes", except if 
the monster was instantly killed.

--------------------------------------------------------------------------------
bcaca7e157 | dolorous | 2008-10-23 06:11:53 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
6613e6733b | dolorous | 2008-10-23 06:05:21 +0000

Mention Beogh's dislike of your destroying orcish idols.

--------------------------------------------------------------------------------
a9f53dd003 | dploog | 2008-10-20 14:10:36 +0000

Applying Darshan's new linebreak \ command across the board.

--------------------------------------------------------------------------------
40d686b7f0 | dshaligram | 2008-10-20 10:32:52 +0000

Fixed KMONS not accepting comma-separated list of alternative monsters.

--------------------------------------------------------------------------------
f57fa3bedc | dolorous | 2008-10-19 20:51:45 +0000

For consistency, rename "Summon Guardian" to "Summon Angel".

--------------------------------------------------------------------------------
bd3c84a3c7 | dolorous | 2008-10-19 20:42:40 +0000

Treat colored rat skeletons/simulacra the same way as colored draconian 
skeletons/simulacra.

--------------------------------------------------------------------------------
70414943b0 | dolorous | 2008-10-19 20:20:44 +0000

Rework angels somewhat.  To synchronize with daevas, angels are now agents of 
TSO rather than Zin, get the same draining protection, and get the same melee 
attacks.  To differentiate from them, they always get a mace or great mace of 
holy wrath.  TSO's "Summon Daeva" is now "Summon Divine Warrior", and has a 50% 
chance of summoning either an angel or a daeva.
Note that Zin's angel retribution is not changed yet.

--------------------------------------------------------------------------------
f77e806dbb | dolorous | 2008-10-19 19:59:41 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
e46d957ebc | dolorous | 2008-10-19 18:12:13 +0000

Fix the descriptions of saprovorous races.

--------------------------------------------------------------------------------
d29d160ed4 | dolorous | 2008-10-19 18:11:16 +0000

Remove the small piety gain for good gods after reading a scroll of holy word, 
as it's too obscure, and it doesn't really fit any good god other than TSO.

--------------------------------------------------------------------------------
dbf7d0324c | dshaligram | 2008-10-19 17:17:58 +0000

Update canned level compiler.

--------------------------------------------------------------------------------
f4e39afa6a | dshaligram | 2008-10-19 17:14:02 +0000

Allow continuation lines in .des files (dpeg).

--------------------------------------------------------------------------------
bb9906c987 | dolorous | 2008-10-19 15:52:34 +0000

Also rename animate_a_corpse() to animate_remains().

--------------------------------------------------------------------------------
9ba6df824d | dolorous | 2008-10-19 15:48:48 +0000

Rename Yred's "Animate Corpse" ability to "Animate Remains".

--------------------------------------------------------------------------------
1737c57358 | dolorous | 2008-10-19 15:39:15 +0000

In the ability help text, clarify that Yred's "Animate Corpse" and "Animate 
Dead" abilities also work on skeletons.

--------------------------------------------------------------------------------
d031336d64 | dolorous | 2008-10-19 06:44:42 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
6cd249ccec | dolorous | 2008-10-19 06:12:06 +0000

Remove now-redundant entry.

--------------------------------------------------------------------------------
c4efb2d532 | dolorous | 2008-10-19 06:11:33 +0000

Fix compilation.

--------------------------------------------------------------------------------
d8942ba7fe | dolorous | 2008-10-19 05:57:38 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
5736acdf83 | ennewalker | 2008-10-19 05:02:35 +0000

[2154738] Addressing some dungeon continuity problems (i.e. Orc bubble 
problem).  Regions of the map without a down staircase of any sort get an 
escape hatch down.  Bottoms of branches must contain a path back to a branch 
exit via stone stairs.  Finally, the bottom levels of spotty branches (Orc, 
Lair) are now slightly bigger.  They aren't always fully connected, but it's 
now more likely that this is the case.
Also, fixing a terrible typo bug that I introduced that silently eliminated the 
check for missing staircases. (!!!)

--------------------------------------------------------------------------------
14500f51c1 | dolorous | 2008-10-17 20:30:35 +0000

Rearrange the routine for Okawaru's retribution-spawned servants, and correct 
the percentages in the comments.

--------------------------------------------------------------------------------
e0bca022df | dolorous | 2008-10-17 20:00:31 +0000

Increase the food cost of Yred's "Animate Corpse" to match that of "Animate 
Dead".  This should make the latter more useful when many corpses are around.

--------------------------------------------------------------------------------
24635b5b6b | dolorous | 2008-10-17 19:50:28 +0000

Tweak the threshold for Yred's granted friendly servants.  You first get access 
to servants at piety 75 (enough for power 3, "Animate Dead", but you don't get 
access to all servant types until piety 120 (enough for power 5, "Enslave 
Soul").  This should fix the balance issues with, say, getting a death cob as 
your first servant early in the game.

--------------------------------------------------------------------------------
0d18651f39 | dolorous | 2008-10-17 18:12:04 +0000

Make "Conjure Ball Lightning" work again by fixing inverted logic, and, hence, 
[2172750].

--------------------------------------------------------------------------------
10ea192d5b | dolorous | 2008-10-17 16:10:08 +0000

Allow specifying a threshold for which types of Yred servants are allowed.

--------------------------------------------------------------------------------
10f1867a5d | dolorous | 2008-10-17 05:07:55 +0000

Remove holy beings' automatically repelling undead.  Since the "Repel Undead" 
power is no longer available, it doesn't seem to fit anymore. Another way to 
protect them should eventually be added, though.

--------------------------------------------------------------------------------
dcc7155813 | dolorous | 2008-10-17 04:41:31 +0000

Add minor monster tweaks: remove warm blood from angels and daevas, since it 
doesn't seem appropriate, and give it to lava snakes as a complement to 
cold-blooded normal snakes, since lava fish are warm-blooded as complements to 
cold-blooded normal fish.

--------------------------------------------------------------------------------
56abc8d718 | dolorous | 2008-10-17 01:56:34 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
b7e93cfac6 | dolorous | 2008-10-17 01:42:23 +0000

Rearrange Yred's servant generation routine to make it easier to adjust.

--------------------------------------------------------------------------------
c65d479543 | dolorous | 2008-10-17 01:25:46 +0000

Split up the routines for Yred's and Okawaru's servants again.

--------------------------------------------------------------------------------
9f612e8e98 | dolorous | 2008-10-16 22:34:03 +0000

Properly handle zombified dual-wielding monsters.

--------------------------------------------------------------------------------
fcd2f73d85 | dolorous | 2008-10-16 21:42:51 +0000

Replace Yred's "Control Undead" power with "Enslave Soul", as proposed on 
crawl-ref-discuss.

--------------------------------------------------------------------------------
66e21b71a9 | dolorous | 2008-10-16 19:41:58 +0000

Don't put skeletal dragons in the MONS_DRAGON genus anymore, to fix the 
inconsistency with weapons of dragon slaying (they are vilnerable, while dragon 
zombies and skeletons aren't), and because their description indicates that 
they're made of pieced-together bones from many different dragons (so limiting 
them to one species of dragon seems wrong).

--------------------------------------------------------------------------------
4cc9972484 | dolorous | 2008-10-16 17:56:38 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
216a0f216c | dolorous | 2008-10-16 16:01:03 +0000

Comment fix.

--------------------------------------------------------------------------------
2e908c6345 | ennewalker | 2008-10-16 00:15:27 +0000

[2157145] Applying patch for missing #includes.

--------------------------------------------------------------------------------
42f25ae23e | ennewalker | 2008-10-16 00:09:45 +0000

Support for inline graphics and mouse input on menus.
Menus in the console version should be unchanged.  Let me know if this is not 
the case.

--------------------------------------------------------------------------------
84789445f8 | haranp | 2008-10-15 19:15:18 +0000

Self-affecting monster spells don't beam. [1852045]

--------------------------------------------------------------------------------
4f4134873a | haranp | 2008-10-15 18:40:06 +0000

Fix 2164937: better necromancy miscast messaging.

--------------------------------------------------------------------------------
c75aefde34 | haranp | 2008-10-15 17:44:40 +0000

Removed obsolete show_green (you.flash_colour is now used.) Fixes 2168081.

--------------------------------------------------------------------------------
1dabce8662 | dolorous | 2008-10-15 16:43:23 +0000

Allow checking regeneration ability at the level of individual monsters.

--------------------------------------------------------------------------------
156084b6fd | dolorous | 2008-10-15 15:55:54 +0000

Fix [2168010]: Make Nemelex prayers work again.

--------------------------------------------------------------------------------
c27d26e0b1 | dolorous | 2008-10-15 15:50:43 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
6e66d99e08 | dolorous | 2008-10-14 17:38:14 +0000

Tweak the conditions for Yred's granting you undead servants: the minimum piety 
for it is now 75 (corresponding to the threshold for his third power) rather 
than 81.

--------------------------------------------------------------------------------
5516625b72 | dolorous | 2008-10-14 16:12:40 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
e0d4f4c1ad | dolorous | 2008-10-14 14:43:45 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
9c3ce7ba4e | dolorous | 2008-10-14 08:42:32 +0000

Fix [2165081]: Make the AF_NAPALM attack properly take sticky flame resistance 
into account.

--------------------------------------------------------------------------------
f829597a03 | dolorous | 2008-10-14 08:32:13 +0000

Comment fix.

--------------------------------------------------------------------------------
e6382da066 | dolorous | 2008-10-14 06:57:29 +0000

Consistency fixes: Ensure that Beoghits can't permanently recruit summoned orcs 
via the Crusade card, or beat shapeshifters in orc form into submission.

--------------------------------------------------------------------------------
b0726dc32d | dploog | 2008-10-13 23:42:12 +0000

Content fix for scroll description.

--------------------------------------------------------------------------------
bc55819921 | dolorous | 2008-10-13 23:36:19 +0000

Typo fix.

--------------------------------------------------------------------------------
fb9d16db3d | dploog | 2008-10-13 23:29:09 +0000

Added description to scroll of vulnerability.

--------------------------------------------------------------------------------
c28a3c30a5 | haranp | 2008-10-13 23:22:58 +0000

Fix beams crashing if beam_source was MHITNOT or MHITYOU. bolt::agent() could 
still use more work.

--------------------------------------------------------------------------------
3b14e591db | haranp | 2008-10-13 22:57:46 +0000

Minor messaging bug with Zot traps.

--------------------------------------------------------------------------------
2c7ef91ccd | haranp | 2008-10-13 22:50:44 +0000

s/antimagic/vulnerability/

--------------------------------------------------------------------------------
e8755ebf1b | dolorous | 2008-10-13 22:41:46 +0000

Tweak the AF_NAPALM flavored attack a bit, to match AF_ROT.

--------------------------------------------------------------------------------
fc3b316537 | dolorous | 2008-10-13 21:22:42 +0000

Simplify.

--------------------------------------------------------------------------------
eb97f179f7 | dolorous | 2008-10-13 20:57:06 +0000

Apply rvollmert's patch to fix [2164276].

--------------------------------------------------------------------------------
063113c53d | dolorous | 2008-10-13 17:56:10 +0000

Simplify.

--------------------------------------------------------------------------------
a7efdf90e4 | dolorous | 2008-10-13 17:54:38 +0000

Add a few more apostrophe-related cleanups.

--------------------------------------------------------------------------------
8581baef63 | dolorous | 2008-10-13 17:41:14 +0000

Add a few apostrophe-related cleanups.

--------------------------------------------------------------------------------
63e6c073d1 | haranp | 2008-10-13 13:23:17 +0000

Uncharmed creatures don't "come into view". [2163019]

--------------------------------------------------------------------------------
1545ceeeba | haranp | 2008-10-13 13:06:10 +0000

Fix 2162809: scrolls of immolation shouldn't burn inventory.

--------------------------------------------------------------------------------
0634ed6915 | haranp | 2008-10-13 12:50:27 +0000

Fix 2162991: ammo that IDs through throwing it should merge in your pack 
instantaneously.

--------------------------------------------------------------------------------
3800d44b79 | haranp | 2008-10-13 11:16:17 +0000

Fix 2162827: tag length calculation was incorrect.

--------------------------------------------------------------------------------
dc02444914 | dolorous | 2008-10-12 23:22:12 +0000

Properly enable spectral things' draining attacks again.

--------------------------------------------------------------------------------
64da77e12f | haranp | 2008-10-12 21:30:22 +0000

Dancing weapons (from Tukima's Dance) shouldn't trigger penance when defeated. 
(This can be argued either way, but it does seem more logical to me this way.) 
[2145742]

--------------------------------------------------------------------------------
b573bc763f | dolorous | 2008-10-12 18:21:31 +0000

And check the alternative weapon slot properly.

--------------------------------------------------------------------------------
2021abd7d5 | dolorous | 2008-10-12 18:10:06 +0000

Account for randart shields when scanning monsters' inventories for randarts.

--------------------------------------------------------------------------------
1d5ad19b86 | dolorous | 2008-10-12 18:01:17 +0000

Add minor consistency fixes.

--------------------------------------------------------------------------------
77b8d9a6cc | dolorous | 2008-10-12 04:14:25 +0000

Make abominations resist poison, since they can be either demonic or undead, 
and all undead are apparently poison resistant.

--------------------------------------------------------------------------------
7e8747d114 | haranp | 2008-10-12 02:55:55 +0000

Minor changes.

--------------------------------------------------------------------------------
55d86698b1 | haranp | 2008-10-12 02:37:36 +0000

Increased Silence range from 6+0 to 6+1.

--------------------------------------------------------------------------------
a65641377f | haranp | 2008-10-12 02:34:19 +0000

Amulet of controlled flight also IDs when being put on while levitating.

--------------------------------------------------------------------------------
af9d6c8e0e | haranp | 2008-10-12 01:49:12 +0000

General code improvements.

--------------------------------------------------------------------------------
192cbf9887 | haranp | 2008-10-11 22:36:55 +0000

Fix typo.

--------------------------------------------------------------------------------
b4204ba95e | dolorous | 2008-10-11 20:57:12 +0000

Typo fix.

--------------------------------------------------------------------------------
c69283b065 | dolorous | 2008-10-11 19:43:54 +0000

Make mermaids actually able to call other merfolk, by checking for a primary 
habitat of water instead of a generic one.

--------------------------------------------------------------------------------
d202b326dc | j-p-e-g | 2008-10-11 17:27:07 +0000

* Fix some bugs for the autoexclusion I forgot to commit last weekend. * 
Mermaids now call nearby aquatic monsters (i.e. other merfolk and fish). * A 
few more songs for the Singing Sword.

--------------------------------------------------------------------------------
cfa399b13f | haranp | 2008-10-11 16:12:05 +0000

Removed draconians' ability to strike three times per turn with their wielded 
weapons. I'm assuming this was unintentional (though if it isn't, someone speak 
up.) Fixes [2084477].

--------------------------------------------------------------------------------
bfc330b6e1 | haranp | 2008-10-11 15:54:36 +0000

Fix 2159300: inverted argument order prevented reaching the correct help screen.

--------------------------------------------------------------------------------
6f8e75f0aa | haranp | 2008-10-11 15:50:46 +0000

Fix 2041934: auto-swapping rings and amulets was taking twice as long as 
manually swapping (two double-speed turns plus one bogus normal-speed turn.) 
This also applied to weapon swapping after butchery. This fix is rather 
hackish, better solutions appreciated.

--------------------------------------------------------------------------------
670cdde1fa | haranp | 2008-10-11 14:53:07 +0000

Describe monsters with halved MR.

--------------------------------------------------------------------------------
ebc2cb26f2 | haranp | 2008-10-11 13:38:28 +0000

After discussion with dpeg, added a Scroll of Antimagic, taking probability 
(equal to ?oHolyWord) from the ?oPaper.
Effects apply to all creatures within LOS, including you,
with no magic resistance check:
- Remove all magical enchantments (e.g. Haste, but not Poison)
- Cut magic resistance in half for 40 turns. (This does not
  affect magic-immunes.)

Balance testing, etc., needed.

--------------------------------------------------------------------------------
89adf4610b | haranp | 2008-10-11 11:57:14 +0000

Add food-item-based hunger descriptions to spells.

--------------------------------------------------------------------------------
ac38a5b605 | haranp | 2008-10-11 10:21:14 +0000

Fix 2158749: Sage information not getting saved (oops.)

--------------------------------------------------------------------------------
c98da4f51c | haranp | 2008-10-11 01:19:06 +0000

Uncolour power string.

--------------------------------------------------------------------------------
c87ebb27ff | ennewalker | 2008-10-10 12:07:40 +0000

Fixing typo that was preventing shift + arrows/numpad from working.

--------------------------------------------------------------------------------
bbddaa28b4 | haranp | 2008-10-10 00:52:11 +0000

Colours, pretty colours... Potential range now in darkgrey. Spell power 
coloured red/green/yellow/white. (This might have been there in the past and 
removed as fruit salad; if so sorry and I'll remove it again.)

--------------------------------------------------------------------------------
5cd65ca8c6 | haranp | 2008-10-10 00:35:26 +0000

Added range information to alternate spell display (dpeg). Quelled a warning on 
lack of virtual destructors.

--------------------------------------------------------------------------------
bbc87d9159 | dploog | 2008-10-09 18:24:40 +0000

Tweaked Og aptitudes: now 180 for Axes, Maces and all magical skills apart from 
Spellcasting.

--------------------------------------------------------------------------------
93eaefacc6 | dolorous | 2008-10-09 18:09:42 +0000

Color daevas' weapons yellow instead of white.

--------------------------------------------------------------------------------
47e8e5b2e0 | dshaligram | 2008-10-09 17:26:38 +0000

Reintroduce chance of orc wizards and priests in orc bands, but slightly less 
likely than they were in 0.3.

--------------------------------------------------------------------------------
1c7e145a0a | haranp | 2008-10-09 13:59:30 +0000

Rewrite of beam.cc: put all beam data in one place. Might be buggy.

--------------------------------------------------------------------------------
cd08ab62d6 | haranp | 2008-10-09 10:13:51 +0000

Decouple zap_type from wand_type prepatory to a big beam() rewrite.

--------------------------------------------------------------------------------
ff184229db | dolorous | 2008-10-08 22:28:31 +0000

Implement [2147458].  Using Robert's patch (adjusted for trunk), improve low 
levels of life protection by treating experience pool draining similarly to 
experience level draining.

--------------------------------------------------------------------------------
b28cc61447 | dolorous | 2008-10-08 21:20:19 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
2263e6011e | dolorous | 2008-10-08 21:14:05 +0000

Revert last changes, to maintain compatibility, and properly block the Book of 
Healing's being generated again.

--------------------------------------------------------------------------------
d442c0b7d2 | dolorous | 2008-10-08 20:58:50 +0000

Completely remove the Book of Healing.

--------------------------------------------------------------------------------
007655b7a1 | dolorous | 2008-10-08 19:30:52 +0000

And always make friendly monsters that you've used vampiric drain on hostile.

--------------------------------------------------------------------------------
41e831e439 | dolorous | 2008-10-08 19:26:46 +0000

Really get the conducts right this time.

--------------------------------------------------------------------------------
88f3de6ef9 | dolorous | 2008-10-08 19:23:00 +0000

And enable the conducts properly.

--------------------------------------------------------------------------------
91fe93aa0d | dolorous | 2008-10-08 19:20:52 +0000

And make the annoyance actually work again.

--------------------------------------------------------------------------------
9aef1290d5 | dolorous | 2008-10-08 19:17:11 +0000

And enable the "attack friend" conduct in the right place.

--------------------------------------------------------------------------------
99e98160d3 | dolorous | 2008-10-08 19:13:50 +0000

Count using vampiric draining on a friendly monster as an attack.

--------------------------------------------------------------------------------
56a71346d6 | dolorous | 2008-10-08 16:18:41 +0000

Make vampiric draining alert and anger its target, just as Yred's life draining 
does with its targets.

--------------------------------------------------------------------------------
e18be9c249 | dolorous | 2008-10-08 14:04:21 +0000

Increase the minimum piety requirement for Yred' injury mirroring to 50, the 
amount required to get his second power.

--------------------------------------------------------------------------------
70a1e4b78a | dolorous | 2008-10-08 06:31:48 +0000

Simplify.

--------------------------------------------------------------------------------
6d0956ae71 | dolorous | 2008-10-08 05:56:37 +0000

Allow monsters to properly pick up and use missile types that don't need 
launchers other than darts and stones.

--------------------------------------------------------------------------------
7fde342757 | dolorous | 2008-10-08 05:07:47 +0000

Properly end prayers when you lose enough piety to make your god not accept 
them anymore.

--------------------------------------------------------------------------------
22646d85bf | dolorous | 2008-10-08 03:16:40 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
b7eb0f142b | dolorous | 2008-10-08 02:23:46 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
dfa915b185 | dolorous | 2008-10-07 23:02:24 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
3355652704 | dolorous | 2008-10-07 21:10:06 +0000

Simplify.

--------------------------------------------------------------------------------
04f29ca989 | dolorous | 2008-10-07 20:52:37 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
a61eb00e7f | dolorous | 2008-10-07 20:46:02 +0000

Add more prayer-related fixes.

--------------------------------------------------------------------------------
c0be5104be | dolorous | 2008-10-07 20:11:59 +0000

For consistency, make Zin ignore your non-altar prayers if you don't have 
enough piety to get his divine sustenance.

--------------------------------------------------------------------------------
e426b1b518 | dolorous | 2008-10-07 19:55:50 +0000

Consolidate prayer-ending routines.

--------------------------------------------------------------------------------
172890e126 | dolorous | 2008-10-07 19:27:21 +0000

Tweak Yred's description a bit.

--------------------------------------------------------------------------------
398099b4dc | dolorous | 2008-10-07 19:20:57 +0000

Make Yred ignore prayers if his injury mirror is unavailable, and turn off 
prayer if it costs you enough piety to make itself unavailable.

--------------------------------------------------------------------------------
051caae6e1 | haranp | 2008-10-07 11:29:56 +0000

Fix acquirement() giving Book of Bugginess.

--------------------------------------------------------------------------------
3ee58c7b01 | dolorous | 2008-10-07 05:46:24 +0000

Make base_name() use a default parameter.

--------------------------------------------------------------------------------
6304ca95de | dolorous | 2008-10-07 04:58:52 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
58f519a211 | dolorous | 2008-10-07 03:53:29 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
cdac4bea67 | dolorous | 2008-10-07 03:29:56 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
b6484c07a2 | dolorous | 2008-10-07 03:09:27 +0000

Fix flight type handling so that spectral things can at least always levitate 
again (since their class can), regardless of what actual type they are.

--------------------------------------------------------------------------------
2a69f07bc9 | ennewalker | 2008-10-07 01:53:06 +0000

Fixing bug where spells that affected an area couldn't be cast via mouse click.

--------------------------------------------------------------------------------
bba46a3a79 | dolorous | 2008-10-07 00:39:58 +0000

Revert previous changes, as they don't seem that useful, given that most of the 
work involving speed uses speed increments.

--------------------------------------------------------------------------------
108ddcb271 | dolorous | 2008-10-07 00:21:19 +0000

Expand monster speed handling to work on the level of individual monsters.

--------------------------------------------------------------------------------
95581358c4 | dolorous | 2008-10-06 22:22:33 +0000

Add still another minor cosmetic fix.

--------------------------------------------------------------------------------
e686e321ca | dolorous | 2008-10-06 22:18:38 +0000

Add yet one more minor cosmetic fix.

--------------------------------------------------------------------------------
86d3f0a467 | dolorous | 2008-10-06 22:12:03 +0000

Add one more minor fix.

--------------------------------------------------------------------------------
7b3417b7c8 | dolorous | 2008-10-06 22:05:45 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
d820260c1a | dolorous | 2008-10-06 21:18:17 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
2331200dee | dolorous | 2008-10-06 21:10:18 +0000

Fix inverted logic, and simplify.

--------------------------------------------------------------------------------
4c1de87578 | dolorous | 2008-10-06 20:59:59 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
8998d5a1a9 | haranp | 2008-10-06 15:32:18 +0000

Fix 2149665: bad bolt name for throwing.

--------------------------------------------------------------------------------
994c1d68d1 | haranp | 2008-10-06 11:59:08 +0000

Fix 2148551: items not uppercased. Other minor fixes.

--------------------------------------------------------------------------------
2e41087ac6 | dolorous | 2008-10-06 06:41:02 +0000

And really fix zombification checks.

--------------------------------------------------------------------------------
973b18af0e | dolorous | 2008-10-06 06:28:54 +0000

Fix inverted logic (oops).

--------------------------------------------------------------------------------
dc6fa05f3b | dolorous | 2008-10-06 06:19:21 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
883cc81ad9 | dolorous | 2008-10-06 04:40:55 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
c6f1b8f325 | dolorous | 2008-10-06 04:21:59 +0000

Expand mons_itemuse() to work at the individual monster level, as well.

--------------------------------------------------------------------------------
3905eb1807 | dolorous | 2008-10-06 03:37:28 +0000

Add yet more cosmetic fixes.

--------------------------------------------------------------------------------
fd999e0e12 | ennewalker | 2008-10-06 03:11:13 +0000

Allowing literal tiledef start values.

--------------------------------------------------------------------------------
4599e39a2d | dolorous | 2008-10-06 02:57:11 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
0fb28d6c1b | dolorous | 2008-10-06 02:51:44 +0000

Expand handling of monster intelligence and zombifiability to work on the level 
of individual monsters.

--------------------------------------------------------------------------------
967e9e7bb8 | dolorous | 2008-10-06 02:03:17 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
97aa9cdb2a | ennewalker | 2008-10-06 00:42:14 +0000

Fixing tiles text cursor appearing in the wrong region.

--------------------------------------------------------------------------------
10eb277e40 | haranp | 2008-10-05 21:31:28 +0000

Grey out all monsters and cells (not just wall cells) out of range. Describe 
out-of-range monsters.

--------------------------------------------------------------------------------
e719a17eb4 | dolorous | 2008-10-05 20:58:42 +0000

Take monsters' primary and secondary habitats into account when first placing 
them, too.  This should allow proper creation of merfolk zombies on land, and, 
hence, should fix [2146792].

--------------------------------------------------------------------------------
f0d8a73de6 | haranp | 2008-10-05 20:52:28 +0000

Unbreak debug build.

--------------------------------------------------------------------------------
8532044ddf | dolorous | 2008-10-05 19:43:57 +0000

Adjust monster habitats again.  Remove the M_AMPHIBIOUS flag, and replace it 
with two new habitats: HT_AMPHIBIOUS_LAND and HT_AMPHIBIOUS_WATER, to indicate 
which habitat a monster prefers.  This effectively gives amphibious monsters 
primary and secondary habitats; check both when trying to place such monsters.  
With these changes, merfolk can be placed on land properly (via wizard mode's 
&M) when no water is around.  The one monster that can move through rock is 
affected as well: rock is its primary habitat, while land is its secondary one.

--------------------------------------------------------------------------------
15f4a9725e | dolorous | 2008-10-05 19:04:51 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
80fecf85c7 | dolorous | 2008-10-05 17:32:48 +0000

Simplify.

--------------------------------------------------------------------------------
341e6e03d6 | dolorous | 2008-10-05 16:57:06 +0000

Add still more miscellaneous minor fixes.

--------------------------------------------------------------------------------
90451abc4f | haranp | 2008-10-05 16:26:35 +0000

Removed unneeded casts.

--------------------------------------------------------------------------------
239ee7d104 | haranp | 2008-10-05 16:09:36 +0000

Minor typesafety fix. Added description for '!' and '@' to targeting help.

--------------------------------------------------------------------------------
542219cbf2 | dploog | 2008-10-05 13:02:06 +0000

Changed most of the oklob vaults.

--------------------------------------------------------------------------------
a421619092 | ennewalker | 2008-10-05 03:15:39 +0000

Graphical support for range restrictions of spells in tiles mode.  Clicking 
past the max range will now fire as far as it can, rather than just giving an 
error.

--------------------------------------------------------------------------------
34e3ce6b9b | dolorous | 2008-10-05 01:53:12 +0000

Fix [2146878]: Make the species abbreviation list correspond to the species 
list again.

--------------------------------------------------------------------------------
0c55d2c9ad | dolorous | 2008-10-04 18:37:03 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
ffe366a5e2 | j-p-e-g | 2008-10-04 18:18:15 +0000

Fix 2063470: =f inscription preventing wielding of stones
Improve exclusion los behaviour.
* now takes into account what the player knows of the map
* don't autoremove exclusions if you don't know the monster died
* the los gets updated as the player explores the area

For some reason this doesn't work when you dig into an excluded area.

FR 2006559: Sort monsters in description menu (?\) using the same
measure as the monster list does.

--------------------------------------------------------------------------------
35d09d2840 | ennewalker | 2008-10-04 18:12:13 +0000

Adding better outlines to fonts so that they are more readable.

--------------------------------------------------------------------------------
03777b344e | dolorous | 2008-10-04 18:03:39 +0000

Add minor consistency fixes.

--------------------------------------------------------------------------------
12284fd589 | dolorous | 2008-10-04 17:59:30 +0000

Clarify messages regarding Yred's reclaiming of undead slaves.

--------------------------------------------------------------------------------
6f2a50cffa | haranp | 2008-10-04 17:47:41 +0000

Changed '!' in targeting from target-select to target-select-ignoring-range. 
Added '@', which is to '!' as '.' is to the old '5'. Fixed 2146628: cancelling 
targeting was incorrectly checking range. The behaviour of allow_self_target is 
now slightly different (see forthcoming mail on crawl-ref-discuss.)

--------------------------------------------------------------------------------
ee41fac914 | dolorous | 2008-10-04 16:52:25 +0000

Make liches and ancient liches use MST_NO_SPELLS, just as e.g. orc wizards do, 
since their actual spell lists are determined in define_monster(), just as with 
e.g. orc wizards.

--------------------------------------------------------------------------------
3358fe4e95 | haranp | 2008-10-04 16:48:59 +0000

Fix 2146574: better description of Revivification.

--------------------------------------------------------------------------------
55f02bfde7 | ennewalker | 2008-10-04 15:36:13 +0000

Fixing foreground objects using variations, when that should only be applied to 
the background.

--------------------------------------------------------------------------------
e97fe7dfe8 | ennewalker | 2008-10-04 15:04:11 +0000

Fixing issue where some tile types (lava) weren't using any variations.  (Now 
all tiles will automatically use variations from the tiledef file.)

--------------------------------------------------------------------------------
4d0b7c461f | haranp | 2008-10-04 14:44:13 +0000

Redid monster death idiom so that monsters::hurt can implicitly call 
monster_die(). (This behaviour can be overriden.) Minor code cleanups 
elsewhere, removal of dead code from bolt.

--------------------------------------------------------------------------------
da0c3f0c31 | ennewalker | 2008-10-04 14:42:18 +0000

Fixing problem where the minimap could sometimes be placed partially off screen.

--------------------------------------------------------------------------------
f7dc52138f | j-p-e-g | 2008-10-04 12:21:31 +0000

Implement 1853872: Limit travel exclusions to LOS.
This was done by adding env_show_grid as a property to all exclusions.
losight() is currently called if an exclusion is set, when changing
levels/restarting the game and at a vitrification event (in all of the
latter cases for all exclusions on the level).

--------------------------------------------------------------------------------
b2fa14e4db | dolorous | 2008-10-04 06:52:54 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
3bc09d8307 | dolorous | 2008-10-04 03:41:22 +0000

Comment fix.

--------------------------------------------------------------------------------
724b1da09c | dolorous | 2008-10-04 02:11:05 +0000

Experimentally reduce (by 1/3) the damage done by cleansing flame.

--------------------------------------------------------------------------------
0961b9f41e | dolorous | 2008-10-04 01:44:58 +0000

Allow Trog to accept kills of demons.

--------------------------------------------------------------------------------
5ea23826f5 | ennewalker | 2008-10-04 01:04:58 +0000

Fix crash when Crawl is started with a command line option.

--------------------------------------------------------------------------------
4380580174 | ennewalker | 2008-10-04 00:45:30 +0000

Mouse clicks on the dungeon when not safe now travel one square in that 
direction, rather than only allowing clicks one square away from the character.

--------------------------------------------------------------------------------
0db7ed5000 | dolorous | 2008-10-04 00:23:44 +0000

Fix check for not-fully-petrified monsters in Lee's Rapid Deconstruction.

--------------------------------------------------------------------------------
418c50e189 | dolorous | 2008-10-04 00:16:05 +0000

Clean up the routine for Lee's Rapid Deconstruction a bit, and allow 
not-fully-petrified monsters to be exploded as well (taking the same amount of 
damage as an ice statue, as opposed to that of a stone golem, which is taken by 
fully petrified monsters).

--------------------------------------------------------------------------------
bb9f768ea4 | ennewalker | 2008-10-03 23:59:02 +0000

[2136614] Disallowing escape hatches for being considered as a part of 
connectivity.  Branches will at least have one stone stairs connected to them 
now.

--------------------------------------------------------------------------------
6f7786bd94 | ennewalker | 2008-10-03 23:51:32 +0000

Fixing exclusion-related assertion.

--------------------------------------------------------------------------------
586523e7db | haranp | 2008-10-03 22:44:02 +0000

Fix 2026005: macros being loaded in the wrong order.

--------------------------------------------------------------------------------
f681507d16 | j-p-e-g | 2008-10-03 20:13:05 +0000

Add an auto_exclude option that will automatically set a travel exclusion if 
any monster on this list is encountered during exploration and it's either 
asleep or stationary. This also works during manual exploration to cover cases 
where only the first monster is announced and stops autoexplore but there are 
more monsters in the room that would fit the criteria, such as in the oklob 
vaults. (Players who insist on exploring manually will have to simply leave 
this option empty.)
Once you kill the monster (or someone else does it for you, as long as
you are there to watch it) or it wakes up with you in sight, this 
exclusion automatically is removed again.

By default the setting is: 
auto_exclude = oklob plant,silver statue,orange crystal statue

--------------------------------------------------------------------------------
c07f2c4632 | haranp | 2008-10-03 20:00:42 +0000

Some cleanup (replacing you.duration[DUR_CONF] with you.confused())

--------------------------------------------------------------------------------
774610f040 | dolorous | 2008-10-03 18:56:11 +0000

Implement [2040773]: Make Petrify an Enchantment/Earth spell (since it's a 
replacement for an Enchantment spell, and the only other Transmigration spell 
that changes things to stone doesn't work on undead, while this does), and make 
Lee's Rapid Deconstruction damage a fully petrified monster in the same way it 
does a statue (except that the blast is described as "petrified fragments", and 
is the same color as the monster).

--------------------------------------------------------------------------------
3c5ec5ee05 | dolorous | 2008-10-03 18:33:03 +0000

Remove hard line breaks.

--------------------------------------------------------------------------------
5511b48771 | j-p-e-g | 2008-10-03 16:17:52 +0000

* Make movement restrictions when beheld also apply to blinking and   
controlled teleport. * Highlight restricted grids when beheld (ASCII only):   - 
main screen: restricted grids in LOS are darkgrey   - X screen: unrestricted 
grids in view around the mermaid(s) are lightgrey * switch xx command back to 
leaving examine mode

--------------------------------------------------------------------------------
ae0c5cb4ea | haranp | 2008-10-03 16:16:22 +0000

Removed dead code. Unbroke tiles build (sorry...)

--------------------------------------------------------------------------------
16a24b1da6 | haranp | 2008-10-03 15:36:51 +0000

Fix 2144473: trap revamp permanently hid teleport traps.

--------------------------------------------------------------------------------
63f8e57176 | dolorous | 2008-10-03 14:15:46 +0000

Per iainuki's suggestion in [2038873], change warning messages about 
inadvertent piety loss to mention forgiving the player "just this once".

--------------------------------------------------------------------------------
acb9233152 | dolorous | 2008-10-03 12:57:29 +0000

Implement [2142702]: Expand god descriptions to include which collateral kills 
they accept.

--------------------------------------------------------------------------------
728182b693 | dolorous | 2008-10-03 12:20:35 +0000

Remove Okawaru's acceptance of collateral demon kills, as, according to the 
code, he'll only accept them from gifted servants, and he doesn't give any.  
Also, he doesn't accept any other kinds of collateral kills.

--------------------------------------------------------------------------------
744d90abe6 | dolorous | 2008-10-03 05:27:14 +0000

Properly handle scrolls of summoning when they fail to summon anything.

--------------------------------------------------------------------------------
f34f77252e | dolorous | 2008-10-03 05:21:30 +0000

Make handling of undead versus demonic abominations consistent.

--------------------------------------------------------------------------------
e936c0cd94 | dolorous | 2008-10-03 05:02:51 +0000

Comment fix.

--------------------------------------------------------------------------------
0c38768255 | dolorous | 2008-10-03 04:27:01 +0000

Simplify further.

--------------------------------------------------------------------------------
2bfd63e6cd | dolorous | 2008-10-02 23:56:29 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
077e48644d | dolorous | 2008-10-02 23:38:56 +0000

Remove unused references to the Book of Healing.

--------------------------------------------------------------------------------
8e2ad2a8fd | dolorous | 2008-10-02 23:18:33 +0000

Add minor abomination-related tweaks.

--------------------------------------------------------------------------------
6d10cdc8f9 | dolorous | 2008-10-02 21:24:35 +0000

Comment fixes.

--------------------------------------------------------------------------------
b5128c94e1 | dolorous | 2008-10-02 21:19:37 +0000

Fix compilation.

--------------------------------------------------------------------------------
b01cb1abf1 | dolorous | 2008-10-02 21:17:13 +0000

Simplify.

--------------------------------------------------------------------------------
c2f1b1aaa7 | dolorous | 2008-10-02 20:41:33 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
868f4f3e9b | haranp | 2008-10-02 20:22:08 +0000

2142726: Vehumet should happily accept undead killing for you.

--------------------------------------------------------------------------------
74cd32113d | haranp | 2008-10-02 20:15:43 +0000

2142294: bad messaging for thrown non-missiles.

--------------------------------------------------------------------------------
0f779d7b62 | haranp | 2008-10-02 20:10:33 +0000

Fix 2142643: bugs in net traps that I introduced in the trap revamp (noted by 
dolorous.) Net traps can now trigger outside of your line of sight.

--------------------------------------------------------------------------------
e0ecd1fad5 | dolorous | 2008-10-02 17:01:22 +0000

Clarify god descriptions a bit.

--------------------------------------------------------------------------------
974b3abfbe | dolorous | 2008-10-02 15:12:44 +0000

Simplify further.

--------------------------------------------------------------------------------
6d11b49783 | dolorous | 2008-10-02 14:46:20 +0000

Simplify.

--------------------------------------------------------------------------------
65b90b3a21 | haranp | 2008-10-02 08:18:53 +0000

Fix 2141314: branding stays on thrown weapons.

--------------------------------------------------------------------------------
2a39c829eb | dolorous | 2008-10-02 00:19:27 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
08a5153616 | dolorous | 2008-10-01 19:52:43 +0000

Fix [2038873]: Clarify god messages for incurring penance and warnings about 
incurring penance.  Differentiating between conduct from item use and conduct 
from spell use is complex, so, for right now, I've made some of the messages a 
bit generic, in order to try to cover all cases.

--------------------------------------------------------------------------------
bb183e9257 | haranp | 2008-10-01 17:44:09 +0000

Reworked traps: much much cleaner now. There might be bugs, though.
Traps now remember how much ammo they have. The ammo quantities
(from David) are rather tentative.

Breaks savefiles.

--------------------------------------------------------------------------------
e32c3272ea | haranp | 2008-09-30 19:46:02 +0000

Unbreak nondebug compile. This is a temporary fix.

--------------------------------------------------------------------------------
2405abe691 | dolorous | 2008-09-30 05:19:26 +0000

Simplify.

--------------------------------------------------------------------------------
e9c49344ae | dolorous | 2008-09-30 05:04:29 +0000

Consolidate and clean up Yred's injury mirroring routines.

--------------------------------------------------------------------------------
b638f0eb21 | dolorous | 2008-09-30 04:29:25 +0000

Properly enforce the limitations of Yred's injury mirroring.

--------------------------------------------------------------------------------
b3a157e60e | haranp | 2008-09-30 02:23:45 +0000

Mark quivered items as equipped (interface only, not gameplay.) FR 2059687.

--------------------------------------------------------------------------------
8e16f1a94e | haranp | 2008-09-30 01:56:14 +0000

FR 2130547: no ghosts in the ET.

--------------------------------------------------------------------------------
d372bf943a | dolorous | 2008-09-29 14:53:58 +0000

Simplify.

--------------------------------------------------------------------------------
f8ea72f9b6 | haranp | 2008-09-29 12:13:00 +0000

Fix 2134320: mummy curse had disappeared. Did some more work along the lines of 
r6985, review by dolorous would be appreciated. :)

--------------------------------------------------------------------------------
664250db33 | haranp | 2008-09-29 11:51:51 +0000

Identify Horn of Geryon when wielding. [2082703]

--------------------------------------------------------------------------------
54ae950ba7 | haranp | 2008-09-29 09:38:03 +0000

Fix 2134492: mgrd not being updated in area_shift(). My bad.

--------------------------------------------------------------------------------
f3b925a615 | haranp | 2008-09-29 09:01:15 +0000

Carnivore food colouring was ignoring poison setting. [2134776]

--------------------------------------------------------------------------------
e0e9575453 | dolorous | 2008-09-29 06:18:00 +0000

Make flaming corpses able to open doors, as freezing wraiths can.

--------------------------------------------------------------------------------
ef392a66d2 | j-p-e-g | 2008-09-29 05:26:41 +0000

Remove debugging messages. (Gah!) Add spell skills and level to spell 
description.

--------------------------------------------------------------------------------
881660c90f | dolorous | 2008-09-29 05:15:57 +0000

Ensure again that a weapon's curse status is always known after wielding it, 
as, after r6787, it sometimes wouldn't if you knew the weapon's ego type (from 
e.g. being hit by the weapon if it was in a monster's hands before).

--------------------------------------------------------------------------------
7a518ef227 | dploog | 2008-09-28 23:30:09 +0000

Lightweight rather than Littleweight. (eronarn)

--------------------------------------------------------------------------------
bb7d2b6607 | ennewalker | 2008-09-28 23:23:06 +0000

Fixing mouse-over related inventory crash.

--------------------------------------------------------------------------------
60bd1be3b4 | ennewalker | 2008-09-28 23:11:52 +0000

Adding more keyboard mappings while I'm at it, in particular modifiers on all 
existing keys, the ability to handle multiple modifiers, and a number of 
special keys as well.  If somebody wants to macro Ctrl+Alt+Caps Lock, they can 
now do it.

--------------------------------------------------------------------------------
a4f2091a8b | ennewalker | 2008-09-28 22:07:13 +0000

Adding function key support to tiles version.

--------------------------------------------------------------------------------
0a14c0089f | ennewalker | 2008-09-28 21:53:12 +0000

Fixing compilation error.

--------------------------------------------------------------------------------
c19eb264cb | haranp | 2008-09-28 20:39:35 +0000

Fix incorrect trap placing [2133162]. My bad.

--------------------------------------------------------------------------------
1d5b5da767 | j-p-e-g | 2008-09-28 19:52:12 +0000

Vampire feeding changes: * remove randomness and unify formulas for nutrition 
value of blood potions   and corpses, so bottling potions can no longer be used 
to enforce greater   nutrition: this means that draining corpses give more 
nutrition now * draining duration now matches nutrition more closely (the 
formulas   used to be completely distinct, and quite complicated) * decrease 
blood potions' nutrition again (I'd increased it in my   previous related 
commit), coagulated blood gives only 80% nutrition * blood potions last a bit 
longer (counter 2000 -> 2500) * healing from blood potions is impossible * 
healing from corpses is only possible while they're still fresh   (i.e. won't 
start rotting soon, counter > 150) * remove unrotting etc. effects, decrease 
healing from human corpses

--------------------------------------------------------------------------------
21361a5df8 | dolorous | 2008-09-28 19:46:18 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
b94440dcf7 | dolorous | 2008-09-28 19:27:42 +0000

Tweak wording.

--------------------------------------------------------------------------------
a71f76b161 | dolorous | 2008-09-28 16:20:00 +0000

Allow flaming corpses so see invisible, as freezing wraiths and most smart 
'z'-type undead do.

--------------------------------------------------------------------------------
be75a1fb03 | j-p-e-g | 2008-09-28 14:50:17 +0000

FR 2055862: When searching the database for spellbooks/rods, list the spells 
within, and vice versa: when searching for spells, say which books/rods it can 
be found in.

--------------------------------------------------------------------------------
6fada2a66f | dolorous | 2008-09-28 02:17:23 +0000

Add minor consistency fixes.

--------------------------------------------------------------------------------
4ad34534d4 | dolorous | 2008-09-28 02:04:33 +0000

Rework the Yred slave abandonment routines again, modeling them after those of 
Beogh's orcish followers.

--------------------------------------------------------------------------------
e1862125ea | j-p-e-g | 2008-09-27 22:57:53 +0000

Implement the first part of FR 2055862: Make the database search also output 
AC/EV and damage/accuracy/speed for armour and weapons, respectively.
Also, you can now wish for specific fixed and randarts in wizard mode
via the 'o' command. (I was getting annoyed at always having to create 
all of them whenever I wanted to play around with the Singing Sword.)

--------------------------------------------------------------------------------
1e9759d7af | dolorous | 2008-09-27 22:45:34 +0000

Tweak Yred's description to account for his new flavor.

--------------------------------------------------------------------------------
4a5b455181 | dolorous | 2008-09-27 22:02:01 +0000

Tweak punctuation.

--------------------------------------------------------------------------------
287de925c9 | dolorous | 2008-09-27 21:50:01 +0000

Improve the routines for the loss of Yred's undead slaves while under penance.

--------------------------------------------------------------------------------
c917ff16cf | ennewalker | 2008-09-27 21:45:57 +0000

[1982129] Wizard commands can now be used from the wizard help screen.

--------------------------------------------------------------------------------
d104ce8a38 | dolorous | 2008-09-27 21:40:54 +0000

Add whitespace fixes,

--------------------------------------------------------------------------------
ef742fbaeb | j-p-e-g | 2008-09-27 19:14:45 +0000

Remove healing effect from blood potions. To make up for it, fresh blood now 
has a greater nutrition (1500) compared to coagulated blood (1000, as before). 
Give Ogres the Spellcasting title of "Ogre-Mage".

--------------------------------------------------------------------------------
2eb5aea0c0 | ennewalker | 2008-09-27 15:43:18 +0000

Changing the offset of item counts to make them more readable.

--------------------------------------------------------------------------------
55fd4d9fe7 | ennewalker | 2008-09-27 15:36:10 +0000

Added '_' cursor for some text inputs that were missing it.

--------------------------------------------------------------------------------
efde5f5a0a | ennewalker | 2008-09-27 15:12:42 +0000

[2021068] Projectiles, explosions, beams, etc. now drawn again in tiles version.

--------------------------------------------------------------------------------
074c9aa085 | ennewalker | 2008-09-27 14:29:31 +0000

Fixing bug where doors closed out of sight would get a chainmail tile.

--------------------------------------------------------------------------------
6b8b7b40d0 | dolorous | 2008-09-27 05:02:22 +0000

Add capitalization fix.

--------------------------------------------------------------------------------
edde105b04 | ennewalker | 2008-09-27 04:08:39 +0000

Adding a tile_repeat_key option (on by default) that determines whether to 
repeat key input when a key is held down.  (Also, some doc update from the 
previous submission.)

--------------------------------------------------------------------------------
060203d059 | dolorous | 2008-09-27 03:55:07 +0000

Add various minor fixes.

--------------------------------------------------------------------------------
abceae0213 | dolorous | 2008-09-27 03:27:39 +0000

Add minor formatting fix.

--------------------------------------------------------------------------------
ee8a99dd4f | dolorous | 2008-09-27 01:50:38 +0000

Fix [2035003]: Make Okawaru and Makhleb accept collateral demon kills again, as 
they do player demon kills.

--------------------------------------------------------------------------------
2d5ae333b7 | ennewalker | 2008-09-27 01:46:57 +0000

[2021064] Fixing awful bug where autoexplore (and others) couldn't be cancelled.

--------------------------------------------------------------------------------
8a6d053b73 | dolorous | 2008-09-27 01:39:17 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
56ac0e19a2 | ennewalker | 2008-09-27 01:31:16 +0000

Removing code and documentation for player doll editing screen.  It might come 
back at a later point (post-0.5?), but there are more important bugs and 
features to consider in the meantime rather than just blindly trying for parity 
with 0.4.x's features.

--------------------------------------------------------------------------------
064219342d | ennewalker | 2008-09-27 00:47:10 +0000

Fixing linkage issue with get_envmap_char.

--------------------------------------------------------------------------------
dac8a00929 | ennewalker | 2008-09-27 00:40:40 +0000

[2018523] Making a note not to use multiple jobs for tiles builds as it doesn't 
work.

--------------------------------------------------------------------------------
0cc450e9d7 | ennewalker | 2008-09-26 23:27:50 +0000

Promoted get_cancelable_line_autohist to cio.h as I determined how to make it 
work across files.  (Declared it as static, as __FILE__ couldn't be used.)

--------------------------------------------------------------------------------
1b07817549 | ennewalker | 2008-09-26 22:57:15 +0000

Adding input history to wizard commands.

--------------------------------------------------------------------------------
c042845d4b | dolorous | 2008-09-26 20:28:33 +0000

Add wording fix.

--------------------------------------------------------------------------------
91bee6e2a1 | dolorous | 2008-09-26 20:09:32 +0000

Simplify more.

--------------------------------------------------------------------------------
465871755b | dploog | 2008-09-26 20:07:01 +0000

Update aptitudes.txt for new Ogres.

--------------------------------------------------------------------------------
e0641213c3 | dolorous | 2008-09-26 19:18:06 +0000

Simplify.

--------------------------------------------------------------------------------
9c65a32ca3 | dolorous | 2008-09-26 19:03:38 +0000

Tweak the numbers yet again.

--------------------------------------------------------------------------------
e4285879a8 | dolorous | 2008-09-26 18:58:12 +0000

Tweak numbers again.

--------------------------------------------------------------------------------
3e31188717 | dolorous | 2008-09-26 18:51:42 +0000

And scan the level properly for Yred servants, using the same method as in 
bless_follower().

--------------------------------------------------------------------------------
70df4be59a | dolorous | 2008-09-26 18:29:42 +0000

Actually search the whole level for Yred slaves.

--------------------------------------------------------------------------------
07cc5d88c2 | dolorous | 2008-09-26 18:23:42 +0000

Increase the number of Yred servants that can abandon you while you're under 
penance.

--------------------------------------------------------------------------------
057afedbab | dolorous | 2008-09-26 18:20:20 +0000

When under penance from Yred, give his servants on the current level a chance 
to randomly abandon you.

--------------------------------------------------------------------------------
a75579a687 | dolorous | 2008-09-26 18:15:04 +0000

Add still more miscellaneous minor fixes.

--------------------------------------------------------------------------------
0a7bf3f5e7 | dolorous | 2008-09-26 13:59:35 +0000

Add more ability description tweaks.

--------------------------------------------------------------------------------
6668d36760 | dolorous | 2008-09-26 13:49:26 +0000

Tweak Ely's ability descriptions.

--------------------------------------------------------------------------------
9f96227bf5 | dolorous | 2008-09-26 12:43:18 +0000

Add minor consistency fixes to the "god likes" messages.

--------------------------------------------------------------------------------
a5b45eccd0 | dolorous | 2008-09-26 12:36:19 +0000

Properly document the other gods that like kills of holy beings.

--------------------------------------------------------------------------------
0c908b45dc | haranp | 2008-09-26 09:37:25 +0000

2124815: decrease chance of projectile destruction as a function of enchantment.

--------------------------------------------------------------------------------
aa4c5c1949 | zelgadis | 2008-09-26 08:10:58 +0000

Don't randomly choose the divination school for monster miscasts, since 
monsters don't yet have any miscast effects for that school.

--------------------------------------------------------------------------------
fe3687d403 | dolorous | 2008-09-26 05:08:59 +0000

don't allow shapeshifters in orc form to become Beoghites' followers via the 
Crusade card, either.

--------------------------------------------------------------------------------
6a4ba1f08f | dolorous | 2008-09-26 04:42:02 +0000

Simplify checking for monsters that are actually shapeshifters, and don't allow 
those in orc form to become Beoghites' followers.

--------------------------------------------------------------------------------
420aea8e00 | dolorous | 2008-09-26 03:55:48 +0000

Add yet more miscellaneous minor fixes.

--------------------------------------------------------------------------------
cd9461166c | dolorous | 2008-09-26 03:15:54 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
731032a08c | dolorous | 2008-09-26 00:19:58 +0000

Add minor healing-related fixes.  Mark the Book of Healing as a holy item, as 
it monstly contains holy healing spells, and allow Elyvilonites to target 
anyone by default when using a wand of healing, as it can be used to pacify 
monsters.

--------------------------------------------------------------------------------
280015280e | dploog | 2008-09-26 00:00:30 +0000

Update Ogre documentation.

--------------------------------------------------------------------------------
26a91401f9 | haranp | 2008-09-26 00:00:27 +0000

Don't crash when wiz-creating a nonexistent monster type. [doy]

--------------------------------------------------------------------------------
822714ab57 | haranp | 2008-09-25 23:45:09 +0000

1. 7000th commit! Yay! 2. dpeg asked me to mention that Ogre aptitudes were 
completely changed when OMs were cut/merged in. 3. ?oRandomUselessness now 
autoIDs. [2035888]

--------------------------------------------------------------------------------
65ce055414 | haranp | 2008-09-25 23:40:15 +0000

Better class selection for new Ogres.

--------------------------------------------------------------------------------
17641aefa6 | haranp | 2008-09-25 23:36:38 +0000

2078450: better description of weapons of speed.

--------------------------------------------------------------------------------
a52e8315ee | haranp | 2008-09-25 23:32:44 +0000

2127754: better '@' messaging for kenku regarding burden.

--------------------------------------------------------------------------------
e44a4d8349 | haranp | 2008-09-25 23:19:59 +0000

Removed Ogre-Mages, hopefully without breaking anything. Docs are unchanged.

--------------------------------------------------------------------------------
f7eb8c113c | dolorous | 2008-09-25 22:52:07 +0000

Properly warn Yredelemnulites about the use of holy items, just as we do with 
good god worshippers and evil items.

--------------------------------------------------------------------------------
b67ca82204 | dolorous | 2008-09-25 22:42:41 +0000

Yred flavor, part 3: forbid the use of holy items (weapons of holy wrath and 
scrolls of holy word) or spells.

--------------------------------------------------------------------------------
fe66a480da | dolorous | 2008-09-25 22:33:46 +0000

Since demonspawn players have demonic holiness, keep them from memorizing and 
casting holy spells.

--------------------------------------------------------------------------------
9703c86777 | dolorous | 2008-09-25 21:56:12 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
358edd6228 | dolorous | 2008-09-25 21:04:55 +0000

Yred flavor, part 2: add new greeting message (parially mine, partially 
dploog's).

--------------------------------------------------------------------------------
1e68e1b5e7 | dolorous | 2008-09-25 20:32:26 +0000

Yred flavor, part 1: Make him appreciate your killing holy beings.

--------------------------------------------------------------------------------
3dd208ed66 | dolorous | 2008-09-25 20:31:34 +0000

Simplify.

--------------------------------------------------------------------------------
0216312285 | dolorous | 2008-09-25 20:24:15 +0000

Add killing holy beings (as opposed to just attacking them) to the list of 
things that good gods dislike.

--------------------------------------------------------------------------------
ccf086b3e0 | dolorous | 2008-09-25 18:28:22 +0000

Remove hard line break.

--------------------------------------------------------------------------------
e8a95279d4 | dploog | 2008-09-25 18:21:29 +0000

Update Yredelemnul's description.

--------------------------------------------------------------------------------
57f3e71ae5 | dolorous | 2008-09-25 17:30:31 +0000

In ouch(), use NON_MONSTER instead of 0 as the index for non-monster attacks, 
so as to avoid overlap with the first monster on the level.

--------------------------------------------------------------------------------
1f9e38751c | haranp | 2008-09-25 17:13:23 +0000

Ranges redone. bolt no longer has a rangeMax, just a range. Almost all ranges 
are now capped by LOS. There are still some things missing, most noticeably 
randomizing ranges for the range-1-to-2 spells (e.g. Flame Tongue.)

--------------------------------------------------------------------------------
67f77bb507 | dolorous | 2008-09-25 16:41:51 +0000

Replace Yred's life saving with injury mirroring, based on the old "pain 
mirror" FR with some suggestions from dploog.  A monster affected by this will 
briefly flash blood-red, and each mirroring costs the square root of the damage 
in piety.  It will not damage a monster if the damage kills you first, but that 
should only have an effect on gameplay in wizard mode if you use it to avoid 
death, in which case you don't really need it.

--------------------------------------------------------------------------------
7da71d18a7 | dolorous | 2008-09-25 16:32:21 +0000

Add miscellaneous minor cleanups to prepare for the introduction of Yred's 
injury mirroring: move the routine to make a visible monster flash a particular 
color into its own function, add an integer-based square root function based on 
Newton's method to stuff.cc, and adjust prayer lengths for Zin (1 turn), Yred 
(20 turns), Ely (same as Yred), and all gods who ignore prayers (same as Zin).

--------------------------------------------------------------------------------
494e955621 | dolorous | 2008-09-25 16:25:14 +0000

Remove extraneous references to god_gives_permanent_followers().

--------------------------------------------------------------------------------
915c2ffc0a | dolorous | 2008-09-25 04:55:41 +0000

Adapt Zin's old Divine Robustness into Elyvilon's Divine Vigour, replacing the 
old Incredible Healing.

--------------------------------------------------------------------------------
87df3f8adf | ennewalker | 2008-09-25 03:15:54 +0000

Fixing tiles X-mode bug where some out of sight, but previously squares were 
incorrectly showing up all black.

--------------------------------------------------------------------------------
787d3e05aa | ennewalker | 2008-09-25 03:14:46 +0000

[2034546] Fixing loading of ascii saves in tiles mode.

--------------------------------------------------------------------------------
0ba0e7584f | ennewalker | 2008-09-25 02:27:54 +0000

[2034546] Fixing hud redraw problems when right click viewing an item.

--------------------------------------------------------------------------------
f6a80578a8 | ennewalker | 2008-09-25 01:37:42 +0000

[2034534] Fixing issue where a delay would prevent the on screen inventory from 
updating properly.

--------------------------------------------------------------------------------
f15ef1ad1e | ennewalker | 2008-09-25 01:08:16 +0000

Fixing tiles assert that often happened when first clicking on the window.

--------------------------------------------------------------------------------
ec10a14044 | ennewalker | 2008-09-25 00:46:44 +0000

Added new monster draconian tiles.  Improved ring and amulet graphics.  Fixed 
issue where the deep elf blademaster did not appear with weapons.  (These 
graphics are all from Mitsuhiro Itakura.)

--------------------------------------------------------------------------------
937e2dced0 | dolorous | 2008-09-22 22:24:05 +0000

Typo fix.

--------------------------------------------------------------------------------
c713bd1b53 | ennewalker | 2008-09-22 02:25:39 +0000

Moving more quotes into the quote database.

--------------------------------------------------------------------------------
b7ff0454b1 | j-p-e-g | 2008-09-21 20:25:32 +0000

Remove some erroneous debugging messages.

--------------------------------------------------------------------------------
1dee1ada62 | j-p-e-g | 2008-09-21 20:03:28 +0000

Fix 2121686: buggy net handling when returning to a level FR 2029644: Some 
small tutorial improvements. Switch off autopickup if you see a monster turn 
invisible. (BR 2085502)

--------------------------------------------------------------------------------
ea2e13d9dc | dploog | 2008-09-21 20:02:49 +0000

Point out lack of feature in level_guide.txt (specification of preferred 
uniques in KMONS). Left in the paragraph for setting up the syntax.

--------------------------------------------------------------------------------
9a9817d403 | haranp | 2008-09-21 19:13:37 +0000

2057197: make ego armour descriptions in '%' screen follow artefact guidelines.

--------------------------------------------------------------------------------
b1b6c8ddca | haranp | 2008-09-21 18:10:47 +0000

Non-reached labyrinths now leave stone arches. [2095590]

--------------------------------------------------------------------------------
6959838ed1 | haranp | 2008-09-21 17:54:07 +0000

2056015: allow '^' during branch selection in travel.

--------------------------------------------------------------------------------
db6775f6fc | haranp | 2008-09-21 17:30:19 +0000

2088461: identify Holy Wrath brand on failed wield.

--------------------------------------------------------------------------------
d6e0b68b50 | haranp | 2008-09-21 16:28:20 +0000

1989842: freezing weapons can now slow cold-blooded monsters. Infrastructure 
available for unified element damage to creatures.

--------------------------------------------------------------------------------
20e1e61ec9 | haranp | 2008-09-21 12:02:30 +0000

2026956: only prompt for sharp weapons in butchery.

--------------------------------------------------------------------------------
454943c338 | haranp | 2008-09-21 11:44:21 +0000

Better messaging for ?oHolyWord.

--------------------------------------------------------------------------------
560c06b36b | haranp | 2008-09-21 11:26:39 +0000

Fix 2001524 and 1992140: shoals overriding critical features.

--------------------------------------------------------------------------------
300b157c23 | haranp | 2008-09-21 10:49:08 +0000

Fix 2085598: Nemelex won't be disappointed if there are invisible monsters 
nearby when drawing from Destruction, even if you can't see them. Xom can now 
act on creatures you can't see.

--------------------------------------------------------------------------------
724da7b6f8 | haranp | 2008-09-21 09:53:50 +0000

Fixed order-of-operations bug which was causing items with subtype 23 (e.g. 
?oHolyWord) being considered evil. [apparently introduced in r6601?] Fixes 
2121183.

--------------------------------------------------------------------------------
747e0eae09 | haranp | 2008-09-20 23:23:41 +0000

Remove some unnecessary casts.

--------------------------------------------------------------------------------
c0fe02b91d | haranp | 2008-09-20 15:04:11 +0000

Fix 2111406, 2058865: stacking interacting badly with allies.

--------------------------------------------------------------------------------
66cd85ea1d | haranp | 2008-09-20 11:20:10 +0000

Fix 2118669: scrolling could cause double-scrolling. I left the Tiles code 
alone so I might have broken that.

--------------------------------------------------------------------------------
d31d7584ae | haranp | 2008-09-20 10:56:39 +0000

2058436: better interface for the range-1 attack spells.

--------------------------------------------------------------------------------
a324c4ba0f | haranp | 2008-09-20 09:01:02 +0000

Fix 2082997: broken monster pathfinding.

--------------------------------------------------------------------------------
d1e44c7637 | haranp | 2008-09-19 20:51:53 +0000

Unbroke Sceptre of Asmodeus [2119603].

--------------------------------------------------------------------------------
48c55294ef | dploog | 2008-09-19 17:38:38 +0000

Tone down loot in ice2_lemuel. (doy)

--------------------------------------------------------------------------------
08a2ecb071 | haranp | 2008-09-18 23:04:00 +0000

Flying can now be cancelled (though kenku still need a ring to do so.) 
[2045628] Removing rings of levitation or invisibility no longer cancels the 
appropriate effects. [2076903]

--------------------------------------------------------------------------------
3fe1278519 | haranp | 2008-09-18 22:43:30 +0000

Disabling traps in Abyss. They don't get shifted anyway so when they do get 
created it causes bugs.

--------------------------------------------------------------------------------
6cc8e915a3 | haranp | 2008-09-18 22:26:32 +0000

Fixed security issue in replay_messages(). Fixes part of 2029644.

--------------------------------------------------------------------------------
7879cb0615 | haranp | 2008-09-18 22:01:50 +0000

[2059553]: recharged wands have their zap counts reinitialized.

--------------------------------------------------------------------------------
016c2763cb | haranp | 2008-09-18 21:50:47 +0000

Better messaging for Oz's Refrigeration. [2076906]

--------------------------------------------------------------------------------
7ace596b4a | haranp | 2008-09-18 15:36:03 +0000

Fix Enchant Armour not updating AC: line when enchanting a hide.

--------------------------------------------------------------------------------
b3834a6fe1 | haranp | 2008-09-18 15:23:25 +0000

Fix 2117256: incorrect high score calculation.

--------------------------------------------------------------------------------
ee45d58317 | haranp | 2008-09-18 15:20:46 +0000

Clean up monster potion handling, fix bug where !oHW healing also applied !oH 
healing, make monsters drink !oH when helpful, disallow potions for some 
monsters (currently only liches and mummies, more can be added.) Fixes 2035734, 
2048006.

--------------------------------------------------------------------------------
6cb8f61061 | haranp | 2008-09-18 13:08:10 +0000

Better message for sleeping confused creatures.

--------------------------------------------------------------------------------
d4a9ca9e31 | haranp | 2008-09-18 12:33:31 +0000

Fix boring beetles walking through glass walls [2114988].

--------------------------------------------------------------------------------
72a1b48efa | ennewalker | 2008-09-17 05:15:52 +0000

Adding immediate mouseover text to inventory regions.

--------------------------------------------------------------------------------
4ac93cd2bf | haranp | 2008-09-16 21:42:17 +0000

[2052081]: don't generated enchanted hides.

--------------------------------------------------------------------------------
fc439a7888 | haranp | 2008-09-16 21:03:33 +0000

Card fixes (Martin.)

--------------------------------------------------------------------------------
8033b8adea | haranp | 2008-09-16 20:57:38 +0000

FR 2112931: temporary brands are extensible.

--------------------------------------------------------------------------------
5d9e4f13dd | dploog | 2008-09-16 14:55:44 +0000

More speech (lorimer).

--------------------------------------------------------------------------------
c8807ea226 | ennewalker | 2008-09-16 02:18:21 +0000

Adding health bars for monsters (and allies).

--------------------------------------------------------------------------------
3e4fe14ea8 | haranp | 2008-09-15 14:39:14 +0000

Fix 2068743: ghosts shouldn't have holy-wrath-branded attacks.

--------------------------------------------------------------------------------
173d629a23 | haranp | 2008-09-15 14:25:08 +0000

Fix 2082716: clean colour tags from dumps.

--------------------------------------------------------------------------------
596ebde463 | dshaligram | 2008-09-15 05:23:07 +0000

Revert labyrinth change pending decision on c-r-d.

--------------------------------------------------------------------------------
1fecaefacb | haranp | 2008-09-14 21:45:56 +0000

Decks of punishment are no longer randomly generated.

--------------------------------------------------------------------------------
5945e728fb | haranp | 2008-09-14 21:37:09 +0000

God-gifted (i.e. Nemelex-gifted) decks now ID after one card if it's not an 
oddity draw, since these decks are pure and there can be no confusion.

--------------------------------------------------------------------------------
50ebba493b | j-p-e-g | 2008-09-14 20:25:06 +0000

Remove pre-Stone Soup change history from source files, and push it all into a 
file crawlhistory.txt in docs/obsolete.
I used a perl script to do this under the assumption that all these
change logs used the same system following the keyword "Change History".

--------------------------------------------------------------------------------
9f473ab4bb | haranp | 2008-09-14 18:23:57 +0000

All 't' commands now take a turn. [2094024]

--------------------------------------------------------------------------------
317b5be68b | haranp | 2008-09-14 18:17:30 +0000

Secondary unarmed attacks should wake sleeping monsters. [2107519]

--------------------------------------------------------------------------------
6b49a7c5c4 | haranp | 2008-09-14 17:31:55 +0000

Fix 2071650: don't prompt for swapping with friendlies in dangerous terrain.

--------------------------------------------------------------------------------
6c4e2411ed | dshaligram | 2008-09-14 16:27:46 +0000

Revamped labyrinth walls and colours so it's no longer immediately obvious if 
you're near the exit.
Fixed bad foe check in submerge function.

--------------------------------------------------------------------------------
b50e6f0918 | j-p-e-g | 2008-09-14 15:27:19 +0000

Print "You feel a bit more experienced." also if it was a pet kill as long as 
it happened out of sight (which now includes invisibility and being submerged).

--------------------------------------------------------------------------------
85d6ca9863 | j-p-e-g | 2008-09-14 14:40:44 +0000

FR 1969858: Store message history across saves. Spin-off from BR 2085502: Don't 
autoswap weapons if a monster turns invisible.

--------------------------------------------------------------------------------
c878d68b32 | dshaligram | 2008-09-14 14:06:39 +0000

Make water monsters less eager to submerge.

--------------------------------------------------------------------------------
89e659fb4a | j-p-e-g | 2008-09-14 13:07:26 +0000

Really fix bats being able to open/close doors. Likewise disallow closing doors 
while held in a net.

--------------------------------------------------------------------------------
3e17829c6b | dshaligram | 2008-09-14 12:49:40 +0000

The royal jelly can no longer expel lesser jellies when tormented.

--------------------------------------------------------------------------------
9eff4a7388 | dshaligram | 2008-09-14 12:29:29 +0000

Player and monster naga no longer flounder or lose stealth in shallow water, 
and water creatures do not get double damage vs naga in shallow water. This is 
on account of naga being very clever at keeping themselves stable with their 
tails :P The reduced movement speed in shallow water still applies, and 
invisible naga in shallow water are still revealed.
Removed Cerebov's shock resistance - he no longer uses lightning bolt.

--------------------------------------------------------------------------------
4efe1cbf59 | dshaligram | 2008-09-14 12:05:49 +0000

Give monster naga normal delay for non-movement action to match player naga.

--------------------------------------------------------------------------------
1d44386c23 | dploog | 2008-09-13 21:57:14 +0000

Moving level of Poison Ammunition back to 4.

--------------------------------------------------------------------------------
2f1506d003 | dploog | 2008-09-13 21:52:41 +0000

Some more Singing Sword lines.

--------------------------------------------------------------------------------
752852f87b | j-p-e-g | 2008-09-13 18:43:10 +0000

Fix 2089248: misinformation in vampire A! screen. Fix 2085745: bats being able 
to open/close doors.
Make the items on the 'V' screen use their real colour rather than 
some odd colour scheme to represent artefact status (which is 
already obvious by the name, though menu colouring might be more
helpful).

--------------------------------------------------------------------------------
c29226331c | j-p-e-g | 2008-09-13 16:04:11 +0000

Reorder weapon speech to make some messages appear more rarely than others, and 
increase variation. Add a number of new speech, mostly for the Singing Sword.

--------------------------------------------------------------------------------
ed2e30ea48 | dshaligram | 2008-09-13 12:04:49 +0000

Enable core dumps automatically for dgamelaunch builds (-DDGL_ENABLE_CORE_DUMP) 
to make it easier to track down crashes.

--------------------------------------------------------------------------------
d6f1809d57 | ennewalker | 2008-09-12 04:16:44 +0000

Using new bardiche tile instead of old lochaber axe one.

--------------------------------------------------------------------------------
7c1e0016bf | ennewalker | 2008-09-12 03:55:34 +0000

Incorporating new tiles from Denzi/Mitsuhiro.  Rings and amulets now have 
labels when identified.  Centaurs/yaktaurs now display the weapon they're 
wielding (and look better too).  Variations of weapons and armor (i.e. normal, 
shiny, randart) are now determined automatically from the tile definitions, 
rather than being hardcoded.  Also, improved axe tiles.

--------------------------------------------------------------------------------
b1c63e6499 | haranp | 2008-09-12 02:04:02 +0000

Fix 2078482: Backwards Stealth check.

--------------------------------------------------------------------------------
1046b69374 | haranp | 2008-09-12 02:00:42 +0000

Fix 2059618: god gifts were not autoinscribed.

--------------------------------------------------------------------------------
b424c96c3e | haranp | 2008-09-12 01:25:17 +0000

FR 2102726: vorpalise weapon, not EW III, fixes temporary brands.

--------------------------------------------------------------------------------
9cae2f059a | haranp | 2008-09-12 00:50:04 +0000

Fix 2059408: wrong message when Triple Draw finishes an unidentified deck.

--------------------------------------------------------------------------------
242e253a01 | dolorous | 2008-09-12 00:23:37 +0000

Fix [2058165] by testing for non-moving monsters over water or lava using 
mons_cannot_move() instead of monsters::paralysed().

--------------------------------------------------------------------------------
feee9092af | haranp | 2008-09-12 00:19:30 +0000

Fix 2089183: off-by-1 error when selecting starting weapon.

--------------------------------------------------------------------------------
879f22f4a4 | dploog | 2008-09-11 21:22:54 +0000

No more floor inside the hellion island. More sane entry vault.

--------------------------------------------------------------------------------
e4c64b8654 | dolorous | 2008-09-11 16:29:47 +0000

Fix [2046704]: Elves shouldn't make axe or bolt traps.

--------------------------------------------------------------------------------
60645bcc6d | dolorous | 2008-09-11 15:54:09 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
e53245e78d | dploog | 2008-09-11 13:40:42 +0000

Reduced level of Poison Weapon and Poison Ammunition spells from 4 to 2.

--------------------------------------------------------------------------------
202da55ba9 | dolorous | 2008-09-08 04:16:16 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
34f2a2197a | dploog | 2008-09-07 23:59:22 +0000

Update CREDITS.

--------------------------------------------------------------------------------
a40e274bf8 | dploog | 2008-09-07 23:54:33 +0000

Updated ssh guide (Butch).

--------------------------------------------------------------------------------
bc256353ca | ennewalker | 2008-09-06 19:03:43 +0000

Fixing wizmap display again for tile version.

--------------------------------------------------------------------------------
5f7dbb1623 | ennewalker | 2008-09-06 14:52:40 +0000

Fixing assertions from tileidx_unseen due to separation of tiles into different 
textures.

--------------------------------------------------------------------------------
e47ff61f0c | dshaligram | 2008-09-06 13:47:08 +0000

[2050080] Fix description of Extension.

--------------------------------------------------------------------------------
40a2450967 | dshaligram | 2008-09-06 13:39:56 +0000

[2092341] Named monsters will also be recorded with their base monster type in 
the logfile.

--------------------------------------------------------------------------------
756243bbee | dshaligram | 2008-09-06 13:12:18 +0000

[2053689] Fixed bad ench_power for the monster Pain spell.

--------------------------------------------------------------------------------
540e73466c | dshaligram | 2008-09-06 13:02:53 +0000

[2096874] Player was not being warned when entering shallow water.

--------------------------------------------------------------------------------
230d9542b2 | dshaligram | 2008-09-06 12:54:17 +0000

[2088488] Apply move_player_to_grid on untransform only if the untransform 
caused loss of flight/lev.

--------------------------------------------------------------------------------
3f3384869c | dshaligram | 2008-09-06 12:40:49 +0000

[2083243] Fixed crash when blinking monsters get killed by trap they land on. 
The fix no longer allows blinkers their zero-cost blink.

--------------------------------------------------------------------------------
573df8b242 | dolorous | 2008-09-06 12:39:07 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
7c8560e19b | dshaligram | 2008-09-06 12:18:19 +0000

[2093516] Drop chances of potion destruction from legendary Curse card.

--------------------------------------------------------------------------------
487e54d8bf | dshaligram | 2008-09-06 12:09:51 +0000

[2094133] All friendlies check for collateral damage for ranged attacks, not 
just smart monsters. Also add friend and foe power to tracer debug.

--------------------------------------------------------------------------------
92b3ff72f2 | dolorous | 2008-09-06 12:08:19 +0000

Fix [2082964]: use player::can_see() to determine if the player can see a 
monster, rather than all the checks for invisibility.

--------------------------------------------------------------------------------
add136cf7b | dshaligram | 2008-09-06 12:00:07 +0000

[2094619] Animate dead cast when player is butchering could produce spurious 
messages about the butchered corpse being animated.

--------------------------------------------------------------------------------
c367e4974f | dploog | 2008-09-06 11:41:35 +0000

Changed Shoals description (wording may be awkward). Added (formerly spoiler) 
information to branches: whether they contain a rune, the depth, and where they 
appear.

--------------------------------------------------------------------------------
899991c8e0 | ennewalker | 2008-09-06 04:01:18 +0000

[2093560] Fixing miscast crash.

--------------------------------------------------------------------------------
9d8e58cf0d | dolorous | 2008-09-06 03:58:45 +0000

Comment fix.

--------------------------------------------------------------------------------
b97ff40fcb | ennewalker | 2008-09-06 03:26:24 +0000

Adding back in a menu keymap context so (for example) numpad telnet users can 
map numpad enter to normal enter.

--------------------------------------------------------------------------------
a8a183dca9 | ennewalker | 2008-09-06 03:13:34 +0000

Tiles mcache improvements.  Monsters out of sight are now shown with their last 
seen equipment.  Player ghosts are now drawn correctly again.  Denzi's new 
48x32 pandemonium demon tiles are now used.

--------------------------------------------------------------------------------
7349eedd00 | dolorous | 2008-09-06 03:06:44 +0000

When abandoning Yred, turn all of the undead servants he's sent you hostile, 
including any zombies you've raised using his power.

--------------------------------------------------------------------------------
c9280b209b | dolorous | 2008-09-06 01:04:43 +0000

Add the flaming corpse monster, as specified in FR [1746720], with several 
tweaks: its resistances are the inverse of the freezing wraith's, but with 
sticky flame resistance added, and its console character is a lightred 'z'.  As 
specified, it uses a sticky flame melee attack: AF_NAPALM.  Note that it needs 
a tile.
Also, expand the list of servants that Yredelemnul can send, as 
specified by Lemuel awhile ago (including the flaming corpse).  This 
expansion allows the sending of more than one creature per instance, 
currently only used for Yred's flying skulls.

--------------------------------------------------------------------------------
6130fccaad | ennewalker | 2008-09-04 01:21:33 +0000

Fixing rltiles compile: s/SDL_Image/SDL_image/

--------------------------------------------------------------------------------
1fd0b20bb0 | dploog | 2008-09-03 21:06:31 +0000

Slightly more Snorg protection in a Lair entry vault.

--------------------------------------------------------------------------------
a603050dbf | dploog | 2008-09-03 20:53:34 +0000

More sane Crypt:5 loot (doy); see BR 2091544.

--------------------------------------------------------------------------------
46c9bd1b88 | dshaligram | 2008-09-02 16:58:08 +0000

[2029973] Saner autopickup exceptions (doy).

--------------------------------------------------------------------------------
80011c222e | haranp | 2008-08-28 19:23:44 +0000

Fix 2079299: lichform should discard holy wrath weapons.

--------------------------------------------------------------------------------
36d43983b6 | haranp | 2008-08-28 16:32:54 +0000

Fix 2073715: stave type not IDing from combat.

--------------------------------------------------------------------------------
baf36321bb | dshaligram | 2008-08-25 20:33:19 +0000

Describe gates to Pan as one-way gates, as for the Abyss.

--------------------------------------------------------------------------------
203b649a0e | ennewalker | 2008-08-24 23:03:28 +0000

Quick fix to previous check-in that generated bad tiledef headers.

--------------------------------------------------------------------------------
52e493902a | ennewalker | 2008-08-24 18:04:09 +0000

Modifying RLTiles to randomly use Johanna's extra blood splats when generating 
corpse tiles.

--------------------------------------------------------------------------------
78f04dd421 | ennewalker | 2008-08-24 15:38:20 +0000

Fixing Win32 tiles makefiles to work with recent rltiles changes.

--------------------------------------------------------------------------------
1771f7a8a5 | dshaligram | 2008-08-24 14:23:06 +0000

Fix crash when tracer hits monster with negative AC (Ekaterin).

--------------------------------------------------------------------------------
85d704ace2 | dolorous | 2008-08-24 03:35:47 +0000

Fix [2061292] by disabling redundant draconian mutations: red draconians 
shouldn't get the "Breathe Flames" mutation, and green draconians shouldn't get 
the "Spit Poison" mutation, since their breathing poison supersedes that.

--------------------------------------------------------------------------------
3c6370def3 | dolorous | 2008-08-24 03:10:59 +0000

Fix the descriptions of several gods' protection from harm, including [2021582].

--------------------------------------------------------------------------------
98f7c22b56 | dolorous | 2008-08-23 23:38:42 +0000

Make Beogh take revenge properly if you destroy an orcish idol with the Shatter 
spell.

--------------------------------------------------------------------------------
267aa98041 | dolorous | 2008-08-23 22:09:06 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
6e6c763bff | ennewalker | 2008-08-23 18:03:07 +0000

Fixing draco, "tried", and shadow tiles issues caused by previous check-in.  
Adding transparency to a number of tiles.

--------------------------------------------------------------------------------
b25208caa5 | ennewalker | 2008-08-23 17:07:46 +0000

RLTiles complete code rewrite: now much more robust and functional.
Added PNG and non-palettized image input.  Added PNG output.  Added better tile
packing and support for tiles of different sizes. Converted all BMPs to PNGs
(for space and explicit transparency reasons.) Added the 48x32 pandemonium
demon tiles, but these are not yet used in game.  Added Bill B.'s portal tile
(finally).

The Win32 makefiles are not updated quite yet and thus will not build.  Sorry.

--------------------------------------------------------------------------------
02bae5372f | dshaligram | 2008-08-22 12:03:08 +0000

[2067336] Fix mlist crash.

--------------------------------------------------------------------------------
c7cb588c7d | dshaligram | 2008-08-22 11:33:09 +0000

Make ice and magma beams more resistible (25%, 35%).

--------------------------------------------------------------------------------
fae46d1b17 | dshaligram | 2008-08-22 11:24:48 +0000

Fixed Lom Lobon ice storm damage (syllogism).

--------------------------------------------------------------------------------
2e6d4070c0 | dshaligram | 2008-08-22 11:07:48 +0000

[2058822] Fix ice storm damage, make both storms and bolts of ice and magma 
less resistible (ice being less resistible than magma), give ice storm more 
damage than fire storm, make fire storm vortices aligned with the caster, but 
temporary.

--------------------------------------------------------------------------------
8d09beacc3 | dshaligram | 2008-08-22 11:06:46 +0000

[2042365] Fixed trunk build (#include <algorithm> in spl-util.cc) (Sigurd).

--------------------------------------------------------------------------------
c077c8f933 | dolorous | 2008-08-21 03:44:41 +0000

Implement Martin Read's suggested demon tweaks: make iron devils able to use 
weapons, and increase orange demons' speed and the damage of their non-stinger 
attack.

--------------------------------------------------------------------------------
c7a97614c5 | dolorous | 2008-08-20 04:08:25 +0000

Don't mark death yaks as evil anymore, since they have natural holiness, they 
don't cast evil spells, and they don't breathe evil things, either. Their 
"hunger for living flesh," as mentioned in their description, could be evil, 
but there's nothing in the code that supports it.

--------------------------------------------------------------------------------
8fc54529df | dolorous | 2008-08-20 02:56:48 +0000

Don't mark fire and frost giants as evil anymore, since they have natural 
holiness and don't cast any evil spells.

--------------------------------------------------------------------------------
5263fe73e0 | dolorous | 2008-08-19 02:50:40 +0000

Rework Zin's Vitalisation to be simpler, based mostly on dploog's suggestions.  
Note that divine robustness is no longer available from Zin, but the code for 
it is still in place, since it can be adopted later for Elyvilon.

--------------------------------------------------------------------------------
a6644476fa | dploog | 2008-08-18 23:08:26 +0000

And removing CHANCE: 10000 again. One of these years I'll get it.

--------------------------------------------------------------------------------
eff3320d2e | dploog | 2008-08-18 23:06:32 +0000

Another improvement to entry vault (Shiori).

--------------------------------------------------------------------------------
dbc18ca13b | dploog | 2008-08-18 18:34:26 +0000

Remove PLACE:2.

--------------------------------------------------------------------------------
d58b8f3831 | dploog | 2008-08-18 18:22:20 +0000

Added two more Shiori vaults.

--------------------------------------------------------------------------------
f0f421c33b | j-p-e-g | 2008-08-18 18:02:50 +0000

* Force ?immolation to never burn scrolls, whether in inventory or on   the 
floor. * List new amount of charges when recharging identified wands. * Tweak 
some checks for travel_path to be on the safe side.

--------------------------------------------------------------------------------
0c2b9c3ea7 | dploog | 2008-08-18 17:36:26 +0000

Added Shiori's Elf and Orc vaults.

--------------------------------------------------------------------------------
d3bcbd447d | dploog | 2008-08-18 11:12:19 +0000

Added Nemelex altar (Shiori). Repaired zombie fish altar.

--------------------------------------------------------------------------------
3cc6b89006 | dploog | 2008-08-18 10:23:34 +0000

Adding new entry vaults by ShioriC.

--------------------------------------------------------------------------------
7f599ba676 | ennewalker | 2008-08-17 00:35:45 +0000

[2046134] Fixing segfault when random dracos are specified with 'nothing' as 
equipment.

--------------------------------------------------------------------------------
82f5633bfb | ennewalker | 2008-08-16 23:49:17 +0000

[2034614] [2034537] Fixing numpad '5' and ctrl+numpad/arrow issues for (crazy) 
non-vi key users.

--------------------------------------------------------------------------------
db8c5d8004 | ennewalker | 2008-08-16 22:54:52 +0000

Fixing 'make install' step to also copy fonts for tiles.

--------------------------------------------------------------------------------
b61cd875b2 | ennewalker | 2008-08-16 20:02:26 +0000

Improved tiles inventory window handling.  Cases with lots of floor items or 
lots of pack items are handled better.

--------------------------------------------------------------------------------
532f752e15 | dolorous | 2008-08-16 18:25:26 +0000

Apply 0.4 r6816 to trunk.

--------------------------------------------------------------------------------
29d6b17f76 | haranp | 2008-08-16 18:08:37 +0000

Fix 2054857: _vgrid is y-major, not x-major.

--------------------------------------------------------------------------------
83d80318e6 | dolorous | 2008-08-16 17:41:34 +0000

Add wording fix.

--------------------------------------------------------------------------------
5f315f3078 | dolorous | 2008-08-16 03:08:15 +0000

Fix [2051240]: Don't allow undead to memorize Stoneskin, excepting vampires, 
since they can use it when alive.

--------------------------------------------------------------------------------
18aaef8542 | dshaligram | 2008-08-15 17:54:01 +0000

Also fix draining / torment for vampires (jarpiain).

--------------------------------------------------------------------------------
a0f8778f74 | dshaligram | 2008-08-15 17:28:34 +0000

Fixed demonspawn getting free protection from torment/draining (jarpiain).

--------------------------------------------------------------------------------
60f0a9053b | dshaligram | 2008-08-11 09:14:57 +0000

Check both ends of interlevel travel to see if travel is going out of [src,dst] 
range (sorear).

--------------------------------------------------------------------------------
2f0d13d69e | dolorous | 2008-08-09 21:07:26 +0000

Fix typo mentioned in [2042620].

--------------------------------------------------------------------------------
7caf5f3464 | dolorous | 2008-08-09 21:03:21 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
802cc8bd43 | dolorous | 2008-08-09 20:51:04 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
6585f0a098 | dolorous | 2008-08-09 18:59:19 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
d9f1b7893c | dolorous | 2008-08-09 18:58:09 +0000

Comment fix.

--------------------------------------------------------------------------------
fd79deeb40 | dolorous | 2008-08-09 18:54:21 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
62e30bac3c | dolorous | 2008-08-09 18:53:04 +0000

Fix the healing blessing logic again.

--------------------------------------------------------------------------------
e4b4c6ec7a | dolorous | 2008-08-09 18:25:53 +0000

Simplify.

--------------------------------------------------------------------------------
e81348b16e | dolorous | 2008-08-09 17:47:47 +0000

Add one more healing blessing tweak.

--------------------------------------------------------------------------------
4dabee0b26 | dolorous | 2008-08-09 17:43:03 +0000

Comment fix.

--------------------------------------------------------------------------------
5c2c93e738 | dolorous | 2008-08-09 17:42:13 +0000

Tweak the healing blessing for followers.  Extra HP are no longer given, as 
they're apparently lost upon gaining an experience level, and healing is no 
longer always full, but randomly between 1/4 of full HP and full HP.

--------------------------------------------------------------------------------
196a17939e | dolorous | 2008-08-09 16:26:34 +0000

Fix [2041003]: Mark draconian callers as evil, since they can summon death 
drakes and shadow dragons, which are both evil.

--------------------------------------------------------------------------------
f1f2c1bb46 | dolorous | 2008-08-09 15:32:01 +0000

Make the weapon and armor enchantment blessings for followers enchant by only 
one point instead of one or two points.

--------------------------------------------------------------------------------
e2d1b5dfa2 | j-p-e-g | 2008-08-09 12:27:44 +0000

Rework xx and V to use monster_pane_info() to benefit from the difficulty 
comparison and sorting functions. Make V work as a shortcut for xx, but keep 
the original monster listing (now repaired) for the dump.
Most of the monster_pane_function struct and functions are now also
included in Tiles compiles, even though the monster list itself is still
not available.

--------------------------------------------------------------------------------
cf8808bec6 | dshaligram | 2008-08-09 09:42:53 +0000

Report the right line numbers for Lua errors in .crawlrc Lua.

--------------------------------------------------------------------------------
516b825d6d | dshaligram | 2008-08-09 08:43:46 +0000

Fixed off-by-one errors in dungeon.cc use of rectangle_iterator.

--------------------------------------------------------------------------------
72f5a44fdc | dshaligram | 2008-08-09 08:42:59 +0000

Allow Antaeus to move through water.

--------------------------------------------------------------------------------
3a4c437eb1 | dshaligram | 2008-08-09 08:42:13 +0000

Fix bounds check for summon elemental.

--------------------------------------------------------------------------------
7ae139cabd | dolorous | 2008-08-09 00:46:19 +0000

Fix inverted logic preventing TSO and Beogh followers from having any chance of 
being blessed when gaining experience levels.

--------------------------------------------------------------------------------
0473b6c1ce | j-p-e-g | 2008-08-07 22:05:28 +0000

Don't equip pure spellcasters with a knife at game start. Finding any 
butchering weapon is easy enough, and even more so if it being cursed or 
negatively enchanted doesn't even matter. Arguably, Earth Elementalists 
(occasionally wielding stones) and Summoners (wielding sticks) might start out 
with a butchering tool, after all.

--------------------------------------------------------------------------------
6f4e8d8799 | dploog | 2008-08-07 12:46:40 +0000

Replace "Level:" by "Place:" in the HUD.

--------------------------------------------------------------------------------
4abb413f41 | dshaligram | 2008-08-07 08:29:53 +0000

0.4->trunk r6788: Fixed bug where start time of games would go backward or 
forward in time on dgl builds (oops).

--------------------------------------------------------------------------------
52fa41b7a9 | j-p-e-g | 2008-08-06 22:05:42 +0000

Note identification of randarts *after* autoinscribing them and, in the case of 
weapons, it suffices if the properties are known - knowing a weapon's 
enchantment is not necessary for the ID note.

--------------------------------------------------------------------------------
b4d50875d5 | j-p-e-g | 2008-08-06 21:37:37 +0000

Automatically inscribe randart weapons/armour with their properties when 
wielding/wearing it for the first time.

--------------------------------------------------------------------------------
1395f15a3e | j-p-e-g | 2008-08-06 14:23:46 +0000

* Note items bought in shops along with their price * Note donations made to 
Zin * Add option autoinscribe_randarts that, if true, autoinscribes   artefacts 
of its own whenever some new properties become known,   be it by using it or 
identifying. Also applies to shops.   This is still unfinished and buggy.

--------------------------------------------------------------------------------
3afdb10018 | haranp | 2008-08-06 12:40:17 +0000

Fix 2035976: doubled inscriptions in equipped items in dump.

--------------------------------------------------------------------------------
c1e82ffded | haranp | 2008-08-06 12:09:54 +0000

Fix 2038651: real/fake rakshasa identity being leaked by monster pane window 
and 'x' description.

--------------------------------------------------------------------------------
b65a80651c | haranp | 2008-08-06 11:16:25 +0000

Fix 2038962: casting divine shield wasn't refreshing AC displayed.

--------------------------------------------------------------------------------
1116bae049 | haranp | 2008-08-06 11:10:51 +0000

Fix semicontrolled blink [2038476].

--------------------------------------------------------------------------------
ad1ea33511 | haranp | 2008-08-06 10:50:46 +0000

Fix 2037845: unstackedness was overriding finishing a deck. (Arguably a 
feature, but I like it better this way.)

--------------------------------------------------------------------------------
f98faaf4a0 | haranp | 2008-08-06 10:43:25 +0000

Fix 2039734: non-Spriggan transmuters being cheated on Unarmed Combat.

--------------------------------------------------------------------------------
c070e96a6e | haranp | 2008-08-06 10:39:34 +0000

Fix 2039217: check shield status for non-weapons before allowing wield.

--------------------------------------------------------------------------------
5a96a39b9d | haranp | 2008-08-06 10:27:03 +0000

Fix 2038973: explosive tracer beams leaking information about invisible 
monsters.

--------------------------------------------------------------------------------
89f624a535 | dolorous | 2008-08-05 15:14:11 +0000

Mark staves of poison and rods of venom as disapproved by TSO.

--------------------------------------------------------------------------------
7d1c30fb19 | ennewalker | 2008-08-05 04:29:26 +0000

Improved Tile screen layout.  Small screens get the message window overlaid on 
the dungeon.  Even smaller screens get the graphics shrunk (and thus slightly 
blurry.) Added full screen options and several predefined layouts for older and 
newer Eee PC resolutions.

--------------------------------------------------------------------------------
5c7064085c | haranp | 2008-08-04 16:42:54 +0000

Fix 2037105: amulet of controlled flight not autoIDing.

--------------------------------------------------------------------------------
ce3948ab25 | haranp | 2008-08-04 14:41:48 +0000

2036429: better spacing on ^ screen.

--------------------------------------------------------------------------------
d39d0c75a3 | dolorous | 2008-08-04 13:47:39 +0000

Fix [2037146]: Make hill giants use MONUSE_STARTING_EQUIPMENT, so that they 
actually receive and use their starting equipment.

--------------------------------------------------------------------------------
1a39dc1746 | dolorous | 2008-08-04 13:42:08 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
365a783ed6 | dolorous | 2008-08-04 13:39:45 +0000

Fix healing spell breakage.

--------------------------------------------------------------------------------
a8a831d43b | dolorous | 2008-08-04 12:31:49 +0000

Make quotes.txt use eol-style: native.

--------------------------------------------------------------------------------
33cc9b2e7e | j-p-e-g | 2008-08-04 11:35:24 +0000

* Move all quotes into quotes.txt and a database of their own. * Adapt 
Matthew's code to use quotes if there's enough space left. * Skip the general 
description of player ghosts that only repeats the   specific description but 
with less information. * Don't refer to ghosts as "xyz's ghost the player ghost"

--------------------------------------------------------------------------------
95e55a6b22 | dshaligram | 2008-08-04 09:58:31 +0000

Warn the player if interlevel travel is going to take them to a level outside 
the range [src,dest] (rax, doy).
Add ^G as an alias for Escape in yesno and yesnoquit.

--------------------------------------------------------------------------------
3db6df1d0c | dshaligram | 2008-08-04 07:21:05 +0000

Strengthen metabolic englaciation (doy).

--------------------------------------------------------------------------------
19d71d1a0d | dshaligram | 2008-08-04 05:33:44 +0000

0.4->trunk r6760: Fix Crawl spinning in CPU-pegging loop on disconnect on death 
screen (sorear).

--------------------------------------------------------------------------------
4c227e53e4 | haranp | 2008-08-03 19:22:38 +0000

Fix 2036564: bad names for god-gifted unrandarts.

--------------------------------------------------------------------------------
ac876ff2d7 | j-p-e-g | 2008-08-03 19:18:22 +0000

Some minor improvements to the full view (xx), e.g. mention monsters being 
friendly, neutral or hostile, and highlight selected monsters in Tiles.

--------------------------------------------------------------------------------
dd27b06105 | dolorous | 2008-08-03 02:51:21 +0000

Apply missing bits of 0.4's r6748 to trunk.

--------------------------------------------------------------------------------
73945a5e77 | j-p-e-g | 2008-08-02 17:57:40 +0000

Apply Yelve Yakut's patch (2020369) to list monsters and items in view. The 
command to do so is xx, and you can select an entry for more details, which 
will be the database description ('v') for items and the more detailed 'x' 
description for monsters, which I think is more useful.
What's still needed is some kind of sorting by, I guess, difficulty for
monsters and respecting sort_menus for the items. Also, the item listing
is not terribly useful at the moment but surely soon someone will think 
of a way to change that. :)

--------------------------------------------------------------------------------
e160fb287c | dolorous | 2008-08-02 15:01:19 +0000

Make keybind.txt use eol-style: native.

--------------------------------------------------------------------------------
2ef4d8e446 | dolorous | 2008-08-02 14:52:47 +0000

Fix assertion failure upon high-scoring death.

--------------------------------------------------------------------------------
8a065628d4 | dolorous | 2008-08-02 14:50:59 +0000

Properly indicate claws in your_hand().

--------------------------------------------------------------------------------
2f502ad2e1 | j-p-e-g | 2008-08-01 22:43:46 +0000

FR 2026227: Make $ list current gold. FR 2027307: Use menu colours for shops, 
with an option to turn it off to             get the striped menu again.

--------------------------------------------------------------------------------
6abca99d68 | haranp | 2008-08-01 20:28:38 +0000

Better message when allies are killed. [2009285]

--------------------------------------------------------------------------------
02d35dea33 | haranp | 2008-08-01 11:19:07 +0000

More minor fixes.

--------------------------------------------------------------------------------
af03dc9c1d | haranp | 2008-08-01 11:02:51 +0000

Minor cleanups.

--------------------------------------------------------------------------------
c0d2609f31 | dshaligram | 2008-08-01 05:39:23 +0000

Fix trunk dgamelaunch compile (Napkin).

--------------------------------------------------------------------------------
e968c2c7b5 | dshaligram | 2008-08-01 05:38:29 +0000

When DGAMELAUNCH is defined, use gmtime() instead of localtime() so it's easier 
to keep multiple dgl servers in sync.

--------------------------------------------------------------------------------
9cf14072d9 | j-p-e-g | 2008-07-31 22:34:01 +0000

Fix 2033984: Monsters being created with both a shield and a 2-hander. (They 
now don't get a shield if they're wielding a 2-handed weapon.)
Add the keybinding documentation to trunk.

--------------------------------------------------------------------------------
879381b4e6 | haranp | 2008-07-31 21:24:37 +0000

Fix 2032476: improve interface for Lee's Rapid Deconstruction.

--------------------------------------------------------------------------------
630b860361 | haranp | 2008-07-31 12:06:58 +0000

Implemented basic range darkening while targeting. Nothing uses this yet, I 
believe, because most calls to direction() use the default range (-1).

--------------------------------------------------------------------------------
f76a28883b | haranp | 2008-07-30 23:52:01 +0000

Fix 2033249: endgame and shop inventory browsing didn't allow examining items.

--------------------------------------------------------------------------------
10516e8cb1 | haranp | 2008-07-30 23:31:48 +0000

Don't discard Stoneskin when using non-conflicting transformations. [2031392]

--------------------------------------------------------------------------------
54959c8ecc | haranp | 2008-07-30 23:12:21 +0000

Fix 2033055: only prompt for unsuitable weapons if you can see the target.

--------------------------------------------------------------------------------
a3f51c4dba | haranp | 2008-07-30 12:57:58 +0000

Fix 2029792: drop menu lets you choose more than the amount of the item.

--------------------------------------------------------------------------------
262b8e18ed | haranp | 2008-07-30 10:53:06 +0000

Massive overhaul to move towards coord_def(). This might have introduced some 
bugs: I now get intermittent crashes on startup (this might have to do with the 
changes to special_room.) Sorry about that - committing before I need to do any 
more big conflict resolutions. Fixes coming later.

--------------------------------------------------------------------------------
51d8f1fc9c | dshaligram | 2008-07-30 09:22:02 +0000

Removed use of nonstandard strcasestr.

--------------------------------------------------------------------------------
44e703fb80 | dshaligram | 2008-07-30 07:22:41 +0000

Fix evaporate trailing clouds before explosion (sorear).

--------------------------------------------------------------------------------
dfad9aff3c | dshaligram | 2008-07-30 06:15:31 +0000

Fixed evaporate not working on potions of water.

--------------------------------------------------------------------------------
50249293e7 | ennewalker | 2008-07-30 02:00:19 +0000

[2029802] Fixing issues with spinning on SDL_PollEvent.

--------------------------------------------------------------------------------
635a2c2229 | zelgadis | 2008-07-29 23:56:58 +0000

Bug 2031257: can't fire-no-quiver ('F') if there are no thorwable items in 
inventory.

--------------------------------------------------------------------------------
63036c9e5e | zelgadis | 2008-07-29 22:59:35 +0000

Implemented monster spell miscasts.  Spell miscasting is now handled by the 
MiscastEffect class, which has helper methods to make most of the non-helper 
code agnostic with respect to whether the miscaster is the player or a monster. 
 Mummy death curses now affect monsters, and Zot traps now directly affect 
friendly and good-neutral monsters. In wizard mode you can force the player or 
a monster to miscast by targeting it and pressing 'M'.
Todo/issues/notes:

* Clouds now have a killer_type in addition to a kill_category.

* There aren't any divination monster miscast effects yet.

* Many of the harmless message-only miscast effects are missing
  monster messages.

* If a monster actually miscasts a spell (not getting a mummy
  death curse or setting off a Zot trap) and this kills both the
  monster and the player then the wrong monster will be listed in
  hiscore entry.  Since monsters can't do true spell miscasts yet, this
  can wait.

* There was old, non-functioning code making Zot traps heal, haste or
  turn invisible hostile monsters that triggered it.  I fixed it and
  then commented it out.

--------------------------------------------------------------------------------
e744cede05 | dshaligram | 2008-07-29 14:34:27 +0000

Don't lose level-up stat and hp gain if Crawl receives SIGHUP at the level-up 
prompt.

--------------------------------------------------------------------------------
5362837395 | dshaligram | 2008-07-29 13:07:45 +0000

Fix broken skill titles for certain skills such as Necromancy (bobbens).

--------------------------------------------------------------------------------
e75f4e49b8 | ennewalker | 2008-07-29 02:50:18 +0000

[2029802] Fixing numpad issues for tiles.  Theoretically, this change should 
remove the need for getch() vs. getch_ck() by handling key translation through 
macro context.

--------------------------------------------------------------------------------
f3c162efda | dshaligram | 2008-07-28 20:53:27 +0000

Fix HUD updates overwriting dgl message indicator, changed indicator from (msg) 
to (Hit _).

--------------------------------------------------------------------------------
a7260191bf | j-p-e-g | 2008-07-28 18:43:34 +0000

Fix 2022451: Cleansing Flame hurting distracted monsters and angering           
   TSO. As suggested by David, I added no prompts but instead              made 
sure that fleeing/distracted/caught/... monsters are              simply not 
harmed (hurt = 0), meaning players don't have to              worry about 
accidentally angering TSO *and* they can't ever              use his power to 
hurt helpless creatures, even willingly.

--------------------------------------------------------------------------------
30972f8855 | j-p-e-g | 2008-07-28 11:26:54 +0000

Fix 2021696: allow_self_target = no even forbidding self-targetting for area 
effect spells (now prompts) Fix 2028704: spell view toggle 'I' preventing 
forgetting spell slot 'I'
Allow intelligent summoned monsters to equip themselves.

--------------------------------------------------------------------------------
69d26de6e5 | dshaligram | 2008-07-28 11:17:11 +0000

[2029941] Fix g++ 4.3 build issue (Sigurd).

--------------------------------------------------------------------------------
30b73ef938 | dshaligram | 2008-07-28 06:08:00 +0000

[2029854] Fixed map parser rejecting level:-2 and level:-3 for items.

--------------------------------------------------------------------------------
ed2216e8f9 | j-p-e-g | 2008-07-27 21:29:46 +0000

Fix 2028969: excess comma in autoinscriptions of brand-only artefacts. Also: 
Tweak inscription prompt.
Fix 2027600: Don't prompt when attacking with inappropriate weapon while
             confused.
Fix 2027328: Throwing projectiles at enslaved monsters.

When saccing to Nemelex, count chunks and !blood like corpses (deck of
summoning rather than wonder). Chunks used to be ignored completely but
since they're just chopped up corpses and corpses are worth much more
than 4 per piece I don't think it hurts. (Rotten chunks have a value of
zero.) Also, decrease !blood price to that of !porridge and lower.

--------------------------------------------------------------------------------
abceff13c3 | ennewalker | 2008-07-27 15:22:37 +0000

Fixing bmp2png makefile error.

--------------------------------------------------------------------------------
2bc81f9101 | ennewalker | 2008-07-27 15:22:05 +0000

Applying r6696 back to trunk (PCRE support).

--------------------------------------------------------------------------------
a6bfa9cade | ennewalker | 2008-07-27 14:33:13 +0000

Applying r6618 to trunk (DOS blinking characters.)

--------------------------------------------------------------------------------
45995d5d41 | dshaligram | 2008-07-26 17:53:26 +0000

Fix food eat prompts ignoring macroed sequences (cbus).

--------------------------------------------------------------------------------
a64d58f02c | ennewalker | 2008-07-26 16:54:55 +0000

[2021070] Adding Tiles health/mp bars.

--------------------------------------------------------------------------------
0ed78b3e9b | ennewalker | 2008-07-26 16:07:29 +0000

Tiles fix to turn off mouse cursor once x-mode is done.

--------------------------------------------------------------------------------
547124b71f | ennewalker | 2008-07-26 15:59:20 +0000

[2021074] Tiles cursor improvements.

--------------------------------------------------------------------------------
64b430b8e7 | ennewalker | 2008-07-26 04:52:50 +0000

Adding lua function to fill in disconnected zones.

--------------------------------------------------------------------------------
c9d3683f74 | ennewalker | 2008-07-26 03:59:17 +0000

Minor dungeon fixes.  Encompass maps were erroneously being vetoed.  Octagon 
rooms no longer have a hideous discontinuity on their lower right corner.  
Octagon rooms are also no longer always smeared.

--------------------------------------------------------------------------------
5ef44f94de | ennewalker | 2008-07-26 03:07:34 +0000

Fixing item check.  (Maybe shops should have items, after all.)

--------------------------------------------------------------------------------
7865993ce0 | ennewalker | 2008-07-26 02:34:48 +0000

[2022204] Don't allow items to be created on features that they shouldn't be.  
Complain via diagnostic if they are, and then remove the item.

--------------------------------------------------------------------------------
7b4bf560e5 | haranp | 2008-07-25 19:07:55 +0000

Fix runaway skill training.

--------------------------------------------------------------------------------
2f0b625123 | dshaligram | 2008-07-25 15:30:35 +0000

Weaken monster dispel undead further.

--------------------------------------------------------------------------------
64066374ba | j-p-e-g | 2008-07-25 07:54:57 +0000

Fix 2026078: Quiver not updated after item slot adjustment. Fix 2027292: 
potion_effect() adapting to vampire hunger for non-potion              effects. 
Fix 2026910: Make !invisibility/resistance/speed use MSGCH_DURATION.

--------------------------------------------------------------------------------
18fa676cf1 | ennewalker | 2008-07-25 03:18:48 +0000

Fixing Tiles minimap not being updated with magic mapping.  Some other minor 
Tiles cleanup.

--------------------------------------------------------------------------------
8c399dae34 | ennewalker | 2008-07-25 02:42:50 +0000

[2021061] Fixing Tiles exclusion issues.

--------------------------------------------------------------------------------
92cd16932b | zelgadis | 2008-07-24 22:34:59 +0000

Define DEBUG_MONS_SCAN for wizard builds.

--------------------------------------------------------------------------------
3e8ff63a0b | dshaligram | 2008-07-24 19:01:17 +0000

[2021292] Fixed teleport control not being enabled after picking up the icy 
rune. Updated level_design.txt.

--------------------------------------------------------------------------------
8042bba9f4 | haranp | 2008-07-24 11:44:30 +0000

More cleanups.

--------------------------------------------------------------------------------
39caa17307 | haranp | 2008-07-24 11:30:19 +0000

Don't allow switching to autocurse weapons for butchery. [2026147]

--------------------------------------------------------------------------------
1117875037 | haranp | 2008-07-24 10:38:05 +0000

More cleanups.

--------------------------------------------------------------------------------
a7ba97bc95 | dshaligram | 2008-07-24 06:26:17 +0000

Fixed x_ and other feature hotkeys not working in the Abyss (cbus).

--------------------------------------------------------------------------------
b1932b010b | dshaligram | 2008-07-24 05:59:10 +0000

More checks for DEBUG_MONS_SCAN.

--------------------------------------------------------------------------------
282e620e20 | dshaligram | 2008-07-24 05:52:35 +0000

[2026251] Fixed Elf:1 arrival sometimes being disconnected - the map used 
ORIENT: south, but defined no exits. Fixed by applying the old floating vault 
exit behaviour to all vaults (apart from minivaults) so explicit @ exits are 
now optional.
Also fixed maps being unable to place monsters on shallow water.

Added debug_mons_scan to scan the mgrd for stranded monsters in fulldebug mode.

--------------------------------------------------------------------------------
cc6d8cbcbc | ennewalker | 2008-07-24 04:00:10 +0000

Fixing Tiles targeting and mouse cursor behavior.

--------------------------------------------------------------------------------
4bc8fa4818 | ennewalker | 2008-07-24 01:41:54 +0000

Moving more settings to the Tiles options file.  Fixing a mouse-related crash 
that Johanna mentioned.

--------------------------------------------------------------------------------
04fbe88386 | ennewalker | 2008-07-24 01:05:13 +0000

Fixing Tiles mouse performance issue found by Johanna.  Fixing various Tiles 
crashes (oops).

--------------------------------------------------------------------------------
ad41d5af4c | ennewalker | 2008-07-24 00:48:02 +0000

[2021067] Fixing font centering issues.

--------------------------------------------------------------------------------
c2457cbc93 | ennewalker | 2008-07-24 00:31:57 +0000

More configurable fonts for Tiles.

--------------------------------------------------------------------------------
01b9f925de | zelgadis | 2008-07-23 23:30:15 +0000

FR 2017262: add chunk colour to eat prompt.  Impleveted via the two new C lua 
functions item.name_coloured() (which gives strings like "<lightgreen>a chunk 
of golden dragon flesh</lightgreen>") and crawl.formatted_mpr().
Could someone commit this to branch for me?  Thanks.

--------------------------------------------------------------------------------
5d3ae4f91b | haranp | 2008-07-23 21:34:02 +0000

Fix embarrasing bug in rectangle_iterator().

--------------------------------------------------------------------------------
eca0f4f0b5 | dploog | 2008-07-23 21:19:51 +0000

Remove "primarily" in herbivore 3 mutation message since it does not allow 
eating of processed meat anymore.

--------------------------------------------------------------------------------
453557f2f7 | dploog | 2008-07-23 21:18:03 +0000

Grammar fix.

--------------------------------------------------------------------------------
4f554ed5fa | dshaligram | 2008-07-23 21:15:46 +0000

RIP stash_tracking option, always set to all now.

--------------------------------------------------------------------------------
6f00e679d1 | haranp | 2008-07-23 20:32:37 +0000

More cleanups and fixes.

--------------------------------------------------------------------------------
0b1e914465 | j-p-e-g | 2008-07-23 20:08:15 +0000

Fix 1951909: Randart bardings getting named as boots.

--------------------------------------------------------------------------------
0a39339616 | dshaligram | 2008-07-23 19:54:40 +0000

Add short duration freezing cloud for high-damage cold beams (bolt of cold at 
reasonable power).

--------------------------------------------------------------------------------
ef2bdf86e4 | dshaligram | 2008-07-23 19:23:49 +0000

Reduce bounciness of beams - bouncing kills twice as much beam travel.

--------------------------------------------------------------------------------
c7cf350028 | dshaligram | 2008-07-23 17:42:12 +0000

Remove freezing cloud trail for beams of cold over water.

--------------------------------------------------------------------------------
faed135e4f | j-p-e-g | 2008-07-23 17:33:20 +0000

Implement 2022051: Skip hjklyubn (well, currently only bhjkl) when targetting 
via monster list, so you can both directly target a monster and manually move 
your cursor. Has the side-effect of reallowing direct selection of monsters via 
'x'.

--------------------------------------------------------------------------------
68631458c7 | dshaligram | 2008-07-23 17:32:18 +0000

TSO no longer makes summons permanent or enslaved monsters permanently 
friendly, but he will increase summon/charm duration for the ally in combat.

--------------------------------------------------------------------------------
703d6fb9ec | j-p-e-g | 2008-07-23 11:35:15 +0000

Put see/sense invis description to directn.cc (examining via 'x') rather than 
general description (view). I keep mixing those two up.
Fix coord-def changes for Tiles compile.

--------------------------------------------------------------------------------
9f2e3b0645 | j-p-e-g | 2008-07-23 10:41:10 +0000

Fix 2024087: @_generic_orc_speech@. Fix 2024560: Selective Amnesia crash. Fix 
2024701: claws/ankus not being handled in the weapon options.
Implement 2025076: give an indication of monsters seeing/sensing
invisible in their description.

--------------------------------------------------------------------------------
c91a480580 | haranp | 2008-07-23 08:41:37 +0000

Unbreak trunk build (thanks maiermrk.)

--------------------------------------------------------------------------------
9a160b380b | haranp | 2008-07-22 20:21:15 +0000

Massive change from using x and y to using coord_defs(). Not quite tested, most 
likely broken in some places and might break tiles. Will fix in the near future.

--------------------------------------------------------------------------------
23e8c7a07f | dploog | 2008-07-22 18:14:57 +0000

Minor change (Darshan).

--------------------------------------------------------------------------------
3e4dca4caf | dploog | 2008-07-22 17:32:08 +0000

Mention SSH compression in the putty guide. (Nexos)

--------------------------------------------------------------------------------
2bee5e4849 | dploog | 2008-07-22 16:46:44 +0000

Minor fixes.

--------------------------------------------------------------------------------
396b0d49b3 | haranp | 2008-07-22 08:54:30 +0000

Monsters will no longer be generated with stacks of returning weapons.

--------------------------------------------------------------------------------
e153203bdd | dploog | 2008-07-22 06:30:07 +0000

Minor manual fixes.

--------------------------------------------------------------------------------
391f30e5a0 | haranp | 2008-07-21 22:07:52 +0000

Various code cleanups. Moving towards using coord_def() instead of x and y 
where possible.

--------------------------------------------------------------------------------
ab9bd52586 | haranp | 2008-07-21 20:46:15 +0000

Clean up _get_visible_monsters().

--------------------------------------------------------------------------------
2ba0c7b650 | haranp | 2008-07-21 20:29:46 +0000

Fix 2022531: Twisted Resurrection abominations are undead again.

--------------------------------------------------------------------------------
17652535bd | j-p-e-g | 2008-07-21 18:22:37 +0000

Add immunity checks for prompts about beams potentially hitting yourself (not 
counting self-targetting since what we're trying to avoid in that case is loss 
of magic as well as self-damage) and add some special cases for Evaporate, so 
the potions use appropriate resistances without leaking information on the 
random choices.
Let Enhancers start with Short Blades skill 1.

--------------------------------------------------------------------------------
70c9cdbfc3 | haranp | 2008-07-21 16:59:51 +0000

Cleanups for cast_twisted_resurrection().

--------------------------------------------------------------------------------
d9bc7dea9d | haranp | 2008-07-21 16:34:38 +0000

TSO no longer thinks it's unchivalric to attack evil creatures of any kind. 
[Maybe this should only be natural evil ones?] Fixes 2021950.

--------------------------------------------------------------------------------
b17182f59f | haranp | 2008-07-21 16:15:40 +0000

Fix for 2022236: HP bar could be blanked out when gaining XP. [Thanks sorear]

--------------------------------------------------------------------------------
412b189793 | dploog | 2008-07-21 10:42:45 +0000

Change magenta green crystal to magenta stone.

--------------------------------------------------------------------------------
1fec1f46e5 | dshaligram | 2008-07-20 17:28:51 +0000

Fix resists for lava creatures.

--------------------------------------------------------------------------------
3a4159644b | dshaligram | 2008-07-20 17:21:09 +0000

Pan overhaul: Allow monsters (including player ghosts) to use fire storm and 
ice storm, give Lom Lobon ice storm and Cerebov fire storm. Lom Lobon also gets 
conjure ball lightning.
Mnoleg gets Summon Horrible Things instead of polymorph/shadow creatures.

Gloorx gets symbol of torment instead of summon demon.

Hellion hellfire burst now behaves the same way for both hellion vs player and 
hellion vs monster.

Merged monster vs player and m vs m handling for direct spell effects such as 
smiting.

--------------------------------------------------------------------------------
e57ab785ed | dshaligram | 2008-07-20 13:28:43 +0000

Save existing ghosts back to bones file even if player is undead.

--------------------------------------------------------------------------------
2eadd5f7cd | dshaligram | 2008-07-20 08:31:27 +0000

Restore passwall to something closer to its former glory.

--------------------------------------------------------------------------------
183112d982 | ennewalker | 2008-07-19 17:06:23 +0000

[2021500] This is not a fix for the "monsters you can't attack" issue, but it 
should work around the problem in the meantime.  If you see any debug 
diagnostic about "improperly placed monsters", please try to track down why it 
could have happened.

--------------------------------------------------------------------------------
ebfc665f47 | ennewalker | 2008-07-19 16:38:21 +0000

[2021911] Fixing leaked mitm from Tukima's dance.

--------------------------------------------------------------------------------
2b07e10acc | ennewalker | 2008-07-19 16:26:37 +0000

Fixing typo.  Thanks, Haran.  That's what I get for not retesting after I 
cleaned it up.

--------------------------------------------------------------------------------
db7f8369ee | ennewalker | 2008-07-19 16:17:03 +0000

[2021917] Fixing Lee's Rapid Deconstruction to handle map boundaries correctly.

--------------------------------------------------------------------------------
6f1723502b | ennewalker | 2008-07-19 15:56:30 +0000

[2021920] Fixing issue where swapping into a fire elemental and cancelling due 
to the cloud still moved the fire elemental but not the player.

--------------------------------------------------------------------------------
bd188fd76c | j-p-e-g | 2008-07-18 19:25:57 +0000

Fix Vampires draining small corpses not destroying said corpses. Very 
embarassing, that.

--------------------------------------------------------------------------------
dabb791452 | j-p-e-g | 2008-07-18 17:33:59 +0000

Add protection from mutations/negative energ to Zin's/TSO's description. 
Correct description of "Bend Space" - thanks, Markus!

--------------------------------------------------------------------------------
ee2dc294fa | j-p-e-g | 2008-07-18 16:59:55 +0000

Fix 2019873: Monsters picking up a second melee weapon if they already have 
one. (They now either upgrade or simply ignore a second weapon, unless 
dual-wielding.)
Fix 2021307: Really get in some butchering before you get interrupted.

--------------------------------------------------------------------------------
d910b3ca19 | dshaligram | 2008-07-18 14:28:10 +0000

[1936687] Show inscriptions for DESC_PLAIN (cbus).

--------------------------------------------------------------------------------
520d68077b | j-p-e-g | 2008-07-18 13:12:08 +0000

Extend Enne's blood potion destruction fix to potions on the floor. Fix 
monsters "upgrading" their ammunition even if its brand cancels out with the 
launcher. Also make sure monsters aren't generated with launcher/ammo with 
opposing brands. Fix 2021310: no longer disallow blowgun acquirement.

--------------------------------------------------------------------------------
33ca99ed15 | haranp | 2008-07-18 11:45:53 +0000

Fix 2021317: centaurs and naga shouldn't be wearing gold.

--------------------------------------------------------------------------------
de09bd8580 | ennewalker | 2008-07-18 05:15:02 +0000

Fixing infinite loop in _handle_behaviour.

--------------------------------------------------------------------------------
db1adf4931 | ennewalker | 2008-07-18 04:36:23 +0000

Fixing blood potion timer/quantity mismatch caused by potion shattering.

--------------------------------------------------------------------------------
c7100ea356 | dshaligram | 2008-07-18 04:24:13 +0000

Silenced valgrind warning noises, probably harmless.

--------------------------------------------------------------------------------
5409f9e2f9 | haranp | 2008-07-17 21:09:54 +0000

Fix item_is_equipped() identifying nonequipped as equipped.

--------------------------------------------------------------------------------
c73877b03f | haranp | 2008-07-17 20:58:44 +0000

Refix food eating issue bug introduced by my previous fix of it.

--------------------------------------------------------------------------------
9833d48b6c | haranp | 2008-07-17 20:10:59 +0000

Fix 2020680: don't leak evilness of venom weapons. [wjrogers]

--------------------------------------------------------------------------------
df7277971d | haranp | 2008-07-17 20:01:57 +0000

Fix for 2020876: num_diff_runes was being calculated incorrectly.

--------------------------------------------------------------------------------
3e5fbd50de | zelgadis | 2008-07-17 17:12:41 +0000

Do "keypress -> command_type" via keybindings.  Solves bug 2018200, where you 
couldn't do macros with the old 3.4 keymap since the 3.4 keys were done via 
macros and macros can't recursively invoke macros. Has the little snag that it 
doesn't exactly reproduce the 3.4 "fire ammo" command since 3.4 automatically 
goes to the inventory list but 4.0 doesn't.
TODO:
* Get levelmap commands to use keybindings instead of hardcoded
  mappings.
* Let function keys and alt keys be bound to commands.

--------------------------------------------------------------------------------
1210d4439b | j-p-e-g | 2008-07-17 07:37:27 +0000

Apply DOS fixes to trunk.

--------------------------------------------------------------------------------
d05ad02e6c | j-p-e-g | 2008-07-17 07:34:30 +0000

Fix 2018458: Portal projectile not handling branded ammo or nets. Fix 2019803: 
cold/fire destroying all susceptible items on the floor Change "You don't eat 
raw eat!" to "Blech - you need greens!"
Also:
Experimentally change sacrifices to take only 1 turn again, no matter
how many corpses are actually sacrificed during this turn. Allow
chained 'yes' and 'no' answers during the butchering prompt, so that
'cccccc' is now really functionally identical to 'ca'.
In another return to previous handling, always get in that first turn of 
butchering for a single corpse (or the first corpse in butcher chains), 
so it takes a maximum of 3 turns rather than 4. Same for draining corpses 
as a Vampire: when draining corpses you get at least a little bit of 
nutrition out of it before you are interrupted.

--------------------------------------------------------------------------------
e14b5260df | haranp | 2008-07-16 23:45:54 +0000

Fix 2019860: beef jerky wasn't considered meat. Fix 2019581: weapon flavour was 
flowing through to subsequent attacks. Fix 2001572: persistent --more-- after 
dying to explosions.

--------------------------------------------------------------------------------
5bc26d2ec8 | dolorous | 2008-07-16 05:27:52 +0000

Only display the explanatory messages when sacrificing items if the player 
tries to sacrifice some items that his god doesn't like.  This avoids e.g. 
getting such messages when praying to Nemelex while trapped in a net.

--------------------------------------------------------------------------------
cc35b4346c | dolorous | 2008-07-16 03:47:42 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
442a5ea768 | dolorous | 2008-07-16 02:34:07 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
9555f78291 | j-p-e-g | 2008-07-15 22:25:11 +0000

Fix Evaporate prompt doing the opposite of the player's answer. Fix some more 
instances of crashes resulting from PROMPT_NOTHING. Change shadow dragon corpse 
type to rotting.

--------------------------------------------------------------------------------
420044b3c1 | j-p-e-g | 2008-07-15 20:15:55 +0000

Fix bad potions not counting as useless and thus being auto-picked up. Fix bad 
message when using 'W' with no armour and crash when attempting to enchant 
armour with no enchantable armour in inventory. Tweak '{' to only prompt if at 
least one of autoinscription or clearing an existing inscription apply. (FR 
2017541)

--------------------------------------------------------------------------------
e5f0d4e5bd | dolorous | 2008-07-15 19:42:27 +0000

Fix dolinks.sh to properly use different directories again when building the 
normal and wizard binaries.

--------------------------------------------------------------------------------
d1fe64be4d | dolorous | 2008-07-15 19:00:57 +0000

Vastly simplify dolinks.sh and domake.sh.

--------------------------------------------------------------------------------
c607f86c30 | j-p-e-g | 2008-07-15 18:31:03 +0000

Fix 2018757: Bat form not deactivating jewellery effects

--------------------------------------------------------------------------------
3363a19596 | dshaligram | 2008-07-15 17:34:50 +0000

[2018522] Fixed Lua marker deserialisation bug caused by unmarshallLong not 
expecting 64-bit longs.

--------------------------------------------------------------------------------
f1b8877701 | dolorous | 2008-07-15 16:21:41 +0000

Resync the Unix console and tiles makefiles, and use $(COPY) consistently.

--------------------------------------------------------------------------------
dba89514fa | haranp | 2008-07-15 14:42:29 +0000

Fix 2018706: hell effects aren't the player's fault.

--------------------------------------------------------------------------------
e2abd51de8 | dolorous | 2008-07-15 14:31:30 +0000

Adjust build scripts to account for the tiles build changes.

--------------------------------------------------------------------------------
3fbed51718 | haranp | 2008-07-15 13:44:58 +0000

Possible fix for 2018522.

--------------------------------------------------------------------------------
968b72f7e4 | j-p-e-g | 2008-07-15 13:27:09 +0000

Fix 2018325 (compiling with gcc 4.3) by applying the patch by nathanj439. 
Re-enable friendly pickup toggle for all characters and change wording to make 
it clearer it may have no effect. (Fixes 2018493.)

--------------------------------------------------------------------------------
cfdd70607a | dploog | 2008-07-15 11:53:45 +0000

Another bug fix to the colouring.

--------------------------------------------------------------------------------
e1930b24b4 | j-p-e-g | 2008-07-15 11:32:58 +0000

Fix dangling inscription for coagulated blood. Properly use settings to decide 
whether to pick up useless or inedible stuff rather than forcing autopickup to 
be forbidden.

--------------------------------------------------------------------------------
5cd3548ac8 | dploog | 2008-07-15 11:14:48 +0000

Inventory colouring (Markus).

--------------------------------------------------------------------------------
9dbc262735 | haranp | 2008-07-15 10:13:01 +0000

Fix 2018338: your own beam shouldn't be uncertain about your position.

--------------------------------------------------------------------------------
af3cd3ff34 | ennewalker | 2008-07-15 04:07:07 +0000

Large tiles-related changes.  Platform-specific rendering removed and replaced 
with SDL/OpenGL.

--------------------------------------------------------------------------------
71ed1a7fd6 | dolorous | 2008-07-15 03:56:15 +0000

Fix wording.

--------------------------------------------------------------------------------
3afc16e7cf | zelgadis | 2008-07-15 00:06:02 +0000

Bug 2017912: fix item quote taking up too much screen space.  A hack until     
quotes are separated out into their own DB.
Also, don't use item quotes when doing an item dump or during tutorial.

--------------------------------------------------------------------------------
762270f5b0 | dploog | 2008-07-14 22:35:35 +0000

Update CREDITS.

--------------------------------------------------------------------------------
54c0cf2f50 | j-p-e-g | 2008-07-14 20:01:25 +0000

Apply Yelve Yakut's patch to improve the shop interface. Selecting stuff now 
works like the drop or pickup menu (or like a cart in any shop in RL, if you 
will) in that you can add or remove stuff, and the game will even tell you how 
much you have left and what else you can afford. Very cool stuff!
Known bugs: 
* Since you now buy a lot of stuff at the same time and there's a shortage 
  of space in the shopping interface I've merged all bought items into one 
  line (using comma_separated_line). This has the unintended side effect
  that you can no longer note which items you bought because this message
  can be longer than a single line. Rather than printing each bought item
  on a single line, I'd rather add a NOTE_BOUGHT case that is optional and
  also tracks what you paid for said item.

* If you buy several packages of the same item type, the output doesn't
  yet merge them, so you'll get "You bought 1 potion of heal wounds, 1
  potion of healing, and 1 potion of heal wounds."

--------------------------------------------------------------------------------
e0b40c1af2 | j-p-e-g | 2008-07-14 16:14:41 +0000

Fix 2018066: Crash when "autoinscribing" non-artefacts. Fix 2017743: Game 
hanging for "good random choices" for Thieves/Wanderers

--------------------------------------------------------------------------------
d0fa191c0a | j-p-e-g | 2008-07-13 23:33:29 +0000

Update pdf files. Apply Will's patch for sorting by identifed status. Fix a few 
oddly broken monster descriptions.

--------------------------------------------------------------------------------
03a3fe1c4f | ennewalker | 2008-07-13 23:26:39 +0000

[2017260] Fixing message alignment issue with extra space on some lines.

--------------------------------------------------------------------------------
ba0525c224 | dolorous | 2008-07-13 21:21:52 +0000

Fix wording.

--------------------------------------------------------------------------------
42fac262d9 | dolorous | 2008-07-13 20:24:49 +0000

Add more documentation updates for Ctrl-G/G.

--------------------------------------------------------------------------------
f9d71155f4 | j-p-e-g | 2008-07-13 19:53:17 +0000

Fix the monster list not updating if no monsters are left, i.e. if you just 
killed the last one. (Whoops!)

--------------------------------------------------------------------------------
5006c1e3f3 | j-p-e-g | 2008-07-13 19:38:46 +0000

Fix 2017251: The annotation prompt not escaping properly. Fix 2016627: Ranged 
weapons of protection autoIDing when wielded by monsters. Fix the double prompt 
when using Ctrl-P in the quivering interface (part of BR 2017260), fix 
targetting via monster list to be turned off if there are no monsters in sight, 
and map auto-travel to both G and Ctrl-G. (The monster list command moves to 
V.) Again, I'm not sure I got all the relevant documentation.

--------------------------------------------------------------------------------
3d4a6ad0b4 | dshaligram | 2008-07-13 19:26:17 +0000

Fixed wands with many charges losing charges on recharge attempt.

--------------------------------------------------------------------------------
040426a120 | dolorous | 2008-07-13 15:23:19 +0000

Clean up cast_fragmentation().

--------------------------------------------------------------------------------
f48cb619b2 | dshaligram | 2008-07-13 14:35:40 +0000

Give amphibians movement speed boost in water, give deep elf master archers a 
very fast missile attack.

--------------------------------------------------------------------------------
9b3b399350 | dploog | 2008-07-13 14:28:24 +0000

Made Castle D:3-27 (instead of 2).

--------------------------------------------------------------------------------
421b252829 | dploog | 2008-07-13 12:23:44 +0000

Mention I in ?? help. Allow I as toggle in the I and Z? screens.

--------------------------------------------------------------------------------
edd90f1bc8 | dploog | 2008-07-13 11:58:05 +0000

Update CREDITS.

--------------------------------------------------------------------------------
9d4a3d3e2f | dolorous | 2008-07-12 22:11:49 +0000

Add documentation updates from Markus Maier.

--------------------------------------------------------------------------------
359c2020d2 | dolorous | 2008-07-12 21:37:14 +0000

Fix [2016787]: Don't prompt twice for Lee's Rapid Deconstruction.

--------------------------------------------------------------------------------
25af4f1ce0 | dolorous | 2008-07-12 16:05:25 +0000

Fix more tutorial errata.

--------------------------------------------------------------------------------
e1ba5b4204 | dolorous | 2008-07-12 15:39:34 +0000

Fix [2016529]: Minor tutorial errata.

--------------------------------------------------------------------------------
c09f4c480d | j-p-e-g | 2008-07-12 07:11:08 +0000

Fix Nemelex' description.

--------------------------------------------------------------------------------
024369e530 | ennewalker | 2008-07-12 03:15:55 +0000

More release issues.  Adding more missing doc files into 'make install' for 
Windows.  Adding PCRE to DOS builds by default.  Fixing DOS build error due to 
DJGPP brain damage.

--------------------------------------------------------------------------------
99a0db4727 | ennewalker | 2008-07-12 01:50:33 +0000

Fixing release-related issues.  libpcre wasn't being linked statically for 
Win32 tiles builds.  Neither Win32 build was copying the doc during a 'make 
install'.

--------------------------------------------------------------------------------
7539c15678 | ennewalker | 2008-07-11 22:57:52 +0000

Enabling PCRE in Windows makefiles.  Because we release with libpcre enabled, 
it makes sense to have that be on by default.

--------------------------------------------------------------------------------
67542af0f2 | ennewalker | 2008-07-11 22:05:06 +0000

[1920450] Implementing colour option on Windows console version (i.e. 
colour.brown = red).

--------------------------------------------------------------------------------
cccab63594 | j-p-e-g | 2008-07-11 19:13:10 +0000

Fix README.txt not being readable from the in-game help.

--------------------------------------------------------------------------------
82994f85ce | j-p-e-g | 2008-07-11 16:15:34 +0000

Change travel command back to Ctrl-G as per FR 2016089. Lemuel is right in that 
'G' needs just as many keypresses as 'Ctrl-g' (other than Ctrl-O -> o) and that 
it should follow the same pattern as the comparable commands (Ctrl-F, Ctrl-W).
If I've overlooked other places where this command is mentioned
they need to be updated.

--------------------------------------------------------------------------------
e8be657dec | ennewalker | 2008-07-11 15:59:32 +0000

[2013519] Fixing auto-travel problems.  There were two issues here.  One was 
that going up stairs wasn't updating the correct stair on the previous level.  
Secondly, sync_branch_stairs was destroying that update anyway.  Added a 
"clear_branch_stairs" function to clear stair info when leaving the vestibule.  
I am nearly sure this should fix all of the hellish travel issues, but it 
probably deserves some testing.

--------------------------------------------------------------------------------
42a287ebc7 | j-p-e-g | 2008-07-11 15:32:32 +0000

Some more tweaks to starting equipment and skills.

--------------------------------------------------------------------------------
f35e944cc2 | dolorous | 2008-07-11 14:35:42 +0000

Go back to consistently pluralizing "dwarf" as "dwarves".

--------------------------------------------------------------------------------
6622dd9e48 | j-p-e-g | 2008-07-11 13:00:50 +0000

Add missing amulet types to autopickup_exceptions.txt (BR 2013462) Add short 
descriptions of Makhleb's powers. Fix wrong colouring of single level 
resistances. (BR 2015107)

--------------------------------------------------------------------------------
5da77fd18e | j-p-e-g | 2008-07-11 12:31:08 +0000

Fix 2015315 by not even bothering to prompt for spells with the SPFLAG_NOT_SELF 
flag.

--------------------------------------------------------------------------------
f16aa92587 | dolorous | 2008-07-11 04:32:31 +0000

Properly identify the brands of thrown missiles, so that e.g. javelins that 
turn into bolts of ice when thrown will be identified as javelins of ice.

--------------------------------------------------------------------------------
db751caa96 | dolorous | 2008-07-11 03:40:25 +0000

Add more dwarf pluralization fixes.

--------------------------------------------------------------------------------
9208b73b25 | dolorous | 2008-07-10 22:26:16 +0000

Add dwarf pluralization fixes.

--------------------------------------------------------------------------------
0a9ec3fba7 | dolorous | 2008-07-10 21:27:42 +0000

Make changes.stone_soup use eol-style: native.

--------------------------------------------------------------------------------
29930df4aa | dolorous | 2008-07-10 16:38:16 +0000

Document new orcish idol color.

--------------------------------------------------------------------------------
59b261360a | j-p-e-g | 2008-07-10 16:27:35 +0000

Remove yet another debugging statement. *sighs*

--------------------------------------------------------------------------------
5a45e3bd8e | j-p-e-g | 2008-07-10 16:18:59 +0000

Fix occasional jelly crash on unarmed characters. Fix quiver hanging on 
unthrowable missiles (e.g. javelins, nets for small species).

--------------------------------------------------------------------------------
9c54579bf0 | dolorous | 2008-07-10 16:08:53 +0000

Fix [2014538]: Properly mark Makhleb's lightning strike as an explosion, as is 
already done with Xom's, so that it doesn't miss as often.

--------------------------------------------------------------------------------
65b6a91d63 | dolorous | 2008-07-10 14:48:53 +0000

Describe items considered evil by the good gods as such in the inventory 
description screen.  This should fix [2014399].

--------------------------------------------------------------------------------
ddbb6f54b0 | j-p-e-g | 2008-07-10 10:46:18 +0000

Apply Markus' docs patch. Update religious secondary choices.

--------------------------------------------------------------------------------
a1a9d5da91 | dolorous | 2008-07-10 02:42:12 +0000

Properly display all of TSO's divine shield fading messages in the duration 
channel.

--------------------------------------------------------------------------------
9c5577d08a | j-p-e-g | 2008-07-10 00:29:12 +0000

Add several complicated restrictions to the starting gods. Yes, this is 
probably done in a needlessly redundant way, but I'm tired and cranky, so 
please do forgive me. Might be buggy, thus won't apply to 0.4 yet.

--------------------------------------------------------------------------------
ed4dfd0a41 | dolorous | 2008-07-09 23:08:18 +0000

Implement sorear's suggestion that "all monsters for which mons_species(m) != m 
should have Z_NOZOMBIE."  In the process, fix [2013860] by making Killer Klowns 
leave human corpses.

--------------------------------------------------------------------------------
e2df3ce90a | dolorous | 2008-07-09 21:20:19 +0000

Consistency fix: Since dead generic trolls produce big zombies, Snorg should, 
too.

--------------------------------------------------------------------------------
83749c5d23 | j-p-e-g | 2008-07-09 20:56:52 +0000

Fix 2014303: Vampire hunger properties Fix 2014275: Sif Muna giving manuals Fix 
2013914: Draconians merging incorrectly
Also, at the start of a tutorial game change all secret doors within a
radius of 10 into closed doors, to avoid players encountering a dead-end
really close to the entry. (And yes, I've had that happen.)

Change display of forbidden choices in the character selection menus. It
should now be clearer what's going on.

--------------------------------------------------------------------------------
eff8f68d9b | dolorous | 2008-07-09 19:58:13 +0000

Make holy beings turn hostile if you start worshipping a non-good god, or no 
god, even if you weren't worshipping a good god before, so that if Xom has sent 
you one, and you dump him for an evil god, it'll turn on you properly.

--------------------------------------------------------------------------------
8ce32d803c | zelgadis | 2008-07-08 22:45:51 +0000

If a map marker has the property "connected_exclude" then it will be excluded 
from find_connected_xyz() unless it's the starting square. Used in the "Evil 
zoo" mini-vault (minivault_9) so that each door opens and closes separately 
rather than all of them forming a huge gate which opens all at once.

--------------------------------------------------------------------------------
05d493c92b | haranp | 2008-07-08 20:56:45 +0000

Make text files use eol-style: native. [2013350]

--------------------------------------------------------------------------------
379b2efa74 | j-p-e-g | 2008-07-08 20:03:41 +0000

More documentation updates for trunk.

--------------------------------------------------------------------------------
a1dd025c4e | j-p-e-g | 2008-07-08 19:20:33 +0000

Update README files (courtesy of David), some minor tutorial corrections, and 
make Xom ignore your attempts to amuse him by deliberately casting spells at 
yourself. (Rebounding lightning bolts will still amuse him.)

--------------------------------------------------------------------------------
f9b9c28845 | j-p-e-g | 2008-07-08 12:27:59 +0000

Don't equip Spriggans with knives since they don't need a butchering tool, and 
make pure casters not wield said knife (they're unarmed instead). Hunters now 
start wielding their sling/bow/crossbow. Hunters starting without a launcher 
will still be wielding their dagger. Update the tutorial accordingly, i.e. you 
might not have to switch weapons now to fire your bow.
Also, unrestrict Centaur Paladins.

--------------------------------------------------------------------------------
d8a3aef168 | j-p-e-g | 2008-07-08 11:56:10 +0000

Fix 2008976: Unlinked items after area_shift()

--------------------------------------------------------------------------------
4a90639598 | dploog | 2008-07-08 09:47:37 +0000

/ Direction is not available in the level map (as / cycles items). Update of 
help and documentation.

--------------------------------------------------------------------------------
b2dc31e6ce | dploog | 2008-07-08 09:33:31 +0000

Only one minotaur per labyrinth.

--------------------------------------------------------------------------------
d9ea814e81 | j-p-e-g | 2008-07-08 08:29:23 +0000

Add some of the missing descriptions for various abilities. The only ones 
missing now are Makhleb's powers. Never having played him I don't know what 
they do. They're a bit random, right?
Also, what is the difference between Peek Two and Mark Four? With one
you draw, mark and shuffle two cards, with the other four, and both
identify the deck. What's the big deal?

--------------------------------------------------------------------------------
8b35f4c9a5 | j-p-e-g | 2008-07-08 07:36:20 +0000

* Fix logic error in x_chance_in_y (BR 2013029) * Fix crash from vampire bite 
(BR 2013112) * Remove milestone for "escape from the Abyss" as a Lugonu CK (BR 
2009840) * Overhaul eating prompt (BR 2012809), now allows direct access to   
inventory and is a bit cleaner. I'll probably revert my changes to   
yesnoquit() now they're not needed anymore.

--------------------------------------------------------------------------------
d0650b984a | j-p-e-g | 2008-07-08 00:25:58 +0000

Save macro.txt and wininit.txt in the settings folder, both using the macro_dir 
option. We might want to rename said option.

--------------------------------------------------------------------------------
12c06e3c24 | j-p-e-g | 2008-07-07 23:13:05 +0000

Fix 2012822: Tutorial quirks.

--------------------------------------------------------------------------------
ccb9171b58 | j-p-e-g | 2008-07-07 14:23:40 +0000

Fix potions of decay created by mummy curse sometimes being inscribed. Change 
inscription prompt to work as intended by David, after all. :) Make manuals use 
a reading counter (plus2) that is initialized with 3 + random2(15). Once it 
reaches 0, the manual crumbles to dust.

--------------------------------------------------------------------------------
bdc37d28a4 | dolorous | 2008-07-07 13:44:28 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a99e2d6093 | dolorous | 2008-07-07 13:37:28 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
673859ea2e | j-p-e-g | 2008-07-07 12:38:16 +0000

Fix 2012088: Monsters "following" you from the Abyss to the wrong level. A few 
fixes to starting equipment and skills.

--------------------------------------------------------------------------------
167ae03b16 | j-p-e-g | 2008-07-07 11:58:54 +0000

Another clean up, and add some new weapon speech.

--------------------------------------------------------------------------------
33dc7cedd5 | j-p-e-g | 2008-07-07 00:35:55 +0000

Add a few comments.

--------------------------------------------------------------------------------
9242e32cfc | j-p-e-g | 2008-07-07 00:25:36 +0000

Fix the old issue of switching to the butchering tool before actually deciding 
on which corpse to butcher. Now, if there's no eligible tool to automatically 
switch to (or the autoswitch option is false) you get prompted at the beginning 
of the butchering routine but you don't actually switch weapons or take off 
your gloves until right before you start butchering. Obviously, the same 
applies when autoswitching. This means you don't lose a turn anymore if you 
change your mind in-between.
I really hope I haven't introduced other bugs this way but a fix was
badly in need since I'd changed the automatic weapon swap to take a turn
just as the manual swap does.

Also fix swap_when_safe so that it also working when the real weapon is 
on slot 'a' (== 0) which will probably be the norm rather than an
exception.

--------------------------------------------------------------------------------
df7f0e866d | haranp | 2008-07-06 22:12:01 +0000

Fix a couple of typos.

--------------------------------------------------------------------------------
d40c13fe95 | j-p-e-g | 2008-07-06 22:00:57 +0000

Remove some of my infamous debugging statements (I keep forgetting them!) and 
move the new pdf files around, renaming contact.pdf to README.pdf since it's 
the shorter version of readme.txt, also capitalized now.

--------------------------------------------------------------------------------
7d423aef81 | j-p-e-g | 2008-07-06 21:21:30 +0000

Fix 2011722: Reallow targetting beams such that you may be hit. (There's a new 
prompt now, but don't prompt a second time if you already confirmed another one 
before.) Fix some issues when creating items in the Abyss during 
GDT_GAME_START. This may or may not have played a role in 2008976.
Lower spawning rate in the Abyss during GDT_GAME_START (10% spawning
chance instead of guaranteed spawning per 5 turns).

--------------------------------------------------------------------------------
44d7fbb36c | j-p-e-g | 2008-07-06 20:14:35 +0000

Fix 1870427: Max hp misreported if frail and rotted. Fix 2002931: 
feature_item_brand not working
No, it's not the important bugs, but at least these are bugs I can
reproduce. :P

--------------------------------------------------------------------------------
b847d4bad8 | dolorous | 2008-07-06 18:02:56 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
56feeabfd1 | dolorous | 2008-07-06 18:00:27 +0000

Add comment.

--------------------------------------------------------------------------------
84866d5434 | j-p-e-g | 2008-07-06 17:34:17 +0000

Fix 2010077: Increase respawning rates again.

--------------------------------------------------------------------------------
f2bec3cbdf | j-p-e-g | 2008-07-06 17:12:09 +0000

Fix two erroneous replacements with x_chance_in_y(). The rest were correct.

--------------------------------------------------------------------------------
200b4c0e08 | j-p-e-g | 2008-07-06 16:47:06 +0000

Add a function x_chance_in_y(x,y) to replace the various random2(y) < x checks, 
e.g. x_chance_in_y(weight, totalweight). This should make things a bit more 
readable. Apply it to a number of files.

--------------------------------------------------------------------------------
7f2ded9323 | dolorous | 2008-07-06 16:10:45 +0000

Add yet another spacing fix.

--------------------------------------------------------------------------------
d1e4fc1f9a | dolorous | 2008-07-06 14:32:42 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
5271453009 | dolorous | 2008-07-06 14:12:01 +0000

Fix [2011576]: The "Which direction?" prompt is no longer given twice for 
spells that are wrappers around burn_freeze() (e.g. Freeze).

--------------------------------------------------------------------------------
75ac5233e9 | dolorous | 2008-07-06 14:07:21 +0000

Add another spacing fix.

--------------------------------------------------------------------------------
247ea07854 | dolorous | 2008-07-06 14:06:11 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
84b3d0494c | dolorous | 2008-07-06 14:05:39 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
660d7466ae | dolorous | 2008-07-06 13:19:52 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
cb950d928f | dolorous | 2008-07-06 13:08:10 +0000

Only let Elyvilonite players automatically target enemy monsters for healing, 
as only they can pacify enemy monsters that way.

--------------------------------------------------------------------------------
960323c5b0 | j-p-e-g | 2008-07-06 11:03:21 +0000

Fix 1945389: Detect Creatures not clearing monsters detected on changed terrain.

--------------------------------------------------------------------------------
6efc5c639a | dolorous | 2008-07-06 04:09:28 +0000

Add spelling fixes.

--------------------------------------------------------------------------------
c0bdfd7fc7 | dploog | 2008-07-06 00:37:36 +0000

Added the screen files necessary for quickstart.tex, and moved the whole bunch 
into source/utils/docs/

--------------------------------------------------------------------------------
4a4e24a9ce | dploog | 2008-07-06 00:16:09 +0000

Added three printable files (contact, key changes, quickstart) and put them 
into the new pdf/ directory. The corresponding tex files are in source/utils/ 
(feel free to rename the files, or move them to better locations).

--------------------------------------------------------------------------------
0c43dbe213 | dolorous | 2008-07-05 22:32:02 +0000

Add spacing fix.

--------------------------------------------------------------------------------
732ba8ca51 | dolorous | 2008-07-05 20:35:01 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
3119cff6c9 | dolorous | 2008-07-05 20:28:11 +0000

Fix [2011384]: Make Xom's divine lightning conditional on dangerous monsters' 
being nearby again.

--------------------------------------------------------------------------------
08c06de078 | dolorous | 2008-07-05 16:52:29 +0000

Typo fix.

--------------------------------------------------------------------------------
d40afa4763 | ennewalker | 2008-07-05 16:39:16 +0000

[2000669] Fixing logic error that may have caused untargetable resting monsters 
to be created.  If place_monster was called with force_pos, it could create 
monsters on top of other monsters.  If that monster was resting (and thus never 
moved) and the first monster did move, the first monster would set mgrd to 
NON_MONSTER, making the resting monster untargetable.

--------------------------------------------------------------------------------
f6604b9ce1 | dolorous | 2008-07-05 16:33:14 +0000

Simplify.

--------------------------------------------------------------------------------
87c95a753d | ennewalker | 2008-07-05 14:53:04 +0000

[2010192] Fixing issue where cancelling a ranged attack (e.g. "Really fire 
on...?") wouldn't really cancel the attack. Also, 
s/beam_stopped/beam_cancelled/ for clarity.

--------------------------------------------------------------------------------
086e548103 | j-p-e-g | 2008-07-05 13:27:28 +0000

Fix 2011201: Disallow summoned orcs from joining a worshipper of Beogh. Fix 
2011258: Consolidate named orcs correctly in the monster list. Fix 2010542: 
Patrolling monsters forgetting the player too quickly.

--------------------------------------------------------------------------------
9905c3fa45 | dolorous | 2008-07-05 12:52:22 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
159bffb983 | j-p-e-g | 2008-07-05 12:07:57 +0000

Update a number of secondary choice restrictions (books and weapons).

--------------------------------------------------------------------------------
42376a825a | j-p-e-g | 2008-07-05 10:40:11 +0000

Fix Death Knights of Yredelemnul starting with a book of Necromancy. (Reading 
"Something Awful" really pays off sometimes. :) )

--------------------------------------------------------------------------------
8cfb01c677 | j-p-e-g | 2008-07-05 10:32:34 +0000

Tweak some descriptions. Also: Some of the abilities don't have any 
descriptions yet, so if anyone has an idea, please add some. (Even bland 
one-liners are better than "has no description yet" but I've run out of ideas 
and am not even sure what most of the remaining ones do.)

--------------------------------------------------------------------------------
6602300000 | zelgadis | 2008-07-05 08:17:43 +0000

Bug 2011077: if the damage from a lightning bolt causes an orc to surrender to 
the player, don't give penance if the lightning bolt bounces and hits the now 
friendly orc.  Uses the same setup and logic as for preventing lightning 
bounces from causing penance with TSO.

--------------------------------------------------------------------------------
06980b6f26 | zelgadis | 2008-07-05 07:23:12 +0000

FR 2006559: fix descriptions of viewed monsters not always fitting into 24 
rows, like it was fixed for lookup (?/ command).
Also, fixed probem with zombies and other derived monsters not having
a description when viewed.

--------------------------------------------------------------------------------
01ec326983 | ennewalker | 2008-07-04 23:58:23 +0000

[2010990] [2010344] Fixing issues where a disconnected region would not be 
considered disconnected if it contained a branch entry.  The level builder 
should now properly veto this when it occurs.

--------------------------------------------------------------------------------
bf2e804278 | ennewalker | 2008-07-04 22:50:41 +0000

Modifying makefiles to allow user group and install dir to be overridden so 
that 'make install' can be used to build binary packages for release.

--------------------------------------------------------------------------------
67f07e0aa9 | ennewalker | 2008-07-04 22:23:20 +0000

[2010665] Fixing some delay_message_clear-related bugs.  Fixing issue (console 
and tiles) where colored output was not getting indented properly.
I also modified mpr_formatted_output to pass newline=true for the last bit of 
text when calling message_out.  I couldn't figure out how the console version 
was scrolling mpr_formatted_output and the tiles version was not.  However, any 
mpr function should always scroll the message window (in my opinion), so it 
seemed like the right thing to do.

Also, fixing a tutorial message color formatting typo.

--------------------------------------------------------------------------------
f86bc5241c | dolorous | 2008-07-04 21:24:13 +0000

Simplify.

--------------------------------------------------------------------------------
a6ed54f4d6 | j-p-e-g | 2008-07-04 21:15:40 +0000

Send wizards into the Dungeon wearing a proper wizard hat. David is right in 
that should not be too powerful for this comparatively weak class, and that it 
is immensely flavourful. :)

--------------------------------------------------------------------------------
0db561d39a | ennewalker | 2008-07-04 21:12:41 +0000

Modifying god description database so that each entry fits on a single line and 
can be formatted to the correct width later.

--------------------------------------------------------------------------------
4fe22d8c45 | ennewalker | 2008-07-04 20:37:52 +0000

[1997205] Fixing issue where monsters could be placed in walls.  Also, 
consolidated repeated "is this a valid location" logic into a single function.

--------------------------------------------------------------------------------
12b8d160c6 | dolorous | 2008-07-04 16:02:21 +0000

Remove redundant bits: The poison and electricity resistance mutations have 
only one level, so don't bother trying to give or take more than one level of 
them.

--------------------------------------------------------------------------------
ca98a8399e | j-p-e-g | 2008-07-04 14:47:09 +0000

Disallow vampires from draining summoned creatures to be consistent with 
summoned creatures being incapable of bleeding on the floor. This makes things 
more difficult for Vampires; on the other hand there was a (more or less) 
recent change that lets them regain 1 hp *per turn* when draining corpses. We 
might also increase the duration of blood potions...
Apart from that, various clean-ups.

--------------------------------------------------------------------------------
7326d539ae | dolorous | 2008-07-04 13:42:28 +0000

Change gladiator description, since they don't get caps anymore.

--------------------------------------------------------------------------------
29f5ac40ce | dploog | 2008-07-04 11:53:07 +0000

Remove commented out lines.

--------------------------------------------------------------------------------
03ca9e165e | dploog | 2008-07-04 11:47:19 +0000

Fixed tutorial (Markus).

--------------------------------------------------------------------------------
babee7c35f | j-p-e-g | 2008-07-04 09:12:43 +0000

Restrict DrMo, unrestrict DrFE and DrIE. Disallow the creation of caps for 
Gladiators - species who can't wear helmets just don't get them now. Uncomment 
debugging option in monster placement. However useful (and necessary) it may be 
at the moment, it has no place in trunk.

--------------------------------------------------------------------------------
c959c13985 | j-p-e-g | 2008-07-04 08:25:43 +0000

Update mentions of classes' starting equipment.

--------------------------------------------------------------------------------
2200f464de | j-p-e-g | 2008-07-04 08:06:29 +0000

Tweak change log a bit and add new commands to 034_changes.txt. Are there more 
new commands I've forgotten? Please don't include wizmode commands as they 
don't matter during normal game.

--------------------------------------------------------------------------------
b8b2bb9e38 | dolorous | 2008-07-04 03:40:17 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
8d0fe3419d | dolorous | 2008-07-04 03:32:19 +0000

Improve the manual's description of hunters.

--------------------------------------------------------------------------------
213a33156b | dolorous | 2008-07-04 02:37:33 +0000

Make Xom's vitrification effect less common, as it's a lasting effect.

--------------------------------------------------------------------------------
74f34f0df5 | dolorous | 2008-07-04 01:50:16 +0000

Remove apparent debugging statement.

--------------------------------------------------------------------------------
fc8ac3868f | dolorous | 2008-07-04 01:30:40 +0000

And do the same for the documentation.

--------------------------------------------------------------------------------
4f24bddbe0 | dolorous | 2008-07-04 01:27:02 +0000

Add spelling fixes where possible: "gray" -> "grey".

--------------------------------------------------------------------------------
e2a897ff86 | dolorous | 2008-07-04 01:10:28 +0000

In mutation_name(), display the species-specific special cases properly (e.g. 
trolls' having claws sharper than steel for hands).

--------------------------------------------------------------------------------
1f78bee017 | dolorous | 2008-07-04 00:19:00 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
7335e509d0 | zelgadis | 2008-07-04 00:13:03 +0000

Oops, should change you.pet_target before calling behaviour_event(), not after.

--------------------------------------------------------------------------------
9cb75b7065 | zelgadis | 2008-07-03 23:53:53 +0000

FR 1971637: make "stash_track_decay = true" and "stash_remove_decay = true" the 
hardcoded behaviour and remove the options, meaning that rotted-away flesh 
chunks will always be removed from the stash tracker.

--------------------------------------------------------------------------------
973e167e60 | zelgadis | 2008-07-03 23:49:32 +0000

Sanctuary now reveals all traps within its area, not just those in LOS.

--------------------------------------------------------------------------------
19283b0b95 | j-p-e-g | 2008-07-03 22:07:11 +0000

Fix 2008767: "random" not working for book choice option

--------------------------------------------------------------------------------
a32a2ae31d | j-p-e-g | 2008-07-03 21:18:44 +0000

Reorder species in newgame.cc (clean-up, no coding changes). Add known weapons 
of holy wrath as useless items for undead, likewise with weapons of pain for 
characters without Necromancy skill. (The latter only applies if the item is 
not an artefact.)

--------------------------------------------------------------------------------
5408e069ec | dolorous | 2008-07-03 20:23:03 +0000

Fix spelling.

--------------------------------------------------------------------------------
d8eeb07bf1 | dolorous | 2008-07-03 19:42:29 +0000

Clean up descriptions a bit more.

--------------------------------------------------------------------------------
ca9a2e31fa | dolorous | 2008-07-03 19:31:33 +0000

Update ammo descriptions to account for branded ammo's working when thrown.

--------------------------------------------------------------------------------
e31e50c63a | j-p-e-g | 2008-07-03 18:21:11 +0000

Fix 1999363: Vampire eating issues. Tidy up the new lines item descriptions a 
bit, so you don't get three free lines in some cases (non-randart, non-special 
description items) and one or two in other cases.

--------------------------------------------------------------------------------
b84db94066 | j-p-e-g | 2008-07-03 15:00:03 +0000

Remove debugging statement, minor clean up.

--------------------------------------------------------------------------------
e41cf44e27 | dolorous | 2008-07-03 14:59:42 +0000

Since thrown ammo of ice and flame finally work, enable javelins of flame and 
ice, since they finally work as well.

--------------------------------------------------------------------------------
1ae786a899 | j-p-e-g | 2008-07-03 14:41:49 +0000

Fix 2005590: Branded darts unbranded when thrown.
Thrown darts of ice or flame will correctly be displayed as puffs of
frost/flame, will do the appropriate damage both to player and monsters
and will be identified when thrown by a monster.

--------------------------------------------------------------------------------
cbb4198487 | j-p-e-g | 2008-07-03 13:33:58 +0000

Change butchering prompt to hopefully be less confusing (BR 2009022). Also add 
a key to some kind of butchering help (may need tweaking) and 'b' is yet 
another synonym for 'c' but will allow Vampires to butcher a corpse they'd 
otherwise bottle. This only works while the prompt is given, i.e. if 
always_confirm_butcher is false Vampires will automatically attempt to bottle 
the blood in a single corpse (unless that is impossible, in which case they'll 
butcher it instead).
Also fix corpses sometimes not being destroyed when drained by a
Vampire. (Big oops!)

--------------------------------------------------------------------------------
d21e4e79c2 | dploog | 2008-07-03 12:39:57 +0000

Mention feeding in Zin's ^! screen. Adjust all of gods.txt, going for full 
screen width rather than 72 columns (we are using the full screen for all Crawl 
ASCII output anyway). For some reason, this addresses 2009023. (Markus again)

--------------------------------------------------------------------------------
9a1c4cc0cb | dploog | 2008-07-03 11:49:31 +0000

Improve stash tracker help screen (Markus Maier).

--------------------------------------------------------------------------------
ffdd92ac1c | dploog | 2008-07-03 09:10:07 +0000

Elyvilon pacification was never intended to produce temporarily neutralised 
monsters (Zin's Recite may do that). Update !^ text to account for that.

--------------------------------------------------------------------------------
c26945bf2d | dolorous | 2008-07-03 03:05:44 +0000

Fix [2009377]: In _handle_behaviour(), initialize e_index to -1, so that we 
don't try to access a nonexistent stored level exit.

--------------------------------------------------------------------------------
84b38b08dd | dolorous | 2008-07-03 02:09:43 +0000

Fix pacified monsters' leaving the level when the player gets far enough away.

--------------------------------------------------------------------------------
d719be7cf7 | dolorous | 2008-07-03 00:50:36 +0000

Mark unreachable areas for pacified monsters in the right place.

--------------------------------------------------------------------------------
1d715e5904 | dolorous | 2008-07-02 23:48:38 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
b20f4404a1 | zelgadis | 2008-07-02 23:26:27 +0000

Give falvour message when invoking sanctuary removes bloodstains.
Reveal hidden traps inside sanctuary when it's first invoked if the
traps are in LOS.

--------------------------------------------------------------------------------
c2d07b732f | dolorous | 2008-07-02 23:10:52 +0000

Simplify.

--------------------------------------------------------------------------------
b7116fc428 | haranp | 2008-07-02 22:46:40 +0000

Fix bug introduced in r6347 (oops): igrd wasn't being cleaned when moving.

--------------------------------------------------------------------------------
be1fd6b9ee | zelgadis | 2008-07-02 22:37:48 +0000

Oops, wasn't properly shifting sanctuary center when doing an Abyss area shift.

--------------------------------------------------------------------------------
a3a8c0f837 | zelgadis | 2008-07-02 21:57:41 +0000

Add res_rotting() method to the actor class so that the "are you the right type 
of undead to resist rotting" logic can be in just one place instead of 
duplicated every time the check is made.

--------------------------------------------------------------------------------
72760b7751 | haranp | 2008-07-02 21:57:31 +0000

Fix 2009014: dwarven accessories could be overenchanted on generation. (OK, so 
it could be considered a feature.)

--------------------------------------------------------------------------------
5203a73785 | haranp | 2008-07-02 21:45:04 +0000

Fix 2007056 (misplaced cursor on colourful prompts.)

--------------------------------------------------------------------------------
b0ae4a2bfc | dolorous | 2008-07-02 21:03:53 +0000

And tweak it again.

--------------------------------------------------------------------------------
8459ae9cf2 | dolorous | 2008-07-02 20:27:23 +0000

Really fix pacified monsters' finding ways to blocked-off exits.  As part of 
this, put the random wandering around the target back in for now.

--------------------------------------------------------------------------------
7d7691a8ba | haranp | 2008-07-02 20:08:39 +0000

A few more cleanups.

--------------------------------------------------------------------------------
c437c2564a | dolorous | 2008-07-02 19:52:29 +0000

And clean up the previous improvements.

--------------------------------------------------------------------------------
4293d91bfd | haranp | 2008-07-02 19:51:50 +0000

Many code cleanups, mostly involving using stack_iterator and radius_iterator 
instead of the previous setup.

--------------------------------------------------------------------------------
8030e3981a | dolorous | 2008-07-02 19:31:49 +0000

Improve pacified monsters' routines for leaving the level again.  Remove death 
by submersion for now, since it's too specific to certain monsters, and leaving 
the level long enough will make them disappear anyway.  Also, have monsters 
sometimes cycle through previously unreachable areas again, in case things 
change on the level to make them reachable.

--------------------------------------------------------------------------------
67e107b864 | dolorous | 2008-07-02 18:34:42 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
8f24565555 | dolorous | 2008-07-02 17:05:53 +0000

Pacified monsters leaving the level shouldn't go out of their way to attack 
other monsters.

--------------------------------------------------------------------------------
22774755df | dploog | 2008-07-02 17:03:28 +0000

Two more changes to Nemelex descriptions.

--------------------------------------------------------------------------------
f2f0708daa | dolorous | 2008-07-02 16:33:46 +0000

Actually handle cases of unreachable exits for pacified monsters leaving the 
level.

--------------------------------------------------------------------------------
e40ab62d5a | dploog | 2008-07-02 14:55:31 +0000

Improve Nemelex descriptions (Haran).

--------------------------------------------------------------------------------
91dc165558 | dolorous | 2008-07-02 14:44:17 +0000

Tweak numbers again.

--------------------------------------------------------------------------------
49401e1869 | haranp | 2008-07-02 14:44:15 +0000

Added allow_self_target option, with possible values yes, no, prompt. Added 
brief documentation (could be improved.)

--------------------------------------------------------------------------------
e37ab8471f | j-p-e-g | 2008-07-02 14:39:19 +0000

Only apply targeting via monster list to spells and such where targeting 
monsters is actually needed.

--------------------------------------------------------------------------------
6a8469f3af | dolorous | 2008-07-02 14:35:45 +0000

Let pacified monsters wander again, although less often than other monsters, in 
case the way to the exit is blocked and they need to find another way there.

--------------------------------------------------------------------------------
783d701df6 | dolorous | 2008-07-02 14:27:05 +0000

Make the neutrality enchantment decay properly.

--------------------------------------------------------------------------------
c5ffdfb13f | dolorous | 2008-07-02 13:46:15 +0000

Comment fixes.

--------------------------------------------------------------------------------
b76663efc3 | j-p-e-g | 2008-07-02 13:43:22 +0000

Since there's currently only one type of portal vault (labyrinths are treated 
differently) change the gate description to "gateway to a bazaar", so the 
bazaar description can actually be searched for. Eventually we might like to 
include Labyrinths, portal vaults, the Abyss and Pandemonium in the branch 
descriptions.

--------------------------------------------------------------------------------
d764d49f10 | j-p-e-g | 2008-07-02 13:17:35 +0000

If a monster wields a non-branded launcher there is no message, so we *know* it 
is a plain one -> it is now auto-identified which enables us to autoidentify 
branded ammo shot from it.
Fix Trolls starting out wearing bucklers and remove the stat checks
during (normal) random weapon choice.

--------------------------------------------------------------------------------
1198a598b6 | dploog | 2008-07-02 13:07:54 +0000

Improve spelling of descriptions (thanks to 2008677). Made the description of 
royal jelly (the item) the same as that for the monster. Note that the 
descriptions for the bazaars (flickering or not) are evasive: I was unable to 
access them in /?f.

--------------------------------------------------------------------------------
445895d95d | j-p-e-g | 2008-07-02 12:48:15 +0000

Revert the change on ammo handling for Tiles, and replace it with a more 
generic logic that uses item tiles for BEAM_MISSILE, else bolts according to 
flavour. Identify monster fired ammunition ego if the launcher ego is known, 
not that it has much of an effect because plain ammo gets no special 
description. In the message list the fired item as it will look to the player 
(i.e. "arrow of ice" for a plain arrow fired off a bow of frost), even though 
the item actually dropped will still be a plain one. I hope this isn't too 
confusing. (And if it is, it should be easy to revert. :p)

--------------------------------------------------------------------------------
e6584efd5c | zelgadis | 2008-07-02 10:23:02 +0000

Oops, don't let pets swap or be swapped with other monsters if the player 
explictly told them to attack monsters in spite of sanctuary.

--------------------------------------------------------------------------------
494a1b9c81 | zelgadis | 2008-07-02 10:07:52 +0000

Don't let the player swap places with stationary monsters.
Let monsters inside sanctuary swap places if they're (probably) going
in opposite directions.

--------------------------------------------------------------------------------
bae5b88570 | zelgadis | 2008-07-02 07:13:12 +0000

Bug 2007644: necromanctic miscasts could cause an undead player to rot even 
though the undead should be immune to rotting.

--------------------------------------------------------------------------------
2bd3b24f23 | j-p-e-g | 2008-07-02 07:09:18 +0000

Remove darts for Spriggan Thieves (who get a rod instead).

--------------------------------------------------------------------------------
8890a085b3 | zelgadis | 2008-07-02 06:47:27 +0000

Bug 1999903: A labyrinth could be generated with two exits and two minotaurs 
because vault labyrinth_trapped_2 was tagged as an extra lab mini-vault rather 
than a vault with a minotaur and an exit.

--------------------------------------------------------------------------------
efc8378970 | zelgadis | 2008-07-02 06:27:57 +0000

Make your_spells() only give the "Invalid spell!" message if the spell type is 
truly invalid.  If it's a valid but monster-only spell:
1) If the user is in wizard mode then temporarily place a dummy monster
on the same square as the player and use it to cast the monster spell
(this lets monster spells be cast via wizard commands for testing
purposes).

2) If the user isn't in wizard mode then give the message
"Spell '[spellname]' is not a player castable spell.", which provides more
useful debugging info than just "Invalid spell!"

--------------------------------------------------------------------------------
592a6c88a4 | zelgadis | 2008-07-02 06:10:57 +0000

Make fake raksha summons invisible before checking player_angers_monster() so 
the player won't be told about enraged monsters s/he can't see.  Most probably 
can only occur as the result of wizard commands, but better safe than sorry.

--------------------------------------------------------------------------------
a384aae0f4 | zelgadis | 2008-07-02 04:49:15 +0000

If an explosion has its center in Sanctuary then give a message about Zin 
containing the explosion.  Mainly for miscast effects which cause explosions, 
but also catches the player casting spells which cause explosions.

--------------------------------------------------------------------------------
efa16086d7 | dolorous | 2008-07-02 04:33:02 +0000

Fix [2004924], using sorear's suggested method: Avoid doing fractional 
arithmetic in _exercise2() by pre-multiplying the factors by 10, which allows 
crosstraining to work properly when the experience pool isn't full.

--------------------------------------------------------------------------------
196478b990 | dolorous | 2008-07-02 04:23:43 +0000

Add still more miscellaneous minor fixes.

--------------------------------------------------------------------------------
eea780a4ce | zelgadis | 2008-07-02 03:32:49 +0000

Make berserking and non-living monsters stop retreating from Sanctuary as soon 
as they leave it, since they're being forced out rather than actually afraid.  
Also give a "stops retreating" message for them instead of the "regaining 
courage" one.
Remove faulty logic that was causing monsters to not notice the player
as soon as they stopped fleeing Sanctuary.

--------------------------------------------------------------------------------
635887d54e | dolorous | 2008-07-02 03:17:56 +0000

Add minor cleanup.

--------------------------------------------------------------------------------
2d839f1a1a | dolorous | 2008-07-02 03:15:40 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
26953d285f | dolorous | 2008-07-02 02:44:15 +0000

Since hostile monsters aren't supposed to violate sanctuary, move the message 
for it into a DEBUG_DIAGNOSTICS #ifdef.

--------------------------------------------------------------------------------
7bf26e5c3d | zelgadis | 2008-07-02 02:09:42 +0000

When doing an Abyss area shift try to preserve Sanctuary, unless the center of 
Sanctuary is outside of the area being preserved during the shift, in which 
case get rid of it.
When doing an Abyss teleport into a totally new Abyss area remove
sanctuary so the player can lay down a new on immediately, since the
old one will be completely gone.

--------------------------------------------------------------------------------
a99a3aecdf | dolorous | 2008-07-02 02:08:54 +0000

Typo fix.

--------------------------------------------------------------------------------
71ad92da61 | dolorous | 2008-07-02 02:07:37 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
d7a2cf1599 | dolorous | 2008-07-02 01:49:24 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
3b1cbcc423 | zelgadis | 2008-07-02 01:43:29 +0000

When laying down Sanctuary make all pets inside it stop attacking and move 
towards you.  You can get them to attack while inside Sanctuary by giving them 
an order to attack a specific monster, and if they do attack and violate 
Sanctuary then it will be removed.  Attempting to give such an order will give 
a warning that it might violate Sanctuary.
Prevent confused and berserking pets from violating Sanctuary, since you
can't order them not to.

Prevent monsters fleeing Sanctuary from attacking monsters which are
blocking their flight path.

The player attacking him/her-self because of confusion no longer vilates
Sanctuary.

--------------------------------------------------------------------------------
9c75e7f7e8 | dolorous | 2008-07-02 01:38:55 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
91219aa1d8 | dolorous | 2008-07-02 00:50:52 +0000

Fix compilation.

--------------------------------------------------------------------------------
d87ab3b04c | j-p-e-g | 2008-07-01 23:17:21 +0000

Reorder classes in yet another part of newgame.cc. Also, make DrBe restricted.

--------------------------------------------------------------------------------
9064de4ac5 | j-p-e-g | 2008-07-01 23:01:17 +0000

Fix minotaurs being able to wear helmets by initializing mutations before 
generating the starting equipment.

--------------------------------------------------------------------------------
9d50c76de5 | j-p-e-g | 2008-07-01 22:49:33 +0000

For Tiles, use some of the other wall types in the Abyss as well to make it 
more interesting. The rest is mostly clean-up.

--------------------------------------------------------------------------------
633a81c7f6 | dolorous | 2008-07-01 21:48:24 +0000

Per jpeg's suggestion, don't make pacified monsters wander around their target 
so often by ignoring the 1/20 chance of their doing so (unless the monster in 
question is batty).

--------------------------------------------------------------------------------
8bb521bee8 | dolorous | 2008-07-01 21:34:56 +0000

Fix wording.

--------------------------------------------------------------------------------
6744b86cdc | dolorous | 2008-07-01 20:52:05 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
1ba8b7b47d | j-p-e-g | 2008-07-01 19:34:49 +0000

Implement the rest of the starting set changes. I sure hope I got all of them.

--------------------------------------------------------------------------------
030f8cd07a | dolorous | 2008-07-01 19:32:34 +0000

Add still more minor manual updates.

--------------------------------------------------------------------------------
19e90c6c9c | dolorous | 2008-07-01 19:29:53 +0000

Fix wording.

--------------------------------------------------------------------------------
3ee9219771 | dolorous | 2008-07-01 19:24:15 +0000

Add more minor manual updates.

--------------------------------------------------------------------------------
0ed35f5f3a | dploog | 2008-07-01 19:11:12 +0000

Adapted class descriptions to the new design.

--------------------------------------------------------------------------------
209fbb5864 | dolorous | 2008-07-01 18:49:40 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2d331af3c1 | dolorous | 2008-07-01 18:47:41 +0000

Add punctuation fix.

--------------------------------------------------------------------------------
3d81bd7a6b | dolorous | 2008-07-01 14:59:59 +0000

Outsource the description of Xom's powers (so to speak) instead of hardcoding 
it.

--------------------------------------------------------------------------------
480d2ee923 | dolorous | 2008-07-01 14:53:22 +0000

Simplify.

--------------------------------------------------------------------------------
4ab0743df7 | j-p-e-g | 2008-07-01 14:51:30 +0000

Reorder classes in _give_items_skills() in newgame.cc to match that of the 
selection screen. Should be more sensible and easier to read this way.

--------------------------------------------------------------------------------
2dd7f14dcf | j-p-e-g | 2008-07-01 14:42:09 +0000

Implement the first part of the overhauled starting equipment and skills 
(non-magic characters): Fighter, Gladiator, Berserker, Paladin, Priest, Chaos 
Knight (*), Death Knight, Healer, Thief, Assassin, Hunter
*: Other than in the final layout (v4?) Trolls and Ghouls don't get
"claws" as a weapon choice here because I had no idea what to do with
the to-be-distributed enchantment points if they don't get a weapon.

--------------------------------------------------------------------------------
96e044e7bc | dolorous | 2008-07-01 14:31:08 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
5d680990c1 | dolorous | 2008-07-01 14:30:23 +0000

Typo fix.

--------------------------------------------------------------------------------
60f69de780 | dolorous | 2008-07-01 14:17:12 +0000

Comment fix.

--------------------------------------------------------------------------------
78f52b9e5b | dolorous | 2008-07-01 14:04:16 +0000

Add more message tweaks.

--------------------------------------------------------------------------------
9e3b39e56b | dolorous | 2008-07-01 13:39:29 +0000

Add capitalization fixes.

--------------------------------------------------------------------------------
f79f1dcbc3 | zelgadis | 2008-07-01 11:11:33 +0000

Make tracer beams call stop_attack_prompt() for foes as well as for friends, to 
check for attacking foes while in sanctuary.  The way it's done means that if 
you or an enemy is in sanctuary and the beam also passes through an ally then 
it will prompt you twice, once for the first friend and once for the first foe, 
but that shouldn't be too much of a problem.

--------------------------------------------------------------------------------
1531585b32 | zelgadis | 2008-07-01 11:00:06 +0000

Sanctuary prevents magic contamination (glow) bad effects from happening.

--------------------------------------------------------------------------------
f74a7316f9 | zelgadis | 2008-07-01 10:05:32 +0000

Stationary monsters can't flee, even from sanctuary.

--------------------------------------------------------------------------------
3e4e26b227 | zelgadis | 2008-07-01 09:26:40 +0000

Make initial sanctuary be circular in shape rather than square.
Remove non-harmless clouds when laying down sanctuary, and don't allow
non-harmless clouds to speard into sanctuary or be placed on it.

Don't let explosions spread into sanctuary (probably needs a flavour message).

If a giant spore or ball lightning somehow explodes while in sanctuary
then give a message about Zin containing it's explosion, and skip the
call to explosion().

--------------------------------------------------------------------------------
94e3fadcc3 | zelgadis | 2008-07-01 09:16:00 +0000

If mpr() is called with MSGCH_GOD and param == 0 then change param to 
you.religion, like the way mprf() does it.

--------------------------------------------------------------------------------
f090b4c11c | zelgadis | 2008-07-01 07:14:50 +0000

Bug 2006559: don't include quotes about in a monster's description if it won't 
fit on the screen.

--------------------------------------------------------------------------------
3ba8bc84d0 | ennewalker | 2008-07-01 05:23:50 +0000

[2004464] Fixing Slime:6 issues where '|' was not creating any loot.  This was 
due to the KMASK entry which erroneously replaced the glyph with floor.  (Lots 
of thanks to zelgadis for pointing out KMASK as the culprit.)

--------------------------------------------------------------------------------
d6e4c5ce86 | dolorous | 2008-07-01 05:10:48 +0000

Consolidate the redundant parts of Lugonu's description.

--------------------------------------------------------------------------------
6507de24f5 | dolorous | 2008-07-01 03:54:47 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
799608cc06 | ennewalker | 2008-07-01 03:51:25 +0000

[2007262] Fixing typo where hunters were only getting 1 arrow.

--------------------------------------------------------------------------------
93d69fafda | dolorous | 2008-07-01 03:45:37 +0000

When creating the first dungeon level after starting in the Abyss, mark it as 
existing, so that it's properly saved when going to the second dungeon level.

--------------------------------------------------------------------------------
7d9ef49e60 | zelgadis | 2008-07-01 03:25:04 +0000

Bug 2006092: beam.fr_count and beam.foe_count were being unecessarily 
incremented, leading to stop_attack_prompt() not always being called when it 
should be.

--------------------------------------------------------------------------------
1f7144d6d3 | dolorous | 2008-07-01 03:25:04 +0000

Comment fix.

--------------------------------------------------------------------------------
8e8bbf5c54 | ennewalker | 2008-07-01 03:08:10 +0000

[2004538] Fixed Vestibule of Hell bugs where entering would place you randomly 
and would not set travel information correctly.  Also, updated locations in the 
code where the old command Ctrl-G was mentioned.

--------------------------------------------------------------------------------
22f843e5f8 | ennewalker | 2008-07-01 02:17:49 +0000

[2007010] Added doc about wininit.txt and building tiles versions.

--------------------------------------------------------------------------------
ee9032f033 | zelgadis | 2008-07-01 00:49:04 +0000

Bug 2004786: a lightning bolt bouncing and hitting a monster a second/tird/etc 
time shouldn't be an unchivalrous attack if the first hit wasn't unchivalrous.  
Before this fix the damage from the first hit from a lightning bolt might make 
a monster flee, and then the subsequent hits from bounces would be unchivalrous 
since it was fleeing.

--------------------------------------------------------------------------------
54d9768ff1 | zelgadis | 2008-07-01 00:05:03 +0000

Don't "trip and fall back down the stairs" when leaving Pandemonium, the Abyss 
or a portal level.

--------------------------------------------------------------------------------
51bb503297 | j-p-e-g | 2008-06-30 22:25:52 +0000

Fix 2007064: Assertion error when changing religion as a Lugonu Chaos Knight 
while still in the Abyss (only possible in wizard mode)

--------------------------------------------------------------------------------
09af3a09ba | dolorous | 2008-06-30 22:24:57 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
2a0b4dc76b | dolorous | 2008-06-30 22:18:12 +0000

Only attempt to change the attitudes of holy beings if we're dumping a good 
god, not if we're dumping any god.

--------------------------------------------------------------------------------
089ab80ae8 | dolorous | 2008-06-30 22:11:36 +0000

Comment fixes.

--------------------------------------------------------------------------------
476660b7d7 | dolorous | 2008-06-30 21:51:17 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
2e0507ac62 | j-p-e-g | 2008-06-30 21:39:03 +0000

Force beams of digging (wand or spell, known or unknown, also /random effects) 
to ignore the endpoint target ('.') in favour of continuing until the end of 
the range.
Unrestrict tridents for some more species.

--------------------------------------------------------------------------------
c735656f5d | dolorous | 2008-06-30 21:10:10 +0000

Since Lugonu is now available to Chaos Knights, add a description of Lugonu to 
the appropriate manual section.  (If anyone can come up with a better 
description, feel free to add it.)

--------------------------------------------------------------------------------
38799211a1 | dolorous | 2008-06-30 20:28:04 +0000

Fix compilation.

--------------------------------------------------------------------------------
a733313eb5 | dploog | 2008-06-30 20:25:56 +0000

Removed senseless rN++ explanation.

--------------------------------------------------------------------------------
a6a05c0570 | j-p-e-g | 2008-06-30 20:09:44 +0000

Make shadow dragons' corpses mutagenic as discussed some time ago, and mark 
skeletal dragons' genus as "dragon", so they are affected by dragon slaying. 
Add several more descriptions for various abilities. Please feel free to 
correct or add anything.

--------------------------------------------------------------------------------
2776e606f9 | dolorous | 2008-06-30 19:16:19 +0000

When starting in the Abyss, randomize the colors properly.

--------------------------------------------------------------------------------
a524209b16 | j-p-e-g | 2008-06-30 19:11:56 +0000

Don't offer the wielded weapon for quivering (even if throwable) since you 
can't quiver it anyway. Fix !porridge being highlighted as preferred food if 
unidentified. Tweak change log a bit.

--------------------------------------------------------------------------------
b91d5e9aed | dolorous | 2008-06-30 18:51:31 +0000

Add yet more miscellaneous minor fixes.

--------------------------------------------------------------------------------
d47f4a6ad3 | dolorous | 2008-06-30 18:18:31 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
ed66950508 | dolorous | 2008-06-30 17:31:31 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
67724d484d | dolorous | 2008-06-30 17:10:39 +0000

Redraw the player's experience level in the right place.

--------------------------------------------------------------------------------
ddef47a325 | dolorous | 2008-06-30 16:50:56 +0000

When displaying player skills, clear to the ends of both lines, so that e.g. 
switching from Lugonu to Xom doesn't leave "the Foo of Xomonu" on the screen.

--------------------------------------------------------------------------------
760579ccd2 | dolorous | 2008-06-30 16:42:26 +0000

Properly redraw the player's skill level, experience level, etc. after losing a 
level due to draining.

--------------------------------------------------------------------------------
56f6f73efb | dolorous | 2008-06-30 16:25:16 +0000

Fix dangling pointers again (oops).

--------------------------------------------------------------------------------
29c92e989d | j-p-e-g | 2008-06-30 15:44:43 +0000

When reading a "modification scroll" (prompt: Use on which item?) don't list 
the scroll you just read as one to use it on. This fixes the ugly issue where 
the player, forgetting the slot of the scroll just read, uses identify on 
itself, thereby wasting the scroll. For enchant armour and recharging it's a 
moot point as they don't work on scrolls anyway, but this way you can't figure 
out the subtype.

--------------------------------------------------------------------------------
97fcdb95c6 | dolorous | 2008-06-30 15:33:26 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
35a5594c80 | dolorous | 2008-06-30 15:02:52 +0000

Add more minor documentation fixes.

--------------------------------------------------------------------------------
7c3ec6bed4 | j-p-e-g | 2008-06-30 14:53:42 +0000

Fix 2006479: worn unidentified =PR marking poisonous food as safe. Fix 2006014: 
character selection crashing after non-random book choice.

--------------------------------------------------------------------------------
7cd6623f97 | dolorous | 2008-06-30 14:49:56 +0000

Comment fixes.

--------------------------------------------------------------------------------
74937f642d | dolorous | 2008-06-30 14:48:08 +0000

Add Lugonu to the list of chaotic gods for Zin's Recital purposes.

--------------------------------------------------------------------------------
0e65534b50 | j-p-e-g | 2008-06-30 14:32:21 +0000

Enable Chaos Knights of Lugonu starting out in the Abyss. I've marked these 
characters with GDT_GAME_START, so that * the player starts out on an altar to 
Lugonu * there's an exit back to the Dungeon near-by * returning into the 
Dungeon always places them into the entry vault on   level 1 * no abyssal runes 
are ever generated * item generation matches that of level 1 * monster spawn 
rates are that of the orb run to enforce a quick return   into the Dungeon
Once the player returns to the Dungeon (via an exit or with Lugonu's
first power) char_direction is properly set to GDT_DESCENDING and from
then on the game continues as if they had started in the Dungeon.

--------------------------------------------------------------------------------
f69da63b88 | dolorous | 2008-06-30 14:27:32 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9876ce66bf | dolorous | 2008-06-30 14:24:50 +0000

Simplify.

--------------------------------------------------------------------------------
8f709e97f1 | dolorous | 2008-06-30 05:45:55 +0000

Add minor documentation updates.

--------------------------------------------------------------------------------
4dc79de16f | zelgadis | 2008-06-30 04:26:50 +0000

Properly use + or : for the book symbol in full command help (??) as well as in 
tutorial mode.

--------------------------------------------------------------------------------
e9b37524a6 | dolorous | 2008-06-30 04:17:41 +0000

In the attack warning prompt, do the checks for unchivalric attacks and TSO's 
not minding your making unchivalric attacks in the right order. Maybe this 
fixes [2006092]?

--------------------------------------------------------------------------------
79fa8defda | zelgadis | 2008-06-30 04:06:15 +0000

Don't count an attack as unchivalrous if the attacker can't see the defender, 
which includes the defender being invisble, being behind opaque clouds, and 
being behind a wall when hit with an area attack.  Before the code was only 
checking invisibility, which doesn't take into account LOS blocking things like 
opaque clouds and walls.
Don't give a duplicate message when hitting a giant spore or ball lightning.

--------------------------------------------------------------------------------
3c944837ca | dolorous | 2008-06-30 04:05:02 +0000

Add message tweak.

--------------------------------------------------------------------------------
402916d9a9 | dolorous | 2008-06-30 04:03:42 +0000

Simplify yet again.

--------------------------------------------------------------------------------
7beeddfca4 | dolorous | 2008-06-30 03:58:49 +0000

Make sure pacified monsters don't use emergency spells that harm the area (i.e. 
torment).  Spells that harm targets are still okay, since pacified monsters are 
also allowed to harm targets via melee.

--------------------------------------------------------------------------------
5a4971c1df | dolorous | 2008-06-30 03:57:07 +0000

Simplify again.

--------------------------------------------------------------------------------
9f1f5b5a19 | zelgadis | 2008-06-30 03:54:16 +0000

Sanctuary now protects friendly and neutral-good monsters from Abjure.

--------------------------------------------------------------------------------
661cf5f11b | dolorous | 2008-06-30 03:52:09 +0000

Simplify.

--------------------------------------------------------------------------------
d94c7e9f87 | dolorous | 2008-06-30 03:37:17 +0000

Simplify.

--------------------------------------------------------------------------------
b65a8ee385 | nlanza | 2008-06-30 02:01:06 +0000

Turn off sign-comparison checks for now until I can figure out what's going on 
with Xcode 3.1 + yacc; we didn't always get sign-comparison errors here, and 
it's pretty annoying.

--------------------------------------------------------------------------------
670285fc45 | dolorous | 2008-06-30 01:55:16 +0000

Properly mark poisoned ammunition as evil for TSO worshippers.

--------------------------------------------------------------------------------
a0c4594bde | dolorous | 2008-06-30 01:50:43 +0000

Mark known mutagenic randarts as evil items for Zin worshippers.

--------------------------------------------------------------------------------
31651046ba | dolorous | 2008-06-30 01:47:01 +0000

Fix typo.

--------------------------------------------------------------------------------
d6acd8509b | dolorous | 2008-06-30 01:32:50 +0000

Mark potions of mutation as evil for Zin worshippers, and poisoned weapons and 
ammunition as evil for TSO worshippers.  Also, mark all demonic weapons as 
evil, whether their types are known or not.

--------------------------------------------------------------------------------
5d7e01fb40 | zelgadis | 2008-06-29 23:42:33 +0000

Note that Zin dislikes polymorphing monsters, and mark wands of polymorph other 
as evil items for Zin worshipers.

--------------------------------------------------------------------------------
c7415cf649 | dploog | 2008-06-29 22:09:44 +0000

Only use "greater healing" (fixes 2002446).

--------------------------------------------------------------------------------
a8af63c193 | dploog | 2008-06-29 22:02:48 +0000

Add a first (very bland) Gehenna cloud generator.

--------------------------------------------------------------------------------
0f92b7e64d | dolorous | 2008-06-29 15:05:23 +0000

Improve the god power descriptions a bit.

--------------------------------------------------------------------------------
b2d1ba2db1 | dploog | 2008-06-29 14:28:37 +0000

Removed the fog generator entries. Mention fog generators in level_design.txt.

--------------------------------------------------------------------------------
fff74acfa8 | dploog | 2008-06-29 14:16:31 +0000

Removed paragraph on protection from harm from the Elyvilon !^ screen (the 
information is already mentioned elsewhere on that page). This makes ^! fit on 
a single screen. Minor annoyance: the first paragraph is included from gods.txt 
(god powers) and has linebreaks at 72 columns, whereas the rest of the screen 
uses the full width. It would be best to use 80 columns also for the gods.txt 
includes.

--------------------------------------------------------------------------------
f90424b8c2 | j-p-e-g | 2008-06-29 14:14:04 +0000

Force quiver to attempt to use the exact same item in inventory (slot and all, 
if it still exists) before accepting any item that happens to have the same 
properties (base + subtype, plusses etc.)

--------------------------------------------------------------------------------
a2f0ab5525 | dolorous | 2008-06-29 14:11:07 +0000

Add color-related fixes: orcish idols are now consistently described as 
lightred, and Beogh altars use lightred instead of red now, as that's the 
current color for plain orcs.

--------------------------------------------------------------------------------
8c38a749fe | j-p-e-g | 2008-06-29 13:31:45 +0000

Fix good random secondary choices during character selection. Re-enable 
quivering with '(' - still buggy, and I'm trying to work out why, but at least 
it works for some ammo now.

--------------------------------------------------------------------------------
d1a6e69591 | dolorous | 2008-06-29 12:25:51 +0000

Enable healing of allies using Elyvilon's power.

--------------------------------------------------------------------------------
00af579c24 | j-p-e-g | 2008-06-29 11:45:50 +0000

Add gods' powers and abilities to their descriptions, viewable via ^! (as well 
as when praying at an altar) and when searching the database. Texts might need 
to be tweaked a bit but it's a *huge* improvement. (Thanks to whoever had that 
idea!)

--------------------------------------------------------------------------------
45afdf8ec9 | zelgadis | 2008-06-29 09:32:50 +0000

Don't behold and and un-behold the player in the same instant if a mermaid is 
behind a transparent wall, but instead give a message about being unable to 
hear the mermaid.

--------------------------------------------------------------------------------
7b0f7be346 | zelgadis | 2008-06-29 09:01:40 +0000

Use "distant snort" instead of "snort", to avoid matching snorting yaks.

--------------------------------------------------------------------------------
a915659e84 | zelgadis | 2008-06-29 08:27:35 +0000

Multiple sanctuary fixes:
* Set sanctuary floor property before checking if monster will flee.

* Make mimics teleport away, since they can't move.

* Don't count as fleeing monsters which can't flee, like plants.

* Don't tell the player about unseen fleeing monsters.

--------------------------------------------------------------------------------
04b39d34b1 | zelgadis | 2008-06-29 08:19:15 +0000

Force berserking and non-living monsters to flee sanctuary.

--------------------------------------------------------------------------------
8cffb32e8c | zelgadis | 2008-06-29 06:53:52 +0000

Only place a newly created monster (summons) on a sanctuary square if it is 
friendly.
Only allow friendly and neutral-good monsters to blink or teleport onto
a sanctuary square.

Don't allow corpses on sanctuary squares to be rotted or animated.

Restrict monster cantrip messages to self-buff types if the player is
in sanctuary.

--------------------------------------------------------------------------------
dcf9fc82a6 | dolorous | 2008-06-29 06:28:01 +0000

And allow targeting anything, so that cycling via "-" works again if only enemy 
monsters are around.

--------------------------------------------------------------------------------
b2d608cf10 | dolorous | 2008-06-29 06:21:22 +0000

In _healing_spell(), use the same targeting options for spell_direction() that 
were used for direction() before.

--------------------------------------------------------------------------------
fb9acb2668 | dolorous | 2008-06-29 05:37:40 +0000

Make tso_unchivalric_attack_safe_monster() take a monsters* parameter instead 
of an actor* parameter.

--------------------------------------------------------------------------------
2d8ce0a2ef | dolorous | 2008-06-29 05:22:46 +0000

Simplify.

--------------------------------------------------------------------------------
38bdc5540a | dolorous | 2008-06-29 05:17:43 +0000

Add DNGN_EXIT_HELL to is_travelable_stair(), since it already includes 
DNGN_ENTER_HELL.

--------------------------------------------------------------------------------
6e8c4b9c5c | zelgadis | 2008-06-29 05:16:39 +0000

Bug 2005002: Allow friendly and neutral-good monsters to cast spells while in 
sanctuary, and allow hostile and neutral monsters to cast spells once outside 
of sanctuary as long as it won't harm anything inside of sanctuary.

--------------------------------------------------------------------------------
020b21eee0 | dolorous | 2008-06-29 04:47:24 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
76def74997 | dolorous | 2008-06-29 04:47:02 +0000

Use spell_direction() in _healing_spell(), to allow cycling through targets via 
"-".

--------------------------------------------------------------------------------
e7a6987931 | ennewalker | 2008-06-29 04:06:06 +0000

[2005471] Fixing bug where discovered trap was not being shown until a turn 
later.

--------------------------------------------------------------------------------
32195d6051 | ennewalker | 2008-06-29 03:57:31 +0000

Fixing compilation error.

--------------------------------------------------------------------------------
ffcb78687e | dolorous | 2008-06-29 03:10:22 +0000

Comment fixes.

--------------------------------------------------------------------------------
601b23485d | dolorous | 2008-06-29 03:08:05 +0000

Fix calculation of how far away a pacified monster is from the player.

--------------------------------------------------------------------------------
9bf5023ad3 | dolorous | 2008-06-29 02:43:46 +0000

Enable pacified monsters' traveling to teleportation traps again.  They won't 
make monsters leave the level, but they may teleport them far enough away that 
they might leave anyway.

--------------------------------------------------------------------------------
d1797e64c3 | dolorous | 2008-06-29 02:37:33 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2739849714 | dolorous | 2008-06-29 02:19:37 +0000

Display the proper message when a pacified monster leaves the level.

--------------------------------------------------------------------------------
384d1e986b | dolorous | 2008-06-29 02:10:18 +0000

Remove erroneous routine for faking pacified monsters' falls through shaft 
traps.

--------------------------------------------------------------------------------
c4f5e14829 | dolorous | 2008-06-29 02:07:33 +0000

Faking falls through shaft traps for pacified monsters doesn't quite work, as 
it doesn't use the proper target.  Fix this by not marking pacified monsters 
for transit if they fall through shaft traps.

--------------------------------------------------------------------------------
937f36f420 | dolorous | 2008-06-29 01:51:21 +0000

Fix tests for pacified monsters' leaving the level again.

--------------------------------------------------------------------------------
3db4ce1528 | dolorous | 2008-06-29 01:27:12 +0000

Fix ME_ALERT handling for pacified monsters.

--------------------------------------------------------------------------------
dd3572ee43 | dolorous | 2008-06-28 22:44:17 +0000

Add minor cleanups.

--------------------------------------------------------------------------------
4033ebc58b | j-p-e-g | 2008-06-28 22:23:03 +0000

In response to BR 2005224 (TSO penance from shooting unseen underwater enemies) 
use player_visible_monster() as parameter known when setting conducts in 
beam.cc, so the player isn't punished for attacking monsters he didn't know 
were there, or if he did, had no idea about their current behaviour (fleeing 
perhaps?) Might be too nice, again, but I think it's okay.

--------------------------------------------------------------------------------
fc09d2de4c | j-p-e-g | 2008-06-28 21:46:27 +0000

Fix 2004501: buggy ?identify; also finally properly id ?identify itself after a 
successful identification (if there are several). Fix 2004793: wandering 
mushroom flees - for real, this time (I hope).

--------------------------------------------------------------------------------
0ffadca40b | j-p-e-g | 2008-06-28 20:39:31 +0000

Fix 2005269: trolls being capable of wearing almost all armour types. Remove 
dated mentions of item sacrifices in print_god_likes().

--------------------------------------------------------------------------------
3183b13800 | dolorous | 2008-06-28 20:35:10 +0000

Properly handle it when a pacified monster can't find a level exit.

--------------------------------------------------------------------------------
f05e54a08b | dolorous | 2008-06-28 20:12:19 +0000

After some pointers from jpeg, rework the routine for monsters' leaving the 
level to use the pathfinding routines for patrolling.  The monsters still 
sometimes disappear when near the exit instead of on it, which needs to be 
fixed, but it's vastly closer to working properly.

--------------------------------------------------------------------------------
fd053dba7a | ennewalker | 2008-06-28 16:41:26 +0000

[2005155] Don't print "start butchering" message if the item is no longer valid.

--------------------------------------------------------------------------------
a2ecb4e6a0 | ennewalker | 2008-06-28 16:30:30 +0000

[2001518] #ifdefing out a put_colour_ch in the beam routine to fix spurious 
tiles asterisk when beams are drawn.

--------------------------------------------------------------------------------
6b287f9035 | ennewalker | 2008-06-28 16:05:38 +0000

[1995666] Fixed invisible border walls in tiles.

--------------------------------------------------------------------------------
a21c241131 | dolorous | 2008-06-28 15:33:34 +0000

Since hill orcs can be paladins now, allow orcish weapons of holy wrath.

--------------------------------------------------------------------------------
9ad40dd0d2 | dolorous | 2008-06-28 15:32:11 +0000

Add spacing fix.

--------------------------------------------------------------------------------
9373b1cfc4 | zelgadis | 2008-06-28 09:22:00 +0000

Make sanctuary prevent giant eyeball and eye of draining stares, plus moth of 
wrath goading/inciting.
In monstuff.cc put "either monster or player in sanctuary" checks into
convenience function.

--------------------------------------------------------------------------------
7fcff82561 | zelgadis | 2008-06-28 09:11:01 +0000

Bug 2004889: hack to make beam.fr_count negative if the player answered "no" to 
a "really fire beam" prompt; this allows fr_count to be used to also actaully 
count how many friends would be hit when firing a player tracer, instead of 
only indicating if a beam was canceled.

--------------------------------------------------------------------------------
41cdec798a | zelgadis | 2008-06-28 08:30:36 +0000

Prevent monsters from zapping wands at a player in sanctuary by putting a 
sanctuary check in mons_should_fire().
Force monster to stop fleeing before it zaps a wand at the player.

--------------------------------------------------------------------------------
4798422c33 | dploog | 2008-06-27 22:35:01 +0000

Mention Ctrl-E in ??.

--------------------------------------------------------------------------------
64a7e033fb | j-p-e-g | 2008-06-27 21:59:53 +0000

Add a few new tiles, one the exclusion centre (I can't be the only one who has 
trouble to remove an exclusion because I can't find its centre) and four 
additional blood variations. They are all rather similar to the up to now only 
one - too similar, perhaps. In any case, those areas of bloodsoaked 
battlefields (such as you'll encounter in the Abyss or Pandemonium) look a bit 
more interesting now. The way the variant is chosen is unfortunately rather 
hacky, and might lead to unexpected patterns.

--------------------------------------------------------------------------------
a0b40ce9a2 | dploog | 2008-06-27 21:49:35 +0000

Some fixes to the ?? screen.

--------------------------------------------------------------------------------
bcf3f0ccf9 | j-p-e-g | 2008-06-27 19:05:19 +0000

AutoID amulet of resist slowing when quaffing !slowing ("You feel lethargic.")
Allow selection of "good random" choices for secondary choices, as well.
Some of the main combinations might still have to be modified (Kenku
Gladiator? really?) Apart from that, we're all set...

--------------------------------------------------------------------------------
efeb9b1cfa | dolorous | 2008-06-27 18:49:01 +0000

Enable the currently unfinished routine to make pacified monsters leave the 
level, as an aid to testing.

--------------------------------------------------------------------------------
b5b6b64eae | j-p-e-g | 2008-06-27 17:10:36 +0000

Move secondary choice validity checks (gods, books, weapons) into subfunctions 
of their own and use them as necessary. Has the side effect of showing Beogh as 
invalid choice for non-orc priests and tridents as invalid choice for small 
race Gladiators. Does not yet handle good random choices.
All gods are now unrestricted (if not outright banned, of course), and
Necromancy has been unrestricted for a few more species.

--------------------------------------------------------------------------------
b30893ad45 | dolorous | 2008-06-27 16:40:23 +0000

In your_hand(), display "claw" instead of "hand" for the naturally clawed races 
(trolls and ghouls) again.

--------------------------------------------------------------------------------
551f48c7e4 | dolorous | 2008-06-27 16:39:05 +0000

Simplify.

--------------------------------------------------------------------------------
d03ad7b05a | j-p-e-g | 2008-06-27 16:15:37 +0000

Add a new command for firing without quivering on 'F'. Use puff of fire/ice 
tiles for ammo of flame/ice being fired.

--------------------------------------------------------------------------------
d360a8a937 | j-p-e-g | 2008-06-27 13:03:30 +0000

For amphibious creatures with HT_WATER, don't force replacing floor compatible 
terrain with deep water when placing them by map definition or in wizard mode. 
(Suggested in BR 2000631.)

--------------------------------------------------------------------------------
4351823603 | zelgadis | 2008-06-27 05:02:30 +0000

Only stimulate Xom when zapping a wand of random effects or an unknown wand if 
a monster or the player is targeted, or if an invisible enemy is nearby.  This 
prevents the player from maximally stimulating Xom by just wasting a turn while 
near a dangerous monster via aming a wand of random effects away from all 
monsters.

--------------------------------------------------------------------------------
e2d64de47d | zelgadis | 2008-06-27 04:59:40 +0000

Update beam.fr_count and beam.foe_count for beams fired by the player as well 
as beams fired by monsters.

--------------------------------------------------------------------------------
d3ae981761 | dolorous | 2008-06-27 04:43:34 +0000

Simplify.

--------------------------------------------------------------------------------
6c6d1d539d | dolorous | 2008-06-27 04:20:53 +0000

If Xom turns a monster into a shapeshifter, properly anger it if you worship 
Zin at the time.

--------------------------------------------------------------------------------
a4e12b931b | zelgadis | 2008-06-27 02:50:20 +0000

Use "!Q" inscription to force a prompt before quivering an item instead of "!f".
Update docs on addition of "!Q", on "!z" changing to "!Z" and "!E"
changing to "!v", and on "=f" preventing an item from being auto-quivered.

--------------------------------------------------------------------------------
97720dfdec | dolorous | 2008-06-27 02:41:39 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2cc5984b66 | dolorous | 2008-06-27 00:50:45 +0000

Recheck the terrain after all transformations, not just dragons, to handle 
other forms that fly, such as bats, as well as any future forms that may place 
the player in inhospitable terrain when the transformation wears off.

--------------------------------------------------------------------------------
1d361d6db0 | dolorous | 2008-06-27 00:47:16 +0000

Fix [2003446]: Don't bother trying to take boots off a formerly transformed 
centaur (or naga) if they have nothing equipped in the boots slot.

--------------------------------------------------------------------------------
d0cb246a07 | dolorous | 2008-06-27 00:35:06 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
cc279c7aa6 | dolorous | 2008-06-26 22:31:01 +0000

Kill hard tabs, and add whitespace fixes.

--------------------------------------------------------------------------------
54aec4d505 | j-p-e-g | 2008-06-26 21:41:46 +0000

#undef my debugging statements again

--------------------------------------------------------------------------------
277c76245f | dolorous | 2008-06-26 21:35:45 +0000

Add message tweak.

--------------------------------------------------------------------------------
80f31bee41 | j-p-e-g | 2008-06-26 21:30:33 +0000

Fix another two instances of monster placement returning false instead of -1.

--------------------------------------------------------------------------------
c42e7efab8 | dolorous | 2008-06-26 21:16:04 +0000

Use one of dploog's suggested messages from the "gods should beckon you" FR as 
Nemelex's greeting message.

--------------------------------------------------------------------------------
bfbe4152f6 | dolorous | 2008-06-26 21:13:55 +0000

Let Zin's sanctuary protect the player from random hell effects.

--------------------------------------------------------------------------------
eba8d5fc45 | dolorous | 2008-06-26 20:18:14 +0000

Fix the attack warning prompt's showing up for unchivalric attacks on monsters 
that TSO doesn't care about unchivalric attacks on.

--------------------------------------------------------------------------------
05f88f06a2 | j-p-e-g | 2008-06-26 18:56:45 +0000

Fix a bug in monster summoning that was causing crashes, for example when 
attempting to cast Shadow Creatures in a bazaar (which is bound to fail, 
anyway). I guess it would have also caused crashes anywhere else where the 
level was devoid of monsters and creating one failed - for whatever reason. I 
don't actually know how likely that combination is.

--------------------------------------------------------------------------------
b5789ec262 | j-p-e-g | 2008-06-26 16:27:37 +0000

Move around numerous restrictions in the secondary choices during character 
selection.
For weapons, I've applied the following rules:
* If there are significant differences between the aptitudes for
  the different starting weapons, only unrestrict the best ones.
* If all aptitudes are identical and <= 100, unrestrict all of them.
* If all aptitudes are identical but > 100, leave all of them
  restricted.
* If all aptitudes are really bad, but one of them is significantly
  better (say, 110 compared to 140) unrestrict that one.
* For non-Kobold gladiators, use spear restriction value for tridents.

For books, I've similarly used the aptitudes for Fire/Ice/Summonings.
I've tried to apply similar reasonings for Necromancy vs. Yredelemnul
(Invocations), but because Invocations is internally boosted few species
are even remotely as good in Necromancy as Invocations, so that doesn't
really work.
I don't understand the logic used to decide which species work good with
Xom as opposed to Makhleb.

The plan is to allow players to get an idea about the strengths and
weaknesses of their chosen character from the choices offered alone, and
to later be able to move these checks into functions of their own and then
use them for differentiating between random choices and good random
choices, like for species/class.

--------------------------------------------------------------------------------
a291e99809 | j-p-e-g | 2008-06-26 15:08:48 +0000

Disallow quivering equipped items. (You can still (fi)re your wielded weapon if 
you insist, you just can't quiver it.) And another general clean-up.

--------------------------------------------------------------------------------
7dd20bb5af | j-p-e-g | 2008-06-26 14:21:54 +0000

Make mummy death curses only happen if the mummy wasn't summoned. (BR 2002296)

--------------------------------------------------------------------------------
d6db411248 | j-p-e-g | 2008-06-26 13:41:10 +0000

Fix the character selecting omitting letters for restricted classes (as opposed 
to banned ones). Tweak the code to enforce wearable body armour and shield 
types for all species. I'm afraid the skills need to be adjusted as well, 
probably in more detail, but I'm rather clueless on that account.

--------------------------------------------------------------------------------
61cae4a761 | j-p-e-g | 2008-06-26 10:39:39 +0000

Misc. minor cleanups. (Yes, a huge amount of them but still...)

--------------------------------------------------------------------------------
d4acdf4a6a | zelgadis | 2008-06-26 05:08:00 +0000

If a visible monster interupts a delay by opening a door then say that it opens 
the door rather than "comes into view".
If a visible monster opens a door when the player isn't delayed then
give a message about it.

Include secret doors in multi-door gates when a monster opens a door.

--------------------------------------------------------------------------------
c84df3ee89 | dolorous | 2008-06-26 01:42:23 +0000

Simplify.

--------------------------------------------------------------------------------
635e6fe739 | dolorous | 2008-06-26 01:09:17 +0000

Add spelling fix.

--------------------------------------------------------------------------------
3037e46604 | j-p-e-g | 2008-06-25 22:14:02 +0000

Apply a patch by Rob Grant (spoondrift) that enables all combinations of 
species/class except those that are outright impossible (because of god 
restrictions). When choosing a character, you can pick any random character or 
one of the recommended combinations. This does not take (un)restricted choices 
for weapons/books/gods into account. Apart from that, it's pretty good, though 
we might want to (un)restrict some combinations.

--------------------------------------------------------------------------------
50f0339056 | dolorous | 2008-06-25 20:28:19 +0000

Add const.

--------------------------------------------------------------------------------
609b3edb07 | dolorous | 2008-06-25 20:04:49 +0000

Fix compilation.

--------------------------------------------------------------------------------
e3b9a7a1e1 | dolorous | 2008-06-25 19:47:37 +0000

For functions that return char*'s, don't return a c_str() of an std::string, 
since as soon as the function returns, the std::string goes out of scope, and 
the c_str() becomes a dangling pointer, which usually points to the same area 
as before, but occasionally points to garbage. Instead, make them return 
std::string's, and call c_str() on the return value outside the functions.  
Among other things, this should fix [1999515].
Note that I've only fixed direct c_str() returns for now.  There might 
be some indirect ones that I missed.

--------------------------------------------------------------------------------
eef749ceb3 | dolorous | 2008-06-25 17:45:51 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4668568ce0 | dolorous | 2008-06-25 17:20:38 +0000

Typo fixes.

--------------------------------------------------------------------------------
3f56d09c37 | dolorous | 2008-06-25 16:52:05 +0000

In is_stair(), include portal vault entrances and exits, since the similar 
labyrinth entrances and exits are included.

--------------------------------------------------------------------------------
3970539e0c | j-p-e-g | 2008-06-25 12:55:26 +0000

Improve targetting via monster list, add a new option to define the toggle's 
initial setting, and update/correct the documentation a bit.

--------------------------------------------------------------------------------
6d3a9722a2 | dploog | 2008-06-25 12:36:24 +0000

Point out that potions of restore abilities cancel the breath weapon delay.

--------------------------------------------------------------------------------
e10fb2a241 | zelgadis | 2008-06-25 06:12:25 +0000

Make summoned dancing weapons disappear in a puff of smoke rather than giving 
an erroneous "drops from the air" message.

--------------------------------------------------------------------------------
dcb15dbcca | dolorous | 2008-06-24 23:03:03 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
b70014ceae | dploog | 2008-06-24 22:35:15 +0000

Fix spelling.

--------------------------------------------------------------------------------
d0251b7e83 | dploog | 2008-06-24 22:29:25 +0000

Make a note when falling through a shaft. It might be better if the note was 
taken later (so you see the new dungeon level in the notes). (rob)

--------------------------------------------------------------------------------
7ee1dfa39e | j-p-e-g | 2008-06-24 22:16:50 +0000

Apply patch 1952761 by jarpian (wasp): targetting with the monster list.
I've updated the patch to the current mlist code, but there are still a
couple of bugs that will need to be ironed out. For example, monsters
are picked by comparing their attitude and type, which is not sufficient
in the case of (non-collapsed) zombies, as well as mimics or ghosts.
Also if the number of monsters in the visible list is greater than its
rows (because some appear in the same row) then monsters outside of the
visible list can be targetted. I guess this is an unintended feature. :)
I'm certain there'll be more bugs, though.

--------------------------------------------------------------------------------
defa394ffd | dploog | 2008-06-24 21:50:44 +0000

Added third staircase to crypt end vault.

--------------------------------------------------------------------------------
23647f9fb9 | dolorous | 2008-06-24 20:24:31 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
c943df44e4 | dolorous | 2008-06-24 19:57:19 +0000

Simplify Xom's choosing of a random potion effect more.

--------------------------------------------------------------------------------
d713edeb06 | dolorous | 2008-06-24 19:35:02 +0000

Simplify Xom's choosing of a random potion effect.

--------------------------------------------------------------------------------
bff6fca5d9 | dolorous | 2008-06-24 19:27:49 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2013a8bc4c | dolorous | 2008-06-24 19:23:47 +0000

Simplify Xom's polymorphing monsters.

--------------------------------------------------------------------------------
0aff0188aa | dolorous | 2008-06-24 19:10:36 +0000

Simplify Xom's mutating the player.

--------------------------------------------------------------------------------
498c31fefe | dolorous | 2008-06-24 19:04:23 +0000

Properly handle Xom's failing to summon hostile monsters.

--------------------------------------------------------------------------------
163844dfae | dolorous | 2008-06-24 18:59:43 +0000

Properly handle Xom's failing to drain or torment the player.

--------------------------------------------------------------------------------
5b7ae42f42 | dolorous | 2008-06-24 18:55:07 +0000

Simplify.

--------------------------------------------------------------------------------
19ebb14f58 | dolorous | 2008-06-24 18:49:22 +0000

Make xom_gives_item() static.

--------------------------------------------------------------------------------
734a8babe3 | dolorous | 2008-06-24 17:20:34 +0000

Update the god descriptions to account for fewer gods' taking item sacrifices.

--------------------------------------------------------------------------------
c8d380f461 | dolorous | 2008-06-24 17:09:40 +0000

Add miscellaneous minor fix.

--------------------------------------------------------------------------------
5a92fff347 | dolorous | 2008-06-24 16:40:11 +0000

Fix [2001885]: "Nothing appears to happen." was being printed when "Summon 
Elemental" succeeded, rather than when it failed.

--------------------------------------------------------------------------------
cadc3464fb | dolorous | 2008-06-24 16:09:02 +0000

Fix "Summon Undead" to summon what it did before its overhaul; I was going by 
the monster order in mon-data.h, when I should have been going by the monster 
order in enum.h.

--------------------------------------------------------------------------------
35c489ed9b | j-p-e-g | 2008-06-24 14:45:58 +0000

Tweak quiver command some more (allow clearing quiver). Update documentation.

--------------------------------------------------------------------------------
a117fb1baf | j-p-e-g | 2008-06-24 14:06:28 +0000

Modify quiver to only quiver ammunition explicitly chosen by the player (via 
(,) or i, or by the new quivering command). Ammo that just happens to come next 
in the fire order is not quivered anymore even if you continue firing. Add a 
new quiver command on Q, and while I was at it, restrict the items offered when 
firing (fi) or quivering to actual throwables. (This was a long outstanding 
FR.) I think that's it...

--------------------------------------------------------------------------------
33b1249af4 | zelgadis | 2008-06-24 10:09:30 +0000

Recognize each type of staff once one of its type has been identified; was only 
working for rods.

--------------------------------------------------------------------------------
cad9c185b4 | j-p-e-g | 2008-06-24 08:54:31 +0000

Move around some commands. Ctrl-Q (Tiles settings) -> Ctrl-V (was version, now 
?V) Q (quit) -> Ctrl-Q ... which frees Q for a new command "set quiver", not 
yet implemented.
I've updated some docs but may have overlooked something.

--------------------------------------------------------------------------------
3fc133f3d8 | zelgadis | 2008-06-24 08:38:39 +0000

The indefinite article for any string starting with "one-way" is "a", not "an". 
 A hack, but then so is the English language.

--------------------------------------------------------------------------------
83040a1030 | j-p-e-g | 2008-06-24 08:24:46 +0000

Force update of the quiver by picking up throwable items. This might hamper 
performance and is still not optimal: Wielding a sling, running out of stones, 
firing darts instead and then picking up some new stones won't make the quiver 
switch away from the darts because you "explicitly" fired them.
Also, can someone please tell me whether "(" or ")" are supposed to loop
to the correct next item? I haven't been able to work that out from the
quiver behaviour alone - it's not all that consistent, unfortunately.

--------------------------------------------------------------------------------
ce05e64645 | j-p-e-g | 2008-06-24 07:52:37 +0000

Change quiver output to that of the next item actually fired. Currently updates 
correctly on firing and dropping quivered items. May be buggy.

--------------------------------------------------------------------------------
eedd926a2d | zelgadis | 2008-06-24 07:14:31 +0000

In the level map fudge things somewhat when cycling through features: entrances 
to Zot and the four Hell branches, plus gates to further levels of Pandemonium, 
can be cycled via '>', while exits from Zot, the Vestibule of Hell, Pandemonium 
and portal vaults can be cycled via '<'.

--------------------------------------------------------------------------------
ed60b40c58 | zelgadis | 2008-06-24 06:09:08 +0000

FR 1993535: If asking the user for an item, and the player has none of the type 
of item requested, then mpr() the message about it, rather than bringing up an 
empty menu with the message being the menu's title.

--------------------------------------------------------------------------------
e91373c5ce | dolorous | 2008-06-24 05:28:37 +0000

Fix bad logic for determining the behavior of Xom's factions.

--------------------------------------------------------------------------------
06c7460834 | zelgadis | 2008-06-24 04:48:23 +0000

More specific messages than just "You aren't carrying any such object." if the 
user doesn't have any of the type of item being selected.

--------------------------------------------------------------------------------
4956eb56ae | dolorous | 2008-06-24 03:55:16 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
c0bc0fc110 | dolorous | 2008-06-24 03:27:09 +0000

Add yet another message tweak.

--------------------------------------------------------------------------------
da2bfae4d1 | dolorous | 2008-06-24 03:26:09 +0000

Simplify.

--------------------------------------------------------------------------------
634ae7d786 | dolorous | 2008-06-24 03:24:48 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
1dde04b032 | dolorous | 2008-06-24 03:12:04 +0000

Clean up Xom's friendly multiple summoning routine again.

--------------------------------------------------------------------------------
843b4276d6 | dolorous | 2008-06-24 02:49:12 +0000

Clean up Xom's single summoning routines again.

--------------------------------------------------------------------------------
8758dd6926 | dolorous | 2008-06-24 02:32:28 +0000

Add another message tweak.

--------------------------------------------------------------------------------
8f712c76e5 | dolorous | 2008-06-24 02:31:55 +0000

Simplify.

--------------------------------------------------------------------------------
9b25d463b3 | dolorous | 2008-06-24 02:18:08 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
bf52b8a42b | dolorous | 2008-06-24 02:14:54 +0000

If Xom gives you multiple non-demonic summons, make them friendly only 3/4 of 
the time, for consistency with single non-demonic summons.

--------------------------------------------------------------------------------
aaa3e6a3ca | dolorous | 2008-06-24 01:53:08 +0000

Comment fixes.

--------------------------------------------------------------------------------
65a683c34d | zelgadis | 2008-06-24 01:26:49 +0000

Don't include inscription in a dancing weapon's name if the desc type is 
BASENAME, QUALNAME or DBNAME.

--------------------------------------------------------------------------------
37b045fd72 | zelgadis | 2008-06-24 01:02:42 +0000

Use no-quote version of weapon descriptions when examining a dancing weapon.

--------------------------------------------------------------------------------
8bc8c04fbe | j-p-e-g | 2008-06-23 21:30:08 +0000

Fix monster emergency spells not checking for ENCH_TP, thus allowing monsters 
to cancel their teleportation without meaning to. (BR 2000428) Fix the quiver 
not being cleared when wielding the only quiverable (and thus previously 
quivered) item. (Un)wielding such an item now switches nicely between "Nothing 
wielded" and "Nothing quivered", as it should be.

--------------------------------------------------------------------------------
7ace26d7f1 | j-p-e-g | 2008-06-23 20:35:26 +0000

Finally remove the code that was preventing the coloured bars from updating 
while resting in Tiles. With the overhaul of the drawing routines (already one 
or two months old) it's not needed anymore, and I really should have reacted to 
the new circumstances sooner. :P

--------------------------------------------------------------------------------
5ab24723ed | j-p-e-g | 2008-06-23 20:02:57 +0000

Move the prompt on entering a level that is marked as dangerous via annotation 
or exclusion *before* the delay is started, so it doesn't cost a turn.

--------------------------------------------------------------------------------
549d9a53c2 | dolorous | 2008-06-23 18:23:19 +0000

When pacifying, check holiness in the right places.

--------------------------------------------------------------------------------
216ea74607 | dolorous | 2008-06-23 18:07:07 +0000

Clean up monster pacifying a bit: don't allow it to work for stationary 
monsters, or for monsters that aren't holy, natural, undead, or demonic.

--------------------------------------------------------------------------------
c4f8ee4f6a | j-p-e-g | 2008-06-23 15:46:50 +0000

Tweak Trog's Berserk description - he doesn't routinely prevent followers from 
passing out, though the chance eventually reaches 100%.

--------------------------------------------------------------------------------
942c5b352c | dolorous | 2008-06-23 07:50:17 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f17a4b6954 | dolorous | 2008-06-23 07:40:52 +0000

Add whitespace fixes again.

--------------------------------------------------------------------------------
a27179a055 | dolorous | 2008-06-23 07:40:06 +0000

Display the proper message when Xom fails to animate your weapon against you.

--------------------------------------------------------------------------------
12b8e7cda2 | dolorous | 2008-06-23 07:28:32 +0000

Add still another whitespace fix.

--------------------------------------------------------------------------------
f6b9c44b26 | dolorous | 2008-06-23 07:27:51 +0000

Simplify.

--------------------------------------------------------------------------------
6aadc57460 | dolorous | 2008-06-23 07:23:56 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
e5b27ccc67 | dolorous | 2008-06-23 07:23:00 +0000

Tweak messages yet again.

--------------------------------------------------------------------------------
dd57b5a6f0 | dolorous | 2008-06-23 07:16:48 +0000

Tweak messages again.

--------------------------------------------------------------------------------
96598708cf | zelgadis | 2008-06-23 06:11:25 +0000

Make the ignore_flags field of item_def::name() work with more flags.

--------------------------------------------------------------------------------
37742bb98e | dolorous | 2008-06-23 05:55:28 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
f089c69d4e | dolorous | 2008-06-23 05:54:48 +0000

Fix compilation.

--------------------------------------------------------------------------------
2bc1bfe262 | dolorous | 2008-06-23 05:53:06 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
b56434b089 | dolorous | 2008-06-23 05:52:02 +0000

Make Xom's failure messages a bit more varied.

--------------------------------------------------------------------------------
b76c39a89a | dolorous | 2008-06-23 05:09:58 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
189d650ca2 | dolorous | 2008-06-23 03:40:42 +0000

For Xom, use the "No, never mind." failure message instead of the canned 
failure message.

--------------------------------------------------------------------------------
52344dd9f4 | dolorous | 2008-06-23 03:25:18 +0000

Add a few more minor cosmetic fixes, and make xom_makes_you_cast_random_spell() 
static.

--------------------------------------------------------------------------------
84efd34989 | dolorous | 2008-06-23 03:24:10 +0000

Add missing prototype to misc.h.

--------------------------------------------------------------------------------
6f948aae55 | dolorous | 2008-06-23 03:17:09 +0000

Remove now-redundant prototype.

--------------------------------------------------------------------------------
ccd600ef4f | dolorous | 2008-06-23 03:15:21 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
68dcb01069 | dolorous | 2008-06-23 03:01:39 +0000

Really fix message sequences again.

--------------------------------------------------------------------------------
c34de0e4c6 | dolorous | 2008-06-23 02:18:21 +0000

Fix message sequences again.

--------------------------------------------------------------------------------
3f80cfb900 | dolorous | 2008-06-23 01:56:31 +0000

Refix Xom's mixed summons.

--------------------------------------------------------------------------------
0b3a6d8125 | dolorous | 2008-06-23 01:39:03 +0000

Put the messages in the right sequence if Xom fails to animate your weapon or 
summon hostile demons.

--------------------------------------------------------------------------------
08653ce92d | dolorous | 2008-06-23 01:15:12 +0000

Properly mark Xom's mutations as "god gift" mutations again.

--------------------------------------------------------------------------------
4cd67bc698 | dolorous | 2008-06-23 01:08:15 +0000

When drawing the Xom card, and getting Xom's potentially mixed summons, really 
anger them at the right time.

--------------------------------------------------------------------------------
d46571b282 | dolorous | 2008-06-23 00:42:17 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
5281ed5f29 | dolorous | 2008-06-23 00:16:38 +0000

If you draw the Xom card, and Xom sends you a creature that you should anger 
with your aura, anger it only after the Xom message is displayed.

--------------------------------------------------------------------------------
3d398ae8a0 | dploog | 2008-06-22 22:32:17 +0000

Slight changes to bazaars. (Reduces chances of the smaller vaults, and remove 
the need to search for secret doors.)

--------------------------------------------------------------------------------
ea78e3b88d | j-p-e-g | 2008-06-22 21:57:35 +0000

Swap '.' and '!' in the targetting interface. Forbid bats wearing hats/caps or 
rings. (That makes amulets the only type of equipment Vampires can keep on when 
transforming.) To make up for it, increase their damage stats again. Also fix 
it being possible to (un)equip the allowed items in Tiles while in bat form.

--------------------------------------------------------------------------------
f7cb474e41 | dolorous | 2008-06-22 21:33:09 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
fb546e8b57 | dolorous | 2008-06-22 20:53:56 +0000

If a god (currently, either Xom or Makhleb) hurls a blast of lightning, display 
the message in the god channel.

--------------------------------------------------------------------------------
e2df435c4b | dolorous | 2008-06-22 20:48:30 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
99be0be3c7 | j-p-e-g | 2008-06-22 20:12:04 +0000

Fix ?immolation not being autoID'd upon reading. Fix ?uselessness not using the 
misc. descriptions.

--------------------------------------------------------------------------------
d6cdd1b6e2 | dolorous | 2008-06-22 19:50:13 +0000

Fix crash when no level exit can be found (which can apparently happen 
sometimes in the Abyss).

--------------------------------------------------------------------------------
958e7aff55 | dolorous | 2008-06-22 19:30:26 +0000

Give plain elves high intelligence, to match all the other elf types.

--------------------------------------------------------------------------------
beaf1a36be | dolorous | 2008-06-22 19:06:26 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
faa501a2e6 | dolorous | 2008-06-22 19:02:39 +0000

Improve pathfinding for monsters leaving the level again.

--------------------------------------------------------------------------------
1b88ae7547 | j-p-e-g | 2008-06-22 18:47:22 +0000

Abolish item sacrifices for all gods except Nemelex, Zin and TSO. The 
descriptions will have to be updated. If special cases are seen as invaluable 
part of that god's design, they should be reworked to not to ressemble grinding 
anymore and/or gain flavour. (Compare with Ely's weapon destruction or Trog's 
book burning.)
Disallow merfolk monsters in the Swamp and reduce their "rare"
probability in the main dungeon to that of flying skulls.

--------------------------------------------------------------------------------
b55ce56cc0 | dolorous | 2008-06-22 18:14:26 +0000

Remove erroneous bit.

--------------------------------------------------------------------------------
b1d9b929e4 | dolorous | 2008-06-22 15:50:52 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
2843313c1b | dolorous | 2008-06-22 15:48:51 +0000

Search the entire level for exits, not just 2 * LOS_RADIUS.

--------------------------------------------------------------------------------
5dccf2d901 | dolorous | 2008-06-22 05:12:48 +0000

Comment fix.

--------------------------------------------------------------------------------
21dcbda892 | dolorous | 2008-06-22 05:11:58 +0000

Initialize e in _mons_find_level_exits().

--------------------------------------------------------------------------------
2afb18510b | dolorous | 2008-06-22 04:46:39 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
82ad42a2ee | dolorous | 2008-06-22 04:43:38 +0000

Add more pathfinding improvements for monsters leaving the level.

--------------------------------------------------------------------------------
386bfbcf3e | dolorous | 2008-06-22 02:50:11 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
39d1a6be3e | dolorous | 2008-06-22 02:49:29 +0000

Remove erroneous addition.

--------------------------------------------------------------------------------
60aebc3a19 | dolorous | 2008-06-22 02:47:16 +0000

Add a first attempt at using pathfinding for monsters leaving the level, mostly 
lifted from BEH_SEEK.

--------------------------------------------------------------------------------
27bfefb1e0 | zelgadis | 2008-06-22 02:26:39 +0000

Give a different description of dancing weapons when examining an actual 
monster versus looking it up via "?/".

--------------------------------------------------------------------------------
a6fa467dee | zelgadis | 2008-06-22 01:22:34 +0000

Let a level_id be directly compared to a branch type with == and != to 
determine if a level_id is (not) in BRANCH_FOO; takes care of comparing 
level_type to LEVEL_DUNGEON.

--------------------------------------------------------------------------------
df61a8134c | dploog | 2008-06-22 00:55:58 +0000

Modify an entry vault. Fixes 1999615.

--------------------------------------------------------------------------------
71509500b1 | j-p-e-g | 2008-06-21 09:07:46 +0000

Don't note monsters of HD <= 2. (Butterflies may be extremely rare, but when 
they appear, it's not interesting enough to be noted.) Tweak wizmode monster 
placement to never place monsters at the player position. Rather, change one of 
the neighbouring square's terrain type, if need be.

--------------------------------------------------------------------------------
7d74044829 | j-p-e-g | 2008-06-21 08:10:22 +0000

Really fix pickup.lua not to search for a butchering tool if you're wielding a 
cursed sharp-edged weapon. (My previous "fix" was preventing auto-picking up a 
butchering tool, at all!)

--------------------------------------------------------------------------------
b14c7ddf04 | dolorous | 2008-06-21 03:09:56 +0000

Comment fixes.

--------------------------------------------------------------------------------
608398b323 | dolorous | 2008-06-21 03:09:08 +0000

Make level-leaving monsters' time limit between levels 20-60 turns, so it'l a 
bit more like abjuration.

--------------------------------------------------------------------------------
6821901028 | dolorous | 2008-06-21 03:05:53 +0000

Pacified monsters now leave the level after 20-40 turns elapse when going 
between levels.  Also, even stationary monsters can disappear, although only by 
doing that or getting far out of LOS.  (Maybe pacification gives such monsters 
the power to move, for the sake of peace :) ?)

--------------------------------------------------------------------------------
40a5bf9e8b | dolorous | 2008-06-21 02:35:05 +0000

When going back to one level from another, make all pacified monsters on it 
leave the level.  Currently, this happens instantly, although there should 
probably be a time limit added.

--------------------------------------------------------------------------------
cc29724d46 | dolorous | 2008-06-21 02:08:25 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
cd740c9a08 | dolorous | 2008-06-21 01:30:18 +0000

Fix typo.

--------------------------------------------------------------------------------
107102062d | dolorous | 2008-06-21 01:28:24 +0000

When calculating distances for monsters leaving the level, use grid_distance() 
instead of distance(), as most other pathfinding-related code seems to do so.

--------------------------------------------------------------------------------
af9753f6d5 | dolorous | 2008-06-21 01:20:40 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
d634b5024e | dolorous | 2008-06-21 00:57:21 +0000

Really fix compilation.

--------------------------------------------------------------------------------
04236d16dd | dolorous | 2008-06-21 00:56:46 +0000

Fix compilation.

--------------------------------------------------------------------------------
6bdaed8ba8 | dolorous | 2008-06-21 00:54:59 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e2bd413296 | dolorous | 2008-06-21 00:52:35 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
5424e3e773 | dolorous | 2008-06-21 00:16:59 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
b2d1962ad6 | dolorous | 2008-06-21 00:02:59 +0000

For now, remove teleportation traps as targets for monsters leaving the level, 
until I can think of a way to make them a bit more consistent (e.g. such 
monsters' reading teleportation scrolls would leave too).  In the meantime, if 
they get far enough away from the player, they'll still leave.

--------------------------------------------------------------------------------
2fb3fc03a5 | dolorous | 2008-06-20 23:47:20 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5391056509 | dolorous | 2008-06-20 23:34:57 +0000

Clean up monsters' leaving the level a bit more.

--------------------------------------------------------------------------------
9fc2d1fa6a | dolorous | 2008-06-20 23:14:52 +0000

Improve handling of monsters leaving the level again: they all get messages 
when visible now.

--------------------------------------------------------------------------------
71f8757684 | dolorous | 2008-06-20 23:13:43 +0000

Add a few minor cleanups.

--------------------------------------------------------------------------------
a5d66474e6 | dploog | 2008-06-20 22:26:42 +0000

Update CREDITS.

--------------------------------------------------------------------------------
eb9ac06a2c | dolorous | 2008-06-20 22:14:08 +0000

Handle monsters leaving the level via traps in the right place.

--------------------------------------------------------------------------------
87453a6cb9 | dolorous | 2008-06-20 21:27:26 +0000

If a monster leaves the level via a trap that hasn't been discovered by the 
player (as can happen if they monster is native to the branch the trap is in), 
mark it as discovered by the player.

--------------------------------------------------------------------------------
6fc5961d64 | dolorous | 2008-06-20 21:15:31 +0000

Simplify.

--------------------------------------------------------------------------------
9b5ee487eb | dolorous | 2008-06-20 21:07:35 +0000

Improve level exit handling again.

--------------------------------------------------------------------------------
e867a0f0bf | dolorous | 2008-06-20 20:45:04 +0000

Simplify further.

--------------------------------------------------------------------------------
a0c2bb35c6 | dolorous | 2008-06-20 20:38:53 +0000

Fix compilation.

--------------------------------------------------------------------------------
2a306bbb26 | dolorous | 2008-06-20 20:36:20 +0000

Simplify.

--------------------------------------------------------------------------------
fffa9a93f7 | dolorous | 2008-06-20 20:30:41 +0000

Clean up handling of leaving via submersion.

--------------------------------------------------------------------------------
bb1b3b729b | dolorous | 2008-06-20 20:25:16 +0000

When looking for level exits, increase the range to twice the LOS radius.

--------------------------------------------------------------------------------
922051ddfb | dolorous | 2008-06-20 20:00:15 +0000

Smooth out the routines to find all the level exits.

--------------------------------------------------------------------------------
f3fd9351f4 | dolorous | 2008-06-20 18:21:05 +0000

If a monster leaving the level is one square away from a trap, make it leave 
the level then.  This will have to do until there's some way to fake the trap 
trigger message.

--------------------------------------------------------------------------------
dc0d3186c3 | dolorous | 2008-06-20 17:57:44 +0000

In halo_radius(), use LOS_RADIUS properly instead of hardcoding its value.

--------------------------------------------------------------------------------
e32b063aeb | dolorous | 2008-06-20 16:27:04 +0000

Make plain elves use S_SHOUT and orbs of fire use S_SILENT; the previous change 
applied to ball lightning instead of the latter.

--------------------------------------------------------------------------------
300d169829 | j-p-e-g | 2008-06-20 11:35:50 +0000

Add a few more ability descriptions. Change S_SHOUT -> S_SILENT for orbs of 
fire and moths of wrath.

--------------------------------------------------------------------------------
5ade5e47a4 | dploog | 2008-06-20 08:51:25 +0000

Added force_more_message example to init.txt (Zaba). Moved that option to the 
message section.

--------------------------------------------------------------------------------
777ba46036 | dolorous | 2008-06-20 05:26:19 +0000

After more testing, put back two cleanups from before that don't break anything.

--------------------------------------------------------------------------------
10ab53de10 | zelgadis | 2008-06-20 04:22:08 +0000

Bug 1997989: Only dancing weapon were being created in the Abyss if the player 
was bansihed from the Hall of Blades.

--------------------------------------------------------------------------------
692826c604 | dolorous | 2008-06-20 03:40:55 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
82d1156545 | j-p-e-g | 2008-06-19 21:53:43 +0000

Update tutorial information for the 'm' and 'a' screens. Space allowing, 
differentiate between hydras with different numbers of heads in the monster 
list. (This is probably only interesting in the Swamp.)

--------------------------------------------------------------------------------
920b471045 | dolorous | 2008-06-19 21:22:35 +0000

Simplify.

--------------------------------------------------------------------------------
abce0a8e86 | dolorous | 2008-06-19 21:20:56 +0000

Revert one more erroneous cleanup.

--------------------------------------------------------------------------------
6b01cb1a8f | dolorous | 2008-06-19 20:49:10 +0000

Simplify.

--------------------------------------------------------------------------------
a3134276d2 | dolorous | 2008-06-19 20:46:44 +0000

Revert another erroneous cleanup.

--------------------------------------------------------------------------------
6dbd2eeb24 | dolorous | 2008-06-19 20:21:16 +0000

Revert more erroneous cleanups.

--------------------------------------------------------------------------------
b2aa2c2245 | dolorous | 2008-06-19 19:58:30 +0000

Revert another one of my erroneous cleanups.

--------------------------------------------------------------------------------
85838206ba | dolorous | 2008-06-19 18:45:31 +0000

Comment fix.

--------------------------------------------------------------------------------
f48a6406b6 | dolorous | 2008-06-19 18:29:46 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
3674db9ee3 | dolorous | 2008-06-19 18:20:34 +0000

Simplify.

--------------------------------------------------------------------------------
c04cf4e35b | dolorous | 2008-06-19 17:59:52 +0000

Simplify.

--------------------------------------------------------------------------------
c4a73db49e | dolorous | 2008-06-19 17:41:05 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
46db6d94b1 | dolorous | 2008-06-19 17:24:39 +0000

Fix logic error from an attempted cleanup of mine (oops).  This seems to fix 
[1997650].

--------------------------------------------------------------------------------
eeba3e1f1c | dploog | 2008-06-19 16:12:40 +0000

Added some description for religious abilities.

--------------------------------------------------------------------------------
c5481ae738 | j-p-e-g | 2008-06-19 13:23:30 +0000

Fix logical error in which traps can be disarmed. (BR 1997834)

--------------------------------------------------------------------------------
2e844817bd | j-p-e-g | 2008-06-19 13:18:57 +0000

Extend the monster list merge handling to dancing weapons and mimics. Player 
ghosts should never be merged (rare as that case may be), but I can't test it 
because in wizard mode all ghosts are named "John Doe", so they always 
automerge on account of having the same name.

--------------------------------------------------------------------------------
fada7cc9c6 | j-p-e-g | 2008-06-19 12:59:48 +0000

Fix 1996837: Allow equipping spellcasters with ammunition on generation. Fix 
1997179: Merge zombies correctly in the monster list.

--------------------------------------------------------------------------------
da3bf95551 | j-p-e-g | 2008-06-19 11:41:29 +0000

Give the Tome of Destruction a fixed unidentified description ("ancient heavily 
glowing book"), it's already regarded as "dangerous", known or not, and tweak 
Trog's burning book message.

--------------------------------------------------------------------------------
8773334adb | dploog | 2008-06-19 10:02:56 +0000

Make named Pan lords patrolling.

--------------------------------------------------------------------------------
77b699b825 | dolorous | 2008-06-19 05:18:25 +0000

Since mons_clear_trapping_net() checks if the monster is caught in a net, a 
separate check before calling it is redundant, so remove instances of that.

--------------------------------------------------------------------------------
9c82502934 | zelgadis | 2008-06-19 05:05:08 +0000

For jewellery with pluses and wands, only make an ident note when the first 
item of the type is identified, not when the charges/pluses of any item of the 
type is identified.
Make sure that artefacts have nothing to do with the identification
level of jewellery by making versions of set_ident_type() and
get_ident_type() which accept a full item_def as a parameter.

--------------------------------------------------------------------------------
587b239210 | dolorous | 2008-06-19 04:59:15 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
7620017c9d | dolorous | 2008-06-19 04:51:34 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ca1dad99e9 | dolorous | 2008-06-19 04:30:28 +0000

For now, reenable emergency spells for monsters leaving the level.

--------------------------------------------------------------------------------
b04b408d81 | dolorous | 2008-06-19 03:55:54 +0000

Tweak god gift handling a bit more.

--------------------------------------------------------------------------------
a98b88c347 | zelgadis | 2008-06-19 03:30:46 +0000

note_items now only notes when items are identified.  NOTE_GET_ITEM is now 
hardcoded for when runes, the Orb, or artefacts are first picked up.

--------------------------------------------------------------------------------
478bb9ee6a | zelgadis | 2008-06-19 03:26:36 +0000

player_in_a_dangerous_place() can now optionally return if any hostile 
invisible monsters are nearby; for future use.

--------------------------------------------------------------------------------
6b01578aea | dolorous | 2008-06-19 02:32:59 +0000

Add various god gift-related cleanups.

--------------------------------------------------------------------------------
a0946957cc | j-p-e-g | 2008-06-18 22:22:59 +0000

Fix invisible monsters being described to "burst forth from the water" if 
there's no water nearby. (BR 1994574)

--------------------------------------------------------------------------------
48e04ad11d | haranp | 2008-06-18 21:55:27 +0000

Unknown potions are still useless for mummies. [1994979]

--------------------------------------------------------------------------------
57880a7aab | haranp | 2008-06-18 21:50:24 +0000

Fix most of 1995487: - hack description for Trog bookburning ability - fix typo 
in Trog description

--------------------------------------------------------------------------------
db91dfdd93 | haranp | 2008-06-18 21:19:40 +0000

Made randart mimic descriptions consistent. Fixes 1997052.

--------------------------------------------------------------------------------
e3d4c1c4df | haranp | 2008-06-18 21:05:17 +0000

Make redraw_screen() a bit smarter if the game isn't initialised yet. Fixes 
1996179.

--------------------------------------------------------------------------------
ac6b06b583 | dploog | 2008-06-18 20:38:45 +0000

Added more skill descriptions.

--------------------------------------------------------------------------------
b9242886fb | dolorous | 2008-06-18 20:38:35 +0000

Make _equip_undead() use coord_defs.

--------------------------------------------------------------------------------
341258b95e | j-p-e-g | 2008-06-18 20:21:53 +0000

Add the framework for descriptions for abilities to be read from the ability 
menu (a!) Currently only contains descriptions for Zin, TSO and "Renounce 
Religion". Also, now I'm worried that players might accidentally press '?' 
instead of '!' and then apply an ability when they only wanted to read its 
description. (Of course, with some of them you can opt out, e.g. because they 
need targeting, but for others it's a real problem.) There must be a good 
solution around somewhere. Abilities are not (yet) searchable in the database.

--------------------------------------------------------------------------------
c64b21cdfd | dolorous | 2008-06-18 19:52:05 +0000

Simplify again.

--------------------------------------------------------------------------------
2d1063f22d | dolorous | 2008-06-18 17:54:54 +0000

Add wording fix.

--------------------------------------------------------------------------------
50c201eae4 | j-p-e-g | 2008-06-18 17:36:50 +0000

Outsource the tutorial descriptions of skills, and make them searchable in the 
database. Apply Zaba's patch to view skills from the skill menu ('m'). The 
melee, ranged and magic skills currently only have really generic descriptions 
shamelessly copied from the tutorial. There's a front end function 
get_skill_description that appends extra information like what types of unarmed 
attacks the current character is capable of (kicking, clawing, punching, ...)

--------------------------------------------------------------------------------
88b3b611b4 | dolorous | 2008-06-18 17:36:42 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
7e4abb0e40 | dolorous | 2008-06-18 17:33:27 +0000

Documentation updates.

--------------------------------------------------------------------------------
34cc627a2c | dolorous | 2008-06-18 17:05:14 +0000

Simplify.

--------------------------------------------------------------------------------
faedbf5dd7 | dolorous | 2008-06-18 17:02:48 +0000

Clean up monsters' summoning undead.

--------------------------------------------------------------------------------
31aa459164 | dolorous | 2008-06-18 16:18:44 +0000

Comment fixes.

--------------------------------------------------------------------------------
7cc40f7309 | dolorous | 2008-06-18 16:16:14 +0000

Simplify.

--------------------------------------------------------------------------------
43e59e7626 | dolorous | 2008-06-18 16:11:14 +0000

Comment fix.

--------------------------------------------------------------------------------
752bd3be6f | dolorous | 2008-06-18 16:09:33 +0000

Add a few more follower-related cleanups.

--------------------------------------------------------------------------------
fdb1f24de9 | dolorous | 2008-06-18 16:00:35 +0000

Reenable level-leaving monsters' using shaft traps again, properly this time, 
and clean up a few related bits.  Note that such monsters don't properly 
disappear yet after falling through shafts.

--------------------------------------------------------------------------------
970609327e | dolorous | 2008-06-18 15:28:47 +0000

Don't make monsters leaving the level take shaft traps anymore: they avoid 
stepping on them, and if they're flying, they'll never fall through them 
anyway.  As for teleportation traps, maybe fleeing monsters should also head 
toward them if possible?

--------------------------------------------------------------------------------
2e56b593a6 | dolorous | 2008-06-18 14:54:42 +0000

Add another comment fix.

--------------------------------------------------------------------------------
9618e9151b | dolorous | 2008-06-18 14:52:29 +0000

Comment fix.

--------------------------------------------------------------------------------
163993e504 | dploog | 2008-06-18 14:06:49 +0000

Moved chunks_autopickup from 4-i to 4-a.

--------------------------------------------------------------------------------
388fa4e558 | j-p-e-g | 2008-06-18 13:14:51 +0000

Fix 1996770: shafts being capable of disarming. Fix 1996304: the Swap card 
incorrectly swapping monsters/player caught in a net

--------------------------------------------------------------------------------
184db9c1a6 | dolorous | 2008-06-18 06:39:16 +0000

Add another whitespace fix.

--------------------------------------------------------------------------------
4640373c3b | dolorous | 2008-06-18 06:38:44 +0000

Fix monster attitude comparison for ball lightnings.

--------------------------------------------------------------------------------
c764cf74d3 | dolorous | 2008-06-18 06:35:17 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
493c05e409 | dolorous | 2008-06-18 06:33:25 +0000

Revert one of the previous changes: unlike fleeing monsters, monsters leaving 
the level will no longer prefer their emergency spell, so that you can follow 
them to an exit if necessary.

--------------------------------------------------------------------------------
76cf7eda1e | dolorous | 2008-06-18 06:29:14 +0000

Take good neutrals into account when checking if a monster's enemies are 
around, and have a monster leaving the level cast spells like a fleeing 
monster, for the sake of getting out of the way.

--------------------------------------------------------------------------------
da651d3cf7 | dolorous | 2008-06-18 04:37:20 +0000

More progress on making pacified monsters leave the level.  They'll now find 
the nearest exit, and disappear once they reach it.  There's a new travel 
target, MTRAV_EXIT.
Notes:

This is currently very simplistic.  The monsters still don't use 
pathfinding, so if they're blocked, they'll just stand there again.

With shaft traps, the monsters shouldn't try to go directly to the 
target, since they can't disappear at the same time they fall through to 
another level.

With teleport traps, they should only go to them when all paths to exits 
are blocked, and they shouldn't disappear when they hit them.  There may 
also be issues if a monster hits one and reappears nearby, since it 
won't be far enough outside the player's LOS to disappear.

--------------------------------------------------------------------------------
96c9c3ffb5 | dolorous | 2008-06-18 03:16:47 +0000

Comment fix.

--------------------------------------------------------------------------------
0070374b59 | dolorous | 2008-06-18 03:16:13 +0000

Fix breakage.

--------------------------------------------------------------------------------
e7a0632492 | dolorous | 2008-06-18 03:11:22 +0000

Fix typo.

--------------------------------------------------------------------------------
c6b621bf1b | dolorous | 2008-06-18 03:08:45 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
a8aa884107 | dolorous | 2008-06-18 02:41:36 +0000

Comment fix.

--------------------------------------------------------------------------------
04b332058b | dolorous | 2008-06-18 02:40:41 +0000

Fix logic error.

--------------------------------------------------------------------------------
fa0ba05ecf | dolorous | 2008-06-18 02:39:44 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
2d8f6f0e00 | dolorous | 2008-06-18 02:24:30 +0000

Fix logic error.

--------------------------------------------------------------------------------
e506111224 | dolorous | 2008-06-17 21:23:13 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
1dd236b216 | dolorous | 2008-06-17 18:41:46 +0000

Comment out the routine that actually enables leaving the level until it's 
finished, to avoid problems for the non-adventurous types :)

--------------------------------------------------------------------------------
94410e3484 | dolorous | 2008-06-17 18:30:45 +0000

Add an unfinished attempt at making pacified monsters leave the level. 
BEH_LEAVE replaces BEH_INVESTIGATE, which wasn't being used.
Notes:

Since leaving the level is similar to fleeing in some ways, monsters 
leaving the level share some behaviors with fleeing monsters: they are 
less likely to shoot; they are more likely to use scrolls of blinking or 
teleportation; and leaving eyeballs won't paralyze you or drain your MP.

Leaving the level is also similar to lurking in some ways, so it won't 
be interrupted by noticing something, just as with lurking.

Getting far enough away from a monster will make it leave the level 
(i.e., die with KILL_DISMISSED and MF_HARD_RESET, so it takes its stuff 
with it), as will getting it into a grid it can submerge in, at which 
time it will submerge and leave the level.  Neither of these apply to 
monsters that can't move, of course, except for mimics, since they can 
teleport.

Incomplete things (sorry for the mess):

I still haven't figured out how to make a monster target a dungeon 
feature (in this case, the nearest level exit, the nearest teleportation 
or shaft trap, or the nearest submersible grid), so, currently, a 
pacified monster will just go to where its last target was and stand 
there until/unless one of the aforementioned level exit scenarios 
occurs.

Pacified monsters can still cast summoning spells.  Whatever they summon 
is neutral, just as they are, but such summons can still get in the way.  
(Try pacifying an orc high priest, for example.)  Maybe summoning should 
be disabled or have its chance lowered for neutral monsters in general, 
unless something's in their way?

Speaking of targeting, the leaving-by-submerging scenario should occur 
only if there's no other way to reach the target: all ways off the level 
are blocked, the monster's habitat is water and it's not amphibious, the 
monster's habitat is lava, or (possibly) the monster's habitat is rock.

There should be a message if the monster leaves the level, but what 
about the ones that do so out of the player's LOS?

--------------------------------------------------------------------------------
73466105ef | dolorous | 2008-06-17 16:47:28 +0000

Typo fix.

--------------------------------------------------------------------------------
8cf8302dd1 | dolorous | 2008-06-17 16:34:40 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
8b5066cba8 | j-p-e-g | 2008-06-17 14:59:23 +0000

Remove my stupid debugging mprs (whoops), fix eyes only staring at the player 
when fleeing and make oklob plants spit again (BR 1995290)

--------------------------------------------------------------------------------
9a976932d9 | j-p-e-g | 2008-06-17 14:34:42 +0000

Fix mephitic cloud allowing no self-targetting. (BR1995505)

--------------------------------------------------------------------------------
46291dca6b | dploog | 2008-06-17 09:44:13 +0000

Changed Trog texts slightly. This addresses one half of BR 1995487.

--------------------------------------------------------------------------------
4124beeb67 | dolorous | 2008-06-17 08:16:46 +0000

Simplify.

--------------------------------------------------------------------------------
aab5319a5f | zelgadis | 2008-06-17 07:42:11 +0000

Added "rare_interesting" game option.  Like ood_interesting, but for the value 
retruned by mons_rarity().

--------------------------------------------------------------------------------
841912a64c | zelgadis | 2008-06-17 07:17:37 +0000

If contaminate_player() makes the player glow when s/he wasn't glowing before 
then give a "you are contaminated with residual magics" type message instead of 
"you feel more contaminated with magical energies".

--------------------------------------------------------------------------------
4f5084a794 | dolorous | 2008-06-17 06:49:09 +0000

Simplify.

--------------------------------------------------------------------------------
24f899df41 | dolorous | 2008-06-17 06:33:24 +0000

Fix attack conduct handling to register more than one conduct for an attack 
again.  For example, if you make an unchivalric attack on a neutral monster, 
both the "unchivalric attack" and "attack neutral" conducts will be handled 
again, instead of just the former (big oops).
Passing a constant-sized array of god_conduct_triggers and adding 
wrapper functions to enable and disable them all is not the most elegant 
solution, but I don't quite have the time or the understanding right now 
to rewrite the god_conduct_trigger class to handle more than one conduct 
at once, and this does work in the meantime.

--------------------------------------------------------------------------------
c3e48e8a84 | dolorous | 2008-06-17 05:54:46 +0000

Fix spelling.

--------------------------------------------------------------------------------
589b73df2b | dolorous | 2008-06-17 05:28:33 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
f8fed529e3 | dolorous | 2008-06-17 03:48:08 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
20ffc0ca15 | dolorous | 2008-06-17 03:40:45 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
8c848e22df | dolorous | 2008-06-17 03:25:24 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
85d5c3d377 | dolorous | 2008-06-17 03:19:29 +0000

Fix compilation again.

--------------------------------------------------------------------------------
f58f7eb138 | dolorous | 2008-06-17 03:16:35 +0000

Clean up handling of monsters' changing attitudes due to religion, and a few 
other related bits.

--------------------------------------------------------------------------------
280b760708 | dolorous | 2008-06-17 02:48:29 +0000

Add more miscellaneous minor cleanups.

--------------------------------------------------------------------------------
b89faa7c00 | dolorous | 2008-06-17 02:14:24 +0000

Add yet more miscellaneous minor fixes.

--------------------------------------------------------------------------------
b9fa595ee8 | dolorous | 2008-06-17 02:10:19 +0000

Add one last cleanup.

--------------------------------------------------------------------------------
582234062b | dolorous | 2008-06-17 01:45:54 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9b87e73148 | dolorous | 2008-06-17 01:28:37 +0000

Readd erroneously removed parentheses.

--------------------------------------------------------------------------------
8ebb4ada43 | dolorous | 2008-06-17 01:26:01 +0000

Fix compilation.

--------------------------------------------------------------------------------
c607c2f3f8 | dolorous | 2008-06-17 01:11:57 +0000

Make yet more use of wrappers.

--------------------------------------------------------------------------------
a041cf6113 | dolorous | 2008-06-17 00:34:31 +0000

Add yet more cleanups.

--------------------------------------------------------------------------------
2e69e71948 | dolorous | 2008-06-16 23:46:24 +0000

Comment fix.

--------------------------------------------------------------------------------
79a1253b5c | dolorous | 2008-06-16 23:45:21 +0000

Add miscellaneous minor fix.

--------------------------------------------------------------------------------
26324fa6b7 | dolorous | 2008-06-16 23:38:04 +0000

Add still more cleanups.

--------------------------------------------------------------------------------
48d27c2267 | dolorous | 2008-06-16 23:33:40 +0000

Add still more cleanups.

--------------------------------------------------------------------------------
9bce5089aa | dolorous | 2008-06-16 23:23:37 +0000

Add more cleanups.

--------------------------------------------------------------------------------
f0a8d0474f | dolorous | 2008-06-16 23:11:59 +0000

Use more wrappers, and add more cleanups.

--------------------------------------------------------------------------------
ce1424a588 | dolorous | 2008-06-16 22:44:58 +0000

Use more wrapping functions, and add a few cleanups.

--------------------------------------------------------------------------------
22c91dfadb | dolorous | 2008-06-16 22:09:35 +0000

Use wrapper functions more often when checking monster behaviors.

--------------------------------------------------------------------------------
d019430958 | dolorous | 2008-06-16 21:41:09 +0000

Add spacing fix.

--------------------------------------------------------------------------------
a3b6953864 | j-p-e-g | 2008-06-16 21:31:23 +0000

Fix randart jewellery always named "of Bugginess". Fix pickup.lua trying to 
find a butcher tool if the wielded edged weapon happens to be cursed.

--------------------------------------------------------------------------------
1e6ed3ddb7 | dolorous | 2008-06-16 21:13:38 +0000

Add yet more miscellaneous minor fixes.

--------------------------------------------------------------------------------
586ad4ccbd | dolorous | 2008-06-16 19:52:02 +0000

Clean up yet some more.

--------------------------------------------------------------------------------
a0dc8e13e5 | dolorous | 2008-06-16 19:43:17 +0000

Clean up some more.

--------------------------------------------------------------------------------
b3d8365da8 | dolorous | 2008-06-16 19:27:45 +0000

Clean up and consolidate most of the monster pacification routines.

--------------------------------------------------------------------------------
f61a531950 | dolorous | 2008-06-16 17:49:06 +0000

Simplify further.

--------------------------------------------------------------------------------
b6cca042b4 | dolorous | 2008-06-16 17:34:16 +0000

Simplify.

--------------------------------------------------------------------------------
23dc8538c3 | dolorous | 2008-06-16 16:31:01 +0000

Make -raise_corpse() and animate_a_corpse() use coord_defs instead of x and y 
coordinates.

--------------------------------------------------------------------------------
53c0cf27ad | dolorous | 2008-06-16 16:04:57 +0000

Make animate_a_corpse() and animate_dead() use the new stack_iterator class.

--------------------------------------------------------------------------------
42acab0b7d | j-p-e-g | 2008-06-16 14:58:51 +0000

Don't change beam names for tracers. (Fixes 1994978.) Clean up the vampire 
ability screen a bit. Special case naga bardings of running (according to 
makeitem.cc they can exist) to be called "naga barding of speedy slithering" 
instead. Yes, it's a hack, and yes, the name is rather unwieldy, but it makes 
more sense this way. I hope. :p

--------------------------------------------------------------------------------
e2e74507bb | j-p-e-g | 2008-06-16 13:51:20 +0000

Implemented a modified version of FR 1994116: change inscription interface.
Instead of "Do you wish to inscribe this item? (y/n)" directly print
"Add what to inscription? (You may also (a)utoinscribe or (c)lear it.)"
(a) and (c) only where applicable, of course. 
This has two benefits: No extra prompt needed to inscribe anything, 
and I've finally managed to merge both the { prompt and inscribing 
from viewing into the same function. 
Escape or pressing Enter on an empty inscription string (or one only 
consisting of spaces) will return without changing anything.

--------------------------------------------------------------------------------
45d98c4f38 | j-p-e-g | 2008-06-16 10:12:58 +0000

Add more detailed how-to information on Nemelex and Elyvilon.

--------------------------------------------------------------------------------
21ea1485ec | haranp | 2008-06-16 07:31:57 +0000

Fix 1994840: good items were never racial boots.

--------------------------------------------------------------------------------
3dcc9d0f7b | haranp | 2008-06-16 07:08:18 +0000

More cleanups and use of stack_iterator. Added operator-> to stack_iterator and 
radius_iterator.

--------------------------------------------------------------------------------
f13fb6fd22 | haranp | 2008-06-16 06:11:50 +0000

Finally implemented stack_iterator(), a way to iterate over objects in a stack 
without all that o = mitm[o].link stuff. Redid Ely's destroy weapons power to 
use it.

--------------------------------------------------------------------------------
aca7f0db12 | dolorous | 2008-06-16 05:22:40 +0000

Simplify.

--------------------------------------------------------------------------------
aaf0ed75a4 | dolorous | 2008-06-16 05:10:06 +0000

Fix [1994684]: Weapon enchantments were always failing if only one of the two 
stats was 9 or greater, instead of both.

--------------------------------------------------------------------------------
3abe199e7f | dolorous | 2008-06-16 02:33:49 +0000

Add still more spacing fixes.

--------------------------------------------------------------------------------
97c15a3861 | dolorous | 2008-06-16 02:26:06 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
fef9f68153 | j-p-e-g | 2008-06-15 23:12:03 +0000

Move the tutorial descriptions of gods' likes and dislikes into functions of 
their own, and reuse them in the god descriptions ('^' screen, when praying at 
altars, and when searching the database).
What's still missing is some sort of "What this god offers you". The
current handling makes gods like Lugonu, who have no restrictions and
demand very little, appear like no-brainers, when of course the whole
thing is much more complicated. 
I'll also be adding some extended information for the ^ screen (thus 
for your own god only).

--------------------------------------------------------------------------------
640681c014 | dolorous | 2008-06-15 22:40:10 +0000

Add yet another spacing fix.

--------------------------------------------------------------------------------
2feaed672e | dolorous | 2008-06-15 22:22:54 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
37fa908ee1 | haranp | 2008-06-15 22:01:43 +0000

General code cleanups.

--------------------------------------------------------------------------------
a73c04ebd8 | haranp | 2008-06-15 21:43:04 +0000

Use radius_iterator instead of manually looping.

--------------------------------------------------------------------------------
81267749e6 | dolorous | 2008-06-15 21:21:02 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
7a76ccd4b9 | dolorous | 2008-06-15 21:09:40 +0000

Apparently, necrophagi and ghouls are supposed to be able to pick up and use 
weapons and armor, given that doing so is hardcoded into 
_handle_monster_move().  Give them MONUSE_WEAPONS_ARMOUR again and remove the 
hardcoded exceptions for them.

--------------------------------------------------------------------------------
62000c44bf | dolorous | 2008-06-15 20:57:54 +0000

Add spacing fix.

--------------------------------------------------------------------------------
3470d7b439 | j-p-e-g | 2008-06-15 20:25:37 +0000

Remove an accidental re-insertion of spawn_random_monster. Sorry about that!

--------------------------------------------------------------------------------
51e06c0547 | j-p-e-g | 2008-06-15 20:15:48 +0000

Fix the Vestibule having no upstairs. o_O Fix fleeing monsters shooting at you. 
(BR 1994462)

--------------------------------------------------------------------------------
f5824a2c73 | dolorous | 2008-06-15 19:56:32 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
c27083cc4f | haranp | 2008-06-15 19:34:20 +0000

Produce a proper prompt when dropping 15 of 25 arrows inscribed with !d. This 
is an evil hack; we might be better off without it... Fixes 1853852.

--------------------------------------------------------------------------------
0f86ce1593 | dolorous | 2008-06-15 18:58:25 +0000

Comment fixes.

--------------------------------------------------------------------------------
38837c26f0 | dolorous | 2008-06-15 18:56:23 +0000

In the "%" screen, always display the shield class number. even when no 
physical shield is equipped.  This is so that, if the only shield available is 
magical, the player can see the shield class, just as in the HUD.

--------------------------------------------------------------------------------
5a640db5e6 | dolorous | 2008-06-15 18:46:00 +0000

Fix [1928206] by taking wasp's suggestion of moving spawn_random_monsters() 
from world_reacts() to handle_time(), so that, in terms of game time, it's done 
at the same rate as other events.

--------------------------------------------------------------------------------
d6e2f77b10 | dolorous | 2008-06-15 18:39:46 +0000

Add yet more miscellaneous minor fixes.

--------------------------------------------------------------------------------
5d779389ac | dolorous | 2008-06-15 18:26:08 +0000

Add still more miscellaneous minor fixes.

--------------------------------------------------------------------------------
4c242b3c50 | dolorous | 2008-06-15 18:08:32 +0000

Add spacing fix.

--------------------------------------------------------------------------------
f7e71c953f | dolorous | 2008-06-15 18:05:27 +0000

Add more miscellaneous minor cleanups.

--------------------------------------------------------------------------------
17031358b3 | dolorous | 2008-06-15 17:46:11 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
aa350127a0 | dolorous | 2008-06-15 17:00:33 +0000

Comment fix.

--------------------------------------------------------------------------------
8e4516ef59 | dolorous | 2008-06-15 16:59:38 +0000

Properly treat "Summon Scorpions" as a no-op in setup_mons_cast().

--------------------------------------------------------------------------------
dc6826e6b1 | j-p-e-g | 2008-06-15 15:03:31 +0000

Treat all bazaars as noteworthy, not just the first one. Since bazaars are 
currently the only type of portal chambers, just refer to them as bazaars in 
the notes. (The subchecks for the "bazaar" flag don't work with packed_place, 
unfortunately.)

--------------------------------------------------------------------------------
c4fe8d851b | j-p-e-g | 2008-06-15 14:29:27 +0000

Fix 1994279: Crash when checking ?v (version information). Fix 1994352: Buggy 
message after an invisible monster blocks an attack.

--------------------------------------------------------------------------------
94ecb28d87 | j-p-e-g | 2008-06-15 12:42:37 +0000

Fix tutorial message about gaining a skill being shown outside tutorial. Move 
damage reduction for petrified monsters out of the stab check and into the 
general damage calculation. Still 1/3.

--------------------------------------------------------------------------------
78db5db504 | dploog | 2008-06-15 11:46:24 +0000

Added comment.

--------------------------------------------------------------------------------
7fce9b7324 | j-p-e-g | 2008-06-15 11:32:54 +0000

Fix 1948131: Quiver slot name wraps around the screen. Also fixes tile issues 
where the inventory was partly covered or not shown at all.

--------------------------------------------------------------------------------
ead36b3ba4 | dploog | 2008-06-15 11:17:43 +0000

Fix BR 1994194: added spell description for Petrify. Wording may be odd.

--------------------------------------------------------------------------------
a58c6bc750 | haranp | 2008-06-15 09:33:36 +0000

Cleaned up skill percentage calculation. Should fix 1929156.

--------------------------------------------------------------------------------
19081dd2e2 | haranp | 2008-06-15 08:59:49 +0000

Added SPFLAG_NEUTRAL for utility spells which should use TARG_ANY. Currently 
only used by Dig. We might want to redo Apportation to use this at some point. 
[1994284]

--------------------------------------------------------------------------------
3130143ebd | dolorous | 2008-06-15 06:50:53 +0000

Simplify.

--------------------------------------------------------------------------------
ab5e363b36 | dolorous | 2008-06-15 06:46:07 +0000

Comment fixes.

--------------------------------------------------------------------------------
57f3c8228f | dolorous | 2008-06-15 05:53:07 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
f6b5d80d95 | dolorous | 2008-06-15 05:35:16 +0000

After some more thought, revert the ghoul family changes; ghouls only 
physically attack via clawing, and the rotting/disease attacks are strong 
enough.

--------------------------------------------------------------------------------
7a443c1839 | dolorous | 2008-06-15 05:27:13 +0000

Since guardian mummies are supposed to be able to use weapons and armor, and 
also because they're guardians and shouldn't be so stupid (to borrow from 
jpeg's comment regarding Orb Guardians), increase their intelligence from 
I_PLANT to I_NORMAL.  Also, since monsters in the ghoul family have normal 
intelligence and are physical creatures, give them the ability to use weapons 
and armor.

--------------------------------------------------------------------------------
398d1038a9 | dolorous | 2008-06-15 04:18:49 +0000

Since (very) ugly things are of animal intelligence, they shouldn't be able to 
speak, so make them roar instead of shout.

--------------------------------------------------------------------------------
b20e5ec279 | dolorous | 2008-06-15 04:12:02 +0000

Add another comment fix.

--------------------------------------------------------------------------------
2194b912fa | dolorous | 2008-06-15 04:11:10 +0000

Simplify.

--------------------------------------------------------------------------------
ddac7e9463 | dolorous | 2008-06-15 04:03:55 +0000

Comment fix.

--------------------------------------------------------------------------------
2e4b33da7d | dolorous | 2008-06-15 04:03:04 +0000

Fix a previous fix.

--------------------------------------------------------------------------------
4dbe58f4d8 | dolorous | 2008-06-15 04:02:21 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
209572b6a2 | dolorous | 2008-06-15 03:54:38 +0000

Update tutorial message to account for (most of) Yred's followers' being able 
to equip themselves.

--------------------------------------------------------------------------------
456ef571fa | dolorous | 2008-06-14 22:52:41 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
afc24e8d7a | dolorous | 2008-06-14 21:39:40 +0000

Add one more entry.

--------------------------------------------------------------------------------
ae06324c95 | dolorous | 2008-06-14 21:28:58 +0000

Add a few more randart weapon name entries.

--------------------------------------------------------------------------------
500822f593 | dploog | 2008-06-14 19:54:24 +0000

Added missing labyrinth minotaur (uru).

--------------------------------------------------------------------------------
5a3b3d5fad | dolorous | 2008-06-14 19:03:25 +0000

Clean up handling of follower blessings.

--------------------------------------------------------------------------------
c1832ef5f3 | dolorous | 2008-06-14 19:00:36 +0000

Expand the list of gods that give permanent followers to include Yred, since 
the undead servants he randomly grants you are permanent, and are often smarter 
than zombies.

--------------------------------------------------------------------------------
c7e632b377 | dolorous | 2008-06-14 18:53:57 +0000

For Beoghites, make sure that only your orcish followers (as opposed to any 
orcs) follow you down the stairs in groups.

--------------------------------------------------------------------------------
dac70786ba | dolorous | 2008-06-14 18:45:23 +0000

Consolidate the checks for gods that give you permanent followers into a 
function, and have it take the other good gods into account, since, if you 
switch from TSO to another good god, you keep all your non-daeva permanent 
followers.

--------------------------------------------------------------------------------
43a8fc267d | dolorous | 2008-06-14 18:24:14 +0000

Remove unneeded blank lines.

--------------------------------------------------------------------------------
8760aefa6b | j-p-e-g | 2008-06-14 18:19:16 +0000

* Add a prompt when attacking monsters with an inappropriate weapon or   when 
attempting to use (controlled) berserk while wielding an   inappropriate 
weapon. (FR 1956656)
* Make monsters stop patrolling/travelling if they change levels (or are
  banished).

* Disable the friendly pickup toggle for characters unable to use them.
  Currently, only worshippers of TSO and Beogh are capable of gaining
  allies that are permanent (not summoned), permanently friendly (not
  charmed) and intelligent enough to pick up stuff (no zombies). I don't
  know if you keep your friends if you leave TSO. If so, the toggle
  should be enabled while that is the case (i.e. if you're still
  worshipping a good god)

* Re-order the wizmode commands in the help screen. They're now not
  listed strictly alphabetically anymore, but rather sorted into
  different categories that should make actually finding commands easier.

--------------------------------------------------------------------------------
866686d5df | dolorous | 2008-06-14 18:03:45 +0000

Add more god gift-related fixes.  First, expand mgen_data::hostile_at() to 
allow specifying more parameters, and merge it with 
mgen_data::alert_hostile_at(), since their only difference after expansion is 
the hostile monster's target.  Second, if a god makes you cast Fire Storm, any 
fire vortices produced will finally be marked as god gifts.  Third, for 
consistency, don't immediately alert miscast-produced spatial vortices to your 
presence, since the aforementioned fire vortices aren't.

--------------------------------------------------------------------------------
661eef8d4e | dolorous | 2008-06-14 17:56:42 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
a88acc05c6 | dolorous | 2008-06-14 17:40:56 +0000

And use the proper target for mgen_data::sleeper_at().

--------------------------------------------------------------------------------
4e028d4b0e | dolorous | 2008-06-14 17:34:00 +0000

Make mgen_data::sleeper_at() actually use its flags parameter.

--------------------------------------------------------------------------------
37f42fc40f | dolorous | 2008-06-14 16:17:48 +0000

Comment fixes.

--------------------------------------------------------------------------------
2f2e34a5a6 | dolorous | 2008-06-14 16:06:30 +0000

Add miscellaneous minor cleanups.

--------------------------------------------------------------------------------
014ab7e33a | zelgadis | 2008-06-14 10:15:25 +0000

Fix bug where dumping the character to file would turn off note taking for the 
rest of the game session.
Make a note if the user starts the game in wizard mode, when wizard mode
is entered, and when death is escaped via wizard mode.

--------------------------------------------------------------------------------
0a14dac08b | zelgadis | 2008-06-14 08:04:39 +0000

Use the menu item colour prefixes with note_items, so that (for example) you 
can only note identified books, or you can note picking up unidentified 
randarts.
When an item is bought from a shop, mpr() a line about the item, so that
you can use note_messages to keep note of everything you've bought.

--------------------------------------------------------------------------------
8457ded270 | j-p-e-g | 2008-06-14 06:31:26 +0000

Increase xp modifier for Snorg.

--------------------------------------------------------------------------------
c2e5ac10de | zelgadis | 2008-06-14 06:02:16 +0000

Bug 1992619: if the player hit '>' on a labyrinth entracnce right before it 
timed out, then the entrance *would* time out during the stair climbing delay, 
removing the marker before the delay ended and thus preventing the player from 
entering.  Now timed feature markers check for this, in which case the marker 
isn't deleted and a message of "The foo vanishes just as you enter it!" is 
given.

--------------------------------------------------------------------------------
13ad9f1840 | dolorous | 2008-06-14 05:11:32 +0000

Make demon summoning via invocations produce friendly instead of charmed demons 
again.

--------------------------------------------------------------------------------
6ed1427c56 | dolorous | 2008-06-14 02:08:51 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
8ac3d15a87 | dolorous | 2008-06-14 01:11:23 +0000

Make Lugonu properly accept collateral kills again.

--------------------------------------------------------------------------------
2ca3425d5c | dolorous | 2008-06-14 00:54:17 +0000

Add comment.

--------------------------------------------------------------------------------
0617b5e356 | dolorous | 2008-06-14 00:42:50 +0000

Simplify.

--------------------------------------------------------------------------------
6ea1744800 | dolorous | 2008-06-14 00:34:21 +0000

Improve handling of god gifts when dumping gods, so that only god gifts granted 
to you by that god are affected.

--------------------------------------------------------------------------------
cb7ec29135 | dolorous | 2008-06-14 00:21:20 +0000

Mark daevas summoned by TSO's power as god gifts from TSO.

--------------------------------------------------------------------------------
9147f8005e | dolorous | 2008-06-14 00:07:22 +0000

Add another spacing fix.

--------------------------------------------------------------------------------
d4959c9b1a | dolorous | 2008-06-13 23:59:03 +0000

Mark berserkers summoned via "Brothers in Arms" as god gifts from Trog.

--------------------------------------------------------------------------------
aaab17ef29 | dolorous | 2008-06-13 23:55:31 +0000

Add one last minor cosmetic fix.

--------------------------------------------------------------------------------
5efcff86b5 | dolorous | 2008-06-13 23:53:30 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
3edacadcb2 | dolorous | 2008-06-13 23:44:16 +0000

Add follower-related cleanups.

--------------------------------------------------------------------------------
b698d649b8 | dploog | 2008-06-13 23:13:45 +0000

Added another Temple map (Zaba).

--------------------------------------------------------------------------------
8d4516f8e4 | j-p-e-g | 2008-06-13 23:05:56 +0000

Implement FR 1928421: let Snorg go berserk!
There's a flat 5% chance of Snorg going berserk each turn an enemy (you
or an ally) is in sight. Once he is wounded, even if just by a scratch,
that chance increases to 20% per turn.

--------------------------------------------------------------------------------
51e9a45567 | zelgadis | 2008-06-13 22:42:36 +0000

Bug 1983398: turns out the royal jelly wasn't regenerating by eating mechanical 
trap items, but rather because update_level() wasn't respecting the M_NO_REGEN 
flag when healing monsters upon returning to a level, so the royal jelly was 
healing on Slime:6 while I was resting on Slime:5.
Also, add a debug diagnostic message for which monster is eating which item.

--------------------------------------------------------------------------------
24cddbf9bc | dolorous | 2008-06-13 22:34:00 +0000

Simplify further.

--------------------------------------------------------------------------------
655a369934 | dolorous | 2008-06-13 22:30:56 +0000

Simplify.

--------------------------------------------------------------------------------
b2a6d5d74c | j-p-e-g | 2008-06-13 22:29:02 +0000

Re-enable batform when drawing the Metamorphosis card but add a fail-safe 
mechanism for *any* transformation to abort if it would cause death by stat 
loss. (For other transformations this could happen because of the auto-removal 
of statboosting equipment.) Note that the Flight card already has a chance of 
turning you into a bat (or a spider). Of course the same applies here, as well 
as when casting spells.

--------------------------------------------------------------------------------
283f9ec90a | dolorous | 2008-06-13 21:47:05 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
36cb1e6187 | j-p-e-g | 2008-06-13 21:33:23 +0000

Fix 1992604: monster_los asserting for positions out of bounds. Mark bees 
created in bee hives as patrolling.

--------------------------------------------------------------------------------
a71e775e71 | dolorous | 2008-06-13 20:44:40 +0000

Make TSO's abjuration protection properly increase with monster hit dice 
instead of decrease (oops).

--------------------------------------------------------------------------------
56b0777e2a | dolorous | 2008-06-13 20:23:25 +0000

Display abjuration protection messages for hostile god gifts in the proper god 
channels.

--------------------------------------------------------------------------------
98cb4527a1 | dolorous | 2008-06-13 20:13:49 +0000

Add abjuration protection for gifts from TSO and Trog, both friendly and 
hostile.  (TSO currently doesn't send any abjurable hostile gifts, but the 
framework is in place for if/when that changes.)

--------------------------------------------------------------------------------
31bac929c7 | dploog | 2008-06-13 20:11:53 +0000

Some changes to vaults, mostly adding patrolling tags.

--------------------------------------------------------------------------------
353f925136 | dolorous | 2008-06-13 19:28:55 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
7f9a43df02 | dolorous | 2008-06-13 19:16:09 +0000

Fix compilation.

--------------------------------------------------------------------------------
7fec7efc88 | dolorous | 2008-06-13 19:14:52 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
a8cb3e6b0d | dolorous | 2008-06-13 18:25:27 +0000

Use MAX_PIETY properly in a few more places.

--------------------------------------------------------------------------------
5f025c63e5 | dolorous | 2008-06-13 18:19:23 +0000

Revert some uses of MAX_PIETY; xom_acts() takes a power value, not a piety 
value.

--------------------------------------------------------------------------------
1a948e502a | dolorous | 2008-06-13 14:51:59 +0000

Fix warning.

--------------------------------------------------------------------------------
19e10cc15f | j-p-e-g | 2008-06-13 14:41:04 +0000

Change MONUSE_OPEN_DOOR -> MONUSE_NOTHING for a number of monsters, including 
dragons and other animal-like monsters. (Fixes 1992865)
I think it's okay that golems are stupid but able to open doors. And
while I was at it I made the orb guardians smarter (I_PLANT ->
I_NORMAL) because, really, what kind of guardians are they if they're so
stupid?

--------------------------------------------------------------------------------
1572e9c922 | j-p-e-g | 2008-06-13 14:19:42 +0000

Added several new tutorial triggers including information on being caught in a 
net, specific skills, magic resistance, and which stat to choose.
In a given game you'll only ever see a small fraction of all tutorial
events (we're at 71 now, and some of them are exclusive). In fact, a lot
of the information is so generally useful (esp. on gods, skills and items) 
that I'm seriously considering opening up the general information (How do I 
use item x? What does Spellcasting do?) to a wider selection of characters.
I don't think we'll want to explain the intricacies of Mummies, Ghouls,
or Vampires, but a lot of this stuff even applies to them... (If we
overhaul the tutorial, it's certainly not a 0.4 target, though.)

Resetting the tutorial version to 8 as we somehow switched from digital
version to binary and back to digital. It will take some time until we
actually reach 110, and by then, I am sure the base files won't be save
compatible anymore. :)

--------------------------------------------------------------------------------
71c47c6d4e | dploog | 2008-06-13 10:18:36 +0000

Made the trolls under the bridge patrol. We might want to do the same for for 
the anthill, the beehives etc.

--------------------------------------------------------------------------------
25b79e5a7d | haranp | 2008-06-13 10:11:02 +0000

When saccing an item with a quantity (e.g. bunch of arrows), treat it as if the 
appropriate number of singleton items were sacced. Modify Okawaru and Makhleb 
piety gain test slightly.

--------------------------------------------------------------------------------
be3b7411e1 | dolorous | 2008-06-13 05:59:58 +0000

Use MAX_PIETY in a few more places.

--------------------------------------------------------------------------------
9257941e59 | dolorous | 2008-06-13 05:51:18 +0000

Use MAX_PIETY in more places.

--------------------------------------------------------------------------------
e9fbd10528 | dolorous | 2008-06-13 05:36:34 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
b387e5b77f | dolorous | 2008-06-13 03:10:01 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
54f997488c | ennewalker | 2008-06-13 00:11:36 +0000

Fixing some instances where tile indices from the mcache were not being 
stripped from the remembered foreground.  This fixes an issue where a load/save 
will show out of sight monsters as unknown monsters.

--------------------------------------------------------------------------------
da564513af | ennewalker | 2008-06-12 23:58:38 +0000

[1982177] Fix issue where the minimap wasn't coloring out-of-sight neutral or 
friendly monsters correctly.

--------------------------------------------------------------------------------
432aa54add | ennewalker | 2008-06-12 22:47:04 +0000

[1974966] Display icon for hostile weapons in tiles.

--------------------------------------------------------------------------------
3dc7037033 | j-p-e-g | 2008-06-12 20:16:53 +0000

Add explanatory comments to the pathfinding routines. I might have gone 
overboard here :) - but I figured that it could be useful to occasionally 
explain *why* I implemented something a certain way.

--------------------------------------------------------------------------------
009761f3ac | ennewalker | 2008-06-12 17:21:31 +0000

[1991558] Fixing issue where enchanting hides while wearing them didn't update 
te player tile correctly.

--------------------------------------------------------------------------------
4a4ffd252b | ennewalker | 2008-06-12 17:08:27 +0000

[1991381] Fixed issue where items on the player square were not being updated 
until viewed from a separate square, which caused problems when teleporting.

--------------------------------------------------------------------------------
3088c557f6 | ennewalker | 2008-06-12 16:57:52 +0000

Fixing logic error so that D:1 can be created again.

--------------------------------------------------------------------------------
b7fbb8da96 | j-p-e-g | 2008-06-12 16:08:49 +0000

AutoID the curse status of a monster wielded cursed ranged weapon if said 
monster is trying to hit you with it.
Don't give away what weapon a monster is carrying if it is not actually 
wielding it, especially not in the form of "A goblin, wielding a sling."
that is shortly followed by "The goblin wields a sling." :p

--------------------------------------------------------------------------------
db16378409 | dolorous | 2008-06-12 15:30:14 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
1bff3c05dd | j-p-e-g | 2008-06-12 14:39:38 +0000

Implement the Petrify spell in a rather basic variant, and replace the player 
spell "Paralyse" with it, i.e. not the wand/potion/misc. effects.
Petrify is a 4th level spell of the Enchantment/Transmigrations school
(a unique combination, I believe), all other values (incl. the level)
were shamelessly stolen from Paralysis.
Anyway, it consists of two elements (so I actually added TWO new
enchantments), Petrifying and Petrified.
A monster that is petrifying cannot move around but can perform actions
like hitting adjacent monsters or casting spells at a slowed rate (1.5
of the normal cost). Once this sub-enchantment runs out (happens faster)
the monster cannot move or act anymore, so it works like Paralysis. The
damage you do during stabbing is one third of what you'd do otherwise,
for both states of enchantment, and for both stabbing counts as
unchivalric behaviour.

It has not been implemented as a monster spell, and ghosts of characters
that had it will use Paralyse instead. Consequently, the effect on the
player (in self targetting) only handles the Petrified part.

Numbers, esp. enchantment timeout, will need tweaking. They're currently 

Petrifying:
cturn = 50 / _mod_speed(10, mons->speed);

Petrified:
cturn = std::max(8, 150 / (1 + modded_speed(mons, 5)))

because I wanted the first to always run out faster than the second, but
at the same time make the ratio of Petrifying/Petrified tilt in favour
of the first for powerful monsters. The numbers are more or less made
up, and tested with different monsters in wizard mode. Still, could be
anything between too weak and overpowered, though the latter is more
likely.

--------------------------------------------------------------------------------
a6faebe0c2 | zelgadis | 2008-06-12 09:42:18 +0000

Oops, don't touch beam.foe_count if the "beam" is actually a missile.

--------------------------------------------------------------------------------
9695466e98 | dploog | 2008-06-12 09:36:07 +0000

Changed "plastic amulet" to "graven amulet".

--------------------------------------------------------------------------------
e71a7771a4 | zelgadis | 2008-06-12 09:21:06 +0000

beam.foe_count (and related members) weren't being updated when a monster was 
in the path of a non-enchantment beam.

--------------------------------------------------------------------------------
14f96d4f59 | j-p-e-g | 2008-06-12 09:03:37 +0000

Remove unneeded methods (including the old resistance screen), rename debugging 
functions, and some other clean-up.

--------------------------------------------------------------------------------
42d4567bed | zelgadis | 2008-06-12 07:57:30 +0000

The "search description database" command is '?/', not '?\'.

--------------------------------------------------------------------------------
7142a710d8 | j-p-e-g | 2008-06-12 06:55:11 +0000

Improve performance by only checking whether there are lava or deep water grids 
nearby if the player recently moved (or restarted a game) and if a non-adjacent 
monster tries to reach the player.
Remove now unneeded lua code (was used for the old pickup.lua) and make
monsters switch away from ranged weapons when engaging you in melee. If
a monster will still insist on hitting you with a sling it's a sure sign
said sling is cursed (doesn't autoID, though).

--------------------------------------------------------------------------------
3369ae23fd | dolorous | 2008-06-12 06:12:35 +0000

Make sure chaotic beings are actually angered by Zin worshippers (oops).

--------------------------------------------------------------------------------
7048b8fc93 | zelgadis | 2008-06-12 06:11:11 +0000

Recalculate permanent mutations when changing species, but leave non-permanent 
mutations in place.

--------------------------------------------------------------------------------
70ddc82fc9 | dolorous | 2008-06-12 06:05:02 +0000

Handle things properly if you start worshipping Zin and have both evil and 
chaotic allies beforehand.

--------------------------------------------------------------------------------
9dac0e0e3b | zelgadis | 2008-06-12 05:53:52 +0000

Make extra-sure to reject invalid mutations.  And if the player somehow gets an 
invalid one anyways (a mutation for which mutation_name() has no name) then 
when listing abilities give a line with error information instead of a blank 
line.

--------------------------------------------------------------------------------
76b79d4cfb | dolorous | 2008-06-12 04:55:50 +0000

Clean up handling of killing mutators or rotters (i.e., chaotic beings), and 
make them become enraged by your lawful aura if you start worshipping Zin.

--------------------------------------------------------------------------------
3aaa5e0005 | dolorous | 2008-06-12 04:04:31 +0000

Simplify.

--------------------------------------------------------------------------------
a6b399eae4 | dolorous | 2008-06-12 03:57:11 +0000

Overhaul god gift handling again so that we can tell which god sent which gift. 
 There was an unused god parameter in the monsters struct, which was probably 
intended to hold which god a monster worshipped. I've used it as an indicator 
of which god sent the monster, under the assumption that gods would send their 
own worshippers as gifts.  (I hope this isn't an abuse of it.)

--------------------------------------------------------------------------------
662e3cb468 | dolorous | 2008-06-12 03:38:18 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
90af7d86d8 | dolorous | 2008-06-12 03:14:42 +0000

Fix compilation.

--------------------------------------------------------------------------------
c6fe84d2cf | dolorous | 2008-06-12 03:08:11 +0000

Add a few more miscellaneous minor fixes.

--------------------------------------------------------------------------------
6d752d6fba | zelgadis | 2008-06-12 03:03:37 +0000

Include secret doors in door-clustering (gates) when opening doors. In 
otherwords, if there's a line of secret doors with just one non-secret closed 
door among them and the non-secret door is opened, open up all the secret doors.

--------------------------------------------------------------------------------
fe72c7328f | dolorous | 2008-06-12 02:38:08 +0000

Remove now-unused function.

--------------------------------------------------------------------------------
9814bf7bd4 | zelgadis | 2008-06-12 02:02:44 +0000

Show shop items separately in the "show items" wizard command (&').

--------------------------------------------------------------------------------
627e34c507 | zelgadis | 2008-06-12 00:51:38 +0000

While for the appearance of randart weapons and armour you can just stick an 
adjective in front of the object type name ("bloodstained dagger"), 
unidentified non-artefact jewellry is described with both an adjective and 
material ("runed wooden ring"), making a description like "runed ring" a bit 
weird.  So give randart jewellery an adjective that no non-artefact jewellery 
would have, plus a material that a non-artefact might or might not have.

--------------------------------------------------------------------------------
b522b828e6 | zelgadis | 2008-06-12 00:49:59 +0000

Use _autopickup_item_name() when determing whether to auto-inscribe an item.

--------------------------------------------------------------------------------
5ae26dde5e | ennewalker | 2008-06-12 00:42:21 +0000

[1909218] Fixing issue where keymaps were affecting menu choices done by 
keyboard or through the tiles mouse interface.
I couldn't think of any reason why keymaps should ever apply to menu selections 
(and certainly not the KC_DEFAULT map), so I added a new special keymap context 
called KC_NONE which doesn't apply keymaps to new input.  This is used for all 
menus.

--------------------------------------------------------------------------------
510a5b2129 | zelgadis | 2008-06-12 00:02:52 +0000

Bug 1990763: if a monster tries to unsubmerge while under the player, attempt 
to move it to an adjacent square before doing so.  If there are no appropriate 
adjacent squares then try to make it stay submerged.  If it can't stay 
submerged because the terrain changed then teleport it away.

--------------------------------------------------------------------------------
9fd7f5bc14 | j-p-e-g | 2008-06-11 22:55:29 +0000

Extend monster pathfinding to monsters circumventing pools of deep water or 
lava. I've added some more checks to avoid hampering performance too much, but 
of course there's still space for improvement.
Once per turn check whether the player can see water and/or lava, and
only if this is the case run the additional checks (monster habitat,
grid_see_grid) when a monster tries to move.
Smart monsters that have a ranged attack won't use pathfinding either
since they can directly fire at the player. (This is identical to their
pre-pathfinding behaviour.)

Also fix butterflies really not interrupting resting. (Setting it to 0
doesn't work for some reason.)

--------------------------------------------------------------------------------
f200b503f6 | zelgadis | 2008-06-11 22:34:38 +0000

In all cases of a monster suddenly coming into view use the phrase "appears out 
of thin air!"

--------------------------------------------------------------------------------
7f995fc262 | dolorous | 2008-06-11 18:24:16 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
b0f1f107fe | dolorous | 2008-06-11 16:26:07 +0000

Simplify.

--------------------------------------------------------------------------------
5a10cfbf8b | j-p-e-g | 2008-06-11 12:38:33 +0000

Increase efficiency for pathfinding around glass structures by lowering the 
chance to "try again" if the last time we were unsuccessful. Also, if a monster 
tries to find a path to the player (not directly reachable) and fails, mark all 
surrounding monsters of the same species within a radius of 2 as having been 
unsuccessful. This includes monsters that are currently out of los of the 
player or that are targetting a different monster. Once they target the player, 
there'll either be a direct path which they can use, or there won't, in which 
case there's a low chance of using path finding; otherwise they'll simply 
advance the traditional way as close as they can get.

--------------------------------------------------------------------------------
e3c86b100d | haranp | 2008-06-11 07:27:26 +0000

Allow travel excludes on unexplored territory. I hope this doesn't introduce 
bugs.

--------------------------------------------------------------------------------
dbc3fd203f | haranp | 2008-06-11 07:24:03 +0000

Bumped frequency of !oResistance by 36%. Lowered frequency of !oRA to 
compensate. [1828604]

--------------------------------------------------------------------------------
62492a08d2 | haranp | 2008-06-11 07:19:31 +0000

1835314: Nemelex abilities work when silenced.

--------------------------------------------------------------------------------
e65d4ee999 | j-p-e-g | 2008-06-11 06:57:43 +0000

Remove #define SHUT_LABYRINTH because I don't think it's needed anymore. Add 
more information to the version command.

--------------------------------------------------------------------------------
46ed610698 | dolorous | 2008-06-11 06:11:49 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
e838080442 | dolorous | 2008-06-11 06:07:52 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
9268aaf0e2 | dolorous | 2008-06-11 05:25:06 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
cefc04ea39 | zelgadis | 2008-06-11 05:03:06 +0000

Added "items" boolean parameter to the player_res_foo() functions, which when 
false makes equipped items be ignored when figuring reistance.  Used by 
is_useless_item() to avoid (for example) rings of poison reistance being marked 
useless if the player equips one.  Also mark rings of teleport control as 
useless if the player has inate teleport control, and never mark artifact 
jewellery as useless.

--------------------------------------------------------------------------------
d531426adb | dolorous | 2008-06-11 02:29:23 +0000

Add spacing fix.

--------------------------------------------------------------------------------
7ca47537b9 | dolorous | 2008-06-11 01:56:41 +0000

Simplify.

--------------------------------------------------------------------------------
cbd87860bd | dolorous | 2008-06-11 01:24:10 +0000

After some more thought (and discussion with dploog), remove the code marking 
creatures summoned by priestly monsters as god gifts.  It can wait until 
priestly monsters get proper invocations.

--------------------------------------------------------------------------------
f2fcda32ce | dolorous | 2008-06-11 00:09:15 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
93f76b2e42 | dolorous | 2008-06-11 00:08:42 +0000

Add a few more cosmetic fixes.
Regarding fire vortices: after some thought, I'm not marking them as god 
gifts, as they're created by the clouds created by Fire Storm, as 
opposed to Fire Storm itself, which makes it an indirect result.

--------------------------------------------------------------------------------
38732982cd | dolorous | 2008-06-10 23:54:30 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
018e3b9a9e | dolorous | 2008-06-10 23:51:06 +0000

Add more miscellaneous minor cleanups.

--------------------------------------------------------------------------------
f1fb993ef0 | dolorous | 2008-06-10 23:48:51 +0000

Comment fixes.

--------------------------------------------------------------------------------
5e33fad9c1 | dolorous | 2008-06-10 22:56:45 +0000

After some more thought, remove the god gift exceptions for 
natural-phenomenon-type monsters.  Fire vortices still need to be dealt with 
properly, though.

--------------------------------------------------------------------------------
917a54724d | dolorous | 2008-06-10 21:25:42 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
b65103057f | dolorous | 2008-06-10 21:18:49 +0000

Expand the SAME_ATTITUDE() macro to account for the good neutral attitude.

--------------------------------------------------------------------------------
3aad70adfa | dolorous | 2008-06-10 21:16:35 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
3fe607f826 | dolorous | 2008-06-10 20:20:14 +0000

Comment fixes.

--------------------------------------------------------------------------------
8d09ad4bdc | dolorous | 2008-06-10 20:13:51 +0000

Spell "sorcerer" consistently.

--------------------------------------------------------------------------------
c8836936f3 | j-p-e-g | 2008-06-10 20:04:59 +0000

Tweak religious titles a bit.

--------------------------------------------------------------------------------
599b58264d | j-p-e-g | 2008-06-10 19:55:35 +0000

Implement new religious titles (FR 1872205).

--------------------------------------------------------------------------------
4bd4e54c8f | dolorous | 2008-06-10 18:38:24 +0000

Add comments documenting exceptions to the general rule of making 
monster-creating spell (mis)casts produce god gifts.  The exceptions are all 
natural phenomena treated as monsters: ball lightning, spatial vortices, and 
fire vortices.

--------------------------------------------------------------------------------
567cf0316a | dolorous | 2008-06-10 18:34:37 +0000

Reorganize again.

--------------------------------------------------------------------------------
b3c42dfc72 | dolorous | 2008-06-10 17:08:43 +0000

Add punctuation fix.

--------------------------------------------------------------------------------
e9f9aca415 | dolorous | 2008-06-10 16:43:57 +0000

Simplify.

--------------------------------------------------------------------------------
8694b881d0 | dolorous | 2008-06-10 16:00:33 +0000

Clean up handling of orange rats in cast_summon_small_mammals().

--------------------------------------------------------------------------------
f6b8a1eea3 | j-p-e-g | 2008-06-10 15:29:56 +0000

Clean-up (renaming static methods and comments) in a number of files.

--------------------------------------------------------------------------------
8fcf9242d7 | j-p-e-g | 2008-06-10 13:37:17 +0000

Reorder spells in your_spells() and clean up.

--------------------------------------------------------------------------------
22e375d42e | j-p-e-g | 2008-06-10 10:28:10 +0000

Modify Evaporate and Stinking Cloud to prompt when firing through allies. Note: 
This does still not handle the actual clouds, just the basic beam.

--------------------------------------------------------------------------------
c48e3fbe88 | j-p-e-g | 2008-06-10 08:37:46 +0000

Enable monsters to move around glass structures if they can see the player 
through the walls. Don't use pathfinding to target other monsters, only the 
player! Monsters of different intelligence have different limits on the 
distance they may travel to circumvent an obstacle, i.e. zombies will only use 
a range of 2, whereas highly intelligent monsters can expertly find their way 
through (transparent) labyrinths, though there's a chance they'll forget their 
target if they don't see it, so for very long and winding paths it's likely 
they don't ever arrive.
Will probably affect performance, though I did test on entire levels
turned transparent with Vitrification and things seemed to run more
or less smoothly.

Ideally, monsters should also be able to move around other obstacles
that don't affect visibility (such as water, lava, or statues) but
that is currently not possible.

--------------------------------------------------------------------------------
ba35a3c7bb | j-p-e-g | 2008-06-10 08:15:13 +0000

Integrate recent changes to the butchering function, and add commenting. Sorry 
about that, guys!

--------------------------------------------------------------------------------
aa3717c904 | j-p-e-g | 2008-06-10 07:41:27 +0000

Move pickup_butcher_tool.txt into (the recently freed) pickup.lua, re-enable it 
(whoops) and clean up its code.

--------------------------------------------------------------------------------
172979dfbc | zelgadis | 2008-06-10 07:39:56 +0000

Better output for "list items" wizard command (&').

--------------------------------------------------------------------------------
6d1ec443f1 | dolorous | 2008-06-10 07:23:42 +0000

Comment fix.

--------------------------------------------------------------------------------
d1fc8ce5c8 | dolorous | 2008-06-10 07:23:11 +0000

Reorganize a bit.

--------------------------------------------------------------------------------
5fa3929b28 | dolorous | 2008-06-10 07:09:17 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
6e0782d31c | dolorous | 2008-06-10 07:08:06 +0000

Implement the monster equivalent of Summon Scorpions, and add it to the ghost 
spell list.

--------------------------------------------------------------------------------
145e46fada | zelgadis | 2008-06-10 03:52:19 +0000

Added some C lua functions to simplify pickup_butcher_tool.txt.  Also, 
pickup_butcher_tool.txt now takes claws mutation and whether or not your god 
likes butchery into account.

--------------------------------------------------------------------------------
95a217139c | dolorous | 2008-06-10 02:44:01 +0000

In _raise_corpse(), if animating a corpse fails because there's nowhere to 
place the resulting zombie, return false and don't destroy the corpse.  This 
should fix [1988590].

--------------------------------------------------------------------------------
1ef09d3a6f | zelgadis | 2008-06-10 02:34:06 +0000

Restore capability of lua scripts to change autopickup behaviour so 
pickup_butcher_tool.txt can work, changed so that ')' doesn't have to be in the 
autopickup line for it to work.  Also changed so that it's easy for multiple 
lua functions to change autopickup without stepping on each other.

--------------------------------------------------------------------------------
faf8f98361 | dolorous | 2008-06-10 02:33:30 +0000

Add minor consistency fix.

--------------------------------------------------------------------------------
47eeccaf3d | dolorous | 2008-06-10 02:21:11 +0000

Comment fix.

--------------------------------------------------------------------------------
48f0e216f1 | dolorous | 2008-06-10 02:19:54 +0000

Add spacing fix.

--------------------------------------------------------------------------------
d3e28631b1 | dolorous | 2008-06-10 02:19:28 +0000

Let the monster version of "Summon Wraiths" summon shadow wraiths again.

--------------------------------------------------------------------------------
879f9f1789 | dolorous | 2008-06-10 02:10:45 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
35f42354e3 | dolorous | 2008-06-10 02:08:45 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
30e8a7cd13 | dolorous | 2008-06-10 02:08:13 +0000

Remove the shadow summoning function.  After some thought, it seems like 
overkill right now.

--------------------------------------------------------------------------------
028b556291 | dolorous | 2008-06-10 01:41:45 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
714a1818fb | dolorous | 2008-06-10 01:40:41 +0000

Add another message tweak.

--------------------------------------------------------------------------------
24f9798b08 | dolorous | 2008-06-10 01:31:45 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
ac443bc023 | dolorous | 2008-06-10 01:26:43 +0000

Don't mark spatial vortices as god gifts anymore, as (a) they're just phenomena 
that the game happens to treat as monsters (as opposed to actual creatures), 
and (b) there's no easy way to mark fire vortices as code for when god gifts, 
either, since they're only placed in the beam routine for "Fire Storm".

--------------------------------------------------------------------------------
6fb5493ddc | dolorous | 2008-06-10 01:04:48 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
f765ccf4dc | dolorous | 2008-06-09 22:57:30 +0000

Add a few more message tweaks.

--------------------------------------------------------------------------------
764e6d61ac | dolorous | 2008-06-09 22:41:13 +0000

Tweak summoning-related messages again.

--------------------------------------------------------------------------------
e58772fd2c | dolorous | 2008-06-09 21:16:29 +0000

Mark all creatures summoned by god-given spell miscasts as god gifts.

--------------------------------------------------------------------------------
838c6a79aa | dolorous | 2008-06-09 21:00:44 +0000

Simplify.

--------------------------------------------------------------------------------
095ca5566f | dolorous | 2008-06-09 20:44:53 +0000

Add more message tweaks.

--------------------------------------------------------------------------------
fcb4fd4c0f | dolorous | 2008-06-09 20:19:54 +0000

Set the god gift flag in the proper place (oops).

--------------------------------------------------------------------------------
4100f35810 | dolorous | 2008-06-09 19:54:51 +0000

Add power adjustments.

--------------------------------------------------------------------------------
e15cb03057 | dolorous | 2008-06-09 19:37:10 +0000

Convert the shadow- and spatial vortex-summoning routines to use power values, 
in case they're ever used elsewhere.

--------------------------------------------------------------------------------
4515a73015 | dolorous | 2008-06-09 19:35:46 +0000

Properly mark miscast-summoned shadows as hostile.

--------------------------------------------------------------------------------
c83d4988ae | dolorous | 2008-06-09 18:58:11 +0000

Consolidate the shadow- and vortex-summoning routines some more.

--------------------------------------------------------------------------------
c1bcbec614 | dolorous | 2008-06-09 18:22:35 +0000

Consolidate the (single) spatial vortex-summoning routines, and add more minor 
cleanups.

--------------------------------------------------------------------------------
2ee0afe954 | j-p-e-g | 2008-06-09 18:18:52 +0000

Remove pickup.lua. Make menu_colour_item_prefix also apply for 
autopickup_exceptions, so you can exclude, for example, all evil_eating at 
once. Fix Vampires "continuing draining" after having "stopped".

--------------------------------------------------------------------------------
2ef8bb80a6 | dolorous | 2008-06-09 18:10:17 +0000

Properly mark zombies created by a priest as god gifts.

--------------------------------------------------------------------------------
ab17d3586c | dolorous | 2008-06-09 18:04:54 +0000

Consolidate the shadow-summoning routines.

--------------------------------------------------------------------------------
71c477015d | dolorous | 2008-06-09 18:03:13 +0000

Simplify.

--------------------------------------------------------------------------------
3ccb14b7c9 | dolorous | 2008-06-09 17:29:19 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
d307dffd22 | dolorous | 2008-06-09 17:21:09 +0000

Add miscellaneous minor fix.

--------------------------------------------------------------------------------
6b5914bbdf | dolorous | 2008-06-09 17:00:53 +0000

Clean up summoning routines a bit more.

--------------------------------------------------------------------------------
42a6bc6856 | dolorous | 2008-06-09 16:47:15 +0000

Add a few miscast-related tweaks.

--------------------------------------------------------------------------------
7b7a36d053 | j-p-e-g | 2008-06-09 16:17:48 +0000

Yikes, so many files! And all I did was add more item evaluation functions for 
menu colouring and pickup...
Added: emergency_item, good_item, dangerous_item, bad_item, and
       useless_item, all taking into account player species and
       mutations, so e.g. =see invisible is useless for Naga,
       and !poison is always bad but only useless if you don't
       know Evaporate.

Never autopickup useless, dangerous (e.g. ?immolation) or inedible items, 
and simplify the item colour/pickup options accordingly. I'll have to
see if pickup.lua is still even needed after this.

Removed the menu_colour_prefix_id option as I can't see any reason to
turn it off.

Oh, and fixed a bug where Kenku were unable to stop levitating if they
gained level 15 while levitating.

--------------------------------------------------------------------------------
5443a68f96 | dolorous | 2008-06-09 16:17:21 +0000

Fix simulacrum creation message.

--------------------------------------------------------------------------------
df28b4a382 | dolorous | 2008-06-09 16:11:35 +0000

Add more message fixes for angered monsters.

--------------------------------------------------------------------------------
cf3c0bb3c2 | dolorous | 2008-06-09 16:02:32 +0000

Add still more summoning-related cleanups.

--------------------------------------------------------------------------------
214d0f6490 | dolorous | 2008-06-09 15:54:19 +0000

Simplify.

--------------------------------------------------------------------------------
da63e2c8a8 | dolorous | 2008-06-09 15:49:44 +0000

Add more summoning-related cleanups.

--------------------------------------------------------------------------------
e73b14bb59 | j-p-e-g | 2008-06-09 10:17:30 +0000

Update stash tracker when teleporting, to keep track of items picked up or 
dropped up in the same turn as teleporting.
Note: In tiles, the tile for a grid isn't updated before you move aside
      to see it, so when you teleport, the remembered grid still may
      show items that you picked up several turns ago and does not show
      what you might have dropped there, provided you stayed in the 
      same place before teleporting. I don't know how to fix that, so 
      I'm handing it over to Enne. *waves*

--------------------------------------------------------------------------------
431ed991d8 | j-p-e-g | 2008-06-09 09:47:39 +0000

After some thinking remove the bat form exception for starving Vampires not 
regenerating. Also add some more information to the Vampire mutation toggle.

--------------------------------------------------------------------------------
5e45d94ad5 | zelgadis | 2008-06-09 08:16:08 +0000

Don't let the Level map wizard command "teleport to target" place you on an 
invalid square.

--------------------------------------------------------------------------------
3ce71fe4a7 | dolorous | 2008-06-09 08:01:31 +0000

Go back to detecting priestly monsters by the flag instead of using a function, 
as it'll be simpler in the long run.

--------------------------------------------------------------------------------
d16c36c47f | dolorous | 2008-06-09 07:47:23 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
f5324e880d | dolorous | 2008-06-09 07:21:28 +0000

Add spacing fix.

--------------------------------------------------------------------------------
15f755e821 | dolorous | 2008-06-09 07:21:05 +0000

Clean up "Sticks to Snakes" a bit more.

--------------------------------------------------------------------------------
ae3f3137e8 | dolorous | 2008-06-09 07:08:04 +0000

Use the proper flag type to indicate god gifts (oops).

--------------------------------------------------------------------------------
b9005fdff7 | dolorous | 2008-06-09 06:38:49 +0000

Clean up bottled efreet handling some more.

--------------------------------------------------------------------------------
b24097a123 | dolorous | 2008-06-09 06:04:09 +0000

Fix player_will_anger_monster() so that it works properly when the holy, 
unholy, and antimagical parameters are NULL.

--------------------------------------------------------------------------------
eb910bc1e2 | dolorous | 2008-06-09 05:17:13 +0000

Comment fix.

--------------------------------------------------------------------------------
832dc6020a | dolorous | 2008-06-09 05:16:35 +0000

Mark monsters summoned by priestly monsters as god gifts.

--------------------------------------------------------------------------------
d7a52bd827 | dolorous | 2008-06-09 05:04:26 +0000

Revert previous reorganization.

--------------------------------------------------------------------------------
0f694b514e | dolorous | 2008-06-09 05:02:12 +0000

Simplify checking whether a monster is a priest.

--------------------------------------------------------------------------------
a32a1c491c | dolorous | 2008-06-09 04:46:47 +0000

Reorganize things a bit.

--------------------------------------------------------------------------------
ef35e62c19 | dolorous | 2008-06-09 04:45:00 +0000

Add more miscellaneous minor cleanups.

--------------------------------------------------------------------------------
c4c40b70b1 | zelgadis | 2008-06-09 03:44:28 +0000

Moved some cloud related functions from misc.{cc,h} to cloud.{cc,h}

--------------------------------------------------------------------------------
751e25e3d0 | zelgadis | 2008-06-09 03:42:46 +0000

Bug 1837610: if you pick up an item in the exact round that you're teleported 
then the level map will show that item as still being on the floor.

--------------------------------------------------------------------------------
4e07ba0474 | dolorous | 2008-06-09 03:21:09 +0000

Clarify comments.

--------------------------------------------------------------------------------
61fe06704b | dolorous | 2008-06-09 03:17:32 +0000

If a god makes you cast a summoning spell, count any creature(s) produced as 
god gifts.

--------------------------------------------------------------------------------
161b7398ac | dolorous | 2008-06-09 03:05:20 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5829e56f81 | zelgadis | 2008-06-09 03:00:03 +0000

Fix player_will_anger_monster() so that any of the boolean pointers being 
non-NULL doesn't force the return value to be true.

--------------------------------------------------------------------------------
6eb9841f76 | dolorous | 2008-06-09 02:56:30 +0000

Move there_are_monsters_nearby() to misc.cc, and make it a wrapper around 
get_playervisible_monsters(), in order to reduce code duplication.

--------------------------------------------------------------------------------
613b175f1b | dolorous | 2008-06-09 02:53:25 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
f98e8b06b0 | dolorous | 2008-06-09 02:38:36 +0000

Add still more miscellaneous minor fixes.

--------------------------------------------------------------------------------
8d0ff90418 | dolorous | 2008-06-09 02:12:28 +0000

Apply zelgadis' fix from r5625 to three other places that need it.

--------------------------------------------------------------------------------
187f5ddc80 | dolorous | 2008-06-09 02:04:51 +0000

Add a few last miscellaneous minor fixes.

--------------------------------------------------------------------------------
15431f7e0c | zelgadis | 2008-06-09 01:52:58 +0000

Fixed problem with monsters on edge of vision not being listed.  Might be bug 
1946671.

--------------------------------------------------------------------------------
086ba6c2ba | dolorous | 2008-06-09 00:56:23 +0000

Add one more miscellaneous minor fix.

--------------------------------------------------------------------------------
ec7ea4a920 | dolorous | 2008-06-09 00:50:56 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
672ac3157c | zelgadis | 2008-06-09 00:49:23 +0000

FR 1971056: In the monster pane list use a monster's full name, like "rat 
zombie", unless there's too many monsters to fit into the pane, in which case 
revert to using a monster's type name ("small zombie") so that different 
monsters of the same type will be shown on the same line ("2 rat zombies" + "3 
kobold zombies" becomes "5 small zombies").

--------------------------------------------------------------------------------
d5950593f2 | dolorous | 2008-06-09 00:28:37 +0000

Clean up the routines to animate the dead.

--------------------------------------------------------------------------------
297297da01 | dolorous | 2008-06-09 00:25:18 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
4c9a1ad6cf | zelgadis | 2008-06-09 00:15:44 +0000

Add reset() method to radius_iterator so that a single iterator instance can be 
re-used.

--------------------------------------------------------------------------------
fffe9fb7f4 | zelgadis | 2008-06-09 00:14:43 +0000

Enable environmental effects (like lava generating black smoke) in the Abyss as 
soon as the area is generated.

--------------------------------------------------------------------------------
aaaab1c54c | zelgadis | 2008-06-09 00:05:12 +0000

Bug 1987918: make hellfire and magma produce steam when over water.

--------------------------------------------------------------------------------
2259ae9b5e | zelgadis | 2008-06-08 22:30:06 +0000

Preserve the floor properties around the player when doing an Abyss 
area_shift() so that blood-splatter won't seem to appear out of nowehre.

--------------------------------------------------------------------------------
b33d384a7f | j-p-e-g | 2008-06-08 22:08:18 +0000

Modify Portal Projectile to use the quiver interface, so you can now choose 
your projectiles and are no longer prompted when "firing through" friendlies. 
(FR 1816789)

--------------------------------------------------------------------------------
7e7c3ba378 | dolorous | 2008-06-08 22:06:50 +0000

Add spacing fix.

--------------------------------------------------------------------------------
d6f431bb5d | dolorous | 2008-06-08 22:05:53 +0000

Move summon_demon_type() to spells3.cc as well.

--------------------------------------------------------------------------------
1369c022c2 | dolorous | 2008-06-08 22:00:32 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
4e09ab3a1e | dolorous | 2008-06-08 21:43:07 +0000

Move most of the demon-summoning routines to spells3.cc, since they're unholy.

--------------------------------------------------------------------------------
28595dfdcc | dolorous | 2008-06-08 20:48:29 +0000

Clean up "Twisted Resurrection" some more.

--------------------------------------------------------------------------------
cc51da7ff0 | dolorous | 2008-06-08 20:41:15 +0000

Simplify.

--------------------------------------------------------------------------------
2ee723e7da | dolorous | 2008-06-08 20:35:58 +0000

Clean up "Twisted Resurrection" a bit.

--------------------------------------------------------------------------------
7fe6cab099 | dolorous | 2008-06-08 20:07:34 +0000

Clean up "Shadow Creatures".

--------------------------------------------------------------------------------
e628026533 | j-p-e-g | 2008-06-08 19:52:52 +0000

Lower chance of vampiric bite during bat form, and if it happens, halve healing 
and nutrition gain.

--------------------------------------------------------------------------------
59b0b82d8f | dolorous | 2008-06-08 19:52:48 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
a8d638664c | dolorous | 2008-06-08 19:47:40 +0000

Reorganize again, and move cast_summon_wraiths() to spells3.cc, since it's a 
necromantic spell.

--------------------------------------------------------------------------------
95e59f96be | dolorous | 2008-06-08 19:35:30 +0000

Clean up "Death Channel" some more.

--------------------------------------------------------------------------------
2408978589 | dolorous | 2008-06-08 19:14:45 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
4e0609a0e2 | dolorous | 2008-06-08 17:04:14 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a037f108ca | dolorous | 2008-06-08 17:03:29 +0000

Reorganize spells a bit. "Summon Horrible Things" is now in spells3.cc, with 
the other unholy spells.

--------------------------------------------------------------------------------
1ae58f4e6c | dolorous | 2008-06-08 16:56:49 +0000

Clean up "Sublimation of Blood" and "Death Channel".

--------------------------------------------------------------------------------
073c543794 | dolorous | 2008-06-08 16:41:20 +0000

Clean up "Simulacrum".

--------------------------------------------------------------------------------
220cc50e05 | dolorous | 2008-06-08 16:37:23 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
bc6a2c43ad | dolorous | 2008-06-08 16:35:34 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
8bc2480737 | dolorous | 2008-06-08 16:31:54 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9855f61a84 | dolorous | 2008-06-08 16:01:04 +0000

Clean up dancing_weapon().

--------------------------------------------------------------------------------
33199ca0b4 | dolorous | 2008-06-08 15:58:20 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
00917879ea | dolorous | 2008-06-08 15:27:59 +0000

Clean up "Conjure Ball Lightning".

--------------------------------------------------------------------------------
73a79a3d49 | zelgadis | 2008-06-08 06:04:37 +0000

Changed spell_by_name() so that even if partial matches are allowed, exact 
matches are still prefered over partial matches.

--------------------------------------------------------------------------------
41e6f24153 | dolorous | 2008-06-08 05:59:13 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
aa213e3191 | dolorous | 2008-06-08 05:57:39 +0000

Comment fix.

--------------------------------------------------------------------------------
ef3ee3ebdc | dolorous | 2008-06-08 05:55:09 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
4f344bc046 | dolorous | 2008-06-08 05:49:35 +0000

Clean up "Sticks to Snakes", too.

--------------------------------------------------------------------------------
226ae1870c | dolorous | 2008-06-08 05:28:32 +0000

Clean up vampiric_drain() a bit.

--------------------------------------------------------------------------------
e104efe7e4 | dolorous | 2008-06-08 05:21:59 +0000

Move cast_summon_butterflies() to the right place.

--------------------------------------------------------------------------------
5c5f41caea | dolorous | 2008-06-08 05:21:10 +0000

Clean up "Summon Elemental".

--------------------------------------------------------------------------------
669612952b | dolorous | 2008-06-08 05:16:55 +0000

Add spacing fix.

--------------------------------------------------------------------------------
09266f0002 | dolorous | 2008-06-08 04:53:54 +0000

Comment fixes.

--------------------------------------------------------------------------------
ca71ef2d7c | dolorous | 2008-06-08 04:49:59 +0000

Don't allow the box of beasts to give you a hell hound if you worship a good 
god, since, like "Summon Small Mammals", only one of its summons is bad.

--------------------------------------------------------------------------------
c65f183d6d | dolorous | 2008-06-08 04:33:10 +0000

Add miscellaneous minor fix.

--------------------------------------------------------------------------------
835386081e | dolorous | 2008-06-08 04:29:50 +0000

Clean up handling of angered monsters.

--------------------------------------------------------------------------------
f9b3fccde9 | dolorous | 2008-06-08 03:58:40 +0000

Clean up "Summon Small Mammals" as well.

--------------------------------------------------------------------------------
387e1579e9 | zelgadis | 2008-06-08 03:22:06 +0000

Oops, forgot to check in docs and init.txt changes for msg_condense_repeats

--------------------------------------------------------------------------------
ba71573c6d | dolorous | 2008-06-08 03:21:22 +0000

Add message tweak.

--------------------------------------------------------------------------------
3e7c799cf4 | zelgadis | 2008-06-08 03:19:47 +0000

Added option msg_condense_repeats (defaults to true) which causes message 
history to condense repeated messages into a single line, so that (for example) 
if you hear a Zot trap go off five times in a row while resting, message 
history will show:
    You hear a distant "Zot!" (x5)

--------------------------------------------------------------------------------
66e0b2147b | dolorous | 2008-06-08 03:15:52 +0000

Clean up "Summon Horrible Things".

--------------------------------------------------------------------------------
ee86f1b5fa | dolorous | 2008-06-08 02:56:15 +0000

Simplify again.

--------------------------------------------------------------------------------
aa81a23dd8 | dolorous | 2008-06-08 02:44:57 +0000

Consolidate the demon-summoning routines again.

--------------------------------------------------------------------------------
42834623f5 | dolorous | 2008-06-08 02:00:04 +0000

Make Trog's berserkers hostile again when they're sent as retribution.

--------------------------------------------------------------------------------
bd833f217f | dolorous | 2008-06-08 01:56:07 +0000

Revert some of the previous simplifications, as they make other things more 
complicated.

--------------------------------------------------------------------------------
9feee37f14 | dolorous | 2008-06-08 01:32:55 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
b19197a1b2 | dolorous | 2008-06-08 01:10:53 +0000

Use INSTANT_DEATH instead of -9999 where applicable.

--------------------------------------------------------------------------------
dff4775f27 | dolorous | 2008-06-08 01:10:15 +0000

Simplify further.

--------------------------------------------------------------------------------
1dc5deb5bc | dolorous | 2008-06-08 00:47:51 +0000

Simplify summoning of hostile demons.

--------------------------------------------------------------------------------
b857cd3be4 | dolorous | 2008-06-08 00:13:14 +0000

Simplify summoning of hostile holy beings.

--------------------------------------------------------------------------------
a93993cc7b | dolorous | 2008-06-07 23:45:43 +0000

Clean up some more.

--------------------------------------------------------------------------------
0380e33912 | dolorous | 2008-06-07 23:44:15 +0000

Simplify again.

--------------------------------------------------------------------------------
6f1108a523 | dolorous | 2008-06-07 23:40:34 +0000

Simplify.

--------------------------------------------------------------------------------
6267771c63 | dolorous | 2008-06-07 23:37:49 +0000

Add const.

--------------------------------------------------------------------------------
7988fe7d7d | dolorous | 2008-06-07 23:35:16 +0000

Clean up summoning of random demons and random holy beings again.

--------------------------------------------------------------------------------
733294517b | dolorous | 2008-06-07 23:25:36 +0000

Rename ABIL_SUMMON_DEMONS to ABIL_SUMMON_DEMON, for consistency.

--------------------------------------------------------------------------------
5a80681112 | j-p-e-g | 2008-06-07 21:32:07 +0000

Nerf damage of the bat transformation. Reduced from   2 + 
skill(unarmed_combat)/3    to   2 + rnd(skill(unarmed_combat)/5 + 1)
Also replace the menu_colour_prefix colouring for prompts and the like
to use message_colour instead, so those "msg" abbreviations in 
food_colouring.txt actually have an effect now, and players can disable
colouring of prompts etc. (respects channels) while leaving it on in the 
inventory.
I'm leaving the menu_colour_prefix function in for now, in case it can
be used somewhere else.

--------------------------------------------------------------------------------
f5a70a7cbd | dolorous | 2008-06-07 21:27:08 +0000

Mark bottled efreeti as evil items, since they're demonic.

--------------------------------------------------------------------------------
4a940cde59 | dolorous | 2008-06-07 21:24:09 +0000

Generalize summoning of holy beings, in case any more of them are added.

--------------------------------------------------------------------------------
857a0760ac | dolorous | 2008-06-07 21:14:34 +0000

Clean up yet some more.

--------------------------------------------------------------------------------
46a28d2a16 | dolorous | 2008-06-07 20:53:42 +0000

Clean up again.

--------------------------------------------------------------------------------
0ccc499b94 | dolorous | 2008-06-07 20:38:04 +0000

Clean up yet again.

--------------------------------------------------------------------------------
bd4a9cb9d0 | dolorous | 2008-06-07 20:24:39 +0000

Clean up again.

--------------------------------------------------------------------------------
ba86334fd5 | dolorous | 2008-06-07 20:17:44 +0000

Make cast_demonic_horde() properly summon lesser demons again.

--------------------------------------------------------------------------------
b7594aaf20 | dolorous | 2008-06-07 20:14:18 +0000

Clean up yet more.

--------------------------------------------------------------------------------
8aab14729f | ennewalker | 2008-06-07 18:47:18 +0000

[1964967] Fixing issue where the abyss and the labyrinth had stale out of sight 
tiles on the left and right side of the screen.

--------------------------------------------------------------------------------
f5156c1a88 | dolorous | 2008-06-07 18:44:17 +0000

Add more cleanups.

--------------------------------------------------------------------------------
e5b3e8a0ce | dolorous | 2008-06-07 18:26:09 +0000

Clean up still more.

--------------------------------------------------------------------------------
550f9e60f7 | dolorous | 2008-06-07 18:22:23 +0000

Clean up some more.

--------------------------------------------------------------------------------
3d80760863 | dolorous | 2008-06-07 17:50:50 +0000

Start cleaning up summoning routines in a better way.  Sorry for the mess in 
the meantime.

--------------------------------------------------------------------------------
f679a5b0cc | ennewalker | 2008-06-07 17:01:37 +0000

[1982933] [1790502] Fixing issue with vaults being generated on lava.
Lava and deep water now prevent (non-clobber) vaults from being placed.  
Additionally, items will modify the dungeon square they're placed on so that 
they are placed on floor or shallow water.

--------------------------------------------------------------------------------
08872e2829 | dolorous | 2008-06-07 16:35:52 +0000

Reorganize a bit.

--------------------------------------------------------------------------------
3742fa02b2 | dolorous | 2008-06-07 16:28:36 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d979e82492 | dolorous | 2008-06-07 16:21:18 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
1ca99470c2 | dolorous | 2008-06-07 16:12:30 +0000

Rename variables.

--------------------------------------------------------------------------------
190362624b | dolorous | 2008-06-07 16:01:31 +0000

Reorganize the consolidated summoning routines.

--------------------------------------------------------------------------------
c9b2b164db | dolorous | 2008-06-07 15:41:19 +0000

Make scrolls of summoning count as evil items.

--------------------------------------------------------------------------------
5e5527fe24 | ennewalker | 2008-06-07 14:47:37 +0000

Adding OSX support to X11 tiles makefile.  Currently enabled via OSX=y.  It 
assumes that libpng was installed via fink in /sw.

--------------------------------------------------------------------------------
f051683f54 | j-p-e-g | 2008-06-07 14:00:30 +0000

Enable pathfinding for patrolling monsters who lost their patrol point. Fixed 
patrol definitions in maps not actually working.
Tested both by teleporting the minotaur in a labyrinth. About 50 turns
later it arrived back in its lair. :)

Since the minotaur proved to have a high magic resistance, it had plenty
of time to loot the stash at the labyrinth entrance once I'd woken it 
before I finally managed to teleport it away (in wizmode you can force 
monsters not noticing you).

This resulted in 
  "A minotaur, wielding the demon trident "Suyn Oma", and wearing a heavily
   runed ring mail."   o_O

It had also picked up a scroll and a wand. Ouch... (but cool!)

--------------------------------------------------------------------------------
bdf8da41d2 | dploog | 2008-06-07 11:20:28 +0000

Moved all tile related options into a file of their own.

--------------------------------------------------------------------------------
90c880b418 | dploog | 2008-06-07 10:39:53 +0000

Updated readme.txt.

--------------------------------------------------------------------------------
56e74bf761 | j-p-e-g | 2008-06-07 10:16:26 +0000

Create random blood spatter in the Abyss and Pandemonium (FR 1986241).
How it works:
* Pick 12 random grids on the map and make them bloody.
* Recursively and with decreasing chances, allow their neighbours to get
  spattered as well.

I think the effect is rather nice but the numbers might need to be
tweaked anyway.

--------------------------------------------------------------------------------
0ed1d5f221 | zelgadis | 2008-06-07 10:02:07 +0000

Remove useless debugging statement from _sort_monster_list()

--------------------------------------------------------------------------------
ecffe9770e | zelgadis | 2008-06-07 09:54:43 +0000

Organize and condense the monster list printed by the list monsters wizard 
command (&").

--------------------------------------------------------------------------------
0ad9c71a19 | dolorous | 2008-06-07 07:45:54 +0000

And do the same for "Summon Greater Demon".

--------------------------------------------------------------------------------
adcb3759e1 | zelgadis | 2008-06-07 07:37:17 +0000

Added commented-out code to equip raised-from-corpses undead with the equipment 
they died with.  Commented out both to avoid adding something this big just 
before 0.4 is released, and also because if multiple monsters die on the same 
square it's sometimes possible for an undead to be equipped with the other 
monster's equipment (see _equip_undead() comments).

--------------------------------------------------------------------------------
324c6187f3 | dolorous | 2008-06-07 06:36:39 +0000

And do the same for "Summon Wraiths".

--------------------------------------------------------------------------------
bccac93c83 | dolorous | 2008-06-07 06:00:30 +0000

Fix compilation again.

--------------------------------------------------------------------------------
8aa5902ba1 | dolorous | 2008-06-07 05:59:19 +0000

Do the same for "Summon Scorpions".

--------------------------------------------------------------------------------
4280a22a63 | dolorous | 2008-06-07 05:46:10 +0000

Consolidate "Call Canine Familiar" into summon_general_creature().

--------------------------------------------------------------------------------
ad0ca145f3 | dolorous | 2008-06-07 05:07:29 +0000

Rename SPELL_SUMMON_LARGE_MAMMAL to SPELL_CALL_CANINE_FAMILIAR, to match the 
name used for it elsewhere.

--------------------------------------------------------------------------------
4406258079 | dolorous | 2008-06-07 04:54:57 +0000

Consolidate "Summon Dragon" into summon_general_creature() as well.

--------------------------------------------------------------------------------
2eca4d6c7a | dolorous | 2008-06-07 04:36:32 +0000

Clean up summon_general_creature() some more.

--------------------------------------------------------------------------------
8f9adf5d26 | dolorous | 2008-06-07 04:14:40 +0000

Consolidate "Summon Butterflies" into summon_general_creature().

--------------------------------------------------------------------------------
35180d844b | dolorous | 2008-06-07 03:24:42 +0000

Add another comment fix.

--------------------------------------------------------------------------------
638cb3ff6c | dolorous | 2008-06-07 03:21:35 +0000

Use MAX_PIETY properly when making Kiku shield you from necromancy miscasts.

--------------------------------------------------------------------------------
2c2920fc52 | dolorous | 2008-06-07 03:02:30 +0000

Fix compilation.

--------------------------------------------------------------------------------
1bc5d0655f | dolorous | 2008-06-07 03:01:24 +0000

Simplify yet again.

--------------------------------------------------------------------------------
2e6841ee13 | dolorous | 2008-06-07 02:50:50 +0000

Simplify even further.

--------------------------------------------------------------------------------
b5cae5c2a0 | dolorous | 2008-06-07 02:39:34 +0000

Add minor miscellaneous fix.

--------------------------------------------------------------------------------
798efac4c5 | dolorous | 2008-06-07 02:38:36 +0000

Comment fixes.

--------------------------------------------------------------------------------
6d9cc1387b | dolorous | 2008-06-07 02:35:51 +0000

Simplify further.

--------------------------------------------------------------------------------
4e98aa96f6 | dolorous | 2008-06-07 02:19:32 +0000

Simplify.

--------------------------------------------------------------------------------
679f7173c7 | dolorous | 2008-06-06 23:21:58 +0000

Consolidate summon_ugly_thing() into summon_ice_beast_etc(), and rename the 
latter summon_general_creature().

--------------------------------------------------------------------------------
699a10feb7 | dolorous | 2008-06-06 23:18:57 +0000

Rename the "Guardian" spell to "Summon Guardian", as it's more descriptive.

--------------------------------------------------------------------------------
3eff30e2fc | zelgadis | 2008-06-06 23:05:48 +0000

Bug 1986918: Fix "Player's ghost the Player's ghost" monster naming problem, 
and "Attack!" being given twice when ordering allies to attack.

--------------------------------------------------------------------------------
82d8dad204 | zelgadis | 2008-06-06 22:37:39 +0000

Bug 1948750:  The lua function item.name() now returns by default names like 
"golden rune of Zot" rather than "golden rune", so change lua markers which 
were dependant on the names of items.

--------------------------------------------------------------------------------
07ff311372 | dploog | 2008-06-06 22:25:19 +0000

Added commentary to options text. Sourced out list of tile minimap colours.

--------------------------------------------------------------------------------
f1add9bb56 | dolorous | 2008-06-06 21:39:08 +0000

Remove the passive voice from another message.

--------------------------------------------------------------------------------
6aceeffe99 | j-p-e-g | 2008-06-06 21:29:32 +0000

BR 1972213: Move "Corpse x no longer valid!" into #DEBUG_DIAGNOSTICS            
 and print "The corpse you are butchering rises to attack you."             
where that is the case.
BR 1945387: Don't allow summoning earth elementals from walls near
            the edge of the map (that can't get destroyed that way).
            Just seems more consistent. There's an error message, but it
            doesn't cost a turn.

--------------------------------------------------------------------------------
2d1f69be59 | dolorous | 2008-06-06 21:04:03 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
e76fa04ee8 | dolorous | 2008-06-06 21:01:46 +0000

Allow creation of non-friendly god gifts.  The BEH_GOD_GIFT behavior has been 
removed, and the MF_GOD_GIFT flag is set directly instead.

--------------------------------------------------------------------------------
703ecf2d59 | dploog | 2008-06-06 20:51:10 +0000

Slight changes to fog generator descriptions.

--------------------------------------------------------------------------------
9d9efc7fd9 | j-p-e-g | 2008-06-06 19:09:12 +0000

Add a line on good gods disapproving of certain items to their description 
(evil_item). Same for evil_eating.
In another step on the way to monster pathfinding, take the
shortest path and extract a vector of waypoints out of it.

When experimenting with ways to do this I noticed that grid_see_grid 
is not symmetrical (A may see B but not vice versa); I'm not sure 
what effects that could have. It won't directly affect the player as 
the checks for monster sees player and player sees monster both use 
the player LoS, but it could have an effect on friendly monsters 
fighting enemy ones, I guess.

Also, I don't think num_feats_between needs the shortest beam
available (called with false now). In fact, that seemed to hurt
visibility a bit, probably because of attempting to take vision
obstructing shortcuts. If this reasoning is wrong, please speak up
and/or correct it. (I sure hope not because the shortest beam 
calculation has some more overhead that can be avoided this way.)

--------------------------------------------------------------------------------
f442b6f700 | j-p-e-g | 2008-06-06 14:43:57 +0000

Fix 1986261: patrolling monsters not interrupting their patrol to hunt          
    the player (Whoops!)
Fix 1945669: Monsters attacking via reaching still getting secondary
             unarmed attacks.

And... we're down to one page of bug reports, yay! :D

--------------------------------------------------------------------------------
8b4814cda9 | j-p-e-g | 2008-06-06 12:54:36 +0000

Fix 1986252: double "Blech! You need xy!" message Fix 1966204: make 
non-amphibious undead capable of drowning or the              equivalent thereof
When you see a weapon with the returning ego return (to you or a
monster) set the properties known along with the brand (because
artefacts can't be id'd by throwing alone, anyway). This helps 
alleviate BR 1958616, but doesn't solve the problem with the curse 
status being unknown. 

--------------------------------------------------------------------------------
b2ea4771ba | dploog | 2008-06-06 09:47:35 +0000

Fix BR 1986191: Stealth output for @ still used the old thresholds and 
adjectives. Ideally, we would only have one list instead of two.

--------------------------------------------------------------------------------
a12e4ade3e | zelgadis | 2008-06-06 09:29:21 +0000

When creating a corpse via wizard command make the item's orig_monnum reflect 
the monster's type rather than the wizmode acquirement type, since orig_monnum 
is used for things like the Animate Dead spell.

--------------------------------------------------------------------------------
04a87bf784 | zelgadis | 2008-06-06 07:39:01 +0000

For default shouts like __SHOUT say which monster is shouting if the shouting 
monster is seen ("The goblin shouts!") and the old message if the monster is 
not in LOS or is invisible ("You hear a shout!").

--------------------------------------------------------------------------------
20671b2653 | zelgadis | 2008-06-06 07:33:09 +0000

handle_monster_shouts() was using "seen" type shouts for monsters based only on 
their visibility, ingoring if they were in LOS or not.

--------------------------------------------------------------------------------
5da2dcea5a | dolorous | 2008-06-06 01:32:37 +0000

Comment fix.

--------------------------------------------------------------------------------
9eb2c4a090 | zelgadis | 2008-06-06 00:05:32 +0000

In the interest of efficency only call StashTrack.update_corpses() when 
absolutelty necessary, rather than whenever the player isn't delayed.

--------------------------------------------------------------------------------
de3ab3ce26 | j-p-e-g | 2008-06-05 22:17:29 +0000

Fix 1985516: monsters fail to open doors Fix 1985526: acquirement by scroll 
marked as {god gift}

--------------------------------------------------------------------------------
46bf2998e5 | j-p-e-g | 2008-06-05 22:02:47 +0000

Fix 1984593: all monster being generated awake.
Some modifications to the pathfind travel_cost function.

--------------------------------------------------------------------------------
bd7e3ba074 | dolorous | 2008-06-05 21:59:08 +0000

Capitalize entry.

--------------------------------------------------------------------------------
18a1ac362c | dploog | 2008-06-05 20:39:21 +0000

Made Slime:6 chamber jellies more rare. Added randart weapon name (Rachel).

--------------------------------------------------------------------------------
e0852a803f | dolorous | 2008-06-05 17:49:43 +0000

Make mimics teleport when smitten, too.

--------------------------------------------------------------------------------
a57d484bd7 | j-p-e-g | 2008-06-05 14:04:39 +0000

Fix mimics not teleporting when attacked by reaching or airstrike, and a few 
(really) minor adjustments on monster pathfinding.

--------------------------------------------------------------------------------
70e12c754c | dploog | 2008-06-05 10:57:58 +0000

Made (re)colouring of food/item types really easy (using variables and a new 
default colours file). Thanks Matthew!

--------------------------------------------------------------------------------
3bc86f82a0 | zelgadis | 2008-06-05 08:43:08 +0000

Added two new stash options, stash_track_decay and stash_remove_decay.  If 
stash_track_decay is true then the stash tracker will remember how long it's 
been since you've seen a rottable object (corpses, skeletons and meat chunks) 
and tell you its condition by appending "rotten by now", "skeletalised by now" 
or "gone by now" to its name in the stash menu. If stash_remove_decay is also 
true then any item that would have been marked "gone by now" is instead removed 
from the stash tracker.
Doesn't yet track decay of potions of blood.

Breaks stash save data compatibility.

--------------------------------------------------------------------------------
ee9ef53947 | dolorous | 2008-06-05 06:07:00 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
d33fa82766 | dolorous | 2008-06-05 06:02:58 +0000

Fix inaccurate Spellcasting aptitude for Ogres.

--------------------------------------------------------------------------------
54a33ba847 | dolorous | 2008-06-05 03:31:18 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
7515ef54e7 | dolorous | 2008-06-05 02:00:42 +0000

Pluralize words ending in "folk" (e.g. "merfolk") by leaving them alone instead 
of adding "s".

--------------------------------------------------------------------------------
a16fbb39e5 | dolorous | 2008-06-05 01:57:53 +0000

Comment fixes.

--------------------------------------------------------------------------------
0e94dff22d | zelgadis | 2008-06-05 01:57:22 +0000

Changed dungeon_terrain_changed() so that it removes bloodstains when 
appropriate, and so it unsubmerges monsters if they can't stay submerged in the 
new terrain.
Also, changed the Water card to use dungeon_terrain_changed() in order
to simplify the code a bit, to clean up bloodstains, and to fire off
DET_FEAT_CHANGE dungeon events.

--------------------------------------------------------------------------------
3a8f8e48fc | zelgadis | 2008-06-04 23:56:38 +0000

Fixed crashes that were caused by init file variables (option value aliases).  
Also, variable names can now include '-'.

--------------------------------------------------------------------------------
380661f014 | zelgadis | 2008-06-04 23:38:05 +0000

Added trapdoor spider (not yet randomly generated).  If a trapdoor spider can't 
see any enemies and is on a floor square it will "submurge" into the floor and 
only come out if an enemy moves right next to it or if something attacks it 
from a distance.  Most of this is done with the new monster behavour BEH_LURK.

--------------------------------------------------------------------------------
24c7f48b54 | j-p-e-g | 2008-06-04 21:43:17 +0000

Implement pathfinding for monsters, using the A* algorithm. It's not actually 
used anywhere yet, but I've implemented a wizmode testing function (x on 
monster, then 'w') that calculates the shortest path to any playerchosen 
destination on the level, and it seems to work quite well. The monsters tend to 
take zigzag paths but that should be easy enough to smooth out and in any case 
doesn't matter all that much since the player usually won't witness this. Oh, 
and though I tested the whole thing in a labyrinth, it went ridiculously fast! 
I'd rather doubted that but Darshan was completely right, as usually. :p
Please don't remove the debugging output yet, I still need them.

--------------------------------------------------------------------------------
e422b1baa5 | dploog | 2008-06-04 11:38:36 +0000

Changed one temple entry.

--------------------------------------------------------------------------------
5a7dc7bf7a | dploog | 2008-06-04 09:31:15 +0000

Change display of aptitudes (both !m and ?%) to true values: take the factors 
13/10 (Spc) and 3/4 (Inv, Evo) into account.
Hereby the group pressure on Haran is officially removed.

--------------------------------------------------------------------------------
c11f097044 | zelgadis | 2008-06-04 08:28:28 +0000

FR 1977121: alias for option values (I called them "variables").  You can have 
an option file line "$FOO := BAR", and then whenever you have a line "option = 
$FOO" it will get turned into "option = BAR".  Doesn't undo variable settings 
from include files, so that we can theoretically have a 
settings/standard_colours.txt to define the default colours used in 
settings/food_colouring and settings/menu_colours, and then the user can 
override them.

--------------------------------------------------------------------------------
4fb433c499 | j-p-e-g | 2008-06-04 07:23:40 +0000

Fix zombies of wrong habitat on land. It turns out that all those careful 
checks for habitat were ignored (default is HT_LAND) because the base type for 
undead wasn't chosen until after the position. I now added another habitat 
check during the base type selection loop and now everything works. :)
Add a warning inscription !D that ignores such items during actions like
sacrificing items, destroying weapons (Ely), burning books (Trog) or
casting sticks to snakes. The failure messages are very clumsy now, but
they do get the point across, I hope.

--------------------------------------------------------------------------------
02eb689303 | zelgadis | 2008-06-04 07:18:06 +0000

Don't assert in CrawlVector::set_max_size() if called more than once on the 
same vector as long as the new max size is the same as the old one.

--------------------------------------------------------------------------------
37c5451a43 | dolorous | 2008-06-04 06:13:41 +0000

Don't allow "Summon Wraiths" to summon shadow wraiths anymore, as they're 
invisible, nothing else seems to allow summoning invisible monsters, and 
handling of such is a can of worms due to the visual messages when summoning 
("A shadowy figure forms in the air before you [that you can't see].").

--------------------------------------------------------------------------------
55928ab081 | dolorous | 2008-06-04 05:54:02 +0000

Comment fixes.

--------------------------------------------------------------------------------
6deb021e6e | dolorous | 2008-06-04 04:37:39 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
dabc27ffa9 | dolorous | 2008-06-04 04:37:24 +0000

Don't display the warning prompt for firing a charming beam (from e.g. a wand 
of enslavement) at a non-holy monster, since it doesn't generate negative 
conducts then.

--------------------------------------------------------------------------------
396c208cb4 | zelgadis | 2008-06-04 04:27:08 +0000

For stash searching, annotate dropped items with {dropped} if 
annotate_item_dropped is set to true.

--------------------------------------------------------------------------------
0b13d82fe7 | dolorous | 2008-06-04 04:03:37 +0000

Improve handling of good god followers when you switch from TSO: upon switching 
to a good god, only holy followers (daevas) turn good neutral, while upon 
switching to a non-good god, all followers turn hostile.

--------------------------------------------------------------------------------
b7a302fac5 | dolorous | 2008-06-04 00:59:45 +0000

Mark monsters blessed with friendliness by TSO as created friendly, so they 
don't count as good kills.

--------------------------------------------------------------------------------
1b5b668f5a | zelgadis | 2008-06-04 00:04:04 +0000

"menu = lightred:.* equipped.* cursed" was missing spaces before "equipped" and 
"cursed", sometimes causing unequipped uncursed items to be made lightred.

--------------------------------------------------------------------------------
3f6ca3df03 | dolorous | 2008-06-03 21:20:50 +0000

Add spacing fix.

--------------------------------------------------------------------------------
18fae33cd4 | dolorous | 2008-06-03 19:21:09 +0000

For (some) consistency, make monster::foe an unsigned short, since that matches 
player::pet_target, and because tags.cc seems to save monster::foe as a short 
anyway.

--------------------------------------------------------------------------------
7adf7a8dd6 | dolorous | 2008-06-03 18:49:57 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
e07f3d2b40 | dolorous | 2008-06-03 18:21:16 +0000

Revert the previous int -> unsigned in changes, as they don't match some of the 
code elsewhere.
Weird bits:

monsters::foe and player::pet_target are used interchangeably, but the 
former is an unsigned int, while the latter is an unsigned short.  Both 
of these can be set using the return value of monster_index(), which is 
a signed int.  Most of the functions that use these expect signed ints, 
as well.  ???

--------------------------------------------------------------------------------
4784853d9f | dolorous | 2008-06-03 18:16:32 +0000

Add miscellaneous minor fixes.

--------------------------------------------------------------------------------
7a242f8e4a | j-p-e-g | 2008-06-03 13:55:43 +0000

Fix a bug with swap_when_safe, and experimentally default   chunks_autopickup, 
swap_when_safe, and show_beam to true.

--------------------------------------------------------------------------------
240d2022a0 | j-p-e-g | 2008-06-03 10:33:31 +0000

Fix summoned monsters spattering blood. Fix menu colouring giving away unknown 
evil items.

--------------------------------------------------------------------------------
1e6c29fcda | j-p-e-g | 2008-06-03 09:49:19 +0000

Bug/FR 1947001: For damaging cards add "You draw card xy" to the prompt,        
         so you can reread it while targetting, and add a                 
targetting subcommand "show prompt" that'll do just that.                 
(Though you can already do that by looking at the help.)
Fix plain coloured items highlighted in grey in prompts, and add two new
colouring prefixes: evil_item (/draining, necromancy books, etc.) and
evil_eating (cannibalism, intelligent being) that only apply for the 
good gods.

--------------------------------------------------------------------------------
bc72da2178 | zelgadis | 2008-06-03 08:16:45 +0000

_place_monster_aux() was sometimes trying to place the monster out of bounds, 
leading to an assertion.

--------------------------------------------------------------------------------
7857511b0f | zelgadis | 2008-06-03 05:35:13 +0000

Have weapon_switch() do autopickup if the player is a vampire, in addition to 
when the chunks_autopickup option is set.

--------------------------------------------------------------------------------
590bf63d6b | dolorous | 2008-06-03 05:34:24 +0000

Add const.

--------------------------------------------------------------------------------
2ee7a5bb8d | zelgadis | 2008-06-03 05:26:24 +0000

Don't need to handle food chunk autopickup, since its already done in 
switch_weapon() in food.cc

--------------------------------------------------------------------------------
a1a27f611a | dolorous | 2008-06-03 04:24:26 +0000

Mark demonspawn players as MH_DEMONIC.

--------------------------------------------------------------------------------
e94caba86d | dolorous | 2008-06-03 04:18:19 +0000

Disallow unchivalric spell attacks from daevas.

--------------------------------------------------------------------------------
6a881bdc15 | dolorous | 2008-06-03 04:04:21 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
bb02d6cc90 | dolorous | 2008-06-03 04:01:24 +0000

Add type fix: attacking targets are unsigned ints, not ints.

--------------------------------------------------------------------------------
63e312c909 | zelgadis | 2008-06-03 02:51:49 +0000

Don't include items in drop filter if they're cursed and equipped, or if 
they're inscribed with "!d" or "!*".

--------------------------------------------------------------------------------
c0c613a08e | j-p-e-g | 2008-06-02 21:46:56 +0000

Fix a recent bug of mine that blocked the friendly fire prompts. Fix 1943573: 
Weird message order when attacking charmed monsters. Fix 1826896: NOTE_ID could 
have line breaks in mid-word
Modify the "This feature has more information" hint to mention
mouseclicking for Tiles players rather than 'v' like for purists.

Oh, and when trying to look into BR 1952908 (buggy trap in the Abyss)
I found that traps can be generated in the Abyss after all. I don't 
know when that was changed but the last time I checked I remember
seeing something like "if (level == ABYSS) return false" in a
"Can there be traps here?" check. Is my memory playing tricks on me
or was that really changed, and if so, was it intentional?

--------------------------------------------------------------------------------
6dc97e9545 | dolorous | 2008-06-02 21:19:04 +0000

Revert previous changes so that things work properly again.

--------------------------------------------------------------------------------
f464ce5fba | dolorous | 2008-06-02 21:14:15 +0000

Clean up.

--------------------------------------------------------------------------------
199f75a310 | dolorous | 2008-06-02 21:11:51 +0000

Comment fixes.

--------------------------------------------------------------------------------
c280008873 | dolorous | 2008-06-02 21:11:13 +0000

Fix off-by-one error (oops).

--------------------------------------------------------------------------------
bd07d623d9 | dolorous | 2008-06-02 21:04:28 +0000

Fix [1952926]: Break overly long formatted strings at EOLs whenever possible.

--------------------------------------------------------------------------------
54b17c9b54 | dolorous | 2008-06-02 20:47:37 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
0707acbff9 | dolorous | 2008-06-02 20:28:52 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
922f361918 | dolorous | 2008-06-02 19:18:15 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
0a4efdf86b | j-p-e-g | 2008-06-02 16:52:40 +0000

Fix a stupid bug I'd introduced when fixing another one. Fix 1939901: Weapon 
listing not updated right away after being cursed.
Put the code to colour arbitrary substrings of a message according to
the menu_colour settings into a function of its own, and use it for
pick up and eating prompts (currently from floor only) as well as for
the "Things that are here" listing. Could be overly spammy, thus needs
testing. If all works well, we can remove the "msg =" settings in 
food_colouring.txt that currently don't do anything anyway, or reuse
them for non-prompt messages like "You see here a green rat corpse."

--------------------------------------------------------------------------------
b50eafe8de | j-p-e-g | 2008-06-02 12:31:12 +0000

I'm not sure I actually coded anything worthwhile, though I experimented a fair 
bit and as usually ended up doing lots of clean-up.
Oh wait, I modified eat_from_floor prompts to only force a more if there
was actually a message before trying the inventory (whoops), and also
modified the corpses in pack hint to take into account that a saccing 
player won't be interested in butchering rotten corpses.

Also implemented a modified FR 1981119: when Detect Creatures only
detects plants already seen before, print a different message
("You detect no further creatures.").

--------------------------------------------------------------------------------
c78ed8ca5a | j-p-e-g | 2008-06-02 08:39:09 +0000

Fix 1981533: Mouseclick allows eating inappropriate food types.

--------------------------------------------------------------------------------
baeaf49b58 | zelgadis | 2008-06-02 06:25:52 +0000

A first attempt at making fog cloud size build up over time.

--------------------------------------------------------------------------------
98e10859b2 | dolorous | 2008-06-02 04:49:13 +0000

Add an entry to randart weapons' "evil stuff".

--------------------------------------------------------------------------------
01dd351f52 | dolorous | 2008-06-02 04:47:29 +0000

Tweak one outsourced weapon noise to match its miscellaneous equivalent.

--------------------------------------------------------------------------------
3cbb9378da | dolorous | 2008-06-02 04:26:16 +0000

Add more spacing fixes.

--------------------------------------------------------------------------------
c2934ef52c | zelgadis | 2008-06-02 04:25:42 +0000

The wizard "tweak item" command can now alter randart properties.

--------------------------------------------------------------------------------
1eb7f2d5a8 | dolorous | 2008-06-02 03:49:22 +0000

Add spacing fix.

--------------------------------------------------------------------------------
906e7d22dc | dolorous | 2008-06-02 03:41:52 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
75af077e08 | dolorous | 2008-06-02 03:16:43 +0000

Add more miscellaneous minor fixes.

--------------------------------------------------------------------------------
bae76b7532 | zelgadis | 2008-06-02 01:48:51 +0000

If create_spec_object() is given the name of a spellbook which doesn't exist, 
treat the name as a spell name and try to find a spellbook containing that 
spell.

--------------------------------------------------------------------------------
b25ae7e841 | dolorous | 2008-06-02 01:27:35 +0000

Add still more comment fixes.

--------------------------------------------------------------------------------
695043d0e4 | zelgadis | 2008-06-02 01:10:42 +0000

Add new wizard targeting command 'm', to move monsters around (or to move the 
player like wizard blink if there's no monster at the chosen square).  Two 
monsters can be made to swap positions, and unseen monsters/squares can be 
targeted.

--------------------------------------------------------------------------------
f861f518dc | dolorous | 2008-06-01 23:49:45 +0000

Make all the unique major demons use CE_NOCORPSE, since they have neither 
weight nor blood.

--------------------------------------------------------------------------------
24be5339e3 | j-p-e-g | 2008-06-01 23:32:17 +0000

Commit a few changes, mostly clean-up.
* Modify tile_show_items setting in tutorial to (hopefully) show corpses
  again.
* Change skill_exp_needed to use the level input rather than decreasing
  the passed in parameter, esp. when it was mostly called in the form
  skill_exp_needed(x + 1) anyway.
  I was trying to find out what went wrong in BR 1929156 but I can't
  work out the formula. :(

--------------------------------------------------------------------------------
a6935bcfb6 | dolorous | 2008-06-01 23:11:12 +0000

Add yet more comment fixes.

--------------------------------------------------------------------------------
ed64917822 | dolorous | 2008-06-01 23:07:49 +0000

Reduce the chance of summoning a very ugly thing a bit more.

--------------------------------------------------------------------------------
3d94f9844f | dolorous | 2008-06-01 22:43:50 +0000

Add another comment fix.

--------------------------------------------------------------------------------
f9637113c9 | dolorous | 2008-06-01 22:42:29 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
33f39e1feb | j-p-e-g | 2008-06-01 21:38:06 +0000

* Fix some issues with the new food colourings, and make it respect   Vampires' 
drinking habits.
* Allow other channels than MSGCH_TUTORIAL to use formatted strings
  and use it to send a coloured string through the butcher prompt,
  thus visibly setting off dangerous corpses. I'd like normal 
  corpses (no patterns in food_colouring.txt matching) not to be 
  highlighted at all, but they're currently shown in lightgrey, that
  will have to be improved.

* Fix Vampire mutation screen displaying poison resistance wrongly.

* Add a new option force_more_message whose syntax is copied from
  travel_stop_message. Any message containing a regex within this
  listing will enforce a -More- prompt. By default, it's only 
  enabled for "You start to lose your buoyoncy."

* Tweak the messages for Kenku flying to fix 1823833.

* Make Xom be amused at players teleporting in a labyrinth or when
  becoming (Near) Starving while in a labyrinth and with little food
  at their disposal.

Yes, it's one of those "Something for everyone" commits. :D

--------------------------------------------------------------------------------
4eb30eb42d | dolorous | 2008-06-01 19:59:21 +0000

Restore the "of the Skies" randart name.

--------------------------------------------------------------------------------
4e5a2bc821 | dolorous | 2008-06-01 18:26:47 +0000

Comment fix.

--------------------------------------------------------------------------------
df11bc9d69 | dolorous | 2008-06-01 18:26:07 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e600dd3df6 | dolorous | 2008-06-01 18:23:55 +0000

Fix typo.

--------------------------------------------------------------------------------
a66e14c424 | dolorous | 2008-06-01 18:22:56 +0000

Add missing prototype.

--------------------------------------------------------------------------------
ffa9cc1f79 | dolorous | 2008-06-01 18:21:41 +0000

Add miscellaneous minor cleanups.

--------------------------------------------------------------------------------
111bc545db | dolorous | 2008-06-01 17:47:12 +0000

Spelling fixes.

--------------------------------------------------------------------------------
5894cb7935 | dolorous | 2008-06-01 17:25:39 +0000

Add another player ghost message.

--------------------------------------------------------------------------------
23456b7755 | dolorous | 2008-06-01 17:20:38 +0000

Remove more unneeded blank lines.

--------------------------------------------------------------------------------
cec7a2b53f | dolorous | 2008-06-01 16:58:59 +0000

Remove more unneeded blank lines.

--------------------------------------------------------------------------------
cdbcf13cc9 | j-p-e-g | 2008-06-01 16:25:09 +0000

Modify the intertravel prompt to not even ask for Pandemonium (since you cannot 
leave the level) and just start travelling to your last travel target (if you 
had one). This solves BR 1843746, but there's no feedback when trying to travel 
to a target that cannot be reached. (No "I don't know how to get there.") 
Still, definitely an improvement.

--------------------------------------------------------------------------------
100ad033f2 | dolorous | 2008-06-01 16:02:54 +0000

Fix typo.

--------------------------------------------------------------------------------
0603a85114 | dolorous | 2008-06-01 16:01:15 +0000

Remove another unneeded blank line.

--------------------------------------------------------------------------------
79d539b3f8 | dolorous | 2008-06-01 15:19:14 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
6e6f15e72a | j-p-e-g | 2008-06-01 14:32:57 +0000

Fix wizard mode being unable to create monsters of nonfloor habitat. Changed 
labyrinth handling for minotaurs:
Instead of being magic mappable, labyrinths are plain mappable. Yes,
that makes everything much easier, but allowing magic mapping and yet
you still have to trudge along by hand (rather than use autotravel) is
worse. To make up for it, we might want to boost the monster minotaur
(trying to defend its home against a rival?) Or we could just remove
the difference altogether...

Cleaned up debug.cc a bit.

--------------------------------------------------------------------------------
033b2f5904 | j-p-e-g | 2008-06-01 12:27:44 +0000

Fix 1937489: Remove map markers overwritten by lakes or rivers, as was          
    already done for vaults.
Modify monster speech to make the beast only use some selected shouts
(i.e. not "You hear an irritating whine") and NEVER do the demon taunts
since it cannot speak.
Demon lords can use almost the whole array of speaking verbs except for
"buzz" and "whine".

--------------------------------------------------------------------------------
cd46d3d8df | zelgadis | 2008-06-01 09:08:39 +0000

Nothing was happening when a monster drank a potion of invisibility or speed 
because the code was using the old system of choosing the effect via setting 
beem.colour instead of setting beem.flavour

--------------------------------------------------------------------------------
7e91fc9390 | zelgadis | 2008-06-01 08:08:33 +0000

Can now conditionalize settings based on menu_colour_prefix_class and 
menu_colour_prefix_id being set.  Used this to make it so that if both are set 
that identified ego items are colored light blue, not just runed/glowing/etc 
non-identified items.

--------------------------------------------------------------------------------
5a15505e52 | zelgadis | 2008-06-01 06:31:25 +0000

is_mutagenic(), is_contaminated() and causes_rot() should have been using &&, 
not ||

--------------------------------------------------------------------------------
522053ab5e | dolorous | 2008-06-01 05:29:43 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
551913a7c5 | dolorous | 2008-06-01 05:13:09 +0000

Sort entries again.

--------------------------------------------------------------------------------
4b61cd451f | dolorous | 2008-06-01 04:51:22 +0000

Make character dumps take the extended hunger states, as well as vampires' 
differing descriptions of them, into account.

--------------------------------------------------------------------------------
308ec1ed64 | dolorous | 2008-06-01 04:50:11 +0000

Add const.

--------------------------------------------------------------------------------
b17f1dbf11 | dolorous | 2008-06-01 03:04:17 +0000

Comment fix.

--------------------------------------------------------------------------------
2f4859fac3 | dolorous | 2008-06-01 03:03:42 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
5a09e4b103 | dolorous | 2008-06-01 02:32:01 +0000

Comment fixes.

--------------------------------------------------------------------------------
c2d257a0c3 | dolorous | 2008-06-01 02:31:28 +0000

Tweak message.

--------------------------------------------------------------------------------
fa362030f5 | dolorous | 2008-06-01 02:29:25 +0000

Clean up and consolidate random_uselessness(), as well as its associated 
outsourced text.

--------------------------------------------------------------------------------
1aa4e8906e | dolorous | 2008-06-01 02:16:21 +0000

Add more random uselessness effect cleanups.

--------------------------------------------------------------------------------
1c8fbc7467 | dolorous | 2008-06-01 01:55:53 +0000

Outsource weird sounds.

--------------------------------------------------------------------------------
62d953c65b | dolorous | 2008-06-01 01:35:07 +0000

Lowercase the last of the the miscellaneous names text, and move it out of the 
randart name database into its own database.

--------------------------------------------------------------------------------
f81059ebbd | dolorous | 2008-06-01 01:02:39 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
8cfe50ff16 | dolorous | 2008-06-01 00:24:30 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
0dc36b35b9 | dolorous | 2008-06-01 00:15:56 +0000

Lowercase the outsourced "writing adjective" and "writing noun" text too.

--------------------------------------------------------------------------------
cf78821269 | dolorous | 2008-06-01 00:11:13 +0000

Lowercase the outsourced "glowing adjective" text as well.

--------------------------------------------------------------------------------
4f2214279e | dolorous | 2008-05-31 23:50:56 +0000

Make the outsourced "weird smell" text lowercase.

--------------------------------------------------------------------------------
491bd54ed3 | j-p-e-g | 2008-05-31 23:45:54 +0000

Fix eating always only taking 1 turn, whoops!

--------------------------------------------------------------------------------
b2a0f789b9 | j-p-e-g | 2008-05-31 23:33:49 +0000

Fix 1962147: Move the comments on the food you eat at the end of DELAY_EAT. Fix 
1971216: Kills by confused undead use LIVING_KILLED_BY_SERVANT              
instead because the message ("collateral kill") fits better              and, 
though it's basically a hack, the distinction does fit              somehow. 
Fix 1914948: Tweak message when you resist a spell cast by an invisible         
     monster. Fix 1946608: Print "Nothing appears to happen." if reading ?EWI 
when              unarmed.
I guess that's it, plus probably some more cleanup.

--------------------------------------------------------------------------------
3344142e8b | dploog | 2008-05-31 21:15:36 +0000

Update options_guide.txt (especially the table of contents).

--------------------------------------------------------------------------------
57ec78ae83 | j-p-e-g | 2008-05-31 20:26:20 +0000

Consolidate all cases where corpses are turned into skeletons, as suggested by 
dolorous in BR 1977925, and turn coloured draconian corpses into plain 
draconian skeletons. Same when the game attempts to create coloured draconian 
skeletons or simulacrums.
Added autoinscription to the single inscription command ('{') - this is
necessary for items with long descriptions that can't autoinscribed
otherwise.

Added a small hack to make death cobs (%) appear correctly in the monster
list.

The rest is cleanup, I believe.

--------------------------------------------------------------------------------
7df3a8aa82 | dploog | 2008-05-31 19:53:40 +0000

Added some iron dragons to Dis:7.

--------------------------------------------------------------------------------
d36cb39769 | j-p-e-g | 2008-05-31 17:59:01 +0000

Remove commented out code, and document my changes. Also change merfolk fighter 
-> merfolk in the database.

--------------------------------------------------------------------------------
8d620e1509 | j-p-e-g | 2008-05-31 17:44:23 +0000

Modify menu_colour_item_prefix() to also handle stuff like contaminated or 
poisonous chunks.
Throw out all those special cases in food_colouring.txt and
replace them with logic. I sure hope I got all special cases, but if
not they should be easy enough to add. The functions are currently all 
in food.cc but they could easily be moved over to clua.cc and adapted 
accordingly if needed.

New prefix shortcuts:
* inedible (full herbi/carnivorousness, rotten food for non-saprovores)
* preferred (respects foovorousness, rotten for ghouls, royal jelly for
             everyone)
* poisonous
* contaminated
* mutagenic
* rot-inducing

(I also added one-liners to the descriptions of chunks of those types.)

The changes apply to all menu types, but they don't handle messages.
This is problematic in that you'd have to check the pickup menu to see 
which corpses are worth butchering, but I'm still against keeping all
those manual checks for (currently) poisonous/mutagenic/... corpses, 
esp. as information like this can date quickly. 
Instead the butchering interface should be improved to somehow handle 
that, possibly by overriding the prompt colour with the specified 
colour if necessary. I don't think there are any other cases where
this is important.

Also add a prefix for equipped items and artefacts, so they can be
easily checked for as well. I really think the identified/unidentified 
prefix should become default (and the option removed) - this allows 
for easy differentiation between identified and non-identified 
artefacts. The "known" prefix (for known wand charges or enchantments)
is a bit less interesting but wouldn't hurt any (I think).

--------------------------------------------------------------------------------
84dcd8dbdc | dolorous | 2008-05-31 17:04:30 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
41c2d216f0 | ennewalker | 2008-05-31 16:42:16 +0000

[1968164] Fixing issue where monster can be generated inside of a rock wall.  
The special rooms don't check for DNGN_BUILDER_SPECIAL_WALL when placing 
monsters and so they may get placed on spots that will turn into walls later.
I could have fixed this by adjusting the dungeon_feature_type enumeration to 
place special walls earlier, but I'm a little scared of mucking with it.

--------------------------------------------------------------------------------
9ffe5be6e3 | dploog | 2008-05-31 13:26:05 +0000

Change level up message (don't mention class anymore). Announce that level 27 
is the last one.

--------------------------------------------------------------------------------
42b1a978ed | dolorous | 2008-05-31 07:11:11 +0000

Add more spell miscast message fixes.

--------------------------------------------------------------------------------
c25785bb70 | dolorous | 2008-05-31 06:15:26 +0000

Comment fix.

--------------------------------------------------------------------------------
b66edb6e9e | dolorous | 2008-05-31 06:14:51 +0000

Adjust numbers again.

--------------------------------------------------------------------------------
e25237e487 | dolorous | 2008-05-31 05:18:29 +0000

Put spells in the Book of the Sky in ascending order by level.

--------------------------------------------------------------------------------
9bfa6d8415 | dolorous | 2008-05-31 05:14:05 +0000

Simplify.

--------------------------------------------------------------------------------
c9312193fd | dolorous | 2008-05-31 05:00:48 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
24d334852d | dolorous | 2008-05-31 05:00:12 +0000

Fix bad logic allowing undead to mutate when they shouldn't be able to.

--------------------------------------------------------------------------------
9a819e3bdc | dolorous | 2008-05-31 04:58:35 +0000

Add missing break.

--------------------------------------------------------------------------------
9eec89ad1e | zelgadis | 2008-05-31 04:51:56 +0000

Have all gods where praying makes no difference ignore your prayers, rather 
than just Xom.

--------------------------------------------------------------------------------
ec7165a04a | dolorous | 2008-05-31 04:31:54 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
0ee668d3ec | dolorous | 2008-05-31 04:30:06 +0000

Add minor cleanup.

--------------------------------------------------------------------------------
e6690fc418 | dolorous | 2008-05-31 04:15:10 +0000

Comment fixes.

--------------------------------------------------------------------------------
1dc557e5cb | dolorous | 2008-05-31 04:13:53 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
baacad38e4 | dolorous | 2008-05-31 04:11:40 +0000

Adjust the shapeshifter probability a bit.

--------------------------------------------------------------------------------
d69c05ea01 | dolorous | 2008-05-31 04:07:57 +0000

When Xom polymorphs a monster, rarely turn it into a shapeshifter.

--------------------------------------------------------------------------------
3e026503b1 | zelgadis | 2008-05-31 03:19:15 +0000

If butchering with a swapped weapon is interrupted, then switch back to the 
non-butchering weapon as soon as the player is safe again. Enabled by setting 
option "swap_when_safe" to true.
Also, fixed a bug where "not switching back" message wasn't always being
given when butchering was interrupted.

--------------------------------------------------------------------------------
6de62154a0 | dolorous | 2008-05-31 02:52:03 +0000

Don't display Xom piety information in character dumps.  It's already hidden 
elsewhere (e.g. in the "%" screen), and he doesn't use piety the same way as 
other gods do anyway.

--------------------------------------------------------------------------------
336384033b | zelgadis | 2008-05-31 01:03:57 +0000

Fixed greedy mode explore_stop so that "items" stops when non-autopickup items 
come into view and "greedy_items" stops when autopickup items come into view.
Also added the new explore_stop conditions "glowing_items", "artefacts"
and "runes", which stops greedy explore when non-autopickup items which
are glowing/rune/etc, artefacts and runes (respectively) come into view.

--------------------------------------------------------------------------------
5ed9c78ba0 | dolorous | 2008-05-30 21:18:45 +0000

Comment fixes.

--------------------------------------------------------------------------------
a0880b55ba | dolorous | 2008-05-30 20:18:07 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
6889f9eeba | dolorous | 2008-05-30 20:16:58 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
b516dc0ad4 | dolorous | 2008-05-30 20:16:02 +0000

Fix non-tiles compilation.

--------------------------------------------------------------------------------
1ddd66869b | j-p-e-g | 2008-05-30 19:44:18 +0000

Autopickup freshly bottled blood potions. Also, call autopickup() after a 
delayed weapon swap (presumably because we butchered/bottled one or more 
corpses before), so we can pick up all chunks/potions at the same time. Note 
that Vampires won't autopickup chunks, but autopickup will at least list stuff 
on the floor, which is also nice to have.

--------------------------------------------------------------------------------
d121c007bb | dolorous | 2008-05-30 18:11:25 +0000

Make random pandemonium demons use CE_NOCORPSE.

--------------------------------------------------------------------------------
1cd8a4973e | dolorous | 2008-05-30 17:22:01 +0000

Allow the monster version of "Summon Undead" to summon spectral warriors, just 
as the player version does.

--------------------------------------------------------------------------------
9756876998 | dploog | 2008-05-30 11:39:41 +0000

Highlighting selected items. Colour scheme is not finished yet.

--------------------------------------------------------------------------------
f22bd308c5 | j-p-e-g | 2008-05-30 10:44:02 +0000

Just for kicks, reuse monster property mname to name zombies/skeletons raised 
from unique monster's corpses. The unique number is stored in orig_monnum, so 
this doesn't apply to orcish followers. I thought it would be cool to have 
Sigmund the human zombie in your ranks, or to fight againt Blork the orc 
skeleton. The corpses are currently not differentiated (just "human corpse", 
"orc skeleton"), just the resulting undead.

--------------------------------------------------------------------------------
db8fcd01b8 | dploog | 2008-05-30 09:48:41 +0000

Changed hud (and % screen) a bit: Write EV and SH instead of Ev and Sh. Change 
order from AC/Sh/Ev to AC/EV/SH. Also put AC/EV/SH to the left and Str/Int/Dex 
to the right.

--------------------------------------------------------------------------------
aab63bdbfc | zelgadis | 2008-05-30 09:03:55 +0000

Autoprayer is gone.

--------------------------------------------------------------------------------
000472ae64 | dolorous | 2008-05-30 06:16:08 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2f46c73905 | zelgadis | 2008-05-30 05:25:07 +0000

Remove scrolls of fog from the list of useless items, since they can be used to 
interrupt line-of-sight.

--------------------------------------------------------------------------------
9f6def7c5d | zelgadis | 2008-05-30 05:16:55 +0000

Added a "your god is growing displeased" tutorial event, so that turorial 
players will get a warning about piety growing low before they get 
excommunicated.  Breaks tutorial compatibility, but otherwise maintains 
savefile compatibilty.

--------------------------------------------------------------------------------
38ebcee462 | zelgadis | 2008-05-30 04:52:33 +0000

Added two new options, rest_wait_both and chunks_autopickup, both defaulting to 
false.  If rest_wait_both is true then resting will only stop when both HP and 
MP are both fully restored, not when only one or the other is restored. If 
chunks_autopickup is true then flesh chunks generated from butchering will 
automatically be picked up (respecting the other autopickup settings).
My implementation of rest_wait_both has a few side effects.  I got rid
of check_hp() and check_mp() from the runrest class, since player AI
interruption code seems to be able to take care of that.  I also added
a rather kuldgey block_interruptions() so that the activity interrupts
code could use mpr() without going into infinite recursion because of
AI_MESSAGE interrutps.

--------------------------------------------------------------------------------
96a64a6214 | zelgadis | 2008-05-30 01:17:30 +0000

When using gcc (the Linux/UNIX compiler) static class members must be 
initialized outside of the class declaration or they won't by defined in any of 
the object files, leading to "undefined reference" errors when linking.

--------------------------------------------------------------------------------
c7d7127e04 | j-p-e-g | 2008-05-29 21:53:19 +0000

Diversify patrol behaviour for monsters of different intelligence.
* I_NORMAL, I_HIGH: as before
* I_ANIMAL: try to only move within LOS of the patrol point
* I_INSECT: as animal, but patrol radius is 5
* I_PLANT : patrol radius is also 5, but there are some other
            differences: 

If the patrol point gets out of sight, zombies don't even attempt to 
get back. Instead they become confused (not literally, though) and 
reset their patrol point to 0 (if hostile, thus stop patrolling) or 
to their current position (to continue "waiting" if friendly). 
Also, while patrolling, if they reach their target there's a 50% 
chance of not moving this turn, and 50% the next turn, etc. 
Especially the latter needs testing. If it looks *too* stupid even
for zombies I'll take it out again.

These changes should also help to make patrolling a bit more
efficient because for stupid monsters we have:
 - one los calculation instead of two (patrol point, monster)
 - smaller radius
 - no calculation at all if success is unlikely (distance check)

--------------------------------------------------------------------------------
bfed89c67c | dploog | 2008-05-29 20:26:12 +0000

Fix BR 1945444 (broken Pan colours). Added as follows: Cerebov: red floor, red 
wall. Lom Lobon: lightgrey floor, white wall. Mnoleg: yellow floor, red wall. 
Gloorx Vloq: lightgrey floor, lightgrey wall.
I might have confused red/lightred and darkgrey/lightgrey. Please shout
if you happen to know the proper colours.

--------------------------------------------------------------------------------
5d31784bac | dploog | 2008-05-29 19:30:59 +0000

Removed magic fountains from entry vaults. (Lemuel)

--------------------------------------------------------------------------------
cb8422f120 | j-p-e-g | 2008-05-29 16:33:19 +0000

Correct a mistake in the los check -- it's not quite so fast now, but at least 
it works correctly.
Reduce chances for friendly orcs some more, though by now the main
speech stems from cantrip spells of friendly priests and wizards. (At
least I couldn't find special messages for them in monspeak.txt.)

--------------------------------------------------------------------------------
0cd39802e4 | dshaligram | 2008-05-29 15:56:34 +0000

Removed reference to obsolete location of init.txt (Marc).

--------------------------------------------------------------------------------
871c03730f | j-p-e-g | 2008-05-29 15:41:39 +0000

Implement a much more efficient version of the LOS testing used for monster 
patrolling. As before, ray casting is used to verify LOS but ray casting now 
only happens if a blocked grid is encountered when searching the surroundings 
in a growing spiral. If a blocked grid is found, all beams that might possibly 
go through this grid (heuristically tested, probably tests more than needed) 
are checked right away and all grids behind the blocked one are marked as well 
- this blocking can be reversed, if we later find another beam that unblocks 
it. A beam that was already tried isn't tried a second time.
The values are stored in a (2*LOS_RANGE)^2 array and then directly
compared when deciding where to send a patrolling monster next.
In the worst case we still need to fire beams at each of the edge 
grids, but that probably can't be avoided entirely, though performance
could obviously still be improved.

The increase in speed is very much noticeable, i.e. for me Crawl runs
smoothly again. :)

--------------------------------------------------------------------------------
5730d82050 | dolorous | 2008-05-29 14:02:17 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
b42bd161b6 | j-p-e-g | 2008-05-29 09:44:50 +0000

Modify tutorial messages for the new triggers. Thanks again, Matthew! :)

--------------------------------------------------------------------------------
5f14cf8ebb | zelgadis | 2008-05-29 07:33:57 +0000

Spaces can't be put around the '|' which divide alternate strings in a regexp, 
because the spaces become part of the regexp.
Also, added exceptions for non-vampires and potions of blood, mummies and
any potions or food, and a bunch of race related armour exceptions.

--------------------------------------------------------------------------------
d11f10d80b | zelgadis | 2008-05-29 06:36:30 +0000

Added scrolls of fog to the list of useless items.

--------------------------------------------------------------------------------
57d19ca8a8 | zelgadis | 2008-05-29 06:35:23 +0000

Added a line which can be uncommented to reduce autoprayer spam, muting all 
prayer messages but "prayer over" and "your god is displeased" messages.

--------------------------------------------------------------------------------
4e484905bc | dolorous | 2008-05-29 06:09:25 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
de335f00ea | zelgadis | 2008-05-29 04:45:51 +0000

Oops, forgot to remove turning on DEBUG_DIAGNOSTICS.

--------------------------------------------------------------------------------
070e8e3187 | zelgadis | 2008-05-29 04:25:29 +0000

Fire TUT_SEEN_TRAP when a trap is detected, in addition to when a trap is 
triggered.  Give info on avoid mechanical and natural traps by leviating or 
flying, and that natural and magical traps can't be disarmed.  Give hint 
resting on up-stairs to make quick escape from monsters, and note that monsters 
can't follow up up unless they're right next to you.

--------------------------------------------------------------------------------
d3bec38020 | zelgadis | 2008-05-29 04:21:49 +0000

"include foo.txt" doesn't work, has to be "include = foo.txt"

--------------------------------------------------------------------------------
3da16ef551 | zelgadis | 2008-05-29 02:35:14 +0000

Twelve new tutorial events, plus examining a square with a cloud or a monster 
submerged in shallow water will give extra info during turorial mode.  Might be 
giving too many spoilers, especially the tips on surviving in the Abyss and 
saying exactly what each god likes and dislikes when covnerting.
There's a bug in non-tiles build where the tutorial note on branch
entrances shows the '>' symbol as light-grey instead of yellow; don't know
what's causing that.

Also, made player::backlit() used _get_contamination_level() to stay in
sync with the rest of the code.

Breaks savefile compatibilty.

--------------------------------------------------------------------------------
395829b30f | dploog | 2008-05-28 23:05:09 +0000

Added several include files to the init.txt. These add colours to items in the 
inventory (or other menus) and to messages. Most controversial will be 
food_colouring which colour codes chunks andcorpses based on their quality. 
Note that these files are included by default.
Thanks go to a great many ##crawl activists, among them b0rsuk, doy, ekiM,
stabwound.

To do: Examining corpses and chunks should show their edible state as well.
Several of the colours should be globally defined; see FR 1977121 for this.
Also copy the highlighting of marked items.

--------------------------------------------------------------------------------
28364e961a | dolorous | 2008-05-28 21:35:27 +0000

Add more noise-related cleanups.

--------------------------------------------------------------------------------
85d21b25c8 | dshaligram | 2008-05-28 20:45:08 +0000

Fixed missing Lua errors (dpeg).

--------------------------------------------------------------------------------
c1a1863748 | dshaligram | 2008-05-28 19:34:32 +0000

Make include look like other options (dpeg).

--------------------------------------------------------------------------------
292816a9de | dshaligram | 2008-05-28 19:19:43 +0000

Fix broken handling of option aliases in included files (dpeg).

--------------------------------------------------------------------------------
c352a8d5a4 | dolorous | 2008-05-28 15:26:28 +0000

Simplify _mon_on_interesting_grid() by reusing _is_native_in_branch() where 
possible.

--------------------------------------------------------------------------------
7287acae93 | j-p-e-g | 2008-05-28 13:49:05 +0000

Another use for patrolling: Hostile monsters wandering across a grid they 
consider "interesting" may note it down as patrolling point to return to. 
There's currently no way of deleting such a patrol point short of enslaving the 
monster. As before, patrolling only applies while wandering. Other behaviour 
modes (chasing the player etc.) take precedence.
For now interesting grids are:
* altar to one of the good gods for holy beings
* altar to Beogh, or entrance to/return from Orcish Mines for orcs
* entrance to/return from Elven Halls for elves
* entrance to the Hive for killer bees

To test these changes, I've modified the stealth checks for wizard mode:
If you set the Stealth skill to a value greater than 27 (possible in
wizmode) hostile monsters will ignore you, i.e. not set MHITYOU if 
you are nearby.
Noises will still wake monsters, and they'll hit you if they walk
into you (or vice versa), but they won't target you.

--------------------------------------------------------------------------------
e7af666573 | dploog | 2008-05-28 12:26:16 +0000

Small changes.

--------------------------------------------------------------------------------
6977f25bb9 | j-p-e-g | 2008-05-28 08:05:03 +0000

Modify mon_enemies_around() logic to allow friends to also cast spells if they 
have a foe but you don't, i.e. if their foe is out of your LOS.
Don't allow patrolling to a target grid that is occupied by a monster in
case it's a stationary monster (plant or sleeping).

--------------------------------------------------------------------------------
7aff33edc6 | dolorous | 2008-05-28 05:17:29 +0000

Comment fixes.

--------------------------------------------------------------------------------
9a762716ca | dolorous | 2008-05-28 05:16:14 +0000

Use the "sound" message channel properly with some sound-related messages.

--------------------------------------------------------------------------------
368a2fca54 | dolorous | 2008-05-28 05:15:17 +0000

Revert previous change, as random uselessness is a scroll effect, and won't 
work when silenced.

--------------------------------------------------------------------------------
45811434cb | dolorous | 2008-05-28 04:51:11 +0000

Add random uselessness messages for when the player is silenced.  These are 
taken from spell miscasts, as many of the random uselessness messages are 
already.

--------------------------------------------------------------------------------
b9cd7423d2 | dolorous | 2008-05-28 03:56:06 +0000

Add more silence checks for random uselessness scroll effects.

--------------------------------------------------------------------------------
3c8f48b928 | dolorous | 2008-05-28 01:39:55 +0000

Remove now-redundant code.

--------------------------------------------------------------------------------
30db8a62b5 | dolorous | 2008-05-28 01:34:16 +0000

Typo fix.

--------------------------------------------------------------------------------
d7736d4796 | dolorous | 2008-05-28 01:32:46 +0000

Clean up handling of the "[Your followers] forsake you." messages when 
switching gods.

--------------------------------------------------------------------------------
d43d1d862a | dolorous | 2008-05-28 00:58:34 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
2132f86546 | zelgadis | 2008-05-27 23:55:37 +0000

Some reformatting for the branch descriptions.

--------------------------------------------------------------------------------
05e6dce92c | dolorous | 2008-05-27 23:16:04 +0000

Add one more consistency fix: Death oozes should use CE_NOCORPSE too.

--------------------------------------------------------------------------------
afc080eb94 | dolorous | 2008-05-27 23:11:58 +0000

Add consistency fixes: zombified forms (skeletons, zombies, spectral things, 
and similar creatures such as skeletal warriors) should use CE_NOCORPSE, and 
hige-sized dragons that can be zombified should produce big zombies.

--------------------------------------------------------------------------------
66c149dbd3 | j-p-e-g | 2008-05-27 20:15:24 +0000

Modify num_feats_between to return early if a feature has been encountered and 
we're only interested in whether the path is clear or not. Also, more 
whitespace/comment changes.

--------------------------------------------------------------------------------
70ce5c5c0c | j-p-e-g | 2008-05-27 15:22:09 +0000

Add yet another new channel MSGCH_FRIEND_ACTION that simple_monster_message 
uses instead of MSGCH_PLAIN if the monster in question is friendly, and such 
messages (e.g. "Your imp blinks", but also all other similar messages) won't 
interrupt resting nor running.
Also clean up travel.cc a bit, esp. the traversable_grid check that now
simply uses a for loop rather than list all traversable grids.

--------------------------------------------------------------------------------
48897bf56e | j-p-e-g | 2008-05-27 13:33:39 +0000

Well, that's what I get by working on several versions of the code at the same 
time... completely confused. Anyway, here's the updated conventions 
documentation.

--------------------------------------------------------------------------------
aaa1bacdf6 | j-p-e-g | 2008-05-27 13:27:15 +0000

Update documentation on coding conventions, and apply a few of them. :)

--------------------------------------------------------------------------------
a86d2a5239 | j-p-e-g | 2008-05-27 12:46:08 +0000

Fix 1974137: Stat-lowering transformations resulting in death by stat loss. Now 
take to-be-removed equipment in account and don't transform in the removed 
equipment or the stat loss or both in combination would decrease one of your 
stats to (below) 0. For the vampire bat transformation, this check only happens 
after the ability failure check, so this could be improved. In any case, it's 
better than dying.
Also, fix wrongly treating armour as worn when checking for stat loss 
by wearing.

--------------------------------------------------------------------------------
612b5c4318 | j-p-e-g | 2008-05-27 11:12:31 +0000

Some spacing clean-up in the tutorial code (thanks for the additions, Matthew!) 
and fix BR 1974056 (wrong colouring of tutorial skills information).

--------------------------------------------------------------------------------
ddb3328fdc | zelgadis | 2008-05-27 10:02:23 +0000

Sif Muna is no longer pleased simply by spell casting, but rather by the 
training of spell casting skills.

--------------------------------------------------------------------------------
4d5a197bc8 | j-p-e-g | 2008-05-27 10:01:26 +0000

Yet another session of comment/whitespace cleanups.

--------------------------------------------------------------------------------
05d3781c9f | zelgadis | 2008-05-27 08:41:39 +0000

If you try to butcher when there's no corpse on the ground but there's corpses 
in your pack the game will tell you to drop them so they can be butchered.  And 
if when you butcher a corpse on the ground there's also one in your pack the 
game will remind you about it, suggesting that you might want to also butcher 
the corpse in your pack.

--------------------------------------------------------------------------------
f277a34ed3 | zelgadis | 2008-05-27 08:10:12 +0000

Since a new player might not think to pick up a corpse, make TUT_SEEN_CARRION 
fire when a corpse is first seen, rather than when one is first picked up.

--------------------------------------------------------------------------------
53ffbf7f60 | zelgadis | 2008-05-27 07:04:50 +0000

If you're next to only one door which you can open/close, choose that without 
prompting the user.  If there aren't any doors which can be opened/closed, note 
that without prompting the user.
Also, closing doors is now subject to confusion effects like opening
doors is.

--------------------------------------------------------------------------------
7012324fec | zelgadis | 2008-05-27 06:27:45 +0000

When advising the player on resting, note that it's better to move back to an 
area where you've explored and killed off all the monsters, since if you rest 
on the edge of the explored areas you're more likely to be interrupted by a 
wandering monster.
On TUT_RETREAT_CASTER, if the player has wands that might be useful in
fighting, comment on that.

When first seeing an altar, tell conjurers that the best gods to
worship are Vehumet and Sif Muna.

When gaining your first god-granted ability, if the ability is passive
tell the player to use '^' instead of 'a' to examine the ability.

--------------------------------------------------------------------------------
fd2afc8ce1 | zelgadis | 2008-05-27 04:41:51 +0000

Fire off TUT_HEAVY_LOAD if you go from unencumbered to overloaded in one step.

--------------------------------------------------------------------------------
c5aa4e2692 | zelgadis | 2008-05-27 04:17:23 +0000

runrest_ignore the entire "pray" channel, not just "prayer ends".

--------------------------------------------------------------------------------
7c4ca986dd | dolorous | 2008-05-27 04:06:40 +0000

Fix wording.

--------------------------------------------------------------------------------
2c809e3aec | zelgadis | 2008-05-27 03:55:29 +0000

'p' no longer stops an ongoing prayer.

--------------------------------------------------------------------------------
5a5d1de0f8 | dolorous | 2008-05-27 03:24:46 +0000

Add one more entry.

--------------------------------------------------------------------------------
852afd2385 | dolorous | 2008-05-27 03:22:29 +0000

After more thought, remove one miscellaneous entry.

--------------------------------------------------------------------------------
9005be62ec | dolorous | 2008-05-27 02:55:19 +0000

Comment fix.

--------------------------------------------------------------------------------
8e18c6da0f | dolorous | 2008-05-27 02:53:25 +0000

Use some of the new miscellaneous entries elsewhere.

--------------------------------------------------------------------------------
0659dff37e | dolorous | 2008-05-27 01:55:53 +0000

Sort the new entries again.

--------------------------------------------------------------------------------
12f4ddfc46 | dolorous | 2008-05-27 01:50:34 +0000

Outsource names of roaring animals and smells.

--------------------------------------------------------------------------------
2aa69c8f83 | zelgadis | 2008-05-27 01:48:13 +0000

Added "error" channel for runtime errors, and changed error messages that used 
the "danger" or "warning" channels to use that.  Sending an error message to 
the error channel has the side effect of interrupting all activity.

--------------------------------------------------------------------------------
298d76bd71 | dolorous | 2008-05-27 01:48:03 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
4e0afdb9a0 | dolorous | 2008-05-27 01:29:21 +0000

Add a few more entries, and sort them.

--------------------------------------------------------------------------------
eef4d3cc05 | dolorous | 2008-05-27 01:22:45 +0000

Comment fix.

--------------------------------------------------------------------------------
0f5e0a8a0a | dolorous | 2008-05-26 21:46:47 +0000

Add a few new entries to replace the consolidated ones.

--------------------------------------------------------------------------------
db11fffb4e | dolorous | 2008-05-26 21:41:49 +0000

Consolidate duplicate entries.

--------------------------------------------------------------------------------
dea302d31d | dolorous | 2008-05-26 21:25:37 +0000

Don't display the "You hear..." message for scrolls of random uselessness if 
the player is silenced.

--------------------------------------------------------------------------------
4cad928d65 | dolorous | 2008-05-26 21:12:57 +0000

Outsource more miscellaneous names besides colors (glowing color types, writing 
types for Tomes of Destruction), and move them into their own file.  Also, 
tweak the message for glowing colors used by scrolls of random uselessness so 
that they no longer have to start with consonants.

--------------------------------------------------------------------------------
04ad46b90c | dolorous | 2008-05-26 20:56:25 +0000

Typo fixes.

--------------------------------------------------------------------------------
a0674f612d | dshaligram | 2008-05-26 18:38:24 +0000

Abyssal rune tedium reduction: - Abyssal rune generation chances rise with 
turns spent in the Abyss (in the current visit, not cumulative). - Lugonu 
followers get better abyssal rune odds faster. - Abyssal rune generation is 
stopped after one rune is picked up, re-enabled if rune is lost in the Abyss.

--------------------------------------------------------------------------------
fa25a34716 | dolorous | 2008-05-26 18:33:14 +0000

Outsource the list of colors in weird_colour(), and add a few more entries to 
it.

--------------------------------------------------------------------------------
8a501759a3 | dploog | 2008-05-26 18:03:11 +0000

And yet another one (thanks Johanna).

--------------------------------------------------------------------------------
880c712370 | j-p-e-g | 2008-05-26 17:52:01 +0000

Yet another change log update.

--------------------------------------------------------------------------------
54e3b7e115 | dolorous | 2008-05-26 17:45:27 +0000

Remove unneeded "settings/" from travel_stoppers.txt include path (thanks, 
dshaligram).

--------------------------------------------------------------------------------
417903c52d | j-p-e-g | 2008-05-26 17:40:43 +0000

Modify skill titles
* Replace the "Foo" in Foo Blade, Foo Porcupine, Foo Catapult, Foo Arbalest, 
  Foo Ballista, and Foo Barricade with the capitalized genus (Elf, Orc, 
  Draconian, ...)

* Merry Foo, Foo of Death, Placeless Foo and Shapeless Foo still use the
  species name, though that's debatable, of course.

* Marksfoo uses the lowercase genus name, in particular "ogre" for Ogre
  and Ogre-Mage, both.

* Add "Plane Glider" as "Plane Foo" variant for Kenku.

Clean up the skill title array a bit.

--------------------------------------------------------------------------------
16287466f1 | dshaligram | 2008-05-26 17:40:05 +0000

Also fixed include paths to 034_* from init.txt (thanks, dolorous).

--------------------------------------------------------------------------------
a3b630c3dc | dolorous | 2008-05-26 17:37:47 +0000

Update init.txt to account for the new location of travel_stoppers.txt.

--------------------------------------------------------------------------------
bf52d08b6c | dploog | 2008-05-26 17:23:37 +0000

Moved travel_stoppers.txt to settings folder.

--------------------------------------------------------------------------------
a20addc5d9 | dshaligram | 2008-05-26 16:36:43 +0000

Moved all option files to settings directory.
Crawl loads init.txt from data file path if it can't find any other .crawlrc.

makefile changes to copy settings directory to install dir. Tested only on 
Linux/tty.

--------------------------------------------------------------------------------
a1daeea25c | j-p-e-g | 2008-05-26 15:55:52 +0000

Clean up the change log a bit, and modify the monster speech documentation.

--------------------------------------------------------------------------------
a844f8e102 | dshaligram | 2008-05-26 15:30:07 +0000

Better support for settings files that include other files:
- Files can be included as "include foo" in .crawlrc instead of using
  the Lua call: : crawl.read_options('foo'). include foo and the Lua
  crawl.read_options('foo') are not equivalent - Lua only runs after the
  start of a new game, which is too late for some option settings.

- Crawl searches for included files in this sequence:
    - Absolute paths: use the path directly (but not if DATA_DIR_PATH is
      set, since we don't want Crawl to read arbitrary files on
      multiuser systems).
    - Search relative to the including file.
    - Search relative to any -rcdir(s) provided.
    - Search in the data file search path.

- The data file search path now includes settings/ for when we move rc
  stuff to settings/

.gitignore: ignore saves and morgue dirs correctly.

--------------------------------------------------------------------------------
1f1939b11a | dploog | 2008-05-26 13:50:45 +0000

LRD description, take two. (Zaba again)

--------------------------------------------------------------------------------
f9197e8225 | dploog | 2008-05-26 13:40:36 +0000

Merged the two description of Lee's Rapid Deconstruction. (Zaba)

--------------------------------------------------------------------------------
760d182372 | j-p-e-g | 2008-05-26 12:35:56 +0000

Add a "patrolling" flag to monster creation in mapdef and dungeon.cc, and add 
it to Orb Guardians in Zot:5. At least in theory, they should now be returning 
to their starting points if you flee and stay away for long enough.
"In theory" because the bad monster pathfinding prevents them 
from actually finding their way back. We've got the same problem 
with minotaurs in labyrinths, who've also got this flag set. Because 
of these restrictions it's almost impossible to test whether it would 
work without such problems. In any case, it's there for later.

Also: spacing and commenting fixes in dungeon.cc.

--------------------------------------------------------------------------------
92a5149b41 | j-p-e-g | 2008-05-26 11:22:35 +0000

Make patrolling monster movement more natural: don't always return to the 
patrol centre, make it more likely to return to the patrol area if the monster 
left it somehow but is still nearby, and make friendly monsters move around the 
player on their way to their target.
Also, highlight wizard commands in the wizard help.

--------------------------------------------------------------------------------
f910f85b74 | zelgadis | 2008-05-26 07:45:18 +0000

FR 1822931: Vaults can now include tags of the form "layout_foo" to indicate 
which level layout types it's compatible with, where "foo" can be: rooms, 
caves, open, city, or cross (plus swamp, shoals and labyrinth, even though 
random vaults aren't used in those places). Having no "layout_foo" tag means 
that the vault is compatible with all layout types, which is the current 
behavior.
Also, fixed bug where layouts plan_1 (donut levels), plan_2 (cross
levels) and plan_6 (octagon with circle of pillars) were choosing
randomly from the three Lua defined layouts in dat/layout.des, rather
than choosing exactly the chosen layout.

--------------------------------------------------------------------------------
f7f652ac0f | zelgadis | 2008-05-26 03:51:15 +0000

Fix 1971173: don't interrupt interlevel travel for monsters coming into         
     view if you're already going up or down stairs.
Also, only interrupt for HP or MP being fully restored when resting.

--------------------------------------------------------------------------------
14752e5f2c | zelgadis | 2008-05-26 03:16:36 +0000

monsters::lose_energy() now takes optional paramaters to multiply and/or divide 
(rounded up) the amount of energy lost.
When a monster's attack is warded off the energy consumed is half that
of what the attack would normally have taken, a change from it not
taking any energy at all.

--------------------------------------------------------------------------------
091176830c | zelgadis | 2008-05-26 00:06:31 +0000

If a monster animates the dead, only give the "The dead are walking!" message 
if the player can see at least one of the corpses being raised.

--------------------------------------------------------------------------------
a81f929851 | j-p-e-g | 2008-05-25 22:36:55 +0000

Fix aborting unchivalric attacks costing a turn.
Implement ordering your friends to stay where they are.
To do this, I've added a new variable to the monster struct:
patrol_point, that is set by the new t sub-command "Wait here!"
Once this is set, monsters will spend their time wandering around within
the LOS radius centred on the patrol point. If they are attacked, or
the player or other friends are attacked, they'll stop wandering to
fight, but once the foe is gone, they continue doing so.
Currently, the only way to make them stop again is to issue another
command, "Follow me!" that is basically the already existing "Come
here!" command. I've also added a "Stop fighting!" command that for 
non-patrolling monsters has the same effect as "Follow me!" - 
patrolling monsters are supposed to take up their wanderings again.

--------------------------------------------------------------------------------
f07d0af220 | dolorous | 2008-05-25 20:37:16 +0000

Rearrange Xom's spell list a bit.

--------------------------------------------------------------------------------
d8cf2ea9da | dolorous | 2008-05-25 20:24:18 +0000

If there's no warning prompt for attacking, attack by default.

--------------------------------------------------------------------------------
41c03b649a | dolorous | 2008-05-25 19:07:21 +0000

Comment fix.

--------------------------------------------------------------------------------
9780458005 | dolorous | 2008-05-25 19:06:41 +0000

Move set_attack_conducts() to religion.cc, as it really belongs there.

--------------------------------------------------------------------------------
3797cd88df | dolorous | 2008-05-25 19:05:13 +0000

Rearrange the order of a few functions.

--------------------------------------------------------------------------------
8a218b4239 | dolorous | 2008-05-25 18:49:10 +0000

Consolidate a bit more.

--------------------------------------------------------------------------------
a5351e1ee6 | dolorous | 2008-05-25 18:39:47 +0000

Fix inverted logic.

--------------------------------------------------------------------------------
64cff4c949 | dolorous | 2008-05-25 18:35:51 +0000

And name the consolidated function properly.

--------------------------------------------------------------------------------
5c355726c3 | dolorous | 2008-05-25 18:33:50 +0000

Consolidate the setting of the "standard" attack conducts.

--------------------------------------------------------------------------------
35cfeb7620 | dolorous | 2008-05-25 17:48:23 +0000

Fix compilation.

--------------------------------------------------------------------------------
f5526da8ba | j-p-e-g | 2008-05-25 17:39:04 +0000

Force fleeing monsters to "turn to fight" before breathing at you. (Fixes 
1967981: TSO punishes fighting back against "helpless"                 fleeing 
monsters.)

--------------------------------------------------------------------------------
63e4083df0 | dolorous | 2008-05-25 17:33:38 +0000

Consolidate the attack warning prompts for both melee and beams, and use the 
prompts properly with Burn/Freeze, Smite, and Airstrike.  Also, move the 
now-single function for this into misc.cc, since I can't think of a better 
location right now.

--------------------------------------------------------------------------------
0eceb6ff8b | j-p-e-g | 2008-05-25 15:11:37 +0000

Fix 1914059: randart jewellery inconsistently described as {tried} by           
   adding yet another entry to props.
FR 1949504: Move version information into the help scroller, yay! It also
            looks much nicer now (if I may say so). Go, take a look! :)

--------------------------------------------------------------------------------
378c95389b | j-p-e-g | 2008-05-25 13:02:35 +0000

Remove the prompt before putting/removing on stat draining items in favour of 
just refusing to do so.

--------------------------------------------------------------------------------
440734626b | j-p-e-g | 2008-05-25 12:40:22 +0000

Allow Troggies to autopickup manuals, and change the message when gaining the 
"Book Burn" ability (only when you first join Trog) to explicitly refer to 
spellbooks. I like the alliteration in the ability name, so kept that as is.

--------------------------------------------------------------------------------
fd7dc681f0 | j-p-e-g | 2008-05-25 11:48:21 +0000

Mention named orcs' base type in the monster descriptions.

--------------------------------------------------------------------------------
5e50467df7 | dolorous | 2008-05-25 03:16:07 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
dfdbf0d88f | dolorous | 2008-05-25 03:15:35 +0000

Comment fix.

--------------------------------------------------------------------------------
0ed56a110a | dolorous | 2008-05-25 02:06:39 +0000

Sort the list of spells that vampires can conditionally cast.

--------------------------------------------------------------------------------
4defe7893f | dolorous | 2008-05-25 01:36:05 +0000

Add one more orcish name.

--------------------------------------------------------------------------------
15bb3aff6a | dolorous | 2008-05-25 00:16:26 +0000

Let "Summon Wraiths" rarely summon shadow wraiths.

--------------------------------------------------------------------------------
ed5d34361a | j-p-e-g | 2008-05-24 21:47:51 +0000

Experimentally dump the new overview screen rather than the old one. I'm 
actually not entirely convinced this is the way to go. a) The new one is more 
informative, but the dump already contains    all that extra information in a 
much more detail. b) The new one is much more concise, but that's something 
that's not    necessary in the dump.
On the plus side, new players doesn't have to get used to two different
designs. Anyway, the old dump is still there, and we could use the
dump options to let the player choose which one to use.

For now, let's try whether it's possible to get used to this one.

--------------------------------------------------------------------------------
61808dc89b | dolorous | 2008-05-24 20:56:37 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
989c948508 | j-p-e-g | 2008-05-24 20:52:31 +0000

Move the mpr version of the monster list to output.cc and add it to the dumped 
information in the morgue. Change monster naming to the precise listing of 
zombie sub types etc. but list monster types in brackets for non-unique named 
monsters, so you can now find information like the following in your morgue 
file:
"You can see a goblin, an orc, two orc warriors, thirteen friendly orcs,
and the friendly Bogrim (orc priest)."

Since the concise version of the monster list is still an in-game command 
('F'), this also neatly solves the problem of orc players not knowing the 
type of their followers.

--------------------------------------------------------------------------------
b3f9dc0237 | dolorous | 2008-05-24 20:50:10 +0000

And put it in the right place again.

--------------------------------------------------------------------------------
f94892e5a6 | dolorous | 2008-05-24 20:40:51 +0000

Handle the warning prompt for melee attacks while in a sanctuary in 
melee_attack::attack() instead of _move_player(), so that melee attacks made 
using Ctrl-key sequences also show it.

--------------------------------------------------------------------------------
b8850fdc43 | dolorous | 2008-05-24 20:06:23 +0000

And put it back in, in the proper place.

--------------------------------------------------------------------------------
74e2141a84 | dolorous | 2008-05-24 19:44:19 +0000

Revert previous change, as it's in the wrong place.

--------------------------------------------------------------------------------
211669d0be | dolorous | 2008-05-24 19:34:10 +0000

Typo fixes.

--------------------------------------------------------------------------------
a24f6ba591 | dolorous | 2008-05-24 19:31:12 +0000

Account for sanctuaries in the "Really fire through..." prompt.

--------------------------------------------------------------------------------
918389a0cf | j-p-e-g | 2008-05-24 19:23:36 +0000

Update change log once again.

--------------------------------------------------------------------------------
779fa77b12 | dolorous | 2008-05-24 19:01:04 +0000

Change SP_GOLDEN_DRACONIAN to SP_YELLOW_DRACONIAN, for consistency.

--------------------------------------------------------------------------------
6fdfd21f60 | dolorous | 2008-05-24 17:43:52 +0000

Improve the "feet feel warm" miscast message again to take more conditions into 
account.

--------------------------------------------------------------------------------
0b98eac717 | dolorous | 2008-05-24 16:31:46 +0000

Since oklob plants are no longer confusable, remove the check for their being 
confused when trying to spit acid.

--------------------------------------------------------------------------------
b67d804488 | dolorous | 2008-05-24 15:59:37 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
7f75448474 | dolorous | 2008-05-24 15:56:52 +0000

Simplify.

--------------------------------------------------------------------------------
6c48778084 | dolorous | 2008-05-24 15:51:46 +0000

Remove duplicate prototype.

--------------------------------------------------------------------------------
3de2f859f1 | zelgadis | 2008-05-24 09:38:27 +0000

Skeletal warrior zombies were possible, and sometimes generated in the Crypt.

--------------------------------------------------------------------------------
eb656202a3 | j-p-e-g | 2008-05-24 09:35:38 +0000

Fix typo in skills.

--------------------------------------------------------------------------------
8cdbb3ac72 | j-p-e-g | 2008-05-24 09:14:20 +0000

Change skill titles as discussed in FR 1957095. There might have to be a second 
round tweaking them some more.

--------------------------------------------------------------------------------
cb907ccf68 | dolorous | 2008-05-24 02:45:29 +0000

Comment fix.

--------------------------------------------------------------------------------
5e55a276bd | dolorous | 2008-05-24 02:44:29 +0000

Add a minor cleanup.  Since blessing a random follower as a result of one of 
your kills is only done for Beogh, remove the unused code enabling it for TSO.

--------------------------------------------------------------------------------
8909792b19 | dolorous | 2008-05-24 02:31:18 +0000

Simplify.

--------------------------------------------------------------------------------
8134b0c4c4 | dolorous | 2008-05-24 01:17:43 +0000

Typo fix.

--------------------------------------------------------------------------------
d1fb2bdb86 | dolorous | 2008-05-24 00:17:44 +0000

Add another comment fix.

--------------------------------------------------------------------------------
8d37059fe0 | dolorous | 2008-05-23 23:36:00 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
6fe7d341e3 | dolorous | 2008-05-23 23:18:44 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
c30c83edde | dolorous | 2008-05-23 23:13:33 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
c673b814b5 | dolorous | 2008-05-23 22:30:30 +0000

Typo fix.

--------------------------------------------------------------------------------
8a0d0a083f | j-p-e-g | 2008-05-23 22:01:33 +0000

Make undead confusable again.

--------------------------------------------------------------------------------
f2dffb84bd | j-p-e-g | 2008-05-23 21:53:17 +0000

Consolidate player tracer messages.

--------------------------------------------------------------------------------
8eaa5c76d2 | dolorous | 2008-05-23 21:06:12 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
6a76a19047 | dolorous | 2008-05-23 15:39:32 +0000

Revert being more forgiving about making unchivalric attacks by zapping unknown 
wands, since there's a warning prompt for it now.

--------------------------------------------------------------------------------
e48766e842 | j-p-e-g | 2008-05-23 15:15:10 +0000

Apply beam tracer prompt to helpless/fleeing etc. creatures when worshipping an 
appropriate god. I'm simply reusing dolorous unchivalric methods here. :) Also, 
don't prompt for harmless beams.
Still TODO:
Make the message differentiate between target and obstacles, and clean
up the code a bit.

--------------------------------------------------------------------------------
7b9c8f3ef0 | dploog | 2008-05-23 09:08:59 +0000

Changed stealth descriptors as per FR 1968020.

--------------------------------------------------------------------------------
c2e58c5553 | dploog | 2008-05-23 08:17:41 +0000

More changes for Ctrl-G -> G.

--------------------------------------------------------------------------------
f0d01fd186 | dolorous | 2008-05-23 02:18:04 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
eae07cc934 | dolorous | 2008-05-23 02:14:41 +0000

Add the last two weapon branding spells to Xom's spell list.

--------------------------------------------------------------------------------
89edeea030 | dolorous | 2008-05-23 02:00:45 +0000

Rename SPELL_SUMMON_SMALL_MAMMAL and SPELL_SWARM to SPELL_SUMMON_SMALL_MAMMALS 
and SPELL_SUMMON_SWARM, respectively, to match their user descriptions.

--------------------------------------------------------------------------------
5eb525508f | dolorous | 2008-05-23 01:42:37 +0000

Remove "Summon Elemental" from Xom'sspell list, as it's controllable by the 
player, and Xom has enough summoning spells in his list anyway.

--------------------------------------------------------------------------------
96ca505d7f | dolorous | 2008-05-23 00:29:45 +0000

Be a bit more forgiving of zapping unidentified wands that your god dislikes 
the effects of (e.g. for good gods, unidentified wands of draining), and 
properly handle inadvertent unchivalric attacks.

--------------------------------------------------------------------------------
70ef1ea677 | dolorous | 2008-05-23 00:18:06 +0000

Comment fixes.

--------------------------------------------------------------------------------
f91be6a2f7 | dolorous | 2008-05-22 23:38:11 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
7adf2d18d2 | dolorous | 2008-05-22 22:01:10 +0000

Have cast_revitalisation() do all its own piety handling, as it's a bit cleaner 
that way.

--------------------------------------------------------------------------------
ddc0e17079 | dolorous | 2008-05-22 21:12:05 +0000

Comment fix.

--------------------------------------------------------------------------------
6cf13ddd8b | dolorous | 2008-05-22 21:05:16 +0000

Fix vitalisation chain handling when we lose enough piety to break the chain.

--------------------------------------------------------------------------------
050bda1547 | dolorous | 2008-05-22 18:20:35 +0000

Properly disallow bottling blood from rotten corpses, as doing so causes an 
assertion failure in wizard mode.  Also, don't display "What a waste." if we've 
just butchered a rotten corpse.

--------------------------------------------------------------------------------
099ea03d15 | dploog | 2008-05-22 16:46:28 +0000

And again.

--------------------------------------------------------------------------------
866a3a280b | dploog | 2008-05-22 16:36:43 +0000

Update documentation (G instead of Ctrl-G).

--------------------------------------------------------------------------------
2a73bdc6a3 | j-p-e-g | 2008-05-22 15:53:37 +0000

Improve player beam tracer for firing through friendlies: * name the monster 
you're firing through ("your goblin zombie") * use maximum possible range * 
make it work for spells and abilities, as well
Still todo:
* apply the same logic to firing missiles
* don't prompt for monsters that wouldn't be harmed
  (e.g. living allies for Dispel Undead, etc.)

--------------------------------------------------------------------------------
9a1e7565ec | ennewalker | 2008-05-22 13:18:50 +0000

Pushing some dungeon-related lua functions back into C++.

--------------------------------------------------------------------------------
0d4f7611a4 | dolorous | 2008-05-21 17:48:31 +0000

Remove gender-specific god reference.

--------------------------------------------------------------------------------
20139af984 | dolorous | 2008-05-21 17:20:24 +0000

Comment fix.

--------------------------------------------------------------------------------
cbf67e5890 | dolorous | 2008-05-21 17:18:46 +0000

Replace Elyvilon's single-weapon-destruction retribution with a 
multiple-weapon-dulling retribution.

--------------------------------------------------------------------------------
0805d6e15d | dolorous | 2008-05-21 15:12:44 +0000

Switch the key for interlevel travel from Ctrl-G to G.

--------------------------------------------------------------------------------
9b55168648 | j-p-e-g | 2008-05-21 07:30:33 +0000

Fix 1941612: Zapping wands known to be empty shouldn't cost a turn, but         
     empty wands with unknown charges should cost a turn.
Experimentally add a "Really fire through friendly creature?" prompt
when a beam tracer passes through a friend. This currently uses the 
existing monster tracer and probably has huge problems because of this.
In any case, it appears to only work sometimes, though consistently for
wands in my testing, possibly because the range is fixed (?) when
compared to spells. (This is part of FR 1962548.)

--------------------------------------------------------------------------------
98e3c24887 | dolorous | 2008-05-21 04:31:47 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
9bf613aa42 | dolorous | 2008-05-21 04:31:02 +0000

Make evil item sacrifices to TSO actually give piety (oops).

--------------------------------------------------------------------------------
cf5963c08f | dolorous | 2008-05-21 02:01:01 +0000

Fix indentation.

--------------------------------------------------------------------------------
6d329c543d | dolorous | 2008-05-21 01:51:31 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
94e6620656 | dolorous | 2008-05-20 23:51:46 +0000

Run through the god conducts for killing if we make a bad kill of a summoned 
creature (e.g. a living kill while praying to Elyvilon).

--------------------------------------------------------------------------------
37afbcd7f1 | dolorous | 2008-05-20 23:34:23 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e52fb1abe6 | dolorous | 2008-05-20 22:30:28 +0000

Add another comment fix.

--------------------------------------------------------------------------------
e9ed3b0593 | dolorous | 2008-05-20 22:29:24 +0000

Fix backward logic.

--------------------------------------------------------------------------------
0818e3d47c | dolorous | 2008-05-20 22:20:20 +0000

Comment fix.

--------------------------------------------------------------------------------
22b4656a72 | dolorous | 2008-05-20 22:19:40 +0000

Properly scale the stat-boosting mutation level checks so that divine stamina 
is disabled if you have all 14 levels of at least one.

--------------------------------------------------------------------------------
45c42254b1 | dolorous | 2008-05-20 21:54:16 +0000

Fix chaining when alternating between divine stamina and divine robustness if 
mutations affect how the alternation goes.

--------------------------------------------------------------------------------
266bf3090d | dolorous | 2008-05-20 21:41:15 +0000

Clean Zin's Vitalisation up a bit more.

--------------------------------------------------------------------------------
8cd4205a9e | dolorous | 2008-05-20 20:31:38 +0000

Simplify.

--------------------------------------------------------------------------------
eb8a71bbce | dolorous | 2008-05-20 20:13:50 +0000

Rework the steps of Zin's Vitalisation a bit.

--------------------------------------------------------------------------------
71c0a31487 | dolorous | 2008-05-20 17:09:17 +0000

Add various attitude- and alignment-related fixes.

--------------------------------------------------------------------------------
ea22861efb | dolorous | 2008-05-20 17:07:12 +0000

Add another comment fix.

--------------------------------------------------------------------------------
912020d60e | dolorous | 2008-05-20 16:42:22 +0000

Make Xom's amusement at collateral damage take good neutral monsters into 
account.

--------------------------------------------------------------------------------
05abbb827c | dolorous | 2008-05-20 16:38:03 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
7d7941c196 | dolorous | 2008-05-20 16:23:26 +0000

Comment fixes.

--------------------------------------------------------------------------------
48d9ab2d18 | j-p-e-g | 2008-05-20 12:06:22 +0000

Fix travel not working. Whoops!

--------------------------------------------------------------------------------
6052fa9347 | j-p-e-g | 2008-05-20 11:47:37 +0000

Finally fix 1868761: Books in shops being noted as identified over and          
            over again (when searching stashes).
Also remove my recently added NOTE_FOUND_ORB_OR_RUNES in favour of the
previously existing NOTE_GET_ITEM. Also I've noticed that this is
probably already listed in the "milestones" - but what on earth are they?

--------------------------------------------------------------------------------
b926fb5cd1 | j-p-e-g | 2008-05-20 10:27:50 +0000

Fix 1885453: Apply Lugonu's hp penalty (on entering the Abyss) to              
you.base_hp2 (rather than you.hp_max) and thus really              make it 
permanent (I think).

--------------------------------------------------------------------------------
82abef2e72 | j-p-e-g | 2008-05-20 10:07:45 +0000

Fix monsters capable of LOS attack behind glass walls being ignored. Fix 
monsters behind glass walls being autotargetted for spells that need a path.
Fix spacing in spl-data.h, and add some comments about commenting
to coding_conventions.txt.

--------------------------------------------------------------------------------
d7f1dd21aa | j-p-e-g | 2008-05-20 08:12:03 +0000

Ignore non-spellcasting monsters behind glass walls for the purpose of resting 
and exploring.

--------------------------------------------------------------------------------
1733067254 | j-p-e-g | 2008-05-20 07:24:17 +0000

Rename static methods in travel.cc and terrain.cc.

--------------------------------------------------------------------------------
75ffb38b0b | dolorous | 2008-05-19 23:24:02 +0000

Fix earth miscast message to account for talons.

--------------------------------------------------------------------------------
b3b2d32788 | dolorous | 2008-05-19 22:33:45 +0000

Add spacing fix.

--------------------------------------------------------------------------------
8652a617b2 | dolorous | 2008-05-19 22:09:24 +0000

Fix [1967456]: Change "horribly wounded" to "severely wounded".

--------------------------------------------------------------------------------
1c72043350 | dolorous | 2008-05-19 22:05:10 +0000

Comment fix.

--------------------------------------------------------------------------------
b4c0033f33 | dolorous | 2008-05-19 22:00:39 +0000

Improve the "Really attack..." prompts a bit.

--------------------------------------------------------------------------------
667af8ad07 | dolorous | 2008-05-19 20:58:31 +0000

Move the "Really attack..." prompt to a better location, and add prompts to 
avoid attacking e.g. friendly monsters in melee when not confused (usually via 
the Ctrl-key combinations while trying to disarm traps).

--------------------------------------------------------------------------------
005c896eab | dolorous | 2008-05-19 20:50:08 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
f6f7d43fc9 | dolorous | 2008-05-19 20:07:13 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
d5f91332d6 | j-p-e-g | 2008-05-19 19:23:31 +0000

Fix an inverted use of parameters when calling get_player_visible_monsters, and 
state "Not with a mimic in view" for known mimics rather than listing the 
object type since that seems a bit weird.

--------------------------------------------------------------------------------
5f61c3caf7 | j-p-e-g | 2008-05-19 19:01:25 +0000

Fix 1858979: Monsters being capable to reach through wallsl. (And some cleanup.)

--------------------------------------------------------------------------------
0ee4e39daf | dolorous | 2008-05-19 18:28:10 +0000

Add more consistency fixes: the conduct for melee attacks on holy beings now 
uses their hit dice, as beams do, and conducts for stabbing and unchivalrous 
attacks give 4 points instead of 5 again, for consistency with e.g. necromancy 
and unholy attacks.

--------------------------------------------------------------------------------
ca67d2a004 | dolorous | 2008-05-19 18:07:20 +0000

And make attacks on god gifts consistent with beams the same way.

--------------------------------------------------------------------------------
ad56ba63d7 | dolorous | 2008-05-19 17:29:26 +0000

Handle the good neutral attitude properly in debugging information and the 
wizard mode attitude toggle.

--------------------------------------------------------------------------------
e8f0d9e7d8 | dolorous | 2008-05-19 17:19:44 +0000

Simplify.

--------------------------------------------------------------------------------
a06c2f795e | dolorous | 2008-05-19 17:15:42 +0000

Handle burning/freezing, smiting, and airstriking the same way as beams: the 
attacked god gift stays, while the others disappear.

--------------------------------------------------------------------------------
d51dd4717c | dolorous | 2008-05-19 16:51:06 +0000

Actually apply the patch described in the previous commit.  The actual previous 
commit was to handle enchantment beams the same way as offensive beams (oops).

--------------------------------------------------------------------------------
5045d8f404 | dolorous | 2008-05-19 16:48:31 +0000

Revert the always-annoying change to Burn/Freeze, for consistency with 
offensive beams as opposed to enchantment beams.

--------------------------------------------------------------------------------
b30c6bb162 | dolorous | 2008-05-19 16:38:03 +0000

Annoy a monster at the right time when casting Burn/Freeze on it.

--------------------------------------------------------------------------------
07458d3415 | dolorous | 2008-05-19 16:34:23 +0000

Add more minor cosmetic fixes, and make sure Burn/Freeze always annoys the 
monster, for consistency with beams.

--------------------------------------------------------------------------------
6fb3fad327 | dolorous | 2008-05-19 16:16:46 +0000

Comment fixes.

--------------------------------------------------------------------------------
7737a83cf7 | dolorous | 2008-05-19 16:03:12 +0000

Revert the previous conduct-related changes, so that attacking friendly or 
neutral monsters generates the proper conduct again.  The previous consistency 
needs to be reimplemented.

--------------------------------------------------------------------------------
7088910182 | dolorous | 2008-05-18 16:55:19 +0000

Fix [1962231]: The zombie damage indicator in the monster list no longer 
displays wound information, just as examining them with 'x' doesn't.

--------------------------------------------------------------------------------
01f413b9a6 | dolorous | 2008-05-18 16:49:13 +0000

Fix indentation.

--------------------------------------------------------------------------------
324735e9da | dolorous | 2008-05-18 16:33:58 +0000

When indicating monsters' wounds, Actually display the "horribly wounded." 
message, at the midpoint between the "heavily wounded" and "almost dead" 
messages.

--------------------------------------------------------------------------------
8f96a48c55 | dolorous | 2008-05-18 16:21:36 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
affffc40c9 | dolorous | 2008-05-18 15:06:41 +0000

Fix [1964969]: Rename "merfolk fighter" to "merfolk", as it matches the defined 
monster name.

--------------------------------------------------------------------------------
e253a12035 | dploog | 2008-05-18 15:04:04 +0000

Update CREDITS.

--------------------------------------------------------------------------------
48b34746c4 | dploog | 2008-05-18 11:27:37 +0000

Fixed BR 1895620; removed the following sentence from the description of the 
Warp Weapon spell: "This spell is very dangerous to cast, as the field is 
likely to affect the caster as well."

--------------------------------------------------------------------------------
e2cbc98a16 | j-p-e-g | 2008-05-18 09:40:53 +0000

Pull code from mon->can_see(target) into a new function mon->see_grid() and use 
it in the checks for monster/monster visibility.
I didn't have the time to test it but it should at least solve part of
the problem of monsters firing through walls (if monster visibility is
even checked there, which I don't know).

Also (as usually), more code cleanup.

--------------------------------------------------------------------------------
8f675841ee | dolorous | 2008-05-18 00:05:02 +0000

Dial down the power of monsters' Dispel Undead a bit.

--------------------------------------------------------------------------------
4c8cec9f3c | j-p-e-g | 2008-05-17 23:37:07 +0000

Fix 1965819: invisible monster given away when (un)wielding or wearing          
    stuff. Also clean up in a couple of files.

--------------------------------------------------------------------------------
85570292af | dolorous | 2008-05-17 21:24:15 +0000

For consistency, Make the unused stabbing conduct give 5 points instead of 4.

--------------------------------------------------------------------------------
83ac33ef8c | dolorous | 2008-05-17 21:23:24 +0000

For consistency with e.g. inadvertently attacking friends while confused, don't 
give the "Really attack..." prompt when making an unchivalric attack under 
those circumstances either.

--------------------------------------------------------------------------------
0a8341f8e4 | dolorous | 2008-05-17 20:40:47 +0000

Remove the victim-setting for the stabbing conduct again for now.  It can 
easily be put back in if some god starts using it and needs the victim 
information.

--------------------------------------------------------------------------------
8b9b77f9c1 | dolorous | 2008-05-17 20:07:05 +0000

Really fix handling of monsters that TSO doesn't mind your using unchivalric 
attacks against.  Also, indicate the victim when handling the stabbing conduct.

--------------------------------------------------------------------------------
a37bd53efc | dolorous | 2008-05-17 19:40:49 +0000

Add still more comment fixes.

--------------------------------------------------------------------------------
4a2d68e18d | dolorous | 2008-05-17 19:38:25 +0000

Fix the aforementioned issue properly.  Attacking a god gift in melee will now 
result in its staying and attacking you, while the others disappear, just as 
with beam/spell attacks.

--------------------------------------------------------------------------------
0d97be12ec | dolorous | 2008-05-17 19:28:27 +0000

Make monsters' reactions to being hurt by spells consistent.

--------------------------------------------------------------------------------
91f4d3f24e | dolorous | 2008-05-17 19:23:30 +0000

When burning, freezing, smiting, or airstriking a monster, annoy it before 
running through conducts, so that attacked god gifts will stick around to fight 
back while others will disappear.

--------------------------------------------------------------------------------
2c1bfabda0 | dolorous | 2008-05-17 19:17:35 +0000

Temporarily revert previosu crash fix, as there has to be a better way to deal 
with it.

--------------------------------------------------------------------------------
799fc2a736 | dolorous | 2008-05-17 19:14:30 +0000

Simplify.

--------------------------------------------------------------------------------
df100fdbeb | dolorous | 2008-05-17 18:49:54 +0000

Add yet more comment fixes.

--------------------------------------------------------------------------------
ca99f58040 | dolorous | 2008-05-17 18:39:21 +0000

Fix crash when attacking a friendly monster in melee if it's abjured (again).

--------------------------------------------------------------------------------
8af40b84cb | dolorous | 2008-05-17 18:28:56 +0000

Fix handling of monsters that TSO doesn't mind your using unchivalric attacks 
on.

--------------------------------------------------------------------------------
51a3d79045 | dolorous | 2008-05-17 18:27:26 +0000

Clean up the unchivalric attack routine a bit.

--------------------------------------------------------------------------------
18a94062a4 | dolorous | 2008-05-17 18:04:46 +0000

Enable handling of long-distance unchivalric attacks, and increase the penalty 
from 4 to 5 for consistency with similar attacks frowned upon by the good gods.

--------------------------------------------------------------------------------
2c1931a103 | ennewalker | 2008-05-17 17:46:48 +0000

Adding _plan_1() (the donut room) into layout.des.  Vaults can now have zero 
size.

--------------------------------------------------------------------------------
395a699d97 | dolorous | 2008-05-17 17:31:12 +0000

Remove redundant declarations.

--------------------------------------------------------------------------------
70ccdafc3a | dolorous | 2008-05-17 16:32:45 +0000

Add still more comment fixes.

--------------------------------------------------------------------------------
3e02b2afba | ennewalker | 2008-05-17 03:49:50 +0000

Outsourced the cross and the large octagon room to the (new) layout.des file.  
The octagon room is especially more random now, with different types, sizes, 
and numbers of pillars as well as more interesting stair placement.
Vaults with the "layout" tag:
1) Aren't ever chosen as a random vault.
2) Are treated as normal level, so that other vaults can be placed over top.
3) Should probably be encompassing.
4) Currently only occur with the same frequency as the cross/octagon did.

--------------------------------------------------------------------------------
ad41d5694a | dolorous | 2008-05-17 01:45:36 +0000

For consistency, rename the DID_FRIEND_DIES conduct to DID_FRIEND_DIED.

--------------------------------------------------------------------------------
1eff96d6a5 | dolorous | 2008-05-17 01:42:23 +0000

Put stabbing back in as a separate conduct, in case it can be used for e.g. a 
future god of assassins.

--------------------------------------------------------------------------------
ded3b65a0d | dolorous | 2008-05-17 01:36:13 +0000

For TSO, change the "stabbing" conduct to an "unchivalrous attack" conduct, and 
exercise it on every stabbing attempt, whether it succeeds or not (and also 
whether the player is berserk or not, since a berserk player trying to stab 
seems unchivalrous to me).

--------------------------------------------------------------------------------
408f0d9ba4 | dolorous | 2008-05-17 00:22:14 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
78756f0bc7 | dolorous | 2008-05-17 00:20:58 +0000

Allow Trog to accept living kills from servants (e.g. his Brothers in Arms).

--------------------------------------------------------------------------------
adea2d8750 | dolorous | 2008-05-16 22:23:08 +0000

Comment fixes.

--------------------------------------------------------------------------------
d8a30df0a9 | dolorous | 2008-05-16 22:17:40 +0000

Add spacing fix.

--------------------------------------------------------------------------------
273c857b31 | dolorous | 2008-05-16 21:00:31 +0000

Really disable it this time.

--------------------------------------------------------------------------------
1e3eebd6c6 | dolorous | 2008-05-16 20:59:43 +0000

Disallow racial (orcish) ankuses again, since they're not really clubs, and 
orcs don't seem to fit the image of elephant drivers the way ogres do, due to 
the former's smaller size.

--------------------------------------------------------------------------------
72f4d01320 | dolorous | 2008-05-16 20:49:00 +0000

Add one more database entry.

--------------------------------------------------------------------------------
5c668a7bbb | dploog | 2008-05-16 20:38:06 +0000

Fix BR 1959133 (Shiori): change Ancus to Ankus.

--------------------------------------------------------------------------------
661f576c2c | dolorous | 2008-05-16 20:20:07 +0000

Add a few destiny-based database entries.

--------------------------------------------------------------------------------
d077900823 | dolorous | 2008-05-16 20:12:28 +0000

Tweak database entry.

--------------------------------------------------------------------------------
f0ad03b7fd | dolorous | 2008-05-16 19:52:11 +0000

Add a few more database entries.

--------------------------------------------------------------------------------
a1c31d08a1 | dolorous | 2008-05-16 19:50:30 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
7a019a5879 | dolorous | 2008-05-16 17:51:41 +0000

For now, apply mesilliac's fix for erroneously unlinked, disappearing items.  
If I'm reading the code correctly, monsters::reset() is only called by 
monster_cleanup(), and monsters::destroy_inventory() is generally called just 
before monster_cleanup(), which makes the call to monsters::destroy_inventory 
in monsters::reset() seemingly redundant.

--------------------------------------------------------------------------------
0fb1ca59f6 | dolorous | 2008-05-16 17:43:39 +0000

Don't give the player the DID_KILL_HOLY conduct in 
melee_attack::player_monattk_hit_effects() if the hit kills a holy monster, as 
monster_die() will be called afterwards, resulting in its being given twice.

--------------------------------------------------------------------------------
ec60cf13c1 | dolorous | 2008-05-16 17:40:58 +0000

Add spacing fix.

--------------------------------------------------------------------------------
c9959a6ac4 | dolorous | 2008-05-16 17:01:20 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c27f68c478 | j-p-e-g | 2008-05-16 12:19:25 +0000

A few message tweaks for delayed butchering.

--------------------------------------------------------------------------------
18266441fd | j-p-e-g | 2008-05-16 09:52:35 +0000

Fix the remaining (known) issues with butchering all corpses in a stash: * You 
should now get the "not swapping back" warning also for sac sessions   and 
chained butchery. * Vampires choosing (a)ll from a "Bottle this corpse?" prompt 
will only   attempt to bottle corpses that actually contain blood (so they no 
longer   will be autobutchering bloodless corpses in the stash).
Also changed Vampire spell hunger reduction to 
  Thirsty, Very Thirsty: 50%
  Near Starving, Starving: None

--------------------------------------------------------------------------------
9775ec72ba | dolorous | 2008-05-16 04:41:34 +0000

Add formatting fixes.

--------------------------------------------------------------------------------
bb7c074f36 | dolorous | 2008-05-16 04:40:40 +0000

Remove description for shuggoth, as it's not implemented in the code anywhere 
anymore (just as the mollusc lord isn't).

--------------------------------------------------------------------------------
a80613ea78 | dolorous | 2008-05-16 00:56:03 +0000

Comment fixes.

--------------------------------------------------------------------------------
e8d3aa1c63 | dolorous | 2008-05-16 00:54:35 +0000

Make divine stamina increase stats by 1, 3, and 5 instead of by 1 each time.

--------------------------------------------------------------------------------
c9b7ef52cd | dolorous | 2008-05-16 00:52:21 +0000

Fix problem disabling the third level of divine stamina.

--------------------------------------------------------------------------------
83b417f2fc | dolorous | 2008-05-15 23:56:02 +0000

Fix messages for expiring divine robustness and disappearing divine shields.

--------------------------------------------------------------------------------
6c1c71a644 | j-p-e-g | 2008-05-15 23:46:58 +0000

Implement FR 1936340: add a shortcut for butchering (a)ll corpses in a stack. 
Does not yet differentiate between butchering and bottling (for Vampires), and 
if several butcher/sacrifice delays have been chained and are now interrupted, 
you only get the "not switching back to xyz" message if the interruption 
happens while butchering the last corpse.

--------------------------------------------------------------------------------
3c01957993 | dolorous | 2008-05-15 20:49:39 +0000

Add "Dispel Undead" to the miscellaneous player ghost spell list.

--------------------------------------------------------------------------------
bb4e61f631 | dolorous | 2008-05-15 20:24:20 +0000

Fix butchery prompt to accept "d" again.

--------------------------------------------------------------------------------
ecb09f1d9e | dolorous | 2008-05-15 19:17:37 +0000

Disable chaining of Zin's Vitalisation if, after the piety for it is spent, 
there's not enough left to vitalise again.

--------------------------------------------------------------------------------
da1b9a543c | dolorous | 2008-05-15 18:14:35 +0000

Comment fixes.

--------------------------------------------------------------------------------
0a43d21f2b | dolorous | 2008-05-15 18:12:43 +0000

Display divine stamina in the "@" and "%" screens, under "divine fortification".

--------------------------------------------------------------------------------
eafc3434ec | dolorous | 2008-05-15 17:31:28 +0000

Comment fix.

--------------------------------------------------------------------------------
98b9bec859 | dolorous | 2008-05-15 17:29:47 +0000

Improve the non-stacking of Zin's divine stamina and the stat-enhancing 
mutations.

--------------------------------------------------------------------------------
124c5d2ff5 | dolorous | 2008-05-15 17:19:49 +0000

Rename Zin's Revitalisation to Vitalisation.

--------------------------------------------------------------------------------
525ed47151 | dolorous | 2008-05-15 17:05:22 +0000

When placed under penance or excommunicated by Zin, remove divine stamina.  
Also, consolidate the routines for removing Zin's divine robustness, Zin's 
divine stamina, and TSO's divine shield.

--------------------------------------------------------------------------------
0c5e8ac3e5 | dolorous | 2008-05-15 16:37:23 +0000

Comment fix.

--------------------------------------------------------------------------------
3446563c1c | dolorous | 2008-05-15 16:35:07 +0000

Display divine robustness in the "@" and "%" screens.

--------------------------------------------------------------------------------
0be746e8fe | dolorous | 2008-05-15 16:33:50 +0000

Fix chaining again.

--------------------------------------------------------------------------------
a9fdbb0f00 | dolorous | 2008-05-15 16:00:34 +0000

Clean up the non-stacking of Zin's divine boosts and the equivalent mutations.

--------------------------------------------------------------------------------
d41eb1b2b5 | dolorous | 2008-05-15 15:45:05 +0000

Add divine stamina (temporary stat-boosting) to Zin's Revitalisation.

--------------------------------------------------------------------------------
c0447d60a0 | dolorous | 2008-05-15 15:34:56 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
6b01f8a9a0 | j-p-e-g | 2008-05-15 09:39:09 +0000

Add a tutorial hint for encountering an invisible monster and offer a different 
healing message if you recently met an invisible monster, as suggested in FR 
1964267. Killing an invisible monster does not yet reset the counter, though I 
guess it should. Also, disallow randart weapons to be named after Sif Muna. 
(Vehumet, too, maybe?)

--------------------------------------------------------------------------------
66740a30c6 | ennewalker | 2008-05-15 03:15:22 +0000

[1947491] Fixing minor issues in dungeon.cc.  Some cases have too few stairs.  
Some cases create twice as many.  There's now the possibility of actually 
having a roguey_level on its own, where before there wasn't.

--------------------------------------------------------------------------------
e784ce38d0 | dolorous | 2008-05-15 02:25:55 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
b8dae05075 | dolorous | 2008-05-15 02:20:32 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
419eeb64e2 | dolorous | 2008-05-15 00:35:32 +0000

For TSO worshippers, show the stabbing prompt for every stabbing attempt, 
whether it ends up succeeding or failing.

--------------------------------------------------------------------------------
1247b72477 | dolorous | 2008-05-15 00:34:06 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
109389daf5 | dploog | 2008-05-14 22:04:17 +0000

Spelling fix.

--------------------------------------------------------------------------------
30a315552f | dolorous | 2008-05-14 21:56:23 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
fdb65ed342 | dolorous | 2008-05-14 21:27:30 +0000

Comment fix.

--------------------------------------------------------------------------------
5ec10fbaaf | dolorous | 2008-05-14 21:25:15 +0000

Properly take item quantities into account when they're destroyed on the floor.

--------------------------------------------------------------------------------
12f2aced29 | dolorous | 2008-05-14 21:09:17 +0000

Add sanity checks.

--------------------------------------------------------------------------------
5174172d1c | dolorous | 2008-05-14 21:07:52 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
b6c69a8651 | dolorous | 2008-05-14 20:47:04 +0000

Consolidate beam and cloud handling routines a bit, and allow clouds to destroy 
items on the floor where applicable.  Also allow grey smoke as a random potion 
effect from Evaporate.

--------------------------------------------------------------------------------
f03320c66f | dolorous | 2008-05-14 20:22:04 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
6d0f9f0115 | dolorous | 2008-05-14 19:20:46 +0000

Consolidate routines for elements' destroying items on the floor.

--------------------------------------------------------------------------------
cefd272db6 | dolorous | 2008-05-14 18:15:07 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
05149b7ee4 | dolorous | 2008-05-14 18:05:49 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
8d7eb4b10e | dolorous | 2008-05-14 17:26:12 +0000

Let bolts of fire and ice, as well as explosions, destroy vulnerable items.

--------------------------------------------------------------------------------
abc4280d24 | dolorous | 2008-05-14 17:06:12 +0000

Comment fix.

--------------------------------------------------------------------------------
1e578ac60a | dolorous | 2008-05-14 16:44:04 +0000

Add another comment fix.

--------------------------------------------------------------------------------
66d6029b8e | dolorous | 2008-05-14 16:39:16 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
189f1e8246 | dolorous | 2008-05-14 16:14:09 +0000

Comment fixes.

--------------------------------------------------------------------------------
7c442751b0 | j-p-e-g | 2008-05-14 15:27:28 +0000

Fix listing of hydra head listing to show the correct amount when heads get 
sliced off and regrow, and also apply the naming change to hydra zombies.

--------------------------------------------------------------------------------
ee2afdbd16 | j-p-e-g | 2008-05-14 15:00:11 +0000

FR 1962016: Make hydra headedness more obvious.             You now get 
messages like "The seven-headed hydra bites."             and "You slice the 
12-headed hydra."
FR 1963606: Take a note when you pick up a rune (or the Orb!) for the 
            first time.

There are a couple of other files I changed, but I can't remember any
big stuff, so it was probably just cleanup.

--------------------------------------------------------------------------------
4d430b2328 | dolorous | 2008-05-13 22:06:13 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
e5ef47080c | dolorous | 2008-05-13 21:56:29 +0000

Rename static function to fit the style guide.

--------------------------------------------------------------------------------
13ae97a245 | dolorous | 2008-05-13 21:12:07 +0000

Add "Summon Ice Beast" to Xom's spell list.

--------------------------------------------------------------------------------
53023b7afc | dolorous | 2008-05-13 20:02:27 +0000

Add a few messages for Xom, Beogh, and Zin.

--------------------------------------------------------------------------------
c6a6b5910e | dolorous | 2008-05-13 17:44:08 +0000

Comment fixes.

--------------------------------------------------------------------------------
868f85f513 | dolorous | 2008-05-13 17:42:24 +0000

For consistency, put Xom's prayer message in the prayer channel.

--------------------------------------------------------------------------------
c5a3023550 | dolorous | 2008-05-13 14:27:35 +0000

Comment fixes.

--------------------------------------------------------------------------------
f318a3d8c4 | dolorous | 2008-05-13 14:25:02 +0000

Add "Summon Ice Beast" to the list of player ghost spells.

--------------------------------------------------------------------------------
b18feb600c | dolorous | 2008-05-13 14:02:33 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
6c4dcd25f5 | dolorous | 2008-05-13 14:02:06 +0000

Apply mesilliac's patch in [1962846], slightly tweaked, to make friendlies 
react to projectile attacks on other non-attacking monsters.

--------------------------------------------------------------------------------
dcbe0071af | dolorous | 2008-05-13 13:37:14 +0000

Simplify.

--------------------------------------------------------------------------------
124b70cb5f | dolorous | 2008-05-13 13:34:12 +0000

Apply mesilliac's patch in [1962836] to fix the item list display in wizard 
mode.

--------------------------------------------------------------------------------
73e3825233 | dolorous | 2008-05-13 12:54:12 +0000

Add another comment fix.

--------------------------------------------------------------------------------
7749484e1c | j-p-e-g | 2008-05-12 21:50:52 +0000

Change Banishment level to 4, to reflect the recent change of it not allowing 
self-banishment, anymore.

--------------------------------------------------------------------------------
96f23af118 | dolorous | 2008-05-12 18:06:47 +0000

Comment fix.

--------------------------------------------------------------------------------
a9ac379a10 | dolorous | 2008-05-12 18:04:19 +0000

Disallow randart slings of venom, since they can produce poisoned stones or 
sling bullets.

--------------------------------------------------------------------------------
c4e1c624f2 | dolorous | 2008-05-12 02:26:32 +0000

Comment fix.

--------------------------------------------------------------------------------
3a14e65233 | dolorous | 2008-05-11 21:17:09 +0000

Revert holy beings' being enraged by players worshipping neutral gods, and 
Xom's forcing their behavior, as the latter also holds for demons, and that's 
inconsistent with the spells Xom can make you cast.  I guess that, in the 
former case, the holy beings you summon can also be fallen or exiled?

--------------------------------------------------------------------------------
af68fee931 | dolorous | 2008-05-11 20:25:36 +0000

Comment fix.

--------------------------------------------------------------------------------
131ea95165 | dolorous | 2008-05-11 20:14:38 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
8b576f8427 | dolorous | 2008-05-11 20:10:43 +0000

Display messages for Xom armor gifts properly.

--------------------------------------------------------------------------------
65bf5b1454 | dolorous | 2008-05-11 20:04:41 +0000

If Xom sends you any friendly holy beings, force their behavior to friendly, 
since they might be fallen or exiled holy beings.

--------------------------------------------------------------------------------
0e94946fbc | dolorous | 2008-05-11 20:02:27 +0000

If you somehow summon a holy being, and you don't worship a good god, it'll be 
enraged by your lacking holy aura.

--------------------------------------------------------------------------------
4ff5c90e12 | dolorous | 2008-05-11 19:37:08 +0000

Simplify.

--------------------------------------------------------------------------------
6479d9c77a | dolorous | 2008-05-11 19:21:11 +0000

Remove now-unused function.

--------------------------------------------------------------------------------
1255055076 | dolorous | 2008-05-11 19:13:09 +0000

Revert previous change (oops).  The first part is redundant, given the handling 
of holy beings, and the second part is inconsistent with it.

--------------------------------------------------------------------------------
cafe082722 | dolorous | 2008-05-11 19:10:30 +0000

Mark holy beings converted by your piety as god gifts again, so they properly 
turn on you if you abandon the good gods.  Also, if you dump the good gods for 
a neutral god, make them turn neutral.

--------------------------------------------------------------------------------
d95dec3948 | dolorous | 2008-05-11 19:03:05 +0000

For consistency, when dumping one good god for another good god, make the 
former's gifts turn good neutral instead of neutral.

--------------------------------------------------------------------------------
2f544ec6c2 | dolorous | 2008-05-11 17:55:00 +0000

Make holy beings able to convert from neutral to good neutral on sight again.

--------------------------------------------------------------------------------
bca6689d1a | dolorous | 2008-05-11 17:43:14 +0000

If you somehow summon a holy being while worshipping an evil god, it's now 
enraged by your unholy aura.

--------------------------------------------------------------------------------
eadb30016e | dolorous | 2008-05-11 17:23:51 +0000

For consistency, when you start worshipping Trog, make all your magic-using 
allies abandon you.

--------------------------------------------------------------------------------
f59e844177 | dolorous | 2008-05-11 17:12:06 +0000

Remove the reconversion-on-sight routines for holy beings and orcs, since 
dumping the good gods or Beogh will reconvert them across all levels anyway.

--------------------------------------------------------------------------------
7e15822b47 | dshaligram | 2008-05-10 21:28:35 +0000

lemuel_angel_altar now gets the Daeva only at D:13 and deeper.

--------------------------------------------------------------------------------
036944b759 | dshaligram | 2008-05-10 20:43:31 +0000

Replace deep water / lava prompts with MSG_UNTHINKING_ACT.

--------------------------------------------------------------------------------
8db0ca8a4d | dshaligram | 2008-05-10 20:12:02 +0000

Improve labyrinth loot, fixed assert when labyrinth minivaults try to place 
traps.

--------------------------------------------------------------------------------
67bca4d45d | dshaligram | 2008-05-10 18:47:15 +0000

Reorder snake selection to favour the nastier snakes when sticks to snakes 
works on big sticks.

--------------------------------------------------------------------------------
32e1a1a551 | dshaligram | 2008-05-10 18:37:10 +0000

Make Sticks to Snakes stronger.

--------------------------------------------------------------------------------
be4a87c9f0 | dshaligram | 2008-05-10 18:13:24 +0000

Fixed monster colours requested in maps not being applied.

--------------------------------------------------------------------------------
b6acf24c0b | dolorous | 2008-05-10 14:59:11 +0000

Typo fix.

--------------------------------------------------------------------------------
f10f392d6a | j-p-e-g | 2008-05-10 06:51:55 +0000

Experimentally switch back to glyph colours light red, yellow, and red, 
respectively, for orcs, orc warriors, and Urug. I don't play ASCII, so this is 
solely based on player complaints. (But I figure yellow works as a "lighter" 
version of orange = light red, possibly better than the standard pair 
brown/yellow.) Also, add gila monsters to the new colour scheme: they're always 
magenta now.

--------------------------------------------------------------------------------
63cf0d1bab | dolorous | 2008-05-10 05:51:37 +0000

And clean them up a bit more.

--------------------------------------------------------------------------------
fb1f0960be | dolorous | 2008-05-10 05:47:25 +0000

Clean up conversion-on-sight routines a bit.

--------------------------------------------------------------------------------
d9e5c7dc0a | dolorous | 2008-05-10 05:34:41 +0000

Make monsters angered by your worshipping a god they hate lose charm.

--------------------------------------------------------------------------------
8442bde3ac | ennewalker | 2008-05-10 03:11:45 +0000

[1959633] Fix an issue where too few stone stairs on the previous level caused 
stone stairs on the current level to have a destination collision.  Other than 
branch entrance/exits, all levels now get extra (randomly placed) stone stairs 
to bring them up to one of each kind if needed.

--------------------------------------------------------------------------------
a86ff1688c | dolorous | 2008-05-10 02:17:26 +0000

Comment fix.

--------------------------------------------------------------------------------
25bd0ac90b | dolorous | 2008-05-10 02:12:34 +0000

Fix spacing in the "^" screen in a better way, and mention TSO's preference for 
blessing long swords there.

--------------------------------------------------------------------------------
8ffef0022a | dolorous | 2008-05-10 01:43:57 +0000

Add one last spacing fix.

--------------------------------------------------------------------------------
9c818e2338 | dolorous | 2008-05-10 01:42:05 +0000

Add spacing fixes to "^" info for worshippers.

--------------------------------------------------------------------------------
ea2080f990 | dolorous | 2008-05-10 01:39:32 +0000

Add TSO halo description to the "^" screen.

--------------------------------------------------------------------------------
1b5cb7207f | dolorous | 2008-05-10 00:26:23 +0000

Add more TSO halo description fixes.

--------------------------------------------------------------------------------
e51475777a | dolorous | 2008-05-09 23:58:10 +0000

Shorten one of Nemelex's ability messages to fit properly on the "^" screen.

--------------------------------------------------------------------------------
3222787414 | dolorous | 2008-05-09 23:53:39 +0000

Remove unneeded word.

--------------------------------------------------------------------------------
6b2ac3fc6a | dploog | 2008-05-09 23:31:37 +0000

Improved glass wall temple entries.

--------------------------------------------------------------------------------
f3f9847995 | dolorous | 2008-05-09 22:30:09 +0000

Fix Vehumet's ability messages.

--------------------------------------------------------------------------------
7a95603476 | dolorous | 2008-05-09 22:27:24 +0000

Add more capitalization fixes for TSO.

--------------------------------------------------------------------------------
932b8837a8 | dolorous | 2008-05-09 22:17:01 +0000

Fix description of Vehumet's Conjuration/Summoning boost: prayer is no longer 
required for it.

--------------------------------------------------------------------------------
4b3c63f080 | ennewalker | 2008-05-09 22:02:41 +0000

Initializing monster inventory to NON_ITEM.

--------------------------------------------------------------------------------
81f0e04a5a | ennewalker | 2008-05-09 21:42:47 +0000

Fixing a bug with inconsistent monster inventory state.  Now monster 
inventories are reset with level reset so that they aren't stale and pointing 
at invalid items.  This eliminates periodic "BUG WARNING: unlinked item..." 
messages.

--------------------------------------------------------------------------------
0b130fa8fe | dolorous | 2008-05-09 21:18:54 +0000

Clarify halo-related messages a bit.

--------------------------------------------------------------------------------
8c0268a33f | dolorous | 2008-05-09 21:01:32 +0000

Remove "Halo" from the stats screen.

--------------------------------------------------------------------------------
389fd7c3cb | dolorous | 2008-05-09 19:07:02 +0000

Extend chaining time again.

--------------------------------------------------------------------------------
f97747d656 | ennewalker | 2008-05-09 19:06:21 +0000

Removing unnecessary references to curses in the X11 makefile.

--------------------------------------------------------------------------------
708f9e8576 | dolorous | 2008-05-09 18:58:51 +0000

Simplify yet again.

--------------------------------------------------------------------------------
459623fed2 | dolorous | 2008-05-09 18:54:49 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
c7616eede1 | ennewalker | 2008-05-09 18:52:44 +0000

Oops.  Making last submit consistent between tiles/non-tiles makefiles.

--------------------------------------------------------------------------------
10d95f1094 | dolorous | 2008-05-09 18:52:43 +0000

Simplify further.

--------------------------------------------------------------------------------
6ad0d3d1d7 | ennewalker | 2008-05-09 18:47:46 +0000

No more -O2 for debug builds.

--------------------------------------------------------------------------------
5befeec818 | dolorous | 2008-05-09 18:31:40 +0000

Simplify.

--------------------------------------------------------------------------------
01ecfffca1 | ennewalker | 2008-05-09 18:16:05 +0000

[1960394] Fixed crash when examining items from %.  (Menu objects own their 
MenuEntry objects, so you can't destroy a Menu and then pass around MenuEntry 
pointers.)

--------------------------------------------------------------------------------
069ab73287 | ennewalker | 2008-05-09 17:19:35 +0000

[1958923] If player can't wield weapon without a shield, don't give any 
messages about not being able to wield the weapon because a shield is equipped.

--------------------------------------------------------------------------------
ed1c1da058 | dolorous | 2008-05-09 17:11:08 +0000

Comment fix.

--------------------------------------------------------------------------------
4d8693899a | dolorous | 2008-05-09 17:10:15 +0000

Simplify.

--------------------------------------------------------------------------------
01e4434cb8 | ennewalker | 2008-05-09 16:49:05 +0000

Fixing compile error I caused.  Ack.

--------------------------------------------------------------------------------
a6d047ab0d | ennewalker | 2008-05-09 16:43:53 +0000

[1952908] Move "buggy trap" message to be a debug diagnostic.

--------------------------------------------------------------------------------
8c4f0b904b | dolorous | 2008-05-09 16:17:51 +0000

Increase the weight of big kobolds.

--------------------------------------------------------------------------------
0da53f27cd | ennewalker | 2008-05-09 15:40:14 +0000

Fixing corpse tile for big kobolds.  Additionally, monsters that can generate a 
corpse (even if it wouldn't happen during normal play) now have a reasonable 
tile assigned to them.

--------------------------------------------------------------------------------
6e568ea693 | dolorous | 2008-05-09 15:29:02 +0000

Tweak neutrality messages for Zin's Recite.

--------------------------------------------------------------------------------
d98c601e03 | dolorous | 2008-05-09 15:26:14 +0000

Another message tweak.

--------------------------------------------------------------------------------
a65b168c94 | dolorous | 2008-05-09 15:14:36 +0000

Tweak message.

--------------------------------------------------------------------------------
f96d8199fa | dolorous | 2008-05-09 15:11:02 +0000

Properly enforce the aforementioned limitation if the player gets the robust 
mutation while divine robustness is in effect.

--------------------------------------------------------------------------------
e60662a693 | dolorous | 2008-05-09 15:04:49 +0000

Don't allow divine robustness to stack with the robust mutation.

--------------------------------------------------------------------------------
6301bd0515 | dolorous | 2008-05-09 14:04:47 +0000

Fix chaining to properly handle cases where all possible restoration has been 
done, but not all steps have been taken.

--------------------------------------------------------------------------------
ff6846212e | dolorous | 2008-05-09 13:16:53 +0000

Increase HP proportionately when activating divine robustness.

--------------------------------------------------------------------------------
f0d85e86ea | dolorous | 2008-05-09 03:32:53 +0000

Tweak the third stat-restoring step of Zin's Revitalisation.

--------------------------------------------------------------------------------
470e11963a | dolorous | 2008-05-09 03:06:47 +0000

Comment fixes.

--------------------------------------------------------------------------------
75c0a24dc1 | dolorous | 2008-05-09 03:05:50 +0000

Break chaining at the proper times.

--------------------------------------------------------------------------------
bfaafec2ca | dolorous | 2008-05-09 02:54:48 +0000

Comment fix.

--------------------------------------------------------------------------------
a51b379cf9 | dolorous | 2008-05-09 02:52:11 +0000

Fix chaining durations.

--------------------------------------------------------------------------------
3272f22c01 | dolorous | 2008-05-09 02:27:44 +0000

Improve chaining of Zin's Revitalisation to only activate when it's actually 
needed.

--------------------------------------------------------------------------------
c967870fe0 | dolorous | 2008-05-09 01:51:57 +0000

Simplify.

--------------------------------------------------------------------------------
a51a4322dd | dolorous | 2008-05-09 01:21:35 +0000

Adjust the divine robustness durations.

--------------------------------------------------------------------------------
be87e82876 | dolorous | 2008-05-08 23:32:47 +0000

Comment fix.

--------------------------------------------------------------------------------
7a1c3e204b | dolorous | 2008-05-08 23:30:48 +0000

To make Zin's Revitalisation less of a potion effect, consoliodate the negative 
status removal effects into the first 3 steps, and add divine robustness as the 
last 3 steps (as it counteracts frailty, one of Xom's favored negative 
mutations).

--------------------------------------------------------------------------------
4bfca1ba10 | dolorous | 2008-05-08 21:52:14 +0000

Really fix the fallthrough bugs in Zin's Revitalisation.

--------------------------------------------------------------------------------
c61e0f454a | dolorous | 2008-05-08 21:33:35 +0000

Break chaining of Zin's Revitalisation if you go under penance or get 
excommunicated.

--------------------------------------------------------------------------------
ca54ca5359 | j-p-e-g | 2008-05-08 21:31:51 +0000

Make vampires' spell (and ability) hunger dependent on their hunger state. 
Thirsty:        75% Very thirsty:   50% Near Bloodless: 25% Bloodless:      None

--------------------------------------------------------------------------------
1b08247fbd | dolorous | 2008-05-08 21:26:42 +0000

Fix some fallthrough-related bugs in Zin's Revitalisation, and allow chaining 
it.

--------------------------------------------------------------------------------
181ad71db8 | dolorous | 2008-05-08 17:01:17 +0000

Tweak the message for TSO's permanent "extended stay" blessing.

--------------------------------------------------------------------------------
76f4b297b8 | dolorous | 2008-05-08 16:50:40 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
62bad6d6b0 | dolorous | 2008-05-08 14:23:10 +0000

Display a proper message when TSO's "extended stay" blessing makes a monster 
stay permanently.

--------------------------------------------------------------------------------
91f21d2458 | dolorous | 2008-05-08 13:25:51 +0000

Add two more entries.

--------------------------------------------------------------------------------
9dd787a98d | dolorous | 2008-05-08 13:14:56 +0000

Shorten one of the new entries.

--------------------------------------------------------------------------------
585d7a08cf | dolorous | 2008-05-08 03:59:34 +0000

Add some more entries to weird_writing().

--------------------------------------------------------------------------------
5b6bac28c2 | dolorous | 2008-05-08 03:31:50 +0000

Also add "cyan" to weird_colour().

--------------------------------------------------------------------------------
b8fd65ac45 | dolorous | 2008-05-08 03:10:59 +0000

Comment fix.

--------------------------------------------------------------------------------
cfbeafce02 | dolorous | 2008-05-08 03:10:22 +0000

Add "rubric" to the list of colors in weird_colour(), as it's an archaic term 
for red ochre.

--------------------------------------------------------------------------------
af2491580e | dolorous | 2008-05-08 00:10:51 +0000

Clarify who Beogh is in the orcish idol description.

--------------------------------------------------------------------------------
aa359562d9 | dolorous | 2008-05-07 23:52:48 +0000

Add another message for when non-Beoghite Hill Orcs destroy an idol of Beogh.

--------------------------------------------------------------------------------
794f5a0430 | dolorous | 2008-05-07 23:30:45 +0000

Put back previous new message, and add one more.

--------------------------------------------------------------------------------
f6486ac7ec | dolorous | 2008-05-07 23:27:26 +0000

Tweak previous entry.

--------------------------------------------------------------------------------
d6fcb7af29 | dolorous | 2008-05-07 23:24:59 +0000

Add a few random artefact name entries.

--------------------------------------------------------------------------------
22cc2ca282 | dolorous | 2008-05-07 22:59:46 +0000

Since artefact blessed blades don't get database names anymore, remove the TSO 
weapon entry for now.

--------------------------------------------------------------------------------
88476ef956 | j-p-e-g | 2008-05-07 21:30:12 +0000

Properly save friendly pickup setting as a player variable (rather than 
options). This increases the minor version by 1. Also, tidy up the checks of 
this settings.

--------------------------------------------------------------------------------
100c7dd207 | dolorous | 2008-05-07 21:15:24 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d68263bae2 | dolorous | 2008-05-07 21:04:21 +0000

When drawing cards from decks in your inventory, make sure only decks are 
offered as choices.

--------------------------------------------------------------------------------
7b6908cbb5 | dolorous | 2008-05-07 20:42:23 +0000

Fix typo.

--------------------------------------------------------------------------------
7aa596f381 | dolorous | 2008-05-07 20:34:42 +0000

Comment fix.

--------------------------------------------------------------------------------
c779c389f9 | dolorous | 2008-05-07 20:33:59 +0000

Add full stat restoration to Zin's Revitalisation again.

--------------------------------------------------------------------------------
e80831e007 | dolorous | 2008-05-07 18:53:14 +0000

Improve the blessed blades' descriptions.

--------------------------------------------------------------------------------
28e7f723dc | dolorous | 2008-05-07 17:45:29 +0000

Rename the "blessed blade" the "blessed eudemon blade", so that the name of the 
Blessed Blade artefact is unique.  Also, attempt to add shopping values for the 
new blessed blades (these probably need adjustment).

--------------------------------------------------------------------------------
bede06c9c6 | dploog | 2008-05-07 17:10:32 +0000

Fix new Elf:7 map.

--------------------------------------------------------------------------------
9fd2fa87c8 | dolorous | 2008-05-07 13:36:54 +0000

Make sure the "something walked over your grave" miscast occurs only when the 
player is undead.

--------------------------------------------------------------------------------
13089bbb1b | j-p-e-g | 2008-05-07 07:39:15 +0000

Disallow monsters from picking up missiles for which they don't have the 
necessary launcher, but allow upgrading of missiles for ones with higher pluses 
or branded ones.

--------------------------------------------------------------------------------
6ccc5b0dae | dolorous | 2008-05-07 05:19:29 +0000

Comment fix.

--------------------------------------------------------------------------------
18e4dfcdb6 | dolorous | 2008-05-07 05:15:30 +0000

Remove now-unneeded prototype.

--------------------------------------------------------------------------------
6ff54a949d | dolorous | 2008-05-07 05:14:54 +0000

After some more thought, remove the follower handling for Trog, Kiku, and Yred, 
as it's only hypothetical at this point.

--------------------------------------------------------------------------------
31f4d7963d | dolorous | 2008-05-07 02:53:54 +0000

Add follower handling for Kiku and Yred, just in case, and revert the last 
change to Trog's follower handling for now.

--------------------------------------------------------------------------------
29e6690f0b | dolorous | 2008-05-07 01:58:00 +0000

Fix indentation.

--------------------------------------------------------------------------------
9685f77d21 | dolorous | 2008-05-07 01:54:52 +0000

And fix it to properly cover e.g. berserkers summoned via Brothers in Arms.

--------------------------------------------------------------------------------
5b7f8191b3 | dolorous | 2008-05-07 01:37:04 +0000

Add a follower-handling routine for Trog, in case he's ever expanded to allow 
for blessing followers.

--------------------------------------------------------------------------------
5406eedd8b | dolorous | 2008-05-07 01:29:44 +0000

Simplify handling of monsters angered by the player, and expand it to not allow 
Trog worshippers to have magic-using followers.

--------------------------------------------------------------------------------
d0d2ca2bdb | dolorous | 2008-05-07 01:26:34 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
c32f87e569 | dploog | 2008-05-06 22:59:16 +0000

Only display total gold whenever picking up coins.

--------------------------------------------------------------------------------
017e7d18d8 | j-p-e-g | 2008-05-06 21:13:15 +0000

Remove a debugging check.

--------------------------------------------------------------------------------
cb3497134b | j-p-e-g | 2008-05-06 21:06:34 +0000

* Fix god gift randarts being named after *other* gods. * Reallow monster 
placement of bands (at least for Beogh's retribution;   it might be similarly 
buggy for normal generation). * Extend documentation on orc naming, and 
sometimes name the band   leader of a band sent after you for retribution.

--------------------------------------------------------------------------------
5d559d519c | dolorous | 2008-05-06 16:02:52 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
941b75faf0 | dolorous | 2008-05-06 16:02:12 +0000

For consistency, give ettins weight, and allow kobold demonologists to be 
raised as plain kobold zombies.

--------------------------------------------------------------------------------
9743dfbde8 | dolorous | 2008-05-06 15:49:13 +0000

Properly mark some demonic monsters as not leaving corpses.

--------------------------------------------------------------------------------
0dca01eb87 | dolorous | 2008-05-06 15:07:55 +0000

Comment fix.

--------------------------------------------------------------------------------
f3e6bbf7bb | dolorous | 2008-05-06 15:07:25 +0000

Hopefully fix debug build, based partially on Josh's patch.

--------------------------------------------------------------------------------
f8258534ed | dolorous | 2008-05-06 14:53:40 +0000

Comment fixes.

--------------------------------------------------------------------------------
c9caf92a54 | dolorous | 2008-05-06 14:52:35 +0000

For now, go back to two stat-restoring steps for Zin's Revitalisation.

--------------------------------------------------------------------------------
ef1fa8b6cb | dolorous | 2008-05-06 14:45:50 +0000

Add another stat-restoring step to Zin's Revitalisation.

--------------------------------------------------------------------------------
e70ec2e2e5 | dolorous | 2008-05-06 14:30:07 +0000

Add the first steps toward a stat restoration/temporary boosting effect for 
Zin's Revitalisation.

--------------------------------------------------------------------------------
a0b554fad4 | dolorous | 2008-05-05 17:13:33 +0000

Remove inaccurate comment and unneeded code in monsters::body_weight(). Water 
elementals aren't insubstantial, and should have their weight set to 1500 by 
virtue of their size, so there's no need to hardcode it there.

--------------------------------------------------------------------------------
5c54720bc1 | dolorous | 2008-05-05 17:08:59 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
3c0c52ddac | dolorous | 2008-05-05 16:56:58 +0000

For consistency with e.g. deep elves, make the weights of orc wizards, 
warriors, and knights match those of plain orcs, since they leave plain orc 
corpses.  For the same reason, make the weights of big kobolds and kobold 
demonologists match those of plain kobolds.

--------------------------------------------------------------------------------
3d9c9f7222 | dolorous | 2008-05-05 15:07:02 +0000

Fix tiles build.

--------------------------------------------------------------------------------
ac07625838 | dshaligram | 2008-05-05 14:23:43 +0000

Don't allow hydras that lost all heads to be raised as zombies or spectres.

--------------------------------------------------------------------------------
b8ab58b8ff | dolorous | 2008-05-05 14:19:28 +0000

Comment fix.

--------------------------------------------------------------------------------
9a725bea88 | dshaligram | 2008-05-05 14:09:27 +0000

Spectral hydras cannot have their heads chopped off (since they're spectral).

--------------------------------------------------------------------------------
cfa20157c3 | dshaligram | 2008-05-05 14:00:16 +0000

Spectral hydras created by Death Channel also get their due heads.

--------------------------------------------------------------------------------
e175b03671 | dshaligram | 2008-05-05 13:57:26 +0000

Hydras raised from the dead now get the same number of heads as they had when 
alive.

--------------------------------------------------------------------------------
5278d194ce | dolorous | 2008-05-05 13:55:08 +0000

Properly amuse Xom when vampires lose corpses while draining them.

--------------------------------------------------------------------------------
bf62209d7d | dolorous | 2008-05-05 13:48:12 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
773cdf0908 | dshaligram | 2008-05-05 13:37:19 +0000

Give undead hydras their due number of attacks.

--------------------------------------------------------------------------------
ff2f267821 | dshaligram | 2008-05-05 13:33:29 +0000

Cleaned up monster generation functions, separate monster zombie type from 
monster number. May be buggy.
Allow hydra zombies (they currently do not get the right number of heads).

--------------------------------------------------------------------------------
3423bbab5a | j-p-e-g | 2008-05-05 08:39:20 +0000

First attempt at making vampire feeding interruptible. It doesn't work yet (I 
had "You stop feeding" followed by "You continue feeding" including full 
effects), but it's probably better to commit now anyway. Known potions of blood 
or porridge cannot be quaffed when engorged (alive). Also clean up blood 
potions check.

--------------------------------------------------------------------------------
166e51b5cc | dolorous | 2008-05-04 23:09:49 +0000

Move your_hand() from spells4.cc to misc.cc.

--------------------------------------------------------------------------------
b5aaf5c3c4 | dolorous | 2008-05-04 22:15:01 +0000

Tweak messages for enchantments' being affected by vampire blood levels: 
"bloodfilled" -> "blood-filled", and "bloodless" -> "blood-deprived" (the 
former is misleading, since the hunger state might not be bloodless).

--------------------------------------------------------------------------------
7dd0ecfb69 | dolorous | 2008-05-04 20:34:25 +0000

Sync makefile.x11 with makefile.unix as much as possible.

--------------------------------------------------------------------------------
2028bc1e0d | dolorous | 2008-05-04 20:27:42 +0000

For consistency, move source/lua/ to source/dat/lua/.

--------------------------------------------------------------------------------
848429d68c | dolorous | 2008-05-04 15:29:18 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
4b68713dd0 | dshaligram | 2008-05-04 10:31:33 +0000

Don't make ultra-fast Pandemonium demons in the main dungeon (syllogism).

--------------------------------------------------------------------------------
b2226ab9c8 | dshaligram | 2008-05-04 09:34:40 +0000

Suppress --More-- when travel/explore makes a T&D trap save.

--------------------------------------------------------------------------------
99affe8190 | dshaligram | 2008-05-04 09:25:06 +0000

[1952025] Fix bad text wrapping of randart base item descriptions in chardumps.
No longer show the long description of a randart's base item in the dump, 
instead show the base item name in brackets (such as "[amulet of warding]"). 
Turfed out things like item weight descriptions that shouldn't infest chardumps 
anyway.

--------------------------------------------------------------------------------
981dca6544 | dshaligram | 2008-05-04 08:54:09 +0000

[1952528] Fix duplicate messages for berserkers trying to quaff from fountains.

--------------------------------------------------------------------------------
f1597e614c | dshaligram | 2008-05-04 08:45:56 +0000

Removed randomised messages for "already seen" monsters. Randomised messages 
for frequent events => message spam that's hard to block.

--------------------------------------------------------------------------------
8f8d4ef8be | dshaligram | 2008-05-04 08:40:40 +0000

Fix god-named monsters losing their descriptions.

--------------------------------------------------------------------------------
d5c69c9f28 | dshaligram | 2008-05-04 06:30:41 +0000

[1956565] Fix issues with monster names.
Monster names are now stored in the monster struct and saved.

Changed some monster-finding functions to return monsters* instead of monster 
index for type-safety.

--------------------------------------------------------------------------------
9031dab3a7 | dolorous | 2008-05-04 04:10:38 +0000

Add Animate Dead to Xom's spell list.

--------------------------------------------------------------------------------
f031d43f8c | dolorous | 2008-05-04 03:57:49 +0000

Fix typo.

--------------------------------------------------------------------------------
703ad0c9c2 | dolorous | 2008-05-04 03:07:56 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
bab88feb25 | dolorous | 2008-05-04 01:23:18 +0000

Add spacing fix.

--------------------------------------------------------------------------------
9958d1392b | dolorous | 2008-05-04 00:16:18 +0000

Comment fix.

--------------------------------------------------------------------------------
28a9f0b242 | dolorous | 2008-05-04 00:14:32 +0000

Add Recall to the list of Xom spells, as it complements Dispersal.

--------------------------------------------------------------------------------
994e47e696 | dolorous | 2008-05-03 19:43:15 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5f9de3b2fd | dolorous | 2008-05-03 19:41:37 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
00a0839720 | dolorous | 2008-05-03 19:19:10 +0000

In give_bad_mutation(), add MUT_LOW_MAGIC to the list of mutations.

--------------------------------------------------------------------------------
8d12ab0848 | dolorous | 2008-05-03 19:11:04 +0000

Fix give_bad_mutation() to give MUT_FAST_METABOLISM again, instead of MUT_FAST 
(oops).

--------------------------------------------------------------------------------
7a49aa5c32 | dolorous | 2008-05-03 17:34:05 +0000

Add yet more various summoning-related cleanups.

--------------------------------------------------------------------------------
961025f29b | dolorous | 2008-05-03 17:06:29 +0000

Add more various summoning-related cleanups.

--------------------------------------------------------------------------------
39db0b5a59 | dolorous | 2008-05-03 16:59:16 +0000

For good god worshippers, properly handle polymorphs into evil monsters.

--------------------------------------------------------------------------------
cdd8616864 | dolorous | 2008-05-03 16:01:01 +0000

Add still more comment fixes.

--------------------------------------------------------------------------------
5258de521a | dolorous | 2008-05-03 15:58:20 +0000

Remove redundant setting of foe.

--------------------------------------------------------------------------------
71751f5b08 | dolorous | 2008-05-03 15:55:13 +0000

Fix warning.

--------------------------------------------------------------------------------
e2ca496560 | dolorous | 2008-05-03 15:44:43 +0000

Add another comment fix.

--------------------------------------------------------------------------------
e19142571c | dolorous | 2008-05-03 15:43:48 +0000

After still more thought, put back the preservation of the foe, as well as the 
charm and neutral enchantments for polymorphed monsters, and do it for all of 
them, not just shapeshifters.  If you polymorph them using the spell or the 
wand, it counts as an attack, so they'll lose the charm and neutral 
enchantments anyway, and their foe will be set to you.  On the other hand, if 
e.g. Xom polymorphs them (since he doesn't check for temporary charm or 
neutrality), they'll remain as they were.

--------------------------------------------------------------------------------
0c5b467e0c | dolorous | 2008-05-03 13:25:09 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
b9e92fede7 | dolorous | 2008-05-03 13:23:58 +0000

After some more thought, revert the special case handling for poylmorphed 
shapeshifters, since they only shift into monsters with the same power level, 
and random polymorphing may not have that restriction.

--------------------------------------------------------------------------------
9dfa6d78c6 | dolorous | 2008-05-03 13:09:49 +0000

Comment fixes.

--------------------------------------------------------------------------------
ca3c5b7d91 | dolorous | 2008-05-03 13:09:08 +0000

Add more consistency fixes for polymorphing shapeshifters.

--------------------------------------------------------------------------------
43cc2d30d6 | dolorous | 2008-05-03 06:27:30 +0000

Comment fix.

--------------------------------------------------------------------------------
34c76b206b | dolorous | 2008-05-03 06:26:44 +0000

Let sgapeshifters also retain the neutral enchantment after shifting.

--------------------------------------------------------------------------------
d9fe1a81a2 | dolorous | 2008-05-03 04:04:27 +0000

Add another comment fix.

--------------------------------------------------------------------------------
3998f50994 | dolorous | 2008-05-03 04:02:46 +0000

Comment fix.

--------------------------------------------------------------------------------
17ffda087d | dolorous | 2008-05-03 03:54:07 +0000

Add another comment fix.

--------------------------------------------------------------------------------
38cbf547af | dolorous | 2008-05-03 03:52:50 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
eac1eb1daa | dolorous | 2008-05-03 03:08:32 +0000

Add formatting fixes.

--------------------------------------------------------------------------------
d33476c629 | dolorous | 2008-05-03 02:54:32 +0000

Fix typo.

--------------------------------------------------------------------------------
375c145a53 | dolorous | 2008-05-03 02:49:09 +0000

Comment fix.

--------------------------------------------------------------------------------
cf4ea97254 | dolorous | 2008-05-03 02:47:48 +0000

Capitalization fix.

--------------------------------------------------------------------------------
0957ee49bf | dolorous | 2008-05-03 02:08:19 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
0dd9c1bfeb | dolorous | 2008-05-03 02:02:15 +0000

Fix monster annoyance from holy word versus torment.

--------------------------------------------------------------------------------
105bb1c414 | dolorous | 2008-05-03 01:55:12 +0000

Comment fix.

--------------------------------------------------------------------------------
4deda28785 | dolorous | 2008-05-03 01:54:09 +0000

Really ensure that holy word won't damage good followers or neutrals.

--------------------------------------------------------------------------------
45d8645ab9 | dolorous | 2008-05-03 01:38:12 +0000

Simplify still further.

--------------------------------------------------------------------------------
e1c38195d9 | dolorous | 2008-05-03 01:32:26 +0000

Simplify further, and don't allow holy word to damage followers or neutral 
monsters if you worship a good god, just as with cleansing flame.  Your 
followers should never be unholy anyway, and using holy word to attack e.g. 
unholy monsters turned neutral by Elyvilon's healing seems wrong.

--------------------------------------------------------------------------------
0ed1aaf4fa | dolorous | 2008-05-03 00:41:35 +0000

Simplify further.

--------------------------------------------------------------------------------
808bbb3f60 | dolorous | 2008-05-03 00:39:26 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
befd206317 | dolorous | 2008-05-03 00:27:10 +0000

Comment fix.

--------------------------------------------------------------------------------
948c3f2329 | dolorous | 2008-05-02 23:55:20 +0000

Add proper sources for Zin's and TSO's holy word effects (from the sanctuary 
and the weapon blessing, respectively).

--------------------------------------------------------------------------------
2d1079de4a | dolorous | 2008-05-02 23:54:20 +0000

Simplify.

--------------------------------------------------------------------------------
be475192b6 | dolorous | 2008-05-02 23:35:45 +0000

Clean up and consolidate the holy word and torment effects.

--------------------------------------------------------------------------------
69feb4ac30 | dolorous | 2008-05-02 17:37:57 +0000

Add spacing fix.

--------------------------------------------------------------------------------
b398da9e13 | dolorous | 2008-05-02 17:36:45 +0000

Let the Helix card remove a random bad mutation, instead of hardcoding a list 
of bad mutations.

--------------------------------------------------------------------------------
aed0d78674 | dolorous | 2008-05-02 16:46:06 +0000

Comment fix.

--------------------------------------------------------------------------------
e12e814f13 | dolorous | 2008-05-02 16:45:24 +0000

Make Beogh throw orcish weapons of electrocution ar you if you get hias 
retribution via the Wrath card.

--------------------------------------------------------------------------------
00ee9aaf13 | dolorous | 2008-05-02 16:33:34 +0000

For now, fix [1956144] by removing hardcoded symlink.

--------------------------------------------------------------------------------
d5b03fd94f | dolorous | 2008-05-02 16:08:37 +0000

Fix installation of lua files.  This should also fix [1956142].

--------------------------------------------------------------------------------
06f4ee1499 | dolorous | 2008-05-02 14:42:40 +0000

Comment fixes.

--------------------------------------------------------------------------------
38d5365fe1 | dolorous | 2008-05-02 14:41:25 +0000

Really fix compile.

--------------------------------------------------------------------------------
982699e292 | dolorous | 2008-05-02 14:39:28 +0000

Fix compile (oops).

--------------------------------------------------------------------------------
f7965ece5a | dolorous | 2008-05-02 14:38:19 +0000

Fix potential warnings.

--------------------------------------------------------------------------------
9ecccc3bd4 | dolorous | 2008-05-02 03:32:51 +0000

Comment fix.

--------------------------------------------------------------------------------
36af9e0943 | dolorous | 2008-05-02 03:32:25 +0000

Fix inverted logic.

--------------------------------------------------------------------------------
ddd3eab5cd | dolorous | 2008-05-01 20:53:03 +0000

Comment fix.

--------------------------------------------------------------------------------
8cc866662f | dolorous | 2008-05-01 20:52:04 +0000

Fix parentheses.

--------------------------------------------------------------------------------
ac0dae19dd | dolorous | 2008-05-01 20:17:44 +0000

For consistency, don't display a message when failing to remove a mutation via 
a potion of cure mutation.

--------------------------------------------------------------------------------
56a00d861e | dolorous | 2008-05-01 19:56:46 +0000

Display Zin's mutation protection message *again* when failMsg is false, so it 
can show up when drinking potions of mutation.

--------------------------------------------------------------------------------
a6b04c4cdb | dolorous | 2008-05-01 18:21:13 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
144417cd25 | dolorous | 2008-05-01 18:18:48 +0000

After more thought, don't show Zin's mutation protection message if failMsg is 
false, as TSO's isn't shown all the time either.

--------------------------------------------------------------------------------
e4f6254f27 | dolorous | 2008-05-01 17:22:37 +0000

Add a failMsg parameter for delete_mutation().

--------------------------------------------------------------------------------
f7de76e6df | dolorous | 2008-05-01 17:18:57 +0000

Make Zin's mutation protection always display a message, just as TSO's draining 
protection does.

--------------------------------------------------------------------------------
c04e67cd57 | dolorous | 2008-05-01 17:17:02 +0000

Make mutate() respect the failMsg parameter again (oops).

--------------------------------------------------------------------------------
2329a04226 | dolorous | 2008-05-01 16:55:17 +0000

Add a random bad mutation type.

--------------------------------------------------------------------------------
c9b07a1a83 | dolorous | 2008-05-01 14:19:30 +0000

Add partial resistance to the list of canned messages.

--------------------------------------------------------------------------------
fa99a86759 | dolorous | 2008-05-01 14:15:09 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
c4ad7d3ee0 | dolorous | 2008-05-01 14:07:58 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
1580408b99 | dshaligram | 2008-05-01 03:35:32 +0000

Fixed special damage from magical staves not being applied (Mariusz).

--------------------------------------------------------------------------------
2697d75f08 | dolorous | 2008-05-01 01:31:19 +0000

Fix indentation.

--------------------------------------------------------------------------------
87ecba2bb2 | dolorous | 2008-05-01 01:16:48 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
14a51c720a | dolorous | 2008-05-01 01:11:56 +0000

Disallow getting the mutation resistance mutation as a god gift.

--------------------------------------------------------------------------------
3a4239a800 | dolorous | 2008-04-30 21:07:36 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
f26c785ef6 | dolorous | 2008-04-30 20:52:23 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9625154a1d | dolorous | 2008-04-30 20:45:26 +0000

Typo fix.

--------------------------------------------------------------------------------
62b4fe8dc5 | dolorous | 2008-04-30 19:47:53 +0000

Comment fix.

--------------------------------------------------------------------------------
cc709969f3 | dolorous | 2008-04-30 17:28:50 +0000

Remove unnecessary parentheses.

--------------------------------------------------------------------------------
f2fc192618 | dolorous | 2008-04-30 17:17:54 +0000

Fix _god_fits_artefact() to properly check for good gods' not gifting cursed 
artefacts, as opposed to all gods' not gifting them.

--------------------------------------------------------------------------------
19df35fe68 | dolorous | 2008-04-30 16:26:40 +0000

Fix off-by-one error when choosing a random god to gift an artefact.

--------------------------------------------------------------------------------
a00c4e7bad | dolorous | 2008-04-30 16:24:31 +0000

Add spacing fix.

--------------------------------------------------------------------------------
6734bbf807 | dolorous | 2008-04-30 13:31:59 +0000

Comment fix.

--------------------------------------------------------------------------------
47516cdc3f | dolorous | 2008-04-30 13:29:30 +0000

Reorder Xom's spell list a bit.

--------------------------------------------------------------------------------
4f48a56502 | dolorous | 2008-04-30 04:28:02 +0000

Comment fixes.

--------------------------------------------------------------------------------
afc4e2fca0 | dolorous | 2008-04-30 03:17:29 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
700425e37e | dolorous | 2008-04-30 03:14:21 +0000

Comment fix.

--------------------------------------------------------------------------------
b97644fa6d | dolorous | 2008-04-30 03:13:46 +0000

Make Xom's polymorphing of monsters take good neutral monsters into account.

--------------------------------------------------------------------------------
cd53b7c67f | dolorous | 2008-04-30 03:03:21 +0000

Add Maxwell's Silver Hammer to Xom's spell list, since Tukima's Vorpal Blade is 
already included, and the former is just a version of the latter that works on 
blunt weapons.

--------------------------------------------------------------------------------
7b10606de0 | dolorous | 2008-04-30 02:57:15 +0000

Fix wording.

--------------------------------------------------------------------------------
bfb78773d4 | j-p-e-g | 2008-04-29 20:36:26 +0000

Add two new channels, MSGCH_FRIEND_SPELL and MSGCH_FRIEND_ENCHANT, whose sole 
purpose is to not interrupt resting if it's a friend doing the spellcasting or 
enchanting.
Unspam the message handling for orcs going in a battle frenzy, and
allow the message back into normal game.

Fix 1953632: Named monsters' names are shown for unseen invisible
             monsters.

Change general monster name handling to refer to friendly monsters as
"your monster" rather than "the monster", like was already the case for
monster speech.

--------------------------------------------------------------------------------
bee19fd8b7 | dolorous | 2008-04-29 19:10:36 +0000

Fix [1923450]: Scrolls of fog no longer produce clouds of steam or poison.

--------------------------------------------------------------------------------
84114d18dd | dolorous | 2008-04-29 16:24:30 +0000

Comment fixes.

--------------------------------------------------------------------------------
672db221ab | dolorous | 2008-04-29 15:58:59 +0000

In the list of Xom spells, replace Controlled Blink with Disperal; it's the 
same level, more chaotic, and matches the Solitude card effect.

--------------------------------------------------------------------------------
1bb138db83 | dolorous | 2008-04-29 15:18:07 +0000

Typo fixes.

--------------------------------------------------------------------------------
26814eb205 | j-p-e-g | 2008-04-29 15:17:07 +0000

Disallow dualwielders to wield 2-handed weapons, even if they currently only 
have one weapon since this would mean they'd never replace it again with a 
1-handed weapon to pair another weapon with.
Remove orc warlords from Beogh reinforcement and increase chance for
plain orcs.

Change "Heel!" command to "Come here!" because "Heel!" looks completely
out of place for intelligent followers.

--------------------------------------------------------------------------------
018f4e0bb5 | dolorous | 2008-04-29 15:10:41 +0000

Make Xom be amused by the blinking mutation again.

--------------------------------------------------------------------------------
e7c63bb361 | dolorous | 2008-04-29 14:24:25 +0000

Don't display the failure messages if Xom tries to animate your weapon and 
fails.

--------------------------------------------------------------------------------
5c11aa8263 | dolorous | 2008-04-29 14:22:37 +0000

Add a parameter to dancing_weapon() to allow not displaying the failure 
messages.

--------------------------------------------------------------------------------
5ef634172f | dolorous | 2008-04-29 03:05:24 +0000

Simplify checks for monsters susceptible to Ignite Poison.

--------------------------------------------------------------------------------
3a9869e4d1 | dolorous | 2008-04-29 03:03:34 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c604ee1a6f | dolorous | 2008-04-29 00:16:40 +0000

Split the routine to use holy word on only the player into its own function, 
too, just in case.

--------------------------------------------------------------------------------
7fbcd22e43 | j-p-e-g | 2008-04-28 19:43:31 +0000

Fix sort_menus option to let "any" override the default "pickup" setting and 
still use any as "anything but those already defined" when needed. (If that 
makes any sense.)
Remove need for prayer for Vehumet's prayer boost effects. I admit I'm
not entirely convinced of this change myself, but currently the problem 
is that there's hardly ever any reason *not* to pray. What we'd need 
instead are sensible drawbacks...

--------------------------------------------------------------------------------
b30be80f89 | dolorous | 2008-04-28 19:10:27 +0000

Typo fix.

--------------------------------------------------------------------------------
1e14066ec4 | j-p-e-g | 2008-04-28 19:08:03 +0000

Fix 1951264: Buggy uniques' wielding messages. Fix named orcs getting no 
descriptions. The descriptions will have to be tweaked, probably using lua, to 
allow for friendly orcs. The descriptions for orc priests look particularly out 
of place with Beogh.
Viewing friendlies now also lists their quiver and alternate weapon. 
Dualwielders now never will pick up shields, and single wielders will
drop their shield if they wield a two-handed weapon.

--------------------------------------------------------------------------------
b578218b05 | dolorous | 2008-04-28 18:57:20 +0000

Add various undead-related fixes.

--------------------------------------------------------------------------------
8b8f4a7e0a | dolorous | 2008-04-28 18:10:10 +0000

And have Xom use it instead of the fake player torment he currently does.

--------------------------------------------------------------------------------
df572b8d67 | dolorous | 2008-04-28 18:05:15 +0000

Split the routine to torment only the player into its own function.

--------------------------------------------------------------------------------
5b8bbd1b34 | dolorous | 2008-04-28 17:36:36 +0000

When doing spell miscasts, check directly for resistance to unholy pain and 
torment instead of just undead status, so that vulnerable vampires aren't left 
out.

--------------------------------------------------------------------------------
597de1e868 | dolorous | 2008-04-28 17:10:16 +0000

In Zin's Revitalisation, properly handle the second unrotting effect.

--------------------------------------------------------------------------------
c6174a5419 | dshaligram | 2008-04-28 16:01:16 +0000

Fix ghosts and pan demons being badly named.

--------------------------------------------------------------------------------
882cffe9d5 | dolorous | 2008-04-28 15:49:49 +0000

Clarify comment.

--------------------------------------------------------------------------------
ea1dd831ee | dshaligram | 2008-04-28 15:44:11 +0000

Fixed ghosts and Pandemonium demons not getting attack brands (syllogism).

--------------------------------------------------------------------------------
9863b15de7 | dolorous | 2008-04-28 15:40:04 +0000

After some thought, revert previous change.  If the mutation resistance 
mutation is hard to remove, it should be hard to get, god gift or not.

--------------------------------------------------------------------------------
32525cca51 | dolorous | 2008-04-28 15:03:06 +0000

Allow god gift mutations to override less than 3 levels of the mutation 
resistance mutation.

--------------------------------------------------------------------------------
c1752a109f | j-p-e-g | 2008-04-28 14:58:06 +0000

Change banishment in two ways: * the Banishment spell doesn't work on the 
player anymore * Lugonu's Exit Abyss has no permanent hp/mp cost, but Enter 
Abyss has   Instead, Exit Abyss now costs 1 (normal) MP and some more food.

--------------------------------------------------------------------------------
e7d8d22f47 | dolorous | 2008-04-28 14:53:06 +0000

Add spacing fix.

--------------------------------------------------------------------------------
a7446c2bda | j-p-e-g | 2008-04-28 14:12:40 +0000

Some tweaking of monster pickup: * Summoned friends may not pick up anything (I 
feel that allowing players   to waste time trying to equip temporary allies 
would be a bad decision). * Friendly monsters won't pick up gold or miscellany. 
* Daevas won't switch away from their blessed blades, nor Sigmund from   his 
scythe, seeing how they're signature weapons and all. * Monsters already 
wielding a two-hander or dual-wielding won't pick up   (and equip) shields. * 
Monsters capable of wielding two weapons won't replace (one of) them   with a 
two-hander.
TODO: Unequip shield when wielding a two-hander. For dual-wielding
monsters diallow equipping a two-hander and something else (just the
two-hander should be okay, I guess).
Restrict missile pickup to appropriate launchers.

--------------------------------------------------------------------------------
20cec15b3f | dolorous | 2008-04-28 13:51:05 +0000

Make _has_bad_mutation() static.

--------------------------------------------------------------------------------
aee4186832 | dolorous | 2008-04-28 13:19:10 +0000

For now, allow god gift mutations to override mutation loss due to being 
heavily mutated again.

--------------------------------------------------------------------------------
045471c17a | dolorous | 2008-04-28 13:15:58 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
6857b0606d | dolorous | 2008-04-28 13:03:48 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
8c3eaa80af | dolorous | 2008-04-28 12:56:08 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
290486de6d | dolorous | 2008-04-28 12:13:37 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
8cc59f1dfa | dolorous | 2008-04-28 11:54:15 +0000

Handle the Revitalisation fall-throughs properly (really, this time).

--------------------------------------------------------------------------------
9ba9966f7e | dolorous | 2008-04-28 11:50:45 +0000

Comment fixes.

--------------------------------------------------------------------------------
15b764623d | dolorous | 2008-04-28 11:49:12 +0000

Actually add some of the aforementioned fixes (oops).

--------------------------------------------------------------------------------
f486e708ca | dolorous | 2008-04-28 11:46:38 +0000

Expand Zin's Revitalisation to allow for negative affliction removal, and make 
sure the step counter is reset properly when falling through.

--------------------------------------------------------------------------------
0be145f708 | dolorous | 2008-04-28 06:11:16 +0000

Rework Zin's Revitalisation so that it remembers which step it was on after 
being used.  Note that there is currently no check for its being used in 
succession yet.

--------------------------------------------------------------------------------
0d90fe40bb | dolorous | 2008-04-28 03:59:36 +0000

In Zin's Revitalisation, make the type of revitalization done a parameter to 
cast_revitalisation(), instead of determining it randomly inside the function.

--------------------------------------------------------------------------------
89c5e06b63 | dolorous | 2008-04-28 03:39:57 +0000

Simplify again.

--------------------------------------------------------------------------------
56f2c7e051 | dolorous | 2008-04-28 03:37:53 +0000

Comment fix.

--------------------------------------------------------------------------------
c782fd4466 | dolorous | 2008-04-28 03:37:20 +0000

Fix logic error (oops).

--------------------------------------------------------------------------------
e11b3c35d2 | dolorous | 2008-04-28 03:28:08 +0000

Simplify.

--------------------------------------------------------------------------------
2fa9ab27b3 | dolorous | 2008-04-28 03:26:11 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
43c3d2e601 | dolorous | 2008-04-28 03:16:59 +0000

Comment fix.

--------------------------------------------------------------------------------
be08d7778e | dolorous | 2008-04-28 03:16:11 +0000

Have Xom check directly for negative energy and torment resistance when trying 
to drain or torment the player, instead of just checking whether the player is 
undead.  This allows vampires in the vulnerable hunger states to be affected.

--------------------------------------------------------------------------------
4553d34113 | dolorous | 2008-04-28 02:46:52 +0000

Comment fixes.

--------------------------------------------------------------------------------
1093f24b6a | dolorous | 2008-04-28 02:45:24 +0000

Handle it properly when Xom tries to send mutiple summons and fails.

--------------------------------------------------------------------------------
d0e2219244 | dolorous | 2008-04-28 02:38:40 +0000

Handle it properly when Xom tries to make your weapon a hostile dancing weapon 
and fails.

--------------------------------------------------------------------------------
2aa2495469 | dolorous | 2008-04-28 02:27:36 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
3db5708dca | dolorous | 2008-04-28 02:13:42 +0000

Handle things properly when Xom tries to send hostile monsters and fails.

--------------------------------------------------------------------------------
33ada2dff3 | dolorous | 2008-04-28 01:29:00 +0000

Remove the single level of negative energy resistance on blessed blade 
artefacts, as TSO's power already provides enough resistance to it.

--------------------------------------------------------------------------------
19f029762d | dolorous | 2008-04-28 00:55:48 +0000

Fix capitalization of TSO where possible.

--------------------------------------------------------------------------------
a31b2be4ca | dolorous | 2008-04-28 00:52:36 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
9b8f344ce5 | dolorous | 2008-04-28 00:50:52 +0000

All artefact blessed blades are now named Blessed Blades (note the 
capitalization).

--------------------------------------------------------------------------------
7ebda671bb | dolorous | 2008-04-28 00:48:48 +0000

Add database descriptions for blessed blades.

--------------------------------------------------------------------------------
72c2f5f133 | dolorous | 2008-04-28 00:31:37 +0000

Change the displayed names of the various blessed blades to match their types.

--------------------------------------------------------------------------------
a5e18dd06f | dolorous | 2008-04-28 00:30:41 +0000

Add spacing fix.

--------------------------------------------------------------------------------
e016645b2d | dolorous | 2008-04-27 23:20:20 +0000

Enchant weapons blessed once-per-game at altars by 1d2 instead of 1, just as a 
scroll of Enchant Weapon III does.

--------------------------------------------------------------------------------
17b6789776 | dolorous | 2008-04-27 23:13:56 +0000

Cosmetic fixes yet again.

--------------------------------------------------------------------------------
8c539b6437 | dolorous | 2008-04-27 22:40:23 +0000

Add yet more minor cosmetic fixes.

--------------------------------------------------------------------------------
f8f3250882 | dolorous | 2008-04-27 22:23:08 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
5966c7daca | dolorous | 2008-04-27 22:08:58 +0000

Add still another minor cosmetic fix.

--------------------------------------------------------------------------------
355076f0f3 | dolorous | 2008-04-27 20:46:50 +0000

Add yet one more minor cosmetic fix.

--------------------------------------------------------------------------------
8c62070351 | dolorous | 2008-04-27 20:21:29 +0000

Allow adding only good mutations in wizard mode.

--------------------------------------------------------------------------------
b3c18aee05 | dolorous | 2008-04-27 20:03:06 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
dfde846e0d | dolorous | 2008-04-27 18:54:54 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
93f8c7f0b2 | dolorous | 2008-04-27 18:54:15 +0000

And specify it properly in all cases.

--------------------------------------------------------------------------------
cad55e4b83 | dolorous | 2008-04-27 18:52:00 +0000

Allow adding god gifted mutations in wizard mode.

--------------------------------------------------------------------------------
98834a0977 | dolorous | 2008-04-27 16:35:31 +0000

Add another minor cosmetic fix.

--------------------------------------------------------------------------------
7f76ced9ca | dolorous | 2008-04-27 16:19:44 +0000

Comment fixes.

--------------------------------------------------------------------------------
1a824dcd24 | dolorous | 2008-04-27 16:18:52 +0000

Simplify special-case mutation removal.

--------------------------------------------------------------------------------
b9c5dfc47c | dolorous | 2008-04-27 16:08:56 +0000

Simplify special-case mutation handling.

--------------------------------------------------------------------------------
97d889a6a7 | dolorous | 2008-04-27 15:11:04 +0000

Fix [1949495]: After applying an effect to all dungeons, such as holy beings' 
getting their attitude change flag cleared upon gaining piety with a good god, 
player centering will occur even when e.g. Options.view_lock is false.

--------------------------------------------------------------------------------
70b5c50203 | dolorous | 2008-04-27 15:00:25 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
b254a1fd30 | dshaligram | 2008-04-27 13:56:02 +0000

Monster per-level XP cap was off by an order of magnitude, fixed.

--------------------------------------------------------------------------------
bc2e35c016 | j-p-e-g | 2008-04-27 13:06:46 +0000

* For Beogh's high level reinforcements, there's a 20% chance of a   summon to 
be named.
* If the show_gold_turns option is used print gold and turns on the
  second to last line in the hud rather than the last, so xp and 
  level are always in the last line.

--------------------------------------------------------------------------------
3c019ba470 | dolorous | 2008-04-27 04:20:43 +0000

Apply sorear's fix for [1952521]: Recall skips the first or last monster.

--------------------------------------------------------------------------------
77235981fc | dolorous | 2008-04-27 04:10:16 +0000

Comment fix.

--------------------------------------------------------------------------------
1982007c38 | dolorous | 2008-04-27 04:09:21 +0000

Rename labels.

--------------------------------------------------------------------------------
e7072514cd | dolorous | 2008-04-27 04:06:53 +0000

Fix handling of certain special-case mutations (e.g. frailty) so that they 
amuse Xom properly.

--------------------------------------------------------------------------------
9ab2d7622c | dolorous | 2008-04-27 03:58:56 +0000

Remove unneeded blank lines.

--------------------------------------------------------------------------------
925b8110ef | dolorous | 2008-04-27 03:56:04 +0000

Simplify mutation handling again, and add a message for when Zin's mutation 
protection takes effect.

--------------------------------------------------------------------------------
0cbf44d124 | dolorous | 2008-04-27 03:46:48 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
9549a690ec | dolorous | 2008-04-26 22:25:40 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
66a209e31b | dolorous | 2008-04-26 22:24:08 +0000

For now, allow Xom to give you more than three levels of covering mutations 
(e.g. scales) again.

--------------------------------------------------------------------------------
904517872b | dolorous | 2008-04-26 22:08:55 +0000

Comment fix.

--------------------------------------------------------------------------------
94d3e573a3 | dolorous | 2008-04-26 22:07:34 +0000

Fix erroneous "is destroyed" message when a monster kills e.g. a non-abjurable 
dancing weapon.

--------------------------------------------------------------------------------
1051204703 | dolorous | 2008-04-26 21:57:56 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
50459dd6e2 | dolorous | 2008-04-26 21:40:38 +0000

Clean up death message handling for abjured spatial and fire vortexes (if there 
ever are any).

--------------------------------------------------------------------------------
9500cfc373 | dolorous | 2008-04-26 21:37:15 +0000

Clean up death message handling for killed and abjured simulacra.

--------------------------------------------------------------------------------
fe49062ee0 | dolorous | 2008-04-26 20:45:08 +0000

Clean up handling of holy and evil beings' attitude changes, so that the proper 
message is always displayed when they happen.

--------------------------------------------------------------------------------
672143db64 | dshaligram | 2008-04-26 18:52:00 +0000

Drop Ignite Poison to level 6 (jarpiain).

--------------------------------------------------------------------------------
7f25defa4e | dshaligram | 2008-04-26 18:08:16 +0000

Fixed ignite poison not affecting swamp dragons and drakes (jarpiain).

--------------------------------------------------------------------------------
e6d2b1c85c | dolorous | 2008-04-26 17:03:20 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
80b235f32b | dolorous | 2008-04-26 17:02:16 +0000

And tweak the randomization.

--------------------------------------------------------------------------------
a83c46eaf4 | dolorous | 2008-04-26 16:33:50 +0000

Randomize piety loss from Zin's Revitalisation a bit.

--------------------------------------------------------------------------------
91d5d60d07 | dolorous | 2008-04-26 16:26:57 +0000

Add piety gain/loss sanity checks.

--------------------------------------------------------------------------------
1aa4f83dca | j-p-e-g | 2008-04-26 15:50:39 +0000

Change friendly pickup from a toggle to a more userfriendly, easily abortable 
prompt, and move orc names into a file of their own.

--------------------------------------------------------------------------------
d230622af8 | dolorous | 2008-04-26 15:29:47 +0000

After some thought on the Zin/Xom dynamic, make god gift mutations only 
override amulets of resist mutation.  This fits because Xom can drain your 
stats regardless of a ring of sustain abilities, and because Zin's mutation 
protection is also a god gift.

--------------------------------------------------------------------------------
222800e5c9 | dolorous | 2008-04-26 15:17:44 +0000

Comment fixes.

--------------------------------------------------------------------------------
35ad48ef0b | dolorous | 2008-04-26 15:11:25 +0000

Make Xom not even try to mutate you if you have the full mutation resistance 
mutation.

--------------------------------------------------------------------------------
a7180f0d5f | dolorous | 2008-04-26 15:08:21 +0000

Expand mutate() to account for mutations as god gifts, and make Xom use them, 
so that he respects the full mutation resistance mutation, as well as the 
limitations on how much players can be covered in scales, etc.

--------------------------------------------------------------------------------
3436bd49da | dshaligram | 2008-04-26 14:20:52 +0000

The royal jelly can no longer regenerate (dpeg).

--------------------------------------------------------------------------------
7341a7d51c | dolorous | 2008-04-26 13:56:55 +0000

Make Zin skip his mutation removal retribution if you have the full mutation 
resistance mutation.

--------------------------------------------------------------------------------
133c453e3f | j-p-e-g | 2008-04-26 13:47:46 +0000

Fix 1952094: Don't output (un)equipping messages for the alternate              
weapon slot unless the monster is capable of dual wielding.

--------------------------------------------------------------------------------
5c061029d1 | j-p-e-g | 2008-04-26 12:49:14 +0000

Remove Beogh recalling orcs for you, and instead try harder to find existing 
followers on the level (with decreasing chances) to bless them. This lowers 
probability of the reinforcement effect from 10% to 2.5% if bless_follower() is 
called without any parameters in the first place.
Greatly reduce chances for orcs talking, and tidy up monspeak.txt a bit
to make comparing chances easier.

Add the promised friendly pickup toggle (command on Ctrl-T), and a new 
option for its default value. Modify documentation accordingly.

Fix 1947256: hunger state not shown at game reload.

--------------------------------------------------------------------------------
728d477390 | j-p-e-g | 2008-04-26 09:43:41 +0000

Smarter monster pickup: * Hostile monsters that are occupied by fighting, 
seeking etc. won't   pick up anything dropped or thrown by you. Since they 
cannot know when   or why you dropped or threw an item, they just have to 
assume that it   was done to distract them. Our monsters are smart, and won't 
fall for   such cheap ploys. :P
* Occupied monsters won't pick up throwable weapons if they would just
  stack with existing missiles.

* Monsters won't pick up empty wands, and they may drop an empty wand 
  if they come across a charged one (however unlikely that combination
  may be).

--------------------------------------------------------------------------------
ea3b797045 | dolorous | 2008-04-26 07:01:54 +0000

Add yet another minor cosmetic fix.

--------------------------------------------------------------------------------
98463a697d | dolorous | 2008-04-26 06:52:23 +0000

Remove the check for can_safely_mutate() in Zin's mutation removal retribution, 
since it'll work regardless.

--------------------------------------------------------------------------------
89021893e8 | dolorous | 2008-04-26 06:39:14 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
34849b9916 | dolorous | 2008-04-26 06:38:29 +0000

Make Zin no longer force mutation removal, so that he doesn't override the full 
mutation resistance mutation anymore.

--------------------------------------------------------------------------------
61bd2741c5 | dolorous | 2008-04-26 04:44:07 +0000

Fix indentation.

--------------------------------------------------------------------------------
f189a5a063 | dolorous | 2008-04-26 04:28:19 +0000

Comment fix.

--------------------------------------------------------------------------------
0463cd9e8e | dolorous | 2008-04-26 04:25:18 +0000

Fix Zin's handling of little-mutated players (oops).

--------------------------------------------------------------------------------
e60301a3e4 | dolorous | 2008-04-26 04:17:16 +0000

Fix inverted logic for removing good mutations (oops).

--------------------------------------------------------------------------------
040f16f2b6 | dolorous | 2008-04-26 03:24:47 +0000

Add cosmetic fix.

--------------------------------------------------------------------------------
47a9f623f7 | dolorous | 2008-04-26 03:22:54 +0000

And generalize them a bit more.

--------------------------------------------------------------------------------
d16ed12018 | dolorous | 2008-04-26 03:05:13 +0000

Generalize the routines to determine whether you or a monster can mutate or 
mutate safely by moving them to the actor interface.

--------------------------------------------------------------------------------
537e2fe287 | dolorous | 2008-04-26 02:27:48 +0000

Comment fix.

--------------------------------------------------------------------------------
662d76865a | dolorous | 2008-04-26 02:20:21 +0000

Add more mutation-related cleanups.  Among these, revert can_safely_mutate() to 
a check whether or not the player can mutate without decomposing.  Since both 
Zin and Xom force their mutations, and doing so ignores the "mutation 
resistance" mutations, checking for the latter is redundant.

--------------------------------------------------------------------------------
7da48982ca | dolorous | 2008-04-26 01:20:45 +0000

Typo fix.

--------------------------------------------------------------------------------
3f7a144693 | dolorous | 2008-04-26 01:15:57 +0000

Fix Zin's recital retribution so that paralysis can actually happen (oops).

--------------------------------------------------------------------------------
746fb7eb3c | dolorous | 2008-04-26 01:08:07 +0000

Clean up body_covered() a bit more.

--------------------------------------------------------------------------------
62ed115b59 | dploog | 2008-04-26 00:54:28 +0000

Reduced probabilities for glass entry vaults. (Darshan)

--------------------------------------------------------------------------------
4f0a5dcef5 | dolorous | 2008-04-26 00:34:25 +0000

Add cosmetic fixes.

--------------------------------------------------------------------------------
3fdd1e14b1 | dolorous | 2008-04-26 00:11:14 +0000

Adjust the piety cost for Zin's Revitalisation to make it grow exponentially 
with the steps taken.

--------------------------------------------------------------------------------
900d1b9047 | dolorous | 2008-04-25 23:49:01 +0000

Apply Josh's delete_mutation() fix.

--------------------------------------------------------------------------------
bc264bb83d | dolorous | 2008-04-25 23:38:56 +0000

Don't force recentering around the player when deliberately forgetting the 
level map.

--------------------------------------------------------------------------------
4a746253d5 | j-p-e-g | 2008-04-25 23:35:17 +0000

Two changes:
1.) If Beogh can't find a nearby follower in LOS to bless, try again 
without the LOS restriction (but still nearby). If this also fails, recall 
a small amount of followers (1 + rnd(4) + rnd(4)) on the level. I don't
think there's much harm in Beogh actively doing something you already
have as an invocation as long as it doesn't make the invocation
superfluous (and this doesn't). 
In this case, the chance of this happening should probably be lowered, 
and actual reinforcement should be rarer still.

2.) Identify magical staves if you have at least 4 skill levels in the
corresponding spell school when wielding it, or gain the 4th level while
wielding it. (I decided on 4 because that is what most mages start out 
with in their special school, and it seems a good enough treshold.) 
Prior to that, there's still the random identification chance at casting
an appropriate spell, as before.

--------------------------------------------------------------------------------
3285cab37e | dolorous | 2008-04-25 23:30:40 +0000

Adjust Invocation training for Zin's Revitalisation.

--------------------------------------------------------------------------------
b47456fab2 | dolorous | 2008-04-25 20:29:42 +0000

Typo fix.

--------------------------------------------------------------------------------
4a252be37a | j-p-e-g | 2008-04-25 19:59:16 +0000

Fix compile.

--------------------------------------------------------------------------------
6246b28576 | dolorous | 2008-04-25 19:42:51 +0000

Add another cosmetic fix.

--------------------------------------------------------------------------------
aadcdbed94 | j-p-e-g | 2008-04-25 19:33:07 +0000

Refix confusion resistance checks to include plants and zombies. For the latter 
I added a check vs. undead holiness, but that may be (probably is) too general.

--------------------------------------------------------------------------------
e1594edc5a | dolorous | 2008-04-25 19:13:32 +0000

Comment fix.

--------------------------------------------------------------------------------
961769a9f9 | j-p-e-g | 2008-04-25 18:59:44 +0000

Allow monsters to pick up and exchange armour if they find something better. 
This will only happen if the armour will fit the monster (correct size) and if 
the new armour has a better AC, or both items have the same AC but the new 
armour has a higher value (uses shopping values). Matching racial type (orcish 
for orcs, elven for elves) doubles an item's value, so between two plain +0 
ring mails, one orcish one not, an orc will always prefer the former.
Friendly monsters now may pick up items dropped by other friendlies. 
This means that they can re-collect their own thrown missiles, and that 
they can upgrade from stuff dropped by their fallen comrades. Hey, 
that's monster AI in action! :)
They still won't pick up stuff randomly lying around, and neutrals or 
enslaved monsters never will pick up anything. And of course, friendly 
jellies (should that be possible) won't ever devour items.

Cleanup of mstuff2.cc, and reduce chances for Beogh orcs' chattiness (again).

--------------------------------------------------------------------------------
12cf2b007a | dshaligram | 2008-04-25 18:03:45 +0000

Fixed revitalisation being a super-heal-wounds effect.

--------------------------------------------------------------------------------
2a1c81275b | dolorous | 2008-04-25 17:26:00 +0000

Add minor miscellaneous fix.

--------------------------------------------------------------------------------
cf883c2e72 | dolorous | 2008-04-25 17:25:23 +0000

Make body_covered() take the shaggy fur mutation into account.

--------------------------------------------------------------------------------
6297b352b0 | dolorous | 2008-04-25 17:11:45 +0000

Consolidate the mutation-counting routines.

--------------------------------------------------------------------------------
7249037678 | dolorous | 2008-04-25 16:33:17 +0000

Add one last mutation removal handling cleanup.

--------------------------------------------------------------------------------
13f4e624c9 | dshaligram | 2008-04-25 16:23:14 +0000

Fixed monsters getting unwarranted confusion resistance (cbus).

--------------------------------------------------------------------------------
e87c84aed7 | dolorous | 2008-04-25 16:07:23 +0000

Add more mutation removal handling cleanups.

--------------------------------------------------------------------------------
5de4dc8957 | dolorous | 2008-04-25 15:50:44 +0000

Clean up mutation removal handling.

--------------------------------------------------------------------------------
3a887015e1 | ennewalker | 2008-04-25 15:38:02 +0000

Modified monster halo slightly.  I still don't like how it works with monster 
shadows, but there's really nothing that can be done with that right now.

--------------------------------------------------------------------------------
4fdaee8af2 | dolorous | 2008-04-25 14:36:29 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
e6cc066b99 | dolorous | 2008-04-25 14:33:36 +0000

Fix specific references to vampires versus generic references to semi-undead.  
The latter are now only used for determining the following: whether the player 
can mutate, whether the player can rot, and how much the player resists Dispel 
Undead.

--------------------------------------------------------------------------------
3c1801de24 | j-p-e-g | 2008-04-25 14:08:26 +0000

Fix 1949311: autoinscription for randart =Strength not respecting its 
enchantment.

--------------------------------------------------------------------------------
6235e6f426 | j-p-e-g | 2008-04-25 13:45:25 +0000

Fix props vector not being initialized for unrandarts (BR 1951367 and others). 
I'm really sorry about that!
Modify pickup.lua to allow Vampires to pick up !berserk rage etc.

--------------------------------------------------------------------------------
580be63530 | j-p-e-g | 2008-04-25 11:40:16 +0000

Revert shaft exception for Dlvl 27. Jeez, how should I know? I've never been 
down there!

--------------------------------------------------------------------------------
51416d9fcc | j-p-e-g | 2008-04-25 11:28:55 +0000

Fix 1951213: Disallow throwing a quivered wielded cursed item.
Also, restrict wizmode cursing to item types where this will actually
have an effect (weapons, armour, jewellery).

--------------------------------------------------------------------------------
0cc17e8e77 | j-p-e-g | 2008-04-25 10:58:59 +0000

FR 1951252: Make an exception for shafts leading to Dlvl 27: only shafts 
directly above that level (thus, level 26) will drop you into 27, else you'll 
at most land in Dlvl 26. Still, shafts may be placed on level creation.

--------------------------------------------------------------------------------
1661545d1b | j-p-e-g | 2008-04-25 10:49:19 +0000

FR 1951252: Modify shafts to usually (50%) drop you two levels, and             
sometimes (25% each) one or three.
FR 1951309: Disallow SeeInv + rPois properties for randart naga bardings 
since naga already have those two as innate mutations, and there's no one else
capable of wearing them.

--------------------------------------------------------------------------------
288f20074e | j-p-e-g | 2008-04-25 10:31:00 +0000

Fix [1951429] Mutations being miscoloured after listing innate boosted 
mutations.

--------------------------------------------------------------------------------
d60487cf30 | dolorous | 2008-04-25 03:37:41 +0000

Add whitespace fix.

--------------------------------------------------------------------------------
0dffb40167 | dolorous | 2008-04-25 03:33:50 +0000

Yet another comment fix.

--------------------------------------------------------------------------------
7cf4cd4222 | dolorous | 2008-04-25 03:32:38 +0000

Adjust is_good_mutation() yet again.

--------------------------------------------------------------------------------
9b1492b255 | dolorous | 2008-04-25 03:22:41 +0000

Add another comment fix.

--------------------------------------------------------------------------------
406e3bd88a | dolorous | 2008-04-25 03:22:03 +0000

Expand is_good_mutation() again.

--------------------------------------------------------------------------------
8c66d1757d | dolorous | 2008-04-25 03:20:31 +0000

And tweak it again.

--------------------------------------------------------------------------------
1721812052 | dolorous | 2008-04-25 03:19:04 +0000

Tweak Xom's mutation amusement a bit more.

--------------------------------------------------------------------------------
5d49681a31 | dolorous | 2008-04-25 03:04:48 +0000

Comment fix.

--------------------------------------------------------------------------------
7df5e49387 | dolorous | 2008-04-25 03:03:52 +0000

And expand it again.

--------------------------------------------------------------------------------
4323a1b60e | dolorous | 2008-04-25 03:00:15 +0000

Expand mutation coverage in is_good_mutation().

--------------------------------------------------------------------------------
fe3c86f0cf | dolorous | 2008-04-25 02:19:51 +0000

Tweak Xom's amusement levels for several mutations.

--------------------------------------------------------------------------------
47a26ffed4 | dolorous | 2008-04-25 02:18:58 +0000

Add spacing fixes.

--------------------------------------------------------------------------------
98359caadd | dolorous | 2008-04-24 23:43:39 +0000

Comment fix.

--------------------------------------------------------------------------------
3650ecd884 | dolorous | 2008-04-24 23:20:47 +0000

Add another orcish name.

--------------------------------------------------------------------------------
58fe4b772f | dolorous | 2008-04-24 23:06:34 +0000

Take the first step toward improving Zin's Revitalisation: HP and MP are now 
restored in greater amounts at high Invocation levels.

--------------------------------------------------------------------------------
86878386c0 | j-p-e-g | 2008-04-24 23:05:09 +0000

Fix blessing routine -- oops! Fix choose_random_nearby_monster() to really pick 
a random monster rather than the first one that fits, and allow named monsters 
to get higher chances. Use this when deciding which monster to bless (only 
happens if the one doing the kill, usually the player, is not eligible for 
blessing).
At high xp levels allow reinforcement (if there are no orcs nearby) 
to send in high xp orcs: orc warrior, orc knight, or orc warlord, 
rather than the normal ones (orc, orc wizard, orc priest).
At xl 27 the probability for this happening is about 31%. 

Problem: From the code, it appears that scumming for large armies is
possible by deliberately losing your followers somewhere and then 
killing monsters until you get the reinforcement effect. This will 
have to be controlled somehow, while still allowing for genuinely 
lost allies somewhere on the level. Maybe use recall instead or 
something like that.

--------------------------------------------------------------------------------
6388931826 | dploog | 2008-04-24 22:21:37 +0000

Changed magic/health bar colours (the main colours are now lightgreen and 
lightblue, respectively). I believe that these convey the main information and 
that the amount gained is only secondary.

--------------------------------------------------------------------------------
b7986051e7 | dploog | 2008-04-24 22:02:55 +0000

Added shafts to travel_stoppers.

--------------------------------------------------------------------------------
0772724241 | dolorous | 2008-04-24 20:10:55 +0000

Consistently capitalize "sanctuary".

--------------------------------------------------------------------------------
770de16299 | dolorous | 2008-04-24 20:08:25 +0000

Tweak a few Zin messages.

--------------------------------------------------------------------------------
6a136b0139 | dolorous | 2008-04-24 19:18:06 +0000

Add more miscellaneous fixes.

--------------------------------------------------------------------------------
53013eced9 | dolorous | 2008-04-24 17:01:04 +0000

Comment fixes.

--------------------------------------------------------------------------------
7ca99d4106 | j-p-e-g | 2008-04-24 15:22:36 +0000

Some cleanup in the blessing routines. Possibly fix a crash when calling 
bless_follower without an argument (it only happened with Beogh and TSO, so 
this is the most likely candidate). Outsource Boris' "I'll be back" speech.

--------------------------------------------------------------------------------
6fa0349a69 | dolorous | 2008-04-24 14:01:28 +0000

Allow vampires to memorize Alter Self, and to cast it when they're capable of 
mutating.

--------------------------------------------------------------------------------
7ec9c03e29 | dolorous | 2008-04-24 13:16:48 +0000

Fix compilation.

--------------------------------------------------------------------------------
64cef5aae0 | j-p-e-g | 2008-04-24 13:04:01 +0000

Allow christening (beoghening?) of plain orcs, after all, but make it rare and 
let the chance depend on max hp. Clean up naming some.

--------------------------------------------------------------------------------
6f2fb65523 | ennewalker | 2008-04-24 12:26:46 +0000

Moving player halo into the player tiles so that it can be layered on top of 
the shadow.

--------------------------------------------------------------------------------
904a64bbcf | j-p-e-g | 2008-04-24 09:35:03 +0000

* Add a wizard function apply_monster_blessing to allow for easy testing   of 
dolorous' fabulous blessing routines.
* Allow the possibility of naming monsters: 
  A monster's random name seed is stored in its number property, and the
  actual name gets picked from randname.txt. (Once this leaves the 
  experimental stage I'll move them into a file of their own.)
  This means that monster types that already use number for something
  else (hydras for #heads, manticores for #spikes, or zombies for
  monster type) cannot be named.

  Use the new functions for naming orcs blessed by Beogh. Only
  non-generic orcs may get named, e.g. orcs promoted to priesthood or orc
  warriors that get their weapon enchanted.

  I tried to come up with a number of thematic orcish names, and if
  anyone would like to contribute, they're welcome to do so.

--------------------------------------------------------------------------------
49271d835b | dolorous | 2008-04-24 06:28:20 +0000

Remove "Alter Self" from the list of Xom spells, as he already mutates you 
often enough through other means.

--------------------------------------------------------------------------------
d36d3b87ad | dolorous | 2008-04-24 05:53:20 +0000

Add a message for when the player can't be put to sleep.

--------------------------------------------------------------------------------
c9b58a9e98 | dolorous | 2008-04-24 05:45:12 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
5d90ac6dfd | dolorous | 2008-04-24 05:24:21 +0000

Mark dancing weapons as not leaving corpses, rather than as leaving 
contaminated corpses.

--------------------------------------------------------------------------------
a696249e9b | dolorous | 2008-04-24 05:22:03 +0000

Add yet another cosmetic fix.

--------------------------------------------------------------------------------
e0683bea84 | dolorous | 2008-04-24 05:13:07 +0000

Add another cosmetic fix.

--------------------------------------------------------------------------------
97f02f9ce1 | dolorous | 2008-04-24 04:45:28 +0000

Since dancing weapons without the MF_HARD_RESET flag fall from the air instead 
of disappearing when their abjuration time runs out, don't display the 
"disappears in a puff of smoke" message for them.

--------------------------------------------------------------------------------
5981c8daab | dolorous | 2008-04-24 04:37:48 +0000

More indentation fixes.

--------------------------------------------------------------------------------
de6c81b229 | dolorous | 2008-04-24 03:01:52 +0000

Add one more cleanup.

--------------------------------------------------------------------------------
af9636ebc2 | dolorous | 2008-04-24 02:57:02 +0000

Clean up a bit more summoning code.

--------------------------------------------------------------------------------
577db650c9 | dolorous | 2008-04-24 02:44:28 +0000

Properly attribute all of Zin's retribution messages.

--------------------------------------------------------------------------------
e53322da17 | dolorous | 2008-04-24 02:32:12 +0000

Tweak message.

--------------------------------------------------------------------------------
da70e0fa9c | dolorous | 2008-04-24 02:28:43 +0000

Add Recital as a Zin retribution effect (confusion, sleep, or paralysis effects 
only), and clean up handling of players that can't safely mutate.

--------------------------------------------------------------------------------
1c8be84488 | dolorous | 2008-04-24 02:13:13 +0000

Really fix indentation.

--------------------------------------------------------------------------------
20836b99ba | dolorous | 2008-04-23 22:41:14 +0000

Add still more comment fixes.

--------------------------------------------------------------------------------
50240e6ca8 | dolorous | 2008-04-23 21:57:33 +0000

Add cosmetic fix.

--------------------------------------------------------------------------------
341e3cfd5d | dolorous | 2008-04-23 21:56:16 +0000

Don't allow either TSO or Lugonu to bless range weapons at an altar, as neither 
holy wrath nor distortion do anything with such weapons.

--------------------------------------------------------------------------------
6bd8943c36 | dolorous | 2008-04-23 21:52:31 +0000

Another comment fix.

--------------------------------------------------------------------------------
8aa0c0ddca | dolorous | 2008-04-23 21:51:39 +0000

Don't let TSO brand range weapons with holy wrath, as it won't have any effect.

--------------------------------------------------------------------------------
bf6b1fc823 | dolorous | 2008-04-23 21:46:15 +0000

Add comment.

--------------------------------------------------------------------------------
7227c845de | dolorous | 2008-04-23 21:44:10 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
b6caadc22e | dolorous | 2008-04-23 21:42:35 +0000

Simplify.

--------------------------------------------------------------------------------
95c239cb51 | dolorous | 2008-04-23 21:37:33 +0000

Do the same for TSO's holy weapon blessing.

--------------------------------------------------------------------------------
a18f14bd13 | dolorous | 2008-04-23 21:32:46 +0000

Allow the weapon enchantment blessing tp work on a monster's alternate weapon.

--------------------------------------------------------------------------------
21d4017df9 | dolorous | 2008-04-23 21:24:24 +0000

Account for Zin's not opposing Elyvilon.

--------------------------------------------------------------------------------
24a4174865 | dolorous | 2008-04-23 21:13:46 +0000

Typo fix.

--------------------------------------------------------------------------------
ba335d7388 | dolorous | 2008-04-23 20:20:56 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
29700819cd | dolorous | 2008-04-23 19:55:53 +0000

Comment fix.

--------------------------------------------------------------------------------
87473df8b5 | dolorous | 2008-04-23 19:54:53 +0000

Give orc sorcerers back their original fire resistance, as it's probably 
related to their demon summoning, given that orc high priests have hellfire 
resistance.

--------------------------------------------------------------------------------
76fd73a6a2 | dolorous | 2008-04-23 19:11:33 +0000

Fix indentation.

--------------------------------------------------------------------------------
e0825620ff | dolorous | 2008-04-23 19:08:07 +0000

Zin's Recite can no longer turn demons and undead permanently neutral; they 
turn temporarily neutral instead.

--------------------------------------------------------------------------------
63d921e633 | dolorous | 2008-04-23 18:55:59 +0000

Comment fix.

--------------------------------------------------------------------------------
e07d6f367f | dolorous | 2008-04-23 18:52:05 +0000

Since the M_THICK_SKIN flag has no effect, replace it with the M_STATIONARY 
flag, and mark stationary monsters with it.

--------------------------------------------------------------------------------
86ac21551e | dolorous | 2008-04-23 18:49:24 +0000

Add still more minor cosmetic fixes.

--------------------------------------------------------------------------------
df2a325a29 | dolorous | 2008-04-23 17:38:42 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
066aba4e47 | dploog | 2008-04-23 17:18:40 +0000

Moved travel_stop_message options into a separate file (which is 
docs/travel_stoppers.txt for now). Files supposed to be included in the 
init.txt need their own folder at some stage. Adding to the list of 
travel_stoppers is welcome.

--------------------------------------------------------------------------------
d5968daee1 | dolorous | 2008-04-23 16:53:23 +0000

Add more minor cosmetic fixes.

--------------------------------------------------------------------------------
1d68d70963 | dolorous | 2008-04-23 16:25:06 +0000

In the "%" screen, display the proper regeneration status for starving vampires 
in bat form.

--------------------------------------------------------------------------------
bce3e13c89 | dolorous | 2008-04-23 16:18:46 +0000

Since liches are US_UNDEAD, they can't eat, so remove references to their doing 
so.

--------------------------------------------------------------------------------
130e8eabe5 | j-p-e-g | 2008-04-23 16:17:16 +0000

Update tiles help -- no formatting worth speaking of, but at least the 
information should be correct. Remove (hopefully) unnecessary ASSERT that was 
causing problems with Tiles. Clean up makeitem.cc. (Spacing changes, and 
renaming static methods.)

--------------------------------------------------------------------------------
678a64c76a | dolorous | 2008-04-23 16:16:47 +0000

Remove redundancy: liches are poison resistant.

--------------------------------------------------------------------------------
3f747fa0d5 | dolorous | 2008-04-23 16:08:05 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ddb4be75fa | dshaligram | 2008-04-23 15:45:28 +0000

Set hard lower limit on attack cost of 2 (dis/jarpiain/dpeg).
Remove caps on monster shock and poison resistance - these resists are intended 
to be multi-level for monsters.

--------------------------------------------------------------------------------
55fad5689d | dolorous | 2008-04-23 15:11:14 +0000

Still more comment fixes.

--------------------------------------------------------------------------------
663140d4a2 | dolorous | 2008-04-23 15:09:55 +0000

Remove the check for lich-form in can_safely_mutate(), as the former sets 
you.is_undead.

--------------------------------------------------------------------------------
132b7ec49c | dolorous | 2008-04-23 15:04:25 +0000

Another comment fix.

--------------------------------------------------------------------------------
e8c858584d | dolorous | 2008-04-23 15:03:14 +0000

Fix logic again.

--------------------------------------------------------------------------------
a9585a5189 | dolorous | 2008-04-23 14:41:00 +0000

Comment fixes.

--------------------------------------------------------------------------------
791253ab7b | dolorous | 2008-04-23 14:38:55 +0000

Fix inverted logic.

--------------------------------------------------------------------------------
4afc48994e | dolorous | 2008-04-23 14:32:15 +0000

Make can_safely_mutate() take lich-form into account.

--------------------------------------------------------------------------------
ee70db5d6a | dolorous | 2008-04-23 14:28:16 +0000

Remove unused ravenous hunger state, and clean up food state checks a bit more.

--------------------------------------------------------------------------------
26f69a4fe0 | dolorous | 2008-04-23 13:51:55 +0000

Remove unneeded blank lines.

--------------------------------------------------------------------------------
647719dbd1 | dolorous | 2008-04-23 13:51:37 +0000

Properly limit some monster resistance levels.

--------------------------------------------------------------------------------
7db8d57c32 | j-p-e-g | 2008-04-23 13:50:59 +0000

Fix halo tile appearing for non-haloed characters. Mention possility to pick 
items from tile menu by clicking on them in tutorial.

--------------------------------------------------------------------------------
bc6ba8c3a2 | dolorous | 2008-04-23 13:33:50 +0000

Fix Xom's demon detection.

--------------------------------------------------------------------------------
87c41bff60 | dolorous | 2008-04-23 13:30:30 +0000

Add spacing fix.

--------------------------------------------------------------------------------
4b07a28aaa | j-p-e-g | 2008-04-23 12:58:27 +0000

Replace cloak of Starlight tile with Eino's improved version. Add background 
tiles for TSO halo. I've tried around with several versions, and this is the 
best of those I came up with. It might still be annoying, or distracting, or 
whatever. Also, the player doll's shadow hides part of the halo which is weird.

--------------------------------------------------------------------------------
4bb492c640 | ennewalker | 2008-04-23 12:16:24 +0000

[1940326] Fixing bug where the mouse couldn't be used to select items on the 
inventory/menu/drop screen.

--------------------------------------------------------------------------------
70d644194b | j-p-e-g | 2008-04-23 09:42:33 +0000

Replace the dire lajatang with the cloak of Starlight (rElec, rC+, EV+4, 
Stlth-). I already added a new tile, which looks rather atrocious, I think. The 
dire lajatang tile is now used for any branded lajatang. Also renamed a few 
tile files.

--------------------------------------------------------------------------------
974643d2ee | dolorous | 2008-04-23 07:41:29 +0000

Take monster shields into account when calculating resistances.

--------------------------------------------------------------------------------
d1f4c8f447 | dolorous | 2008-04-23 07:09:36 +0000

Add one more comment fix.

--------------------------------------------------------------------------------
631b277287 | dolorous | 2008-04-23 07:09:01 +0000

Properly choose between either TSO's weapon blessing or his armor blessing.

--------------------------------------------------------------------------------
ef298261c6 | dolorous | 2008-04-23 07:05:16 +0000

After more thought, remove Beogh's electric weapon branding, as it doesn't 
really fit, and it's harder to balance.

--------------------------------------------------------------------------------
28f87f8032 | dolorous | 2008-04-23 06:48:46 +0000

Still another comment fix.

--------------------------------------------------------------------------------
bd9764e90a | dolorous | 2008-04-23 06:46:32 +0000

And increase the rarity again.

--------------------------------------------------------------------------------
418a9dd5c5 | dolorous | 2008-04-23 06:42:22 +0000

Yet another comment fix.

--------------------------------------------------------------------------------
d89552e9ff | dolorous | 2008-04-23 06:41:44 +0000

Increase the electric brand's rarity again.

--------------------------------------------------------------------------------
fa5c82ee4d | dolorous | 2008-04-23 06:07:41 +0000

Another comment fix.

--------------------------------------------------------------------------------
66608712b3 | dolorous | 2008-04-23 06:06:54 +0000

Make Beogh's electrocution branding rarer, since insulation is rarer.

--------------------------------------------------------------------------------
a60b8603bd | dolorous | 2008-04-23 05:54:17 +0000

More comment fixes.

--------------------------------------------------------------------------------
7263979a67 | dolorous | 2008-04-23 05:53:26 +0000

Don't allow the branding blessings to override existing brands, unless they're 
brands the blessing god doesn't like.

--------------------------------------------------------------------------------
ebd096b476 | dolorous | 2008-04-23 05:15:26 +0000

More comment fixes.

--------------------------------------------------------------------------------
8b56de8311 | dolorous | 2008-04-23 05:13:46 +0000

Reorder TSO blessings a bit.

--------------------------------------------------------------------------------
683e26edec | dolorous | 2008-04-23 05:09:54 +0000

Comment fix.

--------------------------------------------------------------------------------
5ade1d033f | dolorous | 2008-04-23 05:09:10 +0000

Change the colors of items branded by the new blessings.

--------------------------------------------------------------------------------
15518be57e | dolorous | 2008-04-23 05:04:48 +0000

Update comment to account for TSO's halo.

--------------------------------------------------------------------------------
5b2076baa5 | dolorous | 2008-04-23 05:03:50 +0000

Comment fixes.

--------------------------------------------------------------------------------
a29bd1e1cb | dolorous | 2008-04-23 05:01:30 +0000

Revert erroneous change to the "%" screen, as tou still get TSO's life 
protection when under penance.

--------------------------------------------------------------------------------
6ca45199e8 | dolorous | 2008-04-23 04:57:11 +0000

Expand the rarest possible (5%) blessings for TSO and Beogh, for when branding 
a monster's weapon with holy wrath and promoting an orc to an orc priest fail.  
TSO can now brand a monster's armor with positive energy, and Beogh can now 
brand a monster's weapon with electrocution.

--------------------------------------------------------------------------------
8ca11ca1ab | dolorous | 2008-04-23 04:53:19 +0000

When under penance from TSO, you don't get his negative energy protection.  
Properly take this into account on the "%" screen (oops).

--------------------------------------------------------------------------------
67a552e915 | dolorous | 2008-04-23 04:46:29 +0000

Remove unneeded blank lines.

--------------------------------------------------------------------------------
c9a84fd11e | dolorous | 2008-04-23 04:16:08 +0000

Typo fix.

--------------------------------------------------------------------------------
fb0aa3c5fe | dolorous | 2008-04-23 03:25:19 +0000

Comment improvement.

--------------------------------------------------------------------------------
07f60f407c | ennewalker | 2008-04-23 02:35:38 +0000

[1949314] Fixing another issue with stairs not being properly marked as having 
been visited.

--------------------------------------------------------------------------------
81876c70a7 | dolorous | 2008-04-22 23:50:26 +0000

Disallow stabbing while berserk.

--------------------------------------------------------------------------------
9daac86c5e | dolorous | 2008-04-22 23:43:31 +0000

And add a few more.

--------------------------------------------------------------------------------
f790ed64f7 | dolorous | 2008-04-22 23:40:30 +0000

Add another miscellaneous minor fix.

--------------------------------------------------------------------------------
908bb2b7ba | dolorous | 2008-04-22 23:08:35 +0000

Comment fix.

--------------------------------------------------------------------------------
71add343cd | j-p-e-g | 2008-04-22 22:43:16 +0000

Change colouring of sacrifice messages to colour the entire message rather than 
only a portion of it. Also tidy up Ely's destruction code and print the evil 
weapon destruction message *in addition to* the normal one, so you know which 
one Ely was so happy about.
And use the non-blessed weapon tiles for the blessed blade also for
building the player doll.

--------------------------------------------------------------------------------
e4867cc9e9 | dolorous | 2008-04-22 22:38:49 +0000

If you have 3 levels of the mutation resistance mutation, Zin's retribution 
won't be able to unmutate you, so call can_safely_mutate() before trying that, 
and, if it returns false, fall through to the angel/pestilence retribution.

--------------------------------------------------------------------------------
d6b99cccc1 | dolorous | 2008-04-22 22:35:29 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
9240144fa9 | dolorous | 2008-04-22 22:25:56 +0000

Fix more indentation.

--------------------------------------------------------------------------------
b4c83e6da9 | dolorous | 2008-04-22 22:21:32 +0000

Fix indentation.

--------------------------------------------------------------------------------
6a295d5f7f | j-p-e-g | 2008-04-22 22:11:34 +0000

For now use normal tiles for the blessed blades (WPN_FALCHION rather than 
WPN_BLESSED_FALCHION etc.)
FR 1928401: for undead attempting to Evoke an amulet of rage, print 
"cannot raise a blood rage" message right away instead of printing 
the "too hungry" message when applicable.

FR 1899121: prompt when using stairs that have an exclusion area centered
on them.

--------------------------------------------------------------------------------
efda51aa0f | dolorous | 2008-04-22 22:01:37 +0000

Allow the "divine balms" blessing to remove slowing and fatigue.

--------------------------------------------------------------------------------
c8949f1815 | dolorous | 2008-04-22 21:09:26 +0000

Make can_safely_mutate() take the mutation resistance mutation into account.

--------------------------------------------------------------------------------
6ab72a7322 | dolorous | 2008-04-22 21:06:24 +0000

Add cosmetic fixes.

--------------------------------------------------------------------------------
91107a94e3 | j-p-e-g | 2008-04-22 20:43:44 +0000

* Remove "Really eat rotten meat?" prompt, and print a generic refusal   
message instead. Also, don't offer rotten meat on floor if you won't   be able 
to eat it (FR 1939905). * Give full xp when an enslaved monster is killed, as 
it's to be assumed   it wouldn't have died without your interference (FR 
1937178). * Re-allow enforcing saprovorous mutation in wizard mode.

--------------------------------------------------------------------------------
e3be83aeba | dolorous | 2008-04-22 20:16:44 +0000

Make sure blessed blades don't get treated as unrandarts, either.

--------------------------------------------------------------------------------
207469bbbc | dolorous | 2008-04-22 20:10:50 +0000

Fix assertion failure when creating a blessed blade.

--------------------------------------------------------------------------------
eeadc16538 | dolorous | 2008-04-22 20:02:29 +0000

Don't allow undead and demonspawn players to wield holy fixedarts. Currently, 
there aren't any, but this is at least consistent.

--------------------------------------------------------------------------------
016ca20bd2 | dolorous | 2008-04-22 19:58:17 +0000

Clean up blessed blade handling a bit.

--------------------------------------------------------------------------------
8b989e8775 | j-p-e-g | 2008-04-22 19:40:42 +0000

Modify descriptions of artefact-capable items to allow for unquoted 
descriptions for artefacts, so as not to drown the actually important 
information in flavour quotes.

--------------------------------------------------------------------------------
c23deaf938 | dolorous | 2008-04-22 19:37:50 +0000

Add function can_safely_mutate(), to determine whether a player has any chance 
of rotting upon mutation, and make Xom's random mutation routines use it.

--------------------------------------------------------------------------------
405736986c | dolorous | 2008-04-22 19:31:01 +0000

Comment fixes.

--------------------------------------------------------------------------------
bcf9ac0144 | dolorous | 2008-04-22 19:26:52 +0000

Make the routine to check for mutations that only acticate sometimes generic to 
the semi-undead.

--------------------------------------------------------------------------------
2f5785ca4f | j-p-e-g | 2008-04-22 19:24:02 +0000

Go all the way and also store a randart's name and description in the props 
table. No more re-rolling every time we need the name, yay! :D
Should be save file compatible, and I also modified my previous change
to be save file compatible, after all. Not entirely sure this works,
though, as I didn't have any old saved games to test this with.

--------------------------------------------------------------------------------
93410abd4e | dolorous | 2008-04-22 19:11:08 +0000

Add one more miscellaneous minor fix.

--------------------------------------------------------------------------------
83ec92a8d3 | dolorous | 2008-04-22 19:04:24 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c8900f370b | dolorous | 2008-04-22 18:35:17 +0000

Add miscellaneous undead-related fixes.  When changing species to vampire in 
wizard mode, set you.is_undead to the proper value; check for you.is_undead's 
being US_UNDEAD when determining if a species can eat, instead of checking for 
the mummy species directly; and display the "if you weren't so full, you could 
turn into a bat" message for vampires that gain the ability when at least full, 
instead of only when satiated, since it won't work in the former case.

--------------------------------------------------------------------------------
22cf9f4f68 | dolorous | 2008-04-22 18:31:28 +0000

Another comment fix.

--------------------------------------------------------------------------------
4ac2f786ed | dolorous | 2008-04-22 18:28:44 +0000

Comment fixes.

--------------------------------------------------------------------------------
7dba1f9243 | j-p-e-g | 2008-04-22 16:32:31 +0000

Allow Vampire Enchanters and Transmuters. Tidy up a bit in randart.cc, and 
remove some of the longer Xom randart names.

--------------------------------------------------------------------------------
53cd4ce368 | j-p-e-g | 2008-04-22 15:20:16 +0000

Modify randart code to store randart properties in the props table, and use it 
to force TSO's blessed blades to be randart items with the holy wrath brand and 
(for flavour) life protection. This change breaks saves, unfortunately, but 
allows for much cleaner finetuning.
I also replaced all those randart names "of The Shining One's @esteem@" 
etc. with plain "of The Shining One", as they're just too long
otherwise. I'm sorry, dolorous! 
If it helps, I also culled some of the other overly long names. 
Randart names are now generally restricted to a maximum length of 25.

--------------------------------------------------------------------------------
aa33a11b5b | dolorous | 2008-04-22 14:11:36 +0000

Fix [1948787]: Let Xom mutate engorged vampires.

--------------------------------------------------------------------------------
f283025623 | dolorous | 2008-04-22 14:05:46 +0000

When checking spell hunger, check for the US_SEMI_UNDEAD state instead of the 
vampire species specifically.

--------------------------------------------------------------------------------
208bf60982 | ennewalker | 2008-04-22 12:00:14 +0000

Fixing crash in the Windows tile version.

--------------------------------------------------------------------------------
23c24bc254 | j-p-e-g | 2008-04-22 09:25:32 +0000

Removing debug statement entirely.

--------------------------------------------------------------------------------
d319afa5f2 | j-p-e-g | 2008-04-22 09:12:51 +0000

#ifdef debug output

--------------------------------------------------------------------------------
f56bfcfb04 | dshaligram | 2008-04-22 07:01:55 +0000

.gitignore for git-svn.

--------------------------------------------------------------------------------
d6a092ee4b | dolorous | 2008-04-22 05:13:53 +0000

Adjust the power of the "Summon Ugly Thing" spell again.

--------------------------------------------------------------------------------
6b495b07c8 | dolorous | 2008-04-22 04:47:49 +0000

Make the visual effect from follower blessing last a bit longer.

--------------------------------------------------------------------------------
a7b1d581b0 | dolorous | 2008-04-22 03:50:31 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
e52897975c | dolorous | 2008-04-22 03:32:35 +0000

And adjust it *yet again*.

--------------------------------------------------------------------------------
ddf9133d64 | dolorous | 2008-04-22 03:24:06 +0000

Adjust it again, and remove an erroneously left-in debugging statement (oops).

--------------------------------------------------------------------------------
beb3a3133a | ennewalker | 2008-04-22 03:23:24 +0000

[1948047] Fixing slime pit minimap bug.  Walls that are out-of-sight when the 
royal jelly dies are not updated until the player sees them again.

--------------------------------------------------------------------------------
8fa57e1389 | dolorous | 2008-04-22 03:20:20 +0000

Adjust TSO's blessings again, making the permanence threshold of the "extended 
stay" relative instead of hardcoded, so that it's easier to reach.

--------------------------------------------------------------------------------
3d7c4206e9 | ennewalker | 2008-04-22 03:00:50 +0000

Shop fixes. [1946217] Removed --more-- when entering a shop. [1939892] Moved 
shop from MSG window to CRT window to fix tiles-related redraw issue.

--------------------------------------------------------------------------------
a9313934c5 | dploog | 2008-04-21 23:49:56 +0000

Repair a Crypt end.

--------------------------------------------------------------------------------
16f894085e | dolorous | 2008-04-21 22:59:02 +0000

Adjust it still one more time.

--------------------------------------------------------------------------------
305f0fbc8c | dolorous | 2008-04-21 22:48:42 +0000

Adjust it one more time.

--------------------------------------------------------------------------------
8916332bd6 | dolorous | 2008-04-21 22:30:08 +0000

And adjust it yet again.

--------------------------------------------------------------------------------
5701eb74fe | dolorous | 2008-04-21 22:07:36 +0000

And adjust it again.

--------------------------------------------------------------------------------
de80797750 | dolorous | 2008-04-21 21:51:49 +0000

Add one more TSO blessing adjustment.

--------------------------------------------------------------------------------
ed549479d0 | dolorous | 2008-04-21 21:21:36 +0000

In get_monster_desc(), display the shield a monster's wearing, if any, in the 
full description.

--------------------------------------------------------------------------------
a9e1c69a17 | dolorous | 2008-04-21 20:22:20 +0000

Adjust the numbers for TSO's extended stay blessing again.

--------------------------------------------------------------------------------
7ef6b20f07 | dolorous | 2008-04-21 19:38:20 +0000

Increase the chances of TSO's extended stay and friendliness blessings again.

--------------------------------------------------------------------------------
5a7847323d | dolorous | 2008-04-21 19:10:06 +0000

Comment fixes.

--------------------------------------------------------------------------------
9e9aa21b93 | dolorous | 2008-04-21 19:09:13 +0000

For TSO worshippers, when a follower kills evil, make sure it gets the 
blessing, not just any follower (oops).

--------------------------------------------------------------------------------
231f7322b5 | dolorous | 2008-04-21 18:28:39 +0000

Don't display the "is converted" message if you draw the Crusade card as a 
Beoghite and it turns an orc into a follower.

--------------------------------------------------------------------------------
4cd4a4934d | dolorous | 2008-04-21 18:05:34 +0000

If you neutralize a holy being with Zin's Recite, don't display the "seems 
impressed" message.

--------------------------------------------------------------------------------
01e87f9679 | dolorous | 2008-04-21 17:02:35 +0000

Add mesilliac's patch in [1944555] for improved handling of followers/summoned 
creatures, with one minor tweak to take good neutral monsters into account.

--------------------------------------------------------------------------------
ca2fa8e520 | dolorous | 2008-04-21 16:55:29 +0000

Simplify.

--------------------------------------------------------------------------------
cccca0ee43 | dolorous | 2008-04-21 16:53:36 +0000

Add minor behavior fixes for good neutral monsters.

--------------------------------------------------------------------------------
e7e71123fd | j-p-e-g | 2008-04-21 15:38:59 +0000

Some spacing changes, and replacing most of the (to me) unreadable symbols.
(The one I didn't change is the 'ö' in the golem quote; I guess we could 
change it to 'oe' but as it's a proper name it somehow seemed wrong to
do so.)

--------------------------------------------------------------------------------
686aa8ff81 | dolorous | 2008-04-21 14:22:10 +0000

Increase the odds of getting TSO's "extended stay" blessing again.

--------------------------------------------------------------------------------
f411242884 | j-p-e-g | 2008-04-21 13:58:13 +0000

Add shadowing to the amulet of the Air tile.

--------------------------------------------------------------------------------
19cd3f60eb | j-p-e-g | 2008-04-21 12:15:40 +0000

Change mummy curses to only turn part of a stack of potions into decay. 
Instead, the amount is 2 + random2(quantity - 1), so ranging anywhere from 2 to 
the entire stack.
Yes, I know this is probably highly controversial, but I've thought
about it some, and I think that this will actually change little for
most characters: You still won't take large stacks of valuable potions
into the Tomb since even if only part of the stack is destroyed it's a
huge loss. On the other hand, this is easier on newbies who had no idea
this could happen, and makes it a bit more harder for Transmuters to 
turn their twenty-something potions of water into decay.

I also added a message ("Your potions of xyz decay.") if you know the
decay type. Otherwise the message is suppressed, so as to replicate the
current situation of "Hey, what's this? When did I pick up those?
(q)uaff..."
For consistency, I also added a message when stuff is cursed, or rather
I merged all those "Your foo glows black" messages into do_curse_stuff()
that now takes a parameter "quiet" to control whether it's printed ot not.

--------------------------------------------------------------------------------
aa3d47d061 | dolorous | 2008-04-21 05:00:38 +0000

Make TSO's blessed blade artefacts only get the holy wrath brand, by filtering 
out all other effects.  There should be a better way to do this eventually...

--------------------------------------------------------------------------------
97b6ef8fb2 | pauldubois | 2008-04-21 04:55:59 +0000

Use #define HUD_VALUE_COLOR instead of hardcoding LIGHTGREY so David can 
experiment with using other colors like WHITE

--------------------------------------------------------------------------------
e45cf41f71 | pauldubois | 2008-04-21 03:32:36 +0000

Remove "lightgrey" from the default hp_colour and mp_colour options 
("lightgrey, 50:yellow, 25:red"), so output.cc can choose the default colour.

--------------------------------------------------------------------------------
2bf13ac122 | pauldubois | 2008-04-21 03:21:30 +0000

Remove bogus-looking, unused function

--------------------------------------------------------------------------------
79e31f1673 | dolorous | 2008-04-21 02:56:38 +0000

Fix [1947495]: Adjust orc bands.

--------------------------------------------------------------------------------
be9cfdbcfa | dolorous | 2008-04-21 02:10:03 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
925f962a33 | dolorous | 2008-04-21 01:34:25 +0000

Display the proper message when Beogh throws implements of electrocution at you.

--------------------------------------------------------------------------------
e89ecc38f9 | dolorous | 2008-04-21 01:16:07 +0000

Don't display "-" if the player has no shield equipped.  Instead, display the 
shield class number unconditionally, so that if you only have a magical shield, 
you can see the shield class properly.

--------------------------------------------------------------------------------
98d71af18e | dshaligram | 2008-04-21 00:53:32 +0000

Moderate OOD on D:1 is activated only after 700 turns spent on D:1. Other 
levels continue to enjoy moderate OOD as normal.

--------------------------------------------------------------------------------
b79c592eae | dolorous | 2008-04-21 00:34:54 +0000

More Divine Shield adjustments.  The maximum power is now back at 8, but the 
durtion is now from 35 to 80 turns, the same as a potion of might.

--------------------------------------------------------------------------------
be12eda808 | dolorous | 2008-04-21 00:06:15 +0000

Add minor cosmetic fix.

--------------------------------------------------------------------------------
2f0027fc19 | dshaligram | 2008-04-21 00:01:25 +0000

Make lajatangs more common to compensate for the weaker quarterstaff.
Also strengthened Agnes slightly, speeded her up a bit further, and gave her a 
lajatang.

Lajatangs can now be generated with a brand.

--------------------------------------------------------------------------------
fd33507fae | dolorous | 2008-04-20 23:10:09 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
eb8c3ef518 | dolorous | 2008-04-20 23:07:05 +0000

And clean it up yet again.

--------------------------------------------------------------------------------
d9e7e6a021 | dolorous | 2008-04-20 23:01:53 +0000

And clean up the previous attempt.

--------------------------------------------------------------------------------
655e25c269 | dolorous | 2008-04-20 22:44:11 +0000

Make Zin's Revitalisation easier to adjust in terms of power by making the MP 
increase relative to the HP increase.  As a side effect, the MP increase is a 
bit more powerful; at maximum power, it's now 7 instead of 5.

--------------------------------------------------------------------------------
5a958305f3 | dolorous | 2008-04-20 22:27:06 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
9cc4ae67d7 | pauldubois | 2008-04-20 21:58:18 +0000

A little bit of savegame code cleanup; and a small format change to make life 
easier (or rather, possible) for dump_savegame.  Should not break saves (let me 
know if they do).
 - Fixed dump_savegame bug reading TAG_LEVEL.  Handle lua map_markers
   (by skipping over them) -- requires format change and minor version bump.

 - Consolidated YOU_MINOR_VERSION, LEVEL_MINOR_VERSION, GHOST_MINOR_VERSION
   into a single TAG_MINOR_VERSION, because otherwise versions can't be passed
   into data structures being deserialized (because they may be contained in
   both you and ghost, for example).

 - Clean out old code that pretends to restore other major versions,
   and some duplicate code that pretends level loading and general
   tagged file loading are different.  (Left ghosts alone because they
   really do do something different, slightly)

--------------------------------------------------------------------------------
be9f773b92 | dolorous | 2008-04-20 21:40:08 +0000

Avoid cluttering the recovery channel when restoring stats.

--------------------------------------------------------------------------------
b632d87fcd | dolorous | 2008-04-20 20:28:44 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
741f3db05f | dolorous | 2008-04-20 19:56:19 +0000

Expand restore_stat() to allow for more fine-grained constrol of stat 
restoration; the amount to be restored can now be specified.  Use this where 
necessary.

--------------------------------------------------------------------------------
131216891c | dshaligram | 2008-04-20 18:09:07 +0000

Further split up initfile.cc if-else chain for VC++. We'll want to break up 
this code entirely into a lookup table for future releases.

--------------------------------------------------------------------------------
c633c00ef6 | dshaligram | 2008-04-20 16:43:23 +0000

Fixed depth-conditionals for lemuel_castle.

--------------------------------------------------------------------------------
902e71dc2b | dploog | 2008-04-20 16:17:22 +0000

Reformulate TSO's description slightly.

--------------------------------------------------------------------------------
c284f77535 | dolorous | 2008-04-20 16:16:46 +0000

Improve TSO's divine shield a bit.  Now, the bonus goes up as far as 9 instead 
of 8, and it can last as long as 27 turns instead of 18.

--------------------------------------------------------------------------------
d69ece598f | ennewalker | 2008-04-20 15:45:48 +0000

[1937257] Fixed stair cycling issues for tiles.

--------------------------------------------------------------------------------
6acdd308a2 | dolorous | 2008-04-20 15:20:43 +0000

Since drinking blood offends the good gods, mark potions of blood and 
coagulated blood as evil items.

--------------------------------------------------------------------------------
bbccd02aa5 | dolorous | 2008-04-20 15:12:46 +0000

Mention that TSO takes evil item sacrifices in his description.

--------------------------------------------------------------------------------
2450cbe42b | ennewalker | 2008-04-20 14:20:40 +0000

Fixing minimap issue where the markers could get confused if there were 
multiple squares with the player colour.  Markers no longer depend on the 
contents of the map.

--------------------------------------------------------------------------------
19d229916a | j-p-e-g | 2008-04-20 13:08:35 +0000

Vampires: Allow Bat Form only until Satiated, and add this and the mutation 
chances to the vampire overview screen.
Also, add time-out messages for Icy Armour (FR 1946662) and Forescry,
because why not?

--------------------------------------------------------------------------------
9fb0ff3699 | j-p-e-g | 2008-04-20 12:24:06 +0000

Allow true randarts to occasionally recurse themselves.
If the curse property is chosen, there's a 33% chance of allowing
recursing with equal chances for values = [1..5].

--------------------------------------------------------------------------------
30a70203ba | j-p-e-g | 2008-04-20 12:12:19 +0000

Change recursing to work similarly as was suggested by {bdr} - Brent?
The curses property now may take any range of numbers, rather than 
plain 0 or 1. If its value is different from 0, the randart is created 
cursed. For positive values, it may additionally recurse itself with 
1/value probability. In this case, add a description line ("It may
recurse itself.") and an auto-inscription ("Curse", comes last).

--------------------------------------------------------------------------------
1326ea6a6d | j-p-e-g | 2008-04-20 11:13:44 +0000

Make randarts with the CURSED property recurse themselves with 1/3 chance when 
equipped, as was claimed in unrand.h.
Make Beogh throw weapons of electrocution (rather than orc slaying) at 
non-Orcs getting this retribution effect by drawing the card of Wrath.

Replace the "Holy Armour of Zin" with the "amulet of the Air" (as
suggested by Lemuel). Added the necessary tile, too - my first tile made
totally from scratch, and I'm totally proud of it, whoohoo!

--------------------------------------------------------------------------------
2d1c74ea75 | dolorous | 2008-04-20 03:47:34 +0000

Fix typo.

--------------------------------------------------------------------------------
bb750cc25b | dolorous | 2008-04-20 03:20:37 +0000

Make ugly thing summoning available as a card effect (Repulsiveness).

--------------------------------------------------------------------------------
1630849515 | ennewalker | 2008-04-20 03:12:13 +0000

Fixing issue where the X map mode would incorrectly move the screen after 
viewing help.

--------------------------------------------------------------------------------
e1f1dbd2ba | ennewalker | 2008-04-20 02:31:58 +0000

[1940992] Fixed minimap travel/view issues.  This fixes both the "off by three 
squares" as well as an unmentioned "off by two pixels" issue.

--------------------------------------------------------------------------------
ed05654d26 | dolorous | 2008-04-20 02:20:41 +0000

In enum.h, move "Summon Ugly Thing" to the end of the user spell section, where 
it probably should have gone in the first place.  Also, reorder the spells in 
spl-data.h to match the order in enum.h.

--------------------------------------------------------------------------------
0a7dba2a0a | dolorous | 2008-04-20 02:06:05 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
269316ace5 | pauldubois | 2008-04-20 01:47:28 +0000

Change direct.cc/h to directn.cc/h Add YY_NO_UNISTD_H to MSVC builds, and turn 
off warn-as-error for now

--------------------------------------------------------------------------------
a06a31d0f8 | dploog | 2008-04-20 01:17:46 +0000

Updated CREDITS.

--------------------------------------------------------------------------------
41310a1c08 | ennewalker | 2008-04-20 01:06:59 +0000

[1914620] Adjusting duplicate stair removal logic (such as extra stone stairs 
being created by vaults) to try to preserve stone stairs from vaults.
Extra stone stairs (still) become escape hatches, except in Zot where they now 
become non-stairs, to coerce players into traveling through vaults.

--------------------------------------------------------------------------------
fb2de3b692 | j-p-e-g | 2008-04-20 00:57:48 +0000

Add a missing break statement to fix unID'd scroll of recharging enchanting 
armour instead... oops!

--------------------------------------------------------------------------------
488e5fd789 | j-p-e-g | 2008-04-20 00:24:31 +0000

Change place_monster_aux to always check nearby squares as if first_band_member 
was false, if the one it was called with is already occupied by the player or 
another monster. This should fix the problem behind all those bug reports of 
monsters sharing a square with the player. Might introduce new ones, I guess, 
though I hope it won't.
Also fix a minor display bug in the chardump.

--------------------------------------------------------------------------------
3a736d2bc2 | dolorous | 2008-04-19 23:38:07 +0000

Clean up follower and cleansing flame routines some more.  If you worship a 
good god, cleansing flame will no longer damage neutral monsters, since 
attacking neutrals offends the good gods.

--------------------------------------------------------------------------------
a3cdba5e57 | dshaligram | 2008-04-19 23:36:10 +0000

Fixed save file listing not working with MSVC.

--------------------------------------------------------------------------------
3d980148f5 | dshaligram | 2008-04-19 23:20:03 +0000

Refix build for Unix.

--------------------------------------------------------------------------------
9ba57ee3a6 | dshaligram | 2008-04-19 23:13:26 +0000

Fixes to compile with Visual C++. Moved direct.cc and direct.h to directn.* to 
avoid conflict with VC++ direct.h header.

--------------------------------------------------------------------------------
003c3dc779 | dolorous | 2008-04-19 22:00:30 +0000

And adjust it again.

--------------------------------------------------------------------------------
02604af1ab | dolorous | 2008-04-19 21:29:08 +0000

Adjust the probability of summoning very ugly things again.  It now properly 
goes up with spell power for players, or with hit dice for monsters.

--------------------------------------------------------------------------------
4bdcba1f64 | dolorous | 2008-04-19 21:26:58 +0000

Add cosmetic fix.

--------------------------------------------------------------------------------
da24deb297 | dploog | 2008-04-19 21:24:49 +0000

Added fog generator entry vaults. These are experimental: feedback is welcome 
and playing with the parameters is encouraged. See the top of entry.des for 
more details. The CHANCE: 500 is temporary, of course.

--------------------------------------------------------------------------------
0def006f69 | dshaligram | 2008-04-19 20:13:30 +0000

Correctly handle canceling summon elemental prompt.

--------------------------------------------------------------------------------
91dedcc3a1 | pauldubois | 2008-04-19 20:12:35 +0000

Docs for the msg option.

--------------------------------------------------------------------------------
fc75554cf3 | dolorous | 2008-04-19 19:35:23 +0000

Add more minor cleanups.

--------------------------------------------------------------------------------
e0859659ec | dolorous | 2008-04-19 19:12:29 +0000

Fix inverted logic in summon_elemental().

--------------------------------------------------------------------------------
5f92880b29 | dolorous | 2008-04-19 19:02:10 +0000

Fix [1946764]: When one monster flees a sanctuary, save it directly instead of 
just its index, in case it moves before printing its message about fleeing the 
light.

--------------------------------------------------------------------------------
92590163b5 | dolorous | 2008-04-19 18:35:07 +0000

Add minor cosmetic cleanups.

--------------------------------------------------------------------------------
6d9c0a9818 | dolorous | 2008-04-19 18:07:21 +0000

Add a few more spell cleanups.

--------------------------------------------------------------------------------
3900b6c5ea | dolorous | 2008-04-19 17:45:52 +0000

Add more summoning spell cleanups.

--------------------------------------------------------------------------------
8693d2b8f2 | dolorous | 2008-04-19 17:32:30 +0000

Clean up the summoning spell code some more.

--------------------------------------------------------------------------------
fc7c7c8405 | ennewalker | 2008-04-19 16:48:08 +0000

[1943740] Fixing issue with odd tiles in Pan when saving and reloading. Also, 
fixing misplaced viewwindow that was drawing the screen before the right tiles 
for that level were selected.

--------------------------------------------------------------------------------
c442299402 | dolorous | 2008-04-19 16:32:32 +0000

Add various minor fixes.

--------------------------------------------------------------------------------
f867bed2e7 | j-p-e-g | 2008-04-19 15:22:25 +0000

Restrict randart names to a maximum length of 30. (I'd really like to restrict 
it to about 25, but "The Shining One's" needs 20 letters, so that's out.)
Don't automatically regard unID'd jewellery randarts as {tried}, 
instead use a (very) rough estimate: if you know at least one property,
the item will be marked as tried, otherwise (e.g. if the only property 
is +Dam, or prevents spellcasting) it won't be marked at all. I'm not 
actually sure this is better than never outputting {tried} for randarts,
but we'll see...

--------------------------------------------------------------------------------
047dbc8301 | ennewalker | 2008-04-19 15:19:03 +0000

[1944570] Fixing bug where the unexplored stairs marker wasn't being saved for 
tiles (due to only storing shorts, which truncated off that flag.) 
Unsurprisingly, this breaks saves with tiles.

--------------------------------------------------------------------------------
367b5d24ec | ennewalker | 2008-04-19 15:07:24 +0000

Fixing tile issues with region placement.  Now regions will be resized 
appropriately, based on crawl_view_geometry.

--------------------------------------------------------------------------------
93b6d8b612 | dolorous | 2008-04-19 14:30:00 +0000

Add a few more summoning-related cleanups.

--------------------------------------------------------------------------------
7fd3b3b64d | dolorous | 2008-04-19 14:07:21 +0000

Adjust the probability of summoning a very ugly thing.

--------------------------------------------------------------------------------
c9781d5250 | dolorous | 2008-04-19 13:55:16 +0000

Implement "Summon Ugly Thing" as a player spell, in the Book of Summonings just 
before Shadow Creatures.  Also make it available to player ghosts, so that it 
can be seen in action from monsters, and put it in the list of Xom spells.  
This will probably need adjustment.

--------------------------------------------------------------------------------
5c18032265 | dolorous | 2008-04-19 13:17:13 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
1879311138 | dolorous | 2008-04-19 12:52:50 +0000

Fix [1946117]: Go back to the status quo for orc sorcerers.  They get the same 
spell list as in 0.3, and are marked as evil again.  Also, orc wizards, by 
extension, are marked as evil again to avoid the problem with turning evil only 
upon experience gain.  There should be a better way to make them both non-evil 
again eventually...

--------------------------------------------------------------------------------
f7180214ad | pauldubois | 2008-04-19 12:46:32 +0000

remove redundant code; also, fix problem with the status light redisplay 
optimization.

--------------------------------------------------------------------------------
28a1ee4ae6 | dolorous | 2008-04-19 12:45:08 +0000

For consistency, rename the "Summon Ugly Things" spell to "Summon Ugly Thing".

--------------------------------------------------------------------------------
8c222da8eb | dolorous | 2008-04-19 12:39:49 +0000

Compilation fix.

--------------------------------------------------------------------------------
f605828804 | pauldubois | 2008-04-19 12:20:10 +0000

A utility I've been working on to parse and examine savegames.

--------------------------------------------------------------------------------
b0b4d7e1fb | j-p-e-g | 2008-04-19 11:35:34 +0000

Don't add rF+/rC- to the autoinscriptions of randart rings of fire (and vice 
versa for ice), since that's already what their base type does. Should the code 
ever be changed to allow them to get additional levels of resistance or 
susceptibility, the check is only done for the base stats (+1 and -1, 
respectively).

--------------------------------------------------------------------------------
811db79a78 | j-p-e-g | 2008-04-19 11:19:35 +0000

Rename show_turns to show_gold_turns, and modify the documentation accordingly. 
Also, don't print that "bringing you to a total of ..." message if you 
previously had no gold, and change some ints to unsigned to quiet some compiler 
warnings.

--------------------------------------------------------------------------------
bea5c32865 | j-p-e-g | 2008-04-19 10:18:52 +0000

Cleanup of beam.cc and direct.cc. Comparisons for missiles are done with the 
actual item now, rather than beam.name, so this fixes (user specified) randart 
names containing "poisoned" being actually poisoning. I guess this would also 
allow printing the stats in the hiscores when killed by a thrown weapon.

--------------------------------------------------------------------------------
351df26a45 | pauldubois | 2008-04-19 09:53:13 +0000

Implement the results of the HUD discussion with maybe 80% accuracy. I didn't 
do anything with changing how rot is displayed because it's a big bikeshed.  
For now, if there's rot you see "HP:" instead of "Health:" and I predict it'll 
be a long time before anyone complains (if ever)
show_turns=true shows Turn: but also Gold:, will maybe rename the
option (having two options is not an option :).  It gets the space by
stealing from the monster list rather than pushing anything off the
HUD; seems like a reasonable thing to do.  The HUD feels too tight
already IMO.

--------------------------------------------------------------------------------
a882fb4817 | pauldubois | 2008-04-19 06:45:25 +0000

msg height back up to 7

--------------------------------------------------------------------------------
a2e5b0649f | pauldubois | 2008-04-19 06:28:09 +0000

Fix ')' crash if quiver item is not in inventory

--------------------------------------------------------------------------------
7c9857aef2 | pauldubois | 2008-04-19 06:23:34 +0000

Fix case where quiver stored items with quantity other than 1

--------------------------------------------------------------------------------
4a493c76b7 | dolorous | 2008-04-19 03:57:55 +0000

Adjust stabbing probability for monsters who are caught in nets or paralyzed: 
they don't always get it, as sleeping monsters do.

--------------------------------------------------------------------------------
233e50497b | dolorous | 2008-04-19 03:08:54 +0000

For abjuration purposes, treat good neutral monsters like friendly monsters.

--------------------------------------------------------------------------------
40baf6a732 | ennewalker | 2008-04-19 01:41:37 +0000

[1941246] Cleaning up wininit.txt issues: 	Crawl no longer croaks when not 
finding the file. 	Deleted file from repository for the sake of 
convenience. 	Fixed default sizes so that &~ no longer wraps strangely.

--------------------------------------------------------------------------------
c5fff3ce2b | dolorous | 2008-04-19 01:26:17 +0000

Add spacing fix.

--------------------------------------------------------------------------------
1be1dbe3e9 | ennewalker | 2008-04-19 01:16:12 +0000

[1941576] Fixed issue with too many blank squares in the inventory.  Now, there 
will be at least one row of floor items displayed.

--------------------------------------------------------------------------------
41cd39970b | dolorous | 2008-04-19 01:14:08 +0000

Add punctuation fix.

--------------------------------------------------------------------------------
81b12532ef | ennewalker | 2008-04-19 00:13:29 +0000

[1941577] Fixed issue where title line sometimes contained characters from 
species line.  This was due to the title writing (blank) strings that were too 
long and wrapping around to the next line.

--------------------------------------------------------------------------------
51236f4eb5 | j-p-e-g | 2008-04-18 21:56:45 +0000

Numerous modifications to unrandarts, as suggested by Lemuel and Markus Maier 
in FR 1945156.

--------------------------------------------------------------------------------
3f53c9e9b6 | dolorous | 2008-04-18 21:43:45 +0000

Improve halo-related output again, for the information printed by "@".

--------------------------------------------------------------------------------
eff146e56b | ennewalker | 2008-04-18 21:38:35 +0000

[1941577] Fix for crashes when resizing screen.

--------------------------------------------------------------------------------
c445c5a6f6 | dolorous | 2008-04-18 21:33:44 +0000

Improve halo-related output.

--------------------------------------------------------------------------------
a3f58f3faa | ennewalker | 2008-04-18 21:07:07 +0000

Removing tile cruft left behind by (long-removed) isometric mode.

--------------------------------------------------------------------------------
f4e55157ab | dolorous | 2008-04-18 19:01:07 +0000

Adjust TSO's halo messages again.

--------------------------------------------------------------------------------
92d8704553 | dolorous | 2008-04-18 18:56:58 +0000

Remove now-unneeded include.

--------------------------------------------------------------------------------
d2a19a99c2 | dolorous | 2008-04-18 18:54:45 +0000

Simplify TSO halo management.  Since backlit() now takes the halo into account, 
there's no need to manually backlight invisible monsters anymore.

--------------------------------------------------------------------------------
8330288d5b | dolorous | 2008-04-18 18:02:48 +0000

Make backlit() take the glow of TSO's halo into account, so that both the 
player and monsters aren't marked as glowing from it except when invisible.

--------------------------------------------------------------------------------
6b43ac0d8b | ennewalker | 2008-04-18 17:58:26 +0000

Fixing assert problem due to wherex() inconsistency between tile and console 
versions. Removed jpeg's commented out code in the health bar drawing routine, 
as the reamining code is correct.  (Thanks!)

--------------------------------------------------------------------------------
a017699401 | dolorous | 2008-04-18 17:24:46 +0000

Make sure TSO's halo immediately cancels invisibility.

--------------------------------------------------------------------------------
f644b8d499 | dolorous | 2008-04-18 17:15:14 +0000

Adjust TSO's halo again to only make the player and monsters glow when they're 
invisible.

--------------------------------------------------------------------------------
54868eac79 | dolorous | 2008-04-18 16:53:59 +0000

Make TSO's halo only illuminate monsters that may attack you.

--------------------------------------------------------------------------------
e5425f03ba | j-p-e-g | 2008-04-18 16:25:07 +0000

[1945775] Print "Okay, then." when aborting wear/take off prompt.

--------------------------------------------------------------------------------
06b329e318 | j-p-e-g | 2008-04-18 16:12:25 +0000

Allow "sort_menus:any" to override the default "pickup:" statement.
Apply patch submitted for BR 1945384: friendlies will try to move around
the player to get to their target instead of trying to move *through*
the player and ending up doing nothing.

--------------------------------------------------------------------------------
cb023780a5 | dolorous | 2008-04-18 16:06:56 +0000

Add minor backlight cleanup.

--------------------------------------------------------------------------------
09d8220e21 | dolorous | 2008-04-18 15:43:23 +0000

Comment fixes.

--------------------------------------------------------------------------------
37e9bdff14 | dolorous | 2008-04-18 15:42:00 +0000

For consistency, set the MF_ATT_CHANGE flag on daevas you summon.

--------------------------------------------------------------------------------
f23480b403 | dshaligram | 2008-04-18 13:32:25 +0000

[1945524] Fixed minivaults not being generatable.

--------------------------------------------------------------------------------
2d07197981 | dshaligram | 2008-04-18 13:09:19 +0000

Fix g++ carping about overflow in implicit constant conversion for the quiver 
cookie.

--------------------------------------------------------------------------------
0bcc3b9cc9 | j-p-e-g | 2008-04-18 12:25:57 +0000

Fix 1945394: Fix Detect Creatures incorrectly claiming that you              
"detected nothing".

--------------------------------------------------------------------------------
90b143eb00 | j-p-e-g | 2008-04-18 11:57:07 +0000

Fix 1945348: Lugonu's Corruption attempting to "preserve" other altars.

--------------------------------------------------------------------------------
5c1d15b2a0 | j-p-e-g | 2008-04-18 11:37:24 +0000

Fix 1945337: Vampires getting carnivorous/herbivorous mutations. Fix 1944345: 
Dropping worn/wielded items while Berserk. Fix 1945347: Drinking from fountans 
while Berserk.

--------------------------------------------------------------------------------
a7c16941b7 | j-p-e-g | 2008-04-18 10:50:12 +0000

Fix tiles compile (in a hacky way, since I don't know what the mp/hp bar change 
was really about).
Modify mutations screen for Vampires to allow a toggle to a second page
that lists all those resistances and stuff depending on their blood
level. The screen (designed by David) is really neat, but the underlying 
could stand to be improved, and it might be too large, as well.

Also restrict Sublimation of Blood to Vampires that are at least Full,
and it also makes them a bit more thirsty (since they presumably lose
blood when using it). Dispel Undead only does half damage to Vampires at
Alive, and 66% damage at Full or Very Full.

--------------------------------------------------------------------------------
70eeeeec71 | pauldubois | 2008-04-18 08:01:53 +0000

 A lot of these changes are ASCII only because I can't test in tile;  please 
review and see if you want to un-ifdef TILE any of it.
 - Status lights are squished together
 - Remove one HUD line, so status lights only get two lines (ASCII only).
 - Make HUD a little bit wider, so more status lights fit (ASCII only).
   Add msg_max_height option; undocumented and only used internally
   (for now).
 - Refactor colour bars a little bit:
  - Update when resting (ASCII only)
  - Show recent increase as well as recent loss (ASCII only)
  - Color change for recent increase/loss goes away after a few turns
    (currently 4)

--------------------------------------------------------------------------------
51211c2806 | dolorous | 2008-04-18 06:25:21 +0000

Rename functions to avoid confusion: is_blessable() -> is_convertible(), 
normal2good() -> convert2good().

--------------------------------------------------------------------------------
a1ea029b20 | dolorous | 2008-04-18 06:14:22 +0000

Clean up TSO artefact handling some more, and fix indentation.

--------------------------------------------------------------------------------
f0278d5a9c | dolorous | 2008-04-18 05:56:17 +0000

Simplify TSO artefact gifts further, just in case they're ever expanded beyond 
blessing long swords.

--------------------------------------------------------------------------------
4e05412f06 | dolorous | 2008-04-18 05:51:51 +0000

Simplify TSO randart gift checking.  Also, make sure any randart gifts from 
Lugonu that are weapons get the distortion brand, since it's his associated 
brand, as holy wrath is for TSO.

--------------------------------------------------------------------------------
ac7a6d7ce9 | dolorous | 2008-04-18 02:46:08 +0000

Another comment fix.

--------------------------------------------------------------------------------
0708d540ee | dolorous | 2008-04-18 02:43:54 +0000

Comment fixes.

--------------------------------------------------------------------------------
0a6c72c3e3 | dolorous | 2008-04-18 02:42:15 +0000

Make sure that good gods no longer use retribution on their own followers, as 
before.

--------------------------------------------------------------------------------
f8ea6fa39c | dolorous | 2008-04-18 02:22:49 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
5988d0dbc6 | j-p-e-g | 2008-04-17 22:22:19 +0000

Don't regard a sanctuary as automatically safe anymore once it starts 
shrinking. Also stop resting if you're doing so while standing inside a 
sanctuary that's beginning to shrink.

--------------------------------------------------------------------------------
12de33d2d9 | j-p-e-g | 2008-04-17 21:28:56 +0000

Another modification of autotargetting submerged monsters, based off BR 1935715.
* Targeting a square with a known submerged monster ("strange
  disturbance" description) always enforces '!' rather than '.'
* Submerged monsters only get targetted if there are no other more
  viable targets (dangerous monsters, really) in sight.

The latter uses a heavily modified i_feel_safe() that now draws on
get_playervisible_monsters(), which got numerous new parameters to cover
all possibilities. :p

--------------------------------------------------------------------------------
46c7199d6a | dolorous | 2008-04-17 20:47:15 +0000

Make TSO's "extended stay" blessing result in permanent stays more often.

--------------------------------------------------------------------------------
0365f35f6b | dploog | 2008-04-17 19:56:00 +0000

Comment out kills.lua in init.txt. (Darshan)

--------------------------------------------------------------------------------
dbe560c447 | dolorous | 2008-04-17 19:44:37 +0000

If a player's beam doesn't damage good neutral monsters, don't annoy them, for 
consistency with friendly monsters.

--------------------------------------------------------------------------------
6c3a1b0e72 | dolorous | 2008-04-17 19:33:32 +0000

Add minor beam cleanups.

--------------------------------------------------------------------------------
b2808c36e0 | dolorous | 2008-04-17 18:36:59 +0000

For TSO artefact gifts, put checks against negative accuracy and damage back in 
for now.

--------------------------------------------------------------------------------
f1b8a180dc | dolorous | 2008-04-17 18:07:46 +0000

Revert quarterstaves' damage and accuracy to pre-4.1 values: 7, +6.

--------------------------------------------------------------------------------
8b996888e5 | dolorous | 2008-04-17 17:42:01 +0000

Don't allow randart gifts from good gods to have the RAP_CURSED property, as, 
according to comments in unrand.h, they tend to recurse themselves, and if the 
Scythe of Curses is considered unholy for doing the same, then it's 
inconsistent.

--------------------------------------------------------------------------------
da621d89cd | dolorous | 2008-04-17 17:37:24 +0000

Clean up TSO's weapon blessing again.

--------------------------------------------------------------------------------
4e1dc59551 | dolorous | 2008-04-17 17:22:26 +0000

Still another comment fix.

--------------------------------------------------------------------------------
a89ffb687d | dolorous | 2008-04-17 17:18:19 +0000

More comment fixes.

--------------------------------------------------------------------------------
f3f610bd6d | dolorous | 2008-04-17 17:15:00 +0000

Fix typo in randart_is_redundant(), so that rings of teleportation are handled 
properly.

--------------------------------------------------------------------------------
89826aa172 | dolorous | 2008-04-17 17:03:19 +0000

Adjust TSO's artefact names yet again.

--------------------------------------------------------------------------------
65cfcdd6b2 | dolorous | 2008-04-17 16:23:07 +0000

Remove now-unneeded include.

--------------------------------------------------------------------------------
c90982998f | dolorous | 2008-04-17 15:49:56 +0000

Comment fix.

--------------------------------------------------------------------------------
bc61291eca | dolorous | 2008-04-17 15:48:58 +0000

Good neutral monsters shouldn't tet you train stealth, since, like friendly 
monsters, they won't attack.

--------------------------------------------------------------------------------
70eb76b49d | dolorous | 2008-04-17 15:46:08 +0000

Yet another comment fix.

--------------------------------------------------------------------------------
a9c5e548db | dolorous | 2008-04-17 15:45:33 +0000

Another comment fix.

--------------------------------------------------------------------------------
63e43bcd62 | dolorous | 2008-04-17 15:41:30 +0000

Comment fix.

--------------------------------------------------------------------------------
5908376f8d | dolorous | 2008-04-17 15:38:22 +0000

Adjust TSO artefact names again.

--------------------------------------------------------------------------------
15996d8d87 | dolorous | 2008-04-17 15:30:21 +0000

Fix one last TSO randart issue.

--------------------------------------------------------------------------------
6831e83e17 | dolorous | 2008-04-17 15:27:00 +0000

Don't affect accuracy or damage in TSO artefacts, either, since those don't 
change from the non-randart version.

--------------------------------------------------------------------------------
ebdcea834b | dolorous | 2008-04-17 15:24:06 +0000

And fix a few more.

--------------------------------------------------------------------------------
84fe89bdc4 | dolorous | 2008-04-17 15:06:04 +0000

Fix some inappropriate entries for TSO's artefact weapons (oops).

--------------------------------------------------------------------------------
e87b5a4811 | dolorous | 2008-04-17 14:52:47 +0000

Refine TSO's artefact weapons by filtering out all negative effects except 
negative stealth.

--------------------------------------------------------------------------------
d7bfe4767e | j-p-e-g | 2008-04-17 14:08:02 +0000

A small correction and some whitespace changes in the options guide.

--------------------------------------------------------------------------------
f54eef3090 | j-p-e-g | 2008-04-17 13:47:08 +0000

Document the new option, menu_colour specific to pickup menus.

--------------------------------------------------------------------------------
f672c6472d | j-p-e-g | 2008-04-17 13:43:42 +0000

Allow specific colouring of pickup menu (as opposed to general inventory). To 
do so, use "pickup:colour:pattern".

--------------------------------------------------------------------------------
7a0cf4fa05 | j-p-e-g | 2008-04-17 12:35:36 +0000

Fix 1931767: sort_menus not working for pickup menu
FR 1943597: Auto-inscribe god gifts with {god gift} including 
            Xom gifts. These inscriptions do not (yet?) get
            cleared when the item is identified. Also, if it's
            not yet possible, menu_colour should work for the
            pickup menu, and init.txt should include a line
            colouring "god gift".

--------------------------------------------------------------------------------
ab86f8464e | j-p-e-g | 2008-04-17 11:33:08 +0000

--------------------------------------------------------------------------------
7a59ae1d8c | dolorous | 2008-04-17 02:12:28 +0000

And adjust it once again.

--------------------------------------------------------------------------------
79dfff393d | dolorous | 2008-04-17 02:08:19 +0000

And adjust it yet one more time.

--------------------------------------------------------------------------------
1e278bf77c | dolorous | 2008-04-17 01:57:18 +0000

And adjust them one more time.

--------------------------------------------------------------------------------
a03a2c92af | dolorous | 2008-04-17 01:44:38 +0000

Adjust the names for TSO's artefact gifts again.

--------------------------------------------------------------------------------
c7772e5bb9 | dolorous | 2008-04-17 01:28:12 +0000

Comment fixes.

--------------------------------------------------------------------------------
042770c4da | dolorous | 2008-04-17 01:23:31 +0000

Remove the prohibition on mutagenic TSO gifts, as it really doesn't fir the 
theme, and fix a comment.

--------------------------------------------------------------------------------
2b77a49fb9 | dolorous | 2008-04-16 23:44:59 +0000

Make sure that when TSO makes your wielded weapon an artefact, any stat drains 
it gets don't kill you.  This is somewhat of a hack, but there doesn't seem to 
be a better way right now.

--------------------------------------------------------------------------------
e87a77a5d9 | j-p-e-g | 2008-04-16 23:25:05 +0000

Update change log on latest changes.

--------------------------------------------------------------------------------
e5333083bd | dolorous | 2008-04-16 23:03:47 +0000

Add weapon blessing-related cleanups.

--------------------------------------------------------------------------------
adf985cc8e | dolorous | 2008-04-16 22:41:40 +0000

Allow TSO to bless non-artefact blessed weapons, if the player ever finds one.

--------------------------------------------------------------------------------
847752c849 | j-p-e-g | 2008-04-16 22:40:45 +0000

Change vampire mutation system to be more dynamic.   * Alive    : full 
mutations effects, always mutate.   * Very Full: mutations up to level 2, 
mutation chance 66%   * Full     : mutations up to level 2, mutation chance 50% 
  * Satiated : mutations at level 1, mutation chance 33%, else rotting   * 
Thirsty or worse: only physical and innate mutations, never mutate.
The '%' screen only lists the mutations that are currently active, at 
the level they are currently active. Conversely, the 'A' screen shows 
them greyed out and with their full description in brackets if they 
are completely inactive, or else greyed out with the description for
the currently active level, if not fully active.

Might still be buggy, thus needs testing.

Also clean up mutation listing on '%' screen to use comma_separated_line
rather than all those manual checks for needed commas.

--------------------------------------------------------------------------------
c3eff4baab | dolorous | 2008-04-16 22:07:48 +0000

Don't allow weapons converted by TSO to be racial anymore.

--------------------------------------------------------------------------------
f8f47fa7b0 | dolorous | 2008-04-16 21:56:57 +0000

Add spacing fix.

--------------------------------------------------------------------------------
8bc30c8e72 | dolorous | 2008-04-16 21:48:28 +0000

Fix [1944356]: randart_is_redundant() now uses the correct property for rings 
of see invisible.

--------------------------------------------------------------------------------
3212023d7c | dolorous | 2008-04-16 21:40:40 +0000

Comment fix.

--------------------------------------------------------------------------------
0bdd85e800 | dolorous | 2008-04-16 20:54:21 +0000

When blessing a weapon, call burden_change(), in case the weapon's weight 
changes, or its becoming an artefact affects the player's strength.

--------------------------------------------------------------------------------
ce65c3cd4d | dolorous | 2008-04-16 20:49:10 +0000

Don't give TSO's gifts the mutagenic property, either, as mutation might give 
you teleportitis or poison-spitting ability.

--------------------------------------------------------------------------------
960e5573fe | dolorous | 2008-04-16 20:04:14 +0000

Add more in-theme restrictions to TSO's artefact gifts.

--------------------------------------------------------------------------------
a579d440ec | dolorous | 2008-04-16 19:34:01 +0000

Don't let TSO's gifts increase stealth or cause random teleportation, either, 
in keeping with the "honorable combat" theme.

--------------------------------------------------------------------------------
4266c77e79 | dolorous | 2008-04-16 18:55:15 +0000

Properly outsource names for TSO's blessed weapon artefacts.

--------------------------------------------------------------------------------
99faf9bb2e | dolorous | 2008-04-16 18:46:30 +0000

Add missing newline.

--------------------------------------------------------------------------------
9d59f9c7fd | dolorous | 2008-04-16 18:19:58 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
d90a2c7adc | dolorous | 2008-04-16 18:15:47 +0000

Fix TSO's artefact weapon blessing.  A blessed weapon will now be marked as a 
gift from him, gifts from him will always be of holy wrath and never poisoned, 
and make_item_randart() will now check for appropriateness of god gifts.

--------------------------------------------------------------------------------
4fb4c7cba1 | dolorous | 2008-04-16 17:21:22 +0000

Disable acquirement of blessed weapons, unless you somehow get them from TSO 
(currently not possible, but just making sure).

--------------------------------------------------------------------------------
fc2d149b39 | dolorous | 2008-04-16 17:12:00 +0000

Clean up TSO's weapon blessing, and give all blessed weapons the title "of 
[player name]".  The randartization isn't working as expected, so, until it can 
be fixed, give the blessed blades random properties for now, just like other 
artefacts.

--------------------------------------------------------------------------------
54a744df62 | j-p-e-g | 2008-04-16 16:04:02 +0000

Disallow the Staff of Wucad Mu as a Trog gift. And another of those code 
cleanups.

--------------------------------------------------------------------------------
173858bc35 | dolorous | 2008-04-16 15:20:16 +0000

Long blades blessed by TSO now become artefact blessed blades (without the 
randomized effects).  There should probably be some restrictions on the randart 
name eventually, so you don't end up with e.g. "the +1 blessed blade of 
Atheism".

--------------------------------------------------------------------------------
bf6b4b21cc | j-p-e-g | 2008-04-16 15:04:59 +0000

Fix 1933066: Ghosts not being poison resistant.
Fix part of 1940994: Identify scrolls now get properly identified if
applied on an unID'd item right away, so that if you get more rounds 
it isn't offered to you *again*.

--------------------------------------------------------------------------------
1f328a8c32 | j-p-e-g | 2008-04-16 14:04:41 +0000

Fix compile, a few minor changes (mostly commenting), and fix 1856365: 
wandering mushrooms "turns to fight".

--------------------------------------------------------------------------------
1a6c94ae92 | j-p-e-g | 2008-04-16 13:33:32 +0000

Fix 1943303: Prevention of barding generation in monsters equipment.
And while I was at it... improved monster pickup handling.
* Ranged spellcasters won't pick up missiles anymore (except throwing nets).
* Allow monsters with behaviour != BEH_WANDER to pick up items again.
  (Restricted to scrolls, potions, wands and weapons, since these could be 
  useful in a fight.)
* Restrict monster pickup to items they may actually use (3 types of
  scrolls, six types of potions), though they may still pick up all types 
  of wands, if only to annoy the player.

As before, pickup only takes place if a monster happens to be on a square 
with items and only the top items of stashes are checked - monsters won't
make a beeline for items or search stashes for goodies.
Also, neutrals and friendlies still won't pick up anything at all; this might 
have to be changed. 

Unrelated: fixed an ASSERT for divine retribution during penance.

--------------------------------------------------------------------------------
3c8efd591c | j-p-e-g | 2008-04-16 07:51:57 +0000

Fix 1895579: Uniques dropping their specific artefacts.
Asmodeus now won't drop the Sceptre, Dispater not the Staff, and Cerebov
will also keep his Sword.

Also, monsters will only pick up potions if they can use them, i.e. only
vampires drink blood, and undead and non-living can't use !healing.

--------------------------------------------------------------------------------
59eb3c3f32 | dolorous | 2008-04-16 01:29:47 +0000

Let TSO's weapon blessing for players work on weapons that have the holy wrath 
brand, and which can be in a blessed form but aren't.

--------------------------------------------------------------------------------
851431b610 | dolorous | 2008-04-15 21:29:35 +0000

Comment fix.

--------------------------------------------------------------------------------
7cebdc5c64 | dolorous | 2008-04-15 21:26:14 +0000

Make daevas get long swords of holy wrath again, to avoid confusion.

--------------------------------------------------------------------------------
1682e7b0ab | dolorous | 2008-04-15 21:05:49 +0000

Let TSO's weapon blessing for the player create blessed variants of all long 
blades, not just demon blades.

--------------------------------------------------------------------------------
d010034da6 | dolorous | 2008-04-15 20:51:40 +0000

Comment fix.

--------------------------------------------------------------------------------
32da929a4b | dolorous | 2008-04-15 20:45:21 +0000

Add more weapon blessing cleanups for TSO.

--------------------------------------------------------------------------------
0a22591e3b | dolorous | 2008-04-15 18:45:41 +0000

Let TSO's "holy attack power" blessing for followers turn demon blades into 
scimitars again.  The corresponding blessing for players will still turn them 
into blessed blades.

--------------------------------------------------------------------------------
400f2b68e5 | j-p-e-g | 2008-04-15 18:40:14 +0000

Allow vampires to mutate when Satiated or higher, and make non-physical 
mutations only apply at these hunger levels, too.
Differentiated mutations into physical (affecting a character's
appearance and stuff: scales, hooves, wings, ...) and internal 
(resistances etc.). I guess this is what people usually refer to as 
"cosmetic", which I think is an inaccurate description since it makes 
it sound like they were completely superficial and had no real effect.

Here's a list of arbitrarily chosen "physical" mutations:
 * tough skin, all scales, and fur
 * strong/clever/agile, and weak/dopey/clumsy
 * deformed
 * strong but stiff, and flexible but weak
 * frail, and robust
 * claws, fangs, hooves, talons, and horns
 * stinger, wings
 * blue/green marks

Mutations currently not applying are still listed on the 'A' screen,
though in darkgrey and in (brackets).

--------------------------------------------------------------------------------
2b03b7a4ab | dploog | 2008-04-15 17:12:34 +0000

Updated Spellcasting description.

--------------------------------------------------------------------------------
cc137f4b22 | j-p-e-g | 2008-04-15 15:26:57 +0000

Another code cleanup.

--------------------------------------------------------------------------------
8b6107e382 | j-p-e-g | 2008-04-15 13:43:36 +0000

Vampire "eating" interface: Only offer corpses (inventory or floor) that 
actually contain blood.

--------------------------------------------------------------------------------
961af9991a | j-p-e-g | 2008-04-15 13:17:04 +0000

Another one of those pesky spacing changes. One of these days Crawl *will* win 
the Cleanest Code Championship, just you wait... :p

--------------------------------------------------------------------------------
83a88e5198 | pauldubois | 2008-04-15 09:37:12 +0000

Hm.  Remove outdated comment.

--------------------------------------------------------------------------------
a2c0dbfcc9 | pauldubois | 2008-04-15 09:35:43 +0000

Don't bottom-justify list, since we've decided not to try to share the status 
indicator space with the monster list.

--------------------------------------------------------------------------------
81c14da4f7 | pauldubois | 2008-04-15 09:29:01 +0000

fix

--------------------------------------------------------------------------------
bf7c206ba9 | j-p-e-g | 2008-04-15 09:01:40 +0000

Fix a wizmode bug where placing an altar to your current god would attempt you 
to "re-join" your own religion and subsequently crash.
Also, reintroduce debugging check for blood potion descriptions that I'd 
accidentally removed, and rename static methods in religion.cc.

--------------------------------------------------------------------------------
fd53b2e9da | pauldubois | 2008-04-15 09:01:37 +0000

Fix 1942290

--------------------------------------------------------------------------------
b3878ade17 | j-p-e-g | 2008-04-15 07:53:58 +0000

Disallow monster vampires to drain monsters (and the player) if they have no 
blood - and yes, this means that using the right Transformation can help you 
avoid this. Also, never drain player vampires.
Occasionally equip monster vampires with potions of blood, which they
drink in times of emergency with a healing effect between !healing and
!heal wounds.

Don't allow the player to use the Bat Form transformation (or end said
transformation) if doing so would result in death by stat loss.

--------------------------------------------------------------------------------
cb371dc5d4 | j-p-e-g | 2008-04-14 23:15:33 +0000

Bug 1941782: Allow vampires to learn spells such as Berserk and              
Transmigrations, but let them only cast them while full or more.              
(Once satiated is reached, they automatically time out.)
Bug 1941885: Don't give vampires nutrition from quaffing non-blood potions.

--------------------------------------------------------------------------------
a262178eef | j-p-e-g | 2008-04-14 22:16:18 +0000

Apply patch 1888160: Missing langinfo.h for UNICODE

--------------------------------------------------------------------------------
39f1638a06 | j-p-e-g | 2008-04-14 22:04:34 +0000

Apply Horst von Brand's (first) patch 1887488: gcc-4.3 compile failures.
I'm not sure what to do about the rest of that tracker item.

--------------------------------------------------------------------------------
1c7787b17c | dolorous | 2008-04-14 19:06:54 +0000

Fix [1942327]: TSO's halo now colors undiscovered trap squares yellow.

--------------------------------------------------------------------------------
7d50ba0472 | j-p-e-g | 2008-04-14 18:09:59 +0000

Add a description for bazaars (the same one is used twice, sorry) and a quote 
for labyrinths.

--------------------------------------------------------------------------------
f82fa3e502 | j-p-e-g | 2008-04-14 16:58:02 +0000

Fix 1941744: lava snake "bursts forth from the water"

--------------------------------------------------------------------------------
366c06789d | j-p-e-g | 2008-04-14 16:44:22 +0000

Fix compile (oops) and numerous whitespace changes.

--------------------------------------------------------------------------------
bbbd701b88 | j-p-e-g | 2008-04-14 16:33:14 +0000

Overhaul blood potions to work completely differently.
Instead of storing age in item.special they now use a dynamic vector
(item.props, like decks do), so that a stack of potions doesn't have
to coagulate all at once. 

Rather than counting down the timers every 20 turns or so, the time-out
turn is calculated at creation, and comparison is done against the 
current turncount. Any action changing a stack (quaffing, firing, 
Evaporate, picking up, dropping) will always extract the oldest values 
from the vector, which is likely to be what the player wants.

Blood potions now last about 2000 turns (a bit more if drawn from fresh 
corpses), and coagulate 500 turns before rotting away.

I ran a lot of tests in wiz mode and out, but of course there may still
be problems. I've added methods to calculate the new timers from old
style age counters (item.special), but I'm not sure that they actually 
work... Oh well... if worst comes to worst, this commit breaks saves.

Also:
* vampires are not susceptible to fire anymore when Bloodless
* make tile_plant_colour also apply for remembered plants out of LOS
* fix 1941759: buggy orc dialogue

--------------------------------------------------------------------------------
94ceb87517 | pauldubois | 2008-04-14 07:35:39 +0000

Quiver work:  + bug: if wield sling and no quiver, then pick up stones: should 
quiver  + implement: save and load (does not break saves)  + remove: 
fire_quiver_best  + remove: you.quiver  + bug: identifying items doesn't update 
quiver properly  + rename: you.quiver_change -> you.redraw_quiver  + test no 
item because of =f

--------------------------------------------------------------------------------
bfeb59ed40 | dolorous | 2008-04-14 01:35:39 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
3fa423a7e3 | dolorous | 2008-04-14 01:33:19 +0000

Make TSO's blessing turn demon blades turn into blessed blades again, for now.

--------------------------------------------------------------------------------
8947c0ad81 | dolorous | 2008-04-14 01:11:22 +0000

Let TSO's blessings properly convert demonic weapons into non-demonic weapons.  
Note that demon blades now become scimitars.  This will be improved later.

--------------------------------------------------------------------------------
bfa3bf4326 | dolorous | 2008-04-13 20:01:47 +0000

Clarify comment.

--------------------------------------------------------------------------------
2a707a9402 | dolorous | 2008-04-13 19:49:40 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
111f3fe341 | peterb12 | 2008-04-13 14:42:45 +0000

Stray non-ascii.  oops.

--------------------------------------------------------------------------------
ea1739b75f | j-p-e-g | 2008-04-13 14:32:49 +0000

Fix 1940883: Change "tooltip" information to new key settings.

--------------------------------------------------------------------------------
a347741c87 | dolorous | 2008-04-12 17:56:16 +0000

fix [1939903]: Attacking a friendly god gift, and having it disappear as a 
result, effectively kills it.  Dead monsters can't be checked to see if TSO 
doesn't mind stabbing them (due to the monster holiness check), and can't have 
an associated stabbing message (due to the monster type check).

--------------------------------------------------------------------------------
2080c329b7 | dolorous | 2008-04-12 17:19:38 +0000

Clean up stabbing checks a bit.

--------------------------------------------------------------------------------
334ab1be49 | dolorous | 2008-04-12 16:19:39 +0000

Comment fix.

--------------------------------------------------------------------------------
8a3a554e04 | dolorous | 2008-04-12 16:18:52 +0000

And make holy beings' conversion on sight turn them "good neutral".

--------------------------------------------------------------------------------
6486efa458 | dolorous | 2008-04-12 15:53:51 +0000

Make mons_neutral() properly account for the good neutral attitude.

--------------------------------------------------------------------------------
dc915b20df | dolorous | 2008-04-12 15:52:40 +0000

Make good neutral an actual monster attitude, as it's cleaner that way.

--------------------------------------------------------------------------------
8a9fb99b8d | dolorous | 2008-04-12 15:27:19 +0000

Comment fix again.

--------------------------------------------------------------------------------
cdef52a16c | dolorous | 2008-04-12 15:20:46 +0000

Comment fix.

--------------------------------------------------------------------------------
204b127021 | dolorous | 2008-04-12 15:14:43 +0000

Make sure the friendly monsters and good neutral monsters normally won't attack 
each other.

--------------------------------------------------------------------------------
81e03982e3 | peterb12 | 2008-04-12 12:50:52 +0000

Dagger, long sword, strawberry.  Formatting fixes.

--------------------------------------------------------------------------------
c1f01b7516 | peterb12 | 2008-04-12 12:26:42 +0000

Skulls, and various formatting fixes.

--------------------------------------------------------------------------------
146832a42f | dolorous | 2008-04-12 03:19:04 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
413dcfb5f9 | dolorous | 2008-04-12 00:57:47 +0000

Make sure good neutral monsters are unaffected by sanctuaries, since they won't 
attack.

--------------------------------------------------------------------------------
30186305f9 | dolorous | 2008-04-12 00:40:05 +0000

Make holy monsters resist cleansing flame.

--------------------------------------------------------------------------------
8a0833d123 | dolorous | 2008-04-11 23:56:55 +0000

Be paranoid, and check for TSO worshippers' followers' not being evil or unholy.

--------------------------------------------------------------------------------
e2af2ff4f4 | dolorous | 2008-04-11 23:53:54 +0000

Adjust cleansing flame damage.  It's now consistent between the player and 
monsters; it now damages non-evil and non-unholy monsters (but only at a 50% 
rate); and, if you worship a good god, your followers resist it.

--------------------------------------------------------------------------------
5a90add210 | dploog | 2008-04-11 23:44:12 +0000

Review of entry.des. Added one of stones/darts or downstairs/hatches to 
problematic entries (large rooms with a single exit and no features). Shout if 
this is too much handholding. Addresses FR 1929923.

--------------------------------------------------------------------------------
5b0e22ec0f | dolorous | 2008-04-11 22:33:32 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
1de80740f8 | dolorous | 2008-04-11 22:31:44 +0000

Revert previous change, as it's erroneous; only evil god worshippers feel TSO's 
wrath.

--------------------------------------------------------------------------------
4635b0cc39 | dolorous | 2008-04-11 22:14:39 +0000

Make players who worship non-good gods vulnerable to cleansing flame. Note that 
neutral god worshippers should currently only be blasted with it if they draw 
the Wrath card.

--------------------------------------------------------------------------------
9c12ec909c | dolorous | 2008-04-11 19:21:35 +0000

Replace previous reference to "lightgrey" with "hi:lightgrey", as it isn't a 
valid highlight otherwise (oops).

--------------------------------------------------------------------------------
7b286a7feb | j-p-e-g | 2008-04-11 15:01:08 +0000

FR 1938146: Suppress red colouring for blood spattered stairs.
And some more white space changes.

--------------------------------------------------------------------------------
7c9f8a4d75 | pauldubois | 2008-04-11 12:05:36 +0000

Change to look more like "nothing wielded"

--------------------------------------------------------------------------------
4d2b55d169 | j-p-e-g | 2008-04-11 11:30:01 +0000

A number of whitespace changes. Linux makes this soooo easy. :P

--------------------------------------------------------------------------------
7896dbd29b | j-p-e-g | 2008-04-11 11:23:33 +0000

Fix 1937869: Have weapon swapping respect spells the character knows            
  and allow wielding the appropriate items, e.g. arrows for 	     Sticks to 
Snakes etc. 	     Use the same rules for clicking on items in Tiles.
Also add yet another minimap colour option, this time for plants (really
zero xp monsters in general) since I became tired of plant-rich vaults 
showing up in bright red colours.

--------------------------------------------------------------------------------
0fe8afdd2c | dolorous | 2008-04-11 11:17:47 +0000

Replace reference to "hi:grey" with "lightgrey", as the former isn't a valid 
color.

--------------------------------------------------------------------------------
c6b8dd2636 | pauldubois | 2008-04-11 11:15:37 +0000

avoid a couple divide by zeroes so cheaters don't crash when "winning"

--------------------------------------------------------------------------------
def788821d | pauldubois | 2008-04-11 11:09:16 +0000

1936718

--------------------------------------------------------------------------------
a0065e7a7d | pauldubois | 2008-04-11 10:55:40 +0000

 + allocate and initialize  + _fire_prompt_for_item returns -1, not ENDOFPACK  
+ remove _fire_get_noitem_reason()  + remove get_current_fire_item()  + fix 
get_next_fire_item  + remove _get_fire_order()  + remove _fire_item_matches()  
+ verify: no use of ENDOFPACK, use -1  + on_item_fired  - implement: tags stuff 
 + bug: wielding sling with stones = empty quiver  - bug: wield sling, no 
quiver, pick up stones: should quiver  + bug: wield sling, pick up stones: 
update # stones  + bug: wield sling, stones quivered, drop stones: should 
update  - feature: explicitly dropping all of ammo stack should remove it from 
quiver  - move get_next_fire_item into quiver.cc?  - remove: fire_quiver_best  
- remove: you.quiver  - rename: you.quiver_change -> you.redraw_quiver  - test 
no item because of fire_order_begin, =f, etc  - find better place for 
on_weapon_changed  - polish Qv: display, the command change  - PROBLEM: 
cast_portal_projectile uses empty quiver slot? (test this)

--------------------------------------------------------------------------------
172fd76cad | pauldubois | 2008-04-11 10:53:20 +0000

redraw overview from scratch after viewing item. also contains a bunch of other 
changes for the quiver

--------------------------------------------------------------------------------
d0130f07f4 | dploog | 2008-04-11 10:37:43 +0000

Updated CREDITS. Changed neutral branding to grey in init.txt (experimental). 
Allowed inscribing from the % screen (Paul). Ideally, that screen would be 
automatically updated afterwards.

--------------------------------------------------------------------------------
2f49ef5b76 | pauldubois | 2008-04-11 09:05:54 +0000

put club in default fire_order

--------------------------------------------------------------------------------
7fc4246704 | dolorous | 2008-04-11 05:16:15 +0000

Add more blessing adjustments, which should make TSO's "friendliness" and 
"extended stay" blessings a bit more common.

--------------------------------------------------------------------------------
7fded5e308 | dolorous | 2008-04-11 00:50:35 +0000

Clean up TSO's follower blessings a bit.

--------------------------------------------------------------------------------
a416267af3 | haranp | 2008-04-11 00:31:31 +0000

Nemelex penance goes down to 1 (sorear.)

--------------------------------------------------------------------------------
90edb37d54 | j-p-e-g | 2008-04-11 00:16:41 +0000

Fix 1936711: Portals not disappearing properly.
These portals to bazaars now leave an empty stone arch behind, just like 
I've always envisioned it. :)
(Labyrinths still disappear completely.)

--------------------------------------------------------------------------------
3bb3030a17 | dolorous | 2008-04-10 23:45:19 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
d9c89917da | dolorous | 2008-04-10 23:44:51 +0000

Add minor cleanup.

--------------------------------------------------------------------------------
a29e9c332e | dolorous | 2008-04-10 22:16:48 +0000

In heal_monster(), add an upper limit to HP growth.

--------------------------------------------------------------------------------
88f7778a5f | dolorous | 2008-04-10 17:55:41 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
9d879dbda0 | j-p-e-g | 2008-04-10 17:42:55 +0000

Some whitespace changes.

--------------------------------------------------------------------------------
1beb0abbfd | j-p-e-g | 2008-04-10 17:38:27 +0000

Some more Stealth changes. (1) Use diminishing returns for passive training 
depending on skill level.     Below skill level 2, chances are unchanged; at 
level 2 chances are 2/3     of that, and at level 3 at 1/3. From level 4 
onwards, Stealth cannot be     trained by waiting anymore.
(2) Active stealth training only has a 1% chance (instead of 5%) if you're
    sneaking around monsters while invisible (and the monster cannot see you).

Add yet another function for blood potions - I sure hope this works when I 
eventually get around to actually use them.

--------------------------------------------------------------------------------
e5d9773c54 | dolorous | 2008-04-10 17:04:36 +0000

When blessing followers, account for when HP-boosting healing fails.

--------------------------------------------------------------------------------
95ce531af9 | dolorous | 2008-04-10 15:40:23 +0000

Fix [1939288]: Don't display the "fails to return" message if you throw a 
weapon of returning, it doesn't return, and you don't know that it's a weapon 
of returning.

--------------------------------------------------------------------------------
c429af832b | dolorous | 2008-04-10 14:35:48 +0000

Make TSO's halo only color empty floor squares yellow.

--------------------------------------------------------------------------------
2d1437acc3 | dshaligram | 2008-04-10 14:14:50 +0000

Level-builder was treating secret doors as walls when considering isolated 
regions, fixed.

--------------------------------------------------------------------------------
1016e230e2 | dolorous | 2008-04-10 13:33:28 +0000

Improve priests' starting weapons.  Halflings and kobolds get +1/+1 knives, 
elves and merfolk get quarterstaves, and everyone else gets maces as before.  
Update the manual to account for this, as well.

--------------------------------------------------------------------------------
012b7b841d | dploog | 2008-04-10 08:36:20 +0000

Added grounding to the description of the staff of air.

--------------------------------------------------------------------------------
9f907236f2 | dploog | 2008-04-10 08:25:59 +0000

Repaired reptile_caves.

--------------------------------------------------------------------------------
f978e4bc33 | dshaligram | 2008-04-10 00:36:27 +0000

Added fix for ndbm.h check breaking compile on SuSE to makefile.x11 (jpeg).

--------------------------------------------------------------------------------
a1d6cda4bb | dshaligram | 2008-04-10 00:24:08 +0000

The level-builder now enforces the constraint that every contiguous region on a 
level must include at least one stair (ekiM). This guarantee does not apply to 
areas inside vaults (the builder assumes vault-designers are sane) and does not 
apply to certain branches (Swamp, Shoals, the branches of Hell), or the 
non-Dungeon areas (Abyss, Pan, Bazaars).

--------------------------------------------------------------------------------
db37e2e9b8 | peterb12 | 2008-04-10 00:07:39 +0000

Trolls

--------------------------------------------------------------------------------
ea075113e3 | peterb12 | 2008-04-09 23:39:36 +0000

Dragon, fish.

--------------------------------------------------------------------------------
1b0df3f33f | dolorous | 2008-04-09 17:43:01 +0000

Make mons_looks_stabbable() account for monsters caught in nets.

--------------------------------------------------------------------------------
8bccea39e3 | dolorous | 2008-04-09 17:36:01 +0000

Add one more whitespace fix.

--------------------------------------------------------------------------------
9a8d9e5f2d | dolorous | 2008-04-09 17:26:44 +0000

Add cosmetic fixes.

--------------------------------------------------------------------------------
a56283995b | dolorous | 2008-04-09 17:22:10 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
3a8c422258 | dolorous | 2008-04-09 14:41:39 +0000

Fix [1867328]: Attacking a monster trapped in a net now counts as stabbing.

--------------------------------------------------------------------------------
9ea95681bd | pauldubois | 2008-04-09 08:08:51 +0000

Freshly-rewritten quiver code.  This is just a checkpoint, and it's used from 
anywhere yet.  It should compile.  Let me know if it doesn't, or if I've 
modified the makefiles incorrectly.

--------------------------------------------------------------------------------
26f9ceaeb4 | dolorous | 2008-04-09 06:59:48 +0000

Add assert to ensure that the previous logic bug doesn't show up again.

--------------------------------------------------------------------------------
0fb444d6dd | dolorous | 2008-04-09 06:46:33 +0000

Fix logic bug keeping retribution from working properly (oops).

--------------------------------------------------------------------------------
b1eec86604 | dolorous | 2008-04-09 06:30:56 +0000

Tweak the "noisy" messages for Zin and TSO retribution, in case you get them 
via the Wrath card and have never worshipped them before.

--------------------------------------------------------------------------------
11e1dd5caa | dolorous | 2008-04-09 05:50:33 +0000

Clean up Lugonu's retribution a bit.  Remove the reference to casting you 
*back* into the Abyss, in case you e.g. got an altar to Lugonu via the Trowel 
card and have never been to the Abyss before.

--------------------------------------------------------------------------------
75dcaf5946 | dolorous | 2008-04-09 00:29:52 +0000

Add minor documentation fixes.

--------------------------------------------------------------------------------
88c3d55edb | dolorous | 2008-04-08 23:13:47 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
c5a784f95e | dolorous | 2008-04-08 23:06:44 +0000

Put back orange rats' being banned from "Summon Small Mammals" for good god 
worshippers, as there's no better way to do it for now.  This also fixes 
[1938105].

--------------------------------------------------------------------------------
74fa4529ab | dolorous | 2008-04-08 23:05:15 +0000

Add another whitespace fix.

--------------------------------------------------------------------------------
c8e6f3b078 | dolorous | 2008-04-08 22:13:43 +0000

Make Elyvilon's healing of monsters consistent in the same way.

--------------------------------------------------------------------------------
85d53ad6b8 | dolorous | 2008-04-08 21:58:39 +0000

For consistency with Zin's Recite, allow Elyvilon's healing to work on undead 
and demonic monsters (although not as often).

--------------------------------------------------------------------------------
97e171351b | dolorous | 2008-04-08 21:44:54 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
96978ec986 | dolorous | 2008-04-08 20:34:37 +0000

Add one more cosmetic fix.

--------------------------------------------------------------------------------
d682873654 | dolorous | 2008-04-08 20:31:22 +0000

Comment fix.

--------------------------------------------------------------------------------
4f0408f369 | dolorous | 2008-04-08 20:30:16 +0000

Adjust Elyvilon's last sacrifice message again.

--------------------------------------------------------------------------------
749142d0d7 | dolorous | 2008-04-08 20:25:50 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
c27edb4bdb | dolorous | 2008-04-08 20:20:52 +0000

Adjust Elyvilon's last sacrifice message.

--------------------------------------------------------------------------------
ada361fe58 | dolorous | 2008-04-08 20:16:53 +0000

Clean up Elyvilon's routine for destroying weapons in your inventory.

--------------------------------------------------------------------------------
bd7a1f2e1d | dolorous | 2008-04-08 19:50:54 +0000

Clarify the wording of Elyvilon's description.

--------------------------------------------------------------------------------
da139959d8 | dploog | 2008-04-08 19:09:44 +0000

Updated the descriptions of Nemelex' abilities.

--------------------------------------------------------------------------------
de44513aff | dolorous | 2008-04-08 19:04:50 +0000

And do the same for followers who get TSO's "holy weapon" blessing, as it's 
rare.

--------------------------------------------------------------------------------
cdc50c6ce0 | dolorous | 2008-04-08 18:59:13 +0000

Make TSO's weapon blessing turn all demonic weapons into blessed blades.

--------------------------------------------------------------------------------
1b680d8b04 | dolorous | 2008-04-08 18:35:18 +0000

Fix [1937974]: Wands of teleportation now get as many charges as e.g. wands of 
healing and hasting.

--------------------------------------------------------------------------------
45f4a27f35 | dolorous | 2008-04-08 18:32:28 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
20ed1f17fb | dolorous | 2008-04-08 17:27:22 +0000

Generalize god_hates_your_god() further.

--------------------------------------------------------------------------------
237d92fffc | dolorous | 2008-04-08 17:02:56 +0000

Generalize god_hates_your_god() for use in divine retribution.

--------------------------------------------------------------------------------
44e4e9ae79 | dolorous | 2008-04-08 16:47:52 +0000

Generalize the dedicated butchery description.

--------------------------------------------------------------------------------
e16b370db1 | dolorous | 2008-04-08 16:30:46 +0000

Generalize the holy-word-on-weapon-blessing effect.

--------------------------------------------------------------------------------
140d86fc44 | dolorous | 2008-04-08 16:26:22 +0000

Allow TSO to bless weapons other than long swords.

--------------------------------------------------------------------------------
93fc5eba88 | dolorous | 2008-04-08 15:57:26 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
26ca34c231 | haranp | 2008-04-08 12:49:16 +0000

Added telepathy as a Dowsing effect. Presumably breaks saves.

--------------------------------------------------------------------------------
41afca0d89 | haranp | 2008-04-08 12:31:30 +0000

Helix redone.

--------------------------------------------------------------------------------
c55a9bbb7a | haranp | 2008-04-08 12:14:55 +0000

Remove card penalty for Triple Draw.

--------------------------------------------------------------------------------
4f3558feb5 | haranp | 2008-04-08 12:12:19 +0000

Added Water card. Might need some rebalancing.

--------------------------------------------------------------------------------
06b226a27e | pauldubois | 2008-04-08 08:21:39 +0000

Fix off-by-one in weapon and quiver display A bit of diagnosis for 1933260 
(win32 build doesn't display blank characters with colored backgrounds)

--------------------------------------------------------------------------------
c2828b086f | dolorous | 2008-04-08 03:11:37 +0000

Make attacks on paralyzed monsters count as stabbing.

--------------------------------------------------------------------------------
441574bfa2 | pauldubois | 2008-04-08 02:19:16 +0000

fix sense of the allow_alt_layout option

--------------------------------------------------------------------------------
58e079468b | dolorous | 2008-04-07 23:59:40 +0000

Fix the check for good neutral monsters: they must be permanently neutral as 
well as god gifts.

--------------------------------------------------------------------------------
92b7040d3c | dolorous | 2008-04-07 23:54:00 +0000

Let i_feel_safe() account for good neutral monsters.

--------------------------------------------------------------------------------
c70959d378 | dolorous | 2008-04-07 23:46:26 +0000

Don't let TSO's holy wrath branding for followers' weapons work on artefacts.

--------------------------------------------------------------------------------
3672d89475 | dolorous | 2008-04-07 23:04:11 +0000

For consistency, if a holy being is permanently neutralized via Zin's Recite or 
Elyvilon's healing, run the conversion-on-sight routine so that they don't 
attack you.

--------------------------------------------------------------------------------
0915163a54 | dolorous | 2008-04-07 22:50:11 +0000

More neutrality cleanups.  Holy beings neutralized on sight by your piety will 
not attack you and can swap positions with you.  All other neutral beings 
behave the same as before.

--------------------------------------------------------------------------------
efd814414b | dploog | 2008-04-07 22:44:08 +0000

Manual fixes (sorear).

--------------------------------------------------------------------------------
4f22e9f03a | dolorous | 2008-04-07 21:55:55 +0000

For now, don't differentiate between attacks on permanently neutral monsters 
and temporarily neutral monsters anymore.

--------------------------------------------------------------------------------
1853afa044 | dolorous | 2008-04-07 21:35:54 +0000

Allow neutral god gifts to attack you again, for now.

--------------------------------------------------------------------------------
0eddb03247 | dolorous | 2008-04-07 21:33:24 +0000

Remove now-unused function.

--------------------------------------------------------------------------------
120916d6e4 | dolorous | 2008-04-07 21:32:29 +0000

Add one more cleanup.

--------------------------------------------------------------------------------
6bf231ce72 | dolorous | 2008-04-07 21:29:55 +0000

Clarify references to swappable monsters.

--------------------------------------------------------------------------------
ff118ee312 | dolorous | 2008-04-07 21:24:45 +0000

Allow the player to swap places with neutral god gifts.

--------------------------------------------------------------------------------
2b695d8b7c | dolorous | 2008-04-07 21:13:35 +0000

Clean up handling of neutral god gifts.

--------------------------------------------------------------------------------
2bc4605e6d | dolorous | 2008-04-07 21:08:26 +0000

Fix compilation.

--------------------------------------------------------------------------------
335b7bdaae | j-p-e-g | 2008-04-07 20:54:43 +0000

Make vampires' metabolism dependant on their hunger state. Add several 
functions for later improved handling of stacks of !blood.

--------------------------------------------------------------------------------
ad684e38fe | dolorous | 2008-04-07 20:21:55 +0000

Increase penance for attacking neutral god gifts, now that they no longer 
attack you if you're in their way.

--------------------------------------------------------------------------------
eda3b268aa | dolorous | 2008-04-07 20:10:51 +0000

Make Zin and TSO, as well as Ely, dislike attacking neutral monsters. Give 
piety loss and penance for TSO and Ely, and penance for Zin.

--------------------------------------------------------------------------------
fdd00fba18 | dolorous | 2008-04-07 20:01:42 +0000

Fix handling of the "attack neutral" conduct to take known attacks into account.

--------------------------------------------------------------------------------
c868227360 | dolorous | 2008-04-07 19:58:27 +0000

Only trigger the "attack neutral" conduct upon attacking neutral god gifts 
(i.e., neutral monsters that don't attack).

--------------------------------------------------------------------------------
d53b2d5bb7 | dolorous | 2008-04-07 19:43:47 +0000

Make sure casting Smite or Airstrike on holy beings will trigger the "attack 
holy" conduct.

--------------------------------------------------------------------------------
a4bc53ca71 | dolorous | 2008-04-07 19:30:36 +0000

Replace the conduct for killing a neutral monster with a conduct for attacking 
a neutral monster.

--------------------------------------------------------------------------------
423211fbca | dolorous | 2008-04-07 17:45:13 +0000

Comment fix.

--------------------------------------------------------------------------------
a45f4a3480 | dploog | 2008-04-07 10:54:16 +0000

Added classic_hud to the very top of init.txt, catering for seasoned players.

--------------------------------------------------------------------------------
3a6ffef13e | dploog | 2008-04-07 10:46:22 +0000

Updated manual for the new hud. Moved Gold to Items section. Didn't bother to 
explain the health/magic bars as they are very intuitive.

--------------------------------------------------------------------------------
4415eefe7b | pauldubois | 2008-04-07 09:49:16 +0000

br 1934467 fix Exp level/pool display. Move turn count to line 2, next to race. 
 Kind of lame, but where can it go?

--------------------------------------------------------------------------------
2cda029b8e | pauldubois | 2008-04-07 09:38:25 +0000

fix up a few places where the bool value was the default, instead of the 
opposite of the default.  Also, fix what looked like a mistake 
(autopickup_no_burden was a bool, but not commented out like the rest of the 
bools; so it was overriding the default, by default)

--------------------------------------------------------------------------------
085d8d3386 | pauldubois | 2008-04-07 09:09:55 +0000

Forgot; this goes with that last checkin

--------------------------------------------------------------------------------
777798f85a | pauldubois | 2008-04-07 09:09:05 +0000

implement [ 1936326 ] monster list should not show plants

--------------------------------------------------------------------------------
f825dafa78 | pauldubois | 2008-04-07 08:57:32 +0000

For FR 1934365 - Allow piety gain messages to contain color info.  If the 
messages contain   <> and </>, these are converted to color tags depending on 
the piety   gain amount.  Sorry David, no random rainbows.
  Only changed Nemelex and Elyvilon messages for now (don't have a lot of time).
  David, you may not like the colors or the color placement; please change it
  if it's bad (see _print_sacrifice_message and _Sacrifice_Messages)

- Elyvilon weapon destruction uses sacrifice messages when destroying weapons.

--------------------------------------------------------------------------------
e8788817e7 | pauldubois | 2008-04-07 08:53:06 +0000

Don't print PPPPPPPPPPPPPPPPPPPPPPP 32 plants limit the number of glyphs to 6 
(kind of arbitrary)

--------------------------------------------------------------------------------
8a70542a47 | pauldubois | 2008-04-07 07:42:30 +0000

For FR 1934370 Add "classic_hud" option.  Defaults to false.  Removes hp bar, 
monster list. Added some macros to reduce copy/paste in initfile.cc. Renamed 
mlist_allow_inline to mlist_allow_alternate_layout so the sense is more 
accurate.

--------------------------------------------------------------------------------
2f63d14e46 | pauldubois | 2008-04-07 06:20:32 +0000

For David.  Menu's draw_title_suffix can now accept a formatted_string instead 
of a string.  See example in StashSearchMenu::draw_title.  If you want 
everything in cyan, you might want to figure out who sets the StashSearchMenu's 
title->color and change that, too.
Added formatted_string::substr().  Lightly tested, seems to work fine.

--------------------------------------------------------------------------------
149c6fb2d9 | dolorous | 2008-04-07 04:52:35 +0000

For consistency, since Zin's Recite can pacify holy beings, let Ely's healing 
have a chance of doing the same.

--------------------------------------------------------------------------------
b681ad7103 | dolorous | 2008-04-07 04:51:18 +0000

Add another whitespace fix.

--------------------------------------------------------------------------------
3a5f8a48f9 | dolorous | 2008-04-07 02:31:44 +0000

One more neutral monster cleanup: Instead of misusing the "half XP" flag, use 
the "god gift" flag.

--------------------------------------------------------------------------------
5f3c065c3e | dolorous | 2008-04-07 01:56:16 +0000

Add still more cosmetic fixes.

--------------------------------------------------------------------------------
b8044fd336 | dolorous | 2008-04-07 01:53:07 +0000

Neutral monster adjustments: monsters made permanently neutral by Zin's Recite 
will give half XP, a la Elyvilon; neutral monsters that have given half XP will 
not attack the player; and holy beings converted on sight by the player's piety 
will have the half XP flag set, even though they don't actually give it (on the 
grounds that they shouldn't be good kills if they turn hostile).

--------------------------------------------------------------------------------
6b01fefe35 | dolorous | 2008-04-07 01:45:09 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ed065735ff | pauldubois | 2008-04-06 21:13:53 +0000

Monster list always inline.

--------------------------------------------------------------------------------
8fb57795e1 | dolorous | 2008-04-06 17:34:24 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
037bed6753 | dolorous | 2008-04-06 17:33:45 +0000

Revert last change, as the new logic's not quite right (oops).

--------------------------------------------------------------------------------
25a6962f17 | dolorous | 2008-04-06 17:30:34 +0000

In monsters::needs_berserk(), clean up the check for the "Berserker Rage" spell.

--------------------------------------------------------------------------------
01957a1da7 | dolorous | 2008-04-06 17:21:03 +0000

Comment fix.

--------------------------------------------------------------------------------
352e1992b4 | dolorous | 2008-04-06 14:58:48 +0000

Apply Josh's monster list bug fix.

--------------------------------------------------------------------------------
80eb89e239 | dolorous | 2008-04-06 02:16:24 +0000

Tweak TSO's "extended stay" blessing again.

--------------------------------------------------------------------------------
c2c47ecf13 | dolorous | 2008-04-05 22:25:42 +0000

Punctuation fix.

--------------------------------------------------------------------------------
b2bce9b8d1 | dploog | 2008-04-05 22:17:50 +0000

Picking up gold now also shows the total amount. Feel free to improve the 
wording. It might be conceivable to not mention the total amount if you start 
at 0 gold but I thought it's too minor to bother. Perhaps more serious: if 
someone uses the option show_turns (which should also show Gold -- does it? and 
which should be renamed!) then printing the total is a bit strange.

--------------------------------------------------------------------------------
1d6a00e6dd | ennewalker | 2008-04-05 15:48:25 +0000

Fixing svn:mime-type on some bitmaps.

--------------------------------------------------------------------------------
fffdff655d | ennewalker | 2008-04-05 15:30:42 +0000

Tiles (un)randart overhaul:
Added missing/new tiles.
Player tiles and item tiles now more consistent with each other.
Unrandarts now more distinct from their mundane counterparts.
Graphics more consistent with descriptions/colors from unrand.h.
Removed more old, ugly, unused tiles.

--------------------------------------------------------------------------------
cb34b42594 | dolorous | 2008-04-05 14:02:22 +0000

Make Beogh's reinforcement blessing rarer, so that you don't get spammed with 
followers.

--------------------------------------------------------------------------------
1a5d9f3661 | haranp | 2008-04-04 19:13:03 +0000

Once you've seen two cards form a deck, you identify it. Triple Draw now loses 
some cards from the deck.

--------------------------------------------------------------------------------
74061dc6c4 | haranp | 2008-04-04 13:17:54 +0000

Helix now has drawbacks: 50% chance of removing an extra mutation; 50% chance 
of adding a mutation. If power is low, this added mutation is likely to be 
harmful.

--------------------------------------------------------------------------------
9f14dc6980 | haranp | 2008-04-04 13:01:06 +0000

Added Flight card to Deck of Emergency. Artefacts yield 2 piety instead of 1.

--------------------------------------------------------------------------------
62b3f417ae | haranp | 2008-04-04 12:17:03 +0000

When Trowel creates an altar, announce the god.

--------------------------------------------------------------------------------
5b08020c58 | pauldubois | 2008-04-04 10:25:43 +0000

On HUD:  Draw player name/race in yellow.  Not great, I think; the rest of the  
HUD draws labels in, yellow and actual content in white, and this  conflicts 
with that.  Remove gold; shrink HUD by one line.  Experience: David's idea  
Experiment: use ===--- for hp/mp bar
On % screen:
 Make spelling and order of AC/Ev/Sh consistent with HUD
 Move gold to below HP/MP so god name is not cut off
 ("The Shining On***" looks awful)

Did not do:
 HP->Health on HUD; currently not enough space for "Health: 123/456 (789)"

--------------------------------------------------------------------------------
dd2b32b746 | peterb12 | 2008-04-04 02:16:11 +0000

Missing divider

--------------------------------------------------------------------------------
8152a4da42 | ennewalker | 2008-04-04 01:41:15 +0000

Adding tile graphic for holy word.

--------------------------------------------------------------------------------
eb966712b8 | peterb12 | 2008-04-04 00:59:38 +0000

New quotes:  Ogres  griffon Moved to prefix-form:  centaur.

--------------------------------------------------------------------------------
a9b3093e59 | peterb12 | 2008-04-04 00:35:32 +0000

New quotes for:  snakes  Antaeus  Killer Klown (sigh.)  Murray  gnoll
Moved to prefix/suffix format for:  rat, kobold

--------------------------------------------------------------------------------
7249f1e4fa | dploog | 2008-04-03 23:32:56 +0000

Shortened the good gods' descriptions.

--------------------------------------------------------------------------------
907f8cbca6 | dolorous | 2008-04-03 22:38:46 +0000

In the manual, mention that bloodless vampires can heal while in bat form.

--------------------------------------------------------------------------------
523b403b9c | dolorous | 2008-04-03 22:09:05 +0000

Add missing period.

--------------------------------------------------------------------------------
a5bfcff0d1 | peterb12 | 2008-04-03 22:04:14 +0000

Remove some stray text that shouldn't have been checked in. New descriptions:  
Cacodemon  Dispater  Tiamat  Geryon  bumblebee  ghoul  human  player ghost  
program bug  A gateway to Hell  A granite statute

--------------------------------------------------------------------------------
b49316f91a | haranp | 2008-04-03 14:40:19 +0000

Nemelex changes: - Renamed abilities, and reordered so that you get Draw One 
before Peek Two - Mark Four and Peek Two now lose some cards from the deck - 
Viewing a deck now shows which cards have been marked in it Also fixed a small 
warning in format.cc.

--------------------------------------------------------------------------------
4f5d24c39a | pauldubois | 2008-04-03 07:50:02 +0000

A little less gaudy.  Was going to make an option to compress MP/HP, but not 
tonight.

--------------------------------------------------------------------------------
30e35359e6 | dolorous | 2008-04-03 05:08:21 +0000

Finally implement halo coloring.  Currently, all areas that you can move over 
will be turned yellow.

--------------------------------------------------------------------------------
fc2076a717 | peterb12 | 2008-04-03 05:01:58 +0000

Descriptions:  pizza, Psyche.

--------------------------------------------------------------------------------
950c40cad2 | ennewalker | 2008-04-03 04:31:35 +0000

Fixing coordinate system bug in _inside_circle.  (in_los_bounds needs to be 
called with view coordinates.)

--------------------------------------------------------------------------------
3dae795394 | ennewalker | 2008-04-03 03:43:49 +0000

Fixing tiles striping issue.

--------------------------------------------------------------------------------
2bbd48bc63 | ennewalker | 2008-04-03 03:17:29 +0000

Fixing tiles compilation error.

--------------------------------------------------------------------------------
c0c1354cb2 | peterb12 | 2008-04-03 02:20:03 +0000

More item descriptions: fruit-flavoured.

--------------------------------------------------------------------------------
cadd06b9d1 | dolorous | 2008-04-03 01:28:21 +0000

Add character set fixes.

--------------------------------------------------------------------------------
4caa057b06 | peterb12 | 2008-04-02 23:50:15 +0000

Now that flex has been updated, we can turn signed comparison warnings back on.

--------------------------------------------------------------------------------
40d7e1f3dc | peterb12 | 2008-04-02 21:43:29 +0000

Missing a period.

--------------------------------------------------------------------------------
a3c82d90dd | peterb12 | 2008-04-02 21:42:23 +0000

Various typos.

--------------------------------------------------------------------------------
1f2163a2e9 | peterb12 | 2008-04-02 21:37:22 +0000

More descriptions.  I was tempted to include the Asmodeus excerpt in its 
original French.

--------------------------------------------------------------------------------
3884a6411e | dshaligram | 2008-04-02 12:40:26 +0000

Update canned lexer + parser.

--------------------------------------------------------------------------------
f115c4b5eb | pauldubois | 2008-04-02 12:17:35 +0000

bottom-justify the monster list

--------------------------------------------------------------------------------
0e6ad00583 | pauldubois | 2008-04-02 12:01:55 +0000

Forgot to fix the turn count

--------------------------------------------------------------------------------
b5f22d6caa | pauldubois | 2008-04-02 11:52:31 +0000

 + Implement most of the suggestions for HUD compression.    Didn't do anything 
with exp as there didn't seem to be consensus.  + Enable the HP/Magic bars in 
non-tile builds; move them a little bit.    I stumbled across these while 
looking into making HP/MP draw on    a single line.  I think it's a nice 
feature; worth at least an    option, if they're not on all the time.  + Fix 
bar-drawing bug (the "reduced" part was not drawing properly)  + Reduce size of 
hud by 2, expand mlist by 2.  Non-tile only; tile    doesn't need the extra 
space and it uses GOTO_STAT for other things.    I don't want to risk making it 
too small.
Not implemented:
 - Monster list renders from the bottom up (tricky)
 - Use only 2 lines for warning lights

--------------------------------------------------------------------------------
f36915f1ca | j-p-e-g | 2008-04-02 08:04:12 +0000

Fix tile compile on Windows. Fix crash when bottling !blood as a vampire.

--------------------------------------------------------------------------------
fda9371e36 | pauldubois | 2008-04-02 05:05:23 +0000

Fix bug caught by MSVC, yay.

--------------------------------------------------------------------------------
4c18aa957d | peterb12 | 2008-04-02 04:16:21 +0000

My kingdom for real italics.

--------------------------------------------------------------------------------
81fef8c5e0 | peterb12 | 2008-04-02 04:10:14 +0000

Son of yet still some more descriptions II:  Electric Boogaloo

--------------------------------------------------------------------------------
ddc513a477 | dolorous | 2008-04-02 01:58:31 +0000

Add cosmetic fixes again.

--------------------------------------------------------------------------------
fb8a00a617 | peterb12 | 2008-04-02 01:42:34 +0000

More descriptions, removing some non-ascii chars.

--------------------------------------------------------------------------------
841caa6fb1 | peterb12 | 2008-04-01 22:32:36 +0000

Info.plist needed.

--------------------------------------------------------------------------------
e208b21808 | dshaligram | 2008-04-01 20:07:56 +0000

Fix resists for orbs of fire.

--------------------------------------------------------------------------------
29e96d28a1 | j-p-e-g | 2008-04-01 20:06:52 +0000

A few minor corrections.

--------------------------------------------------------------------------------
daaf31cd42 | dshaligram | 2008-04-01 19:44:57 +0000

Give Tiamat better base AC and golden dragon armour.

--------------------------------------------------------------------------------
3156b39e95 | j-p-e-g | 2008-04-01 19:42:19 +0000

Yet Another Code Cleanup, this time concentrating on libx11.cc and view.cc. 
(Yes, this is semi-random.)

--------------------------------------------------------------------------------
99beaf9eb5 | dshaligram | 2008-04-01 19:15:21 +0000

Fixed monsters not regenerating at the right rate when catching up time spent 
off-level. Slightly dropped the generation of bucklers in the Elven Halls.

--------------------------------------------------------------------------------
11c08abe62 | dshaligram | 2008-04-01 17:37:56 +0000

The royal jelly's death triggers wall change even if it is off-level. Also 
fixed being able to lose the royal jelly when banishing it and crash when 
killing the royal jelly in the Abyss.

--------------------------------------------------------------------------------
127bc45cca | dolorous | 2008-04-01 17:09:04 +0000

Fix X11 tiles build.

--------------------------------------------------------------------------------
038df601ec | peterb12 | 2008-04-01 16:49:04 +0000

Icon for app bundle.

--------------------------------------------------------------------------------
410adf0440 | dshaligram | 2008-04-01 16:20:18 +0000

No cookie for banishing the royal jelly: teleport control and wall change will 
not happen if it is banished, but you can track it down in the Abyss and kill 
it to enable TC on Slime:6 :)

--------------------------------------------------------------------------------
ce03c65515 | dshaligram | 2008-04-01 16:07:23 +0000

Slime:6 teleport control is enabled even if you kill the royal jelly off-level 
(sorear). TC is also enabled when banishing the royal jelly, which is a bit 
cheesy...

--------------------------------------------------------------------------------
8f8b5b59f6 | dolorous | 2008-04-01 15:44:57 +0000

Add yet more halo-related cleanups.

--------------------------------------------------------------------------------
f9cb4e311f | dolorous | 2008-04-01 14:45:16 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
c8f062681a | dolorous | 2008-04-01 14:43:53 +0000

Add another halo-related fix.

--------------------------------------------------------------------------------
31572bc044 | dshaligram | 2008-04-01 14:22:36 +0000

Fixed royal jelly passive damage in monster-vs-monster combat.

--------------------------------------------------------------------------------
a45d0c4c36 | peterb12 | 2008-04-01 14:19:02 +0000

Changes to XCode project file to allow trivial building of a "clickable" app 
bundle.

--------------------------------------------------------------------------------
8327397587 | dolorous | 2008-04-01 14:13:10 +0000

Add one more whitespace fix.

--------------------------------------------------------------------------------
45899ee556 | dolorous | 2008-04-01 13:55:17 +0000

Add more halo-related cleanups.

--------------------------------------------------------------------------------
a7016461ff | dolorous | 2008-04-01 13:48:38 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
0ec19db88a | dshaligram | 2008-04-01 13:34:51 +0000

Fixed spell name cache asserting on invalid spells.

--------------------------------------------------------------------------------
f492654ae5 | dolorous | 2008-04-01 13:14:29 +0000

Add another cosmetic fix.

--------------------------------------------------------------------------------
2dc2beee3b | dshaligram | 2008-04-01 13:13:31 +0000

Filter out SPELL_NO_SPELL from fleeing monster decisions (redundant in trunk, 
but the checks do no harm). seekspell now asserts when it's asked for a bad 
spell.

--------------------------------------------------------------------------------
277c955d26 | dploog | 2008-04-01 12:59:41 +0000

Added descriptions to all remaining branches. These are somewhat crude but 
still better than "Describe branch here.". I hope.

--------------------------------------------------------------------------------
fa64429144 | dshaligram | 2008-04-01 12:51:42 +0000

[1930849] Remove -Werror for platforms with ancient g++ that chokes on its own 
standard C++ headers.

--------------------------------------------------------------------------------
b7dca6eaae | dploog | 2008-04-01 12:13:17 +0000

Changed some monster descriptions (orcs, deep elves) to adapt to TSO followers. 
Removed the standard phrase from deep elves. Feel free to change again.

--------------------------------------------------------------------------------
4cb7703c6d | j-p-e-g | 2008-04-01 12:11:06 +0000

Update change log. There might still be stuff missing.
We need a new version, if only because the change log is becoming really
unwieldy. Reading it feels like a real accomplishment. :)

--------------------------------------------------------------------------------
e9c3090519 | dploog | 2008-04-01 12:08:11 +0000

Remove reference to "irc_guide.txt" from the readme.

--------------------------------------------------------------------------------
e4a970d6d8 | dploog | 2008-04-01 11:48:30 +0000

Added warning to description of rings of levitation.

--------------------------------------------------------------------------------
4189018dba | j-p-e-g | 2008-04-01 11:31:25 +0000

Allow autotargeting of monsters hiding in shallow water ("You see a strange 
disturbance here"), assuming them to be enemy monsters.
Fix Daevas being so incredibly chatty. 
Friendly holy beings will now give the holy_being speech with a 
chance of 1/20, and else stay silent. This is rare!
Neutrals have the same behaviour but speak with a chance of 1/11 
since you won't be around them as often as around friendlies.

--------------------------------------------------------------------------------
28e524e1c1 | pauldubois | 2008-04-01 08:54:12 +0000

- Remove (lightly damaged) and replace with a damage "icon".   Not sure I like 
the placement.  Light background colors don't   work for me, so I stuck with 
the standard 8. - Merge identical monsters even if they have different brands,  
 and render one glyph each. - Use DESC_PLAIN instead of DESC_A for single 
monsters

--------------------------------------------------------------------------------
a57f9865b6 | peterb12 | 2008-04-01 04:32:31 +0000

More descriptions and quotes.

--------------------------------------------------------------------------------
e6748f841b | dolorous | 2008-04-01 01:41:28 +0000

Add another cosmetic fix.

--------------------------------------------------------------------------------
5a77a436c8 | peterb12 | 2008-04-01 00:39:29 +0000

A few more descriptions

--------------------------------------------------------------------------------
4a85276336 | dolorous | 2008-04-01 00:03:17 +0000

Cosmetic fix.

--------------------------------------------------------------------------------
9cd034ce16 | dshaligram | 2008-04-01 00:01:21 +0000

Diagnostic message not ifdefed, fixed.

--------------------------------------------------------------------------------
cad4cc6c23 | dolorous | 2008-03-31 23:58:42 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
6104840f98 | dolorous | 2008-03-31 23:57:57 +0000

Fix minor issues with the new blessing improvements (oops).

--------------------------------------------------------------------------------
891156c656 | dolorous | 2008-03-31 23:44:21 +0000

Fix blessings' follower descriptions, and make the blessed follower flash the 
god's associated color when blessed (only in console mode, though).

--------------------------------------------------------------------------------
6ce835d28c | j-p-e-g | 2008-03-31 22:56:26 +0000

Fix 1869850: Targeting now respects mimics' (un)known status correctly,         
     so that * and / work for unknown ones, and + and - for known 	     
ones. Also, mimics become known if you hit them since the 	     resulting 
message ("moderately damaged" or "looks slightly 	     unstable") will 
give that away anyway.
Implement the first part of FR 1903048: Added a range parameter to
direction(), so that when targeting for weapons of reaching we can check
whether a monster is within the range of 2 squares (grid_distance).
Does not handle submerged monsters.
Eventually, this could be used to also limit max range for certain spells
(Freeze, I'm looking at you!)

--------------------------------------------------------------------------------
14fce89713 | dolorous | 2008-03-31 22:49:36 +0000

Add one more cleanup.

--------------------------------------------------------------------------------
164a2af8e9 | dolorous | 2008-03-31 22:46:47 +0000

Comment fix.

--------------------------------------------------------------------------------
ede99523ac | dolorous | 2008-03-31 22:44:20 +0000

Add more cleanups.

--------------------------------------------------------------------------------
239b1b9b05 | dolorous | 2008-03-31 22:25:31 +0000

Clean up the circle detection functions.

--------------------------------------------------------------------------------
98330d0565 | dolorous | 2008-03-31 21:44:12 +0000

Limit TSO's halo radius to 8, to guarantee it doesn't go outside LOS.

--------------------------------------------------------------------------------
772205173a | dolorous | 2008-03-31 21:43:28 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
1856871a1e | dshaligram | 2008-03-31 21:22:36 +0000

Increased Tiamat's hp and attack damage a touch.
Changed spell levels: bolt of fire, cold -> 6, lightning bolt -> 5, ball 
lightning -> 7.

--------------------------------------------------------------------------------
4aaf7deee0 | dshaligram | 2008-03-31 20:32:05 +0000

Move Slime:6 wall change to lair.des Lua. The slimy rune is now guaranteed.

--------------------------------------------------------------------------------
6235210791 | j-p-e-g | 2008-03-31 19:52:18 +0000

Ha, I knew there was a reason to cleaning up dungeon.cc - learning by 
osmosis... :p
Anyway, killing the royal jelly now turns all stone walls on the level
into clear rock, together with a cute message. 
This currently only works if you actually kill it on the bottom level
- other than the lua magic, which sets a marker to work no matter where
you kill the jelly (I think). Still, it's better than nothing.

Instead of introducing a wrapper function I probably should have made 
replace_area non-static, but I wasn't sure if there might be a better
way to do this, and wanted to avoid having to change (and then 
possibly change back) all calls and their indenting.

I would have changed the rune probability as well, but I wasn't 
entirely sure, how. If I had to guess, I'd say that changing P -> O on 
the branch map is the way to go.

--------------------------------------------------------------------------------
3846460d20 | dshaligram | 2008-03-31 19:09:19 +0000

Give monsters better natural regeneration increasing with HD. Monsters will 
still never heal more than 1 hp per turn.
Increase royal jelly movement speed, hp and attack damage. The royal jelly now 
spits out high-level jellies when it takes a high-damage hit of any kind. No 
experience for the expelled jellies, given that they're technically part of the 
royal jelly, and the royal jelly already gives a heap of xp.

--------------------------------------------------------------------------------
900c6efcaf | j-p-e-g | 2008-03-31 18:26:52 +0000

Code cleanup and renaming of static methods, mostly for decks.cc and dungeon.cc.

--------------------------------------------------------------------------------
e02748aa46 | dolorous | 2008-03-31 14:40:31 +0000

Fix monster durations for TSO's halo and "extended stay" blessing: they're in 
tenths of a turn.

--------------------------------------------------------------------------------
7bb498ce91 | dolorous | 2008-03-31 14:32:43 +0000

Fix typo.

--------------------------------------------------------------------------------
a56b04d711 | j-p-e-g | 2008-03-31 14:13:33 +0000

Modify manual and readme to really list the new doc names, and key settings. 
Add vampires to manual (still needs reference to aptitudes etc.!) and reorder 
classes according to the new job order.
Re-introduce 't' as a synonym for 'f' in targetting, but don't 
document it anymore. (It's only in convenience to older players, 
anyway.) Also, change default wand inscription from !z to !Z, but
use a hack to check for either.

Oh, and restrict Blood Evaporate effect to Stinking cloud, Fire
and Steam (the latter two like !Rage).

--------------------------------------------------------------------------------
26a647035b | dshaligram | 2008-03-31 13:45:05 +0000

Adjust early OOD generation another few ticks upward.

--------------------------------------------------------------------------------
bfdafb3d4e | dshaligram | 2008-03-31 13:35:19 +0000

Re-enable moderate OOD gen on D:1.

--------------------------------------------------------------------------------
cc44e28831 | dshaligram | 2008-03-31 12:57:58 +0000

Add -O2 to the MinGW makefiles.

--------------------------------------------------------------------------------
040dee48c2 | dshaligram | 2008-03-31 12:50:25 +0000

Remove dead code.

--------------------------------------------------------------------------------
97e66bedd0 | dshaligram | 2008-03-31 12:47:08 +0000

[1923246] Item pickup marker moves itself when the item it's guarding is 
apported.

--------------------------------------------------------------------------------
e815ad3dcd | dshaligram | 2008-03-31 11:46:46 +0000

[1896152] Fixed infinite loops when repeating commands (the repeat buffer was 
seeing keys not intended for the command being repeated).

--------------------------------------------------------------------------------
53ea3795dc | dshaligram | 2008-03-31 10:41:24 +0000

Tweak order of layout fields to stop g++ complaining about out-of-order 
initialisation.

--------------------------------------------------------------------------------
55262e082e | pauldubois | 2008-03-31 05:36:17 +0000

Raise view_max_height a little bit, so people with bigger consoles can take 
advantage of them

--------------------------------------------------------------------------------
64f107bdd6 | pauldubois | 2008-03-31 05:34:04 +0000

Refactor the layout logic for the inline and mlist-col layouts into a couple 
classes.  Hopefully it will be much easier to tune the layouts now.
Fixed problem I introduced earlier today that didn't let message pane
use the bottom-most line.  Stole a couple cols from the HUD and one
from the HUD gutter to potentially give to the mlist or to the main
view.  Stole a row from the message area so even 80x24 players get
get one line of monster list

Made the mlist-col layout not so unfair to the main view, and not
truncate the mlist width so much.  It used to pop in if you had an
81-col display; now the display needs to be larger (~95) for it to be
used, but it is a lot more functional.

--------------------------------------------------------------------------------
ae03c1a649 | pauldubois | 2008-03-31 05:31:29 +0000

Monsters don't look "lightly wounded" all the time in the monster list.

--------------------------------------------------------------------------------
2d2afbb525 | pauldubois | 2008-03-31 04:57:27 +0000

Make init.txt reflect defaults for mlist_force_inline

--------------------------------------------------------------------------------
dc2e70a202 | pauldubois | 2008-03-31 04:25:16 +0000

Don't print GPS all the time.  Fix spacing on "touch "

--------------------------------------------------------------------------------
8229a8803f | dolorous | 2008-03-31 02:40:34 +0000

Mark draconian knights as evil, too, since they can cast evil spells.

--------------------------------------------------------------------------------
56e4ebfd2a | dolorous | 2008-03-30 23:52:29 +0000

And adjust it yet again.

--------------------------------------------------------------------------------
5c355fe39f | dolorous | 2008-03-30 23:48:50 +0000

Adjust TSO's "extended stay" blessing yet again.

--------------------------------------------------------------------------------
ffe08837f3 | dolorous | 2008-03-30 23:46:15 +0000

Fix TSO's "extended stay" blessing so that it can actually make abjurable 
monsters stay around permanently.

--------------------------------------------------------------------------------
0a50501e30 | dolorous | 2008-03-30 23:06:29 +0000

And adjust it a bit more.

--------------------------------------------------------------------------------
a9486a1b93 | dolorous | 2008-03-30 23:05:21 +0000

Adjust TSO's extended abjjuration blessing a bit more.

--------------------------------------------------------------------------------
b9dfc33d7a | dolorous | 2008-03-30 23:01:45 +0000

Go back to using "your" for follower blessings, and add whitespace fixes again.

--------------------------------------------------------------------------------
7228c6fea4 | dolorous | 2008-03-30 22:49:11 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
d42f9c618e | dolorous | 2008-03-30 22:47:52 +0000

Adjust TSO's blessings of permanent friendliness and extended abjuration time.

--------------------------------------------------------------------------------
fee3247c61 | pauldubois | 2008-03-30 21:06:06 +0000

Add DEBUG_PANE_BOUNDS, which draws little bits at the upper-left and right of 
each pane.  The HUD bits are overwritten by the hud display, but as the comment 
notes:
    // Doesn't work for HUD because print_stats() overwrites it.
    // To debug HUD, add viewwindow(false,false) at end of _prep_input.

Add checks that no panes extend beyond the term size, or all the way
to the term bottom. (Bottom line is not available unless we can keep
the screen from scrolling when we write to it)

Fix a bunch of off-by-one errors.  Using a point vs vector metaphor
seems to flush them out nicely (hooray for affine math!)

There are still problems with the monster list resizing too big and
squishing the main map view -- didn't address any of that.

--------------------------------------------------------------------------------
f116902db8 | j-p-e-g | 2008-03-30 20:43:15 +0000

Fix 1921769: Exclusion squares on the tiles minimap sometimes              not 
being updated.
Also add yet another minimap colour option for the centre of an
exclusion (defaults to darkblue).

--------------------------------------------------------------------------------
a932874b76 | pauldubois | 2008-03-30 19:05:29 +0000

Tutorial fix, maybe?

--------------------------------------------------------------------------------
06c98790b8 | pauldubois | 2008-03-30 18:56:03 +0000

Quick DEBUG_DIAGNOSTICS fix

--------------------------------------------------------------------------------
a369fdc548 | dolorous | 2008-03-30 18:39:32 +0000

Comment fix.

--------------------------------------------------------------------------------
5836e98209 | dolorous | 2008-03-30 16:49:59 +0000

Make monsters' halo-induced backlight match the player's.

--------------------------------------------------------------------------------
1b02d44a26 | dolorous | 2008-03-30 16:32:30 +0000

Improve halo management so that it activates or deactivates immediately. 
Accordingly, put the messages regarding its fading back in.  One minor issue: 
it doesn't seem to immediately fade upon a pious TSO worshipper's being 
excommunicated, even though the proper message is displayed.

--------------------------------------------------------------------------------
3f99f1f82b | j-p-e-g | 2008-03-30 15:31:14 +0000

Update the rest of the files to the new documentation name. Also add a 
preliminary tiles documentation with 'T' as a hotkey, re-add the readme on '!' 
after moving options_guide.txt to '&'.
And now that the tutorial also allows inscriptions from viewing
items, add an explanatory text for inscriptions.

--------------------------------------------------------------------------------
545034c733 | pauldubois | 2008-03-30 08:40:09 +0000

Polish for monster list: - Slight refactoring of code - Branded monsters not 
mixed in with un-branded monsters - Add brand description in parentheses - Add 
wounded status in parentheses - Friendliness uses color, not text
Fix: Known mimics are now included in playervisible monster list

--------------------------------------------------------------------------------
7d398e1398 | pauldubois | 2008-03-30 08:32:51 +0000

Pull out some code from print_wounds() into new function mons_get_damage_level.

--------------------------------------------------------------------------------
6f5bda0a45 | pauldubois | 2008-03-30 07:53:15 +0000

Fix: mlistsz was 2 columns too small... stupid 1-based indices :-/

--------------------------------------------------------------------------------
ba5f5da042 | dolorous | 2008-03-30 04:23:16 +0000

Add one last set of whitespace fixes.

--------------------------------------------------------------------------------
070223c6de | dolorous | 2008-03-30 04:20:52 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
a551e9fddb | dolorous | 2008-03-30 04:12:36 +0000

For consistency, make sure a monster's charmed status is only preserved across 
polymorphs if the monster is a shapeshifter.

--------------------------------------------------------------------------------
8dfcdc9fed | dolorous | 2008-03-30 04:11:21 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
ff82d5caa3 | dolorous | 2008-03-30 03:57:43 +0000

Fix [1929110]: Preserve a monster's charmed status when polymorphing.

--------------------------------------------------------------------------------
3c3f238465 | dolorous | 2008-03-30 03:54:02 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
8f876de5b4 | dolorous | 2008-03-30 03:44:42 +0000

Fix comment typo.

--------------------------------------------------------------------------------
a197f7ae04 | j-p-e-g | 2008-03-30 00:48:43 +0000

Another, no, scratch that: THE tutorial improvement for tiles. Using horrific 
amounts of #ifdef USE_TILE etc, the tutorial texts now give different 
information for tiles (mouse clicks) and non-tiles (key commands).
Unfortunately, while I am confident this is a vast improvement
the new messages for tiles tend to be rather wordy because
"clicking on the item with your left mouse button" is much
verbose than "pressing 'w'". That, and most of the time I want
to print the tile information *in addition* to the general 
commands. So, it would be helpful if someone else could go
over the texts at one point - there's no need to hurry, though.

Also a bit of general improvement, which is always nice. I'd
somehow forgotten to include a tutorial trigger for mutations,
and of course the first potion I tried was mutation. :)

--------------------------------------------------------------------------------
91179c38e2 | dolorous | 2008-03-29 19:20:38 +0000

Comment fix.

--------------------------------------------------------------------------------
3d906a948a | dolorous | 2008-03-29 18:53:09 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
835bd93695 | j-p-e-g | 2008-03-29 18:34:32 +0000

Added more (suggestions for) coding conventions, I hope that's okay.

--------------------------------------------------------------------------------
38058fa336 | j-p-e-g | 2008-03-29 18:30:31 +0000

Rename part of the documentation:
tables.txt        -> aptitudes.txt
crawl_macros.txt  -> macros_guide.txt
crawl_options.txt -> options_guide.txt

And while I already was at it, I added windows style linebreaks
for ssh_guide.txt and monster_speech.txt, as well. Since I've
somehow managed to uninstall my notepad (ages ago), opening 
and changing such files is always a bit fiddly, and I hope this
change doesn't hurt anyone else.

crawl_manual.txt will also eventually need these, but we haven't 
yet decided on the new name.

Also update monster_speech.txt (yet again), and add hounds 
sniffing the ground to monspeak.txt as an in-game hint for blood 
scent.

--------------------------------------------------------------------------------
ce89a07e48 | j-p-e-g | 2008-03-29 14:12:00 +0000

Finally allow ranged attacks (BEAM_MISSILE) and spells (BEAM_MMISSILE only) to 
also saturate the blood with floor.
Add a basic blood scent effect: all hounds, vampires, and the mosquito get
M_BLOOD_SCENT which will let them wake up when blood is spilled in their
vicinity. smell_blood() is rather similar to noisy(), so monsters will try
to seek the origin of the blood spilled.

Player vampires now get a message if blood is spilled outside their LOS,
"You smell fresh blood" with a distance estimate ("near-by", "in the distance")
added for vampires that are (near) bloodless. Also, the radius a vampire will
be capable of smelling blood will increase the thirstier he is.

--------------------------------------------------------------------------------
b7861f247d | pauldubois | 2008-03-29 08:46:19 +0000

For 1923865
Add fire_quiver_best option (default false).  If true, use oldtimer
behavior where quiver always contains the best-ranked missile. See
manual, options, init.txt.

Docs switch back and forth a bit between calling ( ammunition or
missiles; moved a few uses to missiles.

--------------------------------------------------------------------------------
bb8327f999 | pauldubois | 2008-03-29 07:22:01 +0000

For 1924228.  Shop prompts and welcome and things are printed in the message 
area instead of in a hardcoded screen location (that happens to be in the 
message area on default-sized consoles).  Also made some minor changes so the 
prompts look like non-shop prompts.  And changed some names of static functions.

--------------------------------------------------------------------------------
3597990374 | pauldubois | 2008-03-29 06:43:38 +0000

Fix 1927562, which was introduced by a code cleanup.

--------------------------------------------------------------------------------
8424d3d334 | ennewalker | 2008-03-29 03:33:38 +0000

Fixing view update issue with recite.

--------------------------------------------------------------------------------
7045b35216 | dolorous | 2008-03-29 01:32:50 +0000

Fix [1917601]: Make sure that daevas (as well as other holy beings) always take 
their gear with them when they die, instead of dropping it.

--------------------------------------------------------------------------------
ceb1c2e2b5 | dolorous | 2008-03-29 01:17:56 +0000

Like Beogh, have TSO randomly bless a follower when you kill evil (as an 
alternative to the health restoration).  Also, clean up TSO's other blessing 
routines again.

--------------------------------------------------------------------------------
4329e91d1f | ennewalker | 2008-03-29 01:16:39 +0000

Fixing [1927953] wand charges not displaying correctly.

--------------------------------------------------------------------------------
da87d971f2 | dolorous | 2008-03-29 00:57:24 +0000

Consolidate and clean up some of the blessing code.

--------------------------------------------------------------------------------
86bae0c1a3 | j-p-e-g | 2008-03-29 00:54:15 +0000

Prevent shafts from being created in corridors, at least until around dungeon 
level 7.
Rename ROCK_STAIRS to ESCAPE_HATCH, as well as the corresponding
function, since I think that the escape hatches are such a cool
concept that we won't be going back, and the current coding name
is a bit confusing.

Clean up dungeon.cc. I'll probably have to add stuff into our
new conventions file as I've been making up a lot of new rules
in trying to make the code more readable. (Rules concerning 
nested brackets, and function indentation, etc.)

--------------------------------------------------------------------------------
4df1ff7d51 | dolorous | 2008-03-29 00:34:19 +0000

Like Beogh, let TSO bless followers when they gain experience levels.

--------------------------------------------------------------------------------
62470c9aa5 | dolorous | 2008-03-29 00:20:11 +0000

Add TSO's blessings of extended stays for abjurable monsters, and friendliness 
for charmed monsters.

--------------------------------------------------------------------------------
82075a938c | dolorous | 2008-03-28 23:43:00 +0000

Clean up the blessing routine a bit more.

--------------------------------------------------------------------------------
6227494d3f | dolorous | 2008-03-28 23:09:17 +0000

Add the beginnings of TSO follower blessings.  Assume that followers are any 
living friendly or charmed monsters.  Deliberately don't check for evil or 
unholy status; that should help shake out cases where you can get them.  
Currently, only do blessings on followers that kill evil monsters 1/3 of the 
time, instead of gaining power as they normally would.

--------------------------------------------------------------------------------
e515471c2e | ennewalker | 2008-03-28 23:00:27 +0000

Moving monster list update to viewwindow (since only when the screen redraws is 
there a change to see new monsters.)  As far as I know, this should fix all the 
monster list update issues.

--------------------------------------------------------------------------------
f8aebd518b | dolorous | 2008-03-28 22:47:14 +0000

For TSO, make the rarest blessing that of branding a monster's weapon with holy 
wrath (where Beogh would promote an orc to an orc priest). This is not used yet.

--------------------------------------------------------------------------------
152a03a16a | dolorous | 2008-03-28 22:29:26 +0000

Let the weapon and armor enchantment blessings change the item's appearance.

--------------------------------------------------------------------------------
1a7b06f112 | dolorous | 2008-03-28 21:54:47 +0000

Clean up blessings some more, properly indicating which blessings are specific 
to Beogh.

--------------------------------------------------------------------------------
c2bcb250f2 | dolorous | 2008-03-28 20:45:47 +0000

Increase the chance of the reinforcement blessing a bit more.

--------------------------------------------------------------------------------
281bfbabe9 | dolorous | 2008-03-28 19:52:38 +0000

Clean up the blessing code a bit more, and fix the reinforcement blessing 
properly.

--------------------------------------------------------------------------------
b441148920 | dolorous | 2008-03-28 19:35:51 +0000

Add still more whitespace cleanups, and increase the chances of the 
reinforcement blessing again.

--------------------------------------------------------------------------------
83fa9d5668 | dolorous | 2008-03-28 19:24:39 +0000

Add more whitespace fixes, and allow reinforcement to summon bands again.  
Apparently, the bands aren't properly being marked as followers; this will have 
to be fixed another way.

--------------------------------------------------------------------------------
c993c22cfb | dolorous | 2008-03-28 16:58:07 +0000

Add whitespace fixes.

--------------------------------------------------------------------------------
7406f5e794 | dolorous | 2008-03-28 15:12:02 +0000

Make more static functions follow the coding style guidelines.

--------------------------------------------------------------------------------
6b33f75ac3 | dolorous | 2008-03-28 15:06:11 +0000

Make all the blessing references mention "reinforcement" instead of 
"reinforcements", as you might only get one monster from it.

--------------------------------------------------------------------------------
02dd420501 | j-p-e-g | 2008-03-28 12:28:16 +0000

FR 1927675: Change message for jellies corroding items             from "Your 
Foo is eaten away!" (misleading to newbies) 	      to "The acid corrodes 
your Foo!"
FR 1926880: Auto-id "Gourmand when eating chunks while not hungry
            (unless already a chunklover otherwise). Should there be
	    any case where can_ingest is called as a check, without
	    actual eating (suppress_msg == true, I'd guess) the
	    identification should be restricted to actual eating.
	    I haven't found any, though.

--------------------------------------------------------------------------------
30712a6f09 | j-p-e-g | 2008-03-28 12:18:36 +0000

Implement FR 1911470: DVORP type influences chance of spattering blood
This is currently purely cosmetical, but there are a lot of ideas out
there how to make blood have an effect.

--------------------------------------------------------------------------------
17d51dec2e | ennewalker | 2008-03-28 05:31:36 +0000

* Monster list is now placed to the left of the view if the terminal is wide 
enough to make better use of available space. * Added init.txt options for 
monster list placement. 	mlist_min_height - minimum items in the monster 
list (default: 5) 	mlist_force_inline - force the monster list to be 
between hud and messages * Fixed some (but not all) problems with the monster 
list being updated properly when monsters appear.

--------------------------------------------------------------------------------
e7c2573399 | dolorous | 2008-03-28 03:55:37 +0000

Mark orc sorcerers as non-evil, and mark orc wizards as non-evil again.

--------------------------------------------------------------------------------
3353d8ee56 | dolorous | 2008-03-28 03:54:24 +0000

Step 3 of making orc sorcerers non-evil: replace Animate Dead with Iskenderun's 
Mystic Blast, as it's the same level; it's an upgraded Magic Missile, which orc 
wizards use; and deep elf sorcerers only get one summoning spell, which holds 
true for orc sorcerers after this change; so this seems appropriate.
Note that deep elf conjurers, who have lower hit dice, can get sticky 
flame or bolt of draining in that slot, which are more powerful.  Still, 
I'm not certain whether this might make them overpowered.  I suppose 
playtesting will reveal that.

--------------------------------------------------------------------------------
e4aa14aed9 | dolorous | 2008-03-28 03:22:47 +0000

Fix the summoning used by the reinforcement blessing, so that collateral kills 
are properly accepted from such reinforcements (oops).

--------------------------------------------------------------------------------
7c63df66a7 | dolorous | 2008-03-28 02:52:38 +0000

Clean up some instances of friendly vs. hostile summoning.

--------------------------------------------------------------------------------
de8f4030ab | j-p-e-g | 2008-03-28 00:04:30 +0000

Clean up vampire biting attack, and call the new method whenever a vampire 
successfully stabs one of those walking blood replenishers.
All in all, vampires will bite monsters that don't yield blood less
often (1/3 chance), though their overall biting chance has been
slightly increases, and much so when stabbing.
Weapons of vampiricism are now a distinct case, so vampiric biting
(that also is signified by SPWPN_VAMPIRICISM, occasionally) 
consistently doesn't check for life protection (though that might
be added) and instead always respects the mons_has_blood checks.

Also, food messages ("You are very hungry.") are now displayed in
green if your food level has increased.

--------------------------------------------------------------------------------
d492483ffc | dolorous | 2008-03-27 18:27:04 +0000

Apply v-napkin's patch in [1927325] to fix a compilation problem when 
DGL_MILESTONES is defined.

--------------------------------------------------------------------------------
5b5a02f75d | dolorous | 2008-03-27 15:30:14 +0000

For Beoghites, increase the odds of getting reinforcements to 10%.

--------------------------------------------------------------------------------
f19d052c40 | dolorous | 2008-03-27 15:07:57 +0000

And clean it up yet some more.

--------------------------------------------------------------------------------
c8fe352afa | dolorous | 2008-03-27 14:46:10 +0000

Clean it up a bit more.

--------------------------------------------------------------------------------
0170380fc1 | dolorous | 2008-03-27 14:42:51 +0000

Clean up handling of Xom's mixed-group hostilities.

--------------------------------------------------------------------------------
5468cabfd9 | dolorous | 2008-03-27 14:07:32 +0000

Improve TSO's halo gain/loss messages.

--------------------------------------------------------------------------------
39d3c5b3c2 | j-p-e-g | 2008-03-27 13:11:55 +0000

Fix database lookup for features, and add fountain of blood, as well as p otion 
of coagulated blood to items.
Also copy the more interesting branch stair descriptions into branches.txt. 
Most of them still have the generic "Describe branch here", and I lack the 
imagination to change that. 
Ideally, the branch entries should get distinct descriptions closer to 
describing the atmosphere, e.g. "Putrid smell fills your nostrils." (Tomb), 
"A moss-covered staircase. From below you can hear squeaking noises, and 
odd deep croaks." (Lair), or "The sound of clanging weapons reaches your 
ears." (Blades), with the branch descriptions pulled up after that when
describing the staircases in-game. (Or maybe vice versa.)
Hmm, did I say I was lacking imagination? :p

--------------------------------------------------------------------------------
c43b7db9ad | dolorous | 2008-03-27 03:51:36 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
db6f4b3e1e | dolorous | 2008-03-27 03:43:52 +0000

Mark the "Shadow Creatures" spell as unholy, since weaving together creatures 
from shadows and Abyssal matter, as the description mentions, sounds unholy.  
This means that boggarts are evil, as well, since they cast it.

--------------------------------------------------------------------------------
7d2412c6f8 | dolorous | 2008-03-27 03:40:59 +0000

Fix a minor oversight: mark giant orange brains as evil, because they use the 
"Brain Feed" spell.

--------------------------------------------------------------------------------
a23ccc1f38 | dolorous | 2008-03-27 03:27:56 +0000

Revert orange rats' being banned from "Summon Small Mammals" for good god 
worshippers, as there should be a better way to do it.  Besides, "Shadow 
Creatures" can summon friendly versions of evil creatures for good god 
worshippers as well, and maybe this can be properly fixed in a similar way.

--------------------------------------------------------------------------------
b72b39dc46 | dolorous | 2008-03-27 02:44:49 +0000

Step two toward making orc sorcerers non-evil: make them use "Bolt of Cold" 
instead of "Bolt of Draining", as it's an upgraded "Throw Frost", just as "Bolt 
of Fire" is an upgraded "Throw Flame", both of which are used by orc wizards.

--------------------------------------------------------------------------------
10766f2b52 | dolorous | 2008-03-27 02:42:23 +0000

Step 1 toward making orc sorcerers non-evil: make them use the new "Summon Ugly 
Things" spell instead of "Summon Demon".

--------------------------------------------------------------------------------
cba4178e07 | dolorous | 2008-03-27 02:40:32 +0000

Implement "Summon Ugly Things" as a monster spell, roughly equivalent to 
"Summon Demon" in many ways, as they have similar hit dice, but aren't evil, 
undead, or demonic.

--------------------------------------------------------------------------------
431d2a497f | dolorous | 2008-03-27 02:27:57 +0000

Apply Josh's patch to fix a shadowed variable, and also add whitespace fixes.

--------------------------------------------------------------------------------
ee3f044497 | dolorous | 2008-03-27 02:19:43 +0000

Give ugly things and very ugly things cold resistance, as it fits their 
amphibious nature.

--------------------------------------------------------------------------------
87cc06152a | dolorous | 2008-03-26 17:15:17 +0000

Tweak the reinforcement blessing to give lower-level monsters, but in possibly 
larger numbers.

--------------------------------------------------------------------------------
a54d0315be | j-p-e-g | 2008-03-26 17:10:09 +0000

Add fountains of blood (as suggested by Lemuel), and tidy up the existing 
fountains: change their order and  remove all those superfluous dry fountain 
types.
I couldn't find any place for random generation of fountains,
so if that is possible it will have to be disabled for blood
fountains outside the hells. I've added a shortcut (Y) for
vault creation, though. :)
Drinking from such a fountain has a 33% chance of leaving it
dry. I think that's it... for now.

--------------------------------------------------------------------------------
5c6b5260c7 | dolorous | 2008-03-26 17:05:38 +0000

Add a blessing that sends in a small number of reinforcements, and have a 
chance of using it when the random follower chosen for blessing turns out to be 
you.

--------------------------------------------------------------------------------
c96ad74301 | j-p-e-g | 2008-03-26 16:31:22 +0000

Split potions of blood and potions of coagulated blood into two distinct potion 
types to make stacking easier. Coagulated blood is not created randomly, and 
aging potions of blood turn into potions of coagulated blood, so none of that 
changed. Well, except the name: congealed -> coagulated. This also means that 
they now have distinct descriptions, though seeing potions in your inventory 
coagulate will identify both of them.
And I checked: potions in shops will coagulate as well and 
disappear. Coagulated blood is cheaper, but if you need it you 
won't want to wait around, right?

--------------------------------------------------------------------------------
2f6db23aaa | dolorous | 2008-03-26 01:51:50 +0000

Mark a few more monsters as non-evil, since they're fighting types that use no 
evil spells: hill giants, ettins, cyclopes, stone giants, titans, deep trolls, 
Snorg, Polyphemus, and Tiamat.

--------------------------------------------------------------------------------
3da9fc5f6a | j-p-e-g | 2008-03-25 22:23:45 +0000

Fix windows compile.

--------------------------------------------------------------------------------
2dee9cde06 | dolorous | 2008-03-25 20:23:39 +0000

More evil ally fixes.  If you worship a good god, don't allow the taming of 
e.g. death yaks, and don't allow Summon Small Mammals to pull in orange rats.  
Do the latter only on the player side for now, since mo monsters seem to cast 
Summon Small Mammals, instead preferring Vampire Summon.

--------------------------------------------------------------------------------
b2f66d9cf1 | dolorous | 2008-03-25 20:06:49 +0000

For now, go ahead and mark player ghosts as evil, too.

--------------------------------------------------------------------------------
ff1d882ed1 | dolorous | 2008-03-25 19:43:55 +0000

Mark orange rats as evil, too, since they have a draining attack.

--------------------------------------------------------------------------------
f080c13349 | j-p-e-g | 2008-03-25 19:36:08 +0000

Fixed tile compile. (I was being a bit overzealous in my cleanup.)
Fix 1922815: blood potion assert.
Implement 1828037: prompt before entering harmful clouds

And tidy up fountain handling, dried non-magic fountains may now also 
start flowing again.

--------------------------------------------------------------------------------
c1e8bba8af | dolorous | 2008-03-25 17:19:34 +0000

Fix a compilation problem.

--------------------------------------------------------------------------------
94f5e22fbf | j-p-e-g | 2008-03-25 16:28:18 +0000

Applying static method conventions to acr.cc and items.cc - this resulted in 
removing several unused functions from the latter file.
Renaming tiles options show_items and title_screen to tile_show_items
and tile_title_screen. And as usual, cleaning up tiles code some more.

--------------------------------------------------------------------------------
bf3c2bf4c3 | dolorous | 2008-03-25 16:18:05 +0000

Make sure all undead and demonic things (with the exception of player ghosts) 
are marked as evil: slying skulls, spectral things, tentacled monstrosities, 
and Antaeus.

--------------------------------------------------------------------------------
308228db06 | j-p-e-g | 2008-03-25 11:21:22 +0000

Another huge code clean-up for tiles. At this rate, soon no line in the tile 
code will have been untouched. :p

--------------------------------------------------------------------------------
7761c9b93d | j-p-e-g | 2008-03-25 11:17:23 +0000

Change a few forgotten z/Z command listings in the tutorial.

--------------------------------------------------------------------------------
9371f3c245 | j-p-e-g | 2008-03-25 11:07:45 +0000

Tiles: * Fix cursed wielded weapons being throwable. (Whoops!) * Improve logic 
for mouse-over information in inventory.
Add Confusing Touch ("Touch") and Sure Blade ("Blade") to the
status output. I've moved BWpn into line 3 to make space for
the others. Still, the status can get positively cluttered.

Apply coding convention to static methods in output.cc.

--------------------------------------------------------------------------------
bbfe87d892 | pauldubois | 2008-03-25 09:05:27 +0000

coding convention for static functions.

--------------------------------------------------------------------------------
6dfa0f8317 | pauldubois | 2008-03-25 08:59:28 +0000

Remove vestiges of ... what was it again?  OPER_THROW.

--------------------------------------------------------------------------------
01b902a253 | pauldubois | 2008-03-25 08:42:05 +0000

fix: 'fi' should not put item in quiver. fix: 'fi' inventory selection menu 
uses @fN instead of @tN inscription. undo: Always go to the first item in 
fire_order when firing the last   of an ammo.  There was a case that didn't do 
this, to be   "convenient", but I think consistency is better.

--------------------------------------------------------------------------------
38f2f4a059 | dolorous | 2008-03-25 04:18:58 +0000

For now, mark orc wizards as evil, since they level up into orc sorcerers, 
which are evil, and this can break the "no evil allies" restriction for good 
gods.
The alternative is to find suitable replacements for orc sorcerers' Bolt 
of Draining, Summon Demon, and Animate Dead.  If that's done, both orc 
wizards and orc sorcerers can be marked as non-evil again.

--------------------------------------------------------------------------------
e33fec2f01 | ennewalker | 2008-03-25 03:49:39 +0000

Fixing [1912248] shadow targetted "forbidden". This change also makes targetted 
walls use the yellow cursor instead.

--------------------------------------------------------------------------------
965a5bf3f8 | ennewalker | 2008-03-25 03:07:49 +0000

Partially fixed [1921769] Minimap exclude region sometimes not shown.

--------------------------------------------------------------------------------
91d30564b7 | ennewalker | 2008-03-25 02:29:36 +0000

Fixed [1921145] [Tiles] closed gate tiles not updated. Fixed issue where doors 
in an L-shape would get the incorrect tile.

--------------------------------------------------------------------------------
a0f476f10e | ennewalker | 2008-03-25 01:53:09 +0000

Adding scroll of fog graphic.

--------------------------------------------------------------------------------
62158949d1 | j-p-e-g | 2008-03-24 20:20:59 +0000

Fix the display of monsters in the tiles minimap. (My mistake, sorry.) And 
remove the strange exception for shafts in the calling of handle_traps() as 
brought up in Bug 1916327 (now discussion about levitation + traps).

--------------------------------------------------------------------------------
d61352601c | dolorous | 2008-03-24 18:39:42 +0000

Apply Josh's fix for religion.cc's debugging diagnostics (with minor 
description tweaks).

--------------------------------------------------------------------------------
a81098c80c | dolorous | 2008-03-24 17:33:24 +0000

Comment fix.

--------------------------------------------------------------------------------
6df8980035 | dolorous | 2008-03-24 17:28:46 +0000

Add priest promotion-re;ated fixes.  Rename monsters::change_type() to 
monsters::upgrade_type(), as it's more accurate, allow it to adjust HD as well 
as HP, and do the latter when promoting to a priest, to make sure that it ends 
up with the proper HD.

--------------------------------------------------------------------------------
e63d0ce253 | dolorous | 2008-03-24 16:50:41 +0000

Add whitespace fixes again.

--------------------------------------------------------------------------------
9e0e937aa6 | j-p-e-g | 2008-03-24 16:13:54 +0000

Fix 1923913: blood spattering into fountains Fix 1923487: jewelled helmets 
getting the "jewelled" randart description Fix 1923471: Suppress the beholding 
message if only attacking.
Also remove ARM_HELM since it's identical in every way with ARM_HELMET
and only serves to confuse coders.

--------------------------------------------------------------------------------
9bec932ccd | j-p-e-g | 2008-03-24 13:41:56 +0000

Change reciting speech code to use seed_rng(turn counter) instead, to yield 
more varied choices. Also add dozens of synonyms to godspeak.txt.
Tweak religious favour descriptions for good gods to only say that 
their "wrath is upon you" if you now worship a god they hate (evil god,
or Xom, for Zin).

Ely will now also heal/protect holy beings, and only protect allies the
player can see. Otherwise they can't do anything to prevent its death
anyway.

--------------------------------------------------------------------------------
80c2e92a48 | pauldubois | 2008-03-24 10:09:49 +0000

Fix monster coalescing bug (should have known; the code looked too 
complicated). More accurate sort by difficulty -- now uses the average HP for 
that monster class. Minor code cleanups.

--------------------------------------------------------------------------------
f2bec04c3f | pauldubois | 2008-03-24 09:33:03 +0000

Let's see if this works a bit better... only update monster display when not 
delaying.  Seems a bit faster, but I've seen cases where there's a monster on 
screen but not in the list (maybe before this change too; not sure)

--------------------------------------------------------------------------------
466f7bec31 | pauldubois | 2008-03-24 07:18:57 +0000

  - Allow 'inscribed' in fire_order.  Previously it was a special case and     
always sorted to the end.  Now it's controllable.  Default is still     to the 
end, but not for any real reason.  Updated docs and init.txt.
  - Replace reduncant inscription docs from crawl_options.txt with a pointer
    to crawl_manual.txt.

--------------------------------------------------------------------------------
5b7c011ebc | pauldubois | 2008-03-24 05:46:17 +0000

Fix a bunch of the TODO items. - Display monster glyph, in color - Sort roughly 
by monster difficulty.   Not exactly, because then monsters won't merge 
together, and because it leaks info. - Not done: rough health information

--------------------------------------------------------------------------------
c250985042 | pauldubois | 2008-03-24 05:16:48 +0000

add comment for later

--------------------------------------------------------------------------------
38e827333b | ennewalker | 2008-03-24 04:23:58 +0000

Monster list fixes: * get_visible_monsters() now just silently returns 
descriptions * _mpr_monsters() now handles all printing of information * 
monster list is now written to a separate monster region (GOTO_MLIST) * added 
asserts to libutil that will catch behavior that breaks tile version * turned 
off monster list for tile version (until implemented)

--------------------------------------------------------------------------------
340d13659b | ennewalker | 2008-03-24 02:59:46 +0000

As per dpeg's suggestion, change neutral =) to =|.

--------------------------------------------------------------------------------
0336d11218 | ennewalker | 2008-03-24 02:13:58 +0000

Adding graphic for neutral monsters.  (A smiley face.) Fixing a magic mapping 
issue.

--------------------------------------------------------------------------------
26f4800dbe | dolorous | 2008-03-24 02:08:24 +0000

Since it's difficult to display TSO's halo-fading messages at the right times 
(since e.g. old piety is lost on excommunication), just remove the halo 
silently.  The fact that you're no longer glowing should be evidence enough.

--------------------------------------------------------------------------------
9db21d960f | pauldubois | 2008-03-24 01:59:23 +0000

Break print_stats into a bunch of smaller functions Add an (easily 
commented-out) _print_stats_line4_monsters(), that dumps JPEG's monster list to 
the screen.  Lots of polish needed; see the comments

--------------------------------------------------------------------------------
78ed182cbb | dolorous | 2008-03-24 01:40:27 +0000

Make Zin take retribution on you if you switch to a chaotic god as well as an 
evil god (i.e. Xom), and display a message when switching from a good god to an 
evil god to indicate pending retribution.  TSO still has his usual "you will 
pay" speech, of course.

--------------------------------------------------------------------------------
f1c97c5dd9 | dolorous | 2008-03-24 01:36:33 +0000

Fix display of TSO's fading halo message when placed under penance.

--------------------------------------------------------------------------------
2330c22e9b | j-p-e-g | 2008-03-24 00:49:10 +0000

Implement a basic version of "list monsters in LOS". New command on 'F' (one of 
the few free keys, not documented yet).
What it does: List all monsters in sight, sorted first by attitude
(hostile, neutral, friendly), then by monster type (number currently,
but we could use any other measure instead).

My four current wiz-mode testing games produced the following output:
a) You can see three orcs, and two neutral orcs.
b) You can see a friendly orc, and a friendly elf.
c) There are no monsters in sight!
d) You can see a red devil, a hairy devil, an iron devil, a lemure, three
   ufetubi, a midge, a neutral deep elf summoner, and a friendly rat.

Also:
* remove prompt for abilities with high food cost at near starving
  (just not possible now)
* Fix 1864331: message_colour not working in message history

--------------------------------------------------------------------------------
756e0c6fd1 | dolorous | 2008-03-24 00:39:19 +0000

Tone down the healing-and-vigor blessing: it now will give only one extra hit 
point.

--------------------------------------------------------------------------------
4850e1a02a | dolorous | 2008-03-24 00:12:27 +0000

In the blessing routine, go back to "a" follower instead of "the" follower for 
now.

--------------------------------------------------------------------------------
f9738e0f53 | dolorous | 2008-03-23 23:19:17 +0000

Adjust follower blessing probabilities *again*.  I should get it right 
eventually...

--------------------------------------------------------------------------------
62ac310d34 | dolorous | 2008-03-23 22:29:17 +0000

Fix comment.

--------------------------------------------------------------------------------
4199cb9037 | dolorous | 2008-03-23 21:46:25 +0000

Add a weapon enchantment blessing that will enchant a monster's weapon by two 
points (either this or armor enchantment blessing can occur, with 5% rarity).  
Whether to-hit or to-damage is chosen is random.  Split handling of weapon 
enchantment into enchant_weapon() for the generic item routines, and 
handle_enchant_weapon() for the player-specific routines.  Furthermore, make 
enchant_weapon() and enchant_armour() more similar in terms of structure.
Also, in bless_follower(), store the blessing description and monster 
name in std::strings instead of const char*'s.

--------------------------------------------------------------------------------
9e511702e8 | j-p-e-g | 2008-03-23 21:06:01 +0000

Refix tiles monster brands to show the heart for friendlies. And another huge 
code cleanup.

--------------------------------------------------------------------------------
2055942d4b | dolorous | 2008-03-23 19:03:38 +0000

In enchant_weapon(), use the quiet parameter properly in all cases.

--------------------------------------------------------------------------------
02c09a0128 | dolorous | 2008-03-23 17:39:55 +0000

And adjust it yet again.

--------------------------------------------------------------------------------
32aed4c125 | dolorous | 2008-03-23 17:35:58 +0000

Adjust the follower blessing probabilities again.

--------------------------------------------------------------------------------
97cb3bdc1b | dolorous | 2008-03-23 16:30:36 +0000

Make Beogh's follower blessings a little more common.

--------------------------------------------------------------------------------
a71db6b6f3 | dolorous | 2008-03-23 16:21:23 +0000

In _mons_open_door(), make sure adj is initialized when the secret door in 
question isn't a large one.

--------------------------------------------------------------------------------
d9468ec799 | j-p-e-g | 2008-03-23 16:01:29 +0000

Update 0.4 changes to include both the entire 0.3 list of the current stone 
soup branch, and a first attempt at changes for 0.4. Feel free to add, remove, 
rename etc. at your leisure!

--------------------------------------------------------------------------------
dddff423ec | dolorous | 2008-03-23 14:56:55 +0000

Add more blessing adjustments.
For Beogh, have a random chance of doing them directly upon living 
kills, instead of on piety gain.  First, TSO should be doing this 
eventually too, so the framework should be in place.  Second, piety gain 
is slower at high piety levels, which makes blessings granted in 
do_god_gift() occur less often as you become more messianic, which seems 
wrong.

Make random blessings also occur a bit less often, so you don't get a 
long string of them, and make them occur randomly on experience level 
gain again; if you're pious enough, the latter should still occur often.

A random follower can be blessed when you kill, but when a follower 
kills, it can be specifically blessed.  Also, messages for blessings of 
out-of-view followers now just refer to "your follower."

--------------------------------------------------------------------------------
0af59f5d23 | j-p-e-g | 2008-03-23 14:30:29 +0000

Introduce a temporary neutral brand for tiles because it was driving me nuts 
when testing Ely's pacifying. (Currently only inappropriately reuses 
TILE_NEW_STAIR, which will have to be replaced with something more distinctive 
some time.) Also add an option for colouring neutrals on the minimap (defaults 
to red, like hostiles) and allow secondary item use by Ctrl-L-clicking on items 
in inventory (firing weapons, unwielding rods, etc.)

--------------------------------------------------------------------------------
7b2c4078bb | pauldubois | 2008-03-23 10:41:26 +0000

I'll convert you to use int and rename you later, but for now remove 
COMPILE_CHECK

--------------------------------------------------------------------------------
7a5387cbd6 | pauldubois | 2008-03-23 09:42:58 +0000

This was originally going to be a small refactor of stash.cc before getting 
into stash/item finding, but it ended up big.  Removed the read/writeThing API 
in favor of the marshall/unmarshallThing API.  It was slightly awkward in a 
couple spots where the format of writeThing and marshallThing differed slightly 
(strings, level_id, level_pos).
Doesn't affect savegames.

When it's is okay to break savegames (maybe just before releasing
0.4?) it would be nice to remove the few remaining redundancies listed
above.

--------------------------------------------------------------------------------
922cba628d | pauldubois | 2008-03-23 06:27:58 +0000

"stashes" was both a global variable and a member variable... confusing! 
Renamed both of them.

--------------------------------------------------------------------------------
7c2f45cfd1 | pauldubois | 2008-03-23 05:40:56 +0000

Fix % screen item examination

--------------------------------------------------------------------------------
5c472f0b32 | dolorous | 2008-03-23 05:20:45 +0000

Minor type fixes.

--------------------------------------------------------------------------------
e1983d461a | dolorous | 2008-03-23 03:27:23 +0000

Disallow blessing followers on experience level gain when under penance.

--------------------------------------------------------------------------------
95ea8b4059 | dolorous | 2008-03-23 03:13:21 +0000

For consistency (at least for now), go back to always mentioning "the" follower 
when blessing.

--------------------------------------------------------------------------------
92ebac875b | dolorous | 2008-03-23 02:03:27 +0000

Adjust the routine for blessings on level gain: display "the follower" then, 
and "a follower" for random blessings, and remove the random element for level 
gain blessings; as a Beoghite, as long as you're pious enough to gain orcish 
followers, they'll be blessed on level up.  (This also encourages letting 
orcish followers kill more, which seems fitting.)

--------------------------------------------------------------------------------
70b49eb066 | dolorous | 2008-03-23 01:32:57 +0000

Expand bless_follower() to allow explicitly picking the follower as well as 
picking one randomly, fix a potential problem with the display of the blessing 
message, and add a piety-dependent chance that followers will be specifically 
blessed when gaining levels.
Hook the last of these up to Beogh for now (since the random chance on 
piety gain occurs less and less often as piety goes up).  TSO should 
also get this eventually.

--------------------------------------------------------------------------------
6da9dc107a | dolorous | 2008-03-23 01:28:36 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
ef29fce529 | dploog | 2008-03-23 01:24:19 +0000

Added guide on how to access akrasiac via Putty. (Basic text by Archibald.)

--------------------------------------------------------------------------------
8a2dfbcb11 | j-p-e-g | 2008-03-23 00:51:29 +0000

Modify database lookup to allow for lookup of the nth entry for a given 
keyword. Used for more varied recite speech, so that the same prechosen synonym 
can be used for all of start/continue/stop/finish reciting. The number of the 
entry is calculated in an embarassingly hacky way:   (recite power + hp at 
beginning of recite + x_pos + y_pos)    modulo total weight of the keyword.
This makes sure that different synonyms get used, though always the 
same one (plus its shorter variant) during one round of recite, but 
it's not as random as I'd like. It works well enough for now, though,
and adds some much needed flavour to Zin.

--------------------------------------------------------------------------------
435e410c4c | j-p-e-g | 2008-03-23 00:38:15 +0000

Elyvilon will now rarely (5% chance) protect allies from harm. Since this only 
leaves them with 1 hp, they'll soon be dead anyway, so I consider it as a 
mixture of flavour and a warning to the player to heal the ally in question. 
Make the retribution healing hostiles effect only happen if you worship an evil 
god, as is done for the other retribution effects.
Allow healing to choose a target rather than a direction, but allow
Revitalisation (Zin!) to only work on the player. (That's how it was
intended, I think.)

--------------------------------------------------------------------------------
c6e3890c04 | dolorous | 2008-03-22 21:22:52 +0000

For most blessings, randomly give either ailment removal or healing, but only 
give the former if it's needed.

--------------------------------------------------------------------------------
04c7fa1b1c | dolorous | 2008-03-22 21:14:18 +0000

Add a blessing to remove harmful ailments (poisoning, sickness, confusion, and 
rotting), and use it in bless_follower() instead of healing when it's needed.

--------------------------------------------------------------------------------
b390ae7b7c | dolorous | 2008-03-22 19:39:46 +0000

Simplify random armor selection in blessing_ac().

--------------------------------------------------------------------------------
67eb0dfe83 | j-p-e-g | 2008-03-22 19:31:43 +0000

Applying the new convention to static methods.

--------------------------------------------------------------------------------
b432e59457 | j-p-e-g | 2008-03-22 19:13:35 +0000

Add Ely's pacifying monsters effect: When a follower of Elyvilon attempts to 
heal a hostile monster (via ability or wand) there's a chance, depending on the 
healing value, max monster hp and monster type, that Ely will make that monster 
become neutral. If this happens, Ely hands out a bit of piety and his follower 
gains half of the monster's xp value.
If the pacifying attempt fails, the monster is never healed, 
though you still lose your ressources (mana, piety, charges).

Killing neutral monsters currently means you won't get any xp.
Also, Ely dislikes this and hands out penance for doing so.

--------------------------------------------------------------------------------
67c2c0fa73 | dolorous | 2008-03-22 17:30:27 +0000

Handle the priesthood blessing more generically.

--------------------------------------------------------------------------------
5c9c62b76e | dolorous | 2008-03-22 17:09:50 +0000

In enchant_armour(), respect the quiet parameter in all cases.

--------------------------------------------------------------------------------
777a73ad04 | dolorous | 2008-03-22 16:00:37 +0000

Remove percentages from blessing comments, as they're not completely accurate.  
Armor enchantment will be more available (10%) if priest promotion doesn't work.

--------------------------------------------------------------------------------
19ed4f8f10 | dolorous | 2008-03-22 15:55:27 +0000

Move all armor enchantment messages to enchant_armour().

--------------------------------------------------------------------------------
79ab3930c2 | dolorous | 2008-03-22 15:45:39 +0000

Fix blessing percentage checks.

--------------------------------------------------------------------------------
2392b1199c | dolorous | 2008-03-22 15:28:05 +0000

Move the healing blessing into its own function.

--------------------------------------------------------------------------------
0c28b3f870 | dolorous | 2008-03-22 14:28:34 +0000

Add whitespace fixes again.

--------------------------------------------------------------------------------
7c19f06384 | dolorous | 2008-03-22 14:27:41 +0000

Fix typo in mons_thrown_object_destroyed() that let non-missiles instead of 
missiles be destroyed (oops).

--------------------------------------------------------------------------------
a8b94b1525 | dolorous | 2008-03-22 05:25:57 +0000

Mark the "Summon Beast" spell as unholy, since beasts are naturally evil and 
demonic.

--------------------------------------------------------------------------------
2373ed5b2a | dolorous | 2008-03-22 04:59:27 +0000

Remove fire resistance from orc sorcerers.  Since they cast Bolt of Fire, it's 
most likely a holdover similar to the recently removed electricity resistance 
for lightning-type casters.

--------------------------------------------------------------------------------
f19edcf2f4 | dolorous | 2008-03-22 04:45:00 +0000

Properly trigger the "attack friend" god conduct if you use Smite or Airstrike 
on friendly monsters.

--------------------------------------------------------------------------------
d36485da11 | dolorous | 2008-03-22 04:42:59 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
eff015ae7d | dolorous | 2008-03-22 03:40:22 +0000

Add a blessing to improve AC by enchanting armor or shields by one or two 
points, or at least uncursing them (5% chance, to discourage killings for 
armor; the probability of healing has been dropped to 90%). In the process, 
split out and generalize the code to enchant armor to not be so 
player-specific; now, handle_enchant_armour() contains the player-specific 
portion, and enchant_armour() contains the rest.

--------------------------------------------------------------------------------
47af3ed3cb | dolorous | 2008-03-21 23:02:19 +0000

Make the static functions in spells3.cc follow the new coding conventions.

--------------------------------------------------------------------------------
3be00a5bc4 | dolorous | 2008-03-21 22:52:28 +0000

Since mons_inside_circle() is only used by Zin's Sanctuary and TSO's halo, both 
of which are in spells3.cc, move it there and make it static, at least for now.

--------------------------------------------------------------------------------
7a28aa3eb4 | j-p-e-g | 2008-03-21 22:36:57 +0000

Fix what remains of 1905764: monster description lookup issues. * Add "small 
simulacrum" and "player ghost" to the database (albeit   with unoriginal 
descriptions), so they can be found. * Add MONS_DRACONIAN to mons_misc_level(), 
so they are a   valid monster for the search (same as MONS_HUMAN and MONS_ELF). 
* Don't look up draconian_colour for database constructed draconians   
(mon.number = 0) to get rid of the "buggy" colour description. * rename static 
functions in the modified files

--------------------------------------------------------------------------------
ee6b604426 | j-p-e-g | 2008-03-21 21:13:27 +0000

FR 1919593: modified scoring system, as suggested by Lemuel Clean-up of 
hiscores.cc.

--------------------------------------------------------------------------------
0f7f2da02a | dolorous | 2008-03-21 20:29:48 +0000

Fix compile-breaking typo (oops).

--------------------------------------------------------------------------------
7be78100e7 | j-p-e-g | 2008-03-21 19:34:10 +0000

Allow vampires of hunger state full or higher to go berserk. Should this be too 
strong (they have insane regeneration already) it should be easy enough to 
revert.
Also renamed all static functions in abl-show.cc and player.cc to
follow the new coding conventions.

--------------------------------------------------------------------------------
a11e3c0cf8 | dolorous | 2008-03-21 19:26:11 +0000

Also mark brain worms as natural evil, for the same reason Norris was made so 
(and which I forgot to mention): under the assumption that feeding on brains is 
evil.

--------------------------------------------------------------------------------
69f26c8b00 | dolorous | 2008-03-21 18:43:00 +0000

More changes to which monsters are marked as evil, based on their spell 
repertoires.  If they can cast spells like Summon Demon, Banishment, Hellfire, 
or Bolt of Draining, they're evil.
Additions: draconian shifter, draconian scorcher, deep elf mage, deep 
elf summoner, deep elf conjurer, ogre-mage, wizard, Josephine, Louise, 
and Wayne.

Removals: deep elf annihilator.  It has no evil spells, and if Vehumet, 
the god who gives you the Book of Annihilations, is no longer considered 
evil, then neither should it.

Also, allow deep elf conjurers to level up into deep elf sorcerers, and 
deep elf summoners to level up to deep elf demonologists.

--------------------------------------------------------------------------------
0a930fa797 | j-p-e-g | 2008-03-21 17:49:24 +0000

Make Zin dislike when the player takes an action that makes an already existing 
mutagenic glow stronger (piety loss, no penalty). At the same time go easier on 
the "eat souled being" misbehaviour: increased piety loss, but give penance 
only for eating very intelligent monsters, so that eating goblins and the like 
is an option again. (Cannibalism is checked first, and has worse effects.)
Also fix restriction for items offered for ?recharging.

--------------------------------------------------------------------------------
a8a6b89f6b | dploog | 2008-03-21 15:06:23 +0000

Some more tweaking of the manual for ReST (rst2latex.py now produces a tex 
file!)

--------------------------------------------------------------------------------
7ceb7f873d | j-p-e-g | 2008-03-21 10:39:51 +0000

Tweak yesnoquit some more to allow for a second alternative yes character, and 
use it for the chopping prompt. Also tweak eat.lua to allow y=e for inventory 
as well. Oh, and finally fix beheld handling to allow diagonal movement.

--------------------------------------------------------------------------------
90c49293ad | pauldubois | 2008-03-21 05:30:45 +0000

Add UTF-8 BOM to help keep contributor names from becoming mojibake. Good?  No 
good?

--------------------------------------------------------------------------------
f58e8c5c29 | dolorous | 2008-03-21 03:51:35 +0000

Apply patch [1914617]: Give the staff of channeling a chance to work even if 
you have no Evocations skill, since some other evokable items follow that same 
convention.

--------------------------------------------------------------------------------
1c8625802c | dploog | 2008-03-21 03:50:15 +0000

Manual update, and reformatting. (Preparing for ReST.)

--------------------------------------------------------------------------------
0c496e0be3 | dolorous | 2008-03-21 02:22:03 +0000

Revert the splitting out of monster_change_type() from monster_polymorph(), as 
it still doesn't do everything needed.  Replace it with 
monsters::change_type(), split out from monsters::level_up_change(), which does 
do everything needed, and in a cleaner way.  Unfortunately, it's still a hack, 
but it should be easier to deal with for now.  Sorry for the mess.

--------------------------------------------------------------------------------
d07a34ba11 | dolorous | 2008-03-21 01:46:02 +0000

Move net handling (mostly) back to monster_polymorph(), and add comments to 
monster_change_type indicating that special handling may be needed if the types 
are different enough.

--------------------------------------------------------------------------------
9a5a74a25b | dploog | 2008-03-21 01:39:10 +0000

Update documentation for Ctrl-Direction. I hope I missed nothing.

--------------------------------------------------------------------------------
ba0350b18e | dolorous | 2008-03-21 01:16:51 +0000

In monster_change_type(), preserve experience properly by using gain_exp() 
instead of assigning.

--------------------------------------------------------------------------------
c2881970c5 | j-p-e-g | 2008-03-21 01:11:38 +0000

Remove Zin's Smiting, and move Revitalisation into its place. Allow for easier 
switching between the good gods: starting piety after switching is up to 30 
instead of 15.

--------------------------------------------------------------------------------
700ca72344 | j-p-e-g | 2008-03-21 01:03:15 +0000

Add a neutral monster brand (defaulting to darkgrey). Of course we still need 
something like this for Tiles!
Make Ctrl+Dir call close_door() if the square in question is a closed door.
I've tested it, and found this change (suggested by dpeg) extremely convenient.
Also fixed the information leak about an invisible monster blocking a doorway 
without time passing.

--------------------------------------------------------------------------------
a84ea40a94 | dolorous | 2008-03-21 01:01:43 +0000

Check more efficiently for monsters eligible to be promoted to priests.

--------------------------------------------------------------------------------
498c51d938 | dolorous | 2008-03-21 00:44:52 +0000

Simplify follower blessing code again.

--------------------------------------------------------------------------------
9310a8c767 | dolorous | 2008-03-21 00:37:13 +0000

Use alive() properly in another instance.

--------------------------------------------------------------------------------
24b96cffa0 | dolorous | 2008-03-21 00:21:14 +0000

And preserve experience the same way.

--------------------------------------------------------------------------------
da55f38761 | dolorous | 2008-03-21 00:13:41 +0000

Preserve flags properly when changing one monster type into another (unless 
it's being used for polymorphing, of course).

--------------------------------------------------------------------------------
13fd34c3f0 | dolorous | 2008-03-20 23:40:33 +0000

Remove duplicate code from the priest promotion function, consolidate the code 
to change one monster type into another into its own function, and use it.  The 
code handling net trapping should probably be somewhere else, though.

--------------------------------------------------------------------------------
6ac1ce6fcd | dolorous | 2008-03-20 22:58:37 +0000

Expand follower blessing code to potentially allow for more than just healing.  
Also add a routine to promote ordinary monsters to priests, mostly based on 
code in monster_polymorph(), and (rarely) use it as a blessing.

--------------------------------------------------------------------------------
256c4e4fa4 | dolorous | 2008-03-20 22:53:10 +0000

Use alive() where applicable, instead of manually checking HP.

--------------------------------------------------------------------------------
bb682e9a66 | dolorous | 2008-03-20 22:27:48 +0000

Simplify Xom polymorphing code a bit.

--------------------------------------------------------------------------------
d6839149af | dolorous | 2008-03-20 22:24:49 +0000

Add yet more cosmetic fixes.

--------------------------------------------------------------------------------
d9ef5758d3 | dploog | 2008-03-20 21:56:10 +0000

Update CREDITS.

--------------------------------------------------------------------------------
55ac5bbc1f | j-p-e-g | 2008-03-20 21:17:47 +0000

Another one of those mixed commits.
* Fix 1915277: Blade Hands time-out removing bardings.
* Ely's Lesser Healing costs range(0,1) piety (avg. 0.5)
* Allow synonym for "yes" in yesnoquit(), and use it for eating (e=y).

Also, in preparation for 0.4 (yes, I can't wait) finally disallow random
generation of weapons of orc slaying. Demon lords use a check of their
own and as a randart property it's also allowed, which I think is fine.
Allow random generation of nets and increase shop prices for nets and
javelins.

--------------------------------------------------------------------------------
54d8ea2eb8 | dploog | 2008-03-20 21:15:43 +0000

Fixed the single instance where level-design.txt was referred.

--------------------------------------------------------------------------------
0c537338e7 | dploog | 2008-03-20 21:14:03 +0000

Fixed readme.txt. Renamed level-design.txt to level_design.txt.

--------------------------------------------------------------------------------
5efa2c8d72 | j-p-e-g | 2008-03-20 21:09:20 +0000

Remove paws and sleepiness mutations. Those two just don't cut it. As long as 
"shaggy fur" stays in, I'm happy. :)

--------------------------------------------------------------------------------
c7a78ad69f | dolorous | 2008-03-20 20:20:16 +0000

Fix invalid_monster_index().  First, ANON_FRIENDLY_MONSTER is negative, so it 
doesn't need to be explicitly checked for.  Second, make sure that the test in 
the function isn't backwards (oops).

--------------------------------------------------------------------------------
9d0d35643d | dolorous | 2008-03-20 20:02:08 +0000

Add another sanity check cleanup.

--------------------------------------------------------------------------------
0737272c9f | dolorous | 2008-03-20 19:22:35 +0000

Cosmetic fixes.

--------------------------------------------------------------------------------
521547a837 | j-p-e-g | 2008-03-20 19:03:17 +0000

FR 1920700: Allow the special kill cases (such as simulacra or             
vortices) to be handled in the god_conduct checks. 	    There are probably 
still buggy remnants.

--------------------------------------------------------------------------------
29b8231d09 | j-p-e-g | 2008-03-20 18:28:17 +0000

FR 1913320: remove shock resistance from a number of (humanoid) monsters Fix 
1916532: rename db entry "simulacrum" -> "large simulacrum"
Move tutorial help into the complete hotkey-triggerable help menu.

--------------------------------------------------------------------------------
af7df8b666 | dolorous | 2008-03-20 18:01:48 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
8595965dc7 | dolorous | 2008-03-20 17:59:47 +0000

Also check for the "god gift" flag in is_orcish_follower().

--------------------------------------------------------------------------------
e55e12b955 | dolorous | 2008-03-20 17:57:17 +0000

Improve the previous sanity fixes.  Add a function invalid_monster_index(), and 
use that where applicable.  Also, put the "god gift" flag back on orcish 
followers, since the Crusade card now handles orc conversion properly for 
Beoghites, and so that the index check doesn't have to be done twice for 
collateral kills.

--------------------------------------------------------------------------------
0b103119bb | dolorous | 2008-03-20 17:31:40 +0000

Put in *proper* sanity fixes for forcibly converting orcish followers, and for 
Elyvilon's healing monsters (thanks Darshan!).  Note that these are needed for 
some other menv[] accesses as well.

--------------------------------------------------------------------------------
ba63a56857 | dolorous | 2008-03-20 17:13:19 +0000

Change "invigourated" back to "invigorated", as it turns out that the latter is 
the proper spelling (oops).

--------------------------------------------------------------------------------
a3713a349b | dolorous | 2008-03-20 17:07:47 +0000

Add somewhat experimental code to bless random followers.  Currently, it's only 
used for Beogh, and its only effects are full healing and full healing with one 
or two added hit points.  Eventually, it should get more effects, and be 
expanded for use by TSO.

--------------------------------------------------------------------------------
6af861467f | dolorous | 2008-03-20 16:55:52 +0000

Use possessive pronouns properly in the newly outsourced orc conversion 
messages.

--------------------------------------------------------------------------------
d3cd040b9e | dolorous | 2008-03-20 15:38:17 +0000

Add sanity check for when an orcish follower converts another orc by force.

--------------------------------------------------------------------------------
65a1827752 | j-p-e-g | 2008-03-20 15:25:41 +0000

Add Elyvilon retribution!
Elyvilon can now...
* imitate minor poison miscasts (flavour, mostly)
* confuse you
* prevent you from hitting monsters
* heal natural monsters you or your friends were about to kill, and
* destroy non-randart weapons/missiles in your inventory

--------------------------------------------------------------------------------
e719cf2f8c | j-p-e-g | 2008-03-20 15:07:10 +0000

Really fix Xom's monster polymorph keywords.

--------------------------------------------------------------------------------
a0b75696ac | dolorous | 2008-03-20 15:02:44 +0000

Clean up the conversion-on-sight routines a bit more, and, for consistency, 
check for *living* holy beings' turning against you.

--------------------------------------------------------------------------------
c102112f5a | dolorous | 2008-03-20 14:50:49 +0000

Readd checks for randomly chosen monsters' being alive (oops).

--------------------------------------------------------------------------------
31d689b8a6 | j-p-e-g | 2008-03-20 14:48:57 +0000

Outsource more speech: * Beogh's rants on destroying one of his idols * orcs 
converting to you * holy beings becoming neutral

--------------------------------------------------------------------------------
813bc92e90 | dploog | 2008-03-20 12:58:13 +0000

Moved readme.txt to docs/quickstart.txt and updated it. Removed 
README.stone_soup.txt and replaces it be readme.txt. Note that ?^ (in-game 
reading of the old readme.txt) will now show a completely different file. We 
may want to allow both reading of readme.txt and docs/quickstart.txt.

--------------------------------------------------------------------------------
ec567d3841 | pauldubois | 2008-03-20 09:27:59 +0000

#if 0 out some methods that don't actually exist.

--------------------------------------------------------------------------------
3e790da2ce | pauldubois | 2008-03-20 08:44:29 +0000

Fix probable 64-bit portability problem.

--------------------------------------------------------------------------------
ce5e0d9e5f | dolorous | 2008-03-20 05:28:46 +0000

Add a few more piety-related consistency fixes.

--------------------------------------------------------------------------------
27312c1ef6 | dolorous | 2008-03-20 02:29:09 +0000

Add minor type fix.

--------------------------------------------------------------------------------
b14789f42e | dolorous | 2008-03-20 02:21:06 +0000

Fix spelling inconsistency: invigorated -> invigourated.

--------------------------------------------------------------------------------
953f7a8bb5 | dolorous | 2008-03-20 01:09:16 +0000

Another comment fix.

--------------------------------------------------------------------------------
67bae2df48 | dploog | 2008-03-20 00:32:10 +0000

Moved 034_changes.txt to /docs and Fixed it (oops). Changed some settings in 
init.txt.

--------------------------------------------------------------------------------
c992edfb89 | dploog | 2008-03-20 00:05:35 +0000

Added a file (034_changes.txt in the main folder) explaining the main interface 
changes from 0.3.4 to 0.4 (key set, monster colours, butcher interface) and how 
get back to the old state.

--------------------------------------------------------------------------------
4b52d0ad9f | dolorous | 2008-03-19 23:43:19 +0000

Comment fix.

--------------------------------------------------------------------------------
c5103871e4 | j-p-e-g | 2008-03-19 22:59:11 +0000

Fix Xom keywords for monster polymorph.

--------------------------------------------------------------------------------
d50ea0f859 | dolorous | 2008-03-19 21:25:16 +0000

Simplify checks for Xom demons.

--------------------------------------------------------------------------------
d7b8e0e0ad | dolorous | 2008-03-19 21:01:43 +0000

Add more holiness-related cleanups.  Notably, the ANGEL-related conducts have 
been renamed to HOLY-related conducts, since they apply to all holy beings, not 
just angels.

--------------------------------------------------------------------------------
0896310d74 | dolorous | 2008-03-19 20:18:30 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
8668a39cff | dolorous | 2008-03-19 19:53:38 +0000

Adjust TSO's "power from killing" messages again.

--------------------------------------------------------------------------------
9a795ed3df | dolorous | 2008-03-19 19:50:53 +0000

Adjust the "power from killing" god power messages to be more accurate.

--------------------------------------------------------------------------------
e061442d0d | dolorous | 2008-03-19 19:32:55 +0000

Fix making Xom's summoned mixes of demons and non-demons hostile.

--------------------------------------------------------------------------------
431c626722 | dolorous | 2008-03-19 18:31:13 +0000

More Xom summoning fixes: give all single non-demon summons a chance of being 
hostile.

--------------------------------------------------------------------------------
d693974f8c | dolorous | 2008-03-19 18:18:56 +0000

Fix a comment.

--------------------------------------------------------------------------------
5dba5a8f6d | dolorous | 2008-03-19 17:18:07 +0000

If Xom summons a mix of demons and non-demons, have a chance that one or both 
factions will be hostile.

--------------------------------------------------------------------------------
eae71c86ac | dolorous | 2008-03-19 17:11:03 +0000

Make a variable const.

--------------------------------------------------------------------------------
6bd53ca4cc | j-p-e-g | 2008-03-19 16:20:19 +0000

Outsourcing Xom speech.
"You hear the rejoicing of dolorous and dpeg!"
Xom is fascinated!

--------------------------------------------------------------------------------
7f3aa8091b | dolorous | 2008-03-19 15:02:34 +0000

Add whitespace fixes again.

--------------------------------------------------------------------------------
aa6cab0da5 | dolorous | 2008-03-19 15:00:19 +0000

Move monsters' not losing backlighting from a halo to (hopefully) the right 
place in the code.

--------------------------------------------------------------------------------
b0d7c6eb23 | j-p-e-g | 2008-03-19 13:55:30 +0000

Add some logic to unidentified potions of blood congealing (Bug 1917520) and 
rename "deck of defense" -> "defence" to fix Bug 1919475.

--------------------------------------------------------------------------------
d57d43a14c | dolorous | 2008-03-19 13:39:15 +0000

Add new messages for Xom's sending you angels/daevas in place of high demons.

--------------------------------------------------------------------------------
719fa66dd6 | dolorous | 2008-03-19 02:50:46 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
a95aa60b90 | dolorous | 2008-03-19 02:49:52 +0000

Add still one more Beogh fix: only accept collateral kills from orcish 
followers (not charmed orcs) again.

--------------------------------------------------------------------------------
c516f02f0a | dolorous | 2008-03-19 02:40:35 +0000

Also use is_orcish_follower() when recalling your orcish followers.

--------------------------------------------------------------------------------
383888c981 | dolorous | 2008-03-19 02:35:59 +0000

Add a few last Beogh-related cleanups.  As part of this, move the check for an 
orcish follower into its own function, so that it can eventually be used for 
blessing followers.

--------------------------------------------------------------------------------
4a6720baba | dolorous | 2008-03-19 01:50:06 +0000

Expand choose_random_nearby_monster() to optionally allow choosing only 
particular types of monsters.  Accordingly, make it global, and move it from 
decks.cc to monstuff.cc.
In xom.cc, remove get_random_nearby_monster(), as it's duplicate code, 
and replace it with a call to choose_random_nearby_monster(), filtering 
out those monsters that shouldn't be mutated.

All this should eventually allow choosing a random friendly monster near 
you, for the proposed TSO/Beogh blessings.

--------------------------------------------------------------------------------
01811808aa | dolorous | 2008-03-18 22:23:33 +0000

Add minor consistency fixes.

--------------------------------------------------------------------------------
05744ac775 | dolorous | 2008-03-18 22:16:18 +0000

Put the species list in the documentation in the same order as the (recently 
resorted) list of species on the introduction screen.

--------------------------------------------------------------------------------
95088ec6b1 | dolorous | 2008-03-18 20:01:20 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
5edb0ffc3c | dolorous | 2008-03-18 19:59:11 +0000

Add yet more whitespace fixes.

--------------------------------------------------------------------------------
6d8b8442d1 | dolorous | 2008-03-18 19:54:12 +0000

Consistency fix for Beoghites: Don't check for the MF_ATT_CHANGE_ATTEMPT flag 
if some of your followers abandon you, since that's not done when they all 
abandon you.

--------------------------------------------------------------------------------
989f130331 | dolorous | 2008-03-18 17:49:03 +0000

Add more whitespace fixes.

--------------------------------------------------------------------------------
78c7c191e0 | dolorous | 2008-03-18 17:48:30 +0000

Put the previous check for being undead back in player::rot(), but make an 
exception for living vampires, so the effect is the same as before for other 
undead (oops).

--------------------------------------------------------------------------------
fcf40880a3 | dolorous | 2008-03-18 17:34:38 +0000

Remove erroneous check for being undead in player::rot(), as rot_player() does 
it properly.

--------------------------------------------------------------------------------
bb408945e1 | dolorous | 2008-03-18 06:57:47 +0000

Really fix all inconsistencies between orcs converted by Beoghites and those 
converted by the Crusade card.  If you use the latter, but you worship Beogh, 
and the monster to be converted is an orc, call the Beogh conversion function 
instead.  This properly sets the MF_CREATED_FRIENDLY flag (so that, if you kill 
it, it will give no experience) and the MF_ATT_CHANGE_ATTEMPT flag (so that, if 
you attack it, it won't have any chance of being converted again by the sight 
of you).

--------------------------------------------------------------------------------
c0e1cd77df | dolorous | 2008-03-18 06:06:05 +0000

Add a few more minor cosmetic cleanups.

--------------------------------------------------------------------------------
ab6ea2c5b5 | dolorous | 2008-03-18 05:10:13 +0000

Comment fix.

--------------------------------------------------------------------------------
dbbe6f2db2 | dolorous | 2008-03-18 05:06:43 +0000

Fix one last instance of the sanity check bug in i_feel_safe().

--------------------------------------------------------------------------------
16e770cc54 | dolorous | 2008-03-18 05:04:28 +0000

Fix another instance of the sanity check bug in there_are_monsters_nearby().

--------------------------------------------------------------------------------
d19499bde3 | dolorous | 2008-03-18 03:45:11 +0000

Add one more minor cosmetic fix.

--------------------------------------------------------------------------------
e3f553702e | dolorous | 2008-03-18 02:57:48 +0000

Fix sanity check bug in choose_random_nearby_monster(), and also in 
beogh_followers_abandon_you(), which is based on the same code.

--------------------------------------------------------------------------------
f44217e944 | dolorous | 2008-03-18 02:55:24 +0000

Revert previous attempt at simplification, as there has to be a better way to 
do that.

--------------------------------------------------------------------------------
ad292ded01 | pauldubois | 2008-03-18 00:45:53 +0000

Add text to clarify that this a style reference, not "how to write excellent 
code" or "how to avoid bugs" or anything like that.

--------------------------------------------------------------------------------
f670880706 | dolorous | 2008-03-18 00:18:35 +0000

Various Xom neutrality adjustments:
* Allow him to randomly summon angels or daevas (on the grounds that 
they're misguided, curious, exiled from their usual god, etc.), with the 
same rarity as greater demons.  Add appropriate introductory messages 
for this (from both me and dploog).

* Remove "Xom the Psychopath" from his list of titles, and replace it 
with the older "Xom the Begetter of Discontinuities" for now.

* Remove "Call Imp" from his list of spells that he can randomly make 
you cast, as he seems to summon enough minor demons through other means, 
which makes it an overlap (as the Summon Guardian and Summon Daeva 
"spells" would also be).

--------------------------------------------------------------------------------
cd1d40cfd7 | pauldubois | 2008-03-17 23:32:51 +0000

First draft of coding conventions.  If you're reading this, and you're 
interested, can you comment?

--------------------------------------------------------------------------------
96dc1ace19 | dolorous | 2008-03-17 23:03:17 +0000

Apply j_m_f's patch in [1915581]: All evil gods are now described as such in 
their associated text, Vehumet is now neutral, and Xom is neutral again.  
(Adjustments for Xom to actually make him neutral are coming soon.)

--------------------------------------------------------------------------------
a3018888fb | dolorous | 2008-03-17 22:55:27 +0000

Add a few more cosmetic fixes.

--------------------------------------------------------------------------------
14691be53b | dolorous | 2008-03-17 21:06:17 +0000

For Beoghites, give orcish followers as well as players a chance to forcibly 
convert orcs.

--------------------------------------------------------------------------------
567d279f09 | dolorous | 2008-03-17 20:12:07 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
54945881c3 | pauldubois | 2008-03-17 11:40:33 +0000

More fixes so 1916515 doesn't happen again.
Add BRANCH_FIRST_HELL and BRANCH_LAST_HELL and check vs those in 
player_in_hell()
rather than hard-coding the enums.  Whoever did that is naughty; they should 
have
at least stuck a comment in the branch enum.

Also added some compile-checks in player_in_hell to draw attention in
case the hell branches are touched.

Also added some startup code that verifies the branches[] array (whose name
should be changed to Branches!) is in the same order as the branches enum.

--------------------------------------------------------------------------------
eda11ccd07 | pauldubois | 2008-03-17 11:21:46 +0000

bug 1916515: Roll back a portion of r3460 which broke zot.  But why? Will leave 
bug open until we find out.

--------------------------------------------------------------------------------
775337dbac | pauldubois | 2008-03-17 10:02:06 +0000

desc_search bugs (1905764)
- Fix: error for too many matches is not displayed
- Fix: rakshasa cannot be looked up (duplicate entries in Mon_Name_Cache)
- Fix: can't look up monster by the symbol ' '

- Didn't fix: can't look up plain draconians.  mon_global_level() for them
  returns 0, so they're getting filtered out by monster_filter.  But I don't
  know why the filter checks for 0, so I don't want to remove it.
- Didn't fix: simulacrum lookup
  The monster name in mon-data.h is "large simulacrum" and "small simulacrum".
  However, name in the DB is "simulacrum".  The regexp matches the db key
  "simulacrum", then tries to look up the monster id and matches nothing.
  I think the right fix is to change the db?  But I'm not sure right now.

--------------------------------------------------------------------------------
4b6ac5613a | pauldubois | 2008-03-17 08:17:21 +0000

Remove bogus comment. Fix longdesc for potions of congealed blood (1914523).

--------------------------------------------------------------------------------
e75d4ff45d | pauldubois | 2008-03-17 08:11:09 +0000

some spelling and grammar

--------------------------------------------------------------------------------
8ba1724964 | pauldubois | 2008-03-17 05:54:42 +0000

Cleanup/refactoring of tags.cc.  No functional changes.  I've been running with 
and without this patch applied for about a week, and none of my saves have 
broken, so I'm ready to commit it.
- Tag system no longer uses one big (shared!) global buffer.  This
  was the original impetus behind the change...
- Change every use of tagHeader into reader or writer (touches a lot).
- Split tagHeader into two classes: reader and writer.  Turns out
  every place that used tagHeader only cared about reading or writing
  and not about tags at all.  There was nothing left in tagHeader, so
  it disappeared along with a bunch of grotty special-case code.
- Not done: merge the files.cc read/writeThing code with the tags.cc
  marshall/unmarshallThing code.  This patch is big enough already.

--------------------------------------------------------------------------------
314a2c0efb | pauldubois | 2008-03-17 05:08:34 +0000

- Move "shaft disappears in a puff of logic" logic further down, so it's   
easier to test floating over traps - Don't yesno if an airborne player tries to 
move over a shaft.

--------------------------------------------------------------------------------
c64c0e054c | pauldubois | 2008-03-17 04:43:12 +0000

forgot yesnoquit()

--------------------------------------------------------------------------------
13f241a701 | pauldubois | 2008-03-17 04:26:10 +0000

Some yesno standardisation.  Some yesno prompts had a trailing space, some 
didn't. Now all of them do (but it's applied in yesno(), so it's easy to get 
rid of).
Also, "anyways" -> "anyway".

--------------------------------------------------------------------------------
89ed548fe5 | pauldubois | 2008-03-17 04:09:18 +0000

Fix 1915965, infinite loop identifying identified items with identified scroll 
of identify, bug and fix identified by sorear.

--------------------------------------------------------------------------------
a1cb627fe6 | pauldubois | 2008-03-17 03:50:11 +0000

Morphed SingleFileDB into TextDB, a class that accepts any number of input 
files.  Use it for all the databases, at least all the ones managed by 
database.cc.  Gets rid of 150 lines of code :)
Also, fix 1910634 by adding insult.txt to the shout db.  It results in
some duplication in the dbs on disk, but it's an OK fix for now, I think.

The DBs are now in the subdirectory saves/db/ ; is this a problem for
distribution?  I poke around in that directory occasionally and it's
convenient to have the DBs out of the way.

--------------------------------------------------------------------------------
ca4ff26143 | dploog | 2008-03-16 23:13:10 +0000

Vault:8 fix (sorear).

--------------------------------------------------------------------------------
ba46e90b2e | dolorous | 2008-03-16 20:51:52 +0000

One more comment fix.

--------------------------------------------------------------------------------
f28f20cc84 | pauldubois | 2008-03-16 20:29:03 +0000

Make global variables follow conventions.

--------------------------------------------------------------------------------
895dcb901e | dolorous | 2008-03-16 19:45:48 +0000

Comment fix.

--------------------------------------------------------------------------------
ce599cf45a | dolorous | 2008-03-16 19:44:48 +0000

Consistency fix: Make sure all forcibly converted orcs are near you.

--------------------------------------------------------------------------------
77676db4b8 | dolorous | 2008-03-16 19:16:22 +0000

More cosmetic fixes.

--------------------------------------------------------------------------------
03c498835e | dolorous | 2008-03-16 17:34:43 +0000

Add a few more miscellaneous cleanups.

--------------------------------------------------------------------------------
cfa1009c4b | dolorous | 2008-03-16 14:18:46 +0000

Remove redundant sanity check.

--------------------------------------------------------------------------------
c875517f37 | dolorous | 2008-03-16 14:11:24 +0000

Halo-related cleanups: limit the halo's radius to (roughly) FOV, add sanity 
checks to make sure we're not looking for monsters outside the monster grid, 
and reduce some code duplication.

--------------------------------------------------------------------------------
9b9588edc8 | pauldubois | 2008-03-16 07:44:30 +0000

1846578 /digging doesn't target monsters

--------------------------------------------------------------------------------
01301efb3f | dolorous | 2008-03-16 03:29:31 +0000

Implement TSO's halo.  It applies backlight to the player and all monsters 
within the (circular) halo, and then keeps the duration of that backlight from 
running out.  You currently lose it if you go under penance.  Also, there are 
no visual effects yet, other than the usual backlight effects.

--------------------------------------------------------------------------------
f3e9c1a098 | pauldubois | 2008-03-16 02:27:38 +0000

Fix door opening and closing not updating the entire door.

--------------------------------------------------------------------------------
69cde0d0b0 | dploog | 2008-03-16 02:20:35 +0000

Adjust the two entry vaults with vertically aligned doors, a la .xxx+xxx. 
.xxx+xxx. These might not be so bad (or there could be even added logic to 
prevent that they are treated as large doors) but this is the simplest solution.

--------------------------------------------------------------------------------
fcffc0bf37 | pauldubois | 2008-03-16 01:53:55 +0000

Pull yes or no questions requiring a typed "yes" into into a yes_or_no(), 
analagous to "yesno".  Tested with zot,lava,water,quit.

--------------------------------------------------------------------------------
bea6f1793e | pauldubois | 2008-03-16 01:10:45 +0000

FR [ 1914596 ] Inventory header line

--------------------------------------------------------------------------------
636cb15028 | pauldubois | 2008-03-15 23:47:33 +0000

Changed door-open failure message to match the door-close message. Added 
special case messages for doors already open or closed. Maybe there should be 
flavor messages for # gateways?  We use the same noun (gate/gateway) for # and 
+++.
Remove leading underscore from find_connected_identical() now that it's public.

Change large door descriptions slightly:
  - "open/closed large door" -> "large open/closed door"
  - "There's a creature in the large doorway!" -> "... in the doorway"
  - Other messages read a bit better without the adjective, but if it's removed
    then almost all the flavor is gone.  So I left them alone.

--------------------------------------------------------------------------------
80bb6d7dfc | dolorous | 2008-03-15 23:33:47 +0000

Cosmetic fix.

--------------------------------------------------------------------------------
44a49d40fb | pauldubois | 2008-03-15 23:07:55 +0000

Fixed description of unidentified silver horn.

--------------------------------------------------------------------------------
c614ffaaa9 | pauldubois | 2008-03-15 21:36:13 +0000

Fixed: Equipped weapons could make their way into fire_order if they were +f.

--------------------------------------------------------------------------------
6a6fe96636 | pauldubois | 2008-03-15 21:31:57 +0000

Initialize quiver to ENDOFPACK instead of 0.  Fixes the case: play a hunger, 
switch from a) dagger to b) bow, the quiver is your dagger instead of arrows.

--------------------------------------------------------------------------------
90fe4dad67 | dshaligram | 2008-03-15 20:29:45 +0000

[1914525] Fixed pluralisation of branded missiles in the quiver.

--------------------------------------------------------------------------------
1dbb0292f2 | dshaligram | 2008-03-15 20:22:33 +0000

Removed mutation depth restriction as suggested by the mutant overlords of 
##crawl.

--------------------------------------------------------------------------------
2515dbc8f2 | dshaligram | 2008-03-15 20:16:40 +0000

[1914615] Fixed potions of mutation accidentally becoming eligible for early 
generation.

--------------------------------------------------------------------------------
03b66a80f1 | dshaligram | 2008-03-15 20:10:03 +0000

Fixed bad SUBST syntax (sorear).

--------------------------------------------------------------------------------
f45815f84b | dshaligram | 2008-03-15 20:06:05 +0000

[1914670] Fixed randarts possibly getting up to -7 negative ench (sorear).

--------------------------------------------------------------------------------
eb8308719a | dolorous | 2008-03-15 19:38:08 +0000

Add still more whitespace fixes.

--------------------------------------------------------------------------------
6becbd0e31 | dolorous | 2008-03-15 19:30:46 +0000

Simplify Beogh-worshipping check.

--------------------------------------------------------------------------------
796a19d5b9 | dolorous | 2008-03-15 16:16:36 +0000

Eliminate recursive copying from the build, as it'll copy the hidden SVN 
directories, which aren't needed.

--------------------------------------------------------------------------------
0755365e33 | dolorous | 2008-03-15 15:53:28 +0000

Account for the new database directory when building.  Apply evktalo's patch 
[1914727] to fix makefile.mgw, and apply similar changes to the other makefiles 
to fix the same problem (untested).

--------------------------------------------------------------------------------
547d772939 | dolorous | 2008-03-15 15:07:01 +0000

Clean up handling of zombie-types.

--------------------------------------------------------------------------------
3e2e58c175 | dolorous | 2008-03-15 15:05:32 +0000

Add minor whitespace fixes.

--------------------------------------------------------------------------------
e70481a7e1 | dolorous | 2008-03-15 14:00:55 +0000

Add more holiness cleanups.

--------------------------------------------------------------------------------
c0daf0b5b7 | dolorous | 2008-03-15 00:46:52 +0000

Typo fix.

--------------------------------------------------------------------------------
c86647071f | dploog | 2008-03-15 00:38:59 +0000

Restricted several minivaults branch-wise (BR 1902748).

--------------------------------------------------------------------------------
94e7891faf | dploog | 2008-03-15 00:01:37 +0000

Added synonyms in yelling interface (!=t) and when butchering (D=c) so that 
players stubbornly sticking to the old keyset have more fun.

--------------------------------------------------------------------------------
7d021c2c10 | dolorous | 2008-03-14 23:17:33 +0000

Fix missing include.

--------------------------------------------------------------------------------
4a8e20af7a | dolorous | 2008-03-14 23:14:26 +0000

Fix one more potential source of evil allies for good-god worshippers.

--------------------------------------------------------------------------------
40e7ec6f22 | dolorous | 2008-03-14 23:11:06 +0000

Simplify another good-god check.

--------------------------------------------------------------------------------
ddd6d0cb1e | dolorous | 2008-03-14 23:06:29 +0000

For consistency, disallow evil allies for all followers of the good gods.

--------------------------------------------------------------------------------
c5e645472a | dolorous | 2008-03-14 22:46:40 +0000

For TSO worshippers, don't allow the Crusade card to convert evil monsters.

--------------------------------------------------------------------------------
3c1d96bf6c | dolorous | 2008-03-14 22:38:58 +0000

Consolidate the holy/evil and unholy attitude change routines.

--------------------------------------------------------------------------------
af57b9ff81 | dolorous | 2008-03-14 22:17:41 +0000

Make evil and unholy allies abandon you if you start worshipping a good god.

--------------------------------------------------------------------------------
5f822b67a2 | dploog | 2008-03-14 21:56:27 +0000

Added note on metal walls grounding. In case the line is too whimsy, just 
change it.

--------------------------------------------------------------------------------
e4c4f719e0 | dolorous | 2008-03-14 21:33:19 +0000

Add minor punctuation fixes.

--------------------------------------------------------------------------------
113fd141e6 | dploog | 2008-03-14 21:24:37 +0000

Added some explanation on heavy vs light armour.
There is an old contradiction in the manual; check lines 2068 and 698.

--------------------------------------------------------------------------------
dbfc744a8b | dolorous | 2008-03-14 19:18:21 +0000

Eliminate the passive voice from one instance of Beogh orc-speech.

--------------------------------------------------------------------------------
d1384607bf | dolorous | 2008-03-14 18:35:05 +0000

At the religion prompt for priests, make Enter work properly if you have a 
previous religion set.

--------------------------------------------------------------------------------
96a3b31ff0 | j-p-e-g | 2008-03-14 11:45:19 +0000

Vampires are now only poison resistant if thirsty or worse, and I've added a 
list of their current resistances and such to the status (@) output, depending 
on their state of hunger. If poison resistant they'll now also attempt to drain 
monsters of type CE_POISONOUS. The regeneration rate at full and "alive" has 
been lowered significantly. (The effect of a permanent ring of regeneration 
without any of the drawbacks was much too strong.) Oh, and non-thirsty vampires 
(satiated or above) can now be rotted, e.g. by potions of decay.
Also, Red Draconians and White Draconians now gain their resistances
at xl 14 rather than 18, as suggested in FR 1865186. (I'm leaving the 
rest of that FR alone for now.)

--------------------------------------------------------------------------------
b023db56a8 | dolorous | 2008-03-14 05:04:41 +0000

When turning god gifts or piety-converted monsters hostile, make sure that 
they're properly alerted, so that the neutral ones don't keep wandering around 
aimlessly.

--------------------------------------------------------------------------------
bc00511096 | dolorous | 2008-03-14 04:49:05 +0000

Holy being adjustments: If you've turned them neutral on sight, and then switch 
to a neutral or evil god, they'll turn hostile.  Also, TSO's god gifts will 
only turn neutral if you switch from him to another good god.

--------------------------------------------------------------------------------
7dd4767eae | dolorous | 2008-03-14 04:04:26 +0000

Change TSO's starting message.

--------------------------------------------------------------------------------
5243079928 | dolorous | 2008-03-14 02:18:34 +0000

Fix uninitialized variable.

--------------------------------------------------------------------------------
664400de5a | dolorous | 2008-03-14 02:11:55 +0000

Add minor comment fix.

--------------------------------------------------------------------------------
f01463de3a | j-p-e-g | 2008-03-13 23:05:12 +0000

Overhauled potions of blood and vampires.
1.) Vampires can only suck blood from creatures with M_COLD_BLOOD or
    M_WARM_BLOOD set (no insects anymore!)
    
    These restrictions are the same for blood spatter.
    Also, the monster's corpse must be of type contaminated (e.g. gnoll) 
    or clean. Everything will be rejected.

2.) At xl 6 vampires gain the ability to create potions of blood from 
    butchered corpses. The delay is the same as for butchering, and they also
    need a butchering tool (since I now think fangs don't really cut it);
    only the messaging is different, and the result, of course.
    If the monster doesn't meet the restrictions in (1), the corpse gets
    butchered instead (important when there are necromancers roaming about)
    and the resulting chunks don't get the THROWN flag set because vampires 
    are unlikely to want to pick them up.

3.) Potions of blood can turn bad. 

    They last about 1200 turns which is a rather long time, though of course 
    not infinite. Potions created from corpses take the corpse age into 
    account. From age 199 downwards potions of blood are described as 
    "congealed blood". The effect when quaffing is entirely the same, it's 
    just a warning that the potion will soon disappear.

    I've moved the potion descriptions over into item.plus, so that I could
    use item.special for the timer to allow for easy comparison in 
    update_corpses() etc.

    Ideally each stack of potions of blood would have a props vector
    attached (similarly to decks) with the timeout turns stored in order 
    oldest to newest, so that you'd always drink the oldest potion first, and
    if a potion was too old it (and it's time value) would just drop out of
    the stack.
    Since I haven't got this to work yet, instead the weighted average age
    of two substacks is calculated and used for the combined stack. 
    Congealed (age < 200) and comparatively fresh (age >= 200) potions of
    blood will never stack.

As suggested in FR 191314, !blood are a now an additional power source for 
Sublimation of Blood, and the used potion turns into decay. And speaking of 
decay, I've modified the mummy curse to only affect a substack if the 
to-be-decayed potions are blood because I think losing your food source that 
way would be the equivalent of spores destroying all your food at the same 
time.
 
I think that's it; might still be buggy though I *did* test with some 
vampires, both wiz-mode and not, and because of the special -> plus change
for potions, existing potions will now all look alike (clear potions).

--------------------------------------------------------------------------------
2f4c72e5d1 | dolorous | 2008-03-13 17:05:38 +0000

Clean things up a bit more.

--------------------------------------------------------------------------------
40b67090ce | dolorous | 2008-03-13 17:01:47 +0000

Clean up the routine to let vampires eat (drink?) from their inventory, so that 
you don't have to press Escape twice to abort out of the prompt.

--------------------------------------------------------------------------------
84912ad5cf | j-p-e-g | 2008-03-13 15:35:14 +0000

Abolish M_HUMANOID flag as it wasn't used anywhere. Comments claimed it was 
necessary for Glamour but even that appears to have used another function, 
mons_is_humanoid(), that made checks against monster glyph instead. Strange.
So in case anyone is badly in need of a monster flag, no. 15 is free! :)

--------------------------------------------------------------------------------
14548892e2 | dolorous | 2008-03-13 15:32:03 +0000

If the player is a vampire, and something in their inventory is rotting, 
display the message for a level 1 or level 2 saprovore.  (They shouldn't be 
touchy about rotting meat because they don't eat.)

--------------------------------------------------------------------------------
2a9689ff31 | dolorous | 2008-03-13 14:07:56 +0000

Clean up holiness handling, as well as a few other miscellaneous things.

--------------------------------------------------------------------------------
0cac1ce292 | dolorous | 2008-03-13 13:22:31 +0000

In monsters::can_drown(), make monster vampires able to drown, as player 
vampires can.

--------------------------------------------------------------------------------
8dc30e2aaa | j-p-e-g | 2008-03-13 12:05:12 +0000

Another few modifications to monster speech, and removed (or rather, commented 
out, for now) the dependency of the W/T, P/R merge of easy_unequip (I'd 
completely mixed up the options.) If we decide we keep this behaviour and don't 
add a replacement option, the commented out "You're already wearing that." 
messages can be removed.

--------------------------------------------------------------------------------
c808232804 | dolorous | 2008-03-13 05:08:54 +0000

Fix a comment.

--------------------------------------------------------------------------------
0c337e2625 | dolorous | 2008-03-13 03:08:22 +0000

Comment fixes.

--------------------------------------------------------------------------------
864fa3720c | dolorous | 2008-03-13 02:54:20 +0000

Add still more cosmetic fixes.

--------------------------------------------------------------------------------
77ba3d3024 | dolorous | 2008-03-12 19:28:56 +0000

Add more cosmetic fixes.

--------------------------------------------------------------------------------
4df9883b2f | dolorous | 2008-03-12 18:03:30 +0000

If you destroy an orcish idol using Lee's Rapid Deconstruction, make sure Beogh 
takes revenge properly.

--------------------------------------------------------------------------------
51dc09a4cf | dploog | 2008-03-12 16:52:42 +0000

Document Ctrl-D.

--------------------------------------------------------------------------------
5ce0d0260a | j-p-e-g | 2008-03-12 16:43:37 +0000

Modify the Zot trap "Do you really ...?" prompt to only accept "yes" as a 
confirming answer, and add an option trap_prompt that, if set to true (the 
default) will prompt the player before stepping on known mechanical traps 
trapwalk.lua considers unsafe.

--------------------------------------------------------------------------------
95786b6d3f | dolorous | 2008-03-12 16:12:34 +0000

Fix compilation.

--------------------------------------------------------------------------------
9bf7968e80 | dolorous | 2008-03-12 16:08:07 +0000

Reenable collateral kills for Beogh; they were disabled when orc followers were 
changed to no longer get the "god gift" flag (oops).

--------------------------------------------------------------------------------
9fe5cb50e5 | j-p-e-g | 2008-03-12 15:22:14 +0000

Fix logic of electricity affecting monsters in metal walls (I think), and add 
Ctrl-D as a synonym for '~' because that doesn't exist on all types of 
keyboards.

--------------------------------------------------------------------------------
71e8cf1a93 | j-p-e-g | 2008-03-12 14:25:50 +0000

Fix new firing interface to also apply when selecting items via tile inventory. 
(This will also change the quiver, so that tile players no longer need to  
repeatedly choose the same stack of darts to fire: ff will work nicely.)
Implement first part of FR 1911866: merging W/T, R/P
The existing option "easy_unequip" now also allows direct choice of which 
armour to take off from the 'W' menu, and same for jewellery for 'P'. Warning 
inscriptions are respected.
Now we only need to add a new sorting option sort_equipped that takes care of 
equipped stuff being listed first in the inventory. Last time I tried something
like this (chunk sorting by age) I failed miserably, so I'm making no promises.

Also tweak my recent {tried} modification to only apply to jewellery since for
some reasons all unidentified randart weapons show {tried} where jewellery is
really picky about which randarts have been tried and which haven't. Probably
still needs fixing.

--------------------------------------------------------------------------------
682e94e3c1 | dploog | 2008-03-12 03:17:51 +0000

Added some more options to the veteran section. General update of init.txt and 
crawl_options.txt. (I assumed that hud_caption_colour is just the old name for 
status_caption_colour.)

--------------------------------------------------------------------------------
db13d63c76 | dolorous | 2008-03-11 22:45:40 +0000

Move the routine to calculate the racial armor bonus into its own function.  
Also, use it to properly apply racial bonuses to shields, so that racial 
shields mean something.  (Note that the bonus for shields is 2/3 the bonus for 
armor, as the upper limit for shields is 20, as opposed to armor's 30.)

--------------------------------------------------------------------------------
7f1f52b6d4 | j-p-e-g | 2008-03-11 20:18:40 +0000

Another of those commits on monster speech, hopefully the last one for some 
time, though. I added a new prefix "related" if the player character has the 
same genus as the monster. My new prefix additions (hostile, related and 
religion) can now be skipped in the speech lookup, which fixes a couple of 
problems where several monsters were forced silent because of lookup problems. 
Also clean up the lookup process for silence, allow charmed monsters to 
sometimes speak (if rarely) and added several debugging statements that are 
also mentioned in monster_speech.txt that is now clearer than ever before (I 
hope).
Fixed a couple of bugs in the monster shape calculation where the old
glyphs were still being used. Also, a Draconian character eating any type
of Draconian will now count as cannibalism.

Also:
 FR 1894060:  Level annotations now prompt for confirmation if they contain 
              an exclamation mark (rather than "WARN").
 Fix 1859443: Arriving on a square via staircase now calls request_autopickup
              and will describe items on the square.

Oh, and fix init.txt to really allow reading in macros from external files.

--------------------------------------------------------------------------------
1daa1c18ab | dolorous | 2008-03-11 19:33:28 +0000

Allow non-Hill Orcs to occasionally summon wargs via Call Canine Familiar 
(although not as often).

--------------------------------------------------------------------------------
07f8353f7e | dolorous | 2008-03-11 16:25:02 +0000

Adjust TSO retribution probabilities.  New rules (not in comments yet because 
they may be adjusted again):
3/7: summon daevas
2/7: cleansing flame
2/7: 50% chance of noise, 50% chance of silence (anti-noise)

The original proposal also mentioned pestilence as an option, probably 
to be used on low-level characters instead of daevas, but the noise 
already overlaps with Zin (and fits, I think, given TSO's anti-stealth 
stance), and adding pestilence would just overlap with Zin more.  Maybe 
there should be a different *kind* of pestilence for TSO, or some other 
low-level summoning that would fit him?

--------------------------------------------------------------------------------
e60cba03f1 | dolorous | 2008-03-11 16:11:21 +0000

Change the message generated for TSO-generated silence.

--------------------------------------------------------------------------------
af6c250bb5 | dolorous | 2008-03-11 15:33:49 +0000

Make sure angels and daevas get non-racial equipment, as not all races that 
e.g. daevas can get equipment from can be paladins.

--------------------------------------------------------------------------------
4ff76f90af | dolorous | 2008-03-11 15:26:08 +0000

Still more TSO progress, Add silence as a retribution effect, and make all 
retribution checks occur with a 25% chance for now.  Also, slightly tweak the 
display of the cleansing flame blast.

--------------------------------------------------------------------------------
ec8640fbdf | dploog | 2008-03-11 14:52:28 +0000

Two small additions to the manual (Vampire drinking blood from corpses; +2 
being the limit enchantment for most armour.)

--------------------------------------------------------------------------------
7d16b8638d | dploog | 2008-03-11 12:51:12 +0000

First step towards easy switching off the major interface changes (monster 
colours, command keys, butchering interface). The macros in 
/docs/034_command_keys.txt all work but the loading process seems to not 
(always) take place. In other words: Help!

--------------------------------------------------------------------------------
f78eb19dc0 | pauldubois | 2008-03-11 10:33:01 +0000

whitespace fix

--------------------------------------------------------------------------------
e9531742d8 | dolorous | 2008-03-11 04:37:08 +0000

Fix compilation (oops).

--------------------------------------------------------------------------------
25b679cce3 | dolorous | 2008-03-11 04:34:15 +0000

More progress on TSO.  His retribution is now as follows:
* 33% chance of summoning daevas.

* 33% chance of blasting you with cleansing flame.  If you worship an 
evil god, you are now vulnerable to cleansing flame even if you're not 
undead or demonic; it seems fitting, especially as many living evil 
monsters seem to be priestly types.  (The code for the blast is 
currently based on a modified version of Xom's divine lightning.)

* 33% chance of booming voice.  This is currently identical to Zin's 
version, except that the message is different.

His smiting has been removed.

--------------------------------------------------------------------------------
5943f95a42 | dolorous | 2008-03-11 02:35:57 +0000

Add fixes based on ncampion's (slightly tweaked) patches:
[1910635] database lookups of autoinscribed wands fail
[1911451] mummies get a starvation warning

--------------------------------------------------------------------------------
ef44f8a14f | j-p-e-g | 2008-03-11 01:15:05 +0000

Some more monster speech additions:  * allow handling of specifically neutral 
or hostile monsters  * use "good god" or "evil god" prefix where applicable  * 
add speech for friendly/neutral holy beings in combination with good god    
followers
And... rewrote large portions of monster_speech.txt. I think I may now
finally have understood how this works, so in the not so distant I will have
have to clean up some of the hopelessly complicated functions I introduced 
when I only _thought_ I'd grasped the details. As usual, explaining it to 
someone else (if only in writing the documentation) really helped.

--------------------------------------------------------------------------------
470461852f | dploog | 2008-03-11 00:25:25 +0000

Again on the firing prompt. Ahem.

--------------------------------------------------------------------------------
dab1250cd4 | dploog | 2008-03-11 00:22:47 +0000

Changed firing prompt, replacing Ctrl-N/P by (/).

--------------------------------------------------------------------------------
b627c9873f | j-p-e-g | 2008-03-10 19:47:57 +0000

Implement FR 1897310: auto-travel through clouds if you are (semi)permanently 
immune to them, i.e. your equipment and/or mutations confer resistance at the 
necessary level.
Implement FR 1872840: When transforming, only remove clothes you cannot wear
when transformed. Also fix some inconsistencies in what you could keep wearing 
and what you could put on while transformed.

And a few more monspeak/wpnnoise replacements.

--------------------------------------------------------------------------------
c90dec78aa | dploog | 2008-03-10 18:13:25 +0000

Changed speak.txt -> monspeak.txt and noise.txt -> wpnnoise.txt in the 
documentation files.

--------------------------------------------------------------------------------
9f4e3befbf | dolorous | 2008-03-10 16:31:32 +0000

Add the equivalent of "Smite the infidels!" to Beogh orc-speech.  It seems more 
appropriate for Beogh than TSO, especially as the new TSO doesn't give you the 
ability to smite, and will soon lose the punishment of smiting as well.
Note that TSO needs a new introductory message now.

--------------------------------------------------------------------------------
2a2fa0501b | j-p-e-g | 2008-03-10 16:24:19 +0000

Rename speak.txt to monspeak.txt, and noise.xt to wpnnoise.txt as I keep 
thinking noise should refer to dungeon noises. Also, fix a wrong variable name 
for orc speech.

--------------------------------------------------------------------------------
9112dd81fb | j-p-e-g | 2008-03-10 16:07:30 +0000

Fix 1920778: mons_open_door() not respecting gates
Also fixed several cases where secret doors would be described as rock
walls regardless of their actual type, and gates are now described
correctly as well. This means that viewing them also prints, e.g. 
"An open gate." or "A closed large door." without further information 
since there are no database entries for these specific cases. (Not the 
entries for simple doors are any more exhaustive.)

Fix 1910729: Yredelmnul's Drain Life not waking monsters, using 
             ncampion's solution.

Also default greedy_explore to true. (FR 1911112)

--------------------------------------------------------------------------------
4fdf65ba2d | dolorous | 2008-03-10 15:50:30 +0000

Fix percentage comments in random_servant().

--------------------------------------------------------------------------------
ce0efa29dd | dolorous | 2008-03-10 15:12:00 +0000

Typo fix.

--------------------------------------------------------------------------------
82f2d0b891 | dploog | 2008-03-10 15:07:53 +0000

Change Gladiator description (FR 1779890).

--------------------------------------------------------------------------------
01678cab9d | dolorous | 2008-03-10 14:21:59 +0000

Clean up handling of neutralized holy beings and converted orcs.  Now that god 
gift handling has been generalized, they shouldn't get the "god gift" flag 
anymore.
This also fixes an inconsistency that can occur if an orcish follower 
was converted using the Crusade card; Beogh would object to your 
attacking it, but it wouldn't abandon you if you abandoned Beogh.

--------------------------------------------------------------------------------
880cd5a90a | j-p-e-g | 2008-03-10 13:44:40 +0000

Add more orc speech, courtesy of David. Add "neutral" prefix for speech lookup, 
currently unused. (One of these days I'll need to update monster_speech.txt 
*yet again*.)
Also: tweak modification scroll prompt to "Use on which item?" as 
      suggested by Eino in BR 1910782.

--------------------------------------------------------------------------------
5e7882be38 | dolorous | 2008-03-10 13:28:44 +0000

Add more comment fixes.

--------------------------------------------------------------------------------
361c56d9be | pauldubois | 2008-03-10 07:19:24 +0000

Two more instances of static members that already have vaguely linked 
definitions.

--------------------------------------------------------------------------------
6b30618d32 | pauldubois | 2008-03-10 07:05:58 +0000

Fix some link errors and a few remaining compile warnings (the ones that aren't 
bugs)
- if static const int foo=VALUE; is in header, don't need to have
  a definition in a .cc file.  The definition goes into every .cc
  file with "vague linkage"
- add sqlite and lua to the sln/vcproj

--------------------------------------------------------------------------------
dd916b6a6d | pauldubois | 2008-03-10 06:57:42 +0000

Fix some more compile warnings that look like they were pointing out bugs. 
(don't compare bool to int; don't << a variable number of bits)

--------------------------------------------------------------------------------
a9660d4b47 | pauldubois | 2008-03-10 06:54:02 +0000

Another one of those weird logic bugs.  Again, can someone verify this fix?

--------------------------------------------------------------------------------
8a737d409c | pauldubois | 2008-03-10 06:31:01 +0000

Another batch of msvc compile fixes. Added wrapper implementation for 
opendir/readdir Other functions left stubbed out. It's a shame that crawl's 
"direct.h" conflicts with <direct.h>. Fixed up use of AppHdr.h in a couple 
places (it must be included first); changed project to use precompiled headers.
crawl now compiles cleanly but doesn't link.

--------------------------------------------------------------------------------
70b1954c4d | dolorous | 2008-03-10 03:32:39 +0000

Add still more whitesspace fixes.

--------------------------------------------------------------------------------
77b5cadac6 | pauldubois | 2008-03-10 03:30:55 +0000

Batch of tiny changes for MSVC compiles. Most of these fall into the category: 
- don't use struct to refer to a class, and vice versa - msvc doesn't like 
unistd.h or dirent.h
Doesn't fix all the struct/class problems; I think I'll silence
those for now and move on because it's not all that important.

Tested on OS X.

--------------------------------------------------------------------------------
de978e5fed | pauldubois | 2008-03-10 03:27:07 +0000

Another instance of !expr != foo; removed the double negative.  Fixes compile 
error, but I still think the logic is still incorrect; can someone check who 
knows the code better check this out?

--------------------------------------------------------------------------------
6ff4dd81df | pauldubois | 2008-03-10 03:13:19 +0000

Fix bug caught by MSVC compiler. (!expr == foo) is not the same as (expr != foo)

--------------------------------------------------------------------------------
2c9ff2b332 | dolorous | 2008-03-10 02:34:19 +0000

Add comment and whitespace cleanups.

--------------------------------------------------------------------------------
1accc8f3ec | dolorous | 2008-03-10 01:47:58 +0000

Fix obsolete reference in the manual: '!' is now 't'.

--------------------------------------------------------------------------------
72adb452fa | dolorous | 2008-03-10 00:51:47 +0000

Make punctuation consistent.

--------------------------------------------------------------------------------
ca066cbdff | pauldubois | 2008-03-10 00:16:41 +0000

For 1909388: command key changes
Added init.txt option additional_macro_file, which does what you expect.
Macros are read after the player's macro.txt.
Documented new option.

--------------------------------------------------------------------------------
38ccc5f47d | j-p-e-g | 2008-03-10 00:00:39 +0000

Modify the command key help. Apparently something about my attempt to juggle 
with several versions of command.cc went wrong since patch refuses to swallow 
my diff, so I'm simply replacing command.cc with the improved version that I 
know is correct since there haven't been any other changes to this file since 
my last commit. I also removed the 't' shortcut for targetting, as it was only 
really useful in the form of "tt" when throwing something.
And I tried to find out what's up with the @imp_taunt@ stuff
but without success, sometimes it works, and sometimes it doesn't.

--------------------------------------------------------------------------------
7e97ac39a7 | dolorous | 2008-03-09 22:41:16 +0000

Add one more cosmetic fix.

--------------------------------------------------------------------------------
9a3546dd18 | pauldubois | 2008-03-09 22:40:12 +0000

Apply 1895318, with some cleanup.
This patch implements dploog's suggestion of hysteresis on piety.
gain/lose_piety() adjust you.piety_hysteresis first; you.piety is
modified with the leftovers (if any) once the hysteresis reaches its
limit.

Players start out at the upper end of the hysteresis region, meaning
there is no lag on piety increase, but a lag on piety decrease.

Hysteresis value set by "#define PIETY_HYSTERESIS_LIMIT 1"

Does not break old saves.

--------------------------------------------------------------------------------
2f9171efc4 | dolorous | 2008-03-09 22:34:14 +0000

Simplify.

--------------------------------------------------------------------------------
28ceef5fa3 | dolorous | 2008-03-09 22:07:23 +0000

Move Beogh's help text down one line to account for his new protection from 
harm.

--------------------------------------------------------------------------------
736d54113b | pauldubois | 2008-03-09 21:49:20 +0000

Fix crash on shutdown caused by bad order of static destruction (ugh).
crawl_environment's destructor uses dlua, but dlua was getting destroyed
first.  Rather than mess with stupidly complicated singleton patterns,
I've moved the definition of clua and dlua into acr.cc, to just before
crawl_environment.  This makes the order of construction/destruction
well-defined and should be a workable long-term solution.

--------------------------------------------------------------------------------
5e2d8f305c | j-p-e-g | 2008-03-09 21:48:55 +0000

Implement FR 1808966: Your summoned Daevas leave you if TSO puts you under 
penance, and they'll actually attack you if you abandon TSO. While the former 
only applies to Daevas on your current level, the latter happens for all 
visited dungeon levels. The functions used are generic enough to work for other 
cases as well, e.g. Trog's "Brothers in Arms" now also turn hostile if you 
leave Trog.
Also:
 * Make Beogh "protect you from harm" like Zin/TSO do, but only if you're not
   under penance.
 * Correct Amulet of inaccuracy description (Bug 1895810).

--------------------------------------------------------------------------------
dbe4130e23 | j-p-e-g | 2008-03-09 18:32:42 +0000

[Fix 1851878] Make options cls = random and race = random work in combination.
Also add the "Welcome, <name> the <species> <class>" to the selection screens
for weapons and such. While this mostly is necessary if you've got cls and race
both set to random, it is also useful for people like me who cannot remember
what combination they've just chosen. :p

--------------------------------------------------------------------------------
d108ecc79d | dolorous | 2008-03-09 18:01:38 +0000

Apply racial bonuses to *thrown* racial darts, so that the racial type means 
something.  Since only elves make hand crossbows, only they get any bonus from 
launched darts anyway.  Tweak ammo descriptions accordingly.

--------------------------------------------------------------------------------
575e3d6f27 | dolorous | 2008-03-09 17:23:49 +0000

Add minor cosmetic fixes.

--------------------------------------------------------------------------------
abda8eb1f0 | dolorous | 2008-03-09 16:58:55 +0000

Yet another TSO update: remove the "Annihilate Undead" ability, and comment out 
the related code for now, in case it's useful later.

--------------------------------------------------------------------------------
38dd6131c5 | j-p-e-g | 2008-03-09 15:11:15 +0000

[FR 1909388] Command key changes
new key   command            old key
-------   -------            -------
z         cast spell         Z
Z         zap wand           z
c         chop up            D, Dissect
C         close door         c
O         open door          o
o         auto-explore       Ctrl-O
Ctrl-O    Dungeon overview   O
v         evoke              E
E         show experience    C
t         shout              !
!         annotate level     Ctrl-I

Also changed the entire tutorial to match the new settings, and modified
several references in the game.

Other changes: 
* Another tutorial cleanup, so you now can really change the channel colour 
  and have it work.
* A belated mon_glyph colour swap: giant newt (was lightgreen, now green) and 
  giant lizard (was green, now lightgreen).

--------------------------------------------------------------------------------
786bef072d | dploog | 2008-03-09 12:47:25 +0000

Added annotation command (!) to the appendix in the manual.

--------------------------------------------------------------------------------
6e8accf48f | pauldubois | 2008-03-09 11:29:50 +0000

Apply patch for 1906881: wands of draining shoot non-descript bolts

--------------------------------------------------------------------------------
b27bd210ce | pauldubois | 2008-03-09 07:50:06 +0000

Light copyediting, spell-checking, and spelling normalisation (eg artifact -> 
artefact, capitalise race names)
Add documentation on +f to appendix 6; add pointer to appendix
in firing section

--------------------------------------------------------------------------------
52e0c10487 | dolorous | 2008-03-09 03:19:19 +0000

Another typo fix.

--------------------------------------------------------------------------------
6eb7a310c4 | dolorous | 2008-03-09 01:52:10 +0000

Fix typo.

--------------------------------------------------------------------------------
dacc5311c5 | j-p-e-g | 2008-03-09 00:43:03 +0000

FR 1833480: Implement Lemuel's Beogh specific orc speech. Orcs can now give 
different speech, depending on whether you worship Beogh or not, and of whether 
they are hostile or friendly. (Neutrals are treated as hostile, in this case.)

--------------------------------------------------------------------------------
836f5b7754 | dploog | 2008-03-08 23:50:55 +0000

Updated crawl_manual.txt in expectation of the key changes (which will come 
soon). Next to do: update help screens and tutorials and other files.

--------------------------------------------------------------------------------
454535167c | j-p-e-g | 2008-03-08 21:36:50 +0000

[Fix 1910212] Add M_SPEAKS to large numbers of monsters. This does not          
     automatically increase message "spam" as long as no 	      messages 
are added in speak.txt. An exception are the reaper 	      for whom I've 
added some fitting messages, and Xtahua who 	      already has messages that 
just were never output.
The following monsters that couldn't speak before and now potentially can:
all cen-/yaktaurs, all draconians, all elves, (hob)goblin, merfolk, all orcs, 
hungry/flayed ghost, minotaur, curse skull/toe, Angel/Daeva, giants/cyclops,
efreeti, sphinx, all kobolds, (ancient) lich, greater mummy/mummy priest,
all naga, all ogres, all trolls, all vampires, human, hell knight, 
necromancer, vault guard, reaper, Polyphemus/Tiamat (have no speech defined), 
and Xtahua.

--------------------------------------------------------------------------------
1d41886065 | j-p-e-g | 2008-03-08 19:36:24 +0000

A second round of cleaning up the paragraphs of the item descriptions (view 
screen). It's now consistent for known artefacts, and also consistent for 
non-artefacts and unID'd artefacts. The two consistencies still differ by one 
linebreak, but that's really minor, and for the short descriptions (potions, 
scrolls, food etc.) it looks better this way anyway, I think.

--------------------------------------------------------------------------------
486cd86756 | dolorous | 2008-03-08 18:33:58 +0000

Another TSO update: add "gaining power from killing evil in his name" to the 
religion screen as an ability, gained at 30 piety.  This matches the code 
already in place.  (Making it permanent, as originally proposed, would mean 
shifting all the text on the screen up, since there aren't any more lines 
available, and making it available only after you've proven your worth for some 
time seems appropriate to me.  Besides, as a paladin, you don't have to wait 
long for it.)  Comment out the code for repelling undead.  turn_undead() is now 
unused; I've left the function there in case this ever changes.
In a similar vein, tweak Vehumet's first ability description to mention 
that you can only gain magical power by killing in his name.

--------------------------------------------------------------------------------
b9355b7424 | dolorous | 2008-03-08 16:51:43 +0000

Remove another (indirect) hardcoded maximum piety reference.

--------------------------------------------------------------------------------
1acf1d1387 | j-p-e-g | 2008-03-08 14:27:11 +0000

[Fix 1884172] clean up paragraphs in item description               This 
includes condensing skill category, handedness and str/dex 	      bias into 
a consecutive text.
[Fix 1909597] For consistency, add {tried} to tried, unID'd randart jewellery. 
              Also, reintroduce the "may hold more properties" line that
	      presumably vanished back at the randart jewellery id overhaul.

[Fix 1909855] Incorrect randart name from database.

--------------------------------------------------------------------------------
72d1d7f168 | dploog | 2008-03-08 12:44:00 +0000

Updated vaults (thanks Eino!)

--------------------------------------------------------------------------------
40165fb810 | j-p-e-g | 2008-03-08 10:44:09 +0000

[Bug 1907221] Add "Modified for Crawl Reference" statement and author to a      
         huge number of files. Also correct file name comments. 	      
No coding changes.

--------------------------------------------------------------------------------
2d910749bd | pauldubois | 2008-03-08 06:40:21 +0000

Fix compile in debug

--------------------------------------------------------------------------------
b7b3d0871a | pauldubois | 2008-03-08 06:39:16 +0000

Enable sign comparison warning.

--------------------------------------------------------------------------------
d5620d8049 | dolorous | 2008-03-08 05:54:40 +0000

Remove unneeded blank line.

--------------------------------------------------------------------------------
aea9252154 | dploog | 2008-03-07 23:30:38 +0000

Added many vaults, mainly by Eino and Lemuel.

--------------------------------------------------------------------------------
0073de23ae | j-p-e-g | 2008-03-07 19:57:49 +0000

Fix 1909592: trunk not compiling on Windows
Improve information output for vampires in the screens 'A', '@' and '%'.
Reduce the "in touch with the powers of death" effect to one boost at xl 6,
and disallow bat form at engorged. Also, modify messages if they are not
available right away for feeding reasons.

What's still missing is a way to output those temporary resistances 
(currently only discernible from the '%' screen), preferentially in the
form of some general statements on 'A': "When hungry, you gain resistance
to cold." and more detailed descriptions on '@'.

Fix a couple of wrong hunger status checks.

Comment out the "Very agile monsters are quite hard to hit in your current 
equipment." messages because to my knowledge they hold little importance
right now. Please correct me if that view is wrong.

--------------------------------------------------------------------------------
a41cd16786 | j-p-e-g | 2008-03-07 14:46:38 +0000

The much needed tidy up of mon-data.h.
Seeing how monster lookup doesn't rely on order anyway, I figured I could
change the order of monsters to match their genus (sorted by symbol, then
difficulty) without any problems. Water/lava monsters stay in a section of
their own as do uniques.

I also threw out the long commented out tunneling worm, worm tail, and 
Mollusc Lord. Should anyone wish to reintroduce them, well, that's what the 
repository is there for.

No coding changes.

--------------------------------------------------------------------------------
88a6cab91b | j-p-e-g | 2008-03-07 11:31:13 +0000

Add more monsters being capable of spattering the floor with blood.
Should we use the same reasoning for which monsters' corpses vampires can 
feed on? Currently they can also draw blood from insects and worms, which
seems a bit odd. But everytime we restrict the sources of blood further we
make vampires (un)lives a bit harder.

For comparison: Currently vampires can draw blood from all monsters with
chunk type clean or contaminated. This includes, among others, royal jelly,
death cob, devils, skeletons (!) and a whole lot of other demonic or 
undead beings. Blood spattering, on the other hand, only works for monsters 
that have either M_WARM_BLOOD or M_COLD_BLOOD set, and this is the case for
a subgroup of natural and holy creatures. I'm in favour of this change, and
unless someone else has good arguments not to change this, I will.

Also fix hungry vampires leaving blood stains.

--------------------------------------------------------------------------------
4f65c022cc | dolorous | 2008-03-07 03:52:18 +0000

Fix comment typo.

--------------------------------------------------------------------------------
bbfa241c9d | dploog | 2008-03-07 00:43:51 +0000

Complete overhaul of crawl_macros.txt (Markus Maier). I used the new keys (z 
for casting).

--------------------------------------------------------------------------------
149ea08db8 | dolorous | 2008-03-06 18:00:50 +0000

Actually allow vampires to be engorged, i.e. alive.

--------------------------------------------------------------------------------
07dc1fd248 | j-p-e-g | 2008-03-06 17:16:58 +0000

Further improvements of vampires:
1) Quaffing and eating
 * They now get full effect of potions unless hungry (er, thirsty) or 
   worse, in which case the effect gets halved as before.
 * Potions of blood heal on the level of heal wounds or healing, depending 
   on hunger state. Healing always heals rotting and removes confusion - 
   the chances involved were just frustrating to players.
 * Draining corpses has the same nutrition value as eating the (random) 
   amount of chunks you get out of dissecting, but takes longer (and all 
   at once, so draining your corpses in the middle of a battle is extremely 
   risky).
   I guess this is still too good (when do you ever get to eat all chunks
   you get out of, say, an ogre or centaur?) so will have to be nerfed.

2) Resistances
Resistances depend more strongly on hunger states now.
Vampires are always poison resistant and can always see invisible.
Additionally, they gain
 * rCold 1 at Hungry or worse, and rCold 2 at Near Starving or worse
   (The latter comes with susceptibility to fire.)
 * life protection 1 when satiated, 2 when hungry or worse, and 3 when near 
   starving or worse
 * At starving they also get torment res.
 * Hungry vampires and vampires in bat form are stealthier, and starving
   vampires are even more stealthy.

As before, they get the Necromancy boost (like Mummies do) at xl 13 and 26.

Also, vampires can now cast spells while starving, but suffer a failure 
increase akin to that of Blade Hands. (I've no idea what these numbers 
actually mean, so this will most likely have to be changed as well.)

Updated tables.txt.

Still TODO:
* Add special biting attack for successful stabbing.
* Add distilling blood ability, and possibly distinguish between old and
  new potions (new food type, maybe).
* Allow vampires to mutate, but these mutations to only take effect when
  Full, Very Full or Engorged.
* Update manual.

Apart from that, they are ready for playtesting once again. As always,
feedback would be much appreciated. :)

--------------------------------------------------------------------------------
4e14b2dc2f | dolorous | 2008-03-06 14:49:58 +0000

When butchering corpses as a vampire, don't display "What a waste." if the 
corpse has no blood in it (i.e., it has a CE_HCL chunk type).

--------------------------------------------------------------------------------
e87dea4ec7 | j-p-e-g | 2008-03-06 14:30:42 +0000

Tweak Vampires, part I
Better stats and aptitudes as suggested in David's post "The plan"

Minor modifications to starving/hungry/full messages. Generally change
Hungry to Thirsty, and Engorged to Alive. For now, the rest remains as
for the other species. Yes, this is nowhere near as radical as David'd 
suggestions as those are confusing me immenseley, and I just can't code 
that way.

--------------------------------------------------------------------------------
d6170bf649 | j-p-e-g | 2008-03-05 21:58:06 +0000

Tweaking recits:  * lower food cost  * increase Inv training  * modify part of 
the Berserk prob. to cause Battle frenzy instead
Fix 'x' information for neutrals.
NOTE: We need a neutral significator for Tiles, like the heart for friendlies.

Also change ?recharging description.

--------------------------------------------------------------------------------
0525ac667f | dolorous | 2008-03-05 05:25:25 +0000

Fix an inaccurate comment.  Also, make the damage and accuracy of magical 
staves, as listed in their description, actually match what they get: 9 and +2, 
the same as quarterstaves.

--------------------------------------------------------------------------------
b4e1fcc5a9 | dolorous | 2008-03-04 20:00:59 +0000

Clean up the Necromutation -> excommunication check for the good gods.

--------------------------------------------------------------------------------
fd54819116 | j-p-e-g | 2008-03-04 14:54:48 +0000

FR 1906872: alternative hiscores leaving message for undead: "safely got out    
         of the dungeon" rather than "got out of the dungeon alive"

--------------------------------------------------------------------------------
e2f7f558db | pauldubois | 2008-03-04 10:49:39 +0000

First half of FR 1901459
- Fire interface cycles through all items in fire order...
- ...and it cycles through items with +f inscription
  (will add docs if we like it, remove +f if not)
- Fix '(' in fire interface; it cycled the wrong way.
- Did not fix: "Awkwardly throwing (Ctrl-N, Ctrl-P, i: etc)" takes up too much 
room.
  This comes up when using +f

--------------------------------------------------------------------------------
e52811f9c0 | j-p-e-g | 2008-03-04 10:08:23 +0000

Fix 1902654: Wandering monsters hitting you without noticing you.              
They will now notice if they bump into you.

--------------------------------------------------------------------------------
a6e153fdce | pauldubois | 2008-03-04 08:21:26 +0000

1903543: % screen improvements * Show inscriptions. * Weapon enchantments (eg 
+1,+1) compressed like they are on the main screen. * Remove the slot name 
("Ring:   ") so there's more room for the item text.

--------------------------------------------------------------------------------
b80f4f5dd6 | dolorous | 2008-03-04 03:41:14 +0000

Mark spellbooks with primarily evil spells as evil items: all the Necromancy 
books, plus the book of Demonology.

--------------------------------------------------------------------------------
a1182f8419 | dolorous | 2008-03-04 03:15:23 +0000

Implement evil item sacrifices for TSO: all evil weapons, plus wands of 
draining, scrolls of torment, staves of death, rods of demonology, and lanterns 
of shadows.  Expand is_evil_weapon() to cover these, and rename it 
is_evil_item().

--------------------------------------------------------------------------------
44819209e9 | dolorous | 2008-03-04 03:12:58 +0000

Fix typo.

--------------------------------------------------------------------------------
0909a0e2df | j-p-e-g | 2008-03-03 23:29:39 +0000

Fix 1886020: Opting out of joining a god shouldn't cost a turn.

--------------------------------------------------------------------------------
30e4163e93 | j-p-e-g | 2008-03-03 23:09:10 +0000

[FR 1903593] Change identification process of              ?recharging, 
?enchant armour and ?identify.
If you read one of these scrolls and the type isn't known yet you are
prompted with "Modify which item?" (better message needed!) and get to
choose from the entire inventory.
If the chosen item can be usefully "modified" by the scroll (unID'd item
for identify, wand for recharging, enchantable armour for EA) the usual
effect takes place and the scroll is identified. (Reading other scrolls 
of the same type will then only offer a more sensible selection of items.) 
Otherwise, nothing happens.

Further, recharging and enchant armour now allow direct choice of the 
item in question, and it doesn't even have to be wielded or worn.

I think this change actually makes the id game more interesting and also
improves the interface. Gameplay might dictate that we reintroduce the
"armour needs to be worn" rule, but that remains to be seen until after 
some more playtesting.

--------------------------------------------------------------------------------
610652dba6 | dolorous | 2008-03-03 18:33:51 +0000

Properly rename the last holy being neutrality function (oops).

--------------------------------------------------------------------------------
3e012fbd5b | j-p-e-g | 2008-03-03 17:25:46 +0000

Lower dragon slaying effect on dragon breath accuracy: to-hit is reduced by 25% 
rather than 50% now, as suggested by Darshan.

--------------------------------------------------------------------------------
d2ef426db6 | j-p-e-g | 2008-03-03 17:10:28 +0000

Implement a few of Lemuel's unrandart suggestions of FR 1861906.

--------------------------------------------------------------------------------
5b06a0470b | j-p-e-g | 2008-03-03 16:42:26 +0000

[FR 1733318] Draconian ghosts (non-grey, xl >= 7) get a draining breath         
     attack. The message ("John Doe's ghost breathes.") may have to be 	     
tweaked, ghosts being undead etc. The chance for a ghost actually 	     
breathing increases with its experience (1/2 at xl 7, 2/3 at xl 8, 	     
3/4 at xl 9, and so forth).
[FR 1826165] !restore ability also resets DUR_BREATH_WEAPON, so it becomes more
             useful to draconians and demonspawn with hellfire. To make up for
	     it, the breath weapon durations might have to increased.
	     They're currently:
	       3 + random2(5) for Spit Poison
	       3 + random2(5) + random2(30 - xp) for Hellfire
	       3 + random2(4) + random2(30 - xp)/2 for Breath Weapons

[Bug 1879466] The step into lava/deep water safety prompt bails out unless
              the player answers "yes".

--------------------------------------------------------------------------------
94fc8284e0 | ennewalker | 2008-03-03 13:33:08 +0000

Adding more staff and rod art for when players equip those items.

--------------------------------------------------------------------------------
5c43b114a2 | j-p-e-g | 2008-03-03 13:15:22 +0000

Fix 1905715: Print "nothing appears to happen" when zapping /digging            
  without effect, same as for enchantment wands. Fix 1905740: Only list actual 
spellbooks for memorise prompt. Also: s/memorize/memorise

--------------------------------------------------------------------------------
64c579b2ff | j-p-e-g | 2008-03-03 11:48:10 +0000

Reintroduce parts of the old get_species_by_index to code to fix misbehaviuor 
with wizmode-defined ghosts (doesn't really work anyway) and (hopefully) the 
highscores.

--------------------------------------------------------------------------------
c64f7db002 | j-p-e-g | 2008-03-03 00:12:52 +0000

Another smaller clean-up in newgame.cc Also: switch monster memory for I_INSECT 
and I_PLANT.

--------------------------------------------------------------------------------
5893e7732c | j-p-e-g | 2008-03-02 22:28:28 +0000

Make Options.race and Options.class translate correctly, no matter whether the 
old or new species/classes order is used. Entails some more unborking of 
newgame.cc.
Also: make Esc leave the species selection screen (synonym for 'X', quit the
game), and use it to jump back to species selection from all other 
selection possibilities (class, book, weapon, god) as a synonym for Bksp.

--------------------------------------------------------------------------------
e3f7172481 | ennewalker | 2008-03-02 17:50:52 +0000

Fixing [1901305] stash search assert.  Turned off drawing of tiles items when 
searching stashes.

--------------------------------------------------------------------------------
8f7d489f3c | j-p-e-g | 2008-03-02 11:09:45 +0000

[FR 1816805] Implementing a new species/classes order on the character          
    selection screen
This involved the following:
* tentative clean-up of newgame.cc (an utter nightmare!)
* throw out JOB_QUITTER and SP_UNKx_DRACONIAN as (as far as I can tell)
  they serve absolutely no purpose (Should they be necessary for scoring 
  etc. it's probably better to put these at the end rather than the 
  middle of the lists.)
* breaks saves

I'm quite happy with the new species order, but the order of jobs could
be improved. Luckily, changing that is totally easy now. :)
See newgame.cc for old vs. new orders. 

(And yes, there is an option to keep the old way.)

--------------------------------------------------------------------------------
95a05880fa | pauldubois | 2008-03-02 10:54:16 +0000

bug 1895003; add ';' to shell_safe

--------------------------------------------------------------------------------
9ddee55cb0 | pauldubois | 2008-03-02 05:14:31 +0000

Fix [ 1902141 ] Documentation wrong - changed number comments on a few enums - 
added a few COMPILE_CHECKs so they'll get caught Other: - Fix COMPILE_CHECK 
macro so it doesn't cause a warning in gcc. - Replace ASSERT(...) with 
COMPILE_CHECK(...) where possible.

--------------------------------------------------------------------------------
2630284288 | ennewalker | 2008-03-01 20:40:28 +0000

Fix for previous check-in of makefile_tiles.mgw to not try to copy files that 
don't exist.

--------------------------------------------------------------------------------
e43ca2546d | ennewalker | 2008-03-01 20:35:57 +0000

Updating 'make install' for makefile_tiles.mgw.

--------------------------------------------------------------------------------
853c58cb69 | ennewalker | 2008-03-01 20:05:11 +0000

Fixing Win32 tile issue with cursor not being displayed on out of sight tiles.
Reverting previous change to make cursor be red on out of sight tiles that have 
been seen.  You can still click on them to travel and so it feels wrong to have 
the cursor appear invalid.

--------------------------------------------------------------------------------
9f31ec780f | j-p-e-g | 2008-03-01 18:37:21 +0000

With David's help as well as that of my favourite online dictionary, add 
species specific insults for undead.

--------------------------------------------------------------------------------
db6401dae3 | ennewalker | 2008-03-01 17:28:14 +0000

Fixing a tiles issue where unseen tiles appeared to have nets.  This was due to 
foreground tiles inadvertantly using the flags for background ones.
Fixing a tiles issue where the cursor would not be red/invalid on magic mapped, 
out of sight cells.

--------------------------------------------------------------------------------
d019dc374d | dolorous | 2008-03-01 01:04:08 +0000

Mention active stealth training in the manual, and tweak a few other things in 
it.

--------------------------------------------------------------------------------
0eaec34600 | j-p-e-g | 2008-02-29 22:53:57 +0000

Tidy up Xom effects a bit in that berserk and vitrification will only give a 
message if they actually happen. Also, add some more flavour messages for 
vitrification.

--------------------------------------------------------------------------------
3a6a9408cc | dploog | 2008-02-29 22:39:55 +0000

Update manual section N (with Anym).

--------------------------------------------------------------------------------
b97828c9fd | dolorous | 2008-02-29 22:03:26 +0000

Clean up is_evil_weapon() some more, and handle the rest of the evil fixedarts.

--------------------------------------------------------------------------------
8eefd8c96b | dolorous | 2008-02-29 21:17:20 +0000

Clean up is_evil_weapon(), and make it work properly with fixedarts.

--------------------------------------------------------------------------------
8db509f06f | j-p-e-g | 2008-02-29 20:44:14 +0000

Some more code clean-up.

--------------------------------------------------------------------------------
4c41626cef | dolorous | 2008-02-29 20:43:46 +0000

Don't allow Recite to work on hasted monsters.  This fixes a problem where a 
failed Recite would haste a monster, and then continue, possibly hasting it 
again, or even making it go berserk.  (Just think of it as reverse fleeing.)

--------------------------------------------------------------------------------
82fd8b10b5 | j-p-e-g | 2008-02-29 20:11:21 +0000

Fix trunk compile, and a bit of code clean-up.
Oh, and filter MSGCH_PROMPT from message history.

--------------------------------------------------------------------------------
6b1ce5dda5 | dolorous | 2008-02-29 17:06:51 +0000

Make undead monsters resist Recite, but slightly less often than demonic 
monsters.

--------------------------------------------------------------------------------
85703632b1 | j-p-e-g | 2008-02-29 16:48:25 +0000

Add logic to allow the use of a character's religion in the speech files. For 
atheistic characters, "you" is used instead, so that the result looks like 
this: I like/hate Xom.      ---- I like/hate you. Xom is mighty/stupid. ---- 
You are mighty/stupid.

--------------------------------------------------------------------------------
a729d6cf39 | j-p-e-g | 2008-02-29 16:41:22 +0000

Following the mini-discussion on c-r-d considere all dragons to have I_ANIMAL 
intelligence, seeing how draconians are the smart version of dragons in Crawl. 
(I'd completely forgotten about them.) Exception: Xtahua stays at intelligence 
I_NORMAL.

--------------------------------------------------------------------------------
f10265c87b | pauldubois | 2008-02-29 11:40:00 +0000

Fix: messages with colors (like the new firing prompt) look funny in the 
message history.
This is just a small patch; I'm not sure why message playback
only parses formatted strings for the tutorial channel (but it's
explicitly done, there's probably a good reason).  For now, all
channels except tutorial strip out <color> formatting before
storing in history.

Another fix might be to not let the fire prompt messages go
into the history; they're just spam.

--------------------------------------------------------------------------------
f3e79dc1e1 | dploog | 2008-02-29 09:55:44 +0000

Some vault changes (slurp, drone, evil tower)

--------------------------------------------------------------------------------
917c8e96d4 | pauldubois | 2008-02-29 09:46:50 +0000

FR 1900612 Patch 1901093
Merge 't' functionality into 'f'.

Firing interface allows selection of inventory item by hitting 'i'.
Items selected through the inventory interface will not be quivered.
Firing interface prints "Firing", "Throwing", "Awkwardly throwing"
depending on the item selected.
In-game documentation and manual updated.

--------------------------------------------------------------------------------
32ed182370 | pauldubois | 2008-02-29 09:32:40 +0000

Cleaned up and applied 1895117: formatted_string and tutorial polish. - 
formatted_message_history handles linebreaks within color spans properly,   and 
now makes print_formatted_paragraph redundant.  (changed tutorial.cc   to take 
advantage of this) - formatted_string handles <color></color> properly (with 
nesting) instead   of reverting to lightgrey.  (changed tutorial.cc to take 
advantage of   this, too) - The part of 1895117 that dealt with dec glyphs was 
already addressed in   a previous patch, in a more robust way, so that got cut.

--------------------------------------------------------------------------------
683b4d9a70 | pauldubois | 2008-02-29 07:56:50 +0000

Changes to get things building again, and minor tweaks: - change to text mode 
(remove svn:mime-type) for easier diff/patch - remove lua.c, luac.c from lua 
project - remove deleted insult.h, insult.cc - Debug: enable fix and continue, 
disable optimization

--------------------------------------------------------------------------------
2174aff329 | pauldubois | 2008-02-29 07:11:03 +0000

Fix OS X 10.4 compilation

--------------------------------------------------------------------------------
715a7c2424 | ennewalker | 2008-02-29 05:43:42 +0000

Adding different art for staves and rods so that they no longer look identical. 
Rearranging staff and rod art assets.

--------------------------------------------------------------------------------
172527be65 | ennewalker | 2008-02-29 04:25:02 +0000

Trap art update to have different graphics for each kind of trap. Also, 
improved ettin and zombie tiles.

--------------------------------------------------------------------------------
08313313f3 | dolorous | 2008-02-29 00:47:17 +0000

Fix [1889577]: Don't give kobold gladiators the option to start with a trident, 
as kobolds can't wield both it and a buckler at the same time, and they're 
better with shields than they are with polearms.

--------------------------------------------------------------------------------
da65a68b7a | j-p-e-g | 2008-02-28 16:33:52 +0000

Fix 1902749: starving to death by invoking abilities              (FR, but I 
consider it a bug)
Players will now be prompted whether they want to use an
ability if there's a chance its food_cost might make them
starve to death.

--------------------------------------------------------------------------------
1ef02b64bc | j-p-e-g | 2008-02-27 23:37:25 +0000

Apply Paul's patch 1895083: linebreak_string2 cleanup
I ran a few tests and found no problems whatsoever.

--------------------------------------------------------------------------------
f2f6755ac0 | j-p-e-g | 2008-02-27 23:20:42 +0000

Change monster glyphs as suggested by Markus Maier (Monster glyph adjustments 
v2, of 2008-02-12), with one small exception: I deemed yellow too bright for 
quokkas (yellow being the DANGER! sign of, among others, killer bees, death 
yaks, and Sigmund) and chose white instead.
For a complete list of changes see docs/monster_glyphs.txt,
which also doubles as options setting for init.txt.

I wasn't sure what default path to choose for the include
option, so it'll probably have to be adjusted for it to
work. (The message history shows an error message if a 
file to-be-included can't be read in.)

--------------------------------------------------------------------------------
a7602462da | j-p-e-g | 2008-02-27 14:01:53 +0000

Small fix to insults.txt, and add centaur specific insults.

--------------------------------------------------------------------------------
e82541095b | j-p-e-g | 2008-02-27 13:11:08 +0000

Add '(' shortcut as synonym for Ctrl-N, analogous to the quiver cycling command.

--------------------------------------------------------------------------------
02294f67e4 | j-p-e-g | 2008-02-27 13:03:56 +0000

Apply Paul's patch 1901939: including files in init.txt with some clean-up and 
fix in acr.cc to make the results apply at once (instead of only after a screen 
redraw).
I've tested it and everything works fine. Recursive 
inclusion, e.g. read_options('init.txt'), prints a stack
overflow error but doesn't crash the game, so I think
that's fine for now.

--------------------------------------------------------------------------------
7baa539214 | pauldubois | 2008-02-27 06:46:01 +0000

The fixing of a thousand compile errors begins with a single commit This is 
pretty much just a test submit, although the files do work.

--------------------------------------------------------------------------------
a6ba26ca6c | dolorous | 2008-02-27 04:54:29 +0000

Fix [1869656]: Let Lee's Rapid Deconstruction work on skeletal warriors (as 
well as skeletal dragons).

--------------------------------------------------------------------------------
00e1fd8c77 | dolorous | 2008-02-26 19:05:35 +0000

Remove a now-obsolete reference to insult.o in makefile.obj, to fix the build.

--------------------------------------------------------------------------------
75e5652e31 | j-p-e-g | 2008-02-26 17:55:34 +0000

Apply Paul's patch 1901892: reorganize/rewrite docs/monster_speech.txt
And, while on the topic, of monster speech:
 * move weapon noises to a file of its own: noise.txt
 * finally outsource imp/demon insults (making insult.cc/h superfluous)
   This also activates the hitherto commented-out special racial insults
   pertaining to player species. As usual, more input welcome. :)

--------------------------------------------------------------------------------
ecf486f921 | j-p-e-g | 2008-02-25 14:12:07 +0000

Apply patch 1901117: vitrification effect for Xom (and Xom cleanup)
This needs flavour messages, and looks odd for large power because
the undiggable stone of the level also gets turned into glass 
possibly resulting in huge areas of glass tiles. 

--------------------------------------------------------------------------------
9f2bdcc6b1 | j-p-e-g | 2008-02-25 14:06:58 +0000

A bit of code cleanup and a randart name fix.

--------------------------------------------------------------------------------
d3874d6e0e | j-p-e-g | 2008-02-25 13:57:00 +0000

Apply patch 1901227: allow alphabetic stash search sorting.

--------------------------------------------------------------------------------
19036a55ba | j-p-e-g | 2008-02-24 19:15:20 +0000

Fix 1892007: (oklob) plants being confusable (There's probably some source of 
poison or other where I forgot to add the mons_class_is_confuseable check. Feel 
free to add as needed.)
Fix 1897271: potions of poison being treatened like poisoned ammo
(There's actually a much bigger issue: now that randart names are 
configurable players could name half of their randarts "poisoned" 
and make them *be* poisoned. In short, the beam string comparison 
find("poison") needs to be replaced with something more sensible.)

Also some more comment clean-up.

--------------------------------------------------------------------------------
bbefa2c38b | j-p-e-g | 2008-02-24 15:31:21 +0000

Outsource randart names.
Also:
- Move database text files into subfolder "database", yay!
- Don't print "uncursed" for identified randart weapons/jewellery 
  as the status should be obvious once the name is known.
- A bit of code cleanup (change in enum.h breaks saves!)

--------------------------------------------------------------------------------
5cc9690e25 | dshaligram | 2008-02-24 07:51:55 +0000

Updated credits.

--------------------------------------------------------------------------------
426733a788 | dshaligram | 2008-02-24 07:49:37 +0000

Better levdes syntax highlighting for dark backgrounds (sorear).

--------------------------------------------------------------------------------
e473c81b85 | dshaligram | 2008-02-24 07:45:52 +0000

Attempt to use ndbm.h only on Mac OS.

--------------------------------------------------------------------------------
3b02445656 | ennewalker | 2008-02-22 02:04:50 +0000

Tile support for (horizontal) gates.

--------------------------------------------------------------------------------
ff747f947f | dploog | 2008-02-22 00:01:55 +0000

Make stash annotations default (doy).

--------------------------------------------------------------------------------
030b8795d3 | j-p-e-g | 2008-02-21 19:19:16 +0000

Implement more varied names for doors/gate, depending on numbers of "doors" 
involved.
Note (because I forgot to mention it last time): 
This does look a bit odd in tiles, but it's a cool effect 
nonethelesss.

--------------------------------------------------------------------------------
8138928e14 | j-p-e-g | 2008-02-21 18:54:28 +0000

Another fix of randart auto inscriptions, this time concerning the number of 
"plusses" shown for mutagenic and stealth.

--------------------------------------------------------------------------------
9fd12611e2 | dshaligram | 2008-02-21 17:41:30 +0000

Fixed use_fake_cursor brokenness for DEC, fixed stringize_glyph mangling DEC if 
Crawl was built with Unicode support.

--------------------------------------------------------------------------------
22ace1c218 | dshaligram | 2008-02-21 16:43:35 +0000

[1896775][1896772] Charset handling fixes (Paul Du Bois).

--------------------------------------------------------------------------------
f45c701b8b | dolorous | 2008-02-21 14:54:54 +0000

Implement [1891388]: Make Holy Word available in scroll form.

--------------------------------------------------------------------------------
e4fae96938 | dploog | 2008-02-21 13:56:31 +0000

Update CREDITS.

--------------------------------------------------------------------------------
3038d40d85 | j-p-e-g | 2008-02-20 13:16:16 +0000

Apply Paul's gate patch: known adjacent doors will be opened/closed all at once.

--------------------------------------------------------------------------------
727f4e1f12 | j-p-e-g | 2008-02-20 12:57:03 +0000

Apply Paul's =f inscription patch as well as a patch to make crawl_options.txt 
more readable concerning inscriptions. (Not that that really is such an issue 
now there's extensive documentation in the manual, but it surely doesn't hurt.)
Also fix some of the randart autoinscriptions.

--------------------------------------------------------------------------------
e2efb14c85 | dploog | 2008-02-19 23:25:19 +0000

Added Appendix on (auto)inscriptions to the manual.

--------------------------------------------------------------------------------
66232cd50a | dploog | 2008-02-19 15:27:16 +0000

Revamped pas-de-faq. Feedback welcome.

--------------------------------------------------------------------------------
1d29e90fca | dploog | 2008-02-19 14:36:18 +0000

Update manual on kenku speed boost when flying lightly loaded.

--------------------------------------------------------------------------------
7b6e058b7c | j-p-e-g | 2008-02-18 17:23:37 +0000

Modify active stealth training according to the usual restrictions (light 
armour, unburdenend) as specified in patch 1744212 by mesilliac.

--------------------------------------------------------------------------------
8e2692d7dc | j-p-e-g | 2008-02-18 17:06:11 +0000

Finally implemented by applying Paul Du Bois' latest patch. :)

--------------------------------------------------------------------------------
a59025b069 | j-p-e-g | 2008-02-18 15:51:08 +0000

First batch of Paul's patches: 1896018: cycle ammo with '(' 1895278: no 
(v)iewing of unreadable books 1895075: cancel Ely's abilities without cost Fix 
1894920: fix overly long dungeon overview
Also fix 1884145: weapon swap ignoring {!w}

--------------------------------------------------------------------------------
e3c41fc21f | j-p-e-g | 2008-02-15 21:33:27 +0000

Add better feedback on piety gain command (^) in wizard mode. (Resulting from 
the mysterious FR 1892989.)

--------------------------------------------------------------------------------
3ad5935cd7 | j-p-e-g | 2008-02-15 13:36:14 +0000

Make tutorial "monster out of depth" check independent of ood_interesting 
setting. (Bug 1885423)

--------------------------------------------------------------------------------
9f53565538 | dolorous | 2008-02-15 04:31:06 +0000

Modify is_evil_weapon() to properly detect evil randarts.

--------------------------------------------------------------------------------
b12baff21d | j-p-e-g | 2008-02-14 12:13:03 +0000

Fix 1893419: Add "kill neutral" to debugging list. Fix 1893422: Move tutorial 
just_triggered information at beginning of              learned_something_new() 
etc. code.

--------------------------------------------------------------------------------
c71960644c | dolorous | 2008-02-13 22:04:24 +0000

Fix [1890833]: Stop autoexploring if you lose consciousness due to starvation.

--------------------------------------------------------------------------------
a55a1905e7 | dolorous | 2008-02-12 19:04:22 +0000

When converting orcs as a Beoghite, check for piety_breakpoint(2) instead of 
hardcoding 75 as the piety value.

--------------------------------------------------------------------------------
b77d175f75 | j-p-e-g | 2008-02-12 14:48:27 +0000

Tweak DID_KILL_HOLY handling to allow for killing hostile angels without being 
put under penance by the good gods. Also add a flag MF_WAS_NEUTRAL, so that 
previously neutral monsters can be handled differently from always hostile ones.

--------------------------------------------------------------------------------
e8e7c9ee54 | dolorous | 2008-02-12 04:48:32 +0000

Rename one more holy being neutralization function (oops).

--------------------------------------------------------------------------------
db5274e500 | dolorous | 2008-02-11 23:47:49 +0000

Fix inaccurate comment.

--------------------------------------------------------------------------------
944a7fef21 | j-p-e-g | 2008-02-11 22:54:07 +0000

Bar Trog from gifting weapons of pain (strongly associated with Necromantic 
magic) and holy wrath (blessed by TSO, whom Trog presumably hates).
Also change the newwave colours of bucklers and large shields to
match that of shields rather than mails. It's been this long and
I never noticed... whoops!

--------------------------------------------------------------------------------
3a5945e2b7 | dolorous | 2008-02-11 01:25:36 +0000

Reorder the message display wne you leave a good god for an evil god. The 
Shining One's warning should come before the message indicating that the divine 
host has turned against you.

--------------------------------------------------------------------------------
ab0485a9c1 | j-p-e-g | 2008-02-11 01:08:42 +0000

Tweak recite to yield better results for holy beings. As their MR will be 
unachievably high no matter what, their "resist value" instead depends on your 
Invocations skill. Change calculation of power, so high values are easier to 
reach, to a maximum of 50.
Also add special casing for neutral monsters so they no
longer pretend not to have noticed you.

Oh, and I found a problem concerning holy beings:
Now that the player can actually meet hostile holy 
monsters the good gods reaction at killing one of them
needs to be changed accordingly. We cannot simply restrict
it to _friendly_ holy beings as, once hit, they won't be
friendly anymore. Instead we'll have to use the 
CREATED_FRIENDLY flag that already takes care of not 
getting any xp for any being that used to be friendly.

--------------------------------------------------------------------------------
1c5f5dc9b4 | ennewalker | 2008-02-11 00:37:33 +0000

Fixing "unknown stair" tiles issues where stairs that should be known weren't 
being drawn as such.

--------------------------------------------------------------------------------
cdb351ec5d | ennewalker | 2008-02-10 20:44:52 +0000

Adding icons (from Denzi) for identified staves and rods, now that identical 
staff types share the same description. Removing old Nethack item tiles.

--------------------------------------------------------------------------------
a028038652 | j-p-e-g | 2008-02-10 13:32:04 +0000

Rework staves/rods to match the ID behaviour of wands etc., i.e. they get 
randomised but fixed descriptions at the beginning of the game, and once you 
know one type you'll be able to recognize another staff/rod of the same type. 
In the case of rods you'll still have to evoke it to find out the number of 
charges.
I've tried to put the secondary descriptions into an order that
will roughly match the ten current staff tiles.

This solves part of FR 1837348, and is likely to cause havoc to
saved games, at least concerning staves.

--------------------------------------------------------------------------------
269aa80ee6 | dolorous | 2008-02-09 21:06:00 +0000

Remove one last erroneous reference to converting holy beings (oops).

--------------------------------------------------------------------------------
8584fe07d8 | dolorous | 2008-02-09 21:01:19 +0000

When changing monsters' attitudes to hostile, check for the MF_GOD_GIFT flag 
instead of the MF_ATT_CHANGE_ATTEMPT flag, so that monsters summoned by your 
god's power are also included.

--------------------------------------------------------------------------------
a8980abc17 | ennewalker | 2008-02-09 20:03:31 +0000

Small fix for previous check-in to prevent writes outside mini-map array bounds.

--------------------------------------------------------------------------------
9b54374b1f | ennewalker | 2008-02-09 19:45:29 +0000

Adding "unknown stair" marker for tiles.

--------------------------------------------------------------------------------
0c86c2bf4c | ennewalker | 2008-02-09 18:33:54 +0000

Fixed [1879026] (Tiles) Wrong display of cached player tile.

--------------------------------------------------------------------------------
2da032e042 | ennewalker | 2008-02-09 17:50:53 +0000

Fixing tiles mini-map issues: * Player markers no longer leave black trails. * 
Mini-map now displays the whole map and doesn't cut two cells off the edges.

--------------------------------------------------------------------------------
0406c83edd | ennewalker | 2008-02-09 17:39:38 +0000

Removing backslashes from makefile and using subst instead.  I'm hoping this 
will solve Johanna's makefile woes that I can't reproduce.

--------------------------------------------------------------------------------
1839048bf4 | dolorous | 2008-02-09 17:22:07 +0000

For consistency, remove references to monsters' being caught in nets when 
trying to change their attitudes/convert them, as it's not quite the same as 
paralysis.

--------------------------------------------------------------------------------
fe3ad5a6e5 | j-p-e-g | 2008-02-09 17:07:46 +0000

Fix 1889917: Respect mon_glyph option also for randomly coloured              
monsters, most notably gila monsters and killer klowns.

--------------------------------------------------------------------------------
2eaaef324e | j-p-e-g | 2008-02-09 16:30:39 +0000

Implement unrandart "Wyrmbane": a lance (spear, really) of dragon slaying 
properties: +Rage, rPois, rF+, AC+5
Obviously it's still lacking a tile, so I used the general 
randart spear tile instead.

--------------------------------------------------------------------------------
7bd87841d5 | j-p-e-g | 2008-02-09 16:27:30 +0000

Don't output inscriptions for DESC_PLAIN and DESC_BASENAME descriptions. Also 
remove reference to weapons of disruption.

--------------------------------------------------------------------------------
301a245ce6 | j-p-e-g | 2008-02-09 10:50:29 +0000

Minor change of randart inscription.

--------------------------------------------------------------------------------
94c4ea8713 | j-p-e-g | 2008-02-09 10:45:04 +0000

Bug 1889975: Fix randart rings of teleportation not getting              life 
protection.

--------------------------------------------------------------------------------
d3cb6838b3 | j-p-e-g | 2008-02-09 10:29:55 +0000

Replace abbreviations used for auto-inscribing randarts with (hopefully) more 
useful variants. We tried to achieve a balance between shortness and and being 
easy to understand. I also moved around the order, so that the most important 
properties, esp. negative ones, come first, and added the terse ego descriptor 
for randarts weapons.

--------------------------------------------------------------------------------
5c120f099f | dolorous | 2008-02-09 05:06:44 +0000

Properly display "You like to eat raw meat." on the "A" screen for trolls and 
ogres.

--------------------------------------------------------------------------------
056ba57fe0 | dolorous | 2008-02-08 02:11:16 +0000

For worshippers of the good gods, show a warning message for all evil weapons, 
not just demonic ones.

--------------------------------------------------------------------------------
a8e20aaf80 | dolorous | 2008-02-08 01:57:52 +0000

Clean up the holy being neutralization code.  The MF_CONVERT_ATTEMPT flag is 
now MF_ATT_CHANGE_ATTEMPT, since it's used to change holy beings' attitudes to 
either neutral or hostile, as well as to change orcs' attitudes to friendly.

--------------------------------------------------------------------------------
e6a47c721d | dolorous | 2008-02-08 00:32:30 +0000

Where applicable, use MAX_PIETY instead of hardcoding the maximum piety value.

--------------------------------------------------------------------------------
b8a491a63a | dolorous | 2008-02-07 03:48:55 +0000

Add minor punctuation fix.

--------------------------------------------------------------------------------
dfa79a4fc2 | j-p-e-g | 2008-02-06 08:51:03 +0000

FR 18863222: Don't let Trog burn Tome of Destruction, seeing how it works more 
an Evokable item than a proper spellbook.
Bug 1886650: Regard (fake) rakshasas as demonic.
Bug 1885165: ID ?recharging when "charging" known weapons of electrocution.
             (It's only in wizmode that the ego may not be known.)
	     Maybe we should add a message...

--------------------------------------------------------------------------------
be4c1c2cc6 | dolorous | 2008-02-05 04:16:22 +0000

Remove unneeded whitespace.

--------------------------------------------------------------------------------
784d76062d | dolorous | 2008-02-05 04:15:46 +0000

Allow Recite to work on monsters caught in nets again, as being in a net 
doesn't correspond to a Recite effect as paralysis does (oops).

--------------------------------------------------------------------------------
f09b1e3104 | dolorous | 2008-02-05 03:19:21 +0000

Add one last neutrality adjustment.  Holy beings will no longer always be 
neutral at over 160 piety, since the check against random2(200) is high enough. 
 However, keep the chance to make them neutral when piety goes over 160, since 
followers get their god's highest title then, and it seems appropriate.

--------------------------------------------------------------------------------
19d73001c0 | dolorous | 2008-02-05 02:57:49 +0000

Adjust the neutrality check again: it now requires a piety greater than 160.  
Also, fix it so that it actually works properly, as 160 isn't a piety 
breakpoint (oops).

--------------------------------------------------------------------------------
3b1b2e0dd0 | dolorous | 2008-02-05 02:34:43 +0000

Adjust the neutrality check for holy beings: If a follower of the good gods has 
piety of at least 150, holy beings will always be neutral.

--------------------------------------------------------------------------------
5d1b831fa8 | dolorous | 2008-02-05 00:10:42 +0000

A pious follower of the good gods can now turn holy beings neutral on sight, a 
la Beogh and orcs; the more pious the follower is, the greater the chance 
(piety > random2(200)).  Additional chances to turn holy beings neutral come up 
when the follower works off all penance or gains a new piety level.
The neutrality check will fail half the time if the follower wields an 
evil weapon, and if the follower switches to an evil god, all neutral 
and friendly holy beings will turn hostile.

--------------------------------------------------------------------------------
4e94e41a4d | dshaligram | 2008-02-04 14:51:36 +0000

Removed special-casing to treat < as > for Abyss exits.

--------------------------------------------------------------------------------
3ce3ab7ad0 | dolorous | 2008-02-03 17:01:49 +0000

Make Zin recital consistent with Beogh conversion, in that creatures caught in 
nets cannot be affected.

--------------------------------------------------------------------------------
82a7e324ab | dolorous | 2008-02-03 16:43:36 +0000

Add one more consistency fix for Beogh reconversion (oops).

--------------------------------------------------------------------------------
5b127194df | j-p-e-g | 2008-02-03 16:36:19 +0000

Add message for continued multiturn eating. (FR 1878123) Add a variety of 
humourous attack verbs for killer klowns. (FR 1855567)

--------------------------------------------------------------------------------
6c37300195 | dolorous | 2008-02-03 16:25:09 +0000

Add minor consistency fixes to Beogh conversion routines.

--------------------------------------------------------------------------------
c0155b2908 | dshaligram | 2008-02-03 06:36:26 +0000

[1883949] easy_butcher will no longer switch away from a wielded distortion 
weapon.

--------------------------------------------------------------------------------
9feec84530 | dshaligram | 2008-02-03 06:26:05 +0000

[1885013] Launchers of flame create bolts of "flame", not "fire".

--------------------------------------------------------------------------------
e320e6ae2f | dshaligram | 2008-02-03 06:22:38 +0000

[1885302] Use commonwealth "defence" instead of "defense".

--------------------------------------------------------------------------------
6c5a75e67e | dolorous | 2008-02-03 05:07:29 +0000

Allow angels and daevas to show up in the Abyss.

--------------------------------------------------------------------------------
6e931b336a | j-p-e-g | 2008-02-02 22:45:11 +0000

Identify post-mortem inventory prior to chardump, so morgue.txt will contain 
the id information. (David)

--------------------------------------------------------------------------------
b3af63244c | j-p-e-g | 2008-02-02 20:29:00 +0000

Actually fix taking stairs while beheld... whoops!

--------------------------------------------------------------------------------
73e93cb36f | j-p-e-g | 2008-02-02 19:57:43 +0000

Make being caught in a net interrupt the stair delay, and disallow beholding 
attempts (mermaid) while the player is taking some stairs.
Also add a message for wielding a weapon of distortion. (I'm afraid there
already used to be one that I've accidentally removed.)

--------------------------------------------------------------------------------
37a4ac3357 | dshaligram | 2008-02-02 16:05:59 +0000

Map and help cleanup (dpeg).

--------------------------------------------------------------------------------
8190b0f9ea | j-p-e-g | 2008-02-01 22:29:28 +0000

A few tweaks of Zin invocations, thanks to David Ramsey.
Donating money will now also affect penance (along with special
messages). I just used gain_piety(1) for this - the downside is 
that now it also respects the slower piety growth of the actual
piety gain only happening in 66% (piety > 100) or 33% 
(piety > 150) of piety leaking in (and out of the pool!)

Zin will provide sustenance even under penance, and Recite 
trains Invocations now.

--------------------------------------------------------------------------------
633cc4c9ff | j-p-e-g | 2008-01-31 23:04:25 +0000

Add "active stealth-training" (FR 1833916): Everytime a monster in your LOS 
doesn't wake up (= you pass the Stealth check), there's a 5% chance of 
exercising Stealth by 1. Yes, this is probably much too frequent (normal 
Stealth exercising happens with 1/18 chance once every 20 turns), but I'd 
prefer decreasing the probability of plain Stealth training in favour of the 
active training, anyway, though I've no idea what the actual numbers should be.
Add "passive trap-training" (FR 1865590):
Everytime you detect a trap by setting it off, T&D gets exercised by
1 or 2 (50% chance each), same as for detecting a trap by searching.

--------------------------------------------------------------------------------
84dbc4e199 | dshaligram | 2008-01-31 14:06:06 +0000

[1882960] Minor tutorial fixes (Anym).

--------------------------------------------------------------------------------
2f5a8809a8 | dolorous | 2008-01-30 16:45:50 +0000

Remove obsolete references to Glamour.

--------------------------------------------------------------------------------
160795e120 | j-p-e-g | 2008-01-30 16:04:28 +0000

Improved recite. It now directly compares power (calculated using Invocations 
and piety) with monsters' magic resistance. If the latter exceeds the former or 
you get a bad roll, the bad effects (haste or berserk) will happen. Otherwise 
you get one of a number of good effects the choice of which depends on your 
power again. This is probably still too strict, but much better than the older 
system.
Unfortunately I had to cut the influene of the number of attempts as 
apply_area_visible currently only transfers power. So it's a clear 50% 
chance of "nothing happens" each turn, leaving us at 12.5% of nothing 
happening during 3 turns, plus a saving throw from bad effects.

--------------------------------------------------------------------------------
9434334816 | dshaligram | 2008-01-30 15:59:37 +0000

Show status captions in brown by default with an option to change it. We 
probably want to move the status area code to Lua eventually.

--------------------------------------------------------------------------------
9033470b12 | dshaligram | 2008-01-28 16:55:30 +0000

Fixed bad stash-search prompt on DOS.

--------------------------------------------------------------------------------
1e30561a62 | dshaligram | 2008-01-28 07:19:48 +0000

Fix pronouns for mermaids and Ereshkigal.

--------------------------------------------------------------------------------
53e843b866 | j-p-e-g | 2008-01-27 18:04:15 +0000

Add shaft tile. Yay!
I've set this as tile for DNGN_TRAP_NATURAL in general as the shaft is 
currently the only one among those. This may need to be adapted later on. 
Ideally, the different kinds of mechanical traps (most notably blade and 
net) should get a tile of their own rather than use the default (arrow) 
one.

--------------------------------------------------------------------------------
0c7d47c22e | dshaligram | 2008-01-27 16:43:21 +0000

Implemented dispel undead for monsters.
Cold resistance was broken, fixed.

--------------------------------------------------------------------------------
abf7c1d0ce | dshaligram | 2008-01-27 13:08:34 +0000

Do not award experience for killing summoned monsters.

--------------------------------------------------------------------------------
6e8a96aa40 | dshaligram | 2008-01-27 12:26:28 +0000

Refixed monster self-teleport duration.

--------------------------------------------------------------------------------
2fd7717a24 | dshaligram | 2008-01-27 12:20:50 +0000

Fixed unique demon lord stats so they're more of a challenge. May need some 
tweaks, some of them may be too nasty now (such as Gloorx Vloq).
Fixed broken monster self-teleport.

Players do not get to resist dispel undead - may need to revisit this, low 
level necro ghosts could destroy undead characters.

--------------------------------------------------------------------------------
962e0244aa | dshaligram | 2008-01-27 08:39:37 +0000

[1873415] Weaken chain paralysis.

--------------------------------------------------------------------------------
4784d40f57 | dshaligram | 2008-01-26 14:07:07 +0000

Fixed inappropriate monsters being able to submerge in air, tweaked monster 
shield numbers.

--------------------------------------------------------------------------------
1b83dce6a7 | dshaligram | 2008-01-26 13:09:25 +0000

Added penalty for multiple shield blocks in a round for monsters.

--------------------------------------------------------------------------------
fb7a3b56c6 | dshaligram | 2008-01-26 10:08:26 +0000

[1829946] Fixed broken beam tracers.

--------------------------------------------------------------------------------
95b4d220b5 | dshaligram | 2008-01-26 09:32:23 +0000

[1879934] Wands of draining auto-id on zap.

--------------------------------------------------------------------------------
679ebce76f | dshaligram | 2008-01-26 09:29:10 +0000

[1880145] Fixed poison susceptible monsters resisting curare.

--------------------------------------------------------------------------------
aa300c86cc | dshaligram | 2008-01-26 07:31:00 +0000

Added help for stash-search (dpeg).

--------------------------------------------------------------------------------
32a6373c7a | dshaligram | 2008-01-25 18:11:54 +0000

Fix collision between gotoxy(int,int,int) and DOS djgpp gotoxy().

--------------------------------------------------------------------------------
0136740f19 | dshaligram | 2008-01-25 17:04:20 +0000

[1823627] Fixed message spam for monsters using enchantments out of LOS.

--------------------------------------------------------------------------------
f2a94f71c9 | dshaligram | 2008-01-25 13:15:50 +0000

Tweak makefile to clobber existing symlink to Crawl.

--------------------------------------------------------------------------------
e627cdb52f | dshaligram | 2008-01-25 13:03:00 +0000

[1777018] Monster blink is now restricted to monster's LOS.

--------------------------------------------------------------------------------
46f4761562 | dshaligram | 2008-01-25 11:45:39 +0000

Fixed mutation menu miscolouring mutations.

--------------------------------------------------------------------------------
137d900672 | dshaligram | 2008-01-25 11:13:18 +0000

[1801838] Use a menu to show mutation list so long lists don't scroll off the 
end of the terminal.

--------------------------------------------------------------------------------
c5ab08484a | dshaligram | 2008-01-25 08:42:38 +0000

[1861488] Fixed passwall bugs.

--------------------------------------------------------------------------------
a24ec8490f | dshaligram | 2008-01-25 08:15:11 +0000

Tweaked resists for electric golems and ball lightning.

--------------------------------------------------------------------------------
d93f8e90d6 | dshaligram | 2008-01-25 08:12:27 +0000

[1832114] Fixed more prompts for mostly offscreen ball lightning detonation.

--------------------------------------------------------------------------------
db86b7751c | dshaligram | 2008-01-25 07:24:40 +0000

[1878126] Suppress "<foo> goes berserk" messages for Trog punishment, fixed 
enchantment name assert.

--------------------------------------------------------------------------------
c0d2b0bfbd | dshaligram | 2008-01-25 07:05:22 +0000

[1868908] Fixed undiscovered traps being a different colour from surrounding 
coloured floor.

--------------------------------------------------------------------------------
3dc1f2ac4d | dshaligram | 2008-01-25 06:57:51 +0000

[1869724] Fixed enchantment timeout messages being shown before monsters are 
moved for time spent off-level.

--------------------------------------------------------------------------------
fa96441dba | dshaligram | 2008-01-25 06:38:16 +0000

[1869912] ^F in drop menu is now case-insensitive, regex input is lightgrey 
instead of dark.

--------------------------------------------------------------------------------
fd9c2fb0ef | dshaligram | 2008-01-25 06:32:18 +0000

[1871559] All fighters but ogres and trolls get a choice of starting weapon. 
Ghouls and mummies now start with scale mail + shield.

--------------------------------------------------------------------------------
89a6d9914e | dshaligram | 2008-01-25 06:07:24 +0000

[1878125] "runed" is no longer an unided description for randarts.

--------------------------------------------------------------------------------
54022e5775 | j-p-e-g | 2008-01-24 23:58:22 +0000

Remove GLAMOUR, and introduce RECITE (new Zin invocation)
The latter is a work in progress and may have strange results.
It is intended as a multiturn invocation that is interrupted by
large hp losses. IMHO, reciting things is an action that needs
to take several turns. Each turn an attempt at influencing
intelligent monsters is made. They usually fall asleep, are
confused or turn berserk. 
The delay gets cancelled when the player is heavily wounded or
when there are no impressionable monsters around anymore.

I think the power formula will have to be tweaked.

Comments welcome!

--------------------------------------------------------------------------------
41d70af6d3 | j-p-e-g | 2008-01-24 17:44:59 +0000

Some comment indentation, and really minor tile fix.

--------------------------------------------------------------------------------
47824cdfc7 | j-p-e-g | 2008-01-24 13:10:35 +0000

Add mouseclick handling for menus in tiles: L-click will page down, R-click is 
treated like Escape.
Change L-click on player from single turn search to (the more
useful, I think) pickup, and add L-click to list of 
alternatives to call the pickup menu, so that clicking on the 
player icon twice will directly open the pickup menu.

This is getting complicated: there are so few combinations
of mouseclicks possible, but because they do different things
under different circumstances this *really* needs to be
documented somehow.

Fix coloured hp/mp bars not updating during running. (During 
travel the map needs to be redrawn anyway, so also having to 
redraw the bars doesn't hurt any.)

Also fix list_rotten to be readable from init.txt (and default 
to true).

--------------------------------------------------------------------------------
abe1935b44 | dolorous | 2008-01-23 03:25:41 +0000

Add various crossbow-related fixes:
Fix [1864360]: Reenable random generation of crossbow bolts, as it was 
(erroneously?) removed in r1732, when javelins and sling bullets were 
introduced.  The probability for bolts is slightly greater than that of 
needles (12 vs. 10), as the probability of randomly generated crossbows 
is slightly greater than that of blowguns (6 vs. 5).  Furthermore, the 
probability for bolts is lower than the probability for arrows (12 vs. 
20), since the former do more damage.

Orc knights and warlords that get crossbows now get orcish ones instead 
of non-racial ones.

--------------------------------------------------------------------------------
d882d2b68d | j-p-e-g | 2008-01-21 14:07:52 +0000

Add tile options to configure minimap colours.

--------------------------------------------------------------------------------
cbb457d13f | j-p-e-g | 2008-01-21 13:41:10 +0000

Tiles: allow direct selection of corpse to be butchered from floor        or to 
drink blood from for vampires

--------------------------------------------------------------------------------
b30aacda1f | dolorous | 2008-01-20 23:55:11 +0000

Smooth out TSO's draining protection to work with fractional piety for both the 
raw damage and the experience loss.

--------------------------------------------------------------------------------
47dd86930d | j-p-e-g | 2008-01-20 19:56:38 +0000

Tiles: Fix the slooooow update of hp/mp during resting because of the coloured 
bars. Now the bars are redrawn only once resting is over or if it's 
interrupted. (Hp and mp still grow steadily.)

--------------------------------------------------------------------------------
58a4fbec35 | ennewalker | 2008-01-20 18:11:48 +0000

Fixing tile caching bug (resulting in temporarily disappearing items/monsters.) 
Added sanctuary art.

--------------------------------------------------------------------------------
b184952d37 | dolorous | 2008-01-20 15:17:18 +0000

Add minor comment typo fixes.

--------------------------------------------------------------------------------
79f52ea00f | dolorous | 2008-01-20 15:11:37 +0000

Fix [1875709]: Make Mountain Dwarves' experience modifier in tables.txt match 
the one they have in species_exp_mod().

--------------------------------------------------------------------------------
289f3c7515 | dolorous | 2008-01-20 15:09:47 +0000

Simplify species_exp_mod() a bit.

--------------------------------------------------------------------------------
4fedf6f33f | haranp | 2008-01-20 09:51:59 +0000

Dungeon applicator functions will now return true if any of their calls 
returned true, not just the one on the current level.

--------------------------------------------------------------------------------
90e4386f60 | dolorous | 2008-01-20 05:27:28 +0000

When causing dungeon-wide effects for Nemelex and Beogh abandonment, only 
display the associated messages if the effects actually changed something.

--------------------------------------------------------------------------------
ee3bb90a15 | ennewalker | 2008-01-20 03:07:16 +0000

Added rock worm and transparent wall tiles from Denzi. Added blood splatter. 
More tile code cleanup.

--------------------------------------------------------------------------------
e11ef227c8 | j-p-e-g | 2008-01-20 01:49:07 +0000

A bit of tile code cleanup.

--------------------------------------------------------------------------------
d89d2d6b35 | j-p-e-g | 2008-01-20 01:40:57 +0000

Tiles: Show excluded squares in minimap (darkcyan, and overridden by any 
feature, monster or item)

--------------------------------------------------------------------------------
467446254e | j-p-e-g | 2008-01-19 20:35:24 +0000

Fix non-tile compile of tutorial.cc (whoops!)
Add messages when entering or leaving the level map ('X') in tiles.
First attempts at outlining icons via cursor in tile tutorial. 
(Currently this only works for monsters, though I'm not sure why...)

And some code clean-up for tiles and the tutorial.

--------------------------------------------------------------------------------
b305accdee | ennewalker | 2008-01-19 03:55:41 +0000

Tile support to show travel exclusions. Added status graphic for poisoned 
monsters. Changing tile storage type from unsigned short to unsigned int to 
have room for more flag bits.

--------------------------------------------------------------------------------
8b88fbd216 | ennewalker | 2008-01-18 17:47:21 +0000

Making mouse-over region larger on Linux. Reformatting mouse-over messages to 
be consistent. More tile code cleanup and dead code removal.

--------------------------------------------------------------------------------
1b7d49de60 | j-p-e-g | 2008-01-18 11:49:07 +0000

Fix tutorial output for tile mode. For now, we simply suppress output of ASCII 
item/monster symbols. Also, fix non-tile compile and add a few comments to 
tiles.

--------------------------------------------------------------------------------
43ab7c1ef4 | ennewalker | 2008-01-18 04:48:33 +0000

Adding (previously forgotten) identified deck of dungeons icon into tile page.

--------------------------------------------------------------------------------
c1fa0d7d44 | ennewalker | 2008-01-18 02:47:00 +0000

[1838120] Ghosts change icon when saving and restoring in tile version 
[1843058] Player info too close to map in tile version

--------------------------------------------------------------------------------
2d552e655e | j-p-e-g | 2008-01-18 00:31:16 +0000

Some more improvements for (you guessed it) the tiles. Hey, I can't help it! :)
Fix 1872624: Detect creatures revealing too much info
 The tiles drawn for detected monsters are now 
 mons_genus(monster). It's not quite as strict as only
 showing the letter in ASCII (e.g. merfolk, minotaur
 and elephant slug have different genus but one common
 letter), but it's certainly better than showing the 
 actual monster.

Some more changes to L-click action in inventory, this 
time adding rods to the mix that can now be evoked 
rather than unwielded.

Also:
* Fix cut-off of first digit in item quantities > 99
* show friendly monsters on map overview as lightred
  (hostiles remain darkred)
* show player on map overview as white even when
  zooming around in X-mode
* general clean-up

And, not tile-related:
FR 1819454: * add mutation line for gourmand behaviour 
              of Ogres and Troll.

--------------------------------------------------------------------------------
a64069c6cb | j-p-e-g | 2008-01-17 14:23:07 +0000

Add a number of (hopefully useful) mouse-click shortcuts for tiles.
shift-L-click on player: follow stairs (up or down as necessary)
shift-R-click on player: show religion screen (if religious)
click on stat area: call '5' (100 turn resting)

and add mouse-over information for these commands.
Do we need a seperate documentary or is this enough?

--------------------------------------------------------------------------------
3ab3303612 | ennewalker | 2008-01-17 13:40:34 +0000

Secret doors that have a transparent appearance are discovered opened, to 
prevent a LOS change when noticed.

--------------------------------------------------------------------------------
69d952a981 | dshaligram | 2008-01-17 12:33:56 +0000

Removed bad tags from Crypt:5 map.

--------------------------------------------------------------------------------
70f25d2e4f | ennewalker | 2008-01-17 12:32:51 +0000

Fixing black outline on yaktaur captain tile.

--------------------------------------------------------------------------------
b02152fa51 | dolorous | 2008-01-17 03:49:37 +0000

Add minor cleanups.

--------------------------------------------------------------------------------
73de214902 | ennewalker | 2008-01-17 02:02:00 +0000

Not drawing MP bar at all if max MP is zero.

--------------------------------------------------------------------------------
2ed4b6fdf7 | dolorous | 2008-01-17 01:54:08 +0000

For gods that don't take item sacrifices, only display "[God] doesn't care 
about such mundane gifts." if there are items where you stand.

--------------------------------------------------------------------------------
9a414619a4 | dolorous | 2008-01-17 01:39:09 +0000

Fix division by zero when displaying the graphical MP bar if the player's 
maximum MP is zero.

--------------------------------------------------------------------------------
62bd4a8f2b | ennewalker | 2008-01-17 00:53:03 +0000

[1873122] Graphical MP bar

--------------------------------------------------------------------------------
adc19de691 | j-p-e-g | 2008-01-16 23:52:16 +0000

Overhaul quiver storage to hold up to six item slots of preferred ammo for bow, 
crossbow, hand crossbow, blowgun, sling, and non-launchers. Breaks saves. (Was 
Bug 1872821.)
Also fix 1858916: update EV when paralysis is over

--------------------------------------------------------------------------------
2d16881d33 | dolorous | 2008-01-16 21:59:38 +0000

As brought up during the good god overhaul discussion a few months ago, adjust 
TSO's life protection to work as follows: put it in player_prot_life() so it's 
displayed just as Zin's mutation protection is; give one, two, or three levels 
of it depending on piety (the values are 50, 100, and 150 for now); and add a 
description of it to the religion screen.

--------------------------------------------------------------------------------
b9231c6613 | haranp | 2008-01-16 18:58:05 +0000

'DD' is now an alias for 'Dy'. Clean up some corpse handling, add 
food_is_rotten() function instead of manually checking special < 100 everywhere.

--------------------------------------------------------------------------------
b8ba267261 | j-p-e-g | 2008-01-16 17:11:06 +0000

FR 1836617: Add item brand for plants (and mimics) in Tiles. FR 1870291: Give a 
message when gaining exp for killing monsters             outside LOS.          
   (This is something the player can find out by checking 	     their xp 
pool, anyway, so it's not like it gives 	     anything away. Currently 
does not happen for pet kills, 	     should it?)
Implement 1829910: Make Daevas fully resist negative energy, with the
                   reasoning that TSO will protect them.

Also, fix dragon slaying to actually have an effect on draconian 
players (whoops!) as well as on characters in Dragon Form.

--------------------------------------------------------------------------------
5a01c6b4c0 | ennewalker | 2008-01-16 04:40:06 +0000

[1871563] Fixed apply_to_all_dungeons() tile changing problem.

--------------------------------------------------------------------------------
54e0fc3576 | ennewalker | 2008-01-16 04:13:31 +0000

[1871387] Fixed issue where the wrong tile was used for weapons of returning.

--------------------------------------------------------------------------------
9a0858b7fe | j-p-e-g | 2008-01-15 20:23:20 +0000

Changed description for Nemelex, and a minor change to Elyvilon.

--------------------------------------------------------------------------------
51045ff40e | j-p-e-g | 2008-01-15 20:13:32 +0000

FR 1813275: Change description of dragon slaying to an old suggestion           
  by Lemuel.
Also: Increase bonus damage for orc/dragon slaying from random(damage) 
      to random(3/2*damage).

* FR 1832851: Add flavour message when destroying evil weapons as an 
              Elyvilonist. (I'm wary of increasing the piety returns.)

--------------------------------------------------------------------------------
ea74f11cfb | dolorous | 2008-01-15 19:23:40 +0000

Add more minor religious help fixes: Remove an unneeded newline from the 
Shining One's description, and shift his religious help down to where Zin's is, 
so that it doesn't overwrite his fourth power.

--------------------------------------------------------------------------------
fd4e339d3c | dolorous | 2008-01-15 17:38:11 +0000

Add minor description fixes: Shift Zin's religious help down one line to 
compensate for the new "protection from mutation" line, and display it in the 
GOTO_CRT region instead of the GOTO_MSG region, so that it shows up properly in 
the tiles version.

--------------------------------------------------------------------------------
3479b9467c | ennewalker | 2008-01-15 12:58:46 +0000

Updating tiles bazaar logic to reflect DNGN_FLOOR_SPECIAL removal. Fixing 
issues when viewing the dungeon via right-clicking on the map.

--------------------------------------------------------------------------------
c952a077df | j-p-e-g | 2008-01-14 17:22:57 +0000

FR 1861017: add info on enchanting hides to enchant armour description FR 
1840678: upon failed sacrifice give hint on correct item class part of FR 
1857701: Give a message when a weapon of returning does NOT return              
       (and add a message_colour line in init.txt)
Also, change Zin's donation messages to reflect the piety status the player
will have once the piety pool has emptied into the actual piety, and modify
descriptions of the good gods (by David).

--------------------------------------------------------------------------------
4461e8e2b1 | dolorous | 2008-01-14 17:17:52 +0000

Add minor cosmetic cleanups.

--------------------------------------------------------------------------------
ecdff56d9f | j-p-e-g | 2008-01-14 16:48:41 +0000

Fix 1871029: really lose beogh_water_walk() upon penance              -> Beogh 
worshipper now will fall into water and drown
Fix 1871027: no autosacrifice of restricted items (!p or rune/orb)

Fix 1870495: make RAP_ANGRY actually call go_berserk() from time to time

Fix 1849181: fix mimic description to match item (undetected mimic)
             or mimic database entry (detected mimic)

--------------------------------------------------------------------------------
b79623e115 | dolorous | 2008-01-14 01:48:41 +0000

Add a few more minor manual fixes.

--------------------------------------------------------------------------------
95701ec615 | j-p-e-g | 2008-01-13 20:39:37 +0000

Add "Tele" to manual -> "Special enchantments".

--------------------------------------------------------------------------------
df31ea9fdc | j-p-e-g | 2008-01-13 20:34:46 +0000

Mixed commit of small additions/changes.
FR 1870139: output "Tele" among enchantment abbrevs
            when "about to teleport"
FR 1834016: print item slots along with rotting message
            (I added an option for this as I personally don't need this.)

Gods:
* Add ^ line for Zin's mutation protection.
* Modify protection from harm adjectives in ^ screen to make difference
  between Ely and Zin/TSO more obvious.

Tiles:
Bug 1870238: Show mimics to be "autopickuable" (green frame).
* Smarter handling of L-click actions in inventory.
* code clean-up

--------------------------------------------------------------------------------
0962c78181 | dshaligram | 2008-01-13 15:11:52 +0000

Fixed permarock lining on Zot:5 (syllogism).

--------------------------------------------------------------------------------
1e4cfbb223 | dshaligram | 2008-01-13 15:03:38 +0000

New Crypt:5 (dpeg).

--------------------------------------------------------------------------------
a7fc683736 | dolorous | 2008-01-13 00:56:31 +0000

Fix some message inconsistencies.

--------------------------------------------------------------------------------
67eb55632c | j-p-e-g | 2008-01-12 21:56:27 +0000

Whoops, forgot about manuals. Don't attempt to memorize manuals or the book of 
destruction.

--------------------------------------------------------------------------------
d0f739d802 | j-p-e-g | 2008-01-12 21:10:29 +0000

Tile changes. *waves to Enne*
Fix assertion error when unwielding items.

FR 1838216: Make R-click on map *really* show grid information.
FR 1838219: Add more diverse action verbs for items in inventory
            ("eat", "unwield" etc. rather than plain "use") and
            allow memorizing by L-clicking on books.
Bug 1858432: Show 0 charge icon for empty but unID'd wands.

Also:
Don't regard enslavement on friendlies as attack attempt.

--------------------------------------------------------------------------------
7e10afcafb | ennewalker | 2008-01-12 20:39:55 +0000

Updating credits.

--------------------------------------------------------------------------------
fd9b04217a | ennewalker | 2008-01-12 19:37:09 +0000

Fixing title screen redraw issue.

--------------------------------------------------------------------------------
9df5c52a56 | ennewalker | 2008-01-12 19:00:48 +0000

Adding Win32 icon.

--------------------------------------------------------------------------------
5b97fd711a | dshaligram | 2008-01-12 18:01:43 +0000

Updated credits.

--------------------------------------------------------------------------------
3947969b0b | dshaligram | 2008-01-12 17:58:31 +0000

Fixed shield bonus when confused (syllogism).

--------------------------------------------------------------------------------
7b83fd125f | dshaligram | 2008-01-12 17:53:23 +0000

Players can use upward escape hatches even if beyond the burden limits for 
normal stairs.

--------------------------------------------------------------------------------
e8db28371c | ennewalker | 2008-01-12 17:40:50 +0000

Fix tiles title screen issues on Win32. Continuing tile code cleanup.

--------------------------------------------------------------------------------
34c943ec7a | dshaligram | 2008-01-12 17:00:34 +0000

Removed debugging mpr (cbus).

--------------------------------------------------------------------------------
0e62733b09 | ennewalker | 2008-01-12 16:20:52 +0000

Fixed Win32 tiles crash due to lack of args. Added Win32 tiles command line 
parsing and connected console output for stdout/stderr.

--------------------------------------------------------------------------------
4489cc101f | dshaligram | 2008-01-12 14:01:16 +0000

Fixed macro bug reported on the antichri^W^W Windows Vista.

--------------------------------------------------------------------------------
fed7cd6012 | dshaligram | 2008-01-12 11:32:15 +0000

New Zot levels, courtesy Lemuel (David).
Added more control when specifying draconians in maps (any yellow draconian, 
green draconian knight, any nonbase red draconian, any base draconian, etc.).

Fixed crash when dragon or draconian breathes and the player is unarmed.

Replaced magic number 250 in monster creation with enum constant 
MONS_PROGRAM_BUG.

--------------------------------------------------------------------------------
0dcc5cec25 | dshaligram | 2008-01-12 07:34:53 +0000

Removed duplicated name from CREDITS.

--------------------------------------------------------------------------------
2142f58ea3 | dshaligram | 2008-01-12 07:25:52 +0000

Updated CREDITS, fixed bounds check for Lee's.

--------------------------------------------------------------------------------
d675e0a1e1 | dshaligram | 2008-01-11 19:18:52 +0000

Removed bogus melee attacks for yaktaur captains (Erik).

--------------------------------------------------------------------------------
eea03c30a9 | dshaligram | 2008-01-11 18:24:10 +0000

Auto-id of fired missiles also auto-ids missiles fired from the same stack on 
the floor.

--------------------------------------------------------------------------------
01a7854be4 | dshaligram | 2008-01-11 17:54:33 +0000

Fixed bad messages when poison beams do zero damage to non-PR monsters.

--------------------------------------------------------------------------------
2a3dbc0f01 | dshaligram | 2008-01-11 14:38:07 +0000

Fixed entry vault that could create hostile statues on D:1.

--------------------------------------------------------------------------------
b2f8c7c8b8 | ennewalker | 2008-01-11 13:40:58 +0000

Adding merfolk monster tiles.

--------------------------------------------------------------------------------
2ca53ae21f | ennewalker | 2008-01-11 05:01:32 +0000

Putting back accidently removed 'const'.

--------------------------------------------------------------------------------
3869fcc1d8 | ennewalker | 2008-01-11 04:58:51 +0000

Changes to beheld: * Can no longer swap away from the beholder. * Can now open 
doors while beheld by trying to move into them. * Movement away from beholder 
converts into melee attack, if applicable. * No beheld message unless it is the 
cause of prevented movement.

--------------------------------------------------------------------------------
62e7bec9ea | dshaligram | 2008-01-10 15:10:19 +0000

Fixed missing upstairs in Hall of Blades (uru). Corrected some minivault depths.

--------------------------------------------------------------------------------
5bea4d0131 | dshaligram | 2008-01-10 14:20:47 +0000

More resist fixes.

--------------------------------------------------------------------------------
56367110a5 | dolorous | 2008-01-10 13:52:18 +0000

Increase the damage done to undead by weapons of holy wrath to match the damage 
done to demons, and tweak the brand description to fit this change.

--------------------------------------------------------------------------------
f4f7cd2334 | dshaligram | 2008-01-10 11:06:35 +0000

#include "AppHdr.h" before including debug.h to fix the NDEBUG/DEBUG out of 
sync assert.

--------------------------------------------------------------------------------
93de2b5b81 | dshaligram | 2008-01-10 10:36:48 +0000

s/LONG_SWORDS/LONG_BLADES/ (cbus).
Use skill_name() to describe weapon skills. 

--------------------------------------------------------------------------------
633f889bea | ennewalker | 2008-01-10 03:45:34 +0000

Fixing stat window to use crawl_view.hudsz and not hard-coded numbers. Fixing 
message window scrolling not moving the cursor position for input.

--------------------------------------------------------------------------------
106449f3ce | dolorous | 2008-01-10 01:00:01 +0000

Make the "Polymorph Other" spell/wand count toward Zin's deliberate mutation 
conduct.

--------------------------------------------------------------------------------
9f29aa11e3 | ennewalker | 2008-01-10 00:18:32 +0000

Fixing compilation issues from ghost changes. Fixing incorrect asserts in tiles 
code.

--------------------------------------------------------------------------------
e262ce4eaa | dolorous | 2008-01-09 18:42:35 +0000

Fix output display to accommodate the new quiver listing in the status section.

--------------------------------------------------------------------------------
340eb55f6f | j-p-e-g | 2008-01-09 17:27:13 +0000

List quiver in status section like you do for the hand weapon.

--------------------------------------------------------------------------------
5698a4093e | dolorous | 2008-01-09 16:04:08 +0000

In mons_flies(), determine flight status for zombies based on their original 
class, so that e.g. giant bat zombies still fly and giant eyeball zombies still 
levitate.

--------------------------------------------------------------------------------
1fee14c432 | dshaligram | 2008-01-09 15:45:46 +0000

First cut at new multilevel resists for monsters, needs a lot of work - 
suggestions welcome.

--------------------------------------------------------------------------------
f2a95ba0d4 | dshaligram | 2008-01-09 14:24:11 +0000

Monsters get multilevel resists (incomplete). Monster data needs to be adjusted 
per monster to hand out the right resists. The current MR_RES_FIRE gives one 
level of resistance only.
Added a real ghost structure, discarded the old ghost values array.
Adjusted bones file format so bones will work out-of-the-box with
Hearse. Breaks bones format, older bones will be rejected.

Fixed some maps with bad DEPTHs.

Added more safe answers in Y/N prompts, added a check to make it less
likely that Crawl will spin in a tight loop reading input from a
closed tty.

(Experimental) !a will override existing foe of friendlies in LOS.

Blademasters no longer pick up stuff to throw (Erik).

Zombies of swimming things are also swimming things. Currently applies
only to zombies explicitly placed in .des files, since fish zombies
cannot be generated otherwise (can of worms).

Morgue is now saved before showing the inventory and other boring
end-of-game stuff.

--------------------------------------------------------------------------------
447bc8ac9d | j-p-e-g | 2008-01-09 14:15:43 +0000

Add gore and splatter to Crawl - in the form of Jarmo's (strongly modified, I 
admit) blood patch.
Whenever the player or a monster capable of bleeding suffers 
damage (currently only in melee) or when you dissect a corpse
there's a chance (depending on damage/corpse weight) that the
square will turn bloody and be coloured red, with a much 
lower chance of additionally spattering some of the 
surrounding squares. These chances are probably still a bit 
too high for later values of possible damage dealt.
Also, ranged and some of the magic attacks (earth-based, 
mostly) should also be able to send blood flying. :p

For now, this is flavour only, but it shouldn't be too 
difficult to introduce relations to Necromancy or evil gods.

Also consider dragons to be warm-blooded, like dinosaurs.

--------------------------------------------------------------------------------
88f39cd2d9 | dolorous | 2008-01-09 02:15:10 +0000

[1866013] Fix character dump log typos.

--------------------------------------------------------------------------------
adc7a6d8bb | dolorous | 2008-01-09 02:07:18 +0000

Also display the proper messages when all your orcish followers abandon you 
(oops).

--------------------------------------------------------------------------------
98be944864 | dolorous | 2008-01-09 01:38:24 +0000

Abandoning Beogh will now make all your orcish followers on all levels desert 
you, as opposed to just the ones around you.

--------------------------------------------------------------------------------
ec37a4e0d3 | dolorous | 2008-01-09 01:32:32 +0000

Add killing mutators/rotters to the conduct description array, to fix an 
assertion failure in the debug build.

--------------------------------------------------------------------------------
5b2d47dfa2 | j-p-e-g | 2008-01-08 21:33:27 +0000

Replace TSO's Smiting with Divine Shield.
Actually, I wasn't entirely sure which of the many attack
invocations to replace and I chose Smiting mostly because
of the new overlap with Zin and because such a change is
easiest to revert (copy code from Zin). :p

Divine Shield strengthens existing shields (also magical,
which might have to be excluded) or else creates a new
magical one. Either way, the shields value is increased by
  3 + skills(SHIELDS)/5
and this bonus lasts for 
  5 + (skills(SHIELS) + 2*skills(INVOCATIONS))/6
turns, after which it is decreased by 1 every two out of
three turns until it reaches 0.

--------------------------------------------------------------------------------
34bb40abab | dolorous | 2008-01-08 21:14:40 +0000

Remove unused variable.

--------------------------------------------------------------------------------
1688c67564 | j-p-e-g | 2008-01-08 12:34:34 +0000

The accuracy of dragon breath is now halved if you're wielding a weapon of 
dragon slaying (with the somewhat weak reasoning that a dragon will try to 
avert its eyes from your awful weapon).
From how I read the code this function is only called if you 
are attacked as monsters will not breathe at other monsters, so
that the above check is valid.

Also fix 
1865179: Airstrike now wakes (and annoys) monsters.
1861118: Evaporate now can be cancelled during potion or direction choice.

--------------------------------------------------------------------------------
98ffb74e5a | ennewalker | 2008-01-08 05:21:05 +0000

Modifying shoals tiles.

--------------------------------------------------------------------------------
ccb819471f | ennewalker | 2008-01-08 04:51:10 +0000

Adding TODO placeholder logic for tiles that haven't been drawn yet.

--------------------------------------------------------------------------------
e8f0ce9de1 | ennewalker | 2008-01-08 04:05:00 +0000

Adding naga and centaur barding tiles to replace bad placeholder art. Removing 
more unused Nethack tiles.

--------------------------------------------------------------------------------
7351857a9a | j-p-e-g | 2008-01-07 19:24:34 +0000

Removed DISRUPTION brand and added DRAGON_SLAYING.
The old disruption code should probably be moved over to holy wrath
but I'm unsure whether I should replace the current one. I'm talking 
about the "You are blasted by holy energy!" bit in the commit below.
For now, I've simply removed it.

All dragon slaying currently does is what orc slaying does, only
against dragons. So no additional effects, resistances or otherwise.
Both slaying brands are still randomly created (though dragon only
for polearms), I haven't changed anything about that.

Also removed DISTORTION effect upon wielding such a weapon. Xom is
still pleased about seeing you in this conundrum, but not as much as
when you were blasted right away. Changed distortion description to
explicitly mentioning its effects.

--------------------------------------------------------------------------------
a670276b9d | dshaligram | 2008-01-07 10:57:03 +0000

Vault updates (David).

--------------------------------------------------------------------------------
e6c0189fde | dolorous | 2008-01-06 21:15:13 +0000

Check whether a monster has the Polymorph Other spell when determining if it's 
a mutator.  Only pulsating lumps have the AF_MUTATE ability; all others (giant 
orange brains, neqoxecs, etc.) have the spell.

--------------------------------------------------------------------------------
e01b9934ab | dolorous | 2008-01-06 18:58:18 +0000

Add one more minor wording tweak.

--------------------------------------------------------------------------------
41ed96cee5 | dolorous | 2008-01-06 18:18:01 +0000

Add type fixes.

--------------------------------------------------------------------------------
23d3e07de8 | dolorous | 2008-01-06 16:27:59 +0000

Add minor wording tweak.

--------------------------------------------------------------------------------
6bc2ed8d72 | j-p-e-g | 2008-01-06 10:54:31 +0000

Change conducts of Zin and TSO (!)
Zin:
- DID_UNDEAD_KILLED_BY_SERVANT
- DID_DEMON_KILLED_BY_SERVANT
+ DID_KILL_MUTATOR_OR_ROTTER
(shapeshifters and monsters that have an attack AF_MUTATE or AF_ROT)

TSO:
+ DID_KILL_NATURAL_EVIL
+ DID_NATURAL_EVIL_KILLED_BY_SERVANT

Removed M_EVIL flag from a number of early monsters such as goblins 
and hobgoblins, and also from orcs, ogres, trolls and big kobold. 
Reasoning: The corresponding species are not considered evil 
themselves and are allowed to worship the good gods).
Note that this weakens all forms of holy attacks!

Any attempt to charm evil, undead or demonic monsters will fail
(no effect) for worshippers of TSO.

Like Makhleb, TSO now gets returning power (arguable) and hp from 
killing evil, undead and demonic monsters.

Zin's piety pool (from donations) is drained much quicker now, on 
average once every 5 turns.

--------------------------------------------------------------------------------
7281e182f7 | ennewalker | 2008-01-06 05:04:40 +0000

Modified top level makefile to conditionally set the MAKEFILE variable. Fixed 
warning in non-tiles build.

--------------------------------------------------------------------------------
d8a1d291f7 | ennewalker | 2008-01-06 04:11:51 +0000

Adding lua bindings to X11 makefile by default.  Removing more unused iso-mode 
code.

--------------------------------------------------------------------------------
1c4c94863d | dolorous | 2008-01-06 00:16:48 +0000

Fix problem when traveling up and down levels after a period of time. Summoned 
monsters' disappearing wasn't being taken into account after handling monster 
enchantments; a disappeared monster would have a type of -1; and the call to 
mons_habitat(), which looked at the monster type, would crash.

--------------------------------------------------------------------------------
faeac7bac7 | dolorous | 2008-01-05 22:31:49 +0000

Remove Zin's protection from draining attacks, as well as piety gain for 
killing demons and undead.  TSO is now the only good god that retains these 
things, as they suit him better.

--------------------------------------------------------------------------------
3174391110 | ennewalker | 2008-01-05 22:17:12 +0000

Tile support for Lugonu's corruption ability.

--------------------------------------------------------------------------------
57e3a454ab | ennewalker | 2008-01-05 20:47:27 +0000

Adding title to X11 window so it doesn't say "untitled window" anymore.

--------------------------------------------------------------------------------
9822263068 | ennewalker | 2008-01-05 20:15:34 +0000

Adding title screen for tiles (and title_screen option.)

--------------------------------------------------------------------------------
d3a0d2d064 | ennewalker | 2008-01-05 19:09:34 +0000

Removing unused Nethack wand tiles.

--------------------------------------------------------------------------------
ed292ae42a | ennewalker | 2008-01-05 18:16:35 +0000

Exposing (species-dependent) max and min hunger so that tiles can use that info.

--------------------------------------------------------------------------------
076f55f390 | dolorous | 2008-01-05 18:14:52 +0000

Clean up dolinks.sh some more: make it check for directories, not symlinks, as 
domake.sh does.

--------------------------------------------------------------------------------
e5cae7b317 | dolorous | 2008-01-05 18:10:47 +0000

Adjust dolinks.sh so that it can be run more than once without generating 
warnings or dangling symlinks.

--------------------------------------------------------------------------------
e63e7a7682 | dolorous | 2008-01-05 17:55:42 +0000

Remove the M_WALL_SHIELDED flag.  Instead, use the function 
mons_is_wall_shielded() to determine whether a monster can pass through/be 
shielded by walls, as it's a more flexible approach.  The function currently 
only checks for a monster class with a rock habitat, but it could be expanded 
to allow for other cases.
Replace the M_WALL_SHIELDED flag with the M_INSUBSTANTIAL flag, and 
check for the latter instead of hardcoding a list of monsters in 
mons_is_insubstantial().

--------------------------------------------------------------------------------
d3b7fd1f06 | ennewalker | 2008-01-05 17:17:54 +0000

Adding deck type and subtype icons. Improved yaktaur captain icon. Removing 
unused nethack misc item tiles. Better vampire tiles. Fixed rim logic when 
composing tiles for tilesheet.

--------------------------------------------------------------------------------
da4adcc1d6 | ennewalker | 2008-01-05 15:40:40 +0000

Fixing Pan assertion. Fixing Pan coloring issue. Adding new dungeon tiles from 
Denzi. Fixing lack of initialization of tiles when going up stairs to a new 
level. Allowing for different flavors of lava and water.

--------------------------------------------------------------------------------
f9115aff53 | j-p-e-g | 2008-01-05 12:09:21 +0000

A few small sanctuary changes.

--------------------------------------------------------------------------------
2633664948 | ennewalker | 2008-01-05 04:43:35 +0000

tile2.cc cleanup.  Removing unused ISO code.  Removing (more) hard tabs.

--------------------------------------------------------------------------------
abbce05d41 | ennewalker | 2008-01-05 04:15:30 +0000

Removing unused tiles image directory.

--------------------------------------------------------------------------------
506edfaeff | dolorous | 2008-01-05 03:45:04 +0000

Adjust dolinks.sh to properly handle a tiles-enabled build, and add 
commented-out makefile entries for the two platform-specific tiles-enabled 
makefiles.

--------------------------------------------------------------------------------
62f7040f14 | ennewalker | 2008-01-05 01:33:53 +0000

Tiles!

--------------------------------------------------------------------------------
19155f1f85 | dolorous | 2008-01-05 00:27:23 +0000

Remove invalid check for 2 or more levels of the acute vision mutation, as it 
only has one level.  Also remove some unneeded whitespace.

--------------------------------------------------------------------------------
58e79e1949 | dolorous | 2008-01-04 23:57:34 +0000

Mark the entire cyclops species as native to the Shoals, so that Polyphemus is 
included (oops).

--------------------------------------------------------------------------------
100aaf9b67 | dolorous | 2008-01-04 19:46:43 +0000

Fix comment typos.

--------------------------------------------------------------------------------
b3a3bad397 | dolorous | 2008-01-04 18:48:02 +0000

Since swamp worms and rock worms don't leave corpses, don't give them zombie 
sizes.

--------------------------------------------------------------------------------
88f95c1514 | dolorous | 2008-01-04 18:46:44 +0000

Actually use the new rock habitat properly (oops).

--------------------------------------------------------------------------------
ca64bade7f | dolorous | 2008-01-04 17:36:28 +0000

Add more miscellaneous cosmetic cleanups.

--------------------------------------------------------------------------------
7c7d0e9149 | j-p-e-g | 2008-01-04 15:53:56 +0000

Clear up comments in mon-data.h to reflect not so recent changes, i.e. include 
genus/species, list constants rather than numbers etc. Also fix  1863437: 
"butchering knife" -> "butchering tool"  1861315: change Wayne's description 
from dwarf to wizard  1861873: ugly things are not intelligent

--------------------------------------------------------------------------------
4157668cbf | dolorous | 2008-01-04 14:27:11 +0000

Fix a comment.

--------------------------------------------------------------------------------
630f023b7b | j-p-e-g | 2008-01-04 12:17:46 +0000

Several more tweaks of Zin:
* Xom is added to the evil god list
* You cannot create a sanctuary if there's already one
  on the level.
* The burial message is changed to dolorous' suggestion
  ("expects more respect for this departed soul")
* fix two minor bugs in sanctuary handling

--------------------------------------------------------------------------------
3f71507141 | dshaligram | 2008-01-04 06:54:03 +0000

Fixed missing space in polymorph message (cbus), fixed broken debug compile.

--------------------------------------------------------------------------------
0a2eef4f7c | dolorous | 2008-01-04 05:26:00 +0000

Add more habitat cleanups: rename HT_NORMAL to HT_LAND, remove 
HT_SHALLOW_WATER, and rename HT_DEEP_WATER to HT_WATER.

--------------------------------------------------------------------------------
ba61c9ea0f | dolorous | 2008-01-04 03:46:04 +0000

Add rock wall to the habitats list (for rock worms), and move monster classes' 
associated habitats into the monsterentry struct.

--------------------------------------------------------------------------------
e2f74e90f4 | j-p-e-g | 2008-01-03 23:07:39 +0000

More tweaks of Zin:
1. Let sanctuaries shrink during the last few turns
   rather than suddently disappear when it times out.

2. Introduce donations (and remove item sacrifice)
   I suppose abilities will now have to become more 
   expensive pietywise. I raised the piety cost of
   the sanctuary from 10 to 15, but that probably 
   won't be enough.

   For the piety gain I introduced a new duration,
   DUR_PIETY_POOL that is filled with 
    gold/200 * log(gold)  upon donation and then
   leaks with 5% chance per turn one piety point 
   into the actual piety.

   All numbers are open for discussion and change.

   Breaks saves.

--------------------------------------------------------------------------------
5c0a7e21f8 | dolorous | 2008-01-03 22:00:14 +0000

Mark cyclopes, merfolk, and mermaids as native to the Shoals.

--------------------------------------------------------------------------------
29472d3df5 | dolorous | 2008-01-03 21:56:40 +0000

Reorder the list of monsters native to the Hive.

--------------------------------------------------------------------------------
ee7b2c694b | dolorous | 2008-01-03 21:54:07 +0000

Revert r3175, as killer bees and killer bee larvae are single species, and also 
mark queen bees as native to the Hive.

--------------------------------------------------------------------------------
d107e79219 | dolorous | 2008-01-03 21:21:26 +0000

Add miscellaneous type cleanups and comment fixes.

--------------------------------------------------------------------------------
90c66b9494 | dolorous | 2008-01-03 19:35:59 +0000

Mark all insubstantial monsters, as well as earth elementals, as not leaving 
corpses or having zombie sizes (those that weren't already marked as such, 
anyway).

--------------------------------------------------------------------------------
58cb62c507 | dolorous | 2008-01-03 16:50:47 +0000

For consistency, mark the killer bee and killer bee larva species as native to 
the Hive, as opposed to just the corresponding monsters.

--------------------------------------------------------------------------------
bae629a904 | dshaligram | 2008-01-03 13:53:25 +0000

[1863138] Fixed assignment of -1 to unsigned beam type.

--------------------------------------------------------------------------------
429f50cfb0 | dolorous | 2008-01-02 19:04:26 +0000

Add minor comment updates.

--------------------------------------------------------------------------------
84ca717b1d | dshaligram | 2008-01-02 16:32:48 +0000

[1862240] Allow mummies to use rods of smiting, removed minimum 
level-restriction for rods.

--------------------------------------------------------------------------------
3c5008169d | dshaligram | 2008-01-02 15:49:41 +0000

[1862227] Fixed invalid character combinations being selectable.

--------------------------------------------------------------------------------
7b290eea46 | dolorous | 2008-01-02 02:49:21 +0000

Swap the champion titles for Zin and the Shining One, as "Champion of Law" fits 
the god of law better, and "Divine Warrior" fits the god of paladins better.

--------------------------------------------------------------------------------
dbf1fab25b | dshaligram | 2007-12-31 12:57:55 +0000

Fixed miscast fall-through (sorear).

--------------------------------------------------------------------------------
55b1c5403c | dolorous | 2007-12-30 21:13:10 +0000

In zin_retribution(), make the routine to skip over Zin's removal of good 
mutations if the player isn't very mutated actually work, by using punishment 
properly in the switch statement.

--------------------------------------------------------------------------------
85c720e57c | j-p-e-g | 2007-12-30 21:12:36 +0000

Updated description of Zin.

--------------------------------------------------------------------------------
e864f4d3b8 | j-p-e-g | 2007-12-30 20:31:38 +0000

A completely reworked version of Zin as per the lengthy discussion in 
October/November.
Zin effects:
- protection from harm (like all good gods)
- feeding when starving (as before)
- mutation resistance (chance of piety/200)

Zin restrictions:
- no cannibalism (like all good gods)
- no attacking friends
- no eating of intelligent beings' corpses
- no deliberate mutating

Zin invocations:
- Smiting (general priestly ability?)
- Revitalisation (Minor Healing + 5 mp)
- Sanctuary (protection from attacks)

--------------------------------------------------------------------------------
7554b6525e | dshaligram | 2007-12-30 19:04:56 +0000

Swamp drakes should not be M_EVIL (syllogism).

--------------------------------------------------------------------------------
5062c1fa4b | dshaligram | 2007-12-30 18:22:28 +0000

Removed "all" option to easy_confirm.

--------------------------------------------------------------------------------
6874fbf7f4 | dshaligram | 2007-12-30 18:07:14 +0000

Escape hatches can be safely navigated when confused - this behaviour fits 
their description and messages better (b0rsuk).

--------------------------------------------------------------------------------
399d484275 | dshaligram | 2007-12-30 16:53:32 +0000

Fixed LOS handling for secret doors in transparent walls.

--------------------------------------------------------------------------------
7ee9932cc7 | dshaligram | 2007-12-30 16:39:42 +0000

Added new vaults (incl. Crypt, altars, entries). Contributed by Lemuel, 
bobbens, zaba.
Fixed level lexer to handle DOS-style line endings in .des files on Unix.

--------------------------------------------------------------------------------
0a390f673d | j-p-e-g | 2007-12-30 13:53:30 +0000

Apply dolorous' patch to fix incorrect handling of nets monsters leave behind 
when blinking or teleporting. (Thanks.)

--------------------------------------------------------------------------------
e07b2622e2 | dshaligram | 2007-12-30 13:37:01 +0000

Moved handle_time and friends to effects.cc.

--------------------------------------------------------------------------------
5468ad7e21 | dshaligram | 2007-12-30 13:22:29 +0000

Fix ice statue description to not suggest vulnerability to disintegration.

--------------------------------------------------------------------------------
649ca00119 | dshaligram | 2007-12-30 13:19:35 +0000

Reduce frequency of polymorph zaps.

--------------------------------------------------------------------------------
65c148fa03 | dshaligram | 2007-12-30 13:10:15 +0000

Allow monsters to use wands of disintegration and polymorph other.

--------------------------------------------------------------------------------
6db2168cc9 | dshaligram | 2007-12-30 12:17:33 +0000

Fixed branded weapons generated as monster starting gear not being consistently 
visibly special.

--------------------------------------------------------------------------------
50d63f4c4a | dshaligram | 2007-12-30 11:25:00 +0000

[1833997] Fixed autopickup being blocked by first item that finds pack is full 
- autopickup now checks all items anyway, looking to find items that stack or 
that need no slots (gold).

--------------------------------------------------------------------------------
92953e0b11 | dshaligram | 2007-12-30 11:09:14 +0000

[1859013] Fixed swamp worms being able to move over dry land.

--------------------------------------------------------------------------------
eb4256db69 | dshaligram | 2007-12-30 10:35:34 +0000

Removed most instances of direct access to monsterentry for monster energy 
updates.

--------------------------------------------------------------------------------
3e0f256c39 | dshaligram | 2007-12-30 09:42:28 +0000

Fixed banished monsters leaving their items behind.

--------------------------------------------------------------------------------
5cdc214dfd | dshaligram | 2007-12-30 09:35:41 +0000

Summoned monsters will now take back only items they were summoned with - 
subsequently acquired items will be left behind when they disappear.
MF_HARD_RESET should now be used only for dancing weapons - other summons are 
generated with items marked appropriately.

--------------------------------------------------------------------------------
4605353157 | dshaligram | 2007-12-30 08:47:22 +0000

Fixed bad handling of w: tags in .des files (yellow:5 => fail) (David).
Fixed summoned monsters dropping their gear when killed (needs some adjustment).

--------------------------------------------------------------------------------
f1f838b18f | dolorous | 2007-12-30 02:42:55 +0000

Add comment typo and indentation fixes.

--------------------------------------------------------------------------------
9b312b48a3 | dshaligram | 2007-12-29 18:04:15 +0000

Give ghosts freezing cloud (syllogism).

--------------------------------------------------------------------------------
c493310ecb | dshaligram | 2007-12-29 15:49:07 +0000

Fixed reaching checking for 1 mp although it no longer uses mp. Made it easier 
to reach past monsters, and fixed failed attempts to reach past a monster 
attacking the monster (b0rsuk).

--------------------------------------------------------------------------------
3dbcfedf8f | dolorous | 2007-12-29 13:43:46 +0000

Fix another comment typo.

--------------------------------------------------------------------------------
a44f0e10c3 | dshaligram | 2007-12-29 04:54:46 +0000

[1849483] Wielded weapons are ignored when looking for missiles to fire, and 
fire_items_start defaults to 'a' again.

--------------------------------------------------------------------------------
e758c8dd2f | dshaligram | 2007-12-28 18:11:47 +0000

[1852851] Fixed option aliases not being used inside Lua conditional blocks in 
.crawlrc.

--------------------------------------------------------------------------------
ec3449727d | dshaligram | 2007-12-28 17:50:19 +0000

Updated crawlrc and crawl_options for greedy_items.

--------------------------------------------------------------------------------
9af0215986 | dshaligram | 2007-12-28 17:49:03 +0000

[1849483] Warn player when fire_items_start option is blocking selection of the 
only available missile (note that this doesn't entirely address the problem).
[1852034] Added greedy_items option to explore_stop to force greedy explore to 
stop and announce even items that it plans to pick up.

--------------------------------------------------------------------------------
ee86ed7bc4 | dshaligram | 2007-12-28 17:22:41 +0000

[1827171] Don't truncate single-line game summary at 80 characters.

--------------------------------------------------------------------------------
4ea2f46911 | dshaligram | 2007-12-28 17:05:53 +0000

[1829946] Fixed monsters being unaware that miasma hurts bad.

--------------------------------------------------------------------------------
895860a717 | dshaligram | 2007-12-28 16:56:12 +0000

[1854279] Fixed scroll of fear not iding when resisted.

--------------------------------------------------------------------------------
ed2381c38a | dshaligram | 2007-12-28 16:42:55 +0000

[1857104] Rakshasas lacked M_ACTUAL_SPELLS.

--------------------------------------------------------------------------------
2bc554ff35 | dshaligram | 2007-12-28 16:35:46 +0000

[1859486] Fixed skeletons weighing five times more than intended, burden state 
not changing when corpse rots to skeleton.

--------------------------------------------------------------------------------
7ea028dc76 | dshaligram | 2007-12-28 14:58:48 +0000

Fixed Makhleb lightning bolt glyph.

--------------------------------------------------------------------------------
d6691cfdd3 | dshaligram | 2007-12-28 14:50:20 +0000

[1857669] Fixed books using the wrong glyph when thrown, removed SYM_foo enum 
and replaced it with dchars.

--------------------------------------------------------------------------------
cd1074ada4 | dolorous | 2007-12-28 14:07:23 +0000

Update tables.txt to account for Hill Orcs' new Throwing aptitude.

--------------------------------------------------------------------------------
026c0bdc4e | dshaligram | 2007-12-28 14:06:18 +0000

Adjusted experience modifiers for high-level uniques.

--------------------------------------------------------------------------------
3ccb12040a | dshaligram | 2007-12-28 13:56:56 +0000

Removed cost for evoking weapons of reaching. Evocations skill is no longer 
trained by reaching.

--------------------------------------------------------------------------------
4c14df18b2 | dshaligram | 2007-12-28 13:43:44 +0000

Reduced contamination from potions of resistance.

--------------------------------------------------------------------------------
a7788b6f19 | dshaligram | 2007-12-28 13:39:54 +0000

Upped attack damage for all nagas, give naga warriors more hp.

--------------------------------------------------------------------------------
8b4d989b5d | dshaligram | 2007-12-28 11:31:20 +0000

[1858476] Moved slime pits entry to Lair:8-10.

--------------------------------------------------------------------------------
a7bd172e81 | dshaligram | 2007-12-28 11:21:35 +0000

[1858551] runrest.lua settings also affect travel.

--------------------------------------------------------------------------------
10df1430f0 | dshaligram | 2007-12-28 11:12:46 +0000

[1858564] Glow contamination is now more likely to mutate, more likely to 
produce magical explosions, and magical contamination explosions do double 
damage to undead. Undead are also more likely to decompose from any mutation 
effect (66% instead of 55%).

--------------------------------------------------------------------------------
223b567ad7 | dshaligram | 2007-12-28 10:51:40 +0000

[1858820] Hill Orc Throwing aptitude changed: 130 -> 100.

--------------------------------------------------------------------------------
f04482906f | dolorous | 2007-12-28 04:06:19 +0000

Properly disallow wearing helmets with horns again (oops).

--------------------------------------------------------------------------------
baaffd2035 | dolorous | 2007-12-28 03:54:15 +0000

Remove unneeded logic in you_can_wear().

--------------------------------------------------------------------------------
5313dc41e8 | j-p-e-g | 2007-12-27 22:57:56 +0000

After a short consultation with David I'm reasonably sure these changes are 
correct. (More *.des updates.)

--------------------------------------------------------------------------------
349fa896e5 | j-p-e-g | 2007-12-27 22:45:13 +0000

More .des changes.

--------------------------------------------------------------------------------
0b6fd812d7 | j-p-e-g | 2007-12-27 22:39:13 +0000

First part of .des changes (courtesy of David). These should be safe, and I'll 
have a look into the other diffs right away.
What he did:
- replace granite statue with glass walls
- correct mistakes
- add information

--------------------------------------------------------------------------------
523c1a9b59 | dolorous | 2007-12-27 18:33:11 +0000

Allow racial sabres to be generated randomly.

--------------------------------------------------------------------------------
d6c49351eb | dshaligram | 2007-12-27 14:51:20 +0000

Made labyrinths bigger, removed padding around minivaults.

--------------------------------------------------------------------------------
51f94bd1a8 | dshaligram | 2007-12-27 14:44:40 +0000

Removed secret door from lab exit.

--------------------------------------------------------------------------------
ce8229c68a | dolorous | 2007-12-26 20:16:52 +0000

Give proplist.lua native line endings, as all the other Lua files have.

--------------------------------------------------------------------------------
59faa69f1d | dolorous | 2007-12-26 18:41:48 +0000

Remove duplicate item descriptions hardcoded in describe.cc, and move 
descriptions of too-large javelins and nets into items.txt.

--------------------------------------------------------------------------------
ba06b43178 | zelgadis | 2007-12-23 03:56:06 +0000

Fixed anti-zigzag angle-bisection logic bug, reducint the worst case scenario 
increase in auto-explroe turns from 20% to 13%.

--------------------------------------------------------------------------------
7ab388d144 | zelgadis | 2007-12-21 07:12:38 +0000

Another small improvement to the anti-zigzag algorithm.  Also, the pathological 
case took only 20% more turns, not 50% more.

--------------------------------------------------------------------------------
c9c0dd88de | zelgadis | 2007-12-21 06:32:59 +0000

Fixed a big bug in the anti-zigzag logic, with the fix cutting the increases in 
explore time for city levels to a more reasonable level.

--------------------------------------------------------------------------------
43870fb93e | dolorous | 2007-12-21 04:26:50 +0000

Since sling bullets and throwing nets can't be generated poisoned, don't let 
the "Poison Ammunition" spell work on them.

--------------------------------------------------------------------------------
ec33ee0898 | dshaligram | 2007-12-20 13:25:33 +0000

Script to verify luadgn.cc and enum.h are in sync for dungeon features.

--------------------------------------------------------------------------------
e4ced2ef03 | dshaligram | 2007-12-20 08:09:56 +0000

Priests should not start with staves or shield skill, since they start with 
neither staff nor shield.

--------------------------------------------------------------------------------
e1e87fe37a | dolorous | 2007-12-19 20:47:12 +0000

Fix comment typo.

--------------------------------------------------------------------------------
fba3271ecf | dolorous | 2007-12-19 20:32:43 +0000

Mark firedrakes as being of the MONS_DRAGON genus, as all other drakes are.

--------------------------------------------------------------------------------
68324bb233 | dolorous | 2007-12-19 19:34:25 +0000

Update the manual to account for some of the new status types.

--------------------------------------------------------------------------------
66086dcca3 | dolorous | 2007-12-19 17:50:36 +0000

Add more minor fixes to the manual, mostly to fix confusion of invoking and 
evoking things.

--------------------------------------------------------------------------------
033671575f | dshaligram | 2007-12-19 15:14:38 +0000

Removed score bonus for escaping without the Orb.

--------------------------------------------------------------------------------
8ea36975f7 | dshaligram | 2007-12-19 12:55:17 +0000

Removed orc priests from entry vaults.

--------------------------------------------------------------------------------
a31218a1b9 | zelgadis | 2007-12-19 08:23:59 +0000

The first algorithm I tried for improving auto-explore simply increased the 
time taken to explore a level (and didn't reduce zig-zagging, like I thought it 
did).  The next two algorithms I tried didn't work either; looks like avoiding 
back-tracking doesn't speed up auto-explore.  So I got rid of all of that and 
concentrated just on reducing zig-zagging, which altough it has no in-game 
problems is visually annoying (to me, at least).  Stats:
For most level types the increase in the number of turns auto-explore
takes is no more than 1%, but on "city" like leves (as in the Vaults)
and in the Shaols the increase can be from 7% to 13%; in the Swamps
it doesn't make any difference.

--------------------------------------------------------------------------------
fc1772e817 | zelgadis | 2007-12-19 07:58:41 +0000

For debug test explore, moving through shallow water can make the detailed 
turns-and-elapsed-time-by-branch information (PlaceInfo) not add up, causing an 
assertion when the savefile is loaded.  Fixed simply by forcing the numbers to 
add up, since introducing innacuracies into this when debug testing shouldn't 
be a problem.

--------------------------------------------------------------------------------
432b2bd312 | zelgadis | 2007-12-19 03:19:07 +0000

Debug test explore (&O) now returns you to your starting point after it's done.

--------------------------------------------------------------------------------
edd984de59 | dshaligram | 2007-12-17 20:09:37 +0000

[1852499] Fixed buggy lab vault, mutation assert.

--------------------------------------------------------------------------------
ccc59d2164 | dolorous | 2007-12-17 19:40:24 +0000

Mark deep elf priests as M_EVIL (natural evil), since they're described as 
"servants of the deep elves' dark god".  Besides, deep elf high priests are 
already marked as M_EVIL, and they're described as "exalted servants of the 
deep elves' dark god".

--------------------------------------------------------------------------------
6cadeed9e1 | j-p-e-g | 2007-12-17 19:27:30 +0000

Make tutorial messages stop travel. (There might have been a FR to that effect, 
but if so I didn't find it.)

--------------------------------------------------------------------------------
bba53aa20f | dolorous | 2007-12-17 18:06:30 +0000

Fix another problem related to [1831343].  Kobolds and big kobolds now get 
their darts in give_ammo() instead of give_weapon().  One side effect of fixing 
this is that it is now possible for kobolds and big kobolds to get both a melee 
weapon and darts.  Since both darts and the melee weapons that kobolds and big 
kobolds can get are relatively weak, I also think this is okay for now.

--------------------------------------------------------------------------------
11c39299ba | dolorous | 2007-12-17 17:46:26 +0000

Fix [1831343].  Merfolk fighters were wielding stacks of spears because they 
were being given in give_weapon(), as opposed to give_ammo(), where they should 
have been.  One side effect of fixing this is that it is now possible for 
merfolk fighters to get both a trident and spears/javelins/throwing nets, or 
neither.  Since getting neither is possible for orcs (i.e. orc fighters), and 
merfolk have the same aptitude for unarmed combat as orcs; and since gnolls can 
get both polearms (although not tridents) and throwing nets, I think both 
possibilities are okay for now.

--------------------------------------------------------------------------------
c1fec7f7bc | zelgadis | 2007-12-17 11:07:19 +0000

I really should spell-check my comments before checking code in; oops.

--------------------------------------------------------------------------------
d459948cef | zelgadis | 2007-12-17 10:03:47 +0000

Experimental "improved" explore algorithm which can be turned on by adding 
"explore_improved=true" to crawlrc.  The intent is to reduce backtracking and 
zig-zagging during auto-explore.  Currently only works with non-greedy explore 
since I can't yet figure out how to intelligently combine it with greediness.

--------------------------------------------------------------------------------
eab76c4ea5 | zelgadis | 2007-12-17 06:38:07 +0000

Remove "drifitng" mutation, since consensus seems to be that it wasn't very 
good.

--------------------------------------------------------------------------------
8daf70029a | dolorous | 2007-12-17 03:01:02 +0000

Don't bother checking for and skipping over throwing nets when generating 
racial traps, as set_equip_race() won't make them racial.

--------------------------------------------------------------------------------
a5b02f6cb1 | dolorous | 2007-12-16 23:24:29 +0000

Remove studded leather armor, as its implementation is unfinished, it's never 
used anywhere, and it doesn't add much.

--------------------------------------------------------------------------------
0d4b67d18f | dshaligram | 2007-12-16 12:20:12 +0000

Removed overlong randart name.

--------------------------------------------------------------------------------
cfe2ed148e | dshaligram | 2007-12-16 12:13:09 +0000

Fixed acquirement not generating footwear.

--------------------------------------------------------------------------------
8376e44039 | dshaligram | 2007-12-16 11:58:18 +0000

Fixed crashes when searching for randarts in stash-tracker.

--------------------------------------------------------------------------------
1ece2e1bb9 | dshaligram | 2007-12-16 10:55:26 +0000

Fixed maps broken by KFEAT changes in trunk.

--------------------------------------------------------------------------------
bf366a62ce | dolorous | 2007-12-16 07:29:25 +0000

Fix message typos.

--------------------------------------------------------------------------------
338779d4c4 | dolorous | 2007-12-16 04:52:47 +0000

Put the items back in alphabetical order after the recent changes.

--------------------------------------------------------------------------------
00c922e39e | dolorous | 2007-12-16 04:52:00 +0000

Fix a missing comma in the "bardiche" description.

--------------------------------------------------------------------------------
20c4bc4dea | dolorous | 2007-12-16 01:12:51 +0000

Reallow racial eveningstars (dwarven and orcish), since executioners' axes 
aren't generated randomly, but they can still be orcish; and since eveningstars 
are essentially better morningstars, which can be dwarven or orcish.  Also, 
allow dwarven executioners' axes, since dwarves can make other two-handed axes 
such as battleaxes.

--------------------------------------------------------------------------------
4f2784acf0 | dolorous | 2007-12-15 22:51:49 +0000

Per dploog's suggestion, reallow enchanted ancuses, as they're not mundane 
clubs as clubs, giant clubs, and giant spiked clubs are.

--------------------------------------------------------------------------------
2602dfb7b3 | dolorous | 2007-12-15 22:25:17 +0000

After some more thought, reallow racial ancuses, but only orcish ones. The 
giant clubs are the only really ogreish weapons, and the ancuses that ogres 
start with are effectively their small clubs.  Besides, orcs already make small 
clubs, so they should occasionally make larger ones. Also, disable dwarven 
clubs and ancuses.

--------------------------------------------------------------------------------
ece6b3a70e | dolorous | 2007-12-15 21:59:28 +0000

Disallow enchanted ancuses, as they're clubs, and the associated comment says 
that "nobody would bother enchanting a club".  Also, clean up random item 
generation a bit more; some of it is redundant, given the logic in 
set_equip_race().

--------------------------------------------------------------------------------
22d174adce | dolorous | 2007-12-15 21:45:02 +0000

Disallow racial eveningstars, as they never show up randomly.  Also, clean up 
random item generation a bit.

--------------------------------------------------------------------------------
9c38c1f6f9 | dolorous | 2007-12-15 21:36:40 +0000

Disallow racial blessed blades, as they never show up randomly.

--------------------------------------------------------------------------------
957415b47d | dolorous | 2007-12-15 15:02:48 +0000

Disallow racial ancuses.  They don't show up randomly, elves don't make them, 
and dwarves and orcs already make flails, which are very similar in terms of 
stats.  Furthermore, no monsters get them, and the only player race that starts 
with them are ogres, so it seems like an ogreish weapon, which, like giant 
clubs, wouldn't be made by any of the "Big Three" races.

--------------------------------------------------------------------------------
1991a1e6d8 | dolorous | 2007-12-15 07:36:56 +0000

Disallow racial scythes.  They're never generated randomly, elves and dwarves 
don't make them, orc monsters don't get them, and they don't seem to fit orcs.
Rationale: They're described as "farming implements usually unsuited to 
combat."  Given orcs' aptitude for combat, they'd use a weapon suited to 
combat in such circumstances.  Also, it's the only slicing polearm, and, 
given the polearms that orc knights and warlords can get, they prefer 
the chopping ones.

--------------------------------------------------------------------------------
a7d74c3301 | dolorous | 2007-12-15 04:09:03 +0000

Add a few item database fixes.  Rename "gloves" and "boots" to "pair of gloves" 
and "pair of boots", respectively, so that they can be found in the database 
(the latter fixes [1850497]).  Also, in item_def::name_aux(), disable the 
racial prefix for ammunition when looking it up, so that racial ammunition can 
be found in the database.

--------------------------------------------------------------------------------
b5cb57470c | dolorous | 2007-12-14 18:39:53 +0000

Attempt to fix [1850593] by reverting r3020, as getch_ck() acts differently 
under Windows and Unix-line systems.

--------------------------------------------------------------------------------
8509ab3cd1 | dolorous | 2007-12-14 04:25:25 +0000

Fix a comment typo.

--------------------------------------------------------------------------------
8b14a9ec91 | dolorous | 2007-12-14 02:21:13 +0000

Fix [1813286]: Rename the lochaber axe to the bardiche, and change its 
description accordingly.

--------------------------------------------------------------------------------
70e2038c42 | dolorous | 2007-12-13 23:25:44 +0000

Actually allow elven whips in set_equip_race().

--------------------------------------------------------------------------------
1e7e6030b8 | dolorous | 2007-12-13 22:02:49 +0000

In set_equip_race(), disallow dwarven whips, since they don't show up randomly.

--------------------------------------------------------------------------------
f94f63d5a0 | dolorous | 2007-12-13 22:00:07 +0000

Allow racial whips again, as orc and elf monsters can get them (oops), and 
allow elven and orcish ones to be generated randomly, since they're 
dexterity-based maces/flails, as opposed to strength-based.

--------------------------------------------------------------------------------
0bb95b49f9 | dolorous | 2007-12-13 21:41:26 +0000

Add still more consistency fixes regarding racial weapons, based on whether 
they're randomly generated:
* no racial whips

* no dwarven/orcish quick blades or longbows

* no elven polearms other than spears and tridents

* no elven long blades other than falchions, long swords, and scimitars

* no dwarven long blades other than falchions

* no orcish long blades other than falchions, long swords, scimitars, 
  and great swords

--------------------------------------------------------------------------------
b6d1522ba3 | dolorous | 2007-12-13 20:56:15 +0000

Add a minor documentation fix: the racial modifier for elves is elven, not 
elvish.

--------------------------------------------------------------------------------
bf516ccc1f | zelgadis | 2007-12-13 20:19:13 +0000

mapdef/vault items can now have their race type and ego explicitly set.
mapdef/vault monsters can now be given an explicit list of items.

--------------------------------------------------------------------------------
c4752d24d7 | dolorous | 2007-12-13 17:02:38 +0000

Simplify racialise_starting_equipment(), and clean up related code a bit.

--------------------------------------------------------------------------------
52b146bac6 | haranp | 2007-12-13 10:02:21 +0000

Permanent levitation no longer confers permanent flight.

--------------------------------------------------------------------------------
ac1b7c7427 | haranp | 2007-12-13 09:11:07 +0000

Toned down Shuffle frequency.

--------------------------------------------------------------------------------
aaf761f5ca | dolorous | 2007-12-13 04:46:53 +0000

In set_equip_race(), disallow elven crossbows, dwarven bows and hand crossbows, 
and orcish hand crossbows.  Do this since elves don't make bolts, dwarves don't 
make arrows, and dwarves and orcs only make crossbows.

--------------------------------------------------------------------------------
7abec6bdf8 | dolorous | 2007-12-13 03:09:47 +0000

When trying to wear a hard helmet as a kenku, display "That helmet does not fit 
your head!" instead of "You can't wear that in your present form."

--------------------------------------------------------------------------------
daffe68811 | dolorous | 2007-12-12 22:33:11 +0000

Add minor cleanups of the new helmet handling code: use is_hard_helmet() 
instead of hardcoding references to caps and wizard hats when possible.

--------------------------------------------------------------------------------
3dbe5462b4 | haranp | 2007-12-12 16:32:52 +0000

Code cleanup in describe.cc randart descriptions.

--------------------------------------------------------------------------------
6abfdfb2cd | haranp | 2007-12-11 10:08:18 +0000

Added an MF_SHOW_PAGENUMBERS flag to Menu, which will show "(page X of Y)" as 
part of the title. This can get a bit confusing when scrolling using up and 
down (as opposed to page-up/page-down.) Currently only used for select_items().

--------------------------------------------------------------------------------
cdeeda0469 | zelgadis | 2007-12-11 07:04:48 +0000

The Ctrl-I wizard command can now generates stats on randart properties for a 
given base item.

--------------------------------------------------------------------------------
a0bf507cfa | dolorous | 2007-12-11 06:18:00 +0000

And fix compilation breakage (oops again).

--------------------------------------------------------------------------------
42bdc5b9f9 | dolorous | 2007-12-11 06:11:20 +0000

Fix the disabling of dwarven and orcish soft helmets to disable *only* soft 
helmets (oops).

--------------------------------------------------------------------------------
1e18a1cd84 | dolorous | 2007-12-11 05:11:10 +0000

Add still one more consistency fix for equipment: let elven and orcish leather 
armors be generated randomly.

--------------------------------------------------------------------------------
fdd102c5c9 | dolorous | 2007-12-11 03:55:14 +0000

Display "You detect nothing." if you cast Detect Secret Doors and no secret 
doors are found.

--------------------------------------------------------------------------------
823af63f75 | zelgadis | 2007-12-11 03:34:01 +0000

wizard's hat -> wizard hat

--------------------------------------------------------------------------------
12441b7619 | dolorous | 2007-12-10 22:02:04 +0000

Add one last consistency fix for equipment.  Disallow elven hard helmets 
(helmets and helms), as well as dwarven and orcish soft helmets (caps and 
wizards' hats).  Those are the only kinds randomly generated, and some 
wanderers can get them.

--------------------------------------------------------------------------------
e1828c2128 | haranp | 2007-12-10 21:56:35 +0000

Fixed torment not respecting lichform.

--------------------------------------------------------------------------------
a24959dec2 | haranp | 2007-12-10 21:51:19 +0000

' will now swap to miscellaneous items (except for runes) but not missiles. 
[1847482]

--------------------------------------------------------------------------------
656ec74670 | dolorous | 2007-12-10 21:27:32 +0000

Add a minor wording fix to the manual.

--------------------------------------------------------------------------------
9020068a7c | haranp | 2007-12-10 21:25:11 +0000

Helmets, helms, caps and wizard hats now have their own subtypes, as opposed to 
the old model where they had subtype ARM_HELMET. Breaks savefiles, might be 
buggy.

--------------------------------------------------------------------------------
1e79812dc4 | j-p-e-g | 2007-12-10 20:06:52 +0000

Updated manual to mention, among others, artefacts. (David). --Thiit's not an 
aouitgfou zcivx g M    docs/crawl_manual.txt

--------------------------------------------------------------------------------
97451edfd2 | dolorous | 2007-12-10 06:29:08 +0000

Add one more consistency fix for equipment.  Allow dwarven and orcish gloves to 
be randomly generated, since some wanderers can get them.

--------------------------------------------------------------------------------
eea08588eb | dolorous | 2007-12-10 03:07:45 +0000

Add more consistency fixes for equipment.  Disallow dwarven needles and 
blowguns in set_equip_race(), as the former are useless without the latter, and 
dwarves don't make the former.  Also, disallow racial naga and centaur 
bardings, as they aren't generated randomly, and are useless to anyone but 
nagas and centaurs.  Finally, allow orcish robes and shields to be generated 
randomly; among monsters, orc wizards already get orcish robes, and, among 
players, orc fighters already start with orcish shields, and orcs are good with 
shields anyway.

--------------------------------------------------------------------------------
fbc73ad608 | dshaligram | 2007-12-09 15:51:33 +0000

Fixed mummy and drac fighters not getting shields, DrFi not getting weapon 
choice.

--------------------------------------------------------------------------------
22fe880982 | zelgadis | 2007-12-09 06:01:40 +0000

Use end(), not perror(), to give message about save file being invalid.

--------------------------------------------------------------------------------
6c371e05ca | zelgadis | 2007-12-09 05:54:15 +0000

Make "svn status" ignore the lua static library file.

--------------------------------------------------------------------------------
2356c9d5d8 | zelgadis | 2007-12-09 05:51:59 +0000

Halt command repitions and macros when gaining a level.

--------------------------------------------------------------------------------
6af0738c87 | dolorous | 2007-12-08 20:52:48 +0000

Allow javelins of returning.  Since these are powerful, make them as rare as 
distortion weapons (4%), not counting the fallthrough for orcish ones' being 
poisoned.

--------------------------------------------------------------------------------
60bdc5258f | dolorous | 2007-12-08 18:28:38 +0000

Implement the returning brand for ammunition.  This mostly uses the same code 
as weapons of returning, but such ammunition has the same chance of being 
randomly destroyed when thrown as non-returning ammunition.  Note that the 
brand is not actually generated anywhere yet.

--------------------------------------------------------------------------------
e9c382cd38 | dshaligram | 2007-12-08 15:18:15 +0000

Bumped save major version to 5 to prevent collisions with Crawl 4.0/4.1 files.

--------------------------------------------------------------------------------
3413f575a6 | zelgadis | 2007-12-08 11:24:48 +0000

Add "item generations stats" (Ctrl-I) wizard command, which currently only 
generates stats on items attained via acquirement.
Move the acquirement logic of turning non-wearable headgear to wearable
headgear from acquirement() to find_acquirement_subtype() so that
it will happen before acquirement()'s can_wear_armour() check.  The
old way of doing it meant that players who couldn't wear helmets/helms
had the armour acquirement chance for headgear reduced from the noraml 10%
to around 1%.

--------------------------------------------------------------------------------
b73eb90dd3 | zelgadis | 2007-12-08 06:57:24 +0000

Fixed two aquirement bugs:
1) Nagas and centaurs were never getting barding.

2) Vampires were only getting one potion of blood if they acquired food.

--------------------------------------------------------------------------------
c34b121702 | dolorous | 2007-12-07 18:30:21 +0000

Use c_getch() instead of m_getch() in getch_mul(), as the translation provided 
by c_getch() makes Ctrl-H act as expected on Unix-like terminals where Ctrl-H 
returns KEY_BACKSPACE, instead of producing the "Unknown command." message.

--------------------------------------------------------------------------------
4e483ad381 | dshaligram | 2007-12-07 07:19:18 +0000

Fixed maps not loading because monster name cache was initialised only after 
loading maps, but was being looked up while loading maps.
Removed bad PLACE: that was forcing strawberry fields to appear infallibly on 
Lair:3.

--------------------------------------------------------------------------------
8f93a07ab1 | dolorous | 2007-12-07 07:15:54 +0000

Add a few last whitespace fixes.

--------------------------------------------------------------------------------
ee19f1ad5c | dolorous | 2007-12-07 07:08:01 +0000

Add still more whitespace and comment fixes.

--------------------------------------------------------------------------------
37d418957c | zelgadis | 2007-12-07 06:31:37 +0000

The copy operator for CrawlStoreValue was copying the value of the val.ptr 
pointer, rather than copying the object that the pointer referenced; this could 
potentially lead to freed memory being referenced or to memory being freed 
twice.  This will hopefully fix some CrawlStore related assertions caused by 
randarts.

--------------------------------------------------------------------------------
dad5adc316 | haranp | 2007-12-06 19:22:59 +0000

Refix branding-name fix.

--------------------------------------------------------------------------------
2e8e0ffb7f | haranp | 2007-12-06 15:40:17 +0000

Fix 1845534 (bad naming for brands.)

--------------------------------------------------------------------------------
aab6e642f5 | zelgadis | 2007-12-06 12:17:44 +0000

Forgot to sort the item description entires.

--------------------------------------------------------------------------------
402e94a76a | zelgadis | 2007-12-06 12:13:42 +0000

Database entries fetched with getLongDescription() can contain embeded Lua 
code.  The code will be replaced with its return value before being displayed 
to the user.  The Lua code has no access to the thing being described, and so 
can only rely on global data.

--------------------------------------------------------------------------------
3a8c26c188 | zelgadis | 2007-12-06 10:54:17 +0000

If a "?/" query produces an exact match for the string entered, but also 
produces non-exact matches, then the exact match is shown right away, but with 
a footer saying that you can press space to look at the list of non-exact 
matches.
When done with a "?/" query, the user is returned to the inital "/?"
prompt.

--------------------------------------------------------------------------------
47173f1092 | zelgadis | 2007-12-06 09:54:50 +0000

"?/" can now be used to look up items.  A side effect of this is that item 
descriptions have been moved to dat/descript/items.txt and 
dat/descript/unident.txt.
STL maps are now used to look up exact matches for the names of monsters,
features and spells, so that looking them up with "?/" won't get too
slow if there's a large descriptions DB and each key has to be tested
if its a monster/spell/etc.

--------------------------------------------------------------------------------
7640ea1ef7 | dolorous | 2007-12-06 04:11:15 +0000

Reenable the poisoned brand for javelins, as it apparently does work, just as 
it does with thrown poisoned darts (oops).

--------------------------------------------------------------------------------
cb77f31c6f | haranp | 2007-12-05 22:20:07 +0000

Fixed 1845116: monsters can reberserk while berserk.

--------------------------------------------------------------------------------
9ac5496b13 | haranp | 2007-12-05 15:42:37 +0000

Removed smoke from sticky flame and mystic blast.

--------------------------------------------------------------------------------
16af0422e5 | haranp | 2007-12-05 15:22:45 +0000

Travel will now avoid deep water unless you're permanently safe in it. Failing 
to displace a monster triggers an interrupt. Fixed up autoinscription a bit 
more.

--------------------------------------------------------------------------------
376d7d8be0 | haranp | 2007-12-05 14:06:26 +0000

Slight cleanup of randart autoinscription. Code cleanup with unrandarts and 
fixedarts. Bugfix for isomorphic-up-to-colour unrandarts being confused when 
lost in the Abyss. Trowel will not clobber critical features (stairs, portals, 
etc.) Nemelex is unhappy about Trowel failing. Breaks savefiles.

--------------------------------------------------------------------------------
55812ea322 | zelgadis | 2007-12-05 09:18:09 +0000

Added gods and branches to the "?/" describe command; branch descriptions need 
to be filled out.
List of monsters described by "?/" now starts out sorted by toughness,
rather than alphabetically.

--------------------------------------------------------------------------------
503d86058c | dolorous | 2007-12-05 07:16:33 +0000

Add minor cosmetic fixes, mostly involving whitespace and comments.

--------------------------------------------------------------------------------
28b3dd9db7 | zelgadis | 2007-12-05 06:23:30 +0000

Fixed some randart auto-inscription bugs.
For jewellery randarts, the properties of the randart's basetype are
included in the auto-inscription.

Auto-inscribe unidentified randarts if the the player has learned
some of its properties via equiping it.

If an unidentified randart is autoinscribed, is subsequently identified,
and the identification reveals more of its properties, then remove the
old atuo-inscription string before adding the new one.

--------------------------------------------------------------------------------
df45205d9a | dolorous | 2007-12-05 05:16:58 +0000

In the special missile descriptions, use SPMSL_* values instead of numbers, and 
add a description of curare.

--------------------------------------------------------------------------------
922342473b | haranp | 2007-12-05 01:11:57 +0000

Randarts can now be autoinscribed from the 'v' screen.

--------------------------------------------------------------------------------
cdab703a67 | dolorous | 2007-12-04 17:24:52 +0000

Allow racial javelins.  Javelins can now be elven and orcish, since dwarves 
don't make polearms, and are made so 25% of the time, the same as for spears.  
Since they have no associated launcher, the usual bonuses for throwing racial 
gear apply to them, in spite of their being missiles thrown by hand.  Also, 
disable branded javelins for now, as branding for thrown missiles in general 
isn't implemented.

--------------------------------------------------------------------------------
ba7c629689 | dshaligram | 2007-12-04 13:15:01 +0000

Merge cset_adjust prototype fix from 0.3.

--------------------------------------------------------------------------------
ccda4c78a7 | dolorous | 2007-12-04 06:11:53 +0000

Fix [1842182]: Casting either "Detect Traps" or "Detect Creatures" now displays 
"You detect nothing." if nothing is found, just as casting "Detect Traps" does.

--------------------------------------------------------------------------------
8d59ecb644 | dshaligram | 2007-12-03 21:30:28 +0000

Merged fix for IBM graphics glitches on Unix from 0.3 (2990-2991).

--------------------------------------------------------------------------------
38e77f4ea4 | zelgadis | 2007-12-03 06:54:53 +0000

Items can now fall through shaft traps (trap doors).  The code is rather 
simplistic, and it's not currently possible to make a "baited" shaft; also, 
there is no threshold weight, so even a single dart will open up (and thus 
reveal) a shaft trap.  Breaks savefile compatibility.
Monsters which fall through a shaft now show up 100% of the time on the
player's next visit to the shaft's destination level.  Also, the monster is
placed close to the spot where the player would end up if s/he went through
the same shaft.

--------------------------------------------------------------------------------
cca6195c04 | dolorous | 2007-12-03 01:43:25 +0000

Add minor whitespace and comment fixes.

--------------------------------------------------------------------------------
1823773290 | haranp | 2007-12-02 19:30:28 +0000

Nemelex now has additional, passive penance: cards from decks can be randomly 
exchanged with ones from the Deck of Punishment. This never times out (until 
you rejoin Nemelex). Fixed a stupid crash regarding describing drawn cards 
(oops.)

--------------------------------------------------------------------------------
eca255feaf | dshaligram | 2007-12-02 19:01:38 +0000

Provide non-magic-map glyph for detected items since the square may already be 
marked mapped/seen.

--------------------------------------------------------------------------------
c03d602445 | haranp | 2007-12-02 18:59:04 +0000

Minor code cleanup and bugfixes with Beogh retribution.

--------------------------------------------------------------------------------
563f2d3967 | dshaligram | 2007-12-02 18:57:28 +0000

Fixed bad detect items behaviour on pre-mapped squares (Iaido).

--------------------------------------------------------------------------------
0d31b1337f | haranp | 2007-12-02 18:36:08 +0000

Decks are now annotated with the list of cards drawn from them in the examine 
screen. Tightened up lines a bit.

--------------------------------------------------------------------------------
8148e4b215 | dshaligram | 2007-12-02 14:48:10 +0000

Killed wrong comment.

--------------------------------------------------------------------------------
2da58bcd0b | dshaligram | 2007-12-02 14:44:20 +0000

[1826006] Fix for DOS colour highlights flooding the screen.

--------------------------------------------------------------------------------
1f5d3c03e5 | dshaligram | 2007-12-02 14:18:16 +0000

Fixed Xom mutation counts.

--------------------------------------------------------------------------------
2c02f36efd | haranp | 2007-12-02 12:17:23 +0000

Added Foxfire, a card which can summon flying creatures. Probably unbalanced: 
you have a 25% chance of getting 12 red wasps at legendary level. Better names 
are also needed.

--------------------------------------------------------------------------------
1569534656 | dshaligram | 2007-12-02 11:07:32 +0000

Add a section on where Crawl looks for its data files to INSTALL. Use stat 
where possible instead of opening files, cleaned up handling of DATA_DIR_PATH 
when searching for data files.

--------------------------------------------------------------------------------
278c7d69e1 | dshaligram | 2007-12-02 10:22:02 +0000

Fix MinGW makefile not copying dat/descript/* to rel (Nicholas).

--------------------------------------------------------------------------------
57ae10de70 | haranp | 2007-12-01 23:47:56 +0000

Experience card now doesn't guarantee a level but does add XP to pool.

--------------------------------------------------------------------------------
5480f286fa | haranp | 2007-12-01 22:01:25 +0000

Nemelex abandonment now shuffles and unmarks all decks.

--------------------------------------------------------------------------------
0093b92f3f | dolorous | 2007-12-01 20:32:58 +0000

In the description for darts, mention that they can be fired from hand 
crossbows as well as thrown.

--------------------------------------------------------------------------------
c98e65d7c1 | haranp | 2007-12-01 19:38:40 +0000

Added a function, apply_to_all_dungeons(), which basically acts as a Visitor 
for every dungeon level. The idea is to use this for galaxy-spanning effects, 
e.g. if you want to shuffle all the decks in existence or deconvert all the 
Beogh-converted orcs. Not well tested; might be buggy.

--------------------------------------------------------------------------------
37ffd29a84 | dolorous | 2007-12-01 18:30:23 +0000

Add one more cleanup of protection from harm.  Since there's more than one type 
of it now, expand god_protects_from_harm() to include the logic for when 
certain gods do it.  Also, as brought up on crawl-ref-discuss, make Elyvilon do 
it both casually and during prayer.

--------------------------------------------------------------------------------
ae715f40ef | haranp | 2007-12-01 16:33:16 +0000

s/tattooed/dyed/

--------------------------------------------------------------------------------
d330ba31b0 | dolorous | 2007-12-01 05:48:57 +0000

Add various minor fixes to the manual.  Among other things:
* Mention that only some statues can be destroyed by melee (e.g. not 
  granite statues).

* Among classes that start with a religion, mention death knights (at 
  least those that draw their power from Yred).

* Mention that hill orcs are not poor at ice elemental magic.

* Mention that spriggans need little food, are herbivores [1840676], and 
  cannot wear most armour.

* Mention that unarmed combat, like fighting, can be brought to level 2 
  by attacks on plants and fungi.

--------------------------------------------------------------------------------
9faa1dc2bc | dolorous | 2007-11-30 21:36:46 +0000

Add consistency fixes for elven weapons:
* Since monster elves can get elven scimitars, and scimitars are long 
blades and better for the dexterous (both of which fit elves), allow 
elven scimitars to be randomly generated.  The chance is 1/5, falling 
through to the existing case of 1/2 for orcish ones, based on the chance 
for elven long swords and adjusted for scimitars' greater rarity.

* Since, aside from starting equipment for elf players, no elven axes 
show up, either randomly or on monster elves, the elven aptitudes for 
axes are almost as bad as those for the disallowed maces/flails, and 
axes are better for the strong (none of which fit elves), disallow elven 
axes.

--------------------------------------------------------------------------------
9d4fedd319 | haranp | 2007-11-30 17:09:11 +0000

Dance now generates less good weapons with low power and better ones with high 
power.

--------------------------------------------------------------------------------
e64fe854e6 | haranp | 2007-11-30 16:09:22 +0000

Added feedback messages for which type of sacrifice value is leading: given 
always when a new type becomes the leader, and 2% of the time for all 
sacrifices. (For Nemelexites only.)

--------------------------------------------------------------------------------
9eb8b488f5 | haranp | 2007-11-30 15:48:59 +0000

Decks of Punishment can now occur randomly (but not be gifted.)

--------------------------------------------------------------------------------
e0bc630366 | haranp | 2007-11-30 14:41:20 +0000

Leather and animal skins can now accept ISFLAG_EMBROIDERED_SHINY; they'll be 
'tattooed' in this case. (Better adjectives welcome.) Fixes 1825641.

--------------------------------------------------------------------------------
8e1e73bb36 | haranp | 2007-11-30 14:30:43 +0000

Be more verbose when removing/putting on jewellery [1826283]

--------------------------------------------------------------------------------
834433c3ec | haranp | 2007-11-30 14:13:37 +0000

Caps and wizard hats are now embroidered, not shiny [1829930]

--------------------------------------------------------------------------------
d943fb6050 | haranp | 2007-11-30 14:01:57 +0000

Don't ID-note when examining books in a shop.

--------------------------------------------------------------------------------
01b0ace86a | dolorous | 2007-11-30 13:08:22 +0000

Fix a typo.

--------------------------------------------------------------------------------
a5158ef501 | haranp | 2007-11-30 11:22:39 +0000

Missed beams from monsters now trigger AI_MONSTER_ATTACKS interrupt. Fixes 
1841439.

--------------------------------------------------------------------------------
bdcd305d09 | haranp | 2007-11-30 11:04:07 +0000

Added Sage card, which boosts skill training. [Side note: rm saves/ * is a bad 
idea.]

--------------------------------------------------------------------------------
f6a1d5082c | dolorous | 2007-11-30 05:10:39 +0000

Clean up set_equip_race() to make it more readable, and also to properly 
disable elven bolts and dwarven arrows (so that e.g. dwarven transmuters don't 
start with the latter).

--------------------------------------------------------------------------------
31151c9dae | dolorous | 2007-11-30 03:10:52 +0000

Mark sling bullets as not having a racial type in set_equip_race(), since 
they're effectively a special variety of stone, and since slings are never 
generated with a racial type either.  Update relevant comments as well.

--------------------------------------------------------------------------------
f988965b47 | dolorous | 2007-11-30 02:38:40 +0000

Fix a comment.

--------------------------------------------------------------------------------
ef084abfa5 | haranp | 2007-11-29 22:30:59 +0000

Added rarity weight vectors. They aren't too interesting at the moment: the 
weight is 5 for everything at all rarities except for Damnation (which is 
0,1,2) and Focus (which is 1,1,2). Suggestions and changes would be appreciated 
(look at the top of decks.cc to see what to change.)

--------------------------------------------------------------------------------
f6c4d4cc8a | dolorous | 2007-11-29 20:00:51 +0000

Move the disabling of elven maces/flails and dwarven polearms into 
set_equip_race(), so that it isn't duplicated for both players and monsters 
(both of which use this function).

--------------------------------------------------------------------------------
bdc780ed16 | haranp | 2007-11-29 17:40:40 +0000

Added the Bones, a skeleton summoning card.

--------------------------------------------------------------------------------
ec6dd2dc55 | haranp | 2007-11-29 17:23:16 +0000

Removed option to cancel prayer when already praying. With some gods praying is 
a tactical decision; it shouldn't be cancelable at will.

--------------------------------------------------------------------------------
6bfb01482a | haranp | 2007-11-29 17:16:19 +0000

Added Vitrification to the Deck of Dungeons: makes walls transparent.

--------------------------------------------------------------------------------
52d10fd220 | haranp | 2007-11-29 16:07:18 +0000

Trowel now generates a friendly temporary golem if it creates a dangerous 
statue.

--------------------------------------------------------------------------------
924617910c | haranp | 2007-11-29 15:52:26 +0000

Nemelex no longer gifts mixed decks.

--------------------------------------------------------------------------------
9048012f07 | haranp | 2007-11-29 15:49:47 +0000

Added Spark card. Added more pain effects. Breaks Nemelexite saves.

--------------------------------------------------------------------------------
e781bb1729 | dshaligram | 2007-11-29 08:51:26 +0000

Ball lightning also resists poison and cold. [1836645] Give earth elementalists 
more stones to start with.

--------------------------------------------------------------------------------
7eb88ac6c9 | dolorous | 2007-11-29 04:31:56 +0000

Apply patch [1816945], adjusted slightly: Move the quality of a monster's 
wielding two weapons to a bit in the monster struct, instead of hardcoding a 
list of such monsters in mons_wields_two_weapons(). Courtesy of bobbens.

--------------------------------------------------------------------------------
1b797bc0f6 | dolorous | 2007-11-28 19:02:07 +0000

Refix penance for destroying orcish idols.

--------------------------------------------------------------------------------
9f355e6e23 | dshaligram | 2007-11-28 18:55:27 +0000

[1832826] Removed another carp to stderr.

--------------------------------------------------------------------------------
3c845a534e | dshaligram | 2007-11-28 18:49:02 +0000

Fixed bad messages when uniques are poisoned by toxic radiance.

--------------------------------------------------------------------------------
95259b9b62 | dshaligram | 2007-11-28 18:14:42 +0000

[1836426] Fixed penance message sequence for beams, clamped penance messages at 
one per turn. (Penance message sequence for melee combat not fixed yet.)

--------------------------------------------------------------------------------
990a102363 | dshaligram | 2007-11-28 16:22:09 +0000

[1834349] Fixed reaching going through walls.

--------------------------------------------------------------------------------
2367c6063d | dshaligram | 2007-11-28 16:07:24 +0000

[1834785] Auto-id resist slowing amulet when hasting/berserking.

--------------------------------------------------------------------------------
dfd1ee4ade | dshaligram | 2007-11-28 16:01:06 +0000

Fixed off-by-one error in Xom spell selection.

--------------------------------------------------------------------------------
a1694321ff | dshaligram | 2007-11-28 15:52:34 +0000

[1836185] Fixed Elf:7 map that substituted away its sparkling fountain.

--------------------------------------------------------------------------------
77482d829e | dshaligram | 2007-11-28 15:38:23 +0000

[1837663] Fixed monsters' raise dead using player's LOS.

--------------------------------------------------------------------------------
583a087da1 | dolorous | 2007-11-28 08:03:02 +0000

Fix [1837634].  Beogh worshippers now get penance again for destroying orcish 
idols.

--------------------------------------------------------------------------------
694c84af36 | dolorous | 2007-11-28 03:51:23 +0000

Make dwarves' and orcs' +1 damage bonus for throwing racial gear (introduced in 
trunk SVN revision 2444) actually apply, by adding the bonus to baseDam *after* 
assigning baseDam the base damage of the thrown item.

--------------------------------------------------------------------------------
7ebc330b3b | dshaligram | 2007-11-27 14:34:51 +0000

Warn players that quarterstaves work badly with shields.

--------------------------------------------------------------------------------
dfc01209f5 | dshaligram | 2007-11-27 14:27:56 +0000

[1838128] Fixed monsters being able to move through immobile monsters on level 
transitions.

--------------------------------------------------------------------------------
b3a3163e2b | dolorous | 2007-11-26 16:51:33 +0000

Change Trog's retribution to send berserking monsters instead of normal ones 
after you.  The points system from the old code is still used to get the power 
level for summon_berserker(), and the "quick reduction for large values" now 
takes off 20 points instead of 15 to compensate for the monsters' being 
stronger.

--------------------------------------------------------------------------------
71fc85edf6 | j-p-e-g | 2007-11-25 21:28:10 +0000

* A few corrections and changes to the tutorial. * Reintroduce protection from 
harm while praying for Ely and Yred   (This weakens Ely's healing effect in 
comparison to Zin and TSO,    so maybe Ely should get both the 1/10 AND the 
prayer bonus.) * FR 1829904: add '%' shortcut to character selection menu

--------------------------------------------------------------------------------
db417e511f | dshaligram | 2007-11-24 20:33:24 +0000

[1837199] Don't prompt for stepping on traps when confused.

--------------------------------------------------------------------------------
bafc68317f | dshaligram | 2007-11-24 17:07:13 +0000

Warn user if mon_glyph lines use bad monster names.

--------------------------------------------------------------------------------
574bf92a37 | dolorous | 2007-11-24 07:06:21 +0000

Add a minor consistency fix: The DID_KILL_NATURAL_EVIL conduct isn't currently 
used, but generate it under the right circumstances anyway, since 
DID_NATURAL_EVIL_KILLED_BY_SERVANT is already generated, and it isn't currently 
used either.

--------------------------------------------------------------------------------
62b57f5fce | dolorous | 2007-11-24 05:21:45 +0000

Clean up and consolidate all the smiting routines into the new function 
god_smites_you().
This fixes a problem where you could worship Beogh, draw the Wrath card 
to make him smite you, and have him possibly protect you from his own 
smiting.  The smiting code in beogh_idol_revenge() wouldn't allow this, 
but the smiting code in beogh_retribution() would.

--------------------------------------------------------------------------------
35a49060d5 | dolorous | 2007-11-24 04:07:08 +0000

minor penance function cleanups: inc_penance()'s god parameter should be 
god_type, not int, as should dec_penance()'s prototype's god parameter

--------------------------------------------------------------------------------
f5332c9ebe | dolorous | 2007-11-24 00:12:05 +0000

in followers_abandon_you(), check to see if you still worship Beogh, so that 
the saving throw for losing followers is only done when you're under penance 
(as the comment says) and not when you've abandoned Beogh

--------------------------------------------------------------------------------
c4768dce14 | dolorous | 2007-11-23 23:10:16 +0000

Add more minor fixes:
* in raise_corpse(), mark the function as static, since its prototype is 
  static and it's only used in one file
* fix an inaccurate comment

--------------------------------------------------------------------------------
1c90a3f53b | dshaligram | 2007-11-23 17:18:11 +0000

Fixed vampire attacks healing the player (Christopher Haima).

--------------------------------------------------------------------------------
0dea061789 | dolorous | 2007-11-23 17:14:08 +0000

more cleanups of penance-related messages: don't hardcode the Shining One's 
name when his smiting is averted, and use simple_god_message() for Beogh's 
message when he makes your followers abandon you

--------------------------------------------------------------------------------
f5d7c74391 | ennewalker | 2007-11-22 16:08:27 +0000

Fixing assertion from SUMMON_DRAKES trying to fire an invalid bolt.

--------------------------------------------------------------------------------
76ee72aeae | ennewalker | 2007-11-22 14:50:10 +0000

Fixing assertion in monsters::pickup_armour when forcibly giving monsters 
unsupported equipment.

--------------------------------------------------------------------------------
7171ba1a29 | j-p-e-g | 2007-11-22 12:07:18 +0000

Don't put players under penance for harming friendlies (or holy monsters) by 
reading an unID'd ?immolation (1834837). You will still lose piety for such an 
action, though.

--------------------------------------------------------------------------------
c37a9398ab | dolorous | 2007-11-22 04:05:26 +0000

Add minor cleanups of divine protection from harm:
* move the list of gods that do it into the function 
  god_protects_from_harm(), instead of hardcoding the list in two places
* update the description of it, both in the code and the surrounding 
  comments, since it no longer depends on prayer, and since it can now 
  happen with piety less than 30

--------------------------------------------------------------------------------
bea44e6c43 | dolorous | 2007-11-22 02:36:43 +0000

make player::has_claws() and player::has_usable_claws() take a bool indicating 
whether claws from transformations should be taken into account; this removes 
the need for more special cases dealing with trolls' and ghouls' built-in claws

--------------------------------------------------------------------------------
9aea04f45a | dolorous | 2007-11-22 01:40:14 +0000

make player::has_claws() return an int indicating the level of claws available; 
this removes the need for some special cases dealing with trolls' and ghouls' 
built-in claws

--------------------------------------------------------------------------------
308d03bae8 | dolorous | 2007-11-21 14:19:35 +0000

[1829667]: use c_getch() to get input for all the new-game menus, since they 
only get CK_* values (which c_getch(), but not getch(), returns under Unix) and 
single-byte characters (which c_getch() and getch() can handle as well as 
get_ch()); this is untested under Windows, but it should work, since the 
tutorial code uses the same technique

--------------------------------------------------------------------------------
50f7fb61fc | j-p-e-g | 2007-11-21 13:29:21 +0000

Finally include Ely piety gain from Destroy Weapon depending on both current 
piety and item value. (Only in 0.3 up to now. Whoops.) And make "evil" weapons 
(demonic, vampiric, pain, draining) always give piety when destroyed. 
(FR1832851)

--------------------------------------------------------------------------------
a627b871c5 | ennewalker | 2007-11-21 05:11:31 +0000

Fixing [1832064] stair bug.  Added a cleanup function to ensure that there is 
at most one stone stair of each type on the level.

--------------------------------------------------------------------------------
04db3066f6 | dolorous | 2007-11-20 17:27:27 +0000

expand the special case for kobold fighters (leather armor, darts, etc.) to 
include halfling and gnome fighters too, as they have similar aptitudes; plus, 
they're worse with Armour skill than kobolds, so getting the fighter default of 
scale mail is disadvantageous

--------------------------------------------------------------------------------
cbaaa32d55 | dshaligram | 2007-11-20 13:36:42 +0000

Allow UNICODE_LOCALE=. in makefile.unix to specify a setlocale(LC_ALL,"") call 
instead of forcing a specific locale (adapted from Guus' Debian patch). Also 
fixed some makefile.unix checks to strip variables that are prone to trailing 
spaces.

--------------------------------------------------------------------------------
e3e729a025 | j-p-e-g | 2007-11-20 12:36:35 +0000

A few changes to shafts: * shafts cannot be created above level 3 in the main 
dungeon * intelligent fleeing monsters will jump into shafts   -> this will 
reveal the shaft to the player * rename "shaft trap" to "shaft" * ask for 
confirmation before stepping into a shaft
Also finally fix colour from post-death inventory bleeding into
the highscore and prompt. (This has always bugged me.)

--------------------------------------------------------------------------------
eddd2e4d44 | dshaligram | 2007-11-20 12:28:36 +0000

Fix gcc optimising away overflow check (Guus).

--------------------------------------------------------------------------------
9ff31d52f2 | dshaligram | 2007-11-20 12:19:31 +0000

Fall back to ASCII if Unicode locale is unavailable (Guus). Also queue up 
startup error messages and display them before the newgame screen instead of 
emitting them to stderr.

--------------------------------------------------------------------------------
1c9f524503 | dolorous | 2007-11-20 06:27:45 +0000

for consistency, tweak Vehumet's starting message to mention his name

--------------------------------------------------------------------------------
ef8244d0e5 | dolorous | 2007-11-20 05:16:17 +0000

since Yred's "Animate Corpse" ability can overlap with the "raise dead" 
demonspawn mutation to an extent, don't allow Yred-worshipping demonspawn to 
get it regardless of piety

--------------------------------------------------------------------------------
3f61c85547 | dolorous | 2007-11-20 04:27:38 +0000

check for ghouls' eating ghouls in is_player_same_species()

--------------------------------------------------------------------------------
76045c6d3d | dolorous | 2007-11-20 03:35:47 +0000

Add various patches of mine:
[1824221] don't give Yred-worshipping demonspawn the "raise dead" mutation
[1829258] remove wrongly hardcoded exp-draining resistance for undead
[1829691] typo fixes
[1830030] clean up random god servant handling
[1829890] fix divine retribution messages, generalize berserker summoning

--------------------------------------------------------------------------------
d92b5fb96b | ennewalker | 2007-11-20 03:28:50 +0000

Extraneous up stairs on dungeon level 1 are confusing to new users.  Removing 
the generation of extra up stairs there.

--------------------------------------------------------------------------------
1008813680 | j-p-e-g | 2007-11-20 00:14:41 +0000

Clean-up of options in init.txt and crawl_options.txt courtesy of maiermirk 
(1829976, 1831190).
This includes a lot of spacing changes, updates of
some examples and moving around some options into more
sensible groupings.

Highlights:
* add returning weapons to fire_order list
  and allow fire_order to use += on new lines
  (This should solve the second part of 1829475.)
* heap_brand now defaults to "reverse"
* detected_item_colour defaults to green

Also s/artifact/artefact.

--------------------------------------------------------------------------------
9cce2935d8 | j-p-e-g | 2007-11-19 14:08:58 +0000

A number of tutorial improvements, including reintroducing info on spellbooks. 
Also: Fix 1832819. (Horn mutation not making helmet slot show as "restricted") 
Fix 1831983. (Autobutcher now ignores weapons inscribed with !w)

--------------------------------------------------------------------------------
6a93b55183 | j-p-e-g | 2007-11-19 00:44:33 +0000

Fix a net bug that was responsible for never (!) entrapping monsters. Whoops... 
Also autoID a weapon of returning the player actually sees returning. (Bug 
1830129)

--------------------------------------------------------------------------------
79c0d3c738 | dshaligram | 2007-11-18 10:36:11 +0000

Kill hard tabs.

--------------------------------------------------------------------------------
d38d39d795 | dshaligram | 2007-11-18 10:33:01 +0000

[1833959] Fixed broken digging beams.

--------------------------------------------------------------------------------
f9c59b6d73 | dshaligram | 2007-11-18 10:08:39 +0000

[1833936] Fixed ASSERT in monster blink checks.

--------------------------------------------------------------------------------
cfd232b515 | dshaligram | 2007-11-17 18:56:43 +0000

Fixed bad shadow creatures summons when climbing with the Orb (bobbens).

--------------------------------------------------------------------------------
64ec0ec52a | dshaligram | 2007-11-17 18:28:35 +0000

Fixed buggy Xom mutation handling.

--------------------------------------------------------------------------------
7665b1aa4c | dshaligram | 2007-11-17 14:05:30 +0000

Updated CREDITS.

--------------------------------------------------------------------------------
e3c453d683 | haranp | 2007-11-16 09:29:27 +0000

Added Crusade card: conversion/abjuration effect.

--------------------------------------------------------------------------------
fe642d0694 | haranp | 2007-11-16 08:52:19 +0000

Removed: safe_autopickup, safe_zero_exp, lowercase_invocations, always_greet, 
terse_hand, increasing_skill_progress, use_notes, confirm_self_target. 
(default_autoprayer still exists.)

--------------------------------------------------------------------------------
20161f7b19 | zelgadis | 2007-11-16 08:18:15 +0000

M_AMPHIBIOUS now means both "land creature can swim through deep water" *and* 
"deep water creature can walk on land".
Most of the supporting features neccessary for the "earth worm" FR
[1766532] have been implemented, except for "fleeing towards walls".
However, no work has yet been done to update the monster AI to
work well when a monster is fighting an earth worm.

--------------------------------------------------------------------------------
f286cbea0c | haranp | 2007-11-15 22:06:31 +0000

Added an option, always_confirm_butcher.

--------------------------------------------------------------------------------
4a08b83f96 | dshaligram | 2007-11-15 11:11:04 +0000

Fixed stash-tracker seeing through walls (it was using stale LOS after 
blink/teleport), fixed shadow creatures crash in labyrinths, and fixed use of 
displayed stair glyph for handling selection of monsters placed on stairs 
(display glyphs can be changed by the user).

--------------------------------------------------------------------------------
52efefd895 | j-p-e-g | 2007-11-14 22:17:44 +0000

s/Ogre Mage/Ogre-Mage and beholding should not allow swapping with friendlies 
(Bug 1739619).

--------------------------------------------------------------------------------
8bb24f258a | haranp | 2007-11-13 19:26:05 +0000

Dissection no longer requires confirmation if there is only one corpse on the 
square.

--------------------------------------------------------------------------------
2bd8f39fa4 | haranp | 2007-11-13 18:55:53 +0000

Made Tome of Destruction more consistent for those with high Evoc. Made manuals 
visibly different from spellbooks. Also, you can't cancel reading a manual; so 
you risk wasting it if you read all unIDed books.

--------------------------------------------------------------------------------
be6a0a38de | haranp | 2007-11-13 17:49:42 +0000

Bunch of changes: Removed unnecessary static_casts<> from branch.cc, improved 
messages a bit. Removed incorrect caps from entomb(). Changed ornate/legendary 
bonuses from percentages to flat power bonuses (+150 and +300 respectively.) 
Ensured at least one Nemelex gift by the time you get the first power. Changed 
probability of Nemelex liking a gift, made it dependent on piety. Fix warning 
in cloud.cc.

--------------------------------------------------------------------------------
e6525c8382 | j-p-e-g | 2007-11-13 15:57:55 +0000

* Add Cannibalism to list of forbidded actions for good gods. * Add simple 
warning message (god "did not appreciate that!")   when using unID'd items that 
would otherwise be penalized. * Change protection from harm to be independent 
of prayer.

--------------------------------------------------------------------------------
674a9e6469 | haranp | 2007-11-13 12:57:26 +0000

Better Returning description [1830132]

--------------------------------------------------------------------------------
38f4816dab | haranp | 2007-11-13 12:37:07 +0000

'q' (or Escape) when prompted for food on the floor now cancels out of eating 
completely, rather than moving to inventory.

--------------------------------------------------------------------------------
f19ffb0cf2 | zelgadis | 2007-11-13 12:33:41 +0000

The number of traps randomly generated on a level, and which types of traps are 
randomly selected, can now easily be controlled on a branch by branch basis 
(and for Pan and the Abyss), similar to how monster level and rarity is 
controlled (via function pointers in the Branch data structure).  The same can 
be done for fog machines (though this feature isn't being used as of yet).

--------------------------------------------------------------------------------
2ce8ccfa9e | haranp | 2007-11-13 10:27:08 +0000

Fog now makes poison and steam (5% chance of each) instead of the old 10% 
chance for miasma (Erik.)

--------------------------------------------------------------------------------
7400e2b500 | haranp | 2007-11-13 09:31:47 +0000

Corpses don't need identification [1830717]

--------------------------------------------------------------------------------
3a38986e43 | zelgadis | 2007-11-12 06:09:15 +0000

Lua map markers can now be generated in C code from 
map_lua_marker::parse_marker() by prefixing the Lua string with "lua_mapless:" 
rather than "lua:".
Fog machines can be created and placed from within C code via
place_fog_machine().

--------------------------------------------------------------------------------
53ad48697e | haranp | 2007-11-11 22:44:16 +0000

Added a message for Forescry renewal (if Condensation Shield gets it, Forescry 
should too) [1829000] Removed a whole lot of dead code; the place for dead code 
is in the svn repository, not the compilation unit.

--------------------------------------------------------------------------------
952a600ab1 | haranp | 2007-11-11 22:16:19 +0000

Removed brand from blowgun of the Assassin [1829597]

--------------------------------------------------------------------------------
824f5d8693 | haranp | 2007-11-11 20:40:56 +0000

Don't trim menu_colours [1829940]. Removed a lot of dead code and fixed some 
minor bugs in wanderer generation.

--------------------------------------------------------------------------------
53a915ae2e | j-p-e-g | 2007-11-11 16:29:05 +0000

Implementing FR 1829063: warning when putting on/removing items with a stat 
property that will be fatal.

--------------------------------------------------------------------------------
0bca2a20b6 | haranp | 2007-11-11 00:29:28 +0000

Allow potions to be generated randomly (oops...)

--------------------------------------------------------------------------------
7a8e0bfea5 | zelgadis | 2007-11-10 01:33:31 +0000

A cloud's spread rate now undergoes exponential decay as the cloud spreads.

--------------------------------------------------------------------------------
4a591f576e | dshaligram | 2007-11-09 17:42:56 +0000

[1829067] Fixed mephitic cloud not setting enchantment owner correctly on 
affected monsters.

--------------------------------------------------------------------------------
26e7da694c | dshaligram | 2007-11-09 16:20:05 +0000

[1828918] Fixed shadow creatures producing permanent summons.

--------------------------------------------------------------------------------
85aad345f2 | j-p-e-g | 2007-11-09 16:01:49 +0000

Another step on the way to smarter monsters, again on the topic of trap 
handling.
Changes:
* intelligent monsters native to a branch (elves in Elven Halls etc.)
  will try not to step on traps
* highly intelligent monsters have a chance to avoid traps as well
* intelligent monsters use an estimate of the expected damage of a
  trap (simple randomized amount) to decide whether to cross it
  I've left the half hpmax check in as well because... um, for 
  historical reasons?

--------------------------------------------------------------------------------
95c54debdb | haranp | 2007-11-09 13:27:57 +0000

Patch 1828418: fixed all weapons being generated badly (dolorous)

--------------------------------------------------------------------------------
79488d5443 | haranp | 2007-11-09 13:17:07 +0000

Draconian fighter fix for trunk.

--------------------------------------------------------------------------------
6859749d66 | haranp | 2007-11-08 18:31:51 +0000

Gah, yet another minor bugfix to dump_map (third time's the charm)

--------------------------------------------------------------------------------
e77acf6a33 | haranp | 2007-11-08 18:30:21 +0000

Better map dumping (Darshan)

--------------------------------------------------------------------------------
b39226f02c | haranp | 2007-11-08 18:17:54 +0000

Added map dumping (to NAME.map) to the '#' key. The map dump doesn't include 
the hero (i.e., no '@' symbol.)

--------------------------------------------------------------------------------
bf0fe82026 | haranp | 2007-11-08 18:02:01 +0000

Fixed 1828326 (eol style on text files)

--------------------------------------------------------------------------------
47f4adee40 | haranp | 2007-11-08 17:51:18 +0000

Handle tabs properly in Windows.

--------------------------------------------------------------------------------
9f35f123b3 | haranp | 2007-11-08 17:29:39 +0000

Better secret door hiding (Darshan)

--------------------------------------------------------------------------------
3bf9b714ff | haranp | 2007-11-08 16:55:18 +0000

Fix for 1826891: x-examination reveals secret doors masquerading as non-rock 
walls. They will now masquerade (to 'x') as walls of whatever type is nearby.

--------------------------------------------------------------------------------
eaf7223fd1 | haranp | 2007-11-08 16:32:01 +0000

Fix 1824176: firing will now only ask for confirmation when you actually fire.

--------------------------------------------------------------------------------
84037f974f | haranp | 2007-11-08 16:13:34 +0000

Fix critical bug (in trunk only) with Shift-diring directional spells and 
show_beam set. (It would always go down.)

--------------------------------------------------------------------------------
4a96008fcf | j-p-e-g | 2007-11-08 16:10:47 +0000

Fix to intelligent friendlies avoiding traps. It actually works now. :)

--------------------------------------------------------------------------------
c638320c9e | haranp | 2007-11-08 16:04:50 +0000

Some cleanup of evoke_wielded(), more to come.

--------------------------------------------------------------------------------
c84f84be2b | haranp | 2007-11-08 15:37:55 +0000

1822496: saprovore mutation shouldn't be given except at birth.

--------------------------------------------------------------------------------
478afcf7b5 | haranp | 2007-11-08 11:04:21 +0000

Typo fixes (dolorous, 1827992)

--------------------------------------------------------------------------------
76104b551f | haranp | 2007-11-08 10:59:12 +0000

Integrated patch 1828014 (spell order). Also unbroke trunk build. Oops.

--------------------------------------------------------------------------------
19af7cb5ed | haranp | 2007-11-08 10:42:41 +0000

Enslaved fleeing monsters now flee towards you, not away from you. Hopefully 
fixes 1828086.

--------------------------------------------------------------------------------
76bba18901 | ennewalker | 2007-11-08 03:46:17 +0000

Randarts with no mods get one of (ac, ev, str, int, dex.) [1826417]

--------------------------------------------------------------------------------
2e3410988d | haranp | 2007-11-07 21:05:52 +0000

Cancelling 'E'voking a reaching weapon shouldn't cost anything.

--------------------------------------------------------------------------------
9900519da2 | haranp | 2007-11-07 20:25:52 +0000

Monochromatized spell power bars.

--------------------------------------------------------------------------------
5bc4ed2870 | haranp | 2007-11-07 20:13:08 +0000

Refix pray() fix.

--------------------------------------------------------------------------------
152f3825e1 | haranp | 2007-11-07 20:06:07 +0000

pray() prompt respects macros (V-Napkin)

--------------------------------------------------------------------------------
935dd6fc38 | haranp | 2007-11-07 19:50:44 +0000

Merged r2793 (better ability descriptions for Nemelex)

--------------------------------------------------------------------------------
664bcb0012 | haranp | 2007-11-07 19:10:55 +0000

Runes no longer need ID [1826900]

--------------------------------------------------------------------------------
8da65f8833 | haranp | 2007-11-07 19:00:38 +0000

Blocked some useless spells for Vampires and Ghouls. [1827689]

--------------------------------------------------------------------------------
366417cd6d | haranp | 2007-11-07 18:50:27 +0000

Slightly compressed 'v' descriptions. Should fix 1826265.

--------------------------------------------------------------------------------
09abf3ef7b | haranp | 2007-11-07 18:26:31 +0000

Merged r2729 (morgue dir creation) from 0.3.

--------------------------------------------------------------------------------
bc704277e0 | haranp | 2007-11-07 18:20:00 +0000

Reorganized Metamorphosis, batform now impossible.

--------------------------------------------------------------------------------
8933fdc219 | j-p-e-g | 2007-11-07 14:37:54 +0000

latest net improvement (make switching damage -> escape rarer) for trunk

--------------------------------------------------------------------------------
3cedc3206b | haranp | 2007-11-07 14:19:45 +0000

s/liquid/barnacled/

--------------------------------------------------------------------------------
1b63786182 | haranp | 2007-11-07 10:32:26 +0000

Fix for 1827415: handle_time()-induced banishments (e.g. Hell miscasts) were 
being applied one turn too late.

--------------------------------------------------------------------------------
3f69a6bffb | haranp | 2007-11-06 23:46:55 +0000

Massive rewrite of makeitem.cc. Might be buggy. Fixed some old bugs, e.g. 
double reroll of =oCT. items() now respects force_type more often. As a side 
effect, acquirement is less likely to give randart jewellery or armour.

--------------------------------------------------------------------------------
0b9c0abba3 | haranp | 2007-11-06 17:35:30 +0000

Geryon can now fly.

--------------------------------------------------------------------------------
13df86ae6a | j-p-e-g | 2007-11-06 11:51:01 +0000

Corrections to manual (patch by maiermirk) and fix to freeing self from net.

--------------------------------------------------------------------------------
0ebab01da0 | j-p-e-g | 2007-11-05 16:53:54 +0000

claw mutation fix for net damage, courtesy of dolorous

--------------------------------------------------------------------------------
97446ef705 | j-p-e-g | 2007-11-05 16:07:44 +0000

Correct tables.txt and add wizard mode to version information.

--------------------------------------------------------------------------------
b7eeb0417b | j-p-e-g | 2007-11-05 14:19:39 +0000

Net fix (reduced trapping turns) also for trunk.

--------------------------------------------------------------------------------
a9fca00e2c | haranp | 2007-11-05 10:50:57 +0000

Fixed 1825223: unknown curses don't leak information in prices.

--------------------------------------------------------------------------------
a44d0b13e5 | haranp | 2007-11-05 10:28:43 +0000

Incorporate patches 1825023 (typos) and 1824868 (bug in fully_contains().)

--------------------------------------------------------------------------------
9966b0d518 | j-p-e-g | 2007-11-05 09:05:35 +0000

latest net fixes (Nemelex prayer, swapping with friendlies) for trunk

--------------------------------------------------------------------------------
e0b4a955a0 | haranp | 2007-11-05 08:47:20 +0000

Removed CHANCE line (oops)

--------------------------------------------------------------------------------
dc9b6b1fb2 | haranp | 2007-11-05 08:31:39 +0000

Vault fixes (David)

--------------------------------------------------------------------------------
6f0ad17252 | dshaligram | 2007-11-05 06:33:43 +0000

Updated CREDITS.

--------------------------------------------------------------------------------
c9ef77e7fb | ennewalker | 2007-11-04 22:43:49 +0000

Fixing typo in manual.  (Thanks, AlexMax.)

--------------------------------------------------------------------------------
c291ba47b3 | j-p-e-g | 2007-11-04 22:14:50 +0000

FR 1821775: While held in a net, you can fire blowguns, though there's a 
penalty similar to the one when wearing a buckler and accuracy is lowered. I'm 
not sure about the numbers - they'll have to be tweaked a bit, I guess. Also 
fix possibility to drift out of net.

--------------------------------------------------------------------------------
8bd7484493 | haranp | 2007-11-04 21:11:19 +0000

Pluralise "knife" correctly (to "knives") [1825553]

--------------------------------------------------------------------------------
d775567ab5 | j-p-e-g | 2007-11-04 20:19:28 +0000

Renaming Portal Vaults to Bazaars. [FR 1824984] Fix 1825526: not stepping into 
deep water costing a turn Fix 1825352: ?torment only being unholy if it wasn't 
known

--------------------------------------------------------------------------------
ed3c1104bb | j-p-e-g | 2007-11-04 19:15:23 +0000

Make autoexplore stop when orcs convert to Beogh.

--------------------------------------------------------------------------------
832060cd98 | j-p-e-g | 2007-11-04 15:53:36 +0000

Nets that hold you cannot be destroyed by Ely's Destroy Weapon ability. (Fix  
1825520).
Monsters will be held in nets longer. Doesn't influence time needed to 
destroy it, so ogres and such will still get out quickly. Needs more 
testing, I guess.

Intelligent friendlies will try to avoid traps you (the player) know
about, and the chance for triggering known blade and net traps is
much lower. Also, friendly casters are much less likely to spam you with
"spells" if there are no enemies around.

--------------------------------------------------------------------------------
a90b4adaf0 | dshaligram | 2007-11-04 14:16:55 +0000

Killing-blow damage was not being saved to logfile, fixed.

--------------------------------------------------------------------------------
a201b4140a | haranp | 2007-11-03 19:42:38 +0000

Refix for direction(): prev_target should work now.

--------------------------------------------------------------------------------
41785b42bb | dshaligram | 2007-11-03 16:37:50 +0000

Updated release build (DOS+Windows) script for 0.3.

--------------------------------------------------------------------------------
61f45661fb | dshaligram | 2007-11-03 16:16:43 +0000

Restrict aerie to main-dungeon-only.

--------------------------------------------------------------------------------
77b5abfeb8 | dshaligram | 2007-11-03 16:05:59 +0000

Removed remaining traces of travel_colour (David).

--------------------------------------------------------------------------------
9aaed4c0de | haranp | 2007-11-03 13:06:10 +0000

Fixed bug with show_beam on when self-targeting without ever moving the 
direction cursor. [1812562]

--------------------------------------------------------------------------------
f29104e71c | haranp | 2007-11-03 12:29:53 +0000

Added HURRY option to makefile.unix. Slightly changed how randart weapon/armour 
mimics work.

--------------------------------------------------------------------------------
3471205dd3 | haranp | 2007-11-03 10:48:49 +0000

Minor code cleanups.

--------------------------------------------------------------------------------
d8537ce97f | dshaligram | 2007-11-02 15:05:33 +0000

Experimental support for monster shields, needs more work for rationalising 
shield class for monsters with player and beam to-hit.

--------------------------------------------------------------------------------
ee11c9b3dd | dshaligram | 2007-11-02 14:22:15 +0000

Unbreak trunk build (oops).

--------------------------------------------------------------------------------
d035522cf4 | dshaligram | 2007-11-02 13:36:20 +0000

Fixed broken MHITNOT/MHITYOU, changed handling of DUR_SLOW to be like 
DUR_HASTE, reduced paralysis duration for crystal balls of fixation. MHITNOT 
fix breaks saves.

--------------------------------------------------------------------------------
59d24aaebc | dshaligram | 2007-11-02 11:40:34 +0000

Allow using floor="other_feature" when initialising a one-way stair, so that 
the stair is replaced with other_feature instead of regular floor (bobbens).

--------------------------------------------------------------------------------
ba4244830a | dshaligram | 2007-11-02 08:56:48 +0000

Fixed level-map not showing column 79 if the term is 80 columns (bobbens).

--------------------------------------------------------------------------------
7657abf439 | dshaligram | 2007-11-02 06:52:42 +0000

Fixed LFLAGS not working right when conditionalised (bobbens).

--------------------------------------------------------------------------------
b072984d68 | dshaligram | 2007-11-02 06:27:40 +0000

Applied bobbens' patch: you.skills("foo") gets skill level of foo from Lua.

--------------------------------------------------------------------------------
1b96ed97e6 | haranp | 2007-11-01 23:05:37 +0000

Fixed the other instance of Control Teleport (in Spatial Translocations.)

--------------------------------------------------------------------------------
84e0cee89f | haranp | 2007-11-01 23:03:32 +0000

Changed order of spells in Book of Control. [1823455]

--------------------------------------------------------------------------------
044a177398 | haranp | 2007-11-01 22:52:52 +0000

Some prayer cases which shouldn't have taken time were taking time. [1824174]

--------------------------------------------------------------------------------
1e1e7331cb | dshaligram | 2007-11-01 13:22:39 +0000

Added a brief howto for portal vaults (bobbens), removed unnecessary desc field 
from lm_pdesc.lua, breaks saves.

--------------------------------------------------------------------------------
0a8672084b | dshaligram | 2007-11-01 12:11:05 +0000

Allow yesno to use an override keymap applied after getchm(), make Escape 
cancel out of the explore stop prompt (bobbens).

--------------------------------------------------------------------------------
b0bb78bd1d | dshaligram | 2007-11-01 11:59:18 +0000

Added you.good_god() and you.evil_god() to check if the player is worshipping a 
good/evil god. Passing a god name is optional, and will check if that god is 
good/evil (you.good_god("Elyvilon") == true).

--------------------------------------------------------------------------------
22995abf93 | j-p-e-g | 2007-11-01 11:41:11 +0000

Committing patch 1823611, 1822279, 1821680 and 1821019 by dolorous: typo fixes, 
mutation message fixes for black scales and boney plates, and fixed removal of 
elven M&F and dwarven Polearms.

--------------------------------------------------------------------------------
3335b90731 | j-p-e-g | 2007-11-01 11:17:45 +0000

Corrections to tables.txt

--------------------------------------------------------------------------------
35d9a60332 | haranp | 2007-10-31 14:24:18 +0000

Changed description for weapons of distortion [1808856]

--------------------------------------------------------------------------------
5a961b08ca | haranp | 2007-10-31 14:19:08 +0000

Nagas no longer get racial weapons [1811726].

--------------------------------------------------------------------------------
8f1be2e5a8 | haranp | 2007-10-31 13:44:57 +0000

s/portaled/portal

--------------------------------------------------------------------------------
975dfb5b89 | haranp | 2007-10-31 13:31:38 +0000

Portal no longer works once you have the Orb.

--------------------------------------------------------------------------------
64b1419910 | haranp | 2007-10-31 12:49:37 +0000

1822982: slightly better spell power string.

--------------------------------------------------------------------------------
8f95470bfb | haranp | 2007-10-31 12:18:22 +0000

ID is no longer possible on portaled projectiles. Fixes 1817777.

--------------------------------------------------------------------------------
ed67c1d02e | haranp | 2007-10-31 12:11:04 +0000

Update stashes when butchery is done. Fixes 1820396.

--------------------------------------------------------------------------------
73dc165360 | haranp | 2007-10-31 11:31:12 +0000

dec_penance() now happens after the godly wrath, not before. Fixes 1819735.

--------------------------------------------------------------------------------
73674fd6eb | dshaligram | 2007-10-31 08:01:02 +0000

s/favorite/favourite/

--------------------------------------------------------------------------------
f2283739bf | dshaligram | 2007-10-31 02:13:19 +0000

[1823057] Fixed explore's mimic handling.

--------------------------------------------------------------------------------
20c12ffb97 | haranp | 2007-10-30 23:01:30 +0000

Slightly better message when zapping identifies a wand [1817031]

--------------------------------------------------------------------------------
729187802b | haranp | 2007-10-30 22:48:14 +0000

Unarmed title is based on base, not modified, stats [1821727]

--------------------------------------------------------------------------------
3845e58bd6 | haranp | 2007-10-30 22:36:39 +0000

Noted D:1} trick to search for items on dlevel 1 only [1823009]

--------------------------------------------------------------------------------
a57cca76a9 | haranp | 2007-10-30 22:29:10 +0000

'v' now describes decks properly. There is a small information leak: if you 
know (from Peek Deck) that the deck contains a card X somewhere, and then you 
draw card X which happens not to be the seen card X in the internal structure, 
you can still see from the 'v' output that there is another X card hiding in 
there.

--------------------------------------------------------------------------------
6fa5b18a9e | dshaligram | 2007-10-30 18:08:49 +0000

Fixed mkdir call for djgpp.

--------------------------------------------------------------------------------
fe08837866 | dshaligram | 2007-10-30 16:02:16 +0000

[1822636] Fixed bad handling of banishment by distortion weapon animated by 
Tukima's Dance.

--------------------------------------------------------------------------------
b8335256b9 | dshaligram | 2007-10-30 13:34:53 +0000

Wings mutation is single-level.

--------------------------------------------------------------------------------
f792e02e45 | dshaligram | 2007-10-30 13:19:29 +0000

Fixed Xom being amused by repeatedly zapping tried wands (like digging), 
tweaked messages for demon summons.

--------------------------------------------------------------------------------
86076a641f | dshaligram | 2007-10-30 13:09:37 +0000

Updated CREDITS and INSTALL, fixed Tomb:2 (David), fixed Xom's 
mutation-as-reward strategy.

--------------------------------------------------------------------------------
d95b75df0b | haranp | 2007-10-30 11:17:52 +0000

Stack Deck interface improvements. Incidentally, describe.cc needs to be fixed 
to describe marked/stacked decks properly.

--------------------------------------------------------------------------------
c0acbdf98f | dshaligram | 2007-10-30 05:35:40 +0000

Place altar to Lugonu randomly, not necessarily in LOS.

--------------------------------------------------------------------------------
ef823a353a | dshaligram | 2007-10-30 05:16:17 +0000

Fixed extra keypress needed to navigate out of spellbook descriptions when 
examining books in shops (Erik).

--------------------------------------------------------------------------------
fa635dbc37 | dshaligram | 2007-10-30 04:51:24 +0000

[1800190] Reavers get to choose starting spellbook. Moved poison level check to 
poison_monster.

--------------------------------------------------------------------------------
9aa59550c2 | dshaligram | 2007-10-30 04:37:28 +0000

[1822251] Fixed bug in the handling of poisoned needles.

--------------------------------------------------------------------------------
5289a48ac4 | dshaligram | 2007-10-30 04:16:54 +0000

[1814784] Enable NaEE.

--------------------------------------------------------------------------------
41e7b58ff6 | haranp | 2007-10-29 20:13:56 +0000

Better messages for Genie effects.

--------------------------------------------------------------------------------
7e8b53e78b | dshaligram | 2007-10-29 18:08:09 +0000

s/antennas/antennae/.

--------------------------------------------------------------------------------
7b8384b6b9 | dshaligram | 2007-10-29 14:51:06 +0000

Added a note on generating mapgen stats.

--------------------------------------------------------------------------------
55bc7845b1 | dshaligram | 2007-10-29 14:28:20 +0000

Vault fixes + applied bobbens' levdes.vim water-colour patch.

--------------------------------------------------------------------------------
0af085e04a | dshaligram | 2007-10-29 14:01:08 +0000

Sort maps by weight in mapgen.log output (random map listing).

--------------------------------------------------------------------------------
89e855d94c | dshaligram | 2007-10-29 13:20:03 +0000

Removed obsolete "levels" option. des files to load should be specified in 
loadmaps.lua and nowhere else.

--------------------------------------------------------------------------------
ce5e8ec8ae | j-p-e-g | 2007-10-29 12:54:55 +0000

float.des changes.

--------------------------------------------------------------------------------
90b272a317 | j-p-e-g | 2007-10-29 12:30:20 +0000

Beogh conversion fixes for trunk.

--------------------------------------------------------------------------------
537d9d5e0f | dshaligram | 2007-10-29 09:50:59 +0000

Fixed monster thrown weapon preservation rate.

--------------------------------------------------------------------------------
e77b4926f9 | dshaligram | 2007-10-29 07:57:57 +0000

Tweaked -mapstat to show random maps available by depth. Added a floating dummy 
vault to correct probabilities of vaults in non-dungeon branches.

--------------------------------------------------------------------------------
2c0a2b2364 | dshaligram | 2007-10-29 06:52:14 +0000

[1817715] Fixed autopickup trying to pick up nets you're caught in.

--------------------------------------------------------------------------------
5cc1ceda72 | dshaligram | 2007-10-29 06:39:09 +0000

Give ogres one extra rock to throw, increased preservation rates for javelins 
and large rocks, dropped weight of large rocks.

--------------------------------------------------------------------------------
73f04be4c6 | dshaligram | 2007-10-29 06:27:10 +0000

Fixed javelin base hit, dropped weight slightly.

--------------------------------------------------------------------------------
410feaaa0a | dshaligram | 2007-10-28 19:29:42 +0000

Removed "dig_this" minivault.

--------------------------------------------------------------------------------
e0f370bd7a | dshaligram | 2007-10-28 18:46:28 +0000

Transform fixes for trunk.

--------------------------------------------------------------------------------
fe84ffe6b3 | j-p-e-g | 2007-10-28 16:18:11 +0000

Repairing levels for trunk. Whoops...

--------------------------------------------------------------------------------
9357fd185f | j-p-e-g | 2007-10-28 15:15:21 +0000

Another mutation commit. Sorry, I couldn't resist.
I'm replacing the (stupid, I agree) "extra eyes" mutation 
with the more Crawlific "shaggy fur" mutation. It currently 
doesn't count towards the scales counter, but that could be 
changed. Also, maybe it could replace one of the scales 
with a similar AC bonus. Oh, and trolls start out with this 
at level 1 because I think it fits them.

Adding the percentage bonus (rarity 1) and penalty (rarity 9)
for mana. Maybe the bonus (+10%, +20%, +30%) should be 
abolished entirely as David suggested; for now I've left it 
as a mutation pair.

As a third change I'm including the experimental sleepiness
mutation that makes you randomly fall asleep. Being hit, 
loud noises and starving will make you wake up.

Again, may break mutations of existing save files.

---------------------------------

To answer David's question on balancing (or rather, make 
everything more complicated, I'm afraid) I've counted 
mutations in 0.3 and as of this commit, to compare them. 

Rarity influences the chance a mutation, once randomly
chosen, will be considered acceptable, with a chance of 
rarity/10. Each round of trying to find an acceptable 
mutation there's a 1/1000 chance of just giving up. 
In brackets I will list the average probability of a 
good/bad mutation being chosen in a given round. 
(The difference to 100 is the chance of having to reroll.)

in 0.3:
46 good mutations of average rarity 3.2 (23.72%)
12 bad mutations of average rarity 8 (15.47%)
4 in-between mutations of average rarity 7 (4.51%)
(56.3% chance of rerolling)

new:
48 good mutations of average rarity 3.1 (21.72%)
14 bad mutations of average rarity 7.6 (15.71%)
6 in-between mutations of average rarity 5 (4.41%)
(58.16% chance of rerolling)

By in-between mutations I mean ones with advantages and
drawbacks, namely weak_flexible, strong_stiff, horns, 
hooves, talons and paws. (The last four are probably seen
as mostly negative by a lot of players due to losing an
equipment slot.)

Because of the lower rarity of the new mutations (including 
drifting) the overall chance of _not_ receiving a mutation
has slightly increased (1/1000 chance per reroll necessary).

--------------------------------------------------------------------------------
f041f60357 | j-p-e-g | 2007-10-28 14:31:57 +0000

Changed vaults (dploog).

--------------------------------------------------------------------------------
5aebe7e6de | dshaligram | 2007-10-28 11:12:14 +0000

Moved dangerous minivaults deeper (bobbens).

--------------------------------------------------------------------------------
23d9c0d8f9 | dshaligram | 2007-10-28 10:37:06 +0000

Monsters should not gain experience for offing their friends.

--------------------------------------------------------------------------------
2da38ae1c0 | dshaligram | 2007-10-28 08:07:04 +0000

Toned down Xom's use of demons.

--------------------------------------------------------------------------------
e2ddf1792a | nlanza | 2007-10-27 17:33:21 +0000

Add mgrow.{cc,h} to the Xcode project.

--------------------------------------------------------------------------------
eb7baf8370 | dshaligram | 2007-10-27 15:59:10 +0000

Minor view code cleanup; this ought to fix the DOS redraw issues as well.

--------------------------------------------------------------------------------
64c0b7fe91 | dshaligram | 2007-10-27 14:46:37 +0000

Removed unnecessary #if UNIX lines, changed textcolor to textattr for view 
redraw.

--------------------------------------------------------------------------------
94848c66c0 | dshaligram | 2007-10-27 12:45:04 +0000

Made Xom more random, reduced chance of bad effects at low amusement levels.

--------------------------------------------------------------------------------
5006d9b274 | dshaligram | 2007-10-27 11:52:27 +0000

Weakened control demon demonspawn power (syllogism).

--------------------------------------------------------------------------------
b1441dfff0 | dshaligram | 2007-10-27 11:34:28 +0000

Okawaru and Trog gifts should not be negatively enchanted, where reasonable.

--------------------------------------------------------------------------------
b1de924190 | dshaligram | 2007-10-27 11:27:10 +0000

Increased gift timeout for Okawaru armour gifts, made it easier to sustain 
piety while working off a gift timeout.

--------------------------------------------------------------------------------
a39f9edf60 | dshaligram | 2007-10-27 10:51:39 +0000

Dropped cost of Okawaru Haste.

--------------------------------------------------------------------------------
8b4e968443 | dshaligram | 2007-10-27 10:31:49 +0000

Vestibule monster generation drops off quickly and approaches zero.

--------------------------------------------------------------------------------
0a5123f9f1 | dshaligram | 2007-10-27 10:10:27 +0000

Fixed !R inscription not confirming remove when only one item is worn 
(jarpiain).

--------------------------------------------------------------------------------
5568861685 | dshaligram | 2007-10-27 09:47:42 +0000

Fixed macros not working for targeting (Chilliwack).

--------------------------------------------------------------------------------
2a8994ebe3 | dshaligram | 2007-10-27 08:42:26 +0000

Fixed monsters::is_levitating not checking randarts that provide levitation.

--------------------------------------------------------------------------------
e38d19ed67 | dshaligram | 2007-10-27 07:44:37 +0000

[1821098] Fixed bat transform not conferring flight. Fixed player_is_levitating 
and renamed it to player_is_airborne to describe the function better.

--------------------------------------------------------------------------------
a002f27441 | dshaligram | 2007-10-27 07:15:37 +0000

[1820931] Fixed wizmode &o deck bug (doy).

--------------------------------------------------------------------------------
14e7fda919 | dshaligram | 2007-10-27 06:54:08 +0000

[1821096] Olgreb's toxic radiance should not affect submerged monsters 
(dolorous).

--------------------------------------------------------------------------------
981f9252a7 | dshaligram | 2007-10-27 06:50:04 +0000

Fixed mutation array size mismatch assert.

--------------------------------------------------------------------------------
9f9ccf7418 | dshaligram | 2007-10-27 06:42:43 +0000

Added a space in the note taken when messages are received in dgl. Dropped 
hobgoblin max hp.

--------------------------------------------------------------------------------
1e8297012f | dshaligram | 2007-10-27 06:13:39 +0000

Nets should not be branded.

--------------------------------------------------------------------------------
352aea704c | dshaligram | 2007-10-27 05:51:13 +0000

Increased experience needed for monsters to level up, bumped orc sorcerers up 
one HD, and factored in XL in Beogh orc spontaneous conversion.

--------------------------------------------------------------------------------
f3f93a328f | j-p-e-g | 2007-10-26 22:38:21 +0000

Adding two new mutations for the heck of it:
* MUT_PAWS: "You have soft paws in place of feet."
Similar to HOOVES and TALONS - incidentally, I resorted a
few mutations for better grouping - but increases stealth.

* MUT_EXTRA_EYES: grow up to three extra eyes that
increase depth perception and thus accuracy. I'm still
looking for a drawback to this mutation (other than looking
weird). Also, could be related to ACUTE/BLURRY VISION 
somehow.

Breaks saves, or at least mutations.

--------------------------------------------------------------------------------
96d6e3e9f8 | j-p-e-g | 2007-10-26 17:27:02 +0000

Alternative message for "kneeling" at altars.

--------------------------------------------------------------------------------
8392b67ef4 | dshaligram | 2007-10-26 16:32:37 +0000

Added cset_unicode to options texts (V-Napkin), fixed staff of energy not 
working for transformations (syllogism).

--------------------------------------------------------------------------------
cedbcef437 | dshaligram | 2007-10-26 16:26:19 +0000

Trowel card now picks vaults tagged "trowel_portal".

--------------------------------------------------------------------------------
c9b566351f | dshaligram | 2007-10-26 13:05:22 +0000

Backed-out redundant no-xp-for-summons change, already fixed differently by 
Haran.

--------------------------------------------------------------------------------
cff011232d | dshaligram | 2007-10-26 12:56:40 +0000

No experience for summoned hostile elementals and scorpions (syllogism).

--------------------------------------------------------------------------------
f69a6819d1 | j-p-e-g | 2007-10-26 11:56:45 +0000

Fix remaining net bug.

--------------------------------------------------------------------------------
68355bbd65 | dshaligram | 2007-10-26 11:50:08 +0000

Fixed non-friendly monsters not gaining experience (oops).

--------------------------------------------------------------------------------
ce6a7efb94 | j-p-e-g | 2007-10-26 11:32:57 +0000

Fix bug 1814617: teleport/banish not clearing being trapped in net

--------------------------------------------------------------------------------
f2341f8e97 | dshaligram | 2007-10-26 11:15:09 +0000

Fixed item_check not being called correctly (syllogism).

--------------------------------------------------------------------------------
fa909934b0 | dshaligram | 2007-10-26 11:11:03 +0000

Orcs may surrender to Beogh worshippers when beaten up. Adjusted experience 
gain for monsters, duration of orc battle cries and removed use of invocations 
to determine the success of spontaneous orc conversion.
Fixed monsters getting bad experience values.

--------------------------------------------------------------------------------
eaf0d8123d | dshaligram | 2007-10-26 08:38:36 +0000

Monsters lose experience when drained.

--------------------------------------------------------------------------------
66f022fd71 | dshaligram | 2007-10-26 08:33:37 +0000

Monsters can gain experience and level-up. Breaks saves.

--------------------------------------------------------------------------------
57f4a1b138 | dshaligram | 2007-10-26 05:09:10 +0000

Beogh orcs will follow the PC downstairs even if they're not directly adjacent 
to the player, but are adjacent to other friendly orcs that are (in)directly 
adjacent to the player.

--------------------------------------------------------------------------------
05d5bcd6a0 | dshaligram | 2007-10-26 03:53:22 +0000

[1820172] Typo fixes (dolorous).

--------------------------------------------------------------------------------
fb8a93f2f7 | dshaligram | 2007-10-26 03:33:48 +0000

Suppress unnecessary "Floor." lines when looking around and targeting.

--------------------------------------------------------------------------------
965e4db66a | dshaligram | 2007-10-26 02:42:56 +0000

Dropped to-hit on javelins.

--------------------------------------------------------------------------------
520ab08603 | dshaligram | 2007-10-25 18:43:19 +0000

Fixed bug that would allow Lua dofile on arbitrary files using absolute paths.

--------------------------------------------------------------------------------
ad60a0a559 | dshaligram | 2007-10-25 17:25:35 +0000

Refixed labyrinth entry point.

--------------------------------------------------------------------------------
afecd8bc74 | dshaligram | 2007-10-25 17:11:44 +0000

Fixed wizmode segfault on &^ with no god.

--------------------------------------------------------------------------------
98fa05c78c | dshaligram | 2007-10-25 16:48:10 +0000

Fixed labyrinth sizes for trunk.

--------------------------------------------------------------------------------
bbab57270a | dshaligram | 2007-10-25 16:16:36 +0000

Fixed bug that consistently placed characters too near the exit in labyrinths.

--------------------------------------------------------------------------------
b3a7bf246c | dshaligram | 2007-10-25 16:02:13 +0000

Use a safer macro for clua ret (doy).

--------------------------------------------------------------------------------
095abbe1e7 | haranp | 2007-10-25 15:05:11 +0000

Minor code cleanup.

--------------------------------------------------------------------------------
f620ad507f | dshaligram | 2007-10-25 14:59:57 +0000

[1804809] Fixed buggy handling of colour overlays.

--------------------------------------------------------------------------------
2b246a2f10 | haranp | 2007-10-25 14:49:06 +0000

Type safety and code cleanup.

--------------------------------------------------------------------------------
54d4d07375 | dshaligram | 2007-10-25 13:45:08 +0000

Only non-trolls get hunger from troll leather armour (syllogism).

--------------------------------------------------------------------------------
3746a590d7 | dshaligram | 2007-10-25 13:43:39 +0000

Added a flag to disable generation of exits from a vault. Need to clean up 
vault placement to make it easier to parameterise it.

--------------------------------------------------------------------------------
750c1ade29 | haranp | 2007-10-25 13:24:37 +0000

Added Trowel portal generation. Somewhat buggy.

--------------------------------------------------------------------------------
45ea038992 | dshaligram | 2007-10-25 13:02:05 +0000

[1786778] Fixed dolinks.sh and domake.sh (dolorous).

--------------------------------------------------------------------------------
ecbea4c802 | dshaligram | 2007-10-25 12:53:10 +0000

[1818982] Kenku talons as mutation (dolorous).

--------------------------------------------------------------------------------
31a7fbf338 | j-p-e-g | 2007-10-25 12:45:42 +0000

Applying two patches by dolorous: 1819730: remove redundancy for creating 
random undead servant (Yred) 1819013: typo fix
Also modified spell description for Portaled Projectile.

--------------------------------------------------------------------------------
dd4158d514 | dshaligram | 2007-10-25 12:19:25 +0000

dgn_place_map takes a coord_def to specify the centre of the map for minivaults 
and floating vaults. This placement can be activated using an asterisk 
(mapname*) when entering the name of the map in the &L command.

--------------------------------------------------------------------------------
fe973ee1c8 | j-p-e-g | 2007-10-25 11:40:09 +0000

FR 1818615: modify prayer prompt to stop praying for 'y', renew prayer for 'r' 
and cancel prompt for anything else.

--------------------------------------------------------------------------------
c0ffbbbd4c | haranp | 2007-10-25 11:06:37 +0000

More doc fixes.

--------------------------------------------------------------------------------
b7848ff70f | haranp | 2007-10-25 10:51:30 +0000

more doc fixes (Erik)

--------------------------------------------------------------------------------
4daba3ca7d | haranp | 2007-10-25 10:44:29 +0000

No unnecessary double messaging when drawing the Wraith.

--------------------------------------------------------------------------------
4c3ed78b22 | dshaligram | 2007-10-25 10:42:58 +0000

[1817009] Changed secret-doored temple entrance.

--------------------------------------------------------------------------------
f6fd6575e2 | dshaligram | 2007-10-25 10:35:36 +0000

[1816483] Sling bullets should not be poisoned.

--------------------------------------------------------------------------------
c9be04e908 | dshaligram | 2007-10-25 10:28:15 +0000

[1817804] Fixed bogus "You're already here" messages from interlevel travel.

--------------------------------------------------------------------------------
a4359d6a1e | dshaligram | 2007-10-25 10:18:29 +0000

[1817064] Fixed shift-running stopping for secret doors.

--------------------------------------------------------------------------------
7f08a17be0 | dshaligram | 2007-10-25 10:16:22 +0000

[1819634] Fixed filenames missing in Lua file-not-found error messages.

--------------------------------------------------------------------------------
11d76720c5 | haranp | 2007-10-25 10:16:06 +0000

More doc fixes (Erik)

--------------------------------------------------------------------------------
9653c4df0b | haranp | 2007-10-25 10:09:32 +0000

Doc fixes (Erik)

--------------------------------------------------------------------------------
365b4e61ef | haranp | 2007-10-25 10:07:25 +0000

Drawing from Destruction with no monsters nearby does not gain piety.

--------------------------------------------------------------------------------
aed21b5eb6 | dshaligram | 2007-10-25 09:49:39 +0000

[1810433] Ogre hunters start with large rocks. Monster ogres can also throw 
large rocks but are never generated with rocks.

--------------------------------------------------------------------------------
d629a6a0ab | haranp | 2007-10-25 09:24:32 +0000

Added Pain (== agony) and Torment (== Symbol of Torment) to the Deck of 
Destruction. Boosted cost of Stack Deck.

--------------------------------------------------------------------------------
7b4927dc53 | dshaligram | 2007-10-25 09:11:50 +0000

Spell changes: strengthened stone arrow and the storms, weakened bolts of fire 
and cold, and crystal spear. (Re)allow partial spell names when using &Z in 
wizmode.

--------------------------------------------------------------------------------
c04f1e2e70 | dshaligram | 2007-10-25 07:13:13 +0000

[1813368] Makhleb/Vehumet passive power gain now active without needing to 
pray. Vehumet's spell boost and warding must still be prayed for.

--------------------------------------------------------------------------------
cf35b85a5f | dshaligram | 2007-10-25 05:22:59 +0000

Fixed bugs in greedy-explore's item ignore prompts.

--------------------------------------------------------------------------------
4c3d4bef61 | dshaligram | 2007-10-24 16:21:32 +0000

[1779076] Greedy explore will ignore items (after prompting) if autopickup 
fails twice on the same spot, such as when inventory is full. If pickup_dropped 
= true (not likely if greedy explore is in use), greedy explore uses the old 
strategy of not budging until the item is picked up.

--------------------------------------------------------------------------------
9cf0e84a12 | j-p-e-g | 2007-10-24 14:54:49 +0000

Add "forget level" command to manual, and change wording of the deformed body 
mutation for Centaurs and Nagas (FR 1814790).

--------------------------------------------------------------------------------
ac738ba838 | j-p-e-g | 2007-10-24 14:05:13 +0000

Add a "forget level map" command, Ctrl-F, to level map. This command used to be 
for waypoints along with Ctrl-W but as that never made it into the level map 
help I don't think it matters. (FR 1745112)

--------------------------------------------------------------------------------
35129e9e32 | dshaligram | 2007-10-24 13:19:24 +0000

[1757174] Disallow mapping in labyrinths.

--------------------------------------------------------------------------------
c19b2fdd21 | dshaligram | 2007-10-24 12:42:08 +0000

[1818799] Reduce message spam from Olgreb's toxic radiance.

--------------------------------------------------------------------------------
873dd0bfae | dshaligram | 2007-10-24 10:08:24 +0000

[1818767] Idle time clamped at 5 minutes.

--------------------------------------------------------------------------------
89c4ddb91d | dshaligram | 2007-10-24 09:39:19 +0000

[1818732] Merfolk hunters start with a knife.

--------------------------------------------------------------------------------
88f39158b0 | dshaligram | 2007-10-24 09:29:20 +0000

Orc battle cry fixes (shouldn't affect berserk/confused/paralysed monsters). 
Affected orcs are woken up if they happen to be asleep (<3). Ensorcelled 
hibernation should not work on berserk creatures.

--------------------------------------------------------------------------------
739dded185 | haranp | 2007-10-24 08:58:17 +0000

Lugonu invocations are now invocations and have fail rates.

--------------------------------------------------------------------------------
e25b9a95b7 | dshaligram | 2007-10-24 08:08:04 +0000

Fixed bad play time format in character dump, removed turns_by_place and 
kills_by_place from the default dump_order.

--------------------------------------------------------------------------------
125a4144b8 | haranp | 2007-10-23 22:24:01 +0000

Added Lugonu greeting message (Jovann)

--------------------------------------------------------------------------------
2b26e96225 | j-p-e-g | 2007-10-23 22:19:01 +0000

Adding Vampire aptitudes to tables.txt (Bug 1816344). Also changed Ranged 
Combat to Throwing, while I was at it.
Fixing 1817775: portaled projectile treats returning weapons like
any other projectile (no duplicates any more, but also no returning).
I think this makes sense, seeing how the spell teleports it somewhere
so how should it know the path back.

Fixing 1817995: starting items not stacking correctly.
Question: Why is the flag BEEN_IN_INV even set for starting inventory?

Applying two patches by dolorous:
1818736: comment fix for MUT_SAPROVOROUS
1818667: remove redundant MUT_HOOVES check

--------------------------------------------------------------------------------
1b6a921801 | haranp | 2007-10-23 21:23:06 +0000

Receiving a pure deck from Nemelex now decays the appropriate sacrifice weight 
by 20%.

--------------------------------------------------------------------------------
11adfeb2d7 | haranp | 2007-10-23 21:14:20 +0000

Some code cleanup.

--------------------------------------------------------------------------------
d01f16731d | haranp | 2007-10-23 17:50:10 +0000

You can now Triple Draw from decks you aren't wielding.

--------------------------------------------------------------------------------
1cb88e12f3 | haranp | 2007-10-23 16:58:30 +0000

Blade card now gives feedback when failing to brand. Blade card can now give 
different brands, not just SPWPN_VORPAL. Type safety on brand_weapon().

--------------------------------------------------------------------------------
4bfb1777f3 | dshaligram | 2007-10-23 16:53:11 +0000

[1815754] Mutagenic randarts are less mutagenic.

--------------------------------------------------------------------------------
933b0c361d | haranp | 2007-10-23 11:25:01 +0000

Fixed bad message with RAP_MAGICAL_POWER. Type safety; this required moving 
randart_prop_type to enum.h.

--------------------------------------------------------------------------------
82fa0cb1d1 | j-p-e-g | 2007-10-22 21:30:59 +0000

Changing screaming mutation to influence both frequency and volume of shouting 
-> yelling -> screaming. Reduced frequency of level 2 and 3 to make up for 
greater range. When paralysed, you are unable to scream.
Also cleaning up mutation listings.

--------------------------------------------------------------------------------
aa1ef7b743 | dshaligram | 2007-10-22 16:13:40 +0000

Fixed monsters wearing shields and other inappropriate armour as body armour.

--------------------------------------------------------------------------------
ff6bdc3daf | j-p-e-g | 2007-10-22 11:00:16 +0000

Applying two patches by dolorous: 1817546: refix Beogh butchering crash 
1817459: fix a couple of typos

--------------------------------------------------------------------------------
606eefbdd7 | j-p-e-g | 2007-10-21 22:19:23 +0000

Demigods no longer have a fast metabolism and gain random stats more often. I 
thought there was a FR about this somewhere but maybe it was "only" suggested 
in the discussion group. Anyway, I've been told this has been sanctioned from 
"high up", so here it is. ;) Oh, and fix that Demonspawn plural.

--------------------------------------------------------------------------------
5ac4b24388 | dshaligram | 2007-10-21 19:14:03 +0000

Accept "none" as a brand without carping about it to stderr.

--------------------------------------------------------------------------------
c99fdad423 | dshaligram | 2007-10-21 17:43:14 +0000

Fixed Lua dependency for trunk.

--------------------------------------------------------------------------------
cb00fedfcf | dshaligram | 2007-10-21 15:36:04 +0000

Fixed permanent transforms (syllogism).

--------------------------------------------------------------------------------
e62bf1734d | dshaligram | 2007-10-21 15:29:17 +0000

[1795751] Mutation cleanup, courtesy dolorous.

--------------------------------------------------------------------------------
ad4b537375 | j-p-e-g | 2007-10-21 13:49:11 +0000

Add information to demon weapons that Demonspawn fight better with them. (Hmmm, 
while I wrote Demonspawns going by proper grammar rules my gut feeling says it 
should be simply "Demonspawn" without that "s". Help?)
Also catering to FR 1816411: disallow elven M&F as well as dwarven Pole-arms.

--------------------------------------------------------------------------------
a5f6b9ec2f | dshaligram | 2007-10-21 13:05:22 +0000

[1800206] Ghoul food cleanup (dolorous).

--------------------------------------------------------------------------------
1f86ecd606 | dshaligram | 2007-10-21 12:31:11 +0000

[1813910] Typo fixes in mutation messages (dolorous).

--------------------------------------------------------------------------------
822e6b069f | dshaligram | 2007-10-21 12:20:11 +0000

Added missing double-quote (bobbens).

--------------------------------------------------------------------------------
aca476ed8a | dshaligram | 2007-10-21 12:01:09 +0000

[1816969] Use AT_NO_ATK in mon-data.h for unused monster attacks (bobbens).

--------------------------------------------------------------------------------
bfbed241fc | dshaligram | 2007-10-21 09:47:19 +0000

Note when Xom banishes player.

--------------------------------------------------------------------------------
e1725ba032 | dshaligram | 2007-10-21 08:36:44 +0000

Rock stair travel fix for trunk.

--------------------------------------------------------------------------------
94f2cdecb7 | dshaligram | 2007-10-20 18:11:16 +0000

Blademasters and master archers shouldn't pick up weapons.

--------------------------------------------------------------------------------
cad996abe8 | dshaligram | 2007-10-20 18:05:53 +0000

Moved position information Lua functions to luadgn.cc.

--------------------------------------------------------------------------------
17bab86986 | haranp | 2007-10-20 08:23:44 +0000

Menu tagging corrections + docs + initfile (David)

--------------------------------------------------------------------------------
4345ee3eba | zelgadis | 2007-10-20 04:18:07 +0000

Oops, couldn't set a non-default 0% cloud spread rate.

--------------------------------------------------------------------------------
d67f41ebf9 | haranp | 2007-10-19 22:30:42 +0000

Menus are now tagged. Menu colours now only apply to a menu with a matching 
tag, unless the menu colour tag is empty or "any". Menu colours are specified 
as tag:colour:pattern, where the "tag:" part is optional (default is empty tag, 
i.e., all menus.) The following menu tags exist: ability, description, equip, 
help, inventory, notes, resists, spell, stash. Default .crawlrc should probably 
be changed (and the docs, too...)

--------------------------------------------------------------------------------
55901dbf5e | haranp | 2007-10-19 17:20:43 +0000

Hurting holies was being counted as KILL_ANGEL instead of ATTACK_HOLY (bobbens)

--------------------------------------------------------------------------------
0c4a63b2f4 | haranp | 2007-10-19 16:30:10 +0000

1815768: some NOTE_USER_NOTEs should be NOTE_MESSAGE instead (actually they 
should be yet another note type, but NOTE_MESSAGE works for now.)

--------------------------------------------------------------------------------
45b0ff6c34 | zelgadis | 2007-10-18 17:42:50 +0000

Added fog machine Lua map markers.  Needs a C interface to make it usable in 
level generation.
Clouds now have a "spread rate" field, which by default uses the same
per-cloud-type rate as before (normal spread rate for steam, grey smoke
and black smoke, no spreading for other cloud types).  Might want to make
the spread rate decrease as the cloud spreads (currently it remains
unchanged).

Added new dungeon event type "entered level", to complement "entering level".

--------------------------------------------------------------------------------
6953c23380 | zelgadis | 2007-10-18 17:32:38 +0000

Lua accessors for you.x_pos, you.y_pos and you.pos

--------------------------------------------------------------------------------
2a619ef23a | haranp | 2007-10-16 09:44:06 +0000

Wands shouldn't be generated without charges.

--------------------------------------------------------------------------------
9aa6349bf2 | haranp | 2007-10-16 09:39:09 +0000

Minor note formatting improvements (David.)

--------------------------------------------------------------------------------
7ef7c92676 | haranp | 2007-10-16 09:32:26 +0000

Forgetfulness removed; it's now a scroll of fog with a 1-in-10 chance of 
producing miasma instead.

--------------------------------------------------------------------------------
34a06cacc3 | haranp | 2007-10-16 09:09:10 +0000

s/Location/Place/ (David)

--------------------------------------------------------------------------------
0cdf5a3356 | haranp | 2007-10-16 08:18:17 +0000

Summoned monsters now have the (increasingly misnamed) CREATED_FRIENDLY flag, 
so they don't give XP, even if initially hostile, to prevent scumming. [1784802]

--------------------------------------------------------------------------------
92f0c3b1aa | zelgadis | 2007-10-16 07:32:17 +0000

Fix for bug 1813676: handle_monster_move() should have been returning 
immediately if applying the monster's enchantments caused the monster structure 
to be reset, thus rendering the monster invalid.

--------------------------------------------------------------------------------
72d9609bac | zelgadis | 2007-10-16 07:08:28 +0000

Added new field seen_context to the monsters class, which can be set to cause a 
non-standard context to be passed to interrupt_activity( AI_SEE_MONSTER ) if it 
is called before the current turn is over.
If a submerged monster surfaces in order to shout, it has to wait one
turn before being able to submerge again.

Added back in a scroll named "forgetfullness", but rather than giving
amnesia about the map it gives amnesia about non-equipped inventory
items.  I tried to make the effects annoying rather than serious.

--------------------------------------------------------------------------------
96f8635d8d | haranp | 2007-10-15 23:52:18 +0000

Self-banishment is not considered unholy. Banishment at the air is still 
unholy. [1767848]

--------------------------------------------------------------------------------
69c6fd7841 | haranp | 2007-10-15 23:25:45 +0000

Added basic HTML output functionality to formatted_string. Not used anywhere 
yet.

--------------------------------------------------------------------------------
26f6c03dbe | dshaligram | 2007-10-15 17:05:01 +0000

Dropped chances of unbranded enchanted items being glowing/runed.

--------------------------------------------------------------------------------
bf2b63462d | dshaligram | 2007-10-15 16:47:48 +0000

Fixed level that was breaking trunk.

--------------------------------------------------------------------------------
078bf21159 | dshaligram | 2007-10-15 16:32:08 +0000

Fixed Demonspawn getting multiple levels of single-level mutations (cbus).

--------------------------------------------------------------------------------
df44e3cdd2 | dshaligram | 2007-10-15 13:00:44 +0000

Yaks gore.

--------------------------------------------------------------------------------
09aab0eab6 | dshaligram | 2007-10-15 12:45:17 +0000

Shift-run doesn't distinguish between wall types to make it more useful in 
labyrinths.

--------------------------------------------------------------------------------
afaae93d27 | dshaligram | 2007-10-15 12:27:57 +0000

[1813214] Trog should not gift the Wrath of Trog.

--------------------------------------------------------------------------------
fb0ab9913b | dshaligram | 2007-10-15 12:10:59 +0000

Cleanup: move_item_to_grid returns a bool to indicate that drop was successful.

--------------------------------------------------------------------------------
47146d5cc5 | dshaligram | 2007-10-15 11:54:13 +0000

Fixed yaktaurs picking up two crossbows and switching crossbows before each 
shot.

--------------------------------------------------------------------------------
cceb96c980 | dshaligram | 2007-10-15 11:41:50 +0000

Fixed bad treatment of ghosts and pandemonium lords that get the delayed 
fireball spell. Also allow pan lords to get orc slaying or disruption brands if 
the player merits it.

--------------------------------------------------------------------------------
7828ee2a9b | dshaligram | 2007-10-15 11:28:19 +0000

Fixed bad grammar in highscore entry for characters killed by hellfire.

--------------------------------------------------------------------------------
f1e3ca2406 | zelgadis | 2007-10-15 10:32:44 +0000

Fix problem of friendly monsters not using any energy when there's nothing 
around to fight and they're right next to the player.

--------------------------------------------------------------------------------
2b0fe052f4 | zelgadis | 2007-10-15 08:45:04 +0000

If a submerged monster moves onto a grid in which it can't be submerged, force 
it to unsuberge (i.e., a mermaid moving directly from water onto floor without 
first unsubmerign).
If a submerged monster shouts, force it to unsubmerge first.

If a visible submerged monster unsubmerges within view of the player,
say that it "bursts forth from the water" if it can travel over land,
and that it "surfaces" otherwise, rather than saying that it "comes
into view".  If an invisble sumberged monster unsubmerges within view
of a player who can't see invisible, and it can move over land,
say "something invisble bursts forth from the water".

--------------------------------------------------------------------------------
62cba73fa0 | zelgadis | 2007-10-15 06:36:07 +0000

Some fixes for mermaid beholding:
* A mermaid stops beholding if it polymorphs into something else.

* If new walls are created, then Crawl stops the beholdment of any
  mermaid that gets hidden by the new walls.

* Do paranoid sanity checking on beholders before each command with
  check_beholders() and try to restore sanity if any bugs are
  found (and give a diagnostics message if DEBUG is set).

--------------------------------------------------------------------------------
a1b82e6be0 | zelgadis | 2007-10-15 04:03:33 +0000

Removed amnesia/forgetfullness trap, mutation and scroll.  The mutation has 
been replaced with an involuntary shouting mutation, and the trap with an alarm 
trap.  The scroll hasn't been replaced with anything, and the frequency of 
scrolls of random uselessness has thus doubled; someone needs to re-do the 
scroll frequencies.
Also added a "drifting" mutation, which causes the player to sometimes
drift in a random direction after moving.

--------------------------------------------------------------------------------
cce629f112 | nlanza | 2007-10-15 01:06:18 +0000

Add store.{cc,h} to the Xcode build and clean up debugging support a bit.

--------------------------------------------------------------------------------
691fc9eefb | nlanza | 2007-10-15 01:04:56 +0000

Squash unused-variable warnings by only declaring variables that exist solely 
for ASSERT when we're defining DEBUG.

--------------------------------------------------------------------------------
f89c4cc979 | haranp | 2007-10-14 23:46:16 +0000

Tomb rebalancing.

--------------------------------------------------------------------------------
bcfa65c5ed | zelgadis | 2007-10-14 10:53:00 +0000

Wrong feature name order for statues.

--------------------------------------------------------------------------------
c2e225e37b | zelgadis | 2007-10-14 08:29:33 +0000

Added to classes actor, monsters and player the method can_pass_through(), 
which returns true for a grid that the monster or player can pass trhough. Also 
added new monster type "rock worm" to demonstrate a monster which can pass 
through solid walls.

--------------------------------------------------------------------------------
07cd505666 | zelgadis | 2007-10-14 07:52:00 +0000

The clear() methods should clear the default_flags and type members, as well as 
clearing out the contained values.

--------------------------------------------------------------------------------
a80ff63410 | zelgadis | 2007-10-14 05:20:15 +0000

Give a message and interrupt activity if a visible door is opened or eaten by 
an unseen monster (either invisible or out of line of sight).

--------------------------------------------------------------------------------
b50185bac3 | zelgadis | 2007-10-14 04:09:48 +0000

handle_monster_move() still wasn't dealing quite right with invoking 
apply_enchantments(), since a monster could have apply_enchantments() not 
called for a normal-speed player turn, and then get called twice in a row 
during the next turn.  This fix also makes zero-speed monsters like plants have 
apply_enchantments() be handled the same way as other monsters, so enchantments 
are now allways processed in time increments of 10 energy units (cloud 
processing for zero speed monsters is still handled separately, though).

--------------------------------------------------------------------------------
bd19eb507d | haranp | 2007-10-13 23:28:11 +0000

Fixed "shiny" and "embroidered" items not showing as white in abbreviated 
display. Fix bad merfolk energy.

--------------------------------------------------------------------------------
9d0ad4c554 | j-p-e-g | 2007-10-13 13:57:46 +0000

Adding a description for merfolk fighters and mermaids.

--------------------------------------------------------------------------------
6b3f400a54 | j-p-e-g | 2007-10-13 13:50:13 +0000

Implementing merfolk monsters. There are two types, merfolk fighters, and 
mermaids. The latter are more interesting. ;)
Whenever a mermaid sings there's a chance you get beheld, meaning you
cannot move away from the mermaid, that is cannot increase the 
distance between you and her. (Because of the distance pecularities
this means at dist 1 you can only be NSW or E of the mermaid but not
the diagonal directions.) 
If you manage to be beheld by several mermaids at the same time, your 
movements have to respect the distance to all of them.

I've added a vector beheld_by that keeps track of beholding monsters
and makes checking distance and updating beholding status easier.

Merfolk are immune to the mermaid song.

--------------------------------------------------------------------------------
884fcefad2 | zelgadis | 2007-10-13 06:07:38 +0000

Oops, overlooked that ench_countdown needs to be rescaled when a monster gains 
or loses the slow or haste enchantments.

--------------------------------------------------------------------------------
60bb14c185 | zelgadis | 2007-10-13 05:58:53 +0000

Fix giving an interruption message when a monster ignored with the 
runrest_ignore_monster option gets too close.  Also give a more informative 
interruption message when an air elemental quits being "submerged" in the air, 
and give a new message when it first "submerges" itself into the air.

--------------------------------------------------------------------------------
a3ba5a8ee2 | zelgadis | 2007-10-13 05:17:12 +0000

This change breaks savefile compatibility.
Removed speed_inc field from monsterentry struct and added field
energy_usage, which lets a monster take different amounts of time for
different types of actions, defaulting to 10 points of energy for
everything but picking up an object, which defaults to 100% of the
monster's speed (the same as before this change).  This is currently
only used to make curse toes move at half the speed with which they
attack (which was previously hard-coded), but is could be used for a
lot of interesting things.

A related change is that the manner in which apply_enchantment() deals
with a monster moving at a different rate than the player has changed
for monsters with non-zero-speed.  As an example, giant bats have a
speed of 30, which means that apply_enchantments() gets called three
times per player move if the player is at normal speed;
apply_enchantment() has to compensate for this so that a poisoned bat
doesn't suffer three times the damage as a monster with speed 10.
Monsters being able to do things in energy increments of other than 10
complicated this, and the easiest way to deal with the complication
was to keep track of how much energy a monster had recently expended
with the new monsters class member ench_countdown, and use that to
call apply_enchantments() once for every normal-speed player move
(zero-speed monsters are still dealt with in the same manner as
before).  Because of this, the "spd" variable in apply_enchantment()
and decay_enchantment() is normalized to 10 for all non-zero-speed
monsters.  This doesn't work for ENCH_HELD, since a fast monster
should be able to escape from a net more quickly than a slow monster.
I've tried to compensate for this, but I'm not sure if I've done it
right.

--------------------------------------------------------------------------------
79c8875dd3 | j-p-e-g | 2007-10-12 21:45:59 +0000

A few tiny changes courtesy of dolorous. 1811785: mummy food/drink checks 
changed to US_UNDEAD check 1811735: vampires don't get holy weapons from 
acquirement 1811249: remove redundant poison resistance check for Ghouls 
1810890: very minor comment fix

--------------------------------------------------------------------------------
15a055a3c2 | dshaligram | 2007-10-12 19:38:28 +0000

Updated CREDITS.

--------------------------------------------------------------------------------
552e669dbc | dshaligram | 2007-10-12 08:41:38 +0000

Added -O2 -Wuninitialized to Unix makefile.

--------------------------------------------------------------------------------
211ed66cff | dshaligram | 2007-10-12 06:29:56 +0000

[1811733] Brand plants on stairs.

--------------------------------------------------------------------------------
164d4f26dd | haranp | 2007-10-11 20:16:40 +0000

Dwarves and orcs now get +1 to-dam when throwing racial gear. (Yup, this 
includes armour.) [1804894]

--------------------------------------------------------------------------------
077584cc2f | haranp | 2007-10-11 20:10:42 +0000

Fix for 1807899: stash-examining a shop will trigger ID noting.

--------------------------------------------------------------------------------
807feb82ad | haranp | 2007-10-11 19:51:55 +0000

Fix for 1805138: wands of draining no longer leak information when the bolt 
misses.

--------------------------------------------------------------------------------
dc24fce640 | dshaligram | 2007-10-11 18:32:53 +0000

Weakened monster lightning damage, dropped AC protection from lightning damage 
by half.

--------------------------------------------------------------------------------
994900bb4d | dshaligram | 2007-10-11 18:18:15 +0000

Dropped cost of smiting for TSO.

--------------------------------------------------------------------------------
ce71111835 | dshaligram | 2007-10-11 18:09:32 +0000

Fixed Lugonu's Corruption, remaining cases of truncated monster shouts.

--------------------------------------------------------------------------------
095584f742 | dshaligram | 2007-10-11 17:29:03 +0000

Adjusted enchantment durations for paralysis and confusion.

--------------------------------------------------------------------------------
57833f7874 | dshaligram | 2007-10-11 17:12:58 +0000

Upped Beogh weapon damage bonus.

--------------------------------------------------------------------------------
8de5316035 | dshaligram | 2007-10-11 17:00:28 +0000

Unflasked efreets are now permanent and more likely to be friendly.

--------------------------------------------------------------------------------
dc2c217824 | dshaligram | 2007-10-11 16:50:19 +0000

Lock before opening .dsc files.

--------------------------------------------------------------------------------
ab686e2d68 | dshaligram | 2007-10-11 16:43:34 +0000

Fixed minimum distance of lab entrance from exit.

--------------------------------------------------------------------------------
849424e409 | dshaligram | 2007-10-11 15:15:23 +0000

[1808191] Fixed truncated imp messages.

--------------------------------------------------------------------------------
f51fc3911c | dshaligram | 2007-10-11 14:41:10 +0000

[1811182] Fixed help screen hotkeys.

--------------------------------------------------------------------------------
fca3584d0d | dshaligram | 2007-10-11 14:33:01 +0000

[1809728] Fixed bug where you could get multiple levels of a single-level 
mutation (such as torment resistance).

--------------------------------------------------------------------------------
79a6889bb5 | dshaligram | 2007-10-11 11:51:53 +0000

[1804499] Fixed acquirement occasionally mauling unrandarts and producing bad 
items.

--------------------------------------------------------------------------------
9d22d5ea6e | dshaligram | 2007-10-11 06:23:48 +0000

[1807611] Inventory menus show weight of stack, not one item in stack.

--------------------------------------------------------------------------------
8472752a58 | zelgadis | 2007-10-11 05:04:23 +0000

Oops, was using UNIQ_LOST_IN_ABYSS wrongly.

--------------------------------------------------------------------------------
37bace0de3 | zelgadis | 2007-10-11 03:23:34 +0000

For unidentified randart jewellery, remember and display obvious-from-wearing 
effects caused by the base type item as if they were randart properties.
Related changes:

* Equpping or unequipping a ring of magical power or staff of power will
  give a message about mana capacity increasing/decreasing.

* The randart property RAP_MAGICAL_POWER has been added.
  randart_wpn_property() doesn't yet give this to any randarts, but
  the rest of the code for it is in place.

--------------------------------------------------------------------------------
767d1c86be | zelgadis | 2007-10-11 00:03:04 +0000

Re-roll randarts which have no properties, plus randart jewellery where the 
properties are redundant or conflicting with respect to the base jewellery 
type.  Also, add known randart properties boolean vector to unrandarts.

--------------------------------------------------------------------------------
4dd6e5d983 | dshaligram | 2007-10-10 19:14:11 +0000

Fixed all abilities being listed as using piety (jarpiain).

--------------------------------------------------------------------------------
1e5e19e56b | dshaligram | 2007-10-10 18:54:31 +0000

New vaults, courtesy bobbens.

--------------------------------------------------------------------------------
382e602f65 | dshaligram | 2007-10-10 18:23:53 +0000

Fixed DEPTH for david_defended_altar.

--------------------------------------------------------------------------------
bca1dd2504 | dshaligram | 2007-10-10 18:16:16 +0000

[1809278][1809633] Fixed spotty level badness.

--------------------------------------------------------------------------------
e5bc0885d1 | dshaligram | 2007-10-10 17:55:22 +0000

Removed hardcoding in travel colour check.

--------------------------------------------------------------------------------
5199c7d070 | dshaligram | 2007-10-10 17:52:21 +0000

[1809884] Fixed detected_item_colour being clobbered with black.

--------------------------------------------------------------------------------
bbd298c0f2 | dshaligram | 2007-10-10 17:39:13 +0000

[1810484] Fixed Lua userdata leak - shouldn't use luaL_checkudata from __gc 
metamethod.

--------------------------------------------------------------------------------
8e561b167b | dshaligram | 2007-10-10 06:02:22 +0000

Fix los radius check in can_see().

--------------------------------------------------------------------------------
936f2a18fa | zelgadis | 2007-10-10 03:43:21 +0000

Remember and describe randart properties which have been learned via wearing 
the randart.  Breaks savefile compatibility for saved games containing any 
randarts.

--------------------------------------------------------------------------------
3b3bb038d3 | j-p-e-g | 2007-10-09 21:46:52 +0000

Updating level-design.txt (done by David), mostly spacing changes but also a 
few content differences, e.g. removing information on tricky.des and adding 
information on some new features (I think, it's hard to tell what was already 
in the older version with all this indenting going on).

--------------------------------------------------------------------------------
059c031111 | dshaligram | 2007-10-09 18:15:07 +0000

Fixed temple_secret_doors: playing hide-and-seek with the Temple is not good.

--------------------------------------------------------------------------------
44d8294872 | dshaligram | 2007-10-09 16:40:48 +0000

Branded weapons and armour are now always visibly special.

--------------------------------------------------------------------------------
118d97e6f6 | dshaligram | 2007-10-09 16:05:08 +0000

Returning weapon beam path updates for trunk.

--------------------------------------------------------------------------------
47fdcd3997 | j-p-e-g | 2007-10-09 15:04:14 +0000

Make mechanical traps in Orcish Mines and Elven Halls of appropriate racial 
type. I'd prefer it if there was a chance involved but IMHO a given trap should 
shoot the same (racial) type of ammo, so this is now always the case in these 
two branches, for all of needle, arrow, bolt, spear and axe traps.

--------------------------------------------------------------------------------
d9cb0f334d | j-p-e-g | 2007-10-09 14:59:08 +0000

Allow bargains in bazaars, ranging from 60% to 95%. The value of created items 
is also increased by a fair bit.
I also changed species MR as in the last post of FR 1787813:
all Elves get 4, Ogre Mage 5, and Demigods also 4.

Someone (Darshan?) will probably want to twiddle with the 
numbers, at least for the bazaars, so for now, I'll put off 
committing this into 0.3.

--------------------------------------------------------------------------------
451dcff297 | dshaligram | 2007-10-09 11:56:58 +0000

Moved orc battle cries to sound channel, increased duration to reduce message 
spam.

--------------------------------------------------------------------------------
1202f9248d | zelgadis | 2007-10-09 11:39:22 +0000

Added an actual vector version of CrawlHashTable, and removed the code for 
making a hash table imitate a vector.  Since there's now more than just one 
type of savable/restorable container, hash.cc and hash.h have been renamed to 
store.cc and store.h ("store" for storage).
Destroying/unlinking/deleting an item now clears out the item's props
field.

--------------------------------------------------------------------------------
40101238e7 | dshaligram | 2007-10-08 20:22:04 +0000

Orc battle cries respect silence and also boost physical ranged attacks.

--------------------------------------------------------------------------------
95d587c3fe | dshaligram | 2007-10-08 20:08:53 +0000

Orc knights and warlords can yell battle-cries to make lesser orcs fight better.

--------------------------------------------------------------------------------
9da9f88dfc | j-p-e-g | 2007-10-08 19:28:58 +0000

Minor changes to net, one shoving debug information into DEBUG_DIAGNOSTICS 
compile, another changing net descriptions.

--------------------------------------------------------------------------------
ccf245885f | j-p-e-g | 2007-10-08 19:26:19 +0000

Applying dolorous' latest patch (1806451), mostly correcting typos in the 
comments and changing Xom stimulation from 256 to 255 (as the function 
apparently cannot handle that).

--------------------------------------------------------------------------------
a753bdc602 | dshaligram | 2007-10-08 18:18:10 +0000

Adjust piety costs for various god powers.

--------------------------------------------------------------------------------
d4828ced1e | dshaligram | 2007-10-08 17:47:17 +0000

Re-enable ghosts in Labyrinths.

--------------------------------------------------------------------------------
4801b64ec8 | dshaligram | 2007-10-08 17:22:04 +0000

Fixed crash when summoned creature is killed by trap (Iaido) - monsters should 
not trigger traps on creation, only when moving onto a square.
Upped ammo preservation chances for javelins (Chilliwack).

--------------------------------------------------------------------------------
d4ea2a59a8 | dshaligram | 2007-10-08 14:06:54 +0000

s/cannot_move/cannot_act/ for clarity.

--------------------------------------------------------------------------------
c7ab36b8b5 | dshaligram | 2007-10-08 14:01:16 +0000

Ghosts can use ensorcelled hibernation. Breaks saves, needs some work on PC 
sleep and wake-up correctness.

--------------------------------------------------------------------------------
c0976eb78b | dshaligram | 2007-10-08 12:34:40 +0000

Removed unnecessary ench_sleepy duration.

--------------------------------------------------------------------------------
7f5986ca21 | dshaligram | 2007-10-08 12:28:20 +0000

Fixed ENCH_SLEEPY persisting for too long with ensorcelled hibernation.

--------------------------------------------------------------------------------
2695f313b7 | dshaligram | 2007-10-08 11:58:07 +0000

Make Escape cancel out of menu and prompt for the ability and spellcasting 
menus (Marc).

--------------------------------------------------------------------------------
9ac3b8f9fc | dshaligram | 2007-10-08 11:10:52 +0000

Fixed map colours being inherited by unrelated maps during compilation. Pause 
after reporting an error for dgamelaunch so that the dgl menu does not hide the 
error message.

--------------------------------------------------------------------------------
e7240df997 | zelgadis | 2007-10-08 05:55:47 +0000

Added class CrawlHashTable, a savable/loadable string-keyed associative array 
with heterogeneous values, capable of holding booleans, bytes, shorts, longs, 
floats, string, coordinates (coord_def), items (item_def) and nested hash 
tables.  A table can be made to be homogeneous by giving it a value type, which 
causes dynamic type checking to be performed.  The same type checking can be 
performed for individual member values of a heterogeneous table by setting a 
flag on that value.  A flag can also be set on an individual member value to 
prevent its value from being changed.
CrawlHashTable is currently only used for the props field of the
item_def struct (though it could easily be added elsewhere), and is
only being used by decks.  The deck structure has been changed so that
deck.plus is the original number of cards in the deck, deck.plus2 is
either the number of cards used or the number of cards left, and
deck.special hold the deck's rarity.  The cards themselves are
selected at deck creation time and stored in the nested hash table
deck.props["cards"].  The Nemelex "Peek Deck" ability has been changed
to identify the deck, draw three cards from it, show them to the user,
and shuffle them back into the deck (with special cases for decks
containing only one or two cards).  A fourth Nemelex ability, "Mark
Deck", has been added, which picks four cards from the deck, marks
them, and then shuffles them back into the deck, creating a deck with
a mixture of marked and unmarked cards.

--------------------------------------------------------------------------------
16a8b1fe4a | zelgadis | 2007-10-08 04:25:58 +0000

Make mpr_comma_separated_list() end the message with a period.

--------------------------------------------------------------------------------
b43697b140 | zelgadis | 2007-10-08 01:15:23 +0000

Ran into a bug where searching backwards through inventory for a free slot 
which won't leave gaps (in find_free_slot()) would fail if the inventory was 
empty; fixed bug by making find_free_slot() retry with forwards search if 
backwards search failed.  I can't reproduce the bug, but the fix doesn't seem 
to cause any problems when there isn't a bug.

--------------------------------------------------------------------------------
b13a963a72 | dshaligram | 2007-10-07 16:16:53 +0000

Unicode makefile tweak for trunk.

--------------------------------------------------------------------------------
31a05064c3 | dshaligram | 2007-10-07 14:55:57 +0000

[1808968] Using the weapons of the demon lords in combat angers TSO and Zin.

--------------------------------------------------------------------------------
ff1a1fcbf8 | dshaligram | 2007-10-07 14:43:42 +0000

[1808964] Holy Word wakes and annoys affected monsters.

--------------------------------------------------------------------------------
120279db51 | dshaligram | 2007-10-07 14:12:54 +0000

[1808952] Smiting monsters did not wake them up, fixed.

--------------------------------------------------------------------------------
199b224105 | dshaligram | 2007-10-07 14:07:44 +0000

Fixed bad magic points calculation when levelling up with a worn item of 
magical power (V-Napkin).

--------------------------------------------------------------------------------
c7a9f32e09 | dshaligram | 2007-10-07 13:55:48 +0000

[1808372] Clip menu item labels at terminal width.

--------------------------------------------------------------------------------
1d7f8789b3 | dshaligram | 2007-10-07 13:51:03 +0000

[1808560] Staff of power unwield was not removing max mp bonus, fixed.

--------------------------------------------------------------------------------
4253029283 | dshaligram | 2007-10-07 13:45:05 +0000

[1808624] Dropping part of a stack of wielded items should not unwield the 
whole stack.

--------------------------------------------------------------------------------
3baafdfd73 | dshaligram | 2007-10-07 13:41:42 +0000

[1808631] PCs in statue-form should not be able to scramble out of deep water.

--------------------------------------------------------------------------------
f5f3f05660 | dshaligram | 2007-10-07 13:32:22 +0000

Clear dropped+thrown flags on corpse when converting it to chunks (V-Napkin). 
Also announce rod identification when it self-ids [1808821].

--------------------------------------------------------------------------------
f998c974e8 | dshaligram | 2007-10-07 11:58:59 +0000

Fixed bad comparison with string literal (bobbens).

--------------------------------------------------------------------------------
522955930b | dshaligram | 2007-10-07 11:53:26 +0000

Allow overriding monster colours in map specs using col:<newcolour>.

--------------------------------------------------------------------------------
10aeabaacb | dshaligram | 2007-10-07 11:32:10 +0000

Increased max monsters to 350, breaks saves, may be buggy. Incremented save 
major version.

--------------------------------------------------------------------------------
82a2902959 | dshaligram | 2007-10-07 10:37:49 +0000

Adjust monster generation difficulty to be closer to 0.2 averages, but with 
more variance. Early monster difficulty should be less brutal now.

--------------------------------------------------------------------------------
f732c68d73 | dshaligram | 2007-10-06 21:41:33 +0000

Fixed bad hp/mp gain calculation when gaining multiple experience levels with 
one kill (jarpiain).

--------------------------------------------------------------------------------
758caa0f16 | dshaligram | 2007-10-06 21:32:35 +0000

Updated Vault:8 map for new Kfoo behaviour.

--------------------------------------------------------------------------------
6d1f582d1c | dshaligram | 2007-10-06 21:30:10 +0000

Assume KFEAT: ? = floor if we've seen a KITEM: or KMONS: for the same glyph.

--------------------------------------------------------------------------------
43ba2b6c80 | dshaligram | 2007-10-06 20:35:15 +0000

Discarding unused .des files.

--------------------------------------------------------------------------------
508e5d7de0 | dshaligram | 2007-10-06 18:42:21 +0000

Added new maps by bobbens, moved Crypt and Tomb maps to crypt.des.

--------------------------------------------------------------------------------
884757599b | dshaligram | 2007-10-06 13:04:13 +0000

First steps toward removing the need for 6-deep rock-wall padding around 
dungeon maps. This is likely to be buggy for a while.

--------------------------------------------------------------------------------
5c6fa867a8 | dshaligram | 2007-10-06 11:47:47 +0000

Fixed off-by-one error when complaining about oversized maps (bobbens).

--------------------------------------------------------------------------------
8595eb5695 | nlanza | 2007-10-06 03:33:03 +0000

Uninitialized variable fixes.

--------------------------------------------------------------------------------
216f612c3f | nlanza | 2007-10-06 03:32:13 +0000

Add xom.h to the project file so everything's listed.

--------------------------------------------------------------------------------
ddb06dbaf3 | zelgadis | 2007-10-05 22:20:15 +0000

Remove trap-door-like logic from shaft traps, since shafts are just supposed to 
be holes hidden by debris.

--------------------------------------------------------------------------------
a88fd9951f | dshaligram | 2007-10-05 10:58:57 +0000

Refix &Z crash-fix, which didn't actually fix the crash. :P

--------------------------------------------------------------------------------
827ca0211f | dshaligram | 2007-10-05 09:10:34 +0000

Fixed segfault when using &Z (bobbens).

--------------------------------------------------------------------------------
917076ae67 | dshaligram | 2007-10-05 08:53:32 +0000

Removed unnecessary conditional that may cause issues building Lua.

--------------------------------------------------------------------------------
5871d6f616 | dshaligram | 2007-10-05 08:42:04 +0000

Corrected grammar on a couple of Singing Sword messages, fixed crash when 
placing vaults with &L (bobbens).

--------------------------------------------------------------------------------
b5dde197ce | zelgadis | 2007-10-05 08:27:09 +0000

Randomly generate shaft traps.

--------------------------------------------------------------------------------
de17c107d4 | zelgadis | 2007-10-05 07:31:05 +0000

init_pandemonium() needs to re-do dgn_set_colours_from_monsters(), since it is 
called after level generation is complete.

--------------------------------------------------------------------------------
16bfc009e4 | zelgadis | 2007-10-05 07:05:22 +0000

Oops, was calling dgn_set_floor_colours() in wrong place, leading to some 
levels getting the wrong colours.  Also, make dgn_set_colours_from_monsters() 
be paranoid about improprely set up env.mons_alloc[].

--------------------------------------------------------------------------------
1db9c68406 | zelgadis | 2007-10-05 06:10:49 +0000

Shaft traps (trap doors) [1792195] and level annotation [1769009] added, with 
the shaft traps changed as per comments on SF; shafts aren't randomly generated 
yet, so this doesn't change gameplay. Changed DNGN_TRAP_III to 
DNGN_TRAP_NATURAL, of which trap type the shaft traps are the only current 
member.

--------------------------------------------------------------------------------
70d59beaba | j-p-e-g | 2007-10-04 12:58:23 +0000

Add documentation for weapon noises and update comments. Also update 
information about Throwing crosstraining.

--------------------------------------------------------------------------------
ce144b644d | j-p-e-g | 2007-10-04 12:52:55 +0000

Another cleanup of dungeon features. Adding general markers for first 
branch/last branch and first altar/last altar that should hopefully make adding 
new ones easier.

--------------------------------------------------------------------------------
1f97cbc369 | dshaligram | 2007-10-04 10:28:54 +0000

Unicode support tweak: always set locale to what's specified in UNICODE_LOCALE, 
defaulting to en_US.UTF-8.

--------------------------------------------------------------------------------
2577923054 | zelgadis | 2007-10-04 08:53:33 +0000

Lots more keywords, plus hiliting for numbers, ranges, weights and slashes.

--------------------------------------------------------------------------------
75178e61c5 | dshaligram | 2007-10-04 07:20:11 +0000

[1804502] Fixed undead pretending to resist dispel undead.

--------------------------------------------------------------------------------
4b129b5095 | dshaligram | 2007-10-04 07:01:16 +0000

Makhleb accepts undead and demon kills once again, matching b26 behaviour 
(Iaido).

--------------------------------------------------------------------------------
73cb8204c4 | zelgadis | 2007-10-04 06:36:16 +0000

Wizard commands should never use up a turn.

--------------------------------------------------------------------------------
dc0154464f | zelgadis | 2007-10-04 06:01:30 +0000

Quiet a compile warning.

--------------------------------------------------------------------------------
fb5e421254 | zelgadis | 2007-10-04 05:07:33 +0000

ROCKCOL and FLOORCOL changes for the prebuilt parser/lexer.

--------------------------------------------------------------------------------
13f47218bb | zelgadis | 2007-10-04 05:05:42 +0000

Moved all of the bazaar specific logic/code to dat/bazaar (or turned the code 
into Lua utility functions which can be reused by things other than bazaars).  
Related changes:
* Portal vault entrances now work if they have destinations ("dst" property)
  besides "bazaar" (though it still causes an assert if no matchng
  maps for the destination can be found).

* The floor and rock colour for a level are generated once and then stored
  in the save file, rather than being constantly regenerated (which means
  that bazaar floor colours are now truly random, rather than being tied
  to the depth of the bazaar entrance).

* The floor and rock colour for a portal vault (or for any level containing
  any vault) can be set with ROCKCOL and FLOORCOL (which currently only
  accepts a single colour, unlike COLOUR); there are also Lua functions for
  querying and setting the colours.

* Each portal vault level_type_name can have an associated Lua callback
  which is called when level generation is complete; it can be used for
  things like stair fixup.

I also moved the Halls of Zot rock/floor colour special casing to the
dat/zot.des file, since it was easy once ROCKCOL and FLOORCOL had been
implemented.

--------------------------------------------------------------------------------
92c238f2c7 | dshaligram | 2007-10-03 20:25:34 +0000

Fixed equipment slot assignment check.

--------------------------------------------------------------------------------
44bb03691a | dshaligram | 2007-10-03 20:21:40 +0000

Cleaned up newgame item creation code, fixed MuFi starting with bad items as 
shields (cbus), and corrected Rupert's description.

--------------------------------------------------------------------------------
67b94bd317 | j-p-e-g | 2007-10-03 19:20:02 +0000

Outsourcing weapon noises to speak.txt, and adding more messages.

--------------------------------------------------------------------------------
ae90cd6d8e | dshaligram | 2007-10-03 07:30:57 +0000

Corrected INSTALL.

--------------------------------------------------------------------------------
a1f1568637 | dshaligram | 2007-10-03 06:43:35 +0000

Make element_cols static.

--------------------------------------------------------------------------------
a63fb86ecc | dshaligram | 2007-10-03 06:40:26 +0000

Updated colour names in initfile.cc for the new elemental colours.

--------------------------------------------------------------------------------
2a90ec7fa1 | zelgadis | 2007-10-03 04:19:40 +0000

Don't assert-fail due to a buggy rune being in the player's inventory when 
constructing a score-file entry, since checks for buggy runes are done 
elsewhere in the game.

--------------------------------------------------------------------------------
321be66a09 | zelgadis | 2007-10-03 04:09:08 +0000

Runes and the Orb now have elemental (flickering/shifting) colours.

--------------------------------------------------------------------------------
a9f88fbe2f | zelgadis | 2007-10-03 01:39:08 +0000

Added svn properties svn:keywords and svn:eol-style to files which were missing 
them.

--------------------------------------------------------------------------------
4ba581107a | zelgadis | 2007-10-02 22:40:40 +0000

Made Xom be smarter about being amused at losing/missing runes, and made Xom 
also be amused at runes being destroyed.  Related changes:
* Keep track of which items have ever been held by the player with
  ISFLAG_BEEN_IN_INV.

* item_was_destroyed() is called when an item is destroyed (as in
  dropped in lava, not destroy_item() being called), and item_was_lost()
  is called if the item was lost (i.e., being left behind in the Abyss).

* Keeps track of the number of runes that the character has collected,
  and how many have been left in the Halls of Zot.

--------------------------------------------------------------------------------
6b34259b6c | dshaligram | 2007-10-02 11:38:37 +0000

Replaced inc_god_acting/dec_god_acting pairing with god_acting objects.

--------------------------------------------------------------------------------
4ff73ba59f | dshaligram | 2007-10-02 11:15:12 +0000

Fixed elven fighters getting Armour skill instead of Dodging. Fixed deep elf 
bow aptitude (Anym).

--------------------------------------------------------------------------------
5b38990b34 | dshaligram | 2007-10-02 10:57:45 +0000

Fixed segfault in explore discovery reporting (syllogism).

--------------------------------------------------------------------------------
94096b6785 | zelgadis | 2007-10-02 07:25:05 +0000

Xom is stimulated/amused if a harmful beam ricochets and hits the originator of 
the beam.

--------------------------------------------------------------------------------
b153e8bfc6 | zelgadis | 2007-10-02 06:52:08 +0000

Added floor_special and floor_reserved to dngn_feature_names[], to make the 
array match up with the enums.
Don't describe the weapon with which an unseen monster is attacking.

Added methods can_see() and visible_to() to the actor, player and
monster classes, which take care of calling mons_player_visible(),
player_monster_visible(), mons_monster_visible() and mons_near().

Re-arranged the first 12 dungeon_feature_type enumerations so that
similar features are contiguous (i.e., closed door and secret door are
next to each other), and added DNGN_MAXOPAQUE (one less than
DNGN_MINSEE), DNGN_MINWALL and DNGN_MAXWALL.

--------------------------------------------------------------------------------
3d2b0998bd | dshaligram | 2007-10-01 21:14:06 +0000

Restored 0.2's character combinations, fixed crash when killing a monster using 
Pain.

--------------------------------------------------------------------------------
313d4612b5 | dshaligram | 2007-10-01 19:18:06 +0000

Fixed bad species name (eg: deep elves with the bows title) in dump because of 
reuse of static buffers (Iaido).

--------------------------------------------------------------------------------
1fcb6aa138 | dshaligram | 2007-10-01 18:27:31 +0000

Wanderers could start with items equipped in the wrong slots, fixed.

--------------------------------------------------------------------------------
09e315464c | zelgadis | 2007-10-01 12:31:37 +0000

Oops, check_buggy_deck() was itself buggy; fixed.
Also, fixed the deck stacking interface so that all available cards
are always visible, rather than sometimes being split across a '-more-'
prompt.

--------------------------------------------------------------------------------
a7a25900eb | zelgadis | 2007-10-01 12:06:58 +0000

The player now dies if the Focus card causes any stat to go below 1.

--------------------------------------------------------------------------------
d22abf31c5 | dshaligram | 2007-10-01 10:44:11 +0000

Fixed vampiric healing on death using raw damage instead of actual damage, 
which produced super-healing for stabbing (jarpiain).

--------------------------------------------------------------------------------
2b9197efde | dshaligram | 2007-10-01 10:29:29 +0000

[1804917] Berserkers no longer get Polearms skill for their throwing spears, 
since the spears use only Throwing.

--------------------------------------------------------------------------------
8f9d46bf14 | dshaligram | 2007-10-01 08:50:12 +0000

Restore vampiric healing for killing blows (jarpiain).

--------------------------------------------------------------------------------
de2ef98bac | j-p-e-g | 2007-10-01 07:51:02 +0000

Overhaul trapping net escape functions.
With the help of several factors (such as size, wielded weapon
or stats) the game decides whether you should try to destroy the
net to come free, or try to slip out of it. The same calculation
also influences how long this will take.

--------------------------------------------------------------------------------
ae65d11576 | zelgadis | 2007-10-01 07:27:21 +0000

Oops, had some code placed after a "return" statement; why didn't the compiler 
catch that?

--------------------------------------------------------------------------------
73bd55dd42 | zelgadis | 2007-10-01 06:50:07 +0000

Some paranoia checks for buggy decks when evoking or stacking them. If the deck 
has no cards left yet still exists, the deck is destroyed and Nemelexites are 
awarded a brownie point for using up a deck.  If a stacked deck has holes in 
it, the holes are removed.  If a stacked deck has buggy cards in it, they are 
discarded.  If a deck had problems with it, the user is asked if s/he is sure 
about using the (now fixed) deck, and no turns are used if the answer is "no".

--------------------------------------------------------------------------------
c8a9c2c3df | dshaligram | 2007-10-01 06:09:00 +0000

Fixed broken 64-bit compile.

--------------------------------------------------------------------------------
3850df3214 | zelgadis | 2007-10-01 06:01:58 +0000

Tweak command can now accept hexadecimal values.

--------------------------------------------------------------------------------
4ddd902472 | zelgadis | 2007-10-01 04:29:44 +0000

Better interface for creating runes and decks.

--------------------------------------------------------------------------------
98100e7b22 | zelgadis | 2007-10-01 04:05:20 +0000

Fix wizard mode cheating-death from losing experience or levels when level 1, 
so you won't end up as a level 0 character with 0 HP.

--------------------------------------------------------------------------------
fa99383f22 | zelgadis | 2007-10-01 00:09:26 +0000

The Shuffle card now kills the player if any stats are lowered below 1.

--------------------------------------------------------------------------------
ea0a6471b7 | dshaligram | 2007-09-30 18:37:21 +0000

[1804879] Fixed bad time-elapsed events being generated for new levels, also 
fixes labyrinths/bazaars not being generated correctly.

--------------------------------------------------------------------------------
2d3f243d68 | dshaligram | 2007-09-30 17:18:31 +0000

Fixed regex escapes for "." stash search.

--------------------------------------------------------------------------------
e2179589b8 | j-p-e-g | 2007-09-30 15:53:09 +0000

Introducing shortcut for searching the current level as requested in FR 
1801705. Also adding feedback when auto-travel fails to kick in. And trying to 
get out of a net no longer stops travel, only being caught in one does (FR 
1800821).

--------------------------------------------------------------------------------
19bba5a5ec | j-p-e-g | 2007-09-30 15:45:57 +0000

Trog's bookburning invocation only costs a turn and food if it's actually 
successful.

--------------------------------------------------------------------------------
79a54a17e3 | j-p-e-g | 2007-09-30 13:18:19 +0000

Monster centaurs now sometimes (rarely) wear barding. The chances are lower 
even than for naga as I believe that centaurs occur more frequently than naga. 
As I've been completely disregarding the Snake Pit I could be entirely wrong.

--------------------------------------------------------------------------------
f912d7cf35 | j-p-e-g | 2007-09-30 13:11:01 +0000

Add redraw_hp to the "Elixir" card. Hide Xom piety on status screen.

--------------------------------------------------------------------------------
38ab563579 | zelgadis | 2007-09-30 06:50:01 +0000

A few improvements to banished() and entry cause tracking.

--------------------------------------------------------------------------------
fc944616f6 | zelgadis | 2007-09-30 05:56:13 +0000

This commit breaks save file compatability.
Lots of new things that amuse/stimulate Xom, and a few things which
don't amuse him as much anymore.  Among the new things is a corpse
turning into a skeleton while butchering it; if this is too harsh to
do just for Xom's amusement (previously turning into a skeleton while
butchering was an ignored case and still produced chunks of flesh) it
can be changed back.  Also, if a Xom worshiper draws the Blank card,
Xom makes it act like a Xom card, since a plain old Blank card is boring.

Keep track of which branch the Orb is in, if the player isn't carrying
it.

Keep track of how/why the player ended up in a particular level type
(Abyss, Pan, etc).

Changed most "a distortion effect" cause strings for distortion caused
tranlsocation miscast effects to something more specific.

Added new wizard commands 'C' to curse or uncruse an item, and 'Ctrl-A'
to re-generate the Abyss.

--------------------------------------------------------------------------------
cc20c6d673 | j-p-e-g | 2007-09-29 13:33:37 +0000

Changing the piety gain messages to be threefold for no piety, little piety (1) 
and lots of piety (> 1). Currently, piety is raised by at most 1 at a point so 
the last one is currently unused. Eventually, we'll want to include that one, 
though. (Although I've got trouble imagining a piety gain greater than, say, 2 
or 3.)

--------------------------------------------------------------------------------
028bc69fd8 | j-p-e-g | 2007-09-29 12:40:55 +0000

Berserking monsters are now noisy with a noise level that befits their 
shout_type.

--------------------------------------------------------------------------------
db14a59ff5 | dshaligram | 2007-09-28 22:58:41 +0000

Fixed possible crash when placing monster bands. Also reworked the mapgen stats 
to give more detailed information.

--------------------------------------------------------------------------------
250bfb5d42 | j-p-e-g | 2007-09-28 22:40:28 +0000

Updating description for "freshness" sorting option.

--------------------------------------------------------------------------------
a779df188c | dshaligram | 2007-09-28 19:42:10 +0000

[1800818] Fixed broken follower tagging for bazaars.

--------------------------------------------------------------------------------
21c54e7245 | dshaligram | 2007-09-28 18:43:36 +0000

Better messages for explore finding multiple non-stacking items (say "two 
leather armours" instead of "leather armour and leather armour").

--------------------------------------------------------------------------------
cc38b1d0b4 | dshaligram | 2007-09-28 14:15:06 +0000

Reintroduced Slime:6 royal-jelly-death marker. [1804113] Corrected spell order 
in Practical Magic.

--------------------------------------------------------------------------------
ab53d4cf73 | dshaligram | 2007-09-28 13:58:05 +0000

Added a sanity check for followers to prevent frozen monsters (cbus). Still 
need to figure out why monsters are getting marked as followers when they 
shouldn't.

--------------------------------------------------------------------------------
f20f0c27dc | j-p-e-g | 2007-09-28 13:01:04 +0000

Whoops, I'd forgotten to change something in a minivault.

--------------------------------------------------------------------------------
d8bc94d0de | j-p-e-g | 2007-09-28 11:59:18 +0000

Adding allow_dup tags to several vaults. (David)

--------------------------------------------------------------------------------
3205c9289f | zelgadis | 2007-09-28 08:27:29 +0000

crawl_state now keeps track of whether or not the current code is being 
executed because of a god's actions, and if so which god (with "actions" not 
including god-supplied invocations).  Currently only used to prevent Xom from 
being amused/stimulated by his own actions.

--------------------------------------------------------------------------------
dc3aa32db0 | zelgadis | 2007-09-28 08:18:33 +0000

Beogh won't smite the player if his idol was destroyed by a monster.

--------------------------------------------------------------------------------
c83c83056e | dshaligram | 2007-09-28 07:58:50 +0000

Fixed issues with substring matches of item names (spears being generated for 
pears) in maps (David). The change also means that item names have to be 
specified in full in map definitions.

--------------------------------------------------------------------------------
d6a80fc099 | dshaligram | 2007-09-27 12:33:29 +0000

remember_name was broken, fixed.
Colour overlays were not being rotated/mirrored, fixed.

--------------------------------------------------------------------------------
c0a429f1bb | dshaligram | 2007-09-27 11:12:22 +0000

Updated canned level-compiler.

--------------------------------------------------------------------------------
5d0c0426d7 | dshaligram | 2007-09-27 11:10:13 +0000

Updated level-design.txt for COLOUR.
Fixed map_lines::clear() not cleaning colour overlay. 

--------------------------------------------------------------------------------
a5f48b90bf | dshaligram | 2007-09-27 10:59:19 +0000

Bumped piety cost for brothers-in-arms and greater healing.
Added COLOUR: directive to maps to allow custom colouring of features
by glyph, and tweaked the strawberry fields variants to use it.

--------------------------------------------------------------------------------
4db647cad8 | dshaligram | 2007-09-27 06:51:32 +0000

Added allow_dup to all bazaar and lab maps.

--------------------------------------------------------------------------------
85c6818ca2 | zelgadis | 2007-09-27 00:26:01 +0000

Allow Pandemonium lesser demon vaults and labyrinth entrances to be duplicated 
within a game.

--------------------------------------------------------------------------------
c1fdfddaf2 | j-p-e-g | 2007-09-26 21:45:01 +0000

Fix wording for translucent rock walls (1798932). Change freshness calculation 
for chunk sorting: all chunks now sorted oldest to freshest, listing rotten 
last for non-Saprovores. Small comment fixes.

--------------------------------------------------------------------------------
729fc414f8 | dshaligram | 2007-09-26 20:33:14 +0000

Fixed Beogh being angered by killing a non-orc friendly with a beam (cbus).

--------------------------------------------------------------------------------
d550998fa8 | dshaligram | 2007-09-26 19:43:53 +0000

Adjusted piety costs for Beogh smiting and Okawaru Haste (cbus/syllogism).
Reduced monster spawn ramp-up in Vestibule.

--------------------------------------------------------------------------------
c9fda02ca9 | dshaligram | 2007-09-26 13:50:10 +0000

Dropped bolt of inaccuracy accuracy. It's probably still be too accurate, given 
the nerf to monster EV vs beams.
Bumped inaccuracy to level 3.

--------------------------------------------------------------------------------
ee273b62d3 | dshaligram | 2007-09-26 12:36:31 +0000

All vaults are now "uniq" (one-use-per-game) by default. Vaults that want to be 
reused must be tagged "allow_dup".

--------------------------------------------------------------------------------
8467a70453 | dshaligram | 2007-09-26 12:25:04 +0000

Fixed missile preservation numbers for sling bullets and javelins.

--------------------------------------------------------------------------------
afb18650f6 | dshaligram | 2007-09-26 11:54:26 +0000

Minivault balancer fix for trunk.

--------------------------------------------------------------------------------
12fa7099be | dshaligram | 2007-09-26 11:27:16 +0000

Removed hard tabs.
Corrected sling bullet description.

Targeting forward wrap-around was broken, fixed.

Dropped damage bonus for kenku clawed-kick.

Don't show {tried} for equipped items.

Removed Elyvilon's protection from high-damage hits even when not praying.

--------------------------------------------------------------------------------
32e72edca6 | haranp | 2007-09-25 23:28:04 +0000

Restore original correct text to MR artifacts.

--------------------------------------------------------------------------------
1dee477edb | dshaligram | 2007-09-25 18:12:02 +0000

* Fixed Vault:8 level being generated with no rune (cbus). * Dropped odds of 
statue vault. * Take note of messages received in dgamelaunch chat. * crawl 
-vscores, etc. should not attempt to create save/morgue directories   (Marc). * 
Changed wording of "Foo wielding bar comes into view" to   "Foo comes into 
view. It is wielding bar.". * Suppress curse status display of monster items. * 
TSO worshippers are no longer warned when stabbing monsters if TSO doesn't   
object to stabbing those monsters. * Wand zap status is now {zapped: N} instead 
of {zapped N times} to reduce   verbosity.

--------------------------------------------------------------------------------
db66c453fc | zelgadis | 2007-09-25 11:07:01 +0000

Prevent Crawl from going into an infinite loop during newgame setup if an 
incompatible class/race combination is specified in the init file.

--------------------------------------------------------------------------------
da6f22d948 | zelgadis | 2007-09-25 08:25:40 +0000

Slight improvement to repeating mutation command.

--------------------------------------------------------------------------------
155664a085 | zelgadis | 2007-09-25 08:00:46 +0000

Make formatted_string::parse_string() split up the string into chunks of 999 
characters or less so that formatted_string::cprintf()'s character buffer 
doesn't overflow.

--------------------------------------------------------------------------------
a2020fe249 | dshaligram | 2007-09-24 20:14:30 +0000

Fixed combat messages for out of sight draining attacks (jarpiain).

--------------------------------------------------------------------------------
6760750eb7 | dshaligram | 2007-09-24 20:08:10 +0000

Added DGL_STARTUP_PREFS_BY_NAME to store new character options by username for 
dgamelaunch.
Dropped ice statue hitpoints to compensate for their immunity to
disintegration.

--------------------------------------------------------------------------------
fa22f87e8f | dshaligram | 2007-09-24 19:25:34 +0000

Refix ?/ error message format to handle 64-bit and 32-bit size_t without 
compiler warning noises.

--------------------------------------------------------------------------------
f8704eab05 | dshaligram | 2007-09-24 19:15:51 +0000

Beogh butcher fix for trunk.

--------------------------------------------------------------------------------
93cfab02c2 | nlanza | 2007-09-24 16:57:57 +0000

Add state.cc to the Xcode build and massage the compile settings to deal with 
the fact that yacc on 10.5 emits code that the compiler's default settings 
don't like -- signed/unsigned comparisons, specifically.

--------------------------------------------------------------------------------
c59a3aac05 | nlanza | 2007-09-24 16:55:50 +0000

Clean up a printf format string to placate the extra-special pickiness of gcc 4 
in newer OS X.

--------------------------------------------------------------------------------
22f5db88e4 | j-p-e-g | 2007-09-24 14:11:22 +0000

A few simple fixes.
* Add zero level invocations to Trog and Ely's religion screens
* Demonspawn get 0-2 additional damage for demonic weapons
  (similar to MD + dwarven weapons)
* Darts and Throwing don't crosstrain anymore
* Don't offer "inscribe items" text during tutorial.
* Cleanup and minor fixes of tutorial

--------------------------------------------------------------------------------
e11dba64d5 | zelgadis | 2007-09-24 10:19:40 +0000

Added some missing cases to various mons_foo_level() functions.
Added mon-pick related function mons_global_level(), which returns
a reasonable level value for monsters independant of the place 
of the monster, primarily useful for comparing the levels of two
monsters which might never show up in the same place (in which
case mons_level() is useless).

--------------------------------------------------------------------------------
ee8bfe9591 | zelgadis | 2007-09-24 05:04:58 +0000

?/ now asks if you want to describe a monster, spell, or feature, and filters 
out matches if they aren't of the desired type.
If there's more than one match, after selecting a match to look at,
exiting from the description will return you to the menu, rather than
to the dungeon.

If you've asked for monsters, you can toggle sorting of the menu
between alphabetical and by aproximated monster toughness (this probably
still needs some work, since it seems to say that ordinary worms are
tougher than brain worms).

Only the monster symbol is coloured when showing a menu of monsters
to describe.

--------------------------------------------------------------------------------
bcbd0cca53 | zelgadis | 2007-09-23 07:15:24 +0000

Nemelex gift deck changes:
* Changed pure deck distribution formula.  All consumable items go
  towards decks of wonder, books and jewellery go towards decks of
  dungeon, and corpses are now valued proportionally to their weight,
  rather than every corpse being of equal value.

* The chance of getting rare and legendary decks increases with
  piety.

* The card countdown (which must be 0 to get a new gift deck) sometimes
  decreases when drawing a card, with the chance increasing with the
  number of piety points gained from drawing the card.

All of this is very tentative and subject to change upon the results of
play testing.

Also, some more optional debugging messages have been added, which can
be activated in a more fine grained manner than DEBUG_DIAGNOSTICS
(DEBUG_CARDS, DEBUG_GIFTS, etc).

--------------------------------------------------------------------------------
44de2042b9 | dshaligram | 2007-09-22 15:34:04 +0000

Removed overly spammy visual messages (specifically, monsters lashing their 
tails).
Fixed butcher weapon-swap crash (David).

--------------------------------------------------------------------------------
e921d91cbd | dshaligram | 2007-09-22 14:31:36 +0000

Fix MinGW complaining about possible uninitialised variables.

--------------------------------------------------------------------------------
6ef42fd11a | dshaligram | 2007-09-22 14:25:42 +0000

Implemented SQLite fronts for dbm_firstkey and dbm_nextkey to fix trunk build 
on Windows.

--------------------------------------------------------------------------------
faa6d08c42 | zelgadis | 2007-09-22 09:21:32 +0000

Added additional optional parameter to item_def::name(), ignore_flags, which 
will cause the name to be constructed as if those item flags had been unset.
Give an auxiliary cause of death for a stat going below 1.  (Death
by stat loss is already pretty rare, and death by stat loss with
confusion as to what caused the stat loss must be *really* rare, but still,
if you were confused about what caused the stat loss that lead to death,
that'd be pretty frustrating)

ouch() is now called from within modify_stat() and lose_stat() right after
the stat is lowered, rather than when the stat is updated on the screen.
This incidentally fixes the minor annoyance of saying "no" to stat loss
death in wizard mode, only to be asked if you want to die every time
the screen is updated until you fix having a non-positive stat.

--------------------------------------------------------------------------------
cce90fadce | zelgadis | 2007-09-22 03:12:44 +0000

Oops, forgot about database case insensitivity again.

--------------------------------------------------------------------------------
94c42a1d74 | zelgadis | 2007-09-22 02:48:12 +0000

If there are multiple matches to the "?/" describe command, then they will be 
displayed in a menu, which the user can select from. Menu entries for monsters 
will be given the same color as the monster, with the monster's symbol added to 
the end of the string.
Entering a single character as input to the "?/" describe command lists
all monsters with that display symbol.

Monsters sharing the same display symbol can now have the same string
appended or prepended to their description (implemented to make the
"?/" command have to deal with less special cases).  Currently only
used by nagas with __N_suffix.  Has the side-effect advantage that
the naga subspicies description and the "attractive/repulsive"
description goes before the big block of quoted text, rather than after
it.

--------------------------------------------------------------------------------
a0fc101bb8 | j-p-e-g | 2007-09-21 15:16:15 +0000

Fixed note taking (NOTE_HP_CHANGE) for invisible monsters (bug 1786776) and in 
general (wasn't working).
Also tweaked tutorial message on burning spellbooks
(Bug 1799350).

--------------------------------------------------------------------------------
d5efde9cb9 | j-p-e-g | 2007-09-21 09:21:44 +0000

Add past tense to visited branches output, and a few corrections.

--------------------------------------------------------------------------------
e1e94ced7a | zelgadis | 2007-09-21 09:18:24 +0000

Oops, '\' is the glyph for staves on Windows.

--------------------------------------------------------------------------------
e6f92f58fb | zelgadis | 2007-09-21 05:11:51 +0000

Can now search the description database by name (keyword) with '?/'. Not adding 
to 0.3-branch yet in case it needs some tweaks.

--------------------------------------------------------------------------------
1640dccce5 | zelgadis | 2007-09-21 02:24:18 +0000

Oops, my "dismiss monsters by regex" change didn't take into account that the 
"debug atuoexplore" debug command uses the dismiss-monsters command.

--------------------------------------------------------------------------------
ad9315b812 | zelgadis | 2007-09-21 00:27:59 +0000

No longer id ego weapons of monsters simply because the monster is already 
wielding them.  However, if a monster wields or unwields a weapon and it gives 
a message like "The dagger is surrounded by flames!", that still id's the ego.
Also, wand zaps by visible monster now update the wand's zap count.

--------------------------------------------------------------------------------
f8e0775778 | j-p-e-g | 2007-09-20 16:58:33 +0000

Cleanup of manual (patches 1798238, 1798239) and of claw mutation as well as 
the breathe poison one (patches 1795977, 1797293). All patches by dolorous.

--------------------------------------------------------------------------------
9b5bc8fd4f | j-p-e-g | 2007-09-20 11:51:22 +0000

Previous commit applied to trunk: * cleanup of weird_colour() * hooves mutation 
one level only * fixes for vampire food level checks * Xom gifts interrupt 
travel

--------------------------------------------------------------------------------
64707c2d56 | haranp | 2007-09-20 10:11:58 +0000

Delays now give their startup messages when they start, rather than when they 
are pushed onto the queue. Fixes 1797499.

--------------------------------------------------------------------------------
2741951b43 | zelgadis | 2007-09-20 07:46:53 +0000

more() should be skipped during any type of key replay, not just command 
repetition.

--------------------------------------------------------------------------------
3f915978c1 | zelgadis | 2007-09-20 06:27:28 +0000

Inscribing an item with "=p" will, for Nemelexites, prevent just that item from 
being sacrificed; "!p" still prevents an entire stack of items from being 
sacrificed, and the prompt message for "!p" is now clearer on that. Also, 
explictly marked stashes are never sacrificed by Nemelxites.

--------------------------------------------------------------------------------
826d3ffff4 | zelgadis | 2007-09-20 05:47:52 +0000

Was clearing the list of remembered get_input_line() lines at the wrong time.

--------------------------------------------------------------------------------
d3f595570c | zelgadis | 2007-09-20 04:26:28 +0000

A number of "gain mutation" debug command improvements:
* The name given is now a simple name (fast, clever, etc) matching
  the enumeration name, rather than the description of when you
  first get the mutation.

* The name can be "any" to get a random mutation, or "xom" to get a
  random Xom mutation.

* If the player has the resist mutation mutation, the command asks
  if you want to get rid of it.

* You can force a mutation to happen, so that it will happen in spite
  of mutation resistance mutation, mutation resistance amulet,
  already being covered in too many scales, and so on.

Other wizard command improvements:

* The dismiss all (genocide) command can now take a regex of the monsters
  to dismiss, rather than dismissing all of them.

* The heal and super-heal wizard commands now never make you engorged.

--------------------------------------------------------------------------------
ce4c865a65 | zelgadis | 2007-09-20 04:18:24 +0000

Mutations 'green marks' was being miscounted as mutation #64, rather than the 
correct #65, leading to there being the wrong number of entries in the mutation 
tables.

--------------------------------------------------------------------------------
5eca8b99d3 | zelgadis | 2007-09-20 00:02:32 +0000

Fixed =/== typo.

--------------------------------------------------------------------------------
c39a070f13 | haranp | 2007-09-19 23:28:26 +0000

Fix for memory corruption when reading savefiles.

--------------------------------------------------------------------------------
7b52c20fd2 | zelgadis | 2007-09-19 22:56:46 +0000

Input buffer needs to be flushed if the first iteration of command repetition 
is canceled.
Repetitions of searching and go-nowhere weren't being interrupted.

Wasn't generating activity interrupts for AI_FULL_MP and AI_FULL_HP.

--------------------------------------------------------------------------------
5e4ca0912a | j-p-e-g | 2007-09-19 22:54:50 +0000

Fixing a number of bugs on throwing nets, so it's all in all a net improvement. 
;)
I'm reusing item.plus2 as a marker for trapping 
monsters or not. AFAIK, missiles don't need those, 
and it makes stacking so much easier.

Gladiators start with Throwing skill 1, except for
Kobolds (don't get a net) who get an additional level
at Dodging.

--------------------------------------------------------------------------------
bb7663ad4d | j-p-e-g | 2007-09-19 17:58:35 +0000

Highlighting species in aptitudes list, and added the "." command to help 
screen. I've added some "\n" to make it look nice (on Windows) but it's looking 
differently on Linux. *shrugs*

--------------------------------------------------------------------------------
ae6c83ec9f | zelgadis | 2007-09-19 08:55:18 +0000

This change moves the logic for when a level or branch prohibits teleport 
control from the C++ code into the vault .des files.  This is done with the 
additions of two things:
* Changeable, persistent per-level and per-branch flags which affect
  game play.

* Dungeon events for the killing of monsters, picking up of objects
  and changing of features.

The current level and branch flags are for teleport control
prevention, making a level unmappable (like the Abyss or a Labyrinth),
and preventing magic mapping from working (like the Abyss or a
Labyrinth).

Some related changes:

* The new .des header KMASK allows for dungeon grid masks like
  no_monster_gen to be applied to specific symbols rather than the
  entire vault.

* If the wizard mapping command (&{) is used in a place which is
  unmappable, it will ask if you wish to force the area to be mappable
  (so you can see what an entire Labyrinth or Abyss level looks like
  without having to hack the source).

* A new wizard-mode level-map command, 'T', will teleport the player
  to wherever the cursor is pointing.

--------------------------------------------------------------------------------
4958b84b49 | zelgadis | 2007-09-19 06:42:50 +0000

Introduces three new wall types, translucent versions of the normal rock wall, 
stone wall and permanent rock wall.  These are for use in vaults, and are never 
randomly generated.  Magically translucent versions of the normal wall types 
are used, rather than glass, so we don't have to figure out how glass would 
react to things like digging and Shatter, but can re-use the code for the 
normal wall types.
I've tried to fix all the places where the old code assumes that any
square which is visible to the player has no walls between it and the
player, but I've probably missed lots; this will require a lot of play
testing before its ready for non-developers.

viewwindow() now has two calls to losight(), the second one
determining what squares would be visible if all translucent walls
were made transparent, so that there's a quick way to see if there's
any translucent walls between the player and a square.  This second
call to losight() doesn't cause any noticeable slowdown for me, but it
might on an older system.

Other than viewwindow() making a second call to losight(), there
shouldn't be any changes to game-play or game-logic if there aren't any
translucent walls around.

The wizard blinking command (&b) has been changed so that it ignores
all normal restrictions except for needing to see the target square and
not landing on monsters; if the player lands on a wall square it's
changed to floor.  Wizard blinking also doesn't increase magical
contamination.

--------------------------------------------------------------------------------
63318a4b57 | zelgadis | 2007-09-19 04:18:53 +0000

If wizard mode is on when going through a portal to a bazaar, Crawl will ask 
the user for the name of a bazaar map to load (minus the "bazaar_" at the front 
of the name); escape or enter can be pressed to get a random map.
Adds new wizard command 'P', to create portal-vault-portals to arbitrary
destinations (though any desitnation but "bazaar" will currently cause
an assertion when the portal is entered).

Adds new map marker class map_wiz_props_marker, which can be used by
wizard commands to create a map marker with abritrary properties.

--------------------------------------------------------------------------------
5b3a525f14 | zelgadis | 2007-09-19 03:10:09 +0000

Removed detailed_hunger option, the hunger states near starving, very hungry 
and very full are now always displayed.

--------------------------------------------------------------------------------
5e0f84b95b | zelgadis | 2007-09-19 02:01:24 +0000

"newly seen" vs "already seen" context was missing for see-monster activity 
interrupt data.

--------------------------------------------------------------------------------
725cb5b4d5 | zelgadis | 2007-09-19 01:19:56 +0000

Added new commands "re-do previous command" (bound to `) and "repeat next 
command" (bound to 0).  Though this is just an interface change, it changes 
code in the core input processing function (input() in acr.cc), and also messes 
around with the input buffer, so it could probably do with more testing before 
merging it into the 0.3 branch.

--------------------------------------------------------------------------------
1a36197574 | j-p-e-g | 2007-09-18 15:54:14 +0000

Applying modified (by me) mutation patches of dolorous', mostly clean-up and 
output changes.
* More consistent output for Centaurs and chars with 
  hoof mutation (patch 1794849).

* Remove "deterioration" (ghouls type) from % screen. d. is
  right in that this was misleading. (1795995)

* Change "no piety" message for Yredelemnul. Okay, this is
  not mutation-related and of no consequence to boot (Yred
  doesn't accept offerings), but why not? (1796199)

* Mutation output now lists unremovable mutations first
  (innate and demonspawn).

It's all fairly small stuff, but is it small enough to 
branch? I think yes, but asking doesn't hurt, right?

--------------------------------------------------------------------------------
759ebd2999 | j-p-e-g | 2007-09-18 13:37:01 +0000

Hopefully repeat my previous changes for trunk: documentation and index/offset 
fix.

--------------------------------------------------------------------------------
cce3b76b7a | dshaligram | 2007-09-17 20:21:17 +0000

Merged newgame fixes and compile fixes for dgamelaunch patches to trunk.

--------------------------------------------------------------------------------
f23a9759ef | dshaligram | 2007-09-17 19:30:46 +0000

Trunk is now 0.4.

--------------------------------------------------------------------------------
ec2a8faa2b | dshaligram | 2007-09-17 07:03:46 +0000

Update CREDITS.

--------------------------------------------------------------------------------
44a546c7ad | haranp | 2007-09-17 05:53:14 +0000

Different messages for piety gain/no piety gain when sacrificing. Doesn't take 
the piety slowdowns at high piety (this is semi-intentional.)

--------------------------------------------------------------------------------
b134ff6ce0 | zelgadis | 2007-09-17 05:43:59 +0000

If an item selected for multi-drop is inscribed with "!d" or "!*", and the user 
answers "no" when asked if they're sure about it, that item is removed from the 
list of items to drop, rather than cancelling the entire multi-drop.

--------------------------------------------------------------------------------
429ed8cf12 | haranp | 2007-09-17 05:05:46 +0000

1746240: selective amnesia now level 4.

--------------------------------------------------------------------------------
a3f59ae03a | zelgadis | 2007-09-17 05:01:15 +0000

Nemelexites never autopray; this fixes the problem of autopraying on restarting 
a game due to default_autoprayer being set.  Also, Nemelex prayers are now 
always duration 1, even if the player has a high piety.

--------------------------------------------------------------------------------
d94cb0f81c | zelgadis | 2007-09-17 04:10:22 +0000

Added talk_visual to list of channel names in initfile.cc.  Also updated 
crawl_options.txt to be current with the list of 0.3 message channels.

--------------------------------------------------------------------------------
0bc0079462 | zelgadis | 2007-09-17 02:55:58 +0000

A handful of new game options:
menu_colour_prefix_id, if set to true, causes the identification state
of an object to be prefixed to the string menu colour regexes are
matched against (but does not alter the string displayed on the screen).

menu_colour_prefix_class, if set to true, prefixes the object's base type
to the string menu colour regexes are matched against.

user_note_prefix can be set to a string which will be prefixed to
manual user notes when they are displayed, to make them easier to find.

detailed_hunger, if set to true, will cause three new informational-only
hunger states to be displayed: near starving, very hungry and very full.

--------------------------------------------------------------------------------
27a123d677 | zelgadis | 2007-09-17 00:38:40 +0000

D:1 save file wasn't being deleted when game ended; fixexd.

--------------------------------------------------------------------------------
522907df5d | haranp | 2007-09-16 22:36:32 +0000

Refix gcc pickiness fix to conform to haranp-dislikes-C-style-casts-pickiness :)

--------------------------------------------------------------------------------
70eae80f57 | nlanza | 2007-09-16 22:32:19 +0000

Signed/unsigned comparison build fix for gcc pickiness -- ARRAYSIZE wraps 
sizeof(), which is unsigned.

--------------------------------------------------------------------------------
01d7369a6e | haranp | 2007-09-16 22:31:06 +0000

Explosions no longer trigger a more() if you don't see any squares of the 
explosion. Fixes 1790761.

--------------------------------------------------------------------------------
5f8d478fba | j-p-e-g | 2007-09-16 22:03:45 +0000

Updating documentation. (David)

--------------------------------------------------------------------------------
b01c84211a | haranp | 2007-09-16 22:02:06 +0000

Fixed a bug where entomb() wasn't checking DNGN_SPECIAL_FLOOR. entomb() now has 
a power which determines the probability of building a wall at each square 
(capped at 95%.) You should hit the cap at Evoc 21 on a plain deck with no 
Nemelex support, maybe this is too soon (but maybe not.)

--------------------------------------------------------------------------------
8d408bcec2 | j-p-e-g | 2007-09-16 21:51:20 +0000

Applying patches by dolorous: 1794789: Move "Xom is BORED" message into god 
channel 1795785: remove redundant check for potions of blood 1795673: 
claw-related clean-ups and enforcing consistency in transformations and claws 
(Lich and Statue retain claws, Ice Beast doesn't).
I also added a check for hooves and claws mutation for the 
% and [ you_can_wear output.

--------------------------------------------------------------------------------
1179b3508f | haranp | 2007-09-16 21:45:09 +0000

Shops could show up in Abyss/Pan. Oops. Will only show up in dungeon now.

--------------------------------------------------------------------------------
41df906d34 | haranp | 2007-09-16 21:34:30 +0000

Elemental summoning shouldn't leak information on invisible monsters [1768784]

--------------------------------------------------------------------------------
191abc5194 | haranp | 2007-09-16 21:25:47 +0000

Battlelust rage effect changed to 'building rage': you will go berserk next 
turn. (You can drink a !oBR to cancel the effect. Another rage card effect, 
however, will just stack on and make you go berserk the next turn.) Breaks 
savefiles.

--------------------------------------------------------------------------------
9eacafdb2d | haranp | 2007-09-16 20:55:41 +0000

Fixed dead code in monstuff.cc [1783674, zelgadis]

--------------------------------------------------------------------------------
43df9d851f | haranp | 2007-09-16 20:38:28 +0000

Fix broken compile (missing #include)

--------------------------------------------------------------------------------
9d74ad5fb0 | j-p-e-g | 2007-09-16 16:44:48 +0000

Yet another change to monster speech and silencing...
I found my previous change to block all messages passed 
through MSGCH_TALK when silenced was too restrictive, so
I've added another channel MSGCH_TALK_VISUAL and adapted the
monster speech files accordingly. For example, imps can now
also "talk" when silenced, but only the visual stuff will
actually be output. (This automatically takes care of 
lowering the output likelihood.) And no, this doesn't hurt 
any, as visual talk also won't interrupt travel or resting.

And I added a how-to file on monster speech, which was the
main reason for my silence during the last couple of hours. 
It's not that the database system is that complicated but it 
surely can't hurt to give players who want to add something 
an idea of what is possible and how to go about it.

--------------------------------------------------------------------------------
9505de5609 | zelgadis | 2007-09-16 06:25:35 +0000

A number of cosmetic changes to the messages given by up_stairs() and 
down_stairs().

--------------------------------------------------------------------------------
fc901a9eed | zelgadis | 2007-09-16 06:22:42 +0000

Get &| (make unrand/fixed artefacts wiz command) to make the Horn of Geryon as 
well.
Give more informative message when player tries to go through a stone arch.

--------------------------------------------------------------------------------
2c172ba370 | zelgadis | 2007-09-16 04:59:21 +0000

just_created_level was false when D:1 was generated for a brand new game; 
fixed.  Also fixes crash-at-start bug for the recent detailed-turn/kills 
chardump patch.

--------------------------------------------------------------------------------
813cc1215d | zelgadis | 2007-09-16 04:36:54 +0000

Oops, accidently checked in my local makefiles; sorry.

--------------------------------------------------------------------------------
b33809153c | zelgadis | 2007-09-16 03:49:23 +0000

Didn't have svn autoprops set properly for the new files that I added for my 
code refactoring.

--------------------------------------------------------------------------------
dcf7801daf | zelgadis | 2007-09-16 03:39:41 +0000

Add dump sections for branch/area details for turns and experience/kills, with 
the section names being turns_by_place and kills_by_place.  Also includes a 
"visits" dump section (included in the "misc" section") a brief description of 
the number of branches/levels/areas/etc you visited.
Breaks savefile compatibility.

--------------------------------------------------------------------------------
cf87ca2673 | zelgadis | 2007-09-16 00:46:32 +0000

In the item selection menu, pressing "." will toggle the next item in the list; 
you can press "." repeatedly to select/unselect a number of contiguous items.
Also, removed the depedancy upon "menu.h" for formatted_string, since that
isn't in menu.h anymore.

--------------------------------------------------------------------------------
6ed4daf41b | zelgadis | 2007-09-16 00:18:09 +0000

Make CLUA_BINDINGS the default for unix builds.

--------------------------------------------------------------------------------
66655ac9ab | nlanza | 2007-09-16 00:03:04 +0000

Add missing AppHdr.h includes for these new files to un-break the Mac build.

--------------------------------------------------------------------------------
02b150533f | nlanza | 2007-09-16 00:02:34 +0000

Update the Xcode build for Matthew's recent refactor.

--------------------------------------------------------------------------------
f14f1ca7e8 | zelgadis | 2007-09-15 23:59:07 +0000

Make "svn status" ignore files generated by the lexer and parser generators.

--------------------------------------------------------------------------------
e348f91f85 | zelgadis | 2007-09-15 23:54:02 +0000

Make "svn status" ignore the files makefile.dep, saves, morgue, crawl and 
macro.txt

--------------------------------------------------------------------------------
fa763ba1bc | zelgadis | 2007-09-15 23:33:50 +0000

Split off portions of externs.h and enum.h into other files.  The 
crawl_environment, player and monsters classes have been left in externs.h, 
which necessitates that all of the enums references by those classes stay in 
enums.h, since you can't forward declare an enum.  However, it's a start.
Also, portions of misc.{cc,h} have been split off into traps.{cc,h},
place.{cc,h} and terrain.{cc,h}

--------------------------------------------------------------------------------
4d88632cb9 | nlanza | 2007-09-15 23:32:04 +0000

Fix up the Xcode build.

--------------------------------------------------------------------------------
67eb7c2e6f | j-p-e-g | 2007-09-15 21:47:52 +0000

Fixed warning inscriptions for 'r' and 'P'. Added a message when trying to look 
at the beam path of a spell that doesn't need one. (AFAIK, it's only spells 
that have this behaviour. Should this not be the case, or should this ever 
change, the message will have to be adapted.)

--------------------------------------------------------------------------------
be3a188d2d | j-p-e-g | 2007-09-15 20:39:15 +0000

Applying patches by dolorous: 1795373: level-2 carnivorous mutation gets 
another          description to differentiate the levels 1795116: more 
levitation cleanups (using you.flies()) 1794858: cleanup for vampires and fangs 
mutation

--------------------------------------------------------------------------------
89162833bc | j-p-e-g | 2007-09-15 20:32:51 +0000

Applied Enne's fix to 1795522: "show_beam shouldn't work when just looking..."
While I was at it, I also added another parameter 
needs_path that is set to false for spells that can be 
applied directly to a target (SPFLAG_GRID, SPFLAG_TARGET)
such as Smiting, Conjure Flame or Freezing Cloud, so for 
these the initial beam path doesn't show, even if the
option should be set to true.
Note "initial beam path" - you can still toggle it to 
show the path anyway. For cases such as this we might
enforce not drawing the path but there would have to be
some kind of feedback, so the player doesn't go crazy
trying to toggle the option. ;)

I'll probably do it later, once I've found a way to give 
the information. Or would that be too spoily, in any case?

--------------------------------------------------------------------------------
5991be809a | j-p-e-g | 2007-09-15 15:51:39 +0000

HANDS_DOUBLE -> HANDS_TWO (rather than HANDS_HALF). I hope I found the correct 
place to change it. Also does this need to be balanced somehow?
Paralysed monsters are now stabbable. Anything else 
doesn't make a lot of sense. Now this might make
paralysis too strong, so maybe we need to up the MR 
threshold and/or make the spell more expensive.

Also fixed a minor bug that had paralysed monsters
changing places when leaving the level for a short enough
period for the enchantment to still be in place.

Conjure flame cannot be placed on the player's position.
(Bug 1793587).

--------------------------------------------------------------------------------
1a2eb5c482 | j-p-e-g | 2007-09-15 15:33:21 +0000

Fixed a bug that made silence last forever. This also meant moving "Your 
hearing returns." where it belongs, thus fixing 1773460.
I also moved a couple of messages (namely weapon noises, and
hell effects) into MSGCH_TALK and MSGCH_SOUND, both of which
now are ignored as travel stoppers. I didn't check all 
instances of potential talk and noises, but if there are 
cases where we want a message to always stop resting, we 
could move the message in question to MSGCH_WARN or 
MSGCH_MONSTER_SPELL. Conversely, there's probably lots of 
stuff around that could also get ignored.

Users can still specify messages in stop_travel that will 
interrupt both rest and travel. (There's currently no
distinction, and I made no changes on that account.)

--------------------------------------------------------------------------------
2072d2654f | j-p-e-g | 2007-09-14 15:32:03 +0000

Whoops, overlooked something with abominations. Moving the check directly into 
mons_holiness, so now it should work for all cases.

--------------------------------------------------------------------------------
26d2503517 | j-p-e-g | 2007-09-14 15:04:48 +0000

Fixing bugs:  - butterflies stay confused, even when reentering levels    (Bug 
1793061)  - Hunters with Bow/Crossbow don't get Shields skill    (FR 1762819), 
it sends the wrong message  - abominations count as undead regardless of 
colour, at least    the ones created via Twisted Resurrection (Bug 1784326)

--------------------------------------------------------------------------------
5f0047a467 | j-p-e-g | 2007-09-14 10:58:08 +0000

Another round of patches, namely: 1794580, 1794576 and 1794376 by zelgadis, and 
1794388, 1794372, 1794368 by dolorous.

--------------------------------------------------------------------------------
1de6c3e73b | j-p-e-g | 2007-09-14 09:52:44 +0000

Another addition to the list of what Xom likes (1794004). Small fix for special 
floor and entombment.

--------------------------------------------------------------------------------
e527aced94 | j-p-e-g | 2007-09-14 09:44:49 +0000

Make weapon noises more interesting (FR 1748813). Noisy weapons are now 
incredibly chatty and like to imitate dungeon noises, except the Singing Sword 
which usually sings and sometimes feels chatty. The underlying prob of making 
noises is unchanged.

--------------------------------------------------------------------------------
e89ce29b91 | j-p-e-g | 2007-09-13 20:34:09 +0000

Add trap_item_brand that behaves like stair_item_brand. Defaults to 'none'. (FR 
1793669)

--------------------------------------------------------------------------------
d733df05e5 | haranp | 2007-09-13 17:31:31 +0000

Changed unwield_item() to actually unwield the item, and to have it unwield 
your weapon rather than something arbitrary (I found no cases in the code where 
this wasn't what was wanted.)
Implemented some of David's deck changes:
- decks weigh half as much
- names changed
- Draw Card doesn't cost piety; cost upped to 2 MP
- Nemelex card power bonus now applies even when not praying
- Damnation can now banish extra targets (your own chance of banishment
remains the same.)
- Nemelex doesn't accept sacrificed decks.

--------------------------------------------------------------------------------
74114bc4fe | j-p-e-g | 2007-09-13 14:46:23 +0000

Add confirmation before stepping on known magical traps. (part of FR 1793669). 
Added description for reaching ego (bug 1792851). Added sorting statement 
before showing item knowledge, so items of the same class now are sorted 
alphabetically.

--------------------------------------------------------------------------------
42fe04c577 | j-p-e-g | 2007-09-13 12:24:05 +0000

Applying patches 1793701 (dolorous), 1793683 and 1793679 (both zelgadis), and 
1793603 (ennewalker).
Also default yesno() when choosing a religion to 'no'.

--------------------------------------------------------------------------------
1f89164a2b | dshaligram | 2007-09-13 12:12:09 +0000

Updated CREDITS.

--------------------------------------------------------------------------------
bdf7790e17 | j-p-e-g | 2007-09-13 11:20:50 +0000

Cleaning up magic mapping. Patch by dolorous.

--------------------------------------------------------------------------------
40e4b8b58a | j-p-e-g | 2007-09-12 15:40:30 +0000

Applying Enne's database.cc cleanup patch (1792896).

--------------------------------------------------------------------------------
4c5c3809de | j-p-e-g | 2007-09-12 15:29:36 +0000

Applying Matthew's stacking patch. (1793051)

--------------------------------------------------------------------------------
c6d355577a | j-p-e-g | 2007-09-12 14:51:46 +0000

Applying patches 1792155 (quaffing from fountains) and 1792110 (undead food 
handling).

--------------------------------------------------------------------------------
7fd519911a | j-p-e-g | 2007-09-12 14:44:16 +0000

Another change to how bazaars look. All floor squares around shops (in bazaars) 
get coloured yellow. (David likened this to light flooding the street.) Lava on 
red floor get converted to water, and deep water on blue floor is substituted 
by lava or shallow water.

--------------------------------------------------------------------------------
7c23003073 | j-p-e-g | 2007-09-11 15:12:33 +0000

Fix 1792307 and 1790913, both small stuff.

--------------------------------------------------------------------------------
2ffa0bd35f | j-p-e-g | 2007-09-11 14:47:48 +0000

Changed the look of bazaars.
Here, walls will always be golden (yellow) and the floor
will be any of blue, red, lightgreen, lightblue, magenta or
green, depending on the dungeon depth (modulo 6). This
might be a bit weird, but guarantees the same colour
regardless how often the map is redrawn. Also, bazaars 
should be sufficiently rare for that not to matter.

Removed all SHUFFLE statements in bazaar.des about
wall type - it's all rock now.

--------------------------------------------------------------------------------
1081ec416f | j-p-e-g | 2007-09-11 11:55:15 +0000

Updating manual. (David)

--------------------------------------------------------------------------------
e301d18c8f | j-p-e-g | 2007-09-11 11:39:55 +0000

Reintroducing Throwing.
s/SK_RANGED_COMBAT/SK_THROWING
Only thrown weapons, darts and slings train Throwing
and benefit from this skill. Added Slings/Throwing and
Darts/Throwing to the cross training pairs in skill2.cc.

For most cases ranged combat could be simply replaced with
throwing. For some, such as effSkill in item_use.cc or
starting skills I tried to choose reasonable replacements.

--------------------------------------------------------------------------------
7b339ae5ff | j-p-e-g | 2007-09-11 11:29:55 +0000

Updating help screen.

--------------------------------------------------------------------------------
d5f99b33e0 | j-p-e-g | 2007-09-10 18:21:32 +0000

Identification overhaul part II. Okay, not really. ;)
Applying Matthew's latest patch (1789869): Identify items 
you see monsters use.

--------------------------------------------------------------------------------
6e2e9d806a | j-p-e-g | 2007-09-10 15:05:31 +0000

Changed requirements for auto-identification of equipped items, specifically 
jewellery and randarts. The goal of this change was to clear up the 
identification rules and apply them consistently. It was inspired by FR 1788698.
* Like the ring of teleportation, =lev and "rage now only
  autoID if you do not wear/wield a randart with the same
  property.
* Stat changes caused by randarts always give a message.
* Other "obvious" changes give a message only if the 
  randart has not been identified, to avoid message spam.
  (Obvious refers to attributes that would cause the item
   to be autoID'd if it were the appropriate sub type.)
* Randarts do NOT autoID anymore just because you recognize
  the base type.

On the whole, autoidentification becomes much rarer (thus 
both the scroll and the spell become more valuable). Yes,
this might be too harsh. On the upside, the player is told 
about properties such as stat changes (including AC and EV) 
and all evokable abilities. 
We might even include information about items hindering or 
preventing spellcasting and teleportation, respectively, 
under the assumption that skilled spellcasters and chars 
with teleportitis or teleport control would notice.

--------------------------------------------------------------------------------
9dc1f94fe8 | j-p-e-g | 2007-09-10 14:34:45 +0000

Modified wand effects, so that - you cannot enslave already friendly monsters 
(1789757) - good gods don't mind inadvertent use of draining (first part of 
1789189)

--------------------------------------------------------------------------------
bad0d9c9cf | j-p-e-g | 2007-09-10 10:35:21 +0000

A couple level.des changes. (David)

--------------------------------------------------------------------------------
dea58872ad | j-p-e-g | 2007-09-10 09:59:37 +0000

Applying several patches by dolorous: * 1789774: intrinsic mutations for undead 
* 1790380: kobold special handling of disease * 1790723: missing periods * 
1791092: Xom potion handling
It's arguable whether we want such fine distinction between
races. As David pointed out, small things of lesser 
importance might clutter the mutations screen. For now, I
think transparency is good. And if it seems to much, we 
could remove a few. 

--------------------------------------------------------------------------------
a821a5c347 | j-p-e-g | 2007-09-10 09:48:48 +0000

A few general fixes: Fix 1791185: Memory overrun. Patch provided by ennewalker. 
Fix 1789803. Again, patch by ennewalker. Fix 1790486: Throwing nets and 
launchers.

--------------------------------------------------------------------------------
2ae0f20477 | dshaligram | 2007-09-10 09:37:10 +0000

Fixed broken install target in makefile.unix (cbus).

--------------------------------------------------------------------------------
8e904ab062 | dshaligram | 2007-09-07 15:06:00 +0000

Turfed out obsolete orange crystal statue and silver statue features.
Moved MINMOVE and MINSEE brain damage into the dungeon_feature_type enumeration
where it is clearer what they represent.

Fixed ice statues not being appropriately affected by Shatter and Lee's.

Moved 'v' examine hint information and feature notability into feature_def
flags.

--------------------------------------------------------------------------------
1a6365fbd2 | j-p-e-g | 2007-09-06 15:04:32 +0000

Fix 1708493: corpses being butchered turning into skeletons, yet not, and 
leaving clean chunks. Strange stuff!
I also added a restriction to build_river() and build_lake()
so that staircases or branch entries/exits don't drown. This
might still result in stairs in the midst of a lake but that
is vastly better than no stairs at all, as probably happened
with 1787377. Now I don't know whether this was even played 
a part in that occurence, but I didn't find anything else in
dungeon.cc that might have caused it.

And YAY, I'm a member!

--------------------------------------------------------------------------------
64df040347 | dshaligram | 2007-09-06 11:43:06 +0000

Updated credits.

--------------------------------------------------------------------------------
6608eef87f | j-p-e-g | 2007-09-05 20:48:05 +0000

Added a message when Condensation Shield is extended (inspired by BR 1763077) 
and removed double levitation extension if flying. Also, rods don't give the 
surge message anymore as spell enhancers are ignored anyway. Added message to 
show when a weapon of reaching is being used. (FR 1781922)

--------------------------------------------------------------------------------
88fd21a557 | j-p-e-g | 2007-09-05 14:17:12 +0000

Fixing more bugs.
1788159: Mummy priests don't get potions either.
1787377: Lugonu's Banish doesn't work on self
1786808: More feedback for travelling.
1784235: Randomized staff descriptions.
1774996: /random effect autoIDs for fireball
1768803: Extended inscription warning use.

--------------------------------------------------------------------------------
8f913bcaf6 | j-p-e-g | 2007-09-05 00:05:57 +0000

Added two command hints: 'v'iewing for certain features, and how to turn 
autopickup/autoprayer on again after an encounter with an invisible creature.
I also modified selection of book shops, so the offered 
books are more likely to be different. This changes 
balance in that on the whole more books are present, so
maybe we should simply throw duplicates out rather than
reroll. Oh, and manuals are now even rarer than before.
Maybe they should be excepted from this new rule.

--------------------------------------------------------------------------------
288e44e259 | j-p-e-g | 2007-09-04 23:57:21 +0000

Another one with a multitude of (smallish) changes.
- Fixed 1788033, 1787436, 1782862.
- Modified basename, so it's a bit more useful and it's
  seeing use when not switching back during butcher.
- Mummy Wanderers won't get a potion.
- NOTE_XP_LEVEL_CHANGE notes "real" hp/mp.

--------------------------------------------------------------------------------
763ef75bd1 | j-p-e-g | 2007-09-04 14:55:20 +0000

Nuke a compilation warning on Windows. Add bazaars to level-design.txt.

--------------------------------------------------------------------------------
9cb9f38335 | j-p-e-g | 2007-09-04 11:36:06 +0000

Forgot to add the text files. Whoops...

--------------------------------------------------------------------------------
ebe3faa645 | j-p-e-g | 2007-09-04 11:32:42 +0000

Implementing patch 1775415 (outsourcing monster speech) by zelgadis. Currently, 
shout.txt and speak.txt share in with the .des files in /dat. That should be 
changed, but I've no idea how to do this.
Also implementing a bug fix by ennewalker (1787428).

--------------------------------------------------------------------------------
746b402561 | j-p-e-g | 2007-09-04 10:41:46 +0000

More general stuff.
- Beogh's water walk ability != swimming
- monsters won't throw nets at you if you're already caught
- Moved a few more messages into MSGCH_EXAMINE_FILTER.
- Added information on new options.

--------------------------------------------------------------------------------
b330585db3 | j-p-e-g | 2007-09-03 20:06:19 +0000

In my previous commit I also moved equipment slots around, so the spears of 
Berserkers start at 'c'. Now I did the same for Merfolk Hunters (javelins).
Also: removed enforced random weapon for Chaos Knights
(FR 1772666). I am very much aware of the reason behind this
rule (chaos = randomization), but a) it probably _does_ lead 
to startscumming, b) we do not wildly randomize gods or 
stats, and c) the weapons are not important enough to really 
enforce this. All IMHO, of course.

--------------------------------------------------------------------------------
fcbe444382 | j-p-e-g | 2007-09-03 19:02:56 +0000

Another variety of changes.
1. Food
- Fix bug 1784968.
- make sausages count as carnivorous food
- make pizza message respect carni/herbivorousness

2. Skills and items
- added note_all_skill_levels as a shortcut for
  note_skill_levels = 1..27
- changed skill progress colour to CYAN
- Harold and Jozef get throwing nets

Also:
- Berserkers can still open and close doors, but they
  do this none too gently and make a lot of noise
- corrected a few mistakes in spells.txt

--------------------------------------------------------------------------------
45f61ca035 | j-p-e-g | 2007-09-03 14:01:14 +0000

A few small changes: - KoGl don't start with throwing nets as they can't really 
  use them; currently no replacement. (bug 1786889) - fire_items_start defaults 
to 'c' - potion of resistance also grants poison resistance

--------------------------------------------------------------------------------
22e5db9d1e | j-p-e-g | 2007-09-03 13:41:30 +0000

Implementing patch 1772497 (improvement to runrest.lua by zelgadis). Also added 
notes for getting penance, and small fix (patch 1786893 by dolorous).

--------------------------------------------------------------------------------
f553db7a4e | j-p-e-g | 2007-09-02 17:02:58 +0000

Added description to Slime Pit entry. (David)

--------------------------------------------------------------------------------
9cf59da62c | j-p-e-g | 2007-09-02 16:03:58 +0000

Corrected some spell names in spells.txt.

--------------------------------------------------------------------------------
914e4acb03 | j-p-e-g | 2007-09-02 13:33:06 +0000

Implementing patch 1783079 (improved inscriptions) by zelgadis.

--------------------------------------------------------------------------------
9d37693a7e | j-p-e-g | 2007-09-02 12:49:43 +0000

Two vampire fixes by dolorous: patches 1782673 and 1784964.

--------------------------------------------------------------------------------
c14c22125f | j-p-e-g | 2007-09-02 12:48:06 +0000

Implementing patches 1782667 (Lugonu) and 1786390 (Xom), both by dolorous.

--------------------------------------------------------------------------------
0d2fd7a12b | j-p-e-g | 2007-09-02 12:40:44 +0000

Implemented patch 1773718 (improved wizard commands) and patch 1783003 
(ímproved menu sorting), both by zelgadis.

--------------------------------------------------------------------------------
b367d7d62f | j-p-e-g | 2007-09-02 11:42:11 +0000

Fix explosions through walls (patch 1777426, zelgadis).

--------------------------------------------------------------------------------
dbe9fa6e03 | j-p-e-g | 2007-09-02 10:02:07 +0000

Two tiny changes to vault levels. (Small fix.)

--------------------------------------------------------------------------------
a102e4b134 | j-p-e-g | 2007-08-31 08:57:00 +0000

Added shields as potentially unwearable/restricted in you_can_wear. Mummies 
shouldn't autopickup known =sustenance.

--------------------------------------------------------------------------------
440223d779 | j-p-e-g | 2007-08-30 19:34:53 +0000

Added two new message channels: * MSGCH_EXAMINE (examine surroundings in 
direct.cc), and * MSGCH_EXAMINE_FILTER (as above for "less important" cases)
The latter is filtered out of the message history (hence the 
name) and includes items/features out of sight and "Floor."

--------------------------------------------------------------------------------
54c7a6d407 | j-p-e-g | 2007-08-30 19:20:35 +0000

Players never got caught in nets thrown by monsters -> fixed

--------------------------------------------------------------------------------
2e5c80c5f2 | j-p-e-g | 2007-08-30 14:40:48 +0000

Several bugfixes.
In no particular order:
+ Beogh shouldn't care about you attacking non-orc friends.
+ Mummies don't get "Food" listed as ability costs.
+ corrected order of invis flickering
+ modified (and tidied) you_can_wear checks and output
+ added ']' command to list currently worn equipment (inv)
+ wielded cursed items can no longer be fired
+ Wanderers no longer get inappropriate armour
+ Fixed "bad item" message for confirm-inscribed items
+ copied "Discharge" to "Static Discharge" in spells.txt
(Maybe we should remove the first, but I was unsure about
 that, so I left it for now.)

--------------------------------------------------------------------------------
26daf2e137 | j-p-e-g | 2007-08-27 13:03:15 +0000

Add "held" to enchant_names array. Thanks to Enne!

--------------------------------------------------------------------------------
5f2ca6e7a8 | j-p-e-g | 2007-08-26 09:55:32 +0000

Added some bazaar layouts. (I hope that's okay.) Also DNGN_EXIT_PORTAL_VAULT 
now accepts the '<' shortcut on the level map.

--------------------------------------------------------------------------------
5c7d640f2c | j-p-e-g | 2007-08-25 20:47:27 +0000

A few minor changes. Bugfixes:  - vampire bats couldn't untransform  - / of 
polymorph other do not autoID if you zap at yourself

--------------------------------------------------------------------------------
cb76f80426 | j-p-e-g | 2007-08-24 11:39:43 +0000

Finally fixed pickup.lua to work as intended (I hope).
Other small changes:
     - default yesno for renouncing religion to 'n'
     - plants and fungi aren't "interesting", even when OOD
     - added WIZ designator to listed saved characters

--------------------------------------------------------------------------------
a42cf25232 | j-p-e-g | 2007-08-23 18:52:05 +0000

Monsters coming up or down staircases will now be chosen according to the 
destination. And yes, this does mean that occasionally an elf summoner will 
cross the Orc/Elf border etc, which could make things harder. On the other 
hand, that's just one staircase out of (at least!) seven, and monsters entering 
the level through the upstairs will likewise be a bit easier.

--------------------------------------------------------------------------------
72acf198cb | j-p-e-g | 2007-08-23 14:54:37 +0000

Fixed a crash. My bad.

--------------------------------------------------------------------------------
73f8eb9c41 | j-p-e-g | 2007-08-22 22:52:58 +0000

A few small fixes: - undead get "Forgot to exist" instead of "breathe" - 
sleeping monsters now wake up if whacked by other monsters - added 
"(shapeshifter)" to death cause - place_monster calls apply_location_effects in 
case   monsters get summoned onto traps and the like

--------------------------------------------------------------------------------
30ea1167a8 | j-p-e-g | 2007-08-22 16:58:15 +0000

Added verbose hiscore output to char_dump, and mostly changed morgue 
information to past time, e.g. "Vehumet was exalted by your worship." (The 
exception being mutations.) I admit this was very low priority, but it has 
always bugged me.
Included new options (explore_stop for gates and 
dump hiscore) in the relevant documentation.

--------------------------------------------------------------------------------
6346b53cc0 | j-p-e-g | 2007-08-22 11:02:10 +0000

s/CAUGHT/HELD/ Gladiators now start with 4 nets.

--------------------------------------------------------------------------------
ae558c387a | j-p-e-g | 2007-08-22 07:25:57 +0000

A few small message changes and additions, mostly concerning portals. Oh, and 
portals will now stop travel just like other interesting features.

--------------------------------------------------------------------------------
96a447410e | j-p-e-g | 2007-08-22 07:16:50 +0000

Condensed monster descriptions.
This has two effecs:
1. Monster name and equipment are combined in one line, and
   enchantments are condensed as well.
2. It's now "The monster wielding a foo comes into view."

--------------------------------------------------------------------------------
60d6f32de9 | j-p-e-g | 2007-08-22 07:09:51 +0000

A few additions to throwing nets.
Flying monsters could now fall into a pool if also confused, 
otherwise you cannot trap them with a net.
Also special cases for a few other monsters.

--------------------------------------------------------------------------------
e87a10675f | j-p-e-g | 2007-08-20 23:33:00 +0000

A few small changes: - self targetting for "bad" wands defaults to 'n' - 
switching weapons for dissection ignores wield_warning - nets do damage 0 
(really)

--------------------------------------------------------------------------------
037b6326b7 | j-p-e-g | 2007-08-20 22:22:04 +0000

Throwing nets again.
Added a number of functions that allow to 
differentiate between a net that currently
traps a monster and one that doesn't, even
if they are on the same square. This usually
works but can fail if there's already a net
lying on the target square.

--------------------------------------------------------------------------------
5b618acbca | j-p-e-g | 2007-08-20 12:23:38 +0000

Added throwing nets. These still need work, and thus are not for 0.3. Obviously.
Summary: 
New item type MI_THROWING_NET. 
The enchantment of a net describes its state, i.e. 
whether it's brand-new or almost falling apart 
(happens at -8).

New attribute ATTR_CAUGHT (for monsters ENCH_CAUGHT)
that means the victim cannot move and instead 
struggles against the net until it manages to wriggle 
out of it (takes a while depending on size) or it 
is destroyed.
Monsters can still use items and spells when trapped.

New trap type TRAP_NET that currently is the only
source of throwing nets, though Gladiators (and some
types of hunters maybe?) should start with a few, and
David suggested also allowing the creation of nets 
for shops.

--------------------------------------------------------------------------------
7ca7077ed3 | dshaligram | 2007-08-19 11:46:56 +0000

Use "jewelled" as canonical spelling.
Dropped OOD generation again.

--------------------------------------------------------------------------------
f7400641cf | dshaligram | 2007-08-18 19:32:13 +0000

Moved rotten meat prompt into its own function.

--------------------------------------------------------------------------------
e00fd0d4e3 | dshaligram | 2007-08-18 19:27:07 +0000

Increase initial flood of neutral monsters when invoking Corruption.

--------------------------------------------------------------------------------
2380cbb78d | dshaligram | 2007-08-18 19:19:21 +0000

Fixed crash when using travel to waypoint or Lugonu's Corruption on a level 
with a Lua marker.

--------------------------------------------------------------------------------
31998f2e74 | j-p-e-g | 2007-08-18 18:51:47 +0000

While levitating you can't quaff from fountains. Non-saprovore characters are 
now prompted when trying to eat rotten chunks. I'd really prefer completely 
refusing to eat that stuff but David did point out that someone might like to 
gamble with the mutations - even though it's only bad ones? Really don't know 
about that one.

--------------------------------------------------------------------------------
beda9fdab0 | dshaligram | 2007-08-18 18:32:16 +0000

Nemelex prayer is now one-turn only.

--------------------------------------------------------------------------------
f7ee6def91 | dshaligram | 2007-08-18 18:27:01 +0000

Card-summon dancing weapons no longer leave the weapon behind.
Reworded some of the extra god help, removed unnecessary meta-information
about Trog not needing Invocations and Nemelex using Evocations. Such things
can be left to the player to discover without affecting their enjoyment of
the game.

Extra religion help is now in lightgrey (darkgrey presents display problems
on 8-colour terms).

--------------------------------------------------------------------------------
50924ea61c | dshaligram | 2007-08-18 16:04:09 +0000

Velocity card now uses Swift+Fly instead of Swift+Lev.

--------------------------------------------------------------------------------
e39198243f | dshaligram | 2007-08-17 22:30:02 +0000

Fixed -morgue option being ignored when Crawl is built with Lua bindings (Marc).
Dropped generation odds of Pan demons post-Orb.

--------------------------------------------------------------------------------
48b1b54aaf | dshaligram | 2007-08-17 22:20:13 +0000

Fixed map marker crashes.
Reduced size of Pan demon bands summoned post-Orb (cbus).

--------------------------------------------------------------------------------
78698f0432 | j-p-e-g | 2007-08-17 19:28:40 +0000

Modified god descriptions (dpeg) and added prayer information to the rest of 
the gods. Please check this, I've probably overlooked something.

--------------------------------------------------------------------------------
32ddb09f01 | dshaligram | 2007-08-17 16:21:27 +0000

[1775520] Sling bullets are no longer throwable.
Fixed formatted_string's add_glyph methods not handling wide characters.

--------------------------------------------------------------------------------
cb1a4eab76 | j-p-e-g | 2007-08-16 19:20:45 +0000

Yet another tutorial update ... and Sif Muna finally gets those other titles.

--------------------------------------------------------------------------------
5fc6dd64fe | dshaligram | 2007-08-16 16:42:29 +0000

No txt files left in dat/ (VN).

--------------------------------------------------------------------------------
054c713cec | j-p-e-g | 2007-08-15 21:32:33 +0000

More stuff for the tutorial: - Enhanced handling of spellbooks and artefacts. - 
Feature descriptions now cover altars. - Added monster descriptions (out of 
depth and brands).
Also: 
- space-only inscription counts as no inscription
- ring of teleportation autoID's if no teleport randart

In my last commit I forgot to mention that the 
descriptions were suggested by Richard Gould, and
I'd like to give credit where credit is due. :)

--------------------------------------------------------------------------------
54f595ca30 | dshaligram | 2007-08-15 18:44:14 +0000

Fixed lua_file not being processed correctly when Crawl is installed with make 
install.
Fixed makefile.unix to copy description text files to the right places.

--------------------------------------------------------------------------------
4b21d1d60d | dshaligram | 2007-08-15 12:59:30 +0000

[1773753] Split and sort the description db input file (zelgadis).

--------------------------------------------------------------------------------
474793c763 | j-p-e-g | 2007-08-14 23:23:49 +0000

Inscribing now only works for items in inventory.

--------------------------------------------------------------------------------
99b051c4e4 | j-p-e-g | 2007-08-14 21:46:31 +0000

Improved tutorial with extensive information on items as well as a few 
features. A bit of a clean-up and a few additions.

--------------------------------------------------------------------------------
e458eb5067 | dshaligram | 2007-08-14 18:44:10 +0000

Made some more minivaults non-rectangular.

--------------------------------------------------------------------------------
cd555474f0 | j-p-e-g | 2007-08-14 09:19:12 +0000

More equipment information on the % screen, this time for transformations, plus 
additional curse checks. Also added "mutation" messages for hungry vampires.

--------------------------------------------------------------------------------
40bbbb4b3e | j-p-e-g | 2007-08-13 19:34:42 +0000

Added message to mutation and overview screen about not being able to wear some 
kinds of equipment.

--------------------------------------------------------------------------------
e788bbaa89 | dshaligram | 2007-08-13 18:05:30 +0000

Silenced some valgrind warning noises.

--------------------------------------------------------------------------------
7f8610e3e3 | dshaligram | 2007-08-13 16:45:46 +0000

[1772551] Fixed crash when triggering a trap in tutorial.

--------------------------------------------------------------------------------
7a1f76b86c | dshaligram | 2007-08-13 16:33:05 +0000

Accelerate monster generation in the Vestibule after the player spends enough 
time there. Needs more tuning.
[1773000] Fixed tracer crash, mea culpa.

--------------------------------------------------------------------------------
9b663069fe | j-p-e-g | 2007-08-13 15:54:31 +0000

Allow inscription when viewing items. This also works in shops which I think is 
okay.

--------------------------------------------------------------------------------
a9ce7ae8b2 | dshaligram | 2007-08-12 16:29:43 +0000

Manual update (David).

--------------------------------------------------------------------------------
912e177812 | dshaligram | 2007-08-12 15:57:40 +0000

Bazaar updates (David).
Mark bazaar entry points using feature markers so the player enters at the
right place even if the bazaar uses stone arches as decorative elements.

--------------------------------------------------------------------------------
a42060983a | dshaligram | 2007-08-11 21:14:12 +0000

Fixed tracers to handle neutrals.

--------------------------------------------------------------------------------
e9e1be789c | dshaligram | 2007-08-11 20:56:55 +0000

Give Lugonu Banishment and Corruption. I've left the old Bend Space in, because 
there needs to be an invocation that can train Invocations, and Banishment is 
too costly to use for everyday training.
Corruption is still a first-cut, needs more work and playtesting:
- Terrain modification is one-time only. Creeping modification requires too
  much savegame magic.
- The monsters gated in during the corruption effect are occasionally hostile,
  but mostly neutral. Neutrals will attack hostile monsters and also pets,
  but will leave other neutrals and the player alone (in general). A neutral
  that wants to go somewhere, but finds the player in the way will still take
  a swing at the player.
- Beams are still not fixed to handle neutrals correctly (so neutrals do not
  target and shoot right yet), will fix soon.

Breaks save compatibility.

--------------------------------------------------------------------------------
4c51cdab68 | dshaligram | 2007-08-10 21:48:01 +0000

[1771495] Fruit tree minivaults did not substitute placeholder a with floor, 
fixed.

--------------------------------------------------------------------------------
c06d8ce894 | dshaligram | 2007-08-10 19:28:32 +0000

God gifts were broken for Nemelex, Zin, and Yredelemnul, fixed (thanks, cbus).

--------------------------------------------------------------------------------
816d78e08c | j-p-e-g | 2007-08-10 00:42:07 +0000

Overhaul of species/class combinations (overall 36 combinations added, 26 
removed)
Magical classes
---------------
Cj: -MD
En: +Gn, -MD
He: +Gn, +Ha, -HO, -SE
Re: +MD, -Dr
St: +Ha, -HO
Su: +Mu, -HE
VM: -Dr
Wr: +Dr, +Ha
Wz: +Mu

all Elementalists: -Ce

Fighter classes
---------------
As: -HE, -Mu
Be: +MD, +SE
CK: -Dr
Cr: +MD, +Mf
DK: -Dr
Fi: -DE, -Dr, -GE, -Mu
Gl: +Ko, +Og, -MD
Hu: +DE, +Og
Mo: +Ce, -DE, -HE
Pa: +Ce, +Mf
Pr: +DS, +Mu (both Y. only), +Ha, +Ko
Th: +Sp, -Dr, -GE, -HE
Wn: +Ce, Dr, HO, Ke, Ko, Mf, Mu, Na, OM, SE, Vp

--------------------------------------------------------------------------------
61bdb29321 | j-p-e-g | 2007-08-09 20:28:33 +0000

Targetting changes: 1. when the current target is you, this is now shown 2. 
wraparound includes you for TARG_ANY and TARG_FRIEND (Unfortunately I can't get 
this to work for '-', so it  only works in one direction.) 3. "... looks 
unstable" message moved to mstuff2 for consistency with the reversal message 4. 
teleportation is now of type TARG_ANY

--------------------------------------------------------------------------------
7aad8aac57 | dshaligram | 2007-08-09 18:14:13 +0000

[1769972] Better handling of rogue markers.

--------------------------------------------------------------------------------
4e368c369b | dshaligram | 2007-08-09 17:24:25 +0000

Oops, missed s/jewelry/jewellery/ when reverting other changes.

--------------------------------------------------------------------------------
65bf8d320e | dshaligram | 2007-08-09 16:59:57 +0000

Item class name is now "jewellery", not "jewelry" for consistency (David).
Added &O command to show the number of turns used by explore to fully-explore
the (reachable areas of) the current level.

--------------------------------------------------------------------------------
e6a1240317 | dshaligram | 2007-08-09 11:03:22 +0000

[1770625] Allow generated monster names in &M.
Removed sealed entry vaults.

--------------------------------------------------------------------------------
2783491ec3 | dshaligram | 2007-08-09 10:29:26 +0000

Fixed incorrect use of It vs Something in attack messages.

--------------------------------------------------------------------------------
9de07a95e2 | dshaligram | 2007-08-07 17:06:48 +0000

[1768747] Altar prayer is no longer possible while levitating.

--------------------------------------------------------------------------------
ba26ce50c0 | dshaligram | 2007-08-07 16:43:33 +0000

[1767871] Monsters should not pick up runes.

--------------------------------------------------------------------------------
3991b8185e | dshaligram | 2007-08-07 16:12:07 +0000

Added bounds check for berserk monsters looking for a target.
Dropped berserk duration again.

--------------------------------------------------------------------------------
c07fe0536a | dshaligram | 2007-08-07 15:45:31 +0000

Brothers-in-Arms set berserk dur = abjuration dur so the summon goes away when 
the berserk wears off.

--------------------------------------------------------------------------------
a6bf377cd3 | j-p-e-g | 2007-08-07 11:38:26 +0000

Whoops, stupid last-second editings! Anyway, now Trog's Brothers in Arms will 
actually vanish when they stop berserking and vice versa.

--------------------------------------------------------------------------------
97e92d9bde | j-p-e-g | 2007-08-07 11:06:30 +0000

+ Berserking monsters attack the nearest enemy. + Makhleb gets a different 
saccing message. + When praying while DUR_PRAYER you can stop praying. Yes, I 
realize that the question is awkward but I really don't want to force players 
to lose two turns if all they wanted was to prolong their prayer when they're 
not busy fighting, especially as it's always worked this way before. By now I 
think that toggling between prayer/non-prayer probably _is_ the way to go, 
after all, but first we need to make sure that Vehumet (anyone else this 
concerns?) has some obvious drawbacks.

--------------------------------------------------------------------------------
39aaf43b67 | dshaligram | 2007-08-06 07:21:40 +0000

[1759803] Use more common set intersection character for shop entrances in 
cset_unicode (dolorous).

--------------------------------------------------------------------------------
e75df7aa86 | dshaligram | 2007-08-05 18:06:38 +0000

Fixed MinGW complaining about possibly uninitialised variables.

--------------------------------------------------------------------------------
00226cf520 | j-p-e-g | 2007-08-05 11:16:36 +0000

Fixed crash resulting from trying to berserk unsuccessful summons. (Brothers in 
Arms)

--------------------------------------------------------------------------------
bd48438b14 | j-p-e-g | 2007-08-05 10:28:14 +0000

Tutorial bug fix. Added message for rotten sacrifice attempts.

--------------------------------------------------------------------------------
67bcc60d62 | haranp | 2007-08-04 22:00:02 +0000

Type-safety on mpr() and friends channel argument.

--------------------------------------------------------------------------------
af65a4e054 | haranp | 2007-08-04 21:43:38 +0000

Minor code review of the Beogh idol revenge and Trog/Ely destruction stuff. Xom 
won't protect you from Beogh revenge, too capricious for that.

--------------------------------------------------------------------------------
e51a590bee | j-p-e-g | 2007-08-04 20:53:33 +0000

Tweaked piety gain for burning books (Trog ability).

--------------------------------------------------------------------------------
1f3c5a4d49 | j-p-e-g | 2007-08-04 20:28:33 +0000

More varied messages upon DNGN_ORCISH_IDOL destruction, suggestions courtesy of 
dpeg.

--------------------------------------------------------------------------------
48334a9c4f | j-p-e-g | 2007-08-04 20:01:10 +0000

Finally added vampiric bite attack. Thanks to Jarmo for the underlying patch.
Only vampires can turn into vampire bats, other species
transform into normal bats, so can't draw blood.

--------------------------------------------------------------------------------
b7705078f8 | j-p-e-g | 2007-08-04 19:52:19 +0000

Modified lair.des (dpeg)

--------------------------------------------------------------------------------
e1517f56c2 | dshaligram | 2007-08-04 15:43:07 +0000

Lab entry diagnostic message was not conditionalised, fixed.
Updated canned lexer.

--------------------------------------------------------------------------------
831eb7a181 | dshaligram | 2007-08-04 15:39:17 +0000

[1767432] Fixed labyrinth with sealed exit.
Increased minimum distance of labyrinth entrance from center.

Fixed gly_point() not working correctly because map transforms were not
applied.

Fixed lexer ignoring (and echoing) newlines on marker continuation lines.

--------------------------------------------------------------------------------
40e2d7d94c | j-p-e-g | 2007-08-04 13:15:07 +0000

Part two of godly changes.
Trog's abilities Might and Haste have been replaced with
Regeneration (Trog's Hand) and summoning (Brothers in Arms).

Right now, berserking summonings don't behave as intended
as they'd rather follow the player than attack a monster
closer to them. Also, they should disappear when Berserk
runs out.

God gifts of Trog and Okawaru are now tweaked towards damage
(Trog) or accuracy (Oki). In general, gifts no longer need 
praying to appear. Right now, this means that they're more
likely (I think), so the gift timeout numbers will probably
have to be changed.

I've also done the much-needed update of tutorial.cc, so
that it now gives correct information about praying, saccing
and escape hatches.

--------------------------------------------------------------------------------
80c38b0682 | dshaligram | 2007-08-04 09:53:52 +0000

Fixed acquirement giving unwearable armour (Iaido).

--------------------------------------------------------------------------------
0f6113e43a | haranp | 2007-08-04 09:36:41 +0000

Fix typo in spell miscast message (dolorous, 1765835)

--------------------------------------------------------------------------------
55772ba95b | j-p-e-g | 2007-08-03 20:51:16 +0000

First part of godly changes.
Ely now has "Destroy Weapon" ability, and Trog "Burn Books".
The latter is very powerful as it explicitly allows burning
monsters, which is cool but might be too strong. I couldn't
think of a rationale for Trog not to allow this, though.

Also, all killings are now accepted without prayer, and 
sacrifice-loving gods won't acccept rotten corpses anymore.

--------------------------------------------------------------------------------
606e14406e | j-p-e-g | 2007-08-02 18:45:25 +0000

Restrictions during bat form. Disallowed a number of actions.

--------------------------------------------------------------------------------
84a922b5d5 | j-p-e-g | 2007-08-02 18:30:04 +0000

Beogh now punishes those who destroy orcish idols.

--------------------------------------------------------------------------------
a9c9cc2e37 | j-p-e-g | 2007-08-02 14:47:56 +0000

Another case of unfound coord_def. Thanks, Darshan!

--------------------------------------------------------------------------------
cff828d19f | dshaligram | 2007-08-02 14:30:28 +0000

Fixed older gccs croaking on anon object.

--------------------------------------------------------------------------------
de726cf12f | dshaligram | 2007-08-01 18:10:20 +0000

[1756736] Fixed thrown items getting stuck in walls.

--------------------------------------------------------------------------------
db8e73adb1 | dshaligram | 2007-08-01 17:08:29 +0000

[1758272] Use cancelable_get_line for inscriptions.

--------------------------------------------------------------------------------
ed0cc79742 | dshaligram | 2007-08-01 16:49:40 +0000

Labyrinth entry points are now a guaranteed minimum distance away from the exit.
Exits from bazaars are treated as rock stairs instead of stone stairs.

--------------------------------------------------------------------------------
e263305343 | dshaligram | 2007-07-31 19:11:16 +0000

Remove -O3, which appears to cause issues on 64-bit compiles (Zaba).

--------------------------------------------------------------------------------
b8dc4775b9 | dshaligram | 2007-07-30 16:16:41 +0000

Added spears to fire order, & as an alias for X in autopickup option, removed 
travel_exclude_radius2, corrected feature names in level-design.txt. (David).

--------------------------------------------------------------------------------
3c989a01d3 | dshaligram | 2007-07-30 03:43:01 +0000

Fixed feature timeout not working right for bazaars.

--------------------------------------------------------------------------------
e1eaf149bf | dshaligram | 2007-07-29 17:19:00 +0000

Handle dungeon event listeners correctly when shifting terrain.

--------------------------------------------------------------------------------
199d107c9f | dshaligram | 2007-07-29 17:10:16 +0000

&L can place encompass levels, and is more aggressive about overwriting 
existing dungeon features. Dungeon features of importance - such as stairs, 
shops, and altars - and map markers are shifted out of the way, to the nearest 
free floor square.

--------------------------------------------------------------------------------
1fef821214 | dshaligram | 2007-07-29 13:10:13 +0000

Update canned level-compiler.

--------------------------------------------------------------------------------
86963da1ad | haranp | 2007-07-28 11:34:58 +0000

Fixed two misnamed spells in descriptions [1761393]

--------------------------------------------------------------------------------
c1d7119705 | dshaligram | 2007-07-28 08:53:11 +0000

Explicit marker activation is only necessary when dgn_place_map is called after 
level-generation is complete.

--------------------------------------------------------------------------------
307bc94b14 | dshaligram | 2007-07-28 08:49:24 +0000

Added description for dgn_place_map().

--------------------------------------------------------------------------------
5549c15ba7 | dshaligram | 2007-07-28 08:42:47 +0000

Added wizmode &L command to place a map on the current level by name. This only 
really works for non-encompass vaults, and dungeon fixups are not applied (so 
random deep water -> shallow water conversion, auto-placement of water 
creatures, etc. will not happen).

--------------------------------------------------------------------------------
9b909453a2 | dshaligram | 2007-07-27 17:26:00 +0000

Reworked Bazaars as a special case of portal vaults. The level-type is now 
called portal vault. The dungeon builder bases its behaviour on the 
level_type_name, which must be set as the "dst" property on the portal leading 
to the bazaar/portal vault.
Added WELCOME: directive to .des files to allow maps to specify a welcome
message when the player enters the level (only relevant to encompass maps).

Readjusted kenku flight speed.

--------------------------------------------------------------------------------
e3698852a2 | dshaligram | 2007-07-27 10:50:32 +0000

Full fix for unholy Windows crasher bug.

--------------------------------------------------------------------------------
b6c2aec77d | dshaligram | 2007-07-27 06:19:58 +0000

Rearranged credits.

--------------------------------------------------------------------------------
b5751a0043 | dshaligram | 2007-07-27 06:06:15 +0000

Updated credits.

--------------------------------------------------------------------------------
1a9602b010 | dshaligram | 2007-07-27 05:24:32 +0000

Fixed player_AC so that Armour skill bonuses are not lost to integer math.

--------------------------------------------------------------------------------
6b2c02a7b3 | dshaligram | 2007-07-27 05:00:26 +0000

Fixed maddeningly obscure crash on Windoze (Marc Thoben).

--------------------------------------------------------------------------------
813cd0c65e | haranp | 2007-07-26 13:29:39 +0000

Removed 'gate self to pandemonium' mutation (it's still in the code, you just 
can't get it.) [1760699]

--------------------------------------------------------------------------------
68d7b1915d | haranp | 2007-07-26 13:14:47 +0000

Be kinder to Makhlebite demonspawn [1760652].

--------------------------------------------------------------------------------
6037fb313c | haranp | 2007-07-26 12:37:25 +0000

Changed Nemelex description (David.)

--------------------------------------------------------------------------------
24936f8280 | haranp | 2007-07-26 11:47:35 +0000

Added rod of venom [1701655]. Redid some braindead staff handling. Breaks 
savefiles.

--------------------------------------------------------------------------------
dae15d11b2 | dshaligram | 2007-07-26 11:30:02 +0000

Update level compiler.

--------------------------------------------------------------------------------
f2a19d9971 | dshaligram | 2007-07-26 11:06:09 +0000

Replaced timed markers with Lua markers. Breaks save compatibility.
KFEAT: feature names are now as in the dungeon_feature_type enum.

--------------------------------------------------------------------------------
bc1a549047 | haranp | 2007-07-25 18:48:31 +0000

Fix another wording problem (dolorous)

--------------------------------------------------------------------------------
153412729c | haranp | 2007-07-25 18:47:32 +0000

Fixed vampire crash (big oops) - dolorous [1759816].

--------------------------------------------------------------------------------
6c0752bc11 | haranp | 2007-07-25 00:15:27 +0000

Monster poly capitalisation fix.

--------------------------------------------------------------------------------
5d4fe27300 | dshaligram | 2007-07-24 11:38:36 +0000

Fixed buggy unarmed attack messaging.

--------------------------------------------------------------------------------
5e887cdbac | dshaligram | 2007-07-24 09:02:38 +0000

[1749272] Fixed view update issues: - Redraw view when entering a new level 
before allowing monsters on the   level to act. - Monsters are redrawn on the 
view as and when they move, instead of   postponing the view update to the end 
of turn. - Beam animations and monster redraws force a view update if the view 
is   stale (such as when a beam is shown during travel and travel_delay =   -1).

--------------------------------------------------------------------------------
0ff119e29e | dshaligram | 2007-07-24 06:48:19 +0000

Tweaked bazaar portal timeout. Bazaars may now replace normal shops.
Fixed broken dungeon connectivity checks.

Include math lib in Lua interpreters.

--------------------------------------------------------------------------------
496a1fc6bb | dshaligram | 2007-07-24 05:55:19 +0000

Added support for colon-prefixed Lua one-liners in .crawlrc, documented Lua 
fragment syntax sketchily.

--------------------------------------------------------------------------------
0ce4685c4f | dshaligram | 2007-07-24 05:34:35 +0000

Allow NetHack-style OPTION=foo,!bar,baz:x lines.

--------------------------------------------------------------------------------
edbb46d293 | haranp | 2007-07-23 22:12:21 +0000

More spoken monster lines (lemuel - 1748862)

--------------------------------------------------------------------------------
14e2ff9652 | haranp | 2007-07-23 21:20:39 +0000

[1758414] evoke_deck wrongly assumed that the deck was wielded.

--------------------------------------------------------------------------------
c2509f5ac9 | haranp | 2007-07-23 21:05:51 +0000

Randart reverted to additive MR. (and by the way, I forgot to note that the 
previous commit could break saves)

--------------------------------------------------------------------------------
b97996cd4e | haranp | 2007-07-23 20:59:37 +0000

Added potions of resistance, which give fire, electricity and cold resist for 
10 + random2(40) turns. Rareness roughly equivalent to levitation. This is FR 
1756363. The potion does *not* give MR. Rewrote some vampire potion handling, 
including some changes: e.g. vampires can now be paralysed by potions of 
paralysis (I don't see why they shouldn't be.) For now there is no status 
message for fire/cold resist; will change soon.

--------------------------------------------------------------------------------
1bfc2ce563 | dshaligram | 2007-07-23 17:33:45 +0000

[1759102] Waypoints were being shown on the level-map even after being deleted.

--------------------------------------------------------------------------------
7e8a32831f | dshaligram | 2007-07-23 17:11:56 +0000

Allow monster symbols to be customised using the mon_glyph option.

--------------------------------------------------------------------------------
74306af7d8 | dshaligram | 2007-07-23 13:49:49 +0000

Bazaar vaults were being placed in the main dungeon, fixed.

--------------------------------------------------------------------------------
041bb51cbf | dshaligram | 2007-07-23 13:34:16 +0000

[1757173] Ask user to type "yes" in full to quit. Compulsive quitters can still 
macro some key to Qyes\{13}.
Allow macros to enter text in cancelable_get_line prompts.

--------------------------------------------------------------------------------
78367ed834 | dshaligram | 2007-07-23 12:59:16 +0000

[1756807] Rock stairs officially renamed to escape hatches.

--------------------------------------------------------------------------------
c41c70ecb4 | dshaligram | 2007-07-22 18:35:25 +0000

Fixed compile error (ftruncate wants unistd.h, which is not already included 
for DOS and Windows).

--------------------------------------------------------------------------------
b9ea1d41f6 | dshaligram | 2007-07-22 16:05:48 +0000

Set dgl compiles to use a 1000 entry scoreboard.
Fixed a potential race condition when writing scores.

--------------------------------------------------------------------------------
28ca45a435 | dshaligram | 2007-07-22 09:56:57 +0000

[1758070] Mottled dragons are now magenta D.

--------------------------------------------------------------------------------
a141fc0331 | haranp | 2007-07-22 09:43:36 +0000

Fixed unnecessary bat-transformation ability when already in batform. Redid how 
bat durations are handled. (both by dolorous, 1757094, with a minor bugfix.)

--------------------------------------------------------------------------------
5eeb46e537 | haranp | 2007-07-22 09:34:37 +0000

Non-vampires were getting the vampire hungriness stealth bonus, fixed 
(dolorous, 1756994)

--------------------------------------------------------------------------------
6f33d4ae99 | haranp | 2007-07-22 09:30:35 +0000

Fixed broken instant-Lugonu-access-to-first-power (dolorous, 1758116) My bad.

--------------------------------------------------------------------------------
0b74d68828 | dshaligram | 2007-07-22 05:57:33 +0000

Map updates (David).

--------------------------------------------------------------------------------
f5e19148b9 | haranp | 2007-07-22 00:17:41 +0000

PCs who start with spells should always have Spellcasting skill, even if 
they're from non-magically-apt races.

--------------------------------------------------------------------------------
184808a401 | haranp | 2007-07-21 22:59:54 +0000

Batform is an ability, not an invocation.

--------------------------------------------------------------------------------
c7204a0af4 | haranp | 2007-07-21 22:06:47 +0000

[1757888] yell() was leaking information about invisible monsters.

--------------------------------------------------------------------------------
f513b211ca | haranp | 2007-07-21 21:25:28 +0000

Missing period (BDR)

--------------------------------------------------------------------------------
ddba1bc505 | haranp | 2007-07-21 18:26:58 +0000

Added a Draw Card invocation for Nemelex, which lets you draw a card from a 
deck in inventory. Using Peek Deck now loses 1d2 cards from the peeked deck.

--------------------------------------------------------------------------------
9c3ecfbada | dshaligram | 2007-07-21 12:54:02 +0000

Updated level-design.txt with a mention of markers.
Minor cleanup, fixes.

--------------------------------------------------------------------------------
9843737e73 | dshaligram | 2007-07-21 12:17:29 +0000

Updated level-design.txt.
Moved map markers to mapmark.cc.

Added support for timer markers that remove a feature after a certain timeout.
Need to hook up messaging to Lua.

Added bazaars (need more bazaar layouts).

--------------------------------------------------------------------------------
b27a757b68 | dshaligram | 2007-07-20 11:40:25 +0000

Updated travel to allow it to use rock stairs.

--------------------------------------------------------------------------------
ab67965301 | dshaligram | 2007-07-19 12:31:32 +0000

Added elf arrival vaults (Eino).
Tweaked dungeon builder so you always land on { on level 1 of a branch (using a
map marker to identify which stair was a {).

Maps with the "uniq" tag will be used only once in a game. Maps with a
"uniq_foo" tag will be used only once, and will also prevent any other maps
tagged "uniq_foo" from being used thereafter. Breaks saves.

Oklob plants should not receive stab brands, fixed.

--------------------------------------------------------------------------------
73eb0f7786 | haranp | 2007-07-19 10:06:17 +0000

Minor fixes from dolorous [1756345, 1755657]

--------------------------------------------------------------------------------
72897b887b | dshaligram | 2007-07-18 19:08:06 +0000

New temple, oklob Lair entry and random vaults. (David)

--------------------------------------------------------------------------------
57161ca7c1 | dshaligram | 2007-07-18 17:47:09 +0000

Fixed dummy Lair entry (Eino).

--------------------------------------------------------------------------------
280290a5fa | dshaligram | 2007-07-18 16:31:53 +0000

[1754412] New rock stair behaviour: rock stairs take you to the nearest point 
on the target level that is connected to at least one stone stair.

--------------------------------------------------------------------------------
1d98e2f425 | dshaligram | 2007-07-17 23:17:42 +0000

Mummy priests and greater mummies should be I_HIGH, not I_PLANT.

--------------------------------------------------------------------------------
84dc39fcc3 | haranp | 2007-07-17 19:31:22 +0000

Minor cleanups.

--------------------------------------------------------------------------------
b64722cfd0 | dshaligram | 2007-07-17 17:35:41 +0000

Use "Something" instead of "It" as the noun for out-of-LOS monsters.

--------------------------------------------------------------------------------
3a2ded4dde | dshaligram | 2007-07-17 17:17:30 +0000

Give healers one extra level of Invocations instead of one level in Shields 
(ike).

--------------------------------------------------------------------------------
ee0480642d | haranp | 2007-07-17 17:08:26 +0000

[1754323] Punctuation in bat ability message.

--------------------------------------------------------------------------------
13042cd4fb | haranp | 2007-07-17 16:59:25 +0000

[1732208] Removed some post-berserk messages. Made duration handling somewhat 
more consistent.

--------------------------------------------------------------------------------
7ecb5a3d3c | j-p-e-g | 2007-07-17 16:30:41 +0000

More vampire tweaks, mostly concerning fighting and feeding issues. Oh, and 
they're poison resistant now.

--------------------------------------------------------------------------------
eaf527f9e3 | dshaligram | 2007-07-17 08:50:36 +0000

Added Drink Blood to conduct descriptions.
Corona + Invisibility colour change should happen only for PCs that cannot
see invisible.

--------------------------------------------------------------------------------
be396d1e31 | j-p-e-g | 2007-07-16 21:51:37 +0000

Some more vampire tweaks, mostly concerning food.

--------------------------------------------------------------------------------
8874ed0e6e | dshaligram | 2007-07-16 21:41:58 +0000

Handle missing ch_autopickup function correctly.

--------------------------------------------------------------------------------
5d158ddd45 | j-p-e-g | 2007-07-16 21:37:24 +0000

pickup lua again, this time with Vampires included

--------------------------------------------------------------------------------
fefb960118 | j-p-e-g | 2007-07-16 21:29:35 +0000

Added a pickup lua that controls what will be picked up in some more detail (a 
LOT more detail for potions).
Where to add this for crawlrc?

Also, while I appreciate being listed as author of
trapwalk.lua, I'd rather not have my email address shown.

--------------------------------------------------------------------------------
e7a17eb5cd | dshaligram | 2007-07-16 21:28:32 +0000

Oops, debug_set_xl was conditionalised by DEBUG_DIAGNOSTICS, not WIZARD, fixed.

--------------------------------------------------------------------------------
53608e7b95 | dshaligram | 2007-07-16 12:56:21 +0000

Applied Eino's hunter patch: sling-using hunters get sling bullets, merfolk 
hunters start with javelins.

--------------------------------------------------------------------------------
9ed029fc3e | dshaligram | 2007-07-15 18:25:07 +0000

Removed CHANCE I used for testing, oops.

--------------------------------------------------------------------------------
62cfec6f0b | dshaligram | 2007-07-15 18:20:37 +0000

&^X allows you to set experience level directly in wizmode.

--------------------------------------------------------------------------------
b9dc53d4ac | dshaligram | 2007-07-15 16:26:11 +0000

.des file reoraganisation (Eino).
Fixed luadgn misreporting error line numbers.

--------------------------------------------------------------------------------
433a340678 | dshaligram | 2007-07-15 14:49:31 +0000

Fixed chunks unstacking when dropped (cbus).

--------------------------------------------------------------------------------
ed15698b38 | dshaligram | 2007-07-15 14:12:39 +0000

Corona overrides invisibility. To check if something is *really* invisible, use 
foo.invisible(), not foo.has_ench(ENCH_INVIS) or foo.duration[DUR_INVIS].

--------------------------------------------------------------------------------
d3c9ed21e7 | dshaligram | 2007-07-15 12:15:52 +0000

Drop Control Teleport and Controlled Blink by one spell level each.
[1750729] Controlled Blink (the spell) now decays to semi-controlled blink on
levels that block teleport control and is less likely to be blocked by the
Abyss.

--------------------------------------------------------------------------------
4d8f70826f | j-p-e-g | 2007-07-15 10:00:28 +0000

small vampire fixes

--------------------------------------------------------------------------------
276a727317 | haranp | 2007-07-15 06:49:13 +0000

Shuffle honours batform.

--------------------------------------------------------------------------------
94002884ec | j-p-e-g | 2007-07-14 23:29:19 +0000

Vampires, yay! Credit mostly goes to Jarmo, though there are a few traces of 
things I've changed (that I've included and then commented out).
There's still lots of stuff to be added, but they 
should be playable right now. I notice that their 
vampiric bite attack needs to be made more
probable. Feel free to comment on anything that 
looks weird, is plain wrong, or goes against the 
spirit of Crawl/Stonesoup. 
Positive feedback will be appreciated as well. :)

--------------------------------------------------------------------------------
3b818666de | haranp | 2007-07-14 22:44:29 +0000

Deck ID should set you.wield_change.

--------------------------------------------------------------------------------
7174df31cc | haranp | 2007-07-14 22:35:30 +0000

High Evocations give you a chance at identifying decks you draw from.

--------------------------------------------------------------------------------
83b6e96fde | haranp | 2007-07-14 20:47:20 +0000

Fixed hunger message typo (1753992)

--------------------------------------------------------------------------------
127ad98371 | haranp | 2007-07-14 20:25:34 +0000

Added a Venom card; made Destruction deck effects somewhat more interesting.

--------------------------------------------------------------------------------
a0209552c4 | haranp | 2007-07-14 19:59:20 +0000

Implemented Shuffle card.

--------------------------------------------------------------------------------
5db5426d55 | dshaligram | 2007-07-14 19:23:10 +0000

Switched confusing touch success calc to the 4.1.2 model, where it's a simple 
no-spell-skill roll against HD (ignoring monster MR). This makes confusing 
touch more useful to part-time casters.

--------------------------------------------------------------------------------
528f1a1702 | dshaligram | 2007-07-14 18:19:36 +0000

[1753369] Fixed sealed rooms being generated in the Vaults.

--------------------------------------------------------------------------------
d0de96b23c | haranp | 2007-07-14 13:53:27 +0000

Minor type-safety.

--------------------------------------------------------------------------------
fc767d9b3b | haranp | 2007-07-14 12:57:54 +0000

Rewrite of the shopping code. Much cleaner now. Hopefully I didn't break 
anything.

--------------------------------------------------------------------------------
8d572fb843 | haranp | 2007-07-14 10:25:13 +0000

Fixed two rod bugs: 1. You should be able to use the rod if your Evocations 
reduces the hunger cost sufficiently; 2. Spell validity was being checked 
against the rod subtype, not against its book number.

--------------------------------------------------------------------------------
1e323fe542 | haranp | 2007-07-14 09:55:35 +0000

Bargain was never expiring (1753740.) Bargain no longer gives a duration of 0.

--------------------------------------------------------------------------------
a918cd2cf3 | dshaligram | 2007-07-13 20:57:09 +0000

Block teleport control on level 7 of the Hell sub-branches until the player has 
the rune. (jarpiain/dpeg)

--------------------------------------------------------------------------------
95b32e8537 | dshaligram | 2007-07-13 19:51:13 +0000

[1731587] Kenku get claw-kick and a small speed boost when flying unladen.
Swiftness speed boost is now given only if flying, not levitating.

--------------------------------------------------------------------------------
3600271e4e | dshaligram | 2007-07-13 13:45:12 +0000

Give kills.lua more leash before CPU throttling kicks in.
&~ to level 1 of a branch now puts you on the branch upstairs.

--------------------------------------------------------------------------------
1b7682ecfe | haranp | 2007-07-13 12:40:50 +0000

General code cleanups and goto removal. Fixed a possible crash when using 
Backspace to restart character selection.

--------------------------------------------------------------------------------
0eb7e87096 | dshaligram | 2007-07-13 11:26:38 +0000

[1746014] Added an implicit quiver when firing missiles:  - ^P/^N change the 
selected missile, but only within a fire_order slot.    i.e., if you're 
wielding a launcher and have "launcher" first in your    fire order, ^N and ^P 
will cycle only through suitable launcher ammo.  - If you use ^P or ^N to 
change the default missiles offered, that choice    gets saved as your quiver 
(unless you cancel targeting).  - Fire always offers the quivered item first, 
if appropriate (so if    you have darts quivered and try to shoot from a bow, 
the darts will    not be offered). Breaks save compatibility (quiver is saved).

--------------------------------------------------------------------------------
a14e48e33b | dshaligram | 2007-07-13 10:57:10 +0000

Lost monsters could be placed on save load, fixed (Haran).

--------------------------------------------------------------------------------
1b47c4b7f1 | haranp | 2007-07-13 08:49:38 +0000

Fixed missing period in silver statue message [1753135].

--------------------------------------------------------------------------------
b2785dc1f3 | haranp | 2007-07-13 08:30:23 +0000

Cleaned up magic mapping: the test regarding whether you can magic map is done 
inside magic_mapping(), which now returns a bool success value. Functionally: 
this means that the randart magic mapping power can no longer map the Abyss or 
labyrinths, ditto Map card. We can change this part back if we want.

--------------------------------------------------------------------------------
f290329069 | haranp | 2007-07-12 16:09:42 +0000

Broke up the monolithic miscast_effect function (used to be 1500 lines long!) 
Removed the return value as it was never getting used.

--------------------------------------------------------------------------------
aba7dd7d98 | haranp | 2007-07-12 15:33:50 +0000

Missing word in fire miscast effect (dolorous, 1752380)

--------------------------------------------------------------------------------
6672e27b0b | haranp | 2007-07-12 14:16:56 +0000

Some more typesafety in monster spellbooks. Removed unused ghost spellbook.

--------------------------------------------------------------------------------
6ff74508d4 | dshaligram | 2007-07-12 13:09:04 +0000

[1752536] fire_order is now smarter.

--------------------------------------------------------------------------------
d6c7e03e66 | dshaligram | 2007-07-12 10:56:25 +0000

Further weakened Beogh armour bonus.

--------------------------------------------------------------------------------
205fef6316 | dshaligram | 2007-07-12 10:00:32 +0000

[1752315] Made zombie orc entry to D:11-only and reduced the frequency of 
wraiths and orc sorcerers.

--------------------------------------------------------------------------------
74c498a25a | dshaligram | 2007-07-12 09:33:21 +0000

Beogh balancing: - Cut Beogh's racial armour bonus. - Reduced weapon damage 
bonus by 50% at low piety. - Increased smiting food and piety cost. The piety 
cost may still be too   low given how easy it is to gain Beogh piety.
Tweaked monster generation, which had become too bland.

Reintroduced shoal vault (onia_ninara_012_swampy_vault_shoal) which seems to
work now.

--------------------------------------------------------------------------------
19c5f0f487 | haranp | 2007-07-12 08:33:01 +0000

[1751312] Warpwright does nothing in the Abyss; Minefield creates water and 
lava instead of traps.

--------------------------------------------------------------------------------
e8e947d6fc | haranp | 2007-07-12 08:26:03 +0000

Fixed missing description for Metabolic Englaciation [1752269]

--------------------------------------------------------------------------------
577e34735a | dshaligram | 2007-07-11 17:52:58 +0000

Adjusted depths for various vaults.

--------------------------------------------------------------------------------
55c63a7949 | dshaligram | 2007-07-11 17:16:50 +0000

Map cleanup (Eino).

--------------------------------------------------------------------------------
c6eeb15655 | dshaligram | 2007-07-11 16:50:49 +0000

Added final score to morgue
Tuned abjuration parameters slightly:
- Monster abjuration attenuates more the more summons it hits.
- Upped player abjuration power slightly. May need more tuning.

Backlight (corona or glow) makes you extremely unstealthy.

--------------------------------------------------------------------------------
a41b4e92c5 | j-p-e-g | 2007-07-11 14:31:55 +0000

Hmm... looks like my last commit didn't make it. So now this one combines 
Beogh's conversion changed to include Invocations, and the Backspace key for 
the character selection.
For the latter Backspace doesn't seem to work on
Linux terminals (or at least, via PuTTy), so I
added Space as an alternative. Could still be 
improved, I guess.

--------------------------------------------------------------------------------
a6e4d3b9c8 | dshaligram | 2007-07-11 13:11:54 +0000

Fixed $ not correctly setting the deepest depth in branches from the ^G depth 
prompt under certain circumstances (Erik).

--------------------------------------------------------------------------------
3861479ddd | dshaligram | 2007-07-11 12:51:20 +0000

Fixed abjuration (player and monster versions) to work with the new enchantment 
duration system. Also strengthened monster abjuration, which became terribly 
weak after the 0.2 nerf.
Monster abjuration now applies in a circle around the caster, squares adjacent
to the caster getting full blast, and weaker abjuration effects going outwards.
Player abjuration stays unchanged.

--------------------------------------------------------------------------------
1d4cd176bd | dshaligram | 2007-07-11 11:08:08 +0000

Fix flicker in level-map title when scrolling the level-map.
Removed unnecessary newlines at the end of the level-map help.

--------------------------------------------------------------------------------
6b55f94014 | dshaligram | 2007-07-11 10:58:19 +0000

Allow full-level (encompass) vaults to be placed outside the main dungeon.
Fixed a bug where secondary vaults and minivaults could overwrite special rooms.

--------------------------------------------------------------------------------
83e8ab596d | dshaligram | 2007-07-11 10:25:58 +0000

Updated INSTALL for 0.3.

--------------------------------------------------------------------------------
8ee15e29f9 | dshaligram | 2007-07-11 09:56:56 +0000

[1737348] Allow stash.lua to annotate item names for autopickup so autopickup 
can use matches like <Short Blades.

--------------------------------------------------------------------------------
4253009d0d | dshaligram | 2007-07-11 07:26:56 +0000

[1734352] Added checks in the dungeon builder to ensure vaults placed at the 
end of level generation do not isolate parts of the level that were not already 
isolated. This does not apply to weird level-types such as Labyrinths and the 
Abyss.
Added level veto stats to -mapstat output.

--------------------------------------------------------------------------------
82e6635316 | dshaligram | 2007-07-10 22:21:47 +0000

Update canned level compiler.

--------------------------------------------------------------------------------
8615ed2db9 | dshaligram | 2007-07-10 21:56:14 +0000

Tweaked dungeon-room connection logic to fix problems with non-rectangular 
vaults (reported by Eino).

--------------------------------------------------------------------------------
eae61da171 | dshaligram | 2007-07-10 19:35:05 +0000

Monster enchantment overhaul:
* Enchantment degree is converted into duration up-front. The average
  enchantment duration should be nearly the same as before, but we guarantee
  minimum durations on enchantments. Enchantment duration variance is much
  less, needs testing to see whether this makes enchantments and summoning too
  strong.

* Enchantments that rely on degree (like poison, sticky flame) still use it.

* Durations are now based on individual movement ticks, not turns (10 ticks = 
  1 normal player turn).

* Breaks saves, abjuration doesn't work (will fix).

--------------------------------------------------------------------------------
68f11497c4 | dshaligram | 2007-07-10 14:23:24 +0000

Space-padded another vault, added an example NSUBST use.

--------------------------------------------------------------------------------
f8668a672a | dshaligram | 2007-07-09 23:22:19 +0000

Clarify wording of float.des header comment (David).

--------------------------------------------------------------------------------
b53b657c60 | dshaligram | 2007-07-09 20:04:58 +0000

Use same time as highscore entry for morgue.

--------------------------------------------------------------------------------
9d17ec09d3 | dshaligram | 2007-07-09 17:50:47 +0000

Validate float map sizes so large maps aren't set ORIENT: float.
Changed the Rubicon to ORIENT: south.

--------------------------------------------------------------------------------
0ec7cf7056 | dshaligram | 2007-07-09 17:41:11 +0000

Superior minivault handling. Minivaults without floor padding are finally 
supported (see mines4_lemuel for an example).
Set default depth to D:a-b in all .des files. Random vaults that want to live
in a non-main-dungeon branch must explicitly specify this in a DEPTH: line.

--------------------------------------------------------------------------------
b26e4bf0ba | dshaligram | 2007-07-09 16:48:33 +0000

Added some feature and branch descriptions (inspired by David). Also removed 
some superfluous descriptions.
Fixed dungeon.cc going vault-crazy.

--------------------------------------------------------------------------------
3fcc285920 | haranp | 2007-07-09 15:38:21 +0000

Nemelex now remembers what you've sacrificed and gifts decks accordingly. 
High-value sacrifices can reduce the gift countdown. Nemelex is easier to 
please. Breaks savefiles.

--------------------------------------------------------------------------------
eb847d5f2f | haranp | 2007-07-09 14:50:32 +0000

Nemelex now uses Evocations instead of Invocations. Nemelex abilities now have 
failure rates, are godly abilities (oops), and train Evocations.

--------------------------------------------------------------------------------
85b02c94b3 | haranp | 2007-07-09 13:47:27 +0000

Implemented Spade and Trowel (except for vault generation.)

--------------------------------------------------------------------------------
8348fa7296 | dshaligram | 2007-07-09 13:09:30 +0000

Experimental change in monster awareness messages (Zooko).

--------------------------------------------------------------------------------
bc63643a6c | haranp | 2007-07-09 12:38:44 +0000

Minor refactoring.

--------------------------------------------------------------------------------
bb6930c4b7 | dshaligram | 2007-07-09 12:26:29 +0000

Force monsters generated with only a missile launcher to wield the launcher 
when being generated (instead of switching to it before firing the first shot).

--------------------------------------------------------------------------------
03e08f2dfe | dshaligram | 2007-07-09 12:13:29 +0000

Acquirement retries were useless because the object sub-type was not being 
changed, fixed. We should now see the demon of the infinite void a lot less 
often.

--------------------------------------------------------------------------------
37b869723d | dshaligram | 2007-07-09 11:52:47 +0000

[1739347] Fixed acquirement giving unwieldable weapons.

--------------------------------------------------------------------------------
197e914235 | haranp | 2007-07-09 11:47:31 +0000

Transformation cleanup. Fixed a bad bug in cloak/body armour wearing 
interaction (oops.)

--------------------------------------------------------------------------------
536cad41f6 | dshaligram | 2007-07-09 11:32:32 +0000

Give merfolk in water and flying kenku evasion bonuses.

--------------------------------------------------------------------------------
240d458d71 | dshaligram | 2007-07-09 11:08:36 +0000

More debug stats for maps.
level_range was segfaulting when compared against Abyss and Pan level_ids,
fixed.

Fixed level_id operator < ().

Enabled use of vaults in non-Dungeon areas (Lair specific vaults were unused).
These vaults are placed as extras, and are subject to the same constraints as
branch entry vaults (the smaller the vault, the better the chance of being
placed).

--------------------------------------------------------------------------------
2517b1cf24 | haranp | 2007-07-09 10:16:35 +0000

Changed Shoal huts (David). More improvements welcome. Killed all other Shoal:$ 
maps for now. Fixed some items not getting noted on pickup.

--------------------------------------------------------------------------------
23c3aa27ef | dshaligram | 2007-07-09 08:43:28 +0000

Oops, removed extraneous CHANCE:

--------------------------------------------------------------------------------
03081bce2d | dshaligram | 2007-07-09 08:12:47 +0000

[1750056] Fixed silly bug breaking cached maps on Windows.

--------------------------------------------------------------------------------
c82961f47f | dshaligram | 2007-07-08 21:55:09 +0000

Fix for MinGW borkedness.

--------------------------------------------------------------------------------
9daed15a2a | dshaligram | 2007-07-08 21:40:41 +0000

Tweak map stat output, fixed a couple of bugs.

--------------------------------------------------------------------------------
ccd8ab9d73 | dshaligram | 2007-07-08 20:59:26 +0000

Added debugging code to generate multiple dungeons (all branches and levels) 
and gather statistics on maps used and Lua errors encountered.
To use it, run "crawl -mapstat" with a full-debug build. Output will be
mapgen.log in the current directory.

--------------------------------------------------------------------------------
eb6bb5f5ee | dshaligram | 2007-07-08 16:54:55 +0000

Deep elves were not getting their initial arrow allotment, fixed.

--------------------------------------------------------------------------------
64eb39919e | dshaligram | 2007-07-08 16:33:55 +0000

Fixed inappropriate maps being selected for dungeon levels.

--------------------------------------------------------------------------------
3e5eae658a | dshaligram | 2007-07-08 16:14:55 +0000

Monsters were not getting species-appropriate missiles, fixed.

--------------------------------------------------------------------------------
2e6e327fce | dshaligram | 2007-07-08 15:54:02 +0000

Stop butcher delays when blade hands wears off (Eva).

--------------------------------------------------------------------------------
4a6ed4aa31 | dshaligram | 2007-07-08 15:34:10 +0000

[1746247] Award experience for confused monsters killing themselves and other 
monsters.

--------------------------------------------------------------------------------
8fda0acad5 | dshaligram | 2007-07-08 14:20:44 +0000

Fixed level-compiler not warning of maps with the same name consistently.

--------------------------------------------------------------------------------
cb8c16f0c7 | dshaligram | 2007-07-08 13:13:20 +0000

Removed extraneous stairs from the Mess, toned down orc warrioritis on shallow 
levels.

--------------------------------------------------------------------------------
973509a558 | haranp | 2007-07-08 11:35:20 +0000

Note improvements (1749776). Double notes are possible if regexps are careless.

--------------------------------------------------------------------------------
9e2952d470 | dshaligram | 2007-07-08 11:20:03 +0000

Map DEPTH handling was completely smashed, fixed.

--------------------------------------------------------------------------------
b8a6d083c3 | haranp | 2007-07-08 10:37:11 +0000

[1749764]: beam-cycling RIP.

--------------------------------------------------------------------------------
c4873e7d86 | haranp | 2007-07-08 10:30:21 +0000

Silenced another incorrect MinGW warning.

--------------------------------------------------------------------------------
ecb40974ab | dshaligram | 2007-07-08 10:25:51 +0000

Vault collision checks were still assuming rectangles, fixed.
More minor vault tweaks.

--------------------------------------------------------------------------------
b0e3bb6ae0 | dshaligram | 2007-07-08 10:03:40 +0000

Readjusting depth for another hard vault.

--------------------------------------------------------------------------------
1219b21467 | dshaligram | 2007-07-08 09:24:03 +0000

Dropped weight of the crueler minotaur vaults, removed minotaurs from the 
decorative minivaults.

--------------------------------------------------------------------------------
a3ea841416 | dshaligram | 2007-07-08 09:15:33 +0000

Monsters were equipping wands as weapons, fixed.

--------------------------------------------------------------------------------
dc15603f93 | haranp | 2007-07-08 02:23:34 +0000

Code review and minor fixups for Beogh.

--------------------------------------------------------------------------------
b49b73d9b3 | haranp | 2007-07-08 01:00:51 +0000

Lots and lots of type safety. Caught a bug in the definition of shadows (isn't 
it lucky that BLACK == MST_NO_SPELLS?)

--------------------------------------------------------------------------------
7fd9d9a617 | dshaligram | 2007-07-07 17:31:08 +0000

High-HD monsters no longer pick up wands.

--------------------------------------------------------------------------------
c3b47f1e1b | dshaligram | 2007-07-07 17:04:02 +0000

Level and database text update (David).

--------------------------------------------------------------------------------
0742680347 | dshaligram | 2007-07-07 16:14:16 +0000

Fixed bugs in floating vault exit connections, added an entry vault as a 
testcase.

--------------------------------------------------------------------------------
c25973abd0 | dshaligram | 2007-07-07 15:28:06 +0000

Extend rectangular vault support for regular vaults.
Vault collision checking is also non-rectangular now.

Fixed Windows builds not reporting line numbers in .des file error messages.

--------------------------------------------------------------------------------
17b7bb3e2b | haranp | 2007-07-07 11:23:54 +0000

The keys "zombie", "spectral thing", "skeleton" and "simulacrum" now describe 
the appropriate monsters [1749225].

--------------------------------------------------------------------------------
a300efc63d | haranp | 2007-07-07 11:16:07 +0000

Removed all uses of str_monam() outside of mon-util.cc; str_monam() is now 
static.
Some description fixes (mainly for mummies and nagas.)

--------------------------------------------------------------------------------
c59c58e7a4 | haranp | 2007-07-07 10:17:07 +0000

Describing items now works better in shops (fixes 1749246.) More consistency in 
type-ID vs. artefacts: knowing the type-ID of a specific ring won't property-ID 
or type-ID an artefact ring of the same type, and vice versa.

--------------------------------------------------------------------------------
085d445195 | j-p-e-g | 2007-07-07 09:52:00 +0000

Beogh bug fixes, mostly orcish gear stuff.

--------------------------------------------------------------------------------
2fbde88e4b | dshaligram | 2007-07-06 23:48:06 +0000

Update canned lexer.

--------------------------------------------------------------------------------
dd25b1fc88 | dshaligram | 2007-07-06 23:39:51 +0000

Allow non-rectangular minivaults and branch entry vaults (use space padding). 
They're still rectangular for collision detection with other vaults; that'll 
need more effort to fix.
Space padding can also be used for regular vaults, but it'll be ignored at
the moment (but soon...! :-)).

--------------------------------------------------------------------------------
590e197da8 | dshaligram | 2007-07-06 19:08:38 +0000

Monsters that have destructive spells do not pick up missile weapons.

--------------------------------------------------------------------------------
942fcc618e | dshaligram | 2007-07-06 18:55:32 +0000

Fix level compiler to validate PLACE: declarations.
Places are saved as level_ids, not strings.

--------------------------------------------------------------------------------
50c3e7b242 | haranp | 2007-07-06 16:25:01 +0000

Shoals bottom now has 4-6 huts, each of which has a 50% chance of containing 
the Rune, instead of the previous setup.
Moved most feature descriptions to descript.txt.

--------------------------------------------------------------------------------
8d44ee97df | dshaligram | 2007-07-06 12:57:29 +0000

Orbs of fire are no longer silenceable.

--------------------------------------------------------------------------------
fb0146106d | dshaligram | 2007-07-06 12:37:58 +0000

[1748706] Increase monster spawn rate after the player gets the Orb, add 
Pandemonium-type demons into the defender mix.

--------------------------------------------------------------------------------
c25a470c15 | dshaligram | 2007-07-06 11:47:03 +0000

Debian 421212: remove superfluous semicolon that breaks build on gcc 4.3.

--------------------------------------------------------------------------------
b09e4598be | dshaligram | 2007-07-06 11:35:06 +0000

[1748743] Fixed followers being misplaced.

--------------------------------------------------------------------------------
beafe98a63 | dshaligram | 2007-07-06 10:42:29 +0000

[1748837] Merge identical features when reporting explore discoveries, 
distinguish between stairs and portals.

--------------------------------------------------------------------------------
862f907158 | dshaligram | 2007-07-06 08:34:09 +0000

[1748837] Fixed odd-looking messages when explore finds two or more identical 
features.

--------------------------------------------------------------------------------
5aa579ca76 | dshaligram | 2007-07-06 06:36:58 +0000

Vehumet does not accept undead slave collateral kills (back to 0.2).

--------------------------------------------------------------------------------
522e276f14 | dshaligram | 2007-07-06 06:35:17 +0000

Stabbing of distracted monsters was too easy in 0.2, moved it up a little 
closer to 0.1-levels (it's still easier than in 0.1).

--------------------------------------------------------------------------------
24d89da8f4 | dshaligram | 2007-07-06 06:32:41 +0000

Makhleb no longer accepts dedicated undead kills.

--------------------------------------------------------------------------------
337bb8fc79 | dshaligram | 2007-07-06 06:24:03 +0000

Tweaked javelins so they're pure throwing, no polearm skill involved.

--------------------------------------------------------------------------------
dcdfde734e | dshaligram | 2007-07-05 20:29:47 +0000

Update Gladiator description in the manual.

--------------------------------------------------------------------------------
6425d37d62 | dshaligram | 2007-07-05 20:27:43 +0000

[1748697] Gladiators start in leather armour and are issued one javelin.

--------------------------------------------------------------------------------
6d381e92d2 | dshaligram | 2007-07-05 19:56:01 +0000

s/artifact/artefact/

--------------------------------------------------------------------------------
06be6fc4f7 | dshaligram | 2007-07-05 19:02:04 +0000

More randart names and appearances.

--------------------------------------------------------------------------------
ccb8040b90 | j-p-e-g | 2007-07-05 18:09:50 +0000

added Recall invocation for Beogh (data copied from Kiku)

--------------------------------------------------------------------------------
22d0bf1834 | haranp | 2007-07-05 16:07:07 +0000

Experimental nerf of Confusing Touch: it now does a monster magic resistance 
check (against your Confusing Touch casting power at the time of hitting the 
monster, not at the time of casting the spell.) Balancing input sought.

--------------------------------------------------------------------------------
145d7c3d25 | haranp | 2007-07-05 15:51:40 +0000

Moved spell descriptions into the database.

--------------------------------------------------------------------------------
0c8637a810 | dshaligram | 2007-07-05 14:06:51 +0000

Ugh, 1747790 rejigged.

--------------------------------------------------------------------------------
9cc9a41b8c | dshaligram | 2007-07-05 14:02:23 +0000

[1747790] Fixed berserk red-eye not beating necrophages. Berserking now forces 
the entire FOV red and everything outside FOV darkgrey (overriding feature 
colours).

--------------------------------------------------------------------------------
dd78d12623 | haranp | 2007-07-05 13:54:03 +0000

Fix bug in is_tried_type() which was crashing labyrinth generation. I could've 
sworn that I'd fixed this already.

--------------------------------------------------------------------------------
3edb4c171b | dshaligram | 2007-07-05 13:22:21 +0000

[1748162] Allow travel to the stair to a branch or level (using ^ will go to 
the entrance to any level; can also enter 0 at the depth prompt to go to a 
branch entrance.)
Also (experimentally) unifies the level-map and interlevel travel targets.

--------------------------------------------------------------------------------
fafa8e33e4 | dshaligram | 2007-07-05 06:15:55 +0000

Update canned level compiler.

--------------------------------------------------------------------------------
e560fb7e6d | haranp | 2007-07-04 23:48:21 +0000

Type safety in mutations (mutation.cc probably needs some overhaul...)

--------------------------------------------------------------------------------
ae8b9d93ae | haranp | 2007-07-04 23:02:18 +0000

Better feedback for Beogh water walking.

--------------------------------------------------------------------------------
e286813813 | haranp | 2007-07-04 22:27:54 +0000

Broke up the monolithic divine_retribution() function somewhat. Fixed a couple 
of bugs which turned up: Trog was being too lenient in monster count, ditto 
Beogh (in dancing weapon count.)

--------------------------------------------------------------------------------
046629b0ed | haranp | 2007-07-04 13:07:08 +0000

Added Polyphemus, a unique Cyclops who can show up where high-end uniques do 
and is especially common in the Shoals. No talk text yet.

--------------------------------------------------------------------------------
a8bc607994 | haranp | 2007-07-04 12:03:29 +0000

Dancing Weapon card implemented.

--------------------------------------------------------------------------------
f79c9dacc9 | haranp | 2007-07-04 11:54:17 +0000

Implemented Blade card. Damnation will no longer work in Abyss/Pan/Lab.

--------------------------------------------------------------------------------
0bd8cc1203 | haranp | 2007-07-04 10:03:53 +0000

Fixed bad updating of XP (1747476.)

--------------------------------------------------------------------------------
6e8d91afe0 | dshaligram | 2007-07-04 09:00:04 +0000

Allow maps to specify item quantities with the q:N syntax in item specs.

--------------------------------------------------------------------------------
7b960a89ec | haranp | 2007-07-04 08:58:30 +0000

[1747469] You shouldn't even try to take off your cloak when swapping armour if 
the armour is cursed.

--------------------------------------------------------------------------------
646c88572a | dshaligram | 2007-07-04 08:45:07 +0000

Updated wizmode command help (David). No fancy colours.

--------------------------------------------------------------------------------
1270c61eb2 | haranp | 2007-07-04 08:41:51 +0000

Reverted friendlies not speaking change.

--------------------------------------------------------------------------------
d311ad3b8f | haranp | 2007-07-03 23:35:37 +0000

Beogh messiahs can walk on water.

--------------------------------------------------------------------------------
49458f792b | haranp | 2007-07-03 23:09:34 +0000

[1747351] Friendlies are now mute.

--------------------------------------------------------------------------------
5381635aba | haranp | 2007-07-03 22:59:32 +0000

[1747353] Allies shouldn't be noted as "defeated" by you.

--------------------------------------------------------------------------------
c067a7b849 | haranp | 2007-07-03 22:28:11 +0000

Mummies don't hunger from spellcasting.

--------------------------------------------------------------------------------
4ca6e6f54f | haranp | 2007-07-03 22:25:23 +0000

Bad message on poisoning melee atacks (1747220).

--------------------------------------------------------------------------------
00bb42dc5e | haranp | 2007-07-03 21:55:23 +0000

Coloured power display. This is, for now, a rather extreme hack. Note that some 
spells (e.g. Apportation) have no actual power limits, so they will always be 
'red'. Suggestions welcome.

--------------------------------------------------------------------------------
2f988e2691 | dshaligram | 2007-07-03 19:51:07 +0000

Don't say "It comes into view" for invisible monsters that turned invisible on 
the same turn they stopped travel/explore.

--------------------------------------------------------------------------------
5a9dd985c9 | dshaligram | 2007-07-03 19:00:16 +0000

Fixed sling bullets not being fired correctly.

--------------------------------------------------------------------------------
6ad2ff13db | dshaligram | 2007-07-03 18:45:58 +0000

Fixed debug fight simulator.
Dialed javelin base damage down a notch.

--------------------------------------------------------------------------------
718202ee6b | dshaligram | 2007-07-03 17:59:49 +0000

Manual update (David).
Added javelins and sling bullets. Only Urug gets javelins at the moment. No
monster gets sling bullets, but they can be randomly generated.

Added deep elf blademasters and master archers to provide Silence-users some
entertainment on Elf:7. I've adjusted the non-rogue-layout Elf:7s to use
blademasters.

--------------------------------------------------------------------------------
589e206de3 | haranp | 2007-07-03 13:30:45 +0000

Unrandarts could get confused (specifically Robe of Augmentation and Robe of 
Night.)

--------------------------------------------------------------------------------
06000612f9 | haranp | 2007-07-03 13:23:10 +0000

Initial spell-power-bar implementation (1746561). No colours yet.

--------------------------------------------------------------------------------
8fe08a6179 | haranp | 2007-07-03 12:39:49 +0000

[1747043] Tried items shouldn't show up as 'tried' in a shop that IDs stock.

--------------------------------------------------------------------------------
da7b14eeed | haranp | 2007-07-03 12:02:02 +0000

Minor cleanups (especially of Xom code.)

--------------------------------------------------------------------------------
eedaf28e2a | haranp | 2007-07-03 11:18:38 +0000

Staves aren't clumsy (Darshan.)

--------------------------------------------------------------------------------
de61f774d4 | haranp | 2007-07-03 10:58:08 +0000

Made the weapon warning one-off (until you change weapons.)

--------------------------------------------------------------------------------
284b3dcc8a | j-p-e-g | 2007-07-03 09:59:54 +0000

adding warning message when wielding nonweapons or launchers in melee

--------------------------------------------------------------------------------
05fae4acc2 | dshaligram | 2007-07-03 06:17:51 +0000

Monsters are less likely to examine big stacks of items.
Fixed monsters being able to switch from cursed hand weapon to launcher.

Updated CREDITS.

--------------------------------------------------------------------------------
357dd075e0 | dshaligram | 2007-07-02 21:44:15 +0000

[1746800] Fixed Xom penance affecting new deity piety.

--------------------------------------------------------------------------------
d82327622f | dshaligram | 2007-07-02 21:01:37 +0000

Give goblins slings instead of blowguns, give orc knights a chance of starting 
with a crossbow.
Increased monster base to-hit for slings.

--------------------------------------------------------------------------------
60d4b8bfb4 | dshaligram | 2007-07-02 20:45:21 +0000

Monsters weren't picking up potions, fixed.

--------------------------------------------------------------------------------
1100551acb | dshaligram | 2007-07-02 20:21:43 +0000

Fixed broken check for launchers in item creation (oops).

--------------------------------------------------------------------------------
8c9879bd91 | dshaligram | 2007-07-02 20:19:09 +0000

Allow monsters to be generated with both melee and ranged weapons. This applies 
only to monsters that are normally generated with either (like kobolds), not to 
pure-fighters or pure-archers.

--------------------------------------------------------------------------------
cbe35862e2 | dshaligram | 2007-07-02 19:43:22 +0000

[1746555] Fixed lingering instances of spell_type(x). Orcs no longer get 
blowguns.

--------------------------------------------------------------------------------
a065b3c338 | dshaligram | 2007-07-02 19:25:57 +0000

Experimental monster weapon swapping implementation. Allow monsters to use 
throwing weapons (hand axes, spears, clubs, daggers).  Give orcs and orc 
warriors a chance of being generated with throwing weapons (axes or spears).
Throwing weapons are stacked in monster inventory, but unstack when dropped.
We may want to consider fully stackable throwing weapons at some point.

--------------------------------------------------------------------------------
79b728ec3b | haranp | 2007-07-02 14:14:55 +0000

Drop and pickup menus now support Ctrl-F to select all items matching a regex.

--------------------------------------------------------------------------------
d6998c47fd | haranp | 2007-07-02 08:14:15 +0000

Spellcasting, Evocations and Invocations are now displayed modified in the 'm' 
screen (peer pressure, peer pressure...)

--------------------------------------------------------------------------------
aeb8693fde | haranp | 2007-07-02 08:06:33 +0000

1622385: there is now a Confirm keymap context for yesno() and yesnoquit().

--------------------------------------------------------------------------------
e9183b0754 | haranp | 2007-07-02 07:43:45 +0000

1616158: Easy-butcher sequence if you are wearing gloves and can butcher 
barehanded (effectively ghouls + those with MUT_CLAWS.) The takeoff/puton 
armour messages will appear out of sequence, but this is a bug in the delay 
process; you can see it now by taking off armour while wearing a cloak. This 
could be fixed by having the delay start message only trigger when the delay 
actually starts (as opposed to when it's pushed onto the queue) but I'm not 
doing that because I'm not sure where the code assumes the current behaviour.

--------------------------------------------------------------------------------
d4eac8237d | dshaligram | 2007-07-02 06:48:41 +0000

[1746212] Fixed paralysed monsters being able to follow the player across 
levels.

--------------------------------------------------------------------------------
ba244c786c | haranp | 2007-07-01 22:29:00 +0000

Ghosts/demons should have dig in slot 5 (misc2), not slot 4 (misc1.) Should fix 
1743674: ghosts using dig as an offensive spell.

--------------------------------------------------------------------------------
2ed0386bc0 | haranp | 2007-07-01 22:18:43 +0000

1731074: item prices should be shown on leaving the dungeon.

--------------------------------------------------------------------------------
e1fa7f473b | haranp | 2007-07-01 22:12:11 +0000

1736793: slightly better teleport messages.

--------------------------------------------------------------------------------
de3f47634d | haranp | 2007-07-01 22:01:20 +0000

Tutorial condolences message shouldn't display if you escape the dungeon.

--------------------------------------------------------------------------------
aad41516e2 | dshaligram | 2007-07-01 18:07:11 +0000

Moved hellmouths back to hells.des after discussions with David.
Restored a couple of other maps.

--------------------------------------------------------------------------------
fc78d02aee | dshaligram | 2007-07-01 16:07:21 +0000

Added NSUBST.
Should not highlight unvisited stairs in the Vestibule, since travel cache
doesn't track visited-ness of Vestibule stairs.

--------------------------------------------------------------------------------
0645520057 | dshaligram | 2007-07-01 13:07:35 +0000

[1745789] Fixed shield blocking happening without shield (Eino).

--------------------------------------------------------------------------------
2b3c8ea80b | dshaligram | 2007-07-01 11:19:26 +0000

Level updates collated by David.
Fixed DEPTH: not being read correctly, added more map validation.

Increased attack speed of ice statues. 

--------------------------------------------------------------------------------
5e974fc5a7 | dshaligram | 2007-06-30 16:02:15 +0000

Branch end stair fixup should not be applied to the Vestibule.

--------------------------------------------------------------------------------
6d0595ca83 | dshaligram | 2007-06-30 15:59:11 +0000

Fixed a couple of infinite loops.

--------------------------------------------------------------------------------
fd34c17a54 | dshaligram | 2007-06-30 15:49:18 +0000

[1742338] Fixed Hell portals not being revealed correctly when the horn is 
sounded.

--------------------------------------------------------------------------------
34cc3ee5d9 | haranp | 2007-06-30 15:17:02 +0000

The tutorial now uses set_more() to display the ability-menu help (so Menu 
doesn't need to be aware of the tutorial.) set_more() support with multi-line 
strings will only work if there are enough free lines; it doesn't (yet) reduce 
pagesize. Also, it doesn't handle newlines which aren't EOLs.

--------------------------------------------------------------------------------
a887830861 | haranp | 2007-06-30 14:25:22 +0000

Implemented 1633998: summary line for large stacks, controlled by the 
item_stack_summary_minimum option. Artefacts and glowing/runed items get yellow 
and white, respectively. Also, the entire item list on the floor will be 
displayed if it fits onto the screen (and not if there are five or less items, 
as before.)

--------------------------------------------------------------------------------
cbd9791cd0 | haranp | 2007-06-30 12:25:35 +0000

Running now respects travel_delay.

--------------------------------------------------------------------------------
67ff47f254 | haranp | 2007-06-30 08:09:47 +0000

Removed hill dwarves.

--------------------------------------------------------------------------------
d8d8e53654 | haranp | 2007-06-29 23:34:51 +0000

Fix for 1735848: animate dead now skips over corpses which can't be animated.

--------------------------------------------------------------------------------
4e7e3e40f0 | haranp | 2007-06-29 22:46:54 +0000

Fix for 1745414, glamour was giving bad messages 1 time in 4.

--------------------------------------------------------------------------------
2540d1003b | haranp | 2007-06-29 22:41:14 +0000

Added a spell inspection screen, bound to 'I'.

--------------------------------------------------------------------------------
2b2a595839 | haranp | 2007-06-29 16:55:20 +0000

Implemented 1715578: pressing '!' in the Z? screen toggles between showing 
schools/success and hunger/power.

--------------------------------------------------------------------------------
cf277d8cb8 | haranp | 2007-06-29 16:04:17 +0000

Fix off-by-one bug in Abyssal altar generation (dolorous.)

--------------------------------------------------------------------------------
c1af72fdb7 | dshaligram | 2007-06-29 15:38:10 +0000

Steam clouds now do damage proportional to their density (experimental).

--------------------------------------------------------------------------------
9b19c10cdc | dshaligram | 2007-06-29 15:00:48 +0000

[1745278] Added missing period at end of confusing touch message.

--------------------------------------------------------------------------------
08c0c17c16 | dshaligram | 2007-06-29 13:52:58 +0000

Adjust dragon armour properties back towards 4.0 (they were using 4.1.2 props 
due to an accidental import circa 0.1). I've left hides closer to the 4.1.2 AC.

--------------------------------------------------------------------------------
5555fc0365 | dshaligram | 2007-06-29 12:32:35 +0000

Clarify descriptions of the ORIENT and DEPTH settings for maps.

--------------------------------------------------------------------------------
f0229aa5f1 | dshaligram | 2007-06-29 11:58:54 +0000

Moved the list of required .des files into loadmaps.lua.

--------------------------------------------------------------------------------
7d9814f3cb | haranp | 2007-06-28 23:13:37 +0000

Missiles inscribed {poison} shouldn't be poisonous (probably in 0.2.x as well.)

--------------------------------------------------------------------------------
41abf7a805 | haranp | 2007-06-28 23:07:29 +0000

Implemented 1744937: RC + appropriate launcher skill determines the probability 
to successfully poison a monster.

--------------------------------------------------------------------------------
ffcae9af02 | haranp | 2007-06-28 22:31:17 +0000

Fixup of gunofdis patch for returning weapons [1744612]: Returning brand 
implemented for daggers, hand axes, and spears. Monsters will pick up and use 
(and hopefully be occasionally generated with) returning weapons, which they 
can both throw for ranged attacks and use hand-to-hand. The chance of a 
returning weapon not returning is proportional to ranged combat skill (for the 
player) or HD (for monsters.) If it doesn't return, it just acts as if it was 
thrown normally.

--------------------------------------------------------------------------------
0e02c4a6ab | dshaligram | 2007-06-28 18:05:48 +0000

Push item weights to the right of the inventory menu.

--------------------------------------------------------------------------------
c728322318 | dshaligram | 2007-06-28 16:55:09 +0000

Croak if SUBST: argument is malformed.

--------------------------------------------------------------------------------
936534f719 | dshaligram | 2007-06-28 16:50:32 +0000

Added a rock stair down in the 004_mini_maze entry for players who can't find 
the secret door.

--------------------------------------------------------------------------------
c84c932254 | dshaligram | 2007-06-28 14:53:51 +0000

Add note for stair emphasis colour in feature option help.

--------------------------------------------------------------------------------
08f44d7ff3 | dshaligram | 2007-06-28 14:49:27 +0000

Applied Zooko's Xom piety patch.

--------------------------------------------------------------------------------
e8062078ed | dshaligram | 2007-06-28 14:47:11 +0000

Colour unvisited stone stairs white (can be customised with the feature option).
Fixed level compiler not croaking for bad monster names.

--------------------------------------------------------------------------------
c599f54728 | dshaligram | 2007-06-28 12:34:47 +0000

Partial syntax highlighting for embedded Lua in .des files.

--------------------------------------------------------------------------------
d1968a5ba4 | dshaligram | 2007-06-28 12:04:38 +0000

Updated level-design.txt with a basic overview of the Lua possibilities. Fixed 
some inconsistencies in the handling of Lua errors. Tweaked the lexer to allow 
spaces before Lua chunk prefixes.

--------------------------------------------------------------------------------
26f8579e71 | haranp | 2007-06-27 23:47:05 +0000

Implemented 1735752: wands are (fake-)inscribed with the number of times you've 
zapped them.

--------------------------------------------------------------------------------
7d9c2931b7 | haranp | 2007-06-27 22:43:27 +0000

Beams now get -2 to-hit for every smoke square they pass through.

--------------------------------------------------------------------------------
c9a8094eec | haranp | 2007-06-27 22:26:04 +0000

Monster arrows no longer get dropped on destroyer grids (1744345.) Fixed a 
crash when monsters 'splash around'.

--------------------------------------------------------------------------------
b21664dc87 | dshaligram | 2007-06-27 21:03:22 +0000

Added any_glyph_connected() and has_exit_from_glyph() Lua functions for level 
validation.

--------------------------------------------------------------------------------
7474898193 | dshaligram | 2007-06-27 20:00:51 +0000

Stop MinGW complaining about possibly uninitialised variables.

--------------------------------------------------------------------------------
da9c4accf8 | haranp | 2007-06-27 19:57:56 +0000

Added the Portaled Projectile spell, following 1686312. Hopefully I didn't 
break the fsim_ranged code in the process. PP is now arbitrarily stuck into 
Spatial Translocations; it will be moved out when we add a Book of Archery.

--------------------------------------------------------------------------------
9b41135da8 | dshaligram | 2007-06-27 19:42:23 +0000

Added glyphs_connected and friends for maps to test connectedness of points 
after map transforms are applied.
Fixed conflicts in bison grammar.

--------------------------------------------------------------------------------
6a2be1555b | haranp | 2007-06-27 17:44:11 +0000

Refix code cleanup (oops.)

--------------------------------------------------------------------------------
b3ba50a0df | haranp | 2007-06-27 17:35:16 +0000

Various cleanups and goto elimination.

--------------------------------------------------------------------------------
d5bfb1f6cd | haranp | 2007-06-27 09:22:30 +0000

Herd can now summon herds (i.e., identical-type monsters.)

--------------------------------------------------------------------------------
1179295c51 | haranp | 2007-06-27 09:05:49 +0000

Weapon-swap (') now respects !w (1744049).

--------------------------------------------------------------------------------
40fa9db073 | haranp | 2007-06-27 08:44:34 +0000

Applied patch 1742546: Xom shouldn't polymorph demons.

--------------------------------------------------------------------------------
9ba7349f93 | dshaligram | 2007-06-27 07:49:52 +0000

The dungeon builder now caches compiled Lua chunks instead of Lua source in the 
.dsc to save on compile time (at the expense of larger .dsc files).

--------------------------------------------------------------------------------
ea6a050bf6 | haranp | 2007-06-26 22:15:47 +0000

Summon Animal ('The Herd') and Summon Any ('summoning') implemented. They need 
balancing, of course. Only the Spade, dancing weapon, and Blade to go, I 
think...

--------------------------------------------------------------------------------
ab091d9b7f | dshaligram | 2007-06-26 17:43:23 +0000

Followers are now placed on the transit list so that crashes or saves between 
levels don't lose following monsters.

--------------------------------------------------------------------------------
b596b1006e | dshaligram | 2007-06-26 17:05:30 +0000

Fixed map preludes being run out-of-order.

--------------------------------------------------------------------------------
9d1463d7bd | dshaligram | 2007-06-26 16:57:36 +0000

Added support for a validation hook for maps to check if they're A-Ok.
Tweaked savefile format (breaks saves) to allow the game to perform emergency
saves if level-generation fails (followers are lost, needs to be fixed).

[1743698] Re-refixed SP_ELF stub (Eino).

--------------------------------------------------------------------------------
5f2f20b497 | dshaligram | 2007-06-26 06:50:17 +0000

Ghouls, necrophages and rotting hulks can drown in water.

--------------------------------------------------------------------------------
9540dc0c39 | dshaligram | 2007-06-26 06:38:49 +0000

[1743293] Fixed merfolk not getting free travel through water.

--------------------------------------------------------------------------------
f24de6a083 | dshaligram | 2007-06-25 20:22:24 +0000

Removed support for 4.0/0.1.x logfiles.

--------------------------------------------------------------------------------
0f4fad723e | dshaligram | 2007-06-25 20:11:39 +0000

Refixed stubbed SP_ELF (Haran).

--------------------------------------------------------------------------------
7ce53143a6 | dshaligram | 2007-06-25 19:54:59 +0000

.des files can use a global Lua prelude (before maps are defined) that runs at 
start of game, before any maps are loaded, and does not run in the context of 
any specific map.

--------------------------------------------------------------------------------
648c698c07 | dshaligram | 2007-06-25 18:19:52 +0000

Allow decorative minivaults in labyrinths (tagged "lab"). Minotaur minivaults 
are now tagged "minotaur".

--------------------------------------------------------------------------------
8dc1522c4d | dshaligram | 2007-06-25 17:04:37 +0000

SP_ELF stubbed for log/scorefile compatibility.

--------------------------------------------------------------------------------
c66f8a8650 | dshaligram | 2007-06-25 16:35:03 +0000

Croak if necessary Lua files are missing, instead of failing subtly later.

--------------------------------------------------------------------------------
e079a2dd1b | haranp | 2007-06-25 16:09:27 +0000

Elf genocide. I hope I caught all the references.

--------------------------------------------------------------------------------
1bbfb19443 | haranp | 2007-06-25 13:37:44 +0000

You can now examine items from the inventory view. Fixed a bug with 
item_type_known (oops.)

--------------------------------------------------------------------------------
8e13d689ff | haranp | 2007-06-25 13:08:36 +0000

ToD is gone. Upped Shatter damage by one-third to compensate.

--------------------------------------------------------------------------------
da9f5b42fa | haranp | 2007-06-25 09:19:33 +0000

'%' screen now shows the new Nemelex effects.

--------------------------------------------------------------------------------
ecc7fe2444 | haranp | 2007-06-25 08:59:48 +0000

God neutering.

--------------------------------------------------------------------------------
1943b5433a | haranp | 2007-06-25 08:05:32 +0000

Fix for 1739988: fully_identified() was mishandling known types.

--------------------------------------------------------------------------------
2fa1874368 | haranp | 2007-06-25 07:39:15 +0000

Patch for Nate's bug 1739422. DNGN_UNDISCOVERED_TRAPs were around with no 
corresponding trap_struct element. A fix would be to figure out why this 
happens; for now these traps just vanish (with a warning message.)

--------------------------------------------------------------------------------
1128baf194 | dshaligram | 2007-06-24 20:35:56 +0000

Allow multiple MAP sections per map (maps can be conditionalised with Lua).

--------------------------------------------------------------------------------
55eb5d1c41 | dshaligram | 2007-06-24 20:30:42 +0000

Lua errors were not being printed correctly in des files, fixed.

--------------------------------------------------------------------------------
29e85c811d | dshaligram | 2007-06-24 19:38:20 +0000

Hackily rewrite Lua chunk errors to reflect line numbers from the original .des 
file so that level-designers can find the lines that are causing the problem.

--------------------------------------------------------------------------------
7a6a09598a | dshaligram | 2007-06-24 16:43:00 +0000

Fixed compile for Windows.

--------------------------------------------------------------------------------
05fd2578db | dshaligram | 2007-06-24 16:36:44 +0000

Update canned level-compiler.

--------------------------------------------------------------------------------
fb1cd2428d | dshaligram | 2007-06-24 16:30:54 +0000

Remove levcomp.o reference from DOS makefile.

--------------------------------------------------------------------------------
93f5fdd067 | dshaligram | 2007-06-24 16:27:58 +0000

Implemented .des file caching (speeds startup a fair bit): .des files are 
parsed only once (unless they're modified again). Crawl also keeps only map 
stubs in memory (name, place, orient, tags) and loads the map body only when it 
is actually selected by the dungeon builder.
This probably breaks the Windows build, will be fixed soonish.

--------------------------------------------------------------------------------
c633d5d2b9 | dshaligram | 2007-06-24 11:17:45 +0000

Fixed condensation shield (Haran).

--------------------------------------------------------------------------------
a9f1fec612 | haranp | 2007-06-24 10:59:41 +0000

Helm card can now have a shield effect. (Well, sort of.) Antimagic shouldn't 
cancel kenku permaflight.

--------------------------------------------------------------------------------
e6e4a21b99 | dshaligram | 2007-06-24 10:32:26 +0000

Allow : prefixed Lua lines in .des files.

--------------------------------------------------------------------------------
c1d6a946fb | dshaligram | 2007-06-24 09:20:43 +0000

Allow glob patterns in KFEAT lines. For instance:   KFEAT: A = gate * Abyss

--------------------------------------------------------------------------------
bc8d3fba7b | haranp | 2007-06-24 06:34:07 +0000

Swap card implemented. Fixed bug in Wrath card.

--------------------------------------------------------------------------------
5b096f16cf | haranp | 2007-06-23 21:42:00 +0000

Added more logic to Stealth and Portal cards.

--------------------------------------------------------------------------------
dd633d4ba9 | dshaligram | 2007-06-23 20:02:09 +0000

Oops, missed luadgn.cc

--------------------------------------------------------------------------------
32ba97b966 | dshaligram | 2007-06-23 19:58:45 +0000

Step 1 of .des file Lua-isation. The dungeon compiler converts .des files to 
Lua (Lua code can be embedded with {{ <lua code here> }} constructs) that is 
run to produce the final map.
Some maps may be broken, this is untested, lots more work needs to be done.

--------------------------------------------------------------------------------
d09478f5fd | haranp | 2007-06-23 15:01:49 +0000

Some cleanup of Abyss generation code. Beogh altars can now be found in the 
Abyss.

--------------------------------------------------------------------------------
c0c39501b9 | haranp | 2007-06-23 14:42:02 +0000

Nemelex pleasing updated. All previously-unknown cards now give 1-2 points of 
piety; finishing a deck (even if marked) gives an extra point.

--------------------------------------------------------------------------------
df39d45725 | haranp | 2007-06-23 14:21:09 +0000

Lots of things which used to be members (invis, conf, confusing_touch, etc.) 
are now durations. Removed some unnecessary limitations.

--------------------------------------------------------------------------------
f685950900 | haranp | 2007-06-23 10:03:36 +0000

Oops, Pentagram was summoning the wrong creatures (and for too long.)

--------------------------------------------------------------------------------
f99e05e0fe | haranp | 2007-06-23 09:53:35 +0000

Some more card implementations (resists in Helm, demon summoning.) More 
type-safety.

--------------------------------------------------------------------------------
639bda9744 | dshaligram | 2007-06-22 12:40:10 +0000

Moved lua/base.lua -> dat/clua/userbase.lua, source it automatically.
Removed references to base.lua from init.txt, and the other lua files.

--------------------------------------------------------------------------------
abb8fd86e7 | dshaligram | 2007-06-22 12:26:53 +0000

Pull c_macro out of the code and into clua/macro.lua.
User-script dofile and loadfile check for "clua" anywhere in the file name and
refuse to load the file in that case; only core Crawl code can load Lua files
from clua/*.

--------------------------------------------------------------------------------
609ccd171c | dshaligram | 2007-06-22 11:24:00 +0000

Fixed game mislabeling random race as Yak.

--------------------------------------------------------------------------------
81612f62eb | dshaligram | 2007-06-22 11:14:27 +0000

Labyrinths get tricoloured walls: rock at the periphery, stone further in, and 
metal walls closest to the minotaur vault.

--------------------------------------------------------------------------------
dcde5bcfc9 | dshaligram | 2007-06-22 10:25:47 +0000

Fixed broken newgame memory (David).

--------------------------------------------------------------------------------
f6d585f967 | dshaligram | 2007-06-22 09:31:20 +0000

Fixed KITEM to actually accept item lists, which it did not before (oops).
dungeon.cc autopads one square around labyrinth minivaults.

--------------------------------------------------------------------------------
255a872949 | j-p-e-g | 2007-06-21 19:22:57 +0000

Added some tweaks to Beogh: - now penance for attacking followers - permanent 
friendlies don't pick up stuff any more - different altar colour

--------------------------------------------------------------------------------
a1792c303b | dshaligram | 2007-06-21 19:20:47 +0000

Allow minivaults tagged "lab" to be used for labyrinth exits.

--------------------------------------------------------------------------------
9181a73f6f | dshaligram | 2007-06-21 16:41:45 +0000

Experimental new labyrinth maze generation. The right-hand rule still works; 
the maze can be very hard if we make it braided.

--------------------------------------------------------------------------------
9f969702ad | dshaligram | 2007-06-21 13:17:24 +0000

Override loadfile and dofile in the Lua user-script interpreter so they have to 
use datafile_path, and cannot use shell metacharacters (not that it matters) 
and ../ paths. Multiple loading is not prevented; we could probably add another 
function that does that.

--------------------------------------------------------------------------------
6e7c6ae567 | dshaligram | 2007-06-21 11:19:35 +0000

Added support for limiting memory used by the Lua interpreter.

--------------------------------------------------------------------------------
efe55b27c4 | dshaligram | 2007-06-21 07:15:52 +0000

Mouse support in Windows - supports look around in the main viewport, traveling 
to a spot in the main view and level-map, scrolling the level-map. We could 
probably also add mouse support for scrolling menus and stuff.

--------------------------------------------------------------------------------
14e3000983 | dshaligram | 2007-06-20 19:57:53 +0000

Fixed broken compile on DOS and Windows.

--------------------------------------------------------------------------------
8ad4f44fa7 | dshaligram | 2007-06-20 19:00:52 +0000

Experimental mouse support for ncurses (enable with mouse_input=yes in 
.crawlrc).

--------------------------------------------------------------------------------
2d4c05e46d | haranp | 2007-06-20 09:31:46 +0000

More minor cleanups.

--------------------------------------------------------------------------------
b31de410dd | dshaligram | 2007-06-20 07:06:33 +0000

Correct "artifact" to "artefact".

--------------------------------------------------------------------------------
efb6b63c27 | dshaligram | 2007-06-20 06:51:47 +0000

Robes of the archmagi reduce experience gain to 0.25 normal, instead of the old 
0.05.

--------------------------------------------------------------------------------
c2a18ff790 | dshaligram | 2007-06-19 20:02:05 +0000

Set debug hooks in the Lua VM and interrupt scripts that are running too long. 
(Necessary to make Lua usable on public servers.)

--------------------------------------------------------------------------------
c110d51c2f | dshaligram | 2007-06-19 16:49:46 +0000

Handle terminal resize on Windows (brute force; Windows has fascinatingly 
stupid ideas of when the terminal is actually resized).

--------------------------------------------------------------------------------
2c2e3d8ab2 | dshaligram | 2007-06-19 14:48:50 +0000

Simplified SIGWINCH handling - Crawl only handles SIGWINCH if it's waiting for 
a command (i.e. sitting in the main play screen) since it appears that deferred 
handling causes ncurses strange problems.

--------------------------------------------------------------------------------
915e044776 | dshaligram | 2007-06-19 14:21:12 +0000

Level updates (entries, snake pit) (David).

--------------------------------------------------------------------------------
0e8554f0c5 | haranp | 2007-06-19 10:13:37 +0000

A bit more type-safety (slightly intrusive this time): you.species and 
you.char_class.

--------------------------------------------------------------------------------
b20cad2058 | haranp | 2007-06-19 09:35:57 +0000

Added Lemuel's randart names with some editing.

--------------------------------------------------------------------------------
6dc0abe0ba | haranp | 2007-06-18 10:28:18 +0000

More strings instead of char*s.

--------------------------------------------------------------------------------
ae3f16ee39 | haranp | 2007-06-18 09:23:47 +0000

A few more char*s fall by the wayside, replaced by strings.

--------------------------------------------------------------------------------
5233dde1ad | j-p-e-g | 2007-06-18 08:29:55 +0000

reordering Beogh band difficulty

--------------------------------------------------------------------------------
202497a639 | haranp | 2007-06-17 22:25:02 +0000

Fixed 1734655: lev-3 brown scales was giving +6 AC instead of +5, while lev-3 
metallic was giving +9 instead of +10.

--------------------------------------------------------------------------------
bcd3e391a7 | haranp | 2007-06-17 21:55:31 +0000

Some more cards and bugfixes. Still not implemented: Shuffle, trowel, 
minefield, spade, blade. Partially implemented: Battlelust, helm, shadow, 
damage cards. Breaks savefiles.

--------------------------------------------------------------------------------
44f56edce8 | haranp | 2007-06-17 20:43:18 +0000

Complete revamp of cards and decks, following David's ideas. Many of the cards 
don't work yet (e.g., all Summoning cards); this will be fixed in the near 
future. Deck rarity, by the way, is encoded in its colour. Yuck - but I was out 
of bits in the item_def struct. Better ideas welcome.

--------------------------------------------------------------------------------
b7516d2799 | dshaligram | 2007-06-17 19:45:07 +0000

Basic SIGWINCH handling for Unix. Still needs to handle some cases (resizing 
the term in the level-map doesn't work right, for instance).

--------------------------------------------------------------------------------
23c5277317 | dshaligram | 2007-06-17 17:38:36 +0000

[1738010] Stash-tracker now also tracks traps and other dungeon features.
Changed env.grid to dungeon_feature_type. (The special-level builder still
stores map characters directly into env.grid and then translates them to
features.)

--------------------------------------------------------------------------------
a9a5ce7479 | dshaligram | 2007-06-17 14:16:52 +0000

x on the level-map changes travel exclusion radius. Radius steps are 1, 4 and 
8. Travel cache version also changes.
[1738213] describe_floor() now uses feature_description instead of rolling its
own. This does produce redundant messages when stepping into shallow water, but
I think we can live with that.

--------------------------------------------------------------------------------
3893b36195 | dshaligram | 2007-06-15 17:23:00 +0000

[1635047] Beams should not affect monsters that are dead.

--------------------------------------------------------------------------------
148d336e80 | j-p-e-g | 2007-06-15 12:44:35 +0000

Cleaned up abilities screen information for tutorial. Small additions to Beogh.

--------------------------------------------------------------------------------
9fc1df6562 | dshaligram | 2007-06-14 18:14:26 +0000

Remember choice of Beogh in character selection.
Some code reindenting and housekeeping.

--------------------------------------------------------------------------------
6a4da26977 | dshaligram | 2007-06-14 17:20:52 +0000

Fixed mass confusion working only on natural creatures (cbus).

--------------------------------------------------------------------------------
6dba2ac32d | j-p-e-g | 2007-06-14 08:55:24 +0000

Implemented Beogh, god of Orcs.
+ added information about random choice to newgame

--------------------------------------------------------------------------------
60f850418f | dshaligram | 2007-06-13 16:29:37 +0000

Fixed buggy chunk flavour messaging for carnivores wearing an amulet of the 
gourmand.

--------------------------------------------------------------------------------
029b566fae | dshaligram | 2007-06-12 17:02:00 +0000

Fixed message window scrolling bug on Windows.

--------------------------------------------------------------------------------
30f13ccfa4 | dshaligram | 2007-06-12 16:30:50 +0000

Xom should not polymorph undead monsters (Erik).

--------------------------------------------------------------------------------
81700689e6 | dshaligram | 2007-06-12 16:19:58 +0000

Fixed broken magic-mapped appearance. (Erik)

--------------------------------------------------------------------------------
b522bd978a | dshaligram | 2007-06-12 16:13:45 +0000

Removed extra space in surge-of-power messages (Erik).

--------------------------------------------------------------------------------
f8ef485767 | dshaligram | 2007-06-11 21:37:04 +0000

Fixed off-by-one error in Vestibule depth calculation.

--------------------------------------------------------------------------------
ad642d8a7a | dshaligram | 2007-06-11 19:35:53 +0000

Restore old behaviour of not prompting for depth to travel to in single-level 
branches.

--------------------------------------------------------------------------------
b22bcb35aa | dshaligram | 2007-06-11 18:10:28 +0000

Update changes list for 0.2.7.

--------------------------------------------------------------------------------
e93093aeac | dshaligram | 2007-06-11 09:58:09 +0000

Make sure curses is shutdown before producing term-too-small message.

--------------------------------------------------------------------------------
aa608ff717 | dshaligram | 2007-06-10 19:44:32 +0000

Fixed pandemonium bosses not being generated.

--------------------------------------------------------------------------------
eeb9ee8eb4 | dshaligram | 2007-06-10 16:37:51 +0000

Fixed compile breaking on Linux.
Orb guardians are no longer valid polymorph targets.

--------------------------------------------------------------------------------
b40ee659b4 | dshaligram | 2007-06-10 10:09:50 +0000

Updated CREDITS, INSTALL.

--------------------------------------------------------------------------------
5d8c5a8912 | j-p-e-g | 2007-06-10 09:31:00 +0000

Added information to the abilities screen during tutorials, akin to my previous 
commit for skills.

--------------------------------------------------------------------------------
43501a5b2e | dshaligram | 2007-06-10 09:29:22 +0000

Tweaks to build with Unicode support on Mac OS. Unfortunately none of the 
widely-used Mac terminal emulators has a clue on how to handle Unicode block 
characters (Terminal.app, iTerm, Terminator,...; they all suck), so Mac Unicode 
lovers will probably need to run X and urxvt or something along those lines.

--------------------------------------------------------------------------------
18092af0ef | j-p-e-g | 2007-06-09 21:34:21 +0000

Some more changes to the tutorial, most importantly to the skill screen (please 
check this, guys!) - I also changed the targetting description in the tutorial 
messages. If I've counted right, we've not got five commands to shoot at a 
previously selected target, namely ., f, p, t and Enter.

--------------------------------------------------------------------------------
00dd4bdc4c | dshaligram | 2007-06-09 18:25:48 +0000

Fixed broken macros on Windows (Erik).

--------------------------------------------------------------------------------
43541e9f37 | dshaligram | 2007-06-09 11:38:19 +0000

Added missing . to player attack miss messages (Erik).

--------------------------------------------------------------------------------
1d4d57fdcd | dshaligram | 2007-06-09 11:25:24 +0000

Mention that there's more travel help available in the depth-selection prompt.

--------------------------------------------------------------------------------
c2f5651b02 | dshaligram | 2007-06-09 11:09:54 +0000

Fixed off-by-one error in waypoint and exclude setting on the level-map (Erik).
Missile damage dice were being scaled before the full damage bonus was applied,
fixed.

--------------------------------------------------------------------------------
50fdf21100 | dshaligram | 2007-06-08 19:23:41 +0000

Fixed level-map not scrolling to show detected monsters and items.

--------------------------------------------------------------------------------
859a5ab42d | dshaligram | 2007-06-08 18:48:41 +0000

When showing glyphs in messages (as in the tutorial), use stringize_glyph() to 
convert Unicode glyphs to multibyte sequences.
Added multibyte_strlen to calculate string lengths correctly when dealing with
multibyte strings.

--------------------------------------------------------------------------------
e2b75cbb2a | dshaligram | 2007-06-08 17:03:38 +0000

Removed unnecessary turnloss when declining to memorise a spell. Also removed 
turnloss when trying to memorise spells that you already know, or that are too 
high-level, or need too many slots.

--------------------------------------------------------------------------------
edec5639b9 | dshaligram | 2007-06-08 15:00:47 +0000

Removed one line from the targeting prompt; should make it less -more- prone.

--------------------------------------------------------------------------------
3377d3cffd | dshaligram | 2007-06-08 13:53:37 +0000

Flush macro input buffer when fire command fails (Erik).
Allow using the special sequence \{!more} in macros to disable -more- prompts
while processing the macro expansion.

Fixed a couple of off-by-one errors in the level-map.

--------------------------------------------------------------------------------
314b930ce6 | dshaligram | 2007-06-08 06:34:54 +0000

Unicode builds were mangling IBM graphics, fixed.

--------------------------------------------------------------------------------
c32faa163b | dshaligram | 2007-06-07 21:46:49 +0000

Removed unnecessary < 0 check on glyphs.

--------------------------------------------------------------------------------
f065a2868d | dshaligram | 2007-06-07 17:51:47 +0000

Update 'V' feature display to include Unicode.

--------------------------------------------------------------------------------
ac6ed5ec91 | dshaligram | 2007-06-07 17:44:00 +0000

Mention that char_set = unicode works only if Crawl was built with Unicode 
support.

--------------------------------------------------------------------------------
ee653d2656 | dshaligram | 2007-06-07 17:32:26 +0000

Added support for Unicode characters in the map display with ncursesw (enabled 
by setting UNICODE_GLYPHS=y in makefile.unix).
Removed the (1,1) offset between map and grid. Both map and grid are now in
sync.

Store object indexes instead of raw characters in env.map so that players can
change charsets and have the display update immediately.

--------------------------------------------------------------------------------
23931ce205 | dshaligram | 2007-06-06 19:18:36 +0000

Banishment while standing on a dungeon feature was destroying the feature, 
fixed.

--------------------------------------------------------------------------------
a13cac4c73 | dshaligram | 2007-06-06 17:46:04 +0000

Removed targeting and level-map help from the main help screen since they're 
available elsewhere.
[1731478] Fixed game crashing when saving a screenshot (broken during the
viewport changes).

--------------------------------------------------------------------------------
71ae844db2 | dshaligram | 2007-06-06 15:49:03 +0000

Fixed a couple of minor errors in the manual.

--------------------------------------------------------------------------------
36efed5c0a | dshaligram | 2007-06-06 15:38:32 +0000

Manual update (David).

--------------------------------------------------------------------------------
2c159eb68f | dshaligram | 2007-06-05 18:34:39 +0000

Changed the new vaults to minivaults since they're excellent minivault material.

--------------------------------------------------------------------------------
b581e2d664 | dshaligram | 2007-06-05 18:16:09 +0000

New vaults.

--------------------------------------------------------------------------------
c3340cfae5 | dshaligram | 2007-06-05 17:31:29 +0000

Change list for 0.2.6.

--------------------------------------------------------------------------------
fe9c5c6fd2 | dshaligram | 2007-06-05 06:13:08 +0000

Drop -Wconversion; it complains about implicit signed->unsigned conversions on 
newer gccs.

--------------------------------------------------------------------------------
4f8425fbbc | dshaligram | 2007-06-04 14:23:33 +0000

Added a precautionary check for an empty delay queue (really shouldn't be 
possible) during run.

--------------------------------------------------------------------------------
ab138e22e1 | dshaligram | 2007-06-04 14:20:34 +0000

Fixed turn-loss during travel: - Interlevel travel was losing one turn when 
taking stairs. - Greedy explore was losing one turn when picking up items.

--------------------------------------------------------------------------------
fdfd83c510 | dshaligram | 2007-06-04 13:14:19 +0000

[1730376] Branch stairs are now coloured yellow in the level map, as they are 
in the main view.

--------------------------------------------------------------------------------
f51727efb9 | dshaligram | 2007-06-04 12:43:38 +0000

[1730416] Warn player if not switching back to original weapon when butchery is 
interrupted.
Also tweaked delay handling, since delays (particularly stacked delays) were
taking more turns than intended.

Changes to delays:
- A delay of 1 is assumed to mean *one* turn spent performing the delay action.
- Finishing a delay takes no additional turns (because all the work was done in
  the prior turns).
- No turn is lost after finishing a delay and before starting the next delay.
  finish_delay() immediately calls handle_delay() to start on the next delay.

Some delay turn counts:
Activity                                0.2       0.3
Eat a pear                               3         2
Butcher a corpse (no weapon swap)        5         4
Butcher a corpse (swapping weapons)      9         6
Take off robe (when wearing cloak)       8         5
Wear a cloak                             3         2

--------------------------------------------------------------------------------
ca72b70cd5 | dshaligram | 2007-06-04 11:09:26 +0000

[1730386] Clouds override visibility of monsters submerged in shallow water.
Fixed buggy check for fire elementals regenerating in flaming clouds.

--------------------------------------------------------------------------------
48593ab2d1 | dshaligram | 2007-06-04 10:42:28 +0000

[1723695] Fixed unholy (and silly) travel cache corruption bug.

--------------------------------------------------------------------------------
3f06459851 | dshaligram | 2007-06-04 08:03:13 +0000

Removed a couple of unnecessary viewport-center calls.

--------------------------------------------------------------------------------
48be83b471 | dshaligram | 2007-06-04 07:56:33 +0000

isblank is not available on DOS djgpp, replaced with == ' '.

--------------------------------------------------------------------------------
71bf7be8a1 | dshaligram | 2007-06-04 07:47:19 +0000

Fixed libw32c.cc to work with the new viewport changes.

--------------------------------------------------------------------------------
a75a924ca5 | dshaligram | 2007-06-04 06:53:25 +0000

[1699948] Allow changing the viewport size if you're using a larger terminal 
than 80x24. Also allow moving the PC around the viewport without scrolling the 
viewport if the viewport is large enough.
This is not tested on DOS and Windows yet.

--------------------------------------------------------------------------------
b53b7421dc | dshaligram | 2007-06-03 14:30:44 +0000

Refix charm check so interrupt is not fired for monsters not in view.

--------------------------------------------------------------------------------
14422af977 | dshaligram | 2007-06-03 14:22:55 +0000

[1690815] Monsters that lose ENCH_CHARM should not generate "The foo comes into 
view" message.

--------------------------------------------------------------------------------
58f5b0055e | dshaligram | 2007-06-03 13:43:23 +0000

Note travel target before checking i_feel_safe() (so that the player's 
painfully selected destination is not lost because he didn't notice a giant bat 
in LOS.)

--------------------------------------------------------------------------------
aa745ecf84 | dshaligram | 2007-06-03 13:33:39 +0000

[1709687] Fixed Vehumet and Lugonu not accepting kills by undead slaves.
Fixed Lugonu not accepting butchered corpses.

Fixed Elyvilon not being angered by butchery while praying.

Moved item sacrifice messages to the god channel.

--------------------------------------------------------------------------------
e7e68563e1 | dshaligram | 2007-06-03 13:12:14 +0000

[1715565] Removed "You mutate" message which is irrelevant since the specific 
mutation is spelled out immediately afterwards.
The mutation channel now has a default colour of lightred.

--------------------------------------------------------------------------------
e835b279ab | dshaligram | 2007-06-03 12:56:10 +0000

[1589849] Enabled ! in targeting mode to aim beams at a specific spot.
Beams aimed at the ground will hit creatures submerged in shallow water,
but enchantments will do nothing, lightning will ground harmlessly, and other
conjurations will do 2/3rd their normal damage.

Made target_unshifted_dirs turn off default_target, and vice versa, since the
options don't go well together.

--------------------------------------------------------------------------------
13ecdac2de | dshaligram | 2007-06-03 10:18:46 +0000

[1728875] Fixed monsters not being drawn until one turn after being generated.
Added floor around columned hall.

--------------------------------------------------------------------------------
6133f1e422 | dshaligram | 2007-06-03 09:59:15 +0000

$ in the interlevel travel depth prompt changes the default to the deepest 
visited level in the branch.

--------------------------------------------------------------------------------
84a6e8527d | dshaligram | 2007-06-03 06:49:58 +0000

Improve beam selection by trying to match slopes (well, munged slopes) to the 
slope to the target. We use the average of the beam slope and the slope of the 
starting point of the beam from the center of the starting cell.
This picks better beams for points close to the player - (2,1) for instance
than my first attempt.

--------------------------------------------------------------------------------
8e921b6d07 | dshaligram | 2007-06-03 05:52:03 +0000

[1730096] Updated Xcode project to include xom.cc.

--------------------------------------------------------------------------------
ab26294b3f | dshaligram | 2007-06-02 18:07:28 +0000

Fixed silly type-conversion bugs I introduced, added -Wconversion to 
makefile.unix to catch these problems sooner.

--------------------------------------------------------------------------------
77bd894ea2 | dshaligram | 2007-06-02 17:51:08 +0000

Highlight monsters in the path of a beam (with :).

--------------------------------------------------------------------------------
882095e2a1 | dshaligram | 2007-06-02 16:54:20 +0000

This is an experimental attempt at selecting more intuitive beams for targeting 
(see 1725723): - The default beam selected for targeting is the shortest 
available beam   that is closest to the Bresenham line between src->targ. - 
Targeting beams convert aliased perpendiculars into diagonals, which   look 
better. This requires an immortal fudge to make sure the diagonal   conversion 
doesn't happen at the wrong places (when the conversion   would cause the beam 
to miss the target square). - Tweaked beam bounce behaviour to look more 
natural.
Comments and suggestions welcome.

--------------------------------------------------------------------------------
35f7fe0aa9 | dshaligram | 2007-06-02 07:28:41 +0000

[1726243] Changed out-of-sight stash description for additional items from (+n) 
to (...n).

--------------------------------------------------------------------------------
5f4d5a03ae | dshaligram | 2007-06-02 07:23:32 +0000

[1727700] Produce appropriate message when an invisible monster is polymorphed 
into a visible monster.

--------------------------------------------------------------------------------
77a7935174 | dshaligram | 2007-06-02 07:10:43 +0000

Monsters teleported away from the stairs you land on when entering a level 
should not produce teleport messages.

--------------------------------------------------------------------------------
cfe60dc53d | dshaligram | 2007-06-02 07:08:25 +0000

[1727099] Monster spotted on the edge of FOV that immediately turns invisible 
was not stopping explore, fixed. Well, hacked. There's no perfect solution to 
this if we also want to avoid stopping travel/explore for monsters that show up 
and then leave FOV.

--------------------------------------------------------------------------------
2945d473b0 | dshaligram | 2007-06-02 06:47:02 +0000

[1728745] When reading books, exiting from a spell description leaves you in 
the spell listing.

--------------------------------------------------------------------------------
336dafbe86 | dshaligram | 2007-06-02 06:35:12 +0000

[1729180] Fixed message sequence when player scrambles out of deep water into 
shallow water.

--------------------------------------------------------------------------------
f5024d90ed | dshaligram | 2007-06-02 06:23:34 +0000

[1722797] Fixed grammar bugs in item sacrifice messages.

--------------------------------------------------------------------------------
9e378ceeed | dshaligram | 2007-06-02 05:56:56 +0000

[1726681] Fixed friendly neqoxecs using brain-feed on the player (use of 
get_spell_flags instead of spell_typematch).

--------------------------------------------------------------------------------
f6ab3d8b55 | dshaligram | 2007-06-02 05:26:39 +0000

[1728545] Fixed "you swing at nothing" message when using (o)pen door on a 
space that has no door.

--------------------------------------------------------------------------------
ae5abcdab6 | dshaligram | 2007-06-01 12:39:38 +0000

[1612448] Allow polearm users to attack monster submerged in shallow water. 
Need to update the AI so the monster either flees or unsubmerges and fights.

--------------------------------------------------------------------------------
f6ec4c4fbd | dshaligram | 2007-06-01 12:27:26 +0000

Fixed broken view colours.

--------------------------------------------------------------------------------
80e2e061e3 | dshaligram | 2007-06-01 11:42:47 +0000

[1603676] Stairs override items on the same square for display purposes if 
stair_item_brand is set (defaults to reverse).
Fixed compile error in clua.cc (oops).

--------------------------------------------------------------------------------
8e2be8ec84 | dshaligram | 2007-06-01 10:36:59 +0000

Added you.god() to Lua bindings.
[1595846] Fixed turnloss for evoking an item that's not evokable.

--------------------------------------------------------------------------------
ccbc07627f | dshaligram | 2007-06-01 06:56:10 +0000

[1729219] Document item class names that can be used in .des files.

--------------------------------------------------------------------------------
3d60606a21 | dshaligram | 2007-05-31 19:47:01 +0000

Removed unnecessary targeting check for acid spit.
Killed extra space in acid corrosion messages.

--------------------------------------------------------------------------------
10209b0d3b | dshaligram | 2007-05-31 19:32:43 +0000

Allow ogre-mage reavers.

--------------------------------------------------------------------------------
7c5e545086 | dshaligram | 2007-05-31 19:25:30 +0000

sort_menus now allows the user to choose what menus to sort, and how to sort 
items, at the cost of obfuscating the sort_menus option massively.

--------------------------------------------------------------------------------
8df9960b2b | dshaligram | 2007-05-30 16:47:03 +0000

default_target defaults to true (David).

--------------------------------------------------------------------------------
3afd25bf7e | haranp | 2007-05-30 01:48:58 +0000

Fix for 1726595: notes composed only of whitespace caused a crash.

--------------------------------------------------------------------------------
3c0284d143 | dshaligram | 2007-05-28 11:34:21 +0000

Update canned level compiler.

--------------------------------------------------------------------------------
d4065da159 | dshaligram | 2007-05-28 11:28:11 +0000

Added new orc entries and vaults (Lemuel).
Added support to the map designer for specifying the monster-type for zombies,
skeletons, simulacra and spectral things. Also allow specifying the number of
heads for hydras ("12-headed hydra").

Fixed lexer rule bug (IDENTIFIER).

--------------------------------------------------------------------------------
20a6609453 | dshaligram | 2007-05-28 08:47:30 +0000

Preliminary integration of Zooko's Xom patch (untested).

--------------------------------------------------------------------------------
7aed4c41d7 | haranp | 2007-05-23 23:36:40 +0000

Crash fix in ms_low_hitpoint_cast (1722402.)

--------------------------------------------------------------------------------
1660ba3a38 | dshaligram | 2007-05-22 21:21:48 +0000

Special damage messages were being produced for out-of-view combat, fixed 
(jarpiain).

--------------------------------------------------------------------------------
a3a71df01f | peterb12 | 2007-05-21 23:40:50 +0000

Added a few more descriptions.

--------------------------------------------------------------------------------
89f0870789 | haranp | 2007-05-20 22:18:13 +0000

Changed spell failure rate descriptions per 1714661 (slightly modified.) The 
breakpoints are now at 5%, 10%, 20%, 30%, 50%, 70%, 80%, 90%, 95%.

--------------------------------------------------------------------------------
5e05ffc14e | haranp | 2007-05-19 20:51:51 +0000

monam(), moname() and ptr_monam() are gone. The replacement is str_monam() and 
mons_type_name(). str_monam() should probably be folded into actor::name. I 
think. Deaths from zombies, skeletons and simulacra will not handle the name 
correctly; needs a further hack.

--------------------------------------------------------------------------------
3ecc52d48d | dshaligram | 2007-05-19 17:37:17 +0000

Killed extra space in levitation message.
Fixed old bug where a kenku that's levitating when levelling up to XL 15 is
stuck with permalevitation instead of permafly.

--------------------------------------------------------------------------------
bf1ccbad46 | dshaligram | 2007-05-18 07:32:35 +0000

Tweaked version.h and command.cc to add revision info for Windows svn builds.
Ice beasts get AT_HIT instead of AT_CLAW (to correspond to Ice Form).

Yaks and death yaks get AT_BUTT instead of AT_HIT. Maybe we should add AT_GORE,
AT_KICK, and AT_TRAMPLE too. :-)

--------------------------------------------------------------------------------
2745b7a72f | haranp | 2007-05-17 22:21:19 +0000

Disallowed simulacra and zombies as polymorph targets. (This might be too 
restrictive.) Fixes 1720479.

--------------------------------------------------------------------------------
90070fb4dd | haranp | 2007-05-17 22:08:45 +0000

Clear special and inscription in fulsome-distillation created objects. Made 
ident_mask return unsigned long as it should, rather than int.

--------------------------------------------------------------------------------
720441b258 | haranp | 2007-05-17 21:41:30 +0000

Refix for 1719721: what I thought was a simple fix in InvEntry turned out to be 
a bug...We might want a 'bool inv_prefix' argument to name(), or an appropriate 
description_type.

--------------------------------------------------------------------------------
ce9f50e78b | haranp | 2007-05-17 21:28:12 +0000

Horrible bug from r1477 fixed. Oops.

--------------------------------------------------------------------------------
d82ee4ebd8 | haranp | 2007-05-15 20:12:11 +0000

Minor cleanups.

--------------------------------------------------------------------------------
7788807713 | haranp | 2007-05-15 17:02:30 +0000

Nemelexites now require confirmation before offering runes, orbs, or objects 
marked with !p (or !*) on a non-altar square. Nothing gets offered unless the 
player OKs everything, so inscribing a couple of items in your stash with !p 
should be enough paranoia.

--------------------------------------------------------------------------------
21a20c8edf | haranp | 2007-05-15 07:53:50 +0000

Added a debug card command. Documented some of the debug commands in the help.

--------------------------------------------------------------------------------
9b09694770 | haranp | 2007-05-15 07:27:59 +0000

Made make_time_string() return std::string, not char*.

--------------------------------------------------------------------------------
0cb9011c4d | haranp | 2007-05-15 03:54:11 +0000

1718585: 'f' and 't' behaviour changed, as follows: If cursor is on you, 'f' 
and 't' act like 'p' (fire at previous target.) Otherwise they act like '.' 
(fire at current target.) 'p' is still unconditional fire-at-previous-target.

--------------------------------------------------------------------------------
542cf75b89 | haranp | 2007-05-15 03:31:38 +0000

Fix for 1718108, ability_letter_table was meaningless.

--------------------------------------------------------------------------------
8424cc75e9 | dshaligram | 2007-05-14 15:23:05 +0000

Tweaked temple_pool (David).
Added (Press ? for help) in level map title.

--------------------------------------------------------------------------------
c8a0422eec | haranp | 2007-05-12 22:06:47 +0000

Removed portable altars. Nemelex prayers will now sacrifice everything on the 
current square. (This will need some interface improvements to prevent players 
from 'p'ing away their stash...) Also removed some unused enums and enum 
values. Breaks savefiles.

--------------------------------------------------------------------------------
45b96dcd54 | dshaligram | 2007-05-12 18:02:26 +0000

Removed obsolete ALLOW_DESTROY_ITEM_COMMAND.

--------------------------------------------------------------------------------
8b9d48402b | haranp | 2007-05-11 23:21:30 +0000

Deck stacking implemented. Five cards (or less, if there are less) are drawn, 
you get to stack them in any order, and the rest of the deck is discarded. The 
next card is inscribed on the deck; the remainder can be seen with 'v'. This is 
now Nemelex's top ability.

--------------------------------------------------------------------------------
a81a0b436a | dshaligram | 2007-05-11 16:23:56 +0000

Updated changes list for 0.2.5.

--------------------------------------------------------------------------------
295bf5c4e5 | dshaligram | 2007-05-11 16:07:26 +0000

Refix monster paralysis interaction with levitating monsters.
Unseen horrors no longer levitate.

--------------------------------------------------------------------------------
644ceed285 | dshaligram | 2007-05-11 15:56:25 +0000

Paralysis + flying monster over deep water was broken, fixed.

--------------------------------------------------------------------------------
ea5b4cb86e | dshaligram | 2007-05-11 15:29:16 +0000

Tweaked self-target confirmation to use show_prompt.

--------------------------------------------------------------------------------
659b254668 | dshaligram | 2007-05-11 15:27:04 +0000

Change targeting prompt if target_unshifted_dirs is set.
Show targeting prompt when exiting targeting help.

--------------------------------------------------------------------------------
aa28a335cc | dshaligram | 2007-05-11 15:12:58 +0000

Provide sample message_colour lines in init.txt to suppress extra messages for 
travel/shift-run/rest.

--------------------------------------------------------------------------------
8153e03699 | haranp | 2007-05-11 14:51:15 +0000

Fix Corpse Rot too.

--------------------------------------------------------------------------------
5e0c60b202 | haranp | 2007-05-11 14:49:06 +0000

Fix animate dead bug (rvollmert - 1717252).

--------------------------------------------------------------------------------
005372e15f | haranp | 2007-05-11 14:24:01 +0000

Implemented Nemelex's 'sneak peek' ability.

--------------------------------------------------------------------------------
7b4192f994 | dshaligram | 2007-05-11 14:15:59 +0000

Fixed out-of-sight messages for distortion attacks.

--------------------------------------------------------------------------------
8f02d0a11e | haranp | 2007-05-11 08:23:35 +0000

Amulet/ring swapping now respects !R, !*. (The message produced is a bit 
confusing with amulets, though.)

--------------------------------------------------------------------------------
94d5d35e9b | haranp | 2007-05-11 07:56:38 +0000

Spelling fixes (mainly from Dylan.) Fixes 1716479, 1715722. Except that I kept 
'heavily armoured' (rather than 'heavily-armoured'.) We might want to be 
consistent as to whether we have single or double spacing after fullstops, but 
since both are used rather widely in the code I didn't fix it either way.

--------------------------------------------------------------------------------
90ac0755a3 | dshaligram | 2007-05-10 16:38:57 +0000

Level-files are now saved with subdungeon depths rather than absolute depths. 
Breaks save compatibility resoundingly. The advantage of the change is that 
ghosts dying in a branch will always be reloaded at the same depth in the 
branch.
Fixed minor bug that could result in branch stairs taking you to different
places on successive visits.

--------------------------------------------------------------------------------
a4ac31b151 | dshaligram | 2007-05-10 11:59:37 +0000

Updated level-design.txt.
Added spacing for another minivault, updated depths.

Tweaked KMONS: to allow alternate monsters to be placed if a requested unique
is unavailable.

--------------------------------------------------------------------------------
dc456cfe8e | dshaligram | 2007-05-09 20:12:54 +0000

Update prebuilt level-compiler.

--------------------------------------------------------------------------------
d0fff4d62c | dshaligram | 2007-05-09 20:11:46 +0000

Fixed Mac build.

--------------------------------------------------------------------------------
d69688f0d7 | dshaligram | 2007-05-09 19:52:59 +0000

Added Lemuel's mines minivaults.
Extended map DEPTH: attribute to support branch specifiers and negated depth
specifiers.

--------------------------------------------------------------------------------
b31a9edb30 | dshaligram | 2007-05-09 16:08:33 +0000

Travel handles plants better.

--------------------------------------------------------------------------------
f83cdd076f | dshaligram | 2007-05-09 15:42:10 +0000

Added help for interlevel travel prompts.

--------------------------------------------------------------------------------
d336eb95ef | dshaligram | 2007-05-09 15:04:48 +0000

. is a synonym for the current-branch at the interlevel travel branch prompt.

--------------------------------------------------------------------------------
163667976c | dshaligram | 2007-05-09 15:01:16 +0000

Force mesclr() at travel depth prompt to avoid hideous prompts with 
delay_message_clear.

--------------------------------------------------------------------------------
523f4a0a54 | dshaligram | 2007-05-09 14:55:40 +0000

Interlevel travel tweaks: * ^P at branch prompt selects the parent branch of 
the branch you're in (or   the main dungeon if you're in the main dungeon). * 
The depth prompt is always shown, even for single-level branches. This may   
need to be rolled back if it's too annoying. * At the depth prompt, you can use 
< to go one level above the default   (navigating up into the parent branch if 
necessary) and > to go one level   below the default (never navigating into 
deeper branches). - or p or ^P will   change the default to the level closest 
to the current default in the parent   branch.

--------------------------------------------------------------------------------
7dfc7ccd3d | dshaligram | 2007-05-09 10:15:13 +0000

Weakened stab bonus from invisibility.
Monsters throwing stuff out of sight should not produce a message, fixed.

--------------------------------------------------------------------------------
ec7432d4ec | haranp | 2007-05-09 08:34:05 +0000

Nemelex now grants a 'triple draw' ability: choose 1 out of 3 (or out of 
however many are left.) Cost is 2MP + food + piety. This of course makes 
Nemelex completely, totally and absolutely broken; it's only the beginning of 
the Nemelex revamp.

--------------------------------------------------------------------------------
56e8efa47f | haranp | 2007-05-09 07:35:26 +0000

Paladins don't confirm strikes when berserk (1715386.)

--------------------------------------------------------------------------------
fe135a4986 | haranp | 2007-05-08 22:25:29 +0000

Lanterns of shadows now cut vision radius by 2. This may be too good.

--------------------------------------------------------------------------------
caf161d17b | haranp | 2007-05-08 22:01:14 +0000

1714666: nagas might now come wearing barding, as follows: 1/800 chance for 
normal nagas, 1/300 for naga warriors, 1/200 for naga mages, 1/100 for greater 
nagas.

--------------------------------------------------------------------------------
970cd5283c | haranp | 2007-05-08 21:41:35 +0000

Conjuring flame onto a fire cloud now makes the fire yours and lengthens its 
duration.

--------------------------------------------------------------------------------
8371272361 | haranp | 2007-05-08 20:20:19 +0000

Reverted dancing weapons character change.

--------------------------------------------------------------------------------
9c51440e1c | haranp | 2007-05-08 19:34:48 +0000

Squashed a warning.

--------------------------------------------------------------------------------
4693832f9d | haranp | 2007-05-08 19:29:27 +0000

Cleaned up ability handling. It's still rather hacky, but not nearly as bad as 
the old horror.

--------------------------------------------------------------------------------
035aa2aee0 | dshaligram | 2007-05-08 14:37:08 +0000

Tweaked spell-list to use regular menu instead of a slider.

--------------------------------------------------------------------------------
90a4b849d1 | haranp | 2007-05-08 09:13:07 +0000

Changed list_spells() somewhat. It's now a slider wraparound menu. (Also 
changed the meaning of what some of the flags do to slider_menu, the default 
behaviour should be unaltered.)

--------------------------------------------------------------------------------
c8dad26d1f | haranp | 2007-05-07 22:13:27 +0000

Amulet of inaccuracy now affects beams.

--------------------------------------------------------------------------------
e767f02fd8 | haranp | 2007-05-07 22:02:04 +0000

Dancing weapons now randomly alternate between ')' and '(' (David, 1709688)

--------------------------------------------------------------------------------
40001a4b6e | dshaligram | 2007-05-07 16:46:06 +0000

Fixed broken shuffles.

--------------------------------------------------------------------------------
5dbbc7545d | dshaligram | 2007-05-07 16:28:51 +0000

Tweaked level-design.txt.
Removed obsolete gourmand.lua.

--------------------------------------------------------------------------------
06bd2b5761 | dshaligram | 2007-05-07 16:16:13 +0000

Treat + and = at the edge of a map as an exit (David).

--------------------------------------------------------------------------------
520ea88045 | dshaligram | 2007-05-07 16:02:22 +0000

Added missing ORIENT: to two entry vaults.

--------------------------------------------------------------------------------
aa38167bc3 | dshaligram | 2007-05-07 15:28:54 +0000

Moved entry vaults and branch entries into their own .des files.

--------------------------------------------------------------------------------
cfe04d85df | dshaligram | 2007-05-07 14:56:34 +0000

Updated levels (David).

--------------------------------------------------------------------------------
cfda69d1ae | haranp | 2007-05-07 14:05:46 +0000

Spell power strings now reflect power caps.

--------------------------------------------------------------------------------
fa0e36a06c | haranp | 2007-05-07 12:37:19 +0000

Zappiness type safety.

--------------------------------------------------------------------------------
80efbb31ca | haranp | 2007-05-07 12:24:40 +0000

Messaging improvements.

--------------------------------------------------------------------------------
05982cef94 | dshaligram | 2007-05-05 07:31:02 +0000

Travel cache was not handling stair distances correctly, fixed.

--------------------------------------------------------------------------------
e95171de09 | dshaligram | 2007-05-05 06:05:12 +0000

[1712555] [1712558] Prices of rings of slaying were being miscalculated; also 
fixed being able to memorise spells while berserk (Rob Vollmert).

--------------------------------------------------------------------------------
c8df9af2cd | dshaligram | 2007-05-04 07:11:20 +0000

Allow Mac users to double-click to launch Crawl: - Use argv[0] to figure out 
where Crawl lives and where to find data files.   The Mac Finder sets the 
working directory to / and the full path to the   executable is available in 
argv[0] when the user double-clicks. - Converted some of the old char*s to 
std::string.

--------------------------------------------------------------------------------
fa61313c50 | dshaligram | 2007-05-03 06:06:18 +0000

Jellies could eat the Horn of Geryon, fixed (jarpiain).

--------------------------------------------------------------------------------
00ebc7f2bd | dshaligram | 2007-05-01 18:21:34 +0000

Added level-design howto (David).

--------------------------------------------------------------------------------
7c43ae6878 | dshaligram | 2007-05-01 17:28:26 +0000

Extensive map randomisation (David).
Zot trap sound messages were being sent to the wrong channel, fixed.

--------------------------------------------------------------------------------
b661ab5671 | haranp | 2007-05-01 14:53:48 +0000

Oops, assassin needles should be either poisoned or curare, not normal.

--------------------------------------------------------------------------------
106fb6de1c | haranp | 2007-05-01 14:47:53 +0000

Type safety, cast cleanups, etc.

--------------------------------------------------------------------------------
83043ea070 | haranp | 2007-04-29 22:08:55 +0000

Fix for bug 1571295: should be 'an orc suddenly appears', not 'the orc suddenly 
appears.'

--------------------------------------------------------------------------------
e4d56c6724 | haranp | 2007-04-29 21:02:47 +0000

Changed assassin startup kit: non-elves now start with 5+2d5 needles and 1d4 
curare needles, following 1703548. (Also fixed another bug with initial item 
linkage.)

--------------------------------------------------------------------------------
335bc1e39a | haranp | 2007-04-29 20:42:33 +0000

No water monsters in the Crypt (David.)

--------------------------------------------------------------------------------
5158a056d8 | haranp | 2007-04-29 20:22:14 +0000

Doc fixes.

--------------------------------------------------------------------------------
516bb94c3c | dshaligram | 2007-04-29 16:37:55 +0000

Better handling for mimics in .des files, fixed guardian naga minivault.

--------------------------------------------------------------------------------
2931994db5 | dshaligram | 2007-04-29 11:47:50 +0000

Removed dud verbose_dump and detailed_stat_dump options, and dead code in 
shopping.cc (Haran).

--------------------------------------------------------------------------------
141b28bcbc | haranp | 2007-04-29 11:39:08 +0000

Invisibility helps stabbing (perhaps too much; review?)

--------------------------------------------------------------------------------
c5eb6a75b0 | haranp | 2007-04-29 11:24:06 +0000

Added a show_inventory_weights option (defaults to false), following 1629320.

--------------------------------------------------------------------------------
b51817cbfd | haranp | 2007-04-29 08:47:39 +0000

Teeny bit more typesafety.

--------------------------------------------------------------------------------
04d222f4d7 | haranp | 2007-04-29 08:23:53 +0000

Fix for (part of) 1709375: monsters dying not because of you always got "dies" 
(instead of testing wounded_damage() for constructs, etc.)

--------------------------------------------------------------------------------
4e5a7a56ce | j-p-e-g | 2007-04-28 23:32:56 +0000

Armour colours revisited: differentiate animal skins and caps
armour type    old colour     prev colour    new colour
-----------    ----------     -----------    ----------
animal skin    yellow         brown          LIGHT GREY
robe           rand uncommon  special col    RED
cap, wiz hat   rand uncommon  special col    MAGENTA
gloves         light blue     light grey     light blue

The rest remains as is.

--------------------------------------------------------------------------------
1a5016cf91 | haranp | 2007-04-28 18:46:16 +0000

Added an std::ostream, mpr_stream, to the message.h interface. The usage is 
along the lines of: mpr_stream << setchan(MSGCH_PROMPT) << "this will be output 
to prompt"            << i << "/" << j << std::endl; This is very hacky at the 
moment, but at least it's much more type-safe than mprf()...

--------------------------------------------------------------------------------
0d012087e1 | nlanza | 2007-04-28 16:48:03 +0000

Update the Xcode build.

--------------------------------------------------------------------------------
90629939ac | haranp | 2007-04-28 13:49:28 +0000

Some code review and cleanup. extern char info[] is almost gone.

--------------------------------------------------------------------------------
5b1c130358 | haranp | 2007-04-28 09:33:16 +0000

And the beat goes on (stringstreams).

--------------------------------------------------------------------------------
865149aa81 | haranp | 2007-04-27 16:31:47 +0000

Oops, rings were getting doubled names, fixed. The march towards ostringstream 
goes on.

--------------------------------------------------------------------------------
f3ea347385 | dshaligram | 2007-04-27 15:37:59 +0000

Refix quarterstaff damage fix.

--------------------------------------------------------------------------------
5575ae2b4e | haranp | 2007-04-27 15:37:54 +0000

s/island/shoal/

--------------------------------------------------------------------------------
f0deecaa9c | dshaligram | 2007-04-27 15:31:10 +0000

[1707320] The game was not reducing damage for quarterstaff + shield, fixed.

--------------------------------------------------------------------------------
3681a15ca6 | dshaligram | 2007-04-27 15:02:46 +0000

Fix for the sealed entry vault problem.

--------------------------------------------------------------------------------
a65e117417 | haranp | 2007-04-27 12:58:01 +0000

Minotaurs can now map labyrinths (1708374). Note that sense surroundings gives 
every class the ability to magic-map everywhere...maybe we should change this?

--------------------------------------------------------------------------------
a9b46da564 | haranp | 2007-04-27 12:51:16 +0000

Implemented 1708500, generate a message when an item is lost in the depths. 
Shut up a compile-time warning in makeitem.cc.

--------------------------------------------------------------------------------
79bbaa47cd | haranp | 2007-04-27 12:40:18 +0000

More minor cleanups.

--------------------------------------------------------------------------------
ea7b6a6995 | j-p-e-g | 2007-04-27 12:24:50 +0000

Modified armour colours in accordance to weapons. Changes are as follows:
armour type       old colour       new colour
-----------       ----------       ----------
centaur barding   green            green
naga barding      light green      GREEN
cloak             white            white
leather armour    brown            brown
animal skin       yellow           BROWN
robe, cap, 
wizard hat        random uncommon  RED, LIGHT BLUE or MAGENTA
helmet            dark grey        dark grey
boot              blue             blue
gloves            light blue       LIGHT GREY
crystal plate     white            white
armour            light cyan       light cyan
shield            light cyan       CYAN
dwarven ...       cyan             ---

randart colours (as for weapons):
light green, light red, yellow, light magenta

--------------------------------------------------------------------------------
b49f342925 | haranp | 2007-04-27 11:59:31 +0000

Rewrite of item_def::name() (the old itemname()). Much, much cleaner now.

--------------------------------------------------------------------------------
f3ece5fe65 | haranp | 2007-04-27 07:01:38 +0000

Fix 1708496, crash due to bug in ms_low_hitpoint_cast().

--------------------------------------------------------------------------------
dd695c352f | haranp | 2007-04-26 15:31:53 +0000

Made item_def::base_type into object_class_type, instead of unsigned char. 
Flushed out a few bugs as a result, specifically: 1. Some monsters (e.g., orcs) 
can now get blowguns as they were intended to (look at the makeitem.cc change); 
2. Acquirement will no longer attempt to give you the books of minor magic if 
you've found them (look at the effects.cc change.)

--------------------------------------------------------------------------------
269a1da760 | haranp | 2007-04-26 14:19:36 +0000

Minor speedup in stash item name generation: use const_cast<> instead of 
copying a temporary.

--------------------------------------------------------------------------------
c392dcf1c5 | haranp | 2007-04-26 13:09:09 +0000

You can now see through one (but not two) smoky cells.

--------------------------------------------------------------------------------
c319b212cb | haranp | 2007-04-25 20:32:48 +0000

Various cleanups. Also fixed bug 1703500, inventory letters appearing twice 
until save/restore.

--------------------------------------------------------------------------------
e46965c192 | dshaligram | 2007-04-25 19:41:46 +0000

Allow describing rod/spellbook spells from the examine command (jarpiain).

--------------------------------------------------------------------------------
3729bb7d83 | haranp | 2007-04-25 18:49:20 +0000

Removed oklob nonbrandability, since we visibly distinguish them anyway.

--------------------------------------------------------------------------------
56fb5e29c0 | dshaligram | 2007-04-25 18:48:06 +0000

OOD monster generation now starts only if you stay on a level for long enough 
(700 turns on D:1, declining linearly to ~0 turns on D:7). Similar rules apply 
for extreme OOD generation.
Breaks save compatibility with earlier 0.3 saves.

Needs playtesting, perhaps some relaxation of the rules for moderate OODness if
the monster mix gets too bland.

--------------------------------------------------------------------------------
3696d41c00 | dshaligram | 2007-04-25 16:23:51 +0000

Cannot memorise spells when confused (Erik).

--------------------------------------------------------------------------------
f817284d0e | dshaligram | 2007-04-25 15:22:27 +0000

Branch entry vaults now respect DEPTH: declarations so you can put tough branch 
entries deeper.
Detect creatures no longer clears the level map of detected items.

--------------------------------------------------------------------------------
e11f6ceb8c | haranp | 2007-04-25 10:06:09 +0000

load() cleanups. Rock stairs now take you to the closest stair distance-wise. 
This invalidates the interlevel travel cache.

--------------------------------------------------------------------------------
367e8413d5 | dshaligram | 2007-04-25 09:02:36 +0000

More special level randomisation (David).

--------------------------------------------------------------------------------
c6cfab9c8d | dshaligram | 2007-04-25 06:37:02 +0000

Mummies fall apart in deep water, demons can drown in deep water or lava.
Fixed missing space for randart "Thing".

Use SQLITE_TRANSIENT when inserting data into the db.

--------------------------------------------------------------------------------
c6274e336b | haranp | 2007-04-24 23:24:56 +0000

Third time's the charm. Don't mystify auto_listers.

--------------------------------------------------------------------------------
0b6df73cee | haranp | 2007-04-24 23:15:49 +0000

Try a bit harder to prevent reidentifying IDed items.

--------------------------------------------------------------------------------
fcf7c51913 | haranp | 2007-04-24 23:11:28 +0000

Along the lines of 1706790: the identify inventory list now only contains items 
which aren't fully IDed by default.

--------------------------------------------------------------------------------
9304ae6cc3 | haranp | 2007-04-24 22:38:41 +0000

Cleaned up shop-handling code considerably. Instead of shops passing around 
global id_arr arrays, shops use the newly added third argument to 
item_def::name() which indicates whether to override item ID status. This means 
that the shop ID SIGHUP protection is now unnecessary; it's been removed. 
Hopefully I caught all the places where the stash tracker tries to get item 
names and fixed them, but I might have missed something.

--------------------------------------------------------------------------------
56b6c4f46e | haranp | 2007-04-24 14:26:15 +0000

Initial stab at feature descriptions. I suppose I should have put them in the 
DB, right?

--------------------------------------------------------------------------------
ac55c640a0 | dshaligram | 2007-04-24 08:38:25 +0000

Manual update (David)

--------------------------------------------------------------------------------
1fe13ae00d | haranp | 2007-04-24 07:58:55 +0000

Moving from snprintf() to std::ostringstream, slowly but surely.

--------------------------------------------------------------------------------
cf19d614af | haranp | 2007-04-24 07:31:55 +0000

Minor cleanups.

--------------------------------------------------------------------------------
c80b339fa2 | dshaligram | 2007-04-24 06:03:30 +0000

Updated CREDITS. Thanks, David.

--------------------------------------------------------------------------------
e676769f64 | haranp | 2007-04-23 18:20:57 +0000

Made trap ammo dependent on T&D. Old: 11 + G(1/3), bounded at 20 (G is the 
geometric distribution.) New: 10 + random2(T&D skill).

--------------------------------------------------------------------------------
ea9a4edf15 | haranp | 2007-04-23 16:13:12 +0000

Stationary monsters on top of items are now branded with ITEM_HEAP. Erik, you 
were saying...? (Maybe we should make this an option?)

--------------------------------------------------------------------------------
b92e79306f | haranp | 2007-04-23 11:36:32 +0000

Implemented 1616309 etc: racial modifiers are now described in 'v'. Fixed a bug 
in print_description().

--------------------------------------------------------------------------------
4f77df2e28 | haranp | 2007-04-23 11:08:52 +0000

Made oklob plants lightgreen, i.e., distinguishable from plants. I'm sure this 
is controversial, so feel free to revert/discuss on c.r.d/discuss in FR 1632448.

--------------------------------------------------------------------------------
ba8665a54b | haranp | 2007-04-23 10:55:10 +0000

Added giant bats and hippogriffs to the Islands. Tweaked generation 
probabilities to make it somewhat easier.

--------------------------------------------------------------------------------
f67c60e2b0 | haranp | 2007-04-23 10:31:09 +0000

Proper colouring of random_teleport in status screen (David).

--------------------------------------------------------------------------------
31d23a40fe | haranp | 2007-04-23 10:19:28 +0000

Cleaned up a lot of code which was using info[] to use mprf() directly instead. 
Fixed a bug with affix_weapon_enchantment messaging (mea culpa.) Fixed 
shatter() messages getting surpressed.

--------------------------------------------------------------------------------
00af6cae23 | haranp | 2007-04-23 08:08:01 +0000

Implemented 1705620: aptitudes are now shown in red, skill progress in blue. 
Change this if it's too ugly.

--------------------------------------------------------------------------------
361fb119f5 | haranp | 2007-04-23 07:54:37 +0000

Fixed surges being all wrong (1705614.)

--------------------------------------------------------------------------------
bb594fc950 | haranp | 2007-04-23 07:47:43 +0000

Fixed silly comment (Dylan). Does anyone want to keep all the // end funcname() 
stuff anyway? Not that I'm plugging my editor or anything.

--------------------------------------------------------------------------------
6b8c7d5824 | dshaligram | 2007-04-22 20:56:03 +0000

Older MinGW don't seem to typedef int64_t, hacked.

--------------------------------------------------------------------------------
8548e1273b | dshaligram | 2007-04-22 20:31:54 +0000

Fixed trunk build for DOS and Windows. DOS and Windows builds use a SQLite db, 
with a dbm-like wrapper so database.cc builds unchanged.
Added SQLite to the source tree. Only DOS and Windows builds use it at the
moment, but it can be added to Unix builds easily (and will be added
automatically if a suitable db.h or ndbm.h is not found).

--------------------------------------------------------------------------------
fac344b62e | haranp | 2007-04-21 16:18:19 +0000

Eliminated it_name(), in_name(), item_name(). The function to use is now 
item_def::name(). Cleaned up a lot of code in the process.

--------------------------------------------------------------------------------
b2ea8143cc | haranp | 2007-04-21 11:31:42 +0000

Moved items() into a separate makeitem file.

--------------------------------------------------------------------------------
8f474f6a08 | dshaligram | 2007-04-20 22:29:34 +0000

Refix build for Mac OS.

--------------------------------------------------------------------------------
e8e11dc64f | dshaligram | 2007-04-20 22:18:23 +0000

Unlink db file if it is stale.
Function signature was wrong for getLongDescription, fixed.

--------------------------------------------------------------------------------
06195a1e5d | dshaligram | 2007-04-20 22:11:09 +0000

Fixed source to build on Linux. Should still build on Mac OS, but this is 
untested. Will probably not build out-of-the-box on other BSDs (we need an 
autoconf script to use the right dbm headers). DOS and Windows builds are still 
broken pending adding Berkeley DB 1.x sources to the Crawl tree, which I'll 
probably do sometime tomorrow.
Renamed descriptions.txt -> descript.txt to fit into DOS filename limits.

The descript.txt -> descript.db conversion is now performed automatically by
Crawl on startup if descript.txt is newer than descript.db (or descript.db does
not exist). descript.db is saved in the save directory which is a convenient
directory that is guaranteed writable by Crawl.

The makedb.pl script is no longer necessary (and is unreliable anyway, because
it's easy to have multiple dbm versions with incompatible db formats and have
the installed Perl link with one while Crawl uses the other, leading to nasty
segfaults).

Some .des file changes (Erik).

Deep elf sorcerers are M_EVIL.

Ghosts get mephitic cloud.

--------------------------------------------------------------------------------
01d472dce8 | dshaligram | 2007-04-20 21:36:09 +0000

Corrected Emerson quote.

--------------------------------------------------------------------------------
cf3180d0e7 | dshaligram | 2007-04-19 13:22:21 +0000

Removed rock stairs from orc entry (Erik).

--------------------------------------------------------------------------------
feadb450d0 | dshaligram | 2007-04-18 05:59:29 +0000

Use mons_friendly() instead of checking attitude directly for moth angering.

--------------------------------------------------------------------------------
c6a16fc11b | dshaligram | 2007-04-18 05:43:36 +0000

Drop spellcasting lower limit to 6 for reading Annihilations, Demonology and 
the Necronomicon.

--------------------------------------------------------------------------------
608b565440 | haranp | 2007-04-17 15:27:04 +0000

Copyediting.

--------------------------------------------------------------------------------
05345016f1 | peterb12 | 2007-04-17 15:00:59 +0000

First cut at db/flat text file based descriptions.

--------------------------------------------------------------------------------
77ea6aed5b | haranp | 2007-04-17 12:41:42 +0000

'v' on an item stack describes the top item (even if it's killed, oh well.)

--------------------------------------------------------------------------------
794911085c | haranp | 2007-04-16 20:35:55 +0000

Fixed possible crash when choosing random class (Chris Hamons.)

--------------------------------------------------------------------------------
d83b15afa1 | haranp | 2007-04-16 20:31:49 +0000

Magic-immune monsters are now "unaffected" by enchantments instead of 
"resist"ing them.

--------------------------------------------------------------------------------
eb7d5c8d36 | dshaligram | 2007-04-16 17:01:58 +0000

s/Ruiner/Ruinous/ after discussions with Erik and Guus.

--------------------------------------------------------------------------------
080cfb8002 | haranp | 2007-04-16 16:47:09 +0000

Patches from debian package (Guus Sliepen.)

--------------------------------------------------------------------------------
0a96b577fb | dshaligram | 2007-04-16 16:15:59 +0000

Default show_turns off (Erik).

--------------------------------------------------------------------------------
ba6f16e65d | dshaligram | 2007-04-16 15:55:42 +0000

Use move_player_to_grid when blinking so that pools get a chance to do their 
thing.

--------------------------------------------------------------------------------
4fe53a7067 | haranp | 2007-04-16 15:17:42 +0000

Made the Islands more fragmented as you go deeper. Placed a rune and some 
treasure at the bottom level (no buildings yet.)

--------------------------------------------------------------------------------
1eafe2f71f | dshaligram | 2007-04-16 13:26:02 +0000

Produce a message when a wielded rod has finished recharging.

--------------------------------------------------------------------------------
7ebfea944a | dshaligram | 2007-04-16 12:02:06 +0000

Tweaked to allow building without CLUA_BINDINGS, but allowing 
Lua-conditionalised search patterns.

--------------------------------------------------------------------------------
69789505c9 | haranp | 2007-04-16 10:44:30 +0000

Fixes for compiling without Lua. (Darshan, I hope I didn't break anything...)

--------------------------------------------------------------------------------
914bc91ff5 | haranp | 2007-04-15 16:17:32 +0000

Implemented 169876 - you now check nonadjacent squares for traps even without 
's'; lowered the random chance to succeed to compensate. Needs balance testing.

--------------------------------------------------------------------------------
50fd951130 | dshaligram | 2007-04-15 09:35:44 +0000

Weakened black snake venom.

--------------------------------------------------------------------------------
1ec85725d1 | dshaligram | 2007-04-15 07:24:00 +0000

Shield blocks are much harder vs invisible attackers.

--------------------------------------------------------------------------------
d05b3c7034 | peterb12 | 2007-04-15 00:53:37 +0000

Longer descriptions: rat, goblin, hound

--------------------------------------------------------------------------------
14c15f2ddd | peterb12 | 2007-04-14 21:47:04 +0000

Moving main monster descriptions out of describe.cc and into mon-data.h

--------------------------------------------------------------------------------
c83eb41be2 | dshaligram | 2007-04-14 17:21:00 +0000

Message area was not cleared after --more-- if delay_message_clear=yes, fixed 
(doy).

--------------------------------------------------------------------------------
8b43c49d8c | dshaligram | 2007-04-14 17:14:22 +0000

Allow injured monsters to use teleport traps.

--------------------------------------------------------------------------------
721309038e | nlanza | 2007-04-14 16:51:32 +0000

A little more project-file cleanup; link against readline for Lua's benefit.

--------------------------------------------------------------------------------
cd649b730a | nlanza | 2007-04-14 16:30:16 +0000

Add Lua in to the default OS X build, including the CLUA_BINDINGS support.

--------------------------------------------------------------------------------
8afa9559a6 | dshaligram | 2007-04-14 15:58:58 +0000

Tweaked CLUA_BINDINGS so that the only thing it controls is running user 
scripts.

--------------------------------------------------------------------------------
4a7644f0ee | dshaligram | 2007-04-14 14:03:00 +0000

Enable user-Lua scripts by default for DOS and Windows builds. We could 
probably enable these by default for Mac OS builds as well. They should still 
default off for general Unix installs because we want server admins to be aware 
of the denial-of-service possibilities of enabling user scripts.

--------------------------------------------------------------------------------
44097deb98 | dshaligram | 2007-04-14 13:57:39 +0000

Refixed DOS and Windows makefiles.

--------------------------------------------------------------------------------
9faef3ac1d | dshaligram | 2007-04-14 13:20:45 +0000

Lua makefile was not using ranlib, fixed.

--------------------------------------------------------------------------------
926c8ad88a | dshaligram | 2007-04-14 13:01:55 +0000

Included Lua 5.1.2 source tree in crawl-ref/source/util. This is so we can use 
Lua in core Crawl code without making Crawl harder to build (than it is 
already). Crawl's makefiles will call the Lua makefile if necessary (i.e., if 
liblua.a doesn't already exist).
CLUA_BINDINGS is still not enabled by default (and will not be enabled by
default in the source tree). Crawl will use two different Lua interpreter
instances - one for user scripts (if CLUA_BINDINGS is defined), the other (not
#ifdef conditionalised) for core game Lua glue.

Lua is statically linked by default. We could change this if necessary, although
the added size is only 200k.

The Lua sources are almost unmodified; I've only added new targets for Crawl's
platform-specific makefiles to call into to build liblua.a; I've not modified
any existing targets, and all Lua READMEs and copyright notices are intact.

Needs integration with Xcode build.

--------------------------------------------------------------------------------
72560e17ac | dshaligram | 2007-04-14 09:05:09 +0000

Flame brand in melee was producing "burn" messages vs ice beasts, fixed.

--------------------------------------------------------------------------------
d173ffd6c2 | haranp | 2007-04-14 09:00:38 +0000

Show item being inscribed before inscribing (Erik.)

--------------------------------------------------------------------------------
a645ea7c24 | haranp | 2007-04-14 08:42:55 +0000

More code cleanups and type safety. Fixed a semi-bug (undefined behaviour) in 
undead_cannot_memorise().

--------------------------------------------------------------------------------
3065381716 | dshaligram | 2007-04-14 08:23:06 +0000

Temple entry vaults and more vaults and minivaults (Lemuel).
Dungeon generator will also try to connect secret doors on the outer edge of
floating vaults.

--------------------------------------------------------------------------------
aa0fd00317 | haranp | 2007-04-13 20:13:50 +0000

Cleaned up spellbook handling code, fixes 1699962. Also fixed a bad bug with 
spell validity (good thing that spellbooks 1-4 are long, huh...)

--------------------------------------------------------------------------------
242dc5781f | haranp | 2007-04-13 17:48:06 +0000

Added water fractalisation to the Islands.

--------------------------------------------------------------------------------
b06ace6b63 | haranp | 2007-04-13 16:44:12 +0000

Put in more() when casting spells while silenced, following 1699991 (which I 
agree with.) Can be reverted if anyone feels strongly about it.

--------------------------------------------------------------------------------
437cb6d846 | haranp | 2007-04-13 16:38:55 +0000

Implemented 1699981: silence mode feedback.

--------------------------------------------------------------------------------
6e45e466e6 | haranp | 2007-04-13 16:09:50 +0000

Steam and smoke now blocks LOS (1697143).

--------------------------------------------------------------------------------
3719e3c8c3 | dshaligram | 2007-04-13 14:08:38 +0000

Fixed bad grammar on shield block messages in melee.
Split up Abyss/Pan/Labyrinth save files. The only practical use right now is to
be able to correctly place Abyss and Pan ghosts.

--------------------------------------------------------------------------------
c92159fe7f | haranp | 2007-04-13 09:07:44 +0000

Implemented Erik's randart-MR-is-multiplicative idea.

--------------------------------------------------------------------------------
43c3f753a9 | haranp | 2007-04-13 08:18:55 +0000

Fixed 1699133: kenku message should note that they can't wear boots.

--------------------------------------------------------------------------------
6be49f6bbc | haranp | 2007-04-13 08:03:10 +0000

More naming fixes. We should integrate helmets somehow.

--------------------------------------------------------------------------------
0a577362df | haranp | 2007-04-13 07:40:38 +0000

Cleaned up some of the randart code. Fixed a free-without-malloc security issue 
(of art_n.)

--------------------------------------------------------------------------------
53fa153719 | dshaligram | 2007-04-13 03:59:23 +0000

When searching for multiple ghosts, also check the transit list.  Only applies 
to Abyssal ghosts at the moment.

--------------------------------------------------------------------------------
2269f51342 | haranp | 2007-04-12 14:19:56 +0000

Added a new Island branch, based on dpeg's ideas. In any given game, either the 
Islands or the Swamp will be generated (50% chance of each) as Lair 
subbranches. The Islands have a ranged-attackers theme and are 5 levels deep. 
THIS IMPLEMENTATION IS INCOMPLETE, so beware! The following things need to be 
added: 1. A level-5 vault to contain the islands rune (the rune is coded, but 
it doesn't show up yet - so for now, if you get the Islands, you'll be stuck 
with one less rune.) A unique Cyclops, Polyphemus, to guard it might be a nice 
idea. Perhaps we should block controlled teleport until he's dead, too. 2. 
Making the island structure depth-dependent (i.e., more islands on deeper 
levels.) 3. Shallow water fractalisation. 4. Probably more stuff I forgot.
I also put in various minor fixes.

Breaks savefiles, possibly highscores too. I'll put in a savefile version
bump later.

--------------------------------------------------------------------------------
0e5f00f899 | dshaligram | 2007-04-11 18:27:30 +0000

Fixed monsters that are not in sight being identified by name if they're 
attacking a monster that is in sight.
Implemented AF_MUTATE for pulsating lumps.

--------------------------------------------------------------------------------
38ee7a2c66 | dshaligram | 2007-04-11 17:18:15 +0000

Allow waypoints to be deleted (Sigurd).

--------------------------------------------------------------------------------
066c6135d4 | dshaligram | 2007-04-11 11:48:53 +0000

Allow .des F to also create ice statues (David).

--------------------------------------------------------------------------------
1691fe342d | dshaligram | 2007-04-11 06:03:57 +0000

Ice statues are no longer vulnerable to disintegration.
Dropped statue AC for all statues.

--------------------------------------------------------------------------------
858fe74f26 | dshaligram | 2007-04-10 17:41:02 +0000

Oops, friendlies were never summoning, fixed.

--------------------------------------------------------------------------------
5cc23b45f0 | dshaligram | 2007-04-10 16:10:44 +0000

Don't say the player stopped glowing if he didn't.

--------------------------------------------------------------------------------
512696e788 | dshaligram | 2007-04-10 16:04:14 +0000

Allow player ghosts to use corona.
Breaks save compatibility, upped save major version.

--------------------------------------------------------------------------------
684f80b554 | dshaligram | 2007-04-10 15:11:07 +0000

Allow "any trap" and "any shop" (alternatives to "random trap" and "random 
shop") in des files.
Allow using '8', '9' and '0' in monster specifications.

Tossed out some unused functions.

--------------------------------------------------------------------------------
f8179d2e31 | dshaligram | 2007-04-10 06:57:43 +0000

Removed unused monster_floundering function (Haran).

--------------------------------------------------------------------------------
31d4e1ba72 | haranp | 2007-04-10 06:40:52 +0000

Fixed bug with return type of levitate() (hopefully without adding new bugs.)

--------------------------------------------------------------------------------
05117a738c | haranp | 2007-04-10 05:46:23 +0000

Removed pointless *level_builder_function from branches[].

--------------------------------------------------------------------------------
1798905e71 | dshaligram | 2007-04-09 15:30:30 +0000

Added ice statues.
Monster spells now use spell_type instead of the old mon_spell_type.

Fixed buggy behaviour when banished from Labyrinth.

DGL_WHEREIS was not including current time, fixed.

--------------------------------------------------------------------------------
55826a1520 | j-p-e-g | 2007-04-08 18:00:00 +0000

Removed spoily colours for "runed" randarts. They now have normal item 
appearance depending on item type.

--------------------------------------------------------------------------------
d4cca63a59 | dshaligram | 2007-04-08 17:42:05 +0000

Show error messages for unknown command-line options.

--------------------------------------------------------------------------------
99e1d4f913 | dshaligram | 2007-04-08 16:26:04 +0000

Enable easy_exit for formatted scroller menus.

--------------------------------------------------------------------------------
ddc0f433ca | dshaligram | 2007-04-08 14:38:24 +0000

Updated changes file for 0.2.4 in trunk.

--------------------------------------------------------------------------------
6a321e5331 | dshaligram | 2007-04-08 14:23:02 +0000

Fixed infuriating monster enchantment contamination bug. Finally. It's over. No 
more of these please, thankyouverymuch.

--------------------------------------------------------------------------------
19d30542c2 | dshaligram | 2007-04-08 14:09:24 +0000

Fixed monster copy bug.

--------------------------------------------------------------------------------
cc22da5510 | dshaligram | 2007-04-08 08:56:29 +0000

Allow 'x' to cancel out of targeting (doy).

--------------------------------------------------------------------------------
146b8a24a4 | dshaligram | 2007-04-07 22:19:38 +0000

Added MAP_GRID_KNOWN to represent a map square that needs to be drawn on the 
level map, refixed DC fix.

--------------------------------------------------------------------------------
92622b41d3 | dshaligram | 2007-04-07 22:10:51 +0000

Fixed detect creatures and items not working.

--------------------------------------------------------------------------------
5fa864a78e | dshaligram | 2007-04-07 20:27:45 +0000

Implemented Erik's invisibility proposal: - M_SENSE_INVIS for perceptive 
monsters; split existing monsters with see   invisible into M_SEE_INVIS and 
M_SENSE_INVIS. - Monsters that can't see invisible get to-hit penalties vs 
invisible players   and monsters in both melee and at range. - Monsters that 
sense where you are know where to shoot and attack, but still   get to-hit 
penalties because they don't know exactly where you are.

--------------------------------------------------------------------------------
4a27714410 | dshaligram | 2007-04-07 18:45:09 +0000

Fixed hydra decapitation kills not being correctly credited (Jennifer).

--------------------------------------------------------------------------------
b06697749c | dshaligram | 2007-04-07 17:42:51 +0000

Poison resistance was being misapplied for monsters, fixed.

--------------------------------------------------------------------------------
95367a34cd | haranp | 2007-04-07 15:42:57 +0000

More refactoring. Removed the limit on how many monsters can be generated as I 
don't think it was ever being reached.

--------------------------------------------------------------------------------
5d21ab53cd | dshaligram | 2007-04-07 14:54:30 +0000

Moth of wrath angering attack was lost in 0.2, reintroduced.
Monsters can now go berserk (the rage spell, or by moth of wrath attack).

Rupert is now a crusading-style berserker.

Moths of wrath can now enrage nearby monsters of similar attitude.

--------------------------------------------------------------------------------
361c9481bd | haranp | 2007-04-07 11:10:16 +0000

Preliminary refactoring in dungeon creation code.

--------------------------------------------------------------------------------
14c66301ea | dshaligram | 2007-04-07 09:40:18 +0000

Added save backward compatibility shim for cloud fix.

--------------------------------------------------------------------------------
0465fe0800 | dshaligram | 2007-04-07 09:31:20 +0000

[1695733] Fixed buggy cloud crashes.

--------------------------------------------------------------------------------
19cd11e35e | dshaligram | 2007-04-07 09:04:56 +0000

Fixed enchantments not being iterated through.

--------------------------------------------------------------------------------
403f7b5012 | dshaligram | 2007-04-07 08:35:35 +0000

Updated changes list for 0.2.3.

--------------------------------------------------------------------------------
83792b6c8f | dshaligram | 2007-04-07 08:10:55 +0000

Fixed shapeshifter enchantment crashes (I don't believe I missed this one).

--------------------------------------------------------------------------------
2a413ae35a | dshaligram | 2007-04-07 06:35:23 +0000

Add character abbreviation (HuFi, etc.) to xlogfile.

--------------------------------------------------------------------------------
576d12b577 | dshaligram | 2007-04-06 13:45:00 +0000

s/rotten/rotting/ (Sigurd)

--------------------------------------------------------------------------------
340caccaa0 | dshaligram | 2007-04-06 13:06:26 +0000

Removed >> sections from manual.

--------------------------------------------------------------------------------
1a5bab7398 | dshaligram | 2007-04-06 11:07:15 +0000

hiscores.cc now preserves scorefile version correctly (was clobbering old 
versions with the current version).

--------------------------------------------------------------------------------
11bf30899f | dshaligram | 2007-04-06 10:20:02 +0000

Updated date for 0.2.2 release.

--------------------------------------------------------------------------------
07d7b885c6 | dshaligram | 2007-04-06 10:15:36 +0000

Doc updates (Rachel).
morgue filenames now include seconds.

--------------------------------------------------------------------------------
744b1d6ea7 | dshaligram | 2007-04-06 09:43:31 +0000

Put in a safety valve for monsters with garbage speed/speed_increment (bug 
reported by Erik). We need to figure out how the speed-trashing is happening.
Converted speed and speed_increment to ints to avoid wraparound on zero.

--------------------------------------------------------------------------------
18fc50cd46 | dshaligram | 2007-04-05 16:57:44 +0000

Updated changes list for 0.2.2.

--------------------------------------------------------------------------------
e165bd8661 | dshaligram | 2007-04-05 16:37:56 +0000

Fixed example for autopickup_exceptions to ban only potions of confusion (not 
wands, et al.) (Sigurd)

--------------------------------------------------------------------------------
5ea73e2e32 | dshaligram | 2007-04-05 16:32:16 +0000

A successful cast of ensorcelled hibernation now lasts at least one turn.
Cold resistant monsters resist ensorcelled hibernation for consistency with
metabolic englaciation.

--------------------------------------------------------------------------------
35111f8ffc | dshaligram | 2007-04-05 15:46:56 +0000

Made ensorcelled hibernation easier early on, harder later (with a step-down). 
(Erik)

--------------------------------------------------------------------------------
2324d8f22f | dshaligram | 2007-04-05 15:13:05 +0000

[1693541] Fixed unmapped stair positions being revealed by their colour.

--------------------------------------------------------------------------------
a3ed7b6290 | dshaligram | 2007-04-05 14:49:52 +0000

Updated build instructions for DOS, Windows, Linux.
Fixed targeting for Sandblast, Bone Shards, verified that targeting works okay
for all spells (woof).

Updated level layouts with more random features (David).

Made makefile.unix default to using flex instead of lex.

Tweaked beam names for dragon breath.

s/Paralyze/Paralyse/

Don't show current target for direction-only targeting.

--------------------------------------------------------------------------------
8d230ac236 | haranp | 2007-04-05 12:23:00 +0000

Dragon breaths no longer get the breather's name prepended, because: (1) it was 
being done for some (e.g. fire breath) but not others (poison blast) (2) too 
much work to get the articles right in case of uniques. If there's enough 
interest we can always redo this better. This fixes 1694850.

--------------------------------------------------------------------------------
0709ef8aaf | dshaligram | 2007-04-04 18:44:49 +0000

Undead/demonic monsters cannot pick up weapons with holy brands. I'm allowing 
orcs to wield orc-slaying.

--------------------------------------------------------------------------------
afa3e56ccb | dshaligram | 2007-04-04 15:42:57 +0000

Monster missile tracers were broken (no damage was set in the tracer), fixed.

--------------------------------------------------------------------------------
c627f8f7cd | dshaligram | 2007-04-04 13:18:41 +0000

Updated build instructions.

--------------------------------------------------------------------------------
f6202329f8 | dshaligram | 2007-04-04 11:13:26 +0000

Allow */' to work in targeting (/+dir no longer selects a direction in Unix, I 
can live with that).
Upped monster MR slightly, weakened ensorcelled hibernation.

--------------------------------------------------------------------------------
4b02802ef0 | haranp | 2007-04-04 10:11:42 +0000

Speeded up PC centaurs to (almost) match monster centaur movement rate, per 
1693565. This could have balance issues; speak up if you think it's bad.

--------------------------------------------------------------------------------
7e3eca89e7 | haranp | 2007-04-04 10:02:29 +0000

Kenkus aren't mundane (Erik.)

--------------------------------------------------------------------------------
3814e79889 | haranp | 2007-04-04 09:52:16 +0000

Some more code refactoring in god messages.

--------------------------------------------------------------------------------
f9ab238812 | haranp | 2007-04-04 09:29:30 +0000

Doc improvements.

--------------------------------------------------------------------------------
2453995102 | haranp | 2007-04-04 09:10:11 +0000

Documented the mute colour setting.

--------------------------------------------------------------------------------
9f14773ca2 | haranp | 2007-04-04 09:05:29 +0000

Allow "mute" as a colour in message_colour, which means the message will be 
muted (duh.) message_colour can now override channel mutings (e.g., if you want 
to mute the pray channel except for a specific message.) Factored out some 
common code from {base,formatted}_mpr.

--------------------------------------------------------------------------------
c9b7d443bf | haranp | 2007-04-04 06:49:36 +0000

Type safety on SPRET results.

--------------------------------------------------------------------------------
ab95ccbc8f | dshaligram | 2007-04-04 05:49:40 +0000

Oops, successful spellcasting was training skills at the same rate as failed 
spellcasting (thanks, Haran).

--------------------------------------------------------------------------------
21764c78b7 | haranp | 2007-04-03 22:48:02 +0000

Sif Muna miscast prevention is now treated as spell failure without the 
negative side effects - so mana is lost and the appropriate skills are 
exercised. Maybe we should remove the skill-exercise part.

--------------------------------------------------------------------------------
e6b5508b54 | dshaligram | 2007-04-03 20:18:48 +0000

Clear map transforms after applying them to prevent double-application.

--------------------------------------------------------------------------------
fff73bc3a0 | dshaligram | 2007-04-03 20:02:40 +0000

Use end() instead of exit() for level compiler errors.

--------------------------------------------------------------------------------
ede70149ba | dshaligram | 2007-04-03 18:39:12 +0000

Don't allow confused water/lava creatures to leave their habitat. Allowing them 
out causes hard-to-balance problems.

--------------------------------------------------------------------------------
4be21a05a8 | dshaligram | 2007-04-03 18:29:07 +0000

Water/lava creatures out of water cannot regenerate.

--------------------------------------------------------------------------------
834b25693c | dshaligram | 2007-04-03 17:56:15 +0000

Fixed cantrips used by friendly monsters.

--------------------------------------------------------------------------------
e7d2e6f1af | dshaligram | 2007-04-03 16:46:27 +0000

Fixed labyrinths getting monsters and items (Erik). Mea culpa.

--------------------------------------------------------------------------------
7a807a464f | dshaligram | 2007-04-03 16:33:59 +0000

Fire resistant monsters drown in lava instead of being incinerated. Used 
correct check to see if monsters can drown. Monsters quaffing healing are also 
cured of confusion and rotting now (Erik).

--------------------------------------------------------------------------------
6b15ccc669 | haranp | 2007-04-03 15:09:20 +0000

Eliminate a (spurious) valgrind warning.

--------------------------------------------------------------------------------
7cc3a046c6 | haranp | 2007-04-03 14:56:07 +0000

KILL_MONSTER note now comes before the XP gain (and possible XP_LEVEL note.)

--------------------------------------------------------------------------------
5894f27848 | dshaligram | 2007-04-03 12:54:05 +0000

Jellies now resist acid spit (adapted jlewis' patch).
On Windows and DOS, prompt for a newline after printing an error message and
exiting, since users on those systems seem to run executables by
double-clicking on them, and cannot see error messages because the console
disappears when the game exits.

--------------------------------------------------------------------------------
5ac1e751c1 | dshaligram | 2007-04-03 10:19:57 +0000

Fixed bouncing lightning crash. My fault as usual. :(

--------------------------------------------------------------------------------
8b8e2cc308 | dshaligram | 2007-04-03 05:13:57 +0000

Fix another enchantment timeout crash.

--------------------------------------------------------------------------------
b9b92f9952 | dshaligram | 2007-04-02 19:25:19 +0000

Allow AF_DISEASE attacks to sicken monsters.

--------------------------------------------------------------------------------
9acf2085c7 | dshaligram | 2007-04-02 16:30:05 +0000

Trunk is now aimed at 0.3. 0.2.X releases will be on the 0.2 branch.

--------------------------------------------------------------------------------
85acd605f1 | dshaligram | 2007-04-02 15:40:15 +0000

Corona was still borked, refixed.

--------------------------------------------------------------------------------
86d2de85be | dshaligram | 2007-04-02 15:35:47 +0000

Updated changes for 0.2.1.

--------------------------------------------------------------------------------
cf9342cff2 | j-p-e-g | 2007-04-02 12:32:45 +0000

Tweaked item colours and added special colouring to randarts.
We might still have to exchange the grey/blue pairings
but for now I've tried to keep as many settings as possible. 

--------------------------------------------------------------------------------
aab231295d | dshaligram | 2007-04-02 11:26:27 +0000

Added #ifdef to allow compatibility with the old -macro <file> option. This 
option is restricted to dgamelaunch because it has security issues if used with 
the traditional multiuser setuid/setgid install.

--------------------------------------------------------------------------------
5ae6f9b2a3 | dshaligram | 2007-04-02 07:18:11 +0000

Preliminary changelog for 0.2.1.

--------------------------------------------------------------------------------
bcafd14b89 | dshaligram | 2007-04-02 05:59:50 +0000

Make resistance descriptions clearer and more consistent (Jordan).

--------------------------------------------------------------------------------
53317f38f4 | dshaligram | 2007-04-02 05:35:34 +0000

Change description of staves of wizardry to be more similar to rings of 
wizardry (which have a more accurate description anyway) (aristotle).

--------------------------------------------------------------------------------
a5fa0442e6 | dshaligram | 2007-04-02 05:16:26 +0000

Monster dialogue grammar fixes (Jordan).

--------------------------------------------------------------------------------
b74b255c88 | dshaligram | 2007-04-02 05:09:28 +0000

Increased lexer token cache to 100 tokens.

--------------------------------------------------------------------------------
21991bab9a | dshaligram | 2007-04-01 22:37:48 +0000

Fixed (I think) evil poisoned-monster-crash.

--------------------------------------------------------------------------------
63750b0e37 | dshaligram | 2007-04-01 22:13:21 +0000

Fixed potential buffer overflow on long inscriptions.

--------------------------------------------------------------------------------
1deeefa361 | dshaligram | 2007-04-01 21:25:42 +0000

Announce corpse availability only if the corpse is in LOS.

--------------------------------------------------------------------------------
b7de9e08ae | dshaligram | 2007-04-01 21:00:28 +0000

Fixed overly severe EV penalties for nagas and centaurs.

--------------------------------------------------------------------------------
9fdb0c3886 | dshaligram | 2007-04-01 20:50:54 +0000

Apply dist& -> const dist&

--------------------------------------------------------------------------------
51a9d2ae73 | dshaligram | 2007-04-01 20:44:21 +0000

Fixed vampiric drain trying to get spell direction twice.

--------------------------------------------------------------------------------
7b19252438 | dshaligram | 2007-04-01 20:24:59 +0000

Drop electric golem vanilla damage boost slightly after playtesting.

--------------------------------------------------------------------------------
589c24cae6 | dshaligram | 2007-04-01 20:06:57 +0000

Fixed super-electric-golems.

--------------------------------------------------------------------------------
f8d272fc17 | dshaligram | 2007-04-01 18:48:12 +0000

Dialogue for Murray contributed by Jordan Lewis.

--------------------------------------------------------------------------------
1a9ca6208e | dshaligram | 2007-04-01 17:22:27 +0000

Grammar fixes (paxed).

--------------------------------------------------------------------------------
0cf6b82ebf | dshaligram | 2007-04-01 16:17:33 +0000

Suppress equipment, diagnostic and tutorial channels in character dump message 
history.

--------------------------------------------------------------------------------
8083cf858f | dshaligram | 2007-04-01 15:10:36 +0000

Lugonu will not accept a worshipper who has unpaid penance. This prevents the 
go to Abyss -> pick Lugonu -> ditch Lugonu -> pick Lugonu again stunt.

--------------------------------------------------------------------------------
0f4b2b185f | dshaligram | 2007-04-01 11:24:15 +0000

Added DGL_NAMED_MACRO_FILE option to make life easier for dgamelaunch to keep 
user macro files distinct (paxed).

--------------------------------------------------------------------------------
d758cad3c6 | dshaligram | 2007-04-01 08:48:05 +0000

Tutorial linewrapping fix for DOS.

--------------------------------------------------------------------------------
b1d040e4e9 | dshaligram | 2007-04-01 07:33:25 +0000

Updated makefile version number detection.

--------------------------------------------------------------------------------
11133a3f54 | dshaligram | 2007-04-01 07:29:10 +0000

Fixed distclean for trunk.

--------------------------------------------------------------------------------
6ef8b0bd1f | dshaligram | 2007-04-01 07:24:33 +0000

Updated release date.

--------------------------------------------------------------------------------
a3ea7faa4a | dshaligram | 2007-04-01 07:13:13 +0000

Prevent sneak entry of coloured draconians from polymorph.

--------------------------------------------------------------------------------
1c4fa235a3 | haranp | 2007-04-01 04:53:51 +0000

Made altar inscriptions persistent (in a very hacky way.)

--------------------------------------------------------------------------------
03c7c53863 | dshaligram | 2007-03-31 18:08:26 +0000

Fix date.

--------------------------------------------------------------------------------
c8d5f97bc7 | dshaligram | 2007-03-31 18:07:04 +0000

Updated release info in INSTALL. Tweaked release build script to remove 
references to obsolete -llualib.

--------------------------------------------------------------------------------
32dee58c14 | peterb12 | 2007-03-31 17:36:33 +0000

Copyediting text

--------------------------------------------------------------------------------
6ae17a8b09 | peterb12 | 2007-03-31 17:33:32 +0000

Copyediting.

--------------------------------------------------------------------------------
8e7b10874c | dshaligram | 2007-03-31 17:29:02 +0000

Oops, remove misplaced \n.

--------------------------------------------------------------------------------
416e84f24b | dshaligram | 2007-03-31 17:26:09 +0000

Don't show experience needed for next level if the player is at XL 27.

--------------------------------------------------------------------------------
515c377adb | peterb12 | 2007-03-31 16:51:22 +0000

Minor copyedits

--------------------------------------------------------------------------------
d1301dcca9 | dshaligram | 2007-03-31 16:38:41 +0000

Convert darkgrey to lightblue for the tutorial.

--------------------------------------------------------------------------------
d9016a2b56 | dshaligram | 2007-03-31 15:24:57 +0000

Updated release build script for new version number #defines.

--------------------------------------------------------------------------------
75abe18e79 | dshaligram | 2007-03-31 10:43:50 +0000

Fix crash when entering ?: in character selection (jpeg).

--------------------------------------------------------------------------------
f281157851 | dshaligram | 2007-03-31 10:13:58 +0000

Zin will feed you even if your gift timeout is nonzero, but imposes an 
additional piety cost in that case.

--------------------------------------------------------------------------------
ed4028e6f5 | dshaligram | 2007-03-31 07:49:50 +0000

Fixed floating entries being disconnected if they had only walls or doors on 
the perimeter (Erik).

--------------------------------------------------------------------------------
b0cc7c135b | dshaligram | 2007-03-30 21:18:20 +0000

Readjusted yellow wasp paralysis prob.

--------------------------------------------------------------------------------
df5bb9a76b | dshaligram | 2007-03-30 21:16:36 +0000

Yellow wasps have less chance to paralyse than red wasps.
Don't generate lava creatures in the shallow dungeon.

--------------------------------------------------------------------------------
019348774d | dshaligram | 2007-03-30 18:30:43 +0000

Treat attempt to blink onto your original location as a blink cancel attempt.

--------------------------------------------------------------------------------
29e15df630 | dshaligram | 2007-03-30 10:31:49 +0000

Corona was being misapplied, fixed.

--------------------------------------------------------------------------------
76fe8e0bce | dshaligram | 2007-03-30 09:41:28 +0000

Toned down dodging bonus further. The high-end EV was too good.

--------------------------------------------------------------------------------
f7cd642789 | dshaligram | 2007-03-30 05:53:28 +0000

Trunk is now aimed at 0.2.1.

--------------------------------------------------------------------------------
8ac8ce587c | dshaligram | 2007-03-29 19:01:51 +0000

Readjusted the prices of resistible wands (Erik).

--------------------------------------------------------------------------------
4f3b7b3131 | haranp | 2007-03-29 18:02:05 +0000

Clarified use of runrest_ignore_message for autoprayer (David.)

--------------------------------------------------------------------------------
fbfca4abcc | dshaligram | 2007-03-29 17:40:57 +0000

Removed misplaced CHANCE:

--------------------------------------------------------------------------------
8c864e8f33 | dshaligram | 2007-03-29 17:13:47 +0000

Poison damage threshold was too high.

--------------------------------------------------------------------------------
de34ddf033 | dshaligram | 2007-03-29 13:39:28 +0000

Fixed directionally challenged ball lightning (Ryan Kusnery).

--------------------------------------------------------------------------------
2bdb5cf7bc | dshaligram | 2007-03-29 12:50:22 +0000

Further reduced the early-melee-boost.
Weakened dodging slightly - use dodging skill without the skill bump.

--------------------------------------------------------------------------------
ddb27ea7e1 | dshaligram | 2007-03-29 12:09:02 +0000

Rogue-themed Elf:7 vaults no longer use oklobs or jellies.

--------------------------------------------------------------------------------
775b9001bd | dshaligram | 2007-03-29 10:52:16 +0000

Updated changes list.
Give Lugonu's retribution more of the Abyss/distortion theme.

Added extra check for Sif Muna gifts.

Reduced spatial vortex base damage, but give them a distortion attack.

--------------------------------------------------------------------------------
253496da88 | dshaligram | 2007-03-29 05:33:01 +0000

Removed doubled "Okay, then" when cancelling out of an ability target prompt.

--------------------------------------------------------------------------------
b37df0d27e | dshaligram | 2007-03-28 12:49:37 +0000

Added new minivault (David).

--------------------------------------------------------------------------------
baa99f4b7b | dshaligram | 2007-03-28 09:47:41 +0000

Describe player ghosts as "It" instead of "He".

--------------------------------------------------------------------------------
d674f31534 | dshaligram | 2007-03-28 09:41:40 +0000

Added a mention of option alises to crawl_options.txt.
Documented generate_awake tag for maps.

Allow w:X as an alias for weight:X in map item and monster specifications.

Tell the player that they can use '.' to be prompted for a character name
later.

--------------------------------------------------------------------------------
84651bb77b | dshaligram | 2007-03-28 08:58:09 +0000

Updated levels (David).
Give Tiamat wings and flight. Converted her second attack to a tail-slap
(David).

Allow ITEM: declarations to use * % and |.

--------------------------------------------------------------------------------
242254cdf5 | dshaligram | 2007-03-28 06:39:32 +0000

Fixed bogus Abyss escape messages (milestones).

--------------------------------------------------------------------------------
ac60e5f548 | dshaligram | 2007-03-27 17:48:07 +0000

More vaults (Erik) and Snake:5 level (David).

--------------------------------------------------------------------------------
df8b750604 | dshaligram | 2007-03-27 10:27:34 +0000

Updated pregenerated level compiler.

--------------------------------------------------------------------------------
60fbdba8e4 | dshaligram | 2007-03-27 10:10:54 +0000

Allow SUBST and SHUFFLE specs to be comma-separated.

--------------------------------------------------------------------------------
32c2060ed0 | dshaligram | 2007-03-27 08:53:01 +0000

Give Tiamat poison resistance (since she keeps poisoning herself otherwise) and 
a stronger melee attack.

--------------------------------------------------------------------------------
f72d10030e | dshaligram | 2007-03-27 08:51:12 +0000

Clear wall check when clearing map.

--------------------------------------------------------------------------------
9cfcde86bb | dshaligram | 2007-03-27 08:50:19 +0000

Allow SHUFFLE: and SUBST: to be mixed freely; they will be applied in order of 
declaration (used to be all shuffles first, then all substs).

--------------------------------------------------------------------------------
cf748a307d | dshaligram | 2007-03-27 06:10:20 +0000

Fix unallocated experience message for when you have only 1 point of free exp.

--------------------------------------------------------------------------------
4106eaccba | haranp | 2007-03-26 16:52:19 +0000

Gave Tiamat resistance to whatever her current colour is (I prefer this to the 
omni-immune approach.) Darshan, seeing as I don't have a clue how attack 
strength is actually coded, can you boost up her melee attack?

--------------------------------------------------------------------------------
310b6e6168 | dshaligram | 2007-03-26 12:36:23 +0000

Added support for no_item_gen and generate_awake tags.
Note: no_item_gen/no_monster_gen produce very bad behaviour on full-screen
maps. Don't use them there until this is fixed.

--------------------------------------------------------------------------------
7f2f446f0e | dshaligram | 2007-03-26 11:37:25 +0000

Vault entries (David).

--------------------------------------------------------------------------------
6fadd7a8c4 | dshaligram | 2007-03-26 11:12:20 +0000

Added instructions on using the Vim .des syntax highlighter.

--------------------------------------------------------------------------------
0af56a4970 | dshaligram | 2007-03-26 09:21:24 +0000

Default targeting on unidentified wands to enemies.

--------------------------------------------------------------------------------
ec62c5a0d5 | dshaligram | 2007-03-25 16:22:07 +0000

Allow Elyvilon's invocations to be used even when confused (Eva Myers).

--------------------------------------------------------------------------------
13b3cb0275 | dshaligram | 2007-03-25 15:01:18 +0000

Fixed compile breaking on Windows.

--------------------------------------------------------------------------------
bcd8784c8f | dshaligram | 2007-03-25 13:53:30 +0000

Added open check for .where files.

--------------------------------------------------------------------------------
4c56ab4029 | dshaligram | 2007-03-25 13:49:52 +0000

Applied whereis patch from crawl.akrasiac.org (tracks where the player is in 
the dungeon).
All dgamelaunch patches are conditionalised by DGL_foo #ifdefs.

--------------------------------------------------------------------------------
bdb45bf27b | dshaligram | 2007-03-25 13:23:23 +0000

Merged in crawl.akrasiac.org patches (simple messaging, milestones). These take 
effect only if compiled with -DDGAMELAUNCH.
Simple messaging: interacts with dgamelaunch's messaging facility allowing
viewers to send messages to the player.

Milestones: Writes a milestones.txt file (in xlogfile format) for things like
the player killing uniques, reaching the end of a dungeon branch, etc. (similar
to notes). milestones.txt is used for game announcements by an IRC bot.

--------------------------------------------------------------------------------
c500c6b358 | haranp | 2007-03-25 09:46:42 +0000

Added Tiamat, a unique colourshifting draconian with a large escort. Yes, I 
know she's a dragon in the source mythos.

--------------------------------------------------------------------------------
ec685f4e71 | dshaligram | 2007-03-25 08:58:25 +0000

Cleaned up hiscores xlog format (suggested by Shawn Moore). Breaks compatbility 
with older xlogfiles.

--------------------------------------------------------------------------------
eb51ffff58 | dshaligram | 2007-03-25 08:06:08 +0000

Superior description for Frederick.

--------------------------------------------------------------------------------
8cc4b64ddf | dshaligram | 2007-03-25 06:26:06 +0000

Branch entries from David.

--------------------------------------------------------------------------------
3af889aed3 | haranp | 2007-03-24 23:59:29 +0000

Hard-capped see invisible and resist poison at 1 level to fix 1687499.

--------------------------------------------------------------------------------
8d485d7ee5 | haranp | 2007-03-24 16:54:05 +0000

s/Adolf/Frederick

--------------------------------------------------------------------------------
a8963485e8 | haranp | 2007-03-24 14:18:17 +0000

s/predictible/predictable/g

--------------------------------------------------------------------------------
169809dda7 | haranp | 2007-03-24 13:53:42 +0000

Scaled down piety gain from killing creatures (or having your slaves do so), in 
proportion to the difference between your XP level and that of the victim. 
Killing undead/demons in service of holy gods doesn't get the penalty.

--------------------------------------------------------------------------------
c5ddf02b87 | dshaligram | 2007-03-24 11:25:44 +0000

Dropped early melee boost and Sigmund's max hp to get closer to the 0.1.7 
combat feel.

--------------------------------------------------------------------------------
055b1b95f8 | dshaligram | 2007-03-24 09:27:42 +0000

Increase base hit of blowguns (as used by monsters), because kobolds are 
otherwise far too inaccurate.

--------------------------------------------------------------------------------
f3172cefab | nlanza | 2007-03-24 03:06:13 +0000

Update the Xcode project; I've been slacking on this.

--------------------------------------------------------------------------------
0e4a7adb83 | dshaligram | 2007-03-23 23:34:50 +0000

Improve deflect missiles vs blockable missiles. We'll need to rework monster 
archery to-hits eventually.
Give Sigmund more hp.

--------------------------------------------------------------------------------
dd4cbf50ea | haranp | 2007-03-23 16:42:30 +0000

Integrated David's manual changes. Fixed help hotkeys so that the appendix 
hotkeys still work.

--------------------------------------------------------------------------------
4a27e1a50d | dshaligram | 2007-03-23 15:45:50 +0000

More branch entry vaults (Erik).
Changed behaviour when using KMONS and KITEM without a corresponding KFEAT.
Previously this would force the dungeon feature of that square to plain floor.
The new behaviour is to try to map the glyph to itself. For instance:
KMONS: O = pandemonium demon
will place a pandemonium demon on the rune, whereas previously it would place
the pan demon on a floor square.

Tossed out old waypoint hacks. Waypoints are now handled in the same way as
travel to stash search places. This ought to fix the waypoint corruption issues.

--------------------------------------------------------------------------------
2e311420c5 | j-p-e-g | 2007-03-23 11:54:49 +0000

Small changes to the overview screen and smaller ones to the tutorial.

--------------------------------------------------------------------------------
9d4336bb2b | dshaligram | 2007-03-22 19:28:50 +0000

Two more Lair entries (Erik).

--------------------------------------------------------------------------------
9ca6585bfe | dshaligram | 2007-03-22 18:14:01 +0000

Added island Lair entry (Erik).
Changed orc sorcerers in Orc entries to wargs.

The dungeon builder did not check whether a unique requested by a map was
already generated, fixed.

--------------------------------------------------------------------------------
61de58e396 | dshaligram | 2007-03-22 17:43:50 +0000

Two Lair entries (Erik).

--------------------------------------------------------------------------------
29da6fa25d | dshaligram | 2007-03-22 14:22:25 +0000

Cleaned up clouds and threw out the foo_MON values from the cloud enum. The 
creator of the cloud is now remembered with the cloud, so kills from 
friendlies' poison clouds are credited appropriately.
Increased MAX_CLOUDS to 180.

Breaks save compatibility.

--------------------------------------------------------------------------------
109b00ddba | dshaligram | 2007-03-21 21:23:21 +0000

Cleaned up monster enchantments. Instead of the old enum abuse (ENCH_ABJ_I, II, 
etc.), enchantment is stored as a struct (ENCH_which, degree, 
whose_enchantment). This allows us to do such things as award experience for 
monsters poisoned by friends, or confused monsters bashing themselves or 
falling into lava (not implemented, but could be :-)).
Doing monster_die() correctly is a little tricky for
friendly-enchantment-deaths because the original monster may not be around to
answer questions, so we fake the killer's stats for indirect friendly kills
(which means that some gods may not award piety for minion-cast enchantments,
f'r'instance). I think we can live with that for now.

Breaks save file compatibility as usual.

Clouds could also use similar treatment - poison clouds created by a friendly
are not correctly tracked yet.

--------------------------------------------------------------------------------
101ce92772 | dshaligram | 2007-03-21 11:47:59 +0000

Added wizmode command to simulate monster vs player combat (&^F).
Apply 4.1ish monster to-hit calculations. M_FIGHTER monsters get bonus to-hit.

Split melee and beam to-hit calculations again. Melee to-hit is now largely
4.1ish, but uses randomised player evasion.

Applied 4.1 unique rebalancing. Higher level uniques now hit harder and have
more hp.

--------------------------------------------------------------------------------
d04f647d2a | dshaligram | 2007-03-20 16:54:00 +0000

Tutorial tweaks: * Fixed status display commentary wiping out the status 
display on curses. * Fixed doubled %% on Unix (a plague on whoever wrote 
cprintf() in libw32c.cc). * Fixed reference to get_number_of_cols() before 
curses initialisation.

--------------------------------------------------------------------------------
3548833cfb | dshaligram | 2007-03-20 15:01:18 +0000

Added classic_item_colours option to go back to 0.1.x item colours. The option 
is not retroactive, it only affects items that are created after the option is 
set.

--------------------------------------------------------------------------------
bc1869c1a3 | j-p-e-g | 2007-03-20 12:12:03 +0000

Added a funtion for formatted message history, and, while I was at it, moved 
some overlapping parts of base_mpr and formatted_mpr into separate functions. 
This makes them more readable and avoids code duplication.
I'm uncertain as to whether translating every string in replay_messages 
into a formatted string (just in case) would be overkill - so for now 
that only happens for messages of MSGCH_TUTORIAL.

--------------------------------------------------------------------------------
73efec90ba | dshaligram | 2007-03-20 09:25:09 +0000

Enable more verbose error messages from the map parser.

--------------------------------------------------------------------------------
f106062e21 | dshaligram | 2007-03-20 06:37:13 +0000

Readjust smiting: smiting does more base damage, and less damage at the top end.
Also tweak airstrike to do more base damage (as befits a level 4 spell).

--------------------------------------------------------------------------------
6e471380b7 | haranp | 2007-03-19 22:31:32 +0000

More doc fixes.

--------------------------------------------------------------------------------
72ad8fc997 | haranp | 2007-03-19 21:42:13 +0000

Manual fixes (Dylan O'Donnell + general spellcheck)

--------------------------------------------------------------------------------
26e8302f17 | dshaligram | 2007-03-19 19:45:59 +0000

Added dummy minivault for shallow depths.

--------------------------------------------------------------------------------
2f92d2bfa6 | dshaligram | 2007-03-19 18:41:39 +0000

Make shield training a little less easy.

--------------------------------------------------------------------------------
6527850424 | dshaligram | 2007-03-19 18:06:39 +0000

Added explicit exit point to vault.

--------------------------------------------------------------------------------
710d9c2810 | dshaligram | 2007-03-19 17:49:56 +0000

Demonspawn control demon power was ridiculously overpowered, fixed (Juha). Orbs 
of fire are now hellfire resistant (Juha).

--------------------------------------------------------------------------------
dccd64f851 | dshaligram | 2007-03-19 17:32:28 +0000

Spatial distortion heals blink frogs.

--------------------------------------------------------------------------------
09368bdee9 | dshaligram | 2007-03-19 16:27:53 +0000

Added an invocable power to train Invocations for Lugonu (previously the first 
power that could train Invocations was the 7mp demon summon).

--------------------------------------------------------------------------------
7027d6e073 | dshaligram | 2007-03-19 15:12:44 +0000

s/Lucy/Lugonu/.

--------------------------------------------------------------------------------
08fe0f7790 | dshaligram | 2007-03-19 13:39:55 +0000

Alias < to > for Abyss exits.

--------------------------------------------------------------------------------
d12bf8d524 | dshaligram | 2007-03-19 13:25:44 +0000

Fixed shadow creature abuse in Hall of Blades.

--------------------------------------------------------------------------------
e65b75cf40 | dshaligram | 2007-03-19 11:03:12 +0000

Minitomb was not being connected to the rest of the level, fixed.

--------------------------------------------------------------------------------
7320fab87a | dshaligram | 2007-03-18 17:30:52 +0000

Clear targeting prompts after target is selected.

--------------------------------------------------------------------------------
c74a157f8f | j-p-e-g | 2007-03-18 14:57:33 +0000

Changes to the overview screen (%) - added abilities and made it scrollable. 
Also, some more clean-up of tutorial.cc. As this involved a lot of spacing 
changes it was easier to just replace the file as a whole. Sorry about that. 
There are still some differences between the Linux and Windows versions that I 
don't really understand but using get_number_of_cols helps a lot.

--------------------------------------------------------------------------------
f35794fa75 | dshaligram | 2007-03-18 14:00:08 +0000

Fixed max mons transit number in transit cull.

--------------------------------------------------------------------------------
e1658dbf38 | dshaligram | 2007-03-18 12:31:43 +0000

Adjusted monster beam to-hit numbers.

--------------------------------------------------------------------------------
3fdf3ab24e | dshaligram | 2007-03-18 07:05:07 +0000

Banished uniques (including ghosts) will now be sent to the Abyss. Banished 
non-uniques may also get the Abyss treatment if they clear a HD roll.
Crawl tries very hard not to lose banished monsters, preserving them across
Abyss shifts and teleports, and saving them on the transit list when the player
escapes the Abyss.

Breaks savefile compatibility.

Toned down Vehumet and wizardry boosts a touch.

Fixed bugginess where player could get aux unarmed attacks on a monster that
just teleported away (by weapon of distortion).

--------------------------------------------------------------------------------
de11c27378 | haranp | 2007-03-16 21:03:11 +0000

Rings of fire and ice now type-ID when the player can notice this: i.e., when a 
surge (or anti-surge) is created or amplified by them, at most one unIDed ring 
is worn, and no unIDed staves are wielded. (Checking for armour is unnecessary 
because armour type-IDs on wearing.) Note that this makes it easier to find out 
what randart rings of fire and ice do. Also changed a bunch of unsigned char 
return values to ints.

--------------------------------------------------------------------------------
54bfc8f5f2 | dshaligram | 2007-03-16 15:48:28 +0000

Added message_colour option to allow custom-colouring individual messages. This 
does not affect formatted_mpr.
Moved low magic warning to the danger channel and added a message_colour option
to colour it lightcyan in the stock init.txt.

--------------------------------------------------------------------------------
eff8860c8c | dshaligram | 2007-03-16 11:49:14 +0000

Allow using aliases in init.txt:
a := autopickup_exceptions
a = >decay, >degeneration

--------------------------------------------------------------------------------
97c0fc8f41 | dshaligram | 2007-03-16 10:13:56 +0000

Wizmode &M typo should not produce annoying program bugs.

--------------------------------------------------------------------------------
53ee7c6f33 | dshaligram | 2007-03-16 10:10:37 +0000

Kill tracker now merges all pandemon kills under "demon lord". Pandemonium 
demons are no longer M_UNIQUE.

--------------------------------------------------------------------------------
71a111d317 | dshaligram | 2007-03-16 09:54:39 +0000

Tweak Vestibule. Murray is pre-placed only 50% of the time now.

--------------------------------------------------------------------------------
d6cae0bdfb | dshaligram | 2007-03-16 09:36:33 +0000

Reduce exclamation point overdose for monster attacks.

--------------------------------------------------------------------------------
cfd996c444 | dshaligram | 2007-03-16 09:25:17 +0000

Tweaked unique code to eliminate the confusing arithmetic on MONS enum values. 
Breaks save compatibility again.
Added a unique curse skull. Indulge me.

--------------------------------------------------------------------------------
621bd9ce58 | dshaligram | 2007-03-15 20:10:20 +0000

Cleaned up ghost and Pandemonium demon handling.
Can now have multiple ghosts or Pandemonium demons on a level. Ghosts and Pan
demons can coexist. (D:9 and later are eligible for >1 ghost.) Enabled loading
ghosts in Pandemonium.

Pandemonium demons can now be created outside Pan. Not that you'd want to do
it, but you can.

--------------------------------------------------------------------------------
83559fff82 | haranp | 2007-03-15 16:22:57 +0000

Augmented non-demonspawn mutations are now shown in cyan rather than lightred. 
Also fixed a bug with naga augmented mutation display.

--------------------------------------------------------------------------------
a4eeadad7a | haranp | 2007-03-15 15:57:09 +0000

Added !f inscription per 1680734.

--------------------------------------------------------------------------------
0bf320d438 | dshaligram | 2007-03-14 20:44:46 +0000

Better aux unarmed miss messages.

--------------------------------------------------------------------------------
b871ff5c1c | dshaligram | 2007-03-14 18:56:47 +0000

Move spell targeting before miscast check. Not everything is moved - spells 
with weird targeting (like Conjure Flame) still target after the miscast check.
Tweaked targeting prompt slightly.

Don't dock turn for zapping non-wand.

--------------------------------------------------------------------------------
0282f209e8 | j-p-e-g | 2007-03-14 16:48:11 +0000

Major overhaul of tutorial messages and clean-up of tutorial.cc I've also 
hopefully fixed a bug concerning entry vaults during the tutorial.

--------------------------------------------------------------------------------
49aa51c728 | j-p-e-g | 2007-03-14 16:08:19 +0000

changes to the help screen (made by dploog) - and commit test :P

--------------------------------------------------------------------------------
058dce0e8c | dshaligram | 2007-03-14 07:44:59 +0000

Turn off sort_menus by default. Fixed attack messages for dancing weapons 
(Erik). Removed multiplicity of kaux fields in logfile -> one kaux only. 
Returned int drain of horrible things to the old probability. New keys.pdf 
(David).

--------------------------------------------------------------------------------
be0a126249 | haranp | 2007-03-13 21:17:47 +0000

Fixed crash when drawing level map with large consoles.

--------------------------------------------------------------------------------
725e6975fd | haranp | 2007-03-13 21:10:05 +0000

Requesting help when choosing race/class jumps you to the appropriate section 
of the manual.

--------------------------------------------------------------------------------
6d6703ddc0 | haranp | 2007-03-13 20:51:38 +0000

Redid ray ordering a bit. Fixed a bug when displaying rays (they were being 
offset by 1 on the X axis.)

--------------------------------------------------------------------------------
05778102b4 | haranp | 2007-03-13 20:24:52 +0000

Fix for 1661786: autoprayer now works with run delays. Perhaps we should a note 
to the docs mentioning the possibility of setting runrest_ignore_message 
appropriately to make it work well with autoprayer.

--------------------------------------------------------------------------------
888862b18b | haranp | 2007-03-13 19:37:23 +0000

Race-based hunger now handled by mutations.

--------------------------------------------------------------------------------
a3b9e64440 | dshaligram | 2007-03-12 21:10:52 +0000

Update pregenerated level-compiler files.

--------------------------------------------------------------------------------
0ae2c1d9c5 | dshaligram | 2007-03-12 21:07:20 +0000

New vaults and minivaults (Erik and David).

--------------------------------------------------------------------------------
6bb8ebbe1d | dshaligram | 2007-03-12 20:42:42 +0000

Added KFEAT:, KITEM: and KMONS: map directives to allow placing specific 
monsters, terrain (named altars, traps, shops) and items all on the same square.

--------------------------------------------------------------------------------
d2037387cf | dshaligram | 2007-03-12 17:12:13 +0000

Kill hard tabs.

--------------------------------------------------------------------------------
3e749824ba | dshaligram | 2007-03-12 17:04:52 +0000

New % overview screen (JPEG).

--------------------------------------------------------------------------------
64c54b29c4 | dshaligram | 2007-03-12 16:59:24 +0000

Allow maps to place water/lava creatures explicitly. The dungeon builder will 
automatically convert floor to water/lava as appropriate to place these 
monsters.

--------------------------------------------------------------------------------
75edefa7b0 | dshaligram | 2007-03-12 16:38:46 +0000

[1678439] Fixed last piece of missile stacking bugginess.

--------------------------------------------------------------------------------
1a5d3406d8 | dshaligram | 2007-03-12 16:20:26 +0000

Fixed wights getting weapons of holy wrath (jarpiain). Broke up monolithic 
give_item() into separate functions.

--------------------------------------------------------------------------------
5777a6f9a2 | dshaligram | 2007-03-11 19:47:19 +0000

Fixed yet another ammo stacking bug (Erik).

--------------------------------------------------------------------------------
b884e880ac | dshaligram | 2007-03-11 18:37:09 +0000

Fixed bogus auto-id of magical staves in combat (Erik).

--------------------------------------------------------------------------------
0f60b03a1c | dshaligram | 2007-03-11 18:26:26 +0000

Improve the chances of stabbing a distracted monster.

--------------------------------------------------------------------------------
9a21a52ed2 | dshaligram | 2007-03-11 18:14:37 +0000

Import 4.1 TSO stab warning.

--------------------------------------------------------------------------------
a5cc86cbd8 | dshaligram | 2007-03-11 16:40:19 +0000

Fixed typo that was resulting in super-accurate melee attacks.

--------------------------------------------------------------------------------
4661402a53 | dshaligram | 2007-03-11 16:10:31 +0000

[1678085] Fixed efreet message sequence (Erik).
Fixed off-by-one-column beam animations.

--------------------------------------------------------------------------------
04ef4ac34d | dshaligram | 2007-03-11 15:31:45 +0000

[1657502] Added use_fake_cursor option to make Crawl draw a cursor for Unix 
terminals that cannot draw cursors on black spaces or darkgrey areas. May need 
some work, since the fake cursor tends to leave artifacts on the scrolling edge.
Removed the +1 X offset to the viewport.

Fixed crash when monster wielding a weapon of orc slaying hits player (Erik).

--------------------------------------------------------------------------------
370f12250b | dshaligram | 2007-03-11 13:24:53 +0000

Added target_unshifted_dirs option to activate old (0.1.x) targeting keymap.

--------------------------------------------------------------------------------
12213fbee2 | dshaligram | 2007-03-11 12:43:31 +0000

Suppress doubled autopickup messages.

--------------------------------------------------------------------------------
97b0e340b5 | dshaligram | 2007-03-10 17:54:12 +0000

[1644522] Sif Muna now does gifts on piety gain, not only when praying. Sif 
Munites need not pray at all now.

--------------------------------------------------------------------------------
32d51b5fdc | dshaligram | 2007-03-10 17:33:11 +0000

[1626217] Rock stairs (both up and down) are now coloured brown on the level 
map.

--------------------------------------------------------------------------------
1b2628a263 | dshaligram | 2007-03-10 17:17:45 +0000

[1677717] Fixed acquirement of non-randarts crashing. Also fixed Okie-Trog gift 
check that I'd broken inadvertently. Oops.

--------------------------------------------------------------------------------
df0686dc84 | dshaligram | 2007-03-10 11:23:32 +0000

Good gods' passive piety gain now fixes penance and gift timeouts even if piety 
>= 150 (Erik).

--------------------------------------------------------------------------------
1edb944f9e | dshaligram | 2007-03-10 10:59:16 +0000

Make shields more likely to block missiles, a little less likely to block melee 
attacks.
Make training shields in melee easier.

--------------------------------------------------------------------------------
8ef6811945 | dshaligram | 2007-03-10 10:18:20 +0000

Readjust monster beam to-hit numbers for new player evasion model.

--------------------------------------------------------------------------------
53d7537ce0 | dshaligram | 2007-03-10 09:57:54 +0000

Fixed melee to-hit calculations to better handle the new super-evasion. Beams 
still need to be tweaked.

--------------------------------------------------------------------------------
e1a740ae84 | dshaligram | 2007-03-10 09:30:16 +0000

Trog no longer considers ghosts magic users unless they have spells.

--------------------------------------------------------------------------------
1423a32790 | haranp | 2007-03-09 14:17:10 +0000

Changed around the help screen a bit, following David's ideas. Appendix hotkeys 
now work.

--------------------------------------------------------------------------------
03241f4e82 | dshaligram | 2007-03-09 12:39:50 +0000

Move lava-pool levels deeper into the dungeon. Tweaked verbose logfile output.

--------------------------------------------------------------------------------
42ed81d401 | dshaligram | 2007-03-09 06:42:53 +0000

Xtahua should not be able to speak.

--------------------------------------------------------------------------------
17f802288b | dshaligram | 2007-03-09 06:04:10 +0000

Make monsters polymorphing into coloured draconians rarer (Erik).

--------------------------------------------------------------------------------
aa1a0bb6df | dshaligram | 2007-03-09 05:44:20 +0000

Fixed diagnostic tracer message being emitted in non-debug mode (Erik).

--------------------------------------------------------------------------------
a37536cb8e | haranp | 2007-03-08 22:55:30 +0000

Confined help menu scrolling to within a file (David.) I'm iffy as to whether 
this really helps, but I'm putting it in for now. 1,000th commit...

--------------------------------------------------------------------------------
7636bc910f | haranp | 2007-03-08 21:55:11 +0000

Implemented 1656858: hooves make you noisy.

--------------------------------------------------------------------------------
7751a0c567 | dshaligram | 2007-03-08 21:23:05 +0000

Added dummy vault to prevent too much repetition of the early-game vaults (we 
only have one early-game vault).

--------------------------------------------------------------------------------
b2be52a8b7 | haranp | 2007-03-08 21:20:27 +0000

Fix for 1671330: keyin was not being tested correctly when choosing a book.

--------------------------------------------------------------------------------
581e41c05a | dshaligram | 2007-03-08 21:14:51 +0000

Moved RatsNest vault to D:4-8 (Erik). We still need some sort of dummy vault to 
balance this out since it is the only vault in its depth range, and will be 
picked all the time if the roll for a vault comes up (1 in 9).

--------------------------------------------------------------------------------
bb28231c54 | dshaligram | 2007-03-08 20:52:08 +0000

Fixed jellies not getting acid damage (Erik).

--------------------------------------------------------------------------------
b31338b60a | dshaligram | 2007-03-08 20:40:24 +0000

New key=value logfile format as proposed by Shawn Moore. This is more verbose 
than the old format by about 2x, but is more maintainable and comprehensible.
Removed support for parsing scorefiles/logfiles older than 4.0 beta 26.

Added shim to make 0.1.7 logfiles compatible with 0.2

Using the -scorefile option alone (no -scores, -tscores, etc.) causes Crawl to
read in the existing scorefile/logfile and write it out to stdout in the new
format.

Ghouls get claw damage messages in unarmed combat.

Plain oozes lose acid damage attacks (added inadvertently).

Prompt the user when trying to displace a friendly over water (the old
fix was to simply say "The foo resists").

--------------------------------------------------------------------------------
a1b5f79cc1 | dshaligram | 2007-03-07 18:19:22 +0000

Don't generate falling messages for swimming monsters (Erik).

--------------------------------------------------------------------------------
0d56bd01ad | dshaligram | 2007-03-07 10:42:01 +0000

[1675597] Ghouls wearing gourmand should not be told they're eating rotting 
chunks if they're not eating rotting chunks.

--------------------------------------------------------------------------------
36885c8cd5 | dshaligram | 2007-03-07 07:25:17 +0000

Move X - Quit up to the first line in the new game screen. Orphaning it 
downstairs looked odd.

--------------------------------------------------------------------------------
a0887505eb | dshaligram | 2007-03-07 06:02:32 +0000

Kill hard tabs in .h files and crawl_options.txt. Turn off mp_warning by 
default.

--------------------------------------------------------------------------------
4e0238331b | mtitus_613 | 2007-03-06 20:16:56 +0000

Player's magic can be 0 without the player dying (at least immediately) so 
remove that check. This allows the LOW MAGIC WARNING to appear if the player's 
magic drops from above the warning to 0 in one go.

--------------------------------------------------------------------------------
2b214aa073 | mtitus_613 | 2007-03-06 20:10:31 +0000

Add LOW MAGIC WARNING.  This involved creating a channel, modifying init.txt, 
and the crawl_options.txt docs. Message will trigger when player's magic drops 
below the percentage set in init.txt (default 10%). Nice for making sure 
casters don't run around with low magic amounts.

--------------------------------------------------------------------------------
bd1d91f4b9 | dshaligram | 2007-03-06 05:56:50 +0000

Kill hard tabs. redraw_dexterity now implies redraw_evasion.

--------------------------------------------------------------------------------
7cd64c37c6 | mtitus_613 | 2007-03-05 20:37:09 +0000

Trog and Okie shouldn't give gifts that can kill the player by stat drain. Xom 
is unchanged.

--------------------------------------------------------------------------------
d03308a14c | dshaligram | 2007-03-05 20:02:15 +0000

Update prebuilt lexer.

--------------------------------------------------------------------------------
c965ab77c6 | dshaligram | 2007-03-05 19:56:44 +0000

Revert Makhleb to the old behaviour of accepting collateral kills. Mark 
Makhleb's servants as divine gifts.

--------------------------------------------------------------------------------
1ca7d0a171 | dshaligram | 2007-03-05 19:14:40 +0000

Apply new evasion correctly for beam dodging.

--------------------------------------------------------------------------------
f92c98f617 | dshaligram | 2007-03-05 19:12:42 +0000

Imported 4.1-style EV calc.

--------------------------------------------------------------------------------
ac070947b0 | dshaligram | 2007-03-05 17:38:50 +0000

Retune monster abjuration.

--------------------------------------------------------------------------------
bea81c5e9f | dshaligram | 2007-03-05 16:53:45 +0000

Fixed unacquirable lajatangs (Matt). Moved weapon acquirement probability 
numbers into itemprop.cc.

--------------------------------------------------------------------------------
91b3a4bcce | dshaligram | 2007-03-05 14:30:56 +0000

Updated Elf:7 levels (David).
New vaults (Lemuel).

Tweaked dungeon.cc so that vault and minivault depths are no longer hardcoded,
and the depth settings in .des files are respected.

Okawaru now looks to see if the player already has enough ammo before doing
ammo gifts (needs testing, maybe some tuning of the enough-ammo condition).

Map lexer now accepts any non-space character in the map, for SUBST convenience.

--------------------------------------------------------------------------------
beb469a9f1 | dshaligram | 2007-03-04 11:05:55 +0000

When untransforming, player's hp is scaled back down by the same amount it was 
scaled up. We should eventually clean up the transform system like 4.1 does.

--------------------------------------------------------------------------------
12246839e2 | dshaligram | 2007-03-04 10:36:54 +0000

Give transformed players appropriate shouts.

--------------------------------------------------------------------------------
a639fc9fa8 | dshaligram | 2007-03-04 09:56:55 +0000

Ignite poison should wake affected monsters (Juha).

--------------------------------------------------------------------------------
773c08f11c | dshaligram | 2007-03-03 16:19:28 +0000

Kill unnecessary quote.

--------------------------------------------------------------------------------
2e56d3baec | dshaligram | 2007-03-02 21:59:47 +0000

Recalibrate damage for crystal spear and poison arrow.

--------------------------------------------------------------------------------
40430ae008 | dshaligram | 2007-03-02 21:45:36 +0000

Restrict the player not on D:1 check to very-OOD monster gen only.

--------------------------------------------------------------------------------
29f3d4e220 | dshaligram | 2007-03-02 21:39:37 +0000

More realistic level for unseen horrors.

--------------------------------------------------------------------------------
ae1c73942b | dshaligram | 2007-03-02 17:33:46 +0000

Fixed crash when monsters are killed by traps (Erik).

--------------------------------------------------------------------------------
fcac38d55b | dshaligram | 2007-03-01 16:20:14 +0000

Added extra entry vaults and option to load them. Undead should not drown in 
deep water.

--------------------------------------------------------------------------------
66e1e32d81 | dshaligram | 2007-02-27 19:00:38 +0000

Fixed double application of time for freezing clouds.

--------------------------------------------------------------------------------
3c0facbc26 | dshaligram | 2007-02-25 16:27:02 +0000

Give Angels and Daevas see invisible. Fixed duplication of monster special 
attack messages. Fixed typo s/auro/aura/. Increased chance of monster not 
moving when confused.

--------------------------------------------------------------------------------
f10f789ac2 | dshaligram | 2007-02-25 11:24:04 +0000

Give monster minotaurs a headbutt. They are now quite dangerous.

--------------------------------------------------------------------------------
5e78b58a7b | dshaligram | 2007-02-25 11:07:56 +0000

Clean up imp messages.

--------------------------------------------------------------------------------
57d3a7827c | dshaligram | 2007-02-25 11:04:25 +0000

Report drowning on the right channel.

--------------------------------------------------------------------------------
77fd6b4fec | dshaligram | 2007-02-25 10:58:50 +0000

Oops, monsters should not drown in shallow water.

--------------------------------------------------------------------------------
629b52939b | dshaligram | 2007-02-25 10:57:09 +0000

Pass beam killer info to mons_check_pool.

--------------------------------------------------------------------------------
cba959997c | dshaligram | 2007-02-25 10:54:27 +0000

Better handling of confused monsters - they can finally accidentally hit other 
monsters, fall into water, etc.

--------------------------------------------------------------------------------
a37d65daf3 | dshaligram | 2007-02-24 15:07:10 +0000

Preliminary changelog update for 0.2. Return gourmand charge ramp-up to 400 
turns. Fixed dodging/armour exercise checks.

--------------------------------------------------------------------------------
c5f83d2896 | dshaligram | 2007-02-24 14:09:06 +0000

We're not quite ready for engulfing monsters yet, changed AT_ENGULF to AT_HIT. 
Corrected command-line summary of the -macro option. Player aux unarmed was 
reusing the primary attack damage, fixed. Ghosts and pandemonium demons were 
getting 4 attacks where they should get only 1, fixed.

--------------------------------------------------------------------------------
8674d7ae28 | dshaligram | 2007-02-24 11:13:12 +0000

Monster attack refactoring. Likely to be buggy. Fixed tracer explosion beams 
generating clouds.

--------------------------------------------------------------------------------
822ac3ae2e | dshaligram | 2007-02-21 10:23:56 +0000

Add Jarmo to CREDITS.

--------------------------------------------------------------------------------
2245a9af95 | dshaligram | 2007-02-20 14:15:49 +0000

Level compiler now croaks if two maps have the same name.

--------------------------------------------------------------------------------
fa27b5e7cb | dshaligram | 2007-02-20 10:47:52 +0000

SYMBOL: is now obsolete in maps, replaced by SUBST:

--------------------------------------------------------------------------------
a191a19ff4 | dshaligram | 2007-02-19 18:54:42 +0000

Updated entry vaults (David). Level compiler is stricter with MAP sections. 
Block SHUFFLE: now uses / as a separator to avoid confusion.

--------------------------------------------------------------------------------
e9b1a504be | haranp | 2007-02-17 13:35:54 +0000

Moved formatted_string into its own file, separate from the rest of Menu.

--------------------------------------------------------------------------------
702a81e383 | dshaligram | 2007-02-15 11:40:37 +0000

Updated portal vaults (David). Fixed dungeon.cc's handling of 1x1 vaults.

--------------------------------------------------------------------------------
d2e1460182 | dshaligram | 2007-02-13 18:42:03 +0000

Fix compile failing on Windoze.

--------------------------------------------------------------------------------
e8c1f72225 | dshaligram | 2007-02-13 11:48:40 +0000

Updated .des files (David). Tweaked SHUFFLE: so it doesn't strip symbols not 
included in the map.

--------------------------------------------------------------------------------
30414416d0 | dshaligram | 2007-02-12 07:40:59 +0000

Break up you_attack() into a slew of smaller functions. The functions are still 
fairly tangled, but they're better than the old monster. The idea is to also 
put monster-vs-player and monster-vs-monster into the melee_attack framework so 
that refactoring combat code with elements of 4.1 becomes easier.
This is a big refactoring, so it's likely to be buggy. Some of the combat
diagnostics - notably the damage rolls - are also AWOL. Will fix going forward.

Note: The combat code is still classic b26.

--------------------------------------------------------------------------------
adbc8a9292 | dshaligram | 2007-02-10 09:13:01 +0000

Handle monster paralysis as an enchantment instead of the old speed mangling 
hack.

--------------------------------------------------------------------------------
45835f3264 | dshaligram | 2007-02-09 14:34:33 +0000

Tutorial messages and miscellaneous fixes (Johanna).

--------------------------------------------------------------------------------
8f7a0fd5e1 | dshaligram | 2007-02-09 13:09:30 +0000

Rename init_new_level to something more descriptive.

--------------------------------------------------------------------------------
052f906cf8 | dshaligram | 2007-02-09 13:02:06 +0000

Modified wizmode &" and &~ commands so that you can jump to any level of any 
branch instead of only up and down in the current branch. Wizmode &d, &u 
remains unchanged, although you can also hit &"> and &"< to do the same thing.

--------------------------------------------------------------------------------
8c1ca155f8 | dshaligram | 2007-02-09 09:11:41 +0000

Interlevel travel now handles branch stairs more intelligently:
Travel knows that all branch exits of the same type share the same destination,
and will use the nearest branch exit, even if you've never used it before.
 
The same applies to multiple branch entries, the portals to Zot:1 for instance.
This does mean that the first visit to Zot is likely to generate a bad Zot-exit
guess (Zot has many entries and many exits), but that'll be fixed the first
time the player leaves Zot.

.tc version updated.

--------------------------------------------------------------------------------
19c9624157 | dshaligram | 2007-02-09 07:44:18 +0000

Tweaked makefile.mgw to copy init.txt to the directory with crawl.exe.

--------------------------------------------------------------------------------
971b5c5b1d | dshaligram | 2007-02-09 06:51:30 +0000

Updated makefile.dos and makefile.mgw to use dependencies if available. Renamed 
dependency file to makefile.dep for DOS.

--------------------------------------------------------------------------------
02c9bca060 | dshaligram | 2007-02-09 05:42:51 +0000

Stone Soup draconians should not have M_FLIES, fixed (Rob).
Gila monsters can no longer be red (confusion with firedrakes). They can still
be lightred (komodo dragons) or yellow (giant geckos).

--------------------------------------------------------------------------------
04f87b0397 | dshaligram | 2007-02-08 16:15:21 +0000

[1653078] Allow self-targeting in direction_choose_compass.

--------------------------------------------------------------------------------
63e9b3a3a5 | dshaligram | 2007-02-08 15:39:09 +0000

Fix compile breaking on cygwin's massively odd gcc 3.4.4.

--------------------------------------------------------------------------------
f8f7202736 | dshaligram | 2007-02-08 12:30:05 +0000

Updated tables.txt (David).

--------------------------------------------------------------------------------
3e50fe77f2 | dshaligram | 2007-02-08 12:20:54 +0000

Added David's new Antaeus level.
Dungeon builder was asking for vault-collision checks on minivaults, which
could hang the game, fixed.

--------------------------------------------------------------------------------
e4917e5fb1 | dshaligram | 2007-02-08 09:14:14 +0000

Credit Juha for hydra fighting and other suggestions on ##crawl.

--------------------------------------------------------------------------------
6a7804a077 | dshaligram | 2007-02-08 09:12:58 +0000

Hydras now behave the same way in monster-vs-monster combat as they do in 
player vs monster. Specifically, hydras get their as many attacks as they have 
heads vs other monsters, and other monsters can chop off hydra heads (at 25% of 
the probability that the player has of chopping off heads).

--------------------------------------------------------------------------------
bf1085165e | dshaligram | 2007-02-08 05:23:10 +0000

Disallow ghosts in labyrinths. Abyss/Pandemonium ghosts can otherwise be loaded 
in labyrinths and can be devastatingly OOD.

--------------------------------------------------------------------------------
9cad3dbf07 | dshaligram | 2007-02-08 05:14:34 +0000

Allow portal vaults to clobber water and lava.

--------------------------------------------------------------------------------
8ae0527c0c | dshaligram | 2007-02-08 05:11:10 +0000

Downgrade lindwurm to firedrake for Lair entrance. Lindwurms are too strong for 
a Lair entry.

--------------------------------------------------------------------------------
2d85511edc | dshaligram | 2007-02-07 16:21:28 +0000

Removed Orcish Mines warning - no message is better than a confusing message.

--------------------------------------------------------------------------------
e2125f84f0 | dshaligram | 2007-02-07 12:59:03 +0000

Remove testing CHANCE: line.

--------------------------------------------------------------------------------
c30b530266 | dshaligram | 2007-02-07 12:56:34 +0000

[1638394] Added support for portal vaults. Included David's portal vaults for 
the Mines, Lair and Vaults.

--------------------------------------------------------------------------------
9a5dd81c99 | dshaligram | 2007-02-07 07:47:09 +0000

[1644503] Removed confusing wording from selective amnesia description.

--------------------------------------------------------------------------------
4f5c3fcd7a | dshaligram | 2007-02-06 18:01:00 +0000

Make sure user has entered wizmode before allowing friendly toggle.

--------------------------------------------------------------------------------
368e5ffc19 | dshaligram | 2007-02-06 17:57:51 +0000

Restore old meaning of space during targeting.

--------------------------------------------------------------------------------
15914c9459 | dshaligram | 2007-02-06 17:54:25 +0000

Fixed unbrandability of friendly hellions.
Moved beam cycling to ^C. We really need to make it a wizmode-only option.

--------------------------------------------------------------------------------
7f57e44d06 | dshaligram | 2007-02-06 17:16:29 +0000

Better messages when canceling butcher.

--------------------------------------------------------------------------------
24be3228d4 | dshaligram | 2007-02-06 16:03:52 +0000

Tutorial (JPEG) and some formatting cleanup.

--------------------------------------------------------------------------------
f878a03c78 | dshaligram | 2007-02-05 19:17:37 +0000

Add support for block shuffling in maps (proposed by David).
For instance:

SHUFFLE: wW, 8$

will, if it swaps w and 8, also swap W and $. Block shuffles may have any
number of comma-separated entries, provided each segment is the same length.

--------------------------------------------------------------------------------
14e0ee2e84 | dshaligram | 2007-02-05 18:54:40 +0000

Don't do left_vault check if we've already left the vault.

--------------------------------------------------------------------------------
b38e4381c1 | dshaligram | 2007-02-05 18:40:37 +0000

Dungeon builder now guarantees a path between { and one of )]}> on D:1, except 
in the case of enclosed entry vaults.

--------------------------------------------------------------------------------
5f847aeb6e | dshaligram | 2007-02-05 16:37:14 +0000

Don't allow very long entry vaults to be rotated, because they cut off parts of 
the level.
We should also add sanity checks to make sure at least one downstair is
reachable from the start position, or that the entry vault is fully-enclosed.

--------------------------------------------------------------------------------
e05778a936 | dshaligram | 2007-02-05 15:30:52 +0000

Remove commentary.

--------------------------------------------------------------------------------
58f390faae | dshaligram | 2007-02-05 12:48:06 +0000

s/rotten/rotting.

--------------------------------------------------------------------------------
01763ea3c4 | dshaligram | 2007-02-05 12:46:15 +0000

Updated init.txt (David).

--------------------------------------------------------------------------------
6909a0a7c9 | dshaligram | 2007-02-05 12:44:28 +0000

Updated crawl_options.txt (David).

--------------------------------------------------------------------------------
4ea301d991 | dshaligram | 2007-02-05 12:05:42 +0000

[1632567] Greedy explore now tries to do the Right Thing with mimics.

--------------------------------------------------------------------------------
b1dfd6626d | dshaligram | 2007-02-03 14:52:12 +0000

[1646885] Refix monster alerts being issued for monsters that subsequently 
leave LOS.

--------------------------------------------------------------------------------
6115d75a55 | dshaligram | 2007-02-03 12:53:29 +0000

Allow ghosts to remember and use shock, ice bolt and bolt of magma.

--------------------------------------------------------------------------------
72881a889f | dshaligram | 2007-02-02 10:05:48 +0000

Unseen horrors should not resist electricity.

--------------------------------------------------------------------------------
30ab115759 | dshaligram | 2007-01-31 09:20:32 +0000

Monster abjuration tuning. May need more work.

--------------------------------------------------------------------------------
8be55909c7 | dshaligram | 2007-01-31 09:04:04 +0000

Horrible things are now temporary. Monster abjuration is considerably weaker.

--------------------------------------------------------------------------------
13ce09cb0d | dshaligram | 2007-01-30 12:22:55 +0000

Wizardry+Vehumet nerf. Or rather, wizardry and Vehumet effects applied as they 
should have been applied to start with. Will need tuning.

--------------------------------------------------------------------------------
17d8bd89a7 | dshaligram | 2007-01-30 11:59:23 +0000

Added autopickup_exceptions option modeled on NetHack's, so that it's easy to 
request stuff to pick up without inscribing with =g. ban_pickup is now 
semi-deprecated.

--------------------------------------------------------------------------------
b92ab27580 | dshaligram | 2007-01-29 17:42:56 +0000

Default no_dark_brand to true.

--------------------------------------------------------------------------------
1b87b6c8d4 | dshaligram | 2007-01-29 16:57:10 +0000

Allow maps to use SHUFFLE: directive to shuffle symbols in the map definition 
(David).
For instance, SHUFFLE: def will shuffle its argument (to "efd", for instance)
and replace each occurrence of the symbols in its argument with the
corresponding symbol in the shuffled list (so all d will be replaced with e,
all e with f, and all f with d in the example).

Multiple SHUFFLE: lines can be used, and each shuffle will be applied
independently.

--------------------------------------------------------------------------------
9295e4fb39 | dshaligram | 2007-01-29 15:42:46 +0000

Allow vaults to ask for a monster to be generated awake (generate_awake tag). 
Add Enter as a synonym for . in targeting.

--------------------------------------------------------------------------------
95ae20f326 | haranp | 2007-01-29 11:39:34 +0000

Tweaked targeting message (David.)

--------------------------------------------------------------------------------
2304d9cd51 | haranp | 2007-01-29 11:28:03 +0000

Moved monster descriptions in targeting from '?' to 'v'. Put targeting help on 
'?'.

--------------------------------------------------------------------------------
77be5ae4a0 | haranp | 2007-01-29 10:42:36 +0000

Made default targeting an option (default_target, defaults to false.) If 
default_target is set, direction() now starts on the closest target (as if you 
pressed '+') if your previous target is invalid. Removed old fizzle check 
option. Ctrl-T is now free.

--------------------------------------------------------------------------------
5d132a7fba | dshaligram | 2007-01-29 10:21:31 +0000

Set note_hp_percent to 5 by default (David). Add stones to default fire_order. 
Removed unused function.

--------------------------------------------------------------------------------
8e007cb6cf | haranp | 2007-01-28 18:34:59 +0000

Targeting now defaults to starting on your previous target if applicable (and 
if you're targeting enemies.) This might not always be a good thing, but it's 
been requested...maybe it should be an option.

--------------------------------------------------------------------------------
3afe583f3e | haranp | 2007-01-28 17:09:39 +0000

Revert ogre-mages' ability to eat rotten meat.

--------------------------------------------------------------------------------
df8fd657b2 | haranp | 2007-01-28 16:56:06 +0000

Made confirm_self_target work again. Minor text cleanups (David.)

--------------------------------------------------------------------------------
14855516c1 | dshaligram | 2007-01-28 14:22:11 +0000

Added add_glyph methods to formatted string to show a monster or item glyph as 
displayed on screen. Still is a bit messy to use, and you must initialise the 
formatted_string with a base colour before using add_glyph(), or the 
formatted_string will reset to lightgrey after the glyph.

--------------------------------------------------------------------------------
1bbfa550c2 | dshaligram | 2007-01-27 19:23:14 +0000

Nerfed orange statue attack speed. They can be placed in minivaults that are 
difficult to identify, and they can very quickly kill low Int characters.

--------------------------------------------------------------------------------
937243ef78 | haranp | 2007-01-27 16:10:01 +0000

Changed message when you have no abilities.

--------------------------------------------------------------------------------
f290928873 | haranp | 2007-01-27 16:08:15 +0000

Implemented 1634001: saprovore level is now shown on 'A' screen. Changed 
level-3 carnivore mutation slightly.

--------------------------------------------------------------------------------
78c738241f | haranp | 2007-01-27 15:07:07 +0000

Beam-cycling in direction(). You can use SPACE to cycle between beams, ':' to 
hide the beam. Will probably need a future rewrite...getting this in for 
testing.

--------------------------------------------------------------------------------
c6e44918d2 | dshaligram | 2007-01-27 12:27:42 +0000

Detect creatures should not reveal monster identities in notes.

--------------------------------------------------------------------------------
6c39c085ff | haranp | 2007-01-27 11:46:32 +0000

Added formatted_mpr(), which gives (very!) basic support for formatted output 
in mpr(). This is an extreme hack, and should be redone better.

--------------------------------------------------------------------------------
1d78b895cd | haranp | 2007-01-27 10:54:03 +0000

Can't fix pain brands (Darshan.)

--------------------------------------------------------------------------------
9c94ca75ce | haranp | 2007-01-26 16:02:55 +0000

Fixed bug with branch level stairs in Pan.

--------------------------------------------------------------------------------
e1ea97bd19 | haranp | 2007-01-26 12:36:44 +0000

Minor direction cleanups (mainly messaging.)

--------------------------------------------------------------------------------
47acdb6980 | haranp | 2007-01-25 23:15:35 +0000

direction() cleanup, stage 2: look_around is gone, everything unified into a 
single function (well, two.) Since '>' is taken, '!' is now used for requesting 
that the beam stop short at a specific point. However, this is currently buggy: 
' ', '.' and '!' all do the same thing for now - the beam will *always* stop 
right there. Fixing this will need a bit of hacking at the zapping functions. 
Don't worry, it'll get done.

--------------------------------------------------------------------------------
c17d939e05 | dshaligram | 2007-01-25 17:53:03 +0000

More entry vaults from David.

--------------------------------------------------------------------------------
7c77e2151e | dshaligram | 2007-01-25 17:35:41 +0000

More entry vaults (Lemuel).

--------------------------------------------------------------------------------
d6ad50d221 | dshaligram | 2007-01-25 14:57:29 +0000

[1638588] Don't use highlighters in formatted_scrollers.

--------------------------------------------------------------------------------
d5e4c53824 | dshaligram | 2007-01-25 11:14:13 +0000

Fix compile failing on Windows MinGW.

--------------------------------------------------------------------------------
a0d48b0186 | dshaligram | 2007-01-25 10:43:02 +0000

Removed USE_NEW_RANDOM, USE_MACROS.
Removed DOS_TERM, PLAIN_TERM special casery - all platforms get PLAIN_TERM.

Better end-of-greedy-explore reporting for items on traps (Erik).

Cleaned up find_travel_pos - moved guts of travel pathfinding to
travel_pathfind class.

Miscellaneous other stuff.

--------------------------------------------------------------------------------
be875338f2 | haranp | 2007-01-25 04:47:02 +0000

Fixed 1642855: plants weren't poison resistant.

--------------------------------------------------------------------------------
e3e52a2f08 | haranp | 2007-01-24 22:32:09 +0000

Stage 1 of the direction() rewrite. I am committing this even though it isn't 
complete yet, because: (a) it's good enough now that I like it better than the 
old version (b) feedback and testing is badly needed.
Direction selection has been redone and is no longer modal. You now
use the normal arrow or vi keys to move around. If you want to select
a direction, as opposed to a specific target square, use the Shift-
versions of the movement keys. This might not work with arrow keys
on some systems; it's hard for me to check on my own system.

Most of the other keys should work, but I'm not sure I've got them all.
';', '+', '-', '.', ' ' (== '.'), 't', 'f', 'p' all work.

'x' (from the main screen) still calls look_around(), not the new
direction code, so you have some room to compare.

The confirm_* options are now meaningless and will be removed shortly.

--------------------------------------------------------------------------------
09e86f4fcf | haranp | 2007-01-23 15:59:20 +0000

Charmed monsters should not run away from you.

--------------------------------------------------------------------------------
3d15d8bca5 | haranp | 2007-01-23 15:50:56 +0000

Fix for 1642067: notes will not call a monster 'it'.

--------------------------------------------------------------------------------
2431b4ac12 | haranp | 2007-01-23 15:43:50 +0000

Fixed Enchant Weapon III message bug. Pain brand can now be fixed (with a side 
effect of self-torment.)

--------------------------------------------------------------------------------
35dd043cc9 | haranp | 2007-01-23 15:04:16 +0000

Made demonspawn poison and electricity resistance level-3, so that you won't 
have them strengthened by !oMutation.

--------------------------------------------------------------------------------
bf55c6a25e | haranp | 2007-01-23 14:55:24 +0000

Fixed 1642577, tag wasn't being closed for troll mutations.

--------------------------------------------------------------------------------
b043e768c5 | haranp | 2007-01-23 11:03:50 +0000

Random altars in the Abyss are now to Lucy 50% of the time.

--------------------------------------------------------------------------------
db019b2a7d | haranp | 2007-01-23 10:21:46 +0000

Boosted the chance for Abyssal runes from 1 in 500 to 1 in 200. Trust me, it's 
still low.

--------------------------------------------------------------------------------
1b5329add4 | haranp | 2007-01-23 10:20:17 +0000

Coloured antique shops in yellow in 'O' display. Squeezed more shops per line 
in 'O' display.

--------------------------------------------------------------------------------
57980887ff | dshaligram | 2007-01-18 09:59:40 +0000

Updated entry vaults (David).

--------------------------------------------------------------------------------
1cfbc754ae | dshaligram | 2007-01-18 09:26:42 +0000

Removed ogre and orc priest from concentric rings entry.

--------------------------------------------------------------------------------
db98a72096 | dshaligram | 2007-01-18 09:22:27 +0000

Remove obstructive plants in water+fire themed entries.

--------------------------------------------------------------------------------
03eb8d1bf6 | dshaligram | 2007-01-18 09:13:46 +0000

Deleting unsuitable entries.

--------------------------------------------------------------------------------
1c332d94f4 | dshaligram | 2007-01-18 08:57:03 +0000

Updated rogue-themed Elf:7 levels (David).

--------------------------------------------------------------------------------
0226403674 | dshaligram | 2007-01-18 08:36:37 +0000

Allow "nothing" to be used in MONS: declarations.

--------------------------------------------------------------------------------
10104fd665 | dshaligram | 2007-01-18 08:23:42 +0000

New entry vaults and regular vaults (Lemuel). The regular vaults are probably 
intended to be portal vaults for Hell portals; we need to add support for 
portal vaults.
Added support for monster slot randomisation for maps.

--------------------------------------------------------------------------------
2602987755 | haranp | 2007-01-17 19:43:09 +0000

Kashrut.

--------------------------------------------------------------------------------
5749477f27 | haranp | 2007-01-17 19:40:28 +0000

Disallowed ghosts in Pan to fix 1637019.

--------------------------------------------------------------------------------
bcef6b18d1 | haranp | 2007-01-17 19:19:37 +0000

Oops. Left a debugging mpr in.

--------------------------------------------------------------------------------
e79b5757f9 | haranp | 2007-01-17 19:13:55 +0000

Fixed bug where Pan lords were not getting their spells loaded. This was 
because spell loading was happening before spell creation. Now it gets loaded 
twice, which is slightly inefficient, but who cares.

--------------------------------------------------------------------------------
503609ba38 | dshaligram | 2007-01-17 15:03:13 +0000

Added a basic depend target. Maybe we should do full autodependency building?

--------------------------------------------------------------------------------
0cb37ef9c9 | dshaligram | 2007-01-17 08:03:38 +0000

The stash-tracker also needs shop SIGHUP protection.

--------------------------------------------------------------------------------
e086d5eefd | dshaligram | 2007-01-17 06:44:47 +0000

Fixed id array being clobbered if Crawl receives SIGHUP with the player in a 
shop.

--------------------------------------------------------------------------------
b8b9746bd4 | haranp | 2007-01-16 16:15:48 +0000

Fixed stupid bug in itemname.cc which was causing duplicate scroll names. 
[1622001]

--------------------------------------------------------------------------------
c44df0841a | haranp | 2007-01-16 15:57:56 +0000

Changed startup screens per David's suggestions: '*' now means 
random-selection-in-current-screen; '!' means random character; '?' means help. 
Speak up if these are too inconvenient.

--------------------------------------------------------------------------------
689dba0985 | haranp | 2007-01-16 15:42:01 +0000

Added level_map_title option per 1598159.

--------------------------------------------------------------------------------
cf1b4beb2d | haranp | 2007-01-16 15:13:22 +0000

Implemented 1633681, Excruciating Wounds spell. Better wording welcome.

--------------------------------------------------------------------------------
9fedab7824 | haranp | 2007-01-16 14:47:23 +0000

Reduced quantity of curare needles per 1635724.

--------------------------------------------------------------------------------
9f89429f72 | haranp | 2007-01-16 14:32:15 +0000

Moved multipliers for spellcasting/invoc/evoc from the function to the tables.

--------------------------------------------------------------------------------
6738ceef64 | haranp | 2007-01-16 14:13:55 +0000

Fixed bug 1636467, sometimes monsters were getting no energy.

--------------------------------------------------------------------------------
92d4e997d6 | dshaligram | 2007-01-14 16:42:07 +0000

Fixed Turn being cut off if your gold is >5 digits (Haran).

--------------------------------------------------------------------------------
452ed6cd7c | dshaligram | 2007-01-14 08:18:30 +0000

Make cursor munging happen for every message output, not just when window 
scrolls.

--------------------------------------------------------------------------------
1a1f314735 | dshaligram | 2007-01-14 06:14:34 +0000

Fix cursor going bats after message window scrolls with delay_message_clear=yes 
on Unix.

--------------------------------------------------------------------------------
8a76884836 | dshaligram | 2007-01-14 06:09:22 +0000

[1634209] Freeze will wake and annoy its target.

--------------------------------------------------------------------------------
0f27d16c2d | dshaligram | 2007-01-14 05:58:31 +0000

[1634656] Make sure statues cannot move around.

--------------------------------------------------------------------------------
dfc6c6766d | dshaligram | 2007-01-13 13:29:15 +0000

Matt Titus' entry levels.

--------------------------------------------------------------------------------
b6e6b78929 | dshaligram | 2007-01-12 17:38:32 +0000

[1569857] Fixed scorefile parsing bug (Eva Myers). The line buffer was too 
small for long bolt names.

--------------------------------------------------------------------------------
47554e01d8 | dshaligram | 2007-01-12 13:47:15 +0000

Updated header documentation (Erik).

--------------------------------------------------------------------------------
632b1309b0 | dshaligram | 2007-01-12 12:38:22 +0000

Handle the cursor correctly when scrolling the message window with curses.

--------------------------------------------------------------------------------
f36c1880d5 | dshaligram | 2007-01-12 12:16:38 +0000

Fixed compile issues on DOS.

--------------------------------------------------------------------------------
cd0a4992ef | dshaligram | 2007-01-12 11:24:59 +0000

Don't allow random conversion of doors to secret doors in vaults (Erik).

--------------------------------------------------------------------------------
ebbd973a8a | dshaligram | 2007-01-12 11:06:11 +0000

Add message buffer scrolling on Windows.

--------------------------------------------------------------------------------
e14489b93f | dshaligram | 2007-01-12 10:03:17 +0000

New entry vaults from Lemuel. Don't dismiss zero experience monsters in LOS at 
start of game.

--------------------------------------------------------------------------------
7a592cc1f6 | dshaligram | 2007-01-12 08:41:34 +0000

First steps towards making delay_message_clear useful. The intent is to use a 
scrolling message window and show --more-- only when the message window is 
filled with new messages since the last mesclr (as suggested by Eidolos/doy on 
##crawl).
This currently works only on curses (breaks the DOS and Windows compiles), I'm
working on fixing that. There are also some cursor glitches with prompts at the
bottom of the message window that I need to fix.

--------------------------------------------------------------------------------
4a36706dfc | haranp | 2007-01-11 20:33:00 +0000

Jellies shouldn't eat artifacts of any kind.

--------------------------------------------------------------------------------
d5fd5e1ada | dshaligram | 2007-01-11 09:24:02 +0000

Don't random-generate altars to Lucy.

--------------------------------------------------------------------------------
db9ef8ec2f | dshaligram | 2007-01-11 08:50:34 +0000

[1632774] Don't announce interruption of multidrop if there's nothing left to 
drop.

--------------------------------------------------------------------------------
9ed0206d8e | dshaligram | 2007-01-11 08:43:24 +0000

Fix pickup and stash-search menus having unselectable items if there are lots 
of items, and the term is taller than 52 lines.

--------------------------------------------------------------------------------
670740704e | dshaligram | 2007-01-11 07:34:03 +0000

SAVEDIR and DATADIR should be commented out by default.

--------------------------------------------------------------------------------
4ddca565ae | dshaligram | 2007-01-11 07:32:06 +0000

Handle morgue_dir option better (create dir if it doesn't exist), updated 
makefile.unix to copy docs to the data directory for make install.
Added SAVEDIR variable to the makefile so the user doesn't need to edit
AppHdr.h for SAVE_DIR_PATH.

--------------------------------------------------------------------------------
184022aa4b | dshaligram | 2007-01-11 07:05:57 +0000

Oops, fixed bad format string.

--------------------------------------------------------------------------------
abc565d0ca | dshaligram | 2007-01-11 07:03:20 +0000

Changed error message + exit() sequences to end() calls so that the user can 
see the error message on the console.
Added docs/ to the data search path for the Windows builds.

--------------------------------------------------------------------------------
12daab03d0 | dshaligram | 2007-01-11 06:45:06 +0000

Vault fixes.

--------------------------------------------------------------------------------
e8547b3d00 | dshaligram | 2007-01-10 18:57:06 +0000

More entry vaults (Erik).

--------------------------------------------------------------------------------
94cb5e07e5 | dshaligram | 2007-01-10 17:39:08 +0000

Even more entry vaults (David).

--------------------------------------------------------------------------------
d4bb0ba104 | dshaligram | 2007-01-10 14:08:01 +0000

Removed silly check for morgue_dir.

--------------------------------------------------------------------------------
55ffcb52c5 | dshaligram | 2007-01-10 14:06:38 +0000

Dump morgue dumps in morgue/ by default.

--------------------------------------------------------------------------------
e2d1995940 | dshaligram | 2007-01-10 13:50:43 +0000

Stone-line the rogue-themed Elf:7 vaults to foil sappers. This also forces a 
teleport into the curse-skull treasure vaults (David) unless the player has 
Shatter.

--------------------------------------------------------------------------------
55689f70e6 | haranp | 2007-01-10 13:48:05 +0000

Changed white to green in overmap headers (David.)

--------------------------------------------------------------------------------
c19654b613 | dshaligram | 2007-01-10 12:13:52 +0000

[1632207] Dropping items on an altar while praying will offer those items to 
$DEITY. If it's a multidrop, only the last item will trigger the altar-offer to 
avoid spammy messages. Interrupted multidrop will not do the offer, nor will 
the offer happen if prayer ends before the last item is dropped.

--------------------------------------------------------------------------------
ca24077fe2 | dshaligram | 2007-01-10 11:23:59 +0000

Updated entry vaults (Erik).

--------------------------------------------------------------------------------
5653b38035 | dshaligram | 2007-01-10 07:18:17 +0000

More entry vaults (Erik).

--------------------------------------------------------------------------------
c628fcdc62 | dshaligram | 2007-01-10 06:09:02 +0000

Updated entry vaults (Erik).

--------------------------------------------------------------------------------
4c0344b9dd | dshaligram | 2007-01-09 11:47:02 +0000

Turn off autoprayer and autopickup if attacked by an invisible monster. NOTE: 
autopickup is turned off only if safe_autopickup is enabled.

--------------------------------------------------------------------------------
9415865e90 | dshaligram | 2007-01-09 11:26:53 +0000

[1631021] Interrupt delays only if the player knows he was attacked.
Under the old system, the delay was interrupted when the monster got an attack
round against the player; if the monster is invisible and misses, the player
received no message, but delays were interrupted.

Under the new system, the delay is interrupted only if the player perceives the
attempted attack (if the player shield-blocks, or the attacker is visible, or
the player actually takes a hit).

Also fixed the old behaviour where you would not be aware of an unseen horror
if it hits but does no damage.

--------------------------------------------------------------------------------
de47f74ee9 | haranp | 2007-01-09 10:55:19 +0000

Oops, reversed the check.

--------------------------------------------------------------------------------
594e124273 | haranp | 2007-01-09 10:54:12 +0000

Flying monsters shouldn't mind triggering mechanical traps (Erik.)

--------------------------------------------------------------------------------
843b0034d8 | dshaligram | 2007-01-09 10:32:10 +0000

Tweaked travel/explore so that it doesn't cut off before trying to move to a 
square with an invisible monster/mimic. Travel now cuts off when the PC 
attempts to attack the invisible monster.

--------------------------------------------------------------------------------
5e3c0308b4 | haranp | 2007-01-09 09:52:30 +0000

Fixed buggy simulacrum hit messages (reported by Erik.)

--------------------------------------------------------------------------------
52b7f2716d | dshaligram | 2007-01-09 08:58:22 +0000

[1625227] animate_dead will not affect corpses being butchered.

--------------------------------------------------------------------------------
bca7bf9540 | dshaligram | 2007-01-09 08:35:43 +0000

[1629452] Show unburdened carrying capacity. Weights exceeding this will show 
up as >100%, which is fine by me.

--------------------------------------------------------------------------------
d89f54beb2 | dshaligram | 2007-01-09 07:11:41 +0000

New Elf:7 maps (David).

--------------------------------------------------------------------------------
cc9828c0da | haranp | 2007-01-09 01:07:48 +0000

Increased max missile ranges to 12 since the new beaming code tends to pick 
longer beams. We should fix that problem separately.

--------------------------------------------------------------------------------
ebd601a9aa | dshaligram | 2007-01-08 18:32:07 +0000

Added ~ for maps to request a trap that's in-depth for the current level.
The no_pool_fixup tag will prevent dungeon.cc from helpfully converting random
deep water squares to shallow water next to floor.

Updated doc comments in .des files.

Fixed lexer to accept ~ as part of a map definition.

--------------------------------------------------------------------------------
7c777d20a8 | dshaligram | 2007-01-08 17:49:47 +0000

More entry vaults (David).
These vaults need some code fixes (traps should be in-depth, need a symbol for
deep water), will do it right soonish now.

--------------------------------------------------------------------------------
ee2370b8a3 | dshaligram | 2007-01-08 14:13:36 +0000

More entry vaults (David).

--------------------------------------------------------------------------------
6171c70321 | dshaligram | 2007-01-08 12:27:24 +0000

Erik's entry vaults.

--------------------------------------------------------------------------------
9c97ddbda3 | haranp | 2007-01-08 11:16:37 +0000

Reworded titles in overmap display per David's suggestions. Also removed '_' as 
display notes since it's reachable by ? : now.

--------------------------------------------------------------------------------
b0dfd61493 | haranp | 2007-01-08 08:33:31 +0000

menu_colour should not be lowercased.

--------------------------------------------------------------------------------
081fdf88cc | haranp | 2007-01-08 07:52:10 +0000

Removed 'considerably' from MR adjectives list (Darshan.)

--------------------------------------------------------------------------------
317ed72d9c | haranp | 2007-01-07 22:39:38 +0000

Added magic resistance feedback to '@'.

--------------------------------------------------------------------------------
0710410f6d | haranp | 2007-01-07 22:31:33 +0000

Added macro help file to the general help.

--------------------------------------------------------------------------------
1a6236d61b | haranp | 2007-01-07 22:00:13 +0000

Implemented some of David's ideas: Improved the help browser somewhat and added 
some hotkeys. The 'm' screen now lets you see your aptitudes with '!' (if 
you're allowed to know them, that is.)

--------------------------------------------------------------------------------
84e73a2e15 | haranp | 2007-01-07 17:57:12 +0000

Damaging a monster with a draining beam is now considered necromatic magic (I 
suppose this might be doubly-applied if you cast Bolt of Draining while 
worshipping TSO; that's the breaks.)

--------------------------------------------------------------------------------
0f94a7834e | haranp | 2007-01-07 17:46:36 +0000

Fix for 1628739: hostile summons don't need to get enraged.

--------------------------------------------------------------------------------
82a31972a5 | haranp | 2007-01-07 12:18:05 +0000

Made Deflect Missiles half as good as it used to be for beams, and made it no 
longer an automatic success for blockables. This might be too much, I'm not 
sure; playtesting needed.

--------------------------------------------------------------------------------
3b4bf3d5d5 | dshaligram | 2007-01-06 17:19:59 +0000

Don't save ghosts for quitters.

--------------------------------------------------------------------------------
2052c5d637 | dshaligram | 2007-01-06 09:11:42 +0000

[1627743] Indicate when a monster's paralysed (mons_is_paralysed may need 
fixing per Haran's comment).

--------------------------------------------------------------------------------
bc80cb35bd | dshaligram | 2007-01-06 05:52:14 +0000

[1628932] Fixed fire_items_start bugginess - the field should not be lowercased.

--------------------------------------------------------------------------------
4b9d037c9f | dshaligram | 2007-01-06 05:45:45 +0000

[1628897] Fix non-stacking food. Mea culpa.

--------------------------------------------------------------------------------
9a2e461c9d | dshaligram | 2007-01-06 05:19:49 +0000

Allow <> to scroll Ctrl-P message history.

--------------------------------------------------------------------------------
f60331c066 | dshaligram | 2007-01-05 15:26:00 +0000

Fixed map items being carried forward to all subsequent maps (Erik).

--------------------------------------------------------------------------------
7dab951588 | dshaligram | 2007-01-04 18:38:39 +0000

Autoprayer should not activate in damaging clouds. Fixed '5' resting being 
broken.

--------------------------------------------------------------------------------
e6eb624e24 | dshaligram | 2007-01-04 18:06:55 +0000

Hellfire users are M_EVIL.

--------------------------------------------------------------------------------
c6ed3e6657 | dshaligram | 2007-01-04 17:40:20 +0000

item_ident(x, ISFLAG_KNOW_TYPE) is now deprecated in favour of 
item_type_known(x).

--------------------------------------------------------------------------------
4b78d5ee2b | dshaligram | 2007-01-04 14:51:11 +0000

Include errno.h to fix DOS compile.

--------------------------------------------------------------------------------
abe324a142 | dshaligram | 2007-01-04 13:51:32 +0000

[1626673] When croaking in files.cc, make sure the user can see the error 
message.

--------------------------------------------------------------------------------
5e88f22367 | dshaligram | 2007-01-04 13:19:22 +0000

Tweaks to try to fix numpad handling for Windows without blowing up support on 
Unix. I need help testing this since I don't have a numpad. :-)

--------------------------------------------------------------------------------
a595b7fd82 | dshaligram | 2007-01-04 12:56:06 +0000

[1626830] Fixed non-stacking potions.

--------------------------------------------------------------------------------
6289e90146 | dshaligram | 2007-01-03 17:38:28 +0000

Shadow dragons should be M_EVIL.

--------------------------------------------------------------------------------
f871bcf801 | dshaligram | 2007-01-03 08:06:06 +0000

[1626675] Handle auto_list better when eating chunks off the ground. This is 
still not perfect, since it's possible to get *two* -more- prompts, but it'll 
do for now.

--------------------------------------------------------------------------------
392d820b11 | dshaligram | 2007-01-03 07:13:04 +0000

Note alternatives to + and \ for autopickup option.

--------------------------------------------------------------------------------
be85632122 | dshaligram | 2007-01-03 07:11:06 +0000

s/aquirement/acquirement/

--------------------------------------------------------------------------------
5a989f8f2c | dshaligram | 2007-01-03 07:05:55 +0000

Prayer with no god uses no turns (the message indicates that it does, but to 
heck with that).

--------------------------------------------------------------------------------
4c4d658230 | dshaligram | 2007-01-03 07:01:40 +0000

s/armor/armour

--------------------------------------------------------------------------------
c13f8ffb81 | dshaligram | 2007-01-02 20:49:41 +0000

Don't do a full redraw when travel_delay = -1

--------------------------------------------------------------------------------
f2b699e771 | dshaligram | 2007-01-02 19:30:44 +0000

Fixed manual wording for skills (ekiM).

--------------------------------------------------------------------------------
489fc25c92 | dshaligram | 2007-01-02 18:52:30 +0000

Fixed broken shift-5 resting.

--------------------------------------------------------------------------------
33e515a9c5 | dshaligram | 2007-01-02 18:08:01 +0000

[1626223] Fixed randart checks for monster fire and cold resistance (Jarmo).

--------------------------------------------------------------------------------
dd8c8deaa5 | dshaligram | 2007-01-02 18:04:20 +0000

[1626239] Fix eol-style to native for documentation.

--------------------------------------------------------------------------------
1b118f124d | dshaligram | 2007-01-02 17:46:13 +0000

Moved i_feel_safe checks to the travel start functions themselves.

--------------------------------------------------------------------------------
1826273cc5 | dshaligram | 2007-01-02 17:31:31 +0000

Fixed Abyss banishment crash.
Don't show -more- after the "cast into the Abyss" so that players on public 
servers are not tempted to kill the tty to escape the banishment. It's still
possible that there are enough messages in view that the game puts in a -more-
unasked for, but I'll live with that.

--------------------------------------------------------------------------------
9548119ecb | dshaligram | 2007-01-02 15:07:54 +0000

Blinking/teleporting monsters should not be able to land on the player's 
position.

--------------------------------------------------------------------------------
98450ce0f3 | dshaligram | 2007-01-02 14:20:15 +0000

[1626167] Fixed bad default depths when traveling out of branches.

--------------------------------------------------------------------------------
64d1f87c96 | dshaligram | 2007-01-02 13:48:53 +0000

[1626162] Don't stop travel for submerged monsters.

--------------------------------------------------------------------------------
581632aadc | dshaligram | 2007-01-02 11:15:23 +0000

Allow Zin to feed you reliably. Fix TSO power message from divine anger to 
cleansing flame.

--------------------------------------------------------------------------------
b5dd638a70 | dshaligram | 2007-01-02 07:48:27 +0000

Removed version number from manual, because otherwise we have to put in scripts 
to keep it updated and I'm too lazy.

--------------------------------------------------------------------------------
782ac67e1f | dshaligram | 2007-01-02 06:12:39 +0000

Credit Eidolos for the idea.

--------------------------------------------------------------------------------
dfc37e9a84 | dshaligram | 2007-01-02 06:03:46 +0000

Fix monster-comes-into-view messages when the monster was already in view to 
start with.

--------------------------------------------------------------------------------
0f7006bc57 | dshaligram | 2007-01-02 05:35:36 +0000

stop_travel messages now also apply to shift-run and rest (under the default 
conditions this is irrelevant because al messages stop shift-run and rest).
Allow individual interrupts to be disabled for an activity using -=. For
instance, interrupt_rest -= message will disable the
stop-resting-for-any-silly-message behaviour (and also make stop_travel
relevant to resting).

--------------------------------------------------------------------------------
027d90af45 | dshaligram | 2007-01-01 09:33:18 +0000

[1625316] Made rods more common.

--------------------------------------------------------------------------------
716e8b5b52 | dshaligram | 2006-12-31 15:31:39 +0000

Toned down TSO's Cleansing Flame. It is still very strong, may need more tuning.

--------------------------------------------------------------------------------
613943162a | dshaligram | 2006-12-31 11:20:12 +0000

Updated changes in trunk.

--------------------------------------------------------------------------------
7e486c26cf | haranp | 2006-12-31 10:08:50 +0000

Put tables.txt into the help (hotkeyed to 's', for 'skills'.) Made help 
accessible from the race/class choosing screens by '+'.

--------------------------------------------------------------------------------
19f993c718 | dshaligram | 2006-12-31 07:28:37 +0000

Added show_turns option to control turn counter display. Also documented 
morgue_dir (thanks, David).

--------------------------------------------------------------------------------
58bb44d35f | dshaligram | 2006-12-31 06:30:03 +0000

Monster resistances and susceptibilities were being applied twice for beams, 
fixed. This bug seems to have been around for a long time.

--------------------------------------------------------------------------------
889776439f | dshaligram | 2006-12-31 06:28:00 +0000

Fix TSO getting annoyed when cleansing flame hits a Daeva.

--------------------------------------------------------------------------------
1493507e9d | haranp | 2006-12-30 20:14:14 +0000

Made spellcaster/ranger wanderer #ifdef work (it's still off.)

--------------------------------------------------------------------------------
65d2156029 | dshaligram | 2006-12-30 16:03:40 +0000

Handle zombies and other monster modifiers correctly in notes.
When advising the user that greedy explore won't work, make sure they see the
message.

--------------------------------------------------------------------------------
5558568161 | haranp | 2006-12-30 13:01:26 +0000

Gave Assassins a 50% shot at starting with curare, trading 7 to 1 with 
poison-tipped needles.

--------------------------------------------------------------------------------
1b3a40038c | haranp | 2006-12-30 12:43:29 +0000

Gave Spriggans slow metabolism:3 and a potion of porridge to start with (for 
playtest.)

--------------------------------------------------------------------------------
10210317e5 | haranp | 2006-12-30 12:36:46 +0000

Made Abyss banishment noteworthy (somewhat hackish, uses USER_NOTE.)

--------------------------------------------------------------------------------
b3f493e9cb | haranp | 2006-12-30 11:55:49 +0000

Fix for the refusal-to-follow bug: monsters refused to visit disarmed trap 
squares.

--------------------------------------------------------------------------------
b031865ee9 | haranp | 2006-12-30 11:05:35 +0000

Blocked shopping while berserk (Erik.)

--------------------------------------------------------------------------------
a2bb75591f | dshaligram | 2006-12-30 08:42:14 +0000

GOD_GIFT flag wasn't getting set for Daevas and Angels.

--------------------------------------------------------------------------------
9e60965993 | dshaligram | 2006-12-30 08:33:20 +0000

Boost Daevas and Angels (inspired by Yuuma Oohara): * Daevas are now tougher 
and hit harder, but move at normal speed. * Angels are weaker than Daevas but 
much faster.
We may also need to weaken cleansing flame. It seems very powerful, much more
useful than the Daeva.

--------------------------------------------------------------------------------
bc21b45fa2 | dshaligram | 2006-12-30 07:00:01 +0000

[1624529] Added display of turns used in main play screen. Zero-based, which 
may seem odd to some players, but I like it.

--------------------------------------------------------------------------------
9f10a66a73 | dshaligram | 2006-12-29 15:59:12 +0000

Cleaned up some linebreaks in keyboard help.

--------------------------------------------------------------------------------
97c6056869 | dshaligram | 2006-12-29 15:51:57 +0000

More level designs (David rocks!)

--------------------------------------------------------------------------------
975172baf9 | haranp | 2006-12-29 13:44:14 +0000

Made labyrinth colours consistent (Erik.)

--------------------------------------------------------------------------------
ceb5c7b060 | haranp | 2006-12-29 13:34:48 +0000

Refix autopickup so as not to kill greedy-explore.

--------------------------------------------------------------------------------
79a23ebf3d | dshaligram | 2006-12-29 13:25:11 +0000

[1622239] Poisoned arrows have a better chance of producing snakes from 
sticks-to-snakes.

--------------------------------------------------------------------------------
031aedb7a9 | haranp | 2006-12-29 13:22:12 +0000

Fix for bug 1622129, safe_autopickup check was happening before monster 
movement. Autopickup is no longer a delay but rather receives special handling 
(ouch, should be done better.) This necessitated removing a safety assert() in 
delay.cc. Also, you now get two messages when autopickup kicks in: You see 2 
scrolls of identify here. C - 3 scrolls of identify I consider this...a 
feature. Right.

--------------------------------------------------------------------------------
883d0ce492 | haranp | 2006-12-29 12:38:49 +0000

Hopefully, finally squashed the stacking bug.

--------------------------------------------------------------------------------
b69356ae05 | dshaligram | 2006-12-29 12:24:38 +0000

Make distortion weapons unmarked, restore old chances of generation (well, 
spears and staves now have a slightly lower chance of distort, but I will live 
with that).

--------------------------------------------------------------------------------
0cba8a69f3 | dshaligram | 2006-12-29 11:36:36 +0000

Fixed compile error.

--------------------------------------------------------------------------------
fc97f1d1fd | dshaligram | 2006-12-29 11:31:42 +0000

The Shining One's smiting should not suck quite as much as it does. Open to 
discussion. :-)

--------------------------------------------------------------------------------
c5f1e22909 | dshaligram | 2006-12-29 11:21:11 +0000

Make random distortion-branded weapons much rarer to correspond to their huge 
potential to Mess Up Life (yes, we can discuss this further if necessary :-)).

--------------------------------------------------------------------------------
5bafe6551f | dshaligram | 2006-12-29 10:52:38 +0000

[1622126] Fixed shift+direction keys canceling the targeting prompt. Hopefully 
this works on Windows and DOS, but I'm unsure.

--------------------------------------------------------------------------------
1acc5c3b39 | dshaligram | 2006-12-29 09:30:00 +0000

[1622133] Implemented incremental butchering as Haran suggested.

--------------------------------------------------------------------------------
07a0e09b11 | dshaligram | 2006-12-29 09:02:40 +0000

I think I prefer "HP restored" to "Health restored".

--------------------------------------------------------------------------------
01de76e22b | dshaligram | 2006-12-29 08:56:54 +0000

Say "Done searching" only if the character started with full health and magic. 
Say "Health restored" and "Magic restored" instead of HP/MP restored.

--------------------------------------------------------------------------------
a580a1c86b | dshaligram | 2006-12-29 08:41:32 +0000

[1622483] Full herbivorousness now kicks in only at level 3 of the mutation. 
Herbivores get less nutrition from chunks of meat.

--------------------------------------------------------------------------------
8ba5a61e22 | dshaligram | 2006-12-29 07:23:23 +0000

Added morgue_dir as an init.txt option.

--------------------------------------------------------------------------------
c714dc52a5 | dshaligram | 2006-12-29 06:09:08 +0000

[1623449] Fixed monsters trying to teleport when already in the process of 
teleporting.

--------------------------------------------------------------------------------
3fb9177a9f | dshaligram | 2006-12-28 20:02:47 +0000

Fix macro help (Shawn Moore).

--------------------------------------------------------------------------------
28af50ab61 | dshaligram | 2006-12-28 05:58:47 +0000

Applied Shawn Moore's patch to reorder death cause switch to match enum in 
hiscores.cc.

--------------------------------------------------------------------------------
13db9db0a5 | haranp | 2006-12-27 21:41:07 +0000

Swapped Ely and Lucy sacrifice messages.

--------------------------------------------------------------------------------
6434b20370 | haranp | 2006-12-27 21:31:32 +0000

Implemented 1622383, slightly better artifact messaging.

--------------------------------------------------------------------------------
801416661a | haranp | 2006-12-27 21:22:48 +0000

Fixed 1622128: venom launchers shouldn't poison in melee.

--------------------------------------------------------------------------------
de06a42401 | haranp | 2006-12-27 21:10:40 +0000

Removed SPMSL_POISONED_II, which was functionally identical to SPMSL_POISONED. 
This should fix the 'duplicate needles don't stack' bug. Sort of breaks 
savefiles: your poison ammo will now be buggy and might not poison.

--------------------------------------------------------------------------------
3fcb72171a | haranp | 2006-12-27 12:47:47 +0000

Fixed T&D bug: couldn't search at all with T&D zero.

--------------------------------------------------------------------------------
4090753ab2 | haranp | 2006-12-27 08:55:08 +0000

Better fix for 1622380: now it works for all menus.

--------------------------------------------------------------------------------
a223e69cdf | haranp | 2006-12-27 08:41:35 +0000

Implemented 1622380, Home and End keys in manual browsing.

--------------------------------------------------------------------------------
ea7120cb96 | haranp | 2006-12-27 08:33:07 +0000

Menu browsing should not have easy_exit set (Darshan.)

--------------------------------------------------------------------------------
3ed21f0fc5 | dshaligram | 2006-12-26 05:17:34 +0000

sartak is Shawn M Moore.

--------------------------------------------------------------------------------
b141fc0266 | haranp | 2006-12-25 13:45:00 +0000

Implemented 1617200: Changed armour skill training. Once the original EV 
penalty is gone (i.e., at an armour skill of 3 * EV penalty), passive training 
will train stealth instead of armour (as if the player were wearing light 
armour); also, getting hit in this situation can train both dodging and armour.

--------------------------------------------------------------------------------
ce96d334e7 | dshaligram | 2006-12-25 06:29:18 +0000

Fix broken DOS and Windows compiles.

--------------------------------------------------------------------------------
9f5555209e | dshaligram | 2006-12-25 05:51:12 +0000

Polymorph checks. Make coloured draconians rarer from poly, rule out special 
monsters like statues and the royal jelly.

--------------------------------------------------------------------------------
211a8e9872 | haranp | 2006-12-24 20:55:22 +0000

Made '%' screen colour the whole line if you have a resist/susceptibility, not 
just the '+ + .' or 'x x .' part (David.)

--------------------------------------------------------------------------------
81f5493fff | dshaligram | 2006-12-24 06:31:58 +0000

[1620888] Fixed greedy explore not doing terrain checks (oops!).

--------------------------------------------------------------------------------
c5b7afc6eb | haranp | 2006-12-23 22:06:28 +0000

Rewrote the semi-controlled blink algorithm. Fixed the bug reported by 
thiskidrob (where non-diagonal SCB was worthless.)

--------------------------------------------------------------------------------
1066dfb75a | haranp | 2006-12-23 18:30:26 +0000

Implemented David Ploog's "Lucy" abyssal god. An altar has a 20% chance of 
showing up in each Abyss area. Many things still need to be done: better 
naming, better descriptive text, differentiation from Makhleb in preferences, 
etc. Playtesting and debugging required. Breaks savefiles.

--------------------------------------------------------------------------------
b94742c45d | nlanza | 2006-12-23 16:38:05 +0000

Update the Xcode project for branch.{cc,h}.

--------------------------------------------------------------------------------
96e0557a40 | haranp | 2006-12-23 14:01:02 +0000

Ghoul and kobold eating preferences now implemented as mutations. High-elves 
now know that they have glamour. Mummies no longer think they can infuse at 
level 12. Giant races are informed that they have armour limitations.

--------------------------------------------------------------------------------
d2adf58f0e | haranp | 2006-12-22 16:13:06 +0000

's'earching will now check in a radius up to 5 around you, with decreasing 
skill (effective skill = skill/(2*dist-1).) Walking around will also search, 
with probability (skill in 30) (but only adjacent squares.)

--------------------------------------------------------------------------------
5ebdb32ce6 | haranp | 2006-12-22 15:22:00 +0000

Made Spriggans herbivorous and slow-metabolism. For playtesting of 1620744.

--------------------------------------------------------------------------------
68f29941d4 | haranp | 2006-12-22 15:19:51 +0000

Oops. Can now pick up gold without crashing.

--------------------------------------------------------------------------------
b794d55527 | haranp | 2006-12-22 13:42:49 +0000

Added option 'autopickup_no_burden' which, if set, will prevent autopickup from 
picking up items beyond the burden limit. (Partial pickup will take place if 
you can take some of the items for a stack, e.g., 3 of the 5 potions of 
healing.) Defaults to false.

--------------------------------------------------------------------------------
dfebce7241 | haranp | 2006-12-22 11:22:49 +0000

Some more work towards integrating race abilities and mutations: - Draconian 
resistances are now mutations. As a side effect, this means that red draconians 
can't become resistant to cold, for example. I think this is a feature. - Troll 
metabolism and regeneration is now (partially) a mutation. So now trolls can't 
get the slow metabolism mutation. It might be better to go with a size system 
here. - Nagas and centaurs now have deformation as an initial mutation.

--------------------------------------------------------------------------------
a0e9510354 | haranp | 2006-12-21 15:07:14 +0000

Fixed 1620050 - channeling is a Sifite ability, not a Vehumet one.

--------------------------------------------------------------------------------
fff31b1f28 | dshaligram | 2006-12-21 15:04:47 +0000

Cursor was missing from controlled-teleport map. Damnation! 0.1.7?

--------------------------------------------------------------------------------
c1d22b9134 | dshaligram | 2006-12-21 09:29:57 +0000

[1619461] AotG now needs ~800 turns to charge fully, and the 
contaminated->clean effect is proportional to charge.

--------------------------------------------------------------------------------
560ded1737 | dshaligram | 2006-12-21 09:10:33 +0000

Keyboard help update (David).

--------------------------------------------------------------------------------
1142bbbd33 | dshaligram | 2006-12-21 09:00:39 +0000

Updated david_entry_002 (David).

--------------------------------------------------------------------------------
2fa3846021 | haranp | 2006-12-21 04:25:09 +0000

Fixed buggy runes introduced by branch refactoring. Breaks savefiles.

--------------------------------------------------------------------------------
ebe5e29212 | haranp | 2006-12-20 20:08:15 +0000

Refactored out branches into branch.h and branch.cc. NOTE: This commit is 
*buggy*; the final Hell vaults contain buggy runes now. Will fix later; this is 
a benchmark, since hopefully everything else works.

--------------------------------------------------------------------------------
1aabb3c127 | haranp | 2006-12-20 13:43:07 +0000

Made the manual browser respect DATA_DIR_PATH.

--------------------------------------------------------------------------------
11d826ff28 | haranp | 2006-12-20 12:38:56 +0000

Made manual browser look in './docs' as well as '../docs' (Darshan).

--------------------------------------------------------------------------------
378d4e8599 | dshaligram | 2006-12-19 13:54:55 +0000

Fixed changelog - hat of the Alchemist change is in 0.2, not 0.1.x.

--------------------------------------------------------------------------------
4e9f349319 | dshaligram | 2006-12-19 13:40:40 +0000

Updated changes for 0.1.6.

--------------------------------------------------------------------------------
3156c2e3bc | dshaligram | 2006-12-19 13:17:13 +0000

Handle SIGHUP. Could use improvement, but it's a start.

--------------------------------------------------------------------------------
bb1a887fb8 | dshaligram | 2006-12-19 10:43:34 +0000

Fix compile failing on DOS. I hate DOS. Hate hate hate.

--------------------------------------------------------------------------------
cc1cd5932c | dshaligram | 2006-12-18 20:07:05 +0000

Fix "fearsomely accuracy".

--------------------------------------------------------------------------------
b92452bc12 | haranp | 2006-12-18 12:21:49 +0000

Changed shop affordability colouring to only affect the first column (David.)

--------------------------------------------------------------------------------
e86a4a38fd | dshaligram | 2006-12-18 10:50:06 +0000

Two more entry vaults (David).

--------------------------------------------------------------------------------
535a994b2a | dshaligram | 2006-12-18 07:13:31 +0000

Set native eol on CREDITS and INSTALL, updated CREDITS. Fixed Nemelex altar 
macro in crawl_macros.txt - reported on SF. Added a little hack for Crawl 
running in dgamelaunch so ttyplay isn't lost. Reduce the --more-- overdose on 
end-of-game.

--------------------------------------------------------------------------------
ffce63e01d | dshaligram | 2006-12-17 16:39:29 +0000

Tweaked hiscores code to handle logfiles in addition to scorefiles.

--------------------------------------------------------------------------------
6c2cab1579 | dshaligram | 2006-12-17 13:49:57 +0000

Disable cursor during beam animations and shopping. Describe "Piercer" as a 
large metal longbow.

--------------------------------------------------------------------------------
c80b86e7f3 | dshaligram | 2006-12-17 13:37:54 +0000

Squash the cursor in a couple of other places.

--------------------------------------------------------------------------------
9062c8f3c3 | dshaligram | 2006-12-17 13:28:00 +0000

Fixed broken Windows compile.

--------------------------------------------------------------------------------
a8855a831f | dshaligram | 2006-12-17 13:11:17 +0000

An attempt at a more comprehensive fix for cursor inconsistencies between 
platforms. We'll probably need to tweak this further.

--------------------------------------------------------------------------------
39379c4850 | dshaligram | 2006-12-17 11:21:23 +0000

Annotate identified artifacts with {artifact} instead of {art} for stash 
searches (David).

--------------------------------------------------------------------------------
b2a49f8240 | haranp | 2006-12-17 11:21:16 +0000

Noted that Okawaru does not like hurting allies in the god description.

--------------------------------------------------------------------------------
5e102052ab | haranp | 2006-12-17 11:15:54 +0000

Changed some of the randarts, see 1615251 for details.

--------------------------------------------------------------------------------
a9632123fd | dshaligram | 2006-12-17 11:14:38 +0000

[1616535] Fixed broken inscription hotkeying with auto_list. Fixed interlevel 
travel prompt ugliness.

--------------------------------------------------------------------------------
9e58b2cf97 | haranp | 2006-12-17 10:30:11 +0000

Added starting notes.

--------------------------------------------------------------------------------
1647689be3 | haranp | 2006-12-17 10:20:55 +0000

Blork shouldn't ever receive elven robes.

--------------------------------------------------------------------------------
2646935abb | haranp | 2006-12-17 10:14:43 +0000

Require confirmation before purchasing in a shop.

--------------------------------------------------------------------------------
9dd7a1b625 | haranp | 2006-12-17 09:48:33 +0000

Let scorefile be '-' for reading from standard input, following Shawn Moore's 
request in 1617269.

--------------------------------------------------------------------------------
c960be7605 | haranp | 2006-12-17 09:36:49 +0000

Fixed off-by-one error in shop display which was causing the first line to be 
scrolled off. Also made the key help in shops always at the bottom of the 
screen.

--------------------------------------------------------------------------------
54ae1fa10e | haranp | 2006-12-17 09:27:16 +0000

Fixed 1616868: fear was useless because every alert was resetting seek 
behaviour on monsters.

--------------------------------------------------------------------------------
f3e9d4302b | haranp | 2006-12-17 09:15:53 +0000

Fixed 1616008, identify was not removing 'empty' inscription.

--------------------------------------------------------------------------------
1e056f2e74 | haranp | 2006-12-17 08:40:30 +0000

Made the Hat of the Alchemist a wizard hat. Can you tell that I got it on 
yiff.mit.edu and couldn't put it on because of horns? I think this is a 
reasonable change, anyway.

--------------------------------------------------------------------------------
7f9eda4ae8 | dshaligram | 2006-12-15 11:42:09 +0000

Updated documentation (David).

--------------------------------------------------------------------------------
32e7c23dbe | dshaligram | 2006-12-15 11:27:30 +0000

Fixed bad comparison.

--------------------------------------------------------------------------------
dd6871b0fb | dshaligram | 2006-12-15 11:26:00 +0000

Added -morgue option to specify where morgues are saved. Added -macro option to 
specify location of macro file. Morgue files are named 
morgue-<cname>-<time>.txt, provided Crawl is compiled without SHORT_FILE_NAMES.

--------------------------------------------------------------------------------
80ff6b2612 | dshaligram | 2006-12-15 09:36:21 +0000

Added David's new entry vaults.

--------------------------------------------------------------------------------
c861faa11a | dshaligram | 2006-12-15 07:57:24 +0000

Options should be prefixed with -, not /.

--------------------------------------------------------------------------------
0bddeca611 | haranp | 2006-12-14 17:51:43 +0000

Implemented 1614831 - artifacts are noted as such in the examination view.

--------------------------------------------------------------------------------
e8431cb801 | dshaligram | 2006-12-14 07:26:30 +0000

New options documentation and init.txt (David).

--------------------------------------------------------------------------------
2069f42884 | dshaligram | 2006-12-14 07:18:38 +0000

Keyboard help corrections (David).

--------------------------------------------------------------------------------
4b7d62bb60 | dshaligram | 2006-12-14 07:01:29 +0000

Removed SHORT_FILE_NAMES for Windows builds. Fixed poisoned needles not 
stacking correctly. Allow character names to end with digits on multiuser 
systems.

--------------------------------------------------------------------------------
7f78db9414 | haranp | 2006-12-13 21:51:33 +0000

Put in a very basic help browser on '+'. This is *not* a good key, I'm just 
parking it here until more decisions on the browser come in. (It should 
probably be reachable by pressing '?' from the current '?' help screen.) It 
reads the manual from ../docs/crawl_manual.txt, so you'd better put it there! 
Yes, this is a hack and will have to be done better. You can press the letter 
of the section (e.g., 'j' or 'J') to jump to that section.

--------------------------------------------------------------------------------
d34acfbefb | dshaligram | 2006-12-13 09:51:18 +0000

Fixed misapplication of hi: brand colours.

--------------------------------------------------------------------------------
35c9206be7 | dshaligram | 2006-12-13 09:44:19 +0000

Stash-tracker now also keeps track of inscriptions and item origins (finally).

--------------------------------------------------------------------------------
a7ec8acdf6 | haranp | 2006-12-12 23:12:24 +0000

Fixed 1613132: trolls were getting weapon skills unjustly.

--------------------------------------------------------------------------------
e126b1bf2c | dshaligram | 2006-12-12 21:02:28 +0000

Check whether interlevel travel is possible before attempting to pass the buck 
in ordinary travel.

--------------------------------------------------------------------------------
4c5606bdd1 | dshaligram | 2006-12-12 20:58:53 +0000

Fixed stash-tracker bugs introduced by the Pan change.

--------------------------------------------------------------------------------
4c1860113f | dshaligram | 2006-12-12 19:53:45 +0000

Tweaked stash-tracker so that greedy explore works in Pandemonium.

--------------------------------------------------------------------------------
170c1de4d2 | dshaligram | 2006-12-12 14:32:40 +0000

Try to merge items before reporting explore stop messages.

--------------------------------------------------------------------------------
5e94dac9e3 | dshaligram | 2006-12-12 13:49:05 +0000

Better explore-stop messages.

--------------------------------------------------------------------------------
e5241a144e | dshaligram | 2006-12-12 10:39:05 +0000

Added -scorefile option to pass in a highscore file on the command-line for use 
with -[tv]scores.
hiscores.cc silently ignores uids that don't exist on the current machine,
instead of segfaulting.

--------------------------------------------------------------------------------
336db3e336 | dshaligram | 2006-12-12 09:50:26 +0000

Tweaked startup initialisation so that Crawl can load maps before curses 
initialisation, but after item initialisation.

--------------------------------------------------------------------------------
605ad1a626 | haranp | 2006-12-11 17:36:10 +0000

More streamlining, this time of code which shows power and spell failure.

--------------------------------------------------------------------------------
914104c2b2 | haranp | 2006-12-11 17:18:05 +0000

More god streamlining, specifically set_god_ability_slots().

--------------------------------------------------------------------------------
31acc4b70c | dshaligram | 2006-12-11 13:13:02 +0000

Default terse_hand back to true after discussion with David.

--------------------------------------------------------------------------------
613e760626 | dshaligram | 2006-12-11 12:43:37 +0000

Mark weapons animated by Tukima's Dance as thrown for pickup_thrown purposes.

--------------------------------------------------------------------------------
90bc3a3d87 | dshaligram | 2006-12-11 10:58:16 +0000

sartak == Shawn Moore

--------------------------------------------------------------------------------
77cae0d5ba | dshaligram | 2006-12-11 06:52:07 +0000

Add draconians to the Abyss, but make them very rare.

--------------------------------------------------------------------------------
20594634a4 | nlanza | 2006-12-11 00:20:22 +0000

Compiler warning nitpicking; 'int' -> 'unsigned int'

--------------------------------------------------------------------------------
2b7d6cadec | haranp | 2006-12-10 20:28:21 +0000

Streamlined god-given abilities.

--------------------------------------------------------------------------------
1a21d2008a | dshaligram | 2006-12-10 11:05:50 +0000

Tweaked beam to-hit calculation.

--------------------------------------------------------------------------------
16c8c1117f | dshaligram | 2006-12-10 08:32:25 +0000

Allow spaces, dashes and periods in character names.

--------------------------------------------------------------------------------
4ac70419ee | dshaligram | 2006-12-10 05:57:31 +0000

Set item pointer on SelItem wherever possible.

--------------------------------------------------------------------------------
8ad6699a59 | haranp | 2006-12-09 22:20:53 +0000

Implementation of 1609111: resting gives a message when it stops explaining 
why. Theoretically, the message should be in MULTITURN_ACTION, but since some 
people (ahem) dislike that channel, I've put it in PLAIN.

--------------------------------------------------------------------------------
e62439d822 | haranp | 2006-12-09 21:57:56 +0000

Removed unnecessary colour initializations.

--------------------------------------------------------------------------------
083a10c540 | haranp | 2006-12-09 21:49:31 +0000

Made traps respect item colours.

--------------------------------------------------------------------------------
7dc7b1ec82 | haranp | 2006-12-09 19:10:25 +0000

Fixed 1612023: !d was not respected. Now dropping items with !d will ask for 
confirmation for each item and abort multidrop if it receives a negative answer 
to anything.

--------------------------------------------------------------------------------
1a2b6ba98b | dshaligram | 2006-12-09 12:27:58 +0000

Allow alternating items with "nothing" to control generation chance. Example: 
ITEM: heal wounds / nothing
Generation weight can be set with the weight: tag, which defaults to 10, so:
ITEM: weight:1 heal wounds / nothing
generates a potion of heal wounds 1 in 11 times it is used.

--------------------------------------------------------------------------------
fd80ba19d0 | dshaligram | 2006-12-08 16:22:56 +0000

Be more persistent about connecting a vault to the rest of the level.

--------------------------------------------------------------------------------
6ff4c68be1 | dshaligram | 2006-12-08 16:11:10 +0000

Added Lemuel's entry vaults. Fixed more vault generation infelicities.

--------------------------------------------------------------------------------
b9d641f9af | dshaligram | 2006-12-08 14:20:16 +0000

Fixed class name for staves.

--------------------------------------------------------------------------------
51327cc685 | dshaligram | 2006-12-08 13:11:12 +0000

Better handling for entry minivaults and minivaults that specify PLACE: Force 
the parser to flag an error when it finds embedded spaces in a map.

--------------------------------------------------------------------------------
6c99170d89 | dshaligram | 2006-12-08 12:28:30 +0000

Fixed bug where Pandemonium demonlords did not get their rightful runes 
(Cerebov and company) - bug was introduced circa 0.1.3.
[1610237] Vaults can request specific items using ITEM: declarations and the
item selectors defghijk.

--------------------------------------------------------------------------------
93de8db427 | dshaligram | 2006-12-08 11:27:27 +0000

Fix Windows compile issues.

--------------------------------------------------------------------------------
7010b9e951 | haranp | 2006-12-07 20:05:38 +0000

Startup armour and weapons are now properly coloured.

--------------------------------------------------------------------------------
089ccccbca | haranp | 2006-12-07 19:56:07 +0000

Fixed 1609103. A better fix should be implemented sometime.

--------------------------------------------------------------------------------
2a2d65101a | haranp | 2006-12-07 19:47:18 +0000

"saves" should be "saves/".

--------------------------------------------------------------------------------
615ffa7ac3 | dshaligram | 2006-12-07 12:06:28 +0000

[1610689] Fixed string unmarshall being off by one.

--------------------------------------------------------------------------------
47c8823d6d | dshaligram | 2006-12-07 10:48:36 +0000

Default save_dir to "saves" if SAVE_DIR_PATH is not defined and we're not on 
DOS.

--------------------------------------------------------------------------------
8fdecdaded | dshaligram | 2006-12-07 10:24:41 +0000

[1610674] Capitalise Abilities in mutations screen.

--------------------------------------------------------------------------------
d9a2018726 | dshaligram | 2006-12-07 10:19:25 +0000

[1610676] Fixed confirmation inscriptions not working with auto_list.

--------------------------------------------------------------------------------
1c4332cbef | dshaligram | 2006-12-07 09:55:54 +0000

Updated .des documentation. We should probably move this to the docs directory.
[1610591] Friendlies on dangerous terrain cannot be displaced. Prompting for
confirmation would be more consistent, but also more irritating.

--------------------------------------------------------------------------------
faca2fd92e | dshaligram | 2006-12-07 08:31:45 +0000

Added support for "no_monster_gen" tag.

--------------------------------------------------------------------------------
b58fbcfafc | dshaligram | 2006-12-07 07:51:48 +0000

*Breaks save compatibility* - changed monster flags to long, added "god" field 
for future fun. dungeon.cc cleanup and rework to support floating vaults. 
Updated levcomp to support the float orientation. coord_def now has a 
constructor. USE_RIVERS and USE_NEW_UNRANDS are no longer conditional.

--------------------------------------------------------------------------------
cf61c793d3 | haranp | 2006-12-06 15:21:31 +0000

Changed colours of items a bit after some offlist discussion with Erik. Pipe up 
if you think things are ugly.

--------------------------------------------------------------------------------
ba842dcea6 | dshaligram | 2006-12-06 12:50:27 +0000

s/A/The/.

--------------------------------------------------------------------------------
81bf3bb8e0 | dshaligram | 2006-12-06 12:44:53 +0000

'C' creates monsters on a targeted square in wizmode. 'D' kill-resets targeted 
monsters.

--------------------------------------------------------------------------------
0de70514a2 | dshaligram | 2006-12-06 12:11:02 +0000

The Ruby script I use to build release binaries for DOS and Windows.

--------------------------------------------------------------------------------
be0515b769 | dshaligram | 2006-12-06 11:25:56 +0000

Fixed X (XX)) in stat display (Erik).

--------------------------------------------------------------------------------
e33fcc6577 | dshaligram | 2006-12-06 11:14:29 +0000

Issue see-monster interrupts only if the monster is guaranteed not to leave LOS 
before the player's next action. At least, if my theories are right.

--------------------------------------------------------------------------------
683dfbcfaf | dshaligram | 2006-12-06 10:07:50 +0000

Greedy explore forces autopickup if there's an item on the starting square 
instead of going into an tight loop.

--------------------------------------------------------------------------------
b0890fe88c | dshaligram | 2006-12-06 07:01:59 +0000

Updated crawl_options.txt, change eol to native so that Windows notepad users 
can read it.

--------------------------------------------------------------------------------
a4d1f1e4df | dshaligram | 2006-12-05 11:57:16 +0000

Add David's new Temple levels and minivault.

--------------------------------------------------------------------------------
f2fa5bda85 | haranp | 2006-12-05 11:41:45 +0000

More abilities to permamutations.

--------------------------------------------------------------------------------
f79914cdda | dshaligram | 2006-12-05 11:38:28 +0000

Miscellaneous items are }, not {. travel_delay now defaults to 20ms. drop_mode 
defaults to multi. Fixed Enter not activating travel from stash menu.

--------------------------------------------------------------------------------
b6a0681ec1 | dshaligram | 2006-12-05 11:18:23 +0000

Document explore_greedy option.

--------------------------------------------------------------------------------
5d3a588b18 | dshaligram | 2006-12-05 10:52:37 +0000

Fixed * not working in level-map (David).

--------------------------------------------------------------------------------
ea1539f36c | haranp | 2006-12-05 10:52:18 +0000

Changed minotaur horns so that they're a standard mutation by abusing 
demon_pow[]. This also means that the horns can now grow (but not shrink.)

--------------------------------------------------------------------------------
fe78ce443f | dshaligram | 2006-12-05 10:46:50 +0000

Speeded up greedy explore by moving can_explore out of the floodloop. Still 
isn't exactly a speed demon.

--------------------------------------------------------------------------------
38cb4b1f9f | dshaligram | 2006-12-04 23:54:14 +0000

[1603670] Altars and portals can now be found by the stash search.

--------------------------------------------------------------------------------
f6ee7314cc | dshaligram | 2006-12-04 21:49:23 +0000

[1604370] Eliminated unpoisoned needles and blowguns of venom.

--------------------------------------------------------------------------------
b69f4b3d80 | dshaligram | 2006-12-04 21:24:33 +0000

[1608520] No more special treatment for rods of striking.

--------------------------------------------------------------------------------
5a4349f58c | dshaligram | 2006-12-04 20:58:35 +0000

Updated changelog in trunk.

--------------------------------------------------------------------------------
42cc1baf1d | haranp | 2006-12-04 17:27:59 +0000

Quick fix for bad item names on floor. We really should redo this properly 
sometime.

--------------------------------------------------------------------------------
8b94722a96 | dshaligram | 2006-12-04 13:22:42 +0000

Fix worn equipment drop bug for trunk.

--------------------------------------------------------------------------------
55d2a46739 | dshaligram | 2006-12-04 10:06:01 +0000

Fixed Erik's labyrinth trails.

--------------------------------------------------------------------------------
2c769fc53c | dshaligram | 2006-12-04 08:50:59 +0000

Applied sartak's logfile patch.

--------------------------------------------------------------------------------
e878ffbb89 | haranp | 2006-12-04 08:29:48 +0000

Fixed divide-by-zero when the player had zero max MP. Oops.

--------------------------------------------------------------------------------
18ff7bbcf7 | dshaligram | 2006-12-04 07:39:51 +0000

Stash-tracking is no longer conditional, remove <?s> tags from command.cc.
Changed darkgrey to green in command.cc - darkgrey is handled poorly by the Mac
OS Terminal.app.

--------------------------------------------------------------------------------
fe4d39c764 | dshaligram | 2006-12-04 07:31:50 +0000

Added message when there's nowhere else to explore on the current level (Haran).

--------------------------------------------------------------------------------
8fe0fae874 | dshaligram | 2006-12-04 07:10:27 +0000

Minor greedy-explore tweaks: * It now stops when reaching a pile of stuff so 
that the player can examine the   stuff even if autopickup does not kick in. * 
Fixed the bug where it would remember its old explore target even if the player 
  subsequently moved halfway across the level from it.

--------------------------------------------------------------------------------
61aa415257 | haranp | 2006-12-03 22:30:53 +0000

Miscellaneous minor fixes and cleanups (such as using player_can_smell() more 
and mprf() rather than strcats.)

--------------------------------------------------------------------------------
bcfca21ad6 | haranp | 2006-12-03 18:46:23 +0000

Fix labyrinths being seen in overview even after they're visited.

--------------------------------------------------------------------------------
cb9d4a1c33 | haranp | 2006-12-03 15:51:49 +0000

Multiple labyrinth entrances are separately noteworthy.

--------------------------------------------------------------------------------
09fa4ab8c0 | haranp | 2006-12-03 14:10:59 +0000

Implemented 1604345: colour-code weapons and ammo based on their skill.

--------------------------------------------------------------------------------
f5b7f9f83b | haranp | 2006-12-03 08:49:53 +0000

Added hp_colour and mp_colour per 1606160. Removed hp_attention. hp_warning is 
still there for the * * * LOW HITPOINT WARNING * * * message.

--------------------------------------------------------------------------------
00033a21e5 | haranp | 2006-12-02 21:16:56 +0000

Added dump_order=overview and put it in by default.

--------------------------------------------------------------------------------
fa3b58bbc8 | dshaligram | 2006-12-02 12:07:59 +0000

Greedy-explore tweaks: speedup by not double-floodfilling, and handle inability 
to pick stuff up gracefully.

--------------------------------------------------------------------------------
42d11f4538 | dshaligram | 2006-12-01 15:54:10 +0000

Fixed broken Windows compile.

--------------------------------------------------------------------------------
300c288860 | dshaligram | 2006-12-01 15:23:51 +0000

Minor tweaks to greedy-explore: * Don't make overly fine GREEDY_PICKUP 
distinction. * GREEDY_PICKUP always interrupts explore.

--------------------------------------------------------------------------------
5c65cedddf | dshaligram | 2006-12-01 15:20:32 +0000

[1597293] Preliminary greedy-explore, parked on Ctrl-I. We can (re)move it if 
necessary. Stash-tracking is no longer #ifdef conditionalised. I'm not aware of 
anybody who compiles without it.

--------------------------------------------------------------------------------
7cc367c09e | dshaligram | 2006-11-30 21:51:43 +0000

Dump needs blank line after spells list.

--------------------------------------------------------------------------------
b42636b1df | dshaligram | 2006-11-30 17:45:27 +0000

Added an alternate Temple level.

--------------------------------------------------------------------------------
a320981303 | haranp | 2006-11-30 16:48:54 +0000

Added some colour to the resists screen. Added piety levels and penance to the 
resists screen. (Penance is signified by a * before the god name, piety levels 
by *s after the god name.)

--------------------------------------------------------------------------------
f293b54938 | haranp | 2006-11-30 15:17:59 +0000

Made keyhelp use formatted_scroller instead of Menu.

--------------------------------------------------------------------------------
abed7b1bd1 | haranp | 2006-11-30 14:56:53 +0000

Implemented 1591922: monsters coming into view while traveling trigger a 
message explaining why travel stopped (on MSGCH_WARN.) Only the base 
description of the monster is printed, no equipment or such.

--------------------------------------------------------------------------------
8ed3bfab0f | dshaligram | 2006-11-30 11:59:49 +0000

Tweaked damage numbers on bows and longbows so they're better differentiated.

--------------------------------------------------------------------------------
918cab578a | dshaligram | 2006-11-30 10:38:01 +0000

[1605400] Fixed inability to wield stuff when carrying no weapons.

--------------------------------------------------------------------------------
a55c0a4160 | haranp | 2006-11-30 09:48:24 +0000

Noted and hooked god mollification.

--------------------------------------------------------------------------------
99f499f8f8 | dshaligram | 2006-11-30 08:34:37 +0000

Added travel and inscriptions patch credits to CREDITS.

--------------------------------------------------------------------------------
61b0a568e4 | haranp | 2006-11-29 18:12:52 +0000

Redid how the resists screen works (both in-game and in-dump.) Minor notes 
refactoring. Added a basic notes browser on '_'.

--------------------------------------------------------------------------------
828402203b | dshaligram | 2006-11-29 13:21:50 +0000

Remove mention of DATA_DIR_PATH from AppHdr.h. The recommended way of forcing a 
data directory path is to set DATADIR in makefile.unix.

--------------------------------------------------------------------------------
b19ebc792e | dshaligram | 2006-11-29 12:43:17 +0000

[1602285] Fixed newgame slider bugs.

--------------------------------------------------------------------------------
b73661584c | dshaligram | 2006-11-28 19:48:40 +0000

Updated INSTALL with information from Elethiomel's compile troubles.

--------------------------------------------------------------------------------
83895c266d | dshaligram | 2006-11-28 12:40:42 +0000

Fixed feature and cset options being ignored.

--------------------------------------------------------------------------------
ddfcc3ff3b | dshaligram | 2006-11-28 11:03:12 +0000

Updated crawl_options.txt and init.txt (David). Default safe_autopickup to true 
and level_map_cursor_step to 7.

--------------------------------------------------------------------------------
63ac65ab46 | haranp | 2006-11-28 10:32:48 +0000

Gave boots, gloves and helmets specific colours instead of cyan (magenta, red 
and green, specifically.) I'm no designer - speak up if you want these colours 
changed.

--------------------------------------------------------------------------------
cca0fc06c3 | dshaligram | 2006-11-28 10:09:53 +0000

Default lowercase_invocations to true.

--------------------------------------------------------------------------------
62093e3d1e | dshaligram | 2006-11-28 07:05:26 +0000

Updated changelog for 0.1.4.

--------------------------------------------------------------------------------
05c0b4921e | haranp | 2006-11-28 06:45:56 +0000

1601622: dissecting a yak/sheep can produce an animal skin.

--------------------------------------------------------------------------------
1dba47b22e | haranp | 2006-11-28 06:05:01 +0000

Changed '[empty]' autoinscription to 'empty'. Made 'empty' and 'tried' play 
nice with each other.

--------------------------------------------------------------------------------
0e246112e1 | haranp | 2006-11-27 15:57:07 +0000

Made amulet of clarity nullify the maprot mutation, per 1601346.

--------------------------------------------------------------------------------
055d6d1d11 | dshaligram | 2006-11-27 15:45:45 +0000

[1603062] Fixed save_dir not working when LOAD_PACKAGE_CMD is defined (sartak).

--------------------------------------------------------------------------------
3db8e3590a | dshaligram | 2006-11-27 14:44:38 +0000

Removed unnecessary breaks that gcc dislikes.

--------------------------------------------------------------------------------
8436680801 | dshaligram | 2006-11-27 14:27:12 +0000

Fixed char_set option being ignored.

--------------------------------------------------------------------------------
4a4fa4efc5 | haranp | 2006-11-27 14:14:10 +0000

Robes can't be lightcyan anymore - for 1603350.

--------------------------------------------------------------------------------
010e881aa9 | haranp | 2006-11-27 14:01:56 +0000

Implemented 1602271, examining an item shows light/heavy status.

--------------------------------------------------------------------------------
7126d90fe0 | dshaligram | 2006-11-27 13:23:20 +0000

Fixed hiscores buffer segfault madness.

--------------------------------------------------------------------------------
b7a9327764 | dshaligram | 2006-11-27 11:28:55 +0000

Add sartak and Mike Drinen to CREDITS (David). This is only in trunk, will not 
make the 0.1.4 release.

--------------------------------------------------------------------------------
784109076e | haranp | 2006-11-27 07:30:18 +0000

Fixed hiding of draw_item() in derived classes of Menu.

--------------------------------------------------------------------------------
d131ce057a | haranp | 2006-11-26 14:54:48 +0000

New overview screen (the 'O' screen.) This involves changes in quite a few 
things, so the major savefile version is now 1, and old savefiles *will not 
load*! Lots of conditional loading code has therefore been removed. Minor 
savefile version dropped to 0 in everything.

--------------------------------------------------------------------------------
f278a501a1 | dshaligram | 2006-11-26 13:20:24 +0000

Updated keyboard help (David)

--------------------------------------------------------------------------------
2ef3e8a632 | haranp | 2006-11-24 14:21:21 +0000

Cap Sif Muna piety to prevent wraparound.

--------------------------------------------------------------------------------
1fb4f68676 | dshaligram | 2006-11-24 13:08:51 +0000

Sort save-game-list by descending order of experience.

--------------------------------------------------------------------------------
0c78856a53 | dshaligram | 2006-11-24 13:00:21 +0000

Default increasing_skill_progress to true.

--------------------------------------------------------------------------------
4003aea18b | dshaligram | 2006-11-24 11:39:35 +0000

Fixed broken target wrap in level-map (grr).

--------------------------------------------------------------------------------
0e45d43300 | dshaligram | 2006-11-24 11:32:39 +0000

[1601205] */' now work to jump to stashes in the level-map. ; retains its old 
behaviour of travel-to-cursor, which may disconcert folks used to its behaviour 
when targeting, but I suspect they'll get used to it.

--------------------------------------------------------------------------------
59dd9db8ac | dshaligram | 2006-11-24 10:31:14 +0000

[1581184] Fixed rotting food being visible outside LOS.

--------------------------------------------------------------------------------
6fdba2e9e0 | dshaligram | 2006-11-24 08:48:05 +0000

[1601595] Lava smokes, swamp shallow water tends to mist.
Cold spells fired over water trail freezing cloud.

Smoke/steam spreads out a bit as it dissipates. I can't seem to make this look
as pretty as I imagined it. :-(

MAX_CLOUDS is still on 100. We may want to increase this.

Monster pale draconians are pegged back to speed 10 (was 12).

--------------------------------------------------------------------------------
179a048026 | haranp | 2006-11-23 17:44:30 +0000

Fixed 1594106: innate abilities were not being dumped. Note that this will 
cause a bug if you have more than 23 mutations simultaneously; fixing that will 
require patching formatted_string.

--------------------------------------------------------------------------------
aef49cb2fb | haranp | 2006-11-23 16:10:21 +0000

Implemented 1601227, pickup_mode.

--------------------------------------------------------------------------------
0972c8f8f6 | dshaligram | 2006-11-23 15:27:40 +0000

[1601588] Allow hellfire and bolts of magma to melt wax as well.

--------------------------------------------------------------------------------
48eec89765 | dshaligram | 2006-11-23 12:52:53 +0000

[1600272] Updated AotG description.

--------------------------------------------------------------------------------
3ae1ce7f4d | dshaligram | 2006-11-23 12:42:32 +0000

[1601588] Bolts of fire melt wax. Note that fireballs are considered 
insufficiently hot for our purposes, as are the lesser fire spells. We may want 
to consider hellfire at some point.

--------------------------------------------------------------------------------
cd68f3adfe | dshaligram | 2006-11-23 10:53:22 +0000

[1601349] Fixed LOS not affecting square the player stands on.

--------------------------------------------------------------------------------
f2ae520a70 | dshaligram | 2006-11-23 10:33:20 +0000

[1599883] Interlevel travel now makes a best effort to avoid excludes. 
Perfection cannot be reached, since the travel cache may be wrong about where a 
staircase leads.

--------------------------------------------------------------------------------
138f9e2f0f | dshaligram | 2006-11-23 09:41:45 +0000

Force mapping of player's square always.

--------------------------------------------------------------------------------
1c7e5f5b79 | dshaligram | 2006-11-23 07:45:42 +0000

Added Rubinstein and Lemuel to CREDITS. Added tty colours to levdes syntax 
highlight script. Set shallowest depth for farm_and_country to 16. distclean 
now depends on clean for Windows makefile.mgw.

--------------------------------------------------------------------------------
5f1be66956 | haranp | 2006-11-22 18:17:58 +0000

Implemented 1601230: sort_menus can now be of the form auto:5 (the default), in 
which case categories with >= 5 items will be sorted.

--------------------------------------------------------------------------------
83d3cb73a8 | haranp | 2006-11-22 17:54:09 +0000

Implemented 1601277: 'f' is an alias for 't' during targetting. Temporary until 
we get keymaps sorted out, I guess.

--------------------------------------------------------------------------------
8a88128302 | nlanza | 2006-11-22 17:50:22 +0000

Stone Soup isn't an experimental branch anymore; update the README.

--------------------------------------------------------------------------------
32f29d090a | dshaligram | 2006-11-22 16:12:46 +0000

[1601161] Adjusted statue stats.

--------------------------------------------------------------------------------
b0d7452e9c | dshaligram | 2006-11-22 16:03:44 +0000

Clarify intent of ench_power change.

--------------------------------------------------------------------------------
50b3b3bf0e | dshaligram | 2006-11-22 15:55:48 +0000

Refix ench_power.

--------------------------------------------------------------------------------
3567af433b | dshaligram | 2006-11-22 14:03:00 +0000

[1597623] Added draconian descriptions. I've editorialised freely. Draconian 
shifters are no longer helpless blinkers. Draconian callers are a little more 
evil.

--------------------------------------------------------------------------------
b1c3416374 | haranp | 2006-11-22 13:38:14 +0000

Implemented 1601016: better header message for 'w', 't'.

--------------------------------------------------------------------------------
8a01970a5f | haranp | 2006-11-22 13:33:36 +0000

Implemented 1601061: better messages for extending might/invisibility.

--------------------------------------------------------------------------------
6d16eceb0c | haranp | 2006-11-22 13:20:23 +0000

Player status now also shows burden.

--------------------------------------------------------------------------------
7e8152db1f | haranp | 2006-11-22 13:16:23 +0000

Clean up speed mutation messages for nagas. Let golden draconians know that 
they resist acid.

--------------------------------------------------------------------------------
00036797ff | haranp | 2006-11-22 12:54:01 +0000

Goodbye, gold dropping. We wish thee well. If I misunderstood and this is still 
up for debate, my apologies and please revert.

--------------------------------------------------------------------------------
c160159882 | dshaligram | 2006-11-22 12:16:28 +0000

[1597621] Auto-eat only offers rotten chunks to the appropriate races.

--------------------------------------------------------------------------------
9ec81b9ef7 | dshaligram | 2006-11-22 11:55:11 +0000

Kill more g++ carps.

--------------------------------------------------------------------------------
6bda7067bc | dshaligram | 2006-11-22 11:38:34 +0000

Restore old cursor behaviour on Windows, with little icky hooks to make it 
controllable for the newgame slider menu.

--------------------------------------------------------------------------------
ddfbd2a60b | dshaligram | 2006-11-22 10:58:06 +0000

Improve monster AI for monsters with both spells and special abilities 
(draconians).

--------------------------------------------------------------------------------
30e689a7f0 | dshaligram | 2006-11-22 10:10:56 +0000

Set is_undead correctly when changing species in wizmode.

--------------------------------------------------------------------------------
2316c9fea0 | dshaligram | 2006-11-22 09:51:44 +0000

[1600189] Mummy restoration doesn't use mp or turn when it does nothing.

--------------------------------------------------------------------------------
a640078f8a | dshaligram | 2006-11-22 09:32:37 +0000

[1599832] Machine gun acid spit forever.

--------------------------------------------------------------------------------
1c7c5a0668 | haranp | 2006-11-22 09:25:33 +0000

Fixed 160093: too many shield interaction messages.

--------------------------------------------------------------------------------
6adb570984 | dshaligram | 2006-11-22 08:44:28 +0000

Merged stone_soup r15:451 into trunk part 2 (non-source changes).

--------------------------------------------------------------------------------
1d0f57cbce | dshaligram | 2006-11-22 08:41:20 +0000

Merged stone_soup r15:451 into trunk.

--------------------------------------------------------------------------------
6f5e187a9e | nlanza | 2006-08-13 15:47:55 +0000

Added a brief "this isn't the main crawl distribution" blurb.

--------------------------------------------------------------------------------
25e3b928b4 | nlanza | 2006-08-13 04:33:19 +0000

These files shouldn't be executable.

--------------------------------------------------------------------------------
dc67e25c67 | nlanza | 2006-08-13 04:18:50 +0000

Add a metric ton of compiler warnings to the Xcode project, and clean up the 
source accordingly.
At some point these warnings should be merged into the makefile system,
but I don't have the will to merge them into the 3451351235 individual
makefiles at the moment.

--------------------------------------------------------------------------------
67ea2cc27b | nlanza | 2006-08-13 03:40:53 +0000

Add an Xcode project capable of building Crawl, with build configurations 
equivalent to the normal, debug, and wizard makefile targets as well as a 
Universal-build optimized Release target.

--------------------------------------------------------------------------------
aa88fdd8c6 | nlanza | 2006-08-13 02:19:00 +0000

Clean up a mistake in the SVN import.

--------------------------------------------------------------------------------
2b32f164e6 | dshaligram | 2006-08-02 13:59:12 +0000

Included travel patch options in the stock init.txt

--------------------------------------------------------------------------------
8bf88bd6f9 | dshaligram | 2006-08-02 13:16:49 +0000

Fixed broken use of unsigned char instead of unsigned int

--------------------------------------------------------------------------------
d5e5340c39 | dshaligram | 2006-08-02 12:54:15 +0000

Integrated travel patch as of 20060727

--------------------------------------------------------------------------------
7b2204d69f | nlanza | 2005-08-03 05:55:39 +0000

Further build cleanup.
The build system used 'LINUX' as a shorthand for Unix-like systems, which
ends up being a horrible mess -- it's pretty counterintuitive to have
the Solaris/Irix/BSD setups #defining LINUX to make things work.

This replaces the use of 'LINUX' with a more-general and more-obvious
'UNIX', and moves the not-really-linux-at-all 'liblinux' to 'libunix'.

--------------------------------------------------------------------------------
64fb30df96 | nlanza | 2005-08-02 04:38:39 +0000

Build fixes to build cleanly on OS X; switch from makefile.lnx to makefile.osx 
in the master makefile to build.
Note that this checkin adds comments to the start of each modified file
tagging the file as modified by Crawl Reference; the license requires this,
so we should be careful to stick with it.

--------------------------------------------------------------------------------
94ff479e19 | nlanza | 2005-08-02 03:20:20 +0000

Initial import missed this, which hoses the build completely.

--------------------------------------------------------------------------------
673bdae754 | peterb12 | 2005-07-21 02:34:44 +0000

Initial revision

--------------------------------------------------------------------------------
7e900be770 | (no author) | 2005-07-21 02:34:44 +0000

New repository initialized by cvs2svn.

--------------------------------------------------------------------------------
99613e666e | nlanza | 2006-08-13 01:56:14 +0000

Basic repository structure; a trunk, space for branches.

